[med-svn] [picard-tools] 03/05: Imported Upstream version 1.138+dfsg.1

Vincent Danjean vdanjean at debian.org
Mon Sep 7 23:48:13 UTC 2015


This is an automated email from the git hooks/post-receive script.

vdanjean pushed a commit to branch master
in repository picard-tools.

commit 49570153dfb783dad5b1cf43b6c00cda5c0ced4d
Author: Vincent Danjean <vdanjean at debian.org>
Date:   Sun Sep 6 23:38:18 2015 +0200

    Imported Upstream version 1.138+dfsg.1
---
 .dockerignore                                      |    18 +
 .gitignore                                         |     6 +-
 .travis.yml                                        |    12 +
 Dockerfile                                         |    31 +
 Picard-public.iml                                  |    40 +-
 Picard-public.ipr                                  |     6 +-
 README.md                                          |    56 +
 build-tribble.xml                                  |   183 -
 build.sbt                                          |   142 +
 build.xml                                          |   528 +-
 project/plugins.sbt                                |     5 +
 src/c/inteldeflater/IntelDeflater.c                |   247 -
 src/java/net/sf/picard/PicardException.java        |    43 -
 src/java/net/sf/picard/Test.java                   |    57 -
 .../picard/analysis/AlignmentSummaryMetrics.java   |   162 -
 .../analysis/AlignmentSummaryMetricsCollector.java |   385 -
 .../analysis/CollectAlignmentSummaryMetrics.java   |   123 -
 .../sf/picard/analysis/CollectGcBiasMetrics.java   |   327 -
 .../picard/analysis/CollectInsertSizeMetrics.java  |   155 -
 .../sf/picard/analysis/CollectMultipleMetrics.java |   140 -
 .../sf/picard/analysis/CollectRnaSeqMetrics.java   |   148 -
 .../net/sf/picard/analysis/CollectWgsMetrics.java  |   274 -
 .../sf/picard/analysis/GcBiasDetailMetrics.java    |    63 -
 .../sf/picard/analysis/GcBiasSummaryMetrics.java   |    56 -
 .../net/sf/picard/analysis/InsertSizeMetrics.java  |    94 -
 .../net/sf/picard/analysis/MeanQualityByCycle.java |   204 -
 .../picard/analysis/MetricAccumulationLevel.java   |    32 -
 .../picard/analysis/QualityScoreDistribution.java  |   150 -
 src/java/net/sf/picard/analysis/RnaSeqMetrics.java |   111 -
 .../sf/picard/analysis/SinglePassSamProgram.java   |   158 -
 .../analysis/directed/CalculateHsMetrics.java      |    87 -
 .../analysis/directed/CollectTargetedMetrics.java  |   151 -
 .../directed/CollectTargetedPcrMetrics.java        |    62 -
 .../analysis/directed/HsMetricCollector.java       |   122 -
 .../net/sf/picard/analysis/directed/HsMetrics.java |   194 -
 .../directed/InsertSizeMetricsCollector.java       |   205 -
 .../analysis/directed/RnaSeqMetricsCollector.java  |   391 -
 .../analysis/directed/TargetMetricsCollector.java  |   748 -
 .../analysis/directed/TargetedPcrMetrics.java      |   119 -
 .../directed/TargetedPcrMetricsCollector.java      |    58 -
 .../sf/picard/annotation/AnnotationException.java  |    40 -
 src/java/net/sf/picard/annotation/Gene.java        |   222 -
 .../sf/picard/annotation/GeneAnnotationReader.java |    39 -
 .../net/sf/picard/annotation/LocusFunction.java    |    33 -
 .../net/sf/picard/annotation/RefFlatReader.java    |   191 -
 .../picard/cmdline/CommandLineParseException.java  |    36 -
 .../net/sf/picard/cmdline/CommandLineParser.java   |  1210 -
 .../CommandLineParserDefinitionException.java      |    36 -
 .../net/sf/picard/cmdline/CommandLineProgram.java  |   312 -
 .../sf/picard/cmdline/CreateHtmlDocForProgram.java |    44 -
 .../cmdline/CreateHtmlDocForStandardOptions.java   |    40 -
 src/java/net/sf/picard/cmdline/NestedOptions.java  |    39 -
 src/java/net/sf/picard/cmdline/Option.java         |    80 -
 .../net/sf/picard/cmdline/PositionalArguments.java |    52 -
 .../picard/cmdline/StandardOptionDefinitions.java  |    48 -
 src/java/net/sf/picard/cmdline/Usage.java          |    40 -
 src/java/net/sf/picard/fastq/AsyncFastqWriter.java |    20 -
 src/java/net/sf/picard/fastq/BamToBfq.java         |    93 -
 src/java/net/sf/picard/fastq/BamToBfqWriter.java   |   441 -
 src/java/net/sf/picard/fastq/BasicFastqWriter.java |    88 -
 .../sf/picard/fastq/Casava18ReadNameEncoder.java   |    46 -
 src/java/net/sf/picard/fastq/FastqConstants.java   |    32 -
 src/java/net/sf/picard/fastq/FastqReader.java      |   177 -
 src/java/net/sf/picard/fastq/FastqRecord.java      |    49 -
 src/java/net/sf/picard/fastq/FastqWriter.java      |    13 -
 .../net/sf/picard/fastq/FastqWriterFactory.java    |    31 -
 .../sf/picard/fastq/IlluminaReadNameEncoder.java   |    28 -
 src/java/net/sf/picard/fastq/ReadNameEncoder.java  |    17 -
 src/java/net/sf/picard/filter/AggregateFilter.java |    79 -
 src/java/net/sf/picard/filter/AlignedFilter.java   |    87 -
 .../net/sf/picard/filter/DuplicateReadFilter.java  |    52 -
 .../filter/FailsVendorReadQualityFilter.java       |    57 -
 .../net/sf/picard/filter/FilteringIterator.java    |   154 -
 src/java/net/sf/picard/filter/IntervalFilter.java  |    99 -
 .../picard/filter/NotPrimaryAlignmentFilter.java   |    54 -
 src/java/net/sf/picard/filter/ReadNameFilter.java  |   119 -
 src/java/net/sf/picard/filter/SamRecordFilter.java |    53 -
 .../sf/picard/filter/SecondaryAlignmentFilter.java |    20 -
 .../filter/SecondaryOrSupplementaryFilter.java     |    32 -
 .../net/sf/picard/filter/SolexaNoiseFilter.java    |    66 -
 src/java/net/sf/picard/filter/TagFilter.java       |    85 -
 .../sf/picard/filter/WholeReadClippedFilter.java   |    64 -
 .../sf/picard/illumina/CheckIlluminaDirectory.java |   256 -
 .../picard/illumina/ClusterDataToSamConverter.java |   174 -
 .../picard/illumina/ExtractIlluminaBarcodes.java   |   708 -
 .../illumina/IlluminaBasecallsConverter.java       |   858 -
 .../picard/illumina/IlluminaBasecallsToFastq.java  |   459 -
 .../sf/picard/illumina/IlluminaBasecallsToSam.java |   525 -
 .../sf/picard/illumina/MarkIlluminaAdapters.java   |   256 -
 .../sf/picard/illumina/parser/BarcodeParser.java   |    84 -
 .../net/sf/picard/illumina/parser/BclData.java     |    30 -
 .../net/sf/picard/illumina/parser/BclParser.java   |   295 -
 .../net/sf/picard/illumina/parser/ClusterData.java |   200 -
 .../parser/ClusterIntensityFileReader.java         |   213 -
 .../illumina/parser/CycleIlluminaFileMap.java      |    75 -
 .../sf/picard/illumina/parser/FilterParser.java    |    82 -
 .../illumina/parser/FourChannelIntensityData.java  |   103 -
 .../sf/picard/illumina/parser/IlluminaData.java    |    69 -
 .../illumina/parser/IlluminaDataProvider.java      |   230 -
 .../parser/IlluminaDataProviderFactory.java        |   367 -
 .../picard/illumina/parser/IlluminaDataType.java   |    35 -
 .../sf/picard/illumina/parser/IlluminaFileMap.java |    58 -
 .../parser/IlluminaFileNotFoundException.java      |    44 -
 .../picard/illumina/parser/IlluminaFileUtil.java   |   256 -
 .../illumina/parser/IlluminaMetricsCode.java       |    42 -
 .../sf/picard/illumina/parser/IlluminaParser.java  |    75 -
 .../illumina/parser/IlluminaTextIterator.java      |   122 -
 .../picard/illumina/parser/IntensityChannel.java   |    38 -
 .../illumina/parser/MultiTileBclFileUtil.java      |   115 -
 .../picard/illumina/parser/MultiTileBclParser.java |   171 -
 .../picard/illumina/parser/MultiTileFileUtil.java  |   120 -
 .../illumina/parser/MultiTileFilterParser.java     |    64 -
 .../illumina/parser/MultiTileLocsParser.java       |    82 -
 .../sf/picard/illumina/parser/MultiTileParser.java |   128 -
 .../sf/picard/illumina/parser/OutputMapping.java   |   183 -
 .../illumina/parser/ParameterizedFileUtil.java     |   174 -
 .../picard/illumina/parser/PerTileCycleParser.java |   203 -
 .../sf/picard/illumina/parser/PerTileFileUtil.java |    78 -
 .../sf/picard/illumina/parser/PerTileParser.java   |   142 -
 .../illumina/parser/PerTilePerCycleFileUtil.java   |   268 -
 .../net/sf/picard/illumina/parser/PosParser.java   |   133 -
 src/java/net/sf/picard/illumina/parser/Range.java  |    65 -
 .../net/sf/picard/illumina/parser/ReadData.java    |    96 -
 .../sf/picard/illumina/parser/ReadDescriptor.java  |    57 -
 .../sf/picard/illumina/parser/ReadStructure.java   |   358 -
 .../net/sf/picard/illumina/parser/ReadType.java    |    39 -
 src/java/net/sf/picard/illumina/parser/Tile.java   |   114 -
 .../net/sf/picard/illumina/parser/TileIndex.java   |   162 -
 .../sf/picard/illumina/parser/TileMetricsUtil.java |   154 -
 .../picard/illumina/parser/TilePhasingValue.java   |    30 -
 .../picard/illumina/parser/TileTemplateRead.java   |    32 -
 .../illumina/parser/fakers/BarcodeFileFaker.java   |    25 -
 .../illumina/parser/fakers/BciFileFaker.java       |    52 -
 .../illumina/parser/fakers/BclFileFaker.java       |    30 -
 .../illumina/parser/fakers/ClocsFileFaker.java     |    25 -
 .../picard/illumina/parser/fakers/FileFaker.java   |    79 -
 .../illumina/parser/fakers/FilterFileFaker.java    |    26 -
 .../illumina/parser/fakers/LocsFileFaker.java      |    28 -
 .../parser/fakers/MultiTileBclFileFaker.java       |    32 -
 .../parser/fakers/MultiTileLocsFileFaker.java      |    30 -
 .../illumina/parser/fakers/PosFileFaker.java       |    25 -
 .../AbstractIlluminaPositionFileReader.java        |   177 -
 .../illumina/parser/readers/BarcodeFileReader.java |    52 -
 .../illumina/parser/readers/BclIndexReader.java    |    75 -
 .../readers/BclQualityEvaluationStrategy.java      |    95 -
 .../picard/illumina/parser/readers/BclReader.java  |   343 -
 .../illumina/parser/readers/ClocsFileReader.java   |   157 -
 .../illumina/parser/readers/FilterFileReader.java  |   114 -
 .../illumina/parser/readers/LocsFileReader.java    |   119 -
 .../parser/readers/MMapBackedIteratorFactory.java  |   298 -
 .../illumina/parser/readers/PosFileReader.java     |    89 -
 .../parser/readers/TileMetricsOutReader.java       |   167 -
 src/java/net/sf/picard/io/FastLineReader.java      |   171 -
 src/java/net/sf/picard/io/IoUtil.java              |   686 -
 src/java/net/sf/picard/liftover/Chain.java         |   410 -
 src/java/net/sf/picard/liftover/LiftOver.java      |   292 -
 src/java/net/sf/picard/metrics/Header.java         |    41 -
 src/java/net/sf/picard/metrics/MetricBase.java     |   128 -
 src/java/net/sf/picard/metrics/MetricsFile.java    |   521 -
 .../net/sf/picard/metrics/MultiLevelCollector.java |   335 -
 .../net/sf/picard/metrics/MultilevelMetrics.java   |    16 -
 .../sf/picard/metrics/PerUnitMetricCollector.java  |    58 -
 .../sf/picard/metrics/SAMRecordAndReference.java   |    22 -
 .../SAMRecordAndReferenceMultiLevelCollector.java  |    14 -
 .../metrics/SAMRecordMultiLevelCollector.java      |    13 -
 src/java/net/sf/picard/metrics/StringHeader.java   |    72 -
 src/java/net/sf/picard/metrics/VersionHeader.java  |    81 -
 src/java/net/sf/picard/pedigree/PedFile.java       |   147 -
 src/java/net/sf/picard/pedigree/Sex.java           |    26 -
 .../reference/AbstractFastaSequenceFile.java       |   126 -
 .../net/sf/picard/reference/ExtractSequences.java  |   108 -
 .../net/sf/picard/reference/FastaSequenceFile.java |   156 -
 .../sf/picard/reference/FastaSequenceIndex.java    |   312 -
 .../picard/reference/IndexedFastaSequenceFile.java |   263 -
 .../net/sf/picard/reference/NormalizeFasta.java    |    93 -
 .../net/sf/picard/reference/ReferenceSequence.java |    72 -
 .../sf/picard/reference/ReferenceSequenceFile.java |    89 -
 .../reference/ReferenceSequenceFileFactory.java    |    90 -
 .../reference/ReferenceSequenceFileWalker.java     |   101 -
 .../net/sf/picard/sam/AbstractAlignmentMerger.java |   698 -
 .../sam/AbstractDuplicateFindingAlgorithm.java     |   175 -
 src/java/net/sf/picard/sam/AddCommentsToBam.java   |    57 -
 .../net/sf/picard/sam/AddOrReplaceReadGroups.java  |   112 -
 src/java/net/sf/picard/sam/BamIndexStats.java      |    77 -
 .../sam/BestEndMapqPrimaryAlignmentStrategy.java   |   101 -
 .../BestMapqPrimaryAlignmentSelectionStrategy.java |    95 -
 src/java/net/sf/picard/sam/BuildBamIndex.java      |   149 -
 src/java/net/sf/picard/sam/CleanSam.java           |   103 -
 .../sf/picard/sam/ComparableSamRecordIterator.java |    92 -
 src/java/net/sf/picard/sam/CompareSAMs.java        |   515 -
 .../sf/picard/sam/CoordinateSortedPairInfoMap.java |   289 -
 .../sf/picard/sam/CreateSequenceDictionary.java    |   180 -
 src/java/net/sf/picard/sam/DiskReadEndsMap.java    |   107 -
 src/java/net/sf/picard/sam/DownsampleSam.java      |    93 -
 src/java/net/sf/picard/sam/DuplicationMetrics.java |   203 -
 ...tFragmentPrimaryAlignmentSelectionStrategy.java |    93 -
 .../sf/picard/sam/EstimateLibraryComplexity.java   |   487 -
 src/java/net/sf/picard/sam/FastqToSam.java         |   362 -
 src/java/net/sf/picard/sam/FilterSamReads.java     |   233 -
 src/java/net/sf/picard/sam/FixMateInformation.java |   292 -
 src/java/net/sf/picard/sam/GatherBamFiles.java     |    97 -
 src/java/net/sf/picard/sam/HitsForInsert.java      |   283 -
 src/java/net/sf/picard/sam/MarkDuplicates.java     |   772 -
 src/java/net/sf/picard/sam/MergeBamAlignment.java  |   285 -
 src/java/net/sf/picard/sam/MergeSamFiles.java      |   166 -
 .../sf/picard/sam/MergingSamRecordIterator.java    |   245 -
 ...stDistantPrimaryAlignmentSelectionStrategy.java |   183 -
 .../sf/picard/sam/MultiHitAlignedReadIterator.java |   209 -
 .../sam/PrimaryAlignmentSelectionStrategy.java     |    37 -
 src/java/net/sf/picard/sam/RAMReadEndsMap.java     |    72 -
 src/java/net/sf/picard/sam/ReadEnds.java           |    63 -
 src/java/net/sf/picard/sam/ReadEndsCodec.java      |   106 -
 src/java/net/sf/picard/sam/ReadEndsMap.java        |    59 -
 src/java/net/sf/picard/sam/ReorderSam.java         |   233 -
 src/java/net/sf/picard/sam/ReplaceSamHeader.java   |   114 -
 .../net/sf/picard/sam/ReservedTagConstants.java    |    72 -
 ...RevertOriginalBaseQualitiesAndAddMateCigar.java |   244 -
 src/java/net/sf/picard/sam/RevertSam.java          |   343 -
 src/java/net/sf/picard/sam/SamAlignmentMerger.java |   353 -
 .../net/sf/picard/sam/SamFileHeaderMerger.java     |   775 -
 src/java/net/sf/picard/sam/SamFileValidator.java   |   800 -
 src/java/net/sf/picard/sam/SamFormatConverter.java |    80 -
 src/java/net/sf/picard/sam/SamToFastq.java         |   438 -
 src/java/net/sf/picard/sam/SortSam.java            |    81 -
 src/java/net/sf/picard/sam/ValidateSamFile.java    |   178 -
 src/java/net/sf/picard/sam/ViewSam.java            |   108 -
 .../net/sf/picard/util/AbstractInputParser.java    |   200 -
 src/java/net/sf/picard/util/AdapterMarker.java     |   341 -
 src/java/net/sf/picard/util/AdapterPair.java       |    16 -
 src/java/net/sf/picard/util/AsyncIterator.java     |   170 -
 src/java/net/sf/picard/util/BasicInputParser.java  |   176 -
 src/java/net/sf/picard/util/CigarUtil.java         |   289 -
 src/java/net/sf/picard/util/ClippingUtility.java   |   278 -
 src/java/net/sf/picard/util/CsvInputParser.java    |    36 -
 .../util/DelimitedTextFileWithHeaderIterator.java  |   111 -
 .../net/sf/picard/util/FastqQualityFormat.java     |    36 -
 .../sf/picard/util/FileAppendStreamLRUCache.java   |    76 -
 .../picard/util/FileChannelJDKBugWorkAround.java   |    64 -
 src/java/net/sf/picard/util/FormatUtil.java        |   181 -
 src/java/net/sf/picard/util/Histogram.java         |   466 -
 src/java/net/sf/picard/util/IlluminaUtil.java      |   223 -
 src/java/net/sf/picard/util/Interval.java          |   193 -
 src/java/net/sf/picard/util/IntervalList.java      |   654 -
 .../util/IntervalListReferenceSequenceMask.java    |   123 -
 src/java/net/sf/picard/util/IntervalListTools.java |   352 -
 src/java/net/sf/picard/util/IntervalTree.java      |  1227 -
 src/java/net/sf/picard/util/IntervalTreeMap.java   |   293 -
 src/java/net/sf/picard/util/IntervalUtil.java      |    76 -
 src/java/net/sf/picard/util/IterableAdapter.java   |    29 -
 .../net/sf/picard/util/IterableOnceIterator.java   |    42 -
 src/java/net/sf/picard/util/ListMap.java           |    48 -
 src/java/net/sf/picard/util/Locus.java             |    36 -
 src/java/net/sf/picard/util/LocusComparator.java   |    39 -
 src/java/net/sf/picard/util/LocusImpl.java         |    49 -
 src/java/net/sf/picard/util/Log.java               |   211 -
 src/java/net/sf/picard/util/MathUtil.java          |   277 -
 src/java/net/sf/picard/util/MergingIterator.java   |   147 -
 src/java/net/sf/picard/util/MetricsDoclet.java     |   179 -
 src/java/net/sf/picard/util/OverlapDetector.java   |   119 -
 src/java/net/sf/picard/util/PeekableIterator.java  |    82 -
 src/java/net/sf/picard/util/ProcessExecutor.java   |   235 -
 src/java/net/sf/picard/util/ProgressLogger.java    |   136 -
 .../sf/picard/util/QualityEncodingDetector.java    |   359 -
 src/java/net/sf/picard/util/QualityUtil.java       |    78 -
 src/java/net/sf/picard/util/RExecutor.java         |   111 -
 .../net/sf/picard/util/ReferenceSequenceMask.java  |    55 -
 .../net/sf/picard/util/ResourceLimitedMap.java     |   105 -
 .../sf/picard/util/ResourceLimitedMapFunctor.java  |    47 -
 src/java/net/sf/picard/util/SamLocusIterator.java  |   498 -
 .../util/SamRecordIntervalIteratorFactory.java     |   159 -
 .../net/sf/picard/util/SolexaQualityConverter.java |   124 -
 src/java/net/sf/picard/util/TabbedInputParser.java |    64 -
 .../util/TabbedTextFileWithHeaderParser.java       |   173 -
 src/java/net/sf/picard/util/UnsignedTypeUtil.java  |    28 -
 .../util/WholeGenomeReferenceSequenceMask.java     |    80 -
 src/java/net/sf/picard/vcf/MakeSitesOnlyVcf.java   |   105 -
 src/java/net/sf/picard/vcf/MergeVcfs.java          |   159 -
 src/java/net/sf/picard/vcf/SplitVcfs.java          |   120 -
 src/java/net/sf/picard/vcf/VcfFormatConverter.java |   117 -
 src/java/net/sf/samtools/AbstractBAMFileIndex.java |   636 -
 .../net/sf/samtools/AbstractSAMHeaderRecord.java   |   109 -
 src/java/net/sf/samtools/AlignmentBlock.java       |    54 -
 src/java/net/sf/samtools/AsyncSAMFileWriter.java   |    59 -
 src/java/net/sf/samtools/BAMFileConstants.java     |    45 -
 src/java/net/sf/samtools/BAMFileReader.java        |   987 -
 src/java/net/sf/samtools/BAMFileWriter.java        |   199 -
 src/java/net/sf/samtools/BAMIndex.java             |    65 -
 src/java/net/sf/samtools/BAMIndexContent.java      |    69 -
 src/java/net/sf/samtools/BAMIndexMetaData.java     |   243 -
 src/java/net/sf/samtools/BAMIndexWriter.java       |    52 -
 src/java/net/sf/samtools/BAMIndexer.java           |   259 -
 src/java/net/sf/samtools/BAMRecord.java            |   360 -
 src/java/net/sf/samtools/BAMRecordCodec.java       |   207 -
 src/java/net/sf/samtools/BamFileIoUtils.java       |   155 -
 src/java/net/sf/samtools/BamIndexValidator.java    |    89 -
 src/java/net/sf/samtools/Bin.java                  |   162 -
 src/java/net/sf/samtools/BinList.java              |   119 -
 src/java/net/sf/samtools/BinaryBAMIndexWriter.java |   205 -
 src/java/net/sf/samtools/BinaryCigarCodec.java     |    99 -
 src/java/net/sf/samtools/BinaryTagCodec.java       |   422 -
 src/java/net/sf/samtools/BinningIndexBuilder.java  |   187 -
 src/java/net/sf/samtools/BinningIndexContent.java  |   262 -
 src/java/net/sf/samtools/BrowseableBAMIndex.java   |    54 -
 src/java/net/sf/samtools/CachingBAMFileIndex.java  |   166 -
 src/java/net/sf/samtools/Chunk.java                |   167 -
 src/java/net/sf/samtools/Cigar.java                |   268 -
 src/java/net/sf/samtools/CigarElement.java         |    66 -
 src/java/net/sf/samtools/CigarOperator.java        |   186 -
 .../net/sf/samtools/DefaultSAMRecordFactory.java   |    44 -
 src/java/net/sf/samtools/Defaults.java             |    84 -
 .../net/sf/samtools/DiskBasedBAMFileIndex.java     |    78 -
 .../net/sf/samtools/FileTruncatedException.java    |    46 -
 src/java/net/sf/samtools/FixBAMFile.java           |    45 -
 src/java/net/sf/samtools/GenomicIndexUtil.java     |   100 -
 src/java/net/sf/samtools/LinearIndex.java          |   126 -
 .../sf/samtools/NotPrimarySkippingIterator.java    |    62 -
 .../SAMBinaryTagAndUnsignedArrayValue.java         |    48 -
 src/java/net/sf/samtools/SAMBinaryTagAndValue.java |   125 -
 src/java/net/sf/samtools/SAMException.java         |    44 -
 src/java/net/sf/samtools/SAMFileHeader.java        |   348 -
 src/java/net/sf/samtools/SAMFileReader.java        |   915 -
 src/java/net/sf/samtools/SAMFileSource.java        |    68 -
 src/java/net/sf/samtools/SAMFileSpan.java          |   291 -
 .../net/sf/samtools/SAMFileTruncatedReader.java    |    68 -
 src/java/net/sf/samtools/SAMFileWriter.java        |    48 -
 src/java/net/sf/samtools/SAMFileWriterFactory.java |   259 -
 src/java/net/sf/samtools/SAMFileWriterImpl.java    |   231 -
 src/java/net/sf/samtools/SAMFormatException.java   |    44 -
 .../net/sf/samtools/SAMHeaderRecordComparator.java |    66 -
 src/java/net/sf/samtools/SAMLineParser.java        |   457 -
 src/java/net/sf/samtools/SAMProgramRecord.java     |   128 -
 src/java/net/sf/samtools/SAMReadGroupRecord.java   |   145 -
 src/java/net/sf/samtools/SAMRecord.java            |  1732 --
 src/java/net/sf/samtools/SAMRecordComparator.java  |    40 -
 .../sf/samtools/SAMRecordCoordinateComparator.java |    95 -
 src/java/net/sf/samtools/SAMRecordFactory.java     |    28 -
 src/java/net/sf/samtools/SAMRecordIterator.java    |    52 -
 .../sf/samtools/SAMRecordQueryNameComparator.java  |    86 -
 src/java/net/sf/samtools/SAMRecordSetBuilder.java  |   466 -
 src/java/net/sf/samtools/SAMRecordUtil.java        |    81 -
 .../net/sf/samtools/SAMSequenceDictionary.java     |   162 -
 src/java/net/sf/samtools/SAMSequenceRecord.java    |   225 -
 src/java/net/sf/samtools/SAMSortOrderChecker.java  |    86 -
 src/java/net/sf/samtools/SAMTag.java               |    32 -
 src/java/net/sf/samtools/SAMTagUtil.java           |   122 -
 src/java/net/sf/samtools/SAMTestUtil.java          |    90 -
 src/java/net/sf/samtools/SAMTextHeaderCodec.java   |   465 -
 src/java/net/sf/samtools/SAMTextReader.java        |   247 -
 src/java/net/sf/samtools/SAMTextWriter.java        |   183 -
 src/java/net/sf/samtools/SAMTools.java             |   119 -
 src/java/net/sf/samtools/SAMUtils.java             |   925 -
 src/java/net/sf/samtools/SAMValidationError.java   |   288 -
 src/java/net/sf/samtools/SQTagUtil.java            |   154 -
 src/java/net/sf/samtools/SamPairUtil.java          |   319 -
 .../SecondaryOrSupplementarySkippingIterator.java  |    41 -
 .../StreamInflatingIndexingOutputStream.java       |    80 -
 .../sf/samtools/TagValueAndUnsignedArrayFlag.java  |    42 -
 src/java/net/sf/samtools/TextCigarCodec.java       |   104 -
 src/java/net/sf/samtools/TextTagCodec.java         |   321 -
 .../net/sf/samtools/TextualBAMIndexWriter.java     |   185 -
 src/java/net/sf/samtools/apps/TimeChannel.java     |    60 -
 .../net/sf/samtools/apps/TimeRandomAccessFile.java |    55 -
 .../net/sf/samtools/example/ExampleSamUsage.java   |    63 -
 .../seekablestream/ISeekableStreamFactory.java     |    33 -
 .../seekablestream/SeekableBufferedStream.java     |   124 -
 .../samtools/seekablestream/SeekableFTPStream.java |   120 -
 .../seekablestream/SeekableFTPStreamHelper.java    |   166 -
 .../seekablestream/SeekableFileStream.java         |   125 -
 .../seekablestream/SeekableHTTPStream.java         |   186 -
 .../sf/samtools/seekablestream/SeekableStream.java |    69 -
 .../seekablestream/SeekableStreamFactory.java      |    95 -
 .../samtools/seekablestream/UserPasswordInput.java |    31 -
 .../net/sf/samtools/util/AbstractAsyncWriter.java  |   121 -
 .../net/sf/samtools/util/AbstractIterator.java     |    85 -
 src/java/net/sf/samtools/util/AsciiWriter.java     |    83 -
 src/java/net/sf/samtools/util/BinaryCodec.java     |   663 -
 .../util/BlockCompressedFilePointerUtil.java       |   101 -
 .../samtools/util/BlockCompressedInputStream.java  |   512 -
 .../samtools/util/BlockCompressedOutputStream.java |   336 -
 .../util/BlockCompressedStreamConstants.java       |   118 -
 src/java/net/sf/samtools/util/BlockGunzipper.java  |   115 -
 .../net/sf/samtools/util/BufferedLineReader.java   |   115 -
 .../net/sf/samtools/util/CloseableIterator.java    |    45 -
 src/java/net/sf/samtools/util/CloserUtil.java      |    80 -
 src/java/net/sf/samtools/util/CollectionUtil.java  |   170 -
 src/java/net/sf/samtools/util/CoordMath.java       |    76 -
 src/java/net/sf/samtools/util/DateParser.java      |   340 -
 .../net/sf/samtools/util/DelegatingIterator.java   |    37 -
 src/java/net/sf/samtools/util/HttpUtils.java       |    80 -
 src/java/net/sf/samtools/util/IOUtil.java          |   220 -
 src/java/net/sf/samtools/util/Iso8601Date.java     |    65 -
 src/java/net/sf/samtools/util/Lazy.java            |    39 -
 src/java/net/sf/samtools/util/LineReader.java      |    51 -
 src/java/net/sf/samtools/util/LocationAware.java   |    26 -
 .../samtools/util/Md5CalculatingInputStream.java   |   129 -
 .../samtools/util/Md5CalculatingOutputStream.java  |   115 -
 src/java/net/sf/samtools/util/PeekIterator.java    |    85 -
 .../sf/samtools/util/ProgressLoggerInterface.java  |    38 -
 .../net/sf/samtools/util/RelativeIso8601Date.java  |   187 -
 .../net/sf/samtools/util/RuntimeEOFException.java  |    46 -
 .../net/sf/samtools/util/RuntimeIOException.java   |    46 -
 src/java/net/sf/samtools/util/SequenceUtil.java    |   767 -
 src/java/net/sf/samtools/util/SnappyLoader.java    |   127 -
 .../net/sf/samtools/util/SortingCollection.java    |   517 -
 .../sf/samtools/util/SortingLongCollection.java    |   338 -
 src/java/net/sf/samtools/util/StopWatch.java       |    76 -
 .../net/sf/samtools/util/StringLineReader.java     |    99 -
 src/java/net/sf/samtools/util/StringUtil.java      |   466 -
 .../net/sf/samtools/util/TempStreamFactory.java    |    84 -
 src/java/net/sf/samtools/util/TestUtil.java        |    69 -
 src/java/net/sf/samtools/util/Tuple.java           |    16 -
 src/java/net/sf/samtools/util/ftp/FTPClient.java   |   235 -
 src/java/net/sf/samtools/util/ftp/FTPReply.java    |   113 -
 src/java/net/sf/samtools/util/ftp/FTPStream.java   |    53 -
 src/java/net/sf/samtools/util/ftp/FTPUtils.java    |   153 -
 .../net/sf/samtools/util/zip/DeflaterFactory.java  |    78 -
 .../net/sf/samtools/util/zip/IntelDeflater.java    |   567 -
 src/java/net/sf/samtools/util/zip/ZStreamRef.java  |    48 -
 .../org/broad/tribble/AbstractFeatureCodec.java    |    53 -
 .../org/broad/tribble/AbstractFeatureReader.java   |   183 -
 src/java/org/broad/tribble/AsciiFeatureCodec.java  |    92 -
 src/java/org/broad/tribble/BasicFeature.java       |    54 -
 src/java/org/broad/tribble/BinaryFeatureCodec.java |    42 -
 .../broad/tribble/CloseableTribbleIterator.java    |    27 -
 src/java/org/broad/tribble/Feature.java            |    47 -
 src/java/org/broad/tribble/FeatureCodec.java       |   116 -
 src/java/org/broad/tribble/FeatureCodecHeader.java |    83 -
 src/java/org/broad/tribble/FeatureReader.java      |    40 -
 src/java/org/broad/tribble/NameAwareCodec.java     |    37 -
 src/java/org/broad/tribble/TabixFeatureReader.java |   202 -
 src/java/org/broad/tribble/Tribble.java            |    58 -
 src/java/org/broad/tribble/TribbleException.java   |   139 -
 .../broad/tribble/TribbleIndexedFeatureReader.java |   523 -
 src/java/org/broad/tribble/annotation/Strand.java  |    52 -
 src/java/org/broad/tribble/bed/BEDCodec.java       |   227 -
 src/java/org/broad/tribble/bed/BEDFeature.java     |    51 -
 src/java/org/broad/tribble/bed/FullBEDFeature.java |   433 -
 .../org/broad/tribble/bed/SimpleBEDFeature.java    |   139 -
 .../org/broad/tribble/dbsnp/OldDbSNPCodec.java     |   129 -
 .../org/broad/tribble/dbsnp/OldDbSNPFeature.java   |   212 -
 .../org/broad/tribble/example/CountRecords.java    |   203 -
 .../broad/tribble/example/ExampleBinaryCodec.java  |   117 -
 .../org/broad/tribble/example/IndexToTable.java    |    72 -
 .../org/broad/tribble/example/IndicesAreEqual.java |    76 -
 .../broad/tribble/example/ProfileIndexReading.java |    66 -
 .../exception/CodecLineParsingException.java       |    50 -
 .../tribble/exception/UnsortedFileException.java   |    45 -
 .../broad/tribble/gelitext/DiploidGenotype.java    |    64 -
 .../org/broad/tribble/gelitext/GeliTextCodec.java  |   110 -
 .../broad/tribble/gelitext/GeliTextFeature.java    |   145 -
 .../org/broad/tribble/index/AbstractIndex.java     |   443 -
 src/java/org/broad/tribble/index/Block.java        |    82 -
 src/java/org/broad/tribble/index/ChrIndex.java     |    55 -
 .../broad/tribble/index/DynamicIndexCreator.java   |   209 -
 src/java/org/broad/tribble/index/Index.java        |    91 -
 src/java/org/broad/tribble/index/IndexCreator.java |    50 -
 src/java/org/broad/tribble/index/IndexFactory.java |   472 -
 src/java/org/broad/tribble/index/MutableIndex.java |    36 -
 .../broad/tribble/index/TribbleIndexCreator.java   |    37 -
 .../org/broad/tribble/index/interval/Interval.java |   115 -
 .../index/interval/IntervalIndexCreator.java       |   159 -
 .../broad/tribble/index/interval/IntervalTree.java |   546 -
 .../tribble/index/interval/IntervalTreeIndex.java  |   211 -
 .../broad/tribble/index/linear/LinearIndex.java    |   431 -
 .../tribble/index/linear/LinearIndexCreator.java   |   126 -
 .../org/broad/tribble/index/tabix/TabixFormat.java |   109 -
 .../org/broad/tribble/index/tabix/TabixIndex.java  |   364 -
 .../tribble/index/tabix/TabixIndexCreator.java     |   199 -
 .../org/broad/tribble/readers/AsciiLineReader.java |   180 -
 .../tribble/readers/AsciiLineReaderIterator.java   |   100 -
 .../tribble/readers/AsynchronousLineReader.java    |    98 -
 .../org/broad/tribble/readers/LineIterator.java    |    12 -
 .../broad/tribble/readers/LineIteratorImpl.java    |    33 -
 src/java/org/broad/tribble/readers/LineReader.java |    42 -
 .../org/broad/tribble/readers/LineReaderUtil.java  |    61 -
 .../tribble/readers/LongLineBufferedReader.java    |   490 -
 src/java/org/broad/tribble/readers/Positional.java |    60 -
 .../tribble/readers/PositionalBufferedStream.java  |   224 -
 .../tribble/readers/TabixIteratorLineReader.java   |    52 -
 .../org/broad/tribble/readers/TabixReader.java     |   462 -
 src/java/org/broad/tribble/readme.txt              |     1 -
 src/java/org/broad/tribble/util/FTPHelper.java     |    54 -
 src/java/org/broad/tribble/util/HTTPHelper.java    |   156 -
 .../tribble/util/LittleEndianInputStream.java      |   140 -
 .../tribble/util/LittleEndianOutputStream.java     |   120 -
 src/java/org/broad/tribble/util/MathUtils.java     |    66 -
 src/java/org/broad/tribble/util/ParsingUtils.java  |   447 -
 .../org/broad/tribble/util/RemoteURLHelper.java    |    54 -
 src/java/org/broad/tribble/util/TabixUtils.java    |   115 -
 src/java/org/broad/tribble/util/URLHelper.java     |    56 -
 .../util/popgen/HardyWeinbergCalculation.java      |   148 -
 .../org/broadinstitute/variant/bcf2/BCF2Codec.java |   501 -
 .../broadinstitute/variant/bcf2/BCF2Decoder.java   |   375 -
 .../variant/bcf2/BCF2GenotypeFieldDecoders.java    |   284 -
 .../variant/bcf2/BCF2LazyGenotypesDecoder.java     |    97 -
 .../org/broadinstitute/variant/bcf2/BCF2Type.java  |   219 -
 .../org/broadinstitute/variant/bcf2/BCF2Utils.java |   338 -
 .../broadinstitute/variant/bcf2/BCFVersion.java    |   105 -
 .../broadinstitute/variant/utils/GeneralUtils.java |   242 -
 .../variant/variantcontext/Allele.java             |   505 -
 .../variant/variantcontext/CommonInfo.java         |   263 -
 .../variant/variantcontext/FastGenotype.java       |   182 -
 .../variant/variantcontext/Genotype.java           |   676 -
 .../variant/variantcontext/GenotypeBuilder.java    |   419 -
 .../variantcontext/GenotypeLikelihoods.java        |   463 -
 .../variant/variantcontext/GenotypeType.java       |    47 -
 .../variant/variantcontext/GenotypesContext.java   |   724 -
 .../variant/variantcontext/JEXLMap.java            |   230 -
 .../variantcontext/LazyGenotypesContext.java       |   198 -
 .../variant/variantcontext/VariantContext.java     |  1653 -
 .../variantcontext/VariantContextBuilder.java      |   497 -
 .../variantcontext/VariantContextComparator.java   |    95 -
 .../variantcontext/VariantContextUtils.java        |   385 -
 .../variant/variantcontext/VariantJEXLContext.java |   109 -
 .../writer/AsyncVariantContextWriter.java          |    49 -
 .../variant/variantcontext/writer/BCF2Encoder.java |   279 -
 .../variantcontext/writer/BCF2FieldEncoder.java    |   528 -
 .../variantcontext/writer/BCF2FieldWriter.java     |   337 -
 .../writer/BCF2FieldWriterManager.java             |   180 -
 .../variant/variantcontext/writer/BCF2Writer.java  |   434 -
 .../writer/IndexingVariantContextWriter.java       |   227 -
 .../writer/IntGenotypeFieldAccessors.java          |    97 -
 .../variant/variantcontext/writer/Options.java     |    40 -
 .../writer/SortingVariantContextWriter.java        |    61 -
 .../writer/SortingVariantContextWriterBase.java    |   195 -
 .../variant/variantcontext/writer/VCFWriter.java   |   223 -
 .../writer/VariantContextWriter.java               |    44 -
 .../writer/VariantContextWriterBuilder.java        |   466 -
 .../writer/VariantContextWriterFactory.java        |   274 -
 .../variant/vcf/AbstractVCFCodec.java              |   781 -
 .../org/broadinstitute/variant/vcf/VCF3Codec.java  |   136 -
 .../org/broadinstitute/variant/vcf/VCFCodec.java   |   157 -
 .../variant/vcf/VCFCompoundHeaderLine.java         |   265 -
 .../broadinstitute/variant/vcf/VCFConstants.java   |   126 -
 .../variant/vcf/VCFContigHeaderLine.java           |    94 -
 .../org/broadinstitute/variant/vcf/VCFEncoder.java |   381 -
 .../broadinstitute/variant/vcf/VCFFileReader.java  |    79 -
 .../variant/vcf/VCFFilterHeaderLine.java           |    68 -
 .../variant/vcf/VCFFormatHeaderLine.java           |    62 -
 .../org/broadinstitute/variant/vcf/VCFHeader.java  |   498 -
 .../broadinstitute/variant/vcf/VCFHeaderLine.java  |   146 -
 .../variant/vcf/VCFHeaderLineCount.java            |    33 -
 .../variant/vcf/VCFHeaderLineTranslator.java       |   154 -
 .../variant/vcf/VCFHeaderLineType.java             |    33 -
 .../variant/vcf/VCFHeaderVersion.java              |   138 -
 .../variant/vcf/VCFIDHeaderLine.java               |    31 -
 .../variant/vcf/VCFInfoHeaderLine.java             |    59 -
 .../broadinstitute/variant/vcf/VCFRecordCodec.java |    63 -
 .../variant/vcf/VCFSimpleHeaderLine.java           |   118 -
 .../variant/vcf/VCFStandardHeaderLines.java        |   264 -
 .../org/broadinstitute/variant/vcf/VCFUtils.java   |   198 -
 src/java/picard/PicardException.java               |    41 +
 src/java/picard/Test.java                          |    56 +
 .../picard/analysis/AlignmentSummaryMetrics.java   |   162 +
 .../analysis/AlignmentSummaryMetricsCollector.java |   390 +
 .../analysis/BaseDistributionByCycleMetrics.java   |    13 +
 .../analysis/CollectAlignmentSummaryMetrics.java   |   145 +
 .../analysis/CollectBaseDistributionByCycle.java   |   188 +
 src/java/picard/analysis/CollectGcBiasMetrics.java |   236 +
 .../picard/analysis/CollectInsertSizeMetrics.java  |   157 +
 .../analysis/CollectJumpingLibraryMetrics.java     |   249 +
 .../picard/analysis/CollectMultipleMetrics.java    |   259 +
 src/java/picard/analysis/CollectOxoGMetrics.java   |   458 +
 .../analysis/CollectQualityYieldMetrics.java       |   179 +
 src/java/picard/analysis/CollectRawWgsMetrics.java |    37 +
 src/java/picard/analysis/CollectRnaSeqMetrics.java |   156 +
 src/java/picard/analysis/CollectRrbsMetrics.java   |   184 +
 src/java/picard/analysis/CollectWgsMetrics.java    |   314 +
 src/java/picard/analysis/CompareMetrics.java       |    53 +
 src/java/picard/analysis/GcBiasDetailMetrics.java  |    64 +
 src/java/picard/analysis/GcBiasSummaryMetrics.java |    57 +
 src/java/picard/analysis/InsertSizeMetrics.java    |    94 +
 .../picard/analysis/JumpingLibraryMetrics.java     |   127 +
 src/java/picard/analysis/MeanQualityByCycle.java   |   207 +
 .../picard/analysis/MetricAccumulationLevel.java   |    32 +
 .../picard/analysis/QualityScoreDistribution.java  |   152 +
 src/java/picard/analysis/RnaSeqMetrics.java        |   111 +
 src/java/picard/analysis/RrbsCpgDetailMetrics.java |    44 +
 src/java/picard/analysis/RrbsMetrics.java          |    56 +
 src/java/picard/analysis/RrbsMetricsCollector.java |   311 +
 src/java/picard/analysis/RrbsSummaryMetrics.java   |    59 +
 src/java/picard/analysis/SinglePassSamProgram.java |   153 +
 .../picard/analysis/artifacts/ArtifactCounter.java |   216 +
 .../CollectSequencingArtifactMetrics.java          |   290 +
 .../analysis/artifacts/ContextAccumulator.java     |   132 +
 .../artifacts/ConvertSequencingArtifactToOxoG.java |   168 +
 .../artifacts/SequencingArtifactMetrics.java       |   269 +
 src/java/picard/analysis/artifacts/Transition.java |    54 +
 .../analysis/directed/CalculateHsMetrics.java      |    98 +
 .../analysis/directed/CollectTargetedMetrics.java  |   158 +
 .../directed/CollectTargetedPcrMetrics.java        |    66 +
 .../analysis/directed/GcBiasMetricsCollector.java  |   298 +
 .../analysis/directed/HsMetricCollector.java       |   124 +
 src/java/picard/analysis/directed/HsMetrics.java   |   194 +
 .../directed/InsertSizeMetricsCollector.java       |   212 +
 .../analysis/directed/RnaSeqMetricsCollector.java  |   413 +
 .../analysis/directed/TargetMetricsCollector.java  |   759 +
 .../analysis/directed/TargetedPcrMetrics.java      |   119 +
 .../directed/TargetedPcrMetricsCollector.java      |    60 +
 .../picard/annotation/AnnotationException.java     |    40 +
 src/java/picard/annotation/Gene.java               |   238 +
 .../picard/annotation/GeneAnnotationReader.java    |    39 +
 src/java/picard/annotation/LocusFunction.java      |    33 +
 src/java/picard/annotation/RefFlatReader.java      |   191 +
 src/java/picard/cmdline/ClassFinder.java           |   183 +
 src/java/picard/cmdline/CommandLineDefaults.java   |    48 +
 .../picard/cmdline/CommandLineParseException.java  |    36 +
 src/java/picard/cmdline/CommandLineParser.java     |  1257 +
 .../CommandLineParserDefinitionException.java      |    36 +
 src/java/picard/cmdline/CommandLineProgram.java    |   331 +
 .../picard/cmdline/CommandLineProgramGroup.java    |    21 +
 .../cmdline/CommandLineProgramProperties.java      |    46 +
 .../picard/cmdline/CreateHtmlDocForProgram.java    |    39 +
 .../cmdline/CreateHtmlDocForStandardOptions.java   |    45 +
 src/java/picard/cmdline/NestedOptions.java         |    43 +
 src/java/picard/cmdline/Option.java                |    86 +
 src/java/picard/cmdline/PicardCommandLine.java     |   316 +
 src/java/picard/cmdline/PositionalArguments.java   |    52 +
 .../picard/cmdline/StandardOptionDefinitions.java  |    48 +
 src/java/picard/cmdline/programgroups/Fasta.java   |    13 +
 .../picard/cmdline/programgroups/Illumina.java     |    13 +
 .../picard/cmdline/programgroups/Intervals.java    |    13 +
 src/java/picard/cmdline/programgroups/Metrics.java |    13 +
 src/java/picard/cmdline/programgroups/None.java    |    13 +
 .../picard/cmdline/programgroups/SamOrBam.java     |    13 +
 src/java/picard/cmdline/programgroups/Testing.java |    13 +
 .../picard/cmdline/programgroups/VcfOrBcf.java     |    13 +
 src/java/picard/fastq/BamToBfq.java                |    94 +
 src/java/picard/fastq/BamToBfqWriter.java          |   444 +
 src/java/picard/fastq/Casava18ReadNameEncoder.java |    46 +
 src/java/picard/fastq/IlluminaReadNameEncoder.java |    28 +
 src/java/picard/fastq/ReadNameEncoder.java         |    17 +
 .../picard/illumina/CheckIlluminaDirectory.java    |   248 +
 .../picard/illumina/ClusterDataToSamConverter.java |   174 +
 .../CollectIlluminaBasecallingMetrics.java         |   276 +
 .../illumina/CollectIlluminaLaneMetrics.java       |   161 +
 .../picard/illumina/ExtractIlluminaBarcodes.java   |   717 +
 .../illumina/IlluminaBasecallingMetrics.java       |    83 +
 .../illumina/IlluminaBasecallsConverter.java       |   901 +
 .../picard/illumina/IlluminaBasecallsToFastq.java  |   488 +
 .../picard/illumina/IlluminaBasecallsToSam.java    |   546 +
 src/java/picard/illumina/IlluminaLaneMetrics.java  |    23 +
 .../picard/illumina/IlluminaPhasingMetrics.java    |    68 +
 .../illumina/LanePhasingMetricsCollector.java      |    84 +
 src/java/picard/illumina/MarkIlluminaAdapters.java |   277 +
 src/java/picard/illumina/parser/BarcodeParser.java |    84 +
 src/java/picard/illumina/parser/BclData.java       |    30 +
 src/java/picard/illumina/parser/BclParser.java     |   295 +
 src/java/picard/illumina/parser/ClusterData.java   |   200 +
 .../parser/ClusterIntensityFileReader.java         |   216 +
 .../illumina/parser/CycleIlluminaFileMap.java      |    74 +
 src/java/picard/illumina/parser/FilterParser.java  |    83 +
 .../illumina/parser/FourChannelIntensityData.java  |   103 +
 src/java/picard/illumina/parser/IlluminaData.java  |    69 +
 .../illumina/parser/IlluminaDataProvider.java      |   230 +
 .../parser/IlluminaDataProviderFactory.java        |   389 +
 .../picard/illumina/parser/IlluminaDataType.java   |    35 +
 .../picard/illumina/parser/IlluminaFileMap.java    |    58 +
 .../parser/IlluminaFileNotFoundException.java      |    44 +
 .../picard/illumina/parser/IlluminaFileUtil.java   |   263 +
 .../illumina/parser/IlluminaMetricsCode.java       |    42 +
 .../picard/illumina/parser/IlluminaParser.java     |    75 +
 .../illumina/parser/IlluminaTextIterator.java      |   121 +
 .../picard/illumina/parser/IntensityChannel.java   |    38 +
 .../illumina/parser/MultiTileBclFileUtil.java      |   115 +
 .../picard/illumina/parser/MultiTileBclParser.java |   170 +
 .../picard/illumina/parser/MultiTileFileUtil.java  |   120 +
 .../illumina/parser/MultiTileFilterParser.java     |    64 +
 .../illumina/parser/MultiTileLocsParser.java       |    82 +
 .../picard/illumina/parser/MultiTileParser.java    |   128 +
 src/java/picard/illumina/parser/OutputMapping.java |   183 +
 .../illumina/parser/ParameterizedFileUtil.java     |   188 +
 .../picard/illumina/parser/PerTileCycleParser.java |   200 +
 .../picard/illumina/parser/PerTileFileUtil.java    |    83 +
 src/java/picard/illumina/parser/PerTileParser.java |   142 +
 .../illumina/parser/PerTilePerCycleFileUtil.java   |   268 +
 src/java/picard/illumina/parser/PosParser.java     |   133 +
 src/java/picard/illumina/parser/Range.java         |    65 +
 src/java/picard/illumina/parser/ReadData.java      |    96 +
 .../picard/illumina/parser/ReadDescriptor.java     |    57 +
 src/java/picard/illumina/parser/ReadStructure.java |   361 +
 src/java/picard/illumina/parser/ReadType.java      |    39 +
 src/java/picard/illumina/parser/Tile.java          |   119 +
 src/java/picard/illumina/parser/TileIndex.java     |   170 +
 .../picard/illumina/parser/TileMetricsUtil.java    |   161 +
 .../picard/illumina/parser/TilePhasingValue.java   |    30 +
 .../picard/illumina/parser/TileTemplateRead.java   |    32 +
 .../illumina/parser/fakers/BarcodeFileFaker.java   |    25 +
 .../illumina/parser/fakers/BciFileFaker.java       |    52 +
 .../illumina/parser/fakers/BclFileFaker.java       |    30 +
 .../illumina/parser/fakers/ClocsFileFaker.java     |    25 +
 .../picard/illumina/parser/fakers/FileFaker.java   |    79 +
 .../illumina/parser/fakers/FilterFileFaker.java    |    34 +
 .../illumina/parser/fakers/LocsFileFaker.java      |    28 +
 .../parser/fakers/MultiTileBclFileFaker.java       |    32 +
 .../parser/fakers/MultiTileLocsFileFaker.java      |    30 +
 .../illumina/parser/fakers/PosFileFaker.java       |    25 +
 .../AbstractIlluminaPositionFileReader.java        |   177 +
 .../illumina/parser/readers/BarcodeFileReader.java |    52 +
 .../illumina/parser/readers/BclIndexReader.java    |    75 +
 .../readers/BclQualityEvaluationStrategy.java      |    99 +
 .../picard/illumina/parser/readers/BclReader.java  |   357 +
 .../illumina/parser/readers/ClocsFileReader.java   |   157 +
 .../illumina/parser/readers/FilterFileReader.java  |   114 +
 .../illumina/parser/readers/LocsFileReader.java    |   119 +
 .../parser/readers/MMapBackedIteratorFactory.java  |   298 +
 .../illumina/parser/readers/PosFileReader.java     |    89 +
 .../parser/readers/TileMetricsOutReader.java       |   167 +
 .../quality/CollectHiSeqXPfFailMetrics.java        |   510 +
 src/java/picard/metrics/GcBiasMetrics.java         |    40 +
 src/java/picard/metrics/MultiLevelCollector.java   |   341 +
 src/java/picard/metrics/MultilevelMetrics.java     |    18 +
 .../picard/metrics/PerUnitMetricCollector.java     |    61 +
 src/java/picard/metrics/SAMRecordAndReference.java |    22 +
 .../SAMRecordAndReferenceMultiLevelCollector.java  |    15 +
 .../metrics/SAMRecordMultiLevelCollector.java      |    14 +
 src/java/picard/pedigree/PedFile.java              |   171 +
 src/java/picard/pedigree/Sex.java                  |    26 +
 src/java/picard/reference/ExtractSequences.java    |   116 +
 src/java/picard/reference/NormalizeFasta.java      |    97 +
 src/java/picard/sam/AbstractAlignmentMerger.java   |   756 +
 src/java/picard/sam/AddCommentsToBam.java          |    63 +
 src/java/picard/sam/AddOrReplaceReadGroups.java    |   135 +
 src/java/picard/sam/BamIndexStats.java             |    80 +
 .../sam/BestEndMapqPrimaryAlignmentStrategy.java   |   104 +
 .../BestMapqPrimaryAlignmentSelectionStrategy.java |    96 +
 src/java/picard/sam/BuildBamIndex.java             |   144 +
 .../picard/sam/CalculateReadGroupChecksum.java     |    64 +
 src/java/picard/sam/CheckTerminatorBlock.java      |    50 +
 src/java/picard/sam/CleanSam.java                  |   107 +
 src/java/picard/sam/CompareSAMs.java               |   528 +
 src/java/picard/sam/CreateSequenceDictionary.java  |   185 +
 src/java/picard/sam/DownsampleSam.java             |    77 +
 src/java/picard/sam/DuplicationMetrics.java        |   203 +
 ...tFragmentPrimaryAlignmentSelectionStrategy.java |    93 +
 src/java/picard/sam/FastqToSam.java                |   499 +
 src/java/picard/sam/FilterSamReads.java            |   232 +
 src/java/picard/sam/FixMateInformation.java        |   269 +
 src/java/picard/sam/GatherBamFiles.java            |   104 +
 src/java/picard/sam/HitsForInsert.java             |   283 +
 src/java/picard/sam/MergeBamAlignment.java         |   290 +
 src/java/picard/sam/MergeSamFiles.java             |   176 +
 ...stDistantPrimaryAlignmentSelectionStrategy.java |   188 +
 .../picard/sam/MultiHitAlignedReadIterator.java    |   215 +
 .../picard/sam/PositionBasedDownsampleSam.java     |   380 +
 .../sam/PrimaryAlignmentSelectionStrategy.java     |    37 +
 src/java/picard/sam/ReorderSam.java                |   245 +
 src/java/picard/sam/ReplaceSamHeader.java          |   117 +
 ...RevertOriginalBaseQualitiesAndAddMateCigar.java |   207 +
 src/java/picard/sam/RevertSam.java                 |   401 +
 src/java/picard/sam/SamAlignmentMerger.java        |   338 +
 src/java/picard/sam/SamFormatConverter.java        |    91 +
 src/java/picard/sam/SamToFastq.java                |   466 +
 src/java/picard/sam/SortSam.java                   |    92 +
 src/java/picard/sam/SplitSamByLibrary.java         |   150 +
 src/java/picard/sam/ValidateSamFile.java           |   173 +
 src/java/picard/sam/ViewSam.java                   |   163 +
 .../markduplicates/EstimateLibraryComplexity.java  |   537 +
 .../picard/sam/markduplicates/MarkDuplicates.java  |   539 +
 .../MarkDuplicatesWithMateCigar.java               |   205 +
 .../MarkDuplicatesWithMateCigarIterator.java       |   613 +
 .../AbstractMarkDuplicatesCommandLineProgram.java  |   287 +
 ...ctOpticalDuplicateFinderCommandLineProgram.java |    71 +
 .../DiskBasedReadEndsForMarkDuplicatesMap.java     |   107 +
 .../markduplicates/util/LibraryIdGenerator.java    |   113 +
 .../picard/sam/markduplicates/util/MarkQueue.java  |   371 +
 .../MemoryBasedReadEndsForMarkDuplicatesMap.java   |    72 +
 .../util/OpticalDuplicateFinder.java               |   203 +
 .../util/PhysicalLocationForMateCigar.java         |   102 +
 .../util/PhysicalLocationForMateCigarSet.java      |    77 +
 .../picard/sam/markduplicates/util/ReadEnds.java   |    91 +
 .../util/ReadEndsForMarkDuplicates.java            |    47 +
 .../util/ReadEndsForMarkDuplicatesCodec.java       |   111 +
 .../util/ReadEndsForMarkDuplicatesMap.java         |    61 +
 .../markduplicates/util/ReadEndsForMateCigar.java  |   167 +
 ...amRecordWithOrdinalAndSetDuplicateReadFlag.java |    49 +
 src/java/picard/sam/util/PhysicalLocation.java     |   118 +
 src/java/picard/sam/util/ReadNameParsingUtils.java |    83 +
 src/java/picard/util/AbstractInputParser.java      |   199 +
 src/java/picard/util/AdapterMarker.java            |   340 +
 src/java/picard/util/AdapterPair.java              |    16 +
 src/java/picard/util/AsyncIterator.java            |   170 +
 src/java/picard/util/AtomicIterator.java           |    12 +
 src/java/picard/util/BaitDesigner.java             |   623 +
 src/java/picard/util/BasicInputParser.java         |   176 +
 src/java/picard/util/BedToIntervalList.java        |   138 +
 src/java/picard/util/CircularByteBuffer.java       |    94 +
 src/java/picard/util/ClippingUtility.java          |   278 +
 src/java/picard/util/CsvInputParser.java           |    36 +
 src/java/picard/util/DbSnpBitSetUtil.java          |   146 +
 .../util/DelimitedTextFileWithHeaderIterator.java  |   115 +
 src/java/picard/util/FifoBuffer.java               |   177 +
 .../picard/util/FileChannelJDKBugWorkAround.java   |    64 +
 src/java/picard/util/IlluminaUtil.java             |   224 +
 src/java/picard/util/IntervalListScatterer.java    |   180 +
 src/java/picard/util/IntervalListTools.java        |   364 +
 src/java/picard/util/Iterators.java                |    26 +
 src/java/picard/util/LiftOverIntervalList.java     |   114 +
 src/java/picard/util/MathUtil.java                 |   362 +
 src/java/picard/util/MetricsDoclet.java            |   178 +
 src/java/picard/util/RExecutor.java                |   113 +
 src/java/picard/util/ScatterIntervalsByNs.java     |   187 +
 src/java/picard/util/TabbedInputParser.java        |    64 +
 .../util/TabbedTextFileWithHeaderParser.java       |   177 +
 src/java/picard/util/TestNGUtil.java               |    96 +
 src/java/picard/util/UnsignedTypeUtil.java         |    28 +
 src/java/picard/util/VariantType.java              |    44 +
 .../vcf/ByIntervalListVariantContextIterator.java  |    52 +
 src/java/picard/vcf/CallingMetricAccumulator.java  |   300 +
 .../picard/vcf/CollectVariantCallingMetrics.java   |   310 +
 src/java/picard/vcf/GA4GHScheme.java               |    72 +
 .../picard/vcf/GA4GHSchemeWithMissingAsHomRef.java |    58 +
 src/java/picard/vcf/GatherVcfs.java                |   270 +
 src/java/picard/vcf/GenotypeConcordance.java       |   654 +
 .../vcf/GenotypeConcordanceContingencyMetrics.java |    61 +
 src/java/picard/vcf/GenotypeConcordanceCounts.java |   303 +
 .../vcf/GenotypeConcordanceDetailMetrics.java      |    40 +
 src/java/picard/vcf/GenotypeConcordanceScheme.java |   137 +
 .../vcf/GenotypeConcordanceSchemeFactory.java      |    39 +
 .../picard/vcf/GenotypeConcordanceStateCodes.java  |    23 +
 src/java/picard/vcf/GenotypeConcordanceStates.java |   186 +
 .../vcf/GenotypeConcordanceSummaryMetrics.java     |    90 +
 src/java/picard/vcf/LiftoverVcf.java               |   233 +
 src/java/picard/vcf/MakeSitesOnlyVcf.java          |   111 +
 src/java/picard/vcf/MergeVcfs.java                 |   161 +
 src/java/picard/vcf/RenameSampleInVcf.java         |    99 +
 src/java/picard/vcf/SortVcf.java                   |   177 +
 src/java/picard/vcf/SplitVcfs.java                 |   119 +
 .../picard/vcf/UpdateVcfSequenceDictionary.java    |   110 +
 src/java/picard/vcf/VcfFormatConverter.java        |   119 +
 src/java/picard/vcf/VcfToIntervalList.java         |    50 +
 .../picard/vcf/filter/AlleleBalanceFilter.java     |    88 +
 src/java/picard/vcf/filter/DepthFilter.java        |    48 +
 .../vcf/filter/FilterApplyingVariantIterator.java  |   134 +
 src/java/picard/vcf/filter/FilterVcf.java          |   117 +
 src/java/picard/vcf/filter/FisherStrandFilter.java |    55 +
 src/java/picard/vcf/filter/GenotypeFilter.java     |    40 +
 .../picard/vcf/filter/GenotypeQualityFilter.java   |    46 +
 src/java/picard/vcf/filter/QdFilter.java           |    62 +
 src/java/picard/vcf/filter/VariantFilter.java      |    44 +
 .../vcf/processor/VariantAccumulatorExecutor.java  |   169 +
 .../vcf/processor/VariantIteratorProducer.java     |   278 +
 .../picard/vcf/processor/VariantProcessor.java     |   171 +
 src/java/picard/vcf/processor/VcfFileSegment.java  |    89 +
 .../vcf/processor/VcfFileSegmentGenerator.java     |   203 +
 .../PredicateFilterDecoratingClosableIterator.java |    80 +
 src/scripts/build_intel_deflater.sh                |    64 -
 src/scripts/explain_sam_flags.py                   |    65 -
 src/scripts/net/sf/picard/analysis/gcBias.R        |    77 -
 .../picard/analysis/baseDistributionByCycle.R      |    52 +
 src/scripts/picard/analysis/gcBias.R               |   109 +
 .../sf => }/picard/analysis/insertSizeHistogram.R  |     0
 .../sf => }/picard/analysis/meanQualityByCycle.R   |     0
 .../picard/analysis/qualityScoreDistribution.R     |     0
 .../{net/sf => }/picard/analysis/rnaSeqCoverage.R  |     0
 src/scripts/picard/analysis/rrbsQc.R               |   109 +
 src/scripts/picard/docker_helper.sh                |    27 +
 src/scripts/release_picard.sh                      |   242 +-
 .../CollectAlignmentSummaryMetricsTest.java        |   507 -
 .../analysis/CollectInsertSizeMetricsTest.java     |   196 -
 .../picard/analysis/CollectRnaSeqMetricsTest.java  |   232 -
 .../picard/analysis/MultiLevelCollectorTest.java   |   188 -
 .../sf/picard/cmdline/CommandLineParserTest.java   |   906 -
 .../filter/FailsVendorReadQualityFilterTest.java   |    65 -
 .../sf/picard/filter/SolexaNoiseFilterTest.java    |    73 -
 .../java/net/sf/picard/filter/TagFilterTest.java   |    78 -
 .../illumina/CheckIlluminaDirectoryTest.java       |   388 -
 .../illumina/ExtractIlluminaBarcodesTest.java      |   315 -
 .../illumina/IlluminaBasecallsToFastqTest.java     |   179 -
 .../IlluminaBasecallsToSamAdapterClippingTest.java |    93 -
 .../illumina/IlluminaBasecallsToSamTest.java       |   161 -
 .../net/sf/picard/illumina/ReadStructureTest.java  |   178 -
 .../sf/picard/illumina/parser/BclParserTest.java   |   464 -
 .../net/sf/picard/illumina/parser/BinTdUtil.java   |   307 -
 .../illumina/parser/CycleIlluminaFileMapTest.java  |   121 -
 .../picard/illumina/parser/FilterParserTest.java   |   171 -
 .../parser/IlluminaDataProviderFactoryTest.java    |    17 -
 .../illumina/parser/IlluminaDataProviderTest.java  |   270 -
 .../illumina/parser/IlluminaFileUtilTest.java      |   660 -
 .../picard/illumina/parser/PerTileParserTest.java  |   169 -
 .../illumina/parser/PerTilePerCycleParserTest.java |   197 -
 .../sf/picard/illumina/parser/PosParserTest.java   |   201 -
 .../illumina/parser/fakers/BclFileFakerTest.java   |    59 -
 .../AbstractIlluminaPositionFileReaderTest.java    |   156 -
 .../illumina/parser/readers/BclReaderTest.java     |   172 -
 .../parser/readers/ClocsFileReaderTest.java        |   160 -
 .../parser/readers/FilterFileReaderTest.java       |    65 -
 .../parser/readers/IlluminaFileUtilTest.java       |    11 -
 .../parser/readers/LocsFileReaderTest.java         |    69 -
 .../readers/MMapBackedIteratorFactoryTest.java     |   207 -
 .../illumina/parser/readers/PosFileReaderTest.java |    91 -
 src/tests/java/net/sf/picard/io/IoUtilTest.java    |   139 -
 .../java/net/sf/picard/liftover/LiftOverTest.java  |   459 -
 .../net/sf/picard/metrics/MetricsFileTest.java     |   155 -
 .../sf/picard/reference/FastaSequenceFileTest.java |    72 -
 .../picard/reference/FastaSequenceIndexTest.java   |   253 -
 .../reference/IndexedFastaSequenceFileTest.java    |   303 -
 .../reference/ReferenceSequenceFileWalkerTest.java |    67 -
 .../picard/reference/ReferenceSequenceTests.java   |    98 -
 .../net/sf/picard/sam/AddCommentsToBamTest.java    |    63 -
 src/tests/java/net/sf/picard/sam/CleanSamTest.java |    99 -
 .../java/net/sf/picard/sam/CompareSAMsTest.java    |   136 -
 .../picard/sam/CreateSequenceDictionaryTest.java   |    68 -
 .../java/net/sf/picard/sam/FastqToSamTest.java     |   255 -
 .../java/net/sf/picard/sam/MarkDuplicatesTest.java |   310 -
 .../net/sf/picard/sam/MergeBamAlignmentTest.java   |  1720 --
 .../java/net/sf/picard/sam/MergeSamFilesTest.java  |    59 -
 ...MergingSamRecordIteratorGroupCollisionTest.java |   524 -
 .../picard/sam/MergingSamRecordIteratorTest.java   |   264 -
 .../sf/picard/sam/ProgramRecordChainingTest.java   |    60 -
 .../java/net/sf/picard/sam/RevertSamTest.java      |   172 -
 .../net/sf/picard/sam/SamFileHeaderMergerTest.java |   256 -
 .../java/net/sf/picard/sam/SamToFastqTest.java     |   428 -
 .../SequenceNameTruncationAndValidationTest.java   |    93 -
 .../net/sf/picard/sam/ValidateSamFileTest.java     |   452 -
 src/tests/java/net/sf/picard/sam/ViewSamTest.java  |    60 -
 .../net/sf/picard/sam/testers/CleanSamTester.java  |    62 -
 .../picard/sam/testers/MarkDuplicatesTester.java   |    55 -
 .../net/sf/picard/sam/testers/SamFileTester.java   |   224 -
 .../java/net/sf/picard/util/CigarUtilTest.java     |   145 -
 .../net/sf/picard/util/ClippingUtilityTest.java    |   380 -
 .../DelimitedTextFileWithHeaderIteratorTest.java   |    95 -
 .../util/FileChannelJDKBugWorkAroundTest.java      |    36 -
 .../java/net/sf/picard/util/HistogramTest.java     |    84 -
 src/tests/java/net/sf/picard/util/IOUtilTest.java  |    79 -
 .../java/net/sf/picard/util/IlluminaUtilTest.java  |    87 -
 .../java/net/sf/picard/util/IntervalListTest.java  |   387 -
 .../net/sf/picard/util/IntervalListToolsTest.java  |   167 -
 .../net/sf/picard/util/IntervalTreeMapTest.java    |    47 -
 .../java/net/sf/picard/util/IntervalTreeTest.java  |   187 -
 .../java/net/sf/picard/util/MathUtilTest.java      |    45 -
 .../net/sf/picard/util/MergingIteratorTest.java    |   176 -
 .../picard/util/QualityEncodingDetectorTest.java   |   109 -
 .../java/net/sf/picard/util/RExecutorTest.java     |    50 -
 .../net/sf/picard/util/SamLocusIteratorTest.java   |   232 -
 .../sf/picard/util/SolexaQualityConverterTest.java |    86 -
 .../util/TabbedTextFileWithHeaderParserTest.java   |    95 -
 .../net/sf/picard/util/TextFileParsersTest.java    |   310 -
 .../net/sf/picard/util/UnsignedTypeUtilTest.java   |    75 -
 .../java/net/sf/picard/vcf/MergeVcfsTest.java      |   179 -
 .../java/net/sf/picard/vcf/SplitVcfsTest.java      |   105 -
 .../picard/vcf/VariantContextComparatorTest.java   |   107 -
 .../net/sf/picard/vcf/VcfFormatConverterTest.java  |   118 -
 .../java/net/sf/samtools/ArrayTagValueTest.java    |   179 -
 .../java/net/sf/samtools/BAMFileIndexTest.java     |   515 -
 .../java/net/sf/samtools/BAMFileWriterTest.java    |   120 -
 .../java/net/sf/samtools/BAMIndexWriterTest.java   |   216 -
 .../java/net/sf/samtools/BAMIteratorTest.java      |    69 -
 .../java/net/sf/samtools/BAMRemoteFileTest.java    |   316 -
 .../java/net/sf/samtools/BamFileIoUtilsTest.java   |    83 -
 src/tests/java/net/sf/samtools/BinTest.java        |    39 -
 src/tests/java/net/sf/samtools/ChunkTest.java      |    78 -
 src/tests/java/net/sf/samtools/CigarCodecTest.java |   118 -
 src/tests/java/net/sf/samtools/CigarTest.java      |    83 -
 src/tests/java/net/sf/samtools/SAMCloneTest.java   |    52 -
 .../java/net/sf/samtools/SAMFileReaderTest.java    |    89 -
 .../net/sf/samtools/SAMFileWriterFactoryTest.java  |    70 -
 .../java/net/sf/samtools/SAMIntegerTagTest.java    |   208 -
 .../java/net/sf/samtools/SAMTextReaderTest.java    |   135 -
 .../java/net/sf/samtools/SAMTextWriterTest.java    |    95 -
 src/tests/java/net/sf/samtools/SAMUtilsTest.java   |    45 -
 .../sf/samtools/SamHeaderRecordComparatorTest.java |    72 -
 .../java/net/sf/samtools/SamPairUtilTest.java      |   155 -
 .../java/net/sf/samtools/SamReaderSortTest.java    |   104 -
 .../seekablestream/SeekableBufferedStreamTest.java |   162 -
 .../seekablestream/SeekableFTPStreamTest.java      |   107 -
 .../seekablestream/SeekableFileStreamTest.java     |    52 -
 .../seekablestream/SeekableStreamFactoryTest.java  |    15 -
 .../java/net/sf/samtools/util/BinaryCodecTest.java |   270 -
 .../util/BlockCompressedFilePointerUtilTest.java   |    96 -
 .../util/BlockCompressedOutputStreamTest.java      |   102 -
 .../util/BlockCompressedTerminatorTest.java        |    59 -
 .../java/net/sf/samtools/util/Iso8601DateTest.java |    57 -
 src/tests/java/net/sf/samtools/util/IupacTest.java |    70 -
 .../sf/samtools/util/RelativeIso8601DateTest.java  |    39 -
 .../net/sf/samtools/util/SequenceUtilTest.java     |   130 -
 .../sf/samtools/util/SortingCollectionTest.java    |   232 -
 .../samtools/util/SortingLongCollectionTest.java   |   118 -
 .../net/sf/samtools/util/StringLineReaderTest.java |   119 -
 .../java/net/sf/samtools/util/StringUtilTest.java  |    70 -
 .../broad/tribble/AbstractFeatureReaderTest.java   |    50 -
 .../java/org/broad/tribble/BinaryFeaturesTest.java |    58 -
 .../java/org/broad/tribble/FeatureReaderTest.java  |   167 -
 src/tests/java/org/broad/tribble/TestUtils.java    |    29 -
 .../java/org/broad/tribble/bed/BEDCodecTest.java   |   224 -
 .../org/broad/tribble/dbsnp/OldDbSNPCodecTest.java |   121 -
 .../org/broad/tribble/gelitext/GeliTextTest.java   |    99 -
 .../org/broad/tribble/index/IndexFactoryTest.java  |    80 -
 .../java/org/broad/tribble/index/IndexTest.java    |    50 -
 .../tribble/index/interval/IntervalTreeTest.java   |   153 -
 .../tribble/index/linear/LinearIndexTest.java      |   243 -
 .../broad/tribble/index/tabix/TabixIndexTest.java  |    65 -
 .../broad/tribble/readers/AsciiLineReaderTest.java |    52 -
 .../readers/AsynchronousLineReaderTest.java        |    31 -
 .../broad/tribble/readers/LineReaderUtilTest.java  |    27 -
 .../readers/LongLineBufferedReaderTest.java        |    33 -
 .../readers/PositionalBufferedStreamTest.java      |   121 -
 .../java/org/broad/tribble/readers/ReaderTest.java |   179 -
 .../org/broad/tribble/readers/TabixReaderTest.java |   107 -
 .../org/broad/tribble/util/ParsingUtilsTest.java   |   114 -
 .../org/broad/tribble/util/ftp/FTPClientTest.java  |   266 -
 .../org/broad/tribble/util/ftp/FTPUtilsTest.java   |    31 -
 .../broadinstitute/variant/VariantBaseTest.java    |   118 -
 .../variant/bcf2/BCF2EncoderDecoderUnitTest.java   |   587 -
 .../variant/bcf2/BCF2UtilsUnitTest.java            |   183 -
 .../variant/variantcontext/AlleleUnitTest.java     |   180 -
 .../GenotypeLikelihoodsUnitTest.java               |   203 -
 .../variant/variantcontext/GenotypeUnitTest.java   |   101 -
 .../variantcontext/GenotypesContextUnitTest.java   |   312 -
 .../variantcontext/VariantContextTestProvider.java |   990 -
 .../variantcontext/VariantContextUnitTest.java     |   980 -
 .../variantcontext/VariantJEXLContextUnitTest.java |   130 -
 .../writer/TabixOnTheFlyIndexCreationTest.java     |    66 -
 .../variantcontext/writer/VCFWriterUnitTest.java   |   219 -
 .../VariantContextWriterBuilderUnitTest.java       |   343 -
 .../writer/VariantContextWritersUnitTest.java      |   163 -
 .../variant/vcf/IndexFactoryUnitTest.java          |    96 -
 .../variant/vcf/VCFCompoundHeaderLineUnitTest.java |    46 -
 .../broadinstitute/variant/vcf/VCFEncoderTest.java |    45 -
 .../variant/vcf/VCFHeaderUnitTest.java             |   211 -
 .../vcf/VCFStandardHeaderLinesUnitTest.java        |   154 -
 .../CollectAlignmentSummaryMetricsTest.java        |   509 +
 .../picard/analysis/CollectGcBiasMetricsTest.java  |   211 +
 .../analysis/CollectInsertSizeMetricsTest.java     |   226 +
 .../analysis/CollectMultipleMetricsTest.java       |   415 +
 .../picard/analysis/CollectRnaSeqMetricsTest.java  |   241 +
 .../picard/analysis/MultiLevelCollectorTest.java   |   195 +
 .../CollectSequencingArtifactMetricsTest.java      |   112 +
 .../java/picard/cmdline/CommandLineParserTest.java |   980 +
 .../picard/cmdline/CommandLineProgramTest.java     |    54 +
 .../illumina/CheckIlluminaDirectoryTest.java       |   384 +
 .../CollectIlluminaBasecallingMetricsTest.java     |   171 +
 .../illumina/ExtractIlluminaBarcodesTest.java      |   321 +
 .../illumina/IlluminaBasecallsToFastqTest.java     |   184 +
 .../IlluminaBasecallsToSamAdapterClippingTest.java |    98 +
 .../illumina/IlluminaBasecallsToSamTest.java       |   168 +
 .../illumina/IlluminaLaneMetricsCollectorTest.java |    76 +
 .../java/picard/illumina/ReadStructureTest.java    |   179 +
 .../java/picard/illumina/parser/BclParserTest.java |   464 +
 .../java/picard/illumina/parser/BinTdUtil.java     |   312 +
 .../illumina/parser/CycleIlluminaFileMapTest.java  |   116 +
 .../picard/illumina/parser/FilterParserTest.java   |   171 +
 .../parser/IlluminaDataProviderFactoryTest.java    |    16 +
 .../illumina/parser/IlluminaDataProviderTest.java  |   270 +
 .../illumina/parser/IlluminaFileUtilTest.java      |   658 +
 .../picard/illumina/parser/PerTileParserTest.java  |   173 +
 .../illumina/parser/PerTilePerCycleParserTest.java |   197 +
 .../java/picard/illumina/parser/PosParserTest.java |   206 +
 .../illumina/parser/fakers/BclFileFakerTest.java   |    59 +
 .../AbstractIlluminaPositionFileReaderTest.java    |   156 +
 .../illumina/parser/readers/BclReaderTest.java     |   172 +
 .../parser/readers/ClocsFileReaderTest.java        |   160 +
 .../parser/readers/FilterFileReaderTest.java       |    93 +
 .../parser/readers/IlluminaFileUtilTest.java       |    11 +
 .../parser/readers/LocsFileReaderTest.java         |    69 +
 .../readers/MMapBackedIteratorFactoryTest.java     |   210 +
 .../illumina/parser/readers/PosFileReaderTest.java |    91 +
 .../picard/metrics/CollectRrbsMetricsTest.java     |   102 +
 src/tests/java/picard/pedigree/PedFileTest.java    |    58 +
 .../java/picard/sam/AddCommentsToBamTest.java      |    70 +
 src/tests/java/picard/sam/CleanSamTest.java        |   107 +
 src/tests/java/picard/sam/CompareSAMsTest.java     |   141 +
 .../picard/sam/CreateSequenceDictionaryTest.java   |    73 +
 src/tests/java/picard/sam/FastqToSamTest.java      |   309 +
 src/tests/java/picard/sam/GatherBamFilesTest.java  |    65 +
 .../java/picard/sam/MergeBamAlignmentTest.java     |  1676 +
 src/tests/java/picard/sam/MergeSamFilesTest.java   |    66 +
 .../picard/sam/PositionBasedDownsampleSamTest.java |   248 +
 src/tests/java/picard/sam/RevertSamTest.java       |   178 +
 .../java/picard/sam/SamFileConverterTest.java      |   100 +
 src/tests/java/picard/sam/SamToFastqTest.java      |   432 +
 .../java/picard/sam/SplitSamByLibraryTest.java     |   112 +
 src/tests/java/picard/sam/ViewSamTest.java         |   136 +
 ...stractMarkDuplicatesCommandLineProgramTest.java |   543 +
 ...ractMarkDuplicatesCommandLineProgramTester.java |   170 +
 .../sam/markduplicates/MarkDuplicatesTest.java     |   208 +
 .../sam/markduplicates/MarkDuplicatesTester.java   |    42 +
 .../MarkDuplicatesWithMateCigarTest.java           |   107 +
 .../MarkDuplicatesWithMateCigarTester.java         |    46 +
 .../SimpleMarkDuplicatesWithMateCigar.java         |   222 +
 .../SimpleMarkDuplicatesWithMateCigarTest.java     |    44 +
 .../SimpleMarkDuplicatesWithMateCigarTester.java   |    45 +
 .../util/OpticalDuplicateFinderTest.java           |    76 +
 .../java/picard/sam/testers/CleanSamTester.java    |    65 +
 .../java/picard/sam/testers/SamFileTester.java     |   307 +
 .../java/picard/sam/testers/ValidateSamTester.java |    22 +
 .../java/picard/util/BedToIntervalListTest.java    |   103 +
 .../java/picard/util/ClippingUtilityTest.java      |   380 +
 .../DelimitedTextFileWithHeaderIteratorTest.java   |    96 +
 src/tests/java/picard/util/FifoBufferTest.java     |    74 +
 .../util/FileChannelJDKBugWorkAroundTest.java      |    36 +
 src/tests/java/picard/util/IlluminaUtilTest.java   |    87 +
 .../picard/util/IntervalListScattererTest.java     |   203 +
 src/tests/java/picard/util/MathUtilTest.java       |    86 +
 .../java/picard/util/MergingIteratorTest.java      |   177 +
 src/tests/java/picard/util/RExecutorTest.java      |    50 +
 .../java/picard/util/ScatterIntervalsByNsTest.java |   165 +
 .../util/TabbedTextFileWithHeaderParserTest.java   |    94 +
 .../java/picard/util/TextFileParsersTest.java      |   314 +
 .../java/picard/util/UnsignedTypeUtilTest.java     |    75 +
 .../picard/vcf/AbstractVcfMergingClpTester.java    |   174 +
 .../vcf/CollectVariantCallingMetricsTest.java      |   119 +
 .../vcf/GenotypeConcordanceGA4GHSchemeTest.java    |   157 +
 ...otypeConcordanceGA4GHSchemeWithMissingTest.java |    79 +
 .../java/picard/vcf/GenotypeConcordanceTest.java   |   495 +
 src/tests/java/picard/vcf/MergeVcfsTest.java       |    14 +
 src/tests/java/picard/vcf/SortVcfsTest.java        |   120 +
 src/tests/java/picard/vcf/SplitVcfsTest.java       |    59 +
 src/tests/java/picard/vcf/TestFilterVcf.java       |   142 +
 .../vcf/UpdateVcfSequenceDictionaryTest.java       |    74 +
 .../picard/vcf/VariantContextComparatorTest.java   |   107 +
 .../java/picard/vcf/VcfFormatConverterTest.java    |   127 +
 .../vcf/processor/AccumulatorExecutorTest.java     |    86 +
 .../picard/vcf/processor/ByWholeContigTest.java    |    46 +
 .../java/picard/vcf/processor/ThreadsafeTest.java  |    96 +
 .../vcf/processor/VcfFileSegmentGeneratorTest.java |    55 +
 .../vcf/processor/WidthLimitingDecoratorTest.java  |   122 +
 src/tests/resources/testng.xml                     |    39 +
 .../illumina/25T8B25T/fastq/AACAATGG.1.fastq       |    16 -
 .../illumina/25T8B25T/fastq/AACAATGG.2.fastq       |    16 -
 .../25T8B25T/fastq/AACAATGG.barcode_1.fastq        |    16 -
 .../illumina/25T8B25T/fastq/AACGCATT.1.fastq       |    28 -
 .../illumina/25T8B25T/fastq/AACGCATT.2.fastq       |    28 -
 .../25T8B25T/fastq/AACGCATT.barcode_1.fastq        |    28 -
 .../illumina/25T8B25T/fastq/ACAGGTAT.1.fastq       |    16 -
 .../illumina/25T8B25T/fastq/ACAGGTAT.2.fastq       |    16 -
 .../25T8B25T/fastq/ACAGGTAT.barcode_1.fastq        |    16 -
 .../illumina/25T8B25T/fastq/ACAGTTGA.1.fastq       |     8 -
 .../illumina/25T8B25T/fastq/ACAGTTGA.2.fastq       |     8 -
 .../25T8B25T/fastq/ACAGTTGA.barcode_1.fastq        |     8 -
 .../illumina/25T8B25T/fastq/ACTAAGAC.1.fastq       |    16 -
 .../illumina/25T8B25T/fastq/ACTAAGAC.2.fastq       |    16 -
 .../25T8B25T/fastq/ACTAAGAC.barcode_1.fastq        |    16 -
 .../illumina/25T8B25T/fastq/ACTGTATC.1.fastq       |    16 -
 .../illumina/25T8B25T/fastq/ACTGTATC.2.fastq       |    16 -
 .../25T8B25T/fastq/ACTGTATC.barcode_1.fastq        |    16 -
 .../illumina/25T8B25T/fastq/AGCATGGA.1.fastq       |    12 -
 .../illumina/25T8B25T/fastq/AGCATGGA.2.fastq       |    12 -
 .../25T8B25T/fastq/AGCATGGA.barcode_1.fastq        |    12 -
 .../illumina/25T8B25T/fastq/AGGTAAGG.1.fastq       |    16 -
 .../illumina/25T8B25T/fastq/AGGTAAGG.2.fastq       |    16 -
 .../25T8B25T/fastq/AGGTAAGG.barcode_1.fastq        |    16 -
 .../illumina/25T8B25T/fastq/AGGTCGCA.1.fastq       |    16 -
 .../illumina/25T8B25T/fastq/AGGTCGCA.2.fastq       |    16 -
 .../25T8B25T/fastq/AGGTCGCA.barcode_1.fastq        |    16 -
 .../illumina/25T8B25T/fastq/ATTATCAA.1.fastq       |    20 -
 .../illumina/25T8B25T/fastq/ATTATCAA.2.fastq       |    20 -
 .../25T8B25T/fastq/ATTATCAA.barcode_1.fastq        |    20 -
 .../illumina/25T8B25T/fastq/ATTCCTCT.1.fastq       |    16 -
 .../illumina/25T8B25T/fastq/ATTCCTCT.2.fastq       |    16 -
 .../25T8B25T/fastq/ATTCCTCT.barcode_1.fastq        |    16 -
 .../illumina/25T8B25T/fastq/CAACTCTC.1.fastq       |    20 -
 .../illumina/25T8B25T/fastq/CAACTCTC.2.fastq       |    20 -
 .../25T8B25T/fastq/CAACTCTC.barcode_1.fastq        |    20 -
 .../illumina/25T8B25T/fastq/CAATAGTC.1.fastq       |    28 -
 .../illumina/25T8B25T/fastq/CAATAGTC.2.fastq       |    28 -
 .../25T8B25T/fastq/CAATAGTC.barcode_1.fastq        |    28 -
 .../illumina/25T8B25T/fastq/CAGCGGTA.1.fastq       |    20 -
 .../illumina/25T8B25T/fastq/CAGCGGTA.2.fastq       |    20 -
 .../25T8B25T/fastq/CAGCGGTA.barcode_1.fastq        |    20 -
 .../illumina/25T8B25T/fastq/CCAACATT.1.fastq       |    28 -
 .../illumina/25T8B25T/fastq/CCAACATT.2.fastq       |    28 -
 .../25T8B25T/fastq/CCAACATT.barcode_1.fastq        |    28 -
 .../illumina/25T8B25T/fastq/CCAGCACC.1.fastq       |    12 -
 .../illumina/25T8B25T/fastq/CCAGCACC.2.fastq       |    12 -
 .../25T8B25T/fastq/CCAGCACC.barcode_1.fastq        |    12 -
 .../illumina/25T8B25T/fastq/CGCCTTCC.1.fastq       |     8 -
 .../illumina/25T8B25T/fastq/CGCCTTCC.2.fastq       |     8 -
 .../25T8B25T/fastq/CGCCTTCC.barcode_1.fastq        |     8 -
 .../illumina/25T8B25T/fastq/CGCTATGT.1.fastq       |    20 -
 .../illumina/25T8B25T/fastq/CGCTATGT.2.fastq       |    20 -
 .../25T8B25T/fastq/CGCTATGT.barcode_1.fastq        |    20 -
 .../illumina/25T8B25T/fastq/CTAACTCG.1.fastq       |    16 -
 .../illumina/25T8B25T/fastq/CTAACTCG.2.fastq       |    16 -
 .../25T8B25T/fastq/CTAACTCG.barcode_1.fastq        |    16 -
 .../illumina/25T8B25T/fastq/CTATGCGT.1.fastq       |    28 -
 .../illumina/25T8B25T/fastq/CTATGCGT.2.fastq       |    28 -
 .../25T8B25T/fastq/CTATGCGT.barcode_1.fastq        |    28 -
 .../illumina/25T8B25T/fastq/CTGCGGAT.1.fastq       |    12 -
 .../illumina/25T8B25T/fastq/CTGCGGAT.2.fastq       |    12 -
 .../25T8B25T/fastq/CTGCGGAT.barcode_1.fastq        |    12 -
 .../illumina/25T8B25T/fastq/CTGTAATC.1.fastq       |    24 -
 .../illumina/25T8B25T/fastq/CTGTAATC.2.fastq       |    24 -
 .../25T8B25T/fastq/CTGTAATC.barcode_1.fastq        |    24 -
 .../illumina/25T8B25T/fastq/GAAGGAAG.1.fastq       |    12 -
 .../illumina/25T8B25T/fastq/GAAGGAAG.2.fastq       |    12 -
 .../25T8B25T/fastq/GAAGGAAG.barcode_1.fastq        |    12 -
 .../illumina/25T8B25T/fastq/GACCAGGA.1.fastq       |    28 -
 .../illumina/25T8B25T/fastq/GACCAGGA.2.fastq       |    28 -
 .../25T8B25T/fastq/GACCAGGA.barcode_1.fastq        |    28 -
 .../illumina/25T8B25T/fastq/GACCGTTG.1.fastq       |    16 -
 .../illumina/25T8B25T/fastq/GACCGTTG.2.fastq       |    16 -
 .../25T8B25T/fastq/GACCGTTG.barcode_1.fastq        |    16 -
 .../illumina/25T8B25T/fastq/GACCTAAC.1.fastq       |     4 -
 .../illumina/25T8B25T/fastq/GACCTAAC.2.fastq       |     4 -
 .../25T8B25T/fastq/GACCTAAC.barcode_1.fastq        |     4 -
 .../illumina/25T8B25T/fastq/GATATCCA.1.fastq       |    12 -
 .../illumina/25T8B25T/fastq/GATATCCA.2.fastq       |    12 -
 .../25T8B25T/fastq/GATATCCA.barcode_1.fastq        |    12 -
 .../illumina/25T8B25T/fastq/GCCGTCGA.1.fastq       |    20 -
 .../illumina/25T8B25T/fastq/GCCGTCGA.2.fastq       |    20 -
 .../25T8B25T/fastq/GCCGTCGA.barcode_1.fastq        |    20 -
 .../illumina/25T8B25T/fastq/GCCTAGCC.1.fastq       |    20 -
 .../illumina/25T8B25T/fastq/GCCTAGCC.2.fastq       |    20 -
 .../25T8B25T/fastq/GCCTAGCC.barcode_1.fastq        |    20 -
 .../illumina/25T8B25T/fastq/GTAACATC.1.fastq       |     8 -
 .../illumina/25T8B25T/fastq/GTAACATC.2.fastq       |     8 -
 .../25T8B25T/fastq/GTAACATC.barcode_1.fastq        |     8 -
 .../illumina/25T8B25T/fastq/GTCCACAG.1.fastq       |     8 -
 .../illumina/25T8B25T/fastq/GTCCACAG.2.fastq       |     8 -
 .../25T8B25T/fastq/GTCCACAG.barcode_1.fastq        |     8 -
 .../sf/picard/illumina/25T8B25T/fastq/N.1.fastq    |    64 -
 .../sf/picard/illumina/25T8B25T/fastq/N.2.fastq    |    64 -
 .../illumina/25T8B25T/fastq/N.barcode_1.fastq      |    64 -
 .../illumina/25T8B25T/fastq/TAAGCACA.1.fastq       |     8 -
 .../illumina/25T8B25T/fastq/TAAGCACA.2.fastq       |     8 -
 .../25T8B25T/fastq/TAAGCACA.barcode_1.fastq        |     8 -
 .../illumina/25T8B25T/fastq/TATCCAGG.1.fastq       |    16 -
 .../illumina/25T8B25T/fastq/TATCCAGG.2.fastq       |    16 -
 .../25T8B25T/fastq/TATCCAGG.barcode_1.fastq        |    16 -
 .../illumina/25T8B25T/fastq/TATCTGCC.1.fastq       |    28 -
 .../illumina/25T8B25T/fastq/TATCTGCC.2.fastq       |    28 -
 .../25T8B25T/fastq/TATCTGCC.barcode_1.fastq        |    28 -
 .../illumina/25T8B25T/fastq/TCGCTAGA.1.fastq       |    20 -
 .../illumina/25T8B25T/fastq/TCGCTAGA.2.fastq       |    20 -
 .../25T8B25T/fastq/TCGCTAGA.barcode_1.fastq        |    20 -
 .../illumina/25T8B25T/fastq/TCTGCAAG.1.fastq       |     4 -
 .../illumina/25T8B25T/fastq/TCTGCAAG.2.fastq       |     4 -
 .../25T8B25T/fastq/TCTGCAAG.barcode_1.fastq        |     4 -
 .../illumina/25T8B25T/fastq/TGCAAGTA.1.fastq       |     8 -
 .../illumina/25T8B25T/fastq/TGCAAGTA.2.fastq       |     8 -
 .../25T8B25T/fastq/TGCAAGTA.barcode_1.fastq        |     8 -
 .../illumina/25T8B25T/fastq/TGCTGCTG.1.fastq       |    16 -
 .../illumina/25T8B25T/fastq/TGCTGCTG.2.fastq       |    16 -
 .../25T8B25T/fastq/TGCTGCTG.barcode_1.fastq        |    16 -
 .../illumina/25T8B25T/fastq/TGTAACTC.1.fastq       |     4 -
 .../illumina/25T8B25T/fastq/TGTAACTC.2.fastq       |     4 -
 .../25T8B25T/fastq/TGTAACTC.barcode_1.fastq        |     4 -
 .../illumina/25T8B25T/fastq/TGTAATCA.1.fastq       |    12 -
 .../illumina/25T8B25T/fastq/TGTAATCA.2.fastq       |    12 -
 .../25T8B25T/fastq/TGTAATCA.barcode_1.fastq        |    12 -
 .../illumina/25T8B25T/fastq/TTGTCTAT.1.fastq       |    16 -
 .../illumina/25T8B25T/fastq/TTGTCTAT.2.fastq       |    16 -
 .../25T8B25T/fastq/TTGTCTAT.barcode_1.fastq        |    16 -
 .../illumina/25T8B25T/fastq/nonBarcoded.1.fastq    |   720 -
 .../illumina/25T8B25T/fastq/nonBarcoded.2.fastq    |   720 -
 .../sf/picard/illumina/25T8B25T/sams/AAAAAAAA.sam  |     2 -
 .../sf/picard/illumina/25T8B25T/sams/AAAAGAAG.sam  |     2 -
 .../sf/picard/illumina/25T8B25T/sams/AACAATGG.sam  |    10 -
 .../sf/picard/illumina/25T8B25T/sams/AACGCATT.sam  |    16 -
 .../sf/picard/illumina/25T8B25T/sams/ACAAAATT.sam  |     2 -
 .../sf/picard/illumina/25T8B25T/sams/ACAGGTAT.sam  |    10 -
 .../sf/picard/illumina/25T8B25T/sams/ACAGTTGA.sam  |     6 -
 .../sf/picard/illumina/25T8B25T/sams/ACCAGTTG.sam  |     2 -
 .../sf/picard/illumina/25T8B25T/sams/ACGAAATC.sam  |     2 -
 .../sf/picard/illumina/25T8B25T/sams/ACTAAGAC.sam  |    10 -
 .../sf/picard/illumina/25T8B25T/sams/ACTGTACC.sam  |     2 -
 .../sf/picard/illumina/25T8B25T/sams/ACTGTATC.sam  |    10 -
 .../sf/picard/illumina/25T8B25T/sams/AGAAAAGA.sam  |     2 -
 .../sf/picard/illumina/25T8B25T/sams/AGCATGGA.sam  |     8 -
 .../sf/picard/illumina/25T8B25T/sams/AGGTAAGG.sam  |    10 -
 .../sf/picard/illumina/25T8B25T/sams/AGGTCGCA.sam  |    10 -
 .../sf/picard/illumina/25T8B25T/sams/ATTATCAA.sam  |    12 -
 .../sf/picard/illumina/25T8B25T/sams/ATTCCTCT.sam  |    10 -
 .../sf/picard/illumina/25T8B25T/sams/CAACTCTC.sam  |    12 -
 .../sf/picard/illumina/25T8B25T/sams/CAATAGAC.sam  |     2 -
 .../sf/picard/illumina/25T8B25T/sams/CAATAGTC.sam  |    16 -
 .../sf/picard/illumina/25T8B25T/sams/CAGCGGAT.sam  |     2 -
 .../sf/picard/illumina/25T8B25T/sams/CAGCGGTA.sam  |    12 -
 .../sf/picard/illumina/25T8B25T/sams/CCAACATT.sam  |    16 -
 .../sf/picard/illumina/25T8B25T/sams/CCAGCACC.sam  |     8 -
 .../sf/picard/illumina/25T8B25T/sams/CCATGCGT.sam  |     2 -
 .../sf/picard/illumina/25T8B25T/sams/CGCCTTCC.sam  |     6 -
 .../sf/picard/illumina/25T8B25T/sams/CGCTATGT.sam  |    12 -
 .../sf/picard/illumina/25T8B25T/sams/CTAACTCG.sam  |    10 -
 .../sf/picard/illumina/25T8B25T/sams/CTATGCGC.sam  |     2 -
 .../sf/picard/illumina/25T8B25T/sams/CTATGCGT.sam  |    16 -
 .../sf/picard/illumina/25T8B25T/sams/CTGCGGAT.sam  |     8 -
 .../sf/picard/illumina/25T8B25T/sams/CTGTAATC.sam  |    14 -
 .../sf/picard/illumina/25T8B25T/sams/GAAAAAAA.sam  |     2 -
 .../sf/picard/illumina/25T8B25T/sams/GAACGAT..sam  |     2 -
 .../sf/picard/illumina/25T8B25T/sams/GAAGGAAG.sam  |     8 -
 .../sf/picard/illumina/25T8B25T/sams/GACCAGGA.sam  |    16 -
 .../sf/picard/illumina/25T8B25T/sams/GACCAGGC.sam  |     2 -
 .../sf/picard/illumina/25T8B25T/sams/GACCGTTG.sam  |    10 -
 .../sf/picard/illumina/25T8B25T/sams/GACCTAAC.sam  |     4 -
 .../sf/picard/illumina/25T8B25T/sams/GATATCCA.sam  |     8 -
 .../sf/picard/illumina/25T8B25T/sams/GCCGTCGA.sam  |    12 -
 .../sf/picard/illumina/25T8B25T/sams/GCCTAGCC.sam  |    12 -
 .../sf/picard/illumina/25T8B25T/sams/GTAACATC.sam  |     6 -
 .../sf/picard/illumina/25T8B25T/sams/GTCCACAG.sam  |     6 -
 .../net/sf/picard/illumina/25T8B25T/sams/N.sam     |    34 -
 .../sf/picard/illumina/25T8B25T/sams/TAAGCACA.sam  |     6 -
 .../sf/picard/illumina/25T8B25T/sams/TACCGTCT.sam  |     2 -
 .../sf/picard/illumina/25T8B25T/sams/TAGCGGTA.sam  |     2 -
 .../sf/picard/illumina/25T8B25T/sams/TATCAGCC.sam  |     2 -
 .../sf/picard/illumina/25T8B25T/sams/TATCCAGG.sam  |    10 -
 .../sf/picard/illumina/25T8B25T/sams/TATCCATG.sam  |     2 -
 .../sf/picard/illumina/25T8B25T/sams/TATCTCGG.sam  |     2 -
 .../sf/picard/illumina/25T8B25T/sams/TATCTGCC.sam  |    16 -
 .../sf/picard/illumina/25T8B25T/sams/TCCGTCTA.sam  |     2 -
 .../sf/picard/illumina/25T8B25T/sams/TCGCTAGA.sam  |    12 -
 .../sf/picard/illumina/25T8B25T/sams/TCTGCAAG.sam  |     4 -
 .../sf/picard/illumina/25T8B25T/sams/TGCAAGTA.sam  |     6 -
 .../sf/picard/illumina/25T8B25T/sams/TGCTGCTG.sam  |    10 -
 .../sf/picard/illumina/25T8B25T/sams/TGTAACTC.sam  |     4 -
 .../sf/picard/illumina/25T8B25T/sams/TGTAATCA.sam  |     8 -
 .../sf/picard/illumina/25T8B25T/sams/TTGTCTAT.sam  |    10 -
 .../picard/illumina/25T8B25T/sams/nonBarcoded.sam  |   182 -
 .../25T8B8B25T/fastq/AACTTGACGCTCTCTT.1.fastq      |     4 -
 .../25T8B8B25T/fastq/AACTTGACGCTCTCTT.2.fastq      |     4 -
 .../fastq/AACTTGACGCTCTCTT.barcode_1.fastq         |     4 -
 .../fastq/AACTTGACGCTCTCTT.barcode_2.fastq         |     4 -
 .../25T8B8B25T/fastq/AAGACACTAGTCACCT.1.fastq      |     4 -
 .../25T8B8B25T/fastq/AAGACACTAGTCACCT.2.fastq      |     4 -
 .../fastq/AAGACACTAGTCACCT.barcode_1.fastq         |     4 -
 .../fastq/AAGACACTAGTCACCT.barcode_2.fastq         |     4 -
 .../25T8B8B25T/fastq/ACAGGTATCACTTCAT.1.fastq      |     4 -
 .../25T8B8B25T/fastq/ACAGGTATCACTTCAT.2.fastq      |     4 -
 .../fastq/ACAGGTATCACTTCAT.barcode_1.fastq         |     4 -
 .../fastq/ACAGGTATCACTTCAT.barcode_2.fastq         |     4 -
 .../25T8B8B25T/fastq/ACAGTTGAATCTTCTC.1.fastq      |     8 -
 .../25T8B8B25T/fastq/ACAGTTGAATCTTCTC.2.fastq      |     8 -
 .../fastq/ACAGTTGAATCTTCTC.barcode_1.fastq         |     8 -
 .../fastq/ACAGTTGAATCTTCTC.barcode_2.fastq         |     8 -
 .../25T8B8B25T/fastq/ACCAACTGCATCACTT.1.fastq      |     4 -
 .../25T8B8B25T/fastq/ACCAACTGCATCACTT.2.fastq      |     4 -
 .../fastq/ACCAACTGCATCACTT.barcode_1.fastq         |     4 -
 .../fastq/ACCAACTGCATCACTT.barcode_2.fastq         |     4 -
 .../25T8B8B25T/fastq/ACTAAGACGTCCTCAT.1.fastq      |     4 -
 .../25T8B8B25T/fastq/ACTAAGACGTCCTCAT.2.fastq      |     4 -
 .../fastq/ACTAAGACGTCCTCAT.barcode_1.fastq         |     4 -
 .../fastq/ACTAAGACGTCCTCAT.barcode_2.fastq         |     4 -
 .../25T8B8B25T/fastq/AGGTGCGAGACATTAA.1.fastq      |     4 -
 .../25T8B8B25T/fastq/AGGTGCGAGACATTAA.2.fastq      |     4 -
 .../fastq/AGGTGCGAGACATTAA.barcode_1.fastq         |     4 -
 .../fastq/AGGTGCGAGACATTAA.barcode_2.fastq         |     4 -
 .../25T8B8B25T/fastq/AGGTTATCTTAGCCAG.1.fastq      |     4 -
 .../25T8B8B25T/fastq/AGGTTATCTTAGCCAG.2.fastq      |     4 -
 .../fastq/AGGTTATCTTAGCCAG.barcode_1.fastq         |     4 -
 .../fastq/AGGTTATCTTAGCCAG.barcode_2.fastq         |     4 -
 .../25T8B8B25T/fastq/AGTTGCTTTGACTTGG.1.fastq      |     4 -
 .../25T8B8B25T/fastq/AGTTGCTTTGACTTGG.2.fastq      |     4 -
 .../fastq/AGTTGCTTTGACTTGG.barcode_1.fastq         |     4 -
 .../fastq/AGTTGCTTTGACTTGG.barcode_2.fastq         |     4 -
 .../25T8B8B25T/fastq/ATAGCGTCTTGGTCTG.1.fastq      |     4 -
 .../25T8B8B25T/fastq/ATAGCGTCTTGGTCTG.2.fastq      |     4 -
 .../fastq/ATAGCGTCTTGGTCTG.barcode_1.fastq         |     4 -
 .../fastq/ATAGCGTCTTGGTCTG.barcode_2.fastq         |     4 -
 .../25T8B8B25T/fastq/CAATAGTCCGACTCTC.1.fastq      |     4 -
 .../25T8B8B25T/fastq/CAATAGTCCGACTCTC.2.fastq      |     4 -
 .../fastq/CAATAGTCCGACTCTC.barcode_1.fastq         |     4 -
 .../fastq/CAATAGTCCGACTCTC.barcode_2.fastq         |     4 -
 .../25T8B8B25T/fastq/CAGCAAGGGCGATATT.1.fastq      |     4 -
 .../25T8B8B25T/fastq/CAGCAAGGGCGATATT.2.fastq      |     4 -
 .../fastq/CAGCAAGGGCGATATT.barcode_1.fastq         |     4 -
 .../fastq/CAGCAAGGGCGATATT.barcode_2.fastq         |     4 -
 .../25T8B8B25T/fastq/CAGCGGTAAGTACTGC.1.fastq      |     4 -
 .../25T8B8B25T/fastq/CAGCGGTAAGTACTGC.2.fastq      |     4 -
 .../fastq/CAGCGGTAAGTACTGC.barcode_1.fastq         |     4 -
 .../fastq/CAGCGGTAAGTACTGC.barcode_2.fastq         |     4 -
 .../25T8B8B25T/fastq/CATGCTTATAGCATTG.1.fastq      |     8 -
 .../25T8B8B25T/fastq/CATGCTTATAGCATTG.2.fastq      |     8 -
 .../fastq/CATGCTTATAGCATTG.barcode_1.fastq         |     8 -
 .../fastq/CATGCTTATAGCATTG.barcode_2.fastq         |     8 -
 .../25T8B8B25T/fastq/CCAGAGCTCAACTGAT.1.fastq      |     8 -
 .../25T8B8B25T/fastq/CCAGAGCTCAACTGAT.2.fastq      |     8 -
 .../fastq/CCAGAGCTCAACTGAT.barcode_1.fastq         |     8 -
 .../fastq/CCAGAGCTCAACTGAT.barcode_2.fastq         |     8 -
 .../25T8B8B25T/fastq/CCCGATTTTCTCTCCC.1.fastq      |     0
 .../25T8B8B25T/fastq/CCCGATTTTCTCTCCC.2.fastq      |     0
 .../fastq/CCCGATTTTCTCTCCC.barcode_1.fastq         |     0
 .../fastq/CCCGATTTTCTCTCCC.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/CCTATGCCAATTGGCC.1.fastq      |     4 -
 .../25T8B8B25T/fastq/CCTATGCCAATTGGCC.2.fastq      |     4 -
 .../fastq/CCTATGCCAATTGGCC.barcode_1.fastq         |     4 -
 .../fastq/CCTATGCCAATTGGCC.barcode_2.fastq         |     4 -
 .../25T8B8B25T/fastq/CCTATTCTTCGTTTTC.1.fastq      |     0
 .../25T8B8B25T/fastq/CCTATTCTTCGTTTTC.2.fastq      |     0
 .../fastq/CCTATTCTTCGTTTTC.barcode_1.fastq         |     0
 .../fastq/CCTATTCTTCGTTTTC.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/CCTCTTCTCTCGCTTT.1.fastq      |     0
 .../25T8B8B25T/fastq/CCTCTTCTCTCGCTTT.2.fastq      |     0
 .../fastq/CCTCTTCTCTCGCTTT.barcode_1.fastq         |     0
 .../fastq/CCTCTTCTCTCGCTTT.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/CCTCTTTCTTCTGCTC.1.fastq      |     0
 .../25T8B8B25T/fastq/CCTCTTTCTTCTGCTC.2.fastq      |     0
 .../fastq/CCTCTTTCTTCTGCTC.barcode_1.fastq         |     0
 .../fastq/CCTCTTTCTTCTGCTC.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/CCTTCGCAGAATCGAC.1.fastq      |     4 -
 .../25T8B8B25T/fastq/CCTTCGCAGAATCGAC.2.fastq      |     4 -
 .../fastq/CCTTCGCAGAATCGAC.barcode_1.fastq         |     4 -
 .../fastq/CCTTCGCAGAATCGAC.barcode_2.fastq         |     4 -
 .../25T8B8B25T/fastq/CCTTCTTTTATCATTT.1.fastq      |     0
 .../25T8B8B25T/fastq/CCTTCTTTTATCATTT.2.fastq      |     0
 .../fastq/CCTTCTTTTATCATTT.barcode_1.fastq         |     0
 .../fastq/CCTTCTTTTATCATTT.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/CGCTATGTTTCACCTT.1.fastq      |     4 -
 .../25T8B8B25T/fastq/CGCTATGTTTCACCTT.2.fastq      |     4 -
 .../fastq/CGCTATGTTTCACCTT.barcode_1.fastq         |     4 -
 .../fastq/CGCTATGTTTCACCTT.barcode_2.fastq         |     4 -
 .../25T8B8B25T/fastq/CGCTATGTTTCTCCTT.1.fastq      |     0
 .../25T8B8B25T/fastq/CGCTATGTTTCTCCTT.2.fastq      |     0
 .../fastq/CGCTATGTTTCTCCTT.barcode_1.fastq         |     0
 .../fastq/CGCTATGTTTCTCCTT.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/CTACCAGGTTCTTGGC.1.fastq      |     4 -
 .../25T8B8B25T/fastq/CTACCAGGTTCTTGGC.2.fastq      |     4 -
 .../fastq/CTACCAGGTTCTTGGC.barcode_1.fastq         |     4 -
 .../fastq/CTACCAGGTTCTTGGC.barcode_2.fastq         |     4 -
 .../25T8B8B25T/fastq/CTCCCTCTTCCTTCTT.1.fastq      |     0
 .../25T8B8B25T/fastq/CTCCCTCTTCCTTCTT.2.fastq      |     0
 .../fastq/CTCCCTCTTCCTTCTT.barcode_1.fastq         |     0
 .../fastq/CTCCCTCTTCCTTCTT.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/CTGTAATCCTATTAGC.1.fastq      |     4 -
 .../25T8B8B25T/fastq/CTGTAATCCTATTAGC.2.fastq      |     4 -
 .../fastq/CTGTAATCCTATTAGC.barcode_1.fastq         |     4 -
 .../fastq/CTGTAATCCTATTAGC.barcode_2.fastq         |     4 -
 .../25T8B8B25T/fastq/GACCAGGACCATCACA.1.fastq      |     4 -
 .../25T8B8B25T/fastq/GACCAGGACCATCACA.2.fastq      |     4 -
 .../fastq/GACCAGGACCATCACA.barcode_1.fastq         |     4 -
 .../fastq/GACCAGGACCATCACA.barcode_2.fastq         |     4 -
 .../25T8B8B25T/fastq/GCCGTCGAAGGTACCA.1.fastq      |     8 -
 .../25T8B8B25T/fastq/GCCGTCGAAGGTACCA.2.fastq      |     8 -
 .../fastq/GCCGTCGAAGGTACCA.barcode_1.fastq         |     8 -
 .../fastq/GCCGTCGAAGGTACCA.barcode_2.fastq         |     8 -
 .../25T8B8B25T/fastq/GCCGTCGAAGGTACCC.1.fastq      |     0
 .../25T8B8B25T/fastq/GCCGTCGAAGGTACCC.2.fastq      |     0
 .../fastq/GCCGTCGAAGGTACCC.barcode_1.fastq         |     0
 .../fastq/GCCGTCGAAGGTACCC.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/GCCGTCGATGGTACCC.1.fastq      |     0
 .../25T8B8B25T/fastq/GCCGTCGATGGTACCC.2.fastq      |     0
 .../fastq/GCCGTCGATGGTACCC.barcode_1.fastq         |     0
 .../fastq/GCCGTCGATGGTACCC.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/GCCTAGCCCTTGAATC.1.fastq      |     4 -
 .../25T8B8B25T/fastq/GCCTAGCCCTTGAATC.2.fastq      |     4 -
 .../fastq/GCCTAGCCCTTGAATC.barcode_1.fastq         |     4 -
 .../fastq/GCCTAGCCCTTGAATC.barcode_2.fastq         |     4 -
 .../25T8B8B25T/fastq/GCTATCCACCTCCCCC.1.fastq      |     0
 .../25T8B8B25T/fastq/GCTATCCACCTCCCCC.2.fastq      |     0
 .../fastq/GCTATCCACCTCCCCC.barcode_1.fastq         |     0
 .../fastq/GCTATCCACCTCCCCC.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/GTATAACAAATTCAAC.1.fastq      |     4 -
 .../25T8B8B25T/fastq/GTATAACAAATTCAAC.2.fastq      |     4 -
 .../fastq/GTATAACAAATTCAAC.barcode_1.fastq         |     4 -
 .../fastq/GTATAACAAATTCAAC.barcode_2.fastq         |     4 -
 .../25T8B8B25T/fastq/GTATAACATATTCAAC.1.fastq      |     0
 .../25T8B8B25T/fastq/GTATAACATATTCAAC.2.fastq      |     0
 .../fastq/GTATAACATATTCAAC.barcode_1.fastq         |     0
 .../fastq/GTATAACATATTCAAC.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/GTCTGATGGAACTTCG.1.fastq      |     4 -
 .../25T8B8B25T/fastq/GTCTGATGGAACTTCG.2.fastq      |     4 -
 .../fastq/GTCTGATGGAACTTCG.barcode_1.fastq         |     4 -
 .../fastq/GTCTGATGGAACTTCG.barcode_2.fastq         |     4 -
 .../25T8B8B25T/fastq/GTCTGATGTCACTTCC.1.fastq      |     0
 .../25T8B8B25T/fastq/GTCTGATGTCACTTCC.2.fastq      |     0
 .../fastq/GTCTGATGTCACTTCC.barcode_1.fastq         |     0
 .../fastq/GTCTGATGTCACTTCC.barcode_2.fastq         |     0
 .../sf/picard/illumina/25T8B8B25T/fastq/NN.1.fastq |    76 -
 .../sf/picard/illumina/25T8B8B25T/fastq/NN.2.fastq |    76 -
 .../illumina/25T8B8B25T/fastq/NN.barcode_1.fastq   |    76 -
 .../illumina/25T8B8B25T/fastq/NN.barcode_2.fastq   |    76 -
 .../25T8B8B25T/fastq/TACTTAGCGTCTGCAC.1.fastq      |     8 -
 .../25T8B8B25T/fastq/TACTTAGCGTCTGCAC.2.fastq      |     8 -
 .../fastq/TACTTAGCGTCTGCAC.barcode_1.fastq         |     8 -
 .../fastq/TACTTAGCGTCTGCAC.barcode_2.fastq         |     8 -
 .../25T8B8B25T/fastq/TCCCCGTTCCAACTTC.1.fastq      |     0
 .../25T8B8B25T/fastq/TCCCCGTTCCAACTTC.2.fastq      |     0
 .../fastq/TCCCCGTTCCAACTTC.barcode_1.fastq         |     0
 .../fastq/TCCCCGTTCCAACTTC.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/TCCTTGGTGCTGCACT.1.fastq      |     4 -
 .../25T8B8B25T/fastq/TCCTTGGTGCTGCACT.2.fastq      |     4 -
 .../fastq/TCCTTGGTGCTGCACT.barcode_1.fastq         |     4 -
 .../fastq/TCCTTGGTGCTGCACT.barcode_2.fastq         |     4 -
 .../25T8B8B25T/fastq/TCGCCTTGCCAACGCT.1.fastq      |     4 -
 .../25T8B8B25T/fastq/TCGCCTTGCCAACGCT.2.fastq      |     4 -
 .../fastq/TCGCCTTGCCAACGCT.barcode_1.fastq         |     4 -
 .../fastq/TCGCCTTGCCAACGCT.barcode_2.fastq         |     4 -
 .../25T8B8B25T/fastq/TGCAAGTACGAACTTC.1.fastq      |     8 -
 .../25T8B8B25T/fastq/TGCAAGTACGAACTTC.2.fastq      |     8 -
 .../fastq/TGCAAGTACGAACTTC.barcode_1.fastq         |     8 -
 .../fastq/TGCAAGTACGAACTTC.barcode_2.fastq         |     8 -
 .../25T8B8B25T/fastq/TGCTCGACTTCACAGA.1.fastq      |     4 -
 .../25T8B8B25T/fastq/TGCTCGACTTCACAGA.2.fastq      |     4 -
 .../fastq/TGCTCGACTTCACAGA.barcode_1.fastq         |     4 -
 .../fastq/TGCTCGACTTCACAGA.barcode_2.fastq         |     4 -
 .../25T8B8B25T/fastq/TGCTCGACTTCACAGT.1.fastq      |     0
 .../25T8B8B25T/fastq/TGCTCGACTTCACAGT.2.fastq      |     0
 .../fastq/TGCTCGACTTCACAGT.barcode_1.fastq         |     0
 .../fastq/TGCTCGACTTCACAGT.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/TGTAATCACCTCTAAC.1.fastq      |     4 -
 .../25T8B8B25T/fastq/TGTAATCACCTCTAAC.2.fastq      |     4 -
 .../fastq/TGTAATCACCTCTAAC.barcode_1.fastq         |     4 -
 .../fastq/TGTAATCACCTCTAAC.barcode_2.fastq         |     4 -
 .../25T8B8B25T/fastq/TGTATCTCTTACTCTT.1.fastq      |     0
 .../25T8B8B25T/fastq/TGTATCTCTTACTCTT.2.fastq      |     0
 .../fastq/TGTATCTCTTACTCTT.barcode_1.fastq         |     0
 .../fastq/TGTATCTCTTACTCTT.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/TGTCGGTTTTTTGCTT.1.fastq      |     0
 .../25T8B8B25T/fastq/TGTCGGTTTTTTGCTT.2.fastq      |     0
 .../fastq/TGTCGGTTTTTTGCTT.barcode_1.fastq         |     0
 .../fastq/TGTCGGTTTTTTGCTT.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/TGTTCCGAAACCTCTT.1.fastq      |     4 -
 .../25T8B8B25T/fastq/TGTTCCGAAACCTCTT.2.fastq      |     4 -
 .../fastq/TGTTCCGAAACCTCTT.barcode_1.fastq         |     4 -
 .../fastq/TGTTCCGAAACCTCTT.barcode_2.fastq         |     4 -
 .../25T8B8B25T/fastq/TTAATCAGCTGGTATT.1.fastq      |     4 -
 .../25T8B8B25T/fastq/TTAATCAGCTGGTATT.2.fastq      |     4 -
 .../fastq/TTAATCAGCTGGTATT.barcode_1.fastq         |     4 -
 .../fastq/TTAATCAGCTGGTATT.barcode_2.fastq         |     4 -
 .../25T8B8B25T/fastq/TTATATCTTCATGTCT.1.fastq      |     4 -
 .../25T8B8B25T/fastq/TTATATCTTCATGTCT.2.fastq      |     4 -
 .../fastq/TTATATCTTCATGTCT.barcode_1.fastq         |     4 -
 .../fastq/TTATATCTTCATGTCT.barcode_2.fastq         |     4 -
 .../25T8B8B25T/fastq/TTCCCCAGTGCTTTTA.1.fastq      |     0
 .../25T8B8B25T/fastq/TTCCCCAGTGCTTTTA.2.fastq      |     0
 .../fastq/TTCCCCAGTGCTTTTA.barcode_1.fastq         |     0
 .../fastq/TTCCCCAGTGCTTTTA.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/TTCCTCCTCACCATCC.1.fastq      |     0
 .../25T8B8B25T/fastq/TTCCTCCTCACCATCC.2.fastq      |     0
 .../fastq/TTCCTCCTCACCATCC.barcode_1.fastq         |     0
 .../fastq/TTCCTCCTCACCATCC.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/TTCTCATCTTCCTTCC.1.fastq      |     0
 .../25T8B8B25T/fastq/TTCTCATCTTCCTTCC.2.fastq      |     0
 .../fastq/TTCTCATCTTCCTTCC.barcode_1.fastq         |     0
 .../fastq/TTCTCATCTTCCTTCC.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/TTGAATAGATATCCGA.1.fastq      |     4 -
 .../25T8B8B25T/fastq/TTGAATAGATATCCGA.2.fastq      |     4 -
 .../fastq/TTGAATAGATATCCGA.barcode_1.fastq         |     4 -
 .../fastq/TTGAATAGATATCCGA.barcode_2.fastq         |     4 -
 .../picard/illumina/25T8B8B25T/sams/AACTTGAC.sam   |     4 -
 .../picard/illumina/25T8B8B25T/sams/AAGACACT.sam   |     4 -
 .../picard/illumina/25T8B8B25T/sams/ACAGGTAT.sam   |     4 -
 .../picard/illumina/25T8B8B25T/sams/ACAGTTGA.sam   |     6 -
 .../picard/illumina/25T8B8B25T/sams/ACCAACTG.sam   |     4 -
 .../picard/illumina/25T8B8B25T/sams/ACCTACTG.sam   |     2 -
 .../picard/illumina/25T8B8B25T/sams/ACTAAGAC.sam   |     4 -
 .../picard/illumina/25T8B8B25T/sams/AGGTCGCA.sam   |     2 -
 .../picard/illumina/25T8B8B25T/sams/AGGTGCGA.sam   |     4 -
 .../picard/illumina/25T8B8B25T/sams/AGGTTATC.sam   |     4 -
 .../picard/illumina/25T8B8B25T/sams/AGTTGCTT.sam   |     4 -
 .../picard/illumina/25T8B8B25T/sams/ATAGCGTC.sam   |     4 -
 .../picard/illumina/25T8B8B25T/sams/ATTATCAA.sam   |     2 -
 .../picard/illumina/25T8B8B25T/sams/ATTGTCTG.sam   |     2 -
 .../picard/illumina/25T8B8B25T/sams/CAATAGTC.sam   |     4 -
 .../picard/illumina/25T8B8B25T/sams/CAGCAAGG.sam   |     4 -
 .../picard/illumina/25T8B8B25T/sams/CAGCGGTA.sam   |     4 -
 .../picard/illumina/25T8B8B25T/sams/CATGCTTA.sam   |     6 -
 .../picard/illumina/25T8B8B25T/sams/CATGCTTT.sam   |     2 -
 .../picard/illumina/25T8B8B25T/sams/CATGTTCG.sam   |     2 -
 .../picard/illumina/25T8B8B25T/sams/CCAGAGCT.sam   |     6 -
 .../picard/illumina/25T8B8B25T/sams/CCCGATTT.sam   |     2 -
 .../picard/illumina/25T8B8B25T/sams/CCTATGCC.sam   |     4 -
 .../picard/illumina/25T8B8B25T/sams/CCTATTCT.sam   |     2 -
 .../picard/illumina/25T8B8B25T/sams/CCTCTTCT.sam   |     2 -
 .../picard/illumina/25T8B8B25T/sams/CCTCTTTC.sam   |     2 -
 .../picard/illumina/25T8B8B25T/sams/CCTTCGCA.sam   |     4 -
 .../picard/illumina/25T8B8B25T/sams/CCTTCTTT.sam   |     2 -
 .../picard/illumina/25T8B8B25T/sams/CGCTATGT.sam   |     4 -
 .../picard/illumina/25T8B8B25T/sams/CTACCAGG.sam   |     4 -
 .../picard/illumina/25T8B8B25T/sams/CTCCCTCT.sam   |     2 -
 .../picard/illumina/25T8B8B25T/sams/CTGTAATC.sam   |     4 -
 .../picard/illumina/25T8B8B25T/sams/GACCAGGA.sam   |     4 -
 .../picard/illumina/25T8B8B25T/sams/GCCGTCGA.sam   |     6 -
 .../picard/illumina/25T8B8B25T/sams/GCCTAGCC.sam   |     4 -
 .../picard/illumina/25T8B8B25T/sams/GCTATCCA.sam   |     2 -
 .../picard/illumina/25T8B8B25T/sams/GTATAACA.sam   |     4 -
 .../picard/illumina/25T8B8B25T/sams/GTCTGATG.sam   |     4 -
 .../net/sf/picard/illumina/25T8B8B25T/sams/N.sam   |    40 -
 .../picard/illumina/25T8B8B25T/sams/TACTTAGC.sam   |     6 -
 .../picard/illumina/25T8B8B25T/sams/TCCCCGTT.sam   |     2 -
 .../picard/illumina/25T8B8B25T/sams/TCCTTGGT.sam   |     4 -
 .../picard/illumina/25T8B8B25T/sams/TCGCCTTG.sam   |     4 -
 .../picard/illumina/25T8B8B25T/sams/TGCAAGTA.sam   |     6 -
 .../picard/illumina/25T8B8B25T/sams/TGCTCGAC.sam   |     4 -
 .../picard/illumina/25T8B8B25T/sams/TGTAATCA.sam   |     4 -
 .../picard/illumina/25T8B8B25T/sams/TGTATCTC.sam   |     2 -
 .../picard/illumina/25T8B8B25T/sams/TGTCGGTT.sam   |     2 -
 .../picard/illumina/25T8B8B25T/sams/TGTTCCGA.sam   |     4 -
 .../picard/illumina/25T8B8B25T/sams/TTAATCAG.sam   |     4 -
 .../picard/illumina/25T8B8B25T/sams/TTATATCT.sam   |     4 -
 .../picard/illumina/25T8B8B25T/sams/TTCCCCAG.sam   |     2 -
 .../picard/illumina/25T8B8B25T/sams/TTCCTCCT.sam   |     2 -
 .../picard/illumina/25T8B8B25T/sams/TTCTCATC.sam   |     2 -
 .../picard/illumina/25T8B8B25T/sams/TTGAATAG.sam   |     4 -
 .../picard/illumina/readerTests/s_1_1104_pos.txt   |     0
 .../intervallist/IntervalListFromVCFTest.vcf       |    53 -
 .../IntervalListFromVCFTestComp.interval_list      |     7 -
 ...ntervalListFromVCFTestCompInverse.interval_list |    10 -
 ...lListFromVCFTestCompInverseManual.interval_list |    10 -
 .../intervallist/IntervalListFromVCFTestManual.vcf |    57 -
 ...IntervalListFromVCFTestManualComp.interval_list |    12 -
 .../IntervalListchr123_empty.interval_list         |     4 -
 testdata/net/sf/picard/io/5newline5.txt            |     2 -
 testdata/net/sf/picard/io/empty.txt                |     0
 testdata/net/sf/picard/io/slurptest.txt            |     3 -
 .../net/sf/picard/liftover/hg18ToHg19.over.chain   | 30850 -------------------
 .../reference/Homo_sapiens_assembly18.fasta.fai    |    45 -
 .../reference/Homo_sapiens_assembly18.trimmed.dict |     3 -
 .../Homo_sapiens_assembly18.trimmed.fasta          | 16946 ----------
 .../Homo_sapiens_assembly18.trimmed.fasta.fai      |     2 -
 .../Homo_sapiens_assembly18.trimmed.nodict.fasta   | 16946 ----------
 ...omo_sapiens_assembly18.trimmed.nodict.fasta.fai |     2 -
 testdata/net/sf/picard/reference/testing.fai       |     7 -
 testdata/net/sf/picard/sam/Chromosome1to10.bam     |   Bin 3708 -> 0 bytes
 testdata/net/sf/picard/sam/Chromosome5to9.bam      |   Bin 1991 -> 0 bytes
 .../sf/picard/sam/MergeBamAlignment/cliptest.dict  |     2 -
 .../sam/MergeSamFiles/case1/expected_output.sam    |    13 -
 .../sam/MergeSamFiles/case2/expected_output.sam    |    21 -
 .../picard/sam/ValidateSamFileTest/bad_index.bai   |   Bin 1621416 -> 0 bytes
 .../picard/sam/ValidateSamFileTest/bad_index.bam   |   Bin 594149 -> 0 bytes
 .../picard/sam/ValidateSamFileTest/buggyHeader.sam |    30 -
 .../sam/ValidateSamFileTest/duplicate_rg.sam       |    11 -
 .../picard/sam/ValidateSamFileTest/hanging_tab.sam |     3 -
 .../inappropriate_mate_cigar_string.sam            |    13 -
 .../invalid_mate_cigar_string.sam                  |    19 -
 .../invalid_queryname_sort_order.sam               |    27 -
 .../sam/ValidateSamFileTest/missing_fields.sam     |     3 -
 .../ValidateSamFileTest/missing_platform_unit.sam  |    10 -
 .../picard/sam/ValidateSamFileTest/truncated.bam   |   Bin 336031 -> 0 bytes
 .../sam/ValidateSamFileTest/truncated_quals.sam    |     4 -
 .../sam/ValidateSamFileTest/truncated_tag.sam      |     4 -
 .../sf/picard/sam/ValidateSamFileTest/valid.sam    |    21 -
 .../sam/ValidateSamFileTest/zero_length_read.sam   |     3 -
 .../sf/picard/sam/bam2fastq/nonpaired/.gitignore   |     0
 .../sf/picard/sam/fastq2bam/bad-format/0lines.txt  |     0
 .../net/sf/picard/sam/mate_cigar_and_no_oqs.sam    |     4 -
 testdata/net/sf/picard/sam/mate_cigar_and_oqs.sam  |     4 -
 .../net/sf/picard/sam/no_mate_cigar_and_no_oqs.sam |     4 -
 .../net/sf/picard/sam/no_mate_cigar_and_oqs.sam    |     4 -
 testdata/net/sf/picard/sam/no_mates_and_no_oqs.sam |     6 -
 .../no_mates_and_no_oqs_in_first_four_records.sam  |     7 -
 testdata/net/sf/picard/sam/no_mates_and_oqs.sam    |     6 -
 testdata/net/sf/picard/sam/readWithBadRname.sam    |     6 -
 testdata/net/sf/picard/sam/samHeaderProvider.sam   |    15 -
 testdata/net/sf/picard/sam/sequenceWithSpace.bam   |   Bin 391 -> 0 bytes
 testdata/net/sf/picard/sam/sequenceWithSpace.sam   |     6 -
 .../illumina-as-standard.bam                       |   Bin 652 -> 0 bytes
 .../solexa-as-standard.bam                         |   Bin 944 -> 0 bytes
 .../net/sf/picard/util/scatterable.interval_list   |    89 -
 .../sf/samtools/BAMFileIndexTest/index_test.bam    |   Bin 594149 -> 0 bytes
 .../samtools/BAMFileIndexTest/index_test.bam.bai   |   Bin 1621416 -> 0 bytes
 .../SAMIntegerTagTest/variousAttributes.bam        |   Bin 258 -> 0 bytes
 .../SAMIntegerTagTest/variousAttributes.sam        |     4 -
 testdata/net/sf/samtools/array_tags.sam            |     3 -
 testdata/net/sf/samtools/block_compressed.sam.gz   |   Bin 257 -> 0 bytes
 testdata/net/sf/samtools/compressed.bam            |   Bin 307 -> 0 bytes
 testdata/net/sf/samtools/compressed.sam.gz         |   Bin 238 -> 0 bytes
 testdata/net/sf/samtools/coordinate_sorted.sam     |    15 -
 testdata/net/sf/samtools/empty.bai                 |   Bin 8 -> 0 bytes
 testdata/net/sf/samtools/empty.bam                 |   Bin 90 -> 0 bytes
 .../net/sf/samtools/empty_no_empty_gzip_block.bai  |   Bin 8 -> 0 bytes
 .../net/sf/samtools/empty_no_empty_gzip_block.bam  |   Bin 62 -> 0 bytes
 testdata/net/sf/samtools/queryname_sorted.sam      |    15 -
 .../sf/samtools/recordWithHexArrayAttribute.bam    |   Bin 162 -> 0 bytes
 .../sf/samtools/seekablestream/megabyteZeros.dat   |   Bin 1000000 -> 0 bytes
 testdata/net/sf/samtools/uncompressed.sam          |    15 -
 testdata/net/sf/samtools/unsorted.sam              |    15 -
 testdata/net/sf/samtools/util/broad_logo.gif       |   Bin 4222 -> 0 bytes
 testdata/net/sf/samtools/util/defective_bgzf.bam   |   Bin 359 -> 0 bytes
 .../net/sf/samtools/util/no_bgzf_terminator.bam    |   Bin 354 -> 0 bytes
 .../no_bq_cutoff.bait_bias_detail_metrics          |    21 +
 .../no_bq_cutoff.bait_bias_summary_metrics         |    21 +
 .../no_bq_cutoff.pre_adapter_detail_metrics        |    21 +
 .../no_bq_cutoff.pre_adapter_summary_metrics       |    21 +
 .../no_mq_cutoff.bait_bias_detail_metrics          |    21 +
 .../no_mq_cutoff.bait_bias_summary_metrics         |    21 +
 .../no_mq_cutoff.pre_adapter_detail_metrics        |    21 +
 .../no_mq_cutoff.pre_adapter_summary_metrics       |    21 +
 .../unmapped_mate.bait_bias_detail_metrics         |    21 +
 .../unmapped_mate.bait_bias_summary_metrics        |    21 +
 .../unmapped_mate.pre_adapter_detail_metrics       |    21 +
 .../unmapped_mate.pre_adapter_summary_metrics      |    21 +
 .../with_context.bait_bias_detail_metrics          |   201 +
 .../with_context.bait_bias_summary_metrics         |    21 +
 .../with_context.pre_adapter_detail_metrics        |   201 +
 .../with_context.pre_adapter_summary_metrics       |    21 +
 .../with_dbsnp.bait_bias_detail_metrics            |    21 +
 .../with_dbsnp.bait_bias_summary_metrics           |    21 +
 .../with_dbsnp.pre_adapter_detail_metrics          |    21 +
 .../with_dbsnp.pre_adapter_summary_metrics         |    21 +
 .../with_intervals.bait_bias_detail_metrics        |    21 +
 .../with_intervals.bait_bias_summary_metrics       |    21 +
 .../with_intervals.pre_adapter_detail_metrics      |    21 +
 .../with_intervals.pre_adapter_summary_metrics     |    21 +
 .../CollectSequencingArtifactMetrics/readme.txt    |    24 +
 .../test.dbsnp.vcf                                 |     6 +
 .../test.dbsnp.vcf.idx                             |   Bin 0 -> 194 bytes
 .../CollectSequencingArtifactMetrics/test.fasta    |    18 +
 .../test.interval_list                             |     6 +
 .../CollectSequencingArtifactMetrics/test.sam      |    27 +
 .../Intensities/BaseCalls/L001/C1.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C10.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C100.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C101.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C102.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C103.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C104.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C105.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C106.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C107.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C108.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C109.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C11.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C110.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C111.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C112.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C113.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C114.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C115.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C116.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C117.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C118.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C119.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C12.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C120.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C121.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C122.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C123.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C124.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C125.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C126.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C127.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C128.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C129.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C13.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C130.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C131.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C132.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C133.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C134.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C135.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C136.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C137.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C138.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C139.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C14.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C140.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C141.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C142.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C143.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C144.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C145.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C146.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C147.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C148.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C149.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C15.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C150.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C151.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C152.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C153.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C154.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C155.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C156.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C157.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C158.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C159.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C16.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C160.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C161.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C162.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C163.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C164.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C165.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C166.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C167.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C168.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C169.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C17.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C170.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C171.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C172.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C173.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C174.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C175.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C176.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C177.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C178.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C179.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C18.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C180.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C181.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C182.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C183.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C184.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C185.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C186.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C187.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C188.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C189.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C19.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C190.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C191.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C192.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C193.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C194.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C195.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C196.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C197.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C198.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C199.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C2.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C20.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C200.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C201.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C202.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C203.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C204.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C205.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C206.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C207.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C208.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C209.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C21.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C210.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C211.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C212.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C213.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C214.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C215.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C216.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C217.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C218.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C219.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C22.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C220.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C221.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C222.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C223.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C224.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C225.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C226.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C227.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C228.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C229.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C23.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C230.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C231.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C232.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C233.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C234.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C235.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C236.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C237.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C238.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C239.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C24.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C240.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C241.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C242.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C243.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C244.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C245.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C246.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C247.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C248.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C249.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C25.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C250.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C26.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C27.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C28.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C29.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C3.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C30.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C31.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C32.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C33.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C34.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C35.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C36.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C37.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C38.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C39.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C4.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C40.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C41.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C42.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C43.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C44.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C45.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C46.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C47.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C48.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C49.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C5.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C50.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C51.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C52.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C53.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C54.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C55.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C56.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C57.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C58.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C59.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C6.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C60.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C61.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C62.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C63.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C64.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C65.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C66.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C67.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C68.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C69.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C7.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C70.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C71.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C72.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C73.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C74.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C75.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C76.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C77.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C78.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C79.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C8.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C80.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C81.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C82.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C83.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C84.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C85.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C86.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C87.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C88.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C89.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C9.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C90.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C91.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C92.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C93.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C94.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C95.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C96.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C97.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C98.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C99.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/s_1_1101.filter     |   Bin
 .../Intensities/BaseCalls/L002/C1.1/s_2_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L002/C10.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C100.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C101.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C102.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C103.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C104.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C105.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C106.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C107.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C108.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C109.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C11.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C110.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C111.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C112.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C113.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C114.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C115.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C116.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C117.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C118.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C119.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C12.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C120.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C121.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C122.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C123.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C124.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C125.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C126.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C127.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C128.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C129.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C13.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C130.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C131.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C132.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C133.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C134.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C135.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C136.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C137.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C138.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C139.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C14.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C140.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C141.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C142.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C143.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C144.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C145.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C146.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C147.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C148.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C149.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C15.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C150.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C151.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C152.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C153.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C154.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C155.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C156.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C157.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C158.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C159.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C16.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C160.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C161.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C162.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C163.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C164.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C165.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C166.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C167.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C168.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C169.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C17.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C170.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C171.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C172.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C173.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C174.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C175.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C176.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C177.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C178.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C179.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C18.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C180.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C181.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C182.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C183.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C184.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C185.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C186.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C187.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C188.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C189.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C19.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C190.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C191.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C192.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C193.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C194.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C195.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C196.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C197.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C198.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C199.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C2.1/s_2_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L002/C20.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C200.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C201.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C202.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C203.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C204.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C205.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C206.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C207.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C208.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C209.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C21.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C210.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C211.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C212.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C213.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C214.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C215.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C216.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C217.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C218.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C219.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C22.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C220.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C221.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C222.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C223.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C224.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C225.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C226.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C227.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C228.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C229.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C23.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C230.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C231.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C232.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C233.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C234.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C235.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C236.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C237.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C238.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C239.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C24.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C240.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C241.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C242.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C243.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C244.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C245.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C246.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C247.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C248.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C249.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C25.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C250.1/s_2_1101.bcl |   Bin
 .../Intensities/BaseCalls/L002/C26.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C27.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C28.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C29.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C3.1/s_2_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L002/C30.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C31.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C32.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C33.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C34.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C35.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C36.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C37.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C38.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C39.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C4.1/s_2_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L002/C40.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C41.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C42.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C43.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C44.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C45.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C46.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C47.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C48.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C49.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C5.1/s_2_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L002/C50.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C51.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C52.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C53.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C54.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C55.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C56.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C57.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C58.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C59.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C6.1/s_2_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L002/C60.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C61.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C62.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C63.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C64.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C65.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C66.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C67.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C68.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C69.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C7.1/s_2_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L002/C70.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C71.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C72.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C73.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C74.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C75.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C76.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C77.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C78.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C79.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C8.1/s_2_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L002/C80.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C81.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C82.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C83.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C84.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C85.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C86.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C87.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C88.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C89.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C9.1/s_2_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L002/C90.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C91.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C92.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C93.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C94.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C95.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C96.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C97.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C98.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/C99.1/s_2_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L002/s_2_1101.filter     |   Bin
 .../125T125T/Data/Intensities/L001/s_1_1101.clocs  |   Bin
 .../125T125T/Data/Intensities/L002/s_2_1101.clocs  |   Bin
 .../Intensities/BaseCalls/L001/C1.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C1.1/s_1_1201.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C1.1/s_1_2101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C10.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C10.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C10.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C11.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C11.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C11.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C12.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C12.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C12.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C13.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C13.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C13.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C14.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C14.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C14.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C15.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C15.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C15.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C16.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C16.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C16.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C17.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C17.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C17.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C18.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C18.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C18.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C19.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C19.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C19.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C2.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C2.1/s_1_1201.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C2.1/s_1_2101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C20.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C20.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C20.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C21.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C21.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C21.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C22.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C22.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C22.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C23.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C23.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C23.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C24.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C24.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C24.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C25.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C25.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C25.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C26.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C26.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C26.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C27.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C27.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C27.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C28.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C28.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C28.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C29.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C29.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C29.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C3.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C3.1/s_1_1201.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C3.1/s_1_2101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C30.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C30.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C30.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C31.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C31.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C31.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C32.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C32.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C32.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C33.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C33.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C33.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C34.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C34.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C34.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C35.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C35.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C35.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C36.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C36.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C36.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C37.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C37.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C37.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C38.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C38.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C38.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C39.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C39.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C39.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C4.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C4.1/s_1_1201.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C4.1/s_1_2101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C40.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C40.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C40.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C41.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C41.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C41.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C42.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C42.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C42.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C43.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C43.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C43.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C44.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C44.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C44.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C45.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C45.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C45.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C46.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C46.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C46.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C47.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C47.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C47.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C48.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C48.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C48.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C49.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C49.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C49.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C5.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C5.1/s_1_1201.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C5.1/s_1_2101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C50.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C50.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C50.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C51.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C51.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C51.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C52.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C52.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C52.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C53.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C53.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C53.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C54.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C54.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C54.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C55.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C55.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C55.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C56.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C56.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C56.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C57.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C57.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C57.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C58.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C58.1/s_1_1201.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C58.1/s_1_2101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C6.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C6.1/s_1_1201.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C6.1/s_1_2101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C7.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C7.1/s_1_1201.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C7.1/s_1_2101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C8.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C8.1/s_1_1201.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C8.1/s_1_2101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C9.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C9.1/s_1_1201.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C9.1/s_1_2101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/s_1_1101.filter     |   Bin
 .../Intensities/BaseCalls/L001/s_1_1201.filter     |   Bin
 .../Intensities/BaseCalls/L001/s_1_2101.filter     |   Bin
 .../Intensities/BaseCalls/s_1_1101_barcode.txt.gz  |   Bin
 .../Intensities/BaseCalls/s_1_1201_barcode.txt.gz  |   Bin
 .../Intensities/BaseCalls/s_1_2101_barcode.txt.gz  |   Bin
 .../25T8B25T/Data/Intensities/L001/s_1_1101.clocs  |   Bin
 .../25T8B25T/Data/Intensities/L001/s_1_1201.clocs  |   Bin
 .../25T8B25T/Data/Intensities/L001/s_1_2101.clocs  |   Bin
 .../illumina/25T8B25T/fastq/AAAAAAAA.1.fastq       |     0
 .../illumina/25T8B25T/fastq/AAAAAAAA.2.fastq       |     0
 .../25T8B25T/fastq/AAAAAAAA.barcode_1.fastq        |     0
 .../illumina/25T8B25T/fastq/AAAAGAAG.1.fastq       |     0
 .../illumina/25T8B25T/fastq/AAAAGAAG.2.fastq       |     0
 .../25T8B25T/fastq/AAAAGAAG.barcode_1.fastq        |     0
 .../illumina/25T8B25T/fastq/AACAATGG.1.fastq       |    16 +
 .../illumina/25T8B25T/fastq/AACAATGG.2.fastq       |    16 +
 .../25T8B25T/fastq/AACAATGG.barcode_1.fastq        |    16 +
 .../illumina/25T8B25T/fastq/AACGCATT.1.fastq       |    28 +
 .../illumina/25T8B25T/fastq/AACGCATT.2.fastq       |    28 +
 .../25T8B25T/fastq/AACGCATT.barcode_1.fastq        |    28 +
 .../illumina/25T8B25T/fastq/ACAAAATT.1.fastq       |     0
 .../illumina/25T8B25T/fastq/ACAAAATT.2.fastq       |     0
 .../25T8B25T/fastq/ACAAAATT.barcode_1.fastq        |     0
 .../illumina/25T8B25T/fastq/ACAGGTAT.1.fastq       |    16 +
 .../illumina/25T8B25T/fastq/ACAGGTAT.2.fastq       |    16 +
 .../25T8B25T/fastq/ACAGGTAT.barcode_1.fastq        |    16 +
 .../illumina/25T8B25T/fastq/ACAGTTGA.1.fastq       |     8 +
 .../illumina/25T8B25T/fastq/ACAGTTGA.2.fastq       |     8 +
 .../25T8B25T/fastq/ACAGTTGA.barcode_1.fastq        |     8 +
 .../illumina/25T8B25T/fastq/ACCAGTTG.1.fastq       |     0
 .../illumina/25T8B25T/fastq/ACCAGTTG.2.fastq       |     0
 .../25T8B25T/fastq/ACCAGTTG.barcode_1.fastq        |     0
 .../illumina/25T8B25T/fastq/ACGAAATC.1.fastq       |     0
 .../illumina/25T8B25T/fastq/ACGAAATC.2.fastq       |     0
 .../25T8B25T/fastq/ACGAAATC.barcode_1.fastq        |     0
 .../illumina/25T8B25T/fastq/ACTAAGAC.1.fastq       |    16 +
 .../illumina/25T8B25T/fastq/ACTAAGAC.2.fastq       |    16 +
 .../25T8B25T/fastq/ACTAAGAC.barcode_1.fastq        |    16 +
 .../illumina/25T8B25T/fastq/ACTGTACC.1.fastq       |     0
 .../illumina/25T8B25T/fastq/ACTGTACC.2.fastq       |     0
 .../25T8B25T/fastq/ACTGTACC.barcode_1.fastq        |     0
 .../illumina/25T8B25T/fastq/ACTGTATC.1.fastq       |    16 +
 .../illumina/25T8B25T/fastq/ACTGTATC.2.fastq       |    16 +
 .../25T8B25T/fastq/ACTGTATC.barcode_1.fastq        |    16 +
 .../illumina/25T8B25T/fastq/AGAAAAGA.1.fastq       |     0
 .../illumina/25T8B25T/fastq/AGAAAAGA.2.fastq       |     0
 .../25T8B25T/fastq/AGAAAAGA.barcode_1.fastq        |     0
 .../illumina/25T8B25T/fastq/AGCATGGA.1.fastq       |    12 +
 .../illumina/25T8B25T/fastq/AGCATGGA.2.fastq       |    12 +
 .../25T8B25T/fastq/AGCATGGA.barcode_1.fastq        |    12 +
 .../illumina/25T8B25T/fastq/AGGTAAGG.1.fastq       |    16 +
 .../illumina/25T8B25T/fastq/AGGTAAGG.2.fastq       |    16 +
 .../25T8B25T/fastq/AGGTAAGG.barcode_1.fastq        |    16 +
 .../illumina/25T8B25T/fastq/AGGTCGCA.1.fastq       |    16 +
 .../illumina/25T8B25T/fastq/AGGTCGCA.2.fastq       |    16 +
 .../25T8B25T/fastq/AGGTCGCA.barcode_1.fastq        |    16 +
 .../illumina/25T8B25T/fastq/ATTATCAA.1.fastq       |    20 +
 .../illumina/25T8B25T/fastq/ATTATCAA.2.fastq       |    20 +
 .../25T8B25T/fastq/ATTATCAA.barcode_1.fastq        |    20 +
 .../illumina/25T8B25T/fastq/ATTCCTCT.1.fastq       |    16 +
 .../illumina/25T8B25T/fastq/ATTCCTCT.2.fastq       |    16 +
 .../25T8B25T/fastq/ATTCCTCT.barcode_1.fastq        |    16 +
 .../illumina/25T8B25T/fastq/CAACTCTC.1.fastq       |    20 +
 .../illumina/25T8B25T/fastq/CAACTCTC.2.fastq       |    20 +
 .../25T8B25T/fastq/CAACTCTC.barcode_1.fastq        |    20 +
 .../illumina/25T8B25T/fastq/CAATAGAC.1.fastq       |     0
 .../illumina/25T8B25T/fastq/CAATAGAC.2.fastq       |     0
 .../25T8B25T/fastq/CAATAGAC.barcode_1.fastq        |     0
 .../illumina/25T8B25T/fastq/CAATAGTC.1.fastq       |    28 +
 .../illumina/25T8B25T/fastq/CAATAGTC.2.fastq       |    28 +
 .../25T8B25T/fastq/CAATAGTC.barcode_1.fastq        |    28 +
 .../illumina/25T8B25T/fastq/CAGCGGAT.1.fastq       |     0
 .../illumina/25T8B25T/fastq/CAGCGGAT.2.fastq       |     0
 .../25T8B25T/fastq/CAGCGGAT.barcode_1.fastq        |     0
 .../illumina/25T8B25T/fastq/CAGCGGTA.1.fastq       |    20 +
 .../illumina/25T8B25T/fastq/CAGCGGTA.2.fastq       |    20 +
 .../25T8B25T/fastq/CAGCGGTA.barcode_1.fastq        |    20 +
 .../illumina/25T8B25T/fastq/CCAACATT.1.fastq       |    28 +
 .../illumina/25T8B25T/fastq/CCAACATT.2.fastq       |    28 +
 .../25T8B25T/fastq/CCAACATT.barcode_1.fastq        |    28 +
 .../illumina/25T8B25T/fastq/CCAGCACC.1.fastq       |    12 +
 .../illumina/25T8B25T/fastq/CCAGCACC.2.fastq       |    12 +
 .../25T8B25T/fastq/CCAGCACC.barcode_1.fastq        |    12 +
 .../illumina/25T8B25T/fastq/CCATGCGT.1.fastq       |     0
 .../illumina/25T8B25T/fastq/CCATGCGT.2.fastq       |     0
 .../25T8B25T/fastq/CCATGCGT.barcode_1.fastq        |     0
 .../illumina/25T8B25T/fastq/CGCCTTCC.1.fastq       |     8 +
 .../illumina/25T8B25T/fastq/CGCCTTCC.2.fastq       |     8 +
 .../25T8B25T/fastq/CGCCTTCC.barcode_1.fastq        |     8 +
 .../illumina/25T8B25T/fastq/CGCTATGT.1.fastq       |    20 +
 .../illumina/25T8B25T/fastq/CGCTATGT.2.fastq       |    20 +
 .../25T8B25T/fastq/CGCTATGT.barcode_1.fastq        |    20 +
 .../illumina/25T8B25T/fastq/CTAACTCG.1.fastq       |    16 +
 .../illumina/25T8B25T/fastq/CTAACTCG.2.fastq       |    16 +
 .../25T8B25T/fastq/CTAACTCG.barcode_1.fastq        |    16 +
 .../illumina/25T8B25T/fastq/CTATGCGC.1.fastq       |     0
 .../illumina/25T8B25T/fastq/CTATGCGC.2.fastq       |     0
 .../25T8B25T/fastq/CTATGCGC.barcode_1.fastq        |     0
 .../illumina/25T8B25T/fastq/CTATGCGT.1.fastq       |    28 +
 .../illumina/25T8B25T/fastq/CTATGCGT.2.fastq       |    28 +
 .../25T8B25T/fastq/CTATGCGT.barcode_1.fastq        |    28 +
 .../illumina/25T8B25T/fastq/CTGCGGAT.1.fastq       |    12 +
 .../illumina/25T8B25T/fastq/CTGCGGAT.2.fastq       |    12 +
 .../25T8B25T/fastq/CTGCGGAT.barcode_1.fastq        |    12 +
 .../illumina/25T8B25T/fastq/CTGTAATC.1.fastq       |    24 +
 .../illumina/25T8B25T/fastq/CTGTAATC.2.fastq       |    24 +
 .../25T8B25T/fastq/CTGTAATC.barcode_1.fastq        |    24 +
 .../illumina/25T8B25T/fastq/GAAAAAAA.1.fastq       |     0
 .../illumina/25T8B25T/fastq/GAAAAAAA.2.fastq       |     0
 .../25T8B25T/fastq/GAAAAAAA.barcode_1.fastq        |     0
 .../illumina/25T8B25T/fastq/GAACGAT..1.fastq       |     0
 .../illumina/25T8B25T/fastq/GAACGAT..2.fastq       |     0
 .../25T8B25T/fastq/GAACGAT..barcode_1.fastq        |     0
 .../illumina/25T8B25T/fastq/GAAGGAAG.1.fastq       |    12 +
 .../illumina/25T8B25T/fastq/GAAGGAAG.2.fastq       |    12 +
 .../25T8B25T/fastq/GAAGGAAG.barcode_1.fastq        |    12 +
 .../illumina/25T8B25T/fastq/GACCAGGA.1.fastq       |    28 +
 .../illumina/25T8B25T/fastq/GACCAGGA.2.fastq       |    28 +
 .../25T8B25T/fastq/GACCAGGA.barcode_1.fastq        |    28 +
 .../illumina/25T8B25T/fastq/GACCAGGC.1.fastq       |     0
 .../illumina/25T8B25T/fastq/GACCAGGC.2.fastq       |     0
 .../25T8B25T/fastq/GACCAGGC.barcode_1.fastq        |     0
 .../illumina/25T8B25T/fastq/GACCGTTG.1.fastq       |    16 +
 .../illumina/25T8B25T/fastq/GACCGTTG.2.fastq       |    16 +
 .../25T8B25T/fastq/GACCGTTG.barcode_1.fastq        |    16 +
 .../illumina/25T8B25T/fastq/GACCTAAC.1.fastq       |     4 +
 .../illumina/25T8B25T/fastq/GACCTAAC.2.fastq       |     4 +
 .../25T8B25T/fastq/GACCTAAC.barcode_1.fastq        |     4 +
 .../illumina/25T8B25T/fastq/GATATCCA.1.fastq       |    12 +
 .../illumina/25T8B25T/fastq/GATATCCA.2.fastq       |    12 +
 .../25T8B25T/fastq/GATATCCA.barcode_1.fastq        |    12 +
 .../illumina/25T8B25T/fastq/GCCGTCGA.1.fastq       |    20 +
 .../illumina/25T8B25T/fastq/GCCGTCGA.2.fastq       |    20 +
 .../25T8B25T/fastq/GCCGTCGA.barcode_1.fastq        |    20 +
 .../illumina/25T8B25T/fastq/GCCTAGCC.1.fastq       |    20 +
 .../illumina/25T8B25T/fastq/GCCTAGCC.2.fastq       |    20 +
 .../25T8B25T/fastq/GCCTAGCC.barcode_1.fastq        |    20 +
 .../illumina/25T8B25T/fastq/GTAACATC.1.fastq       |     8 +
 .../illumina/25T8B25T/fastq/GTAACATC.2.fastq       |     8 +
 .../25T8B25T/fastq/GTAACATC.barcode_1.fastq        |     8 +
 .../illumina/25T8B25T/fastq/GTCCACAG.1.fastq       |     8 +
 .../illumina/25T8B25T/fastq/GTCCACAG.2.fastq       |     8 +
 .../25T8B25T/fastq/GTCCACAG.barcode_1.fastq        |     8 +
 testdata/picard/illumina/25T8B25T/fastq/N.1.fastq  |    64 +
 testdata/picard/illumina/25T8B25T/fastq/N.2.fastq  |    64 +
 .../illumina/25T8B25T/fastq/N.barcode_1.fastq      |    64 +
 .../illumina/25T8B25T/fastq/TAAGCACA.1.fastq       |     8 +
 .../illumina/25T8B25T/fastq/TAAGCACA.2.fastq       |     8 +
 .../25T8B25T/fastq/TAAGCACA.barcode_1.fastq        |     8 +
 .../illumina/25T8B25T/fastq/TACCGTCT.1.fastq       |     0
 .../illumina/25T8B25T/fastq/TACCGTCT.2.fastq       |     0
 .../25T8B25T/fastq/TACCGTCT.barcode_1.fastq        |     0
 .../illumina/25T8B25T/fastq/TAGCGGTA.1.fastq       |     0
 .../illumina/25T8B25T/fastq/TAGCGGTA.2.fastq       |     0
 .../25T8B25T/fastq/TAGCGGTA.barcode_1.fastq        |     0
 .../illumina/25T8B25T/fastq/TATCAGCC.1.fastq       |     0
 .../illumina/25T8B25T/fastq/TATCAGCC.2.fastq       |     0
 .../25T8B25T/fastq/TATCAGCC.barcode_1.fastq        |     0
 .../illumina/25T8B25T/fastq/TATCCAGG.1.fastq       |    16 +
 .../illumina/25T8B25T/fastq/TATCCAGG.2.fastq       |    16 +
 .../25T8B25T/fastq/TATCCAGG.barcode_1.fastq        |    16 +
 .../illumina/25T8B25T/fastq/TATCCATG.1.fastq       |     0
 .../illumina/25T8B25T/fastq/TATCCATG.2.fastq       |     0
 .../25T8B25T/fastq/TATCCATG.barcode_1.fastq        |     0
 .../illumina/25T8B25T/fastq/TATCTCGG.1.fastq       |     0
 .../illumina/25T8B25T/fastq/TATCTCGG.2.fastq       |     0
 .../25T8B25T/fastq/TATCTCGG.barcode_1.fastq        |     0
 .../illumina/25T8B25T/fastq/TATCTGCC.1.fastq       |    28 +
 .../illumina/25T8B25T/fastq/TATCTGCC.2.fastq       |    28 +
 .../25T8B25T/fastq/TATCTGCC.barcode_1.fastq        |    28 +
 .../illumina/25T8B25T/fastq/TCCGTCTA.1.fastq       |     0
 .../illumina/25T8B25T/fastq/TCCGTCTA.2.fastq       |     0
 .../25T8B25T/fastq/TCCGTCTA.barcode_1.fastq        |     0
 .../illumina/25T8B25T/fastq/TCGCTAGA.1.fastq       |    20 +
 .../illumina/25T8B25T/fastq/TCGCTAGA.2.fastq       |    20 +
 .../25T8B25T/fastq/TCGCTAGA.barcode_1.fastq        |    20 +
 .../illumina/25T8B25T/fastq/TCTGCAAG.1.fastq       |     4 +
 .../illumina/25T8B25T/fastq/TCTGCAAG.2.fastq       |     4 +
 .../25T8B25T/fastq/TCTGCAAG.barcode_1.fastq        |     4 +
 .../illumina/25T8B25T/fastq/TGCAAGTA.1.fastq       |     8 +
 .../illumina/25T8B25T/fastq/TGCAAGTA.2.fastq       |     8 +
 .../25T8B25T/fastq/TGCAAGTA.barcode_1.fastq        |     8 +
 .../illumina/25T8B25T/fastq/TGCTGCTG.1.fastq       |    16 +
 .../illumina/25T8B25T/fastq/TGCTGCTG.2.fastq       |    16 +
 .../25T8B25T/fastq/TGCTGCTG.barcode_1.fastq        |    16 +
 .../illumina/25T8B25T/fastq/TGTAACTC.1.fastq       |     4 +
 .../illumina/25T8B25T/fastq/TGTAACTC.2.fastq       |     4 +
 .../25T8B25T/fastq/TGTAACTC.barcode_1.fastq        |     4 +
 .../illumina/25T8B25T/fastq/TGTAATCA.1.fastq       |    12 +
 .../illumina/25T8B25T/fastq/TGTAATCA.2.fastq       |    12 +
 .../25T8B25T/fastq/TGTAATCA.barcode_1.fastq        |    12 +
 .../illumina/25T8B25T/fastq/TTGTCTAT.1.fastq       |    16 +
 .../illumina/25T8B25T/fastq/TTGTCTAT.2.fastq       |    16 +
 .../25T8B25T/fastq/TTGTCTAT.barcode_1.fastq        |    16 +
 .../picard/illumina/25T8B25T/fastq/barcode.params  |     0
 .../illumina/25T8B25T/fastq/mp_barcode.params      |     0
 .../illumina/25T8B25T/fastq/nonBarcoded.1.fastq    |   720 +
 .../illumina/25T8B25T/fastq/nonBarcoded.2.fastq    |   720 +
 .../illumina/25T8B25T/fastq/testMultiplex.1.fastq  |     0
 .../25T8B25T/fastq/testMultiplex.barcode_1.fastq   |     0
 .../25T8B25T/fastq/testMultiplexRH.1.fastq         |     0
 .../25T8B25T/fastq/testMultiplexRH.2.fastq         |     0
 .../25T8B25T/fastq/testMultiplexRH.barcode_1.fastq |     0
 .../picard/illumina/25T8B25T/sams/AAAAAAAA.sam     |     2 +
 .../picard/illumina/25T8B25T/sams/AAAAGAAG.sam     |     2 +
 .../picard/illumina/25T8B25T/sams/AACAATGG.sam     |    10 +
 .../picard/illumina/25T8B25T/sams/AACGCATT.sam     |    16 +
 .../picard/illumina/25T8B25T/sams/ACAAAATT.sam     |     2 +
 .../picard/illumina/25T8B25T/sams/ACAGGTAT.sam     |    10 +
 .../picard/illumina/25T8B25T/sams/ACAGTTGA.sam     |     6 +
 .../picard/illumina/25T8B25T/sams/ACCAGTTG.sam     |     2 +
 .../picard/illumina/25T8B25T/sams/ACGAAATC.sam     |     2 +
 .../picard/illumina/25T8B25T/sams/ACTAAGAC.sam     |    10 +
 .../picard/illumina/25T8B25T/sams/ACTGTACC.sam     |     2 +
 .../picard/illumina/25T8B25T/sams/ACTGTATC.sam     |    10 +
 .../picard/illumina/25T8B25T/sams/AGAAAAGA.sam     |     2 +
 .../picard/illumina/25T8B25T/sams/AGCATGGA.sam     |     8 +
 .../picard/illumina/25T8B25T/sams/AGGTAAGG.sam     |    10 +
 .../picard/illumina/25T8B25T/sams/AGGTCGCA.sam     |    10 +
 .../picard/illumina/25T8B25T/sams/ATTATCAA.sam     |    12 +
 .../picard/illumina/25T8B25T/sams/ATTCCTCT.sam     |    10 +
 .../picard/illumina/25T8B25T/sams/CAACTCTC.sam     |    12 +
 .../picard/illumina/25T8B25T/sams/CAATAGAC.sam     |     2 +
 .../picard/illumina/25T8B25T/sams/CAATAGTC.sam     |    16 +
 .../picard/illumina/25T8B25T/sams/CAGCGGAT.sam     |     2 +
 .../picard/illumina/25T8B25T/sams/CAGCGGTA.sam     |    12 +
 .../picard/illumina/25T8B25T/sams/CCAACATT.sam     |    16 +
 .../picard/illumina/25T8B25T/sams/CCAGCACC.sam     |     8 +
 .../picard/illumina/25T8B25T/sams/CCATGCGT.sam     |     2 +
 .../picard/illumina/25T8B25T/sams/CGCCTTCC.sam     |     6 +
 .../picard/illumina/25T8B25T/sams/CGCTATGT.sam     |    12 +
 .../picard/illumina/25T8B25T/sams/CTAACTCG.sam     |    10 +
 .../picard/illumina/25T8B25T/sams/CTATGCGC.sam     |     2 +
 .../picard/illumina/25T8B25T/sams/CTATGCGT.sam     |    16 +
 .../picard/illumina/25T8B25T/sams/CTGCGGAT.sam     |     8 +
 .../picard/illumina/25T8B25T/sams/CTGTAATC.sam     |    14 +
 .../picard/illumina/25T8B25T/sams/GAAAAAAA.sam     |     2 +
 .../picard/illumina/25T8B25T/sams/GAACGAT..sam     |     2 +
 .../picard/illumina/25T8B25T/sams/GAAGGAAG.sam     |     8 +
 .../picard/illumina/25T8B25T/sams/GACCAGGA.sam     |    16 +
 .../picard/illumina/25T8B25T/sams/GACCAGGC.sam     |     2 +
 .../picard/illumina/25T8B25T/sams/GACCGTTG.sam     |    10 +
 .../picard/illumina/25T8B25T/sams/GACCTAAC.sam     |     4 +
 .../picard/illumina/25T8B25T/sams/GATATCCA.sam     |     8 +
 .../picard/illumina/25T8B25T/sams/GCCGTCGA.sam     |    12 +
 .../picard/illumina/25T8B25T/sams/GCCTAGCC.sam     |    12 +
 .../picard/illumina/25T8B25T/sams/GTAACATC.sam     |     6 +
 .../picard/illumina/25T8B25T/sams/GTCCACAG.sam     |     6 +
 testdata/picard/illumina/25T8B25T/sams/N.sam       |    34 +
 .../picard/illumina/25T8B25T/sams/TAAGCACA.sam     |     6 +
 .../picard/illumina/25T8B25T/sams/TACCGTCT.sam     |     2 +
 .../picard/illumina/25T8B25T/sams/TAGCGGTA.sam     |     2 +
 .../picard/illumina/25T8B25T/sams/TATCAGCC.sam     |     2 +
 .../picard/illumina/25T8B25T/sams/TATCCAGG.sam     |    10 +
 .../picard/illumina/25T8B25T/sams/TATCCATG.sam     |     2 +
 .../picard/illumina/25T8B25T/sams/TATCTCGG.sam     |     2 +
 .../picard/illumina/25T8B25T/sams/TATCTGCC.sam     |    16 +
 .../picard/illumina/25T8B25T/sams/TCCGTCTA.sam     |     2 +
 .../picard/illumina/25T8B25T/sams/TCGCTAGA.sam     |    12 +
 .../picard/illumina/25T8B25T/sams/TCTGCAAG.sam     |     4 +
 .../picard/illumina/25T8B25T/sams/TGCAAGTA.sam     |     6 +
 .../picard/illumina/25T8B25T/sams/TGCTGCTG.sam     |    10 +
 .../picard/illumina/25T8B25T/sams/TGTAACTC.sam     |     4 +
 .../picard/illumina/25T8B25T/sams/TGTAATCA.sam     |     8 +
 .../picard/illumina/25T8B25T/sams/TTGTCTAT.sam     |    10 +
 .../picard/illumina/25T8B25T/sams/barcode.params   |     0
 .../sams/multiplexed_positive_rgtags.params        |     0
 .../picard/illumina/25T8B25T/sams/nonBarcoded.sam  |   182 +
 .../Intensities/BaseCalls/L001/C1.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C10.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C11.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C12.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C13.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C14.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C15.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C16.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C17.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C18.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C19.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C2.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C20.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C21.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C22.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C23.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C24.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C25.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C26.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C27.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C28.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C29.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C3.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C30.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C31.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C32.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C33.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C34.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C35.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C36.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C37.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C38.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C39.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C4.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C40.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C41.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C42.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C43.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C44.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C45.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C46.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C47.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C48.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C49.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C5.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C50.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C51.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C52.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C53.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C54.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C55.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C56.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C57.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C58.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C59.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C6.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C60.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C61.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C62.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C63.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C64.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C65.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C66.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C7.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C8.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C9.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/s_1_1101.filter     |   Bin
 .../Intensities/BaseCalls/s_1_1101_barcode.txt     |     0
 .../25T8B8B25T/Data/Intensities/L001/s_1_1101.locs |   Bin
 .../25T8B8B25T/fastq/AACTTGACGCTCTCTT.1.fastq      |     4 +
 .../25T8B8B25T/fastq/AACTTGACGCTCTCTT.2.fastq      |     4 +
 .../fastq/AACTTGACGCTCTCTT.barcode_1.fastq         |     4 +
 .../fastq/AACTTGACGCTCTCTT.barcode_2.fastq         |     4 +
 .../25T8B8B25T/fastq/AAGACACTAGTCACCT.1.fastq      |     4 +
 .../25T8B8B25T/fastq/AAGACACTAGTCACCT.2.fastq      |     4 +
 .../fastq/AAGACACTAGTCACCT.barcode_1.fastq         |     4 +
 .../fastq/AAGACACTAGTCACCT.barcode_2.fastq         |     4 +
 .../25T8B8B25T/fastq/AAGACACTAGTCTCCT.1.fastq      |     0
 .../25T8B8B25T/fastq/AAGACACTAGTCTCCT.2.fastq      |     0
 .../fastq/AAGACACTAGTCTCCT.barcode_1.fastq         |     0
 .../fastq/AAGACACTAGTCTCCT.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/ACAGGTATCACTTCAT.1.fastq      |     4 +
 .../25T8B8B25T/fastq/ACAGGTATCACTTCAT.2.fastq      |     4 +
 .../fastq/ACAGGTATCACTTCAT.barcode_1.fastq         |     4 +
 .../fastq/ACAGGTATCACTTCAT.barcode_2.fastq         |     4 +
 .../25T8B8B25T/fastq/ACAGTTGAATCTTCTC.1.fastq      |     8 +
 .../25T8B8B25T/fastq/ACAGTTGAATCTTCTC.2.fastq      |     8 +
 .../fastq/ACAGTTGAATCTTCTC.barcode_1.fastq         |     8 +
 .../fastq/ACAGTTGAATCTTCTC.barcode_2.fastq         |     8 +
 .../25T8B8B25T/fastq/ACCAACTGCATCACTT.1.fastq      |     4 +
 .../25T8B8B25T/fastq/ACCAACTGCATCACTT.2.fastq      |     4 +
 .../fastq/ACCAACTGCATCACTT.barcode_1.fastq         |     4 +
 .../fastq/ACCAACTGCATCACTT.barcode_2.fastq         |     4 +
 .../25T8B8B25T/fastq/ACCTACTGCTTCCCTT.1.fastq      |     0
 .../25T8B8B25T/fastq/ACCTACTGCTTCCCTT.2.fastq      |     0
 .../fastq/ACCTACTGCTTCCCTT.barcode_1.fastq         |     0
 .../fastq/ACCTACTGCTTCCCTT.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/ACTAAGACGTCCTCAT.1.fastq      |     4 +
 .../25T8B8B25T/fastq/ACTAAGACGTCCTCAT.2.fastq      |     4 +
 .../fastq/ACTAAGACGTCCTCAT.barcode_1.fastq         |     4 +
 .../fastq/ACTAAGACGTCCTCAT.barcode_2.fastq         |     4 +
 .../25T8B8B25T/fastq/AGGTCGCATTCCTTTC.1.fastq      |     0
 .../25T8B8B25T/fastq/AGGTCGCATTCCTTTC.2.fastq      |     0
 .../fastq/AGGTCGCATTCCTTTC.barcode_1.fastq         |     0
 .../fastq/AGGTCGCATTCCTTTC.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/AGGTGCGAGACATTAA.1.fastq      |     4 +
 .../25T8B8B25T/fastq/AGGTGCGAGACATTAA.2.fastq      |     4 +
 .../fastq/AGGTGCGAGACATTAA.barcode_1.fastq         |     4 +
 .../fastq/AGGTGCGAGACATTAA.barcode_2.fastq         |     4 +
 .../25T8B8B25T/fastq/AGGTTATCTTAGCCAG.1.fastq      |     4 +
 .../25T8B8B25T/fastq/AGGTTATCTTAGCCAG.2.fastq      |     4 +
 .../fastq/AGGTTATCTTAGCCAG.barcode_1.fastq         |     4 +
 .../fastq/AGGTTATCTTAGCCAG.barcode_2.fastq         |     4 +
 .../25T8B8B25T/fastq/AGTTGCTTTGACTTGG.1.fastq      |     4 +
 .../25T8B8B25T/fastq/AGTTGCTTTGACTTGG.2.fastq      |     4 +
 .../fastq/AGTTGCTTTGACTTGG.barcode_1.fastq         |     4 +
 .../fastq/AGTTGCTTTGACTTGG.barcode_2.fastq         |     4 +
 .../25T8B8B25T/fastq/ATAGCGTCTTGGTCTG.1.fastq      |     4 +
 .../25T8B8B25T/fastq/ATAGCGTCTTGGTCTG.2.fastq      |     4 +
 .../fastq/ATAGCGTCTTGGTCTG.barcode_1.fastq         |     4 +
 .../fastq/ATAGCGTCTTGGTCTG.barcode_2.fastq         |     4 +
 .../25T8B8B25T/fastq/ATTATCAACACCATAC.1.fastq      |     0
 .../25T8B8B25T/fastq/ATTATCAACACCATAC.2.fastq      |     0
 .../fastq/ATTATCAACACCATAC.barcode_1.fastq         |     0
 .../fastq/ATTATCAACACCATAC.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/ATTGTCTGGATTCACA.1.fastq      |     0
 .../25T8B8B25T/fastq/ATTGTCTGGATTCACA.2.fastq      |     0
 .../fastq/ATTGTCTGGATTCACA.barcode_1.fastq         |     0
 .../fastq/ATTGTCTGGATTCACA.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/CAATAGTCCGACTCTC.1.fastq      |     4 +
 .../25T8B8B25T/fastq/CAATAGTCCGACTCTC.2.fastq      |     4 +
 .../fastq/CAATAGTCCGACTCTC.barcode_1.fastq         |     4 +
 .../fastq/CAATAGTCCGACTCTC.barcode_2.fastq         |     4 +
 .../25T8B8B25T/fastq/CAGCAAGGGCGATATT.1.fastq      |     4 +
 .../25T8B8B25T/fastq/CAGCAAGGGCGATATT.2.fastq      |     4 +
 .../fastq/CAGCAAGGGCGATATT.barcode_1.fastq         |     4 +
 .../fastq/CAGCAAGGGCGATATT.barcode_2.fastq         |     4 +
 .../25T8B8B25T/fastq/CAGCGGTAAGTACTGC.1.fastq      |     4 +
 .../25T8B8B25T/fastq/CAGCGGTAAGTACTGC.2.fastq      |     4 +
 .../fastq/CAGCGGTAAGTACTGC.barcode_1.fastq         |     4 +
 .../fastq/CAGCGGTAAGTACTGC.barcode_2.fastq         |     4 +
 .../25T8B8B25T/fastq/CAGCGGTATGTACTGC.1.fastq      |     0
 .../25T8B8B25T/fastq/CAGCGGTATGTACTGC.2.fastq      |     0
 .../fastq/CAGCGGTATGTACTGC.barcode_1.fastq         |     0
 .../fastq/CAGCGGTATGTACTGC.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/CATGCTTATAGCATTG.1.fastq      |     8 +
 .../25T8B8B25T/fastq/CATGCTTATAGCATTG.2.fastq      |     8 +
 .../fastq/CATGCTTATAGCATTG.barcode_1.fastq         |     8 +
 .../fastq/CATGCTTATAGCATTG.barcode_2.fastq         |     8 +
 .../25T8B8B25T/fastq/CATGCTTATAGCATTT.1.fastq      |     0
 .../25T8B8B25T/fastq/CATGCTTATAGCATTT.2.fastq      |     0
 .../fastq/CATGCTTATAGCATTT.barcode_1.fastq         |     0
 .../fastq/CATGCTTATAGCATTT.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/CATGCTTTTAGCATTG.1.fastq      |     0
 .../25T8B8B25T/fastq/CATGCTTTTAGCATTG.2.fastq      |     0
 .../fastq/CATGCTTTTAGCATTG.barcode_1.fastq         |     0
 .../fastq/CATGCTTTTAGCATTG.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/CATGTTCGCGCCTTTT.1.fastq      |     0
 .../25T8B8B25T/fastq/CATGTTCGCGCCTTTT.2.fastq      |     0
 .../fastq/CATGTTCGCGCCTTTT.barcode_1.fastq         |     0
 .../fastq/CATGTTCGCGCCTTTT.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/CCAGAGCTCAACTGAT.1.fastq      |     8 +
 .../25T8B8B25T/fastq/CCAGAGCTCAACTGAT.2.fastq      |     8 +
 .../fastq/CCAGAGCTCAACTGAT.barcode_1.fastq         |     8 +
 .../fastq/CCAGAGCTCAACTGAT.barcode_2.fastq         |     8 +
 .../25T8B8B25T/fastq/CCCGATTTTCTCTCCC.1.fastq      |     0
 .../25T8B8B25T/fastq/CCCGATTTTCTCTCCC.2.fastq      |     0
 .../fastq/CCCGATTTTCTCTCCC.barcode_1.fastq         |     0
 .../fastq/CCCGATTTTCTCTCCC.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/CCTATGCCAATTGGCC.1.fastq      |     4 +
 .../25T8B8B25T/fastq/CCTATGCCAATTGGCC.2.fastq      |     4 +
 .../fastq/CCTATGCCAATTGGCC.barcode_1.fastq         |     4 +
 .../fastq/CCTATGCCAATTGGCC.barcode_2.fastq         |     4 +
 .../25T8B8B25T/fastq/CCTATTCTTCGTTTTC.1.fastq      |     0
 .../25T8B8B25T/fastq/CCTATTCTTCGTTTTC.2.fastq      |     0
 .../fastq/CCTATTCTTCGTTTTC.barcode_1.fastq         |     0
 .../fastq/CCTATTCTTCGTTTTC.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/CCTCTTCTCTCGCTTT.1.fastq      |     0
 .../25T8B8B25T/fastq/CCTCTTCTCTCGCTTT.2.fastq      |     0
 .../fastq/CCTCTTCTCTCGCTTT.barcode_1.fastq         |     0
 .../fastq/CCTCTTCTCTCGCTTT.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/CCTCTTTCTTCTGCTC.1.fastq      |     0
 .../25T8B8B25T/fastq/CCTCTTTCTTCTGCTC.2.fastq      |     0
 .../fastq/CCTCTTTCTTCTGCTC.barcode_1.fastq         |     0
 .../fastq/CCTCTTTCTTCTGCTC.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/CCTTCGCAGAATCGAC.1.fastq      |     4 +
 .../25T8B8B25T/fastq/CCTTCGCAGAATCGAC.2.fastq      |     4 +
 .../fastq/CCTTCGCAGAATCGAC.barcode_1.fastq         |     4 +
 .../fastq/CCTTCGCAGAATCGAC.barcode_2.fastq         |     4 +
 .../25T8B8B25T/fastq/CCTTCTTTTATCATTT.1.fastq      |     0
 .../25T8B8B25T/fastq/CCTTCTTTTATCATTT.2.fastq      |     0
 .../fastq/CCTTCTTTTATCATTT.barcode_1.fastq         |     0
 .../fastq/CCTTCTTTTATCATTT.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/CGCTATGTTTCACCTT.1.fastq      |     4 +
 .../25T8B8B25T/fastq/CGCTATGTTTCACCTT.2.fastq      |     4 +
 .../fastq/CGCTATGTTTCACCTT.barcode_1.fastq         |     4 +
 .../fastq/CGCTATGTTTCACCTT.barcode_2.fastq         |     4 +
 .../25T8B8B25T/fastq/CGCTATGTTTCTCCTT.1.fastq      |     0
 .../25T8B8B25T/fastq/CGCTATGTTTCTCCTT.2.fastq      |     0
 .../fastq/CGCTATGTTTCTCCTT.barcode_1.fastq         |     0
 .../fastq/CGCTATGTTTCTCCTT.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/CTACCAGGTTCTTGGC.1.fastq      |     4 +
 .../25T8B8B25T/fastq/CTACCAGGTTCTTGGC.2.fastq      |     4 +
 .../fastq/CTACCAGGTTCTTGGC.barcode_1.fastq         |     4 +
 .../fastq/CTACCAGGTTCTTGGC.barcode_2.fastq         |     4 +
 .../25T8B8B25T/fastq/CTCCCTCTTCCTTCTT.1.fastq      |     0
 .../25T8B8B25T/fastq/CTCCCTCTTCCTTCTT.2.fastq      |     0
 .../fastq/CTCCCTCTTCCTTCTT.barcode_1.fastq         |     0
 .../fastq/CTCCCTCTTCCTTCTT.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/CTGTAATCCTATTAGC.1.fastq      |     4 +
 .../25T8B8B25T/fastq/CTGTAATCCTATTAGC.2.fastq      |     4 +
 .../fastq/CTGTAATCCTATTAGC.barcode_1.fastq         |     4 +
 .../fastq/CTGTAATCCTATTAGC.barcode_2.fastq         |     4 +
 .../25T8B8B25T/fastq/GACCAGGACCATCACA.1.fastq      |     4 +
 .../25T8B8B25T/fastq/GACCAGGACCATCACA.2.fastq      |     4 +
 .../fastq/GACCAGGACCATCACA.barcode_1.fastq         |     4 +
 .../fastq/GACCAGGACCATCACA.barcode_2.fastq         |     4 +
 .../25T8B8B25T/fastq/GCCGTCGAAGGTACCA.1.fastq      |     8 +
 .../25T8B8B25T/fastq/GCCGTCGAAGGTACCA.2.fastq      |     8 +
 .../fastq/GCCGTCGAAGGTACCA.barcode_1.fastq         |     8 +
 .../fastq/GCCGTCGAAGGTACCA.barcode_2.fastq         |     8 +
 .../25T8B8B25T/fastq/GCCGTCGAAGGTACCC.1.fastq      |     0
 .../25T8B8B25T/fastq/GCCGTCGAAGGTACCC.2.fastq      |     0
 .../fastq/GCCGTCGAAGGTACCC.barcode_1.fastq         |     0
 .../fastq/GCCGTCGAAGGTACCC.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/GCCGTCGATGGTACCC.1.fastq      |     0
 .../25T8B8B25T/fastq/GCCGTCGATGGTACCC.2.fastq      |     0
 .../fastq/GCCGTCGATGGTACCC.barcode_1.fastq         |     0
 .../fastq/GCCGTCGATGGTACCC.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/GCCTAGCCCTTGAATC.1.fastq      |     4 +
 .../25T8B8B25T/fastq/GCCTAGCCCTTGAATC.2.fastq      |     4 +
 .../fastq/GCCTAGCCCTTGAATC.barcode_1.fastq         |     4 +
 .../fastq/GCCTAGCCCTTGAATC.barcode_2.fastq         |     4 +
 .../25T8B8B25T/fastq/GCTATCCACCTCCCCC.1.fastq      |     0
 .../25T8B8B25T/fastq/GCTATCCACCTCCCCC.2.fastq      |     0
 .../fastq/GCTATCCACCTCCCCC.barcode_1.fastq         |     0
 .../fastq/GCTATCCACCTCCCCC.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/GTATAACAAATTCAAC.1.fastq      |     4 +
 .../25T8B8B25T/fastq/GTATAACAAATTCAAC.2.fastq      |     4 +
 .../fastq/GTATAACAAATTCAAC.barcode_1.fastq         |     4 +
 .../fastq/GTATAACAAATTCAAC.barcode_2.fastq         |     4 +
 .../25T8B8B25T/fastq/GTATAACATATTCAAC.1.fastq      |     0
 .../25T8B8B25T/fastq/GTATAACATATTCAAC.2.fastq      |     0
 .../fastq/GTATAACATATTCAAC.barcode_1.fastq         |     0
 .../fastq/GTATAACATATTCAAC.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/GTCTGATGGAACTTCG.1.fastq      |     4 +
 .../25T8B8B25T/fastq/GTCTGATGGAACTTCG.2.fastq      |     4 +
 .../fastq/GTCTGATGGAACTTCG.barcode_1.fastq         |     4 +
 .../fastq/GTCTGATGGAACTTCG.barcode_2.fastq         |     4 +
 .../25T8B8B25T/fastq/GTCTGATGTCACTTCC.1.fastq      |     0
 .../25T8B8B25T/fastq/GTCTGATGTCACTTCC.2.fastq      |     0
 .../fastq/GTCTGATGTCACTTCC.barcode_1.fastq         |     0
 .../fastq/GTCTGATGTCACTTCC.barcode_2.fastq         |     0
 .../picard/illumina/25T8B8B25T/fastq/NN.1.fastq    |    76 +
 .../picard/illumina/25T8B8B25T/fastq/NN.2.fastq    |    76 +
 .../illumina/25T8B8B25T/fastq/NN.barcode_1.fastq   |    76 +
 .../illumina/25T8B8B25T/fastq/NN.barcode_2.fastq   |    76 +
 .../25T8B8B25T/fastq/TACTTAGCGTCTGCAC.1.fastq      |     8 +
 .../25T8B8B25T/fastq/TACTTAGCGTCTGCAC.2.fastq      |     8 +
 .../fastq/TACTTAGCGTCTGCAC.barcode_1.fastq         |     8 +
 .../fastq/TACTTAGCGTCTGCAC.barcode_2.fastq         |     8 +
 .../25T8B8B25T/fastq/TCCCCGTTCCAACTTC.1.fastq      |     0
 .../25T8B8B25T/fastq/TCCCCGTTCCAACTTC.2.fastq      |     0
 .../fastq/TCCCCGTTCCAACTTC.barcode_1.fastq         |     0
 .../fastq/TCCCCGTTCCAACTTC.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/TCCTTGGTGCTGCACT.1.fastq      |     4 +
 .../25T8B8B25T/fastq/TCCTTGGTGCTGCACT.2.fastq      |     4 +
 .../fastq/TCCTTGGTGCTGCACT.barcode_1.fastq         |     4 +
 .../fastq/TCCTTGGTGCTGCACT.barcode_2.fastq         |     4 +
 .../25T8B8B25T/fastq/TCGCCTTGCCAACGCT.1.fastq      |     4 +
 .../25T8B8B25T/fastq/TCGCCTTGCCAACGCT.2.fastq      |     4 +
 .../fastq/TCGCCTTGCCAACGCT.barcode_1.fastq         |     4 +
 .../fastq/TCGCCTTGCCAACGCT.barcode_2.fastq         |     4 +
 .../25T8B8B25T/fastq/TGCAAGTACGAACTTC.1.fastq      |     8 +
 .../25T8B8B25T/fastq/TGCAAGTACGAACTTC.2.fastq      |     8 +
 .../fastq/TGCAAGTACGAACTTC.barcode_1.fastq         |     8 +
 .../fastq/TGCAAGTACGAACTTC.barcode_2.fastq         |     8 +
 .../25T8B8B25T/fastq/TGCTCGACTTCACAGA.1.fastq      |     4 +
 .../25T8B8B25T/fastq/TGCTCGACTTCACAGA.2.fastq      |     4 +
 .../fastq/TGCTCGACTTCACAGA.barcode_1.fastq         |     4 +
 .../fastq/TGCTCGACTTCACAGA.barcode_2.fastq         |     4 +
 .../25T8B8B25T/fastq/TGCTCGACTTCACAGT.1.fastq      |     0
 .../25T8B8B25T/fastq/TGCTCGACTTCACAGT.2.fastq      |     0
 .../fastq/TGCTCGACTTCACAGT.barcode_1.fastq         |     0
 .../fastq/TGCTCGACTTCACAGT.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/TGTAATCACCTCTAAC.1.fastq      |     4 +
 .../25T8B8B25T/fastq/TGTAATCACCTCTAAC.2.fastq      |     4 +
 .../fastq/TGTAATCACCTCTAAC.barcode_1.fastq         |     4 +
 .../fastq/TGTAATCACCTCTAAC.barcode_2.fastq         |     4 +
 .../25T8B8B25T/fastq/TGTATCTCTTACTCTT.1.fastq      |     0
 .../25T8B8B25T/fastq/TGTATCTCTTACTCTT.2.fastq      |     0
 .../fastq/TGTATCTCTTACTCTT.barcode_1.fastq         |     0
 .../fastq/TGTATCTCTTACTCTT.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/TGTCGGTTTTTTGCTT.1.fastq      |     0
 .../25T8B8B25T/fastq/TGTCGGTTTTTTGCTT.2.fastq      |     0
 .../fastq/TGTCGGTTTTTTGCTT.barcode_1.fastq         |     0
 .../fastq/TGTCGGTTTTTTGCTT.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/TGTTCCGAAACCTCTT.1.fastq      |     4 +
 .../25T8B8B25T/fastq/TGTTCCGAAACCTCTT.2.fastq      |     4 +
 .../fastq/TGTTCCGAAACCTCTT.barcode_1.fastq         |     4 +
 .../fastq/TGTTCCGAAACCTCTT.barcode_2.fastq         |     4 +
 .../25T8B8B25T/fastq/TTAATCAGCTGGTATT.1.fastq      |     4 +
 .../25T8B8B25T/fastq/TTAATCAGCTGGTATT.2.fastq      |     4 +
 .../fastq/TTAATCAGCTGGTATT.barcode_1.fastq         |     4 +
 .../fastq/TTAATCAGCTGGTATT.barcode_2.fastq         |     4 +
 .../25T8B8B25T/fastq/TTATATCTTCATGTCT.1.fastq      |     4 +
 .../25T8B8B25T/fastq/TTATATCTTCATGTCT.2.fastq      |     4 +
 .../fastq/TTATATCTTCATGTCT.barcode_1.fastq         |     4 +
 .../fastq/TTATATCTTCATGTCT.barcode_2.fastq         |     4 +
 .../25T8B8B25T/fastq/TTCCCCAGTGCTTTTA.1.fastq      |     0
 .../25T8B8B25T/fastq/TTCCCCAGTGCTTTTA.2.fastq      |     0
 .../fastq/TTCCCCAGTGCTTTTA.barcode_1.fastq         |     0
 .../fastq/TTCCCCAGTGCTTTTA.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/TTCCTCCTCACCATCC.1.fastq      |     0
 .../25T8B8B25T/fastq/TTCCTCCTCACCATCC.2.fastq      |     0
 .../fastq/TTCCTCCTCACCATCC.barcode_1.fastq         |     0
 .../fastq/TTCCTCCTCACCATCC.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/TTCTCATCTTCCTTCC.1.fastq      |     0
 .../25T8B8B25T/fastq/TTCTCATCTTCCTTCC.2.fastq      |     0
 .../fastq/TTCTCATCTTCCTTCC.barcode_1.fastq         |     0
 .../fastq/TTCTCATCTTCCTTCC.barcode_2.fastq         |     0
 .../25T8B8B25T/fastq/TTGAATAGATATCCGA.1.fastq      |     4 +
 .../25T8B8B25T/fastq/TTGAATAGATATCCGA.2.fastq      |     4 +
 .../fastq/TTGAATAGATATCCGA.barcode_1.fastq         |     4 +
 .../fastq/TTGAATAGATATCCGA.barcode_2.fastq         |     4 +
 .../25T8B8B25T/fastq/barcode_double.params         |     0
 .../picard/illumina/25T8B8B25T/library.params      |     0
 .../picard/illumina/25T8B8B25T/sams/AACTTGAC.sam   |     4 +
 .../picard/illumina/25T8B8B25T/sams/AAGACACT.sam   |     4 +
 .../picard/illumina/25T8B8B25T/sams/ACAGGTAT.sam   |     4 +
 .../picard/illumina/25T8B8B25T/sams/ACAGTTGA.sam   |     6 +
 .../picard/illumina/25T8B8B25T/sams/ACCAACTG.sam   |     4 +
 .../picard/illumina/25T8B8B25T/sams/ACCTACTG.sam   |     2 +
 .../picard/illumina/25T8B8B25T/sams/ACTAAGAC.sam   |     4 +
 .../picard/illumina/25T8B8B25T/sams/AGGTCGCA.sam   |     2 +
 .../picard/illumina/25T8B8B25T/sams/AGGTGCGA.sam   |     4 +
 .../picard/illumina/25T8B8B25T/sams/AGGTTATC.sam   |     4 +
 .../picard/illumina/25T8B8B25T/sams/AGTTGCTT.sam   |     4 +
 .../picard/illumina/25T8B8B25T/sams/ATAGCGTC.sam   |     4 +
 .../picard/illumina/25T8B8B25T/sams/ATTATCAA.sam   |     2 +
 .../picard/illumina/25T8B8B25T/sams/ATTGTCTG.sam   |     2 +
 .../picard/illumina/25T8B8B25T/sams/CAATAGTC.sam   |     4 +
 .../picard/illumina/25T8B8B25T/sams/CAGCAAGG.sam   |     4 +
 .../picard/illumina/25T8B8B25T/sams/CAGCGGTA.sam   |     4 +
 .../picard/illumina/25T8B8B25T/sams/CATGCTTA.sam   |     6 +
 .../picard/illumina/25T8B8B25T/sams/CATGCTTT.sam   |     2 +
 .../picard/illumina/25T8B8B25T/sams/CATGTTCG.sam   |     2 +
 .../picard/illumina/25T8B8B25T/sams/CCAGAGCT.sam   |     6 +
 .../picard/illumina/25T8B8B25T/sams/CCCGATTT.sam   |     2 +
 .../picard/illumina/25T8B8B25T/sams/CCTATGCC.sam   |     4 +
 .../picard/illumina/25T8B8B25T/sams/CCTATTCT.sam   |     2 +
 .../picard/illumina/25T8B8B25T/sams/CCTCTTCT.sam   |     2 +
 .../picard/illumina/25T8B8B25T/sams/CCTCTTTC.sam   |     2 +
 .../picard/illumina/25T8B8B25T/sams/CCTTCGCA.sam   |     4 +
 .../picard/illumina/25T8B8B25T/sams/CCTTCTTT.sam   |     2 +
 .../picard/illumina/25T8B8B25T/sams/CGCTATGT.sam   |     4 +
 .../picard/illumina/25T8B8B25T/sams/CTACCAGG.sam   |     4 +
 .../picard/illumina/25T8B8B25T/sams/CTCCCTCT.sam   |     2 +
 .../picard/illumina/25T8B8B25T/sams/CTGTAATC.sam   |     4 +
 .../picard/illumina/25T8B8B25T/sams/GACCAGGA.sam   |     4 +
 .../picard/illumina/25T8B8B25T/sams/GCCGTCGA.sam   |     6 +
 .../picard/illumina/25T8B8B25T/sams/GCCTAGCC.sam   |     4 +
 .../picard/illumina/25T8B8B25T/sams/GCTATCCA.sam   |     2 +
 .../picard/illumina/25T8B8B25T/sams/GTATAACA.sam   |     4 +
 .../picard/illumina/25T8B8B25T/sams/GTCTGATG.sam   |     4 +
 testdata/picard/illumina/25T8B8B25T/sams/N.sam     |    40 +
 .../picard/illumina/25T8B8B25T/sams/TACTTAGC.sam   |     6 +
 .../picard/illumina/25T8B8B25T/sams/TCCCCGTT.sam   |     2 +
 .../picard/illumina/25T8B8B25T/sams/TCCTTGGT.sam   |     4 +
 .../picard/illumina/25T8B8B25T/sams/TCGCCTTG.sam   |     4 +
 .../picard/illumina/25T8B8B25T/sams/TGCAAGTA.sam   |     6 +
 .../picard/illumina/25T8B8B25T/sams/TGCTCGAC.sam   |     4 +
 .../picard/illumina/25T8B8B25T/sams/TGTAATCA.sam   |     4 +
 .../picard/illumina/25T8B8B25T/sams/TGTATCTC.sam   |     2 +
 .../picard/illumina/25T8B8B25T/sams/TGTCGGTT.sam   |     2 +
 .../picard/illumina/25T8B8B25T/sams/TGTTCCGA.sam   |     4 +
 .../picard/illumina/25T8B8B25T/sams/TTAATCAG.sam   |     4 +
 .../picard/illumina/25T8B8B25T/sams/TTATATCT.sam   |     4 +
 .../picard/illumina/25T8B8B25T/sams/TTCCCCAG.sam   |     2 +
 .../picard/illumina/25T8B8B25T/sams/TTCCTCCT.sam   |     2 +
 .../picard/illumina/25T8B8B25T/sams/TTCTCATC.sam   |     2 +
 .../picard/illumina/25T8B8B25T/sams/TTGAATAG.sam   |     4 +
 .../illumina/25T8B8B25T/sams/barcode_double.params |     0
 .../Intensities/BaseCalls/L001/C1.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C10.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C100.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C101.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C102.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C103.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C104.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C105.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C106.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C107.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C108.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C109.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C11.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C110.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C111.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C112.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C113.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C114.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C115.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C116.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C117.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C118.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C119.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C12.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C120.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C121.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C122.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C123.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C124.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C125.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C126.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C127.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C128.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C129.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C13.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C130.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C131.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C132.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C133.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C134.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C135.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C136.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C137.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C138.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C139.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C14.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C140.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C141.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C142.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C143.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C144.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C145.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C146.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C147.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C148.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C149.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C15.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C150.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C151.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C152.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C153.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C154.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C155.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C156.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C157.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C158.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C159.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C16.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C160.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C161.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C162.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C163.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C164.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C165.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C166.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C167.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C168.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C169.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C17.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C170.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C171.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C172.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C173.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C174.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C175.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C176.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C177.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C178.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C179.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C18.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C180.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C181.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C182.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C183.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C184.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C185.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C186.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C187.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C188.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C189.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C19.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C190.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C191.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C192.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C193.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C194.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C195.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C196.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C197.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C198.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C199.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C2.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C20.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C200.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C201.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C202.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C203.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C204.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C205.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C206.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C207.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C208.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C209.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C21.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C210.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C211.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C212.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C213.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C214.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C215.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C216.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C217.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C218.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C219.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C22.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C220.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C221.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C222.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C223.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C224.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C225.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C226.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C227.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C228.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C229.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C23.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C230.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C231.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C232.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C233.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C234.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C235.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C236.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C237.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C238.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C239.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C24.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C240.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C241.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C242.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C243.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C244.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C245.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C246.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C247.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C248.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C249.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C25.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C250.1/s_1_1101.bcl |   Bin
 .../Intensities/BaseCalls/L001/C26.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C27.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C28.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C29.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C3.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C30.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C31.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C32.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C33.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C34.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C35.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C36.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C37.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C38.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C39.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C4.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C40.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C41.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C42.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C43.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C44.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C45.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C46.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C47.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C48.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C49.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C5.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C50.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C51.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C52.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C53.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C54.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C55.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C56.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C57.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C58.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C59.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C6.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C60.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C61.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C62.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C63.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C64.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C65.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C66.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C67.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C68.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C69.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C7.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C70.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C71.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C72.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C73.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C74.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C75.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C76.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C77.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C78.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C79.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C8.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C80.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C81.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C82.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C83.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C84.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C85.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C86.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C87.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C88.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C89.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C9.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C90.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C91.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C92.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C93.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C94.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C95.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C96.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C97.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C98.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C99.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/s_1_1101.filter     |   Bin
 .../125T125T/Data/Intensities/L001/s_1_1101.clocs  |   Bin
 .../Intensities/BaseCalls/L001/C1.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C10.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C11.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C12.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C13.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C14.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C15.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C16.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C17.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C18.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C19.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C2.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C20.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C21.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C22.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C23.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C24.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C25.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C26.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C27.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C28.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C29.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C3.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C30.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C31.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C32.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C33.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C34.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C35.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C36.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C37.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C38.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C39.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C4.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C40.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C41.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C42.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C43.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C44.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C45.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C46.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C47.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C48.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C49.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C5.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C50.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C51.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C52.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C53.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C54.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C55.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C56.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C57.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C58.1/s_1_1101.bcl  |   Bin
 .../Intensities/BaseCalls/L001/C6.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C7.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C8.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/C9.1/s_1_1101.bcl   |   Bin
 .../Intensities/BaseCalls/L001/s_1_1101.filter     |   Bin
 .../Data/Intensities/BaseCalls/barcodeData.1       |     6 +
 .../Intensities/BaseCalls/s_1_1101_barcode.txt.gz  |   Bin
 .../25T8B25T/Data/Intensities/L001/s_1_1101.clocs  |   Bin
 .../CollectIlluminaLaneMetrics}/.gitignore         |     0
 .../illumina/Homo_sapiens_assembly18.seqdict.sam   |     0
 ..._SL-HBB_0226_BFCC1WYMACXX.expected.lane_metrics |    13 +
 ..._SL-HBB_0226_BFCC1WYMACXX.illumina_lane_metrics |    13 +
 .../InterOp/TileMetricsOut.bin                     |   Bin 0 -> 115202 bytes
 ...AK_0035_FC000000000-A306B.illumina_lane_metrics |     6 +
 .../InterOp/TileMetricsOut.bin                     |   Bin 0 -> 2942 bytes
 ...01_SL-HAC_0022_BH07PBADXX.illumina_lane_metrics |     7 +
 .../InterOp/TileMetricsOut.bin                     |   Bin 0 -> 19202 bytes
 .../tileRuns/A67HY/A67HY.illumina_lane_metrics     |     6 +
 .../tileRuns/A67HY/A67HY.illumina_phasing_metrics  |     3 +
 .../tileRuns/A67HY/InterOp/TileMetricsOut.bin      |   Bin 0 -> 3922 bytes
 .../tileRuns/A67HY/README                          |     1 +
 .../tileRuns/A7LE0/A7LE0.illumina_lane_metrics     |     6 +
 .../tileRuns/A7LE0/A7LE0.illumina_phasing_metrics  |     7 +
 .../tileRuns/A7LE0/InterOp/TileMetricsOut.bin      |   Bin 0 -> 7282 bytes
 .../tileRuns/A7LE0/README                          |     1 +
 .../C2MFAACXX/C2MFAACXX.illumina_lane_metrics      |    13 +
 .../C2MFAACXX/C2MFAACXX.illumina_phasing_metrics   |    21 +
 .../tileRuns/C2MFAACXX/InterOp/TileMetricsOut.bin  |   Bin 0 -> 92162 bytes
 .../tileRuns/C2MFAACXX/README                      |     1 +
 .../H7BATADXX/H7BATADXX.illumina_lane_metrics      |     7 +
 .../H7BATADXX/H7BATADXX.illumina_phasing_metrics   |     9 +
 .../tileRuns/H7BATADXX/InterOp/TileMetricsOut.bin  |   Bin 0 -> 19202 bytes
 .../tileRuns/H7BATADXX/README                      |     1 +
 .../H7H7RADXX/H7H7RADXX.illumina_lane_metrics      |     7 +
 .../H7H7RADXX/H7H7RADXX.illumina_phasing_metrics   |     9 +
 .../tileRuns/H7H7RADXX/InterOp/TileMetricsOut.bin  |   Bin 0 -> 23042 bytes
 .../tileRuns/H7H7RADXX/README                      |     2 +
 .../parserTests/filterParser/L001/s_1_0001.filter  |   Bin
 .../parserTests/filterParser/L001/s_1_0002.filter  |   Bin
 .../parserTests/filterParser/L001/s_1_0003.filter  |   Bin
 .../parserTests/filterParser/L001/s_1_0004.filter  |   Bin
 .../illumina/parserTests/posParser/s_1_1_pos.txt   |     0
 .../illumina/parserTests/posParser/s_1_2_pos.txt   |     0
 .../illumina/parserTests/posParser/s_1_3_pos.txt   |     0
 .../parserTests/posParser/s_9_3201_pos.txt         |     0
 .../parserTests/posParser/s_9_3202_pos.txt         |     0
 .../picard/illumina/readerTests/bcl_failing.bcl    |   Bin
 .../picard/illumina/readerTests/bcl_failing2.bcl   |   Bin
 .../picard/illumina/readerTests/bcl_passing.bcl    |   Bin
 .../picard/illumina/readerTests/bcl_tooLong.bcl    |   Bin
 .../picard/illumina/readerTests/bcl_tooShort.bcl   |   Bin
 .../picard/illumina/readerTests/binary_passing.bin |     0
 .../illumina/readerTests/pf_badOpeningBytes.filter |   Bin
 .../illumina/readerTests/pf_badVersionBytes.filter |   Bin
 .../picard/illumina/readerTests/pf_failing1.filter |   Bin
 .../picard/illumina/readerTests/pf_failing2.filter |   Bin
 .../picard/illumina/readerTests/pf_passing.filter  |   Bin
 .../picard/illumina/readerTests/pf_tooLarge.filter |   Bin
 .../picard/illumina/readerTests/pf_tooShort.filter |   Bin
 .../illumina/readerTests/pos_failing1_pos.txt      |     0
 .../picard/illumina/readerTests/s_1_10.locs        |   Bin
 .../picard/illumina/readerTests/s_1_1101_pos.txt   |     0
 .../picard/illumina/readerTests/s_1_1102_pos.txt   |     0
 .../picard/illumina/readerTests/s_1_1103_pos.txt   |     0
 .../picard/illumina/readerTests/s_1_1104_pos.txt   |     0
 .../picard/illumina/readerTests/s_1_2106.clocs     |   Bin
 .../sf => }/picard/illumina/readerTests/s_1_6.locs |   Bin
 .../sf => }/picard/illumina/readerTests/s_1_7.locs |   Bin
 .../sf => }/picard/illumina/readerTests/s_1_8.locs |   Bin
 .../sf => }/picard/illumina/readerTests/s_1_9.locs |   Bin
 .../picard/illumina/readerTests/s_2_1101.clocs     |   Bin
 .../picard/illumina/readerTests/s_2_1101_pos.txt   |     0
 .../picard/illumina/readerTests/s_3_2102.clocs     |   Bin
 .../picard/illumina/readerTests/s_3_2103.clocs     |   Bin
 .../picard/illumina/readerTests/s_3_2104.clocs     |   Bin
 .../picard/illumina/readerTests/s_3_2105.clocs     |   Bin
 testdata/picard/metrics/chrM.reference.fasta       |   333 +
 testdata/picard/metrics/chrMReads.sam              |     8 +
 testdata/picard/quality/chrM.part.intervallist     |     5 +
 testdata/picard/quality/chrM.reference.fasta       |   333 +
 testdata/picard/quality/chrMReads.sam              |     8 +
 .../picard/quality/chrMReadsDiffereingLengths.sam  |     5 +
 testdata/picard/quality/chrMReadsMateUnmapped.sam  |     7 +
 testdata/picard/quality/chrMReadsMated.sam         |     5 +
 testdata/picard/quality/chrMReadsMatedRev.sam      |     5 +
 testdata/picard/quality/chrMReadsMatedRevOrder.sam |     5 +
 .../picard/quality/chrMReadsMatedSameStrand.sam    |     5 +
 .../picard/quality/chrMReadsSecondaryAlignSoft.sam |     6 +
 .../quality/chrMReadsSupplementalAlignSoft.sam     |     6 +
 testdata/picard/quality/chrMReadsUnMated.sam       |     5 +
 .../picard/sam/CleanSam/fits_with_deletion.sam     |     0
 .../sam/CleanSam/long_trailing_insertion.sam       |     0
 .../picard/sam/CleanSam/overhang_with_deletion.sam |     0
 .../sf => }/picard/sam/CleanSam/simple_fits.sam    |     0
 .../picard/sam/CleanSam/simple_overhang.sam        |     0
 .../picard/sam/CleanSam/trailing_insertion.sam     |     0
 .../picard/sam/CollectGcBiasMetrics/Mheader.dict   |     2 +
 .../picard/sam/CompareSAMs/bigger_seq_dict.sam     |     0
 .../{net/sf => }/picard/sam/CompareSAMs/chr21.sam  |     0
 .../sf => }/picard/sam/CompareSAMs/diff_coords.sam |     0
 .../sf => }/picard/sam/CompareSAMs/example2.sam    |     0
 .../picard/sam/CompareSAMs/genomic_sorted.sam      |     0
 .../picard/sam/CompareSAMs/genomic_sorted_5.sam    |     0
 .../sam/CompareSAMs/genomic_sorted_5_plus.sam      |     0
 .../picard/sam/CompareSAMs/group_same_coord.sam    |     0
 .../CompareSAMs/group_same_coord_diff_order.sam    |     0
 .../picard/sam/CompareSAMs/has_non_primary.sam     |     0
 .../picard/sam/CompareSAMs/unmapped_first.sam      |     0
 .../picard/sam/CompareSAMs/unmapped_second.sam     |     0
 .../sf => }/picard/sam/CompareSAMs/unsorted.sam    |     0
 .../picard/sam/GatherBamFiles/indUnknownChrom.bam  |   Bin 0 -> 1186 bytes
 testdata/picard/sam/GatherBamFiles/indchr1.bam     |   Bin 0 -> 394 bytes
 testdata/picard/sam/GatherBamFiles/indchr2.bam     |   Bin 0 -> 400 bytes
 testdata/picard/sam/GatherBamFiles/indchr3.bam     |   Bin 0 -> 400 bytes
 testdata/picard/sam/GatherBamFiles/indchr4.bam     |   Bin 0 -> 406 bytes
 testdata/picard/sam/GatherBamFiles/indchr5.bam     |   Bin 0 -> 404 bytes
 testdata/picard/sam/GatherBamFiles/indchr6.bam     |   Bin 0 -> 399 bytes
 testdata/picard/sam/GatherBamFiles/indchr7.bam     |   Bin 0 -> 657 bytes
 testdata/picard/sam/GatherBamFiles/indchr8.bam     |   Bin 0 -> 531 bytes
 testdata/picard/sam/GatherBamFiles/orig.bam        |   Bin 0 -> 2390 bytes
 .../markDuplicatesWithMateCigar.pairSet.swap.sam   |    42 +
 .../sf => }/picard/sam/MarkDuplicates/merge1.sam   |     0
 .../sf => }/picard/sam/MarkDuplicates/merge2.sam   |     0
 .../sf => }/picard/sam/MarkDuplicates/merge3.sam   |     0
 testdata/picard/sam/MarkDuplicates/npe.perhaps.sam |    92 +
 .../picard/sam/MarkDuplicates/optical_dupes.sam    |    16 +
 .../sam/MarkDuplicates/optical_dupes_casava.sam    |    16 +
 .../sam/MergeBamAlignment/aligned.badorder.sam     |     0
 .../sam/MergeBamAlignment/aligned.supplement.sam   |     0
 .../MergeBamAlignment/allread1.trimmed.aligned.sam |     0
 .../MergeBamAlignment/allread2.trimmed.aligned.sam |     0
 .../sam/MergeBamAlignment/cliptest.aligned.sam     |     0
 .../picard/sam/MergeBamAlignment/cliptest.dict     |     2 +
 .../picard/sam/MergeBamAlignment/cliptest.fasta    |     0
 .../sam/MergeBamAlignment/cliptest.unmapped.sam    |     0
 .../firsthalf.read1.trimmed.aligned.sam            |     0
 .../firsthalf.read2.trimmed.aligned.sam            |     0
 .../sam/MergeBamAlignment/multihit.aligned.sam     |     0
 .../multihit.filter.fragment.unmapped.sam          |     0
 .../MergeBamAlignment/multihit.filter.unmapped.sam |     0
 .../sam/MergeBamAlignment/multihit.unmapped.sam    |     0
 .../secondhalf.read1.trimmed.aligned.sam           |     0
 .../secondhalf.read2.trimmed.aligned.sam           |     0
 .../sam/MergeBamAlignment/unmapped.badorder.sam    |     0
 .../picard/sam/MergeBamAlignment/unmapped.sam      |     0
 .../sam/MergeSamFiles/case1/chr11sub_file1.sam     |     0
 .../sam/MergeSamFiles/case1/chr11sub_file2.sam     |     0
 .../sam/MergeSamFiles/case1/expected_output.sam    |    13 +
 .../sam/MergeSamFiles/case2/chr11sub_file1.sam     |     0
 .../sam/MergeSamFiles/case2/chr11sub_file2.sam     |     0
 .../sam/MergeSamFiles/case2/chr11sub_file3.sam     |     0
 .../sam/MergeSamFiles/case2/chr11sub_file4.sam     |     0
 .../sam/MergeSamFiles/case2/expected_output.sam    |    21 +
 .../picard/sam/MergeSamFiles/unsorted_input/1.sam  |     0
 .../picard/sam/MergeSamFiles/unsorted_input/2.sam  |     0
 .../picard/sam/PositionalDownsampleSam/header.dict |     9 +
 .../picard/sam/SamFileConverterTest/unmapped.bam   |   Bin 0 -> 841 bytes
 .../picard/sam/SamFileConverterTest/unmapped.cram  |   Bin 0 -> 2189 bytes
 .../picard/sam/SamFileConverterTest/unmapped.sam   |    14 +
 testdata/{net/sf => }/picard/sam/aligned.sam       |     0
 .../picard/sam/aligned_queryname_sorted.bam        |   Bin
 .../picard/sam/aligned_queryname_sorted.sam        |     0
 .../picard/sam/bam2fastq/nonpaired}/.gitignore     |     0
 .../picard/sam/bam2fastq/paired/bad/README.txt     |     0
 .../bam2fastq/paired/bad/grouped-unpaired-mate.sam |     0
 .../sam/bam2fastq/paired/bad/unpaired-mate.sam     |     0
 .../picard/sam/bam2fastq/paired/ok/README.txt      |     0
 .../sam/bam2fastq/paired/ok/clipping_test.sam      |     0
 .../paired/ok/first-mate-bof-last-mate-eof.sam     |     0
 .../paired/ok/grouped-last-pair-mates-flipped.sam  |     0
 .../paired/ok/last-pair-mates-flipped.sam          |     0
 .../sam/bam2fastq/paired/ok/sorted-pair-no-rg.sam  |     0
 .../picard/sam/bam2fastq/paired/ok/sorted-pair.sam |     0
 testdata/{net/sf => }/picard/sam/basic.fasta       |     0
 .../picard/sam/duplicate_sequence_names.fasta      |     0
 .../{net/sf => }/picard/sam/fastq2bam/README.txt   |     0
 .../picard/sam/fastq2bam/bad-format/0lines.txt     |     0
 .../picard/sam/fastq2bam/bad-format/1lines.txt     |     0
 .../picard/sam/fastq2bam/bad-format/2lines.txt     |     0
 .../picard/sam/fastq2bam/bad-format/3lines.txt     |     0
 .../sam/fastq2bam/bad-format/bad-qual-header.txt   |     0
 .../sam/fastq2bam/bad-format/bad-seq-header.txt    |     0
 .../picard/sam/fastq2bam/bad-format/extra-line.txt |     0
 .../sam/fastq2bam/bad-format/too-many-quals.txt    |     0
 .../sf => }/picard/sam/fastq2bam/bad-format/tt     |     0
 .../sf => }/picard/sam/fastq2bam/bad-paired/dott   |     0
 .../picard/sam/fastq2bam/bad-paired/pair-a1.txt    |     0
 .../picard/sam/fastq2bam/bad-paired/pair-a2.txt    |     0
 .../picard/sam/fastq2bam/bad-paired/pair-b1.txt    |     0
 .../picard/sam/fastq2bam/bad-paired/pair-b2.txt    |     0
 .../sam/fastq2bam/bad-paired/pair1-badnum.txt      |     0
 .../sam/fastq2bam/bad-paired/pair1-nonum.txt       |     0
 .../fastq2bam/bad-paired/pair1-one-more-record.txt |     0
 .../sam/fastq2bam/bad-paired/pair1-onetoken.txt    |     0
 .../sam/fastq2bam/bad-paired/pair2-badnum.txt      |     0
 .../sam/fastq2bam/bad-paired/pair2-diff-name.txt   |     0
 .../fastq2bam/bad-paired/pair2-one-more-record.txt |     0
 .../picard/sam/fastq2bam/fastq-illumina/README.txt |     0
 .../illumina-sanger_full_range_as_sanger-62.fastq  |     0
 .../fastq2bam/fastq-illumina/s_1_1_sequence.txt    |     0
 .../fastq2bam/fastq-illumina/s_1_2_sequence.txt    |     0
 .../sam/fastq2bam/fastq-illumina/s_1_sequence.txt  |     0
 .../fastq-sanger/5k-30BB2AAXX.3.aligned.sam.fastq  |     0
 .../fastq-sanger/5k-v1-Rhodobacter_LW1.sam.fastq   |     0
 .../picard/sam/fastq2bam/fastq-sanger/README.txt   |     0
 .../sanger_full_range_as_sanger-63.fastq           |     0
 .../picard/sam/fastq2bam/fastq-solexa/README.txt   |     0
 .../picard/sam/fastq2bam/fastq-solexa/bad1.fastq   |     0
 .../sam/fastq2bam/fastq-solexa/s_1_sequence.txt    |     0
 .../fastq-solexa/solexa_full_range_as_sanger.fastq |     0
 .../fastq-solexa/solexa_full_range_as_solexa.fastq |     0
 .../illumina-sanger_full_range_as_sanger-62.fastq  |     0
 .../picard/sam/fastq2bam/ok-paired/pair1.txt       |     0
 .../picard/sam/fastq2bam/ok-paired/pair2.txt       |     0
 .../sam/fastq2bam/ok-paired/s_1_1_sequence.txt     |     0
 .../sam/fastq2bam/ok-paired/s_1_2_sequence.txt     |     0
 .../sam/fastq2bam/ok-paired/s_1_sequence.txt       |     0
 .../sam/fastq2bam/permissive-format/pair1.txt      |     0
 .../sam/fastq2bam/permissive-format/pair2.txt      |     0
 .../fastq2bam/permissive-format/s_1_1_sequence.txt |     0
 .../fastq2bam/permissive-format/s_1_2_sequence.txt |     0
 .../fastq2bam/permissive-format/s_1_sequence.txt   |     0
 .../sequential-files/paired_end_R1_001.fastq}      |     0
 .../sequential-files/paired_end_R1_002.fastq}      |     0
 .../sequential-files/paired_end_R2_001.fastq}      |     0
 .../sequential-files/paired_end_R2_002.fastq}      |     0
 .../sequential-files/single_end_R1_001.fastq}      |     0
 .../sequential-files/single_end_R1_002.fastq}      |     0
 .../picard/sam/insert_size_metrics_test.sam        |     0
 .../sam}/invalid_coord_sort_order.sam              |     0
 testdata/{net/sf => }/picard/sam/merger.dict       |     0
 testdata/{net/sf => }/picard/sam/merger.fasta      |     0
 .../{net/sf => }/picard/sam/onehalfaligned.sam     |     0
 .../{net/sf => }/picard/sam/otherhalfaligned.sam   |     0
 .../{net/sf => }/picard/sam/revert_sam_basic.sam   |     0
 .../sf => }/picard/sam/revert_sam_negative.sam     |     0
 testdata/picard/sam/split_test.sam                 |    15 +
 testdata/picard/sam/split_test2.sam                |     9 +
 .../sam/summary_alignment_bisulfite_test.sam       |     0
 .../picard/sam/summary_alignment_stats_test.fasta  |     0
 .../picard/sam/summary_alignment_stats_test.sam    |     0
 .../picard/sam/summary_alignment_stats_test2.sam   |     0
 .../sam/summary_alignment_stats_test_multiple.sam  |     0
 testdata/{net/sf => }/picard/sam/unmapped.sam      |     0
 .../sam/viewsam_intervals_test.interval_list       |     7 +
 testdata/picard/sam/viewsam_intervals_test.sam     |     9 +
 .../util/BedToIntervalListTest/end_after_chr.bed   |     1 +
 .../util/BedToIntervalListTest/end_before_chr.bed  |     1 +
 .../picard/util/BedToIntervalListTest/extended.bed |     2 +
 .../extended.bed.interval_list                     |    11 +
 .../picard/util/BedToIntervalListTest/header.sam   |     9 +
 .../util/BedToIntervalListTest/missing_chr.bed     |     2 +
 .../BedToIntervalListTest/off_by_one_interval.bed  |     1 +
 .../BedToIntervalListTest/one_base_interval.bed    |     1 +
 .../one_base_interval.bed.interval_list            |    10 +
 .../util/BedToIntervalListTest/overlapping.bed     |     2 +
 .../overlapping.bed.interval_list                  |    10 +
 .../util/BedToIntervalListTest/seq_dict_test.bed   |     3 +
 .../seq_dict_test.bed.interval_list                |    12 +
 .../seq_dict_test.dictionary.bad                   |     1 +
 .../seq_dict_test.dictionary.bad.vcf               |     7 +
 .../seq_dict_test.dictionary.dict                  |     9 +
 .../seq_dict_test.dictionary.fasta                 |    16 +
 .../seq_dict_test.dictionary.interval_list         |    12 +
 .../seq_dict_test.dictionary.sam                   |     9 +
 .../seq_dict_test.dictionary.vcf                   |    14 +
 .../picard/util/BedToIntervalListTest/simple.bed   |     2 +
 .../BedToIntervalListTest/simple.bed.interval_list |    11 +
 .../util/BedToIntervalListTest/start_after_chr.bed |     1 +
 .../BedToIntervalListTest/start_before_chr.bed     |     1 +
 .../BedToIntervalListTest/zero_base_interval.bed   |     1 +
 .../zero_base_interval.bed.interval_list           |    10 +
 .../sf => }/picard/util/all_ones_text_file.txt     |     0
 .../{net/sf => }/picard/util/no_grouping_file.txt  |     0
 testdata/picard/util/scatterable.interval_list     |    89 +
 .../{net/sf => }/picard/util/tabbed_text_file.txt  |     0
 .../util/whitespace_text_file.txt}                 |     0
 .../picard/vcf/CEUTrio-indels-bad-samples.vcf      |     0
 .../picard/vcf/CEUTrio-indels-bad-samples.vcf.idx  |   Bin
 .../vcf/CEUTrio-indels-dissimilar-contigs.vcf      |     0
 .../vcf/CEUTrio-indels-dissimilar-contigs.vcf.idx  |   Bin
 .../picard/vcf/CEUTrio-indels-no-contigs.vcf       |     0
 testdata/picard/vcf/CEUTrio-indels-scrambled.1.vcf |   171 +
 .../{net/sf => }/picard/vcf/CEUTrio-indels.vcf     |     0
 .../{net/sf => }/picard/vcf/CEUTrio-indels.vcf.idx |   Bin
 ...ceDiff.genotype_concordance_contingency_metrics |    11 +
 ...ordanceDiff.genotype_concordance_detail_metrics |    12 +
 ...rdanceDiff.genotype_concordance_summary_metrics |    11 +
 .../picard/vcf/CEUTrio-merged-indels-snps.vcf      |     0
 .../picard/vcf/CEUTrio-merged-indels-snps.vcf.idx  |   Bin
 .../picard/vcf/CEUTrio-random-scatter-0.vcf        |     0
 .../picard/vcf/CEUTrio-random-scatter-0.vcf.idx    |   Bin
 .../picard/vcf/CEUTrio-random-scatter-1.vcf        |     0
 .../picard/vcf/CEUTrio-random-scatter-1.vcf.idx    |   Bin
 .../picard/vcf/CEUTrio-random-scatter-2.vcf        |     0
 .../picard/vcf/CEUTrio-random-scatter-2.vcf.idx    |   Bin
 .../picard/vcf/CEUTrio-random-scatter-3.vcf        |     0
 .../picard/vcf/CEUTrio-random-scatter-3.vcf.idx    |   Bin
 .../picard/vcf/CEUTrio-random-scatter-4.vcf        |     0
 .../picard/vcf/CEUTrio-random-scatter-4.vcf.idx    |   Bin
 .../picard/vcf/CEUTrio-random-scatter-5.vcf        |     0
 .../picard/vcf/CEUTrio-random-scatter-5.vcf.idx    |   Bin
 testdata/picard/vcf/CEUTrio-snps-scrambled.1.vcf   |   406 +
 testdata/picard/vcf/CEUTrio-snps-scrambled.2.vcf   |   406 +
 testdata/{net/sf => }/picard/vcf/CEUTrio-snps.vcf  |     0
 .../{net/sf => }/picard/vcf/CEUTrio-snps.vcf.idx   |   Bin
 ...ceDiff.genotype_concordance_contingency_metrics |    11 +
 ...ordanceDiff.genotype_concordance_detail_metrics |    13 +
 ...rdanceDiff.genotype_concordance_summary_metrics |    11 +
 ...ceDiff.genotype_concordance_contingency_metrics |    11 +
 ...ordanceDiff.genotype_concordance_detail_metrics |    13 +
 ...rdanceDiff.genotype_concordance_summary_metrics |    11 +
 ...ceDiff.genotype_concordance_contingency_metrics |    11 +
 ...ordanceDiff.genotype_concordance_detail_metrics |    13 +
 ...rdanceDiff.genotype_concordance_summary_metrics |    11 +
 testdata/picard/vcf/CEUTrio-snps_del_line.vcf      |   405 +
 .../picard/vcf/CEUTrio-snps_first_line_diff.vcf    |   406 +
 .../picard/vcf/CEUTrio-snps_last_line_diff.vcf     |   406 +
 ...ceDiff.genotype_concordance_contingency_metrics |    11 +
 ...ordanceDiff.genotype_concordance_detail_metrics |    12 +
 ...rdanceDiff.genotype_concordance_summary_metrics |    11 +
 ...llRows.genotype_concordance_contingency_metrics |    11 +
 ...iff_AllRows.genotype_concordance_detail_metrics |   383 +
 ...ff_AllRows.genotype_concordance_summary_metrics |    11 +
 ..._MinDp.genotype_concordance_contingency_metrics |    11 +
 ...eDiff_MinDp.genotype_concordance_detail_metrics |    21 +
 ...Diff_MinDp.genotype_concordance_summary_metrics |    11 +
 ..._MinGq.genotype_concordance_contingency_metrics |    11 +
 ...eDiff_MinGq.genotype_concordance_detail_metrics |    20 +
 ...Diff_MinGq.genotype_concordance_summary_metrics |    11 +
 .../picard/vcf/IntervalList1PerChrom.interval_list |   103 +
 .../picard/vcf/IntervalListChr1Small.interval_list |    86 +
 ...ceDiff.genotype_concordance_contingency_metrics |    11 +
 ...ordanceDiff.genotype_concordance_detail_metrics |    17 +
 ...rdanceDiff.genotype_concordance_summary_metrics |    11 +
 testdata/picard/vcf/NIST.selected.vcf              |   195 +
 testdata/picard/vcf/NIST.selected.vcf.idx          |   Bin 0 -> 13875 bytes
 .../picard/vcf/chunking/multi_allelic_at_10M.vcf   |   171 +
 .../vcf/chunking/multi_allelic_at_10M.vcf.idx      |   Bin 0 -> 15249 bytes
 testdata/picard/vcf/filter/testFiltering.vcf       |   150 +
 testdata/picard/vcf/mini.dbsnp.vcf                 |   639 +
 testdata/picard/vcf/mini.dbsnp.vcf.idx             |   Bin 0 -> 2347 bytes
 testdata/picard/vcf/mini.vcf                       |  1000 +
 testdata/picard/vcf/mini.vcf.idx                   |   Bin 0 -> 2625 bytes
 testdata/picard/vcf/vcfFormatTest.bad_dict.vcf     |   444 +
 testdata/{net/sf => }/picard/vcf/vcfFormatTest.bcf |   Bin
 .../{net/sf => }/picard/vcf/vcfFormatTest.bcf.idx  |   Bin
 testdata/picard/vcf/vcfFormatTest.scrambled.vcf    |   446 +
 testdata/{net/sf => }/picard/vcf/vcfFormatTest.vcf |     0
 .../{net/sf => }/picard/vcf/vcfFormatTest.vcf.idx  |   Bin
 testdata/tribble/Tb.vcf.idx                        |   Bin 998966 -> 0 bytes
 testdata/tribble/basicDbSNP.dbsnp                  |    43 -
 ....deletions.10kbp.het.gq99.hand_curated.hg19.bed |    35 -
 ...ions.10kbp.het.gq99.hand_curated.hg19_fixed.bed |    36 -
 testdata/tribble/bed/Unigene.sample.bed            |    72 -
 testdata/tribble/bed/disconcontigs.bed             |     5 -
 testdata/tribble/bed/unsorted.bed                  |     5 -
 testdata/tribble/complexExample.vcf                |    23 -
 testdata/tribble/fakeBed.bed                       |    51 -
 testdata/tribble/fakeVCF.vcf.gz                    |   Bin 351859 -> 0 bytes
 testdata/tribble/fakeVCF.vcf.gz.tbi                |   Bin 170 -> 0 bytes
 testdata/tribble/gwas/smallp.gwas                  |    20 -
 testdata/tribble/index/chrY_Y4_small.bed           |  5000 ---
 testdata/tribble/large.txt                         |   165 -
 testdata/tribble/seekTest.txt                      |     5 -
 testdata/tribble/sites.bed                         |  1000 -
 testdata/tribble/soapsnp.txt                       |    24 -
 testdata/tribble/split/test.bin.part1              |   Bin 16000 -> 0 bytes
 testdata/tribble/split/test.bin.part2              |   Bin 16000 -> 0 bytes
 testdata/tribble/split/test.bin.part3              |   Bin 16000 -> 0 bytes
 testdata/tribble/split/test.bin.split              |     3 -
 testdata/tribble/tabix/bigger.vcf.gz.tbi           |   Bin 595996 -> 0 bytes
 testdata/tribble/tabix/trioDup.vcf                 |    75 -
 testdata/tribble/tabix/trioDup.vcf.gz              |   Bin 1353 -> 0 bytes
 testdata/tribble/tabix/trioDup.vcf.gz.tbi          |   Bin 324 -> 0 bytes
 testdata/tribble/test.bed                          |     9 -
 testdata/tribble/test.gff                          |     9 -
 testdata/tribble/test.tabix.bed.gz                 |   Bin 116 -> 0 bytes
 testdata/tribble/test.tabix.bed.gz.tbi             |   Bin 121 -> 0 bytes
 testdata/tribble/testGeliText.txt                  |    50 -
 testdata/tribble/testIntervalList.list             |     6 -
 testdata/tribble/tmp/.gitignore                    |     0
 testdata/tribble/trio.vcf                          |   100 -
 testdata/tribble/trio.vcf.idx                      |   Bin 495 -> 0 bytes
 testdata/tribble/trioDup.vcf                       |    75 -
 testdata/tribble/vcfexample.vcf                    |    12 -
 testdata/tribble/vcfexample.vcf.gz                 |   Bin 471 -> 0 bytes
 testdata/tribble/vcfexample.vcf.gz.tbi             |   Bin 114 -> 0 bytes
 testdata/variant/HiSeq.10000.vcf                   | 10001 ------
 ...baseline.20111114.both.exome.genotypes.1000.vcf |   249 -
 testdata/variant/VQSR.mixedTest.recal              |    32 -
 testdata/variant/dbsnp_135.b37.1000.vcf            |   249 -
 testdata/variant/diagnosis_targets_testfile.vcf    |   117 -
 testdata/variant/ex2.bgzf.bcf                      |   Bin 1062 -> 0 bytes
 testdata/variant/ex2.bgzf.bcf.csi                  |   Bin 130 -> 0 bytes
 testdata/variant/ex2.uncompressed.bcf              |   Bin 1892 -> 0 bytes
 testdata/variant/ex2.vcf                           |    23 -
 3723 files changed, 80130 insertions(+), 215957 deletions(-)

diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000..c6f57c2
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,18 @@
+.git
+.gitignore
+.jar_opt
+.classpath
+.project
+.travis.yml
+build.sbt
+Picard-public.fbp
+Picard-public.iml
+Picard-public.ipr
+README.md
+classes
+dist
+etc
+htsjdk
+project
+testclasses
+testdata
diff --git a/.gitignore b/.gitignore
index 879b2f2..4dfc2d7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,4 @@
-. - Picard-public.iws
+Picard-public.iws
 .command_tmp
 classes
 testclasses
@@ -8,4 +8,6 @@ contracts
 atlassian-ide-plugin.xml
 intellij.testclasses
 intellij.classes
-
+htsjdk
+.idea
+target
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..5e3111e
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,12 @@
+language: java
+jdk:
+  - oraclejdk7
+  - openjdk7
+before_install:
+  - curl -OL http://raw.github.com/craigcitro/r-travis/master/scripts/travis-tool.sh
+  - chmod 755 ./travis-tool.sh
+  - ./travis-tool.sh bootstrap
+  - sed -i -e 's_git at github.com:_https://github.com/_' build.xml
+script:
+  - ant -lib lib/ant clone-htsjdk 
+  - ant test
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..aad8a53
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,31 @@
+FROM broadinstitute/java-baseimage
+MAINTAINER Broad Institute DSDE <dsde-engineering at broadinstitute.org>
+
+# Install ant, git for building
+RUN apt-get update && \
+    apt-get --no-install-recommends install -y --force-yes \
+        git \
+        ant && \
+    apt-get clean autoclean && \
+    apt-get autoremove -y
+
+# Assumes Dockerfile lives in root of the git repo. Pull source files into container
+COPY build.xml /usr/picard/build.xml
+COPY src /usr/picard/src
+COPY lib /usr/picard/lib
+WORKDIR /usr/picard
+
+# Clone out htsjdk. First turn off git ssl verification
+RUN git config --global http.sslVerify false && git clone https://github.com/samtools/htsjdk.git
+
+# Build the distribution jar, clean up everything else
+RUN ant clean all && \
+    mv dist/picard.jar picard.jar && \
+    mv src/scripts/picard/docker_helper.sh docker_helper.sh && \
+    ant clean && \
+    rm -rf htsjdk && \
+    rm -rf src && \
+    rm -rf lib && \
+    rm build.xml
+
+ENTRYPOINT ["./docker_helper.sh"]
\ No newline at end of file
diff --git a/Picard-public.iml b/Picard-public.iml
index 8cf5b94..478d4c7 100644
--- a/Picard-public.iml
+++ b/Picard-public.iml
@@ -12,6 +12,8 @@
     <content url="file://$MODULE_DIR$">
       <sourceFolder url="file://$MODULE_DIR$/src/java" isTestSource="false" />
       <sourceFolder url="file://$MODULE_DIR$/src/tests/java" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/htsjdk/src/java" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/htsjdk/src/tests/java" isTestSource="true" />
       <excludeFolder url="file://$MODULE_DIR$/.command_tmp" />
       <excludeFolder url="file://$MODULE_DIR$/classes" />
     </content>
@@ -20,57 +22,31 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/testng/testng-5.5-jdk15.jar!/" />
+          <root url="file://$MODULE_DIR$/htsjdk/lib" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
+        <jarDirectory url="file://$MODULE_DIR$/htsjdk/lib" recursive="false" />
       </library>
     </orderEntry>
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/snappy-java-1.0.3-rc3.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES>
-          <root url="file://$MODULE_DIR$/../../snappy/snappy-java/snappy-java-1.0.3-rc3-sources" />
-        </SOURCES>
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/apache-ant-1.8.2-bzip2.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/cofoja/cofoja-1.0-r139.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/commons-jexl-2.1.1.jar!/" />
+          <root url="file://$MODULE_DIR$/htsjdk/lib/cofoja" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
+        <jarDirectory url="file://$MODULE_DIR$/htsjdk/lib/cofoja" recursive="false" />
       </library>
     </orderEntry>
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/commons-logging-1.1.1.jar!/" />
+          <root url="file://$MODULE_DIR$/htsjdk/lib/testng" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
+        <jarDirectory url="file://$MODULE_DIR$/htsjdk/lib/testng" recursive="false" />
       </library>
     </orderEntry>
   </component>
diff --git a/Picard-public.ipr b/Picard-public.ipr
index c904413..69418df 100644
--- a/Picard-public.ipr
+++ b/Picard-public.ipr
@@ -36,9 +36,7 @@
       </profile>
     </annotationProcessing>
   </component>
-  <component name="CopyrightManager" default="">
-    <module2copyright />
-  </component>
+  <component name="CopyrightManager" default="" />
   <component name="DependencyValidationManager">
     <option name="SKIP_IMPORT_STATEMENTS" value="false" />
   </component>
@@ -346,7 +344,7 @@
   </component>
   <component name="VcsDirectoryMappings">
     <mapping directory="" vcs="" />
-    <mapping directory="$PROJECT_DIR$" vcs="svn" />
+    <mapping directory="$PROJECT_DIR$" vcs="Git" />
   </component>
   <component name="WebServicesPlugin" addRequiredLibraries="true" />
 </project>
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..21c60d7
--- /dev/null
+++ b/README.md
@@ -0,0 +1,56 @@
+[![Build Status](https://travis-ci.org/broadinstitute/picard.svg?branch=master)](https://travis-ci.org/broadinstitute/picard)
+
+A set of Java command line tools for manipulating high-throughput sequencing (HTS) data and formats.  
+
+Picard is implemented using the HTSJDK Java library[HTSJDK][1], supporting
+accessing of common file formats, such as [SAM][2] and [VCF][3], used for high-throughput
+sequencing data.  
+
+It's also possible to build a version of Picard that supports reading from
+GA4GH API, e.g. Google Genomics:
+
+* Fetch [gatk-tools-java](https://github.com/gatk-tools-java) 
+ 
+```git clone https://github.com/gatk-tools-java```
+
+* Build gatk-tools-java: 
+
+```gatk-tools-java$ mvn compile package```
+
+* Copy the resulting jar into Picard ```lib/``` folder:
+```
+gatk-tools-java$ mkdir ../picard/lib/gatk-tools-java
+gatk-tools-java$ cp target/gatk-tools-java*minimized.jar ../picard/lib/gatk-tools-java/
+```
+
+* Build Picard version with GA4GH support: 
+
+```picard$ ant -lib lib/ant package-commands-ga4gh```
+
+* If you have not yet worked with Google Genomics API and need to set up authentication, please follow the instructions [here](https://cloud.google.com/genomics/install-genomics-tools#authenticate) to set up credentials and obtain ```client_secrets.json``` file.
+
+
+* You can now run 
+```
+java -jar dist/picard.jar ViewSam \
+INPUT=https://www.googleapis.com/genomics/v1beta2/readgroupsets/CK256frpGBD44IWHwLP22R4/ \
+GA4GH_CLIENT_SECRETS=../client_secrets.json
+```
+
+* To run using GRPC as opposed to REST Genomics API implementation (which is much faster) use the following command that utilizes ALPN jars that come with gatk-tools-java and enables GRPC support:
+```
+java \
+-Xbootclasspath/p:../gatk-tools-java/lib/alpn-boot-8.1.3.v20150130.jar \
+-Dga4gh.using_grpc=true \
+-jar dist/picard.jar ViewSam \
+INPUT=https://www.googleapis.com/genomics/v1beta2/readgroupsets/CK256frpGBD44IWHwLP22R4/ \
+GA4GH_CLIENT_SECRETS=../client_secrets.json
+```
+For Java 7 (as opposed to 8) use ```alpn-boot-7.1.3.v20150130.jar```.
+
+
+Please see the [Picard Documentation](http://broadinstitute.github.io/picard) for more information.
+
+[1]: http://github.com/samtools/htsjdk
+[2]: http://samtools.sourceforge.net
+[3]: http://vcftools.sourceforge.net/specs.html
\ No newline at end of file
diff --git a/build-tribble.xml b/build-tribble.xml
deleted file mode 100644
index 4a87658..0000000
--- a/build-tribble.xml
+++ /dev/null
@@ -1,183 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ The MIT License
-  ~
-  ~ Copyright (c) 2010 The Broad Institute
-  ~
-  ~ Permission is hereby granted, free of charge, to any person obtaining a copy
-  ~ of this software and associated documentation files (the "Software"), to deal
-  ~ in the Software without restriction, including without limitation the rights
-  ~ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-  ~ copies of the Software, and to permit persons to whom the Software is
-  ~ furnished to do so, subject to the following conditions:
-  ~
-  ~ The above copyright notice and this permission notice shall be included in
-  ~ all copies or substantial portions of the Software.
-  ~
-  ~ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-  ~ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-  ~ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-  ~ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-  ~ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-  ~ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-  ~ THE SOFTWARE.
-  -->
-
-<project name="tribble" basedir="." default="all">
-
-    <property name="src" value="src"/>
-    <property name="src.test" value="${src}/tests/java"/>
-
-    <property name="lib" value="lib"/>
-    <property name="dist" value="dist"/>
-    <property name="classes" value="classes"/>
-    <property name="classes.test" value="testclasses"/>
-    <property name="reports" value="dist/test"/>
-    <property name="javac.debug" value="true"/>
-    <property name="javac.target" value="1.6"/>
-    <property name="tribble-version" value="0"/>
-    <property name="singleTest" value="*" /> <!-- used to determine what tests to run -->
-<!-- INIT -->
-    <target name="init">
-        <path id="classpath">
-            <fileset dir="${lib}">
-                <include name="**/*.jar"/>
-            </fileset>
-        </path>
-    </target>
-
-<!-- CLEAN -->
-    <target name="clean">
-        <delete dir="${classes}"/>
-        <delete dir="${classes.test}"/>
-        <delete  dir="${dist}"/>
-        <delete  dir="javadoc"/>
-    </target>
-
-<!-- COMPILE -->
-	<target name="compile" depends="init" description="Compile tribble files">
-    	<echo message="os.name:          ${os.name}"          />
-		<echo message="basdir:           ${basedir}"          />
-		<echo message="ant.file:         ${ant.file}"         />
-		<echo message="ant.project.name: ${ant.project.name}" />
-		<echo message="ant.java.version: ${ant.java.version}" />
-
-        <mkdir dir="${classes}"/>
-        <javac destdir="${classes}"
-               debug="${javac.debug}"
-               target="${javac.target}"
-               source="${javac.target}">
-            <src path="${src}"/>
-            <classpath refid="classpath"/>
-        </javac>
-    </target>
-
-    <target name="compile-tests" depends="compile" description="Compile test files">
-        <mkdir dir="${classes.test}"/>
-        <javac destdir="${classes.test}"
-               debug="${javac.debug}"
-               target="${javac.target}"
-               source="${javac.target}"
-               srcdir="${src.test}">
-          <compilerarg value="-Xlint:all"/>
-          <include name="org/broad/tribble/**/*"/>
-          <classpath>
-            <path refid="classpath"/>
-            <pathelement location="${classes}"/>
-          </classpath>
-        </javac>
-    </target>
-
-    <!-- TEST -->
-    <target name="test" depends="compile,compile-tests" description="Run unit tests">
-        <taskdef resource="testngtasks" classpathref="classpath"/>
-        <testng classpathref="classpath"
-                outputDir="${reports}"
-                haltOnFailure="true" verbose="2"
-                workingDir="${basedir}">
-            <jvmarg value="-Xmx1g"/>
-            <jvmarg value="-Djava.awt.headless=true" />
-            <jvmarg value="-Xdebug -verbose"/>
-            <jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"/>
-
-            <classpath>
-                <pathelement path="${classes}"/>
-                <pathelement path="${classes.test}"/>
-            </classpath>
-            <classfileset dir="${classes.test}" includes="**/${singleTest}.class"/>
-        </testng>
-
-        <!-- generate a report for Bamboo or Hudson to read in -->
-        <junitreport  todir="${reports}">
-            <fileset dir="${reports}">
-                <include name="*/*.xml"/>
-            </fileset>
-            <report format="noframes"  todir="${reports}"/>
-        </junitreport>
-    </target>
-
-
-<!-- CREATE JAR -->
-    <target name="tribble-jar" depends="compile"
-            description="Builds tribble-${tribble-version}.jar for inclusion in other projects">
-        <mkdir dir="${dist}"/>
-        <jar destfile="${dist}/tribble-${tribble-version}.jar" compress="no">
-            <fileset dir="${classes}" includes="org/broad/tribble/**/*.*"/>
-        </jar>
-        <copy todir="${dist}">
-                <fileset dir="lib" includes="*.jar"/>
-        </copy>
-        <jar destfile="${dist}/CountRecords.jar" compress="no">
-            <fileset dir="${classes}" includes="org/broad/tribble/**/*.*"/>
-            <manifest>
-                <attribute name="Class-Path" value="log4j-1.2.15.jar"/>
-                <attribute name="Main-Class" value="org.broad.tribble.example.CountRecords" />
-          </manifest>
-        </jar>
-        <jar destfile="${dist}/IndicesAreEqual.jar" compress="no">
-            <fileset dir="${classes}" includes="org/broad/tribble/**/*.*"/>
-            <manifest>
-                <attribute name="Class-Path" value="log4j-1.2.15.jar"/>
-                <attribute name="Main-Class" value="org.broad.tribble.example.IndicesAreEqual" />
-          </manifest>
-        </jar>
-
-        <jar destfile="${dist}/IndexToTable.jar" compress="no">
-            <fileset dir="${classes}" includes="org/broad/tribble/**/*.*"/>
-            <manifest>
-                <attribute name="Class-Path" value="log4j-1.2.15.jar"/>
-                <attribute name="Main-Class" value="org.broad.tribble.example.IndexToTable" />
-          </manifest>
-        </jar>
-
-        <jar destfile="${dist}/ProfileIndexReading.jar" compress="no">
-            <fileset dir="${classes}" includes="org/broad/tribble/**/*.*"/>
-            <manifest>
-                <attribute name="Class-Path" value="log4j-1.2.15.jar"/>
-                <attribute name="Main-Class" value="org.broad.tribble.example.ProfileIndexReading" />
-          </manifest>
-        </jar>
-    </target>
-
-<!-- JAVADOC -->
-    <target name="javadoc" depends="init" description="Generates the project javadoc.">
-        <javadoc
-           sourcepath="${src}"
-           destdir="javadoc"
-           packagenames="org.broad.tribble.*"
-           windowtitle="Tribble API Documentation"
-           doctitle="<h1>Tribble API Documentation</h1>"
-           author="true"
-           protected="true"
-           use="true"
-           version="true">
-          <classpath location="${java.home}/../lib/tools.jar"/>
-          <link href="http://java.sun.com/j2se/1.5.0/docs/api/"/>
-          </javadoc>
-        </target>
-
-<!-- ALL -->
-    <target name="all" depends="compile, tribble-jar" description="Default build target">
-    </target>
-
-</project>
diff --git a/build.sbt b/build.sbt
new file mode 100644
index 0000000..276d2e2
--- /dev/null
+++ b/build.sbt
@@ -0,0 +1,142 @@
+import com.typesafe.sbt.SbtGit._
+import de.johoop.testngplugin.TestNGPlugin._
+import sbt.Package.ManifestAttributes
+
+name := "picard"
+
+version := "1.138"
+
+organization := "com.github.broadinstitute"
+
+javaSource in Compile := baseDirectory.value / "src/java"
+
+javaSource in Test := baseDirectory.value / "src/tests"
+
+unmanagedResourceDirectories in Test := Seq(baseDirectory.value / "src/scripts", baseDirectory.value / "testdata", baseDirectory.value / "src/tests/scripts")
+
+libraryDependencies ++= Seq(
+  "com.github.samtools" % "htsjdk" % "1.138",
+  ("com.google.cloud.genomics" % "gatk-tools-java" % "1.1" % "picardopt").
+    exclude("org.mortbay.jetty", "servlet-api"),
+  "org.testng" % "testng" % "6.8.8" % Test
+)
+
+
+testNGSettings
+
+testNGSuites := Seq("src/tests/resources/testng.xml")
+
+autoScalaLibrary := false
+
+publishMavenStyle := true
+
+publishArtifact in Test := false
+
+pomIncludeRepository := { _ => false }
+
+crossPaths := false
+
+javacOptions in Compile ++= Seq("-source", "1.6")
+
+javacOptions in(Compile, compile) ++= Seq("-target", "1.6")
+
+versionWithGit
+
+assemblyJarName := s"${name.value}-${version.value}.jar"
+
+val PicardOpt = config("picardopt") extend Compile
+
+val gitVersion = settingKey[String]("The picard head commit git hash.")
+
+gitVersion := git.gitHeadCommit.value.get
+
+unmanagedJars in Compile ~= { uj =>
+  Seq(Attributed.blank(file(System.getProperty("java.home").dropRight(3) + "lib/tools.jar"))) ++ uj
+}
+
+test in assembly := {}
+
+packageOptions := Seq(ManifestAttributes(
+  ("Implementation-Version", s"${version.value}(${gitVersion.value})"),
+  ("Implementation-Vendor", "Broad Institute"),
+  ("Main-Class", "picard.cmdline.PicardCommandLine"),
+  ("Implementation-Title", "PICARD Tools")
+))
+
+publishTo := {
+  val nexus = "https://oss.sonatype.org/"
+  if (isSnapshot.value)
+    Some("snapshots" at nexus + "content/repositories/snapshots")
+  else
+    Some("releases" at nexus + "service/local/staging/deploy/maven2")
+}
+
+assemblyMergeStrategy in assembly := {
+  case x if Assembly.isConfigFile(x) =>
+    MergeStrategy.concat
+  case PathList(ps at _*) if (Assembly.isReadme(ps.last) || Assembly.isLicenseFile(ps.last)) =>
+    MergeStrategy.rename
+  case PathList("META-INF", xs at _*) =>
+    xs map {
+      _.toLowerCase
+    } match {
+      case ("manifest.mf" :: Nil) | ("index.list" :: Nil) | ("dependencies" :: Nil) =>
+        MergeStrategy.discard
+      case ps@(x :: xs) if ps.last.endsWith(".sf") || ps.last.endsWith(".dsa") =>
+        MergeStrategy.discard
+      case "plexus" :: xs =>
+        MergeStrategy.discard
+      case "spring.tooling" :: xs =>
+        MergeStrategy.discard
+      case "services" :: xs =>
+        MergeStrategy.filterDistinctLines
+      case ("spring.schemas" :: Nil) | ("spring.handlers" :: Nil) =>
+        MergeStrategy.filterDistinctLines
+      case _ => MergeStrategy.deduplicate
+    }
+  case "asm-license.txt" | "overview.html" =>
+    MergeStrategy.discard
+  case _ => MergeStrategy.deduplicate
+}
+
+assemblyExcludedJars in assembly := {
+  val cp = (fullClasspath in assembly).value
+  cp filter { jar =>
+    jar.data.getName == "gatk-tools-java-picard-1.1.jar" || jar.data.getName == "tools.jar"
+  }
+}
+
+val root = project.in(file(".")).
+  configs(PicardOpt).
+  settings(inConfig(PicardOpt)(
+  Classpaths.configSettings ++ Defaults.configTasks ++ baseAssemblySettings ++ Seq(
+    test in assembly := {},
+    assemblyJarName := s"${name.value}-opt-${version.value}.jar",
+    assemblyExcludedJars in assembly := {
+      val cp = (fullClasspath in assembly).value
+      cp filter { jar =>
+        jar.data.getName == "guava-15.0.jar" || jar.data.getName == "tools.jar"
+      }
+    }
+  )): _*)
+
+
+pomExtra := <url>http://samtools.github.io/htsjdk/</url>
+  <licenses>
+    <license>
+      <name>MIT License</name>
+      <url>http://opensource.org/licenses/MIT</url>
+      <distribution>repo</distribution>
+    </license>
+  </licenses>
+  <scm>
+    <url>git at github.com:samtools/htsjdk.git</url>
+    <connection>scm:git:git at github.com:samtools/htsjdk.git</connection>
+  </scm>
+  <developers>
+    <developer>
+      <id>picard</id>
+      <name>Picard Team</name>
+      <url>http://broadinstitute.github.io/picard/</url>
+    </developer>
+  </developers>
diff --git a/build.xml b/build.xml
index f7337a2..7ecd771 100755
--- a/build.xml
+++ b/build.xml
@@ -29,33 +29,41 @@
     <property name="src.scripts" value="src/scripts"/>
     <property name="src.test" value="src/tests"/>
     <property name="src.test.java" value="${src.test}/java"/>
+    <property name="src.www" value="src/www"/>
     <property name="lib" value="lib"/>
     <property name="dist" value="dist"/>
+    <property name="dist.tmp" value="dist/tmp"/>
     <property name="classes" value="classes"/>
     <property name="classes.test" value="testclasses"/>
     <property name="scripts" value="src/scripts"/>
     <property name="reports" value="dist/test"/>
     <property name="test.output" value="dist/test"/>
+    <property name="htsjdk_lib_dir" value="${dist}/htsjdk_lib_dir"/>
+    <property name="htsjdk_git_url" value="git at github.com:samtools/htsjdk.git"/>
+    <!-- TODO: get this from the build.xml in htsjdk -->
+    <property name="htsjdk-classes" value="htsjdk/classes"/>
 
     <property name="javac.target" value="1.6"/>
     <property name="javac.debug" value="true"/>
 
-    <!-- Get SVN revision, if available, otherwise leave it blank.  -->
-    <exec executable="svnversion" outputproperty="repository.revision" failifexecutionfails="false"/>
+    <!-- Get GIT hash, if available, otherwise leave it blank.  -->
+    <exec executable="git" outputproperty="repository.revision" failifexecutionfails="true" errorproperty="">
+        <arg value="log"/>
+        <arg value="-1"/>
+        <arg value="--pretty=format:%H_%at"/>
+    </exec>
     <property name="repository.revision" value=""/>
-    <property name="sam-version" value="1.113"/>
-    <property name="picard-version" value="${sam-version}"/>
-    <property name="tribble-version" value="${sam-version}"/>
-    <property name="variant-version" value="${sam-version}"/>
-    <property name="command_tmp" value=".command_tmp"/>
+    <property name="picard-version" value="1.138"/>
     <property name="command-line-html-dir" value="${dist}/html"/>
     <property name="testng.verbosity" value="2"/>
-    <property name="test.debug.port" value="5005" />  <!-- override on the command line if desired -->
+    <property name="test.debug.port" value="5005"/>
+    <!-- override on the command line if desired -->
 
     <property environment="env"/>
-    <property name="java6.home" value="${env.JAVA6_HOME}"/>
-
-    <condition  property="isUnix">
+    <property name="htsjdk" value="htsjdk"/>
+    <property name="htsjdk_src" value="${htsjdk}/src/java"/>
+    <property name="jar_opt" value=".jar_opt"/>
+    <condition property="isUnix">
         <os family="unix"/>
     </condition>
     <target name="set_excluded_test_groups_unix" if="isUnix">
@@ -66,76 +74,119 @@
     </target>
     <target name="set_excluded_test_groups" depends="set_excluded_test_groups_unix,set_excluded_test_groups_non_unix"/>
 
-
     <!-- INIT -->
     <target name="init">
         <path id="classpath">
-            <fileset dir="${lib}">
+            <fileset dir="${htsjdk_lib_dir}">
+                <include name="*.jar"/>
                 <include name="**/*.jar"/>
             </fileset>
+            <!-- for the specific HTSJDK library JARs -->
+            <fileset dir="${htsjdk}/lib">
+                <include name="*.jar"/>
+                <include name="**/*.jar"/>
+            </fileset>
+            <fileset dir="${lib}">
+        	    <include name="**/*.jar"/>
+        	  </fileset>
         </path>
-        <path  id="metrics.classpath">
+        <path id="metrics.classpath">
             <pathelement path="${classpath}"/>
             <pathelement location="${classes}"/>
+            <pathelement location="${htsjdk}/classes"/>
         </path>
 
-        <path id="java6.lib.ref">
-            <fileset dir="${java6.home}/lib" includes="*.jar"/>
-        </path>
     </target>
 
     <!-- CLEAN -->
-    <target name="clean">
+    <target name="clean-local" description="Delete local build products but not nested project" depends="clean-jar-opt">
         <delete dir="${classes}"/>
         <delete dir="${classes.test}"/>
         <delete dir="${test.output}"/>
-        <delete  dir="${dist}"/>
-        <delete  dir="${command_tmp}"/>
-        <delete  dir="javadoc"/>
+        <delete dir="${dist}"/>
+        <delete dir="javadoc"/>
     </target>
 
-    <!-- COMPILE -->
-    <target name="compile" depends="compile-src, compile-tests"
-            description="Compile files without cleaning">
+    <target name="clean" description="Clean local build products and also nested project" depends="clean-local, clean-htsjdk"/>
+
+    <!-- HTS-JDK -->
+    <target name="set-htsjdk-version">
+        <!-- set the htsjdk version -->
+        <ant antfile="build.xml" dir="${htsjdk}" target="write-version-property" inheritall="false"/>
+        <loadfile property="htsjdk-version" srcFile="${htsjdk}/htsjdk.version.properties">
+            <filterchain>
+                <linecontains>
+                    <contains value="htsjdk-version="/>
+                </linecontains>
+                <tokenfilter>
+                    <replacestring from="htsjdk-version=" to=""/>
+                </tokenfilter>
+                <striplinebreaks/>
+            </filterchain>
+        </loadfile>
+    </target>
+
+    <target name="clone-htsjdk" description="Clone HTS-JDK sources from Sourceforge">
+        <exec executable="git" failonerror="true">
+            <arg value="clone"/>
+            <arg value="${htsjdk_git_url}"/>
+            <arg value="${htsjdk}"/>
+        </exec>
     </target>
 
-    <target name="compile-src" depends="compile-sam-jdk, compile-picard, compile-tribble, compile-variant" description="Compile files without cleaning"/>
+    <target name="compile-htsjdk" depends="set-htsjdk-version" description="Build HTS-JDK, and grab build jars">
+        <ant antfile="build.xml" dir="${htsjdk}" target="clean" inheritall="false"/>
+        <ant antfile="build.xml" dir="${htsjdk}" target="all" inheritall="false"/>
+        <copy todir="${htsjdk_lib_dir}">
+            <fileset dir="${htsjdk}/dist" includes="**/*-*.jar"/>
+            <fileset dir="${htsjdk}/lib" includes="*.jar"/>
+        </copy>
+        <copy todir="${dist}">
+            <fileset dir="${htsjdk}/dist" includes="**/*.jar" excludes="**/*-*.jar"/>
+        </copy>
+        <!-- set the htsjdk version -->
+        <ant antfile="build.xml" dir="${htsjdk}" target="write-version-property" inheritall="false"/>
+    </target>
 
-    <target name="compile-sam-jdk" depends="init" description="Compile sam-jdk files without cleaning">
-        <compile-src includes="net/sf/samtools/**/*.*"/>
+    <target name="clean-htsjdk" description="Clean HTS-JDK">
+        <ant antfile="build.xml" dir="${htsjdk}" target="clean" inheritall="false"/>
     </target>
 
-    <target name="compile-picard" depends="init, compile-variant" description="Compile picard files without cleaning">
-        <compile-src includes="net/sf/picard/**/*.*"/>
+    <target name="test-htsjdk" description="Test HTS-JDK">
+        <ant antfile="build.xml" dir="${htsjdk}" target="test" inheritall="false"/>
     </target>
 
-    <target name="compile-tribble" depends="init, compile-sam-jdk" description="Compile tribble files without cleaning">
-        <compile-src includes="org/broad/tribble/**/*.*"/>
+    <target name="compile-htsjdk-tests" description="Compile HTS-JDK Tests">
+        <ant antfile="build.xml" dir="${htsjdk}" target="compile-tests" inheritall="false"/>
     </target>
 
-    <target name="compile-variant" depends="init, compile-tribble" description="Compile variant files without cleaning">
-        <compile-src includes="org/broadinstitute/variant/**/*.*" compiler.args="-proc:none"/>
+    <!-- COMPILE -->
+    <target name="compile" depends="compile-src, compile-tests"
+            description="Compile files without cleaning">
     </target>
 
-    <target name="compile-tests" depends="compile-sam-jdk-tests, compile-picard-tests, compile-tribble-tests, compile-variant-tests" description="Compile test files without cleaning"/>
+    <target name="compile-src" depends="compile-htsjdk, compile-picard" description="Compile files without cleaning"/>
 
-    <target name="compile-sam-jdk-tests" depends="init" description="Compile sam-jdk test files without cleaning">
-        <compile-tests includes="net/sf/samtools/**/*.*"/>
+    <target name="compile-picard" depends="init" description="Compile picard files without cleaning">
+        <compile-src includes="picard/**/*.*" />
     </target>
 
+    <target name="compile-tests" depends="compile-htsjdk-tests, compile-picard-tests" description="Compile test files without cleaning"/>
+
     <target name="compile-picard-tests" depends="init" description="Compile picard test files without cleaning">
-        <compile-tests includes="net/sf/picard/**/*.*"/>
+        <compile-tests includes="picard/**/*.*"/>
         <copy todir="${classes.test}/">
             <fileset dir="${src.test}/scripts" includes="**/*"/>
         </copy>
     </target>
 
-    <target name="compile-tribble-tests" depends="init" description="Compile tribble test files without cleaning">
-        <compile-tests includes="org/broad/tribble/**/*.*"/>
-    </target>
-
-    <target name="compile-variant-tests" depends="init" description="Compile variant test files without cleaning">
-        <compile-tests includes="org/broadinstitute/variant/**/*.*" compiler.args="-proc:none"/>
+    <target name="build-timestamp">
+        <tstamp>
+            <format property="build.timestamp" pattern="yyyy.MM.dd hh.mm.ss" locale="en,US"/>
+        </tstamp>
+        <replace dir="${command-line-html-dir}" token="@builddate@" value="${build.timestamp}">
+            <include name="**/*.html"/>
+        </replace>
     </target>
 
     <!-- TEST -->
@@ -155,7 +206,7 @@
             </classfileset>
             <jvmarg value="-Xmx2G"/>
         </testng>
-        <junitreport todir="${dist}/test" >
+        <junitreport todir="${dist}/test">
             <fileset dir="${test.output}">
                 <include name="*.xml"/>
             </fileset>
@@ -169,13 +220,14 @@
             depends="compile, compile-tests"
             description="Compile and run a single test.">
         <taskdef resource="testngtasks" classpathref="classpath"/>
-        <fail unless="name" message="Please provide input test: -Dname=..." />
+        <fail unless="name" message="Please provide input test: -Dname=..."/>
 
-        <condition property="debug.jvm.args" value="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=${test.debug.port}" else="">
-          <isset property="test.debug" />
+        <condition property="debug.jvm.args" value="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=${test.debug.port}"
+                   else="">
+            <isset property="test.debug"/>
         </condition>
 
-        <testng suitename="samtools-single-test" classpathref="classpath" outputdir="${test.output}"
+        <testng suitename="picard-single-test" classpathref="classpath" outputdir="${test.output}"
                 verbose="${testng.verbosity}">
             <jvmarg line="-Xmx512M ${debug.jvm.args}"/>
             <classpath>
@@ -189,177 +241,222 @@
         </testng>
     </target>
 
-    <target name="sam-jar" depends="compile-sam-jdk"
-            description="Builds sam-${sam-version}.jar for inclusion in other projects">
-        <mkdir dir="${dist}"/>
-        <jar destfile="${dist}/sam-${sam-version}.jar" compress="no">
-            <fileset dir="${classes}" includes ="net/sf/samtools/**/*.*"/>
+    <target name="process-external-jars" depends="clean-jar-opt, maybe-add-gatk-tools-java">
+    </target>
+	
+	  <target name="clean-jar-opt">
+      <delete dir="${jar_opt}"/>
+	  	<mkdir dir="${jar_opt}"/>
+    </target>
+	
+	  <target name="maybe-add-gatk-tools-java" if="addGATKToolsJava">
+    	<mkdir dir="${jar_opt}"/>
+      <unzip dest="${jar_opt}">
+    	  <fileset dir="${lib}/gatk-tools-java">
+    	    <include name="*.jar"/>
+    	  </fileset>
+    	</unzip>
+    </target>
+	
+    <target name="picard-jar" depends="compile, process-external-jars"
+        description="Builds the main executable picard.jar">
+       <mkdir dir="${dist}"/>
+       <mkdir dir="${dist.tmp}"/>
+       <unjar dest="${dist.tmp}">
+           <fileset dir="${lib}" />
+           <fileset dir="${htsjdk_lib_dir}">
+               <include name="*.jar"/>
+           </fileset>
+       </unjar>
+
+        <jar destfile="${dist}/picard.jar" compress="no">
+            <fileset dir="${classes}" includes="picard/**/*.*, META-INF/**/*"/>
+            <fileset dir="${src.scripts}" includes="**/*.R"/>
+            <fileset dir="${htsjdk-classes}" includes ="${htsjdk}/*/**/*.*"/>
+            <fileset dir="${dist.tmp}" includes="**/*"/>
+	          <fileset dir="${jar_opt}" includes="**/*"/>
+
             <manifest>
                 <attribute name="Implementation-Version" value="${picard-version}(${repository.revision})"/>
                 <attribute name="Implementation-Vendor" value="Broad Institute"/>
+                <attribute name="Main-Class" value="picard.cmdline.PicardCommandLine"/>
+                <attribute name="Implementation-Title" value="PICARD Tools"/>
+                <attribute name="HTSJDK-Version" value="${htsjdk-version}"/>
             </manifest>
         </jar>
+
+        <delete dir="${dist.tmp}"/>
     </target>
 
-    <target name="picard-jar" depends="compile"
-            description="Builds picard-${picard-version}.jar for inclusion in other projects">
+    <target name="picard-lib-jar" depends="compile"
+        description="Builds the library: picard-lib.jar">
         <mkdir dir="${dist}"/>
-        <jar destfile="${dist}/picard-${picard-version}.jar" compress="no">
-            <fileset dir="${classes}" includes ="net/sf/picard/**/*.*"/>
+        <jar destfile="${dist}/picard-lib.jar" compress="no">
+            <fileset dir="${classes}" includes="picard/**/*.*"/>
             <fileset dir="${src.scripts}" includes="**/*.R"/>
-            <zipfileset src="${lib}/apache-ant-1.8.2-bzip2.jar"/>
             <manifest>
                 <attribute name="Implementation-Version" value="${picard-version}(${repository.revision})"/>
                 <attribute name="Implementation-Vendor" value="Broad Institute"/>
+                <attribute name="Implementation-Title" value="PICARD Tools Library"/>
             </manifest>
         </jar>
     </target>
 
-    <target name="tribble-jar" depends="compile"
-            description="Builds tribble-${tribble-version}.jar for inclusion in other projects">
-        <mkdir dir="${dist}"/>
-        <jar destfile="${dist}/tribble-${tribble-version}.jar" compress="no">
-            <fileset dir="${classes}" includes="org/broad/tribble/**/*.*"/>
-        </jar>
-        <copy todir="${dist}">
-            <fileset dir="lib" includes="*.jar"/>
-        </copy>
-    </target>
-
-    <target name="variant-jar" depends="compile"
-            description="Builds variant-${variant-version}.jar for inclusion in other projects">
-        <mkdir dir="${dist}"/>
-        <jar destfile="${dist}/variant-${variant-version}.jar" compress="no">
-            <fileset dir="${classes}" includes="org/broadinstitute/variant/**/*.*"/>
-        </jar>
-        <copy todir="${dist}">
-            <fileset dir="lib" includes="*.jar"/>
-        </copy>
-    </target>
-
     <target name="javadoc" depends="init" description="Generates the project javadoc.">
         <javadoc
-                sourcepath="${src}"
-                destdir="javadoc"
-                packagenames="net.sf.samtools.*, net.sf.picard.*, org.broadinstitute.variant.*, org.broad.tribble.*"
-                windowtitle="SAM JDK API Documentation"
-                doctitle="<h1>SAM JDK API Documentation</h1>"
+                destdir="javadoc/picard"
+                packagenames="picard*"
+                windowtitle="PICARD JDK API Documentation"
+                doctitle="<h1>PICARD JDK API Documentation</h1>"
+                author="true"
+                protected="true"
+                use="true"
+                version="true"
+                failonerror="true"
+                excludepackagenames="htsjdk*">
+            <classpath>
+                <pathelement location="${java.home}/../lib/tools.jar"/>
+                <fileset dir="${lib}">
+                    <include name="**/*.jar"/>
+                </fileset>
+                <fileset dir="${htsjdk}/dist">
+                    <include name="**/*.jar"/>
+                </fileset>
+                <fileset dir="${htsjdk}/lib">
+                    <include name="**/*.jar"/>
+                </fileset>
+            </classpath>
+            <link href="http://java.sun.com/j2se/1.6.0/docs/api/"/>
+            <fileset dir="${src}" defaultexcludes="yes">
+                <include name="**/*.java"/>
+            </fileset>
+        </javadoc>
+        <javadoc
+                destdir="javadoc/htsjdk"
+                packagenames="htsjdk*"
+                windowtitle="HTSJDK API Documentation"
+                doctitle="<h1>HTSJDK API Documentation</h1>"
                 author="true"
                 protected="true"
                 use="true"
                 version="true"
-                failonerror="true">
+                failonerror="true"
+                excludepackagenames="picard*">
             <classpath>
-                <pathelement location="${java.home}/../lib/tools.jar" />
+                <pathelement location="${java.home}/../lib/tools.jar"/>
                 <fileset dir="${lib}">
-                    <include name="**/*.jar" />
+                    <include name="**/*.jar"/>
+                </fileset>
+                <fileset dir="${htsjdk}/lib">
+                    <include name="**/*.jar"/>
                 </fileset>
             </classpath>
-            <link href="http://java.sun.com/j2se/1.5.0/docs/api/"/>
+            <link href="http://java.sun.com/j2se/1.6.0/docs/api/"/>
+            <fileset dir="${htsjdk_src}" defaultexcludes="yes">
+                <include name="**/*.java"/>
+            </fileset>
         </javadoc>
         <mkdir dir="${command-line-html-dir}"/>
-        <javadoc sourcepath="${src}/java"
-                 doclet="net.sf.picard.util.MetricsDoclet"
+        <javadoc doclet="picard.util.MetricsDoclet"
                  docletpathref="metrics.classpath"
                  classpathref="metrics.classpath"
-                 failonerror="true">
-            <sourcepath path="${src}"/>
-            <arg line="-f ${command-line-html-dir}/picard-metric-definitions.shtml"/>
+                 failonerror="true" verbose="true">
+            <classpath>
+                <pathelement location="${java.home}/../lib/tools.jar"/>
+                <fileset dir="${lib}">
+                    <include name="**/*.jar"/>
+                </fileset>
+                <fileset dir="${htsjdk}/dist">
+                    <include name="**/*.jar"/>
+                </fileset>
+            </classpath>
+            <fileset dir=".">
+                <include name="${src}/**/*.java"/>
+                <include name="${htsjdk_src}/**/*.java"/>
+            </fileset>
+            <arg line="-f ${command-line-html-dir}/picard-metric-definitions.html"/>
         </javadoc>
     </target>
 
-    <target name="package-commands" depends="compile, sam-jar, picard-jar, tribble-jar, variant-jar">
-        <delete dir="${command_tmp}"/>
-
-        <mkdir dir="${command_tmp}"/>
-        <copy todir="${command_tmp}">
-            <fileset dir="${classes}" includes="**/*"/>
-        </copy>
+    <target name="add-ga4gh-support">
+    	<property name="addGATKToolsJava" value="1"/>	
+    </target>
 
-        <unzip dest=".command_tmp">
-            <fileset dir="${lib}">
-                <include  name="*.jar"/>
-            </fileset>
-        </unzip>
+	  <target name="package-commands-ga4gh" depends="add-ga4gh-support, compile, picard-jar" />
+	
+    <target name="package-commands" depends="compile, picard-jar">
         <delete dir="${command-line-html-dir}"/>
-
-        <!-- The order of these elements determines the order they appear in the on-line help -->
-        <!-- If you don't want to generate on-line doc for a command, use package-command instead of package-and-document-command -->
-        <package-and-document-command title="AddCommentsToBam"                main-class="net.sf.picard.sam.AddCommentsToBam"/>
-        <package-and-document-command title="AddOrReplaceReadGroups"         main-class="net.sf.picard.sam.AddOrReplaceReadGroups"/>
-        <package-and-document-command title="BamToBfq"                       main-class="net.sf.picard.fastq.BamToBfq"/>
-        <package-and-document-command title="BamIndexStats"                  main-class="net.sf.picard.sam.BamIndexStats"/>
-        <package-and-document-command title="BuildBamIndex"                  main-class="net.sf.picard.sam.BuildBamIndex"/>
-        <package-and-document-command title="CalculateHsMetrics"             main-class="net.sf.picard.analysis.directed.CalculateHsMetrics"/>
-        <package-and-document-command title="CleanSam"                       main-class="net.sf.picard.sam.CleanSam"/>
-        <package-and-document-command title="CollectAlignmentSummaryMetrics" main-class="net.sf.picard.analysis.CollectAlignmentSummaryMetrics"/>
-        <package-and-document-command title="CollectGcBiasMetrics"           main-class="net.sf.picard.analysis.CollectGcBiasMetrics"/>
-        <package-and-document-command title="CollectInsertSizeMetrics"       main-class="net.sf.picard.analysis.CollectInsertSizeMetrics"/>
-        <package-and-document-command title="CollectMultipleMetrics"         main-class="net.sf.picard.analysis.CollectMultipleMetrics"/>
-        <package-and-document-command title="CollectTargetedPcrMetrics"      main-class="net.sf.picard.analysis.directed.CollectTargetedPcrMetrics"/>
-        <package-and-document-command title="CollectRnaSeqMetrics"           main-class="net.sf.picard.analysis.CollectRnaSeqMetrics"/>
-        <package-and-document-command title="CollectWgsMetrics"              main-class="net.sf.picard.analysis.CollectWgsMetrics"/>
-        <package-and-document-command title="CompareSAMs"                    main-class="net.sf.picard.sam.CompareSAMs"/>
-        <package-and-document-command title="CreateSequenceDictionary"       main-class="net.sf.picard.sam.CreateSequenceDictionary"/>
-        <package-and-document-command title="DownsampleSam"                  main-class="net.sf.picard.sam.DownsampleSam"/>
-        <package-and-document-command title="ExtractIlluminaBarcodes"        main-class="net.sf.picard.illumina.ExtractIlluminaBarcodes"/>
-        <package-and-document-command title="EstimateLibraryComplexity"      main-class="net.sf.picard.sam.EstimateLibraryComplexity"/>
-        <package-and-document-command title="FastqToSam"                     main-class="net.sf.picard.sam.FastqToSam"/>
-        <package-and-document-command title="FilterSamReads"                 main-class="net.sf.picard.sam.FilterSamReads"/>
-        <package-and-document-command title="FixMateInformation"             main-class="net.sf.picard.sam.FixMateInformation"/>
-        <package-and-document-command title="GatherBamFiles"                 main-class="net.sf.picard.sam.GatherBamFiles"/>
-        <package-and-document-command title="IlluminaBasecallsToFastq"       main-class="net.sf.picard.illumina.IlluminaBasecallsToFastq"/>
-        <package-and-document-command title="IlluminaBasecallsToSam"         main-class="net.sf.picard.illumina.IlluminaBasecallsToSam"/>
-        <package-and-document-command title="CheckIlluminaDirectory"         main-class="net.sf.picard.illumina.CheckIlluminaDirectory"/>
-        <package-and-document-command title="IntervalListTools"              main-class="net.sf.picard.util.IntervalListTools"/>
-        <package-and-document-command title="MakeSitesOnlyVcf"               main-class="net.sf.picard.vcf.MakeSitesOnlyVcf"/>
-        <package-and-document-command title="MarkDuplicates"                 main-class="net.sf.picard.sam.MarkDuplicates"/>
-        <package-and-document-command title="MeanQualityByCycle"             main-class="net.sf.picard.analysis.MeanQualityByCycle"/>
-        <package-and-document-command title="MergeBamAlignment"              main-class="net.sf.picard.sam.MergeBamAlignment"/>
-        <package-and-document-command title="MergeSamFiles"                  main-class="net.sf.picard.sam.MergeSamFiles"/>
-        <package-and-document-command title="MergeVcfs"                      main-class="net.sf.picard.vcf.MergeVcfs">
-            <package-filesets>
-                <fileset dir=".command_tmp" >
-                    <include name="org/apache/commons/logging/**/*"/>
-                </fileset>
-            </package-filesets>
-        </package-and-document-command>
-        <package-and-document-command title="NormalizeFasta"                 main-class="net.sf.picard.reference.NormalizeFasta"/>
-        <package-and-document-command title="ExtractSequences"               main-class="net.sf.picard.reference.ExtractSequences"/>
-        <package-and-document-command title="QualityScoreDistribution"       main-class="net.sf.picard.analysis.QualityScoreDistribution"/>
-        <package-and-document-command title="ReorderSam" id=""               main-class="net.sf.picard.sam.ReorderSam"/>
-        <package-and-document-command title="ReplaceSamHeader"               main-class="net.sf.picard.sam.ReplaceSamHeader"/>
-        <package-and-document-command title="RevertSam"                      main-class="net.sf.picard.sam.RevertSam"/>
-        <package-and-document-command title="RevertOriginalBaseQualitiesAndAddMateCigar" main-class="net.sf.picard.sam.RevertOriginalBaseQualitiesAndAddMateCigar"/>
-        <package-and-document-command title="SamFormatConverter"             main-class="net.sf.picard.sam.SamFormatConverter"/>
-        <package-and-document-command title="SamToFastq"                     main-class="net.sf.picard.sam.SamToFastq"/>
-        <package-and-document-command title="SortSam"                        main-class="net.sf.picard.sam.SortSam"/>
-        <package-and-document-command title="VcfFormatConverter"           main-class="net.sf.picard.vcf.VcfFormatConverter">
-            <package-filesets>
-                <fileset dir=".command_tmp" >
-                    <include name="org/apache/commons/logging/**/*"/>
-                </fileset>
-            </package-filesets>
-        </package-and-document-command>
-        <package-and-document-command title="MarkIlluminaAdapters"         main-class="net.sf.picard.illumina.MarkIlluminaAdapters"/>
-        <package-and-document-command title="SplitVcfs"                      main-class="net.sf.picard.vcf.SplitVcfs">
-            <package-filesets>
-                <fileset dir=".command_tmp" >
-                    <include name="org/apache/commons/logging/**/*"/>
-                </fileset>
-            </package-filesets>
-        </package-and-document-command>
-        <package-and-document-command title="ValidateSamFile"                main-class="net.sf.picard.sam.ValidateSamFile"/>
-        <package-and-document-command title="ViewSam"                        main-class="net.sf.picard.sam.ViewSam"/>
+        <!-- If you don't want to generate on-line doc for a command, use package-command instead of document-command -->
+        <document-command title="AddCommentsToBam"                  main-class="picard.sam.AddCommentsToBam"/>
+        <document-command title="AddOrReplaceReadGroups"            main-class="picard.sam.AddOrReplaceReadGroups"/>
+        <document-command title="BamToBfq"                          main-class="picard.fastq.BamToBfq"/>
+        <document-command title="BamIndexStats"                     main-class="picard.sam.BamIndexStats"/>
+        <document-command title="BedToIntervalList"                 main-class="picard.util.BedToIntervalList"/>
+        <document-command title="BuildBamIndex"                     main-class="picard.sam.BuildBamIndex"/>
+        <document-command title="CalculateHsMetrics"                main-class="picard.analysis.directed.CalculateHsMetrics"/>
+        <document-command title="CleanSam"                          main-class="picard.sam.CleanSam"/>
+        <document-command title="CollectAlignmentSummaryMetrics"    main-class="picard.analysis.CollectAlignmentSummaryMetrics"/>
+        <document-command title="CollectBaseDistributionByCycle"    main-class="picard.analysis.CollectBaseDistributionByCycle"/>
+        <document-command title="CollectGcBiasMetrics"              main-class="picard.analysis.CollectGcBiasMetrics"/>
+        <document-command title="CollectInsertSizeMetrics"          main-class="picard.analysis.CollectInsertSizeMetrics"/>
+        <document-command title="CollectMultipleMetrics"            main-class="picard.analysis.CollectMultipleMetrics"/>
+        <document-command title="CollectTargetedPcrMetrics"         main-class="picard.analysis.directed.CollectTargetedPcrMetrics"/>
+        <document-command title="CollectRnaSeqMetrics"              main-class="picard.analysis.CollectRnaSeqMetrics"/>
+        <document-command title="CollectWgsMetrics"                 main-class="picard.analysis.CollectWgsMetrics"/>
+        <document-command title="CompareSAMs"                       main-class="picard.sam.CompareSAMs"/>
+        <document-command title="CreateSequenceDictionary"          main-class="picard.sam.CreateSequenceDictionary"/>
+        <document-command title="DownsampleSam"                     main-class="picard.sam.DownsampleSam"/>
+        <document-command title="ExtractIlluminaBarcodes"           main-class="picard.illumina.ExtractIlluminaBarcodes"/>
+        <document-command title="EstimateLibraryComplexity"         main-class="picard.sam.markduplicates.EstimateLibraryComplexity"/>
+        <document-command title="FastqToSam"                        main-class="picard.sam.FastqToSam"/>
+        <document-command title="FifoBuffer"                        main-class="picard.util.FifoBuffer"/>
+        <document-command title="FilterSamReads"                    main-class="picard.sam.FilterSamReads"/>
+        <document-command title="FilterVcf"                         main-class="picard.vcf.filter.FilterVcf"/>
+        <document-command title="FixMateInformation"                main-class="picard.sam.FixMateInformation"/>
+        <document-command title="GatherBamFiles"                    main-class="picard.sam.GatherBamFiles"/>
+        <document-command title="GenotypeConcordance"               main-class="picard.vcf.GenotypeConcordance"/>
+        <document-command title="IlluminaBasecallsToFastq"          main-class="picard.illumina.IlluminaBasecallsToFastq"/>
+        <document-command title="IlluminaBasecallsToSam"            main-class="picard.illumina.IlluminaBasecallsToSam"/>
+        <document-command title="CheckIlluminaDirectory"            main-class="picard.illumina.CheckIlluminaDirectory"/>
+        <document-command title="IntervalListTools"                 main-class="picard.util.IntervalListTools"/>
+        <document-command title="LiftoverVcf"                       main-class="picard.vcf.LiftoverVcf"/>
+        <document-command title="MakeSitesOnlyVcf"                  main-class="picard.vcf.MakeSitesOnlyVcf"/>
+        <document-command title="MarkDuplicates"                    main-class="picard.sam.markduplicates.MarkDuplicates"/>
+        <document-command title="MarkDuplicatesWithMateCigar"       main-class="picard.sam.markduplicates.MarkDuplicatesWithMateCigar"/>
+        <document-command title="MeanQualityByCycle"                main-class="picard.analysis.MeanQualityByCycle"/>
+        <document-command title="MergeBamAlignment"                 main-class="picard.sam.MergeBamAlignment"/>
+        <document-command title="MergeSamFiles"                     main-class="picard.sam.MergeSamFiles"/>
+        <document-command title="MergeVcfs"                         main-class="picard.vcf.MergeVcfs"/>
+        <document-command title="NormalizeFasta"                    main-class="picard.reference.NormalizeFasta"/>
+        <document-command title="ExtractSequences"                  main-class="picard.reference.ExtractSequences"/>
+        <document-command title="QualityScoreDistribution"          main-class="picard.analysis.QualityScoreDistribution"/>
+        <document-command title="ReorderSam"                        main-class="picard.sam.ReorderSam"/>
+        <document-command title="ReplaceSamHeader"                  main-class="picard.sam.ReplaceSamHeader"/>
+        <document-command title="RevertSam"                         main-class="picard.sam.RevertSam"/>
+        <document-command title="RevertOriginalBaseQualitiesAndAddMateCigar"
+                                                                   main-class="picard.sam.RevertOriginalBaseQualitiesAndAddMateCigar"/>
+        <document-command title="SamFormatConverter"                main-class="picard.sam.SamFormatConverter"/>
+        <document-command title="SamToFastq"                        main-class="picard.sam.SamToFastq"/>
+        <document-command title="SortSam"                           main-class="picard.sam.SortSam"/>
+        <document-command title="SortVcf"                           main-class="picard.vcf.SortVcf"/>
+        <document-command title="UpdateVcfSequenceDictionary"       main-class="picard.vcf.UpdateVcfSequenceDictionary"/>
+        <document-command title="VcfFormatConverter"                main-class="picard.vcf.VcfFormatConverter"/>
+        <document-command title="MarkIlluminaAdapters"              main-class="picard.illumina.MarkIlluminaAdapters"/>
+        <document-command title="SplitVcfs"                         main-class="picard.vcf.SplitVcfs"/>
+        <document-command title="ValidateSamFile"                   main-class="picard.sam.ValidateSamFile"/>
+        <document-command title="ViewSam"                           main-class="picard.sam.ViewSam"/>
+        <document-command title="VcfToIntervalList"                 main-class="picard.vcf.VcfToIntervalList"/>
     </target>
 
     <!-- ALL -->
-    <target name="all" depends="compile, sam-jar, picard-jar, tribble-jar, variant-jar, package-commands, document-standard-options" description="Default build target">
+    <target name="all" depends="compile, picard-lib-jar, package-commands, document-standard-options, build-timestamp"
+            description="Default build target">
         <zip zipfile="${dist}/picard-tools-${picard-version}.zip">
             <zipfileset dir="${dist}" includes="*.jar" prefix="picard-tools-${picard-version}"/>
+            <zipfileset dir="${htsjdk_lib_dir}" includes="htsjdk-*.jar" prefix="picard-tools-${picard-version}"/>
             <zipfileset dir="${lib}" includes="snappy*.jar"/>
             <!-- distribute libJniDeflater.so in same directory as jarfiles-->
-            <zipfileset dir="${lib}/jni" includes="*" prefix="picard-tools-${picard-version}"/>
+            <zipfileset dir="${htsjdk}/lib/jni" includes="*" prefix="picard-tools-${picard-version}"/>
         </zip>
     </target>
 
@@ -369,46 +466,17 @@
     <!-- ************************************************************************************** -->
     <!-- ************************************************************************************** -->
 
-    <!-- Create a jar for a command-line class so it can be run java -jar jarfile -->
-    <macrodef name="package-command">
-        <attribute name="main-class"/>
-        <attribute name="title"/>
-        <element name="filesets" optional="yes"/>
-        <sequential>
-            <classfileset dir="${command_tmp}" id="reqdClasses">
-                <root classname="@{main-class}"/>
-            </classfileset>
-            <jar destfile="${dist}/@{title}.jar">
-                <fileset  refid="reqdClasses"/>
-                <fileset dir="${src.scripts}" includes="**/*.R"/>
-                <fileset dir="${command_tmp}" includes="org/xerial/snappy/native/Linux/**/*"/>
-                <fileset dir="${command_tmp}" includes="org/xerial/snappy/VERSION"/>
-                <fileset dir="${command_tmp}" includes="META-INF/maven/org.xerial.snappy/snappy-java/pom.properties"/>
-                <!-- Force inclusion of IntelDeflater, which is dynamically linked. -->
-                <fileset dir="${command_tmp}" includes="net/sf/samtools/util/zip/*"/>
-                <filesets/>
-                <manifest>
-                    <attribute name="Implementation-Title" value="@{title}"/>
-                    <attribute name="Main-Class" value="@{main-class}"/>
-                    <attribute name="Implementation-Version" value="${picard-version}(${repository.revision})"/>
-                    <attribute name="Implementation-Vendor" value="Broad Institute"/>
-                </manifest>
-            </jar>
-        </sequential>
-    </macrodef>
-
-    <target name="document-standard-options" depends="picard-jar, sam-jar">
+    <target name="document-standard-options" depends="picard-jar">
         <sequential>
             <!-- For Sourceforge project website -->
             <mkdir dir="${command-line-html-dir}/program_usage"/>
 
             <!-- Generate HTML for each command -->
-            <java classname="net.sf.picard.cmdline.CreateHtmlDocForStandardOptions"
-                  output="${command-line-html-dir}/program_usage/standard-options.shtml"
+            <java classname="picard.cmdline.CreateHtmlDocForStandardOptions"
+                  output="${command-line-html-dir}/program_usage/standard-options.html"
                   failonerror="true">
                 <classpath>
-                    <pathelement location="${dist}/picard-${picard-version}.jar"/>
-                    <pathelement location="${dist}/sam-${sam-version}.jar"/>
+                    <pathelement location="${dist}/picard.jar"/>
                 </classpath>
             </java>
         </sequential>
@@ -422,41 +490,25 @@
         <sequential>
             <!-- For Sourceforge project website -->
             <mkdir dir="${command-line-html-dir}/program_usage"/>
+            <mkdir dir="${command-line-html-dir}/inc"/>
 
             <!-- Generate HTML for each command -->
-            <java classname="net.sf.picard.cmdline.CreateHtmlDocForProgram"
-                  output="${command-line-html-dir}/program_usage/@{title}.shtml"
+            <java classname="picard.cmdline.CreateHtmlDocForProgram"
+                  output="${command-line-html-dir}/program_usage/@{title}.html"
                   failonerror="true">
                 <classpath>
-                    <pathelement location="${dist}/picard-${picard-version}.jar"/>
-                    <pathelement location="${dist}/sam-${sam-version}.jar"/>
-                    <pathelement location="${dist}/variant-${variant-version}.jar"/>
+                    <pathelement location="${dist}/picard.jar"/>
                 </classpath>
                 <arg value="@{main-class}"/>
             </java>
 
             <!-- Generate links to each command -->
-            <echo file="${command-line-html-dir}/command-line-sidebar.shtml" append="true"
-                  message="<li><a href="command-line-overview.shtml#@{title}">@{title}</a>${line.separator}"/>
+            <echo file="${command-line-html-dir}/inc/command-line-sidebar.html" append="true"
+                  message="<li><a href="command-line-overview.html#@{title}">@{title}</a>${line.separator}"/>
 
             <!-- include usage for each command -->
-            <echo  file="${command-line-html-dir}/command-line-usage.shtml" append="true"
-                   message="<!--#include virtual="@{title}.shtml" -->${line.separator}"/>
-        </sequential>
-    </macrodef>
-
-    <!-- Create a jar for a command-line class so it can be run java -jar jarfile, and generate on-line doc for it. -->
-    <macrodef name="package-and-document-command">
-        <attribute name="main-class"/>
-        <attribute name="title"/>
-        <element name="package-filesets" optional="yes"/>
-        <sequential>
-            <package-command title="@{title}" main-class="@{main-class}">
-                <filesets>
-                    <package-filesets/>
-                </filesets>
-            </package-command>
-            <document-command title="@{title}" main-class="@{main-class}"/>
+            <echo file="${command-line-html-dir}/inc/command-line-usage.html" append="true"
+                  message="{% include @{title}.html %}${line.separator}"/>
         </sequential>
     </macrodef>
 
@@ -469,7 +521,7 @@
         <attribute name="compile.classpath" default="classpath"/>
         <attribute name="compiler.args" default=""/>
         <sequential>
-        <mkdir dir="${classes}"/>
+            <mkdir dir="${classes}"/>
             <!-- unset the sourcepath attribute in order to compile only files explicitly specified and disable javac's default searching mechanism -->
             <javac destdir="@{destdir}"
                    optimize="${javac.opt}"
@@ -481,9 +533,7 @@
                    source="${javac.target}"
                    target="${javac.target}">
                 <classpath refid="@{compile.classpath}"/>
-                <compilerarg line="@{compiler.args}" />
-                <!-- ensure that Java 6 bootclasspath is used -->
-                <compilerarg value="-Xbootclasspath/p:${toString:java6.lib.ref}"/>
+                <compilerarg line="@{compiler.args}"/>
             </javac>
         </sequential>
     </macrodef>
@@ -508,8 +558,6 @@
                     <pathelement location="${classes}"/>
                 </classpath>
                 <compilerarg line="@{compiler.args}"/>
-                <!-- ensure that Java 6 bootclasspath is used -->
-                <compilerarg value="-Xbootclasspath/p:${toString:java6.lib.ref}"/>
             </javac>
         </sequential>
     </macrodef>
diff --git a/project/plugins.sbt b/project/plugins.sbt
new file mode 100644
index 0000000..9c2b114
--- /dev/null
+++ b/project/plugins.sbt
@@ -0,0 +1,5 @@
+addSbtPlugin("de.johoop" % "sbt-testng-plugin" % "3.0.2")
+
+addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.13.0")
+
+addSbtPlugin("com.typesafe.sbt" % "sbt-git" % "0.7.1")
\ No newline at end of file
diff --git a/src/c/inteldeflater/IntelDeflater.c b/src/c/inteldeflater/IntelDeflater.c
deleted file mode 100644
index 39a3a57..0000000
--- a/src/c/inteldeflater/IntelDeflater.c
+++ /dev/null
@@ -1,247 +0,0 @@
-/*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-/*
- * Native method support for net.sf.samtools.util.zip.IntelDeflater.
- * This is copied from OpenJDK native support for java.util.zip.Deflater, with only package and class name changed.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include "jlong.h"
-#include "jni.h"
-#include "jni_util.h"
-#include "zlib.h"
-
-#include "net_sf_samtools_util_zip_IntelDeflater.h"
-
-#define DEF_MEM_LEVEL 8
-
-static jfieldID levelID;
-static jfieldID strategyID;
-static jfieldID setParamsID;
-static jfieldID finishID;
-static jfieldID finishedID;
-static jfieldID bufID, offID, lenID;
-
-JNIEXPORT void JNICALL
-Java_net_sf_samtools_util_zip_IntelDeflater_initIDs(JNIEnv *env, jclass cls)
-{
-    levelID = (*env)->GetFieldID(env, cls, "level", "I");
-    strategyID = (*env)->GetFieldID(env, cls, "strategy", "I");
-    setParamsID = (*env)->GetFieldID(env, cls, "setParams", "Z");
-    finishID = (*env)->GetFieldID(env, cls, "finish", "Z");
-    finishedID = (*env)->GetFieldID(env, cls, "finished", "Z");
-    bufID = (*env)->GetFieldID(env, cls, "buf", "[B");
-    offID = (*env)->GetFieldID(env, cls, "off", "I");
-    lenID = (*env)->GetFieldID(env, cls, "len", "I");
-}
-
-JNIEXPORT jlong JNICALL
-Java_net_sf_samtools_util_zip_IntelDeflater_init(JNIEnv *env, jclass cls, jint level,
-                                 jint strategy, jboolean nowrap)
-{
-    z_stream *strm = calloc(1, sizeof(z_stream));
-
-    if (strm == 0) {
-        JNU_ThrowOutOfMemoryError(env, 0);
-        return jlong_zero;
-    } else {
-        char *msg;
-        switch (deflateInit2(strm, level, Z_DEFLATED,
-                             nowrap ? -MAX_WBITS : MAX_WBITS,
-                             DEF_MEM_LEVEL, strategy)) {
-          case Z_OK:
-            return ptr_to_jlong(strm);
-          case Z_MEM_ERROR:
-            free(strm);
-            JNU_ThrowOutOfMemoryError(env, 0);
-            return jlong_zero;
-          case Z_STREAM_ERROR:
-            free(strm);
-            JNU_ThrowIllegalArgumentException(env, 0);
-            return jlong_zero;
-          default:
-            msg = strm->msg;
-            free(strm);
-            JNU_ThrowInternalError(env, msg);
-            return jlong_zero;
-        }
-    }
-}
-
-JNIEXPORT void JNICALL
-Java_net_sf_samtools_util_zip_IntelDeflater_setDictionary(JNIEnv *env, jclass cls, jlong addr,
-                                          jarray b, jint off, jint len)
-{
-    Bytef *buf = (*env)->GetPrimitiveArrayCritical(env, b, 0);
-    int res;
-    if (buf == 0) {/* out of memory */
-        return;
-    }
-    res = deflateSetDictionary((z_stream *)jlong_to_ptr(addr), buf + off, len);
-    (*env)->ReleasePrimitiveArrayCritical(env, b, buf, 0);
-    switch (res) {
-    case Z_OK:
-        break;
-    case Z_STREAM_ERROR:
-        JNU_ThrowIllegalArgumentException(env, 0);
-        break;
-    default:
-        JNU_ThrowInternalError(env, ((z_stream *)jlong_to_ptr(addr))->msg);
-        break;
-    }
-}
-
-JNIEXPORT jint JNICALL
-Java_net_sf_samtools_util_zip_IntelDeflater_deflateBytes(JNIEnv *env, jobject this, jlong addr,
-                                         jarray b, jint off, jint len, jint flush)
-{
-    z_stream *strm = jlong_to_ptr(addr);
-
-    jarray this_buf = (*env)->GetObjectField(env, this, bufID);
-    jint this_off = (*env)->GetIntField(env, this, offID);
-    jint this_len = (*env)->GetIntField(env, this, lenID);
-    jbyte *in_buf;
-    jbyte *out_buf;
-    int res;
-    if ((*env)->GetBooleanField(env, this, setParamsID)) {
-        int level = (*env)->GetIntField(env, this, levelID);
-        int strategy = (*env)->GetIntField(env, this, strategyID);
-        in_buf = (*env)->GetPrimitiveArrayCritical(env, this_buf, 0);
-        if (in_buf == NULL) {
-            // Throw OOME only when length is not zero
-            if (this_len != 0)
-                JNU_ThrowOutOfMemoryError(env, 0);
-            return 0;
-        }
-        out_buf = (*env)->GetPrimitiveArrayCritical(env, b, 0);
-        if (out_buf == NULL) {
-            (*env)->ReleasePrimitiveArrayCritical(env, this_buf, in_buf, 0);
-            if (len != 0)
-                JNU_ThrowOutOfMemoryError(env, 0);
-            return 0;
-        }
-
-        strm->next_in = (Bytef *) (in_buf + this_off);
-        strm->next_out = (Bytef *) (out_buf + off);
-        strm->avail_in = this_len;
-        strm->avail_out = len;
-        res = deflateParams(strm, level, strategy);
-        (*env)->ReleasePrimitiveArrayCritical(env, b, out_buf, 0);
-        (*env)->ReleasePrimitiveArrayCritical(env, this_buf, in_buf, 0);
-
-        switch (res) {
-        case Z_OK:
-            (*env)->SetBooleanField(env, this, setParamsID, JNI_FALSE);
-            this_off += this_len - strm->avail_in;
-            (*env)->SetIntField(env, this, offID, this_off);
-            (*env)->SetIntField(env, this, lenID, strm->avail_in);
-            return len - strm->avail_out;
-        case Z_BUF_ERROR:
-            (*env)->SetBooleanField(env, this, setParamsID, JNI_FALSE);
-            return 0;
-        default:
-            JNU_ThrowInternalError(env, strm->msg);
-            return 0;
-        }
-    } else {
-        jboolean finish = (*env)->GetBooleanField(env, this, finishID);
-        in_buf = (*env)->GetPrimitiveArrayCritical(env, this_buf, 0);
-        if (in_buf == NULL) {
-            if (this_len != 0)
-                JNU_ThrowOutOfMemoryError(env, 0);
-            return 0;
-        }
-        out_buf = (*env)->GetPrimitiveArrayCritical(env, b, 0);
-        if (out_buf == NULL) {
-            (*env)->ReleasePrimitiveArrayCritical(env, this_buf, in_buf, 0);
-            if (len != 0)
-                JNU_ThrowOutOfMemoryError(env, 0);
-
-            return 0;
-        }
-
-        strm->next_in = (Bytef *) (in_buf + this_off);
-        strm->next_out = (Bytef *) (out_buf + off);
-        strm->avail_in = this_len;
-        strm->avail_out = len;
-        res = deflate(strm, finish ? Z_FINISH : flush);
-        (*env)->ReleasePrimitiveArrayCritical(env, b, out_buf, 0);
-        (*env)->ReleasePrimitiveArrayCritical(env, this_buf, in_buf, 0);
-
-        switch (res) {
-        case Z_STREAM_END:
-            (*env)->SetBooleanField(env, this, finishedID, JNI_TRUE);
-            /* fall through */
-        case Z_OK:
-            this_off += this_len - strm->avail_in;
-            (*env)->SetIntField(env, this, offID, this_off);
-            (*env)->SetIntField(env, this, lenID, strm->avail_in);
-            return len - strm->avail_out;
-        case Z_BUF_ERROR:
-            return 0;
-            default:
-            JNU_ThrowInternalError(env, strm->msg);
-            return 0;
-        }
-    }
-}
-
-JNIEXPORT jint JNICALL
-Java_net_sf_samtools_util_zip_IntelDeflater_getAdler(JNIEnv *env, jclass cls, jlong addr)
-{
-    return ((z_stream *)jlong_to_ptr(addr))->adler;
-}
-
-JNIEXPORT jlong JNICALL
-Java_net_sf_samtools_util_zip_IntelDeflater_getBytesRead(JNIEnv *env, jclass cls, jlong addr)
-{
-    return ((z_stream *)jlong_to_ptr(addr))->total_in;
-}
-
-JNIEXPORT jlong JNICALL
-Java_net_sf_samtools_util_zip_IntelDeflater_getBytesWritten(JNIEnv *env, jclass cls, jlong addr)
-{
-    return ((z_stream *)jlong_to_ptr(addr))->total_out;
-}
-
-JNIEXPORT void JNICALL
-Java_net_sf_samtools_util_zip_IntelDeflater_reset(JNIEnv *env, jclass cls, jlong addr)
-{
-    if (deflateReset((z_stream *)jlong_to_ptr(addr)) != Z_OK) {
-        JNU_ThrowInternalError(env, 0);
-    }
-}
-
-JNIEXPORT void JNICALL
-Java_net_sf_samtools_util_zip_IntelDeflater_end(JNIEnv *env, jclass cls, jlong addr)
-{
-    if (deflateEnd((z_stream *)jlong_to_ptr(addr)) == Z_STREAM_ERROR) {
-        JNU_ThrowInternalError(env, 0);
-    } else {
-        free((z_stream *)jlong_to_ptr(addr));
-    }
-}
diff --git a/src/java/net/sf/picard/PicardException.java b/src/java/net/sf/picard/PicardException.java
deleted file mode 100644
index 7c6c0ca..0000000
--- a/src/java/net/sf/picard/PicardException.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard;
-
-import net.sf.samtools.SAMException;
-
-/**
- * Basic Picard runtime exception that, for now, does nothing much
- *
- * @author Kathleen Tibbetts
- */
-public class PicardException extends RuntimeException
-{
-    public PicardException(final String message) {
-        super(message);
-    }
-
-    public PicardException(final String message, final Throwable throwable) {
-        super(message, throwable);
-    }
-
-}
diff --git a/src/java/net/sf/picard/Test.java b/src/java/net/sf/picard/Test.java
deleted file mode 100644
index 1616dcc..0000000
--- a/src/java/net/sf/picard/Test.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package net.sf.picard;
-
-import net.sf.samtools.util.StopWatch;
-import net.sf.samtools.util.StringUtil;
-
-import java.util.StringTokenizer;
-import java.util.regex.Pattern;
-
-/**
- *
- */
-public class Test {
-    private final String text = "C0A69ACXX111213:6:1101:10000:144257\t83\t5\t128984606\t60\t76M\t=\t128984542\t-140\tAGTGTTAGAACTTCCTCCCCAAAGCATATACTTCAGTGGCAAGCTGTCCTGGATGAAGGTATGACCAACCAGATCA\t at FFFEECC>EFHBJIGIFGIEIJJJIHED<IEHIGIIJIIIGJIGJIIIIIJGGCJIIGIHHHBHGHFFDFFFC@@\tXT:A:U\tNM:i:0\tSM:i:37\tAM:i:37\tX0:i:1\tX1:i:0\tXM:i:0\tXO:i:0\tXG:i:0\tMD:Z:76";
-
-    public static void main(String[] args) {
-        new Test().run();
-    }
-
-    public void run() {
-        final int ITERATIONS = 1000000;
-        final String[] fields = new String[10000];
-        final StopWatch watch = new StopWatch();
-
-        watch.start();
-        for (int i=0; i<ITERATIONS; ++i) {
-            if (StringUtil.split(text, fields, '\t') > 100) {
-                System.out.println("Mama Mia that's a lot of tokens!!");
-            }
-        }
-        watch.stop();
-        System.out.println("StringUtil.split() took " + watch.getElapsedTime());
-        watch.reset();
-        
-        watch.start();
-        for (int i=0; i<ITERATIONS; ++i) {
-            if (split(text, fields, "\t") > 100) {
-                System.out.println("Mama Mia that's a lot of tokens!!");
-            }
-        }
-        watch.stop();
-        System.out.println("StringTokenizer took " + watch.getElapsedTime());
-    }
-
-    public int split(final String s, final String[] tokens, final String token) {
-        final StringTokenizer tokenizer = new StringTokenizer(s, token, false);
-        int i=0;
-        while (tokenizer.hasMoreTokens()) {
-            tokens[i++] = tokenizer.nextToken();
-        }
-
-        return i;
-    }
-    
-
-
-
-}
diff --git a/src/java/net/sf/picard/analysis/AlignmentSummaryMetrics.java b/src/java/net/sf/picard/analysis/AlignmentSummaryMetrics.java
deleted file mode 100644
index 4c0dbb5..0000000
--- a/src/java/net/sf/picard/analysis/AlignmentSummaryMetrics.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.analysis;
-
-import net.sf.picard.metrics.MultilevelMetrics;
-
-/**
- * High level metrics about the alignment of reads within a SAM file, produced by
- * the CollectAlignmentSummaryMetrics program and usually stored in a file with
- * the extension ".alignment_summary_metrics".
- */
-public class AlignmentSummaryMetrics extends MultilevelMetrics {
-    public enum Category { UNPAIRED, FIRST_OF_PAIR, SECOND_OF_PAIR, PAIR }
-
-    /**
-     * One of either UNPAIRED (for a fragment run), FIRST_OF_PAIR when metrics are for only the
-     * first read in a paired run, SECOND_OF_PAIR when the metrics are for only the second read
-     * in a paired run or PAIR when the metrics are aggregated for both first and second reads
-     * in a pair.
-     */
-    public Category CATEGORY;
-
-    /**
-     * The total number of reads including all PF and non-PF reads. When CATEGORY equals PAIR
-     * this value will be 2x the number of clusters.
-     */
-    public long TOTAL_READS;
-
-    /** The number of PF reads where PF is defined as passing Illumina's filter. */
-    public long PF_READS;
-
-    /** The percentage of reads that are PF (PF_READS / TOTAL_READS) */
-    public double PCT_PF_READS;
-
-    /**
-     * The number of PF reads that are marked as noise reads.  A noise read is one which is composed
-     * entirely of A bases and/or N bases. These reads are marked as they are usually artifactual and
-     * are of no use in downstream analysis.
-     */
-    public long PF_NOISE_READS;
-
-    /**
-     * The number of PF reads that were aligned to the reference sequence. This includes reads that
-     * aligned with low quality (i.e. their alignments are ambiguous).
-     */
-    public long PF_READS_ALIGNED;
-
-    /**
-     * The percentage of PF reads that aligned to the reference sequence. PF_READS_ALIGNED / PF_READS
-     */
-    public double PCT_PF_READS_ALIGNED;
-    
-    /**
-     * The total number of aligned bases, in all mapped PF reads, that are aligned to the reference sequence.
-     */
-    public long PF_ALIGNED_BASES;
-
-    /**
-     * The number of PF reads that were aligned to the reference sequence with a mapping quality of
-     * Q20 or higher signifying that the aligner estimates a 1/100 (or smaller) chance that the
-     * alignment is wrong.
-     */
-    public long PF_HQ_ALIGNED_READS;
-
-    /**
-     * The number of bases aligned to the reference sequence in reads that were mapped at high
-     * quality.  Will usually approximate PF_HQ_ALIGNED_READS * READ_LENGTH but may differ when
-     * either mixed read lengths are present or many reads are aligned with gaps.
-     */
-    public long PF_HQ_ALIGNED_BASES;
-
-    /**
-     * The subset of PF_HQ_ALIGNED_BASES where the base call quality was Q20 or higher.
-     */
-    public long PF_HQ_ALIGNED_Q20_BASES;
-
-    /**
-     * The median number of mismatches versus the reference sequence in reads that were aligned
-     * to the reference at high quality (i.e. PF_HQ_ALIGNED READS).
-     */
-    public double PF_HQ_MEDIAN_MISMATCHES;
-
-    /**
-     * The rate of bases mismatching the reference for all bases aligned to the reference sequence.
-     */
-    public double PF_MISMATCH_RATE;
-
-    /**
-     * The percentage of bases that mismatch the reference in PF HQ aligned reads.
-     */
-    public double PF_HQ_ERROR_RATE;
-
-    /**
-     * The number of insertion and deletion events per 100 aligned bases.  Uses the number of events
-     * as the numerator, not the number of inserted or deleted bases.
-     */
-    public double PF_INDEL_RATE;
-
-    /**
-     * The mean read length of the set of reads examined.  When looking at the data for a single lane with
-     * equal length reads this number is just the read length.  When looking at data for merged lanes with
-     * differing read lengths this is the mean read length of all reads.
-     */
-    public double MEAN_READ_LENGTH;
-
-    /**
-     * The number of aligned reads whose mate pair was also aligned to the reference.
-     */
-    public long READS_ALIGNED_IN_PAIRS;
-
-    /**
-     * The percentage of reads whose mate pair was also aligned to the reference.
-     * READS_ALIGNED_IN_PAIRS / PF_READS_ALIGNED
-     */
-    public double PCT_READS_ALIGNED_IN_PAIRS;
-
-    /**
-     * The number of instrument cycles in which 80% or more of base calls were no-calls.
-     */
-    public long BAD_CYCLES;
-
-    /**
-     * The number of PF reads aligned to the positive strand of the genome divided by the number of
-     * PF reads aligned to the genome.
-     */
-    public double STRAND_BALANCE;
-
-    /**
-     * The percentage of reads that map outside of a maximum insert size (usually 100kb) or that have
-     * the two ends mapping to different chromosomes.
-     */
-    public double PCT_CHIMERAS;
-
-    /**
-     * The percentage of PF reads that are unaligned and match to a known adapter sequence right from the
-     * start of the read.
-     */
-    public double PCT_ADAPTER;
-
-}
diff --git a/src/java/net/sf/picard/analysis/AlignmentSummaryMetricsCollector.java b/src/java/net/sf/picard/analysis/AlignmentSummaryMetricsCollector.java
deleted file mode 100644
index a22f958..0000000
--- a/src/java/net/sf/picard/analysis/AlignmentSummaryMetricsCollector.java
+++ /dev/null
@@ -1,385 +0,0 @@
-package net.sf.picard.analysis;
-
-import net.sf.picard.metrics.MetricsFile;
-import net.sf.picard.metrics.PerUnitMetricCollector;
-import net.sf.picard.metrics.SAMRecordAndReference;
-import net.sf.picard.metrics.SAMRecordAndReferenceMultiLevelCollector;
-import net.sf.picard.reference.ReferenceSequence;
-import net.sf.picard.sam.ReservedTagConstants;
-import net.sf.picard.util.Histogram;
-import net.sf.samtools.*;
-import net.sf.samtools.util.CoordMath;
-import net.sf.samtools.util.SequenceUtil;
-import net.sf.samtools.util.StringUtil;
-
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-public class AlignmentSummaryMetricsCollector extends SAMRecordAndReferenceMultiLevelCollector<AlignmentSummaryMetrics, Comparable<?>> {
-    // If we have a reference sequence, collect metrics on how well we aligned to it
-    private final boolean doRefMetrics;
-
-    //the adapter sequences converted to byte arrays
-    private final byte[][] adapterKmers;
-
-    //A list of Strings representing the sequence of bases in an adapter
-    private final List<String> adapterSequence;
-
-    //Paired end reads above this insert size will be considered chimeric along with inter-chromosomal pairs.
-    private final int maxInsertSize;
-
-
-    //Whether the SAM or BAM file consists of bisulfite sequenced reads.
-    private final boolean isBisulfiteSequenced;
-
-    //The minimum mapping quality a base has to meet in order to be considered high quality
-    private final int MAPPING_QUALITY_THRESOLD = 20;
-
-    //The minimum quality a base has to meet in order to be consider hq_20
-    private final static int BASE_QUALITY_THRESHOLD = 20;
-
-    //The number of bases to check in order to map a read to an adapter
-    private static final int ADAPTER_MATCH_LENGTH = 16;
-
-    // The maximum number of mismatches a read can have and still be considered as matching an adapter
-    private static final int MAX_ADAPTER_ERRORS = 1;
-
-    public AlignmentSummaryMetricsCollector(final Set<MetricAccumulationLevel> accumulationLevels, final List<SAMReadGroupRecord> samRgRecords,
-                                            final boolean doRefMetrics, final List<String> adapterSequence, final int maxInsertSize, boolean isBisulfiteSequenced) {
-        this.doRefMetrics       = doRefMetrics;
-        this.adapterSequence    = adapterSequence;
-        this.adapterKmers = prepareAdapterSequences();
-        this.maxInsertSize = maxInsertSize;
-        this.isBisulfiteSequenced = isBisulfiteSequenced;
-        setup(accumulationLevels, samRgRecords);
-    }
-
-    @Override
-    protected PerUnitMetricCollector<AlignmentSummaryMetrics, Comparable<?>, SAMRecordAndReference> makeChildCollector(String sample, String library, String readGroup) {
-        return new GroupAlignmentSummaryMetricsPerUnitMetricCollector(sample, library, readGroup);
-    }
-
-    @Override
-    public void acceptRecord(final SAMRecord rec, final ReferenceSequence ref) {
-        if (!rec.isSecondaryOrSupplementary()) {
-            super.acceptRecord(rec, ref);
-        }
-    }
-
-    /** Converts the supplied adapter sequences to byte arrays in both fwd and rc. */
-    private byte [][] prepareAdapterSequences() {
-        final Set<String> kmers = new HashSet<String>();
-
-        // Make a set of all kmers of adapterMatchLength
-        for (final String seq : adapterSequence) {
-            for (int i=0; i<=seq.length() - ADAPTER_MATCH_LENGTH; ++i) {
-                final String kmer = seq.substring(i, i+ADAPTER_MATCH_LENGTH).toUpperCase();
-
-                int ns = 0;
-                for (final char ch : kmer.toCharArray()) if (ch == 'N') ++ns;
-                if (ns <= MAX_ADAPTER_ERRORS) {
-                    kmers.add(kmer);
-                    kmers.add(SequenceUtil.reverseComplement(kmer));
-                }
-            }
-        }
-
-        // Make an array of byte[] for the kmers
-        final byte [][] adapterKmers = new byte[kmers.size()][];
-        int i=0;
-        for (final String kmer : kmers) {
-            adapterKmers[i++] = StringUtil.stringToBytes(kmer);
-        }
-        return adapterKmers;
-    }
-
-    /**
-     * Checks the first ADAPTER_MATCH_LENGTH bases of the read against known adapter sequences and returns
-     * true if the read matches an adapter sequence with MAX_ADAPTER_ERRORS mismsatches or fewer.
-     *
-     * @param read the basecalls for the read in the order and orientation the machine read them
-     * @return true if the read matches an adapter and false otherwise
-     */
-    private boolean isAdapterSequence(final byte[] read) {
-        if (read.length < ADAPTER_MATCH_LENGTH) return false;
-
-        for (final byte[] adapter : adapterKmers) {
-            int errors = 0;
-
-            for (int i=0; i<adapter.length; ++i) {
-                if (read[i] != adapter[i]) {
-                    if (++errors > MAX_ADAPTER_ERRORS) break;
-                }
-            }
-
-            if (errors <= MAX_ADAPTER_ERRORS) return true;
-        }
-
-        return false;
-    }
-
-    private class GroupAlignmentSummaryMetricsPerUnitMetricCollector implements PerUnitMetricCollector<AlignmentSummaryMetrics, Comparable<?>, SAMRecordAndReference> {
-        final IndividualAlignmentSummaryMetricsCollector unpairedCollector;
-        final IndividualAlignmentSummaryMetricsCollector firstOfPairCollector;
-        final IndividualAlignmentSummaryMetricsCollector secondOfPairCollector;
-        final IndividualAlignmentSummaryMetricsCollector pairCollector;
-        final String sample;
-        final String library;
-        final String readGroup;
-
-        public GroupAlignmentSummaryMetricsPerUnitMetricCollector(final String sample, final String library, final String readGroup) {
-            this.sample = sample;
-            this.library = library;
-            this.readGroup = readGroup;
-            unpairedCollector     = new IndividualAlignmentSummaryMetricsCollector(AlignmentSummaryMetrics.Category.UNPAIRED, sample, library, readGroup);
-            firstOfPairCollector  = new IndividualAlignmentSummaryMetricsCollector(AlignmentSummaryMetrics.Category.FIRST_OF_PAIR, sample, library, readGroup);
-            secondOfPairCollector = new IndividualAlignmentSummaryMetricsCollector(AlignmentSummaryMetrics.Category.SECOND_OF_PAIR, sample, library, readGroup);
-            pairCollector         = new IndividualAlignmentSummaryMetricsCollector(AlignmentSummaryMetrics.Category.PAIR, sample, library, readGroup);
-        }
-
-        public void acceptRecord(final SAMRecordAndReference args) {
-            final SAMRecord rec         = args.getSamRecord();
-            final ReferenceSequence ref = args.getReferenceSequence();
-
-            if (rec.getReadPairedFlag()) {
-                if (rec.getFirstOfPairFlag()) {
-                    firstOfPairCollector.addRecord(rec, ref);
-                }
-                else {
-                    secondOfPairCollector.addRecord(rec, ref);
-                }
-
-                pairCollector.addRecord(rec, ref);
-            }
-            else {
-                unpairedCollector.addRecord(rec, ref);
-            }
-        }
-
-        @Override
-        public void finish() {
-            // Let the collectors do any summary computations etc.
-            unpairedCollector.onComplete();
-            firstOfPairCollector.onComplete();
-            secondOfPairCollector.onComplete();
-            pairCollector.onComplete();
-        }
-
-        @Override
-        public void addMetricsToFile(final MetricsFile<AlignmentSummaryMetrics, Comparable<?>> file) {
-            if (firstOfPairCollector.getMetrics().TOTAL_READS > 0) {
-                // override how bad cycle is determined for paired reads, it should be
-                // the sum of first and second reads
-                pairCollector.getMetrics().BAD_CYCLES = firstOfPairCollector.getMetrics().BAD_CYCLES +
-                        secondOfPairCollector.getMetrics().BAD_CYCLES;
-
-                file.addMetric(firstOfPairCollector.getMetrics());
-                file.addMetric(secondOfPairCollector.getMetrics());
-                file.addMetric(pairCollector.getMetrics());
-            }
-
-            //if there are no reads in any category then we will returned an unpaired alignment summary metric with all zero values
-            if (unpairedCollector.getMetrics().TOTAL_READS > 0 || firstOfPairCollector.getMetrics().TOTAL_READS == 0) {
-                file.addMetric(unpairedCollector.getMetrics());
-            }
-        }
-
-        /**
-         * Class that counts reads that match various conditions
-         */
-        private class IndividualAlignmentSummaryMetricsCollector {
-            private long numPositiveStrand = 0;
-            private final Histogram<Integer> readLengthHistogram = new Histogram<Integer>();
-            private AlignmentSummaryMetrics metrics;
-            private long chimeras;
-            private long chimerasDenominator;
-            private long adapterReads;
-            private long indels;
-
-            private long nonBisulfiteAlignedBases = 0;
-            private long hqNonBisulfiteAlignedBases = 0;
-            private final Histogram<Long> mismatchHistogram = new Histogram<Long>();
-            private final Histogram<Long> hqMismatchHistogram = new Histogram<Long>();
-            private final Histogram<Integer> badCycleHistogram = new Histogram<Integer>();
-
-            public IndividualAlignmentSummaryMetricsCollector(final AlignmentSummaryMetrics.Category pairingCategory,
-                                                              final String sample,
-                                                              final String library,
-                                                              final String readGroup) {
-                metrics = new AlignmentSummaryMetrics();
-                metrics.CATEGORY = pairingCategory;
-                metrics.SAMPLE = sample;
-                metrics.LIBRARY = library;
-                metrics.READ_GROUP = readGroup;
-            }
-
-            public void addRecord(final SAMRecord record, final ReferenceSequence ref) {
-                if (record.isSecondaryOrSupplementary()) {
-                    // only want 1 count per read so skip non primary alignments
-                    return;
-                }
-
-                collectReadData(record, ref);
-                collectQualityData(record, ref);
-            }
-
-            public void onComplete() {
-                //summarize read data
-                if (metrics.TOTAL_READS > 0)
-                {
-                    metrics.PCT_PF_READS = (double) metrics.PF_READS / (double) metrics.TOTAL_READS;
-                    metrics.PCT_ADAPTER = this.adapterReads / (double) metrics.PF_READS;
-                    metrics.MEAN_READ_LENGTH = readLengthHistogram.getMean();
-
-                    //Calculate BAD_CYCLES
-                    metrics.BAD_CYCLES = 0;
-                    for (final Histogram<Integer>.Bin cycleBin : badCycleHistogram.values()) {
-                        final double badCyclePercentage = cycleBin.getValue() / metrics.TOTAL_READS;
-                        if (badCyclePercentage >= .8) {
-                            metrics.BAD_CYCLES++;
-                        }
-                    }
-
-                    if(doRefMetrics) {
-                        if (metrics.PF_READS > 0)         metrics.PCT_PF_READS_ALIGNED = (double) metrics.PF_READS_ALIGNED / (double) metrics.PF_READS;
-                        if (metrics.PF_READS_ALIGNED > 0) metrics.PCT_READS_ALIGNED_IN_PAIRS = (double) metrics.READS_ALIGNED_IN_PAIRS/ (double) metrics.PF_READS_ALIGNED;
-                        if (metrics.PF_READS_ALIGNED > 0) metrics.STRAND_BALANCE = numPositiveStrand / (double) metrics.PF_READS_ALIGNED;
-                        if (this.chimerasDenominator > 0) metrics.PCT_CHIMERAS = this.chimeras / (double) this.chimerasDenominator;
-
-                        if (nonBisulfiteAlignedBases > 0) metrics.PF_MISMATCH_RATE = mismatchHistogram.getSum() / (double) nonBisulfiteAlignedBases;
-                        metrics.PF_HQ_MEDIAN_MISMATCHES = hqMismatchHistogram.getMedian();
-                        if (hqNonBisulfiteAlignedBases > 0) metrics.PF_HQ_ERROR_RATE = hqMismatchHistogram.getSum() / (double) hqNonBisulfiteAlignedBases;
-                        if (metrics.PF_ALIGNED_BASES > 0) metrics.PF_INDEL_RATE = this.indels / (double) metrics.PF_ALIGNED_BASES;
-                    }
-                }
-            }
-
-            private void collectReadData(final SAMRecord record, final ReferenceSequence ref) {
-                metrics.TOTAL_READS++;
-                readLengthHistogram.increment(record.getReadBases().length);
-
-                if (!record.getReadFailsVendorQualityCheckFlag()) {
-                    metrics.PF_READS++;
-                    if (isNoiseRead(record)) metrics.PF_NOISE_READS++;
-
-                    if (record.getReadUnmappedFlag()) {
-                        // If the read is unmapped see if it's adapter sequence
-                        final byte[] readBases = record.getReadBases();
-                        if (!(record instanceof BAMRecord)) StringUtil.toUpperCase(readBases);
-
-                        if (isAdapterSequence(readBases)) {
-                            this.adapterReads++;
-                        }
-                    }
-                    else if(doRefMetrics) {
-                        metrics.PF_READS_ALIGNED++;
-                        if (!record.getReadNegativeStrandFlag()) numPositiveStrand++;
-
-                        if (record.getReadPairedFlag() && !record.getMateUnmappedFlag()) {
-                            metrics.READS_ALIGNED_IN_PAIRS++;
-
-                            // Check that both ends have mapq > minimum
-                            final Integer mateMq = record.getIntegerAttribute("MQ");
-                            if (mateMq == null || mateMq >= MAPPING_QUALITY_THRESOLD && record.getMappingQuality() >= MAPPING_QUALITY_THRESOLD) {
-                                ++this.chimerasDenominator;
-
-                                // With both reads mapped we can see if this pair is chimeric
-                                if (Math.abs(record.getInferredInsertSize()) > maxInsertSize ||
-                                        !record.getReferenceIndex().equals(record.getMateReferenceIndex())) {
-                                    ++this.chimeras;
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-
-            private void collectQualityData(final SAMRecord record, final ReferenceSequence reference) {
-                // If the read isnt an aligned PF read then look at the read for no-calls
-                if (record.getReadUnmappedFlag() || record.getReadFailsVendorQualityCheckFlag() || !doRefMetrics) {
-                    final byte[] readBases = record.getReadBases();
-                    for (int i = 0; i < readBases.length; i++) {
-                        if (SequenceUtil.isNoCall(readBases[i])) {
-                            badCycleHistogram.increment(CoordMath.getCycle(record.getReadNegativeStrandFlag(), readBases.length, i));
-                        }
-                    }
-                }
-                else if (!record.getReadFailsVendorQualityCheckFlag()) {
-                    final boolean highQualityMapping = isHighQualityMapping(record);
-                    if (highQualityMapping) metrics.PF_HQ_ALIGNED_READS++;
-
-                    final byte[] readBases = record.getReadBases();
-                    final byte[] refBases = reference.getBases();
-                    final byte[] qualities  = record.getBaseQualities();
-                    final int refLength = refBases.length;
-                    long mismatchCount   = 0;
-                    long hqMismatchCount = 0;
-
-                    for (final AlignmentBlock alignmentBlock : record.getAlignmentBlocks()) {
-                        final int readIndex = alignmentBlock.getReadStart() - 1;
-                        final int refIndex  = alignmentBlock.getReferenceStart() - 1;
-                        final int length    = alignmentBlock.getLength();
-
-                        for (int i=0; i<length && refIndex+i<refLength; ++i) {
-                            final int readBaseIndex = readIndex + i;
-                            boolean mismatch = !SequenceUtil.basesEqual(readBases[readBaseIndex], refBases[refIndex+i]);
-                            boolean bisulfiteBase = false;
-                            if (mismatch && isBisulfiteSequenced) {
-                                if ( (record.getReadNegativeStrandFlag() &&
-                                        (refBases[refIndex+i] == 'G' || refBases[refIndex+i] =='g') &&
-                                        (readBases[readBaseIndex] == 'A' || readBases[readBaseIndex] == 'a'))
-                                        || ((!record.getReadNegativeStrandFlag()) &&
-                                        (refBases[refIndex+i] == 'C' || refBases[refIndex+i] == 'c') &&
-                                        (readBases[readBaseIndex] == 'T') || readBases[readBaseIndex] == 't') ) {
-
-                                    bisulfiteBase = true;
-                                    mismatch = false;
-                                }
-                            }
-
-                            if(mismatch) mismatchCount++;
-
-                            metrics.PF_ALIGNED_BASES++;
-                            if(!bisulfiteBase) nonBisulfiteAlignedBases++;
-
-                            if (highQualityMapping) {
-                                metrics.PF_HQ_ALIGNED_BASES++;
-                                if (!bisulfiteBase) hqNonBisulfiteAlignedBases++;
-                                if (qualities[readBaseIndex] >= BASE_QUALITY_THRESHOLD) metrics.PF_HQ_ALIGNED_Q20_BASES++;
-                                if (mismatch) hqMismatchCount++;
-                            }
-
-                            if (mismatch || SequenceUtil.isNoCall(readBases[readBaseIndex])) {
-                                badCycleHistogram.increment(CoordMath.getCycle(record.getReadNegativeStrandFlag(), readBases.length, i));
-                            }
-                        }
-                    }
-
-                    mismatchHistogram.increment(mismatchCount);
-                    hqMismatchHistogram.increment(hqMismatchCount);
-
-                    // Add any insertions and/or deletions to the global count
-                    for (final CigarElement elem : record.getCigar().getCigarElements()) {
-                        final CigarOperator op = elem.getOperator();
-                        if (op == CigarOperator.INSERTION || op == CigarOperator.DELETION) ++ this.indels;
-                    }
-                }
-            }
-
-            private boolean isNoiseRead(final SAMRecord record) {
-                final Object noiseAttribute = record.getAttribute(ReservedTagConstants.XN);
-                return (noiseAttribute != null && noiseAttribute.equals(1));
-            }
-
-            private boolean isHighQualityMapping(final SAMRecord record) {
-                return !record.getReadFailsVendorQualityCheckFlag() &&
-                        record.getMappingQuality() >= MAPPING_QUALITY_THRESOLD;
-            }
-
-            public AlignmentSummaryMetrics getMetrics() {
-                return this.metrics;
-            }
-        }
-    }
-}
diff --git a/src/java/net/sf/picard/analysis/CollectAlignmentSummaryMetrics.java b/src/java/net/sf/picard/analysis/CollectAlignmentSummaryMetrics.java
deleted file mode 100644
index 5bc4db0..0000000
--- a/src/java/net/sf/picard/analysis/CollectAlignmentSummaryMetrics.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.analysis;
-
-import net.sf.picard.reference.ReferenceSequence;
-import net.sf.samtools.util.CollectionUtil;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.Usage;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.metrics.*;
-import net.sf.picard.util.IlluminaUtil;
-import net.sf.picard.util.Log;
-import net.sf.samtools.*;
-
-import java.io.File;
-import java.util.*;
-
-/**
- * A command line tool to read a BAM file and produce standard alignment metrics that would be applicable to any alignment.  
- * Metrics to include, but not limited to:
- * <ul>
- * <li>Total number of reads (total, period, no exclusions)</li>
- * <li>Total number of PF reads (PF == does not fail vendor check flag)</li>
- * <li>Number of PF noise reads (does not fail vendor check and has noise attr set)</li>
- * <li>Total aligned PF reads (any PF read that has a sequence and position)</li>
- * <li>High quality aligned PF reads (high quality == mapping quality >= 20)</li>
- * <li>High quality aligned PF bases (actual aligned bases, calculate off alignment blocks)</li>
- * <li>High quality aligned PF Q20 bases (subset of above where base quality >= 20)</li>
- * <li>Median mismatches in HQ aligned PF reads (how many aligned bases != ref on average)</li>
- * <li>Reads aligned in pairs (vs. reads aligned with mate unaligned/not present)</li>
- * <li>Read length (how to handle mixed lengths?)</li>
- * <li>Bad Cycles - how many machine cycles yielded combined no-call and mismatch rates of >= 80%</li>
- * <li>Strand balance - reads mapped to positive strand / total mapped reads</li>
- * </ul>
- * Metrics are written for the first read of a pair, the second read, and combined for the pair.
- * 
- * @author Doug Voet (dvoet at broadinstitute dot org)
- */
-public class CollectAlignmentSummaryMetrics extends SinglePassSamProgram {
-
-    private static final Log log = Log.getInstance(CollectAlignmentSummaryMetrics.class);
-
-    // Usage and parameters
-    @Usage
-    public String USAGE = getStandardUsagePreamble() + "Reads a SAM or BAM file and writes a file containing summary alignment metrics.\n";
-
-    @Option(doc="Paired end reads above this insert size will be considered chimeric along with inter-chromosomal pairs.")
-    public int MAX_INSERT_SIZE = 100000;
-
-    @Option(doc="List of adapter sequences to use when processing the alignment metrics")
-	public List<String> ADAPTER_SEQUENCE = CollectionUtil.makeList(
-        IlluminaUtil.IlluminaAdapterPair.SINGLE_END.get5PrimeAdapter(),
-        IlluminaUtil.IlluminaAdapterPair.SINGLE_END.get3PrimeAdapter(),
-        IlluminaUtil.IlluminaAdapterPair.PAIRED_END.get5PrimeAdapter(),
-        IlluminaUtil.IlluminaAdapterPair.PAIRED_END.get3PrimeAdapter(),
-        IlluminaUtil.IlluminaAdapterPair.INDEXED.get5PrimeAdapter(),
-        IlluminaUtil.IlluminaAdapterPair.INDEXED.get3PrimeAdapter()
-    );
-
-    @Option(shortName="LEVEL", doc="The level(s) at which to accumulate metrics.  ")
-    private Set<MetricAccumulationLevel> METRIC_ACCUMULATION_LEVEL = CollectionUtil.makeSet(MetricAccumulationLevel.ALL_READS);
-
-    @Option(shortName="BS", doc="Whether the SAM or BAM file consists of bisulfite sequenced reads.  ")
-    public boolean IS_BISULFITE_SEQUENCED = false;
-
-    private AlignmentSummaryMetricsCollector collector;
-
-    /** Required main method implementation. */
-    public static void main(final String[] argv) {
-        new CollectAlignmentSummaryMetrics().instanceMainWithExit(argv);
-    }
-
-    /** Silly method that is necessary to give unit test access to call doWork() */
-    protected final int testDoWork() { return doWork(); }
-
-    @Override protected void setup(final SAMFileHeader header, final File samFile) {
-        IoUtil.assertFileIsWritable(OUTPUT);
-
-        if (header.getSequenceDictionary().isEmpty()) {
-            log.warn(INPUT.getAbsoluteFile() + " has no sequence dictionary.  If any reads " +
-                    "in the file are aligned then alignment summary metrics collection will fail.");
-        }
-
-        final boolean doRefMetrics = REFERENCE_SEQUENCE != null;
-        collector = new AlignmentSummaryMetricsCollector(METRIC_ACCUMULATION_LEVEL, header.getReadGroups(), doRefMetrics,
-                ADAPTER_SEQUENCE, MAX_INSERT_SIZE,  IS_BISULFITE_SEQUENCED);
-    }
-
-    @Override protected void acceptRead(final SAMRecord rec, final ReferenceSequence ref) {
-        collector.acceptRecord(rec, ref);
-    }
-
-    @Override protected void finish() {
-        collector.finish();
-
-        final MetricsFile<AlignmentSummaryMetrics, Comparable<?>> file = getMetricsFile();
-        collector.addAllLevelsToFile(file);
-
-        file.write(OUTPUT);
-    }
-}
diff --git a/src/java/net/sf/picard/analysis/CollectGcBiasMetrics.java b/src/java/net/sf/picard/analysis/CollectGcBiasMetrics.java
deleted file mode 100644
index 658f36e..0000000
--- a/src/java/net/sf/picard/analysis/CollectGcBiasMetrics.java
+++ /dev/null
@@ -1,327 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.analysis;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.StandardOptionDefinitions;
-import net.sf.picard.reference.ReferenceSequenceFile;
-import net.sf.picard.reference.ReferenceSequenceFileFactory;
-import net.sf.picard.reference.ReferenceSequence;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.util.*;
-import net.sf.samtools.*;
-import net.sf.samtools.util.SequenceUtil;
-import net.sf.picard.metrics.MetricsFile;
-import net.sf.samtools.util.StringUtil;
-
-import java.io.File;
-import java.util.*;
-import java.text.NumberFormat;
-
-/**
- * Tool to collect information about GC bias in the reads in a given BAM file. Computes
- * the number of windows (of size specified by WINDOW_SIZE) in the genome at each GC%
- * and counts the number of read starts in each GC bin.  What is output and plotted is
- * the "normalized coverage" in each bin - i.e. the number of reads per window normalized
- * to the average number of reads per window across the whole genome.
- *
- * @author Tim Fennell
- */
-public class CollectGcBiasMetrics extends CommandLineProgram {
-    /** The location of the R script to do the plotting. */
-    private static final String R_SCRIPT = "net/sf/picard/analysis/gcBias.R";
-
-    @Option(shortName=StandardOptionDefinitions.REFERENCE_SHORT_NAME, doc="The reference sequence fasta file.")
-    public File REFERENCE_SEQUENCE;
-
-    @Option(shortName=StandardOptionDefinitions.INPUT_SHORT_NAME, doc="The BAM or SAM file containing aligned reads.  " +
-            "Must be coordinate-sorted.")
-    public File INPUT;
-
-    @Option(shortName=StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc="The text file to write the metrics table to.")
-    public File OUTPUT;
-
-    @Option(shortName="CHART", doc="The PDF file to render the chart to.")
-    public File CHART_OUTPUT;
-
-    @Option(shortName="S", doc="The text file to write summary metrics to.", optional=true)
-    public File SUMMARY_OUTPUT;
-
-    @Option(doc="The size of windows on the genome that are used to bin reads.")
-    public int WINDOW_SIZE = 100;
-
-    @Option(doc="For summary metrics, exclude GC windows that include less than this fraction of the genome.")
-    public double MINIMUM_GENOME_FRACTION = 0.00001;
-
-    @Option(doc="If true, assume that the input file is coordinate sorted, even if the header says otherwise.",
-            shortName=StandardOptionDefinitions.ASSUME_SORTED_SHORT_NAME)
-    public boolean ASSUME_SORTED = false;
-
-    @Option(shortName="BS", doc="Whether the SAM or BAM file consists of bisulfite sequenced reads.  ")
-    public boolean IS_BISULFITE_SEQUENCED = false;
-
-    private static final Log log = Log.getInstance(CollectGcBiasMetrics.class);
-
-    // Used to keep track of the total clusters as this is kinda important for bias
-    private int totalClusters = 0;
-    private int totalAlignedReads = 0;
-
-    /** Stock main method. */
-    public static void main(final String[] args) {
-        System.exit(new CollectGcBiasMetrics().instanceMain(args));
-    }
-
-    protected int doWork() {
-        IoUtil.assertFileIsReadable(REFERENCE_SEQUENCE);
-        IoUtil.assertFileIsReadable(INPUT);
-        IoUtil.assertFileIsWritable(OUTPUT);
-        IoUtil.assertFileIsWritable(CHART_OUTPUT);
-        if (SUMMARY_OUTPUT != null) IoUtil.assertFileIsWritable(SUMMARY_OUTPUT);
-
-        // Histograms to track the number of windows at each GC, and the number of read starts
-        // at windows of each GC
-        final int[] windowsByGc = new int[101];
-        final int[] readsByGc   = new int[101];
-        final long[] basesByGc  = new long[101];
-        final long[] errorsByGc = new long[101];
-
-        final SAMFileReader sam = new SAMFileReader(INPUT);
-
-        if (!ASSUME_SORTED && sam.getFileHeader().getSortOrder() != SAMFileHeader.SortOrder.coordinate) {
-            throw new PicardException("Header of input file " + INPUT.getAbsolutePath() + " indicates that it is not coordinate sorted.  " +
-            "If you believe the records are in coordinate order, pass option ASSUME_SORTED=true.  If not, sort the file with SortSam.");
-        }
-        final PeekableIterator<SAMRecord> iterator = new PeekableIterator<SAMRecord>(sam.iterator());
-        final ReferenceSequenceFile referenceFile = ReferenceSequenceFileFactory.getReferenceSequenceFile(REFERENCE_SEQUENCE);
-
-        {
-            // Check that the sequence dictionaries match if present
-            final SAMSequenceDictionary referenceDictionary= referenceFile.getSequenceDictionary();
-            final SAMSequenceDictionary samFileDictionary = sam.getFileHeader().getSequenceDictionary();
-            if (referenceDictionary != null && samFileDictionary != null) {
-                SequenceUtil.assertSequenceDictionariesEqual(referenceDictionary, samFileDictionary);
-            }
-        }
-
-        ////////////////////////////////////////////////////////////////////////////
-        // Loop over the reference and the reads and calculate the basic metrics
-        ////////////////////////////////////////////////////////////////////////////
-        ReferenceSequence ref = null;
-        final ProgressLogger progress = new ProgressLogger(log);
-        while ((ref = referenceFile.nextSequence()) != null) {
-            final byte[] refBases = ref.getBases();
-            StringUtil.toUpperCase(refBases);
-            final int refLength = refBases.length;
-            final int lastWindowStart = refLength - WINDOW_SIZE;
-
-            final byte[] gc = calculateAllGcs(refBases, windowsByGc, lastWindowStart);
-            while (iterator.hasNext() && iterator.peek().getReferenceIndex() == ref.getContigIndex()) {
-                final SAMRecord rec = iterator.next();
-
-                if (!rec.getReadPairedFlag() || rec.getFirstOfPairFlag()) ++this.totalClusters;
-
-                if (!rec.getReadUnmappedFlag()) {
-                    final int pos = rec.getReadNegativeStrandFlag() ? rec.getAlignmentEnd() - WINDOW_SIZE : rec.getAlignmentStart();
-                    ++this.totalAlignedReads;
-
-                    if (pos > 0) {
-                        final int windowGc = gc[pos];
-
-                        if (windowGc >= 0) {
-                            ++readsByGc[windowGc];
-                            basesByGc[windowGc]  += rec.getReadLength();
-                            errorsByGc[windowGc] +=
-                                    SequenceUtil.countMismatches(rec, refBases, IS_BISULFITE_SEQUENCED) +
-                                            SequenceUtil.countInsertedBases(rec) + SequenceUtil.countDeletedBases(rec);
-                        }
-                    }
-                }
-
-                progress.record(rec);
-            }
-
-            log.info("Processed reference sequence: " + ref.getName());
-        }
-
-        // Finish up the reads, presumably all unaligned
-        while (iterator.hasNext()) {
-            final SAMRecord rec = iterator.next();
-            if (!rec.getReadPairedFlag() || rec.getFirstOfPairFlag()) ++this.totalClusters;
-
-        }
-
-        /////////////////////////////////////////////////////////////////////////////
-        // Synthesize the normalized coverage metrics and write it all out to a file
-        /////////////////////////////////////////////////////////////////////////////
-        final MetricsFile<GcBiasDetailMetrics,?> metricsFile = getMetricsFile();
-        final double totalWindows = sum(windowsByGc);
-        final double totalReads   = sum(readsByGc);
-        final double meanReadsPerWindow = totalReads / totalWindows;
-        final double minimumWindowsToCountInSummary = totalWindows * this.MINIMUM_GENOME_FRACTION;
-
-        for (int i=0; i<windowsByGc.length; ++i) {
-            if (windowsByGc[i] == 0) continue;
-
-            GcBiasDetailMetrics m = new GcBiasDetailMetrics();
-            m.GC = i;
-            m.WINDOWS             = windowsByGc[i];
-            m.READ_STARTS         = readsByGc[i];
-            if (errorsByGc[i] > 0) m.MEAN_BASE_QUALITY = QualityUtil.getPhredScoreFromObsAndErrors(basesByGc[i], errorsByGc[i]);
-            m.NORMALIZED_COVERAGE = (m.READ_STARTS / (double) m.WINDOWS) / meanReadsPerWindow;
-            m.ERROR_BAR_WIDTH     = (Math.sqrt(m.READ_STARTS) / (double) m.WINDOWS) / meanReadsPerWindow;
-
-            metricsFile.addMetric(m);
-        }
-
-        metricsFile.write(OUTPUT);
-
-        // Synthesize the high level metrics
-        if (SUMMARY_OUTPUT != null) {
-            final MetricsFile<GcBiasSummaryMetrics,?> summaryMetricsFile = getMetricsFile();
-            final GcBiasSummaryMetrics summary = new GcBiasSummaryMetrics();
-            summary.WINDOW_SIZE    = this.WINDOW_SIZE;
-            summary.TOTAL_CLUSTERS = this.totalClusters;
-            summary.ALIGNED_READS  = this.totalAlignedReads;
-            calculateDropoutMetrics(metricsFile.getMetrics(), summary);
-
-            summaryMetricsFile.addMetric(summary);
-            summaryMetricsFile.write(SUMMARY_OUTPUT);
-        }
-
-        // Plot the results
-        final NumberFormat fmt = NumberFormat.getIntegerInstance();
-        fmt.setGroupingUsed(true);
-        final String subtitle = "Total clusters: " + fmt.format(this.totalClusters) +
-                                ", Aligned reads: " + fmt.format(this.totalAlignedReads);
-        String title = INPUT.getName().replace(".duplicates_marked", "").replace(".aligned.bam", "");
-
-        // Qualify the title with the library name iff it's for a single sample
-        final List<SAMReadGroupRecord> readGroups = sam.getFileHeader().getReadGroups();
-        if (readGroups.size() == 1) {
-            title += "." + readGroups.get(0).getLibrary();
-        }
-        RExecutor.executeFromClasspath(R_SCRIPT,
-                                       OUTPUT.getAbsolutePath(),
-                                       CHART_OUTPUT.getAbsolutePath(),
-                                       title,
-                                       subtitle,
-                                       String.valueOf(WINDOW_SIZE));
-
-        return 0;
-    }
-
-
-    /** Sums the values in an int[]. */
-    private double sum(final int[] values) {
-        final int length = values.length;
-        double total = 0;
-        for (int i=0; i<length; ++i) {
-            total += values[i];
-        }
-
-        return total;
-    }
-
-    /** Calculates the Illumina style AT and GC dropout numbers. */
-    private void calculateDropoutMetrics(final Collection<GcBiasDetailMetrics> details,
-                                         final GcBiasSummaryMetrics summary) {
-        // First calculate the totals
-        double totalReads   = 0;
-        double totalWindows = 0;
-
-        for (final GcBiasDetailMetrics detail : details) {
-            totalReads += detail.READ_STARTS;
-            totalWindows += detail.WINDOWS;
-        }
-
-        double atDropout = 0;
-        double gcDropout = 0;
-
-        for (final GcBiasDetailMetrics detail : details) {
-            final double relativeReads   = detail.READ_STARTS / totalReads;
-            final double relativeWindows = detail.WINDOWS / totalWindows;
-            final double dropout = (relativeWindows - relativeReads) * 100;
-
-            if (dropout > 0) {
-                if (detail.GC <= 50) atDropout += dropout;
-                if (detail.GC >= 50) gcDropout += dropout;
-            }
-        }
-
-        summary.AT_DROPOUT = atDropout;
-        summary.GC_DROPOUT = gcDropout;
-    }
-
-    /** Calculcate all the GC values for all windows. */
-    private byte[] calculateAllGcs(final byte [] refBases, final int [] windowsByGc, final int lastWindowStart) {
-        final int refLength = refBases.length;
-        final byte[] gc = new byte[refLength + 1];
-        final CalculateGcState state = new CalculateGcState();
-        for (int i=1; i<lastWindowStart; ++i) {
-            final int windowEnd = i + WINDOW_SIZE;
-            final int windowGc = calculateGc(refBases, i, windowEnd, state) ; 
-            gc[i] = (byte) windowGc;
-            if (windowGc != -1) windowsByGc[windowGc]++;
-        }
-        return gc;
-    }
-
-    /**
-     * Calculates GC as a number from 0 to 100 in the specified window. If the window includes
-     * more than five no-calls then -1 is returned.
-     */
-    private int calculateGc(final byte[] bases, final int startIndex, final int endIndex, final CalculateGcState state) {
-        if (state.init) {
-            state.init = false ;
-            state.gcCount = 0;
-            state.nCount  = 0;
-            for (int i=startIndex; i<endIndex; ++i) {
-                final byte base = bases[i];
-                if (base == 'G' || base == 'C') ++state.gcCount;
-                else if (base == 'N') ++state.nCount;
-            }
-        } else {
-            final byte newBase = bases[endIndex-1];
-            if (newBase == 'G' || newBase == 'C') ++state.gcCount;
-            else if (newBase == 'N') ++state.nCount;
-
-            if (state.priorBase == 'G' || state.priorBase == 'C') --state.gcCount;
-            else if (state.priorBase == 'N') --state.nCount;
-        }
-        state.priorBase = bases[startIndex];
-        if (state.nCount > 4) return -1;
-        else return (state.gcCount * 100) / (endIndex - startIndex);
-    }
-
-    /** Keeps track of current GC calculation state. */
-    class CalculateGcState {
-        boolean init = true ;
-        int nCount ;
-        int gcCount ;
-        byte priorBase ;
-    }
-}
diff --git a/src/java/net/sf/picard/analysis/CollectInsertSizeMetrics.java b/src/java/net/sf/picard/analysis/CollectInsertSizeMetrics.java
deleted file mode 100644
index 0c2fc75..0000000
--- a/src/java/net/sf/picard/analysis/CollectInsertSizeMetrics.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2012 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.analysis;
-
-import java.io.File;
-import java.util.*;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.analysis.directed.InsertSizeMetricsCollector;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.Usage;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.metrics.MetricsFile;
-import net.sf.picard.reference.ReferenceSequence;
-import net.sf.samtools.util.CollectionUtil;
-import net.sf.picard.util.Log;
-import net.sf.picard.util.RExecutor;
-import net.sf.samtools.SAMFileHeader;
-import net.sf.samtools.SAMRecord;
-
-/**
- * Command line program to read non-duplicate insert sizes, create a histogram
- * and report distribution statistics.
- *
- * @author Doug Voet (dvoet at broadinstitute dot org)
- */
-public class CollectInsertSizeMetrics extends SinglePassSamProgram {
-    private static final Log log = Log.getInstance(CollectInsertSizeMetrics.class);
-    private static final String HISTOGRAM_R_SCRIPT = "net/sf/picard/analysis/insertSizeHistogram.R";
-    // Usage and parameters
-    @Usage
-    public String USAGE = getStandardUsagePreamble() +
-			"Reads a SAM or BAM file and writes a file containing metrics about " +
-            "the statistical distribution of insert size (excluding duplicates) " +
-            "and generates a histogram plot.\n";
-
-    @Option(shortName="H", doc="File to write insert size histogram chart to.")
-    public File HISTOGRAM_FILE;
-
-    @Option(doc="Generate mean, sd and plots by trimming the data down to MEDIAN + DEVIATIONS*MEDIAN_ABSOLUTE_DEVIATION. " +
-            "This is done because insert size data typically includes enough anomalous values from chimeras and other " +
-            "artifacts to make the mean and sd grossly misleading regarding the real distribution.")
-    public double DEVIATIONS = 10;
-
-    @Option(shortName="W", doc="Explicitly sets the histogram width, overriding automatic truncation of histogram tail. " +
-            "Also, when calculating mean and standard deviation, only bins <= HISTOGRAM_WIDTH will be included.", optional=true)
-    public Integer HISTOGRAM_WIDTH = null;
-
-    @Option(shortName="M", doc="When generating the histogram, discard any data categories (out of FR, TANDEM, RF) that have fewer than this " +
-            "percentage of overall reads. (Range: 0 to 1).")
-    public float MINIMUM_PCT = 0.05f;
-
-    @Option(shortName="LEVEL", doc="The level(s) at which to accumulate metrics.  ")
-    private Set<MetricAccumulationLevel> METRIC_ACCUMULATION_LEVEL = CollectionUtil.makeSet(MetricAccumulationLevel.ALL_READS);
-
-    // Calculates InsertSizeMetrics for all METRIC_ACCUMULATION_LEVELs provided
-    private InsertSizeMetricsCollector multiCollector;
-
-    /** Required main method implementation. */
-    public static void main(final String[] argv) {
-        new CollectInsertSizeMetrics().instanceMainWithExit(argv);
-    }
-
-    /**
-     * Put any custom command-line validation in an override of this method.
-     * clp is initialized at this point and can be used to print usage and access argv.
-     * 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.
-     */
-    @Override
-    protected String[] customCommandLineValidation() {
-         if (MINIMUM_PCT < 0 || MINIMUM_PCT > 0.5) {
-             return new String[]{"MINIMUM_PCT was set to " + MINIMUM_PCT + ". It must be between 0 and 0.5 so all data categories don't get discarded."};
-         }
-
-         return super.customCommandLineValidation();
-    }
-
-    @Override protected boolean usesNoRefReads() { return false; }
-
-    @Override protected void setup(final SAMFileHeader header, final File samFile) {
-        IoUtil.assertFileIsWritable(OUTPUT);
-        IoUtil.assertFileIsWritable(HISTOGRAM_FILE);
-
-        //Delegate actual collection to InsertSizeMetricCollector
-        multiCollector = new InsertSizeMetricsCollector(METRIC_ACCUMULATION_LEVEL, header.getReadGroups(), MINIMUM_PCT, HISTOGRAM_WIDTH, DEVIATIONS);
-    }
-
-    @Override protected void acceptRead(final SAMRecord record, final ReferenceSequence ref) {
-        multiCollector.acceptRecord(record, ref);
-    }
-
-    @Override protected void finish() {
-        multiCollector.finish();
-
-        final MetricsFile<InsertSizeMetrics, Integer> file = getMetricsFile();
-        multiCollector.addAllLevelsToFile(file);
-
-        if(file.getNumHistograms() == 0) {
-            //can happen if user sets MINIMUM_PCT = 0.5, etc.
-            log.warn("All data categories were discarded because they contained < " + MINIMUM_PCT +
-                     " of the total aligned paired data.");
-            final InsertSizeMetricsCollector.PerUnitInsertSizeMetricsCollector allReadsCollector = (InsertSizeMetricsCollector.PerUnitInsertSizeMetricsCollector) multiCollector.getAllReadsCollector();
-            log.warn("Total mapped pairs in all categories: " + (allReadsCollector == null ? allReadsCollector : allReadsCollector.getTotalInserts()));
-        }
-        else  {
-            file.write(OUTPUT);
-
-            final int rResult;
-            if(HISTOGRAM_WIDTH == null) {
-                rResult = RExecutor.executeFromClasspath(
-                    HISTOGRAM_R_SCRIPT,
-                    OUTPUT.getAbsolutePath(),
-                    HISTOGRAM_FILE.getAbsolutePath(),
-                    INPUT.getName());
-            } else {
-                rResult = RExecutor.executeFromClasspath(
-                    HISTOGRAM_R_SCRIPT,
-                    OUTPUT.getAbsolutePath(),
-                    HISTOGRAM_FILE.getAbsolutePath(),
-                    INPUT.getName(),
-                    String.valueOf( HISTOGRAM_WIDTH ) ); //HISTOGRAM_WIDTH is passed because R automatically sets histogram width to the last
-                                                         //bin that has data, which may be less than HISTOGRAM_WIDTH and confuse the user.
-            }
-
-            if (rResult != 0) {
-                throw new PicardException("R script " + HISTOGRAM_R_SCRIPT + " failed with return code " + rResult);
-            }
-        }
-    }
-}
diff --git a/src/java/net/sf/picard/analysis/CollectMultipleMetrics.java b/src/java/net/sf/picard/analysis/CollectMultipleMetrics.java
deleted file mode 100644
index cda3b8d..0000000
--- a/src/java/net/sf/picard/analysis/CollectMultipleMetrics.java
+++ /dev/null
@@ -1,140 +0,0 @@
-package net.sf.picard.analysis;
-
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.StandardOptionDefinitions;
-import net.sf.picard.cmdline.Usage;
-import net.sf.samtools.util.CollectionUtil;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-
-/**
- * Class that is designed to instantiate and execute multiple metrics programs that extend
- * SinglePassSamProgram while making only a single pass through the SAM file and supplying
- * each program with the records as it goes.
- *
- * @author Tim Fennell
- */
-public class CollectMultipleMetrics extends CommandLineProgram {
-
-    /**
-     * This interface allows developers to create Programs to run in addition to the ones defined in the Program enum.
-     */
-    public static interface ProgramInterface {
-        SinglePassSamProgram makeInstance(final String outbase);
-    }
-
-    public static enum Program implements ProgramInterface {
-        CollectAlignmentSummaryMetrics {
-            @Override public SinglePassSamProgram makeInstance(final String outbase) {
-                final CollectAlignmentSummaryMetrics program = new CollectAlignmentSummaryMetrics();
-                program.OUTPUT = new File(outbase + ".alignment_summary_metrics");
-                return program;
-            }
-        },
-        CollectInsertSizeMetrics {
-            @Override
-            public SinglePassSamProgram makeInstance(final String outbase) {
-                final CollectInsertSizeMetrics program = new CollectInsertSizeMetrics();
-                program.OUTPUT         = new File(outbase + ".insert_size_metrics");
-                program.HISTOGRAM_FILE = new File(outbase + ".insert_size_histogram.pdf");
-                return program;
-            }
-        },
-        QualityScoreDistribution {
-            public SinglePassSamProgram makeInstance(final String outbase) {
-                final QualityScoreDistribution program = new QualityScoreDistribution();
-                program.OUTPUT       = new File(outbase + ".quality_distribution_metrics");
-                program.CHART_OUTPUT = new File(outbase + ".quality_distribution.pdf");
-                return program;
-            }
-        },
-        MeanQualityByCycle {
-            public SinglePassSamProgram makeInstance(final String outbase) {
-                final MeanQualityByCycle program = new MeanQualityByCycle();
-                program.OUTPUT       = new File(outbase + ".quality_by_cycle_metrics");
-                program.CHART_OUTPUT = new File(outbase + ".quality_by_cycle.pdf");
-                return program;
-            }
-        };
-
-    }
-
-    @Usage
-    public final String USAGE = getStandardUsagePreamble() +
-			"Takes an input BAM and reference sequence and runs one or more Picard " +
-            "metrics modules at the same time to cut down on I/O. Currently all programs are run with " +
-            "default options and fixed output extesions, but this may become more flexible in future.";
-
-    @Option(shortName= StandardOptionDefinitions.INPUT_SHORT_NAME, doc="Input SAM or BAM file.")
-    public File INPUT;
-
-    @Option(shortName=StandardOptionDefinitions.REFERENCE_SHORT_NAME, doc="Reference sequence fasta.", optional=true)
-    public File REFERENCE_SEQUENCE;
-
-    @Option(doc="If true (default), then the sort order in the header file will be ignored.",
-            shortName = StandardOptionDefinitions.ASSUME_SORTED_SHORT_NAME)
-    public boolean ASSUME_SORTED = true;
-
-    @Option(doc="Stop after processing N reads, mainly for debugging.")
-    public int STOP_AFTER = 0;
-
-    @Option(shortName=StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc="Base name of output files.")
-    public String OUTPUT;
-
-    @Option(doc="List of metrics programs to apply during the pass through the SAM file.")
-    public List<Program> PROGRAM = CollectionUtil.makeList(Program.values());
-
-    /**
-     * Contents of PROGRAM list is transferred to this list during command-line validation, so that an outside
-     * developer can invoke this class programmatically and provide alternative Programs to run by calling
-     * setProgramsToRun().
-     */
-    private List<ProgramInterface> programsToRun;
-
-    // Stock main method
-    public static void main(final String[] args) {
-        new CollectMultipleMetrics().instanceMainWithExit(args);
-    }
-
-    @Override
-    protected String[] customCommandLineValidation() {
-        programsToRun = new ArrayList<ProgramInterface>(PROGRAM);
-        return super.customCommandLineValidation();
-    }
-
-    /**
-     * Use this method when invoking CollectMultipleMetrics programmatically to run programs other than the ones
-     * available via enum.  This must be called before doWork().
-     */
-    public void setProgramsToRun(List<ProgramInterface> programsToRun) {
-        this.programsToRun = programsToRun;
-    }
-
-    @Override public int doWork() {
-        if (OUTPUT.endsWith(".")) {
-            OUTPUT = OUTPUT.substring(0, OUTPUT.length()-1);
-        }
-
-        final List<SinglePassSamProgram> programs = new ArrayList<SinglePassSamProgram>();
-        for (ProgramInterface program : new HashSet<ProgramInterface>(programsToRun)) {
-            SinglePassSamProgram instance = program.makeInstance(OUTPUT);
-
-            // Generally programs should not be accessing these directly but it might make things smoother
-            // to just set them anyway
-            instance.INPUT = INPUT;
-            instance.REFERENCE_SEQUENCE = REFERENCE_SEQUENCE;
-
-            instance.setDefaultHeaders(getDefaultHeaders());
-
-            programs.add(instance);
-        }
-
-        SinglePassSamProgram.makeItSo(INPUT, REFERENCE_SEQUENCE, ASSUME_SORTED, STOP_AFTER, programs);
-
-        return 0;
-    }
-}
diff --git a/src/java/net/sf/picard/analysis/CollectRnaSeqMetrics.java b/src/java/net/sf/picard/analysis/CollectRnaSeqMetrics.java
deleted file mode 100644
index bf35e4b..0000000
--- a/src/java/net/sf/picard/analysis/CollectRnaSeqMetrics.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.analysis;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.analysis.directed.RnaSeqMetricsCollector;
-import net.sf.picard.annotation.Gene;
-import net.sf.picard.annotation.GeneAnnotationReader;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.Usage;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.metrics.*;
-import net.sf.picard.reference.ReferenceSequence;
-import net.sf.picard.util.*;
-import net.sf.samtools.*;
-import net.sf.samtools.util.CollectionUtil;
-
-import java.io.File;
-import java.util.*;
-
-public class CollectRnaSeqMetrics extends SinglePassSamProgram {
-    private static final Log LOG = Log.getInstance(CollectRnaSeqMetrics.class);
-
-    @Usage
-    public final String USAGE = getStandardUsagePreamble() +
-            "Program to collect metrics about the alignment of RNA to various functional classes of loci in the genome:" +
-            " coding, intronic, UTR, intergenic, ribosomal.\n" +
-            "Also determines strand-specificity for strand-specific libraries.";
-
-
-    @Option(doc="Gene annotations in refFlat form.  Format described here: http://genome.ucsc.edu/goldenPath/gbdDescriptionsOld.html#RefFlat")
-    public File REF_FLAT;
-
-    @Option(doc="Location of rRNA sequences in genome, in interval_list format.  " +
-            "If not specified no bases will be identified as being ribosomal.  " +
-            "Format described here: http://picard.sourceforge.net/javadoc/net/sf/picard/util/IntervalList.html", optional = true)
-    public File RIBOSOMAL_INTERVALS;
-
-    @Option(shortName = "STRAND", doc="For strand-specific library prep. " +
-            "For unpaired reads, use FIRST_READ_TRANSCRIPTION_STRAND if the reads are expected to be on the transcription strand.")
-    public RnaSeqMetricsCollector.StrandSpecificity STRAND_SPECIFICITY;
-
-    @Option(doc="When calculating coverage based values (e.g. CV of coverage) only use transcripts of this length or greater.")
-    public int MINIMUM_LENGTH = 500;
-
-    @Option(doc="The PDF file to write out a plot of normalized position vs. coverage.", shortName="CHART", optional = true)
-    public File CHART_OUTPUT;
-
-    @Option(doc="If a read maps to a sequence specified with this option, all the bases in the read are counted as ignored bases.  " +
-    "These reads are not counted as ")
-    public Set<String> IGNORE_SEQUENCE = new HashSet<String>();
-
-    @Option(doc="This percentage of the length of a fragment must overlap one of the ribosomal intervals for a read or read pair by this must in order to be considered rRNA.")
-    public double RRNA_FRAGMENT_PERCENTAGE = 0.8;
-
-    @Option(shortName="LEVEL", doc="The level(s) at which to accumulate metrics.  ")
-    private Set<MetricAccumulationLevel> METRIC_ACCUMULATION_LEVEL = CollectionUtil.makeSet(MetricAccumulationLevel.ALL_READS);
-
-    private RnaSeqMetricsCollector collector;
-
-    /**
-     * A subtitle for the plot, usually corresponding to a library.
-     */
-    private String plotSubtitle = "";
-
-    /** Required main method implementation. */
-    public static void main(final String[] argv) {
-        new CollectRnaSeqMetrics().instanceMainWithExit(argv);
-    }
-
-    @Override
-    protected void setup(final SAMFileHeader header, final File samFile) {
-
-        if (CHART_OUTPUT != null) IoUtil.assertFileIsWritable(CHART_OUTPUT);
-
-        final OverlapDetector<Gene> geneOverlapDetector = GeneAnnotationReader.loadRefFlat(REF_FLAT, header.getSequenceDictionary());
-        LOG.info("Loaded " + geneOverlapDetector.getAll().size() + " genes.");
-
-        final Long ribosomalBasesInitialValue = RIBOSOMAL_INTERVALS != null ? 0L : null;
-        final OverlapDetector<Interval> ribosomalSequenceOverlapDetector = RnaSeqMetricsCollector.makeOverlapDetector(samFile, header, RIBOSOMAL_INTERVALS);
-
-        final HashSet<Integer> ignoredSequenceIndices = RnaSeqMetricsCollector.makeIgnoredSequenceIndicesSet(header, IGNORE_SEQUENCE);
-
-        collector = new RnaSeqMetricsCollector(METRIC_ACCUMULATION_LEVEL, header.getReadGroups(), ribosomalBasesInitialValue,
-                geneOverlapDetector, ribosomalSequenceOverlapDetector, ignoredSequenceIndices, MINIMUM_LENGTH, STRAND_SPECIFICITY, RRNA_FRAGMENT_PERCENTAGE);
-
-        // If we're working with a single library, assign that library's name as a suffix to the plot title
-        final List<SAMReadGroupRecord> readGroups = header.getReadGroups();
-        if (readGroups.size() == 1) {
-            this.plotSubtitle = readGroups.get(0).getLibrary();
-            if (null == this.plotSubtitle) this.plotSubtitle = "";
-        }
-    }
-
-    @Override
-    protected void acceptRead(final SAMRecord rec, final ReferenceSequence refSeq) {
-        collector.acceptRecord(rec, refSeq);
-    }
-
-    @Override
-    protected void finish() {
-        collector.finish();
-
-        final MetricsFile<RnaSeqMetrics, Integer> file = getMetricsFile();
-        collector.addAllLevelsToFile(file);
-        file.write(OUTPUT);
-
-        boolean atLeastOneHistogram = false;
-        for (Histogram<Integer> histo : file.getAllHistograms()) {
-            atLeastOneHistogram = atLeastOneHistogram || !histo.isEmpty();
-        }
-        // Generate the coverage by position plot
-        if (CHART_OUTPUT != null && atLeastOneHistogram) {
-            final int rResult = RExecutor.executeFromClasspath("net/sf/picard/analysis/rnaSeqCoverage.R",
-                                                               OUTPUT.getAbsolutePath(),
-                                                               CHART_OUTPUT.getAbsolutePath(),
-                                                               INPUT.getName(),
-                                                               this.plotSubtitle);
-
-            if (rResult != 0) {
-                throw new PicardException("Problem invoking R to generate plot.");
-            }
-        }
-    }
-
-
-}
diff --git a/src/java/net/sf/picard/analysis/CollectWgsMetrics.java b/src/java/net/sf/picard/analysis/CollectWgsMetrics.java
deleted file mode 100644
index 9cf4888..0000000
--- a/src/java/net/sf/picard/analysis/CollectWgsMetrics.java
+++ /dev/null
@@ -1,274 +0,0 @@
-package net.sf.picard.analysis;
-
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.StandardOptionDefinitions;
-import net.sf.picard.cmdline.Usage;
-import net.sf.picard.filter.SamRecordFilter;
-import net.sf.picard.filter.SecondaryAlignmentFilter;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.metrics.MetricBase;
-import net.sf.picard.metrics.MetricsFile;
-import net.sf.picard.reference.ReferenceSequence;
-import net.sf.picard.reference.ReferenceSequenceFileWalker;
-import net.sf.picard.util.Histogram;
-import net.sf.picard.util.Log;
-import net.sf.picard.util.MathUtil;
-import net.sf.picard.util.ProgressLogger;
-import net.sf.picard.util.SamLocusIterator;
-import net.sf.samtools.AlignmentBlock;
-import net.sf.samtools.SAMFileReader;
-import net.sf.samtools.SAMRecord;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-
-/**
- * Computes a number of metrics that are useful for evaluating coverage and performance of whole genome sequencing experiments.
- *
- * @author tfennell
- */
-public class CollectWgsMetrics extends CommandLineProgram {
-
-    @Usage
-    public final String usage = "Computes a number of metrics that are useful for evaluating coverage and performance of " +
-            "whole genome sequencing experiments.";
-
-    @Option(shortName=StandardOptionDefinitions.INPUT_SHORT_NAME, doc="Input SAM or BAM file.")
-    public File INPUT;
-
-    @Option(shortName=StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc="Output metrics file.")
-    public File OUTPUT;
-
-    @Option(shortName=StandardOptionDefinitions.REFERENCE_SHORT_NAME, doc="The reference sequence fasta aligned to.")
-    public File REFERENCE_SEQUENCE;
-
-    @Option(shortName="MQ", doc="Minimum mapping quality for a read to contribute coverage.")
-    public int MINIMUM_MAPPING_QUALITY = 20;
-
-    @Option(shortName="Q", doc="Minimum base quality for a base to contribute coverage.")
-    public int MINIMUM_BASE_QUALITY = 20;
-
-    @Option(shortName="CAP", doc="Treat bases with coverage exceeding this value as if they had coverage at this value.")
-    public int COVERAGE_CAP = 250;
-
-    @Option(doc="For debugging purposes, stop after processing this many genomic bases.")
-    public long STOP_AFTER = -1;
-
-    private final Log log = Log.getInstance(CollectWgsMetrics.class);
-
-    /** Metrics for evaluating the performance of whole genome sequencing experiments. */
-    public static class WgsMetrics extends MetricBase {
-        /** The number of non-N bases in the genome reference over which coverage will be evaluated. */
-        public long GENOME_TERRITORY;
-        /** The mean coverage in bases of the genome territory, after all filters are applied. */
-        public double MEAN_COVERAGE;
-        /** The standard deviation of coverage of the genome after all filters are applied. */
-        public double SD_COVERAGE;
-        /** The median coverage in bases of the genome territory, after all filters are applied. */
-        public double MEDIAN_COVERAGE;
-        /** The median absolute deviation of coverage of the genome after all filters are applied. */
-        public double MAD_COVERAGE;
-
-        /** The fraction of aligned bases that were filtered out because they were in reads with low mapping quality (default is < 20). */
-        public double PCT_EXC_MAPQ;
-        /** The fraction of aligned bases that were filtered out because they were in reads marked as duplicates. */
-        public double PCT_EXC_DUPE;
-        /** The fraction of aligned bases that were filtered out because they were in reads without a mapped mate pair. */
-        public double PCT_EXC_UNPAIRED;
-        /** The fraction of aligned bases that were filtered out because they were of low base quality (default is < 20). */
-        public double PCT_EXC_BASEQ;
-        /** The fraction of aligned bases that were filtered out because they were the second observation from an insert with overlapping reads. */
-        public double PCT_EXC_OVERLAP;
-        /** The fraction of aligned bases that were filtered out because they would have raised coverage above the capped value (default cap = 250x). */
-        public double PCT_EXC_CAPPED;
-        /** The total fraction of aligned bases excluded due to all filters. */
-        public double PCT_EXC_TOTAL;
-
-        /** The fraction of bases that attained at least 5X sequence coverage in post-filtering bases. */
-        public double PCT_5X;
-        /** The fraction of bases that attained at least 10X sequence coverage in post-filtering bases. */
-        public double PCT_10X;
-        /** The fraction of bases that attained at least 20X sequence coverage in post-filtering bases. */
-        public double PCT_20X;
-        /** The fraction of bases that attained at least 30X sequence coverage in post-filtering bases. */
-        public double PCT_30X;
-        /** The fraction of bases that attained at least 40X sequence coverage in post-filtering bases. */
-        public double PCT_40X;
-        /** The fraction of bases that attained at least 50X sequence coverage in post-filtering bases. */
-        public double PCT_50X;
-        /** The fraction of bases that attained at least 60X sequence coverage in post-filtering bases. */
-        public double PCT_60X;
-        /** The fraction of bases that attained at least 70X sequence coverage in post-filtering bases. */
-        public double PCT_70X;
-        /** The fraction of bases that attained at least 80X sequence coverage in post-filtering bases. */
-        public double PCT_80X;
-        /** The fraction of bases that attained at least 90X sequence coverage in post-filtering bases. */
-        public double PCT_90X;
-        /** The fraction of bases that attained at least 100X sequence coverage in post-filtering bases. */
-        public double PCT_100X;
-    }
-
-    public static void main(final String[] args) {
-        new CollectWgsMetrics().instanceMainWithExit(args);
-    }
-
-    @Override
-    protected int doWork() {
-        IoUtil.assertFileIsReadable(INPUT);
-        IoUtil.assertFileIsWritable(OUTPUT);
-        IoUtil.assertFileIsReadable(REFERENCE_SEQUENCE);
-
-        // Setup all the inputs
-        final ProgressLogger progress = new ProgressLogger(log, 10000000, "Processed", "loci");
-        final ReferenceSequenceFileWalker refWalker = new ReferenceSequenceFileWalker(REFERENCE_SEQUENCE);
-        final SAMFileReader in        = new SAMFileReader(INPUT);
-
-        final SamLocusIterator iterator = new SamLocusIterator(in);
-        final List<SamRecordFilter> filters   = new ArrayList<SamRecordFilter>();
-        final CountingFilter dupeFilter       = new CountingDuplicateFilter();
-        final CountingFilter mapqFilter       = new CountingMapQFilter(MINIMUM_MAPPING_QUALITY);
-        final CountingPairedFilter pairFilter = new CountingPairedFilter();
-        filters.add(mapqFilter);
-        filters.add(dupeFilter);
-        filters.add(pairFilter);
-        filters.add(new SecondaryAlignmentFilter()); // Not a counting filter because we never want to count reads twice
-        iterator.setSamFilters(filters);
-        iterator.setEmitUncoveredLoci(true);
-        iterator.setMappingQualityScoreCutoff(0); // Handled separately because we want to count bases
-        iterator.setQualityScoreCutoff(0);        // Handled separately because we want to count bases
-        iterator.setIncludeNonPfReads(false);
-
-        final int max = COVERAGE_CAP;
-        final long[] histogramArray = new long[max + 1];
-        final boolean usingStopAfter = STOP_AFTER > 0;
-        final long stopAfter = STOP_AFTER-1;
-        long counter = 0;
-
-        long basesExcludedByBaseq   = 0;
-        long basesExcludedByOverlap = 0;
-        long basesExcludedByCapping = 0;
-
-        // Loop through all the loci
-        while (iterator.hasNext()) {
-            final SamLocusIterator.LocusInfo info = iterator.next();
-
-            // Check that the reference is not N
-            final ReferenceSequence ref = refWalker.get(info.getSequenceIndex());
-            final byte base = ref.getBases()[info.getPosition()-1];
-            if (base == 'N') continue;
-
-            // Figure out the coverage while not counting overlapping reads twice, and excluding various things
-            final HashSet<String> readNames = new HashSet<String>(info.getRecordAndPositions().size());
-            for (final SamLocusIterator.RecordAndOffset recs : info.getRecordAndPositions()) {
-                if (recs.getBaseQuality() < MINIMUM_BASE_QUALITY)                   { ++basesExcludedByBaseq;   continue; }
-                if (!readNames.add(recs.getRecord().getReadName()))                 { ++basesExcludedByOverlap; continue; }
-            }
-
-            final int depth = Math.min(readNames.size(), max);
-            if (depth < readNames.size()) basesExcludedByCapping += readNames.size() - max;
-            histogramArray[depth]++;
-
-            // Record progress and perhaps stop
-            progress.record(info.getSequenceName(), info.getPosition());
-            if (usingStopAfter && ++counter > stopAfter) break;
-        }
-
-        // Construct and write the outputs
-        final Histogram<Integer> histo = new Histogram<Integer>("coverage", "count");
-        for (int i=0; i<histogramArray.length; ++i) {
-            histo.increment(i, histogramArray[i]);
-        }
-
-        final WgsMetrics metrics = new WgsMetrics();
-        metrics.GENOME_TERRITORY = (long) histo.getSumOfValues();
-        metrics.MEAN_COVERAGE    = histo.getMean();
-        metrics.SD_COVERAGE      = histo.getStandardDeviation();
-        metrics.MEDIAN_COVERAGE  = histo.getMedian();
-        metrics.MAD_COVERAGE     = histo.getMedianAbsoluteDeviation();
-
-        final long basesExcludedByDupes   = dupeFilter.getFilteredBases();
-        final long basesExcludedByMapq    = mapqFilter.getFilteredBases();
-        final long basesExcludedByPairing = pairFilter.getFilteredBases();
-        final double total             = histo.getSum();
-        final double totalWithExcludes = total + basesExcludedByDupes + basesExcludedByMapq + basesExcludedByPairing + basesExcludedByBaseq + basesExcludedByOverlap + basesExcludedByCapping;
-        metrics.PCT_EXC_DUPE     = basesExcludedByDupes   / totalWithExcludes;
-        metrics.PCT_EXC_MAPQ     = basesExcludedByMapq    / totalWithExcludes;
-        metrics.PCT_EXC_UNPAIRED = basesExcludedByPairing / totalWithExcludes;
-        metrics.PCT_EXC_BASEQ    = basesExcludedByBaseq   / totalWithExcludes;
-        metrics.PCT_EXC_OVERLAP  = basesExcludedByOverlap / totalWithExcludes;
-        metrics.PCT_EXC_CAPPED   = basesExcludedByCapping / totalWithExcludes;
-        metrics.PCT_EXC_TOTAL    = (totalWithExcludes - total) / totalWithExcludes;
-
-        metrics.PCT_5X     = MathUtil.sum(histogramArray, 5, histogramArray.length)   / (double) metrics.GENOME_TERRITORY;
-        metrics.PCT_10X    = MathUtil.sum(histogramArray, 10, histogramArray.length)  / (double) metrics.GENOME_TERRITORY;
-        metrics.PCT_20X    = MathUtil.sum(histogramArray, 20, histogramArray.length)  / (double) metrics.GENOME_TERRITORY;
-        metrics.PCT_30X    = MathUtil.sum(histogramArray, 30, histogramArray.length)  / (double) metrics.GENOME_TERRITORY;
-        metrics.PCT_40X    = MathUtil.sum(histogramArray, 40, histogramArray.length)  / (double) metrics.GENOME_TERRITORY;
-        metrics.PCT_50X    = MathUtil.sum(histogramArray, 50, histogramArray.length)  / (double) metrics.GENOME_TERRITORY;
-        metrics.PCT_60X    = MathUtil.sum(histogramArray, 60, histogramArray.length)  / (double) metrics.GENOME_TERRITORY;
-        metrics.PCT_70X    = MathUtil.sum(histogramArray, 70, histogramArray.length)  / (double) metrics.GENOME_TERRITORY;
-        metrics.PCT_80X    = MathUtil.sum(histogramArray, 80, histogramArray.length)  / (double) metrics.GENOME_TERRITORY;
-        metrics.PCT_90X    = MathUtil.sum(histogramArray, 90, histogramArray.length)  / (double) metrics.GENOME_TERRITORY;
-        metrics.PCT_100X   = MathUtil.sum(histogramArray, 100, histogramArray.length) / (double) metrics.GENOME_TERRITORY;
-
-        final MetricsFile<WgsMetrics, Integer> out = getMetricsFile();
-        out.addMetric(metrics);
-        out.addHistogram(histo);
-        out.write(OUTPUT);
-
-        return 0;
-    }
-}
-
-/**
- * A SamRecordFilter that counts the number of aligned bases in the reads which it filters out. Abstract and designed
- * to be subclassed to implement the desired filter.
- */
-abstract class CountingFilter implements SamRecordFilter {
-    private long filteredRecords = 0;
-    private long filteredBases = 0;
-
-    /** Gets the number of records that have been filtered out thus far. */
-    public long getFilteredRecords() { return this.filteredRecords; }
-
-    /** Gets the number of bases that have been filtered out thus far. */
-    public long getFilteredBases() { return this.filteredBases; }
-
-    @Override public final boolean filterOut(final SAMRecord record) {
-        final boolean filteredOut = reallyFilterOut(record);
-        if (filteredOut) {
-            ++filteredRecords;
-            for (final AlignmentBlock block : record.getAlignmentBlocks()) {
-                this.filteredBases += block.getLength();
-            }
-        }
-        return filteredOut;
-    }
-
-    abstract public boolean reallyFilterOut(final SAMRecord record);
-
-    @Override public boolean filterOut(final SAMRecord first, final SAMRecord second) {
-        throw new UnsupportedOperationException();
-    }
-}
-
-/** Counting filter that discards reads that have been marked as duplicates. */
-class CountingDuplicateFilter extends CountingFilter {
-    @Override public boolean reallyFilterOut(final SAMRecord record) { return record.getDuplicateReadFlag(); }
-}
-
-/** Counting filter that discards reads below a configurable mapping quality threshold. */
-class CountingMapQFilter extends CountingFilter {
-    private final int minMapq;
-    CountingMapQFilter(final int minMapq) { this.minMapq = minMapq; }
-    @Override public boolean reallyFilterOut(final SAMRecord record) { return record.getMappingQuality() < minMapq; }
-}
-
-/** Counting filter that discards reads that are unpaired in sequencing and paired reads who's mates are not mapped. */
-class CountingPairedFilter extends CountingFilter {
-    @Override public boolean reallyFilterOut(final SAMRecord record) { return !record.getReadPairedFlag() || record.getMateUnmappedFlag(); }
-}
-
diff --git a/src/java/net/sf/picard/analysis/GcBiasDetailMetrics.java b/src/java/net/sf/picard/analysis/GcBiasDetailMetrics.java
deleted file mode 100644
index 6fa437f..0000000
--- a/src/java/net/sf/picard/analysis/GcBiasDetailMetrics.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.analysis;
-
-import net.sf.picard.metrics.MetricBase;
-
-/**
- * Class that holds detailed metrics about reads that fall within windows of a certain
- * GC bin on the reference genome.
- *
- * @author Tim Fennell
- */
-public class GcBiasDetailMetrics extends MetricBase {
-    /** The G+C content of the reference sequence represented by this bin. Values are from 0% to 100% */
-    public int GC;
-
-    /** The number of windows on the reference genome that have this G+C content. */
-    public int WINDOWS;
-
-    /** The number of reads whose start position is at the start of a window of this GC. */
-    public long READ_STARTS;
-
-    /** The mean quality (determined via the error rate) of all bases of all reads that are assigned to windows of this GC. */
-    public int MEAN_BASE_QUALITY;
-
-    /**
-     * The ration of "coverage" in this GC bin vs. the mean coverage of all GC bins. A number of
-     * 1 represents mean coverage, a number less than one represents lower than mean coverage (e.g. 0.5
-     * means half as much coverage as average) while a number greater than one represents higher than
-     * mean coverage (e.g. 3.1 means this GC bin has 3.1 times more reads per window than average).
-     */
-    public double NORMALIZED_COVERAGE;
-
-    /**
-     * The radius of error bars in this bin based on the number of observations made. For example if
-     * the normalized coverage is 0.75 and the error bar width is 0.1 then the error bars would be
-     * drawn from 0.65 to 0.85. 
-     */
-    public double ERROR_BAR_WIDTH;
-
-}
diff --git a/src/java/net/sf/picard/analysis/GcBiasSummaryMetrics.java b/src/java/net/sf/picard/analysis/GcBiasSummaryMetrics.java
deleted file mode 100644
index 18c7965..0000000
--- a/src/java/net/sf/picard/analysis/GcBiasSummaryMetrics.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.analysis;
-
-import net.sf.picard.metrics.MetricBase;
-
-/**
- * High level metrics that capture how biased the coverage in a certain lane is.
- *
- * @author Tim Fennell
- */
-public class GcBiasSummaryMetrics extends MetricBase {
-    /** The window size on the genome used to calculate the GC of the sequence. */
-    public int WINDOW_SIZE;
-
-    /** The total number of clusters that were seen in the gc bias calculation. */
-    public int TOTAL_CLUSTERS;
-
-    /** The total number of aligned reads used to compute the gc bias metrics. */
-    public int ALIGNED_READS;
-
-    /**
-     * Illumina-style AT dropout metric.  Calculated by taking each GC bin independently and calculating
-     * (%ref_at_gc - %reads_at_gc) and summing all positive values for GC=[0..50].
-     */
-    public double AT_DROPOUT;
-
-    /**
-     * Illumina-style GC dropout metric.  Calculated by taking each GC bin independently and calculating
-     * (%ref_at_gc - %reads_at_gc) and summing all positive values for GC=[50..100].
-     */
-    public double GC_DROPOUT;
-
-}
diff --git a/src/java/net/sf/picard/analysis/InsertSizeMetrics.java b/src/java/net/sf/picard/analysis/InsertSizeMetrics.java
deleted file mode 100644
index fec44bf..0000000
--- a/src/java/net/sf/picard/analysis/InsertSizeMetrics.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.analysis;
-
-import net.sf.samtools.SamPairUtil.PairOrientation;
-import net.sf.picard.metrics.MultilevelMetrics;
-
-/**
- * Metrics about the insert size distribution of a paired-end library, created by the
- * CollectInsertSizeMetrics program and usually written to a file with the extension
- * ".insert_size_metrics".  In addition the insert size distribution is plotted to
- * a file with the extension ".insert_size_histogram.pdf".
- *
- * @author Doug Voet (dvoet at broadinstitute dot org)
- */
-public class InsertSizeMetrics extends MultilevelMetrics {
-
-    /** The MEDIAN insert size of all paired end reads where both ends mapped to the same chromosome. */
-    public double MEDIAN_INSERT_SIZE;
-
-    /**
-     * The median absolute deviation of the distribution.  If the distribution is essentially normal then
-     * the standard deviation can be estimated as ~1.4826 * MAD.
-     */
-    public double MEDIAN_ABSOLUTE_DEVIATION;
-
-    /** The minimum measured insert size.  This is usually 1 and not very useful as it is likely artifactual. */
-    public int MIN_INSERT_SIZE;
-    /**
-     * The maximum measure insert size by alignment. This is usually very high representing either an artifact
-     * or possibly the presence of a structural re-arrangement.
-     */
-    public int MAX_INSERT_SIZE;
-    /**
-     * The mean insert size of the "core" of the distribution. Artefactual outliers in the distribution often
-     * cause calculation of nonsensical mean and stdev values.  To avoid this the distribution is first trimmed
-     * to a "core" distribution of +/- N median absolute deviations around the median insert size. By default
-     * N=10, but this is configurable.
-     */
-    public double MEAN_INSERT_SIZE;
-    /** Standard deviation of insert sizes over the "core" of the distribution. */
-    public double STANDARD_DEVIATION;
-    /** The total number of read pairs that were examined in the entire distribution. */
-    public long READ_PAIRS;
-    /** The pair orientation of the reads in this data category. */
-    public PairOrientation PAIR_ORIENTATION;
-
-    /** The "width" of the bins, centered around the median, that encompass 10% of all read pairs. */
-    public int WIDTH_OF_10_PERCENT;
-    /** The "width" of the bins, centered around the median, that encompass 20% of all read pairs. */
-    public int WIDTH_OF_20_PERCENT;
-    /** The "width" of the bins, centered around the median, that encompass 30% of all read pairs. */
-    public int WIDTH_OF_30_PERCENT;
-    /** The "width" of the bins, centered around the median, that encompass 40% of all read pairs. */
-    public int WIDTH_OF_40_PERCENT;
-    /** The "width" of the bins, centered around the median, that encompass 50% of all read pairs. */
-    public int WIDTH_OF_50_PERCENT;
-    /** The "width" of the bins, centered around the median, that encompass 60% of all read pairs. */
-    public int WIDTH_OF_60_PERCENT;
-    /**
-     * The "width" of the bins, centered around the median, that encompass 70% of all read pairs.
-     * This metric divided by 2 should approximate the standard deviation when the insert size
-     * distribution is a normal distribution.
-     */
-    public int WIDTH_OF_70_PERCENT;
-    /** The "width" of the bins, centered around the median, that encompass 80% of all read pairs. */
-    public int WIDTH_OF_80_PERCENT;
-    /** The "width" of the bins, centered around the median, that encompass 90% of all read pairs. */
-    public int WIDTH_OF_90_PERCENT;
-    /** The "width" of the bins, centered around the median, that encompass 100% of all read pairs. */
-    public int WIDTH_OF_99_PERCENT;
-}
diff --git a/src/java/net/sf/picard/analysis/MeanQualityByCycle.java b/src/java/net/sf/picard/analysis/MeanQualityByCycle.java
deleted file mode 100644
index 5810418..0000000
--- a/src/java/net/sf/picard/analysis/MeanQualityByCycle.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.analysis;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.metrics.MetricsFile;
-import net.sf.picard.reference.ReferenceSequence;
-import net.sf.picard.util.Histogram;
-import net.sf.picard.util.Log;
-import net.sf.picard.util.RExecutor;
-import net.sf.samtools.SAMFileHeader;
-import net.sf.samtools.SAMReadGroupRecord;
-import net.sf.samtools.SAMRecord;
-
-import java.io.File;
-import java.util.Arrays;
-import java.util.List;
-
-
-/**
- * Program to generate a data table and chart of mean quality by cycle from a
- * BAM file.  Works best on a single lane/run of data, but can be applied to
- * merged BAMs - the output may just be a little confusing.
- *
- * @author Tim Fennell
- */
-public class MeanQualityByCycle extends SinglePassSamProgram {
-
-	public final String USAGE = getStandardUsagePreamble() + "Program to generate a data table and chart of " +
-			"mean quality by cycle from a SAM or BAM file.  Works best on a single lane/run of data, but can be applied to" +
-			"merged BAMs.";
-
-	@Option(shortName="CHART", doc="A file (with .pdf extension) to write the chart to.")
-    public File CHART_OUTPUT;
-
-    @Option(doc="If set to true, calculate mean quality over aligned reads only.")
-    public boolean ALIGNED_READS_ONLY = false;
-
-    @Option(doc="If set to true calculate mean quality over PF reads only.")
-    public boolean PF_READS_ONLY = false;
-
-    private HistogramGenerator q  = new HistogramGenerator(false);
-    private HistogramGenerator oq = new HistogramGenerator(true);
-
-    /**
-     * A subtitle for the plot, usually corresponding to a library.
-     */
-    private String plotSubtitle = "";
-
-    private final Log log = Log.getInstance(MeanQualityByCycle.class);
-
-    /** Required main method. */
-    public static void main(String[] args) {
-        System.exit(new MeanQualityByCycle().instanceMain(args));
-    }
-
-    private static class HistogramGenerator {
-        final boolean useOriginalQualities;
-        int maxLengthSoFar = 0;
-        double[] firstReadTotalsByCycle  = new double[maxLengthSoFar];
-        long[]   firstReadCountsByCycle  = new long[maxLengthSoFar];
-        double[] secondReadTotalsByCycle = new double[maxLengthSoFar];
-        long[]   secondReadCountsByCycle = new long[maxLengthSoFar];
-
-        private HistogramGenerator(boolean useOriginalQualities) {
-            this.useOriginalQualities = useOriginalQualities;
-        }
-
-        void addRecord(SAMRecord rec) {
-            final byte[] quals = (useOriginalQualities ? rec.getOriginalBaseQualities() : rec.getBaseQualities());
-            if (quals == null) return;
-
-            final int length = quals.length;
-            final boolean rc = rec.getReadNegativeStrandFlag();
-            ensureArraysBigEnough(length+1);
-
-            for (int i=0; i<length; ++i) {
-                int cycle = rc ? length-i : i+1;
-
-                if (rec.getReadPairedFlag() && rec.getSecondOfPairFlag()) {
-                    secondReadTotalsByCycle[cycle] += quals[i];
-                    secondReadCountsByCycle[cycle] += 1;
-                }
-                else {
-                    firstReadTotalsByCycle[cycle] += quals[i];
-                    firstReadCountsByCycle[cycle] += 1;
-                }
-            }
-        }
-
-        private void ensureArraysBigEnough(int length) {
-            if (length > maxLengthSoFar) {
-                this.firstReadTotalsByCycle  = Arrays.copyOf(this.firstReadTotalsByCycle, length);
-                this.firstReadCountsByCycle  = Arrays.copyOf(this.firstReadCountsByCycle, length);
-                this.secondReadTotalsByCycle = Arrays.copyOf(this.secondReadTotalsByCycle , length);
-                this.secondReadCountsByCycle = Arrays.copyOf(secondReadCountsByCycle, length);
-                this.maxLengthSoFar = length;
-            }
-        }
-
-
-        Histogram<Integer> getMeanQualityHistogram() {
-            final String label = useOriginalQualities ? "MEAN_ORIGINAL_QUALITY" : "MEAN_QUALITY";
-            final Histogram<Integer> meanQualities = new Histogram<Integer>("CYCLE", label);
-
-            int firstReadLength = 0;
-
-            for (int cycle=0; cycle < firstReadTotalsByCycle.length; ++cycle) {
-                if (firstReadTotalsByCycle[cycle] > 0) {
-                    meanQualities.increment(cycle, firstReadTotalsByCycle[cycle] / firstReadCountsByCycle[cycle]);
-                    firstReadLength = cycle;
-                }
-            }
-
-            for (int i=0; i< secondReadTotalsByCycle.length; ++i) {
-                if (secondReadCountsByCycle[i] > 0) {
-                    final int cycle = firstReadLength + i;
-                    meanQualities.increment(cycle, secondReadTotalsByCycle[i] / secondReadCountsByCycle[i]);
-                }
-            }
-
-            return meanQualities;
-        }
-
-        boolean isEmpty() {
-            return this.maxLengthSoFar == 0;
-        }
-    }
-
-
-    @Override
-    protected void setup(final SAMFileHeader header, final File samFile) {
-        IoUtil.assertFileIsWritable(CHART_OUTPUT);
-        // If we're working with a single library, assign that library's name
-        // as a suffix to the plot title
-        final List<SAMReadGroupRecord> readGroups = header.getReadGroups();
-        if (readGroups.size() == 1) {
-            this.plotSubtitle = readGroups.get(0).getLibrary();
-            if (null == this.plotSubtitle) this.plotSubtitle = "";
-        }
-    }
-
-    @Override
-    protected void acceptRead(final SAMRecord rec, final ReferenceSequence ref) {
-        // Skip unwanted records
-        if (PF_READS_ONLY && rec.getReadFailsVendorQualityCheckFlag()) return;
-        if (ALIGNED_READS_ONLY && rec.getReadUnmappedFlag()) return;
-        if (rec.isSecondaryOrSupplementary()) return;
-
-        q.addRecord(rec);
-        oq.addRecord(rec);
-    }
-
-    @Override
-    protected void finish() {
-        // Generate a "histogram" of mean quality and write it to the file
-        MetricsFile<?,Integer> metrics = getMetricsFile();
-        metrics.addHistogram(q.getMeanQualityHistogram());
-        if (!oq.isEmpty()) metrics.addHistogram(oq.getMeanQualityHistogram());
-        metrics.write(OUTPUT);
-
-        if (q.isEmpty() && oq.isEmpty()) {
-            log.warn("No valid bases found in input file. No plot will be produced.");
-        }
-        else {
-            // Now run R to generate a chart
-            final int rResult = RExecutor.executeFromClasspath(
-                    "net/sf/picard/analysis/meanQualityByCycle.R",
-                    OUTPUT.getAbsolutePath(),
-                    CHART_OUTPUT.getAbsolutePath(),
-                    INPUT.getName(),
-                    this.plotSubtitle);
-
-            if (rResult != 0) {
-                throw new PicardException("R script meanQualityByCycle.R failed with return code " + rResult);
-            }
-        }
-    }
-}
-
diff --git a/src/java/net/sf/picard/analysis/MetricAccumulationLevel.java b/src/java/net/sf/picard/analysis/MetricAccumulationLevel.java
deleted file mode 100755
index 69df040..0000000
--- a/src/java/net/sf/picard/analysis/MetricAccumulationLevel.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.analysis;
-
-/**
- * For use with Picard metrics programs that may output metrics for multiple levels
- * of aggregation with an analysis.  Used to specify which metrics to output
- */
-public enum MetricAccumulationLevel {
-    ALL_READS, SAMPLE, LIBRARY, READ_GROUP
-}
diff --git a/src/java/net/sf/picard/analysis/QualityScoreDistribution.java b/src/java/net/sf/picard/analysis/QualityScoreDistribution.java
deleted file mode 100644
index 4b0a670..0000000
--- a/src/java/net/sf/picard/analysis/QualityScoreDistribution.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.analysis;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.Usage;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.metrics.MetricsFile;
-import net.sf.picard.reference.ReferenceSequence;
-import net.sf.picard.util.Histogram;
-import net.sf.picard.util.Log;
-import net.sf.picard.util.RExecutor;
-import net.sf.samtools.SAMFileHeader;
-import net.sf.samtools.SAMReadGroupRecord;
-import net.sf.samtools.SAMRecord;
-import net.sf.samtools.util.SequenceUtil;
-
-import java.io.File;
-import java.util.List;
-
-/**
- * Charts quality score distribution within a BAM file.
- *
- * @author Tim Fennell
- */
-public class QualityScoreDistribution extends SinglePassSamProgram {
-	@Usage
-	public final String USAGE = getStandardUsagePreamble() + "Program to chart " +
-			"quality score distributions in a SAM or BAM file.";
-
-    @Option(shortName="CHART", doc="A file (with .pdf extension) to write the chart to.")
-    public File CHART_OUTPUT;
-
-    @Option(doc="If set to true calculate mean quality over aligned reads only.")
-    public boolean ALIGNED_READS_ONLY = false;
-
-    @Option(shortName="PF", doc="If set to true calculate mean quality over PF reads only.")
-    public boolean PF_READS_ONLY = false;
-
-    @Option(doc="If set to true, include quality for no-call bases in the distribution.")
-    public boolean INCLUDE_NO_CALLS = false;
-
-    private final long[] qCounts  = new long[128];
-    private final long[] oqCounts = new long[128];
-
-    /**
-     * A subtitle for the plot, usually corresponding to a library.
-     */
-    private String plotSubtitle = "";
-
-
-    private final Log log = Log.getInstance(QualityScoreDistribution.class);
-
-    /** Required main method. */
-    public static void main(final String[] args) {
-        System.exit(new QualityScoreDistribution().instanceMain(args));
-    }
-
-
-    @Override
-    protected void setup(final SAMFileHeader header, final File samFile) {
-        IoUtil.assertFileIsWritable(OUTPUT);
-        IoUtil.assertFileIsWritable(CHART_OUTPUT);
-
-        // If we're working with a single library, assign that library's name
-        // as a suffix to the plot title
-        final List<SAMReadGroupRecord> readGroups = header.getReadGroups();
-        if (readGroups.size() == 1) {
-            this.plotSubtitle = readGroups.get(0).getLibrary();
-            if (null == this.plotSubtitle) this.plotSubtitle = "";
-        }
-    }
-
-    @Override
-    protected void acceptRead(final SAMRecord rec, final ReferenceSequence ref) {
-        // Skip unwanted records
-        if (PF_READS_ONLY && rec.getReadFailsVendorQualityCheckFlag()) return;
-        if (ALIGNED_READS_ONLY && rec.getReadUnmappedFlag()) return;
-        if (rec.isSecondaryOrSupplementary()) return;
-
-        final byte[] bases = rec.getReadBases();
-        final byte[] quals = rec.getBaseQualities();
-        final byte[] oq    = rec.getOriginalBaseQualities();
-
-        final int length = quals.length;
-
-        for (int i=0; i<length; ++i) {
-            if (INCLUDE_NO_CALLS || !SequenceUtil.isNoCall(bases[i])) {
-                qCounts[quals[i]]++;
-                if (oq != null) oqCounts[oq[i]]++;
-            }
-        }
-    }
-
-    @Override
-    protected void finish() {
-        // Built the histograms out of the long[]s
-        final Histogram<Byte> qHisto  = new Histogram<Byte>("QUALITY", "COUNT_OF_Q");
-        final Histogram<Byte> oqHisto = new Histogram<Byte>("QUALITY", "COUNT_OF_OQ");
-
-        for (int i=0; i< qCounts.length; ++i) {
-            if (qCounts[i]  > 0) qHisto.increment( (byte) i, (double) qCounts[i]);
-            if (oqCounts[i] > 0) oqHisto.increment((byte) i, (double) oqCounts[i]);
-        }
-
-        final MetricsFile<?,Byte> metrics = getMetricsFile();
-        metrics.addHistogram(qHisto);
-        if (!oqHisto.isEmpty()) metrics.addHistogram(oqHisto);
-        metrics.write(OUTPUT);
-        if (qHisto.isEmpty() && oqHisto.isEmpty()) {
-            log.warn("No valid bases found in input file. No plot will be produced.");
-        }
-        else {
-            // Now run R to generate a chart
-            final int rResult = RExecutor.executeFromClasspath(
-                    "net/sf/picard/analysis/qualityScoreDistribution.R",
-                    OUTPUT.getAbsolutePath(),
-                    CHART_OUTPUT.getAbsolutePath(),
-                    INPUT.getName(),
-                    this.plotSubtitle);
-
-            if (rResult != 0) {
-                throw new PicardException("R script qualityScoreDistribution.R failed with return code " + rResult);
-            }
-        }
-    }
-}
diff --git a/src/java/net/sf/picard/analysis/RnaSeqMetrics.java b/src/java/net/sf/picard/analysis/RnaSeqMetrics.java
deleted file mode 100644
index 079656f..0000000
--- a/src/java/net/sf/picard/analysis/RnaSeqMetrics.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.analysis;
-
-import net.sf.picard.metrics.MultilevelMetrics;
-
-/**
- * Metrics about the alignment of RNA-seq reads within a SAM file to genes, produced by the CollectRnaSeqMetrics
- * program and usually stored in a file with the extension ".rna_metrics".
- */
-public class RnaSeqMetrics extends MultilevelMetrics {
-    /** The total number of PF bases including non-aligned reads. */
-    public long PF_BASES;
-
-    /**
-     * The total number of aligned PF bases.  Non-primary alignments are not counted. Bases in aligned reads that
-     * do not correspond to reference (e.g. soft clips, insertions) are not counted.
-     */
-    public long PF_ALIGNED_BASES;
-
-    /** Number of bases in primary aligments that align to ribosomal sequence. */
-    public Long RIBOSOMAL_BASES;
-
-    /** Number of bases in primary aligments that align to a non-UTR coding base for some gene, and not ribosomal sequence. */
-    public long CODING_BASES;
-
-    /** Number of bases in primary aligments that align to a UTR base for some gene, and not a coding base. */
-    public long UTR_BASES;
-
-    /** Number of bases in primary aligments that align to an intronic base for some gene, and not a coding or UTR base. */
-    public long INTRONIC_BASES;
-
-    /** Number of bases in primary aligments that do not align to any gene. */
-    public long INTERGENIC_BASES;
-
-    /**
-     * Number of primary alignments that map to a sequence specified on command-line as IGNORED_SEQUENCE.  These are not
-     * counted in PF_ALIGNED_BASES, CORRECT_STRAND_READS, INCORRECT_STRAND_READS, or any of the base-counting metrics.
-     * These reads are counted in PF_BASES.
-     */
-    public long IGNORED_READS;
-
-    /** Number of aligned reads that map to the correct strand.  0 if library is not strand-specific. */
-    public long CORRECT_STRAND_READS;
-
-    /** Number of aligned reads that map to the incorrect strand.  0 if library is not strand-specific. */
-    public long INCORRECT_STRAND_READS;
-
-    /** RIBOSOMAL_BASES / PF_ALIGNED_BASES */
-    public Double PCT_RIBOSOMAL_BASES;
-
-    /** CODING_BASES / PF_ALIGNED_BASES */
-    public double PCT_CODING_BASES;
-
-    /** UTR_BASES / PF_ALIGNED_BASES */
-    public double PCT_UTR_BASES;
-
-    /** INTRONIC_BASES / PF_ALIGNED_BASES */
-    public double PCT_INTRONIC_BASES;
-
-    /** INTERGENIC_BASES / PF_ALIGNED_BASES */
-    public double PCT_INTERGENIC_BASES;
-
-    /** PCT_UTR_BASES + PCT_CODING_BASES */
-    public double PCT_MRNA_BASES;
-
-    /** The percentage of bases mapping to mRNA divided by the total number of PF bases. */
-    public double PCT_USABLE_BASES;
-
-    /** CORRECT_STRAND_READS/(CORRECT_STRAND_READS + INCORRECT_STRAND_READS).  0 if library is not strand-specific. */
-    public double PCT_CORRECT_STRAND_READS;
-
-    /** The median CV of coverage of the 1000 most highly expressed transcripts. Ideal value = 0. */
-    public double MEDIAN_CV_COVERAGE;
-
-    /**
-     * The median 5 prime bias of the 1000 most highly expressed transcripts, where 5 prime bias is calculated per
-     * transcript as: mean coverage of the 5' most 100 bases divided by the mean coverage of the whole transcript.
-     */
-    public double MEDIAN_5PRIME_BIAS;
-
-    /**
-     * The median 3 prime bias of the 1000 most highly expressed transcripts, where 3 prime bias is calculated per
-     * transcript as: mean coverage of the 3' most 100 bases divided by the mean coverage of the whole transcript.
-     */
-    public double MEDIAN_3PRIME_BIAS;
-
-    /** The ratio of coverage at the 5' end of to the 3' end based on the 1000 most highly expressed transcripts. */
-    public double MEDIAN_5PRIME_TO_3PRIME_BIAS;
-}
diff --git a/src/java/net/sf/picard/analysis/SinglePassSamProgram.java b/src/java/net/sf/picard/analysis/SinglePassSamProgram.java
deleted file mode 100644
index e09d119..0000000
--- a/src/java/net/sf/picard/analysis/SinglePassSamProgram.java
+++ /dev/null
@@ -1,158 +0,0 @@
-package net.sf.picard.analysis;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.StandardOptionDefinitions;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.reference.ReferenceSequence;
-import net.sf.picard.reference.ReferenceSequenceFileWalker;
-import net.sf.picard.util.Log;
-import net.sf.picard.util.ProgressLogger;
-import net.sf.samtools.SAMFileHeader;
-import net.sf.samtools.SAMFileHeader.SortOrder;
-import net.sf.samtools.SAMFileReader;
-import net.sf.samtools.SAMRecord;
-import net.sf.samtools.util.SequenceUtil;
-
-import java.io.File;
-import java.text.DecimalFormat;
-import java.text.NumberFormat;
-import java.util.Arrays;
-import java.util.Collection;
-
-/**
- * Super class that is designed to provide some consistent structure between subclasses that
- * simply iterate once over a coordinate sorted BAM and collect information from the records
- * as the go in order to produce some kind of output.
- *
- * @author Tim Fennell
- */
-public abstract class SinglePassSamProgram extends CommandLineProgram {
-    @Option(shortName= StandardOptionDefinitions.INPUT_SHORT_NAME, doc="Input SAM or BAM file.")
-    public File INPUT;
-
-    @Option(shortName="O", doc="File to write the output to.")
-    public File OUTPUT;
-
-    @Option(shortName=StandardOptionDefinitions.REFERENCE_SHORT_NAME, doc="Reference sequence fasta", optional=true)
-    public File REFERENCE_SEQUENCE;
-
-    @Option(doc="If true (default), then the sort order in the header file will be ignored.",
-            shortName = StandardOptionDefinitions.ASSUME_SORTED_SHORT_NAME)
-    public boolean ASSUME_SORTED = true;
-
-    @Option(doc="Stop after processing N reads, mainly for debugging.")
-    public long STOP_AFTER = 0;
-
-    private static final Log log = Log.getInstance(SinglePassSamProgram.class);
-
-    /**
-     * Final implementation of doWork() that checks and loads the input and optionally reference
-     * sequence files and the runs the sublcass through the setup() acceptRead() and finish() steps.
-     */
-    @Override protected final int doWork() {
-        makeItSo(INPUT, REFERENCE_SEQUENCE, ASSUME_SORTED, STOP_AFTER, Arrays.asList(this));
-        return 0;
-    }
-
-    public static void makeItSo(final File input,
-                                   final File referenceSequence,
-                                   final boolean assumeSorted,
-                                   final long stopAfter,
-                                   final Collection<SinglePassSamProgram> programs) {
-
-        // Setup the standard inputs
-        IoUtil.assertFileIsReadable(input);
-        final SAMFileReader in = new SAMFileReader(input);
-
-        // Optionally load up the reference sequence and double check sequence dictionaries
-        final ReferenceSequenceFileWalker walker;
-        if (referenceSequence == null) {
-            walker = null;
-        }
-        else {
-            IoUtil.assertFileIsReadable(referenceSequence);
-            walker = new ReferenceSequenceFileWalker(referenceSequence);
-
-            if (!in.getFileHeader().getSequenceDictionary().isEmpty()) {
-                SequenceUtil.assertSequenceDictionariesEqual(in.getFileHeader().getSequenceDictionary(),
-                                                             walker.getSequenceDictionary());
-            }
-        }
-
-        // Check on the sort order of the BAM file
-        {
-            final SortOrder sort = in.getFileHeader().getSortOrder();
-            if (sort != SortOrder.coordinate) {
-                if (assumeSorted) {
-                    log.warn("File reports sort order '" + sort + "', assuming it's coordinate sorted anyway.");
-                }
-                else {
-                    throw new PicardException("File " + input.getAbsolutePath() + " should be coordinate sorted but " +
-                                              "the header says the sort order is " + sort + ". If you believe the file " +
-                                              "to be coordinate sorted you may pass ASSUME_SORTED=true");
-                }
-            }
-        }
-
-        // Call the abstract setup method!
-        boolean anyUseNoRefReads = false;
-        for (final SinglePassSamProgram program : programs) {
-            program.setup(in.getFileHeader(), input);
-            anyUseNoRefReads = anyUseNoRefReads || program.usesNoRefReads();
-        }
-
-
-        final ProgressLogger progress = new ProgressLogger(log);
-
-        for (final SAMRecord rec : in) {
-            final ReferenceSequence ref;
-            if (walker == null || rec.getReferenceIndex() == SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX) {
-                ref = null;
-            }
-            else {
-                ref = walker.get(rec.getReferenceIndex());
-            }
-
-            for (final SinglePassSamProgram program : programs) {
-                program.acceptRead(rec, ref);
-            }
-
-            progress.record(rec);
-
-            // See if we need to terminate early?
-            if (stopAfter > 0 && progress.getCount() >= stopAfter) {
-                break;
-            }
-
-            // And see if we're into the unmapped reads at the end
-            if (!anyUseNoRefReads && rec.getReferenceIndex() == SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX) {
-                break;
-            }
-        }
-
-        in.close();
-
-        for (final SinglePassSamProgram program : programs) {
-            program.finish();
-        }
-    }
-
-    /** Can be overriden and set to false if the section of unmapped reads at the end of the file isn't needed. */
-    protected boolean usesNoRefReads() { return true; }
-
-    /** Should be implemented by subclasses to do one-time initialization work. */
-    protected abstract void setup(final SAMFileHeader header, final File samFile);
-
-    /**
-     * Should be implemented by subclasses to accept SAMRecords one at a time.
-     * If the read has a reference sequence and a reference sequence file was supplied to the program
-     * it will be passed as 'ref'. Otherwise 'ref' may be null.
-     */
-    protected abstract void acceptRead(final SAMRecord rec, final ReferenceSequence ref);
-
-    /** Should be implemented by subclasses to do one-time finalization work. */
-    protected abstract void finish();
-
-}
diff --git a/src/java/net/sf/picard/analysis/directed/CalculateHsMetrics.java b/src/java/net/sf/picard/analysis/directed/CalculateHsMetrics.java
deleted file mode 100644
index 95d3f78..0000000
--- a/src/java/net/sf/picard/analysis/directed/CalculateHsMetrics.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.analysis.directed;
-
-import net.sf.picard.analysis.MetricAccumulationLevel;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.Usage;
-
-import java.io.File;
-import java.util.*;
-
-import net.sf.picard.reference.ReferenceSequenceFile;
-import net.sf.samtools.SAMReadGroupRecord;
-
-/**
- * Calculates a set of HS metrics from a sam or bam file.  See HsMetricsCollector and CollectTargetedMetrics for more details.
- *
- * @author Tim Fennell
- */
-public class CalculateHsMetrics extends CollectTargetedMetrics {
-
-    @Usage
-	public final String USAGE = getStandardUsagePreamble() +
-            "Calculates a set of Hybrid Selection specific metrics from an aligned SAM" +
-            "or BAM file. If a reference sequence is provided, AT/GC dropout metrics will " +
-            "be calculated, and the PER_TARGET_COVERAGE option can be used to output GC and " +
-            "mean coverage information for every target.";
-    @Option(shortName="BI", doc="An interval list file that contains the locations of the baits used.")
-    public File BAIT_INTERVALS;
-
-    @Option(shortName="N",  doc="Bait set name. If not provided it is inferred from the filename of the bait intervals.", optional=true)
-    public String BAIT_SET_NAME;
-
-    /**
-     * @return BAIT_INTERVALS file
-     */
-    @Override
-    protected File getProbeIntervals() {
-        return BAIT_INTERVALS;
-    }
-
-    /**
-     * @return BAIT_SET_NAME
-     */
-    @Override
-    protected String getProbeSetName() {
-        return BAIT_SET_NAME;
-    }
-
-    /** Stock main method. */
-    public static void main(final String[] argv) {
-        System.exit(new CalculateHsMetrics().instanceMain(argv));
-    }
-
-    @Override
-    protected TargetMetricsCollector makeCollector(final Set<MetricAccumulationLevel> accumulationLevels,
-                                                    final List<SAMReadGroupRecord> samRgRecords,
-                                                    final ReferenceSequenceFile refFile,
-                                                    final File perTargetCoverage,
-                                                    final File targetIntervals,
-                                                    final File probeIntervals,
-                                                    final String probeSetName) {
-        return new HsMetricCollector(accumulationLevels, samRgRecords, refFile, perTargetCoverage, targetIntervals, probeIntervals, probeSetName);
-    }
-}
diff --git a/src/java/net/sf/picard/analysis/directed/CollectTargetedMetrics.java b/src/java/net/sf/picard/analysis/directed/CollectTargetedMetrics.java
deleted file mode 100644
index c9cd0fe..0000000
--- a/src/java/net/sf/picard/analysis/directed/CollectTargetedMetrics.java
+++ /dev/null
@@ -1,151 +0,0 @@
-package net.sf.picard.analysis.directed;
-
-import net.sf.picard.analysis.MetricAccumulationLevel;
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.StandardOptionDefinitions;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.metrics.MetricsFile;
-import net.sf.picard.reference.ReferenceSequenceFile;
-import net.sf.picard.reference.ReferenceSequenceFileFactory;
-import net.sf.samtools.util.CollectionUtil;
-import net.sf.picard.util.IntervalList;
-import net.sf.picard.util.Log;
-import net.sf.picard.util.ProgressLogger;
-import net.sf.samtools.SAMFileReader;
-import net.sf.samtools.SAMReadGroupRecord;
-import net.sf.samtools.SAMRecord;
-import net.sf.samtools.util.SequenceUtil;
-
-import java.io.File;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-/**
- * Both CollectTargetedPCRMetrics and CalculateHybridSelection metrics share virtually identical program structures except
- * for the name of their targeting mechanisms (e.g. bait set or amplicon set).  The shared behavior of these programs
- * is encapsulated in CollectTargetedMetrics which is then subclassed by CalculateHsMetrics and CollectTargetedPcrMetrics.
- *
- * This program verifies the input parameters to TargetMetricsCollector and converts all files to
- * the format desired by TargetMetricsCollector.  Then it instantiates a TargetMetricsCollector and
- * collects metric information for all reads in the INPUT sam file.
- */
-public abstract class CollectTargetedMetrics extends CommandLineProgram {
-
-    private static final Log log = Log.getInstance(CalculateHsMetrics.class);
-
-    /**
-     * The interval file to be fed to TargetMetricsCollector
-     * @return An interval file that denotes the intervals of the regions targeted by the probes for this run that is
-     *         passed to the TargetMetricsCollector produced by makeCollector
-     */
-    protected abstract File getProbeIntervals();
-
-    /**
-     * @return The name of the probe set used in this run, getProbeIntervals().getName() is
-     */
-    protected abstract String getProbeSetName();
-
-    /**
-     *  A factory method for the TargetMetricsCollector to use this time.  Examples of TargetMetricsCollector:
-     *  (TargetedPcrMetricsCollector, HsMetricsCalculator)
-     *  @return A TargetMetricsCollector to which we will pass SAMRecords
-     */
-    protected abstract TargetMetricsCollector makeCollector(final Set<MetricAccumulationLevel> accumulationLevels,
-                                                             final List<SAMReadGroupRecord> samRgRecords,
-                                                             final ReferenceSequenceFile refFile,
-                                                             final File perTargetCoverage,
-                                                             final File targetIntervals,
-                                                             final File probeIntervals,
-                                                             final String probeSetName);
-
-
-    @Option(shortName="TI", doc="An interval list file that contains the locations of the targets.")
-    public File TARGET_INTERVALS;
-
-    @Option(shortName= StandardOptionDefinitions.INPUT_SHORT_NAME, doc="An aligned SAM or BAM file.")
-    public File INPUT;
-
-    @Option(shortName=StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc="The output file to write the metrics to.")
-    public File OUTPUT;
-
-    @Option(shortName="LEVEL", doc="The level(s) at which to accumulate metrics.  ")
-    public Set<MetricAccumulationLevel> METRIC_ACCUMULATION_LEVEL = CollectionUtil.makeSet(MetricAccumulationLevel.ALL_READS);
-
-    @Option(shortName=StandardOptionDefinitions.REFERENCE_SHORT_NAME, optional=true, doc="The reference sequence aligned to.")
-    public File REFERENCE_SEQUENCE;
-
-    @Option(optional=true, doc="An optional file to output per target coverage information to.")
-    public File PER_TARGET_COVERAGE;
-
-    /**
-     * Asserts that files are readable and writable and then fires off an
-     * HsMetricsCalculator instance to do the real work.
-     */
-    protected int doWork() {
-        IoUtil.assertFileIsReadable(getProbeIntervals());
-        IoUtil.assertFileIsReadable(TARGET_INTERVALS);
-        IoUtil.assertFileIsReadable(INPUT);
-        IoUtil.assertFileIsWritable(OUTPUT);
-        if (PER_TARGET_COVERAGE != null) IoUtil.assertFileIsWritable(PER_TARGET_COVERAGE);
-
-        final SAMFileReader samReader = new SAMFileReader(INPUT);
-
-        final File probeIntervals = getProbeIntervals();
-
-        // Validate that the targets and baits have the same references as the reads file
-        SequenceUtil.assertSequenceDictionariesEqual(samReader.getFileHeader().getSequenceDictionary(),
-                IntervalList.fromFile(TARGET_INTERVALS).getHeader().getSequenceDictionary(),
-                INPUT, TARGET_INTERVALS);
-        SequenceUtil.assertSequenceDictionariesEqual(samReader.getFileHeader().getSequenceDictionary(),
-                IntervalList.fromFile(probeIntervals).getHeader().getSequenceDictionary(),
-                INPUT, probeIntervals);
-
-        ReferenceSequenceFile ref = null;
-        if (REFERENCE_SEQUENCE != null) {
-            IoUtil.assertFileIsReadable(REFERENCE_SEQUENCE);
-            ref = ReferenceSequenceFileFactory.getReferenceSequenceFile(REFERENCE_SEQUENCE);
-            SequenceUtil.assertSequenceDictionariesEqual(samReader.getFileHeader().getSequenceDictionary(), ref.getSequenceDictionary(),
-                    INPUT, REFERENCE_SEQUENCE);
-        }
-
-        final TargetMetricsCollector collector = makeCollector(METRIC_ACCUMULATION_LEVEL, samReader.getFileHeader().getReadGroups(), ref,
-                PER_TARGET_COVERAGE, TARGET_INTERVALS, probeIntervals, getProbeSetName());
-
-
-        // Add each record to the requested collectors
-        final Iterator<SAMRecord> records = samReader.iterator();
-        final ProgressLogger progress = new ProgressLogger(log);
-
-        while (records.hasNext()) {
-            final SAMRecord sam = records.next();
-            collector.acceptRecord(sam, null);
-            progress.record(sam);
-        }
-
-        // Write the output file
-        final MetricsFile<HsMetrics, Integer> metrics = getMetricsFile();
-        collector.finish();
-
-        collector.addAllLevelsToFile(metrics);
-
-        metrics.write(OUTPUT);
-
-        return 0;
-    }
-
-    protected String[] customCommandLineValidation() {
-        if (PER_TARGET_COVERAGE != null && (METRIC_ACCUMULATION_LEVEL.size() != 1 ||
-                METRIC_ACCUMULATION_LEVEL.iterator().next() != MetricAccumulationLevel.ALL_READS)) {
-            return new String[] {"PER_TARGET_COVERAGE can be specified only when METRIC_ACCUMULATION_LEVEL is set " +
-                    "to ALL_READS."};
-        }
-
-        if(PER_TARGET_COVERAGE != null && REFERENCE_SEQUENCE == null) {
-            return new String[] {"Must supply REFERENCE_SEQUENCE when supplying PER_TARGET_COVERAGE"};
-        }
-
-        return super.customCommandLineValidation();
-    }
-}
\ No newline at end of file
diff --git a/src/java/net/sf/picard/analysis/directed/CollectTargetedPcrMetrics.java b/src/java/net/sf/picard/analysis/directed/CollectTargetedPcrMetrics.java
deleted file mode 100644
index 90c3b86..0000000
--- a/src/java/net/sf/picard/analysis/directed/CollectTargetedPcrMetrics.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package net.sf.picard.analysis.directed;
-
-import net.sf.picard.analysis.MetricAccumulationLevel;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.Usage;
-import net.sf.picard.reference.ReferenceSequenceFile;
-import net.sf.samtools.SAMReadGroupRecord;
-
-import java.io.File;
-import java.util.List;
-import java.util.Set;
-
-/**
- * Collect metric information for target pcr metrics runs.  See CollectTargetedMetrics and TargetPcrMetricsCollector for
- * more information
- */
-public class CollectTargetedPcrMetrics extends CollectTargetedMetrics {
-
-    @Usage
-    public final String USAGE =
-            "Calculates a set of metrics to Illumina Truseq Custom Amplicon sequencing from an aligned SAM" +
-                    "or BAM file. If a reference sequence is provided, AT/GC dropout metrics will " +
-                    "be calculated, and the PER_TARGET_COVERAGE option can be used to output GC and " +
-                    "mean coverage information for every target.";
-    @Option(shortName="AI", doc="An interval list file that contains the locations of the baits used.")
-    public File AMPLICON_INTERVALS;
-
-    @Option(shortName="N",  doc="Custom amplicon set name. If not provided it is inferred from the filename of the AMPLICON_INTERVALS intervals.", optional=true)
-    public String CUSTOM_AMPLICON_SET_NAME;
-
-    /**
-     * @return AMPLICON_INTERVALS
-     */
-    @Override
-    protected File getProbeIntervals() {
-        return AMPLICON_INTERVALS;
-    }
-
-    /**
-     * @return CUSTOM_AMPLICON_SET_NAME
-     */
-    @Override
-    protected String getProbeSetName() {
-        return CUSTOM_AMPLICON_SET_NAME;
-    }
-
-    /** Stock main method. */
-    public static void main(final String[] argv) {
-        System.exit(new CollectTargetedPcrMetrics().instanceMain(argv));
-    }
-
-    @Override
-    protected TargetMetricsCollector makeCollector(final Set<MetricAccumulationLevel> accumulationLevels,
-                                                   final List<SAMReadGroupRecord> samRgRecords,
-                                                   final ReferenceSequenceFile refFile,
-                                                   final File perTargetCoverage,
-                                                   final File targetIntervals,
-                                                   final File probeIntervals,
-                                                   final String probeSetName) {
-        return new TargetedPcrMetricsCollector(accumulationLevels, samRgRecords, refFile, perTargetCoverage, targetIntervals, probeIntervals, probeSetName);
-    }
-}
diff --git a/src/java/net/sf/picard/analysis/directed/HsMetricCollector.java b/src/java/net/sf/picard/analysis/directed/HsMetricCollector.java
deleted file mode 100644
index 0769ef5..0000000
--- a/src/java/net/sf/picard/analysis/directed/HsMetricCollector.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.analysis.directed;
-
-import net.sf.picard.analysis.MetricAccumulationLevel;
-import net.sf.picard.reference.ReferenceSequenceFile;
-import net.sf.picard.sam.DuplicationMetrics;
-import net.sf.samtools.*;
-
-import java.io.File;
-import java.util.*;
-
-/**
- * Calculates HS metrics for a given SAM or BAM file. Requires the input of a list of
- * target intervals and a list of bait intervals. Can be invoked either on an entire
- * iterator of SAMRecords or be passed SAMRecords one at a time.
- *
- * @author Jonathan Burke
- */
-public class HsMetricCollector extends TargetMetricsCollector<HsMetrics> {
-
-    public HsMetricCollector(final Set<MetricAccumulationLevel> accumulationLevels, final List<SAMReadGroupRecord> samRgRecords, final ReferenceSequenceFile refFile, final File perTargetCoverage, final File targetIntervals, final File probeIntervals, final String probeSetName) {
-        super(accumulationLevels, samRgRecords, refFile, perTargetCoverage, targetIntervals, probeIntervals, probeSetName);
-    }
-
-    @Override
-    public HsMetrics convertMetric(final TargetMetrics targetMetrics) {
-        final HsMetrics hsMetrics = new HsMetrics();
-        TargetMetricsCollector.reflectiveCopy(targetMetrics, hsMetrics,
-                new String[]{"PROBE_SET", "PROBE_TERRITORY", "ON_PROBE_BASES", "NEAR_PROBE_BASES", "OFF_PROBE_BASES", "PCT_OFF_PROBE", "ON_PROBE_VS_SELECTED", "MEAN_PROBE_COVERAGE"},
-                new String[]{"BAIT_SET",  "BAIT_TERRITORY",  "ON_BAIT_BASES",  "NEAR_BAIT_BASES",  "OFF_BAIT_BASES",  "PCT_OFF_BAIT",  "ON_BAIT_VS_SELECTED",  "MEAN_BAIT_COVERAGE"}
-        );
-
-        hsMetrics.BAIT_DESIGN_EFFICIENCY = (double) hsMetrics.TARGET_TERRITORY / (double) hsMetrics.BAIT_TERRITORY;
-        hsMetrics.PCT_USABLE_BASES_ON_BAIT   = hsMetrics.ON_BAIT_BASES   / (double) targetMetrics.PF_BASES;
-        hsMetrics.PCT_USABLE_BASES_ON_TARGET = hsMetrics.ON_TARGET_BASES / (double) targetMetrics.PF_BASES;
-        hsMetrics.HS_LIBRARY_SIZE = DuplicationMetrics.estimateLibrarySize(targetMetrics.PF_SELECTED_PAIRS, targetMetrics.PF_SELECTED_UNIQUE_PAIRS);
-
-        //need HSLIBRARY_SIZE
-        hsMetrics.HS_PENALTY_10X = calculateHsPenalty(hsMetrics.HS_LIBRARY_SIZE, targetMetrics, 10);
-        hsMetrics.HS_PENALTY_20X = calculateHsPenalty(hsMetrics.HS_LIBRARY_SIZE, targetMetrics, 20);
-	    hsMetrics.HS_PENALTY_30X = calculateHsPenalty(hsMetrics.HS_LIBRARY_SIZE, targetMetrics, 30);
-	    hsMetrics.HS_PENALTY_40X = calculateHsPenalty(hsMetrics.HS_LIBRARY_SIZE, targetMetrics, 40);
-	    hsMetrics.HS_PENALTY_50X = calculateHsPenalty(hsMetrics.HS_LIBRARY_SIZE, targetMetrics, 50);
-	    hsMetrics.HS_PENALTY_100X = calculateHsPenalty(hsMetrics.HS_LIBRARY_SIZE, targetMetrics, 100);
-        return hsMetrics;
-    }
-
-    /**
-     * Attempts to calculate the HS penalty incurred by the library in order to get 80%
-     * of target bases (in non-zero-covered targets) to a specific target coverage (e.g. 20X).
-     *
-     * @param coverageGoal the desired coverage target (e.g. 20X)
-     * @return the hs penalty - a multiplier that tells if you want, e.g. 20X coverage, then you will
-     *         need to produce this many PF aligned bases per target bases in your design!
-     */
-    private double calculateHsPenalty(final Long librarySize, final TargetMetrics targetMetrics, final int coverageGoal) {
-        if (librarySize == null) return 0;
-
-        final double meanCoverage  = targetMetrics.ON_TARGET_FROM_PAIR_BASES / (double) targetMetrics.TARGET_TERRITORY;
-        final double fold80        = targetMetrics.FOLD_80_BASE_PENALTY;
-        final long pairs           = targetMetrics.PF_SELECTED_PAIRS;
-        final long uniquePairs     = targetMetrics.PF_SELECTED_UNIQUE_PAIRS;
-        final double onTargetPct   = (double) targetMetrics.ON_TARGET_BASES / (double) targetMetrics.PF_UQ_BASES_ALIGNED;
-
-        final double uniquePairGoalMultiplier = (coverageGoal / meanCoverage) * fold80;
-        double pairMultiplier = uniquePairGoalMultiplier;
-        double increment = 1;
-        boolean goingUp = uniquePairGoalMultiplier >= 1;
-        double finalPairMultiplier = -1;
-
-        // Converge "pairMultiplier" to the number that gives us a uniquePairMultiplier equal
-        // to the coverage multiplier we desire.  If we can't get there with 1000X coverage,
-        // we're not going to get there!
-        for (int i=0; i<10000; ++i) {
-            final double uniquePairMultiplier = DuplicationMetrics.estimateRoi(librarySize, pairMultiplier, pairs, uniquePairs);
-
-            if (Math.abs(uniquePairMultiplier - uniquePairGoalMultiplier) / uniquePairGoalMultiplier <= 0.001) {
-                finalPairMultiplier  = pairMultiplier;
-                break;
-            }
-            else if ((uniquePairMultiplier > uniquePairGoalMultiplier && goingUp) ||
-                    (uniquePairMultiplier < uniquePairGoalMultiplier && !goingUp)){
-                increment /= 2;
-                goingUp = !goingUp;
-            }
-
-            pairMultiplier += (goingUp ? increment : -increment);
-        }
-
-        if (finalPairMultiplier == -1) {
-            return -1;
-        }
-        else {
-            final double uniqueFraction = (uniquePairs * uniquePairGoalMultiplier) / (pairs * finalPairMultiplier);
-            return (1 / uniqueFraction) * fold80 * (1 / onTargetPct);
-        }
-    }
-
-}
\ No newline at end of file
diff --git a/src/java/net/sf/picard/analysis/directed/HsMetrics.java b/src/java/net/sf/picard/analysis/directed/HsMetrics.java
deleted file mode 100644
index 429cb81..0000000
--- a/src/java/net/sf/picard/analysis/directed/HsMetrics.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.analysis.directed;
-
-import net.sf.picard.metrics.MultilevelMetrics;
-
-/**
- * The set of metrics captured that are specific to a hybrid selection analysis.
- *
- * @author Tim Fennell
- */
-public class HsMetrics extends MultilevelMetrics {
-    /** The name of the bait set used in the hybrid selection. */
-    public String BAIT_SET;
-
-    /** The number of bases in the reference genome used for alignment. */
-    public long GENOME_SIZE;
-
-    /** The number of bases which have one or more baits on top of them. */
-    public long BAIT_TERRITORY;
-
-    /** The unique number of target bases in the experiment where target is usually exons etc. */
-    public long TARGET_TERRITORY;
-
-    /** Target terrirtoy / bait territory.  1 == perfectly efficient, 0.5 = half of baited bases are not target. */
-    public double BAIT_DESIGN_EFFICIENCY;
-
-    /** The total number of reads in the SAM or BAM file examine. */
-    public long TOTAL_READS;
-
-    /** The number of reads that pass the vendor's filter. */
-    public long PF_READS;
-
-    /** The number of PF reads that are not marked as duplicates. */
-    public long PF_UNIQUE_READS;
-
-    /** PF reads / total reads.  The percent of reads passing filter. */
-    public double PCT_PF_READS;
-
-    /** PF Unique Reads / Total Reads. */
-    public double PCT_PF_UQ_READS;
-
-    /** The number of PF unique reads that are aligned with mapping score > 0 to the reference genome. */
-    public long PF_UQ_READS_ALIGNED;
-
-    /** PF Reads Aligned / PF Reads. */
-    public double PCT_PF_UQ_READS_ALIGNED;
-
-    /** The number of bases in the PF aligned reads that are mapped to a reference base. Accounts for clipping and gaps. */
-    public long PF_UQ_BASES_ALIGNED;
-
-    /** The number of PF aligned bases that mapped to a baited region of the genome. */
-    public long ON_BAIT_BASES;
-
-    /** The number of PF aligned bases that mapped to within a fixed interval of a baited region, but not on a baited region. */
-    public long NEAR_BAIT_BASES;
-
-    /** The number of PF aligned bases that mapped to neither on or near a bait. */
-    public long OFF_BAIT_BASES;
-
-    /** The number of PF aligned bases that mapped to a targeted region of the genome. */
-    public long ON_TARGET_BASES;
-
-    /** On+Near Bait Bases / PF Bases Aligned. */
-    public double PCT_SELECTED_BASES;
-
-    /** The percentage of aligned PF bases that mapped neither on or near a bait. */
-    public double PCT_OFF_BAIT;
-
-    /** The percentage of on+near bait bases that are on as opposed to near. */
-    public double ON_BAIT_VS_SELECTED;
-
-    /** The mean coverage of all baits in the experiment. */
-    public double MEAN_BAIT_COVERAGE;
-
-    /** The mean coverage of targets that received at least coverage depth = 2 at one base. */
-    public double MEAN_TARGET_COVERAGE;
-
-    /** The number of aligned, de-duped, on-bait bases out of the PF bases available. */
-    public double PCT_USABLE_BASES_ON_BAIT;
-
-    /** The number of aligned, de-duped, on-target bases out of the PF bases available. */
-    public double PCT_USABLE_BASES_ON_TARGET;
-
-    /** The fold by which the baited region has been amplified above genomic background. */
-    public double FOLD_ENRICHMENT;
-
-    /** The number of targets that did not reach coverage=2 over any base. */
-    public double ZERO_CVG_TARGETS_PCT;
-
-    /**
-     * The fold over-coverage necessary to raise 80% of bases in "non-zero-cvg" targets to
-     * the mean coverage level in those targets.
-     */
-    public double FOLD_80_BASE_PENALTY;
-
-    /** The percentage of ALL target bases achieving 2X or greater coverage. */
-    public double PCT_TARGET_BASES_2X;
-    /** The percentage of ALL target bases achieving 10X or greater coverage. */
-    public double PCT_TARGET_BASES_10X;
-    /** The percentage of ALL target bases achieving 20X or greater coverage. */
-    public double PCT_TARGET_BASES_20X;
-	/** The percentage of ALL target bases achieving 30X or greater coverage. */
-	public double PCT_TARGET_BASES_30X;
-	/** The percentage of ALL target bases achieving 40X or greater coverage. */
-	public double PCT_TARGET_BASES_40X;
-	/** The percentage of ALL target bases achieving 50X or greater coverage. */
-	public double PCT_TARGET_BASES_50X;
-	/** The percentage of ALL target bases achieving 100X or greater coverage. */
-	public double PCT_TARGET_BASES_100X;
-
-    /** The estimated number of unique molecules in the selected part of the library. */
-    public Long HS_LIBRARY_SIZE;
-
-    /**
-     * The "hybrid selection penalty" incurred to get 80% of target bases to 10X. This metric
-     * should be interpreted as: if I have a design with 10 megabases of target, and want to get
-     * 10X coverage I need to sequence until PF_ALIGNED_BASES = 10^7 * 10 * HS_PENALTY_10X.
-     */
-    public double HS_PENALTY_10X;
-
-    /**
-     * The "hybrid selection penalty" incurred to get 80% of target bases to 20X. This metric
-     * should be interpreted as: if I have a design with 10 megabases of target, and want to get
-     * 20X coverage I need to sequence until PF_ALIGNED_BASES = 10^7 * 20 * HS_PENALTY_20X.
-     */
-    public double HS_PENALTY_20X;
-
-	/**
-	 * The "hybrid selection penalty" incurred to get 80% of target bases to 30X. This metric
-	 * should be interpreted as: if I have a design with 10 megabases of target, and want to get
-	 * 30X coverage I need to sequence until PF_ALIGNED_BASES = 10^7 * 30 * HS_PENALTY_30X.
-	 */
-	public double HS_PENALTY_30X;
-
-	/**
-	 * The "hybrid selection penalty" incurred to get 80% of target bases to 40X. This metric
-	 * should be interpreted as: if I have a design with 10 megabases of target, and want to get
-	 * 40X coverage I need to sequence until PF_ALIGNED_BASES = 10^7 * 40 * HS_PENALTY_40X.
-	 */
-	public double HS_PENALTY_40X;
-
-	/**
-	 * The "hybrid selection penalty" incurred to get 80% of target bases to 50X. This metric
-	 * should be interpreted as: if I have a design with 10 megabases of target, and want to get
-	 * 50X coverage I need to sequence until PF_ALIGNED_BASES = 10^7 * 50 * HS_PENALTY_50X.
-	 */
-	public double HS_PENALTY_50X;
-
-	/**
-	 * The "hybrid selection penalty" incurred to get 80% of target bases to 100X. This metric
-	 * should be interpreted as: if I have a design with 10 megabases of target, and want to get
-	 * 100X coverage I need to sequence until PF_ALIGNED_BASES = 10^7 * 100 * HS_PENALTY_100X.
-	 */
-	public double HS_PENALTY_100X;
-
-    /**
-     * A measure of how undercovered <= 50% GC regions are relative to the mean. For each GC bin [0..50]
-     * we calculate a = % of target territory, and b = % of aligned reads aligned to these targets.
-     * AT DROPOUT is then abs(sum(a-b when a-b < 0)). E.g. if the value is 5% this implies that 5% of total
-     * reads that should have mapped to GC<=50% regions mapped elsewhere.
-     */
-    public double AT_DROPOUT;
-
-    /**
-     * A measure of how undercovered >= 50% GC regions are relative to the mean. For each GC bin [50..100]
-     * we calculate a = % of target territory, and b = % of aligned reads aligned to these targets.
-     * GC DROPOUT is then abs(sum(a-b when a-b < 0)). E.g. if the value is 5% this implies that 5% of total
-     * reads that should have mapped to GC>=50% regions mapped elsewhere.
-     */
-    public double GC_DROPOUT;
-}
diff --git a/src/java/net/sf/picard/analysis/directed/InsertSizeMetricsCollector.java b/src/java/net/sf/picard/analysis/directed/InsertSizeMetricsCollector.java
deleted file mode 100644
index b24d56f..0000000
--- a/src/java/net/sf/picard/analysis/directed/InsertSizeMetricsCollector.java
+++ /dev/null
@@ -1,205 +0,0 @@
-package net.sf.picard.analysis.directed;
-
-import net.sf.picard.analysis.InsertSizeMetrics;
-import net.sf.picard.analysis.MetricAccumulationLevel;
-import net.sf.picard.metrics.MultiLevelCollector;
-import net.sf.picard.metrics.PerUnitMetricCollector;
-import net.sf.picard.metrics.MetricsFile;
-import net.sf.picard.reference.ReferenceSequence;
-import net.sf.samtools.SamPairUtil;
-import net.sf.picard.util.Histogram;
-import net.sf.samtools.SAMReadGroupRecord;
-import net.sf.samtools.SAMRecord;
-
-import java.util.EnumMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * Collects InserSizeMetrics on the specified accumulationLevels using
- */
-public class InsertSizeMetricsCollector extends MultiLevelCollector<InsertSizeMetrics, Integer, InsertSizeCollectorArgs> {
-    // When generating the histogram, discard any data categories (out of FR, TANDEM, RF) that have fewer than this
-    // percentage of overall reads. (Range: 0 to 1)
-    private final double minimumPct;
-
-    // Generate mean, sd and plots by trimming the data down to MEDIAN + DEVIATIONS*MEDIAN_ABSOLUTE_DEVIATION.
-    // This is done because insert size data typically includes enough anomolous values from chimeras and other
-    // artifacts to make the mean and sd grossly misleading regarding the real distribution.
-    private final double deviations;
-
-    //Explicitly sets the histogram width, overriding automatic truncation of histogram tail.
-    //Also, when calculating mean and stdev, only bins <= HISTOGRAM_WIDTH will be included.
-    private Integer histogramWidth;
-
-    public InsertSizeMetricsCollector(final Set<MetricAccumulationLevel> accumulationLevels, final List<SAMReadGroupRecord> samRgRecords,
-                                      final double minimumPct, final Integer histogramWidth, final double deviations) {
-        this.minimumPct = minimumPct;
-        this.histogramWidth = histogramWidth;
-        this.deviations = deviations;
-        setup(accumulationLevels, samRgRecords);
-    }
-
-    // We will pass insertSize and PairOrientation with the DefaultPerRecordCollectorArgs passed to the record collectors
-    // This method is called once Per samRecord
-    @Override
-    protected InsertSizeCollectorArgs makeArg(SAMRecord samRecord, ReferenceSequence refSeq) {
-        final int insertSize = Math.abs(samRecord.getInferredInsertSize());
-        final SamPairUtil.PairOrientation orientation = SamPairUtil.getPairOrientation(samRecord);
-
-        return new InsertSizeCollectorArgs(insertSize, orientation);
-    }
-
-    /** Make an InsertSizeCollector with the given arguments */
-    @Override
-    protected PerUnitMetricCollector<InsertSizeMetrics, Integer, InsertSizeCollectorArgs> makeChildCollector(final String sample, final String library, final String readGroup) {
-        return new PerUnitInsertSizeMetricsCollector(sample, library, readGroup);
-    }
-
-    @Override
-    public void acceptRecord(final SAMRecord record, final ReferenceSequence refSeq) {
-        if (!record.getReadPairedFlag() ||
-                record.getReadUnmappedFlag() ||
-                record.getMateUnmappedFlag() ||
-                record.getFirstOfPairFlag() ||
-                record.isSecondaryOrSupplementary() ||
-                record.getDuplicateReadFlag() ||
-                record.getInferredInsertSize() == 0) {
-            return;
-        }
-
-        super.acceptRecord(record, refSeq);
-    }
-
-    /** A Collector for individual InsertSizeMetrics for a given SAMPLE or SAMPLE/LIBRARY or SAMPLE/LIBRARY/READ_GROUP (depending on aggregation levels) */
-    public class PerUnitInsertSizeMetricsCollector implements PerUnitMetricCollector<InsertSizeMetrics, Integer, InsertSizeCollectorArgs> {
-        final EnumMap<SamPairUtil.PairOrientation, Histogram<Integer>> histograms = new EnumMap<SamPairUtil.PairOrientation, Histogram<Integer>>(SamPairUtil.PairOrientation.class);
-        final String sample;
-        final String library;
-        final String readGroup;
-        private double totalInserts = 0;
-
-        public PerUnitInsertSizeMetricsCollector(final String sample, final String library, final String readGroup) {
-            this.sample = sample;
-            this.library = library;
-            this.readGroup = readGroup;
-            String prefix = null;
-            if (this.readGroup != null) {
-                prefix = this.readGroup + ".";
-            }
-            else if (this.library != null) {
-                prefix = this.library + ".";
-            }
-            else if (this.sample != null) {
-                prefix = this.sample + ".";
-            }
-            else {
-                prefix = "All_Reads.";
-            }
-            histograms.put(SamPairUtil.PairOrientation.FR,     new Histogram<Integer>("insert_size", prefix + "fr_count"));
-            histograms.put(SamPairUtil.PairOrientation.TANDEM, new Histogram<Integer>("insert_size", prefix + "tandem_count"));
-            histograms.put(SamPairUtil.PairOrientation.RF,     new Histogram<Integer>("insert_size", prefix + "rf_count"));
-        }
-
-        public void acceptRecord(final InsertSizeCollectorArgs args) {
-            histograms.get(args.getPairOrientation()).increment(args.getInsertSize());
-        }
-
-        public void finish() { }
-
-        public double getTotalInserts() {
-            return totalInserts;
-        }
-
-        public void addMetricsToFile(final MetricsFile<InsertSizeMetrics,Integer> file) {
-            for (final Histogram<Integer> h : this.histograms.values()) totalInserts += h.getCount();
-
-            for(final Map.Entry<SamPairUtil.PairOrientation, Histogram<Integer>> entry : histograms.entrySet()) {
-                final SamPairUtil.PairOrientation pairOrientation = entry.getKey();
-                final Histogram<Integer> histogram = entry.getValue();
-                final double total = histogram.getCount();
-
-                // Only include a category if it has a sufficient percentage of the data in it
-                if( total > totalInserts * minimumPct ) {
-                    final InsertSizeMetrics metrics = new InsertSizeMetrics();
-                    metrics.SAMPLE             = this.sample;
-                    metrics.LIBRARY            = this.library;
-                    metrics.READ_GROUP         = this.readGroup;
-                    metrics.PAIR_ORIENTATION   = pairOrientation;
-                    metrics.READ_PAIRS         = (long) total;
-                    metrics.MAX_INSERT_SIZE    = (int) histogram.getMax();
-                    metrics.MIN_INSERT_SIZE    = (int) histogram.getMin();
-                    metrics.MEDIAN_INSERT_SIZE = histogram.getMedian();
-                    metrics.MEDIAN_ABSOLUTE_DEVIATION = histogram.getMedianAbsoluteDeviation();
-
-                    final double median  = histogram.getMedian();
-                    double covered = 0;
-                    double low  = median;
-                    double high = median;
-
-                    while (low >= histogram.getMin() || high <= histogram.getMax()) {
-                        final Histogram<Integer>.Bin lowBin = histogram.get((int) low);
-                        if (lowBin != null) covered += lowBin.getValue();
-
-                        if (low != high) {
-                            final Histogram<Integer>.Bin highBin = histogram.get((int) high);
-                            if (highBin != null) covered += highBin.getValue();
-                        }
-
-                        final double percentCovered = covered / total;
-                        final int distance = (int) (high - low) + 1;
-                        if (percentCovered >= 0.1  && metrics.WIDTH_OF_10_PERCENT == 0) metrics.WIDTH_OF_10_PERCENT = distance;
-                        if (percentCovered >= 0.2  && metrics.WIDTH_OF_20_PERCENT == 0) metrics.WIDTH_OF_20_PERCENT = distance;
-                        if (percentCovered >= 0.3  && metrics.WIDTH_OF_30_PERCENT == 0) metrics.WIDTH_OF_30_PERCENT = distance;
-                        if (percentCovered >= 0.4  && metrics.WIDTH_OF_40_PERCENT == 0) metrics.WIDTH_OF_40_PERCENT = distance;
-                        if (percentCovered >= 0.5  && metrics.WIDTH_OF_50_PERCENT == 0) metrics.WIDTH_OF_50_PERCENT = distance;
-                        if (percentCovered >= 0.6  && metrics.WIDTH_OF_60_PERCENT == 0) metrics.WIDTH_OF_60_PERCENT = distance;
-                        if (percentCovered >= 0.7  && metrics.WIDTH_OF_70_PERCENT == 0) metrics.WIDTH_OF_70_PERCENT = distance;
-                        if (percentCovered >= 0.8  && metrics.WIDTH_OF_80_PERCENT == 0) metrics.WIDTH_OF_80_PERCENT = distance;
-                        if (percentCovered >= 0.9  && metrics.WIDTH_OF_90_PERCENT == 0) metrics.WIDTH_OF_90_PERCENT = distance;
-                        if (percentCovered >= 0.99 && metrics.WIDTH_OF_99_PERCENT == 0) metrics.WIDTH_OF_99_PERCENT = distance;
-
-                        --low;
-                        ++high;
-                    }
-
-                    // Trim the histogram down to get rid of outliers that would make the chart useless.
-                    final Histogram<Integer> trimmedHisto = histogram; //alias it
-                    if (histogramWidth == null) {
-                        histogramWidth = (int) (metrics.MEDIAN_INSERT_SIZE + (deviations * metrics.MEDIAN_ABSOLUTE_DEVIATION));
-                    }
-
-                    trimmedHisto.trimByWidth(histogramWidth);
-
-                    metrics.MEAN_INSERT_SIZE = trimmedHisto.getMean();
-                    metrics.STANDARD_DEVIATION = trimmedHisto.getStandardDeviation();
-
-                    file.addHistogram(trimmedHisto);
-                    file.addMetric(metrics);
-                }
-            }
-        }
-    }
-}
-
-// Arguments that need to be calculated once per SAMRecord that are then passed to each PerUnitMetricCollector
-// for the given record
-class InsertSizeCollectorArgs {
-    private final int insertSize;
-    private final SamPairUtil.PairOrientation po;
-
-
-    public int getInsertSize() {
-        return insertSize;
-    }
-
-    public SamPairUtil.PairOrientation getPairOrientation() {
-        return po;
-    }
-
-    public InsertSizeCollectorArgs(final int insertSize, final SamPairUtil.PairOrientation po) {
-        this.insertSize = insertSize;
-        this.po = po;
-    }
-}
\ No newline at end of file
diff --git a/src/java/net/sf/picard/analysis/directed/RnaSeqMetricsCollector.java b/src/java/net/sf/picard/analysis/directed/RnaSeqMetricsCollector.java
deleted file mode 100644
index 87ed62b..0000000
--- a/src/java/net/sf/picard/analysis/directed/RnaSeqMetricsCollector.java
+++ /dev/null
@@ -1,391 +0,0 @@
-package net.sf.picard.analysis.directed;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.analysis.MetricAccumulationLevel;
-import net.sf.picard.analysis.RnaSeqMetrics;
-import net.sf.picard.annotation.Gene;
-import net.sf.picard.annotation.LocusFunction;
-import net.sf.picard.metrics.PerUnitMetricCollector;
-import net.sf.picard.metrics.SAMRecordMultiLevelCollector;
-import net.sf.picard.metrics.MetricsFile;
-import net.sf.picard.util.*;
-import net.sf.samtools.*;
-import net.sf.samtools.util.CoordMath;
-import net.sf.samtools.util.SequenceUtil;
-
-import java.io.File;
-import java.util.*;
-
-public class RnaSeqMetricsCollector extends SAMRecordMultiLevelCollector<RnaSeqMetrics, Integer> {
-    public enum StrandSpecificity {NONE, FIRST_READ_TRANSCRIPTION_STRAND, SECOND_READ_TRANSCRIPTION_STRAND}
-
-    private final int minimumLength;
-    private final StrandSpecificity strandSpecificity;
-    private final double rrnaFragmentPercentage;
-    private final Long ribosomalInitialValue;
-
-    final private Set<Integer> ignoredSequenceIndices;
-
-    private final OverlapDetector<Gene> geneOverlapDetector;
-    private final OverlapDetector<Interval> ribosomalSequenceOverlapDetector;
-
-    public RnaSeqMetricsCollector(final Set<MetricAccumulationLevel> accumulationLevels, final List<SAMReadGroupRecord> samRgRecords,
-                                  final Long ribosomalBasesInitialValue, OverlapDetector<Gene> geneOverlapDetector, OverlapDetector<Interval> ribosomalSequenceOverlapDetector,
-                                  final HashSet<Integer> ignoredSequenceIndices, final int minimumLength, final StrandSpecificity strandSpecificity,
-                                  final double rrnaFragmentPercentage) {
-        this.ribosomalInitialValue  = ribosomalBasesInitialValue;
-        this.ignoredSequenceIndices = ignoredSequenceIndices;
-        this.geneOverlapDetector    = geneOverlapDetector;
-        this.ribosomalSequenceOverlapDetector = ribosomalSequenceOverlapDetector;
-        this.minimumLength          = minimumLength;
-        this.strandSpecificity      = strandSpecificity;
-        this.rrnaFragmentPercentage = rrnaFragmentPercentage;
-        setup(accumulationLevels, samRgRecords);
-    }
-
-    @Override
-    protected PerUnitMetricCollector<RnaSeqMetrics, Integer, SAMRecord> makeChildCollector(final String sample, final String library, final String readGroup) {
-        return new PerUnitRnaSeqMetricsCollector(sample, library, readGroup, ribosomalInitialValue);
-    }
-
-    public static OverlapDetector<Interval> makeOverlapDetector(final File samFile, final SAMFileHeader header, final File ribosomalIntervalsFile) {
-
-        OverlapDetector<Interval> ribosomalSequenceOverlapDetector = new OverlapDetector<Interval>(0, 0);
-        if (ribosomalIntervalsFile != null) {
-
-            final IntervalList ribosomalIntervals = IntervalList.fromFile(ribosomalIntervalsFile);
-            try {
-                SequenceUtil.assertSequenceDictionariesEqual(header.getSequenceDictionary(), ribosomalIntervals.getHeader().getSequenceDictionary());
-            } catch (SequenceUtil.SequenceListsDifferException e) {
-                throw new PicardException("Sequence dictionaries differ in " + samFile.getAbsolutePath() + " and " + ribosomalIntervalsFile.getAbsolutePath(),
-                        e);
-            }
-            ribosomalIntervals.unique();
-            final List<Interval> intervals = ribosomalIntervals.getIntervals();
-            ribosomalSequenceOverlapDetector.addAll(intervals, intervals);
-        }
-        return ribosomalSequenceOverlapDetector;
-    }
-
-    public static HashSet<Integer> makeIgnoredSequenceIndicesSet(final SAMFileHeader header, final Set<String> ignoredSequence) {
-        final HashSet<Integer> ignoredSequenceIndices = new HashSet<Integer>();
-        for (final String sequenceName: ignoredSequence) {
-            final SAMSequenceRecord sequenceRecord = header.getSequence(sequenceName);
-            if (sequenceRecord == null) {
-                throw new PicardException("Unrecognized sequence " + sequenceName + " passed as argument to IGNORE_SEQUENCE");
-            }
-            ignoredSequenceIndices.add(sequenceRecord.getSequenceIndex());
-        }
-        return ignoredSequenceIndices;
-    }
-
-    private class PerUnitRnaSeqMetricsCollector implements PerUnitMetricCollector<RnaSeqMetrics, Integer, SAMRecord> {
-
-        final RnaSeqMetrics metrics = new RnaSeqMetrics();
-        private final Map<Gene.Transcript, int[]> coverageByTranscript = new HashMap<Gene.Transcript, int[]>();
-
-        public PerUnitRnaSeqMetricsCollector(final String sample,
-                                             final String library,
-                                             final String readGroup,
-                                             final Long ribosomalBasesInitialValue) {
-            this.metrics.SAMPLE = sample;
-            this.metrics.LIBRARY = library;
-            this.metrics.READ_GROUP = readGroup;
-            this.metrics.RIBOSOMAL_BASES = ribosomalBasesInitialValue;
-        }
-
-        public void acceptRecord(SAMRecord rec) {
-            // Filter out some reads, and collect the total number of PF bases
-            if (rec.getReadFailsVendorQualityCheckFlag() || rec.isSecondaryOrSupplementary()) return;
-
-            this.metrics.PF_BASES += rec.getReadLength();
-            if (rec.getReadUnmappedFlag()) return;
-
-            if (ignoredSequenceIndices.contains(rec.getReferenceIndex())) {
-                ++this.metrics.IGNORED_READS;
-                return;
-            }
-
-            // Grab information about the alignment and overlapping genes etc.
-            final Interval readInterval = new Interval(rec.getReferenceName(), rec.getAlignmentStart(), rec.getAlignmentEnd());
-
-            // Attempt to get an interval for the entire fragment (if paired read) else just use the read itself.
-            // If paired read is chimeric or has one end unmapped, don't create an interval.
-            final Interval fragmentInterval;
-            if (!rec.getReadPairedFlag()) {
-                fragmentInterval = readInterval;
-            } else if (rec.getMateUnmappedFlag() || rec.getReferenceIndex() != rec.getMateReferenceIndex()) {
-                fragmentInterval = null;
-            } else {
-                final int fragmentStart = Math.min(rec.getAlignmentStart(), rec.getMateAlignmentStart());
-                final int fragmentEnd = CoordMath.getEnd(fragmentStart, Math.abs(rec.getInferredInsertSize()));
-                fragmentInterval = new Interval(rec.getReferenceName(), fragmentStart, fragmentEnd);
-            }
-            if (fragmentInterval != null) {
-                final Collection<Interval> overlappingRibosomalIntervals = ribosomalSequenceOverlapDetector.getOverlaps(fragmentInterval);
-                int intersectionLength = 0;
-                for (final Interval overlappingInterval : overlappingRibosomalIntervals) {
-                    final int thisIntersectionLength = overlappingInterval.getIntersectionLength(fragmentInterval);
-                    intersectionLength = Math.max(intersectionLength, thisIntersectionLength);
-                }
-                if (intersectionLength/(double)fragmentInterval.length() >= rrnaFragmentPercentage) {
-                    // Assume entire read is ribosomal.
-                    // TODO: Should count reads, not bases?
-                    metrics.RIBOSOMAL_BASES += rec.getReadLength();
-                    int numAlignedBases = 0;
-                    for (final AlignmentBlock alignmentBlock : rec.getAlignmentBlocks()) {
-                        numAlignedBases += alignmentBlock.getLength();
-                    }
-                    metrics.PF_ALIGNED_BASES += numAlignedBases;
-                    return;
-                }
-            }
-
-            final Collection<Gene> overlappingGenes                  = geneOverlapDetector.getOverlaps(readInterval);
-            final List<AlignmentBlock> alignmentBlocks               = rec.getAlignmentBlocks();
-            boolean overlapsExon = false;
-
-            for (final AlignmentBlock alignmentBlock : alignmentBlocks) {
-                // Get functional class for each position in the alignment block.
-                final LocusFunction[] locusFunctions = new LocusFunction[alignmentBlock.getLength()];
-
-                // By default, if base does not overlap with rRNA or gene, it is intergenic.
-                Arrays.fill(locusFunctions, 0, locusFunctions.length, LocusFunction.INTERGENIC);
-
-                for (final Gene gene : overlappingGenes) {
-                    for (final Gene.Transcript transcript : gene) {
-                        transcript.assignLocusFunctionForRange(alignmentBlock.getReferenceStart(), locusFunctions);
-
-                        // Add coverage to our coverage counter for this transcript
-                        int[] coverage = this.coverageByTranscript.get(transcript);
-                        if (coverage == null) {
-                            coverage = new int[transcript.length()];
-                            this.coverageByTranscript.put(transcript, coverage);
-                        }
-                        transcript.addCoverageCounts(alignmentBlock.getReferenceStart(),
-                                CoordMath.getEnd(alignmentBlock.getReferenceStart(), alignmentBlock.getLength()),
-                                coverage);
-                    }
-                }
-
-                // Tally the function of each base in the alignment block.
-                for (final LocusFunction locusFunction : locusFunctions) {
-                    ++metrics.PF_ALIGNED_BASES;
-                    switch (locusFunction) {
-                        case INTERGENIC:
-                            ++metrics.INTERGENIC_BASES;
-                            break;
-                        case INTRONIC:
-                            ++metrics.INTRONIC_BASES;
-                            break;
-                        case UTR:
-                            ++metrics.UTR_BASES;
-                            overlapsExon = true;
-                            break;
-                        case CODING:
-                            ++metrics.CODING_BASES;
-                            overlapsExon = true;
-                            break;
-                        case RIBOSOMAL:
-                            ++metrics.RIBOSOMAL_BASES;
-                            break;
-                    }
-                }
-            }
-
-            // Strand-specificity is tallied on read basis rather than base at a time.  A read that aligns to more than one
-            // gene is not counted.
-            if (overlapsExon && strandSpecificity != StrandSpecificity.NONE && overlappingGenes.size() == 1) {
-                final boolean negativeTranscriptionStrand = overlappingGenes.iterator().next().isNegativeStrand();
-                final boolean negativeReadStrand = rec.getReadNegativeStrandFlag();
-                final boolean readAndTranscriptStrandsAgree = negativeReadStrand == negativeTranscriptionStrand;
-                final boolean readOneOrUnpaired = !rec.getReadPairedFlag() || rec.getFirstOfPairFlag();
-                final boolean firstReadExpectedToAgree = strandSpecificity == StrandSpecificity.FIRST_READ_TRANSCRIPTION_STRAND;
-                final boolean thisReadExpectedToAgree = readOneOrUnpaired == firstReadExpectedToAgree;
-                // If the read strand is the same as the strand of the transcript, and the end is the one that is supposed to agree,
-                // then the strand specificity for this read is correct.
-                // -- OR --
-                // If the read strand is not the same as the strand of the transcript, and the end is not the one that is supposed
-                // to agree, then the strand specificity for this read is correct.
-                if (readAndTranscriptStrandsAgree == thisReadExpectedToAgree) {
-                    ++metrics.CORRECT_STRAND_READS;
-                } else {
-                    ++metrics.INCORRECT_STRAND_READS;
-                }
-            }
-
-        }
-
-        public void finish() {
-            if (metrics.PF_ALIGNED_BASES > 0) {
-                if (metrics.RIBOSOMAL_BASES != null) {
-                    metrics.PCT_RIBOSOMAL_BASES =  metrics.RIBOSOMAL_BASES  / (double) metrics.PF_ALIGNED_BASES;
-                }
-                metrics.PCT_CODING_BASES =     metrics.CODING_BASES     / (double) metrics.PF_ALIGNED_BASES;
-                metrics.PCT_UTR_BASES =        metrics.UTR_BASES        / (double) metrics.PF_ALIGNED_BASES;
-                metrics.PCT_INTRONIC_BASES =   metrics.INTRONIC_BASES   / (double) metrics.PF_ALIGNED_BASES;
-                metrics.PCT_INTERGENIC_BASES = metrics.INTERGENIC_BASES / (double) metrics.PF_ALIGNED_BASES;
-                metrics.PCT_MRNA_BASES =       metrics.PCT_CODING_BASES + metrics.PCT_UTR_BASES;
-                metrics.PCT_USABLE_BASES =     (metrics.CODING_BASES + metrics.UTR_BASES) / (double) metrics.PF_BASES;
-            }
-
-            if (metrics.CORRECT_STRAND_READS > 0 || metrics.INCORRECT_STRAND_READS > 0) {
-                metrics.PCT_CORRECT_STRAND_READS = metrics.CORRECT_STRAND_READS/(double)(metrics.CORRECT_STRAND_READS + metrics.INCORRECT_STRAND_READS);
-            }
-        }
-
-        @Override
-        public void addMetricsToFile(final MetricsFile<RnaSeqMetrics, Integer> file) {
-            // Compute metrics based on coverage of top 1000 genes
-            final Histogram<Integer> normalizedCovByPos = computeCoverageMetrics();
-            file.addMetric(metrics);
-            file.addHistogram(normalizedCovByPos);
-        }
-
-        /**
-         * Computes a set of coverage based metrics on the mostly highly expressed genes' most highly
-         * expressed transcripts.
-         */
-        private Histogram<Integer> computeCoverageMetrics() {
-            final Histogram<Double> cvs = new Histogram<Double>();
-            final Histogram<Double> fivePrimeSkews = new Histogram<Double>();
-            final Histogram<Double> threePrimeSkews = new Histogram<Double>();
-            final Histogram<Double> gapBasesPerKb = new Histogram<Double>();
-            final Histogram<Double> fiveToThreeSkews = new Histogram<Double>();
-            String prefix = null;
-            if (this.metrics.READ_GROUP != null) {
-                prefix = this.metrics.READ_GROUP + ".";
-            }
-            else if (this.metrics.LIBRARY != null) {
-                prefix = this.metrics.LIBRARY + ".";
-            }
-            else if (this.metrics.SAMPLE != null) {
-                prefix = this.metrics.SAMPLE + ".";
-            }
-            else {
-                prefix = "All_Reads.";
-            }
-
-            final Histogram<Integer> normalizedCoverageByNormalizedPosition = new Histogram<Integer>("normalized_position", prefix + "normalized_coverage");
-
-            final Map<Gene.Transcript,int[]> transcripts = pickTranscripts(coverageByTranscript);
-            final double transcriptCount = transcripts.size();
-
-            for (final Map.Entry<Gene.Transcript,int[]> entry : transcripts.entrySet()) {
-                final Gene.Transcript tx = entry.getKey();
-                final double[] coverage;
-                {
-                    final double[] tmp = MathUtil.promote(entry.getValue());
-                    if (tx.getGene().isPositiveStrand())  coverage = tmp;
-                    else coverage = copyAndReverse(tmp);
-                }
-                final double mean = MathUtil.mean(coverage, 0, coverage.length);
-
-                // Calculate the CV of coverage for this tx
-                final double stdev = MathUtil.stddev(coverage, 0, coverage.length, mean);
-                final double cv    = stdev / mean;
-                cvs.increment(cv);
-
-                // Calculate the 5' and 3' biases
-                {
-                    final int PRIME_BASES = 100;
-                    final double fivePrimeCoverage = MathUtil.mean(coverage, 0, PRIME_BASES);
-                    final double threePrimeCoverage = MathUtil.mean(coverage, coverage.length - PRIME_BASES, coverage.length);
-
-                    fivePrimeSkews.increment(fivePrimeCoverage / mean);
-                    threePrimeSkews.increment(threePrimeCoverage / mean);
-                    fiveToThreeSkews.increment(fivePrimeCoverage / threePrimeCoverage);
-                }
-
-                // Calculate normalized coverage vs. normalized position
-                {
-                    final int lastIndex = coverage.length - 1;
-
-                    for (int percent=0; percent<=100; ++percent) {
-                        final double p = percent / 100d;
-                        final int start  = (int) Math.max(0,         lastIndex * (p-0.005));
-                        final int end    = (int) Math.min(lastIndex, lastIndex * (p+0.005));
-                        final int length = end - start + 1;
-
-                        double sum = 0;
-                        for (int i=start; i<=end; ++i) sum += coverage[i];
-                        final double normalized = (sum / length) / mean;
-                        normalizedCoverageByNormalizedPosition.increment(percent, normalized / transcriptCount);
-                    }
-                }
-
-                // Calculate gap bases per kilobase
-                //            {
-                //                int gapBases = 0;
-                //                final double minCoverage = mean * 0.1;
-                //                for (int i=0; i<coverage.length; ++i) {
-                //                    if (coverage[i] < minCoverage) ++gapBases;
-                //                }
-                //                gapBasesPerKb.increment(gapBases / (coverage.length / 1000d));
-                //            }
-            }
-
-            this.metrics.MEDIAN_CV_COVERAGE = cvs.getMedian();
-            this.metrics.MEDIAN_5PRIME_BIAS = fivePrimeSkews.getMedian();
-            this.metrics.MEDIAN_3PRIME_BIAS = threePrimeSkews.getMedian();
-            this.metrics.MEDIAN_5PRIME_TO_3PRIME_BIAS = fiveToThreeSkews.getMedian();
-
-            return normalizedCoverageByNormalizedPosition;
-        }
-
-        /** Little method to copy an array and reverse it at the same time. */
-        private double[] copyAndReverse(final double[] in) {
-            final double[] out = new double[in.length];
-            for (int i=0, j=in.length-1; i<in.length; ++i, --j) out[j] = in[i];
-            return out;
-        }
-
-        /** Picks the set of transcripts on which the coverage metrics are to be calculated. */
-        public Map<Gene.Transcript, int[]> pickTranscripts(final Map<Gene.Transcript, int[]> transcriptCoverage) {
-            final Map<Gene.Transcript, Double> bestPerGene = new HashMap<Gene.Transcript, Double>();
-
-            // Make a map of the best transcript per gene to it's mean coverage
-            for (final Gene gene : geneOverlapDetector.getAll()) {
-                Gene.Transcript best = null;
-                double bestMean = 0;
-
-                for (final Gene.Transcript tx : gene) {
-                    final int[] cov = transcriptCoverage.get(tx);
-
-                    if (tx.length() < Math.max(minimumLength, 100)) continue;
-                    if (cov == null) continue;
-
-                    final double mean = MathUtil.mean(MathUtil.promote(cov), 0, cov.length);
-                    if (mean < 1d) continue;
-                    if (best == null || mean > bestMean) {
-                        best = tx;
-                        bestMean = mean;
-                    }
-                }
-
-                if (best != null) bestPerGene.put(best, bestMean);
-            }
-
-            // Find the 1000th best coverage value
-            final double[] coverages = new double[bestPerGene.size()];
-            int i=0;
-            for (final double d : bestPerGene.values()) coverages[i++] = d;
-            Arrays.sort(coverages);
-            final double min = coverages.length == 0 ? 0 : coverages[Math.max(0, coverages.length - 1001)];
-
-            // And finally build the output map
-            final Map<Gene.Transcript, int[]> retval = new HashMap<Gene.Transcript, int[]>();
-            for (final Map.Entry<Gene.Transcript,Double> entry : bestPerGene.entrySet()) {
-                final Gene.Transcript tx = entry.getKey();
-                final double coverage = entry.getValue();
-
-                if (coverage >= min) {
-                    retval.put(tx, transcriptCoverage.get(tx));
-                }
-            }
-
-            return retval;
-        }
-
-    }
-}
diff --git a/src/java/net/sf/picard/analysis/directed/TargetMetricsCollector.java b/src/java/net/sf/picard/analysis/directed/TargetMetricsCollector.java
deleted file mode 100644
index 2084639..0000000
--- a/src/java/net/sf/picard/analysis/directed/TargetMetricsCollector.java
+++ /dev/null
@@ -1,748 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.analysis.directed;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.analysis.MetricAccumulationLevel;
-import net.sf.picard.metrics.*;
-import net.sf.picard.reference.ReferenceSequence;
-import net.sf.picard.reference.ReferenceSequenceFile;
-import net.sf.picard.util.*;
-import net.sf.samtools.*;
-import net.sf.samtools.util.*;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.lang.reflect.Field;
-import java.util.*;
-
-/**
- * TargetMetrics, are metrics to measure how well we hit specific targets (or baits) when using a targeted sequencing process like hybrid selection
- * or Targeted PCR Techniques (TSCA).  TargetMetrics at the moment are the metrics that are shared by both HybridSelection and TargetedPcrMetrics.
- *
- * TargetMetricsCollector collects for a run these common metrics and can be sub-classed to provide metrics more specific to a targeted sequencing
- * run.
- *
- * Note: Probe is the name I've used to indicate the bait set or amplicon set (e.g. the individual technological units used to target specific
- * sites).
- *
- * @author Jonathan Burke
- */
-public abstract class TargetMetricsCollector<METRIC_TYPE extends MultilevelMetrics> extends SAMRecordMultiLevelCollector<METRIC_TYPE, Integer> {
-
-    // What is considered "near" to the bait
-    private static final int NEAR_PROBE_DISTANCE = 250;
-
-    //If perTargetCoverage != null then coverage is computed for each specified target and output to this file
-    private final File perTargetCoverage;
-
-    //The intervals covered by the targeting mechanism (baits in Hybrid Selection, amplicons in TSCA) of this sequencing run
-    private final File probeIntervals;
-
-    //The name of the set of probes used
-    private final String probeSetName;
-
-    private static final Log log = Log.getInstance(TargetMetricsCollector.class);
-
-    //The interval list indicating the regions targeted by all probes
-    private final IntervalList allProbes;
-
-    //The interval list of the the regions we intend to cover
-    private final IntervalList allTargets;
-
-    // Overlap detector for finding overlaps between reads and the experimental targets
-    private final OverlapDetector<Interval> targetDetector;
-
-    // Overlap detector for finding overlaps between the reads and the baits (and the near bait space)
-    private final OverlapDetector<Interval> probeDetector;
-
-    private Map<Interval,Double> intervalToGc = null;
-
-    //The number of bases within all unique intervals in allProbes
-    private final long probeTerritory;
-
-    //The number of bases within all unique intervals found in allTargets
-    private final long targetTerritory;
-
-    private final long genomeSize;
-
-    //A map of coverage by target in which coverage is reset every read, this is done
-    //so that we can calculate overlap for a read once and the resulting coverage is
-    //than added to the cumulative coverage of every collector that collects
-    //information on that read
-    private Map<Interval, Coverage> coverageByTargetForRead;
-    private Coverage [] cov;
-
-    //Converts a targetMetric into a more specific metric of METRIC_TYPE
-    public abstract METRIC_TYPE convertMetric(final TargetMetrics targetMetrics);
-
-    /**
-     * Since the targeted metrics (HsMetrics, TargetedPcrMetrics,...) share many of the same values as TargetMetrics, this copy will copy all public attributes in targetMetrics
-     * to the outputMetrics' attributes of the same name.  If no matching attribute exists in the outputMetrics or the attribute of the target metrics class also is found
-     * in targetKeys then it's value is not copied.  Further more, targetKeys and outputKeys are attribute name arrays synchronized by the index.
-     * For each target key, targetMetrics.<targetKeys[i]> is assigned to outputMetrics.<outputKeys[i]>
-     *
-     * @param targetMetrics A metric with values to be copied
-     * @param outputMetrics A metrics intended to receive values from targetMetrics
-     * @param targetKeys Specific names of attributes of targetMetrics to copy to outputMetrics, each key has a corresponding one in outputKeys
-     * @param outputKeys Specific names of the destination attributes of outputMetrics that will be filled with values of outputMetrics, each key has a corresponding one in targetKeys
-     * @param <MT> The type of metric of outputMetrics
-     */
-    protected static <MT extends MetricBase> void reflectiveCopy(final TargetMetrics targetMetrics, final MT outputMetrics, final String [] targetKeys, final String [] outputKeys) {
-
-        if(targetKeys == null || outputKeys == null) {
-            if(outputKeys != null) {
-                throw new PicardException("Target keys is null but output keys == " + StringUtil.join(",", outputKeys));
-            }
-
-            if(targetKeys != null) {
-                throw new PicardException("Output keys is null but target keys == " + StringUtil.join(",", targetKeys));
-            }
-        } else {
-            if(targetKeys.length != outputKeys.length) {
-                throw new PicardException("Target keys and output keys do not have the same length: " +
-                        "targetKeys == (" + StringUtil.join(",", targetKeys) + ") " +
-                        "outputKeys == (" + StringUtil.join(",", outputKeys) + ")");
-            }
-        }
-
-        final Class mtClass = outputMetrics.getClass();
-        final Set<Field> targetSet = CollectionUtil.makeSet(TargetMetrics.class.getFields());
-
-        for(final String targetKey : targetKeys) {
-            if(targetSet.contains(targetKey)) {
-                targetSet.remove(targetKey);
-            }
-        }
-
-        final Set<String> outputSet = new HashSet<String>();
-        for(final Field field : outputMetrics.getClass().getFields()) {
-            outputSet.add(field.getName());
-        }
-
-        for(final Field field : targetSet) {
-            if(outputSet.contains(field.getName())) {
-                try {
-                    final Field outputField = mtClass.getField(field.getName());
-                    outputField.set(outputMetrics, field.get(targetMetrics));
-                } catch (Exception e) {
-                    throw new PicardException("Exception while copying targetMetrics to " + outputMetrics.getClass().getName(), e);
-                }
-            }
-        }
-
-        for(int i = 0; i < targetKeys.length; i++) {
-            try {
-                Field targetMetricField = TargetMetrics.class.getField(targetKeys[i]);
-                Field outputMetricField = mtClass.getField(outputKeys[i]);
-                outputMetricField.set(outputMetrics, targetMetricField.get(targetMetrics));
-            } catch(final Exception exc) {
-                throw new PicardException("Exception while copying TargetMetrics." + targetKeys[i] + " to " + mtClass.getName() + "." + outputKeys[i], exc);
-            }
-        }
-    }
-
-    public TargetMetricsCollector(final Set<MetricAccumulationLevel> accumulationLevels, final List<SAMReadGroupRecord> samRgRecords, final ReferenceSequenceFile refFile,
-                                  final File perTargetCoverage, final File targetIntervals, final File probeIntervals, final String probeSetName) {
-        this.perTargetCoverage = perTargetCoverage;
-        this.probeIntervals    = probeIntervals;
-
-        if(probeSetName == null) {
-            final String baitFileName = probeIntervals.getName();
-            final int tmp = baitFileName.indexOf(".");
-            if (tmp > 0) {
-                this.probeSetName = baitFileName.substring(0, tmp);
-            } else {
-                this.probeSetName = null;
-            }
-        } else {
-            this.probeSetName = probeSetName;
-        }
-
-        this.allProbes  = IntervalList.fromFile(probeIntervals);
-        this.allTargets = IntervalList.fromFile(targetIntervals);
-
-        final List<Interval> uniqueBaits = this.allProbes.getUniqueIntervals();
-        this.probeDetector = new OverlapDetector<Interval>(-NEAR_PROBE_DISTANCE, 0);
-        this.probeDetector.addAll(uniqueBaits, uniqueBaits);
-        this.probeTerritory = Interval.countBases(uniqueBaits);
-
-        final List<Interval> uniqueTargets = this.allTargets.getUniqueIntervals();
-        targetDetector = new OverlapDetector<Interval>(0,0);
-        this.targetDetector.addAll(uniqueTargets, uniqueTargets);
-        this.targetTerritory = Interval.countBases(uniqueTargets);
-
-        // Populate the coverage by target map
-        int i = 0;
-        cov = new Coverage[uniqueTargets.size()];
-        this.coverageByTargetForRead = new LinkedHashMap<Interval, Coverage>(uniqueTargets.size() * 2, 0.5f);
-        for (final Interval target : uniqueTargets) {
-            final Coverage coverage = new Coverage(target, 0);
-            this.coverageByTargetForRead.put(target, coverage);
-            cov[i++] = coverage;
-        }
-
-        long genomeSizeAccumulator = 0;
-        for (final SAMSequenceRecord seq : this.allProbes.getHeader().getSequenceDictionary().getSequences()) {
-            genomeSizeAccumulator += seq.getSequenceLength();
-        }
-        this.genomeSize = genomeSizeAccumulator;
-
-
-        if (refFile != null) {
-            intervalToGc = new HashMap<Interval,Double>();
-            for (final Interval target : uniqueTargets) {
-                final ReferenceSequence rs = refFile.getSubsequenceAt(target.getSequence(), target.getStart(), target.getEnd());
-                intervalToGc.put(target,SequenceUtil.calculateGc(rs.getBases()));
-            }
-        }
-
-        setup(accumulationLevels, samRgRecords);
-    }
-
-    @Override
-    protected PerUnitMetricCollector<METRIC_TYPE, Integer, SAMRecord> makeChildCollector(final String sample, final String library, final String readGroup) {
-        final PerUnitTargetMetricCollector collector =  new PerUnitTargetMetricCollector(probeIntervals.getName(), coverageByTargetForRead.keySet(),
-                                                                                         sample, library, readGroup, probeTerritory, targetTerritory, genomeSize,
-                                                                                         intervalToGc);
-        if (this.probeSetName != null) {
-            collector.setBaitSetName(probeSetName);
-        }
-
-        return collector;
-    }
-
-    @Override
-    protected PerUnitMetricCollector<METRIC_TYPE, Integer, SAMRecord> makeAllReadCollector() {
-        final PerUnitTargetMetricCollector collector = (PerUnitTargetMetricCollector) makeChildCollector(null, null, null);
-        if (perTargetCoverage != null) {
-            collector.setPerTargetOutput(perTargetCoverage);
-        }
-
-        return collector;
-    }
-
-    /**
-     * Collect the Target Metrics for one unit of "accumulation" (i.e. for one sample, or for one library ...)
-     */
-    public class PerUnitTargetMetricCollector implements PerUnitMetricCollector<METRIC_TYPE, Integer, SAMRecord> {
-
-        private final Map<Interval,Double> intervalToGc;
-        private File perTargetOutput;
-
-        // A Map to accumulate per-bait-region (i.e. merge of overlapping targets) coverage. */
-        private final Map<Interval, Coverage> coverageByTarget;
-
-        private final TargetMetrics metrics = new TargetMetrics();
-
-        /**
-         * Constructor that parses the squashed reference to genome reference file and stores the
-         * information in a map for later use.
-         */
-        public PerUnitTargetMetricCollector(final String probeSetName, final Set<Interval> coverageTargets,
-                                            final String sample, final String library, final String readGroup,
-                                            final long probeTerritory, final long targetTerritory, final long genomeSize,
-                                            final Map<Interval, Double> intervalToGc) {
-            this.metrics.SAMPLE           = sample;
-            this.metrics.LIBRARY          = library;
-            this.metrics.READ_GROUP       = readGroup;
-            this.metrics.PROBE_SET        = probeSetName;
-
-            metrics.PROBE_TERRITORY  = probeTerritory;
-            metrics.TARGET_TERRITORY = targetTerritory;
-            metrics.GENOME_SIZE      = genomeSize;
-
-            this.coverageByTarget = new LinkedHashMap<Interval, Coverage>(coverageTargets.size() * 2, 0.5f);
-            for (Interval target : coverageTargets) {
-                this.coverageByTarget.put(target, new Coverage(target,0));
-            }
-
-            this.intervalToGc = intervalToGc;
-        }
-
-        /** If set, the metrics collector will output per target coverage information to this file. */
-        public void setPerTargetOutput(final File perTargetOutput) {
-            this.perTargetOutput = perTargetOutput;
-        }
-
-        /** Sets the name of the bait set explicitly instead of inferring it from the bait file. */
-        public void setBaitSetName(final String name) {
-            this.metrics.PROBE_SET = name;
-        }
-
-        /** Adds information about an individual SAMRecord to the statistics. */
-        public void acceptRecord(final SAMRecord rec) {
-            // Just plain avoid records that are marked as not-primary
-            if (rec.isSecondaryOrSupplementary()) return;
-
-            this.metrics.TOTAL_READS += 1;
-
-            // Check for PF reads
-            if (rec.getReadFailsVendorQualityCheckFlag()) {
-                return;
-            }
-
-            // Prefetch the list of target and bait overlaps here as they're needed multiple times.
-            final Collection<Interval> targets;
-            final Collection<Interval> probes;
-
-            if (!rec.getReadUnmappedFlag()) {
-                final Interval read = new Interval(rec.getReferenceName(), rec.getAlignmentStart(), rec.getAlignmentEnd());
-                targets = targetDetector.getOverlaps(read);
-                probes   = probeDetector.getOverlaps(read);
-            }
-            else {
-                targets = null;
-                probes = null;
-            }
-
-            ++this.metrics.PF_READS;
-            this.metrics.PF_BASES += rec.getReadLength();
-
-            // And now calculate the values we need for HS_LIBRARY_SIZE
-            if (rec.getReadPairedFlag() && rec.getFirstOfPairFlag() && !rec.getReadUnmappedFlag() && !rec.getMateUnmappedFlag()) {
-                if (probes != null && !probes.isEmpty()) {
-                    ++this.metrics.PF_SELECTED_PAIRS;
-                    if (!rec.getDuplicateReadFlag()) ++this.metrics.PF_SELECTED_UNIQUE_PAIRS;
-                }
-            }
-
-            // Check for reads that are marked as duplicates
-            if (rec.getDuplicateReadFlag()) {
-                return;
-            }
-            else {
-                ++this.metrics.PF_UNIQUE_READS;
-            }
-
-            // Don't bother with reads that didn't align uniquely
-            if (rec.getReadUnmappedFlag() || rec.getMappingQuality() == 0) {
-                return;
-            }
-
-            this.metrics.PF_UQ_READS_ALIGNED += 1;
-            for (final AlignmentBlock block : rec.getAlignmentBlocks()) {
-                this.metrics.PF_UQ_BASES_ALIGNED += block.getLength();
-            }
-
-            final boolean mappedInPair = rec.getReadPairedFlag() && !rec.getMateUnmappedFlag();
-
-            // Find the target overlaps
-            if (targets != null && !targets.isEmpty()) {
-                for (final Interval target : targets) {
-                    final Coverage coverage = this.coverageByTarget.get(target);
-
-                    for (final AlignmentBlock block : rec.getAlignmentBlocks()) {
-                        final int end = CoordMath.getEnd(block.getReferenceStart(), block.getLength());
-                        for (int pos=block.getReferenceStart(); pos<=end; ++ pos) {
-                            if (pos >= target.getStart() && pos <= target.getEnd()) {
-                                ++this.metrics.ON_TARGET_BASES;
-                                if (mappedInPair) ++this.metrics.ON_TARGET_FROM_PAIR_BASES;
-                                coverage.addBase(pos - target.getStart());
-                            }
-                        }
-                    }
-                }
-            }
-
-            // Now do the bait overlaps
-            int mappedBases = 0;
-            for (final AlignmentBlock block : rec.getAlignmentBlocks()) mappedBases += block.getLength();
-            int onBaitBases = 0;
-
-            if (probes != null && !probes.isEmpty()) {
-                for (final Interval bait : probes) {
-                    for (final AlignmentBlock block : rec.getAlignmentBlocks()) {
-                        final int end = CoordMath.getEnd(block.getReferenceStart(), block.getLength());
-
-                        for (int pos=block.getReferenceStart(); pos<=end; ++pos) {
-                            if (pos >= bait.getStart() && pos <= bait.getEnd()) ++onBaitBases;
-                        }
-                    }
-                }
-
-                this.metrics.ON_PROBE_BASES   += onBaitBases;
-                this.metrics.NEAR_PROBE_BASES += (mappedBases - onBaitBases);
-            }
-            else {
-                this.metrics.OFF_PROBE_BASES += mappedBases;
-            }
-
-        }
-
-        @Override
-        public void finish() {
-            metrics.PCT_PF_READS         = metrics.PF_READS / (double) metrics.TOTAL_READS;
-            metrics.PCT_PF_UQ_READS      = metrics.PF_UNIQUE_READS / (double) metrics.TOTAL_READS;
-            metrics.PCT_PF_UQ_READS_ALIGNED = metrics.PF_UQ_READS_ALIGNED / (double) metrics.PF_UNIQUE_READS;
-
-            final double denominator   = (metrics.ON_PROBE_BASES + metrics.NEAR_PROBE_BASES + metrics.OFF_PROBE_BASES);
-
-            metrics.PCT_SELECTED_BASES = (metrics.ON_PROBE_BASES + metrics.NEAR_PROBE_BASES) / denominator;
-            metrics.PCT_OFF_PROBE         = metrics.OFF_PROBE_BASES / denominator;
-            metrics.ON_PROBE_VS_SELECTED = metrics.ON_PROBE_BASES / (double) (metrics.ON_PROBE_BASES + metrics.NEAR_PROBE_BASES);
-            metrics.MEAN_PROBE_COVERAGE   = metrics.ON_PROBE_BASES / (double) metrics.PROBE_TERRITORY;
-            metrics.FOLD_ENRICHMENT       = (metrics.ON_PROBE_BASES/ denominator) / ((double) metrics.PROBE_TERRITORY / metrics.GENOME_SIZE);
-
-            calculateTargetCoverageMetrics();
-            calculateGcMetrics();
-        }
-
-        /** Calculates how much additional sequencing is needed to raise 80% of bases to the mean for the lane. */
-        private void calculateTargetCoverageMetrics() {
-            final short[] depths = new short[(int) this.metrics.TARGET_TERRITORY];  // may not use entire array
-            int zeroCoverageTargets = 0;
-            int depthIndex = 0;
-            double totalCoverage = 0;
-            int basesConsidered = 0;
-
-            for (final Coverage c : this.coverageByTarget.values()) {
-                if (!c.hasCoverage()) {
-                    ++zeroCoverageTargets;
-                    continue;
-                }
-
-                final short[] targetDepths = c.getDepths();
-                basesConsidered += targetDepths.length;
-
-                for (final short depth : targetDepths) {
-                    depths[depthIndex++] = depth;
-                    totalCoverage += depth;
-                }
-            }
-
-            this.metrics.MEAN_TARGET_COVERAGE = totalCoverage / basesConsidered;
-
-            // Sort the array (ASCENDING) and then find the base the coverage value that lies at the 80%
-            // line, which is actually at 20% into the array now
-            Arrays.sort(depths);
-            final int indexOf80thPercentile = (depths.length - 1 - basesConsidered) + (int) (basesConsidered * 0.2);
-            final int coverageAt80thPercentile = depths[indexOf80thPercentile];
-            this.metrics.FOLD_80_BASE_PENALTY = this.metrics.MEAN_TARGET_COVERAGE / coverageAt80thPercentile;
-            this.metrics.ZERO_CVG_TARGETS_PCT = zeroCoverageTargets / (double) allTargets.getIntervals().size();
-
-            // Now do the "how many bases at X" calculations.
-            int totalTargetBases = 0;
-            int targetBases2x  = 0;
-            int targetBases10x = 0;
-            int targetBases20x = 0;
-	        int targetBases30x = 0;
-	        int targetBases40x = 0;
-	        int targetBases50x = 0;
-	        int targetBases100x = 0;
-
-            for (final Coverage c : this.coverageByTarget.values()) {
-                for (final short depth : c.getDepths()) {
-                    ++totalTargetBases;
-
-                    if (depth >= 2) {
-                        ++targetBases2x;
-                        if (depth >=10) {
-                            ++targetBases10x;
-                            if (depth >= 20) {
-                                ++targetBases20x;
-                                if (depth >=30) {
-                                    ++targetBases30x;
-	                                if (depth >=40) {
-		                                ++targetBases40x;
-		                                if (depth >=50) {
-			                                ++targetBases50x;
-			                                if (depth >=100) {
-				                                ++targetBases100x;
-			                                }
-		                                }
-	                                }
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-
-            this.metrics.PCT_TARGET_BASES_2X  = (double) targetBases2x  / (double) totalTargetBases;
-            this.metrics.PCT_TARGET_BASES_10X = (double) targetBases10x / (double) totalTargetBases;
-            this.metrics.PCT_TARGET_BASES_20X = (double) targetBases20x / (double) totalTargetBases;
-	        this.metrics.PCT_TARGET_BASES_30X = (double) targetBases30x / (double) totalTargetBases;
-	        this.metrics.PCT_TARGET_BASES_40X = (double) targetBases40x / (double) totalTargetBases;
-	        this.metrics.PCT_TARGET_BASES_50X = (double) targetBases50x / (double) totalTargetBases;
-	        this.metrics.PCT_TARGET_BASES_100X = (double) targetBases100x / (double) totalTargetBases;
-        }
-
-        private void calculateGcMetrics() {
-            if (this.intervalToGc != null) {
-                log.info("Calculating GC metrics");
-
-                // Setup the output file if we're outputting per-target coverage
-                FormatUtil fmt = new FormatUtil();
-                final PrintWriter out;
-                try {
-                    if (perTargetOutput != null) {
-                        out = new PrintWriter(perTargetOutput);
-                        out.println("chrom\tstart\tend\tlength\tname\t%gc\tmean_coverage\tnormalized_coverage");
-                    }
-                    else {
-                        out = null;
-                    }
-                }
-                catch (IOException ioe) { throw new RuntimeIOException(ioe); }
-
-                final int bins = 101;
-                final long[] targetBasesByGc  = new long[bins];
-                final long[] alignedBasesByGc = new long[bins];
-
-                for (final Map.Entry<Interval,Coverage> entry : this.coverageByTarget.entrySet()) {
-                    final Interval interval = entry.getKey();
-                    final Coverage cov = entry.getValue();
-
-                    final double gcDouble = this.intervalToGc.get(interval);
-                    final int gc = (int) Math.round(gcDouble * 100);
-
-                    targetBasesByGc[gc]  += interval.length();
-                    alignedBasesByGc[gc] += cov.getTotal();
-
-                    if (out != null) {
-                        final double coverage = cov.getTotal() / (double) interval.length();
-
-                        out.println(interval.getSequence() + "\t" +
-                                    interval.getStart() + "\t" +
-                                    interval.getEnd() + "\t" +
-                                    interval.length() + "\t" +
-                                    interval.getName() + "\t" +
-                                    fmt.format(gcDouble) + "\t" +
-                                    fmt.format(coverage) + "\t" +
-                                    fmt.format(coverage / this.metrics.MEAN_TARGET_COVERAGE)
-                        );
-                    }
-                }
-
-                if (out != null) out.close();
-
-                // Total things up
-                long totalTarget = 0;
-                long totalBases  = 0;
-                for (int i=0; i<targetBasesByGc.length; ++i) {
-                    totalTarget += targetBasesByGc[i];
-                    totalBases  += alignedBasesByGc[i];
-                }
-
-                // Re-express things as % of the totals and calculate dropout metrics
-                for (int i=0; i<targetBasesByGc.length; ++i) {
-                    final double targetPct  = targetBasesByGc[i]  / (double) totalTarget;
-                    final double alignedPct = alignedBasesByGc[i] / (double) totalBases;
-
-                    double dropout = (alignedPct - targetPct) * 100d;
-                    if (dropout < 0) {
-                        dropout = Math.abs(dropout);
-
-                        if (i <=50) this.metrics.AT_DROPOUT += dropout;
-                        if (i >=50) this.metrics.GC_DROPOUT += dropout;
-                    }
-                }
-            }
-        }
-
-
-        @Override
-        public void addMetricsToFile(MetricsFile<METRIC_TYPE, Integer> hsMetricsComparableMetricsFile) {
-            hsMetricsComparableMetricsFile.addMetric(convertMetric(this.metrics));
-        }
-    }
-
-    /**
-     * A simple class that is used to store the coverage information about an interval.
-     *
-     * @author Tim Fennell
-     */
-    public static class Coverage {
-        private final Interval interval;
-        private final short[] depths;
-
-        /** Constructs a new coverage object for the provided mapping with the desired padding either side. */
-        public Coverage(final Interval i, final int padding) {
-            this.interval = i;
-            this.depths = new short[interval.length() + 2*padding];
-        }
-
-        /** Adds a single point of depth at the desired offset into the coverage array. */
-        public void addBase(final int offset) {
-            if (offset >= 0 && offset < this.depths.length) {
-                // Prevent overflow if depth is too great, while avoiding doubling memory requirement.
-                if (this.depths[offset] < Short.MAX_VALUE) {
-                    this.depths[offset] += 1;
-                }
-            }
-        }
-
-        /** Returns true if any base in the range has coverage of > 1 */
-        public boolean hasCoverage() {
-            for (final short s : depths) {
-                if (s > 1) return true;
-            }
-
-            return false;
-        }
-
-        /** Gets the coverage depths as an array of shorts. */
-        public short[] getDepths() { return this.depths; }
-
-        public int getTotal() {
-            int total = 0;
-            for (int i=0; i<depths.length; ++i) total += depths[i];
-            return total;
-        }
-
-        @Override
-        public String toString() {
-            return "TargetedMetricCollector(interval=" + interval + ", depths = [" + StringUtil.intValuesToString(this.depths) + "])";
-        }
-    }
-}
-
-/**
- * For a sequencing run targeting specific regions of the genome this metric class holds metrics describing
- * how well those regions were targeted.
- */
-class TargetMetrics extends MultilevelMetrics {
-    /**  The name of the PROBE_SET (BAIT SET, AMPLICON SET, ...) used in this metrics collection run */
-    public String PROBE_SET;
-
-    /** The number of unique bases covered by the intervals of all probes in the probe set */
-    public long PROBE_TERRITORY;
-
-    /** The number of unique bases covered by the intervals of all targets that should be covered */
-    public long TARGET_TERRITORY;
-
-    /** The number of bases in the reference genome used for alignment. */
-    public long GENOME_SIZE;
-
-    /** The total number of reads in the SAM or BAM file examined. */
-    public long TOTAL_READS;
-
-    /** The number of reads that pass the vendor's filter. */
-    public long PF_READS;
-
-    /** The number of bases in the SAM or BAM file to be examined */
-    public long PF_BASES;
-
-    /** The number of PF reads that are not marked as duplicates. */
-    public long PF_UNIQUE_READS;
-
-    // Tracks the number of read pairs that we see that are PF (used to calculate library size) */
-    public long PF_SELECTED_PAIRS;
-
-    // Tracks the number of unique PF reads pairs we see (used to calc library size)
-    public long PF_SELECTED_UNIQUE_PAIRS;
-
-    /** The number of PF unique reads that are aligned with mapping score > 0 to the reference genome. */
-    public long PF_UQ_READS_ALIGNED;
-
-    /** The number of PF unique bases that are aligned with mapping score > 0 to the reference genome. */
-    public long PF_UQ_BASES_ALIGNED;
-
-    /** The number of PF aligned probed that mapped to a baited region of the genome. */
-    public long ON_PROBE_BASES;
-
-    /** The number of PF aligned bases that mapped to within a fixed interval of a probed region, but not on a baited region. */
-    public long NEAR_PROBE_BASES;
-
-    /** The number of PF aligned bases that mapped to neither on or near a probe. */
-    public long OFF_PROBE_BASES;
-
-    /** The number of PF aligned bases that mapped to a targeted region of the genome. */
-    public long ON_TARGET_BASES;
-
-    /** The number of PF aligned bases that are mapped in pair to a targeted region of the genome. */
-    public long ON_TARGET_FROM_PAIR_BASES;
-
-    //metrics below here are derived after collection
-
-    /** PF reads / total reads.  The percent of reads passing filter. */
-    public double PCT_PF_READS;
-
-    /** PF Unique Reads / Total Reads. */
-    public double PCT_PF_UQ_READS;
-
-    /** PF Reads Aligned / PF Reads. */
-    public double PCT_PF_UQ_READS_ALIGNED;
-
-    /** On+Near Bait Bases / PF Bases Aligned. */
-    public double PCT_SELECTED_BASES;
-
-    /** The percentage of aligned PF bases that mapped neither on or near a probe. */
-    public double PCT_OFF_PROBE;
-
-    /** The percentage of on+near probe bases that are on as opposed to near. */
-    public double ON_PROBE_VS_SELECTED;
-
-    /** The mean coverage of all probes in the experiment. */
-    public double MEAN_PROBE_COVERAGE;
-
-    /** The fold by which the probed region has been amplified above genomic background. */
-    public double FOLD_ENRICHMENT;
-
-    /** The mean coverage of targets that recieved at least coverage depth = 2 at one base. */
-    public double MEAN_TARGET_COVERAGE;
-
-    /** The number of targets that did not reach coverage=2 over any base. */
-    public double ZERO_CVG_TARGETS_PCT;
-
-    /**
-     * The fold over-coverage necessary to raise 80% of bases in "non-zero-cvg" targets to
-     * the mean coverage level in those targets.
-     */
-    public double FOLD_80_BASE_PENALTY;
-
-    /** The percentage of ALL target bases acheiving 2X or greater coverage. */
-    public double PCT_TARGET_BASES_2X;
-    /** The percentage of ALL target bases acheiving 10X or greater coverage. */
-    public double PCT_TARGET_BASES_10X;
-    /** The percentage of ALL target bases acheiving 20X or greater coverage. */
-    public double PCT_TARGET_BASES_20X;
-	/** The percentage of ALL target bases acheiving 30X or greater coverage. */
-	public double PCT_TARGET_BASES_30X;
-	/** The percentage of ALL target bases acheiving 40X or greater coverage. */
-	public double PCT_TARGET_BASES_40X;
-	/** The percentage of ALL target bases acheiving 50X or greater coverage. */
-	public double PCT_TARGET_BASES_50X;
-	/** The percentage of ALL target bases acheiving 100X or greater coverage. */
-	public double PCT_TARGET_BASES_100X;
-
-    /**
-     * A measure of how undercovered <= 50% GC regions are relative to the mean. For each GC bin [0..50]
-     * we calculate a = % of target territory, and b = % of aligned reads aligned to these targets.
-     * AT DROPOUT is then abs(sum(a-b when a-b < 0)). E.g. if the value is 5% this implies that 5% of total
-     * reads that should have mapped to GC<=50% regions mapped elsewhere.
-     */
-    public double AT_DROPOUT;
-
-    /**
-     * A measure of how undercovered >= 50% GC regions are relative to the mean. For each GC bin [50..100]
-     * we calculate a = % of target territory, and b = % of aligned reads aligned to these targets.
-     * GC DROPOUT is then abs(sum(a-b when a-b < 0)). E.g. if the value is 5% this implies that 5% of total
-     * reads that should have mapped to GC>=50% regions mapped elsewhere.
-     */
-    public double GC_DROPOUT;
-}
diff --git a/src/java/net/sf/picard/analysis/directed/TargetedPcrMetrics.java b/src/java/net/sf/picard/analysis/directed/TargetedPcrMetrics.java
deleted file mode 100644
index f905759..0000000
--- a/src/java/net/sf/picard/analysis/directed/TargetedPcrMetrics.java
+++ /dev/null
@@ -1,119 +0,0 @@
-package net.sf.picard.analysis.directed;
-
-import net.sf.picard.metrics.MultilevelMetrics;
-
-/** Metrics class for targeted pcr runs such as TSCA runs */
-public class TargetedPcrMetrics extends MultilevelMetrics {
-
-    /**  The name of the amplicon set used in this metrics collection run */
-    public String CUSTOM_AMPLICON_SET;
-
-    /** The number of bases in the reference genome used for alignment. */
-    public long GENOME_SIZE;
-
-    /** The number of unique bases covered by the intervals of all amplicons in the amplicon set */
-    public long AMPLICON_TERRITORY;
-
-    /** The number of unique bases covered by the intervals of all targets that should be covered */
-    public long TARGET_TERRITORY;
-
-    /** The total number of reads in the SAM or BAM file examine. */
-    public long TOTAL_READS;
-
-    /** The number of reads that pass the vendor's filter. */
-    public long PF_READS;
-
-    /** THe number of bases in the SAM or BAM file to be examined */
-    public long PF_BASES;
-
-    /** The number of PF reads that are not marked as duplicates. */
-    public long PF_UNIQUE_READS;
-
-    /** PF reads / total reads.  The percent of reads passing filter. */
-    public double PCT_PF_READS;
-
-    /** PF Unique Reads / Total Reads. */
-    public double PCT_PF_UQ_READS;
-
-    /** The number of PF unique reads that are aligned with mapping score > 0 to the reference genome. */
-    public long PF_UQ_READS_ALIGNED;
-
-    /** Tracks the number of read pairs that we see that are PF (used to calculate library size) */
-    public long PF_SELECTED_PAIRS;
-
-    /** Tracks the number of unique PF reads pairs we see (used to calc library size) */
-    public long PF_SELECTED_UNIQUE_PAIRS;
-
-    /** PF Reads Aligned / PF Reads. */
-    public double PCT_PF_UQ_READS_ALIGNED;
-
-    /** The number of PF unique bases that are aligned with mapping score > 0 to the reference genome. */
-    public long PF_UQ_BASES_ALIGNED;
-
-    /** The number of PF aligned amplified that mapped to an amplified region of the genome. */
-    public long ON_AMPLICON_BASES;
-
-    /** The number of PF aligned bases that mapped to within a fixed interval of an amplified region, but not on a baited region. */
-    public long NEAR_AMPLICON_BASES;
-
-    /** The number of PF aligned bases that mapped to neither on or near an amplicon. */
-    public long OFF_AMPLICON_BASES;
-
-    /** The number of PF aligned bases that mapped to a targeted region of the genome. */
-    public long ON_TARGET_BASES;
-
-    /** The number of PF aligned bases that are mapped in pair to a targeted region of the genome. */
-    public long ON_TARGET_FROM_PAIR_BASES;
-
-    /** On+Near Amplicon Bases / PF Bases Aligned. */
-    public double PCT_AMPLIFIED_BASES;
-
-    /** The percentage of aligned PF bases that mapped neither on or near an amplicon. */
-    public double PCT_OFF_AMPLICON;
-
-    /** The percentage of on+near amplicon bases that are on as opposed to near. */
-    public double ON_AMPLICON_VS_SELECTED;
-
-    /** The mean coverage of all amplicons in the experiment. */
-    public double MEAN_AMPLICON_COVERAGE;
-
-    /** The mean coverage of targets that recieved at least coverage depth = 2 at one base. */
-    public double MEAN_TARGET_COVERAGE;
-
-    /** The fold by which the amplicon region has been amplified above genomic background. */
-    public double FOLD_ENRICHMENT;
-
-    /** The number of targets that did not reach coverage=2 over any base. */
-    public double ZERO_CVG_TARGETS_PCT;
-
-    /**
-     * The fold over-coverage necessary to raise 80% of bases in "non-zero-cvg" targets to
-     * the mean coverage level in those targets.
-     */
-    public double FOLD_80_BASE_PENALTY;
-
-    /** The percentage of ALL target bases achieving 2X or greater coverage. */
-    public double PCT_TARGET_BASES_2X;
-    /** The percentage of ALL target bases achieving 10X or greater coverage. */
-    public double PCT_TARGET_BASES_10X;
-    /** The percentage of ALL target bases achieving 20X or greater coverage. */
-    public double PCT_TARGET_BASES_20X;
-	/** The percentage of ALL target bases achieving 30X or greater coverage. */
-	public double PCT_TARGET_BASES_30X;
-
-    /**
-     * A measure of how undercovered <= 50% GC regions are relative to the mean. For each GC bin [0..50]
-     * we calculate a = % of target territory, and b = % of aligned reads aligned to these targets.
-     * AT DROPOUT is then abs(sum(a-b when a-b < 0)). E.g. if the value is 5% this implies that 5% of total
-     * reads that should have mapped to GC<=50% regions mapped elsewhere.
-     */
-    public double AT_DROPOUT;
-
-    /**
-     * A measure of how undercovered >= 50% GC regions are relative to the mean. For each GC bin [50..100]
-     * we calculate a = % of target territory, and b = % of aligned reads aligned to these targets.
-     * GC DROPOUT is then abs(sum(a-b when a-b < 0)). E.g. if the value is 5% this implies that 5% of total
-     * reads that should have mapped to GC>=50% regions mapped elsewhere.
-     */
-    public double GC_DROPOUT;
-}
diff --git a/src/java/net/sf/picard/analysis/directed/TargetedPcrMetricsCollector.java b/src/java/net/sf/picard/analysis/directed/TargetedPcrMetricsCollector.java
deleted file mode 100644
index 49c9b0d..0000000
--- a/src/java/net/sf/picard/analysis/directed/TargetedPcrMetricsCollector.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.analysis.directed;
-
-import net.sf.picard.analysis.MetricAccumulationLevel;
-import net.sf.picard.reference.ReferenceSequenceFile;
-import net.sf.samtools.*;
-
-import java.io.File;
-import java.util.*;
-
-/**
- * Calculates HS metrics for a given SAM or BAM file. Requires the input of a list of
- * target intervals and a list of bait intervals. Can be invoked either on an entire
- * iterator of SAMRecords or be passed SAMRecords one at a time.
- *
- * @author Jonathan Burke
- */
-public class TargetedPcrMetricsCollector extends TargetMetricsCollector<TargetedPcrMetrics> {
-    //maybe instead just inject this into the TargetedMetricCollector ->
-
-    public TargetedPcrMetricsCollector(final Set<MetricAccumulationLevel> accumulationLevels, final List<SAMReadGroupRecord> samRgRecords, final ReferenceSequenceFile refFile, final File perTargetCoverage, final File targetIntervals, final File probeIntervals, final String probeSetName) {
-        super(accumulationLevels, samRgRecords, refFile, perTargetCoverage, targetIntervals, probeIntervals, probeSetName);
-    }
-
-    @Override
-    public TargetedPcrMetrics convertMetric(TargetMetrics targetMetrics) {
-        final TargetedPcrMetrics pcrMetrics = new TargetedPcrMetrics();
-        TargetMetricsCollector.reflectiveCopy(targetMetrics, pcrMetrics,
-                new String[]{"PROBE_SET",           "PROBE_TERRITORY",    "ON_PROBE_BASES",    "NEAR_PROBE_BASES",    "OFF_PROBE_BASES",    "PCT_SELECTED_BASES",  "PCT_OFF_PROBE",    "ON_PROBE_VS_SELECTED",    "MEAN_PROBE_COVERAGE"},
-                new String[]{"CUSTOM_AMPLICON_SET", "AMPLICON_TERRITORY", "ON_AMPLICON_BASES", "NEAR_AMPLICON_BASES", "OFF_AMPLICON_BASES", "PCT_AMPLIFIED_BASES", "PCT_OFF_AMPLICON", "ON_AMPLICON_VS_SELECTED", "MEAN_AMPLICON_COVERAGE"}
-        );
-
-        return pcrMetrics;
-    }
-}
\ No newline at end of file
diff --git a/src/java/net/sf/picard/annotation/AnnotationException.java b/src/java/net/sf/picard/annotation/AnnotationException.java
deleted file mode 100644
index 6e9fe40..0000000
--- a/src/java/net/sf/picard/annotation/AnnotationException.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.annotation;
-
-import net.sf.picard.PicardException;
-
-/**
- * Exception thrown when loading gene annotations.  It is expected that there will be inconsistencies in annotation
- * files, such that these exceptions may be reported but not cause program termination.
- */
-public class AnnotationException extends PicardException{
-    public AnnotationException(String message) {
-        super(message);
-    }
-
-    public AnnotationException(String message, Throwable throwable) {
-        super(message, throwable);
-    }
-}
diff --git a/src/java/net/sf/picard/annotation/Gene.java b/src/java/net/sf/picard/annotation/Gene.java
deleted file mode 100644
index 438ace5..0000000
--- a/src/java/net/sf/picard/annotation/Gene.java
+++ /dev/null
@@ -1,222 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.annotation;
-
-import net.sf.picard.util.Interval;
-import net.sf.samtools.util.CoordMath;
-import sun.tools.tree.LengthExpression;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-/**
- * Holds annotation of a gene for storage in an OverlapDetector.  May hold multiple transcripts for the same gene.
- * The transcripts must all be relative to the same strand.
- */
-public class Gene extends Interval implements Iterable<Gene.Transcript>  {
-    private final Map<String, Transcript> transcripts = new HashMap<String, Transcript>();
-
-
-    public Gene(final String sequence, final int start, final int end, final boolean negative, final String name) {
-        super(sequence, start, end, negative, name);
-    }
-
-    public Transcript addTranscript(final String name, final int transcriptionStart, final int transcriptionEnd, final int codingStart, final int codingEnd, final int numExons) {
-        if (transcripts.containsKey(name)) {
-            throw new AnnotationException("Transcript " + name + " for gene " + this.getName() + " appears more than once");
-        }
-        else {
-            final Transcript tx = new Transcript(name, transcriptionStart, transcriptionEnd, codingStart, codingEnd, numExons);
-            transcripts.put(name, tx);
-            return tx;
-        }
-    }
-
-    public Iterator<Transcript> iterator() {
-        return transcripts.values().iterator();
-    }
-
-    /**
-     * A single transcript of a gene.  Sequence name is stored in the enclosing object (class Gene).
-     */
-    public class Transcript {
-        public final String name;
-        public final int transcriptionStart;
-        public final int transcriptionEnd;
-        public final int codingStart;
-        public final int codingEnd;
-        public final Exon[] exons;
-        private int length; // the number of bases in the transcript
-
-        /**
-         * 1-based, inclusive representation of an exon.  The sequence name is stored in an enclosing object (class Gene).
-         */
-        public class Exon {
-            public final int start;
-            public final int end;
-
-            public Exon(final int start, final int end) {
-                this.start = start;
-                this.end = end;
-            }
-        }
-
-        public Transcript(final String name, final int transcriptionStart, final int transcriptionEnd, final int codingStart, final int codingEnd, final int numExons) {
-            this.name = name;
-            this.transcriptionStart = transcriptionStart;
-            this.transcriptionEnd = transcriptionEnd;
-            this.codingStart = codingStart;
-            this.codingEnd = codingEnd;
-            this.exons = new Exon[numExons];
-        }
-
-        public Exon addExon(final int start, final int end) {
-            for (int i=0; i<this.exons.length; ++i) {
-                if (exons[i] == null) {
-                    exons[i] = new Exon(start, end);
-                    this.length += CoordMath.getLength(start, end);
-                    return exons[i];
-                }
-            }
-
-            throw new IllegalStateException("Attempting to add more exons that exist for transcript.");
-        }
-
-        public int start() {
-            return exons[0].start;
-        }
-
-        public int end() {
-            return exons[exons.length -1].end;
-        }
-
-        public int length() {
-            return this.length;
-        }
-
-        public boolean isSoloTranscript() {
-            return Gene.this.transcripts.size() == 1;
-        }
-
-        public Gene getGene() {
-            return Gene.this;
-        }
-
-        /**
-         * Write into locusFunctions the function of each position from start to start + locusFunctions.length
-         * relative to this transcript.  Does not overwrite an existing value in locusFunctions that is stronger
-         * than the function for that locus in this transcript.
-         * @param start 1-based genomic coordinate of the first position in locusFunctions.
-         * @param locusFunctions
-         */
-        public void assignLocusFunctionForRange(final int start, final LocusFunction[] locusFunctions) {
-            for (int i = Math.max(start, transcriptionStart);
-                    i <= Math.min(transcriptionEnd, CoordMath.getEnd(start, locusFunctions.length)); ++i) {
-
-                if (locusFunctions[i - start].ordinal() > LocusFunction.CODING.ordinal()) continue;
-
-                final LocusFunction locusFunction;
-                if (inExon(i)) {
-                    if (utr(i)) locusFunction = LocusFunction.UTR;
-                    else locusFunction = LocusFunction.CODING;
-                } else locusFunction = LocusFunction.INTRONIC;
-                if (locusFunction.ordinal() > locusFunctions[i - start].ordinal()) {
-                    locusFunctions[i - start] = locusFunction;
-                }
-            }
-        }
-
-        /**
-         *
-         * @param genomeStart
-         * @param genomeEnd
-         * @param coverage
-         */
-        public void addCoverageCounts(final int genomeStart, final int genomeEnd, final int[] coverage) {
-            for (int i=genomeStart; i<genomeEnd; ++i) {
-                final int txBase = getTranscriptCoordinate(i);
-                if (txBase > 0) coverage[txBase-1]++;
-            }
-        }
-
-        /** Given a coordinate on the genome (same chromosome) give the corresponding coordinate in the transcript. */
-        public int getTranscriptCoordinate(final int genomeCoordinate) {
-            int exonOffset = 0;
-            for (final Exon e : exons) {
-                if (genomeCoordinate >= e.start && genomeCoordinate <=e.end) {
-                    return (genomeCoordinate - e.start + 1) + exonOffset;
-                }
-                else {
-                    exonOffset += CoordMath.getLength(e.start, e.end);
-                }
-            }
-
-            return -1;
-        }
-
-        private boolean utr(final int locus) {
-            return locus < codingStart || locus > codingEnd;
-        }
-
-        private boolean inExon(final int locus) {
-            for (int i = 0; i < exons.length; ++i) {
-                final Exon exon = exons[i];
-                if (exon.start > locus) return false;
-                if (inRange(exon.start, exon.end, locus)) return true;
-            }
-            return false;
-        }
-
-        private boolean inRange(final int start, final int end, final int locus) {
-            return (locus >= start && locus <= end);
-        }
-
-        @Override
-        public boolean equals(final Object o) {
-            if (this == o) return true;
-            if (o == null || getClass() != o.getClass()) return false;
-
-            final Transcript that = (Transcript) o;
-
-            if (codingEnd != that.codingEnd) return false;
-            if (codingStart != that.codingStart) return false;
-            if (transcriptionEnd != that.transcriptionEnd) return false;
-            if (transcriptionStart != that.transcriptionStart) return false;
-            if (!name.equals(that.name)) return false;
-
-            return true;
-        }
-
-        @Override
-        public int hashCode() {
-            int result = name.hashCode();
-            result = 31 * result + transcriptionStart;
-            result = 31 * result + transcriptionEnd;
-            result = 31 * result + codingStart;
-            result = 31 * result + codingEnd;
-            return result;
-        }
-    }
-}
diff --git a/src/java/net/sf/picard/annotation/GeneAnnotationReader.java b/src/java/net/sf/picard/annotation/GeneAnnotationReader.java
deleted file mode 100644
index fe01f74..0000000
--- a/src/java/net/sf/picard/annotation/GeneAnnotationReader.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.annotation;
-
-import net.sf.picard.util.OverlapDetector;
-import net.sf.samtools.SAMSequenceDictionary;
-
-import java.io.File;
-
-/**
- * Load gene annotations into an OverlapDetector of Gene objects.
- * Currently only refFlat format is accepted.
- */
-public class GeneAnnotationReader {
-    public static OverlapDetector<Gene> loadRefFlat(File refFlatFile, SAMSequenceDictionary sequenceDictionary) {
-        return RefFlatReader.load(refFlatFile, sequenceDictionary);
-    }
-}
diff --git a/src/java/net/sf/picard/annotation/LocusFunction.java b/src/java/net/sf/picard/annotation/LocusFunction.java
deleted file mode 100644
index fa735e5..0000000
--- a/src/java/net/sf/picard/annotation/LocusFunction.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.annotation;
-
-/**
- * Describes the behavior of a locus relative to a gene.  Note that these are enumerated in a specific order:
- * (INTERGENIC, INTRONIC, UTR, CODING, RIBOSOMAL) so that e.g. if a locus is CODING in one gene and UTR in another,
- * we count it as CODING.
- */
-public enum LocusFunction {
-    INTERGENIC, INTRONIC, UTR, CODING, RIBOSOMAL
-}
diff --git a/src/java/net/sf/picard/annotation/RefFlatReader.java b/src/java/net/sf/picard/annotation/RefFlatReader.java
deleted file mode 100644
index 556ad4d..0000000
--- a/src/java/net/sf/picard/annotation/RefFlatReader.java
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.annotation;
-
-import net.sf.picard.annotation.Gene.Transcript;
-import net.sf.picard.annotation.Gene.Transcript.Exon;
-import net.sf.picard.util.Log;
-import net.sf.picard.util.OverlapDetector;
-import net.sf.picard.util.TabbedTextFileWithHeaderParser;
-import net.sf.samtools.SAMSequenceDictionary;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Loads gene annotations from a refFlat file into an OverlapDetector<Gene>.  Discards annotations that are not
- * internally consistent, e.g. transcripts on different chromosomes or different strands.
- */
-public class RefFlatReader {
-    private static final Log LOG = Log.getInstance(RefFlatReader.class);
-    // These are in the order that columns appear in refFlat format.
-    public enum RefFlatColumns{GENE_NAME, TRANSCRIPT_NAME, CHROMOSOME, STRAND, TX_START, TX_END, CDS_START, CDS_END,
-        EXON_COUNT, EXON_STARTS, EXON_ENDS}
-
-    private static final String[] RefFlatColumnLabels = new String[RefFlatColumns.values().length];
-
-    static {
-        for (int i = 0; i < RefFlatColumnLabels.length; ++i) {
-            RefFlatColumnLabels[i] = RefFlatColumns.values()[i].name();
-        }
-    }
-
-    private final File refFlatFile;
-    private final SAMSequenceDictionary sequenceDictionary;
-
-    RefFlatReader(final File refFlatFile, final SAMSequenceDictionary sequenceDictionary) {
-        this.refFlatFile = refFlatFile;
-        this.sequenceDictionary = sequenceDictionary;
-    }
-
-    static OverlapDetector<Gene> load(final File refFlatFile, final SAMSequenceDictionary sequenceDictionary) {
-        return new RefFlatReader(refFlatFile, sequenceDictionary).load();
-    }
-
-    OverlapDetector<Gene> load() {
-        final OverlapDetector<Gene> overlapDetector = new OverlapDetector<Gene>(0, 0);
-
-        final int expectedColumns = RefFlatColumns.values().length;
-        final TabbedTextFileWithHeaderParser parser = new TabbedTextFileWithHeaderParser(refFlatFile, RefFlatColumnLabels);
-        final Map<String, List<TabbedTextFileWithHeaderParser.Row>> refFlatLinesByGene =
-                new HashMap<String, List<TabbedTextFileWithHeaderParser.Row>>();
-
-        for (final TabbedTextFileWithHeaderParser.Row row : parser) {
-            final int lineNumber = parser.getCurrentLineNumber(); // getCurrentLineNumber returns the number of the next line
-            if (row.getFields().length != expectedColumns) {
-                throw new AnnotationException("Wrong number of fields in refFlat file " + refFlatFile + " at line " +
-                        lineNumber);
-            }
-            final String geneName = row.getField(RefFlatColumns.GENE_NAME.name());
-            final String transcriptName = row.getField(RefFlatColumns.TRANSCRIPT_NAME.name());
-            final String transcriptDescription = geneName + ":" + transcriptName;
-            final String chromosome = row.getField(RefFlatColumns.CHROMOSOME.name());
-            if (!isSequenceRecognized(chromosome)) {
-                LOG.debug("Skipping " + transcriptDescription + " due to unrecognized sequence " + chromosome);
-            } else {
-                List<TabbedTextFileWithHeaderParser.Row> transcriptLines = refFlatLinesByGene.get(geneName);
-                if (transcriptLines == null) {
-                    transcriptLines = new ArrayList<TabbedTextFileWithHeaderParser.Row>();
-                    refFlatLinesByGene.put(geneName, transcriptLines);
-                }
-                transcriptLines.add(row);
-            }
-        }
-
-        int longestInterval = 0;
-        int numIntervalsOver1MB = 0;
-
-        for (final List<TabbedTextFileWithHeaderParser.Row> transcriptLines : refFlatLinesByGene.values()) {
-            try {
-                final Gene gene = makeGeneFromRefFlatLines(transcriptLines);
-                overlapDetector.addLhs(gene, gene);
-                if (gene.length() > longestInterval) longestInterval = gene.length();
-                if (gene.length() > 1000000) ++numIntervalsOver1MB;
-            } catch (AnnotationException e) {
-                LOG.debug(e.getMessage() + " -- skipping");
-            }
-        }
-        LOG.debug("Longest gene: " + longestInterval + "; number of genes > 1MB: " + numIntervalsOver1MB);
-        return overlapDetector;
-    }
-
-    private boolean isSequenceRecognized(final String sequence) {
-        return (sequenceDictionary.getSequence(sequence) != null);
-    }
-
-
-    private Gene makeGeneFromRefFlatLines(final List<TabbedTextFileWithHeaderParser.Row> transcriptLines) {
-        final String geneName = transcriptLines.get(0).getField(RefFlatColumns.GENE_NAME.name());
-        final String strandStr = transcriptLines.get(0).getField(RefFlatColumns.STRAND.name());
-        final boolean negative = strandStr.equals("-");
-        final String chromosome = transcriptLines.get(0).getField(RefFlatColumns.CHROMOSOME.name());
-
-        // Figure out the extend of the gene
-        int start = Integer.MAX_VALUE;
-        int end = Integer.MIN_VALUE;
-        for (final TabbedTextFileWithHeaderParser.Row row: transcriptLines) {
-            start = Math.min(start, row.getIntegerField(RefFlatColumns.TX_START.name()) + 1);
-            end   = Math.max(end,   row.getIntegerField(RefFlatColumns.TX_END.name()));
-        }
-
-        final Gene gene = new Gene(chromosome, start, end, negative, geneName);
-
-        for (final TabbedTextFileWithHeaderParser.Row row: transcriptLines) {
-            if (!strandStr.equals(row.getField(RefFlatColumns.STRAND.name()))) {
-                throw new AnnotationException("Strand disagreement in refFlat file for gene " + geneName);
-            }
-            if (!chromosome.equals(row.getField(RefFlatColumns.CHROMOSOME.name()))) {
-                throw new AnnotationException("Chromosome disagreement(" + chromosome + " != " + row.getField(RefFlatColumns.CHROMOSOME.name()) +
-                                                      ") in refFlat file for gene " + geneName);
-            }
-
-            // This adds it to the Gene also
-            final Transcript tx = makeTranscriptFromRefFlatLine(gene, row);
-        }
-
-        return gene;
-    }
-
-    /**
-     * Conversion from 0-based half-open to 1-based inclusive intervals is done here.
-     */
-    private Gene.Transcript makeTranscriptFromRefFlatLine(final Gene gene, final TabbedTextFileWithHeaderParser.Row row) {
-        final String geneName = row.getField(RefFlatColumns.GENE_NAME.name());
-        final String transcriptName = row.getField(RefFlatColumns.TRANSCRIPT_NAME.name());
-        final String transcriptDescription = geneName + ":" + transcriptName;
-        final int exonCount = Integer.parseInt(row.getField(RefFlatColumns.EXON_COUNT.name()));
-        final String[] exonStarts = row.getField(RefFlatColumns.EXON_STARTS.name()).split(",");
-        final String[] exonEnds = row.getField(RefFlatColumns.EXON_ENDS.name()).split(",");
-
-        if (exonCount != exonStarts.length) {
-            throw new AnnotationException("Number of exon starts does not agree with number of exons for " + transcriptDescription);
-        }
-        if (exonCount != exonEnds.length) {
-            throw new AnnotationException("Number of exon ends does not agree with number of exons for " + transcriptDescription);
-        }
-
-        final int transcriptionStart = row.getIntegerField(RefFlatColumns.TX_START.name()) + 1;
-        final int transcriptionEnd = row.getIntegerField(RefFlatColumns.TX_END.name());
-        final int codingStart = row.getIntegerField(RefFlatColumns.CDS_START.name()) + 1;
-        final int codingEnd = row.getIntegerField(RefFlatColumns.CDS_END.name());
-
-        final Transcript tx = gene.addTranscript(transcriptName, transcriptionStart, transcriptionEnd, codingStart, codingEnd, exonCount);
-
-        for (int i = 0; i < exonCount; ++i) {
-            final Exon e = tx.addExon(Integer.parseInt(exonStarts[i]) + 1, Integer.parseInt(exonEnds[i]));
-
-            if (e.start >= e.end) {
-                throw new AnnotationException("Exon has 0 or negative extent for " + transcriptDescription);
-            }
-            if (i > 0 && tx.exons[i-1].end >= tx.exons[i].start) {
-                throw new AnnotationException("Exons overlap for " + transcriptDescription);
-            }
-        }
-
-        return tx;
-    }
-}
diff --git a/src/java/net/sf/picard/cmdline/CommandLineParseException.java b/src/java/net/sf/picard/cmdline/CommandLineParseException.java
deleted file mode 100644
index 2bfa8ef..0000000
--- a/src/java/net/sf/picard/cmdline/CommandLineParseException.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.cmdline;
-
-import net.sf.picard.PicardException;
-
-public class CommandLineParseException extends PicardException {
-    public CommandLineParseException(final String s) {
-        super(s);
-    }
-
-    public CommandLineParseException(final String s, final Throwable throwable) {
-        super(s, throwable);
-    }
-}
diff --git a/src/java/net/sf/picard/cmdline/CommandLineParser.java b/src/java/net/sf/picard/cmdline/CommandLineParser.java
deleted file mode 100644
index de98e17..0000000
--- a/src/java/net/sf/picard/cmdline/CommandLineParser.java
+++ /dev/null
@@ -1,1210 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.cmdline;
-
-import java.io.*;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Field;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.ParameterizedType;
-import java.lang.reflect.Type;
-import java.util.*;
-
-import net.sf.samtools.util.CollectionUtil.MultiMap;
-import net.sf.samtools.util.StringUtil;
-import net.sf.samtools.util.CloserUtil;
-import net.sf.picard.PicardException;
-
-/**
- * Annotation-driven utility for parsing command-line arguments, checking for errors, and producing usage message.
- *
- * This class supports options of the form KEY=VALUE, plus positional arguments.  Positional arguments must not contain
- * an equal sign lest they be mistaken for a KEY=VALUE pair.
- *
- * The caller must supply an object that both defines the command line and has the parsed options set into it.
- * For each possible KEY=VALUE option, there must be a public data member annotated with @Option.  The KEY name is
- * the name of the data member.  An abbreviated name may also be specified with the shortName attribute of @Option.
- * If the data member is a List<T>, then the option may be specified multiple times.  The type of the data member,
- * or the type of the List element must either have a ctor T(String), or must be an Enum.  List options must
- * be initialized by the caller with some kind of list.  Any other option that is non-null is assumed to have the given
- * value as a default.  If an option has no default value, and does not have the optional attribute of @Option set,
- * is required.  For List options, minimum and maximum number of elements may be specified in the @Option annotation.
- *
- * A single List data member may be annotated with the @PositionalArguments.  This behaves similarly to a Option
- * with List data member: the caller must initialize the data member, the type must be constructable from String, and
- * min and max number of elements may be specified.  If no @PositionalArguments annotation appears in the object,
- * then it is an error for the command line to contain positional arguments.
- *
- * A single String public data member may be annotated with @Usage.  This string, if present, is used to
- * construct the usage message.  Details about the possible options are automatically appended to this string.
- * If @Usage does not appear, a boilerplate usage message is used.
- */
-public class CommandLineParser {
-    // For formatting option section of usage message.
-    private static final int OPTION_COLUMN_WIDTH = 30;
-    private static final int DESCRIPTION_COLUMN_WIDTH = 90;
-
-    private static final Boolean[] TRUE_FALSE_VALUES = {Boolean.TRUE, Boolean.FALSE};
-
-    private static final String[] PACKAGES_WITH_WEB_DOCUMENTATION = {"net.sf.picard"};
-
-    // Use these if no @Usage annotation
-    private static final String defaultUsagePreamble = "Usage: program [options...]\n";
-    private static final String defaultUsagePreambleWithPositionalArguments =
-            "Usage: program [options...] [positional-arguments...]\n";
-    private static final String OPTIONS_FILE = "OPTIONS_FILE";
-
-    private static final String PRECEDENCE_SYMBOL = "++";
-
-    /** name, shortName, description for options built in to framework */
-    private static final String[][] FRAMEWORK_OPTION_DOC = {
-            {"--help", "-h", "Displays options specific to this tool."},
-            {"--stdhelp", "-H", "Displays options specific to this tool AND " +
-                    "options common to all Picard command line tools."},
-            {"--version", null, "Displays program version."}
-    };
-
-    private final Set<String> optionsThatCannotBeOverridden = new HashSet<String>();
-
-    /**
-     * A typical command line program will call this to get the beginning of the usage message,
-     * and then append a description of the program, like this:
-     *
-     * \@Usage
-     * public String USAGE = CommandLineParser.getStandardUsagePreamble(getClass()) + "Frobnicates the freebozzle."
-     */
-    public static String getStandardUsagePreamble(final Class mainClass) {
-        return "USAGE: " + mainClass.getSimpleName() + " [options]\n\n" +
-                (hasWebDocumentation(mainClass) ?
-                        "Documentation: http://picard.sourceforge.net/command-line-overview.shtml#" +
-                                mainClass.getSimpleName() + "\n\n"
-                        : "");
-    }
-
-    /***
-     * Determines if a class has web documentation based on its package name
-     * @param clazz
-     * @return
-     */
-    public static boolean hasWebDocumentation(final Class clazz) {
-        for(final String pkg : PACKAGES_WITH_WEB_DOCUMENTATION) {
-            if (clazz.getPackage().getName().startsWith(pkg)) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    /***
-     * Returns the link to a FAQ
-     * @return
-     */
-    public static String getFaqLink() {
-        return "To get help, see http://picard.sourceforge.net/index.shtml#GettingHelp";
-    }
-
-    /**
-     * Find all of the members annotated with @NestedOptions.
-     * This is package scope and static so that CommandLineProgram can use it to provide default implementation
-     * of its own getNestedOptions() method.
-     */
-    static Map<String, Object> getNestedOptions(final Object callerOptions) {
-        // LinkedHashMap so usage message is generated in order of declaration
-        final Map<String, Object> ret = new LinkedHashMap<String, Object>();
-        final Class<?> clazz = callerOptions.getClass();
-        for (final Field field : getAllFields(clazz)) {
-            if (field.getAnnotation(NestedOptions.class) != null) {
-                field.setAccessible(true);
-                try {
-                    ret.put(field.getName(), field.get(callerOptions));
-                } catch (IllegalAccessException e) {
-                    throw new RuntimeException("Should never happen.", e);
-                }
-            }
-        }
-        return ret;
-    }
-
-    // This is the object that the caller has provided that contains annotations,
-    // and into which the values will be assigned.
-    private final Object callerOptions;
-
-    // For child CommandLineParser, this contains the prefix for the option names, which is needed for generating
-    // the command line.  For non-nested, this is the empty string.
-    private final String prefix;
-    // For non-nested, empty string.  For nested, prefix + "."
-    private final String prefixDot;
-
-    private String usagePreamble;
-    // null if no @PositionalArguments annotation
-    private Field positionalArguments;
-    private int minPositionalArguments;
-    private int maxPositionalArguments;
-
-    // List of all the data members with @Option annotation
-    private final List<OptionDefinition> optionDefinitions = new ArrayList<OptionDefinition>();
-
-    // Maps long name, and short name, if present, to an option definition that is
-    // also in the optionDefinitions list.
-    private final Map<String, OptionDefinition> optionMap = new HashMap<String, OptionDefinition>();
-
-    // Maps child options prefix to CommandLineParser for the child object.
-    // Key: option prefix.
-    private final Map<String, CommandLineParser> childOptionsMap = new LinkedHashMap<String, CommandLineParser>();
-
-    // Holds the command-line arguments for a child option parser.
-    // Key: option prefix.  Value: List of arguments for child corresponding to that prefix (with prefix stripped).
-    private final MultiMap<String, ChildOptionArg> childOptionArguments = new MultiMap<String, ChildOptionArg>();
-
-    // For printing error messages when parsing command line.
-    private PrintStream messageStream;
-
-    // In case implementation wants to get at arg for some reason.
-    private String[] argv;
-
-    private String programVersion = "";
-
-    // The command line used to launch this program, including non-null default options that
-    // weren't explicitly specified. This is used for logging and debugging.
-    private String commandLine = "";
-
-    /**
-     * This attribute is here just to facilitate printing usage for OPTIONS_FILE
-     */
-    public File IGNORE_THIS_PROPERTY;
-
-    /**
-     * Prepare for parsing command line arguments, by validating annotations.
-     * @param callerOptions This object contains annotations that define the acceptable command-line options,
-     * and ultimately will receive the settings when a command line is parsed.
-     */
-    public CommandLineParser(final Object callerOptions) {
-        this(callerOptions, "");
-    }
-
-    /**
-     * @param prefix Non-empty for child options object.
-     */
-    private CommandLineParser(final Object callerOptions, final String prefix) {
-        this.callerOptions = callerOptions;
-
-        this.prefix = prefix;
-        if (prefix.isEmpty()) {prefixDot = "";}
-        else {prefixDot = prefix + ".";}
-
-
-        for (final Field field : getAllFields(this.callerOptions.getClass())) {
-            if (field.getAnnotation(PositionalArguments.class) != null) {
-                handlePositionalArgumentAnnotation(field);
-            }
-            if (field.getAnnotation(Usage.class) != null) {
-                handleUsageAnnotation(field);
-            }
-            if (field.getAnnotation(Option.class) != null) {
-                handleOptionAnnotation(field);
-            } else if (!isCommandLineProgram() && field.getAnnotation(NestedOptions.class) != null) {
-                // If callerOptions is an instance of CommandLineProgram, defer creation of child
-                // CommandLineParsers until after parsing options for this parser, in case CommandLineProgram
-                // wants to do something dynamic based on values for this parser.
-                handleNestedOptionsAnnotation(field);
-            }
-        }
-
-        if (usagePreamble == null) {
-            if (positionalArguments == null) {
-                usagePreamble = defaultUsagePreamble;
-            } else {
-                usagePreamble = defaultUsagePreambleWithPositionalArguments;
-            }
-        }
-    }
-
-    private boolean isCommandLineProgram() {
-        return callerOptions instanceof CommandLineProgram;
-    }
-
-    private static List<Field> getAllFields(Class clazz) {
-        final List<Field> ret = new ArrayList<Field>();
-        do {
-            ret.addAll(Arrays.asList(clazz.getDeclaredFields()));
-            clazz = clazz.getSuperclass();
-        } while (clazz != null);
-        return ret;
-    }
-
-    public String getVersion()  {
-        return this.callerOptions.getClass().getPackage().getImplementationVersion();
-    }
-    
-    /**
-     * Print a usage message based on the options object passed to the ctor.
-     * @param stream Where to write the usage message.
-     */
-    public void usage(final PrintStream stream, final boolean printCommon) {
-        if (prefix.isEmpty()) {
-            stream.print(usagePreamble);
-            stream.println("\nVersion: " + getVersion());
-            stream.println("\n\nOptions:\n");
-
-            for (final String[] optionDoc : FRAMEWORK_OPTION_DOC) {
-                printOptionParamUsage(stream, optionDoc[0], optionDoc[1], null, optionDoc[2]);
-            }
-        }
-
-        if (!optionDefinitions.isEmpty()) {
-            for (final OptionDefinition optionDefinition : optionDefinitions) {
-                if(printCommon || !optionDefinition.isCommon) printOptionUsage(stream, optionDefinition);
-            }
-        }
-
-        if(printCommon) {
-            final Field fileField;
-            try {
-                fileField = getClass().getField("IGNORE_THIS_PROPERTY");
-            } catch (NoSuchFieldException e) {
-                throw new PicardException("Should never happen", e);
-            }
-            final OptionDefinition optionsFileOptionDefinition =
-              new OptionDefinition(fileField, OPTIONS_FILE, "",
-                "File of OPTION_NAME=value pairs.  No positional parameters allowed.  Unlike command-line options, " +
-                "unrecognized options are ignored.  " + "A single-valued option set in an options file may be overridden " +
-                "by a subsequent command-line option.  " +
-                "A line starting with '#' is considered a comment.",
-                false, true, 0, Integer.MAX_VALUE, null, true, new String[0]);
-            printOptionUsage(stream, optionsFileOptionDefinition);
-        }
-
-        // Generate usage for child parsers.
-        final Collection<CommandLineParser> childClps;
-        childClps = getChildParsersForHelp();
-        for (final CommandLineParser childClp : childClps) {
-            childClp.usage(stream, printCommon);
-        }
-    }
-
-    private Collection<CommandLineParser> getChildParsersForHelp() {
-        final Collection<CommandLineParser> childClps;
-        if (isCommandLineProgram()) {
-            childClps = new ArrayList<CommandLineParser>();
-            for (final Map.Entry<String, Object> entry :
-                    ((CommandLineProgram)callerOptions).getNestedOptionsForHelp().entrySet()) {
-                if (entry.getKey().contains(".")) {
-                    throw new IllegalArgumentException("Prefix for nested options should not contain period: " + entry.getKey());
-                }
-                childClps.add(new CommandLineParser(entry.getValue(), prefixDot + entry.getKey()));
-            }
-        } else {
-            childClps = childOptionsMap.values();
-        }
-        return childClps;
-    }
-
-
-    public void htmlUsage(final PrintStream stream, final String programName, final boolean printCommon) {
-        // TODO: Should HTML escape usage preamble and option usage, including line breaks
-        stream.println("<a name=\"" + programName + "\"/>");
-        stream.println("<h3>" + programName + "</h3>");
-        stream.println("<p>" + htmlEscape(usagePreamble) + "</p>");
-        boolean hasOptions = false;
-        for (final OptionDefinition optionDefinition : optionDefinitions) {
-            if (!optionDefinition.isCommon || printCommon) {
-                hasOptions = true;
-                break;
-            }
-        }
-        if (hasOptions) {
-            htmlPrintOptions(stream, printCommon);
-        }
-        stream.println("<br/>");
-    }
-
-    public void htmlPrintOptions(final PrintStream stream, final boolean printCommon) {
-        stream.println("<table>");
-        stream.println("<tr><th>Option</th><th>Description</th></tr>");
-        if (printCommon) {
-            for (final String[] optionDoc : FRAMEWORK_OPTION_DOC) {
-                stream.println("<tr><td>" + optionDoc[0] + "</td><td>" +
-                        htmlEscape(optionDoc[2]) + "</td></tr>");
-
-            }
-        }
-        htmlPrintOptionTableRows(stream, printCommon);
-        stream.println("</table>");
-    }
-
-    /**
-     *
-     * @param stream
-     * @param printCommon
-     */
-    private void htmlPrintOptionTableRows(final PrintStream stream, final boolean printCommon) {
-        for (final OptionDefinition optionDefinition : optionDefinitions) {
-            if (!optionDefinition.isCommon || printCommon) {
-                printHtmlOptionUsage(stream, optionDefinition);
-            }
-        }
-        for (final CommandLineParser childParser : getChildParsersForHelp()) {
-            childParser.htmlPrintOptionTableRows(stream, false);
-        }
-
-    }
-
-    private static String htmlEscape(String str) {
-        // May need more here
-        str = str.replaceAll("<", "<");
-        str = str.replaceAll("\n", "\n<p>");
-        return str;
-    }
-
-    /**
-     * Parse command-line options, and store values in callerOptions object passed to ctor.
-     * @param messageStream Where to write error messages.
-     * @param args Command line tokens.
-     * @return true if command line is valid.
-     */
-    public boolean parseOptions(final PrintStream messageStream, final String[] args) {
-        this.argv = args;
-        this.messageStream = messageStream;
-        if (prefix.isEmpty()) {
-            commandLine = callerOptions.getClass().getName();
-        }
-        for (int i = 0; i < args.length; ++i) {
-            final String arg = args[i];
-            if (arg.equals("-h") || arg.equals("--help")) {
-                usage(messageStream, false);
-                return false;
-            }
-            if (arg.equals("-H") || arg.equals("--stdhelp")) {
-                usage(messageStream, true);
-                return false;
-            }
-
-            if (arg.equals("--version")) {
-                messageStream.println(getVersion());
-                return false;
-            }
-            
-
-            final String[] pair = arg.split("=", 2);
-            if (pair.length == 2 && pair[1].length() == 0) {
-
-                if (i < args.length - 1) {
-                    pair[1] = args[++i];
-                }
-            }
-            if (pair.length == 2) {
-                if (!parseOption(pair[0], pair[1], false)) {
-                    messageStream.println();
-                    usage(messageStream, true);
-                    return false;
-                }
-            } else if (!parsePositionalArgument(arg)) {
-                messageStream.println();
-                usage(messageStream, false);
-                return false;
-            }
-        }
-        if (!checkNumArguments()) {
-            messageStream.println();
-            usage(messageStream, false);
-            return false;
-        }
-
-        if (!parseChildOptions()) {
-            messageStream.println();
-            usage(messageStream, false);
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * After command line has been parsed, make sure that all required options have values, and that
-     * lists with minimum # of elements have sufficient.
-     * @return true if valid
-     */
-    private boolean checkNumArguments() {
-        //Also, since we're iterating over all options and args, use this opportunity to recreate the commandLineString
-        final StringBuilder commandLineString = new StringBuilder();
-        try {
-            for (final OptionDefinition optionDefinition : optionDefinitions) {
-                final String fullName = prefixDot + optionDefinition.name;
-                final StringBuilder mutextOptionNames = new StringBuilder();
-                for (final String mutexOption : optionDefinition.mutuallyExclusive) {
-                    final OptionDefinition mutextOptionDef = optionMap.get(mutexOption);
-                    if (mutextOptionDef != null && mutextOptionDef.hasBeenSet) {
-                        mutextOptionNames.append(" ").append(prefixDot + mutextOptionDef.name);
-                    }
-                }
-                if (optionDefinition.hasBeenSet && mutextOptionNames.length() > 0) {
-                    messageStream.println("ERROR: Option '" + fullName +
-                            "' cannot be used in conjunction with option(s)" +
-                            mutextOptionNames.toString());
-                    return false;
-                }
-                if (optionDefinition.isCollection) {
-                    final Collection c = (Collection)optionDefinition.field.get(callerOptions);
-                    if (c.size() < optionDefinition.minElements) {
-                        messageStream.println("ERROR: Option '" + fullName + "' must be specified at least " +
-                        optionDefinition.minElements + " times.");
-                        return false;
-                    }
-                } else if (!optionDefinition.optional && !optionDefinition.hasBeenSet &&
-                        !optionDefinition.hasBeenSetFromParent && mutextOptionNames.length() == 0) {
-                    messageStream.print("ERROR: Option '" + fullName + "' is required");
-                    if (optionDefinition.mutuallyExclusive.isEmpty()) {
-                        messageStream.println(".");
-                    } else {
-                        messageStream.println(" unless any of " + optionDefinition.mutuallyExclusive +
-                                " are specified.");
-                    }
-                    return false;
-                }
-
-            }
-            if (positionalArguments != null) {
-                final Collection c = (Collection)positionalArguments.get(callerOptions);
-                if (c.size() < minPositionalArguments) {
-                    messageStream.println("ERROR: At least " + minPositionalArguments +
-                            " positional arguments must be specified.");
-                    return false;
-                }
-                for( final Object posArg : c ) {
-                    commandLineString.append(" " + posArg.toString());
-                }
-            }
-            //first, append args that were explicitly set
-            for (final OptionDefinition optionDefinition : optionDefinitions) {
-                if(optionDefinition.hasBeenSet) {
-                    commandLineString.append(" " + prefixDot + optionDefinition.name + "=" +
-                            optionDefinition.field.get(callerOptions));
-                }
-            }
-            commandLineString.append("   "); //separator to tell the 2 apart
-            //next, append args that weren't explicitly set, but have a default value
-            for (final OptionDefinition optionDefinition : optionDefinitions) {
-                if(!optionDefinition.hasBeenSet && !optionDefinition.defaultValue.equals("null")) {
-                    commandLineString.append(" " + prefixDot + optionDefinition.name + "=" +
-                            optionDefinition.defaultValue);
-                }
-            }
-            this.commandLine += commandLineString.toString();
-            return true;
-        } catch (IllegalAccessException e) {
-            // Should never happen because lack of publicness has already been checked.
-            throw new RuntimeException(e);
-        }
-
-
-    }
-
-    private boolean parsePositionalArgument(final String stringValue) {
-        if (positionalArguments == null) {
-            messageStream.println("ERROR: Invalid argument '" + stringValue + "'.");
-            return false;
-        }
-        final Object value;
-        try {
-            value = constructFromString(getUnderlyingType(positionalArguments), stringValue);
-        } catch (CommandLineParseException e) {
-            messageStream.println("ERROR: " + e.getMessage());
-            return false;
-        }
-        final Collection c;
-        try {
-            c = (Collection)positionalArguments.get(callerOptions);
-        } catch (IllegalAccessException e) {
-            throw new RuntimeException(e);
-        }
-        if (c.size() >= maxPositionalArguments) {
-            messageStream.println("ERROR: No more than " + maxPositionalArguments +
-                    " positional arguments may be specified on the command line.");
-            return false;
-        }
-        c.add(value);
-        return true;
-    }
-
-    private boolean parseOption(final String key, final String stringValue, final boolean optionsFile) {
-        return parseOption(key, stringValue, optionsFile, false);
-    }
-
-    private boolean parseOption(String key, final String stringValue, final boolean optionsFile,
-                                boolean precedenceSet) {
-        key = key.toUpperCase();
-        if (key.equals(OPTIONS_FILE)) {
-            commandLine += " " + prefix +  OPTIONS_FILE + "=" + stringValue;
-            return parseOptionsFile(stringValue);
-        }
-
-        // Check to see if the precedence symbol was used
-        if (key.startsWith(PRECEDENCE_SYMBOL)) {
-            key = key.substring(PRECEDENCE_SYMBOL.length());
-            precedenceSet = true;
-        }
-
-        // Save child options for later processing.
-        final Integer prefixIndex = key.indexOf('.');
-        if (prefixIndex != -1) {
-            final String prefix = key.substring(0, prefixIndex);
-            final String subKey = key.substring(prefixIndex+1);
-            if (!subKey.isEmpty()) {
-                childOptionArguments.append(prefix, new ChildOptionArg(subKey, stringValue, optionsFile,
-                        precedenceSet));
-                return true;
-            } else {
-                messageStream.println("ERROR: Unrecognized option: " + key);
-                return false;
-            }
-        }
-
-        final OptionDefinition optionDefinition = optionMap.get(key);
-        if (optionDefinition == null) {
-            if (optionsFile) {
-                // Silently ignore unrecognized option from options file
-                return true;
-            }
-            messageStream.println("ERROR: Unrecognized option: " + key);
-            return false;
-        }
-
-        // Check to see if the option has been "fixed" already
-        if (this.optionsThatCannotBeOverridden.contains(optionDefinition.name)) {
-            return true;
-        }
-        else if (precedenceSet) {
-            this.optionsThatCannotBeOverridden.add(optionDefinition.name);
-        }
-
-        if (!optionDefinition.isCollection) {
-            if (optionDefinition.hasBeenSet && !optionDefinition.hasBeenSetFromOptionsFile) {
-                messageStream.println("ERROR: Option '" + key + "' cannot be specified more than once.");
-                return false;
-            }
-        }                                      
-        final Object value;
-        try {
-            if(stringValue.equals("null")) {
-                //"null" is a special value that allows the user to override any default
-                //value set for this arg. It can only be used for optional args. When
-                //used for a list arg, it will clear the list.
-                if(optionDefinition.optional) {
-                    value = null;
-                } else {
-                    messageStream.println("ERROR: non-null value must be provided for '" + key + "'.");
-                    return false;
-                }
-            } else {
-                value = constructFromString(getUnderlyingType(optionDefinition.field), stringValue);
-            }
-
-        } catch (CommandLineParseException e) {
-            messageStream.println("ERROR: " + e.getMessage());
-            return false;
-        }
-        try {
-            if (optionDefinition.isCollection) {
-                final Collection c = (Collection)optionDefinition.field.get(callerOptions);
-                if(value == null) {
-                    //user specified this arg=null which is interpreted as empty list
-                    c.clear();
-                } else if (c.size() >= optionDefinition.maxElements) {
-                    messageStream.println("ERROR: Option '" + key + "' cannot be used more than " +
-                            optionDefinition.maxElements + " times.");
-                    return false;
-                } else {
-                    c.add(value);
-                }
-                optionDefinition.hasBeenSet = true;
-                optionDefinition.hasBeenSetFromOptionsFile = optionsFile;
-            } else {
-                optionDefinition.field.set(callerOptions, value);
-                optionDefinition.hasBeenSet = true;
-                optionDefinition.hasBeenSetFromOptionsFile = optionsFile;
-            }
-        } catch (IllegalAccessException e) {
-            // Should never happen because we only iterate through public fields.
-            throw new RuntimeException(e);
-        }
-        return true;
-    }
-
-    /**
-     * Parsing of options from file is looser than normal.  Any unrecognized options are
-     * ignored, and a single-valued option that is set in a file may be overridden by a
-     * subsequent appearance of that option.
-     * A line that starts with '#' is ignored.
-     * @param optionsFile
-     * @return false if a fatal error occurred
-     */
-    private boolean parseOptionsFile(final String optionsFile) {
-        BufferedReader reader = null;
-        try {
-            reader = new BufferedReader(new FileReader(optionsFile));
-            String line;
-            while ((line = reader.readLine()) != null) {
-                if (line.startsWith("#") || line.trim().length() == 0) {
-                    continue;
-                }
-                final String[] pair = line.split("=", 2);
-                if (pair.length == 2) {
-                    if (!parseOption(pair[0], pair[1], true)) {
-                        messageStream.println();
-                        usage(messageStream, true);
-                        return false;
-                    }
-                } else {
-                    messageStream.println("Strange line in OPTIONS_FILE " + optionsFile + ": " + line);
-                    usage(messageStream, true);
-                    return false;
-                }
-            }
-            reader.close();
-            return true;
-
-        } catch (IOException e) {
-            throw new PicardException("I/O error loading OPTIONS_FILE=" + optionsFile, e);
-        } finally {
-            CloserUtil.close(reader);
-        }
-    }
-
-    private void printHtmlOptionUsage(final PrintStream stream, final OptionDefinition optionDefinition) {
-        final String type = getUnderlyingType(optionDefinition.field).getSimpleName();
-        final String optionLabel = prefixDot + optionDefinition.name + "=" + type;
-        stream.println("<tr><td>" + optionLabel + "</td><td>" +
-                htmlEscape(makeOptionDescription(optionDefinition)) + "</td></tr>");
-    }
-
-    private void printOptionUsage(final PrintStream stream, final OptionDefinition optionDefinition) {
-        printOptionParamUsage(stream, optionDefinition.name, optionDefinition.shortName,
-                              getUnderlyingType(optionDefinition.field).getSimpleName(),
-                              makeOptionDescription(optionDefinition));
-    }
-
-
-    private void printOptionParamUsage(final PrintStream stream, final String name, final String shortName,
-                                       final String type, final String optionDescription) {
-        String optionLabel = prefixDot + name;
-        if(type != null) optionLabel += "=" + type;
-
-        stream.print(optionLabel);
-        if (shortName != null && shortName.length() > 0) {
-            stream.println();
-            optionLabel = prefixDot + shortName;
-            if(type != null) optionLabel += "=" + type;
-            stream.print(optionLabel);
-        }
-
-        int numSpaces = OPTION_COLUMN_WIDTH - optionLabel.length();
-        if (optionLabel.length() > OPTION_COLUMN_WIDTH) {
-            stream.println();
-            numSpaces = OPTION_COLUMN_WIDTH;
-        }
-        printSpaces(stream, numSpaces);
-        final String wrappedDescription = StringUtil.wordWrap(optionDescription, DESCRIPTION_COLUMN_WIDTH);
-        final String[] descriptionLines = wrappedDescription.split("\n");
-        for (int i = 0; i < descriptionLines.length; ++i) {
-            if (i > 0) {
-                printSpaces(stream, OPTION_COLUMN_WIDTH);
-            }
-            stream.println(descriptionLines[i]);
-        }
-        stream.println();
-    }
-
-    private String makeOptionDescription(final OptionDefinition optionDefinition) {
-        final StringBuilder sb = new StringBuilder();
-        if (optionDefinition.doc.length() > 0) {
-            sb.append(optionDefinition.doc);
-            sb.append("  ");
-        }
-        if (optionDefinition.optional && !optionDefinition.isCollection) {
-            sb.append("Default value: ");
-            sb.append(optionDefinition.defaultValue);
-            sb.append(". ");
-            if(!optionDefinition.defaultValue.equals("null")) {
-                sb.append("This option can be set to 'null' to clear the default value. ");
-            }
-        } else if (!optionDefinition.isCollection){
-            sb.append("Required. ");
-        }
-        Object[] enumConstants = getUnderlyingType(optionDefinition.field).getEnumConstants();
-        if (enumConstants == null && getUnderlyingType(optionDefinition.field) == Boolean.class) {
-            enumConstants = TRUE_FALSE_VALUES;
-        }
-
-        if (enumConstants != null) {
-            final Boolean isClpEnum=enumConstants.length>0 && (enumConstants[0] instanceof ClpEnum) ;
-
-            sb.append("Possible values: {");
-            if(isClpEnum) sb.append("\n");
-
-            for (int i = 0; i < enumConstants.length; ++i) {
-                if (i > 0 && ! isClpEnum) {
-                    sb.append(", ");
-                }
-                sb.append(enumConstants[i].toString());
-
-                if(isClpEnum){
-                    sb.append(" (" + ((ClpEnum)enumConstants[i]).getHelpDoc() + ")\n");
-                }
-            }
-            sb.append("} ");
-        }
-        if (optionDefinition.isCollection) {
-            if (optionDefinition.minElements == 0) {
-                if (optionDefinition.maxElements == Integer.MAX_VALUE) {
-                    sb.append("This option may be specified 0 or more times. ");
-                } else {
-                    sb.append("This option must be specified no more than " + optionDefinition.maxElements +
-                            " times. ");
-                }
-            } else  if (optionDefinition.maxElements == Integer.MAX_VALUE) {
-                sb.append("This option must be specified at least " + optionDefinition.minElements + " times. ");
-            } else {
-                sb.append("This option may be specified between " + optionDefinition.minElements +
-                " and " + optionDefinition.maxElements + " times. ");
-            }
-
-            if(!optionDefinition.defaultValue.equals("null")) {
-                sb.append("This option can be set to 'null' to clear the default list. ");
-            }
-
-        }
-        if (!optionDefinition.mutuallyExclusive.isEmpty()) {
-            sb.append(" Cannot be used in conjuction with option(s)");
-            for (final String option : optionDefinition.mutuallyExclusive) {
-                final OptionDefinition mutextOptionDefinition = optionMap.get(option);
-
-                if(mutextOptionDefinition == null) {
-                    throw new PicardException("Invalid option definition in source code.  " + option +
-                            " doesn't match any known option.");
-                }
-
-                sb.append(" ").append(mutextOptionDefinition.name);
-                if (mutextOptionDefinition.shortName.length() > 0) {
-                    sb.append(" (").append(mutextOptionDefinition.shortName).append(")");
-                }
-            }
-        }
-        return sb.toString();
-    }
-
-    private void printSpaces(final PrintStream stream, final int numSpaces) {
-        final StringBuilder sb = new StringBuilder();
-        for (int i = 0; i < numSpaces; ++i) {
-            sb.append(" ");
-        }
-        stream.print(sb);
-    }
-
-    private void handleOptionAnnotation(final Field field) {
-        try {
-            field.setAccessible(true);
-            final Option optionAnnotation = field.getAnnotation(Option.class);
-            final boolean isCollection = isCollectionField(field);
-            if (isCollection) {
-                if (optionAnnotation.maxElements() == 0) {
-                    throw new CommandLineParserDefinitionException("@Option member " + field.getName() +
-                    "has maxElements = 0");
-                }
-                if (optionAnnotation.minElements() > optionAnnotation.maxElements()) {
-                    throw new CommandLineParserDefinitionException("In @Option member " + field.getName() +
-                            ", minElements cannot be > maxElements");
-                }
-                if (field.get(callerOptions) == null) {
-                    createCollection(field, callerOptions, "@Option");
-                }
-            }
-            if (!canBeMadeFromString(getUnderlyingType(field))) {
-                throw new CommandLineParserDefinitionException("@Option member " + field.getName() +
-                " must have a String ctor or be an enum");
-            }
-
-            final OptionDefinition optionDefinition = new OptionDefinition(field,
-                    field.getName(),
-                    optionAnnotation.shortName(),
-                    optionAnnotation.doc(), optionAnnotation.optional() || (field.get(callerOptions) != null),
-                    isCollection, optionAnnotation.minElements(),
-                    optionAnnotation.maxElements(), field.get(callerOptions),  optionAnnotation.common(),
-                    optionAnnotation.mutex());
-
-            for (final String option : optionAnnotation.mutex()) {
-                final OptionDefinition mutextOptionDef = optionMap.get(option);
-                if (mutextOptionDef != null) {
-                    mutextOptionDef.mutuallyExclusive.add(field.getName());
-                }
-            }
-            if (optionMap.containsKey(optionDefinition.name)) {
-                throw new CommandLineParserDefinitionException(optionDefinition.name + " has already been used");
-            }
-            optionMap.put(optionDefinition.name, optionDefinition);
-            if (optionDefinition.shortName.length() > 0) {
-                if (optionMap.containsKey(optionDefinition.shortName)) {
-                    throw new CommandLineParserDefinitionException(optionDefinition.shortName +
-                            " has already been used");
-                }
-                optionMap.put(optionDefinition.shortName, optionDefinition);
-            }
-            optionDefinitions.add(optionDefinition);
-        } catch (IllegalAccessException e) {
-            throw new CommandLineParserDefinitionException(field.getName() +
-                    " must have public visibility to have @Option annotation");
-        }
-    }
-
-    private void handleUsageAnnotation(final Field field) {
-        if (usagePreamble != null) {
-            throw new CommandLineParserDefinitionException
-                    ("@Usage cannot be used more than once in an option class.");
-        }
-        try {
-            field.setAccessible(true);
-            usagePreamble = (String)field.get(callerOptions);
-            final Usage usageAnnotation = field.getAnnotation(Usage.class);
-            if (usageAnnotation.programVersion().length() > 0) {
-                this.programVersion = usageAnnotation.programVersion();
-                usagePreamble += "Version: " + usageAnnotation.programVersion() + "\n";
-            }
-        } catch (IllegalAccessException e) {
-            throw new CommandLineParserDefinitionException("@Usage data member must be public");
-        } catch (ClassCastException e) {
-            throw new CommandLineParserDefinitionException
-                    ("@Usage can only be applied to a String data member.");
-        }
-    }
-
-    private void handlePositionalArgumentAnnotation(final Field field) {
-        if (positionalArguments != null) {
-            throw new CommandLineParserDefinitionException
-                    ("@PositionalArguments cannot be used more than once in an option class.");
-        }
-        field.setAccessible(true);
-        positionalArguments = field;
-        if (!isCollectionField(field)) {
-            throw new CommandLineParserDefinitionException("@PositionalArguments must be applied to a Collection");
-        }
-
-        if (!canBeMadeFromString(getUnderlyingType(field))) {
-            throw new CommandLineParserDefinitionException("@PositionalParameters member " + field.getName() +
-            "does not have a String ctor");
-        }
-
-        final PositionalArguments positionalArgumentsAnnotation = field.getAnnotation(PositionalArguments.class);
-        minPositionalArguments = positionalArgumentsAnnotation.minElements();
-        maxPositionalArguments = positionalArgumentsAnnotation.maxElements();
-        if (minPositionalArguments > maxPositionalArguments) {
-            throw new CommandLineParserDefinitionException("In @PositionalArguments, minElements cannot be > maxElements");
-        }
-        try {
-            if (field.get(callerOptions) == null) {
-                createCollection(field, callerOptions, "@PositionalParameters");
-            }
-        } catch (IllegalAccessException e) {
-            throw new CommandLineParserDefinitionException(field.getName() +
-                    " must have public visibility to have @PositionalParameters annotation");
-
-        }
-    }
-
-    private void handleNestedOptionsAnnotation(final Field field) {
-        field.setAccessible(true);
-        try {
-            childOptionsMap.put(field.getName(),
-                    new CommandLineParser(field.get(this.callerOptions), prefixDot + field.getName()));
-        } catch (IllegalAccessException e) {
-            throw new CommandLineParserDefinitionException("Should never happen.", e);
-        }
-    }
-
-    private boolean isCollectionField(final Field field) {
-        try {
-            field.getType().asSubclass(Collection.class);
-            return true;
-        } catch (ClassCastException e) {
-            return false;
-        }
-    }
-
-    private void createCollection(final Field field, final Object callerOptions, final String annotationType)
-            throws IllegalAccessException {
-        try {
-            field.set(callerOptions, field.getType().newInstance());
-        } catch (Exception ex) {
-            try {
-                field.set(callerOptions, new ArrayList());
-            } catch (IllegalArgumentException e) {
-                throw new CommandLineParserDefinitionException("In collection " + annotationType +
-                  " member " + field.getName() +
-                  " cannot be constructed or auto-initialized with ArrayList, so collection must be initialized explicitly.");
-            }
-
-        }
-
-    }
-
-    /**
-     * Returns the type that each instance of the argument needs to be converted to. In
-     * the case of primitive fields it will return the wrapper type so that String
-     * constructors can be found.
-     */
-    private Class getUnderlyingType(final Field field) {
-        if (isCollectionField(field)) {
-            final ParameterizedType clazz = (ParameterizedType)(field.getGenericType());
-            final Type[] genericTypes = clazz.getActualTypeArguments();
-            if (genericTypes.length != 1) {
-                throw new CommandLineParserDefinitionException("Strange collection type for field " +
-                        field.getName());
-            }
-            return (Class)genericTypes[0];
-
-        }
-        else {
-            final Class type = field.getType();
-            if (type == Byte.TYPE)    return Byte.class;
-            if (type == Short.TYPE)   return Short.class;
-            if (type == Integer.TYPE) return Integer.class;
-            if (type == Long.TYPE)    return Long.class;
-            if (type == Float.TYPE)   return Float.class;
-            if (type == Double.TYPE)  return Double.class;
-            if (type == Boolean.TYPE) return Boolean.class;
-
-            return type;
-        }
-    }
-
-    // True if clazz is an enum, or if it has a ctor that takes a single String argument.
-    private boolean canBeMadeFromString(final Class clazz) {
-        if (clazz.isEnum()) {
-            return true;
-        }
-        try {
-            clazz.getConstructor(String.class);
-            return true;
-        } catch (NoSuchMethodException e) {
-            return false;
-        }
-    }
-
-    private Object constructFromString(final Class clazz, final String s) {
-        try {
-            if (clazz.isEnum()) {
-                try {
-                    return Enum.valueOf(clazz, s);
-                } catch (IllegalArgumentException e) {
-                    throw new CommandLineParseException("'" + s + "' is not a valid value for " +
-                            clazz.getSimpleName() + ".", e);
-                }
-            }
-            final Constructor ctor = clazz.getConstructor(String.class);
-            return ctor.newInstance(s);
-        } catch (NoSuchMethodException e) {
-            // Shouldn't happen because we've checked for presence of ctor
-            throw new CommandLineParseException("Cannot find string ctor for " + clazz.getName(), e);
-        } catch (InstantiationException e) {
-            throw new CommandLineParseException("Abstract class '" + clazz.getSimpleName() +
-                    "'cannot be used for an option value type.", e);
-        } catch (IllegalAccessException e) {
-            throw new CommandLineParseException("String constructor for option value type '" + clazz.getSimpleName() +
-                    "' must be public.", e);
-        } catch (InvocationTargetException e) {
-            throw new CommandLineParseException("Problem constructing " + clazz.getSimpleName() +
-                    " from the string '" + s + "'.", e.getCause());
-        }
-    }
-
-    public String[] getArgv() {
-        return argv;
-    }
-
-    public interface ClpEnum{
-        String getHelpDoc();
-    }
-
-    protected static class OptionDefinition {
-        final Field field;
-        final String name;
-        final String shortName;
-        final String doc;
-        final boolean optional;
-        final boolean isCollection;
-        final int minElements;
-        final int maxElements;
-        final String defaultValue;
-        final boolean isCommon;
-        boolean hasBeenSet = false;
-        boolean hasBeenSetFromOptionsFile = false;
-        boolean hasBeenSetFromParent = false;
-        final Set<String> mutuallyExclusive;
-
-        private OptionDefinition(final Field field, final String name, final String shortName, final String doc,
-                                 final boolean optional, final boolean collection, final int minElements,
-                                 final int maxElements, final Object defaultValue, final boolean isCommon,
-                                 final String[] mutuallyExclusive) {
-            this.field = field;
-            this.name = name.toUpperCase();
-            this.shortName = shortName.toUpperCase();
-            this.doc = doc;
-            this.optional = optional;
-            isCollection = collection;
-            this.minElements = minElements;
-            this.maxElements = maxElements;
-            if (defaultValue != null) {
-                if( isCollection && ((Collection) defaultValue).isEmpty()) {
-                    //treat empty collections the same as uninitialized primitive types
-                    this.defaultValue = "null";
-                }
-                else {
-                    //this is an intialized primitive type or a non-empty collection
-                    this.defaultValue = defaultValue.toString();
-                }
-            } else {
-                this.defaultValue = "null";
-            }
-            this.isCommon = isCommon;
-            this.mutuallyExclusive = new HashSet<String>(Arrays.asList(mutuallyExclusive));
-        }
-    }
-
-    /**
-     * Holds a command-line argument that is destined for a child parser.  Prefix has been stripped from name.
-     */
-    private static class ChildOptionArg {
-        final String name;
-        final String value;
-        final boolean fromFile;
-        final boolean precedenceSet;
-
-        private ChildOptionArg(final String name, final String value, final boolean fromFile, final boolean precedenceSet) {
-            this.name = name;
-            this.value = value;
-            this.fromFile = fromFile;
-            this.precedenceSet = precedenceSet;
-        }
-    }
-
-    /**
-     * Propagate options from parent to children as appropriate, parse command line options for
-     * children, and then validate that children have been properly initialized.  This is done recursively
-     * for any child that itself has a child.
-     * @return true if parsing is successful.  Writes any errors to the message stream.
-     */
-    private boolean parseChildOptions() {
-
-        // If callerOptions is not an instance of CommandLineProgram, then the child options are populated
-        // when annotations are processed.
-        if (isCommandLineProgram()) {
-            final CommandLineProgram commandLineProgram = (CommandLineProgram)callerOptions;
-            for (final Map.Entry<String, Object> entry : commandLineProgram.getNestedOptions().entrySet()) {
-                if (entry.getKey().contains(".")) {
-                    throw new IllegalArgumentException("Prefix for nested options should not contain period: " + entry.getKey());
-                }
-                childOptionsMap.put(entry.getKey(),
-                        new CommandLineParser(entry.getValue(), prefixDot + entry.getKey()));
-            }
-        }
-        boolean retval = true;
-
-        // Check for child options for which there is no parser
-        for (final String prefix : childOptionArguments.keySet()) {
-            if (!childOptionsMap.containsKey(prefix)) {
-                messageStream.println("ERROR: Option prefix '" + prefix + "' is not valid.");
-                retval = false;
-            }
-        }
-
-        try {
-            // Propagate options from this parser to child parsers
-            for (final OptionDefinition optionDefinition : optionDefinitions) {
-                // Handling collection value propagation is confusing, so just don't do it.
-                if (optionDefinition.isCollection) continue;
-                final Object value = optionDefinition.field.get(callerOptions);
-                if (value == null) continue;
-                for (final CommandLineParser childParser : childOptionsMap.values()) {
-                    maybePropagateValueToChild(childParser, optionDefinition, value);
-                }
-            }
-        } catch (IllegalAccessException e) {
-            throw new RuntimeException("Should never happen", e);
-        }
-
-        for (final Map.Entry<String, CommandLineParser> entry : childOptionsMap.entrySet()) {
-            final String prefix = entry.getKey();
-            final CommandLineParser childParser = entry.getValue();
-            childParser.messageStream = this.messageStream;
-            final Collection<ChildOptionArg> childOptionArgs = this.childOptionArguments.get(prefix);
-            if (childOptionArgs != null) {
-                for (final ChildOptionArg arg : childOptionArgs) {
-                    childParser.parseOption(arg.name, arg.value, arg.fromFile, arg.precedenceSet);
-                }
-            }
-            if (!childParser.checkNumArguments()) {
-                retval = false;
-            }
-            if (!childParser.parseChildOptions()) {
-                retval = false;
-            }
-            this.commandLine += " " + childParser.getCommandLine();
-        }
-
-        return retval;
-    }
-
-    /**
-     * Propagate value from parent to child if appropriate to do so.
-     */
-    private void maybePropagateValueToChild(final CommandLineParser childParser,
-                                            final OptionDefinition optionDefinition,
-                                            final Object value) {
-        try {
-            final OptionDefinition childOptionDefinition = childParser.optionMap.get(optionDefinition.name);
-            if (childOptionDefinition != null) {
-                final Object childValue = childOptionDefinition.field.get(childParser.callerOptions);
-                if (childValue == null || optionDefinition.hasBeenSet) {
-                    childOptionDefinition.field.set(childParser.callerOptions, value);
-                    childOptionDefinition.hasBeenSetFromParent = true;
-                    childOptionDefinition.hasBeenSetFromOptionsFile = optionDefinition.hasBeenSetFromOptionsFile;
-                }
-            }
-        } catch (IllegalAccessException e) {
-            throw new RuntimeException("Should never happen", e);
-        }
-    }
-
-    public String getProgramVersion() { return programVersion; }
-
-    /**
-     * The commandline used to run this program, including any default args that
-     * weren't necessarily specified. This is used for logging and debugging.
-     *
-     * NOTE: {@link #parseOptions(PrintStream, String[])} must be called before
-     * calling this method.
-     *
-     * @return The commandline, or null if {@link #parseOptions(PrintStream, String[])}
-     * hasn't yet been called, or didn't complete successfully.
-     */
-    public String getCommandLine() { return commandLine; }
-}
diff --git a/src/java/net/sf/picard/cmdline/CommandLineParserDefinitionException.java b/src/java/net/sf/picard/cmdline/CommandLineParserDefinitionException.java
deleted file mode 100644
index b610d71..0000000
--- a/src/java/net/sf/picard/cmdline/CommandLineParserDefinitionException.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.cmdline;
-
-import net.sf.picard.PicardException;
-
-public class CommandLineParserDefinitionException extends PicardException {
-    public CommandLineParserDefinitionException(final String s) {
-        super(s);
-    }
-
-    public CommandLineParserDefinitionException(final String s, final Throwable throwable) {
-        super(s, throwable);
-    }
-}
diff --git a/src/java/net/sf/picard/cmdline/CommandLineProgram.java b/src/java/net/sf/picard/cmdline/CommandLineProgram.java
deleted file mode 100644
index ac65a59..0000000
--- a/src/java/net/sf/picard/cmdline/CommandLineProgram.java
+++ /dev/null
@@ -1,312 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.cmdline;
-
-import java.io.File;
-import java.net.InetAddress;
-import java.text.DecimalFormat;
-import java.util.*;
-
-import net.sf.picard.metrics.Header;
-import net.sf.picard.metrics.MetricBase;
-import net.sf.picard.metrics.MetricsFile;
-import net.sf.picard.metrics.StringHeader;
-import net.sf.picard.util.Log;
-import net.sf.samtools.Defaults;
-import net.sf.samtools.SAMFileReader;
-import net.sf.samtools.SAMFileWriterFactory;
-import net.sf.samtools.SAMFileWriterImpl;
-import net.sf.samtools.util.BlockCompressedOutputStream;
-import net.sf.samtools.util.BlockCompressedStreamConstants;
-import net.sf.samtools.util.IOUtil;
-import net.sf.samtools.util.zip.DeflaterFactory;
-
-/**
- * Abstract class to facilitate writing command-line programs.
- *
- * To use:
- *
- * 1. Extend this class with a concrete class that has data members annotated with @Option, @PositionalArguments
- * and/or @Usage annotations.
- *
- * 2. If there is any custom command-line validation, override customCommandLineValidation().  When this method is
- * called, the command line has been parsed and set into the data members of the concrete class.
- *
- * 3. Implement a method doWork().  This is called after successful command-line processing.  The value it returns is
- * the exit status of the program.  It is assumed that the concrete class emits any appropriate error message before
- * returning non-zero.  doWork() may throw unchecked exceptions, which are caught and reported appropriately.
- *
- * 4. Implement the following static method in the concrete class:
- *
- *     public static void main(String[] argv) {
-        new MyConcreteClass().instanceMainWithExit(argv);
-    }
-
-
- */
-public abstract class CommandLineProgram {
-
-    @Option(common=true, optional=true)
-    public List<File> TMP_DIR = new ArrayList<File>();
-
-    @Option(doc = "Control verbosity of logging.", common=true)
-    public Log.LogLevel VERBOSITY = Log.LogLevel.INFO;
-
-    @Option(doc = "Whether to suppress job-summary info on System.err.", common=true)
-    public Boolean QUIET = false;
-
-    @Option(doc = "Validation stringency for all SAM files read by this program.  Setting stringency to SILENT " +
-            "can improve performance when processing a BAM file in which variable-length data (read, qualities, tags) " +
-            "do not otherwise need to be decoded.", common=true)
-    public SAMFileReader.ValidationStringency VALIDATION_STRINGENCY = SAMFileReader.ValidationStringency.DEFAULT_STRINGENCY;
-
-    @Option(doc = "Compression level for all compressed files created (e.g. BAM and GELI).", common=true)
-    public int COMPRESSION_LEVEL = BlockCompressedStreamConstants.DEFAULT_COMPRESSION_LEVEL;
-
-    @Option(doc = "When writing SAM files that need to be sorted, this will specify the number of records stored in RAM before spilling to disk. Increasing this number reduces the number of file handles needed to sort a SAM file, and increases the amount of RAM needed.", optional=true, common=true)
-    public Integer MAX_RECORDS_IN_RAM = SAMFileWriterImpl.getDefaultMaxRecordsInRam();
-
-    @Option(doc = "Whether to create a BAM index when writing a coordinate-sorted BAM file.", common=true)
-    public Boolean CREATE_INDEX = Defaults.CREATE_INDEX;
-
-    @Option(doc="Whether to create an MD5 digest for any BAM or FASTQ files created.  ", common=true)
-    public boolean CREATE_MD5_FILE = Defaults.CREATE_MD5;
-
-    private final String standardUsagePreamble = CommandLineParser.getStandardUsagePreamble(getClass());
-
-    /**
-    * Initialized in parseArgs.  Subclasses may want to access this to do their
-    * own validation, and then print usage using commandLineParser.
-    */
-    private CommandLineParser commandLineParser;
-
-    private final List<Header> defaultHeaders = new ArrayList<Header>();
-
-    /**
-    * The reconstructed commandline used to run this program. Used for logging
-    * and debugging.
-    */
-    private String commandLine;
-
-    /**
-    * Do the work after command line has been parsed. RuntimeException may be
-    * thrown by this method, and are reported appropriately.
-    * @return program exit status.
-    */
-    protected abstract int doWork();
-
-    public void instanceMainWithExit(final String[] argv) {
-        System.exit(instanceMain(argv));
-    }
-
-    public int instanceMain(final String[] argv) {
-        if (!parseArgs(argv)) {
-            return 1;
-        }
-
-        // Provide one temp directory if the caller didn't
-        if (this.TMP_DIR == null) this.TMP_DIR = new ArrayList<File>();
-        if (this.TMP_DIR.isEmpty()) TMP_DIR.add(IOUtil.getDefaultTmpDir());
-
-        // Build the default headers
-        final Date startDate = new Date();
-        this.defaultHeaders.add(new StringHeader(commandLine));
-        this.defaultHeaders.add(new StringHeader("Started on: " + startDate));
-
-        Log.setGlobalLogLevel(VERBOSITY);
-        final SAMFileReader.ValidationStringency originalStringency = SAMFileReader.getDefaultValidationStringency();
-        SAMFileReader.setDefaultValidationStringency(VALIDATION_STRINGENCY);
-        BlockCompressedOutputStream.setDefaultCompressionLevel(COMPRESSION_LEVEL);
-
-        if (MAX_RECORDS_IN_RAM != null) {
-            SAMFileWriterImpl.setDefaultMaxRecordsInRam(MAX_RECORDS_IN_RAM);
-        }
-
-        if (CREATE_INDEX){
-            SAMFileWriterFactory.setDefaultCreateIndexWhileWriting(true);
-        }
-
-        SAMFileWriterFactory.setDefaultCreateMd5File(CREATE_MD5_FILE);
-
-        for (final File f : TMP_DIR) {
-            // Intentially not checking the return values, because it may be that the program does not
-            // need a tmp_dir. If this fails, the problem will be discovered downstream.
-            if (!f.exists()) f.mkdirs();
-            f.setReadable(true, false);
-            f.setWritable(true, false);
-            System.setProperty("java.io.tmpdir", f.getAbsolutePath()); // in loop so that last one takes effect
-        }
-
-        if (!QUIET) {
-            System.err.println("[" + new Date() + "] " + commandLine);
-
-            // Output a one liner about who/where and what software/os we're running on
-            try {
-            System.err.println("[" + new Date() + "] Executing as " +
-                                       System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() +
-                                       " on " + System.getProperty("os.name") + " " + System.getProperty("os.version") +
-                                       " " + System.getProperty("os.arch") + "; " + System.getProperty("java.vm.name") +
-                                       " " + System.getProperty("java.runtime.version") +
-                                       "; Picard version: " + commandLineParser.getVersion() +
-            " " + (DeflaterFactory.usingIntelDeflater()? "IntelDeflater": "JdkDeflater"));
-            }
-            catch (Exception e) { /* Unpossible! */ }
-        }
-
-        int ret = -1;
-        try {
-            ret = doWork();
-        } finally {
-            SAMFileReader.setDefaultValidationStringency(originalStringency);
-            try {
-                // Emit the time even if program throws
-                if (!QUIET) {
-                    final Date endDate = new Date();
-                    final double elapsedMinutes = (endDate.getTime() - startDate.getTime()) / (1000d * 60d);
-                    final String elapsedString  = new DecimalFormat("#,##0.00").format(elapsedMinutes);
-                    System.err.println("[" + endDate + "] " + getClass().getName() + " done. Elapsed time: " + elapsedString + " minutes.");
-                    System.err.println("Runtime.totalMemory()=" + Runtime.getRuntime().totalMemory());
-                    if (ret != 0 && CommandLineParser.hasWebDocumentation(this.getClass())) System.err.println(CommandLineParser.getFaqLink());
-                }
-            }
-            catch (Throwable e) {
-                // do nothing
-            }
-        }
-        return ret;
-    }
-
-    /**
-    * Put any custom command-line validation in an override of this method.
-    * clp is initialized at this point and can be used to print usage and access argv.
-     * 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.
-    */
-    protected String[] customCommandLineValidation() {
-        final List<String> ret = new ArrayList<String>();
-        for (final Object childOptionsObject : getNestedOptions().values()) {
-            if (childOptionsObject instanceof CommandLineProgram) {
-                final CommandLineProgram childClp = (CommandLineProgram)childOptionsObject;
-                final String[] childErrors = childClp.customCommandLineValidation();
-                if (childErrors != null) {
-                    for (final String error: childErrors) {
-                        ret.add(error);
-                    }
-                }
-            }
-        }
-        if (!ret.isEmpty()) {
-            ret.toArray(new String[ret.size()]);
-        }
-        return null;
-    }
-
-    /**
-    *
-    * @return true if command line is valid
-    */
-    protected boolean parseArgs(final String[] argv) {
-
-        commandLineParser = new CommandLineParser(this);
-        final boolean ret = commandLineParser.parseOptions(System.err, argv);
-        commandLine = commandLineParser.getCommandLine();
-        if (!ret) {
-            return false;
-        }
-        final String[] customErrorMessages = customCommandLineValidation();
-        if (customErrorMessages != null) {
-            for (final String msg : customErrorMessages) {
-                System.err.println(msg);
-            }
-            commandLineParser.usage(System.err, false);
-            return false;
-        }
-        return true;
-    }
-
-    /** Gets a MetricsFile with default headers already written into it. */
-    protected <A extends MetricBase,B extends Comparable<?>> MetricsFile<A,B> getMetricsFile() {
-        final MetricsFile<A,B> file = new MetricsFile<A,B>();
-        for (final Header h : this.defaultHeaders) {
-            file.addHeader(h);
-        }
-
-        return file;
-    }
-
-    public String getStandardUsagePreamble() {
-        return standardUsagePreamble;
-    }
-
-    public CommandLineParser getCommandLineParser() {
-        return commandLineParser;
-    }
-
-    /**
-     * @return This is a little-used version string that can be put in the @Usage annotation
-     */
-    public String getProgramVersion() {
-        return commandLineParser.getProgramVersion();
-    }
-
-
-    /**
-     * @return Version stored in the manifest of the jarfile.
-     */
-    public String getVersion() {
-        return getCommandLineParser().getVersion();
-    }
-
-    public String getCommandLine() {
-        return commandLine;
-    }
-
-    public void setDefaultHeaders(final List<Header> headers) {
-        this.defaultHeaders.clear();
-        this.defaultHeaders.addAll(headers);
-    }
-
-    public List<Header> getDefaultHeaders() {
-        return this.defaultHeaders;
-    }
-
-    /**
-     * @return Map of nested options, where the key is the prefix to be used when specifying Options inside of a nested
-     * options object, and the value is the nested options object itself.  Default implementation is to return a
-     * map of all the fields annotated with @NestedOptions, with key being the field name.
-     */
-    public Map<String, Object> getNestedOptions() {
-        return CommandLineParser.getNestedOptions(this);
-    }
-
-    /**
-     * @return Map of nested options, where the key is the prefix to be used when specifying Options inside of a nested
-     * options object, and the value is the nested options object itself, for the purpose of generating help.
-     * Default implementation is to return the same map as getNestedOptions().
-     */
-    public Map<String, Object> getNestedOptionsForHelp() {
-        return getNestedOptions();
-    }
-}
diff --git a/src/java/net/sf/picard/cmdline/CreateHtmlDocForProgram.java b/src/java/net/sf/picard/cmdline/CreateHtmlDocForProgram.java
deleted file mode 100644
index 6e6b787..0000000
--- a/src/java/net/sf/picard/cmdline/CreateHtmlDocForProgram.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.cmdline;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-/**
- * Print out the usage for one or more CommandLinePrograms in a form close to what is used in the Sourceforge Picard website.
- *
- * @author alecw at broadinstitute.org
- */
-public class CreateHtmlDocForProgram {
-    public static void main(final String[] args) throws Exception {
-        for (final String clazz : args) {
-            CommandLineProgram mainClass = (CommandLineProgram)Class.forName(clazz).newInstance();
-            CommandLineParser clp = new CommandLineParser(mainClass);
-            clp.htmlUsage(System.out, mainClass.getClass().getSimpleName(), false);
-        }
-    }
-}
diff --git a/src/java/net/sf/picard/cmdline/CreateHtmlDocForStandardOptions.java b/src/java/net/sf/picard/cmdline/CreateHtmlDocForStandardOptions.java
deleted file mode 100644
index b4bda1c..0000000
--- a/src/java/net/sf/picard/cmdline/CreateHtmlDocForStandardOptions.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.cmdline;
-
-public class CreateHtmlDocForStandardOptions {
-    public static void main(final String[] args) throws Exception {
-        System.setProperty("java.io.tmpdir", "<System temp directory>");
-        System.setProperty("user.name", "<current user name>");
-        CommandLineParser clp = new CommandLineParser(new DummyProgram());
-        clp.htmlPrintOptions(System.out, true);
-    }
-
-    static class DummyProgram extends CommandLineProgram {
-        @Override
-        protected int doWork() {
-            return 0;
-        }
-    }
-}
diff --git a/src/java/net/sf/picard/cmdline/NestedOptions.java b/src/java/net/sf/picard/cmdline/NestedOptions.java
deleted file mode 100644
index 8b8b405..0000000
--- a/src/java/net/sf/picard/cmdline/NestedOptions.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2012 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.cmdline;
-
-import java.lang.annotation.*;
-
-/**
- * Used to annotate a field in a CommandLineProgram that holds a instance containing @Option-annotated
- * fields.  To set a value for a nested option on the command line, use <member-name>.<option>=value.
- */
- at Retention(RetentionPolicy.RUNTIME)
- at Target(ElementType.FIELD)
- at Documented
-public @interface NestedOptions {
-    /** Text that appears for this group of options in text describing usage of the command line program. */
-    String doc() default "";
-
-}
diff --git a/src/java/net/sf/picard/cmdline/Option.java b/src/java/net/sf/picard/cmdline/Option.java
deleted file mode 100644
index 278ff09..0000000
--- a/src/java/net/sf/picard/cmdline/Option.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.cmdline;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * Used to annotate which fields of a CommandLineProgram are options given at the command line.
- * If a command line call looks like "cmd option=foo x=y bar baz" the CommandLineProgram
- * would have annotations on fields to handle the values of option and x. All options
- * must be in the form name=value on the command line. The java type of the option
- * will be inferred from the type of the field or from the generic type of the collection
- * if this option is allowed more than once. The type must be an enum or
- * have a constructor with a single String parameter.
- *
- * @author Alec Wysoker
- */
- at Retention(RetentionPolicy.RUNTIME)
- at Target(ElementType.FIELD)
- at Documented
-public @interface Option {
-	/** The name of the option as it would appear on the command line. */
-    String shortName() default "";
-    
-    /** Text that appears for this option in text describing usage of the command line program. */
-    String doc() default "";
-    
-    /**
-     * If set to false, an exception will be thrown if the option is not specified.
-     * If 2 options are mutually exclusive and both have optional=false it will be
-     * interpreted as one or the other is required and an exception will only be thrown if
-     * neither are specified. 
-     */
-    boolean optional() default false;
-    
-    /** 
-     * Array of option names that cannot be used in conjunction with this one.
-     * If 2 options are mutually exclusive and both have optional=false it will be
-     * interpreted as one OR the other is required and an exception will only be thrown if
-     * neither are specified. 
-     */ 
-    String[] mutex() default {};
-    
-    /** The minimum number of times that this option is required. */
-    int minElements() default 0;
-    
-    /** The maximum number of times this option is allowed. */
-    int maxElements() default Integer.MAX_VALUE;
-
-    /**
-     * Is this an Option common to all command line programs.  If it is then it will only
-     * be displayed in usage info when H or STDHELP is used to display usage.
-     */
-    boolean common() default false;
-}
diff --git a/src/java/net/sf/picard/cmdline/PositionalArguments.java b/src/java/net/sf/picard/cmdline/PositionalArguments.java
deleted file mode 100644
index 6cee5de..0000000
--- a/src/java/net/sf/picard/cmdline/PositionalArguments.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.cmdline;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * Used to annotate which field of a CommandLineProgram should store parameters given at the 
- * command line which are not options. Fields with this annotation must be a Collection
- * (and probably should be a List if order is important).
- * If a command line call looks like "cmd option=foo x=y bar baz" the values "bar" and "baz"
- * would be added to the collection with this annotation. The java type of the arguments
- * will be inferred from the generic type of the collection. The type must be an enum or
- * have a constructor with a single String parameter.
- *
- * @author Alec Wysoker
- */
- at Retention(RetentionPolicy.RUNTIME)
- at Target(ElementType.FIELD)
- at Documented
-public @interface PositionalArguments {
-    /** The minimum number of arguments required. */
-    int minElements() default 0;
-    
-    /** The maximum number of arguments allowed. */
-    int maxElements() default Integer.MAX_VALUE;
-}
diff --git a/src/java/net/sf/picard/cmdline/StandardOptionDefinitions.java b/src/java/net/sf/picard/cmdline/StandardOptionDefinitions.java
deleted file mode 100644
index 2c6a4e4..0000000
--- a/src/java/net/sf/picard/cmdline/StandardOptionDefinitions.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.cmdline;
-
-/**
- * A set of String constants in which the name of the constant (minus the _SHORT_NAME suffix)
- * is the standard long Option name, and the value of the constant is the standard shortName.
- */
-public class StandardOptionDefinitions {
-    public static final String INPUT_SHORT_NAME = "I";
-    public static final String OUTPUT_SHORT_NAME = "O";
-    public static final String REFERENCE_SHORT_NAME = "R";
-    public static final String SAMPLE_ALIAS_SHORT_NAME = "ALIAS";
-    public static final String LIBRARY_NAME_SHORT_NAME = "LIB";
-    public static final String EXPECTED_INSERT_SIZE_SHORT_NAME = "INSERT";
-    public static final String LANE_SHORT_NAME = "L";
-    public static final String SEQUENCE_DICTIONARY_SHORT_NAME = "SD";
-    public static final String METRICS_FILE_SHORT_NAME = "M";
-    public static final String ASSUME_SORTED_SHORT_NAME = "AS";
-    public static final String PF_READS_ONLY_SHORT_NAME = "PF";
-    public static final String MINIMUM_MAPPING_QUALITY_SHORT_NAME = "MQ";
-    public static final String READ_GROUP_ID_SHORT_NAME = "RG";
-    public static final String PROGRAM_RECORD_ID_SHORT_NAME = "PG";
-    public static final String MINIMUM_LOD_SHORT_NAME = "LOD";
-    public static final String SORT_ORDER_SHORT_NAME = "SO";
-    public static final String USE_ORIGINAL_QUALITIES_SHORT_NAME = "OQ";
-}
diff --git a/src/java/net/sf/picard/cmdline/Usage.java b/src/java/net/sf/picard/cmdline/Usage.java
deleted file mode 100644
index a1a9fbe..0000000
--- a/src/java/net/sf/picard/cmdline/Usage.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.cmdline;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * Annotates the field that contains text to be displayed in a usage message.
- */
- at Retention(RetentionPolicy.RUNTIME)
- at Target(ElementType.FIELD)
- at Documented
-public @interface Usage {
-    String programVersion() default "";
-}
diff --git a/src/java/net/sf/picard/fastq/AsyncFastqWriter.java b/src/java/net/sf/picard/fastq/AsyncFastqWriter.java
deleted file mode 100644
index 557a2b7..0000000
--- a/src/java/net/sf/picard/fastq/AsyncFastqWriter.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package net.sf.picard.fastq;
-
-import net.sf.samtools.util.AbstractAsyncWriter;
-
-/**
- * Implementation of a FastqWriter that provides asynchronous output.
- * @author Tim Fennell
- */
-public class AsyncFastqWriter extends AbstractAsyncWriter<FastqRecord> implements FastqWriter {
-    private final FastqWriter writer;
-
-    public AsyncFastqWriter(final FastqWriter out, final int queueSize) {
-        super(queueSize);
-        this.writer = out;
-    }
-
-    @Override protected String getThreadNamePrefix() { return "FastqWriterThread-"; }
-    @Override protected void synchronouslyWrite(final FastqRecord item) { this.writer.write(item); }
-    @Override protected void synchronouslyClose() { this.writer.close(); }
-}
diff --git a/src/java/net/sf/picard/fastq/BamToBfq.java b/src/java/net/sf/picard/fastq/BamToBfq.java
deleted file mode 100644
index 91dc916..0000000
--- a/src/java/net/sf/picard/fastq/BamToBfq.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.fastq;
-
-import net.sf.picard.fastq.BamToBfqWriter;
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.cmdline.Usage;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.StandardOptionDefinitions;
-
-import java.io.File;
-
-/**
- * CommandLineProgram to generate to bfq files for use by the Maq aligner
- *
- * @author ktibbett at broadinstitute.org
- */
-public class BamToBfq extends CommandLineProgram {
-
-    private static final String PROGRAM_VERSION = "1.0";
-
-    // The following attributes define the command-line arguments
-    @Usage
-    public String USAGE = getStandardUsagePreamble() + "Create BFQ files for use by the Maq aligner.";
-
-    @Option(doc="The BAM file to parse.", shortName=StandardOptionDefinitions.INPUT_SHORT_NAME) public File INPUT;
-    @Option(doc="The analysis directory for the binary output file. ") public File ANALYSIS_DIR;
-    @Option(doc="Flowcell barcode (e.g. 30PYMAAXX).  ", shortName="F", mutex="OUTPUT_FILE_PREFIX") public String FLOWCELL_BARCODE;
-    @Option(doc="Lane number. ", shortName= StandardOptionDefinitions.LANE_SHORT_NAME, optional=true,mutex="OUTPUT_FILE_PREFIX") public Integer LANE;
-    @Option(doc="Prefix for all output files", mutex={"FLOWCELL_BARCODE","LANE"}) public String OUTPUT_FILE_PREFIX;
-    @Option(doc="Number of reads to align (null = all).", shortName="NUM", optional=true) public Integer READS_TO_ALIGN;
-    @Option(doc="Number of reads to break into individual groups for alignment", shortName="CHUNK") public Integer READ_CHUNK_SIZE = 2000000;
-    @Option(doc="Whether this is a paired-end run. ", shortName="PE") public Boolean PAIRED_RUN;
-    @Option(doc="Deprecated option; use READ_NAME_PREFIX instead", mutex="READ_NAME_PREFIX", shortName="RB", optional=true) public String RUN_BARCODE;
-    @Option(doc="Prefix to be stripped off the beginning of all read names  (to make them short enough to run in Maq)", optional=true) public String READ_NAME_PREFIX;
-    @Option(doc="Whether to include non-PF reads", shortName="NONPF", optional=true) public Boolean INCLUDE_NON_PF_READS = false;
-    @Option(doc="Whether to clip adapters from the reads") public boolean CLIP_ADAPTERS = true;
-    @Option(doc="The number of bases from each read to write to the bfq file.  If this is non-null, then " +
-            "only the first BASES_TO_WRITE bases from each read will be written.", optional=true) public Integer BASES_TO_WRITE = null;
-
-    protected int doWork() {
-
-        String outputPrefix = ANALYSIS_DIR.getAbsolutePath();
-        if (!outputPrefix.endsWith("/")) {
-            outputPrefix += "/";
-        }
-        outputPrefix += OUTPUT_FILE_PREFIX + ".";
-
-        BamToBfqWriter writer = new BamToBfqWriter(INPUT, outputPrefix, READS_TO_ALIGN,
-                READ_CHUNK_SIZE, PAIRED_RUN, READ_NAME_PREFIX,
-                INCLUDE_NON_PF_READS, CLIP_ADAPTERS, BASES_TO_WRITE);
-        writer.writeBfqFiles();
-        return 0;
-    }
-
-    public static void main(String[] argv) {
-        System.exit(new BamToBfq().instanceMain(argv));
-    }
-
-    protected String[] customCommandLineValidation() {
-
-        if (OUTPUT_FILE_PREFIX == null) {
-            OUTPUT_FILE_PREFIX = FLOWCELL_BARCODE + "." + LANE;
-        }
-        if (READ_NAME_PREFIX == null) {
-            READ_NAME_PREFIX = RUN_BARCODE + ":";
-        }
-        return null;
-    }
-
-}
\ No newline at end of file
diff --git a/src/java/net/sf/picard/fastq/BamToBfqWriter.java b/src/java/net/sf/picard/fastq/BamToBfqWriter.java
deleted file mode 100644
index ad3b3b2..0000000
--- a/src/java/net/sf/picard/fastq/BamToBfqWriter.java
+++ /dev/null
@@ -1,441 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.fastq;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.filter.AggregateFilter;
-import net.sf.picard.filter.FailsVendorReadQualityFilter;
-import net.sf.picard.filter.FilteringIterator;
-import net.sf.picard.filter.SamRecordFilter;
-import net.sf.picard.filter.TagFilter;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.sam.ReservedTagConstants;
-import net.sf.picard.filter.WholeReadClippedFilter;
-import net.sf.picard.util.Log;
-import net.sf.picard.util.PeekableIterator;
-import net.sf.samtools.SAMFileReader;
-import net.sf.samtools.SAMRecord;
-import net.sf.samtools.SAMFileHeader.SortOrder;
-import net.sf.samtools.util.BinaryCodec;
-
-/**
- * Class to take unmapped reads in BAM file format and create Maq binary fastq format file(s) --
- * one or two of them, depending on whether it's a paired-end read.  This relies on the unmapped
- * BAM file having all paired reads together in order.
- */
-public class BamToBfqWriter {
-
-    private static final int SEED_REGION_LENGTH = 28;
-    private static final int MAX_SEED_REGION_NOCALL_FIXES = 2;
-
-    private final File bamFile;
-    private final String outputPrefix;
-    private final String namePrefix;
-    private final int nameTrim;
-    private boolean pairedReads = false;
-    private int wrote = 0;
-    private int increment = 1;
-    private int chunk = 0;
-    private BinaryCodec codec1;
-    private BinaryCodec codec2;
-    private final Log log = Log.getInstance(BamToBfqWriter.class);
-    private final boolean includeNonPfReads;
-    private final boolean clipAdapters;
-    private final Integer basesToWrite;
-
-    /**
-     * Constructor
-     *
-     * @param bamFile        the BAM file to read from
-     * @param outputPrefix   the directory and file prefix for the binary fastq files
-     * @param total          the total number of records that should be written, drawn evenly
-     *                       from throughout the file (null for all).
-     * @param chunk          the maximum number of records that should be written to any one file
-     * @param pairedReads    whether these reads are from  a paired-end run
-     * @param namePrefix     The string to be stripped off the read name
-     *                       before writing to the bfq file. May be null, in which case
-     *                       the name will not be trimmed.
-     * @param includeNonPfReads whether to include non pf-reads
-     * @param clipAdapters    whether to replace adapters as marked with XT:i clipping position attribute
-     */
-    public BamToBfqWriter(final File bamFile, final String outputPrefix, final Integer total,
-                          final Integer chunk, final boolean pairedReads, String namePrefix,
-                          boolean includeNonPfReads, boolean clipAdapters, Integer basesToWrite) {
-
-        IoUtil.assertFileIsReadable(bamFile);
-        this.bamFile = bamFile;
-        this.outputPrefix = outputPrefix;
-        this.pairedReads = pairedReads;
-        if (total != null) {
-            final double writeable = (double)countWritableRecords();
-            this.increment = (int)Math.floor(writeable/total.doubleValue());
-            if (this.increment == 0) {
-                this.increment = 1;
-            }
-        }
-        if (chunk != null) {
-            this.chunk = chunk;
-        }
-        this.namePrefix = namePrefix;
-        this.nameTrim = namePrefix != null ? namePrefix.length() : 0;
-        this.includeNonPfReads = includeNonPfReads;
-        this.clipAdapters = clipAdapters;
-        this.basesToWrite = basesToWrite;
-    }
-
-    /**
-     * Constructor
-     *
-     * @param bamFile   the BAM file to read from
-     * @param outputPrefix   the directory and file prefix for the binary fastq files
-     * @param pairedReads    whether these reads are from  a paired-end run
-     * @param namePrefix     the barcode of the run (to be stripped off the read name
-     *                       before writing to the bfq file)
-     * @param includeNonPfReads whether to include non pf-reads
-     */
-    public BamToBfqWriter(final File bamFile, final String outputPrefix, final boolean pairedReads,
-                          String namePrefix, boolean includeNonPfReads) {
-        this(bamFile, outputPrefix, null, null, pairedReads, namePrefix, includeNonPfReads, true, null);
-    }
- 
-    /**
-     * Writes the binary fastq file(s) to the output directory
-     */
-    public void writeBfqFiles() {
-
-        final Iterator<SAMRecord> iterator = (new SAMFileReader(IoUtil.openFileForReading(this.bamFile))).iterator();
-
-        // Filter out noise reads and reads that fail the quality filter
-        final TagFilter tagFilter = new TagFilter(ReservedTagConstants.XN, 1);
-        final FailsVendorReadQualityFilter qualityFilter = new FailsVendorReadQualityFilter();
-        final WholeReadClippedFilter clippedFilter = new WholeReadClippedFilter();
-
-
-        if (!pairedReads) {
-            List<SamRecordFilter> filters = new ArrayList<SamRecordFilter>();
-            filters.add(tagFilter);
-            filters.add(clippedFilter);
-            if (!this.includeNonPfReads) {
-                filters.add(qualityFilter);
-            }
-            writeSingleEndBfqs(iterator, filters);
-            codec1.close();
-        }
-        else {
-            writePairedEndBfqs(iterator, tagFilter, qualityFilter, clippedFilter);
-            codec1.close();
-            codec2.close();
-        }
-        log.info("Wrote " + wrote + " bfq records.");
-
-    }
-
-    /**
-     * Path for writing bfqs for paired-end reads
-     *
-     * @param iterator      the iterator witht he SAM Records to write
-     * @param tagFilter     the filter for noise reads
-     * @param qualityFilter the filter for PF reads
-     */
-    private void writePairedEndBfqs(final Iterator<SAMRecord> iterator, final TagFilter tagFilter,
-                                    final FailsVendorReadQualityFilter qualityFilter,
-                                    SamRecordFilter ... otherFilters) {
-        // Open the codecs for writing
-        int fileIndex = 0;
-        initializeNextBfqFiles(fileIndex++);
-
-        int records = 0;
-
-        RECORD_LOOP: while (iterator.hasNext()) {
-            final SAMRecord first = iterator.next();
-            if (!iterator.hasNext()) {
-                throw new PicardException("Mismatched number of records in " + this.bamFile.getAbsolutePath());
-            }
-            final SAMRecord second = iterator.next();
-            if (!second.getReadName().equals(first.getReadName()) ||
-                first.getFirstOfPairFlag() == second.getFirstOfPairFlag()) {
-                throw new PicardException("Unmatched read pairs in " + this.bamFile.getAbsolutePath() +
-                    ": " + first.getReadName() + ", " + second.getReadName() + ".");
-            }
-
-            // If *both* are noise reads, filter them out
-            if (tagFilter.filterOut(first) && tagFilter.filterOut(second))  {
-                continue;
-            }
-
-            // If either fails to pass filter, then exclude them as well
-            if (!includeNonPfReads && (qualityFilter.filterOut(first) || qualityFilter.filterOut(second))) {
-                continue;
-            }
-
-            // If either fails any of the other filters, exclude them both
-            for (SamRecordFilter filter : otherFilters) {
-                if (filter.filterOut(first) || filter.filterOut(second)) {
-                    continue RECORD_LOOP;
-                }
-            }
-
-            // Otherwise, write them out
-            records++;
-            if (records % increment == 0) {
-                first.setReadName(first.getReadName() + "/1");
-                writeFastqRecord(first.getFirstOfPairFlag() ? codec1 : codec2, first);
-                second.setReadName(second.getReadName() + "/2");
-                writeFastqRecord(second.getFirstOfPairFlag() ? codec1 : codec2, second);
-                wrote++;
-                if (wrote % 1000000 == 0) {
-                    log.info(wrote + " records written.");
-                }
-                if (chunk > 0 && wrote % chunk == 0) {
-                    initializeNextBfqFiles(fileIndex++);
-                }
-            }
-        }
-    }
-
-    /**
-     * Path for writing bfqs for single-end reads
-     *
-     * @param iterator  the iterator with he SAM Records to write
-     * @param filters   the list of filters to be applied
-     */
-    private void writeSingleEndBfqs(final Iterator<SAMRecord> iterator, final List<SamRecordFilter> filters) {
-
-        // Open the codecs for writing
-        int fileIndex = 0;
-        initializeNextBfqFiles(fileIndex++);
-
-        int records = 0;
-
-        final FilteringIterator it = new FilteringIterator(iterator, new AggregateFilter(filters));
-        while (it.hasNext()) {
-            final SAMRecord record = it.next();
-            records++;
-            if (records % increment == 0) {
-
-                record.setReadName(record.getReadName() + "/1");
-                writeFastqRecord(codec1, record);
-                wrote++;
-                if (wrote % 1000000 == 0) {
-                    log.info(wrote + " records processed.");
-                }
-                if (chunk > 0 && wrote % chunk == 0) {
-                    initializeNextBfqFiles(fileIndex++);
-                }
-            }
-        }
-    }
-
-    /**
-     * Closes any the open bfq file(s), if any, and opens the new one(s)
-     *
-     * @param fileIndex the index (counter) of the files to write
-     */
-    private void initializeNextBfqFiles(final int fileIndex) {
-        // Close the codecs if they were writing before
-        if (codec1 != null) {
-            codec1.close();
-            if (pairedReads) {
-                codec2.close();
-            }
-        }
-
-        // Open new file, using the fileIndex.
-        final File bfq1 = getOutputFile(this.outputPrefix , 1, fileIndex);
-        codec1 = new BinaryCodec(IoUtil.openFileForWriting(bfq1));
-        log.info("Now writing to file " + bfq1.getAbsolutePath());
-        if (pairedReads) {
-            final File bfq2 = getOutputFile(this.outputPrefix , 2, fileIndex);
-            codec2 = new BinaryCodec(IoUtil.openFileForWriting(bfq2));
-            log.info("Now writing to file " + bfq2.getAbsolutePath());
-        }
-    }
-
-    /**
-     * Writes out a SAMRecord in Maq fastq format
-     *
-     * @param codec the code to write to
-     * @param rec   the SAMRecord to write
-     */
-    private void writeFastqRecord(final BinaryCodec codec, final SAMRecord rec) {
-
-        // Trim the run barcode off the read name
-        String readName = rec.getReadName();
-        if (namePrefix != null && readName.startsWith(namePrefix)) {
-            readName = readName.substring(nameTrim);
-        }
-        // Writes the length of the read name and then the name (null-terminated)
-        codec.writeString(readName, true, true);
-
-        final char[] seqs = rec.getReadString().toCharArray();
-        final char[] quals = rec.getBaseQualityString().toCharArray();
-
-        int retainedLength = seqs.length;
-        if (clipAdapters){
-            // adjust to a shorter length iff clipping tag exists
-            Integer trimPoint = rec.getIntegerAttribute(ReservedTagConstants.XT);
-            if (trimPoint != null) {
-                assert (rec.getReadLength() == seqs.length);
-                retainedLength = Math.min(seqs.length, Math.max(SEED_REGION_LENGTH, trimPoint -1));
-            }
-        }
-
-        // Write the length of the sequence
-        codec.writeInt(basesToWrite != null ? basesToWrite : seqs.length);
-
-        // Calculate and write the sequence and qualities
-        final byte[] seqsAndQuals = encodeSeqsAndQuals(seqs, quals, retainedLength);
-        codec.writeBytes(seqsAndQuals);
-    }
-
-    private byte[] encodeSeqsAndQuals(char[] seqs, char[] quals, int retainedLength) {
-        final byte[] seqsAndQuals = new byte[basesToWrite == null ? seqs.length : basesToWrite];
-
-        int seedRegionNoCallFixes = 0;
-        for (int i = 0; i < retainedLength && i < seqsAndQuals.length; i++) {
-            int quality = Math.min(quals[i]-33, 63);
-            final int base;
-            switch(seqs[i]) {
-                case 'A':
-                case 'a':
-                    base = 0;
-                    break;
-                case 'C':
-                case 'c':
-                    base = 1;
-                    break;
-                case 'G':
-                case 'g':
-                    base = 2;
-                    break;
-                case 'T':
-                case 't':
-                    base = 3;
-                    break;
-                case 'N':
-                case 'n':
-                case '.':
-                    base = 0;
-                    if (i < SEED_REGION_LENGTH ) {
-                        if (seedRegionNoCallFixes < MAX_SEED_REGION_NOCALL_FIXES) {
-                            quality = 1;
-                            seedRegionNoCallFixes++;
-                        }
-                        else {
-                            quality = 0;
-                        }
-                    }
-                    else {
-                        quality = 1;
-                    }
-                    break;
-                default:
-                    throw new PicardException("Unknown base when writing bfq file: " + seqs[i]);
-            }
-            seqsAndQuals[i] = encodeBaseAndQuality(base, quality);
-        }
-        // rewrite clipped adapter with all A's of quality 1
-        for (int i = retainedLength; i < seqsAndQuals.length; i++) {
-            seqsAndQuals[i] = encodeBaseAndQuality(0, 1);
-        }
-
-        return seqsAndQuals;
-    }
-
-    private byte encodeBaseAndQuality(int base, int quality) {
-        return (byte) ((base << 6) | quality);
-    }
-
-    /**
-     * Count the number of records in the bamFile that could potentially be written
-     *
-     * @return  the number of records in the Bam file
-     */
-    private int countWritableRecords() {
-        int count = 0;
-        
-        SAMFileReader reader = new SAMFileReader(IoUtil.openFileForReading(this.bamFile));
-        if(!reader.getFileHeader().getSortOrder().equals(SortOrder.queryname)) {        	
-        	//this is a fix for issue PIC-274: It looks like BamToBfqWriter requires that the input BAM is queryname sorted, 
-        	//but it doesn't check this early, nor produce an understandable error message."
-        	throw new PicardException("Input file (" + this.bamFile.getAbsolutePath() +") needs to be sorted by queryname.");
-        }
-        final PeekableIterator<SAMRecord> it = new PeekableIterator<SAMRecord>(reader.iterator());
-        if (!this.pairedReads) {
-            // Filter out noise reads and reads that fail the quality filter
-            final List<SamRecordFilter> filters = new ArrayList<SamRecordFilter>();
-            filters.add(new TagFilter(ReservedTagConstants.XN, 1));
-            if (!this.includeNonPfReads) {
-                filters.add(new FailsVendorReadQualityFilter());
-            }
-            final FilteringIterator itr = new FilteringIterator(it, new AggregateFilter(filters));
-            while (itr.hasNext()) {
-                itr.next();
-                count++;
-            }
-        }
-        else {
-            while (it.hasNext()) {
-                final SAMRecord first = it.next();
-                final SAMRecord second = it.next();
-                // If both are noise reads, filter them out
-                if (first.getAttribute(ReservedTagConstants.XN) != null &&
-                    second.getAttribute(ReservedTagConstants.XN) != null)  {
-                    // skip it
-                }
-                // If either fails to pass filter, then exclude them as well
-                else if (!this.includeNonPfReads && (first.getReadFailsVendorQualityCheckFlag() || second.getReadFailsVendorQualityCheckFlag()) ) {
-                    // skip it
-                }
-                // Otherwise, write them out
-                else {
-                    count++;
-                }
-            }
-        }
-        it.close();
-        return count;
-    }
-
-    /**
-     * Constructs the name for the output file and returns the file
-     *
-     * @param outputPrefix        the directory and file prefix for the output bfq file
-     * @param read                whether this is the file for the first or second read
-     * @param index               used in file name
-     * @return                    a new File object for the bfq file.
-     */
-    private File getOutputFile(final String outputPrefix, final int read, final int index) {
-        final File result = new File(outputPrefix + index + "." + read + ".bfq");
-        IoUtil.assertFileIsWritable(result);
-        return result;
-    }
-
-}
diff --git a/src/java/net/sf/picard/fastq/BasicFastqWriter.java b/src/java/net/sf/picard/fastq/BasicFastqWriter.java
deleted file mode 100644
index 4579725..0000000
--- a/src/java/net/sf/picard/fastq/BasicFastqWriter.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.fastq;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.io.IoUtil;
-import net.sf.samtools.Defaults;
-import net.sf.samtools.util.IOUtil;
-
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.OutputStream;
-import java.io.PrintStream;
-
-/**
- * In general FastqWriterFactory should be used so that AsyncFastqWriter can be enabled, but there are some
- * cases in which that behavior is explicitly not wanted.
- */
-public class BasicFastqWriter implements FastqWriter {
-    private final String path;
-    private final PrintStream writer;
-
-    public BasicFastqWriter(final File file) {
-        this(file, false);
-    }
-
-    public BasicFastqWriter(final File file, final boolean createMd5) {
-        this(file, new PrintStream(IOUtil.maybeBufferOutputStream(maybeMd5Wrap(file, createMd5))));
-    }
-
-    private BasicFastqWriter(final File file, final PrintStream writer) {
-        this.path = (file != null? file.getAbsolutePath(): "");
-        this.writer = writer;
-    }
-
-    public BasicFastqWriter(final PrintStream writer) {
-        this(null, writer);
-    }
-
-    public void write(final FastqRecord rec) {
-        writer.print(FastqConstants.SEQUENCE_HEADER);
-        writer.println(rec.getReadHeader());
-        writer.println(rec.getReadString());
-        writer.print(FastqConstants.QUALITY_HEADER);
-        writer.println(rec.getBaseQualityHeader() == null ? "" : rec.getBaseQualityHeader());
-        writer.println(rec.getBaseQualityString());
-        if (writer.checkError()) {
-            throw new PicardException("Error in writing fastq file " + path);
-        }
-    }
-
-    public void flush() {
-        writer.flush();
-    }
-
-    public void close() {
-        writer.close();
-    }
-
-    private static OutputStream maybeMd5Wrap(final File file, final boolean createMd5) {
-        if (createMd5) {
-            return IoUtil.openFileForMd5CalculatingWriting(file);
-        } else {
-            return IoUtil.openFileForWriting(file);
-        }
-    }
-}
diff --git a/src/java/net/sf/picard/fastq/Casava18ReadNameEncoder.java b/src/java/net/sf/picard/fastq/Casava18ReadNameEncoder.java
deleted file mode 100644
index 90c1ade..0000000
--- a/src/java/net/sf/picard/fastq/Casava18ReadNameEncoder.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package net.sf.picard.fastq;
-
-import net.sf.picard.illumina.parser.ClusterData;
-import net.sf.samtools.util.StringUtil;
-
-/**
- * A read name encoder conforming to the standard described by Illumina Casava 1.8.
- * 
- * @see <a href="http://biowulf.nih.gov/apps/CASAVA1_8_Changes.pdf">Casava 1.8 update</a>
- * @author mccowan
- */
-public class Casava18ReadNameEncoder implements ReadNameEncoder {
-    final static int CONTROL_FIELD_VALUE = 0;
-    final String runId, instrumentName, flowcellId;
-    
-    static enum PassesFilterLabel {
-        Y, N;
-        static PassesFilterLabel get(final boolean passesFilter) {
-            return passesFilter ? Y : N;
-        }
-    }
-    
-    public Casava18ReadNameEncoder(final String instrumentName, final String runId, final String flowcellId) {
-        this.runId = runId;
-        this.instrumentName = instrumentName;
-        this.flowcellId = flowcellId;
-    }
-
-    @Override
-    public String generateReadName(final ClusterData cluster, final Integer pairNumber) {
-        return String.format(
-                "%s:%s:%s:%d:%d:%d:%d %s:%s:%d:%s",
-                instrumentName,
-                runId,
-                flowcellId,
-                cluster.getLane(),
-                cluster.getTile(),
-                cluster.getX(),
-                cluster.getY(),
-                StringUtil.asEmptyIfNull(pairNumber),
-                PassesFilterLabel.get(cluster.isPf()),
-                CONTROL_FIELD_VALUE,
-                StringUtil.asEmptyIfNull(cluster.getMatchedBarcode())
-        );
-    }
-}
diff --git a/src/java/net/sf/picard/fastq/FastqConstants.java b/src/java/net/sf/picard/fastq/FastqConstants.java
deleted file mode 100644
index 0179e4e..0000000
--- a/src/java/net/sf/picard/fastq/FastqConstants.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.fastq;
-
-/**
- * @author alecw at broadinstitute.org
- */
-public class FastqConstants {
-    public static final String SEQUENCE_HEADER = "@" ;
-    public static final String QUALITY_HEADER = "+" ;
-}
diff --git a/src/java/net/sf/picard/fastq/FastqReader.java b/src/java/net/sf/picard/fastq/FastqReader.java
deleted file mode 100755
index 65f1282..0000000
--- a/src/java/net/sf/picard/fastq/FastqReader.java
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.fastq;
-
-import net.sf.picard.PicardException;
-import net.sf.samtools.util.RuntimeIOException;
-import net.sf.samtools.util.StringUtil;
-import net.sf.picard.io.IoUtil;
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-import java.io.*;
-
-/**
- * Reads a fastq file.
- * WARNING: Despite the fact that this class implements Iterable, calling iterator() method does not
- * start iteration from the beginning of the file.  Developers should probably not call iterator()
- * directly.  It is provided so that this class can be used in Java for-each loop.
- */
-public class FastqReader implements Iterator<FastqRecord>, Iterable<FastqRecord>, Closeable {
-    final private File fastqFile;
-    final private BufferedReader reader;
-    private FastqRecord nextRecord;
-    private int line=1;
-
-    final private boolean skipBlankLines;
-
-    public FastqReader(final File file) {
-        this(file,false);
-    }
-
-    public FastqReader(final File file, final boolean skipBlankLines) {
-        this.skipBlankLines=skipBlankLines;
-        fastqFile = file;
-        reader = IoUtil.openFileForBufferedReading(fastqFile);
-        nextRecord = readNextRecord();
-    }
-
-    public FastqReader(final BufferedReader reader) {
-        this(null, reader);
-    }
-
-    public FastqReader(final File file, final BufferedReader reader) {
-        fastqFile = file;
-        this.reader = reader;
-        nextRecord = readNextRecord();
-        skipBlankLines = false;
-    }
-
-    private FastqRecord readNextRecord() {
-        try {
-
-            // Read sequence header
-            final String seqHeader = readLineConditionallySkippingBlanks();
-            if (seqHeader == null) return null ;
-            if (StringUtil.isBlank(seqHeader)) {
-                throw new PicardException(error("Missing sequence header"));
-            }
-            if (!seqHeader.startsWith(FastqConstants.SEQUENCE_HEADER)) {
-                throw new PicardException(error("Sequence header must start with "+ FastqConstants.SEQUENCE_HEADER+": "+seqHeader));
-            }
-
-            // Read sequence line
-            final String seqLine = readLineConditionallySkippingBlanks();
-            checkLine(seqLine,"sequence line");
-
-            // Read quality header
-            final String qualHeader = readLineConditionallySkippingBlanks();
-            checkLine(qualHeader,"quality header");
-            if (!qualHeader.startsWith(FastqConstants.QUALITY_HEADER)) {
-                throw new PicardException(error("Quality header must start with "+ FastqConstants.QUALITY_HEADER+": "+qualHeader));
-            }
-
-            // Read quality line
-            final String qualLine = readLineConditionallySkippingBlanks();
-            checkLine(qualLine,"quality line");
-
-            // Check sequence and quality lines are same length
-            if (seqLine.length() != qualLine.length()) {
-                throw new PicardException(error("Sequence and quality line must be the same length"));
-            }
-
-            final FastqRecord frec = new FastqRecord(seqHeader.substring(1, seqHeader.length()), seqLine,
-                    qualHeader.substring(1, qualHeader.length()), qualLine);
-            line += 4 ;
-            return frec ;
-
-        } catch (IOException e) {
-            throw new PicardException(String.format("Error reading fastq '%s'", getAbsolutePath()), e);
-        }
-    }
-
-    public boolean hasNext() { return nextRecord != null; }
-
-    public FastqRecord next() {
-        if (!hasNext()) {
-            throw new NoSuchElementException("next() called when !hasNext()");
-        }
-        final FastqRecord rec = nextRecord;
-        nextRecord = readNextRecord();
-        return rec;
-    }
-
-    public void remove() { throw new UnsupportedOperationException("Unsupported operation"); }
-
-    /**
-     * WARNING: Despite the fact that this class implements Iterable, calling iterator() method does not
-     * start iteration from the beginning of the file.  Developers should probably not call iterator()
-     * directly.  It is provided so that this class can be used in Java for-each loop.
-     */
-    public Iterator<FastqRecord> iterator() { return this; }
-
-    public int getLineNumber() { return line ; }
-
-
-    /**
-     * @return Name of FASTQ being read, or null if not known.
-     */
-    public File getFile() { return fastqFile ; }
-
-    public void close() {
-        try {
-            reader.close();
-        } catch (IOException e) {
-            throw new PicardException("IO problem in fastq file "+getAbsolutePath(), e);
-        }
-    }
-
-    private void checkLine(final String line, final String kind) {
-        if (line == null) {
-            throw new PicardException(error("File is too short - missing "+kind+" line"));
-        }
-        if (StringUtil.isBlank(line)) {
-            throw new PicardException(error("Missing "+kind));
-        }
-    }
-
-    private String error(final String msg) {
-        return msg + " at line "+line+" in fastq "+getAbsolutePath();
-    }
-
-    private String getAbsolutePath() {
-        if (fastqFile == null) return "";
-        else return fastqFile.getAbsolutePath();
-    }
-
-    private String readLineConditionallySkippingBlanks() throws IOException {
-        String line;
-        do {
-            line = reader.readLine();
-            if (line == null) return line;
-        } while(skipBlankLines && StringUtil.isBlank(line));
-        return line;
-    }
-
-
-}
diff --git a/src/java/net/sf/picard/fastq/FastqRecord.java b/src/java/net/sf/picard/fastq/FastqRecord.java
deleted file mode 100755
index e4830c6..0000000
--- a/src/java/net/sf/picard/fastq/FastqRecord.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.fastq;
-
-/**
- * Represents a fastq record, fairly literally, i.e. without any conversion.
- */
-public class FastqRecord {
-
-    private final String seqHeaderPrefix;
-    private final String seqLine;
-    private final String qualHeaderPrefix;
-    private final String qualLine;
-
-    public FastqRecord(final String seqHeaderPrefix, final String seqLine, final String qualHeaderPrefix, final String qualLine) {
-        if (seqHeaderPrefix != null && seqHeaderPrefix.length() > 0) this.seqHeaderPrefix = seqHeaderPrefix;
-        else this.seqHeaderPrefix = null;
-        if (qualHeaderPrefix != null && qualHeaderPrefix.length() > 0) this.qualHeaderPrefix = qualHeaderPrefix;
-        else this.qualHeaderPrefix = null;
-        this.seqLine = seqLine ;
-        this.qualLine = qualLine ;
-    }
-
-    public String getReadHeader() { return seqHeaderPrefix; }
-    public String getReadString() { return seqLine; }
-    public String getBaseQualityHeader() { return qualHeaderPrefix; }
-    public String getBaseQualityString() { return qualLine; }
-}
diff --git a/src/java/net/sf/picard/fastq/FastqWriter.java b/src/java/net/sf/picard/fastq/FastqWriter.java
deleted file mode 100644
index 30b5978..0000000
--- a/src/java/net/sf/picard/fastq/FastqWriter.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package net.sf.picard.fastq;
-
-import java.io.Closeable;
-
-/**
- * Simple interface for a class that can write out fastq records.
- *
- * @author Tim Fennell
- */
-public interface FastqWriter {
-    void write(final FastqRecord rec);
-    void close();
-}
diff --git a/src/java/net/sf/picard/fastq/FastqWriterFactory.java b/src/java/net/sf/picard/fastq/FastqWriterFactory.java
deleted file mode 100644
index 5045a6f..0000000
--- a/src/java/net/sf/picard/fastq/FastqWriterFactory.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package net.sf.picard.fastq;
-
-import net.sf.samtools.Defaults;
-
-import java.io.File;
-
-/**
- * Factory class for creating FastqWriter objects.
- *
- * @author Tim Fennell
- */
-public class FastqWriterFactory {
-    boolean useAsyncIo = Defaults.USE_ASYNC_IO;
-    boolean createMd5  = Defaults.CREATE_MD5;
-
-    /** Sets whether or not to use async io (i.e. a dedicated thread per writer. */
-    public void setUseAsyncIo(final boolean useAsyncIo) { this.useAsyncIo = useAsyncIo; }
-
-    /** If true, compute MD5 and write appropriately-named file when file is closed. */
-    public void setCreateMd5(final boolean createMd5) { this.createMd5 = createMd5; }
-
-    public FastqWriter newWriter(final File out) {
-        final FastqWriter writer = new BasicFastqWriter(out, createMd5);
-        if (useAsyncIo) {
-            return new AsyncFastqWriter(writer, AsyncFastqWriter.DEFAULT_QUEUE_SIZE);
-        }
-        else {
-            return writer;
-        }
-    }
-}
diff --git a/src/java/net/sf/picard/fastq/IlluminaReadNameEncoder.java b/src/java/net/sf/picard/fastq/IlluminaReadNameEncoder.java
deleted file mode 100644
index a00dc55..0000000
--- a/src/java/net/sf/picard/fastq/IlluminaReadNameEncoder.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package net.sf.picard.fastq;
-
-import net.sf.picard.illumina.parser.ClusterData;
-
-/**
- * A read name encoder following the encoding initially produced by picard fastq writers.
- * 
- * @see <a href="http://en.wikipedia.org/wiki/FASTQ_format#Illumina_sequence_identifiers">Illumina sequence identifiers</a> almost describes the format used here, except instead of an instrumnet name, we write the run barcode 
- * @author mccowan
- */
-public class IlluminaReadNameEncoder implements ReadNameEncoder {
-    final String runBarcode;
-    public IlluminaReadNameEncoder(final String runBarcode) {
-        this.runBarcode = runBarcode;
-    }
-    
-    @Override
-    public String generateReadName(final ClusterData cluster, final Integer pairNumber) {
-        return runBarcode + ":" + cluster.getLane() + ":" + cluster.getTile() + ":" + cluster.getX() + ":" + cluster.getY() + generatePairNumberSuffix(pairNumber);
-    }
-    
-    private static String generatePairNumberSuffix(final Integer pairNumber) {
-        if (pairNumber == null)
-            return ""; 
-        else
-            return "/" + pairNumber;
-    }
-}
diff --git a/src/java/net/sf/picard/fastq/ReadNameEncoder.java b/src/java/net/sf/picard/fastq/ReadNameEncoder.java
deleted file mode 100644
index 2ede364..0000000
--- a/src/java/net/sf/picard/fastq/ReadNameEncoder.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package net.sf.picard.fastq;
-
-import net.sf.picard.illumina.parser.ClusterData;
-
-/**
- * @author mccowan
- */
-public interface ReadNameEncoder {
-    /**
-     * Generates a read name string for the provided cluster. 
-     *
-     * @param cluster The cluster whose reads are having its name generated
-     * @param pairNumber 1 if this is the first of the pair, 2 if it is the second, or null if this not a paired read.
-     * @return The read name
-     */
-    String generateReadName(ClusterData cluster, Integer pairNumber);
-}
diff --git a/src/java/net/sf/picard/filter/AggregateFilter.java b/src/java/net/sf/picard/filter/AggregateFilter.java
deleted file mode 100644
index 90cee12..0000000
--- a/src/java/net/sf/picard/filter/AggregateFilter.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.filter;
-
-import java.util.List;
-
-import net.sf.samtools.SAMRecord;
-
-/**
- * Aggregates multiple filters and provides a method for applying them all to a given record with
- * one method call.
- *
- * $Id$
- */
-public class AggregateFilter implements SamRecordFilter {
-
-    private final List<SamRecordFilter> filters;
-
-    /**
-     * Constructor
-     * @param filters   the list of filters that this Aggregator applies
-     */
-    public AggregateFilter(final List<SamRecordFilter> filters) {
-        this.filters = filters;
-    }
-
-    /**
-     * Determines whether a SAMRecord matches this filter
-     *
-     * @param record    the SAMRecord to evaluate
-     * @return  true if the SAMRecord matches at least one filter, otherwise false
-     */
-    public boolean filterOut(final SAMRecord record) {
-        for (final SamRecordFilter filter : filters) {
-            if (filter.filterOut(record)) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    /**
-     * Determines whether a pair of SAMRecord matches this filter
-     *
-     * @param first  the first SAMRecord to evaluate
-     * @param second the second SAMRecord to evaluate
-     *
-     * @return true if the SAMRecords matches the filter, otherwise false
-     */
-    public boolean filterOut(final SAMRecord first, final SAMRecord second) {
-         for (final SamRecordFilter filter : filters) {
-            if (filter.filterOut(first, second)) {
-                return true;
-            }
-        }
-        return false;
-    }
-}
diff --git a/src/java/net/sf/picard/filter/AlignedFilter.java b/src/java/net/sf/picard/filter/AlignedFilter.java
deleted file mode 100644
index bbc2685..0000000
--- a/src/java/net/sf/picard/filter/AlignedFilter.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.filter;
-
-import net.sf.samtools.SAMRecord;
-
-/**
- * Filter to either include or exclude aligned reads
- *
- * $Id$
- */
-public class AlignedFilter implements SamRecordFilter {
-
-    private boolean includeAligned = false;
-
-    public AlignedFilter(final boolean includeAligned) {
-        this.includeAligned = includeAligned;
-    }
-
-    /**
-     * Determines whether a SAMRecord matches this filter
-     *
-     * @param record the SAMRecord to evaluate
-     *
-     * @return true if the SAMRecord matches the filter, otherwise false
-     */
-    public boolean filterOut(final SAMRecord record) {
-        if (includeAligned) {
-            if (!record.getReadUnmappedFlag()) {
-                return false;
-            }
-        } else {
-            // exclude aligned
-            if (record.getReadUnmappedFlag()) {
-                return false;
-            }
-        }
-
-        return true;
-    }
-
-    /**
-     * Determines whether a pair of SAMRecord matches this filter
-     *
-     * @param first  the first SAMRecord to evaluate
-     * @param second the second SAMRecord to evaluate
-     *
-     * @return true if the SAMRecords matches the filter, otherwise false
-     */
-    public boolean filterOut(final SAMRecord first, final SAMRecord second) {
-
-        if (includeAligned) {
-            // both first and second must be mapped for it to not be filtered out
-            if (!first.getReadUnmappedFlag() && !second.getReadUnmappedFlag()) {
-                return false;
-            }
-        } else {
-            // exclude aligned - if either first or second is unmapped don't filter it out
-            if (first.getReadUnmappedFlag() || second.getReadUnmappedFlag()) {
-                return false;
-            }
-        }
-
-        return true;
-    }
-}
\ No newline at end of file
diff --git a/src/java/net/sf/picard/filter/DuplicateReadFilter.java b/src/java/net/sf/picard/filter/DuplicateReadFilter.java
deleted file mode 100644
index 8a6f5cd..0000000
--- a/src/java/net/sf/picard/filter/DuplicateReadFilter.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.filter;
-import net.sf.samtools.SAMRecord;
-
-/**
- * Filter out SAMRecords with DuplicateRead flag set
- *
- * $Id$
- */
-public class DuplicateReadFilter implements SamRecordFilter {
-    /**
-     * @param record the SAMRecord to evaluate
-     * @return true if the SAMRecord matches the filter, otherwise false
-     */
-    public boolean filterOut(final SAMRecord record) {
-        return record.getDuplicateReadFlag();
-    }
-
-    /**
-     * Determines whether a pair of SAMRecord matches this filter
-     *
-     * @param first  the first SAMRecord to evaluate
-     * @param second the second SAMRecord to evaluate
-     *
-     * @return true if the SAMRecords matches the filter, otherwise false
-     */
-    public boolean filterOut(final SAMRecord first, final SAMRecord second) {
-        throw new UnsupportedOperationException("Paired DuplicateReadFilter filter not implemented!");
-    }
-}
diff --git a/src/java/net/sf/picard/filter/FailsVendorReadQualityFilter.java b/src/java/net/sf/picard/filter/FailsVendorReadQualityFilter.java
deleted file mode 100644
index 1610cf2..0000000
--- a/src/java/net/sf/picard/filter/FailsVendorReadQualityFilter.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.filter;
-
-import net.sf.samtools.SAMRecord;
-
-/**
- * Filter for filtering out reads that do not pass the quality filter
- *
- * $Id$
- */
-public class FailsVendorReadQualityFilter implements SamRecordFilter {
-
-    /**
-     * Determines whether a SAMRecord matches this filter
-     *
-     * @param record    the SAMRecord to evaluate
-     * @return  true if the SAMRecord matches the filter, otherwise false
-     */
-    public boolean filterOut(final SAMRecord record) {
-        return record.getReadFailsVendorQualityCheckFlag();
-    }
-
-    /**
-     * Determines whether a pair of SAMRecord matches this filter
-     *
-     * @param first  the first SAMRecord to evaluate
-     * @param second the second SAMRecord to evaluate
-     *
-     * @return true if the SAMRecords matches the filter, otherwise false
-     */
-    public boolean filterOut(final SAMRecord first, final SAMRecord second) {
-        // if either fails, exclude them both
-        return (first.getReadFailsVendorQualityCheckFlag() || second.getReadFailsVendorQualityCheckFlag());
-    }
-}
diff --git a/src/java/net/sf/picard/filter/FilteringIterator.java b/src/java/net/sf/picard/filter/FilteringIterator.java
deleted file mode 100644
index 769ae75..0000000
--- a/src/java/net/sf/picard/filter/FilteringIterator.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.filter;
-
-import net.sf.samtools.SamPairUtil;
-import net.sf.picard.util.PeekableIterator;
-import net.sf.samtools.SAMFileHeader;
-import net.sf.samtools.SAMRecord;
-import net.sf.samtools.SAMRecordIterator;
-import net.sf.samtools.util.CloseableIterator;
-import net.sf.samtools.util.CloserUtil;
-
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-
-/**
- * Filtering Iterator which takes a filter and an iterator and iterates through only those records
- * which are not rejected by the filter.
- * <p/>
- * $Id$
- *
- * @author Kathleen Tibbetts
- */
-public class FilteringIterator implements CloseableIterator<SAMRecord> {
-
-    private final PeekableIterator<SAMRecord> iterator;
-    private final SamRecordFilter filter;
-    private boolean filterReadPairs = false;
-    private SAMRecord next = null;
-
-    /**
-     * Constructor
-     *
-     * @param iterator     the backing iterator
-     * @param filter       the filter (which may be a FilterAggregator)
-     * @param filterByPair if true, filter reads in pairs
-     */
-    public FilteringIterator(final Iterator<SAMRecord> iterator, final SamRecordFilter filter,
-                             final boolean filterByPair) {
-
-        if (filterByPair && iterator instanceof SAMRecordIterator) {
-            ((SAMRecordIterator)iterator).assertSorted(SAMFileHeader.SortOrder.queryname);
-        }
-
-        this.iterator = new PeekableIterator<SAMRecord>(iterator);
-        this.filter = filter;
-        this.filterReadPairs = filterByPair;
-        next = getNextRecord();
-    }
-
-    /**
-     * Constructor
-     *
-     * @param iterator the backing iterator
-     * @param filter   the filter (which may be a FilterAggregator)
-     */
-    public FilteringIterator(final Iterator<SAMRecord> iterator, final SamRecordFilter filter) {
-        this.iterator = new PeekableIterator<SAMRecord>(iterator);
-        this.filter = filter;
-        next = getNextRecord();
-    }
-
-    /**
-     * Returns true if the iteration has more elements.
-     *
-     * @return true if the iteration has more elements.  Otherwise returns false.
-     */
-    public boolean hasNext() {
-        return next != null;
-    }
-
-    /**
-     * Returns the next element in the iteration.
-     *
-     * @return the next element in the iteration
-     * @throws java.util.NoSuchElementException
-     *
-     */
-    public SAMRecord next() {
-        if (next == null) {
-            throw new NoSuchElementException("Iterator has no more elements.");
-        }
-        final SAMRecord result = next;
-        next = getNextRecord();
-        return result;
-    }
-
-    /**
-     * Required method for Iterator API.
-     *
-     * @throws UnsupportedOperationException
-     */
-    public void remove() {
-        throw new UnsupportedOperationException("Remove() not supported by FilteringIterator");
-    }
-
-    public void close() {
-        CloserUtil.close(iterator);
-    }
-
-    /**
-     * Gets the next record from the underlying iterator that passes the filter
-     *
-     * @return SAMRecord    the next filter-passing record
-     */
-    private SAMRecord getNextRecord() {
-
-        while (iterator.hasNext()) {
-            final SAMRecord record = iterator.next();
-
-            if (filterReadPairs && record.getReadPairedFlag() && record.getFirstOfPairFlag() &&
-                iterator.hasNext()) {
-
-                SamPairUtil.assertMate(record, iterator.peek());
-
-                if (filter.filterOut(record, iterator.peek())) {
-                    // skip second read
-                    iterator.next();
-                } else {
-                    return record;
-                }
-            } else if (filterReadPairs && record.getReadPairedFlag() &&
-                record.getSecondOfPairFlag()) {
-                // assume that we did a filterOut(first, second) and it passed the filter
-                return record;
-            } else if (!filter.filterOut(record)) {
-                return record;
-            }
-        }
-
-        return null;
-    }
-}
\ No newline at end of file
diff --git a/src/java/net/sf/picard/filter/IntervalFilter.java b/src/java/net/sf/picard/filter/IntervalFilter.java
deleted file mode 100644
index a49a030..0000000
--- a/src/java/net/sf/picard/filter/IntervalFilter.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.filter;
-
-import net.sf.picard.util.Interval;
-import net.sf.picard.util.IntervalUtil;
-import net.sf.samtools.SAMFileHeader;
-import net.sf.samtools.SAMRecord;
-
-import java.util.Iterator;
-import java.util.List;
-
-/**
- * Filter SAMRecords so that only those that overlap the given list of intervals.
- * It is required that the SAMRecords are passed in coordinate order
- *
- * $Id$
- *
- * @author alecw at broadinstitute.org
- */
-public class IntervalFilter implements SamRecordFilter {
-    private final Iterator<Interval> intervals;
-    /**
-     * Null only if there are no more intervals
-     */
-    private final SAMFileHeader samHeader;
-    private Interval currentInterval;
-    private int currentSequenceIndex;
-
-    /**
-     * Prepare to filter out SAMRecords that do not overlap the given list of intervals
-     * @param intervals -- must be locus-ordered & non-overlapping
-     */
-    public IntervalFilter(final List<Interval> intervals, final SAMFileHeader samHeader) {
-        this.samHeader = samHeader;
-        IntervalUtil.assertOrderedNonOverlapping(intervals.iterator(), samHeader.getSequenceDictionary());
-        this.intervals = intervals.iterator();
-        advanceInterval();
-    }
-
-    /**
-     * Determines whether a SAMRecord matches this filter
-     *
-     * @param record the SAMRecord to evaluate
-     * @return true if the SAMRecord matches the filter, otherwise false
-     */
-    public boolean filterOut(final SAMRecord record) {
-        while (currentInterval != null &&
-                (currentSequenceIndex < record.getReferenceIndex() ||
-                 (currentSequenceIndex == record.getReferenceIndex() && currentInterval.getEnd() < record.getAlignmentStart()))) {
-            advanceInterval();
-        }
-        // Return true if record should be filtered out
-        return !(currentInterval != null && currentSequenceIndex == record.getReferenceIndex() &&
-                 currentInterval.getStart() <= record.getAlignmentEnd());
-    }
-
-    private void advanceInterval() {
-        if (intervals.hasNext()) {
-            currentInterval = intervals.next();
-            currentSequenceIndex = samHeader.getSequenceIndex(currentInterval.getSequence());
-        } else {
-            currentInterval = null;
-        }
-    }
-
-    /**
-     * Determines whether a pair of SAMRecord matches this filter
-     *
-     * @param first  the first SAMRecord to evaluate
-     * @param second the second SAMRecord to evaluate
-     *
-     * @return true if the SAMRecords matches the filter, otherwise false
-     */
-    public boolean filterOut(final SAMRecord first, final SAMRecord second) {
-        throw new UnsupportedOperationException("Paired IntervalFilter filter not implemented!");
-    }
-}
diff --git a/src/java/net/sf/picard/filter/NotPrimaryAlignmentFilter.java b/src/java/net/sf/picard/filter/NotPrimaryAlignmentFilter.java
deleted file mode 100644
index 8229c45..0000000
--- a/src/java/net/sf/picard/filter/NotPrimaryAlignmentFilter.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.filter;
-
-import net.sf.samtools.SAMRecord;
-
-/**
- * Filter out SAMRecords with NotPrimaryAlignment flag set
- *
- * $Id$
- */
-public class NotPrimaryAlignmentFilter implements SamRecordFilter {
-    /**
-     * @param record the SAMRecord to evaluate
-     * @return true if the SAMRecord matches the filter, otherwise false
-     */
-    public boolean filterOut(final SAMRecord record) {
-        return record.getNotPrimaryAlignmentFlag();
-    }
-
-    /**
-     * Determines whether a pair of SAMRecord matches this filter
-     *
-     * @param first  the first SAMRecord to evaluate
-     * @param second the second SAMRecord to evaluate
-     *
-     * @return true if the SAMRecords matches the filter, otherwise false
-     */
-    public boolean filterOut(final SAMRecord first, final SAMRecord second) {
-        // if either fails, exclude them both
-        return (first.getNotPrimaryAlignmentFlag() || second.getNotPrimaryAlignmentFlag());
-    }
-}
diff --git a/src/java/net/sf/picard/filter/ReadNameFilter.java b/src/java/net/sf/picard/filter/ReadNameFilter.java
deleted file mode 100644
index 07aafa8..0000000
--- a/src/java/net/sf/picard/filter/ReadNameFilter.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.filter;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.IOException;
-import java.util.HashSet;
-import java.util.Set;
-import net.sf.picard.PicardException;
-import net.sf.picard.io.IoUtil;
-import net.sf.samtools.SAMRecord;
-
-/**
- * Filter by a set of specified readnames
- * <p/>
- * $Id: ReadNameFilter.java 1557 2013-09-19 21:50:03Z cristyn $
- */
-public class ReadNameFilter implements SamRecordFilter {
-
-    private boolean includeReads = false;
-    private Set<String> readNameFilterSet = new HashSet<String>();
-
-    public ReadNameFilter(final File readNameFilterFile, final boolean includeReads) {
-
-        IoUtil.assertFileIsReadable(readNameFilterFile);
-        IoUtil.assertFileSizeNonZero(readNameFilterFile);
-
-        try {
-            final BufferedReader in = IoUtil.openFileForBufferedReading(readNameFilterFile);
-
-            String line = null;
-
-            while ((line = in.readLine()) != null) {
-                if (!line.trim().isEmpty()) {
-                    readNameFilterSet.add(line.split("\\s+")[0]);
-                }
-            }
-
-            in.close();
-        } catch (IOException e) {
-            throw new PicardException(e.getMessage(), e);
-        }
-
-        this.includeReads = includeReads;
-    }
-
-    public ReadNameFilter(final Set<String> readNameFilterSet, final boolean includeReads) {
-        this.readNameFilterSet = readNameFilterSet;
-        this.includeReads = includeReads;
-    }
-
-    /**
-     * Determines whether a SAMRecord matches this filter
-     *
-     * @param record the SAMRecord to evaluate
-     *
-     * @return true if the SAMRecord matches the filter, otherwise false
-     */
-    public boolean filterOut(final SAMRecord record) {
-        if (includeReads) {
-            if (readNameFilterSet.contains(record.getReadName())) {
-                return false;
-            }
-        } else {
-            if (!readNameFilterSet.contains(record.getReadName())) {
-                return false;
-            }
-        }
-
-        return true;
-    }
-
-    /**
-     * Determines whether a pair of SAMRecords matches this filter
-     *
-     * @param first  the first SAMRecord to evaluate
-     * @param second the second SAMRecord to evaluate
-     *
-     * @return true if the pair of records matches filter, otherwise false
-     */
-    public boolean filterOut(final SAMRecord first, final SAMRecord second) {
-        if (includeReads) {
-            if (readNameFilterSet.contains(first.getReadName()) &&
-                readNameFilterSet.contains(second.getReadName())) {
-                return false;
-            }
-        } else {
-            if (!readNameFilterSet.contains(first.getReadName()) &&
-                !readNameFilterSet.contains(second.getReadName())) {
-                return false;
-            }
-        }
-
-        return true;
-    }
-
-}
\ No newline at end of file
diff --git a/src/java/net/sf/picard/filter/SamRecordFilter.java b/src/java/net/sf/picard/filter/SamRecordFilter.java
deleted file mode 100644
index df9a95c..0000000
--- a/src/java/net/sf/picard/filter/SamRecordFilter.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.filter;
-
-import net.sf.samtools.SAMRecord;
-
-/**
- * API for filtering SAMRecords
- *
- * $Id$
- */
-public interface SamRecordFilter {
-
-    /**
-     * Determines whether a SAMRecord matches this filter
-     *
-     * @param record the SAMRecord to evaluate
-     *
-     * @return true if the SAMRecord matches the filter, otherwise false
-     */
-    public boolean filterOut(SAMRecord record);
-
-    /**
-     * Determines whether a pair of SAMRecords matches this filter
-     *
-     * @param first  the first SAMRecord to evaluate
-     * @param second the second SAMRecord to evaluate
-     *
-     * @return true if the pair of records matches filter, otherwise false
-     */
-    public boolean filterOut(SAMRecord first, SAMRecord second);
-}
diff --git a/src/java/net/sf/picard/filter/SecondaryAlignmentFilter.java b/src/java/net/sf/picard/filter/SecondaryAlignmentFilter.java
deleted file mode 100644
index d971497..0000000
--- a/src/java/net/sf/picard/filter/SecondaryAlignmentFilter.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package net.sf.picard.filter;
-
-import net.sf.samtools.SAMRecord;
-
-/**
- * SamRecordFilter that filters out secondary alignments, but not supplemental alignments.
- */
-public class SecondaryAlignmentFilter implements SamRecordFilter {
-    /**
-     * Returns true if the read is marked as secondary.
-     */
-    public boolean filterOut(final SAMRecord record) { return record.getNotPrimaryAlignmentFlag(); }
-
-    /**
-     * Returns true if either read is marked as secondary.
-     */
-    public boolean filterOut(final SAMRecord first, final SAMRecord second) {
-        return first.getNotPrimaryAlignmentFlag() || second.getNotPrimaryAlignmentFlag();
-    }
-}
diff --git a/src/java/net/sf/picard/filter/SecondaryOrSupplementaryFilter.java b/src/java/net/sf/picard/filter/SecondaryOrSupplementaryFilter.java
deleted file mode 100644
index 1aad60c..0000000
--- a/src/java/net/sf/picard/filter/SecondaryOrSupplementaryFilter.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package net.sf.picard.filter;
-
-import net.sf.samtools.SAMRecord;
-
-/**
- * Filter out SAMRecords with NotPrimaryAlignment or Supplementary flag set
- * This class should be viewed as a replacement for NotPrimarySkippingIterator,
- * in that we did not want to change the functionality of NPSI to no longer match its name
- * $Id$
- */
-public class SecondaryOrSupplementaryFilter  implements SamRecordFilter {
-    /**
-     * @param record the SAMRecord to evaluate
-     * @return true if the SAMRecord matches the filter, otherwise false
-     */
-    public boolean filterOut(final SAMRecord record) {
-        return record.isSecondaryOrSupplementary();
-    }
-
-    /**
-     * Determines whether a pair of SAMRecord matches this filter
-     *
-     * @param first  the first SAMRecord to evaluate
-     * @param second the second SAMRecord to evaluate
-     *
-     * @return true if the SAMRecords matches the filter, otherwise false
-     */
-    public boolean filterOut(final SAMRecord first, final SAMRecord second) {
-        // if either fails, exclude them both
-        return first.isSecondaryOrSupplementary() || second.isSecondaryOrSupplementary();
-    }
-}
diff --git a/src/java/net/sf/picard/filter/SolexaNoiseFilter.java b/src/java/net/sf/picard/filter/SolexaNoiseFilter.java
deleted file mode 100644
index 08cd0f8..0000000
--- a/src/java/net/sf/picard/filter/SolexaNoiseFilter.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.filter;
-
-import net.sf.samtools.util.SequenceUtil;
-import net.sf.samtools.SAMRecord;
-
-/**
- * Filter to determine whether a read is "noisy" due to a poly-A run that is a sequencing artifact.
- * Currently we filter out only reads that are composed entirely of As.
- *
- * $Id$
- */
-public class SolexaNoiseFilter implements SamRecordFilter {
-
-    /**
-     * Determines whether a SAMRecord matches this filter
-     *
-     * @param record    the SAMRecord to evaluate
-     * @return  true if the SAMRecord matches the filter, otherwise false
-     */
-    public boolean filterOut(final SAMRecord record) {
-        final byte[] sequence = record.getReadBases();
-        for (final byte base : sequence) {
-            if (base != 'A' && base != 'a' &&
-                !SequenceUtil.isNoCall(base)) {
-                return false;
-            }
-        }
-        return true;
-    }
-
-    /**
-     * Determines whether a pair of SAMRecord matches this filter
-     *
-     * @param first  the first SAMRecord to evaluate
-     * @param second the second SAMRecord to evaluate
-     *
-     * @return true if the SAMRecords matches the filter, otherwise false
-     */
-    public boolean filterOut(final SAMRecord first, final SAMRecord second) {
-        // only filter out the pair if both first and second reads have all As
-        return (filterOut(first) && filterOut(second));
-    }
-}
diff --git a/src/java/net/sf/picard/filter/TagFilter.java b/src/java/net/sf/picard/filter/TagFilter.java
deleted file mode 100644
index c6c8379..0000000
--- a/src/java/net/sf/picard/filter/TagFilter.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.filter;
-
-import java.util.List;
-import java.util.Arrays;
-
-import net.sf.samtools.SAMRecord;
-
-/**
- * Filter class for matching tag attributes in SAMRecords
- *
- * $Id$
- */
-public class TagFilter implements SamRecordFilter {
-
-    private final String tag;           // The key of the tag to match
-    private final List<Object> values;  // The list of matching values
-
-    /**
-     * Constructor for a single value
-     *
-     * @param tag       the key of the tag to match
-     * @param value     the value to match
-     */
-    public TagFilter(String tag, Object value) {
-        this.tag = tag;
-        this.values = Arrays.asList(value);
-    }
-
-    /**
-     * Constructor for multiple values
-     *
-     * @param tag       the key of the tag to match
-     * @param values    the matching values
-     */
-    public TagFilter(String tag, List<Object> values) {
-        this.tag = tag;
-        this.values = values;
-    }
-
-    /**
-     * Determines whether a SAMRecord matches this filter
-     *
-     * @param record    the SAMRecord to evaluate
-     * @return  true if the SAMRecord matches the filter, otherwise false
-     */
-    public boolean filterOut(SAMRecord record) {
-        return values.contains(record.getAttribute(tag));
-    }
-
-    /**
-     * Determines whether a paired of SAMRecord matches this filter
-     *
-     * @param first  the first SAMRecord to evaluate
-     * @param second the second SAMRecord to evaluate
-     *
-     * @return true if the SAMRecords matches the filter, otherwise false
-     */
-    public boolean filterOut(final SAMRecord first, final SAMRecord second) {
-        // both first and second must have the tag in order for it to be filtered out
-         return values.contains(first.getAttribute(tag)) && values.contains(second.getAttribute(tag));
-    }
-}
diff --git a/src/java/net/sf/picard/filter/WholeReadClippedFilter.java b/src/java/net/sf/picard/filter/WholeReadClippedFilter.java
deleted file mode 100644
index fc338f7..0000000
--- a/src/java/net/sf/picard/filter/WholeReadClippedFilter.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.filter;
-
-import net.sf.picard.sam.ReservedTagConstants;
-import net.sf.samtools.SAMRecord;
-
-/**
- * Filter SAMRecords so that only those that have at least one un-clipped base are
- * returned.
- *
- * $Id$
- *
- * @author ktibbett at broadinstitute.org
- */
-public class WholeReadClippedFilter implements SamRecordFilter {
-
-    /**
-     * Determines whether a SAMRecord matches this filter
-     *
-     * @param record the SAMRecord to evaluate
-     * @return true if the SAMRecord matches the filter, and should be filtered out,
-     *         otherwise false
-     */
-    @Override
-    public boolean filterOut(final SAMRecord record) {
-        return record.getAttribute(ReservedTagConstants.XT) != null
-                && (Integer)record.getAttribute(ReservedTagConstants.XT) == 1;
-    }
-
-     /**
-     * Determines whether a paired of SAMRecord matches this filter
-     *
-     * @param first  the first SAMRecord to evaluate
-     * @param second the second SAMRecord to evaluate
-     *
-     * @return true if the SAMRecords matches the filter, otherwise false
-     */
-    public boolean filterOut(final SAMRecord first, final SAMRecord second) {
-        // if either fails, exclude them both
-        return (filterOut(first) || filterOut(second));
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/CheckIlluminaDirectory.java b/src/java/net/sf/picard/illumina/CheckIlluminaDirectory.java
deleted file mode 100644
index 2b9b8a6..0000000
--- a/src/java/net/sf/picard/illumina/CheckIlluminaDirectory.java
+++ /dev/null
@@ -1,256 +0,0 @@
-package net.sf.picard.illumina;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.StandardOptionDefinitions;
-import net.sf.picard.cmdline.Usage;
-import net.sf.picard.illumina.parser.IlluminaDataProviderFactory;
-import net.sf.picard.illumina.parser.IlluminaDataType;
-import net.sf.picard.illumina.parser.IlluminaFileUtil;
-import net.sf.picard.illumina.parser.OutputMapping;
-import net.sf.picard.illumina.parser.ParameterizedFileUtil;
-import net.sf.picard.illumina.parser.ReadStructure;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.util.Log;
-import net.sf.picard.util.ProcessExecutor;
-import net.sf.samtools.util.StringUtil;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeSet;
-
-/**
- * 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
- * specified data type.  If NO data type is specified then the default data types used by IlluminaBasecallsToSam are used.
- */
-public class CheckIlluminaDirectory extends CommandLineProgram {
-    private static final Log log = Log.getInstance(CheckIlluminaDirectory.class);
-
-    // The following attributes define the command-line arguments
-    @Usage
-    public String USAGE = getStandardUsagePreamble() +
-            "Check that the files to provide the data specified by DATA_TYPES are available, exist, and are reasonably sized for every tile/cycle.  "
-            +
-            "Reasonably sized means non-zero sized for files that exist per tile and equal size for binary files that exist per cycle/per tile. "
-            +
-            "CheckIlluminaDirectory DOES NOT check that the individual records in a file are well-formed.\n";
-
-    @Option(doc = "The basecalls output directory. ", shortName = "B")
-    public File BASECALLS_DIR;
-
-    @Option(doc =
-            "The data types that should be checked for each tile/cycle.  If no values are provided then the data types checked are those "
-                    +
-                    "required by IlluminaBaseCallsToSam (which is a superset of those used in ExtractIlluminaBarcodes).  These data types vary slightly depending on"
-                    +
-                    "whether or not the run is barcoded so READ_STRUCTURE should be the same as that which will be passed to IlluminaBasecallsToSam.  If this option "
-                    +
-                    "is left unspecified then both ExtractIlluminaBarcodes and IlluminaBaseCallsToSam should complete successfully UNLESS the "
-                    +
-                    "individual records of the files themselves are spurious. ",
-            shortName = "DT",
-            optional = true)
-    public final Set<IlluminaDataType> DATA_TYPES = new TreeSet<IlluminaDataType>();
-
-    @Option(doc = ReadStructure.PARAMETER_DOC
-            + "  Note:  If you want to check whether or not a future IlluminaBasecallsToSam or ExtractIlluminaBarcodes "
-            +
-            "run will fail then be sure to use the exact same READ_STRUCTURE that you would pass to these programs for this run.",
-            shortName = "RS")
-    public String READ_STRUCTURE;
-
-    @Option(doc = "The number of the lane(s) to check. ", shortName = StandardOptionDefinitions.LANE_SHORT_NAME,
-            minElements = 1)
-    public List<Integer> LANES;
-
-    @Option(doc = "The number(s) of the tile(s) to check. ", shortName = "T", optional = true)
-    public List<Integer> TILE_NUMBERS;
-
-    @Option(doc = "A flag to determine whether or not to create fake versions of the missing files.", shortName = "F",
-            optional = true)
-    public Boolean FAKE_FILES = false;
-
-    @Option(doc = "A flag to create symlinks to the loc file for the X Ten for each tile.", shortName = "X",
-            optional = true)
-    public Boolean LINK_LOCS = false;
-
-    /**
-     * Required main method implementation.
-     */
-    public static void main(final String[] argv) {
-        new CheckIlluminaDirectory().instanceMainWithExit(argv);
-    }
-
-
-    @Override
-    protected int doWork() {
-        final ReadStructure readStructure = new ReadStructure(READ_STRUCTURE);
-        if (DATA_TYPES.isEmpty()) {
-            DATA_TYPES.addAll(Arrays.asList(IlluminaBasecallsConverter.DATA_TYPES_NO_BARCODE));
-        }
-
-        final List<Integer> failingLanes = new ArrayList<Integer>();
-        int totalFailures = 0;
-
-        final int[] expectedCycles = new OutputMapping(readStructure).getOutputCycles();
-        log.info("Checking lanes(" + StringUtil.join(",", LANES) + " in basecalls directory (" + BASECALLS_DIR
-                .getAbsolutePath() + ")\n");
-        log.info("Expected cycles: " + StringUtil.intValuesToString(expectedCycles));
-
-        for (final Integer lane : LANES) {
-            IlluminaFileUtil fileUtil = new IlluminaFileUtil(BASECALLS_DIR, lane);
-            final List<Integer> 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 ");
-            }
-        }
-
-        int status = 0;
-        if (totalFailures == 0) {
-            log.info("SUCCEEDED!  All required files are present and non-empty.");
-        } else {
-            status = totalFailures;
-            log.info("FAILED! There were " + totalFailures + " in the following lanes: " + StringUtil
-                    .join(", ", failingLanes));
-        }
-
-        return status;
-    }
-
-    private void createLocFileSymlinks(final IlluminaFileUtil fileUtil, final int lane) {
-        final File baseFile = new File(BASECALLS_DIR.getParentFile().getAbsolutePath() + File.separator + "s.locs");
-        final File newFileBase = new File(baseFile.getParent() + File.separator + IlluminaFileUtil
-                .longLaneStr(lane) + File.separator);
-        if (baseFile.exists()) {
-            boolean success = true;
-            if (!newFileBase.exists()) {
-                success = newFileBase.mkdirs();
-            }
-            if (success) {
-                for (final Integer tile : fileUtil.getExpectedTiles()) {
-                    final String newName =
-                            newFileBase + File.separator + String.format("s_%d_%d.locs", lane, tile);
-                    final ProcessExecutor.ExitStatusAndOutput output =
-                            ProcessExecutor.executeAndReturnInterleavedOutput(new String[]{"ln", "-fs", baseFile.getAbsolutePath(), newName});
-                    if (output.exitStatus != 0) {
-                        throw new PicardException("Could not create symlink: " + output.stdout);
-                    }
-                }
-            } else {
-                throw new PicardException(String.format("Could not create lane directory: %s.", newFileBase.getAbsolutePath()));
-            }
-        } else {
-            throw new PicardException(String.format("Locations file %s does not exist.", baseFile.getAbsolutePath()));
-        }
-
-    }
-
-    /**
-     * Use fileUtil to find the data types that would be used by IlluminaDataProvider.  Verify that for the expected
-     * tiles/cycles/data types that all the files needed to provide their data is present.  This method logs every
-     * error that is found (excluding file faking errors) and returns the number of errors found
-     *
-     * @param fileUtil      A file util paramterized with the directory/lane to check
-     * @param expectedTiles The tiles we expect to be available/well-formed
-     * @param cycles        The cycles we expect to be available/well-formed
-     * @param dataTypes     The data types we expect to be available/well-formed
-     * @return The number of errors found/logged for this directory/lane
-     */
-    private static final int verifyLane(final IlluminaFileUtil fileUtil, final List<Integer> expectedTiles,
-                                        final int[] cycles,
-                                        final Set<IlluminaDataType> dataTypes, final boolean fakeFiles) {
-        if (expectedTiles.isEmpty()) {
-            throw new PicardException(
-                    "0 input tiles were specified!  Check to make sure this lane is in the InterOp file!");
-        }
-
-        if (cycles.length == 0) {
-            throw new PicardException("0 output cycles were specified!");
-        }
-
-        int numFailures = 0;
-
-        //find what request IlluminaDataTypes we have files for and select the most preferred file format available for that type
-        final Map<IlluminaFileUtil.SupportedIlluminaFormat, Set<IlluminaDataType>> formatToDataTypes =
-                IlluminaDataProviderFactory.determineFormats(dataTypes, fileUtil);
-
-        //find if we have any IlluminaDataType with NO available file formats and, if any exist, increase the error count
-        final Set<IlluminaDataType> unmatchedDataTypes =
-                IlluminaDataProviderFactory.findUnmatchedTypes(dataTypes, formatToDataTypes);
-        if (!unmatchedDataTypes.isEmpty()) {
-            if (fakeFiles) {
-                for (final IlluminaDataType dataType : unmatchedDataTypes) {
-                    final IlluminaFileUtil.SupportedIlluminaFormat format =
-                            IlluminaDataProviderFactory.findPreferredFormat(dataType, fileUtil);
-                    fileUtil.getUtil(format).fakeFiles(expectedTiles, cycles, format);
-
-                }
-            }
-            log.info("Could not find a format with available files for the following data types: " + StringUtil
-                    .join(", ", new ArrayList<IlluminaDataType>(unmatchedDataTypes)));
-            numFailures += unmatchedDataTypes.size();
-        }
-
-        for (final IlluminaFileUtil.SupportedIlluminaFormat format : formatToDataTypes.keySet()) {
-            final ParameterizedFileUtil util = fileUtil.getUtil(format);
-            final List<String> failures = util.verify(expectedTiles, cycles);
-            //if we have failures and we want to fake files then fake them now.
-            if (!failures.isEmpty() && fakeFiles) {
-                //fake files
-                util.fakeFiles(expectedTiles, cycles, format);
-
-            }
-            numFailures += failures.size();
-            for (final String failure : failures) {
-                log.info(failure);
-            }
-        }
-
-        return numFailures;
-    }
-
-    @Override
-    protected String[] customCommandLineValidation() {
-        IoUtil.assertDirectoryIsReadable(BASECALLS_DIR);
-        final List<String> errors = new ArrayList<String>();
-
-        for (final Integer lane : LANES) {
-            if (lane < 1) {
-                errors.add(
-                        "LANES must be greater than or equal to 1.  LANES passed in " + StringUtil.join(", ", LANES));
-                break;
-            }
-        }
-
-        if (errors.isEmpty()) {
-            return null;
-        } else {
-            return errors.toArray(new String[errors.size()]);
-        }
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/ClusterDataToSamConverter.java b/src/java/net/sf/picard/illumina/ClusterDataToSamConverter.java
deleted file mode 100644
index fd1e3eb..0000000
--- a/src/java/net/sf/picard/illumina/ClusterDataToSamConverter.java
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.illumina;
-
-import net.sf.picard.fastq.IlluminaReadNameEncoder;
-import net.sf.picard.fastq.ReadNameEncoder;
-import net.sf.picard.filter.SamRecordFilter;
-import net.sf.picard.filter.SolexaNoiseFilter;
-import net.sf.picard.illumina.parser.ClusterData;
-import net.sf.picard.illumina.parser.ReadData;
-import net.sf.picard.illumina.parser.ReadStructure;
-import net.sf.picard.sam.ReservedTagConstants;
-import net.sf.picard.util.AdapterMarker;
-import net.sf.picard.util.AdapterPair;
-import net.sf.picard.util.IlluminaUtil;
-import net.sf.samtools.SAMRecord;
-import net.sf.samtools.SAMTag;
-
-import java.util.List;
-
-/**
- * Takes ClusterData provided by an IlluminaDataProvider into one or two SAMRecords,
- * as appropriate, and optionally marking adapter sequence.  There is one converter per
- * IlluminaBasecallsToSam run, and all the TileProcessors use the same converter.
- * 
- * @author jburke at broadinstitute.org
- */
-public class ClusterDataToSamConverter implements
-        IlluminaBasecallsConverter.ClusterDataConverter<IlluminaBasecallsToSam.SAMRecordsForCluster> {
-
-
-    private final String runBarcode;
-    private final String readGroupId;
-    private final SamRecordFilter filters = new SolexaNoiseFilter();
-    private final boolean isPairedEnd;
-    private final boolean isBarcoded;
-    private final int [] templateIndices;
-    private final int [] barcodeIndices;
-    private final AdapterMarker adapterMarker;
-    private final int outputRecordsPerCluster;
-    private final ReadNameEncoder readNameEncoder;  
-    
-    /**
-     * Constructor
-     *
-     * @param runBarcode        Used to construct read names.
-     * @param readGroupId       If non-null, set RG attribute on SAMRecord to this.
-     * @param readStructure     The expected structure (number of reads and indexes,
-     *                          and their length) in the read.
-     * @param adapters          The list of adapters to check for in the read
-     */
-    public ClusterDataToSamConverter(final String runBarcode,
-                                     final String readGroupId,
-                                     final ReadStructure readStructure,
-                                     final List<IlluminaUtil.IlluminaAdapterPair> adapters) {
-        this.runBarcode  = runBarcode;
-        this.readGroupId = readGroupId;
-        
-        this.readNameEncoder = new IlluminaReadNameEncoder(runBarcode);
-
-        this.isPairedEnd = readStructure.templates.length() == 2;
-        this.isBarcoded  = !readStructure.barcodes.isEmpty();
-
-        if (adapters.isEmpty()) {
-            this.adapterMarker = null;
-        } else {
-            this.adapterMarker = new AdapterMarker(adapters.toArray(new AdapterPair[adapters.size()]));
-        }
-
-        this.templateIndices = readStructure.templates.getIndices();
-        this.barcodeIndices = readStructure.barcodes.getIndices();
-
-        this.outputRecordsPerCluster = readStructure.templates.length();
-    }
-
-    /**
-     * Creates a new SAM record from the basecall data
-     */
-    private SAMRecord createSamRecord(final ReadData readData, final String readName, final boolean isPf, final boolean firstOfPair, final String unmatchedBarcode) {
-        final SAMRecord sam = new SAMRecord(null);
-        sam.setReadName(readName);
-        sam.setReadBases(readData.getBases());
-        sam.setBaseQualities(readData.getQualities());
-
-        // Flag values
-        sam.setReadPairedFlag(isPairedEnd);
-        sam.setReadUnmappedFlag(true);
-        sam.setReadFailsVendorQualityCheckFlag(!isPf);
-        if (isPairedEnd) {
-            sam.setMateUnmappedFlag(true);
-            sam.setFirstOfPairFlag(firstOfPair);
-            sam.setSecondOfPairFlag(!firstOfPair);
-        }
-
-        if (filters.filterOut(sam)) {
-            sam.setAttribute(ReservedTagConstants.XN, 1);
-        }
-
-        if (this.readGroupId != null) {
-            sam.setAttribute(SAMTag.RG.name(), readGroupId);
-        }
-
-        // If it's a barcoded run and the read isn't assigned to a barcode, then add the barcode
-        // that was read as an optional tag
-        if (unmatchedBarcode != null) {
-            sam.setAttribute(SAMTag.BC.name(), unmatchedBarcode);
-        }
-
-        return sam;
-    }
-
-    /**
-     * Creates the SAMRecord for each read in the cluster
-     */
-    public IlluminaBasecallsToSam.SAMRecordsForCluster convertClusterToOutputRecord(final ClusterData cluster) {
-
-        final IlluminaBasecallsToSam.SAMRecordsForCluster ret = new IlluminaBasecallsToSam.SAMRecordsForCluster(outputRecordsPerCluster);
-        final String readName = readNameEncoder.generateReadName(cluster, null); // Use null here to prevent /1 or /2 suffixes on read name.
-
-        // Get and transform the unmatched barcode, if any, to store with the reads
-        String unmatchedBarcode = null;
-        if (isBarcoded && cluster.getMatchedBarcode() == null) {
-            final byte barcode[][] = new byte[barcodeIndices.length][];
-            for (int i = 0; i < barcodeIndices.length; i++) {
-                barcode[i] = cluster.getRead(barcodeIndices[i]).getBases();
-            }
-            unmatchedBarcode = IlluminaUtil.barcodeSeqsToString(barcode).replace('.', 'N'); //TODO: This has a separator, where as in other places we do not use a separator
-        }
-
-        final SAMRecord firstOfPair = createSamRecord(
-            cluster.getRead(templateIndices[0]), readName, cluster.isPf(), true,unmatchedBarcode);
-        ret.records[0] = firstOfPair;
-
-        SAMRecord secondOfPair = null;
-
-        if(isPairedEnd) {
-            secondOfPair  = createSamRecord(
-                cluster.getRead(templateIndices[1]), readName, cluster.isPf(), false, unmatchedBarcode);
-            ret.records[1] = secondOfPair;
-        }
-
-        if (adapterMarker != null) {
-            // Clip the read
-            if (isPairedEnd) {
-                adapterMarker.adapterTrimIlluminaPairedReads(firstOfPair, secondOfPair);
-            }
-            else {
-                adapterMarker.adapterTrimIlluminaSingleRead(firstOfPair);
-            }
-        }
-        return ret;
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/ExtractIlluminaBarcodes.java b/src/java/net/sf/picard/illumina/ExtractIlluminaBarcodes.java
deleted file mode 100644
index beda46a..0000000
--- a/src/java/net/sf/picard/illumina/ExtractIlluminaBarcodes.java
+++ /dev/null
@@ -1,708 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.illumina;
-
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.StandardOptionDefinitions;
-import net.sf.picard.cmdline.Usage;
-import net.sf.picard.illumina.parser.*;
-import net.sf.picard.illumina.parser.readers.BclQualityEvaluationStrategy;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.metrics.MetricBase;
-import net.sf.picard.metrics.MetricsFile;
-import net.sf.picard.util.IlluminaUtil;
-import net.sf.picard.util.Log;
-import net.sf.picard.util.TabbedTextFileWithHeaderParser;
-import net.sf.samtools.util.SequenceUtil;
-import net.sf.samtools.util.StringUtil;
-
-import java.io.BufferedWriter;
-import java.io.File;
-import java.text.NumberFormat;
-import java.util.*;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.TimeUnit;
-
-/**
- * Determine the barcode for each read in an Illumina lane.
- * For each tile, a file is written to the basecalls directory of the form s_<lane>_<tile>_barcode.txt.
- * An output file contains a line for each read in the tile, aligned with the regular basecall output
- * The output file contains the following tab-separated columns:
- * - read subsequence at barcode position
- * - Y or N indicating if there was a barcode match
- * - matched barcode sequence (empty if read did not match one of the barcodes).  If there is no match
- * but we're close to the threshold of calling it a match we output the barcode that would have been
- * matched but in lower case
- *
- * @author jburke at broadinstitute.org
- */
-public class ExtractIlluminaBarcodes extends CommandLineProgram {
-
-    // The following attributes define the command-line arguments
-    @Usage
-    public String USAGE =
-            getStandardUsagePreamble() + "Determine the barcode for each read in an Illumina lane.\n" +
-                    "For each tile, a file is written to the basecalls directory of the form s_<lane>_<tile>_barcode.txt. " +
-                    "An output file contains a line for each read in the tile, aligned with the regular basecall output. \n" +
-                    "The output file contains the following tab-separated columns: \n" +
-                    "    * read subsequence at barcode position\n" +
-                    "    * Y or N indicating if there was a barcode match\n" +
-                    "    * matched barcode sequence\n" +
-                    "Note that the order of specification of barcodes can cause arbitrary differences in output for poorly matching barcodes.\n\n";
-
-    @Option(doc = "The Illumina basecalls directory. ", shortName = "B")
-    public File BASECALLS_DIR;
-
-    @Option(doc = "Where to write _barcode.txt files.  By default, these are written to BASECALLS_DIR.", optional = true)
-    public File OUTPUT_DIR;
-
-    @Option(doc = "Lane number. ", shortName = StandardOptionDefinitions.LANE_SHORT_NAME)
-    public Integer LANE;
-
-    @Option(doc = ReadStructure.PARAMETER_DOC, shortName = "RS")
-    public String READ_STRUCTURE;
-
-    @Option(doc = "Barcode sequence.  These must be unique, and all the same length.  This cannot be used with reads that " +
-            "have more than one barcode; use BARCODE_FILE in that case. ", mutex = {"BARCODE_FILE"})
-    public List<String> BARCODE = new ArrayList<String>();
-
-    @Option(doc = "Tab-delimited file of barcode sequences, barcode name and, optionally, library name.  " +
-            "Barcodes must be unique and all the same length.  Column headers must be 'barcode_sequence_1', " +
-            "'barcode_sequence_2' (optional), 'barcode_name', and 'library_name'.", mutex = {"BARCODE"})
-    public File BARCODE_FILE;
-
-    @Option(doc = "Per-barcode and per-lane metrics written to this file.", shortName = StandardOptionDefinitions.METRICS_FILE_SHORT_NAME)
-    public File METRICS_FILE;
-
-    @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(shortName = "Q", doc = "Minimum base quality. Any barcode bases falling below this quality will be considered a mismatch even in the bases match.")
-    public int MINIMUM_BASE_QUALITY = 0;
-
-    @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(shortName = "GZIP", doc = "Compress output s_l_t_barcode.txt files using gzip and append a .gz extension to the file names.")
-    public boolean COMPRESS_OUTPUTS = false;
-
-    @Option(doc = "Run this many PerTileBarcodeExtractors in parallel.  If NUM_PROCESSORS = 0, number of cores is automatically set to " +
-            "the number of cores available on the machine. If NUM_PROCESSORS < 0 then the number of cores used will be " +
-            "the number available on the machine less NUM_PROCESSORS.")
-    public int NUM_PROCESSORS = 1;
-
-    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 */
-    private ReadStructure readStructure;
-
-    private IlluminaDataProviderFactory factory;
-
-    private final Map<String, BarcodeMetric> barcodeToMetrics = new LinkedHashMap<String, BarcodeMetric>();
-
-    private final NumberFormat tileNumberFormatter = NumberFormat.getNumberInstance();
-    private BclQualityEvaluationStrategy bclQualityEvaluationStrategy;
-
-    public ExtractIlluminaBarcodes() {
-        tileNumberFormatter.setMinimumIntegerDigits(4);
-        tileNumberFormatter.setGroupingUsed(false);
-    }
-
-    @Override
-    protected int doWork() {
-
-        IoUtil.assertFileIsWritable(METRICS_FILE);
-        if (OUTPUT_DIR == null) {
-            OUTPUT_DIR = BASECALLS_DIR;
-        }
-        IoUtil.assertDirectoryIsWritable(OUTPUT_DIR);
-
-        // Create BarcodeMetric for counting reads that don't match any barcode
-        final String[] noMatchBarcode = new String[readStructure.barcodes.length()];
-        int index = 0;
-        for (final ReadDescriptor d : readStructure.descriptors) {
-            if (d.type == ReadType.Barcode) {
-                noMatchBarcode[index++] = StringUtil.repeatCharNTimes('N', d.length);
-            }
-        }
-
-        final BarcodeMetric noMatchMetric = new BarcodeMetric(null, null, IlluminaUtil.barcodeSeqsToString(noMatchBarcode), noMatchBarcode);
-
-        final int numProcessors;
-        if (NUM_PROCESSORS == 0) {
-            numProcessors = Runtime.getRuntime().availableProcessors();
-        } else if (NUM_PROCESSORS < 0) {
-            numProcessors = Runtime.getRuntime().availableProcessors() + NUM_PROCESSORS;
-        } else {
-            numProcessors = NUM_PROCESSORS;
-        }
-
-        LOG.info("Processing with " + numProcessors + " PerTileBarcodeExtractor(s).");
-        final ExecutorService pool = Executors.newFixedThreadPool(numProcessors);
-
-        // TODO: This is terribly inefficient; we're opening a huge number of files via the extractor constructor and we never close them.
-        final List<PerTileBarcodeExtractor> extractors = new ArrayList<PerTileBarcodeExtractor>(factory.getAvailableTiles().size());
-        for (final int tile : factory.getAvailableTiles()) {
-            final PerTileBarcodeExtractor extractor = new PerTileBarcodeExtractor(
-                    tile,
-                    getBarcodeFile(tile),
-                    barcodeToMetrics,
-                    noMatchMetric,
-                    factory,
-                    MINIMUM_BASE_QUALITY,
-                    MAX_NO_CALLS,
-                    MAX_MISMATCHES,
-                    MIN_MISMATCH_DELTA
-            );
-            extractors.add(extractor);
-        }
-        try {
-            for (final PerTileBarcodeExtractor extractor : extractors) {
-                pool.submit(extractor);    
-            }
-            pool.shutdown();
-            // Wait a while for existing tasks to terminate
-            if (!pool.awaitTermination(6, TimeUnit.HOURS)) {
-                pool.shutdownNow(); // Cancel any still-executing tasks
-                // Wait a while for tasks to respond to being cancelled
-                if (!pool.awaitTermination(60, TimeUnit.SECONDS))
-                    LOG.error("Pool did not terminate");
-                return 1;
-            }
-        } catch (final Throwable e) {
-            // (Re-)Cancel if current thread also interrupted
-            LOG.error(e, "Parent thread encountered problem submitting extractors to thread pool or awaiting shutdown of threadpool.  Attempting to kill threadpool.");
-            pool.shutdownNow();
-            return 2;
-        }
-
-        LOG.info("Processed " + extractors.size() + " tiles.");
-        for (final PerTileBarcodeExtractor extractor : extractors) {
-            for (final String key : barcodeToMetrics.keySet()) {
-                barcodeToMetrics.get(key).merge(extractor.getMetrics().get(key));
-            }
-            noMatchMetric.merge(extractor.getNoMatchMetric());
-            if (extractor.getException() != null) {
-                LOG.error("Abandoning metrics calculation because one or more PerTileBarcodeExtractors failed.");
-                return 4;
-            }
-        }
-
-
-        // Finish metrics tallying.
-        int totalReads = noMatchMetric.READS;
-        int totalPfReads = noMatchMetric.PF_READS;
-        int totalPfReadsAssigned = 0;
-        for (final BarcodeMetric barcodeMetric : barcodeToMetrics.values()) {
-            totalReads += barcodeMetric.READS;
-            totalPfReads += barcodeMetric.PF_READS;
-            totalPfReadsAssigned += barcodeMetric.PF_READS;
-        }
-
-        if (totalReads > 0) {
-            noMatchMetric.PCT_MATCHES = noMatchMetric.READS / (double) totalReads;
-            double bestPctOfAllBarcodeMatches = 0;
-            for (final BarcodeMetric barcodeMetric : barcodeToMetrics.values()) {
-                barcodeMetric.PCT_MATCHES = barcodeMetric.READS / (double) totalReads;
-                if (barcodeMetric.PCT_MATCHES > bestPctOfAllBarcodeMatches) {
-                    bestPctOfAllBarcodeMatches = barcodeMetric.PCT_MATCHES;
-                }
-            }
-            if (bestPctOfAllBarcodeMatches > 0) {
-                noMatchMetric.RATIO_THIS_BARCODE_TO_BEST_BARCODE_PCT =
-                        noMatchMetric.PCT_MATCHES / bestPctOfAllBarcodeMatches;
-                for (final BarcodeMetric barcodeMetric : barcodeToMetrics.values()) {
-                    barcodeMetric.RATIO_THIS_BARCODE_TO_BEST_BARCODE_PCT =
-                            barcodeMetric.PCT_MATCHES / bestPctOfAllBarcodeMatches;
-                }
-            }
-        }
-
-        if (totalPfReads > 0) {
-            noMatchMetric.PF_PCT_MATCHES = noMatchMetric.PF_READS / (double) totalPfReads;
-            double bestPctOfAllBarcodeMatches = 0;
-            for (final BarcodeMetric barcodeMetric : barcodeToMetrics.values()) {
-                barcodeMetric.PF_PCT_MATCHES = barcodeMetric.PF_READS / (double) totalPfReads;
-                if (barcodeMetric.PF_PCT_MATCHES > bestPctOfAllBarcodeMatches) {
-                    bestPctOfAllBarcodeMatches = barcodeMetric.PF_PCT_MATCHES;
-                }
-            }
-            if (bestPctOfAllBarcodeMatches > 0) {
-                noMatchMetric.PF_RATIO_THIS_BARCODE_TO_BEST_BARCODE_PCT =
-                        noMatchMetric.PF_PCT_MATCHES / bestPctOfAllBarcodeMatches;
-                for (final BarcodeMetric barcodeMetric : barcodeToMetrics.values()) {
-                    barcodeMetric.PF_RATIO_THIS_BARCODE_TO_BEST_BARCODE_PCT =
-                            barcodeMetric.PF_PCT_MATCHES / bestPctOfAllBarcodeMatches;
-                }
-            }
-        }
-
-        // Warn about minimum qualities and assert that we've achieved the minimum.
-        for (Map.Entry<Byte, Integer> entry : bclQualityEvaluationStrategy.getPoorQualityFrequencies().entrySet()) {
-            LOG.warn(String.format("Observed low quality of %s %s times.", entry.getKey(), entry.getValue()));
-        }
-        bclQualityEvaluationStrategy.assertMinimumQualities();
-
-        // Calculate the normalized matches
-        if (totalPfReadsAssigned > 0) {
-            final double mean = (double) totalPfReadsAssigned / (double) barcodeToMetrics.values().size();
-            for (final BarcodeMetric m : barcodeToMetrics.values()) {
-                m.PF_NORMALIZED_MATCHES = m.PF_READS / mean;
-            }
-        }
-
-        final MetricsFile<BarcodeMetric, Integer> metrics = getMetricsFile();
-        for (final BarcodeMetric barcodeMetric : barcodeToMetrics.values()) {
-            metrics.addMetric(barcodeMetric);
-        }
-        metrics.addMetric(noMatchMetric);
-        metrics.write(METRICS_FILE);
-        return 0;
-    }
-
-    /** 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" : ""));
-    }
-
-    /**
-     * 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.
-     */
-    @Override
-    protected String[] customCommandLineValidation() {
-        final ArrayList<String> messages = new ArrayList<String>();
-
-        this.bclQualityEvaluationStrategy = new BclQualityEvaluationStrategy(MINIMUM_QUALITY);
-
-        /**
-         * In extract illumina barcodes we NEVER want to look at the template reads, therefore replace them with skips because
-         * IlluminaDataProvider and its factory will not open these nor produce ClusterData with the template reads in them, thus reducing
-         * the file IO and value copying done by the data provider
-         */
-        readStructure = new ReadStructure(READ_STRUCTURE.replaceAll("T", "S"));
-        final IlluminaDataType[] datatypes = (MINIMUM_BASE_QUALITY > 0) ?
-                new IlluminaDataType[]{IlluminaDataType.BaseCalls, IlluminaDataType.PF, IlluminaDataType.QualityScores} :
-                new IlluminaDataType[]{IlluminaDataType.BaseCalls, IlluminaDataType.PF};
-        factory = new IlluminaDataProviderFactory(BASECALLS_DIR, LANE, readStructure, bclQualityEvaluationStrategy, datatypes);
-
-        if (BARCODE_FILE != null) {
-            parseBarcodeFile(messages);
-        } else {
-            final Set<String> barcodes = new HashSet<String>();
-            for (final String barcode : BARCODE) {
-                if (barcodes.contains(barcode)) {
-                    messages.add("Barcode " + barcode + " specified more than once.");
-                }
-                barcodes.add(barcode);
-                final BarcodeMetric metric = new BarcodeMetric(null, null, barcode, new String[]{barcode});
-                barcodeToMetrics.put(barcode, metric);
-            }
-        }
-        if (barcodeToMetrics.keySet().size() == 0) {
-            messages.add("No barcodes have been specified.");
-        }
-        if (messages.size() == 0) {
-            return null;
-        }
-        return messages.toArray(new String[messages.size()]);
-    }
-
-    public static void main(final String[] argv) {
-        System.exit(new ExtractIlluminaBarcodes().instanceMain(argv));
-    }
-
-    private static final String BARCODE_SEQUENCE_COLUMN = "barcode_sequence";
-    private static final String BARCODE_SEQUENCE_1_COLUMN = "barcode_sequence_1";
-    private static final String BARCODE_NAME_COLUMN = "barcode_name";
-    private static final String LIBRARY_NAME_COLUMN = "library_name";
-
-    private void parseBarcodeFile(final ArrayList<String> messages) {
-        final TabbedTextFileWithHeaderParser barcodesParser = new TabbedTextFileWithHeaderParser(BARCODE_FILE);
-        final String sequenceColumn = barcodesParser.hasColumn(BARCODE_SEQUENCE_COLUMN)
-                ? BARCODE_SEQUENCE_COLUMN : barcodesParser.hasColumn(BARCODE_SEQUENCE_1_COLUMN)
-                ? BARCODE_SEQUENCE_1_COLUMN : null;
-        if (sequenceColumn == null) {
-            messages.add(BARCODE_FILE + " does not have " + BARCODE_SEQUENCE_COLUMN + " or " +
-                    BARCODE_SEQUENCE_1_COLUMN + " column header");
-            return;
-        }
-        final boolean hasBarcodeName = barcodesParser.hasColumn(BARCODE_NAME_COLUMN);
-        final boolean hasLibraryName = barcodesParser.hasColumn(LIBRARY_NAME_COLUMN);
-        final int numBarcodes = readStructure.barcodes.length();
-        final Set<String> barcodes = new HashSet<String>();
-        for (final TabbedTextFileWithHeaderParser.Row row : barcodesParser) {
-            final String bcStrings[] = new String[numBarcodes];
-            int barcodeNum = 1;
-            for (final ReadDescriptor rd : readStructure.descriptors) {
-                if (rd.type != ReadType.Barcode) continue;
-                final String header = barcodeNum == 1 ? sequenceColumn : "barcode_sequence_" + String.valueOf(barcodeNum);
-                bcStrings[barcodeNum - 1] = row.getField(header);
-                barcodeNum++;
-            }
-            final String bcStr = IlluminaUtil.barcodeSeqsToString(bcStrings);
-            if (barcodes.contains(bcStr)) {
-                messages.add("Barcode " + bcStr + " specified more than once in " + BARCODE_FILE);
-            }
-            barcodes.add(bcStr);
-            final String barcodeName = (hasBarcodeName ? row.getField(BARCODE_NAME_COLUMN) : "");
-            final String libraryName = (hasLibraryName ? row.getField(LIBRARY_NAME_COLUMN) : "");
-            final BarcodeMetric metric = new BarcodeMetric(barcodeName, libraryName, bcStr, bcStrings);
-            barcodeToMetrics.put(StringUtil.join("", bcStrings), metric);
-        }
-        barcodesParser.close();
-    }
-
-
-    /**
-     * Metrics produced by the ExtractIlluminaBarcodes program that is used to parse data in
-     * the basecalls directory and determine to which barcode each read should be assigned.
-     */
-    public static class BarcodeMetric extends MetricBase {
-        /**
-         * The barcode (from the set of expected barcodes) for which the following metrics apply.
-         * Note that the "symbolic" barcode of NNNNNN is used to report metrics for all reads that
-         * do not match a barcode.
-         */
-        public String BARCODE;
-        public String BARCODE_NAME = "";
-        public String LIBRARY_NAME = "";
-        /** 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). */
-        public int PF_READS = 0;
-        /** 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. */
-        public int PF_PERFECT_MATCHES = 0;
-        /** 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. */
-        public int PF_ONE_MISMATCH_MATCHES = 0;
-        /** The percentage 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
-         * most prevelant barcode this will be 1, for all others it will be less than 1 (except for the possible
-         * exception of when there are more orphan reads than for any other barcode, in which case the value
-         * may be arbitrarily large).  One over the lowest number in this column gives you the fold-difference
-         * in representation between barcodes.
-         */
-        public double RATIO_THIS_BARCODE_TO_BEST_BARCODE_PCT = 0d;
-        /** The percentage of PF reads in the lane that matched to this barcode. */
-        public double PF_PCT_MATCHES = 0d;
-
-        /**
-         * The rate of PF reads matching this barcode to PF reads matching the most prevelant barcode. For the
-         * most prevelant barcode this will be 1, for all others it will be less than 1 (except for the possible
-         * exception of when there are more orphan reads than for any other barcode, in which case the value
-         * may be arbitrarily large).  One over the lowest number in this column gives you the fold-difference
-         * in representation of PF reads between barcodes.
-         */
-        public double PF_RATIO_THIS_BARCODE_TO_BEST_BARCODE_PCT = 0d;
-
-        /**
-         * The "normalized" matches to each barcode. This is calculated as the number of pf reads matching
-         * this barcode over the sum of all pf reads matching any barcode (excluding orphans). If all barcodes
-         * are represented equally this will be 1.
-         */
-        public double PF_NORMALIZED_MATCHES;
-
-        protected byte[][] barcodeBytes;
-
-        public BarcodeMetric(final String barcodeName, final String libraryName,
-                             final String barcodeDisplay, final String[] barcodeSeqs) {
-
-            this.BARCODE = barcodeDisplay;
-            this.BARCODE_NAME = barcodeName;
-            this.LIBRARY_NAME = libraryName;
-            this.barcodeBytes = new byte[barcodeSeqs.length][];
-            for (int i = 0; i < barcodeSeqs.length; i++) {
-                barcodeBytes[i] = net.sf.samtools.util.StringUtil.stringToBytes(barcodeSeqs[i]);
-            }
-        }
-
-        /** 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 */
-        public static BarcodeMetric copy(final BarcodeMetric metric) {
-            final BarcodeMetric result = new BarcodeMetric();
-            result.BARCODE = metric.BARCODE;
-            result.BARCODE_NAME = metric.BARCODE_NAME;
-            result.LIBRARY_NAME = metric.LIBRARY_NAME;
-            result.barcodeBytes = metric.barcodeBytes;
-            return result;
-        }
-
-
-        /**
-         * Adds the non-calculated
-         *
-         * @param metric
-         */
-        public void merge(final BarcodeMetric metric) {
-            this.READS += metric.READS;
-            this.PF_READS += metric.PF_READS;
-            this.PERFECT_MATCHES += metric.PERFECT_MATCHES;
-            this.PF_PERFECT_MATCHES += metric.PF_PERFECT_MATCHES;
-            this.ONE_MISMATCH_MATCHES += metric.ONE_MISMATCH_MATCHES;
-            this.PF_ONE_MISMATCH_MATCHES += metric.PF_ONE_MISMATCH_MATCHES;
-        }
-
-    }
-
-    /** Extracts barcodes and accumulates metrics for an entire tile. */
-    private static class PerTileBarcodeExtractor implements Runnable {
-        private final int tile;
-        private final File barcodeFile;
-        private final Map<String, BarcodeMetric> metrics;
-        private final BarcodeMetric noMatch;
-        private Exception exception = null;
-        private final boolean usingQualityScores;
-        private final IlluminaDataProvider 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 {
-            boolean matched;
-            String barcode;
-            int mismatches;
-            int mismatchesToSecondBest;
-        }
-
-        /**
-         * Constructor
-         *
-         * @param tile             The number of the tile being processed; used for logging only.
-         * @param barcodeFile      The file to write the barcodes to
-         * @param noMatchMetric    A "template" metric that is cloned and the clone is stored internally for accumulating data
-         * @param barcodeToMetrics A "template" metric map whose metrics are cloned, and the clones are stored internally for accumulating data
-         */
-        public PerTileBarcodeExtractor(
-                final int tile,
-                final File barcodeFile,
-                final Map<String, BarcodeMetric> barcodeToMetrics,
-                final BarcodeMetric noMatchMetric,
-                final IlluminaDataProviderFactory factory,
-                final int minimumBaseQuality,
-                final int maxNoCalls,
-                final int maxMismatches,
-                final int minMismatchDelta
-        ) {
-            this.tile = tile;
-            this.barcodeFile = barcodeFile;
-            this.usingQualityScores = minimumBaseQuality > 0;
-            this.maxNoCalls = maxNoCalls;
-            this.maxMismatches = maxMismatches;
-            this.minMismatchDelta = minMismatchDelta;
-            this.minimumBaseQuality = minimumBaseQuality;
-            this.metrics = new LinkedHashMap<String, BarcodeMetric>(barcodeToMetrics.size());
-            for (final String key : barcodeToMetrics.keySet()) {
-                this.metrics.put(key, BarcodeMetric.copy(barcodeToMetrics.get(key)));
-            }
-            this.noMatch = BarcodeMetric.copy(noMatchMetric);
-            this.provider = factory.makeDataProvider(Arrays.asList(tile));
-            this.outputReadStructure = factory.getOutputReadStructure();
-
-        }
-
-
-        // These methods return the results of the extraction
-        public synchronized Map<String, BarcodeMetric> getMetrics() {
-            return this.metrics;
-        }
-
-        public synchronized BarcodeMetric getNoMatchMetric() { return this.noMatch; }
-
-        public synchronized Exception getException() { return this.exception; }
-
-        /** run method which extracts barcodes and accumulates metrics for an entire tile */
-        synchronized public void run() {
-            try {
-                LOG.info("Extracting barcodes for tile " + tile);
-
-                //Sometimes makeDataProvider takes a while waiting for slow file IO, for each tile the needed set of files
-                //is non-overlapping sets of files so make the  data providers in the individual threads for PerTileBarcodeExtractors
-                //so they are not all waiting for each others file operations
-
-
-                //Most likely we have SKIPS in our read structure since we replace all template reads with skips in the input data structure
-                //(see customCommnandLineValidation), therefore we must use the outputReadStructure to index into the output cluster data
-                final int[] barcodeIndices = outputReadStructure.barcodes.getIndices();
-                final BufferedWriter writer = IoUtil.openFileForBufferedWriting(barcodeFile);
-                final byte barcodeSubsequences[][] = new byte[barcodeIndices.length][];
-                final byte qualityScores[][] = usingQualityScores ? new byte[barcodeIndices.length][] : null;
-                while (provider.hasNext()) {
-                    // Extract the barcode from the cluster and write it to the file for the tile
-                    final ClusterData cluster = provider.next();
-                    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 boolean passingFilter = cluster.isPf();
-                    final BarcodeMatch match = findBestBarcodeAndUpdateMetrics(barcodeSubsequences, qualityScores, passingFilter, metrics, noMatch);
-
-                    final String yOrN = (match.matched ? "Y" : "N");
-
-                    for (final byte[] bc : barcodeSubsequences) {
-                        writer.write(StringUtil.bytesToString(bc));
-                    }
-                    writer.write("\t" + yOrN + "\t" + match.barcode + "\t" + String.valueOf(match.mismatches) +
-                            "\t" + String.valueOf(match.mismatchesToSecondBest));
-                    writer.newLine();
-                }
-                writer.close();
-            } catch (final Exception e) {
-                LOG.error(e, "Error processing tile ", this.tile);
-                this.exception = e;
-            }
-            finally{
-                provider.close();
-            }
-        }
-
-        /**
-         * Find the best barcode match for the given read sequence, and accumulate metrics
-         *
-         * @param readSubsequences portion of read containing barcode
-         * @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<String, BarcodeMetric> metrics,
-                                                             final BarcodeMetric noMatchBarcodeMetric) {
-            BarcodeMetric bestBarcodeMetric = null;
-            int totalBarcodeReadBases = 0;
-            int numNoCalls = 0; // NoCalls are calculated for all the barcodes combined
-
-            for (final byte[] bc : readSubsequences) {
-                totalBarcodeReadBases += bc.length;
-                for (final byte b : bc) if (SequenceUtil.isNoCall(b)) ++numNoCalls;
-            }
-
-            // PIC-506 When forcing all reads to match a single barcode, allow a read to match even if every
-            // base is a mismatch.
-            int numMismatchesInBestBarcode = totalBarcodeReadBases + 1;
-            int numMismatchesInSecondBestBarcode = totalBarcodeReadBases + 1;
-
-
-            for (final BarcodeMetric barcodeMetric : metrics.values()) {
-                final int numMismatches = countMismatches(barcodeMetric.barcodeBytes, readSubsequences, qualityScores);
-                if (numMismatches < numMismatchesInBestBarcode) {
-                    if (bestBarcodeMetric != null) {
-                        numMismatchesInSecondBestBarcode = numMismatchesInBestBarcode;
-                    }
-                    numMismatchesInBestBarcode = numMismatches;
-                    bestBarcodeMetric = barcodeMetric;
-                } else if (numMismatches < numMismatchesInSecondBestBarcode) {
-                    numMismatchesInSecondBestBarcode = numMismatches;
-                }
-            }
-
-            final boolean matched = bestBarcodeMetric != null &&
-                    numNoCalls <= maxNoCalls &&
-                    numMismatchesInBestBarcode <= maxMismatches &&
-                    numMismatchesInSecondBestBarcode - numMismatchesInBestBarcode >= minMismatchDelta;
-
-            final BarcodeMatch match = new BarcodeMatch();
-
-            // If we have something that's not a "match" but matches one barcode
-            // slightly, we output that matching barcode in lower case
-            if (numNoCalls + numMismatchesInBestBarcode < totalBarcodeReadBases) {
-                match.mismatches = numMismatchesInBestBarcode;
-                match.mismatchesToSecondBest = numMismatchesInSecondBestBarcode;
-                match.barcode = bestBarcodeMetric.BARCODE.toLowerCase().replaceAll(IlluminaUtil.BARCODE_DELIMITER, "");
-            } else {
-                match.mismatches = totalBarcodeReadBases;
-                match.barcode = "";
-            }
-
-            if (matched) {
-                ++bestBarcodeMetric.READS;
-                if (passingFilter) {
-                    ++bestBarcodeMetric.PF_READS;
-                }
-                if (numMismatchesInBestBarcode == 0) {
-                    ++bestBarcodeMetric.PERFECT_MATCHES;
-                    if (passingFilter) {
-                        ++bestBarcodeMetric.PF_PERFECT_MATCHES;
-                    }
-                } else if (numMismatchesInBestBarcode == 1) {
-                    ++bestBarcodeMetric.ONE_MISMATCH_MATCHES;
-                    if (passingFilter) {
-                        ++bestBarcodeMetric.PF_ONE_MISMATCH_MATCHES;
-                    }
-                }
-
-                match.matched = true;
-                match.barcode = bestBarcodeMetric.BARCODE.replaceAll(IlluminaUtil.BARCODE_DELIMITER, "");
-            } else {
-                ++noMatchBarcodeMetric.READS;
-                if (passingFilter) {
-                    ++noMatchBarcodeMetric.PF_READS;
-                }
-            }
-
-            return match;
-        }
-
-        /**
-         * Compare barcode sequence to bases from read
-         *
-         * @return how many bases did not match
-         */
-        private int countMismatches(final byte[][] barcodeBytes, final byte[][] readSubsequence, final byte[][] qualities) {
-            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++) {
-                final int basesToCheck = Math.min(barcodeBytes[j].length, readSubsequence[j].length);
-                for (int i = 0; i < basesToCheck; ++i) {
-                    if (!SequenceUtil.isNoCall(readSubsequence[j][i])) {
-                        if (!SequenceUtil.basesEqual(barcodeBytes[j][i], readSubsequence[j][i])) ++numMismatches;
-                        else if (qualities != null && qualities[j][i] < minimumBaseQuality) ++numMismatches;
-                    }
-                }
-            }
-            return numMismatches;
-        }
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/IlluminaBasecallsConverter.java b/src/java/net/sf/picard/illumina/IlluminaBasecallsConverter.java
deleted file mode 100644
index 2ace5db..0000000
--- a/src/java/net/sf/picard/illumina/IlluminaBasecallsConverter.java
+++ /dev/null
@@ -1,858 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.illumina;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.illumina.parser.ClusterData;
-import net.sf.picard.illumina.parser.IlluminaDataProvider;
-import net.sf.picard.illumina.parser.IlluminaDataProviderFactory;
-import net.sf.picard.illumina.parser.IlluminaDataType;
-import net.sf.picard.illumina.parser.ReadStructure;
-import net.sf.picard.illumina.parser.readers.BclQualityEvaluationStrategy;
-import net.sf.picard.util.FileChannelJDKBugWorkAround;
-import net.sf.picard.util.Log;
-import net.sf.picard.util.ProgressLogger;
-import net.sf.samtools.util.PeekIterator;
-import net.sf.samtools.util.SortingCollection;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.NoSuchElementException;
-import java.util.Queue;
-import java.util.Set;
-import java.util.Timer;
-import java.util.TimerTask;
-import java.util.TreeMap;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.PriorityBlockingQueue;
-import java.util.concurrent.ThreadPoolExecutor;
-import java.util.concurrent.atomic.AtomicBoolean;
-
-import static java.util.concurrent.TimeUnit.MILLISECONDS;
-
-/**
- * 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
- * into separate outputs by barcode.
- *
- * @param <CLUSTER_OUTPUT_RECORD> The class to which a ClusterData is converted in preparation for writing.
- */
-public class IlluminaBasecallsConverter<CLUSTER_OUTPUT_RECORD> {
-    /**
-     * 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
-     * takes on a state once the tile (which is serving as the context of this state) has been read.
-     */
-    private enum TileBarcodeProcessingState {
-        NA, READ, QUEUED_FOR_WRITE, WRITTEN
-    }
-
-    /**
-     * Describes the state of a tile being processed.  It is either not yet completely read, or read.
-     */
-    private enum TileProcessingState {
-        NOT_DONE_READING, DONE_READING
-    }
-
-    private static final Log log = Log.getInstance(IlluminaBasecallsConverter.class);
-
-    public static final IlluminaDataType[] DATA_TYPES_NO_BARCODE =
-            {IlluminaDataType.BaseCalls, IlluminaDataType.QualityScores, IlluminaDataType.Position, IlluminaDataType.PF};
-    private static final IlluminaDataType[] DATA_TYPES_WITH_BARCODE = Arrays.copyOf(DATA_TYPES_NO_BARCODE, DATA_TYPES_NO_BARCODE.length + 1);
-
-    static {
-        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<Integer> TILE_NUMBER_COMPARATOR = new Comparator<Integer>() {
-        @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()) {
-                if (s1.startsWith(s2)) {
-                    return -1;
-                }
-            }
-            return s1.compareTo(s2);
-        }
-    };
-
-    private final Comparator<CLUSTER_OUTPUT_RECORD> outputRecordComparator;
-
-    private final BclQualityEvaluationStrategy bclQualityEvaluationStrategy;
-    private final Map<String, ? extends ConvertedClusterDataWriter<CLUSTER_OUTPUT_RECORD>> barcodeRecordWriterMap;
-    private final int maxReadsInRamPerTile;
-    private final boolean demultiplex;
-    private final List<File> tmpDirs;
-    private final IlluminaDataProviderFactory factory;
-    private ClusterDataConverter<CLUSTER_OUTPUT_RECORD> 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<Integer> tiles;
-    private final boolean includeNonPfReads;
-    private final SortingCollection.Codec<CLUSTER_OUTPUT_RECORD> codecPrototype;
-    // Annoying that we need this.
-    private final Class<CLUSTER_OUTPUT_RECORD> 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)
-     */
-    public IlluminaBasecallsConverter(final File basecallsDir, final int lane, final ReadStructure readStructure,
-                                      final Map<String, ? extends ConvertedClusterDataWriter<CLUSTER_OUTPUT_RECORD>> barcodeRecordWriterMap,
-                                      final boolean demultiplex,
-                                      final int maxReadsInRamPerTile,
-                                      final List<File> tmpDirs,
-                                      final int numProcessors, final boolean forceGc,
-                                      final Integer firstTile, final Integer tileLimit,
-                                      final Comparator<CLUSTER_OUTPUT_RECORD> outputRecordComparator,
-                                      final SortingCollection.Codec<CLUSTER_OUTPUT_RECORD> codecPrototype,
-                                      final Class<CLUSTER_OUTPUT_RECORD> outputRecordClass,
-                                      final BclQualityEvaluationStrategy bclQualityEvaluationStrategy,
-                                      final boolean applyEamssFiltering,
-                                      final boolean includeNonPfReads
-    ) {
-        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;
-
-        // If we're forcing garbage collection, collect every 5 minutes in a daemon thread.
-        if (forceGc) {
-            final Timer gcTimer = new Timer(true);
-            final long delay = 5 * 1000 * 60;
-            gcTimerTask = new TimerTask() {
-                @Override
-                public void run() {
-                    System.out.println("Before explicit GC, Runtime.totalMemory()=" + Runtime.getRuntime().totalMemory());
-                    System.gc();
-                    System.runFinalization();
-                    System.out.println("After explicit GC, Runtime.totalMemory()=" + Runtime.getRuntime().totalMemory());
-                }
-            };
-            gcTimer.scheduleAtFixedRate(gcTimerTask, delay, delay);
-        } else {
-            gcTimerTask = null;
-        }
-
-        this.factory = new IlluminaDataProviderFactory(basecallsDir, 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<Integer>(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<CLUSTER_OUTPUT_RECORD> 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.
-     */
-    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<Tile> tiles = new ArrayList<Tile>();
-            for (final Integer tileNumber : this.tiles) {
-                tiles.add(new Tile(tileNumber));
-            }
-
-            final TileReadAggregator tileReadAggregator = new TileReadAggregator(tiles);
-            tileReadAggregator.submit();
-            try {
-                tileReadAggregator.awaitWorkComplete();
-            } catch (final InterruptedException e) {
-                log.error(e, "Failure encountered in worker thread; attempting to shut down remaining worker threads and terminate ...");
-                throw new PicardException("Failure encountered in worker thread; see log for details.");
-            } finally {
-                tileReadAggregator.shutdown();
-            }
-
-            for (final Map.Entry<Byte, Integer> entry : bclQualityEvaluationStrategy.getPoorQualityFrequencies().entrySet()) {
-                log.warn(String.format("Observed low quality of %s %s times.", entry.getKey(), entry.getValue()));
-            }
-            bclQualityEvaluationStrategy.assertMinimumQualities();
-
-        } finally {
-            try {
-                gcTimerTask.cancel();
-            } catch (final Throwable ex) {
-                log.warn(ex, "Ignoring exception stopping background GC thread.");
-            }
-            // Close the writers
-            for (final Map.Entry<String, ? extends ConvertedClusterDataWriter<CLUSTER_OUTPUT_RECORD>> entry : barcodeRecordWriterMap.entrySet()) {
-                final ConvertedClusterDataWriter<CLUSTER_OUTPUT_RECORD> writer = entry.getValue();
-                log.debug(String.format("Closing file for barcode %s.", entry.getKey()));
-                writer.close();
-            }
-        }
-    }
-
-    /**
-     * Simple representation of a tile
-     */
-    private static class Tile implements Comparable<Tile> {
-        private final int tileNumber;
-
-        public Tile(final int i) {
-            tileNumber = i;
-        }
-
-        public int getNumber() {
-            return tileNumber;
-        }
-
-        @Override
-        public boolean equals(final Object o) {
-            return o instanceof Tile && this.getNumber() == ((Tile) o).getNumber();
-        }
-
-        @Override
-        public int compareTo(final Tile o) {
-            return TILE_NUMBER_COMPARATOR.compare(this.getNumber(), o.getNumber());
-        }
-    }
-
-
-    /**
-     * A Runnable that carries a priority which is used to compare and order other PriorityRunnables in a task queue.
-     */
-    private abstract class PriorityRunnable implements Runnable {
-        private final int priority;
-
-        /**
-         * Create a new priority runnable with a default priority of 1.
-         */
-        public PriorityRunnable() {
-            this(1);
-        }
-
-        public PriorityRunnable(final int priority) {
-            this.priority = priority;
-        }
-
-        /**
-         * Returns the priority level.  Higher priorities are run earlier.
-         *
-         * @return
-         */
-        int getPriority() {
-            return this.priority;
-        }
-    }
-
-
-    /**
-     * Represents the state of a tile's processing and encapsulates the data collected from that tile.
-     * <p/>
-     * TileProcessingRecords are accessed from each worker thread to assess the progress of the run, so its methods
-     * are synchronized.
-     */
-    private class TileProcessingRecord {
-        final private Map<String, SortingCollection<CLUSTER_OUTPUT_RECORD>> barcodeToRecordCollection =
-                new HashMap<String, SortingCollection<CLUSTER_OUTPUT_RECORD>>();
-        final private Map<String, TileBarcodeProcessingState> barcodeToProcessingState = new HashMap<String, TileBarcodeProcessingState>();
-        private TileProcessingState state = TileProcessingState.NOT_DONE_READING;
-        private long recordCount = 0;
-
-        /**
-         * Returns the state of this tile's processing.
-         */
-        public synchronized TileProcessingState getState() {
-            return this.state;
-        }
-
-        /**
-         * Sets the state of this tile's processing.
-         */
-        public synchronized void setState(final TileProcessingState state) {
-            this.state = state;
-        }
-
-        /**
-         * Adds the provided record to this tile.
-         */
-        public synchronized void addRecord(final String barcode, final CLUSTER_OUTPUT_RECORD record) {
-            this.recordCount += 1;
-
-            // Grab the existing collection, or initialize it if it doesn't yet exist
-            SortingCollection<CLUSTER_OUTPUT_RECORD> recordCollection = this.barcodeToRecordCollection.get(barcode);
-            if (recordCollection == null) {
-                if (!barcodeRecordWriterMap.containsKey(barcode))
-                    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 = this.newSortingCollection();
-                this.barcodeToRecordCollection.put(barcode, recordCollection);
-                this.barcodeToProcessingState.put(barcode, null);
-            }
-            recordCollection.add(record);
-        }
-
-        private synchronized SortingCollection<CLUSTER_OUTPUT_RECORD> newSortingCollection() {
-            final int maxRecordsInRam =
-                    maxReadsInRamPerTile /
-                            barcodeRecordWriterMap.size();
-            return SortingCollection.newInstance(
-                    outputRecordClass,
-                    codecPrototype.clone(),
-                    outputRecordComparator,
-                    maxRecordsInRam,
-                    tmpDirs);
-        }
-
-        /**
-         * Returns the number of unique barcodes read.
-         */
-        public synchronized long getBarcodeCount() {
-            return this.barcodeToRecordCollection.size();
-        }
-
-        /**
-         * Returns the number of records read.
-         */
-        public synchronized long getRecordCount() {
-            return recordCount;
-        }
-
-        /**
-         * Returns the mapping of barcodes to records associated with them.
-         */
-        public synchronized Map<String, SortingCollection<CLUSTER_OUTPUT_RECORD>> getBarcodeRecords() {
-            return barcodeToRecordCollection;
-        }
-
-        /**
-         * Gets the state of the provided barcode's data's processing progress.  Only invoke this query if this tile
-         * is in a DONE_READING state.
-         *
-         * @throws IllegalStateException When a barcode is queried before the tile is in the DONE_READING state
-         */
-        public synchronized TileBarcodeProcessingState getBarcodeState(final String barcode) {
-            if (this.getState() == TileProcessingState.NOT_DONE_READING) {
-                throw new IllegalStateException(
-                        "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;
-            }
-        }
-
-        public synchronized Map<String, TileBarcodeProcessingState> getBarcodeProcessingStates() {
-            return this.barcodeToProcessingState;
-        }
-
-        /**
-         * Sets the processing state of the provided barcode in this record.
-         *
-         * @throws java.util.NoSuchElementException When the provided barcode is not one associated with this record.
-         */
-        public synchronized void setBarcodeState(final String barcode, final TileBarcodeProcessingState state) {
-            if (this.barcodeToProcessingState.containsKey(barcode)) {
-                this.barcodeToProcessingState.put(barcode, state);
-            } else {
-                throw new NoSuchElementException(String.format("No record of the provided barcode, %s.", barcode));
-            }
-        }
-
-        /**
-         * Returns the distinct set of barcodes for which data has been collected in this record.
-         *
-         * @return
-         */
-        public synchronized Set<String> getBarcodes() {
-            return this.getBarcodeRecords().keySet();
-        }
-    }
-
-    /**
-     * Reads the information from a tile via an IlluminaDataProvider and feeds red information into a processingRecord
-     * managed by the TileReadAggregator.
-     */
-    private class TileReader {
-        private final Tile tile;
-        private final TileReadAggregator handler;
-        private final TileProcessingRecord processingRecord;
-
-        public TileReader(final Tile tile, final TileReadAggregator handler, final TileProcessingRecord processingRecord) {
-            this.tile = tile;
-            this.handler = handler;
-            this.processingRecord = processingRecord;
-        }
-
-        /**
-         * Reads the data from the appropriate IlluminaDataProvider and feeds it into the TileProcessingRecord for
-         * this tile.
-         */
-        public void process() {
-            final IlluminaDataProvider dataProvider = factory.makeDataProvider(Arrays.asList(this.tile.getNumber()));
-            log.debug(String.format("Reading data from tile %s ...", tile.getNumber()));
-
-            while (dataProvider.hasNext()) {
-                final ClusterData cluster = dataProvider.next();
-                readProgressLogger.record(null, 0);
-                // If this cluster is passing, or we do NOT want to ONLY emit passing reads, then add it to the next
-                if (cluster.isPf() || includeNonPfReads) {
-                    final String barcode = (demultiplex ? cluster.getMatchedBarcode() : null);
-                    this.processingRecord.addRecord(barcode, converter.convertClusterToOutputRecord(cluster));
-                }
-            }
-
-            this.handler.completeTile(this.tile);
-            dataProvider.close();
-        }
-    }
-
-
-    /**
-     * Aggregates data collected from tiles and writes them to file. Accepts records from TileReaders and maps
-     * them to the appropriate BAM writers.
-     */
-    private class TileReadAggregator {
-        /**
-         * The collection of records associated with a particular tile.
-         * <p/>
-         * Implemented as a TreeMap to guarantee tiles are iterated over in natural order.
-         */
-        private final Map<Tile, TileProcessingRecord> tileRecords = new TreeMap<Tile, TileProcessingRecord>();
-
-        /**
-         * The executor responsible for doing work.
-         * <p/>
-         * Implemented as a ThreadPoolExecutor with a PriorityBlockingQueue which orders submitted Runnables by their
-         * priority.
-         */
-        private final ExecutorService prioritizingThreadPool = new ThreadPoolExecutor(
-                numThreads,
-                numThreads,
-                0L,
-                MILLISECONDS,
-                new PriorityBlockingQueue<Runnable>(5, new Comparator<Runnable>() {
-                    @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();
-                    }
-                })
-        );
-
-        /**
-         * The object acting as a latch to notify when the aggregator completes its work.
-         */
-        private final Object completionLatch = new Object();
-
-        /**
-         * Stores the thread that is executing this work so that it can be interrupted upon failure.
-         */
-        private Thread parentThread;
-        private final Object workEnqueueMonitor = new Object();
-        private final AtomicBoolean submitted = new AtomicBoolean(false);
-
-
-        /**
-         * Creates a TileReadAggregator that reads from the provided tiles.
-         *
-         * @param tiles
-         */
-        public TileReadAggregator(final Collection<Tile> tiles) {
-            for (final Tile t : tiles) {
-                tileRecords.put(t, new TileProcessingRecord());
-            }
-        }
-
-        /**
-         * Execute the tile aggregator's work.  Creates a thread pool to read data from tiles and write them to file.
-         * Invoke this method only once.
-         *
-         * @throws IllegalStateException If submit was called more than once.
-         */
-        public void submit() {
-            // Ensure the aggregator as not yet been submitted
-            if (!this.submitted.compareAndSet(false, true)) {
-                throw new IllegalStateException("The submit() method may not be called more than once.");
-            }
-
-            // 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.
-             */
-            int priority = 0;
-            for (final Tile tile : this.tileRecords.keySet()) {
-                final TileReader reader = new TileReader(tile, this, this.tileRecords.get(tile));
-                this.prioritizingThreadPool.execute(new PriorityRunnable(--priority) {
-                    @Override
-                    public void run() {
-                        try {
-                            reader.process();
-                        } catch (final RuntimeException 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;
-                        }
-                    }
-                });
-            }
-        }
-
-        /**
-         * Signals that a tile's processing is complete.  This must be invoked exactly once per tile, and only after
-         * all of that tile has been processed.
-         *
-         * @throws IllegalStateException When the tile is already in the completed state.
-         */
-        private void completeTile(final Tile tile) {
-            final TileProcessingRecord tileRecord = this.tileRecords.get(tile);
-
-            if (tileRecord.getState() == TileProcessingState.DONE_READING) {
-                throw new IllegalStateException("This tile is already in the completed state.");
-            }
-
-            // Update all of the barcodes and the tile to be marked as read
-            for (final String barcode : tileRecord.getBarcodes()) {
-                tileRecord.setBarcodeState(barcode, TileBarcodeProcessingState.READ);
-            }
-            tileRecord.setState(TileProcessingState.DONE_READING);
-
-            log.debug(String.format("Completed reading tile %s; collected %s reads spanning %s barcodes.",
-                    tile.getNumber(), tileRecord.getRecordCount(), tileRecord.getBarcodeCount()));
-
-            //noinspection SynchronizationOnLocalVariableOrMethodParameter
-            this.findAndEnqueueWorkOrSignalCompletion();
-        }
-
-        /**
-         * Blocks until this aggregator completes its work.
-         *
-         * @throws InterruptedException
-         */
-        public void awaitWorkComplete() throws InterruptedException {
-            synchronized (this.completionLatch) {
-                this.completionLatch.wait();
-            }
-        }
-
-        /**
-         * Signals to any thread awaiting via awaitWorkComplete() that no work remains. Called
-         * when this aggregator has reached its completed state.
-         */
-        private void signalWorkComplete() {
-            synchronized (this.completionLatch) {
-                this.completionLatch.notifyAll();
-            }
-        }
-
-        /**
-         * Poll the aggregator to find more tasks for it to enqueue.  Specifically, searches for un-written data
-         * read from tiles for each barcode and enqueues it for writing.
-         */
-        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<Runnable> tasks = new LinkedList<Runnable>();
-                    for (final String barcode : barcodeRecordWriterMap.keySet()) {
-                        NEXT_BARCODE:
-                        for (final Map.Entry<Tile, TileProcessingRecord> 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.
-                             */
-                            if (tileRecord.getState() != TileProcessingState.DONE_READING) {
-                                break;
-                            }
-                            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.
-                                     */
-                                    tileRecord.setBarcodeState(barcode, TileBarcodeProcessingState.QUEUED_FOR_WRITE);
-                                    log.debug(String.format("Enqueuing work for tile %s and barcode %s.", tile.getNumber(), barcode));
-                                    tasks.add(this.newBarcodeWorkInstance(tile, tileRecord, barcode));
-                                    break NEXT_BARCODE;
-                            }
-                        }
-                    }
-
-                    for (final Runnable task : tasks) {
-                        this.prioritizingThreadPool.execute(task);
-                    }
-                }
-            }
-        }
-
-        /**
-         * Returns a PriorityRunnable that encapsulates the work involved with writing the provided tileRecord's data
-         * for the given barcode to disk.
-         *
-         * @param tile       The tile from which the record was read
-         * @param tileRecord The processing record associated with the tile
-         * @param barcode    The barcode whose data within the tileRecord is to be written
-         * @return The runnable that upon invocation writes the barcode's data from the tileRecord to disk
-         */
-        private PriorityRunnable newBarcodeWorkInstance(final Tile tile, final TileProcessingRecord tileRecord, final String barcode) {
-            return new PriorityRunnable() {
-                @Override
-                public void run() {
-                    try {
-                        final SortingCollection<CLUSTER_OUTPUT_RECORD> records = tileRecord.getBarcodeRecords().get(barcode);
-                        final ConvertedClusterDataWriter<CLUSTER_OUTPUT_RECORD> writer = barcodeRecordWriterMap.get(barcode);
-
-                        log.debug(String.format("Writing records from tile %s with barcode %s ...", tile.getNumber(), barcode));
-
-                        final PeekIterator<CLUSTER_OUTPUT_RECORD> it = new PeekIterator<CLUSTER_OUTPUT_RECORD>(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
-                             * distance for paired end.  It also assumes that for paired ends there will be duplicates
-                             * for both ends, so there is no need to be PE-aware.
-                             */
-                            if (it.hasNext()) {
-                                final CLUSTER_OUTPUT_RECORD lookAhead = it.peek();
-
-/* TODO: Put this in SAMFileWriter wrapper
-                                if (!rec.getReadUnmappedFlag() || !lookAhead.getReadUnmappedFlag()) {
-                                    throw new IllegalStateException("Should not have mapped reads.");
-                                }
-*/
-
-                                if (outputRecordComparator.compare(rec, lookAhead) == 0) {
-                                    it.next();
-                                    log.info("Skipping reads with identical read names: " + rec.toString());
-                                    continue;
-                                }
-                            }
-
-                            writer.write(rec);
-                            writeProgressLogger.record(null, 0);
-                        }
-
-                        tileRecord.setBarcodeState(barcode, TileBarcodeProcessingState.WRITTEN);
-                        findAndEnqueueWorkOrSignalCompletion();
-
-                    } catch (final RuntimeException 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;
-                    }
-                }
-
-            };
-        }
-
-        /**
-         * Returns true if this aggregator has not completed its work.  Specifically, returns false iff
-         * any tile's barcode data yas not yet been written.
-         *
-         * @return True if more work remains to be done, false otherwise
-         */
-        public boolean isWorkCompleted() {
-            for (final Map.Entry<Tile, TileProcessingRecord> entry : this.tileRecords.entrySet()) {
-                final TileProcessingRecord tileProcessingRecord = entry.getValue();
-
-                if (tileProcessingRecord.getState() != TileProcessingState.DONE_READING) {
-                    log.debug(String.format("Work is not completed because a tile isn't done being read: %s.", entry.getKey().getNumber()));
-                    return false;
-                } else {
-                    for (final Map.Entry<String, TileBarcodeProcessingState> barcodeStateEntry : tileProcessingRecord.getBarcodeProcessingStates().entrySet()) {
-                        final TileBarcodeProcessingState barcodeProcessingState = barcodeStateEntry.getValue();
-                        if (barcodeProcessingState != TileBarcodeProcessingState.WRITTEN) {
-                            log.debug(String.format("Work is not completed because a tile isn't done being read: Tile %s, Barcode %s, Processing State %s.", entry.getKey().getNumber(), barcodeStateEntry.getKey(), barcodeProcessingState));
-                            return false;
-                        }
-                    }
-                }
-            }
-            log.info("All work is complete.");
-            return true;
-        }
-
-        /**
-         * Terminates the threads currently exiting in the thread pool abruptly via ThreadPoolExecutor.shutdownNow().
-         */
-        public void shutdown() {
-            this.prioritizingThreadPool.shutdownNow();
-        }
-    }
-
-    /**
-     * Given a read structure return the data types that need to be parsed for this run
-     */
-    private static IlluminaDataType[] getDataTypesFromReadStructure(final ReadStructure readStructure,
-                                                                    final boolean demultiplex) {
-        if (readStructure.barcodes.isEmpty() || !demultiplex) {
-            return DATA_TYPES_NO_BARCODE;
-        } else {
-            return DATA_TYPES_WITH_BARCODE;
-        }
-    }
-
-    public static interface ClusterDataConverter<OUTPUT_RECORD> {
-
-        /**
-         * Creates the OUTPUT_RECORDs from the cluster
-         */
-        public OUTPUT_RECORD convertClusterToOutputRecord(final ClusterData cluster);
-    }
-
-    public static interface ConvertedClusterDataWriter<OUTPUT_RECORD> {
-        void write(final OUTPUT_RECORD rec);
-
-        void close();
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/IlluminaBasecallsToFastq.java b/src/java/net/sf/picard/illumina/IlluminaBasecallsToFastq.java
deleted file mode 100644
index fea549f..0000000
--- a/src/java/net/sf/picard/illumina/IlluminaBasecallsToFastq.java
+++ /dev/null
@@ -1,459 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.illumina;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.StandardOptionDefinitions;
-import net.sf.picard.cmdline.Usage;
-import net.sf.picard.fastq.*;
-import net.sf.picard.illumina.parser.ClusterData;
-import net.sf.picard.illumina.parser.ReadData;
-import net.sf.picard.illumina.parser.ReadStructure;
-import net.sf.picard.illumina.parser.readers.BclQualityEvaluationStrategy;
-import net.sf.picard.io.IoUtil;
-import net.sf.samtools.util.CollectionUtil;
-import net.sf.picard.util.IlluminaUtil;
-import net.sf.picard.util.Log;
-import net.sf.picard.util.TabbedTextFileWithHeaderParser;
-import net.sf.samtools.*;
-import net.sf.samtools.util.SortingCollection;
-import net.sf.samtools.util.StringUtil;
-
-import java.io.*;
-import java.util.*;
-
-public class IlluminaBasecallsToFastq extends CommandLineProgram {
-    // The following attributes define the command-line arguments
-    @Usage
-    public String USAGE =
-            getStandardUsagePreamble() + "Generate fastq file(s) from data in an Illumina basecalls output directory.\n" +
-            "Separate fastq file(s) are created for each template read, and for each barcode read, in the basecalls.\n" +
-            "Template fastqs have extensions like .<number>.fastq, where <number> is the number of the template read,\n" +
-            "starting with 1.  Barcode fastqs have extensions like .barcode_<number>.fastq, where <number> is the number\n" +
-            "of the barcode read, starting with 1.";
-
-    @Option(doc = "The basecalls directory. ", shortName = "B")
-    public File BASECALLS_DIR;
-
-    @Option(doc = "Lane number. ", shortName = StandardOptionDefinitions.LANE_SHORT_NAME)
-    public Integer LANE;
-
-    @Option(doc = "The prefix for output fastqs.  Extensions as described above are appended.  Use this option for " +
-            "a non-barcoded run, or for a barcoded run in which it is not desired to demultiplex reads into separate " +
-            "files by barcode.",
-            shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME,
-            mutex = {"MULTIPLEX_PARAMS"})
-    public File OUTPUT_PREFIX;
-
-    @Option(doc = "The barcode of the run.  Prefixed to read names.", optional = false)
-    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;
-
-    @Option(doc = "Tab-separated file for creating all output fastqs demultiplexed by barcode for a lane with single " +
-            "IlluminaBasecallsToFastq invocation.  The columns are OUTPUT_PREFIX, and BARCODE_1, BARCODE_2 ... BARCODE_X " +
-            "where X = number of barcodes per cluster (optional).  Row with BARCODE_1 set to 'N' is used to specify " +
-            "an output_prefix for no barcode match.",
-            mutex = {"OUTPUT_PREFIX"})
-    public File MULTIPLEX_PARAMS;
-
-    @Option(doc = "Which adapters to look for in the read.")
-    public List<IlluminaUtil.IlluminaAdapterPair> ADAPTERS_TO_CHECK = new ArrayList<IlluminaUtil.IlluminaAdapterPair>(
-            Arrays.asList(IlluminaUtil.IlluminaAdapterPair.INDEXED,
-                    IlluminaUtil.IlluminaAdapterPair.DUAL_INDEXED,
-                    IlluminaUtil.IlluminaAdapterPair.NEXTERA_V2,
-                    IlluminaUtil.IlluminaAdapterPair.FLUIDIGM));
-
-    @Option(doc = "The number of threads to run in parallel. If NUM_PROCESSORS = 0, number of cores is automatically set to " +
-            "the number of cores available on the machine. If NUM_PROCESSORS < 0, then the number of cores used will" +
-            " be the number available on the machine less NUM_PROCESSORS.")
-    public Integer NUM_PROCESSORS = 0;
-
-    @Option(doc = "If set, this is the first tile to be processed (used for debugging).  Note that tiles are not processed" +
-            " in numerical order.",
-            optional = true)
-    public Integer FIRST_TILE;
-
-    @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" +
-            " and convert their quality scores to Q2.")
-    public boolean APPLY_EAMSS_FILTER = true;
-
-    @Option(doc = "If true, call System.gc() periodically.  This is useful in cases in which the -Xmx value passed " +
-            "is larger than the available memory.")
-    public Boolean FORCE_GC = true;
-
-    @Option(doc = "Configure SortingCollections to store this many records before spilling to disk. For an indexed" +
-            " 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." +
-            "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)
-    public boolean INCLUDE_NON_PF_READS = true;
-
-    @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)
-    public ReadNameFormat READ_NAME_FORMAT = ReadNameFormat.CASAVA_1_8;
-
-    /** Simple switch to control the read name format to emit. */
-    public enum ReadNameFormat {
-        CASAVA_1_8, ILLUMINA
-    }
-    
-    private final Map<String, FastqRecordsWriter> barcodeFastqWriterMap = new HashMap<String, FastqRecordsWriter>();
-    private ReadStructure readStructure;
-    IlluminaBasecallsConverter<FastqRecordsForCluster> basecallsConverter;
-    private static final Log log = Log.getInstance(IlluminaBasecallsToFastq.class);
-    private final FastqWriterFactory fastqWriterFactory = new FastqWriterFactory();
-    private ReadNameEncoder readNameEncoder;
-    private static final Comparator<FastqRecordsForCluster> queryNameComparator = new Comparator<FastqRecordsForCluster>() {
-        @Override
-        public int compare(final FastqRecordsForCluster r1, final FastqRecordsForCluster r2) {
-            return SAMRecordQueryNameComparator.compareReadNames(r1.templateRecords[0].getReadHeader(),
-                    r2.templateRecords[0].getReadHeader());
-        }
-    };
-
-
-    @Override
-    protected int doWork() {
-        initialize();
-
-        basecallsConverter.doTileProcessing();
-
-        return 0;
-    }
-
-    @Override
-    protected String[] customCommandLineValidation() {
-        final LinkedList<String> errors = new LinkedList<String>();
-        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.");
-        }
-
-        if (READ_NAME_FORMAT == ReadNameFormat.CASAVA_1_8 && FLOWCELL_BARCODE == null) {
-            errors.add("FLOWCELL_BARCODE is required when using Casava1.8-style read name headers.");
-        }
-        
-        if (errors.isEmpty()) {
-            return null;
-        } else {
-            return errors.toArray(new String[errors.size()]);
-        }
-    }
-
-    /**
-     * Prepares loggers, initiates garbage collection thread, parses arguments and initialized variables appropriately/
-     */
-    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);        
-                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) {
-            IoUtil.assertFileIsReadable(MULTIPLEX_PARAMS);
-        }
-        final boolean demultiplex;
-        if (OUTPUT_PREFIX != null) {
-            barcodeFastqWriterMap.put(null, buildWriter(OUTPUT_PREFIX));
-            demultiplex = false;
-        } else {
-            populateWritersFromMultiplexParams();
-            demultiplex = true;
-        }
-        final int readsPerCluster = readStructure.templates.length() + readStructure.barcodes.length();
-        basecallsConverter = new IlluminaBasecallsConverter<FastqRecordsForCluster>(BASECALLS_DIR, LANE, readStructure,
-                barcodeFastqWriterMap, demultiplex, MAX_READS_IN_RAM_PER_TILE/readsPerCluster, TMP_DIR, NUM_PROCESSORS,
-                FORCE_GC, FIRST_TILE, TILE_LIMIT, queryNameComparator,
-                new FastqRecordsForClusterCodec(readStructure.templates.length(),
-                readStructure.barcodes.length()), FastqRecordsForCluster.class, bclQualityEvaluationStrategy,
-                this.APPLY_EAMSS_FILTER, INCLUDE_NON_PF_READS);
-
-        log.info("READ STRUCTURE IS " + readStructure.toString());
-
-        basecallsConverter.setConverter(
-		        new ClusterToFastqRecordsForClusterConverter(
-				        basecallsConverter.getFactory().getOutputReadStructure()));
-
-    }
-
-    /**
-     * Assert that expectedCols are present
-     *
-     * @param actualCols   The columns present in the MULTIPLEX_PARAMS file
-     * @param expectedCols The columns that are REQUIRED
-     */
-    private void assertExpectedColumns(final Set<String> actualCols, final Set<String> expectedCols) {
-        final Set<String> missingColumns = new HashSet<String>(expectedCols);
-        missingColumns.removeAll(actualCols);
-
-        if (missingColumns.size() > 0) {
-            throw new PicardException(String.format(
-                    "MULTIPLEX_PARAMS file %s is missing the following columns: %s.",
-                    MULTIPLEX_PARAMS.getAbsolutePath(), StringUtil.join(", ", missingColumns
-            )));
-        }
-    }
-
-    /**
-     * For each line in the MULTIPLEX_PARAMS file create a FastqRecordsWriter and put it in the barcodeFastqWriterMap map,
-     * where the key to the map is the concatenation of all barcodes in order for the given line.
-     */
-    private void populateWritersFromMultiplexParams() {
-        final TabbedTextFileWithHeaderParser libraryParamsParser = new TabbedTextFileWithHeaderParser(MULTIPLEX_PARAMS);
-
-        final Set<String> expectedColumnLabels = CollectionUtil.makeSet("OUTPUT_PREFIX");
-        final List<String> barcodeColumnLabels = new ArrayList<String>();
-        for (int i = 1; i <= readStructure.barcodes.length(); i++) {
-            barcodeColumnLabels.add("BARCODE_" + i);
-        }
-
-        expectedColumnLabels.addAll(barcodeColumnLabels);
-        assertExpectedColumns(libraryParamsParser.columnLabels(), expectedColumnLabels);
-
-        for (final TabbedTextFileWithHeaderParser.Row row : libraryParamsParser) {
-            List<String> barcodeValues = null;
-
-            if (barcodeColumnLabels.size() > 0) {
-                barcodeValues = new ArrayList<String>();
-                for (final String barcodeLabel : barcodeColumnLabels) {
-                    barcodeValues.add(row.getField(barcodeLabel));
-                }
-            }
-
-            final String key = (barcodeValues == null || barcodeValues.contains("N")) ? null : StringUtil.join("", barcodeValues);
-            if (barcodeFastqWriterMap.containsKey(key)) {    //This will catch the case of having more than 1 line in a non-barcoded MULTIPLEX_PARAMS file
-                throw new PicardException("Row for barcode " + key + " appears more than once in MULTIPLEX_PARAMS file " +
-                        MULTIPLEX_PARAMS);
-            }
-
-
-            final FastqRecordsWriter writer = buildWriter(new File(row.getField("OUTPUT_PREFIX")));
-            barcodeFastqWriterMap.put(key, writer);
-        }
-        if (barcodeFastqWriterMap.isEmpty()) {
-            throw new PicardException("MULTIPLEX_PARAMS file " + MULTIPLEX_PARAMS + " does have any data rows.");
-        }
-        libraryParamsParser.close();
-    }
-
-    /**
-     * @return FastqRecordsWriter that contains one or more FastqWriters (amount depends on read structure), all using
-     * outputPrefix to determine the filename(s).
-     */
-    private FastqRecordsWriter buildWriter(final File outputPrefix) {
-        final File outputDir = outputPrefix.getAbsoluteFile().getParentFile();
-        IoUtil.assertDirectoryIsWritable(outputDir);
-        final String prefixString = outputPrefix.getName();
-        final FastqWriter[] templateWriters = new FastqWriter[readStructure.templates.length()];
-        final FastqWriter[] barcodeWriters = new FastqWriter[readStructure.barcodes.length()];
-        for (int i = 0; i < templateWriters.length; ++i) {
-            final String filename = String.format("%s.%d.fastq", prefixString, i+1);
-            templateWriters[i] = fastqWriterFactory.newWriter(new File(outputDir, filename));
-        }
-        for (int i = 0; i < barcodeWriters.length; ++i) {
-            final String filename = String.format("%s.barcode_%d.fastq", prefixString, i+1);
-            barcodeWriters[i] = fastqWriterFactory.newWriter(new File(outputDir, filename));
-        }
-        return new FastqRecordsWriter(templateWriters, barcodeWriters);
-    }
-
-    public static void main(final String[] args) {
-        new IlluminaBasecallsToFastq().instanceMainWithExit(args);
-    }
-
-    /**
-     * Container for various FastqWriters, one for each template read and one for each barcode read.
-     */
-    private static class FastqRecordsWriter implements IlluminaBasecallsConverter.ConvertedClusterDataWriter<FastqRecordsForCluster> {
-        final FastqWriter[] templateWriters;
-        final FastqWriter[] barcodeWriters;
-
-        /**
-         * @param templateWriters Writers for template reads in order, e,g. 0th element is for template read 1.
-         * @param barcodeWriters Writers for barcode reads in order, e,g. 0th element is for barcode read 1.
-         */
-        private FastqRecordsWriter(final FastqWriter[] templateWriters, final FastqWriter[] barcodeWriters) {
-            this.templateWriters = templateWriters;
-            this.barcodeWriters = barcodeWriters;
-        }
-
-        @Override
-        public void write(final FastqRecordsForCluster records) {
-            write(templateWriters, records.templateRecords);
-            write(barcodeWriters, records.barcodeRecords);
-        }
-
-        private void write(final FastqWriter[] writers, final FastqRecord[] records) {
-            for (int i = 0; i < writers.length; ++i) {
-                writers[i].write(records[i]);
-            }
-        }
-
-        @Override
-        public void close() {
-            for (final FastqWriter writer : templateWriters) {
-                writer.close();
-            }
-            for (final FastqWriter writer : barcodeWriters) {
-                writer.close();
-            }
-        }
-    }
-
-    /**
-     * Contains the results of transforming one cluster into the record(s) to be written to output file(s).
-     */
-    static class FastqRecordsForCluster {
-        // These are accessed directly by converter and writer rather than through getters and setters.
-        final FastqRecord[] templateRecords;
-        final FastqRecord[] barcodeRecords;
-
-        FastqRecordsForCluster(final int numTemplates, final int numBarcodes) {
-            templateRecords = new FastqRecord[numTemplates];
-            barcodeRecords = new FastqRecord[numBarcodes];
-        }
-    }
-
-    /**
-     * Passed to IlluminaBaseCallsConverter to do the conversion from input format to output format.
-     */
-    class ClusterToFastqRecordsForClusterConverter
-            implements IlluminaBasecallsConverter.ClusterDataConverter<FastqRecordsForCluster> {
-
-        private final int [] templateIndices;
-        private final int [] barcodeIndices;
-
-        ClusterToFastqRecordsForClusterConverter(final ReadStructure outputReadStructure) {
-            this.templateIndices = outputReadStructure.templates.getIndices();
-            this.barcodeIndices = outputReadStructure.barcodes.getIndices();
-        }
-
-        @Override
-        public FastqRecordsForCluster convertClusterToOutputRecord(final ClusterData cluster) {
-            final FastqRecordsForCluster ret = new FastqRecordsForCluster(readStructure.templates.length(), readStructure.barcodes.length());
-            final boolean appendReadNumberSuffix = ret.templateRecords.length > 1;
-            makeFastqRecords(ret.templateRecords, templateIndices, cluster, appendReadNumberSuffix);
-            makeFastqRecords(ret.barcodeRecords, barcodeIndices, cluster, false);
-            return ret;
-        }
-
-        private void makeFastqRecords(final FastqRecord[] recs, final int[] indices,
-                                      final ClusterData cluster, final boolean appendReadNumberSuffix) {
-            for (short i = 0; i < indices.length; ++i) {
-                final ReadData readData = cluster.getRead(indices[i]);
-                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, 
-                        null,
-                        SAMUtils.phredToFastq(readData.getQualities())
-                );
-            }
-        }
-    }
-
-    /**
-     * Coded passed to IlluminaBasecallsConverter for use in SortingCollections of output records.
-     */
-    static class FastqRecordsForClusterCodec implements SortingCollection.Codec<FastqRecordsForCluster> {
-        private final int numTemplates;
-        private final int numBarcodes;
-        private BasicFastqWriter writer = null;
-        private FastqReader reader = null;
-
-        FastqRecordsForClusterCodec(final int numTemplates, final int numBarcodes) {
-            this.numTemplates = numTemplates;
-            this.numBarcodes = numBarcodes;
-        }
-
-        @Override
-        public void setOutputStream(final OutputStream os) {
-            writer = new BasicFastqWriter(new PrintStream(os));
-        }
-
-        @Override
-        public void setInputStream(final InputStream is) {
-            reader = new FastqReader(new BufferedReader(new InputStreamReader(is)));
-        }
-
-        @Override
-        public void encode(final FastqRecordsForCluster val) {
-            if (numTemplates != val.templateRecords.length) throw new IllegalStateException();
-            if (numBarcodes != val.barcodeRecords.length) throw new IllegalStateException();
-            encodeArray(val.templateRecords);
-            encodeArray(val.barcodeRecords);
-            writer.flush();
-        }
-
-        private void encodeArray(final FastqRecord[] recs) {
-            for (final FastqRecord rec: recs) {
-                writer.write(rec);
-            }
-        }
-
-        @Override
-        public FastqRecordsForCluster decode() {
-            if (!reader.hasNext()) return null;
-            final FastqRecordsForCluster ret = new FastqRecordsForCluster(numTemplates, numBarcodes);
-            decodeArray(ret.templateRecords);
-            decodeArray(ret.barcodeRecords);
-            return ret;
-        }
-
-        private void decodeArray(final FastqRecord[] recs) {
-            for (int i = 0; i < recs.length; ++i) {
-                recs[i] = reader.next();
-            }
-        }
-
-        @Override
-        public SortingCollection.Codec<FastqRecordsForCluster> clone() {
-            return new FastqRecordsForClusterCodec(numTemplates, numBarcodes);
-        }
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/IlluminaBasecallsToSam.java b/src/java/net/sf/picard/illumina/IlluminaBasecallsToSam.java
deleted file mode 100644
index 39423a8..0000000
--- a/src/java/net/sf/picard/illumina/IlluminaBasecallsToSam.java
+++ /dev/null
@@ -1,525 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.illumina;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.StandardOptionDefinitions;
-import net.sf.picard.cmdline.Usage;
-import net.sf.picard.illumina.parser.ReadStructure;
-import net.sf.picard.illumina.parser.readers.BclQualityEvaluationStrategy;
-import net.sf.picard.io.IoUtil;
-import net.sf.samtools.util.CollectionUtil;
-import net.sf.picard.util.IlluminaUtil;
-import net.sf.picard.util.IlluminaUtil.IlluminaAdapterPair;
-import net.sf.picard.util.Log;
-import net.sf.picard.util.TabbedTextFileWithHeaderParser;
-import net.sf.samtools.*;
-import net.sf.samtools.util.Iso8601Date;
-import net.sf.samtools.util.SortingCollection;
-import net.sf.samtools.util.StringUtil;
-
-import java.io.File;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.*;
-
-/**
- * IlluminaBasecallsToSam transforms a lane of Illumina data file formats (bcl, locs, clocs, qseqs, etc.) into
- * SAM or BAM file format.
- * <p/>
- * In this application, barcode data is read from Illumina data file groups, each of which is associated with a tile.
- * Each tile may contain data for any number of barcodes, and a single barcode's data may span multiple tiles.  Once the
- * barcode data is collected from files, each barcode's data is written to its own SAM/BAM.  The barcode data must be
- * written in order; this means that barcode data from each tile is sorted before it is written to file, and that if a
- * barcode's data does span multiple tiles, data collected from each tile must be written in the order of the tiles
- * themselves.
- * <p/>
- * This class employs a number of private subclasses to achieve this goal.  The TileReadAggregator controls the flow
- * of operation.  It is fed a number of Tiles which it uses to spawn TileReaders.  TileReaders are responsible for
- * 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
- * more writes.  When all barcodes for all tiles have been written, the TileReadAggregator shuts down.
- * <p/>
- * The TileReadAggregator controls task execution using a specialized ThreadPoolExecutor.  It accepts special Runnables
- * of type PriorityRunnable which allow a priority to be assigned to the runnable.  When the ThreadPoolExecutor is
- * assigning threads, it gives priority to those PriorityRunnables with higher priority values.  In this application,
- * TileReaders are assigned lowest priority, and write tasks are assigned high priority.  It is designed in this fashion
- * to minimize the amount of time data must remain in memory (write the data as soon as possible, then discard it from
- * memory) while maximizing CPU usage.
- *
- * @author jburke at broadinstitute.org
- * @author mccowan at broadinstitute.org
- */
-public class IlluminaBasecallsToSam extends CommandLineProgram {
-    // The following attributes define the command-line arguments
-    @Usage
-    public String USAGE =
-            getStandardUsagePreamble() + "Generate a SAM or BAM file from data in an Illumina basecalls output directory.\n";
-
-    @Option(doc = "The basecalls directory. ", shortName = "B")
-    public File BASECALLS_DIR;
-
-    @Option(doc = "Lane number. ", shortName = StandardOptionDefinitions.LANE_SHORT_NAME)
-    public Integer LANE;
-
-    @Option(doc = "Deprecated (use LIBRARY_PARAMS).  The output SAM or BAM file. Format is determined by extension.",
-            shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME,
-            mutex = {"BARCODE_PARAMS", "LIBRARY_PARAMS"})
-    public File OUTPUT;
-
-    @Option(doc = "The barcode of the run.  Prefixed to read names.")
-    public String RUN_BARCODE;
-
-    @Option(doc = "Deprecated (use LIBRARY_PARAMS).  The name of the sequenced sample",
-            shortName = StandardOptionDefinitions.SAMPLE_ALIAS_SHORT_NAME,
-            mutex = {"BARCODE_PARAMS", "LIBRARY_PARAMS"})
-    public String SAMPLE_ALIAS;
-
-    @Option(doc = "ID used to link RG header record with RG tag in SAM record.  " +
-            "If these are unique in SAM files that get merged, merge performance is better.  " +
-            "If not specified, READ_GROUP_ID will be set to <first 5 chars of RUN_BARCODE>.<LANE> .",
-            shortName = StandardOptionDefinitions.READ_GROUP_ID_SHORT_NAME, optional = true)
-    public String READ_GROUP_ID;
-
-    @Option(doc = "Deprecated (use LIBRARY_PARAMS).  The name of the sequenced library",
-            shortName = StandardOptionDefinitions.LIBRARY_NAME_SHORT_NAME,
-            optional = true,
-            mutex = {"BARCODE_PARAMS", "LIBRARY_PARAMS"})
-    public String LIBRARY_NAME;
-
-    @Option(doc = "The name of the sequencing center that produced the reads.  Used to set the RG.CN tag.", optional = true)
-    public String SEQUENCING_CENTER = "BI";
-
-    @Option(doc = "The start date of the run.", optional = true)
-    public Date RUN_START_DATE;
-
-    @Option(doc = "The name of the sequencing technology that produced the read.", optional = true)
-    public String PLATFORM = "illumina";
-
-    @Option(doc = ReadStructure.PARAMETER_DOC, shortName = "RS")
-    public String READ_STRUCTURE;
-
-    @Option(doc = "Deprecated (use LIBRARY_PARAMS).  Tab-separated file for creating all output BAMs for barcoded run " +
-            "with single IlluminaBasecallsToSam invocation.  Columns are BARCODE, OUTPUT, SAMPLE_ALIAS, and " +
-            "LIBRARY_NAME.  Row with BARCODE=N is used to specify a file for no barcode match",
-            mutex = {"OUTPUT", "SAMPLE_ALIAS", "LIBRARY_NAME", "LIBRARY_PARAMS"})
-    public File BARCODE_PARAMS;
-
-    @Option(doc = "Tab-separated file for creating all output BAMs for a lane with single IlluminaBasecallsToSam " +
-            "invocation.  The columns are OUTPUT, SAMPLE_ALIAS, and LIBRARY_NAME, BARCODE_1, BARCODE_2 ... BARCODE_X " +
-            "where X = number of barcodes per cluster (optional).  Row with BARCODE_1 set to 'N' is used to specify a file " +
-            "for no barcode match.  You may also provide any 2 letter RG header attributes (excluding PU, CN, PL, and" +
-            " DT)  as columns in this file and the values for those columns will be inserted into the RG tag for the" +
-            " BAM file created for a given row.",
-            mutex = {"OUTPUT", "SAMPLE_ALIAS", "LIBRARY_NAME", "BARCODE_PARAMS"})
-    public File LIBRARY_PARAMS;
-
-    @Option(doc = "Which adapters to look for in the read.")
-    public List<IlluminaAdapterPair> ADAPTERS_TO_CHECK = new ArrayList<IlluminaAdapterPair>(
-            Arrays.asList(IlluminaAdapterPair.INDEXED,
-                    IlluminaAdapterPair.DUAL_INDEXED,
-                    IlluminaAdapterPair.NEXTERA_V2,
-                    IlluminaAdapterPair.FLUIDIGM));
-
-    @Option(doc = "The number of threads to run in parallel. If NUM_PROCESSORS = 0, number of cores is automatically set to " +
-            "the number of cores available on the machine. If NUM_PROCESSORS < 0, then the number of cores used will" +
-            " be the number available on the machine less NUM_PROCESSORS.")
-    public Integer NUM_PROCESSORS = 0;
-
-    @Option(doc = "If set, this is the first tile to be processed (used for debugging).  Note that tiles are not processed" +
-            " in numerical order.",
-            optional = true)
-    public Integer FIRST_TILE;
-
-    @Option(doc = "If set, process no more than this many tiles (used for debugging).", optional = true)
-    public Integer TILE_LIMIT;
-
-    @Option(doc = "If true, call System.gc() periodically.  This is useful in cases in which the -Xmx value passed " +
-            "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" +
-            " and convert their quality scores to Q2.")
-    public boolean APPLY_EAMSS_FILTER = true;
-
-    @Option(doc = "Configure SortingCollections to store this many records before spilling to disk. For an indexed" +
-            " 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." +
-            "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)
-    public boolean INCLUDE_NON_PF_READS = true;
-
-    private final Map<String, SAMFileWriterWrapper> barcodeSamWriterMap = new HashMap<String, SAMFileWriterWrapper>();
-    private ReadStructure readStructure;
-    IlluminaBasecallsConverter<SAMRecordsForCluster> basecallsConverter;
-    private static final Log log = Log.getInstance(IlluminaBasecallsToSam.class);
-    private BclQualityEvaluationStrategy bclQualityEvaluationStrategy;
-
-    @Override
-    protected int doWork() {
-        initialize();
-        basecallsConverter.doTileProcessing();
-        return 0;
-    }
-
-    /**
-     * Prepares loggers, initiates garbage collection thread, parses arguments and initialized variables appropriately/
-     */
-    private void initialize() {
-        this.bclQualityEvaluationStrategy = new BclQualityEvaluationStrategy(MINIMUM_QUALITY);
-
-        if (OUTPUT != null) {
-            IoUtil.assertFileIsWritable(OUTPUT);
-        }
-
-        if (LIBRARY_PARAMS != null) {
-            IoUtil.assertFileIsReadable(LIBRARY_PARAMS);
-        }
-
-        if (OUTPUT != null) {
-            barcodeSamWriterMap.put(null, buildSamFileWriter(OUTPUT, SAMPLE_ALIAS, LIBRARY_NAME, buildSamHeaderParameters(null)));
-        } else {
-            populateWritersFromLibraryParams();
-        }
-
-        readStructure = new ReadStructure(READ_STRUCTURE);
-
-        final int numOutputRecords = readStructure.templates.length();
-
-        basecallsConverter = new IlluminaBasecallsConverter<SAMRecordsForCluster>(BASECALLS_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);
-
-        log.info("DONE_READING STRUCTURE IS " + readStructure.toString());
-
-        /**
-         * 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).
-         */
-        final ClusterDataToSamConverter converter = new ClusterDataToSamConverter(RUN_BARCODE, READ_GROUP_ID,
-                basecallsConverter.getFactory().getOutputReadStructure(), ADAPTERS_TO_CHECK);
-        basecallsConverter.setConverter(converter);
-
-    }
-
-    /**
-     * Assert that expectedCols are present and return actualCols - expectedCols
-     *
-     * @param actualCols   The columns present in the LIBRARY_PARAMS file
-     * @param expectedCols The columns that are REQUIRED
-     * @return actualCols - expectedCols
-     */
-    private Set<String> findAndFilterExpectedColumns(final Set<String> actualCols, final Set<String> expectedCols) {
-        final Set<String> missingColumns = new HashSet<String>(expectedCols);
-        missingColumns.removeAll(actualCols);
-
-        if (missingColumns.size() > 0) {
-            throw new PicardException(String.format(
-                    "LIBRARY_PARAMS file %s is missing the following columns: %s.",
-                    LIBRARY_PARAMS.getAbsolutePath(), StringUtil.join(", ", missingColumns
-            )));
-        }
-
-        final Set<String> remainingColumns = new HashSet<String>(actualCols);
-        remainingColumns.removeAll(expectedCols);
-        return remainingColumns;
-    }
-
-    /**
-     * Given a set of columns assert that all columns conform to the format of an RG header attribute (i.e. 2 letters)
-     * the attribute is NOT a member of the rgHeaderTags that are built by default in buildSamHeaderParameters
-     *
-     * @param rgTagColumns A set of columns that should conform to the rg header attribute format
-     */
-    private void checkRgTagColumns(final Set<String> rgTagColumns) {
-        final Set<String> forbiddenHeaders = buildSamHeaderParameters(null).keySet();
-        forbiddenHeaders.retainAll(rgTagColumns);
-
-        if (forbiddenHeaders.size() > 0) {
-            throw new PicardException("Illegal ReadGroup tags in library params(barcode params) file(" + LIBRARY_PARAMS.getAbsolutePath() + ") Offending headers = " + StringUtil.join(", ", forbiddenHeaders));
-        }
-
-        for (final String column : rgTagColumns) {
-            if (column.length() > 2) {
-                throw new PicardException("Column label (" + column + ") unrecognized.  Library params(barcode params) can only contain the columns " +
-                        "(OUTPUT, LIBRARY_NAME, SAMPLE_ALIAS, BARCODE, BARCODE_<X> where X is a positive integer) OR two letter RG tags!");
-            }
-        }
-    }
-
-    /**
-     * For each line in the LIBRARY_PARAMS file create a SamFileWriter and put it in the barcodeSamWriterMap map, where
-     * the key to the map is the concatenation of all barcodes in order for the given line
-     */
-    private void populateWritersFromLibraryParams() {
-        final TabbedTextFileWithHeaderParser libraryParamsParser = new TabbedTextFileWithHeaderParser(LIBRARY_PARAMS);
-
-        final Set<String> expectedColumnLabels = CollectionUtil.makeSet("OUTPUT", "SAMPLE_ALIAS", "LIBRARY_NAME");
-        final List<String> barcodeColumnLabels = new ArrayList<String>();
-        if (readStructure.barcodes.length() == 1) {
-            //For the single barcode read case, the barcode label name can either by BARCODE or BARCODE_1
-            if (libraryParamsParser.hasColumn("BARCODE")) {
-                barcodeColumnLabels.add("BARCODE");
-            } else if (libraryParamsParser.hasColumn("BARCODE_1")) {
-                barcodeColumnLabels.add("BARCODE_1");
-            } else {
-                throw new PicardException("LIBRARY_PARAMS(BARCODE_PARAMS) file " + LIBRARY_PARAMS + " does not have column BARCODE or BARCODE_1.");
-            }
-        } else {
-            for (int i = 1; i <= readStructure.barcodes.length(); i++) {
-                barcodeColumnLabels.add("BARCODE_" + i);
-            }
-        }
-
-        expectedColumnLabels.addAll(barcodeColumnLabels);
-        final Set<String> rgTagColumns = findAndFilterExpectedColumns(libraryParamsParser.columnLabels(), expectedColumnLabels);
-        checkRgTagColumns(rgTagColumns);
-
-        for (final TabbedTextFileWithHeaderParser.Row row : libraryParamsParser) {
-            List<String> barcodeValues = null;
-
-            if (barcodeColumnLabels.size() > 0) {
-                barcodeValues = new ArrayList<String>();
-                for (final String barcodeLabel : barcodeColumnLabels) {
-                    barcodeValues.add(row.getField(barcodeLabel));
-                }
-            }
-
-            final String key = (barcodeValues == null || barcodeValues.contains("N")) ? null : StringUtil.join("", barcodeValues);
-            if (barcodeSamWriterMap.containsKey(key)) {    //This will catch the case of having more than 1 line in a non-barcoded LIBRARY_PARAMS file
-                throw new PicardException("Row for barcode " + key + " appears more than once in LIBRARY_PARAMS or BARCODE_PARAMS file " +
-                        LIBRARY_PARAMS);
-            }
-
-            final Map<String, String> samHeaderParams = buildSamHeaderParameters(barcodeValues);
-
-            for (final String tagName : rgTagColumns) {
-                samHeaderParams.put(tagName, row.getField(tagName));
-            }
-
-            final SAMFileWriterWrapper writer = buildSamFileWriter(new File(row.getField("OUTPUT")),
-                    row.getField("SAMPLE_ALIAS"), row.getField("LIBRARY_NAME"), samHeaderParams);
-            barcodeSamWriterMap.put(key, writer);
-        }
-        if (barcodeSamWriterMap.isEmpty()) {
-            throw new PicardException("LIBRARY_PARAMS(BARCODE_PARAMS) file " + LIBRARY_PARAMS + " does have any data rows.");
-        }
-        libraryParamsParser.close();
-    }
-
-    /**
-     * Create the list of headers that will be added to the SAMFileHeader for a library with the given barcodes (or
-     * the entire run if barcodes == NULL).  Note that any value that is null will NOT be added via buildSamFileWriter
-     * but is placed in the map in order to be able to query the tags that we automatically add.
-     *
-     * @param barcodes The list of barcodes that uniquely identify the read group we are building parameters for
-     * @return A Map of ReadGroupHeaderTags -> Values
-     */
-    private Map<String, String> buildSamHeaderParameters(final List<String> barcodes) {
-        final Map<String, String> params = new HashMap<String, String>();
-
-        String platformUnit = RUN_BARCODE + "." + LANE;
-        if (barcodes != null) platformUnit += ("." + IlluminaUtil.barcodeSeqsToString(barcodes));
-        params.put("PU", platformUnit);
-
-        params.put("CN", SEQUENCING_CENTER);
-        params.put("PL", PLATFORM);
-        if (RUN_START_DATE != null) {
-            final Iso8601Date date = new Iso8601Date(RUN_START_DATE);
-            params.put("DT", date.toString());
-        } else {
-            params.put("DT", null);
-        }
-
-        return params;
-    }
-
-    /**
-     * Build a SamFileWriter that will write its contents to the output file.
-     *
-     * @param output           The file to which to write
-     * @param sampleAlias      The sample alias set in the read group header
-     * @param libraryName      The name of the library to which this read group belongs
-     * @param headerParameters Header parameters that will be added to the RG header for this SamFile
-     * @return A SAMFileWriter
-     */
-    private SAMFileWriterWrapper buildSamFileWriter(final File output, final String sampleAlias,
-                                                    final String libraryName, final Map<String, String> headerParameters) {
-        IoUtil.assertFileIsWritable(output);
-        final SAMReadGroupRecord rg = new SAMReadGroupRecord(READ_GROUP_ID);
-        rg.setSample(sampleAlias);
-
-        if (libraryName != null) rg.setLibrary(libraryName);
-        for (final Map.Entry<String, String> tagNameToValue : headerParameters.entrySet()) {
-            if (tagNameToValue.getValue() != null) {
-                rg.setAttribute(tagNameToValue.getKey(), tagNameToValue.getValue());
-            }
-        }
-
-        final SAMFileHeader header = new SAMFileHeader();
-        header.setSortOrder(SAMFileHeader.SortOrder.queryname);
-        header.addReadGroup(rg);
-        return new SAMFileWriterWrapper(new SAMFileWriterFactory().makeSAMOrBAMWriter(header, true, output));
-    }
-
-    public static void main(final String[] args) {
-        System.exit(new IlluminaBasecallsToSam().instanceMain(args));
-    }
-
-    /**
-     * Put any custom command-line validation in an override of this method.
-     * clp is initialized at this point and can be used to print usage and access 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.
-     */
-    @Override
-    protected String[] customCommandLineValidation() {
-        if (BARCODE_PARAMS != null) {
-            LIBRARY_PARAMS = BARCODE_PARAMS;
-        }
-
-        final ArrayList<String> messages = new ArrayList<String>();
-
-        readStructure = new ReadStructure(READ_STRUCTURE);
-        if (!readStructure.barcodes.isEmpty()) {
-            if (LIBRARY_PARAMS == null) {
-                messages.add("BARCODE_PARAMS or LIBRARY_PARAMS is missing.  If READ_STRUCTURE contains a B (barcode)" +
-                        " then either LIBRARY_PARAMS or BARCODE_PARAMS(deprecated) must be provided!");
-            }
-        }
-
-        if (READ_GROUP_ID == null) {
-            READ_GROUP_ID = RUN_BARCODE.substring(0, 5) + "." + LANE;
-        }
-        if (messages.size() == 0) {
-            return null;
-        }
-        return messages.toArray(new String[messages.size()]);
-    }
-
-
-    private static class SAMFileWriterWrapper
-            implements IlluminaBasecallsConverter.ConvertedClusterDataWriter<SAMRecordsForCluster> {
-        public final SAMFileWriter writer;
-
-        private SAMFileWriterWrapper(final SAMFileWriter writer) {
-            this.writer = writer;
-        }
-
-        @Override
-        public void write(final SAMRecordsForCluster records) {
-            for (final SAMRecord rec : records.records) {
-                writer.addAlignment(rec);
-            }
-        }
-
-        @Override
-        public void close() {
-            writer.close();
-        }
-    }
-
-    static class SAMRecordsForCluster {
-        final SAMRecord[] records;
-
-        SAMRecordsForCluster(final int numRecords) {
-            records = new SAMRecord[numRecords];
-        }
-    }
-
-    static class QueryNameComparator implements Comparator<SAMRecordsForCluster> {
-        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]);
-        }
-    }
-
-    static class Codec implements SortingCollection.Codec<SAMRecordsForCluster> {
-        private final BAMRecordCodec bamCodec;
-        private final int numRecords;
-
-        Codec(final int numRecords, final BAMRecordCodec bamCodec) {
-            this.numRecords = numRecords;
-            this.bamCodec = bamCodec;
-        }
-
-        Codec(final int numRecords) {
-            this(numRecords, new BAMRecordCodec(null));
-        }
-
-        @Override
-        public void setOutputStream(final OutputStream os) {
-            bamCodec.setOutputStream(os);
-        }
-
-        @Override
-        public void setInputStream(final InputStream is) {
-            bamCodec.setInputStream(is);
-        }
-
-        @Override
-        public void encode(final SAMRecordsForCluster val) {
-            if (val.records.length != numRecords) {
-                throw new IllegalStateException(String.format("Expected number of clusters %d != actual %d",
-                        numRecords, val.records.length));
-            }
-            for (final SAMRecord rec : val.records) {
-                bamCodec.encode(rec);
-            }
-        }
-
-        @Override
-        public SAMRecordsForCluster decode() {
-            final SAMRecord zerothRecord = bamCodec.decode();
-            if (zerothRecord == null) return null;
-            final SAMRecordsForCluster ret = new SAMRecordsForCluster(numRecords);
-            ret.records[0] = zerothRecord;
-            for (int i = 1; i < numRecords; ++i) {
-                ret.records[i] = bamCodec.decode();
-                if (ret.records[i] == null) {
-                    throw new IllegalStateException(String.format("Expected to read % records but read only %d", numRecords, i));
-                }
-            }
-            return ret;
-        }
-
-        @Override
-        public SortingCollection.Codec<SAMRecordsForCluster> clone() {
-            return new Codec(numRecords, bamCodec.clone());
-        }
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/MarkIlluminaAdapters.java b/src/java/net/sf/picard/illumina/MarkIlluminaAdapters.java
deleted file mode 100644
index 3bf8072..0000000
--- a/src/java/net/sf/picard/illumina/MarkIlluminaAdapters.java
+++ /dev/null
@@ -1,256 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.illumina;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.StandardOptionDefinitions;
-import net.sf.picard.cmdline.Usage;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.metrics.MetricsFile;
-import net.sf.picard.sam.ReservedTagConstants;
-import net.sf.picard.util.*;
-import net.sf.samtools.*;
-import net.sf.samtools.util.CollectionUtil;
-import net.sf.samtools.util.SequenceUtil;
-import net.sf.samtools.util.StringUtil;
-import static net.sf.picard.util.IlluminaUtil.IlluminaAdapterPair;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Command line program to mark the location of adapter sequences.
- * This also outputs a histogram of metrics describing the clipped bases
- *
- * @author Tim Fennell (adapted by mborkan at broadinstitute.org)
- */
-public class MarkIlluminaAdapters extends CommandLineProgram {
-
-    // The following attributes define the command-line arguments
-    @Usage
-    public String USAGE =
-            getStandardUsagePreamble() +  "Reads a SAM or BAM file and rewrites it with new adapter-trimming tags.\n" +
-                    "Clear any existing adapter-trimming tags (XT:i:).\n" +
-                    "Only works for unaligned files in query-name order.\n"+
-                    "Note: This is a utility program and will not be run in the pipeline.\n";
-
-    @Option(shortName=StandardOptionDefinitions.INPUT_SHORT_NAME)
-    public File INPUT;
-
-    @Option(doc="If output is not specified, just the metrics are generated",
-            shortName=StandardOptionDefinitions.OUTPUT_SHORT_NAME, optional=true)
-    public File OUTPUT;
-
-    @Option(doc="Histogram showing counts of bases_clipped in how many reads", shortName="M")
-    public File METRICS;
-
-    @Option(doc="The minimum number of bases to match over when clipping single-end reads.")
-    public int MIN_MATCH_BASES_SE = ClippingUtility.MIN_MATCH_BASES;
-
-    @Option(doc="The minimum number of bases to match over (per-read) when clipping paired-end reads.")
-    public int MIN_MATCH_BASES_PE = ClippingUtility.MIN_MATCH_PE_BASES;
-
-    @Option(doc="The maximum mismatch error rate to tolerate when clipping single-end reads.")
-    public double MAX_ERROR_RATE_SE = ClippingUtility.MAX_ERROR_RATE;
-
-    @Option(doc="The maximum mismatch error rate to tolerate when clipping paired-end reads.")
-    public double MAX_ERROR_RATE_PE = ClippingUtility.MAX_PE_ERROR_RATE;
-
-    @Option(doc="DEPRECATED. Whether this is a paired-end run. No longer used.", shortName="PE", optional=true)
-    public Boolean PAIRED_RUN;
-
-    @Option(doc="Which adapters sequences to attempt to identify and clip.")
-    public List<IlluminaAdapterPair> ADAPTERS =
-            CollectionUtil.makeList(IlluminaAdapterPair.INDEXED,
-                    IlluminaAdapterPair.DUAL_INDEXED,
-                    IlluminaAdapterPair.PAIRED_END
-                    );
-
-    @Option(doc="For specifying adapters other than standard Illumina", optional=true)
-    public String FIVE_PRIME_ADAPTER;
-    @Option(doc="For specifying adapters other than standard Illumina", optional=true)
-    public String THREE_PRIME_ADAPTER;
-
-    @Option(doc="Adapters are truncated to this length to speed adapter matching.  Set to a large number to effectively disable truncation.")
-    public int ADAPTER_TRUNCATION_LENGTH = AdapterMarker.DEFAULT_ADAPTER_LENGTH;
-
-    @Option(doc="If looking for multiple adapter sequences, then after having seen this many adapters, shorten the list of sequences. " +
-            "Keep the adapters that were found most frequently in the input so far. " +
-            "Set to -1 if the input has a heterogeneous mix of adapters so shortening is undesirable.",
-    shortName = "APT")
-    public int PRUNE_ADAPTER_LIST_AFTER_THIS_MANY_ADAPTERS_SEEN = AdapterMarker.DEFAULT_PRUNE_ADAPTER_LIST_AFTER_THIS_MANY_ADAPTERS_SEEN;
-
-    @Option(doc="If pruning the adapter list, keep only this many adapter sequences when pruning the list (plus any adapters that " +
-            "were tied with the adapters being kept).")
-    public int NUM_ADAPTERS_TO_KEEP = AdapterMarker.DEFAULT_NUM_ADAPTERS_TO_KEEP;
-
-    private static final Log log = Log.getInstance(MarkIlluminaAdapters.class);
-
-    // Stock main method
-    public static void main(final String[] args) {
-        System.exit(new MarkIlluminaAdapters().instanceMain(args));
-    }
-
-    @Override
-    protected String[] customCommandLineValidation() {
-        if ((FIVE_PRIME_ADAPTER != null && THREE_PRIME_ADAPTER == null) || (THREE_PRIME_ADAPTER != null && FIVE_PRIME_ADAPTER == null)) {
-            return new String[] {"Either both or neither of THREE_PRIME_ADAPTER and FIVE_PRIME_ADAPTER must be set."};
-        }
-        else {
-            return null;
-        }
-    }
-
-    @Override
-    protected int doWork() {
-        IoUtil.assertFileIsReadable(INPUT);
-        IoUtil.assertFileIsWritable(METRICS);
-
-        final SAMFileReader in = new SAMFileReader(INPUT);
-        final SAMFileHeader.SortOrder order = in.getFileHeader().getSortOrder();
-        SAMFileWriter out = null;
-        if (OUTPUT != null) {
-            IoUtil.assertFileIsWritable(OUTPUT);
-            out = new SAMFileWriterFactory().makeSAMOrBAMWriter(in.getFileHeader(), true, OUTPUT);
-        }
-
-        final Histogram<Integer> histo = new Histogram<Integer>("clipped_bases", "read_count");
-
-        // Combine any adapters and custom adapter pairs from the command line into an array for use in clipping
-        final AdapterPair[] adapters;
-        {
-            final List<AdapterPair> tmp = new ArrayList<AdapterPair>();
-            tmp.addAll(ADAPTERS);
-            if (FIVE_PRIME_ADAPTER != null && THREE_PRIME_ADAPTER != null) {
-                tmp.add(new CustomAdapterPair(FIVE_PRIME_ADAPTER, THREE_PRIME_ADAPTER));
-            }
-            adapters = tmp.toArray(new AdapterPair[tmp.size()]);
-        }
-
-        ////////////////////////////////////////////////////////////////////////
-        // Main loop that consumes reads, clips them and writes them to the output
-        ////////////////////////////////////////////////////////////////////////
-        final ProgressLogger progress = new ProgressLogger(log, 1000000, "Read");
-        final SAMRecordIterator iterator = in.iterator();
-
-        final AdapterMarker adapterMarker = new AdapterMarker(ADAPTER_TRUNCATION_LENGTH, adapters).
-                setMaxPairErrorRate(MAX_ERROR_RATE_PE).setMinPairMatchBases(MIN_MATCH_BASES_PE).
-                setMaxSingleEndErrorRate(MAX_ERROR_RATE_SE).setMinSingleEndMatchBases(MIN_MATCH_BASES_SE).
-                setNumAdaptersToKeep(NUM_ADAPTERS_TO_KEEP).
-                setThresholdForSelectingAdaptersToKeep(PRUNE_ADAPTER_LIST_AFTER_THIS_MANY_ADAPTERS_SEEN);
-
-        while (iterator.hasNext()) {
-            final SAMRecord rec = iterator.next();
-            final SAMRecord rec2 = rec.getReadPairedFlag() && iterator.hasNext() ? iterator.next() : null;
-            rec.setAttribute(ReservedTagConstants.XT, null);
-
-            // Do the clipping one way for PE and another for SE reads
-            if (rec.getReadPairedFlag()) {
-                // Assert that the input file is in query name order only if we see some PE reads
-                if (order != SAMFileHeader.SortOrder.queryname) {
-                    throw new PicardException("Input BAM file must be sorted by queryname");
-                }
-
-                if (rec2 == null) throw new PicardException("Missing mate pair for paired read: " + rec.getReadName());
-                rec2.setAttribute(ReservedTagConstants.XT, null);
-
-                // Assert that we did in fact just get two mate pairs
-                if (!rec.getReadName().equals(rec2.getReadName())){
-                    throw new PicardException("Adjacent reads expected to be mate-pairs have different names: " +
-                            rec.getReadName() + ", " + rec2.getReadName());
-                }
-
-                // establish which of pair is first and which second
-                final SAMRecord first, second;
-
-                if (rec.getFirstOfPairFlag() && rec2.getSecondOfPairFlag()){
-                    first = rec;
-                    second = rec2;
-                }
-                else if (rec.getSecondOfPairFlag() && rec2.getFirstOfPairFlag()) {
-                    first = rec2;
-                    second = rec;
-                }
-                else {
-                    throw new PicardException("Two reads with same name but not correctly marked as 1st/2nd of pair: " + rec.getReadName());
-                }
-
-                adapterMarker.adapterTrimIlluminaPairedReads(first, second);
-            }
-            else {
-                adapterMarker.adapterTrimIlluminaSingleRead(rec);
-            }
-
-            // Then output the records, update progress and metrics
-            for (final SAMRecord r : new SAMRecord[] {rec, rec2}) {
-                if (r != null) {
-                    progress.record(r);
-                    if (out != null) out.addAlignment(r);
-
-                    final Integer clip = rec.getIntegerAttribute(ReservedTagConstants.XT);
-                    if (clip != null) histo.increment(rec.getReadLength() - clip + 1);
-                }
-            }
-        }
-
-        if (out != null) out.close();
-
-        // Lastly output the metrics to file
-        final MetricsFile<?,Integer> metricsFile = getMetricsFile();
-        metricsFile.setHistogram(histo);
-        metricsFile.write(METRICS);
-
-        return 0;
-    }
-
-    private class CustomAdapterPair implements AdapterPair {
-
-        final String fivePrime, threePrime, fivePrimeReadOrder;
-        final byte[]  fivePrimeBytes, threePrimeBytes, fivePrimeReadOrderBytes;
-
-        private CustomAdapterPair(final String fivePrime, final String threePrime) {
-            this.threePrime = threePrime;
-            this.threePrimeBytes = StringUtil.stringToBytes(threePrime);
-
-            this.fivePrime = fivePrime;
-            this.fivePrimeReadOrder = SequenceUtil.reverseComplement(fivePrime);
-            this.fivePrimeBytes = StringUtil.stringToBytes(fivePrime);
-            this.fivePrimeReadOrderBytes = StringUtil.stringToBytes(fivePrimeReadOrder);
-        }
-
-        public String get3PrimeAdapter(){ return threePrime; }
-        public String get5PrimeAdapter(){ return fivePrime; }
-        public String get3PrimeAdapterInReadOrder(){ return threePrime; }
-        public String get5PrimeAdapterInReadOrder() { return fivePrimeReadOrder; }
-        public byte[] get3PrimeAdapterBytes() { return threePrimeBytes; }
-        public byte[] get5PrimeAdapterBytes() { return fivePrimeBytes; }
-        public byte[] get3PrimeAdapterBytesInReadOrder() { return threePrimeBytes; }
-        public byte[] get5PrimeAdapterBytesInReadOrder()  { return fivePrimeReadOrderBytes; }
-        public String getName() { return "Custom adapter pair"; }
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/parser/BarcodeParser.java b/src/java/net/sf/picard/illumina/parser/BarcodeParser.java
deleted file mode 100644
index 8fabb97..0000000
--- a/src/java/net/sf/picard/illumina/parser/BarcodeParser.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.illumina.parser;
-
-import net.sf.picard.illumina.parser.readers.BarcodeFileReader;
-import net.sf.samtools.util.CollectionUtil;
-import net.sf.samtools.util.CloseableIterator;
-
-import java.io.File;
-import java.util.Collections;
-import java.util.Set;
-
-/**
- * @author jburke at broadinstitute.org
- */
-class BarcodeParser extends PerTileParser<BarcodeData> {
-
-    private static final Set<IlluminaDataType> SUPPORTED_TYPES = Collections.unmodifiableSet(CollectionUtil.makeSet(IlluminaDataType.Barcodes));
-
-    public BarcodeParser(final IlluminaFileMap tilesToFiles) {
-        super(tilesToFiles);
-    }
-
-    public BarcodeParser(final IlluminaFileMap tilesToFiles, final int nextTile) {
-        super(tilesToFiles, nextTile);
-    }
-
-    @Override
-    protected CloseableIterator<BarcodeData> makeTileIterator(File nextTileFile) {
-        return new BarcodeDataIterator(nextTileFile);
-    }
-
-    public Set<IlluminaDataType> supportedTypes() {
-        return SUPPORTED_TYPES;
-    }
-
-    private static class BarcodeDataIterator implements CloseableIterator<BarcodeData>{
-        private BarcodeFileReader bfr;
-        public BarcodeDataIterator(final File file) {
-            bfr = new BarcodeFileReader(file);
-        }
-
-        public void close() {
-            bfr.close();
-        }
-
-        public boolean hasNext() {
-            return bfr.hasNext();
-        }
-
-        public BarcodeData next() {
-            return new BarcodeData() {
-                public String getBarcode() {
-                    return bfr.next();
-                }
-            };
-        }
-
-        public void remove() {
-            throw new UnsupportedOperationException();
-        }
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/parser/BclData.java b/src/java/net/sf/picard/illumina/parser/BclData.java
deleted file mode 100644
index 753dce0..0000000
--- a/src/java/net/sf/picard/illumina/parser/BclData.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package net.sf.picard.illumina.parser;
-
-/** A class that implements the IlluminaData interfaces provided by this parser
- * One BclData object is returned to IlluminaDataProvider per cluster and each
- * first level array in bases and qualities represents a single read in that
- * cluster */
-public class BclData implements BaseData, QualityData {
-    public final byte [][] bases;
-    public final byte [][] qualities;
-
-    public BclData(final int[] outputLengths) {
-        bases     = new byte[outputLengths.length][];
-        qualities = new byte[outputLengths.length][];
-
-        for(int i = 0; i < outputLengths.length; i++) {
-            bases[i]     = new byte[outputLengths[i]];
-            qualities[i] = new byte[outputLengths[i]];
-        }
-    }
-
-    @Override
-    public byte[][] getBases() {
-        return bases;
-    }
-
-    @Override
-    public byte[][] getQualities() {
-        return qualities;
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/parser/BclParser.java b/src/java/net/sf/picard/illumina/parser/BclParser.java
deleted file mode 100644
index 4c9941e..0000000
--- a/src/java/net/sf/picard/illumina/parser/BclParser.java
+++ /dev/null
@@ -1,295 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2012 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.illumina.parser;
-
-
-import net.sf.picard.illumina.parser.readers.BclQualityEvaluationStrategy;
-import net.sf.picard.illumina.parser.readers.BclReader;
-import net.sf.samtools.util.CloseableIterator;
-
-import java.io.File;
-import java.util.Collections;
-import java.util.List;
-import java.util.NoSuchElementException;
-import java.util.Set;
-
-import static net.sf.samtools.util.CollectionUtil.makeSet;
-
-/**
- * BclParser parses a number of BclFiles equal to the total of all the values in outputLengths and returns a BclData object
- * segmented based on these lengths.  The only client of this class should be IlluminaDataProvider and an test classes.  See BclReader for
- * more information on BclFiles.  BclParser provides support for reading BaseCalls and QualityScores.
- */
-class BclParser extends PerTileCycleParser<BclData> {
-    private static final int EAMSS_M2_GE_THRESHOLD = 30;
-    private static final int EAMSS_S1_LT_THRESHOLD = 15; //was 15
-    public static final byte MASKING_QUALITY = (byte) 0x02;
-
-    private static final Set<IlluminaDataType> SUPPORTED_TYPES = Collections.unmodifiableSet(makeSet(IlluminaDataType.BaseCalls, IlluminaDataType.QualityScores));
-
-    protected final BclQualityEvaluationStrategy bclQualityEvaluationStrategy;
-    private final boolean applyEamssFilter;
-
-    public BclParser(final File directory, final int lane, final CycleIlluminaFileMap tilesToCycleFiles, final OutputMapping outputMapping, final BclQualityEvaluationStrategy bclQualityEvaluationStrategy) {
-        this(directory, lane, tilesToCycleFiles, outputMapping, true, bclQualityEvaluationStrategy);
-        this.initialize();
-    }
-
-    public BclParser(final File directory, final int lane, final CycleIlluminaFileMap tilesToCycleFiles, final OutputMapping outputMapping, final boolean applyEamssFilter, final BclQualityEvaluationStrategy bclQualityEvaluationStrategy) {
-        super(directory, lane, tilesToCycleFiles, outputMapping);
-        this.bclQualityEvaluationStrategy = bclQualityEvaluationStrategy;
-        this.applyEamssFilter = applyEamssFilter;
-        this.initialize();
-    }
-
-    /**
-     * Create a Bcl parser for an individual cycle and wrap it with the CycleFilesParser interface which populates
-     * the correct cycle in BclData.
-     *
-     * @param files The files to parse.
-     * @return A CycleFilesParser that populates a BclData object with data for a single cycle
-     */
-    @Override
-    protected CycleFilesParser<BclData> makeCycleFileParser(final List<File> files) {
-        return new BclDataCycleFileParser(files);
-    }
-
-    @Override
-    public void initialize() {
-        seekToTile(currentTile);
-    }
-
-    @Override
-    public Set<IlluminaDataType> supportedTypes() {
-        return SUPPORTED_TYPES;
-    }
-
-    @Override
-    public BclData next() {
-        final BclData bclData = super.next();
-
-        final byte[][] bases = bclData.getBases();
-        final byte[][] qualities = bclData.getQualities();
-
-        //first run EAMSS
-        if (this.applyEamssFilter) {
-            for (int i = 0; i < bases.length; i++) {
-                runEamssForReadInPlace(bases[i], qualities[i]);
-            }
-        }
-
-        return bclData;
-    }
-
-    /**
-     * EAMSS is an Illumina Developed Algorithm for detecting reads whose quality has deteriorated towards
-     * their end and revising the quality to the masking quality (2) if this is the case.  This algorithm
-     * works as follows (with one exception):
-     * <p/>
-     * Start at the end (high indices, at the right below) of the read and calculate an EAMSS tally at each
-     * location as follow:
-     * if(quality[i] < 15) tally += 1
-     * if(quality[i] >= 15 and < 30) tally = tally
-     * if(quality[i] >= 30) tally -= 2
-     * <p/>
-     * <p/>
-     * For each location, keep track of this tally (e.g.)
-     * Read Starts at <- this end
-     * Cycle:       1  2  3  4  5  6  7  8  9
-     * Bases:       A  C  T  G  G  G  T  C  A
-     * Qualities:   32 32 16 15 8  10 32 2  2
-     * Cycle Score: -2 -2 0  0  1  1  -2 1  1           //The EAMSS Score determined for this cycle alone
-     * EAMSS TALLY: 0  0  2  2  2  1  0  2  1
-     * X - Earliest instance of Max-Score
-     * <p/>
-     * You must keep track of the maximum EAMSS tally (in this case 2) and the earliest(lowest) cycle at which
-     * it occurs.  If and only if, the max EAMSS tally >= 1 then from there until the end(highest cycle) of the
-     * read reassign these qualities as 2 (the masking quality).  The output qualities would therefore be
-     * transformed from:
-     * <p/>
-     * Original Qualities: 32 32 16 15 8  10 32 2  2    to
-     * Final    Qualities: 32 32 2  2  2  2  2  2  2
-     * X - Earliest instance of max-tally/end of masking
-     * <p/>
-     * IMPORTANT:
-     * The one exception is: If the max EAMSS Tally is preceded by a long string of G basecalls (10 or more, with a single basecall exception per10 bases)
-     * then the masking continues to the beginning of that string of G's. E.g.:
-     * <p/>
-     * Cycle:       1  2  3  4  5  6  7  8   9  10 11 12 13 14 15 16 17 18
-     * Bases:       C  T  A  C  A  G  A  G   G  G  G  G  G  G  G  C  A  T
-     * Qualities:   30 22 26 27 28 30 7  34  20 19 38 15 32 32 10 4  2  5
-     * Cycle Score: -2  0  0  0  0 -2 1  -2  0  0  -2 0  -2 -2  1 1  1  1
-     * EAMSS TALLY: -2 -5 -5 -5 -5 -5 -3 -4 -2 -2  -2 0   0  2  4 3  2  1
-     * X- Earliest instance of Max-Tally
-     * <p/>
-     * Resulting Transformation:
-     * Bases:                C  T  A  C  A  G  A   G   G  G  G  G  G  G  G  C  A  T
-     * Original Qualities:   30 22 26 27 28 30 7  34  20 19 38 15 32 32 10  4  2  5
-     * Final    Qualities:   30 22 26 27 28  2 2   2   2  2  2  2  2  2  2  2  2  2
-     * X- Earliest instance of Max-Tally
-     * X - Start of EAMSS masking due to G-Run
-     * <p/>
-     * To further clarify the exception rule here are a few examples:
-     * A C G A C G G G G G G G G G G G G G G G G G G G G A C T
-     * X - Earliest instance of Max-Tally
-     * X - Start of EAMSS masking (with a two base call jump because we have 20 bases in the run already)
-     * <p/>
-     * T T G G A G G G G G G G G G G G G G G G G G G A G A C T
-     * X - Earliest instance of Max-Tally
-     * X - We can skip this A as well as the earlier A because we have 20 or more bases in the run already
-     * X - Start of EAMSS masking (with a two base call jump because we have 20 bases in the run)
-     * <p/>
-     * T T G G G A A G G G G G G G G G G G G G G G G G G T T A T
-     * X - Earliest instance of Max-Tally
-     * X X - WE can skip these bases because the first A counts as the first skip and as far as the length of the string of G's is
-     * concerned, these are both counted like G's
-     * X - This A is the 20th base in the string of G's and therefore can be skipped
-     * X - Note that the A's previous to the G's are only included because there are G's further on that are within the number
-     * of allowable exceptions away (i.e. 2 in this instance), if there were NO G's after the A's you CANNOT count the A's
-     * as part of the G strings (even if no exceptions have previously occured) In other words, the end of the string of G's
-     * MUST end in a G not an "exception"
-     * <p/>
-     * However, if the max-tally occurs to the right of the run of Gs then this is still part of the string of G's but does count towards
-     * the number of exceptions allowable
-     * (e.g.)
-     * T T G G G G G G G G G G A C G
-     * X - Earliest instance of Max-tally
-     * The first index CAN be considered as an exception, the above would be masked to
-     * the following point:
-     * T T G G G G G G G G G G A C G
-     * X - End of EAMSS masking due to G-Run
-     * <p/>
-     * To sum up the final points, a string of G's CAN START with an exception but CANNOT END in an exception.
-     *
-     * @param bases     Bases for a single read in the cluster ( not the entire cluster )
-     * @param qualities Qualities for a single read in the cluster ( not the entire cluster )
-     */
-    protected static void runEamssForReadInPlace(final byte[] bases, final byte[] qualities) {
-        int eamssTally = 0;
-        int maxTally = Integer.MIN_VALUE;
-        int indexOfMax = -1;
-
-        for (int i = bases.length - 1; i >= 0; i--) {
-            final int quality = (0xff & qualities[i]);
-
-            if (quality >= EAMSS_M2_GE_THRESHOLD) {
-                eamssTally -= 2;
-            } else if (quality < EAMSS_S1_LT_THRESHOLD) {
-                eamssTally += 1;
-            }
-
-            if (eamssTally >= maxTally) {
-                indexOfMax = i;
-                maxTally = eamssTally;
-            }
-        }
-
-        if (maxTally >= 1) {
-            int numGs = 0;
-            int exceptions = 0;
-
-            for (int i = indexOfMax; i >= 0; i--) {
-                if (bases[i] == 'G') {
-                    ++numGs;
-                } else {
-                    final Integer skip = skipBy(i, numGs, exceptions, bases);
-                    if (skip != null) {
-                        exceptions += skip;
-                        numGs += skip;
-                        i -= (skip - 1);
-                    } else {
-                        break;
-                    }
-                }
-            }
-
-            if (numGs >= 10) {
-                indexOfMax = (indexOfMax + 1) - numGs;
-            }
-
-            for (int i = indexOfMax; i < qualities.length; i++) {
-                qualities[i] = MASKING_QUALITY;
-            }
-        }
-    }
-
-    /**
-     * Determine whether or not the base at index is part of a skippable section in a run of G's, if so
-     * return the number of bases that the section is composed of.
-     *
-     * @param index          Current index, which should be the index of a non-'G' base
-     * @param numGs          The number of bases in the current string of G's for this read
-     * @param prevExceptions The number of exceptions previously detected in this string by this method
-     * @param bases          The bases of this read
-     * @return If we have not reached our exception limit (1/every 10bases) and a G is within exceptionLimit(numGs/10)
-     * indices before the current index then return index - (index of next g), else return null  Null indicates this is
-     * NOT a skippable region, if we run into index 0 without finding a g then NULL is also returned
-     */
-    private static Integer skipBy(final int index, final int numGs, final int prevExceptions, final byte[] bases) {
-        Integer skip = null;
-        for (int backup = 1; backup <= index; backup++) {
-            final int exceptionLimit = Math.max((numGs + backup) / 10, 1);
-            if (prevExceptions + backup > exceptionLimit) {
-                break;
-            }
-            if (bases[index - backup] == 'G') {
-                skip = backup;
-                break;
-            }
-        }
-
-        return skip;
-    }
-
-    private class BclDataCycleFileParser implements CycleFilesParser<BclData> {
-        final CloseableIterator<BclData> reader;
-
-        public BclDataCycleFileParser(final List<File> files) {
-            reader = new BclReader(files, outputMapping.getOutputReadLengths(),
-                    bclQualityEvaluationStrategy, false);
-        }
-
-        @Override
-        public void close() {
-            reader.close();
-        }
-
-        @Override
-        public BclData next() {
-            if (!hasNext()) {
-                throw new NoSuchElementException();
-            }
-            return reader.next();
-        }
-
-        @Override
-        public boolean hasNext() {
-            try {
-                return reader.hasNext();
-            } catch (final NullPointerException npe) {
-                return false;
-            }
-        }
-    }
-}
\ No newline at end of file
diff --git a/src/java/net/sf/picard/illumina/parser/ClusterData.java b/src/java/net/sf/picard/illumina/parser/ClusterData.java
deleted file mode 100644
index e1865f2..0000000
--- a/src/java/net/sf/picard/illumina/parser/ClusterData.java
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.illumina.parser;
-
-import net.sf.picard.PicardException;
-
-/**
- * Store the information from Illumina files for a single cluster with one or more reads.
- * 
- * @author jburke at broadinstitute.org
- */
-public class ClusterData {
-
-    private int lane = -1;
-    private int tile = -1;
-    private int x = -1;
-    private int y = -1;
-    private final ReadData [] reads;
-    private Boolean pf;
-    private String matchedBarcode;
-
-    /** Used for testing, reads is set directly with no copying to the input array */
-    public ClusterData(final ReadData ... reads) {
-        this.reads = reads;
-    }
-
-    /** Creates a ClusterData with one read for each type provided */
-    public ClusterData(final ReadType [] readTypes) {
-        reads = new ReadData[readTypes.length];
-        for(int i = 0; i < readTypes.length; i++) {
-            reads[i] = new ReadData(readTypes[i]);
-        }
-    }
-
-    public String toString() {
-        return "ClusterData(lane: " + lane + "; tile: " + tile + "; x: " + x + "; y: " + y + "; pf: " + pf +
-                "; matchedBarcode: " + matchedBarcode + ")";
-    }
-
-    public int getTile() {
-        return tile;
-    }
-
-    public void setTile(final int tile) {
-        this.tile = tile;
-    }
-
-    public boolean tileIsSet() {
-        return tile != -1;
-    }
-
-    public ReadData getRead(final int index) {
-        return reads[index];
-    }
-
-    public int getNumReads() {
-        return reads.length;
-    }
-
-    /**
-     * Either set this value if not already set, or if already set, throw an exception if new value != current value.
-     */
-    public void setOrCheckTile(final int tile) {
-        if (tileIsSet()) {
-            if (this.tile != tile) {
-                throw new PicardException("Tile number mismatch for " + this + " : " + this.tile + " != " + tile);
-            }
-        } else {
-            this.tile = tile;
-        }
-    }
-
-    public int getLane() {
-        return lane;
-    }
-
-    public void setLane(final int lane) {
-        this.lane = lane;
-    }
-
-    public boolean laneIsSet() {
-        return lane != -1;
-    }
-
-    /**
-     * Either set this value if not already set, or if already set, throw an exception if new value != current value.
-     */
-    public void setOrCheckLane(final int lane) {
-        if (laneIsSet()) {
-            if (this.lane != lane) {
-                throw new PicardException("Lane number mismatch for " + this + " : " + this.lane + " != " + lane);
-            }
-        } else {
-            this.lane = lane;
-        }
-    }
-
-    public int getX() {
-        return x;
-    }
-
-    public void setX(final int x) {
-        this.x = x;
-    }
-
-    public boolean xIsSet() {
-        return x != -1;
-    }
-
-    /**
-     * Either set this value if not already set, or if already set, throw an exception if new value != current value.
-     */
-    public void setOrCheckX(final int x) {
-        if (xIsSet()) {
-            if (this.x != x) {
-                throw new PicardException("X value mismatch for " + this + " : " + this.x + " != " + x);
-            }
-        } else {
-            this.x = x;
-        }
-    }
-
-    public int getY() {
-        return y;
-    }
-
-    public void setY(final int y) {
-        this.y = y;
-    }
-
-    public boolean yIsSet() {
-        return y != -1;
-    }
-
-    /**
-     * Either set this value if not already set, or if already set, throw an exception if new value != current value.
-     */
-    public void setOrCheckY(final int y) {
-        if (yIsSet()) {
-            if (this.y != y) {
-                throw new PicardException("Y value mismatch for " + this + " : " + this.y + " != " + y);
-            }
-        } else {
-            this.y = y;
-        }
-    }
-
-    public Boolean isPf() {
-        return pf;
-    }
-
-    public void setPf(final boolean pf) {
-        this.pf = pf;
-    }
-
-    /**
-     * Either set this value if not already set, or if already set, throw an exception if new value != current value.
-     */
-    public void setOrCheckPf(final boolean pf) {
-        if (this.pf == null) {
-            this.pf = pf;
-        } else if (this.pf != pf) {
-            throw new PicardException("PF value mismatch for " + this + " : ");
-        }
-    }
-
-    /**
-     * @return The barcode matched (not the actual sequence from the read, which may not perfectly match
-     * the barcode).
-     */
-    public String getMatchedBarcode() {
-        return matchedBarcode;
-    }
-
-    public void setMatchedBarcode(final String matchedBarcode) {
-        this.matchedBarcode = matchedBarcode;
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/parser/ClusterIntensityFileReader.java b/src/java/net/sf/picard/illumina/parser/ClusterIntensityFileReader.java
deleted file mode 100644
index 2f31cc3..0000000
--- a/src/java/net/sf/picard/illumina/parser/ClusterIntensityFileReader.java
+++ /dev/null
@@ -1,213 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2012 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.illumina.parser;
-
-import net.sf.picard.util.UnsignedTypeUtil;
-import net.sf.samtools.util.CloserUtil;
-import net.sf.picard.PicardException;
-import net.sf.samtools.util.StringUtil;
-
-import java.io.*;
-import java.nio.ByteBuffer;
-import java.nio.MappedByteBuffer;
-import java.nio.ByteOrder;
-import java.nio.channels.FileChannel;
-import java.util.Arrays;
-
-/**
- * Read a .cnf (binary noise) or .cif (binary intensity) file.  A file in this format contains
- * 1 or more cycles of data for a set of clusters, with 4 values per cycle, one for each channel.
- * A file can store its values in either a byte or a short per value, but the API treats them all as shorts.
- * This class does not distinguish btw CIF and CNF files.
- *
- * @author jburke at broadinstitute.org
- */
-class ClusterIntensityFileReader {
-
-    private static final byte[] IDENTIFIER = StringUtil.stringToBytes("CIF");
-    private static final byte FILE_VERSION = 1;
-    private static final int HEADER_SIZE = 13;
-    private static final int NUM_CHANNELS = IntensityChannel.values().length;
-
-    // Just for error reporting
-    private final File file;
-
-    /**
-     * The entire file is mmapped
-     */
-    private final MappedByteBuffer buf;
-    private final ClusterIntensityFileHeader header;
-
-    // Precomputed for speed, I hope.
-    private final int cycleSize;
-    private final int channelSize;
-
-    public static class ClusterIntensityFileHeader {
-        public final int elementSize;
-        public final int firstCycle;
-        public final int numCycles;
-        public final int numClusters;
-
-        public ClusterIntensityFileHeader(final byte[] headerBytes, final File file) {
-            if(headerBytes.length < HEADER_SIZE) {
-                throw new PicardException("Bytes past to header constructor are too short excpected(" + HEADER_SIZE + ") received (" + headerBytes.length);
-            }
-
-            ByteBuffer buf = ByteBuffer.allocate(headerBytes.length); //for doing some byte conversions
-            buf.order(ByteOrder.LITTLE_ENDIAN);
-            buf.put(headerBytes);
-            buf.position(0);
-
-            final byte[] identifierBuf = new byte[IDENTIFIER.length];
-            buf.get(identifierBuf);
-            if (!Arrays.equals(identifierBuf, IDENTIFIER)) {
-                throw new PicardException("Cluster intensity file " + file + " contains unexpected header: " +
-                        StringUtil.bytesToString(identifierBuf));
-            }
-            final byte fileVersion = buf.get();
-            if (fileVersion != FILE_VERSION) {
-                throw new PicardException("Cluster intensity file " + file + " contains unexpected version: " + fileVersion);
-            }
-            elementSize = buf.get();
-            if (elementSize < 1 || elementSize > 2) {
-                throw new PicardException("Cluster intensity file " + file + " contains unexpected element size: " + elementSize);
-            }
-            // convert these to unsigned
-            firstCycle = UnsignedTypeUtil.uShortToInt(buf.getShort());
-            numCycles = UnsignedTypeUtil.uShortToInt(buf.getShort());
-            if (numCycles == 0) {
-                throw new PicardException("Cluster intensity file " + file + " has zero cycles.");
-            }
-            numClusters = buf.getInt();
-            if (numClusters < 0) {
-                // It is possible for there to be no clusters in a tile.
-                throw new PicardException("Cluster intensity file " + file + " has negative number of clusters: " +numClusters);
-            }
-        }
-    }
-
-    /**
-     * Prepare to parse a CIF or CNF file.
-     * @param file The file to be parsed.
-     */
-    public ClusterIntensityFileReader(final File file) {
-        try {
-            this.file = file;
-            final FileInputStream is = new FileInputStream(this.file);
-            final FileChannel channel = is.getChannel();
-            final long fileSize = channel.size();
-            buf = channel.map(FileChannel.MapMode.READ_ONLY, 0, fileSize);
-            buf.order(ByteOrder.LITTLE_ENDIAN);
-            CloserUtil.close(channel);
-            CloserUtil.close(is);
-            final byte [] headerBytes = new byte[HEADER_SIZE];
-            buf.get(headerBytes);
-            this.header = new ClusterIntensityFileHeader(headerBytes, this.file);
-        } catch (IOException e) {
-            throw new PicardException("IOException opening cluster intensity file " + file, e);
-        }
-        cycleSize = NUM_CHANNELS * header.numClusters * header.elementSize;
-        channelSize = header.numClusters * header.elementSize;
-    }
-
-    /**
-     * Get the value for the given args.  Value is returned as a signed short regardless of whether storage is
-     * in bytes or shorts.
-     * @param cluster 0-based cluster number.
-     * @param channel Which channel is desired.
-     * @param cycle Absolute cycle number.  E.g. if the first cycle in the file is N, then the first value that can
-     * be fetched is cycle=N
-     * @return Intensity or noise (depending on whether this is a CIF or CNF file).
-     */
-    public short getValue(final int cluster, final IntensityChannel channel, final int cycle) {
-        if (cycle < header.firstCycle || cycle >= header.firstCycle + header.numCycles) {
-            throw new IllegalArgumentException("Requested cycle (" + cycle + ") number out of range.  First cycle=" +
-                    header.firstCycle + "; numCycles=" + header.numCycles);
-        }
-        if (cluster < 0 || cluster >= header.numClusters) {
-            throw new IllegalArgumentException("Requested cluster (" + cluster + ") number out of range. numClustersInTile=" + header.numClusters);
-        }
-        final int relativeCycle = cycle - header.firstCycle;
-        final int position = HEADER_SIZE + relativeCycle * cycleSize + channel.ordinal() * channelSize + cluster * header.elementSize;
-        buf.position(position);
-        if (header.elementSize == 1) {
-            return buf.get();
-        } else {
-            return buf.getShort();
-        }
-    }
-
-    public File getFile() {
-        return file;
-    }
-
-    /**
-     * @return The first (one-based) cycle stored in this file.
-     */
-    public int getFirstCycle() {
-        return header.firstCycle;
-    }
-
-    /**
-     * @return Number of clusters stored in this file.
-     */
-    public int getNumClusters() {
-        return header.numClusters;
-    }
-
-    /**
-     * @return Number of cycles stored in this file.
-     */
-    public int getNumCycles() {
-        return header.numCycles;
-    }
-
-    /**
-     * @return the size of one intensity value for one channel in this file.
-     */
-    public int getElementSize() {
-        return header.elementSize;
-    }
-
-    public static ClusterIntensityFileHeader readHeaders(final File intensityFile) {
-        FileInputStream reader = null;
-        byte [] headerBytes = new byte[HEADER_SIZE];
-        int bytesRead = 0;
-        try {
-            reader = new FileInputStream(intensityFile);
-            bytesRead = reader.read(headerBytes);
-        } catch(FileNotFoundException fnfExc) {
-            throw new PicardException("Error opening intensity file (" + intensityFile.getAbsolutePath() +")", fnfExc);
-        } catch(IOException ioExc) {
-            throw new PicardException("Error reading values from header for intensity file (" + intensityFile.getAbsolutePath() + ")", ioExc);
-        } finally {
-            CloserUtil.close(reader);
-        }
-
-        if(bytesRead != HEADER_SIZE)
-            throw new PicardException("Error reading intensity file header, too few bytes read, expected( " + HEADER_SIZE + ") read(" + bytesRead + ")");
-
-        return new ClusterIntensityFileHeader(headerBytes, intensityFile);
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/parser/CycleIlluminaFileMap.java b/src/java/net/sf/picard/illumina/parser/CycleIlluminaFileMap.java
deleted file mode 100644
index 8fa4c58..0000000
--- a/src/java/net/sf/picard/illumina/parser/CycleIlluminaFileMap.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.illumina.parser;
-
-import net.sf.picard.PicardException;
-
-import java.io.File;
-import java.util.List;
-import java.util.Set;
-import java.util.TreeMap;
-
-/**
- * For per cycle files.  Maps a Cycle -> Tile -> List<File>
- *
- * @author jburke at broadinstitute.org
- */
-class CycleIlluminaFileMap extends TreeMap<Integer, IlluminaFileMap> {
-    /**
-     * Return a CycleIlluminaFileMap with only the tiles listed and all of the cycles provided.
-     * Important NOTE: this DOES NOT eliminate cycles from the cycles parameter passed in that are missing in the cyclesFileIterator of any given lane in the CycleIlluminaFileMap
-     */
-    public CycleIlluminaFileMap keep(final List<Integer> tilesToKeep, final Set<Integer> cycles) {
-        final CycleIlluminaFileMap ciMap = new CycleIlluminaFileMap();
-
-        if (cycles != null) {
-            for (final int cycle : cycles) {
-                final IlluminaFileMap template = this.get(cycle);
-                if (template != null) {
-                    ciMap.put(cycle, template.keep(tilesToKeep));
-                }
-            }
-        }
-
-        return ciMap;
-    }
-
-    /**
-     * Assert that this map has an iterator for all of the expectedTiles and each iterator has expectedCycles number
-     * of files.  Also, assert that each cycle file for a given tile is the same size
-     *
-     * @param expectedTiles  A list of tiles that should be in this map
-     * @param expectedCycles The total number of files(cycles) that should be in each CycledFilesIterator
-     */
-    public void assertValid(final List<Integer> expectedTiles, final int[] expectedCycles) {
-        if (size() != expectedCycles.length) {
-            throw new PicardException("Expected CycledIlluminaFileMap to contain " + expectedCycles.length + " cycles but only " + size() + " were found!");
-        }
-        if (this.firstEntry().getValue().size() != expectedTiles.size()) {
-            throw new PicardException("Expected CycledIlluminaFileMap to contain " + expectedTiles.size()
-                    + " tiles but only " + this.firstEntry().getValue().size() + " were found!");
-        }
-    }
-
-}
diff --git a/src/java/net/sf/picard/illumina/parser/FilterParser.java b/src/java/net/sf/picard/illumina/parser/FilterParser.java
deleted file mode 100644
index a49816f..0000000
--- a/src/java/net/sf/picard/illumina/parser/FilterParser.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2012 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.illumina.parser;
-
-import net.sf.picard.illumina.parser.readers.FilterFileReader;
-import net.sf.samtools.util.CloseableIterator;
-
-import static net.sf.samtools.util.CollectionUtil.*;
-
-import java.io.File;
-import java.util.*;
-
-/**
- * Sequentially parses filter files for the given tiles.  One tile is processed at a time.  IlluminaDataProvider should
- * be the ONLY client class for this class except for test classes.  For more information on the filterFile format
- * and reading it, see FilterFileReader.
- */
-class FilterParser extends PerTileParser<PfData> {
-    private static Set<IlluminaDataType> supportedTypes = Collections.unmodifiableSet(makeSet(IlluminaDataType.PF));
-
-    public FilterParser(final IlluminaFileMap tilesToFiles){
-        super(tilesToFiles);
-    }
-
-    public FilterParser(final IlluminaFileMap tilesToFiles, final int startingTile){
-        super(tilesToFiles, startingTile);
-    }
-
-    /** Wrap a filterFile reader in a closeable iterator and return it*/
-    @Override
-    protected CloseableIterator<PfData> makeTileIterator(final File iterator) {
-        return new CloseableIterator<PfData>() {
-            private FilterFileReader reader = new FilterFileReader(iterator);
-
-            public void close() {
-                reader = null;
-            }
-
-            public boolean hasNext() {
-                return reader.hasNext();
-            }
-
-            public PfData next() {
-                final boolean nextValue = reader.next();
-                return new PfData() {
-                    public boolean isPf() {
-                        return nextValue;
-                    }
-                };
-            }
-
-            public void remove() {
-                throw new UnsupportedOperationException();
-            }
-        };
-    }
-
-    public Set<IlluminaDataType> supportedTypes() {
-        return supportedTypes;
-    }
-}
\ No newline at end of file
diff --git a/src/java/net/sf/picard/illumina/parser/FourChannelIntensityData.java b/src/java/net/sf/picard/illumina/parser/FourChannelIntensityData.java
deleted file mode 100644
index b89d80e..0000000
--- a/src/java/net/sf/picard/illumina/parser/FourChannelIntensityData.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.illumina.parser;
-
-import net.sf.picard.PicardException;
-
-import java.util.Arrays;
-
-/**
- * Holds a 4 short values for each cycle of a read.  This is used, to store raw intensities,
- * processed intensities, or noise.  Note that for Illumina 1.1 and 1.3, these are floating point values,
- * but are truncated to shorts to store here.
- *
- * Indices into the channel arrays are zero-based, i.e. the first cycle is 0.
- *
- * @author jburke at broadinstitute.org
- */
-public class FourChannelIntensityData {
-    /**
-     * Major index: channel number; minor index: cycle number (zero based)
-     */
-    private short [] a;
-    private short [] c;
-    private short [] g;
-    private short [] t;
-
-    public FourChannelIntensityData(final int numberOfCycles) {
-        a = new short[numberOfCycles];
-        c = new short[numberOfCycles];
-        g = new short[numberOfCycles];
-        t = new short[numberOfCycles];
-    }
-
-    public short[] getChannel(final IntensityChannel channel) {
-        switch(channel) {
-            case A: return a;
-            case C: return c;
-            case G: return g;
-            case T: return t;
-        }
-
-        throw new PicardException("Unexpected intensity channel " + channel);
-    }
-
-    public short[] getA() {
-        return a;
-    }
-
-    public short[] getC() {
-        return c;
-    }
-
-    public short[] getG() {
-        return g;
-    }
-
-    public short[] getT() {
-        return t;
-    }
-
-    @Override
-    public boolean equals(final Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-
-        final FourChannelIntensityData that = (FourChannelIntensityData)o;
-        return Arrays.equals(this.a, that.a) &&
-               Arrays.equals(this.c, that.c) &&
-               Arrays.equals(this.g, that.g) &&
-               Arrays.equals(this.t, that.t);
-    }
-
-    @Override
-    public int hashCode() {
-        int ret = 0;
-        ret = ret * 31 + Arrays.hashCode(a);
-        ret += ret * 31 + Arrays.hashCode(c);
-        ret += ret * 31 + Arrays.hashCode(g);
-        ret += ret * 31 + Arrays.hashCode(t);
-        return ret;
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/parser/IlluminaData.java b/src/java/net/sf/picard/illumina/parser/IlluminaData.java
deleted file mode 100644
index f3be07c..0000000
--- a/src/java/net/sf/picard/illumina/parser/IlluminaData.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.illumina.parser;
-
-/**
- * There is one IlluminaData sub-interface for each IlluminaDataType enum value.
- * IlluminaParsers must return objects implementing at least one of the interfaces below.
- * IlluminaDataProvider will take IlluminaData objects created by IlluminaParsers and cast them to the types they
- * implement and these objects will then be used to populate the ClusterData object.
- *
- * @author jburke at broadinstitute.org
- */
-interface IlluminaData {
-}
-
-// Note: PositionalData was spun out this round but since every parser has means of retrieving lane/tile from the
-// file name, we are going to move lane/tile to be queryable from parsers in future revisions and therefore if you
-// want lane/tile info you will NOT have to parse one of the Positional Data formats (pos, locs, clocs, qseqs)
-interface PositionalData extends IlluminaData {
-    public int getXCoordinate();
-    public int getYCoordinate();
-}
-
-interface BaseData extends IlluminaData {
-    public byte [][] getBases();
-}
-
-interface QualityData extends IlluminaData {
-    public byte [][] getQualities();
-}
-
-interface NoiseData extends IlluminaData {
-    public FourChannelIntensityData [] getNoise();
-}
-
-interface RawIntensityData extends IlluminaData{
-    public FourChannelIntensityData [] getRawIntensities();
-}
-
-interface PfData extends IlluminaData {
-    public boolean isPf();
-}
-
-interface BarcodeData extends IlluminaData {
-    public String getBarcode();
-}
-
-
diff --git a/src/java/net/sf/picard/illumina/parser/IlluminaDataProvider.java b/src/java/net/sf/picard/illumina/parser/IlluminaDataProvider.java
deleted file mode 100644
index 837cfcc..0000000
--- a/src/java/net/sf/picard/illumina/parser/IlluminaDataProvider.java
+++ /dev/null
@@ -1,230 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.illumina.parser;
-
-import net.sf.picard.PicardException;
-
-import java.io.File;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.NoSuchElementException;
-import java.util.Set;
-
-/**
- * Parse various formats and versions of Illumina Basecall files, and use them the to populate
- * ClusterData objects.  Clients of this code should use IlluminaDataProviderFactory to create an IlluminaDataProvider.
- * IlluminaDataProvider is immutable after construction.
- *
- * @author jburke at broadinstitute.org
- */
-public class IlluminaDataProvider implements Iterator<ClusterData>, Iterable<ClusterData> {
-
-    /** 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 */
-    private final IlluminaParser[] parsers;
-
-    /**
-     * for each parser in this.parsers there is an array of IlluminaDataTypes that specifies what datatypes that parser is providing in
-     * this particular run.  A parser may be able to provide data types which may not be listed here because client code may not
-     * have specified these data types
-     */
-    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.
-     *
-     * @param basecallDirectory For error reporting only.
-     * @param lane              For error reporting only.
-     */
-    IlluminaDataProvider(final OutputMapping outputMapping,
-                         final Map<IlluminaParser, Set<IlluminaDataType>> parsersToDataTypes,
-                         final File basecallDirectory, final int lane) {
-        this.basecallDirectory = basecallDirectory;
-        this.lane = lane;
-        numReads = outputMapping.numOutputReads();
-
-        final int numParsers = parsersToDataTypes.size();
-        if (numParsers == 0) {
-            throw new PicardException("There were 0 parsers passed to IlluminaDataProvider!");
-        }
-
-        int i = 0;
-        parsers = new IlluminaParser[numParsers];
-        dataTypes = new IlluminaDataType[numParsers][];
-        for (final Map.Entry<IlluminaParser, Set<IlluminaDataType>> pToD : parsersToDataTypes.entrySet()) {
-            parsers[i] = pToD.getKey();
-            final Set<IlluminaDataType> dts = pToD.getValue();
-            dataTypes[i] = new IlluminaDataType[dts.size()];
-            dts.toArray(dataTypes[i++]);
-        }
-
-        this.outputReadTypes = new ReadType[numReads];
-        i = 0;
-        for (final ReadDescriptor rd : outputMapping.getOutputDescriptors()) {
-            outputReadTypes[i++] = rd.type;
-        }
-    }
-
-    /**
-     * @return True if we have more clusters to read
-     */
-    public boolean hasNext() {
-        final boolean more = parsers[0].hasNext();
-        if (!more) {
-            for (int i = 1; i < parsers.length; i++) {
-                if (parsers[i].hasNext()) {
-                    throw new PicardException("Unequal length Illumina files in " + basecallDirectory + ", lane " + lane + ". Failing parser: " + parsers[i].getClass().getName());
-                }
-            }
-        }
-
-        return more;
-    }
-
-    /**
-     * @return Current cluster data populated with only the data that matches one of the data types in dataTypes.
-     */
-    public ClusterData next() {
-        if (!hasNext()) {
-            throw new NoSuchElementException();
-        }
-
-        final ClusterData cluster = new ClusterData(outputReadTypes);
-        cluster.setLane(lane);
-
-        //IMPORTANT NOTE: This assignment to tile MUST happen BEFORE the loop below because getTileOfNextCluster
-        //returns the tile for the next cluster and if we call this after the loop then whenever we pass a tile
-        //boundary the last cluster in the previous tile will have the wrong tile number
-        cluster.setTile(parsers[0].getTileOfNextCluster());
-
-        for (int i = 0; i < parsers.length; i++) {
-            final IlluminaData ilData = parsers[i].next();
-            for (final IlluminaDataType ilDataType : dataTypes[i]) {
-                switch (ilDataType) {
-                    case Position:
-                        addData(cluster, (PositionalData) ilData);
-                        break;
-
-                    case PF:
-                        addData(cluster, (PfData) ilData);
-                        break;
-
-                    case Barcodes:
-                        addData(cluster, (BarcodeData) ilData);
-                        break;
-
-                    case BaseCalls:
-                        addReadData(cluster, numReads, (BaseData) ilData);
-                        break;
-
-                    case QualityScores:
-                        addReadData(cluster, numReads, (QualityData) ilData);
-                        break;
-
-                    default:
-                        throw new PicardException("Unknown data type " + ilDataType + " requested by IlluminaDataProviderFactory");
-                }
-            }
-        }
-
-        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. */
-    public void seekToTile(final int oneBasedTileNumber) {
-        for (final IlluminaParser parser : parsers) {
-            parser.seekToTile(oneBasedTileNumber);
-        }
-    }
-
-    @Override
-    public Iterator<ClusterData> iterator() {
-        return this;
-    }
-
-    public void close() {
-        for (final IlluminaParser parser : parsers) {
-            parser.close();
-        }
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/parser/IlluminaDataProviderFactory.java b/src/java/net/sf/picard/illumina/parser/IlluminaDataProviderFactory.java
deleted file mode 100644
index 10c2b22..0000000
--- a/src/java/net/sf/picard/illumina/parser/IlluminaDataProviderFactory.java
+++ /dev/null
@@ -1,367 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2012 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.illumina.parser;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.illumina.parser.IlluminaFileUtil.SupportedIlluminaFormat;
-import net.sf.picard.illumina.parser.readers.BclQualityEvaluationStrategy;
-import net.sf.picard.util.Log;
-import net.sf.samtools.util.StringUtil;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.SortedSet;
-import java.util.TreeSet;
-
-import static net.sf.samtools.util.CollectionUtil.makeList;
-import static net.sf.samtools.util.CollectionUtil.makeSet;
-
-/**
- * IlluminaDataProviderFactory accepts options for parsing Illumina data files for a lane and creates an
- * IlluminaDataProvider, an iterator over the ClusterData for that lane, which utilizes these options.
- * <p/>
- * <p/>
- * Note: Since we tend to use IlluminaDataProviderFactory in multithreaded environments (e.g. we call makeDataProvider
- * in a different thread per tile in IlluminaBasecallsToSam).  I've made it essentially immutable.  makeDataProvider/getTiles
- * are now idempotent (well as far as IlluminaDataProviderFactory is concerned, many file handles and other things are
- * opened when makeDataProvider is called).  We may in the future want dataTypes to be provided to the
- * makeDataProvider factory methods so configuration is not done multiple times for the same basecallDirectory in
- * client code.
- *
- * @author jburke at broadinstitute.org
- */
-public class IlluminaDataProviderFactory {
-    private static final Log log = Log.getInstance(IlluminaDataProviderFactory.class);
-
-    /**
-     * A map of data types to a list of file formats in the order in which we prefer those file types (E.g. we would rather parse Bcls before QSeqs, Locs files before Clocs files ...)
-     * 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<IlluminaDataType, List<SupportedIlluminaFormat>> DATA_TYPE_TO_PREFERRED_FORMATS = new HashMap<IlluminaDataType, List<SupportedIlluminaFormat>>();
-
-    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,
-         * see determineFormats
-         */
-        DATA_TYPE_TO_PREFERRED_FORMATS.put(IlluminaDataType.BaseCalls, makeList(
-                SupportedIlluminaFormat.MultiTileBcl, SupportedIlluminaFormat.Bcl));
-        DATA_TYPE_TO_PREFERRED_FORMATS.put(IlluminaDataType.QualityScores, makeList(
-                SupportedIlluminaFormat.MultiTileBcl, SupportedIlluminaFormat.Bcl));
-        DATA_TYPE_TO_PREFERRED_FORMATS.put(IlluminaDataType.PF, makeList(
-                SupportedIlluminaFormat.MultiTileFilter, SupportedIlluminaFormat.Filter));
-        DATA_TYPE_TO_PREFERRED_FORMATS.put(IlluminaDataType.Position, makeList(
-                SupportedIlluminaFormat.MultiTileLocs, SupportedIlluminaFormat.Locs, SupportedIlluminaFormat.Clocs,
-                SupportedIlluminaFormat.Pos));
-
-        DATA_TYPE_TO_PREFERRED_FORMATS.put(IlluminaDataType.Barcodes, makeList(SupportedIlluminaFormat.Barcode));
-    }
-
-    // The following properties must be specified by caller.
-    /** basecallDirectory holds QSeqs or bcls * */
-    private final File basecallDirectory;
-    private final int lane;
-
-    /**
-     * Whether or not to apply EAMSS filtering if parsing BCLs for the bases and quality scores.
-     */
-    private boolean applyEamssFiltering = true;
-
-    /**
-     * A Map of file formats to the dataTypes they will provide for this run.
-     */
-    protected final Map<SupportedIlluminaFormat, Set<IlluminaDataType>> formatToDataTypes;
-
-    /** Basecall Directory/lane parameterized util for finding IlluminaFiles */
-    private final IlluminaFileUtil fileUtil;
-
-
-    private final List<Integer> availableTiles;
-
-    private final OutputMapping outputMapping;
-    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 = basecallDirectory;
-        this.bclQualityEvaluationStrategy = bclQualityEvaluationStrategy;
-
-        this.lane = lane;
-        /* The types of data that will be returned by any IlluminaDataProviders created by this factory.
-
-      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<IlluminaDataType> dataTypes = Collections.unmodifiableSet(new HashSet<IlluminaDataType>(Arrays.asList(dataTypesArg)));
-
-        if (dataTypes.isEmpty()) {
-            throw new PicardException("No data types have been specified for basecall output " + basecallDirectory +
-                    ", lane " + lane);
-        }
-
-        this.fileUtil = new IlluminaFileUtil(basecallDirectory, lane);
-
-        //find what request IlluminaDataTypes we have files for and select the most preferred file format available for that type
-        formatToDataTypes = determineFormats(dataTypes, fileUtil);
-
-        //find if we have any IlluminaDataType with NO available file formats and, if any exist, throw an exception
-        final Set<IlluminaDataType> unmatchedDataTypes = findUnmatchedTypes(dataTypes, formatToDataTypes);
-        if (unmatchedDataTypes.size() > 0) {
-            throw new PicardException("Could not find a format with available files for the following data types: " + StringUtil.join(", ", new ArrayList<IlluminaDataType>(unmatchedDataTypes)));
-        }
-
-        log.debug("The following file formats will be used by IlluminaDataProvider: " + StringUtil.join("," + formatToDataTypes.keySet()));
-
-        availableTiles = fileUtil.getActualTiles(new ArrayList<SupportedIlluminaFormat>(formatToDataTypes.keySet()));
-        if (availableTiles.isEmpty()) {
-            throw new PicardException("No available tiles were found, make sure that " + basecallDirectory.getAbsolutePath() + " has a lane " + lane);
-        }
-
-        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
-     *
-     * @return The ReadStructure describing the output cluster data
-     */
-    public ReadStructure getOutputReadStructure() {
-        return outputMapping.getOutputReadStructure();
-    }
-
-    /**
-     * Return the list of tiles available for this flowcell and lane.  These are in ascending numerical order.
-     *
-     * @return List of all tiles available for this flowcell and lane.
-     */
-    public List<Integer> getAvailableTiles() {
-        return availableTiles;
-    }
-
-    /** 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.
-     *
-     * @return An iterator for reading the Illumina basecall output for the lane specified in the ctor.
-     */
-    public IlluminaDataProvider makeDataProvider() {
-        return makeDataProvider(null);
-    }
-
-    /**
-     * Call this method to create a ClusterData iterator over the specified tiles.
-     *
-     * @return An iterator for reading the Illumina basecall output for the lane specified in the constructor.
-     */
-    public IlluminaDataProvider makeDataProvider(List<Integer> requestedTiles) {
-        if (requestedTiles == null) {
-            requestedTiles = availableTiles;
-        } else {
-            if (requestedTiles.size() == 0) {
-                throw new PicardException("Zero length tile list supplied to makeDataProvider, you must specify at least 1 tile OR pass NULL to use all available tiles");
-            }
-        }
-
-        final Map<IlluminaParser, Set<IlluminaDataType>> parsersToDataType = new HashMap<IlluminaParser, Set<IlluminaDataType>>();
-        for (final Map.Entry<SupportedIlluminaFormat, Set<IlluminaDataType>> fmToDt : formatToDataTypes.entrySet()) {
-            parsersToDataType.put(makeParser(fmToDt.getKey(), requestedTiles), fmToDt.getValue());
-        }
-
-        log.debug("The following parsers will be used by IlluminaDataProvider: " + StringUtil.join("," + parsersToDataType.keySet()));
-
-        return new IlluminaDataProvider(outputMapping, parsersToDataType, basecallDirectory, lane);
-    }
-
-    /**
-     * Given a set of formats to data types they provide, find any requested data types that do not have a format associated with them and return them
-     *
-     * @param requestedDataTypes   Data types that need to be provided
-     * @param formatToMatchedTypes A map of file formats to data types that will support them
-     * @return The data types that go unsupported by the formats found in formatToMatchedTypes
-     */
-    public static Set<IlluminaDataType> findUnmatchedTypes(final Set<IlluminaDataType> requestedDataTypes, final Map<SupportedIlluminaFormat, Set<IlluminaDataType>> formatToMatchedTypes) {
-        final Set<IlluminaDataType> copiedTypes = new HashSet<IlluminaDataType>(requestedDataTypes);
-        for (final Set<IlluminaDataType> matchedTypes : formatToMatchedTypes.values()) {
-            copiedTypes.removeAll(matchedTypes);
-        }
-
-        return copiedTypes;
-    }
-
-    /**
-     * For all requestedDataTypes return a map of file format to set of provided data types that covers as many requestedDataTypes as possible and
-     * chooses the most preferred available formats possible
-     *
-     * @param requestedDataTypes Data types to be provided
-     * @param fileUtil           A file util for the lane/directory we wish to provide data for
-     * @return A Map<Supported file format, Set of data types file format provides>
-     */
-    public static Map<SupportedIlluminaFormat, Set<IlluminaDataType>> determineFormats(final Set<IlluminaDataType> requestedDataTypes, final IlluminaFileUtil fileUtil) {
-        //For predictable ordering and uniqueness only, put the requestedDataTypes into a treeSet
-        final SortedSet<IlluminaDataType> toSupport = new TreeSet<IlluminaDataType>(requestedDataTypes);
-        final Map<SupportedIlluminaFormat, Set<IlluminaDataType>> fileTypeToDataTypes = new HashMap<SupportedIlluminaFormat, Set<IlluminaDataType>>();
-        final Map<IlluminaDataType, SupportedIlluminaFormat> dataTypeToFormat = new HashMap<IlluminaDataType, SupportedIlluminaFormat>();
-
-        for (final IlluminaDataType ts : toSupport) {
-            final SupportedIlluminaFormat preferredFormat = findPreferredAvailableFormat(ts, fileUtil);
-            if (preferredFormat != null) {
-                dataTypeToFormat.put(ts, preferredFormat);
-            }
-        }
-
-        for (final IlluminaDataType dt : toSupport) {
-            final SupportedIlluminaFormat format = dataTypeToFormat.get(dt);
-
-            if (format != null) {
-                if (fileTypeToDataTypes.containsKey(format)) {
-                    fileTypeToDataTypes.get(format).add(dt);
-                } else {
-                    fileTypeToDataTypes.put(dataTypeToFormat.get(dt), makeSet(dt));
-                }
-            }
-        }
-
-        return fileTypeToDataTypes;
-    }
-
-    /**
-     * Given a data type find the most preferred file format that also has files available
-     *
-     * @param dt       Type of desired data
-     * @param fileUtil Util for the lane/directory in which we will find data
-     * @return The file format that is "most preferred" (i.e. fastest to parse/smallest in memory)
-     */
-    private static SupportedIlluminaFormat findPreferredAvailableFormat(final IlluminaDataType dt, final IlluminaFileUtil fileUtil) {
-        return findPreferredFormat(dt, fileUtil, true);
-    }
-
-    /**
-     * Given a data type find the most preferred file format even if files are not available
-     *
-     * @param dt       Type of desired data
-     * @param fileUtil Util for the lane/directory in which we will find data
-     * @return The file format that is "most preferred" (i.e. fastest to parse/smallest in memory)
-     */
-    public static SupportedIlluminaFormat findPreferredFormat(final IlluminaDataType dt, final IlluminaFileUtil fileUtil) {
-        return findPreferredFormat(dt, fileUtil, false);
-    }
-
-    private static SupportedIlluminaFormat findPreferredFormat(final IlluminaDataType dt, final IlluminaFileUtil fileUtil,
-                                                               final boolean checkAvailable) {
-        final List<SupportedIlluminaFormat> preferredFormats = DATA_TYPE_TO_PREFERRED_FORMATS.get(dt);
-        SupportedIlluminaFormat format = null;
-        for (int i = 0; i < preferredFormats.size() && format == null; i++) {
-            if (checkAvailable && fileUtil.getUtil(preferredFormats.get(i)).filesAvailable()) {
-                format = preferredFormats.get(i);
-            } else if (!checkAvailable) {
-                format = preferredFormats.get(i);
-            }
-        }
-
-        return format;
-    }
-
-    /**
-     * There are multiple parsers for the same IlluminaDataType (e.g. BCLParser and QSeqParser).  Instantiate an instance of the preferred parser for
-     * the given data type with the information available and return it.
-     *
-     * @param format         The type of data we want to parse
-     * @param requestedTiles The requestedTiles over which we will be parsing data
-     * @return A parser that will parse dataType data over the given requestedTiles and cycles and output it in groupings of the sizes specified in outputLengths
-     */
-    private IlluminaParser makeParser(final SupportedIlluminaFormat format, final List<Integer> requestedTiles) {
-        final IlluminaParser parser;
-        switch (format) {
-            case Barcode:
-                parser = new BarcodeParser(((PerTileFileUtil)fileUtil.getUtil(SupportedIlluminaFormat.Barcode)).getFiles(requestedTiles));
-                break;
-
-            case 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);
-                break;
-            }
-
-            case Filter:
-                final IlluminaFileMap filterFileMap = ((PerTileFileUtil)fileUtil.getUtil(SupportedIlluminaFormat.Filter)).getFiles(requestedTiles);
-                parser = new FilterParser(filterFileMap);
-                break;
-
-            case Locs:
-            case Clocs:
-            case Pos:
-                final PerTileFileUtil fu = (PerTileFileUtil) fileUtil.getUtil(format);
-                parser = new PosParser(fu.getFiles(requestedTiles), format);
-                break;
-
-            case MultiTileFilter:
-                parser = ((MultiTileFilterFileUtil)fileUtil.getUtil(SupportedIlluminaFormat.MultiTileFilter)).makeParser(requestedTiles);
-                break;
-
-            case MultiTileLocs:
-                parser = ((MultiTileLocsFileUtil)fileUtil.getUtil(SupportedIlluminaFormat.MultiTileLocs)).makeParser(requestedTiles);
-                break;
-
-            case MultiTileBcl: {
-                final MultiTileBclFileUtil util = (MultiTileBclFileUtil) fileUtil.getUtil(SupportedIlluminaFormat.MultiTileBcl);
-                final CycleIlluminaFileMap bclFileMap = util.getFiles(requestedTiles, outputMapping.getOutputCycles());
-                bclFileMap.assertValid(requestedTiles, outputMapping.getOutputCycles());
-                parser = new MultiTileBclParser(basecallDirectory, lane, bclFileMap, outputMapping,
-                        this.applyEamssFiltering, bclQualityEvaluationStrategy, util.tileIndex);
-                break;
-            }
-
-            default:
-                throw new PicardException("Unrecognized data type(" + format + ") found by IlluminaDataProviderFactory!");
-        }
-
-        return parser;
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/parser/IlluminaDataType.java b/src/java/net/sf/picard/illumina/parser/IlluminaDataType.java
deleted file mode 100644
index 558971b..0000000
--- a/src/java/net/sf/picard/illumina/parser/IlluminaDataType.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.illumina.parser;
-
-/**
- * List of data types of interest when parsing Illumina data.  Because different Illumina versions
- * splatter data of these types across different files, by specifying only the data types of interest,
- * the number of files read can be reduced.
- * @author jburke at broadinstitute.org
- */
-public enum IlluminaDataType {
-    Position, BaseCalls, QualityScores, PF, Barcodes
-}
diff --git a/src/java/net/sf/picard/illumina/parser/IlluminaFileMap.java b/src/java/net/sf/picard/illumina/parser/IlluminaFileMap.java
deleted file mode 100644
index c6550a6..0000000
--- a/src/java/net/sf/picard/illumina/parser/IlluminaFileMap.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2012 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.illumina.parser;
-
-import net.sf.picard.PicardException;
-
-import java.io.File;
-import java.util.*;
-
-/**
- * For "non-cycle" files (files that have multiple cycles per file).  Maps a Tile -> File
- * @author jburke at broadinstitute.org
- */
-class IlluminaFileMap extends TreeMap<Integer, File> {
-
-    /** Return a file map that includes only the tiles listed */
-    public IlluminaFileMap keep(final List<Integer> tilesToKeep) {
-        final IlluminaFileMap fileMap = new IlluminaFileMap();
-        for(final Integer tile : tilesToKeep) {
-            final File file = this.get(tile);
-            if(file != null) {
-                fileMap.put(tile, file);
-            }
-        }
-        return fileMap;
-    }
-
-    /**
-     * Return the List of Files in order starting at the given tile and containing all files with tile numbers greater than startingTile that
-     * are within this map
-     * @param startingTile The first File in the returned list will correspond to this tile
-     * @return A List of files for all tiles >= startingTile that are contained in this FileMap
-     */
-    public List<File> getFilesStartingAt(final int startingTile) {
-        return new ArrayList<File>(this.tailMap(startingTile).values());
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/parser/IlluminaFileNotFoundException.java b/src/java/net/sf/picard/illumina/parser/IlluminaFileNotFoundException.java
deleted file mode 100644
index 94bc75c..0000000
--- a/src/java/net/sf/picard/illumina/parser/IlluminaFileNotFoundException.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.illumina.parser;
-
-import net.sf.picard.PicardException;
-
-import java.io.File;
-
-/**
- * @author jburke at broadinstitute.org
- */
-class IlluminaFileNotFoundException extends PicardException {
-    public final File file;
-    public IlluminaFileNotFoundException(final File file, final String message) {
-        super(message);
-        this.file = file;
-    }
-
-    public IlluminaFileNotFoundException(final File file, final String message, final Throwable throwable) {
-        super(message, throwable);
-        this.file = file;
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/parser/IlluminaFileUtil.java b/src/java/net/sf/picard/illumina/parser/IlluminaFileUtil.java
deleted file mode 100644
index e1ff17f..0000000
--- a/src/java/net/sf/picard/illumina/parser/IlluminaFileUtil.java
+++ /dev/null
@@ -1,256 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.illumina.parser;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.illumina.parser.fakers.BarcodeFileFaker;
-import net.sf.picard.illumina.parser.fakers.BclFileFaker;
-import net.sf.picard.illumina.parser.fakers.ClocsFileFaker;
-import net.sf.picard.illumina.parser.fakers.FilterFileFaker;
-import net.sf.picard.illumina.parser.fakers.LocsFileFaker;
-import net.sf.picard.illumina.parser.fakers.PosFileFaker;
-import net.sf.picard.illumina.parser.readers.TileMetricsOutReader;
-import net.sf.picard.io.IoUtil;
-import net.sf.samtools.util.CloserUtil;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.TreeSet;
-import java.util.regex.Pattern;
-
-/**
- * General utils for dealing with IlluminaFiles as well as utils for specific, support formats.
- * This class contains utils that span across multiple Illumina files but it's primary intent
- * was to provide support for basic file types.  Each supported file type can be accessed
- * via a factory method (make<filetype>Ft).  When IlluminaFileUtil is created it is parameterized
- * by basecallDir and lane and all IlluminaFileTypes created by IlluminaFileUtil will also be
- * parameterized in this fashion.
- *
- * @author jburke at broadinstitute.org
- */
-public class IlluminaFileUtil {
-    public static final Pattern CYCLE_SUBDIRECTORY_PATTERN = Pattern.compile("^C(\\d+)\\.1$");
-
-    public enum SupportedIlluminaFormat {
-        Bcl,
-        Locs,
-        Clocs,
-        Pos,
-        Filter,
-        Barcode,
-        MultiTileFilter,
-        MultiTileLocs,
-        MultiTileBcl
-    }
-
-    private final File basecallLaneDir;
-    private final File intensityLaneDir;
-    private final File basecallDir;
-    private final File intensityDir;
-    private final int lane;
-
-    private final File tileMetricsOut;
-    private final Map<SupportedIlluminaFormat, ParameterizedFileUtil> utils = new HashMap<SupportedIlluminaFormat, ParameterizedFileUtil>();
-
-    public IlluminaFileUtil(final File basecallDir, final int lane) {
-        this.lane = lane;
-        this.basecallDir = basecallDir;
-        this.intensityDir = basecallDir.getParentFile();
-        final File dataDir = intensityDir.getParentFile();
-        this.basecallLaneDir = new File(basecallDir, longLaneStr(lane));
-        this.intensityLaneDir = new File(intensityDir, longLaneStr(lane));
-        final File interopDir = new File(dataDir.getParentFile(), "InterOp");
-        tileMetricsOut = new File(interopDir, "TileMetricsOut.bin");
-    }
-
-
-    /**
-     * Return the lane we're inspecting
-     */
-    public int getLane() {
-        return lane;
-    }
-
-    /**
-     * Given a file type, get the Parameterized File Util object associated with it
-     */
-    public ParameterizedFileUtil getUtil(final SupportedIlluminaFormat format) {
-        ParameterizedFileUtil parameterizedFileUtil = utils.get(format);
-        if (parameterizedFileUtil == null) {
-            switch (format) {
-                case Bcl:
-                    final ParameterizedFileUtil bclFileUtil = new PerTilePerCycleFileUtil(".bcl", basecallLaneDir, new BclFileFaker(), lane);
-                    final ParameterizedFileUtil gzBclFileUtil = new PerTilePerCycleFileUtil(".bcl.gz", basecallLaneDir, new BclFileFaker(), lane);
-                    if (bclFileUtil.filesAvailable() && !gzBclFileUtil.filesAvailable()) {
-                        parameterizedFileUtil = bclFileUtil;
-                    } else if (!bclFileUtil.filesAvailable() && gzBclFileUtil.filesAvailable()) {
-                        parameterizedFileUtil = gzBclFileUtil;
-                    } else if (!bclFileUtil.filesAvailable() && !gzBclFileUtil.filesAvailable()) {
-                        parameterizedFileUtil = bclFileUtil;
-                    } else {
-                        throw new PicardException(
-                                "Not all BCL files in " + basecallLaneDir.getAbsolutePath() + " have the same extension!");
-                    }
-                    utils.put(SupportedIlluminaFormat.Bcl, parameterizedFileUtil);
-                    break;
-                case Locs:
-                    parameterizedFileUtil = new PerTileFileUtil(".locs", intensityLaneDir, new LocsFileFaker(), lane);
-                    utils.put(SupportedIlluminaFormat.Locs, parameterizedFileUtil);
-                    break;
-                case Clocs:
-                    parameterizedFileUtil = new PerTileFileUtil(".clocs", intensityLaneDir, new ClocsFileFaker(), lane);
-                    utils.put(SupportedIlluminaFormat.Clocs, parameterizedFileUtil);
-                    break;
-                case Pos:
-                    parameterizedFileUtil = new PerTileFileUtil("_pos.txt", intensityDir, new PosFileFaker(), lane);
-                    utils.put(SupportedIlluminaFormat.Pos, parameterizedFileUtil);
-                    break;
-                case Filter:
-                    parameterizedFileUtil = new PerTileFileUtil(".filter", basecallLaneDir, new FilterFileFaker(), lane);
-                    utils.put(SupportedIlluminaFormat.Filter, parameterizedFileUtil);
-                    break;
-                case Barcode:
-                    parameterizedFileUtil = new PerTileFileUtil("_barcode.txt", basecallDir, new BarcodeFileFaker(), lane);
-                    utils.put(SupportedIlluminaFormat.Barcode, parameterizedFileUtil);
-                    break;
-                case MultiTileFilter:
-                    parameterizedFileUtil = new MultiTileFilterFileUtil(basecallLaneDir, lane);
-                    utils.put(SupportedIlluminaFormat.MultiTileFilter, parameterizedFileUtil);
-                    break;
-                case MultiTileLocs:
-                    parameterizedFileUtil = new MultiTileLocsFileUtil(new File(intensityDir, basecallLaneDir.getName()), basecallLaneDir, lane);
-                    utils.put(SupportedIlluminaFormat.MultiTileLocs, parameterizedFileUtil);
-                    break;
-                case MultiTileBcl:
-                    parameterizedFileUtil = new MultiTileBclFileUtil(basecallLaneDir, lane);
-                    utils.put(SupportedIlluminaFormat.MultiTileBcl, parameterizedFileUtil);
-                    break;
-            }
-        }
-        return parameterizedFileUtil;
-    }
-
-    /**
-     * Return the list of tiles we would expect for this lane based on the metrics found in InterOp/TileMetricsOut.bin
-     */
-    public List<Integer> getExpectedTiles() {
-        IoUtil.assertFileIsReadable(tileMetricsOut);
-        //Used just to ensure predictable ordering
-        final TreeSet<Integer> expectedTiles = new TreeSet<Integer>();
-
-        final Iterator<TileMetricsOutReader.IlluminaTileMetrics> tileMetrics = new TileMetricsOutReader(tileMetricsOut);
-        while (tileMetrics.hasNext()) {
-            final TileMetricsOutReader.IlluminaTileMetrics tileMetric = tileMetrics.next();
-
-            if (tileMetric.getLaneNumber() == lane) {
-                if (!expectedTiles.contains(tileMetric.getTileNumber())) {
-                    expectedTiles.add(tileMetric.getTileNumber());
-                }
-            }
-        }
-
-        CloserUtil.close(tileMetrics);
-        return new ArrayList<Integer>(expectedTiles);
-    }
-
-    /**
-     * Get the available tiles for the given formats, if the formats have tile lists that differ then
-     * throw an exception, if any of the format
-     */
-    public List<Integer> getActualTiles(final List<SupportedIlluminaFormat> formats) {
-        if (formats == null) {
-            throw new PicardException("Format list provided to getTiles was null!");
-        }
-
-        if (formats.size() == 0) {
-            throw new PicardException(
-                    "0 Formats were specified.  You need to specify at least SupportedIlluminaFormat to use getTiles");
-        }
-
-        final List<Integer> tiles = getUtil(formats.get(0)).getTiles();
-        for (int i = 1; i < formats.size(); i++) {
-            final List<Integer> fmTiles = getUtil(formats.get(i)).getTiles();
-            if (tiles.size() != fmTiles.size() || !tiles.containsAll(fmTiles)) {
-                throw new PicardException(
-                        "Formats do not have the same number of tiles! " + summarizeTileCounts(formats));
-            }
-        }
-
-        return tiles;
-    }
-
-    public File tileMetricsOut() {
-        return tileMetricsOut;
-    }
-
-    /*
-     * Return a string representing the Lane in the format "L00<lane>"
-     *
-     * @param lane The lane to transform
-     * @return A long string representation of the name
-     */
-    public static String longLaneStr(final int lane) {
-        String lstr = String.valueOf(lane);
-        final int zerosToAdd = 3 - lstr.length();
-
-        for (int i = 0; i < zerosToAdd; i++) {
-            lstr = "0" + lstr;
-        }
-        return "L" + lstr;
-    }
-
-
-    private String liToStr(final List<Integer> intList) {
-        if (intList.size() == 0) {
-            return "";
-        }
-
-        String summary = String.valueOf(intList.get(0));
-        for (int i = 1; i < intList.size(); i++) {
-            summary += ", " + String.valueOf(intList.get(i));
-        }
-
-        return summary;
-    }
-
-    private String summarizeTileCounts(final List<SupportedIlluminaFormat> formats) {
-        String summary;
-        ParameterizedFileUtil pfu = getUtil(formats.get(0));
-        List<Integer> tiles = pfu.getTiles();
-        summary = pfu.extension + "(" + liToStr(tiles) + ")";
-
-        for (final SupportedIlluminaFormat format : formats) {
-            pfu = getUtil(format);
-            tiles = pfu.getTiles();
-
-            summary += ", " + pfu.extension + "(" + liToStr(tiles) + ")";
-        }
-
-        return summary;
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/parser/IlluminaMetricsCode.java b/src/java/net/sf/picard/illumina/parser/IlluminaMetricsCode.java
deleted file mode 100644
index 30f93a6..0000000
--- a/src/java/net/sf/picard/illumina/parser/IlluminaMetricsCode.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package net.sf.picard.illumina.parser;
-
-/**
- * Illumina's TileMetricsOut.bin file codes various metrics, both concrete (all density id's are code 100) or as a base code
- * (e.g. phasing values are computed from a base of 200).
- *
- * @author jgentry
- */
-public enum IlluminaMetricsCode {
-    DENSITY_ID(100),
-    CLUSTER_ID(102),
-    PHASING_BASE(200),
-    PREPHASING_BASE(201);
-
-    private final int metricsCode;
-
-    IlluminaMetricsCode(final int metricsCode) {
-        this.metricsCode = metricsCode;
-    }
-
-    /**
-     * Phasing codes are between 200 and 299 (inclusive). Phasing codes are defined as being
-     * (200 + ((N - 1) * 2)) for (a 0-based) read descriptor N (i.e., 200, 202, 204, etc.) Prephasing codes are defined
-     * as being (201 + ((N - 1) * 2)) for read descriptor N (i.e., 201, 203, 205, etc.). So for a 101T8B101T read
-     * structure, there will be phasing codes of 200, 202 and 204 and prephasing codes of 201, 203, 205.
-     */
-    public static int getPhasingCode(final int readDescriptorIndex, final IlluminaMetricsCode phasingType) {
-        if (!isPhasing(phasingType)) {
-            throw new IllegalArgumentException("phasingType must be PHASING_BASE or PREPHASING_BASE");
-        }
-
-        return (phasingType.getMetricsCode() + (readDescriptorIndex * 2));
-    }
-
-    public static boolean isPhasing(final IlluminaMetricsCode metricsCode) {
-        return (metricsCode.equals(PHASING_BASE) || metricsCode.equals(PREPHASING_BASE));
-    }
-
-    public int getMetricsCode() {
-        return metricsCode;
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/parser/IlluminaParser.java b/src/java/net/sf/picard/illumina/parser/IlluminaParser.java
deleted file mode 100644
index 5a1e101..0000000
--- a/src/java/net/sf/picard/illumina/parser/IlluminaParser.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.illumina.parser;
-
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-/**
- * Interface for classes that parse information out of the Illumina Pipeline
- *
- * @author jburke at broadinstitute.org
- */
-interface IlluminaParser<DATA_TYPE extends IlluminaData> extends Iterator<DATA_TYPE> {
-    /** Jump so that the next record returned will be from the specified tile. */
-    void seekToTile(int oneBasedTileNumber);
-
-    /**
-     * Read the next read's set of data and set it into the provided data object.  The object must have
-     * the appropriate IlluminaEndData objects set into it for first end, second end, barcode.
-     */
-    DATA_TYPE next();
-
-    /**
-     * Is there a DATA_TYPE object for another cluster remaining.
-     *
-     * @return TRUE if there is a DATA_TYPE object for the next cluster that can be provided by
-     * next
-     */
-    boolean hasNext();
-
-    /**
-     * Get the tile for the NEXT DATA_TYPE object that will be returned by this parser.  This should
-     * be called BEFORE next if you want the tile for the value returned by next
-     */
-    public int getTileOfNextCluster();
-
-    /**
-     * Given the expected tiles and cycles for this run, make sure this parser can provide data for
-     * all tiles/cycles or throws an exception if it's missing any required data or data structures
-     * it relies on do not disagree with the provided tiles/cycles
-     *
-     * @param tiles  The number of tiles in the current run
-     * @param cycles The number of cycles in the current run
-     */
-    void verifyData(final List<Integer> tiles, final int[] cycles);
-
-    /** The DataTypes that this parser can provide */
-    Set<IlluminaDataType> supportedTypes();
-
-    void close();
-
-}
diff --git a/src/java/net/sf/picard/illumina/parser/IlluminaTextIterator.java b/src/java/net/sf/picard/illumina/parser/IlluminaTextIterator.java
deleted file mode 100644
index 8ea678a..0000000
--- a/src/java/net/sf/picard/illumina/parser/IlluminaTextIterator.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.illumina.parser;
-
-import net.sf.picard.util.BasicInputParser;
-
-import java.io.File;
-import java.util.Iterator;
-import java.util.List;
-import java.util.NoSuchElementException;
-
-import net.sf.picard.PicardException;
-import net.sf.samtools.util.CloserUtil;
-
-
-/**
- * Abstract class for parsing text-based whitespace-delimited Illumina output files, organized
- * by tile.  Concrete implementations must call setFiles() in order to provide the list of files
- * to be iterated over.
- * 
- * @author jburke at broadinstitute.org
- */
-class IlluminaTextIterator implements Iterator<String[]> {
-
-    // Location of illumina output files to be parsed
-    private final int lane;
-    private int currentTile = 0;
-
-    // List of files of the given type, sorted by tile #
-    private IlluminaFileMap files;
-
-    private boolean treatGroupedDelimitersAsOne = true;
-    private BasicInputParser parser;
-
-    public IlluminaTextIterator(final int lane, final IlluminaFileMap files) {
-        this.lane = lane;
-        this.files = files;
-        currentTile = files.firstKey();
-    }
-
-    public IlluminaTextIterator(final int lane, final IlluminaFileMap files,
-                                final boolean treatGroupedDelimitersAsOne) {
-        this(lane, files);
-        this.treatGroupedDelimitersAsOne = treatGroupedDelimitersAsOne;
-        currentTile = files.firstKey();
-    }
-    
-    /**
-     * Jump so that the next record returned will be the first one from the specified tile.
-     */
-    public void seekToTile(final int oneBasedTileNumber) {
-        CloserUtil.close(parser);
-        currentTile = oneBasedTileNumber;
-        initializeParser();
-    }
-
-    /**
-     * Prepare to iterate.
-     */
-    private void initializeParser() {
-        final List<File> fileSubset = files.getFilesStartingAt(currentTile);
-        parser = new BasicInputParser(treatGroupedDelimitersAsOne, fileSubset.toArray(new File[fileSubset.size()]));
-    }
-
-    /**
-     * Read the next record from the list of input files, and load into data argument.
-     */
-    @Override
-    public String [] next() {
-        if (!hasNext()) {
-            throw new NoSuchElementException();
-        }
-
-        return parser.next();
-    }
-
-    @Override
-    public void remove() {
-        throw new UnsupportedOperationException("Remove is not supported by IlluminaTextIterator");
-    }
-
-    public boolean hasNext() {
-        if(parser == null) initializeParser();
-        return parser.hasNext();
-    }
-
-    protected int getLane() {
-        return lane;
-    }
-
-    public String getCurrentFilename() {
-        if(parser == null) initializeParser();
-        return parser.getFileName();
-    }
-
-    protected void validateLane(final int lane) {
-        if (lane != getLane()) {
-            throw new PicardException("Lane number mismatch: " + lane + " != " + getLane());
-        }
-    }
-}
\ No newline at end of file
diff --git a/src/java/net/sf/picard/illumina/parser/IntensityChannel.java b/src/java/net/sf/picard/illumina/parser/IntensityChannel.java
deleted file mode 100644
index fccd389..0000000
--- a/src/java/net/sf/picard/illumina/parser/IntensityChannel.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.illumina.parser;
-
-/**
- * The channels in a FourChannelIntensityData object, and the channels produced by a ClusterIntensityFileReader,
- * for cases in which it is desirable to handle these abstractly rather than having the specific names
- * in the source code.
- * 
- * @author alecw at broadinstitute.org
-*/
-public enum IntensityChannel {
-
-    A, C, G, T;
-
-    public static final int NUM_CHANNELS = IntensityChannel.values().length;
-}
diff --git a/src/java/net/sf/picard/illumina/parser/MultiTileBclFileUtil.java b/src/java/net/sf/picard/illumina/parser/MultiTileBclFileUtil.java
deleted file mode 100644
index 26410d2..0000000
--- a/src/java/net/sf/picard/illumina/parser/MultiTileBclFileUtil.java
+++ /dev/null
@@ -1,115 +0,0 @@
-package net.sf.picard.illumina.parser;
-
-import net.sf.picard.illumina.parser.fakers.MultiTileBclFileFaker;
-import net.sf.picard.io.IoUtil;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-/**
- * NextSeq-style bcl's have all tiles for a cycle in a single file.
- */
-public class MultiTileBclFileUtil extends ParameterizedFileUtil {
-    final File basecallLaneDir;
-    final File bci;
-    final TileIndex tileIndex;
-    final CycleIlluminaFileMap cycleFileMap = new CycleIlluminaFileMap();
-
-    MultiTileBclFileUtil(final File basecallLaneDir, final int lane) {
-        // Since these file names do not contain lane number, first two args to ctor are the same.
-        super("^(\\d{4}).bcl.bgzf$", ".bcl.bgzf", basecallLaneDir,
-                new MultiTileBclFileFaker(), lane);
-        this.basecallLaneDir = basecallLaneDir;
-        bci = new File(basecallLaneDir, "s_" + lane + ".bci");
-        // Do this once rather than when deciding if these files exist and again later.
-        final File[] cycleFiles = IoUtil.getFilesMatchingRegexp(base, matchPattern);
-        if (bci.exists()) {
-            tileIndex = new TileIndex(bci);
-            if (cycleFiles != null) {
-                for (final File file : cycleFiles) {
-                    final String fileName = file.getName();
-                    final String cycleNum = fileName.substring(0, fileName.indexOf('.'));
-                    final IlluminaFileMap fileMap = new IlluminaFileMap();
-                    for(final Integer tile : tileIndex.getTiles()) {
-                        fileMap.put(tile, file);
-                    }
-                    cycleFileMap.put(Integer.valueOf(cycleNum), fileMap);
-                }
-            }
-        } else {
-            tileIndex = null;
-        }
-
-    }
-
-    public CycleIlluminaFileMap getFiles(final List<Integer> tiles, final int[] cycles) {
-        // Filter input list of cycles according to which actually exist
-        final ArrayList<Integer> goodCycleList = new ArrayList<Integer>(cycles.length);
-        for (final int cycle : cycles) {
-            if (cycleFileMap.containsKey(cycle)) {
-                goodCycleList.add(cycle);
-            }
-        }
-        // Ensure cycles are sorted.
-        Collections.sort(goodCycleList);
-        final int[] goodCycles = new int[goodCycleList.size()];
-        for (int i = 0; i < goodCycles.length; ++i) {
-            goodCycles[i] = goodCycleList.get(i);
-        }
-
-        // Create the map.
-        final CycleIlluminaFileMap cycledMap = new CycleIlluminaFileMap();
-        if (goodCycles.length > 0) {
-            for(final int cycle : goodCycles) {
-                final IlluminaFileMap fileMap = cycleFileMap.get(cycle).keep(tiles);
-                cycledMap.put(cycle, fileMap);
-            }
-        }
-        return cycledMap;
-    }
-
-    @Override
-    public boolean filesAvailable() {
-        return bci.exists() && cycleFileMap.size() > 0;
-    }
-
-    @Override
-    public List<Integer> getTiles() {
-        if (tileIndex == null) {
-            return Collections.emptyList();
-        }
-        return tileIndex.getTiles();
-    }
-
-    @Override
-    public List<String> verify(final List<Integer> expectedTiles, final int[] expectedCycles) {
-        if (tileIndex == null) {
-            return Collections.singletonList("Tile index(" + bci.getAbsolutePath() + ") does not exist!");
-        }
-        final List<String> ret = tileIndex.verify(expectedTiles);
-        for (final int expectedCycle : expectedCycles) {
-            if (!cycleFileMap.containsKey(expectedCycle)) {
-                ret.add(expectedCycle + ".bcl.bgzf not found in " + base);
-            }
-        }
-        return ret;
-    }
-
-    @Override
-    public List<String> fakeFiles(final List<Integer> expectedTiles, final int[] expectedCycles,
-                                  final IlluminaFileUtil.SupportedIlluminaFormat format) {
-        if (tileIndex == null) {
-            return Collections.singletonList("Tile index(" + bci.getAbsolutePath() + ") does not exist!");
-        }
-        final List<String> ret = tileIndex.verify(expectedTiles);
-        for (final int expectedCycle : expectedCycles) {
-            if (!cycleFileMap.containsKey(expectedCycle)) {
-                ret.add(expectedCycle + ".bcl.bgzf not found in " + base);
-            }
-        }
-        return ret;
-    }
-}
-
diff --git a/src/java/net/sf/picard/illumina/parser/MultiTileBclParser.java b/src/java/net/sf/picard/illumina/parser/MultiTileBclParser.java
deleted file mode 100644
index c11edd8..0000000
--- a/src/java/net/sf/picard/illumina/parser/MultiTileBclParser.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2014 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.illumina.parser;
-
-import net.sf.picard.illumina.parser.readers.BclIndexReader;
-import net.sf.picard.illumina.parser.readers.BclQualityEvaluationStrategy;
-import net.sf.picard.illumina.parser.readers.BclReader;
-import net.sf.samtools.util.CloseableIterator;
-
-import java.io.File;
-import java.util.List;
-import java.util.NoSuchElementException;
-
-/**
- * Parse .bcl.bgzf files that contain multiple tiles in a single file.  This requires an index file that tells
- * the bgzf virtual file offset of the start of each tile in the block-compressed bcl file.
- */
-public class MultiTileBclParser extends BclParser {
-    private final TileIndex tileIndex;
-    private MultiTileBclDataCycleFileParser cycleFileParser = null;
-    public MultiTileBclParser(final File directory, final int lane, final CycleIlluminaFileMap tilesToCycleFiles,
-                              final OutputMapping outputMapping, final boolean applyEamssFilter,
-                              final BclQualityEvaluationStrategy bclQualityEvaluationStrategy,
-                              final TileIndex tileIndex) {
-        super(directory, lane, tilesToCycleFiles, outputMapping, applyEamssFilter, bclQualityEvaluationStrategy);
-        this.tileIndex = tileIndex;
-        this.initialize();
-    }
-
-    @Override
-    public void initialize(){
-        if(tileIndex != null){
-            seekToTile(currentTile);
-        }
-    }
-
-    private CountLimitedIterator makeReader(final List<File> files) {
-        if(tileIndex != null) {
-            final BclReader bclReader = BclReader.makeSeekable(files, bclQualityEvaluationStrategy, outputMapping.getOutputReadLengths());
-            final int numClustersInTile = bclReader.seek(files, tileIndex, currentTile);
-            return new CountLimitedIterator(bclReader, numClustersInTile);
-        }
-        else{
-            return null;
-        }
-    }
-
-    @Override
-    protected CycleFilesParser<BclData> makeCycleFileParser(final List<File> files) {
-        if (cycleFileParser == null) {
-            cycleFileParser = new MultiTileBclDataCycleFileParser(files, currentTile);
-        } else {
-            final int numClustersInTile = cycleFileParser.getReader().seek(files, tileIndex, currentTile);
-            cycleFileParser.setCurrentTile(currentTile);
-            cycleFileParser.resetClusterLimit(numClustersInTile);
-        }
-        return cycleFileParser;
-    }
-
-    /**
-     * An iterator wrapper that stops when it has return a pre-determined number of records even if the underlying
-     * iterator still had more records.
-     */
-    static class CountLimitedIterator implements CloseableIterator<BclData> {
-        public BclReader getUnderlyingIterator() {
-            return underlyingIterator;
-        }
-
-        private final BclReader underlyingIterator;
-        private int recordLimit;
-        private int numRecordsRead = 0;
-
-        CountLimitedIterator(final BclReader underlyingIterator, final int recordLimit) {
-            this.underlyingIterator = underlyingIterator;
-            this.recordLimit = recordLimit;
-        }
-
-        @Override
-        public void close() {
-            //underlyingIterator.close();
-        }
-
-        @Override
-        public boolean hasNext() {
-            return numRecordsRead < recordLimit && underlyingIterator.hasNext();
-        }
-
-        @Override
-        public BclData next() {
-            if (!hasNext()) throw new NoSuchElementException();
-            ++numRecordsRead;
-            return underlyingIterator.next();
-        }
-
-        @Override
-        public void remove() {
-            throw new UnsupportedOperationException();
-        }
-    }
-
-
-    private class MultiTileBclDataCycleFileParser implements CycleFilesParser<BclData> {
-        final CountLimitedIterator reader;
-        int currentTile;
-
-        public MultiTileBclDataCycleFileParser(final List<File> files, final int currentTile) {
-            this.currentTile = currentTile;
-            reader = makeReader(files);
-        }
-
-        @Override
-        public void close() {
-            reader.close();
-        }
-
-        @Override
-        public BclData next() {
-            if (!hasNext()) {
-                throw new NoSuchElementException();
-            }
-            return reader.next();
-        }
-
-        @Override
-        public boolean hasNext() {
-            try {
-                return reader.hasNext();
-            } catch (final NullPointerException npe) {
-                return false;
-            }
-        }
-
-        public int getCurrentTile(){
-            return currentTile;
-        }
-
-        public BclReader getReader() {
-            return reader.getUnderlyingIterator();
-        }
-
-        public void resetClusterLimit(final int numClustersInTile) {
-            reader.recordLimit = numClustersInTile;
-            reader.numRecordsRead = 0;
-        }
-
-        public void setCurrentTile(final int currentTile) {
-            this.currentTile = currentTile;
-        }
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/parser/MultiTileFileUtil.java b/src/java/net/sf/picard/illumina/parser/MultiTileFileUtil.java
deleted file mode 100644
index 044eac0..0000000
--- a/src/java/net/sf/picard/illumina/parser/MultiTileFileUtil.java
+++ /dev/null
@@ -1,120 +0,0 @@
-package net.sf.picard.illumina.parser;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.illumina.parser.fakers.BciFileFaker;
-import net.sf.picard.illumina.parser.fakers.FileFaker;
-import net.sf.picard.illumina.parser.fakers.FilterFileFaker;
-import net.sf.picard.illumina.parser.fakers.MultiTileLocsFileFaker;
-import net.sf.picard.io.IoUtil;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Collections;
-import java.util.List;
-
-/**
- * For file types for which there is one file per lane, with fixed record size, and all the tiles in it,
- * so the s_<lane>.bci file can be used to figure out where each tile starts and ends.
- */
-public abstract class MultiTileFileUtil<OUTPUT_RECORD extends IlluminaData> extends ParameterizedFileUtil {
-    protected final File bci;
-    protected TileIndex tileIndex;
-    protected File dataFile;
-
-    MultiTileFileUtil(final String extension, final File base, final File bciDir, final FileFaker fileFaker,
-                      final int lane) {
-        super(false, extension, base, fileFaker, lane);
-        bci = new File(bciDir, "s_" + lane + ".bci");
-        if (bci.exists()) {
-            tileIndex = new TileIndex(bci);
-        } else {
-            tileIndex = null;
-        }
-        final File[] filesMatchingRegexp = IoUtil.getFilesMatchingRegexp(base, matchPattern);
-        if (filesMatchingRegexp == null || filesMatchingRegexp.length == 0) {
-            dataFile = null;
-        } else if (filesMatchingRegexp.length == 1) {
-            dataFile = filesMatchingRegexp[0];
-        } else {
-            throw new PicardException("More than one filter file found in " + base.getAbsolutePath());
-        }
-    }
-
-    @Override
-    public boolean filesAvailable() {
-        return tileIndex != null && dataFile != null && dataFile.exists();
-    }
-
-    @Override
-    public List<Integer> getTiles() {
-        if (tileIndex == null) {
-            return Collections.emptyList();
-        }
-        return tileIndex.getTiles();
-    }
-
-    /**
-     * expectedCycles are not checked in this implementation.
-     */
-    @Override
-    public List<String> verify(final List<Integer> expectedTiles, final int[] expectedCycles) {
-        if (tileIndex == null) {
-            return Collections.singletonList("Tile index(" + bci.getAbsolutePath() + ") does not exist!");
-        }
-        return tileIndex.verify(expectedTiles);
-    }
-
-    @Override
-    public List<String> fakeFiles(final List<Integer> expectedTiles, final int[] expectedCycles,
-                                  final IlluminaFileUtil.SupportedIlluminaFormat format) {
-        //we need to fake a bci file for the tile index
-        final BciFileFaker bciFileFaker = new BciFileFaker();
-        try {
-            bciFileFaker.fakeBciFile(bci, expectedTiles);
-            tileIndex = new TileIndex(bci);
-            faker.fakeFile(base, expectedTiles, lane, extension);
-            final File[] filesMatchingRegexp = IoUtil.getFilesMatchingRegexp(base, matchPattern);
-            if (filesMatchingRegexp == null || filesMatchingRegexp.length == 0) {
-                dataFile = null;
-            } else if (filesMatchingRegexp.length == 1) {
-                dataFile = filesMatchingRegexp[0];
-            } else {
-                throw new PicardException("More than one filter file found in " + base.getAbsolutePath());
-            }
-        } catch (final IOException e) {
-            return Collections.singletonList("Could not create tile index file: " + bci.getAbsolutePath());
-        }
-        return tileIndex.verify(expectedTiles);
-    }
-
-    abstract IlluminaParser<OUTPUT_RECORD> makeParser(List<Integer> requestedTiles);
-
-}
-
-class MultiTileFilterFileUtil extends MultiTileFileUtil<PfData> {
-
-    /**
-     * @param basecallLaneDir location of .filter file and also .bci file
-     */
-    MultiTileFilterFileUtil(final File basecallLaneDir, final int lane) {
-        super(".filter", basecallLaneDir, basecallLaneDir, new FilterFileFaker(), lane);
-    }
-
-    @Override
-    IlluminaParser<PfData> makeParser(final List<Integer> requestedTiles) {
-        return new MultiTileFilterParser(tileIndex, requestedTiles, dataFile);
-    }
-}
-
-class MultiTileLocsFileUtil extends MultiTileFileUtil<PositionalData> {
-
-    MultiTileLocsFileUtil(final File basecallLaneDir, final File bciDir, final int lane) {
-        super(".locs", basecallLaneDir, bciDir, new MultiTileLocsFileFaker(), lane);
-    }
-
-    @Override
-    IlluminaParser<PositionalData> makeParser(final List<Integer> requestedTiles) {
-        return new MultiTileLocsParser(tileIndex, requestedTiles, dataFile, lane);
-    }
-}
-
diff --git a/src/java/net/sf/picard/illumina/parser/MultiTileFilterParser.java b/src/java/net/sf/picard/illumina/parser/MultiTileFilterParser.java
deleted file mode 100644
index 74453ae..0000000
--- a/src/java/net/sf/picard/illumina/parser/MultiTileFilterParser.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2014 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.illumina.parser;
-
-import net.sf.picard.illumina.parser.readers.FilterFileReader;
-
-import java.io.File;
-import java.util.Collections;
-import java.util.List;
-
-/**
- * Read filter file that contains multiple tiles in a single file.  A tile index is needed to parse this
- * file so that {tile number, cluster number} can be converted into absolute record number in file.
- */
-public class MultiTileFilterParser extends MultiTileParser<PfData> {
-    private final FilterFileReader reader;
-
-    public MultiTileFilterParser(final TileIndex tileIndex, final List<Integer> requestedTiles, final File filterFile) {
-        super(tileIndex, requestedTiles, Collections.singleton(IlluminaDataType.PF));
-        reader = new FilterFileReader(filterFile);
-    }
-
-    @Override
-    PfData readNext() {
-        final boolean nextVal = reader.next();
-        return new PfData() {
-            @Override
-            public boolean isPf() {
-                return nextVal;
-            }
-        };
-    }
-
-    @Override
-    void skipRecords(final int numToSkip) {
-        reader.skipRecords(numToSkip);
-    }
-
-    @Override
-    public void close() {
-        //no-op
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/parser/MultiTileLocsParser.java b/src/java/net/sf/picard/illumina/parser/MultiTileLocsParser.java
deleted file mode 100644
index fb20eae..0000000
--- a/src/java/net/sf/picard/illumina/parser/MultiTileLocsParser.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2014 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.illumina.parser;
-
-import net.sf.picard.illumina.parser.readers.AbstractIlluminaPositionFileReader;
-import net.sf.picard.illumina.parser.readers.LocsFileReader;
-
-import java.io.File;
-import java.util.Collections;
-import java.util.List;
-
-/**
- * Read locs file that contains multiple tiles in a single file.  A tile index is needed to parse this
- * file so that {tile number, cluster number} can be converted into absolute record number in file.
- */
-public class MultiTileLocsParser extends MultiTileParser<PositionalData> {
-    private final LocsFileReader reader;
-    private final int lane;
-
-    public MultiTileLocsParser(final TileIndex tileIndex, final List<Integer> requestedTiles, final File locsFile, final int lane) {
-        super(tileIndex, requestedTiles, Collections.singleton(IlluminaDataType.Position));
-        final int tileNumber;
-        if (requestedTiles.size() == 1) tileNumber = requestedTiles.get(0);
-        else tileNumber = -1;
-        this.reader = new LocsFileReader(locsFile, lane, tileNumber);
-        this.lane = lane;
-    }
-
-    @Override
-    PositionalData readNext() {
-        final int tile = getTileOfNextCluster();
-        final AbstractIlluminaPositionFileReader.PositionInfo nextVal = reader.next();
-        return new PositionalData() {
-            public int getXCoordinate() {
-                return nextVal.xQseqCoord;
-            }
-
-            public int getYCoordinate() {
-                return nextVal.yQseqCoord;
-            }
-
-            public int getLane() {
-                return lane;
-            }
-
-            public int getTile() {
-                return tile;
-            }
-        };
-    }
-
-    @Override
-    void skipRecords(final int numToSkip) {
-        reader.skipRecords(numToSkip);
-    }
-
-    @Override
-    public void close() {
-        reader.close();
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/parser/MultiTileParser.java b/src/java/net/sf/picard/illumina/parser/MultiTileParser.java
deleted file mode 100644
index 1621834..0000000
--- a/src/java/net/sf/picard/illumina/parser/MultiTileParser.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2014 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.illumina.parser;
-
-import net.sf.picard.PicardException;
-import net.sf.samtools.util.PeekIterator;
-
-import java.util.Iterator;
-import java.util.List;
-import java.util.NoSuchElementException;
-import java.util.Set;
-
-/**
- * Abstract class for files with fixed-length records for multiple tiles, e.g. .locs and .filter files.
- * @param <OUTPUT_RECORD> The kind of record to be returned (as opposed to the type of the record stored in the file).
- */
-public abstract class MultiTileParser<OUTPUT_RECORD extends IlluminaData> implements IlluminaParser<OUTPUT_RECORD> {
-    private final TileIndex tileIndex;
-    private final Iterator<TileIndex.TileIndexRecord> tileIndexIterator;
-    private final PeekIterator<Integer> requestedTilesIterator;
-    private final Set<IlluminaDataType> supportedTypes;
-    private int nextRecordIndex = 0;
-    private int nextClusterInTile;
-    private TileIndex.TileIndexRecord currentTile = null;
-
-    /**
-     * @param tileIndex Enables conversion from tile number to record number in this file.
-     * @param requestedTiles Iterate over these tile numbers, which must be in ascending order.
-     * @param supportedTypes The data types(s) that are provided by this file type, used to decide what file types to read.
-     */
-    public MultiTileParser(final TileIndex tileIndex,
-                           final List<Integer> requestedTiles,
-                           final Set<IlluminaDataType> supportedTypes) {
-        this.tileIndex = tileIndex;
-        this.tileIndexIterator = tileIndex.iterator();
-        this.requestedTilesIterator = new PeekIterator<Integer>(requestedTiles.iterator());
-        this.supportedTypes = supportedTypes;
-    }
-
-    @Override
-    public void seekToTile(final int oneBasedTileNumber) {
-        while (tileIndexIterator.hasNext()) {
-            final TileIndex.TileIndexRecord next = tileIndexIterator.next();
-            if (next.tile > oneBasedTileNumber) {
-                throw new PicardException(
-                        String.format("Cannot seek backwards: next tile %d > tile sought %d", next.tile, oneBasedTileNumber));
-            } else if (next.tile == oneBasedTileNumber) {
-                currentTile = next;
-                break;
-            }
-        }
-        if (nextRecordIndex > currentTile.indexOfFirstClusterInTile) {
-            throw new PicardException(
-                    String.format("Seem to be in wrong position %d > %d", nextRecordIndex, currentTile.indexOfFirstClusterInTile));
-        }
-        skipRecords(currentTile.indexOfFirstClusterInTile - nextRecordIndex);
-        nextRecordIndex = currentTile.indexOfFirstClusterInTile;
-        nextClusterInTile = 0;
-    }
-
-    @Override
-    public OUTPUT_RECORD next() {
-        if (!hasNext()) throw new NoSuchElementException();
-        OUTPUT_RECORD ret = readNext();
-        ++nextClusterInTile;
-        ++nextRecordIndex;
-        return ret;
-    }
-
-    @Override
-    public boolean hasNext() {
-        // Skip over any empty tiles
-        while ((currentTile == null || nextClusterInTile >= currentTile.numClustersInTile) && requestedTilesIterator.hasNext()) {
-            seekToTile(requestedTilesIterator.next());
-        }
-        return currentTile != null && nextClusterInTile < currentTile.numClustersInTile;
-    }
-
-    @Override
-    public int getTileOfNextCluster() {
-        if (!hasNext()) {
-            throw new NoSuchElementException();
-        }
-        if (currentTile != null && nextClusterInTile < currentTile.numClustersInTile) return currentTile.tile;
-        else return requestedTilesIterator.peek();
-    }
-
-    @Override
-    public void verifyData(final List<Integer> tiles, final int[] cycles) {
-        final List<String> tileErrors = tileIndex.verify(tiles);
-        if (!tileErrors.isEmpty()) throw new PicardException(tileErrors.get(0));
-        //No need to validate cycles until such time as this class is used for cycle-oriented data types
-    }
-
-    @Override
-    public Set<IlluminaDataType> supportedTypes() {
-        return supportedTypes;
-    }
-
-    @Override
-    public void remove() {
-        throw new UnsupportedOperationException();
-    }
-
-    abstract OUTPUT_RECORD readNext();
-    abstract void skipRecords(int numToSkip);
-}
diff --git a/src/java/net/sf/picard/illumina/parser/OutputMapping.java b/src/java/net/sf/picard/illumina/parser/OutputMapping.java
deleted file mode 100644
index 38e9ae9..0000000
--- a/src/java/net/sf/picard/illumina/parser/OutputMapping.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2012 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.illumina.parser;
-
-import net.sf.picard.PicardException;
-import net.sf.samtools.util.StringUtil;
-
-/**
- * In multiple locations we need to know what cycles are output, as of now we output all non-skip cycles, but rather than sprinkle
- * this knowledge throughout the parser code, instead OutputMapping provides all the data a client might want about the
- * cycles to be output including what ReadType they are.
- *
- * @author jburke at broadinstitute.org
- */
-public class OutputMapping {
-    /**
-     * This class represents the mapping from Raw Cycles to TwoDIndices into output data structures and ClusterData.  This class
-     * also contains ReadStructure.Substructure that describes which reads/cycles should be output.
-     *
-     * For each cycle # (1-Based) there is a corresponding element in the cycleToOutputIndex array where
-     * cycleToOutputIndex[cycle#].arrayIndex indicates the readNumber that cycle will be found on and cycleToOutputIndex[cycle#].elementIndex
-     * indicates the array inde on that readNumber that the cycle occupies.  There are also various intermediate byte[][]
-     * structures (in BclData, QseqReadData, etc...) where the top level array corresponds with the readNumber and the second-level
-     * array corresponds with cycleNumber, cycleToOutputIndex is used to index into these arrays.
-     */
-    private final TwoDIndex[] cycleToOutputIndex;
-
-    /** The collection of ReadDescriptors and information about those read descriptors that describe all the
-     * cycles that IlluminaDataProvider should output in a ClusterData object */
-    private final ReadStructure.Substructure outputSubstructure;
-
-    /** The original read structure without any skips */
-    private final ReadStructure outputReadStructure;
-
-    /**
-     * Create an OutputMapping from a readStructure, currently the outputSubstructure just references the readStructure.nonSkips
-     * Substructure
-     * @param readStructure The readStructure for the given run that we want an OutputMapping for
-     */
-    public OutputMapping(final ReadStructure readStructure) {
-        this.outputSubstructure = readStructure.nonSkips;
-        this.cycleToOutputIndex = makeCycleToOutputIndexArray(readStructure);
-        this.outputReadStructure = outputSubstructure.toReadStructure();
-    }
-
-    /** @return The number of reads that should be found in the output clusterData */
-    public int numOutputReads() {
-        return outputSubstructure.length();
-    }
-
-    /** @return An array of cycles in ascending order of all the cycles that should be output. */
-    public int [] getOutputCycles() {
-        return outputSubstructure.getCycles();
-    }
-
-    /** @return An ordered array of lengths, where each element represents the size of output reads respectively */
-    public int [] getOutputReadLengths() {
-        return outputSubstructure.getDescriptorLengths();
-    }
-
-    /** @return The total number of cycles that will be output */
-    public int getTotalOutputCycles() {
-        return outputSubstructure.getTotalCycles();
-    }
-
-    /** @return An ordered array of Ranges over cycle indices(cycle#-1), where each range represents a contiguous block of cycles
-     * to output, and each cycle in getOutputCycles() is in ONE AND ONLY ONE Range, all ranges are inclusive of both ends
-     */
-    public Range [] getCycleIndexRanges() {
-        return outputSubstructure.getCycleIndexRanges();
-    }
-
-    /** @return An iterator over the read descriptors that describe the reads to be output*/
-    public Iterable<ReadDescriptor> getOutputDescriptors() {
-        return outputSubstructure;
-    }
-
-    public ReadStructure getOutputReadStructure() {
-        return outputReadStructure;
-    }
-
-    /**
-     * Return an index that where:
-     *     index.arrayIndex - represents either the read number the cycle will be output too, or (in some cases)
-     *     an array index into a two dimensional array of byte[][] where the top level array corresponds to read number
-     *
-     *     index.elementIndex - represents the element a cycle will appear in inside it's give read, or the element
-     *     in an array as described above
-     * @param cycle The cycle for which we want an index
-     * @return A TwoDArrayIndex indicating where this cycle can be found
-     */
-    public TwoDIndex getOutputIndexForCycle(final int cycle) {
-        return cycleToOutputIndex[cycle];
-    }
-
-    /**
-     * An index into two dimensional arrays or other two dimensional structures where arrayIndex equals the index
-     * into the top level structure and elementIndex is equal to the index into the bottom level structure
-     */
-    static class TwoDIndex {
-        //index into the "outer structure" i.e. if we have an array T[][], we would index T[majorIndex][minorIndex]
-        public final int majorIndex;
-
-        //index into the "inner structure", see majorIndex
-        public final int minorIndex;
-
-        public TwoDIndex(final int majorIndex, final int minorIndex) {
-            this.majorIndex = majorIndex;
-            this.minorIndex = minorIndex;
-        }
-
-        @Override
-        public String toString() {
-            return "TwoDIndex(majorIndex == " + majorIndex + ", minorIndex == " + minorIndex + ")";
-        }
-
-        @Override
-        public boolean equals(final Object thatObj) {
-            if(thatObj == null || !(thatObj instanceof TwoDIndex)) {
-                return false;
-            }
-
-            final TwoDIndex that = (TwoDIndex) thatObj;
-            return this.majorIndex == that.majorIndex && this.minorIndex == that.minorIndex;
-        }
-    }
-
-    /**
-     * Create an array where each index corresponds to a cycle # (with Cycle 0 = null) and each element in
-     * an index into a ClusterData's reads/bases and reads/qualities for the run described by readStructure
-     * @param readStructure The readStructure describing the run concerned
-     * @return An array of TwoDArrayIndexes
-     */
-    private TwoDIndex[] makeCycleToOutputIndexArray(final ReadStructure readStructure) {
-        int totalCycles = readStructure.totalCycles;
-        final TwoDIndex[] cycleToOutputIndex = new TwoDIndex[totalCycles + 1];
-
-        final int [] outputCycles = getOutputCycles();
-        final int [] outputLengths = getOutputReadLengths();
-        int outputCycleIndex = 0;
-        int arrIndex = 0;
-        int elementIndex = 0;
-        for(int i = 1; i <= totalCycles && outputCycleIndex < outputCycles.length; i++) {
-            if(outputCycles[outputCycleIndex] == i) {
-                if(elementIndex >= outputLengths[arrIndex]) {
-                    elementIndex = 0;
-                    ++arrIndex;
-                }
-
-                cycleToOutputIndex[i] = new TwoDIndex(arrIndex, elementIndex);
-                ++elementIndex;
-                ++outputCycleIndex;
-            }
-        }
-
-        if(outputCycleIndex != outputCycles.length) {
-            throw new PicardException("Error in read structure outputCycles (" + StringUtil.intValuesToString(outputCycles) + ") and total cycles (" + totalCycles + ") OutputCycleIndex(" + outputCycleIndex + ")");
-        }
-
-        return cycleToOutputIndex;
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/parser/ParameterizedFileUtil.java b/src/java/net/sf/picard/illumina/parser/ParameterizedFileUtil.java
deleted file mode 100644
index 53fd2a3..0000000
--- a/src/java/net/sf/picard/illumina/parser/ParameterizedFileUtil.java
+++ /dev/null
@@ -1,174 +0,0 @@
-package net.sf.picard.illumina.parser;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.illumina.parser.fakers.FileFaker;
-import net.sf.picard.io.IoUtil;
-
-import java.io.File;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-public abstract class ParameterizedFileUtil {
-    public static final String PER_TILE_PATTERN_STRING = "s_(\\d+)_(\\d{1,5})";
-    /**
-     * The file extension for this class, file extension does not have the standard meaning
-     * in this instance.  It means, all the characters that come after the identifying portion of
-     * the file (after lane, tile, and end that is).  So _qseq.txt and .filter are both file extensions
-     */
-    protected final String extension;
-
-    /**
-     * A pattern that will match files of this type for this lane
-     */
-    protected Pattern matchPattern;
-
-    protected final int lane;
-    protected List<Integer> tiles;
-    /**
-     * If you think of the file system as a tree, this is the deepest directory(node) on the tree that
-     * still contains all of the files for this given type (e.g. If we're talking about BCLs the directory
-     * structure is:
-     * <p/>
-     * BaseCall Dir
-     * |
-     * L001
-     * |     |        |
-     * C1.1 C2.1 ... Cn.1
-     * |     |        |
-     * bcl Files ... bclFiles
-     * <p/>
-     * L001 is the base because it contains every BCL file in the run (though those files are nested in
-     * other folders).
-     */
-    protected final File base;
-    protected final FileFaker faker;
-
-    public ParameterizedFileUtil(final boolean laneTileRegex, final String extension, final File base,
-                                 final FileFaker faker, final int lane) {
-        this(extension, base, faker, lane);
-        if (laneTileRegex) {
-            matchPattern = Pattern.compile(escapePeriods(makeLaneTileRegex(processTxtExtension(extension), lane)));
-        } else {
-            matchPattern = Pattern.compile(escapePeriods(makeLaneRegex(extension, lane)));
-        }
-    }
-
-    public ParameterizedFileUtil(final String pattern, final String extension, final File base, final FileFaker faker,
-                                 final int lane) {
-        this(extension, base, faker, lane);
-        this.matchPattern = Pattern.compile(pattern);
-    }
-
-    private ParameterizedFileUtil(final String extension, final File base, final FileFaker faker,
-                                  final int lane) {
-        this.faker = faker;
-        this.extension = extension;
-        this.base = base;
-        this.lane = lane;
-    }
-
-    /**
-     * Determine whether or not files are available
-     *
-     * @return return true if files are found matching this types pattern, false otherwise
-     */
-    public abstract boolean filesAvailable();
-
-    /**
-     * Return a list of all tiles available for this file format and run
-     *
-     * @return A List of tile integers
-     */
-    public List<Integer> getTiles() {
-        return tiles;
-    }
-
-    /**
-     * Given the expected tiles/expected cycles for this file type, return a list of error messages describing any
-     * missing/or malformed files
-     *
-     * @param expectedTiles  An ordered list of tile numbers
-     * @param expectedCycles An ordered list of cycle numbers that may contain gaps
-     * @return A list of error messages for this format
-     */
-    public abstract List<String> verify(List<Integer> expectedTiles, int[] expectedCycles);
-
-    /**
-     * Given the expected tiles/expected cycles for this file type create a set of fake files such that the
-     * verification criteria are met.
-     *
-     * @param expectedTiles An ordered list of tile numbers
-     * @param cycles        An ordered list of cycle numbers that may contain gaps
-     * @param format        The format of the files that are to be faked
-     * @return A list of error messages for this format
-     */
-    public abstract List<String> fakeFiles(List<Integer> expectedTiles, int[] cycles,
-                                           IlluminaFileUtil.SupportedIlluminaFormat format);
-
-    /**
-     * Returns only lane and tile information as PerTileFt's do not have End information.
-     *
-     * @param fileName Filename to analyze for data
-     * @return A LaneTile object with the discovered Lane and Tile information and a null end field.
-     */
-    protected Integer fileToTile(final String fileName) {
-        final Matcher matcher = matchPattern.matcher(fileName);
-        if (!matcher.matches()) {
-            return null;
-        }
-        return Integer.parseInt(matcher.group(1));
-    }
-
-    /**
-     * Return a regex string for finding Lane and Tile given a file extension pattern
-     */
-    public static String makeLaneTileRegex(final String fileNameEndPattern, final int lane) {
-        if (lane < 0) {
-            throw new PicardException("Lane (" + lane + ") cannot be negative");
-        }
-        return "^" + "s_" + lane + "_(\\d{1,5})" + fileNameEndPattern + "$";
-    }
-
-    private String makeLaneRegex(final String fileNameEndPattern, final int lane) {
-        return "^s_" + lane + fileNameEndPattern + "$";
-    }
-
-    /**
-     * The period separator is expected in the file extension, since some do not start with it
-     */
-    private String escapePeriods(final String preEscaped) {
-        return preEscaped
-                .replaceAll("\\.", "\\."); //In the first one the \\ is inside a regex in the second it's NOT
-    }
-
-    /**
-     * For filename patterns that end with .txt tack on the option .gz extension
-     */
-    private String processTxtExtension(final String fileNameEndPattern) {
-        if (fileNameEndPattern.endsWith(".txt")) {
-            return fileNameEndPattern + "(\\.gz|\\.bz2)?";
-        } else {
-            return fileNameEndPattern;
-        }
-    }
-
-    /**
-     * Return all files that match pattern of the given file type in the given base directory
-     */
-    protected IlluminaFileMap getTiledFiles(final File baseDirectory, final Pattern pattern) {
-        final IlluminaFileMap fileMap = new IlluminaFileMap();
-        if (baseDirectory.exists()) {
-            IoUtil.assertDirectoryIsReadable(baseDirectory);
-            final File[] files = IoUtil.getFilesMatchingRegexp(baseDirectory, pattern);
-            for (final File file : files) {
-                if (file.length() > 0) {
-                    fileMap.put(fileToTile(file.getName()), file);
-                }
-            }
-        }
-
-        return fileMap;
-    }
-
-}
diff --git a/src/java/net/sf/picard/illumina/parser/PerTileCycleParser.java b/src/java/net/sf/picard/illumina/parser/PerTileCycleParser.java
deleted file mode 100644
index afb09cd..0000000
--- a/src/java/net/sf/picard/illumina/parser/PerTileCycleParser.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.illumina.parser;
-
-import net.sf.picard.PicardException;
-import org.broadinstitute.variant.variantcontext.writer.BCF2FieldWriter;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.NoSuchElementException;
-import java.util.Set;
-import java.util.TreeSet;
-
-/**
- * PerTilePerCycleParser is an abstract IlluminaParser that maintains a list of file parsers for the current tile (1 for each cycle)
- * and coordinates the construction/population of an IlluminaData object on a cycle by cycle basis.
- *
- * @param <ILLUMINA_DATA>
- */
-abstract class PerTileCycleParser<ILLUMINA_DATA extends IlluminaData> implements IlluminaParser<ILLUMINA_DATA> {
-
-    /** Location of illumina output files to be parsed.  Typically this is Data/Intensities/L00<lane> */
-    private final File laneDirectory;
-
-    /** The lane to iterate over */
-    private final int lane;
-
-    /** A parser for the current tile */
-    private CycleFilesParser<ILLUMINA_DATA> cycleFilesParser;
-
-    final OutputMapping outputMapping;
-
-    /** The current tile number */
-    protected int currentTile;
-
-    /** Map of Cycle -> Tile -> List<File> */
-    private final CycleIlluminaFileMap cyclesToTileFiles;
-
-    private final TreeSet<Integer> tileOrder;
-
-    /**
-     * Construct a per tile parser
-     *
-     * @param directory         The directory containing the lane we are analyzing (i.e. the parent of the L00<lane> directory)
-     * @param lane              The lane that is being iterated over
-     * @param cyclesToTileFiles A map of tile to CycleFilesIterators whose iterators contain only the cycles we want to output
-     * @param outputMapping     Data structure containing information on how we should output data
-     */
-    PerTileCycleParser(final File directory, final int lane, final CycleIlluminaFileMap cyclesToTileFiles, final OutputMapping outputMapping) {
-        this.tileOrder = getTileOrder(cyclesToTileFiles);
-        this.lane = lane;
-        this.laneDirectory = new File(directory, IlluminaFileUtil.longLaneStr(this.lane));
-        this.cyclesToTileFiles = cyclesToTileFiles;
-        this.currentTile = tileOrder.first();
-        this.outputMapping = outputMapping;
-    }
-
-    private TreeSet<Integer> getTileOrder(final CycleIlluminaFileMap cyclesToTileFiles) {
-        final TreeSet<Integer> uniqueTiles = new TreeSet<Integer>();
-
-        for (final IlluminaFileMap fileMap : cyclesToTileFiles.values()) {
-            uniqueTiles.addAll(fileMap.keySet());
-        }
-        return uniqueTiles;
-    }
-
-    /**
-     * For a given cycle, return a CycleFilesParser.
-     *
-     * @param file       The file to parse
-     * @return A CycleFilesParser that will populate the correct position in the IlluminaData object with that cycle's data.
-     */
-    protected abstract CycleFilesParser<ILLUMINA_DATA> makeCycleFileParser(final List<File> file);
-
-    public abstract void initialize();
-
-    /**
-     * CycleFileParsers iterate through the clusters of a file and populate an IlluminaData object with a single cycle's
-     * value.
-     *
-     * @param <ILLUMINA_DATA>
-     */
-    protected interface CycleFilesParser<ILLUMINA_DATA> {
-        public void close();
-
-        public ILLUMINA_DATA next();
-
-        public boolean hasNext();
-    }
-
-    /**
-     * Clear the current set of cycleFileParsers and replace them with the ones for the tile indicated by oneBasedTileNumber
-     *
-     * @param tile requested tile
-     */
-    @Override
-    public void seekToTile(final int tile) {
-        currentTile = tile;
-
-        if(cycleFilesParser != null) {
-            cycleFilesParser.close();
-        }
-
-        int totalCycles = 0;
-        final List<File> tileFiles = new ArrayList<File>();
-        for (final Map.Entry<Integer, IlluminaFileMap> entry : cyclesToTileFiles.entrySet()) {
-            tileFiles.add(entry.getValue().get(currentTile));
-            ++totalCycles;
-        }
-        cycleFilesParser = makeCycleFileParser(tileFiles);
-
-        if (totalCycles != outputMapping.getTotalOutputCycles()) {
-            throw new PicardException("Number of cycle OUTPUT files found (" + totalCycles + ") does not equal the number expected (" + outputMapping.getTotalOutputCycles() + ")");
-        }
-    }
-
-    /**
-     * Return the data for the next cluster by:
-     * 1. Advancing tiles if we reached the end of the current tile.
-     * 2. For each cycle, get the appropriate parser and have it populate it's data into the IlluminaData object.
-     *
-     * @return The IlluminaData object for the next cluster
-     */
-    @Override
-    public ILLUMINA_DATA next() { //iterate over clusters
-        if (!hasNext()) {
-            throw new NoSuchElementException("IlluminaData is missing in lane " + lane + " at directory location " + laneDirectory.getAbsolutePath());
-        }
-
-        if (!cycleFilesParser.hasNext()) {
-            seekToTile(tileOrder.higher(currentTile));
-        }
-
-        return cycleFilesParser.next();
-    }
-
-    @Override
-    public boolean hasNext() {
-        return cycleFilesParser.hasNext() || currentTile < tileOrder.last();
-    }
-
-    /**
-     * Returns the tile of the next cluster that will be returned by PerTilePerCycleParser and therefore should be called before
-     * next() if you want to know the tile for the data returned by next()
-     *
-     * @return The tile number of the next ILLUMINA_DATA object to be returned
-     */
-    public int getTileOfNextCluster() {
-        //if the current parser still has more clusters, return the current tile number
-        if (cycleFilesParser.hasNext()) {
-            return currentTile;
-        }
-
-        //if the current parser is EMPTY, return the next tile number
-        if (currentTile < tileOrder.last()) {
-            return tileOrder.higher(currentTile);
-        }
-
-        //If we are at the end of clusters then this method should not be called, throw an exception
-        throw new NoSuchElementException();
-    }
-
-    @Override
-    public void verifyData(List<Integer> tiles, final int[] cycles) {
-        if (tiles == null) {
-            tiles = new ArrayList<Integer>(this.cyclesToTileFiles.keySet());
-        }
-        this.cyclesToTileFiles.assertValid(tiles, cycles);
-    }
-
-    public void remove() {
-        throw new UnsupportedOperationException("Remove is not supported by " + this.getClass().getName());
-    }
-
-    @Override
-    public void close() {
-        cycleFilesParser.close();
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/parser/PerTileFileUtil.java b/src/java/net/sf/picard/illumina/parser/PerTileFileUtil.java
deleted file mode 100644
index 87c0b74..0000000
--- a/src/java/net/sf/picard/illumina/parser/PerTileFileUtil.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package net.sf.picard.illumina.parser;
-
-import net.sf.picard.illumina.parser.fakers.FileFaker;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.LinkedList;
-import java.util.List;
-
-public class PerTileFileUtil extends ParameterizedFileUtil {
-    private final IlluminaFileMap fileMap;
-
-    public PerTileFileUtil(final String extension, final File base,
-                           final FileFaker faker, final int lane) {
-        super(true, extension, base, faker, lane);
-        this.fileMap = getTiledFiles(base, matchPattern);
-        if (fileMap.size() > 0) {
-            this.tiles = Collections.unmodifiableList(new ArrayList<Integer>(this.fileMap.keySet()));
-        } else {
-            this.tiles = new ArrayList<Integer>();
-        }
-    }
-
-    @Override
-    public boolean filesAvailable() {
-        return !fileMap.isEmpty();
-    }
-
-    public IlluminaFileMap getFiles() {
-        return fileMap;
-    }
-
-    public IlluminaFileMap getFiles(final List<Integer> tiles) {
-        return fileMap.keep(tiles);
-    }
-
-    @Override
-    public List<String> verify(final List<Integer> expectedTiles, final int[] expectedCycles) {
-        final List<String> failures = new LinkedList<String>();
-
-        if (!base.exists()) {
-            failures.add("Base directory(" + base.getAbsolutePath() + ") does not exist!");
-        } else {
-                if (!tiles.containsAll(expectedTiles)) {
-                    final List<Integer> missing = new ArrayList<Integer>(expectedTiles);
-                    missing.removeAll(tiles);
-                    failures.add("Missing tile " + missing + " for file type " + extension + ".");
-                }
-        }
-        return failures;
-    }
-
-    @Override
-    public List<String> fakeFiles(final List<Integer> expectedTiles, final int[] cycles,
-                                  final IlluminaFileUtil.SupportedIlluminaFormat format) {
-        final List<String> failures = new LinkedList<String>();
-        if (!base.exists()) {
-            failures.add("Base directory(" + base.getAbsolutePath() + ") does not exist!");
-        } else {
-            for (final Integer tile : expectedTiles) {
-                if (!tiles.contains(tile) || fileMap.get(tile).length() == 0) {
-                    //create a new file of this type
-                    try {
-                        faker.fakeFile(base, tile, lane, extension);
-                    } catch (final IOException e) {
-                        failures.add(String.format("Could not create fake file %s: %s", fileMap.get(tile),
-                                e.getMessage()));
-                    }
-
-                }
-            }
-        }
-        return failures;
-    }
-
-}
diff --git a/src/java/net/sf/picard/illumina/parser/PerTileParser.java b/src/java/net/sf/picard/illumina/parser/PerTileParser.java
deleted file mode 100644
index 94e614b..0000000
--- a/src/java/net/sf/picard/illumina/parser/PerTileParser.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2012 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.illumina.parser;
-
-import net.sf.picard.PicardException;
-import net.sf.samtools.util.CloseableIterator;
-import net.sf.samtools.util.StringUtil;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.NoSuchElementException;
-
-/** Abstract base class for Parsers that open a single tile file at a time and iterate through them. */
-public abstract class PerTileParser<ILLUMINA_DATA extends IlluminaData> implements IlluminaParser<ILLUMINA_DATA>  {
-    private final IlluminaFileMap tileToFiles;
-    private CloseableIterator<ILLUMINA_DATA> currentIterator;
-    private Integer nextTile;
-    private Integer currentTile;
-
-    /** Factory method for the iterator of each tile */
-    protected abstract CloseableIterator<ILLUMINA_DATA> makeTileIterator(final File nextTileFile);
-
-    public PerTileParser(final IlluminaFileMap tilesToFiles) {
-        this.tileToFiles = tilesToFiles;
-        this.nextTile = tilesToFiles.firstKey();
-        this.currentTile = null;
-    }
-
-    public PerTileParser(final IlluminaFileMap tilesToFiles, final int nextTile) {
-        this.tileToFiles = tilesToFiles;
-        this.currentTile = null;
-        this.nextTile = nextTile;
-
-        if(!tilesToFiles.containsKey(nextTile)) {
-            throw new IllegalArgumentException("NextTile (" + nextTile + ") is not contained by tilesToFiles (" + StringUtil.join(",", new ArrayList<Integer>(tilesToFiles.keySet())));
-        }
-    }
-
-    /**
-     * Return the tile of the NEXT ILLUMINA_DATA object to be returned by the method next.  This might force us to advance to the
-     * next file (as it will contains the data for the next) tile/ILLUMINA_DATA object.
-     * @return tile number for the next ILLUMINA_DATA object to be returned
-     */
-    public int getTileOfNextCluster() {
-        maybeAdvance();
-        return currentTile;
-    }
-
-    private void advanceTile() {
-        if(nextTile == null){
-            throw new NoSuchElementException("No more tiles to advance!");
-        }
-
-        if(currentIterator != null) {
-            currentIterator.close();
-        }
-
-        currentIterator = makeTileIterator(tileToFiles.get(nextTile));
-        currentTile = nextTile;
-        nextTile = tileToFiles.higherKey(nextTile);
-    }
-
-    public void seekToTile(int oneBasedTileNumber) {
-        nextTile = oneBasedTileNumber;
-
-        if(!tileToFiles.containsKey(oneBasedTileNumber)) {
-            throw new PicardException("PerTileParser does not contain key(" + oneBasedTileNumber +") keys available (" + StringUtil.join(",", new ArrayList<Integer>(tileToFiles.keySet())) + ")");
-        }
-
-        if(currentIterator != null) {
-            currentIterator.close();
-        }
-        currentIterator = null;
-    }
-
-    public void maybeAdvance() {
-        if(!hasNext()) {
-            throw new NoSuchElementException();
-        }
-
-        if(currentIterator == null || !currentIterator.hasNext()) {
-            advanceTile();
-        }
-    }
-
-    public ILLUMINA_DATA next() {
-        maybeAdvance();
-
-        return currentIterator.next();
-    }
-
-    public void remove() {
-        throw new UnsupportedOperationException();
-    }
-
-    public boolean hasNext() {
-        // Skip over empty tiles
-        while ((currentIterator == null || !currentIterator.hasNext()) && nextTile != null) {
-            advanceTile();
-        }
-        return currentIterator != null && currentIterator.hasNext();
-    }
-
-    public void close() {
-        if(currentIterator != null) {
-            currentIterator.close();
-        }
-    }
-
-    public void verifyData(List<Integer> tiles, final int [] cycles) {
-        final List<Integer> mapTiles = new ArrayList<Integer>(this.tileToFiles.keySet());
-        if(!mapTiles.containsAll(tiles)) {
-            throw new PicardException("Missing tiles in PerTileParser expected(" + StringUtil.join(",", tiles) + ") but found (" + StringUtil.join(",", mapTiles) + ")");
-        }
-
-        if(!tiles.containsAll(mapTiles)) {
-            throw new PicardException("Extra tiles where found in PerTileParser  expected(" + StringUtil.join(",", tiles) + ") but found (" + StringUtil.join(",", mapTiles) + ")");
-        }
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/parser/PerTilePerCycleFileUtil.java b/src/java/net/sf/picard/illumina/parser/PerTilePerCycleFileUtil.java
deleted file mode 100644
index 8565773..0000000
--- a/src/java/net/sf/picard/illumina/parser/PerTilePerCycleFileUtil.java
+++ /dev/null
@@ -1,268 +0,0 @@
-package net.sf.picard.illumina.parser;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.illumina.parser.fakers.FileFaker;
-import net.sf.picard.illumina.parser.readers.BclReader;
-import net.sf.picard.io.IoUtil;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Set;
-import java.util.TreeSet;
-import java.util.regex.Matcher;
-import java.util.Map;
-import java.util.HashMap;
-
-public class PerTilePerCycleFileUtil extends ParameterizedFileUtil {
-
-    private final CycleIlluminaFileMap cycleFileMap;
-    private final Set<Integer> detectedCycles = new TreeSet<Integer>();
-
-    public PerTilePerCycleFileUtil(final String extension,
-                                   final File base, final FileFaker faker, final int lane) {
-        super(true, extension, base, faker, lane);
-        //sideEffect, assigned to numCycles
-        this.cycleFileMap = getPerTilePerCycleFiles();
-    }
-
-    /**
-     * For the given tiles, populate a CycleIlluminaFileMap that contains all these tiles and will iterate through
-     * all the files for these tiles in expectedBase
-     * Side Effect: Assigns numCycles
-     *
-     * @return A CycleIlluminaFileMap with the listed (or all) tiles for at least expectedCycles number of cycles(or total available
-     * cycles if expectedCycles is null)
-     */
-    protected CycleIlluminaFileMap getPerTilePerCycleFiles() {
-        final CycleIlluminaFileMap cycledMap = new CycleIlluminaFileMap();
-
-        final File laneDir = base;
-        final File[] tempCycleDirs;
-        tempCycleDirs = IoUtil.getFilesMatchingRegexp(laneDir, IlluminaFileUtil.CYCLE_SUBDIRECTORY_PATTERN);
-        if (tempCycleDirs == null || tempCycleDirs.length == 0) {
-            return cycledMap;
-        }
-
-        for (final File tempCycleDir : tempCycleDirs) {
-            detectedCycles.add(getCycleFromDir(tempCycleDir));
-        }
-
-        final Set<Integer> uniqueTiles = new HashSet<Integer>();
-
-        for (final File cycleDir : tempCycleDirs) {
-            final IlluminaFileMap fileMap = getTiledFiles(cycleDir, matchPattern);
-            uniqueTiles.addAll(fileMap.keySet());
-            cycledMap.put(getCycleFromDir(cycleDir), fileMap);
-        }
-
-        this.tiles = Collections.unmodifiableList(new ArrayList<Integer>(uniqueTiles));
-        return cycledMap;
-    }
-
-    public CycleIlluminaFileMap getFiles() {
-        return cycleFileMap;
-    }
-
-    public CycleIlluminaFileMap getFiles(final List<Integer> tiles) {
-        return cycleFileMap.keep(tiles, detectedCycles);
-    }
-
-    /**
-     * Returns a cycleIlluminaFileMap with all available tiles but limited to the cycles passed in.  Any cycles that are missing
-     * cycle files or directories will be removed from the cycle list that is kept.
-     *
-     * @param cycles Cycles that should be present in the output CycleIlluminaFileMap
-     * @return A CycleIlluminaFileMap with all available tiles but at most the cycles passed in by the cycles parameter
-     */
-    public CycleIlluminaFileMap getFiles(final int[] cycles) {
-        //Remove any cycles that were discovered to be NON-EXISTENT when this util was instantiated
-        final Set<Integer> filteredCycles = removeNonExistentCycles(cycles);
-        return cycleFileMap.keep(tiles, filteredCycles);
-    }
-
-    /**
-     * Returns a cycleIlluminaFileMap that contains only the tiles and cycles specified (and fewer if the original CycleIlluminaFileMap, created
-     * on util instantiation, doesn't contain any of these tiles/cycles).
-     *
-     * @param cycles Cycles that should be present in the output CycleIlluminaFileMap
-     * @return A CycleIlluminaFileMap with at most the tiles/cycles listed in the parameters
-     */
-    public CycleIlluminaFileMap getFiles(final List<Integer> tiles, final int[] cycles) {
-        //Remove any cycles that were discovered to be NON-EXISTENT when this util was instantiated
-        final Set<Integer> filteredCycles = removeNonExistentCycles(cycles);
-        return cycleFileMap.keep(tiles, filteredCycles);
-    }
-
-    private Set<Integer> removeNonExistentCycles(final int[] cycles) {
-
-        final TreeSet<Integer> inputCyclesSet = new TreeSet<Integer>();
-        for (final Integer inputCycle : cycles) {
-            inputCyclesSet.add(inputCycle);
-        }
-
-        inputCyclesSet.retainAll(detectedCycles);
-
-        return inputCyclesSet;
-    }
-
-    public Set<Integer> getDetectedCycles() {
-        return detectedCycles;
-    }
-
-    /**
-     * Discover all files of this type in expectedBase that match pattern and construct a list of tiles
-     * available based on these files.  The same number of tiles is expected in each cycle dir.
-     *
-     * @return A list of tile integers for all tiles available
-     */
-    public List<Integer> getTiles() {
-        return tiles;
-    }
-
-    public boolean filesAvailable() {
-        boolean filesAvailable = false;
-        for (final IlluminaFileMap fileMap : cycleFileMap.values()) {
-            if (!fileMap.isEmpty()) {
-                filesAvailable = true;
-                break;
-            }
-        }
-        return filesAvailable;
-    }
-
-    @Override
-    public List<String> verify(final List<Integer> expectedTiles, final int[] expectedCycles) {
-        final List<String> failures = new LinkedList<String>();
-        final Map<Integer, Long> tileToFileLengthMap = new HashMap<Integer, Long>();
-
-        if (!base.exists()) {
-            failures.add("Base directory(" + base.getAbsolutePath() + ") does not exist!");
-        } else {
-            final CycleIlluminaFileMap cfm = getFiles(expectedTiles, expectedCycles);
-            for (final int currentCycle : expectedCycles) {
-                final IlluminaFileMap fileMap = cfm.get(currentCycle);
-                if (fileMap != null) {
-                    for (final int tile : expectedTiles) {
-                        final File cycleFile = fileMap.get(tile);
-                        if (cycleFile != null) {
-                            if (tileToFileLengthMap.get(tile) == null) {
-                                tileToFileLengthMap.put(tile, cycleFile.length());
-                            } else if (!extension.equals(".bcl.gz") && tileToFileLengthMap.get(tile) != cycleFile.length()) {
-
-                                // TODO: The gzip bcl files might not be the same length despite having the same content,
-                                // for now we're punting on this but this should be looked into at some point
-                                failures.add("File type " + extension
-                                        + " has cycles files of different length.  Current cycle ("
-                                        + currentCycle + ") " +
-                                        "Length of first non-empty file (" + tileToFileLengthMap.get(tile)
-                                        + ") length of current cycle (" + cycleFile.length() + ")"
-                                        + " File(" + cycleFile.getAbsolutePath() + ")");
-                            }
-                        } else {
-                            failures.add("File type " + extension + " is missing a file for cycle " + currentCycle + " and tile " + tile);
-                        }
-                    }
-                } else {
-                    failures.add("Missing file for cycle " + currentCycle + " in directory " + base.getAbsolutePath()
-                            + " for file type " + extension);
-                }
-            }
-
-        }
-
-
-        return failures;
-    }
-
-    @Override
-    public List<String> fakeFiles(final List<Integer> expectedTiles, final int[] expectedCycles,
-                                  final IlluminaFileUtil.SupportedIlluminaFormat format) {
-        final List<String> failures = new LinkedList<String>();
-
-        if (!base.exists()) {
-            base.mkdirs();
-        }
-
-        final Set<Integer> missingCycleSet = new TreeSet<Integer>();
-        for (final Integer cycle : expectedCycles) {
-            missingCycleSet.add(cycle);
-        }
-
-        missingCycleSet.removeAll(detectedCycles);
-
-        for (final Integer cycle : missingCycleSet) {
-            final File cycleDirectory = new File(base, "C" + cycle + ".1");
-            if (cycleDirectory.mkdirs()) {
-                detectedCycles.add(cycle);
-            }
-        }
-
-        final CycleIlluminaFileMap cfm = getPerTilePerCycleFiles();
-        Long cycleSize = null;
-        for (final int currentCycle : expectedCycles) {
-            final IlluminaFileMap fileMap = cfm.get(currentCycle);
-
-            if (fileMap == null) {
-                for (final Integer tile : expectedTiles) {
-                    final File fileToFake = new File(base + File.separator + getFileForCycle(currentCycle, tile));
-                    try {
-                        if (cycleSize != null) {
-                            faker.fakeFile(fileToFake, cycleSize.intValue());
-                        }
-                        else{
-                            faker.fakeFile(fileToFake, 1);
-                        }
-                    } catch (final IOException e) {
-                        failures.add("Could not create fake file: " + e.getMessage());
-                    }
-                }
-            } else {
-                for (final int tile : expectedTiles) {
-                    final File cycleFile = fileMap.get(tile);
-                    if (cycleFile != null && cycleSize == null) {
-                        cycleSize = BclReader.getNumberOfClusters(cycleFile);
-                    }
-                    try {
-                        if (cycleFile == null) {
-                            final File fileToFake = new File(base + File.separator + getFileForCycle(currentCycle, tile));
-                            if (cycleSize != null) {
-                                faker.fakeFile(fileToFake, cycleSize.intValue());
-                            } else {
-                                faker.fakeFile(fileToFake, 1);
-                            }
-                        }
-                    } catch (final IOException e) {
-                        failures.add("Could not create fake file: " + e.getMessage());
-                    }
-                }
-            }
-
-        }
-
-        for (final Integer cycle : missingCycleSet) {
-            failures.add("Missing cycle directory " + cycle + " in directory " + base.getAbsolutePath()
-                    + " for file type " + extension);
-        }
-        return failures;
-    }
-
-    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) {
-        final String fileName = tempCycleDir.getName();
-
-        final Matcher matcher = IlluminaFileUtil.CYCLE_SUBDIRECTORY_PATTERN.matcher(fileName);
-        if (!matcher.matches()) {
-            throw new PicardException("Invalid cycle directory name " + tempCycleDir.getName());
-        }
-
-        return Integer.parseInt(matcher.group(1));
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/parser/PosParser.java b/src/java/net/sf/picard/illumina/parser/PosParser.java
deleted file mode 100644
index c6c98b4..0000000
--- a/src/java/net/sf/picard/illumina/parser/PosParser.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2012 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.illumina.parser;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.illumina.parser.readers.AbstractIlluminaPositionFileReader;
-import net.sf.picard.illumina.parser.readers.ClocsFileReader;
-import net.sf.picard.illumina.parser.readers.LocsFileReader;
-import net.sf.picard.illumina.parser.readers.PosFileReader;
-import net.sf.samtools.util.CloseableIterator;
-
-import java.io.File;
-import java.util.Collections;
-import java.util.Set;
-
-import static net.sf.samtools.util.CollectionUtil.makeSet;
-
-/**
- * PosParser parses multiple files formatted as one of the three file formats that contain position information
- * only (pos, locs, and clocs).  This parser takes a map from tilesToFiles and a FileType enum value indicating
- * whether or not these are POS,LOCS, or CLOCS files.  The only client classes to this class should be IlluminaDataProvider
- * and test classes.  Check out AbstractIlluminaFileReader, PosFileReader, LocsFileReader, and ClocsFileReader for
- * more information on Position related illumina files.
- */
-public class PosParser extends PerTileParser<PositionalData> {
-    private static Set<IlluminaDataType> supportedTypes = Collections.unmodifiableSet(makeSet(IlluminaDataType.Position));
-
-    /** The FileType of the files we are parsing */
-    private final IlluminaFileUtil.SupportedIlluminaFormat fileType;
-
-    public PosParser(final IlluminaFileMap tilesToFiles, final IlluminaFileUtil.SupportedIlluminaFormat fileType) {
-        super(tilesToFiles);
-        this.fileType = fileType;
-    }
-
-    public PosParser(final IlluminaFileMap tilesToFiles, final int startingTile, final IlluminaFileUtil.SupportedIlluminaFormat fileType) {
-        super(tilesToFiles, startingTile);
-        this.fileType = fileType;
-    }
-
-    /**
-     * Make an CloseableIterator<PositionalData> based on the given file and fileType specified at construction.
-     * This method wraps a reader in an iterator that converts it's output to the output format expected by
-     * IlluminaDataProvider (PositionalData).
-     * @param file A file for the current tile being parsed
-     * @return An iterator over the PositionalData in that file.
-     */
-    @Override
-    protected CloseableIterator<PositionalData> makeTileIterator(final File file) {
-
-        final AbstractIlluminaPositionFileReader fileReader;
-        switch(fileType){
-            case Pos:
-                fileReader = new PosFileReader(file);
-                break;
-
-            case Locs:
-                fileReader = new LocsFileReader(file);
-                break;
-
-            case Clocs:
-                fileReader = new ClocsFileReader(file);
-                break;
-
-            default:
-                throw new PicardException("Unrecognized pos file type " + fileType.name());
-        }
-
-        return new CloseableIterator<PositionalData>() {
-            private AbstractIlluminaPositionFileReader reader = fileReader;
-
-            public void close() {
-                reader.close();
-            }
-
-            public boolean hasNext() {
-                return reader.hasNext();
-            }
-
-            public PositionalData next() {
-                final AbstractIlluminaPositionFileReader.PositionInfo nextValue = reader.next();
-                return new PositionalData() {
-                    public int getXCoordinate() {
-                        return nextValue.xQseqCoord;
-                    }
-
-                    public int getYCoordinate() {
-                        return nextValue.yQseqCoord;
-                    }
-
-                    public int getLane() {
-                        return nextValue.lane;
-                    }
-
-                    public int getTile() {
-                        return nextValue.tile;
-                    }
-                };
-            }
-
-            public void remove() {
-                throw new UnsupportedOperationException();
-            }
-        };
-    }
-
-    @Override
-    public Set<IlluminaDataType> supportedTypes() {
-        return supportedTypes;
-    }
-
-}
diff --git a/src/java/net/sf/picard/illumina/parser/Range.java b/src/java/net/sf/picard/illumina/parser/Range.java
deleted file mode 100644
index a533fce..0000000
--- a/src/java/net/sf/picard/illumina/parser/Range.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.illumina.parser;
-
-import net.sf.picard.PicardException;
-
-/**
- * While structurally identical to CompositeIndex, this class is maintained as it makes code more readable when the two are used together (see QSeqParser)
- * @author jburke at broadinstitute.org
- */
-public class Range {
-    public final int start;
-    public final int end;
-    public final int length;
-    public Range(final int start, final int end) {
-        if(end < start) {
-            throw new PicardException("Nonsensical Range(" + start + ", " + end + ")");
-        }
-
-        this.start = start;
-        this.end   = end;
-        this.length = end - start + 1;
-    }
-
-    @Override
-    public boolean equals(final Object object) {
-        if(object == null || !(object instanceof Range)) {
-            return false;
-        }
-
-        final Range that = (Range) object;
-        return that.start == this.start && that.end == this.end;
-    }
-
-    @Override
-    public int hashCode() {
-        return (int)Math.pow(start, end);
-    }
-
-    @Override
-    public String toString() {
-        return "Range(" + start + ", " + end + ", " + length +")";
-    }
-}
\ No newline at end of file
diff --git a/src/java/net/sf/picard/illumina/parser/ReadData.java b/src/java/net/sf/picard/illumina/parser/ReadData.java
deleted file mode 100644
index e308310..0000000
--- a/src/java/net/sf/picard/illumina/parser/ReadData.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.illumina.parser;
-
-/**
- * Data for a single end of a paired-end read, a barcode read, or for the entire read if not paired end.
- *
- * @author jburke at broadinstitute.org
- */
-public class ReadData {
-    private byte[] bases;
-    private byte[] qualities;
-    private FourChannelIntensityData rawIntensities;
-    private FourChannelIntensityData noise;
-    private ReadType readType;
-
-    public ReadData() {
-    }
-
-    public ReadData(ReadType readType) {
-        this.readType = readType;
-    }
-
-    /**
-     * @return ASCII byte representation of bases.
-     */
-    public byte[] getBases() {
-        return bases;
-    }
-
-    public void setBases(final byte[] bases) {
-        this.bases = bases;
-    }
-
-    /**
-     * @return Noise values as produced by Illumina software, converted to shorts.
-     */
-    public FourChannelIntensityData getNoise() {
-        return noise;
-    }
-
-    public void setNoise(final FourChannelIntensityData noise) {
-        this.noise = noise;
-    }
-
-    /**
-     * @return Phred-binary scaled qualities.  E.g. Q20 is the byte with value==20.
-     */
-    public byte[] getQualities() {
-        return qualities;
-    }
-
-    public void setQualities(final byte[] qualities) {
-        this.qualities = qualities;
-    }
-
-    /**
-     * @return Raw intensity values as produced by Illumina software, converted to shorts.
-     */
-    public FourChannelIntensityData getRawIntensities() {
-        return rawIntensities;
-    }
-
-    public void setRawIntensities(final FourChannelIntensityData rawIntensities) {
-        this.rawIntensities = rawIntensities;
-    }
-
-    public ReadType getReadType() {
-        return readType;
-    }
-
-    public void setReadType(final ReadType readType) {
-        this.readType = readType;
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/parser/ReadDescriptor.java b/src/java/net/sf/picard/illumina/parser/ReadDescriptor.java
deleted file mode 100644
index 835ae7e..0000000
--- a/src/java/net/sf/picard/illumina/parser/ReadDescriptor.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.illumina.parser;
-
-/**
- * Represents one set of cycles in an ReadStructure (e.g. if the ReadStructure is 36TB836T then
- * 36T, 8B, and 36T are invidually represented internally as a ReadDescriptor).
- */
-public class ReadDescriptor {
-    public final int length;
-    public final ReadType type;
-
-    public ReadDescriptor(final int length, final ReadType type) {
-        this.length = length;
-        this.type = type;
-    }
-
-    @Override
-    public String toString() {
-        return this.length + this.type.name();
-    }
-
-    public boolean equals(final Object other) {
-        if(this == other) return true;
-        if(other.getClass() != this.getClass()) return false;
-
-        final ReadDescriptor that = (ReadDescriptor) other;
-        return this.length == that.length && this.type == that.type;
-    }
-
-    @Override
-    public int hashCode() {
-        return 31 * this.type.ordinal() + 379 * length;
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/parser/ReadStructure.java b/src/java/net/sf/picard/illumina/parser/ReadStructure.java
deleted file mode 100644
index 850b00a..0000000
--- a/src/java/net/sf/picard/illumina/parser/ReadStructure.java
+++ /dev/null
@@ -1,358 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.illumina.parser;
-
-import net.sf.samtools.util.CoordMath;
-
-import java.util.*;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-/**
- * Describes the intended logical output structure of clusters of an Illumina run.
- * (e.g. If the input data consists of 80 base
- * clusters and we provide a read structure of "36T8B36T" then those bases should be split into 3 reads:
- *     read one should be 36 cycles of template,
- *     read two should be 8 cycles of barcode,
- *     read three should be another 36 cycle template read.)
- *  Note: In future releases, ReadStructures will be specified by clients of IlluminaDataProvider(currently
- *  read structures are detected by IlluminaDataProviderFactory via the structure of QSeq files). When working with
- *  QSeq formats, while the individual reads need not fall on QSeq end file boundaries the total number of cycles
- *  should equal the total number of cycles found in all end files for one tile.  (e.g. if I have 80 reads and
- *  3 end files per tile, those end files should have a total of 80 reads in them regardless of how many reads
- *  appear in each individual file)
- *
- *  @author jburke at broadinstitute.org
- */
-public class ReadStructure {
-    public static final String PARAMETER_DOC =
-            "A description of the logical structure of clusters in an Illumina Run, i.e. a description of the structure IlluminaBasecallsToSam "   +
-            "assumes the  data to be in. It should consist of integer/character pairs describing the number of cycles and the type of those "       +
-            "cycles (B for Barcode, T for Template, and S for skip).  E.g. If the input data consists of 80 base clusters and we provide a "        +
-            "read structure of \"36T8B8S28T\" then, before being converted to SAM records those bases will be split into 4 reads where "            +
-            "read one consists of 36 cycles of template, read two consists of 8 cycles of barcode, read three will be an 8 base read of "           +
-            "skipped cycles and read four is another 28 cycle template read.  The read consisting of skipped cycles would NOT be included "         +
-            "in output SAM/BAM file read groups.";
-    public final List<ReadDescriptor> descriptors;
-    public final int totalCycles;
-    public final int [] readLengths;
-
-    public final Substructure barcodes;
-    public final Substructure templates;
-    public final Substructure skips;
-
-    //nonSkips include barcode and template indices in the order they appear in the descriptors list
-    public final Substructure nonSkips;
-
-    /** Characters representing valid ReadTypes */
-    private static final String ValidTypeChars;
-
-    /** ValidTypeChars except characters are separated by commas */
-    private static final String ValidTypeCharsWSep;
-
-    static {
-        String validTypes = "";
-        String vtWSep = "";
-
-        boolean written = false;
-        for(ReadType rt : ReadType.values()) {
-            if(written) {
-                vtWSep += ",";
-            }
-
-            validTypes += rt.name();
-            vtWSep += rt.name();
-        }
-
-        ValidTypeChars = validTypes;
-        ValidTypeCharsWSep = vtWSep;
-    }
-
-    private static final String ReadStructureMsg = "Read structure must be formatted as follows: " +
-            "<number of bases><type><number of bases><type>...<number of bases> where number of bases is a " +
-            "positive (NON-ZERO) integer and type is one of the following characters " + ValidTypeCharsWSep +
-            " (e.g. 76T8B68T would denote a paired-end run with a 76 base first end an 8 base barcode followed by a 68 base second end).";
-    private static final Pattern FullPattern = java.util.regex.Pattern.compile("^((\\d+[" + ValidTypeChars + "]{1}))+$");
-    private static final Pattern SubPattern = java.util.regex.Pattern.compile("(\\d+)([" + ValidTypeChars + "]{1})");
-
-    /**
-     * Copies collection into descriptors (making descriptors unmodifiable) and then calculates relevant statistics about descriptors.
-     * @param collection A collection of ReadDescriptors that describes this ReadStructure
-     */
-    public ReadStructure(final List<ReadDescriptor> collection) {
-        if(collection.size() == 0) { //If this changes, change hashcode
-            throw new IllegalArgumentException("ReadStructure does not support 0 length clusters!");
-        }
-
-        final List<Range> allRanges = new ArrayList<Range>(collection.size());
-        this.descriptors = Collections.unmodifiableList(collection);
-        int cycles = 0;
-
-        final List<Integer> nonSkipIndicesList  = new ArrayList<Integer>();
-        final List<Integer> barcodeIndicesList  = new ArrayList<Integer>();
-        final List<Integer> templateIndicesList = new ArrayList<Integer>();
-        final List<Integer> skipIndicesList     = new ArrayList<Integer>();
-        readLengths = new int[collection.size()];
-
-        int currentCycleIndex = 0;   // Current cycle in the entire read structure
-        int descIndex = 0;
-        for(final ReadDescriptor desc : descriptors) {
-            if(desc.length == 0 || desc.length < 0) {
-                throw new IllegalArgumentException("ReadStructure only supports ReadDescriptor lengths > 0, found(" + desc.length + ")");
-            }
-
-            final int endIndexOfRange = CoordMath.getEnd(currentCycleIndex, desc.length);
-            allRanges.add(new Range(currentCycleIndex, endIndexOfRange));
-            currentCycleIndex      = endIndexOfRange + 1;
-
-            readLengths[descIndex] = desc.length;
-            cycles                += desc.length;
-            switch(desc.type) {
-                case B:
-                    nonSkipIndicesList.add(descIndex);
-                    barcodeIndicesList.add(descIndex);
-                    break;
-                case T:
-                    nonSkipIndicesList.add(descIndex);
-                    templateIndicesList.add(descIndex);
-                    break;
-                case S:
-                    skipIndicesList.add(descIndex);
-                    break;
-
-                default:
-                    throw new IllegalArgumentException("Unsupported ReadType (" + desc.type + ") encountered by IlluminaRunConfiugration!");
-            }
-            ++descIndex;
-        }
-
-        this.totalCycles    = cycles;
-        this.barcodes       = new Substructure(barcodeIndicesList,  allRanges);
-        this.templates      = new Substructure(templateIndicesList, allRanges);
-        this.skips          = new Substructure(skipIndicesList,     allRanges);
-        this.nonSkips       = new Substructure(nonSkipIndicesList,  allRanges);
-    }
-
-    /**
-     * Converts readStructureString into a List<ReadDescriptor> and calls the primary constructor using this List as it's argument.
-     * @param readStructureString A string of the format <number of bases><type><number of bases><type>...<number of bases><type> describing
-     * this read structure
-     */
-    public ReadStructure(final String readStructureString) {
-        this(readStructureStringToDescriptors(readStructureString));
-    }
-
-    public int getNumDescriptors() {
-        return descriptors.size();
-    }
-
-    /**
-     * Converts this object into a String using rules complementary to the single string constructor above.
-     * @return A string of the form <number of bases><type><number of bases><type>...<number of bases><type> with one
-     * <number of bases><type> per ReadDescriptor in descriptors.
-     */
-    @Override
-    public String toString() {
-        String out = "";
-        for(final ReadDescriptor rd : descriptors) {
-            out += rd.toString();
-        }
-        return out;
-    }
-
-    /**
-     * Converts readStructureString into a List<ReadDescriptor>
-     * @param readStructure A string of the format <number of bases><type><number of bases><type>...<number of bases><type> describing
-     * a read structure
-     * @return A List<ReadDescriptor> corresponding to the input string
-     */
-    private final static List<ReadDescriptor> readStructureStringToDescriptors(final String readStructure) {
-        final Matcher fullMatcher = FullPattern.matcher(readStructure);
-        if(!fullMatcher.matches()) {
-            throw new IllegalArgumentException(readStructure + " cannot be parsed as a ReadStructure! " + ReadStructureMsg);
-        }
-
-
-        final Matcher subMatcher = SubPattern.matcher(readStructure);
-        final List<ReadDescriptor> descriptors = new ArrayList<ReadDescriptor>();
-        while(subMatcher.find()) {
-            final ReadDescriptor rd =  new ReadDescriptor(Integer.parseInt(subMatcher.group(1)), ReadType.valueOf(subMatcher.group(2)));
-            descriptors.add(rd);
-        }
-
-        return descriptors;
-    }
-
-    @Override
-    public boolean equals(final Object thatObj) {
-        if(this == thatObj) return true;
-        if(this.getClass() != thatObj.getClass()) return false;
-
-        final ReadStructure that = (ReadStructure) thatObj;
-        if(this.descriptors.size() != that.descriptors.size()) {
-            return false;
-        }
-
-        for(int i = 0; i < this.descriptors.size(); i++) {
-            if(!this.descriptors.get(i).equals(that.descriptors.get(i))) {
-                return false;
-            }
-        }
-
-        return true;
-    }
-
-    @Override
-    public int hashCode() {
-        int res = descriptors.get(0).hashCode();
-        for(int i = 1; i < descriptors.size(); i++) {
-            res *= descriptors.get(i).hashCode();
-        }
-
-        return res;
-    }
-
-    /** Represents a subset of ReadDescriptors in the containing ReadStructure, they ARE NOT necessarily contiguous
-     *  in the containing ReadStrucure but they ARE in the order they appear in the containing ReadStructure */
-    public class Substructure implements Iterable<ReadDescriptor> {
-        /** Total number of descriptors == readTypeIndices.length */
-        private final int   numDescriptors;
-
-        /** The indices into the ReadStructure for this Substructure */
-        private final int   [] descriptorIndices;
-
-        /** The length of each individual ReadDescriptor in this substructure */
-        private final int   [] descriptorLengths;
-
-        /** Ranges of cycle indexes (cycle # - 1) covered by each descriptor */
-        private final Range [] cycleIndexRanges;
-
-        /** The total number of cycles covered by this Substructure */
-        private final int   totalCycles;
-
-        /**
-         * Indices into the ReadStructure.descriptors for this specific substructure, indices
-         * must be in the order they appear in the descriptors list (but the indices do NOT have to be continuous)
-         * @param descriptorIndices  A list of indices into ReadStructure.descriptors of the enclosing ReadStructure
-         * @param allRanges A list of ranges for all reads (not just those in this substructure) in the same order as ReadStructure.descriptors
-         */
-        public Substructure(final List<Integer> descriptorIndices, final List<Range> allRanges) {
-            this.numDescriptors    = descriptorIndices.size();
-
-            this.descriptorIndices = new int[numDescriptors];
-            this.descriptorLengths = new int[numDescriptors];
-            for(int i = 0; i < descriptorIndices.size(); i++) {
-                this.descriptorIndices[i] = descriptorIndices.get(i);
-                this.descriptorLengths[i] = descriptors.get(this.descriptorIndices[i]).length;
-            }
-
-            this.cycleIndexRanges  = new Range[numDescriptors];
-            for(int i = 0; i < numDescriptors; i++) {
-                this.cycleIndexRanges[i] = allRanges.get(this.descriptorIndices[i]);
-            }
-
-            int totalLength = 0;
-            for(final int length : descriptorLengths) {
-                totalLength += length;
-            }
-            totalCycles      = totalLength;
-        }
-
-        public ReadDescriptor get(final int index) {
-            return descriptors.get(descriptorIndices[index]);
-        }
-
-        public boolean isEmpty() {
-            return numDescriptors == 0;
-        }
-
-        public int length() {
-            return numDescriptors;
-        }
-
-        public int getTotalCycles() {
-            return totalCycles;
-        }
-
-        public int [] getIndices() {
-            return descriptorIndices;
-        }
-
-        public int [] getDescriptorLengths() {
-            return descriptorLengths;
-        }
-
-        public Range [] getCycleIndexRanges() {
-            return cycleIndexRanges;
-        }
-        public Iterator<ReadDescriptor> iterator() {
-            return new IndexedIterator(descriptorIndices);
-        }
-
-        public int [] getCycles() {
-            int [] cycles = new int[totalCycles];
-            int cycleIndex = 0;
-            for(final Range range : cycleIndexRanges) {
-                for(int i = range.start; i <= range.end; i++) {
-                    cycles[cycleIndex++] = i+1;
-                }
-            }
-            return cycles;
-        }
-
-        /** Create a ReadStructure from this substructure composed of only the descriptors contained in this substructure, Any
-         * ReadDescriptors not in this substructure are treated as if they don't exist (e.g. if you have a readStructure
-         * (36T8S8B36T) and this substructure consists of all the non-skipped reads than toReadStructure would return
-         * (36T8B36T) in ReadStructure form*/
-        public ReadStructure toReadStructure() {
-            final List<ReadDescriptor> descriptors = new ArrayList<ReadDescriptor>(numDescriptors);
-            for(final ReadDescriptor rd : this) {
-                descriptors.add(rd);
-            }
-            return new ReadStructure(descriptors);
-        }
-    }
-
-    /** An iterator over a Substructure's ReadDescriptors */
-    private class IndexedIterator implements Iterator<ReadDescriptor> {
-        private int index;
-        private int [] indices;
-        public IndexedIterator(final int [] indices) {
-            this.indices = indices;
-            this.index = 0;
-        }
-
-        public boolean hasNext() {
-            return index < indices.length;
-        }
-
-        public ReadDescriptor next() {
-            return descriptors.get(indices[index++]);
-        }
-
-        public void remove() {
-            throw new UnsupportedOperationException();
-        }
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/parser/ReadType.java b/src/java/net/sf/picard/illumina/parser/ReadType.java
deleted file mode 100644
index dfc27c6..0000000
--- a/src/java/net/sf/picard/illumina/parser/ReadType.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.illumina.parser;
-
-/**
-* A read type describes a stretch of cycles in an ReadStructure
-* (e.g. Assume we have a paired end/barcoded run with the 76 template cycles followed by 8 barcode cycles followed by
-* another 76 template reads, the run would be represented by the ReadStructure 76T8B76T)
-* Note: Currently SKIP is unused by IlluminaBasecallsToSam, ExtractIlluminaBarcodes, and IlluminaDataProvider
-**/
-public enum ReadType {
-    T, B, S;
-
-    public static final ReadType Template = T;
-    public static final ReadType Barcode  = B;
-    public static final ReadType Skip     = S;
-}
diff --git a/src/java/net/sf/picard/illumina/parser/Tile.java b/src/java/net/sf/picard/illumina/parser/Tile.java
deleted file mode 100644
index 6aff9ad..0000000
--- a/src/java/net/sf/picard/illumina/parser/Tile.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2014 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.illumina.parser;
-
-import net.sf.samtools.util.CollectionUtil;
-
-import java.util.*;
-
-/** Represents a tile from TileMetricsOut.bin. Stores information on location (lane & tile #, density, number of clusters and the
- * phasing/prephasing values associated with this tile
- *
- * @author jgentry
- */
-public class Tile {
-    private final int lane, tile;
-    private final float density, clusters;
-
-    private final Map<TileTemplateRead, Float> phasingMap;
-    private final Map<TileTemplateRead, Float> prePhasingMap;
-
-    /**
-     * @param tilePhasingValues Either one or two TilePhasingValues, corresponding to the FIRST and potentially SECOND template reads
-     */
-    public Tile(final int lane, final int tile, final float density, final float clusters, final TilePhasingValue... tilePhasingValues) {
-        this.lane = lane;
-        this.tile = tile;
-        this.density = density;
-        this.clusters = clusters;
-
-        final Collection<TilePhasingValue> phasingValues = ensureSoleTilePhasingValuesPerRead(Arrays.asList(tilePhasingValues));
-
-        final Map<TileTemplateRead, Float> phasingMap = new HashMap<TileTemplateRead, Float>();
-        final Map<TileTemplateRead, Float> prePhasingMap = new HashMap<TileTemplateRead, Float>();
-
-        /** For each of the TileReads, assign their phasing & prephasing values to the respective maps, which we will
-         * use later to calculate the medians
-         */
-        for (final TilePhasingValue phasingValue : phasingValues) {
-            phasingMap.put(phasingValue.getTileTemplateRead(), phasingValue.getPhasingValue());
-            prePhasingMap.put(phasingValue.getTileTemplateRead(), phasingValue.getPrePhasingValue());
-        }
-
-        this.phasingMap = Collections.unmodifiableMap(phasingMap);
-        this.prePhasingMap = Collections.unmodifiableMap(prePhasingMap);
-    }
-
-    /** Returns the number of this tile's parent lane. */
-    public int getLaneNumber() {
-        return lane;
-    }
-
-    /** Returns the number/name of this tile. */
-    public int getTileNumber() {
-        return tile;
-    }
-
-    /** Returns the cluster density of this tile, in units of [cluster/mm^2]. */
-    public float getClusterDensity() {
-        return density;
-    }
-
-    /** Returns the number of on this tile. */
-    public float getClusterCount() {
-        return clusters;
-    }
-
-    public Map<TileTemplateRead, Float> getPhasingMap() {
-        return phasingMap;
-    }
-
-    public Map<TileTemplateRead, Float> getPrePhasingMap() {
-        return prePhasingMap;
-    }
-
-    /** For any given TileTemplateRead, we want to make sure that there is only a single TilePhasingValue */
-    private static Collection<TilePhasingValue> ensureSoleTilePhasingValuesPerRead(final Collection<TilePhasingValue> tilePhasingValues) {
-        final Map<TileTemplateRead, Collection<TilePhasingValue>> partitionedMap = CollectionUtil.partition(tilePhasingValues,
-                new CollectionUtil.Partitioner<TilePhasingValue, TileTemplateRead>() {
-                    @Override
-                    public TileTemplateRead getPartition(final TilePhasingValue phasingValue) {
-                        return phasingValue.getTileTemplateRead();
-                    }
-                });
-
-        final Collection<TilePhasingValue> newTilePhasingValues = new LinkedList<TilePhasingValue>();
-        for (final TileTemplateRead read : partitionedMap.keySet()) {
-            newTilePhasingValues.add(CollectionUtil.getSoleElement(partitionedMap.get(read)));
-        }
-
-        return newTilePhasingValues;
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/parser/TileIndex.java b/src/java/net/sf/picard/illumina/parser/TileIndex.java
deleted file mode 100644
index 57dabb8..0000000
--- a/src/java/net/sf/picard/illumina/parser/TileIndex.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2014 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.illumina.parser;
-
-import net.sf.picard.PicardException;
-import net.sf.samtools.Defaults;
-import net.sf.samtools.util.CloserUtil;
-import net.sf.samtools.util.IOUtil;
-
-import java.io.*;
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
-import java.util.*;
-
-/**
- * Load a file containing 8-byte records like this:
- * tile number: 4-byte int
- * number of clusters in tile: 4-byte int
- * Number of records to read is determined by reaching EOF.
- */
-public class TileIndex implements Iterable<TileIndex.TileIndexRecord> {
-    private final File tileIndexFile;
-    private final List<TileIndexRecord> tiles = new ArrayList<TileIndexRecord>();
-
-    TileIndex(final File tileIndexFile) {
-        try {
-            this.tileIndexFile = tileIndexFile;
-            final InputStream is = IOUtil.maybeBufferInputStream(new FileInputStream(tileIndexFile));
-            final ByteBuffer buf = ByteBuffer.allocate(8);
-            buf.order(ByteOrder.LITTLE_ENDIAN);
-            int absoluteRecordIndex = 0;
-            int numTiles = 0;
-            while (readTileIndexRecord(buf.array(), buf.capacity(), is)) {
-                buf.rewind();
-                buf.limit(buf.capacity());
-                final int tile = buf.getInt();
-                // Note: not handling unsigned ints > 2^31, but could if one of these exceptions is thrown.
-                if (tile < 0) throw new PicardException("Tile number too large in " + tileIndexFile.getAbsolutePath());
-                final int numClusters = buf.getInt();
-                if (numClusters < 0) throw new PicardException("Cluster size too large in " + tileIndexFile.getAbsolutePath());
-                tiles.add(new TileIndexRecord(tile, numClusters, absoluteRecordIndex, numTiles++));
-                absoluteRecordIndex += numClusters;
-            }
-            CloserUtil.close(is);
-        } catch (final IOException e) {
-            throw new PicardException("Problem reading " + tileIndexFile.getAbsolutePath(), e);
-        }
-    }
-
-    public File getFile() {
-        return tileIndexFile;
-    }
-
-    public int getNumTiles() {
-        return tiles.size();
-    }
-
-    private boolean readTileIndexRecord(final byte[] buf, final int numBytes, final InputStream is) throws IOException {
-        int totalBytesRead = 0;
-        while (totalBytesRead < numBytes) {
-            final int bytesRead = is.read(buf, totalBytesRead, numBytes - totalBytesRead);
-            if (bytesRead == -1) {
-                if (totalBytesRead != 0) {
-                    throw new PicardException(tileIndexFile.getAbsolutePath() + " has incomplete last block");
-                } else return false;
-            }
-            totalBytesRead += bytesRead;
-        }
-        return true;
-    }
-
-    public List<Integer> getTiles() {
-        final List<Integer> ret = new ArrayList<Integer>(tiles.size());
-        for (final TileIndexRecord rec : tiles) ret.add(rec.tile);
-        return ret;
-    }
-
-    public List<String> verify(final List<Integer> expectedTiles) {
-        final Set<Integer> tileSet = new HashSet<Integer>(tiles.size());
-        for (final TileIndexRecord rec : tiles) tileSet.add(rec.tile);
-        final List<String> failures = new LinkedList<String>();
-        for (final int expectedTile : expectedTiles) {
-            if (!tileSet.contains(expectedTile)) {
-                failures.add("Tile " + expectedTile + " not found in " + tileIndexFile.getAbsolutePath());
-            }
-        }
-        return failures;
-    }
-
-    @Override
-    public Iterator<TileIndexRecord> iterator() {
-        return tiles.iterator();
-    }
-
-    /**
-     * @throws java.util.NoSuchElementException if tile is not found
-     */
-    public TileIndexRecord findTile(final int tileNumber) {
-        for (final TileIndexRecord rec : this) {
-            if (rec.tile == tileNumber) return rec;
-            if (rec.tile > tileNumber) {
-                break;
-            }
-        }
-        throw new NoSuchElementException(String.format("Tile %d not found in %s", tileNumber, tileIndexFile));
-    }
-
-    public static class TileIndexRecord {
-        /**
-         * Number of the tile, e.g. 11101.  These don't necessarily start at 0, and there may be gaps.
-         */
-        final int tile;
-
-        final int numClustersInTile;
-
-        public int getNumClustersInTile() {
-            return numClustersInTile;
-        }
-
-        public int getZeroBasedTileNumber() {
-            return zeroBasedTileNumber;
-        }
-
-        /**
-         * I.e. the sum of numClustersInTile for all tiles preceding this one.
-         */
-        final int indexOfFirstClusterInTile;
-
-        /**
-         * A contiguous numbering of tiles starting at 0.
-         */
-        final int zeroBasedTileNumber;
-
-        private TileIndexRecord(final int tile, final int numClustersInTile, final int indexOfFirstClusterInTile, final int zeroBasedTileNumber) {
-            this.tile = tile;
-            this.numClustersInTile = numClustersInTile;
-            this.indexOfFirstClusterInTile = indexOfFirstClusterInTile;
-            this.zeroBasedTileNumber = zeroBasedTileNumber;
-        }
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/parser/TileMetricsUtil.java b/src/java/net/sf/picard/illumina/parser/TileMetricsUtil.java
deleted file mode 100644
index 6e0bad6..0000000
--- a/src/java/net/sf/picard/illumina/parser/TileMetricsUtil.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2014 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.illumina.parser;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.illumina.parser.readers.TileMetricsOutReader;
-import net.sf.picard.illumina.parser.readers.TileMetricsOutReader.IlluminaTileMetrics;
-import net.sf.picard.util.IterableAdapter;
-import net.sf.samtools.util.CollectionUtil;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.util.*;
-
-/**
- * Utility for reading the tile data from an Illumina run directory's TileMetricsOut.bin file
- *
- * @author mccowan
- */
-public class TileMetricsUtil {
-    /** 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. */
-    public static String TILE_METRICS_OUT_FILE_NAME = "TileMetricsOut.bin";
-
-    /** 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 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)
-     */
-    public static Collection<Tile> parseTileMetrics(final File tileMetricsOutFile, final ReadStructure readStructure) throws FileNotFoundException {
-        // Get the tile metrics lines from TileMetricsOut, keeping only the last value for any Lane/Tile/Code combination
-        final Collection<IlluminaTileMetrics> tileMetrics = determineLastValueForLaneTileMetricsCode(new TileMetricsOutReader
-                (tileMetricsOutFile));
-
-        // Collect the tiles by lane & tile, and then collect the metrics by lane
-        final Map<String, Collection<IlluminaTileMetrics>> locationToMetricsMap = partitionTileMetricsByLocation(tileMetrics);
-        final Collection<Tile> tiles = new LinkedList<Tile>();
-        for (final Map.Entry<String, Collection<IlluminaTileMetrics>> entry : locationToMetricsMap.entrySet()) {
-            final Collection<IlluminaTileMetrics> tileRecords = entry.getValue();
-
-            // Get a mapping from metric code number to the corresponding IlluminaTileMetrics
-            final Map<Integer, Collection<IlluminaTileMetrics>> codeMetricsMap = partitionTileMetricsByCode(tileRecords);
-
-            final Set<Integer> observedCodes = codeMetricsMap.keySet();
-            if (!(observedCodes.contains(IlluminaMetricsCode.DENSITY_ID.getMetricsCode()) && observedCodes.contains(IlluminaMetricsCode.CLUSTER_ID.getMetricsCode())))
-                throw new PicardException(String.format("Expected to find cluster and density record codes (%s and %s) in records read for tile location %s (lane:tile), but found only %s.",
-                        IlluminaMetricsCode.CLUSTER_ID.getMetricsCode(), IlluminaMetricsCode.DENSITY_ID.getMetricsCode(), entry.getKey(), observedCodes));
-
-            final IlluminaTileMetrics densityRecord = CollectionUtil.getSoleElement(codeMetricsMap.get(IlluminaMetricsCode.DENSITY_ID.getMetricsCode()));
-            final IlluminaTileMetrics clusterRecord = CollectionUtil.getSoleElement(codeMetricsMap.get(IlluminaMetricsCode.CLUSTER_ID.getMetricsCode()));
-
-            // 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<TilePhasingValue> tilePhasingValues = getTilePhasingValues(codeMetricsMap, readStructure);
-
-            tiles.add(new Tile(densityRecord.getLaneNumber(), densityRecord.getTileNumber(), densityRecord.getMetricValue(), clusterRecord.getMetricValue(),
-                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<TilePhasingValue> getTilePhasingValues(final Map<Integer, Collection<IlluminaTileMetrics>> codeMetricsMap, final ReadStructure readStructure) {
-        boolean isFirstRead = true;
-        final Collection<TilePhasingValue> tilePhasingValues = new ArrayList<TilePhasingValue>();
-        for (int descriptorIndex = 0; descriptorIndex < readStructure.descriptors.size(); descriptorIndex++) {
-            if (readStructure.descriptors.get(descriptorIndex).type == ReadType.Template) {
-                final TileTemplateRead tileTemplateRead = isFirstRead ? TileTemplateRead.FIRST : TileTemplateRead.SECOND;
-                // For both phasing & prephasing, pull out the value and create a TilePhasingValue for further processing
-                final int phasingCode = IlluminaMetricsCode.getPhasingCode(descriptorIndex, IlluminaMetricsCode.PHASING_BASE);
-                final int prePhasingCode = IlluminaMetricsCode.getPhasingCode(descriptorIndex, IlluminaMetricsCode.PREPHASING_BASE);
-
-                if (!(codeMetricsMap.containsKey(phasingCode) && codeMetricsMap.containsKey(prePhasingCode))) {
-                    throw new PicardException("Don't have both phasing and prephasing values for tile");
-                }
-
-                tilePhasingValues.add(new TilePhasingValue(tileTemplateRead,
-                        CollectionUtil.getSoleElement(codeMetricsMap.get(phasingCode)).getMetricValue(),
-                        CollectionUtil.getSoleElement(codeMetricsMap.get(prePhasingCode)).getMetricValue()));
-                isFirstRead = false;
-            }
-        }
-
-        return tilePhasingValues;
-    }
-
-    /** According to Illumina, for every lane/tile/code combination they will only use the last value. Filter out the previous values */
-    private static Collection<IlluminaTileMetrics> determineLastValueForLaneTileMetricsCode(final Iterator<IlluminaTileMetrics>
-                                                                                                    tileMetricsIterator) {
-        final Map<TileMetricsOutReader.IlluminaLaneTileCode, IlluminaTileMetrics> filteredTileMetrics = new HashMap<TileMetricsOutReader.IlluminaLaneTileCode, IlluminaTileMetrics>();
-        for (final IlluminaTileMetrics illuminaTileMetrics : new IterableAdapter<IlluminaTileMetrics>(tileMetricsIterator)) {
-            filteredTileMetrics.put(illuminaTileMetrics.getLaneTileCode(), illuminaTileMetrics);
-        }
-
-        return filteredTileMetrics.values();
-    }
-
-    private static String renderMetricLocationKey(final IlluminaTileMetrics metric) {
-        return String.format("%s:%s", metric.getLaneNumber(), metric.getTileNumber());
-    }
-
-    // Wrapper around CollectionUtil.Partitioner, purely to de-bulk the actual methods
-    private static Map<Integer, Collection<IlluminaTileMetrics>> partitionTileMetricsByCode(final Collection<IlluminaTileMetrics> tileMetrics) {
-        return CollectionUtil.partition(tileMetrics, new CollectionUtil.Partitioner<IlluminaTileMetrics, Integer>() {
-            @Override
-            public Integer getPartition(final IlluminaTileMetrics metric) {
-                return metric.getMetricCode();
-            }
-        });
-    }
-
-    // Wrapper around CollectionUtil.Partitioner, purely to de-bulk the actual methods
-    private static Map<String, Collection<IlluminaTileMetrics>> partitionTileMetricsByLocation(final Collection<IlluminaTileMetrics> tileMetrics) {
-        return CollectionUtil.partition(tileMetrics, new CollectionUtil.Partitioner<IlluminaTileMetrics, String>() {
-            @Override
-            public String getPartition(final IlluminaTileMetrics metric) {
-                return renderMetricLocationKey(metric);
-            }
-        });
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/parser/TilePhasingValue.java b/src/java/net/sf/picard/illumina/parser/TilePhasingValue.java
deleted file mode 100644
index c94379d..0000000
--- a/src/java/net/sf/picard/illumina/parser/TilePhasingValue.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package net.sf.picard.illumina.parser;
-
-/**
- * Captures information about a phasing value - Which read it corresponds to, which phasing type and a median value
- *
- *  @author jgentry
- */
-public class TilePhasingValue {
-    private final TileTemplateRead tileTemplateRead;
-    private final float phasingValue;
-    private final float prePhasingValue;
-
-    public TilePhasingValue(final TileTemplateRead tileTemplateRead, final float phasingValue, final float prePhasingValue) {
-        this.tileTemplateRead = tileTemplateRead;
-        this.phasingValue = phasingValue;
-        this.prePhasingValue = prePhasingValue;
-    }
-
-    public TileTemplateRead getTileTemplateRead() {
-        return tileTemplateRead;
-    }
-
-    public float getPhasingValue() {
-        return phasingValue;
-    }
-
-    public float getPrePhasingValue() {
-        return prePhasingValue;
-    }
-}
\ No newline at end of file
diff --git a/src/java/net/sf/picard/illumina/parser/TileTemplateRead.java b/src/java/net/sf/picard/illumina/parser/TileTemplateRead.java
deleted file mode 100644
index ef60a66..0000000
--- a/src/java/net/sf/picard/illumina/parser/TileTemplateRead.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2014 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.illumina.parser;
-
-/** Defines the first or second template read for a tile
- *  @author jgentry
- */
-public enum TileTemplateRead {
-    FIRST, SECOND
-}
diff --git a/src/java/net/sf/picard/illumina/parser/fakers/BarcodeFileFaker.java b/src/java/net/sf/picard/illumina/parser/fakers/BarcodeFileFaker.java
deleted file mode 100644
index b199963..0000000
--- a/src/java/net/sf/picard/illumina/parser/fakers/BarcodeFileFaker.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package net.sf.picard.illumina.parser.fakers;
-
-import java.nio.ByteBuffer;
-
-/**
- * Created by jcarey on 3/13/14.
- */
-public class BarcodeFileFaker extends FileFaker {
-    private final String barcodeString = "1\tn\t \n";
-
-    @Override
-    protected void fakeFile(final ByteBuffer buffer) {
-        buffer.put(barcodeString.getBytes());
-    }
-
-    @Override
-    protected boolean addLeadingZeros() {
-        return false;
-    }
-
-    @Override
-    protected int bufferSize() {
-        return barcodeString.getBytes().length;
-    }
-}
\ No newline at end of file
diff --git a/src/java/net/sf/picard/illumina/parser/fakers/BciFileFaker.java b/src/java/net/sf/picard/illumina/parser/fakers/BciFileFaker.java
deleted file mode 100644
index b7af331..0000000
--- a/src/java/net/sf/picard/illumina/parser/fakers/BciFileFaker.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package net.sf.picard.illumina.parser.fakers;
-
-import net.sf.samtools.util.CloserUtil;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
-import java.nio.channels.FileChannel;
-import java.util.List;
-
-/**
- * Created by jcarey on 3/14/14.
- */
-public class BciFileFaker extends FileFaker {
-
-    @Override
-    protected void fakeFile(final ByteBuffer buffer) {
-        for (final Integer tile : tiles) {
-            buffer.putInt(tile);
-            buffer.putInt(1);
-        }
-    }
-
-    @Override
-    protected boolean addLeadingZeros() {
-        return false;
-    }
-
-    @Override
-    protected int bufferSize() {
-        return 8 * tiles.size();
-    }
-
-    public void fakeBciFile(final File bci, final List<Integer> expectedTiles) throws IOException {
-        tiles = expectedTiles;
-        final FileOutputStream fileOutputStream = new FileOutputStream(bci);
-        final FileChannel channel = fileOutputStream.getChannel();
-        final ByteBuffer buffer = ByteBuffer.allocate(8 * expectedTiles.size());
-        buffer.order(ByteOrder.LITTLE_ENDIAN);
-
-        fakeFile(buffer);
-        buffer.flip();
-
-        channel.write(buffer);
-        channel.force(true);
-
-        CloserUtil.close(channel);
-        CloserUtil.close(fileOutputStream);
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/parser/fakers/BclFileFaker.java b/src/java/net/sf/picard/illumina/parser/fakers/BclFileFaker.java
deleted file mode 100644
index 527ddf6..0000000
--- a/src/java/net/sf/picard/illumina/parser/fakers/BclFileFaker.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package net.sf.picard.illumina.parser.fakers;
-
-import java.nio.ByteBuffer;
-
-public class BclFileFaker extends FileFaker {
-
-    @Override
-    public void fakeFile(final ByteBuffer buffer) {
-
-        // Write the number of elements to the header. The state variable "size" contains
-        // the number of elements; we've allocated "size" plus the size of the header
-        // (four bytes) to the buffer.
-        buffer.putInt(size);
-
-        while (size > 0) {
-            // Fill the file with no calls
-            buffer.put((byte) 0);
-            size--;
-        }
-    }
-
-    @Override
-    protected boolean addLeadingZeros() {
-        return false;
-    }
-
-    protected int bufferSize() {
-        return size + 4;
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/parser/fakers/ClocsFileFaker.java b/src/java/net/sf/picard/illumina/parser/fakers/ClocsFileFaker.java
deleted file mode 100644
index 7d129cf..0000000
--- a/src/java/net/sf/picard/illumina/parser/fakers/ClocsFileFaker.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package net.sf.picard.illumina.parser.fakers;
-
-import java.nio.ByteBuffer;
-
-public class ClocsFileFaker extends FileFaker {
-
-    @Override
-    protected void fakeFile(final ByteBuffer buffer) {
-        buffer.put((byte) 1);
-        buffer.putInt(1);
-        buffer.put((byte) (0xff & 1));
-        buffer.putFloat((byte) (0xff & 5));
-        buffer.putFloat((byte) (0xff & 5));
-    }
-
-    @Override
-    protected boolean addLeadingZeros() {
-        return false;
-    }
-
-    @Override
-    protected int bufferSize() {
-        return (Integer.SIZE * 2) + (Float.SIZE * 3);
-    }
-}
\ No newline at end of file
diff --git a/src/java/net/sf/picard/illumina/parser/fakers/FileFaker.java b/src/java/net/sf/picard/illumina/parser/fakers/FileFaker.java
deleted file mode 100644
index 77e664d..0000000
--- a/src/java/net/sf/picard/illumina/parser/fakers/FileFaker.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package net.sf.picard.illumina.parser.fakers;
-
-import net.sf.picard.illumina.parser.readers.BclReader;
-import net.sf.samtools.util.BlockCompressedOutputStream;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
-import java.nio.channels.Channels;
-import java.nio.channels.WritableByteChannel;
-import java.util.Collections;
-import java.util.List;
-import java.util.zip.GZIPOutputStream;
-
-public abstract class FileFaker {
-
-    int size;
-    List<Integer> tiles;
-
-    protected abstract void fakeFile(ByteBuffer buffer);
-
-    protected abstract boolean addLeadingZeros();
-
-    protected abstract int bufferSize();
-
-    public void fakeFile(final File base, final int tile, final int lane, final String extension) throws IOException {
-        fakeFile(base, Collections.singletonList(tile), lane, extension);
-    }
-
-    public void fakeFile(final File base, final List<Integer> expectedTiles, final int lane, final String extension)
-            throws IOException {
-        if (base.exists() || base.mkdirs()) {
-            this.tiles = expectedTiles;
-            final File fakeFile;
-            if (expectedTiles.size() == 1) {
-                String longTileName = String.valueOf(tiles.get(0));
-                if (addLeadingZeros()) {
-                    while (longTileName.length() < 4) {
-                        longTileName = "0" + longTileName;
-                    }
-                }
-                fakeFile = new File(base, String.format("s_%d_%s%s", lane, longTileName, extension));
-            } else {
-                fakeFile = new File(base, String.format("s_%s%s", lane, extension));
-            }
-
-            fakeFile(fakeFile, bufferSize());
-        }
-
-    }
-
-    public void fakeFile(final File cycleFile, Integer size) throws IOException {
-        if (size == null) {
-            size = 1;
-        }
-        this.size = size;
-
-        final OutputStream outputStream;
-        if (BclReader.isGzipped(cycleFile)) outputStream = new GZIPOutputStream(new FileOutputStream(cycleFile));
-        else if (BclReader.isBlockGzipped(cycleFile)) outputStream = new BlockCompressedOutputStream(cycleFile);
-        else outputStream = new FileOutputStream(cycleFile);
-
-        final WritableByteChannel channel = Channels.newChannel(outputStream);
-        final ByteBuffer buffer = ByteBuffer.allocate(this.bufferSize());
-        buffer.order(ByteOrder.LITTLE_ENDIAN);
-
-        fakeFile(buffer);
-
-        buffer.flip();
-
-        channel.write(buffer);
-
-        channel.close();
-        outputStream.close();
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/parser/fakers/FilterFileFaker.java b/src/java/net/sf/picard/illumina/parser/fakers/FilterFileFaker.java
deleted file mode 100644
index dd5be22..0000000
--- a/src/java/net/sf/picard/illumina/parser/fakers/FilterFileFaker.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package net.sf.picard.illumina.parser.fakers;
-
-import java.nio.ByteBuffer;
-
-/**
- * Created by jcarey on 3/13/14.
- */
-public class FilterFileFaker extends FileFaker {
-
-    @Override
-    protected void fakeFile(final ByteBuffer buffer) {
-        buffer.putInt(0);
-        buffer.putInt(3);
-        buffer.putInt(1);
-    }
-
-    @Override
-    protected boolean addLeadingZeros() {
-        return true;
-    }
-
-    @Override
-    protected int bufferSize() {
-        return Integer.SIZE * 3;
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/parser/fakers/LocsFileFaker.java b/src/java/net/sf/picard/illumina/parser/fakers/LocsFileFaker.java
deleted file mode 100644
index 53591f7..0000000
--- a/src/java/net/sf/picard/illumina/parser/fakers/LocsFileFaker.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package net.sf.picard.illumina.parser.fakers;
-
-import java.nio.ByteBuffer;
-
-/**
- * Created by jcarey on 3/13/14.
- */
-public class LocsFileFaker extends FileFaker {
-
-    @Override
-    protected void fakeFile(final ByteBuffer buffer) {
-        buffer.putInt(1);
-        buffer.putFloat(1.0f);
-        buffer.putInt(1);
-        buffer.putFloat(5.0f);
-        buffer.putFloat(5.0f);
-    }
-
-    @Override
-    protected boolean addLeadingZeros() {
-        return false;
-    }
-
-    @Override
-    protected int bufferSize() {
-        return (Integer.SIZE * 2) + (Float.SIZE * 3);
-    }
-}
\ No newline at end of file
diff --git a/src/java/net/sf/picard/illumina/parser/fakers/MultiTileBclFileFaker.java b/src/java/net/sf/picard/illumina/parser/fakers/MultiTileBclFileFaker.java
deleted file mode 100644
index 56e4c59..0000000
--- a/src/java/net/sf/picard/illumina/parser/fakers/MultiTileBclFileFaker.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package net.sf.picard.illumina.parser.fakers;
-
-import java.nio.ByteBuffer;
-
-/**
- * Created by jcarey on 3/13/14.
- */
-public class MultiTileBclFileFaker extends FileFaker {
-
-    @Override
-    protected void fakeFile(final ByteBuffer buffer) {
-        buffer.putInt(1);
-        for (final Integer tile : tiles) {
-            long perTileSize = size;
-            while (perTileSize > 0) {
-                //fill the file with no calls
-                buffer.put((byte) 0);
-                perTileSize--;
-            }
-        }
-    }
-
-    @Override
-    protected boolean addLeadingZeros() {
-        return false;
-    }
-
-    @Override
-    protected int bufferSize() {
-        return ((size - Integer.SIZE) * tiles.size()) + Integer.SIZE;
-    }
-}
\ No newline at end of file
diff --git a/src/java/net/sf/picard/illumina/parser/fakers/MultiTileLocsFileFaker.java b/src/java/net/sf/picard/illumina/parser/fakers/MultiTileLocsFileFaker.java
deleted file mode 100644
index 13fd569..0000000
--- a/src/java/net/sf/picard/illumina/parser/fakers/MultiTileLocsFileFaker.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package net.sf.picard.illumina.parser.fakers;
-
-import java.nio.ByteBuffer;
-
-/**
- * Created by jcarey on 3/13/14.
- */
-public class MultiTileLocsFileFaker extends FileFaker {
-
-    @Override
-    protected void fakeFile(final ByteBuffer buffer) {
-        buffer.putInt(1);
-        buffer.putFloat(1.0f);
-        buffer.putInt(1);
-        for (int count = 0; count < tiles.size(); count++) {
-            buffer.putFloat(5.0f + (count * 0.5f));
-            buffer.putFloat(5.0f + (count * 0.5f));
-        }
-    }
-
-    @Override
-    protected boolean addLeadingZeros() {
-        return false;
-    }
-
-    @Override
-    protected int bufferSize() {
-        return (Integer.SIZE * 2) + (Float.SIZE * tiles.size()) + Float.SIZE;
-    }
-}
\ No newline at end of file
diff --git a/src/java/net/sf/picard/illumina/parser/fakers/PosFileFaker.java b/src/java/net/sf/picard/illumina/parser/fakers/PosFileFaker.java
deleted file mode 100644
index a11ed22..0000000
--- a/src/java/net/sf/picard/illumina/parser/fakers/PosFileFaker.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package net.sf.picard.illumina.parser.fakers;
-
-import java.nio.ByteBuffer;
-
-/**
- * Created by jcarey on 3/13/14.
- */
-public class PosFileFaker extends FileFaker {
-    private final String posFileString = "102.0\t303.3\n";
-
-    @Override
-    protected void fakeFile(final ByteBuffer buffer) {
-        buffer.put(posFileString.getBytes());
-    }
-
-    @Override
-    protected boolean addLeadingZeros() {
-        return false;
-    }
-
-    @Override
-    protected int bufferSize() {
-        return posFileString.getBytes().length;
-    }
-}
\ No newline at end of file
diff --git a/src/java/net/sf/picard/illumina/parser/readers/AbstractIlluminaPositionFileReader.java b/src/java/net/sf/picard/illumina/parser/readers/AbstractIlluminaPositionFileReader.java
deleted file mode 100644
index 0473a40..0000000
--- a/src/java/net/sf/picard/illumina/parser/readers/AbstractIlluminaPositionFileReader.java
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2012 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.illumina.parser.readers;
-
-import net.sf.picard.PicardException;
-import net.sf.samtools.util.CloseableIterator;
-
-import java.io.File;
-import java.util.NoSuchElementException;
-import java.util.regex.Matcher;
-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.
- */
-
-public abstract class AbstractIlluminaPositionFileReader implements CloseableIterator<AbstractIlluminaPositionFileReader.PositionInfo> {
-    public static final float MAX_POS = 9999999.99f;
-
-    /**
-     * At least one NextSeq run produced a small negative value for y coordinate (-5), so allow small
-     * negative values and see what happens.
-     */
-    public static final float MIN_POS = -10.0f;
-
-    public class PositionInfo {
-        /** 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*/
-        public final float yPos;
-
-        /** The lane, which is determined from the file name*/
-        public final int lane;
-
-        /** 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)*/
-        public final int xQseqCoord;
-
-        /** 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) {
-
-                throw new IllegalArgumentException(
-                        String.format("Cluster location not in the range %f..%f. x: %f; y: %f; lane: %d; tile: %d",
-                                MIN_POS, MAX_POS, x, y, lane, tile));
-            }
-
-            this.xPos = x;
-            this.yPos = y;
-            this.xQseqCoord = posToQSeqCoord(x);
-            this.yQseqCoord = posToQSeqCoord(y);
-            this.lane = lane;
-            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 */
-        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) {
-                return false;
-            }
-            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;
-        }
-    }
-
-    //Note: Perhaps use the IlluminaFileUtil to do this part
-    private static final Pattern FileNamePattern = Pattern.compile("^s_(\\d+)_(\\d+)(_pos\\.txt|\\.locs|\\.clocs|_pos\\.txt.gz|_pos\\.txt.bz2)$");
-
-    private final File file;
-    private final int lane;
-    private final int tile;
-
-    public AbstractIlluminaPositionFileReader(final File file) {
-        this.file = file;
-
-        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
-     */
-    public AbstractIlluminaPositionFileReader(final File file, final int lane, final int tile) {
-        this.file = file;
-        this.lane = lane;
-        this.tile = tile;
-    }
-
-    public int getTile() {
-        return tile;
-    }
-
-    public int getLane() {
-        return lane;
-    }
-
-    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);
-        final Matcher matcher = FileNamePattern.matcher(tokens[tokens.length - 1]);
-        if(!matcher.matches()) {
-            throw new PicardException("File name not of the right structure: <filePath>/s_<lane>_<tile>(_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. **/
-    public final PositionInfo next() {
-        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() */
-    protected abstract PositionInfo unsafeNextInfo();
-
-    /** 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 */
-    public abstract boolean hasNext();
-
-    public void remove() {
-        throw new UnsupportedOperationException();
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/parser/readers/BarcodeFileReader.java b/src/java/net/sf/picard/illumina/parser/readers/BarcodeFileReader.java
deleted file mode 100644
index ecb26cc..0000000
--- a/src/java/net/sf/picard/illumina/parser/readers/BarcodeFileReader.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package net.sf.picard.illumina.parser.readers;
-
-import net.sf.picard.util.BasicInputParser;
-import net.sf.samtools.util.CloseableIterator;
-
-import java.io.File;
-
-/**
- * Reads a single barcode file line by line and returns the barcode if there was a match or NULL otherwise.
- *
- * Barcode.txt file Format (consists of tab delimited columns, 1 record per row)
- * sequence_read    Matched(Y/N)    BarcodeSequenceMatched
- *
- * sequence read          - the actual bases at barcode position
- * Matched(y/n)           - Y or N indicating if there was a barcode match
- * BarcodeSequenceMatched - matched barcode sequence (empty if read did not match one of the barcodes).
- */
-public class BarcodeFileReader implements CloseableIterator<String> {
-    private static final int Y_OR_N_COLUMN = 1;
-    private static final int BARCODE_COLUMN = 2;
-    private final BasicInputParser textIterator;
-
-    public BarcodeFileReader(final File barcodeFile) {
-        this.textIterator = new BasicInputParser(false, barcodeFile);
-    }
-
-    @Override
-    public String next() {
-        final String [] fields = textIterator.next();
-        final String barcode;
-        if (fields[Y_OR_N_COLUMN].equals("Y")) {
-            barcode = fields[BARCODE_COLUMN];
-        } else {
-            barcode = null;
-        }
-
-        return barcode;
-    }
-
-    @Override
-    public boolean hasNext() {
-        return textIterator.hasNext();
-    }
-
-    public void remove() {
-        throw new UnsupportedOperationException("Remove is not supported by " + BarcodeFileReader.class.getName());
-    }
-
-    public void close() {
-        textIterator.close();
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/parser/readers/BclIndexReader.java b/src/java/net/sf/picard/illumina/parser/readers/BclIndexReader.java
deleted file mode 100644
index 51171e2..0000000
--- a/src/java/net/sf/picard/illumina/parser/readers/BclIndexReader.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2014 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.illumina.parser.readers;
-
-import net.sf.picard.PicardException;
-
-import java.io.File;
-import java.nio.ByteBuffer;
-
-/**
- * Annoyingly, there are two different files with extension .bci in NextSeq output.  This reader handles
- * the file that contains virtual file pointers into a .bcl.bgzf file.  After the header, there is a 64-bit record
- * per tile.
- */
-public class BclIndexReader {
-    private static final int BCI_HEADER_SIZE = 8;
-    private static final int BCI_VERSION = 0;
-
-    private final BinaryFileIterator<Long> bciIterator;
-    private final int numTiles;
-    private final File bciFile;
-    private int nextRecordNumber = 0;
-
-    public BclIndexReader(final File bclFile) {
-        bciFile = new File(bclFile.getAbsolutePath() + ".bci");
-        bciIterator = MMapBackedIteratorFactory.getLongIterator(BCI_HEADER_SIZE, bciFile);
-        final ByteBuffer headerBytes = bciIterator.getHeaderBytes();
-        final int actualVersion = headerBytes.getInt();
-        if (actualVersion != BCI_VERSION) {
-            throw new PicardException(String.format("Unexpected version number %d in %s", actualVersion, bciFile.getAbsolutePath()));
-        }
-        numTiles = headerBytes.getInt();
-    }
-
-    public int getNumTiles() {
-        return numTiles;
-    }
-
-    public long get(final int recordNumber) {
-        if (recordNumber < nextRecordNumber) {
-            throw new IllegalArgumentException("Can only read forward");
-        }
-        if (recordNumber > nextRecordNumber) {
-            bciIterator.skipElements(recordNumber - nextRecordNumber);
-            nextRecordNumber = recordNumber;
-        }
-        ++nextRecordNumber;
-        return bciIterator.getElement();
-    }
-
-    public File getBciFile() {
-        return bciFile;
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/parser/readers/BclQualityEvaluationStrategy.java b/src/java/net/sf/picard/illumina/parser/readers/BclQualityEvaluationStrategy.java
deleted file mode 100644
index 686fdae..0000000
--- a/src/java/net/sf/picard/illumina/parser/readers/BclQualityEvaluationStrategy.java
+++ /dev/null
@@ -1,95 +0,0 @@
-package net.sf.picard.illumina.parser.readers;
-
-import net.sf.picard.PicardException;
-import net.sf.samtools.util.CollectionUtil;
-
-import java.util.*;
-import java.util.concurrent.atomic.AtomicInteger;
-
-/**
- * Describes a mechanism for revising and evaluating qualities read from a BCL file.  This class accumulates observations about low quality
- * scores that it evaluates, so distinct instances should be used for unrelated sets of BCL readers.
- * 
- * The mechanism for revising qualities is not configurable.  The qualities that are less than 1 are revised to 1, and other qualities are
- * not affected.
- *
- * This class is thread-safe and a single instance can and should be passed to {@link BclReader}s running in separate threads.
- * 
- * To replicate the functionality of {@link BclReader}s prior to the introduction of this class, create a single instance passing 
- * {@link #ILLUMINA_ALLEGED_MINIMUM_QUALITY} to the constructor, and then call {@link #assertMinimumQualities()} once the readers finish
- * their work.
- * 
- * @author mccowan
- */
-public class BclQualityEvaluationStrategy {
-    public static final int ILLUMINA_ALLEGED_MINIMUM_QUALITY = 2;
-    private final int minimumRevisedQuality;
-    /** A thread-safe defaulting map that injects an AtomicInteger starting at 0 when a uninitialized key is get-ted. */
-    private Map<Byte, AtomicInteger> qualityCountMap = Collections.synchronizedMap(new CollectionUtil.DefaultingMap<Byte, AtomicInteger>(
-            new CollectionUtil.DefaultingMap.Factory<AtomicInteger, Byte>() {
-                @Override
-                public AtomicInteger make(final Byte _) {
-                    return new AtomicInteger(0);
-                }
-            }, true));
-
-    /**
-     * @param minimumRevisedQuality The minimum quality that should be seen from revised qualities; controls whether or not an exception
-     *                              is thrown when calling {@link #assertMinimumQualities()}
-     */
-    public BclQualityEvaluationStrategy(final int minimumRevisedQuality) {
-        this.minimumRevisedQuality = minimumRevisedQuality;
-    }
-
-    /** The rule used to revise quality scores, which is: if it's less than 1, make it 1. */
-    private static byte generateRevisedQuality(final byte quality) { return (byte) Math.max(quality, 1); }
-    
-    /**
-     * Accepts a quality read from a BCL file and (1) returns a 1 if the value was 0 and (2) makes a note of the provided quality if it is
-     * low.  Because of (2) each record's quality should be passed only once to this method, otherwise it will be observed multiple times.
-     *
-     * @param quality The quality score read from the BCL
-     * @return The revised new quality score
-     */
-    public byte reviseAndConditionallyLogQuality(final byte quality) {
-        final byte revisedQuality = generateRevisedQuality(quality);
-        if (quality < ILLUMINA_ALLEGED_MINIMUM_QUALITY) {
-            qualityCountMap.get(quality).incrementAndGet();
-        }
-        return revisedQuality;
-    }
-
-    /**
-     * Reviews the qualities observed thus far and throws an exception if any are below the minimum quality threshold.
-     */
-    public void assertMinimumQualities() {
-        final Collection<String> errorTokens = new LinkedList<String>();
-        for (final Map.Entry<Byte, AtomicInteger> entry : this.qualityCountMap.entrySet()) {
-            /**
-             * We're comparing revised qualities here, not observed, but the qualities that are logged in qualityCountMap are observed
-             * qualities.  So as we iterate through it, convert observed qualities into their revised value. 
-             */
-            if (generateRevisedQuality(entry.getKey()) < minimumRevisedQuality) { 
-                errorTokens.add(String.format("quality %s observed %s times", entry.getKey(), entry.getValue()));
-            }
-        }
-        if (!errorTokens.isEmpty()) {
-            throw new PicardException(String.format(
-                    "Found BCL qualities that fell beneath minimum threshold of %s: %s.",
-                    minimumRevisedQuality, 
-                    CollectionUtil.join(errorTokens, "; ")
-            ));
-        }
-    }
-
-    /**
-     * Returns a view of number of qualities that failed, where the key is the quality score and the value is the number of observations.
-     */
-    public Map<Byte, Integer> getPoorQualityFrequencies() {
-        final Map<Byte, Integer> qualityCountMapCopy = new HashMap<Byte, Integer>();
-        for (final Map.Entry<Byte, AtomicInteger> entry : qualityCountMap.entrySet()) {
-            qualityCountMapCopy.put(entry.getKey(), entry.getValue().intValue());
-        }
-        return Collections.unmodifiableMap(qualityCountMapCopy);
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/parser/readers/BclReader.java b/src/java/net/sf/picard/illumina/parser/readers/BclReader.java
deleted file mode 100644
index 5aaaa15..0000000
--- a/src/java/net/sf/picard/illumina/parser/readers/BclReader.java
+++ /dev/null
@@ -1,343 +0,0 @@
-/*
-* The MIT License
-*
-* Copyright (c) 2012 The Broad Institute
-*
-* Permission is hereby granted, free of charge, to any person obtaining a copy
-* of this software and associated documentation files (the "Software"), to deal
-* in the Software without restriction, including without limitation the rights
-* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the Software is
-* furnished to do so, subject to the following conditions:
-*
-* The above copyright notice and this permission notice shall be included in
-* all copies or substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-* THE SOFTWARE.
-*/
-package net.sf.picard.illumina.parser.readers;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.illumina.parser.BclData;
-import net.sf.picard.illumina.parser.TileIndex;
-import net.sf.picard.util.UnsignedTypeUtil;
-import net.sf.samtools.Defaults;
-import net.sf.samtools.util.BlockCompressedInputStream;
-import net.sf.samtools.util.CloseableIterator;
-import net.sf.samtools.util.CloserUtil;
-import net.sf.samtools.util.IOUtil;
-import net.sf.samtools.util.RuntimeIOException;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
-import java.util.List;
-import java.util.zip.GZIPInputStream;
-
-/**
- * BCL Files are base call and quality score binary files containing a (base,quality) pair for successive clusters.
- * The file is structured as followed:
- * Bytes 1-4 : unsigned int numClusters
- * Bytes 5-numClusters + 5 : 1 byte base/quality score
- * <p/>
- * The base/quality scores are organized as follows (with one exception, SEE BELOW):
- * The right 2 most bits (these are the LEAST significant bits) indicate the base, where
- * A=00(0x00), C=01(0x01), G=10(0x02), and T=11(0x03)
- * <p/>
- * The remaining bytes compose the quality score which is an unsigned int.
- * <p/>
- * EXCEPTION: If a byte is entirely 0 (e.g. byteRead == 0) then it is a no call, the base
- * becomes '.' and the Quality becomes 2, the default illumina masking value
- * <p/>
- * (E.g. if we get a value in binary of 10001011 it gets transformed as follows:
- * <p/>
- * Value read: 10001011(0x8B)
- * <p/>
- * Quality     Base
- * <p/>
- * 100010      11
- * 00100010    0x03
- * 0x22        T
- * 34          T
- * <p/>
- * So the output base/quality will be a (T/34)
- */
-public class BclReader implements CloseableIterator<BclData> {
-    private static final byte BASE_MASK = 0x0003;
-    private static final int HEADER_SIZE = 4;
-    private static final byte[] BASE_LOOKUP = new byte[]{'A', 'C', 'G', 'T'};
-
-    private final InputStream[] streams;
-    private final int[] outputLengths;
-    int[] numClustersPerCycle;
-
-    private final BclQualityEvaluationStrategy bclQualityEvaluationStrategy;
-    private BclData queue = null;
-
-    public BclReader(final List<File> bclsForOneTile, final int[] outputLengths,
-                     final BclQualityEvaluationStrategy bclQualityEvaluationStrategy, final boolean seekable) {
-        try {
-            this.bclQualityEvaluationStrategy = bclQualityEvaluationStrategy;
-            this.outputLengths = outputLengths;
-
-            int cycles = 0;
-            for (final int outputLength : outputLengths) {
-                cycles += outputLength;
-            }
-            this.streams = new InputStream[cycles];
-            this.numClustersPerCycle = new int[cycles];
-
-            final ByteBuffer byteBuffer = ByteBuffer.allocate(HEADER_SIZE);
-            byteBuffer.order(ByteOrder.LITTLE_ENDIAN);
-
-            for (int i = 0; i < cycles; ++i) {
-                final File bclFile = bclsForOneTile.get(i);
-                if (bclFile == null) {
-                    close();
-                    throw new RuntimeIOException(String.format("Could not find BCL file for cycle %d", i));
-                }
-                final String filePath = bclFile.getName();
-                final boolean isGzip = filePath.endsWith(".gz");
-                final boolean isBgzf = filePath.endsWith(".bgzf");
-                final InputStream stream = open(bclFile, seekable, isGzip, isBgzf);
-                final int read = stream.read(byteBuffer.array());
-                if (read != HEADER_SIZE) {
-                    close();
-                    throw new RuntimeIOException(String.format("BCL %s has invalid header structure.", bclFile.getAbsoluteFile()));
-                }
-                numClustersPerCycle[i] = byteBuffer.getInt();
-                if (!isBgzf && !isGzip) {
-                    assertProperFileStructure(bclFile, numClustersPerCycle[i], stream);
-                }
-                this.streams[i] = stream;
-                byteBuffer.clear();
-            }
-        } catch (final IOException ioe) {
-            throw new RuntimeIOException(ioe);
-        }
-    }
-
-    public static boolean isGzipped(final File file) {
-        return file.getAbsolutePath().endsWith(".gz");
-    }
-
-    public static boolean isBlockGzipped(final File file) {
-        return file.getAbsolutePath().endsWith(".bgzf");
-    }
-
-    public static long getNumberOfClusters(final File file) {
-        InputStream stream = null;
-        try {
-            if (isBlockGzipped(file)) stream = new BlockCompressedInputStream(IOUtil.maybeBufferedSeekableStream(file));
-            else if (isGzipped(file)) stream = new GZIPInputStream(IOUtil.maybeBufferInputStream(new FileInputStream(file)));
-            else stream = IOUtil.maybeBufferInputStream(new FileInputStream(file));
-
-            return getNumberOfClusters(file.getAbsolutePath(), stream);
-
-        } catch (final IOException ioe) {
-            throw new PicardException("Could not open file " + file.getAbsolutePath() + " to get its cluster count: " + ioe.getMessage(), ioe);
-        } finally {
-            CloserUtil.close(stream);
-        }
-    }
-
-    private static long getNumberOfClusters(final String filePath, final InputStream inputStream) {
-        final byte[] header = new byte[HEADER_SIZE];
-
-        try {
-            final int headerBytesRead = inputStream.read(header);
-            if (headerBytesRead != HEADER_SIZE) {
-                throw new PicardException("Malformed file, expected header of size " + HEADER_SIZE + " but received " + headerBytesRead);
-            }
-        } catch (final IOException ioe) {
-            throw new PicardException("Unable to read header for file (" + filePath + ")", ioe);
-        }
-
-        final ByteBuffer headerBuf = ByteBuffer.wrap(header);
-        headerBuf.order(ByteOrder.LITTLE_ENDIAN);
-        return UnsignedTypeUtil.uIntToLong(headerBuf.getInt());
-    }
-
-
-    public BclReader(final File bclFile, final BclQualityEvaluationStrategy bclQualityEvaluationStrategy, final boolean seekable) {
-        try {
-
-            this.outputLengths = new int[]{1};
-            this.streams = new InputStream[1];
-            this.numClustersPerCycle = new int[]{1};
-            this.bclQualityEvaluationStrategy = bclQualityEvaluationStrategy;
-
-            final ByteBuffer byteBuffer = ByteBuffer.allocate(HEADER_SIZE);
-            final String filePath = bclFile.getName();
-            final boolean isGzip = filePath.endsWith(".gz");
-            final boolean isBgzf = filePath.endsWith(".bgzf");
-            final InputStream stream = open(bclFile, seekable, isGzip, isBgzf);
-            final int read = stream.read(byteBuffer.array());
-
-            if (read != HEADER_SIZE) {
-                throw new RuntimeIOException(String.format("BCL %s has invalid header structure.", bclFile.getAbsoluteFile()));
-            }
-
-            byteBuffer.order(ByteOrder.LITTLE_ENDIAN);
-            this.numClustersPerCycle[0] = byteBuffer.getInt();
-            if (!isBgzf && !isGzip) {
-                assertProperFileStructure(bclFile, this.numClustersPerCycle[0], stream);
-            }
-            this.streams[0] = stream;
-        } catch (final IOException ioe) {
-            throw new PicardException("IOException opening file " + bclFile.getAbsoluteFile(), ioe);
-        }
-    }
-
-    void assertProperFileStructure(final File file, final int numClusters, final InputStream stream) {
-        final long elementsInFile = file.length() - HEADER_SIZE;
-        if (numClusters != elementsInFile) {
-            CloserUtil.close(stream);
-            throw new PicardException("Expected " + numClusters + " in file but found " + elementsInFile);
-        }
-    }
-
-    InputStream open(final File file, final boolean seekable, final boolean isGzip, final boolean isBgzf) throws IOException {
-        final String filePath = file.getAbsolutePath();
-
-        try {
-            // Open up a buffered stream to read from the file and optionally wrap it in a gzip stream
-            // if necessary
-            if (isBgzf) {
-                // Only BlockCompressedInputStreams can seek, and only if they are fed a SeekableStream.
-                return new BlockCompressedInputStream(IOUtil.maybeBufferedSeekableStream(file));
-            } else if (isGzip) {
-                if (seekable) {
-                    throw new IllegalArgumentException(
-                            String.format("Cannot create a seekable reader for gzip bcl: %s.", filePath)
-                    );
-                }
-                return (IOUtil.maybeBufferInputStream(new GZIPInputStream(new FileInputStream(file), Defaults.BUFFER_SIZE / 2),
-                        Defaults.BUFFER_SIZE / 2));
-            } else {
-                if (seekable) {
-                    throw new IllegalArgumentException(
-                            String.format("Cannot create a seekable reader for provided bcl: %s.", filePath)
-                    );
-                }
-                return IOUtil.maybeBufferInputStream(new FileInputStream(file));
-            }
-        } catch (final FileNotFoundException fnfe) {
-            throw new PicardException("File not found: (" + filePath + ")", fnfe);
-        } catch (final IOException ioe) {
-            throw new PicardException("Error reading file: (" + filePath + ")", ioe);
-        }
-    }
-
-    public void close() {
-        for (final InputStream stream : this.streams) {
-            CloserUtil.close(stream);
-        }
-    }
-
-    @Override
-    public boolean hasNext() {
-        if (queue == null) {
-            advance();
-        }
-        return queue != null;
-    }
-
-    private long getNumClusters() {
-        return numClustersPerCycle[0];
-    }
-
-    protected void assertProperFileStructure(final File file) {
-        final long elementsInFile = file.length() - HEADER_SIZE;
-        if (numClustersPerCycle[0] != elementsInFile) {
-            throw new PicardException("Expected " + numClustersPerCycle[0]  + " in file " + file.getAbsolutePath() + " but found " + elementsInFile);
-
-        }
-    }
-
-    public BclData next() {
-        if (queue == null) {
-            advance();
-        }
-
-        final BclData data = queue;
-        queue = null;
-        return data;
-    }
-
-    @Override
-    public void remove() {
-        throw new UnsupportedOperationException();
-    }
-
-    void advance() {
-        int totalCycleCount = 0;
-        final BclData data = new BclData(outputLengths);
-        for (int read = 0; read < outputLengths.length; read++) {
-            for (int cycle = 0; cycle < outputLengths[read]; ++cycle) {
-                try {
-                    final int readByte = this.streams[totalCycleCount].read();
-                    if (readByte == -1) {
-                        queue = null;
-                        return;
-                    }
-
-                    if (readByte == 0) {
-                        //NO CALL, don't confuse with an A call
-                        data.bases[read][cycle] = (byte) '.';
-                        data.qualities[read][cycle] = (byte) 2;
-                    } else {
-                        data.bases[read][cycle] = BASE_LOOKUP[readByte & BASE_MASK];
-                        data.qualities[read][cycle] = bclQualityEvaluationStrategy.reviseAndConditionallyLogQuality((byte) (readByte >>> 2));
-                    }
-                    totalCycleCount++;
-                } catch (final IOException ioe) {
-                    throw new RuntimeIOException(ioe);
-                }
-
-            }
-        }
-        this.queue = data;
-    }
-
-    public static BclReader makeSeekable(final List<File> files, final BclQualityEvaluationStrategy bclQualityEvaluationStrategy, final int[] outputLengths) {
-        return new BclReader(files, outputLengths, bclQualityEvaluationStrategy, true);
-    }
-
-    public int seek(final List<File> files, final TileIndex tileIndex, final int currentTile) {
-        int count = 0;
-        int numClustersInTile = 0;
-        for (final InputStream inputStream : streams) {
-            final TileIndex.TileIndexRecord tileIndexRecord = tileIndex.findTile(currentTile);
-            final BclIndexReader bclIndexReader = new BclIndexReader(files.get(count));
-            final long virtualFilePointer = bclIndexReader.get(tileIndexRecord.getZeroBasedTileNumber());
-            if (!(inputStream instanceof BlockCompressedInputStream)) {
-                throw new UnsupportedOperationException("Seeking only allowed on bzgf");
-            } else {
-                try {
-                    if (tileIndex.getNumTiles() != bclIndexReader.getNumTiles()) {
-                        throw new PicardException(String.format("%s.getNumTiles(%d) != %s.getNumTiles(%d)",
-                                tileIndex.getFile().getAbsolutePath(), tileIndex.getNumTiles(), bclIndexReader.getBciFile().getAbsolutePath(), bclIndexReader.getNumTiles()));
-                    }
-                    ((BlockCompressedInputStream) inputStream).seek(virtualFilePointer);
-                    numClustersInTile = tileIndexRecord.getNumClustersInTile();
-                } catch (final IOException e) {
-                    throw new PicardException("Problem seeking to " + virtualFilePointer, e);
-                }
-            }
-            count++;
-        }
-        return numClustersInTile;
-    }
-}
-
diff --git a/src/java/net/sf/picard/illumina/parser/readers/ClocsFileReader.java b/src/java/net/sf/picard/illumina/parser/readers/ClocsFileReader.java
deleted file mode 100644
index ffe6611..0000000
--- a/src/java/net/sf/picard/illumina/parser/readers/ClocsFileReader.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2012 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.illumina.parser.readers;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.util.UnsignedTypeUtil;
-
-import java.io.File;
-import java.nio.ByteBuffer;
-
-/**
- * The clocs file format is one of 3 Illumina formats(pos, locs, and clocs) that stores position data exclusively.
- * clocs files store position data for successive clusters, compressed in bins as follows:
- *     Byte 0   : unused
- *     Byte 1-4 : unsigned int numBins
- *     The rest of the file consists of bins/blocks, where a bin consists of an integer
- *     indicating number of blocks, followed by that number of blocks and a block consists
- *     of an x-y coordinate pair.  In otherwords:
- *
- *     for each bin
- *         byte 1: Unsigned int numBlocks
- *         for each block:
- *             byte 1 : byte xRelativeCoordinate
- *             byte 2 : byte yRelativeCoordinate
- *
- *     Actual x and y values are computed using the following algorithm
- *
- *     xOffset = yOffset = 0
- *     imageWidth = 2048
- *     blockSize = 25
- *     maxXbins:Int = Math.Ceiling((double)ImageWidth/(double)blockSize)
- *     for each bin:
- *         for each location:
- *             x = convert.ToSingle(xRelativeCoordinate/10f + xoffset)
- *             y = convert.toSingle(yRelativeCoordinate/10f + yoffset)
- *         if (binIndex > 0 && ((binIndex + 1) % maxXbins == 0)) {
- *            xOffset = 0; yOffset += blockSize
- *         } else xOffset += blockSize
- */
-public class ClocsFileReader extends AbstractIlluminaPositionFileReader {
-
-    private static final int HEADER_SIZE = 5;
-
-    private static final int IMAGE_WIDTH = 2048;
-    private static final int BLOCK_SIZE = 25;
-    private static final int NUM_BINS_IN_ROW = (int)Math.ceil((double) IMAGE_WIDTH / (double) BLOCK_SIZE);
-
-    /** Total number of bins */
-    private final long numBins;
-
-    /** An iterator through clocsFile's bytes */
-    private final BinaryFileIterator<Byte> byteIterator;
-
-    //mutable vars
-    private float xOffset;
-    private float yOffset;
-    private long currentBin;
-    private int numClustersInBin;   //MAX 255
-    private long currentClusterInBin;
-
-    public ClocsFileReader(final File clocsFile) {
-        super(clocsFile);
-
-        byteIterator = MMapBackedIteratorFactory.getByteIterator(HEADER_SIZE, clocsFile);
-
-        final ByteBuffer hbs = byteIterator.getHeaderBytes();
-        hbs.get(); //unusedByte
-        numBins = UnsignedTypeUtil.uIntToLong(hbs.getInt());
-
-        xOffset = 0;
-        yOffset = 0;
-        currentBin = 0;
-        startBlock();
-
-        checkAndAdvanceBin();
-    }
-
-    /**
-     * Grab the next set off offset values, decompress them and then
-     * @return
-     */
-    @Override
-    protected PositionInfo unsafeNextInfo() {
-        final byte xByte = byteIterator.next();
-        final byte yByte = byteIterator.next();
-
-        final float xPos = UnsignedTypeUtil.uByteToInt(xByte)/10f + xOffset;
-        final float yPos = UnsignedTypeUtil.uByteToInt(yByte)/10f + yOffset;
-        ++currentClusterInBin;
-        checkAndAdvanceBin();
-
-        return new PositionInfo(xPos, yPos, getLane(), getTile());
-    }
-
-    /** Compute offset for next bin and then increment the bin number and reset block information*/
-    private void checkAndAdvanceBin() {
-        while(currentClusterInBin >= numClustersInBin && currentBin < numBins) { //While rather than if statement to skip empty blocks
-            if ((currentBin + 1) % NUM_BINS_IN_ROW == 0) {
-                xOffset = 0;
-                yOffset += BLOCK_SIZE;
-            } else{
-                xOffset += BLOCK_SIZE;
-            }
-
-            currentBin += 1;
-            if(currentBin < numBins) {
-                startBlock();
-            }
-        }
-    }
-
-    /** Start the next block by reading it's numBlocks byte and setting the currentBlock index to 0 */
-    private void startBlock() {
-        numClustersInBin = UnsignedTypeUtil.uByteToInt(byteIterator.next());
-        currentClusterInBin = 0;
-    }
-    
-    @Override
-    protected String makeExceptionMsg() {
-        return "ClocsFileReader(file=" + getFile().getName() + ", lane=" + getLane() +  ", tile=" + getTile() +
-                               ", currentBin="   + currentBin +  ", numBins=" + numBins +  ", xOffset=" + xOffset  + ", yOffset" + yOffset +
-                               ", currentBlock=" + currentClusterInBin + ", numBlocks=" + numClustersInBin;
-    }
-
-    @Override
-    public boolean hasNext() { 
-        boolean valuesRemain = currentClusterInBin < numClustersInBin || currentBin < (numBins -1);
-        if(!valuesRemain && byteIterator.hasNext()) {
-            throw new PicardException("Read the number of expected bins( " + numBins + ") but still had more elements in file( " + byteIterator.getFile().getAbsolutePath() + ") ");
-        }
-        return valuesRemain;
-    }
-
-    public void close() {
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/parser/readers/FilterFileReader.java b/src/java/net/sf/picard/illumina/parser/readers/FilterFileReader.java
deleted file mode 100644
index ecd493c..0000000
--- a/src/java/net/sf/picard/illumina/parser/readers/FilterFileReader.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2012 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.illumina.parser.readers;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.util.UnsignedTypeUtil;
-
-import java.io.File;
-import java.nio.ByteBuffer;
-import java.util.Iterator;
-
-/**
- * Illumina uses an algorithm described in "Theory of RTA" that determines whether or not a cluster passes filter("PF") or not.
- * These values are written as sequential bytes to Filter Files.  The structure of a filter file is as follows:
- * Bytes 0-3  : 0
- * Bytes 4-7  : unsigned int version
- * Bytes 8-11 : unsigned int numClusters
- */
-public class FilterFileReader implements Iterator<Boolean> {
-    /** Number of bytes in the files header that will be skipped by the iterator*/
-    private static final int HEADER_SIZE  = 12;
-
-    /** Expected Version */
-    public final int EXPECTED_VERSION = 3;
-
-    /** Iterator over each cluster in the FilterFile */
-    private final BinaryFileIterator<Byte> bbIterator;
-
-    /** Version number found in the FilterFile, this should equal 3 */
-    public final int version;
-
-    /** The number of cluster's pf values stored in this file */
-    public final long numClusters;
-
-    /** Byte representing a cluster failing filter(not a PF read), we test this exactly at
-     * the moment but technically the standard  may be to check only lowest significant bit */
-    private final static byte FailedFilter = 0x00;
-
-    /** Byte representing a cluster passing filter(a PF read), we test this exactly at
-     * the moment but technically the standard  may be to check only lowest significant bit */
-    private final static byte PassedFilter = 0x01;
-
-    /** The index of the current cluster within the file*/
-    private int currentCluster;
-
-    public FilterFileReader(final File file) {
-        bbIterator = MMapBackedIteratorFactory.getByteIterator(HEADER_SIZE, file);
-        final ByteBuffer headerBuf = bbIterator.getHeaderBytes();
-
-        for(int i = 0; i < 4; i++) {
-            final byte b = headerBuf.get();
-            if(b != 0) {
-                throw new PicardException("The first four bytes of a Filter File should be 0 but byte " + i + " was " + b + " in file " + file.getAbsolutePath());
-            }
-        }
-
-        version = headerBuf.getInt();
-        if(version != EXPECTED_VERSION) {
-            throw new PicardException("Expected version is " + EXPECTED_VERSION + " but version found was "  + version + " in file " + file.getAbsolutePath());
-        }
-
-        numClusters = UnsignedTypeUtil.uIntToLong(headerBuf.getInt());
-        bbIterator.assertTotalElementsEqual(numClusters);
-
-        currentCluster = 0;
-    }
-
-    public boolean hasNext() {
-        return currentCluster < numClusters;
-    }
-
-    public Boolean next() {
-        final byte value = bbIterator.next();
-        currentCluster += 1;
-        if(value == PassedFilter) {
-            return true;
-        } else if(value == FailedFilter) {
-            return false;
-        } else {
-            String hexVal = Integer.toHexString(value);
-            hexVal = (hexVal.length() < 2 ? "0x0" : "0x") + hexVal;
-            throw new PicardException("Didn't recognized PF Byte (" + hexVal + ")" + " for element (" + currentCluster + ") in file(" + bbIterator.getFile().getAbsolutePath() + ")");
-        }
-    }
-
-    public void skipRecords(final int numToSkip) {
-        bbIterator.skipElements(numToSkip);
-    }
-
-    public void remove() {
-        throw new UnsupportedOperationException();
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/parser/readers/LocsFileReader.java b/src/java/net/sf/picard/illumina/parser/readers/LocsFileReader.java
deleted file mode 100644
index 0497f2d..0000000
--- a/src/java/net/sf/picard/illumina/parser/readers/LocsFileReader.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2012 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.illumina.parser.readers;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.util.UnsignedTypeUtil;
-
-import java.io.File;
-import java.nio.ByteBuffer;
-
-/**
- * The locs file format is one 3 Illumina formats(pos, locs, and clocs) that stores position data exclusively.
- * locs files store position data for successive clusters in 4 byte float pairs, described as follows:
- *     bytes 1-4    : (int?) Version number (1)
- *     bytes 5-8    : 4 byte float equaling 1.0
- *     bytes 9-12   : unsigned int numClusters
- *     bytes 13-16: : X coordinate of first cluster (32-bit float)
- *     bytes 17-20: : Y coordinate of first cluster (32-bit float)
- *
- *     The remaining bytes of the file store the X and Y coordinates of the remaining clusters.
- */
-
-public class LocsFileReader extends AbstractIlluminaPositionFileReader {
-    /** Size of the opening file header, this is skipped by the iterator below*/
-    private static final int HEADER_SIZE = 12;
-
-    /** The first four bytes of a locs file should equal a little endian 1 */
-    private static final int BYTES_1_TO_4 = 1;
-
-    /** The expected version of locs files */
-    private static final float VERSION = 1.0f;
-
-    /** An iterator over all of the coordinate values in the file, remember next needs to be called
-     * twice per coordinate pair */
-    private BinaryFileIterator<Float> bbIterator;
-
-    /** Total clusters in the file as read in the file header */
-    private long numClusters;
-
-    /** The index of the next cluster to be returned */
-    private int nextCluster;
-
-    public LocsFileReader(final File file) {
-        super(file);
-
-        initialize(file);
-    }
-
-    public LocsFileReader(final File file, final int lane, final int tile) {
-        super(file, lane, tile);
-
-        initialize(file);
-    }
-
-    private void initialize(final File file) {
-        bbIterator = MMapBackedIteratorFactory.getFloatIterator(HEADER_SIZE, file);
-        final ByteBuffer headerBuf = bbIterator.getHeaderBytes();
-
-        final int firstValue = headerBuf.getInt();
-        if(firstValue != BYTES_1_TO_4) {
-            throw new PicardException("First header byte of locs files should be " + BYTES_1_TO_4 + " value found(" + firstValue + ")");
-        }
-
-        final float versionNumber = headerBuf.getFloat();
-        if(versionNumber != VERSION) {
-            throw new PicardException("First header byte of locs files should be " + VERSION + " value found(" + firstValue + ")");
-        }
-
-        numClusters = UnsignedTypeUtil.uIntToLong(headerBuf.getInt());
-        bbIterator.assertTotalElementsEqual(numClusters * 2);
-    }
-
-    @Override
-    protected PositionInfo unsafeNextInfo() {
-        final float xVal = bbIterator.next();
-        final float yVal = bbIterator.next();
-        ++nextCluster;
-        return new PositionInfo(xVal, yVal, getLane(), getTile());
-    }
-
-    @Override
-    protected String makeExceptionMsg() {
-        return "LocsFileReader(file=" + getFile().getAbsolutePath() + ", numClusters=" + numClusters + ") ";
-    }
-
-    @Override
-    public boolean hasNext() {
-        return nextCluster < numClusters;
-    }
-
-    public void close() {
-        bbIterator = null;
-    }
-
-    public void skipRecords(final int numToSkip) {
-        bbIterator.skipElements(numToSkip * 2);
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/parser/readers/MMapBackedIteratorFactory.java b/src/java/net/sf/picard/illumina/parser/readers/MMapBackedIteratorFactory.java
deleted file mode 100644
index 74fee58..0000000
--- a/src/java/net/sf/picard/illumina/parser/readers/MMapBackedIteratorFactory.java
+++ /dev/null
@@ -1,298 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2012 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.illumina.parser.readers;
-
-
-import net.sf.picard.PicardException;
-import net.sf.picard.io.IoUtil;
-import net.sf.samtools.util.CloserUtil;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.nio.*;
-import java.nio.channels.FileChannel;
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-
-/**
- * MMapBackedIteratorFactory a file reader that takes a header size and a binary file, maps the file to
- * a read-only byte buffer and provides methods to retrieve the header as it's own bytebuffer and create
- * iterators of different data types over the values of file (starting after the end of the header).
- * Values provided by the MMappedBinaryFileReader are read as if they are little endian.
- *
- * Note (read to end):
- * This class IS thread-safe and immutable though the iterator and ByteBuffers it produces are NOT.
- * The values read are assumed to be signed, NO promoting/sign conversion happens in this class.
- */
-public class MMapBackedIteratorFactory {
-    private static int BYTE_SIZE  = 1;
-    private static int INT_SIZE   = 4;
-    private static int FLOAT_SIZE = 4;
-    private static int LONG_SIZE = 8;
-
-    public static BinaryFileIterator<Integer> getIntegerIterator(final int headerSize, final File binaryFile) {
-        checkFactoryVars(headerSize, binaryFile);
-        final ByteBuffer buf = getBuffer(binaryFile);
-        final byte [] header = getHeader(buf, headerSize);
-
-        return new IntegerMMapIterator(header, binaryFile, buf);
-    }
-
-    public static BinaryFileIterator<Byte> getByteIterator(final int headerSize, final File binaryFile) {
-        checkFactoryVars(headerSize, binaryFile);
-        final ByteBuffer buf = getBuffer(binaryFile);
-        final byte [] header = getHeader(buf, headerSize);
-
-        return new ByteMMapIterator(header, binaryFile, buf);
-    }
-
-    public static BinaryFileIterator<Float> getFloatIterator(final int headerSize, final File binaryFile) {
-        checkFactoryVars(headerSize, binaryFile);
-        final ByteBuffer buf = getBuffer(binaryFile);
-        final byte [] header = getHeader(buf, headerSize);
-
-        return new FloatMMapIterator(header, binaryFile, buf);
-    }
-
-    public static BinaryFileIterator<Long> getLongIterator(final int headerSize, final File binaryFile) {
-        checkFactoryVars(headerSize, binaryFile);
-        final ByteBuffer buf = getBuffer(binaryFile);
-        final byte [] header = getHeader(buf, headerSize);
-
-        return new LongMMapIterator(header, binaryFile, buf);
-    }
-
-    public static BinaryFileIterator<ByteBuffer> getByteBufferIterator(final int headerSize, final int elementSize, final File binaryFile) {
-        checkFactoryVars(headerSize, binaryFile);
-        final ByteBuffer buf = getBuffer(binaryFile);
-        final byte [] header = getHeader(buf, headerSize);
-
-        return new ByteBufferMMapIterator(header, binaryFile, elementSize, buf);
-    }
-
-    private static void checkFactoryVars(final int headerSize, final File binaryFile) {
-        IoUtil.assertFileIsReadable(binaryFile);
-
-        if(headerSize < 0) {
-            throw new PicardException("Header size cannot be negative.  HeaderSize(" + headerSize + ") for file " + binaryFile.getAbsolutePath());
-        }
-
-        if(headerSize > binaryFile.length()) {
-            throw new PicardException("Header size(" + headerSize + ") is greater than file size(" + binaryFile.length() + ") for file " + binaryFile.getAbsolutePath());
-        }
-    }
-
-    private static ByteBuffer getBuffer(final File binaryFile) {
-        final ByteBuffer buf;
-        try {
-            final FileInputStream is = new FileInputStream(binaryFile);
-            final FileChannel channel = is.getChannel();
-            final long fileSize = channel.size();
-            buf = channel.map(FileChannel.MapMode.READ_ONLY, 0, fileSize);
-            buf.order(ByteOrder.LITTLE_ENDIAN);
-            CloserUtil.close(channel);
-            CloserUtil.close(is);
-        } catch (IOException e) {
-            throw new PicardException("IOException opening cluster binary file " + binaryFile, e);
-        }
-
-        return buf;
-    }
-
-    private static byte [] getHeader(final ByteBuffer buf, final int headerSize) {
-        final byte [] headerBytes = new byte[headerSize];
-        if(headerSize > 0) {
-            buf.get(headerBytes);
-        }
-        return headerBytes;
-    }
-
-    /** A simple iterator that uses a reference to the enclosing ByteBuffer and a member position
-     * value to iterate over values in the buffer, starting after headerSize bytes */
-    static abstract class MMapBackedIterator<TYPE> extends BinaryFileIterator<TYPE>{
-        protected final ByteBuffer buffer;
-
-        protected MMapBackedIterator(final byte[] header, final File file, final int elementSize, final ByteBuffer buffer) {
-            super(header, file, elementSize);
-            this.buffer = buffer;
-        }
-
-        public boolean hasNext() {
-            return buffer.limit() - buffer.position() >= elementSize;
-        }
-
-        public void skipElements(final int numElements) {
-            buffer.position(buffer.position() + (numElements * elementSize));
-        }
-
-        /** The method that actually retrieves the data from the enclosing buffer */
-        protected abstract TYPE getElement();
-
-        public Iterator<TYPE> iterator() {
-            return this;
-        }
-    }
-
-    private static class IntegerMMapIterator extends MMapBackedIterator<Integer> {
-        public IntegerMMapIterator(final byte[] header, final File file, final ByteBuffer buf) {
-            super(header, file, INT_SIZE, buf);
-        }
-
-        @Override
-        protected Integer getElement() {
-            return buffer.getInt();
-        }
-    }
-
-    private static class ByteMMapIterator extends MMapBackedIterator<Byte> {
-        public ByteMMapIterator(final byte[] header, final File file, final ByteBuffer buf) {
-            super(header, file, BYTE_SIZE, buf);
-        }
-
-        @Override
-        protected Byte getElement() {
-            return buffer.get();
-        }
-    }
-
-    private static class FloatMMapIterator extends MMapBackedIterator<Float> {
-        public FloatMMapIterator(final byte[] header, final File file, final ByteBuffer buf) {
-            super(header, file, FLOAT_SIZE, buf);
-        }
-
-        @Override
-        protected Float getElement() {
-            return buffer.getFloat();
-        }
-    }
-
-    private static class LongMMapIterator extends MMapBackedIterator<Long> {
-        public LongMMapIterator(final byte[] header, final File file, final ByteBuffer buf) {
-            super(header, file, LONG_SIZE, buf);
-        }
-
-        @Override
-        protected Long getElement() {
-            return buffer.getLong();
-        }
-    }
-
-    //TODO: Add test
-    //TODO: Make a note that if you want to multithread over this then you have to copy the contents
-    private static class ByteBufferMMapIterator extends MMapBackedIterator<ByteBuffer> {
-        private byte [] localBacking;
-        private ByteBuffer localBuffer;
-        public ByteBufferMMapIterator(final byte[] header, final File file, final int elementBufferSize, final ByteBuffer buf) {
-            super(header, file, elementBufferSize, buf);
-            this.localBacking = new byte[elementBufferSize];
-            this.localBuffer = ByteBuffer.wrap(localBacking);
-            this.localBuffer.order(ByteOrder.LITTLE_ENDIAN);
-        }
-
-        @Override
-        protected ByteBuffer getElement() {
-            localBuffer.position(0);
-            buffer.get(this.localBacking);
-            localBuffer.position(0);
-            return localBuffer;
-        }
-    }
-}
-
-
-abstract class BinaryFileIterator<TYPE> implements Iterator<TYPE>, Iterable<TYPE> {
-    protected final File file;
-    protected final long fileSize;
-    protected final int elementSize;
-    private final byte [] header;
-
-    public BinaryFileIterator(final byte[] header, final File file, final int elementSize) {
-        this.header = header;
-        this.file   = file;
-        this.fileSize = file.length();
-        this.elementSize = elementSize;
-    }
-    /** Return the bytes found in the first headerSize bytes of the file, wrapped as a
-     * ByteBuffer */
-    public ByteBuffer getHeaderBytes() {
-        final ByteBuffer bb = ByteBuffer.allocate(header.length);
-        bb.order(ByteOrder.LITTLE_ENDIAN);
-        bb.put(header);
-        bb.position(0);
-        return bb;
-    }
-
-    public void assertTotalElementsEqual(final long numElements) {
-        if(getElementsInFile() != numElements) {
-            throw new PicardException("Expected " + numElements + " elements in file but found " + getElementsInFile() + " elements! File(" + file.getAbsolutePath() +  ")");
-        }
-
-        if(getExtraBytes() != 0) {
-            throw new PicardException("Malformed file, expected " + (header.length + numElements * elementSize) + " bytes in file, found " + fileSize + " bytes for file("
-                    + file.getAbsolutePath() + ")");
-        }
-    }
-
-    public int getElementSize() {
-        return elementSize;
-    }
-
-    public long getExtraBytes() {
-        return fileSize - header.length - (getElementsInFile() * elementSize);
-    }
-
-    public long getElementsInFile() {
-        return (fileSize - header.length) / elementSize;
-    }
-
-    public File getFile() {
-        return file;
-    }
-
-    public TYPE next() {
-        if(!hasNext()) {
-            throw new NoSuchElementException();
-        }
-        return getElement();
-    }
-
-    public void remove() {
-        throw new UnsupportedOperationException();
-    }
-
-
-    public Iterator<TYPE> iterator() {
-        return this;
-    }
-
-    /** The method that actually retrieves the data from the enclosing buffer */
-    protected abstract TYPE getElement();
-    public abstract void skipElements(final int numElementsToSkip);
-    public abstract boolean hasNext();
-}
-
-
-
diff --git a/src/java/net/sf/picard/illumina/parser/readers/PosFileReader.java b/src/java/net/sf/picard/illumina/parser/readers/PosFileReader.java
deleted file mode 100644
index 2534d03..0000000
--- a/src/java/net/sf/picard/illumina/parser/readers/PosFileReader.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2012 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.illumina.parser.readers;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.util.BasicInputParser;
-import net.sf.samtools.util.CloserUtil;
-
-import java.io.File;
-
-/**
- * The pos file format is one 3 Illumina formats(pos, locs, and clocs) that stores position data exclusively.
- * pos files store position data for successive clusters in tabbed delimited coordinated pairs, 1 per file row e.g.:
- *
- * xPos1\tyPos1
- * xPos2\tyPos2
- * 102.0\t303.3
- *     ...
- * xPosn-1\yPosn-1
- * xPosn\yPosn
- *
- * Where n = the total number of clusters (and therefore lines) in the file.
- */
-public class PosFileReader extends AbstractIlluminaPositionFileReader {
-
-    private final BasicInputParser parser;
-
-    public PosFileReader(final File posFile) {
-        super(posFile);
-        this.parser  = new BasicInputParser(true, posFile);
-    }
-
-    /** Read a line of text and parse it into two float values, create a PositionInfo and return it */
-    @Override
-    protected PositionInfo unsafeNextInfo() {
-        final String [] strVals = this.parser.next();
-        if(strVals.length != 2) {
-            throw new PicardException("Pos file number of values != 2, found (" + strVals.length +")" + makeExceptionMsg());
-        }
-        try {
-            final float xVal = Float.parseFloat(strVals[0]);
-            final float yVal = Float.parseFloat(strVals[1]);
-
-            if(xVal <0 || yVal < 0) {
-                throw new NumberFormatException("X and Y pos values cannot be negative!");
-            }
-
-            return new PositionInfo(xVal, yVal, getLane(), getTile());
-        } catch(final NumberFormatException nfe) {
-            throw new PicardException("Bad x or y value in " + makeExceptionMsg(), nfe);
-        }
-    }
-
-    @Override
-    protected String makeExceptionMsg() {
-        return "pos file( "              + parser.getFileName()            +
-               " ) on line number( "     + parser.getCurrentLineNumber()   +
-               " ) with current line = " + parser.getCurrentLine();
-    }
-
-    public boolean hasNext() {
-        return parser.hasNext();
-    }
-
-    public void close() {
-        CloserUtil.close(parser);
-    }
-}
diff --git a/src/java/net/sf/picard/illumina/parser/readers/TileMetricsOutReader.java b/src/java/net/sf/picard/illumina/parser/readers/TileMetricsOutReader.java
deleted file mode 100644
index d813181..0000000
--- a/src/java/net/sf/picard/illumina/parser/readers/TileMetricsOutReader.java
+++ /dev/null
@@ -1,167 +0,0 @@
-package net.sf.picard.illumina.parser.readers;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.util.UnsignedTypeUtil;
-
-import java.io.File;
-import java.nio.ByteBuffer;
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-
-/**
- * Reads a TileMetricsOut file commonly found in the InterOp directory of an Illumina Run Folder.  This
- * reader DOES NOT try to interpret the metrics code or metrics value but instead returns them in what
- * is essentially a struct.
- *
- * File Format:
- * byte 0 (unsigned byte) = The version number which MUST be 2 or an exception will be thrown
- * byte 1 (unsigned byte) = The record size which must be 10 or an exception will be thrown
- * bytes 3 + (current_record * 10) to (current_record * 10 + 10) (TileMetrics Record) = The actual records each of size 10 that
- *          get converted into IlluminaPhasingMetrics objects
- *
- * TileMetrics Record Format:
- * Each 10 byte record is of the following format:
- * byte 0-1 (unsigned short) = lane number
- * byte 2-3 (unsigned short) = tile number
- * byte 4-5 (unisgned short) = metrics code, see Theory of RTA document by Illumina for definition
- * byte 6-9 (float)          = metrics value, see Theory of RTA document by Illumina for definition
- */
-public class TileMetricsOutReader implements Iterator<TileMetricsOutReader.IlluminaTileMetrics> {
-    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<ByteBuffer> bbIterator;
-
-    /**
-     * Return a TileMetricsOutReader for the specified file
-     * @param tileMetricsOutFile The file to read
-     */
-    public TileMetricsOutReader(final File tileMetricsOutFile) {
-        bbIterator = MMapBackedIteratorFactory.getByteBufferIterator(HEADER_SIZE, EXPECTED_RECORD_SIZE, tileMetricsOutFile);
-
-        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 + ")" );
-        }
-
-        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 + ")" );
-        }
-    }
-
-    public boolean hasNext() {
-        return bbIterator.hasNext();
-    }
-
-    public IlluminaTileMetrics next() {
-        if(!hasNext()) {
-            throw new NoSuchElementException();
-        }
-        return new IlluminaTileMetrics(bbIterator.next());
-    }
-
-    public void remove() {
-        throw new UnsupportedOperationException();
-    }
-
-    /**
-     * 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());
-        }
-
-        public IlluminaTileMetrics(final int laneNumber, final int tileNumber, final int metricCode, final float metricValue) {
-            this.laneTileCode = new IlluminaLaneTileCode(laneNumber, tileNumber, metricCode);
-            this.metricValue = metricValue;
-        }
-
-        public int getLaneNumber() {
-            return laneTileCode.getLaneNumber();
-        }
-
-        public int getTileNumber() {
-            return laneTileCode.getTileNumber();
-        }
-
-        public int getMetricCode() {
-            return laneTileCode.getMetricCode();
-        }
-
-        public float getMetricValue() {
-            return metricValue;
-        }
-
-        public IlluminaLaneTileCode getLaneTileCode() {
-            return laneTileCode;
-        }
-
-        @Override
-        public boolean equals(final Object o) {
-            if (o instanceof IlluminaTileMetrics) {
-                final IlluminaTileMetrics that = (IlluminaTileMetrics) o;
-                return laneTileCode == that.laneTileCode && metricValue == that.metricValue; // Identical tile data should render exactly the same float.
-            } else {
-                return false;
-            }
-        }
-        
-        @Override
-        public int hashCode() {
-            return String.format("%s:%s:%s:%s", laneTileCode.getLaneNumber(), laneTileCode.getTileNumber(), laneTileCode.getMetricCode(), metricValue).hashCode(); // Slow but adequate.
-        }
-    }
-
-    /** Helper class which captures the combination of a lane, tile & metric code */
-    public static class IlluminaLaneTileCode {
-        private final int laneNumber;
-        private final int tileNumber;
-        private final int metricCode;
-
-        public IlluminaLaneTileCode(final int laneNumber, final int tileNumber, final int metricCode) {
-            this.laneNumber = laneNumber;
-            this.tileNumber = tileNumber;
-            this.metricCode = metricCode;
-        }
-
-        public int getLaneNumber() {
-            return laneNumber;
-        }
-
-        public int getTileNumber() {
-            return tileNumber;
-        }
-
-        public int getMetricCode() {
-            return metricCode;
-        }
-
-        @Override
-        public boolean equals(final Object o) {
-            if (o instanceof IlluminaLaneTileCode) {
-                final IlluminaLaneTileCode that = (IlluminaLaneTileCode) o;
-                return laneNumber == that.laneNumber && tileNumber == that.tileNumber && metricCode == that.metricCode;
-            } else {
-                return false;
-            }
-        }
-
-        @Override
-        public int hashCode() {
-            int result = laneNumber;
-            result = 31 * result + tileNumber;
-            result = 31 * result + metricCode;
-            return result;
-        }
-    }
-}
diff --git a/src/java/net/sf/picard/io/FastLineReader.java b/src/java/net/sf/picard/io/FastLineReader.java
deleted file mode 100644
index 0da120a..0000000
--- a/src/java/net/sf/picard/io/FastLineReader.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.io;
-
-import net.sf.picard.PicardException;
-import net.sf.samtools.util.CloserUtil;
-
-import java.io.InputStream;
-import java.io.IOException;
-
-/**
- * Line-oriented InputStream reader that uses one buffer for disk buffering and line-termination-finding,
- * in order to improve performance.
- *
- * Implementation detail: All public methods must leave the input buffer in a non-empty state, unless at EOF.
- *
- * @author alecw at broadinstitute.org
- */
-public class FastLineReader {
-    private InputStream in;
-    private byte[] fileBuffer = new byte[512000];
-    // Next byte to read in fileBuffer
-    private int nextByte = 0;
-    // Number of bytes in fileBuffer
-    private int numBytes = 0;
-    private boolean atEof;
-
-    public FastLineReader(final InputStream in) {
-        this.in = in;
-        ensureBufferNotEmpty();
-    }
-
-    /**
-     * @return true if input is exhausted
-     */
-    public boolean eof() {
-        return atEof;
-    }
-
-    /**
-     * @return peeks at the next byte in the stream and returns true if it is CR or LF.  Returns false if EOF or
-     * next byte is not CR or LF.
-     */
-    public boolean atEoln() {
-        return ensureBufferNotEmpty() && (fileBuffer[nextByte] == '\n' || fileBuffer[nextByte] == '\r');
-    }
-
-    /**
-     * Advance over any EOLN chars (CR or LF)
-     * @return true if saw one or more CR or LFs
-     */
-    public boolean skipNewlines() {
-        boolean sawEoln = false;
-        while (atEoln()) {
-            sawEoln = true;
-            ++nextByte;
-        }
-        return sawEoln;
-    }
-
-    public void close() {
-        CloserUtil.close(in);
-        in = null;
-        fileBuffer = null;
-    }
-
-    /**
-     * @return Next byte from the input.  Do not call if at EOF.
-     */
-    public byte getByte() {
-        final byte ret = peekByte(); 
-        ++nextByte;
-        ensureBufferNotEmpty();
-        return ret;
-    }
-
-    /**
-     * @return Next byte from the input, without advancing over that byte.  Do not call if at EOF.
-     */
-    public byte peekByte() {
-        if (eof()) {
-            throw new IllegalStateException("Cannot getByte() if EOF.");
-        }
-        return fileBuffer[nextByte];
-    }
-
-    /**
-     * Read from input until input is exhausted, EOLN is seen, or output buffer is filled
-     * @param outputBuffer where to put bytes read
-     * @param startOutputIndex where to start putting bytes read
-     * @return number of bytes read
-     */
-    public int readToEndOfOutputBufferOrEoln(final byte[] outputBuffer, final int startOutputIndex) {
-        boolean sawNewline;
-        int totalGrabbed = 0;
-        do {
-            if (!ensureBufferNotEmpty()) {
-                break;
-            }
-            final int startInputIndex = nextByte;
-            sawNewline = advanceToEobOrEoln();
-            int lengthOfChunk = nextByte - startInputIndex;
-
-            // Roll back if went past the amount that can be stored in the output buffer.
-            // Assumption is that lines are relatively short so this won't happen very often.
-            if (lengthOfChunk > outputBuffer.length - (startOutputIndex + totalGrabbed)) {
-                lengthOfChunk = outputBuffer.length - (startOutputIndex + totalGrabbed);
-                nextByte = startInputIndex + lengthOfChunk;
-            }
-            System.arraycopy(fileBuffer, startInputIndex, outputBuffer, startOutputIndex + totalGrabbed, lengthOfChunk);
-            totalGrabbed += lengthOfChunk;
-        } while (!sawNewline && totalGrabbed < outputBuffer.length - startOutputIndex);
-        ensureBufferNotEmpty();
-        return totalGrabbed;
-    }
-
-    /**
-     * Advance nextByte to end of currently-buffered input or to line terminator
-     * @return true if saw a line terminator
-     */
-    private boolean advanceToEobOrEoln() {
-        while (nextByte < numBytes) {
-            if (atEoln()) {
-                return true;
-            }
-            ++nextByte;
-        }
-        return false;
-    }
-
-    /**
-     * Ensure that fileBuffer has at least one byte available in it.  Potentially wipes out
-     * what is in fileBuffer so everything from fileBuffer[0..nextByte] should already have been pulled out.
-     * @return false if EOF, else true
-     */
-    private boolean ensureBufferNotEmpty() {
-        try {
-            if (nextByte < numBytes) {
-                return true;
-            }
-            nextByte = 0;
-            numBytes = in.read(fileBuffer);
-            atEof = (numBytes < 1);
-            return !atEof;
-        } catch (IOException e) {
-            throw new PicardException("Exception reading InputStream", e);
-        }
-    }
-
-}
diff --git a/src/java/net/sf/picard/io/IoUtil.java b/src/java/net/sf/picard/io/IoUtil.java
deleted file mode 100644
index d279035..0000000
--- a/src/java/net/sf/picard/io/IoUtil.java
+++ /dev/null
@@ -1,686 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.io;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.util.IterableOnceIterator;
-import net.sf.samtools.Defaults;
-import net.sf.samtools.util.*;
-
-import java.io.*;
-import java.nio.charset.Charset;
-import java.util.*;
-import java.util.regex.Pattern;
-import java.util.zip.GZIPInputStream;
-import java.util.zip.GZIPOutputStream;
-
-import org.apache.tools.bzip2.CBZip2InputStream;
-import org.apache.tools.bzip2.CBZip2OutputStream;
-
-/**
- * A class for utility methods that wrap or aggregate functionality in Java IO.
- *
- * @author Tim Fennell
- */
-public class IoUtil extends net.sf.samtools.util.IOUtil {
-    /** Possible extensions for VCF files and related formats. */
-    public static final String[] VCF_EXTENSIONS = new String[] {".vcf", ".vcf.gz", ".bcf"};
-
-    /**
-     * Checks that a file is non-null, exists, is not a directory and is readable.  If any
-     * condition is false then a runtime exception is thrown.
-     *
-     * @param file the file to check for readability
-     */
-    public static void assertFileIsReadable(final File file) {
-        if (file == null) {
-			throw new IllegalArgumentException("Cannot check readability of null file.");
-		} else if (!file.exists()) {
-            throw new PicardException("Cannot read non-existent file: " + file.getAbsolutePath());
-        }
-        else if (file.isDirectory()) {
-            throw new PicardException("Cannot read file because it is a directory: " + file.getAbsolutePath());
-        }
-        else if (!file.canRead()) {
-            throw new PicardException("File exists but is not readable: " + file.getAbsolutePath());
-        }
-    }
-
-    /**
-     * Checks that a file is non-null, and is either extent and writable, or non-existent but
-     * that the parent directory exists and is writable. If any
-     * condition is false then a runtime exception is thrown.
-     *
-     * @param file the file to check for writability
-     */
-    public static void assertFileIsWritable(final File file) {
-        if (file == null) {
-			throw new IllegalArgumentException("Cannot check readability of null file.");
-		} else if (!file.exists()) {
-            // If the file doesn't exist, check that it's parent directory does and is writable
-            final File parent = file.getAbsoluteFile().getParentFile();
-            if (!parent.exists()) {
-                throw new PicardException("Cannot write file: " + file.getAbsolutePath() + ". " +
-                        "Neither file nor parent directory exist.");
-            }
-            else if (!parent.isDirectory()) {
-                throw new PicardException("Cannot write file: " + file.getAbsolutePath() + ". " +
-                        "File does not exist and parent is not a directory.");
-            }
-            else if (!parent.canWrite()) {
-                throw new PicardException("Cannot write file: " + file.getAbsolutePath() + ". " +
-                        "File does not exist and parent directory is not writable..");
-            }
-        }
-        else if (file.isDirectory()) {
-            throw new PicardException("Cannot write file because it is a directory: " + file.getAbsolutePath());
-        }
-        else if (!file.canWrite()) {
-            throw new PicardException("File exists but is not writable: " + file.getAbsolutePath());
-        }
-    }
-
-    /**
-     * Checks that a directory is non-null, extent, writable and a directory 
-     * otherwise a runtime exception is thrown.
-     *
-     * @param dir the dir to check for writability
-     */
-    public static void assertDirectoryIsWritable(final File dir) {
-        if (dir == null) {
-            throw new IllegalArgumentException("Cannot check readability of null file.");
-        } 
-        else if (!dir.exists()) {
-            throw new PicardException("Directory does not exist: " + dir.getAbsolutePath());
-        }
-        else if (!dir.isDirectory()) {
-            throw new PicardException("Cannot write to directory because it is not a directory: " + dir.getAbsolutePath());
-        }
-        else if (!dir.canWrite()) {
-            throw new PicardException("Directory exists but is not writable: " + dir.getAbsolutePath());
-        }
-    }
-
-    /**
-     * Checks that a directory is non-null, extent, readable and a directory
-     * otherwise a runtime exception is thrown.
-     *
-     * @param dir the dir to check for writability
-     */
-    public static void assertDirectoryIsReadable(final File dir) {
-        if (dir == null) {
-            throw new IllegalArgumentException("Cannot check readability of null file.");
-        }
-        else if (!dir.exists()) {
-            throw new PicardException("Directory does not exist: " + dir.getAbsolutePath());
-        }
-        else if (!dir.isDirectory()) {
-            throw new PicardException("Cannot read from directory because it is not a directory: " + dir.getAbsolutePath());
-        }
-        else if (!dir.canRead()) {
-            throw new PicardException("Directory exists but is not readable: " + dir.getAbsolutePath());
-        }
-    }
-
-    /**
-     * Checks that the two files are the same length, and have the same content, otherwise throws a runtime exception.
-     */
-    public static void assertFilesEqual(final File f1, final File f2) {
-        try {
-            if (f1.length() != f2.length()) {
-                throw new PicardException("Files " + f1 + " and " + f2 + " are different lengths.");
-            }
-            final FileInputStream s1 = new FileInputStream(f1);
-            final FileInputStream s2 = new FileInputStream(f2);
-            final byte[] buf1 = new byte[1024 * 1024];
-            final byte[] buf2 = new byte[1024 * 1024];
-            int len1;
-            while ((len1 = s1.read(buf1)) != -1) {
-                final int len2 = s2.read(buf2);
-                if (len1 != len2) {
-                    throw new PicardException("Unexpected EOF comparing files that are supposed to be the same length.");
-                }
-                if (!Arrays.equals(buf1, buf2)) {
-                    throw new PicardException("Files " + f1 + " and " + f2 + " differ.");
-                }
-            }
-            s1.close();
-            s2.close();
-        } catch (IOException e) {
-            throw new PicardException("Exception comparing files " + f1 + " and " + f2, e);
-        }
-
-    }
-
-    /**
-     * Checks that a file is of non-zero length
-     */
-    public static void assertFileSizeNonZero(final File file) {
-        if (file.length() == 0) {
-            throw new PicardException(file.getAbsolutePath() + " has length 0");
-        }
-    }
-
-    /**
-     * Opens a file for reading, decompressing it if necessary
-     *
-     * @param file  The file to open
-     * @return the input stream to read from
-     */
-    public static InputStream openFileForReading(final File file) {
-
-        try {
-            if(file.getName().endsWith(".bz2")) {
-                return openBzipFileForReading(file);
-            }
-            if (file.getName().endsWith(".gz") ||
-                file.getName().endsWith(".bfq"))  {
-                return openGzipFileForReading(file);
-            }
-            //TODO: Other compression formats
-            else {
-                return new FileInputStream(file);
-            }
-        }
-        catch (IOException ioe) {
-            throw new PicardException("Error opening file: " + file.getName(), ioe);
-        }
-
-    }
-
-    /**
-     * Opens a GZIP-encoded file for reading, decompressing it if necessary
-     *
-     * @param file  The file to open
-     * @return the input stream to read from
-     */
-    public static InputStream openGzipFileForReading(final File file) {
-        
-        try {
-            return new GZIPInputStream(new FileInputStream(file));
-        }
-        catch (IOException ioe) {
-            throw new PicardException("Error opening file: " + file.getName(), ioe);
-        }
-    }
-
-    /**
-     * Opens a GZIP-encoded file for reading, decompressing it if necessary
-     *
-     * @param file  The file to open
-     * @return the input stream to read from
-     */
-    public static InputStream openBzipFileForReading(final File file) {
-
-        try {
-            final FileInputStream fis = new FileInputStream(file);
-            if(fis.read() != 66 || fis.read() != 90) { //Read magic number 'BZ' or else CBZip2InputStream will complain about it
-                fis.close();
-                throw new PicardException(file.getAbsolutePath() + " is not a BZIP file.");
-            }
-
-            return new CBZip2InputStream(fis);
-        }
-        catch (IOException ioe) {
-            throw new PicardException("Error opening file: " + file.getName(), ioe);
-        }
-    }
-
-    /**
-     * Opens a file for writing, overwriting the file if it already exists
-     *
-     * @param file  the file to write to
-     * @return the output stream to write to
-     */
-    public static OutputStream openFileForWriting(final File file) {
-        return openFileForWriting(file, false);
-    }
-
-    /**
-     * Opens a file for writing
-     *
-     * @param file  the file to write to
-     * @param append    whether to append to the file if it already exists (we overwrite it if false)
-     * @return the output stream to write to
-     */
-    public static OutputStream openFileForWriting(final File file, final boolean append) {
-
-        try {
-            if (file.getName().endsWith(".bz2")) {
-                return openBzipFileForWriting(file, append);
-            }
-            if (file.getName().endsWith(".gz") ||
-                file.getName().endsWith(".bfq")) {
-                return openGzipFileForWriting(file, append);
-            }
-            //TODO: Other compression formats
-            else {
-                return new FileOutputStream(file, append);
-            }
-        }
-        catch (IOException ioe) {
-            throw new PicardException("Error opening file for writing: " + file.getName(), ioe);
-        }
-    }
-
-    /**
-     * Preferred over PrintStream and PrintWriter because an exception is thrown on I/O error
-     */
-    public static BufferedWriter openFileForBufferedWriting(final File file, final boolean append) {
-        return new BufferedWriter(new OutputStreamWriter(openFileForWriting(file, append)), Defaults.NON_ZERO_BUFFER_SIZE);
-    }
-
-    /**
-     * Preferred over PrintStream and PrintWriter because an exception is thrown on I/O error
-     */
-    public static BufferedWriter openFileForBufferedWriting(final File file) {
-        return openFileForBufferedWriting(file, false);
-    }
-
-    /**
-     * Preferred over PrintStream and PrintWriter because an exception is thrown on I/O error
-     */
-    public static BufferedWriter openFileForBufferedUtf8Writing(final File file) {
-        return new BufferedWriter(new OutputStreamWriter(openFileForWriting(file), Charset.forName("UTF-8")),
-                Defaults.NON_ZERO_BUFFER_SIZE);
-    }
-
-    /**
-     * Opens a file for reading, decompressing it if necessary
-     *
-     * @param file  The file to open
-     * @return the input stream to read from
-     */
-    public static BufferedReader openFileForBufferedUtf8Reading(final File file) {
-        return new BufferedReader(new InputStreamReader(openFileForReading(file), Charset.forName("UTF-8")));
-    }
-
-    /**
-     * Opens a GZIP encoded file for writing
-     *
-     * @param file  the file to write to
-     * @param append    whether to append to the file if it already exists (we overwrite it if false)
-     * @return the output stream to write to
-     */
-    public static OutputStream openGzipFileForWriting(final File file, final boolean append) {
-
-        try {
-            if (Defaults.BUFFER_SIZE > 0) {
-            return new CustomGzipOutputStream(new FileOutputStream(file, append),
-                                              Defaults.BUFFER_SIZE,
-                                              Defaults.COMPRESSION_LEVEL);
-            } else {
-                return new CustomGzipOutputStream(new FileOutputStream(file, append), Defaults.COMPRESSION_LEVEL);
-            }
-        }
-        catch (IOException ioe) {
-            throw new PicardException("Error opening file for writing: " + file.getName(), ioe);
-        }
-    }
-
-    /**
-     * Opens a BZIP encoded file for writing
-     *
-     * @param file  the file to write to
-     * @param append    whether to append to the file if it already exists (we overwrite it if false)
-     * @return the output stream to write to
-     */
-    public static OutputStream openBzipFileForWriting(final File file, final boolean append) {
-
-        try {
-
-            final FileOutputStream fos = new FileOutputStream(file, append);
-            fos.write(66); //write magic number 'BZ' because CBZip2OutputStream does not do it for you
-            fos.write(90);
-            return IOUtil.maybeBufferOutputStream(new CBZip2OutputStream(fos));
-        }
-        catch (IOException ioe) {
-            throw new PicardException("Error opening file for writing: " + file.getName(), ioe);
-        }
-    }
-
-    public static OutputStream openFileForMd5CalculatingWriting(final File file) {
-        return new Md5CalculatingOutputStream(IoUtil.openFileForWriting(file), new File(file.getAbsolutePath() + ".md5"));
-    }
-
-    /**
-     * Utility method to copy the contents of input to output. The caller is responsible for
-     * opening and closing both streams.
-     * 
-     * @param input contents to be copied
-     * @param output destination
-     */
-    public static void copyStream(final InputStream input, final OutputStream output) {
-        try {
-            final byte[] buffer = new byte[Defaults.NON_ZERO_BUFFER_SIZE];
-            int bytesRead = 0;
-            while((bytesRead = input.read(buffer)) > 0) {
-                output.write(buffer, 0, bytesRead);
-            }
-        } catch (IOException e) {
-            throw new PicardException("Exception copying stream", e);
-        }
-    }
-
-    /**
-     * Copy input to output, overwriting output if it already exists.
-     */
-    public static void copyFile(final File input, final File output) {
-        try {
-            final InputStream is = new FileInputStream(input);
-            final OutputStream os = new FileOutputStream(output);
-            copyStream(is, os);
-            os.close();
-            is.close();
-        } catch (IOException e) {
-            throw new PicardException("Error copying " + input + " to " + output, e);
-        }
-    }
-
-    /**
-     * 
-     * @param directory
-     * @param regexp
-     * @return list of files matching regexp.
-     */
-    public static File[] getFilesMatchingRegexp(final File directory, final String regexp) {
-        final Pattern pattern = Pattern.compile(regexp);
-        return getFilesMatchingRegexp(directory, pattern);
-    }
-
-    public static File[] getFilesMatchingRegexp(final File directory, final Pattern regexp) {
-        return directory.listFiles( new FilenameFilter() {
-            public boolean accept(final File dir, final String name) {
-                return regexp.matcher(name).matches();
-            }
-        });
-    }
-
-    /**
-     * Delete the given file or directory.  If a directory, all enclosing files and subdirs are also deleted.
-     */
-    public static boolean deleteDirectoryTree(final File fileOrDirectory) {
-        boolean success = true;
-
-        if (fileOrDirectory.isDirectory()) {
-            for (final File child : fileOrDirectory.listFiles()) {
-                success = success && deleteDirectoryTree(child);
-            }
-        }
-
-        success = success && fileOrDirectory.delete();
-        return success;
-    }
-
-    /**
-     * Returns the size (in bytes) of the file or directory and all it's children.
-     */
-    public static long sizeOfTree(final File fileOrDirectory) {
-        long total = fileOrDirectory.length();
-        if (fileOrDirectory.isDirectory()) {
-            for (final File f : fileOrDirectory.listFiles()) {
-                total += sizeOfTree(f);
-            }
-        }
-
-        return total;
-    }
-
-    /**
-     *
-     * Copies a directory tree (all subdirectories and files) recursively to a destination
-     */
-    public static void copyDirectoryTree(final File fileOrDirectory, final File destination) {
-        if (fileOrDirectory.isDirectory()) {
-            destination.mkdir();
-            for(final File f : fileOrDirectory.listFiles()) {
-                final File destinationFileOrDirectory =  new File(destination.getPath(),f.getName());
-                if (f.isDirectory()){
-                    copyDirectoryTree(f,destinationFileOrDirectory);
-                }
-                else {
-                    copyFile(f,destinationFileOrDirectory);
-                }
-            }
-        }
-    }
-
-    /**
-     * Create a temporary subdirectory in the default temporary-file directory, using the given prefix and suffix to generate the name.
-     * Note that this method is not completely safe, because it create a temporary file, deletes it, and then creates
-     * a directory with the same name as the file.  Should be good enough.
-     *
-     * @param prefix The prefix string to be used in generating the file's name; must be at least three characters long
-     * @param suffix The suffix string to be used in generating the file's name; may be null, in which case the suffix ".tmp" will be used
-     * @return File object for new directory
-     */
-    public static File createTempDir(final String prefix, final String suffix) {
-        try {
-            final File tmp = File.createTempFile(prefix, suffix);
-            if (!tmp.delete()) {
-                throw new PicardException("Could not delete temporary file " + tmp);
-            }
-            if (!tmp.mkdir()) {
-                throw new PicardException("Could not create temporary directory " + tmp);
-            }
-            return tmp;
-        } catch (IOException e) {
-            throw new PicardException("Exception creating temporary directory.", e);
-        }
-    }
-
-    /** Checks that a file exists and is readable, and then returns a buffered reader for it. */
-    public static BufferedReader openFileForBufferedReading(final File file) {
-        return new BufferedReader(new InputStreamReader(openFileForReading(file)), Defaults.NON_ZERO_BUFFER_SIZE);
-	}
-
-    /** Takes a string and replaces any characters that are not safe for filenames with an underscore */
-    public static String makeFileNameSafe(final String str) {
-        return str.trim().replaceAll("[\\s!\"#$%&'()*/:;<=>?@\\[\\]\\\\^`{|}~]", "_");
-    }
-
-    /** Returns the name of the file extension (i.e. text after the last "." in the filename) including the . */
-    public static String fileSuffix(final File f) {
-        final String full = f.getName();
-        final int index = full.lastIndexOf(".");
-        if (index > 0 && index > full.lastIndexOf(File.separator)) {
-            return full.substring(index);
-        } else {
-            return null;
-        }
-    }
-
-    /** Returns the full path to the file with all symbolic links resolved **/
-    public static String getFullCanonicalPath(final File file) {
-        try {
-            File f = file.getCanonicalFile();
-            String canonicalPath = "";
-            while (f != null  && !f.getName().equals("")) {
-                canonicalPath = "/" + f.getName() + canonicalPath;
-                f = f.getParentFile();
-                if (f != null) f = f.getCanonicalFile();
-            }
-            return canonicalPath;
-        } catch (final IOException ioe) {
-            throw new RuntimeException("Error getting full canonical path for " +
-                    file + ": " + ioe.getMessage(), ioe);
-        }
-   }
-
-    /**
-     * Reads everything from an input stream as characters and returns a single String.
-     */
-    public static String readFully(final InputStream in) {
-        try {
-            final BufferedReader r = new BufferedReader(new InputStreamReader(in), Defaults.NON_ZERO_BUFFER_SIZE);
-            final StringBuilder builder = new StringBuilder(512);
-            String line = null;
-
-            while ((line = r.readLine()) != null) {
-                if (builder.length() > 0) builder.append('\n');
-                builder.append(line);
-            }
-
-            return builder.toString();
-        }
-        catch (final IOException ioe) {
-            throw new RuntimeIOException("Error reading stream", ioe);
-        }
-    }
-
-    /**
-     * Returns an iterator over the lines in a text file. The underlying resources are automatically
-     * closed when the iterator hits the end of the input, or manually by calling close().
-     *
-     * @param f a file that is to be read in as text
-     * @return an iterator over the lines in the text file
-     */
-    public static IterableOnceIterator<String> readLines(final File f) {
-        try {
-            final BufferedReader in = IoUtil.openFileForBufferedReading(f);
-
-            return new IterableOnceIterator<String>() {
-                private String next = in.readLine();
-
-                /** Returns true if there is another line to read or false otherwise. */
-                @Override public boolean hasNext() { return next != null; }
-
-                /** Returns the next line in the file or null if there are no more lines. */
-                @Override public String next() {
-                    try {
-                        final String tmp = next;
-                        next = in.readLine();
-                        if (next == null) in.close();
-                        return tmp;
-                    }
-                    catch (final IOException ioe) { throw new RuntimeIOException(ioe); }
-                }
-
-                /** Closes the underlying input stream. Not required if end of stream has already been hit. */
-                @Override public void close() throws IOException { CloserUtil.close(in); }
-            };
-        }
-        catch (final IOException e) {
-            throw new RuntimeIOException(e);
-        }
-    }
-
-    /** Returns all of the untrimmed lines in the provided file. */
-    public static List<String> slurpLines(final File file) throws FileNotFoundException {
-        return slurpLines(new FileInputStream(file));
-    }
-
-    public static List<String> slurpLines(final InputStream is) throws FileNotFoundException {
-        /** See {@link Scanner} source for origin of delimiter used here.  */
-        return tokenSlurp(is, Charset.defaultCharset(), "\r\n|[\n\r\u2028\u2029\u0085]");
-    }
-    
-    /** Convenience overload for {@link #slurp(java.io.InputStream, java.nio.charset.Charset)} using the default charset {@link Charset#defaultCharset()}. */
-    public static String slurp(final File file) throws FileNotFoundException {
-        return slurp(new FileInputStream(file));
-    }
-    
-    /** Convenience overload for {@link #slurp(java.io.InputStream, java.nio.charset.Charset)} using the default charset {@link Charset#defaultCharset()}. */
-    public static String slurp(final InputStream is) {
-        return slurp(is, Charset.defaultCharset());
-    }
-
-    /** Reads all of the stream into a String, decoding with the provided {@link Charset} then closes the stream quietly. */
-    public static String slurp(final InputStream is, final Charset charSet) {
-        final List<String> tokenOrEmpty = tokenSlurp(is, charSet, "\\A");
-        return tokenOrEmpty.isEmpty() ? StringUtil.EMPTY_STRING : CollectionUtil.getSoleElement(tokenOrEmpty);
-    }
-
-    /** Tokenizes the provided input stream into memory using the given delimiter. */
-    private static List<String> tokenSlurp(final InputStream is, final Charset charSet, final String delimiterPattern) {
-        try {
-            final Scanner s = new Scanner(is, charSet.toString()).useDelimiter(delimiterPattern);
-            final LinkedList<String> tokens = new LinkedList<String>();
-            while (s.hasNext()) {
-                tokens.add(s.next());
-            }
-            return tokens;
-        } finally {
-            CloserUtil.close(is);
-        }
-    }
-
-    /**
-     * Go through the files provided and if they have one of the provided file extensions pass the file into the output
-     * otherwise assume that file is a list of filenames and unfold it into the output.
-     */
-    public static List<File> unrollFiles(final Collection<File> inputs, final String... extensions) {
-        if (extensions.length < 1) throw new IllegalArgumentException("Must provide at least one extension.");
-
-        final Stack<File> stack = new Stack<File>();
-        final List<File> output = new ArrayList<File>();
-        stack.addAll(inputs);
-
-        while (!stack.empty()) {
-            final File f = stack.pop();
-            final String name = f.getName();
-            boolean matched = false;
-
-            for (final String ext : extensions) {
-                if (!matched && name.endsWith(ext)) {
-                    output.add(f);
-                    matched = true;
-                }
-            }
-
-            // If the file didn't match a given extension, treat it as a list of files
-            if (!matched) {
-                IoUtil.assertFileIsReadable(f);
-
-                for (final String s : IoUtil.readLines(f)) {
-                    if (!s.trim().isEmpty()) stack.push(new File(s.trim()));
-                }
-            }
-        }
-
-        // Preserve input order (since we're using a stack above) for things that care
-        Collections.reverse(output);
-
-        return output;
-    }
-}
-
-/**
- * Hacky little class used to allow us to set the compression level on a GZIP output stream which, for some
- * bizarre reason, is not exposed in the standard API.
- *
- * @author Tim Fennell
- */
-class CustomGzipOutputStream extends GZIPOutputStream {
-    CustomGzipOutputStream(final OutputStream outputStream, final int bufferSize, final int compressionLevel) throws IOException {
-        super(outputStream, bufferSize);
-        this.def.setLevel(compressionLevel);
-    }
-
-    CustomGzipOutputStream(final OutputStream outputStream, final int compressionLevel) throws IOException {
-        super(outputStream);
-        this.def.setLevel(compressionLevel);
-    }
-}
-
diff --git a/src/java/net/sf/picard/liftover/Chain.java b/src/java/net/sf/picard/liftover/Chain.java
deleted file mode 100644
index 850c56f..0000000
--- a/src/java/net/sf/picard/liftover/Chain.java
+++ /dev/null
@@ -1,410 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.liftover;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.util.Interval;
-import net.sf.picard.util.OverlapDetector;
-import net.sf.samtools.util.BufferedLineReader;
-
-import java.io.File;
-import java.io.PrintWriter;
-import java.util.*;
-import java.util.regex.Pattern;
-
-/**
- * Holds a single chain from a UCSC chain file.  Chain file format is described here: http://genome.ucsc.edu/goldenPath/help/chain.html
- *
- * In a chain file, a chain consists of a header line followed by alignment data lines.  Chain class embodies the header
- * line, and the list of ContinuousBlocks embodies the alignment data lines.
- *
- * A continuous block represents a continuous range of the "from" genome that maps to a continuous range of the "to"
- * genome of the same length.  A chain is an ordered list of continuous blocks, with gaps between the continuous blocks.
- * All the continuous blocks in a chain must map from a single "from" sequence to a single "to" sequence.  All the
- * continuous blocks in a chain map from the positive strand in the "from" genome build to the same strand in the
- * "to" genome build.  The gaps in between the continuous blocks in a chain represent un-lift-overable regions.
- * A gap in a chain may be found in another chain (e.g. if a portion of a sequence is reversed in the "to" genome).
- *
- * In UCSC liftOver terminology, the "target" is the "from" genome build, and the "query" is the "to" genome build.
- * E.g. when mapping from HG18 to HG19, the HG18 coordinates are "target" and HG19 is "query."  The USCS terminology
- * is not used here because it confuses me.
- *
- * Chain coordinates are zero-based, half open.  However, there is also an Interval attribute of Chain that is in
- * standard Picard coordinates, i.e. one-based inclusive.
- *
- * @author alecw at broadinstitute.org
- */
-class Chain {
-    // For parsing chain file
-    private static final Pattern SPLITTER = Pattern.compile("\\s");
-
-    /** Score is not used in basic liftover implementation, but is stored so that chain can be written to disk. */
-    final double score;
-    /** one-based, inclusive, so that Chain can be stored in an OverlapDetector */
-    final Interval interval;
-    /** Total score for chain is not used in basic liftover so not stored. */
-    // final double score;
-    final String fromSequenceName;
-    /** Overall size of the "from" sequence. */
-    final int fromSequenceSize;
-    /* tStrand always +, so not stored */
-    /** Start of range covered in "from" sequence. */
-    final int fromChainStart;
-    /** End of range covered in "from" sequence. */
-    final int fromChainEnd;
-    final String toSequenceName;
-    /** Overall size of the "to" sequence. */
-    final int toSequenceSize;
-    /** "to" strand. If this is true, then the region covered by this chain is flipped in the "to" genome.  */
-    final boolean toNegativeStrand;
-    /** Start of range covered in "to" sequence. */
-    final int toChainStart;
-    /** End of range covered in "to" sequence. */
-    final int toChainEnd;
-    /** ID of chain in file.  */
-    final int id;
-    private final List<ContinuousBlock> blockList = new ArrayList<ContinuousBlock>();
-
-    /**
-     * Construct a Chain from the parsed header fields.
-     */
-    private Chain(final double score, final String fromSequenceName, final int fromSequenceSize, final int fromChainStart, final int fromChainEnd,
-          final String toSequenceName, final int toSequenceSize, final boolean toNegativeStrand,
-          final int toChainStart, final int toChainEnd, final int id) {
-        // Convert  to one-based, inclusive for Interval.
-        interval = new Interval(fromSequenceName, fromChainStart + 1, fromChainEnd);
-        this.score = score;
-        this.toChainEnd = toChainEnd;
-        this.toSequenceName = toSequenceName;
-        this.toNegativeStrand = toNegativeStrand;
-        this.toSequenceSize = toSequenceSize;
-        this.toChainStart = toChainStart;
-        // not used
-        //this.score = score;
-        this.fromChainEnd = fromChainEnd;
-        this.fromSequenceName = fromSequenceName;
-        this.fromSequenceSize = fromSequenceSize;
-        this.fromChainStart = fromChainStart;
-        this.id = id;
-    }
-
-
-    /**
-     * Holds a range that continuously lines up between target and query genome builds.
-     * Indices are 0-based, half-open.
-     */
-    static class ContinuousBlock {
-        final int fromStart;	  /* Start of range covered in "from". */
-        final int toStart;		  /* Range covered in "to". */
-        final int blockLength;    /* length of continuous block of that maps btw from and to */
-        //int score;	 	 	  /* Score of block. */
-
-        private ContinuousBlock(final int fromStart, final int toStart, final int blockLength) {
-            this.fromStart = fromStart;
-            this.toStart = toStart;
-            this.blockLength = blockLength;
-        }
-
-        /**
-         * @return 0-based, half-open end of region in "from"
-         */
-        int getFromEnd() {
-            return fromStart + blockLength;
-        }
-
-        /**
-         * @return 0-based, half-open end of region in "to"
-         */
-        int getToEnd() {
-            return toStart + blockLength;
-        }
-
-        @Override
-        public boolean equals(final Object o) {
-            if (this == o) return true;
-            if (o == null || getClass() != o.getClass()) return false;
-
-            final ContinuousBlock that = (ContinuousBlock) o;
-
-            if (blockLength != that.blockLength) return false;
-            if (fromStart != that.fromStart) return false;
-            if (toStart != that.toStart) return false;
-
-            return true;
-        }
-
-        @Override
-        public int hashCode() {
-            int result = fromStart;
-            result = 31 * result + toStart;
-            result = 31 * result + blockLength;
-            return result;
-        }
-    }
-
-    private void addBlock(final int tStart, final int qStart, final int blockLength) {
-        blockList.add(new ContinuousBlock(tStart, qStart, blockLength));
-    }
-
-    /**
-     * @return The ith ContinuousBlock in this Chain.
-     */
-    ContinuousBlock getBlock(final int i) {
-        return blockList.get(i);
-    }
-
-    /**
-     * @return Unmodifiable list of ContinuousBlocks in this Chain.
-     */
-    List<ContinuousBlock> getBlocks() {
-        return Collections.unmodifiableList(blockList);
-    }
-
-    void write(final PrintWriter writer) {
-        writer.printf("chain\t%f\t%s\t%d\t+\t%d\t%d\t%s\t%d\t%s\t%d\t%d\t%d\n",
-                score, fromSequenceName, fromSequenceSize, fromChainStart, fromChainEnd,
-                toSequenceName, toSequenceSize, (toNegativeStrand? "-": "+"), toChainStart, toChainEnd, id);
-        for (int i = 0; i < blockList.size() - 1; ++i) {
-            final ContinuousBlock thisBlock = blockList.get(i);
-            final ContinuousBlock nextBlock = blockList.get(i+1);
-
-            final int fromGap = nextBlock.fromStart - thisBlock.getFromEnd();
-            final int toGap = nextBlock.toStart - thisBlock.getToEnd();
-            writer.printf("%d\t%d\t%d\n", thisBlock.blockLength, fromGap, toGap);
-        }
-        writer.printf("%d\n", blockList.get(blockList.size() - 1).blockLength);
-        writer.println();
-    }
-
-    /**
-     * Throw an exception if Chain looks strange.
-     */
-    void validate() {
-        validatePositive("fromSequenceSize", fromSequenceSize);
-        validateNonNegative("fromChainStart", fromChainStart);
-        validateNonNegative("fromChainEnd", fromChainEnd);
-        validatePositive("toSequenceSize", toSequenceSize);
-        validateNonNegative("toChainStart", toChainStart);
-        validateNonNegative("toChainEnd", toChainEnd);
-        int fromLength = fromChainEnd - fromChainStart;
-        validatePositive("from length", fromLength);
-        int toLength = toChainEnd - toChainStart;
-        validatePositive("to length", toLength);
-        if (fromLength > fromSequenceSize) throw new PicardException("From chain length (" + fromLength +
-                ") < from sequence length (" + fromSequenceSize + ") for chain " + id);
-        if (toLength > toSequenceSize) throw new PicardException("To chain length (" + toLength +
-                ") < to sequence length (" + toSequenceSize + ") for chain " + id);
-        if (fromSequenceName.isEmpty()) throw new PicardException("Chain " + id + "has empty from sequence name.");
-        if (toSequenceName.isEmpty()) throw new PicardException("Chain " + id + "has empty to sequence name.");
-        if (blockList.isEmpty()) throw new PicardException("Chain " + id + " has empty block list.");
-        final ContinuousBlock firstBlock = blockList.get(0);
-        if (firstBlock.fromStart != fromChainStart) {
-            throw new PicardException("First block from start != chain from start for chain " + id);
-        }
-        if (firstBlock.toStart != toChainStart) {
-            throw new PicardException("First block to start != chain to start for chain " + id);
-        }
-        final ContinuousBlock lastBlock = blockList.get(blockList.size() - 1);
-        if (lastBlock.getFromEnd() != fromChainEnd) {
-            throw new PicardException("Last block from end != chain from end for chain " + id);
-        }
-        if (lastBlock.getToEnd() != toChainEnd) {
-            throw new PicardException("Last block to end < chain to end for chain " + id);
-        }
-        for (int i = 1; i < blockList.size(); ++i) {
-            final ContinuousBlock thisBlock = blockList.get(i);
-            final ContinuousBlock prevBlock = blockList.get(i-1);
-            if (thisBlock.fromStart < prevBlock.getFromEnd()) {
-                throw new PicardException("Continuous block " + i + " from starts before previous block ends for chain " + id);
-            }
-            if (thisBlock.toStart < prevBlock.getToEnd()) {
-                throw new PicardException("Continuous block " + i + " to starts before previous block ends for chain " + id);
-            }
-        }
-    }
-
-    private void validatePositive(final String attributeName, final int attribute) {
-        if (attribute <= 0) {
-            throw new PicardException(attributeName + " is not positive: " + attribute + " for chain " + id);
-        }
-    }
-
-    private void validateNonNegative(final String attributeName, final int attribute) {
-        if (attribute < 0) {
-            throw new PicardException(attributeName + " is negative: " + attribute + " for chain " + id);
-        }
-    }
-
-    @Override
-    public boolean equals(final Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-
-        final Chain chain = (Chain) o;
-
-        if (fromChainEnd != chain.fromChainEnd) return false;
-        if (fromChainStart != chain.fromChainStart) return false;
-        if (fromSequenceSize != chain.fromSequenceSize) return false;
-        if (id != chain.id) return false;
-        if (Double.compare(chain.score, score) != 0) return false;
-        if (toChainEnd != chain.toChainEnd) return false;
-        if (toChainStart != chain.toChainStart) return false;
-        if (toNegativeStrand != chain.toNegativeStrand) return false;
-        if (toSequenceSize != chain.toSequenceSize) return false;
-        if (blockList != null ? !blockList.equals(chain.blockList) : chain.blockList != null) return false;
-        if (fromSequenceName != null ? !fromSequenceName.equals(chain.fromSequenceName) : chain.fromSequenceName != null)
-            return false;
-        if (interval != null ? !interval.equals(chain.interval) : chain.interval != null) return false;
-        if (toSequenceName != null ? !toSequenceName.equals(chain.toSequenceName) : chain.toSequenceName != null)
-            return false;
-
-        return true;
-    }
-
-    @Override
-    public int hashCode() {
-        int result;
-        long temp;
-        temp = score != +0.0d ? Double.doubleToLongBits(score) : 0L;
-        result = (int) (temp ^ (temp >>> 32));
-        result = 31 * result + (interval != null ? interval.hashCode() : 0);
-        result = 31 * result + (fromSequenceName != null ? fromSequenceName.hashCode() : 0);
-        result = 31 * result + fromSequenceSize;
-        result = 31 * result + fromChainStart;
-        result = 31 * result + fromChainEnd;
-        result = 31 * result + (toSequenceName != null ? toSequenceName.hashCode() : 0);
-        result = 31 * result + toSequenceSize;
-        result = 31 * result + (toNegativeStrand ? 1 : 0);
-        result = 31 * result + toChainStart;
-        result = 31 * result + toChainEnd;
-        result = 31 * result + id;
-        result = 31 * result + (blockList != null ? blockList.hashCode() : 0);
-        return result;
-    }
-
-    /**
-     * Read all the chains and load into an OverlapDetector.
-     * @param chainFile File in UCSC chain format.
-     * @return OverlapDetector will all Chains from reader loaded into it.
-     */
-    static OverlapDetector<Chain> loadChains(final File chainFile) {
-        final Set<Integer> ids = new HashSet<Integer>();
-        BufferedLineReader reader = new BufferedLineReader(IoUtil.openFileForReading(chainFile));
-        final OverlapDetector<Chain> ret = new OverlapDetector<Chain>(0, 0);
-        Chain chain;
-        while ((chain = Chain.loadChain(reader, chainFile.toString())) != null) {
-            if (ids.contains(chain.id)) {
-                throw new PicardException("Chain id " + chain.id + " appears more than once in chain file.");
-            }
-            ids.add(chain.id);
-            ret.addLhs(chain, chain.interval);
-        }
-        reader.close();
-        return ret;
-    }
-
-    /**
-     * Read a single Chain from reader.
-     * @param reader Text representation of chains.
-     * @param chainFile For error messages only.
-     * @return New Chain with associated ContinuousBlocks.
-     */
-    private static Chain loadChain(final BufferedLineReader reader, final String chainFile) {
-        String line = reader.readLine();
-        if (line == null) {
-            return null;
-        }
-        String[] chainFields = SPLITTER.split(line);
-        if (chainFields.length != 13) {
-            throwChainFileParseException("chain line has wrong number of fields", chainFile, reader.getLineNumber());
-        }
-        if (!"chain".equals(chainFields[0])) {
-            throwChainFileParseException("chain line does not start with 'chain'", chainFile, reader.getLineNumber());
-        }
-        double score = 0;
-        String fromSequenceName = null;
-        int fromSequenceSize = 0;
-        int fromChainStart = 0;
-        int fromChainEnd = 0;
-        String toSequenceName = null;
-        int toSequenceSize = 0;
-        boolean toNegativeStrand = false;
-        int toChainStart = 0;
-        int toChainEnd = 0;
-        int id = 0;
-        try {
-            score = Double.parseDouble(chainFields[1]);
-            fromSequenceName = chainFields[2];
-            fromSequenceSize = Integer.parseInt(chainFields[3]);
-            // Strand ignored because it is always +
-            fromChainStart = Integer.parseInt(chainFields[5]);
-            fromChainEnd = Integer.parseInt(chainFields[6]);
-            toSequenceName = chainFields[7];
-            toSequenceSize = Integer.parseInt(chainFields[8]);
-            toNegativeStrand = chainFields[9].equals("-");
-            toChainStart = Integer.parseInt(chainFields[10]);
-            toChainEnd = Integer.parseInt(chainFields[11]);
-            id = Integer.parseInt(chainFields[12]);
-        } catch (NumberFormatException e) {
-            throwChainFileParseException("Invalid field", chainFile, reader.getLineNumber());
-        }
-        final Chain chain = new Chain(score, fromSequenceName, fromSequenceSize, fromChainStart, fromChainEnd, toSequenceName, toSequenceSize, toNegativeStrand, toChainStart,
-                toChainEnd, id);
-        int toBlockStart = chain.toChainStart;
-        int fromBlockStart = chain.fromChainStart;
-        boolean sawLastLine = false;
-        while (true) {
-            line = reader.readLine();
-            if (line == null || line.equals("")) {
-                if (!sawLastLine) {
-                    throwChainFileParseException("Reached end of chain without seeing terminal block", chainFile, reader.getLineNumber());
-                }
-                break;
-            }
-            if (sawLastLine) {
-                throwChainFileParseException("Terminal block seen before end of chain", chainFile, reader.getLineNumber());
-            }
-            String[] blockFields = SPLITTER.split(line);
-            if (blockFields.length == 1) {
-                sawLastLine = true;
-            } else if (blockFields.length != 3) {
-                throwChainFileParseException("Block line has unexpected number of fields", chainFile, reader.getLineNumber());
-            }
-            int size = Integer.parseInt(blockFields[0]);
-            chain.addBlock(fromBlockStart, toBlockStart, size);
-            if (!sawLastLine) {
-                fromBlockStart += Integer.parseInt(blockFields[1]) + size;
-                toBlockStart += Integer.parseInt(blockFields[2]) + size;
-            }
-
-        }
-        chain.validate();
-        return chain;
-    }
-
-    private static void throwChainFileParseException(final String message, final String chainFile, final int lineNumber) {
-        throw new PicardException(message + " in chain file " + chainFile + " at line " + lineNumber);
-    }
-}
diff --git a/src/java/net/sf/picard/liftover/LiftOver.java b/src/java/net/sf/picard/liftover/LiftOver.java
deleted file mode 100644
index 9528d8a..0000000
--- a/src/java/net/sf/picard/liftover/LiftOver.java
+++ /dev/null
@@ -1,292 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.liftover;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.util.Interval;
-import net.sf.picard.util.Log;
-import net.sf.picard.util.OverlapDetector;
-import net.sf.samtools.SAMSequenceDictionary;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Java port of UCSC liftOver.  Only the most basic liftOver functionality is implemented.
- * Internally coordinates are 0-based, half-open. The API is standard Picard 1-based, inclusive.
- *
- * @author alecw at broadinstitute.org
- */
-public class LiftOver {
-    private static final Log LOG = Log.getInstance(LiftOver.class);
-    
-    public static final double DEFAULT_LIFTOVER_MINMATCH = 0.95;
-
-    private double liftOverMinMatch = DEFAULT_LIFTOVER_MINMATCH;
-    private final OverlapDetector<Chain> chains;
-
-    /**
-     * Load UCSC chain file in order to lift over Intervals.
-     */
-    public LiftOver(File chainFile) {
-        IoUtil.assertFileIsReadable(chainFile);
-        chains = Chain.loadChains(chainFile);
-    }
-
-    /**
-     * Throw an exception if all the "to" sequence names in the chains are not found in the given sequence dictionary.
-     */
-    public void validateToSequences(final SAMSequenceDictionary sequenceDictionary) {
-        for (final Chain chain : chains.getAll()) {
-            if (sequenceDictionary.getSequence(chain.toSequenceName) == null) {
-                throw new PicardException("Sequence " + chain.toSequenceName + " from chain file is not found in sequence dictionary.");
-            }
-        }
-
-    }
-
-    /**
-     * Lift over the given interval to the new genome build using the liftOverMinMatch set for this
-     * LiftOver object.
-     * @param interval Interval to be lifted over.
-     * @return Interval in the output build coordinates, or null if it cannot be lifted over.
-     */
-    public Interval liftOver(final Interval interval) {
-        return liftOver(interval, liftOverMinMatch);
-    }
-
-    /**
-     * Lift over the given interval to the new genome build.
-     * @param interval Interval to be lifted over.
-     * @param liftOverMinMatch Minimum fraction of bases that must remap.
-     * @return Interval in the output build coordinates, or null if it cannot be lifted over.
-     */
-    public Interval liftOver(final Interval interval, final double liftOverMinMatch) {
-        if (interval.length() == 0) {
-            throw new IllegalArgumentException("Zero-length interval cannot be lifted over.  Interval: " +
-                    interval.getName());
-        }
-        Chain chainHit = null;
-        TargetIntersection targetIntersection = null;
-        // Number of bases in interval that can be lifted over must be >= this.
-        double minMatchSize = liftOverMinMatch * interval.length();
-
-        // Find the appropriate Chain, and the part of the chain corresponding to the interval to be lifted over.
-        for (final Chain chain : chains.getOverlaps(interval)) {
-            final TargetIntersection candidateIntersection = targetIntersection(chain, interval);
-            if (candidateIntersection != null && candidateIntersection.intersectionLength >= minMatchSize) {
-                if (chainHit != null) {
-                    // In basic liftOver, multiple hits are not allowed.
-                    return null;
-                }
-                chainHit = chain;
-                targetIntersection = candidateIntersection;
-            } else if (candidateIntersection != null) {
-                LOG.info("Interval " + interval.getName() + " failed to match chain " + chain.id +
-                " because intersection length " + candidateIntersection.intersectionLength + " < minMatchSize "
-                + minMatchSize +
-                " (" + (candidateIntersection.intersectionLength/(float)interval.length()) + " < " + liftOverMinMatch + ")");
-            }
-        }
-        if (chainHit == null) {
-            // Can't be lifted over.
-            return null;
-        }
-
-        return createToInterval(interval.getName(), targetIntersection);
-    }
-
-    public List<PartialLiftover> diagnosticLiftover(final Interval interval) {
-        final List<PartialLiftover> ret = new ArrayList<PartialLiftover>();
-        if (interval.length() == 0) {
-            throw new IllegalArgumentException("Zero-length interval cannot be lifted over.  Interval: " +
-                    interval.getName());
-        }
-        for (final Chain chain : chains.getOverlaps(interval)) {
-            Interval intersectingChain = interval.intersect(chain.interval);
-            final TargetIntersection targetIntersection = targetIntersection(chain, intersectingChain);
-            if (targetIntersection == null) {
-                ret.add(new PartialLiftover(intersectingChain, chain.id));
-            } else {
-                Interval toInterval = createToInterval(interval.getName(), targetIntersection);
-                float percentLiftedOver = targetIntersection.intersectionLength/(float)interval.length();
-                ret.add(new PartialLiftover(intersectingChain, toInterval, targetIntersection.chain.id, percentLiftedOver));
-            }
-        }
-        return ret;
-    }
-
-    private static Interval createToInterval(final String intervalName, final TargetIntersection targetIntersection) {
-        // Compute the query interval given the offsets of the target interval start and end into the first and
-        // last ContinuousBlocks.
-        int toStart = targetIntersection.chain.getBlock(targetIntersection.firstBlockIndex).toStart + targetIntersection.startOffset;
-        int toEnd = targetIntersection.chain.getBlock(targetIntersection.lastBlockIndex).getToEnd() - targetIntersection.offsetFromEnd;
-        if (toEnd <= toStart || toStart < 0) {
-            throw new PicardException("Something strange lifting over interval " + intervalName);
-        }
-
-        if (targetIntersection.chain.toNegativeStrand) {
-            // Flip if query is negative.
-            int negativeStart = targetIntersection.chain.toSequenceSize - toEnd;
-            int negativeEnd = targetIntersection.chain.toSequenceSize - toStart;
-            toStart = negativeStart;
-            toEnd = negativeEnd;
-        }
-        // Convert to 1-based, inclusive.
-        return new Interval(targetIntersection.chain.toSequenceName, toStart+1, toEnd, targetIntersection.chain.toNegativeStrand,
-                intervalName);
-    }
-
-    /**
-     * Add up overlap btw the blocks in this chain and the given interval.
-     * @return Length of overlap, offsets into first and last ContinuousBlocks, and indices of first and
-     * last ContinuousBlocks.
-     */
-    private static TargetIntersection targetIntersection(final Chain chain, final Interval interval) {
-        int intersectionLength = 0;
-        // Convert interval to 0-based, half-open
-        int start = interval.getStart() - 1;
-        int end = interval.getEnd();
-        int firstBlockIndex = -1;
-        int lastBlockIndex = -1;
-        int startOffset = -1;
-        int offsetFromEnd = -1;
-        List<Chain.ContinuousBlock> blockList = chain.getBlocks();
-        for (int i = 0; i < blockList.size(); ++i) {
-            final Chain.ContinuousBlock block = blockList.get(i);
-            if (block.fromStart >= end) {
-                break;
-            } else if (block.getFromEnd() <= start) {
-                continue;
-            }
-            if (firstBlockIndex == -1) {
-                firstBlockIndex = i;
-                if (start > block.fromStart) {
-                    startOffset = start - block.fromStart;
-                } else {
-                    startOffset = 0;
-                }
-            }
-            lastBlockIndex = i;
-            if (block.getFromEnd() > end) {
-                offsetFromEnd = block.getFromEnd() - end;
-            } else {
-                offsetFromEnd = 0;
-            }
-            int thisIntersection = Math.min(end, block.getFromEnd()) - Math.max(start, block.fromStart);
-            if (thisIntersection <= 0) {
-                throw new PicardException("Should have been some intersection.");
-            }
-            intersectionLength += thisIntersection;
-        }
-        if (intersectionLength == 0) {
-            return null;
-        }
-        return new TargetIntersection(chain, intersectionLength, startOffset, offsetFromEnd, firstBlockIndex, lastBlockIndex);
-    }
-
-    /**
-     * Get minimum fraction of bases that must remap.
-     */
-    public double getLiftOverMinMatch() {
-        return liftOverMinMatch;
-    }
-
-    /**
-     * Set minimum fraction of bases that must remap.
-     */
-    public void setLiftOverMinMatch(final double liftOverMinMatch) {
-        this.liftOverMinMatch = liftOverMinMatch;
-    }
-
-    /**
-    * Value class returned by targetIntersection()
-    */
-    private static class TargetIntersection {
-        /** Chain used for this intersection */
-        final Chain chain;
-        /** Total intersectionLength length */
-        final int intersectionLength;
-        /** Offset of target interval start in first block. */
-        final int startOffset;
-        /** Distance from target interval end to end of last block. */
-        final int offsetFromEnd;
-        /** Index of first ContinuousBlock matching interval. */
-        final int firstBlockIndex;
-        /** Index of last ContinuousBlock matching interval. */
-        final int lastBlockIndex;
-
-        TargetIntersection(final Chain chain,final int intersectionLength, final int startOffset,
-                           final int offsetFromEnd, final int firstBlockIndex, final int lastBlockIndex) {
-            this.chain = chain;
-            this.intersectionLength = intersectionLength;
-            this.startOffset = startOffset;
-            this.offsetFromEnd = offsetFromEnd;
-            this.firstBlockIndex = firstBlockIndex;
-            this.lastBlockIndex = lastBlockIndex;
-        }
-    }
-
-    /**
-     * Represents a portion of a liftover operation, for use in diagnosing liftover failures.
-     */
-    public static class PartialLiftover {
-        /** Intersection between "from" interval and "from" region of a chain. */
-        final Interval fromInterval;
-        /**
-         * Result of lifting over fromInterval (with no percentage mapped requirement).  This is null
-         * if fromInterval falls entirely with a gap of the chain. */
-        final Interval toInterval;
-        /** id of chain used for this liftover */
-        final int chainId;
-        /** Percentage of bases in fromInterval that lifted over.  0 if fromInterval is not covered by any chain. */
-        final float percentLiftedOver;
-
-        PartialLiftover(final Interval fromInterval, final Interval toInterval, final int chainId, final float percentLiftedOver) {
-            this.fromInterval = fromInterval;
-            this.toInterval = toInterval;
-            this.chainId = chainId;
-            this.percentLiftedOver = percentLiftedOver;
-        }
-
-        PartialLiftover(final Interval fromInterval, final int chainId) {
-            this.fromInterval = fromInterval;
-            this.toInterval = null;
-            this.chainId = chainId;
-            this.percentLiftedOver = 0.0f;
-        }
-
-        public String toString() {
-            if (toInterval == null) {
-                // Matched a chain, but entirely within a gap.
-                return fromInterval.toString() + " (len " + fromInterval.length() + ")=>null using chain " + chainId;
-            }
-            final String strand = toInterval.isNegativeStrand()? "-": "+";
-            return fromInterval.toString() + " (len " + fromInterval.length() + ")=>" + toInterval + "(" + strand
-                    + ") using chain " + chainId + " ; pct matched " + percentLiftedOver;
-        }
-    }
-}
diff --git a/src/java/net/sf/picard/metrics/Header.java b/src/java/net/sf/picard/metrics/Header.java
deleted file mode 100644
index 6e36b32..0000000
--- a/src/java/net/sf/picard/metrics/Header.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.metrics;
-
-/**
- * A header for a metrics file.  A header simply consists of a type and some arbitrary
- * data, but must be able to turn itself into a String and parse it's data back out
- * of that String at a later date.
- *
- * @author Tim Fennell
- */
-public interface Header {
-    /** Converts the header to a String for persisting to a file. */
-    public String toString();
-
-    /** Parses the data contained in the String version of the header. */
-    public void parse(String in);
-
-}
diff --git a/src/java/net/sf/picard/metrics/MetricBase.java b/src/java/net/sf/picard/metrics/MetricBase.java
deleted file mode 100644
index f20adb3..0000000
--- a/src/java/net/sf/picard/metrics/MetricBase.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.metrics;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.util.FormatUtil;
-
-import java.lang.reflect.Field;
-
-/**
- * A base class from which all Metric classes should inherit.
- *
- * @author Tim Fennell
- */
-public class MetricBase {
-    /**
-     * An equals method that checks equality by asserting that the classes are of the exact
-     * same type and that all public fields are equal.
-     *
-     * @param o an instance to compare to
-     * @return true if they are equal, false otherwise
-     */
-    public boolean equals(final Object o) {
-        if (o == null) return false;
-        if (o.getClass() != getClass()) return false;
-
-        // Loop through all the fields and check that they are either
-        // null in both objects or equal in both objects
-        for (final Field f : getClass().getFields()) {
-            try {
-                final Object lhs = f.get(this);
-                final Object rhs = f.get(o);
-
-                if (lhs == null) {
-                    if (rhs == null) {
-                        // keep going
-                    }
-                    else if (rhs != null) {
-                        return false;
-                    }
-                }
-                else {
-                    if (lhs.equals(rhs)) {
-                        // keep going
-                    }
-                    else {
-                        return false;
-                    }
-                }
-            }
-            catch (IllegalAccessException iae) {
-                throw new PicardException("Could not read field " + f.getName() + " from a " + getClass().getSimpleName());
-            }
-        }
-
-        // If we got this far all the fields are equal
-        return true;
-    }
-
-    public int hashCode() {
-        int result = 0;
-        for (final Field f : getClass().getFields()) {
-            try {
-                result = 31 * result + f.get(this).hashCode();
-            } catch (IllegalAccessException e) {
-                throw new PicardException("Could not read field " + f.getName() + " from a " + getClass().getSimpleName());
-            }
-        }
-        return result;
-    }
-
-    /** Converts the metric class to a human readable string. */
-    public String toString() {
-        final StringBuilder buffer = new StringBuilder();
-        final FormatUtil formatter = new FormatUtil();
-
-        for (final Field f : getClass().getFields()) {
-            try {
-                buffer.append(f.getName());
-                buffer.append("\t");
-                buffer.append(formatter.format(f.get(this)));
-                buffer.append("\n");
-            }
-            catch (IllegalAccessException iae) {
-                throw new PicardException("Could not read field " + f.getName() + " from a " + getClass().getSimpleName());
-            }
-        }
-
-        return buffer.toString();
-    }
-
-    public boolean equals(MetricBase that) {
-        for (Field field : this.getClass().getFields()) {
-            try {
-                if (!field.get(this).equals(field.get(that))) {
-                    return false;
-                }
-            }
-            catch (IllegalAccessException ex) {
-                return false;
-            }
-        }
-        return true;
-
-    }
-}
diff --git a/src/java/net/sf/picard/metrics/MetricsFile.java b/src/java/net/sf/picard/metrics/MetricsFile.java
deleted file mode 100644
index fa7761d..0000000
--- a/src/java/net/sf/picard/metrics/MetricsFile.java
+++ /dev/null
@@ -1,521 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.metrics;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.util.FormatUtil;
-import net.sf.picard.util.Histogram;
-import net.sf.samtools.util.CloserUtil;
-import net.sf.samtools.util.StringUtil;
-
-import java.io.*;
-import java.lang.reflect.Field;
-import java.util.*;
-
-/**
- * Contains a set of metrics that can be written to a file and parsed back
- * again. The set of metrics is composed of zero or more instances of a class,
- * BEAN, that extends {@link MetricBase} (all instances must be of the same type)
- * and may optionally include one or more histograms that share the same key set.
- *
- * @author Tim Fennell
- */
-public class MetricsFile<BEAN extends MetricBase, HKEY extends Comparable> {
-    public static final String MAJOR_HEADER_PREFIX = "## ";
-    public static final String MINOR_HEADER_PREFIX = "# ";
-    public static final String SEPARATOR = "\t";
-    public static final String HISTO_HEADER = "## HISTOGRAM\t";
-    public static final String METRIC_HEADER = "## METRICS CLASS\t";
-
-    private final Set<String> columnLabels = new HashSet<String>();
-    private final List<Header> headers = new ArrayList<Header>();
-    private final List<BEAN> metrics = new ArrayList<BEAN>();
-    private final List<Histogram<HKEY>> histograms = new ArrayList<Histogram<HKEY>>();
-
-    /** Adds a header to the collection of metrics. */
-    public void addHeader(Header h) { this.headers.add(h); }
-
-    /** Returns the list of headers. */
-    public List<Header> getHeaders() { return Collections.unmodifiableList(this.headers); }
-
-    /** Adds a bean to the collection of metrics. */
-    public void addMetric(final BEAN bean) { this.metrics.add(bean); }
-
-    /** Returns the list of headers. */
-    public List<BEAN> getMetrics() { return Collections.unmodifiableList(this.metrics); }
-
-    public Set<String> getMetricsColumnLabels() { return Collections.unmodifiableSet(this.columnLabels); }
-
-    /** Returns the histogram contained in the metrics file if any. */
-    public Histogram<HKEY> getHistogram() {
-        if (histograms.size() > 0) return this.histograms.get(0);
-        else return null;
-    }
-
-    /** Sets the histogram contained in the metrics file. */
-    public void setHistogram(final Histogram<HKEY> histogram) {
-        if (this.histograms.isEmpty()) {
-            if (histogram != null) this.histograms.add(histogram);
-        }
-        else {
-            this.histograms.set(0, histogram);
-        }
-    }
-
-    /** Adds a histogram to the list of histograms in the metrics file. */
-    public void addHistogram(final Histogram<HKEY> histogram) {
-        this.histograms.add(histogram);
-    }
-
-    //** Returns an unmodifiable version of the histogram list */
-    public List<Histogram<HKEY>> getAllHistograms() {
-        return Collections.unmodifiableList(histograms);
-    }
-
-    /** Returns the number of histograms added to the metrics file. */
-    public int getNumHistograms() 
-    {
-    	return this.histograms.size();
-    }
-    
-    /** Returns the list of headers with the specified type. */
-    public List<Header> getHeaders(final Class<? extends Header> type) {
-        List<Header> tmp = new ArrayList<Header>();
-        for (final Header h : this.headers) {
-            if (h.getClass().equals(type)) {
-                tmp.add(h);
-            }
-        }
-
-        return tmp;
-    }
-
-    /**
-     * Writes out the metrics file to the supplied file. The file is written out
-     * headers first, metrics second and histogram third.
-     *
-     * @param f a File into which to write the metrics
-     */
-    public void write(final File f) {
-        FileWriter w = null;
-        try {
-            w = new FileWriter(f);
-            write(w);
-        }
-        catch (IOException ioe) {
-            throw new PicardException("Could not write metrics to file: " + f.getAbsolutePath(), ioe);
-        }
-        finally {
-            if (w != null) {
-                try {
-                    w.close();
-                } catch (IOException e) {
-                }
-            }
-        }
-    }
-
-    /**
-     * Writes out the metrics file to the supplied writer. The file is written out
-     * headers first, metrics second and histogram third.
-     *
-     * @param w a Writer into which to write the metrics
-     */
-    public void write(final Writer w) {
-        try {
-            final FormatUtil formatter = new FormatUtil();
-            final BufferedWriter out = new BufferedWriter(w);
-            printHeaders(out);
-            out.newLine();
-
-            printBeanMetrics(out, formatter);
-            out.newLine();
-
-            printHistogram(out, formatter);
-            out.newLine();
-            out.flush();
-        }
-        catch (IOException ioe) {
-            throw new PicardException("Could not write metrics file.", ioe);
-        }
-    }
-
-    /** Prints the headers into the provided PrintWriter. */
-    private void printHeaders(final BufferedWriter out) throws IOException {
-        for (final Header h : this.headers) {
-            out.append(MAJOR_HEADER_PREFIX);
-            out.append(h.getClass().getName());
-            out.newLine();
-            out.append(MINOR_HEADER_PREFIX);
-            out.append(h.toString());
-            out.newLine();
-        }
-    }
-
-    /** Prints each of the metrics entries into the provided PrintWriter. */
-    private void printBeanMetrics(final BufferedWriter out, final FormatUtil formatter) throws IOException {
-        if (this.metrics.isEmpty()) {
-            return;
-        }
-
-        // Write out a header row with the type of the metric class
-        out.append(METRIC_HEADER + getBeanType().getName());
-        out.newLine();
-
-        // Write out the column headers
-        final Field[] fields = getBeanType().getFields();
-        final int fieldCount = fields.length;
-
-        for (int i=0; i<fieldCount; ++i) {
-            out.append(fields[i].getName());
-            if (i < fieldCount - 1) {
-                out.append(MetricsFile.SEPARATOR);
-            }
-            else {
-                out.newLine();
-            }
-        }
-
-        // Write out each of the data rows
-        for (final BEAN bean : this.metrics) {
-            for (int i=0; i<fieldCount; ++i) {
-                try {
-                    final Object value = fields[i].get(bean);
-                    out.append(StringUtil.assertCharactersNotInString(formatter.format(value), '\t', '\n'));
-
-                    if (i < fieldCount - 1) {
-                        out.append(MetricsFile.SEPARATOR);
-                    }
-                    else {
-                        out.newLine();
-                    }
-                }
-                catch (IllegalAccessException iae) {
-                    throw new PicardException("Could not read property " + fields[i].getName()
-                            + " from class of type " + bean.getClass());
-                }
-            }
-        }
-
-        out.flush();
-    }
-
-    /** Prints the histogram if one is present. */
-    private void printHistogram(final BufferedWriter out, final FormatUtil formatter) throws IOException {
-        final List<Histogram<HKEY>> nonEmptyHistograms = new ArrayList<Histogram<HKEY>>();
-        for (final Histogram<HKEY> histo : this.histograms) {
-            if (!histo.isEmpty()) nonEmptyHistograms.add(histo);
-        }
-
-        if (nonEmptyHistograms.isEmpty()) {
-            return;
-        }
-
-        // Build a combined key set.  Assume comparator is the same for all Histograms
-        final java.util.Set<HKEY> keys = new TreeSet<HKEY>(nonEmptyHistograms.get(0).comparator());
-        for (final Histogram<HKEY> histo : nonEmptyHistograms) {
-            if (histo != null) keys.addAll(histo.keySet());
-        }
-
-        // Add a header for the histogram key type
-        out.append(HISTO_HEADER + nonEmptyHistograms.get(0).keySet().iterator().next().getClass().getName());
-        out.newLine();
-
-        // Output a header row
-        out.append(StringUtil.assertCharactersNotInString(nonEmptyHistograms.get(0).getBinLabel(), '\t', '\n'));
-        for (final Histogram<HKEY> histo : nonEmptyHistograms) {
-            out.append(SEPARATOR);
-            out.append(StringUtil.assertCharactersNotInString(histo.getValueLabel(), '\t', '\n'));
-        }
-        out.newLine();
-
-        for (final HKEY key : keys) {
-            out.append(key.toString());
-
-            for (final Histogram<HKEY> histo : nonEmptyHistograms) {
-                final Histogram<HKEY>.Bin bin = histo.get(key);
-                final double value = (bin == null ? 0 : bin.getValue());
-
-                out.append(SEPARATOR);
-                out.append(formatter.format(value));
-            }
-
-            out.newLine();
-        }
-    }
-
-    /** Gets the type of the metrics bean being used. */
-    private Class<?> getBeanType() {
-        if (this.metrics.isEmpty()) {
-            return null;
-        } else {
-            return this.metrics.get(0).getClass();
-        }
-    }
-
-    /** Reads the Metrics in from the given reader. */
-    public void read(final Reader r) {
-        final BufferedReader in = new BufferedReader(r);
-        final FormatUtil formatter = new FormatUtil();
-        String line = null;
-
-        try {
-            // First read the headers
-            Header header = null;
-            boolean inHeader = true;
-            while ((line = in.readLine()) != null && inHeader) {
-                line = line.trim();
-                // A blank line signals the end of the headers, otherwise parse out
-                // the header types and values and build the headers.
-                if ("".equals(line)) {
-                    inHeader = false;
-                }
-                else if (line.startsWith(MAJOR_HEADER_PREFIX)) {
-                    if (header != null) {
-                        throw new IllegalStateException("Consecutive header class lines encountered.");
-                    }
-                    
-                    final String className = line.substring(MAJOR_HEADER_PREFIX.length()).trim();
-                    try {
-                        header = (Header) loadClass(className, true).newInstance();
-                    }
-                    catch (final Exception e) {
-                        throw new PicardException("Error load and/or instantiating an instance of " + className, e);
-                    }
-                }
-                else if (line.startsWith(MINOR_HEADER_PREFIX)) {
-                    if (header == null) {
-                        throw new IllegalStateException("Header class must precede header value:" + line);
-                    }
-                    header.parse(line.substring(MINOR_HEADER_PREFIX.length()));
-                    this.headers.add(header);
-                    header = null;
-                }
-                else {
-                    throw new PicardException("Illegal state. Found following string in metrics file header: " + line);
-                }
-            }
-
-            //read space between starting headers and metrics
-            while (line != null && !line.startsWith(MAJOR_HEADER_PREFIX)) {
-                line = in.readLine();
-            }
-
-
-            if(line != null) {
-                line = line.trim();
-            
-                // Then read the metrics if there are any
-                if (line.startsWith(METRIC_HEADER)) {
-                    // Get the metric class from the header
-                    final String className = line.split(SEPARATOR)[1];
-                    Class<?> type = null;
-                    try {
-                        type = loadClass(className, true);
-                    }
-                    catch (final ClassNotFoundException cnfe) {
-                        throw new PicardException("Could not locate class with name " + className, cnfe);
-                    }
-
-                    // Read the next line with the column headers
-                    final String[] fieldNames = in.readLine().split(SEPARATOR);
-                    Collections.addAll(columnLabels, fieldNames);
-                    final Field[] fields = new Field[fieldNames.length];
-                    for (int i=0; i<fieldNames.length; ++i) {
-                        try {
-                            fields[i] = type.getField(fieldNames[i]);
-                        }
-                        catch (final Exception e) {
-                            throw new PicardException("Could not get field with name " + fieldNames[i] +
-                                " from class " + type.getName());
-                        }
-                    }
-
-                    // Now read the values
-                    while ((line = in.readLine()) != null) {
-                        if ("".equals(line.trim())) {
-                            break;
-                        }
-                        else {
-                            final String[] values = line.split(SEPARATOR, -1);
-                            BEAN bean = null;
-
-                            try { bean = (BEAN) type.newInstance(); }
-                            catch (final Exception e) { throw new PicardException("Error instantiating a " + type.getName(), e); }
-
-                            for (int i=0; i<fields.length; ++i) {
-                                Object value = null;
-                                if (values[i] != null && values[i].length() > 0) {
-                                    value = formatter.parseObject(values[i], fields[i].getType());
-                                }
-
-                                try { fields[i].set(bean, value); }
-                                catch (final Exception e) {
-                                    throw new PicardException("Error setting field " + fields[i].getName() +
-                                            " on class of type " + type.getName(), e);
-                                }
-                            }
-
-                            this.metrics.add(bean);
-                        }
-                    }
-                }
-            }
-
-            // Then read the histograms if any are present
-            while (line != null && !line.startsWith(MAJOR_HEADER_PREFIX)) {
-                line = in.readLine();
-            }
-            if (line != null && line.startsWith(HISTO_HEADER)) {
-                // Get the key type of the histogram
-                final String keyClassName = line.split(SEPARATOR)[1].trim();
-                Class<?> keyClass = null;
-
-                try { keyClass = loadClass(keyClassName, true); }
-                catch (final ClassNotFoundException cnfe) { throw new PicardException("Could not load class with name " + keyClassName); }
-
-                // Read the next line with the bin and value labels
-                final String[] labels = in.readLine().split(SEPARATOR);
-                for (int i=1; i<labels.length; ++i) {
-                    this.histograms.add(new Histogram<HKEY>(labels[0], labels[i]));
-                }
-
-                // Read the entries in the histograms
-                while ((line = in.readLine()) != null && !"".equals(line)) {
-                    final String[] fields = line.trim().split(SEPARATOR);
-                    final HKEY key = (HKEY) formatter.parseObject(fields[0], keyClass);
-
-                    for (int i=1; i<fields.length; ++i) {
-                        final double value = formatter.parseDouble(fields[i]);
-                        this.histograms.get(i-1).increment(key, value);
-                    }
-                }
-            }
-        }
-        catch (final IOException ioe) {
-            throw new PicardException("Could not read metrics from reader.", ioe);
-        }
-        finally{
-            CloserUtil.close(in);
-        }
-    }
-
-    /** Attempts to load a class, taking into account that some classes have "migrated" from the broad to sf. */
-    private Class<?> loadClass(final String className, final boolean tryOtherPackages) throws ClassNotFoundException {
-        // List of alternative packages to check in case classes moved around
-        final String[] packages = new String[] {
-                "edu.mit.broad.picard.genotype.concordance",
-                "edu.mit.broad.picard.genotype.fingerprint",
-                "edu.mit.broad.picard.ic",
-                "edu.mit.broad.picard.illumina",
-                "edu.mit.broad.picard.jumping",
-                "edu.mit.broad.picard.quality",
-                "edu.mit.broad.picard.samplevalidation",
-                "net.sf.picard.analysis",
-                "net.sf.picard.analysis.directed",
-                "net.sf.picard.sam",
-                "net.sf.picard.metrics"
-        };
-
-        try { return Class.forName(className); }
-        catch (ClassNotFoundException cnfe) {
-            if (tryOtherPackages) {
-                for (final String p : packages) {
-                    try {
-                        return loadClass(p + className.substring(className.lastIndexOf(".")), false);
-                    }
-                    catch (ClassNotFoundException cnf2) {/* do nothing */}
-                    // If it ws an inner class, try and see if it's a stand-alone class now
-                    if (className.indexOf("$") > -1) {
-                        try {
-                            return loadClass(p + "." + className.substring(className.lastIndexOf("$") + 1), false);
-                        }
-                        catch (ClassNotFoundException cnf2) {/* do nothing */}
-                    }
-                }
-            }
-
-            throw cnfe;
-        }
-    }
-
-    /** Checks that the headers, metrics and histogram are all equal. */
-    @Override
-    public boolean equals(final Object o) {
-        if (o == null) {
-            return false;
-        }
-        if (getClass() != o.getClass()) {
-            return false;
-        }
-        final MetricsFile that = (MetricsFile) o;
-
-        if (!areHeadersEqual(that)) {
-            return false;
-        }
-        if (!areMetricsEqual(that)) {
-            return false;
-        }
-        if (!areHistogramsEqual(that)) {
-            return false;
-        }
-
-        return true;
-    }
-
-    public boolean areHeadersEqual(final MetricsFile that) {
-        return this.headers.equals(that.headers);
-    }
-
-    public boolean areMetricsEqual(final MetricsFile that) {
-        return this.metrics.equals(that.metrics);
-    }
-
-    public boolean areHistogramsEqual(final MetricsFile that) {
-        return this.histograms.equals(that.histograms);
-    }
-
-    @Override
-    public int hashCode() {
-        int result = headers.hashCode();
-        result = 31 * result + metrics.hashCode();
-        return result;
-    }
-
-    /**
-     * Convenience method to read all the Metric beans from a metrics file.
-     * @param file to be read.
-     * @return list of beans from the file.
-     */
-    public static List<? extends MetricBase> readBeans(final File file) {
-        try {
-            final MetricsFile<MetricBase, Comparable<?>> metricsFile = new MetricsFile<MetricBase, Comparable<?>>();
-            metricsFile.read(new FileReader(file));
-            return metricsFile.getMetrics();
-        } catch (FileNotFoundException e) {
-            throw new PicardException(e.getMessage(), e);
-        }
-    }
-}
diff --git a/src/java/net/sf/picard/metrics/MultiLevelCollector.java b/src/java/net/sf/picard/metrics/MultiLevelCollector.java
deleted file mode 100644
index 73c986f..0000000
--- a/src/java/net/sf/picard/metrics/MultiLevelCollector.java
+++ /dev/null
@@ -1,335 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2012 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.metrics;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.analysis.MetricAccumulationLevel;
-import net.sf.picard.reference.ReferenceSequence;
-import net.sf.samtools.SAMReadGroupRecord;
-import net.sf.samtools.SAMRecord;
-
-import java.util.*;
-
-/**
- * MultiLevelCollector handles accumulating Metrics at different MetricAccumulationLevels(ALL_READS, SAMPLE, LIBRARY, READ_GROUP).
- * Based on the accumulationLevels and readGroup records passed to its constructor, MultiLevelCollector
- * will instantiate the number of PerUnitMetricCollector's needed to generate metrics for each of the levels provided.
- *
- * To Use:
- *
- * Instantiate a MultiLevelCollector and call setup(see thoughts about extending MultiLevelCollector below)
- * setup will create the underlying classes that will handle the accumulation level logic.
- * Pass all reads you wish to collect data against to MultiLevelCollector via the acceptRecord method
- * Call finish and use addAllLevelsToFile to add all of the metrics at each accumulation level to the given file.
- *
- * Extend MultiLevelCollector and implement makeArg and makeChildCollector
- * You will most likely want to make a class that extends PerUnitMetricCollector.  This class should do the work of keeping
- * track of values for one specific "accumulation unit" (e.g. for one library, or for one read group depending on what levels
- * you are accumulating at).
- *
- * If a record has any expensive calculations to be done (that don't need to be done differently depending
- * on what sample/library/read group the read is for) then create a container class for the results of these calculations and pass
- * this class as the ARGTYPE of both the PerUnitMetricCollector and MultiLevelCollector.  You can then do these calculations in the makeArg
- * method and they will only be done once per record.
- *
- * @param <METRIC_TYPE> The type of metrics being collected
- * @param <HISTOGRAM_KEY> If there is are histograms related to metrics of type <BEAN> then <HKEY> is the key value to these histograms
- * @param <ARGTYPE> The type of argument passed to individual PerUnitMetricCollector (see SAMRecordMultilevelCollector and PerUnitMetricCollector)
- */
-public abstract class MultiLevelCollector<METRIC_TYPE extends MetricBase, HISTOGRAM_KEY extends Comparable, ARGTYPE>  {
-
-    public static final String UNKNOWN = "unknown";
-    //The collector that will accept all records (allReads is NULL if !calculateAll)
-    private PerUnitMetricCollector<METRIC_TYPE, HISTOGRAM_KEY, ARGTYPE> allReadCollector;
-
-    //A list of Distributor that is at most length 3, 1 for each (SAMPLE, LIBRARY, READ_GROUP) accumulation levels
-    //these will be listed in the order in which their children would be added to a metric file
-    private List<Distributor> outputOrderedDistributors;
-
-    //Convert the current SAMRecord and the ReferenceSequence for that record into an ARGTYPE object
-    //see accept record for use
-    protected abstract ARGTYPE makeArg(final SAMRecord samRec, final ReferenceSequence refSeq);
-
-    /**
-     * Construct a PerUnitMetricCollector with the given arguments.
-     * @param sample If aggregating by ALL_READS this will be null, otherwise the sample that will be used to identify
-     *               this collector
-     * @param library If aggregating by SAMPLE this will be null, otherwise the library that will be used to identify
-     *               this collector
-     * @param readGroup If aggregating by LIBRARY this will be null, otherwise the readGroup that will be used to identify
-     *                  this collector
-     * @return A PerUnitMetricCollector parameterized by the given arguments
-     */
-    protected abstract PerUnitMetricCollector<METRIC_TYPE, HISTOGRAM_KEY, ARGTYPE> makeChildCollector(final String sample, final String library, final String readGroup);
-
-    //These are exposed here (rather than being encapsulated in the Distributor subclasses below in order
-    //to provide subclasses with an explicit point to add initialization (specific to accumulation level) for
-    //a PerUnitMetricCollector it is creating
-    protected PerUnitMetricCollector<METRIC_TYPE, HISTOGRAM_KEY, ARGTYPE> makeAllReadCollector() {
-        return makeChildCollector(null, null, null);
-    }
-    protected PerUnitMetricCollector<METRIC_TYPE, HISTOGRAM_KEY, ARGTYPE> makeSampleCollector(final SAMReadGroupRecord rg) {
-        return makeChildCollector(rg.getSample(), null, null);
-    }
-    protected PerUnitMetricCollector<METRIC_TYPE, HISTOGRAM_KEY, ARGTYPE> makeLibraryCollector(final SAMReadGroupRecord rg) {
-        return makeChildCollector(rg.getSample(), rg.getLibrary(), null);
-    }
-    protected PerUnitMetricCollector<METRIC_TYPE, HISTOGRAM_KEY, ARGTYPE> makeReadGroupCollector(final SAMReadGroupRecord rg) {
-        return makeChildCollector(rg.getSample(), rg.getLibrary(), rg.getPlatformUnit());
-    }
-
-    /**
-     * Distributors group PerUnitMetricCollectors based on a AccumulationLevel.  Their structure mimics
-     * PerUnitMetricCollectors but instead of adding records to metrics they identify which
-     * PerUnitMetricCollector should receive a specific record and distribute records on to the that collector
-     *
-     * There were will be 0 or 1 Distributors for each of the following MetriAcummulationLevels:
-     * ALL_READS, SAMPLE, LIBRARY, READ_GROUP
-     */
-    private abstract class Distributor {
-        //A Map mapping the key for a specific record (as determined by getKey) to the appropriate collector
-        private final Map<String, PerUnitMetricCollector<METRIC_TYPE, HISTOGRAM_KEY, ARGTYPE>> collectors;
-
-        //Given a SAMReadGroupRecord, return the key that identifies the collector for the corresponding SAMRecord
-        protected abstract String getKey(final SAMReadGroupRecord rg);
-
-        //Make a PerUnitMetricCollector for this given Distributor
-        protected abstract PerUnitMetricCollector<METRIC_TYPE, HISTOGRAM_KEY, ARGTYPE> makeCollector(final SAMReadGroupRecord rg);
-
-        protected abstract PerUnitMetricCollector<METRIC_TYPE, HISTOGRAM_KEY, ARGTYPE> makeUnknownCollector();
-
-        public Distributor(final List<SAMReadGroupRecord> rgRecs) {
-            collectors = new LinkedHashMap<String, PerUnitMetricCollector<METRIC_TYPE, HISTOGRAM_KEY, ARGTYPE>>();
-            for(final SAMReadGroupRecord rg : rgRecs) {
-                final String key = getKey(rg);
-                if(!collectors.containsKey(key)) {
-                    collectors.put(key, makeCollector(rg));
-                }
-            }
-        }
-
-        /** Call finish on each PerUnitMetricCollector in this Aggregate Collector */
-        public void finish() {
-            for(final PerUnitMetricCollector<METRIC_TYPE, HISTOGRAM_KEY, ARGTYPE> collector : collectors.values()) {
-                collector.finish();
-            }
-        }
-
-        /** Call acceptRecord(args) on the record collector identified by getKey */
-        public void acceptRecord(final ARGTYPE args, final SAMReadGroupRecord rg) {
-
-            String key = UNKNOWN;
-            if(rg != null) {
-                final String computedKey = getKey(rg);
-                if(computedKey != null) {
-                    key = computedKey;
-                }
-            }
-            PerUnitMetricCollector<METRIC_TYPE, HISTOGRAM_KEY, ARGTYPE> collector = collectors.get(key);
-            if (collector == null) {
-                if (!UNKNOWN.equals(key)) {
-                    throw new PicardException("Could not find collector for " + key);
-                }
-                collector = makeUnknownCollector();
-                collectors.put(key, collector);
-            }
-            collector.acceptRecord(args);
-        }
-
-        /** Add all records to the MetricsFile passed in, this will happen in the order they were
-         * found in the input ReadGroup records */
-        public void addToFile(final MetricsFile<METRIC_TYPE, HISTOGRAM_KEY> file) {
-            for(final PerUnitMetricCollector<METRIC_TYPE, HISTOGRAM_KEY, ARGTYPE> collector : collectors.values()) {
-                collector.addMetricsToFile(file);
-            }
-        }
-    }
-
-    /** A dummy Distributor to handle the ALL_READS accumulation level.  No distribution is required
-     * since there should only ever be one PerUnitMetricCollector for ALL_READS.
-     */
-    private class AllReadsDistributor extends Distributor {
-
-        public AllReadsDistributor(final List<SAMReadGroupRecord> rgRecs) {
-            super(new ArrayList<SAMReadGroupRecord>());
-            makeCollector(null);
-        }
-
-        @Override
-        protected String getKey(SAMReadGroupRecord rg) {
-            return null;
-        }
-
-        public void acceptRecord(final ARGTYPE args, final SAMReadGroupRecord rg) {
-            allReadCollector.acceptRecord(args);
-        }
-
-        @Override
-        protected PerUnitMetricCollector<METRIC_TYPE, HISTOGRAM_KEY, ARGTYPE> makeCollector(final SAMReadGroupRecord rg) {
-            allReadCollector = makeAllReadCollector();
-            return allReadCollector;
-        }
-
-        @Override
-        protected PerUnitMetricCollector<METRIC_TYPE, HISTOGRAM_KEY, ARGTYPE> makeUnknownCollector() {
-            throw new UnsupportedOperationException("Should not happen");
-        }
-
-        @Override
-        public void finish() {
-            allReadCollector.finish();
-        }
-
-        @Override
-        public void addToFile(final MetricsFile<METRIC_TYPE, HISTOGRAM_KEY> file) {
-            allReadCollector.addMetricsToFile(file);
-        }
-    }
-
-    //Discriminates between records based on sample name, and calls acceptRecord on the appropriate PerUnitMetricCollectors
-    private class SampleDistributor extends Distributor {
-        public SampleDistributor(final List<SAMReadGroupRecord> rgRecs) {
-            super(rgRecs);
-        }
-
-        @Override
-        protected String getKey(SAMReadGroupRecord rg) {
-            return rg.getSample();
-        }
-
-        @Override
-        protected PerUnitMetricCollector<METRIC_TYPE, HISTOGRAM_KEY, ARGTYPE> makeCollector(SAMReadGroupRecord rg) {
-            return makeSampleCollector(rg);
-        }
-
-        @Override
-        protected PerUnitMetricCollector<METRIC_TYPE, HISTOGRAM_KEY, ARGTYPE> makeUnknownCollector() {
-            return makeChildCollector(UNKNOWN, null, null);
-        }
-    }
-
-    //Discriminates between records based on library name, and calls acceptRecord on the appropriate PerUnitMetricCollectors
-    private class LibraryDistributor extends Distributor {
-        public LibraryDistributor(final List<SAMReadGroupRecord> rgRecs) {
-            super(rgRecs);
-        }
-
-        @Override
-        protected String getKey(SAMReadGroupRecord rg) {
-            return rg.getLibrary();
-        }
-
-        @Override
-        protected PerUnitMetricCollector<METRIC_TYPE, HISTOGRAM_KEY, ARGTYPE> makeCollector(SAMReadGroupRecord rg) {
-            return makeLibraryCollector(rg);
-        }
-
-        @Override
-        protected PerUnitMetricCollector<METRIC_TYPE, HISTOGRAM_KEY, ARGTYPE> makeUnknownCollector() {
-            return makeChildCollector(UNKNOWN, UNKNOWN, null);
-        }
-    }
-
-    //Discriminates between records based on read group name, and calls acceptRecord on the appropriate PerUnitMetricCollectors
-    private class ReadGroupCollector extends Distributor {
-        public ReadGroupCollector(final List<SAMReadGroupRecord> rgRecs) {
-            super(rgRecs);
-        }
-
-        @Override
-        protected String getKey(SAMReadGroupRecord rg) {
-            return rg.getPlatformUnit();
-        }
-
-        @Override
-        protected PerUnitMetricCollector<METRIC_TYPE, HISTOGRAM_KEY, ARGTYPE> makeCollector(SAMReadGroupRecord rg) {
-            return makeReadGroupCollector(rg);
-        }
-
-        @Override
-        protected PerUnitMetricCollector<METRIC_TYPE, HISTOGRAM_KEY, ARGTYPE> makeUnknownCollector() {
-            return makeChildCollector(UNKNOWN, UNKNOWN, UNKNOWN);
-        }
-    }
-
-    /**
-     * Use an init method so that overloaded methods in subclasses can pass use parameters that are initialized in their constructor
-     * @param accumulationLevels PerUnitMetricCollectors will only be created for the levels identified by accumulationLevels
-     * @param samRgRecords PerUnitMetricCollectors will be created for each of the different samples, libraries, and
-     *                     readGroups found in the records depending on the accumulationLevels provided
-     */
-    protected void setup(final Set<MetricAccumulationLevel> accumulationLevels, final List<SAMReadGroupRecord> samRgRecords) {
-        outputOrderedDistributors = new ArrayList<Distributor>(4);
-        if(accumulationLevels.contains(MetricAccumulationLevel.ALL_READS)) {
-            outputOrderedDistributors.add(new AllReadsDistributor(samRgRecords));
-        }
-        if (accumulationLevels.contains(MetricAccumulationLevel.SAMPLE)) {
-            outputOrderedDistributors.add(new SampleDistributor(samRgRecords));
-        }
-
-        if(accumulationLevels.contains(MetricAccumulationLevel.LIBRARY)) {
-            outputOrderedDistributors.add(new LibraryDistributor(samRgRecords));
-        }
-
-        if(accumulationLevels.contains(MetricAccumulationLevel.READ_GROUP)) {
-            outputOrderedDistributors.add(new ReadGroupCollector(samRgRecords));
-        }
-    }
-
-    /**
-     * Construct a argument of ARGTYPE using the given SAMRecord and ReferenceSequence then pass
-     * this value to all collectors that should include this record
-     */
-    public void acceptRecord(final SAMRecord record, final ReferenceSequence refSeq) {
-        final ARGTYPE arg = makeArg(record, refSeq);
-
-        for(final Distributor collector : outputOrderedDistributors) {
-            collector.acceptRecord(arg, record.getReadGroup());
-        }
-    }
-
-    /**
-     * Call finish on all PerUnitMetricCollectors
-     */
-    public void finish() {
-        for(final Distributor collector : outputOrderedDistributors) {
-            collector.finish();
-        }
-    }
-
-    /** Get the PerUnitMetricCollector that collects reads for all levels */
-    public PerUnitMetricCollector<METRIC_TYPE, HISTOGRAM_KEY, ARGTYPE> getAllReadsCollector() {
-        return allReadCollector;
-    }
-
-    /** Add all metrics to the given file in the following MetricAccumulationLevel order
-     *  ALL_READS, SAMPLE, LIBRARY, READ_GROUP.
-     */
-    public void addAllLevelsToFile(final MetricsFile<METRIC_TYPE, HISTOGRAM_KEY> file) {
-        for(final Distributor collector : outputOrderedDistributors) {
-            collector.addToFile(file);
-        }
-    }
-}
diff --git a/src/java/net/sf/picard/metrics/MultilevelMetrics.java b/src/java/net/sf/picard/metrics/MultilevelMetrics.java
deleted file mode 100644
index 290e9ce..0000000
--- a/src/java/net/sf/picard/metrics/MultilevelMetrics.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package net.sf.picard.metrics;
-
-
-public class MultilevelMetrics extends MetricBase {
-     /** The sample to which these metrics apply.  If null, it means they apply
-     * to all reads in the file. */
-    public String SAMPLE;
-
-    /** The library to which these metrics apply.  If null, it means that the
-     * metrics were accumulated at the sample level. */
-    public String LIBRARY = null;
-
-    /** The read group to which these metrics apply.  If null, it means that
-     * the metrics were accumulated at the library or sample level.*/
-    public String READ_GROUP = null;
-}
diff --git a/src/java/net/sf/picard/metrics/PerUnitMetricCollector.java b/src/java/net/sf/picard/metrics/PerUnitMetricCollector.java
deleted file mode 100644
index 17f48a6..0000000
--- a/src/java/net/sf/picard/metrics/PerUnitMetricCollector.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2012 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.metrics;
-
-/**
- *  PerRecordCollector - An interface for classes that collect data in order to generate one or more metrics.
- *      This process usually occurs in the following fashion:
- *      1. Loop through a data set (usually all records in a BAM file) and call collector.acceptRecord( data ),
- *         data in this step is usually added to metrics/histogram objects
- *      2. Call collector.finish() - perform any final calculations necessary after ALL records have been accepted
- *      3. addMetricsToFile is then used to add any metric(s) or histogram(s) to the given file
- *
- *      BEAN    - The Metric type we are generating
- *      HKEY    - The Key used in any histograms, use a Wildcard(?) type if there are no histograms
- *      ARGTYPE - Collectors are often used in groups of accumulation levels, in order to avoid recalculating
- *                any information needed by multiple collectors we allow different types of arguments that
- *                extend DefaultPerRecordCollectorArgs to accommodate any computed values
- */
-public interface PerUnitMetricCollector<BEAN extends MetricBase, HKEY extends Comparable, ARGTYPE> {
-    /**
-     * Add a SAMRecord (with ReferenceSequence and Read Group info) to the metric(s) being calculated)
-     * @param args Contains SAMRecord, SAMReadGroupRecord, ReferenceSequence of current record and any previously
-     *             computed values that might be needed for this class
-     */
-    public void acceptRecord(final ARGTYPE args);
-
-    /** When all records have been collected, compute any final values needed to finish constructing metrics/histogram */
-    public void finish();
-
-    /**
-     * Any metrics collected will be added to the metric file provided.
-     * @param file MetricsFile to which all metrics created by this collector should be added
-     */
-    public void addMetricsToFile(final MetricsFile<BEAN, HKEY> file);
-}
-
diff --git a/src/java/net/sf/picard/metrics/SAMRecordAndReference.java b/src/java/net/sf/picard/metrics/SAMRecordAndReference.java
deleted file mode 100644
index 7708cfc..0000000
--- a/src/java/net/sf/picard/metrics/SAMRecordAndReference.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package net.sf.picard.metrics;
-
-import net.sf.picard.reference.ReferenceSequence;
-import net.sf.samtools.SAMRecord;
-
-public class SAMRecordAndReference {
-    private final SAMRecord samRec;
-    private final ReferenceSequence refSeq;
-
-    public SAMRecordAndReference(final SAMRecord samRec, final ReferenceSequence refSeq) {
-        this.samRec = samRec;
-        this.refSeq = refSeq;
-    }
-
-    public SAMRecord getSamRecord() {
-        return samRec;
-    }
-
-    public ReferenceSequence getReferenceSequence() {
-        return refSeq;
-    }
-}
\ No newline at end of file
diff --git a/src/java/net/sf/picard/metrics/SAMRecordAndReferenceMultiLevelCollector.java b/src/java/net/sf/picard/metrics/SAMRecordAndReferenceMultiLevelCollector.java
deleted file mode 100644
index 00e433f..0000000
--- a/src/java/net/sf/picard/metrics/SAMRecordAndReferenceMultiLevelCollector.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package net.sf.picard.metrics;
-
-import net.sf.picard.reference.ReferenceSequence;
-import net.sf.samtools.SAMRecord;
-
-public abstract class SAMRecordAndReferenceMultiLevelCollector<BEAN extends MetricBase, HKEY extends Comparable> extends MultiLevelCollector<BEAN, HKEY, SAMRecordAndReference> {
-
-        @Override
-        protected SAMRecordAndReference makeArg(SAMRecord samRec, final ReferenceSequence refSeq) {
-            return new SAMRecordAndReference(samRec, refSeq);
-        }
-}
-
-
diff --git a/src/java/net/sf/picard/metrics/SAMRecordMultiLevelCollector.java b/src/java/net/sf/picard/metrics/SAMRecordMultiLevelCollector.java
deleted file mode 100644
index e5835a5..0000000
--- a/src/java/net/sf/picard/metrics/SAMRecordMultiLevelCollector.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package net.sf.picard.metrics;
-
-import net.sf.picard.reference.ReferenceSequence;
-import net.sf.samtools.SAMRecord;
-
-/** Defines a MultilevelPerRecordCollector using the argument type of SAMRecord so that this doesn't have to be redefined for each subclass of MultilevelPerRecordCollector */
-public abstract class SAMRecordMultiLevelCollector<BEAN extends MetricBase, HKEY extends Comparable> extends MultiLevelCollector<BEAN, HKEY, SAMRecord> {
-
-    @Override
-    protected SAMRecord makeArg(SAMRecord samRec, final ReferenceSequence refSeq) {
-        return samRec;
-    }
-}
diff --git a/src/java/net/sf/picard/metrics/StringHeader.java b/src/java/net/sf/picard/metrics/StringHeader.java
deleted file mode 100644
index fea5517..0000000
--- a/src/java/net/sf/picard/metrics/StringHeader.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.metrics;
-
-import net.sf.samtools.util.StringUtil;
-
-/**
- * A simple header who's data type is a single String.  Should not be used for anything other
- * than comments or descriptive text.
- *
- * @author Tim Fennell
- */
-public class StringHeader implements Header {
-    private String value;
-
-    /** Default constructor. */
-    public StringHeader() {}
-
-    /** Constructor that uses the supplied value as the value of the header. */
-    public StringHeader(String value) {
-        setValue(value);
-    }
-
-    public void parse(String in) { value = in.trim(); }
-    public String toString() { return value; }
-
-    public String getValue() { return value; }
-    public void setValue(String value) { this.value = StringUtil.assertCharactersNotInString(value, '\n'); }
-
-    /** Checks equality on the value of the header. */
-    public boolean equals(Object o) {
-        if (o != null && o instanceof StringHeader) {
-            StringHeader that = (StringHeader) o;
-            if (this.value == null) {
-                return that.value == null;
-            }
-            else {
-                return this.value.equals(that.value);
-            }
-        }
-        else {
-            return false;
-        }
-    }
-
-    @Override
-    public int hashCode() {
-        return value != null ? value.hashCode() : 0;
-    }
-}
diff --git a/src/java/net/sf/picard/metrics/VersionHeader.java b/src/java/net/sf/picard/metrics/VersionHeader.java
deleted file mode 100644
index 50e52dd..0000000
--- a/src/java/net/sf/picard/metrics/VersionHeader.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.metrics;
-
-import net.sf.samtools.util.StringUtil;
-
-/**
- * Header that stores information about the version of some piece of software or
- * data used to create the metrics file.  Payload consists of a name or description
- * of the versioned item and a version string.
- *
- * @author Tim Fennell
- */
-public class VersionHeader implements Header {
-    private String versionedItem;
-    private String versionString;
-
-    public void parse(String in) {
-        String[] fields = in.split("\t");
-        this.versionedItem = fields[0];
-        this.versionString = fields[1];
-    }
-
-    public String toString() {
-        return this.versionedItem + "\t" + this.versionString;
-    }
-
-    public String getVersionedItem() { return versionedItem; }
-    public void setVersionedItem(String versionedItem) {
-        this.versionedItem = StringUtil.assertCharactersNotInString(versionedItem, '\t', '\n');
-    }
-
-    public String getVersionString() { return versionString; }
-    public void setVersionString(String versionString) {
-        this.versionString = StringUtil.assertCharactersNotInString(versionString, '\t', '\n');
-    }
-
-    /** Equals method that checks that both the item and version string are equal. */
-    public boolean equals(Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-
-        VersionHeader that = (VersionHeader) o;
-
-        if (versionString != null ? !versionString.equals(that.versionString) : that.versionString != null)
-            return false;
-        if (versionedItem != null ? !versionedItem.equals(that.versionedItem) : that.versionedItem != null)
-            return false;
-
-        return true;
-    }
-
-    @Override
-    public int hashCode() {
-        int result = versionedItem != null ? versionedItem.hashCode() : 0;
-        result = 31 * result + (versionString != null ? versionString.hashCode() : 0);
-        return result;
-    }
-}
diff --git a/src/java/net/sf/picard/pedigree/PedFile.java b/src/java/net/sf/picard/pedigree/PedFile.java
deleted file mode 100644
index 648ca20..0000000
--- a/src/java/net/sf/picard/pedigree/PedFile.java
+++ /dev/null
@@ -1,147 +0,0 @@
-package net.sf.picard.pedigree;
-
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.util.Log;
-import net.sf.samtools.util.RuntimeIOException;
-
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.IOException;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.TreeMap;
-import java.util.regex.Pattern;
-
-/**
- * Represents a .ped file of family information as documented here:
- *    http://pngu.mgh.harvard.edu/~purcell/plink/data.shtml
- *
- * Stores the information in memory as a map of individualId -> Pedigree information for that individual
- */
-public class PedFile extends TreeMap<String, PedFile.PedTrio> {
-    private static final Log log = Log.getInstance(PedFile.class);
-    static final Pattern WHITESPACE = Pattern.compile("\\s+");
-    static final Pattern TAB = Pattern.compile("\\t");
-    private final Pattern delimiterPattern;
-    private final String delimiterString; // A textual representation of the delimiter, for output purposes
-
-    // These two are really for PedTrio, but they can't be static in there and need to be accessed outside of PedFile
-    public static final Number NO_PHENO = new Integer(-9);
-    public static final Sex UNKNOWN_SEX = Sex.Unknown;
-
-    public PedFile(final boolean isTabMode) {
-        delimiterPattern = isTabMode ? TAB : WHITESPACE;
-        delimiterString = isTabMode ? "tabs" : "whitespace";
-    }
-
-    /** Adds a trio to the PedFile keyed by the individual id. */
-    public void add(final PedTrio trio) {
-        put(trio.getIndividualId(), trio);
-    }
-
-    /**
-     * Writes a set of pedigrees out to disk.
-     */
-    public void write(final File file) {
-        IoUtil.assertFileIsWritable(file);
-        final BufferedWriter out = IoUtil.openFileForBufferedWriting(file);
-
-        try {
-            for (final PedTrio trio : values()) {
-                out.write(trio.getFamilyId());
-                out.write("\t");
-                out.write(trio.getIndividualId());
-                out.write("\t");
-                out.write(trio.getPaternalId());
-                out.write("\t");
-                out.write(trio.getMaternalId());
-                out.write("\t");
-                out.write(String.valueOf(trio.getSex().toCode()));
-                out.write("\t");
-                out.write(trio.getPhenotype().toString());
-                out.newLine();
-            }
-
-            out.close();
-        }
-        catch (final IOException ioe) {
-            throw new RuntimeIOException("IOException while writing to file " + file.getAbsolutePath(), ioe);
-        }
-    }
-
-    /**
-     * Attempts to read a pedigree file into memory.
-     */
-    public static PedFile fromFile(final File file, final boolean isTabMode) {
-        final PedFile pedFile = new PedFile(isTabMode);
-
-        IoUtil.assertFileIsReadable(file);
-        for (final String line : IoUtil.readLines(file)) {
-            final String[] fields = pedFile.delimiterPattern.split(line);
-            if (fields.length != 6) {
-                log.error("Ped file line contained invalid number of fields, skipping: " + line);
-                continue;
-            }
-
-            final PedTrio trio = pedFile.new PedTrio(fields[0],
-                    fields[1],
-                    fields[2],
-                    fields[3],
-                    Sex.fromCode(Integer.parseInt(fields[4])),
-                    fields[5].contains(".") ? Double.parseDouble(fields[5]) : Integer.parseInt(fields[5])
-            );
-            pedFile.add(trio);
-        }
-
-        return pedFile;
-    }
-
-    /**
-     * Scans through the pedigrees and removes all entries that do not have both paternal and maternal ids set.
-     */
-    public PedFile removeIncompleteTrios() {
-        final Iterator<Map.Entry<String,PedTrio>> iterator = entrySet().iterator();
-
-        while (iterator.hasNext()) {
-            if (!iterator.next().getValue().hasBothParents()) iterator.remove();
-        }
-
-        return this;
-    }
-
-    public class PedTrio {
-        private final String familyId;
-        private final String individualId;
-        private final String paternalId;
-        private final String maternalId;
-        private final Sex sex;
-        private final Number phenotype;
-
-        /** Constructs a TRIO that cannot be modified after the fact. */
-        public PedTrio(final String familyId, final String individualId, final String paternalId, final String maternalId, final Sex sex, final Number phenotype) {
-            if (delimiterPattern.split(familyId).length != 1)     throw new IllegalArgumentException("FamilyID     cannot contain " + delimiterString + ": [" + familyId     + "]");
-            if (delimiterPattern.split(individualId).length != 1) throw new IllegalArgumentException("IndividualID cannot contain " + delimiterString + ": [" + individualId + "]");
-            if (delimiterPattern.split(paternalId).length != 1)   throw new IllegalArgumentException("PaternalID   cannot contain " + delimiterString + ": [" + paternalId   + "]");
-            if (delimiterPattern.split(maternalId).length != 1)   throw new IllegalArgumentException("MaternalID   cannot contain " + delimiterString + ": [" + maternalId   + "]");
-
-            this.familyId = familyId;
-            this.individualId = individualId;
-            this.paternalId = paternalId;
-            this.maternalId = maternalId;
-            this.sex = sex;
-            this.phenotype = phenotype;
-        }
-
-        /** True if this record has paternal and maternal ids, otherwise false. */
-        public boolean hasBothParents() {
-            return this.paternalId != null && this.maternalId != null;
-        }
-
-        public String getFamilyId() { return familyId; }
-        public String getIndividualId() { return individualId; }
-        public String getPaternalId() { return paternalId; }
-        public String getMaternalId() { return maternalId; }
-        public Sex getSex() { return sex; }
-        public Number getPhenotype() { return phenotype; }
-    }
-}
diff --git a/src/java/net/sf/picard/pedigree/Sex.java b/src/java/net/sf/picard/pedigree/Sex.java
deleted file mode 100644
index 812bc55..0000000
--- a/src/java/net/sf/picard/pedigree/Sex.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package net.sf.picard.pedigree;
-
-/**
- * Represents the sex of an individual.
- */
-public enum Sex {
-    Male(1), Female(2), Unknown(-9);
-
-    /** The integer code used when reading/writing ped files. */
-    private final int code;
-
-    /** Private constructor that takes the pedigree code for sex. */
-    private Sex(final int code) {
-        this.code = code;
-    }
-
-    /** Returns the code used to encode this sex in a ped/fam file. */
-    public int toCode() { return this.code;}
-
-    /** Decodes the Sex from a numeric code. Note that any value other than 1 or 2 will return Unknown. */
-    public static Sex fromCode(final int code) {
-        if (code == Male.code) return Male;
-        else if (code == Female.code) return Female;
-        else return Unknown;
-    }
-}
diff --git a/src/java/net/sf/picard/reference/AbstractFastaSequenceFile.java b/src/java/net/sf/picard/reference/AbstractFastaSequenceFile.java
deleted file mode 100644
index 2f006b8..0000000
--- a/src/java/net/sf/picard/reference/AbstractFastaSequenceFile.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.reference;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.io.IoUtil;
-import net.sf.samtools.SAMFileHeader;
-import net.sf.samtools.SAMSequenceDictionary;
-import net.sf.samtools.SAMTextHeaderCodec;
-import net.sf.samtools.util.BufferedLineReader;
-
-import java.io.File;
-import java.io.FileInputStream;
-
-/**
- * Provide core sequence dictionary functionality required by all fasta file readers.
- * @author Matt Hanna
- */
-abstract class AbstractFastaSequenceFile implements ReferenceSequenceFile {
-    protected final File file;
-    protected SAMSequenceDictionary sequenceDictionary;
-
-    /**
-     * Finds and loads the sequence file dictionary.
-     * @param file Fasta file to read.  Also acts as a prefix for supporting files.
-     */
-    AbstractFastaSequenceFile(final File file) {
-        this.file = file;
-        final File dictionary = findSequenceDictionary(file);
-
-        if (dictionary != null) {
-            IoUtil.assertFileIsReadable(dictionary);
-
-            try {
-                final SAMTextHeaderCodec codec = new SAMTextHeaderCodec();
-                final BufferedLineReader reader = new BufferedLineReader(new FileInputStream(dictionary));
-                final SAMFileHeader header = codec.decode(reader,
-                        dictionary.toString());
-                if (header.getSequenceDictionary() != null && header.getSequenceDictionary().size() > 0) {
-                    this.sequenceDictionary = header.getSequenceDictionary();
-                }
-                reader.close();
-            }
-            catch (Exception e) {
-                throw new PicardException("Could not open sequence dictionary file: " + dictionary, e);
-            }
-        }
-    }
-
-    protected static File findSequenceDictionary(final File file) {
-        // Try and locate the dictionary
-        String dictionaryName = file.getAbsolutePath();
-        String dictionaryNameExt = file.getAbsolutePath();
-        boolean fileTypeSupported = false;
-        for (final String extension : ReferenceSequenceFileFactory.FASTA_EXTENSIONS) {
-            if (dictionaryName.endsWith(extension)) {
-                  dictionaryNameExt = new String(dictionaryName);
-                  dictionaryNameExt += ".dict";
-                  dictionaryName = dictionaryName.substring(0, dictionaryName.lastIndexOf(extension));
-                  dictionaryName += ".dict";
-                  fileTypeSupported = true;
-                  break;
-            }
-        }
-        if (!fileTypeSupported)
-            throw new IllegalArgumentException("File is not a supported reference file type: " + file.getAbsolutePath());
-
-        final File dictionary = new File(dictionaryName);
-        if (dictionary.exists())
-            return dictionary;
-        // try without removing the file extension
-        final File dictionaryExt = new File(dictionaryNameExt);
-        if (dictionaryExt.exists())
-            return dictionaryExt;
-        else return null;
-    }
-
-    /**
-     * Returns the list of sequence records associated with the reference sequence if found
-     * otherwise null.
-     */
-    public SAMSequenceDictionary getSequenceDictionary() {
-        return this.sequenceDictionary;
-    }
-
-    /** Returns the full path to the reference file. */
-    public String toString() {
-        return this.file.getAbsolutePath();
-    }
-
-    /** default implementation -- override if index is supported */
-    public boolean isIndexed() {return false;}
-
-    /** default implementation -- override if index is supported */
-    public ReferenceSequence getSequence( String contig ) {
-        throw new UnsupportedOperationException();
-    }
-
-    /** default implementation -- override if index is supported */
-    public ReferenceSequence getSubsequenceAt( String contig, long start, long stop ) {
-        throw new UnsupportedOperationException();
-    }
-
-}
diff --git a/src/java/net/sf/picard/reference/ExtractSequences.java b/src/java/net/sf/picard/reference/ExtractSequences.java
deleted file mode 100644
index 5111806..0000000
--- a/src/java/net/sf/picard/reference/ExtractSequences.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.reference;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.StandardOptionDefinitions;
-import net.sf.picard.cmdline.Usage;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.util.Interval;
-import net.sf.picard.util.IntervalList;
-import net.sf.samtools.util.CloserUtil;
-import net.sf.samtools.util.SequenceUtil;
-
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.IOException;
-
-/**
- * Simple command line program that allows sub-sequences represented by an interval
- * list to be extracted from a reference sequence file.
- *
- * @author Tim Fennell
- */
-public class ExtractSequences extends CommandLineProgram {
-    @Usage public final String USAGE = "Extracts one or more intervals described in an interval_list file " +
-            "from a given reference sequence and writes them out in FASTA format. Requires a fasta index " +
-            "file to be present.";
-
-    @Option(doc="Interval list describing intervals to be extracted from the reference sequence.")
-    public File INTERVAL_LIST;
-
-    @Option(shortName= StandardOptionDefinitions.REFERENCE_SHORT_NAME, doc="Reference sequence file.")
-    public File REFERENCE_SEQUENCE;
-
-    @Option(shortName=StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc="Output fasta file.")
-    public File OUTPUT;
-
-    @Option(doc="Maximum line length for sequence data.")
-    public int LINE_LENGTH = 80;
-
-    public static void main(final String[] args) {
-        new ExtractSequences().instanceMainWithExit(args);
-    }
-
-    @Override
-    protected int doWork() {
-        IoUtil.assertFileIsReadable(INTERVAL_LIST);
-        IoUtil.assertFileIsReadable(REFERENCE_SEQUENCE);
-        IoUtil.assertFileIsWritable(OUTPUT);
-
-        final IntervalList intervals = IntervalList.fromFile(INTERVAL_LIST);
-        final ReferenceSequenceFile ref = ReferenceSequenceFileFactory.getReferenceSequenceFile(REFERENCE_SEQUENCE);
-        SequenceUtil.assertSequenceDictionariesEqual(intervals.getHeader().getSequenceDictionary(), ref.getSequenceDictionary());
-
-        final BufferedWriter out = IoUtil.openFileForBufferedWriting(OUTPUT);
-
-        for (final Interval interval : intervals) {
-            final ReferenceSequence seq = ref.getSubsequenceAt(interval.getSequence(), interval.getStart(), interval.getEnd());
-            final byte[] bases = seq.getBases();
-            if (interval.isNegativeStrand()) SequenceUtil.reverseComplement(bases);
-
-            try {
-                out.write(">");
-                out.write(interval.getName());
-                out.write("\n");
-
-                for (int i=0; i<bases.length; ++i) {
-                    if (i > 0 && i % LINE_LENGTH == 0) out.write("\n");
-                    out.write(bases[i]);
-                }
-
-                out.write("\n");
-            }
-            catch (IOException ioe) {
-                throw new PicardException("Error writing to file " + OUTPUT.getAbsolutePath(), ioe);
-
-            }
-        }
-
-        CloserUtil.close(out);
-
-        return 0;
-    }
-}
diff --git a/src/java/net/sf/picard/reference/FastaSequenceFile.java b/src/java/net/sf/picard/reference/FastaSequenceFile.java
deleted file mode 100644
index bde8840..0000000
--- a/src/java/net/sf/picard/reference/FastaSequenceFile.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.reference;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.io.FastLineReader;
-import net.sf.picard.io.IoUtil;
-import net.sf.samtools.SAMSequenceRecord;
-import net.sf.samtools.util.StringUtil;
-
-import java.io.File;
-
-/**
- * Implementation of ReferenceSequenceFile for reading from FASTA files.
- *
- * @author Tim Fennell
- */
-public class FastaSequenceFile extends AbstractFastaSequenceFile {
-
-    private final boolean truncateNamesAtWhitespace;
-    private FastLineReader in;
-    private int sequenceIndex = -1;
-    private final static int BUFFER_SIZE = 5000 ;
-    private final byte[] basesBuffer = new byte[BUFFER_SIZE];
-
-
-    /** Constructs a FastaSequenceFile that reads from the specified file. */
-    public FastaSequenceFile(final File file, final boolean truncateNamesAtWhitespace) {
-        super(file);
-        this.truncateNamesAtWhitespace = truncateNamesAtWhitespace;
-        this.in = new FastLineReader(IoUtil.openFileForReading(file));
-    }
-
-    /**
-     * It's good to call this to free up memory.
-     */
-    public void close() {
-        in.close();
-    }
-
-    public ReferenceSequence nextSequence() {
-        this.sequenceIndex += 1;
-
-        // Read the header line
-        final String name = readSequenceName();
-        if (name == null) {
-            close();
-            return null;
-        }
-
-        // Read the sequence
-        final int knownLength = (this.sequenceDictionary == null) ? -1 : this.sequenceDictionary.getSequence(this.sequenceIndex).getSequenceLength();
-        final byte[] bases = readSequence(knownLength);
-
-        return new ReferenceSequence(name, this.sequenceIndex, bases);
-    }
-
-    public void reset() {
-        this.sequenceIndex = -1;
-        this.in.close();
-        this.in = new FastLineReader(IoUtil.openFileForReading(file));
-
-    }
-
-    private String readSequenceName() {
-        in.skipNewlines();
-        if (in.eof()) {
-            return null;
-        }
-        final byte b = in.getByte();
-        if (b != '>') {
-            throw new PicardException("Format exception reading FASTA " + file + ".  Expected > but saw chr(" +
-            b + ") at start of sequence with index " + this.sequenceIndex);
-        }
-        final byte[] nameBuffer = new byte[4096];
-        int nameLength = 0;
-        do {
-            if (in.eof()) {
-                break;
-            }
-            nameLength += in.readToEndOfOutputBufferOrEoln(nameBuffer, nameLength);
-            if (nameLength == nameBuffer.length && !in.atEoln()) {
-                throw new PicardException("Sequence name too long in FASTA " + file);
-            }
-        } while (!in.atEoln());
-        if (nameLength == 0) {
-            throw new PicardException("Missing sequence name in FASTA " + file);
-        }
-        String name = StringUtil.bytesToString(nameBuffer, 0, nameLength).trim();
-        if (truncateNamesAtWhitespace) {
-            name = SAMSequenceRecord.truncateSequenceName(name);
-        }
-        return name;
-    }
-
-    /**
-     * Read bases from input
-     * @param knownLength For performance:: -1 if length is not known, otherwise the length of the sequence.
-     * @return ASCII bases for sequence
-     */
-    private byte[] readSequence(final int knownLength) {
-        byte[] bases = (knownLength == -1) ?  basesBuffer : new byte[knownLength] ;
-
-        int sequenceLength = 0;
-        while (!in.eof()) {
-            final boolean sawEoln = in.skipNewlines();
-            if (in.eof()) {
-                break;
-            }
-            if (sawEoln && in.peekByte() == '>') {
-                break;
-            }
-            sequenceLength += in.readToEndOfOutputBufferOrEoln(bases, sequenceLength);
-            while (sequenceLength > 0 && Character.isWhitespace(StringUtil.byteToChar(bases[sequenceLength - 1]))) {
-                --sequenceLength;
-            }
-            if (sequenceLength == knownLength) {
-                break;
-            }
-            if (sequenceLength == bases.length) {
-                    final byte[] tmp = new byte[bases.length * 2];
-                    System.arraycopy(bases, 0, tmp, 0, sequenceLength);
-                    bases = tmp;
-            }
-        }
-        // And lastly resize the array down to the right size
-        if (sequenceLength != bases.length || bases == basesBuffer) {
-            final byte[] tmp = new byte[sequenceLength];
-            System.arraycopy(bases, 0, tmp, 0, sequenceLength);
-            bases = tmp;
-        }
-        return bases;
-    }
-}
diff --git a/src/java/net/sf/picard/reference/FastaSequenceIndex.java b/src/java/net/sf/picard/reference/FastaSequenceIndex.java
deleted file mode 100644
index 5c1b43d..0000000
--- a/src/java/net/sf/picard/reference/FastaSequenceIndex.java
+++ /dev/null
@@ -1,312 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.reference;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.io.IoUtil;
-import net.sf.samtools.SAMSequenceRecord;
-
-import java.util.Scanner;
-import java.util.Map;
-import java.util.LinkedHashMap;
-import java.util.Iterator;
-import java.util.regex.MatchResult;
-import java.io.File;
-import java.io.FileNotFoundException;
-
-/**
- * Reads a fasta index file (.fai), as generated by `samtools faidx`.
- */
-public class FastaSequenceIndex implements Iterable<FastaSequenceIndexEntry> {
-    /**
-     * Store the entries.  Use a LinkedHashMap for consistent iteration in insertion order.
-     */
-    private final Map<String,FastaSequenceIndexEntry> sequenceEntries = new LinkedHashMap<String,FastaSequenceIndexEntry>();
-
-    /**
-     * Build a sequence index from the specified file.
-     * @param indexFile File to open.
-     * @throws FileNotFoundException if the index file cannot be found.
-     */
-    public FastaSequenceIndex( File indexFile ) {
-        IoUtil.assertFileIsReadable(indexFile);
-        parseIndexFile(indexFile);
-    }
-
-    /**
-     * Empty, protected constructor for unit testing.
-     */
-    protected FastaSequenceIndex() {}
-
-    /**
-     * Add a new index entry to the list.  Protected for unit testing.
-     * @param indexEntry New index entry to add.
-     */
-    protected void add(FastaSequenceIndexEntry indexEntry) {
-        final FastaSequenceIndexEntry ret = sequenceEntries.put(indexEntry.getContig(),indexEntry);
-        if (ret != null) {
-            throw new PicardException("Contig '" + indexEntry.getContig() + "' already exists in fasta index.");
-        }
-    }
-
-    /**
-     * Renames the existing index entry to the new index entry with the specified name.
-     * @param entry entry to update.
-     * @param newName New name for the index entry.
-     */
-    protected void rename(FastaSequenceIndexEntry entry,String newName) {
-        sequenceEntries.remove(entry.getContig());
-        entry.setContig(newName);
-        add(entry);
-    }
-
-    /**
-     * Compare two FastaSequenceIndex objects for equality.
-     * @param other Another FastaSequenceIndex to compare
-     * @return True if index has the same entries as other instance, in the same order
-     */
-    public boolean equals(Object other) {
-        if(!(other instanceof FastaSequenceIndex))
-            return false;
-
-        if (this == other) return true;
-
-        FastaSequenceIndex otherIndex = (FastaSequenceIndex)other;
-        if(this.size() != otherIndex.size())
-            return false;
-
-        Iterator<FastaSequenceIndexEntry> iter = this.iterator();
-        Iterator<FastaSequenceIndexEntry> otherIter = otherIndex.iterator();
-        while (iter.hasNext()) {
-            if (!otherIter.hasNext())
-                return false;
-            if (!iter.next().equals(otherIter.next()))
-                return false;
-        }
-        return true;
-    }
-
-    /**
-     * Parse the contents of an index file, caching the results internally.
-     * @param indexFile File to parse.
-     * @throws FileNotFoundException Thrown if file could not be opened.
-     */
-    private void parseIndexFile(File indexFile) {
-        try {
-            Scanner scanner = new Scanner(indexFile);
-
-            int sequenceIndex = 0;
-            while( scanner.hasNext() ) {
-                // Tokenize and validate the index line.
-                String result = scanner.findInLine("(.+)\\t+(\\d+)\\s+(\\d+)\\s+(\\d+)\\s+(\\d+)");
-                if( result == null )
-                    throw new PicardException("Found invalid line in index file:" + scanner.nextLine());
-                MatchResult tokens = scanner.match();
-                if( tokens.groupCount() != 5 )
-                    throw new PicardException("Found invalid line in index file:" + scanner.nextLine());
-
-                // Skip past the line separator
-                scanner.nextLine();
-
-                // Parse the index line.
-                String contig = tokens.group(1);
-                long size = Long.valueOf(tokens.group(2));
-                long location = Long.valueOf(tokens.group(3));
-                int basesPerLine = Integer.valueOf(tokens.group(4));
-                int bytesPerLine = Integer.valueOf(tokens.group(5));
-
-                contig = SAMSequenceRecord.truncateSequenceName(contig);
-                // Build sequence structure
-                add(new FastaSequenceIndexEntry(contig,location,size,basesPerLine,bytesPerLine, sequenceIndex++) );
-            }
-            scanner.close();
-        } catch (FileNotFoundException e) {
-            throw new PicardException("Fasta index file should be found but is not: " + indexFile, e);
-        }
-    }
-
-    /**
-     * Does the given contig name have a corresponding entry?
-     * @param contigName The contig name for which to search.
-     * @return True if contig name is present; false otherwise.
-     */
-    public boolean hasIndexEntry( String contigName ) {
-        return sequenceEntries.containsKey(contigName);
-    }
-
-    /**
-     * Retrieve the index entry associated with the given contig.
-     * @param contigName Name of the contig for which to search.
-     * @return Index entry associated with the given contig.
-     * @throws PicardException if the associated index entry can't be found.
-     */
-    public FastaSequenceIndexEntry getIndexEntry( String contigName ) {
-        if( !hasIndexEntry(contigName) )
-            throw new PicardException("Unable to find entry for contig: " + contigName);
-
-        return sequenceEntries.get(contigName);
-    }
-
-    /**
-     * Creates an iterator which can iterate through all entries in a fasta index.
-     * @return iterator over all fasta index entries.
-     */
-    public Iterator<FastaSequenceIndexEntry> iterator() {
-        return sequenceEntries.values().iterator();
-    }
-
-    /**
-     * Returns the number of elements in the index.
-     * @return Number of elements in the index.
-     */
-    public int size() {
-        return sequenceEntries.size();
-    }
-}
-
-/**
- * Hold an individual entry in a fasta sequence index file.
- */
-class FastaSequenceIndexEntry {
-    private String contig;
-    private long location;
-    private long size;
-    private int basesPerLine;
-    private int bytesPerLine;
-    private final int sequenceIndex;
-
-    /**
-     * Create a new entry with the given parameters.
-     * @param contig Contig this entry represents.
-     * @param location Location (byte coordinate) in the fasta file.
-     * @param size The number of bases in the contig.
-     * @param basesPerLine How many bases are on each line.
-     * @param bytesPerLine How many bytes are on each line (includes newline characters).
-     */
-    public FastaSequenceIndexEntry( String contig,
-                                    long location,
-                                    long size,
-                                    int basesPerLine,
-                                    int bytesPerLine,
-                                    int sequenceIndex) {
-        this.contig = contig;
-        this.location = location;
-        this.size = size;
-        this.basesPerLine = basesPerLine;
-        this.bytesPerLine = bytesPerLine;
-        this.sequenceIndex = sequenceIndex;
-    }
-
-    /**
-     * Gets the contig associated with this entry.
-     * @return String representation of the contig.
-     */
-    public String getContig() {
-        return contig;
-    }
-
-    /**
-     * Sometimes contigs need to be adjusted on-the-fly to
-     * match sequence dictionary entries.  Provide that capability
-     * to other classes w/i the package. 
-     * @param contig New value for the contig.
-     */
-    protected void setContig(String contig) {
-        this.contig = contig;
-    }
-
-    /**
-     * Gets the location of this contig within the fasta.
-     * @return seek position within the fasta.
-     */
-    public long getLocation() {
-        return location;
-    }
-
-    /**
-     * Gets the size, in bytes, of the data in the contig.
-     * @return size of the contig bases in bytes.
-     */
-    public long getSize() {
-        return size;
-    }
-
-    /**
-     * Gets the number of bases in a given line.
-     * @return Number of bases in the fasta line.
-     */
-    public int getBasesPerLine() {
-        return basesPerLine;
-    }
-
-    /**
-     * How many bytes (bases + whitespace) are consumed by the
-     * given line?
-     * @return Number of bytes in a line.
-     */
-    public int getBytesPerLine() {
-        return bytesPerLine;
-    }
-
-    public int getSequenceIndex() {
-        return sequenceIndex;
-    }
-
-    /**
-     * For debugging.  Emit the contents of each contig line.
-     * @return A string representation of the contig line.
-     */
-    public String toString() {
-        return String.format("contig %s; location %d; size %d; basesPerLine %d; bytesPerLine %d", contig,
-                                                                                                  location,
-                                                                                                  size,
-                                                                                                  basesPerLine,
-                                                                                                  bytesPerLine );
-    }
-
-    /**
-     * Compare this index entry to another index entry.
-     * @param other another FastaSequenceIndexEntry
-     * @return True if each has the same name, location, size, basesPerLine and bytesPerLine
-     */
-    public boolean equals(Object other) {
-        if(!(other instanceof FastaSequenceIndexEntry))
-            return false;
-
-        if (this == other) return true;
-
-        FastaSequenceIndexEntry otherEntry = (FastaSequenceIndexEntry)other;
-        return (contig.equals(otherEntry.contig) && size == otherEntry.size && location == otherEntry.location
-        && basesPerLine == otherEntry.basesPerLine && bytesPerLine == otherEntry.bytesPerLine);
-    }
-
-    /**
-     * In general, we expect one entry per contig, so compute the hash based only on the contig.
-     * @return A unique hash code representing this object.
-     */
-    public int hashCode() {
-        return contig.hashCode();
-    }
-}
diff --git a/src/java/net/sf/picard/reference/IndexedFastaSequenceFile.java b/src/java/net/sf/picard/reference/IndexedFastaSequenceFile.java
deleted file mode 100644
index 9e37e30..0000000
--- a/src/java/net/sf/picard/reference/IndexedFastaSequenceFile.java
+++ /dev/null
@@ -1,263 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.reference;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.io.IoUtil;
-import net.sf.samtools.SAMSequenceDictionary;
-import net.sf.samtools.SAMSequenceRecord;
-
-import java.io.*;
-import java.nio.ByteBuffer;
-import java.nio.channels.FileChannel;
-import java.util.Iterator;
-
-/**
- * A fasta file driven by an index for fast, concurrent lookups.  Supports two interfaces:
- * the ReferenceSequenceFile for old-style, stateful lookups and a direct getter.
- */
-public class IndexedFastaSequenceFile extends AbstractFastaSequenceFile implements Closeable {
-    /**
-     * Size of the read buffer.
-     */
-    private static final int BUFFER_SIZE = 128 * 1024;
-    
-    /**
-     * The interface facilitating direct access to the fasta.
-     */
-    private final FileChannel channel;
-
-    /**
-     * A representation of the sequence index, stored alongside the fasta in a .fasta.fai file.
-     */
-    private final FastaSequenceIndex index;
-
-    /**
-     * An iterator into the fasta index, for traversing iteratively across the fasta.
-     */
-    private Iterator<FastaSequenceIndexEntry> indexIterator;
-
-    /**
-     * Open the given indexed fasta sequence file.  Throw an exception if the file cannot be opened.
-     * @param file The file to open.
-     * @param index Pre-built FastaSequenceIndex, for the case in which one does not exist on disk.
-     * @throws FileNotFoundException If the fasta or any of its supporting files cannot be found.
-     */
-    public IndexedFastaSequenceFile(final File file, final FastaSequenceIndex index) {
-        super(file);
-        if (index == null) throw new IllegalArgumentException("Null index for fasta " + file);
-        this.index = index;
-        IoUtil.assertFileIsReadable(file);
-        final FileInputStream in;
-        try {
-            in = new FileInputStream(file);
-        } catch (FileNotFoundException e) {
-            throw new PicardException("Fasta file should be readable but is not: " + file, e);
-        }
-        channel = in.getChannel();
-        reset();
-
-        if(getSequenceDictionary() != null)
-            sanityCheckDictionaryAgainstIndex(file.getAbsolutePath(),sequenceDictionary,index);
-    }
-
-    /**
-     * Open the given indexed fasta sequence file.  Throw an exception if the file cannot be opened.
-     * @param file The file to open.
-     * @throws FileNotFoundException If the fasta or any of its supporting files cannot be found.
-     */
-    public IndexedFastaSequenceFile(final File file) throws FileNotFoundException {
-        this(file, new FastaSequenceIndex((findRequiredFastaIndexFile(file))));
-    }
-
-
-    public boolean isIndexed() {return true;}
-
-    private static File findFastaIndex(File fastaFile) {
-        File indexFile = getFastaIndexFileName(fastaFile);
-        if (!indexFile.exists()) return null;
-        return indexFile;
-    }
-
-    private static File getFastaIndexFileName(File fastaFile) {
-        return new File(fastaFile.getAbsolutePath() + ".fai");
-    }
-
-    private static File findRequiredFastaIndexFile(File fastaFile) throws FileNotFoundException {
-        File ret = findFastaIndex(fastaFile);
-        if (ret == null) throw new FileNotFoundException(getFastaIndexFileName(fastaFile) + " not found.");
-        return ret;
-    }
-
-    public static boolean canCreateIndexedFastaReader(final File fastaFile) {
-        return (fastaFile.exists() &&
-                findFastaIndex(fastaFile) != null);
-    }
-
-    /**
-     * Do some basic checking to make sure the dictionary and the index match.
-     * @param fastaFile Used for error reporting only.
-     * @param sequenceDictionary sequence dictionary to check against the index.
-     * @param index index file to check against the dictionary.
-     */
-    protected static void sanityCheckDictionaryAgainstIndex(final String fastaFile,
-                                                            final SAMSequenceDictionary sequenceDictionary,
-                                                            final FastaSequenceIndex index) {
-        // Make sure dictionary and index are the same size.
-        if( sequenceDictionary.getSequences().size() != index.size() )
-            throw new PicardException("Sequence dictionary and index contain different numbers of contigs");
-
-        Iterator<SAMSequenceRecord> sequenceIterator = sequenceDictionary.getSequences().iterator();
-        Iterator<FastaSequenceIndexEntry> indexIterator = index.iterator();
-
-        while(sequenceIterator.hasNext() && indexIterator.hasNext()) {
-            SAMSequenceRecord sequenceEntry = sequenceIterator.next();
-            FastaSequenceIndexEntry indexEntry = indexIterator.next();
-
-            if(!sequenceEntry.getSequenceName().equals(indexEntry.getContig())) {
-                throw new PicardException(String.format("Mismatch between sequence dictionary fasta index for %s, sequence '%s' != '%s'.",
-                        fastaFile, sequenceEntry.getSequenceName(),indexEntry.getContig()));
-            }
-
-            // Make sure sequence length matches index length.
-            if( sequenceEntry.getSequenceLength() != indexEntry.getSize())
-                throw new PicardException("Index length does not match dictionary length for contig: " + sequenceEntry.getSequenceName() );            
-        }
-    }
-
-    /**
-     * Retrieves the sequence dictionary for the fasta file.
-     * @return sequence dictionary of the fasta.
-     */
-    public SAMSequenceDictionary getSequenceDictionary() {
-        return sequenceDictionary;
-    }
-
-    /**
-     * Retrieves the complete sequence described by this contig.
-     * @param contig contig whose data should be returned.
-     * @return The full sequence associated with this contig.
-     */
-    public ReferenceSequence getSequence( String contig ) {
-        return getSubsequenceAt( contig, 1, (int)index.getIndexEntry(contig).getSize() );
-    }
-
-    /**
-     * Gets the subsequence of the contig in the range [start,stop]
-     * @param contig Contig whose subsequence to retrieve.
-     * @param start inclusive, 1-based start of region.
-     * @param stop inclusive, 1-based stop of region.
-     * @return The partial reference sequence associated with this range.
-     */
-    public ReferenceSequence getSubsequenceAt( String contig, long start, long stop ) {
-        if(start > stop + 1)
-            throw new PicardException(String.format("Malformed query; start point %d lies after end point %d",start,stop));
-
-        FastaSequenceIndexEntry indexEntry = index.getIndexEntry(contig);
-
-        if(stop > indexEntry.getSize())
-            throw new PicardException("Query asks for data past end of contig");
-
-        int length = (int)(stop - start + 1);
-
-        byte[] target = new byte[length];
-        ByteBuffer targetBuffer = ByteBuffer.wrap(target);
-
-        final int basesPerLine = indexEntry.getBasesPerLine();
-        final int bytesPerLine = indexEntry.getBytesPerLine();
-        final int terminatorLength = bytesPerLine - basesPerLine;
-
-        long startOffset = ((start-1)/basesPerLine)*bytesPerLine + (start-1)%basesPerLine;
-
-        // Allocate a 128K buffer for reading in sequence data.
-        ByteBuffer channelBuffer = ByteBuffer.allocate(BUFFER_SIZE);
-
-        while(targetBuffer.position() < length) {
-            // If the bufferOffset is currently within the eol characters in the string, push the bufferOffset forward to the next printable character.
-            startOffset += Math.max((int)(startOffset%bytesPerLine - basesPerLine + 1),0);
-
-            try {
-                 startOffset += channel.read(channelBuffer,indexEntry.getLocation()+startOffset);
-            }
-            catch(IOException ex) {
-                throw new PicardException("Unable to load " + contig + "(" + start + ", " + stop + ") from " + file);
-            }
-
-            // Reset the buffer for outbound transfers.
-            channelBuffer.flip();
-
-            // Calculate the size of the next run of bases based on the contents we've already retrieved.
-            final int positionInContig = (int)start-1+targetBuffer.position();
-            final int nextBaseSpan = Math.min(basesPerLine-positionInContig%basesPerLine,length-targetBuffer.position());
-            // Cap the bytes to transfer by limiting the nextBaseSpan to the size of the channel buffer.
-            int bytesToTransfer = Math.min(nextBaseSpan,channelBuffer.capacity());
-
-            channelBuffer.limit(channelBuffer.position()+bytesToTransfer);
-
-            while(channelBuffer.hasRemaining()) {
-                targetBuffer.put(channelBuffer);
-
-                bytesToTransfer = Math.min(basesPerLine,length-targetBuffer.position());
-                channelBuffer.limit(Math.min(channelBuffer.position()+bytesToTransfer+terminatorLength,channelBuffer.capacity()));
-                channelBuffer.position(Math.min(channelBuffer.position()+terminatorLength,channelBuffer.capacity()));
-            }
-
-            // Reset the buffer for inbound transfers.
-            channelBuffer.flip();
-        }
-
-        return new ReferenceSequence( contig, indexEntry.getSequenceIndex(), target );
-    }
-
-    /**
-     * Gets the next sequence if available, or null if not present.
-     * @return next sequence if available, or null if not present.
-     */
-    public ReferenceSequence nextSequence() {
-        if( !indexIterator.hasNext() )
-            return null;
-        return getSequence( indexIterator.next().getContig() );
-    }
-
-    /**
-     * Reset the iterator over the index.
-     */
-    public void reset() {
-        indexIterator = index.iterator();
-    }
-
-    /**
-     * A simple toString implementation for debugging.
-     * @return String representation of the file.
-     */
-    public String toString() {
-        return this.file.getAbsolutePath();
-    }
-
-    @Override
-    public void close() throws IOException {
-        channel.close();
-    }
-}
diff --git a/src/java/net/sf/picard/reference/NormalizeFasta.java b/src/java/net/sf/picard/reference/NormalizeFasta.java
deleted file mode 100644
index d2bcb37..0000000
--- a/src/java/net/sf/picard/reference/NormalizeFasta.java
+++ /dev/null
@@ -1,93 +0,0 @@
-package net.sf.picard.reference;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.StandardOptionDefinitions;
-import net.sf.picard.cmdline.Usage;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.reference.ReferenceSequence;
-import net.sf.picard.reference.ReferenceSequenceFile;
-import net.sf.picard.reference.ReferenceSequenceFileFactory;
-import net.sf.picard.util.Log;
-import net.sf.samtools.util.CloserUtil;
-import net.sf.samtools.util.RuntimeIOException;
-
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.IOException;
-
-/**
- * Little program to "normalize" a fasta file to ensure that all line of sequence are the
- * same length, and are a reasonable length!
- */
-public class NormalizeFasta extends CommandLineProgram {
-    @Usage public final String USAGE = "Takes any file that conforms to the fasta format and " +
-            "normalizes it so that all lines of sequence except the last line per named sequence " +
-            "are of the same length.";
-
-    @Option(shortName= StandardOptionDefinitions.INPUT_SHORT_NAME, doc="The input fasta file to normalize.")
-    public File INPUT;
-
-    @Option(shortName= StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc="The output fasta file to write.")
-    public File OUTPUT;
-
-    @Option(doc="The line length to be used for the output fasta file.")
-    public int LINE_LENGTH=100;
-
-    @Option(doc="Truncate sequence names at first whitespace.")
-    public boolean TRUNCATE_SEQUENCE_NAMES_AT_WHITESPACE=false;
-
-    private final Log log = Log.getInstance(NormalizeFasta.class);
-
-    public static void main(final String[] args) {
-        new NormalizeFasta().instanceMainWithExit(args);
-    }
-
-    @Override
-    protected int doWork() {
-        IoUtil.assertFileIsReadable(INPUT);
-        IoUtil.assertFileIsWritable(OUTPUT);
-
-        if (INPUT.getAbsoluteFile().equals(OUTPUT.getAbsoluteFile())) {
-            throw new IllegalArgumentException("Input and output cannot be the same file.");
-        }
-
-        final ReferenceSequenceFile ref = ReferenceSequenceFileFactory.getReferenceSequenceFile(INPUT, TRUNCATE_SEQUENCE_NAMES_AT_WHITESPACE);
-        final BufferedWriter out = IoUtil.openFileForBufferedWriting(OUTPUT);
-
-        ReferenceSequence seq = null;
-        while ((seq = ref.nextSequence()) != null) {
-            final String name  = seq.getName();
-            final byte[] bases = seq.getBases();
-
-            try {
-                out.write(">");
-                out.write(name);
-                out.newLine();
-
-                if (bases.length == 0) {
-                    log.warn("Sequence " + name + " contains 0 bases.");
-                }
-                else {
-                    for (int i=0; i<bases.length; ++i) {
-                        if (i > 0 && i % LINE_LENGTH == 0) out.write("\n");
-                        out.write(bases[i]);
-                    }
-
-                    out.write("\n");
-                }
-            }
-            catch (IOException ioe) {
-                throw new PicardException("Error writing to file " + OUTPUT.getAbsolutePath(), ioe);
-
-            }
-        }
-        try {
-            out.close();
-        } catch (IOException e) {
-            throw new RuntimeIOException(e);
-        }
-        return 0;
-    }
-}
diff --git a/src/java/net/sf/picard/reference/ReferenceSequence.java b/src/java/net/sf/picard/reference/ReferenceSequence.java
deleted file mode 100644
index 541f916..0000000
--- a/src/java/net/sf/picard/reference/ReferenceSequence.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.reference;
-
-/**
- * Wrapper around a reference sequence that has been read from a reference file.
- *
- * @author Tim Fennell
- */
-public class ReferenceSequence {
-    private final String name;
-    private final byte[] bases;
-    private final int contigIndex;
-    private final int length;
-
-    /**
-     * creates a fully formed ReferenceSequence
-     *
-     * @param name the name of the sequence from the source file
-     * @param index the zero based index of this contig in the source file
-     * @param bases the bases themselves stored as one-byte characters
-     */
-    public ReferenceSequence(String name, int index, byte[] bases) {
-        this.name = name;
-        this.contigIndex = index;
-        this.bases = bases;
-        this.length = bases.length;
-    }
-
-    /** Gets the set of names given to this sequence in the source file. */
-    public String getName() { return name; }
-
-    /**
-     * Gets the array of bases that define this sequence. The bases can include any
-     * letter and possibly include masking information in the form of lower case
-     * letters.  This array is mutable (obviously!) and it NOT a clone of the array
-     * held interally.  Do not modify it!!!
-     */
-    public byte[] getBases() { return bases; }
-
-    /** Gets the 0-based index of this contig in the source file from which it came. */
-    public int getContigIndex() { return contigIndex; }
-
-    /** Gets the length of this reference sequence in bases. */
-    public int length() { return length; }
-    
-    public String toString() {
-        return "ReferenceSequence " + getName();
-    }
-}
diff --git a/src/java/net/sf/picard/reference/ReferenceSequenceFile.java b/src/java/net/sf/picard/reference/ReferenceSequenceFile.java
deleted file mode 100644
index 53235cc..0000000
--- a/src/java/net/sf/picard/reference/ReferenceSequenceFile.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.reference;
-
-import net.sf.samtools.SAMSequenceDictionary;
-
-import java.io.IOException;
-
-/**
- * An interface for working with files of reference sequences regardless of the file format
- * being used.
- *
- * @author Tim Fennell
- */
-public interface ReferenceSequenceFile {
-
-    /**
-     * Must return a sequence dictionary with at least the following fields completed
-     * for each sequence: name, length.
-     *
-     * @return a list of sequence records representing the sequences in this reference file
-     */
-    public SAMSequenceDictionary getSequenceDictionary();
-
-    /**
-     * Retrieves the next whole sequences from the file.
-     * @return a ReferenceSequence or null if at the end of the file
-     */
-    public ReferenceSequence nextSequence();
-
-    /**
-     * Resets the ReferenceSequenceFile so that the next call to nextSequence() will return
-     * the first sequence in the file.
-     */
-    public void reset();
-
-
-    /**
-     * @return true if getSequence and getSubsequenceAt methods are allowed.
-     */
-    public boolean isIndexed();
-
-    /**
-     * Retrieves the complete sequence described by this contig.
-     * @param contig contig whose data should be returned.
-     * @return The full sequence associated with this contig.
-     * @throws UnsupportedOperationException if !sIndexed.
-     */
-    public ReferenceSequence getSequence( String contig );
-
-    /**
-     * Gets the subsequence of the contig in the range [start,stop]
-     * @param contig Contig whose subsequence to retrieve.
-     * @param start inclusive, 1-based start of region.
-     * @param stop inclusive, 1-based stop of region.
-     * @return The partial reference sequence associated with this range.
-     * @throws UnsupportedOperationException if !sIndexed.
-     */
-    public ReferenceSequence getSubsequenceAt( String contig, long start, long stop );
-    
-    /**
-     * @return Reference name, file name, or something other human-readable representation.
-     */
-    public String toString();
-
-    public void close() throws IOException;
-}
diff --git a/src/java/net/sf/picard/reference/ReferenceSequenceFileFactory.java b/src/java/net/sf/picard/reference/ReferenceSequenceFileFactory.java
deleted file mode 100644
index 812ac69..0000000
--- a/src/java/net/sf/picard/reference/ReferenceSequenceFileFactory.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.reference;
-
-import net.sf.picard.PicardException;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.util.Set;
-import java.util.HashSet;
-
-/**
- * Factory class for creating ReferenceSequenceFile instances for reading reference
- * sequences store in various formats.
- *
- * @author Tim Fennell
- */
-public class ReferenceSequenceFileFactory {
-    public static final Set<String> FASTA_EXTENSIONS = new HashSet<String>() {{
-        add(".fasta");
-        add(".fasta.gz");
-        add(".fa");
-        add(".fa.gz");
-        add(".fna");
-        add(".fna.gz");
-        add(".txt");
-        add(".txt.gz");
-    }};
-
-    /**
-     * Attempts to determine the type of the reference file and return an instance
-     * of ReferenceSequenceFile that is appropriate to read it.  Sequence names
-     * will be truncated at first whitespace, if any.
-     *
-     * @param file the reference sequence file on disk
-     */
-    public static ReferenceSequenceFile getReferenceSequenceFile(File file) {
-        return getReferenceSequenceFile(file, true);
-    }
-
-    /**
-     * Attempts to determine the type of the reference file and return an instance
-     * of ReferenceSequenceFile that is appropriate to read it.
-     *
-     * @param file the reference sequence file on disk
-     * @param truncateNamesAtWhitespace if true, only include the first word of the sequence name
-     */
-    public static ReferenceSequenceFile getReferenceSequenceFile(File file, boolean truncateNamesAtWhitespace) {
-        String name = file.getName();
-        for (String ext : FASTA_EXTENSIONS) {
-            if (name.endsWith(ext)) {
-                // Using faidx requires truncateNamesAtWhitespace
-                if (truncateNamesAtWhitespace && IndexedFastaSequenceFile.canCreateIndexedFastaReader(file)) {
-                    try {
-                        return new IndexedFastaSequenceFile(file);
-                    } catch (FileNotFoundException e) {
-                        throw new IllegalStateException("Should never happen, because existence of files has been checked.", e);
-                    }
-                }
-                else {
-                    return new FastaSequenceFile(file, truncateNamesAtWhitespace);
-                }
-            }
-        }
-
-        throw new IllegalArgumentException("File is not a supported reference file type: " + file.getAbsolutePath());
-    }
-}
diff --git a/src/java/net/sf/picard/reference/ReferenceSequenceFileWalker.java b/src/java/net/sf/picard/reference/ReferenceSequenceFileWalker.java
deleted file mode 100644
index 55f5cf9..0000000
--- a/src/java/net/sf/picard/reference/ReferenceSequenceFileWalker.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.reference;
-
-import net.sf.picard.PicardException;
-import net.sf.samtools.SAMSequenceDictionary;
-
-import java.io.File;
-import java.io.IOException;
-
-/**
- * Manages a ReferenceSequenceFile.  Loads the requested sequence, ensuring that
- * access is in order, and confirming that sequence name and index agree.
- *
- * @author alecw at broadinstitute.org
- */
-public class ReferenceSequenceFileWalker {
-    private final ReferenceSequenceFile referenceSequenceFile;
-    private ReferenceSequence referenceSequence = null;
-
-    public ReferenceSequenceFileWalker(final ReferenceSequenceFile referenceSequenceFile) {
-        this.referenceSequenceFile = referenceSequenceFile;
-    }
-
-    public ReferenceSequenceFileWalker(final File file) {
-        this(ReferenceSequenceFileFactory.getReferenceSequenceFile(file));
-    }
-
-    /**
-     * Ensure that the requested sequence is loaded.  Throws an exception if out-of-order
-     * request is made, or if there is a mismatch between the requested name and the name
-     * found in the ReferenceSequenceFile
-     */
-    public ReferenceSequence get(final int sequenceIndex, final String sequenceName, final int length) {
-        // Has the side-effect of setting referenceSequence member
-        get(sequenceIndex);
-        if (!referenceSequence.getName().equals(sequenceName)) {
-            // Sanity check the sequence names against the sequence dictionary while scanning through.
-            throw new PicardException("Sequence name mismatch at sequence index (" + referenceSequence.getContigIndex() +
-                    ", " + referenceSequence.getName() + ") != " + sequenceName);
-        }
-        if (referenceSequence.getBases().length != length) {
-            throw new PicardException("Sequence length mismatch for (" + sequenceIndex + ", " + sequenceName +
-            ").  expected " + length + " but found " + referenceSequence.getBases().length);
-        }
-        return referenceSequence;
-    }
-
-    /**
-     * Get reference sequence without validating name or length.  This is OK if the entire sequence
-     * dictionary was validated before reading sequences.
-     */
-    public ReferenceSequence get(final int sequenceIndex) {
-        if (referenceSequence != null && referenceSequence.getContigIndex() == sequenceIndex) {
-            return referenceSequence;
-        }
-        if (referenceSequence != null && referenceSequence.getContigIndex() > sequenceIndex) {
-            throw new PicardException("Requesting earlier reference sequence: " + sequenceIndex + " < " +
-            referenceSequence.getContigIndex());
-        }
-        referenceSequence = null;
-        for(referenceSequence = referenceSequenceFile.nextSequence();
-                referenceSequence != null && referenceSequence.getContigIndex() < sequenceIndex;
-                referenceSequence = referenceSequenceFile.nextSequence()) {
-        }
-        if (referenceSequence == null || referenceSequence.getContigIndex() != sequenceIndex) {
-            throw new PicardException("Reference sequence (" + sequenceIndex +
-            ") not found in " + referenceSequenceFile.toString());
-        }
-        return referenceSequence;
-    }
-
-    public SAMSequenceDictionary getSequenceDictionary() {
-        return referenceSequenceFile.getSequenceDictionary();
-    }
-
-    public void close() throws IOException {
-        referenceSequenceFile.close();
-    }
-}
diff --git a/src/java/net/sf/picard/sam/AbstractAlignmentMerger.java b/src/java/net/sf/picard/sam/AbstractAlignmentMerger.java
deleted file mode 100644
index 97c86d3..0000000
--- a/src/java/net/sf/picard/sam/AbstractAlignmentMerger.java
+++ /dev/null
@@ -1,698 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.sam;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.filter.FilteringIterator;
-import net.sf.picard.filter.SamRecordFilter;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.reference.ReferenceSequenceFileWalker;
-import net.sf.picard.util.CigarUtil;
-import net.sf.picard.util.Log;
-import net.sf.picard.util.ProgressLogger;
-import net.sf.samtools.BAMRecordCodec;
-import net.sf.samtools.Cigar;
-import net.sf.samtools.CigarElement;
-import net.sf.samtools.SAMFileHeader;
-import net.sf.samtools.SAMFileHeader.SortOrder;
-import net.sf.samtools.SAMFileReader;
-import net.sf.samtools.SAMFileWriter;
-import net.sf.samtools.SAMFileWriterFactory;
-import net.sf.samtools.SAMProgramRecord;
-import net.sf.samtools.SAMRecord;
-import net.sf.samtools.SAMRecordCoordinateComparator;
-import net.sf.samtools.SAMRecordQueryNameComparator;
-import net.sf.samtools.SAMRecordUtil;
-import net.sf.samtools.SAMSequenceDictionary;
-import net.sf.samtools.SAMSequenceRecord;
-import net.sf.samtools.SAMTag;
-import net.sf.samtools.SAMUtils;
-import net.sf.samtools.SamPairUtil;
-import net.sf.samtools.util.CloseableIterator;
-import net.sf.samtools.util.CloserUtil;
-import net.sf.samtools.util.SequenceUtil;
-import net.sf.samtools.util.SortingCollection;
-
-import java.io.File;
-import java.io.IOException;
-import java.text.DecimalFormat;
-import java.text.NumberFormat;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Abstract class that coordinates the general task of taking in a set of alignment information,
- * possibly in SAM format, possibly in other formats, and merging that with the set of all reads
- * for which alignment was attempted, stored in an unmapped SAM file.
- *
- * The order of processing is as follows:
- *
- *   1.  Get records from the unmapped bam and the alignment data
- *   2.  Merge the alignment information and public tags ONLY from the aligned SAMRecords
- *   3.  Do additional modifications -- handle clipping, trimming, etc.
- *   4.  Fix up mate information on paired reads
- *   5.  Do a final calculation of the NM and UQ tags.
- *   6.  Write the records to the output file.
- *
- * Concrete subclasses which extend AbstractAlignmentMerger should implement getQueryNameSortedAlignedRecords.
- * If these records are not in queryname order, mergeAlignment will throw an IllegalStateException.
- *
- * Subclasses may optionally implement ignoreAlignment(), which can be used to skip over certain alignments.
- *
- *
- * @author ktibbett at broadinstitute.org
- */
-public abstract class AbstractAlignmentMerger {
-
-    public static final int MAX_RECORDS_IN_RAM = 500000;
-
-    private static final char[] RESERVED_ATTRIBUTE_STARTS = {'X','Y', 'Z'};
-    private final NumberFormat FMT = new DecimalFormat("#,###");
-
-    private final Log log = Log.getInstance(AbstractAlignmentMerger.class);
-    private final ProgressLogger progress = new ProgressLogger(this.log, 1000000, "Written to sorting collection in queryname order", "records");
-
-    private final File unmappedBamFile;
-    private final File targetBamFile;
-    private final SAMSequenceDictionary sequenceDictionary;
-    private ReferenceSequenceFileWalker refSeq = null;
-    private final boolean clipAdapters;
-    private final boolean bisulfiteSequence;
-    private SAMProgramRecord programRecord;
-    private final boolean alignedReadsOnly;
-    private final SAMFileHeader header;
-    private final List<String> attributesToRetain = new ArrayList<String>();
-    private final List<String> attributesToRemove = new ArrayList<String>();
-    private final File referenceFasta;
-    private final Integer read1BasesTrimmed;
-    private final Integer read2BasesTrimmed;
-    private final List<SamPairUtil.PairOrientation> expectedOrientations;
-    private final SortOrder sortOrder;
-    private MultiHitAlignedReadIterator alignedIterator = null;
-    private boolean clipOverlappingReads = true;
-    private int maxRecordsInRam = MAX_RECORDS_IN_RAM;
-    private final PrimaryAlignmentSelectionStrategy primaryAlignmentSelectionStrategy;
-    private boolean keepAlignerProperPairFlags = false;
-    private boolean addMateCigar = false;
-
-    private final SamRecordFilter alignmentFilter = new SamRecordFilter() {
-        public boolean filterOut(final SAMRecord record) {
-            return ignoreAlignment(record);
-        }
-        public boolean filterOut(final SAMRecord first, final SAMRecord second) {
-            throw new UnsupportedOperationException("Paired SamRecordFilter not implemented!");
-        }
-    };
-    private boolean includeSecondaryAlignments = true;
-
-    protected abstract CloseableIterator<SAMRecord> getQuerynameSortedAlignedRecords();
-    
-    protected boolean ignoreAlignment(final SAMRecord sam) { return false; } // default implementation
-
-    /**
-     * Constructor
-     *
-     * @param unmappedBamFile   The BAM file that was used as the input to the aligner, which will
-     *                          include info on all the reads that did not map.  Required.
-     * @param targetBamFile     The file to which to write the merged SAM records. Required.
-     * @param referenceFasta    The reference sequence for the map files. Required.
-     * @param clipAdapters      Whether adapters marked in unmapped BAM file should be marked as
-     *                          soft clipped in the merged bam. Required.
-     * @param bisulfiteSequence Whether the reads are bisulfite sequence (used when calculating the
-     *                          NM and UQ tags). Required.
-     * @param alignedReadsOnly  Whether to output only those reads that have alignment data
-     * @param programRecord     Program record for target file SAMRecords created.
-     * @param attributesToRetain  private attributes from the alignment record that should be
-     *                          included when merging.  This overrides the exclusion of
-     *                          attributes whose tags start with the reserved characters
-     *                          of X, Y, and Z
-     * @param attributesToRemove  attributes from the alignment record that should be
-     *                          removed when merging.  This overrides attributesToRetain if they share
-     *                           common tags.
-     * @param read1BasesTrimmed The number of bases trimmed from start of read 1 prior to alignment.  Optional.
-     * @param read2BasesTrimmed The number of bases trimmed from start of read 2 prior to alignment.  Optional.
-     * @param expectedOrientations A List of SamPairUtil.PairOrientations that are expected for
-     *                          aligned pairs.  Used to determine the properPair flag.
-     * @param sortOrder           The order in which the merged records should be output.  If null,
-     *                            output will be coordinate-sorted
-     * @param primaryAlignmentSelectionStrategy What to do when there are multiple primary alignments, or multiple
-     *                                          alignments but none primary, for a read or read pair.
-     * @param addMateCigar      True if we are to add or maintain the mate CIGAR (MC) tag, false if we are to remove or not include.
-     */
-    public AbstractAlignmentMerger(final File unmappedBamFile, final File targetBamFile,
-                                   final File referenceFasta, final boolean clipAdapters,
-                                   final boolean bisulfiteSequence, final boolean alignedReadsOnly,
-                                   final SAMProgramRecord programRecord, final List<String> attributesToRetain,
-                                   final List<String> attributesToRemove,
-                                   final Integer read1BasesTrimmed, final Integer read2BasesTrimmed,
-                                   final List<SamPairUtil.PairOrientation> expectedOrientations,
-                                   final SAMFileHeader.SortOrder sortOrder,
-                                   final PrimaryAlignmentSelectionStrategy primaryAlignmentSelectionStrategy,
-                                   final boolean addMateCigar) {
-        IoUtil.assertFileIsReadable(unmappedBamFile);
-        IoUtil.assertFileIsWritable(targetBamFile);
-        IoUtil.assertFileIsReadable(referenceFasta);
-
-        this.unmappedBamFile = unmappedBamFile;
-        this.targetBamFile = targetBamFile;
-        this.referenceFasta = referenceFasta;
-
-        this.refSeq = new ReferenceSequenceFileWalker(referenceFasta);
-        this.sequenceDictionary = refSeq.getSequenceDictionary();
-        if (this.sequenceDictionary == null) {
-            throw new PicardException("No sequence dictionary found for " + referenceFasta.getAbsolutePath() +
-                    ".  Use CreateSequenceDictionary.jar to create a sequence dictionary.");
-        }
-
-        this.clipAdapters = clipAdapters;
-        this.bisulfiteSequence = bisulfiteSequence;
-        this.alignedReadsOnly = alignedReadsOnly;
-
-        this.header = new SAMFileHeader();
-        this.sortOrder = sortOrder != null ? sortOrder : SortOrder.coordinate;
-        header.setSortOrder(SortOrder.coordinate);
-        if (programRecord != null) {
-            setProgramRecord(programRecord);
-        }
-        header.setSequenceDictionary(this.sequenceDictionary);
-        if (attributesToRetain != null) {
-            this.attributesToRetain.addAll(attributesToRetain);
-        }
-        if (attributesToRemove != null) {
-            this.attributesToRemove.addAll(attributesToRemove);
-            // attributesToRemove overrides attributesToRetain
-            if (!this.attributesToRetain.isEmpty()) {
-                for (String attribute : this.attributesToRemove) {
-                    if (this.attributesToRetain.contains(attribute)) {
-                        log.info("Overriding retaining the " + attribute + " tag since remove overrides retain.");
-                        this.attributesToRetain.remove(attribute);
-                    }
-                }
-            }
-        }
-        this.read1BasesTrimmed = read1BasesTrimmed;
-        this.read2BasesTrimmed = read2BasesTrimmed;
-        this.expectedOrientations = expectedOrientations;
-
-        this.primaryAlignmentSelectionStrategy = primaryAlignmentSelectionStrategy;
-
-        this.addMateCigar = addMateCigar;
-    }
-
-    /** Allows the caller to override the maximum records in RAM. */
-    public void setMaxRecordsInRam(final int maxRecordsInRam) {
-        this.maxRecordsInRam = maxRecordsInRam;
-    }
-
-    /**
-     * Do this unconditionally, not just for aligned records, for two reasons:
-     * - An unaligned read has been processed by the aligner, so it is more truthful.
-     * - When chaining additional PG records, having all the records in the output file refer to the same PG
-     *   record means that only one chain will need to be created, rather than a chain for the mapped reads
-     *   and a separate chain for the unmapped reads.
-     */
-    private void maybeSetPgTag(final SAMRecord rec) {
-        if (this.programRecord != null) {
-            rec.setAttribute(ReservedTagConstants.PROGRAM_GROUP_ID, this.programRecord.getProgramGroupId());
-        }
-    }
-    /**
-
-    /**
-     * Merges the alignment data with the non-aligned records from the source BAM file.
-     */
-    public void mergeAlignment() {
-        // Open the file of unmapped records and write the read groups to the the header for the merged file
-        final SAMFileReader unmappedSam = new SAMFileReader(this.unmappedBamFile);
-        final CloseableIterator<SAMRecord> unmappedIterator = unmappedSam.iterator();
-        this.header.setReadGroups(unmappedSam.getFileHeader().getReadGroups());
-
-        int aligned = 0;
-        int unmapped = 0;
-
-        // Get the aligned records and set up the first one
-        alignedIterator = new MultiHitAlignedReadIterator(
-                new FilteringIterator(getQuerynameSortedAlignedRecords(), alignmentFilter),
-                primaryAlignmentSelectionStrategy);
-        HitsForInsert nextAligned = nextAligned();
-
-        // Create the sorting collection that will write the records in the coordinate order
-        // to the final bam file
-        final SortingCollection<SAMRecord> sorted = SortingCollection.newInstance(
-            SAMRecord.class, new BAMRecordCodec(header), new SAMRecordCoordinateComparator(),
-            MAX_RECORDS_IN_RAM);
-
-        while (unmappedIterator.hasNext()) {
-            // Load next unaligned read or read pair.
-            final SAMRecord rec = unmappedIterator.next();
-
-            rec.setHeader(this.header);
-            maybeSetPgTag(rec);
-
-            final SAMRecord secondOfPair;
-            if (rec.getReadPairedFlag()) {
-                secondOfPair = unmappedIterator.next();
-                secondOfPair.setHeader(this.header);
-                maybeSetPgTag(secondOfPair);
-
-                // Validate that paired reads arrive as first of pair followed by second of pair
-                if (!rec.getReadName().equals(secondOfPair.getReadName()))
-                    throw new PicardException("Second read from pair not found in unmapped bam: " + rec.getReadName() + ", " + secondOfPair.getReadName());
-
-                if (!rec.getFirstOfPairFlag()) throw new PicardException("First record in unmapped bam is not first of pair: " + rec.getReadName());
-                if (!secondOfPair.getReadPairedFlag())  throw new PicardException("Second record in unmapped bam is not marked as paired: " + secondOfPair.getReadName());
-                if (!secondOfPair.getSecondOfPairFlag())  throw new PicardException("Second record in unmapped bam is not second of pair: " + secondOfPair.getReadName());
-            }
-            else {
-                secondOfPair = null;
-            }
-
-            // See if there are alignments for current unaligned read or read pair.
-            if (nextAligned != null && rec.getReadName().equals(nextAligned.getReadName())) {
-                // If there are multiple alignments for a read (pair), then the unaligned SAMRecord must be cloned
-                // before copying info from the aligned record to the unaligned.
-                final boolean clone = nextAligned.numHits() > 1 || nextAligned.hasSupplementalHits();
-                SAMRecord r1Primary = null, r2Primary = null;
-
-                if (rec.getReadPairedFlag()) {
-                    for (int i = 0; i < nextAligned.numHits(); ++i) {
-                        // firstAligned or secondAligned may be null, if there wasn't an alignment for the end,
-                        // or if the alignment was rejected by ignoreAlignment.
-                        final SAMRecord firstAligned = nextAligned.getFirstOfPair(i);
-                        final SAMRecord secondAligned = nextAligned.getSecondOfPair(i);
-
-                        final boolean isPrimaryAlignment = (firstAligned != null && !firstAligned.isSecondaryOrSupplementary()) ||
-                                (secondAligned != null && !secondAligned.isSecondaryOrSupplementary());
-
-                        final SAMRecord firstToWrite;
-                        final SAMRecord secondToWrite;
-                        if (clone) {
-                            firstToWrite = clone(rec);
-                            secondToWrite = clone(secondOfPair);
-                        } else {
-                            firstToWrite = rec;
-                            secondToWrite = secondOfPair;
-                        }
-
-                        // If these are the primary alignments then stash them for use on any supplemental alignments
-                        if (isPrimaryAlignment) {
-                            r1Primary = firstToWrite;
-                            r2Primary = secondToWrite;
-                        }
-
-                        transferAlignmentInfoToPairedRead(firstToWrite, secondToWrite, firstAligned, secondAligned);
-
-                        // Only write unmapped read when it has the mate info from the primary alignment.
-                        if (!firstToWrite.getReadUnmappedFlag() || isPrimaryAlignment) {
-                            addIfNotFiltered(sorted, firstToWrite);
-                            if (firstToWrite.getReadUnmappedFlag()) ++unmapped;
-                            else ++aligned;
-                        }
-                        if (!secondToWrite.getReadUnmappedFlag() || isPrimaryAlignment) {
-                            addIfNotFiltered(sorted, secondToWrite);
-                            if (!secondToWrite.getReadUnmappedFlag()) ++aligned;
-                            else ++unmapped;
-                        }
-                    }
-
-                    // Take all of the supplemental reads which had been stashed and add them (as appropriate) to sorted
-                    for (final boolean isRead1 : new boolean[]{true,false}) {
-                        final List<SAMRecord> supplementals = isRead1 ? nextAligned.getSupplementalFirstOfPairOrFragment() : nextAligned.getSupplementalSecondOfPair();
-                        final SAMRecord sourceRec           = isRead1 ? rec                                                : secondOfPair;
-                        final SAMRecord matePrimary         = isRead1 ? r2Primary                                          : r1Primary;
-
-                        for (final SAMRecord supp : supplementals) {
-                            final SAMRecord out = clone(sourceRec);
-                            transferAlignmentInfoToFragment(out, supp);
-                            if (matePrimary != null) SamPairUtil.setMateInformationOnSupplementalAlignment(out, matePrimary);
-                            ++aligned;
-                            addIfNotFiltered(sorted, out);
-                        }
-                    }
-                }
-                else {
-                    for (int i = 0; i < nextAligned.numHits(); ++i) {
-                        final SAMRecord recToWrite = clone ? clone(rec) : rec;
-                        transferAlignmentInfoToFragment(recToWrite, nextAligned.getFragment(i));
-                        addIfNotFiltered(sorted, recToWrite);
-                        if (recToWrite.getReadUnmappedFlag()) ++unmapped;
-                        else ++aligned;
-                    }
-                    // Take all of the supplemental reads which had been stashed and add them (as appropriate) to sorted
-                    for (final SAMRecord supplementalRec : nextAligned.getSupplementalFirstOfPairOrFragment()) {
-                        final SAMRecord recToWrite = clone(rec);
-                        transferAlignmentInfoToFragment(recToWrite, supplementalRec);
-                        addIfNotFiltered(sorted, recToWrite);
-                        ++aligned;
-                    }
-                }
-                nextAligned = nextAligned();
-            } else {
-                // There was no alignment for this read or read pair.
-                if (nextAligned != null &&
-                        SAMRecordQueryNameComparator.compareReadNames(rec.getReadName(), nextAligned.getReadName()) > 0) {
-                    throw new IllegalStateException("Aligned record iterator (" + nextAligned.getReadName() +
-                            ") is behind the unmapped reads (" + rec.getReadName() + ")");
-                }
-                // No matching read from alignedIterator -- just output reads as is.
-                if (!alignedReadsOnly) {
-                    sorted.add(rec);
-                    ++unmapped;
-                    if (secondOfPair != null) {
-                        sorted.add(secondOfPair);
-                        ++unmapped;
-                    }
-                }
-            }
-        }
-        unmappedIterator.close();
-        if (alignedIterator.hasNext()) {
-            throw new IllegalStateException("Reads remaining on alignment iterator: " + alignedIterator.next().getReadName() + "!");
-        }
-        alignedIterator.close();
-
-        // Write the records to the output file in specified sorted order,
-        header.setSortOrder(this.sortOrder);
-        final boolean presorted = this.sortOrder == SortOrder.coordinate;
-        final SAMFileWriter writer = new SAMFileWriterFactory().makeSAMOrBAMWriter(header, presorted, this.targetBamFile);
-	    writer.setProgressLogger(
-			    new ProgressLogger(log, (int) 1e7, "Wrote", "records from a sorting collection"));
-        final ProgressLogger finalProgress = new ProgressLogger(log, 10000000, "Written in coordinate order to output", "records");
-
-        for (final SAMRecord rec : sorted) {
-            if (!rec.getReadUnmappedFlag()) {
-                if (refSeq != null) {
-                    final byte[] referenceBases = refSeq.get(sequenceDictionary.getSequenceIndex(rec.getReferenceName())).getBases();
-                    rec.setAttribute(SAMTag.NM.name(), SequenceUtil.calculateSamNmTag(rec, referenceBases, 0, bisulfiteSequence));
-
-                    if (rec.getBaseQualities() != SAMRecord.NULL_QUALS) {
-                        rec.setAttribute(SAMTag.UQ.name(), SequenceUtil.sumQualitiesOfMismatches(rec, referenceBases, 0, bisulfiteSequence));
-                    }
-                }
-            }
-            writer.addAlignment(rec);
-            finalProgress.record(rec);
-        }
-        writer.close();
-        sorted.cleanup();
-
-        log.info("Wrote " + aligned + " alignment records and " + (alignedReadsOnly ? 0 : unmapped) + " unmapped reads.");
-    }
-
-    /**
-     * Add record if it is primary or optionally secondary.
-     */
-    private void addIfNotFiltered(final SortingCollection<SAMRecord> sorted, final SAMRecord rec) {
-        if (includeSecondaryAlignments || !rec.getNotPrimaryAlignmentFlag()) {
-            sorted.add(rec);
-            this.progress.record(rec);
-        }
-    }
-
-    private SAMRecord clone(final SAMRecord rec) {
-        try {
-            return (SAMRecord)rec.clone();
-        } catch (CloneNotSupportedException e) {
-            throw new PicardException("Should never happen.");
-        }
-    }
-    /**
-     * @return Next read's alignment(s) from aligned input or null, if there are no more.
-     * The alignments are run through ignoreAlignment() filter before being returned, which may result
-     * in an entire read being skipped if all alignments for that read should be ignored.
-     */
-    private HitsForInsert nextAligned() {
-        if (alignedIterator.hasNext()) return alignedIterator.next();
-        return null;
-    }
-
-    /**
-     * Copies alignment info from aligned to unaligned read, clips as appropriate, and sets PG ID.
-     * @param unaligned Original SAMRecord, and object into which values are copied.
-     * @param aligned Holds alignment info that will be copied into unaligned.
-     */
-    private void transferAlignmentInfoToFragment(final SAMRecord unaligned, final SAMRecord aligned) {
-        setValuesFromAlignment(unaligned, aligned);
-        updateCigarForTrimmedOrClippedBases(unaligned, aligned);
-        if (SAMUtils.cigarMapsNoBasesToRef(unaligned.getCigar())) {
-            SAMUtils.makeReadUnmapped(unaligned);
-        } else if (SAMUtils.recordMapsEntirelyBeyondEndOfReference(aligned)) {
-            log.warn("Record mapped off end of reference; making unmapped: " + aligned);
-            SAMUtils.makeReadUnmapped(unaligned);
-        }
-    }
-
-    /**
-     * Copies alignment info from aligned to unaligned read, if there is an alignment, and sets mate information.
-     * @param firstUnaligned Original first of pair, into which alignment and pair info will be written.
-     * @param secondUnaligned Original second of pair, into which alignment and pair info will be written.
-     * @param firstAligned Aligned first of pair, or null if no alignment.
-     * @param secondAligned Aligned second of pair, or null if no alignment.
-     */
-    private void transferAlignmentInfoToPairedRead(final SAMRecord firstUnaligned, final SAMRecord secondUnaligned, final SAMRecord firstAligned, final SAMRecord secondAligned) {
-        if (firstAligned != null) transferAlignmentInfoToFragment(firstUnaligned, firstAligned);
-        if (secondAligned != null) transferAlignmentInfoToFragment(secondUnaligned, secondAligned);
-        if (isClipOverlappingReads()) clipForOverlappingReads(firstUnaligned, secondUnaligned);
-        SamPairUtil.setMateInfo(secondUnaligned, firstUnaligned, header, addMateCigar);
-        if (!keepAlignerProperPairFlags) {
-            SamPairUtil.setProperPairFlags(secondUnaligned, firstUnaligned, expectedOrientations);
-        }
-    }
-
-
-
-    /**
-     * Checks to see whether the ends of the reads overlap and soft clips reads
-     * them if necessary.
-     */
-    protected void clipForOverlappingReads(final SAMRecord read1, final SAMRecord read2) {
-        // If both reads are mapped, see if we need to clip the ends due to small
-        // insert size
-        if (!(read1.getReadUnmappedFlag() || read2.getReadUnmappedFlag())) {
-
-            if (read1.getReadNegativeStrandFlag() != read2.getReadNegativeStrandFlag())
-            {
-                final SAMRecord pos = (read1.getReadNegativeStrandFlag()) ? read2 : read1;
-                final SAMRecord neg = (read1.getReadNegativeStrandFlag()) ? read1 : read2;
-
-                // Innies only -- do we need to do anything else about jumping libraries?
-                if (pos.getAlignmentStart() < neg.getAlignmentEnd()) {
-                    final int posDiff = pos.getAlignmentEnd() - neg.getAlignmentEnd();
-                    final int negDiff = pos.getAlignmentStart() - neg.getAlignmentStart();
-
-                    if (posDiff > 0) {
-                        CigarUtil.softClip3PrimeEndOfRead(pos, Math.min(pos.getReadLength(),
-                                pos.getReadLength() - posDiff + 1));
-                    }
-
-                    if (negDiff > 0) {
-                        CigarUtil.softClip3PrimeEndOfRead(neg, Math.min(neg.getReadLength(),
-                                neg.getReadLength() - negDiff + 1));
-                    }
-
-                }
-            }
-            else {
-                // TODO: What about RR/FF pairs?
-            }
-         }
-
-    }
-
-    /**
-     * Sets the values from the alignment record on the unaligned BAM record.  This
-     * preserves all data from the unaligned record (ReadGroup, NoiseRead status, etc)
-     * and adds all the alignment info 
-     *
-     * @param rec           The unaligned read record
-     * @param alignment     The alignment record
-     */
-    protected void setValuesFromAlignment(final SAMRecord rec, final SAMRecord alignment) {
-        for (final SAMRecord.SAMTagAndValue attr : alignment.getAttributes()) {
-            // Copy over any non-reserved attributes.  attributesToRemove overrides attributesToRetain.
-            if ((!isReservedTag(attr.tag) || this.attributesToRetain.contains(attr.tag)) && !this.attributesToRemove.contains(attr.tag)) {
-               rec.setAttribute(attr.tag, attr.value);
-            }
-        }
-        rec.setReadUnmappedFlag(alignment.getReadUnmappedFlag());
-
-        // Note that it is important to get reference names rather than indices in case the sequence dictionaries
-        // in the two files are in different orders.
-        rec.setReferenceName(alignment.getReferenceName());
-
-        rec.setAlignmentStart(alignment.getAlignmentStart());
-        rec.setReadNegativeStrandFlag(alignment.getReadNegativeStrandFlag());
-        rec.setNotPrimaryAlignmentFlag(alignment.getNotPrimaryAlignmentFlag());
-        rec.setSupplementaryAlignmentFlag(alignment.getSupplementaryAlignmentFlag());
-        if (!alignment.getReadUnmappedFlag()) {
-            // only aligned reads should have cigar and mapping quality set
-            rec.setCigar(alignment.getCigar());  // cigar may change when a
-                                                 // clipCigar called below
-            rec.setMappingQuality(alignment.getMappingQuality());
-        }
-        if (rec.getReadPairedFlag()) {
-            rec.setProperPairFlag(alignment.getProperPairFlag());
-            // Mate info and alignment size will get set by the ClippedPairFixer.
-        }
-
-        // If it's on the negative strand, reverse complement the bases
-        // and reverse the order of the qualities
-        if (rec.getReadNegativeStrandFlag()) {
-            SAMRecordUtil.reverseComplement(rec);
-        }
-
-    }
-
-    private static Cigar createNewCigarIfMapsOffEndOfReference(SAMFileHeader header,
-                                                              boolean isUnmapped,
-                                                              int referenceIndex,
-                                                              int alignmentEnd,
-                                                              int readLength,
-                                                              Cigar oldCigar) {
-        Cigar newCigar = null;
-        if (!isUnmapped) {
-            final SAMSequenceRecord refseq = header.getSequence(referenceIndex);
-            final int overhang = alignmentEnd - refseq.getSequenceLength();
-            if (overhang > 0) {
-                // 1-based index of first base in read to clip.
-                final int clipFrom = readLength - overhang + 1;
-                final List<CigarElement> newCigarElements  = CigarUtil.softClipEndOfRead(clipFrom, oldCigar.getCigarElements());
-                newCigar = new Cigar(newCigarElements);
-            }
-        }
-        return newCigar;
-
-    }
-
-    /**
-     * Soft-clip an alignment that hangs off the end of its reference sequence.  Checks both the read and its mate,
-     * if available.
-     * @param rec
-     */
-    public static void createNewCigarsIfMapsOffEndOfReference(final SAMRecord rec) {
-        // If the read maps off the end of the alignment, clip it
-        if (!rec.getReadUnmappedFlag()) {
-            final Cigar readCigar = createNewCigarIfMapsOffEndOfReference(rec.getHeader(),
-                    rec.getReadUnmappedFlag(),
-                    rec.getReferenceIndex(),
-                    rec.getAlignmentEnd(),
-                    rec.getReadLength(),
-                    rec.getCigar());
-            if (null != readCigar) rec.setCigar(readCigar);
-        }
-
-        // If the read's mate maps off the end of the alignment, clip it
-        if (SAMUtils.hasMateCigar(rec)) {
-            Cigar mateCigar = SAMUtils.getMateCigar(rec);
-            mateCigar = createNewCigarIfMapsOffEndOfReference(rec.getHeader(),
-                    rec.getMateUnmappedFlag(),
-                    rec.getMateReferenceIndex(),
-                    SAMUtils.getMateAlignmentEnd(rec), // NB: this could be computed without another call to getMateCigar
-                    mateCigar.getReadLength(),
-                    mateCigar);
-            if (null != mateCigar) rec.setAttribute(SAMTag.MC.name(), mateCigar.toString());
-        }
-    }
-
-    protected void updateCigarForTrimmedOrClippedBases(final SAMRecord rec, final SAMRecord alignment) {
-        // If the read was trimmed or not all the bases were sent for alignment, clip it
-        final int alignmentReadLength = alignment.getReadLength();
-        final int originalReadLength = rec.getReadLength();
-        final int trimmed = (!rec.getReadPairedFlag()) || rec.getFirstOfPairFlag()
-                ? this.read1BasesTrimmed != null ? this.read1BasesTrimmed : 0
-                : this.read2BasesTrimmed != null ? this.read2BasesTrimmed : 0;
-        final int notWritten = originalReadLength - (alignmentReadLength + trimmed);
-       
-        // Update cigar if the mate maps off the reference
-        createNewCigarsIfMapsOffEndOfReference(rec);
-
-        rec.setCigar(CigarUtil.addSoftClippedBasesToEndsOfCigar(
-            rec.getCigar(), rec.getReadNegativeStrandFlag(), notWritten, trimmed));
-
-        // If the adapter sequence is marked and clipAdapter is true, clip it
-        if (this.clipAdapters && rec.getAttribute(ReservedTagConstants.XT) != null){
-            CigarUtil.softClip3PrimeEndOfRead(rec, rec.getIntegerAttribute(ReservedTagConstants.XT));
-        }
-    }
-
-
-    protected SAMSequenceDictionary getSequenceDictionary() { return this.sequenceDictionary; }
-
-    protected SAMProgramRecord getProgramRecord() { return this.programRecord; }
-
-    protected void setProgramRecord(final SAMProgramRecord pg ) {
-        if (this.programRecord != null) {
-            throw new IllegalStateException("Cannot set program record more than once on alignment merger.");
-        }
-        this.programRecord = pg;
-        this.header.addProgramRecord(pg);
-        SAMUtils.chainSAMProgramRecord(header, pg);
-    }
-
-    protected boolean isReservedTag(final String tag) {
-        final char firstCharOfTag = tag.charAt(0);
-
-        // All tags that start with a lower-case letter are user defined and should not be overridden by aligner
-        // unless explicitly specified in attributesToRetain.
-        if (Character.isLowerCase(firstCharOfTag)) return true;
-
-        for (final char c : RESERVED_ATTRIBUTE_STARTS) {
-            if (firstCharOfTag == c) return true;
-        }
-        return false;
-    }
-
-    protected SAMFileHeader getHeader() { return this.header; }
-
-    protected void resetRefSeqFileWalker() {
-        this.refSeq = new ReferenceSequenceFileWalker(referenceFasta);
-    }
-
-    public boolean isClipOverlappingReads() {
-        return clipOverlappingReads;
-    }
-
-    public void setClipOverlappingReads(final boolean clipOverlappingReads) {
-        this.clipOverlappingReads = clipOverlappingReads;
-    }
-
-    public boolean isKeepAlignerProperPairFlags() {
-        return keepAlignerProperPairFlags;
-    }
-
-    /**
-     * If true, keep the aligner's idea of proper pairs rather than letting alignment merger decide.
-     */
-    public void setKeepAlignerProperPairFlags(final boolean keepAlignerProperPairFlags) {
-        this.keepAlignerProperPairFlags = keepAlignerProperPairFlags;
-    }
-
-    public void setIncludeSecondaryAlignments(final boolean includeSecondaryAlignments) {
-        this.includeSecondaryAlignments = includeSecondaryAlignments;
-    }
-
-    public void close() {
-        CloserUtil.close(this.refSeq);
-    }
-}
diff --git a/src/java/net/sf/picard/sam/AbstractDuplicateFindingAlgorithm.java b/src/java/net/sf/picard/sam/AbstractDuplicateFindingAlgorithm.java
deleted file mode 100644
index 75da479..0000000
--- a/src/java/net/sf/picard/sam/AbstractDuplicateFindingAlgorithm.java
+++ /dev/null
@@ -1,175 +0,0 @@
-package net.sf.picard.sam;
-
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.util.Log;
-import net.sf.samtools.util.StringUtil;
-
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-/**
- * Abstract class that holds parameters and methods common to classes that perform duplicate
- * detection and/or marking within SAM/BAM files.
- *
- * @author Tim Fennell
- */
-public abstract class AbstractDuplicateFindingAlgorithm extends CommandLineProgram {
-    private static Log LOG = Log.getInstance(AbstractDuplicateFindingAlgorithm.class);
-
-    private static final String DEFAULT_READ_NAME_REGEX = "[a-zA-Z0-9]+:[0-9]:([0-9]+):([0-9]+):([0-9]+).*".intern();
-
-    @Option(doc="Regular expression that can be used to parse read names in the incoming SAM file. Read names are " +
-            "parsed to extract three variables: tile/region, x coordinate and y coordinate. These values are used " +
-            "to estimate the rate of optical duplication in order to give a more accurate estimated library size. " +
-            "The regular expression should contain three capture groups for the three variables, in order. " +
-            "It must match the entire read name. " +
-            "Note that if the default regex is specified, a regex match is not actually done, but instead the read name " +
-            " is split on colon character and the 2nd, 3rd and 4th elements are assumed to be tile, x and y values.")
-    public String READ_NAME_REGEX = DEFAULT_READ_NAME_REGEX;
-    
-    @Option(doc="The maximum offset between two duplicte clusters in order to consider them optical duplicates. This " +
-            "should usually be set to some fairly small number (e.g. 5-10 pixels) unless using later versions of the " +
-            "Illumina pipeline that multiply pixel values by 10, in which case 50-100 is more normal.")
-    public int OPTICAL_DUPLICATE_PIXEL_DISTANCE = 100;
-
-    private Pattern READ_NAME_PATTERN = null;
-
-    private boolean warnedAboutRegexNotMatching = false;
-
-    /**
-     * Small interface that provides access to the physical location information about a cluster.
-     * All values should be defaulted to -1 if unavailable.  ReadGroup and Tile should only allow
-     * non-zero positive integers, x and y coordinates may be negative.
-     */
-    public static interface PhysicalLocation {
-        short getReadGroup();
-        void  setReadGroup(short rg);
-        short  getTile();
-        void  setTile(short tile);
-        short getX();
-        void  setX(short x);
-        short getY();
-        void  setY(short y);
-    }
-    
-    /**
-     * Method used to extract tile/x/y from the read name and add it to the PhysicalLocation so that it
-     * can be used later to determine optical duplication
-     *
-     * @param readName the name of the read/cluster
-     * @param loc the object to add tile/x/y to
-     * @return true if the read name contained the information in parsable form, false otherwise
-     */
-    private final String[] tmpLocationFields = new String[10];
-    boolean addLocationInformation(final String readName, final PhysicalLocation loc) {
-        // Optimized version if using the default read name regex (== used on purpose):
-        if (READ_NAME_REGEX == DEFAULT_READ_NAME_REGEX) {
-            final int fields = StringUtil.split(readName, tmpLocationFields, ':');
-            if (fields < 5) {
-                if (!warnedAboutRegexNotMatching) {
-                    LOG.warn(String.format("Default READ_NAME_REGEX '%s' did not match read name '%s'.  " +
-                            "You may need to specify a READ_NAME_REGEX in order to correctly identify optical duplicates.  " +
-                            "Note that this message will not be emitted again even if other read names do not match the regex.",
-                            READ_NAME_REGEX, readName));
-                    warnedAboutRegexNotMatching = true;
-                }
-                return false;
-            }
-
-            loc.setTile((short) rapidParseInt(tmpLocationFields[2]));
-            loc.setX((short) rapidParseInt(tmpLocationFields[3]));
-            loc.setY((short) rapidParseInt(tmpLocationFields[4]));
-            return true;
-        }
-        else if (READ_NAME_REGEX == null) {
-            return false;
-        }
-        else {
-            // Standard version that will use the regex
-            if (READ_NAME_PATTERN == null) READ_NAME_PATTERN = Pattern.compile(READ_NAME_REGEX);
-
-            final Matcher m = READ_NAME_PATTERN.matcher(readName);
-            if (m.matches()) {
-                loc.setTile((short) Integer.parseInt(m.group(1)));
-                loc.setX((short) Integer.parseInt(m.group(2)));
-                loc.setY((short) Integer.parseInt(m.group(3)));
-                return true;
-            }
-            else {
-                if (!warnedAboutRegexNotMatching) {
-                    LOG.warn(String.format("READ_NAME_REGEX '%s' did not match read name '%s'.  Your regex may not be correct.  " +
-                            "Note that this message will not be emitted again even if other read names do not match the regex.",
-                            READ_NAME_REGEX, readName));
-                    warnedAboutRegexNotMatching = true;
-                }
-                return false;
-            }
-        }
-    }
-
-    /**
-     * Very specialized method to rapidly parse a sequence of digits from a String up until the first
-     * non-digit character. Does not handle negative numbers.
-     */
-    private final int rapidParseInt(final String input) {
-        final int len = input.length();
-        int val = 0;
-
-        for (int i=0; i<len; ++i) {
-            final char ch = input.charAt(i);
-            if (Character.isDigit(ch)) {
-                val = (val*10) + (ch-48);
-            }
-        }
-
-        return val;
-    }
-
-    /**
-     * Finds which reads within the list of duplicates are likely to be optical duplicates of
-     * one another.
-     *
-     * Note: this method will perform a sort() of the list; if it is imperative that the list be
-     * unmodified a copy of the list should be passed to this method.
-     *
-     * @param list a list of reads that are determined to be duplicates of one another
-     * @param maxDistance maximum distance in x and y directions for reads to be considered optical duplicates
-     * @return a boolean[] of the same length as the incoming list marking which reads are optical duplicates
-     */
-    boolean[] findOpticalDuplicates(final List<? extends PhysicalLocation> list, final int maxDistance) {
-        final int length = list.size();
-        final boolean[] opticalDuplicateFlags = new boolean[length];
-
-        Collections.sort(list, new Comparator<PhysicalLocation>() {
-            public int compare(final PhysicalLocation lhs, final PhysicalLocation rhs) {
-                int retval = lhs.getReadGroup() - rhs.getReadGroup();
-                if (retval == 0) retval = lhs.getTile() - rhs.getTile();
-                if (retval == 0) retval = lhs.getX() - rhs.getX();
-                if (retval == 0) retval = lhs.getY() - rhs.getY();
-                return retval;
-            }
-        });
-
-        outer: for (int i=0; i<length; ++i) {
-            PhysicalLocation lhs = list.get(i);
-            if (lhs.getTile() < 0) continue;
-
-            for (int j=i+1; j<length; ++j) {
-                PhysicalLocation rhs = list.get(j);
-
-                if (lhs.getReadGroup() != rhs.getReadGroup()) continue outer;
-                if (lhs.getTile() != rhs.getTile()) continue outer;
-                if (rhs.getX() > lhs.getX() + maxDistance) continue outer;
-
-                if (Math.abs(lhs.getY()  - rhs.getY()) <= maxDistance) {
-                    opticalDuplicateFlags[j] = true;
-                }
-            }
-        }
-        return opticalDuplicateFlags;
-    }
-}
diff --git a/src/java/net/sf/picard/sam/AddCommentsToBam.java b/src/java/net/sf/picard/sam/AddCommentsToBam.java
deleted file mode 100644
index 22cc1f8..0000000
--- a/src/java/net/sf/picard/sam/AddCommentsToBam.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package net.sf.picard.sam;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.StandardOptionDefinitions;
-import net.sf.picard.cmdline.Usage;
-import net.sf.picard.io.IoUtil;
-import net.sf.samtools.BamFileIoUtils;
-import net.sf.samtools.SAMFileHeader;
-import net.sf.samtools.SAMFileReader;
-
-import java.io.File;
-import java.util.List;
-
-/**
- * A tool to add comments to a BAM file header. Effectively copies the BAM file except for the addition of the @CO records
- * in the header. This tool does not support SAM files.
- *
- * @author jgentry
- */
-public class AddCommentsToBam extends CommandLineProgram {
-    @Usage public final String USAGE = "Adds one or more comments to the header of a specified BAM file. Copies the file with the " +
-            "modified header to a specified output file. Note that a block copying method is used to ensure efficient transfer to the " +
-            "output file. SAM files are not supported";
-    @Option(shortName= StandardOptionDefinitions.INPUT_SHORT_NAME, doc="Input BAM file to add a comment to the header")
-    public File INPUT;
-
-    @Option(shortName=StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc="Output BAM file to write results")
-    public File OUTPUT;
-
-    @Option(shortName="C", doc="Comments to add to the BAM file")
-    public List<String> COMMENT;
-
-    public static void main(final String[] args) { new AddCommentsToBam().instanceMainWithExit(args); }
-
-    protected int doWork() {
-        IoUtil.assertFileIsReadable(INPUT);
-        IoUtil.assertFileIsWritable(OUTPUT);
-
-        if (INPUT.getAbsolutePath().endsWith(".sam")) {
-            throw new PicardException("SAM files are not supported");
-        }
-
-        final SAMFileHeader samFileHeader = new SAMFileReader(INPUT).getFileHeader();
-        for (final String comment : COMMENT) {
-            if (comment.contains("\n")) {
-                throw new PicardException("Comments can not contain a new line");
-            }
-            samFileHeader.addComment(comment);
-        }
-
-        BamFileIoUtils.reheaderBamFile(samFileHeader, INPUT, OUTPUT, CREATE_MD5_FILE, CREATE_INDEX);
-
-        return 0;
-    }
-}
diff --git a/src/java/net/sf/picard/sam/AddOrReplaceReadGroups.java b/src/java/net/sf/picard/sam/AddOrReplaceReadGroups.java
deleted file mode 100644
index 58f2b45..0000000
--- a/src/java/net/sf/picard/sam/AddOrReplaceReadGroups.java
+++ /dev/null
@@ -1,112 +0,0 @@
-package net.sf.picard.sam;
-
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.StandardOptionDefinitions;
-import net.sf.picard.cmdline.Usage;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.util.Log;
-import net.sf.picard.util.ProgressLogger;
-import net.sf.samtools.*;
-import net.sf.samtools.SAMFileHeader.SortOrder;
-import net.sf.samtools.util.Iso8601Date;
-
-import java.io.File;
-import java.util.Arrays;
-
-/**
- * Replaces read groups in a BAM file
- *
- * @author mdepristo
- */
-public class AddOrReplaceReadGroups extends CommandLineProgram {
-    @Usage(programVersion="1.0")
-    public String USAGE = "Replaces all read groups in the INPUT file with a new read group and assigns " +
-                          "all reads to this read group in the OUTPUT BAM";
-
-    @Option(shortName= StandardOptionDefinitions.INPUT_SHORT_NAME, doc="Input file (bam or sam).")
-    public File INPUT = null;
-
-    @Option(shortName=StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc="Output file (bam or sam).")
-    public File OUTPUT = null;
-
-    @Option(shortName=StandardOptionDefinitions.SORT_ORDER_SHORT_NAME, optional=true,
-            doc="Optional sort order to output in. If not supplied OUTPUT is in the same order as INPUT.")
-    public SortOrder SORT_ORDER;
-
-    @Option(shortName="ID",doc="Read Group ID")
-    public String RGID = "1";
-
-    @Option(shortName="LB",doc="Read Group Library")
-    public String RGLB;
-
-    @Option(shortName="PL",doc="Read Group platform (e.g. illumina, solid)")
-    public String RGPL;
-
-    @Option(shortName="PU",doc="Read Group platform unit (eg. run barcode)")
-    public String RGPU;
-
-    @Option(shortName="SM",doc="Read Group sample name")
-    public String RGSM;
-
-    @Option(shortName="CN", doc="Read Group sequencing center name", optional=true)
-    public String RGCN;
-
-    @Option(shortName="DS", doc="Read Group description", optional=true)
-    public String RGDS;
-
-    @Option(shortName="DT", doc="Read Group run date", optional=true)
-    public Iso8601Date RGDT;
-
-    @Option(shortName = "PI", doc = "Read Group predicted insert size", optional = true)
-    public Integer RGPI;
-
-    private final Log log = Log.getInstance(AddOrReplaceReadGroups.class);
-
-    /** Required main method implementation. */
-    public static void main(final String[] argv) {
-        new AddOrReplaceReadGroups().instanceMainWithExit(argv);
-    }
-
-    protected int doWork() {
-        IoUtil.assertFileIsReadable(INPUT);
-        IoUtil.assertFileIsWritable(OUTPUT);
-
-        final SAMFileReader in = new SAMFileReader(INPUT);
-
-        // create the read group we'll be using
-        final SAMReadGroupRecord rg = new SAMReadGroupRecord(RGID);
-        rg.setLibrary(RGLB);
-        rg.setPlatform(RGPL);
-        rg.setSample(RGSM);
-        rg.setPlatformUnit(RGPU);
-        if (RGCN != null) rg.setSequencingCenter(RGCN);
-        if (RGDS != null) rg.setDescription(RGDS);
-        if (RGDT != null) rg.setRunDate(RGDT);
-        if (RGPI != null) rg.setPredictedMedianInsertSize(RGPI);
-
-        log.info(String.format("Created read group ID=%s PL=%s LB=%s SM=%s%n", rg.getId(), rg.getPlatform(), rg.getLibrary(), rg.getSample()));
-
-        // create the new header and output file
-        final SAMFileHeader inHeader = in.getFileHeader();
-        final SAMFileHeader outHeader = inHeader.clone();
-        outHeader.setReadGroups(Arrays.asList(rg));
-        if (SORT_ORDER != null) outHeader.setSortOrder(SORT_ORDER);
-
-        final SAMFileWriter outWriter = new SAMFileWriterFactory().makeSAMOrBAMWriter(outHeader,
-                                                                                      outHeader.getSortOrder() == inHeader.getSortOrder(),
-                                                                                      OUTPUT);
-
-        final ProgressLogger progress = new ProgressLogger(log);
-        for (final SAMRecord read : in) {
-            read.setAttribute(SAMTag.RG.name(), RGID);
-            outWriter.addAlignment(read);
-            progress.record(read);
-        }
-
-        // cleanup
-        in.close();
-        outWriter.close();
-        return 0;
-    }
-}
diff --git a/src/java/net/sf/picard/sam/BamIndexStats.java b/src/java/net/sf/picard/sam/BamIndexStats.java
deleted file mode 100755
index 797e8c2..0000000
--- a/src/java/net/sf/picard/sam/BamIndexStats.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.sam;
-
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.StandardOptionDefinitions;
-import net.sf.picard.cmdline.Usage;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.util.Log;
-import net.sf.samtools.BAMIndex;
-import net.sf.samtools.BAMIndexMetaData;
-
-import java.io.File;
-
-/**
- * Command line program to print statistics from BAM index (.bai) file
- * Statistics include count of aligned and unaligned reads for each reference sequence
- * and a count of all records with no start coordinate.
- * Similar to the 'samtools idxstats' command.
- *
- * @author Martha Borkan
- */
-public class BamIndexStats extends CommandLineProgram {
-
-    private static final Log log = Log.getInstance(BuildBamIndex.class);
-
-    @Usage
-    public String USAGE = getStandardUsagePreamble() + "Generates BAM index statistics. " +
-            "Input BAM file must have a corresponding index file.\n";
-
-    @Option(shortName= StandardOptionDefinitions.INPUT_SHORT_NAME,
-            doc="A BAM file to process.")
-    public File INPUT;
-
-
-    /** Stock main method for a command line program. */
-    public static void main(final String[] argv) {
-        System.exit(new BamIndexStats().instanceMain(argv));
-    }
-
-    /**
-     * Main method for the program.  Checks that input file is present and
-     * readable, then iterates through the index printing meta data to stdout.
-     */
-    protected int doWork() {
-
-        if (INPUT.getName().endsWith(BAMIndex.BAMIndexSuffix))
-               log.warn("INPUT should be BAM file not index file");
-        IoUtil.assertFileIsReadable(INPUT);
-        BAMIndexMetaData.printIndexStats(INPUT);
-
-        return 0;
-    }
-}
\ No newline at end of file
diff --git a/src/java/net/sf/picard/sam/BestEndMapqPrimaryAlignmentStrategy.java b/src/java/net/sf/picard/sam/BestEndMapqPrimaryAlignmentStrategy.java
deleted file mode 100644
index b155e41..0000000
--- a/src/java/net/sf/picard/sam/BestEndMapqPrimaryAlignmentStrategy.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.sam;
-
-import net.sf.samtools.SAMRecord;
-import net.sf.samtools.SAMUtils;
-
-import java.util.*;
-
-
-/**
- * For an aligner that aligns each end independently, select the alignment for each end with the best MAPQ, and
- * make that the primary.  The primary alignments are then correlated so that their mate info points to each
- * other, but all non-primary alignments are uncorrelated.
- */
-public class BestEndMapqPrimaryAlignmentStrategy implements PrimaryAlignmentSelectionStrategy {
-    private static final MapqComparator MAPQ_COMPARATOR = new MapqComparator();
-
-    // Give random number generator a seed so results are repeatable.  Used to pick a primary alignment from
-    // multiple alignments with equal mapping quality.
-    private final Random random = new Random(1);
-
-    /**
-     * Primary alignment was filtered out.  Need to select a new one.
-     */
-    public void pickPrimaryAlignment(final HitsForInsert hits) {
-
-        if (hits.numHits() == 0) throw new IllegalArgumentException("No alignments to pick from");
-        Collections.sort(hits.firstOfPairOrFragment, MAPQ_COMPARATOR);
-        Collections.sort(hits.secondOfPair, MAPQ_COMPARATOR);
-
-        randomlySelectPrimaryFromBest(hits.firstOfPairOrFragment);
-        randomlySelectPrimaryFromBest(hits.secondOfPair);
-        hits.setPrimaryAlignment(0);
-
-        if (!hits.isPaired()) return;
-
-        // For non-primary alignments, de-correlate them so that the mate fields don't point at some
-        // arbitrary alignment for the other end.
-
-        // No non-primary alignments for one of the ends so nothing to do.
-        if (hits.firstOfPairOrFragment.size() <= 1 || hits.secondOfPair.size() <= 1) return;
-        final int amountToSlide = hits.firstOfPairOrFragment.size() - 1;
-        for (int i = 0; i < amountToSlide; ++i) {
-            hits.secondOfPair.add(1, null);
-        }
-    }
-
-
-    /**
-     * Randomly picks one of the best alignments and puts it into the 0th slot of the list.
-     * @param recs List of alignments sorted in descending order of alignment quality.
-     */
-    private void randomlySelectPrimaryFromBest(List<SAMRecord> recs) {
-        if (recs.isEmpty()) return;
-        final int bestMapq = recs.get(0).getMappingQuality();
-        int i;
-        for (i = 1; i < recs.size() && recs.get(i).getMappingQuality() == bestMapq; ++i) {
-        }
-        final int bestIndex = random.nextInt(i);
-        if (bestIndex == 0) return;
-        final SAMRecord tmp = recs.get(0);
-        recs.set(0, recs.get(bestIndex));
-        recs.set(bestIndex, tmp);
-    }
-
-    // Sorts in descending order, but 255 is considered > 0 but < 1, and unmapped is worst of all
-    private static class MapqComparator implements Comparator<SAMRecord> {
-        public int compare(final SAMRecord rec1, final SAMRecord rec2) {
-            if (rec1.getReadUnmappedFlag()) {
-                if (rec2.getReadUnmappedFlag()) return 0;
-                else return 1;
-            } else if (rec2.getReadUnmappedFlag()) {
-                return -1;
-            }
-            return -SAMUtils.compareMapqs(rec1.getMappingQuality(), rec2.getMappingQuality());
-        }
-    }
-}
-
diff --git a/src/java/net/sf/picard/sam/BestMapqPrimaryAlignmentSelectionStrategy.java b/src/java/net/sf/picard/sam/BestMapqPrimaryAlignmentSelectionStrategy.java
deleted file mode 100644
index 9c8e037..0000000
--- a/src/java/net/sf/picard/sam/BestMapqPrimaryAlignmentSelectionStrategy.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2012 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.sam;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Random;
-import net.sf.picard.sam.HitsForInsert.NumPrimaryAlignmentState;
-import net.sf.samtools.SAMUtils;
-
-/**
- * This strategy was designed for TopHat output, but could be of general utility.  It picks the alignment with best MAPQ.
- * If paired-end, it is the alignment in which the sum of the MAPQs of both ends is the best.  In case of ties, one
- * is selected arbitrarily.  This strategy expects pair-aware alignments, with the corresponding alignment for each
- * mate of the pair correlated by HI (hit index) tag.  If the aligner has set a pair of alignments as primary, this
- * is used (assuming one of those alignments is not filtered out).  Otherwise the alignment pair with best MapQ is
- * selected.
- */
-public class BestMapqPrimaryAlignmentSelectionStrategy implements PrimaryAlignmentSelectionStrategy {
-    // Give random number generator a seed so results are repeatable.  Used to pick a primary alignment from
-    // multiple alignments with equal mapping quality.
-    private final Random random = new Random(1);
-
-    /**
-     * Primary alignment was filtered out.  Need to select a new one.
-     */
-    public void pickPrimaryAlignment(final HitsForInsert hits) {
-
-        if (hits.numHits() == 0) throw new IllegalArgumentException("No alignments to pick from");
-        hits.coordinateByHitIndex();
-        // See if primary alignment is not already unambiguously determined.
-        final NumPrimaryAlignmentState firstEndAlignmentState = hits.tallyPrimaryAlignments(true);
-        final NumPrimaryAlignmentState secondEndAlignmentState = hits.tallyPrimaryAlignments(false);
-
-        if ((firstEndAlignmentState == NumPrimaryAlignmentState.NONE && secondEndAlignmentState == NumPrimaryAlignmentState.NONE) ||
-                firstEndAlignmentState == NumPrimaryAlignmentState.MORE_THAN_ONE ||
-                secondEndAlignmentState == NumPrimaryAlignmentState.MORE_THAN_ONE) {
-            // Need to use selected strategy for picking primary.
-
-            // Find all the hits with the best MAPQ.
-            final List<Integer> primaryAlignmentIndices = new ArrayList<Integer>(hits.numHits());
-            int bestMapQ = -1;
-            for (int i = 0; i < hits.numHits(); ++i) {
-                final int firstEndMapq;
-                if (hits.getFirstOfPair(i) != null) {
-                    firstEndMapq = hits.getFirstOfPair(i).getMappingQuality();
-                } else {
-                    firstEndMapq = 0;
-                }
-                final int secondEndMapq;
-                if (hits.getSecondOfPair(i) != null) {
-                    secondEndMapq = hits.getSecondOfPair(i).getMappingQuality();
-                } else {
-                    secondEndMapq = 0;
-                }
-                int thisMapQ = SAMUtils.combineMapqs(firstEndMapq, secondEndMapq);
-                if (thisMapQ > bestMapQ) {
-                    bestMapQ = thisMapQ;
-                    primaryAlignmentIndices.clear();
-                }
-                if (thisMapQ == bestMapQ) primaryAlignmentIndices.add(i);
-            }
-
-            // Of all the hits with the best MAPQ, randomly select one to be primary.
-            final int primaryAlignmentIndex;
-            if (primaryAlignmentIndices.size() == 1) primaryAlignmentIndex = primaryAlignmentIndices.get(0);
-            else if (primaryAlignmentIndices.size() > 1) primaryAlignmentIndex =
-                    primaryAlignmentIndices.get(random.nextInt(primaryAlignmentIndices.size()));
-            else throw new IllegalStateException("Never found a best MAPQ -- should never happen");
-
-            hits.setPrimaryAlignment(primaryAlignmentIndex);
-        }
-    }
-}
diff --git a/src/java/net/sf/picard/sam/BuildBamIndex.java b/src/java/net/sf/picard/sam/BuildBamIndex.java
deleted file mode 100755
index 249c2bb..0000000
--- a/src/java/net/sf/picard/sam/BuildBamIndex.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.sam;
-
-import net.sf.picard.cmdline.*;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.util.Log;
-import net.sf.samtools.*;
-import net.sf.samtools.util.CloserUtil;
-
-import java.io.File;
-import java.net.URL;
-
-/**
- * Command line program to generate a BAM index (.bai) file from a BAM (.bam) file
- *
- * @author Martha Borkan
- */
-public class BuildBamIndex extends CommandLineProgram {
-
-    private static final Log log = Log.getInstance(BuildBamIndex.class);
-
-    @Usage
-    public String USAGE = getStandardUsagePreamble() + "Generates a BAM index (.bai) file.";
-
-    @Option(shortName= StandardOptionDefinitions.INPUT_SHORT_NAME,
-            doc="A BAM file or URL to process. Must be sorted in coordinate order.")
-    public String INPUT;
-
-    URL inputUrl = null;   // INPUT as URL
-    File inputFile = null; // INPUT as File, if it can't be interpreted as a valid URL
-
-    @Option(shortName=StandardOptionDefinitions.OUTPUT_SHORT_NAME,
-            doc="The BAM index file. Defaults to x.bai if INPUT is x.bam, otherwise INPUT.bai.\n" +
-                "If INPUT is a URL and OUTPUT is unspecified, defaults to a file in the current directory.", optional=true)
-    public File OUTPUT;
-
-    /** Stock main method for a command line program. */
-    public static void main(final String[] argv) {
-        System.exit(new BuildBamIndex().instanceMain(argv));
-    }
-
-    /**
-     * Main method for the program.  Checks that all input files are present and
-     * readable and that the output file can be written to.  Then iterates through
-     * all the records generating a BAM Index, then writes the bai file.
-     */
-    protected int doWork() {
-
-        try {
-            inputUrl = new URL(INPUT);
-        } catch (java.net.MalformedURLException e) {
-            inputFile = new File(INPUT);
-        }
-
-        // set default output file - input-file.bai
-        if (OUTPUT == null) {
-
-            final String baseFileName;
-            if (inputUrl != null) {
-                String path = inputUrl.getPath();
-                int lastSlash = path.lastIndexOf("/");
-                baseFileName = path.substring(lastSlash + 1, path.length());
-            } else {
-                baseFileName = inputFile.getAbsolutePath();
-            }
-
-            if (baseFileName.endsWith(BamFileIoUtils.BAM_FILE_EXTENSION)) {
-
-                final int index = baseFileName.lastIndexOf(".");
-                OUTPUT = new File(baseFileName.substring(0, index) + BAMIndex.BAMIndexSuffix);
-
-            } else {
-                OUTPUT = new File(baseFileName + BAMIndex.BAMIndexSuffix);
-            }
-        }
-
-        IoUtil.assertFileIsWritable(OUTPUT);
-        final SAMFileReader bam;
-
-        if (inputUrl != null) {
-            // remote input
-            bam = new SAMFileReader(inputUrl, null, false);
-        } else {
-            // input from a normal file
-            IoUtil.assertFileIsReadable(inputFile);
-            bam = new SAMFileReader(inputFile);
-        }
-
-        if (!bam.isBinary()) {
-            throw new SAMException("Input file must be bam file, not sam file.");
-        }
-
-        if (!bam.getFileHeader().getSortOrder().equals(SAMFileHeader.SortOrder.coordinate)) {
-            throw new SAMException("Input bam file must be sorted by coordinates");
-        }
-
-        createIndex(bam, OUTPUT);
-
-        log.info("Successfully wrote bam index file " + OUTPUT);
-        CloserUtil.close(bam);
-        return 0;
-    }
-
-    /**
-     * Generates a BAM index file from an input BAM file
-     *
-     * @param reader SAMFileReader for input BAM file
-     * @param output  File for output index file
-     */
-    public static void createIndex(SAMFileReader reader, File output) {
-
-        BAMIndexer indexer = new BAMIndexer(output, reader.getFileHeader());
-
-        reader.enableFileSource(true);
-        int totalRecords = 0;
-
-        // create and write the content
-        for (SAMRecord rec : reader) {
-            if (++totalRecords % 1000000 == 0) {
-                log.info(totalRecords + " reads processed ...");
-            }
-            indexer.processAlignment(rec);
-        }
-        indexer.finish();
-    }
-}
\ No newline at end of file
diff --git a/src/java/net/sf/picard/sam/CleanSam.java b/src/java/net/sf/picard/sam/CleanSam.java
deleted file mode 100644
index f9871e4..0000000
--- a/src/java/net/sf/picard/sam/CleanSam.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.sam;
-
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.StandardOptionDefinitions;
-import net.sf.picard.cmdline.Usage;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.util.CigarUtil;
-import net.sf.picard.util.Log;
-import net.sf.picard.util.ProgressLogger;
-import net.sf.samtools.*;
-import net.sf.samtools.util.CloseableIterator;
-
-import java.io.File;
-import java.util.List;
-
-/**
- * @author alecw at broadinstitute.org
- */
-public class CleanSam extends CommandLineProgram {
-    @Usage
-    public String USAGE = getStandardUsagePreamble() + "Read SAM and perform various fix-ups.  " +
-            "Currently, the only fix-ups are 1: to soft-clip an alignment that hangs off the end of its reference sequence; " +
-            "and 2: to set MAPQ to 0 if a read is unmapped.";
-
-    @Option(shortName = StandardOptionDefinitions.INPUT_SHORT_NAME, doc = "Input SAM to be cleaned.")
-    public File INPUT;
-
-    @Option(shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc = "Where to write cleaned SAM.")
-    public File OUTPUT;
-
-    public static void main(final String[] argv) {
-        new CleanSam().instanceMainWithExit(argv);
-    }
-
-    /**
-     * Do the work after command line has been parsed.
-     * RuntimeException may be thrown by this method, and are reported appropriately.
-     *
-     * @return program exit status.
-     */
-    @Override
-    protected int doWork() {
-        IoUtil.assertFileIsReadable(INPUT);
-        IoUtil.assertFileIsWritable(OUTPUT);
-        final SAMFileReader.ValidationStringency originalStringency = SAMFileReader.getDefaultValidationStringency();
-        if (VALIDATION_STRINGENCY == SAMFileReader.ValidationStringency.STRICT) {
-            SAMFileReader.setDefaultValidationStringency(SAMFileReader.ValidationStringency.LENIENT);
-        }
-        try {
-            final SAMFileReader reader = new SAMFileReader(INPUT);
-            final SAMFileWriter writer = new SAMFileWriterFactory().makeSAMOrBAMWriter(reader.getFileHeader(), true, OUTPUT);
-            final CloseableIterator<SAMRecord> it = reader.iterator();
-            final ProgressLogger progress = new ProgressLogger(Log.getInstance(CleanSam.class));
-
-            // If the read (or its mate) maps off the end of the alignment, clip it
-            while(it.hasNext()) {
-                final SAMRecord rec = it.next();
-
-                // If the read (or its mate) maps off the end of the alignment, clip it
-                AbstractAlignmentMerger.createNewCigarsIfMapsOffEndOfReference(rec);
-
-                // check the read's mapping quality
-                if (rec.getReadUnmappedFlag() && 0 != rec.getMappingQuality()) {
-                    rec.setMappingQuality(0);
-                }
-
-                writer.addAlignment(rec);
-                progress.record(rec);
-            }
-
-            writer.close();
-            it.close();
-        }
-        finally {
-            SAMFileReader.setDefaultValidationStringency(originalStringency);
-        }
-        return 0;
-    }
-}
diff --git a/src/java/net/sf/picard/sam/ComparableSamRecordIterator.java b/src/java/net/sf/picard/sam/ComparableSamRecordIterator.java
deleted file mode 100644
index c1fee74..0000000
--- a/src/java/net/sf/picard/sam/ComparableSamRecordIterator.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.sam;
-
-import net.sf.picard.util.PeekableIterator;
-
-import java.util.Comparator;
-
-import net.sf.samtools.SAMRecord;
-import net.sf.samtools.SAMFileReader;
-import net.sf.samtools.util.CloseableIterator;
-
-/**
- * Iterator for SAM records that implements comparable to enable sorting of iterators.
- * The comparison is performed by comparing the next record in the iterator to the next
- * record in another iterator and returning the ordering between those SAM records.
- */
-class ComparableSamRecordIterator extends PeekableIterator<SAMRecord> implements Comparable<ComparableSamRecordIterator> {
-    private final Comparator<SAMRecord> comparator;
-    private final SAMFileReader reader;    
-
-    /**
-     * Constructs a wrapping iterator around the given iterator that will be able
-     * to compare itself to other ComparableSamRecordIterators using the given comparator.
-     *
-     * @param iterator the wrapped iterator.
-     * @param comparator the Comparator to use to provide ordering fo SAMRecords
-     */
-    public ComparableSamRecordIterator(final SAMFileReader sam, final CloseableIterator<SAMRecord> iterator, final Comparator<SAMRecord> comparator) {
-        super(iterator);
-        this.reader = sam;        
-        this.comparator = comparator;
-    }
-
-    /** Returns the reader from which this iterator was constructed. */
-    public SAMFileReader getReader() {
-        return reader;
-    }    
-
-    /**
-     * Compares this iterator to another comparable iterator based on the next record
-     * available in each iterator.  If the two comparable iterators have different
-     * comparator types internally an exception is thrown.
-     *
-     * @param that another iterator to compare to
-     * @return a negative, 0 or positive number as described in the Comparator interface
-     */
-    public int compareTo(final ComparableSamRecordIterator that) {
-        if (this.comparator.getClass() != that.comparator.getClass()) {
-            throw new IllegalStateException("Attempt to compare two ComparableSAMRecordIterators that " +
-                    "have different orderings internally");
-        }
-
-        final SAMRecord record = this.peek();
-        final SAMRecord record2 = that.peek();
-        return comparator.compare(record, record2);
-    }
-
-    @Override
-    public boolean equals(final Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-
-        return compareTo((ComparableSamRecordIterator)o) == 0;
-    }
-
-    @Override
-    public int hashCode() {
-        throw new UnsupportedOperationException("ComparableSamRecordIterator should not be hashed because it can change value");
-    }
-}
diff --git a/src/java/net/sf/picard/sam/CompareSAMs.java b/src/java/net/sf/picard/sam/CompareSAMs.java
deleted file mode 100644
index e0e27f4..0000000
--- a/src/java/net/sf/picard/sam/CompareSAMs.java
+++ /dev/null
@@ -1,515 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.sam;
-
-import java.io.File;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.cmdline.PositionalArguments;
-import net.sf.picard.cmdline.Usage;
-import net.sf.samtools.*;
-
-/**
- * Rudimentary SAM comparer.  Compares headers, and if headers are compatible enough, compares SAMRecords,
- * looking only at basic alignment info.  Summarizes the number of alignments that match, mismatch, are missing, etc.
-
- * @author alecw at broadinstitute.org
- */
-public class CompareSAMs extends CommandLineProgram {
-
-    @Usage
-    public final String USAGE = "USAGE: CompareSAMS <SAMFile1> <SAMFile2>\n" +
-        "Compares the headers of the two input SAM or BAM files, and, if possible, the SAMRecords. " +
-        "For SAMRecords, compares only the readUnmapped flag, reference name, start position and strand. " +
-        "Reports the number of SAMRecords that match, differ in alignment, are mapped in only one input, " +
-        "or are missing in one of the files";
-
-    @PositionalArguments(minElements = 2, maxElements = 2)
-    public List<File> samFiles;
-
-    private final SAMFileReader[] samReaders = new SAMFileReader[2];
-    private boolean sequenceDictionariesDiffer;
-    private int mappingsMatch = 0;
-    private int unmappedBoth = 0;
-    private int unmappedLeft = 0;
-    private int unmappedRight = 0;
-    private int mappingsDiffer = 0;
-    private int missingLeft = 0;
-    private int missingRight = 0;
-    private boolean areEqual;
-
-   public static void main(String[] argv) {
-        new CompareSAMs().instanceMainWithExit(argv);
-    }
-
-    /**
-     * Do the work after command line has been parsed. RuntimeException may be
-     * thrown by this method, and are reported appropriately.
-     *
-     * @return program exit status.
-     */
-    @Override
-    protected int doWork() {
-        for (int i = 0; i < samFiles.size(); ++i) {
-            samReaders[i] = new SAMFileReader(samFiles.get(i));
-        }
-        areEqual = compareHeaders();
-        areEqual = compareAlignments() && areEqual;
-        printReport();
-        if (!areEqual) {
-            System.out.println("SAM files differ.");
-        } else {
-            System.out.println("SAM files match.");
-        }
-        return 0;
-    }
-
-    private void printReport() {
-        System.out.println("Match\t" + mappingsMatch);
-        System.out.println("Differ\t" + mappingsDiffer);
-        System.out.println("Unmapped_both\t" + unmappedBoth);
-        System.out.println("Unmapped_left\t" + unmappedLeft);
-        System.out.println("Unmapped_right\t" + unmappedRight);
-        System.out.println("Missing_left\t" + missingLeft);
-        System.out.println("Missing_right\t" + missingRight);
-    }
-
-    private boolean compareAlignments() {
-        if (!compareValues(samReaders[0].getFileHeader().getSortOrder(), samReaders[1].getFileHeader().getSortOrder(),
-                "Sort Order")) {
-            System.out.println("Cannot compare alignments if sort orders differ.");
-            return false;
-        }
-        switch (samReaders[0].getFileHeader().getSortOrder()) {
-            case coordinate:
-                if (sequenceDictionariesDiffer) {
-                    System.out.println("Cannot compare coordinate-sorted SAM files because sequence dictionaries differ.");
-                    return false;
-                }
-                return compareCoordinateSortedAlignments();
-            case queryname:
-                return compareQueryNameSortedAlignments();
-            case unsorted:
-                return compareUnsortedAlignments();
-            default:
-                // unreachable
-                assert(false);
-                return false;
-        }
-    }
-
-
-    private boolean compareCoordinateSortedAlignments() {
-        final SecondaryOrSupplementarySkippingIterator itLeft =
-                new SecondaryOrSupplementarySkippingIterator(samReaders[0].iterator());
-        final SecondaryOrSupplementarySkippingIterator itRight =
-                new SecondaryOrSupplementarySkippingIterator(samReaders[1].iterator());
-
-        // Save any reads which haven't been matched during in-order scan.
-        final Map<String, SAMRecord> leftUnmatched = new HashMap<String, SAMRecord>();
-        final Map<String, SAMRecord> rightUnmatched = new HashMap<String, SAMRecord>();
-
-        boolean ret = true;
-
-        while (itLeft.hasCurrent()) {
-            if (!itRight.hasCurrent()) {
-                // Exhausted right side.  See if any of the remaining left reads match
-                // any of the saved right reads.
-                for( ; itLeft.hasCurrent(); itLeft.advance()) {
-                    final SAMRecord left = itLeft.getCurrent();
-                    final SAMRecord right = rightUnmatched.remove(left.getReadName());
-                    if (right == null) {
-                        ++missingRight;
-                    } else {
-                        tallyAlignmentRecords(left, right);
-                    }
-                }
-                break;
-            }
-            // Don't assume stability of order beyond the coordinate.  Therefore grab all the
-            // reads from the left that has the same coordinate.
-            final SAMRecord left = itLeft.getCurrent();
-            final Map<String, SAMRecord> leftCurrentCoordinate = new HashMap<String, SAMRecord>();
-            leftCurrentCoordinate.put(left.getReadName(), left);
-            while (itLeft.advance()) {
-                final SAMRecord nextLeft = itLeft.getCurrent();
-                if (compareAlignmentCoordinates(left, nextLeft) == 0) {
-                    leftCurrentCoordinate.put(nextLeft.getReadName(), nextLeft);
-                } else {
-                    break;
-                }
-            }
-            // Advance the right iterator until it is >= the left reads that have just been grabbed
-            while (itRight.hasCurrent() && compareAlignmentCoordinates(left, itRight.getCurrent()) > 0) {
-                final SAMRecord right = itRight.getCurrent();
-                rightUnmatched.put(right.getReadName(), right);
-                itRight.advance();
-            }
-            // For each right read that has the same coordinate as the current left reads,
-            // see if there is a matching left read.  If so, process and discard.  If not,
-            // save the right read for later.
-            for (;itRight.hasCurrent() && compareAlignmentCoordinates(left, itRight.getCurrent()) == 0; itRight.advance()) {
-                final SAMRecord right = itRight.getCurrent();
-                final SAMRecord matchingLeft = leftCurrentCoordinate.remove(right.getReadName());
-                if (matchingLeft != null) {
-                    ret = tallyAlignmentRecords(matchingLeft, right) && ret;
-                } else {
-                    rightUnmatched.put(right.getReadName(), right);
-                }
-            }
-
-            // Anything left in leftCurrentCoordinate has not been matched
-            for (final SAMRecord samRecord : leftCurrentCoordinate.values()) {
-                leftUnmatched.put(samRecord.getReadName(), samRecord);
-            }
-        }
-        // The left iterator has been exhausted.  See if any of the remaining right reads
-        // match any of the saved left reads.
-        for( ; itRight.hasCurrent(); itRight.advance()) {
-            final SAMRecord right = itRight.getCurrent();
-            final SAMRecord left = leftUnmatched.remove(right.getReadName());
-            if (left != null) {
-                tallyAlignmentRecords(left, right);
-            } else {
-                ++missingLeft;
-            }
-        }
-
-        // Look up reads that were unmatched from left, and see if they are in rightUnmatched.
-        // If found, remove from rightUnmatched and tally.
-        for (final Map.Entry<String, SAMRecord> leftEntry : leftUnmatched.entrySet()) {
-            final String readName = leftEntry.getKey();
-            final SAMRecord left = leftEntry.getValue();
-            final SAMRecord right = rightUnmatched.remove(readName);
-            if (right == null) {
-                ++missingRight;
-                continue;
-            }
-            tallyAlignmentRecords(left, right);
-        }
-
-        // Any elements remaining in rightUnmatched are guaranteed not to be in leftUnmatched.
-        missingLeft += rightUnmatched.size();
-
-        if (ret) {
-            if (missingLeft > 0 || missingRight > 0 || mappingsDiffer > 0 || unmappedLeft > 0 || unmappedRight > 0) {
-                ret = false;
-            }
-        }
-        return ret;
-    }
-
-    private int compareAlignmentCoordinates(final SAMRecord left, final SAMRecord right) {
-        final String leftReferenceName = left.getReferenceName();
-        final String rightReferenceName = right.getReferenceName();
-        if (leftReferenceName == null && rightReferenceName == null) {
-            return 0;
-        } else if (leftReferenceName == null) {
-            return 1;
-        } else if (rightReferenceName == null) {
-            return -1;
-        }
-        final int leftReferenceIndex = samReaders[0].getFileHeader().getSequenceIndex(leftReferenceName);
-        final int rightReferenceIndex = samReaders[0].getFileHeader().getSequenceIndex(rightReferenceName);
-        assert(leftReferenceIndex >= 0);
-        assert(rightReferenceIndex >= 0);
-        if (leftReferenceIndex != rightReferenceIndex) {
-            return leftReferenceIndex - rightReferenceIndex;
-        }
-        return left.getAlignmentStart() - right.getAlignmentStart();
-    }
-
-    private boolean compareQueryNameSortedAlignments() {
-        final SecondaryOrSupplementarySkippingIterator it1 = new SecondaryOrSupplementarySkippingIterator(samReaders[0].iterator());
-        final SecondaryOrSupplementarySkippingIterator it2 = new SecondaryOrSupplementarySkippingIterator(samReaders[1].iterator());
-
-        boolean ret = true;
-        while (it1.hasCurrent()) {
-            if (!it2.hasCurrent()) {
-                missingRight += countRemaining(it1);
-                return false;
-            }
-            final int cmp = it1.getCurrent().getReadName().compareTo(it2.getCurrent().getReadName());
-            if (cmp < 0) {
-                ++missingRight;
-                it1.advance();
-                ret = false;
-            } else if (cmp > 0) {
-                ++missingLeft;
-                it2.advance();
-                ret = false;
-            } else {
-                if (!tallyAlignmentRecords(it1.getCurrent(), it2.getCurrent())) {
-                    ret = false;
-                }
-                it1.advance();
-                it2.advance();
-            }
-        }
-        if (it2.hasCurrent()) {
-            missingLeft += countRemaining(it2);
-            return false;
-        }
-        return ret;
-    }
-
-    private boolean compareUnsortedAlignments() {
-        final SecondaryOrSupplementarySkippingIterator it1 = new SecondaryOrSupplementarySkippingIterator(samReaders[0].iterator());
-        final SecondaryOrSupplementarySkippingIterator it2 = new SecondaryOrSupplementarySkippingIterator(samReaders[1].iterator());
-        boolean ret = true;
-        for (; it1.hasCurrent(); it1.advance(), it2.advance()) {
-            if (!it2.hasCurrent()) {
-                missingRight += countRemaining(it1);
-                return false;
-            }
-            final SAMRecord s1 = it1.getCurrent();
-            final SAMRecord s2 = it2.getCurrent();
-            if (!compareValues(s1.getReadName(), s2.getReadName(), "Read names")) {
-                System.out.println("Read names cease agreeing in unsorted SAM files .  Comparison aborting.");
-            }
-            ret = tallyAlignmentRecords(s1, s2) && ret;
-        }
-
-        if (it2.hasCurrent()) {
-            missingLeft += countRemaining(it2);
-            return false;
-        }
-        return ret;
-    }
-
-    private int countRemaining(final SecondaryOrSupplementarySkippingIterator it) {
-        int i;
-        for (i = 0; it.hasCurrent(); ++i) {
-            it.advance();
-        }
-        return i;
-    }
-
-    private boolean tallyAlignmentRecords(final SAMRecord s1, final SAMRecord s2) {
-        assert (s1.getReadName().equals(s2.getReadName()));
-        if (s1.getReadUnmappedFlag() && s2.getReadUnmappedFlag()) {
-            ++unmappedBoth;
-            return true;
-        }
-        if (s1.getReadUnmappedFlag()) {
-            ++unmappedLeft;
-            return false;
-        }
-        if (s2.getReadUnmappedFlag()) {
-            ++unmappedRight;
-            return false;
-        }
-        final boolean ret = (s1.getReferenceName().equals(s2.getReferenceName()) &&
-                s1.getAlignmentStart() == s2.getAlignmentStart() &&
-                s1.getReadNegativeStrandFlag() == s1.getReadNegativeStrandFlag());
-        if (!ret) {
-            ++mappingsDiffer;
-        } else {
-            ++mappingsMatch;
-        }
-        return ret;
-    }
-
-
-    private boolean compareHeaders() {
-        final SAMFileHeader h1 = samReaders[0].getFileHeader();
-        final SAMFileHeader h2 = samReaders[1].getFileHeader();
-        boolean ret = compareValues(h1.getVersion(), h2.getVersion(), "File format version");
-        ret = compareValues(h1.getCreator(), h2.getCreator(), "File creator") && ret;
-        ret = compareValues(h1.getAttribute("SO"), h2.getAttribute("SO"), "Sort order") && ret;
-        if (!compareSequenceDictionaries(h1, h2)) {
-            ret = false;
-            sequenceDictionariesDiffer = true;
-        }
-        ret = compareReadGroups(h1, h2) && ret;
-        ret = compareProgramRecords(h1, h2) && ret;
-        return ret;
-    }
-
-    private boolean compareProgramRecords(final SAMFileHeader h1, final SAMFileHeader h2) {
-        final List<SAMProgramRecord> l1 = h1.getProgramRecords();
-        final List<SAMProgramRecord> l2 = h2.getProgramRecords();
-        if (!compareValues(l1.size(), l2.size(), "Number of program records")) {
-            return false;
-        }
-        boolean ret = true;
-        for (int i = 0; i < l1.size(); ++i) {
-            ret = compareProgramRecord(l1.get(i), l2.get(i)) && ret;
-        }
-        return ret;
-    }
-
-    private boolean compareProgramRecord(final SAMProgramRecord programRecord1, final SAMProgramRecord programRecord2) {
-        if (programRecord1 == null && programRecord2 == null) {
-            return true;
-        }
-        if (programRecord1 == null) {
-            reportDifference("null", programRecord2.getProgramGroupId(), "Program Record");
-            return false;
-        }
-        if (programRecord2 == null) {
-            reportDifference(programRecord1.getProgramGroupId(), "null", "Program Record");
-            return false;
-        }
-        boolean ret = compareValues(programRecord1.getProgramGroupId(), programRecord2.getProgramGroupId(),
-                "Program Name");
-        final String[] attributes = {"VN", "CL"};
-        for (final String attribute: attributes) {
-            ret = compareValues(programRecord1.getAttribute(attribute), programRecord2.getAttribute(attribute),
-                    attribute + " Program Record attribute") && ret;
-        }
-        return ret;
-    }
-
-    private boolean compareReadGroups(final SAMFileHeader h1, final SAMFileHeader h2) {
-        final List<SAMReadGroupRecord> l1 = h1.getReadGroups();
-        final List<SAMReadGroupRecord> l2 = h2.getReadGroups();
-        if (!compareValues(l1.size(), l2.size(), "Number of read groups")) {
-            return false;
-        }
-        boolean ret = true;
-        for (int i = 0; i < l1.size(); ++i) {
-            ret = compareReadGroup(l1.get(i), l2.get(i)) && ret;
-        }
-        return ret;
-    }
-
-    private boolean compareReadGroup(final SAMReadGroupRecord samReadGroupRecord1, final SAMReadGroupRecord samReadGroupRecord2) {
-        boolean ret = compareValues(samReadGroupRecord1.getReadGroupId(), samReadGroupRecord2.getReadGroupId(),
-                "Read Group ID");
-        ret = compareValues(samReadGroupRecord1.getSample(), samReadGroupRecord2.getSample(),
-                "Sample for read group " + samReadGroupRecord1.getReadGroupId()) && ret;
-        ret = compareValues(samReadGroupRecord1.getLibrary(), samReadGroupRecord2.getLibrary(),
-                "Library for read group " + samReadGroupRecord1.getReadGroupId()) && ret;
-        final String[] attributes = {"DS", "PU", "PI", "CN", "DT", "PL"};
-        for (final String attribute : attributes) {
-            ret = compareValues(samReadGroupRecord1.getAttribute(attribute), samReadGroupRecord2.getAttribute(attribute),
-                attribute + " for read group " + samReadGroupRecord1.getReadGroupId()) && ret;
-        }
-        return ret;
-    }
-
-    private boolean compareSequenceDictionaries(final SAMFileHeader h1, final SAMFileHeader h2) {
-        final List<SAMSequenceRecord> s1 = h1.getSequenceDictionary().getSequences();
-        final List<SAMSequenceRecord> s2 = h2.getSequenceDictionary().getSequences();
-        if (s1.size() != s2.size()) {
-            reportDifference(s1.size(), s2.size(), "Length of sequence dictionaries");
-            return false;
-        }
-        boolean ret = true;
-        for (int i = 0; i < s1.size(); ++i) {
-            ret = compareSequenceRecord(s1.get(i), s2.get(i), i+1) && ret;
-        }
-        return ret;
-    }
-
-    private boolean compareSequenceRecord(final SAMSequenceRecord sequenceRecord1, final SAMSequenceRecord sequenceRecord2, final int which) {
-        if (!sequenceRecord1.getSequenceName().equals(sequenceRecord2.getSequenceName())) {
-            reportDifference(sequenceRecord1.getSequenceName(), sequenceRecord2.getSequenceName(),
-                    "Name of sequence record " + which);
-            return false;
-        }
-        boolean ret = compareValues(sequenceRecord1.getSequenceLength(), sequenceRecord2.getSequenceLength(), "Length of sequence " +
-                sequenceRecord1.getSequenceName());
-        ret = compareValues(sequenceRecord1.getSpecies(), sequenceRecord2.getSpecies(), "Species of sequence " +
-                sequenceRecord1.getSequenceName()) && ret;
-        ret = compareValues(sequenceRecord1.getAssembly(), sequenceRecord2.getAssembly(), "Assembly of sequence " +
-                sequenceRecord1.getSequenceName()) && ret;
-        ret = compareValues(sequenceRecord1.getAttribute("M5"), sequenceRecord2.getAttribute("M5"), "MD5 of sequence " +
-                sequenceRecord1.getSequenceName()) && ret;
-        ret = compareValues(sequenceRecord1.getAttribute("UR"), sequenceRecord2.getAttribute("UR"), "URI of sequence " +
-                sequenceRecord1.getSequenceName()) && ret;
-        return ret;
-    }
-
-    private <T> boolean compareValues(final T v1, final T v2, final String label) {
-        if (v1 == null) {
-            if (v2 == null) {
-                return true;
-            }
-            reportDifference(v1, v2, label);
-            return false;
-        }
-        if (v2 == null) {
-            reportDifference(v1, v2, label);
-            return false;
-        }
-        if (!v1.equals(v2)) {
-            reportDifference(v1, v2, label);
-            return false;
-        }
-        return true;
-    }
-
-    private void reportDifference(final String s1, final String s2, final String label) {
-        System.out.println(label + " differs.");
-        System.out.println(samFiles.get(0) + ": " + s1);
-        System.out.println(samFiles.get(1) + ": " + s2);
-    }
-    private void reportDifference(Object o1, Object o2, final String label) {
-        if (o1 == null) {
-            o1 = "null";
-        }
-        if (o2 == null) {
-            o2 = "null";
-        }
-        reportDifference(o1.toString(), o2.toString(), label);
-    }
-
-    public int getMappingsMatch() {
-        return mappingsMatch;
-    }
-
-    public int getUnmappedBoth() {
-        return unmappedBoth;
-    }
-
-    public int getUnmappedLeft() {
-        return unmappedLeft;
-    }
-
-    public int getUnmappedRight() {
-        return unmappedRight;
-    }
-
-    public int getMappingsDiffer() {
-        return mappingsDiffer;
-    }
-
-    public int getMissingLeft() {
-        return missingLeft;
-    }
-
-    public int getMissingRight() {
-        return missingRight;
-    }
-
-    public boolean areEqual() {
-        return areEqual;
-    }
-
-}
diff --git a/src/java/net/sf/picard/sam/CoordinateSortedPairInfoMap.java b/src/java/net/sf/picard/sam/CoordinateSortedPairInfoMap.java
deleted file mode 100644
index d4e0f2f..0000000
--- a/src/java/net/sf/picard/sam/CoordinateSortedPairInfoMap.java
+++ /dev/null
@@ -1,289 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.sam;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.util.FileAppendStreamLRUCache;
-import net.sf.samtools.util.CloseableIterator;
-import net.sf.samtools.util.CloserUtil;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Holds info about a mate pair for use when processing a coordinate sorted file.  When one read of a pair is encountered,
- * the caller should add a record to this map.  When the other read of a pair is encountered, the record should be removed.
- * This class assumes that reads will be processed in order of reference sequence index.  When the map is queried for
- * a record for a given reference sequence index, all the records for that sequence are loaded from temp file into RAM, so there
- * must be sufficient RAM to hold all the records for one reference sequence.  If the records are not processed in
- * reference sequence order, loading and unloading of records will cause performance to be terrible.
- * @param <KEY> KEY + reference sequence index are used to identify the record being stored or retrieved.
- * @param <REC> The type of record being retrieved.
- */
-public class CoordinateSortedPairInfoMap<KEY, REC> implements Iterable<Map.Entry<KEY, REC>> {
-    // -1 is a valid sequence index in this case
-    private final int INVALID_SEQUENCE_INDEX = -2;
-    /**
-     * directory where files will go
-     */
-    private final File workDir = IoUtil.createTempDir("CSPI.", null);
-    private int sequenceIndexOfMapInRam = INVALID_SEQUENCE_INDEX;
-    private Map<KEY, REC> mapInRam = null;
-    private final FileAppendStreamLRUCache outputStreams;
-    private final Codec<KEY, REC> elementCodec;
-    // Key is reference index (which is in the range [-1 .. max sequence index].
-    // Value is the number of records on disk for this index.
-    private final Map<Integer, Integer> sizeOfMapOnDisk = new HashMap<Integer, Integer>();
-
-    // No other methods may be called when iteration is in progress, because iteration depends on and changes
-    // internal state.
-    private boolean iterationInProgress = false;
-
-    CoordinateSortedPairInfoMap(int maxOpenFiles, Codec<KEY, REC> elementCodec) {
-        this.elementCodec = elementCodec;
-        workDir.deleteOnExit();
-        outputStreams = new FileAppendStreamLRUCache(maxOpenFiles);
-    }
-
-    /**
-     *
-     * @param sequenceIndex
-     * @param key
-     * @return The record corresponding to the given sequenceIndex and key, or null if it is not present.
-     */
-    public REC remove(final int sequenceIndex, final KEY key) {
-        if (iterationInProgress) throw new IllegalStateException("Cannot be called when iteration is in progress");
-        ensureSequenceLoaded(sequenceIndex);
-        return mapInRam.remove(key);
-    }
-
-    private void ensureSequenceLoaded(final int sequenceIndex) {
-        try {
-            if (sequenceIndexOfMapInRam == sequenceIndex) {
-                return;
-            }
-
-            // Spill map in RAM to disk
-            if (mapInRam != null) {
-                File spillFile = makeFileForSequence(sequenceIndexOfMapInRam);
-                if (spillFile.exists()) throw new IllegalStateException(spillFile + " should not exist.");
-                if (!mapInRam.isEmpty()) {
-                    // Do not create file or entry in sizeOfMapOnDisk if there is nothing to write.
-                    final OutputStream os = getOutputStreamForSequence(sequenceIndexOfMapInRam);
-                    elementCodec.setOutputStream(os);
-                    for (final Map.Entry<KEY, REC> entry : mapInRam.entrySet()) {
-                        elementCodec.encode(entry.getKey(), entry.getValue());
-                    }
-                    sizeOfMapOnDisk.put(sequenceIndexOfMapInRam, mapInRam.size());
-                    mapInRam.clear();
-                }
-            } else {
-                mapInRam = new HashMap<KEY, REC>();
-            }
-
-            sequenceIndexOfMapInRam = sequenceIndex;
-
-            // Load map from disk if it existed
-            File mapOnDisk = makeFileForSequence(sequenceIndex);
-            if (outputStreams.containsKey(mapOnDisk)) {
-                outputStreams.remove(mapOnDisk).close();
-            }
-            final Integer numRecords = sizeOfMapOnDisk.remove(sequenceIndex);
-            if (mapOnDisk.exists()) {
-                if (numRecords == null)
-                    throw new IllegalStateException("null numRecords for " + mapOnDisk);
-                FileInputStream is = null;
-                try {
-                    is = new FileInputStream(mapOnDisk);
-                    elementCodec.setInputStream(is);
-                    for (int i = 0; i < numRecords; ++i) {
-                        final Map.Entry<KEY, REC> keyAndRecord = elementCodec.decode();
-                        if (mapInRam.containsKey(keyAndRecord.getKey()))
-                            throw new PicardException("Value was put into PairInfoMap more than once.  " +
-                                    sequenceIndex + ": " + keyAndRecord.getKey());
-                        mapInRam.put(keyAndRecord.getKey(), keyAndRecord.getValue());
-                    }
-                } finally {
-                    CloserUtil.close(is);
-                }
-                net.sf.samtools.util.IOUtil.deleteFiles(mapOnDisk);
-            } else if (numRecords != null && numRecords > 0)
-                throw new IllegalStateException("Non-zero numRecords but " + mapOnDisk + " does not exist");
-        } catch (IOException e) {
-            throw new PicardException("Error loading new map from disk.", e);
-        }
-    }
-
-    /**
-     * Store the record with the given sequence index and key.  It is assumed that value did not previously exist
-     * in the map, and an exception is thrown (possibly at a later time) if that is not the case.
-     * @param sequenceIndex
-     * @param key
-     * @param record
-     */
-    public void put(final int sequenceIndex, final KEY key, final REC record) {
-        if (iterationInProgress) throw new IllegalStateException("Cannot be called when iteration is in progress");
-        if (sequenceIndex == sequenceIndexOfMapInRam) {
-            // Store in RAM map
-            if (mapInRam.containsKey(key))
-                throw new IllegalArgumentException("Putting value into PairInfoMap that already existed. " +
-                        sequenceIndex + ": " + key);
-            mapInRam.put(key, record);
-        } else {
-            // Append to file
-            final OutputStream os = getOutputStreamForSequence(sequenceIndex);
-            elementCodec.setOutputStream(os);
-            elementCodec.encode(key, record);
-            Integer prevCount = sizeOfMapOnDisk.get(sequenceIndex);
-            if (prevCount == null) prevCount = 0;
-            sizeOfMapOnDisk.put(sequenceIndex,  prevCount + 1);
-        }
-    }
-
-    private File makeFileForSequence(final int index) {
-        final File file = new File(workDir, index + ".tmp");
-        file.deleteOnExit();
-        return file;
-    }
-
-    private OutputStream getOutputStreamForSequence(final int mateSequenceIndex) {
-        return outputStreams.get(makeFileForSequence(mateSequenceIndex));
-    }
-
-    public int size() {
-        int total = sizeInRam();
-        for (final Integer mapSize : sizeOfMapOnDisk.values()) {
-            if (mapSize != null) {
-                total += mapSize;
-            }
-        }
-        return total;
-    }
-
-    /**
-     * @return number of elements stored in RAM.  Always <= size()
-     */
-    public int sizeInRam() {
-        return mapInRam != null? mapInRam.size(): 0;
-    }
-
-    /**
-     * Creates an iterator over all elements in map, in arbitrary order.  Elements may not be added
-     * or removed from map when iteration is in progress, nor may a second iteration be started.
-     * Iterator must be closed in order to allow normal access to the map.
-     */
-    public CloseableIterator<Map.Entry<KEY, REC>> iterator() {
-        if (iterationInProgress) throw new IllegalStateException("Cannot be called when iteration is in progress");
-        iterationInProgress = true;
-        return new MapIterator();
-    }
-
-    private class MapIterator implements CloseableIterator<Map.Entry<KEY, REC>> {
-        private boolean closed = false;
-        private Set<Integer> referenceIndices = new HashSet<Integer>(sizeOfMapOnDisk.keySet());
-        private final Iterator<Integer> referenceIndexIterator;
-        private Iterator<Map.Entry<KEY, REC>> currentReferenceIterator = null;
-
-        private MapIterator() {
-            if (sequenceIndexOfMapInRam != INVALID_SEQUENCE_INDEX)
-                referenceIndices.add(sequenceIndexOfMapInRam);
-            referenceIndexIterator = referenceIndices.iterator();
-            advanceToNextNonEmptyReferenceIndex();
-        }
-
-        private void advanceToNextNonEmptyReferenceIndex() {
-            while (referenceIndexIterator.hasNext()) {
-                int nextReferenceIndex = referenceIndexIterator.next();
-                ensureSequenceLoaded(nextReferenceIndex);
-                if (!mapInRam.isEmpty()) {
-                    createIteratorForMapInRam();
-                    return;
-                }
-            }
-            // no more.
-            currentReferenceIterator = null;
-        }
-
-        private void createIteratorForMapInRam() {
-            currentReferenceIterator = mapInRam.entrySet().iterator();
-        }
-
-        public void close() {
-            closed = true;
-            iterationInProgress = false;
-        }
-
-        public boolean hasNext() {
-            if (closed) throw new IllegalStateException("Iterator has been closed");
-            if (currentReferenceIterator != null && !currentReferenceIterator.hasNext())
-                throw new IllegalStateException("Should not happen");
-            return currentReferenceIterator != null;
-        }
-
-        public Map.Entry<KEY, REC> next() {
-            if (closed) throw new IllegalStateException("Iterator has been closed");
-            if (!hasNext()) throw new NoSuchElementException();
-            final Map.Entry<KEY, REC> ret = currentReferenceIterator.next();
-            if (!currentReferenceIterator.hasNext()) advanceToNextNonEmptyReferenceIndex();
-            return ret;
-        }
-
-        public void remove() {
-            throw new UnsupportedOperationException();
-        }
-    }
-
-    /**
-     * Client must implement this class, which defines the way in which records are written to and
-     * read from file.
-     */
-    public interface Codec<KEY, REC> {
-        /**
-         * Where to write encoded output
-         * @param os
-         */
-        void setOutputStream(OutputStream os);
-
-        /**
-         * Where to read encoded input from
-         * @param is
-         */
-        void setInputStream(InputStream is);
-
-        /**
-         * Write object to output stream.  If the key is part of the record, then there is no need to write
-         * it separately.
-         */
-        void encode(KEY key, REC record);
-
-        /**
-         * Read the next key and record from the input stream and convert into a java object.
-         * @return null if no more records.  Should throw exception if EOF is encountered in the middle of
-         * a record.
-         */
-        Map.Entry<KEY, REC> decode();
-
-    }
-}
diff --git a/src/java/net/sf/picard/sam/CreateSequenceDictionary.java b/src/java/net/sf/picard/sam/CreateSequenceDictionary.java
deleted file mode 100644
index 5ac75e8..0000000
--- a/src/java/net/sf/picard/sam/CreateSequenceDictionary.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.sam;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.StandardOptionDefinitions;
-import net.sf.picard.cmdline.Usage;
-import net.sf.picard.reference.ReferenceSequence;
-import net.sf.picard.reference.ReferenceSequenceFile;
-import net.sf.picard.reference.ReferenceSequenceFileFactory;
-import net.sf.samtools.*;
-import net.sf.samtools.util.StringUtil;
-
-import java.io.File;
-import java.math.BigInteger;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-/**
- * Create a SAM/BAM file from a fasta containing reference sequence.  The output SAM file contains a header but no
- * SAMRecords, and the header contains only sequence records.
- */
-public class CreateSequenceDictionary extends CommandLineProgram {
-
-    // The following attributes define the command-line arguments
-    @Usage
-    public String USAGE =
-            "Usage: " + getClass().getName() + " [options]\n\n" +
-                    "Read fasta or fasta.gz containing reference sequences, and write as a SAM or BAM file with only sequence dictionary.\n";
-
-    @Option(doc = "Input reference fasta or fasta.gz", shortName = StandardOptionDefinitions.REFERENCE_SHORT_NAME)
-    public File REFERENCE;
-
-    @Option(doc = "Output SAM or BAM file containing only the sequence dictionary",
-            shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME)
-    public File OUTPUT;
-
-    @Option(doc = "Put into AS field of sequence dictionary entry if supplied", optional = true)
-    public String GENOME_ASSEMBLY;
-
-    @Option(doc = "Put into UR field of sequence dictionary entry.  If not supplied, input reference file is used",
-            optional = true)
-    public String URI;
-
-    @Option(doc = "Put into SP field of sequence dictionary entry", optional = true)
-    public String SPECIES;
-
-    @Option(doc = "Make sequence name the first word from the > line in the fasta file.  " +
-            "By default the entire contents of the > line is used, excluding leading and trailing whitespace.")
-    public boolean TRUNCATE_NAMES_AT_WHITESPACE = true;
-
-    @Option(doc = "Stop after writing this many sequences.  For testing.")
-    public int NUM_SEQUENCES = Integer.MAX_VALUE;
-
-    private final MessageDigest md5;
-
-    public CreateSequenceDictionary() {
-        try {
-            md5 = MessageDigest.getInstance("MD5");
-        } catch (NoSuchAlgorithmException e) {
-            throw new PicardException("MD5 algorithm not found", e);
-        }
-    }
-
-    public static void main(final String[] argv) {
-        System.exit(new CreateSequenceDictionary().instanceMain(argv));
-    }
-
-    /**
-     * Use reference filename to create URI to go into header if URI was not passed on cmd line.
-     */
-    protected String[] customCommandLineValidation() {
-        if (URI == null) {
-            URI = "file:" + REFERENCE.getAbsolutePath();
-        }
-        return null;
-    }
-
-    /**
-     * Do the work after command line has been parsed.
-     * RuntimeException may be thrown by this method, and are reported appropriately.
-     *
-     * @return program exit status.
-     */
-    protected int doWork() {
-        if (OUTPUT.exists()) {
-            throw new PicardException(OUTPUT.getAbsolutePath() +
-                    " already exists.  Delete this file and try again, or specify a different output file.");
-        }
-        final SAMSequenceDictionary sequences = makeSequenceDictionary(REFERENCE);
-        final SAMFileHeader samHeader = new SAMFileHeader();
-        samHeader.setSequenceDictionary(sequences);
-        final SAMFileWriter samWriter = new SAMFileWriterFactory().makeSAMWriter(samHeader, false, OUTPUT);
-        samWriter.close();
-        return 0;
-    }
-
-
-    /**
-     * Read all the sequences from the given reference file, and convert into SAMSequenceRecords
-     * @param referenceFile fasta or fasta.gz
-     * @return SAMSequenceRecords containing info from the fasta, plus from cmd-line arguments.
-     */
-    SAMSequenceDictionary makeSequenceDictionary(final File referenceFile) {
-        final ReferenceSequenceFile refSeqFile =
-                ReferenceSequenceFileFactory.getReferenceSequenceFile(referenceFile, TRUNCATE_NAMES_AT_WHITESPACE);
-        ReferenceSequence refSeq;
-        final List<SAMSequenceRecord> ret = new ArrayList<SAMSequenceRecord>();
-        final Set<String> sequenceNames = new HashSet<String>();
-        for (int numSequences = 0; numSequences < NUM_SEQUENCES && (refSeq = refSeqFile.nextSequence()) != null; ++numSequences) {
-            if (sequenceNames.contains(refSeq.getName())) {
-                throw new PicardException("Sequence name appears more than once in reference: " + refSeq.getName());
-            }
-            sequenceNames.add(refSeq.getName());
-            ret.add(makeSequenceRecord(refSeq));
-        }
-        return new SAMSequenceDictionary(ret);
-    }
-
-    /**
-     * Create one SAMSequenceRecord from a single fasta sequence
-     */
-    private SAMSequenceRecord makeSequenceRecord(final ReferenceSequence refSeq) {
-        final SAMSequenceRecord ret = new SAMSequenceRecord(refSeq.getName(), refSeq.length());
-
-        // Compute MD5 of upcased bases
-        final byte[] bases = refSeq.getBases();
-        for (int i = 0; i < bases.length; ++i) {
-                bases[i] = StringUtil.toUpperCase(bases[i]);
-            }
-
-        ret.setAttribute(SAMSequenceRecord.MD5_TAG, md5Hash(bases));
-        if (GENOME_ASSEMBLY != null) {
-            ret.setAttribute(SAMSequenceRecord.ASSEMBLY_TAG, GENOME_ASSEMBLY);
-        }
-        ret.setAttribute(SAMSequenceRecord.URI_TAG, URI);
-        if (SPECIES != null) {
-                ret.setAttribute(SAMSequenceRecord.SPECIES_TAG, SPECIES);
-            }
-        return ret;
-    }
-
-    private String md5Hash(final byte[] bytes) {
-        md5.reset();
-        md5.update(bytes);
-        String s = new BigInteger(1, md5.digest()).toString(16);
-        if (s.length() != 32) {
-            final String zeros = "00000000000000000000000000000000";
-            s = zeros.substring(0, 32 - s.length()) + s;
-        }
-        return s;
-    }
-}
diff --git a/src/java/net/sf/picard/sam/DiskReadEndsMap.java b/src/java/net/sf/picard/sam/DiskReadEndsMap.java
deleted file mode 100644
index 145ed79..0000000
--- a/src/java/net/sf/picard/sam/DiskReadEndsMap.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.sam;
-
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.PicardException;
-import net.sf.samtools.util.CloserUtil;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Disk-based implementation of ReadEndsMap.  A subdirectory of the system tmpdir is created to store
- * files, one for each reference sequence.  The reference sequence that is currently being queried (i.e. the
- * sequence for which remove() has been most recently called) is stored in RAM.  ReadEnds for all other sequences
- * are stored on disk.
- *
- * When put() is called for a sequence that is the current one in RAM, the ReadEnds object is merely put into the
- * in-memory map.  If put() is called for a sequence ID that is not the current RAM one, the ReadEnds object is
- * appended to the file for that sequence, creating the file if necessary.
- *
- * When remove() is called for a sequence that is the current one in RAM, remove() is called on the in-memory map.
- * If remove() is called for a sequence other than the current RAM sequence, then the current RAM sequence is written
- * to disk, the new sequence is read from disk into RAM map, and the file for the new sequence is deleted.
- *
- * If things work properly, and reads are processed in genomic order, records will be written for mates that are in
- * a later sequence.  When the mate is reached in the input SAM file, the file that was written will be deleted.
- * This should result in all temporary files being deleted by the time all the reads are processed.  The temp
- * directory is marked to be deleted on exit so everything should get cleaned up.
- * 
- * @author alecw at broadinstitute.org
- */
-class DiskReadEndsMap implements ReadEndsMap {
-    private final CoordinateSortedPairInfoMap<String, ReadEnds> pairInfoMap;
-    DiskReadEndsMap(int maxOpenFiles) {
-        pairInfoMap = new CoordinateSortedPairInfoMap<String, ReadEnds>(maxOpenFiles, new Codec());
-    }
-
-    public ReadEnds remove(int mateSequenceIndex, String key) {
-        return pairInfoMap.remove(mateSequenceIndex, key);
-    }
-
-    public void put(int mateSequenceIndex, String key, ReadEnds readEnds) {
-        pairInfoMap.put(mateSequenceIndex, key, readEnds);
-    }
-
-    public int size() {
-        return pairInfoMap.size();
-    }
-
-    public int sizeInRam() {
-        return pairInfoMap.sizeInRam();
-    }
-
-    private static class Codec implements CoordinateSortedPairInfoMap.Codec<String, ReadEnds> {
-        private final ReadEndsCodec readEndsCodec = new ReadEndsCodec();
-
-        public void setInputStream(final InputStream is) {
-            readEndsCodec.setInputStream(is);
-        }
-
-        public void setOutputStream(final OutputStream os) {
-            readEndsCodec.setOutputStream(os);
-        }
-
-        public Map.Entry<String, ReadEnds> decode() {
-            try {
-                final String key = readEndsCodec.getInputStream().readUTF();
-                final ReadEnds record = readEndsCodec.decode();
-                return new AbstractMap.SimpleEntry<java.lang.String,net.sf.picard.sam.ReadEnds>(key, record);
-            } catch (IOException e) {
-                throw new PicardException("Error loading ReadEndsMap from disk", e);
-            }
-        }
-
-        public void encode(final String key, final ReadEnds readEnds) {
-            try {
-                readEndsCodec.getOutputStream().writeUTF(key);
-                readEndsCodec.encode(readEnds);
-            } catch (IOException e) {
-                throw new PicardException("Error spilling ReadEndsMap to disk.", e);
-            }
-        }
-    }
-    
-}
diff --git a/src/java/net/sf/picard/sam/DownsampleSam.java b/src/java/net/sf/picard/sam/DownsampleSam.java
deleted file mode 100644
index 553e585..0000000
--- a/src/java/net/sf/picard/sam/DownsampleSam.java
+++ /dev/null
@@ -1,93 +0,0 @@
-package net.sf.picard.sam;
-
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.StandardOptionDefinitions;
-import net.sf.picard.cmdline.Usage;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.util.Log;
-import net.sf.picard.util.ProgressLogger;
-import net.sf.samtools.SAMFileReader;
-import net.sf.samtools.SAMFileWriter;
-import net.sf.samtools.SAMFileWriterFactory;
-import net.sf.samtools.SAMRecord;
-
-import java.io.File;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Random;
-
-/**
- * Class to randomly downsample a BAM file while respecting that we should either get rid
- * of both ends of a pair or neither end of the pair!
- */
-public class DownsampleSam extends CommandLineProgram {
-    @Usage public final String USAGE = getStandardUsagePreamble() + " Randomly down-sample a SAM or BAM file to retain " +
-            "a random subset of the reads. Mate-pairs are either both kept or both discarded. Reads marked as not primary " +
-            "alignments are all discarded. Each read is given a probability P of being retained - results with the exact " +
-            "same input in the same order and with the same value for RANDOM_SEED will produce the same results.";
-
-    @Option(shortName=StandardOptionDefinitions.INPUT_SHORT_NAME, doc="The input SAM or BAM file to downsample.")
-    public File INPUT;
-
-    @Option(shortName=StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc="The output, downsampled, SAM or BAM file to write.")
-    public File OUTPUT;
-
-    @Option(shortName="R", doc="Random seed to use if reproducibilty is desired.  " +
-            "Setting to null will cause multiple invocations to produce different results.")
-    public Long RANDOM_SEED = 1L;
-
-    @Option(shortName="P", doc="The probability of keeping any individual read, between 0 and 1.")
-    public double PROBABILITY = 1;
-
-    private final Log log = Log.getInstance(DownsampleSam.class);
-
-    public static void main(final String[] args) {
-        new DownsampleSam().instanceMainWithExit(args);
-    }
-
-    @Override
-    protected int doWork() {
-        IoUtil.assertFileIsReadable(INPUT);
-        IoUtil.assertFileIsWritable(OUTPUT);
-
-        final Random r = RANDOM_SEED == null ? new Random() : new Random(RANDOM_SEED);
-        final SAMFileReader in = new SAMFileReader(INPUT);
-        final SAMFileWriter out = new SAMFileWriterFactory().makeSAMOrBAMWriter(in.getFileHeader(), true, OUTPUT);
-        final Map<String,Boolean> decisions = new HashMap<String,Boolean>();
-
-        long total = 0;
-        long kept  = 0;
-        
-        final ProgressLogger progress = new ProgressLogger(log, (int) 1e7, "Read");
-
-        for (final SAMRecord rec : in) {
-            if (rec.isSecondaryOrSupplementary()) continue;
-            ++total;
-
-            final String key = rec.getReadName();
-            final Boolean previous = decisions.remove(key);
-            final boolean keeper;
-
-            if (previous == null) {
-                keeper = r.nextDouble() <= PROBABILITY;
-                if (rec.getReadPairedFlag()) decisions.put(key, keeper);
-            }
-            else {
-                keeper = previous;
-            }
-
-            if (keeper) {
-                out.addAlignment(rec);
-                ++kept;
-            }
-
-            progress.record(rec);
-        }
-
-        out.close();
-        log.info("Finished! Kept " + kept + " out of " + total + " reads.");
-
-        return 0;
-    }
-}
diff --git a/src/java/net/sf/picard/sam/DuplicationMetrics.java b/src/java/net/sf/picard/sam/DuplicationMetrics.java
deleted file mode 100644
index 280c3f6..0000000
--- a/src/java/net/sf/picard/sam/DuplicationMetrics.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.sam;
-
-import net.sf.picard.metrics.MetricBase;
-import net.sf.picard.util.Histogram;
-
-/**
- * Metrics that are calculated during the process of marking duplicates
- * within a stream of SAMRecords.
- */
-public class DuplicationMetrics extends MetricBase {
-    /** The library on which the duplicate marking was performed. */
-    public String LIBRARY;
-
-    /**
-     * The number of mapped reads examined which did not have a mapped mate pair,
-     * either because the read is unpaired, or the read is paired to an unmapped mate.
-     */
-    public long UNPAIRED_READS_EXAMINED;
-
-    /** The number of mapped read pairs examined. */
-    public long READ_PAIRS_EXAMINED;
-
-    /** The total number of unmapped reads examined. */
-    public long UNMAPPED_READS;
-
-    /** The number of fragments that were marked as duplicates. */
-    public long UNPAIRED_READ_DUPLICATES;
-
-    /** The number of read pairs that were marked as duplicates. */
-    public long READ_PAIR_DUPLICATES;
-
-    /**
-     * The number of read pairs duplicates that were caused by optical duplication.
-     * Value is always < READ_PAIR_DUPLICATES, which counts all duplicates regardless of source.
-     */
-    public long READ_PAIR_OPTICAL_DUPLICATES;
-
-    /** The percentage of mapped sequence that is marked as duplicate. */
-    public Double PERCENT_DUPLICATION;
-
-    /** The estimated number of unique molecules in the library based on PE duplication. */
-    public Long ESTIMATED_LIBRARY_SIZE;
-
-    /**
-     * Fills in the ESTIMATED_LIBRARY_SIZE based on the paired read data examined where
-     * possible and the PERCENT_DUPLICATION.
-     */
-    public void calculateDerivedMetrics() {
-        this.ESTIMATED_LIBRARY_SIZE = estimateLibrarySize(this.READ_PAIRS_EXAMINED - this.READ_PAIR_OPTICAL_DUPLICATES,
-                                                          this.READ_PAIRS_EXAMINED - this.READ_PAIR_DUPLICATES);
-
-        PERCENT_DUPLICATION = (UNPAIRED_READ_DUPLICATES + READ_PAIR_DUPLICATES *2) /(double) (UNPAIRED_READS_EXAMINED + READ_PAIRS_EXAMINED *2);
-    }
-
-    /**
-     * Estimates the size of a library based on the number of paired end molecules observed
-     * and the number of unique pairs ovserved.
-     *
-     * Based on the Lander-Waterman equation that states:
-     *     C/X = 1 - exp( -N/X )
-     * where
-     *     X = number of distinct molecules in library
-     *     N = number of read pairs
-     *     C = number of distinct fragments observed in read pairs
-     */
-    public static Long estimateLibrarySize(final long readPairs, final long uniqueReadPairs) {
-        final long readPairDuplicates = readPairs - uniqueReadPairs;
-
-        if (readPairs > 0 && readPairDuplicates > 0) {
-            long n = readPairs;
-            long c = uniqueReadPairs;
-
-            double m = 1.0, M = 100.0;
-
-            if (c >= n || f(m*c, c, n) < 0) {
-                throw new IllegalStateException("Invalid values for pairs and unique pairs: "
-                        + n + ", " + c);
-
-            }
-
-            while( f(M*c, c, n) >= 0 ) M *= 10.0;
-
-            for (int i=0; i<40; i++ ) {
-                double r = (m+M)/2.0;
-                double u = f( r * c, c, n );
-                if ( u == 0 ) break;
-                else if ( u > 0 ) m = r;
-                else if ( u < 0 ) M = r;
-            }
-
-            return (long) (c * (m+M)/2.0);
-        }
-        else {
-            return null;
-        }
-    }
-
-    /** Method that is used in the computation of estimated library size. */
-    private static double f(double x, double c, double n) {
-        return c/x - 1 + Math.exp(-n/x);
-    }
-
-    /**
-     * Estimates the ROI (return on investment) that one would see if a library was sequenced to
-     * x higher coverage than the observed coverage.
-     *
-     * @param estimatedLibrarySize the estimated number of molecules in the library
-     * @param x the multiple of sequencing to be simulated (i.e. how many X sequencing)
-     * @param pairs the number of pairs observed in the actual sequencing
-     * @param uniquePairs the number of unique pairs observed in the actual sequencing
-     * @return a number z <= x that estimates if you had pairs*x as your sequencing then you
-     *         would observe uniquePairs*z unique pairs.
-     */
-    public static double estimateRoi(long estimatedLibrarySize, double x, long pairs, long uniquePairs) {
-        return estimatedLibrarySize * ( 1 - Math.exp(-(x*pairs)/estimatedLibrarySize) ) / uniquePairs;
-    }
-
-    /**
-     * Calculates a histogram using the estimateRoi method to estimate the effective yield
-     * doing x sequencing for x=1..10.
-     */
-    public Histogram<Double> calculateRoiHistogram() {
-        if (ESTIMATED_LIBRARY_SIZE == null) {
-            try {
-                calculateDerivedMetrics();
-                if (ESTIMATED_LIBRARY_SIZE == null) return null;
-            }
-            catch (IllegalStateException ise) { return null; }
-        }
-
-        long uniquePairs = READ_PAIRS_EXAMINED - READ_PAIR_DUPLICATES;
-        Histogram<Double> histo = new Histogram<Double>();
-
-        for (double x=1; x<=100; x+=1) {
-            histo.increment(x, estimateRoi(ESTIMATED_LIBRARY_SIZE, x, READ_PAIRS_EXAMINED, uniquePairs));
-        }
-
-        return histo;
-    }
-
-    // Main method used for debugging the derived metrics
-    // Usage = DuplicationMetrics READ_PAIRS READ_PAIR_DUPLICATES
-    public static void main(String[] args) {
-        DuplicationMetrics m = new DuplicationMetrics();
-        m.READ_PAIRS_EXAMINED  = Integer.parseInt(args[0]);
-        m.READ_PAIR_DUPLICATES = Integer.parseInt(args[1]);
-        m.calculateDerivedMetrics();
-        System.out.println("Percent Duplication: " + m.PERCENT_DUPLICATION);
-        System.out.println("Est. Library Size  : " + m.ESTIMATED_LIBRARY_SIZE);
-        System.out.println();
-
-        System.out.println("X Seq\tX Unique");
-        for (Histogram<Double>.Bin bin : m.calculateRoiHistogram().values()) {
-            System.out.println(bin.getId() + "\t" + bin.getValue());
-        }
-
-//        DuplicationMetrics m = new DuplicationMetrics();
-//        m.READ_PAIRS_EXAMINED  = Long.parseLong(args[0]);
-//        m.READ_PAIR_DUPLICATES = Long.parseLong(args[1]);
-//        final long UNIQUE_READ_PAIRS = m.READ_PAIRS_EXAMINED - m.READ_PAIR_DUPLICATES;
-//        final double xCoverage = Double.parseDouble(args[2]);
-//        final double uniqueXCoverage = xCoverage * ((double) UNIQUE_READ_PAIRS / (double) m.READ_PAIRS_EXAMINED);
-//        final double oneOverCoverage = 1 / xCoverage;
-//
-//        m.calculateDerivedMetrics();
-//        System.out.println("Percent Duplication: " + m.PERCENT_DUPLICATION);
-//        System.out.println("Est. Library Size  : " + m.ESTIMATED_LIBRARY_SIZE);
-//        System.out.println();
-//
-//
-//        System.out.println("Coverage\tUnique Coverage\tDuplication");
-//        for (double d = oneOverCoverage; (int) (d*xCoverage)<=50; d+=oneOverCoverage) {
-//            double coverage = d * xCoverage;
-//            double uniqueCoverage = uniqueXCoverage * m.estimateRoi(m.ESTIMATED_LIBRARY_SIZE, d, m.READ_PAIRS_EXAMINED, UNIQUE_READ_PAIRS);
-//            double duplication = (coverage - uniqueCoverage) / coverage;
-//            System.out.println(coverage + "\t" + uniqueCoverage + "\t" + duplication);
-//        }
-    }
-}
diff --git a/src/java/net/sf/picard/sam/EarliestFragmentPrimaryAlignmentSelectionStrategy.java b/src/java/net/sf/picard/sam/EarliestFragmentPrimaryAlignmentSelectionStrategy.java
deleted file mode 100644
index ce7f674..0000000
--- a/src/java/net/sf/picard/sam/EarliestFragmentPrimaryAlignmentSelectionStrategy.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2012 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.sam;
-
-import net.sf.samtools.AlignmentBlock;
-import net.sf.samtools.SAMRecord;
-import net.sf.samtools.util.CoordMath;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Random;
-
-/**
- * When it is necessary to pick a primary alignment from a group of alignments for a read, pick the one that maps
- * the earliest base in the read. This implementation only works for fragments, not for pairs.
- * If there are multiple alignments that all start mapping at the same offest in the read, pick the one with the best
- * MAPQ.  If there are multiple alignments that have the earliest mapping and that have the same MAPQ, pick one randomly.
- */
-public class EarliestFragmentPrimaryAlignmentSelectionStrategy implements PrimaryAlignmentSelectionStrategy {
-    // Give random number generator a seed so results are repeatable.  Used to pick a primary alignment from
-    // multiple alignments with equal mapping quality.
-    private final Random random = new Random(1);
-
-    public void pickPrimaryAlignment(final HitsForInsert hitsForInsert) {
-
-        if (hitsForInsert.numHits() == 0) throw new IllegalArgumentException("No alignments to pick from");
-
-        // Gather the earliest alignment(s) with best MAPQ
-        final List<Integer> earliestAlignments = new ArrayList<Integer>();
-        int earliestMappedBase = Integer.MAX_VALUE;
-        int bestMapQ = -1;
-        for (int i = 0; i < hitsForInsert.numHits(); ++i) {
-            final SAMRecord rec = hitsForInsert.getFragment(i);
-            if (rec.getReadUnmappedFlag()) continue;
-            final int thisFirstMappedBase = getIndexOfFirstAlignedBase(rec);
-            final int thisMapQ = rec.getMappingQuality();
-            if (thisFirstMappedBase < earliestMappedBase ||
-                    (thisFirstMappedBase == earliestMappedBase && thisMapQ > bestMapQ)) {
-                earliestAlignments.clear();
-                earliestAlignments.add(i);
-                earliestMappedBase = thisFirstMappedBase;
-                bestMapQ = thisMapQ;
-            } else if (thisFirstMappedBase == earliestMappedBase && thisMapQ == bestMapQ) {
-                earliestAlignments.add(i);
-            } // else it is not the earliest or the best so skip it.
-        }
-
-
-        if (earliestAlignments.size() == 1) {
-            // If only one best, pick it.
-            hitsForInsert.setPrimaryAlignment(earliestAlignments.get(0));
-        } else {
-            // Arbitrarily select one of the best
-            hitsForInsert.setPrimaryAlignment(earliestAlignments.get(random.nextInt(earliestAlignments.size())));
-        }
-    }
-
-    /**
-     * Returns 1-based index of first base in read that corresponds to M in CIGAR string.
-     * Note that first is relative to 5' end, so that for reverse-strand alignment, the index of
-     * the last base aligned is computed relative to the end of the read.
-     */
-    int getIndexOfFirstAlignedBase(final SAMRecord rec) {
-        final List<AlignmentBlock> alignmentBlocks = rec.getAlignmentBlocks();
-        if (rec.getReadNegativeStrandFlag()) {
-            final AlignmentBlock alignmentBlock = alignmentBlocks.get(alignmentBlocks.size() - 1);
-            return rec.getReadLength() - CoordMath.getEnd(alignmentBlock.getReadStart(), alignmentBlock.getLength()) + 1;
-        } else {
-            return alignmentBlocks.get(0).getReadStart();
-        }
-    }
-}
diff --git a/src/java/net/sf/picard/sam/EstimateLibraryComplexity.java b/src/java/net/sf/picard/sam/EstimateLibraryComplexity.java
deleted file mode 100644
index 79c639d..0000000
--- a/src/java/net/sf/picard/sam/EstimateLibraryComplexity.java
+++ /dev/null
@@ -1,487 +0,0 @@
-package net.sf.picard.sam;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.StandardOptionDefinitions;
-import net.sf.picard.cmdline.Usage;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.metrics.MetricsFile;
-import net.sf.picard.util.Histogram;
-import net.sf.picard.util.Log;
-import net.sf.picard.util.PeekableIterator;
-import net.sf.picard.util.ProgressLogger;
-import net.sf.samtools.SAMFileReader;
-import net.sf.samtools.SAMReadGroupRecord;
-import net.sf.samtools.SAMRecord;
-import net.sf.samtools.util.SequenceUtil;
-import net.sf.samtools.util.SortingCollection;
-import net.sf.samtools.util.StringUtil;
-
-import java.io.*;
-import java.util.*;
-
-import static java.lang.Math.log;
-import static java.lang.Math.pow;
-
-/**
- * <p>Attempts to estimate library complexity from sequence alone. Does so by sorting all reads
- * by the first N bases (5 by default) of each read and then comparing reads with the first
- * N bases identical to each other for duplicates.  Reads are considered to be duplicates if
- * they match each other with no gaps and an overall mismatch rate less than or equal to
- * MAX_DIFF_RATE (0.03 by default).</p>
- *
- * <p>Reads of poor quality are filtered out so as to provide a more accurate estimate. The filtering
- * removes reads with any no-calls in the first N bases or with a mean base quality lower than
- * MIN_MEAN_QUALITY across either the first or second read.</p>
- *
- * <p>The algorithm attempts to detect optical duplicates separately from PCR duplicates and excludes
- * these in the calculation of library size. Also, since there is no alignment to screen out technical
- * reads one further filter is applied on the data.  After examining all reads a histogram is built of
- * [#reads in duplicate set -> #of duplicate sets]; all bins that contain exactly one duplicate set are
- * then removed from the histogram as outliers before library size is estimated.</p>
- *
- * @author Tim Fennell
- */
-public class EstimateLibraryComplexity extends AbstractDuplicateFindingAlgorithm {
-    @Usage public final String USAGE =
-            "Attempts to estimate library complexity from sequence of read pairs alone. Does so by sorting all reads " +
-            "by the first N bases (5 by default) of each read and then comparing reads with the first " +
-            "N bases identical to each other for duplicates.  Reads are considered to be duplicates if " +
-            "they match each other with no gaps and an overall mismatch rate less than or equal to " +
-            "MAX_DIFF_RATE (0.03 by default).\n\n" +
-            "Reads of poor quality are filtered out so as to provide a more accurate estimate. The filtering " +
-            "removes reads with any no-calls in the first N bases or with a mean base quality lower than " +
-            "MIN_MEAN_QUALITY across either the first or second read.\n\n" +
-            "Unpaired reads are ignored in this computation.\n\n" +
-            "The algorithm attempts to detect optical duplicates separately from PCR duplicates and excludes " +
-            "these in the calculation of library size. Also, since there is no alignment to screen out technical " +
-            "reads one further filter is applied on the data.  After examining all reads a histogram is built of " +
-            "[#reads in duplicate set -> #of duplicate sets]; all bins that contain exactly one duplicate set are " +
-            "then removed from the histogram as outliers before library size is estimated.";
-
-    @Option(shortName= StandardOptionDefinitions.INPUT_SHORT_NAME, doc="One or more files to combine and " +
-            "estimate library complexity from. Reads can be mapped or unmapped.")
-    public List<File> INPUT;
-
-    @Option(shortName=StandardOptionDefinitions.OUTPUT_SHORT_NAME,
-            doc="Output file to writes per-library metrics to.")
-    public File OUTPUT;
-
-    @Option(doc="The minimum number of bases at the starts of reads that must be identical for reads to " +
-            "be grouped together for duplicate detection.  In effect total_reads / 4^max_id_bases reads will " +
-            "be compared at a time, so lower numbers will produce more accurate results but consume " +
-            "exponentially more memory and CPU.")
-    public int MIN_IDENTICAL_BASES = 5;
-
-    @Option(doc="The maximum rate of differences between two reads to call them identical.")
-    public double MAX_DIFF_RATE = 0.03;
-
-    @Option(doc="The minimum mean quality of the bases in a read pair for the read to be analyzed. Reads with " +
-            "lower average quality are filtered out and not considered in any calculations.")
-    public int MIN_MEAN_QUALITY = 20;
-    
-    @Option(doc="Do not process self-similar groups that are this many times over the mean expected group size. " +
-            "I.e. if the input contains 10m read pairs and MIN_IDENTICAL_BASES is set to 5, then the mean expected " +
-            "group size would be approximately 10 reads.")
-    public int MAX_GROUP_RATIO = 500;
-    
-    private final Log log = Log.getInstance(EstimateLibraryComplexity.class);
-
-    /**
-     * Little class to hold the sequence of a pair of reads and tile location information.
-     */
-    static class PairedReadSequence implements PhysicalLocation {
-        static int size_in_bytes = 2 + 1 + 4 + 1 + 300; // rough guess at memory footprint
-        short readGroup = -1;
-        short tile = -1;
-        short x = -1, y = -1;
-        boolean qualityOk = true;
-        byte[] read1;
-        byte[] read2;
-
-        public short getReadGroup() { return this.readGroup; }
-        public void setReadGroup(final short readGroup) { this.readGroup = readGroup; }
-
-        public short getTile() { return this.tile; }
-        public void setTile(final short tile) { this.tile = tile; }
-
-        public short getX() { return this.x; }
-        public void setX(final short x) { this.x = x; }
-
-        public short getY() { return this.y; }
-        public void setY(final short y) { this.y = y; }
-    }
-
-    /**
-     * Codec class for writing and read PairedReadSequence objects.
-     */
-    static class PairedReadCodec implements SortingCollection.Codec<PairedReadSequence> {
-        private DataOutputStream out;
-        private DataInputStream in;
-
-        public void setOutputStream(final OutputStream out) {
-            this.out = new DataOutputStream(out);
-        }
-
-        public void setInputStream(final InputStream in) {
-            this.in= new DataInputStream(in);
-        }
-
-        public void encode(final PairedReadSequence val) {
-            try {
-                this.out.writeShort(val.readGroup);
-                this.out.writeShort(val.tile);
-                this.out.writeShort(val.x);
-                this.out.writeShort(val.y);
-                this.out.writeInt(val.read1.length);
-                this.out.write(val.read1);
-                this.out.writeInt(val.read2.length);
-                this.out.write(val.read2);
-            }
-            catch (IOException ioe) {
-                throw new PicardException("Error write out read pair.", ioe);
-            }
-        }
-
-        public PairedReadSequence decode() {
-            try {
-                final PairedReadSequence val = new PairedReadSequence();
-                try {
-                    val.readGroup = this.in.readShort();
-                }
-                catch (EOFException eof) {
-                    return null;
-                }
-
-                val.tile = this.in.readShort();
-                val.x = this.in.readShort();
-                val.y = this.in.readShort();
-
-                int length = this.in.readInt();
-                val.read1  = new byte[length];
-                if (this.in.read(val.read1) != length) {
-                    throw new PicardException("Could not read " + length + " bytes from temporary file.");
-                }
-
-                length = this.in.readInt();
-                val.read2  = new byte[length];
-                if (this.in.read(val.read2) != length) {
-                    throw new PicardException("Could not read " + length + " bytes from temporary file.");
-                }
-
-                return val;
-            }
-            catch (IOException ioe) {
-                throw new PicardException("Exception reading read pair.", ioe);
-            }
-        }
-
-        @Override
-        public SortingCollection.Codec<PairedReadSequence> clone() { return new PairedReadCodec(); }
-    }
-
-    /**
-     * Comparator that orders read pairs on the first N bases of both reads.
-     */
-    class PairedReadComparator implements Comparator<PairedReadSequence> {
-        final int BASES = EstimateLibraryComplexity.this.MIN_IDENTICAL_BASES;
-
-        public int compare(final PairedReadSequence lhs, final PairedReadSequence rhs) {
-            // First compare the first N bases of the first read
-            for (int i=0; i<BASES; ++i) {
-                final int retval = lhs.read1[i] - rhs.read1[i];
-                if (retval != 0) return retval;
-            }
-
-            // Then compare the first N bases of the second read
-            for (int i=0; i<BASES; ++i) {
-                final int retval = lhs.read2[i] - rhs.read2[i];
-                if (retval != 0) return retval;
-            }
-
-            return System.identityHashCode(lhs) - System.identityHashCode(rhs);
-        }
-    }
-
-    /** Stock main method. */
-    public static void main(final String[] args) {
-        new EstimateLibraryComplexity().instanceMainWithExit(args);
-    }
-
-    /**
-     * Method that does most of the work.  Reads through the input BAM file and extracts the
-     * read sequences of each read pair and sorts them via a SortingCollection.  Then traverses
-     * the sorted reads and looks at small groups at a time to find duplicates.
-     */
-    @Override protected int doWork() {
-        for (final File f : INPUT) IoUtil.assertFileIsReadable(f);
-
-        final int maxInMemory = (int) (Runtime.getRuntime().maxMemory() / PairedReadSequence.size_in_bytes) / 2;
-        log.info("Will store " + maxInMemory + " read pairs in memory before sorting.");
-
-        final List<SAMReadGroupRecord> readGroups = new ArrayList<SAMReadGroupRecord>();
-        int recordsRead = 0;
-        final SortingCollection<PairedReadSequence> sorter = SortingCollection.newInstance(PairedReadSequence.class,
-                                                                                           new PairedReadCodec(),
-                                                                                           new PairedReadComparator(),
-                                                                                           maxInMemory,
-                                                                                           TMP_DIR);
-
-        // Loop through the input files and pick out the read sequences etc.
-        final ProgressLogger progress = new ProgressLogger(log, (int) 1e6, "Read");
-        for (final File f : INPUT) {
-            final Map<String,PairedReadSequence> pendingByName = new HashMap<String, PairedReadSequence>();
-            final SAMFileReader in = new SAMFileReader(f);
-            readGroups.addAll(in.getFileHeader().getReadGroups());
-
-            for (final SAMRecord rec : in) {
-                if (!rec.getReadPairedFlag()) continue;
-                if (!rec.getFirstOfPairFlag() && !rec.getSecondOfPairFlag()) {
-                    continue;
-                }
-
-                PairedReadSequence prs = pendingByName.remove(rec.getReadName());
-                if (prs == null) {
-                    // Make a new paired read object and add RG and physical location information to it
-                    prs = new PairedReadSequence();
-                    if (addLocationInformation(rec.getReadName(), prs)) {
-                        final SAMReadGroupRecord rg = rec.getReadGroup();
-                        if (rg != null) prs.setReadGroup((short) readGroups.indexOf(rg));
-                    }
-
-                    pendingByName.put(rec.getReadName(), prs);
-                }
-
-                // Read passes quality check if both ends meet the mean quality criteria
-                final boolean passesQualityCheck = passesQualityCheck(rec.getReadBases(),
-                                                                      rec.getBaseQualities(),
-                                                                      MIN_IDENTICAL_BASES,
-                                                                      MIN_MEAN_QUALITY);
-                prs.qualityOk = prs.qualityOk && passesQualityCheck;
-
-                // Get the bases and restore them to their original orientation if necessary
-                final byte[] bases = rec.getReadBases();
-                if (rec.getReadNegativeStrandFlag()) SequenceUtil.reverseComplement(bases);
-
-                if (rec.getFirstOfPairFlag()) {
-                    prs.read1 = bases;
-                }
-                else {
-                    prs.read2 = bases;
-                }
-
-                if (prs.read1 != null && prs.read2 != null && prs.qualityOk) {
-                    sorter.add(prs);
-                }
-
-                progress.record(rec);
-            }
-        }
-
-        log.info("Finished reading - moving on to scanning for duplicates.");
-
-        // Now go through the sorted reads and attempt to find duplicates
-        final PeekableIterator<PairedReadSequence> iterator = new PeekableIterator<PairedReadSequence>(sorter.iterator());
-
-        final Map<String, Histogram<Integer>> duplicationHistosByLibrary = new HashMap<String,Histogram<Integer>>();
-        final Map<String,Histogram<Integer>> opticalHistosByLibrary = new HashMap<String,Histogram<Integer>>();
-
-        int groupsProcessed = 0;
-        long lastLogTime = System.currentTimeMillis();
-        final int meanGroupSize = Math.max(1, (recordsRead/2) / (int) pow(4, MIN_IDENTICAL_BASES*2));
-
-        while (iterator.hasNext()) {
-            // Get the next group and split it apart by library
-            final List<PairedReadSequence> group = getNextGroup(iterator);
-            
-            if (group.size() > meanGroupSize * MAX_GROUP_RATIO) {
-                final PairedReadSequence prs = group.get(0);
-                log.warn("Omitting group with over " + MAX_GROUP_RATIO + " times the expected mean number of read pairs. " +
-                                 "Mean=" + meanGroupSize + ", Actual=" + group.size() + ". Prefixes: " +
-                                 StringUtil.bytesToString(prs.read1, 0, MIN_IDENTICAL_BASES) +
-                                 " / " +
-                                 StringUtil.bytesToString(prs.read1, 0, MIN_IDENTICAL_BASES));
-            }
-            else {
-                final Map<String,List<PairedReadSequence>> sequencesByLibrary = splitByLibrary(group, readGroups);
-
-                // Now process the reads by library
-                for (final Map.Entry<String,List<PairedReadSequence>> entry : sequencesByLibrary.entrySet()) {
-                    final String library = entry.getKey();
-                    final List<PairedReadSequence> seqs = entry.getValue();
-
-                    Histogram<Integer> duplicationHisto = duplicationHistosByLibrary.get(library);
-                    Histogram<Integer> opticalHisto     = opticalHistosByLibrary.get(library);
-                    if (duplicationHisto == null) {
-                        duplicationHisto = new Histogram<Integer>("duplication_group_count", library);
-                        opticalHisto     = new Histogram<Integer>("duplication_group_count", "optical_duplicates");
-                        duplicationHistosByLibrary.put(library, duplicationHisto);
-                        opticalHistosByLibrary.put(library, opticalHisto);
-                    }
-
-                    // Figure out if any reads within this group are duplicates of one another
-                    for (int i=0; i<seqs.size(); ++i) {
-                        final PairedReadSequence lhs = seqs.get(i);
-                        if (lhs == null) continue;
-                        final List<PairedReadSequence> dupes = new ArrayList<PairedReadSequence>();
-
-                        for (int j=i+1; j<seqs.size(); ++j) {
-                            final PairedReadSequence rhs = seqs.get(j);
-                            if (rhs == null) continue;
-
-                            if (matches(lhs, rhs, MAX_DIFF_RATE)) {
-                                dupes.add(rhs);
-                                seqs.set(j, null);
-                            }
-                        }
-
-                        if (dupes.size() > 0) {
-                            dupes.add(lhs);
-                            final int duplicateCount = dupes.size();
-                            duplicationHisto.increment(duplicateCount);
-
-                            final boolean[] flags = findOpticalDuplicates(dupes, OPTICAL_DUPLICATE_PIXEL_DISTANCE);
-                            for (final boolean b : flags) {
-                                if (b) opticalHisto.increment(duplicateCount);
-                            }
-                        }
-                        else {
-                            duplicationHisto.increment(1);
-                        }
-                    }
-                }
-
-                ++groupsProcessed;
-                if (lastLogTime < System.currentTimeMillis() - 60000) {
-                    log.info("Processed " + groupsProcessed + " groups.");
-                    lastLogTime = System.currentTimeMillis();
-                }
-            }
-        }
-
-        iterator.close();
-        sorter.cleanup();
-
-        final MetricsFile<DuplicationMetrics,Integer> file = getMetricsFile();
-        for (final String library : duplicationHistosByLibrary.keySet()) {
-            final Histogram<Integer> duplicationHisto = duplicationHistosByLibrary.get(library);
-            final Histogram<Integer> opticalHisto     = opticalHistosByLibrary.get(library);
-            final DuplicationMetrics metrics = new DuplicationMetrics();
-            metrics.LIBRARY = library;
-
-            // Filter out any bins that have only a single entry in them and calcu
-            for (final Integer bin : duplicationHisto.keySet()) {
-                final double duplicateGroups   = duplicationHisto.get(bin).getValue();
-                final double opticalDuplicates = opticalHisto.get(bin) == null ? 0 : opticalHisto.get(bin).getValue();
-
-                if (duplicateGroups > 1) {
-                    metrics.READ_PAIRS_EXAMINED          += (bin * duplicateGroups);
-                    metrics.READ_PAIR_DUPLICATES         += ((bin-1) * duplicateGroups);
-                    metrics.READ_PAIR_OPTICAL_DUPLICATES += opticalDuplicates;
-                }
-            }
-
-            metrics.calculateDerivedMetrics();
-            file.addMetric(metrics);
-            file.addHistogram(duplicationHisto);
-
-        }
-
-        file.write(OUTPUT);
-
-        return 0;
-    }
-
-    /**
-     * Checks to see if two reads pairs have sequence that are the same, give or take a few
-     * errors/diffs as dictated by the maxDiffRate.
-     */
-    private boolean matches(final PairedReadSequence lhs, final PairedReadSequence rhs, final double maxDiffRate) {
-        final int read1Length = Math.min(lhs.read1.length, rhs.read1.length);
-        final int read2Length = Math.min(lhs.read2.length, rhs.read2.length);
-        final int maxErrors = (int) Math.floor((read1Length + read2Length) * maxDiffRate);
-        int errors = 0;
-
-        // The loop can start from MIN_IDENTICAL_BASES because we've already confirmed that
-        // at least those first few bases are identical when sorting.
-        for (int i=MIN_IDENTICAL_BASES; i<read1Length; ++i) {
-            if (lhs.read1[i] != rhs.read1[i]) {
-                if (++errors > maxErrors) return false;
-            }
-        }
-
-        for (int i=MIN_IDENTICAL_BASES; i<read2Length; ++i) {
-            if (lhs.read2[i] != rhs.read2[i]) {
-                if (++errors > maxErrors) return false;
-            }
-        }
-
-        return true;
-    }
-
-    /**
-     * Pulls out of the iterator the next group of reads that can be compared to each other to
-     * identify duplicates.
-     */
-    List<PairedReadSequence> getNextGroup(final PeekableIterator<PairedReadSequence> iterator) {
-        final List<PairedReadSequence> group = new ArrayList<PairedReadSequence>();
-        final PairedReadSequence first = iterator.next();
-        group.add(first);
-
-        outer: while(iterator.hasNext()) {
-            final PairedReadSequence next = iterator.peek();
-            for (int i=0; i<MIN_IDENTICAL_BASES; ++i) {
-                if (first.read1[i] != next.read1[i] || first.read2[i] != next.read2[i]) break outer;
-            }
-
-            group.add(iterator.next());
-
-        }
-
-        return group;
-    }
-
-    /**
-     * Takes a list of PairedReadSequence objects and splits them into lists by library.
-     */
-    Map<String,List<PairedReadSequence>> splitByLibrary(final List<PairedReadSequence> input,
-                                                        final List<SAMReadGroupRecord> rgs) {
-
-        final Map<String,List<PairedReadSequence>> out = new HashMap<String,List<PairedReadSequence>>();
-        for (final PairedReadSequence seq : input) {
-            String library = null;
-            if (seq.getReadGroup() != -1) {
-                library = rgs.get(seq.getReadGroup()).getLibrary();
-                if (library == null) library = "Unknown";
-            }
-            else {
-                library = "Unknown";
-            }
-
-            List<PairedReadSequence> librarySeqs = out.get(library);
-            if (librarySeqs == null) {
-                librarySeqs = new ArrayList<PairedReadSequence>();
-                out.put(library, librarySeqs);
-            }
-            librarySeqs.add(seq);
-        }
-
-        return out;
-    }
-
-    /**
-     * Checks that the average quality over the entire read is >= min, and that the first N bases do
-     * not contain any no-calls.
-     */
-    boolean passesQualityCheck(final byte[] bases, final byte[] quals, final int seedLength, final int minQuality) {
-        if (bases.length < seedLength) return false;
-
-        for (int i=0; i<seedLength; ++i) {
-            if (SequenceUtil.isNoCall(bases[i])) return false;
-        }
-
-        int total = 0;
-        for (final byte b : quals) total += b;
-        return total / quals.length >= minQuality;
-    }
-}
diff --git a/src/java/net/sf/picard/sam/FastqToSam.java b/src/java/net/sf/picard/sam/FastqToSam.java
deleted file mode 100644
index b70d6e7..0000000
--- a/src/java/net/sf/picard/sam/FastqToSam.java
+++ /dev/null
@@ -1,362 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.sam;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.StandardOptionDefinitions;
-import net.sf.picard.cmdline.Usage;
-import net.sf.picard.fastq.FastqReader;
-import net.sf.picard.fastq.FastqRecord;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.util.*;
-import net.sf.samtools.*;
-import net.sf.samtools.SAMFileHeader.SortOrder;
-import net.sf.samtools.util.Iso8601Date;
-import net.sf.samtools.util.StringUtil;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Converts a fastq file to an unaligned BAM/SAM format.
- * See <a href="http://maq.sourceforge.net/fastq.shtml">MAQ FastQ specification</a> for details.
- * Three fastq versions are supported: FastqSanger, FastqSolexa and FastqIllumina.
- * Input files can be in GZip format (end in .gz).
- */
-public class FastqToSam extends CommandLineProgram {
-    private static final Log LOG = Log.getInstance(FastqToSam.class);
-
-    @Usage 
-    public String USAGE = "Extracts read sequences and qualities from the input fastq file and writes them into the output file in unaligned BAM format."
-        + " Input files can be in GZip format (end in .gz).\n" 
-        ;
-
-    @Option(shortName="F1", doc="Input fastq file (optionally gzipped) for single end data, or first read in paired end data.")
-    public File FASTQ;
-
-    @Option(shortName="F2", doc="Input fastq file (optionally gzipped) for the second read of paired end data.", optional=true)
-    public File FASTQ2;
-
-    @Option(shortName="V", doc="A value describing how the quality values are encoded in the fastq.  Either Solexa for pre-pipeline 1.3 " +
-            "style scores (solexa scaling + 66), Illumina for pipeline 1.3 and above (phred scaling + 64) or Standard for phred scaled " +
-            "scores with a character shift of 33.  If this value is not specified, the quality format will be detected automatically.", optional = true)
-    public FastqQualityFormat QUALITY_FORMAT;
-
-    @Option(doc="Output SAM/BAM file. ", shortName=StandardOptionDefinitions.OUTPUT_SHORT_NAME) 
-    public File OUTPUT ;
-
-    @Option(shortName="RG", doc="Read group name")
-    public String READ_GROUP_NAME = "A";
-
-    @Option(shortName="SM", doc="Sample name to insert into the read group header")
-    public String SAMPLE_NAME;
-
-    @Option(shortName="LB", doc="The library name to place into the LB attribute in the read group header", optional=true)
-    public String LIBRARY_NAME;
-
-    @Option(shortName="PU", doc="The platform unit (often run_barcode.lane) to insert into the read group header", optional=true)
-    public String PLATFORM_UNIT;
-
-    @Option(shortName="PL", doc="The platform type (e.g. illumina, solid) to insert into the read group header", optional=true)
-    public String PLATFORM;
-
-    @Option(shortName="CN", doc="The sequencing center from which the data originated", optional=true)
-    public String SEQUENCING_CENTER;
-
-    @Option(shortName = "PI", doc = "Predicted median insert size, to insert into the read group header", optional = true)
-    public Integer PREDICTED_INSERT_SIZE;
-
-    @Option(doc="Comment(s) to include in the merged output file's header.", optional=true, shortName="CO")
-    public List<String> COMMENT = new ArrayList<String>();
-
-    @Option(shortName = "DS", doc = "Inserted into the read group header", optional = true)
-    public String DESCRIPTION;
-
-    @Option(shortName = "DT", doc = "Date the run was produced, to insert into the read group header", optional = true)
-    public Iso8601Date RUN_DATE;
-
-    @Option(shortName="SO", doc="The sort order for the output sam/bam file.")
-    public SortOrder SORT_ORDER = SortOrder.queryname;
-
-    @Option(doc="Minimum quality allowed in the input fastq.  An exception will be thrown if a quality is less than this value.")
-    public int MIN_Q = 0;
-
-    @Option(doc="Maximum quality allowed in the input fastq.  An exception will be thrown if a quality is greater than this value.")
-    public int MAX_Q = SAMUtils.MAX_PHRED_SCORE;
-
-    @Option(doc="If true and this is an unpaired fastq any occurance of '/1' will be removed from the end of a read name.")
-    public Boolean STRIP_UNPAIRED_MATE_NUMBER = false;
-
-
-    @Option(doc="Allow (and ignore) empty lines")
-    public Boolean ALLOW_AND_IGNORE_EMPTY_LINES = false;
-
-    private static final SolexaQualityConverter solexaQualityConverter = SolexaQualityConverter.getSingleton();
-
-    /** Stock main method. */
-    public static void main(final String[] argv) {
-        System.exit(new FastqToSam().instanceMain(argv));
-    }
-
-    /* Simply invokes the right method for unpaired or paired data. */
-    protected int doWork() {
-            final QualityEncodingDetector detector = new QualityEncodingDetector();
-            final FastqReader reader = new FastqReader(FASTQ,ALLOW_AND_IGNORE_EMPTY_LINES);
-            if (FASTQ2 == null) {
-                detector.add(QualityEncodingDetector.DEFAULT_MAX_RECORDS_TO_ITERATE, reader);
-            } else {
-                final FastqReader reader2 = new FastqReader(FASTQ2,ALLOW_AND_IGNORE_EMPTY_LINES);
-                detector.add(QualityEncodingDetector.DEFAULT_MAX_RECORDS_TO_ITERATE, reader, reader2);
-                reader2.close();
-            }
-            reader.close();
-            
-            QUALITY_FORMAT = detector.generateBestGuess(QualityEncodingDetector.FileContext.FASTQ, QUALITY_FORMAT);
-            if (detector.isDeterminationAmbiguous())
-                LOG.warn("Making ambiguous determination about fastq's quality encoding; more than one format possible based on observed qualities.");
-            LOG.info(String.format("Auto-detected quality format as: %s.", QUALITY_FORMAT));
-
-        final int readCount = (FASTQ2 == null) ?  doUnpaired() : doPaired();
-        LOG.info("Processed " + readCount + " fastq reads");
-        return 0;
-    }
-
-    /** Creates a simple SAM file from a single fastq file. */
-    protected int doUnpaired() {
-        IoUtil.assertFileIsReadable(FASTQ);
-        IoUtil.assertFileIsWritable(OUTPUT);
-        
-        final FastqReader freader = new FastqReader(FASTQ,ALLOW_AND_IGNORE_EMPTY_LINES);
-        final SAMFileHeader header = createFileHeader();
-        final SAMFileWriter writer = new SAMFileWriterFactory().makeSAMOrBAMWriter(header, false, OUTPUT);
-
-        int readCount = 0;
-        final ProgressLogger progress = new ProgressLogger(LOG);
-        for ( ; freader.hasNext()  ; readCount++) {
-            final FastqRecord frec = freader.next();
-            final SAMRecord srec = createSamRecord(header, getReadName(frec.getReadHeader(), false) , frec, false) ;
-            srec.setReadPairedFlag(false);
-            writer.addAlignment(srec);
-            progress.record(srec);
-        }
-
-        writer.close();
-        return readCount;
-    }
-
-    /** More complicated method that takes two fastq files and builds pairing information in the SAM. */
-    protected int doPaired() {
-        IoUtil.assertFileIsReadable(FASTQ);
-        IoUtil.assertFileIsReadable(FASTQ2);
-        IoUtil.assertFileIsWritable(OUTPUT);
-        
-        final FastqReader freader1 = new FastqReader(FASTQ,ALLOW_AND_IGNORE_EMPTY_LINES);
-        final FastqReader freader2 = new FastqReader(FASTQ2,ALLOW_AND_IGNORE_EMPTY_LINES);
-        final SAMFileHeader header = createFileHeader() ;
-        final SAMFileWriter writer = (new SAMFileWriterFactory()).makeSAMOrBAMWriter(header, false, OUTPUT);
-
-        int readCount = 0;
-        final ProgressLogger progress = new ProgressLogger(LOG);
-        for ( ; freader1.hasNext() && freader2.hasNext() ; readCount++) {
-            final FastqRecord frec1 = freader1.next();
-            final FastqRecord frec2 = freader2.next();
-
-            final String frec1Name = getReadName(frec1.getReadHeader(), true);
-            final String frec2Name = getReadName(frec2.getReadHeader(), true);
-            final String baseName = getBaseName(frec1Name, frec2Name, freader1, freader2);
-
-            final SAMRecord srec1 = createSamRecord(header, baseName, frec1, true) ;
-            srec1.setFirstOfPairFlag(true);
-            srec1.setSecondOfPairFlag(false);
-            writer.addAlignment(srec1);
-            progress.record(srec1);
-
-            final SAMRecord srec2 = createSamRecord(header, baseName, frec2, true) ;
-            srec2.setFirstOfPairFlag(false);
-            srec2.setSecondOfPairFlag(true);
-            writer.addAlignment(srec2);
-            progress.record(srec2);
-        }
-
-        writer.close();
-
-        if (freader1.hasNext() || freader2.hasNext()) {
-            throw new PicardException("Input paired fastq files must be the same length");
-        }
-
-        return readCount;
-    }
-
-    private SAMRecord createSamRecord(final SAMFileHeader header, final String baseName, final FastqRecord frec, final boolean paired) {
-        final SAMRecord srec = new SAMRecord(header);
-        srec.setReadName(baseName);
-        srec.setReadString(frec.getReadString());
-        srec.setReadUnmappedFlag(true);
-        srec.setAttribute(ReservedTagConstants.READ_GROUP_ID, READ_GROUP_NAME);
-        final byte[] quals = StringUtil.stringToBytes(frec.getBaseQualityString());
-        convertQuality(quals, QUALITY_FORMAT);
-        for (final byte qual : quals) {
-            final int uQual = qual & 0xff;
-            if (uQual < MIN_Q || uQual > MAX_Q) {
-                throw new PicardException("Base quality " + uQual + " is not in the range " + MIN_Q + ".." +
-                MAX_Q + " for read " + frec.getReadHeader());
-            }
-        }
-        srec.setBaseQualities(quals);
-
-        if (paired) {
-            srec.setReadPairedFlag(true);
-            srec.setMateUnmappedFlag(true);
-        }
-        return srec ;
-    }
-
-    /** Creates a simple header with the values provided on the command line. */
-    private SAMFileHeader createFileHeader() {
-        final SAMReadGroupRecord rgroup = new SAMReadGroupRecord(this.READ_GROUP_NAME);
-        rgroup.setSample(this.SAMPLE_NAME);
-        if (this.LIBRARY_NAME != null) rgroup.setLibrary(this.LIBRARY_NAME);
-        if (this.PLATFORM != null) rgroup.setPlatform(this.PLATFORM);
-        if (this.PLATFORM_UNIT != null) rgroup.setPlatformUnit(this.PLATFORM_UNIT);
-        if (this.SEQUENCING_CENTER != null) rgroup.setSequencingCenter(SEQUENCING_CENTER);
-        if (this.PREDICTED_INSERT_SIZE != null) rgroup.setPredictedMedianInsertSize(PREDICTED_INSERT_SIZE);
-        if (this.DESCRIPTION != null) rgroup.setDescription(this.DESCRIPTION);
-        if (this.RUN_DATE != null) rgroup.setRunDate(this.RUN_DATE);
-
-        final SAMFileHeader header = new SAMFileHeader();
-        header.addReadGroup(rgroup);
-
-        for (final String comment : COMMENT) {
-            header.addComment(comment);
-        }
-
-        header.setSortOrder(this.SORT_ORDER);
-        return header ;
-    }
-
-    /** Based on the type of quality scores coming in, converts them to a numeric byte[] in phred scale. */
-    void convertQuality(final byte[] quals, final FastqQualityFormat version) {
-        switch (version)  {
-            case Standard:
-                SAMUtils.fastqToPhred(quals);
-                break ;
-            case Solexa:
-                solexaQualityConverter.convertSolexaQualityCharsToPhredBinary(quals);
-                break ;
-            case Illumina:
-                solexaQualityConverter.convertSolexa_1_3_QualityCharsToPhredBinary(quals);
-                break ;
-            }
-    }
-
-    /** Returns read baseName and asserts correct pair read name format:
-     * <ul>
-     * <li> Paired reads must either have the exact same read names or they must contain at least one "/"
-     * <li> and the First pair read name must end with "/1" and second pair read name ends with "/2"
-     * <li> The baseName (read name part before the /) must be the same for both read names
-     * <li> If the read names are exactly the same but end in "/2" or "/1" then an exception will be thrown 
-     * </ul>
-     */
-    String getBaseName(final String readName1, final String readName2, final FastqReader freader1, final FastqReader freader2) {
-        String [] toks = getReadNameTokens(readName1, 1, freader1);
-        final String baseName1 = toks[0] ;
-        final String num1 = toks[1] ;
-
-        toks = getReadNameTokens(readName2, 2, freader2);
-        final String baseName2 = toks[0] ;
-        final String num2 = toks[1];
-
-        if (!baseName1.equals(baseName2)) {
-            throw new PicardException(String.format("In paired mode, read name 1 (%s) does not match read name 2 (%s)", baseName1,baseName2));
-        }
-
-        final boolean num1Blank = StringUtil.isBlank(num1);
-        final boolean num2Blank = StringUtil.isBlank(num2);
-        if (num1Blank || num2Blank) {
-            if(!num1Blank) throw new PicardException(error(freader1,"Pair 1 number is missing (" +readName1+ "). Both pair numbers must be present or neither."));       //num1 != blank and num2   == blank
-            else if(!num2Blank) throw new PicardException(error(freader2, "Pair 2 number is missing (" +readName2+ "). Both pair numbers must be present or neither.")); //num1 == blank and num =2 != blank 
-        } else {
-            if (!num1.equals("1")) throw new PicardException(error(freader1,"Pair 1 number must be 1 ("+readName1+")"));
-            if (!num2.equals("2")) throw new PicardException(error(freader2,"Pair 2 number must be 2 ("+readName2+")"));
-        }
-
-        return baseName1 ;
-    }
-
-    /** Breaks up read name into baseName and number separated by the last / */
-    private String [] getReadNameTokens(final String readName, final int pairNum, final FastqReader freader) {
-        if(readName.equals("")) throw new PicardException(error(freader,"Pair read name "+pairNum+" cannot be empty: "+readName));
-
-        final int idx = readName.lastIndexOf("/");
-        final String result[] = new String[2];
-
-        if (idx == -1) {
-            result[0] = readName;
-            result[1] = null;
-        } else {
-            result[1] = readName.substring(idx+1, readName.length()); // should be a 1 or 2
-            
-            if(!result[1].equals("1") && !result[1].equals("2")) {    //if not a 1 or 2 then names must be identical
-                result[0] = readName;
-                result[1] = null;
-            }
-            else {
-                result[0] = readName.substring(0,idx); // baseName
-            }
-        }
-
-        return result ;
-    }
-
-    /** Little utility to give error messages corresponding to line numbers in the input files. */
-    private String error(final FastqReader freader, final String str) {
-        return str +" at line "+freader.getLineNumber() +" in file "+freader.getFile().getAbsolutePath();
-    }
-
-    // Read names cannot contain blanks
-    private String getReadName(final String fastqHeader, final boolean paired) {
-        final int idx = fastqHeader.indexOf(" ");
-        String readName = (idx == -1) ? fastqHeader : fastqHeader.substring(0,idx);
-
-        // NOTE: the while loop isn't necessarily the most efficient way to handle this but we don't
-        // expect this to ever happen more than once, just trapping pathological cases
-        while (STRIP_UNPAIRED_MATE_NUMBER && !paired && readName.endsWith("/1")) {
-            // If this is an unpaired run we want to make sure that "/1" isn't tacked on the end of the read name,
-            // as this can cause problems down the road in MergeBamAlignment
-            readName = readName.substring(0, readName.length() - 2);
-        }
-
-        return readName;
-    }
-
-    @Override
-    protected String[] customCommandLineValidation() {
-        if (MIN_Q < 0) return new String[]{"MIN_Q must be >= 0"};
-        if (MAX_Q > SAMUtils.MAX_PHRED_SCORE) return new String[]{"MAX_Q must be <= " + SAMUtils.MAX_PHRED_SCORE};
-        return null;
-    }
-}
diff --git a/src/java/net/sf/picard/sam/FilterSamReads.java b/src/java/net/sf/picard/sam/FilterSamReads.java
deleted file mode 100644
index 046e3c0..0000000
--- a/src/java/net/sf/picard/sam/FilterSamReads.java
+++ /dev/null
@@ -1,233 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-/**
- * $Id: FilterSamReads.java 1950 2014-04-28 21:41:46Z geoffjentry $
- */
-package net.sf.picard.sam;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.StandardOptionDefinitions;
-import net.sf.picard.cmdline.Usage;
-import net.sf.picard.filter.AlignedFilter;
-import net.sf.picard.filter.FilteringIterator;
-import net.sf.picard.filter.ReadNameFilter;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.util.Log;
-import net.sf.picard.util.ProgressLogger;
-import net.sf.samtools.SAMFileHeader;
-import net.sf.samtools.SAMFileReader;
-import net.sf.samtools.SAMFileWriter;
-import net.sf.samtools.SAMFileWriterFactory;
-import net.sf.samtools.SAMRecord;
-import net.sf.samtools.util.IOUtil;
-
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.IOException;
-import java.text.DecimalFormat;
-
-/**
- * From a SAM or BAM file, produce a new SAM or BAM by filtering aligned reads or a list of read
- * names provided in a file (one readname per line)
- * <p/>
- * $Id: FilterSamReads.java 1950 2014-04-28 21:41:46Z geoffjentry $
- */
-public class FilterSamReads extends CommandLineProgram {
-
-    private static final Log log = Log.getInstance(FilterSamReads.class);
-
-    private static enum Filter {
-        includeAligned("OUTPUT SAM/BAM will contain aligned reads only. INPUT SAM/BAM must be in queryname SortOrder. (Note that *both* first and second of paired reads must be aligned to be included in the OUTPUT SAM or BAM)"),
-        excludeAligned("OUTPUT SAM/BAM will contain un-mapped reads only. INPUT SAM/BAM must be in queryname SortOrder. (Note that *both* first and second of pair must be aligned to be excluded from the OUTPUT SAM or BAM)"),
-        includeReadList("OUTPUT SAM/BAM will contain reads that are supplied in the READ_LIST_FILE file"),
-        excludeReadList("OUTPUT bam will contain reads that are *not* supplied in the READ_LIST_FILE file");
-
-        private final String description;
-
-        Filter(final String description) {
-            this.description = description;
-        }
-
-        @Override
-        public String toString() {
-            return this.name() + " [" + description + "]";
-        }
-    }
-
-    @Usage
-    public String USAGE =
-            "Produces a new SAM or BAM file by including or excluding aligned reads " +
-                    "or a list of reads names supplied in the READ_LIST_FILE from the INPUT SAM or BAM file.\n";
-
-    @Option(doc = "The SAM or BAM file that will be filtered.",
-        optional = false,
-        shortName = StandardOptionDefinitions.INPUT_SHORT_NAME)
-    public File INPUT;
-
-    @Option(doc = "Filter.", optional = false)
-    public Filter FILTER = null;
-
-    @Option(doc = "Read List File containing reads that will be included or excluded from the OUTPUT SAM or BAM file.",
-            optional = true,
-            shortName = "RLF")
-    public File READ_LIST_FILE;
-
-    @Option(
-        doc = "SortOrder of the OUTPUT SAM or BAM file, otherwise use the SortOrder of the INPUT file.",
-        optional = true, shortName = "SO")
-    public SAMFileHeader.SortOrder SORT_ORDER;
-
-    @Option(
-        doc = "Create .reads files (for debugging purposes)",
-        optional = true)
-    public boolean WRITE_READS_FILES = true;
-
-    @Option(doc = "SAM or BAM file to write read excluded results to",
-        optional = false, shortName = "O")
-    public File OUTPUT;
-
-    private void filterReads(final FilteringIterator filteringIterator) {
-
-        // get OUTPUT header from INPUT and owerwrite it if necessary
-        final SAMFileReader inputReader = new SAMFileReader(INPUT);
-        final SAMFileHeader.SortOrder inputSortOrder = inputReader.getFileHeader().getSortOrder();
-        final SAMFileHeader outputHeader = inputReader.getFileHeader();
-        if (SORT_ORDER != null) {
-            outputHeader.setSortOrder(SORT_ORDER);
-        }
-        final boolean presorted = inputSortOrder.equals(outputHeader.getSortOrder());
-        log.info("Filtering [presorted=" + presorted + "] " + INPUT.getName() + " -> OUTPUT=" +
-            OUTPUT.getName() + " [sortorder=" + outputHeader.getSortOrder().name() + "]");
-
-        // create OUTPUT file
-        final SAMFileWriter outputWriter = new SAMFileWriterFactory().makeSAMOrBAMWriter(outputHeader, presorted, OUTPUT);
-
-        final ProgressLogger progress = new ProgressLogger(log, (int) 1e6, "Written");
-        
-        while (filteringIterator.hasNext()) {
-            final SAMRecord rec = filteringIterator.next();
-            outputWriter.addAlignment(rec);
-            progress.record(rec);
-        }
-
-        filteringIterator.close();
-        outputWriter.close();
-        inputReader.close();
-        log.info(new DecimalFormat("#,###").format(progress.getCount()) + " SAMRecords written to " + OUTPUT.getName());
-    }
-
-    /**
-     * Write out a file of read names for debugging purposes.
-     *
-     * @param samOrBamFile The SAM or BAM file for which we are going to write out a file of its
-     *                     containing read names
-     */
-    private void writeReadsFile(final File samOrBamFile) throws IOException {
-        final SAMFileReader reader = new SAMFileReader(samOrBamFile);
-        final File readsFile =
-            new File(OUTPUT.getParentFile(), IOUtil.basename(samOrBamFile) + ".reads");
-        IoUtil.assertFileIsWritable(readsFile);
-        final BufferedWriter bw = IoUtil.openFileForBufferedWriting(readsFile, false);
-
-        for (final SAMRecord rec : reader) {
-            bw.write(rec.toString() + "\n");
-        }
-
-        bw.close();
-        reader.close();
-        IoUtil.assertFileIsReadable(readsFile);
-    }
-
-    @Override
-    protected int doWork() {
-
-        try {
-            IoUtil.assertFileIsReadable(INPUT);
-            IoUtil.assertFileIsWritable(OUTPUT);
-            if (WRITE_READS_FILES) writeReadsFile(INPUT);
-
-            switch (FILTER) {
-                case includeAligned:
-                    filterReads(new FilteringIterator(new SAMFileReader(INPUT).iterator(),
-                    new AlignedFilter(true), true));
-                    break;
-                case excludeAligned:
-                    filterReads(new FilteringIterator(new SAMFileReader(INPUT).iterator(),
-                    new AlignedFilter(false), true));
-                    break;
-                case includeReadList:
-                    filterReads(new FilteringIterator(new SAMFileReader(INPUT).iterator(),
-                    new ReadNameFilter(READ_LIST_FILE, true)));
-                    break;
-                case excludeReadList:
-                    filterReads(new FilteringIterator(new SAMFileReader(INPUT).iterator(),
-                    new ReadNameFilter(READ_LIST_FILE, false)));
-                    break;
-                default:
-                    throw new UnsupportedOperationException(FILTER.name() + " has not been implemented!");
-            }
-
-            IoUtil.assertFileIsReadable(OUTPUT);
-            if (WRITE_READS_FILES) writeReadsFile(OUTPUT);
-            return 0;
-
-        } catch (Exception e) {
-            if (OUTPUT.exists() && !OUTPUT.delete()) {
-                log.warn("Failed to delete " + OUTPUT.getAbsolutePath());
-            }
-
-            log.error(e, "Failed to filter " + INPUT.getName());
-            return 1;
-        }
-    }
-
-    @Override
-    protected String[] customCommandLineValidation() {
-        if (INPUT.equals(OUTPUT)) {
-            return new String[]{"INPUT file and OUTPUT file must differ!"};
-        }
-
-        if ((FILTER.equals(Filter.includeReadList) ||
-                FILTER.equals(Filter.excludeReadList)) &&
-                READ_LIST_FILE == null) {
-            return new String[]{"A READ_LIST_FILE must be specified when using the " + FILTER.name() + " option"};
-
-        }
-
-        return super.customCommandLineValidation();
-    }
-
-    /**
-     * Stock main method.
-     *
-     * @param args main arguments
-     */
-    public static void main(final String[] args) {
-        System.exit(new FilterSamReads().instanceMain(args));
-    }
-
-}
\ No newline at end of file
diff --git a/src/java/net/sf/picard/sam/FixMateInformation.java b/src/java/net/sf/picard/sam/FixMateInformation.java
deleted file mode 100644
index e78f193..0000000
--- a/src/java/net/sf/picard/sam/FixMateInformation.java
+++ /dev/null
@@ -1,292 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.sam;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.StandardOptionDefinitions;
-import net.sf.picard.cmdline.Usage;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.util.Log;
-import net.sf.picard.util.PeekableIterator;
-import net.sf.picard.util.ProgressLogger;
-import net.sf.samtools.BAMRecordCodec;
-import net.sf.samtools.BamFileIoUtils;
-import net.sf.samtools.SAMFileHeader;
-import net.sf.samtools.SAMFileHeader.SortOrder;
-import net.sf.samtools.SAMFileReader;
-import net.sf.samtools.SAMFileWriter;
-import net.sf.samtools.SAMFileWriterFactory;
-import net.sf.samtools.SAMRecord;
-import net.sf.samtools.SAMRecordQueryNameComparator;
-import net.sf.samtools.SamPairUtil;
-import net.sf.samtools.util.RuntimeIOException;
-import net.sf.samtools.util.SortingCollection;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-/**
- * Class to fix mate pair information for all reads in a SAM file.  Will run in fairly limited
- * memory unless there are lots of mate pairs that are far apart from each other in the file.
- *
- * @author Tim Fennell
- */
-public class FixMateInformation extends CommandLineProgram {
-    @Usage public final String USAGE = "Ensure that all mate-pair information is in sync between each read " +
-            " and it's mate pair.  If no OUTPUT file is supplied then the output is written to a temporary file " +
-            " and then copied over the INPUT file.  Reads marked with the secondary alignment flag are written " +
-            "to the output file unchanged.";
-
-    @Option(shortName=StandardOptionDefinitions.INPUT_SHORT_NAME, doc="The input file to fix.")
-    public List<File> INPUT;
-
-    @Option(shortName=StandardOptionDefinitions.OUTPUT_SHORT_NAME, optional=true,
-            doc="The output file to write to. If no output file is supplied, the input file is overwritten.")
-    public File OUTPUT;
-
-    @Option(shortName=StandardOptionDefinitions.SORT_ORDER_SHORT_NAME, optional=true,
-    doc="Optional sort order if the OUTPUT file should be sorted differently than the INPUT file.")
-    public SortOrder SORT_ORDER;
-
-    @Option(shortName="MC", optional=true, doc="Adds the mate CIGAR tag (MC) if true, does not if false.")
-    public Boolean ADD_MATE_CIGAR = true;
-
-    private static final Log log = Log.getInstance(FixMateInformation.class);
-
-    protected SAMFileWriter out;
-
-    public static void main(final String[] args) {
-        new FixMateInformation().instanceMainWithExit(args);
-    }
-
-    protected int doWork() {
-        // Open up the input
-        boolean allQueryNameSorted = true;
-        final List<SAMFileReader> readers = new ArrayList<SAMFileReader>();
-        for (final File f : INPUT) {
-            IoUtil.assertFileIsReadable(f);
-            final SAMFileReader reader = new SAMFileReader(f);
-            readers.add(reader);
-            if (reader.getFileHeader().getSortOrder() != SortOrder.queryname) allQueryNameSorted = false;
-        }
-
-        // Decide where to write the fixed file - into the specified output file
-        // or into a temporary file that will overwrite the INPUT file eventually
-        if (OUTPUT != null) OUTPUT = OUTPUT.getAbsoluteFile();
-        final boolean differentOutputSpecified = OUTPUT != null;
-
-        if (differentOutputSpecified) {
-            IoUtil.assertFileIsWritable(OUTPUT);
-        }
-        else if (INPUT.size() != 1) {
-            throw new PicardException("Must specify either an explicit OUTPUT file or a single INPUT file to be overridden.");
-        }
-        else {
-            final File soleInput = INPUT.get(0).getAbsoluteFile();
-            final File dir       = soleInput.getParentFile().getAbsoluteFile();
-            try {
-                IoUtil.assertFileIsWritable(soleInput);
-                IoUtil.assertDirectoryIsWritable(dir);
-                OUTPUT = File.createTempFile(soleInput.getName() + ".being_fixed.", BamFileIoUtils.BAM_FILE_EXTENSION, dir);
-            }
-            catch (IOException ioe) {
-                throw new RuntimeIOException("Could not create tmp file in " + dir.getAbsolutePath());
-            }
-        }
-
-        // Get the input records merged and sorted by query name as needed
-        final PeekableIterator<SAMRecord> iterator;
-        final SAMFileHeader header;
-
-        {
-            // Deal with merging if necessary
-            final Iterator<SAMRecord> tmp;
-            if (INPUT.size() > 1) {
-                final List<SAMFileHeader> headers = new ArrayList<SAMFileHeader>(readers.size());
-                for (final SAMFileReader reader : readers) {
-                    headers.add(reader.getFileHeader());
-                }
-                final SortOrder sortOrder = (allQueryNameSorted? SortOrder.queryname: SortOrder.unsorted);
-                final SamFileHeaderMerger merger = new SamFileHeaderMerger(sortOrder, headers, false);
-                tmp = new MergingSamRecordIterator(merger, readers, false);
-                header = merger.getMergedHeader();
-            }
-            else {
-                tmp = readers.get(0).iterator();
-                header = readers.get(0).getFileHeader();
-            }
-
-            // And now deal with re-sorting if necessary
-            if (allQueryNameSorted) {
-                iterator = new PeekableIterator<SAMRecord>(tmp);
-            }
-            else {
-                log.info("Sorting input into queryname order.");
-                final SortingCollection<SAMRecord> sorter = SortingCollection.newInstance(SAMRecord.class,
-                                                                                          new BAMRecordCodec(header),
-                                                                                          new SAMRecordQueryNameComparator(),
-                                                                                          MAX_RECORDS_IN_RAM,
-                                                                                          TMP_DIR);
-                while (tmp.hasNext()) {
-                    sorter.add(tmp.next());
-
-                }
-
-                iterator = new PeekableIterator<SAMRecord>(sorter.iterator()) {
-                    @Override
-                    public void close() {
-                        super.close();
-                        sorter.cleanup();
-                    }
-                };
-                log.info("Sorting by queryname complete.");
-            }
-
-            // Deal with the various sorting complications
-            final SortOrder outputSortOrder = SORT_ORDER == null ? readers.get(0).getFileHeader().getSortOrder() : SORT_ORDER;
-            log.info("Output will be sorted by " + outputSortOrder);
-            header.setSortOrder(outputSortOrder);
-        }
-
-        if (CREATE_INDEX && header.getSortOrder() != SortOrder.coordinate){
-            throw new PicardException("Can't CREATE_INDEX unless sort order is coordinate");
-        }
-
-        createSamFileWriter(header);
-
-        log.info("Traversing query name sorted records and fixing up mate pair information.");
-        final ProgressLogger progress = new ProgressLogger(log);
-        while (iterator.hasNext()) {
-            final SAMRecord rec1 = iterator.next();
-            if (rec1.isSecondaryOrSupplementary()) {
-                writeAlignment(rec1);
-                progress.record(rec1);
-                continue;
-            }
-            SAMRecord rec2 = null;
-            // Keep peeking at next SAMRecord until one is found that is not marked as secondary alignment,
-            // or until there are no more SAMRecords.
-            while (iterator.hasNext()) {
-                rec2 = iterator.peek();
-                if (rec2.isSecondaryOrSupplementary()) {
-                    iterator.next();
-                    writeAlignment(rec2);
-                    progress.record(rec2);
-                    rec2 = null;
-                } else {
-                    break;
-                }
-            }
-
-            if (rec2 != null && rec1.getReadName().equals(rec2.getReadName())) {
-                iterator.next(); // consume the peeked record
-                SamPairUtil.setMateInfo(rec1, rec2, header, ADD_MATE_CIGAR);
-                writeAlignment(rec1);
-                writeAlignment(rec2);
-                progress.record(rec1, rec2);
-            }
-            else {
-                writeAlignment(rec1);
-                progress.record(rec1);
-            }
-        }
-        iterator.close();
-
-        if (header.getSortOrder() == SortOrder.queryname) {
-            log.info("Closing output file.");
-        }
-        else {
-            log.info("Finished processing reads; re-sorting output file.");
-        }
-        closeWriter();
-
-        // Lastly if we're fixing in place, swap the files
-        if (!differentOutputSpecified) {
-            log.info("Replacing input file with fixed file.");
-
-            final File soleInput = INPUT.get(0).getAbsoluteFile();
-            final File old = new File(soleInput.getParentFile(), soleInput.getName() + ".old");
-            if (!old.exists() && soleInput.renameTo(old)) {
-                if (OUTPUT.renameTo(soleInput)) {
-
-                    if (!old.delete()) {
-                        log.warn("Could not delete old file: " + old.getAbsolutePath());
-                        return 1;
-                    }
-
-                    if (CREATE_INDEX) {
-                        final File newIndex = new File(OUTPUT.getParent(),
-                                                       OUTPUT.getName().substring(0, OUTPUT.getName().length()-4) + ".bai");
-                        final File oldIndex = new File(soleInput.getParent(),
-                                                       soleInput.getName().substring(0, soleInput.getName().length()-4) + ".bai");
-
-                        if (!newIndex.renameTo(oldIndex)) {
-                            log.warn("Could not overwrite index file: " + oldIndex.getAbsolutePath());
-                        }
-                    }
-
-                }
-                else {
-                    log.error("Could not move new file to " + soleInput.getAbsolutePath());
-                    log.error("Input file preserved as: " + old.getAbsolutePath());
-                    log.error("New file preserved as: " + OUTPUT.getAbsolutePath());
-                    return 1;
-                }
-            }
-            else {
-                log.error("Could not move input file out of the way: " + soleInput.getAbsolutePath());
-
-                if (!OUTPUT.delete()) {
-                    log.error("Could not delete temporary file: " + OUTPUT.getAbsolutePath());
-                }
-
-                return 1;
-            }
-
-        }
-
-        return 0;
-    }
-
-    protected void createSamFileWriter(final SAMFileHeader header) {
-        out = new SAMFileWriterFactory().makeSAMOrBAMWriter(header,
-                  header.getSortOrder() == SortOrder.queryname, OUTPUT);
-
-    }
-
-    protected void writeAlignment(final SAMRecord sam) {
-        out.addAlignment(sam);
-    }
-
-    protected void closeWriter() {
-        out.close();
-    }
-
-}
diff --git a/src/java/net/sf/picard/sam/GatherBamFiles.java b/src/java/net/sf/picard/sam/GatherBamFiles.java
deleted file mode 100644
index 1bfdbb6..0000000
--- a/src/java/net/sf/picard/sam/GatherBamFiles.java
+++ /dev/null
@@ -1,97 +0,0 @@
-package net.sf.picard.sam;
-
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.StandardOptionDefinitions;
-import net.sf.picard.cmdline.Usage;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.util.Log;
-import net.sf.samtools.*;
-
-import net.sf.samtools.util.CloserUtil;
-
-import java.io.File;
-import java.util.List;
-
-/**
- * Program to perform a rapid "gather" operation on BAM files after a scatter operations where
- * the same process has been performed on different regions of a BAM file creating many smaller
- * BAM files that now need to be concatenated back together.
- *
- * @author Tim Fennell
- */
-public class GatherBamFiles extends CommandLineProgram {
-    @Usage public final String USAGE = "Concatenates one or more BAM files together as efficiently as possible. Assumes that the " +
-            "list of BAM files provided as INPUT are in the order that they should be concatenated and simply concatenates the bodies " +
-            "of the BAM files while retaining the header from the first file.  Operates via copying of the gzip blocks directly for speed " +
-            "but also supports generation of an MD5 on the output and indexing of the output BAM file. Only support BAM files, does not " +
-            "support SAM files.";
-
-    @Option(shortName=StandardOptionDefinitions.INPUT_SHORT_NAME,
-            doc="One or more BAM files or text files containing lists of BAM files one per line.")
-    public List<File> INPUT;
-
-    @Option(shortName=StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc="The output BAM file to write.")
-    public File OUTPUT;
-
-    private static final Log log = Log.getInstance(GatherBamFiles.class);
-
-    // Stock main method.
-    public static void main(final String[] args) {
-        final GatherBamFiles gatherer = new GatherBamFiles();
-        gatherer.CREATE_INDEX = true;
-        gatherer.instanceMainWithExit(args);
-    }
-
-    @Override
-    protected int doWork() {
-        final List<File> inputs = IoUtil.unrollFiles(INPUT, BamFileIoUtils.BAM_FILE_EXTENSION, ".sam");
-        for (final File f: inputs) IoUtil.assertFileIsReadable(f);
-        IoUtil.assertFileIsWritable(OUTPUT);
-
-        if (determineBlockCopyingStatus(inputs)) {
-            BamFileIoUtils.gatherWithBlockCopying(inputs, OUTPUT, CREATE_INDEX, CREATE_MD5_FILE);
-        }
-        else {
-            gatherNormally(inputs, OUTPUT, CREATE_INDEX, CREATE_MD5_FILE);
-        }
-
-        return 0;
-    }
-
-    private boolean determineBlockCopyingStatus(final List<File> inputs) {
-        boolean useBlockCopying = true;
-        for (final File f : inputs) {
-            if (!BamFileIoUtils.isBamFile(f)) {
-                useBlockCopying = false;
-            }
-        }
-        return useBlockCopying;
-    }
-
-    /**
-     * Simple implementation of a gather operations that uses SAMFileReaders and Writers in order to concatenate
-     * multiple BAM files.
-     */
-    private static void gatherNormally(final List<File> inputs, final File output, final boolean createIndex, final boolean createMd5) {
-        final SAMFileHeader header;
-        {
-            final SAMFileReader tmp = new SAMFileReader(inputs.get(0));
-            header = tmp.getFileHeader();
-            tmp.close();
-        }
-
-        final SAMFileWriter out = new SAMFileWriterFactory().setCreateIndex(createIndex).setCreateMd5File(createMd5).makeSAMOrBAMWriter(header, true, output);
-
-        for (final File f : inputs) {
-            log.info("Gathering " + f.getAbsolutePath());
-            final SAMFileReader in = new SAMFileReader(f);
-            for (final SAMRecord rec : in) out.addAlignment(rec);
-            CloserUtil.close(in);
-        }
-
-        out.close();
-    }
-
-
-}
diff --git a/src/java/net/sf/picard/sam/HitsForInsert.java b/src/java/net/sf/picard/sam/HitsForInsert.java
deleted file mode 100644
index 7491191..0000000
--- a/src/java/net/sf/picard/sam/HitsForInsert.java
+++ /dev/null
@@ -1,283 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.sam;
-
-import net.sf.samtools.SAMRecord;
-import net.sf.samtools.SAMTag;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-
-/**
- * Holds all the hits (alignments) for a read or read pair.  For single-end reads, all the alignments are
- * stored in firstOfPairOrFragment list.  For paired-end, alignments are stored in firstOfPairOrFragment list and
- * secondOfPair list.
- *
- * If there is more than one alignment, the selected PrimaryAlignmentSelectionStrategy is used to decide which
- * alignment should be marked as primary.  The rest are marked as secondary.
- *
- * When AbstractAlignmentMerger emits these reads, for paired end reads it assumes that the ith first end alignment
- * and the ith second end alignment are correlated for the purpose of setting mate information in the SAMRecord.
- * If it is not appropriate for the ends to be linked like that, then the alignments should be staggered in
- * the lists so that there is a null in the other end list for each alignment.  E.g. for the firstOfPair(5),
- * secondOfPair(5) should be null in order not to set the mate info.  In that case the mate info will indicate that
- * the other end is unmapped.
- */
-class HitsForInsert {
-
-    private static final HitIndexComparator comparator = new HitIndexComparator();
-
-    public enum NumPrimaryAlignmentState {
-        NONE, ONE, MORE_THAN_ONE
-    }
-
-
-    // These are package-visible to make life easier for the PrimaryAlignmentSelectionStrategies.
-    final List<SAMRecord> firstOfPairOrFragment = new ArrayList<SAMRecord>();
-    final List<SAMRecord> secondOfPair = new ArrayList<SAMRecord>();
-
-    private final List<SAMRecord> supplementalFirstOfPairOrFragment = new ArrayList<SAMRecord>();
-    private final List<SAMRecord> supplementalSecondOfPair = new ArrayList<SAMRecord>();
-
-    /**
-     * @throws if numHits() == 0
-     */
-    public String getReadName() {
-        return getRepresentativeRead().getReadName();
-    }
-
-    /**
-     * @throws if numHits() == 0
-     */
-    public boolean isPaired() {
-        return getRepresentativeRead().getReadPairedFlag();
-    }
-
-    public SAMRecord getRepresentativeRead() {
-        for (final SAMRecord rec : firstOfPairOrFragment) {
-            if (rec != null) return rec;
-        }
-        for (final SAMRecord rec : secondOfPair) {
-            if (rec != null) return rec;
-        }
-        throw new IllegalStateException("Should not be called if numHits == 0");
-    }
-
-    /**
-     * Note that a single alignment for each end of a read pair is counted as a single hit.
-     */
-    public int numHits() {
-        return Math.max(firstOfPairOrFragment.size(), secondOfPair.size());
-    }
-
-    /** True if either the first or second of pair has supplementary alignments, otherwise false. */
-    public boolean hasSupplementalHits() {
-        return !(this.supplementalFirstOfPairOrFragment.isEmpty() && this.supplementalSecondOfPair.isEmpty());
-    }
-
-    /**
-     * @return Returns the ith hit for the first end, or null if the first end is not aligned.
-     */
-    public SAMRecord getFirstOfPair(final int i) {
-        if (i >= firstOfPairOrFragment.size()) {
-            return null;
-        } else {
-            return firstOfPairOrFragment.get(i);
-        }
-    }
-
-    public void addFirstOfPairOrFragment(final SAMRecord rec) {
-        firstOfPairOrFragment.add(rec);
-    }
-
-    public void addSecondOfPair(final SAMRecord rec) {
-        secondOfPair.add(rec);
-    }
-
-    public void addSupplementalFirstOfPairOrFragment(final SAMRecord rec) {
-        supplementalFirstOfPairOrFragment.add(rec);
-    }
-
-    public void addSupplementalSecondOfPair(final SAMRecord rec) {
-        supplementalSecondOfPair.add(rec);
-    }
-
-    /**
-     * @return The ith hit for a un-paired read.  Never returns null.
-     * Do not call if paired read.
-     */
-    public SAMRecord getFragment(final int i) {
-        final SAMRecord samRecord = firstOfPairOrFragment.get(i);
-        if (samRecord.getReadPairedFlag()) throw new UnsupportedOperationException("getFragment called for paired read");
-        return samRecord;
-    }
-
-    /**
-     * @return Returns the ith hit for the second end, or null if the second end is not aligned.
-     */
-    public SAMRecord getSecondOfPair(final int i) {
-        if (i >= secondOfPair.size()) {
-            return null;
-        } else {
-            return secondOfPair.get(i);
-        }
-    }
-
-    /**
-     * Set all alignments to not primary, except for the one specified by the argument.  If paired, and set the
-     * alignment for both ends if there is an alignment for both ends, otherwise just for the end for which
-     * there is an alignment at the given index.
-     * @param primaryAlignmentIndex
-     */
-    public void setPrimaryAlignment(final int primaryAlignmentIndex) {
-        if (primaryAlignmentIndex < 0 || primaryAlignmentIndex >= this.numHits()) {
-            throw new IllegalArgumentException("primaryAlignmentIndex(" + primaryAlignmentIndex +
-                    ") out of range for numHits(" + numHits() + ")");
-        }
-        // Set all alignment to be not primary except the selected one.
-        for (int i = 0; i < this.numHits(); ++i) {
-            final boolean notPrimary = (i != primaryAlignmentIndex);
-            if (this.getFirstOfPair(i) != null) {
-                this.getFirstOfPair(i).setNotPrimaryAlignmentFlag(notPrimary);
-            }
-            if (this.getSecondOfPair(i) != null) {
-                this.getSecondOfPair(i).setNotPrimaryAlignmentFlag(notPrimary);
-            }
-        }
-
-    }
-
-    /**
-     * Some alignment strategies expect to receive alignments for ends that are coordinated by
-     * hit index (HI) tag.  This method lines up alignments for each end by HI tag value, and if there is
-     * no corresponding alignment for an alignment, there is a null in the array at that slot.
-     *
-     * This method then renumbers the HI values so that they start at zero and have no gaps, because some
-     * reads may have been filtered out.
-     */
-    public void coordinateByHitIndex() {
-        // Sort by HI value, with reads with no HI going at the end.
-        Collections.sort(firstOfPairOrFragment, comparator);
-        Collections.sort(secondOfPair, comparator);
-
-        // Insert nulls as necessary in the two lists so that correlated alignments have the same index
-        // and uncorrelated alignments have null in the other list at the corresponding index.
-        for (int i = 0; i < Math.min(firstOfPairOrFragment.size(), secondOfPair.size()); ++i) {
-            final Integer leftHi = firstOfPairOrFragment.get(i).getIntegerAttribute(SAMTag.HI.name());
-            final Integer rightHi = secondOfPair.get(i).getIntegerAttribute(SAMTag.HI.name());
-            if (leftHi != null) {
-                if (rightHi != null) {
-                    if (leftHi < rightHi) secondOfPair.add(i, null);
-                    else if (rightHi < leftHi) firstOfPairOrFragment.add(i, null);
-                    // else the are correlated
-                }
-            } else if (rightHi != null) {
-                firstOfPairOrFragment.add(i, null);
-            } else {
-                // Both alignments do not have HI, so push down the ones on the right.
-                // Right is arbitrarily picked to push down.
-                secondOfPair.add(i, null);
-            }
-        }
-
-        // Now renumber any correlated alignments, and remove hit index if no correlated read.
-        int hi = 0;
-        for (int i = 0; i < numHits(); ++i) {
-            final SAMRecord first = getFirstOfPair(i);
-            final SAMRecord second = getSecondOfPair(i);
-            if (first != null && second != null) {
-                first.setAttribute(SAMTag.HI.name(), i);
-                second.setAttribute(SAMTag.HI.name(), i);
-                ++hi;
-            } else if (first != null) {
-                first.setAttribute(SAMTag.HI.name(), null);
-            } else {
-                second.setAttribute(SAMTag.HI.name(), null);
-            }
-        }
-    }
-
-
-
-    /**
-     * Determine if there is a single primary alignment in a list of alignments.
-     * @param records
-     * @return NONE, ONE or MORE_THAN_ONE.
-     */
-    private NumPrimaryAlignmentState tallyPrimaryAlignments(final List<SAMRecord> records) {
-        boolean seenPrimary = false;
-        for (int i = 0; i < records.size(); ++i) {
-            if (records.get(i) != null && !records.get(i).isSecondaryOrSupplementary()) {
-                if (seenPrimary) return NumPrimaryAlignmentState.MORE_THAN_ONE;
-                else seenPrimary = true;
-            }
-        }
-        if (seenPrimary) return NumPrimaryAlignmentState.ONE;
-        else return NumPrimaryAlignmentState.NONE;
-    }
-
-    public NumPrimaryAlignmentState tallyPrimaryAlignments(final boolean firstEnd) {
-        if (firstEnd) return tallyPrimaryAlignments(firstOfPairOrFragment);
-        else return tallyPrimaryAlignments(secondOfPair);
-    }
-
-    int findPrimaryAlignment(final List<SAMRecord> records) {
-        int indexOfPrimaryAlignment = -1;
-        for (int i = 0; i < records.size(); ++i) {
-            if (records.get(i) != null && !records.get(i).isSecondaryOrSupplementary()) {
-                if (indexOfPrimaryAlignment != -1) {
-                    throw new IllegalStateException("Multiple primary alignments found for read " + getReadName());
-                }
-                indexOfPrimaryAlignment = i;
-            }
-        }
-        return indexOfPrimaryAlignment;
-    }
-
-    // null HI tag sorts after any non-null.
-    private static class HitIndexComparator implements Comparator<SAMRecord> {
-        public int compare(final SAMRecord rec1, final SAMRecord rec2) {
-            final Integer hi1 = rec1.getIntegerAttribute(SAMTag.HI.name());
-            final Integer hi2 = rec2.getIntegerAttribute(SAMTag.HI.name());
-            if (hi1 == null) {
-                if (hi2 == null) return 0;
-                else return 1;
-            } else if (hi2 == null) {
-                return -1;
-            } else {
-                return hi1.compareTo(hi2);
-            }
-        }
-    }
-
-    List<SAMRecord> getSupplementalFirstOfPairOrFragment() {
-        return supplementalFirstOfPairOrFragment;
-    }
-
-    List<SAMRecord> getSupplementalSecondOfPair() {
-        return supplementalSecondOfPair;
-    }
-}
diff --git a/src/java/net/sf/picard/sam/MarkDuplicates.java b/src/java/net/sf/picard/sam/MarkDuplicates.java
deleted file mode 100644
index 929aa03..0000000
--- a/src/java/net/sf/picard/sam/MarkDuplicates.java
+++ /dev/null
@@ -1,772 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.sam;
-
-import net.sf.picard.cmdline.CommandLineParser;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.StandardOptionDefinitions;
-import net.sf.picard.cmdline.Usage;
-import net.sf.picard.metrics.MetricsFile;
-import net.sf.picard.util.Histogram;
-import net.sf.picard.util.Log;
-import net.sf.picard.PicardException;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.util.ProgressLogger;
-import net.sf.samtools.*;
-import net.sf.samtools.SAMFileHeader.SortOrder;
-import net.sf.samtools.util.CloseableIterator;
-import net.sf.samtools.util.SortingCollection;
-import net.sf.samtools.util.SortingLongCollection;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * A better duplication marking algorithm that handles all cases including clipped
- * and gapped alignments.
- *
- * @author Tim Fennell
- */
-public class MarkDuplicates extends AbstractDuplicateFindingAlgorithm {
-    private final Log log = Log.getInstance(MarkDuplicates.class);
-
-    /**
-     * If more than this many sequences in SAM file, don't spill to disk because there will not
-     * be enough file handles.
-     */
-
-    @Usage
-    public final String USAGE =
-		    CommandLineParser.getStandardUsagePreamble(getClass()) +
-            "Examines aligned records in the supplied SAM or BAM file to locate duplicate molecules. " +
-            "All records are then written to the output file with the duplicate records flagged.";
-
-    @Option(shortName=StandardOptionDefinitions.INPUT_SHORT_NAME,
-		    doc="One or more input SAM or BAM files to analyze. Must be coordinate sorted.")
-    public List<File> INPUT;
-
-    @Option(shortName=StandardOptionDefinitions.OUTPUT_SHORT_NAME,
-		    doc="The output file to write marked records to")
-    public File OUTPUT;
-
-    @Option(shortName="M",
-		    doc="File to write duplication metrics to")
-    public File METRICS_FILE;
-
-    @Option(shortName=StandardOptionDefinitions.PROGRAM_RECORD_ID_SHORT_NAME,
-            doc="The program record ID for the @PG record(s) created by this program. Set to null to disable " +
-                "PG record creation.  This string may have a suffix appended to avoid collision with other " +
-	            "program record IDs.",
-            optional=true)
-    public String PROGRAM_RECORD_ID = "MarkDuplicates";
-
-    @Option(shortName="PG_VERSION",
-            doc="Value of VN tag of PG record to be created. If not specified, the version will be detected automatically.",
-            optional=true)
-    public String PROGRAM_GROUP_VERSION;
-
-    @Option(shortName="PG_COMMAND",
-            doc="Value of CL tag of PG record to be created. If not supplied the command line will be detected automatically.",
-            optional=true)
-    public String PROGRAM_GROUP_COMMAND_LINE;
-
-    @Option(shortName="PG_NAME",
-		    doc="Value of PN tag of PG record to be created.")
-    public String PROGRAM_GROUP_NAME = "MarkDuplicates";
-
-    @Option(shortName="CO",
-		    doc="Comment(s) to include in the output file's header.",
-		    optional=true)
-    public List<String> COMMENT = new ArrayList<String>();
-
-    @Option(doc="If true do not write duplicates to the output file instead of writing them with appropriate flags set.")
-    public boolean REMOVE_DUPLICATES = false;
-
-    @Option(shortName=StandardOptionDefinitions.ASSUME_SORTED_SHORT_NAME,
-		    doc="If true, assume that the input file is coordinate sorted even if the header says otherwise.")
-    public boolean ASSUME_SORTED = false;
-
-    @Option(shortName="MAX_SEQS",
-		    doc="This option is obsolete. ReadEnds will always be spilled to disk.")
-    public int MAX_SEQUENCES_FOR_DISK_READ_ENDS_MAP = 50000;
-
-    @Option(shortName="MAX_FILE_HANDLES",
-		    doc="Maximum number of file handles to keep open when spilling read ends to disk. " +
-            "Set this number a little lower than the per-process maximum number of file that may be open. " +
-            "This number can be found by executing the 'ulimit -n' command on a Unix system.")
-    public int MAX_FILE_HANDLES_FOR_READ_ENDS_MAP = 8000;
-
-    @Option(doc="This number, plus the maximum RAM available to the JVM, determine the memory footprint used by " +
-            "some of the sorting collections.  If you are running out of memory, try reducing this number.")
-    public double SORTING_COLLECTION_SIZE_RATIO = 0.25;
-
-    private SortingCollection<ReadEnds> pairSort;
-    private SortingCollection<ReadEnds> fragSort;
-    private SortingLongCollection duplicateIndexes;
-    private int numDuplicateIndices = 0;
-
-    final private Map<String,Short> libraryIds = new HashMap<String,Short>();
-    private short nextLibraryId = 1;
-
-    // Variables used for optical duplicate detection and tracking
-    private final Histogram<Short> opticalDupesByLibraryId = new Histogram<Short>();
-
-    // All PG IDs seen in merged input files in first pass.  These are gather for two reasons:
-    // - to know how many different PG records to create to represent this program invocation.
-    // - to know what PG IDs are already used to avoid collisions when creating new ones.
-    // Note that if there are one or more records that do not have a PG tag, then a null value
-    // will be stored in this set.
-    private final Set<String> pgIdsSeen = new HashSet<String>();
-
-    /** Stock main method. */
-    public static void main(final String[] args) {
-        System.exit(new MarkDuplicates().instanceMain(args));
-    }
-
-    /**
-     * Main work method.  Reads the BAM file once and collects sorted information about
-     * the 5' ends of both ends of each read (or just one end in the case of pairs).
-     * Then makes a pass through those determining duplicates before re-reading the
-     * input file and writing it out with duplication flags set correctly.
-     */
-    protected int doWork() {
-        for (final File f : INPUT) IoUtil.assertFileIsReadable(f);
-        IoUtil.assertFileIsWritable(OUTPUT);
-        IoUtil.assertFileIsWritable(METRICS_FILE);
-
-        reportMemoryStats("Start of doWork");
-        log.info("Reading input file and constructing read end information.");
-        buildSortedReadEndLists();
-        reportMemoryStats("After buildSortedReadEndLists");
-        generateDuplicateIndexes();
-        reportMemoryStats("After generateDuplicateIndexes");
-        log.info("Marking " + this.numDuplicateIndices + " records as duplicates.");
-        log.info("Found " + ((long) this.opticalDupesByLibraryId.getSumOfValues()) + " optical duplicate clusters.");
-
-        final Map<String,DuplicationMetrics> metricsByLibrary = new HashMap<String,DuplicationMetrics>();
-        final SamHeaderAndIterator headerAndIterator = openInputs();
-        final SAMFileHeader header = headerAndIterator.header;
-
-        final SAMFileHeader outputHeader = header.clone();
-        outputHeader.setSortOrder(SAMFileHeader.SortOrder.coordinate);
-        for (final String comment : COMMENT) outputHeader.addComment(comment);
-
-        // Key: previous PG ID on a SAM Record (or null).  Value: New PG ID to replace it.
-        final Map<String, String> chainedPgIds;
-        // Generate new PG record(s)
-        if (PROGRAM_RECORD_ID != null) {
-            final PgIdGenerator pgIdGenerator = new PgIdGenerator(outputHeader);
-            if (PROGRAM_GROUP_VERSION == null) {
-                PROGRAM_GROUP_VERSION = this.getVersion();
-            }
-            if (PROGRAM_GROUP_COMMAND_LINE == null) {
-                PROGRAM_GROUP_COMMAND_LINE = this.getCommandLine();
-            }
-            chainedPgIds = new HashMap<String, String>();
-            for (final String existingId : pgIdsSeen) {
-                final String newPgId = pgIdGenerator.getNonCollidingId(PROGRAM_RECORD_ID);
-                chainedPgIds.put(existingId, newPgId);
-                final SAMProgramRecord programRecord = new SAMProgramRecord(newPgId);
-                programRecord.setProgramVersion(PROGRAM_GROUP_VERSION);
-                programRecord.setCommandLine(PROGRAM_GROUP_COMMAND_LINE);
-                programRecord.setProgramName(PROGRAM_GROUP_NAME);
-                programRecord.setPreviousProgramGroupId(existingId);
-                outputHeader.addProgramRecord(programRecord);
-            }
-        } else {
-            chainedPgIds = null;
-        }
-
-        final SAMFileWriter out = new SAMFileWriterFactory().makeSAMOrBAMWriter(outputHeader,
-                                                                                true,
-                                                                                OUTPUT);
-
-        // Now copy over the file while marking all the necessary indexes as duplicates
-        long recordInFileIndex = 0;
-        long nextDuplicateIndex = (this.duplicateIndexes.hasNext() ? this.duplicateIndexes.next(): -1);
-
-        for(final SAMReadGroupRecord readGroup : header.getReadGroups()) {
-            final String library = readGroup.getLibrary();
-            DuplicationMetrics metrics = metricsByLibrary.get(library);
-            if (metrics == null) {
-                metrics = new DuplicationMetrics();
-                metrics.LIBRARY = library;
-                metricsByLibrary.put(library, metrics);
-            }
-        }
-
-        final ProgressLogger progress = new ProgressLogger(log, (int) 1e7, "Written");
-        final CloseableIterator<SAMRecord> iterator = headerAndIterator.iterator;
-        while (iterator.hasNext()) {
-            final SAMRecord rec = iterator.next();
-            if (!rec.isSecondaryOrSupplementary()) {
-                final String library = getLibraryName(header, rec);
-                DuplicationMetrics metrics = metricsByLibrary.get(library);
-                if (metrics == null) {
-                    metrics = new DuplicationMetrics();
-                    metrics.LIBRARY = library;
-                    metricsByLibrary.put(library, metrics);
-                }
-
-                // First bring the simple metrics up to date
-                if (rec.getReadUnmappedFlag()) {
-                    ++metrics.UNMAPPED_READS;
-                }
-                else if (!rec.getReadPairedFlag() || rec.getMateUnmappedFlag()) {
-                    ++metrics.UNPAIRED_READS_EXAMINED;
-                }
-                else {
-                    ++metrics.READ_PAIRS_EXAMINED; // will need to be divided by 2 at the end
-                }
-
-
-                if (recordInFileIndex == nextDuplicateIndex) {
-                    rec.setDuplicateReadFlag(true);
-
-                    // Update the duplication metrics
-                    if (!rec.getReadPairedFlag() || rec.getMateUnmappedFlag()) {
-                        ++metrics.UNPAIRED_READ_DUPLICATES;
-                    }
-                    else {
-                        ++metrics.READ_PAIR_DUPLICATES;// will need to be divided by 2 at the end
-                    }
-
-                    // Now try and figure out the next duplicate index
-                    if (this.duplicateIndexes.hasNext()) {
-                        nextDuplicateIndex = this.duplicateIndexes.next();
-                    } else {
-                        // Only happens once we've marked all the duplicates
-                        nextDuplicateIndex = -1;
-                    }
-                }
-                else {
-                    rec.setDuplicateReadFlag(false);
-                }
-            }
-            recordInFileIndex++;
-
-            if (this.REMOVE_DUPLICATES && rec.getDuplicateReadFlag()) {
-                // do nothing
-            }
-            else {
-                if (PROGRAM_RECORD_ID != null) {
-                    rec.setAttribute(SAMTag.PG.name(), chainedPgIds.get(rec.getStringAttribute(SAMTag.PG.name())));
-                }
-                out.addAlignment(rec);
-                progress.record(rec);
-            }
-        }
-
-        this.duplicateIndexes.cleanup();
-
-        reportMemoryStats("Before output close");
-        out.close();
-        reportMemoryStats("After output close");
-
-
-        // Write out the metrics
-        final MetricsFile<DuplicationMetrics,Double> file = getMetricsFile();
-        for (final Map.Entry<String,DuplicationMetrics> entry : metricsByLibrary.entrySet()) {
-            final String libraryName = entry.getKey();
-            final DuplicationMetrics metrics = entry.getValue();
-
-            metrics.READ_PAIRS_EXAMINED = metrics.READ_PAIRS_EXAMINED / 2;
-            metrics.READ_PAIR_DUPLICATES = metrics.READ_PAIR_DUPLICATES / 2;
-
-            // Add the optical dupes to the metrics
-            final Short libraryId = this.libraryIds.get(libraryName);
-            if (libraryId != null) {
-                final Histogram<Short>.Bin bin = this.opticalDupesByLibraryId.get(libraryId);
-                if (bin != null) {
-                    metrics.READ_PAIR_OPTICAL_DUPLICATES = (long) bin.getValue();
-                }
-            }
-            metrics.calculateDerivedMetrics();
-            file.addMetric(metrics);
-        }
-
-        if (metricsByLibrary.size() == 1) {
-            file.setHistogram(metricsByLibrary.values().iterator().next().calculateRoiHistogram());
-        }
-
-        file.write(METRICS_FILE);
-
-        return 0;
-    }
-
-    /** Little class used to package up a header and an iterable/iterator. */
-    private static final class SamHeaderAndIterator {
-        final SAMFileHeader header;
-        final CloseableIterator<SAMRecord> iterator;
-
-        private SamHeaderAndIterator(final SAMFileHeader header, final CloseableIterator<SAMRecord> iterator) {
-            this.header = header;
-            this.iterator = iterator;
-        }
-    }
-
-    /**
-     * Since MarkDuplicates reads it's inputs more than once this method does all the opening
-     * and checking of the inputs.
-     */
-    private SamHeaderAndIterator openInputs() {
-        final List<SAMFileHeader> headers = new ArrayList<SAMFileHeader>(INPUT.size());
-        final List<SAMFileReader> readers = new ArrayList<SAMFileReader>(INPUT.size());
-
-        for (final File f : INPUT) {
-            final SAMFileReader reader = new SAMFileReader(f);
-            final SAMFileHeader header = reader.getFileHeader();
-
-            if (!ASSUME_SORTED && header.getSortOrder() != SortOrder.coordinate) {
-                throw new PicardException("Input file " + f.getAbsolutePath() + " is not coordinate sorted.");
-            }
-
-            headers.add(header);
-            readers.add(reader);
-        }
-
-        if (headers.size() == 1) {
-            return new SamHeaderAndIterator(headers.get(0), readers.get(0).iterator());
-        }
-        else {
-            final SamFileHeaderMerger headerMerger = new SamFileHeaderMerger(SortOrder.coordinate, headers, false);
-            final MergingSamRecordIterator iterator = new MergingSamRecordIterator(headerMerger, readers, ASSUME_SORTED);
-            return new SamHeaderAndIterator(headerMerger.getMergedHeader(), iterator);
-        }
-    }
-
-    /** Print out some quick JVM memory stats. */
-    private void reportMemoryStats(final String stage) {
-        System.gc();
-        final Runtime runtime = Runtime.getRuntime();
-        log.info(stage + " freeMemory: " + runtime.freeMemory() + "; totalMemory: " + runtime.totalMemory() +
-                "; maxMemory: " + runtime.maxMemory());
-    }
-
-    /**
-     * Goes through all the records in a file and generates a set of ReadEnds objects that
-     * hold the necessary information (reference sequence, 5' read coordinate) to do
-     * duplication, caching to disk as necssary to sort them.
-     */
-    private void buildSortedReadEndLists() {
-        final int maxInMemory = (int) ((Runtime.getRuntime().maxMemory() * SORTING_COLLECTION_SIZE_RATIO) / ReadEnds.SIZE_OF);
-        log.info("Will retain up to " + maxInMemory + " data points before spilling to disk.");
-
-        this.pairSort = SortingCollection.newInstance(ReadEnds.class,
-                                                      new ReadEndsCodec(),
-                                                      new ReadEndsComparator(),
-                                                      maxInMemory,
-                                                      TMP_DIR);
-
-        this.fragSort = SortingCollection.newInstance(ReadEnds.class,
-                                                      new ReadEndsCodec(),
-                                                      new ReadEndsComparator(),
-                                                      maxInMemory,
-                                                      TMP_DIR);
-
-        final SamHeaderAndIterator headerAndIterator = openInputs();
-        final SAMFileHeader header = headerAndIterator.header;
-        final ReadEndsMap tmp = new DiskReadEndsMap(MAX_FILE_HANDLES_FOR_READ_ENDS_MAP);
-        long index = 0;
-        final ProgressLogger progress = new ProgressLogger(log, (int) 1e6, "Read");
-        final CloseableIterator<SAMRecord> iterator = headerAndIterator.iterator;
-
-        while (iterator.hasNext()) {
-            final SAMRecord rec = iterator.next();
-
-            // This doesn't have anything to do with building sorted ReadEnd lists, but it can be done in the same pass
-            // over the input
-            if (PROGRAM_RECORD_ID != null) {
-                pgIdsSeen.add(rec.getStringAttribute(SAMTag.PG.name()));
-            }
-
-            if (rec.getReadUnmappedFlag()) {
-                if (rec.getReferenceIndex() == -1) {
-                    // When we hit the unmapped reads with no coordinate, no reason to continue.
-                    break;
-                }
-                // If this read is unmapped but sorted with the mapped reads, just skip it.
-            }
-            else if (!rec.isSecondaryOrSupplementary()){
-                final ReadEnds fragmentEnd = buildReadEnds(header, index, rec);
-                this.fragSort.add(fragmentEnd);
-
-                if (rec.getReadPairedFlag() && !rec.getMateUnmappedFlag()) {
-                    final String key = rec.getAttribute(ReservedTagConstants.READ_GROUP_ID) + ":" + rec.getReadName();
-                    ReadEnds pairedEnds = tmp.remove(rec.getReferenceIndex(), key);
-
-                    // See if we've already seen the first end or not
-                    if (pairedEnds == null) {
-                        pairedEnds = buildReadEnds(header, index, rec);
-                        tmp.put(pairedEnds.read2Sequence, key, pairedEnds);
-                    }
-                    else {
-                        final int sequence = fragmentEnd.read1Sequence;
-                        final int coordinate = fragmentEnd.read1Coordinate;
-
-                        // If the second read is actually later, just add the second read data, else flip the reads
-                        if (sequence > pairedEnds.read1Sequence ||
-                                (sequence == pairedEnds.read1Sequence && coordinate >= pairedEnds.read1Coordinate)) {
-                            pairedEnds.read2Sequence    = sequence;
-                            pairedEnds.read2Coordinate  = coordinate;
-                            pairedEnds.read2IndexInFile = index;
-                            pairedEnds.orientation = getOrientationByte(pairedEnds.orientation == ReadEnds.R,
-                                                                        rec.getReadNegativeStrandFlag());
-                        }
-                        else {
-                            pairedEnds.read2Sequence    = pairedEnds.read1Sequence;
-                            pairedEnds.read2Coordinate  = pairedEnds.read1Coordinate;
-                            pairedEnds.read2IndexInFile = pairedEnds.read1IndexInFile;
-                            pairedEnds.read1Sequence    = sequence;
-                            pairedEnds.read1Coordinate  = coordinate;
-                            pairedEnds.read1IndexInFile = index;
-                            pairedEnds.orientation = getOrientationByte(rec.getReadNegativeStrandFlag(),
-                                                                        pairedEnds.orientation == ReadEnds.R);
-                        }
-
-                        pairedEnds.score += getScore(rec);
-                        this.pairSort.add(pairedEnds);
-                    }
-                }
-            }
-
-            // Print out some stats every 1m reads
-            ++index;
-            if (progress.record(rec)) {
-                log.info("Tracking " + tmp.size() + " as yet unmatched pairs. " + tmp.sizeInRam() + " records in RAM.");
-            }
-        }
-
-        log.info("Read " + index + " records. " + tmp.size() + " pairs never matched.");
-        iterator.close();
-
-        // Tell these collections to free up memory if possible.
-        this.pairSort.doneAdding();
-        this.fragSort.doneAdding();
-    }
-
-    /** Builds a read ends object that represents a single read. */
-    private ReadEnds buildReadEnds(final SAMFileHeader header, final long index, final SAMRecord rec) {
-        final ReadEnds ends = new ReadEnds();
-        ends.read1Sequence    = rec.getReferenceIndex();
-        ends.read1Coordinate  = rec.getReadNegativeStrandFlag() ? rec.getUnclippedEnd() : rec.getUnclippedStart();
-        ends.orientation = rec.getReadNegativeStrandFlag() ? ReadEnds.R : ReadEnds.F;
-        ends.read1IndexInFile = index;
-        ends.score = getScore(rec);
-
-        // Doing this lets the ends object know that it's part of a pair
-        if (rec.getReadPairedFlag() && !rec.getMateUnmappedFlag()) {
-            ends.read2Sequence = rec.getMateReferenceIndex();
-        }
-
-        // Fill in the library ID
-        ends.libraryId = getLibraryId(header, rec);
-
-        // Fill in the location information for optical duplicates
-        if (addLocationInformation(rec.getReadName(), ends)) {
-            // calculate the RG number (nth in list)
-            ends.readGroup = 0;
-            final String rg = (String) rec.getAttribute("RG");
-            final List<SAMReadGroupRecord> readGroups = header.getReadGroups();
-
-            if (rg != null && readGroups != null) {
-                for (final SAMReadGroupRecord readGroup : readGroups) {
-                    if (readGroup.getReadGroupId().equals(rg)) break;
-                    else ends.readGroup++;
-                }
-            }
-        }
-
-        return ends;
-    }
-
-    /** Get the library ID for the given SAM record. */
-    private short getLibraryId(final SAMFileHeader header, final SAMRecord rec) {
-        final String library = getLibraryName(header, rec);
-        Short libraryId = this.libraryIds.get(library);
-
-        if (libraryId == null) {
-            libraryId = this.nextLibraryId++;
-            this.libraryIds.put(library, libraryId);
-        }
-
-        return libraryId;
-    }
-
-    /**
-     * Gets the library name from the header for the record. If the RG tag is not present on
-     * the record, or the library isn't denoted on the read group, a constant string is
-     * returned.
-     */
-    private String getLibraryName(final SAMFileHeader header, final SAMRecord rec) {
-        final String readGroupId = (String) rec.getAttribute("RG");
-
-        if (readGroupId != null) {
-            final SAMReadGroupRecord rg = header.getReadGroup(readGroupId);
-            if (rg != null) {
-                return rg.getLibrary();
-            }
-        }
-
-        return "Unknown Library";
-    }
-
-    /**
-     * Returns a single byte that encodes the orientation of the two reads in a pair.
-     */
-    private byte getOrientationByte(final boolean read1NegativeStrand, final boolean read2NegativeStrand) {
-        if (read1NegativeStrand) {
-            if (read2NegativeStrand)  return ReadEnds.RR;
-            else return ReadEnds.RF;
-        }
-        else {
-            if (read2NegativeStrand)  return ReadEnds.FR;
-            else return ReadEnds.FF;
-        }
-    }
-
-
-
-    /** Calculates a score for the read which is the sum of scores over Q20. */
-    private short getScore(final SAMRecord rec) {
-        short score = 0;
-        for (final byte b : rec.getBaseQualities()) {
-            if (b >= 15) score += b;
-        }
-
-        return score;
-    }
-
-    /**
-     * Goes through the accumulated ReadEnds objects and determines which of them are
-     * to be marked as duplicates.
-     *
-     * @return an array with an ordered list of indexes into the source file
-     */
-    private void generateDuplicateIndexes() {
-        // Keep this number from getting too large even if there is a huge heap.
-        final int maxInMemory = (int) Math.min((Runtime.getRuntime().maxMemory() * 0.25) / SortingLongCollection.SIZEOF,
-                (double)(Integer.MAX_VALUE - 5));
-        log.info("Will retain up to " + maxInMemory + " duplicate indices before spilling to disk.");
-        this.duplicateIndexes = new SortingLongCollection(maxInMemory, TMP_DIR.toArray(new File[TMP_DIR.size()]));
-
-        ReadEnds firstOfNextChunk = null;
-        final List<ReadEnds> nextChunk  = new ArrayList<ReadEnds>(200);
-
-        // First just do the pairs
-        log.info("Traversing read pair information and detecting duplicates.");
-        for (final ReadEnds next : this.pairSort) {
-            if (firstOfNextChunk == null) {
-                firstOfNextChunk = next;
-                nextChunk.add(firstOfNextChunk);
-            }
-            else if (areComparableForDuplicates(firstOfNextChunk, next, true)) {
-                nextChunk.add(next);
-            }
-            else {
-                if (nextChunk.size() > 1) {
-                    markDuplicatePairs(nextChunk);
-                }
-
-                nextChunk.clear();
-                nextChunk.add(next);
-                firstOfNextChunk = next;
-            }
-        }
-        markDuplicatePairs(nextChunk);
-        this.pairSort.cleanup();
-        this.pairSort = null;
-
-        // Now deal with the fragments
-        log.info("Traversing fragment information and detecting duplicates.");
-        boolean containsPairs = false;
-        boolean containsFrags = false;
-
-        for (final ReadEnds next : this.fragSort) {
-            if (firstOfNextChunk != null && areComparableForDuplicates(firstOfNextChunk, next, false)) {
-                nextChunk.add(next);
-                containsPairs = containsPairs || next.isPaired();
-                containsFrags = containsFrags || !next.isPaired();
-            }
-            else {
-                if (nextChunk.size() > 1 && containsFrags) {
-                    markDuplicateFragments(nextChunk, containsPairs);
-                }
-
-                nextChunk.clear();
-                nextChunk.add(next);
-                firstOfNextChunk = next;
-                containsPairs = next.isPaired();
-                containsFrags = !next.isPaired();
-            }
-        }
-        markDuplicateFragments(nextChunk, containsPairs);
-        this.fragSort.cleanup();
-        this.fragSort = null;
-
-        log.info("Sorting list of duplicate records.");
-        this.duplicateIndexes.doneAddingStartIteration();
-    }
-
-    private boolean areComparableForDuplicates(final ReadEnds lhs, final ReadEnds rhs, final boolean compareRead2) {
-        boolean retval =  lhs.libraryId       == rhs.libraryId &&
-                          lhs.read1Sequence   == rhs.read1Sequence &&
-                          lhs.read1Coordinate == rhs.read1Coordinate &&
-                          lhs.orientation     == rhs.orientation;
-
-        if (retval && compareRead2) {
-            retval = lhs.read2Sequence   == rhs.read2Sequence &&
-                     lhs.read2Coordinate == rhs.read2Coordinate;
-        }
-
-        return retval;
-    }
-
-    private void addIndexAsDuplicate(final long bamIndex) {
-        this.duplicateIndexes.add(bamIndex);
-        ++this.numDuplicateIndices;
-    }
-
-    /**
-     * Takes a list of ReadEnds objects and removes from it all objects that should
-     * not be marked as duplicates.
-     *
-     * @param list
-     */
-    private void markDuplicatePairs(final List<ReadEnds> list) {
-        short maxScore = 0;
-        ReadEnds best = null;
-
-        for (final ReadEnds end : list) {
-            if (end.score > maxScore || best == null) {
-                maxScore = end.score;
-                best = end;
-            }
-        }
-
-        for (final ReadEnds end : list) {
-            if (end != best) {
-                addIndexAsDuplicate(end.read1IndexInFile);
-                addIndexAsDuplicate(end.read2IndexInFile);
-            }
-        }
-
-        trackOpticalDuplicates(list);
-    }
-
-    /**
-     * Looks through the set of reads and identifies how many of the duplicates are
-     * in fact optical duplicates, and stores the data in the instance level histogram.
-     */
-    private void trackOpticalDuplicates(final List<ReadEnds> list) {
-        final boolean[] opticalDuplicateFlags = findOpticalDuplicates(list, OPTICAL_DUPLICATE_PIXEL_DISTANCE);
-
-        int opticalDuplicates = 0;
-        for (final boolean b: opticalDuplicateFlags) if (b) ++opticalDuplicates;
-        if (opticalDuplicates > 0) {
-            this.opticalDupesByLibraryId.increment(list.get(0).libraryId, opticalDuplicates);
-        }
-    }
-
-    /**
-     * Takes a list of ReadEnds objects and removes from it all objects that should
-     * not be marked as duplicates.
-     *
-     * @param list
-     */
-    private void markDuplicateFragments(final List<ReadEnds> list, final boolean containsPairs) {
-        if (containsPairs) {
-            for (final ReadEnds end : list) {
-                if (!end.isPaired()) addIndexAsDuplicate(end.read1IndexInFile);
-            }
-        }
-        else {
-            short maxScore = 0;
-            ReadEnds best = null;
-            for (final ReadEnds end : list) {
-                if (end.score > maxScore || best == null) {
-                    maxScore = end.score;
-                    best = end;
-                }
-            }
-
-            for (final ReadEnds end : list) {
-                if (end != best) {
-                    addIndexAsDuplicate(end.read1IndexInFile);
-                }
-            }
-        }
-    }
-
-    /** Comparator for ReadEnds that orders by read1 position then pair orientation then read2 position. */
-    static class ReadEndsComparator implements Comparator<ReadEnds> {
-        public int compare(final ReadEnds lhs, final ReadEnds rhs) {
-            int retval = lhs.libraryId - rhs.libraryId;
-            if (retval == 0) retval = lhs.read1Sequence - rhs.read1Sequence;
-            if (retval == 0) retval = lhs.read1Coordinate - rhs.read1Coordinate;
-            if (retval == 0) retval = lhs.orientation - rhs.orientation;
-            if (retval == 0) retval = lhs.read2Sequence   - rhs.read2Sequence;
-            if (retval == 0) retval = lhs.read2Coordinate - rhs.read2Coordinate;
-            if (retval == 0) retval = (int) (lhs.read1IndexInFile - rhs.read1IndexInFile);
-            if (retval == 0) retval = (int) (lhs.read2IndexInFile - rhs.read2IndexInFile);
-
-            return retval;
-        }
-    }
-
-    static class PgIdGenerator {
-        private int recordCounter;
-
-        private final Set<String> idsThatAreAlreadyTaken = new HashSet<String>();
-
-        PgIdGenerator(final SAMFileHeader header) {
-            for (final SAMProgramRecord pgRecord : header.getProgramRecords()) {
-                idsThatAreAlreadyTaken.add(pgRecord.getProgramGroupId());
-            }
-            recordCounter = idsThatAreAlreadyTaken.size();
-        }
-
-        String getNonCollidingId(final String recordId) {
-            if(!idsThatAreAlreadyTaken.contains(recordId)) {
-                // don't remap 1st record. If there are more records
-                // with this id, they will be remapped in the 'else'.
-                idsThatAreAlreadyTaken.add(recordId);
-                ++recordCounter;
-                return recordId;
-            } else {
-                String newId;
-                // Below we tack on one of roughly 1.7 million possible 4 digit base36 at random. We do this because
-                // our old process of just counting from 0 upward and adding that to the previous id led to 1000s of
-                // calls idsThatAreAlreadyTaken.contains() just to resolve 1 collision when merging 1000s of similarly
-                // processed bams.
-                while(idsThatAreAlreadyTaken.contains(newId = recordId + "." + SamFileHeaderMerger.positiveFourDigitBase36Str(recordCounter++)));
-
-                idsThatAreAlreadyTaken.add( newId );
-                return newId;
-            }
-
-        }
-    }
-}
diff --git a/src/java/net/sf/picard/sam/MergeBamAlignment.java b/src/java/net/sf/picard/sam/MergeBamAlignment.java
deleted file mode 100644
index 8884102..0000000
--- a/src/java/net/sf/picard/sam/MergeBamAlignment.java
+++ /dev/null
@@ -1,285 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.sam;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.StandardOptionDefinitions;
-import net.sf.picard.cmdline.Usage;
-import net.sf.picard.util.Log;
-import net.sf.samtools.SAMFileHeader.SortOrder;
-import net.sf.samtools.SAMProgramRecord;
-import net.sf.samtools.SamPairUtil;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * A command-line tool to merge BAM/SAM alignment info from a third-party aligner with the data in an
- * unmapped BAM file, producing a third BAM file that has alignment data and all the additional data
- * from the unmapped BAM
- *
- * @author ktibbett at broadinstitute.org
- */
-public class MergeBamAlignment extends CommandLineProgram {
-
-    @Usage
-    public String USAGE = getStandardUsagePreamble() + "Merges alignment data from a SAM or BAM " +
-            "file with additional data stored in an unmapped BAM file and produces a third SAM " +
-            "or BAM file of aligned and unaligned reads. NOTE that this program expects to " +
-            "find a sequence dictionary in the same directory as REFERENCE_SEQUENCE and expects it " +
-            "to have the same base name as the reference fasta except with the extension '.dict'";
-
-    @Option(shortName="UNMAPPED",
-		    doc="Original SAM or BAM file of unmapped reads, which must be in queryname order.")
-    public File UNMAPPED_BAM;
-
-    @Option(shortName="ALIGNED",
-		    doc="SAM or BAM file(s) with alignment data.",
-		    mutex={"READ1_ALIGNED_BAM","READ2_ALIGNED_BAM"},
-		    optional=true)
-    public List<File> ALIGNED_BAM;
-
-    @Option(shortName="R1_ALIGNED",
-		    doc="SAM or BAM file(s) with alignment data from the first read of a pair.",
-		    mutex={"ALIGNED_BAM"},
-		    optional=true)
-    public List<File> READ1_ALIGNED_BAM ;
-
-    @Option(shortName="R2_ALIGNED",
-		    doc="SAM or BAM file(s) with alignment data from the second read of a pair.",
-		    mutex={"ALIGNED_BAM"},
-		    optional=true)
-    public List<File> READ2_ALIGNED_BAM;
-
-    @Option(shortName=StandardOptionDefinitions.OUTPUT_SHORT_NAME,
-		    doc="Merged SAM or BAM file to write to.")
-    public File OUTPUT;
-
-    @Option(shortName=StandardOptionDefinitions.REFERENCE_SHORT_NAME,
-		    doc="Path to the fasta file for the reference sequence.")
-    public File REFERENCE_SEQUENCE;
-
-    @Option(shortName=StandardOptionDefinitions.PROGRAM_RECORD_ID_SHORT_NAME,
-            doc="The program group ID of the aligner (if not supplied by the aligned file).",
-            optional=true)
-    public String PROGRAM_RECORD_ID;
-
-    @Option(shortName="PG_VERSION",
-		    doc="The version of the program group (if not supplied by the aligned file).",
-		    optional=true)
-    public String PROGRAM_GROUP_VERSION;
-
-    @Option(shortName="PG_COMMAND",
-		    doc="The command line of the program group (if not supplied by the aligned file).",
-		    optional=true)
-    public String PROGRAM_GROUP_COMMAND_LINE;
-
-    @Option(shortName="PG_NAME",
-		    doc="The name of the program group (if not supplied by the aligned file).",
-		    optional=true)
-    public String PROGRAM_GROUP_NAME;
-
-    @Deprecated
-    @Option(doc="This argument is ignored and will be removed.", shortName="PE")
-    public Boolean PAIRED_RUN;
-
-    @Option(doc="The expected jump size (required if this is a jumping library). Deprecated. Use EXPECTED_ORIENTATIONS instead",
-		    shortName="JUMP",
-		    mutex="EXPECTED_ORIENTATIONS",
-            optional=true)
-    public Integer JUMP_SIZE;
-
-    @Option(doc="Whether to clip adapters where identified.")
-    public boolean CLIP_ADAPTERS = true;
-
-    @Option(doc="Whether the lane is bisulfite sequence (used when caculating the NM tag).")
-    public boolean IS_BISULFITE_SEQUENCE = false;
-
-    @Option(doc="Whether to output only aligned reads.  ")
-    public boolean ALIGNED_READS_ONLY = false;
-
-    @Option(doc="The maximum number of insertions or deletions permitted for an alignment to be " +
-            "included. Alignments with more than this many insertions or deletions will be ignored. " +
-            "Set to -1 to allow any number of insertions or deletions.",
-            shortName="MAX_GAPS")
-    public int MAX_INSERTIONS_OR_DELETIONS = 1;
-
-    @Option(doc="Reserved alignment attributes (tags starting with X, Y, or Z) that should be " +
-            "brought over from the alignment data when merging.")
-    public List<String> ATTRIBUTES_TO_RETAIN = new ArrayList<String>();
-
-    @Option(doc="Attributes from the alignment record that should be removed when merging." +
-            "  This overrides ATTRIBUTES_TO_RETAIN if they share common tags.")
-    public List<String> ATTRIBUTES_TO_REMOVE = new ArrayList<String>();
-
-    @Option(shortName="R1_TRIM",
-		    doc="The number of bases trimmed from the beginning of read 1 prior to alignment")
-    public int READ1_TRIM = 0;
-
-    @Option(shortName="R2_TRIM",
-		    doc="The number of bases trimmed from the beginning of read 2 prior to alignment")
-    public int READ2_TRIM = 0;
-
-    @Option(shortName="ORIENTATIONS",
-		    doc="The expected orientation of proper read pairs. Replaces JUMP_SIZE",
-            mutex = "JUMP_SIZE",
-		    optional=true)
-    public List<SamPairUtil.PairOrientation> EXPECTED_ORIENTATIONS;
-
-    @Option(doc="Use the aligner's idea of what a proper pair is rather than computing in this program.")
-    public boolean ALIGNER_PROPER_PAIR_FLAGS = false;
-
-    @Option(shortName=StandardOptionDefinitions.SORT_ORDER_SHORT_NAME,
-            doc="The order in which the merged reads should be output.")
-    public SortOrder SORT_ORDER = SortOrder.coordinate;
-
-    @Option(doc="Strategy for selecting primary alignment when the aligner has provided more than one alignment " +
-    "for a pair or fragment, and none are marked as primary, more than one is marked as primary, or the primary " +
-    "alignment is filtered out for some reason. " +
-     "BestMapq expects that multiple alignments will be correlated with HI tag, and prefers the pair of " +
-     "alignments with the largest MAPQ, in the absence of a primary selected by the aligner. " +
-    "EarliestFragment prefers the alignment which maps the earliest base in the read. Note that EarliestFragment " +
-     "may not be used for paired reads. " +
-    "BestEndMapq is appropriate for cases in which the aligner is not pair-aware, and does not output the HI tag. " +
-    "It simply picks the alignment for each end with the highest MAPQ, and makes those alignments primary, regardless " +
-    "of whether the two alignments make sense together." +
-    "MostDistant is also for a non-pair-aware aligner, and picks the alignment pair with the largest insert size. " +
-    "If all alignments would be chimeric, it picks the alignments for each end with the best MAPQ.  For all algorithms, " +
-    "ties are resolved arbitrarily.")
-    public PrimaryAlignmentStrategy PRIMARY_ALIGNMENT_STRATEGY = PrimaryAlignmentStrategy.BestMapq;
-
-    @Option(doc="For paired reads, soft clip the 3' end of each read if necessary so that it does not extend past the 5' end of its mate.")
-    public boolean CLIP_OVERLAPPING_READS = true;
-
-    @Option(doc="If false, do not write secondary alignments to output.")
-    public boolean INCLUDE_SECONDARY_ALIGNMENTS = true;
-
-    @Option(shortName="MC", optional=true, doc="Adds the mate CIGAR tag (MC) if true, does not if false.")
-    public Boolean ADD_MATE_CIGAR = true;
-
-    private static final Log log = Log.getInstance(MergeBamAlignment.class);
-
-    /**
-     * Mechanism to bridge between command line option and PrimaryAlignmentSelectionStrategy implementation.
-     */
-    enum PrimaryAlignmentStrategy {
-        BestMapq(BestMapqPrimaryAlignmentSelectionStrategy.class),
-        EarliestFragment(EarliestFragmentPrimaryAlignmentSelectionStrategy.class),
-        BestEndMapq(BestEndMapqPrimaryAlignmentStrategy.class),
-        MostDistant(MostDistantPrimaryAlignmentSelectionStrategy.class);
-
-        private final Class<PrimaryAlignmentSelectionStrategy> clazz;
-
-        PrimaryAlignmentStrategy(final Class<?> clazz) {
-            this.clazz = (Class<PrimaryAlignmentSelectionStrategy>)clazz;
-        }
-
-        PrimaryAlignmentSelectionStrategy newInstance() {
-            try {
-                return clazz.newInstance();
-            } catch (Exception e) {
-                throw new PicardException("Trouble instantiating " + clazz.getName(), e);
-            }
-        }
-    }
-
-    /** Required main method implementation. */
-    public static void main(final String[] argv) {
-        System.exit(new MergeBamAlignment().instanceMain(argv));
-    }
-
-    @Override
-    protected int doWork() {
-        // Check the files are readable/writable
-        SAMProgramRecord prod = null;
-        if (PROGRAM_RECORD_ID != null) {
-            prod = new SAMProgramRecord(PROGRAM_RECORD_ID);
-            prod.setProgramVersion(PROGRAM_GROUP_VERSION);
-            prod.setCommandLine(PROGRAM_GROUP_COMMAND_LINE);
-            prod.setProgramName(PROGRAM_GROUP_NAME);
-        }
-        // TEMPORARY FIX until internal programs all specify EXPECTED_ORIENTATIONS
-        if (JUMP_SIZE != null) {
-            EXPECTED_ORIENTATIONS = Arrays.asList(SamPairUtil.PairOrientation.RF);
-        }
-        else if (EXPECTED_ORIENTATIONS == null || EXPECTED_ORIENTATIONS.isEmpty()) {
-            EXPECTED_ORIENTATIONS = Arrays.asList(SamPairUtil.PairOrientation.FR);
-        }
-
-        final SamAlignmentMerger merger = new SamAlignmentMerger(UNMAPPED_BAM, OUTPUT,
-            REFERENCE_SEQUENCE, prod, CLIP_ADAPTERS, IS_BISULFITE_SEQUENCE,
-                ALIGNED_READS_ONLY, ALIGNED_BAM, MAX_INSERTIONS_OR_DELETIONS,
-            ATTRIBUTES_TO_RETAIN, ATTRIBUTES_TO_REMOVE, READ1_TRIM, READ2_TRIM,
-            READ1_ALIGNED_BAM, READ2_ALIGNED_BAM, EXPECTED_ORIENTATIONS, SORT_ORDER,
-            PRIMARY_ALIGNMENT_STRATEGY.newInstance(), ADD_MATE_CIGAR);
-        merger.setClipOverlappingReads(CLIP_OVERLAPPING_READS);
-        merger.setMaxRecordsInRam(MAX_RECORDS_IN_RAM);
-        merger.setKeepAlignerProperPairFlags(ALIGNER_PROPER_PAIR_FLAGS);
-        merger.setIncludeSecondaryAlignments(INCLUDE_SECONDARY_ALIGNMENTS);
-        merger.mergeAlignment();
-        merger.close();
-
-        return 0;
-    }
-
-    /**
-     * Put any custom command-line validation in an override of this method.
-     * clp is initialized at this point and can be used to print usage and access argv.
-     * 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 messages to be written to the appropriate place.
-     */
-    protected String[] customCommandLineValidation() {
-
-        if ((PROGRAM_RECORD_ID != null || PROGRAM_GROUP_VERSION != null ||
-             PROGRAM_GROUP_COMMAND_LINE != null) &&
-            (PROGRAM_RECORD_ID == null || PROGRAM_GROUP_VERSION == null ||
-             PROGRAM_GROUP_COMMAND_LINE == null)) {
-
-            return new String[] {"PROGRAM_RECORD_ID, PROGRAM_GROUP_VERSION, and " +
-                    "PROGRAM_GROUP_COMMAND_LINE must all be supplied or none should " +
-                    "be included."};
-        }
-
-        final boolean r1sExist = READ1_ALIGNED_BAM != null && READ1_ALIGNED_BAM.size() > 0;
-        final boolean r2sExist = READ2_ALIGNED_BAM != null && READ2_ALIGNED_BAM.size() > 0;
-        if ((r1sExist && !r2sExist) || (r2sExist && !r1sExist)) {
-            return new String[] {"READ1_ALIGNED_BAM and READ2_ALIGNED_BAM " +
-                    "must both be supplied or neither should be included.  For " +
-                    "single-end read use ALIGNED_BAM."};
-        }
-        if (ALIGNED_BAM == null || ALIGNED_BAM.size() == 0 && !(r1sExist && r2sExist)) {
-            return new String[] {"Either ALIGNED_BAM or the combination of " +
-                    "READ1_ALIGNED_BAM and READ2_ALIGNED_BAM must be supplied."};
-
-        }
-
-        return null;
-    }
-
-}
diff --git a/src/java/net/sf/picard/sam/MergeSamFiles.java b/src/java/net/sf/picard/sam/MergeSamFiles.java
deleted file mode 100644
index f17b3f4..0000000
--- a/src/java/net/sf/picard/sam/MergeSamFiles.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.sam;
-
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.StandardOptionDefinitions;
-import net.sf.picard.cmdline.Usage;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.util.Log;
-import net.sf.picard.util.ProgressLogger;
-import net.sf.samtools.*;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Reads a SAM or BAM file and combines the output to one file
- *
- * @author Tim Fennell
- */
-public class MergeSamFiles extends CommandLineProgram {
-    private static final Log log = Log.getInstance(MergeSamFiles.class);
-
-    // Usage and parameters
-    @Usage
-    public String USAGE = "Merges multiple SAM/BAM files into one file.\n";
-
-    @Option(shortName="I", doc="SAM or BAM input file", minElements=1)
-    public List<File> INPUT = new ArrayList<File>();
-
-    @Option(shortName="O", doc="SAM or BAM file to write merged result to")
-    public File OUTPUT;
-
-    @Option(shortName=StandardOptionDefinitions.SORT_ORDER_SHORT_NAME, doc="Sort order of output file", optional=true)
-    public SAMFileHeader.SortOrder SORT_ORDER = SAMFileHeader.SortOrder.coordinate;
-
-    @Option(doc="If true, assume that the input files are in the same sort order as the requested output sort order, even if their headers say otherwise.",
-    shortName = StandardOptionDefinitions.ASSUME_SORTED_SHORT_NAME)
-    public boolean ASSUME_SORTED = false;
-
-    @Option(shortName="MSD", doc="Merge the sequence dictionaries", optional=true)
-    public boolean MERGE_SEQUENCE_DICTIONARIES = false;
-
-    @Option(doc="Option to create a background thread to encode, " +
-            "compress and write to disk the output file. The threaded version uses about 20% more CPU and decreases " +
-            "runtime by ~20% when writing out a compressed BAM file.")
-    public boolean USE_THREADING = false;
-
-    @Option(doc="Comment(s) to include in the merged output file's header.", optional=true, shortName="CO")
-    public List<String> COMMENT = new ArrayList<String>();
-
-    private static final int PROGRESS_INTERVAL = 1000000;
-
-    /** Required main method implementation. */
-    public static void main(final String[] argv) {
-        System.exit(new MergeSamFiles().instanceMain(argv));
-    }
-
-    /** Combines multiple SAM/BAM files into one. */
-    @Override
-	protected int doWork() {
-        boolean matchedSortOrders = true;
-
-        // Open the files for reading and writing
-        final List<SAMFileReader> readers = new ArrayList<SAMFileReader>();
-        final List<SAMFileHeader> headers = new ArrayList<SAMFileHeader>();
-        {
-            SAMSequenceDictionary dict = null; // Used to try and reduce redundant SDs in memory
-
-            for (final File inFile : INPUT) {
-                IoUtil.assertFileIsReadable(inFile);
-                final SAMFileReader in = new SAMFileReader(inFile);
-                readers.add(in);
-                headers.add(in.getFileHeader());
-
-                // A slightly hackish attempt to keep memory consumption down when merging multiple files with
-                // large sequence dictionaries (10,000s of sequences). If the dictionaries are identical, then
-                // replace the duplicate copies with a single dictionary to reduce the memory footprint. 
-                if (dict == null) {
-                    dict = in.getFileHeader().getSequenceDictionary();
-                }
-                else if (dict.equals(in.getFileHeader().getSequenceDictionary())) {
-                    in.getFileHeader().setSequenceDictionary(dict);
-                }
-
-                matchedSortOrders = matchedSortOrders && in.getFileHeader().getSortOrder() == SORT_ORDER;
-            }
-        }
-
-        // If all the input sort orders match the output sort order then just merge them and
-        // write on the fly, otherwise setup to merge and sort before writing out the final file
-        IoUtil.assertFileIsWritable(OUTPUT);
-        final boolean presorted;
-        final SAMFileHeader.SortOrder headerMergerSortOrder;
-        final boolean mergingSamRecordIteratorAssumeSorted;
-
-        if (matchedSortOrders || SORT_ORDER == SAMFileHeader.SortOrder.unsorted || ASSUME_SORTED) {
-            log.info("Input files are in same order as output so sorting to temp directory is not needed.");
-            headerMergerSortOrder = SORT_ORDER;
-            mergingSamRecordIteratorAssumeSorted = ASSUME_SORTED;
-            presorted = true;
-        }
-        else {
-            log.info("Sorting input files using temp directory " + TMP_DIR);
-            headerMergerSortOrder = SAMFileHeader.SortOrder.unsorted;
-            mergingSamRecordIteratorAssumeSorted = false;
-            presorted = false;
-        }
-        final SamFileHeaderMerger headerMerger = new SamFileHeaderMerger(headerMergerSortOrder, headers, MERGE_SEQUENCE_DICTIONARIES);
-        final MergingSamRecordIterator iterator = new MergingSamRecordIterator(headerMerger, readers, mergingSamRecordIteratorAssumeSorted);
-        final SAMFileHeader header = headerMerger.getMergedHeader();
-        for (final String comment : COMMENT) {
-            header.addComment(comment);
-        }
-        header.setSortOrder(SORT_ORDER);
-        final SAMFileWriterFactory samFileWriterFactory = new SAMFileWriterFactory();
-        if (USE_THREADING) {
-            samFileWriterFactory.setUseAsyncIo(true);
-        }
-        final SAMFileWriter out = samFileWriterFactory.makeSAMOrBAMWriter(header, presorted, OUTPUT);
-
-        // Lastly loop through and write out the records
-        final ProgressLogger progress = new ProgressLogger(log, PROGRESS_INTERVAL);
-        while (iterator.hasNext()) {
-            final SAMRecord record = iterator.next();
-            out.addAlignment(record);
-            progress.record(record);
-        }
-
-        log.info("Finished reading inputs.");
-        out.close();
-        return 0;
-    }
-
-    @Override
-    protected String[] customCommandLineValidation() {
-        if (CREATE_INDEX && SORT_ORDER != SAMFileHeader.SortOrder.coordinate) {
-            return new String[]{"Can't CREATE_INDEX unless SORT_ORDER is coordinate"};
-        }
-        return null;
-    }
-
-}
diff --git a/src/java/net/sf/picard/sam/MergingSamRecordIterator.java b/src/java/net/sf/picard/sam/MergingSamRecordIterator.java
deleted file mode 100644
index 359b706..0000000
--- a/src/java/net/sf/picard/sam/MergingSamRecordIterator.java
+++ /dev/null
@@ -1,245 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.sam;
-
-import net.sf.picard.PicardException;
-
-import java.util.*;
-import java.lang.reflect.Constructor;
-
-import net.sf.samtools.*;
-import net.sf.samtools.util.CloseableIterator;
-
-/**
- * Provides an iterator interface for merging multiple underlying iterators into a single
- * iterable stream. The underlying iterators/files must all have the same sort order unless
- * the requested output format is unsorted, in which case any combination is valid.
- */
-public class MergingSamRecordIterator implements CloseableIterator<SAMRecord> {
-    private final PriorityQueue<ComparableSamRecordIterator> pq;
-    private final SamFileHeaderMerger samHeaderMerger;
-    private final Collection<SAMFileReader> readers;
-    private final SAMFileHeader.SortOrder sortOrder;
-    private final SAMRecordComparator comparator;
-
-    private boolean initialized = false;
-
-    /**
-     * Constructs a new merging iterator with the same set of readers and sort order as
-     * provided by the header merger parameter.
-     * @param headerMerger The merged header and contents of readers.
-     * @param forcePresorted True to ensure that the iterator checks the headers of the readers for appropriate sort order.
-     * @deprecated replaced by (SamFileHeaderMerger, Collection<SAMFileReader>, boolean)
-     */
-    public MergingSamRecordIterator(final SamFileHeaderMerger headerMerger, final boolean forcePresorted) {
-        this(headerMerger, headerMerger.getReaders(), forcePresorted);
-    }
-
-    /**
-     * Constructs a new merging iterator with the same set of readers and sort order as
-     * provided by the header merger parameter.
-     * @param headerMerger The merged header and contents of readers.
-     * @param assumeSorted false ensures that the iterator checks the headers of the readers for appropriate sort order.
-     */
-    public MergingSamRecordIterator(final SamFileHeaderMerger headerMerger, Collection<SAMFileReader> readers, final boolean assumeSorted) {
-        this.samHeaderMerger = headerMerger;
-        this.sortOrder = headerMerger.getMergedHeader().getSortOrder();
-        this.comparator = getComparator();
-        this.readers = readers;
-
-        this.pq = new PriorityQueue<ComparableSamRecordIterator>(readers.size());
-
-        for (final SAMFileReader reader : readers) {
-            if(!samHeaderMerger.getHeaders().contains(reader.getFileHeader()))
-                throw new PicardException("All iterators to be merged must be accounted for in the SAM header merger");
-            if (!assumeSorted && this.sortOrder != SAMFileHeader.SortOrder.unsorted &&
-                    reader.getFileHeader().getSortOrder() != this.sortOrder){
-                throw new PicardException("Files are not compatible with sort order");
-            }
-        }
-    }
-
-    /**
-     * Add a set of SAM file iterators to the merging iterator.  Use this to restrict the merged iteration to a given genomic interval,
-     * rather than iterating over every read in the backing file or stream.
-     * @param headerMerger The merged header and contents of readers.
-     * @param iterators Iterator traversing over reader contents.
-     */
-    public MergingSamRecordIterator(final SamFileHeaderMerger headerMerger, final Map<SAMFileReader,CloseableIterator<SAMRecord>> iterators, final boolean assumeSorted) {
-        this(headerMerger,iterators.keySet(),assumeSorted);
-        for (final Map.Entry<SAMFileReader,CloseableIterator<SAMRecord>> mapping : iterators.entrySet())
-            addIfNotEmpty(new ComparableSamRecordIterator(mapping.getKey(),mapping.getValue(),comparator));
-        initialized = true;
-    }
-
-    private void startIterationIfRequired() {
-        if(initialized)
-            return;
-        for(final SAMFileReader reader: readers)
-            addIfNotEmpty(new ComparableSamRecordIterator(reader,reader.iterator(),comparator));
-        initialized = true;
-    }
-
-    /**
-     * Close down all open iterators.
-     */
-    public void close() {
-        // Iterators not in the priority queue have already been closed; only close down the iterators that are still in the priority queue.
-        for(CloseableIterator<SAMRecord> iterator: pq)
-            iterator.close();
-    }
-
-    /** Returns true if any of the underlying iterators has more records, otherwise false. */
-    public boolean hasNext() {
-        startIterationIfRequired();
-        return !this.pq.isEmpty();
-    }
-
-    /** Returns the next record from the top most iterator during merging. */
-    public SAMRecord next() {
-        startIterationIfRequired();
-        
-        final ComparableSamRecordIterator iterator = this.pq.poll();
-        final SAMRecord record = iterator.next();
-        addIfNotEmpty(iterator);
-        record.setHeader(this.samHeaderMerger.getMergedHeader());
-
-        // Fix the read group if needs be
-        if (this.samHeaderMerger.hasReadGroupCollisions()) {
-            final String oldGroupId = (String) record.getAttribute(ReservedTagConstants.READ_GROUP_ID);
-            if (oldGroupId != null ) {
-                final String newGroupId = this.samHeaderMerger.getReadGroupId(iterator.getReader().getFileHeader(),oldGroupId);
-                record.setAttribute(ReservedTagConstants.READ_GROUP_ID, newGroupId); 
-                }
-        }
-
-        // Fix the program group if needs be
-        if (this.samHeaderMerger.hasProgramGroupCollisions()) { 
-            final String oldGroupId = (String) record.getAttribute(ReservedTagConstants.PROGRAM_GROUP_ID);
-            if (oldGroupId != null ) {
-                final String newGroupId = this.samHeaderMerger.getProgramGroupId(iterator.getReader().getFileHeader(),oldGroupId);
-                record.setAttribute(ReservedTagConstants.PROGRAM_GROUP_ID, newGroupId); 
-                }
-        }
-
-        // Fix up the sequence indexes if needs be
-        if (this.samHeaderMerger.hasMergedSequenceDictionary()) {
-            if (record.getReferenceIndex() != SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX) {
-                record.setReferenceIndex(this.samHeaderMerger.getMergedSequenceIndex(iterator.getReader().getFileHeader(),record.getReferenceIndex()));
-            }
-
-            if (record.getReadPairedFlag() && record.getMateReferenceIndex() != SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX) {
-                record.setMateReferenceIndex(this.samHeaderMerger.getMergedSequenceIndex(iterator.getReader().getFileHeader(),record.getMateReferenceIndex()));
-            }
-        }
-
-        return record;
-    }
-
-    /**
-     * Adds iterator to priority queue. If the iterator has more records it is added
-     * otherwise it is closed and not added.
-     */
-    private void addIfNotEmpty(final ComparableSamRecordIterator iterator) {
-        if (iterator.hasNext()) {
-            pq.offer(iterator);
-        }
-        else {
-            iterator.close();
-        }
-    }
-
-    /** Unsupported operation. */
-    public void remove() {
-        throw new UnsupportedOperationException("MergingSAMRecorderIterator.remove()");
-    }
-
-    /**
-     * Get the right comparator for a given sort order (coordinate, alphabetic). In the
-     * case of "unsorted" it will return a comparator that gives an arbitrary but reflexive
-     * ordering.
-     */
-    private SAMRecordComparator getComparator() {
-        // For unsorted build a fake comparator that compares based on object ID
-        if (this.sortOrder == SAMFileHeader.SortOrder.unsorted) {
-            return new SAMRecordComparator() {
-                public int fileOrderCompare(final SAMRecord lhs, final SAMRecord rhs) {
-                    return System.identityHashCode(lhs) - System.identityHashCode(rhs);
-                }
-
-                public int compare(final SAMRecord lhs, final SAMRecord rhs) {
-                    return fileOrderCompare(lhs, rhs);
-                }
-            };
-        }
-        if (samHeaderMerger.hasMergedSequenceDictionary() && sortOrder.equals(SAMFileHeader.SortOrder.coordinate)) {
-            return new MergedSequenceDictionaryCoordinateOrderComparator();
-        }
-
-        // Otherwise try and figure out what kind of comparator to return and build it
-        return this.sortOrder.getComparatorInstance();
-    }
-
-    /** Returns the merged header that the merging iterator is working from. */
-    public SAMFileHeader getMergedHeader() {
-        return this.samHeaderMerger.getMergedHeader();
-    }
-
-    /**
-     * Ugh.  Basically does a regular coordinate compare, but looks up the sequence indices in the merged
-     * sequence dictionary.  I hate the fact that this extends SAMRecordCoordinateComparator, but it avoids
-     * more copy & paste.
-     */
-    private class MergedSequenceDictionaryCoordinateOrderComparator extends SAMRecordCoordinateComparator {
-
-        public int fileOrderCompare(final SAMRecord samRecord1, final SAMRecord samRecord2) {
-            final int referenceIndex1 = getReferenceIndex(samRecord1);
-            final int referenceIndex2 = getReferenceIndex(samRecord2);
-            if (referenceIndex1 != referenceIndex2) {
-                if (referenceIndex1 == SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX) {
-                    return 1;
-                } else if (referenceIndex2 == SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX) {
-                    return -1;
-                } else {
-                    return referenceIndex1 - referenceIndex2;
-                }
-            }
-            if (referenceIndex1 == SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX) {
-                // Both are unmapped.
-                return 0;
-            }
-            return samRecord1.getAlignmentStart() - samRecord2.getAlignmentStart();
-        }
-
-        private int getReferenceIndex(final SAMRecord samRecord) {
-            if (samRecord.getReferenceIndex() != SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX) {
-                return samHeaderMerger.getMergedSequenceIndex(samRecord.getHeader(), samRecord.getReferenceIndex());
-            }
-            if (samRecord.getMateReferenceIndex() != SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX) {
-                return samHeaderMerger.getMergedSequenceIndex(samRecord.getHeader(), samRecord.getMateReferenceIndex());
-            }
-            return SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX;
-        }
-    }
-}
diff --git a/src/java/net/sf/picard/sam/MostDistantPrimaryAlignmentSelectionStrategy.java b/src/java/net/sf/picard/sam/MostDistantPrimaryAlignmentSelectionStrategy.java
deleted file mode 100644
index 2641939..0000000
--- a/src/java/net/sf/picard/sam/MostDistantPrimaryAlignmentSelectionStrategy.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.sam;
-
-import net.sf.samtools.util.CollectionUtil;
-import net.sf.samtools.SAMRecord;
-import net.sf.samtools.SAMUtils;
-import net.sf.samtools.util.CoordMath;
-
-import java.util.*;
-
-/**
- * For a paired-end aligner that aligns each end independently, select the pair of alignments that result
- * in the largest insert size.  If such a pair of alignments cannot be found, either because one end is not aligned,
- * or because all alignment pairs are chimeric, then select the best MAPQ for each end independently.
- *
- * The primary alignments are then correlated so that their mate info points to each
- * other, but all non-primary alignments are uncorrelated.
- */
-public class MostDistantPrimaryAlignmentSelectionStrategy implements PrimaryAlignmentSelectionStrategy {
-    // Give random number generator a seed so results are repeatable.  Used to pick a primary alignment from
-    // multiple alignments with equal mapping quality.
-    private final Random random = new Random(1);
-
-    @Override
-    public void pickPrimaryAlignment(final HitsForInsert hitsForInsert) {
-        final BestEndAlignmentsAccumulator firstEndBest = new BestEndAlignmentsAccumulator();
-        final BestEndAlignmentsAccumulator secondEndBest = new BestEndAlignmentsAccumulator();
-        final CollectionUtil.MultiMap<Integer, SAMRecord> firstEndBySequence =
-                new CollectionUtil.MultiMap<Integer, SAMRecord>();
-        final BestPairAlignmentsAccumulator pairBest = new BestPairAlignmentsAccumulator();
-
-        for (final SAMRecord rec : hitsForInsert.firstOfPairOrFragment) {
-            if (rec.getReadUnmappedFlag()) throw new IllegalStateException();
-            firstEndBest.considerBest(rec);
-            firstEndBySequence.append(rec.getReferenceIndex(), rec);
-        }
-
-        for (final SAMRecord secondEnd: hitsForInsert.secondOfPair) {
-            if (secondEnd.getReadUnmappedFlag()) throw new IllegalStateException();
-            secondEndBest.considerBest(secondEnd);
-            final Collection<SAMRecord> firstEnds = firstEndBySequence.get(secondEnd.getReferenceIndex());
-            if (firstEnds != null) {
-                for (final SAMRecord firstEnd : firstEnds) {
-                    pairBest.considerBest(firstEnd, secondEnd);
-                }
-            }
-        }
-
-        final SAMRecord bestFirstEnd;
-        final SAMRecord bestSecondEnd;
-        if (pairBest.hasBest()) {
-            final Map.Entry<SAMRecord, SAMRecord> pairEntry = pickRandomlyFromList(pairBest.bestAlignmentPairs);
-            bestFirstEnd = pairEntry.getKey();
-            bestSecondEnd = pairEntry.getValue();
-        } else {
-            if (firstEndBest.hasBest()) {
-                bestFirstEnd = pickRandomlyFromList(firstEndBest.bestAlignments);
-            } else {
-                bestFirstEnd = null;
-            }
-            if (secondEndBest.hasBest()) {
-                bestSecondEnd = pickRandomlyFromList(secondEndBest.bestAlignments);
-            } else {
-                bestSecondEnd = null;
-            }
-        }
-
-        if (hitsForInsert.firstOfPairOrFragment.isEmpty() != (bestFirstEnd == null)) {
-            throw new IllegalStateException("Should not happen");
-        }
-        if (hitsForInsert.secondOfPair.isEmpty() != (bestSecondEnd == null)) {
-            throw new IllegalStateException("Should not happen");
-        }
-        if (bestFirstEnd != null) {
-            moveToHead(hitsForInsert.firstOfPairOrFragment, bestFirstEnd);
-        }
-        if (bestSecondEnd != null) {
-            moveToHead(hitsForInsert.secondOfPair, bestSecondEnd);
-        }
-        hitsForInsert.setPrimaryAlignment(0);
-
-        // For non-primary alignments, de-correlate them so that the mate fields don't point at some
-        // arbitrary alignment for the other end.
-
-        // No non-primary alignments for one of the ends so nothing to do.
-        if (hitsForInsert.firstOfPairOrFragment.size() <= 1 || hitsForInsert.secondOfPair.size() <= 1) return;
-        final int amountToSlide = hitsForInsert.firstOfPairOrFragment.size() - 1;
-        for (int i = 0; i < amountToSlide; ++i) {
-            hitsForInsert.secondOfPair.add(1, null);
-        }
-
-
-    }
-
-    private <T> T pickRandomlyFromList(final List<T> list) {
-        return list.get(random.nextInt(list.size()));
-    }
-
-    // Uses reference equality, not .equals()
-    private void moveToHead(final List<SAMRecord> list, final SAMRecord rec) {
-        if (list.get(0) == rec) return;
-        for (int i = 1; i < list.size(); ++i) {
-            if (list.get(i) == rec) {
-                list.remove(i);
-                list.add(0, rec);
-                return;
-            }
-        }
-        throw new IllegalStateException("Should not be reached");
-    }
-
-    private static class BestEndAlignmentsAccumulator {
-        public int bestMapq = -1;
-        public List<SAMRecord> bestAlignments = new ArrayList<SAMRecord>();
-
-        public void considerBest(final SAMRecord rec) {
-            if (bestMapq == -1) {
-                bestMapq = rec.getMappingQuality();
-                bestAlignments.add(rec);
-            } else {
-                final int cmp = SAMUtils.compareMapqs(bestMapq, rec.getMappingQuality());
-                if (cmp < 0) {
-                    bestMapq = rec.getMappingQuality();
-                    bestAlignments.clear();
-                    bestAlignments.add(rec);
-                } else if (cmp == 0) {
-                    bestAlignments.add(rec);
-                }
-            }
-        }
-
-        public boolean hasBest() {
-            return bestMapq != -1;
-        }
-    }
-
-    private static class BestPairAlignmentsAccumulator {
-        public int bestDistance = -1;
-        public int bestPairMapq = -1;
-        public List<Map.Entry<SAMRecord, SAMRecord>> bestAlignmentPairs =
-                new ArrayList<Map.Entry<SAMRecord, SAMRecord>>();
-
-        public void considerBest(final SAMRecord firstEnd, final SAMRecord secondEnd) {
-            final int thisPairMapq = SAMUtils.combineMapqs(firstEnd.getMappingQuality(), secondEnd.getMappingQuality());
-            final int thisDistance = CoordMath.getLength(Math.min(firstEnd.getAlignmentStart(), secondEnd.getAlignmentStart()),
-                    Math.max(firstEnd.getAlignmentEnd(), secondEnd.getAlignmentEnd()));
-            if (thisDistance > bestDistance || (thisDistance == bestDistance && thisPairMapq > bestPairMapq)) {
-                bestDistance = thisDistance;
-                bestPairMapq = thisPairMapq;
-                bestAlignmentPairs.clear();
-                bestAlignmentPairs.add(new AbstractMap.SimpleEntry<SAMRecord, SAMRecord>(firstEnd, secondEnd));
-            } else if (thisDistance == bestDistance && thisPairMapq == bestPairMapq) {
-                bestAlignmentPairs.add(new AbstractMap.SimpleEntry<SAMRecord, SAMRecord>(firstEnd, secondEnd));
-            }
-        }
-
-        public boolean hasBest() {
-            return bestDistance != -1;
-        }
-    }
-}
diff --git a/src/java/net/sf/picard/sam/MultiHitAlignedReadIterator.java b/src/java/net/sf/picard/sam/MultiHitAlignedReadIterator.java
deleted file mode 100644
index f7fa051..0000000
--- a/src/java/net/sf/picard/sam/MultiHitAlignedReadIterator.java
+++ /dev/null
@@ -1,209 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.sam;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.filter.FilteringIterator;
-import net.sf.picard.filter.SamRecordFilter;
-import net.sf.picard.util.Log;
-import net.sf.picard.util.PeekableIterator;
-import net.sf.samtools.*;
-import net.sf.samtools.util.CloseableIterator;
-
-import java.util.*;
-
-import static net.sf.picard.sam.HitsForInsert.NumPrimaryAlignmentState;
-
-
-/**
- * Iterate over queryname-sorted SAM, and return each group of reads with the same queryname.  Unmapped reads
- * are filtered out, as are alignments that don't seem to match any part of the reference.
- * If there are multiple hits for the same read, and the first and second ends need to be correlated,
- * then they are sorted by hit index. Supplemental alignments are discarded, with a logged message.
- * A set of hits for a single query may then be filtered with a caller-supplied filter, which will remove any
- * alignments that do not pass the filter.  If the primary alignment is removed, the best-mapping secondary alignment
- * or alignment pair will be marked as primary.
- *
- *
- * @throws IllegalStateException if the input is not queryname-sorted.
- */
-class MultiHitAlignedReadIterator implements CloseableIterator<HitsForInsert> {
-    private final PeekableIterator<SAMRecord> peekIterator;
-    private final SAMRecordQueryNameComparator queryNameComparator = new SAMRecordQueryNameComparator();
-    private final PrimaryAlignmentSelectionStrategy primaryAlignmentSelectionStrategy;
-
-    private HitsForInsert theNext = null;
-
-    /**
-     *
-     * @param querynameOrderIterator
-     * @param primaryAlignmentSelectionStrategy Algorithm for selecting primary alignment when it is not clear from
-     *                                          the input what should be primary.
-     */
-    MultiHitAlignedReadIterator(final CloseableIterator<SAMRecord> querynameOrderIterator,
-                                final PrimaryAlignmentSelectionStrategy primaryAlignmentSelectionStrategy) {
-        this.primaryAlignmentSelectionStrategy = primaryAlignmentSelectionStrategy;
-        peekIterator = new PeekableIterator<SAMRecord>(new FilteringIterator(querynameOrderIterator,
-                new SamRecordFilter() {
-                    // Filter unmapped reads.
-                    public boolean filterOut(final SAMRecord record) {
-                        return record.getReadUnmappedFlag() || SAMUtils.cigarMapsNoBasesToRef(record.getCigar());
-                    }
-                    public boolean filterOut(final SAMRecord first, final SAMRecord second) {
-                        return ((first.getReadUnmappedFlag() || SAMUtils.cigarMapsNoBasesToRef(first.getCigar()))
-                                && (second.getReadUnmappedFlag() || SAMUtils.cigarMapsNoBasesToRef(second.getCigar())));
-                    }
-                }));
-
-
-        advance();
-    }
-
-    public void close() {
-        peekIterator.close();
-    }
-
-    public boolean hasNext() {
-        return theNext != null;
-    }
-
-    /**
-     * @throws IllegalStateException if the input is not queryname-sorted.
-     */
-    public HitsForInsert next() {
-        if (!hasNext()) throw new NoSuchElementException();
-        final HitsForInsert ret = theNext;
-        advance();
-        return ret;
-    }
-
-    private void advance() {
-        while (peekIterator.hasNext()) {
-            theNext = nextMaybeEmpty();
-            if (theNext.numHits() > 0) return;
-        }
-        theNext = null;
-    }
-
-    private HitsForInsert nextMaybeEmpty() {
-        if (!peekIterator.hasNext()) throw new IllegalStateException();
-        final String readName = peekIterator.peek().getReadName();
-        final HitsForInsert hits = new HitsForInsert();
-
-        Boolean isPaired = null;
-
-        // Accumulate the alignments matching readName.
-        do {
-            final SAMRecord rec = peekIterator.next();
-            replaceHardWithSoftClips(rec);
-            // It is critical to do this here, because SamAlignmentMerger uses this exception to determine
-            // if the aligned input needs to be sorted.
-            if (peekIterator.hasNext() && queryNameComparator.fileOrderCompare(rec, peekIterator.peek()) > 0) {
-                throw new IllegalStateException("Underlying iterator is not queryname sorted: " +
-                rec + " > " + peekIterator.peek());
-            }
-
-            if (isPaired == null) {
-                isPaired = rec.getReadPairedFlag();
-            } else if (isPaired != rec.getReadPairedFlag()) {
-                throw new PicardException("Got a mix of paired and unpaired alignments for read " + readName);
-            }
-
-            // Records w/ a supplemental flag are stashed to the side until the primary alignment has
-            // been determined, and then re-added into the process later
-            if (!rec.getReadPairedFlag() || rec.getFirstOfPairFlag()) {
-                if (rec.getSupplementaryAlignmentFlag()) {
-                    hits.addSupplementalFirstOfPairOrFragment(rec);
-                } else {
-                    hits.addFirstOfPairOrFragment(rec);
-                }
-            } else if (rec.getSecondOfPairFlag()) {
-                if (rec.getSupplementaryAlignmentFlag()) {
-                    hits.addSupplementalSecondOfPair(rec);
-                } else {
-                    hits.addSecondOfPair(rec);
-                }
-            } else throw new PicardException("Read is marked as pair but neither first or second: " + readName);
-        } while (peekIterator.hasNext() && peekIterator.peek().getReadName().equals(readName));
-
-        // If there is no more than one alignment for each end, no need to do any coordination.
-        if (hits.numHits() <= 1) {
-            // No HI tags needed if only a single hit
-            if (hits.getFirstOfPair(0) != null) {
-                hits.getFirstOfPair(0).setAttribute(SAMTag.HI.name(), null);
-                hits.getFirstOfPair(0).setNotPrimaryAlignmentFlag(false);
-            }
-            if (hits.getSecondOfPair(0) != null) {
-                hits.getSecondOfPair(0).setAttribute(SAMTag.HI.name(), null);
-                hits.getSecondOfPair(0).setNotPrimaryAlignmentFlag(false);
-            }
-        } else {
-            primaryAlignmentSelectionStrategy.pickPrimaryAlignment(hits);
-        }
-
-        // Used to check that alignments for first and second were correlated, but this is no longer required.
-        return hits;
-    }
-
-    /** Replaces hard clips with soft clips and fills in bases and qualities with dummy values as needed. */
-    private void replaceHardWithSoftClips(final SAMRecord rec) {
-        if (rec.getReadUnmappedFlag()) return;
-        if (rec.getCigar().isEmpty()) return;
-
-        List<CigarElement> elements = rec.getCigar().getCigarElements();
-        final CigarElement first = elements.get(0);
-        final CigarElement last  = elements.size() == 1 ? null : elements.get(elements.size()-1);
-        final int startHardClip = first.getOperator() == CigarOperator.H ? first.getLength() : 0;
-        final int endHardClip   = (last != null && last.getOperator() == CigarOperator.H) ? last.getLength() : 0;
-
-        if (startHardClip + endHardClip > 0) {
-            final int len = rec.getReadBases().length + startHardClip + endHardClip;
-
-            // Fix the basecalls
-            final byte[] bases = new byte[len];
-            Arrays.fill(bases, (byte) 'N');
-            System.arraycopy(rec.getReadBases(), 0, bases, startHardClip, rec.getReadBases().length);
-
-            // Fix the quality scores
-            final byte[] quals = new byte[len];
-            Arrays.fill(quals, (byte) 2  );
-            System.arraycopy(rec.getBaseQualities(), 0, quals, startHardClip, rec.getBaseQualities().length);
-
-            // Fix the cigar!
-            elements = new ArrayList<CigarElement>(elements); // make it modifiable
-            if (startHardClip > 0) elements.set(0, new CigarElement(first.getLength(), CigarOperator.S));
-            if (endHardClip   > 0) elements.set(elements.size()-1, new CigarElement(last.getLength(), CigarOperator.S));
-
-            // Set the update structures on the new record
-            rec.setReadBases(bases);
-            rec.setBaseQualities(quals);
-            rec.setCigar(new Cigar(elements));
-        }
-   }
-
-    /** Unsupported operation. */
-    public void remove() {
-        throw new UnsupportedOperationException();
-    }
-}
diff --git a/src/java/net/sf/picard/sam/PrimaryAlignmentSelectionStrategy.java b/src/java/net/sf/picard/sam/PrimaryAlignmentSelectionStrategy.java
deleted file mode 100644
index b3a9024..0000000
--- a/src/java/net/sf/picard/sam/PrimaryAlignmentSelectionStrategy.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2012 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.sam;
-
-/**
- * Given a set of alignments for a read or read pair, mark one alignment as primary, according to whatever
- * strategy is appropriate.  Any pre-existing primary designation is ignored, so if the aligner has selected an
- * appropriate primary alignment, this class should not be called.
- */
-public interface PrimaryAlignmentSelectionStrategy {
-    /**
-     * When this method returns, one alignment has been marked as primary according to the implementation's strategy.
-     *
-     */
-    void pickPrimaryAlignment(HitsForInsert hitsForInsert);
-}
diff --git a/src/java/net/sf/picard/sam/RAMReadEndsMap.java b/src/java/net/sf/picard/sam/RAMReadEndsMap.java
deleted file mode 100644
index 1e6d815..0000000
--- a/src/java/net/sf/picard/sam/RAMReadEndsMap.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.sam;
-
-import java.util.List;
-import java.util.Map;
-import java.util.ArrayList;
-import java.util.HashMap;
-
-/**
- * Map from String to ReadEnds object.  RAM-based implementation.
- *
- * @author alecw at broadinstitute.org
- */
-class RAMReadEndsMap implements ReadEndsMap {
-
-    /**
-     * Index of this list is sequence index.  Value is map from String {read group id:read name} to ReadEnds.
-     * When a ReadEnds is put into this container, it is stored according to the sequenceIndex of the mate
-     */
-    private List<Map<String, ReadEnds>> mapPerSequence = new ArrayList<Map<String, ReadEnds>>();
-
-    public ReadEnds remove(int mateSequenceIndex, String key) {
-        if (mateSequenceIndex >= mapPerSequence.size()) {
-            return null;
-        }
-        return mapPerSequence.get(mateSequenceIndex).remove(key);
-    }
-
-    public void put(int mateSequenceIndex, String key, ReadEnds readEnds) {
-        while (mateSequenceIndex >= mapPerSequence.size()) {
-            mapPerSequence.add(new HashMap<String, ReadEnds>());
-        }
-        mapPerSequence.get(mateSequenceIndex).put(key, readEnds);
-    }
-
-    public int size() {
-        int total = 0;
-        for (Map<String, ReadEnds> map : mapPerSequence) {
-            total += map.size();
-        }
-        return total;
-    }
-
-    /**
-     * @return number of elements stored in RAM.  Always <= size()
-     */
-    public int sizeInRam() {
-        return size();
-    }
-}
diff --git a/src/java/net/sf/picard/sam/ReadEnds.java b/src/java/net/sf/picard/sam/ReadEnds.java
deleted file mode 100644
index 48718f0..0000000
--- a/src/java/net/sf/picard/sam/ReadEnds.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.sam;
-
-/** Little struct-like class to hold read pair (and fragment) end data for MarkDuplicates. */
-class ReadEnds implements MarkDuplicates.PhysicalLocation {
-    public static final int SIZE_OF = (1*1) + (2*1) + (4*4) + (8*2) + 2 + 1 + 2 + 2 
-            + 8 + // last 8 == reference overhead
-            13; // This is determined experimentally with JProfiler
-
-    public static final byte F=0, R=1, FF=2, FR=3, RR=4, RF=5;
-
-    short libraryId;
-    short score = 0;
-    byte orientation;
-    int read1Sequence     = -1;
-    int read1Coordinate   = -1;
-    long read1IndexInFile = -1;
-    int read2Sequence     = -1;
-    int read2Coordinate   = -1;
-    long read2IndexInFile = -1;
-
-    // Information used to detect optical dupes
-    short readGroup = -1;
-    short tile = -1;
-    short x = -1, y = -1;
-
-
-    boolean isPaired() { return this.read2Sequence != -1; }
-
-    public short getReadGroup() { return this.readGroup; }
-    public void setReadGroup(short readGroup) { this.readGroup = readGroup; }
-
-    public short getTile() { return this.tile; }
-    public void setTile(short tile) { this.tile = tile; }
-
-    public short getX() { return this.x; }
-    public void setX(short x) { this.x = x; }
-
-    public short getY() { return this.y; }
-    public void setY(short y) { this.y = y; }
-}
diff --git a/src/java/net/sf/picard/sam/ReadEndsCodec.java b/src/java/net/sf/picard/sam/ReadEndsCodec.java
deleted file mode 100644
index a3931fc..0000000
--- a/src/java/net/sf/picard/sam/ReadEndsCodec.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.sam;
-
-import net.sf.samtools.util.SortingCollection;
-import net.sf.picard.PicardException;
-
-import java.io.*;
-
-/** Coded for ReadEnds that just outputs the primitive fields and reads them back. */
-class ReadEndsCodec implements SortingCollection.Codec<ReadEnds> {
-    private DataInputStream in;
-    private DataOutputStream out;
-
-    public SortingCollection.Codec<ReadEnds> clone() {
-        return new ReadEndsCodec();
-    }
-
-    public void setOutputStream(final OutputStream os) { this.out = new DataOutputStream(os); }
-    public void setInputStream(final InputStream is) { this.in = new DataInputStream(is); }
-
-    public DataInputStream getInputStream() {
-        return in;
-    }
-
-    public DataOutputStream getOutputStream() {
-        return out;
-    }
-
-    public void encode(final ReadEnds read) {
-        try {
-            this.out.writeShort(read.score);
-            this.out.writeShort(read.libraryId);
-            this.out.writeByte(read.orientation);
-            this.out.writeInt(read.read1Sequence);
-            this.out.writeInt(read.read1Coordinate);
-            this.out.writeLong(read.read1IndexInFile);
-            this.out.writeInt(read.read2Sequence);
-
-            if (read.orientation > ReadEnds.R) {
-                this.out.writeInt(read.read2Coordinate);
-                this.out.writeLong(read.read2IndexInFile);
-            }
-
-            this.out.writeShort(read.readGroup);
-            this.out.writeShort(read.tile);
-            this.out.writeShort(read.x);
-            this.out.writeShort(read.y);
-        }
-        catch (IOException ioe) {
-            throw new PicardException("Exception writing ReadEnds to file.", ioe);
-        }
-    }
-
-    public ReadEnds decode() {
-        final ReadEnds read = new ReadEnds();
-        try {
-            // If the first read results in an EOF we've exhausted the stream
-            try { read.score = this.in.readShort(); }
-            catch (EOFException eof) { return null; }
-
-            read.libraryId        = this.in.readShort();
-            read.orientation      = this.in.readByte();
-            read.read1Sequence    = this.in.readInt();
-            read.read1Coordinate  = this.in.readInt();
-            read.read1IndexInFile = this.in.readLong();
-            read.read2Sequence    = this.in.readInt();
-
-            if (read.orientation > ReadEnds.R) {
-                read.read2Coordinate  = this.in.readInt();
-                read.read2IndexInFile = this.in.readLong();
-            }
-
-            read.readGroup = this.in.readShort();
-            read.tile      = this.in.readShort();
-            read.x         = this.in.readShort();
-            read.y         = this.in.readShort();
-
-            return read;
-        }
-        catch (IOException ioe) {
-            throw new PicardException("Exception writing ReadEnds to file.", ioe);
-        }
-    }
-}
diff --git a/src/java/net/sf/picard/sam/ReadEndsMap.java b/src/java/net/sf/picard/sam/ReadEndsMap.java
deleted file mode 100644
index 68e3296..0000000
--- a/src/java/net/sf/picard/sam/ReadEndsMap.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.sam;
-
-/**
- * Interface for storing and retrieving ReadEnds objects.  An implementation may be disk-based to
- * reduce memory footprint.
- */
-public interface ReadEndsMap {
-    /**
-     * Remove element with given key from the map.  Because an implementation may be disk-based,
-     * the object returned may not be the same object that was put into the map
-     * @param mateSequenceIndex must agree with the value used when the object was put into the map
-     * @param key typically, concatenation of read group ID and read name
-     * @return null if the key is not found, otherwise the object removed.
-     */
-    ReadEnds remove(int mateSequenceIndex, String key);
-
-    /**
-     * Store the element in the map with the given key.  It is assumed that the element
-     * is not already present in the map.
-     * @param mateSequenceIndex use to optimize storage & retrieval.  The same value must be used when trying
-     * to remove this element.  It is not valid to store the same key with two different mateSequenceIndexes.
-     * @param key typically, concatenation of read group ID and read name
-     * @param readEnds the object to be stored
-     */
-    void put(int mateSequenceIndex, String key, ReadEnds readEnds);
-
-    /**
-     * @return number of elements stored in map
-     */
-    int size();
-
-    /**
-     * @return number of elements stored in RAM.  Always <= size()
-     */
-    int sizeInRam();
-}
diff --git a/src/java/net/sf/picard/sam/ReorderSam.java b/src/java/net/sf/picard/sam/ReorderSam.java
deleted file mode 100644
index 1847f09..0000000
--- a/src/java/net/sf/picard/sam/ReorderSam.java
+++ /dev/null
@@ -1,233 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.sam;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.StandardOptionDefinitions;
-import net.sf.picard.cmdline.Usage;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.reference.ReferenceSequenceFile;
-import net.sf.picard.reference.ReferenceSequenceFileFactory;
-import net.sf.picard.util.Log;
-import net.sf.samtools.*;
-
-import java.io.File;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * Reorders a SAM/BAM input file according to the order of contigs in a second reference sequence
- *
- * @author mdepristo
- */
-public class ReorderSam extends CommandLineProgram {
-    @Usage(programVersion="1.0")
-    public String USAGE = "Not to be confused with SortSam which sorts a SAM or BAM file with a valid sequence dictionary, " +
-                          "ReorderSam reorders reads in a SAM/BAM file to match the contig ordering in a provided reference file, " +
-                          "as determined by exact name matching of contigs.  Reads mapped to contigs absent in the new " +
-                          "reference are dropped. Runs substantially faster if the input is an indexed BAM file.";
-
-    @Option(shortName=StandardOptionDefinitions.INPUT_SHORT_NAME, doc="Input file (bam or sam) to extract reads from.")
-    public File INPUT;
-
-    @Option(shortName=StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc="Output file (bam or sam) to write extracted reads to.")
-    public File OUTPUT;
-
-    @Option(shortName=StandardOptionDefinitions.REFERENCE_SHORT_NAME, doc="Reference sequence to reorder reads to match.  " +
-            "A sequence dictionary corresponding to the reference fasta is required.  Create one with CreateSequenceDictionary.jar.")
-    public File REFERENCE;
-
-    @Option(shortName="S", doc="If true, then allows only a partial overlap of the BAM contigs with the new reference " +
-                               "sequence contigs.  By default, this tool requires a corresponding contig in the new " +
-                               "reference for each read contig")
-    public boolean ALLOW_INCOMPLETE_DICT_CONCORDANCE = false;
-
-    @Option(shortName="U", doc="If true, then permits mapping from a read contig to a new reference contig with the " +
-                               "same name but a different length.  Highly dangerous, only use if you know what you " +
-                               "are doing.")
-    public boolean ALLOW_CONTIG_LENGTH_DISCORDANCE = false;
-
-    private final Log log = Log.getInstance(ReorderSam.class);
-
-    /** Required main method implementation. */
-    public static void main(final String[] argv) {
-        new ReorderSam().instanceMainWithExit(argv);
-    }
-
-    protected int doWork() {
-        IoUtil.assertFileIsReadable(INPUT);
-        IoUtil.assertFileIsReadable(REFERENCE);
-        IoUtil.assertFileIsWritable(OUTPUT);
-
-        final SAMFileReader in = new SAMFileReader(INPUT);
-
-        ReferenceSequenceFile reference = ReferenceSequenceFileFactory.getReferenceSequenceFile(REFERENCE);
-        SAMSequenceDictionary refDict = reference.getSequenceDictionary();
-
-        if (refDict == null) {
-        	log.error("No reference sequence dictionary found. Aborting.  You can create a sequence dictionary for the reference fasta using CreateSequenceDictionary.jar.");
-        	in.close();
-        	return 1;
-        }
-
-        printDictionary("SAM/BAM file", in.getFileHeader().getSequenceDictionary());
-        printDictionary("Reference", refDict);
-        Map<Integer, Integer> newOrder = buildSequenceDictionaryMap(refDict, in.getFileHeader().getSequenceDictionary());
-
-        // has to be after we create the newOrder
-        SAMFileHeader outHeader = in.getFileHeader().clone();
-        outHeader.setSequenceDictionary(refDict);
-
-        log.info("Writing reads...");
-        if (in.hasIndex()) {
-            final SAMFileWriter out = new SAMFileWriterFactory().makeSAMOrBAMWriter(outHeader, true, OUTPUT);
-
-            // write the reads in contig order
-            for (final SAMSequenceRecord contig : refDict.getSequences() ) {
-                final SAMRecordIterator it = in.query(contig.getSequenceName(), 0, 0, false);
-                writeReads(out, it, newOrder, contig.getSequenceName());
-            }
-            // don't forget the unmapped reads
-            writeReads( out, in.queryUnmapped(), newOrder, "unmapped" );
-            out.close();
-        }
-        else {
-            SAMFileWriter out = new SAMFileWriterFactory().makeSAMOrBAMWriter(outHeader, false, OUTPUT);
-            writeReads(out, in.iterator(), newOrder, "All reads");
-            out.close();
-        }
-
-        // cleanup
-        in.close();
-        return 0;
-    }
-
-    /**
-     * Low-level helper function that returns the new reference index for oldIndex according to the
-     * ordering map newOrder.  Read is provided in case an error occurs, so that an informative message
-     * can be made.
-     */
-    private int newOrderIndex(SAMRecord read, int oldIndex, Map<Integer, Integer> newOrder) {
-        if ( oldIndex == -1 )
-            return -1; // unmapped read
-        else {
-            final Integer n = newOrder.get(oldIndex);
-
-            if (n == null) throw new PicardException("BUG: no mapping found for read " + read.format());
-            else return n;
-        }
-    }
-
-    /**
-     * Helper function that writes reads from iterator it into writer out, updating each SAMRecord along the way
-     * according to the newOrder mapping from dictionary index -> index.  Name is used for printing only.
-     */
-    private void writeReads(final SAMFileWriter out,
-                                   final SAMRecordIterator it,
-                                   final Map<Integer, Integer> newOrder,
-                                   final String name) {
-        long counter = 0;
-        log.info("  Processing " + name);
-
-        while ( it.hasNext() ) {
-            counter++;
-            final SAMRecord read = it.next();
-            final int oldRefIndex = read.getReferenceIndex();
-            final int oldMateIndex = read.getMateReferenceIndex();
-            final int newRefIndex = newOrderIndex(read, oldRefIndex, newOrder);
-
-            read.setHeader(out.getFileHeader());
-            read.setReferenceIndex(newRefIndex);
-
-            final int newMateIndex = newOrderIndex(read, oldMateIndex, newOrder);
-            if ( oldMateIndex != -1 && newMateIndex == -1 ) { // becoming unmapped
-                read.setMateAlignmentStart(0);
-                read.setMateUnmappedFlag(true);
-                read.setAttribute(SAMTag.MC.name(), null);      // Set the Mate Cigar String to null
-            }
-            read.setMateReferenceIndex(newMateIndex);
-
-            out.addAlignment(read);
-        }
-
-        it.close();
-        log.info("Wrote " + counter + " reads");
-    }
-
-    /**
-     * Constructs a mapping from read sequence records index -> new sequence dictionary index for use in
-     * reordering the reference index and mate reference index in each read.  -1 means unmapped.
-     */
-    private Map<Integer, Integer> buildSequenceDictionaryMap(final SAMSequenceDictionary refDict,
-                                                             final SAMSequenceDictionary readsDict) {
-        Map<Integer, Integer> newOrder = new HashMap<Integer, Integer>();
-
-        log.info("Reordering SAM/BAM file:");
-        for (final SAMSequenceRecord refRec : refDict.getSequences() ) {
-            final SAMSequenceRecord readsRec = readsDict.getSequence(refRec.getSequenceName());
-
-            if (readsRec != null) {
-                if ( refRec.getSequenceLength() != readsRec.getSequenceLength() ) {
-                    String msg = String.format("Discordant contig lengths: read %s LN=%d, ref %s LN=%d",
-                            readsRec.getSequenceName(), readsRec.getSequenceLength(),
-                            refRec.getSequenceName(), refRec.getSequenceLength());
-                    if ( ALLOW_CONTIG_LENGTH_DISCORDANCE ) {
-                        log.warn(msg);
-                    }
-                    else {
-                        throw new PicardException(msg);
-                    }
-                }
-
-                log.info(String.format("  Reordering read contig %s [index=%d] to => ref contig %s [index=%d]%n",
-                                       readsRec.getSequenceName(), readsRec.getSequenceIndex(),
-                                       refRec.getSequenceName(), refRec.getSequenceIndex()  ));
-                newOrder.put(readsRec.getSequenceIndex(), refRec.getSequenceIndex());
-            }
-        }
-
-        for ( SAMSequenceRecord readsRec : readsDict.getSequences() ) {
-            if ( ! newOrder.containsKey(readsRec.getSequenceIndex()) ) {
-                if ( ALLOW_INCOMPLETE_DICT_CONCORDANCE )
-                    newOrder.put(readsRec.getSequenceIndex(), -1);
-                else
-                    throw new PicardException("New reference sequence does not contain a matching contig for " + readsRec.getSequenceName());
-            }
-        }
-
-        return newOrder;
-    }
-
-    /**
-     * Helper function to print out a sequence dictionary
-     */
-    private void printDictionary(String name, SAMSequenceDictionary dict) {
-        log.info(name);
-        for (final SAMSequenceRecord contig : dict.getSequences()) {
-            log.info( "  SN=%s LN=%d%n", contig.getSequenceName(), contig.getSequenceLength());
-        }
-    }
-}
diff --git a/src/java/net/sf/picard/sam/ReplaceSamHeader.java b/src/java/net/sf/picard/sam/ReplaceSamHeader.java
deleted file mode 100644
index a69f537..0000000
--- a/src/java/net/sf/picard/sam/ReplaceSamHeader.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.sam;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.StandardOptionDefinitions;
-import net.sf.picard.cmdline.Usage;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.util.Log;
-import net.sf.picard.util.ProgressLogger;
-import net.sf.samtools.*;
-
-import java.io.File;
-
-/**
- * @author alecw at broadinstitute.org
- */
-public class ReplaceSamHeader extends CommandLineProgram {
-    @Usage
-    public String USAGE = getStandardUsagePreamble() + "Replace the SAMFileHeader in a SAM file with the given header. " +
-            "Validation is minimal.  It is up to the user to ensure that all the elements referred to in the SAMRecords " +
-            "are present in the new header.  Sort order of the two input files must be the same.";
-
-    @Option(doc="SAM file from which SAMRecords will be read.", shortName = StandardOptionDefinitions.INPUT_SHORT_NAME)
-    public File INPUT;
-
-    @Option(doc="SAM file from which SAMFileHeader will be read.")
-    public File HEADER;
-
-    @Option(doc="SAMFileHeader from HEADER file will be written to this file, followed by SAMRecords from INPUT file",
-            shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME)
-    public File OUTPUT;
-
-    public static void main(final String[] argv) {
-        new ReplaceSamHeader().instanceMainWithExit(argv);
-    }
-
-    /**
-     * Do the work after command line has been parsed.
-     * RuntimeException may be thrown by this method, and are reported appropriately.
-     *
-     * @return program exit status.
-     */
-    @Override
-    protected int doWork() {
-        IoUtil.assertFileIsReadable(INPUT);
-        IoUtil.assertFileIsReadable(HEADER);
-        IoUtil.assertFileIsWritable(OUTPUT);
-
-        final SAMFileReader headerReader = new SAMFileReader(HEADER);
-        final SAMFileHeader replacementHeader = headerReader.getFileHeader();
-        headerReader.close();
-
-        final SAMFileReader.ValidationStringency originalStringency = SAMFileReader.getDefaultValidationStringency();
-        SAMFileReader.setDefaultValidationStringency(SAMFileReader.ValidationStringency.SILENT);
-
-        try {
-            if (BamFileIoUtils.isBamFile(INPUT)) {
-                blockCopyReheader(replacementHeader);
-            } else {
-                standardReheader(replacementHeader);
-            }
-        } finally {
-            SAMFileReader.setDefaultValidationStringency(originalStringency);
-        }
-
-        return 0;
-    }
-
-    private void standardReheader(final SAMFileHeader replacementHeader) {
-        final SAMFileReader recordReader = new SAMFileReader(INPUT);
-        if (replacementHeader.getSortOrder() != recordReader.getFileHeader().getSortOrder()) {
-            throw new PicardException("Sort orders of INPUT (" + recordReader.getFileHeader().getSortOrder().name() +
-            ") and HEADER (" + replacementHeader.getSortOrder().name() + ") do not agree.");
-        }
-        final SAMFileWriter writer = new SAMFileWriterFactory().makeSAMOrBAMWriter(replacementHeader, true, OUTPUT);
-
-        final ProgressLogger progress = new ProgressLogger(Log.getInstance(ReplaceSamHeader.class));
-        for (final SAMRecord rec : recordReader) {
-            rec.setHeader(replacementHeader);
-            writer.addAlignment(rec);
-            progress.record(rec);
-        }
-        writer.close();
-        recordReader.close();
-    }
-
-    private void blockCopyReheader(final SAMFileHeader replacementHeader) {
-        BamFileIoUtils.reheaderBamFile(replacementHeader, INPUT, OUTPUT, CREATE_MD5_FILE, CREATE_INDEX);
-    }
-}
diff --git a/src/java/net/sf/picard/sam/ReservedTagConstants.java b/src/java/net/sf/picard/sam/ReservedTagConstants.java
deleted file mode 100644
index bce920a..0000000
--- a/src/java/net/sf/picard/sam/ReservedTagConstants.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.sam;
-
-import net.sf.samtools.SAMTag;
-
-/**
- * Constants for tags used in our SAM/BAM files
- */
-public class ReservedTagConstants {
-    public static final String READ_GROUP_ID = SAMTag.RG.name(); // Specified in the SAM spec doc
-    public static final String PROGRAM_GROUP_ID =  SAMTag.PG.name(); // Specified in the SAM spec doc
-
-    /** Present and set to 1 if a read is a noise read. */
-    public static final String XN = "XN";
-
-    /** Number of nucleotide differences (Specified in the SAM spec doc) */
-    public static final String NM = SAMTag.NM.name();
-
-    /** The sum of the mismatched qualities. */
-    public static final String XQ = "XQ";
-
-    /**
-     * The name of an attribute which stores the 1-based index of the start of
-     * sequence within a read (in original orientation) that should be clipped
-     * or trimmed before alignment and downstream use.
-     * The region to be clipped extends from this position to the end of the read.
-     */
-    public static final String XT = "XT";
-
-    /** The original sequence before 454 cafie and homopolymer correction */
-    public static final String XS = "XS";
-
-    /** The Four54 edit string of 454 cafie and homopolymer corrections
-     * <pre>
-     *   editString ::= {base operator position [- position]}* ;  // Cafie needs 2 positions
-     *   base ::= A | T | G | C | N ;   // N only for undercall
-     *   operator ::= o | u | c ;       // o = Overcall, u = Undercall, c = Cafie.
-     *   position is 0 based position of the correction (assuming forward strand) .  Cafie positions are to-from.
-     *   For example: XF :Z:Gc4-6Nu11Co15 means a cafie correction moved a G from position 6 to 4,
-     *   an N was inserted for an undercall at position 11, and a C was removed as an overcall at position 15
-     */
-    public static final String XF = "XF";
-
-    /** The original pred quality scores before modifications such as 454 cafie and homopolymer correction */
-    public static final String OQ = SAMTag.OQ.name();
-
-    /** The original cigar before indel cleaning, or 454 cafie and homopolymer correction */
-    public static final String OC = "OC";
-
-}
diff --git a/src/java/net/sf/picard/sam/RevertOriginalBaseQualitiesAndAddMateCigar.java b/src/java/net/sf/picard/sam/RevertOriginalBaseQualitiesAndAddMateCigar.java
deleted file mode 100644
index d90f623..0000000
--- a/src/java/net/sf/picard/sam/RevertOriginalBaseQualitiesAndAddMateCigar.java
+++ /dev/null
@@ -1,244 +0,0 @@
-package net.sf.picard.sam;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.StandardOptionDefinitions;
-import net.sf.picard.cmdline.Usage;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.util.Log;
-import net.sf.picard.util.PeekableIterator;
-import net.sf.picard.util.ProgressLogger;
-import net.sf.samtools.BAMRecordCodec;
-import net.sf.samtools.SAMFileHeader;
-import net.sf.samtools.SAMFileReader;
-import net.sf.samtools.SAMFileWriter;
-import net.sf.samtools.SAMFileWriterFactory;
-import net.sf.samtools.SAMRecord;
-import net.sf.samtools.SAMRecordQueryNameComparator;
-import net.sf.samtools.SAMUtils;
-import net.sf.samtools.SamPairUtil;
-import net.sf.samtools.SamPairUtil;
-import net.sf.samtools.util.CloserUtil;
-import net.sf.samtools.util.SortingCollection;
-
-import java.io.File;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-/**
- * This tool reverts the original base qualities (if specified) and adds the mate cigar tag to mapped BAMs.
- * If the file does not have OQs and already has mate cigar tags, nothing is done.
- * New BAM/BAI/MD5 files are created.
- * @author Nils Homer
- */
-public class RevertOriginalBaseQualitiesAndAddMateCigar extends CommandLineProgram {
-
-    @Usage
-    public String USAGE = getStandardUsagePreamble() +
-            "Reverts the original base qualities and adds the mate cigar tag to read-group BAMs.";
-
-    @Option(shortName= StandardOptionDefinitions.INPUT_SHORT_NAME, doc="The input SAM/BAM file to revert the state of.")
-    public File INPUT;
-
-    @Option(shortName=StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc="The output SAM/BAM file to create.")
-    public File OUTPUT;
-
-     @Option(shortName="SO", doc="The sort order to create the reverted output file with."
-            + "By default, the sort order will be the same as the input.", optional = true)
-    public SAMFileHeader.SortOrder SORT_ORDER = null;
-
-    @Option(shortName=StandardOptionDefinitions.USE_ORIGINAL_QUALITIES_SHORT_NAME, doc="True to restore original" +
-            " qualities from the OQ field to the QUAL field if available.")
-    public boolean RESTORE_ORIGINAL_QUALITIES = true;
-
-    @Option(doc="The maximum number of records to examine to determine if we can exit early and not output, given that"
-            + " there are a no original base qualities (if we are to restore) and mate cigars exist."
-            + " Set to 0 to never skip the file.")
-    public int MAX_RECORDS_TO_EXAMINE = 10000;
-
-    private final static Log log = Log.getInstance(RevertOriginalBaseQualitiesAndAddMateCigar.class);
-
-    public RevertOriginalBaseQualitiesAndAddMateCigar() {
-        this.CREATE_INDEX = true;
-        this.CREATE_MD5_FILE = true;
-    }
-
-    /** Default main method impl. */
-    public static void main(final String[] args) {
-        new RevertOriginalBaseQualitiesAndAddMateCigar().instanceMainWithExit(args);
-    }
-
-    public int doWork() {
-        IoUtil.assertFileIsReadable(INPUT);
-        IoUtil.assertFileIsWritable(OUTPUT);
-
-        boolean foundPairedMappedReads = false;
-
-        // Check if we can skip this file since it does not have OQ tags and the mate cigar tag is already there.
-        final CanSkipSamFile skipSamFile = RevertOriginalBaseQualitiesAndAddMateCigar.canSkipSAMFile(INPUT, MAX_RECORDS_TO_EXAMINE, RESTORE_ORIGINAL_QUALITIES);
-        log.info(skipSamFile.getMessage(MAX_RECORDS_TO_EXAMINE));
-        if (skipSamFile.canSkip()) return 0;
-
-        final SAMFileReader in = new SAMFileReader(INPUT, true);
-        final SAMFileHeader inHeader = in.getFileHeader();
-
-        // Build the output writer based on the correct sort order
-        final SAMFileHeader outHeader = inHeader.clone();
-        if (null == SORT_ORDER) this.SORT_ORDER = inHeader.getSortOrder(); // same as the input
-        outHeader.setSortOrder(SORT_ORDER);
-        SAMFileWriterFactory.setDefaultCreateIndexWhileWriting(CREATE_INDEX);
-        SAMFileWriterFactory.setDefaultCreateMd5File(CREATE_MD5_FILE);
-        final SAMFileWriter out = new SAMFileWriterFactory().makeSAMOrBAMWriter(outHeader, false, OUTPUT);
-
-        // Iterate over the records, revert original base qualities, and push them into a SortingCollection by queryname
-        final SortingCollection<SAMRecord> sorter = SortingCollection.newInstance(SAMRecord.class, new BAMRecordCodec(outHeader),
-                new SAMRecordQueryNameComparator(), MAX_RECORDS_IN_RAM);
-        final ProgressLogger revertingProgress = new ProgressLogger(log, 1000000, " reverted OQs");
-        int numOriginalQualitiesRestored = 0;
-        for (final SAMRecord record : in) {
-            // Clean up reads that map off the end of the reference
-            AbstractAlignmentMerger.createNewCigarsIfMapsOffEndOfReference(record);
-
-            if (RESTORE_ORIGINAL_QUALITIES && null != record.getOriginalBaseQualities()) {
-                // revert the original base qualities
-                record.setBaseQualities(record.getOriginalBaseQualities());
-                record.setOriginalBaseQualities(null);
-                numOriginalQualitiesRestored++;
-            }
-            if (!foundPairedMappedReads && record.getReadPairedFlag() && !record.getReadUnmappedFlag()) foundPairedMappedReads = true;
-            revertingProgress.record(record);
-            sorter.add(record);
-        }
-        CloserUtil.close(in);
-        log.info("Reverted the original base qualities for " + numOriginalQualitiesRestored + " records");
-
-        /**
-         * Iterator through sorting collection output
-         * 1. Set mate cigar string on primary/non-supplemental records
-         * 2. push record into SAMFileWriter to the output
-         */
-        final PeekableIterator<SAMRecord> sorterIterator = new PeekableIterator<SAMRecord>(sorter.iterator());
-        final ProgressLogger sorterProgress = new ProgressLogger(log, 1000000, " mate cigars added");
-        int numMateCigarsAdded = 0;
-        while (sorterIterator.hasNext()) {
-            final List<SAMRecord> records = new LinkedList<SAMRecord>();
-
-
-            /**
-             * Get all records with the same name, and then identify the canonical first and second end to which we
-             * want to add mate cigars.
-             */
-            SAMRecord firstRecord = null, secondRecord = null;
-            final SAMRecord first = sorterIterator.peek(); // peek so we consider it in the following loop
-            while (sorterIterator.hasNext() && sorterIterator.peek().getReadName().equals(first.getReadName())) {
-                final SAMRecord record = sorterIterator.next();
-                // We must make sure that we find only one "primary" alignments for each end
-                if (record.getReadPairedFlag() && !record.isSecondaryOrSupplementary()) {
-                    if (record.getFirstOfPairFlag()) {
-                        if (null != firstRecord) {
-                            throw new PicardException("Found two records that are paired, not supplementary, and first of the pair");
-                        }
-                        firstRecord = record;
-                    }
-                    else if (record.getSecondOfPairFlag()) {
-                        if (null != secondRecord) {
-                            throw new PicardException("Found two records that are paired, not supplementary, and second of the pair");
-                        }
-                        secondRecord = record;
-                    }
-                }
-                records.add(record);
-            }
-
-            // we must find both records, and then always update the mate cigar
-            if (null != firstRecord && null != secondRecord) {
-                // Update mate info
-                SamPairUtil.setMateInfo(firstRecord, secondRecord, outHeader, true);
-                numMateCigarsAdded+=2;
-            }
-
-            // Add it to the output file
-            for (final SAMRecord record : records) {
-                sorterProgress.record(record);
-                out.addAlignment(record);
-            }
-
-        }
-        sorterIterator.close();
-        CloserUtil.close(out);
-        log.info("Updated " + numMateCigarsAdded + " records with mate cigar");
-        if (!foundPairedMappedReads) log.info("Did not find any paired mapped reads.");
-
-        return 0;
-    }
-
-    /**
-     * Used as a return for the canSkipSAMFile function.
-     */
-    public enum CanSkipSamFile {
-        CAN_SKIP("Can skip the BAM file", true),
-        CANNOT_SKIP_FOUND_OQ("Cannot skip the BAM as we found a record with an OQ", false),
-        CANNOT_SKIP_FOUND_NO_MC("Cannot skip the BAM as we found a mate with no mate cigar tag", false),
-        FOUND_NO_EVIDENCE("Found no evidence of OQ or mate with no mate cigar in the first %d records.  Will continue...", false);
-        private String format;
-        private boolean skip;
-
-        private CanSkipSamFile(String format, boolean skip) {
-            this.format = format;
-            this.skip = skip;
-        }
-
-        public String getMessage(int maxRecordsToExamine) { return String.format(this.format, maxRecordsToExamine); }
-        public boolean canSkip() { return this.skip; }
-    }
-
-    /**
-     * Checks if we can skip the SAM/BAM file when reverting origin base qualities and adding mate cigars.
-     * @param inputFile the SAM/BAM input file
-     * @param maxRecordsToExamine the maximum number of records to examine before quitting
-     * @param revertOriginalBaseQualities true if we are to revert original base qualities, false otherwise
-     * @return whether we can skip or not, and the explanation why.
-     */
-    public static CanSkipSamFile canSkipSAMFile(final File inputFile, final int maxRecordsToExamine, boolean revertOriginalBaseQualities)  {
-        final SAMFileReader in = new SAMFileReader(inputFile, true);
-        final Iterator<SAMRecord> iterator = in.iterator();
-        int numRecordsExamined = 0;
-        CanSkipSamFile returnType = CanSkipSamFile.FOUND_NO_EVIDENCE;
-
-        while (iterator.hasNext() && numRecordsExamined < maxRecordsToExamine) {
-            final SAMRecord record = iterator.next();
-
-            if (revertOriginalBaseQualities && null != record.getOriginalBaseQualities()) {
-                // has OQ, break and return case #2
-                returnType = CanSkipSamFile.CANNOT_SKIP_FOUND_OQ;
-                break;
-            }
-
-            // check if mate pair and its mate is mapped
-            if (record.getReadPairedFlag() && !record.getMateUnmappedFlag()) {
-                if (null == SAMUtils.getMateCigar(record)) {
-                    // has no MC, break and return case #2
-                    returnType = CanSkipSamFile.CANNOT_SKIP_FOUND_NO_MC;
-                    break;
-                }
-                else {
-                    // has MC, previously checked that it does not have OQ, break and return case #1
-                    returnType = CanSkipSamFile.CAN_SKIP;
-                    break;
-                }
-            }
-
-            numRecordsExamined++;
-        }
-
-        // no more records anyhow, so we can skip
-        if (!iterator.hasNext() && CanSkipSamFile.FOUND_NO_EVIDENCE == returnType) {
-            returnType = CanSkipSamFile.CAN_SKIP;
-        }
-
-        in.close();
-
-        return returnType;
-    }
-}
diff --git a/src/java/net/sf/picard/sam/RevertSam.java b/src/java/net/sf/picard/sam/RevertSam.java
deleted file mode 100644
index 73a9ace..0000000
--- a/src/java/net/sf/picard/sam/RevertSam.java
+++ /dev/null
@@ -1,343 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.sam;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.StandardOptionDefinitions;
-import net.sf.picard.cmdline.Usage;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.util.Log;
-import net.sf.picard.util.PeekableIterator;
-import net.sf.picard.util.ProgressLogger;
-import net.sf.samtools.*;
-import net.sf.samtools.SAMFileHeader.SortOrder;
-import net.sf.samtools.util.SortingCollection;
-
-import java.io.File;
-import java.text.DecimalFormat;
-import java.text.NumberFormat;
-import java.util.ArrayList;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * Reverts a SAM file by optionally restoring original quality scores and by removing
- * all alignment information.
- */
-public class RevertSam extends CommandLineProgram {
-    @Usage public String USAGE = getStandardUsagePreamble() +
-            "Reverts SAM or BAM files to a previous state by removing certain types of information and/or " +
-            "substituting in the original quality scores when available.";
-
-    @Option(shortName=StandardOptionDefinitions.INPUT_SHORT_NAME, doc="The input SAM/BAM file to revert the state of.")
-    public File INPUT;
-
-    @Option(shortName=StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc="The output SAM/BAM file to create.")
-    public File OUTPUT;
-
-    @Option(shortName="SO", doc="The sort order to create the reverted output file with.")
-    public SortOrder SORT_ORDER = SortOrder.queryname;
-
-    @Option(shortName=StandardOptionDefinitions.USE_ORIGINAL_QUALITIES_SHORT_NAME, doc="True to restore original qualities from the OQ field to the QUAL field if available.")
-    public boolean RESTORE_ORIGINAL_QUALITIES = true;
-
-    @Option(doc="Remove duplicate read flags from all reads.  Note that if this is true and REMOVE_ALIGNMENT_INFORMATION==false, " +
-            " the output may have the unusual but sometimes desirable trait of having unmapped reads that are marked as duplicates.")
-    public boolean REMOVE_DUPLICATE_INFORMATION = true;
-
-    @Option(doc="Remove all alignment information from the file.")
-    public boolean REMOVE_ALIGNMENT_INFORMATION = true;
-
-    @Option(doc="When removing alignment information, the set of optional tags to remove.")
-    public List<String> ATTRIBUTE_TO_CLEAR = new ArrayList<String>() {{
-        add(SAMTag.NM.name());
-        add(SAMTag.UQ.name());
-        add(SAMTag.PG.name());
-        add(SAMTag.MD.name());
-        add(SAMTag.MQ.name());
-        add(SAMTag.SA.name()); // Supplementary alignment metadata
-        add(SAMTag.MC.name());      // Mate Cigar
-    }};
-
-    @Option(doc="WARNING: This option is potentially destructive. If enabled will discard reads in order to produce " +
-            "a consistent output BAM. Reads discarded include (but are not limited to) paired reads with missing " +
-            "mates, duplicated records, records with mismatches in length of bases and qualities. This option can " +
-            "only be enabled if the output sort order is queryname and will always cause sorting to occur.")
-    public boolean SANITIZE = false;
-
-    @Option(doc="If SANITIZE=true and higher than MAX_DISCARD_FRACTION reads are discarded due to sanitization then" +
-            "the program will exit with an Exception instead of exiting cleanly. Output BAM will still be valid.")
-    public double MAX_DISCARD_FRACTION = 0.01;
-
-    @Option(doc="The sample alias to use in the reverted output file.  This will override the existing " +
-            "sample alias in the file and is used only if all the read groups in the input file have the " +
-            "same sample alias ", shortName=StandardOptionDefinitions.SAMPLE_ALIAS_SHORT_NAME, optional=true)
-    public String SAMPLE_ALIAS;
-
-    @Option(doc="The library name to use in the reverted output file.  This will override the existing " +
-            "sample alias in the file and is used only if all the read groups in the input file have the " +
-            "same sample alias ", shortName=StandardOptionDefinitions.LIBRARY_NAME_SHORT_NAME, optional=true)
-    public String LIBRARY_NAME;
-
-    private final static Log log = Log.getInstance(RevertSam.class);
-
-    /** Default main method impl. */
-    public static void main(final String[] args) {
-        new RevertSam().instanceMainWithExit(args);
-    }
-
-    /**
-     * Enforce that output ordering is queryname when sanitization is turned on since it requires a queryname sort.
-     */
-    @Override protected String[] customCommandLineValidation() {
-        if (SANITIZE && SORT_ORDER != SortOrder.queryname) {
-            return new String[] {"SORT_ORDER must be queryname when sanitization is enabled with SANITIZE=true."};
-        }
-
-        return null;
-    }
-
-    protected int doWork() {
-        IoUtil.assertFileIsReadable(INPUT);
-        IoUtil.assertFileIsWritable(OUTPUT);
-
-        final boolean sanitizing = SANITIZE;
-        final SAMFileReader in = new SAMFileReader(INPUT, true);
-        final SAMFileHeader inHeader = in.getFileHeader();
-
-        // If we are going to override SAMPLE_ALIAS or LIBRARY_NAME, make sure all the read
-        // groups have the same values.
-        final List<SAMReadGroupRecord> rgs = inHeader.getReadGroups();
-        if (SAMPLE_ALIAS != null || LIBRARY_NAME != null) {
-            boolean allSampleAliasesIdentical = true;
-            boolean allLibraryNamesIdentical = true;
-            for (int i = 1; i < rgs.size(); i++) {
-                if (!rgs.get(0).getSample().equals(rgs.get(i).getSample())) {
-                    allSampleAliasesIdentical = false;
-                }
-                if (!rgs.get(0).getLibrary().equals(rgs.get(i).getLibrary())) {
-                    allLibraryNamesIdentical = false;
-                }
-            }
-            if (SAMPLE_ALIAS != null && !allSampleAliasesIdentical) {
-                throw new PicardException("Read groups have multiple values for sample.  " +
-                        "A value for SAMPLE_ALIAS cannot be supplied." );
-            }
-            if (LIBRARY_NAME != null && !allLibraryNamesIdentical) {
-                throw new PicardException("Read groups have multiple values for library name.  " +
-                        "A value for library name cannot be supplied." );
-            }
-        }
-
-        ////////////////////////////////////////////////////////////////////////////
-        // Build the output writer with an appropriate header based on the options
-        ////////////////////////////////////////////////////////////////////////////
-        final boolean presorted = (inHeader.getSortOrder() == SORT_ORDER) || (SORT_ORDER == SortOrder.queryname && SANITIZE);
-        final SAMFileHeader outHeader = new SAMFileHeader();
-        for (final SAMReadGroupRecord rg : inHeader.getReadGroups()) {
-            if (SAMPLE_ALIAS != null) {
-                rg.setSample(SAMPLE_ALIAS);
-            }
-            if (LIBRARY_NAME != null) {
-                rg.setLibrary(LIBRARY_NAME);
-            }
-            outHeader.addReadGroup(rg);
-        }
-        outHeader.setSortOrder(SORT_ORDER);
-        if (!REMOVE_ALIGNMENT_INFORMATION) {
-            outHeader.setSequenceDictionary(inHeader.getSequenceDictionary());
-            outHeader.setProgramRecords(inHeader.getProgramRecords());
-        }
-
-        final SAMFileWriter out = new SAMFileWriterFactory().makeSAMOrBAMWriter(outHeader, presorted, OUTPUT);
-
-
-        ////////////////////////////////////////////////////////////////////////////
-        // Build a sorting collection to use if we are sanitizing
-        ////////////////////////////////////////////////////////////////////////////
-        final SortingCollection<SAMRecord> sorter;
-        if (sanitizing) {
-            sorter = SortingCollection.newInstance(SAMRecord.class, new BAMRecordCodec(outHeader), new SAMRecordQueryNameComparator(), MAX_RECORDS_IN_RAM);
-        }
-        else {
-            sorter = null;
-        }
-
-        final ProgressLogger progress = new ProgressLogger(log, 1000000, "Reverted");
-        for (final SAMRecord rec : in) {
-            // Weed out non-primary and supplemental read as we don't want duplicates in the reverted file!
-            if (rec.isSecondaryOrSupplementary()) continue;
-
-            // Actually to the reverting of the remaining records
-            revertSamRecord(rec);
-
-            if (sanitizing) sorter.add(rec);
-            else out.addAlignment(rec);
-            progress.record(rec);
-        }
-
-        ////////////////////////////////////////////////////////////////////////////
-        // Now if we're sanitizing, clean up the records and write them to the output
-        ////////////////////////////////////////////////////////////////////////////
-        if (!sanitizing) {
-            out.close();
-        }
-        else {
-            long total = 0, discarded = 0;
-            final PeekableIterator<SAMRecord> iterator = new PeekableIterator<SAMRecord>(sorter.iterator());
-            final ProgressLogger sanitizerProgress = new ProgressLogger(log, 1000000, "Sanitized");
-
-            readNameLoop: while (iterator.hasNext()) {
-                final List<SAMRecord> recs = fetchByReadName(iterator);
-                total += recs.size();
-
-                // Check that all the reads have bases and qualities of the same length
-                for (final SAMRecord rec : recs) {
-                    if (rec.getReadBases().length != rec.getBaseQualities().length) {
-                        log.debug("Discarding " + recs.size() + " reads with name " + rec.getReadName() + " for mismatching bases and quals length.");
-                        discarded += recs.size();
-                        continue readNameLoop;
-                    }
-                }
-
-                // Check that if the first read is marked as unpaired that there is in fact only one read
-                if (!recs.get(0).getReadPairedFlag() && recs.size() > 1) {
-                    log.debug("Discarding " + recs.size() + " reads with name " + recs.get(0).getReadName() + " because they claim to be unpaired.");
-                    discarded += recs.size();
-                    continue readNameLoop;
-                }
-
-                // Check that if we have paired reads there is exactly one first of pair and one second of pair
-                if (recs.get(0).getReadPairedFlag()) {
-                    int firsts=0, seconds=0, unpaired=0;
-                    for (final SAMRecord rec : recs) {
-                        if (!rec.getReadPairedFlag())  ++unpaired;
-                        if (rec.getFirstOfPairFlag())  ++firsts;
-                        if (rec.getSecondOfPairFlag()) ++seconds;
-                    }
-
-                    if (unpaired > 0 || firsts != 1 || seconds != 1) {
-                        log.debug("Discarding " + recs.size() + " reads with name " + recs.get(0).getReadName() + " because pairing information in corrupt.");
-                        discarded += recs.size();
-                        continue readNameLoop;
-                    }
-                }
-
-                // If we've made it this far spit the records into the output!
-                for (final SAMRecord rec : recs) {
-                    out.addAlignment(rec);
-                    sanitizerProgress.record(rec);
-                }
-            }
-
-            out.close();
-
-            final double discardRate = discarded / (double) total;
-            final NumberFormat fmt = new DecimalFormat("0.000%");
-            log.info("Discarded " + discarded + " out of " + total + " (" + fmt.format(discardRate) + ") reads in order to sanitize output.");
-
-            if (discarded / (double) total > MAX_DISCARD_FRACTION) {
-                throw new PicardException("Discarded " + fmt.format(discardRate) + " which is above MAX_DISCARD_FRACTION of " + fmt.format(MAX_DISCARD_FRACTION));
-            }
-        }
-
-        return 0;
-    }
-
-    /**
-     * Generates a list by consuming from the iterator in order starting with the first available
-     * read and continuing while subsequent reads share the same read name. If there are no reads
-     * remaining returns an empty list.
-     */
-    private List<SAMRecord> fetchByReadName(final PeekableIterator<SAMRecord> iterator) {
-        final List<SAMRecord> out = new LinkedList<SAMRecord>();
-
-        if (iterator.hasNext()) {
-            final SAMRecord first = iterator.next();
-            out.add(first);
-
-            while (iterator.hasNext() && iterator.peek().getReadName().equals(first.getReadName())) {
-                out.add(iterator.next());
-            }
-        }
-
-        return out;
-    }
-
-    /**
-     * Takes an individual SAMRecord and applies the set of changes/reversions to it that
-     * have been requested by program level options.
-     */
-    public void revertSamRecord(final SAMRecord rec) {
-        if (RESTORE_ORIGINAL_QUALITIES) {
-            final byte[] oq = rec.getOriginalBaseQualities();
-            if (oq != null) {
-                rec.setBaseQualities(oq);
-                rec.setOriginalBaseQualities(null);
-            }
-        }
-
-        if (REMOVE_DUPLICATE_INFORMATION) {
-            rec.setDuplicateReadFlag(false);
-        }
-
-        if (REMOVE_ALIGNMENT_INFORMATION) {
-            if (rec.getReadNegativeStrandFlag()) {
-                SAMRecordUtil.reverseComplement(rec);
-                rec.setReadNegativeStrandFlag(false);
-            }
-
-            // Remove all alignment based information about the read itself
-            rec.setReferenceIndex(SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX);
-            rec.setAlignmentStart(SAMRecord.NO_ALIGNMENT_START);
-            rec.setCigarString(SAMRecord.NO_ALIGNMENT_CIGAR);
-            rec.setMappingQuality(SAMRecord.NO_MAPPING_QUALITY);
-
-            if (!rec.getReadUnmappedFlag()) {
-                rec.setInferredInsertSize(0);
-                rec.setNotPrimaryAlignmentFlag(false);
-                rec.setProperPairFlag(false);
-                rec.setReadUnmappedFlag(true);
-
-            }
-
-            // Then remove any mate flags and info related to alignment
-            if (rec.getReadPairedFlag()) {
-                rec.setMateAlignmentStart(SAMRecord.NO_ALIGNMENT_START);
-                rec.setMateNegativeStrandFlag(false);
-                rec.setMateReferenceIndex(SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX);
-                rec.setMateUnmappedFlag(true);
-            }
-
-            // And then remove any tags that are calculated from the alignment
-            for (final String tag : ATTRIBUTE_TO_CLEAR) {
-                rec.setAttribute(tag, null);
-            }
-        }
-    }
-
-}
diff --git a/src/java/net/sf/picard/sam/SamAlignmentMerger.java b/src/java/net/sf/picard/sam/SamAlignmentMerger.java
deleted file mode 100644
index 42a8e49..0000000
--- a/src/java/net/sf/picard/sam/SamAlignmentMerger.java
+++ /dev/null
@@ -1,353 +0,0 @@
-package net.sf.picard.sam;
-
-import net.sf.samtools.BAMRecordCodec;
-import net.sf.samtools.CigarElement;
-import net.sf.samtools.CigarOperator;
-import net.sf.samtools.SAMFileHeader;
-import net.sf.samtools.SAMRecord;
-import net.sf.samtools.SAMRecordQueryNameComparator;
-import net.sf.samtools.SamPairUtil;
-import net.sf.picard.PicardException;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.util.Log;
-import net.sf.picard.util.PeekableIterator;
-import net.sf.samtools.SAMFileHeader.SortOrder;
-import net.sf.samtools.SAMFileReader;
-import net.sf.samtools.SAMProgramRecord;
-import net.sf.samtools.util.CloseableIterator;
-import net.sf.samtools.util.DelegatingIterator;
-import net.sf.samtools.util.SortingCollection;
-
-import java.io.File;
-import java.util.*;
-
-/**
- * Class that takes in a set of alignment information in SAM format and merges it with the set
- * of all reads for which alignment was attempted, stored in an unmapped SAM file.  This
- * class overrides mergeAlignment in AbstractAlignmentNMerger and proceeds on the assumption that
- * the underlying alignment records are aleady in query-name sorted order (true for bwa).  If
- * they are not, the mergeAlignment method catches the IllegalStateException, forces a sort
- * of the underlying alignment records, and tries again.
- *
- * @author ktibbett at broadinstitute.org
- */
-public class SamAlignmentMerger extends AbstractAlignmentMerger {
-
-    private final Log log = Log.getInstance(SamAlignmentMerger.class);
-    private final List<File> alignedSamFile;
-    private final List<File> read1AlignedSamFile;
-    private final List<File> read2AlignedSamFile;
-    private final int maxGaps;
-    private boolean forceSort = false;
-
-    /**
-     * Constructor
-     *
-     * @param unmappedBamFile   The BAM file that was used as the input to the aligner, which will
-     *                          include info on all the reads that did not map.  Required.
-     * @param targetBamFile     The file to which to write the merged SAM records. Required.
-     * @param referenceFasta    The reference sequence for the map files. Required.
-     * @param programRecord     Program record for taget file SAMRecords created.
-     * @param clipAdapters      Whether adapters marked in unmapped BAM file should be marked as
-*                          soft clipped in the merged bam. Required.
-     * @param bisulfiteSequence Whether the reads are bisulfite sequence (used when calculating the
-*                          NM and UQ tags). Required.
-     * @param alignedReadsOnly  Whether to output only those reads that have alignment data
-     * @param alignedSamFile      The SAM file(s) with alignment information.  Optional.  If this is
-*                            not provided, then read1AlignedSamFile and read2AlignedSamFile must be.
-     * @param maxGaps             The maximum number of insertions or deletions permitted in an
-*                            alignment.  Alignments with more than this many gaps will be ignored.
-*                            -1 means to allow any number of gaps.
-     * @param attributesToRetain  private attributes from the alignment record that should be
-*                          included when merging.  This overrides the exclusion of
-*                          attributes whose tags start with the reserved characters
-*                          of X, Y, and Z
-     * @param attributesToRetain  attributes from the alignment record that should be
-     *                          removed when merging.  This overrides attributesToRetain if they share
-     *                           common tags.
-     * @param read1BasesTrimmed The number of bases trimmed from start of read 1 prior to alignment.  Optional.
-     * @param read2BasesTrimmed The number of bases trimmed from start of read 2 prior to alignment.  Optional.
-     * @param read1AlignedSamFile The alignment records for read1.  Used when the two ends of a read are
-*                            aligned separately.  This is optional, but must be specified if
-*                            alignedSamFile is not.
-     * @param read2AlignedSamFile The alignment records for read1.  Used when the two ends of a read are
-*                            aligned separately.  This is optional, but must be specified if
-*                            alignedSamFile is not.
-     * @param expectedOrientations A List of SamPairUtil.PairOrientations that are expected for
-*                          aligned pairs.  Used to determine the properPair flag.
-     * @param sortOrder           The order in which the merged records should be output.  If null,
-*                            output will be coordinate-sorted
-     * @param primaryAlignmentSelectionStrategy How to handle multiple alignments for a fragment or read pair,
-*                                          in which none are primary, or more than one is marked primary
-     * @param addMateCigar      True if we are to add or maintain the mate CIGAR (MC) tag, false if we are to remove or not include.
-     */
-    public SamAlignmentMerger(final File unmappedBamFile, final File targetBamFile, final File referenceFasta,
-                              final SAMProgramRecord programRecord, final boolean clipAdapters, final boolean bisulfiteSequence,
-                              final boolean alignedReadsOnly,
-                              final List<File> alignedSamFile, final int maxGaps, final List<String> attributesToRetain,
-                              final List<String> attributesToRemove,
-                              final Integer read1BasesTrimmed, final Integer read2BasesTrimmed,
-                              final List<File> read1AlignedSamFile, final List<File> read2AlignedSamFile,
-                              final List<SamPairUtil.PairOrientation> expectedOrientations,
-                              final SortOrder sortOrder,
-                              final PrimaryAlignmentSelectionStrategy primaryAlignmentSelectionStrategy,
-                              final boolean addMateCigar) {
-
-        super(unmappedBamFile, targetBamFile, referenceFasta, clipAdapters, bisulfiteSequence,
-              alignedReadsOnly, programRecord, attributesToRetain, attributesToRemove, read1BasesTrimmed,
-              read2BasesTrimmed, expectedOrientations, sortOrder, primaryAlignmentSelectionStrategy, addMateCigar);
-
-        if ((alignedSamFile == null || alignedSamFile.size() == 0) &&
-            (read1AlignedSamFile == null || read1AlignedSamFile.size() == 0 ||
-             read2AlignedSamFile == null || read2AlignedSamFile.size() == 0)) {
-            throw new IllegalArgumentException("Either alignedSamFile or BOTH of read1AlignedSamFile and " +
-                    "read2AlignedSamFile must be specified.");
-        }
-
-        if (alignedSamFile != null) {
-            for (final File f : alignedSamFile) {
-                IoUtil.assertFileIsReadable(f);
-            }
-        } else {
-            for (final File f : read1AlignedSamFile) {
-                IoUtil.assertFileIsReadable(f);
-            }
-            for (final File f : read2AlignedSamFile) {
-                IoUtil.assertFileIsReadable(f);
-            }
-        }
-
-        this.alignedSamFile = alignedSamFile;
-        this.read1AlignedSamFile = read1AlignedSamFile;
-        this.read2AlignedSamFile = read2AlignedSamFile;
-        this.maxGaps = maxGaps;
-        if (programRecord == null) {
-            final File tmpFile = this.alignedSamFile != null && this.alignedSamFile.size() > 0
-                    ? this.alignedSamFile.get(0)
-                    : this.read1AlignedSamFile.get(0);
-            final SAMFileReader tmpReader = new SAMFileReader(tmpFile);
-            tmpReader.setValidationStringency(SAMFileReader.ValidationStringency.SILENT);
-            if (tmpReader.getFileHeader().getProgramRecords().size() == 1) {
-                setProgramRecord(tmpReader.getFileHeader().getProgramRecords().get(0));
-            }
-            tmpReader.close();
-        }
-        // If not null, the program record was already added in the superclass.  DO NOT RE-ADD!
-
-        if (getProgramRecord() != null) {
-            final SAMFileReader tmp = new SAMFileReader(unmappedBamFile);
-            try {
-                for (final SAMProgramRecord pg : tmp.getFileHeader().getProgramRecords()) {
-                    if (pg.getId().equals(getProgramRecord().getId())) {
-                        throw new PicardException("Program Record ID already in use in unmapped BAM file.");
-                    }
-                }
-            }
-            finally {
-                tmp.close();
-            }
-        }
-        log.info("Processing SAM file(s): " + alignedSamFile != null ? alignedSamFile : read1AlignedSamFile + "," + read2AlignedSamFile);
-    }
-
-
-
-    /**
-     * Merges the alignment from the map file with the non-aligned records from the source BAM file.
-     * Overrides mergeAlignment in AbstractAlignmentMerger.  Tries first to proceed on the assumption
-     * that the alignment records are pre-sorted.  If not, catches the exception, forces a sort, and
-     * tries again.
-     */
-    public void mergeAlignment() {
-        try {
-            super.mergeAlignment();
-        }
-        catch(final IllegalStateException ise) {
-            log.warn("Exception merging bam alignment - attempting to sort aligned reads and try again: ", ise.getMessage());
-            forceSort = true;
-            resetRefSeqFileWalker();
-            super.mergeAlignment();
-        }
-    }
-    /**
-     * Reads the aligned SAM records into a SortingCollection and returns an iterator over that collection
-     */
-    protected CloseableIterator<SAMRecord> getQuerynameSortedAlignedRecords() {
-
-        final CloseableIterator<SAMRecord> mergingIterator;
-        final SAMFileHeader header;
-
-        // When the alignment records, including both ends of a pair, are in SAM files
-        if (alignedSamFile != null && alignedSamFile.size() > 0) {
-            final List<SAMFileHeader> headers = new ArrayList<SAMFileHeader>(alignedSamFile.size());
-            final List<SAMFileReader> readers = new ArrayList<SAMFileReader>(alignedSamFile.size());
-            for (final File f : this.alignedSamFile) {
-                final SAMFileReader r = new SAMFileReader(f);
-                headers.add(r.getFileHeader());
-                readers.add(r);
-            }
-
-            final SamFileHeaderMerger headerMerger = new SamFileHeaderMerger(SortOrder.queryname, headers, false);
-
-            mergingIterator = new MergingSamRecordIterator(headerMerger, readers, true);
-            header = headerMerger.getMergedHeader();
-
-        }
-        // When the ends are aligned separately and don't have firstOfPair information correctly
-        // set we use this branch.
-        else {
-            mergingIterator = new SeparateEndAlignmentIterator(this.read1AlignedSamFile, this.read2AlignedSamFile);
-            header = ((SeparateEndAlignmentIterator)mergingIterator).getHeader();
-        }
-
-
-        if (!forceSort) {
-            return mergingIterator;
-        }
-
-
-        final SortingCollection<SAMRecord> alignmentSorter = SortingCollection.newInstance(SAMRecord.class,
-                    new BAMRecordCodec(header), new SAMRecordQueryNameComparator(), MAX_RECORDS_IN_RAM);
-
-        int count = 0;
-        while (mergingIterator.hasNext()) {
-            alignmentSorter.add(mergingIterator.next());
-            count++;
-            if (count > 0 && count % 1000000 == 0) {
-                log.info("Read " + count + " records from alignment SAM/BAM.");
-            }
-        }
-        log.info("Finished reading " + count + " total records from alignment SAM/BAM.");
-
-        mergingIterator.close();
-        return new DelegatingIterator<SAMRecord>(alignmentSorter.iterator()) {
-            @Override
-            public void close() {
-                super.close();
-                alignmentSorter.cleanup();
-            }
-        };
-    }
-
-    private class SuffixTrimingSamRecordIterator implements CloseableIterator<SAMRecord> {
-        private final CloseableIterator<SAMRecord> underlyingIterator;
-        private final String suffixToTrim;
-
-        private SuffixTrimingSamRecordIterator(final CloseableIterator<SAMRecord> underlyingIterator, final String suffixToTrim) {
-            this.underlyingIterator = underlyingIterator;
-            this.suffixToTrim = suffixToTrim;
-        }
-
-        @Override
-        public void close() {
-            underlyingIterator.close();
-        }
-
-        @Override
-        public boolean hasNext() {
-            return underlyingIterator.hasNext();
-        }
-
-        @Override
-        public SAMRecord next() {
-            final SAMRecord rec = underlyingIterator.next();
-            final String readName = rec.getReadName();
-            if (readName.endsWith(suffixToTrim)) {
-                rec.setReadName(readName.substring(0, readName.length() - suffixToTrim.length()));
-            }
-            return rec;
-        }
-
-        @Override
-        public void remove() {
-            underlyingIterator.remove();
-        }
-    }
-
-    private class SeparateEndAlignmentIterator implements CloseableIterator<SAMRecord> {
-
-        private final PeekableIterator<SAMRecord> read1Iterator;
-        private final PeekableIterator<SAMRecord> read2Iterator;
-        private final SAMFileHeader header;
-
-        public SeparateEndAlignmentIterator(final List<File> read1Alignments, final List<File> read2Alignments) {
-            final List<SAMFileHeader> headers = new ArrayList<SAMFileHeader>();
-            final List<SAMFileReader> read1 = new ArrayList<SAMFileReader>(read1Alignments.size());
-            final List<SAMFileReader> read2 = new ArrayList<SAMFileReader>(read2Alignments.size());
-            for (final File f : read1Alignments) {
-                final SAMFileReader r = new SAMFileReader(f);
-                headers.add(r.getFileHeader());
-                read1.add(r);
-            }
-            for (final File f : read2Alignments) {
-                final SAMFileReader r = new SAMFileReader(f);
-                headers.add(r.getFileHeader());
-                read2.add(r);
-            }
-
-            final SamFileHeaderMerger headerMerger = new SamFileHeaderMerger(SAMFileHeader.SortOrder.coordinate, headers, false);
-            read1Iterator = new PeekableIterator<SAMRecord>(
-                    new SuffixTrimingSamRecordIterator(new MergingSamRecordIterator(headerMerger, read1, true), "/1"));
-            read2Iterator = new PeekableIterator<SAMRecord>(
-                    new SuffixTrimingSamRecordIterator(new MergingSamRecordIterator(headerMerger, read2, true), "/2"));
-
-            header = headerMerger.getMergedHeader();
-        }
-
-        public void close() {
-            read1Iterator.close();
-            read2Iterator.close();
-        }
-
-        public boolean hasNext() {
-            return read1Iterator.hasNext() || read2Iterator.hasNext();
-        }
-
-        public SAMRecord next() {
-            if (read1Iterator.hasNext()) {
-                if (read2Iterator.hasNext()) {
-                    return (read1Iterator.peek().getReadName().compareTo(read2Iterator.peek().getReadName()) <= 0)
-                        ? setPairFlags(read1Iterator.next(), true)
-                        : setPairFlags(read2Iterator.next(), false);
-                }
-                else {
-                    return setPairFlags(read1Iterator.next(), true);
-                }
-            }
-            else {
-                return setPairFlags(read2Iterator.next(), false);
-            }
-        }
-
-        public void remove() {
-            throw new UnsupportedOperationException("remove() not supported");
-        }
-
-        public SAMFileHeader getHeader() { return this.header; }
-
-        private SAMRecord setPairFlags(final SAMRecord sam, final boolean firstOfPair) {
-            sam.setReadPairedFlag(true);
-            sam.setFirstOfPairFlag(firstOfPair);
-            sam.setSecondOfPairFlag(!firstOfPair);
-            return sam;
-        }
-    }
-
-    /**
-     * For now, we only ignore those alignments that have more than <code>maxGaps</code> insertions
-     * or deletions.
-     */
-    protected boolean ignoreAlignment(final SAMRecord sam) {
-        if (maxGaps == -1) return false;
-        int gaps = 0;
-        for (final CigarElement el : sam.getCigar().getCigarElements()) {
-            if (el.getOperator() == CigarOperator.I || el.getOperator() == CigarOperator.D ) {
-                gaps++;
-            }
-        }
-        return gaps > maxGaps;
-    }
-
-    // Accessor for testing
-    public boolean getForceSort() {return this.forceSort; }
-}
diff --git a/src/java/net/sf/picard/sam/SamFileHeaderMerger.java b/src/java/net/sf/picard/sam/SamFileHeaderMerger.java
deleted file mode 100644
index 7102c26..0000000
--- a/src/java/net/sf/picard/sam/SamFileHeaderMerger.java
+++ /dev/null
@@ -1,775 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.sam;
-
-import java.util.*;
-
-import net.sf.picard.PicardException;
-import net.sf.samtools.AbstractSAMHeaderRecord;
-import net.sf.samtools.SAMFileHeader;
-import net.sf.samtools.SAMFileReader;
-import net.sf.samtools.SAMProgramRecord;
-import net.sf.samtools.SAMReadGroupRecord;
-import net.sf.samtools.SAMSequenceDictionary;
-import net.sf.samtools.SAMSequenceRecord;
-import net.sf.samtools.util.SequenceUtil;
-
-/**
- * Merges SAMFileHeaders that have the same sequences into a single merged header
- * object while providing read group translation for cases where read groups
- * clash across input headers.
- */
-public class SamFileHeaderMerger {
-
-    /**
-     * A 4-digit base 36 number is going to be attached to colliding SAMFileHeaderRecords,
-     * To do this we first create an array of values to convert integer remainders into
-     * base 36 values, we use base 36 because we have 10 digits and 26 numbers
-     */
-    private static final char [] INT_TO_BASE36 = new char[36];
-    static {
-        int aVal    = (int) 'A';
-        int zeroVal = (int) '0';
-
-        for(int i = 0; i < 10; i++) {
-            INT_TO_BASE36[i] = (char)(zeroVal + i);
-        }
-
-        for(int i = 0; i < 26; i++) {
-            INT_TO_BASE36[i + 10] = (char)(aVal + i);
-        }
-    }
-
-    //Super Header to construct
-    private final SAMFileHeader mergedHeader;
-    private Collection<SAMFileReader> readers;
-    private final Collection<SAMFileHeader> headers;
-    private int recordCounter;
-
-    //Translation of old group ids to new group ids
-    private final Map<SAMFileHeader, Map<String, String>> samReadGroupIdTranslation =
-            new IdentityHashMap<SAMFileHeader, Map<String, String>>();
-
-    //the read groups from different files use the same group ids
-    private boolean hasReadGroupCollisions = false;
-
-    //the program records from different files use the same program record ids
-    private boolean hasProgramGroupCollisions = false;
-
-    //Translation of old program group ids to new program group ids
-    private final Map<SAMFileHeader, Map<String, String>> samProgramGroupIdTranslation =
-            new IdentityHashMap<SAMFileHeader, Map<String, String>>();
-
-    private boolean hasMergedSequenceDictionary = false;
-
-    // Translation of old sequence dictionary ids to new dictionary ids
-    // This is an IdentityHashMap because it can be quite expensive to compute the hashCode for
-    // large SAMFileHeaders.  It is possible that two input files will have identical headers so that
-    // the regular HashMap would fold them together, but the value stored in each of the two
-    // Map entries will be the same, so it should not hurt anything.
-    private final Map<SAMFileHeader,  Map<Integer, Integer>> samSeqDictionaryIdTranslationViaHeader =
-            new IdentityHashMap<SAMFileHeader, Map<Integer, Integer>>();
-
-    //HeaderRecordFactory that creates SAMReadGroupRecord instances.
-    private static final HeaderRecordFactory<SAMReadGroupRecord> READ_GROUP_RECORD_FACTORY = new HeaderRecordFactory<SAMReadGroupRecord>() {
-        public SAMReadGroupRecord createRecord(final String id, final SAMReadGroupRecord srcReadGroupRecord) {
-            return new SAMReadGroupRecord(id, srcReadGroupRecord);
-        }
-    };
-
-    //HeaderRecordFactory that creates SAMProgramRecord instances.
-    private static final HeaderRecordFactory<SAMProgramRecord> PROGRAM_RECORD_FACTORY = new HeaderRecordFactory<SAMProgramRecord>() {
-        public SAMProgramRecord createRecord(final String id, final SAMProgramRecord srcProgramRecord) {
-            return new SAMProgramRecord(id, srcProgramRecord);
-        }
-    };
-
-    //comparator used to sort lists of program group and read group records
-    private static final Comparator<AbstractSAMHeaderRecord> RECORD_ID_COMPARATOR = new Comparator<AbstractSAMHeaderRecord>() {
-        public int compare(final AbstractSAMHeaderRecord o1, final AbstractSAMHeaderRecord o2) {
-            return o1.getId().compareTo(o2.getId());
-        }
-    };
-
-    /**
-     * Create SAMFileHeader with additional information.  Required that sequence dictionaries agree.
-     *
-     * @param readers sam file readers to combine
-     * @param sortOrder sort order new header should have
-     * @deprecated replaced by SamFileHeaderMerger(Collection<SAMFileHeader>, SAMFileHeader.SortOrder, boolean)
-     */
-    public SamFileHeaderMerger(final Collection<SAMFileReader> readers, final SAMFileHeader.SortOrder sortOrder) {
-        this(readers, sortOrder, false);
-    }
-
-    /**
-     * Create SAMFileHeader with additional information.
-     *
-     * @param readers sam file readers to combine
-     * @param sortOrder sort order new header should have
-     * @param mergeDictionaries If true, merge sequence dictionaries in new header.  If false, require that
-     * all input sequence dictionaries be identical.
-     * @deprecated replaced by SamFileHeaderMerger(Collection<SAMFileHeader>, SAMFileHeader.SortOrder, boolean)
-     */
-    public SamFileHeaderMerger(final Collection<SAMFileReader> readers, final SAMFileHeader.SortOrder sortOrder, final boolean mergeDictionaries) {
-        this(sortOrder, getHeadersFromReaders(readers), mergeDictionaries);
-        this.readers = readers;
-    }
-
-    /**
-     * Create SAMFileHeader with additional information..  This is the preferred constructor.
-     *
-     * @param sortOrder sort order new header should have
-     * @param headers sam file headers to combine
-     * @param mergeDictionaries If true, merge sequence dictionaries in new header.  If false, require that
-     * all input sequence dictionaries be identical.
-     */
-    public SamFileHeaderMerger(final SAMFileHeader.SortOrder sortOrder, final Collection<SAMFileHeader> headers, final boolean mergeDictionaries) {
-        this.headers = new LinkedHashSet<SAMFileHeader>(headers);
-        this.mergedHeader = new SAMFileHeader();
-
-        SAMSequenceDictionary sequenceDictionary;
-        try {
-            sequenceDictionary = getSequenceDictionary(headers);
-            this.hasMergedSequenceDictionary = false;
-        }
-        catch (SequenceUtil.SequenceListsDifferException pe) {
-            if (mergeDictionaries) {
-                sequenceDictionary = mergeSequenceDictionaries(headers);
-                this.hasMergedSequenceDictionary = true;
-            }
-            else {
-                throw pe;
-            }
-        }
-
-        this.mergedHeader.setSequenceDictionary(sequenceDictionary);
-
-        // Set program that creates input alignments
-        for (final SAMProgramRecord program : mergeProgramGroups(headers)) {
-            this.mergedHeader.addProgramRecord(program);
-        }
-
-        // Set read groups for merged header
-        final List<SAMReadGroupRecord> readGroups = mergeReadGroups(headers);
-        this.mergedHeader.setReadGroups(readGroups);
-        this.mergedHeader.setGroupOrder(SAMFileHeader.GroupOrder.none);
-
-        this.mergedHeader.setSortOrder(sortOrder);
-
-        for (final SAMFileHeader header : headers) {
-            for (final String comment : header.getComments()) {
-                this.mergedHeader.addComment(comment);
-            }
-        }
-    }
-
-    // Utilility method to make use with old constructor
-    private static List<SAMFileHeader> getHeadersFromReaders(final Collection<SAMFileReader> readers) {
-        final List<SAMFileHeader> headers = new ArrayList<SAMFileHeader>(readers.size());
-        for (final SAMFileReader reader : readers) {
-            headers.add(reader.getFileHeader());
-        }
-        return headers;
-    }
-
-
-    /**
-     * Checks to see if there are clashes where different readers are using the same read
-     * group IDs. If yes, then those IDs that collided are remapped.
-     *
-     * @param headers headers to combine
-     * @return new list of read groups constructed from all the readers
-     */
-    private List<SAMReadGroupRecord> mergeReadGroups(final Collection<SAMFileHeader> headers) {
-        //prepare args for mergeHeaderRecords(..) call
-        final HashSet<String> idsThatAreAlreadyTaken = new HashSet<String>();
-
-        final List<HeaderRecordAndFileHeader<SAMReadGroupRecord>> readGroupsToProcess = new LinkedList<HeaderRecordAndFileHeader<SAMReadGroupRecord>>();
-        for (final SAMFileHeader header : headers) {
-            for (final SAMReadGroupRecord readGroup : header.getReadGroups()) {
-                //verify that there are no existing id collisions in this input file
-                if(!idsThatAreAlreadyTaken.add(readGroup.getId()))
-                    throw new PicardException("Input file: " + header + " contains more than one RG with the same id (" + readGroup.getId() + ")");
-
-                readGroupsToProcess.add(new HeaderRecordAndFileHeader<SAMReadGroupRecord>(readGroup, header));
-            }
-            idsThatAreAlreadyTaken.clear();
-        }
-
-        final List<SAMReadGroupRecord> result = new LinkedList<SAMReadGroupRecord>();
-
-        recordCounter = 0;
-        hasReadGroupCollisions = mergeHeaderRecords(readGroupsToProcess, READ_GROUP_RECORD_FACTORY, idsThatAreAlreadyTaken, samReadGroupIdTranslation, result);
-
-        //sort the result list by record id
-        Collections.sort(result, RECORD_ID_COMPARATOR);
-
-        return result;
-    }
-
-
-    /**
-     * Checks to see if there are clashes where different readers are using the same program
-     * group IDs. If yes, then those IDs that collided are remapped.
-     *
-     * @param headers headers to combine
-     * @return new list of program groups constructed from all the readers
-     */
-    private List<SAMProgramRecord> mergeProgramGroups(final Collection<SAMFileHeader> headers) {
-
-        final List<SAMProgramRecord> overallResult = new LinkedList<SAMProgramRecord>();
-
-        //this Set will accumulate all SAMProgramRecord ids that have been encountered so far.
-        final HashSet<String> idsThatAreAlreadyTaken = new HashSet<String>();
-
-        //need to process all program groups
-        List<HeaderRecordAndFileHeader<SAMProgramRecord>> programGroupsLeftToProcess = new LinkedList<HeaderRecordAndFileHeader<SAMProgramRecord>>();
-        for (final SAMFileHeader header : headers) {
-            for (final SAMProgramRecord programGroup : header.getProgramRecords()) {
-                //verify that there are no existing id collisions in this input file
-                if(!idsThatAreAlreadyTaken.add(programGroup.getId()))
-                    throw new PicardException("Input file: " + header + " contains more than one PG with the same id (" + programGroup.getId() + ")");
-
-                programGroupsLeftToProcess.add(new HeaderRecordAndFileHeader<SAMProgramRecord>(programGroup, header));
-            }
-            idsThatAreAlreadyTaken.clear();
-        }
-
-        recordCounter = 0;
-
-        //A program group header (lets say ID=2 PN=B PP=1) may have a PP (previous program) attribute which chains it to
-        //another program group header (lets say ID=1 PN=A) to indicate that the given file was
-        //processed by program A followed by program B. These PP attributes potentially
-        //connect headers into one or more tree structures. Merging is done by
-        //first merging all headers that don't have PP attributes (eg. tree roots),
-        //then updating and merging all headers whose PPs point to the tree-root headers,
-        //and so on until all program group headers are processed.
-
-        //currentProgramGroups is the list of records to merge next. Start by merging the programGroups that don't have a PP attribute (eg. the tree roots).
-        List< HeaderRecordAndFileHeader<SAMProgramRecord> > currentProgramGroups = new LinkedList<HeaderRecordAndFileHeader<SAMProgramRecord>>();
-        for(final Iterator<HeaderRecordAndFileHeader<SAMProgramRecord>> programGroupsLeftToProcessIterator = programGroupsLeftToProcess.iterator(); programGroupsLeftToProcessIterator.hasNext(); ) {
-            final HeaderRecordAndFileHeader<SAMProgramRecord> pair = programGroupsLeftToProcessIterator.next();
-            if(pair.getHeaderRecord().getAttribute(SAMProgramRecord.PREVIOUS_PROGRAM_GROUP_ID_TAG) == null) {
-                programGroupsLeftToProcessIterator.remove();
-                currentProgramGroups.add(pair);
-            }
-        }
-
-        //merge currentProgramGroups
-        while(!currentProgramGroups.isEmpty())
-        {
-            final List<SAMProgramRecord> currentResult = new LinkedList<SAMProgramRecord>();
-
-            hasProgramGroupCollisions |= mergeHeaderRecords(currentProgramGroups, PROGRAM_RECORD_FACTORY, idsThatAreAlreadyTaken, samProgramGroupIdTranslation, currentResult);
-
-            //add currentResults to overallResults
-            overallResult.addAll(currentResult);
-
-            //apply the newly-computed id translations to currentProgramGroups and programGroupsLeftToProcess
-            currentProgramGroups = translateIds(currentProgramGroups, samProgramGroupIdTranslation, false);
-            programGroupsLeftToProcess = translateIds(programGroupsLeftToProcess, samProgramGroupIdTranslation, true);
-
-            //find all records in programGroupsLeftToProcess whose ppId points to a record that was just processed (eg. a record that's in currentProgramGroups),
-            //and move them to the list of programGroupsToProcessNext.
-            final LinkedList<HeaderRecordAndFileHeader<SAMProgramRecord>> programGroupsToProcessNext = new LinkedList<HeaderRecordAndFileHeader<SAMProgramRecord>>();
-            for(final Iterator<HeaderRecordAndFileHeader<SAMProgramRecord>> programGroupsLeftToProcessIterator = programGroupsLeftToProcess.iterator(); programGroupsLeftToProcessIterator.hasNext(); ) {
-                final HeaderRecordAndFileHeader<SAMProgramRecord> pairLeftToProcess = programGroupsLeftToProcessIterator.next();
-                final Object ppIdOfRecordLeftToProcess = pairLeftToProcess.getHeaderRecord().getAttribute(SAMProgramRecord.PREVIOUS_PROGRAM_GROUP_ID_TAG);
-                //find what currentProgramGroups this ppId points to (NOTE: they have to come from the same file)
-                for(final HeaderRecordAndFileHeader<SAMProgramRecord> justProcessedPair : currentProgramGroups) {
-                    final String idJustProcessed = justProcessedPair.getHeaderRecord().getId();
-                    if(pairLeftToProcess.getFileHeader() == justProcessedPair.getFileHeader() && ppIdOfRecordLeftToProcess.equals(idJustProcessed)) {
-                        programGroupsLeftToProcessIterator.remove();
-                        programGroupsToProcessNext.add(pairLeftToProcess);
-                        break;
-                    }
-                }
-            }
-
-            currentProgramGroups = programGroupsToProcessNext;
-        }
-
-        //verify that all records were processed
-        if(!programGroupsLeftToProcess.isEmpty()) {
-            final StringBuffer errorMsg = new StringBuffer(programGroupsLeftToProcess.size() + " program groups weren't processed. Do their PP ids point to existing PGs? \n");
-            for( final HeaderRecordAndFileHeader<SAMProgramRecord> pair : programGroupsLeftToProcess ) {
-                final SAMProgramRecord record = pair.getHeaderRecord();
-                errorMsg.append("@PG ID:"+record.getProgramGroupId()+" PN:"+record.getProgramName()+" PP:"+record.getPreviousProgramGroupId() +"\n");
-            }
-            throw new PicardException(errorMsg.toString());
-        }
-
-        //sort the result list by record id
-        Collections.sort(overallResult, RECORD_ID_COMPARATOR);
-
-        return overallResult;
-    }
-
-
-    /**
-     * Utility method that takes a list of program groups and remaps all their
-     * ids (including ppIds if requested) using the given idTranslationTable.
-     *
-     * NOTE: when remapping, this method creates new SAMProgramRecords and
-     * doesn't mutate any records in the programGroups list.
-     *
-     * @param programGroups The program groups to translate.
-     * @param idTranslationTable The translation table.
-     * @param translatePpIds Whether ppIds should be translated as well.
-     *
-     * @return The list of translated records.
-     */
-    private List<HeaderRecordAndFileHeader<SAMProgramRecord>> translateIds(
-            final List<HeaderRecordAndFileHeader<SAMProgramRecord>> programGroups,
-            final Map<SAMFileHeader, Map<String, String>> idTranslationTable,
-            final boolean translatePpIds) {
-
-        //go through programGroups and translate any IDs and PPs based on the idTranslationTable.
-        final List<HeaderRecordAndFileHeader<SAMProgramRecord>> result = new LinkedList<HeaderRecordAndFileHeader<SAMProgramRecord>>();
-        for(final HeaderRecordAndFileHeader<SAMProgramRecord> pair : programGroups ) {
-            final SAMProgramRecord record = pair.getHeaderRecord();
-            final String id = record.getProgramGroupId();
-            final String ppId = (String) record.getAttribute(SAMProgramRecord.PREVIOUS_PROGRAM_GROUP_ID_TAG);
-
-            final SAMFileHeader header = pair.getFileHeader();
-            final Map<String, String> translations = idTranslationTable.get(header);
-
-            //see if one or both ids need to be translated
-            SAMProgramRecord translatedRecord = null;
-            if(translations != null)
-            {
-                final String translatedId = translations.get( id );
-                final String translatedPpId = translatePpIds ? translations.get( ppId ) : null;
-
-                final boolean needToTranslateId = translatedId != null && !translatedId.equals(id);
-                final boolean needToTranslatePpId = translatedPpId != null && !translatedPpId.equals(ppId);
-
-                if(needToTranslateId && needToTranslatePpId) {
-                    translatedRecord = new SAMProgramRecord(translatedId, record);
-                    translatedRecord.setAttribute(SAMProgramRecord.PREVIOUS_PROGRAM_GROUP_ID_TAG, translatedPpId);
-                } else if(needToTranslateId) {
-                    translatedRecord = new SAMProgramRecord(translatedId, record);
-                } else if(needToTranslatePpId) {
-                    translatedRecord = new SAMProgramRecord(id, record);
-                    translatedRecord.setAttribute(SAMProgramRecord.PREVIOUS_PROGRAM_GROUP_ID_TAG, translatedPpId);
-                }
-            }
-
-            if(translatedRecord != null) {
-                result.add(new HeaderRecordAndFileHeader<SAMProgramRecord>(translatedRecord, header));
-            } else {
-                result.add(pair); //keep the original record
-            }
-        }
-
-        return result;
-    }
-
-
-    /**
-     * Utility method for merging a List of AbstractSAMHeaderRecords. If it finds
-     * records that have identical ids and attributes, it will collapse them
-     * into one record. If it finds records that have identical ids but
-     * non-identical attributes, this is treated as a collision. When collision happens,
-     * the records' ids are remapped, and an old-id to new-id mapping is added to the idTranslationTable.
-     *
-     * NOTE: Non-collided records also get recorded in the idTranslationTable as
-     * old-id to old-id. This way, an idTranslationTable lookup should never return null.
-     *
-     * @param headerRecords The header records to merge.
-     * @param headerRecordFactory Constructs a specific subclass of AbstractSAMHeaderRecord.
-     * @param idsThatAreAlreadyTaken If the id of a headerRecord matches an id in this set, it will be treated as a collision, and the headRecord's id will be remapped.
-     * @param idTranslationTable When records collide, their ids are remapped, and an old-id to new-id
-     *      mapping is added to the idTranslationTable. Non-collided records also get recorded in the idTranslationTable as
-     *      old-id to old-id. This way, an idTranslationTable lookup should never return null.
-     *
-     * @param result The list of merged header records.
-     *
-     * @return True if there were collisions.
-     */
-    private <RecordType extends AbstractSAMHeaderRecord> boolean mergeHeaderRecords(final List<HeaderRecordAndFileHeader<RecordType>> headerRecords, final HeaderRecordFactory<RecordType> headerRecordFactory,
-            final HashSet<String> idsThatAreAlreadyTaken, final Map<SAMFileHeader, Map<String, String>> idTranslationTable, final List<RecordType> result) {
-
-        //The outer Map bins the header records by their ids. The nested Map further collapses
-        //header records which, in addition to having the same id, also have identical attributes.
-        //In other words, each key in the nested map represents one or more
-        //header records which have both identical ids and identical attributes. The List of
-        //SAMFileHeaders keeps track of which readers these header record(s) came from.
-        final Map<String, Map<RecordType, List<SAMFileHeader>>> idToRecord =
-            new LinkedHashMap<String, Map<RecordType, List<SAMFileHeader>>>();
-
-        //Populate the idToRecord and seenIds data structures
-        for (final HeaderRecordAndFileHeader<RecordType> pair : headerRecords) {
-            final RecordType record = pair.getHeaderRecord();
-            final SAMFileHeader header = pair.getFileHeader();
-            final String recordId = record.getId();
-            Map<RecordType, List<SAMFileHeader>> recordsWithSameId = idToRecord.get(recordId);
-            if(recordsWithSameId == null) {
-                recordsWithSameId = new LinkedHashMap<RecordType, List<SAMFileHeader>>();
-                idToRecord.put(recordId, recordsWithSameId);
-            }
-
-            List<SAMFileHeader> fileHeaders = recordsWithSameId.get(record);
-            if(fileHeaders == null) {
-                fileHeaders = new LinkedList<SAMFileHeader>();
-                recordsWithSameId.put(record, fileHeaders);
-            }
-
-            fileHeaders.add(header);
-        }
-
-        //Resolve any collisions between header records by remapping their ids.
-        boolean hasCollisions = false;
-        for (final Map.Entry<String, Map<RecordType, List<SAMFileHeader>>> entry : idToRecord.entrySet() )
-        {
-            final String recordId = entry.getKey();
-            final Map<RecordType, List<SAMFileHeader>> recordsWithSameId = entry.getValue();
-
-
-            for( final Map.Entry<RecordType, List<SAMFileHeader>> recordWithUniqueAttr : recordsWithSameId.entrySet()) {
-                final RecordType record = recordWithUniqueAttr.getKey();
-                final List<SAMFileHeader> fileHeaders = recordWithUniqueAttr.getValue();
-
-                String newId;
-                if(!idsThatAreAlreadyTaken.contains(recordId)) {
-                    //don't remap 1st record. If there are more records
-                    //with this id, they will be remapped in the 'else'.
-                    newId = recordId;
-                    idsThatAreAlreadyTaken.add(recordId);
-                    ++recordCounter;
-                } else {
-                    //there is more than one record with this id.
-                    hasCollisions = true;
-
-                    //Below we tack on one of roughly 1.7 million possible 4 digit base36 at random we do this because
-                    //our old process of just counting from 0 upward and adding that to the previous id led to 1000s of hits on
-                    //idsThatAreAlreadyTaken.contains just to resolve 1 collision when merging 1000s of similarly processed bams
-                    while(idsThatAreAlreadyTaken.contains(newId = recordId + "." + positiveFourDigitBase36Str(recordCounter++)));
-
-                    idsThatAreAlreadyTaken.add( newId );
-                }
-
-                for(final SAMFileHeader fileHeader : fileHeaders) {
-                    Map<String, String> readerTranslationTable = idTranslationTable.get(fileHeader);
-                    if(readerTranslationTable == null) {
-                        readerTranslationTable = new HashMap<String, String>();
-                        idTranslationTable.put(fileHeader, readerTranslationTable);
-                    }
-                    readerTranslationTable.put(recordId, newId);
-                }
-
-                result.add( headerRecordFactory.createRecord(newId, record) );
-            }
-        }
-
-        return hasCollisions;
-    }
-
-    /**
-     * Convert an integer to base36, protected solely for testing
-     * @param leftOver Both the initial value and the running quotient
-     * @return A four digit string composed of base 36 symbols
-     */
-    public static String positiveFourDigitBase36Str(int leftOver) {
-        if(leftOver == 0) {
-            return "0";
-        }
-
-        final StringBuilder builder = new StringBuilder(10);
-
-        while(leftOver > 0) {
-            final int valueIndex = leftOver % 36;
-            builder.append(INT_TO_BASE36[valueIndex]);
-            leftOver /= 36;
-        }
-
-        return builder.reverse().toString();
-    }
-
-
-    /**
-     * Get the sequences off the SAMFileHeader.  Throws runtime exception if the sequence
-     * are different from one another.
-     *
-     * @param headers headers to pull sequences from
-     * @return sequences from files.  Each file should have the same sequence
-     */
-    private SAMSequenceDictionary getSequenceDictionary(final Collection<SAMFileHeader> headers) {
-        SAMSequenceDictionary sequences = null;
-        for (final SAMFileHeader header : headers) {
-
-            if (sequences == null) {
-                sequences = header.getSequenceDictionary();
-            }
-            else {
-                final SAMSequenceDictionary currentSequences = header.getSequenceDictionary();
-                SequenceUtil.assertSequenceDictionariesEqual(sequences, currentSequences);
-            }
-        }
-
-        return sequences;
-    }
-
-    /**
-     * Get the sequences from the SAMFileHeader, and merge the resulting sequence dictionaries.
-     *
-     * @param headers headers to pull sequences from
-     * @return sequences from files.  Each file should have the same sequence
-     */
-    private SAMSequenceDictionary mergeSequenceDictionaries(final Collection<SAMFileHeader> headers) {
-        SAMSequenceDictionary sequences = new SAMSequenceDictionary();
-        for (final SAMFileHeader header : headers) {
-            final SAMSequenceDictionary currentSequences = header.getSequenceDictionary();
-            sequences = mergeSequences(sequences, currentSequences);
-        }
-        // second pass, make a map of the original seqeunce id -> new sequence id
-        createSequenceMapping(headers, sequences);
-        return sequences;
-    }
-
-    /**
-     * They've asked to merge the sequence headers.  What we support right now is finding the sequence name superset.
-     *
-     * @param mergeIntoDict the result of merging so far.  All SAMSequenceRecords in here have been cloned from the originals.
-     * @param mergeFromDict A new sequence dictionary to merge into mergeIntoDict.
-     * @return A new sequence dictionary that resulting from merging the two inputs.
-     */
-    private SAMSequenceDictionary mergeSequences(final SAMSequenceDictionary mergeIntoDict, final SAMSequenceDictionary mergeFromDict) {
-
-        // a place to hold the sequences that we haven't found a home for, in the order the appear in mergeFromDict.
-        final LinkedList<SAMSequenceRecord> holder = new LinkedList<SAMSequenceRecord>();
-
-        // Return value will be created from this.
-        final LinkedList<SAMSequenceRecord> resultingDict = new LinkedList<SAMSequenceRecord>();
-        for (final SAMSequenceRecord sequenceRecord : mergeIntoDict.getSequences()) {
-            resultingDict.add(sequenceRecord);
-        }
-
-        // Index into resultingDict of previous SAMSequenceRecord from mergeFromDict that already existed in mergeIntoDict.
-        int prevloc = -1;
-        // Previous SAMSequenceRecord from mergeFromDict that already existed in mergeIntoDict.
-        SAMSequenceRecord previouslyMerged = null;
-
-        for (final SAMSequenceRecord sequenceRecord : mergeFromDict.getSequences()) {
-            // Does it already exist in resultingDict?
-            final int loc = getIndexOfSequenceName(resultingDict, sequenceRecord.getSequenceName());
-            if (loc == -1) {
-                // If doesn't already exist in resultingDict, save it an decide where to insert it later.
-                holder.add(sequenceRecord.clone());
-            } else if (prevloc > loc) {
-                // If sequenceRecord already exists in resultingDict, but prior to the previous one
-                // from mergeIntoDict that already existed, cannot merge.
-                throw new PicardException("Cannot merge sequence dictionaries because sequence " +
-                        sequenceRecord.getSequenceName() + " and " + previouslyMerged.getSequenceName() +
-                " are in different orders in two input sequence dictionaries.");
-            } else {
-                // Since sequenceRecord already exists in resultingDict, don't need to add it.
-                // Add in all the sequences prior to it that have been held in holder.
-                resultingDict.addAll(loc, holder);
-                // Remember the index of sequenceRecord so can check for merge imcompatibility.
-                prevloc = loc + holder.size();
-                previouslyMerged = sequenceRecord;
-                holder.clear();
-            }
-        }
-        // Append anything left in holder.
-        if (holder.size() != 0) {
-            resultingDict.addAll(holder);
-        }
-        return new SAMSequenceDictionary(resultingDict);
-    }
-
-    /**
-     * Find sequence in list.
-     * @param list List to search for the sequence name.
-     * @param sequenceName Name to search for.
-     * @return Index of SAMSequenceRecord with the given name in list, or -1 if not found.
-     */
-    private static int getIndexOfSequenceName(final List<SAMSequenceRecord> list, final String sequenceName) {
-        for (int i = 0; i < list.size(); ++i) {
-            if (list.get(i).getSequenceName().equals(sequenceName)) {
-                return i;
-            }
-        }
-        return -1;
-    }
-
-    /**
-     * create the sequence mapping.  This map is used to convert the unmerged header sequence ID's to the merged
-     * list of sequence id's.
-     * @param headers the collections of headers.
-     * @param masterDictionary the superset dictionary we've created.
-     */
-    private void createSequenceMapping(final Collection<SAMFileHeader> headers, final SAMSequenceDictionary masterDictionary) {
-        final LinkedList<String> resultingDictStr = new LinkedList<String>();
-        for (final SAMSequenceRecord r : masterDictionary.getSequences()) {
-            resultingDictStr.add(r.getSequenceName());
-        }
-        for (final SAMFileHeader header : headers) {
-            final Map<Integer, Integer> seqMap = new HashMap<Integer, Integer>();
-            final SAMSequenceDictionary dict = header.getSequenceDictionary();
-            for (final SAMSequenceRecord rec : dict.getSequences()) {
-                seqMap.put(rec.getSequenceIndex(), resultingDictStr.indexOf(rec.getSequenceName()));
-            }
-            this.samSeqDictionaryIdTranslationViaHeader.put(header, seqMap);
-        }
-    }
-
-
-
-    /**
-     * Returns the read group id that should be used for the input read and RG id.
-     *
-     * @deprecated replaced by getReadGroupId(SAMFileHeader, String)
-     * */
-    public String getReadGroupId(final SAMFileReader reader, final String originalReadGroupId) {
-        return getReadGroupId(reader.getFileHeader(), originalReadGroupId);
-    }
-
-    /** Returns the read group id that should be used for the input read and RG id. */
-    public String getReadGroupId(final SAMFileHeader header, final String originalReadGroupId) {
-        return this.samReadGroupIdTranslation.get(header).get(originalReadGroupId);
-    }
-
-    /**
-     * @param reader one of the input files
-     * @param originalProgramGroupId a program group ID from the above input file
-     * @return new ID from the merged list of program groups in the output file
-     * @deprecated replaced by getProgramGroupId(SAMFileHeader, String)
-     */
-    public String getProgramGroupId(final SAMFileReader reader, final String originalProgramGroupId) {
-        return getProgramGroupId(reader.getFileHeader(), originalProgramGroupId);
-    }
-
-    /**
-     * @param header one of the input headers
-     * @param originalProgramGroupId a program group ID from the above input file
-     * @return new ID from the merged list of program groups in the output file
-     */
-    public String getProgramGroupId(final SAMFileHeader header, final String originalProgramGroupId) {
-        return this.samProgramGroupIdTranslation.get(header).get(originalProgramGroupId);
-    }
-
-    /** Returns true if there are read group duplicates within the merged headers. */
-    public boolean hasReadGroupCollisions() {
-        return this.hasReadGroupCollisions;
-    }
-
-    /** Returns true if there are program group duplicates within the merged headers. */
-    public boolean hasProgramGroupCollisions() {
-        return hasProgramGroupCollisions;
-    }
-
-    /** @return if we've merged the sequence dictionaries, return true */
-    public boolean hasMergedSequenceDictionary() {
-        return hasMergedSequenceDictionary;
-    }
-
-    /** Returns the merged header that should be written to any output merged file. */
-    public SAMFileHeader getMergedHeader() {
-        return this.mergedHeader;
-    }
-
-    /** Returns the collection of readers that this header merger is working with. May return null.
-     * @deprecated replaced by getHeaders()
-     */
-    public Collection<SAMFileReader> getReaders() {
-        return this.readers;
-    }
-
-    /** Returns the collection of readers that this header merger is working with.
-     */
-    public Collection<SAMFileHeader> getHeaders() {
-        return this.headers;
-    }
-
-    /**
-     * returns the new mapping for a specified reader, given it's old sequence index
-     * @param reader the reader
-     * @param oldReferenceSequenceIndex the old sequence (also called reference) index
-     * @return the new index value
-     * @deprecated replaced by getMergedSequenceIndex(SAMFileHeader, Integer)
-     */
-    public Integer getMergedSequenceIndex(final SAMFileReader reader, final Integer oldReferenceSequenceIndex) {
-        return this.getMergedSequenceIndex(reader.getFileHeader(), oldReferenceSequenceIndex);
-    }
-
-    /**
-     * Another mechanism for getting the new sequence index, for situations in which the reader is not available.
-     * Note that if the SAMRecord has already had its header replaced with the merged header, this won't work.
-     * @param header The original header for the input record in question.
-     * @param oldReferenceSequenceIndex The original sequence index.
-     * @return the new index value that is compatible with the merged sequence index.
-     */
-    public Integer getMergedSequenceIndex(final SAMFileHeader header, final Integer oldReferenceSequenceIndex) {
-        final Map<Integer, Integer> mapping = this.samSeqDictionaryIdTranslationViaHeader.get(header);
-        if (mapping == null) {
-            throw new PicardException("No sequence dictionary mapping available for header: " + header);
-        }
-
-        final Integer newIndex = mapping.get(oldReferenceSequenceIndex);
-        if (newIndex == null) {
-            throw new PicardException("No mapping for reference index " + oldReferenceSequenceIndex + " from header: " + header);
-        }
-
-        return newIndex;
-    }
-
-
-    /**
-     * Implementations of this interface are used by mergeHeaderRecords(..) to instantiate
-     * specific subclasses of AbstractSAMHeaderRecord.
-     */
-    private static interface HeaderRecordFactory<RecordType extends AbstractSAMHeaderRecord> {
-
-       /**
-        * Constructs a new instance of RecordType.
-        * @param id The id of the new record.
-        * @param srcRecord Except for the id, the new record will be a copy of this source record.
-        */
-        public RecordType createRecord(final String id, RecordType srcRecord);
-    }
-
-    /**
-     * Struct that groups together a subclass of AbstractSAMHeaderRecord with the
-     * SAMFileHeader that it came from.
-     */
-    private static class HeaderRecordAndFileHeader<RecordType extends AbstractSAMHeaderRecord> {
-        private final RecordType headerRecord;
-        private final SAMFileHeader samFileHeader;
-
-        public HeaderRecordAndFileHeader(final RecordType headerRecord, final SAMFileHeader samFileHeader) {
-            this.headerRecord = headerRecord;
-            this.samFileHeader = samFileHeader;
-        }
-
-        public RecordType getHeaderRecord() {
-            return headerRecord;
-        }
-        public SAMFileHeader getFileHeader() {
-            return samFileHeader;
-        }
-    }
-}
diff --git a/src/java/net/sf/picard/sam/SamFileValidator.java b/src/java/net/sf/picard/sam/SamFileValidator.java
deleted file mode 100644
index 5708cd7..0000000
--- a/src/java/net/sf/picard/sam/SamFileValidator.java
+++ /dev/null
@@ -1,800 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.sam;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.metrics.MetricBase;
-import net.sf.picard.metrics.MetricsFile;
-import net.sf.picard.reference.ReferenceSequence;
-import net.sf.picard.reference.ReferenceSequenceFile;
-import net.sf.picard.reference.ReferenceSequenceFileWalker;
-import net.sf.picard.util.*;
-import net.sf.samtools.*;
-import net.sf.samtools.SAMFileReader.ValidationStringency;
-import net.sf.samtools.SAMValidationError.Type;
-import net.sf.samtools.util.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Validates SAM files as follows:
- * <ul>
- * <li>checks sam file header for sequence dictionary</li>
- * <li>checks sam file header for read groups</li>
- * <li>for each sam record
- * <ul>
- * <li>reports error detected by SAMRecord.isValid()</li>
- * <li>validates NM (nucleotide differences) exists and matches reality</li>
- * <li>validates mate fields agree with data in the mate record</li>
- * </ul>
- * </li>
- * </ul>
- *
- * @author Doug Voet
- * @see SAMRecord#isValid()
- */
-public class SamFileValidator {
-    private Histogram<Type> errorsByType = new Histogram<Type>();
-    private final PrintWriter out;
-    private PairEndInfoMap pairEndInfoByName;
-    private ReferenceSequenceFileWalker refFileWalker = null;
-    private boolean verbose = false;
-    private int maxVerboseOutput = 100;
-    private SAMSortOrderChecker orderChecker;
-    private Set<Type> errorsToIgnore = EnumSet.noneOf(Type.class);
-    private boolean ignoreWarnings = false;
-    private boolean bisulfiteSequenced = false;
-    private boolean validateIndex = false;
-    private boolean sequenceDictionaryEmptyAndNoWarningEmitted = false;
-    private final int maxTempFiles;
-
-    private final static Log log = Log.getInstance(SamFileValidator.class);
-
-    public SamFileValidator(final PrintWriter out, final int maxTempFiles) {
-        this.out = out;
-        this.maxTempFiles = maxTempFiles;
-    }
-
-    /**
-     * Sets one or more error types that should not be reported on.
-     */
-    public void setErrorsToIgnore(final Collection<Type> types) {
-        if (!types.isEmpty()) {
-            this.errorsToIgnore = EnumSet.copyOf(types);
-        }
-    }
-
-    public void setIgnoreWarnings(final boolean ignoreWarnings) {
-        this.ignoreWarnings = ignoreWarnings;
-    }
-
-    /**
-     * Outputs validation summary report to out.
-     *
-     * @param samReader records to validate
-     * @param reference if null, NM tag validation is skipped
-     * @return boolean  true if there are no validation errors, otherwise false
-     */
-    public boolean validateSamFileSummary(final SAMFileReader samReader, final ReferenceSequenceFile reference) {
-        init(reference, samReader.getFileHeader());
-
-        validateSamFile(samReader, out);
-
-        boolean result = errorsByType.isEmpty();
-
-        if (errorsByType.getCount() > 0) {
-            // Convert to a histogram with String IDs so that WARNING: or ERROR: can be prepended to the error type.
-            final Histogram<String> errorsAndWarningsByType = new Histogram<String>("Error Type", "Count");
-            for (final Histogram<SAMValidationError.Type>.Bin bin : errorsByType.values()) {
-                errorsAndWarningsByType.increment(bin.getId().getHistogramString(), bin.getValue());
-            }
-            final MetricsFile<ValidationMetrics, String> metricsFile = new MetricsFile<ValidationMetrics, String>();
-            errorsByType.setBinLabel("Error Type");
-            errorsByType.setValueLabel("Count");
-            metricsFile.setHistogram(errorsAndWarningsByType);
-            metricsFile.write(out);
-        }
-        cleanup();
-        return result;
-    }
-
-    /**
-     * Outputs validation error details to out.
-     *
-     * @param samReader records to validate
-     * @param reference if null, NM tag validation is skipped
-     *                  processing will stop after this threshold has been reached
-     * @return boolean  true if there are no validation errors, otherwise false
-     */
-    public boolean validateSamFileVerbose(final SAMFileReader samReader, final ReferenceSequenceFile reference) {
-        init(reference, samReader.getFileHeader());
-
-        try {
-            validateSamFile(samReader, out);
-        } catch (MaxOutputExceededException e) {
-            out.println("Maximum output of [" + maxVerboseOutput + "] errors reached.");
-        }
-        boolean result = errorsByType.isEmpty();
-        cleanup();
-        return result;
-    }
-
-    public void validateBamFileTermination(final File inputFile) {
-        BufferedInputStream inputStream = null;
-        try {
-            inputStream = IOUtil.toBufferedStream(new FileInputStream(inputFile));
-            if (!BlockCompressedInputStream.isValidFile(inputStream)) {
-                return;
-            }
-            final BlockCompressedInputStream.FileTermination terminationState =
-                    BlockCompressedInputStream.checkTermination(inputFile);
-            if (terminationState.equals(BlockCompressedInputStream.FileTermination.DEFECTIVE)) {
-                addError(new SAMValidationError(Type.TRUNCATED_FILE, "BAM file has defective last gzip block",
-                        inputFile.getPath()));
-            } else if (terminationState.equals(BlockCompressedInputStream.FileTermination.HAS_HEALTHY_LAST_BLOCK)) {
-                addError(new SAMValidationError(Type.BAM_FILE_MISSING_TERMINATOR_BLOCK,
-                        "Older BAM file -- does not have terminator block",
-                        inputFile.getPath()));
-
-            }
-        } catch (IOException e) {
-            throw new PicardException("IOException", e);
-        } finally {
-            if (inputStream != null) {
-                CloserUtil.close(inputStream);
-            }
-        }
-    }
-
-    private void validateSamFile(final SAMFileReader samReader, final PrintWriter out) {
-        try {
-            samReader.setValidationStringency(ValidationStringency.SILENT);
-            validateHeader(samReader.getFileHeader());
-            orderChecker = new SAMSortOrderChecker(samReader.getFileHeader().getSortOrder());
-            validateSamRecordsAndQualityFormat(samReader, samReader.getFileHeader());
-            validateUnmatchedPairs();
-            if (validateIndex) {
-                try {
-                    BamIndexValidator.exhaustivelyTestIndex(samReader);
-                } catch (Exception e) {
-                    addError(new SAMValidationError(Type.INVALID_INDEX_FILE_POINTER, e.getMessage(), null));
-                }
-            }
-
-            if (errorsByType.isEmpty()) {
-                out.println("No errors found");
-            }
-        } finally {
-            out.flush();
-        }
-    }
-
-
-    /**
-     * Report on reads marked as paired, for which the mate was not found.
-     */
-    private void validateUnmatchedPairs() {
-        final InMemoryPairEndInfoMap inMemoryPairMap;
-        if (pairEndInfoByName instanceof CoordinateSortedPairEndInfoMap) {
-            // For the coordinate-sorted map, need to detect mate pairs in which the mateReferenceIndex on one end
-            // does not match the readReference index on the other end, so the pairs weren't united and validated.
-            inMemoryPairMap = new InMemoryPairEndInfoMap();
-            CloseableIterator<Map.Entry<String, PairEndInfo>> it = ((CoordinateSortedPairEndInfoMap) pairEndInfoByName).iterator();
-            while (it.hasNext()) {
-                Map.Entry<String, PairEndInfo> entry = it.next();
-                PairEndInfo pei = inMemoryPairMap.remove(entry.getValue().readReferenceIndex, entry.getKey());
-                if (pei != null) {
-                    // Found a mismatch btw read.mateReferenceIndex and mate.readReferenceIndex
-                    List<SAMValidationError> errors = pei.validateMates(entry.getValue(), entry.getKey());
-                    for (final SAMValidationError error : errors) {
-                        addError(error);
-                    }
-                } else {
-                    // Mate not found.
-                    inMemoryPairMap.put(entry.getValue().mateReferenceIndex, entry.getKey(), entry.getValue());
-                }
-            }
-            it.close();
-        } else {
-            inMemoryPairMap = (InMemoryPairEndInfoMap) pairEndInfoByName;
-        }
-        // At this point, everything in InMemoryMap is a read marked as a pair, for which a mate was not found.
-        for (final Map.Entry<String, PairEndInfo> entry : inMemoryPairMap) {
-            addError(new SAMValidationError(Type.MATE_NOT_FOUND, "Mate not found for paired read", entry.getKey()));
-        }
-    }
-
-    /**
-     * SAM record and quality format validations are combined into a single method because validation must be completed
-     * in only a single pass of the SamRecords (because a SamReader's iterator() method may not return the same
-     * records on a subsequent call).
-     */
-    private void validateSamRecordsAndQualityFormat(final Iterable<SAMRecord> samRecords, final SAMFileHeader header) {
-        final SAMRecordIterator iter = (SAMRecordIterator) samRecords.iterator();
-        final ProgressLogger progress = new ProgressLogger(log, 10000000, "Validated Read");
-        final QualityEncodingDetector qualityDetector = new QualityEncodingDetector();
-        try {
-            while (iter.hasNext()) {
-                final SAMRecord record = iter.next();
-
-                qualityDetector.add(record);
-
-                final long recordNumber = progress.getCount() + 1;
-                final Collection<SAMValidationError> errors = record.isValid();
-                if (errors != null) {
-                    for (final SAMValidationError error : errors) {
-                        error.setRecordNumber(recordNumber);
-                        addError(error);
-                    }
-                }
-
-                validateMateFields(record, recordNumber);
-                validateSortOrder(record, recordNumber);
-                validateReadGroup(record, header);
-                final boolean cigarIsValid = validateCigar(record, recordNumber);
-                if (cigarIsValid) {
-                    validateNmTag(record, recordNumber);
-                }
-                validateSecondaryBaseCalls(record, recordNumber);
-                validateTags(record, recordNumber);
-                if (sequenceDictionaryEmptyAndNoWarningEmitted && !record.getReadUnmappedFlag()) {
-                    addError(new SAMValidationError(Type.MISSING_SEQUENCE_DICTIONARY, "Sequence dictionary is empty", null));
-                    sequenceDictionaryEmptyAndNoWarningEmitted = false;
-
-                }
-                progress.record(record);
-            }
-
-            try {
-                if (progress.getCount() > 0) { // Avoid exception being thrown as a result of no qualities being read
-                    final FastqQualityFormat format = qualityDetector.generateBestGuess(QualityEncodingDetector.FileContext.SAM, FastqQualityFormat.Standard);
-                    if (format != FastqQualityFormat.Standard) {
-                        addError(new SAMValidationError(Type.INVALID_QUALITY_FORMAT, String.format("Detected %s quality score encoding, but expected %s.", format, FastqQualityFormat.Standard), null));
-                    }
-                }
-            } catch (PicardException e) {
-                addError(new SAMValidationError(Type.INVALID_QUALITY_FORMAT, e.getMessage(), null));
-            }
-        } catch (SAMFormatException e) {
-            // increment record number because the iterator behind the SAMFileReader
-            // reads one record ahead so we will get this failure one record ahead
-            final String msg = "SAMFormatException on record " + progress.getCount() + 1;
-            out.println(msg);
-            throw new PicardException(msg, e);
-        } catch (FileTruncatedException e) {
-            addError(new SAMValidationError(Type.TRUNCATED_FILE, "File is truncated", null));
-        } finally {
-            iter.close();
-        }
-    }
-
-    private void validateReadGroup(final SAMRecord record, final SAMFileHeader header) {
-        final SAMReadGroupRecord rg = record.getReadGroup();
-        if (rg == null) {
-            addError(new SAMValidationError(Type.RECORD_MISSING_READ_GROUP,
-                    "A record is missing a read group", record.getReadName()));
-        } else if (header.getReadGroup(rg.getId()) == null) {
-            addError(new SAMValidationError(Type.READ_GROUP_NOT_FOUND,
-                    "A record has a read group not found in the header: ",
-                    record.getReadName() + ", " + rg.getReadGroupId()));
-        }
-    }
-
-    /**
-     * Report error if a tag value is a Long.
-     */
-    private void validateTags(final SAMRecord record, final long recordNumber) {
-        for (final SAMRecord.SAMTagAndValue tagAndValue : record.getAttributes()) {
-            if (tagAndValue.value instanceof Long) {
-                addError(new SAMValidationError(Type.TAG_VALUE_TOO_LARGE,
-                        "Numeric value too large for tag " + tagAndValue.tag,
-                        record.getReadName(), recordNumber));
-            }
-        }
-    }
-
-    private void validateSecondaryBaseCalls(final SAMRecord record, final long recordNumber) {
-        final String e2 = (String) record.getAttribute(SAMTag.E2.name());
-        if (e2 != null) {
-            if (e2.length() != record.getReadLength()) {
-                addError(new SAMValidationError(Type.MISMATCH_READ_LENGTH_AND_E2_LENGTH,
-                        String.format("E2 tag length (%d) != read length (%d)", e2.length(), record.getReadLength()),
-                        record.getReadName(), recordNumber));
-            }
-            final byte[] bases = record.getReadBases();
-            final byte[] secondaryBases = StringUtil.stringToBytes(e2);
-            for (int i = 0; i < Math.min(bases.length, secondaryBases.length); ++i) {
-                if (SequenceUtil.isNoCall(bases[i]) || SequenceUtil.isNoCall(secondaryBases[i])) {
-                    continue;
-                }
-                if (SequenceUtil.basesEqual(bases[i], secondaryBases[i])) {
-                    addError(new SAMValidationError(Type.E2_BASE_EQUALS_PRIMARY_BASE,
-                            String.format("Secondary base call  (%c) == primary base call (%c)",
-                                    (char) secondaryBases[i], (char) bases[i]),
-                            record.getReadName(), recordNumber));
-                    break;
-                }
-            }
-        }
-        final String u2 = (String) record.getAttribute(SAMTag.U2.name());
-        if (u2 != null && u2.length() != record.getReadLength()) {
-            addError(new SAMValidationError(Type.MISMATCH_READ_LENGTH_AND_U2_LENGTH,
-                    String.format("U2 tag length (%d) != read length (%d)", u2.length(), record.getReadLength()),
-                    record.getReadName(), recordNumber));
-        }
-    }
-
-    private boolean validateCigar(final SAMRecord record, final long recordNumber) {
-        if (record.getReadUnmappedFlag()) {
-            return true;
-        }
-        return validateCigar(record, recordNumber, true);
-    }
-
-    private boolean validateMateCigar(final SAMRecord record, final long recordNumber) {
-        return validateCigar(record, recordNumber, false);
-    }
-
-    private boolean validateCigar(final SAMRecord record, final long recordNumber, final boolean isReadCigar) {
-        final ValidationStringency savedStringency = record.getValidationStringency();
-        record.setValidationStringency(ValidationStringency.LENIENT);
-        final List<SAMValidationError> errors = isReadCigar ? record.validateCigar(recordNumber) : SAMUtils.validateMateCigar(record, recordNumber);
-        record.setValidationStringency(savedStringency);
-        if (errors == null) {
-            return true;
-        }
-        boolean valid = true;
-        for (final SAMValidationError error : errors) {
-            addError(error);
-            valid = false;
-        }
-        return valid;
-    }
-
-
-    private void validateSortOrder(final SAMRecord record, final long recordNumber) {
-        final SAMRecord prev = orderChecker.getPreviousRecord();
-        if (!orderChecker.isSorted(record)) {
-            addError(new SAMValidationError(
-                    Type.RECORD_OUT_OF_ORDER,
-                    String.format(
-                            "The record is out of [%s] order, prior read name [%s], prior coodinates [%d:%d]",
-                            record.getHeader().getSortOrder().name(),
-                            prev.getReadName(),
-                            prev.getReferenceIndex(),
-                            prev.getAlignmentStart()),
-                    record.getReadName(),
-                    recordNumber));
-        }
-    }
-
-    private void init(final ReferenceSequenceFile reference, final SAMFileHeader header) {
-        if (header.getSortOrder() == SAMFileHeader.SortOrder.coordinate) {
-            this.pairEndInfoByName = new CoordinateSortedPairEndInfoMap();
-        } else {
-            this.pairEndInfoByName = new InMemoryPairEndInfoMap();
-        }
-        if (reference != null) {
-            this.refFileWalker = new ReferenceSequenceFileWalker(reference);
-        }
-    }
-
-    private void cleanup() {
-        this.errorsByType = null;
-        this.pairEndInfoByName = null;
-        this.refFileWalker = null;
-    }
-
-    private void validateNmTag(final SAMRecord record, final long recordNumber) {
-        if (!record.getReadUnmappedFlag()) {
-            final Integer tagNucleotideDiffs = record.getIntegerAttribute(ReservedTagConstants.NM);
-            if (tagNucleotideDiffs == null) {
-                addError(new SAMValidationError(
-                        Type.MISSING_TAG_NM,
-                        "NM tag (nucleotide differences) is missing",
-                        record.getReadName(),
-                        recordNumber));
-            } else if (refFileWalker != null) {
-                final ReferenceSequence refSequence = refFileWalker.get(record.getReferenceIndex());
-                final int actualNucleotideDiffs = SequenceUtil.calculateSamNmTag(record, refSequence.getBases(),
-                        0, isBisulfiteSequenced());
-
-                if (!tagNucleotideDiffs.equals(actualNucleotideDiffs)) {
-                    addError(new SAMValidationError(
-                            Type.INVALID_TAG_NM,
-                            "NM tag (nucleotide differences) in file [" + tagNucleotideDiffs +
-                                    "] does not match reality [" + actualNucleotideDiffs + "]",
-                            record.getReadName(),
-                            recordNumber));
-                }
-            }
-        }
-    }
-
-    private void validateMateFields(final SAMRecord record, final long recordNumber) {
-        if (!record.getReadPairedFlag() || record.isSecondaryOrSupplementary()) {
-            return;
-        }
-        validateMateCigar(record, recordNumber);
-
-        final PairEndInfo pairEndInfo = pairEndInfoByName.remove(record.getReferenceIndex(), record.getReadName());
-        if (pairEndInfo == null) {
-            pairEndInfoByName.put(record.getMateReferenceIndex(), record.getReadName(), new PairEndInfo(record, recordNumber));
-        } else {
-            final List<SAMValidationError> errors =
-                    pairEndInfo.validateMates(new PairEndInfo(record, recordNumber), record.getReadName());
-            for (final SAMValidationError error : errors) {
-                addError(error);
-            }
-        }
-    }
-
-    private void validateHeader(final SAMFileHeader fileHeader) {
-        for (final SAMValidationError error : fileHeader.getValidationErrors()) {
-            addError(error);
-        }
-        if (fileHeader.getVersion() == null) {
-            addError(new SAMValidationError(Type.MISSING_VERSION_NUMBER, "Header has no version number", null));
-        } else if (!SAMFileHeader.ACCEPTABLE_VERSIONS.contains(fileHeader.getVersion())) {
-            addError(new SAMValidationError(Type.INVALID_VERSION_NUMBER, "Header version: " +
-                    fileHeader.getVersion() + " does not match any of the acceptable versions: " +
-                    StringUtil.join(", ", SAMFileHeader.ACCEPTABLE_VERSIONS.toArray(new String[0])),
-                    null));
-        }
-        if (fileHeader.getSequenceDictionary().isEmpty()) {
-            sequenceDictionaryEmptyAndNoWarningEmitted = true;
-        }
-        if (fileHeader.getReadGroups().isEmpty()) {
-            addError(new SAMValidationError(Type.MISSING_READ_GROUP, "Read groups is empty", null));
-        }
-        final List<SAMProgramRecord> pgs = fileHeader.getProgramRecords();
-        for (int i = 0; i < pgs.size() - 1; i++) {
-            for (int j = i + 1; j < pgs.size(); j++) {
-                if (pgs.get(i).getProgramGroupId().equals(pgs.get(j).getProgramGroupId())) {
-                    addError(new SAMValidationError(Type.DUPLICATE_PROGRAM_GROUP_ID, "Duplicate " +
-                            "program group id: " + pgs.get(i).getProgramGroupId(), null));
-                }
-            }
-        }
-
-        final List<SAMReadGroupRecord> rgs = fileHeader.getReadGroups();
-        final Set<String> readGroupIDs = new HashSet<String>();
-
-        for (final SAMReadGroupRecord record : rgs) {
-            final String readGroupID = record.getReadGroupId();
-            if (readGroupIDs.contains(readGroupID)) {
-                addError(new SAMValidationError(Type.DUPLICATE_READ_GROUP_ID, "Duplicate " +
-                        "read group id: " + readGroupID, null));
-            } else {
-                readGroupIDs.add(readGroupID);
-            }
-
-            final String platformValue = record.getPlatform();
-            if (platformValue == null || "".equals(platformValue)) {
-                addError(new SAMValidationError(Type.MISSING_PLATFORM_VALUE,
-                        "A platform (PL) attribute was not found for read group ",
-                        readGroupID));
-            }
-        }
-
-    }
-
-    private void addError(final SAMValidationError error) {
-        // Just ignore an error if it's of a type we're not interested in
-        if (this.errorsToIgnore.contains(error.getType())) return;
-
-        if (this.ignoreWarnings && error.getType().severity == SAMValidationError.Severity.WARNING) return;
-
-        this.errorsByType.increment(error.getType());
-        if (verbose) {
-            out.println(error);
-            out.flush();
-            if (this.errorsByType.getCount() >= maxVerboseOutput) {
-                throw new MaxOutputExceededException();
-            }
-        }
-    }
-
-    /**
-     * Control verbosity
-     *
-     * @param verbose          True in order to emit a message per error or warning.
-     * @param maxVerboseOutput If verbose, emit no more than this many messages.  Ignored if !verbose.
-     */
-    public void setVerbose(final boolean verbose, final int maxVerboseOutput) {
-        this.verbose = verbose;
-        this.maxVerboseOutput = maxVerboseOutput;
-    }
-
-    public boolean isBisulfiteSequenced() {
-        return bisulfiteSequenced;
-    }
-
-    public void setBisulfiteSequenced(boolean bisulfiteSequenced) {
-        this.bisulfiteSequenced = bisulfiteSequenced;
-    }
-
-    public SamFileValidator setValidateIndex(boolean validateIndex) {
-        // The SAMFileReader must also have IndexCaching enabled to have the index validated,
-        // samReader.enableIndexCaching(true);
-        this.validateIndex = validateIndex;
-        return this;
-    }
-
-    public static class ValidationMetrics extends MetricBase {
-    }
-
-    /**
-     * This class is used so we don't have to store the entire SAMRecord in memory while we wait
-     * to find a record's mate and also to store the record number.
-     */
-    private static class PairEndInfo {
-        private final int readAlignmentStart;
-        private final int readReferenceIndex;
-        private final boolean readNegStrandFlag;
-        private final boolean readUnmappedFlag;
-        private final String readCigarString;
-
-        private final int mateAlignmentStart;
-        private final int mateReferenceIndex;
-        private final boolean mateNegStrandFlag;
-        private final boolean mateUnmappedFlag;
-        private final String mateCigarString;
-
-        private final boolean firstOfPairFlag;
-
-        private final long recordNumber;
-
-        public PairEndInfo(final SAMRecord record, final long recordNumber) {
-            this.recordNumber = recordNumber;
-
-            this.readAlignmentStart = record.getAlignmentStart();
-            this.readNegStrandFlag = record.getReadNegativeStrandFlag();
-            this.readReferenceIndex = record.getReferenceIndex();
-            this.readUnmappedFlag = record.getReadUnmappedFlag();
-            this.readCigarString = record.getCigarString();
-
-            this.mateAlignmentStart = record.getMateAlignmentStart();
-            this.mateNegStrandFlag = record.getMateNegativeStrandFlag();
-            this.mateReferenceIndex = record.getMateReferenceIndex();
-            this.mateUnmappedFlag = record.getMateUnmappedFlag();
-            final Object mcs = record.getAttribute(SAMTag.MC.name());
-            this.mateCigarString = (mcs != null) ? (String) mcs : null;
-
-            this.firstOfPairFlag = record.getFirstOfPairFlag();
-        }
-
-        private PairEndInfo(int readAlignmentStart, int readReferenceIndex, boolean readNegStrandFlag, boolean readUnmappedFlag,
-                            String readCigarString,
-                            int mateAlignmentStart, int mateReferenceIndex, boolean mateNegStrandFlag, boolean mateUnmappedFlag,
-                            String mateCigarString,
-                            boolean firstOfPairFlag, long recordNumber) {
-            this.readAlignmentStart = readAlignmentStart;
-            this.readReferenceIndex = readReferenceIndex;
-            this.readNegStrandFlag = readNegStrandFlag;
-            this.readUnmappedFlag = readUnmappedFlag;
-            this.readCigarString = readCigarString;
-            this.mateAlignmentStart = mateAlignmentStart;
-            this.mateReferenceIndex = mateReferenceIndex;
-            this.mateNegStrandFlag = mateNegStrandFlag;
-            this.mateUnmappedFlag = mateUnmappedFlag;
-            this.mateCigarString = mateCigarString;
-            this.firstOfPairFlag = firstOfPairFlag;
-            this.recordNumber = recordNumber;
-        }
-
-        public List<SAMValidationError> validateMates(final PairEndInfo mate, final String readName) {
-            final List<SAMValidationError> errors = new ArrayList<SAMValidationError>();
-            validateMateFields(this, mate, readName, errors);
-            validateMateFields(mate, this, readName, errors);
-            // Validations that should not be repeated on both ends
-            if (this.firstOfPairFlag == mate.firstOfPairFlag) {
-                final String whichEnd = this.firstOfPairFlag ? "first" : "second";
-                errors.add(new SAMValidationError(
-                        Type.MATES_ARE_SAME_END,
-                        "Both mates are marked as " + whichEnd + " of pair",
-                        readName,
-                        this.recordNumber
-                ));
-            }
-            return errors;
-        }
-
-        private void validateMateFields(final PairEndInfo end1, final PairEndInfo end2, final String readName, final List<SAMValidationError> errors) {
-            if (end1.mateAlignmentStart != end2.readAlignmentStart) {
-                errors.add(new SAMValidationError(
-                        Type.MISMATCH_MATE_ALIGNMENT_START,
-                        "Mate alignment does not match alignment start of mate",
-                        readName,
-                        end1.recordNumber));
-            }
-            if (end1.mateNegStrandFlag != end2.readNegStrandFlag) {
-                errors.add(new SAMValidationError(
-                        Type.MISMATCH_FLAG_MATE_NEG_STRAND,
-                        "Mate negative strand flag does not match read negative strand flag of mate",
-                        readName,
-                        end1.recordNumber));
-            }
-            if (end1.mateReferenceIndex != end2.readReferenceIndex) {
-                errors.add(new SAMValidationError(
-                        Type.MISMATCH_MATE_REF_INDEX,
-                        "Mate reference index (MRNM) does not match reference index of mate",
-                        readName,
-                        end1.recordNumber));
-            }
-            if (end1.mateUnmappedFlag != end2.readUnmappedFlag) {
-                errors.add(new SAMValidationError(
-                        Type.MISMATCH_FLAG_MATE_UNMAPPED,
-                        "Mate unmapped flag does not match read unmapped flag of mate",
-                        readName,
-                        end1.recordNumber));
-            }
-            if ((end1.mateCigarString != null) && (!end1.mateCigarString.equals(end2.readCigarString))) {
-                errors.add(new SAMValidationError(
-                        Type.MISMATCH_MATE_CIGAR_STRING,
-                        "Mate CIGAR string does not match CIGAR string of mate",
-                        readName,
-                        end1.recordNumber));
-            }
-            // Note - don't need to validate that the mateCigarString is a valid cigar string, since this
-            // will be validated by validateCigar on the mate's record itself.
-        }
-    }
-
-    /**
-     * Thrown in addError indicating that maxVerboseOutput has been exceeded and processing should stop
-     */
-    private static class MaxOutputExceededException extends PicardException {
-        MaxOutputExceededException() {
-            super("maxVerboseOutput exceeded.");
-        }
-    }
-
-    interface PairEndInfoMap extends Iterable<Map.Entry<String, PairEndInfo>> {
-        void put(int mateReferenceIndex, String key, PairEndInfo value);
-
-        PairEndInfo remove(int mateReferenceIndex, String key);
-
-        CloseableIterator<Map.Entry<String, PairEndInfo>> iterator();
-    }
-
-    private class CoordinateSortedPairEndInfoMap implements PairEndInfoMap {
-        private final CoordinateSortedPairInfoMap<String, PairEndInfo> onDiskMap =
-                new CoordinateSortedPairInfoMap<String, PairEndInfo>(maxTempFiles, new Codec());
-
-        public void put(int mateReferenceIndex, String key, PairEndInfo value) {
-            onDiskMap.put(mateReferenceIndex, key, value);
-        }
-
-        public PairEndInfo remove(int mateReferenceIndex, String key) {
-            return onDiskMap.remove(mateReferenceIndex, key);
-        }
-
-        public CloseableIterator<Map.Entry<String, PairEndInfo>> iterator() {
-            return onDiskMap.iterator();
-        }
-
-        private class Codec implements CoordinateSortedPairInfoMap.Codec<String, PairEndInfo> {
-            private DataInputStream in;
-            private DataOutputStream out;
-
-            public void setOutputStream(final OutputStream os) {
-                this.out = new DataOutputStream(os);
-            }
-
-            public void setInputStream(final InputStream is) {
-                this.in = new DataInputStream(is);
-            }
-
-            public void encode(final String key, final PairEndInfo record) {
-                try {
-                    out.writeUTF(key);
-                    out.writeInt(record.readAlignmentStart);
-                    out.writeInt(record.readReferenceIndex);
-                    out.writeBoolean(record.readNegStrandFlag);
-                    out.writeBoolean(record.readUnmappedFlag);
-                    out.writeUTF(record.readCigarString);
-                    out.writeInt(record.mateAlignmentStart);
-                    out.writeInt(record.mateReferenceIndex);
-                    out.writeBoolean(record.mateNegStrandFlag);
-                    out.writeBoolean(record.mateUnmappedFlag);
-                    // writeUTF can't take null, so store a null mateCigarString as an empty string
-                    out.writeUTF(record.mateCigarString != null ? record.mateCigarString : "");
-                    out.writeBoolean(record.firstOfPairFlag);
-                    out.writeLong(record.recordNumber);
-                } catch (IOException e) {
-                    throw new PicardException("Error spilling PairInfo to disk", e);
-                }
-            }
-
-            public Map.Entry<String, PairEndInfo> decode() {
-                try {
-                    final String key = in.readUTF();
-                    final int readAlignmentStart = in.readInt();
-                    final int readReferenceIndex = in.readInt();
-                    final boolean readNegStrandFlag = in.readBoolean();
-                    final boolean readUnmappedFlag = in.readBoolean();
-                    final String readCigarString = in.readUTF();
-
-                    final int mateAlignmentStart = in.readInt();
-                    final int mateReferenceIndex = in.readInt();
-                    final boolean mateNegStrandFlag = in.readBoolean();
-                    final boolean mateUnmappedFlag = in.readBoolean();
-
-                    // read mateCigarString - note that null value is stored as an empty string
-                    final String mcs = in.readUTF();
-                    final String mateCigarString = !mcs.isEmpty() ? mcs : null;
-
-                    final boolean firstOfPairFlag = in.readBoolean();
-
-                    final long recordNumber = in.readLong();
-                    final PairEndInfo rec = new PairEndInfo(readAlignmentStart, readReferenceIndex, readNegStrandFlag,
-                            readUnmappedFlag, readCigarString, mateAlignmentStart, mateReferenceIndex, mateNegStrandFlag,
-                            mateUnmappedFlag, mateCigarString,
-                            firstOfPairFlag, recordNumber);
-                    return new AbstractMap.SimpleEntry(key, rec);
-                } catch (IOException e) {
-                    throw new PicardException("Error reading PairInfo from disk", e);
-                }
-            }
-        }
-    }
-
-    private static class InMemoryPairEndInfoMap implements PairEndInfoMap {
-        private final Map<String, PairEndInfo> map = new HashMap<String, PairEndInfo>();
-
-        public void put(int mateReferenceIndex, String key, PairEndInfo value) {
-            if (mateReferenceIndex != value.mateReferenceIndex)
-                throw new IllegalArgumentException("mateReferenceIndex does not agree with PairEndInfo");
-            map.put(key, value);
-        }
-
-        public PairEndInfo remove(int mateReferenceIndex, String key) {
-            return map.remove(key);
-        }
-
-        public CloseableIterator<Map.Entry<String, PairEndInfo>> iterator() {
-            final Iterator<Map.Entry<String, PairEndInfo>> it = map.entrySet().iterator();
-            return new CloseableIterator<Map.Entry<String, PairEndInfo>>() {
-                public void close() {
-                    // do nothing
-                }
-
-                public boolean hasNext() {
-                    return it.hasNext();
-                }
-
-                public Map.Entry<String, PairEndInfo> next() {
-                    return it.next();
-                }
-
-                public void remove() {
-                    it.remove();
-                }
-            };
-        }
-    }
-}
diff --git a/src/java/net/sf/picard/sam/SamFormatConverter.java b/src/java/net/sf/picard/sam/SamFormatConverter.java
deleted file mode 100644
index 6cc2759..0000000
--- a/src/java/net/sf/picard/sam/SamFormatConverter.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.sam;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.StandardOptionDefinitions;
-import net.sf.picard.cmdline.Usage;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.util.Log;
-import net.sf.picard.util.ProgressLogger;
-import net.sf.samtools.*;
-
-import java.io.File;
-import java.util.Iterator;
-
-/**
- * Converts a BAM file to human-readable SAM output or vice versa
- *
- * @author ktibbett at broadinstitute.org
- */
-public class SamFormatConverter extends CommandLineProgram {
-
-    private static final String PROGRAM_VERSION = "1.0";
-
-    // The following attributes define the command-line arguments
-    @Usage
-    public String USAGE = getStandardUsagePreamble() + "Convert a BAM file to a SAM file, or BAM to SAM.\n" + "" +
-            "Input and output formats are determined by file extension.";
-
-    @Option(doc="The BAM or SAM file to parse.", shortName= StandardOptionDefinitions.INPUT_SHORT_NAME) public File INPUT;
-    @Option(doc="The BAM or SAM output file. ", shortName=StandardOptionDefinitions.OUTPUT_SHORT_NAME) public File OUTPUT;
-
-    public static void main(final String[] argv) {
-        new SamFormatConverter().instanceMainWithExit(argv);
-    }
-
-
-    protected int doWork() {
-        IoUtil.assertFileIsReadable(INPUT);
-        IoUtil.assertFileIsWritable(OUTPUT);
-        final SAMFileReader reader = new SAMFileReader(INPUT);
-        final SAMFileWriter writer = new SAMFileWriterFactory().makeSAMOrBAMWriter(reader.getFileHeader(), true, OUTPUT);
-
-        if  (CREATE_INDEX && writer.getFileHeader().getSortOrder() != SAMFileHeader.SortOrder.coordinate){
-            throw new PicardException("Can't CREATE_INDEX unless sort order is coordinate");
-        }
-
-        final ProgressLogger progress = new ProgressLogger(Log.getInstance(SamFormatConverter.class));
-        for (final SAMRecord rec : reader) {
-            writer.addAlignment(rec);
-            progress.record(rec);
-        }
-        reader.close();
-        writer.close();
-        return 0;
-    }
-}
diff --git a/src/java/net/sf/picard/sam/SamToFastq.java b/src/java/net/sf/picard/sam/SamToFastq.java
deleted file mode 100755
index c81dd1a..0000000
--- a/src/java/net/sf/picard/sam/SamToFastq.java
+++ /dev/null
@@ -1,438 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.sam;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.StandardOptionDefinitions;
-import net.sf.picard.cmdline.Usage;
-import net.sf.picard.fastq.FastqRecord;
-import net.sf.picard.fastq.FastqWriter;
-import net.sf.picard.fastq.FastqWriterFactory;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.util.Log;
-import net.sf.picard.util.ProgressLogger;
-import net.sf.samtools.*;
-import net.sf.samtools.util.Lazy;
-import net.sf.samtools.util.SequenceUtil;
-import net.sf.samtools.util.StringUtil;
-
-import java.io.File;
-import java.util.*;
-
-/**
- * <p/>
- * Extracts read sequences and qualities from the input SAM/BAM file and writes them into
- * the output file in Sanger fastq format.
- * See <a href="http://maq.sourceforge.net/fastq.shtml">MAQ FastQ specification</a> for details.
- * In the RC mode (default is True), if the read is aligned and the alignment is to the reverse strand on the genome,
- * the read's sequence from input sam file will be reverse-complemented prior to writing it to fastq in order restore correctly
- * the original read sequence as it was generated by the sequencer.
- */
-public class SamToFastq extends CommandLineProgram {
-    @Usage
-    public String USAGE = getStandardUsagePreamble() + "Extracts read sequences and qualities from the input SAM/BAM file and writes them into " +
-            "the output file in Sanger fastq format. In the RC mode (default is True), if the read is aligned and the alignment is to the reverse strand on the genome, " +
-            "the read's sequence from input SAM file will be reverse-complemented prior to writing it to fastq in order restore correctly" +
-            "the original read sequence as it was generated by the sequencer.";
-
-    @Option(doc = "Input SAM/BAM file to extract reads from", shortName = StandardOptionDefinitions.INPUT_SHORT_NAME)
-    public File INPUT;
-
-    @Option(shortName = "F", doc = "Output fastq file (single-end fastq or, if paired, first end of the pair fastq).",
-            mutex = {"OUTPUT_PER_RG"})
-    public File FASTQ;
-
-    @Option(shortName = "F2", doc = "Output fastq file (if paired, second end of the pair fastq).", optional = true,
-            mutex = {"OUTPUT_PER_RG"})
-    public File SECOND_END_FASTQ;
-
-    @Option(shortName = "FU", doc = "Output fastq file for unpaired reads; may only be provided in paired-fastq mode", optional = true, mutex = {"OUTPUT_PER_RG"})
-    public File UNPAIRED_FASTQ;
-
-    @Option(shortName = "OPRG", doc = "Output a fastq file per read group (two fastq files per read group if the group is paired).",
-            optional = true, mutex = {"FASTQ", "SECOND_END_FASTQ", "UNPAIRED_FASTQ"})
-    public boolean OUTPUT_PER_RG;
-
-    @Option(shortName = "ODIR", doc = "Directory in which to output the fastq file(s).  Used only when OUTPUT_PER_RG is true.",
-            optional = true)
-    public File OUTPUT_DIR;
-
-    @Option(shortName = "RC", doc = "Re-reverse bases and qualities of reads with negative strand flag set before writing them to fastq",
-            optional = true)
-    public boolean RE_REVERSE = true;
-
-    @Option(shortName = "INTER", doc = "Will generate an interleaved fastq if paired, each line will have /1 or /2 to describe which end it came from")
-    public boolean INTERLEAVE = false;
-
-    @Option(shortName = "NON_PF", doc = "Include non-PF reads from the SAM file into the output FASTQ files.")
-    public boolean INCLUDE_NON_PF_READS = false;
-
-    @Option(shortName = "CLIP_ATTR", doc = "The attribute that stores the position at which " +
-            "the SAM record should be clipped", optional = true)
-    public String CLIPPING_ATTRIBUTE;
-
-    @Option(shortName = "CLIP_ACT", doc = "The action that should be taken with clipped reads: " +
-            "'X' means the reads and qualities should be trimmed at the clipped position; " +
-            "'N' means the bases should be changed to Ns in the clipped region; and any " +
-            "integer means that the base qualities should be set to that value in the " +
-            "clipped region.", optional = true)
-    public String CLIPPING_ACTION;
-
-    @Option(shortName = "R1_TRIM", doc = "The number of bases to trim from the beginning of read 1.")
-    public int READ1_TRIM = 0;
-
-    @Option(shortName = "R1_MAX_BASES", doc = "The maximum number of bases to write from read 1 after trimming. " +
-            "If there are fewer than this many bases left after trimming, all will be written.  If this " +
-            "value is null then all bases left after trimming will be written.", optional = true)
-    public Integer READ1_MAX_BASES_TO_WRITE;
-
-    @Option(shortName = "R2_TRIM", doc = "The number of bases to trim from the beginning of read 2.")
-    public int READ2_TRIM = 0;
-
-    @Option(shortName = "R2_MAX_BASES", doc = "The maximum number of bases to write from read 2 after trimming. " +
-            "If there are fewer than this many bases left after trimming, all will be written.  If this " +
-            "value is null then all bases left after trimming will be written.", optional = true)
-    public Integer READ2_MAX_BASES_TO_WRITE;
-
-    @Option(doc = "If true, include non-primary alignments in the output.  Support of non-primary alignments in SamToFastq " +
-            "is not comprehensive, so there may be exceptions if this is set to true and there are paired reads with non-primary alignments.")
-    public boolean INCLUDE_NON_PRIMARY_ALIGNMENTS = false;
-
-    private final Log log = Log.getInstance(SamToFastq.class);
-
-    public static void main(final String[] argv) {
-        System.exit(new SamToFastq().instanceMain(argv));
-    }
-
-    protected int doWork() {
-        IoUtil.assertFileIsReadable(INPUT);
-        final SAMFileReader reader = new SAMFileReader(IoUtil.openFileForReading(INPUT));
-        final Map<String, SAMRecord> firstSeenMates = new HashMap<String, SAMRecord>();
-        final FastqWriterFactory factory = new FastqWriterFactory();
-        factory.setCreateMd5(CREATE_MD5_FILE);
-        final Map<SAMReadGroupRecord, FastqWriters> writers = generateWriters(reader.getFileHeader().getReadGroups(), factory);
-
-        final ProgressLogger progress = new ProgressLogger(log);
-        for (final SAMRecord currentRecord : reader) {
-            if (currentRecord.isSecondaryOrSupplementary() && !INCLUDE_NON_PRIMARY_ALIGNMENTS)
-                continue;
-
-            // Skip non-PF reads as necessary
-            if (currentRecord.getReadFailsVendorQualityCheckFlag() && !INCLUDE_NON_PF_READS)
-                continue;
-
-            final FastqWriters fq = writers.get(currentRecord.getReadGroup());
-            if (currentRecord.getReadPairedFlag()) {
-                final String currentReadName = currentRecord.getReadName();
-                final SAMRecord firstRecord = firstSeenMates.remove(currentReadName);
-                if (firstRecord == null) {
-                    firstSeenMates.put(currentReadName, currentRecord);
-                } else {
-                    assertPairedMates(firstRecord, currentRecord);
-
-                    final SAMRecord read1 =
-                            currentRecord.getFirstOfPairFlag() ? currentRecord : firstRecord;
-                    final SAMRecord read2 =
-                            currentRecord.getFirstOfPairFlag() ? firstRecord : currentRecord;
-                    writeRecord(read1, 1, fq.getFirstOfPair(), READ1_TRIM, READ1_MAX_BASES_TO_WRITE);
-                    final FastqWriter secondOfPairWriter = fq.getSecondOfPair();
-                    if (secondOfPairWriter == null) {
-                        throw new PicardException("Input contains paired reads but no SECOND_END_FASTQ specified.");
-                    }
-                    writeRecord(read2, 2, secondOfPairWriter, READ2_TRIM, READ2_MAX_BASES_TO_WRITE);
-                }
-            } else {
-                writeRecord(currentRecord, null, fq.getUnpaired(), READ1_TRIM, READ1_MAX_BASES_TO_WRITE);
-            }
-
-            progress.record(currentRecord);
-        }
-
-        reader.close();
-
-        // Close all the fastq writers being careful to close each one only once!
-        for (final FastqWriters writerMapping : new HashSet<FastqWriters>(writers.values())) {
-            writerMapping.closeAll();
-        }
-
-        if (firstSeenMates.size() > 0) {
-            SAMUtils.processValidationError(new SAMValidationError(SAMValidationError.Type.MATE_NOT_FOUND,
-                    "Found " + firstSeenMates.size() + " unpaired mates", null), VALIDATION_STRINGENCY);
-        }
-
-        return 0;
-    }
-
-    /**
-     * Generates the writers for the given read groups or, if we are not emitting per-read-group, just returns the single set of writers.
-     */
-    private Map<SAMReadGroupRecord, FastqWriters> generateWriters(final List<SAMReadGroupRecord> samReadGroupRecords,
-                                                                  final FastqWriterFactory factory) {
-
-        final Map<SAMReadGroupRecord, FastqWriters> writerMap = new HashMap<SAMReadGroupRecord, FastqWriters>();
-
-        final FastqWriters fastqWriters;
-        if (!OUTPUT_PER_RG) {
-            IoUtil.assertFileIsWritable(FASTQ);
-            IoUtil.openFileForWriting(FASTQ);
-            final FastqWriter firstOfPairWriter = factory.newWriter(FASTQ);
-
-            final FastqWriter secondOfPairWriter;
-            if (INTERLEAVE) {
-                secondOfPairWriter = firstOfPairWriter;
-            } else if (SECOND_END_FASTQ != null) {
-                IoUtil.assertFileIsWritable(SECOND_END_FASTQ);
-                IoUtil.openFileForWriting(SECOND_END_FASTQ);
-                secondOfPairWriter = factory.newWriter(SECOND_END_FASTQ);
-            } else {
-                secondOfPairWriter = null;
-            }
-
-            /** Prepare the writer that will accept unpaired reads.  If we're emitting a single fastq - and assuming single-ended reads -
-             * then this is simply that one fastq writer.  Otherwise, if we're doing paired-end, we emit to a third new writer, since 
-             * the other two fastqs are accepting only paired end reads. */
-            final FastqWriter unpairedWriter = UNPAIRED_FASTQ == null ? firstOfPairWriter : factory.newWriter(UNPAIRED_FASTQ);
-            fastqWriters = new FastqWriters(firstOfPairWriter, secondOfPairWriter, unpairedWriter);
-
-            // For all read groups we may find in the bam, register this single set of writers for them.
-            writerMap.put(null, fastqWriters);
-            for (final SAMReadGroupRecord rg : samReadGroupRecords) {
-                writerMap.put(rg, fastqWriters);
-            }
-        } else {
-            // When we're creating a fastq-group per readgroup, by convention we do not emit a special fastq for unpaired reads.
-            for (final SAMReadGroupRecord rg : samReadGroupRecords) {
-                final FastqWriter firstOfPairWriter = factory.newWriter(makeReadGroupFile(rg, "_1"));
-                // Create this writer on-the-fly; if we find no second-of-pair reads, don't bother making a writer (or delegating, 
-                // if we're interleaving).
-                final Lazy<FastqWriter> lazySecondOfPairWriter = new Lazy<FastqWriter>(new Lazy.LazyInitializer<FastqWriter>() {
-                    @Override
-                    public FastqWriter make() {
-                        return INTERLEAVE ? firstOfPairWriter : factory.newWriter(makeReadGroupFile(rg, "_2"));
-                    }
-                });
-                writerMap.put(rg, new FastqWriters(firstOfPairWriter, lazySecondOfPairWriter, firstOfPairWriter));
-            }
-        }
-        return writerMap;
-    }
-
-
-    private File makeReadGroupFile(final SAMReadGroupRecord readGroup, final String preExtSuffix) {
-        String fileName = readGroup.getPlatformUnit();
-        if (fileName == null) fileName = readGroup.getReadGroupId();
-        fileName = IoUtil.makeFileNameSafe(fileName);
-        if (preExtSuffix != null) fileName += preExtSuffix;
-        fileName += ".fastq";
-
-        final File result = (OUTPUT_DIR != null)
-                ? new File(OUTPUT_DIR, fileName)
-                : new File(fileName);
-        IoUtil.assertFileIsWritable(result);
-        return result;
-    }
-
-    void writeRecord(final SAMRecord read, final Integer mateNumber, final FastqWriter writer,
-                     final int basesToTrim, final Integer maxBasesToWrite) {
-        final String seqHeader = mateNumber == null ? read.getReadName() : read.getReadName() + "/" + mateNumber;
-        String readString = read.getReadString();
-        String baseQualities = read.getBaseQualityString();
-
-        // If we're clipping, do the right thing to the bases or qualities
-        if (CLIPPING_ATTRIBUTE != null) {
-            final Integer clipPoint = (Integer) read.getAttribute(CLIPPING_ATTRIBUTE);
-            if (clipPoint != null) {
-                if (CLIPPING_ACTION.equalsIgnoreCase("X")) {
-                    readString = clip(readString, clipPoint, null,
-                            !read.getReadNegativeStrandFlag());
-                    baseQualities = clip(baseQualities, clipPoint, null,
-                            !read.getReadNegativeStrandFlag());
-
-                } else if (CLIPPING_ACTION.equalsIgnoreCase("N")) {
-                    readString = clip(readString, clipPoint, 'N',
-                            !read.getReadNegativeStrandFlag());
-                } else {
-                    final char newQual = SAMUtils.phredToFastq(
-                            new byte[]{(byte) Integer.parseInt(CLIPPING_ACTION)}).charAt(0);
-                    baseQualities = clip(baseQualities, clipPoint, newQual,
-                            !read.getReadNegativeStrandFlag());
-                }
-            }
-        }
-        if (RE_REVERSE && read.getReadNegativeStrandFlag()) {
-            readString = SequenceUtil.reverseComplement(readString);
-            baseQualities = StringUtil.reverseString(baseQualities);
-        }
-        if (basesToTrim > 0) {
-            readString = readString.substring(basesToTrim);
-            baseQualities = baseQualities.substring(basesToTrim);
-        }
-
-        if (maxBasesToWrite != null && maxBasesToWrite < readString.length()) {
-            readString = readString.substring(0, maxBasesToWrite);
-            baseQualities = baseQualities.substring(0, maxBasesToWrite);
-        }
-
-        writer.write(new FastqRecord(seqHeader, readString, "", baseQualities));
-
-    }
-
-    /**
-     * Utility method to handle the changes required to the base/quality strings by the clipping
-     * parameters.
-     *
-     * @param src         The string to clip
-     * @param point       The 1-based position of the first clipped base in the read
-     * @param replacement If non-null, the character to replace in the clipped positions
-     *                    in the string (a quality score or 'N').  If null, just trim src
-     * @param posStrand   Whether the read is on the positive strand
-     * @return String       The clipped read or qualities
-     */
-    private String clip(final String src, final int point, final Character replacement, final boolean posStrand) {
-        final int len = src.length();
-        String result = posStrand ? src.substring(0, point - 1) : src.substring(len - point + 1);
-        if (replacement != null) {
-            if (posStrand) {
-                for (int i = point; i <= len; i++) {
-                    result += replacement;
-                }
-            } else {
-                for (int i = 0; i <= len - point; i++) {
-                    result = replacement + result;
-                }
-            }
-        }
-        return result;
-    }
-
-    private void assertPairedMates(final SAMRecord record1, final SAMRecord record2) {
-        if (!(record1.getFirstOfPairFlag() && record2.getSecondOfPairFlag() ||
-                record2.getFirstOfPairFlag() && record1.getSecondOfPairFlag())) {
-            throw new PicardException("Illegal mate state: " + record1.getReadName());
-        }
-    }
-
-
-    /**
-     * Put any custom command-line validation in an override of this method.
-     * clp is initialized at this point and can be used to print usage and access argv.
-     * 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
-     * messages to be written to the appropriate place.
-     */
-    protected String[] customCommandLineValidation() {
-        if (INTERLEAVE && SECOND_END_FASTQ != null) {
-            return new String[]{
-                    "Cannot set INTERLEAVE to true and pass in a SECOND_END_FASTQ"
-            };
-        }
-
-        if (UNPAIRED_FASTQ != null && SECOND_END_FASTQ == null) {
-            return new String[]{
-                    "UNPAIRED_FASTQ may only be set when also emitting read1 and read2 fastqs (so SECOND_END_FASTQ must also be set)."
-            };
-        }
-
-        if ((CLIPPING_ATTRIBUTE != null && CLIPPING_ACTION == null) ||
-                (CLIPPING_ATTRIBUTE == null && CLIPPING_ACTION != null)) {
-            return new String[]{
-                    "Both or neither of CLIPPING_ATTRIBUTE and CLIPPING_ACTION should be set."};
-        }
-
-        if (CLIPPING_ACTION != null) {
-            if (CLIPPING_ACTION.equals("N") || CLIPPING_ACTION.equals("X")) {
-                // Do nothing, this is fine
-            } else {
-                try {
-                    Integer.parseInt(CLIPPING_ACTION);
-                } catch (NumberFormatException nfe) {
-                    return new String[]{"CLIPPING ACTION must be one of: N, X, or an integer"};
-                }
-            }
-        }
-
-        if ((OUTPUT_PER_RG && OUTPUT_DIR == null) || ((!OUTPUT_PER_RG) && OUTPUT_DIR != null)) {
-            return new String[]{
-                    "If OUTPUT_PER_RG is true, then OUTPUT_DIR should be set. " +
-                            "If "};
-        }
-
-
-        return null;
-    }
-
-    /**
-     * A collection of {@link net.sf.picard.fastq.FastqWriter}s for particular types of reads.
-     * <p/>
-     * Allows for lazy construction of the second-of-pair writer, since when we are in the "output per read group mode", we only wish to
-     * generate a second-of-pair fastq if we encounter a second-of-pair read.
-     */
-    static class FastqWriters {
-        private final FastqWriter firstOfPair, unpaired;
-        private final Lazy<FastqWriter> secondOfPair;
-
-        /** Constructor if the consumer wishes for the second-of-pair writer to be built on-the-fly. */
-        private FastqWriters(final FastqWriter firstOfPair, final Lazy<FastqWriter> secondOfPair, final FastqWriter unpaired) {
-            this.firstOfPair = firstOfPair;
-            this.unpaired = unpaired;
-            this.secondOfPair = secondOfPair;
-        }
-
-        /** Simple constructor; all writers are pre-initialized.. */
-        private FastqWriters(final FastqWriter firstOfPair, final FastqWriter secondOfPair, final FastqWriter unpaired) {
-            this(firstOfPair, new Lazy<FastqWriter>(new Lazy.LazyInitializer<FastqWriter>() {
-                @Override
-                public FastqWriter make() {
-                    return secondOfPair;
-                }
-            }), unpaired);
-        }
-
-        public FastqWriter getFirstOfPair() {
-            return firstOfPair;
-        }
-
-        public FastqWriter getSecondOfPair() {
-            return secondOfPair.get();
-        }
-
-        public FastqWriter getUnpaired() {
-            return unpaired;
-        }
-
-        public void closeAll() {
-            final Set<FastqWriter> fastqWriters = new HashSet<FastqWriter>();
-            fastqWriters.add(firstOfPair);
-            fastqWriters.add(unpaired);
-            // Make sure this is a no-op if the second writer was never fetched.
-            if (secondOfPair.isInitialized()) fastqWriters.add(secondOfPair.get());
-            for (final FastqWriter fastqWriter : fastqWriters) {
-                fastqWriter.close();
-            }
-        }
-    }
-}
diff --git a/src/java/net/sf/picard/sam/SortSam.java b/src/java/net/sf/picard/sam/SortSam.java
deleted file mode 100644
index ab5d324..0000000
--- a/src/java/net/sf/picard/sam/SortSam.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.sam;
-
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.StandardOptionDefinitions;
-import net.sf.picard.cmdline.Usage;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.util.Log;
-import net.sf.picard.util.ProgressLogger;
-import net.sf.samtools.*;
-
-import java.io.File;
-
-/**
- * @author alecw at broadinstitute.org
- */
-public class SortSam extends CommandLineProgram {
-    @Usage
-    public String USAGE = getStandardUsagePreamble() + "Sorts the input SAM or BAM.\n" + "" +
-            "Input and output formats are determined by file extension.";
-
-    @Option(doc="The BAM or SAM file to sort.", shortName= StandardOptionDefinitions.INPUT_SHORT_NAME)
-    public File INPUT;
-
-    @Option(doc="The sorted BAM or SAM output file. ", shortName=StandardOptionDefinitions.OUTPUT_SHORT_NAME)
-    public File OUTPUT;
-
-    @Option(shortName=StandardOptionDefinitions.SORT_ORDER_SHORT_NAME, doc="Sort order of output file")
-    public SAMFileHeader.SortOrder SORT_ORDER;
-
-    private final Log log = Log.getInstance(SortSam.class);
-
-    public static void main(final String[] argv) {
-        new SortSam().instanceMainWithExit(argv);
-    }
-
-    protected int doWork() {
-        IoUtil.assertFileIsReadable(INPUT);
-        IoUtil.assertFileIsWritable(OUTPUT);
-        final SAMFileReader reader = new SAMFileReader(IoUtil.openFileForReading(INPUT));
-        reader.getFileHeader().setSortOrder(SORT_ORDER);
-        final SAMFileWriter writer = new SAMFileWriterFactory().makeSAMOrBAMWriter(reader.getFileHeader(), false, OUTPUT);
-	    writer.setProgressLogger(
-			    new ProgressLogger(log, (int) 1e7, "Wrote", "records from a sorting collection"));
-
-        final ProgressLogger progress = new ProgressLogger(log, (int) 1e7, "Read");
-        for (final SAMRecord rec: reader) {
-            writer.addAlignment(rec);
-            progress.record(rec);
-        }
-
-        log.info("Finished reading inputs, merging and writing to output now.");
-
-        reader.close();
-        writer.close();
-        return 0;
-    }
-}
diff --git a/src/java/net/sf/picard/sam/ValidateSamFile.java b/src/java/net/sf/picard/sam/ValidateSamFile.java
deleted file mode 100644
index dc2d448..0000000
--- a/src/java/net/sf/picard/sam/ValidateSamFile.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.sam;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.PrintWriter;
-import java.util.List;
-import java.util.ArrayList;
-
-import net.sf.picard.cmdline.Usage;
-import net.sf.picard.util.FastqQualityFormat;
-import net.sf.samtools.SAMFileReader;
-import net.sf.samtools.SAMValidationError;
-import net.sf.picard.PicardException;
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.StandardOptionDefinitions;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.reference.ReferenceSequenceFile;
-import net.sf.picard.reference.ReferenceSequenceFileFactory;
-
-/**
- * Command line program wrapping SamFileValidator.
- *
- * @author Doug Voet
- */
-public class ValidateSamFile extends CommandLineProgram {
-
-    @Usage
-    public final String USAGE =
-		    getStandardUsagePreamble() +
-		    "Read a SAM or BAM file and report on its validity.";
-    
-    public enum Mode { VERBOSE, SUMMARY }
-    @Option(shortName=StandardOptionDefinitions.INPUT_SHORT_NAME,
-		    doc="Input SAM/BAM file")
-    public File INPUT;
-    
-    @Option(shortName=StandardOptionDefinitions.OUTPUT_SHORT_NAME,
-		    doc="Output file or standard out if missing",
-		    optional=true)
-    public File OUTPUT;
-    
-    @Option(shortName="M",
-		    doc="Mode of output")
-    public Mode MODE = Mode.VERBOSE;
-
-    @Option(doc="List of validation error types to ignore.")
-    public List<SAMValidationError.Type> IGNORE = new ArrayList<SAMValidationError.Type>();
-    
-    @Option(shortName="MO",
-		    doc="The maximum number of lines output in verbose mode")
-    public Integer MAX_OUTPUT = 100;
-    
-    @Option(shortName=StandardOptionDefinitions.REFERENCE_SHORT_NAME, 
-            doc="Reference sequence file, the NM tag check will be skipped if this is missing", 
-            optional=true)
-    public File REFERENCE_SEQUENCE;
-
-    @Option(doc="If true, only report errors and ignore warnings.")
-    public boolean IGNORE_WARNINGS = false;
-
-    @Option(doc="If true and input is a BAM file with an index file, also validates the index.")
-    public boolean VALIDATE_INDEX = true;
-
-    @Option (shortName="BISULFITE",
-		    doc="Whether the SAM or BAM file consists of bisulfite sequenced reads. " +
-            "If so, C->T is not counted as an error in computing the value of the NM tag.")
-    public boolean IS_BISULFITE_SEQUENCED = false;
-
-    @Option(doc="Relevant for a coordinate-sorted file containing read pairs only. " +
-            "Maximum number of file handles to keep open when spilling mate info to disk. " +
-            "Set this number a little lower than the per-process maximum number of file that may be open. " +
-            "This number can be found by executing the 'ulimit -n' command on a Unix system.")
-    public int MAX_OPEN_TEMP_FILES = 8000;
-
-    public static void main(final String[] args) {
-        System.exit(new ValidateSamFile().instanceMain(args));
-    }
-
-    @Override
-    protected int doWork() {
-        IoUtil.assertFileIsReadable(INPUT);
-        ReferenceSequenceFile reference = null;
-        if (REFERENCE_SEQUENCE != null) {
-            IoUtil.assertFileIsReadable(REFERENCE_SEQUENCE);
-            reference = ReferenceSequenceFileFactory.getReferenceSequenceFile(REFERENCE_SEQUENCE);
-
-        }
-        final PrintWriter out;
-        if (OUTPUT != null) {
-            IoUtil.assertFileIsWritable(OUTPUT);
-            try {
-                out = new PrintWriter(OUTPUT);
-            }
-            catch (FileNotFoundException e) {
-                // we already asserted this so we should not get here
-                throw new PicardException("Unexpected exception", e);
-            }
-        }
-        else {
-            out = new PrintWriter(System.out);
-        }
-
-        final SAMFileReader.ValidationStringency originalStringency = SAMFileReader.getDefaultValidationStringency();
-        SAMFileReader.setDefaultValidationStringency(SAMFileReader.ValidationStringency.SILENT);
-        boolean result;
-        try {
-            final SAMFileReader samReader = new SAMFileReader(INPUT);
-            if (!samReader.isBinary()) VALIDATE_INDEX=false;
-            if (VALIDATE_INDEX){
-                samReader.enableIndexCaching(true);
-            }
-            samReader.enableCrcChecking(true);
-
-            final SamFileValidator validator = new SamFileValidator(out, MAX_OPEN_TEMP_FILES);
-            validator.setErrorsToIgnore(IGNORE);
-
-            if (IGNORE_WARNINGS) {
-                validator.setIgnoreWarnings(IGNORE_WARNINGS);
-            }
-            if (MODE == Mode.SUMMARY) {
-                validator.setVerbose(false, 0);
-            } else {
-                validator.setVerbose(true, MAX_OUTPUT);
-            }
-            if (IS_BISULFITE_SEQUENCED) {
-                validator.setBisulfiteSequenced(IS_BISULFITE_SEQUENCED);
-            }
-            if (VALIDATE_INDEX){
-                validator.setValidateIndex(VALIDATE_INDEX);
-            }
-            if (IoUtil.isRegularPath(INPUT)) {
-                // Do not check termination if reading from a stream
-                validator.validateBamFileTermination(INPUT);
-            }
-
-            result = false;
-
-            switch (MODE) {
-                case SUMMARY:
-                    result = validator.validateSamFileSummary(samReader, reference);
-                    break;
-                case VERBOSE:
-                    result = validator.validateSamFileVerbose(samReader, reference);
-                    break;
-            }
-            out.flush();
-        } finally {
-            SAMFileReader.setDefaultValidationStringency(originalStringency);
-        }
-
-        return result ? 0 : 1;
-    }
-}
diff --git a/src/java/net/sf/picard/sam/ViewSam.java b/src/java/net/sf/picard/sam/ViewSam.java
deleted file mode 100644
index 291a4b0..0000000
--- a/src/java/net/sf/picard/sam/ViewSam.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.sam;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.StandardOptionDefinitions;
-import net.sf.picard.cmdline.Usage;
-import net.sf.picard.io.IoUtil;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.PrintStream;
-
-import net.sf.samtools.*;
-import net.sf.samtools.util.AsciiWriter;
-
-/**
- * Very simple command that just reads a SAM or BAM file and writes out the header
- * and each records to standard out.
- *
- * @author tfennell at broad.mit.edu
- */
-public class ViewSam extends CommandLineProgram {
-    public static enum AlignmentStatus { Aligned, Unaligned, All }
-    public static enum PfStatus { PF, NonPF, All }
-
-    @Usage public final String USAGE = getStandardUsagePreamble() + "Prints a SAM or BAM file to the screen.";
-    @Option(shortName=StandardOptionDefinitions.INPUT_SHORT_NAME, doc="The SAM or BAM file to view.")
-    public File INPUT;
-
-    @Option(doc="Print out all reads, just the aligned reads or just the unaligned reads.")
-    public AlignmentStatus ALIGNMENT_STATUS = AlignmentStatus.All;
-
-    @Option(doc="Print out all reads, just the PF reads or just the non-PF reads.")
-    public PfStatus PF_STATUS = PfStatus.All;
-
-    public static void main(final String[] args) {
-        new ViewSam().instanceMain(args);
-    }
-
-    @Override
-    protected int doWork() {
-        return writeSamText(System.out);
-    }
-
-    /**
-     * This is factored out of doWork only for unit testing.
-     */
-    int writeSamText(PrintStream printStream) {
-        try {
-            IoUtil.assertFileIsReadable(INPUT);
-            final SAMFileReader in = new SAMFileReader(INPUT);
-            final AsciiWriter writer = new AsciiWriter(printStream);
-            final SAMFileHeader header = in.getFileHeader();
-            if (header.getTextHeader() != null) {
-                writer.write(header.getTextHeader());
-            } else {
-                // Headers that are too large are not retained as text, so need to regenerate text
-                new SAMTextHeaderCodec().encode(writer, header, true);
-            }
-
-            for (final SAMRecord rec : in) {
-                if (printStream.checkError()) {
-                    return 1;
-                }
-
-                if (this.ALIGNMENT_STATUS == AlignmentStatus.Aligned   && rec.getReadUnmappedFlag()) continue;
-                if (this.ALIGNMENT_STATUS == AlignmentStatus.Unaligned && !rec.getReadUnmappedFlag()) continue;
-
-                if (this.PF_STATUS == PfStatus.PF    && rec.getReadFailsVendorQualityCheckFlag()) continue;
-                if (this.PF_STATUS == PfStatus.NonPF && !rec.getReadFailsVendorQualityCheckFlag()) continue;
-
-                writer.write(rec.getSAMString());
-            }
-            writer.flush();
-            if (printStream.checkError()) {
-                return 1;
-            }
-            return 0;
-        } catch (IOException e) {
-            throw new PicardException("Exception writing SAM text", e);
-        }
-    }
-}
diff --git a/src/java/net/sf/picard/util/AbstractInputParser.java b/src/java/net/sf/picard/util/AbstractInputParser.java
deleted file mode 100644
index c861c48..0000000
--- a/src/java/net/sf/picard/util/AbstractInputParser.java
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.util;
-
-import net.sf.picard.PicardException;
-
-import java.util.Iterator;
-
-import net.sf.samtools.util.AbstractIterator;
-import net.sf.samtools.util.CloseableIterator;
-
-/**
- * Class for parsing text files where each line consists of fields separated by whitespace.
- * Code is abstracted into this class so that we can optimize its performance over time.
- *
- * This class assumes that every line will have the same number of whitespace-separated "words"
- * and that lines that start with "#" are comments and should be ignored.
- *
- * Classes that extend this parser can do so simply by implementing their own constructors and the
- * readNextLine(), close(), and getFileName() methods.
- *
- * @author Kathleen Tibbetts
- */
-public abstract class AbstractInputParser
-extends AbstractIterator<String[]>
-implements Iterable<String[]>, CloseableIterator<String[]> {
-
-    private boolean treatGroupedDelimitersAsOne = true; // Whether multiple delimiters in succession should be treated as one
-    private int wordCount = 0;      /* The number of delimiter-separated "words" per line of the file.
-                                       We can save a little caclulation, or handle files with varying numbers of
-                                       words per line, by specifying this if known in advance */
-    private boolean skipBlankLines = true;
-
-    /**
-     * Closes this stream and releases any system resources associated with it.
-     */
-    public abstract void close();
-
-    /**
-     * @return the next line of text from the underlying stream(s) or null if there is no next line
-     */
-    protected abstract byte[] readNextLine();
-
-    /**
-     * @return  the name(s) of the file(s) being parsed, or null if no name is available
-     */
-    public abstract String getFileName();
-
-    /**
-     * @return an iterator over a set of elements of type String[]
-     */
-    public Iterator<String[]> iterator() {
-        if (isIterating()) {
-            throw new IllegalStateException("iterator() method can only be called once, before the" +
-                    "first call to hasNext()");
-        }
-        hasNext();
-        return this;
-    }
-
-    @Override
-    protected String[] advance() {
-        byte[] nextLine;
-        do {
-            nextLine = readNextLine();
-        }
-        while (nextLine != null && ((this.skipBlankLines && isBlank(nextLine)) || isComment(nextLine)));
-        return nextLine == null ? null : parseLine(nextLine);
-    }
-
-    /**
-     * This method represents the most efficient way (so far) to parse a line of whitespace-delimited text
-     *
-     * @param line the line to parse
-     * @return  an array of all the "words"
-     */
-    private String[] parseLine(final byte[] line) {
-
-        if (getWordCount() == 0) {
-            calculateWordCount(line);
-        }
-        final String[] parts = new String[getWordCount()];
-        boolean delimiter = true;
-        int index=0;
-        int start = 0;
-
-        try
-        {
-            for (int i = 0; i < line.length; i++) {
-                if (isDelimiter(line[i])) {
-                    if (!delimiter) {
-                        parts[index++] = new String(line,start,i-start);
-                    }
-                    else if(!isTreatGroupedDelimitersAsOne()) {
-                        parts[index++] = null;
-                    }
-                    delimiter=true;
-                }
-                else {
-                    if (delimiter)  start = i;
-                    delimiter = false;
-                }
-            }
-            if (!delimiter) {
-                 parts[index] = new String(line,start,line.length-start);
-            }
-        }
-        catch (ArrayIndexOutOfBoundsException e) {
-            throw new PicardException("Unexpected number of elements found when parsing file " +
-                    this.getFileName() + ": " + index + ".  Expected a maximum of " +
-                    this.getWordCount() + " elements per line:" + new String(line,0,line.length));
-        }
-        return parts;
-    }
-
-    /**
-     * Calculates the number of delimiter-separated "words" in a line and sets the value of <code>wordCount</code>
-     *
-     * @param line  representative line from the file
-     */
-    protected void calculateWordCount(final byte[] line) {
-        int words = 0;
-        boolean delimiter = true;
-        for (final byte b : line) {
-            if (isDelimiter(b)) {
-                if (delimiter && !isTreatGroupedDelimitersAsOne()) words++;
-                delimiter = true;
-            } else {
-                if (delimiter) words++;
-                delimiter = false;
-            }
-        }
-        if (delimiter && !isTreatGroupedDelimitersAsOne()) {
-            words += 1;
-        }
-        setWordCount(words);
-    }
-
-    /**
-     * Determines whether a given line is a comment
-     *
-     * @param line  the line to evaluate
-     * @return  true if the line is a comment (and should be ignored) otherwise false
-     */
-    protected boolean isComment(final byte[] line) {
-        return line.length > 0 && line[0] == '#';
-    }
-
-    /**
-     * Determines whether a given line is a comment
-     *
-     * @param line  the line to evaluate
-     * @return  true if the line is a comment (and should be ignored) otherwise false
-     */
-    protected boolean isBlank(final byte[] line) {
-        return line.length == 0;
-    }
-
-    /**
-     * Determines whether a given character is a delimiter
-     *
-     * @param b the character to evaluate
-     * @return  true if <code>b</code> is a delimiter; otherwise false
-     */
-    protected boolean isDelimiter(final byte b) {
-        return b == ' ' || b == '\t';
-    }
-
-    protected int getWordCount() { return wordCount; }
-    protected void setWordCount(final int wordCount) { this.wordCount = wordCount; }
-    protected boolean isTreatGroupedDelimitersAsOne() { return treatGroupedDelimitersAsOne; }
-    protected void setTreatGroupedDelimitersAsOne(final boolean treatGroupedDelimitersAsOne) {
-        this.treatGroupedDelimitersAsOne = treatGroupedDelimitersAsOne;
-    }
-    protected boolean isSkipBlankLines() { return this.skipBlankLines; }
-    protected void setSkipBlankLines(final boolean skipBlankLines) {
-        this.skipBlankLines = skipBlankLines;
-    }
-}
diff --git a/src/java/net/sf/picard/util/AdapterMarker.java b/src/java/net/sf/picard/util/AdapterMarker.java
deleted file mode 100644
index ac1476c..0000000
--- a/src/java/net/sf/picard/util/AdapterMarker.java
+++ /dev/null
@@ -1,341 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2014 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.util;
-
-import net.sf.picard.sam.ReservedTagConstants;
-import net.sf.samtools.SAMRecord;
-import net.sf.samtools.util.CollectionUtil;
-import net.sf.samtools.util.SequenceUtil;
-import net.sf.samtools.util.StringUtil;
-
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.Map;
-import java.util.TreeMap;
-import java.util.concurrent.atomic.AtomicReference;
-
-/**
- * Store one or more AdapterPairs to use to mark adapter sequence of SAMRecords.  This is a very compute-intensive process, so
- * this class implements two heuristics to reduce computation:
- * - Adapter sequences are truncated, and then any adapter pairs that become identical after truncation are collapsed into a single pair.
- * - After a specified number of reads with adapter sequence has been seen, prune the list of adapter pairs to include only the most
- *   frequently seen adapters.  For a flowcell, there should only be a single adapter pair found.
- *
- * Note that the AdapterPair object returned by all the adapterTrim* methods will not be one of the original AdapterPairs
- * passed to the ctor, but rather will be one of the truncated copies.
- */
-public class AdapterMarker {
-    public static final int DEFAULT_ADAPTER_LENGTH = 30;
-    public static final int DEFAULT_PRUNE_ADAPTER_LIST_AFTER_THIS_MANY_ADAPTERS_SEEN = 100;
-    public static final int DEFAULT_NUM_ADAPTERS_TO_KEEP = 1;
-
-    // It is assumed that these are set once during execution, before the class is used to mark any adapters, but this is not enforced.
-    private int thresholdForSelectingAdaptersToKeep = DEFAULT_PRUNE_ADAPTER_LIST_AFTER_THIS_MANY_ADAPTERS_SEEN;
-    private int numAdaptersToKeep = DEFAULT_NUM_ADAPTERS_TO_KEEP;
-    private int minSingleEndMatchBases = ClippingUtility.MIN_MATCH_BASES;
-    private int minPairMatchBases = ClippingUtility.MIN_MATCH_PE_BASES;
-    private double maxSingleEndErrorRate = ClippingUtility.MAX_ERROR_RATE;
-    private double maxPairErrorRate = ClippingUtility.MAX_PE_ERROR_RATE;
-
-    // This is AtomicReference because one thread could be matching adapters while the threshold has been crossed in another
-    // thread and the array is being replaced.
-    private final AtomicReference<AdapterPair[]> adapters = new AtomicReference<AdapterPair[]>();
-
-    // All the members below are only accessed within a synchronized block.
-    private boolean thresholdReached = false;
-    private int numAdaptersSeen = 0;
-    private final CollectionUtil.DefaultingMap<AdapterPair, Integer> seenCounts = new CollectionUtil.DefaultingMap<AdapterPair, Integer>(0);
-
-    /**
-     * Truncates adapters to DEFAULT_ADAPTER_LENGTH
-     * @param originalAdapters These should be in order from longest & most likely to shortest & least likely.
-     */
-    public AdapterMarker(final AdapterPair... originalAdapters) {
-        this(DEFAULT_ADAPTER_LENGTH, originalAdapters);
-    }
-
-    /**
-     * @param adapterLength Truncate adapters to this length.
-     * @param originalAdapters These should be in order from longest & most likely to shortest & least likely.
-     */
-    public AdapterMarker(final int adapterLength, final AdapterPair... originalAdapters) {
-        // Truncate each AdapterPair to the given length, and then combine any that end up the same after truncation.
-        final ArrayList<TruncatedAdapterPair> truncatedAdapters = new ArrayList<TruncatedAdapterPair>();
-        for (final AdapterPair adapter : originalAdapters) {
-            final TruncatedAdapterPair truncatedAdapter = makeTruncatedAdapterPair(adapter, adapterLength);
-            final int matchingIndex = truncatedAdapters.indexOf(truncatedAdapter);
-            if (matchingIndex == -1) {
-                truncatedAdapters.add(truncatedAdapter);
-            } else {
-                final TruncatedAdapterPair matchingAdapter = truncatedAdapters.get(matchingIndex);
-                matchingAdapter.setName(matchingAdapter.getName() + "|" + adapter.getName());
-            }
-        }
-        adapters.set(truncatedAdapters.toArray(new AdapterPair[truncatedAdapters.size()]));
-    }
-
-    public int getNumAdaptersToKeep() {
-        return numAdaptersToKeep;
-    }
-
-    /**
-     * After seeing the thresholdForSelectingAdapters number of adapters, keep up to this many of the original adapters.
-     */
-    public synchronized AdapterMarker setNumAdaptersToKeep(final int numAdaptersToKeep) {
-        if (numAdaptersToKeep <= 0) {
-            throw new IllegalArgumentException(String.format("numAdaptersToKeep should be positive: %d", numAdaptersToKeep));
-        }
-        this.numAdaptersToKeep = numAdaptersToKeep;
-        return this;
-    }
-
-    public int getThresholdForSelectingAdaptersToKeep() {
-        return thresholdForSelectingAdaptersToKeep;
-    }
-
-    /**
-     * When this number of adapters have been matched, discard the least-frequently matching ones.
-     * @param thresholdForSelectingAdaptersToKeep set to -1 to never discard any adapters.
-     */
-    public synchronized AdapterMarker setThresholdForSelectingAdaptersToKeep(final int thresholdForSelectingAdaptersToKeep) {
-        this.thresholdForSelectingAdaptersToKeep = thresholdForSelectingAdaptersToKeep;
-        return this;
-    }
-
-    public int getMinSingleEndMatchBases() {
-        return minSingleEndMatchBases;
-    }
-
-    /**
-     *
-     * @param minSingleEndMatchBases When marking a single-end read, adapter must match at least this many bases.
-     */
-    public synchronized AdapterMarker setMinSingleEndMatchBases(final int minSingleEndMatchBases) {
-        this.minSingleEndMatchBases = minSingleEndMatchBases;
-        return this;
-    }
-
-    public int getMinPairMatchBases() {
-        return minPairMatchBases;
-    }
-
-    /**
-     *
-     * @param minPairMatchBases When marking a paired-end read, adapter must match at least this many bases.
-     */
-    public synchronized AdapterMarker setMinPairMatchBases(final int minPairMatchBases) {
-        this.minPairMatchBases = minPairMatchBases;
-        return this;
-    }
-
-    public double getMaxSingleEndErrorRate() {
-        return maxSingleEndErrorRate;
-    }
-
-    /**
-     * @param maxSingleEndErrorRate For single-end read, no more than this fraction of the bases that align with the adapter can
-     *                              mismatch the adapter and still be considered an adapter match.
-     */
-    public synchronized AdapterMarker setMaxSingleEndErrorRate(final double maxSingleEndErrorRate) {
-        this.maxSingleEndErrorRate = maxSingleEndErrorRate;
-        return this;
-    }
-
-    public double getMaxPairErrorRate() {
-        return maxPairErrorRate;
-    }
-
-    /**
-     * @param maxPairErrorRate For paired-end read, no more than this fraction of the bases that align with the adapter can
-     *                         mismatch the adapter and still be considered an adapter match.
-     */
-    public synchronized AdapterMarker setMaxPairErrorRate(final double maxPairErrorRate) {
-        this.maxPairErrorRate = maxPairErrorRate;
-        return this;
-    }
-
-    public AdapterPair adapterTrimIlluminaSingleRead(final SAMRecord read) {
-        return adapterTrimIlluminaSingleRead(read, minSingleEndMatchBases, maxSingleEndErrorRate);
-    }
-
-    public AdapterPair adapterTrimIlluminaPairedReads(final SAMRecord read1, final SAMRecord read2) {
-        return adapterTrimIlluminaPairedReads(read1, read2, minPairMatchBases, maxPairErrorRate);
-    }
-
-    /**
-     * Overrides defaults for minMatchBases and maxErrorRate
-     */
-    public AdapterPair adapterTrimIlluminaSingleRead(final SAMRecord read, final int minMatchBases, final double maxErrorRate) {
-        final AdapterPair ret = ClippingUtility.adapterTrimIlluminaSingleRead(read, minMatchBases, maxErrorRate, adapters.get());
-        if (ret != null) tallyFoundAdapter(ret);
-        return ret;
-    }
-
-    /**
-     * Overrides defaults for minMatchBases and maxErrorRate
-     */
-    public AdapterPair adapterTrimIlluminaPairedReads(final SAMRecord read1, final SAMRecord read2,
-                                                             final int minMatchBases, final double maxErrorRate) {
-        final AdapterPair ret = ClippingUtility.adapterTrimIlluminaPairedReads(read1, read2, minMatchBases, maxErrorRate, adapters.get());
-        if (ret != null) tallyFoundAdapter(ret);
-        return ret;
-    }
-
-    /** For unit testing only */
-    AdapterPair[] getAdapters() {
-        return adapters.get();
-    }
-
-    private TruncatedAdapterPair makeTruncatedAdapterPair(final AdapterPair adapterPair, final int adapterLength) {
-        return new TruncatedAdapterPair("truncated " + adapterPair.getName(),
-                substringAndRemoveTrailingNs(adapterPair.get3PrimeAdapterInReadOrder(), adapterLength),
-                substringAndRemoveTrailingNs(adapterPair.get5PrimeAdapterInReadOrder(), adapterLength));
-    }
-
-    /**
-     * Truncate to the given length, and in addition truncate any trailing Ns.
-     */
-    private String substringAndRemoveTrailingNs(final String s, int length) {
-        length = Math.min(length, s.length());
-        final byte[] bytes = StringUtil.stringToBytes(s);
-        while (length > 0 && SequenceUtil.isNoCall(bytes[length - 1])) {
-            length--;
-        }
-        return s.substring(0, length);
-    }
-
-    /**
-     * Keep track of every time an adapter is found, until it is time to prune the list of adapters.
-     */
-    private void tallyFoundAdapter(final AdapterPair foundAdapter) {
-        // If caller does not want adapter pruning, do nothing.
-        if (thresholdForSelectingAdaptersToKeep < 1) return;
-        synchronized (this) {
-            // Already pruned adapter list, so nothing more to do.
-            if (thresholdReached) return;
-
-            // Tally this adapter
-            seenCounts.put(foundAdapter, seenCounts.get(foundAdapter) + 1);
-
-            // Keep track of the number of times an adapter has been seen.
-            numAdaptersSeen += 1;
-
-            // Reached the threshold for pruning the list.
-            if (numAdaptersSeen >= thresholdForSelectingAdaptersToKeep) {
-
-                // Sort adapters by number of times each has been seen.
-                final TreeMap<Integer, AdapterPair> sortedAdapters = new TreeMap<Integer, AdapterPair>(new Comparator<Integer>() {
-                    @Override
-                    public int compare(final Integer integer, final Integer integer2) {
-                        // Reverse of natural ordering
-                        return integer2.compareTo(integer);
-                    }
-                });
-                for (final Map.Entry<AdapterPair, Integer> entry : seenCounts.entrySet()) {
-                    sortedAdapters.put(entry.getValue(), entry.getKey());
-                }
-
-                // Keep the #numAdaptersToKeep adapters that have been seen the most, plus any ties.
-                final ArrayList<AdapterPair> bestAdapters = new ArrayList<AdapterPair>(numAdaptersToKeep);
-                int countOfLastAdapter = Integer.MAX_VALUE;
-                for (final Map.Entry<Integer, AdapterPair> entry : sortedAdapters.entrySet()) {
-                    if (bestAdapters.size() >= numAdaptersToKeep) {
-                        if (entry.getKey() == countOfLastAdapter) {
-                            bestAdapters.add(entry.getValue());
-                        } else {
-                            break;
-                        }
-                    } else {
-                        countOfLastAdapter = entry.getKey();
-                        bestAdapters.add(entry.getValue());
-                    }
-                }
-                // Replace the existing list with the pruned list.
-                thresholdReached = true;
-                adapters.set(bestAdapters.toArray(new AdapterPair[bestAdapters.size()]));
-            }
-        }
-    }
-
-    private static class TruncatedAdapterPair implements AdapterPair {
-        String name;
-        final String fivePrime, threePrime, fivePrimeReadOrder;
-        final byte[]  fivePrimeBytes, threePrimeBytes, fivePrimeReadOrderBytes;
-
-        private TruncatedAdapterPair(final String name, final String threePrimeReadOrder, final String fivePrimeReadOrder) {
-            this.name = name;
-            this.threePrime = threePrimeReadOrder;
-            this.threePrimeBytes = StringUtil.stringToBytes(threePrimeReadOrder);
-            this.fivePrimeReadOrder = fivePrimeReadOrder;
-            this.fivePrimeReadOrderBytes = StringUtil.stringToBytes(fivePrimeReadOrder);
-            this.fivePrime = SequenceUtil.reverseComplement(fivePrimeReadOrder);
-            this.fivePrimeBytes = StringUtil.stringToBytes(this.fivePrime);
-        }
-
-        public String get3PrimeAdapter(){ return threePrime; }
-        public String get5PrimeAdapter(){ return fivePrime; }
-        public String get3PrimeAdapterInReadOrder(){ return threePrime; }
-        public String get5PrimeAdapterInReadOrder() { return fivePrimeReadOrder; }
-        public byte[] get3PrimeAdapterBytes() { return threePrimeBytes; }
-        public byte[] get5PrimeAdapterBytes() { return fivePrimeBytes; }
-        public byte[] get3PrimeAdapterBytesInReadOrder() { return threePrimeBytes; }
-        public byte[] get5PrimeAdapterBytesInReadOrder()  { return fivePrimeReadOrderBytes; }
-
-        public String getName() { return this.name; }
-
-        public void setName(final String name) {
-            this.name = name;
-        }
-
-        // WARNING: These methods ignore the name member!
-        @Override
-        public boolean equals(final Object o) {
-            if (this == o) return true;
-            if (o == null || getClass() != o.getClass()) return false;
-
-            final TruncatedAdapterPair that = (TruncatedAdapterPair) o;
-
-            if (!fivePrime.equals(that.fivePrime)) return false;
-            if (!threePrime.equals(that.threePrime)) return false;
-
-            return true;
-        }
-
-        @Override
-        public int hashCode() {
-            int result = fivePrime.hashCode();
-            result = 31 * result + threePrime.hashCode();
-            return result;
-        }
-
-        @Override
-        public String toString() {
-            return "TruncatedAdapterPair{" +
-                    "fivePrimeReadOrder='" + fivePrimeReadOrder + '\'' +
-                    ", threePrime='" + threePrime + '\'' +
-                    ", name='" + name + '\'' +
-                    '}';
-        }
-    }
-}
diff --git a/src/java/net/sf/picard/util/AdapterPair.java b/src/java/net/sf/picard/util/AdapterPair.java
deleted file mode 100644
index b9f0da1..0000000
--- a/src/java/net/sf/picard/util/AdapterPair.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package net.sf.picard.util;
-
-public interface AdapterPair {
-
-    public String get3PrimeAdapter();
-    public String get3PrimeAdapterInReadOrder();
-    public byte[] get3PrimeAdapterBytes();
-    public byte[] get3PrimeAdapterBytesInReadOrder();
-
-    public String get5PrimeAdapter();
-    public String get5PrimeAdapterInReadOrder();
-    public byte[] get5PrimeAdapterBytes();
-    public byte[] get5PrimeAdapterBytesInReadOrder();
-
-    public String getName();
-}
diff --git a/src/java/net/sf/picard/util/AsyncIterator.java b/src/java/net/sf/picard/util/AsyncIterator.java
deleted file mode 100644
index 2c02aa1..0000000
--- a/src/java/net/sf/picard/util/AsyncIterator.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.util;
-
-import net.sf.samtools.util.CloseableIterator;
-
-import java.util.NoSuchElementException;
-import java.util.concurrent.ArrayBlockingQueue;
-import java.util.concurrent.BlockingQueue;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.concurrent.atomic.AtomicReference;
-
-/**
- * Wrapper around a CloseableIterator that reads in a separate thread, for cases in which that might be
- * efficient.
- */
-public class AsyncIterator<T> implements CloseableIterator<T> {
-    private static volatile int threadsCreated = 0; // Just used for thread naming.
-    public static final int DEFAULT_QUEUE_SIZE = 2000;
-
-    private final AtomicBoolean isClosed = new AtomicBoolean(false);
-    private final BlockingQueue<T> queue;
-    private final Thread reader;
-    private final ReaderRunnable readerRunnable;
-    private final AtomicReference<Throwable> ex = new AtomicReference<Throwable>(null);
-    private T theNext = null;
-    private final CloseableIterator<T> underlyingIterator;
-
-
-    public AsyncIterator(final CloseableIterator<T> underlyingIterator,
-                            final int queueSize,
-                            final String threadNamePrefix) {
-        this.underlyingIterator = underlyingIterator;
-        this.queue = new ArrayBlockingQueue<T>(queueSize);
-        this.readerRunnable = new ReaderRunnable();
-        this.reader = new Thread(readerRunnable, threadNamePrefix + threadsCreated++);
-        this.reader.setDaemon(true);
-        this.reader.start();
-        getNext();
-    }
-
-
-    /**
-     * Set theNext to the next item to be returned, or null if there are no more items.
-     */
-    private void getNext() {
-        assertOpen();
-
-        checkAndRethrow();
-        try {
-            theNext = null;
-            while (!this.queue.isEmpty() || !this.readerRunnable.isDone()) {
-                theNext = this.queue.poll(5, TimeUnit.SECONDS);
-                checkAndRethrow();
-                if (theNext != null) break;
-            }
-        } catch (InterruptedException ie) { throw new RuntimeException("Interrupted queueing item for writing.", ie); }
-        checkAndRethrow();
-    }
-
-    public boolean hasNext() {
-        assertOpen();
-        return theNext != null;
-    }
-
-    public T next() {
-        assertOpen();
-        if (!hasNext()) throw new NoSuchElementException();
-        final T ret = theNext;
-        getNext();
-        return ret;
-    }
-
-    public void remove() {
-        throw new UnsupportedOperationException();
-    }
-
-    /**
-     * Stops the thread and then calls synchronouslyClose() to allow implementation to do any one time clean up.
-     */
-    public void close() {
-        checkAndRethrow();
-
-        assertOpen();
-        this.isClosed.set(true);
-
-        try { this.reader.join(); }
-        catch (InterruptedException ie) { throw new RuntimeException("Interrupted waiting on reader thread.", ie); }
-
-        underlyingIterator.close();
-        checkAndRethrow();
-        this.queue.clear();
-    }
-
-    private void assertOpen() {
-        if (this.isClosed.get()) {
-            throw new RuntimeException("AsyncIterator already closed.");
-        }
-    }
-
-    /**
-     * Checks to see if an exception has been raised in the reader thread and if so rethrows it as an Error
-     * or RuntimeException as appropriate.
-     */
-    private void checkAndRethrow() {
-        final Throwable t = this.ex.get();
-        if (t != null) {
-            if (t instanceof Error) throw (Error) t;
-            if (t instanceof RuntimeException) throw (RuntimeException) t;
-            else throw new RuntimeException(t);
-        }
-    }
-
-    /**
-     * Small Runnable implementation that simply reads from underlying iterator and stores on the blocking queue.
-     */
-    private class ReaderRunnable implements Runnable {
-        private final AtomicBoolean readerDone = new AtomicBoolean(false);
-
-        public boolean isDone() { return readerDone.get(); }
-
-        public void run() {
-            try {
-                boolean isEof = false;
-                while (!isClosed.get() && !isEof) {
-                    try {
-                        if (!underlyingIterator.hasNext()) {
-                            isEof = true;
-                        } else {
-                            final T item = underlyingIterator.next();
-                            // Keep trying to put item on the queue unless close() has been called.
-                            while (!isClosed.get() && !queue.offer(item, 2, TimeUnit.SECONDS)) {
-                            }
-                        }
-                    }
-                    catch (InterruptedException ie) {
-                        /* Do Nothing */
-                    }
-                }
-            }
-            catch (Throwable t) {
-                ex.compareAndSet(null, t);
-            } finally {
-                readerDone.set(true);
-            }
-        }
-    }
-}
diff --git a/src/java/net/sf/picard/util/BasicInputParser.java b/src/java/net/sf/picard/util/BasicInputParser.java
deleted file mode 100644
index 4d6576f..0000000
--- a/src/java/net/sf/picard/util/BasicInputParser.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.util;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.io.IoUtil;
-
-import java.io.*;
-import java.util.Arrays;
-import java.util.ArrayList;
-
-import net.sf.samtools.util.BufferedLineReader;
-import net.sf.samtools.util.CloserUtil;
-import net.sf.samtools.util.RuntimeIOException;
-
-/**
- * TextFileParser which reads a single text file.
- *
- * @author Kathleen Tibbetts
- */
-public class BasicInputParser extends AbstractInputParser
-{
-    private BufferedLineReader reader;
-    private final ArrayList<InputStream> inputs = new ArrayList<InputStream>();
-    private final ArrayList<String> fileNames = new ArrayList<String>();
-    String currentFileName = null;
-    private String currentLine = null;
-    private String nextLine = null;
-    private int currentLineNumber = 0;
-    private int nextLineNumber = 0;
-
-    /**
-     * Constructor.  Opens up a buffered reader and reads the first line.
-     *
-     * @param inputStreams  the file(s) to parse, in order
-     */
-    public BasicInputParser(final boolean treatGroupedDelimitersAsOne, final InputStream... inputStreams) {
-        if (inputStreams.length == 0) {
-            throw new IllegalArgumentException("At least one input must be specified.");
-        }
-        this.inputs.addAll(Arrays.asList(inputStreams));
-        reader = new BufferedLineReader(this.inputs.remove(0));
-        this.setTreatGroupedDelimitersAsOne(treatGroupedDelimitersAsOne);
-    }
-
-    public BasicInputParser(final boolean treatGroupedDelimitersAsOne, final int wordCount, final InputStream... inputStreams) {
-        this(treatGroupedDelimitersAsOne, inputStreams);
-        setWordCount(wordCount);
-    }
-
-    /**
-     * Constructor.  Opens up a buffered reader and reads the first line.
-     *
-     * @param files  the file(s) to parse, in order
-     */
-    public BasicInputParser(final boolean treatGroupedDelimitersAsOne, final File... files) {
-        this(treatGroupedDelimitersAsOne, filesToInputStreams(files));
-        for (File f : files) fileNames.add(f.getAbsolutePath());
-        this.currentFileName = fileNames.remove(0);
-    }
-
-    /**
-     * Constructor.  In addition to opening and priming the files, it sets the number of
-     * whitespace-separated "words" per line.
-     *
-     * @param files      the file(s) to parse
-     * @param wordCount number of whitespace-separated "words" per line
-     */
-    public BasicInputParser(final boolean treatGroupedDelimitersAsOne, final int wordCount, final File... files) {
-        this(treatGroupedDelimitersAsOne, files);
-        setWordCount(wordCount);
-    }
-
-    /**
-     * Workhorse method that reads the next line from the underlying reader
-     *
-     * @return  String or null if there is no next line
-     */
-    protected byte[] readNextLine()
-    {
-        try {
-            final String line = reader.readLine();
-            if (nextLine != null && !isComment(nextLine.getBytes())) {
-                currentLineNumber = nextLineNumber;
-                currentLine = nextLine;
-            }
-            if (line != null) {
-                nextLineNumber++;
-                nextLine = line;
-                return line.getBytes();
-            }
-            if (inputs.size() > 0) {
-                advanceFile();
-                return readNextLine();
-            }
-            return null;
-        }
-        catch(RuntimeIOException ioe) {
-            throw new PicardException("Error reading from file " + currentFileName, ioe);
-        }
-    }
-
-    protected void advanceFile() {
-        currentFileName = fileNames.size() > 0 ? fileNames.remove(0) : null;
-        nextLineNumber = 0;
-        nextLine = null;
-        reader = new BufferedLineReader(inputs.remove(0));
-    }
-
-    /**
-     * Closes the underlying stream
-     */
-    public void close() {
-        if (reader != null)  {
-            reader.close();
-        }
-        for(final InputStream stream : inputs){
-            CloserUtil.close(stream);
-        }
-    }
-
-    /**
-     * Gets the name of the file being parsed
-     *
-     * @return  the name of the file being parsed
-     */
-    public String getFileName() {
-        return this.currentFileName != null ? this.currentFileName : "(file name unavailable)";
-    }
-
-    /**
-     * Provides access to the current (just parsed) line in pre-parsed format.
-     * NOTE: Because AbstractInputParser pre-fetches the next line, this method actually returns the
-     * next line, not the most recent line returned by next().
-     */
-    public String getCurrentLine() {
-        return this.currentLine;
-    }
-
-    /**
-     * NOTE: Because AbstractInputParser pre-fetches the next line, this method actually returns the
-     * next line, not the most recent line returned by next().
-     */
-    public int getCurrentLineNumber() {
-        return currentLineNumber;
-    }
-
-    private static InputStream[] filesToInputStreams(final File files[]) {
-        final InputStream result[] = new InputStream[files.length];
-        for (int i = 0; i < files.length; i++) {
-            result[i] = IoUtil.openFileForReading(files[i]);
-        }
-        return result;
-    }
-}
diff --git a/src/java/net/sf/picard/util/CigarUtil.java b/src/java/net/sf/picard/util/CigarUtil.java
deleted file mode 100644
index cdb5df6..0000000
--- a/src/java/net/sf/picard/util/CigarUtil.java
+++ /dev/null
@@ -1,289 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.util;
-
-import net.sf.samtools.*;
-import net.sf.samtools.util.CoordMath;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * @author alecw at broadinstitute.org
- */
-public class CigarUtil {
-        private static final Log log = Log.getInstance(CigarUtil.class);
-
-    /** adjust the cigar based on adapter clipping.
-     * TODO: If there is hard clipping at the end of the input CIGAR, it is lost.  It should not be. 
-     * *
-     * @param clipFrom       1-based position where the clipping starts
-     * @param oldCigar       The existing unclipped cigar
-     * @return               New adjusted list of cigar elements
-     */
-    // package visible so can be unit-tested
-    public static List<CigarElement> softClipEndOfRead(final int clipFrom, final List<CigarElement> oldCigar) {
-        final int clippedBases = (int)CoordMath.getLength(clipFrom, Cigar.getReadLength(oldCigar));
-        List<CigarElement> newCigar = new LinkedList<CigarElement>();
-        int pos = 1;
-
-        for (CigarElement c : oldCigar) {
-            // Distinguish two cases:
-            //	c occurs before the clipped region
-            //	c is adjacent to or straddles the boundary between clipped and unclipped region.
-            //  c never occurs after the clipped region; clipped region is always at the end
-
-            final CigarOperator op = c.getOperator();
-            final int length = op.consumesReadBases()? c.getLength() : 0;
-            final int endPos = pos + length - 1;  // same as pos on next iteration
-
-            if (endPos < (clipFrom - 1)) {
-                // handle elements before clip position (just copy them)
-                newCigar.add(c);
-
-            } else if (endPos >= (clipFrom - 1)) {
-                // handle adjacent or straddling element
-                elementStraddlesClippedRead(newCigar, c,
-                        (clipFrom -1) - (pos -1) , clippedBases);
-                break;
-            }
-
-            pos = endPos + 1;      // update pos for next iteration
-        } // end loop over cigar elements
-        return newCigar;
-    }
-
-    // a cigar element occurs in the middle of an adapter clipping
-    static private void elementStraddlesClippedRead(List<CigarElement> newCigar, CigarElement c,
-                                                    int relativeClippedPosition,
-                                                    int clippedBases){
-        final CigarOperator op = c.getOperator();
-        int clipAmount = clippedBases;
-        if (op.consumesReadBases()){
-            if (op.consumesReferenceBases() & relativeClippedPosition > 0){
-               newCigar.add(new CigarElement(relativeClippedPosition, op));
-            }
-            if (!op.consumesReferenceBases()){
-                clipAmount = clippedBases + relativeClippedPosition;
-            }
-        } else if (relativeClippedPosition != 0){
-                throw new SAMException("Unexpected non-0 relativeClippedPosition " + relativeClippedPosition);
-        }
-        newCigar.add(new CigarElement(clipAmount, CigarOperator.S));  // S is always last element
-    }
-
-    /**
-     * Adds a soft-clip, based on <code>clipFrom</code>, to the SAM record's existing cigar
-     * and, for negative strands, also adjusts the SAM record's start position.
-     * Soft clips the end of the read as the read came off the sequencer.
-     */
-    public static void softClip3PrimeEndOfRead(SAMRecord rec, final int clipFrom) {
-
-        final Cigar cigar = rec.getCigar();
-        // we don't worry about SEED_REGION_LENGTH in clipFrom
-        final boolean negativeStrand = rec.getReadNegativeStrandFlag();
-        List<CigarElement> oldCigar = cigar.getCigarElements();
-
-        if (!isValidCigar(rec, cigar, true)){
-            return; // log message already issued
-        }
-        if (negativeStrand){
-            // Can't just use Collections.reverse() here because oldCigar is unmodifiable
-            oldCigar = new ArrayList<CigarElement>(oldCigar);
-            Collections.reverse(oldCigar);
-        }
-        List<CigarElement> newCigarElems = CigarUtil.softClipEndOfRead(clipFrom, oldCigar);
-
-        if (negativeStrand) {
-            Collections.reverse(newCigarElems);
-        }
-
-        final Cigar newCigar = new Cigar(newCigarElems);
-        if (negativeStrand){
-            int oldLength = cigar.getReferenceLength();
-            int newLength = newCigar.getReferenceLength();
-            int sizeChange = oldLength - newLength;
-            if (sizeChange > 0){
-                rec.setAlignmentStart(rec.getAlignmentStart() + sizeChange);
-            } else if (sizeChange < 0){
-                throw new SAMException("The clipped length " + newLength +
-                        " is longer than the old unclipped length " + oldLength);
-            }
-        }
-        rec.setCigar(newCigar);
-
-        // Check that the end result is not a read without any aligned bases
-        boolean hasMappedBases = false;
-        for (final CigarElement elem : newCigar.getCigarElements()) {
-            final CigarOperator op = elem.getOperator();
-            if (op.consumesReferenceBases() && op.consumesReadBases()) {
-                hasMappedBases = true;
-                break;
-            }
-        }
-
-        if (!hasMappedBases) {
-            rec.setReadUnmappedFlag(true);
-            rec.setCigarString(SAMRecord.NO_ALIGNMENT_CIGAR);
-            rec.setReferenceIndex(SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX);
-            rec.setAlignmentStart(SAMRecord.NO_ALIGNMENT_START);
-            rec.setMappingQuality(SAMRecord.NO_MAPPING_QUALITY);
-            rec.setInferredInsertSize(0);
-        }
-        else if (!isValidCigar(rec, newCigar, false)){
-            // log message already issued
-            throw new IllegalStateException("Invalid new Cigar: " + newCigar  + " (" + oldCigar + ") for " +
-                    rec.getReadName());
-        }
-
-    }
-
-    private static boolean isValidCigar(SAMRecord rec, Cigar cigar, boolean isOldCigar) {
-        if (cigar == null || cigar.getCigarElements() == null || cigar.getCigarElements().size() == 0) {
-            if (isOldCigar) {
-                if (rec.getReadUnmappedFlag()) {
-                    // don't bother to warn since this does occur for PE reads
-                } else {
-                    log.warn("Cigar is empty for read " + rec);
-                }
-            } else {
-                log.error("Empty new cigar");
-            }
-            return false;
-        }
-
-        if (rec.getReadUnmappedFlag()){
-            log.info("Unmapped read with cigar: " + rec.getReadName() + " (" + rec.getCigarString() + "/" + cigar.toString()  + ")");
-
-        }
-        final List<SAMValidationError> validationErrors = cigar.isValid(rec.getReadName(), -1);
-        if (validationErrors != null && validationErrors.size() != 0) {
-            log.error("Invalid cigar for read " + rec +
-                (isOldCigar ? " " : " for new cigar with clipped adapter ") +
-                 " (" + rec.getCigarString() + "/" + cigar.toString()  + ") " +
-                validationErrors);
-            return false;
-        }
-    
-        if (rec.getReadLength() != cigar.getReadLength()){
-            // throw new PicardException(
-            log.error( rec.getReadLength() +
-               " read length does not = cigar length " + cigar.getReferenceLength() +
-               (isOldCigar? " oldCigar " : " ") +
-               rec + " cigar:" + cigar);
-            return false;
-        }
-        return true;
-    }
-
-    /**
-     * Adds additional soft-clipped bases at the 3' and/or 5' end of the cigar.  Does not
-     * change the existing cigar except to merge the newly added soft-clipped bases if the
-     * element at the end of the cigar being modified is also a soft-clip.
-     *
-     * @param cigar             The cigar on which to base the new cigar
-     * @param negativeStrand    Whether the read is on the negative strand
-     * @param threePrimeEnd     number of soft-clipped bases to add to the 3' end of the read
-     * @param fivePrimeEnd      number of soft-clipped bases to add to the 5' end of the read
-     */
-    public static Cigar addSoftClippedBasesToEndsOfCigar(Cigar cigar, boolean negativeStrand,
-                                                         final int threePrimeEnd, final int fivePrimeEnd) {
-
-        List<CigarElement> newCigar = new ArrayList<CigarElement>(cigar.getCigarElements());
-        if (negativeStrand) {
-            Collections.reverse(newCigar);
-        }
-
-        if (threePrimeEnd > 0) {
-            int last = newCigar.size()-1;
-            int bases = threePrimeEnd;
-            if (newCigar.get(last).getOperator() == CigarOperator.SOFT_CLIP) {
-                CigarElement oldSoftClip = newCigar.remove(last);
-                bases += oldSoftClip.getLength();
-            }
-            newCigar.add(new CigarElement(bases, CigarOperator.SOFT_CLIP));
-        }
-
-        if (fivePrimeEnd > 0) {
-            int bases = fivePrimeEnd;
-            if (newCigar.get(0).getOperator() == CigarOperator.SOFT_CLIP) {
-                CigarElement oldSoftClip = newCigar.remove(0);
-                bases += oldSoftClip.getLength();
-            }
-            newCigar.add(0, new CigarElement(bases, CigarOperator.SOFT_CLIP));
-        }
-
-        if (negativeStrand) {
-            Collections.reverse(newCigar);
-        }
-        return new Cigar(newCigar);
-    }
-
-    // unpack a cigar string into an array of cigarOperators
-    // to facilitate sequence manipulation
-    public static char[] cigarArrayFromElements(List<CigarElement> cigar){
-        int pos = 0;
-        int length = 0;
-        for (CigarElement e : cigar){
-            length += e.getLength();
-        }
-        char[] result = new char[length];
-        for (CigarElement e : cigar){
-            for (int i = 0; i < e.getLength(); i++){
-                CigarOperator o = e.getOperator();
-                result[i+pos] = (char) CigarOperator.enumToCharacter(o);
-            }
-            pos += e.getLength();
-        }
-        return result;
-    }
-
-    // unpack a cigar string into an array of cigarOperators
-    // to facilitate sequence manipulation
-    public static char[] cigarArrayFromString(String cigar){
-          return cigarArrayFromElements(TextCigarCodec.getSingleton().decode(cigar).getCigarElements());
-    }
-
-    // construct a cigar string from an array of cigarOperators.
-    public static String cigarStringFromArray(final char[] cigar){
-        String result = "";
-        int length = cigar.length;
-        char lastOp = 0;  int lastLen = 0;
-        for (int i=0; i < length; i++){
-             if (cigar[i] == lastOp){
-                 lastLen++;
-             } else if (cigar[i] == '-'){
-                 ; // nothing - just ignore '-'
-             } else {
-                 if (lastOp != 0)
-                     result = result + Integer.toString(lastLen) + Character.toString(lastOp);
-                 lastLen = 1;
-                 lastOp = cigar[i];
-             }
-        }
-        return result + Integer.toString(lastLen) + Character.toString(lastOp);
-    }
-}
diff --git a/src/java/net/sf/picard/util/ClippingUtility.java b/src/java/net/sf/picard/util/ClippingUtility.java
deleted file mode 100644
index 96b5a75..0000000
--- a/src/java/net/sf/picard/util/ClippingUtility.java
+++ /dev/null
@@ -1,278 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.util;
-
-import net.sf.samtools.util.SequenceUtil;
-import net.sf.samtools.util.StringUtil;
-import net.sf.samtools.SAMRecord;
-import net.sf.picard.sam.ReservedTagConstants;
-
-/**
- * Utilities to clip the adapater sequence from a SAMRecord read
- *
- * @author Tim Fennell
- */
-public class ClippingUtility {
-
-    /**
-     * The default value used for the minimum number of contiguous bases to match against.
-     */
-    public static final int MIN_MATCH_BASES = 12;
-    /**
-     * The default value used for the minimum number of contiguous bases to match against in a paired end read
-     */
-    public static final int MIN_MATCH_PE_BASES = 6;
-
-    /**
-     * The default value used for the maximum error rate when matching read bases to clippable sequence.
-     */
-    public static final double MAX_ERROR_RATE = 0.10;
-    /**
-     * The default value used for the maximum error rate when matching paired end read bases to clippable sequence.
-     */
-    public static final double MAX_PE_ERROR_RATE = 0.10;
-
-    /**
-     * The value returned by methods returning int when no match is found.
-     */
-    public static final int NO_MATCH = -1;
-
-    private static final Log log = Log.getInstance(ClippingUtility.class);
-
-    /**
-     * @deprecated          Use the varargs version.  This no longer returns a warning string..
-     */
-    public static void adapterTrimIlluminaSingleRead(final SAMRecord read, final AdapterPair adapter) {
-        adapterTrimIlluminaSingleRead(read, MIN_MATCH_BASES, MAX_ERROR_RATE, adapter);
-    }
-
-    /**
-     * @deprecated          Use the varargs version.  This no longer returns a warning string..
-     */
-    public static void adapterTrimIlluminaSingleRead(final SAMRecord read, final AdapterPair adapter,
-        final int minMatchBases, final double maxErrorRate) {
-        adapterTrimIlluminaSingleRead(read, minMatchBases, maxErrorRate, adapter);
-    }
-
-    /**
-     * Invokes adapterTrimIlluminRead with default parameters for a single read.
-     * If the read is a negative strand, its bases will be reverse complemented
-     * Simpler, more common of two overloads. Accepts multiple adapters
-     * and tries them all until it finds the first one that matches.
-     *
-     * @param read    SAM/BAM read to trim
-     * @param adapters which adapters to try to use (indexed, paired_end, or single_end)
-     * @return AdapterPair    the AdapterPair matched, or null
-     */
-    public static AdapterPair adapterTrimIlluminaSingleRead(final SAMRecord read,final AdapterPair ... adapters) {
-        return adapterTrimIlluminaSingleRead(read, MIN_MATCH_BASES, MAX_ERROR_RATE, adapters);
-    }
-
-    /**
-     * Invokes adapterTrimIlluminRead with explicit matching thresholds for a single read.
-     * If the read is a negative strand, a copy of its bases will be reverse complemented.
-     * More general form of the two overloads. Accepts multiple adapters
-     * and tries them all until it finds the first one that matches.
-     *
-     * @param read          SAM/BAM read to trim
-     * @param minMatchBases minimum number of contiguous bases to match against in a read
-     * @param maxErrorRate  maximum error rate when matching read bases
-     * @param adapters      which adapters to try (indexed, paired_end, or single_end)
-     * @return AdapterPair    the AdapterPair matched, or null
-     */
-    public static AdapterPair adapterTrimIlluminaSingleRead(final SAMRecord read, final int minMatchBases,
-                                                     final double maxErrorRate, final AdapterPair ... adapters) {
-        for (AdapterPair adapter : adapters) {
-            final int indexOfAdapterSequence = findIndexOfClipSequence(
-                    getReadBases(read), adapter.get3PrimeAdapterBytes(), minMatchBases, maxErrorRate);
-            if (indexOfAdapterSequence != NO_MATCH) {
-                // Convert to a one-based index for storage on the record.
-                read.setAttribute(ReservedTagConstants.XT, indexOfAdapterSequence + 1);
-                return adapter;
-            }
-        }
-        return null;
-    }
-    /**
-     * @deprecated          Use the varargs version.  This no longer returns a warning string..
-     */
-    public static String adapterTrimIlluminaPairedReads(final SAMRecord read1, final SAMRecord read2, final AdapterPair adapters) {
-        adapterTrimIlluminaPairedReads(read1, read2, MIN_MATCH_PE_BASES, MAX_PE_ERROR_RATE, adapters);
-        return null;
-    }
-
-    /**
-     * @deprecated          Use the varargs version.  This no longer returns a warning string..
-     */
-    public static String adapterTrimIlluminaPairedReads(final SAMRecord read1, final SAMRecord read2,
-        final AdapterPair adapters, final int minMatchBases, final double maxErrorRate) {
-
-        adapterTrimIlluminaPairedReads(read1, read2, minMatchBases, maxErrorRate, adapters);
-        return null;
-    }
-
-    /**
-     * Invokes adapterTrimIlluminaPairedReads with default less stringent parameters for a pair of reads.
-     * If the read is a negative strand, its bases will be reverse complemented
-     * Simpler, more common of two overloads.
-     *
-     * @param  read1    first read of the pair
-     * @param  read2    second read of the pair
-     * @param  adapters which adapters to use (indexed, paired_end, or single_end, nextera), attempted in order
-     * @return int     number of bases trimmed
-     */
-    public static AdapterPair adapterTrimIlluminaPairedReads(final SAMRecord read1, final SAMRecord read2, final AdapterPair ... adapters) {
-        return adapterTrimIlluminaPairedReads(read1, read2, MIN_MATCH_PE_BASES, MAX_PE_ERROR_RATE, adapters);
-    }
-
-    /**
-     * Invokes adapterTrimIlluminaRead with explicit parameters for a pair of reads.
-     * More general form of two overloads.
-     * Returns a warning string when the trim positions found differed for each read.
-     *
-     * @param read1         first read of the pair.
-     * If read1 is a negative strand, a copy of its bases will be reverse complemented.
-     * @param read2         second read of the pair.
-     * If read2 is a negative strand, a copy of its bases will be reverse complemented
-     * @param minMatchBases minimum number of contiguous bases to match against in a read
-     * @param maxErrorRate  maximum error rate when matching read bases
-     * @param  adapters which adapters to use (indexed, paired_end, or single_end, nextera), attempted in order
-     * @return int     number of bases trimmed
-     */
-    public static AdapterPair adapterTrimIlluminaPairedReads(final SAMRecord read1, final SAMRecord read2,
-        final int minMatchBases, final double maxErrorRate, final AdapterPair ... adapters) {
-        AdapterPair matched = null;
-
-        for (final AdapterPair adapterPair : adapters) {
-            final int index1 = findIndexOfClipSequence(
-                    getReadBases(read1), adapterPair.get3PrimeAdapterBytes(), minMatchBases, maxErrorRate);
-            final int index2 = findIndexOfClipSequence(
-                    getReadBases(read2), adapterPair.get5PrimeAdapterBytesInReadOrder(), minMatchBases, maxErrorRate);
-
-            if (index1 == index2) {
-                if (index1 != NO_MATCH) {
-                    // This is the best result: both match exactly, we're done
-                    read1.setAttribute(ReservedTagConstants.XT, index1 + 1);
-                    read2.setAttribute(ReservedTagConstants.XT, index2 + 1);
-                    return adapterPair;
-                }
-                else {
-                    // Otherwise they were both no match, we just keep trying
-                }
-            } else if (index1 == NO_MATCH || index2 == NO_MATCH) {
-                // One of them matched, but the other didn't.
-                // Try matching the one that did match again with a little tighter
-                // stringency and, if that works, trim both reads at the matching point.
-                // This is only the second-best possibility... keep looking for a perfect match.
-                if(attemptOneSidedMatch(read1, read2, index1, index2, 2 * minMatchBases)) {
-                    matched = adapterPair;
-                }
-
-            } else {
-                // Both matched at different positions. Do nothing
-            }
-        }
-
-
-        return matched;
-    }
-
-    /**
-     * When an adapter is matched in only one end of a pair, we check it again with
-     * stricter thresholds.  If it still matches, then we trim both ends of the read
-     * at the same location.
-      */
-    private static boolean attemptOneSidedMatch(final SAMRecord read1,
-                                             final SAMRecord read2,
-                                             final int index1,
-                                             final int index2,
-                                             final int stricterMinMatchBases) {
-
-        // Save all the data about the read where we found the adapter match
-        final int matchedIndex = index1 == NO_MATCH ? index2 : index1;
-        final SAMRecord matchedRead = index1 == NO_MATCH ? read2 : read1;
-
-
-        // If it still matches with a stricter minimum matched bases, then
-        // clip both reads
-        if (matchedRead.getReadLength() - matchedIndex >= stricterMinMatchBases) {
-            if (read1.getReadBases().length > matchedIndex) {
-                read1.setAttribute(ReservedTagConstants.XT, matchedIndex + 1);
-            }
-            if (read2.getReadBases().length > matchedIndex) {
-                read2.setAttribute(ReservedTagConstants.XT, matchedIndex + 1);
-            }
-            return true;
-        }
-        return false;
-    }
-
-    /**
-     *  Returns an array of bytes representing the bases in the read,
-     *  reverse complementing them if the read is on the negative strand
-     */
-    private static byte[] getReadBases(final SAMRecord read) {
-        if (!read.getReadNegativeStrandFlag()) {
-            return read.getReadBases();
-        }
-        else {
-            final byte[] reverseComplementedBases = new byte[read.getReadBases().length];
-            System.arraycopy(read.getReadBases(), 0, reverseComplementedBases, 0, reverseComplementedBases.length);
-            SequenceUtil.reverseComplement(reverseComplementedBases);
-            return reverseComplementedBases;
-        }
-    }
-
-    /**
-     * Finds the first index of the adapterSequence sequence in the read sequence requiring at least minMatch
-     * bases of pairwise alignment with a maximum number of errors dictated by maxErrorRate.
-     *
-     * @param read
-     */
-    public static int findIndexOfClipSequence(final byte[] read, final byte[] adapterSequence, final int minMatch, final double maxErrorRate) {
-        // If the read's too short we can't possibly match it
-        if (read == null || read.length < minMatch) return NO_MATCH;
-        final int minClipPosition = 0;
-
-        // Walk backwards down the read looking for the sequence
-        READ_LOOP:
-        for (int start = read.length - minMatch; start > minClipPosition -1; --start) {
-            final int length = Math.min(read.length - start, adapterSequence.length);
-            final int mismatchesAllowed = (int) (length * maxErrorRate);
-            int mismatches = 0;
-
-            for (int i = 0; i < length; ++i) {
-                if (!SequenceUtil.isNoCall(adapterSequence[i]) && !SequenceUtil.basesEqual(adapterSequence[i], read[start + i])) {
-                    if (++mismatches > mismatchesAllowed) continue READ_LOOP;
-                }
-            }
-
-            // If we got this far without breaking out, then it matches
-            return start;
-        }
-
-        return NO_MATCH;
-    }
-}
\ No newline at end of file
diff --git a/src/java/net/sf/picard/util/CsvInputParser.java b/src/java/net/sf/picard/util/CsvInputParser.java
deleted file mode 100644
index 58e6a2c..0000000
--- a/src/java/net/sf/picard/util/CsvInputParser.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package net.sf.picard.util;
-
-import java.io.File;
-import java.io.InputStream;
-
-public class CsvInputParser extends BasicInputParser {
-    /**
-     * Constructor
-     *
-     * @param stream  The input stream(s) to parse
-     */
-    public CsvInputParser(final boolean treatGroupedDelimitersAsOne, final InputStream... stream) {
-        super(treatGroupedDelimitersAsOne, stream);
-    }
-
-    /**
-     * Constructor
-     *
-     * @param file  The file(s) to parse
-     */
-    public CsvInputParser(final boolean treatGroupedDelimitersAsOne, final File... file) {
-        super(treatGroupedDelimitersAsOne, file);
-    }
-
-    /**
-     * Determines whether a given character is a delimiter
-     *
-     * @param b the character to evaluate
-     * @return  true if <code>b</code> is a delimiter; otherwise false
-     */
-    @Override
-    protected boolean isDelimiter(final byte b) {
-        return b == ',';
-    }
-
-}
diff --git a/src/java/net/sf/picard/util/DelimitedTextFileWithHeaderIterator.java b/src/java/net/sf/picard/util/DelimitedTextFileWithHeaderIterator.java
deleted file mode 100644
index 3681440..0000000
--- a/src/java/net/sf/picard/util/DelimitedTextFileWithHeaderIterator.java
+++ /dev/null
@@ -1,111 +0,0 @@
-package net.sf.picard.util;
-
-import net.sf.picard.PicardException;
-import net.sf.samtools.util.CloseableIterator;
-
-import java.util.*;
-
-/**
- * Iterate through a delimited text file in which columns are found by looking at a header line rather than by position.
- *
- * TODO: This effectively replaces TabbedTextFileWithHeaderParser although the latter hasn't been modified to use this
- * code instead.
- *
- * @author jgentry at broadinstitute.org
- */
-public class DelimitedTextFileWithHeaderIterator implements CloseableIterator<DelimitedTextFileWithHeaderIterator.Row> {
-    public class Row {
-        private final String[] fields;
-        private final String currentLine;
-
-        Row(final String[] fields, final String source) {
-            this.fields = fields;
-            this.currentLine = source;
-        }
-
-        /**
-         * @return Array of fields in the order they appear in the file.
-         */
-        public String[] getFields() {
-            return fields;
-        }
-
-        public String getField(final String columnLabel) {
-            final Integer key = columnLabelIndices.get(columnLabel);
-            if (key == null) throw new NoSuchElementException(String.format("column %s in %s", columnLabel, parser.getFileName()));
-            return fields[key];
-        }
-
-        public Integer getIntegerField(final String columnLabel) {
-            if (fields[columnLabelIndices.get(columnLabel)] == null)  return null;
-            return Integer.parseInt(fields[columnLabelIndices.get(columnLabel)]);
-        }
-
-        public String getCurrentLine() {
-            return this.currentLine;
-        }
-    }
-
-    /**
-     * Map from column label to positional index.
-     */
-    private final Map<String, Integer> columnLabelIndices = new HashMap<String, Integer>();
-    private final BasicInputParser parser;
-
-    public DelimitedTextFileWithHeaderIterator(final BasicInputParser parser) {
-        this.parser = parser;
-        if (!parser.hasNext()) {
-            throw new PicardException("No header line found in file " + parser.getFileName());
-        }
-        final String[] columnLabels = parser.next();
-        for (int i = 0; i < columnLabels.length; ++i) {
-            columnLabelIndices.put(columnLabels[i], i);
-        }
-    }
-
-    /**
-     * @param columnLabel
-     * @return True if the given column label appears in the header.
-     */
-    public boolean hasColumn(final String columnLabel) {
-        return columnLabelIndices.containsKey(columnLabel);
-    }
-
-    /**
-     *
-     * @return The set of column labels for this file in no particular order.
-     */
-    public Set<String> columnLabels() {
-        return columnLabelIndices.keySet();
-    }
-
-    public int getCurrentLineNumber() {
-        return parser.getCurrentLineNumber();
-    }
-
-    public Set<String> getColumnNames() {
-        return Collections.unmodifiableSet(this.columnLabelIndices.keySet());
-    }
-
-    @Override
-    public boolean hasNext() {
-        return parser.hasNext();
-    }
-
-    @Override
-    public Row next() {
-        final String[] fields = parser.next();
-        final String source = parser.getCurrentLine();
-        return new Row(fields, source);
-    }
-
-    @Override
-    public void remove() {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public void close() {
-        parser.close();
-    }
-}
diff --git a/src/java/net/sf/picard/util/FastqQualityFormat.java b/src/java/net/sf/picard/util/FastqQualityFormat.java
deleted file mode 100644
index a98bef6..0000000
--- a/src/java/net/sf/picard/util/FastqQualityFormat.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.util;
-
-/**
- * Enumeration for FastQ quality score formats formats.
- */
-public enum FastqQualityFormat {
-    /** Early Solexa/Illumina (pre pipeline 1.3) style scores  which encode Solexa qualities using an ASCII offset of 64 */
-    Solexa,
-    /** Recent Solexa/Illumina (pipeline 1.3+) style scores which encode PHRED qualities using an ASCII offset of 64 */
-    Illumina,
-    /** Sanger style FASTQ files which encode PHRED qualities using an ASCII offset of 33 */
-    Standard
-}
diff --git a/src/java/net/sf/picard/util/FileAppendStreamLRUCache.java b/src/java/net/sf/picard/util/FileAppendStreamLRUCache.java
deleted file mode 100644
index 2989c56..0000000
--- a/src/java/net/sf/picard/util/FileAppendStreamLRUCache.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.util;
-
-import net.sf.picard.PicardException;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.FileNotFoundException;
-
-/**
- * LRU cache of FileOutputStreams to handle situation in which it is necessary to have more FileOuputStreams
- * than resource limits will allow.  Least-recently-used FileOutputStream is closed when it is pushed out of
- * the cache.  When adding a new element to the cache, the file is opened in append mode. 
- *
- * @author alecw at broadinstitute.org
- */
-public class FileAppendStreamLRUCache extends ResourceLimitedMap<File, FileOutputStream> {
-    public FileAppendStreamLRUCache(final int cacheSize) {
-        super(cacheSize, new Functor());
-    }
-
-    private static class Functor implements ResourceLimitedMapFunctor<File, FileOutputStream> {
-
-        // Explicitly GC after this many calls to close() in order to force file handles to truly be released.
-
-        private static final int GC_FREQUENCY = 10000;
-        private int numCloses = 0;
-
-        public FileOutputStream makeValue(final File file) {
-            try {
-                return new FileOutputStream(file, true);
-            } catch (FileNotFoundException e) {
-                // In case the file could not be opened because of too many file handles, try to force
-                // file handles to be closed.
-                System.gc();
-                System.runFinalization();
-                try {
-                    return new FileOutputStream(file, true);
-                } catch (FileNotFoundException e2) {
-                    throw new PicardException(file + "not found", e2);
-                }
-            }
-        }
-
-        public void finalizeValue(final File file, final FileOutputStream fileOutputStream) {
-            try {
-                fileOutputStream.close();
-            } catch (IOException e) {
-                throw new PicardException("Exception closing FileOutputStream for " + file, e);
-            }
-        }
-    }
-}
diff --git a/src/java/net/sf/picard/util/FileChannelJDKBugWorkAround.java b/src/java/net/sf/picard/util/FileChannelJDKBugWorkAround.java
deleted file mode 100644
index 1ea405f..0000000
--- a/src/java/net/sf/picard/util/FileChannelJDKBugWorkAround.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.util;
-
-import net.sf.picard.PicardException;
-
-import java.io.File;
-import java.io.FileWriter;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.nio.channels.FileChannel;
-import java.nio.ByteBuffer;
-
-/**
- * Work-around for the following bug
- * http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6503430
- *
- * Call the method in the main thread before launching threads that do memory-mapping.
- * @author alecw at broadinstitute.org
- */
-public class FileChannelJDKBugWorkAround {
-    private static boolean alreadyCalled = false;
-
-    public static byte doBugWorkAround() {
-        if (alreadyCalled) return 0;
-        try {
-            File tmpFile = File.createTempFile("ignore-me.", ".bug-work-around");
-            FileWriter writer = new FileWriter(tmpFile);
-            writer.write("Hi, Mom!");
-            writer.close();
-            FileInputStream is = new FileInputStream(tmpFile);
-            ByteBuffer buf = is.getChannel().map(FileChannel.MapMode.READ_ONLY, 0, tmpFile.length());
-            is.close();
-            byte ret = buf.get();
-            tmpFile.delete();
-            alreadyCalled = true;
-            return ret;
-        } catch (IOException e) {
-            throw new PicardException("IOException", e);
-        }
-
-    }
-}
diff --git a/src/java/net/sf/picard/util/FormatUtil.java b/src/java/net/sf/picard/util/FormatUtil.java
deleted file mode 100644
index 357494f..0000000
--- a/src/java/net/sf/picard/util/FormatUtil.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.util;
-
-import net.sf.picard.PicardException;
-import net.sf.samtools.util.Iso8601Date;
-
-import java.io.File;
-import java.security.InvalidParameterException;
-import java.text.*;
-import java.util.Date;
-import java.math.RoundingMode;
-
-/**
- * Simple class used to format object values into a standard format for printing.
- *
- * @author Tim Fennell
- */
-public class FormatUtil {
-    private DateFormat dateFormat;
-    private NumberFormat integerFormat;
-    private NumberFormat floatFormat;
-
-    /** Constructs a new FormatUtil and initializes various internal formatters. */
-    public FormatUtil() {
-        this.dateFormat = new SimpleDateFormat("yyyy-MM-dd");
-
-        this.integerFormat = NumberFormat.getIntegerInstance();
-        this.integerFormat.setGroupingUsed(false);
-
-        this.floatFormat = NumberFormat.getNumberInstance();
-        this.floatFormat.setGroupingUsed(false);
-        this.floatFormat.setMaximumFractionDigits(6);
-        this.floatFormat.setRoundingMode(RoundingMode.HALF_DOWN);
-        if (this.floatFormat instanceof DecimalFormat) {
-            final DecimalFormat decimalFormat = (DecimalFormat)this.floatFormat;
-            final DecimalFormatSymbols decimalFormatSymbols = decimalFormat.getDecimalFormatSymbols();
-            decimalFormatSymbols.setNaN("?");
-            decimalFormatSymbols.setInfinity("?");
-            decimalFormat.setDecimalFormatSymbols(decimalFormatSymbols);
-        }
-    }
-
-    /** Formats a short to an integer string. */
-    public String format(short value) { return this.integerFormat.format(value); }
-
-    /** Formats an int to an integer string. */
-    public String format(int value) { return this.integerFormat.format(value); }
-
-    /** Formats a long to an integer string. */
-    public String format(long value) { return this.integerFormat.format(value); }
-
-    /** Formats a float to a floating point string. */
-    public String format(float value) {return this.floatFormat.format(value); }
-
-    /** Formats a double to a floating point string. */
-    public String format(double value) {return this.floatFormat.format(value); }
-
-    /** Formats an enum to the String representation of an enum. */
-    public String format(Enum value) { return value.name(); }
-
-    /** Formats a date to a date string without time. */
-    public String format(Date value) { return this.dateFormat.format(value); }
-
-    /** Formats date & time */
-    public String format(final Iso8601Date value) { return value.toString(); }
-
-    /** Formats a boolean value to a String. */
-    public String format(boolean value) { if (value) return "Y"; else return "N"; }
-
-    /** Attempts to determine the type of value and format it appropriately. */
-    public String format(Object value) {
-        if (value == null) return "";
-        if (value instanceof Short)       return format( ((Short) value).shortValue() );
-        if (value instanceof Integer)     return format( ((Integer) value).intValue() );
-        if (value instanceof Long)        return format( ((Long) value).longValue() );
-        if (value instanceof Float)       return format( ((Float) value).floatValue() );
-        if (value instanceof Double)      return format( ((Double) value).doubleValue() );
-        if (value instanceof Enum)        return format( ((Enum) value) );
-        if (value instanceof Iso8601Date) return format((Iso8601Date)value);
-        if (value instanceof Date)        return format( ((Date) value) );
-        if (value instanceof Boolean)     return format( ((Boolean) value).booleanValue() );
-        return value.toString();
-    }
-
-    ///////////////////////////////////////////////////////////////////////////
-    // Parsing methods
-    ///////////////////////////////////////////////////////////////////////////
-
-    /** Parses a String into a short. */
-    public short parseShort(String value) { return Short.parseShort(value); }
-
-    /** Parses a String into an int. */
-    public int parseInt(String value) { return Integer.parseInt(value); }
-
-    /** Parses a String into a long. */
-    public long parseLong(String value) { return Long.parseLong(value); }
-
-    /** Parses a String into a float. */
-    public float parseFloat(String value) {
-        if ("?".equals(value) || "-?".equals(value)) return Float.NaN;
-        else return Float.parseFloat(value);
-    }
-
-    /** Parses a String into a double. */
-    public double parseDouble(String value) {
-        if ("?".equals(value) || "-?".equals(value)) return Double.NaN;        
-        else return Double.parseDouble(value);
-    }
-
-    /** Parses a String into an Enum of the given type. */
-    public <E extends Enum> E parseEnum(String value, Class<E> type) { return (E) Enum.valueOf(type, value); }
-
-    /** Parses a String into a date. */
-    public Date parseDate(String value) {
-        try {
-            return this.dateFormat.parse(value);
-        }
-        catch (ParseException pe) {
-            throw new PicardException("Could not parse value as date: " + value, pe);
-        }
-    }
-
-    /** Parse a String into an Iso8601 Date */
-    public Iso8601Date parseIso8601Date(String value) { return new Iso8601Date(value); }
-
-    /** Parses a String into a boolean. */
-    public boolean parseBoolean(String value) {
-        if (value == null || value.length() == 0) return false;
-        char ch = Character.toUpperCase(value.charAt(0));
-
-        return (ch == 'Y');
-    }
-
-    /**
-     * Attempts to determine the correct parse method to call based on the desired
-     * return type and then parses the String and returns the value.
-     *
-     * @param value the String value to be parsed
-     * @param returnType the desired return type
-     * @return an object of the returnType
-     */
-    public Object parseObject(String value, Class<?> returnType) {
-        if (returnType == Short.class   || returnType == Short.TYPE)   return parseShort(value);
-        if (returnType == Integer.class || returnType == Integer.TYPE) return parseInt(value);
-        if (returnType == Long.class    || returnType == Long.TYPE)    return parseLong(value);
-        if (returnType == Float.class   || returnType == Float.TYPE)   return parseFloat(value);
-        if (returnType == Double.class  || returnType == Double.TYPE)  return parseDouble(value);
-        if (returnType == Boolean.class || returnType == Boolean.TYPE) return parseBoolean(value);
-        if (returnType == Iso8601Date.class)                           return parseIso8601Date(value);
-        if (returnType == Date.class)                                  return parseDate(value);
-        if (returnType == Byte.class    || returnType == Byte.TYPE)    return parseInt(value);
-        if (returnType == File.class)                                  return new File(value);
-        if (Enum.class.isAssignableFrom(returnType)) return parseEnum(value, (Class<? extends Enum>)returnType);
-        if (returnType == String.class) return value;
-
-        throw new InvalidParameterException("Don't know how to convert a String to a " + returnType.getName());
-    }
-}
diff --git a/src/java/net/sf/picard/util/Histogram.java b/src/java/net/sf/picard/util/Histogram.java
deleted file mode 100644
index 0067830..0000000
--- a/src/java/net/sf/picard/util/Histogram.java
+++ /dev/null
@@ -1,466 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.util;
-
-import net.sf.picard.util.Histogram.Bin;
-
-import java.util.*;
-
-import static java.lang.Math.*;
-
-/**
- * Class for computing and accessing histogram type data.  Stored internally in
- * a sorted Map so that keys can be iterated in order.
- *
- * @author Tim Fennell
- */
-public class Histogram<K extends Comparable> extends TreeMap<K, Bin> {
-    private String binLabel   = "BIN";
-    private String valueLabel = "VALUE";
-    private Double mean;
-
-    /** Constructs a new Histogram with default bin and value labels. */
-    public Histogram() { }
-
-    /** Constructs a new Histogram with supplied bin and value labels. */
-    public Histogram(final String binLabel, final String valueLabel) {
-        this.binLabel = binLabel;
-        this.valueLabel = valueLabel;
-    }
-
-    /** Constructs a new Histogram that'll use the supplied comparator to sort keys. */
-    public Histogram(final Comparator<K> comparator) {
-        super(comparator);
-    }
-
-    /** Constructor that takes labels for the bin and values and a comparator to sort the bins. */
-    public Histogram(final String binLabel, final String valueLabel, final Comparator<K> comparator) {
-        this(comparator);
-        this.binLabel = binLabel;
-        this.valueLabel = valueLabel;
-    }
-
-    /** Copy constructor for a histogram. */
-    public Histogram(final Histogram<K> in) {
-        super(in);
-        this.binLabel = in.binLabel;
-        this.valueLabel = in.valueLabel;
-        this.mean = in.mean;
-    }
-
-    /** Represents a bin in the Histogram. */
-    public class Bin {
-        private final K id;
-        private double value = 0;
-
-        /** Constructs a new bin with the given ID. */
-        private Bin(final K id) { this.id = id; }
-
-        /** Gets the ID of this bin. */
-        public K getId() { return id; }
-
-        /** Gets the value in the bin. */
-        public double getValue() { return value; }
-
-        /** Returns the String format for the value in the bin. */
-        public String toString() { return String.valueOf(this.value); }
-
-        /** Checks the equality of the bin by ID and value. */
-        public boolean equals(final Object o) {
-            if (this == o) return true;
-            if (o == null || getClass() != o.getClass()) return false;
-
-            final Bin bin = (Bin) o;
-
-            if (Double.compare(bin.value, value) != 0) return false;
-            if (!id.equals(bin.id)) return false;
-
-            return true;
-        }
-
-        @Override
-        public int hashCode() {
-            int result;
-            final long temp;
-            result = id.hashCode();
-            temp = value != +0.0d ? Double.doubleToLongBits(value) : 0L;
-            result = 31 * result + (int) (temp ^ (temp >>> 32));
-            return result;
-        }
-
-        public double getIdValue() {
-            if (id instanceof Number) {
-                return ((Number) id).doubleValue();
-            } else {
-                throw new UnsupportedOperationException("getIdValue only supported for Histogram<? extends Number>");
-            }
-        }
-    }
-
-    /** Prefill the histogram with the supplied set of bins. */
-    public void prefillBins(final K... ids) {
-        for (final K id : ids) {
-            put(id, new Bin(id));
-        }
-    }
-
-    /** Increments the value in the designated bin by 1. */
-    public void increment(final K id) {
-        increment(id, 1d);
-    }
-
-    /** Increments the value in the designated bin by the supplied increment. */
-    public void increment(final K id, final double increment) {
-        Bin bin = get(id);
-        if (bin == null) {
-            bin = new Bin(id);
-            put(id, bin);
-        }
-
-        bin.value += increment;
-        mean = null;
-    }
-
-    public String getBinLabel() { return binLabel; }
-    public void setBinLabel(final String binLabel) { this.binLabel = binLabel; }
-
-    public String getValueLabel() { return valueLabel; }
-    public void setValueLabel(final String valueLabel) { this.valueLabel = valueLabel; }
-
-    /** Checks that the labels and values in the two histograms are identical. */
-    public boolean equals(final Object o) {
-        return o != null &&
-                (o instanceof Histogram) &&
-                ((Histogram) o).binLabel.equals(this.binLabel) &&
-                ((Histogram) o).valueLabel.equals(this.valueLabel) &&
-                super.equals(o);
-    }
-
-    public double getMean() {
-        if (mean == null) {
-            mean = getSum() / getCount();
-        }
-
-        return mean;
-    }
-
-    /**
-     * Returns the sum of the products of the histgram bin ids and the number of entries in each bin.
-     */
-    public double getSum() {
-        double total = 0;
-        for (final Bin bin : values()) {
-            total += bin.getValue() * bin.getIdValue();
-        }
-
-        return total;
-    }
-
-    /**
-     * Returns the sum of the number of entries in each bin.
-     */
-    public double getSumOfValues() {
-        double total = 0;
-        for (final Bin bin : values()) {
-            total += bin.getValue();
-        }
-
-        return total;
-    }
-
-    public double getStandardDeviation() {
-        final double mean = getMean();
-
-        double count = 0;
-        double total = 0;
-
-        for (final Bin bin : values()) {
-            final double localCount = bin.getValue();
-            final double value = bin.getIdValue();
-
-            count += localCount;
-            total += localCount * pow(value - mean, 2);
-        }
-
-        return Math.sqrt(total / (count-1));
-    }
-
-    /**
-     * Calculates the mean bin size
-     */
-    public double getMeanBinSize() {
-        return (getSumOfValues() / size());
-    }
-
-	/**
-	 * Calculates the median bin size
-	 */
-	public double getMedianBinSize() {
-		if (size() == 0) {
-			return 0;
-		}
-
-		final List<Double> binValues = new ArrayList<Double>();
-		for (final Bin bin : values()) {
-			binValues.add(bin.getValue());
-		}
-		Collections.sort(binValues);
-
-		final int midPoint = binValues.size() / 2;
-		double median = binValues.get(midPoint);
-		if (binValues.size() % 2 == 0) {
-			median = (median + binValues.get(midPoint-1)) / 2;
-		}
-
-		return median;
-	}
-
-    /**
-     * Calculates the standard deviation of the bin size
-     */
-    public double getStandardDeviationBinSize(final double mean) {
-        double total = 0;
-        for(final Bin bin : values()) {
-            total += Math.pow(bin.getValue() - mean, 2);
-        }
-        return Math.sqrt(total / (Math.max(1,values().size()-1)));
-    }
-
-    /**
-     * Gets the bin in which the given percentile falls.
-     *
-     * @param percentile a value between 0 and 1
-     * @return the bin value in which the percentile falls
-     */
-    public double getPercentile(double percentile) {
-        if (percentile <= 0) throw new IllegalArgumentException("Cannot query percentiles of 0 or below");
-        if (percentile >= 1) throw new IllegalArgumentException("Cannot query percentiles of 1 or above");
-
-        double total = getCount();
-        double sofar = 0;
-        for (Bin bin : values()) {
-            sofar += bin.getValue();
-            if (sofar / total >= percentile) return bin.getIdValue();
-        }
-
-        throw new IllegalStateException("Could not find percentile: " + percentile);
-    }
-
-    /**
-     * Returns the cumulative probability of observing a value <= v when sampling the
-     * distribution represented by this histogram.
-     */
-    public double getCumulativeProbability(final double v) {
-        double count = 0;
-        double total = 0;
-
-        for (final Bin bin : values()) {
-            final double binValue = bin.getIdValue();
-            if (binValue <= v) count += bin.getValue();
-            total += bin.getValue();
-        }
-
-        return count / total;
-    }
-
-    public double getMedian() {
-        double total = 0;
-        double count = getCount();
-
-        // Base cases
-        if (count == 0) return 0;
-        if (count == 1) return values().iterator().next().getIdValue();
-
-        final double midLow, midHigh;
-        if (count % 2 == 0) {
-            midLow = count / 2;
-            midHigh = midLow + 1;
-        }
-        else {
-            midLow = Math.ceil(count / 2);
-            midHigh = midLow;
-        }
-
-        Double midLowValue  = null;
-        Double midHighValue = null;
-        for (final Bin bin : values()) {
-            total += bin.getValue();
-            if (midLowValue  == null && total >= midLow)  midLowValue  = bin.getIdValue();
-            if (midHighValue == null && total >= midHigh) midHighValue = bin.getIdValue();
-            if (midLowValue != null && midHighValue != null) break;
-        }
-
-        return (midLowValue + midHighValue) / 2;
-    }
-
-    /** Gets the median absolute deviation of the distribution. */
-    public double getMedianAbsoluteDeviation() {
-        final double median = getMedian();
-        final Histogram<Double> deviations = new Histogram<Double>();
-        for (final Bin bin : values()) {
-            final double dev = abs(bin.getIdValue() - median);
-            deviations.increment(dev, bin.getValue());
-        }
-
-        return deviations.getMedian();
-    }
-
-    /**
-     * Returns a value that is intended to estimate the mean of the distribution, if the distribution is
-     * essentially normal, by using the median absolute deviation to remove the effect of
-     * erroneous massive outliers.
-     */
-    public double estimateSdViaMad() {
-        return 1.4826 * getMedianAbsoluteDeviation();
-    }
-
-    /** Returns id of the Bin that's the mode of the distribution (i.e. the largest bin). */
-    public double getMode() {
-
-        return getModeBin().getIdValue();
-    }
-
-    /** Returns the Bin that's the mode of the distribution (i.e. the largest bin). */
-    private Bin getModeBin() {
-        Bin modeBin = null;
-
-        for (final Bin bin : values()) {
-            if (modeBin == null || modeBin.value < bin.value) {
-                modeBin = bin;
-            }
-        }
-
-        return modeBin;
-    }
-
-
-    public double getMin() {
-        return firstEntry().getValue().getIdValue();
-    }
-
-    public double getMax() {
-        return lastEntry().getValue().getIdValue();
-    }
-
-    public double getCount() {
-        double count = 0;
-        for (final Bin bin : values()) {
-            count += bin.value;
-        }
-
-        return count;
-    }
-
-    /** Gets the geometric mean of the distribution. */
-    public double getGeometricMean() {
-        double total = 0;
-        double count = 0;
-        for (final Bin bin : values()) {
-            total += bin.value * log(bin.getIdValue());
-            count += bin.value;
-        }
-
-        return exp(total / count);
-    }
-
-    /**
-     * Trims the histogram when the bins in the tail of the distribution contain fewer than mode/tailLimit items
-     */
-    public void trimByTailLimit(final int tailLimit) {
-        if (isEmpty()) {
-            return;
-        }
-
-        final Bin modeBin = getModeBin();
-        final double mode = modeBin.getIdValue();
-        final double sizeOfModeBin = modeBin.getValue();
-        final double minimumBinSize = sizeOfModeBin/tailLimit;
-        Histogram<K>.Bin lastBin = null;
-
-        final List<K> binsToKeep = new ArrayList<K>();
-        for (Histogram<K>.Bin bin : values()) {
-            double binId = ((Number)bin.getId()).doubleValue();
-
-            if (binId <= mode) {
-                binsToKeep.add(bin.getId());
-            }
-            else if ((lastBin != null && ((Number)lastBin.getId()).doubleValue() != binId - 1) || bin.getValue() < minimumBinSize) {
-                break;
-            }
-            else {
-                binsToKeep.add(bin.getId());
-            }
-            lastBin = bin;
-        }
-
-        final Object keys[] = keySet().toArray();
-        for (Object binId : keys) {
-            if (!binsToKeep.contains((K)binId)) {
-                remove(binId);
-            }
-        }
-    }
-
-    /**
-     * Trims the histogram so that only bins <= width are kept.
-     */
-    public void trimByWidth(final int width) {
-        final Iterator<K> it = descendingKeySet().iterator();
-        while (it.hasNext()) {
-
-            if (((Number)it.next()).doubleValue() > width) {
-                it.remove();
-            } else break;
-        }
-    }
-
-    /***
-     * Immutable method that divides the current Histogram by an input Histogram and generates a new one
-     * Throws an exception if the bins don't match up exactly
-     * @param divisorHistogram
-     * @return
-     * @throws IllegalArgumentException
-     */
-    public Histogram<K> divideByHistogram(final Histogram<K> divisorHistogram) throws IllegalArgumentException{
-        Histogram<K> output = new Histogram<K>();
-        if (!this.keySet().equals(divisorHistogram.keySet()))  throw new IllegalArgumentException("Attempting to divide Histograms with non-identical bins");
-        for (final K key : this.keySet()){
-            Bin dividend = this.get(key);
-            Bin divisor = divisorHistogram.get(key);
-            output.increment(key, dividend.getValue()/divisor.getValue());
-        }
-        return output;
-    }
-
-    /***
-     * Mutable method that allows the addition of a Histogram into the current one.
-     * @param addHistogram
-     */
-    public void addHistogram(final Histogram<K> addHistogram) {
-        for (final K key : addHistogram.keySet()){
-            this.increment(key, addHistogram.get(key).getValue());
-        }
-    }
-}
diff --git a/src/java/net/sf/picard/util/IlluminaUtil.java b/src/java/net/sf/picard/util/IlluminaUtil.java
deleted file mode 100644
index d1772c6..0000000
--- a/src/java/net/sf/picard/util/IlluminaUtil.java
+++ /dev/null
@@ -1,223 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.util;
-
-import net.sf.picard.PicardException;
-import net.sf.samtools.util.SequenceUtil;
-import net.sf.samtools.util.StringUtil;
-
-import java.io.Closeable;
-import java.util.List;
-
-/**
- * Misc utilities for working with Illumina specific files and data
- *
- * @author jburke at broadinstitute.org
- */
-public class IlluminaUtil {
-
-    public static final String BARCODE_DELIMITER = "-";
-
-    /**
-     * Parse the tile # from the read name.
-     * If we find that there are other elements needed from the read name, it might be a good idea to put
-     * makeReadName() and various get..() methods into a new class.
-     *
-     * @param readName As produced by IlluminaUtil.makeReadName()
-     * @return tile number, or null if read name is not in correct format.
-     */
-    public static Integer getTileFromReadName(final String readName) {
-        final int first = readName.indexOf(':');
-        if (first > 0) {
-            final int second = readName.indexOf(':', first+1);
-            if (second > 0) {
-                final int third = readName.indexOf(':', second+1);
-                if (third > 0) {
-                    return Integer.parseInt(readName.substring(second+1, third));
-                }
-            }
-        }
-
-        return null;
-    }
-
-    /**
-     * Convert from Solexa-scaled ASCII qualities to Phred-scaled binary.  The only difference is Solexa qualities have
-     * 64 added to the phred binary to make them printable.
-     *
-     * @param solexaQualities Printable ASCII qualities.
-     * @return binary Phred-scaled qualities.
-     */
-    public static byte[] makePhredBinaryFromSolexaQualityAscii_1_3(final String solexaQualities) {
-        return makePhredBinaryFromSolexaQualityAscii_1_3(solexaQualities, 0, solexaQualities.length());
-    }
-
-    /**
-     * Convert from Solexa-scaled ASCII qualities to Phred-scaled binary.  The only difference is Solexa qualities have
-     * 64 added to the phred binary to make them printable.
-     *
-     * @param solexaQualities Printable ASCII qualities.
-     * @param offset Character at which to start conversion.
-     * @param length Number of characters to convert.
-     * @return binary Phred-scaled qualities.
-     */
-    public static byte[] makePhredBinaryFromSolexaQualityAscii_1_3(final String solexaQualities, final int offset, final int length) {
-        final byte[] quals = StringUtil.stringToBytes(solexaQualities, offset, length);
-        SolexaQualityConverter.getSingleton().convertSolexa_1_3_QualityCharsToPhredBinary(quals);
-        return quals;
-    }
-
-    /**
-     * Converts from Solexa ASCII to Phred binary in place.  These are the older-style qualities
-     * rather than Phred qualities with a different addend to make them printable.
-     */
-    public static void convertSolexaQualityAscii_1_1_ToPhredBinary(final byte[] solexaQualities) {
-        SolexaQualityConverter.getSingleton().convertSolexaQualityCharsToPhredBinary(solexaQualities);
-    }
-
-    /**
-     * Get a Solexa ASCII quality value from an array of strings that are integer qualities in this order:
-     * [cycle-1-A, cycle-1-C, cycle-1-G, cycle-1-T, cycle-2-A, ...].  The best quality from the 4 qualities for
-     * the cycle is found, and then it is ASCII-ized by adding 64.
-     * @param qualities Array of integer quality strings.
-     * @param cycleNumber Which cycle to get quality for.
-     * @param formatter For converting decimal strings to ints.
-     * @return best quality for the given cycle.
-     * @throws net.sf.picard.PicardException if the best quality ASCII value is > 255.
-     */
-    public static byte getSolexaQualityCharFromFourQualities(final String[] qualities, final int cycleNumber, final FormatUtil formatter) {
-        // It apparently is the case that all 4 qualities might be negative, but this appears to correspond to
-        // an no-called base.
-        int bestQuality = Integer.MIN_VALUE;
-        final int startOffset = (cycleNumber - 1) * 4;
-        for (int i = startOffset; i < startOffset + 4; ++i) {
-            final int quality = formatter.parseInt(qualities[i]);
-            if (quality > bestQuality) {
-                bestQuality = quality;
-            }
-        }
-        final int qualityAsCharacter = bestQuality + SolexaQualityConverter.SOLEXA_ADDEND;
-        if (qualityAsCharacter > 255) {
-            throw new PicardException("Quality too large: " + bestQuality);
-        }
-        return (byte)(qualityAsCharacter & 0xff);
-    }
-
-    // Strings indented below to make these easier to compare visually.
-    /** Describes adapters used on each pair of strands */
-    public static enum IlluminaAdapterPair implements AdapterPair {
-
-        PAIRED_END(            "AATGATACGGCGACCACCGAGATCTACACTCTTTCCCTACACGACGCTCTTCCGATCT",  //58 bases)
-                         "AGATCGGAAGAGCGGTTCAGCAGGAATGCCGAGACCGATCTCGTATGCCGTCTTCTGCTTG"), // 61 bases
-
-        INDEXED (              "AATGATACGGCGACCACCGAGATCTACACTCTTTCCCTACACGACGCTCTTCCGATCT",
-                    "AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNNNATCTCGTATGCCGTCTTCTGCTTG"), // note  8 N's  // 67 bases
-
-        SINGLE_END (           "AATGATACGGCGACCACCGAGATCTACACTCTTTCCCTACACGACGCTCTTCCGATCT",
-                                                    "AGATCGGAAGAGCTCGTATGCCGTCTTCTGCTTG"),
-
-        NEXTERA_V1(            "AATGATACGGCGACCACCGAGATCTACACGCCTCCCTCGCGCCATCAGAGATGTGTATAAGAGACAG",
-          "CTGTCTCTTATACACATCTCTGAGCGGGCTGGCAAGGCAGACCGNNNNNNNNATCTCGTATGCCGTCTTCTGCTTG"),
-
-        NEXTERA_V2(            "AATGATACGGCGACCACCGAGATCTACACNNNNNNNNTCGTCGGCAGCGTCAGATGTGTATAAGAGACAG",
-                    "CTGTCTCTTATACACATCTCCGAGCCCACGAGACNNNNNNNNATCTCGTATGCCGTCTTCTGCTTG"),
-
-        DUAL_INDEXED(          "AATGATACGGCGACCACCGAGATCTNNNNNNNNACACTCTTTCCCTACACGACGCTCTTCCGATCT",
-                    "AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNNNATCTCGTATGCCGTCTTCTGCTTG"),
-
-        FLUIDIGM(              "AATGATACGGCGACCACCGAGATCTACACTGACGACATGGTTCTACA",
-                              "AGACCAAGTCTCTGCTACCGTANNNNNNNNNNATCTCGTATGCCGTCTTCTGCTTG"),
-
-        TRUSEQ_SMALLRNA(       "AATGATACGGCGACCACCGAGATCTACACGTTCAGAGTTCTACAGTCCGACGATC",
-                       "TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG"),
-
-        // This one is at the end of the list because its 3' is a subset of several of the 3's above.
-        // There are unit tests that try all AdapterPairs, and this one should go at the end os
-        // it is checked last.
-        ALTERNATIVE_SINGLE_END("AATGATACGGCGACCACCGACAGGTTCAGAGTTCTACAGTCCGACGATC",
-                                       "TCGTATGCCGTCTTCTGCTTG"),
-
-                ;
-
-        final String fivePrime, threePrime, fivePrimeReadOrder;
-        final byte[]  fivePrimeBytes, threePrimeBytes, fivePrimeReadOrderBytes;
-
-
-        private IlluminaAdapterPair(final String fivePrime, final String threePrime) {
-            this.threePrime = threePrime;
-            this.threePrimeBytes = StringUtil.stringToBytes(threePrime);
-
-            this.fivePrime = fivePrime;
-            this.fivePrimeReadOrder = SequenceUtil.reverseComplement(fivePrime);
-            this.fivePrimeBytes = StringUtil.stringToBytes(fivePrime);
-            this.fivePrimeReadOrderBytes = StringUtil.stringToBytes(fivePrimeReadOrder);
-        }
-
-        public String get3PrimeAdapter(){ return threePrime; }
-        public String get5PrimeAdapter(){ return fivePrime; }
-        public String get3PrimeAdapterInReadOrder(){ return threePrime; }
-        public String get5PrimeAdapterInReadOrder() { return fivePrimeReadOrder; }
-        public byte[] get3PrimeAdapterBytes() { return threePrimeBytes; }
-        public byte[] get5PrimeAdapterBytes() { return fivePrimeBytes; }
-        public byte[] get3PrimeAdapterBytesInReadOrder() { return threePrimeBytes; }
-        public byte[] get5PrimeAdapterBytesInReadOrder()  { return fivePrimeReadOrderBytes; }
-        public String getName() { return this.name(); }
-    }
-
-    /**
-     * Concatenates all the barcode sequences with BARCODE_DELIMITER
-     * @param barcodes
-     * @return A single string representation of all the barcodes
-     */
-    public static String barcodeSeqsToString(final List<String> barcodes) {
-        return barcodeSeqsToString(barcodes.toArray(new String[barcodes.size()]));
-    }
-
-    /**
-     * Concatenates all the barcode sequences with BARCODE_DELIMITER
-     * @param barcodes
-     * @return A single string representation of all the barcodes
-     */
-    public static String barcodeSeqsToString(final String barcodes[]) {
-        final StringBuilder sb = new StringBuilder();
-        for (final String bc : barcodes) {
-            if (sb.length() > 0) sb.append(BARCODE_DELIMITER);
-            sb.append(bc);
-        }
-        return sb.toString();
-    }
-
-    /**
-     * Concatenates all the barcode sequences with BARCODE_DELIMITER
-     * @param barcodes
-     * @return A single string representation of all the barcodes
-     */
-    public static String barcodeSeqsToString(final byte barcodes[][]) {
-        final String bcs[] = new String[barcodes.length];
-        for (int i = 0; i < barcodes.length; i++) {
-            bcs[i] = StringUtil.bytesToString(barcodes[i]);
-        }
-        return barcodeSeqsToString(bcs);
-    }
-}
diff --git a/src/java/net/sf/picard/util/Interval.java b/src/java/net/sf/picard/util/Interval.java
deleted file mode 100644
index d53378f..0000000
--- a/src/java/net/sf/picard/util/Interval.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.util;
-
-import net.sf.picard.PicardException;
-import net.sf.samtools.util.CoordMath;
-
-import java.util.Collection;
-
-/**
- * Represents a simple interval on a sequence.  Coordinates are 1-based closed ended.
- *
- * @author Tim Fennell
- */
-public class Interval implements Comparable<Interval>, Cloneable {
-    private final String sequence;
-    private final int start;
-    private final int end;
-    private final boolean negativeStrand;
-    private final String name;
-
-    /**
-     * Constructs an interval with the supplied sequence and start and end. If the end
-     * position is less than the start position an exception is thrown.
-     *
-     * @param sequence the name of the sequence
-     * @param start the start position of the interval on the sequence
-     * @param end the end position of the interval on the sequence
-     */
-    public Interval(final String sequence, final int start, final int end) {
-        this(sequence, start, end, false, null);
-
-    }
-
-    /**
-     * Constructs an interval with the supplied sequence and start, end, strand and name.
-     * If the end position is less than the start position an exception is thrown.
-     *
-     * @param sequence the name of the sequence
-     * @param start the start position of the interval on the sequence
-     * @param end the end position of the interval on the sequence
-     * @param negative true to indicate negative strand, false otherwise
-     * @param name the name (possibly null) of the interval
-     *
-     */
-    public Interval(final String sequence, final int start, final int end, final boolean negative, final String name) {
-        this.sequence = sequence;
-        this.start = start;
-        this.end = end;
-        this.negativeStrand = negative;
-        this.name = name;
-        if (this.end < this.start-1) {
-            throw new IllegalArgumentException("start must be less than or equal to end!");
-        }
-    }
-
-    /** Gets the name of the sequence on which the interval resides. */
-    public String getSequence() { return sequence; }
-
-    /** Gets the 1-based start position of the interval on the sequence. */
-    public int getStart() { return start; }
-
-    /** Gets the 1-based closed-ended end position of the interval on the sequence. */
-    public int getEnd() { return end; }
-
-    /** Returns true if the interval is on the negative strand, otherwise false. */
-    public boolean isNegativeStrand() { return this.negativeStrand; }
-
-    /** Returns true if the interval is on the positive strand, otherwise false. */
-    public boolean isPositiveStrand() { return !this.negativeStrand; }
-
-    /** Returns the name of the interval, possibly null. */
-    public String getName() { return this.name; }
-
-    /** Returns true if this interval overlaps the other interval, otherwise false. */
-    public boolean intersects(final Interval other) {
-        return  (this.getSequence().equals(other.getSequence()) &&
-                 CoordMath.overlaps(this.start, this.end, other.start, other.end));
-    }
-
-    public int getIntersectionLength(final Interval other) {
-        if (this.intersects(other)) {
-            return (int)CoordMath.getOverlap(this.getStart(), this.getEnd(), other.getStart(), other.getEnd());
-        }
-        return 0;
-    }
-
-
-    /** Returns a new Interval that represents the intersection between the two intervals. */
-    public Interval intersect(final Interval that) {
-        if (!intersects(that)) throw new IllegalArgumentException(that + " does not intersect " + this);
-        return new Interval(this.sequence,
-                            Math.max(this.start, that.start),
-                            Math.min(this.end, that.end),
-                            this.negativeStrand,
-                            this.name + " intersection " + that.name);
-    }
-
-
-    /** Returns true if this interval overlaps the other interval, otherwise false. */
-    public boolean abuts(final Interval other) {
-        return this.getSequence().equals(other.getSequence()) &&
-               (this.start == other.end + 1 || other.start == this.end + 1);
-    }
-
-    /** Gets the length of this interval. */
-    public int length() { return this.end - this.start + 1; }
-
-    /** Returns a new interval that is padded by the amount of bases specified on either side. */
-    public Interval pad(final int left, final int right) {
-        return new Interval(this.sequence, this.start-left, this.end+right, this.negativeStrand, this.name);
-    }
-
-    /** Counts the total number of bases a collection of intervals. */
-    public static long countBases(final Collection<Interval> intervals) {
-        long total = 0;
-        for (final Interval i : intervals) {
-            total += i.length();
-        }
-
-        return total;
-    }
-
-
-    /**
-     * Sort based on sequence.compareTo, then start pos, then end pos
-     * with null objects coming lexically last
-     */
-    public int compareTo(final Interval that) {
-        if (that == null) return -1; // nulls last
-
-        int result = this.sequence.compareTo(that.sequence);
-        if (result == 0) {
-            if (this.start == that.start) {
-                result = this.end - that.end;
-            }
-            else {
-                result = this.start - that.start;
-            }
-        }
-
-        return result;
-    }
-
-    /** Equals method that agrees with {@link #compareTo(Interval)}. */
-    public boolean equals(final Object other) {
-        if (!(other instanceof Interval)) return false;
-        else if (this == other) return true;
-        else {
-            Interval that = (Interval)other;
-            return (this.compareTo(that) == 0);
-        }
-    }
-
-    @Override
-    public int hashCode() {
-        int result = sequence.hashCode();
-        result = 31 * result + start;
-        result = 31 * result + end;
-        return result;
-    }
-
-    public String toString() {
-        return getSequence() + ":" + start + "-" + end;
-    }
-
-    @Override
-    public Interval clone() {
-        try { return (Interval) super.clone(); }
-        catch (CloneNotSupportedException cnse) { throw new PicardException("That's unpossible", cnse); }
-    }
-}
diff --git a/src/java/net/sf/picard/util/IntervalList.java b/src/java/net/sf/picard/util/IntervalList.java
deleted file mode 100644
index 22d959c..0000000
--- a/src/java/net/sf/picard/util/IntervalList.java
+++ /dev/null
@@ -1,654 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.util;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.io.IoUtil;
-import net.sf.samtools.*;
-import net.sf.samtools.util.CollectionUtil;
-import net.sf.samtools.util.SequenceUtil;
-import net.sf.samtools.util.StringLineReader;
-import org.broadinstitute.variant.variantcontext.VariantContext;
-import org.broadinstitute.variant.vcf.VCFFileReader;
-import net.sf.samtools.util.StringUtil;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Represents a list of intervals against a reference sequence that can be written to
- * and read from a file.  The file format is relatively simple and reflects the SAM
- * alignment format to a degree.
- *
- * A SAM style header must be present in the file which lists the sequence records
- * against which the intervals are described.  After the header the file then contains
- * records one per line in text format with the following values tab-separated:
- *    Sequence name,
- *    Start position (1-based),
- *    End position (1-based, end inclusive),
- *    Strand (either + or -),
- *    Interval name (an, ideally unique, name for the interval),
- *
- * @author Tim Fennell
- * @author Yossi Farjoun
- */
-public class IntervalList implements Iterable<Interval> {
-    private final SAMFileHeader header;
-    private final List<Interval> intervals = new ArrayList<Interval>();
-
-    private static final Log log = Log.getInstance(IntervalList.class);
-
-    /** Constructs a new interval list using the supplied header information. */
-    public IntervalList(final SAMFileHeader header) {
-        if (header == null) {
-            throw new IllegalArgumentException("SAMFileHeader must be supplied.");
-        }
-        this.header = header;
-    }
-
-    /** Gets the header (if there is one) for the interval list. */
-    public SAMFileHeader getHeader() { return header; }
-
-    /** Returns an iterator over the intervals. */
-    public Iterator<Interval> iterator() { return this.intervals.iterator(); }
-
-    /** Adds an interval to the list of intervals. */
-    public void add(final Interval interval) { this.intervals.add(interval); }
-
-    /** Adds a Collection of intervals to the list of intervals. */
-    public void addall(final Collection<Interval> intervals) {
-        this.intervals.addAll(intervals);
-    }
-
-    /** Sorts the internal collection of intervals by coordinate. */
-    @Deprecated // Use sorted() instead of sort(). The sort() function modifies the object in-place and
-    // is therefore difficult to work with. sorted() returns a new IntervalList that is sorted
-    public void sort() {
-        Collections.sort(this.intervals, new IntervalCoordinateComparator(this.header));
-        this.header.setSortOrder(SAMFileHeader.SortOrder.coordinate);
-    }
-
-    /** returns an independent sorted IntervalList*/
-    public IntervalList sorted() {
-        final IntervalList sorted = IntervalList.copyOf(this);
-        Collections.sort(sorted.intervals, new IntervalCoordinateComparator(sorted.header));
-        sorted.header.setSortOrder(SAMFileHeader.SortOrder.coordinate);
-        return sorted;
-    }
-
-    /** Returned an independent IntervalList that is sorted and uniquified. */
-    public IntervalList uniqued() {
-        return uniqued(true);
-    }
-
-    /**
-     * Returned an independent IntervalList that is sorted and uniquified.
-     * @param concatenateNames If false, interval names are not concatenated when merging intervals to save space.
-     */
-    public IntervalList uniqued(final boolean concatenateNames) {
-        final List<Interval> tmp = getUniqueIntervals(sorted(), concatenateNames);
-        final IntervalList value = new IntervalList(this.header.clone());
-        value.intervals.addAll(tmp);
-        return value;
-    }
-
-    /** Sorts and uniques the list of intervals held within this interval list. */
-    @Deprecated//use uniqued() instead. This function modifies the object in-place and
-    // is therefore difficult to work with.
-    public void unique() {
-        unique(true);
-    }
-
-    /**
-     * Sorts and uniques the list of intervals held within this interval list.
-     * @param concatenateNames If false, interval names are not concatenated when merging intervals to save space.
-     */
-    @Deprecated//use uniqued() instead. This function modifies the object in-place and
-    // is therefore difficult to work with
-    public void unique(final boolean concatenateNames) {
-        sort();
-        final List<Interval> tmp = getUniqueIntervals(concatenateNames);
-        this.intervals.clear();
-        this.intervals.addAll(tmp);
-    }
-
-    /** Gets the set of intervals as held internally. */
-    public List<Interval> getIntervals() {
-        return Collections.unmodifiableList(this.intervals);
-    }
-
-    /**
-     * Merges the list of intervals and then reduces them down where regions overlap
-     * or are directly adjacent to one another.  During this process the "merged" interval
-     * will retain the strand and name of the 5' most interval merged.
-     *
-     * Note: has the side-effect of sorting the stored intervals in coordinate order if not already sorted.
-     *
-     * @return the set of unique intervals condensed from the contained intervals
-     */
-    @Deprecated//use uniqued().getIntervals() instead. This function modifies the object in-place and
-    // is therefore difficult to work with
-    public List<Interval> getUniqueIntervals() {
-        return getUniqueIntervals(true);
-    }
-
-    //NO SIDE EFFECTS HERE!
-    /**
-     * Merges list of intervals and reduces them like net.sf.picard.util.IntervalList#getUniqueIntervals()
-     * @param concatenateNames If false, the merged interval has the name of the earlier interval.  This keeps name shorter.
-     */
-    public static List<Interval> getUniqueIntervals(final IntervalList list, final boolean concatenateNames) {
-
-        final List<Interval> intervals;
-        if (list.getHeader().getSortOrder() != SAMFileHeader.SortOrder.coordinate) {
-            intervals = list.sorted().intervals;
-        }
-        else {
-            intervals = list.intervals;
-        }
-
-        final List<Interval> unique = new ArrayList<Interval>();
-        final TreeSet<Interval> toBeMerged = new TreeSet<Interval>();
-        Interval current = null;
-
-        for (final Interval next : intervals) {
-            if (current == null) {
-                toBeMerged.add(next);
-                current = next;
-            }
-            else if (current.intersects(next) || current.abuts(next)) {
-                toBeMerged.add(next);
-                current = new Interval(current.getSequence(), current.getStart(), Math.max(current.getEnd(), next.getEnd()), false , "");
-            }
-            else {
-                // Emit merged/unique interval
-                unique.add(merge(toBeMerged, concatenateNames));
-
-                // Set current == next for next iteration
-                toBeMerged.clear();
-                current = next;
-                toBeMerged.add(current);
-            }
-        }
-
-        if (toBeMerged.size() > 0) unique.add(merge(toBeMerged, concatenateNames));
-        return unique;
-    }
-
-    /**
-     * Merges list of intervals and reduces them like net.sf.picard.util.IntervalList#getUniqueIntervals()
-     * @param concatenateNames If false, the merged interval has the name of the earlier interval.  This keeps name shorter.
-     */
-    @Deprecated //use uniqued(concatenateNames).getIntervals() or the static version instead to avoid changing the underlying object.
-    /**
-     * Merges list of intervals and reduces them like net.sf.picard.util.IntervalList#getUniqueIntervals()
-     * @param concatenateNames If false, the merged interval has the name of the earlier interval.  This keeps name shorter.
-     */
-    public List<Interval> getUniqueIntervals(final boolean concatenateNames) {
-        if (getHeader().getSortOrder() != SAMFileHeader.SortOrder.coordinate) {
-            sort();
-        }
-
-        return getUniqueIntervals(this, concatenateNames);
-    }
-
-    /** Merges a sorted collection of intervals and optionally concatenates unique names or takes the first name. */
-    static Interval merge(final SortedSet<Interval> intervals, final boolean concatenateNames) {
-        final String chrom = intervals.first().getSequence();
-        int start = intervals.first().getStart();
-        int end   = intervals.last().getEnd();
-        final boolean neg  = intervals.first().isNegativeStrand();
-        final LinkedHashSet<String> names = new LinkedHashSet<String>();
-        final String name;
-
-        for (final Interval i : intervals) {
-            if (i.getName() != null) names.add(i.getName());
-            start = Math.min(start, i.getStart());
-            end   = Math.max(end, i.getEnd());
-        }
-
-        if (concatenateNames) { name = StringUtil.join("|", names); }
-        else { name = names.iterator().next(); }
-
-        return new Interval(chrom, start, end, neg, name);
-    }
-
-    /** Gets the (potentially redundant) sum of the length of the intervals in the list. */
-    public long getBaseCount() {
-        return Interval.countBases(this.intervals);
-    }
-
-    /** Gets the count of unique bases represented by the intervals in the list. */
-    public long getUniqueBaseCount() {
-        return uniqued().getBaseCount();
-    }
-
-    /** Returns the count of intervals in the list. */
-    public int size() {
-        return this.intervals.size();
-    }
-
-    /**
-     * Parse a VCF file and convert to an IntervalList The name field of the IntervalList is taken from the ID field of the variant, if it exists. if not,
-     * creates a name of the format interval-n where n is a running number that increments only on un-named intervals
-     * @param file
-     * @return
-     */
-    public static IntervalList fromVcf(final File file){
-        final VCFFileReader vcfFileReader = new VCFFileReader(file, false);
-        final IntervalList intervalList = IntervalList.fromVcf(vcfFileReader);
-        vcfFileReader.close();
-        return intervalList;
-    }
-
-    /**
-     * Converts a vcf to an IntervalList. The name field of the IntervalList is taken from the ID field of the variant, if it exists. if not,
-     * creates a name of the format interval-n where n is a running number that increments only on un-named intervals
-     * @param vcf the vcfReader to be used for the conversion
-     * @return an IntervalList constructed from input vcf
-     */
-    public static IntervalList fromVcf(final VCFFileReader vcf){
-
-        //grab the dictionary from the VCF and use it in the IntervalList
-        final SAMSequenceDictionary dict = vcf.getFileHeader().getSequenceDictionary();
-        final SAMFileHeader samFileHeader = new SAMFileHeader();
-        samFileHeader.setSequenceDictionary(dict);
-        final IntervalList list = new IntervalList( samFileHeader);
-
-        int intervals=0;
-        for(final VariantContext vc : vcf){
-            if(!vc.isFiltered()){
-                String name = vc.getID();
-                if(".".equals(name) || name == null)
-                    name = "interval-" + (++intervals);
-                list.add(new Interval(vc.getChr(), vc.getStart(), vc.getEnd(), false, name));
-            }
-        }
-
-        return list;
-    }
-
-    /** creates a independent copy of the given IntervalList
-     *
-     * @param list
-     * @return
-     */
-    public static IntervalList copyOf(final IntervalList list){
-        final IntervalList clone = new IntervalList(list.header.clone());
-        clone.intervals.addAll(list.intervals);
-        return clone;
-    }
-
-    /**
-     * Parses an interval list from a file.
-     * @param file the file containing the intervals
-     * @return an IntervalList object that contains the headers and intervals from the file
-     */
-    public static IntervalList fromFile(final File file) {
-        final BufferedReader reader=IoUtil.openFileForBufferedReading(file);
-        final IntervalList list = fromReader(reader);
-        try {
-            reader.close();
-        } catch (final IOException e) {
-            throw new PicardException(String.format("Failed to close file %s after reading",file));
-        }
-
-        return list;
-    }
-
-    /**
-     * Parses an interval list from a reader in a stream based fashion.
-     * @param in a BufferedReader that can be read from
-     * @return an IntervalList object that contains the headers and intervals from the file
-     */
-    public static IntervalList fromReader(final BufferedReader in) {
-        try {
-            // Setup a reader and parse the header
-            final StringBuilder builder = new StringBuilder(4096);
-            String line = null;
-
-            while ((line = in.readLine()) != null) {
-                if (line.startsWith("@")) {
-                    builder.append(line).append('\n');
-                }
-                else {
-                    break;
-                }
-            }
-
-            if (builder.length() == 0) {
-                throw new IllegalStateException("Interval list file must contain header. ");
-            }
-
-            final StringLineReader headerReader = new StringLineReader(builder.toString());
-            final SAMTextHeaderCodec codec = new SAMTextHeaderCodec();
-            final IntervalList list = new IntervalList(codec.decode(headerReader, "BufferedReader"));
-            final SAMSequenceDictionary dict = list.getHeader().getSequenceDictionary();
-
-            //there might not be any lines after the header, in which case we should return an empty list
-            if(line == null) return list;
-
-            // Then read in the intervals
-            final FormatUtil format = new FormatUtil();
-            do {
-                if (line.trim().length() == 0) continue; // skip over blank lines
-
-                // Make sure we have the right number of fields
-                final String[] fields = line.split("\t");
-                if (fields.length != 5) {
-                    throw new PicardException("Invalid interval record contains " +
-                                              fields.length + " fields: " + line);
-                }
-
-                // Then parse them out
-                final String seq = fields[0];
-                final int start = format.parseInt(fields[1]);
-                final int end   = format.parseInt(fields[2]);
-
-                final boolean negative;
-                if (fields[3].equals("-")) negative = true;
-                else if (fields[3].equals("+")) negative = false;
-                else throw new IllegalArgumentException("Invalid strand field: " + fields[3]);
-
-                final String name = fields[4];
-
-                final Interval interval = new Interval(seq, start, end, negative, name);
-                if (dict.getSequence(seq) == null) {
-                    log.warn("Ignoring interval for unknown reference: " + interval);
-                }
-                else {
-                    list.intervals.add(interval);
-                }
-            }
-            while ((line = in.readLine()) != null);
-
-            return list;
-        }
-        catch (final IOException ioe) {
-            throw new PicardException("Error parsing interval list.", ioe);
-        }
-        finally {
-            try { in.close(); } catch (final Exception e) { /* do nothing */ }
-        }
-    }
-
-    /**
-     * Writes out the list of intervals to the supplied file.
-     * @param file a file to write to.  If exists it will be overwritten.
-     */
-    public void write(final File file) {
-        try {
-            final BufferedWriter out = IoUtil.openFileForBufferedWriting(file);
-            final FormatUtil format = new FormatUtil();
-
-            // Write out the header
-            if (this.header != null) {
-                final SAMTextHeaderCodec codec = new SAMTextHeaderCodec();
-                codec.encode(out, this.header);
-            }
-
-            // Write out the intervals
-            for (final Interval interval : this) {
-                out.write(interval.getSequence());
-                out.write('\t');
-                out.write(format.format(interval.getStart()));
-                out.write('\t');
-                out.write(format.format(interval.getEnd()));
-                out.write('\t');
-                out.write(interval.isPositiveStrand() ? '+' : '-');
-                out.write('\t');
-                if(interval.getName() != null){
-                    out.write(interval.getName());
-                }
-                else{
-                    out.write(".");
-                }
-                out.newLine();
-            }
-
-            out.flush();
-            out.close();
-        }
-        catch (final IOException ioe) {
-            throw new PicardException("Error writing out interval list to file: " + file.getAbsolutePath(), ioe);
-        }
-    }
-
-    /**
-     * A utility function for generating the intersection of two IntervalLists, checks for equal dictionaries.
-     *
-     * @param list1 the first IntervalList
-     * @param list2 the second IntervalList
-     * @return the intersection of list1 and list2.
-     */
-
-    public static IntervalList intersection(final IntervalList list1, final IntervalList list2) {
-
-        final IntervalList result;
-        // Ensure that all the sequence dictionaries agree and merge the lists
-        SequenceUtil.assertSequenceDictionariesEqual(list1.getHeader().getSequenceDictionary(),
-                list2.getHeader().getSequenceDictionary());
-
-        result = new IntervalList(list1.getHeader().clone());
-
-        final OverlapDetector<Interval> detector = new OverlapDetector<Interval>(0, 0);
-
-        detector.addAll(list1.getIntervals(), list1.getIntervals());
-
-        for (final Interval i : list2.getIntervals()) {
-            final Collection<Interval> as = detector.getOverlaps(i);
-            for (final Interval j : as) {
-                final Interval tmp = i.intersect(j);
-
-                result.add(tmp);
-            }
-        }
-        return result.uniqued();
-
-    }
-
-    /**
-     * A utility function for intersecting a list of IntervalLists, checks for equal dictionaries.
-     *
-     * @param lists the list of IntervalList
-     * @return the intersection of all the IntervalLists in lists.
-     */
-
-
-    public static IntervalList intersection(final Collection<IntervalList> lists) {
-
-        IntervalList intersection = null;
-        for (final IntervalList list : lists) {
-            if(intersection == null){
-                intersection = list;
-            }
-            else{
-                intersection = intersection(intersection, list);
-            }
-        }
-        return intersection;
-    }
-
-
-
-
-    /**
-     * A utility function for merging a list of IntervalLists, checks for equal dictionaries.
-     * Merging does not look for overlapping intervals nor uniquify
-     *
-     * @param lists a list of IntervalList
-     * @return the union of all the IntervalLists in lists.
-     */
-    public static IntervalList concatenate(final Collection<IntervalList> lists) {
-        if(lists.isEmpty()){
-            throw new PicardException("Cannot concatenate an empty list of IntervalLists.");
-        }
-
-        // Ensure that all the sequence dictionaries agree and merge the lists
-        final SAMFileHeader header = lists.iterator().next().getHeader().clone();
-        header.setSortOrder(SAMFileHeader.SortOrder.unsorted);
-
-        final IntervalList merged = new IntervalList(header);
-
-        for (final IntervalList in : lists) {
-            SequenceUtil.assertSequenceDictionariesEqual(merged.getHeader().getSequenceDictionary(),
-                    in.getHeader().getSequenceDictionary());
-
-            merged.addall(in.intervals);
-            }
-        return merged;
-    }
-
-
-
-    /**
-     * A utility function for finding the union of a list of IntervalLists, checks for equal dictionaries.
-     * also looks for overlapping intervals, uniquifies, and sorts (by coordinate)
-     *
-     * @param lists the list of IntervalList
-     * @return the union of all the IntervalLists in lists.
-     */
-    public static IntervalList union(final Collection<IntervalList> lists) {
-        final IntervalList merged = concatenate(lists);
-        return merged.uniqued();
-    }
-
-
-    public static IntervalList union(final IntervalList list1, final IntervalList list2) {
-        final Collection<IntervalList> duo = CollectionUtil.makeList(list1, list2);
-        return IntervalList.union(duo);
-    }
-
-
-    /** inverts an IntervalList and returns one that has exactly all the bases in the dictionary that the original one does not.
-     *
-     * @param list an IntervalList
-     * @return an IntervalList that is complementary to list
-     */
-    public static IntervalList invert(final IntervalList list) {
-        final IntervalList inverse = new IntervalList(list.header.clone());
-
-        final ListMap<Integer,Interval> map = new ListMap<Integer,Interval>();
-
-        //add all the intervals (uniqued and therefore also sorted) to a ListMap from sequenceIndex to a list of Intervals
-        for(final Interval i : list.uniqued().getIntervals()){
-            map.add(list.getHeader().getSequenceIndex(i.getSequence()),i);
-        }
-
-        int intervals = 0; // a counter to supply newly-created intervals with a name
-
-
-        //iterate over the contigs in the dictionary
-        for (final SAMSequenceRecord samSequenceRecord : list.getHeader().getSequenceDictionary().getSequences()) {
-            final Integer sequenceIndex = samSequenceRecord.getSequenceIndex();
-            final String sequenceName   = samSequenceRecord.getSequenceName();
-            final int sequenceLength    = samSequenceRecord.getSequenceLength();
-
-            Integer lastCoveredPosition = 0; //start at beginning of sequence
-            //iterate over list of intervals that are in sequence
-            if (map.containsKey(sequenceIndex)) // if there are intervals in the ListMap on this contig, iterate over them (in order)
-                for (final Interval i : map.get(sequenceIndex)) {
-                    if (i.getStart() > lastCoveredPosition + 1) //if there's space between the last interval and the current one, add an interval between them
-                        inverse.add(new Interval(sequenceName, lastCoveredPosition + 1, i.getStart() - 1, false, "interval-" + (++intervals)));
-                    lastCoveredPosition = i.getEnd(); //update the last covered position
-                }
-            //finally, if there's room between the last covered position and the end of the sequence, add an interval
-            if (sequenceLength > lastCoveredPosition) //if there's space between the last interval and the next
-                // one, add an interval. This also covers the case that there are no intervals in the ListMap for a contig.
-                inverse.add(new Interval(sequenceName, lastCoveredPosition + 1, sequenceLength, false, "interval-" + (++intervals)));
-        }
-
-        return inverse;
-    }
-
-
-    /**
-     * A utility function for subtracting a collection of IntervalLists from another. Resulting loci are those that are in the first collection
-     * but not the second.
-     *
-     * @param listsToSubtractFrom the collection of IntervalList from which to subtract intervals
-     * @param listsToSubtract the collection of intervals to subtract
-     * @return an IntervalLists comprising all loci that are in first collection but not second.
-     */
-    public static IntervalList subtract(final Collection<IntervalList> listsToSubtractFrom, final Collection<IntervalList> listsToSubtract) {
-        return intersection(
-                union(listsToSubtractFrom),
-                invert(union(listsToSubtract)));
-    }
-
-
-    /**
-     * A utility function for finding the difference between two IntervalLists.
-     *
-     * @param lists1 the first collection of IntervalLists
-     * @param lists2 the second collection of IntervalLists
-     * @return the difference between the two intervals, i.e. the loci that are only in one IntervalList but not both
-     */
-    public static IntervalList difference(final Collection<IntervalList> lists1, final Collection<IntervalList> lists2) {
-        return union(
-                subtract(lists1, lists2),
-                subtract(lists2, lists1));
-    }
-
-
-
-}
-/**
- * Comparator that orders intervals based on their sequence index, by coordinate
- * then by strand and finally by name.
- */
-class IntervalCoordinateComparator implements Comparator<Interval> {
-    private final SAMFileHeader header;
-
-    /** Constructs a comparator using the supplied sequence header. */
-    IntervalCoordinateComparator(final SAMFileHeader header) {
-        this.header = header;
-    }
-
-    public int compare(final Interval lhs, final Interval rhs) {
-        final int lhsIndex = this.header.getSequenceIndex(lhs.getSequence());
-        final int rhsIndex = this.header.getSequenceIndex(rhs.getSequence());
-        int retval = lhsIndex - rhsIndex;
-
-        if (retval == 0) retval = lhs.getStart() - rhs.getStart();
-        if (retval == 0) retval = lhs.getEnd()   - rhs.getEnd();
-        if (retval == 0) {
-            if (lhs.isPositiveStrand() && rhs.isNegativeStrand()) retval = -1;
-            else if (lhs.isNegativeStrand() && rhs.isPositiveStrand()) retval = 1;
-        }
-        if (retval == 0) {
-            if (lhs.getName() == null) {
-                if (rhs.getName() == null) return 0;
-                else return -1;
-            } else if (rhs.getName() == null) {
-                return 1;
-            }
-            else {
-                return lhs.getName().compareTo(rhs.getName());
-            }
-        }
-
-        return retval;
-    }
-}
\ No newline at end of file
diff --git a/src/java/net/sf/picard/util/IntervalListReferenceSequenceMask.java b/src/java/net/sf/picard/util/IntervalListReferenceSequenceMask.java
deleted file mode 100644
index d5d5610..0000000
--- a/src/java/net/sf/picard/util/IntervalListReferenceSequenceMask.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.util;
-
-import net.sf.samtools.SAMFileHeader;
-
-import java.util.BitSet;
-import java.util.List;
-
-/**
- * Serve up loci of interest based on an interval list.
- *
- * @author alecw at broadinstitute dot oh are gee
- */
-public class IntervalListReferenceSequenceMask implements ReferenceSequenceMask {
-
-    private final SAMFileHeader header;
-    // if memory usage becomes a problem... this could be changed to a SparseBitSet
-    // http://java.sun.com/developer/onlineTraining/collections/magercises/BitSet/index.html
-    private final BitSet currentBitSet = new BitSet();
-    private int currentSequenceIndex = -1;
-    private final PeekableIterator<Interval> intervalIterator;
-    private final int lastSequenceIndex;
-    private final int lastPosition;
-
-    public IntervalListReferenceSequenceMask(final IntervalList intervalList) {
-        this.header = intervalList.getHeader();
-        if (intervalList.getHeader().getSortOrder() != SAMFileHeader.SortOrder.coordinate) {
-            intervalList.sort();
-        }
-        final List<Interval> uniqueIntervals = intervalList.getUniqueIntervals();
-        if (uniqueIntervals.isEmpty()) {
-            lastSequenceIndex = -1;
-            lastPosition = 0;
-        } else {
-            final Interval lastInterval = uniqueIntervals.get(uniqueIntervals.size() - 1);
-            lastSequenceIndex = header.getSequenceIndex((lastInterval.getSequence()));
-            lastPosition = lastInterval.getEnd();
-        }
-        intervalIterator = new PeekableIterator<Interval>(uniqueIntervals.iterator());
-    }
-
-    /**
-     * It is required that sequenceIndex is >= any previous sequenceIndex passed to this class.
-     * @return true if the mask is set for the given sequence and position
-     */
-    public boolean get(final int sequenceIndex, final int position) {
-        ensureSequenceLoaded(sequenceIndex);
-        return currentBitSet.get(position);
-    }
-
-    /**
-     * It is required that sequenceIndex is >= any previous sequenceIndex passed to this class.
-     * @return the next pos on the given sequence >= position that is set, or -1 if there are no more set positions
-     */
-    public int nextPosition(final int sequenceIndex, final int position) {
-        ensureSequenceLoaded(sequenceIndex);
-		// nextSetBit returns the first set bit on or after the starting index, therefore position+1
-        return currentBitSet.nextSetBit(position+1);
-    }
-
-    private void ensureSequenceLoaded(final int sequenceIndex) {
-        if (sequenceIndex < this.currentSequenceIndex) {
-            throw new IllegalArgumentException("Cannot look at an earlier sequence.  Current: " +
-                    this.currentSequenceIndex + "; requested: " + sequenceIndex);
-        }
-        if (sequenceIndex > currentSequenceIndex) {
-            currentBitSet.clear();
-            while (intervalIterator.hasNext()) {
-                final Interval interval = intervalIterator.peek();
-                final int nextSequenceIndex = header.getSequenceIndex(interval.getSequence());
-                if (nextSequenceIndex < sequenceIndex) {
-                    intervalIterator.next();
-                } else if (nextSequenceIndex == sequenceIndex) {
-                    currentBitSet.set(interval.getStart(), interval.getEnd() + 1);
-                    intervalIterator.next();
-                } else {
-                    break;
-                }
-            }
-            currentSequenceIndex = sequenceIndex;
-        }
-    }
-
-    /**
-     * @return Largest sequence index for which there are set bits.
-     */
-    public int getMaxSequenceIndex() {
-        return lastSequenceIndex;
-    }
-
-    /**
-     * @return the largest position on the last sequence index
-     */
-    public int getMaxPosition() {
-        return lastPosition;
-    }
-
-    public SAMFileHeader getHeader() {
-        return header;
-    }
-}
diff --git a/src/java/net/sf/picard/util/IntervalListTools.java b/src/java/net/sf/picard/util/IntervalListTools.java
deleted file mode 100644
index 9fc75a3..0000000
--- a/src/java/net/sf/picard/util/IntervalListTools.java
+++ /dev/null
@@ -1,352 +0,0 @@
-package net.sf.picard.util;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.cmdline.CommandLineParser;
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.StandardOptionDefinitions;
-import net.sf.picard.cmdline.Usage;
-import net.sf.picard.io.IoUtil;
-import net.sf.samtools.SAMFileHeader;
-import net.sf.samtools.SAMProgramRecord;
-
-import java.io.File;
-import java.text.DecimalFormat;
-import java.util.*;
-
-/**
- * Little class to aid working with interval lists.
- *
- * @author Tim Fennell
- */
-public class IntervalListTools extends CommandLineProgram {
-    @Usage public final String USAGE = getStandardUsagePreamble() + " General tool for manipulating interval lists, " +
-            "including sorting, merging, padding, uniqueifying, and other set-theoretic operations. Default operation if given one or more inputs is to " +
-            "merge and sort them.  Other options are controlled by arguments.";
-
-    @Option(shortName=StandardOptionDefinitions.INPUT_SHORT_NAME,
-            doc="One or more interval lists. If multiple interval lists are provided the output is the" +
-                "result of merging the inputs.", minElements = 1)
-    public List<File> INPUT;
-
-    @Option(doc="The output interval list file to write (if SCATTER_COUNT is 1) or the directory into which " +
-            "to write the scattered interval sub-directories (if SCATTER_COUNT > 1)", shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME, optional = true)
-    public File OUTPUT;
-
-    @Option(doc="The amount to pad each end of the intervals by before other operations are undertaken. Negative numbers are allowed " +
-            "and indicate intervals should be shrunk. Resulting intervals < 0 bases long will be removed. Padding is applied to the interval lists <b> before </b> the ACTION is performed.", optional=true)
-    public int PADDING = 0;
-
-    @Option(doc="If true, merge overlapping and adjacent intervals to create a list of unique intervals. Implies SORT=true")
-    public boolean UNIQUE = false;
-
-    @Option(doc="If true, sort the resulting interval list by coordinate.")
-    public boolean SORT = true;
-
-    @Option(doc = "Action to take on inputs.")
-    public Action ACTION = Action.CONCAT;
-
-    @Option(shortName = "SI", doc = "Second set of intervals for SUBTRACT and DIFFERENCE operations.", optional = true)
-    public List<File> SECOND_INPUT;
-
-    @Option(doc="One or more lines of comment to add to the header of the output file.", optional = true)
-    public List<String> COMMENT = null;
-
-    @Option(doc="The number of files into which to scatter the resulting list by locus.")
-    public int SCATTER_COUNT = 1;
-
-    @Option(doc = "Produce the inverse list", optional = true)
-    public boolean INVERT = false;
-
-    private static final Log log = Log.getInstance(IntervalListTools.class);
-
-    public enum Action implements CommandLineParser.ClpEnum{
-
-        CONCAT("The concatenation of all the INPUTs, no sorting or merging of overlapping/abutting intervals implied. Will result in an unsorted list unless requested otherwise.") {
-            @Override
-            IntervalList act(final List<IntervalList> list, final List<IntervalList> unused) {
-                if(!unused.isEmpty()) throw new IllegalArgumentException(String.format("Second List found when action was %s. Ignoring second list.",this.name()));
-                return IntervalList.concatenate(list);
-            }
-        },
-        UNION ("Like CONCATENATE but with UNIQUE and SORT implied, the result being the set-wise union of all INPUTS.") {
-            @Override
-            IntervalList act(final List<IntervalList> list, final List<IntervalList> unused) {
-                if(!unused.isEmpty()) throw new IllegalArgumentException(String.format("Second List found when action was %s. Ignoring second list.",this.name()));
-                return IntervalList.union(list);
-            }
-        },
-        INTERSECT ("The sorted, uniqued set of all loci that are contained in all of the INPUTs.") {
-            @Override
-            IntervalList act(final List<IntervalList> list, final List<IntervalList> unused) {
-                if(!unused.isEmpty()) throw new IllegalArgumentException(String.format("Second List found when action was %s. Ignoring second list.",this.name()));
-                return IntervalList.intersection(list);
-            }
-        },
-       SUBTRACT ("Subtracts SECOND_INPUT from INPUT. The resulting loci are there in INPUT that are not in SECOND_INPUT") {
-            @Override
-            IntervalList act(final List<IntervalList> list1, final List<IntervalList> list2) {
-                return IntervalList.subtract(list1, list2);
-
-                }
-        },
-        SYMDIFF ("Find loci that are in INPUT or SECOND_INPUT but are not in both." ) {
-            @Override
-            IntervalList act(final List<IntervalList> list1, final List<IntervalList> list2) {
-                return IntervalList.difference(list1, list2);
-            }
-        };
-
-
-        String helpdoc;
-        Action(final String helpdoc){
-            this.helpdoc=helpdoc;
-        }
-
-        @Override
-        public String getHelpDoc() {
-            return helpdoc;
-        }
-        abstract IntervalList act(final List<IntervalList> list1, final List<IntervalList> list2);
-
-    }
-
-    // Stock main method
-    public static void main(final String[] args) {
-        new IntervalListTools().instanceMainWithExit(args);
-    }
-
-    @Override
-    protected int doWork() {
-        // Check inputs
-        for (final File f : INPUT) IoUtil.assertFileIsReadable(f);
-        for (final File f : SECOND_INPUT) IoUtil.assertFileIsReadable(f);
-
-        if (OUTPUT != null) {
-            if (SCATTER_COUNT == 1) {
-                IoUtil.assertFileIsWritable(OUTPUT);
-            }
-            else {
-                IoUtil.assertDirectoryIsWritable(OUTPUT);
-            }
-        }
-
-        // Read in the interval lists and apply any padding
-        final List<IntervalList> lists = new ArrayList<IntervalList>();
-        for (final File f : INPUT) {
-            final IntervalList list = IntervalList.fromFile(f);
-            if (PADDING != 0) {
-                final IntervalList out = new IntervalList(list.getHeader());
-                for (final Interval i : list) {
-                    final int start = i.getStart() - PADDING;
-                    final int end   = i.getEnd()   + PADDING;
-                    if (start <= end) {
-                        final Interval i2 = new Interval(i.getSequence(), start, end, i.isNegativeStrand(), i.getName());
-                        out.add(i2);
-                    }
-                }
-
-                lists.add(out);
-            }
-            else {
-                lists.add(list);
-            }
-        }
-
-        // same for the second list
-        final List<IntervalList> secondLists = new ArrayList<IntervalList>();
-        for (final File f : SECOND_INPUT) {
-            final IntervalList list = IntervalList.fromFile(f);
-            if (PADDING != 0) {
-                final IntervalList out = new IntervalList(list.getHeader());
-                for (final Interval i : list) {
-                    final int start = i.getStart() - PADDING;
-                    final int end   = i.getEnd()   + PADDING;
-                    if (start <= end) {
-                        final Interval i2 = new Interval(i.getSequence(), start, end, i.isNegativeStrand(), i.getName());
-                        out.add(i2);
-                    }
-                }
-
-                secondLists.add(out);
-            }
-            else {
-                secondLists.add(list);
-            }
-        }
-
-        if (UNIQUE && !SORT ) {
-            log.warn("UNIQUE=true requires sorting but SORT=false was specified.  Results will be sorted!");
-        }
-
-        final IntervalList result = ACTION.act(lists, secondLists);
-
-        if(INVERT){
-            SORT=false; // no need to sort, since return will be sorted by definition.
-            UNIQUE=false; //no need to unique since invert will already return a unique list.
-        }
-
-        final IntervalList possiblySortedResult = SORT ? result.sorted() : result;
-        final IntervalList possiblyInvertedResult = INVERT ? IntervalList.invert(possiblySortedResult) : possiblySortedResult;
-
-        //only get unique if this has been asked unless inverting (since the invert will return a unique list)
-        final List<Interval> finalIntervals = UNIQUE ? possiblyInvertedResult.uniqued().getIntervals() : possiblyInvertedResult.getIntervals();
-
-
-        // Decide on a PG ID and make a program group
-        final SAMFileHeader header = result.getHeader();
-        final Set<String> pgs = new HashSet<String>();
-        for (final SAMProgramRecord pg : header.getProgramRecords()) pgs.add(pg.getId());
-        for (int i = 1; i < Integer.MAX_VALUE; ++i) {
-            if (!pgs.contains(String.valueOf(i))) {
-                final SAMProgramRecord pg = new SAMProgramRecord(String.valueOf(i));
-                pg.setCommandLine(getCommandLine());
-                pg.setProgramName(getClass().getSimpleName());
-                header.addProgramRecord(pg);
-                break;
-            }
-        }
-
-        // Add any comments
-        if (COMMENT != null) {
-            for (final String comment : COMMENT) {
-                header.addComment(comment);
-            }
-        }
-
-        final IntervalList output = new IntervalList(header);
-        long total = 0;
-        for (final Interval i : finalIntervals) {
-            output.add(i);
-            total += i.length();
-        }
-
-        int intervals = 0;
-
-        if (OUTPUT != null) {
-            if (SCATTER_COUNT == 1) {
-                intervals = output.size();
-                output.write(OUTPUT);
-            }
-            else {
-                intervals = scatterIntervals(output);
-            }
-        }
-
-        log.info("Output " + intervals + " intervals totalling " + output.getUniqueBaseCount() + " unique bases.");
-
-        return 0;
-    }
-
-    @Override
-    protected String[] customCommandLineValidation() {
-        if (SCATTER_COUNT < 1) {
-            return new String[] {"SCATTER_COUNT must be greater than 0."};
-        }
-        return null;
-    }
-
-    /**
-     * Method to scatter an interval list by locus.
-     * @param list  The list of intervals to scatter
-     * @return the number of intervals across the scattered lists (which may differ from the input
-     *         as some may have been split)
-     */
-    private int scatterIntervals(final IntervalList list) {
-        // algorithm (to match the GATK):
-        // split = ()
-        // set size = 0
-        // pop the head H off locs.
-        // If size + size(H) < splitSize:
-        //      add H to split, continue
-        // If size + size(H) == splitSize:
-        //      done with split, put in splits, restart
-        // if size + size(H) > splitSize:
-        //      cut H into two pieces, first of which has splitSize - size bp
-        //      push both pieces onto locs, continue
-        // The last split is special -- when you have only one split left, it gets all of the remaining locs
-        // to deal with rounding issues
-        final IntervalList uniquedList=list.uniqued();
-        final long idealSplitLength = Math.max((long)Math.floor(uniquedList.getBaseCount() / (1.0*SCATTER_COUNT)), 1);
-        int splitLength = 0;
-        IntervalList split = new IntervalList(uniquedList.getHeader());
-        int index = 1;   // The index of the next split file to write
-        final Iterator<Interval> it = uniquedList.iterator();
-        int totalIntervals = 0;
-        final DecimalFormat format = new DecimalFormat("0000");
-
-        while (it.hasNext() && index < SCATTER_COUNT) {
-            final Interval interval = it.next();
-            int projectedSize = splitLength + interval.length();
-            if (projectedSize < idealSplitLength) {
-                split.add(interval);
-                totalIntervals++;
-                splitLength += interval.length();
-            }
-            else if (projectedSize == idealSplitLength) {
-                split.add(interval);
-                totalIntervals++;
-                split.write(createDirectoryAndGetScatterFile(format.format(index++)));
-                split = new IntervalList(uniquedList.getHeader());
-                splitLength = 0;
-            }
-            else {
-                int consumed = 0;
-                while (projectedSize > idealSplitLength && index < SCATTER_COUNT) {
-                    final int amountToConsume =(int)(idealSplitLength - splitLength);
-                    final Interval partial = new Interval(interval.getSequence(), interval.getStart()+consumed,
-                        interval.getStart()+consumed+amountToConsume-1, interval.isNegativeStrand(), interval.getName());
-                    split.add(partial);
-                    totalIntervals++;
-                    split.write(createDirectoryAndGetScatterFile(format.format(index++)));
-                    split = new IntervalList(uniquedList.getHeader());
-
-                    consumed += amountToConsume;
-                    splitLength = 0;
-                    projectedSize = interval.length() - consumed;
-                }
-
-                // Add the remainder, if any, to the next split
-                if (projectedSize > 0) {
-                    final Interval remainder = new Interval(interval.getSequence(), interval.getStart()+consumed,
-                            interval.getEnd(), interval.isNegativeStrand(), interval.getName());
-                    split.add(remainder);
-                    totalIntervals++;
-                    splitLength = remainder.length();
-                }
-            }
-        }
-        // Write everything left to the last split
-        while (it.hasNext()) {
-            split.add(it.next());
-            totalIntervals++;
-        }
-        split.write(createDirectoryAndGetScatterFile(format.format(index)));
-        return totalIntervals;
-
-
-    }
-
-    public static File getScatteredFileName(final File scatterDirectory, final int scatterTotal, final String formattedIndex) {
-        return new File(scatterDirectory.getAbsolutePath() + "/temp_" + formattedIndex + "_of_" +
-                scatterTotal + "/scattered.intervals");
-
-    }
-
-    private File createDirectoryAndGetScatterFile(final String formattedIndex) {
-        createDirectoryOrFail(OUTPUT);
-        final File result = getScatteredFileName(OUTPUT, SCATTER_COUNT, formattedIndex);
-        createDirectoryOrFail(result.getParentFile());
-        return result;
-    }
-
-    private void createDirectoryOrFail(final File directory) {
-        if (!directory.exists()) {
-            if (!directory.mkdir()) {
-                throw new PicardException("Unable to create directory: " + directory.getAbsolutePath());
-            }
-        }
-
-    }
-
-}
diff --git a/src/java/net/sf/picard/util/IntervalTree.java b/src/java/net/sf/picard/util/IntervalTree.java
deleted file mode 100644
index 77c89e9..0000000
--- a/src/java/net/sf/picard/util/IntervalTree.java
+++ /dev/null
@@ -1,1227 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.util;
-
-import java.util.ConcurrentModificationException;
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-
-/**
- * A Red-Black tree with intervals for keys.
- * Not thread-safe, and cannot be made so.
- *
- * 7/24/2008: This was copied from the tedUtils package.
- * IMPORTANT!!! It has been modified to use the Reseq way of
- * handling coordinates (end-inclusive).
- *
- * @author tsharpe
- */
-public class IntervalTree<V> implements Iterable<IntervalTree.Node<V>>
-{
-    /**
-     * Return the number of intervals in the tree.
-     * @return The number of intervals.
-     */
-    public int size()
-    {
-        return mRoot == null ? 0 : mRoot.getSize();
-    }
-
-    /**
-     * Remove all entries.
-     */
-    public void clear()
-    {
-        mRoot = null;
-    }
-
-    /**
-     * Put a new interval into the tree (or update the value associated with an existing interval).
-     * If the interval is novel, the special sentinel value is returned.
-     * @param start The interval's start.
-     * @param end The interval's end.
-     * @param value The associated value.
-     * @return The old value associated with that interval, or the sentinel.
-     */
-    @SuppressWarnings("null")
-    public V put( final int start, final int end, final V value )
-    {
-        if ( start > end )
-            throw new IllegalArgumentException("Start cannot exceed end.");
-
-        V result = mSentinel;
-
-        if ( mRoot == null )
-        {
-            mRoot = new Node<V>(start,end,value);
-        }
-        else
-        {
-            Node<V> parent = null;
-            Node<V> node = mRoot;
-            int cmpVal = 0;
-
-            while ( node != null )
-            {
-                parent = node; // last non-null node
-                cmpVal = node.compare(start,end);
-                if ( cmpVal == 0 )
-                {
-                    break;
-                }
-
-                node = cmpVal < 0 ? node.getLeft() : node.getRight();
-            }
-
-            if ( cmpVal == 0 )
-            {
-                result = parent.setValue(value);
-            }
-            else
-            {
-                if ( cmpVal < 0 )
-                {
-                    mRoot = parent.insertLeft(start,end,value,mRoot);
-                }
-                else
-                {
-                    mRoot = parent.insertRight(start,end,value,mRoot);
-                }
-            }
-        }
-
-        return result;
-    }
-
-    /**
-     * Remove an interval from the tree.  If the interval does not exist in the tree the
-     * special sentinel value is returned.
-     * @param start The interval's start.
-     * @param end The interval's end.
-     * @return The value associated with that interval, or the sentinel.
-     */
-    public V remove( final int start, final int end )
-    {
-        V result = mSentinel;
-        Node<V> node = mRoot;
-
-        while ( node != null )
-        {
-            final int cmpVal = node.compare(start,end);
-            if ( cmpVal == 0 )
-            {
-                result = node.getValue();
-                mRoot = node.remove(mRoot);
-                break;
-            }
-
-            node = cmpVal < 0 ? node.getLeft() : node.getRight();
-        }
-
-        return result;
-    }
-
-    /**
-     * Find an interval.
-     * @param start The interval's start.
-     * @param end The interval's end.
-     * @return The Node that represents that interval, or null.
-     */
-    public Node<V> find( final int start, final int end )
-    {
-        Node<V> node = mRoot;
-
-        while ( node != null )
-        {
-            final int cmpVal = node.compare(start,end);
-            if ( cmpVal == 0 )
-            {
-                break;
-            }
-
-            node = cmpVal < 0 ? node.getLeft() : node.getRight();
-        }
-
-        return node;
-    }
-
-    /**
-     * Find the nth interval in the tree.
-     * @param idx The rank of the interval sought (from 0 to size()-1).
-     * @return The Node that represents the nth interval.
-     */
-    public Node<V> findByIndex( final int idx )
-    {
-        return Node.findByRank(mRoot,idx+1);
-    }
-
-    /**
-     * Find the rank of the specified interval.  If the specified interval is not in the
-     * tree, then -1 is returned.
-     * @param start The interval's start.
-     * @param end The interval's end.
-     * @return The rank of that interval, or -1.
-     */
-    public int getIndex( final int start, final int end )
-    {
-        return Node.getRank(mRoot,start,end) - 1;
-    }
-
-    /**
-     * Find the least interval in the tree.
-     * @return The earliest interval, or null if the tree is empty.
-     */
-    public Node<V> min()
-    {
-        Node<V> result = null;
-        Node<V> node = mRoot;
-
-        while ( node != null )
-        {
-            result = node;
-            node = node.getLeft();
-        }
-
-        return result;
-    }
-
-    /**
-     * Find the earliest interval in the tree greater than or equal to the specified interval.
-     * @param start The interval's start.
-     * @param end The interval's end.
-     * @return The earliest >= interval, or null if there is none.
-     */
-    @SuppressWarnings("null")
-    public Node<V> min( final int start, final int end )
-    {
-        Node<V> result = null;
-        Node<V> node = mRoot;
-        int cmpVal = 0;
-
-        while ( node != null )
-        {
-            result = node;
-            cmpVal = node.compare(start,end);
-            if ( cmpVal == 0 )
-            {
-                break;
-            }
-
-            node = cmpVal < 0 ? node.getLeft() : node.getRight();
-        }
-
-        if ( cmpVal > 0 )
-        {
-            result = result.getNext();
-        }
-
-        return result;
-    }
-
-    /**
-     * Find the earliest interval in the tree that overlaps the specified interval.
-     * @param start The interval's start.
-     * @param end The interval's end.
-     * @return The earliest overlapping interval, or null if there is none.
-     */
-    public Node<V> minOverlapper( final int start, final int end )
-    {
-        Node<V> result = null;
-        Node<V> node = mRoot;
-
-        if ( node != null && node.getMaxEnd() >= start )
-        {
-            while ( true )
-            {
-                if ( node.getStart() <= end && start <= node.getEnd() )
-                { // this node overlaps.  there might be a lesser overlapper down the left sub-tree.
-                  // no need to consider the right sub-tree:  even if there's an overlapper, if won't be minimal
-                    result = node;
-                    node = node.getLeft();
-                    if ( node == null || node.getMaxEnd() < start )
-                        break; // no left sub-tree or all nodes end too early
-                }
-                else
-                { // no overlap.  if there might be a left sub-tree overlapper, consider the left sub-tree.
-                    final Node<V> left = node.getLeft();
-                    if ( left != null && left.getMaxEnd() >= start )
-                    {
-                        node = left;
-                    }
-                    else
-                    { // left sub-tree cannot contain an overlapper.  consider the right sub-tree.
-                        if ( node.getStart() > end )
-                            break; // everything in the right sub-tree is past the end of the query interval
-
-                        node = node.getRight();
-                        if ( node == null || node.getMaxEnd() < start )
-                            break; // no right sub-tree or all nodes end too early
-                    }
-                }
-            }
-        }
-
-        return result;
-    }
-
-    /**
-     * Find the greatest interval in the tree.
-     * @return The latest interval, or null if the tree is empty.
-     */
-    public Node<V> max()
-    {
-        Node<V> result = null;
-        Node<V> node = mRoot;
-
-        while ( node != null )
-        {
-            result = node;
-            node = node.getRight();
-        }
-
-        return result;
-    }
-
-    /**
-     * Find the latest interval in the tree less than or equal to the specified interval.
-     * @param start The interval's start.
-     * @param end The interval's end.
-     * @return The latest >= interval, or null if there is none.
-     */
-    @SuppressWarnings("null")
-    public Node<V> max( final int start, final int end )
-    {
-        Node<V> result = null;
-        Node<V> node = mRoot;
-        int cmpVal = 0;
-
-        while ( node != null )
-        {
-            result = node;
-            cmpVal = node.compare(start,end);
-            if ( cmpVal == 0 )
-            {
-                break;
-            }
-
-            node = cmpVal < 0 ? node.getLeft() : node.getRight();
-        }
-
-        if ( cmpVal < 0 )
-        {
-            result = result.getPrev();
-        }
-
-        return result;
-    }
-
-    /**
-     * Return an iterator over the entire tree.
-     * @return An iterator.
-     */
-    public Iterator<Node<V>> iterator()
-    {
-        return new FwdIterator(min());
-    }
-
-    /**
-     * Return an iterator over all intervals greater than or equal to the specified interval.
-     * @param start The interval's start.
-     * @param end The interval's end.
-     * @return An iterator.
-     */
-    public Iterator<Node<V>> iterator( final int start, final int end )
-    {
-        return new FwdIterator(min(start,end));
-    }
-
-    /**
-     * Return an iterator over all intervals overlapping the specified range.
-     * @param start The range start.
-     * @param end The range end.
-     * @return An iterator.
-     */
-    public Iterator<Node<V>> overlappers( final int start, final int end )
-    {
-        return new OverlapIterator(start,end);
-    }
-
-    /**
-     * Return an iterator over the entire tree that returns intervals in reverse order.
-     * @return An iterator.
-     */
-    public Iterator<Node<V>> reverseIterator()
-    {
-        return new RevIterator(max());
-    }
-
-    /**
-     * Return an iterator over all intervals less than or equal to the specified interval, in reverse order.
-     * @param start The interval's start.
-     * @param end The interval's end.
-     * @return An iterator.
-     */
-    public Iterator<Node<V>> reverseIterator( final int start, final int end )
-    {
-        return new RevIterator(max(start,end));
-    }
-
-    /**
-     * Get the special sentinel value that will be used to signal novelty when putting a new interval
-     * into the tree, or to signal "not found" when removing an interval.  This is null by default.
-     * @return The sentinel value.
-     */
-    public V getSentinel()
-    {
-        return mSentinel;
-    }
-
-    /**
-     * Set the special sentinel value that will be used to signal novelty when putting a new interval
-     * into the tree, or to signal "not found" when removing an interval.
-     * @param sentinel The new sentinel value.
-     * @return The old sentinel value.
-     */
-    public V setSentinel( final V sentinel )
-    {
-        final V result = mSentinel;
-        mSentinel = sentinel;
-        return result;
-    }
-
-    /**
-     * This method is only for debugging.
-     * It verifies whether the tree is internally consistent with respect to the mMaxEnd cached on each node.
-     * @throws IllegalStateException If an inconsistency is detected.
-     */
-    public void checkMaxEnds() {
-        if (mRoot != null) mRoot.checkMaxEnd();
-    }
-
-    /**
-     * This method draws a nested picture of the tree on System.out.
-     * Useful for debugging.
-     */
-    public void printTree() {
-        if (mRoot != null) mRoot.printNode();
-    }
-
-    void removeNode( final Node<V> node )
-    {
-        mRoot = node.remove(mRoot);
-    }
-
-    private Node<V> mRoot;
-    private V mSentinel;
-
-    public static class Node<V1>
-    {
-        // bit-wise definitions from which the other constants are composed
-        public static final int HAS_LESSER_PART = 1;
-        public static final int HAS_OVERLAPPING_PART = 2;
-        public static final int HAS_GREATER_PART = 4;
-        public static final int IS_ADJACENT_AND_EMPTY = 0;
-        public static final int IS_STRICTLY_LESS = HAS_LESSER_PART; // 1
-        public static final int IS_SUBSET = HAS_OVERLAPPING_PART; // 2
-        public static final int IS_LEFT_OVERHANGING_OVERLAPPER = HAS_LESSER_PART | HAS_OVERLAPPING_PART; // 3
-        public static final int IS_STRICTLY_GREATER = HAS_GREATER_PART; // 4
-        // there is no value that equals 5, since that would imply overhanging on left and right without overlapping
-        public static final int IS_RIGHT_OVERHANGING_OVERLAPPER = HAS_GREATER_PART | HAS_OVERLAPPING_PART; // 6
-        public static final int IS_SUPERSET = HAS_LESSER_PART | HAS_OVERLAPPING_PART | HAS_GREATER_PART; // 7
-
-        Node( final int start, final int end, final V1 value )
-        {
-            mStart = start;
-            mEnd = end;
-            mValue = value;
-            mSize = 1;
-            mMaxEnd = mEnd;
-            mIsBlack = true;
-        }
-
-        Node( final Node<V1> parent, final int start, final int end, final V1 value )
-        {
-            mParent = parent;
-            mStart = start;
-            mEnd = end;
-            mValue = value;
-            mMaxEnd = mEnd;
-            mSize = 1;
-        }
-
-        public int getStart()
-        {
-            return mStart;
-        }
-
-        public int getEnd()
-        {
-            return mEnd;
-        }
-
-        public int getLength()
-        {
-            return mEnd - mStart;
-        }
-
-        public int getRelationship( final Node<V1> interval )
-        {
-            int result = 0;
-            if ( mStart < interval.getStart() )
-                result = HAS_LESSER_PART;
-            if ( mEnd > interval.getEnd() )
-                result |= HAS_GREATER_PART;
-            if ( mStart < interval.getEnd() && interval.getStart() < mEnd )
-                result |= HAS_OVERLAPPING_PART;
-            return result;
-        }
-
-        public boolean isAdjacent( final Node<V1> interval )
-        {
-            return mStart == interval.getEnd() || mEnd == interval.getStart();
-        }
-
-        public V1 getValue()
-        {
-            return mValue;
-        }
-
-        public V1 setValue( final V1 value )
-        {
-            final V1 result = mValue;
-            mValue = value;
-            return result;
-        }
-
-        int getSize()
-        {
-            return mSize;
-        }
-
-        int getMaxEnd()
-        {
-            return mMaxEnd;
-        }
-
-        Node<V1> getLeft()
-        {
-            return mLeft;
-        }
-
-        Node<V1> insertLeft( final int start, final int end, final V1 value, final Node<V1> root )
-        {
-            mLeft = new Node<V1>(this,start,end,value);
-            return insertFixup(mLeft,root);
-        }
-
-        Node<V1> getRight()
-        {
-            return mRight;
-        }
-
-        Node<V1> insertRight( final int start, final int end, final V1 value, final Node<V1> root )
-        {
-            mRight = new Node<V1>(this,start,end,value);
-            return insertFixup(mRight,root);
-        }
-
-        Node<V1> getNext()
-        {
-            Node<V1> result;
-
-            if ( mRight != null )
-            {
-                result = mRight;
-                while ( result.mLeft != null )
-                {
-                    result = result.mLeft;
-                }
-            }
-            else
-            {
-                Node<V1> node = this;
-                result = mParent;
-                while ( result != null && node == result.mRight )
-                {
-                    node = result;
-                    result = result.mParent;
-                }
-            }
-
-            return result;
-        }
-
-        Node<V1> getPrev()
-        {
-            Node<V1> result;
-
-            if ( mLeft != null )
-            {
-                result = mLeft;
-                while ( result.mRight != null )
-                {
-                    result = result.mRight;
-                }
-            }
-            else
-            {
-                Node<V1> node = this;
-                result = mParent;
-                while ( result != null && node == result.mLeft )
-                {
-                    node = result;
-                    result = result.mParent;
-                }
-            }
-
-            return result;
-        }
-
-        boolean wasRemoved()
-        {
-            return mSize == 0;
-        }
-
-        Node<V1> remove( Node<V1> root )
-        {
-            if ( mSize == 0 )
-            {
-                throw new IllegalStateException("Entry was already removed.");
-            }
-
-            if ( mLeft == null )
-            {
-                if ( mRight == null )
-                { // no children
-                    if ( mParent == null )
-                    {
-                        root = null;
-                    }
-                    else if ( mParent.mLeft == this )
-                    {
-                        mParent.mLeft = null;
-                        fixup(mParent);
-
-                        if ( mIsBlack )
-                            root = removeFixup(mParent,null,root);
-                    }
-                    else
-                    {
-                        mParent.mRight = null;
-                        fixup(mParent);
-
-                        if ( mIsBlack )
-                            root = removeFixup(mParent,null,root);
-                    }
-                }
-                else
-                { // single child on right
-                    root = spliceOut(mRight,root);
-                }
-            }
-            else if ( mRight == null )
-            { // single child on left
-                root = spliceOut(mLeft,root);
-            }
-            else
-            { // two children
-                final Node<V1> next = getNext();
-                root = next.remove(root);
-
-                // put next into tree in same position as this, effectively removing this
-                if ( (next.mParent = mParent) == null )
-                    root = next;
-                else if ( mParent.mLeft == this )
-                    mParent.mLeft = next;
-                else
-                    mParent.mRight = next;
-
-                if ( (next.mLeft = mLeft) != null )
-                {
-                    mLeft.mParent = next;
-                }
-
-                if ( (next.mRight = mRight) != null )
-                {
-                    mRight.mParent = next;
-                }
-
-                next.mIsBlack = mIsBlack;
-                next.mSize = mSize;
-
-                // PIC-123 fix
-                fixup(next);
-            }
-
-            mSize = 0;
-            return root;
-        }
-
-        // backwards comparison!  compares start+end to this.
-        int compare( final int start, final int end )
-        {
-            int result = 0;
-
-            if ( start > mStart )
-                result = 1;
-            else if ( start < mStart )
-                result = -1;
-            else if ( end > mEnd )
-                result = 1;
-            else if ( end < mEnd )
-                result = -1;
-
-            return result;
-        }
-
-        @SuppressWarnings("null")
-        static <V1> Node<V1> getNextOverlapper( Node<V1> node, final int start, final int end )
-        {
-            do
-            {
-                Node<V1> nextNode = node.mRight;
-                if ( nextNode != null && nextNode.mMaxEnd >= start )
-                {
-                    node = nextNode;
-                    while ( (nextNode = node.mLeft) != null && nextNode.mMaxEnd >= start )
-                        node = nextNode;
-                }
-                else
-                {
-                    nextNode = node;
-                    while ( (node = nextNode.mParent) != null && node.mRight == nextNode )
-                        nextNode = node;
-                }
-
-                if ( node != null && node.mStart > end )
-                    node = null;
-            }
-            while ( node != null && !(node.mStart <= end && start <= node.mEnd) );
-
-            return node;
-        }
-
-        static <V1> Node<V1> findByRank( Node<V1> node, int rank )
-        {
-            while ( node != null )
-            {
-                final int nodeRank = node.getRank();
-                if ( rank == nodeRank )
-                    break;
-
-                if ( rank < nodeRank )
-                {
-                    node = node.mLeft;
-                }
-                else
-                {
-                    node = node.mRight;
-                    rank -= nodeRank;
-                }
-            }
-
-            return node;
-        }
-
-        static <V1> int getRank( Node<V1> node, final int start, final int end )
-        {
-            int rank = 0;
-
-            while ( node != null )
-            {
-                final int cmpVal = node.compare(start,end);
-                if ( cmpVal < 0 )
-                {
-                    node = node.mLeft;
-                }
-                else
-                {
-                    rank += node.getRank();
-                    if ( cmpVal == 0 )
-                        return rank; // EARLY RETURN!!!
-
-                    node = node.mRight;
-                }
-            }
-
-            return 0;
-        }
-
-        private int getRank()
-        {
-            int result = 1;
-            if ( mLeft != null )
-                result = mLeft.mSize + 1;
-            return result;
-        }
-
-        private Node<V1> spliceOut( final Node<V1> child, Node<V1> root )
-        {
-            if ( (child.mParent = mParent) == null )
-            {
-                root = child;
-                child.mIsBlack = true;
-            }
-            else
-            {
-                if ( mParent.mLeft == this )
-                    mParent.mLeft = child;
-                else
-                    mParent.mRight = child;
-                fixup(mParent);
-
-                if ( mIsBlack )
-                    root = removeFixup(mParent,child,root);
-            }
-
-            return root;
-        }
-
-        private Node<V1> rotateLeft( Node<V1> root )
-        {
-            final Node<V1> child = mRight;
-
-            final int childSize = child.mSize;
-            child.mSize = mSize;
-            mSize -= childSize;
-
-            if ( (mRight = child.mLeft) != null )
-            {
-                mRight.mParent = this;
-                mSize += mRight.mSize;
-            }
-
-            if ( (child.mParent = mParent) == null )
-                root = child;
-            else if ( this == mParent.mLeft )
-                mParent.mLeft = child;
-            else
-                mParent.mRight = child;
-
-            child.mLeft = this;
-            mParent = child;
-
-            setMaxEnd();
-            child.setMaxEnd();
-
-            return root;
-        }
-
-        private Node<V1> rotateRight( Node<V1> root )
-        {
-            final Node<V1> child = mLeft;
-
-            final int childSize = child.mSize;
-            child.mSize = mSize;
-            mSize -= childSize;
-
-            if ( (mLeft = child.mRight) != null )
-            {
-                mLeft.mParent = this;
-                mSize += mLeft.mSize;
-            }
-
-            if ( (child.mParent = mParent) == null )
-                root = child;
-            else if ( this == mParent.mLeft )
-                mParent.mLeft = child;
-            else
-                mParent.mRight = child;
-
-            child.mRight = this;
-            mParent = child;
-
-            setMaxEnd();
-            child.setMaxEnd();
-
-            return root;
-        }
-
-        private void setMaxEnd()
-        {
-            mMaxEnd = mEnd;
-            if ( mLeft != null )
-                mMaxEnd = Math.max(mMaxEnd,mLeft.mMaxEnd);
-            if ( mRight != null )
-                mMaxEnd = Math.max(mMaxEnd,mRight.mMaxEnd);
-        }
-
-        private static <V1> void fixup( Node<V1> node )
-        {
-            do
-            {
-                node.mSize = 1;
-                node.mMaxEnd = node.mEnd;
-                if ( node.mLeft != null )
-                {
-                    node.mSize += node.mLeft.mSize;
-                    node.mMaxEnd = Math.max(node.mMaxEnd,node.mLeft.mMaxEnd);
-                }
-                if ( node.mRight != null )
-                {
-                    node.mSize += node.mRight.mSize;
-                    node.mMaxEnd = Math.max(node.mMaxEnd,node.mRight.mMaxEnd);
-                }
-            }
-            while ( (node = node.mParent) != null );
-        }
-
-        private static <V1> Node<V1> insertFixup( Node<V1> daughter, Node<V1> root )
-        {
-            Node<V1> mom = daughter.mParent;
-            fixup(mom);
-
-            while( mom != null && !mom.mIsBlack )
-            {
-                final Node<V1> gramma = mom.mParent;
-                Node<V1> auntie = gramma.mLeft;
-                if ( auntie == mom )
-                {
-                    auntie = gramma.mRight;
-                    if ( auntie != null && !auntie.mIsBlack )
-                    {
-                        mom.mIsBlack = true;
-                        auntie.mIsBlack = true;
-                        gramma.mIsBlack = false;
-                        daughter = gramma;
-                    }
-                    else
-                    {
-                        if ( daughter == mom.mRight )
-                        {
-                            root = mom.rotateLeft(root);
-                            mom = daughter;
-                        }
-                        mom.mIsBlack = true;
-                        gramma.mIsBlack = false;
-                        root = gramma.rotateRight(root);
-                        break;
-                    }
-                }
-                else
-                {
-                    if ( auntie != null && !auntie.mIsBlack )
-                    {
-                        mom.mIsBlack = true;
-                        auntie.mIsBlack = true;
-                        gramma.mIsBlack = false;
-                        daughter = gramma;
-                    }
-                    else
-                    {
-                        if ( daughter == mom.mLeft )
-                        {
-                            root = mom.rotateRight(root);
-                            mom = daughter;
-                        }
-                        mom.mIsBlack = true;
-                        gramma.mIsBlack = false;
-                        root = gramma.rotateLeft(root);
-                        break;
-                    }
-                }
-                mom = daughter.mParent;
-            }
-            root.mIsBlack = true;
-            return root;
-        }
-
-        private static <V1> Node<V1> removeFixup( Node<V1> parent, Node<V1> node, Node<V1> root )
-        {
-            do
-            {
-                if ( node == parent.mLeft )
-                {
-                    Node<V1> sister = parent.mRight;
-                    if ( !sister.mIsBlack )
-                    {
-                        sister.mIsBlack = true;
-                        parent.mIsBlack = false;
-                        root = parent.rotateLeft(root);
-                        sister = parent.mRight;
-                    }
-                    if ( (sister.mLeft == null || sister.mLeft.mIsBlack) && (sister.mRight == null || sister.mRight.mIsBlack) )
-                    {
-                        sister.mIsBlack = false;
-                        node = parent;
-                    }
-                    else
-                    {
-                        if ( sister.mRight == null || sister.mRight.mIsBlack )
-                        {
-                            sister.mLeft.mIsBlack = true;
-                            sister.mIsBlack = false;
-                            root = sister.rotateRight(root);
-                            sister = parent.mRight;
-                        }
-                        sister.mIsBlack = parent.mIsBlack;
-                        parent.mIsBlack = true;
-                        sister.mRight.mIsBlack = true;
-                        root = parent.rotateLeft(root);
-                        node = root;
-                    }
-                }
-                else
-                {
-                    Node<V1> sister = parent.mLeft;
-                    if ( !sister.mIsBlack )
-                    {
-                        sister.mIsBlack = true;
-                        parent.mIsBlack = false;
-                        root = parent.rotateRight(root);
-                        sister = parent.mLeft;
-                    }
-                    if ( (sister.mLeft == null || sister.mLeft.mIsBlack) && (sister.mRight == null || sister.mRight.mIsBlack) )
-                    {
-                        sister.mIsBlack = false;
-                        node = parent;
-                    }
-                    else
-                    {
-                        if ( sister.mLeft == null || sister.mLeft.mIsBlack )
-                        {
-                            sister.mRight.mIsBlack = true;
-                            sister.mIsBlack = false;
-                            root = sister.rotateLeft(root);
-                            sister = parent.mLeft;
-                        }
-                        sister.mIsBlack = parent.mIsBlack;
-                        parent.mIsBlack = true;
-                        sister.mLeft.mIsBlack = true;
-                        root = parent.rotateRight(root);
-                        node = root;
-                    }
-                }
-                parent = node.mParent;
-            }
-            while ( parent != null && node.mIsBlack );
-
-            node.mIsBlack = true;
-            return root;
-        }
-
-        public void checkMaxEnd() {
-            if (mMaxEnd != calcMaxEnd()) {
-                throw new IllegalStateException("Max end mismatch " + mMaxEnd + " vs " + calcMaxEnd() + ": " + this);
-            }
-            if (mLeft != null) mLeft.checkMaxEnd();
-            if (mRight != null) mRight.checkMaxEnd();
-        }
-
-        private int calcMaxEnd() {
-            int end = mEnd;
-            if (mLeft != null) end = Math.max(end, mLeft.mMaxEnd);
-            if (mRight != null) end = Math.max(end, mRight.mMaxEnd);
-            return end;
-        }
-
-        public void printNode() {
-            this.printNodeInternal("", "root: ");
-        }
-
-        private void printNodeInternal(final String padding, final String tag) {
-            System.out.println(padding + tag + " " + this);
-            if (mLeft != null) mLeft.printNodeInternal(padding + "  ", "left: ");
-            if (mRight != null) mRight.printNodeInternal(padding + "  ", "right:");
-        }
-
-        public String toString() {
-            return "Node(" + mStart + "," + mEnd + "," + mValue + "," + mSize + "," + mMaxEnd + "," + mIsBlack + ")";
-        }
-
-        private Node<V1> mParent;
-        private Node<V1> mLeft;
-        private Node<V1> mRight;
-        private final int mStart;
-        private final int mEnd;
-        private V1 mValue;
-        private int mSize;
-        private int mMaxEnd;
-        private boolean mIsBlack;
-    }
-
-    public class FwdIterator
-        implements Iterator<Node<V>>
-    {
-        public FwdIterator( final Node<V> node )
-        {
-            mNext = node;
-        }
-
-        public boolean hasNext()
-        {
-            return mNext != null;
-        }
-
-        public Node<V> next()
-        {
-            if ( mNext == null )
-            {
-                throw new NoSuchElementException("No next element.");
-            }
-
-            if ( mNext.wasRemoved() )
-            {
-                mNext = min(mNext.getStart(),mNext.getEnd());
-                if ( mNext == null )
-                    throw new ConcurrentModificationException("Current element was removed, and there are no more elements.");
-            }
-            mLast = mNext;
-            mNext = mNext.getNext();
-            return mLast;
-        }
-
-        public void remove()
-        {
-            if ( mLast == null )
-            {
-                throw new IllegalStateException("No entry to remove.");
-            }
-
-            removeNode(mLast);
-            mLast = null;
-        }
-
-        private Node<V> mNext;
-        private Node<V> mLast;
-    }
-
-    public class RevIterator
-        implements Iterator<Node<V>>
-    {
-        public RevIterator( final Node<V> node )
-        {
-            mNext = node;
-        }
-
-        public boolean hasNext()
-        {
-            return mNext != null;
-        }
-
-        public Node<V> next()
-        {
-            if ( mNext == null )
-                throw new NoSuchElementException("No next element.");
-            if ( mNext.wasRemoved() )
-            {
-                mNext = max(mNext.getStart(),mNext.getEnd());
-                if ( mNext == null )
-                    throw new ConcurrentModificationException("Current element was removed, and there are no more elements.");
-            }
-            mLast = mNext;
-            mNext = mNext.getPrev();
-            return mLast;
-        }
-
-        public void remove()
-        {
-            if ( mLast == null )
-            {
-                throw new IllegalStateException("No entry to remove.");
-            }
-
-            removeNode(mLast);
-            mLast = null;
-        }
-
-        private Node<V> mNext;
-        private Node<V> mLast;
-    }
-
-    public class OverlapIterator
-        implements Iterator<Node<V>>
-    {
-        public OverlapIterator( final int start, final int end )
-        {
-            mNext = minOverlapper(start,end);
-            mStart = start;
-            mEnd = end;
-        }
-
-        public boolean hasNext()
-        {
-            return mNext != null;
-        }
-
-        public Node<V> next()
-        {
-            if ( mNext == null )
-            {
-                throw new NoSuchElementException("No next element.");
-            }
-
-            if ( mNext.wasRemoved() )
-            {
-                throw new ConcurrentModificationException("Current element was removed.");
-            }
-
-            mLast = mNext;
-            mNext = Node.getNextOverlapper(mNext,mStart,mEnd);
-            return mLast;
-        }
-
-        public void remove()
-        {
-            if ( mLast == null )
-            {
-                throw new IllegalStateException("No entry to remove.");
-            }
-
-            removeNode(mLast);
-            mLast = null;
-        }
-
-        private Node<V> mNext;
-        private Node<V> mLast;
-        private final int mStart;
-        private final int mEnd;
-    }
-
-    public static class ValuesIterator<V1>
-        implements Iterator<V1>
-    {
-        public ValuesIterator( final Iterator<Node<V1>> itr )
-        {
-            mItr = itr;
-        }
-
-        public boolean hasNext()
-        {
-            return mItr.hasNext();
-        }
-
-        public V1 next()
-        {
-            return mItr.next().getValue();
-        }
-
-        public void remove()
-        {
-            mItr.remove();
-        }
-
-        private final Iterator<Node<V1>> mItr;
-    }
-}
diff --git a/src/java/net/sf/picard/util/IntervalTreeMap.java b/src/java/net/sf/picard/util/IntervalTreeMap.java
deleted file mode 100644
index 2210874..0000000
--- a/src/java/net/sf/picard/util/IntervalTreeMap.java
+++ /dev/null
@@ -1,293 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.util;
-
-import java.util.*;
-
-/**
- * Utility class that implements an interval map.
- * This class functions as a java map but also supports efficient interval overlap queries.
- *
- * @author Bob Handsaker
- */
-public class IntervalTreeMap<T>
-    extends AbstractMap<Interval, T>
-{
-    private final Map<String, IntervalTree<T>> mSequenceMap = new HashMap<String, IntervalTree<T>>();
-    private final EntrySet mEntrySet = new EntrySet();
-
-    public IntervalTree<T> debugGetTree(final String sequence) {
-        return mSequenceMap.get(sequence);
-    }
-
-    public IntervalTreeMap() {
-    }
-
-    public IntervalTreeMap(final Map<? extends Interval, ? extends T> map) {
-        for (final Map.Entry<? extends Interval, ? extends T> entry : map.entrySet()) {
-            put(entry.getKey(), entry.getValue());
-        }
-    }
-
-    public void clear() {
-        mSequenceMap.clear();
-    }
-
-    public boolean containsKey(final Object object) {
-        if (!(object instanceof Interval)) {
-            return false;
-        }
-        return containsKey((Interval) object);
-    }
-
-    public boolean containsKey(final Interval key) {
-        final IntervalTree<T> tree = mSequenceMap.get(key.getSequence());
-        if (tree == null) {
-            return false;
-        }
-        return (tree.find(key.getStart(), key.getEnd()) != null);
-    }
-
-    public Set<Entry<Interval, T>> entrySet() {
-        return mEntrySet;
-    }
-
-    public boolean equals(final Object o) {
-        if (!(o instanceof IntervalTreeMap)) {
-            return false;
-        }
-        return mSequenceMap.equals(((IntervalTreeMap)o).mSequenceMap);
-    }
-
-    public int hashCode() {
-        return mSequenceMap.hashCode();
-    }
-
-    public T get(final Object object) {
-        if (!(object instanceof Interval)) {
-            return null;
-        }
-        return get((Interval) object);
-    }
-
-    public T get(final Interval key) {
-        final IntervalTree<T> tree = mSequenceMap.get(key.getSequence());
-        if (tree == null) {
-            return null;
-        }
-        final IntervalTree.Node<T> node = tree.find(key.getStart(), key.getEnd());
-        if (node == null) {
-            return null;
-        }
-        return node.getValue();
-    }
-
-    public boolean isEmpty() {
-        for (final IntervalTree<T> tree : mSequenceMap.values()) {
-            if (tree.size() > 0) {
-                return false;
-            }
-        }
-        return true;
-    }
-
-    public T put(final Interval key, final T value) {
-        IntervalTree<T> tree = mSequenceMap.get(key.getSequence());
-        if (tree == null) {
-            tree = new IntervalTree<T>();
-            mSequenceMap.put(key.getSequence(), tree);
-        }
-        return tree.put(key.getStart(), key.getEnd(), value);
-    }
-
-    public T remove(final Object object) {
-        if (!(object instanceof Interval)) {
-            return null;
-        }
-        return remove((Interval)object);
-    }
-
-    public T remove(final Interval key) {
-        final IntervalTree<T> tree = mSequenceMap.get(key.getSequence());
-        if (tree == null) {
-            return null;
-        }
-        return tree.remove(key.getStart(), key.getEnd());
-    }
-
-    public int size() {
-        // Note: We should think about caching the size to avoid having to recompute it.
-        int size = 0;
-        for (final IntervalTree<T> tree : mSequenceMap.values()) {
-            size += tree.size();
-        }
-        return size;
-    }
-
-    public Collection<T> getOverlapping(final Interval key) {
-        final List<T> result = new ArrayList<T>();
-        final IntervalTree<T> tree = mSequenceMap.get(key.getSequence());
-        if (tree != null) {
-            final Iterator<IntervalTree.Node<T>> iterator = tree.overlappers(key.getStart(), key.getEnd());
-            while (iterator.hasNext()) {
-                result.add(iterator.next().getValue());
-            }
-        }
-        return result;
-    }
-
-    public Collection<T> getContained(final Interval key) {
-        final List<T> result = new ArrayList<T>();
-        final IntervalTree<T> tree = mSequenceMap.get(key.getSequence());
-        if (tree != null) {
-            final Iterator<IntervalTree.Node<T>> iterator = tree.overlappers(key.getStart(), key.getEnd());
-            while (iterator.hasNext()) {
-                final IntervalTree.Node<T> node = iterator.next();
-                if (node.getStart() >= key.getStart() && node.getEnd() <= key.getEnd()) {
-                    result.add(node.getValue());
-                }
-            }
-        }
-        return result;
-    }
-
-    private class EntrySet
-        extends AbstractSet<Map.Entry<Interval,T>> {
-
-        public void clear() {
-           IntervalTreeMap.this.clear();
-        }
-
-        public boolean contains(final Map.Entry<Interval,T> entry) {
-            if (entry == null) {
-                return false;
-            }
-            return entry.getValue().equals(IntervalTreeMap.this.get(entry.getKey()));
-        }
-
-        public boolean isEmpty() {
-            return IntervalTreeMap.this.isEmpty();
-        }
-
-        public Iterator<Map.Entry<Interval,T>> iterator() {
-            return new EntryIterator();
-        }
-
-        @SuppressWarnings("unchecked")
-        public boolean remove(final Object object) {
-            // Note: Could not figure out how to eliminate the unchecked cast.
-            if (!(object instanceof Map.Entry)) {
-                return false;
-            }
-            return remove((Map.Entry<Interval,T>)object);
-        }
-
-        public boolean remove(final Map.Entry<Interval,T> entry) {
-            if (this.contains(entry)) {
-                IntervalTreeMap.this.remove(entry.getKey());
-                return true;
-            } else {
-                return false;
-            }
-        }
-
-        public int size() {
-            return IntervalTreeMap.this.size();
-        }
-    }
-
-    private class EntryIterator
-        implements Iterator<Map.Entry<Interval, T>> {
-
-        private String mSequence = null;
-        private Iterator<String> mSequenceIterator = null;
-        private Iterator<IntervalTree.Node<T>> mTreeIterator = null;
-
-        EntryIterator() {
-            mSequenceIterator = mSequenceMap.keySet().iterator();
-            advanceSequence();
-        }
-
-        public boolean hasNext() {
-            return (mTreeIterator != null && mTreeIterator.hasNext());
-        }
-
-        public Map.Entry<Interval,T> next() {
-            if (!hasNext()) {
-                throw new NoSuchElementException("Iterator exhausted");
-            }
-            final IntervalTree.Node<T> node = mTreeIterator.next();
-            final String sequence = mSequence;
-            if (!mTreeIterator.hasNext()) {
-                advanceSequence();
-            }
-            final Interval key = new Interval(sequence, node.getStart(), node.getEnd());
-            final T value = node.getValue();
-            return new MapEntry(key, value);
-        }
-
-        public void remove() {
-            if (mTreeIterator == null) {
-                throw new IllegalStateException("Iterator.next() has not been called");
-            }
-            mTreeIterator.remove();
-        }
-
-        private void advanceSequence() {
-            while (mSequenceIterator.hasNext()) {
-                mSequence = mSequenceIterator.next();
-                mTreeIterator = mSequenceMap.get(mSequence).iterator();
-                if (mTreeIterator.hasNext()) {
-                    break;
-                }
-            }
-        }
-    }
-
-    private class MapEntry
-        implements Map.Entry<Interval,T> {
-
-        private final Interval mKey;
-        private T mValue;
-
-        MapEntry(final Interval key, final T value) {
-            mKey = key;
-            mValue = value;
-        }
-
-        public Interval getKey() {
-            return mKey;
-        }
-
-        public T getValue() {
-            return mValue;
-        }
-
-        public T setValue(final T value) {
-            mValue = value;
-            return IntervalTreeMap.this.put(mKey, mValue);
-        }
-    }
-}
diff --git a/src/java/net/sf/picard/util/IntervalUtil.java b/src/java/net/sf/picard/util/IntervalUtil.java
deleted file mode 100644
index dd2b63c..0000000
--- a/src/java/net/sf/picard/util/IntervalUtil.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.util;
-
-import net.sf.picard.PicardException;
-import net.sf.samtools.SAMSequenceDictionary;
-import net.sf.samtools.SAMSequenceRecord;
-
-import java.util.Iterator;
-
-/**
- * @author alecw at broadinstitute.org
- */
-public class IntervalUtil {
-
-    /** Return true if the sequence/position lie in the provided interval. */
-    public static boolean contains(final Interval interval, final String sequenceName, final long position) {
-        return interval.getSequence().equals(sequenceName) && (position >= interval.getStart() && position <= interval.getEnd());
-    }
-
-    /** Return true if the sequence/position lie in the provided interval list. */
-    public static boolean contains(final IntervalList intervalList, final String sequenceName, final long position) {
-        for (final Interval interval : intervalList.getUniqueIntervals()) {
-           if (contains(interval, sequenceName, position))
-               return true;
-        }
-        return false;
-    }
-    
-    /**
-     * Throws RuntimeException if the given intervals are not locus ordered and non-overlapping
-     * @param intervals
-     * @param sequenceDictionary used to determine order of sequences
-     */
-    public static void assertOrderedNonOverlapping(final Iterator<Interval> intervals, final SAMSequenceDictionary sequenceDictionary) {
-        if (!intervals.hasNext()) {
-            return;
-        }
-        Interval prevInterval = intervals.next();
-        int prevSequenceIndex = sequenceDictionary.getSequenceIndex(prevInterval.getSequence());
-        while (intervals.hasNext()) {
-            final Interval interval = intervals.next();
-            if (prevInterval.intersects(interval)) {
-                throw new PicardException("Intervals should not overlap: " + prevInterval + "; " + interval);
-            }
-            final int thisSequenceIndex = sequenceDictionary.getSequenceIndex(interval.getSequence());
-            if (prevSequenceIndex > thisSequenceIndex ||
-                (prevSequenceIndex == thisSequenceIndex && prevInterval.compareTo(interval) >= 0)) {
-                throw new PicardException("Intervals not in order: " + prevInterval + "; " + interval);
-            }
-            prevInterval = interval;
-            prevSequenceIndex = thisSequenceIndex;
-        }
-    }
-}
diff --git a/src/java/net/sf/picard/util/IterableAdapter.java b/src/java/net/sf/picard/util/IterableAdapter.java
deleted file mode 100644
index aeb9a47..0000000
--- a/src/java/net/sf/picard/util/IterableAdapter.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package net.sf.picard.util;
-
-import java.util.ConcurrentModificationException;
-import java.util.Iterator;
-
-/**
- * Provides an adapter to wrap an Iterator with an Iterable, allowing it to be run through a foreach loop. Will only
- * allow iterator() to be called a single time - this is intended to be called inline.
- *
- * @author jgentry at broadinstitute.org
- */
-public class IterableAdapter<T> implements Iterable<T> {
-    private boolean isIteratorCalled = false;
-    private final Iterator<T> theIterator;
-
-    public IterableAdapter(final Iterator<T> theIterator) {
-        this.theIterator = theIterator;
-    }
-
-    @Override
-    public Iterator<T> iterator() {
-        if (isIteratorCalled) {
-            throw new ConcurrentModificationException("iterator() can only be called once!");
-        }
-
-        isIteratorCalled = true;
-        return theIterator;
-    }
-}
diff --git a/src/java/net/sf/picard/util/IterableOnceIterator.java b/src/java/net/sf/picard/util/IterableOnceIterator.java
deleted file mode 100644
index c4b651d..0000000
--- a/src/java/net/sf/picard/util/IterableOnceIterator.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package net.sf.picard.util;
-
-import java.io.Closeable;
-import java.io.IOException;
-import java.util.Iterator;
-
-/**
- * Abstract implementation of an iterator that also implements Iterable (to return itself)
- * so that it can be used if for() loops.  Only supports calling iterator() once since new
- * iterators are not manufactured but the same object returned.
- *
- * @author Tim Fennell
- */
-public abstract class IterableOnceIterator<T> implements Iterable<T>, Iterator<T>, Closeable {
-    private boolean iterated = false;
-
-    /**
-     * On the first call returns this object which is also an iterator.  On subsequent calls throws
-     * an exception since new iterators cannot be generated.
-     */
-    @Override
-    public Iterator<T> iterator() {
-        if (iterated) {
-            throw new IllegalStateException("May not call iterator() more than once on IterableOnceIterator.");
-        }
-        else {
-            iterated = true;
-            return this;
-        }
-    }
-
-    /** Operation not supported. */
-    @Override
-    public void remove() {
-        throw new UnsupportedOperationException("remove() not supported");
-    }
-
-    /** Does nothing, intended to be overridden when needed. */
-    @Override public void close() throws IOException {
-        // Default do nothing implementation
-    }
-}
diff --git a/src/java/net/sf/picard/util/ListMap.java b/src/java/net/sf/picard/util/ListMap.java
deleted file mode 100755
index 7d0d54e..0000000
--- a/src/java/net/sf/picard/util/ListMap.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.util;
-
-import java.util.List;
-import java.util.HashMap;
-import java.util.ArrayList;
-
-/**
- * A Map class that holds a list of entries under each key instead of a single entry, and
- * provides utility methods for adding an entry under a key.
- *
- * @author Tim Fennell
- */
-public class ListMap<K,V> extends HashMap<K, List<V>> {
-    /** Adds a single value to the list stored under a key. */
-    public void add(K key, V value) {
-        List<V> values = get(key);
-        if (values == null) {
-            values = new ArrayList<V>();
-            put(key, values);
-        }
-
-        values.add(value);
-    }
-}
diff --git a/src/java/net/sf/picard/util/Locus.java b/src/java/net/sf/picard/util/Locus.java
deleted file mode 100644
index 71766a6..0000000
--- a/src/java/net/sf/picard/util/Locus.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.util;
-
-/**
- * Location info about a locus.
- *
- * @author Doug Voet (dvoet at broadinstitute dot org)
- */
-public interface Locus {
-    int getSequenceIndex();
-
-    /** @return 1-based position */
-    int getPosition();
-}
\ No newline at end of file
diff --git a/src/java/net/sf/picard/util/LocusComparator.java b/src/java/net/sf/picard/util/LocusComparator.java
deleted file mode 100644
index e331a33..0000000
--- a/src/java/net/sf/picard/util/LocusComparator.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.util;
-
-import java.util.Comparator;
-
-/**
- * compares first by sequence index then by position
- *
- * @author Doug Voet (dvoet at broadinstitute dot org)
- */
-public class LocusComparator<T extends Locus> implements Comparator<T> {
-
-    public int compare(T thing1, T thing2) {
-        int refCompare = thing1.getSequenceIndex() - thing2.getSequenceIndex();
-        return refCompare == 0 ? thing1.getPosition() - thing2.getPosition() : refCompare;
-    }
-}
diff --git a/src/java/net/sf/picard/util/LocusImpl.java b/src/java/net/sf/picard/util/LocusImpl.java
deleted file mode 100644
index 80b2dde..0000000
--- a/src/java/net/sf/picard/util/LocusImpl.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.util;
-
-/**
- * Simple implementation of Locus interface for ease of passing as an arg and comparing with other Locus implementations.
- * @author alecw at broadinstitute.org
- */
-public class LocusImpl implements Locus {
-    private final int sequenceIndex;
-    private final int position;
-
-    public LocusImpl(int sequenceIndex, int position) {
-        this.position = position;
-        this.sequenceIndex = sequenceIndex;
-    }
-
-    public int getSequenceIndex() {
-        return sequenceIndex;
-    }
-
-    /**
-     * @return 1-based position
-     */
-    public int getPosition() {
-        return position;
-    }
-}
diff --git a/src/java/net/sf/picard/util/Log.java b/src/java/net/sf/picard/util/Log.java
deleted file mode 100644
index bfe30ca..0000000
--- a/src/java/net/sf/picard/util/Log.java
+++ /dev/null
@@ -1,211 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.util;
-
-import java.io.PrintStream;
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-import java.util.Arrays;
-import java.util.Date;
-
-/**
- * <p>A <em>wafer thin</em> wrapper around System.err that uses var-args to make it
- * much more efficient to call the logging methods in without having to
- * surround every call site with calls to Log.isXXXEnabled().  All the methods on this
- * class take a variable length list of arguments and, only if logging is enabled for
- * the level and channel being logged to, will those arguments be toString()'d and
- * appended together.</p>
- *
- * @author Tim Fennell
- */
-public final class Log {
-    /** Enumeration for setting log levels. */
-    public static enum LogLevel { ERROR, WARNING, INFO, DEBUG }
-
-    private static LogLevel globalLogLevel = LogLevel.DEBUG;
-
-    private final Class<?> clazz;
-    private final String className;
-    private final PrintStream out = System.err;
-
-    /**
-     * Private constructor
-     */
-    private Log(final Class<?> clazz) {
-        this.clazz = clazz;
-        this.className = clazz.getSimpleName();
-    }
-
-    /**
-     * Get a Log instance to perform logging within the Class specified.  Returns an instance
-     * of this class which wraps an instance of the commons logging Log class.
-     * @param clazz the Class which is going to be doing the logging
-     * @return a Log instance with which to log
-     */
-    public static Log getInstance(final Class<?> clazz) {
-        return new Log(clazz);
-    }
-
-    public static void setGlobalLogLevel(final LogLevel logLevel) {
-        globalLogLevel = logLevel;
-    }
-
-    /** Returns true if the specified log level is enabled otherwise false. */
-    public final boolean isEnabled(final LogLevel level) {
-        return level.ordinal() <= globalLogLevel.ordinal();
-    }
-
-    /**
-     * Private method that does the actual printing of messages to a PrintWriter. Outputs the log level,
-     * class name and parts followed by the stack trace if a throwable is provided.
-     *
-     * @param level the Log level being logged at
-     * @param throwable a Throwable if one is available otherwise null
-     * @param parts the parts of the message to be concatenated
-     */
-    private void emit(final LogLevel level, final Throwable throwable, final Object... parts) {
-        if (isEnabled(level)) {
-            synchronized (this) {
-                this.out.print(level.name());
-                this.out.print('\t');
-                this.out.print(getTimestamp());
-                this.out.print('\t');
-                this.out.print(this.className);
-                this.out.print('\t');
-
-                for (final Object part : parts) {
-                    if (part != null && part.getClass().isArray()) {
-                        final Class<?> component = part.getClass().getComponentType();
-                        if (component.equals(Boolean.TYPE))        this.out.print(Arrays.toString( (boolean[]) part));
-                        else if (component.equals(Byte.TYPE))      this.out.print(Arrays.toString( (byte[]) part));
-                        else if (component.equals(Character.TYPE)) this.out.print(Arrays.toString( (char[]) part));
-                        else if (component.equals(Double.TYPE))    this.out.print(Arrays.toString( (double[]) part));
-                        else if (component.equals(Float.TYPE))     this.out.print(Arrays.toString( (float[]) part));
-                        else if (component.equals(Integer.TYPE))   this.out.print(Arrays.toString( (int[]) part));
-                        else if (component.equals(Long.TYPE))      this.out.print(Arrays.toString( (long[]) part));
-                        else if (component.equals(Short.TYPE))     this.out.print(Arrays.toString( (short[]) part));
-                        else this.out.print(Arrays.toString( (Object[]) part));
-                    }
-                    else {
-                        this.out.print(part);
-                    }
-                }
-
-                this.out.println();
-
-                // Print out the exception if there is one
-                if (throwable != null) {
-                    throwable.printStackTrace(this.out);
-                }
-            }
-        }
-    }
-
-    /**
-     * Creates a date string for insertion into the log.  Given that logs are sometimes held statically
-     * and SimpleDateFormat is not thread safe, currently creates an instance each time :/
-     */
-    protected String getTimestamp() {
-        final DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        return fmt.format(new Date());
-    }
-
-    /**
-     * Logs a Throwable and optional message parts at level error.
-     * @param throwable an instance of Throwable that should be logged with stack trace
-     * @param messageParts zero or more objects which should be combined, by calling toString()
-     *        to form the log message.
-     */
-    public final void error(final Throwable throwable, final Object... messageParts) {
-        emit(LogLevel.ERROR, throwable, messageParts);
-    }
-
-    /**
-     * Logs a Throwable and optional message parts at level warn.
-     * @param throwable an instance of Throwable that should be logged with stack trace
-     * @param messageParts zero or more objects which should be combined, by calling toString()
-     *        to form the log message.
-     */
-    public final void warn(final Throwable throwable, final Object... messageParts) {
-        emit(LogLevel.WARNING, throwable, messageParts);
-    }
-
-    /**
-     * Logs a Throwable and optional message parts at level info.
-     * @param throwable an instance of Throwable that should be logged with stack trace
-     * @param messageParts zero or more objects which should be combined, by calling toString()
-     *        to form the log message.
-     */
-    public final void info(final Throwable throwable, final Object... messageParts) {
-        emit(LogLevel.INFO, throwable, messageParts);
-    }
-
-    /**
-     * Logs a Throwable and optional message parts at level debug.
-     * @param throwable an instance of Throwable that should be logged with stack trace
-     * @param messageParts zero or more objects which should be combined, by calling toString()
-     *        to form the log message.
-     */
-    public final void debug(final Throwable throwable, final Object... messageParts) {
-        emit(LogLevel.DEBUG, throwable, messageParts);
-    }
-
-    // Similar methods, but without Throwables, follow
-
-    /**
-     * Logs one or more message parts at level error.
-     * @param messageParts one or more objects which should be combined, by calling toString()
-     *        to form the log message.
-     */
-    public final void error(final Object... messageParts) {
-        emit(LogLevel.ERROR, null, messageParts);
-    }
-
-    /**
-     * Logs one or more message parts at level warn.
-     * @param messageParts one or more objects which should be combined, by calling toString()
-     *        to form the log message.
-     */
-    public final void warn(final Object... messageParts) {
-        emit(LogLevel.WARNING, null, messageParts);
-    }
-
-    /**
-     * Logs one or more message parts at level info.
-     * @param messageParts one or more objects which should be combined, by calling toString()
-     *        to form the log message.
-     */
-    public final void info(final Object... messageParts) {
-        emit(LogLevel.INFO, null, messageParts);
-    }
-
-    /**
-     * Logs one or more message parts at level debug.
-     * @param messageParts one or more objects which should be combined, by calling toString()
-     *        to form the log message.
-     */
-    public final void debug(final Object... messageParts) {
-        emit(LogLevel.DEBUG, null, messageParts);
-    }
-}
diff --git a/src/java/net/sf/picard/util/MathUtil.java b/src/java/net/sf/picard/util/MathUtil.java
deleted file mode 100644
index 73f1011..0000000
--- a/src/java/net/sf/picard/util/MathUtil.java
+++ /dev/null
@@ -1,277 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.util;
-
-import java.math.BigDecimal;
-import java.util.Arrays;
-
-import static java.lang.Math.pow;
-
-/**
- * General math utilities
- *
- * @author Tim Fennell
- */
-public class MathUtil {
-    /** The double value closest to 1 while still being less than 1. */
-    public static final double MAX_PROB_BELOW_ONE = 0.9999999999999999d;
-
-    /** Calculated the mean of an array of doubles. */
-    public static double mean(final double[] in, final int start, final int stop) {
-        double total = 0;
-        for (int i = start; i < stop; ++i) {
-            total += in[i];
-        }
-
-        return total / (stop - start);
-    }
-
-    /** Calculated the standard deviation of an array of doubles. */
-    public static double stddev(final double[] in, final int start, final int length) {
-        return stddev(in, start, length, mean(in, start, length));
-    }
-
-    /** Calculated the standard deviation of an array of doubles. */
-    public static double stddev(final double[] in, final int start, final int stop, final double mean) {
-        double total = 0;
-        for (int i = start; i < stop; ++i) {
-            total += (in[i] * in[i]);
-        }
-
-        return Math.sqrt((total / (stop - start)) - (mean * mean));
-    }
-
-    public static int compare(final int v1, final int v2) {
-        return (v1 < v2 ? -1 : (v1 == v2 ? 0 : 1));
-    }
-
-    /** Calculate the median of an array of doubles. Assumes that the input is sorted */
-    public static double median(final double... in) {
-        if (in.length == 0) {
-            throw new IllegalArgumentException("Attempting to find the median of an empty array");
-        }
-
-        final double[] data = Arrays.copyOf(in, in.length);
-        Arrays.sort(data);
-        final int middle = data.length / 2;
-        return data.length % 2 == 1 ? data[middle] : (data[middle - 1] + data[middle]) / 2.0;
-    }
-
-    /**
-     * Obtains percentage of two Longs
-     * @param numerator   dividend
-     * @param denominator divisor
-     * @return numerator/(double)denominator if both are non-null and denominator != 0, else returns null.
-     */
-    public static Double percentageOrNull(final Long numerator, final Long denominator) {
-        if (numerator != null && denominator != null && denominator != 0) {
-            return numerator.doubleValue() / denominator.doubleValue();
-        } else {
-            return null;
-        }
-    }
-
-    /** 
-     * Round off the value to the specified precision. 
-     */
-    public static double round(final double num, final int precision) {
-        BigDecimal bd = new BigDecimal(num);
-        bd = bd.setScale(precision, BigDecimal.ROUND_HALF_UP);
-        return bd.doubleValue();
-    }
-
-    /** Returns the largest value stored in the array. */
-    public static double max(final double[] nums) {
-        return nums[indexOfMax(nums)];
-    }
-
-    /**
-     * Returns the index of the largest element in the array.  If there are multiple equal maxima then
-     * the earliest one in the array is returned.
-     */
-    public static int indexOfMax(final double[] nums) {
-        double max = nums[0];
-        int index  = 0;
-        for (int i = 1; i < nums.length; ++i) {
-            if (nums[i] > max) {
-                max = nums[i];
-                index = i;
-            }
-        }
-
-        return index;
-    }
-
-    /** Returns the smallest value stored in the array. */
-    public static double min(final double[] nums) {
-        double min = nums[0];
-        for (int i = 1; i < nums.length; ++i) {
-            if (nums[i] < min) min = nums[i];
-        }
-
-        return min;
-    }
-
-    /** Mimic's R's seq() function to produce a sequence of equally spaced numbers. */
-    public static double[] seq(final double from, final double to, final double by) {
-        if (from < to && by <= 0) return new double[0];
-        if (from > to && by >= 0) return new double[0];
-        final int values = 1 + (int) Math.floor((to - from) / by);
-        final double[] results = new double[values];
-
-        BigDecimal value = new BigDecimal(from);
-        BigDecimal increment = new BigDecimal(by);
-
-        for (int i=0; i<values; ++i) {
-            results[i] = value.doubleValue();
-            value = value.add(increment);
-        }
-
-        return results;
-    }
-
-    /** "Promotes" an int[] into a double array with the same values (or as close as precision allows). */
-    public static double[] promote(final int[] is) {
-        final double[] ds = new double[is.length];
-        for (int i = 0; i < is.length; ++i) ds[i] = is[i];
-        return ds;
-    }
-
-    /**
-     * Takes a complete set of mutually exclusive log likelihoods and converts them to probabilities
-     * that sum to 1 with as much fidelity as possible.  Limits probabilities to be in the space:
-     * 0.9999999999999999 >= p >= (1-0.9999999999999999)/(likelihoods.length-1)
-     */
-    public static double[] logLikelihoodsToProbs(final double[] likelihoods) {
-        // Note: bumping all the LLs so that the biggest is 300 ensures that we have the
-        // widest range possible when unlogging them before one of them underflows. 10^300 is
-        // near the maximum before you hit positive infinity.
-
-        final double maxLikelihood = max(likelihoods);
-        final double bump = 300 - maxLikelihood;
-
-        final double[] tmp = new double[likelihoods.length];
-        double total = 0;
-        for (int i = 0; i < likelihoods.length; ++i) {
-            tmp[i] = pow(10, likelihoods[i] + bump);
-            total += tmp[i];
-        }
-
-        final double maxP = MAX_PROB_BELOW_ONE;
-        final double minP = (1 - MAX_PROB_BELOW_ONE) / (tmp.length - 1);
-
-        for (int i = 0; i < likelihoods.length; ++i) {
-            tmp[i] /= total;
-            if (tmp[i] > maxP) tmp[i] = maxP;
-            else if (tmp[i] < minP) tmp[i] = minP;
-        }
-
-        return tmp;
-    }
-
-    /** Calculates the product of two arrays of the same length. */
-    public static double[] multiply(final double[] lhs, final double[] rhs) {
-        if (lhs.length != rhs.length) throw new IllegalArgumentException("Arrays must be of same length.");
-
-        final int len = lhs.length;
-        final double[] result = new double[len];
-        for (int i = 0; i < len; ++i) result[i] = lhs[i] * rhs[i];
-        return result;
-    }
-
-    /** Returns the sum of the elements in the array. */
-    public static double sum(final double[] arr) {
-        double result = 0;
-        for (final double next : arr) result += next;
-        return result;
-    }
-
-    /** Returns the sum of the elements in the array starting with start and ending before stop. */
-    public static long sum(final long[] arr, final int start, final int stop) {
-        long result = 0;
-        for (int i=start; i<stop; ++i) {
-            result += arr[i];
-        }
-        return result;
-    }
-
-    public static final LogMath LOG_2_MATH = new LogMath(2);
-    public static final LogMath NATURAL_LOG_MATH = new LogMath(Math.exp(1)) {
-        @Override
-        public double getLogValue(final double nonLogValue) {
-            return Math.log(nonLogValue);
-        }
-    };
-
-    public static final LogMath LOG_10_MATH = new LogMath(10) {
-        @Override
-        public double getLogValue(final double nonLogValue) {
-            return Math.log10(nonLogValue);
-        }
-    };
-    
-    /** 
-     * A collection of common math operations that work with log values. To use it, pass values from log space, the operation will be
-     * computed in non-log space, and a value in log space will be returned.
-     */
-    public static class LogMath {
-        private final double base;
-
-        private LogMath(final double base) {
-            this.base = base;
-        }
-
-        /** Returns the decimal representation of the provided log values. */
-        public double getNonLogValue(final double logValue) {
-            return Math.pow(base, logValue);
-        }
-
-        /** Returns the log-representation of the provided decimal value. */
-        public double getLogValue(final double nonLogValue) {
-            return Math.log(nonLogValue) / Math.log(base);
-        }
-
-        /** Computes the mean of the provided log values. */
-        public double mean(final double... logValues) {
-            return sum(logValues) - getLogValue(logValues.length);
-        }
-        
-        /** Computes the sum of the provided log values. */
-        public double sum(final double... logValues) {
-            // Avoid overflow via scaling.
-            final double scalingFactor = max(logValues);
-            double simpleAdditionResult = 0;
-            for (final double v : logValues) {
-                simpleAdditionResult += getNonLogValue(v - scalingFactor);
-            }
-            return getLogValue(simpleAdditionResult) + scalingFactor;
-        }
- 
-        /** Computes the sum of the provided log values. */
-        public double product(final double... logValues) {
-            return MathUtil.sum(logValues);
-        }
-    }
-}
diff --git a/src/java/net/sf/picard/util/MergingIterator.java b/src/java/net/sf/picard/util/MergingIterator.java
deleted file mode 100644
index 25de224..0000000
--- a/src/java/net/sf/picard/util/MergingIterator.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2012 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.util;
-
-import net.sf.samtools.util.CloseableIterator;
-
-import java.util.Collection;
-import java.util.Comparator;
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-import java.util.PriorityQueue;
-
-/**
- * An iterator over Iterators that return Ts. Calling next() returns the next T ordered according
- * to Comparator provided at construction time. Importantly, the elements in the input Iterators
- * must already be sorted according to the provided Comparator.
- */
-public class MergingIterator<T> implements CloseableIterator<T> {
-
-	/*
-	 * An Iterator whose natural ordering is by the T that will be returned by the next call to
-	 * next().
-	 */
-	private class ComparableIterator extends PeekableIterator<T> implements Comparable<ComparableIterator> {
-
-		public ComparableIterator(final Iterator<T> iterator) {
-			super(iterator);
-		}
-
-		@Override
-		public int compareTo(final ComparableIterator that) {
-			if (comparator.getClass() != comparator.getClass()) {
-				throw new IllegalStateException("Can't compare two ComparableIterators that have different orderings.");
-			}
-
-			return comparator.compare(this.peek(), that.peek());
-		}
-	}
-
-	/*
-	 * The general flow is to pull the "top" (according to the ComparableIterator's compareTo())
-	 * iterator off on calls to this.next(), get iterator.next() and then re-add the iterator to
-	 * the queue. Readding reorders the queue so the next "top" iterator is ready.
-	 */
-	private final PriorityQueue<ComparableIterator> queue;
-
-	private final Comparator<T> comparator;
-
-	// This is the last T returned by the call to next(). It's used to make sure that the comparators
-	// always return correctly ordered Ts.
-	private T lastReturned;
-
-	/**
-	 * Creates a MergingIterator over the given Collection of iterators whose elements will be
-	 * returned in the order defined by the given Comparator.
-	 */
-	public MergingIterator(final Comparator<T> comparator, final Collection<CloseableIterator<T>> iterators) {
-		if (iterators.isEmpty()) throw new IllegalArgumentException("One or more CloseableIterators must be provided.");
-
-		this.comparator = comparator;
-
-		this.queue = new PriorityQueue<ComparableIterator>();
-		for (final CloseableIterator<T> iterator : iterators) {
-			this.addIfNotEmpty(new ComparableIterator(iterator));
-		}
-
-		// If there are no iterators to read from after adding them all to the prioqueue,
-		// should we throw? it's prob'ly an error.
-	}
-
-	/**
-	 * @see java.util.Iterator<T>.hasNext
-	 */
-	@Override
-	public boolean hasNext() {
-		return ! this.queue.isEmpty();
-	}
-
-	/**
-	 * @see java.util.Iterator<T>.next
-	 */
-	@Override
-	public T next() {
-		if ( ! this.hasNext()) throw new NoSuchElementException();
-
-		final ComparableIterator recordIterator = this.queue.poll();
-		// Assumes the iterator is closed & removed from the queue before recordIterator.hasNext() == false
-		final T next = recordIterator.next();
-		// I don't like having to test for null here -- it's really only null before the first call
-		// to next() -- but I don't see any other way
-		if (this.lastReturned != null && this.comparator.compare(lastReturned, next) > 0) {
-			throw new IllegalStateException(
-					"The elements of the input Iterators are not sorted according to the comparator " +
-							this.comparator.getClass().getName());
-		}
-
-		addIfNotEmpty(recordIterator);
-		this.lastReturned = next;
-		return next;
-	}
-
-	/**
-	 * Unsupported.
-	 */
-	@Override
-	public void remove() {
-		throw new UnsupportedOperationException();
-	}
-
-	/**
-	 * Closes every CloseableIterator in this MergingIterator. After calling, calls to
-	 * hasNext() will always return false.
-	 */
-	@Override
-	public void close() {
-		for (final ComparableIterator iterator : this.queue) {
-			iterator.close();
-			this.queue.remove(iterator);
-		}
-	}
-
-	private void addIfNotEmpty(final ComparableIterator iterator) {
-		if (iterator.hasNext()) queue.offer(iterator);
-		else iterator.close();
-	}
-}
diff --git a/src/java/net/sf/picard/util/MetricsDoclet.java b/src/java/net/sf/picard/util/MetricsDoclet.java
deleted file mode 100644
index 9a2333b..0000000
--- a/src/java/net/sf/picard/util/MetricsDoclet.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.util;
-
-import com.sun.javadoc.*;
-
-import net.sf.picard.metrics.MetricBase;
-
-import java.util.TreeMap;
-import java.util.SortedMap;
-import java.io.PrintStream;
-import java.io.File;
-import java.io.FileNotFoundException;
-
-/**
- * Doclet for use with JavaDoc that will find all classes extending MetricBase and
- * output information about the metrics definitions that go along with the classes.
- *
- * Takes a single parameter (-f file) to tell it where to output the resulting
- * documentation file in HTML format.
- *
- * @author Tim Fennell
- */
-public class MetricsDoclet {
-    /**
-     * Entry point called by the javadoc command line tool. Loops over all the
-     * classes identifying metrics classes and then produces some basic information
-     * about each in a single HTML file.
-     *
-     * @param root the root of the javadoc object hierarchy
-     * @return true if completed successfully, false otherwise
-     */
-    public static boolean start(final RootDoc root) {
-        // Build a set of metrics classes sorted by name
-        final SortedMap<String,ClassDoc> metricsClasses = new TreeMap<String,ClassDoc>();
-        for (final ClassDoc doc : root.classes()) {
-            if (isMetricsClass(doc)) {
-                System.out.println("Processing " + doc.qualifiedTypeName());
-                metricsClasses.put(doc.typeName(), doc);
-            }
-        }
-
-        // Get a print stream to write to
-        final PrintStream out = getOutput(root);
-        if (out == null) return false;
-
-        // Write the headings
-        out.println("<head>");
-        out.println("  <title>Picard Metrics Definitions</title>");
-        out.println("  <style>");
-        out.println("    body { font-family: Arial; background-color: white; font-size: 10pt; }");
-        out.println("    h2 { color: red; }");
-        out.println("    .class_description { font-style: italic; }");
-        out.println("    .metric_column_def { padding-bottom: 0px; margin-bottom: 8px; }");
-        out.println("    .metric_column_def span { font-weight: bold; color: #222222; font-style: italic; }");
-        out.println("  </style>");
-        out.println("</head>");
-        out.println("<h1>Picard Metrics Definitions</h1>");
-
-        // Write out the TOC
-        out.println("<h2>Table Of Contents</h2>");
-        out.println("<ol>");
-        for (final ClassDoc doc : metricsClasses.values()) {
-            out.println("<li><a href=\"#" + doc.name() + "\">" + doc.name() + "</a>: " +
-                        firstSentence(doc) + "</li>");
-        }
-        out.println("</ol>");
-
-        // Now print out each class
-        for (final ClassDoc doc : metricsClasses.values()) {
-            out.println("<a name=\"" + doc.name() + "\"");
-            out.println("<h2>" + doc.name() + "</h2>");
-            out.println("<p class=\"class_description\">" + doc.commentText() + "</p>");
-            out.println("<h3>Column Definitions</h3>");
-
-            for (final FieldDoc field : doc.fields()) {
-                if (field.isPublic() && !field.isStatic()) {
-                    out.append("<div class=\"metric_column_def\"><span>" + field.name() + ": </span>");
-                    out.append(field.commentText());
-                    out.println("</div>");
-                }
-            }
-        }
-
-        out.close();
-        return true;
-    }
-
-    /**
-     * Checks to see if the class extends MetricBase using only the JavaDoc
-     * metadata provided about the class.
-     *
-     * @param doc the ClassDoc representing the class to be tested
-     * @return true if the class is a metrics class, false otherwise
-     */
-    protected static boolean isMetricsClass(ClassDoc doc) {
-        final String metricBaseFqn = MetricBase.class.getName();
-        if (!doc.isClass()) return false;
-        if (doc.qualifiedTypeName().contains("personal")) return false;
-
-        do {
-            doc = doc.superclass();
-            if (doc != null && metricBaseFqn.equals(doc.qualifiedTypeName())) return true;
-        }
-        while (doc != null);
-
-        return false;
-    }
-
-    /**
-     * Gets the file output parameter from the RootDoc and then opens an
-     * PrintStream to write to the file.
-     */
-    protected static PrintStream getOutput(final RootDoc root) {
-        for (final String[] arg : root.options()) {
-            if (arg[0].equals("-f") && arg.length == 2) {
-                try {
-                    return new PrintStream(new File(arg[1]));
-                }
-                catch (FileNotFoundException fnfe) {
-                    root.printError("Could not open destination file: " + arg[1]);
-                    fnfe.printStackTrace();
-                    return null;
-                }
-            }
-        }
-
-        root.printError("Destination file parameter -f not supplied.");
-        return null;
-    }
-
-    /**
-     * Required method by the javadoc caller that returns the expected number of elements
-     * for doclet specific command line arguments.
-     */
-    public static int optionLength(final String option) {
-        if(option.equals("-f")) {
-	        return 2;
-        }
-        return 0;
-    }
-
-    /**
-     * Takes a Doc object and uses the firstSentenceTags() to recreate the first sentence
-     * text.
-     */
-    protected static String firstSentence(final Doc doc) {
-        final Tag[] tags = doc.firstSentenceTags();
-        final StringBuilder builder = new StringBuilder(128);
-        for (final Tag tag : tags) {
-            builder.append(tag.text());
-        }
-
-        return builder.toString();
-    }
-
-}
diff --git a/src/java/net/sf/picard/util/OverlapDetector.java b/src/java/net/sf/picard/util/OverlapDetector.java
deleted file mode 100644
index ffd3416..0000000
--- a/src/java/net/sf/picard/util/OverlapDetector.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.util;
-
-import java.util.*;
-
-/**
- * Utility class to efficiently do in memory overlap detection between a large
- * set of mapping like objects, and one or more candidate mappings.
- */
-public class OverlapDetector<T> {
-    private Map<Object, IntervalTree<Set<T>>> cache = new HashMap<Object, IntervalTree<Set<T>>>();
-    private final int lhsBuffer;
-    private final int rhsBuffer;
-
-    /**
-     * Constructs an overlap detector.
-     * @param lhsBuffer the amount by which to "trim" coordinates of mappings on the left
-     *                  hand side when calculating overlaps
-     * @param rhsBuffer the amount by which to "trim" coordinates of mappings on the right
-     *                  hand side when calculating overlaps
-     */
-    public OverlapDetector(int lhsBuffer, int rhsBuffer) {
-        this.lhsBuffer = lhsBuffer;
-        this.rhsBuffer = rhsBuffer;
-    }
-
-    /** Adds a mapping to the set of mappings against which to match candidates. */
-    public void addLhs(T object, Interval interval) {
-        Object seqId = interval.getSequence();
-
-        IntervalTree<Set<T>> tree = this.cache.get(seqId);
-        if (tree == null) {
-            tree = new IntervalTree<Set<T>>();
-            this.cache.put(seqId, tree);
-        }
-
-        int start = interval.getStart() + this.lhsBuffer;
-        int end   = interval.getEnd()   - this.lhsBuffer;
-
-        Set<T> objects = new HashSet<T>();
-        objects.add(object);
-        if (start <= end)  // Don't put in sequences that have no overlappable bases
-        {
-            Set<T> alreadyThere = tree.put(start, end, objects);
-            if (alreadyThere != null)
-            {
-                alreadyThere.add(object);
-                tree.put(start, end, alreadyThere);
-            }
-        }
-    }
-
-    /** Adds all items to the overlap detector. */
-    public void addAll(List<T> objects, List<Interval> intervals) {
-        if (objects.size() != intervals.size()) {
-            throw new IllegalArgumentException("Objects and intervals must be the same size.");
-        }
-
-        for (int i=0; i<objects.size(); ++i) {
-            addLhs(objects.get(i), intervals.get(i));
-        }
-    }
-
-    /** Gets all the objects that could be returned by the overlap detector. */
-    public Collection<T> getAll() {
-        Collection<T> all = new HashSet<T>();
-        for (IntervalTree<Set<T>> tree : this.cache.values()) {
-            for (IntervalTree.Node<Set<T>> node : tree) {
-                all.addAll(node.getValue());
-            }
-        }
-
-        return all;
-    }
-
-    /** Gets the collection of objects that overlap the provided mapping. */
-    public Collection<T> getOverlaps(Interval rhs)  {
-        Collection<T> matches = new ArrayList<T>();
-
-        Object seqId = rhs.getSequence();
-        IntervalTree<Set<T>> tree = this.cache.get(seqId);
-        int start = rhs.getStart() + this.rhsBuffer;
-        int end = rhs.getEnd() - this.rhsBuffer;
-
-        if (tree != null && start <= end)
-        {
-            Iterator<IntervalTree.Node<Set<T>>> it = tree.overlappers(start, end);
-            while (it.hasNext())
-            {
-                IntervalTree.Node<Set<T>> node = it.next();
-                matches.addAll(node.getValue());
-            }
-        }
-
-        return matches;
-    }
-}
diff --git a/src/java/net/sf/picard/util/PeekableIterator.java b/src/java/net/sf/picard/util/PeekableIterator.java
deleted file mode 100644
index 50bd0d8..0000000
--- a/src/java/net/sf/picard/util/PeekableIterator.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.util;
-
-import net.sf.samtools.util.CloseableIterator;
-import net.sf.samtools.util.CloserUtil;
-
-import java.util.Iterator;
-
-/**
- * Generic Closable Iterator that allows you to peek at the next value before calling next
- */
-public class PeekableIterator<Object> implements CloseableIterator<Object> {
-    private Iterator<Object> iterator;
-    private Object nextObject;
-
-    /** Constructs a new iterator that wraps the supplied iterator. */
-    public PeekableIterator(Iterator<Object> iterator) {
-        this.iterator = iterator;
-        advance();
-    }
-
-    /** Closes the underlying iterator. */
-    public void close() {
-        CloserUtil.close(iterator);
-    }
-
-    /** True if there are more items, in which case both next() and peek() will return a value. */
-    public boolean hasNext() {
-        return this.nextObject != null;
-    }
-
-    /** Returns the next object and advances the iterator. */
-    public Object next() {
-        Object retval = this.nextObject;
-        advance();
-        return retval;
-    }
-
-    /**
-     * Returns the next object but does not advance the iterator. Subsequent calls to peek()
-     * and next() will return the same object.
-     */
-    public Object peek(){
-        return this.nextObject;
-    }
-
-    private void advance(){
-        if (this.iterator.hasNext()) {
-            this.nextObject = iterator.next();
-        }
-        else {
-            this.nextObject = null;
-        }
-    }
-
-    /** Unsupported Operation. */
-    public void remove() {
-        throw new UnsupportedOperationException("Not supported: remove");
-    }
-}
diff --git a/src/java/net/sf/picard/util/ProcessExecutor.java b/src/java/net/sf/picard/util/ProcessExecutor.java
deleted file mode 100644
index 369353c..0000000
--- a/src/java/net/sf/picard/util/ProcessExecutor.java
+++ /dev/null
@@ -1,235 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.util;
-
-import net.sf.picard.PicardException;
-import net.sf.samtools.util.StringUtil;
-
-import java.io.*;
-import java.util.concurrent.*;
-
-/**
- * Utility class that will execute sub processes via Runtime.getRuntime().exec(...) and read
- * off the output from stderr and stdout of the sub process. This implementation uses a different
- * thread to read each stream: the current thread for stdout and another, internal thread for 
- * stderr. This utility is able to handle concurrent executions, spawning as many threads as
- * are required to handle the concurrent load.
- *
- * @author Doug Voet (dvoet at broadinstitute dot org)
- */
-public class ProcessExecutor {
-    private static final Log log = Log.getInstance(ProcessExecutor.class);
-    private static final ExecutorService executorService = Executors.newCachedThreadPool(new ThreadFactory() {
-        @Override
-        public Thread newThread(final Runnable r) {
-            return new Thread(r, "ProcessExecutor Thread");
-        }
-    });
-    
-    /**
-     * Executes the command via Runtime.getRuntime().exec() then writes stderr to log.error
-     * and stdout to log.info and blocks until the command is complete.
-     * 
-     * @see Runtime#exec(String)
-     * 
-     * @param command command string
-     * @return return code of command
-     */
-    public static int execute(final String command) {
-        try {
-            final Process process = Runtime.getRuntime().exec(command);
-            return readStreamsAndWaitFor(process);
-        } catch (Throwable t) {
-            throw new PicardException("Unexpected exception executing [" + net.sf.samtools.util.StringUtil.join(" ", command) + "]", t);
-        }
-    }
-
-    /**
-     * Executes the command via Runtime.getRuntime().exec() then writes stderr to log.error
-     * and stdout to log.info and blocks until the command is complete.
-     * 
-     * @see Runtime#exec(String[])
-     * 
-     * @param commandParts command string
-     * @return return code of command
-     */
-    public static int execute(final String[] commandParts) {
-        return execute(commandParts, null);
-    }
-
-    /**
-     * Executes the command via Runtime.getRuntime().exec(), writes <code>outputStreamString</code>
-     * to the process output stream if it is not null, then writes stderr to log.error
-     * and stdout to log.info and blocks until the command is complete.
-     *
-     * @see Runtime#exec(String[])
-     *
-     * @param commandParts command string
-     * @return return code of command
-     */
-    public static int execute(final String[] commandParts, String outputStreamString) {
-        try {
-            final Process process = Runtime.getRuntime().exec(commandParts);
-            if (outputStreamString != null) {
-                BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(process.getOutputStream()));
-                writer.write(outputStreamString);
-                writer.newLine();
-                writer.close();
-            }
-            return readStreamsAndWaitFor(process);
-        } catch (Throwable t) {
-            throw new PicardException("Unexpected exception executing [" + net.sf.samtools.util.StringUtil.join(" ", commandParts) + "]", t);
-        }
-    }
-
-    public static String executeAndReturnResult(final String command) {
-        try {
-            final Process process = Runtime.getRuntime().exec(command);
-            final StringBuilderProcessOutputReader err = new StringBuilderProcessOutputReader(process.getErrorStream());
-            final Future<?> stderrReader = executorService.submit(err);
-            final StringBuilderProcessOutputReader stdout = new StringBuilderProcessOutputReader(process.getInputStream());
-            stdout.run();
-            // wait for stderr reader to be done
-            stderrReader.get();
-            final int result = process.waitFor();
-            return result == 0 ? stdout.getOutput() : err.getOutput();
-        } catch (Throwable t) {
-            throw new PicardException("Unexpected exception executing [" + command + "]", t);
-        }
-
-    }
-
-    public static class ExitStatusAndOutput {
-        public final int exitStatus;
-        public final String stdout;
-        /** May be null if interleaved */
-        public final String stderr;
-
-        public ExitStatusAndOutput(int exitStatus, String stdout, String stderr) {
-            this.exitStatus = exitStatus;
-            this.stdout = stdout;
-            this.stderr = stderr;
-        }
-    }
-
-    /**
-     * Execute the command and capture stdout and stderr.
-     * @return Exit status of command, and both stderr and stdout interleaved into stdout attribute.
-     */
-    public static ExitStatusAndOutput executeAndReturnInterleavedOutput(final String command) {
-        try {
-            final Process process = Runtime.getRuntime().exec(command);
-            return interleaveProcessOutput(process);
-
-        } catch (Throwable t) {
-            throw new PicardException("Unexpected exception executing [" + command + "]", t);
-        }
-    }
-
-    /**
-     * Execute the command and capture stdout and stderr.
-     * @return Exit status of command, and both stderr and stdout interleaved into stdout attribute.
-     */
-    public static ExitStatusAndOutput executeAndReturnInterleavedOutput(final String[] commandArray) {
-        try {
-            final Process process = Runtime.getRuntime().exec(commandArray);
-            return interleaveProcessOutput(process);
-
-        } catch (Throwable t) {
-            throw new PicardException("Unexpected exception executing [" + StringUtil.join(" ", commandArray) + "]", t);
-        }
-    }
-
-    private static ExitStatusAndOutput interleaveProcessOutput(final Process process) throws InterruptedException, IOException {
-        final BufferedReader stdoutReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
-        final BufferedReader stderrReader = new BufferedReader(new InputStreamReader(process.getErrorStream()));
-        final StringBuilder sb = new StringBuilder();
-
-        String stdoutLine = null;
-        String stderrLine = null;
-        while ((stderrLine = stderrReader.readLine()) != null ||
-                (stdoutLine = stdoutReader.readLine()) != null) {
-            if (stderrLine!= null) sb.append(stderrLine).append('\n');
-            if (stdoutLine!= null) sb.append(stdoutLine).append('\n');
-            stderrLine = null;
-            stdoutLine = null;
-        }
-        return new ExitStatusAndOutput(process.waitFor(), sb.toString(), null);
-
-    }
-
-    private static int readStreamsAndWaitFor(final Process process)
-            throws InterruptedException, ExecutionException {
-        final Future<?> stderrReader = executorService.submit(new LogErrorProcessOutputReader(process.getErrorStream()));
-        new LogInfoProcessOutputReader(process.getInputStream()).run();
-        // wait for stderr reader to be done
-        stderrReader.get();
-        return process.waitFor();
-    }
-
-
-    /**
-     * Runnable that reads off the given stream and logs it somewhere.
-     */
-    private static abstract class ProcessOutputReader implements Runnable {
-        private final BufferedReader reader;
-        public ProcessOutputReader(final InputStream stream) {
-            reader = new BufferedReader(new InputStreamReader(stream));
-        }
-
-        @Override
-        public void run() {
-            try {
-                String line;
-                while ((line = reader.readLine()) != null) {
-                    write(line);
-                }
-            } catch (IOException e) {
-                throw new PicardException("Unexpected exception reading from process stream", e);
-            }
-        }
-        
-        protected abstract void write(String message);
-    }
-
-
-    private static class LogErrorProcessOutputReader extends ProcessOutputReader {
-        public LogErrorProcessOutputReader(final InputStream stream) { super(stream); }
-        @Override protected void write(final String message) { log.error(message); }
-    }
-
-    private static class LogInfoProcessOutputReader extends ProcessOutputReader {
-        public LogInfoProcessOutputReader(final InputStream stream) { super(stream); }
-        @Override protected void write(final String message) { log.info(message); }
-    }
-
-    private static class StringBuilderProcessOutputReader extends ProcessOutputReader {
-        private final StringBuilder sb = new StringBuilder();
-        public StringBuilderProcessOutputReader(final InputStream stream) { super(stream); }
-        @Override protected void write(final String message) { sb.append(message).append("\n"); }
-        public String getOutput() { return sb.toString(); }
-    }
-
-}
diff --git a/src/java/net/sf/picard/util/ProgressLogger.java b/src/java/net/sf/picard/util/ProgressLogger.java
deleted file mode 100644
index f532076..0000000
--- a/src/java/net/sf/picard/util/ProgressLogger.java
+++ /dev/null
@@ -1,136 +0,0 @@
-package net.sf.picard.util;
-
-import net.sf.samtools.SAMRecord;
-import net.sf.samtools.util.ProgressLoggerInterface;
-
-import java.text.DecimalFormat;
-import java.text.NumberFormat;
-
-/**
- * Little progress logging class to facilitate consistent output of useful information when progressing
- * through a stream of SAM records.
- *
- * @author Tim Fennell
- */
-public class ProgressLogger implements ProgressLoggerInterface {
-    private final Log log;
-    private final int n;
-    private final String verb;
-    private final String noun;
-    private final long startTime = System.currentTimeMillis();
-    
-    private final NumberFormat fmt = new DecimalFormat("#,###");
-    private final NumberFormat timeFmt = new DecimalFormat("00");
-    
-    private long processed = 0;
-
-	// Set to -1 until the first record is added
-    private long lastStartTime = -1;
-
-    /**
-     * Construct a progress logger.
-     * @param log the Log object to write outputs to
-     * @param n the frequency with which to output (i.e. every N records)
-     * @param verb the verb to log, e.g. "Processed, Read, Written".
-     * @param noun the noun to use when logging, e.g. "Records, Variants, Loci"
-     */
-    public ProgressLogger(final Log log, final int n, final String verb, final String noun) {
-        this.log = log;
-        this.n = n;
-        this.verb = verb;
-        this.noun = noun;
-    }
-
-    /**
-     * Construct a progress logger.
-     * @param log the Log object to write outputs to
-     * @param n the frequency with which to output (i.e. every N records)
-     * @param verb the verb to log, e.g. "Processed, Read, Written".
-     */
-    public ProgressLogger(final Log log, final int n, final String verb) {
-        this(log, n, verb, "records");
-    }
-
-    /**
-     * Construct a progress logger with the desired log and frequency and the verb "Processed".
-     * @param log the Log object to write outputs to
-     * @param n the frequency with which to output (i.e. every N records)
-     */
-    public ProgressLogger(final Log log, final int n) { this(log, n, "Processed"); }
-
-    /**
-     * Construct a progress logger with the desired log, the verb "Processed" and a period of 1m records.
-     * @param log the Log object to write outputs to
-     */
-    public ProgressLogger(final Log log) { this(log, 1000000); }
-
-    public synchronized boolean record(final String chrom, final int pos) {
-	    if (this.lastStartTime == -1) this.lastStartTime = System.currentTimeMillis();
-	    if (++this.processed % this.n == 0) {
-            final long now = System.currentTimeMillis();
-            final long lastPeriodSeconds = (now - this.lastStartTime) / 1000;
-            this.lastStartTime = now;
-
-            final long seconds = (System.currentTimeMillis() - startTime) / 1000;
-            final String elapsed   = formatElapseTime(seconds);
-            final String period    = pad(fmt.format(lastPeriodSeconds), 4);
-            final String processed = pad(fmt.format(this.processed), 13);
-
-            final String readInfo;
-            if (chrom == null) readInfo = "*/*";
-            else readInfo = chrom + ":" + fmt.format(pos);
-
-            log.info(this.verb, " ", processed, " " + noun + ".  Elapsed time: ", elapsed, "s.  Time for last ", fmt.format(this.n),
-                     ": ", period, "s.  Last read position: ", readInfo);
-            return true;
-        }
-        else {
-            return false;
-        }
-    }
-
-    /**
-     * Records that a given record has been processed and triggers logging if necessary.
-     * @return boolean true if logging was triggered, false otherwise
-     */
-    public synchronized boolean record(final SAMRecord rec) {
-        if (rec.getReferenceIndex() == SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX) {
-            return record(null, 0);
-        }
-        else {
-            return record(rec.getReferenceName(), rec.getAlignmentStart());
-        }
-    }
-    
-    /** Records multiple SAMRecords and triggers logging if necessary. */
-    public boolean record(final SAMRecord... recs) {
-        boolean triggered = false;
-        for (final SAMRecord rec : recs) triggered = record(rec) || triggered;
-        return triggered;
-    }
-    
-    /** Returns the count of records processed. */
-    public long getCount() { return this.processed; }
-
-    /** Returns the number of seconds since progress tracking began. */
-    public long getElapsedSeconds() { return (System.currentTimeMillis() - this.startTime) / 1000; }
-    
-    /** Left pads a string until it is at least the given length. */
-    private String pad (String in, final int length) {
-        while (in.length() < length) {
-            in = " " + in;
-        }
-        
-        return in;
-    }
-    
-    /** Formats a number of seconds into hours:minutes:seconds. */
-    private String formatElapseTime(final long seconds) {
-        final long s = seconds % 60;
-        final long allMinutes = seconds / 60;
-        final long m = allMinutes % 60;
-        final long h = allMinutes / 60;
-
-        return timeFmt.format(h) + ":" + timeFmt.format(m) + ":" + timeFmt.format(s);
-    }
-}
diff --git a/src/java/net/sf/picard/util/QualityEncodingDetector.java b/src/java/net/sf/picard/util/QualityEncodingDetector.java
deleted file mode 100644
index 808929b..0000000
--- a/src/java/net/sf/picard/util/QualityEncodingDetector.java
+++ /dev/null
@@ -1,359 +0,0 @@
-package net.sf.picard.util;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.fastq.FastqReader;
-import net.sf.picard.fastq.FastqRecord;
-import net.sf.samtools.SAMFileReader;
-import net.sf.samtools.SAMRecord;
-import net.sf.samtools.SAMRecordIterator;
-
-import java.util.*;
-
-import static java.util.Arrays.asList;
-
-/**
- * Utility for determining the type of quality encoding/format (see FastqQualityFormat) used in a SAM/BAM or Fastq.
- * <p/>
- * To use this class, invoke the detect() method with a SAMFileReader or FastqReader, as appropriate.  The consumer is
- * responsible for closing readers.
- *
- * @author mccowan at broadinstitute.org
- */
-public class QualityEncodingDetector {
-
-    private QualityRecordAggregator qualityAggregator = new QualityRecordAggregator();
-
-    /**
-     * The maximum number of records over which the detector will iterate before making a determination, by default.
-     */
-    public static final long DEFAULT_MAX_RECORDS_TO_ITERATE = 10000;
-    private static final Log log = Log.getInstance(QualityEncodingDetector.class);
-
-    public enum FileContext {FASTQ, SAM}
-
-    static class Range {
-        final int low, high;
-
-        Range(final int low, final int high) {
-            this.low = low;
-            this.high = high;
-        }
-
-        boolean contains(final int value) {
-            return value <= high && value >= low;
-        }
-    }
-
-    /**
-     * Collection of data about the different quality formats and how they are interpreted.
-     */
-    enum QualityScheme {
-        Phred(
-                new Range(0, 93),           // Raw value range
-                new Range(33, 126),         // ASCII value range
-                asList(new Range(33, 58)),  // Ranges into which we expect at least one ASCII value to fall
-                FastqQualityFormat.Standard // Associated quality format
-        ),
-        Solexa(
-                new Range(-5, 62),
-                new Range(59, 126),
-                new ArrayList<Range>(),
-                FastqQualityFormat.Solexa
-        ),
-        Illumina(
-                new Range(0, 62),
-                new Range(64, 126),
-                new ArrayList<Range>(),
-                FastqQualityFormat.Illumina
-        );
-        final Range rawRange, asciiRange;
-        /**
-         * Ranges into which we expect at least one value to fall if this formatting is being used.  For example, for
-         * Standard encoding, we expect to at least one ASCII value between 33 and 58 (0 and 25); otherwise, it's
-         * probably not Standard-encoded.
-         */
-        final List<Range> expectedAsciiRanges;
-        final FastqQualityFormat qualityFormat;
-
-        QualityScheme(final Range rawRange, final Range asciiRange, final List<Range> expectedAsciiRanges, final FastqQualityFormat qualityFormat) {
-            this.rawRange = rawRange;
-            this.asciiRange = asciiRange;
-            this.expectedAsciiRanges = expectedAsciiRanges;
-            this.qualityFormat = qualityFormat;
-        }
-    }
-
-    /**
-     * Collecting reads and their quality scores for later analysis.  Uses ASCII values since those are the inherently
-     * "raw-est", read unmodified from the file.
-     */
-    private static class QualityRecordAggregator {
-        private Set<Integer> observedAsciiQualities = new HashSet<Integer>();
-
-        public Set<Integer> getObservedAsciiQualities() {
-            return Collections.unmodifiableSet(observedAsciiQualities);
-        }
-
-        /**
-         * Adds the FastqRecord's quality scores.
-         */
-        public void add(final FastqRecord fastqRecord) {
-            addAsciiQuality(fastqRecord.getBaseQualityString().getBytes());
-        }
-
-        /**
-         * Adds the SAMRecord's quality scores.
-         * <p/>
-         * Does not assume Phred quality encoding (for obvious reasons); getBaseQualityString() is used to read the
-         * unmodified ASCII score.  To elaborate, SAMFileReader, which is generating these SAMRecords, builds the
-         * SAMRecord by subtracting a value from each quality score and storing that transformed value internally.
-         * Since we desire original scores here (whatever was in the file to begin with), we effectively undo this
-         * transformation by asking SAMRecord to convert the quality back into the ASCII that was read in the file.
-         */
-        public void add(final SAMRecord samRecord) {
-            addAsciiQuality(samRecord.getBaseQualityString().getBytes());
-        }
-
-        private void addAsciiQuality(final byte... asciiQualities) {
-            for (final byte asciiQuality : asciiQualities) {
-                observedAsciiQualities.add((int) asciiQuality);
-            }
-        }
-    }
-
-    /**
-     * Adds the provided reader's records to the detector.
-     * @return The number of records read
-     */
-    public long add(final long maxRecords, final FastqReader... readers) {
-        final Iterator<FastqRecord> iterator = generateInterleavedFastqIterator(readers);
-        long recordCount = 0;
-        while (iterator.hasNext() && recordCount++ != maxRecords) {
-            this.add(iterator.next());
-        }
-        log.debug(String.format("Read %s records from %s.", recordCount, Arrays.toString(readers)));
-        return recordCount;
-    }
-
-    /**
-     * Adds the provided reader's records to the detector.
-     * @return The number of records read
-     */
-    public long add(final long maxRecords, final SAMFileReader reader) {
-        final SAMRecordIterator iterator = reader.iterator();
-        long recordCount = 0;
-        try {
-            while (iterator.hasNext() && recordCount++ != maxRecords) {
-                this.add(iterator.next());
-            }
-
-            return recordCount;
-        } finally {
-            iterator.close();
-        }
-    }
-
-    /**
-     * Adds the provided record's qualities to the detector.
-     */
-    public void add(final FastqRecord fastqRecord) {
-        this.qualityAggregator.add(fastqRecord);
-    }
-
-    /**
-     * Adds the provided record's qualities to the detector.
-     */
-    public void add(final SAMRecord samRecord) {
-        this.qualityAggregator.add(samRecord);
-    }
-
-    /**
-     * Tests whether or not the detector can make a determination without guessing (i.e., if all but one quality format
-     * can be excluded using established exclusion conventions).
-     *
-     * @return True if more than one format is possible after exclusions; false otherwise
-     */
-    public boolean isDeterminationAmbiguous() {
-        return this.generateCandidateQualities(true).size() > 1;
-    }
-
-    /**
-     * Processes collected quality data and applies rules to determine which quality formats are possible.
-     * <p/>
-     * Specifically, for each format's known range of possible values (its "quality scheme"), exclude formats if any
-     * observed values fall outside of that range.  Additionally, exclude formats for which we expect to see at
-     * least one quality in a range of values, but do not.  (For example, for Phred, we expect to eventually see
-     * a value below 58.  If we never see such a value, we exclude Phred as a possible format unless the checkExpected
-     * flag is set to false in which case we leave Phred as a possible quality format.)
-     */
-    public EnumSet<FastqQualityFormat> generateCandidateQualities(final boolean checkExpected) {
-        final EnumSet<FastqQualityFormat> candidateFormats = EnumSet.allOf(FastqQualityFormat.class);
-        final Set<Integer> observedAsciiQualities = this.qualityAggregator.getObservedAsciiQualities();
-        if (observedAsciiQualities.isEmpty())
-            throw new PicardException("Cannot determine candidate qualities: no qualities found.");
-
-        for (final QualityScheme scheme : QualityScheme.values()) {
-            final Iterator<Integer> qualityBinIterator = observedAsciiQualities.iterator();
-            final Collection<Range> remainingExpectedValueRanges = new ArrayList<Range>(scheme.expectedAsciiRanges);
-            while (qualityBinIterator.hasNext()) {
-                final int quality = qualityBinIterator.next();
-                if (!scheme.asciiRange.contains(quality)) {
-                    candidateFormats.remove(scheme.qualityFormat);
-                }
-
-                final Iterator<Range> expectedValueRangeIterator = remainingExpectedValueRanges.iterator();
-                while (expectedValueRangeIterator.hasNext()) {
-                    if (expectedValueRangeIterator.next().contains(quality)) {
-                        expectedValueRangeIterator.remove();
-                    }
-                }
-            }
-
-            /**
-             * We remove elements from this list as we observe values in the corresponding range; if the list isn't
-             * empty, we haven't seen a value in that range.  In other words, we haven't seen a value we expected.
-             * Consequently, we remove the corresponding format from the running possibilities.
-             */
-            if (!remainingExpectedValueRanges.isEmpty() && checkExpected) {
-                candidateFormats.remove(scheme.qualityFormat);
-            }
-        }
-
-        return candidateFormats;
-    }
-
-    /**
-     * Interleaves FastqReader iterators so that serial-iteration of the result cycles between the constituent iterators.
-     */
-    private static Iterator<FastqRecord> generateInterleavedFastqIterator(final FastqReader... readers) {
-        return new Iterator<FastqRecord>() {
-            private Queue<Iterator<FastqRecord>> queue = new LinkedList<Iterator<FastqRecord>>();
-
-            {
-                for (final FastqReader reader : readers) {
-                    queue.add(reader.iterator());
-                }
-            }
-
-            public boolean hasNext() {
-                // If this returns true, the head of the queue will have a next element
-                while (!queue.isEmpty()) {
-                    if (queue.peek().hasNext()) {
-                        return true;
-                    }
-                    queue.poll();
-                }
-                return false;
-            }
-
-            public FastqRecord next() {
-                if (!hasNext()) throw new NoSuchElementException();
-                final Iterator<FastqRecord> i = queue.poll();
-                final FastqRecord result = i.next();
-                queue.offer(i);
-                return result;
-            }
-
-            public void remove() {
-                throw new UnsupportedOperationException();
-            }
-        };
-    }
-
-    /**
-     * Reads through the records in the provided fastq reader and uses their quality scores to determine the quality
-     * format used in the fastq.
-     *
-     * @param readers    The fastq readers from which qualities are to be read; at least one must be provided
-     * @param maxRecords The maximum number of records to read from the reader before making a determination (a guess,
-     *                   so more records is better)
-     * @return The determined quality format
-     */
-    public static FastqQualityFormat detect(final long maxRecords, final FastqReader... readers) {
-        final QualityEncodingDetector detector = new QualityEncodingDetector();
-        final long recordCount = detector.add(maxRecords, readers);
-        log.debug(String.format("Read %s records from %s.", recordCount, Arrays.toString(readers)));
-        return detector.generateBestGuess(FileContext.FASTQ, null);
-    }
-
-    public static FastqQualityFormat detect(final FastqReader... readers) {
-        return detect(DEFAULT_MAX_RECORDS_TO_ITERATE, readers);
-    }
-
-    /**
-     * Reads through the records in the provided SAM reader and uses their quality scores to determine the quality
-     * format used in the SAM.
-     *
-     * @param reader     The SAM reader from which records are to be read
-     * @param maxRecords The maximum number of records to read from the reader before making a determination (a guess,
-     *                   so more records is better)
-     * @return The determined quality format
-     */
-    public static FastqQualityFormat detect(final long maxRecords, final SAMFileReader reader) {
-        final QualityEncodingDetector detector = new QualityEncodingDetector();
-        final long recordCount = detector.add(maxRecords, reader);
-        log.debug(String.format("Read %s records from %s.", recordCount, reader));
-        return detector.generateBestGuess(FileContext.SAM, null);
-    }
-
-    public static FastqQualityFormat detect(final SAMFileReader reader) {
-        return detect(DEFAULT_MAX_RECORDS_TO_ITERATE, reader);
-    }
-
-    /**
-     * Reads through the records in the provided SAM reader and uses their quality scores to sanity check the expected
-     * quality passed in. If the expected quality format is sane we just hand this back otherwise we throw a
-     * {@link PicardException}.
-     */
-    public static FastqQualityFormat detect(final SAMFileReader reader, final FastqQualityFormat expectedQualityFormat) {
-        //sanity check expectedQuality
-        final QualityEncodingDetector detector = new QualityEncodingDetector();
-        final long recordCount = detector.add(DEFAULT_MAX_RECORDS_TO_ITERATE, reader);
-        log.debug(String.format("Read %s records from %s.", recordCount, reader));
-        return detector.generateBestGuess(FileContext.SAM, expectedQualityFormat);
-    }
-
-    /**
-     * Make the best guess at the quality format. If an expected quality is passed in the values are sanity checked
-     * (ignoring expected range) and if they are deemed acceptable the expected quality is passed back. Otherwise we use
-     * a set of heuristics to make our best guess.
-     */
-    public FastqQualityFormat generateBestGuess(final FileContext context, final FastqQualityFormat expectedQuality) {
-        final EnumSet<FastqQualityFormat> possibleFormats;
-        if (null != expectedQuality) {
-            possibleFormats = this.generateCandidateQualities(false);
-            if (possibleFormats.contains(expectedQuality)) {
-                return expectedQuality;
-            } else {
-                throw new PicardException(
-                        String.format("The quality values do not fall in the range appropriate for the expected quality of %s.",
-                                expectedQuality.name()));
-            }
-        } else {
-            possibleFormats = this.generateCandidateQualities(true);
-            switch (possibleFormats.size()) {
-                case 1:
-                    return possibleFormats.iterator().next();
-                case 2:
-                    if (possibleFormats.equals(EnumSet.of(FastqQualityFormat.Illumina, FastqQualityFormat.Solexa))) {
-                        return FastqQualityFormat.Illumina;
-                    } else if (possibleFormats.equals(EnumSet.of(FastqQualityFormat.Illumina, FastqQualityFormat.Standard))) {
-                        switch (context) {
-                            case FASTQ:
-                                return FastqQualityFormat.Illumina;
-                            case SAM:
-                                return FastqQualityFormat.Standard;
-                        }
-                    } else if (possibleFormats.equals(EnumSet.of(FastqQualityFormat.Standard, FastqQualityFormat.Solexa))) {
-                        return FastqQualityFormat.Standard;
-                    } else throw new PicardException("Unreachable code.");
-                case 3:
-                    throw new PicardException("The quality format cannot be determined: no formats were excluded.");
-                case 0:
-                    throw new PicardException("The quality format cannot be determined: all formats were excluded.");
-                default:
-                    throw new PicardException("Unreachable code.");
-            }
-        }
-    }
-}
\ No newline at end of file
diff --git a/src/java/net/sf/picard/util/QualityUtil.java b/src/java/net/sf/picard/util/QualityUtil.java
deleted file mode 100644
index f35df2f..0000000
--- a/src/java/net/sf/picard/util/QualityUtil.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.util;
-
-import net.sf.samtools.SAMRecord;
-import net.sf.samtools.util.SequenceUtil;
-
-/**
- * Utility class for working with quality scores and error probabilities.
- *
- * @author Tim Fennell
- */
-public final class QualityUtil {
-    private static final double[] errorProbabilityByPhredScore;
-
-    static {
-        errorProbabilityByPhredScore = new double[101];
-        for (int i=0; i<errorProbabilityByPhredScore.length; ++i) {
-            errorProbabilityByPhredScore[i] = 1d/Math.pow(10d, i/10d);
-        }
-    }
-
-    /** Given a phred score between 0 and 100 returns the probability of error. */
-    public static double getErrorProbabilityFromPhredScore(final int i) {
-        return errorProbabilityByPhredScore[i];
-    }
-
-    /** Gets the phred score for any given probability of error. */
-    public static int getPhredScoreFromErrorProbability(final double probability) {
-        return (int) Math.round(-10 * Math.log10(probability));
-    }
-
-    /** Gets the phred score given the specified observations and errors. */
-    public static int getPhredScoreFromObsAndErrors(final double observations, final double errors) {
-        return getPhredScoreFromErrorProbability(errors / observations);
-    }
-
-    /**
-     * Calculates the sum of error probabilities for all read bases in the SAM record. Takes
-     * the SAM record as opposed to the qualities directly so that it can make sure to count
-     * no-calls as 1 instead of what the quality score says.
-     * */
-    public static double sumOfErrorProbabilities(final SAMRecord rec) {
-        final byte[] bases = rec.getReadBases();
-        final byte[] quals = rec.getBaseQualities();
-
-        double sum = 0;
-
-        for (int i=0; i<bases.length; ++i) {
-            if (SequenceUtil.isNoCall(bases[i])) ++sum;
-            else sum += QualityUtil.getErrorProbabilityFromPhredScore(quals[i]);
-        }
-
-        return sum;
-    }
-}
diff --git a/src/java/net/sf/picard/util/RExecutor.java b/src/java/net/sf/picard/util/RExecutor.java
deleted file mode 100644
index b41486e..0000000
--- a/src/java/net/sf/picard/util/RExecutor.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.util;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.Arrays;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.io.IoUtil;
-import net.sf.samtools.util.CollectionUtil;
-
-/**
- * Util class for executing R scripts.
- * 
- * @author Doug Voet (dvoet at broadinstitute dot org)
- */
-public class RExecutor {
-    private static final Log LOG = Log.getInstance(RExecutor.class);
-    private static final String R_EXE = "Rscript";
-    
-    /**
-     * Executes the given R script that is stored in a file on the classpath. The script file
-     * is read from the classpath and written to a temp file then executed by a call to Rscript.
-     * Blocks until the R script is complete.
-     * 
-     * @param rScriptName the fully qualified name of the classpath resource of the script
-     * @param arguments any arguments required by the script
-     * @return the return code of the R process
-     */
-    public static int executeFromClasspath(final String rScriptName, final String... arguments) {
-        final File scriptFile = writeScriptFile(rScriptName);
-        final int returnCode = executeFromFile(scriptFile, arguments);
-        net.sf.samtools.util.IOUtil.deleteFiles(scriptFile);
-        return returnCode;
-    }
-
-    /**
-     * Executes the given R script that is stored in a file by a call to Rscript.
-     * Blocks until the R script is complete.
-     * 
-     * @param scriptFile the file object for the script
-     * @param arguments any arguments required by the script
-     * @return the return code of the R process
-     */
-    public static int executeFromFile(final File scriptFile, final String... arguments) {
-        final String[] command = new String[arguments.length + 2];
-        command[0] = R_EXE;
-        command[1] = scriptFile.getAbsolutePath();
-        System.arraycopy(arguments, 0, command, 2, arguments.length);
-        LOG.info(String.format("Executing R script via command: %s", CollectionUtil.join(Arrays.asList(command), " ")));
-        return ProcessExecutor.execute(command);
-    }
-
-    /**
-     * Writes the classpath resource named by rScriptName to the temp dir.
-     */
-    private static File writeScriptFile(final String rScriptName) {
-        InputStream scriptStream = null;
-        OutputStream scriptFileStream = null;
-        try {
-            scriptStream = RExecutor.class.getClassLoader().getResourceAsStream(rScriptName);
-            if (scriptStream == null) {
-                throw new IllegalArgumentException("Script [" + rScriptName + "] not found in classpath");
-            }
-            final File scriptFile = File.createTempFile("script", ".R");
-            scriptFileStream = IoUtil.openFileForWriting(scriptFile);
-            IoUtil.copyStream(scriptStream, scriptFileStream);
-            return scriptFile;
-        } catch (IOException e) {
-            throw new PicardException("Unexpected exception creating R script file", e);
-        } finally {
-            if (scriptStream != null) {
-                try {
-                    scriptStream.close();
-                } catch (IOException ignored) {
-                }
-            }
-            if (scriptFileStream != null) {
-                try {
-                    scriptFileStream.close();
-                } catch (IOException ignored) {
-                }
-            }
-        }
-    }
-}
diff --git a/src/java/net/sf/picard/util/ReferenceSequenceMask.java b/src/java/net/sf/picard/util/ReferenceSequenceMask.java
deleted file mode 100644
index 18ec096..0000000
--- a/src/java/net/sf/picard/util/ReferenceSequenceMask.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.util;
-
-/**
- * Interface for specifying loci of interest for genotype calling and other operations.
- * It is a requirement that the sequences be probed in ascending order.
- *
- * @author alecw at broadinstitute dot oh are gee
- */
-public interface ReferenceSequenceMask {
-
-    /**
-     * It is required that sequenceIndex is >= any previous sequenceIndex passed to this class.
-     * @return true if the mask is set for the given sequence and position
-     */
-    boolean get(int sequenceIndex, int position);
-
-    /**
-     * It is required that sequenceIndex is >= any previous sequenceIndex passed to this class.
-     * @return the next pos on the given sequence >= position that is set, or -1 if there are no more set positions
-     */
-    int nextPosition(int sequenceIndex, int position);
-
-    /**
-     * @return Largest sequence index for which there are set bits.
-     */
-    int getMaxSequenceIndex();
-
-    /**
-     * @return the largest position on the last sequence index
-     */
-    int getMaxPosition();
-}
diff --git a/src/java/net/sf/picard/util/ResourceLimitedMap.java b/src/java/net/sf/picard/util/ResourceLimitedMap.java
deleted file mode 100644
index 2dcc33c..0000000
--- a/src/java/net/sf/picard/util/ResourceLimitedMap.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.util;
-
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-/**
- * LRU collection class for managing objects that place some resource burden such that not too many of them
- * can existing in the VM at one time, but they can be reconstructed ias necessary.
- * Original motivation was for an LRU cache of FileOutputStreams.
- *
- * @author alecw at broadinstitute.org
- */
-public class ResourceLimitedMap<Key, Value> {
-    private static final float   hashTableLoadFactor = 0.75f;
-
-    private final LinkedHashMap<Key,Value> map;
-    private final int cacheSize;
-    private final ResourceLimitedMapFunctor<Key, Value> functor;
-
-    /**
-     * Create LRU cache
-     * @param cacheSize Max number of objects to be stored in the cache.
-     * @param functor Encapsulates methods for creating a new object if it isn't in the cache, and
-     * for finalizing an object that is getting LRU'ed out of the cache.
-     */
-    public ResourceLimitedMap(final int cacheSize, final ResourceLimitedMapFunctor<Key, Value> functor) {
-        this.cacheSize = cacheSize;
-        this.functor = functor;
-        // Make hash table big enough so that it never gets resized.
-        final int hashTableCapacity = (int)Math.ceil(cacheSize / hashTableLoadFactor) + 1;
-
-        // Created LinkedHashMap in LRU mode
-        map = new LinkedHashMap<Key,Value>(hashTableCapacity, hashTableLoadFactor, true) {
-            @Override protected boolean removeEldestEntry (final Map.Entry<Key,Value> eldest) {
-               if (size() > ResourceLimitedMap.this.cacheSize) {
-                   ResourceLimitedMap.this.functor.finalizeValue(eldest.getKey(), eldest.getValue());
-                   return true;
-               } else {
-                   return false;
-               }
-            }
-        };
-    }
-
-    /**
-     * Return an existing value, or create a new one if necessary.  If creating a new one and the
-     * cache is full, the eldest object is pushed out of the cache.
-     * @param key Key of desired value.
-     * @return Either existing value, or new value created from key and inserted into map.
-     */
-    public Value get(final Key key) {
-        if (!map.containsKey(key)) {
-            map.put(key, functor.makeValue(key));
-        }
-        return map.get(key);
-    }
-
-    public Value remove(final Key key) {
-        return map.remove(key);
-    }
-
-    /**
-     * Determine if the map contains the given key.  Note that even if the map does not contain
-     * the key, get(key) will return a value, because one will be created.
-     * @param key
-     * @return true if the map currently contains the given key.  It is unknown whether the map
-     * may have contained the key in the past.
-     */
-    public boolean containsKey(final Key key) {
-        return map.containsKey(key);
-    }
-
-    /**
-     * Remove all the values from the map, and call functory.finalizeValue() on each of them.
-     */
-    public void finalizeAll() {
-        for (final Map.Entry<Key, Value> entry : map.entrySet()) {
-            functor.finalizeValue(entry.getKey(), entry.getValue());
-        }
-        map.clear();
-    }
-}
diff --git a/src/java/net/sf/picard/util/ResourceLimitedMapFunctor.java b/src/java/net/sf/picard/util/ResourceLimitedMapFunctor.java
deleted file mode 100644
index d709216..0000000
--- a/src/java/net/sf/picard/util/ResourceLimitedMapFunctor.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.util;
-
-/**
- * c.f. ResourceLimitedMap for details.
- * @param <Key> Used to find and create value.
- * @param <Value> Type stored in ResourceLimitedMap, which is created as necessary
- * and finalized when it is the least-recently used.
- */
-public interface ResourceLimitedMapFunctor<Key, Value> {
-
-    /**
-     * Create a new value corresponding to the key
-     * @param key
-     * @return a new value corresponding to the key
-     */
-    Value makeValue(final Key key);
-
-    /**
-     * Clean up an existing value in conjunction with removing from ResourceLimitedMap.
-     * @param key
-     * @param value
-     */
-    void finalizeValue(final Key key, final Value value);
-}
diff --git a/src/java/net/sf/picard/util/SamLocusIterator.java b/src/java/net/sf/picard/util/SamLocusIterator.java
deleted file mode 100644
index 39ca075..0000000
--- a/src/java/net/sf/picard/util/SamLocusIterator.java
+++ /dev/null
@@ -1,498 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.util;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.filter.*;
-import net.sf.samtools.*;
-import net.sf.samtools.util.CloseableIterator;
-
-import java.util.*;
-
-/**
- * Iterator that traverses a SAM File, accumulating information on a per-locus basis.
- * Optionally takes a target interval list, in which case the loci returned are the ones covered by
- * the interval list.  If no target interval list, whatever loci are covered by the input reads are returned.
- * By default duplicate reads and non-primary alignments are filtered out.  Filtering may be changed
- * via setSamFilters().
- *
- * @author alecw at broadinstitute.org
- */
-public class SamLocusIterator implements Iterable<SamLocusIterator.LocusInfo>, CloseableIterator<SamLocusIterator.LocusInfo> {
-    private static final Log LOG = Log.getInstance(SamLocusIterator.class);
-
-    /**
-     * A SAMRecord plus the zero-based offset in the read corresponding to the position in LocusInfo
-     */
-    public static class RecordAndOffset {
-        private final SAMRecord record;
-        private final int offset;
-
-        public RecordAndOffset(final SAMRecord record, final int offset) {
-            this.offset = offset;
-            this.record = record;
-        }
-
-        /**
-         * Zero-based offset into the read corresonding to the current position in LocusInfo
-         */
-        public int getOffset() {
-            return offset;
-        }
-
-        public SAMRecord getRecord() {
-            return record;
-        }
-
-        public byte getReadBase() {
-            return record.getReadBases()[offset];
-        }
-
-        public byte getBaseQuality() {
-            return record.getBaseQualities()[offset];
-        }
-    }
-
-    /**
-     * The unit of iteration.  Holds the locus, plus a ReadAndOffset for each read that overlaps the locus
-     */
-    public static class LocusInfo implements Locus {
-        private final SAMSequenceRecord referenceSequence;
-        private final int position;
-        private final List<RecordAndOffset> recordAndOffsets = new ArrayList<RecordAndOffset>(100);
-
-        LocusInfo(final SAMSequenceRecord referenceSequence, final int position) {
-            this.referenceSequence = referenceSequence;
-            this.position = position;
-        }
-
-        /**
-         * Accumulate info for one read at the locus.
-         */
-        public void add(final SAMRecord read, final int position) {
-            recordAndOffsets.add(new RecordAndOffset(read, position));
-        }
-
-        public int getSequenceIndex() { return referenceSequence.getSequenceIndex(); }
-
-        /**
-         * @return 1-based reference position
-         */
-        public int getPosition() { return position; }
-
-        public List<RecordAndOffset> getRecordAndPositions() {
-            return Collections.unmodifiableList(recordAndOffsets);
-        }
-
-        public String getSequenceName() { return referenceSequence.getSequenceName(); }
-
-        @Override
-        public String toString() {
-            return referenceSequence.getSequenceName() + ":" + position;
-        }
-
-        public int getSequenceLength(){return referenceSequence.getSequenceLength();}
-    }
-
-
-
-    private final SAMFileReader samReader;
-    private final ReferenceSequenceMask referenceSequenceMask;
-    private PeekableIterator<SAMRecord> samIterator;
-    private List<SamRecordFilter> samFilters = Arrays.asList(new SecondaryOrSupplementaryFilter(),
-                                                             new DuplicateReadFilter());
-    private final List<Interval> intervals;
-    private final boolean useIndex;
-
-    // LocusInfos on this list are ready to be returned by iterator.  All reads that overlap
-    // the locus have been accumulated before the LocusInfo is moved into this list.
-    private final LinkedList<LocusInfo> complete = new LinkedList<LocusInfo>();
-
-    // LocusInfos for which accumulation is in progress
-    private final LinkedList<LocusInfo> accumulator = new LinkedList<LocusInfo>();
-
-    private int qualityScoreCutoff = Integer.MIN_VALUE;
-    private int mappingQualityScoreCutoff = Integer.MIN_VALUE;
-    private boolean includeNonPfReads = true;
-
-    /**
-     * If true, emit a LocusInfo for every locus in the target map, or if no target map,
-     * emit a LocusInfo for every locus in the reference sequence.
-     * If false, emit a LocusInfo only if a locus has coverage.
-     */
-    private boolean emitUncoveredLoci = true;
-
-    // When there is a target mask, these members remember the last locus for which a LocusInfo has been
-    // returned, so that any uncovered locus in the target mask can be covered by a 0-coverage LocusInfo
-    private int lastReferenceSequence = 0;
-    private int lastPosition = 0;
-
-    // Set to true when past all aligned reads in input SAM file
-    private boolean finishedAlignedReads = false;
-
-    private final LocusComparator<Locus> locusComparator = new LocusComparator<Locus>();
-
-
-    /**
-     * Prepare to iterate through the given SAM records, skipping non-primary alignments.  Do not use
-     * BAM index even if available.
-     */
-    public SamLocusIterator(final SAMFileReader samReader) {
-        this(samReader, null);
-    }
-
-    /**
-     * Prepare to iterate through the given SAM records, skipping non-primary alignments.  Do not use
-     * BAM index even if available.
-     *
-     * @param intervalList Either the list of desired intervals, or null.  Note that if an intervalList is
-     * passed in that is not coordinate sorted, it will eventually be coordinated sorted by this class.
-     */
-    public SamLocusIterator(final SAMFileReader samReader, final IntervalList intervalList) {
-        this(samReader, intervalList, samReader.hasIndex());
-    }
-
-    /**
-     * Prepare to iterate through the given SAM records, skipping non-primary alignments
-     *
-     * @param samReader must be coordinate sorted
-     * @param intervalList Either the list of desired intervals, or null.  Note that if an intervalList is
-     * passed in that is not coordinate sorted, it will eventually be coordinated sorted by this class.
-     * @param useIndex If true, do indexed lookup to improve performance.  Not relevant if intervalList == null.
-     * It is no longer the case the useIndex==true can make performance worse.  It should always perform at least
-     * as well as useIndex==false, and generally will be much faster.
-     */
-    public SamLocusIterator(final SAMFileReader samReader, final IntervalList intervalList, final boolean useIndex) {
-        if (samReader.getFileHeader().getSortOrder() == null || samReader.getFileHeader().getSortOrder() == SAMFileHeader.SortOrder.unsorted) {
-            LOG.warn("SamLocusIterator constructed with samReader that has SortOrder == unsorted.  ", "" +
-                    "Assuming SAM is coordinate sorted, but exceptions may occur if it is not.");
-        } else if (samReader.getFileHeader().getSortOrder() != SAMFileHeader.SortOrder.coordinate) {
-            throw new PicardException("SamLocusIterator cannot operate on a SAM file that is not coordinate sorted.");
-        }
-        this.samReader = samReader;
-        this.useIndex = useIndex;
-        if (intervalList != null) {
-            intervals = intervalList.getUniqueIntervals();
-            this.referenceSequenceMask = new IntervalListReferenceSequenceMask(intervalList);
-        } else {
-            intervals = null;
-            this.referenceSequenceMask = new WholeGenomeReferenceSequenceMask(samReader.getFileHeader());
-        }
-    }
-
-    public Iterator<LocusInfo> iterator() {
-        if (samIterator != null) {
-            throw new IllegalStateException("Cannot call iterator() more than once on SamLocusIterator");
-        }
-        CloseableIterator<SAMRecord> tempIterator;
-        if (intervals != null) {
-            tempIterator = new SamRecordIntervalIteratorFactory().makeSamRecordIntervalIterator(samReader, intervals, useIndex);
-        } else {
-            tempIterator = samReader.iterator();
-        }
-        if (samFilters != null) {
-            tempIterator = new FilteringIterator(tempIterator, new AggregateFilter(samFilters));
-        }
-        samIterator = new PeekableIterator<SAMRecord>(tempIterator);
-        return this;
-    }
-
-    public void close() {
-        this.samIterator.close();
-    }
-
-    private boolean samHasMore() {
-        return !finishedAlignedReads && (samIterator.peek() != null);
-    }
-
-    /**
-     * @return true if there are more aligned reads in the SAM file, LocusInfos in some stage of accumulation,
-     * or loci in the target mask that have yet to be covered.
-     */
-    public boolean hasNext() {
-        if (this.samIterator == null) {
-            iterator();
-        }
-
-        while (complete.isEmpty() && ((!accumulator.isEmpty()) || samHasMore() || hasRemainingMaskBases())) {
-            final LocusInfo locusInfo = next();
-            if (locusInfo != null) {
-                complete.addFirst(locusInfo);
-            }
-        }
-        return !complete.isEmpty();
-    }
-
-    /**
-     * @return true if there are loci in the target mask that have yet to be covered by LocusInfos
-     */
-    private boolean hasRemainingMaskBases() {
-        // if there are more sequences in the mask, by definition some of them must have
-        // marked bases otherwise if we're in the last sequence, but we're not at the last marked position,
-        // there is also more in the mask
-        if (!emitUncoveredLoci) {
-            // If not emitting uncovered loci, this check is irrelevant
-            return false;
-        }
-        return (lastReferenceSequence < referenceSequenceMask.getMaxSequenceIndex() ||
-               (lastReferenceSequence == referenceSequenceMask.getMaxSequenceIndex() &&
-                lastPosition < referenceSequenceMask.nextPosition(lastReferenceSequence, lastPosition)));
-    }
-
-    /**
-     * hasNext() has been fixed so that if it returns true, next() is now guaranteed not to return null.
-     */
-    public LocusInfo next() {
-
-        // if we don't have any completed entries to return, try and make some!
-        while(complete.isEmpty() && samHasMore()) {
-            final SAMRecord rec = samIterator.peek();
-
-            // There might be unmapped reads mixed in with the mapped ones, but when a read
-            // is encountered with no reference index it means that all the mapped reads have been seen.
-            if (rec.getReferenceIndex() == -1) {
-                this.finishedAlignedReads = true;
-                continue;
-
-            }
-            // Skip over an unaligned read that has been forced to be sorted with the aligned reads
-            if (rec.getReadUnmappedFlag()
-                    || rec.getMappingQuality() < this.mappingQualityScoreCutoff
-                    || (!this.includeNonPfReads && rec.getReadFailsVendorQualityCheckFlag())) {
-                samIterator.next();
-                continue;
-            }
-
-            final Locus alignmentStart = new LocusImpl(rec.getReferenceIndex(), rec.getAlignmentStart());
-
-            // emit everything that is before the start of the current read, because we know no more
-            // coverage will be accumulated for those loci.
-            while (!accumulator.isEmpty() && locusComparator.compare(accumulator.getFirst(), alignmentStart) < 0) {
-                final LocusInfo first = accumulator.getFirst();
-                populateCompleteQueue(alignmentStart);
-                if (!complete.isEmpty()) {
-                    return complete.removeFirst();
-                }
-                if (!accumulator.isEmpty() && first == accumulator.getFirst()) {
-                    throw new PicardException("Stuck in infinite loop");
-                }
-            }
-
-            // at this point, either the accumulator list is empty or the head should
-            // be the same position as the first base of the read
-            if (!accumulator.isEmpty()) {
-                if (accumulator.getFirst().getSequenceIndex() != rec.getReferenceIndex() ||
-                        accumulator.getFirst().position != rec.getAlignmentStart()) {
-                    throw new IllegalStateException("accumulator should be empty or aligned with current SAMRecord");
-                }
-            }
-
-            // Store the loci for the read in the accumulator
-            accumulateSamRecord(rec);
-
-            samIterator.next();
-        }
-
-        final Locus endLocus = new LocusImpl(Integer.MAX_VALUE, Integer.MAX_VALUE);
-        // if we have nothing to return to the user, and we're at the end of the SAM iterator,
-        // push everything into the complete queue
-        if (complete.isEmpty() && !samHasMore()) {
-            while(!accumulator.isEmpty()) {
-                populateCompleteQueue(endLocus);
-                if (!complete.isEmpty()) {
-                    return complete.removeFirst();
-                }
-            }
-        }
-
-        // if there are completed entries, return those
-        if (!complete.isEmpty()) {
-            return complete.removeFirst();
-        } else if (emitUncoveredLoci){
-            final Locus afterLastMaskPositionLocus = new LocusImpl(referenceSequenceMask.getMaxSequenceIndex(),
-                    referenceSequenceMask.getMaxPosition() + 1);
-            // In this case... we're past the last read from SAM so see if we can
-            // fill out any more (zero coverage) entries from the mask
-            return createNextUncoveredLocusInfo(afterLastMaskPositionLocus);
-        } else {
-            return null;
-        }
-    }
-
-    /**
-     * Capture the loci covered by the given SAMRecord in the LocusInfos in the accumulator,
-     * creating new LocusInfos as needed.
-     */
-    private void accumulateSamRecord(final SAMRecord rec) {
-        // interpret the CIGAR string and add the base info
-        for(final AlignmentBlock alignmentBlock : rec.getAlignmentBlocks()) {
-            for (int i = 0; i < alignmentBlock.getLength(); ++i) {
-                // 0-based offset into the read of the current base
-                final int readOffset = alignmentBlock.getReadStart() + i - 1;
-                // 1-based reference position that the current base aligns to
-                final int refPos = alignmentBlock.getReferenceStart() + i;
-
-                // 0-based offset from the aligned position of the first base in the read to the aligned position
-                // of the current base.
-                final int refOffset =  refPos - rec.getAlignmentStart();
-
-                // Ensure there are LocusInfos up to and including this position
-                for (int j = accumulator.size(); j <= refOffset; ++j) {
-                    accumulator.add(new LocusInfo(getReferenceSequence(rec.getReferenceIndex()),
-                            rec.getAlignmentStart() + j));
-                }
-                // if the quality score cutoff is met, accumulate the base info
-                if (rec.getBaseQualities()[readOffset] >= getQualityScoreCutoff()) {
-                    accumulator.get(refOffset).add(rec, readOffset);
-                }
-            }
-        }
-    }
-
-    /**
-     * Create the next relevant zero-coverage LocusInfo
-     * @param stopBeforeLocus don't go up to this sequence and position
-     * @return a zero-coverage LocusInfo, or null if there is none before the stopBefore locus
-     */
-    private LocusInfo createNextUncoveredLocusInfo(final Locus stopBeforeLocus) {
-        while (lastReferenceSequence <= stopBeforeLocus.getSequenceIndex() &&
-               lastReferenceSequence <= referenceSequenceMask.getMaxSequenceIndex()) {
-
-            if (lastReferenceSequence == stopBeforeLocus.getSequenceIndex() &&
-                lastPosition +1 >= stopBeforeLocus.getPosition()) {
-                return null;
-            }
-
-
-
-            final int nextbit = referenceSequenceMask.nextPosition(lastReferenceSequence, lastPosition);
-
-            // try the next reference sequence
-            if (nextbit == -1) {
-                // No more in this reference sequence
-                if (lastReferenceSequence == stopBeforeLocus.getSequenceIndex()) {
-                    lastPosition = stopBeforeLocus.getPosition();
-                    return null;
-                }
-                lastReferenceSequence++;
-                lastPosition = 0;
-            } else if (lastReferenceSequence < stopBeforeLocus.getSequenceIndex() ||
-                    nextbit < stopBeforeLocus.getPosition()) {
-                lastPosition = nextbit;
-                return new LocusInfo(getReferenceSequence(lastReferenceSequence), lastPosition);
-            } else if (nextbit >= stopBeforeLocus.getPosition()) {
-                return null;
-            }
-
-        }
-
-        return null;
-    }
-
-    /**
-     * Pop the first entry from the LocusInfo accumulator into the complete queue.  In addition,
-     * check the ReferenceSequenceMask and if there are intervening mask positions between the last popped base and the one
-     * about to be popped, put those on the complete queue as well.
-     * Note that a single call to this method may not empty the accumulator completely, or even
-     * empty it at all, because it may just put a zero-coverage LocusInfo into the complete queue.
-     */
-    private void populateCompleteQueue(final Locus stopBeforeLocus) {
-        // Because of gapped alignments, it is possible to create LocusInfo's with no reads associated with them.
-        // Skip over these.
-        while (!accumulator.isEmpty() && accumulator.getFirst().getRecordAndPositions().isEmpty() &&
-               locusComparator.compare(accumulator.getFirst(), stopBeforeLocus) < 0) {
-            accumulator.removeFirst();
-        }
-        if (accumulator.isEmpty()) {
-            return;
-        }
-        final LocusInfo locusInfo = accumulator.getFirst();
-        if (locusComparator.compare(stopBeforeLocus, locusInfo) <= 0) {
-            return;
-        }
-
-        // If necessary, emit a zero-coverage LocusInfo
-        if (emitUncoveredLoci) {
-            final LocusInfo zeroCoverage = createNextUncoveredLocusInfo(locusInfo);
-            if (zeroCoverage != null) {
-                complete.addLast(zeroCoverage);
-                return;
-            }
-        }
-
-        // At this point we know we're going to process the LocusInfo, so remove it from the accumulator.
-        accumulator.removeFirst();
-
-        // fill in any gaps based on our genome mask
-        final int sequenceIndex = locusInfo.getSequenceIndex();
-
-
-        // only add to the complete queue if it's in the mask (or we have no mask!)
-        if (referenceSequenceMask.get(locusInfo.getSequenceIndex(), locusInfo.getPosition())) {
-            complete.addLast(locusInfo);
-        }
-
-        lastReferenceSequence = sequenceIndex;
-        lastPosition = locusInfo.getPosition();
-    }
-
-    private SAMSequenceRecord getReferenceSequence(final int referenceSequenceIndex) {
-        return samReader.getFileHeader().getSequence(referenceSequenceIndex);
-    }
-
-    public void remove() {
-        throw new UnsupportedOperationException("Can not remove records from a SAM file via an iterator!");
-    }
-
-    // --------------------------------------------------------------------------------------------
-    // Helper methods below this point...
-    // --------------------------------------------------------------------------------------------
-
-    /**
-     * Controls which, if any, SAMRecords are filtered.  By default duplicate reads and non-primary alignments
-     * are filtered out.  The list of filters passed here replaces any existing filters.
-     * @param samFilters list of filters, or null if no filtering is desired.
-     */
-    public void setSamFilters(final List<SamRecordFilter> samFilters) {
-        this.samFilters = samFilters;
-    }
-
-    public int getQualityScoreCutoff() { return qualityScoreCutoff; }
-    public void setQualityScoreCutoff(final int qualityScoreCutoff) { this.qualityScoreCutoff = qualityScoreCutoff; }
-
-    public int getMappingQualityScoreCutoff() {
-        return mappingQualityScoreCutoff;
-    }
-    public void setMappingQualityScoreCutoff(final int mappingQualityScoreCutoff) { this.mappingQualityScoreCutoff = mappingQualityScoreCutoff; }
-
-    public boolean isIncludeNonPfReads() { return includeNonPfReads; }
-    public void setIncludeNonPfReads(final boolean includeNonPfReads) { this.includeNonPfReads = includeNonPfReads; }
-
-    public boolean isEmitUncoveredLoci() {
-        return emitUncoveredLoci;
-    }
-    public void setEmitUncoveredLoci(final boolean emitUncoveredLoci) {
-        this.emitUncoveredLoci = emitUncoveredLoci;
-    }
-}
diff --git a/src/java/net/sf/picard/util/SamRecordIntervalIteratorFactory.java b/src/java/net/sf/picard/util/SamRecordIntervalIteratorFactory.java
deleted file mode 100644
index 0f8af5d..0000000
--- a/src/java/net/sf/picard/util/SamRecordIntervalIteratorFactory.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.util;
-
-import net.sf.picard.filter.FilteringIterator;
-import net.sf.picard.filter.IntervalFilter;
-import net.sf.picard.filter.SamRecordFilter;
-import net.sf.samtools.SAMFileReader;
-import net.sf.samtools.SAMRecord;
-import net.sf.samtools.util.CloseableIterator;
-import net.sf.samtools.util.CloserUtil;
-
-import java.util.Iterator;
-import java.util.List;
-import java.util.NoSuchElementException;
-
-/**
- * Create an iterator over a SAMFileReader that only returns reads that overlap one of the intervals
- * in an interval list.
- *
- * @author alecw at broadinstitute.org
- */
-public class SamRecordIntervalIteratorFactory {
-
-    /**
-     * @param samReader
-     * @param uniqueIntervals list of intervals of interest, with overlaps merged, in coordinate order
-     * @param useIndex if false, do not use a BAM index even if it is present.
-     * @return an iterator that will be filtered so that only SAMRecords overlapping the intervals
-     * in uniqueIntervals will be returned.  If a BAM index is available, it will be used to improve performance.
-     * Note however that if there are many intervals that cover a great deal of the genome, using the BAM
-     * index may actually make performance worse.
-     */
-    public CloseableIterator<SAMRecord> makeSamRecordIntervalIterator(final SAMFileReader samReader,
-                                                               final List<Interval> uniqueIntervals,
-                                                               final boolean useIndex) {
-        if (!samReader.hasIndex() || !useIndex) {
-            final int stopAfterSequence;
-            final int stopAfterPosition;
-            if (uniqueIntervals.isEmpty()) {
-                stopAfterSequence = -1;
-                stopAfterPosition = -1;
-            } else {
-                final Interval lastInterval = uniqueIntervals.get(uniqueIntervals.size() - 1);
-                stopAfterSequence = samReader.getFileHeader().getSequenceIndex(lastInterval.getSequence());
-                stopAfterPosition = lastInterval.getEnd();
-            }
-            final IntervalFilter intervalFilter = new IntervalFilter(uniqueIntervals, samReader.getFileHeader());
-            return new StopAfterFilteringIterator(samReader.iterator(), intervalFilter, stopAfterSequence, stopAfterPosition);
-        } else {
-            final SAMFileReader.QueryInterval[] queryIntervals = new SAMFileReader.QueryInterval[uniqueIntervals.size()];
-            for (int i = 0; i < queryIntervals.length; ++i) {
-                final Interval inputInterval = uniqueIntervals.get(i);
-                queryIntervals[i] = samReader.makeQueryInterval(inputInterval.getSequence(),
-                        inputInterval.getStart(), inputInterval.getEnd());
-            }
-            return samReader.queryOverlapping(queryIntervals);
-        }
-    }
-
-    /**
-     * Halt iteration after a read is encountered that starts after the given sequence and position.
-     * Note that most of this code is copied from FilteringIterator.  It would be nice just to override getNextRecord,
-     * but that method is called FilteringIterator ctor, so the stopAfter members can't be initialized before
-     * it is called.
-     * FilteringIterator ctor could take a boolean "advance" that would tell it whether or not to call getNextRecord
-     * in the ctor, so that it could be delayed in the subclass.  If this pattern happens again, we should do that. 
-     */
-    private class StopAfterFilteringIterator implements CloseableIterator<SAMRecord> {
-        private final int stopAfterSequence;
-        private final int stopAfterPosition;
-        private final Iterator<SAMRecord> iterator;
-        private final SamRecordFilter filter;
-        private SAMRecord next = null;
-
-        private StopAfterFilteringIterator(Iterator<SAMRecord> iterator, SamRecordFilter filter,
-                                           int stopAfterSequence, int stopAfterPosition) {
-            this.stopAfterSequence = stopAfterSequence;
-            this.stopAfterPosition = stopAfterPosition;
-            this.iterator = iterator;
-            this.filter = filter;
-            next = getNextRecord();
-        }
-
-
-        /**
-         * Returns true if the iteration has more elements.
-         *
-         * @return  true if the iteration has more elements.  Otherwise returns false.
-         */
-        public boolean hasNext() {
-            return next != null;
-        }
-
-        /**
-         * Returns the next element in the iteration.
-         *
-         * @return  the next element in the iteration
-         * @throws java.util.NoSuchElementException
-         */
-        public SAMRecord next() {
-            if (next == null) {
-                throw new NoSuchElementException("Iterator has no more elements.");
-            }
-            final SAMRecord result = next;
-            next = getNextRecord();
-            return result;
-        }
-
-        /**
-         * Required method for Iterator API.
-         *
-         * @throws UnsupportedOperationException
-         */
-        public void remove() {
-            throw new UnsupportedOperationException("Remove() not supported by FilteringIterator");
-        }
-
-        public void close() {
-            CloserUtil.close(iterator);
-        }
-
-        protected SAMRecord getNextRecord() {
-            while (iterator.hasNext()) {
-                SAMRecord record = iterator.next();
-                if (record.getReferenceIndex() == SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX) return null;
-                else if (record.getReferenceIndex() > stopAfterSequence) return null;
-                else if (record.getReferenceIndex() == stopAfterSequence && record.getAlignmentStart() > stopAfterPosition) {
-                    return null;
-                }
-                if (!filter.filterOut(record)) {
-                    return record;
-                }
-            }
-            return null;
-        }
-    }
-}
diff --git a/src/java/net/sf/picard/util/SolexaQualityConverter.java b/src/java/net/sf/picard/util/SolexaQualityConverter.java
deleted file mode 100644
index b0a05a2..0000000
--- a/src/java/net/sf/picard/util/SolexaQualityConverter.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.util;
-
-/**
- * Optimized method for converting Solexa ASCII qualities into Phred scores.
- * Pre-computes all values in order to eliminate repeated computation.
- */
-public class SolexaQualityConverter {
-
-    /**
-     * This value is added to a Solexa quality score to make it printable ASCII
-     */
-    public static final int SOLEXA_ADDEND = 64;
-
-    /**
-     * This value is added to a Phred scord to make it printable ASCII
-     */
-    public static final int PHRED_ADDEND = 33;
-
-    private static SolexaQualityConverter singleton = null;
-
-    public static synchronized SolexaQualityConverter getSingleton()  {
-        if (singleton == null) {
-            singleton = new SolexaQualityConverter();
-        }
-        return singleton;
-    }
-
-    /**
-     * Mapping from ASCII value in Gerald export file to phred score
-     */
-    private final byte[] phredScore = new byte[256];
-
-    private SolexaQualityConverter() {
-        for (int i = 0; i < SOLEXA_ADDEND; ++i) {
-            phredScore[i] = 0;
-        }
-        for (int i = SOLEXA_ADDEND; i < phredScore.length; ++i) {
-            phredScore[i] = convertSolexaQualityCharToPhredBinary(i);
-        }
-    }
-
-
-    /** Converts a solexa character quality into a phred numeric quality. */
-    private byte convertSolexaQualityCharToPhredBinary(final int solexaQuality) {
-        return (byte) Math.round(10d * Math.log10(1d+Math.pow(10d, (solexaQuality - SOLEXA_ADDEND)/10d)));
-    }
-
-    /**
-     * Convert a solexa quality ASCII character into a phred score.
-     */
-    public byte solexaCharToPhredBinary(final byte solexaQuality) {
-        return phredScore[solexaQuality];
-    }
-
-    /**
-     * @return a byte array that can be indexed by Solexa ASCII quality, with value
-     * of corresponding Phred score.  Elements 0-63 are invalid because Solexa qualities
-     * should all be >= 64.  Do not modify this array!
-     */
-    public byte[] getSolexaToPhredConversionTable() {
-        return phredScore;
-    }
-
-    /**
-     * Decodes an array of solexa quality ASCII chars into Phred numeric space.
-     * Decode in place in order to avoid extra object allocation.
-     */
-    public void convertSolexaQualityCharsToPhredBinary(final byte[] solexaQuals) {
-        for (int i=0; i<solexaQuals.length; ++i) {
-            solexaQuals[i] = phredScore[solexaQuals[i]];
-        }
-    }
-
-    /**
-     * Decodes an array of solexa quality ASCII chars into Phred ASCII space.
-     * Decode in place in order to avoid extra object allocation.
-     */
-    public void convertSolexaQualityCharsToPhredChars(final byte[] solexaQuals) {
-        for (int i=0; i<solexaQuals.length; ++i) {
-            solexaQuals[i] = (byte)((phredScore[solexaQuals[i]] + PHRED_ADDEND) & 0xff);
-        }
-    }
-
-    /**
-     * Casava 1.3 stores phred-scaled qualities, but non-standard because they have 64 added to them
-     * rather than the standard 33.
-     * @param solexaQuals qualities are converted in place.
-     */
-    public void convertSolexa_1_3_QualityCharsToPhredBinary(final byte[] solexaQuals) {
-        for (int i=0; i<solexaQuals.length; ++i) {
-            solexaQuals[i] -= SOLEXA_ADDEND;
-        }
-    }
-
-    public void convertSolexa_1_3_QualityCharsToPhredBinary(int offset, int length, final byte[] solexaQuals) {
-        final int limit = offset + length;
-        for (int i=offset; i < limit; ++i) {
-            solexaQuals[i] -= SOLEXA_ADDEND;
-        }
-    }
-}
diff --git a/src/java/net/sf/picard/util/TabbedInputParser.java b/src/java/net/sf/picard/util/TabbedInputParser.java
deleted file mode 100644
index 4abbae4..0000000
--- a/src/java/net/sf/picard/util/TabbedInputParser.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.util;
-
-import java.io.File;
-import java.io.InputStream;
-
-/**
- * Parser for tab-delimited files
- *
- * @author Kathleen Tibbetts
- */
-public class TabbedInputParser extends BasicInputParser {
-
-    /**
-     * Constructor
-     *
-     * @param stream  The input stream(s) to parse
-     */
-    public TabbedInputParser(boolean treatGroupedDelimitersAsOne, InputStream... stream) {
-        super(treatGroupedDelimitersAsOne, stream);
-    }
-
-    /**
-     * Constructor
-     *
-     * @param file  The file(s) to parse
-     */
-    public TabbedInputParser(boolean treatGroupedDelimitersAsOne, File... file) {
-        super(treatGroupedDelimitersAsOne, file);
-    }
-
-    /**
-     * Determines whether a given character is a delimiter
-     *
-     * @param b the character to evaluate
-     * @return  true if <code>b</code> is a delimiter; otherwise false
-     */
-    @Override
-    protected boolean isDelimiter(final byte b) {
-        return b == '\t';
-    }
-}
diff --git a/src/java/net/sf/picard/util/TabbedTextFileWithHeaderParser.java b/src/java/net/sf/picard/util/TabbedTextFileWithHeaderParser.java
deleted file mode 100644
index fe5ce2a..0000000
--- a/src/java/net/sf/picard/util/TabbedTextFileWithHeaderParser.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.util;
-
-import net.sf.picard.PicardException;
-import net.sf.samtools.util.CloseableIterator;
-
-import java.io.File;
-import java.util.*;
-import java.util.Set;
-
-/**
- * Parse a tabbed text file in which columns are found by looking at a header line rather than by position.
- *
- * @author alecw at broadinstitute.org
- */
-public class TabbedTextFileWithHeaderParser implements Iterable<TabbedTextFileWithHeaderParser.Row> {
-    public class Row {
-        private final String[] fields;
-        private final String currentLine;
-
-        Row(final String[] fields, final String source) {
-            this.fields = fields;
-            this.currentLine = source;
-        }
-
-        /**
-         * @return Array of fields in the order they appear in the file.
-         */
-        public String[] getFields() {
-            return fields;
-        }
-
-        public String getField(final String columnLabel) {
-            final Integer key = columnLabelIndices.get(columnLabel);
-            if (key == null) throw new NoSuchElementException(String.format("column %s in %s", columnLabel, parser.getFileName()));
-            return fields[key];
-        }
-
-        public Integer getIntegerField(final String columnLabel) {
-            if (fields[columnLabelIndices.get(columnLabel)] == null)  return null;
-            return Integer.parseInt(fields[columnLabelIndices.get(columnLabel)]);
-        }
-
-        public String getCurrentLine() {
-            return this.currentLine;
-        }
-    }
-
-    class TheIterator implements CloseableIterator<Row> {
-
-        @Override
-        public boolean hasNext() {
-            return parser.hasNext();
-        }
-
-        @Override
-        public Row next() {
-            final String[] fields = parser.next();
-            final String source = parser.getCurrentLine();
-            return new Row(fields, source);
-        }
-
-        @Override
-        public void remove() {
-            throw new UnsupportedOperationException();
-        }
-
-        @Override
-        public void close() {
-            extantIterator = null;
-        }
-    }
-
-    /**
-     * Map from column label to positional index.
-     */
-    private final Map<String, Integer> columnLabelIndices = new HashMap<String, Integer>();
-    private final TabbedInputParser parser;
-    private TheIterator extantIterator;
-
-    public TabbedTextFileWithHeaderParser(final TabbedInputParser parser) {
-        this.parser = parser;
-        if (!parser.hasNext()) {
-            throw new PicardException("No header line found in file " + parser.getFileName());
-        }
-        final String[] columnLabels = parser.next();
-        for (int i = 0; i < columnLabels.length; ++i) {
-            columnLabelIndices.put(columnLabels[i], i);
-        }
-    }
-    
-    public TabbedTextFileWithHeaderParser(final File file) {
-        this(new TabbedInputParser(false, file));
-    }
-
-    public TabbedTextFileWithHeaderParser(final File file, final String[] columnHeaders) {
-        parser = new TabbedInputParser(false, file);
-        if (!parser.hasNext()) {
-            throw new PicardException("No header line found in file " + file);
-        }
-
-        for (int i = 0; i < columnHeaders.length; ++i) {
-            columnLabelIndices.put(columnHeaders[i], i);
-        }
-    }
-
-    /**
-     * @param columnLabel
-     * @return True if the given column label appears in the header.
-     */
-    public boolean hasColumn(final String columnLabel) {
-        return columnLabelIndices.containsKey(columnLabel);
-    }
-
-    /**
-     *
-     * @return The set of column labels for this file in no particular order.
-     */
-    public Set<String> columnLabels() {
-        return columnLabelIndices.keySet();
-    }
-
-    /**
-     * Creates the iterator object.  It is illegal to have more than one iterator extant
-     * on the same parser object.
-     */
-    @Override
-    public CloseableIterator<Row> iterator() {
-        if (extantIterator != null) {
-            throw new ConcurrentModificationException("Only one iterator allowed at a time.");
-        }
-        extantIterator = new TheIterator();
-        return extantIterator;
-    }
-
-    /**
-     * Release all resources associated with the parser.  Iteration will not work after this
-     * has been called.
-     */
-    public void close() {
-        parser.close();
-    }
-
-    public int getCurrentLineNumber() {
-        return parser.getCurrentLineNumber();
-    }
-
-    public Set<String> getColumnNames() {
-        return Collections.unmodifiableSet(this.columnLabelIndices.keySet());
-    }
-}
diff --git a/src/java/net/sf/picard/util/UnsignedTypeUtil.java b/src/java/net/sf/picard/util/UnsignedTypeUtil.java
deleted file mode 100644
index 6634e12..0000000
--- a/src/java/net/sf/picard/util/UnsignedTypeUtil.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package net.sf.picard.util;
-
-/**
- * A utility class for dealing with unsigned types.  This class is primarily used for promoting a value in an unsigned type to
- * the same value in the net larger type of the same form (e.g. Integer to Long)
- */
-public class UnsignedTypeUtil {
-
-    /** Convert an unsigned byte to a signed int */
-    public static int uByteToInt(final byte unsignedByte) {
-        return unsignedByte & 0xFF;
-    }
-
-    /** Convert an unsigned byte to a signed short */
-    public static int uByteToShort(final byte unsignedByte) {
-        return (short) unsignedByte & 0xFF;
-    }
-
-    /** Convert an unsigned short to an Int */
-    public static int uShortToInt(final short unsignedShort) {
-        return unsignedShort & 0xFFFF;
-    }
-
-    /** Convert an unsigned int to a long */
-    public static long uIntToLong(final int unsignedInt) {
-        return unsignedInt & 0xFFFFFFFFL;
-    }
-}
diff --git a/src/java/net/sf/picard/util/WholeGenomeReferenceSequenceMask.java b/src/java/net/sf/picard/util/WholeGenomeReferenceSequenceMask.java
deleted file mode 100644
index ca24f06..0000000
--- a/src/java/net/sf/picard/util/WholeGenomeReferenceSequenceMask.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.util;
-
-import net.sf.samtools.SAMFileHeader;
-import net.sf.samtools.SAMSequenceRecord;
-
-/**
- * Implementation of ReferenceSequenceMask that indicates that all the loci in the sequence dictionary are of interest.
- * @author alecw at broadinstitute dot org
- */
-public class WholeGenomeReferenceSequenceMask implements ReferenceSequenceMask {
-
-    SAMFileHeader header;
-
-    public WholeGenomeReferenceSequenceMask(final SAMFileHeader header) {
-        this.header = header;
-    }
-
-    /**
-     * @return true if the mask is set for the given sequence and position
-     */
-    public boolean get(final int sequenceIndex, final int position) {
-        if (sequenceIndex < 0) {
-            throw new IllegalArgumentException("Negative sequence index " + sequenceIndex);
-        }
-        if (sequenceIndex >= header.getSequenceDictionary().size()) {
-            return false;
-        }
-        final SAMSequenceRecord sequenceRecord = header.getSequence(sequenceIndex);
-        return position <= sequenceRecord.getSequenceLength();
-    }
-
-    /**
-     * @return the next pos on the given sequence >= position that is set, or -1 if there are no more set positions
-     */
-    public int nextPosition(final int sequenceIndex, final int position) {
-        if (get(sequenceIndex, position + 1)) {
-            return position + 1;
-        } else {
-            return -1;
-        }
-    }
-
-    /**
-     * @return Largest sequence index for which there are set bits.
-     */
-    public int getMaxSequenceIndex() {
-        return header.getSequenceDictionary().size() - 1;
-    }
-
-    /**
-     * @return the largest position on the last sequence index
-     */
-    public int getMaxPosition() {
-        SAMSequenceRecord lastSequenceRecord = header.getSequence(getMaxSequenceIndex());
-        return lastSequenceRecord.getSequenceLength();
-    }
-}
diff --git a/src/java/net/sf/picard/vcf/MakeSitesOnlyVcf.java b/src/java/net/sf/picard/vcf/MakeSitesOnlyVcf.java
deleted file mode 100644
index 2f81e3b..0000000
--- a/src/java/net/sf/picard/vcf/MakeSitesOnlyVcf.java
+++ /dev/null
@@ -1,105 +0,0 @@
-package net.sf.picard.vcf;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.StandardOptionDefinitions;
-import net.sf.picard.cmdline.Usage;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.util.Log;
-import net.sf.picard.util.ProgressLogger;
-import net.sf.samtools.SAMSequenceDictionary;
-import net.sf.samtools.util.CloseableIterator;
-import net.sf.samtools.util.CloserUtil;
-import org.broadinstitute.variant.variantcontext.GenotypesContext;
-import org.broadinstitute.variant.variantcontext.VariantContext;
-import org.broadinstitute.variant.variantcontext.VariantContextBuilder;
-import org.broadinstitute.variant.variantcontext.writer.Options;
-import org.broadinstitute.variant.variantcontext.writer.VariantContextWriter;
-import org.broadinstitute.variant.variantcontext.writer.VariantContextWriterBuilder;
-import org.broadinstitute.variant.vcf.*;
-
-import java.io.File;
-import java.util.*;
-
-/**
- * Writes out a VCF that contains all the site-level information for all records in the input VCF and no per-sample information.
- *
- * @author Tim Fennell
- */
-public class MakeSitesOnlyVcf extends CommandLineProgram {
-    @Usage
-    public final String usage = "Reads a VCF/VCF.gz/BCF and removes all genotype information from it while retaining " +
-            "all site level information, including annotations based on genotypes (e.g. AN, AF). Output an be " +
-            "any support variant format including .vcf, .vcf.gz or .bcf.";
-
-    @Option(shortName= StandardOptionDefinitions.INPUT_SHORT_NAME, doc="Input VCF or BCF")
-    public File INPUT;
-
-    @Option(shortName=StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc="Output VCF or BCF to emit without per-sample info.")
-    public File OUTPUT;
-
-    @Option(shortName="S", doc="Optionally one or more samples to retain when building the 'sites-only' VCF.", optional=true)
-    public Set<String> SAMPLE = new TreeSet<String>();
-
-    // Stock main method
-    public static void main(final String[] args) {
-        new MakeSitesOnlyVcf().instanceMainWithExit(args);
-    }
-
-	public MakeSitesOnlyVcf() {
-		CREATE_INDEX = true;
-	}
-
-    @Override
-    protected int doWork() {
-        IoUtil.assertFileIsReadable(INPUT);
-        IoUtil.assertFileIsWritable(OUTPUT);
-
-	    final VCFFileReader reader = new VCFFileReader(INPUT, false);
-	    final VCFHeader inputVcfHeader = new VCFHeader(reader.getFileHeader().getMetaDataInInputOrder());
-	    final SAMSequenceDictionary sequenceDictionary = inputVcfHeader.getSequenceDictionary();
-
-	    if (CREATE_INDEX && sequenceDictionary == null) {
-		    throw new PicardException("A sequence dictionary must be available (either through the input file or by setting it explicitly) when creating indexed output.");
-	    }
-
-        final ProgressLogger progress = new ProgressLogger(Log.getInstance(MakeSitesOnlyVcf.class), 10000);
-
-        // Setup the site-only file writer
-        final VariantContextWriterBuilder builder = new VariantContextWriterBuilder()
-                .setOutputFile(OUTPUT)
-                .setReferenceDictionary(sequenceDictionary);
-        if (CREATE_INDEX)
-            builder.setOption(Options.INDEX_ON_THE_FLY);
-        else
-            builder.unsetOption(Options.INDEX_ON_THE_FLY);
-        final VariantContextWriter writer = builder.build();
-
-        final VCFHeader header = new VCFHeader(inputVcfHeader.getMetaDataInInputOrder(), SAMPLE);
-        writer.writeHeader(header);
-
-        // Go through the input, strip the records and write them to the output
-        final CloseableIterator<VariantContext> iterator = reader.iterator();
-	    while (iterator.hasNext()) {
-		    final VariantContext full = iterator.next();
-            final VariantContext site = subsetToSamplesWithOriginalAnnotations(full, SAMPLE);
-            writer.add(site);
-            progress.record(site.getChr(), site.getStart());
-        }
-
-	    CloserUtil.close(iterator);
-	    CloserUtil.close(reader);
-	    writer.close();
-
-        return 0;
-    }
-
-    /** Makes a new VariantContext with only the desired samples. */
-    private static VariantContext subsetToSamplesWithOriginalAnnotations(final VariantContext ctx, final Set<String> samples) {
-        final VariantContextBuilder builder = new VariantContextBuilder(ctx);
-        final GenotypesContext newGenotypes = ctx.getGenotypes().subsetToSamples(samples);
-        builder.alleles(ctx.getAlleles());
-        return builder.genotypes(newGenotypes).make();
-    }
-}
diff --git a/src/java/net/sf/picard/vcf/MergeVcfs.java b/src/java/net/sf/picard/vcf/MergeVcfs.java
deleted file mode 100644
index 918f9f1..0000000
--- a/src/java/net/sf/picard/vcf/MergeVcfs.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2012 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.vcf;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.cmdline.CommandLineParser;
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.StandardOptionDefinitions;
-import net.sf.picard.cmdline.Usage;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.util.Log;
-import net.sf.picard.util.MergingIterator;
-import net.sf.picard.util.ProgressLogger;
-import net.sf.samtools.SAMFileReader;
-import net.sf.samtools.SAMSequenceDictionary;
-import net.sf.samtools.util.CloseableIterator;
-import net.sf.samtools.util.CloserUtil;
-import org.broadinstitute.variant.variantcontext.VariantContext;
-import org.broadinstitute.variant.variantcontext.VariantContextComparator;
-import org.broadinstitute.variant.variantcontext.writer.Options;
-import org.broadinstitute.variant.variantcontext.writer.VariantContextWriter;
-import org.broadinstitute.variant.variantcontext.writer.VariantContextWriterBuilder;
-import org.broadinstitute.variant.vcf.VCFFileReader;
-import org.broadinstitute.variant.vcf.VCFHeader;
-import org.broadinstitute.variant.vcf.VCFUtils;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.EnumSet;
-import java.util.HashSet;
-import java.util.List;
-
-/**
- * Combines multiple VCF files into a single file. Input files must be sorted by their contigs
- * and, within contigs, by start position. Throws IllegalArgumentException if the contig lists
- * are not present in the input files, are not identical or if the sample lists are not the
- * same; this class uses the GATK to merge headers, which may throw exceptions if the headers
- * cannot be merged. See VCFUtils.smartMergeHeaders for details.
- *
- * An index file is created for the output file by default. Using an output file name with a
- * ".gz" extension will create gzip-compressed output.
- */
-public class MergeVcfs extends CommandLineProgram {
-
-	@Usage
-	public final String USAGE =
-			CommandLineParser.getStandardUsagePreamble(getClass()) +
-			"Merges multiple VCF or BCF files into one VCF file. Input files must be sorted by their contigs " +
-			"and, within contigs, by start position. The input files must have the same sample and " +
-			"contig lists. An index file is created and a sequence dictionary is required by default.";
-
-	@Option(shortName= StandardOptionDefinitions.INPUT_SHORT_NAME, doc="VCF or BCF input files File format is determined by file extension.", minElements=1)
-	public List<File> INPUT;
-
-	@Option(shortName=StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc="The merged VCF or BCF file. File format is determined by file extension.")
-	public File OUTPUT;
-
-	@Option(shortName="D", doc="The index sequence dictionary to use instead of the sequence dictionary in the input file", optional = true)
-	public File SEQUENCE_DICTIONARY;
-
-	private final Log log = Log.getInstance(MergeVcfs.class);
-
-	public static void main(final String[] argv) {
-		new MergeVcfs().instanceMainWithExit(argv);
-	}
-
-	public MergeVcfs() {
-		this.CREATE_INDEX = true;
-	}
-
-	@Override
-	protected int doWork() {
-		final ProgressLogger progress = new ProgressLogger(log, 10000);
-		final List<String> sampleList = new ArrayList<String>();
-		final Collection<CloseableIterator<VariantContext>> iteratorCollection = new ArrayList<CloseableIterator<VariantContext>>(INPUT.size());
-		final Collection<VCFHeader> headers = new HashSet<VCFHeader>(INPUT.size());
-
-		VariantContextComparator variantContextComparator = null;
-		SAMSequenceDictionary sequenceDictionary = null;
-
-		if (SEQUENCE_DICTIONARY != null) sequenceDictionary = SAMFileReader.getSequenceDictionary(SEQUENCE_DICTIONARY);
-
-		for (final File file : INPUT) {
-			IoUtil.assertFileIsReadable(file);
-			final VCFFileReader fileReader = new VCFFileReader(file);
-			final VCFHeader fileHeader = fileReader.getFileHeader();
-
-			if (variantContextComparator == null) {
-				variantContextComparator = fileHeader.getVCFRecordComparator();
-			} else {
-				if ( ! variantContextComparator.isCompatible(fileHeader.getContigLines())) {
-					throw new IllegalArgumentException(
-							"The contig entries in input file " + file.getAbsolutePath() + " are not compatible with the others.");
-				}
-			}
-
-			if (sequenceDictionary == null) sequenceDictionary = fileHeader.getSequenceDictionary();
-
-			if (sampleList.isEmpty()) {
-				sampleList.addAll(fileHeader.getSampleNamesInOrder());
-			} else {
-				if ( ! sampleList.equals(fileHeader.getSampleNamesInOrder())) {
-					throw new IllegalArgumentException("Input file " + file.getAbsolutePath() + " has sample entries that don't match the other files.");
-				}
-			}
-
-			headers.add(fileHeader);
-			iteratorCollection.add(fileReader.iterator());
-		}
-
-		if (CREATE_INDEX && sequenceDictionary == null) {
-			throw new PicardException("A sequence dictionary must be available (either through the input file or by setting it explicitly) when creating indexed output.");
-		}
-
-        final VariantContextWriterBuilder builder = new VariantContextWriterBuilder()
-                .setOutputFile(OUTPUT)
-                .setReferenceDictionary(sequenceDictionary)
-                .clearOptions();
-        if (CREATE_INDEX)
-            builder.setOption(Options.INDEX_ON_THE_FLY);
-        final VariantContextWriter writer = builder.build();
-
-		writer.writeHeader(new VCFHeader(VCFUtils.smartMergeHeaders(headers, false), sampleList));
-
-		final MergingIterator<VariantContext> mergingIterator = new MergingIterator<VariantContext>(variantContextComparator, iteratorCollection);
-		while (mergingIterator.hasNext()) {
-			final VariantContext context = mergingIterator.next();
-			writer.add(context);
-			progress.record(context.getChr(), context.getStart());
-		}
-
-		CloserUtil.close(mergingIterator);
-		writer.close();
-		return 0;
-	}
-}
diff --git a/src/java/net/sf/picard/vcf/SplitVcfs.java b/src/java/net/sf/picard/vcf/SplitVcfs.java
deleted file mode 100644
index 971a7b2..0000000
--- a/src/java/net/sf/picard/vcf/SplitVcfs.java
+++ /dev/null
@@ -1,120 +0,0 @@
-package net.sf.picard.vcf;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.cmdline.CommandLineParser;
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.StandardOptionDefinitions;
-import net.sf.picard.cmdline.Usage;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.util.Log;
-import net.sf.picard.util.ProgressLogger;
-import net.sf.samtools.SAMFileReader;
-import net.sf.samtools.SAMSequenceDictionary;
-import net.sf.samtools.util.CloseableIterator;
-import net.sf.samtools.util.CloserUtil;
-import org.broadinstitute.variant.variantcontext.VariantContext;
-import org.broadinstitute.variant.variantcontext.writer.Options;
-import org.broadinstitute.variant.variantcontext.writer.VariantContextWriter;
-import org.broadinstitute.variant.variantcontext.writer.VariantContextWriterBuilder;
-import org.broadinstitute.variant.vcf.VCFFileReader;
-import org.broadinstitute.variant.vcf.VCFHeader;
-
-import java.io.File;
-import java.util.EnumSet;
-
-/**
- * Splits the input VCF file into two, one for indels and one for SNPs. The headers of the two output
- * files will be identical.
- *
- * An index file is created for the output file by default. Using an output file name with a ".gz"
- * extension will create gzip-compressed output.
- */
-public class SplitVcfs extends CommandLineProgram {
-
-	@Usage
-	public final String USAGE =
-			CommandLineParser.getStandardUsagePreamble(getClass()) +
-			"Splits an input VCF or BCF file into two VCF files, one for indel records and one for SNPs. The" +
-			"headers of the two output files will be identical. An index file is created and a" +
-			"sequence dictionary is required by default.";
-
-	@Option(shortName = StandardOptionDefinitions.INPUT_SHORT_NAME, doc="The VCF or BCF input file")
-	public File INPUT;
-
-	@Option(doc="The VCF or BCF file to which SNP records should be written. The file format is determined by file extension.")
-	public File SNP_OUTPUT;
-
-	@Option(doc="The VCF or BCF file to which indel records should be written. The file format is determined by file extension.")
-	public File INDEL_OUTPUT;
-
-	@Option(shortName="D", doc="The index sequence dictionary to use instead of the sequence dictionaries in the input files", optional = true)
-	public File SEQUENCE_DICTIONARY;
-
-    @Option(doc="If true an exception will be thrown if an event type other than SNP or indel is encountered")
-    public Boolean STRICT = true;
-
-	private final Log log = Log.getInstance(SplitVcfs.class);
-
-	public static void main(final String[] argv) {
-		new SplitVcfs().instanceMainWithExit(argv);
-	}
-
-	public SplitVcfs() {
-		this.CREATE_INDEX = true;
-	}
-
-	@Override
-	protected int doWork() {
-		IoUtil.assertFileIsReadable(INPUT);
-		final ProgressLogger progress = new ProgressLogger(log, 10000);
-
-		final VCFFileReader fileReader = new VCFFileReader(INPUT);
-		final VCFHeader fileHeader = fileReader.getFileHeader();
-
-		final SAMSequenceDictionary sequenceDictionary =
-				SEQUENCE_DICTIONARY != null
-						? SAMFileReader.getSequenceDictionary(SEQUENCE_DICTIONARY)
-						: fileHeader.getSequenceDictionary();
-		if (CREATE_INDEX && sequenceDictionary == null) {
-			throw new PicardException("A sequence dictionary must be available (either through the input file or by setting it explicitly) when creating indexed output.");
-		}
-
-        final VariantContextWriterBuilder builder = new VariantContextWriterBuilder()
-                .setReferenceDictionary(sequenceDictionary)
-                .clearOptions();
-        if (CREATE_INDEX)
-            builder.setOption(Options.INDEX_ON_THE_FLY);
-
-		final VariantContextWriter snpWriter = builder.setOutputFile(SNP_OUTPUT).build();
-		final VariantContextWriter indelWriter = builder.setOutputFile(INDEL_OUTPUT).build();
-		snpWriter.writeHeader(fileHeader);
-		indelWriter.writeHeader(fileHeader);
-
-        int incorrectVariantCount = 0;
-
-		final CloseableIterator<VariantContext> iterator = fileReader.iterator();
-		while (iterator.hasNext()) {
-			final VariantContext context = iterator.next();
-			if (context.isIndel()) indelWriter.add(context);
-			else if (context.isSNP()) snpWriter.add(context);
-			else {
-                if (STRICT) throw new IllegalStateException("Found a record with type " + context.getType().name());
-                else incorrectVariantCount++;
-            }
-
-            progress.record(context.getChr(), context.getStart());
-		}
-
-        if (incorrectVariantCount > 0) {
-            log.debug("Found " + incorrectVariantCount + " records that didn't match SNP or INDEL");
-        }
-
-		CloserUtil.close(iterator);
-		CloserUtil.close(fileReader);
-		snpWriter.close();
-		indelWriter.close();
-
-		return 0;
-	}
-}
diff --git a/src/java/net/sf/picard/vcf/VcfFormatConverter.java b/src/java/net/sf/picard/vcf/VcfFormatConverter.java
deleted file mode 100644
index fc87825..0000000
--- a/src/java/net/sf/picard/vcf/VcfFormatConverter.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
-* Copyright (c) 2013 The Broad Institute
-*
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-*
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package net.sf.picard.vcf;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.cmdline.StandardOptionDefinitions;
-import net.sf.picard.cmdline.Usage;
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.util.Log;
-import net.sf.picard.util.ProgressLogger;
-import net.sf.samtools.SAMSequenceDictionary;
-import net.sf.samtools.util.CloseableIterator;
-import net.sf.samtools.util.CloserUtil;
-import org.broadinstitute.variant.variantcontext.VariantContext;
-import org.broadinstitute.variant.variantcontext.writer.Options;
-import org.broadinstitute.variant.variantcontext.writer.VariantContextWriter;
-import org.broadinstitute.variant.variantcontext.writer.VariantContextWriterBuilder;
-import org.broadinstitute.variant.vcf.VCFFileReader;
-import org.broadinstitute.variant.vcf.VCFHeader;
-
-import java.io.File;
-import java.util.EnumSet;
-
-/**
- * Converts an ASCII VCF file to a binary BCF or vice versa.
- *
- * @author jgentry at broadinstitute.org
- */
-public class VcfFormatConverter extends CommandLineProgram {
-    // The following attributes define the command-line arguments
-    public static final Log LOG = Log.getInstance(VcfFormatConverter.class);
-    
-    @Usage
-    public String USAGE = getStandardUsagePreamble() +
-		    "Convert a VCF file to a BCF file, or BCF to VCF.\n" + "" +
-            "Input and output formats are determined by file extension.";
-
-    @Option(doc="The BCF or VCF input file. The file format is determined by file extension.", shortName= StandardOptionDefinitions.INPUT_SHORT_NAME)
-    public File INPUT;
-
-    @Option(doc="The BCF or VCF output file. The file format is determined by file extension.", shortName=StandardOptionDefinitions.OUTPUT_SHORT_NAME)
-    public File OUTPUT;
-
-	@Option(doc="Fail if an index is not available for the input VCF/BCF")
-	public Boolean REQUIRE_INDEX = true;
-
-    public static void main(final String[] argv) {
-        new VcfFormatConverter().instanceMainWithExit(argv);
-    }
-
-	public VcfFormatConverter() {
-		this.CREATE_INDEX = true;
-	}
-
-    @Override
-    protected int doWork() {
-        final ProgressLogger progress = new ProgressLogger(LOG, 10000);
-        
-        IoUtil.assertFileIsReadable(INPUT);
-        IoUtil.assertFileIsWritable(OUTPUT);
-
-	    final VCFFileReader reader = new VCFFileReader(INPUT, REQUIRE_INDEX);
-	    final VCFHeader header = new VCFHeader(reader.getFileHeader());
-	    final SAMSequenceDictionary sequenceDictionary = header.getSequenceDictionary();
-	    if (CREATE_INDEX && sequenceDictionary == null) {
-		    throw new PicardException("A sequence dictionary must be available in the input file when creating indexed output.");
-	    }
-
-        final VariantContextWriterBuilder builder = new VariantContextWriterBuilder()
-                .setOutputFile(OUTPUT)
-                .setReferenceDictionary(sequenceDictionary);
-        if (CREATE_INDEX)
-            builder.setOption(Options.INDEX_ON_THE_FLY);
-        else
-            builder.unsetOption(Options.INDEX_ON_THE_FLY);
-        final VariantContextWriter writer = builder.build();
-        writer.writeHeader(header);
-	    final CloseableIterator<VariantContext> iterator = reader.iterator();
-
-	    while (iterator.hasNext()) {
-		    final VariantContext context = iterator.next();
-            writer.add(context);
-            progress.record(context.getChr(), context.getStart());
-        }
-
-	    CloserUtil.close(iterator);
-	    CloserUtil.close(reader);
-        writer.close();
-
-        return 0;
-    }
-}
diff --git a/src/java/net/sf/samtools/AbstractBAMFileIndex.java b/src/java/net/sf/samtools/AbstractBAMFileIndex.java
deleted file mode 100644
index a3a41e5..0000000
--- a/src/java/net/sf/samtools/AbstractBAMFileIndex.java
+++ /dev/null
@@ -1,636 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import net.sf.samtools.util.RuntimeIOException;
-import net.sf.samtools.seekablestream.SeekableStream;
-
-import java.io.*;
-import java.nio.channels.FileChannel;
-import java.nio.MappedByteBuffer;
-import java.nio.ByteOrder;
-import java.nio.ByteBuffer;
-import java.util.*;
-
-/**
- * Provides basic, generic capabilities to be used reading BAM index files.  Users can
- * subclass this class to create new BAM index functionality for adding querying facilities,
- * changing caching behavior, etc.
- *
- * Of particular note: the AbstractBAMFileIndex is, by design, the only class aware of the
- * details of the BAM index file format (other than the four classes representing the data,
- * BAMIndexContent, Bin, Chunk, LinearIndex, and the classes for building the BAM index).
- * Anyone wanting to implement a reader for a differing
- * or extended BAM index format should implement BAMIndex directly.
- */
-public abstract class AbstractBAMFileIndex implements BAMIndex {
-
-    private final IndexFileBuffer mIndexBuffer;
-
-    private SAMSequenceDictionary mBamDictionary = null;
-
-    protected AbstractBAMFileIndex(
-        final SeekableStream stream, final SAMSequenceDictionary dictionary)
-    {
-        mBamDictionary = dictionary;
-        mIndexBuffer = new IndexStreamBuffer(stream);
-    }
-
-    protected AbstractBAMFileIndex(final File file, final SAMSequenceDictionary dictionary) {
-        this(file, dictionary, true);
-    }
-
-    protected AbstractBAMFileIndex(final File file, final SAMSequenceDictionary dictionary, final boolean useMemoryMapping) {
-        mBamDictionary = dictionary;
-        mIndexBuffer = (useMemoryMapping ? new MemoryMappedFileBuffer(file) : new RandomAccessFileBuffer(file));
-
-        // Verify the magic number.
-        seek(0);
-        final byte[] buffer = new byte[4];
-        readBytes(buffer);
-        if (!Arrays.equals(buffer, BAMFileConstants.BAM_INDEX_MAGIC)) {
-            throw new RuntimeException("Invalid file header in BAM index " + file +
-                                       ": " + new String(buffer));
-        }
-    }
-
-    /**
-     * Close this index and release any associated resources.
-     */
-    public void close() {
-        mIndexBuffer.close();
-    }
-
-    /**
-     * Get the number of levels employed by this index.
-     * @return Number of levels in this index.
-     */
-    public static int getNumIndexLevels() {
-        return GenomicIndexUtil.LEVEL_STARTS.length;
-    }
-
-    /**
-     * Gets the first bin in the given level.
-     * @param levelNumber Level number.  0-based.
-     * @return The first bin in this level.
-     */
-    public static int getFirstBinInLevel(final int levelNumber) {
-        return GenomicIndexUtil.LEVEL_STARTS[levelNumber];
-    }
-
-    /**
-     * Gets the number of bins in the given level.
-     * @param levelNumber Level number.  0-based.
-     * @return The size (number of possible bins) of the given level.
-     */
-    public int getLevelSize(final int levelNumber) {
-        if(levelNumber == getNumIndexLevels())
-            return GenomicIndexUtil.MAX_BINS+1-GenomicIndexUtil.LEVEL_STARTS[levelNumber];
-        else
-            return GenomicIndexUtil.LEVEL_STARTS[levelNumber+1]-GenomicIndexUtil.LEVEL_STARTS[levelNumber];
-    }
-
-    /**
-     * Gets the level associated with the given bin number.
-     * @param bin The bin  for which to determine the level.
-     * @return the level associated with the given bin number.
-     */
-    public int getLevelForBin(final Bin bin) {
-        if(bin.getBinNumber() >= GenomicIndexUtil.MAX_BINS)
-            throw new SAMException("Tried to get level for invalid bin.");
-        for(int i = getNumIndexLevels()-1; i >= 0; i--) {
-            if(bin.getBinNumber() >= GenomicIndexUtil.LEVEL_STARTS[i])
-                return i;
-        }
-        throw new SAMException("Unable to find correct bin for bin "+bin);
-    }
-
-    /**
-     * Gets the first locus that this bin can index into.
-     * @param bin The bin to test.
-     * @return The last position that the given bin can represent.
-     */
-    public int getFirstLocusInBin(final Bin bin) {
-        final int level = getLevelForBin(bin);
-        final int levelStart = GenomicIndexUtil.LEVEL_STARTS[level];
-        final int levelSize = ((level==getNumIndexLevels()-1) ? GenomicIndexUtil.MAX_BINS-1 : GenomicIndexUtil.LEVEL_STARTS[level+1]) - levelStart;
-        return (bin.getBinNumber() - levelStart)*(GenomicIndexUtil.BIN_GENOMIC_SPAN /levelSize)+1;
-    }
-
-    /**
-     * Gets the last locus that this bin can index into.
-     * @param bin The bin to test.
-     * @return The last position that the given bin can represent.
-     */
-    public int getLastLocusInBin(final Bin bin) {
-        final int level = getLevelForBin(bin);
-        final int levelStart = GenomicIndexUtil.LEVEL_STARTS[level];
-        final int levelSize = ((level==getNumIndexLevels()-1) ? GenomicIndexUtil.MAX_BINS-1 : GenomicIndexUtil.LEVEL_STARTS[level+1]) - levelStart;
-        return (bin.getBinNumber()-levelStart+1)*(GenomicIndexUtil.BIN_GENOMIC_SPAN /levelSize);
-    }
-
-    public int getNumberOfReferences() {
-        seek(4);
-        return readInteger();
-    }
-
-    /**
-     * Use to get close to the unmapped reads at the end of a BAM file.
-     * @return The file offset of the first record in the last linear bin, or -1
-     * if there are no elements in linear bins (i.e. no mapped reads).
-     */
-    public long getStartOfLastLinearBin() {
-        seek(4);
-
-        final int sequenceCount = readInteger();
-        // Because no reads may align to the last sequence in the sequence dictionary,
-        // grab the last element of the linear index for each sequence, and return
-        // the last one from the last sequence that has one.
-        long lastLinearIndexPointer = -1;
-        for (int i = 0; i < sequenceCount; i++) {
-            // System.out.println("# Sequence TID: " + i);
-            final int nBins = readInteger();
-            // System.out.println("# nBins: " + nBins);
-            for (int j1 = 0; j1 < nBins; j1++) {
-                // Skip bin #
-                skipBytes(4);
-                final int nChunks = readInteger();
-                // Skip chunks
-                skipBytes(16 * nChunks);
-            }
-            final int nLinearBins = readInteger();
-            if (nLinearBins > 0) {
-                // Skip to last element of list of linear bins
-                skipBytes(8 * (nLinearBins - 1));
-                lastLinearIndexPointer = readLong();
-            }
-        }
-
-        return lastLinearIndexPointer;
-    }
-
-    /**
-     * Return meta data for the given reference including information about number of aligned, unaligned, and noCoordinate records
-     *
-     * @param reference the reference of interest
-     * @return meta data for the reference
-     */
-    public BAMIndexMetaData getMetaData(final int reference) {
-        seek(4);
-
-        final List<Chunk> metaDataChunks = new ArrayList<Chunk>();
-
-        final int sequenceCount = readInteger();
-
-        if (reference >= sequenceCount) {
-            return null;
-        }
-
-        skipToSequence(reference);
-
-        final int binCount = readInteger();
-        for (int binNumber = 0; binNumber < binCount; binNumber++) {
-            final int indexBin = readInteger();
-            final int nChunks = readInteger();
-            if (indexBin == GenomicIndexUtil.MAX_BINS) {
-                for (int ci = 0; ci < nChunks; ci++) {
-                    final long chunkBegin = readLong();
-                    final long chunkEnd = readLong();
-                    metaDataChunks.add(new Chunk(chunkBegin, chunkEnd));
-                }
-            } else {
-                skipBytes(16 * nChunks);
-            }
-        }
-        return new BAMIndexMetaData(metaDataChunks);
-    }
-
-    /**
-     * Returns count of records unassociated with any reference. Call before the index file is closed
-     *
-     * @return meta data at the end of the bam index that indicates count of records holding no coordinates
-     * or null if no meta data (old index format)
-     */
-    public Long getNoCoordinateCount() {
-
-        seek(4);
-        final int sequenceCount = readInteger();
-
-        skipToSequence(sequenceCount);
-        try { // in case of old index file without meta data
-            return readLong();
-        } catch (final Exception e) {
-            return null;
-        }
-    }
-
-    protected BAMIndexContent query(final int referenceSequence, final int startPos, final int endPos) {
-        seek(4);
-
-        final List<Chunk> metaDataChunks = new ArrayList<Chunk>();
-
-        final int sequenceCount = readInteger();
-
-        if (referenceSequence >= sequenceCount) {
-            return null;
-        }
-
-        final BitSet regionBins = GenomicIndexUtil.regionToBins(startPos, endPos);
-        if (regionBins == null) {
-            return null;
-        }
-
-        skipToSequence(referenceSequence);
-
-        final int binCount = readInteger();
-        boolean metaDataSeen = false;
-        final Bin[] bins = new Bin[getMaxBinNumberForReference(referenceSequence) +1];
-        for (int binNumber = 0; binNumber < binCount; binNumber++) {
-            final int indexBin = readInteger();
-            final int nChunks = readInteger();
-            final List<Chunk> chunks = new ArrayList<Chunk>(nChunks);
-            // System.out.println("# bin[" + i + "] = " + indexBin + ", nChunks = " + nChunks);
-            Chunk lastChunk = null;
-            if (regionBins.get(indexBin)) {
-                for (int ci = 0; ci < nChunks; ci++) {
-                    final long chunkBegin = readLong();
-                    final long chunkEnd = readLong();
-                    lastChunk = new Chunk(chunkBegin, chunkEnd);
-                    chunks.add(lastChunk);
-                }
-            } else if (indexBin == GenomicIndexUtil.MAX_BINS) {
-                // meta data - build the bin so that the count of bins is correct;
-                // but don't attach meta chunks to the bin, or normal queries will be off
-                for (int ci = 0; ci < nChunks; ci++) {
-                    final long chunkBegin = readLong();
-                    final long chunkEnd = readLong();
-                    lastChunk = new Chunk(chunkBegin, chunkEnd);
-                    metaDataChunks.add(lastChunk);
-                }
-                metaDataSeen = true;
-                continue; // don't create a Bin
-            } else {
-                skipBytes(16 * nChunks);
-            }
-            final Bin bin = new Bin(referenceSequence, indexBin);
-            bin.setChunkList(chunks);
-            bin.setLastChunk(lastChunk);
-            bins[indexBin] = bin;
-        }
-
-        final int nLinearBins = readInteger();
-
-        final int regionLinearBinStart = LinearIndex.convertToLinearIndexOffset(startPos);
-        final int regionLinearBinStop = endPos > 0 ? LinearIndex.convertToLinearIndexOffset(endPos) : nLinearBins-1;
-        final int actualStop = Math.min(regionLinearBinStop, nLinearBins -1);
-
-        long[] linearIndexEntries = new long[0];
-        if (regionLinearBinStart < nLinearBins) {
-            linearIndexEntries = new long[actualStop-regionLinearBinStart+1];
-            skipBytes(8 * regionLinearBinStart);
-            for(int linearBin = regionLinearBinStart; linearBin <= actualStop; linearBin++)
-                linearIndexEntries[linearBin-regionLinearBinStart] = readLong();
-        }
-
-        final LinearIndex linearIndex = new LinearIndex(referenceSequence,regionLinearBinStart,linearIndexEntries);
-
-        return new BAMIndexContent(referenceSequence, bins, binCount - (metaDataSeen? 1 : 0), new BAMIndexMetaData(metaDataChunks), linearIndex);
-    }
-
-    /**
-     * The maximum possible bin number for this reference sequence.
-     * This is based on the maximum coordinate position of the reference
-     * which is based on the size of the reference
-     */
-    private int getMaxBinNumberForReference(final int reference) {
-        try {
-            final int sequenceLength = mBamDictionary.getSequence(reference).getSequenceLength();
-            return getMaxBinNumberForSequenceLength(sequenceLength);
-        } catch (final Exception e) {
-            return GenomicIndexUtil.MAX_BINS;
-        }
-    }
-
-    /**
-     * The maxiumum bin number for a reference sequence of a given length
-     */
-    static int getMaxBinNumberForSequenceLength(final int sequenceLength) {
-        return getFirstBinInLevel(getNumIndexLevels() - 1) + (sequenceLength >> 14);
-        // return 4680 + (sequenceLength >> 14); // note 4680 = getFirstBinInLevel(getNumIndexLevels() - 1)
-    }
-
-    abstract protected BAMIndexContent getQueryResults(int reference);
-
-    /**
-     * Gets the possible number of bins for a given reference sequence.
-     * @return How many bins could possibly be used according to this indexing scheme to index a single contig.
-     */
-    protected int getMaxAddressibleGenomicLocation() {
-        return GenomicIndexUtil.BIN_GENOMIC_SPAN;
-    }
-
-    /**
-     * Get candidate bins for the specified region
-     * @param startPos 1-based start of target region, inclusive.
-     * @param endPos 1-based end of target region, inclusive.
-     * @return bit set for each bin that may contain SAMRecords in the target region.
-     */
-    protected BitSet regionToBins(final int startPos, final int endPos) {
-        final int maxPos = 0x1FFFFFFF;
-        final int start = (startPos <= 0) ? 0 : (startPos-1) & maxPos;
-        final int end = (endPos <= 0) ? maxPos : (endPos-1) & maxPos;
-        if (start > end) {
-            return null;
-        }
-        int k;
-        final BitSet bitSet = new BitSet(GenomicIndexUtil.MAX_BINS);
-        bitSet.set(0);
-        for (k =    1 + (start>>26); k <=    1 + (end>>26); ++k) bitSet.set(k);
-        for (k =    9 + (start>>23); k <=    9 + (end>>23); ++k) bitSet.set(k);
-        for (k =   73 + (start>>20); k <=   73 + (end>>20); ++k) bitSet.set(k);
-        for (k =  585 + (start>>17); k <=  585 + (end>>17); ++k) bitSet.set(k);
-        for (k = 4681 + (start>>14); k <= 4681 + (end>>14); ++k) bitSet.set(k);
-        return bitSet;
-    }
-
-    /**
-     * @deprecated Invoke net.sf.samtools.Chunk#optimizeChunkList(java.util.List<net.sf.samtools.Chunk>, long) directly.
-     */
-    protected List<Chunk> optimizeChunkList(final List<Chunk> chunks, final long minimumOffset) {
-        return Chunk.optimizeChunkList(chunks, minimumOffset);
-    }
-
-    private void skipToSequence(final int sequenceIndex) {
-        for (int i = 0; i < sequenceIndex; i++) {
-            // System.out.println("# Sequence TID: " + i);
-            final int nBins = readInteger();
-            // System.out.println("# nBins: " + nBins);
-            for (int j = 0; j < nBins; j++) {
-                readInteger(); // bin
-                final int nChunks = readInteger();
-                // System.out.println("# bin[" + j + "] = " + bin + ", nChunks = " + nChunks);
-                skipBytes(16 * nChunks);
-            }
-            final int nLinearBins = readInteger();
-            // System.out.println("# nLinearBins: " + nLinearBins);
-            skipBytes(8 * nLinearBins);
-        }
-    }
-
-    private void readBytes(final byte[] bytes) {
-        mIndexBuffer.readBytes(bytes);
-    }
-
-    private int readInteger() {
-        return mIndexBuffer.readInteger();
-    }
-
-    private long readLong() {
-        return mIndexBuffer.readLong();
-    }
-
-    private void skipBytes(final int count) {
-        mIndexBuffer.skipBytes(count);
-    }
-
-    private void seek(final int position) {
-        mIndexBuffer.seek(position);
-    }
-
-    private abstract static class IndexFileBuffer {
-        abstract void readBytes(final byte[] bytes);
-        abstract int readInteger();
-        abstract long readLong();
-        abstract void skipBytes(final int count);
-        abstract void seek(final int position);
-        abstract void close();
-    }
-
-    /**
-     * Traditional implementation of BAM index file access using memory mapped files.
-     */
-    private static class MemoryMappedFileBuffer extends IndexFileBuffer {
-        private MappedByteBuffer mFileBuffer;
-
-        MemoryMappedFileBuffer(final File file) {
-            try {
-                // Open the file stream.
-                final FileInputStream fileStream = new FileInputStream(file);
-                final FileChannel fileChannel = fileStream.getChannel();
-                mFileBuffer = fileChannel.map(FileChannel.MapMode.READ_ONLY, 0L, fileChannel.size());
-                mFileBuffer.order(ByteOrder.LITTLE_ENDIAN);
-                fileChannel.close();
-                fileStream.close();
-            } catch (final IOException exc) {
-                throw new RuntimeIOException(exc.getMessage(), exc);
-            }
-        }
-
-        void readBytes(final byte[] bytes) {
-            mFileBuffer.get(bytes);
-        }
-
-        int readInteger() {
-            return mFileBuffer.getInt();
-        }
-
-        long readLong() {
-            return mFileBuffer.getLong();
-        }
-
-        void skipBytes(final int count) {
-            mFileBuffer.position(mFileBuffer.position() + count);
-        }
-
-        void seek(final int position) {
-            mFileBuffer.position(position);
-        }
-
-        void close() {
-            mFileBuffer = null;
-        }
-    }
-
-    /**
-     * Alternative implementation of BAM index file access using regular I/O instead of memory mapping.
-     * 
-     * This implementation can be more scalable for certain applications that need to access large numbers of BAM files.
-     * Java provides no way to explicitly release a memory mapping.  Instead, you need to wait for the garbage collector
-     * to finalize the MappedByteBuffer.  Because of this, when accessing many BAM files or when querying many BAM files
-     * sequentially, you cannot easily control the physical memory footprint of the java process.
-     * This can limit scalability and can have bad interactions with load management software like LSF, forcing you
-     * to reserve enough physical memory for a worst case scenario.
-     * The use of regular I/O allows you to trade somewhat slower performance for a small, fixed memory footprint
-     * if that is more suitable for your application.
-     */
-    private static class RandomAccessFileBuffer extends IndexFileBuffer {
-        private static final int PAGE_SIZE = 4 * 1024;
-        private static final int PAGE_OFFSET_MASK = PAGE_SIZE-1;
-        private static final int PAGE_MASK = ~PAGE_OFFSET_MASK;
-        private static final int INVALID_PAGE = 1;
-        private final File mFile;
-        private RandomAccessFile mRandomAccessFile;
-        private final int mFileLength;
-        private int mFilePointer = 0;
-        private int mCurrentPage = INVALID_PAGE;
-        private final byte[] mBuffer = new byte[PAGE_SIZE];
-
-        RandomAccessFileBuffer(final File file) {
-            mFile = file;
-            try {
-                mRandomAccessFile = new RandomAccessFile(file, "r");
-                final long fileLength = mRandomAccessFile.length();
-                if (fileLength > Integer.MAX_VALUE) {
-                    throw new RuntimeException("BAM index file " + mFile + " is too large: " + fileLength);
-                }
-                mFileLength = (int) fileLength;
-            } catch (final IOException exc) {
-                throw new RuntimeIOException(exc.getMessage(), exc);
-            }
-        }
-
-        void readBytes(final byte[] bytes) {
-            int resultOffset = 0;
-            int resultLength = bytes.length;
-            if (mFilePointer + resultLength > mFileLength) {
-                throw new RuntimeException("Attempt to read past end of BAM index file (file is truncated?): " + mFile);
-            }
-            while (resultLength > 0) {
-                loadPage(mFilePointer);
-                final int pageOffset = mFilePointer & PAGE_OFFSET_MASK;
-                final int copyLength = Math.min(resultLength, PAGE_SIZE - pageOffset);
-                System.arraycopy(mBuffer, pageOffset, bytes, resultOffset, copyLength);
-                mFilePointer += copyLength;
-                resultOffset += copyLength;
-                resultLength -= copyLength;
-            }
-        }
-
-        int readInteger() {
-            // This takes advantage of the fact that integers in BAM index files are always 4-byte aligned.
-            loadPage(mFilePointer);
-            final int pageOffset = mFilePointer & PAGE_OFFSET_MASK;
-            mFilePointer += 4;
-            return((mBuffer[pageOffset + 0] & 0xFF) |
-                   ((mBuffer[pageOffset + 1] & 0xFF) << 8) | 
-                   ((mBuffer[pageOffset + 2] & 0xFF) << 16) |
-                   ((mBuffer[pageOffset + 3] & 0xFF) << 24));
-        }
-
-        long readLong() {
-            // BAM index files are always 4-byte aligned, but not necessrily 8-byte aligned.
-            // So, rather than fooling with complex page logic we simply read the long in two 4-byte chunks.
-            final long lower = readInteger();
-            final long upper = readInteger();
-            return ((upper << 32) | (lower & 0xFFFFFFFFL));
-        }
-
-        void skipBytes(final int count) {
-            mFilePointer += count;
-        }
-        
-        void seek(final int position) {
-            mFilePointer = position;
-        }
-
-        void close() {
-            mFilePointer = 0;
-            mCurrentPage = INVALID_PAGE;
-            if (mRandomAccessFile != null) {
-                try {
-                    mRandomAccessFile.close();
-                } catch (final IOException exc) {
-                    throw new RuntimeIOException(exc.getMessage(), exc);
-                }
-                mRandomAccessFile = null;
-            }
-        }
-
-        private void loadPage(final int filePosition) {
-            final int page = filePosition & PAGE_MASK;
-            if (page == mCurrentPage) {
-                return;
-            }
-            try {
-                mRandomAccessFile.seek(page);
-                final int readLength = Math.min(mFileLength - page, PAGE_SIZE);
-                mRandomAccessFile.readFully(mBuffer, 0, readLength);
-                mCurrentPage = page;
-            } catch (final IOException exc) {
-                throw new RuntimeIOException("Exception reading BAM index file " + mFile + ": " + exc.getMessage(), exc);
-            }
-        }
-    }
-
-    private static class IndexStreamBuffer extends IndexFileBuffer {
-        private final SeekableStream in;
-        private final ByteBuffer tmpBuf;
-
-        public IndexStreamBuffer(final SeekableStream s) {
-            in = s;
-            tmpBuf = ByteBuffer.allocate(8); // Enough to fit a long.
-            tmpBuf.order(ByteOrder.LITTLE_ENDIAN);
-        }
-
-        @Override public void close() {
-            try { in.close(); }
-            catch (final IOException e) { throw new RuntimeIOException(e); }
-        }
-        @Override public void readBytes(final byte[] bytes) {
-            try { in.read(bytes); }
-            catch (final IOException e) { throw new RuntimeIOException(e); }
-        }
-        @Override public void seek(final int position) {
-            try { in.seek(position); }
-            catch (final IOException e) { throw new RuntimeIOException(e); }
-        }
-
-        @Override public int readInteger() {
-           try {
-               final int r = in.read(tmpBuf.array(), 0, 4);
-               if (r != 4)
-                   throw new RuntimeIOException("Expected 4 bytes, got " + r);
-           } catch (final IOException e) { throw new RuntimeIOException(e); }
-           return tmpBuf.getInt(0);
-        }
-        @Override public long readLong() {
-            try {
-                final int r = in.read(tmpBuf.array(), 0, 8);
-                if (r != 8)
-                    throw new RuntimeIOException("Expected 8 bytes, got " + r);
-            } catch (final IOException e) { throw new RuntimeIOException(e); }
-            return tmpBuf.getLong(0);
-        }
-        @Override public void skipBytes(final int count) {
-            try {
-                for (int s = count; s > 0;) {
-                    final int skipped = (int)in.skip(s);
-                    if (skipped <= 0)
-                        throw new RuntimeIOException("Failed to skip " + s);
-                    s -= skipped;
-                }
-            } catch (final IOException e) { throw new RuntimeIOException(e); }
-        }
-    }
-}
diff --git a/src/java/net/sf/samtools/AbstractSAMHeaderRecord.java b/src/java/net/sf/samtools/AbstractSAMHeaderRecord.java
deleted file mode 100644
index 4268341..0000000
--- a/src/java/net/sf/samtools/AbstractSAMHeaderRecord.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * Base class for the various concrete records in a SAM header, providing uniform
- * access to the attributes.
- */
-public abstract class AbstractSAMHeaderRecord {
-    private final Map<String,String> mAttributes = new HashMap<String, String>();
-
-    public String getAttribute(final String key) {
-        return mAttributes.get(key);
-    }
-
-    /**
-     * Set the given value for the attribute named 'key'.  Replaces an existing value, if any.
-     * If value is null, the attribute is removed.
-     * Otherwise, the value will be converted to a String with toString.
-     * @param key attribute name
-     * @param value attribute value
-     * @deprecated Use the version that takes a String value instead
-     */
-    public void setAttribute(final String key, final Object value) {
-        setAttribute(key, value == null? null: value.toString());
-    }
-
-    /**
-     * Set the given value for the attribute named 'key'.  Replaces an existing value, if any.
-     * If value is null, the attribute is removed.
-     * Supported types are Character, Integer, Float and String.  Byte and Short may also be
-     * passed in but they will be converted to Integer.
-     * @param key attribute name
-     * @param value attribute value
-     */
-    public void setAttribute(final String key, final String value) {
-        if (value == null) {
-            mAttributes.remove(key);
-        } else {
-            mAttributes.put(key, value);
-        }
-    }
-    /**
-     * Returns the Set of attributes.
-     */
-    public Set<Map.Entry<String,String>> getAttributes() {
-        return mAttributes.entrySet();
-    }
-
-
-    /**
-     * Returns the ID tag (or equivalent) for this header record. The
-     * default implementation throws a PicardException to indicate "not implemented".
-     */
-    public String getId() {
-        throw new UnsupportedOperationException("Method not implemented for: " + this.getClass());
-    }
-
-    /**
-     * For use in the equals() method of the concrete class.
-     */
-    protected boolean attributesEqual(final AbstractSAMHeaderRecord that) {
-        return mAttributes.equals(that.mAttributes);
-    }
-
-    /**
-     * For use in the hashCode() method of the concrete class.
-     */
-    protected int attributesHashCode() {
-        return (mAttributes != null ? mAttributes.hashCode() : 0);
-    }
-
-    /**
-     * Standard tags are the tags defined in SAM spec.  These do not have type information in the test
-     * representation, because the type information is predefined for each tag.
-     * @return list of predefined tags for the concrete SAMHeader record type.
-     */
-    abstract Set<String> getStandardTags();
-
-    /** Simple to String that outputs the concrete class name and the set of attributes stored. */
-    @Override public String toString() {
-        return getClass().getSimpleName() + this.mAttributes.toString();
-    }
-}
diff --git a/src/java/net/sf/samtools/AlignmentBlock.java b/src/java/net/sf/samtools/AlignmentBlock.java
deleted file mode 100644
index ef928c7..0000000
--- a/src/java/net/sf/samtools/AlignmentBlock.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-/**
- * Represents the contiguous alignment of a subset of read bases to a reference
- * sequence. Simply put an alignment block tells you that read bases from
- * readStart are aligned to the reference (matching or mismatching) from
- * referenceStart for length bases.
- *
- * @author Tim Fennell
- */
-public class AlignmentBlock {
-    private int readStart;
-    private int referenceStart;
-    private int length;
-
-    /** Constructs a new alignment block with the supplied read and ref starts and length. */
-    AlignmentBlock(int readStart, int referenceStart, int length) {
-        this.readStart = readStart;
-        this.referenceStart = referenceStart;
-        this.length = length;
-    }
-
-    /** The first, 1-based, base in the read that is aligned to the reference reference. */
-    public int getReadStart() { return readStart; }
-
-    /** The first, 1-based, position in the reference to which the read is aligned. */
-    public int getReferenceStart() { return referenceStart; }
-
-    /** The number of contiguous bases aligned to the reference. */
-    public int getLength() { return length; }
-}
diff --git a/src/java/net/sf/samtools/AsyncSAMFileWriter.java b/src/java/net/sf/samtools/AsyncSAMFileWriter.java
deleted file mode 100644
index 5543c83..0000000
--- a/src/java/net/sf/samtools/AsyncSAMFileWriter.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package net.sf.samtools;
-
-import net.sf.samtools.util.AbstractAsyncWriter;
-import net.sf.samtools.util.ProgressLoggerInterface;
-
-/**
- * SAMFileWriter that can be wrapped around an underlying SAMFileWriter to provide asynchronous output. Records
- * added are placed into a queue, the queue is then drained into the underlying SAMFileWriter by a thread owned
- * by the instance.
- *
- * Exceptions experienced by the writer thread will be emitted back to the caller in subsequent calls to either
- * addAlignment() or close().
- *
- * @author Tim Fennell
- */
-class AsyncSAMFileWriter extends AbstractAsyncWriter<SAMRecord> implements SAMFileWriter {
-
-    private final SAMFileWriter underlyingWriter;
-
-    /**
-     * Creates a new AsyncSAMFileWriter wrapping the provided SAMFileWriter.
-     */
-    public AsyncSAMFileWriter(final SAMFileWriter out) {
-        this(out, DEFAULT_QUEUE_SIZE);
-    }
-
-    /**
-     * Creates an AsyncSAMFileWriter wrapping the provided SAMFileWriter and using the specified
-     * queue size for buffer SAMRecords.
-     */
-    public AsyncSAMFileWriter(final SAMFileWriter out, final int queueSize) {
-        super(queueSize);
-        this.underlyingWriter = out;
-    }
-
-    @Override protected void synchronouslyWrite(final SAMRecord item) { this.underlyingWriter.addAlignment(item); }
-
-    @Override protected void synchronouslyClose() { this.underlyingWriter.close();  }
-
-    @Override protected final String getThreadNamePrefix() { return "SAMFileWriterThread-"; }
-
-	@Override
-	public void setProgressLogger(final ProgressLoggerInterface progress) {
-		this.underlyingWriter.setProgressLogger(progress);
-	}
-
-    /**
-     * Adds an alignment to the queue to be written.  Will re-throw any exception that was received when
-     * writing prior record(s) to the underlying SAMFileWriter.
-     */
-    public void addAlignment(final SAMRecord alignment) {
-        write(alignment);
-    }
-
-    /** Returns the SAMFileHeader from the underlying SAMFileWriter. */
-    public SAMFileHeader getFileHeader() {
-        return this.underlyingWriter.getFileHeader();
-    }
-}
diff --git a/src/java/net/sf/samtools/BAMFileConstants.java b/src/java/net/sf/samtools/BAMFileConstants.java
deleted file mode 100644
index c51fcd5..0000000
--- a/src/java/net/sf/samtools/BAMFileConstants.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-/**
- * Constants used in reading & writing BAM files
- */
-class BAMFileConstants {
-    /**
-     * The beginning of a BAMRecord is a fixed-size block of 8 int32s
-     */
-    static final int FIXED_BLOCK_SIZE = 8 * 4;
-
-    /**
-     * BAM file magic number.  This is what is present in the gunzipped version of the file,
-     * which never exists on disk.
-     */
-
-    static final byte[] BAM_MAGIC = "BAM\1".getBytes();
-    /**
-     * BAM index file magic number.
-     */
-    static final byte[] BAM_INDEX_MAGIC = "BAI\1".getBytes();
-}
diff --git a/src/java/net/sf/samtools/BAMFileReader.java b/src/java/net/sf/samtools/BAMFileReader.java
deleted file mode 100644
index fe14aaa..0000000
--- a/src/java/net/sf/samtools/BAMFileReader.java
+++ /dev/null
@@ -1,987 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-
-import net.sf.samtools.SAMFileReader.ValidationStringency;
-import net.sf.samtools.seekablestream.SeekableStream;
-import net.sf.samtools.util.*;
-
-import java.io.DataInputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.NoSuchElementException;
-
-/**
- * Class for reading and querying BAM files.
- */
-class BAMFileReader extends SAMFileReader.ReaderImplementation {
-    // True if reading from a File rather than an InputStream
-    private boolean mIsSeekable = false;
-
-    // For converting bytes into other primitive types
-    private BinaryCodec mStream = null;
-
-    // Underlying compressed data stream.
-    private final BlockCompressedInputStream mCompressedInputStream;
-    private SAMFileHeader mFileHeader = null;
-
-    // One of these is populated if the file is seekable and an index exists
-    private File mIndexFile = null;
-    private SeekableStream mIndexStream = null;
-
-    private BAMIndex mIndex = null;
-    private long mFirstRecordPointer = 0;
-    // If non-null, there is an unclosed iterator extant.
-    private CloseableIterator<SAMRecord> mCurrentIterator = null;
-
-    // If true, all SAMRecords are fully decoded as they are read.
-    private final boolean eagerDecode;
-
-    // For error-checking.
-    private ValidationStringency mValidationStringency;
-
-    // For creating BAMRecords
-    private SAMRecordFactory samRecordFactory;
-
-    /**
-     * Use the caching index reader implementation rather than the disk-hit-per-file model.
-     */
-    private boolean mEnableIndexCaching = false;
-
-    /**
-     * Use the traditional memory-mapped implementation for BAM file indexes rather than regular I/O.
-     */
-    private boolean mEnableIndexMemoryMapping = true;
-
-    /**
-     * Add information about the origin (reader and position) to SAM records.
-     */
-    private SAMFileReader mFileReader = null;
-
-    /**
-     * Prepare to read BAM from a stream (not seekable)
-     * @param stream source of bytes.
-     * @param eagerDecode if true, decode all BAM fields as reading rather than lazily.
-     * @param validationStringency Controls how to handle invalidate reads or header lines.
-     */
-    BAMFileReader(final InputStream stream,
-                  final File indexFile,
-                  final boolean eagerDecode,
-                  final ValidationStringency validationStringency,
-                  final SAMRecordFactory factory)
-        throws IOException {
-        mIndexFile = indexFile;
-        mIsSeekable = false;
-        mCompressedInputStream = new BlockCompressedInputStream(stream);
-        mStream = new BinaryCodec(new DataInputStream(mCompressedInputStream));
-        this.eagerDecode = eagerDecode;
-        this.mValidationStringency = validationStringency;
-        this.samRecordFactory = factory;
-        this.mFileHeader = readHeader(this.mStream, this.mValidationStringency, null);
-    }
-
-    /**
-     * Prepare to read BAM from a file (seekable)
-     * @param file source of bytes.
-     * @param eagerDecode if true, decode all BAM fields as reading rather than lazily.
-     * @param validationStringency Controls how to handle invalidate reads or header lines.
-     */
-    BAMFileReader(final File file,
-                  final File indexFile,
-                  final boolean eagerDecode,
-                  final ValidationStringency validationStringency,
-                  final SAMRecordFactory factory)
-        throws IOException {
-        this(new BlockCompressedInputStream(file), indexFile!=null ? indexFile : findIndexFile(file), eagerDecode, file.getAbsolutePath(), validationStringency, factory);
-        if (mIndexFile != null && mIndexFile.lastModified() < file.lastModified()) {
-            System.err.println("WARNING: BAM index file " + mIndexFile.getAbsolutePath() +
-                    " is older than BAM " + file.getAbsolutePath());
-        }
-        // Provide better error message when there is an error reading.
-        mStream.setInputFileName(file.getAbsolutePath());
-    }
-
-    BAMFileReader(final SeekableStream strm,
-                  final File indexFile,
-                  final boolean eagerDecode,
-                  final ValidationStringency validationStringency,
-                  final SAMRecordFactory factory)
-        throws IOException {
-        this(new BlockCompressedInputStream(strm), indexFile, eagerDecode, strm.getSource(), validationStringency, factory);
-    }
-
-    BAMFileReader(final SeekableStream strm,
-                  final SeekableStream indexStream,
-                  final boolean eagerDecode,
-                  final ValidationStringency validationStringency,
-                  final SAMRecordFactory factory)
-        throws IOException {
-        this(new BlockCompressedInputStream(strm), indexStream, eagerDecode, strm.getSource(), validationStringency, factory);
-    }
-
-    private BAMFileReader(final BlockCompressedInputStream compressedInputStream,
-                          final File indexFile,
-                          final boolean eagerDecode,
-                          final String source,
-                          final ValidationStringency validationStringency,
-                          final SAMRecordFactory factory)
-        throws IOException {
-        mIndexFile = indexFile;
-        mIsSeekable = true;
-        mCompressedInputStream = compressedInputStream;
-        mStream = new BinaryCodec(new DataInputStream(mCompressedInputStream));
-        this.eagerDecode = eagerDecode;
-        this.mValidationStringency = validationStringency;
-        this.samRecordFactory = factory;
-        this.mFileHeader = readHeader(this.mStream, this.mValidationStringency, source);
-        mFirstRecordPointer = mCompressedInputStream.getFilePointer();
-    }    
-
-    private BAMFileReader(final BlockCompressedInputStream compressedInputStream,
-                          final SeekableStream indexStream,
-                          final boolean eagerDecode,
-                          final String source,
-                          final ValidationStringency validationStringency,
-                          final SAMRecordFactory factory)
-        throws IOException {
-        mIndexStream = indexStream;
-        mIsSeekable = true;
-        mCompressedInputStream = compressedInputStream;
-        mStream = new BinaryCodec(new DataInputStream(mCompressedInputStream));
-        this.eagerDecode = eagerDecode;
-        this.mValidationStringency = validationStringency;
-        this.samRecordFactory = factory;
-        this.mFileHeader = readHeader(this.mStream, this.mValidationStringency, source);
-        mFirstRecordPointer = mCompressedInputStream.getFilePointer();
-    }
-
-    /** Reads through the header and sequence records to find the virtual file offset of the first record in the BAM file. */
-    static long findVirtualOffsetOfFirstRecord(final File bam) throws IOException {
-        final BAMFileReader reader = new BAMFileReader(bam, null, false, ValidationStringency.SILENT, new DefaultSAMRecordFactory());
-        final long offset = reader.mFirstRecordPointer;
-        reader.close();
-        return offset;
-    }
-
-    /**
-     * If true, writes the source of every read into the source SAMRecords.
-     * @param enabled true to write source information into each SAMRecord.
-     */
-    void enableFileSource(final SAMFileReader reader, final boolean enabled) {
-        this.mFileReader = enabled ? reader : null;
-    }
-
-    /**
-     * If true, uses the caching version of the index reader.
-     * @param enabled true to write source information into each SAMRecord.
-     */
-    protected void enableIndexCaching(final boolean enabled) {
-        if(mIndex != null)
-            throw new SAMException("Unable to turn on index caching; index file has already been loaded.");
-        this.mEnableIndexCaching = enabled;
-    }
-
-    /**
-     * If false, disable the use of memory mapping for accessing index files (default behavior is to use memory mapping).
-     * This is slower but more scalable when accessing large numbers of BAM files sequentially.
-     * @param enabled True to use memory mapping, false to use regular I/O.
-     */
-    protected void enableIndexMemoryMapping(final boolean enabled) {
-        if (mIndex != null) {
-            throw new SAMException("Unable to change index memory mapping; index file has already been loaded.");
-        }
-        this.mEnableIndexMemoryMapping = enabled;
-    }
-
-    @Override void enableCrcChecking(final boolean enabled) {
-        this.mCompressedInputStream.setCheckCrcs(enabled);
-    }
-
-    @Override void setSAMRecordFactory(final SAMRecordFactory factory) { this.samRecordFactory = factory; }
-
-    /**
-     * @return true if ths is a BAM file, and has an index
-     */
-    protected boolean hasIndex() {
-        return (mIndexFile != null) || (mIndexStream != null);
-    }
-
-    /**
-     * Retrieves the index for the given file type.  Ensure that the index is of the specified type.
-     * @return An index of the given type.
-     */
-    protected BAMIndex getIndex() {
-        if(!hasIndex())
-            throw new SAMException("No index is available for this BAM file.");
-        if(mIndex == null) {
-            if (mIndexFile != null)
-                mIndex = mEnableIndexCaching ? new CachingBAMFileIndex(mIndexFile, getFileHeader().getSequenceDictionary(), mEnableIndexMemoryMapping)
-                                             : new DiskBasedBAMFileIndex(mIndexFile, getFileHeader().getSequenceDictionary(), mEnableIndexMemoryMapping);
-            else
-                mIndex = mEnableIndexCaching ? new CachingBAMFileIndex(mIndexStream, getFileHeader().getSequenceDictionary())
-                                             : new DiskBasedBAMFileIndex(mIndexStream, getFileHeader().getSequenceDictionary());
-        }
-        return mIndex;
-    }
-
-    void close() {
-        if (mStream != null) {
-            mStream.close();
-        }
-        if (mIndex != null) {
-            mIndex.close();
-        }
-        mStream = null;
-        mFileHeader = null;
-        mIndex = null;
-    }
-
-    SAMFileHeader getFileHeader() {
-        return mFileHeader;
-    }
-
-    /**
-     * Set error-checking level for subsequent SAMRecord reads.
-     */
-    void setValidationStringency(final SAMFileReader.ValidationStringency validationStringency) {
-        this.mValidationStringency = validationStringency;
-    }
-
-    SAMFileReader.ValidationStringency getValidationStringency() {
-        return this.mValidationStringency;
-    }
-
-    /**
-     * Prepare to iterate through the SAMRecords in file order.
-     * Only a single iterator on a BAM file can be extant at a time.  If getIterator() or a query method has been called once,
-     * that iterator must be closed before getIterator() can be called again.
-     * A somewhat peculiar aspect of this method is that if the file is not seekable, a second call to
-     * getIterator() begins its iteration where the last one left off.  That is the best that can be
-     * done in that situation.
-     */
-    CloseableIterator<SAMRecord> getIterator() {
-        if (mStream == null) {
-            throw new IllegalStateException("File reader is closed");
-        }
-        if (mCurrentIterator != null) {
-            throw new IllegalStateException("Iteration in progress");
-        }
-        if (mIsSeekable) {
-            try {
-                mCompressedInputStream.seek(mFirstRecordPointer);
-            } catch (final IOException exc) {
-                throw new RuntimeException(exc.getMessage(), exc);
-            }
-        }
-        mCurrentIterator = new BAMFileIterator();
-        return mCurrentIterator;
-    }
-
-    @Override
-    CloseableIterator<SAMRecord> getIterator(final SAMFileSpan chunks) {
-        if (mStream == null) {
-            throw new IllegalStateException("File reader is closed");
-        }
-        if (mCurrentIterator != null) {
-            throw new IllegalStateException("Iteration in progress");
-        }
-        if (!(chunks instanceof BAMFileSpan)) {
-            throw new IllegalStateException("BAMFileReader cannot handle this type of file span.");
-        }
-
-        // Create an iterator over the given chunk boundaries.
-        mCurrentIterator = new BAMFileIndexIterator(((BAMFileSpan)chunks).toCoordinateArray());
-        return mCurrentIterator;
-    }
-
-    /**
-     * Gets an unbounded pointer to the first record in the BAM file.  Because the reader doesn't necessarily know
-     * when the file ends, the rightmost bound of the file pointer will not end exactly where the file ends.  However,
-     * the rightmost bound is guaranteed to be after the last read in the file.
-     * @return An unbounded pointer to the first record in the BAM file.
-     */
-    @Override
-    SAMFileSpan getFilePointerSpanningReads() {
-        return new BAMFileSpan(new Chunk(mFirstRecordPointer,Long.MAX_VALUE));
-    }
-
-    /**
-     * Prepare to iterate through the SAMRecords that match the given interval.
-     * Only a single iterator on a BAMFile can be extant at a time.  The previous one must be closed
-     * before calling any of the methods that return an iterator.
-     *
-     * Note that an unmapped SAMRecord may still have a reference name and an alignment start for sorting
-     * purposes (typically this is the coordinate of its mate), and will be found by this method if the coordinate
-     * matches the specified interval.
-     *
-     * Note that this method is not necessarily efficient in terms of disk I/O.  The index does not have perfect
-     * resolution, so some SAMRecords may be read and then discarded because they do not match the specified interval.
-     *
-     * @param sequence Reference sequence sought.
-     * @param start Desired SAMRecords must overlap or be contained in the interval specified by start and end.
-     * A value of zero implies the start of the reference sequence.
-     * @param end A value of zero implies the end of the reference sequence.
-     * @param contained If true, the alignments for the SAMRecords must be completely contained in the interval
-     * specified by start and end.  If false, the SAMRecords need only overlap the interval.
-     * @return Iterator for the matching SAMRecords
-     */
-    CloseableIterator<SAMRecord> query(final String sequence, final int start, final int end, final boolean contained) {
-        if (mStream == null) {
-            throw new IllegalStateException("File reader is closed");
-        }
-        if (mCurrentIterator != null) {
-            throw new IllegalStateException("Iteration in progress");
-        }
-        if (!mIsSeekable) {
-            throw new UnsupportedOperationException("Cannot query stream-based BAM file");
-        }
-        final int referenceIndex = mFileHeader.getSequenceIndex(sequence);
-        if (referenceIndex == -1) {
-            mCurrentIterator = new EmptyBamIterator();
-        } else {
-            final SAMFileReader.QueryInterval[] queryIntervals = {new SAMFileReader.QueryInterval(referenceIndex, start, end)};
-            mCurrentIterator = createIndexIterator(queryIntervals, contained);
-        }
-        return mCurrentIterator;
-    }
-
-    /**
-     * Prepare to iterate through the SAMRecords that match any of the given intervals.
-     * Only a single iterator on a BAMFile can be extant at a time.  The previous one must be closed
-     * before calling any of the methods that return an iterator.
-     *
-     * Note that an unmapped SAMRecord may still have a reference name and an alignment start for sorting
-     * purposes (typically this is the coordinate of its mate), and will be found by this method if the coordinate
-     * matches the specified interval.
-     *
-     * Note that this method is not necessarily efficient in terms of disk I/O.  The index does not have perfect
-     * resolution, so some SAMRecords may be read and then discarded because they do not match the specified interval.
-     *
-     * @param intervals list of intervals to be queried.  Must be optimized.
-     * @param contained If true, the alignments for the SAMRecords must be completely contained in the interval
-     * specified by start and end.  If false, the SAMRecords need only overlap the interval.
-     * @return Iterator for the matching SAMRecords
-     * @see net.sf.samtools.SAMFileReader.QueryInterval#optimizeIntervals(net.sf.samtools.SAMFileReader.QueryInterval[])
-     */
-    CloseableIterator<SAMRecord> query(final SAMFileReader.QueryInterval[] intervals, final boolean contained) {
-        if (mStream == null) {
-            throw new IllegalStateException("File reader is closed");
-        }
-        if (mCurrentIterator != null) {
-            throw new IllegalStateException("Iteration in progress");
-        }
-        if (!mIsSeekable) {
-            throw new UnsupportedOperationException("Cannot query stream-based BAM file");
-        }
-        mCurrentIterator = createIndexIterator(intervals, contained);
-        return mCurrentIterator;
-    }
-
-    /**
-     * Prepare to iterate through the SAMRecords with the given alignment start.
-     * Only a single iterator on a BAMFile can be extant at a time.  The previous one must be closed
-     * before calling any of the methods that return an iterator.
-     *
-     * Note that an unmapped SAMRecord may still have a reference name and an alignment start for sorting
-     * purposes (typically this is the coordinate of its mate), and will be found by this method if the coordinate
-     * matches the specified interval.
-     *
-     * Note that this method is not necessarily efficient in terms of disk I/O.  The index does not have perfect
-     * resolution, so some SAMRecords may be read and then discarded because they do not match the specified interval.
-     *
-     * @param sequence Reference sequence sought.
-     * @param start Alignment start sought.
-     * @return Iterator for the matching SAMRecords.
-     */
-    CloseableIterator<SAMRecord> queryAlignmentStart(final String sequence, final int start) {
-        if (mStream == null) {
-            throw new IllegalStateException("File reader is closed");
-        }
-        if (mCurrentIterator != null) {
-            throw new IllegalStateException("Iteration in progress");
-        }
-        if (!mIsSeekable) {
-            throw new UnsupportedOperationException("Cannot query stream-based BAM file");
-        }
-        final int referenceIndex = mFileHeader.getSequenceIndex(sequence);
-        if (referenceIndex == -1) {
-            mCurrentIterator = new EmptyBamIterator();
-        } else {
-            mCurrentIterator = createStartingAtIndexIterator(referenceIndex, start);
-        }
-        return mCurrentIterator;
-    }
-
-    /**
-     * Prepare to iterate through the SAMRecords that are unmapped and do not have a reference name or alignment start.
-     * Only a single iterator on a BAMFile can be extant at a time.  The previous one must be closed
-     * before calling any of the methods that return an iterator.
-     *
-     * @return Iterator for the matching SAMRecords.
-     */
-    public CloseableIterator<SAMRecord> queryUnmapped() {
-        if (mStream == null) {
-            throw new IllegalStateException("File reader is closed");
-        }
-        if (mCurrentIterator != null) {
-            throw new IllegalStateException("Iteration in progress");
-        }
-        if (!mIsSeekable) {
-            throw new UnsupportedOperationException("Cannot query stream-based BAM file");
-        }
-        try {
-            final long startOfLastLinearBin = getIndex().getStartOfLastLinearBin();
-            if (startOfLastLinearBin != -1) {
-                mCompressedInputStream.seek(startOfLastLinearBin);
-            } else {
-                // No mapped reads in file, just start at the first read in file.
-                mCompressedInputStream.seek(mFirstRecordPointer);
-            }
-            mCurrentIterator = new BAMFileIndexUnmappedIterator();
-            return mCurrentIterator;
-        } catch (final IOException e) {
-            throw new RuntimeException("IOException seeking to unmapped reads", e);
-        }
-    }
-
-    /**
-     * Reads the header of a BAM file from a stream
-     * @param stream A BinaryCodec to read the header from
-     * @param validationStringency Determines how stringent to be when validating the sam
-     * @param source Note that this is used only for reporting errors.
-     */
-    protected static SAMFileHeader readHeader(final BinaryCodec stream, final ValidationStringency validationStringency, final String source)
-        throws IOException {
-
-        final byte[] buffer = new byte[4];
-        stream.readBytes(buffer);
-        if (!Arrays.equals(buffer, BAMFileConstants.BAM_MAGIC)) {
-            throw new IOException("Invalid BAM file header");
-        }
-
-        final int headerTextLength = stream.readInt();
-        final String textHeader = stream.readString(headerTextLength);
-        final SAMTextHeaderCodec headerCodec = new SAMTextHeaderCodec();
-        headerCodec.setValidationStringency(validationStringency);
-        final SAMFileHeader samFileHeader = headerCodec.decode(new StringLineReader(textHeader),
-                source);
-
-        final int sequenceCount = stream.readInt();
-        if (samFileHeader.getSequenceDictionary().size() > 0) {
-            // It is allowed to have binary sequences but no text sequences, so only validate if both are present
-            if (sequenceCount != samFileHeader.getSequenceDictionary().size()) {
-                throw new SAMFormatException("Number of sequences in text header (" +
-                        samFileHeader.getSequenceDictionary().size() +
-                        ") != number of sequences in binary header (" + sequenceCount + ") for file " + source);
-            }
-            for (int i = 0; i < sequenceCount; i++) {
-                final SAMSequenceRecord binarySequenceRecord = readSequenceRecord(stream, source);
-                final SAMSequenceRecord sequenceRecord = samFileHeader.getSequence(i);
-                if (!sequenceRecord.getSequenceName().equals(binarySequenceRecord.getSequenceName())) {
-                    throw new SAMFormatException("For sequence " + i + ", text and binary have different names in file " +
-                            source);
-                }
-                if (sequenceRecord.getSequenceLength() != binarySequenceRecord.getSequenceLength()) {
-                    throw new SAMFormatException("For sequence " + i + ", text and binary have different lengths in file " +
-                            source);
-                }
-            }
-        } else {
-            // If only binary sequences are present, copy them into samFileHeader
-            final List<SAMSequenceRecord> sequences = new ArrayList<SAMSequenceRecord>(sequenceCount);
-            for (int i = 0; i < sequenceCount; i++) {
-                sequences.add(readSequenceRecord(stream, source));
-            }
-            samFileHeader.setSequenceDictionary(new SAMSequenceDictionary(sequences));
-        }
-
-        return samFileHeader;
-    }
-
-    /**
-     * Reads a single binary sequence record from the file or stream
-     * @param source Note that this is used only for reporting errors.
-     */
-    private static SAMSequenceRecord readSequenceRecord(final BinaryCodec stream, final String source) {
-        final int nameLength = stream.readInt();
-        if (nameLength <= 1) {
-            throw new SAMFormatException("Invalid BAM file header: missing sequence name in file " + source);
-        }
-        final String sequenceName = stream.readString(nameLength - 1);
-        // Skip the null terminator
-        stream.readByte();
-        final int sequenceLength = stream.readInt();
-        return new SAMSequenceRecord(SAMSequenceRecord.truncateSequenceName(sequenceName), sequenceLength);
-    }
-
-    /**
-     * Encapsulates the restriction that only one iterator may be open at a time.
-     */
-    private abstract class AbstractBamIterator implements CloseableIterator<SAMRecord> {
-
-        private boolean isClosed = false;
-
-        public void close() {
-            if (!isClosed) {
-                if (mCurrentIterator != null && this != mCurrentIterator) {
-                    throw new IllegalStateException("Attempt to close non-current iterator");
-                }
-                mCurrentIterator = null;
-                isClosed = true;
-            }
-        }
-
-        protected void assertOpen() {
-            if (isClosed) throw new AssertionError("Iterator has been closed");
-        }
-
-        public void remove() {
-            throw new UnsupportedOperationException("Not supported: remove");
-        }
-
-    }
-
-    private class EmptyBamIterator extends AbstractBamIterator {
-        @Override
-        public boolean hasNext() {
-            return false;
-        }
-
-        @Override
-        public SAMRecord next() {
-            throw new NoSuchElementException("next called on empty iterator");
-        }
-    }
-
-    /**
-
-    /**
-     * Iterator for non-indexed sequential iteration through all SAMRecords in file.
-     * Starting point of iteration is wherever current file position is when the iterator is constructed.
-     */
-    private class BAMFileIterator extends AbstractBamIterator {
-        private SAMRecord mNextRecord = null;
-        private final BAMRecordCodec bamRecordCodec;
-        private long samRecordIndex = 0; // Records at what position (counted in records) we are at in the file
-
-        BAMFileIterator() {
-            this(true);
-        }
-
-        /**
-         * @param advance Trick to enable subclass to do more setup before advancing
-         */
-        BAMFileIterator(final boolean advance) {
-            this.bamRecordCodec = new BAMRecordCodec(getFileHeader(), samRecordFactory);
-            this.bamRecordCodec.setInputStream(BAMFileReader.this.mStream.getInputStream(),
-                    BAMFileReader.this.mStream.getInputFileName());
-
-            if (advance) {
-                advance();
-            }
-        }
-
-        public boolean hasNext() {
-            assertOpen();
-            return (mNextRecord != null);
-        }
-
-        public SAMRecord next() {
-            assertOpen();
-            final SAMRecord result = mNextRecord;
-            advance();
-            return result;
-        }
-
-        void advance() {
-            try {
-                mNextRecord = getNextRecord();
-
-                if (mNextRecord != null) {
-                    ++this.samRecordIndex;
-                    // Because some decoding is done lazily, the record needs to remember the validation stringency.
-                    mNextRecord.setValidationStringency(mValidationStringency);
-
-                    if (mValidationStringency != ValidationStringency.SILENT) {
-                        final List<SAMValidationError> validationErrors = mNextRecord.isValid();
-                        SAMUtils.processValidationErrors(validationErrors,
-                                this.samRecordIndex, BAMFileReader.this.getValidationStringency());
-                    }
-                }
-                if (eagerDecode && mNextRecord != null) {
-                    mNextRecord.eagerDecode();
-                }
-            } catch (final IOException exc) {
-                throw new RuntimeException(exc.getMessage(), exc);
-            }
-        }
-
-        /**
-         * Read the next record from the input stream.
-         */
-        SAMRecord getNextRecord() throws IOException {
-            final long startCoordinate = mCompressedInputStream.getFilePointer();
-            final SAMRecord next = bamRecordCodec.decode();
-            final long stopCoordinate = mCompressedInputStream.getFilePointer();
-
-            if(mFileReader != null && next != null)
-                next.setFileSource(new SAMFileSource(mFileReader,new BAMFileSpan(new Chunk(startCoordinate,stopCoordinate))));
-
-            return next;
-        }
-
-        /**
-         * @return The record that will be return by the next call to next()
-         */
-        protected SAMRecord peek() {
-            return mNextRecord;
-        }
-    }
-
-    /**
-     * Prepare to iterate through SAMRecords in the given reference that start exactly at the given start coordinate.
-     * @param referenceIndex Desired reference sequence.
-     * @param start 1-based alignment start.
-     */
-    private CloseableIterator<SAMRecord> createStartingAtIndexIterator(final int referenceIndex,
-                                                                       final int start) {
-
-        // Hit the index to determine the chunk boundaries for the required data.
-        final BAMIndex fileIndex = getIndex();
-        final BAMFileSpan fileSpan = fileIndex.getSpanOverlapping(referenceIndex, start, 0);
-        final long[] filePointers = fileSpan != null ? fileSpan.toCoordinateArray() : null;
-
-        // Create an iterator over the above chunk boundaries.
-        final BAMFileIndexIterator iterator = new BAMFileIndexIterator(filePointers);
-
-        // Add some preprocessing filters for edge-case reads that don't fit into this
-        // query type.
-        return new BAMQueryFilteringIterator(iterator,new BAMStartingAtIteratorFilter(referenceIndex,start));
-    }
-
-    /**
-     * @throws java.lang.IllegalArgumentException if the intervals are not optimized
-     * @see net.sf.samtools.SAMFileReader.QueryInterval#optimizeIntervals(net.sf.samtools.SAMFileReader.QueryInterval[])
-     */
-    private void assertIntervalsOptimized(final SAMFileReader.QueryInterval[] intervals) {
-        if (intervals.length == 0) return;
-        for (int i = 1; i < intervals.length; ++i) {
-        final SAMFileReader.QueryInterval prev = intervals[i-1];
-        final SAMFileReader.QueryInterval thisInterval = intervals[i];
-            if (prev.compareTo(thisInterval) >= 0) {
-                throw new IllegalArgumentException(String.format("List of intervals is not sorted: %s >= %s", prev, thisInterval));
-            }
-            if (prev.overlaps(thisInterval)) {
-                throw new IllegalArgumentException(String.format("List of intervals is not optimized: %s intersects %s", prev, thisInterval));
-            }
-            if (prev.abuts(thisInterval)) {
-                throw new IllegalArgumentException(String.format("List of intervals is not optimized: %s abuts %s", prev, thisInterval));
-            }
-        }
-    }
-
-    private CloseableIterator<SAMRecord> createIndexIterator(final SAMFileReader.QueryInterval[] intervals,
-                                                             final boolean contained) {
-
-        assertIntervalsOptimized(intervals);
-
-        // Hit the index to determine the chunk boundaries for the required data.
-        final BAMFileSpan[] inputSpans = new BAMFileSpan[intervals.length];
-        final BAMIndex fileIndex = getIndex();
-        for (int i = 0; i < intervals.length; ++i) {
-            final SAMFileReader.QueryInterval interval = intervals[i];
-            final BAMFileSpan span = fileIndex.getSpanOverlapping(interval.referenceIndex, interval.start, interval.end);
-            inputSpans[i] = span;
-        }
-        final long[] filePointers;
-        if (inputSpans.length > 0) {
-            filePointers = BAMFileSpan.merge(inputSpans).toCoordinateArray();
-        } else {
-            filePointers = null;
-        }
-
-        // Create an iterator over the above chunk boundaries.
-        final BAMFileIndexIterator iterator = new BAMFileIndexIterator(filePointers);
-
-        // Add some preprocessing filters for edge-case reads that don't fit into this
-        // query type.
-        return new BAMQueryFilteringIterator(iterator, new BAMQueryMultipleIntervalsIteratorFilter(intervals, contained));
-    }
-
-
-
-
-    /**
-     * Look for BAM index file according to standard naming convention.
-     *
-     * @param dataFile BAM file name.
-     * @return Index file name, or null if not found.
-     */
-    private static File findIndexFile(final File dataFile) {
-        // If input is foo.bam, look for foo.bai
-        File indexFile;
-        final String fileName = dataFile.getName();
-        if (fileName.endsWith(BamFileIoUtils.BAM_FILE_EXTENSION)) {
-            final String bai = fileName.substring(0, fileName.length() - BamFileIoUtils.BAM_FILE_EXTENSION.length()) + BAMIndex.BAMIndexSuffix;
-            indexFile = new File(dataFile.getParent(), bai);
-            if (indexFile.exists()) {
-                return indexFile;
-            }
-        }
-
-        // If foo.bai doesn't exist look for foo.bam.bai
-        indexFile = new File(dataFile.getParent(), dataFile.getName() + BAMIndex.BAMIndexSuffix);
-        if (indexFile.exists()) {
-            return indexFile;
-        } else {
-            return null;
-        }
-    }
-
-    /**
-     * Iterate over the SAMRecords defined by the sections of the file described in the ctor argument.
-     */
-    private class BAMFileIndexIterator extends BAMFileIterator {
-
-        private long[] mFilePointers = null;
-        private int mFilePointerIndex = 0;
-        private long mFilePointerLimit = -1;
-
-        /**
-         * Prepare to iterate through SAMRecords stored in the specified compressed blocks at the given offset.
-         * @param filePointers the block / offset combination, stored in chunk format.
-         */
-        BAMFileIndexIterator(final long[] filePointers) {
-            super(false);  // delay advance() until after construction
-            mFilePointers = filePointers;
-            advance();
-        }
-
-        SAMRecord getNextRecord()
-            throws IOException {
-            // Advance to next file block if necessary
-            while (mCompressedInputStream.getFilePointer() >= mFilePointerLimit) {
-                if (mFilePointers == null ||
-                        mFilePointerIndex >= mFilePointers.length) {
-                    return null;
-                }
-                final long startOffset = mFilePointers[mFilePointerIndex++];
-                final long endOffset = mFilePointers[mFilePointerIndex++];
-                mCompressedInputStream.seek(startOffset);
-                mFilePointerLimit = endOffset;
-            }
-            // Pull next record from stream
-            return super.getNextRecord();
-        }
-    }
-
-    /**
-     * Pull SAMRecords from a coordinate-sorted iterator, and filter out any that do not match the filter.
-     */
-    public class BAMQueryFilteringIterator extends AbstractBamIterator {
-        /**
-         * The wrapped iterator.
-         */
-        protected final CloseableIterator<SAMRecord> wrappedIterator;
-        /**
-         * The next record to be returned.  Will be null if no such record exists.
-         */
-        protected SAMRecord mNextRecord;
-        private final BAMIteratorFilter iteratorFilter;
-
-        public BAMQueryFilteringIterator(final CloseableIterator<SAMRecord> iterator,
-                                         final BAMIteratorFilter iteratorFilter) {
-            this.wrappedIterator = iterator;
-            this.iteratorFilter = iteratorFilter;
-            mNextRecord = advance();
-        }
-
-        /**
-         * Returns true if a next element exists; false otherwise.
-         */
-        public boolean hasNext() {
-            assertOpen();
-            return mNextRecord != null;
-        }
-
-        /**
-         * Gets the next record from the given iterator.
-         * @return The next SAM record in the iterator.
-         */
-        public SAMRecord next() {
-            if(!hasNext())
-                throw new NoSuchElementException("BAMQueryFilteringIterator: no next element available");
-            final SAMRecord currentRead = mNextRecord;
-            mNextRecord = advance();
-            return currentRead;
-        }
-
-        SAMRecord advance() {
-            while (true) {
-                // Pull next record from stream
-                if(!wrappedIterator.hasNext())
-                    return null;
-
-                final SAMRecord record = wrappedIterator.next();
-                switch (iteratorFilter.compareToFilter(record)) {
-                    case MATCHES_FILTER: return record;
-                    case STOP_ITERATION: return null;
-                    case CONTINUE_ITERATION: break; // keep looping
-                    default: throw new SAMException("Unexpected return from compareToFilter");
-                }
-            }
-        }
-    }
-
-    interface BAMIteratorFilter {
-        /**
-         * Determine if given record passes the filter, and if it does not, whether iteration should continue
-         * or if this record is beyond the region(s) of interest.
-         */
-        FilteringIteratorState compareToFilter(final SAMRecord record);
-    }
-
-    /**
-     * A decorating iterator that filters out records that do not match the given reference and start position.
-     */
-    private class BAMStartingAtIteratorFilter implements BAMIteratorFilter {
-
-        private final int mReferenceIndex;
-        private final int mRegionStart;
-
-        public BAMStartingAtIteratorFilter(final int referenceIndex, final int start) {
-            mReferenceIndex = referenceIndex;
-            mRegionStart = start;
-        }
-
-        /**
-         *
-         * @return MATCHES_FILTER if this record matches the filter;
-         * CONTINUE_ITERATION if does not match filter but iteration should continue;
-         * STOP_ITERATION if does not match filter and iteration should end.
-         */
-        @Override
-        public FilteringIteratorState compareToFilter(final SAMRecord record) {
-            // If beyond the end of this reference sequence, end iteration
-            final int referenceIndex = record.getReferenceIndex();
-            if (referenceIndex < 0 || referenceIndex > mReferenceIndex) {
-                return FilteringIteratorState.STOP_ITERATION;
-            } else if (referenceIndex < mReferenceIndex) {
-                // If before this reference sequence, continue
-                return FilteringIteratorState.CONTINUE_ITERATION;
-            }
-            final int alignmentStart = record.getAlignmentStart();
-            if (alignmentStart > mRegionStart) {
-                // If scanned beyond target region, end iteration
-                return FilteringIteratorState.STOP_ITERATION;
-            } else  if (alignmentStart == mRegionStart) {
-                    return FilteringIteratorState.MATCHES_FILTER;
-            } else {
-                return FilteringIteratorState.CONTINUE_ITERATION;
-            }
-        }
-
-    }
-
-    private class BAMFileIndexUnmappedIterator extends BAMFileIterator  {
-        private BAMFileIndexUnmappedIterator() {
-            while (this.hasNext() && peek().getReferenceIndex() != SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX) {
-                advance();
-            }
-        }
-    }
-
-    /**
-     * Filters out records that do not match any of the given intervals and query type.
-     */
-    private class BAMQueryMultipleIntervalsIteratorFilter implements BAMIteratorFilter {
-        final SAMFileReader.QueryInterval[] intervals;
-        final boolean contained;
-        int intervalIndex = 0;
-
-
-        public BAMQueryMultipleIntervalsIteratorFilter(final SAMFileReader.QueryInterval[] intervals,
-                                                       final boolean contained) {
-            this.contained = contained;
-            this.intervals = intervals;
-        }
-
-        @Override
-        public FilteringIteratorState compareToFilter(final SAMRecord record) {
-            while (intervalIndex < intervals.length) {
-                final IntervalComparison comparison = compareIntervalToRecord(intervals[intervalIndex], record);
-                switch (comparison) {
-                    // Interval is before SAMRecord.  Try next interval;
-                    case BEFORE: ++intervalIndex; break;
-                    // Interval is after SAMRecord.  Keep scanning forward in SAMRecords
-                    case AFTER: return FilteringIteratorState.CONTINUE_ITERATION;
-                    // Found a good record
-                    case CONTAINED: return FilteringIteratorState.MATCHES_FILTER;
-                    // Either found a good record, or else keep scanning SAMRecords
-                    case OVERLAPPING: return
-                            (contained ? FilteringIteratorState.CONTINUE_ITERATION : FilteringIteratorState.MATCHES_FILTER);
-                }
-            }
-            // Went past the last interval
-            return FilteringIteratorState.STOP_ITERATION;
-        }
-
-        private IntervalComparison compareIntervalToRecord(final SAMFileReader.QueryInterval interval, final SAMRecord record) {
-            // interval.end <= 0 implies the end of the reference sequence.
-            final int intervalEnd = (interval.end <= 0? Integer.MAX_VALUE: interval.end);
-            final int alignmentEnd;
-            if (record.getReadUnmappedFlag() && record.getAlignmentStart() != SAMRecord.NO_ALIGNMENT_START) {
-                // Unmapped read with coordinate of mate.
-                alignmentEnd = record.getAlignmentStart();
-            } else {
-                alignmentEnd = record.getAlignmentEnd();
-            }
-
-            if (interval.referenceIndex < record.getReferenceIndex()) return IntervalComparison.BEFORE;
-            else if (interval.referenceIndex > record.getReferenceIndex()) return IntervalComparison.AFTER;
-            else if (intervalEnd < record.getAlignmentStart()) return IntervalComparison.BEFORE;
-            else if (alignmentEnd < interval.start) return IntervalComparison.AFTER;
-            else if (CoordMath.encloses(interval.start, intervalEnd, record.getAlignmentStart(), alignmentEnd)) {
-                return IntervalComparison.CONTAINED;
-            } else return IntervalComparison.OVERLAPPING;
-        }
-    }
-
-    private enum IntervalComparison {
-        BEFORE, AFTER, OVERLAPPING, CONTAINED
-    }
-
-    /**
-     * Type returned by BAMIteratorFilter that tell BAMQueryFilteringIterator how to handle each SAMRecord.
-     */
-    private enum FilteringIteratorState {
-        MATCHES_FILTER, STOP_ITERATION, CONTINUE_ITERATION
-
-    }
-}
diff --git a/src/java/net/sf/samtools/BAMFileWriter.java b/src/java/net/sf/samtools/BAMFileWriter.java
deleted file mode 100644
index 04dda87..0000000
--- a/src/java/net/sf/samtools/BAMFileWriter.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import net.sf.samtools.util.BinaryCodec;
-import net.sf.samtools.util.BlockCompressedFilePointerUtil;
-import net.sf.samtools.util.BlockCompressedInputStream;
-import net.sf.samtools.util.BlockCompressedOutputStream;
-import net.sf.samtools.util.BlockCompressedStreamConstants;
-import net.sf.samtools.util.CloserUtil;
-import net.sf.samtools.util.IOUtil;
-import net.sf.samtools.util.RuntimeIOException;
-
-import java.io.DataOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.StringWriter;
-import java.io.Writer;
-
-/**
- * Concrete implementation of SAMFileWriter for writing gzipped BAM files.
- */
-class BAMFileWriter extends SAMFileWriterImpl {
-
-    private final BinaryCodec outputBinaryCodec;
-    private BAMRecordCodec bamRecordCodec = null;
-    private final BlockCompressedOutputStream blockCompressedOutputStream;
-    private BAMIndexer bamIndexer = null;
-
-    protected BAMFileWriter(final File path) {
-        blockCompressedOutputStream = new BlockCompressedOutputStream(path);
-        outputBinaryCodec = new BinaryCodec(new DataOutputStream(blockCompressedOutputStream));
-        outputBinaryCodec.setOutputFileName(path.getAbsolutePath());
-    }
-
-    protected BAMFileWriter(final File path, final int compressionLevel) {
-        blockCompressedOutputStream = new BlockCompressedOutputStream(path, compressionLevel);
-        outputBinaryCodec = new BinaryCodec(new DataOutputStream(blockCompressedOutputStream));
-        outputBinaryCodec.setOutputFileName(path.getAbsolutePath());
-    }
-
-    protected BAMFileWriter(final OutputStream os, final File file) {
-        blockCompressedOutputStream = new BlockCompressedOutputStream(os, file);
-        outputBinaryCodec = new BinaryCodec(new DataOutputStream(blockCompressedOutputStream));
-        outputBinaryCodec.setOutputFileName(getPathString(file));
-    }
-
-    protected BAMFileWriter(final OutputStream os, final File file, final int compressionLevel) {
-        blockCompressedOutputStream = new BlockCompressedOutputStream(os, file, compressionLevel);
-        outputBinaryCodec = new BinaryCodec(new DataOutputStream(blockCompressedOutputStream));
-        outputBinaryCodec.setOutputFileName(getPathString(file));
-    }
-
-    private void prepareToWriteAlignments() {
-        if (bamRecordCodec == null) {
-            bamRecordCodec = new BAMRecordCodec(getFileHeader());
-            bamRecordCodec.setOutputStream(outputBinaryCodec.getOutputStream(), getFilename());
-        }
-    }
-
-    /** @return absolute path, or null if arg is null.  */
-    private String getPathString(final File path){
-        return (path != null) ? path.getAbsolutePath() : null;
-    }
-
-   // Allow enabling the bam index construction
-   // only enabled by factory method before anything is written
-   void enableBamIndexConstruction () {
-        if (!getSortOrder().equals(SAMFileHeader.SortOrder.coordinate)){
-           throw new SAMException("Not creating BAM index since not sorted by coordinates: " + getSortOrder());
-        }
-        if(getFilename() == null){
-            throw new SAMException("Not creating BAM index since we don't have an output file name");
-        }
-        bamIndexer = createBamIndex(getFilename());
-    }
-
-    private BAMIndexer createBamIndex(final String path) {
-        try {
-            final String indexFileBase = path.endsWith(BamFileIoUtils.BAM_FILE_EXTENSION) ?
-                    path.substring(0, path.lastIndexOf(".")) : path;
-            final File indexFile = new File(indexFileBase + BAMIndex.BAMIndexSuffix);
-            if (indexFile.exists()) {
-                if (!indexFile.canWrite()) {
-                    throw new SAMException("Not creating BAM index since unable to write index file " + indexFile);
-                }
-            }
-            return new BAMIndexer(indexFile, getFileHeader());
-        } catch (Exception e) {
-            throw new SAMException("Not creating BAM index", e);
-        }
-    }
-
-    protected void writeAlignment(final SAMRecord alignment) {
-        prepareToWriteAlignments();
-
-        if (bamIndexer != null) {
-            try {
-                final long startOffset = blockCompressedOutputStream.getFilePointer();
-                bamRecordCodec.encode(alignment);
-                final long stopOffset = blockCompressedOutputStream.getFilePointer();
-                // set the alignment's SourceInfo and then prepare its index information
-                alignment.setFileSource(new SAMFileSource(null, new BAMFileSpan(new Chunk(startOffset, stopOffset))));
-                bamIndexer.processAlignment(alignment);
-            } catch (Exception e) {
-                bamIndexer = null;
-                throw new SAMException("Exception when processing alignment for BAM index " + alignment, e);
-            }
-        } else {
-            bamRecordCodec.encode(alignment);
-        }
-    }
-
-    protected void writeHeader(final String textHeader) {
-        writeHeader(outputBinaryCodec, getFileHeader(), textHeader);
-    }
-
-    protected void finish() {
-        outputBinaryCodec.close();
-            try {
-                if (bamIndexer != null) {
-                    bamIndexer.finish();
-                }
-            } catch (Exception e) {
-                throw new SAMException("Exception writing BAM index file", e);
-            }
-    }
-
-    /** @return absolute path, or null if this writer does not correspond to a file.  */
-    protected String getFilename() {
-        return outputBinaryCodec.getOutputFileName();
-    }
-
-    /**
-     * Writes a header to a BAM file. samFileHeader and headerText are redundant - one can be used to regenerate the other but in
-     * some instances we already have both so this allows us to save some cycles
-     */
-    protected static void writeHeader(final BinaryCodec outputBinaryCodec, final SAMFileHeader samFileHeader, final String headerText) {
-        outputBinaryCodec.writeBytes(BAMFileConstants.BAM_MAGIC);
-
-        // calculate and write the length of the SAM file header text and the header text
-        outputBinaryCodec.writeString(headerText, true, false);
-
-        // write the sequences binarily.  This is redundant with the text header
-        outputBinaryCodec.writeInt(samFileHeader.getSequenceDictionary().size());
-        for (final SAMSequenceRecord sequenceRecord: samFileHeader.getSequenceDictionary().getSequences()) {
-            outputBinaryCodec.writeString(sequenceRecord.getSequenceName(), true, true);
-            outputBinaryCodec.writeInt(sequenceRecord.getSequenceLength());
-        }
-    }
-
-    /**
-     * Writes a header to a BAM file. Might need to regenerate the String version of the header, if one already has both the
-     * samFileHeader and the String, use the version of this method which takes both.
-     */
-    protected static void writeHeader(final BinaryCodec outputBinaryCodec, final SAMFileHeader samFileHeader) {
-        // Do not use SAMFileHeader.getTextHeader() as it is not updated when changes to the underlying object are made
-        final String headerString;
-        final Writer stringWriter = new StringWriter();
-        new SAMTextHeaderCodec().encode(stringWriter, samFileHeader, true);
-        headerString = stringWriter.toString();
-
-        writeHeader(outputBinaryCodec, samFileHeader, headerString);
-    }
-
-    protected static void writeHeader(final OutputStream outputStream, final SAMFileHeader samFileHeader) {
-        final BlockCompressedOutputStream blockCompressedOutputStream = new BlockCompressedOutputStream(outputStream, null);
-        final BinaryCodec outputBinaryCodec = new BinaryCodec(new DataOutputStream(blockCompressedOutputStream));
-        writeHeader(outputBinaryCodec, samFileHeader);
-        try {
-            blockCompressedOutputStream.flush();
-        } catch (final IOException ioe) {
-            throw new RuntimeIOException(ioe);
-        }
-    }
-}
diff --git a/src/java/net/sf/samtools/BAMIndex.java b/src/java/net/sf/samtools/BAMIndex.java
deleted file mode 100644
index 2e76127..0000000
--- a/src/java/net/sf/samtools/BAMIndex.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-/**
- * A basic interface for querying BAM indices.
- *
- * @author mhanna
- * @version 0.1
- */
-public interface BAMIndex {
-
-    public static final String BAMIndexSuffix = ".bai";
-
-    /**
-     * Gets the compressed chunks which should be searched for the contents of records contained by the span
-     * referenceIndex:startPos-endPos, inclusive.  See the BAM spec for more information on how a chunk is
-     * represented.
-     * 
-     * @param referenceIndex The contig.
-     * @param startPos Genomic start of query.
-     * @param endPos Genomic end of query.
-     * @return A file span listing the chunks in the BAM file.
-     */
-    BAMFileSpan getSpanOverlapping(final int referenceIndex, final int startPos, final int endPos);
-
-    /**
-     * Gets the start of the last linear bin in the index.
-     * @return The chunk indicating the start of the last bin in the linear index.
-     */
-    long getStartOfLastLinearBin();
-
-    /**
-     * Gets meta data for the given reference including information about number of aligned, unaligned, and noCoordinate records
-     * @param reference the reference of interest
-     * @return meta data for the reference
-     */
-    public BAMIndexMetaData getMetaData(int reference);
-
-    /**
-     * Close the index and release any associated resources.
-     */
-    void close();
-}
diff --git a/src/java/net/sf/samtools/BAMIndexContent.java b/src/java/net/sf/samtools/BAMIndexContent.java
deleted file mode 100644
index 8ad8aeb..0000000
--- a/src/java/net/sf/samtools/BAMIndexContent.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-/**
- * Represents the contents of a bam index file for one reference.
- * A BAM index (.bai) file contains information for all references in the bam file.
- * This class describes the data present in the index file for one of these references;
- * including the bins, chunks, and linear index.
- */
-class BAMIndexContent extends BinningIndexContent {
-    /**
-     * Chunks containing metaData for the reference, e.g. number of aligned and unaligned records
-     */
-    private final BAMIndexMetaData mMetaData;
-
-
-
-    /**
-     * @param referenceSequence Content corresponds to this reference.
-     * @param binList              Array of bins represented by this content, possibly sparse
-     * @param metaData          Extra information about the reference in this index
-     * @param linearIndex       Additional index used to optimize queries
-     */
-    BAMIndexContent(final int referenceSequence, final BinList binList, final BAMIndexMetaData metaData, final LinearIndex linearIndex) {
-        super(referenceSequence, binList, linearIndex);
-        this.mMetaData = metaData;
-    }
-
-    /**
-     * @param referenceSequence Content corresponds to this reference.
-     * @param bins              Array of bins represented by this content, possibly sparse
-     * @param numberOfBins      Number of non-null bins
-     * @param metaData          Extra information about the reference in this index
-     * @param linearIndex       Additional index used to optimize queries
-     */
-    BAMIndexContent(final int referenceSequence, final Bin[] bins, final int numberOfBins, final BAMIndexMetaData metaData, final LinearIndex linearIndex) {
-        this(referenceSequence, new BinList(bins, numberOfBins), metaData, linearIndex);
-    }
-
-    /**
-     * @return the meta data chunks for this content
-     */
-    public BAMIndexMetaData getMetaData() {
-        return mMetaData;
-    }
-
-}
diff --git a/src/java/net/sf/samtools/BAMIndexMetaData.java b/src/java/net/sf/samtools/BAMIndexMetaData.java
deleted file mode 100644
index afac41b..0000000
--- a/src/java/net/sf/samtools/BAMIndexMetaData.java
+++ /dev/null
@@ -1,243 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import net.sf.samtools.util.BlockCompressedFilePointerUtil;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.List;
-
-/**
- * Metadata about the bam index contained within the bam index.
- * One instance created per index file.
- */
-public class BAMIndexMetaData {
-
-    // information for the entire index.
-    // stored at the end of the index
-    private long noCoordinateRecords = 0;
-
-    // information for each reference.
-    // stored in two chunks in bin # MAX_BINS
-    private long firstOffset = -1;
-    private long lastOffset = 0;
-    private int alignedRecords = 0;
-    private int unAlignedRecords = 0;  // unmapped, but associated with this reference
-
-
-    /**
-     * Constructor used when writing an index
-     * construct one instance for each index generated
-     */
-    BAMIndexMetaData() {
-        noCoordinateRecords = 0;
-        newReference();
-    }
-
-    /**
-     * Constructor used when reading an index
-     * construct one instance for each index generated
-     */
-    BAMIndexMetaData(List<Chunk> chunkList) {
-        noCoordinateRecords = 0;
-
-        if (chunkList == null || chunkList.size() == 0) {
-            // System.out.println("No metadata chunks");
-        } else if (chunkList.size() != 2) {
-            throw new SAMException("Unexpected number of metadata chunks " + (chunkList.size()));
-        }
-        // fill in the first/lastOffset un/alignedRecords from this
-        boolean firstChunk = true;
-        if (chunkList != null) {
-            for (Chunk c : chunkList) {
-                long start = c.getChunkStart();
-                long end = c.getChunkEnd();
-                if (firstChunk) {
-                    firstOffset = start;
-                    lastOffset = end;
-                    firstChunk = false;
-                } else {
-                    firstChunk = true;
-                    alignedRecords = (int) start;
-                    unAlignedRecords = (int) end;
-                }
-            }
-        }
-    }
-
-    /**
-     * @return the count of aligned records associated with this reference
-     */
-    public int getAlignedRecordCount() {
-        return alignedRecords;
-    }
-
-    /**
-     * @return the count of unaligned records associated with this reference
-     */
-    public int getUnalignedRecordCount() {
-        return unAlignedRecords;
-    }
-
-    /**
-     * Call for each new reference sequence encountered
-     */
-    void newReference() {
-        firstOffset = -1;
-        lastOffset = 0;
-        alignedRecords = 0;
-        unAlignedRecords = 0;
-    }
-
-    /**
-     * Extract relevant metaData from the record and its filePointer
-     * Call only once per record in the file being indexed
-     *
-     * @param rec
-     */
-    void recordMetaData(final SAMRecord rec) {
-
-        final int alignmentStart = rec.getAlignmentStart();
-        if (alignmentStart == SAMRecord.NO_ALIGNMENT_START) {
-            incrementNoCoordinateRecordCount();
-            return;
-        }
-
-        if (rec.getFileSource() == null){
-            throw new SAMException("BAM cannot be indexed without setting a fileSource for record " + rec);
-        }
-        final Chunk newChunk = ((BAMFileSpan) rec.getFileSource().getFilePointer()).getSingleChunk();
-        final long start = newChunk.getChunkStart();
-        final long end = newChunk.getChunkEnd();
-
-        if (rec.getReadUnmappedFlag()) {
-            unAlignedRecords++;
-        } else {
-            alignedRecords++;
-        }
-        if (BlockCompressedFilePointerUtil.compare(start, firstOffset) < 1 || firstOffset == -1) {
-            this.firstOffset = start;
-        }
-        if (BlockCompressedFilePointerUtil.compare(lastOffset, end) < 1) {
-            this.lastOffset = end;
-        }
-    }
-
-    /**
-     * Call whenever a reference with no coordinate information is encountered in the bam file
-     */
-    void incrementNoCoordinateRecordCount() {
-        noCoordinateRecords++;
-    }
-
-    /**
-     * Set local variable. Normally noCoordinateRecord count accessed from AbstractBAMFileIndex when reading
-     */
-    private void setNoCoordinateRecordCount(long count) {
-        noCoordinateRecords = count;
-    }
-
-
-    /**
-     * @return the count of records with no coordinate information in the bam file.
-     * Not public, since only used by BAMIndexer when writing bam index.
-     * Readers of bam index should use AbstractBAMFileIndex.getNoCoordinateRecordCount.
-     */
-    long getNoCoordinateRecordCount() {
-        return noCoordinateRecords;
-    }
-
-    /**
-     * @return the first virtual file offset used by this reference
-     */
-    long getFirstOffset() {
-        return firstOffset;
-    }
-
-    /**
-     * @return the last virtual file offset used by this reference
-     */
-    long getLastOffset() {
-        return lastOffset;
-    }
-
-    /**
-     * Prints meta-data statistics from BAM index (.bai) file
-     * Statistics include count of aligned and unaligned reads for each reference sequence
-     * and a count of all records with no start coordinate
-     */
-    static public void printIndexStats(final File inputBamFile) {
-        try {
-            final BAMFileReader bam = new BAMFileReader(inputBamFile, null, false, SAMFileReader.ValidationStringency.SILENT, new DefaultSAMRecordFactory());
-            if (!bam.hasIndex()) {
-                throw new SAMException("No index for bam file " + inputBamFile);
-            }
-            BAMIndexMetaData[] data = getIndexStats(bam);
-            // read through all the bins of every reference.
-            int nRefs = bam.getFileHeader().getSequenceDictionary().size();
-            for (int i = 0; i < nRefs; i++) {
-                final SAMSequenceRecord seq = bam.getFileHeader().getSequence(i);
-                if (seq == null) continue;
-                final String sequenceName = seq.getSequenceName();
-                final int sequenceLength = seq.getSequenceLength();
-                System.out.print(sequenceName + ' ' + "length=\t" + sequenceLength);
-                if (data[i] == null) {
-                    System.out.println();
-                    continue;
-                }
-                System.out.println("\tAligned= " + data[i].getAlignedRecordCount() +
-                        "\tUnaligned= " + data[i].getUnalignedRecordCount());
-            }
-            System.out.println("NoCoordinateCount= " + data[0].getNoCoordinateRecordCount());
-        } catch (IOException e) {
-            throw new SAMException("Exception in getting index statistics", e);
-        }
-    }
-
-    /**
-     * Prints meta-data statistics from BAM index (.bai) file
-     * Statistics include count of aligned and unaligned reads for each reference sequence
-     * and a count of all records with no start coordinate
-     */
-    static public BAMIndexMetaData[] getIndexStats(final BAMFileReader bam){
-
-        AbstractBAMFileIndex index = (AbstractBAMFileIndex) bam.getIndex();
-        // read through all the bins of every reference.
-        int nRefs = index.getNumberOfReferences();
-        BAMIndexMetaData[] result = new BAMIndexMetaData[nRefs == 0 ? 1 : nRefs];
-        for (int i = 0; i < nRefs; i++) {
-            result[i] = index.getMetaData(i);
-        }
-
-        if (result[0] == null){
-           result[0] = new BAMIndexMetaData();
-        }
-        final Long noCoordCount = index.getNoCoordinateCount();
-        if (noCoordCount != null)  // null in old index files without metadata
-           result[0].setNoCoordinateRecordCount(noCoordCount);
-
-        return result;
-    }
-}
diff --git a/src/java/net/sf/samtools/BAMIndexWriter.java b/src/java/net/sf/samtools/BAMIndexWriter.java
deleted file mode 100644
index bbe9846..0000000
--- a/src/java/net/sf/samtools/BAMIndexWriter.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-/**
- * A basic interface for writing BAM index files
- *
- * @author mborkan
- */
-interface BAMIndexWriter {  // note - only package visibility
-
-    /**
-     * Write the data for one alignments to one reference sequence
-     *
-     * @param content    BAMIndexContent containing the information for one reference
-     */
-    public void writeReference(final BAMIndexContent content);
-
-    /**
-     * Writes out the count of records without coordinates
-     *
-     * @param count
-     */
-    public void writeNoCoordinateRecordCount(final Long count);
-
-    /**
-     * Any necessary processing at the end of the file
-     */
-    public void close();
-
-}
\ No newline at end of file
diff --git a/src/java/net/sf/samtools/BAMIndexer.java b/src/java/net/sf/samtools/BAMIndexer.java
deleted file mode 100644
index b58295a..0000000
--- a/src/java/net/sf/samtools/BAMIndexer.java
+++ /dev/null
@@ -1,259 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sub-license, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import java.io.File;
-import java.io.OutputStream;
-
-/**
- * Class for both constructing BAM index content and writing it out.
- * There are two usage patterns:
- * 1) Building a bam index from an existing bam file
- * 2) Building a bam index while building the bam file
- * In both cases, processAlignment is called for each alignment record and
- * finish() is called at the end.
- */
-public class BAMIndexer {
-
-    // The number of references (chromosomes) in the BAM file
-    private final int numReferences;
-
-    // output written as binary, or (for debugging) as text
-    private final BAMIndexWriter outputWriter;
-
-    private int currentReference = 0;
-
-    // content is built up from the input bam file using this
-    private final BAMIndexBuilder indexBuilder;
-
-    /**
-     * @param output     binary BAM Index (.bai) file
-     * @param fileHeader header for the corresponding bam file
-     */
-    public BAMIndexer(final File output, final SAMFileHeader fileHeader) {
-
-        numReferences = fileHeader.getSequenceDictionary().size();
-        indexBuilder = new BAMIndexBuilder(fileHeader.getSequenceDictionary());
-        outputWriter = new BinaryBAMIndexWriter(numReferences, output);
-    }
-
-    /**
-     * Prepare to index a BAM.
-     * @param output Index will be written here.  output will be closed when finish() method is called.
-     * @param fileHeader header for the corresponding bam file.
-     */
-    public BAMIndexer(final OutputStream output, final SAMFileHeader fileHeader) {
-
-        numReferences = fileHeader.getSequenceDictionary().size();
-        indexBuilder = new BAMIndexBuilder(fileHeader.getSequenceDictionary());
-        outputWriter = new BinaryBAMIndexWriter(numReferences, output);
-    }
-
-    /**
-     * Record any index information for a given BAM record.
-     * If this alignment starts a new reference, write out the old reference.
-     * Requires a non-null value for rec.getFileSource().
-     *
-     * @param rec The BAM record
-     */
-    public void processAlignment(final SAMRecord rec) {
-        try {
-            final int reference = rec.getReferenceIndex();
-            if (reference != SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX && reference != currentReference) {
-                // process any completed references
-                advanceToReference(reference);
-            }
-            indexBuilder.processAlignment(rec);
-        } catch (final Exception e) {
-            throw new SAMException("Exception creating BAM index for record " + rec, e);
-        }
-    }
-
-    /**
-     * After all the alignment records have been processed, finish is called.
-     * Writes any final information and closes the output file.
-     */
-    public void finish() {
-        // process any remaining references
-        advanceToReference(numReferences);
-        outputWriter.writeNoCoordinateRecordCount(indexBuilder.getNoCoordinateRecordCount());
-        outputWriter.close();
-    }
-
-    /** write out any references between the currentReference and the nextReference */
-    private void advanceToReference(final int nextReference) {
-        while (currentReference < nextReference) {
-            final BAMIndexContent content = indexBuilder.processReference(currentReference);
-            outputWriter.writeReference(content);
-            currentReference++;
-            if (currentReference < numReferences) {
-                indexBuilder.startNewReference();
-            }
-        }
-    }
-
-    /**
-     * Generates a BAM index file, either textual or binary, from an input BAI file.
-     * Only used for testing, but located here for visibility into CachingBAMFileIndex.
-     *
-     * @param output     BAM Index (.bai) file (or bai.txt file when text)
-     * @param textOutput Whether to create text output or binary
-     */
-    static public void createAndWriteIndex(final File input, final File output, final boolean textOutput) {
-
-        // content is from an existing bai file.
-
-        final CachingBAMFileIndex existingIndex = new CachingBAMFileIndex(input, null);
-        final int n_ref = existingIndex.getNumberOfReferences();
-        final BAMIndexWriter outputWriter;
-        if (textOutput) {
-            outputWriter = new TextualBAMIndexWriter(n_ref, output);
-        } else {
-            outputWriter = new BinaryBAMIndexWriter(n_ref, output);
-        }
-
-        // write the content one reference at a time
-        try {
-            for (int i = 0; i < n_ref; i++) {
-                outputWriter.writeReference(existingIndex.getQueryResults(i));
-            }
-            outputWriter.writeNoCoordinateRecordCount(existingIndex.getNoCoordinateCount());
-            outputWriter.close();
-
-        } catch (final Exception e) {
-            throw new SAMException("Exception creating BAM index", e);
-        }
-    }
-
-    /**
-     * Class for constructing BAM index files.
-     * One instance is used to construct an entire index.
-     * processAlignment is called for each alignment until a new reference is encountered, then
-     * processReference is called when all records for the reference have been processed.
-     */
-    private class BAMIndexBuilder {
-
-        private final SAMSequenceDictionary sequenceDictionary;
-
-        private BinningIndexBuilder binningIndexBuilder;
-
-        private int currentReference = -1;
-
-        // information in meta data
-        private final BAMIndexMetaData indexStats = new BAMIndexMetaData();
-
-        BAMIndexBuilder(final SAMSequenceDictionary sequenceDictionary) {
-            this.sequenceDictionary = sequenceDictionary;
-            if (!sequenceDictionary.isEmpty()) startNewReference();
-        }
-
-        /**
-         * Record any index information for a given BAM record
-         *
-         * @param rec The BAM record. Requires rec.getFileSource() is non-null.
-         */
-        public void processAlignment(final SAMRecord rec) {
-
-            // metadata
-            indexStats.recordMetaData(rec);
-
-            if (rec.getAlignmentStart() == SAMRecord.NO_ALIGNMENT_START) {
-                return; // do nothing for records without coordinates, but count them
-            }
-
-            // various checks
-            final int reference = rec.getReferenceIndex();
-            if (reference != currentReference) {
-                throw new SAMException("Unexpected reference " + reference +
-                        " when constructing index for " + currentReference + " for record " + rec);
-            }
-
-            binningIndexBuilder.processFeature(new BinningIndexBuilder.FeatureToBeIndexed() {
-                @Override
-                public int getStart() {
-                    return rec.getAlignmentStart();
-                }
-
-                @Override
-                public int getEnd() {
-                    return rec.getAlignmentEnd();
-                }
-
-                @Override
-                public Integer getIndexingBin() {
-                    final Integer binNumber = rec.getIndexingBin();
-                    return (binNumber == null ? rec.computeIndexingBin() : binNumber);
-
-                }
-
-                @Override
-                public Chunk getChunk() {
-                    final SAMFileSource source = rec.getFileSource();
-                    if (source == null) {
-                        throw new SAMException("No source (virtual file offsets); needed for indexing on BAM Record " + rec);
-                    }
-                    return ((BAMFileSpan) source.getFilePointer()).getSingleChunk();
-                }
-            });
-
-        }
-
-        /**
-         * Creates the BAMIndexContent for this reference.
-         * Requires all alignments of the reference have already been processed.
-         * @return Null if there are no features for this reference.
-         */
-        public BAMIndexContent processReference(final int reference) {
-
-            if (reference != currentReference) {
-                throw new SAMException("Unexpected reference " + reference + " when constructing index for " + currentReference);
-            }
-
-            final BinningIndexContent indexContent = binningIndexBuilder.generateIndexContent();
-            if (indexContent == null) return null;
-            return new BAMIndexContent(indexContent.getReferenceSequence(), indexContent.getBins(),
-                    indexStats, indexContent.getLinearIndex());
-
-        }
-
-        /**
-         * @return the count of records with no coordinate positions
-         */
-        public long getNoCoordinateRecordCount() {
-            return indexStats.getNoCoordinateRecordCount();
-        }
-
-        /**
-         * reinitialize all data structures when the reference changes
-         */
-        void startNewReference() {
-            ++currentReference;
-            // I'm not crazy about recycling this object, but that is the way it was originally written and
-            // it helps keep track of no-coordinate read count (which shouldn't be stored in this class anyway).
-            indexStats.newReference();
-            binningIndexBuilder = new BinningIndexBuilder(currentReference,
-                    sequenceDictionary.getSequence(currentReference).getSequenceLength());
-        }
-    }
-}
\ No newline at end of file
diff --git a/src/java/net/sf/samtools/BAMRecord.java b/src/java/net/sf/samtools/BAMRecord.java
deleted file mode 100644
index 22a48bc..0000000
--- a/src/java/net/sf/samtools/BAMRecord.java
+++ /dev/null
@@ -1,360 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import net.sf.samtools.util.StringUtil;
-
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
-
-
-/**
- * Wrapper class for binary BAM records.
- * Delays unpacking all data binary until requested.
- */
-public class BAMRecord extends SAMRecord {
-    /**
-     * Offset of the read name in the variable length section of the disk representation of BAMRecord
-     */
-    private static final int READ_NAME_OFFSET = 0;
-
-    /**
-     * Variable-length part of BAMRecord.  Lazily decoded.
-     */
-    private byte[] mRestOfBinaryData = null;
-
-    // Various lengths are stored, because they are in the fixed-length part of the BAMRecord, and it is
-    // more efficient to remember them than decode the element they store the length of.
-    // The length becomes invalid if the element is changed with a set() method.
-    private int mReadLength = 0;
-    private boolean mReadLengthValid = true;
-    private final short mReadNameLength;
-    private boolean mReadNameLengthValid = true;
-    private final int mCigarLength;
-    private boolean mCigarLengthValid = true;
-
-    // Whether or not the getter needs to decode the corresponding element.
-    // For all the other variable length elements, null == not yet decoded.
-    private boolean mAttributesDecoded = false;
-    private boolean mCigarDecoded = false;
-
-    /**
-     * If any of the properties set from mRestOfBinaryData have been overridden by calls to setters,
-     * this is set to true, indicating that mRestOfBinaryData cannot be used to write this record to disk.
-     */
-    private boolean mBinaryDataStale;
-
-    protected BAMRecord(final SAMFileHeader header,
-                        final int referenceID,
-                        final int coordinate,
-                        final short readNameLength,
-                        final short mappingQuality,
-                        final int indexingBin,
-                        final int cigarLen,
-                        final int flags,
-                        final int readLen,
-                        final int mateReferenceID,
-                        final int mateCoordinate,
-                        final int insertSize,
-                        final byte[] restOfData) {
-        super(header);
-        setReferenceIndex(referenceID);
-        setAlignmentStart(coordinate);
-        mReadNameLength = readNameLength;
-        setMappingQuality(mappingQuality);
-        mCigarLength = cigarLen;
-        setFlags(flags);
-        mReadLength = readLen;
-        setMateReferenceIndex(mateReferenceID);
-        setMateAlignmentStart(mateCoordinate);
-        setInferredInsertSize(insertSize);
-        mRestOfBinaryData = restOfData;
-
-        // Set these to null in order to mark them as being candidates for lazy initialization.
-        // If this is not done, they will have non-null defaults.
-        super.setReadName(null);
-        super.setCigarString(null);
-        super.setReadBases(null);
-        super.setBaseQualities(null);
-
-        // Do this after the above because setCigarString will clear it.
-        setIndexingBin(indexingBin);
-
-        // Mark the binary block as being valid for writing back out to disk
-        mBinaryDataStale = false;
-    }
-
-    /**
-     * Force all the lazily-initialized attributes to be decoded.
-     */
-    protected void eagerDecode() {
-        getReadName();
-        getCigar();
-        getReadBases();
-        getBaseQualities();
-        getBinaryAttributes();
-        super.eagerDecode();
-        mRestOfBinaryData = null;
-    }
-
-    /**
-     * If this record has a valid binary representation of the variable-length portion of a binary record stored,
-     * return that byte array, otherwise return null.  This will never be true for SAMRecords.  It will be true
-     * for BAMRecords that have not been eagerDecoded(), and for which none of the data in the variable-length
-     * portion has been changed.
-     */
-    @Override
-    public byte[] getVariableBinaryRepresentation() {
-        if (mBinaryDataStale) {
-            return null;
-        }
-        // This may have been set to null by eagerDecode()
-        return mRestOfBinaryData;
-    }
-
-    /**
-     * Depending on the concrete implementation, the binary file size of attributes may be known without
-     * computing them all.
-     *
-     * @return binary file size of attribute, if known, else -1.
-     */
-    @Override
-    public int getAttributesBinarySize() {
-        if (mBinaryDataStale || mRestOfBinaryData == null) {
-            return -1;
-        }
-        final int tagsOffset = readNameSize() + cigarSize() + basesSize() + qualsSize();
-        return mRestOfBinaryData.length - tagsOffset;
-    }
-
-    @Override
-    public void setReadName(final String value) {
-        super.setReadName(value);
-        mBinaryDataStale = true;
-        mReadNameLengthValid = false;
-    }
-
-    @Override
-    public void setCigar(final Cigar cigar) {
-        super.setCigar(cigar);
-        mBinaryDataStale = true;
-        mCigarLengthValid = false;
-        mCigarDecoded = true;
-    }
-
-    @Override
-    public void setCigarString(final String value) {
-        super.setCigarString(value);
-        mBinaryDataStale = true;
-        mCigarLengthValid = false;
-        mCigarDecoded = true;
-    }
-
-    @Override
-    public void setReadBases(final byte[] value) {
-        super.setReadBases(value);
-        mBinaryDataStale = true;
-        mReadLengthValid = false;
-    }
-
-    @Override
-    public void setBaseQualities(final byte[] value) {
-        super.setBaseQualities(value);
-        mBinaryDataStale = true;
-    }
-
-    @Override
-    protected void setAttribute(final short tag, final Object value, final boolean isUnsignedArray) {
-        // populate all the attributes from the binary block before overwriting one
-        getBinaryAttributes();
-        super.setAttribute(tag, value, isUnsignedArray);
-        mBinaryDataStale = true;
-    }
-
-    /**
-     * Removes all attributes.
-     */
-    @Override
-    public void clearAttributes() {
-        mAttributesDecoded = true;
-        mBinaryDataStale = true;
-        super.clearAttributes();
-    }
-
-    /**
-     * Avoids decoding binary block to get read length.
-     */
-    @Override
-    public int getReadLength() {
-        if (mReadLengthValid) {
-            return mReadLength;
-        }
-        return super.getReadLength();
-    }
-
-    @Override
-    public String getReadName() {
-        String result = super.getReadName();
-        if (mRestOfBinaryData != null && result == null) {
-            result = decodeReadName();
-            super.setReadName(result);
-        }
-        return result;
-    }
-
-    /**
-     * Avoids decoding read name to get read name length.  Do not include null terminator.
-     */
-    @Override
-    public int getReadNameLength() {
-        if (mReadNameLengthValid) {
-            return mReadNameLength - 1;
-        }
-        return super.getReadNameLength();
-    }
-
-    @Override
-    public Cigar getCigar() {
-        if (mRestOfBinaryData != null && !mCigarDecoded) {
-            final int cigarOffset = readNameSize();
-            final ByteBuffer byteBuffer  = ByteBuffer.wrap(mRestOfBinaryData, cigarOffset, cigarSize());
-            byteBuffer.order(ByteOrder.LITTLE_ENDIAN);
-            super.initializeCigar(BinaryCigarCodec.getSingleton().decode(byteBuffer));
-            mCigarDecoded = true;
-            if (getValidationStringency() != SAMFileReader.ValidationStringency.SILENT && !this.getReadUnmappedFlag()) {
-                // Don't know line number, and don't want to force read name to be decoded.
-                SAMUtils.processValidationErrors(validateCigar(-1L), -1, getValidationStringency());
-            }
-        }
-        return super.getCigar();
-    }
-
-    /**
-     * Avoids decoding CIGAR in order to get length.
-     */
-    @Override
-    public int getCigarLength() {
-        if (mCigarLengthValid) {
-            return mCigarLength;
-        } else {
-            return super.getCigarLength();
-        }
-    }
-
-    @Override
-    public byte[] getReadBases() {
-        byte[] result = super.getReadBases();
-        if (mRestOfBinaryData != null && result == null) {
-            result = decodeReadBases();
-            super.setReadBases(result);
-        }
-        return result;
-    }
-
-    @Override
-    public byte[] getBaseQualities() {
-        byte[] ret = super.getBaseQualities();
-        if (mRestOfBinaryData != null && ret == null) {
-            ret = decodeBaseQualities();
-            super.setBaseQualities(ret);
-        }
-        return ret;
-    }
-
-    @Override
-    public Object getAttribute(final short tag) {
-        if (!mAttributesDecoded) {
-            decodeAttributes();
-        }
-        return super.getAttribute(tag);
-    }
-
-    @Override
-    protected SAMBinaryTagAndValue getBinaryAttributes() {
-        if (!mAttributesDecoded) {
-            decodeAttributes();
-        }
-        return super.getBinaryAttributes();
-    }
-
-    private void decodeAttributes() {
-        if (mAttributesDecoded) {
-            return;
-        }
-        mAttributesDecoded = true;
-        final int tagsOffset = readNameSize() + cigarSize() + basesSize() + qualsSize();
-        final int tagsSize = mRestOfBinaryData.length - tagsOffset;
-        final SAMBinaryTagAndValue attributes = BinaryTagCodec.readTags(mRestOfBinaryData, tagsOffset, tagsSize, getValidationStringency());
-        setAttributes(attributes);
-    }
-
-    private byte[] decodeBaseQualities() {
-        if (mReadLength == 0) {
-            return SAMRecord.NULL_QUALS;
-        }
-        final int qualsOffset = readNameSize() + cigarSize() + basesSize();
-        final byte[] ret = new byte[qualsSize()];
-        System.arraycopy(mRestOfBinaryData, qualsOffset, ret, 0, qualsSize());
-        if (ret.length > 0 && ret[0] == (byte) 0xFF) {
-            // BAM files store missing qualities as an array of 0xFF bytes.
-            // 0xFF is an illegal quality score value (it cannot be encoded in SAM)
-            // and so the first byte is a suitable marker.
-            // We hide this quirk of the BAM encoding so that the BAM interface looks the same as SAM.
-            return NULL_QUALS;
-        }
-        return ret;
-    }
-
-    private String decodeReadName() {
-        // Don't include terminating null
-        return StringUtil.bytesToString(mRestOfBinaryData, READ_NAME_OFFSET, mReadNameLength-1);
-    }
-
-    private byte[] decodeReadBases() {
-        if (mReadLength == 0) {
-            return NULL_SEQUENCE;
-        }
-        final int basesOffset = readNameSize() + cigarSize();
-        return SAMUtils.compressedBasesToBytes(mReadLength, mRestOfBinaryData, basesOffset);
-    }
-
-    /* methods for computing disk size of variably-sized elements, in order to locate
-     * elements in mRestOfBinaryData */
-
-    private int readNameSize() {
-        return mReadNameLength;
-    }
-
-    private int cigarSize() {
-        return mCigarLength * 4;
-    }
-
-    private int basesSize() {
-        return (mReadLength + 1)/2;
-    }
-
-    private int qualsSize() {
-        return mReadLength;
-    }
-}
diff --git a/src/java/net/sf/samtools/BAMRecordCodec.java b/src/java/net/sf/samtools/BAMRecordCodec.java
deleted file mode 100644
index b6bcfcf..0000000
--- a/src/java/net/sf/samtools/BAMRecordCodec.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import net.sf.samtools.util.BinaryCodec;
-import net.sf.samtools.util.RuntimeEOFException;
-import net.sf.samtools.util.SortingCollection;
-
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.Arrays;
-
-/**
- * Class for translating between in-memory and disk representation of BAMRecord.
- */
-public class BAMRecordCodec implements SortingCollection.Codec<SAMRecord> {
-    private final BinaryCigarCodec cigarCodec = new BinaryCigarCodec();
-    private final SAMFileHeader header;
-    private final BinaryCodec binaryCodec = new BinaryCodec();
-    private final BinaryTagCodec binaryTagCodec = new BinaryTagCodec(binaryCodec);
-    private final SAMRecordFactory samRecordFactory;
-
-    public BAMRecordCodec(final SAMFileHeader header) {
-        this(header, new DefaultSAMRecordFactory());
-    }
-
-    public BAMRecordCodec(final SAMFileHeader header, final SAMRecordFactory factory) {
-        this.header = header;
-        this.samRecordFactory = factory;
-    }
-
-    public BAMRecordCodec clone() {
-        // Do not clone the references to codecs, as they must be distinct for each instance.
-        return new BAMRecordCodec(this.header, this.samRecordFactory);
-    }
-
-
-    /** Sets the output stream that records will be written to. */
-    public void setOutputStream(final OutputStream os) {
-        this.binaryCodec.setOutputStream(os);
-    }
-
-    /** Sets the output stream that records will be written to. */
-    public void setOutputStream(final OutputStream os, final String filename) {
-        this.binaryCodec.setOutputStream(os);
-        this.binaryCodec.setOutputFileName(filename);
-    }
-
-    /** Sets the input stream that records will be read from. */
-    public void setInputStream(final InputStream is) {
-        this.binaryCodec.setInputStream(is);
-    }
-
-    /** Sets the input stream that records will be read from. */
-    public void setInputStream(final InputStream is, final String filename) {
-        this.binaryCodec.setInputStream(is);
-        this.binaryCodec.setInputFileName(filename);
-    }
-
-    /**
-     * Write object to OutputStream.
-     * Reference and mate reference indices must be resolvable, which either means that these have been set into the
-     * SAMRecord directly, or the SAMRecord must have a header assigned into it so that reference names can be
-     * resolved into indices.
-     *
-     * @param alignment Record to be written.
-     */
-    public void encode(final SAMRecord alignment) {
-        // Compute block size, as it is the first element of the file representation of SAMRecord
-        final int readLength = alignment.getReadLength();
-
-        final int cigarLength = alignment.getCigarLength();
-
-        int blockSize = BAMFileConstants.FIXED_BLOCK_SIZE + alignment.getReadNameLength() + 1  + // null terminated
-                        cigarLength * 4 +
-                        (readLength + 1) / 2 + // 2 bases per byte, round up
-                        readLength;
-
-        final int attributesSize = alignment.getAttributesBinarySize();
-        if (attributesSize != -1) {
-            // binary attribute size already known, don't need to compute.
-            blockSize += attributesSize;
-        } else {
-            SAMBinaryTagAndValue attribute = alignment.getBinaryAttributes();
-            while (attribute != null) {
-                blockSize += (BinaryTagCodec.getTagSize(attribute.value));
-                attribute = attribute.getNext();
-            }
-        }
-
-        int indexBin = 0;
-        if (alignment.getReferenceIndex() >= 0) {
-            if (alignment.getIndexingBin() != null) {
-                indexBin = alignment.getIndexingBin();
-            } else {
-                indexBin = alignment.computeIndexingBin();
-            }
-        }
-
-        // Blurt out the elements
-        this.binaryCodec.writeInt(blockSize);
-        this.binaryCodec.writeInt(alignment.getReferenceIndex());
-        // 0-based!!
-        this.binaryCodec.writeInt(alignment.getAlignmentStart() - 1);
-        this.binaryCodec.writeUByte((short)(alignment.getReadNameLength() + 1));
-        this.binaryCodec.writeUByte((short)alignment.getMappingQuality());
-        this.binaryCodec.writeUShort(indexBin);
-        this.binaryCodec.writeUShort(cigarLength);
-        this.binaryCodec.writeUShort(alignment.getFlags());
-        this.binaryCodec.writeInt(alignment.getReadLength());
-        this.binaryCodec.writeInt(alignment.getMateReferenceIndex());
-        this.binaryCodec.writeInt(alignment.getMateAlignmentStart() - 1);
-        this.binaryCodec.writeInt(alignment.getInferredInsertSize());
-        final byte[] variableLengthBinaryBlock = alignment.getVariableBinaryRepresentation();
-        if (variableLengthBinaryBlock != null) {
-            // Don't need to encode variable-length block, because it is unchanged from
-            // when the record was read from a BAM file.
-            this.binaryCodec.writeBytes(variableLengthBinaryBlock);
-        } else {
-            if (alignment.getReadLength() != alignment.getBaseQualities().length &&
-                alignment.getBaseQualities().length != 0) {
-                throw new RuntimeException("Mismatch between read length and quals length writing read " +
-                alignment.getReadName() + "; read length: " + alignment.getReadLength() +
-                "; quals length: " + alignment.getBaseQualities().length);
-            }
-            this.binaryCodec.writeString(alignment.getReadName(), false, true);
-            final int[] binaryCigar = cigarCodec.encode(alignment.getCigar());
-            for (final int cigarElement : binaryCigar) {
-                // Assumption that this will fit into an integer, despite the fact
-                // that it is specced as a uint.
-                this.binaryCodec.writeInt(cigarElement);
-            }
-            this.binaryCodec.writeBytes(SAMUtils.bytesToCompressedBases(alignment.getReadBases()));
-            byte[] qualities = alignment.getBaseQualities();
-            if (qualities.length == 0) {
-                qualities = new byte[alignment.getReadLength()];
-                Arrays.fill(qualities, (byte) 0xFF);
-            }
-            this.binaryCodec.writeBytes(qualities);
-            SAMBinaryTagAndValue attribute = alignment.getBinaryAttributes();
-            while (attribute != null) {
-                this.binaryTagCodec.writeTag(attribute.tag, attribute.value, attribute.isUnsignedArray());
-                attribute = attribute.getNext();
-            }
-        }
-    }
-
-    /**
-     * Read the next record from the input stream and convert into a java object.
-     *
-     * @return null if no more records.  Should throw exception if EOF is encountered in the middle of
-     *         a record.
-     */
-    public SAMRecord decode() {
-        int recordLength = 0;
-        try {
-            recordLength = this.binaryCodec.readInt();
-        }
-        catch (RuntimeEOFException e) {
-            return null;
-        }
-
-        if (recordLength < BAMFileConstants.FIXED_BLOCK_SIZE) {
-            throw new SAMFormatException("Invalid record length: " + recordLength);
-        }
-        
-        final int referenceID = this.binaryCodec.readInt();
-        final int coordinate = this.binaryCodec.readInt() + 1;
-        final short readNameLength = this.binaryCodec.readUByte();
-        final short mappingQuality = this.binaryCodec.readUByte();
-        final int bin = this.binaryCodec.readUShort();
-        final int cigarLen = this.binaryCodec.readUShort();
-        final int flags = this.binaryCodec.readUShort();
-        final int readLen = this.binaryCodec.readInt();
-        final int mateReferenceID = this.binaryCodec.readInt();
-        final int mateCoordinate = this.binaryCodec.readInt() + 1;
-        final int insertSize = this.binaryCodec.readInt();
-        final byte[] restOfRecord = new byte[recordLength - BAMFileConstants.FIXED_BLOCK_SIZE];
-        this.binaryCodec.readBytes(restOfRecord);
-        final BAMRecord ret = this.samRecordFactory.createBAMRecord(
-                header, referenceID, coordinate, readNameLength, mappingQuality,
-                bin, cigarLen, flags, readLen, mateReferenceID, mateCoordinate, insertSize, restOfRecord);
-        ret.setHeader(header); 
-        return ret;
-    }
-}
diff --git a/src/java/net/sf/samtools/BamFileIoUtils.java b/src/java/net/sf/samtools/BamFileIoUtils.java
deleted file mode 100644
index e4d7406..0000000
--- a/src/java/net/sf/samtools/BamFileIoUtils.java
+++ /dev/null
@@ -1,155 +0,0 @@
-package net.sf.samtools;
-
-import net.sf.samtools.util.BlockCompressedFilePointerUtil;
-import net.sf.samtools.util.BlockCompressedInputStream;
-import net.sf.samtools.util.BlockCompressedOutputStream;
-import net.sf.samtools.util.BlockCompressedStreamConstants;
-import net.sf.samtools.util.CloserUtil;
-import net.sf.samtools.util.IOUtil;
-import net.sf.samtools.util.Md5CalculatingOutputStream;
-import net.sf.samtools.util.RuntimeIOException;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.List;
-
-public class BamFileIoUtils {
-    public static final String BAM_FILE_EXTENSION = ".bam";
-
-    public static boolean isBamFile(final File file) {
-        return ((file != null) && file.getName().endsWith(BAM_FILE_EXTENSION));
-    }
-
-    public static void reheaderBamFile(final SAMFileHeader samFileHeader, final File inputFile, final File outputFile) {
-        reheaderBamFile(samFileHeader, inputFile, outputFile, true, true);
-    }
-
-    /**
-     * Copy a BAM file but replacing the header
-     * @param samFileHeader The header to use in the new file
-     * @param inputFile The BAM file to copy, sans header
-     * @param outputFile The new BAM file, constructed with the new header and the content from inputFile
-     * @param createMd5 Whether or not to create an MD5 file for the new BAM
-     * @param createIndex Whether or not to create an index file for the new BAM
-     */
-    public static void reheaderBamFile(final SAMFileHeader samFileHeader, final File inputFile, final File outputFile, final boolean createMd5, final boolean createIndex) {
-        // TODO: In a future world where IoUtil and IOUtil are merged, de-comment these
-//        IoUtil.assertFileIsReadable(inputFile);
-//        IoUtil.assertFileIsWritable(outputFile);
-
-        try {
-            BlockCompressedInputStream.assertNonDefectiveFile(inputFile);
-            assertSortOrdersAreEqual(samFileHeader, inputFile);
-
-            final OutputStream outputStream = buildOutputStream(outputFile, createMd5, createIndex);
-
-            BAMFileWriter.writeHeader(outputStream, samFileHeader);
-            blockCopyBamFile(inputFile, outputStream, true, false);
-
-            CloserUtil.close(inputFile);
-            outputStream.close();
-        } catch (final IOException ioe) {
-            throw new RuntimeIOException(ioe);
-        }
-    }
-
-    /**
-     * Copy data from a BAM file to an OutputStream by directly copying the gzip blocks
-     *
-     * @param inputFile The file to be copied
-     * @param outputStream The stream to write the copied data to
-     * @param skipHeader If true, the header of the input file will not be copied to the output stream
-     * @param skipTerminator If true, the terminator block of the input file will not be written to the output stream
-     */
-    public static void blockCopyBamFile(final File inputFile, final OutputStream outputStream, final boolean skipHeader, final boolean skipTerminator) {
-        FileInputStream in = null;
-        try {
-            in = new FileInputStream(inputFile);
-
-            // a) It's good to check that the end of the file is valid and b) we need to know if there's a terminator block and not copy it if skipTerminator is true
-            final BlockCompressedInputStream.FileTermination term = BlockCompressedInputStream.checkTermination(inputFile);
-            if (term == BlockCompressedInputStream.FileTermination.DEFECTIVE)
-                throw new SAMException(inputFile.getAbsolutePath() + " does not have a valid GZIP block at the end of the file.");
-
-            if (skipHeader) {
-                final long vOffsetOfFirstRecord = SAMUtils.findVirtualOffsetOfFirstRecordInBam(inputFile);
-                final BlockCompressedInputStream blockIn = new BlockCompressedInputStream(inputFile);
-                blockIn.seek(vOffsetOfFirstRecord);
-                final long remainingInBlock = blockIn.available();
-
-                // If we found the end of the header then write the remainder of this block out as a
-                // new gzip block and then break out of the while loop
-                if (remainingInBlock >= 0) {
-                    final BlockCompressedOutputStream blockOut = new BlockCompressedOutputStream(outputStream, null);
-                    IOUtil.transferByStream(blockIn, blockOut, remainingInBlock);
-                    blockOut.flush();
-                    // Don't close blockOut because closing underlying stream would break everything
-                }
-
-                long pos = BlockCompressedFilePointerUtil.getBlockAddress(blockIn.getFilePointer());
-                blockIn.close();
-                while (pos > 0) {
-                    pos -= in.skip(pos);
-                }
-            }
-
-            // Copy remainder of input stream into output stream
-            final long currentPos = in.getChannel().position();
-            final long length = inputFile.length();
-            final long skipLast = ((term == BlockCompressedInputStream.FileTermination.HAS_TERMINATOR_BLOCK) && skipTerminator) ?
-                    BlockCompressedStreamConstants.EMPTY_GZIP_BLOCK.length : 0;
-            final long bytesToWrite = length - skipLast - currentPos;
-
-            IOUtil.transferByStream(in, outputStream, bytesToWrite);
-        } catch (final IOException ioe) {
-            throw new RuntimeIOException(ioe);
-        } finally {
-            CloserUtil.close(in);
-        }
-    }
-
-    /**
-     * Assumes that all inputs and outputs are block compressed VCF files and copies them without decompressing and parsing
-     * most of the gzip blocks. Will decompress and parse blocks up to the one containing the end of the header in each file
-     * (often the first block) and re-compress any data remaining in that block into a new block in the output file. Subsequent
-     * blocks (excluding a terminator block if present) are copied directly from input to output.
-     */
-    public static void gatherWithBlockCopying(final List<File> bams, final File output, final boolean createIndex, final boolean createMd5) {
-        try {
-            OutputStream out = new FileOutputStream(output);
-            if (createMd5) out   = new Md5CalculatingOutputStream(out, new File(output.getAbsolutePath() + ".md5"));
-            if (createIndex) out = new StreamInflatingIndexingOutputStream(out, new File(output.getParentFile(), IOUtil.basename(output) + BAMIndex.BAMIndexSuffix));
-            boolean isFirstFile = true;
-
-            for (final File f : bams) {
-                blockCopyBamFile(f, out, !isFirstFile, true);
-                isFirstFile = false;
-            }
-
-            // And lastly add the Terminator block and close up
-            out.write(BlockCompressedStreamConstants.EMPTY_GZIP_BLOCK);
-            out.close();
-        }
-        catch (final IOException ioe) {
-            throw new RuntimeIOException(ioe);
-        }
-    }
-
-    private static OutputStream buildOutputStream(final File outputFile, final boolean createMd5, final boolean createIndex) throws IOException {
-        OutputStream outputStream = new FileOutputStream(outputFile);
-        if (createMd5) outputStream   = new Md5CalculatingOutputStream(outputStream, new File(outputFile.getAbsolutePath() + ".md5"));
-        if (createIndex) outputStream = new StreamInflatingIndexingOutputStream(outputStream, new File(outputFile.getParentFile(), IOUtil.basename(outputFile) + BAMIndex.BAMIndexSuffix));
-        return outputStream;
-    }
-
-    private static void assertSortOrdersAreEqual(final SAMFileHeader newHeader, final File inputFile) throws IOException {
-        final SAMFileHeader origHeader = new SAMFileReader(inputFile).getFileHeader();
-        final SAMFileHeader.SortOrder newSortOrder = newHeader.getSortOrder();
-        if (newSortOrder != SAMFileHeader.SortOrder.unsorted && newSortOrder != origHeader.getSortOrder()) {
-            throw new SAMException("Sort order of new header does not match the original file, needs to be " + origHeader.getSortOrder());
-        }
-    }
-}
diff --git a/src/java/net/sf/samtools/BamIndexValidator.java b/src/java/net/sf/samtools/BamIndexValidator.java
deleted file mode 100644
index 7ebbd45..0000000
--- a/src/java/net/sf/samtools/BamIndexValidator.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import net.sf.samtools.util.CloseableIterator;
-
-/**
- * One crisp, informative sentence or noun phrase that explains
- * the concept modeled by the class.
- * <p/>
- * This class is [<em>not</em>] thread safe [because it is immutable].
- */
-public class BamIndexValidator {
-
-    public static int exhaustivelyTestIndex(SAMFileReader reader) { // throws Exception {
-        // look at all chunk offsets in a linear index to make sure they are valid
-
-        if (reader.hasBrowseableIndex()) {
-
-            // content is from an existing bai file
-            final CachingBAMFileIndex existingIndex = (CachingBAMFileIndex) reader.getBrowseableIndex(); // new CachingBAMFileIndex(inputBai, null);
-            final int n_ref = existingIndex.getNumberOfReferences();
-
-            int chunkCount = 0;
-            int indexCount = 0;
-            for (int i = 0; i < n_ref; i++) {
-                BAMIndexContent content = existingIndex.getQueryResults(i);
-                for (Chunk c : content.getAllChunks()) {
-                    final CloseableIterator<SAMRecord> iter = reader.iterator(new BAMFileSpan(c));
-                    chunkCount++;
-                    BAMRecord b = null;
-                    try {
-                        // if (iter.hasNext()) {   // not needed since there should be something there
-                        b = (BAMRecord) iter.next();
-                        // }
-                        iter.close();
-                    } catch (Exception e) {
-                        throw new SAMException("Exception in BamIndexValidator. Last good record " + b + " in chunk " + c + " chunkCount=" + chunkCount, e);
-                    }
-                }
-                // also seek to every position in the linear index
-                // final BAMRecordCodec bamRecordCodec = new BAMRecordCodec(reader.getFileHeader());
-                // bamRecordCodec.setInputStream(reader.getInputStream());
-
-                LinearIndex linearIndex = content.getLinearIndex();
-                for (long l : linearIndex.getIndexEntries()) {
-                    try {
-                        if (l != 0) {
-                            final CloseableIterator<SAMRecord> iter = reader.iterator(new BAMFileSpan(new Chunk(l, l + 1)));
-                            BAMRecord b = (BAMRecord) iter.next();   // read the first record identified by the linear index
-                            indexCount++;
-                            iter.close();
-                        }
-                    } catch (Exception e) {
-                        throw new SAMException("Exception in BamIndexValidator. Linear index access failure " + l + " indexCount=" + indexCount, e);
-                    }
-
-                }
-            }
-            return chunkCount;
-            // System.out.println("Found " chunkCount + " chunks in test " + inputBai +
-            // " linearIndex positions = " + indexCount);
-        } // else  not a bam file with a browseable index
-        //    System.err.println("No browseableIndex for reader");
-        return 0;
-    }
-
-}
diff --git a/src/java/net/sf/samtools/Bin.java b/src/java/net/sf/samtools/Bin.java
deleted file mode 100644
index 7f4f5c6..0000000
--- a/src/java/net/sf/samtools/Bin.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-/**
- * An individual bin in a BAM file.
- *
- * @author mhanna
- * @version 0.1
- */
-public class Bin implements Comparable<Bin> {
-    /**
-     * The reference sequence associated with this bin.
-     */
-    private final int referenceSequence;
-
-    /**
-     * The number of this bin within the BAM file.
-     */
-    private final int binNumber;
-
-    /**
-     * The chunks associated with this bin.
-     */
-    private List<Chunk> chunkList;
-
-    /**
-     * The last chunk in the chunkList. Only maintained during index building,
-     * not when reading existing index
-     */
-    private Chunk lastChunk;
-
-    public Bin(final int referenceSequence, final int binNumber) {
-        this.referenceSequence = referenceSequence;
-        this.binNumber = binNumber;
-    }
-
-    protected int getReferenceSequence() {
-        return referenceSequence;
-    }
-
-    public int getBinNumber() {
-        return binNumber;
-    }
-
-    /**
-     * See whether two bins are equal.  If the ref seq and the bin number
-     * are equal, assume equality of the chunk list.
-     * @param other The other Bin to which to compare this.
-     * @return True if the two bins are equal.  False otherwise.
-     */
-    @Override
-    public boolean equals(final Object other) {
-        if(other == null) return false;
-        if(!(other instanceof Bin)) return false;
-
-        final Bin otherBin = (Bin)other;
-        return this.referenceSequence == otherBin.referenceSequence && this.binNumber == otherBin.binNumber;
-    }
-
-    /**
-     * Compute a unique hash code for the given reference sequence and bin number.
-     * @return A unique hash code.
-     */
-    @Override
-    public int hashCode() {
-        return ((Integer)referenceSequence).hashCode() ^ ((Integer)binNumber).hashCode();
-    }
-
-    /**
-     * Returns whether the bin currently contains chunks.
-     * @return True if the bin has chunks, false otherwise.
-     */
-    public boolean containsChunks() {
-        return chunkList != null;
-    }
-
-    /**
-     * Compare two bins to see what ordering they should appear in.
-     * @param other Other bin to which this bin should be compared.
-     * @return -1 if this < other, 0 if this == other, 1 if this > other.
-     */
-    public int compareTo(final Bin other) {
-        if(other == null)
-            throw new ClassCastException("Cannot compare to a null object");
-
-        // Check the reference sequences first.
-        if(this.referenceSequence != other.referenceSequence)
-            return referenceSequence - other.referenceSequence;
-
-        // Then check the bin ordering.
-        return binNumber - other.binNumber;
-    }
-
-    /**
-     * Adds the first chunk to the bin
-     */
-    public void addInitialChunk(final Chunk newChunk){
-        final List<Chunk> oldChunks = new ArrayList<Chunk>();
-        setChunkList(oldChunks);
-        setLastChunk(newChunk);
-        oldChunks.add(newChunk);
-    }
-
-    /**
-     * Sets the chunks associated with this bin
-     */
-    public void setChunkList(final List<Chunk> list){
-        chunkList = list;
-    }
-
-    /**
-     * Gets the list of chunks associated with this bin.
-     * @return the chunks in this bin.  If no chunks are associated, an empty list will be returned.
-     */
-    public List<Chunk> getChunkList(){
-        if(chunkList == null)
-            return Collections.<Chunk>emptyList();
-        return chunkList;
-    }
-
-    /**
-     * Optimization to keep lastChunk instead of iterating over all chunks repeatedly
-     */
-    public void setLastChunk(final Chunk c){
-        lastChunk = c;
-    }
-
-    /**
-     * Warning:  Currently only valid during index building, not when reading existing index,
-     * (AbstractBAMFileIndex.optimizeChunkList doesn't maintain this)
-     * @return  the last Chunk of the chunkList
-     */
-    public Chunk getLastChunk(){
-        return lastChunk;
-    }
-}
diff --git a/src/java/net/sf/samtools/BinList.java b/src/java/net/sf/samtools/BinList.java
deleted file mode 100644
index 29af568..0000000
--- a/src/java/net/sf/samtools/BinList.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import java.util.Iterator;
-import java.util.BitSet;
-import java.util.NoSuchElementException;
-
-/**
- * Provides a list of all bins which could exist in the BAM file.
- * Allows the user to iterate over all bins, selecting ones of interest
- * for later inspection.
- *
- * @author mhanna
- * @version 0.1
- */
-public class BinList implements Iterable<Bin> {
-    /**
-     * The reference sequence relevant to this bin list.
-     */
-    private final int referenceSequence;
-
-    /**
-     * For each sequence, which bins should be included in the BitSet.
-     */
-    private final BitSet bins;
-
-    /**
-     * Create a new BinList over sequenceCount sequences, consisting of the given bins.
-     * @param referenceSequence Reference sequence to which these bins are relevant.
-     * @param bins The given bins to include.
-     */
-    protected BinList(final int referenceSequence, final BitSet bins) {
-        this.referenceSequence = referenceSequence;
-        this.bins = bins;
-    }
-
-    /**
-     * Gets an iterator over all selected bins.
-     * @return An iterator over all selected bins.
-     */
-    public Iterator<Bin> iterator() {
-        return new BinIterator();
-    }
-
-    /**
-     * Get the reference sequence to which this bin belongs.
-     * @return Integer representing the reference sequence.
-     */
-    protected int getReferenceSequence() {
-        return referenceSequence;
-    }
-
-    /**
-     * Retrieves the bins stored in this list.
-     * @return A bitset where a bin is present in the list if the bit is true.
-     */
-    protected BitSet getBins() {
-        return bins;
-    }
-
-    private class BinIterator implements Iterator<Bin> {
-        /**
-         * Stores the bin currently in use.  Will be -1 if no more bins remain in the set.
-         */
-        private int nextBin;
-
-        public BinIterator() {
-            // Initialize the bin iterator to just before the first bin.
-            nextBin = bins.nextSetBit(0);
-        }
-
-        /**
-         * Are there more bins in this set, waiting to be returned?
-         * @return True if more bins are remaining.
-         */
-        public boolean hasNext() {
-            return nextBin >= 0;
-        }
-
-        /**
-         * Gets the next bin in the provided BinList.
-         * @return the next available bin in the BinList.
-         */
-        public Bin next() {
-            if(!hasNext())
-                throw new NoSuchElementException("This BinIterator is currently empty");
-            int currentBin = nextBin;
-            nextBin = bins.nextSetBit(nextBin+1);
-            return new Bin(referenceSequence,currentBin);
-        }
-
-        public void remove() {
-            throw new UnsupportedOperationException("Unable to remove from a bin iterator");
-        }
-    }
-}
-
diff --git a/src/java/net/sf/samtools/BinaryBAMIndexWriter.java b/src/java/net/sf/samtools/BinaryBAMIndexWriter.java
deleted file mode 100644
index c0a009e..0000000
--- a/src/java/net/sf/samtools/BinaryBAMIndexWriter.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.samtools;
-
-import net.sf.samtools.util.BinaryCodec;
-
-import java.io.*;
-import java.util.List;
-
-/**
- * Class for writing binary BAM index files
- */
-class BinaryBAMIndexWriter implements BAMIndexWriter {
-
-    protected final int nRef;
-    private final BinaryCodec codec;
-    private int count = 0;
-
-    /**
-     * constructor
-     *
-     * @param nRef    Number of reference sequences
-     * @param output  BAM Index output file
-     */
-    public BinaryBAMIndexWriter(final int nRef, final File output) {
-
-        this.nRef = nRef;
-
-        try {
-            codec = new BinaryCodec(output, true);
-            writeHeader();
-        } catch (final Exception e) {
-            throw new SAMException("Exception opening output file " + output, e);
-        }
-    }
-
-    /**
-     *
-     * @param nRef Number of reference sequences.
-     * @param output BAM index output stream.  This stream will be closed when BinaryBAMIndexWriter.close() is called.
-     */
-    public BinaryBAMIndexWriter(final int nRef, final OutputStream output) {
-
-        this.nRef = nRef;
-
-        try {
-            codec = new BinaryCodec(output);
-            writeHeader();
-        } catch (final Exception e) {
-            throw new SAMException("Exception opening output stream", e);
-        }
-    }
-
-    /**
-     * Write this content as binary output
-     */
-    public void writeReference(final BAMIndexContent content) {
-
-        if (content == null) {
-            writeNullContent();
-            count++;
-            return;
-        }
-
-        if (content.getReferenceSequence() != count){
-            throw new SAMException("Unexpectedly writing reference " + content.getReferenceSequence() +
-                ", expecting reference " + count);
-        }
-        count ++;
-
-        // write bins
-
-        final BAMIndexContent.BinList bins = content.getBins();
-        final int size = bins == null ? 0 : content.getNumberOfNonNullBins();
-
-        if (size == 0) {
-            writeNullContent();
-            return;
-        }
-
-        //final List<Chunk> chunks = content.getMetaData() == null ? null
-        //        : content.getMetaData().getMetaDataChunks();
-        final BAMIndexMetaData metaData = content.getMetaData();
-
-        codec.writeInt(size + ((metaData != null)? 1 : 0 ));
-        // codec.writeInt(size);
-        for (final Bin bin : bins) {   // note, bins will always be sorted
-            if (bin.getBinNumber() == GenomicIndexUtil.MAX_BINS)
-                continue;
-            writeBin(bin);
-        }
-
-        // write metadata "bin" and chunks        
-        if (metaData != null)
-            writeChunkMetaData(metaData);
-
-        // write linear index
-
-        final LinearIndex linearIndex = content.getLinearIndex();
-        final long[] entries = linearIndex == null ? null : linearIndex.getIndexEntries();
-        final int indexStart = linearIndex == null ? 0 : linearIndex.getIndexStart();
-        final int n_intv = entries == null ? indexStart : entries.length + indexStart;
-        codec.writeInt(n_intv);
-        if (entries == null) {
-            return;
-        }
-        // since indexStart is usually 0, this is usually a no-op
-        for (int i = 0; i < indexStart; i++) {
-            codec.writeLong(0);
-        }
-        for (int k = 0; k < entries.length; k++) {
-            codec.writeLong(entries[k]);
-        }
-        try {
-            codec.getOutputStream().flush();
-        } catch (final IOException e) {
-            throw new SAMException("IOException in BinaryBAMIndexWriter reference " + content.getReferenceSequence(), e);
-        }
-    }
-
-    /**
-     * Writes out the count of records without coordinates
-     *
-     * @param count
-     */
-    public void writeNoCoordinateRecordCount(final Long count) {
-        codec.writeLong(count == null ? 0 : count);
-    }
-
-    /**
-     * Any necessary processing at the end of the file
-     */
-    public void close() {
-        codec.close();
-    }
-
-    private void writeBin(final Bin bin) {
-        final int binNumber = bin.getBinNumber();
-        if (binNumber >= GenomicIndexUtil.MAX_BINS){
-            throw new SAMException("Unexpected bin number when writing bam index " + binNumber);
-        }
-        
-        codec.writeInt(binNumber);
-        if (bin.getChunkList() == null){
-            codec.writeInt(0);
-            return;
-        }
-        final List<Chunk> chunkList = bin.getChunkList();
-        final int n_chunk = chunkList.size();
-        codec.writeInt(n_chunk);
-        for (final Chunk c : chunkList) {
-            codec.writeLong(c.getChunkStart());
-            codec.writeLong(c.getChunkEnd());
-        }
-    }
-
-    /**
-     * Write the meta data represented by the chunkLists associated with bin MAX_BINS 37450
-     *
-     * @param metaData information describing numAligned records, numUnAligned, etc
-     */
-    private void writeChunkMetaData(final BAMIndexMetaData metaData) {
-        codec.writeInt(GenomicIndexUtil.MAX_BINS);
-        final int nChunk = 2;
-        codec.writeInt(nChunk);
-        codec.writeLong(metaData.getFirstOffset());
-        codec.writeLong(metaData.getLastOffset());
-        codec.writeLong(metaData.getAlignedRecordCount());
-        codec.writeLong(metaData.getUnalignedRecordCount());
-
-    }
-
-    private void writeHeader() {
-        // magic string
-        final byte[] magic = BAMFileConstants.BAM_INDEX_MAGIC;
-        codec.writeBytes(magic);
-        codec.writeInt(nRef);
-    }
-
-    private void writeNullContent() {
-        codec.writeLong(0);  // 0 bins , 0 intv
-    }
-}
diff --git a/src/java/net/sf/samtools/BinaryCigarCodec.java b/src/java/net/sf/samtools/BinaryCigarCodec.java
deleted file mode 100644
index c8174a2..0000000
--- a/src/java/net/sf/samtools/BinaryCigarCodec.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import java.nio.ByteBuffer;
-
-/**
- * Converter between disk and in-memory (object, not String) CIGAR representation.
- */
-class BinaryCigarCodec {
-    private static final BinaryCigarCodec singleton = new BinaryCigarCodec();
-
-    /**
-     * It is not necssary to get the singleton but it is preferrable to use the same one
-     * over and over vs. creating a new object for each BAMRecord.  This class has no state
-     * so this is thread-safe.
-     */
-    static BinaryCigarCodec getSingleton() {
-        return singleton;
-    }
-
-    /**
-     * Convert CIGAR from object representation to disk representation.
-     * @return Array of unsigned ints, one for each element of CIGAR.
-     */
-    int[] encode(final Cigar cigar) {
-        if (cigar.numCigarElements() == 0) {
-            return new int[0];
-        }
-
-        // Binary rep can be no longer than 1/2 of text rep
-        // Although this is documented as uint, I think lengths will never get that long,
-        // and it's a pain in Java.
-        final int[] binaryCigar = new int[cigar.numCigarElements()];
-        int binaryCigarLength = 0;
-        for (int i = 0; i < cigar.numCigarElements(); ++i) {
-            final CigarElement cigarElement = cigar.getCigarElement(i);
-            final int op = CigarOperator.enumToBinary(cigarElement.getOperator());
-            binaryCigar[binaryCigarLength++] = cigarElement.getLength() << 4 | op;
-        }
-        return binaryCigar;
-    }
-
-    /**
-     * Convert CIGAR from disk representation to object.
-     * @param binaryCigar ByteArray that is assumed to have byte order set appropriately for extracting ints.
-     */
-    Cigar decode(final ByteBuffer binaryCigar) {
-        final Cigar ret = new Cigar();
-        while (binaryCigar.hasRemaining()) {
-            final int cigarette = binaryCigar.getInt();
-            ret.add(binaryCigarToCigarElement(cigarette));
-        }
-        return ret;
-    }
-
-    /**
-     * Convert CIGAR from disk representation to object.
-     * @param binaryCigar Array of unsigned ints, one for each CIGAR element.
-     */
-    Cigar decode(final int[] binaryCigar) {
-        final Cigar ret = new Cigar();
-        for (final int cigarette : binaryCigar) {
-            ret.add(binaryCigarToCigarElement(cigarette));
-        }
-        return ret;
-    }
-
-    /**
-     * @param cigarette CIGAR element (operator + length) encoded as an unsigned int.
-     * @return Object representation of the CIGAR element.
-     */
-    private static CigarElement binaryCigarToCigarElement(final int cigarette) {
-        final int binaryOp = cigarette & 0xf;
-        final int length = cigarette >> 4;
-        return new CigarElement(length, CigarOperator.binaryToEnum(binaryOp));
-    }
-}
diff --git a/src/java/net/sf/samtools/BinaryTagCodec.java b/src/java/net/sf/samtools/BinaryTagCodec.java
deleted file mode 100644
index 72de523..0000000
--- a/src/java/net/sf/samtools/BinaryTagCodec.java
+++ /dev/null
@@ -1,422 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import net.sf.samtools.util.BinaryCodec;
-import net.sf.samtools.util.StringUtil;
-
-import java.lang.reflect.Array;
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
-
-/**
- * Converter between disk and in-memory representation of a SAMRecord tag.
- */
-class BinaryTagCodec {
-    // Size in bytes of the fixed part of the disk representation of a tag,
-    // i.e. the number of bytes occupied by the tag name and tag type fields.
-    private static final int FIXED_TAG_SIZE = 3;
-
-    // Size in bytes of the fixed part of the value of a binary array,
-    // i.e. the number of bytes occupied by the array type and the array length.
-    private static final int FIXED_BINARY_ARRAY_TAG_SIZE = 5;
-
-    // Integers are stored in the smallest size that will hold them.
-    private static final long MAX_INT = Integer.MAX_VALUE;
-    private static final long MAX_UINT = MAX_INT * 2 + 1;
-    private static final long MAX_SHORT = Short.MAX_VALUE;
-    private static final long MAX_USHORT = MAX_SHORT * 2 + 1;
-    private static final long MAX_BYTE = Byte.MAX_VALUE;
-    private static final long MAX_UBYTE = MAX_BYTE * 2 + 1;
-
-    // Source or sink for disk representation.
-    final BinaryCodec binaryCodec;
-
-    /**
-     * For writing tags.
-     * For reading tags, a BinaryCodec is not used.  See readTags() below.
-     * @param binaryCodec where to write the file rep of the tags
-     */
-    BinaryTagCodec(final BinaryCodec binaryCodec) {
-        this.binaryCodec = binaryCodec;
-    }
-
-    /**
-     * @param attributeValue In-memory representation of a tag value.
-     * @return Size in bytes to store the value on disk.
-     */
-    private static int getBinaryValueSize(final Object attributeValue) {
-        switch (getTagValueType(attributeValue)) {
-            case 'Z':
-                return ((String)attributeValue).length() + 1;
-            case 'A':
-                return 1;
-            case 'I':
-            case 'i':
-                return 4;
-            case 's':
-            case 'S':
-                return 2;
-            case 'c':
-            case 'C':
-                return 1;
-            case 'f':
-                return 4;
-            case 'H':
-                final byte[] byteArray = (byte[])attributeValue;
-                return byteArray.length * 2 + 1;
-            case 'B':
-                final int numElements = Array.getLength(attributeValue);
-                final int elementSize;
-                if(attributeValue instanceof byte[]) {
-                    elementSize = 1;
-                } else if(attributeValue instanceof short[]) {
-                    elementSize = 2;
-                } else if(attributeValue instanceof int[]) {
-                    elementSize = 4;
-                } else if(attributeValue instanceof float[]) {
-                    elementSize = 4;
-                } else {
-                    throw new IllegalArgumentException("Unsupported array type: " + attributeValue.getClass());
-                }
-                return numElements * elementSize + FIXED_BINARY_ARRAY_TAG_SIZE;
-            default:
-                throw new IllegalArgumentException("When writing BAM, unrecognized tag type " +
-                        attributeValue.getClass().getName());
-        }
-    }
-
-    /**
-     * @param value In-memory representation of a tag value.
-     * @return Size in bytes to store the tag name, tag type and tag value on disk.
-     */
-    static int getTagSize(final Object value) {
-        return FIXED_TAG_SIZE + getBinaryValueSize(value);
-    }
-
-    /**
-     * @param value In-memory representation of a tag value.
-     * @return One-character disk representation of tag type.
-     */
-    static char getTagValueType(final Object value) {
-        if (value instanceof String) {
-            return 'Z';
-        } else if (value instanceof Character) {
-            return 'A';
-        } else if (value instanceof Float) {
-            return 'f';
-        } else if (value instanceof Number) {
-            if (!(value instanceof Byte || value instanceof Short || value instanceof Integer || value instanceof Long)) {
-                throw new IllegalArgumentException("Unrecognized tag type " + value.getClass().getName());
-            }
-            return getIntegerType(((Number)value).longValue());
-        } /*
-           Note that H tag type is never written anymore, because B style is more compact.
-           else if (value instanceof byte[]) {
-            return 'H';
-           }
-          */
-        else if (value instanceof byte[] || value instanceof short[] || value instanceof int[] || value instanceof float[]) {
-            return 'B';
-        } else {
-            throw new IllegalArgumentException("When writing BAM, unrecognized tag type " +
-                    value.getClass().getName());
-        }
-    }
-
-    /**
-     * @param val Integer tag value.
-     * @return Tag type corresponding to the smallest integer type that will hold the given value.
-     */
-    static private char getIntegerType(final long val) {
-        if (val > MAX_UINT) {
-            throw new IllegalArgumentException("Integer attribute value too large to be encoded in BAM");
-        }
-        if (val > MAX_INT) {
-            return 'I';
-        }
-        if (val > MAX_USHORT) {
-            return 'i';
-        }
-        if (val > MAX_SHORT) {
-            return 'S';
-        }
-        if (val > MAX_UBYTE) {
-            return 's';
-        }
-        if (val > MAX_BYTE) {
-            return 'C';
-        }
-        if (val >= Byte.MIN_VALUE) {
-            return 'c';
-        }
-        if (val >= Short.MIN_VALUE) {
-            return 's';
-        }
-        if (val >= Integer.MIN_VALUE) {
-            return 'i';
-        }
-        throw new IllegalArgumentException("Integer attribute value too negative to be encoded in BAM");
-    }
-
-    /**
-     * Write the given tag name and value to disk.
-     */
-    void writeTag(final short tag, final Object value, final boolean isUnsignedArray) {
-        binaryCodec.writeShort(tag);
-        final char tagValueType = getTagValueType(value);
-        binaryCodec.writeByte(tagValueType);
-
-        switch (tagValueType) {
-            case 'Z':
-                binaryCodec.writeString((String)value, false, true);
-                break;
-            case 'A':
-                binaryCodec.writeByte(((Character)value));
-                break;
-            case 'I':
-                binaryCodec.writeUInt((Long)value);
-                break;
-            case 'i':
-                binaryCodec.writeInt(((Number)value).intValue());
-                break;
-            case 's':
-                binaryCodec.writeShort(((Number)value).shortValue());
-                break;
-            case 'S':
-                binaryCodec.writeUShort(((Number)value).intValue());
-                break;
-            case 'c':
-                binaryCodec.writeByte(((Number)value).byteValue());
-                break;
-            case 'C':
-                binaryCodec.writeUByte(((Integer)value).shortValue());
-                break;
-            case 'f':
-                binaryCodec.writeFloat((Float)value);
-                break;
-            /*
-            Writing H is no longer supported
-            case 'H':
-                final byte[] byteArray = (byte[])value;
-                binaryCodec.writeString(StringUtil.bytesToHexString(byteArray), false, true);
-                break;
-             */
-            case 'B':
-                writeArray(value, isUnsignedArray);
-                break;
-            default:
-                throw new IllegalArgumentException("When writing BAM, unrecognized tag type " +
-                        value.getClass().getName());
-        }
-    }
-
-    private void writeArray(final Object value, final boolean isUnsignedArray) {
-        if (value instanceof byte[]) {
-            binaryCodec.writeByte(isUnsignedArray? 'C': 'c');
-            final byte[] array = (byte[]) value;
-            binaryCodec.writeInt(array.length);
-            for (final byte element: array) binaryCodec.writeByte(element);
-
-        } else if (value instanceof short[]) {
-            binaryCodec.writeByte(isUnsignedArray? 'S': 's');
-            final short[] array = (short[]) value;
-            binaryCodec.writeInt(array.length);
-            for (final short element: array) binaryCodec.writeShort(element);
-
-        } else if (value instanceof int[]) {
-            binaryCodec.writeByte(isUnsignedArray? 'I': 'i');
-            final int[] array = (int[]) value;
-            binaryCodec.writeInt(array.length);
-            for (final int element: array) binaryCodec.writeInt(element);
-
-        } else if (value instanceof float[]) {
-            binaryCodec.writeByte('f');
-            final float[] array = (float[]) value;
-            binaryCodec.writeInt(array.length);
-            for (final float element: array) binaryCodec.writeFloat(element);
-
-        } else throw new SAMException("Unrecognized array value type: " + value.getClass());
-    }
-
-    /**
-     * Convert tags from little-endian disk representation to in-memory representation.
-     * @param binaryRep Byte buffer containing file representation of tags.
-     * @param offset Where in binaryRep tags start.
-     * @param length How many bytes in binaryRep are tag storage.
-     */
-    static SAMBinaryTagAndValue readTags(final byte[] binaryRep, final int offset,
-                                         final int length, final SAMFileReader.ValidationStringency validationStringency) {
-        final ByteBuffer byteBuffer = ByteBuffer.wrap(binaryRep, offset, length);
-        byteBuffer.order(ByteOrder.LITTLE_ENDIAN);
-
-        SAMBinaryTagAndValue head = null;
-        SAMBinaryTagAndValue tail = null;
-
-        while (byteBuffer.hasRemaining()) {
-            final short tag = byteBuffer.getShort();
-            final byte tagType = byteBuffer.get();
-            final SAMBinaryTagAndValue tmp;
-            if (tagType != 'B') {
-                tmp = new SAMBinaryTagAndValue(tag, readSingleValue(tagType, byteBuffer, validationStringency));
-            } else {
-                final TagValueAndUnsignedArrayFlag valueAndFlag = readArray(byteBuffer, validationStringency);
-                if (valueAndFlag.isUnsignedArray) tmp = new SAMBinaryTagAndUnsignedArrayValue(tag, valueAndFlag.value);
-                else tmp = new SAMBinaryTagAndValue(tag, valueAndFlag.value);
-            }
-
-            // If samjdk wrote the BAM then the attributes will be in lowest->highest tag order, to inserting at the
-            // head each time will be very inefficient. To fix that we check here to see if the tag should go right on
-            // the tail and if so stick it there, else insert it through the head.
-            if (head == null) {
-                head = tmp;
-                tail = tmp;
-            }
-            else if (tmp.tag > tail.tag) {
-                tail.insert(tmp);
-                tail = tmp;
-            }
-            else {
-                head = head.insert(tmp);
-            }
-        }
-
-        return head;
-    }
-
-    /**
-     * Read value of specified non-array type.
-     * @param tagType What type to read.
-     * @param byteBuffer Little-ending byte buffer to read value from.
-     * @return Value in in-memory Object form.
-     */
-    private static  Object readSingleValue(final byte tagType, final ByteBuffer byteBuffer,
-                                           final SAMFileReader.ValidationStringency validationStringency) {
-        switch (tagType) {
-            case 'Z':
-                return readNullTerminatedString(byteBuffer);
-            case 'A':
-                return (char)byteBuffer.get();
-            case 'I':
-                final long val = byteBuffer.getInt() & 0xffffffffL;
-                if (val <= Integer.MAX_VALUE) {
-                    return (int)val;
-                }
-                SAMUtils.processValidationError(new SAMValidationError(SAMValidationError.Type.TAG_VALUE_TOO_LARGE,
-                        "Tag value " + val + " too large to store as signed integer.", null), validationStringency);
-                // convert to unsigned int stored in a long
-                return val;
-            case 'i':
-                return byteBuffer.getInt();
-            case 's':
-                return (int)byteBuffer.getShort();
-            case 'S':
-                // Convert to unsigned short stored in an int
-                return byteBuffer.getShort() & 0xffff;
-            case 'c':
-                return (int)byteBuffer.get();
-            case 'C':
-                // Convert to unsigned byte stored in an int
-                return (int)byteBuffer.get() & 0xff;
-            case 'f':
-                return byteBuffer.getFloat();
-            case 'H':
-                final String hexRep = readNullTerminatedString(byteBuffer);
-                return StringUtil.hexStringToBytes(hexRep);
-            default:
-                throw new SAMFormatException("Unrecognized tag type: " + (char)tagType);
-        }
-    }
-
-
-
-
-    /**
-     * Read value of specified type.
-     * @param byteBuffer Little-ending byte buffer to read value from.
-     * @return CVO containing the value in in-memory Object form, and a flag indicating whether it is unsigned or not.
-     */
-    private static TagValueAndUnsignedArrayFlag readArray(final ByteBuffer byteBuffer,
-                                                          final SAMFileReader.ValidationStringency validationStringency) {
-        final byte arrayType = byteBuffer.get();
-        final boolean isUnsigned = Character.isUpperCase(arrayType);
-        final int length = byteBuffer.getInt();
-        final Object value;
-        switch (Character.toLowerCase(arrayType)) {
-            case 'c': {
-                final byte[] array = new byte[length];
-                value = array;
-                byteBuffer.get(array);
-                break;
-            }
-            case 's': {
-                final short[] array = new short[length];
-                value = array;
-                for (int i = 0; i < length; ++i) {
-                    array[i] = byteBuffer.getShort();
-                }
-                break;
-            }
-
-            case 'i': {
-                final int[] array = new int[length];
-                value = array;
-                for (int i = 0; i < length; ++i) {
-                    array[i] = byteBuffer.getInt();
-                }
-                break;
-            }
-
-            case 'f': {
-                final float[] array = new float[length];
-                value = array;
-                for (int i = 0; i < length; ++i) {
-                    array[i] = byteBuffer.getFloat();
-                }
-                break;
-            }
-
-            default:
-                throw new SAMFormatException("Unrecognized tag array type: " + (char)arrayType);
-        }
-        return new TagValueAndUnsignedArrayFlag(value, isUnsigned);
-    }
-
-    private static String readNullTerminatedString(final ByteBuffer byteBuffer) {
-        // Count the number of bytes in the string
-        byteBuffer.mark();
-        final int startPosition = byteBuffer.position();
-        while (byteBuffer.get() != 0) {}
-        final int endPosition = byteBuffer.position();
-
-        // Don't count null terminator
-        final byte[] buf = new byte[endPosition - startPosition - 1];
-        // Go back to the start of the string and read out the bytes
-        byteBuffer.reset();
-        byteBuffer.get(buf);
-        // Skip over the null terminator
-        byteBuffer.get();
-        return StringUtil.bytesToString(buf);
-    }
-}
diff --git a/src/java/net/sf/samtools/BinningIndexBuilder.java b/src/java/net/sf/samtools/BinningIndexBuilder.java
deleted file mode 100644
index e3d5492..0000000
--- a/src/java/net/sf/samtools/BinningIndexBuilder.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2014 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import net.sf.samtools.util.BlockCompressedFilePointerUtil;
-
-import java.util.List;
-
-import static net.sf.samtools.GenomicIndexUtil.MAX_BINS;
-
-/**
- * Builder for a BinningIndexContent object.
- */
-public class BinningIndexBuilder {
-    private final int referenceSequence;
-    // the bins for the current reference
-    private final Bin[] bins; // made only as big as needed for each reference
-    private int binsSeen = 0;
-
-    // linear index for the current reference
-    private final long[] index = new long[LinearIndex.MAX_LINEAR_INDEX_SIZE];
-    private int largestIndexSeen = -1;
-
-
-    /**
-     *
-     * @param referenceSequence
-     * @param sequenceLength 0 implies unknown length.  Known length will reduce memory use.
-     */
-    public BinningIndexBuilder(final int referenceSequence, final int sequenceLength) {
-        this.referenceSequence = referenceSequence;
-        final int numBins;
-        if (sequenceLength <= 0) numBins = MAX_BINS + 1;
-        else numBins = AbstractBAMFileIndex.getMaxBinNumberForSequenceLength(sequenceLength) + 1;
-        bins = new Bin[numBins];
-    }
-
-    public BinningIndexBuilder(final int referenceSequence) {
-        this(referenceSequence, 0);
-    }
-
-    /**
-     * coordinates are 1-based, inclusive
-     */
-    public interface FeatureToBeIndexed {
-        public int getStart();
-        public int getEnd();
-        public Integer getIndexingBin();
-        public Chunk getChunk();
-    }
-
-    public void processFeature(final FeatureToBeIndexed feature) {
-
-        // process bins
-
-        final Integer binNumber = feature.getIndexingBin();
-        final int binNum = binNumber == null ? computeIndexingBin(feature) : binNumber;
-
-
-        // is there a bin already represented for this index?  if not, add one
-        final Bin bin;
-        if (bins[binNum] != null) {
-            bin = bins[binNum];
-        } else {
-            bin = new Bin(referenceSequence, binNum);
-            bins[binNum] = bin;
-            binsSeen++;
-        }
-
-        // process chunks
-
-        final Chunk newChunk = feature.getChunk();
-        final long chunkStart = newChunk.getChunkStart();
-        final long chunkEnd = newChunk.getChunkEnd();
-
-        final List<Chunk> oldChunks = bin.getChunkList();
-        if (!bin.containsChunks()) {
-            bin.addInitialChunk(newChunk);
-
-        } else {
-            final Chunk lastChunk = bin.getLastChunk();
-
-            // Coalesce chunks that are in the same or adjacent file blocks.
-            // Similar to AbstractBAMFileIndex.optimizeChunkList,
-            // but no need to copy the list, no minimumOffset, and maintain bin.lastChunk
-            if (BlockCompressedFilePointerUtil.areInSameOrAdjacentBlocks(lastChunk.getChunkEnd(), chunkStart)) {
-                lastChunk.setChunkEnd(chunkEnd);  // coalesced
-            } else {
-                oldChunks.add(newChunk);
-                bin.setLastChunk(newChunk);
-            }
-        }
-
-        // process linear index
-
-        // the smallest file offset that appears in the 16k window for this bin
-        final int featureEnd = feature.getEnd();
-        int startWindow = LinearIndex.convertToLinearIndexOffset(feature.getStart()); // the 16k window
-        final int endWindow;
-
-        if (featureEnd == GenomicIndexUtil.UNSET_GENOMIC_LOCATION) {   // assume feature uses one position
-            // Next line for C (samtools index) compatibility. Differs only when on a window boundary
-            startWindow = LinearIndex.convertToLinearIndexOffset(feature.getStart() - 1);
-            endWindow = startWindow;
-        } else {
-            endWindow = LinearIndex.convertToLinearIndexOffset(featureEnd);
-        }
-
-        if (endWindow > largestIndexSeen) {
-            largestIndexSeen = endWindow;
-        }
-
-        // set linear index at every 16K window that this feature overlaps
-        for (int win = startWindow; win <= endWindow; win++) {
-            if (index[win] == 0 || chunkStart < index[win]) {
-                index[win] = chunkStart;
-            }
-        }
-    }
-
-    /**
-     * Creates the BAMIndexContent for this reference.
-     * Requires all features of the reference have already been processed.
-     */
-    public BinningIndexContent generateIndexContent() {
-
-
-        // process bins
-        if (binsSeen == 0) return null;  // no bins for this reference
-
-        // process chunks
-        // nothing needed
-
-        // process linear index
-        // linear index will only be as long as the largest index seen
-        final long[] newIndex = new long[largestIndexSeen + 1]; // in java1.6 Arrays.copyOf(index, largestIndexSeen + 1);
-
-        // C (samtools index) also fills in intermediate 0's with values.  This seems unnecessary, but safe
-        long lastNonZeroOffset = 0;
-        for (int i = 0; i <= largestIndexSeen; i++) {
-            if (index[i] == 0) {
-                index[i] = lastNonZeroOffset; // not necessary, but C (samtools index) does this
-                // note, if you remove the above line BAMIndexWriterTest.compareTextual and compareBinary will have to change
-            } else {
-                lastNonZeroOffset = index[i];
-            }
-            newIndex[i] = index[i];
-        }
-
-        final LinearIndex linearIndex = new LinearIndex(referenceSequence, 0, newIndex);
-
-        return new BinningIndexContent(referenceSequence, new BinningIndexContent.BinList(bins, binsSeen), linearIndex);
-    }
-
-    private int computeIndexingBin(final FeatureToBeIndexed feature) {
-        // reg2bin has zero-based, half-open API
-        final int start = feature.getStart()-1;
-        int end = feature.getEnd();
-        if (end <= 0) {
-            // If feature end cannot be determined (e.g. because a read is not really aligned),
-            // then treat this as a one base feature for indexing purposes.
-            end = start + 1;
-        }
-        return GenomicIndexUtil.reg2bin(start, end);
-    }
-}
diff --git a/src/java/net/sf/samtools/BinningIndexContent.java b/src/java/net/sf/samtools/BinningIndexContent.java
deleted file mode 100644
index 2054e7b..0000000
--- a/src/java/net/sf/samtools/BinningIndexContent.java
+++ /dev/null
@@ -1,262 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2014 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import java.util.*;
-
-/**
- * In-memory representation of the binning index for a single reference.  BAM and Tabix are both binning indices
- * with slightly different disk formats but identical in-memory representations.
- */
-public class BinningIndexContent {
-    /**
-     * The reference sequence for the data currently loaded.
-     */
-    private final int mReferenceSequence;
-
-    /**
-     * A list of all bins in the above reference sequence.
-     */
-    private final BinList mBinList;
-
-    /**
-     * The linear index for the reference sequence above.
-     */
-    private final LinearIndex mLinearIndex;
-
-
-    /**
-     * @param referenceSequence Content corresponds to this reference.
-     * @param binList           Array of bins represented by this content, possibly sparse
-     * @param linearIndex       Additional index used to optimize queries
-     */
-    public BinningIndexContent(final int referenceSequence, final BinList binList, final LinearIndex linearIndex) {
-        this.mReferenceSequence = referenceSequence;
-        this.mBinList = binList;
-        this.mLinearIndex = linearIndex;
-    }
-
-    /**
-     * Reference for this Content
-     */
-    public int getReferenceSequence() {
-        return mReferenceSequence;
-    }
-
-    /**
-     * Does this content have anything in this bin?
-     */
-    public boolean containsBin(final Bin bin) {
-        return mBinList.getBin(bin.getBinNumber()) != null;
-    }
-
-    /**
-     * @return iterable list of bins represented by this content
-     */
-    public BinList getBins() {
-        return mBinList;
-    }
-
-    /**
-     * @return the number of non-null bins represented by this content
-     */
-    int getNumberOfNonNullBins() {
-        return mBinList.getNumberOfNonNullBins();
-    }
-
-    /**
-     * @return all chunks associated with all bins in this content
-     */
-    public List<Chunk> getAllChunks() {
-        final List<Chunk> allChunks = new ArrayList<Chunk>();
-        for (final Bin b : mBinList)
-            if (b.getChunkList() != null) {
-                allChunks.addAll(b.getChunkList());
-            }
-        return Collections.unmodifiableList(allChunks);
-    }
-
-    /**
-     * @return the linear index represented by this content
-     */
-    public LinearIndex getLinearIndex() {
-        return mLinearIndex;
-    }
-
-
-    /**
-     *
-     * @param startPos 1-based, inclusive
-     * @param endPos 1-based, inclusive
-     * @return List of Chunks overlapping the given region.  May return null if there are none.
-     */
-    public List<Chunk> getChunksOverlapping(final int startPos, final int endPos) {
-        final BitSet overlappingBins = GenomicIndexUtil.regionToBins(startPos,endPos);
-        if (overlappingBins == null) return null;
-
-        // System.out.println("# Sequence target TID: " + referenceIndex);
-        final List<Bin> bins = new ArrayList<Bin>();
-        for(final Bin bin: this.getBins()) {
-            if (overlappingBins.get(bin.getBinNumber()))
-                bins.add(bin);
-        }
-
-        if (bins.isEmpty()) {
-            return null;
-        }
-
-        final List<Chunk> chunkList = new ArrayList<Chunk>();
-        for(final Bin bin: bins) {
-            for(final Chunk chunk: bin.getChunkList())
-                chunkList.add(chunk.clone());
-        }
-
-        if (chunkList.isEmpty()) {
-            return null;
-        }
-
-        return Chunk.optimizeChunkList(chunkList,this.getLinearIndex().getMinimumOffset(startPos));
-    }
-    /**
-     * This class is used to encapsulate the list of Bins store in the BAMIndexContent
-     * While it is currently represented as an array, we may decide to change it to an ArrayList or other structure
-     */
-    public static class BinList implements Iterable<Bin> {
-
-        private final Bin[] mBinArray;
-        public final int numberOfNonNullBins;
-        public final int maxBinNumber;  // invariant: maxBinNumber = mBinArray.length -1 since array is 0 based
-
-        /**
-         * @param binArray            a sparse array representation of the bins. The index into the array is the bin number.
-         * @param numberOfNonNullBins
-         */
-        public BinList(final Bin[] binArray, final int numberOfNonNullBins) {
-            this.mBinArray = binArray;
-            this.numberOfNonNullBins = numberOfNonNullBins;
-            this.maxBinNumber = mBinArray.length - 1;
-        }
-
-        Bin getBin(final int binNumber) {
-            if (binNumber > maxBinNumber) return null;
-            return mBinArray[binNumber];
-        }
-
-        int getNumberOfNonNullBins() {
-            return numberOfNonNullBins;
-        }
-
-        /**
-         * @return An iterator over all non-empty bins.
-         */
-        public Iterator<Bin> iterator() {
-            return new BinIterator();
-        }
-
-        private class BinIterator implements Iterator<Bin> {
-            /**
-             * Stores the bin # of the Bin currently in use.
-             */
-            private int nextBin;
-
-            public BinIterator() {
-                nextBin = 0;
-            }
-
-            /**
-             * Are there more bins in this set, waiting to be returned?
-             *
-             * @return True if more bins are remaining.
-             */
-            public boolean hasNext() {
-                while (nextBin <= maxBinNumber) {
-                    if (getBin(nextBin) != null) return true;
-                    nextBin++;
-                }
-                return false;
-            }
-
-            /**
-             * Gets the next bin in the provided BinList.
-             *
-             * @return the next available bin in the BinList.
-             */
-            public Bin next() {
-                if (!hasNext())
-                    throw new NoSuchElementException("This BinIterator is currently empty");
-                final Bin result = getBin(nextBin);
-                nextBin++;
-                return result;
-            }
-
-            public void remove() {
-                throw new UnsupportedOperationException("Unable to remove from a bin iterator");
-            }
-        }
-
-        @Override
-        public boolean equals(final Object o) {
-            if (this == o) return true;
-            if (o == null || getClass() != o.getClass()) return false;
-
-            final BinList bins = (BinList) o;
-
-            if (maxBinNumber != bins.maxBinNumber) return false;
-            if (numberOfNonNullBins != bins.numberOfNonNullBins) return false;
-            if (!Arrays.equals(mBinArray, bins.mBinArray)) return false;
-
-            return true;
-        }
-
-        @Override
-        public int hashCode() {
-            int result = Arrays.hashCode(mBinArray);
-            result = 31 * result + numberOfNonNullBins;
-            result = 31 * result + maxBinNumber;
-            return result;
-        }
-    }
-
-    @Override
-    public boolean equals(final Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-
-        final BinningIndexContent that = (BinningIndexContent) o;
-
-        if (mReferenceSequence != that.mReferenceSequence) return false;
-        if (!mBinList.equals(that.mBinList)) return false;
-        if (!mLinearIndex.equals(that.mLinearIndex)) return false;
-
-        return true;
-    }
-
-    @Override
-    public int hashCode() {
-        int result = mReferenceSequence;
-        result = 31 * result + mBinList.hashCode();
-        result = 31 * result + mLinearIndex.hashCode();
-        return result;
-    }
-}
diff --git a/src/java/net/sf/samtools/BrowseableBAMIndex.java b/src/java/net/sf/samtools/BrowseableBAMIndex.java
deleted file mode 100644
index eaa1ffb..0000000
--- a/src/java/net/sf/samtools/BrowseableBAMIndex.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package net.sf.samtools;
-
-/**
- * An index interface with additional functionality for querying and inspecting the structure of a BAM index.
- *
- * @author mhanna
- * @version 0.1
- */
-public interface BrowseableBAMIndex extends BAMIndex {
-
-    /**
-     * Gets the size (number of bins in) a given level of a BAM index.
-     * @param levelNumber Level for which to inspect the size.
-     * @return Size of the given level.
-     */
-    public int getLevelSize(final int levelNumber);
-
-    /**
-     * Gets the level associated with the given bin number.
-     * @param bin The bin  for which to determine the level.
-     * @return the level associated with the given bin number.
-     */
-    public int getLevelForBin(final Bin bin);
-    
-    /**
-     * Gets the first locus that this bin can index into.
-     * @param bin The bin to test.
-     * @return The last position that the given bin can represent.
-     */
-    int getFirstLocusInBin(final Bin bin);
-
-    /**
-     * Gets the last locus that this bin can index into.
-     * @param bin The bin to test.
-     * @return The last position that the given bin can represent.
-     */
-    int getLastLocusInBin(final Bin bin);
-
-    /**
-     * Get a list of bins in the BAM file that may contain SAMRecords for the given range.
-     * @param referenceIndex sequence of desired SAMRecords
-     * @param startPos 1-based start of the desired interval, inclusive
-     * @param endPos 1-based end of the desired interval, inclusive
-     * @return a list of bins that contain relevant data.
-     */
-    BinList getBinsOverlapping(final int referenceIndex, final int startPos, final int endPos);
-
-    /**
-     * Perform an overlapping query of all bins bounding the given location.
-     * @param bin The bin over which to perform an overlapping query.
-     * @return The file pointers
-     */
-    BAMFileSpan getSpanOverlapping(final Bin bin);    
-}
diff --git a/src/java/net/sf/samtools/CachingBAMFileIndex.java b/src/java/net/sf/samtools/CachingBAMFileIndex.java
deleted file mode 100644
index 65d777e..0000000
--- a/src/java/net/sf/samtools/CachingBAMFileIndex.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import net.sf.samtools.seekablestream.SeekableStream;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Class for reading BAM file indices, caching each contig as it's loaded and
- * dropping values when the next contig is loaded.
- */
-class CachingBAMFileIndex extends AbstractBAMFileIndex implements BrowseableBAMIndex
-{
-    private Integer mLastReferenceRetrieved = null;
-    private final WeakHashMap<Integer,BAMIndexContent> mQueriesByReference = new WeakHashMap<Integer,BAMIndexContent>();
-
-    public CachingBAMFileIndex(final File file, final SAMSequenceDictionary dictionary) {
-        super(file, dictionary);
-    }
-
-    public CachingBAMFileIndex(final SeekableStream stream, final SAMSequenceDictionary dictionary) {
-        super(stream, dictionary);
-    }
-
-    public CachingBAMFileIndex(final File file, final SAMSequenceDictionary dictionary, final boolean useMemoryMapping) {
-        super(file, dictionary, useMemoryMapping);
-    }
-
-    /**
-     * Get list of regions of BAM file that may contain SAMRecords for the given range
-     * @param referenceIndex sequence of desired SAMRecords
-     * @param startPos 1-based start of the desired interval, inclusive
-     * @param endPos 1-based end of the desired interval, inclusive
-     * @return the virtual file position.  Each pair is the first and last virtual file position
-     *         in a range that can be scanned to find SAMRecords that overlap the given positions.
-     *         May return null if there is no content overlapping the region.
-     */
-    public BAMFileSpan getSpanOverlapping(final int referenceIndex, final int startPos, final int endPos) {
-        final BAMIndexContent queryResults = getQueryResults(referenceIndex);
-
-        if(queryResults == null)
-            return null;
-
-        final List<Chunk> chunkList = queryResults.getChunksOverlapping(startPos, endPos);
-        if (chunkList == null) return null;
-
-        return new BAMFileSpan(chunkList);
-    }
-
-    /**
-     * Get a list of bins in the BAM file that may contain SAMRecords for the given range.
-     * @param referenceIndex sequence of desired SAMRecords
-     * @param startPos 1-based start of the desired interval, inclusive
-     * @param endPos 1-based end of the desired interval, inclusive
-     * @return a list of bins that contain relevant data.
-     */
-    public BinList getBinsOverlapping(final int referenceIndex, final int startPos, final int endPos) {
-        final BitSet regionBins = GenomicIndexUtil.regionToBins(startPos, endPos);
-        if (regionBins == null) {
-            return null;
-        }
-        return new BinList(referenceIndex,regionBins);        
-    }
-
-    /**
-     * Perform an overlapping query of all bins bounding the given location.
-     * @param bin The bin over which to perform an overlapping query.
-     * @return The file pointers
-     */
-    public BAMFileSpan getSpanOverlapping(final Bin bin) {
-        if(bin == null)
-            return null;
-
-        final int referenceSequence = bin.getReferenceSequence();
-        final BAMIndexContent indexQuery = getQueryResults(referenceSequence);
-
-        if(indexQuery == null)
-            return null;
-
-        final int binLevel = getLevelForBin(bin);
-        final int firstLocusInBin = getFirstLocusInBin(bin);
-
-        // Add the specified bin to the tree if it exists.
-        final List<Bin> binTree = new ArrayList<Bin>();
-        if(indexQuery.containsBin(bin))
-            binTree.add(indexQuery.getBins().getBin(bin.getBinNumber()));
-
-        int currentBinLevel = binLevel;
-        while(--currentBinLevel >= 0) {
-            final int binStart = getFirstBinInLevel(currentBinLevel);
-            final int binWidth = getMaxAddressibleGenomicLocation()/getLevelSize(currentBinLevel);
-            final int binNumber = firstLocusInBin/binWidth + binStart;
-            final Bin parentBin = indexQuery.getBins().getBin(binNumber);
-            if(parentBin != null && indexQuery.containsBin(parentBin))
-                binTree.add(parentBin);
-        }
-
-        List<Chunk> chunkList = new ArrayList<Chunk>();
-        for(final Bin coveringBin: binTree) {
-            for(final Chunk chunk: coveringBin.getChunkList())
-                chunkList.add(chunk.clone());
-        }
-
-        final int start = getFirstLocusInBin(bin);
-        chunkList = Chunk.optimizeChunkList(chunkList,indexQuery.getLinearIndex().getMinimumOffset(start));
-        return new BAMFileSpan(chunkList);
-    }
-
-    /**
-     * Looks up the cached BAM query results if they're still in the cache and not expired.  Otherwise,
-     * retrieves the cache results from disk.
-     * @param referenceIndex The reference to load.  CachingBAMFileIndex only stores index data for entire references. 
-     * @return The index information for this reference.
-     */
-    protected BAMIndexContent getQueryResults(final int referenceIndex) {
-        // WeakHashMap is a bit weird in that its lookups are done via equals() equality, but expirations must be
-        // handled via == equality.  This implementation jumps through a few hoops to make sure that == equality still
-        // holds even in the context of boxing/unboxing.
-
-        // If this query is for the same reference index as the last query, return it.
-        if(mLastReferenceRetrieved!=null && mLastReferenceRetrieved == referenceIndex)
-            return mQueriesByReference.get(referenceIndex);
-
-        // If not, check to see whether it's available in the cache.
-        BAMIndexContent queryResults = mQueriesByReference.get(referenceIndex);
-        if(queryResults != null) {
-            mLastReferenceRetrieved = referenceIndex;
-            mQueriesByReference.put(referenceIndex,queryResults);
-            return queryResults;
-        }
-
-        // If not in the cache, attempt to load it from disk.
-        queryResults = query(referenceIndex,1,-1);
-        if(queryResults != null) {
-            mLastReferenceRetrieved = referenceIndex;
-            mQueriesByReference.put(referenceIndex,queryResults);
-            return queryResults;
-        }
-
-        // Not even available on disk.
-        return null;
-    }
-}
diff --git a/src/java/net/sf/samtools/Chunk.java b/src/java/net/sf/samtools/Chunk.java
deleted file mode 100644
index 7e51d2b..0000000
--- a/src/java/net/sf/samtools/Chunk.java
+++ /dev/null
@@ -1,167 +0,0 @@
-package net.sf.samtools;
-
-import net.sf.samtools.util.BlockCompressedFilePointerUtil;
-
-import java.io.Serializable;
-import java.util.*;
-
-/**
- * A [start,stop) file pointer pairing into the BAM file, stored
- * as a BAM file index.  A chunk is represented as a single 64-bit
- * value where the high-order 48 bits point to the location of the
- * start of a compressed BGZF block within a BGZF file and the
- * low-order 16 bits point to a position within the decompressed
- * data in the BGZF block.
- *
- * See the SAM/BAM spec for more details.
- */
-public class Chunk implements Cloneable, Serializable,Comparable<Chunk> {
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * A pointer to the start of a region in a SAM/BAM file.  The
-     * start is inclusive: start reading from this point.
-     */
-    private long mChunkStart;
-
-    /**
-     * A pointer to the end of a region in a SAM/BAM file.  The end
-     * is exclusive: this pointer points to one byte past the end
-     * of the region of interest inside the file.
-     */
-    private long mChunkEnd;
-
-    public Chunk(final long start, final long end) {
-        mChunkStart = start;
-        mChunkEnd = end;
-    }
-
-    public Chunk clone() {
-        return new Chunk(mChunkStart,mChunkEnd);
-    }
-
-    public long getChunkStart() {
-        return mChunkStart;
-    }
-
-    protected void setChunkStart(final long value) {
-        mChunkStart = value;
-    }
-
-    public long getChunkEnd() {
-        return mChunkEnd;
-    }
-
-    protected void setChunkEnd(final long value) {
-        mChunkEnd = value;
-    }
-
-    public int compareTo(final Chunk chunk) {
-        int result = Long.signum(mChunkStart - chunk.mChunkStart);
-        if (result == 0) {
-            result = Long.signum(mChunkEnd - chunk.mChunkEnd);
-        }
-        return result;
-    }
-
-    @Override
-    public boolean equals(final Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-
-        final Chunk chunk = (Chunk) o;
-
-        if (mChunkEnd != chunk.mChunkEnd) return false;
-        if (mChunkStart != chunk.mChunkStart) return false;
-
-        return true;
-    }
-
-    /**
-     * Returns whether two chunks overlap.
-     * @param other Chunk to which this should be compared.
-     * @return True if the chunks overlap.  Returns false if the two chunks abut or are disjoint.
-     */
-    public boolean overlaps(final Chunk other) {
-        final int comparison = this.compareTo(other);
-        if(comparison == 0)
-            return true;
-
-        // "sort" the two chunks using the comparator.
-        final Chunk leftMost = comparison==-1 ? this : other;
-        final Chunk rightMost = comparison==1 ? this : other;
-
-        final long leftMostBlockAddress = BlockCompressedFilePointerUtil.getBlockAddress(leftMost.getChunkEnd());
-        final long rightMostBlockAddress = BlockCompressedFilePointerUtil.getBlockAddress(rightMost.getChunkStart());
-
-        // If the left block's address is after the right block's address, compare the two blocks.
-        // If the two blocks are identical, compare the block offsets.
-        // If the right block is after the left block, no overlap is possible.
-        if(leftMostBlockAddress > rightMostBlockAddress)
-            return true;
-        else if(leftMostBlockAddress == rightMostBlockAddress) {
-            final int leftMostOffset = BlockCompressedFilePointerUtil.getBlockOffset(leftMost.getChunkEnd());
-            final int rightMostOffset = BlockCompressedFilePointerUtil.getBlockOffset(rightMost.getChunkStart());
-            return leftMostOffset > rightMostOffset;
-        }
-        else
-            return false;
-    }
-
-    /**
-     * Returns whether two chunks overlap.
-     * @param other Chunk to which this should be compared.
-     * @return True if the two chunks are adjacent.  Returns false if the chunks overlap or are discontinuous.
-     */
-    public boolean isAdjacentTo(final Chunk other) {
-        // Simpler implementation would be to == the chunk end of one to the chunk start of the other.  Chose this implementation to ensure that all chunk
-        // comparisons point directly to the 
-        return (BlockCompressedFilePointerUtil.getBlockAddress(this.getChunkEnd()) == BlockCompressedFilePointerUtil.getBlockAddress(other.getChunkStart()) &&
-                BlockCompressedFilePointerUtil.getBlockOffset(this.getChunkEnd()) == BlockCompressedFilePointerUtil.getBlockOffset(other.getChunkStart())) ||
-               (BlockCompressedFilePointerUtil.getBlockAddress(this.getChunkStart()) == BlockCompressedFilePointerUtil.getBlockAddress(other.getChunkEnd()) &&
-                BlockCompressedFilePointerUtil.getBlockOffset(this.getChunkStart()) == BlockCompressedFilePointerUtil.getBlockOffset(other.getChunkEnd()));
-    }
-
-    @Override
-    public int hashCode() {
-        int result = (int) (mChunkStart ^ (mChunkStart >>> 32));
-        result = 31 * result + (int) (mChunkEnd ^ (mChunkEnd >>> 32));
-        return result;
-    }
-
-    @Override
-    public String toString() {
-        return String.format("%d:%d-%d:%d",mChunkStart >> 16,mChunkStart & 0xFFFF,mChunkEnd >> 16,mChunkEnd & 0xFFFF);
-    }
-
-    /**
-     * @param minimumOffset Discard chunks that end before this file offset.
-     * @return sorted list of chunks in which adjacent chunks are coalesced.
-     */
-    public static List<Chunk> optimizeChunkList(final List<Chunk> chunks, final long minimumOffset) {
-        Chunk lastChunk = null;
-        Collections.sort(chunks);
-        final List<Chunk> result = new ArrayList<Chunk>();
-        for (final Chunk chunk : chunks) {
-            if (chunk.getChunkEnd() <= minimumOffset) {
-                continue;               // linear index optimization
-            }
-            if (result.isEmpty()) {
-                result.add(chunk);
-                lastChunk = chunk;
-                continue;
-            }
-            // Coalesce chunks that are in adjacent file blocks.
-            // This is a performance optimization.
-            if (!lastChunk.overlaps(chunk) && !lastChunk.isAdjacentTo(chunk)) {
-                result.add(chunk);
-                lastChunk = chunk;
-            } else {
-                if (chunk.getChunkEnd() > lastChunk.getChunkEnd()) {
-                    lastChunk.setChunkEnd(chunk.getChunkEnd());
-                }
-            }
-        }
-        return result;
-    }
-}
diff --git a/src/java/net/sf/samtools/Cigar.java b/src/java/net/sf/samtools/Cigar.java
deleted file mode 100644
index 579eb03..0000000
--- a/src/java/net/sf/samtools/Cigar.java
+++ /dev/null
@@ -1,268 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Collections;
-
-/**
- * A list of CigarElements, which describes how a read aligns with the reference.
- * E.g. the Cigar string 10M1D25M means
- * * match or mismatch for 10 bases
- * * deletion of 1 base
- * * match or mismatch for 25 bases
- *
- * c.f. http://samtools.sourceforge.net/SAM1.pdf for complete CIGAR specification.
- */
-public class Cigar {
-    private final List<CigarElement> cigarElements = new ArrayList<CigarElement>();
-
-    public Cigar() {
-    }
-
-    public Cigar(final List<CigarElement> cigarElements) {
-        this.cigarElements.addAll(cigarElements);
-    }
-
-    public List<CigarElement> getCigarElements() {
-        return Collections.unmodifiableList(cigarElements);
-    }
-
-    public CigarElement getCigarElement(final int i) {
-        return cigarElements.get(i);
-    }
-
-    public void add(final CigarElement cigarElement) {
-        cigarElements.add(cigarElement);
-    }
-
-    public int numCigarElements() {
-        return cigarElements.size();
-    }
-
-    public boolean isEmpty() {
-        return cigarElements.isEmpty();
-    }
-
-    /**
-     * @return The number of reference bases that the read covers, excluding padding.
-     */
-    public int getReferenceLength() {
-        int length = 0;
-        for (final CigarElement element : cigarElements) {
-            switch (element.getOperator()) {
-                case M:
-                case D:
-                case N:
-                case EQ:
-                case X:
-                    length += element.getLength();
-            }
-        }
-        return length;
-    }
-
-    /**
-     * @return The number of reference bases that the read covers, including padding.
-     */
-    public int getPaddedReferenceLength() {
-        int length = 0;
-        for (final CigarElement element : cigarElements) {
-            switch (element.getOperator()) {
-                case M:
-                case D:
-                case N:
-                case EQ:
-                case X:
-                case P:
-                    length += element.getLength();
-            }
-        }
-        return length;
-    }
-
-    /**
-     * @return The number of read bases that the read covers.
-     */
-    public int getReadLength() {
-        return getReadLength(cigarElements);
-    }
-
-    /**
-     * @return The number of read bases that the read covers.
-     */
-    public static int getReadLength(final List<CigarElement> cigarElements) {
-        int length = 0;
-        for (final CigarElement element : cigarElements) {
-            if (element.getOperator().consumesReadBases()){
-                    length += element.getLength();
-            }
-        }
-        return length;
-    }
-
-    /**
-     * Exhaustive validation of CIGAR.
-     * Note that this method deliberately returns null rather than Collections.emptyList() if there
-     * are no validation errors, because callers tend to assume that if a non-null list is returned, it is modifiable.
-     * @param readName For error reporting only.  May be null if not known.
-     * @param recordNumber For error reporting only.  May be -1 if not known.
-     * @return List of validation errors, or null if no errors.
-     */
-    public List<SAMValidationError> isValid(final String readName, final long recordNumber) {
-        if (this.isEmpty()) {
-            return null;
-        }
-        List<SAMValidationError> ret = null;
-        boolean seenRealOperator = false;
-        for (int i = 0; i < cigarElements.size(); ++i) {
-            final CigarElement element = cigarElements.get(i);
-            if (element.getLength() == 0) {
-                if (ret == null) ret = new ArrayList<SAMValidationError>();
-                ret.add(new SAMValidationError(SAMValidationError.Type.INVALID_CIGAR,
-                        "CIGAR element with zero length", readName, recordNumber));
-            }
-            // clipping operator can only be at start or end of CIGAR
-            final CigarOperator op = element.getOperator();
-            if (isClippingOperator(op)) {
-                if (op == CigarOperator.H) {
-                    if (i != 0 && i != cigarElements.size() - 1) {
-                        if (ret == null) ret = new ArrayList<SAMValidationError>();
-                        ret.add(new SAMValidationError(SAMValidationError.Type.INVALID_CIGAR,
-                                "Hard clipping operator not at start or end of CIGAR", readName, recordNumber));
-                    }
-                } else {
-                    if (op != CigarOperator.S) throw new IllegalStateException("Should never happen: " + op.name());
-                    if (i == 0 || i == cigarElements.size() - 1) {
-                        // Soft clip at either end is fine
-                    } else if (i == 1) {
-                        if (cigarElements.size() == 3 && cigarElements.get(2).getOperator() == CigarOperator.H) {
-                            // Handle funky special case in which S operator is both one from the beginning and one
-                            // from the end.
-                        } else if (cigarElements.get(0).getOperator() != CigarOperator.H) {
-                            if (ret == null) ret = new ArrayList<SAMValidationError>();
-                            ret.add(new SAMValidationError(SAMValidationError.Type.INVALID_CIGAR,
-                                "Soft clipping CIGAR operator can only be inside of hard clipping operator",
-                                    readName, recordNumber));
-                        }
-                    } else if (i == cigarElements.size() - 2) {
-                        if (cigarElements.get(cigarElements.size() - 1).getOperator() != CigarOperator.H) {
-                            if (ret == null) ret = new ArrayList<SAMValidationError>();
-                            ret.add(new SAMValidationError(SAMValidationError.Type.INVALID_CIGAR,
-                                "Soft clipping CIGAR operator can only be inside of hard clipping operator",
-                                    readName, recordNumber));
-                        }
-                    } else {
-                        if (ret == null) ret = new ArrayList<SAMValidationError>();
-                        ret.add(new SAMValidationError(SAMValidationError.Type.INVALID_CIGAR,
-                            "Soft clipping CIGAR operator can at start or end of read, or be inside of hard clipping operator",
-                                readName, recordNumber));
-                    }
-
-                }
-            } else if (isRealOperator(op)) {
-                // Must be at least one real operator (MIDN)
-                seenRealOperator = true;
-                // There should be an M or P operator between any pair of IDN operators
-                if (isInDelOperator(op)) {
-                    for (int j = i+1; j < cigarElements.size(); ++j) {
-                        final CigarOperator nextOperator = cigarElements.get(j).getOperator();
-                        // Allow
-                        if ((isRealOperator(nextOperator) && !isInDelOperator(nextOperator)) || isPaddingOperator(nextOperator)) {
-                            break;
-                        }
-                        if (isInDelOperator(nextOperator) && op == nextOperator) {
-                            if (ret == null) ret = new ArrayList<SAMValidationError>();
-                            ret.add(new SAMValidationError(SAMValidationError.Type.ADJACENT_INDEL_IN_CIGAR,
-                                    "No M or N operator between pair of " + op.name() + " operators in CIGAR", readName, recordNumber));
-                        }
-                    }
-                }
-            } else if (isPaddingOperator(op)) {
-                if (i == 0) {
-                    /*
-                     * Removed restriction that padding not be the first operator because if a read starts in the middle of a pad
-                     * in a padded reference, it is necessary to precede the read with padding so that alignment start refers to a
-                     * position on the unpadded reference.
-                    */
-                } else if (i == cigarElements.size() - 1) {
-                    if (ret == null) ret = new ArrayList<SAMValidationError>();
-                    ret.add(new SAMValidationError(SAMValidationError.Type.INVALID_CIGAR,
-                            "Padding operator not valid at end of CIGAR", readName, recordNumber));
-                } else if (!isRealOperator(cigarElements.get(i-1).getOperator()) ||
-                        !isRealOperator(cigarElements.get(i+1).getOperator())) {
-                    if (ret == null) ret = new ArrayList<SAMValidationError>();
-                    ret.add(new SAMValidationError(SAMValidationError.Type.INVALID_CIGAR,
-                            "Padding operator not between real operators in CIGAR", readName, recordNumber));
-                }
-            }
-        }
-        if (!seenRealOperator) {
-            if (ret == null) ret = new ArrayList<SAMValidationError>();
-            ret.add(new SAMValidationError(SAMValidationError.Type.INVALID_CIGAR,
-                    "No real operator (M|I|D|N) in CIGAR", readName, recordNumber));
-        }
-        return ret;
-    }
-
-    private static boolean isRealOperator(final CigarOperator op) {
-        return op == CigarOperator.M || op == CigarOperator.EQ || op == CigarOperator.X || 
-               op == CigarOperator.I || op == CigarOperator.D || op == CigarOperator.N;
-    }
-
-    private static boolean isInDelOperator(final CigarOperator op) {
-        return op == CigarOperator.I || op == CigarOperator.D;
-    }
-
-    private static boolean isClippingOperator(final CigarOperator op) {
-        return op == CigarOperator.S || op == CigarOperator.H;
-    }
-
-    private static boolean isPaddingOperator(final CigarOperator op) {
-        return op == CigarOperator.P;
-    }
-
-    @Override
-    public boolean equals(final Object o) {
-        if (this == o) return true;
-        if (!(o instanceof Cigar)) return false;
-
-        final Cigar cigar = (Cigar) o;
-
-        if (cigarElements != null ? !cigarElements.equals(cigar.cigarElements) : cigar.cigarElements != null)
-            return false;
-
-        return true;
-    }
-
-    @Override
-    public int hashCode() {
-        return cigarElements != null ? cigarElements.hashCode() : 0;
-    }
-
-    public String toString() {
-        return TextCigarCodec.getSingleton().encode(this);
-    }
-}
diff --git a/src/java/net/sf/samtools/CigarElement.java b/src/java/net/sf/samtools/CigarElement.java
deleted file mode 100644
index 19feee3..0000000
--- a/src/java/net/sf/samtools/CigarElement.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-/**
- * One component of a cigar string.  The component comprises the operator, and the number of bases to which
- * the  operator applies.
- */
-public class CigarElement {
-    private final int length;
-    private final CigarOperator operator;
-
-    public CigarElement(final int length, final CigarOperator operator) {
-        this.length = length;
-        this.operator = operator;
-    }
-
-    public int getLength() {
-        return length;
-    }
-
-    public CigarOperator getOperator() {
-        return operator;
-    }
-
-    @Override
-    public boolean equals(final Object o) {
-        if (this == o) return true;
-        if (!(o instanceof CigarElement)) return false;
-
-        final CigarElement that = (CigarElement) o;
-
-        if (length != that.length) return false;
-        if (operator != that.operator) return false;
-
-        return true;
-    }
-
-    @Override
-    public int hashCode() {
-        int result = length;
-        result = 31 * result + (operator != null ? operator.hashCode() : 0);
-        return result;
-    }
-}
diff --git a/src/java/net/sf/samtools/CigarOperator.java b/src/java/net/sf/samtools/CigarOperator.java
deleted file mode 100644
index 9454c7b..0000000
--- a/src/java/net/sf/samtools/CigarOperator.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-/**
- * The operators that can appear in a cigar string, and information about their disk representations.
- */
-public enum CigarOperator {
-    /** Match or mismatch */
-    M(true, true,   'M'),
-    /** Insertion vs. the reference. */
-    I(true, false,  'I'),
-    /** Deletion vs. the reference. */
-    D(false, true,  'D'),
-    /** Skipped region from the reference. */
-    N(false, true,  'N'),
-    /** Soft clip. */
-    S(true, false,  'S'),
-    /** Hard clip. */
-    H(false, false, 'H'),
-    /** Padding. */
-    P(false, false, 'P'),
-    /** Matches the reference. */
-    EQ(true, true,  '='),
-    /** Mismatches the reference. */
-    X(true, true,   'X')
-    ;
-
-    // Representation of CigarOperator in BAM file
-    private static final byte OP_M = 0;
-    private static final byte OP_I = 1;
-    private static final byte OP_D = 2;
-    private static final byte OP_N = 3;
-    private static final byte OP_S = 4;
-    private static final byte OP_H = 5;
-    private static final byte OP_P = 6;
-    private static final byte OP_EQ = 7;
-    private static final byte OP_X = 8;
-
-    private final boolean consumesReadBases;
-    private final boolean consumesReferenceBases;
-    private final byte character;
-    private final String string;
-
-    // Readable synonyms of the above enums
-    public static final CigarOperator MATCH_OR_MISMATCH = M;
-    public static final CigarOperator INSERTION = I;
-    public static final CigarOperator DELETION = D;
-    public static final CigarOperator SKIPPED_REGION = N;
-    public static final CigarOperator SOFT_CLIP = S;
-    public static final CigarOperator HARD_CLIP = H;
-    public static final CigarOperator PADDING = P;
-
-    /** Default constructor. */
-    CigarOperator(boolean consumesReadBases, boolean consumesReferenceBases, char character) {
-        this.consumesReadBases = consumesReadBases;
-        this.consumesReferenceBases = consumesReferenceBases;
-        this.character = (byte) character;
-        this.string = new String(new char[] {character}).intern();
-    }
-
-    /** If true, represents that this cigar operator "consumes" bases from the read bases. */
-    public boolean consumesReadBases() { return consumesReadBases; }
-
-    /** If true, represents that this cigar operator "consumes" bases from the reference sequence. */
-    public boolean consumesReferenceBases() { return consumesReferenceBases; }
-
-    /**
-     * @param b CIGAR operator in character form as appears in a text CIGAR string
-     * @return CigarOperator enum value corresponding to the given character.
-     */
-    public static CigarOperator characterToEnum(final int b) {
-        switch (b) {
-        case 'M':
-            return M;
-        case 'I':
-            return I;
-        case 'D':
-            return D;
-        case 'N':
-            return N;
-        case 'S':
-            return S;
-        case 'H':
-            return H;
-        case 'P':
-            return P;
-        case '=':
-            return EQ;
-        case 'X':
-            return X;
-        default:
-            throw new IllegalArgumentException("Unrecognized CigarOperator: " + b);
-        }
-    }
-
-    /**
-     * @param i CIGAR operator in binary form as appears in a BAMRecord.
-     * @return CigarOperator enum value corresponding to the given int value.
-     */
-    public static CigarOperator binaryToEnum(final int i) {
-        switch(i) {
-            case OP_M:
-                return M;
-            case OP_I:
-                return I;
-            case OP_D:
-                return D;
-            case OP_N:
-                return N;
-            case OP_S:
-                return S;
-            case OP_H:
-                return H;
-            case OP_P:
-                return P;
-            case OP_EQ:
-                return EQ;
-            case OP_X:
-                return X;
-            default:
-                throw new IllegalArgumentException("Unrecognized CigarOperator: " + i);
-        }
-    }
-
-    /**
-     *
-     * @param e CigarOperator enum value.
-     * @return CIGAR operator corresponding to the enum value in binary form as appears in a BAMRecord.
-     */
-    public static int enumToBinary(final CigarOperator e) {
-        switch(e) {
-            case M:
-                return OP_M;
-            case I:
-                return OP_I;
-            case D:
-                return OP_D;
-            case N:
-                return OP_N;
-            case S:
-                return OP_S;
-            case H:
-                return OP_H;
-            case P:
-                return OP_P;
-            case EQ:
-                return OP_EQ;
-            case X:
-                return OP_X;
-            default:
-                throw new IllegalArgumentException("Unrecognized CigarOperator: " + e);
-        }
-    }
-
-    /** Returns the character that should be used within a SAM file. */
-    public static byte enumToCharacter(final CigarOperator e) {
-        return e.character;
-    }
-
-    /** Returns the cigar operator as it would be seen in a SAM file. */
-    @Override public String toString() {
-        return this.string;
-    }
-}
diff --git a/src/java/net/sf/samtools/DefaultSAMRecordFactory.java b/src/java/net/sf/samtools/DefaultSAMRecordFactory.java
deleted file mode 100644
index 07e6ab2..0000000
--- a/src/java/net/sf/samtools/DefaultSAMRecordFactory.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package net.sf.samtools;
-
-/**
- * Default factory for creating SAM and BAM records used by the SAMFileReader classes.
- *
- * @author Tim Fennell
- */
-public class DefaultSAMRecordFactory implements SAMRecordFactory {
-
-    /** Create a new SAMRecord to be filled in */
-    public SAMRecord createSAMRecord(final SAMFileHeader header) {
-        return new SAMRecord(header);
-    }
-
-    /** Create a new BAM Record. */
-    public BAMRecord createBAMRecord (final SAMFileHeader header,
-                                      final int referenceSequenceIndex,
-                                      final int alignmentStart,
-                                      final short readNameLength,
-                                      final short mappingQuality,
-                                      final int indexingBin,
-                                      final int cigarLen,
-                                      final int flags,
-                                      final int readLen,
-                                      final int mateReferenceSequenceIndex,
-                                      final int mateAlignmentStart,
-                                      final int insertSize,
-                                      final byte[] variableLengthBlock) {
-
-        return new BAMRecord(header,
-                             referenceSequenceIndex,
-                             alignmentStart,
-                             readNameLength,
-                             mappingQuality,
-                             indexingBin,
-                             cigarLen,
-                             flags,
-                             readLen,
-                             mateReferenceSequenceIndex,
-                             mateAlignmentStart,
-                             insertSize,
-                             variableLengthBlock);
-    }
-}
diff --git a/src/java/net/sf/samtools/Defaults.java b/src/java/net/sf/samtools/Defaults.java
deleted file mode 100644
index d4e5368..0000000
--- a/src/java/net/sf/samtools/Defaults.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package net.sf.samtools;
-
-import java.io.File;
-
-/**
- * Embodies defaults for global values that affect how the SAM JDK operates. Defaults are encoded in the class
- * and are also overridable using system properties.
- *
- * @author Tim Fennell
- */
-public class Defaults {
-    /** Should BAM index files be created when writing out coordinate sorted BAM files?  Default = false. */
-    public static final boolean CREATE_INDEX;
-
-    /** Should MD5 files be created when writing out SAM and BAM files?  Default = false. */
-    public static final boolean CREATE_MD5;
-
-    /** Should asynchronous I/O be used when writing out SAM and BAM files (one thread per file).  Default = false. */
-    public static final boolean USE_ASYNC_IO;
-
-    /** Compresion level to be used for writing BAM and other block-compressed outputs.  Default = 5. */
-    public static final int COMPRESSION_LEVEL;
-
-    /** Buffer size, in bytes, used whenever reading/writing files or streams.  Default = 128k. */
-    public static final int BUFFER_SIZE;
-
-    /**
-     * Even if BUFFER_SIZE is 0, this is guaranteed to be non-zero.  If BUFFER_SIZE is non-zero,
-     * this == BUFFER_SIZE
-     */
-    public static final int NON_ZERO_BUFFER_SIZE;
-
-    /** Should BlockCompressedOutputStream attempt to load libIntelDeflater? */
-    public static final boolean TRY_USE_INTEL_DEFLATER;
-
-    /** Path to libIntelDeflater.so.  If this is not set, the library is looked for in the directory
-     * where the executable jar lives. */
-    public static final String INTEL_DEFLATER_SHARED_LIBRARY_PATH;
-
-    /** The reference FASTA file.  If this is not set, the file is null.  This file may be required for reading
-     * writing SAM files (ex. CRAM).
-     */
-    public static final File REFERENCE_FASTA;
-
-    static {
-        CREATE_INDEX      = getBooleanProperty("create_index", false);
-        CREATE_MD5        = getBooleanProperty("create_md5", false);
-        USE_ASYNC_IO      = getBooleanProperty("use_async_io", false);
-        COMPRESSION_LEVEL = getIntProperty("compression_level", 5);
-        BUFFER_SIZE       = getIntProperty("buffer_size", 1024 * 128);
-        TRY_USE_INTEL_DEFLATER = getBooleanProperty("try_use_intel_deflater", true);
-        INTEL_DEFLATER_SHARED_LIBRARY_PATH = getStringProperty("intel_deflater_so_path", null);
-        if (BUFFER_SIZE == 0) {
-            NON_ZERO_BUFFER_SIZE = 1024 * 128;
-        } else {
-            NON_ZERO_BUFFER_SIZE = BUFFER_SIZE;
-        }
-        REFERENCE_FASTA   = getFileProperty("reference_fasta", null);
-    }
-
-    /** Gets a string system property, prefixed with "samjdk." using the default if the property does not exist.*/
-    private static String getStringProperty(final String name, final String def) {
-        return System.getProperty("samjdk." + name, def);
-    }
-
-    /** Gets a boolean system property, prefixed with "samjdk." using the default if the property does not exist.*/
-    private static boolean getBooleanProperty(final String name, final boolean def) {
-        final String value = getStringProperty(name, new Boolean(def).toString());
-        return Boolean.parseBoolean(value);
-    }
-
-    /** Gets an int system property, prefixed with "samjdk." using the default if the property does not exist.*/
-    private static int getIntProperty(final String name, final int def) {
-        final String value = getStringProperty(name, new Integer(def).toString());
-        return Integer.parseInt(value);
-    }
-
-    /** Gets a File system property, prefixed with "samdjk." using the default if the property does not exist.*/
-    private static File getFileProperty(final String name, final String def) {
-        final String value = getStringProperty(name, def);
-        // TODO: assert that it is readable
-        return (null == value) ? null : new File(value);
-    }
-}
diff --git a/src/java/net/sf/samtools/DiskBasedBAMFileIndex.java b/src/java/net/sf/samtools/DiskBasedBAMFileIndex.java
deleted file mode 100644
index 7a00666..0000000
--- a/src/java/net/sf/samtools/DiskBasedBAMFileIndex.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import net.sf.samtools.seekablestream.SeekableStream;
-
-import java.io.*;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * A class for reading BAM file indices, hitting the disk once per query.
- */
-class DiskBasedBAMFileIndex extends AbstractBAMFileIndex
-{
-    DiskBasedBAMFileIndex(final File file, final SAMSequenceDictionary dictionary) {
-        super(file, dictionary);
-    }
-
-    DiskBasedBAMFileIndex(final SeekableStream stream, final SAMSequenceDictionary dictionary) {
-        super(stream, dictionary);
-    }
-
-    DiskBasedBAMFileIndex(final File file, final SAMSequenceDictionary dictionary, final boolean useMemoryMapping) {
-        super(file, dictionary, useMemoryMapping);
-    }
-
-    /**
-     * Get list of regions of BAM file that may contain SAMRecords for the given range
-     * @param referenceIndex sequence of desired SAMRecords
-     * @param startPos 1-based start of the desired interval, inclusive
-     * @param endPos 1-based end of the desired interval, inclusive
-     * @return array of pairs of virtual file positions.  Each pair is the first and last
-     * virtual file position in a range that can be scanned to find SAMRecords that overlap the given
-     * positions. The last position in each pair is a virtual file pointer to the first SAMRecord beyond
-     * the range that may contain the indicated SAMRecords.
-     */
-    public BAMFileSpan getSpanOverlapping(final int referenceIndex, final int startPos, final int endPos) {
-        final BAMIndexContent queryResults = query(referenceIndex,startPos,endPos);
-
-        if(queryResults == null)
-            return null;
-
-        List<Chunk> chunkList = new ArrayList<Chunk>();
-        for(final Chunk chunk: queryResults.getAllChunks())
-            chunkList.add(chunk.clone());
-        chunkList = Chunk.optimizeChunkList(chunkList,queryResults.getLinearIndex().getMinimumOffset(startPos));
-        return new BAMFileSpan(chunkList);
-    }
-
-     protected BAMIndexContent getQueryResults(final int reference){
-         throw new UnsupportedOperationException();
-         // todo: there ought to be a way to support this using the first startPos for the reference and the last
-         // return query(reference, 1, -1);
-         // If this were implemented, BAMIndexer.createAndWriteIndex could extend DiskBasedBAMFileIndex -or- CachingBAMFileIndex
-    }
-}
diff --git a/src/java/net/sf/samtools/FileTruncatedException.java b/src/java/net/sf/samtools/FileTruncatedException.java
deleted file mode 100644
index 0c04cee..0000000
--- a/src/java/net/sf/samtools/FileTruncatedException.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-/**
- * Thrown when it is possible to detect that a SAM or BAM file is truncated.
- *
- * @author alecw at broadinstitute.org
- */
-public class FileTruncatedException extends SAMException {
-    public FileTruncatedException() {
-    }
-
-    public FileTruncatedException(final String s) {
-        super(s);
-    }
-
-    public FileTruncatedException(final String s, final Throwable throwable) {
-        super(s, throwable);
-    }
-
-    public FileTruncatedException(final Throwable throwable) {
-        super(throwable);
-    }
-}
diff --git a/src/java/net/sf/samtools/FixBAMFile.java b/src/java/net/sf/samtools/FixBAMFile.java
deleted file mode 100755
index 81949f6..0000000
--- a/src/java/net/sf/samtools/FixBAMFile.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- */
-package net.sf.samtools;
-
-import net.sf.samtools.SAMFileReader.ValidationStringency;
-import java.io.*;
-
-public class FixBAMFile
-{
-    public static void main(String[] args) {
-        File inputFile = new File(args[0]);
-        File outputFile = new File(args[1]);
-        SAMFileReader reader = new SAMFileReader(inputFile);
-        reader.setValidationStringency(ValidationStringency.SILENT);
-        SAMFileHeader header = reader.getFileHeader();
-        SAMFileWriter writer = new SAMFileWriterFactory().makeBAMWriter(header, true, outputFile);
-        for (SAMRecord record : reader) {
-            if (record.getIndexingBin() != null) {
-                record.setIndexingBin(record.computeIndexingBin());
-            }
-            writer.addAlignment(record);
-        }
-        writer.close();
-    }
-}
diff --git a/src/java/net/sf/samtools/GenomicIndexUtil.java b/src/java/net/sf/samtools/GenomicIndexUtil.java
deleted file mode 100644
index f9785be..0000000
--- a/src/java/net/sf/samtools/GenomicIndexUtil.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2014 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import java.util.BitSet;
-
-/**
- * Constants and methods used by BAM and Tribble indices
- */
-public class GenomicIndexUtil {
-    /**
-     * Reports the total amount of genomic data that any bin can index.
-     */
-    public static final int BIN_GENOMIC_SPAN = 512*1024*1024;
-
-    /**
-     * What is the starting bin for each level?
-     */
-    public static final int[] LEVEL_STARTS = {0,1,9,73,585,4681};
-
-    /**
-     * Reports the maximum number of bins that can appear in a binning index.
-     */
-    public static final int MAX_BINS = 37450;   // =(8^6-1)/7+1
-
-    public static final int MAX_LINEAR_INDEX_SIZE = MAX_BINS+1-LEVEL_STARTS[LEVEL_STARTS.length-1];
-
-
-    /**
-     * E.g. for a SAMRecord with no genomic coordinate.
-     */
-    public static final int UNSET_GENOMIC_LOCATION = 0;
-
-    /**
-     * calculate the bin given an alignment in [beg,end)
-     * Copied from SAM spec.
-     * @param beg 0-based start of read (inclusive)
-     * @param end 0-based end of read (exclusive)
-     */
-    static int reg2bin(final int beg, int end)
-    {
-        --end;
-
-        if (beg>>14 == end>>14) return ((1<<15)-1)/7 + (beg>>14);
-        if (beg>>17 == end>>17) return ((1<<12)-1)/7 + (beg>>17);
-        if (beg>>20 == end>>20) return  ((1<<9)-1)/7 + (beg>>20);
-        if (beg>>23 == end>>23) return  ((1<<6)-1)/7 + (beg>>23);
-        if (beg>>26 == end>>26) return  ((1<<3)-1)/7 + (beg>>26);
-        return 0;
-    }
-
-    // TODO: It is disturbing that reg2bin is 0-based, but regionToBins is 1-based.
-    // TODO: It is also suspicious that regionToBins decrements endPos.  Test it!
-    // TODO: However end is decremented in reg2bin so perhaps there is no conflict.
-    /**
-     * Get candidate bins for the specified region
-     * @param startPos 1-based start of target region, inclusive.
-     * @param endPos 1-based end of target region, inclusive.
-     * @return bit set for each bin that may contain SAMRecords in the target region.
-     */
-    public static BitSet regionToBins(final int startPos, final int endPos) {
-        final int maxPos = 0x1FFFFFFF;
-        final int start = (startPos <= 0) ? 0 : (startPos-1) & maxPos;
-        final int end = (endPos <= 0) ? maxPos : (endPos-1) & maxPos;
-        if (start > end) {
-            return null;
-        }
-        int k;
-        final BitSet bitSet = new BitSet(GenomicIndexUtil.MAX_BINS);
-        bitSet.set(0);
-        for (k =    1 + (start>>26); k <=    1 + (end>>26); ++k) bitSet.set(k);
-        for (k =    9 + (start>>23); k <=    9 + (end>>23); ++k) bitSet.set(k);
-        for (k =   73 + (start>>20); k <=   73 + (end>>20); ++k) bitSet.set(k);
-        for (k =  585 + (start>>17); k <=  585 + (end>>17); ++k) bitSet.set(k);
-        for (k = 4681 + (start>>14); k <= 4681 + (end>>14); ++k) bitSet.set(k);
-        return bitSet;
-    }
-
-}
diff --git a/src/java/net/sf/samtools/LinearIndex.java b/src/java/net/sf/samtools/LinearIndex.java
deleted file mode 100644
index 21be098..0000000
--- a/src/java/net/sf/samtools/LinearIndex.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import java.util.Arrays;
-
-/**
- * The linear index associated with a given reference in a BAM index.
- *
- * @author mhanna
- * @version 0.1
- */
-public class LinearIndex {
-
-    public static final int MAX_LINEAR_INDEX_SIZE = GenomicIndexUtil.MAX_LINEAR_INDEX_SIZE;
-
-    public static final int BAM_LIDX_SHIFT = 14;
-
-    /**
-     * The reference sequence number for this linear index.
-     */
-    private final int mReferenceSequence;
-
-    /**
-     * Dictates the first stored element of the index.
-     */
-    private final int mIndexStart;
-
-    /**
-     * The linear index entries within this bin.
-     */
-    private final long[] mIndexEntries;
-
-    public LinearIndex(final int referenceSequence, final int indexStart, final long[] indexEntries) {
-        this.mReferenceSequence = referenceSequence;
-        this.mIndexStart = indexStart;
-        this.mIndexEntries = indexEntries;
-    }
-
-    public int getReferenceSequence() {
-        return mReferenceSequence;
-    }
-
-    public int size() {
-        return mIndexEntries.length;
-    }
-
-    public long get(final int index) {
-        return mIndexEntries[index-mIndexStart];
-    }
-
-    public static int convertToLinearIndexOffset(final int contigPos) {
-        final int indexPos = (contigPos <= 0) ? 0 : contigPos-1;
-        return indexPos >> BAM_LIDX_SHIFT;
-    }
-
-    /**
-     * Gets the minimum offset of any alignment start appearing in this index, according to the linear index. 
-     * @param startPos Starting position for this query.
-     * @return The minimum offset, in chunk format, of any read appearing in this position.
-     */
-    public long getMinimumOffset(final int startPos) {
-        final int start = (startPos <= 0) ? 0 : startPos-1;
-        final int regionLinearBin = start >> BAM_LIDX_SHIFT;
-        // System.out.println("# regionLinearBin: " + regionLinearBin);
-        long minimumOffset = 0;
-        if (regionLinearBin-mIndexStart < mIndexEntries.length)
-            minimumOffset = mIndexEntries[regionLinearBin-mIndexStart];
-        return minimumOffset;
-    }
-
-    /**
-     * Direct access to the array.  Be careful!
-     * @return The elements of the linear index.
-     */
-    public long[] getIndexEntries() {
-        return mIndexEntries;
-    }
-
-    public int getIndexStart() {
-        return mIndexStart;
-    }
-
-    @Override
-    public boolean equals(final Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-
-        final LinearIndex that = (LinearIndex) o;
-
-        if (mIndexStart != that.mIndexStart) return false;
-        if (mReferenceSequence != that.mReferenceSequence) return false;
-        if (!Arrays.equals(mIndexEntries, that.mIndexEntries)) return false;
-
-        return true;
-    }
-
-    @Override
-    public int hashCode() {
-        int result = mReferenceSequence;
-        result = 31 * result + mIndexStart;
-        result = 31 * result + Arrays.hashCode(mIndexEntries);
-        return result;
-    }
-}
diff --git a/src/java/net/sf/samtools/NotPrimarySkippingIterator.java b/src/java/net/sf/samtools/NotPrimarySkippingIterator.java
deleted file mode 100644
index d47382b..0000000
--- a/src/java/net/sf/samtools/NotPrimarySkippingIterator.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import net.sf.samtools.util.CloseableIterator;
-import net.sf.samtools.util.PeekIterator;
-
-/**
- * Wrapper around SAMRecord iterator that skips over non-primary elements.
- * This iterator conflates a filtering iterator and a peekable iterator.  It would be cleaner to
- * handle those concerns separately.
- */
-public class NotPrimarySkippingIterator {
-    private final PeekIterator<SAMRecord> it;
-
-    public NotPrimarySkippingIterator(final CloseableIterator<SAMRecord> underlyingIt) {
-        it = new PeekIterator<SAMRecord>(underlyingIt);
-        skipAnyNotprimary();
-    }
-
-    public boolean hasCurrent() {
-        return it.hasNext();
-    }
-
-    public SAMRecord getCurrent() {
-        assert(hasCurrent());
-        return it.peek();
-    }
-
-    public boolean advance() {
-        it.next();
-        skipAnyNotprimary();
-        return hasCurrent();
-    }
-
-    private void skipAnyNotprimary() {
-        while (it.hasNext() && it.peek().getNotPrimaryAlignmentFlag()) {
-            it.next();
-        }
-    }
-}
diff --git a/src/java/net/sf/samtools/SAMBinaryTagAndUnsignedArrayValue.java b/src/java/net/sf/samtools/SAMBinaryTagAndUnsignedArrayValue.java
deleted file mode 100644
index 5dd757b..0000000
--- a/src/java/net/sf/samtools/SAMBinaryTagAndUnsignedArrayValue.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-/**
- * Simple extension to SAMBinaryTagAndValue in order to distinguish unsigned array values, because
- * signedness cannot be determined by introspection of value.
- *
- * @author alecw at broadinstitute.org
- */
-public class SAMBinaryTagAndUnsignedArrayValue extends SAMBinaryTagAndValue {
-    public SAMBinaryTagAndUnsignedArrayValue(final short tag, final Object value) {
-        super(tag, value);
-    }
-
-    /** Creates and returns a deep copy of the list of tag/values. */
-    public SAMBinaryTagAndValue copy() {
-        final SAMBinaryTagAndValue retval = new SAMBinaryTagAndUnsignedArrayValue(this.tag, this.value);
-        if (next != null) retval.next = next.copy();
-        return retval;
-    }
-
-    @Override
-    public boolean isUnsignedArray() {
-        return true;
-    }
-}
diff --git a/src/java/net/sf/samtools/SAMBinaryTagAndValue.java b/src/java/net/sf/samtools/SAMBinaryTagAndValue.java
deleted file mode 100644
index ffb358f..0000000
--- a/src/java/net/sf/samtools/SAMBinaryTagAndValue.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-/**
- * Holds a SAMRecord attribute and the tagname (in binary form) for that attribute.
- * SAMRecord stores tag name and value in this form, because much String creation is avoided this way.
- * See SAMTagUtil to convert the tag to String form.
- *
- * @author alecw at broadinstitute.org
- */
-public class SAMBinaryTagAndValue {
-    public final short tag;
-    public final Object value;
-    protected SAMBinaryTagAndValue next = null;
-
-    public SAMBinaryTagAndValue(final short tag, final Object value) {
-        this.tag = tag;
-        this.value = value;
-    }
-
-    @Override public boolean equals(final Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-        return typeSafeEquals((SAMBinaryTagAndValue) o);
-    }
-
-    /** Type safe equals method that recurses down the list looking for equality. */
-    private boolean typeSafeEquals(final SAMBinaryTagAndValue that) {
-        if (this.tag != that.tag) return false;
-        if ((this.value == null) ? that.value == null : this.value.equals(that.value)) {
-            if (this.next == null) return that.next == null;
-            else return this.next.equals(that.next);
-        }
-        else {
-            return false;
-        }
-    }
-
-    @Override
-    public int hashCode() {
-        int result = (int) tag;
-        result = 31 * result + value.hashCode();
-        return result;
-    }
-
-    /** Creates and returns a deep copy of the list of tag/values. */
-    public SAMBinaryTagAndValue copy() {
-        final SAMBinaryTagAndValue retval = new SAMBinaryTagAndValue(this.tag, this.value);
-        if (next != null) retval.next = next.copy();
-        return retval;
-    }
-
-    // The methods below are for implementing a light-weight, single-direction linked list
-
-    public SAMBinaryTagAndValue getNext() { return this.next; }
-
-    /** Inserts at item into the ordered list of attributes and returns the head of the list/sub-list */
-    public SAMBinaryTagAndValue insert(final SAMBinaryTagAndValue attr) {
-        if (attr == null) return this;
-        if (attr.next != null) throw new IllegalStateException("Can only insert single tag/value combinations.");
-
-        if (attr.tag < this.tag) {
-            // attr joins the list ahead of this element
-            attr.next = this;
-            return attr;
-        }
-        else if (this.tag == attr.tag) {
-            // attr replaces this in the list
-            attr.next = this.next;
-            return attr;
-        }
-        else if (this.next == null) {
-            // attr gets stuck on the end
-            this.next = attr;
-            return this;
-        }
-        else {
-            // attr gets inserted somewhere in the tail
-            this.next = this.next.insert(attr);
-            return this;
-        }
-    }
-
-    /** Removes a tag from the list and returns the new head of the list/sub-list. */
-    public SAMBinaryTagAndValue remove(final short tag) {
-        if (this.tag == tag) return this.next;
-        else {
-            if (this.next != null) this.next = this.next.remove(tag);
-            return this;
-        }
-    }
-
-    /** Returns the SAMBinaryTagAndValue that contains the required tag, or null if not contained. */
-    public SAMBinaryTagAndValue find(final short tag) {
-        if (this.tag == tag) return this;
-        else if (this.tag > tag || this.next == null) return null;
-        else return this.next.find(tag); 
-    }
-
-    public boolean isUnsignedArray() {
-        return false;
-    }
-}
diff --git a/src/java/net/sf/samtools/SAMException.java b/src/java/net/sf/samtools/SAMException.java
deleted file mode 100644
index 8ec29c5..0000000
--- a/src/java/net/sf/samtools/SAMException.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-/**
- * @author alecw at broadinstitute.org
- */
-public class SAMException extends RuntimeException {
-    public SAMException() {
-    }
-
-    public SAMException(final String s) {
-        super(s);
-    }
-
-    public SAMException(final String s, final Throwable throwable) {
-        super(s, throwable);
-    }
-
-    public SAMException(final Throwable throwable) {
-        super(throwable);
-    }
-}
diff --git a/src/java/net/sf/samtools/SAMFileHeader.java b/src/java/net/sf/samtools/SAMFileHeader.java
deleted file mode 100644
index a0abe96..0000000
--- a/src/java/net/sf/samtools/SAMFileHeader.java
+++ /dev/null
@@ -1,348 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-
-import net.sf.samtools.util.StringLineReader;
-
-import java.lang.reflect.Constructor;
-import java.util.*;
-import java.io.StringWriter;
-
-/**
- * Header information from a SAM or BAM file.
- */
-public class SAMFileHeader extends AbstractSAMHeaderRecord
-{
-    public static final String VERSION_TAG = "VN";
-    public static final String SORT_ORDER_TAG = "SO";
-    public static final String GROUP_ORDER_TAG = "GO";
-    public static final String CURRENT_VERSION = "1.4";
-    public static final Set<String> ACCEPTABLE_VERSIONS =
-            new HashSet<String>(Arrays.asList("1.0", "1.3", "1.4"));
-
-    /**
-     * These tags are of known type, so don't need a type field in the text representation.
-     */
-    public static final Set<String> STANDARD_TAGS =
-            new HashSet<String>(Arrays.asList(VERSION_TAG, SORT_ORDER_TAG, GROUP_ORDER_TAG));
-
-    Set<String> getStandardTags() {
-        return STANDARD_TAGS;
-    }
-
-    /**
-     * Ways in which a SAM or BAM may be sorted.
-     */
-    public enum SortOrder {
-
-        unsorted(null),
-        queryname(SAMRecordQueryNameComparator.class),
-        coordinate(SAMRecordCoordinateComparator.class);
-
-        private final Class<? extends SAMRecordComparator> comparator;
-
-        SortOrder(final Class<? extends SAMRecordComparator> comparatorClass) {
-            this.comparator = comparatorClass;
-        }
-
-        /**
-         * @return Comparator class to sort in the specified order, or null if unsorted.
-         */
-        public Class<? extends SAMRecordComparator> getComparator() {
-            return comparator;
-        }
-
-        /**
-         * @return Comparator to sort in the specified order, or null if unsorted.
-         */
-        public SAMRecordComparator getComparatorInstance() {
-            if (comparator != null) {
-                try {
-                    final Constructor<? extends SAMRecordComparator> ctor = comparator.getConstructor();
-                    return ctor.newInstance();
-                }
-                catch (Exception e) {
-                    throw new IllegalStateException("Could not instantiate a comparator for sort order: " +
-                            this.name(), e);
-                }
-            }
-            return null;
-        }
-    }
-
-    public enum GroupOrder {
-        none, query, reference
-    }
-
-    private List<SAMReadGroupRecord> mReadGroups =
-        new ArrayList<SAMReadGroupRecord>();
-    private List<SAMProgramRecord> mProgramRecords = new ArrayList<SAMProgramRecord>();
-    private final Map<String, SAMReadGroupRecord> mReadGroupMap =
-        new HashMap<String, SAMReadGroupRecord>();
-    private final Map<String, SAMProgramRecord> mProgramRecordMap = new HashMap<String, SAMProgramRecord>();
-    private SAMSequenceDictionary mSequenceDictionary = new SAMSequenceDictionary();
-    final private List<String> mComments = new ArrayList<String>();
-    private String textHeader;
-    private final List<SAMValidationError> mValidationErrors = new ArrayList<SAMValidationError>();
-
-    public SAMFileHeader() {
-        setAttribute(VERSION_TAG, CURRENT_VERSION);
-    }
-
-    public String getVersion() {
-        return (String) getAttribute("VN");
-    }
-
-    public String getCreator() {
-        return (String) getAttribute("CR");
-    }
-
-    public SAMSequenceDictionary getSequenceDictionary() {
-        return mSequenceDictionary;
-    }
-
-    public List<SAMReadGroupRecord> getReadGroups() {
-        return Collections.unmodifiableList(mReadGroups);
-    }
-
-    /**
-     * Look up sequence record by name.
-     */
-    public SAMSequenceRecord getSequence(final String name) {
-        return mSequenceDictionary.getSequence(name);
-    }
-
-    /**
-     * Look up read group record by name.
-     */
-    public SAMReadGroupRecord getReadGroup(final String name) {
-        return mReadGroupMap.get(name);
-    }
-
-    /**
-     * Replace entire sequence dictionary.  The given sequence dictionary is stored, not copied.
-     */
-    public void setSequenceDictionary(final SAMSequenceDictionary sequenceDictionary) {
-        mSequenceDictionary = sequenceDictionary;
-    }
-
-    public void addSequence(final SAMSequenceRecord sequenceRecord) {
-        mSequenceDictionary.addSequence(sequenceRecord);
-    }
-
-    /**
-     * Look up a sequence record by index.  First sequence in the header is the 0th.
-     * @return The corresponding sequence record, or null if the index is out of range.
-     */
-    public SAMSequenceRecord getSequence(final int sequenceIndex) {
-        return mSequenceDictionary.getSequence(sequenceIndex);
-    }
-
-    /**
-     *
-     * @return Sequence index for the given sequence name, or -1 if the name is not found.
-     */
-    public int getSequenceIndex(final String sequenceName) {
-        return mSequenceDictionary.getSequenceIndex(sequenceName);
-    }
-
-    /**
-     * Replace entire list of read groups.  The given list is stored, not copied.
-     */
-    public void setReadGroups(final List<SAMReadGroupRecord> readGroups) {
-        mReadGroups = readGroups;
-        mReadGroupMap.clear();
-        for (final SAMReadGroupRecord readGroupRecord : readGroups) {
-            mReadGroupMap.put(readGroupRecord.getReadGroupId(), readGroupRecord);
-        }
-    }
-
-    public void addReadGroup(final SAMReadGroupRecord readGroup) {
-        if (mReadGroupMap.containsKey(readGroup.getReadGroupId())) {
-            throw new IllegalArgumentException("Read group with group id " +
-                readGroup.getReadGroupId() + " already exists in SAMFileHeader!");
-        }
-        mReadGroups.add(readGroup);
-        mReadGroupMap.put(readGroup.getReadGroupId(), readGroup);
-    }
-
-    public List<SAMProgramRecord> getProgramRecords() {
-        return Collections.unmodifiableList(mProgramRecords);
-    }
-
-    public void addProgramRecord(final SAMProgramRecord programRecord) {
-        if (mProgramRecordMap.containsKey(programRecord.getProgramGroupId())) {
-            throw new IllegalArgumentException("Program record with group id " +
-                programRecord.getProgramGroupId() + " already exists in SAMFileHeader!");
-        }
-        this.mProgramRecords.add(programRecord);
-        this.mProgramRecordMap.put(programRecord.getProgramGroupId(), programRecord);
-    }
-
-    public SAMProgramRecord getProgramRecord(final String pgId) {
-        return this.mProgramRecordMap.get(pgId);
-    }
-
-    /**
-     * Replace entire list of program records
-     * @param programRecords This list is used directly, not copied.
-     */
-    public void setProgramRecords(final List<SAMProgramRecord> programRecords) {
-        this.mProgramRecords = programRecords;
-        this.mProgramRecordMap.clear();
-        for (final SAMProgramRecord programRecord : this.mProgramRecords) {
-            this.mProgramRecordMap.put(programRecord.getProgramGroupId(), programRecord);
-        }
-    }
-
-    /**
-     * @return a new SAMProgramRecord with an ID guaranteed to not exist in this SAMFileHeader
-     */
-    public SAMProgramRecord createProgramRecord() {
-        for (int i = 0; i < Integer.MAX_VALUE; ++i) {
-            final String s = Integer.toString(i);
-            if (!this.mProgramRecordMap.containsKey(s)) {
-                final SAMProgramRecord ret = new SAMProgramRecord(s);
-                addProgramRecord(ret);
-                return ret;
-            }
-        }
-        throw new IllegalStateException("Surprising number of SAMProgramRecords");
-    }
-
-    public SortOrder getSortOrder() {
-        final String so = getAttribute("SO");
-        if (so == null || so.equals("unknown")) {
-            return SortOrder.unsorted;
-        }
-        return SortOrder.valueOf((String) so);
-    }
-
-    public void setSortOrder(final SortOrder so) {
-        setAttribute("SO", so.name());
-    }
-
-    public GroupOrder getGroupOrder() {
-        if (getAttribute("GO") == null) {
-            return GroupOrder.none;
-        }
-        return GroupOrder.valueOf((String)getAttribute("GO"));
-    }
-
-    public void setGroupOrder(final GroupOrder go) {
-        setAttribute("GO", go.name());
-    }
-
-    /**
-     * If this SAMHeader was read from a file, this property contains the header
-     * as it appeared in the file, otherwise it is null.  Note that this is not a toString()
-     * operation.  Changes to the SAMFileHeader object after reading from the file are not reflected in this value.
-     *
-     * In addition this value is only set if one of the following is true:
-     *   - The size of the header is < 1,048,576 characters (1MB ascii, 2MB unicode)
-     *   - There are either validation or parsing errors associated with the header
-     *
-     * Invalid header lines may appear in value but are not stored in the SAMFileHeader object.
-     */
-    public String getTextHeader() {
-        return textHeader;
-    }
-
-    public void setTextHeader(final String textHeader) {
-        this.textHeader = textHeader;
-    }
-
-    public List<String> getComments() {
-        return Collections.unmodifiableList(mComments);
-    }
-
-    public void addComment(String comment) {
-        if (!comment.startsWith(SAMTextHeaderCodec.COMMENT_PREFIX)) {
-            comment = SAMTextHeaderCodec.COMMENT_PREFIX + comment;
-        }
-        mComments.add(comment);
-    }
-
-
-    /**
-     * Replace existing comments with the contents of the given collection.
-     */
-    public void setComments(final Collection<String> comments) {
-        mComments.clear();
-        for (final String comment : comments) {
-            addComment(comment);
-        }
-    }
-
-    public List<SAMValidationError> getValidationErrors() {
-        return Collections.unmodifiableList(mValidationErrors);
-    }
-
-    public void addValidationError(final SAMValidationError error) {
-        mValidationErrors.add(error);
-    }
-
-    /**
-     * Replace list of validation errors with the elements of the given list.
-     */
-    public void setValidationErrors(final Collection<SAMValidationError> errors) {
-        mValidationErrors.clear();
-        mValidationErrors.addAll(errors);
-    }
-
-    @Override
-    public boolean equals(final Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-
-        final SAMFileHeader that = (SAMFileHeader) o;
-
-        if (!attributesEqual(that)) return false;
-        if (mProgramRecords != null ? !mProgramRecords.equals(that.mProgramRecords) : that.mProgramRecords != null)
-            return false;
-        if (mReadGroups != null ? !mReadGroups.equals(that.mReadGroups) : that.mReadGroups != null) return false;
-        if (mSequenceDictionary != null ? !mSequenceDictionary.equals(that.mSequenceDictionary) : that.mSequenceDictionary != null)
-            return false;
-
-        return true;
-    }
-
-    @Override
-    public int hashCode() {
-        int result = attributesHashCode();
-        result = 31 * result + (mSequenceDictionary != null ? mSequenceDictionary.hashCode() : 0);
-        result = 31 * result + (mReadGroups != null ? mReadGroups.hashCode() : 0);
-        result = 31 * result + (mProgramRecords != null ? mProgramRecords.hashCode() : 0);
-        return result;
-    }
-
-    public final SAMFileHeader clone() {
-        final SAMTextHeaderCodec codec = new SAMTextHeaderCodec();
-        codec.setValidationStringency(SAMFileReader.ValidationStringency.SILENT);
-        final StringWriter stringWriter = new StringWriter();
-        codec.encode(stringWriter, this);
-        return codec.decode(new StringLineReader(stringWriter.toString()), "SAMFileHeader.clone");
-    }
-}
diff --git a/src/java/net/sf/samtools/SAMFileReader.java b/src/java/net/sf/samtools/SAMFileReader.java
deleted file mode 100644
index 5b6ed4e..0000000
--- a/src/java/net/sf/samtools/SAMFileReader.java
+++ /dev/null
@@ -1,915 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-
-import net.sf.samtools.seekablestream.SeekableBufferedStream;
-import net.sf.samtools.util.*;
-import net.sf.samtools.seekablestream.SeekableHTTPStream;
-import net.sf.samtools.seekablestream.SeekableStream;
-
-import java.io.*;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.zip.GZIPInputStream;
-import java.net.URL;
-
-/**
- * Class for reading and querying SAM/BAM files.  Delegates to appropriate concrete implementation.
- */
-public class SAMFileReader implements Iterable<SAMRecord>, Closeable {
-
-    private static ValidationStringency defaultValidationStringency = ValidationStringency.DEFAULT_STRINGENCY;
-
-    public static ValidationStringency getDefaultValidationStringency() {
-        return defaultValidationStringency;
-    }
-
-    /**
-     * Set validation stringency for all subsequently-created SAMFileReaders.  This is the only way to
-     * change the validation stringency for SAM header.
-     * NOTE: Programs that change this should make sure to have a try/finally clause wrapping the work that
-     * they do, so that the original stringency can be restored after the program's work is done.  This facilitates
-     * calling a program that is usually run stand-alone from another program, without messing up the original
-     * validation stringency.
-     */
-    public static void setDefaultValidationStringency(final ValidationStringency defaultValidationStringency) {
-        SAMFileReader.defaultValidationStringency = defaultValidationStringency;
-    }
-
-	/**
-	 * Returns the SAMSequenceDictionary from the provided FASTA.
-	 */
-	public static SAMSequenceDictionary getSequenceDictionary(final File dictionaryFile) {
-		final SAMFileReader samFileReader = new SAMFileReader(dictionaryFile);
-		final SAMSequenceDictionary dict = samFileReader.getFileHeader().getSequenceDictionary();
-		CloserUtil.close(dictionaryFile);
-		return dict;
-	}
-
-    private boolean mIsBinary = false;
-    private BAMIndex mIndex = null;
-    private SAMRecordFactory samRecordFactory = new DefaultSAMRecordFactory();
-    private ReaderImplementation mReader = null;
-
-    private File samFile = null;
-
-    /**
-     * How strict to be when reading a SAM or BAM, beyond bare minimum validation.
-     */
-    public enum ValidationStringency {
-        /**
-         * Do the right thing, throw an exception if something looks wrong.
-         */
-        STRICT,
-        /**
-         * Emit warnings but keep going if possible.
-         */
-        LENIENT,
-        /**
-         * Like LENIENT, only don't emit warning messages.
-         */
-        SILENT;
-
-        public static final ValidationStringency DEFAULT_STRINGENCY = STRICT;
-    }
-
-    /**
-     * Internal interface for SAM/BAM file reader implementations.
-     * Implemented as an abstract class to enforce better access control.
-     */
-    static abstract class ReaderImplementation {
-        abstract void enableFileSource(final SAMFileReader reader, final boolean enabled);
-        abstract void enableIndexCaching(final boolean enabled);
-        abstract void enableIndexMemoryMapping(final boolean enabled);
-        abstract void enableCrcChecking(final boolean enabled);
-        abstract void setSAMRecordFactory(final SAMRecordFactory factory);
-        abstract boolean hasIndex();
-        abstract BAMIndex getIndex();
-        abstract SAMFileHeader getFileHeader();
-        abstract CloseableIterator<SAMRecord>  getIterator();
-        abstract CloseableIterator<SAMRecord>  getIterator(SAMFileSpan fileSpan);
-        abstract SAMFileSpan getFilePointerSpanningReads();
-        abstract CloseableIterator<SAMRecord> query(String sequence, int start, int end, boolean contained);
-        abstract CloseableIterator<SAMRecord> query(QueryInterval[] intervals, boolean contained);
-        abstract CloseableIterator<SAMRecord> queryAlignmentStart(String sequence, int start);
-        abstract public CloseableIterator<SAMRecord> queryUnmapped();
-        abstract void close();
-        // If true, emit warnings about format errors rather than throwing exceptions;
-        abstract void setValidationStringency(final ValidationStringency validationStringency);
-        abstract ValidationStringency getValidationStringency();
-    }
-
-
-    /**
-     * Prepare to read a SAM or BAM file.  Indexed lookup not allowed because reading from InputStream.
-     */
-    public SAMFileReader(final InputStream stream) {
-        this(stream, false);
-    }
-
-    /**
-     * Prepare to read a SAM or BAM file.  If the given file is a BAM, and has a companion BAI index file
-     * that is named according to the convention, it will be found and opened, and indexed query will be allowed.
-     */
-    public SAMFileReader(final File file) {
-        this(file, null, false);
-    }
-
-    /**
-     * Prepare to read a SAM or BAM file.  If the given file is a BAM, and an index is present, indexed query
-     * will be allowed.
-     *
-     * @param file SAM or BAM to read.
-     * @param indexFile Index file that is companion to BAM, or null if no index file, or if index file
-     * should be found automatically.
-     */
-    public SAMFileReader(final File file, final File indexFile) {
-        this(file, indexFile, false);
-    }
-
-    /**
-     * Read a SAM or BAM file.  Indexed lookup not allowed because reading from InputStream.
-     *
-     * @param stream input SAM or BAM.  This is buffered internally so caller need not buffer.
-     * @param eagerDecode if true, decode SAM record entirely when reading it.
-     */
-    public SAMFileReader(final InputStream stream, final boolean eagerDecode) {
-        init(stream, null, null, eagerDecode, defaultValidationStringency);
-    }
-
-    /**
-     * Read a SAM or BAM file, possibly with an index file if present.
-     * If the given file is a BAM, and an index is present, indexed query will be allowed.
-     *
-     * @param file SAM or BAM.
-     * @param eagerDecode if true, decode SAM record entirely when reading it.
-     */
-    public SAMFileReader(final File file, final boolean eagerDecode) {
-        this(file, null, eagerDecode);
-    }
-
-    /**
-     * Read a SAM or BAM file, possibly with an index file. If the given file is a BAM, and an index is present,
-     * indexed query will be allowed.
-     *
-     * @param file SAM or BAM.
-     * @param indexFile Location of index file, or null in order to use the default index file (if present).
-     * @param eagerDecode eagerDecode if true, decode SAM record entirely when reading it.
-     */
-    public SAMFileReader(final File file, final File indexFile, final boolean eagerDecode){
-        init(null, file, indexFile, eagerDecode, defaultValidationStringency);
-    }
-
-    /**
-     * Read a BAM file by http
-     * indexed query will be allowed.
-     *
-     * @param url         BAM.
-     * @param indexFile   Location of index file, or null if indexed access not required.
-     * @param eagerDecode eagerDecode if true, decode SAM record entirely when reading it.
-     */
-    public SAMFileReader(final URL url, final File indexFile, final boolean eagerDecode) {
-        init(new SeekableBufferedStream(new SeekableHTTPStream(url)),
-                indexFile, eagerDecode, defaultValidationStringency);
-    }
-
-    /**
-     * Read a BAM file via caller-supplied mechanism.  Indexed query will be allowed, but
-     * index file must be provided in that case.
-     * @param strm BAM -- If the stream is not buffered, caller should wrap in SeekableBufferedStream for
-     * better performance.
-     * @param indexFile Location of index file, or null indexed access not required.
-     * @param eagerDecode if true, decode SAM record entirely when reading it.
-     */
-    public SAMFileReader(final SeekableStream strm, final File indexFile, final boolean eagerDecode) {
-        init(strm, indexFile, eagerDecode, defaultValidationStringency);
-    }
-
-    /**
-     * @param strm BAM -- If the stream is not buffered, caller should wrap in SeekableBufferedStream for
-     * better performance.
-     */
-    public SAMFileReader(final SeekableStream strm, final SeekableStream indexStream, final boolean eagerDecode) {
-        init(strm, indexStream, eagerDecode, defaultValidationStringency);
-    }
-
-    public void close() {
-        if (mReader != null) {
-            mReader.close();
-        }
-        mReader = null;
-        mIndex = null;
-    }
-
-    /**
-     * If true, writes the source of every read into the source SAMRecords.
-     * @param enabled true to write source information into each SAMRecord. 
-     */
-    public void enableFileSource(final boolean enabled) {
-        mReader.enableFileSource(this,enabled);
-    }
-
-    /**
-     * If true, uses the caching version of the index reader.
-     * @param enabled true to write source information into each SAMRecord.
-     */
-    public void enableIndexCaching(final boolean enabled) {
-        if(mIndex != null)
-            throw new SAMException("Unable to turn on index caching; index file has already been loaded.");
-        mReader.enableIndexCaching(enabled);
-    }
-
-    /**
-     * If false, disable the use of memory mapping for accessing index files (default behavior is to use memory mapping).
-     * This is slower but more scalable when accessing large numbers of BAM files sequentially.
-     * @param enabled True to use memory mapping, false to use regular I/O.
-     */
-    public void enableIndexMemoryMapping(final boolean enabled) {
-        if (mIndex != null) {
-            throw new SAMException("Unable to change index memory mapping; index file has already been loaded.");
-        }
-        mReader.enableIndexMemoryMapping(enabled);
-    }
-
-    /**
-     * Only meaningful for BAM file readers - enables or disables checking of checksums on uncompressed
-     * data during decompression. Enabling this will increase decompression time by 15-30%.
-     */
-    public void enableCrcChecking(final boolean enabled) {
-        this.mReader.enableCrcChecking(enabled);
-    }
-
-    /**
-     * Override the default SAMRecordFactory class used to instantiate instances of SAMRecord and BAMRecord.
-     */
-    public void setSAMRecordFactory(final SAMRecordFactory factory) {
-        this.samRecordFactory = factory;
-        this.mReader.setSAMRecordFactory(factory);
-    }
-
-    /**
-     * @return True if this is a BAM reader.
-     */
-    public boolean isBinary() {
-        return mIsBinary;
-    }
-
-    /**
-     * @return true if ths is a BAM file, and has an index
-     */
-    public boolean hasIndex() {
-        return mReader.hasIndex();
-    }
-
-    /**
-     * Retrieves the index for the given file type.  Ensure that the index is of the specified type.
-     * @return An index of the given type.
-     */
-    public BAMIndex getIndex() {
-        return mReader.getIndex();
-    }
-
-    /**
-     * Returns true if the supported index is browseable, meaning the bins in it can be traversed
-     * and chunk data inspected and retrieved.
-     * @return True if the index supports the BrowseableBAMIndex interface.  False otherwise.
-     */
-    public boolean hasBrowseableIndex() {
-        return hasIndex() && getIndex() instanceof BrowseableBAMIndex;
-    }
-
-    /**
-     * Gets an index tagged with the BrowseableBAMIndex interface.  Throws an exception if no such
-     * index is available.
-     * @return An index with a browseable interface, if possible.
-     * @throws SAMException if no such index is available.
-     */
-    public BrowseableBAMIndex getBrowseableIndex() {
-        final BAMIndex index = getIndex();
-        if(!(index instanceof BrowseableBAMIndex))
-            throw new SAMException("Cannot return index: index created by BAM is not browseable.");
-        return BrowseableBAMIndex.class.cast(index);
-    }
-
-    public SAMFileHeader getFileHeader() {
-        return mReader.getFileHeader();
-    }
-
-    /**
-     * Control validation of SAMRecords as they are read from file.
-     * In order to control validation stringency for SAM Header, call SAMFileReader.setDefaultValidationStringency
-     * before constructing a SAMFileReader.
-     */
-    public void setValidationStringency(final ValidationStringency validationStringency) {
-        mReader.setValidationStringency(validationStringency);
-    }
-
-    /**
-     * Iterate through file in order.  For a SAMFileReader constructed from an InputStream, and for any SAM file,
-     * a 2nd iteration starts where the 1st one left off.  For a BAM constructed from a File, each new iteration
-     * starts at the first record.
-     * <p/>
-     * Only a single open iterator on a SAM or BAM file may be extant at any one time.  If you want to start
-     * a second iteration, the first one must be closed first.
-     */
-    public SAMRecordIterator iterator() {
-        return new AssertableIterator(mReader.getIterator());
-    }
-
-    /**
-     * Iterate through the given chunks in the file.
-     * @param chunks List of chunks for which to retrieve data.
-     * @return An iterator over the given chunks.
-     */
-    public SAMRecordIterator iterator(final SAMFileSpan chunks) {
-        return new AssertableIterator(mReader.getIterator(chunks));
-    }
-
-    /**
-     * Gets a pointer spanning all reads in the BAM file.
-     * @return Unbounded pointer to the first record, in chunk format. 
-     */
-    public SAMFileSpan getFilePointerSpanningReads() {
-        return mReader.getFilePointerSpanningReads();
-    }
-
-    /**
-     * Iterate over records that match the given interval.  Only valid to call this if hasIndex() == true.
-     * <p/>
-     * Only a single open iterator on a given SAMFileReader may be extant at any one time.  If you want to start
-     * a second iteration, the first one must be closed first.  You can use a second SAMFileReader to iterate
-     * in parallel over the same underlying file.
-     * <p/>
-     * Note that indexed lookup is not perfectly efficient in terms of disk I/O.  I.e. some SAMRecords may be read
-     * and then discarded because they do not match the interval of interest.
-     * <p/>
-     * Note that an unmapped read will be returned by this call if it has a coordinate for the purpose of sorting that
-     * is in the query region.
-     *
-     * @param sequence  Reference sequence of interest.
-     * @param start     1-based, inclusive start of interval of interest. Zero implies start of the reference sequence.
-     * @param end       1-based, inclusive end of interval of interest. Zero implies end of the reference sequence.
-     * @param contained If true, each SAMRecord returned is will have its alignment completely contained in the
-     *                  interval of interest.  If false, the alignment of the returned SAMRecords need only overlap the interval of interest.
-     * @return Iterator over the SAMRecords matching the interval.
-     */
-    public SAMRecordIterator query(final String sequence, final int start, final int end, final boolean contained) {
-        return new AssertableIterator(mReader.query(sequence, start, end, contained));
-    }
-
-    /**
-     * Iterate over records that overlap the given interval.  Only valid to call this if hasIndex() == true.
-     * <p/>
-     * Only a single open iterator on a given SAMFileReader may be extant at any one time.  If you want to start
-     * a second iteration, the first one must be closed first.
-     * <p/>
-     * Note that indexed lookup is not perfectly efficient in terms of disk I/O.  I.e. some SAMRecords may be read
-     * and then discarded because they do not match the interval of interest.
-     * <p/>
-     * Note that an unmapped read will be returned by this call if it has a coordinate for the purpose of sorting that
-     * is in the query region.
-     *
-     * @param sequence Reference sequence of interest.
-     * @param start    1-based, inclusive start of interval of interest. Zero implies start of the reference sequence.
-     * @param end      1-based, inclusive end of interval of interest. Zero implies end of the reference sequence.
-     * @return Iterator over the SAMRecords overlapping the interval.
-     */
-    public SAMRecordIterator queryOverlapping(final String sequence, final int start, final int end) {
-        return query(sequence, start, end, false);
-    }
-
-    /**
-     * Iterate over records that are contained in the given interval.  Only valid to call this if hasIndex() == true.
-     * <p/>
-     * Only a single open iterator on a given SAMFileReader may be extant at any one time.  If you want to start
-     * a second iteration, the first one must be closed first.
-     * <p/>
-     * Note that indexed lookup is not perfectly efficient in terms of disk I/O.  I.e. some SAMRecords may be read
-     * and then discarded because they do not match the interval of interest.
-     * <p/>
-     * Note that an unmapped read will be returned by this call if it has a coordinate for the purpose of sorting that
-     * is in the query region.
-     *
-     * @param sequence Reference sequence of interest.
-     * @param start    1-based, inclusive start of interval of interest. Zero implies start of the reference sequence.
-     * @param end      1-based, inclusive end of interval of interest. Zero implies end of the reference sequence.
-     * @return Iterator over the SAMRecords contained in the interval.
-     */
-    public SAMRecordIterator queryContained(final String sequence, final int start, final int end) {
-        return query(sequence, start, end, true);
-    }
-
-    /**
-     * Iterate over records that match one of the given intervals.  This may be more efficient than querying
-     * each interval separately, because multiple reads of the same SAMRecords is avoided.
-     * <p/>
-     * Only valid to call this if hasIndex() == true.
-     * <p/>
-     * Only a single open iterator on a given SAMFileReader may be extant at any one time.  If you want to start
-     * a second iteration, the first one must be closed first.  You can use a second SAMFileReader to iterate
-     * in parallel over the same underlying file.
-     * <p/>
-     * Note that indexed lookup is not perfectly efficient in terms of disk I/O.  I.e. some SAMRecords may be read
-     * and then discarded because they do not match an interval of interest.
-     * <p/>
-     * Note that an unmapped read will be returned by this call if it has a coordinate for the purpose of sorting that
-     * is in the query region.
-     *
-     * @param intervals  Intervals to be queried.  The intervals must be optimized, i.e. in order, with overlapping
-     *                   and abutting intervals merged.  This can be done with
-     *                   net.sf.samtools.SAMFileReader.QueryInterval#optimizeIntervals(net.sf.samtools.SAMFileReader.QueryInterval[])
-     * @param contained If true, each SAMRecord returned is will have its alignment completely contained in one of the
-     *                  intervals of interest.  If false, the alignment of the returned SAMRecords need only overlap one of
-     *                  the intervals of interest.
-     * @return Iterator over the SAMRecords matching the interval.
-     */
-    public SAMRecordIterator query(final QueryInterval[] intervals, final boolean contained) {
-        return new AssertableIterator(mReader.query(intervals, contained));
-    }
-
-    /**
-     * Iterate over records that overlap any of the given intervals.  This may be more efficient than querying
-     * each interval separately, because multiple reads of the same SAMRecords is avoided.
-     * <p/>
-     * Only valid to call this if hasIndex() == true.
-     * <p/>
-     * Only a single open iterator on a given SAMFileReader may be extant at any one time.  If you want to start
-     * a second iteration, the first one must be closed first.
-     * <p/>
-     * Note that indexed lookup is not perfectly efficient in terms of disk I/O.  I.e. some SAMRecords may be read
-     * and then discarded because they do not match the interval of interest.
-     * <p/>
-     * Note that an unmapped read will be returned by this call if it has a coordinate for the purpose of sorting that
-     * is in the query region.
-     *
-     * @param intervals  Intervals to be queried.  The intervals must be optimized, i.e. in order, with overlapping
-     *                   and abutting intervals merged.  This can be done with
-     *                   net.sf.samtools.SAMFileReader.QueryInterval#optimizeIntervals(net.sf.samtools.SAMFileReader.QueryInterval[])
-     * @return Iterator over the SAMRecords overlapping any of the intervals.
-     */
-    public SAMRecordIterator queryOverlapping(final QueryInterval[] intervals) {
-        return query(intervals, false);
-    }
-
-    /**
-     * Iterate over records that are contained in the given interval.  This may be more efficient than querying
-     * each interval separately, because multiple reads of the same SAMRecords is avoided.
-     * <p/>
-     * Only valid to call this if hasIndex() == true.
-     * <p/>
-     * Only a single open iterator on a given SAMFileReader may be extant at any one time.  If you want to start
-     * a second iteration, the first one must be closed first.
-     * <p/>
-     * Note that indexed lookup is not perfectly efficient in terms of disk I/O.  I.e. some SAMRecords may be read
-     * and then discarded because they do not match the interval of interest.
-     * <p/>
-     * Note that an unmapped read will be returned by this call if it has a coordinate for the purpose of sorting that
-     * is in the query region.
-     *
-     * @param intervals  Intervals to be queried.  The intervals must be optimized, i.e. in order, with overlapping
-     *                   and abutting intervals merged.  This can be done with
-     *                   net.sf.samtools.SAMFileReader.QueryInterval#optimizeIntervals(net.sf.samtools.SAMFileReader.QueryInterval[])
-     * @return Iterator over the SAMRecords contained in any of the intervals.
-     */
-    public SAMRecordIterator queryContained(final QueryInterval[] intervals) {
-        return query(intervals, true);
-    }
-
-
-    public SAMRecordIterator queryUnmapped() {
-        return new AssertableIterator(mReader.queryUnmapped());
-    }
-
-    /**
-     * Iterate over records that map to the given sequence and start at the given position.  Only valid to call this if hasIndex() == true.
-     * <p/>
-     * Only a single open iterator on a given SAMFileReader may be extant at any one time.  If you want to start
-     * a second iteration, the first one must be closed first.
-     * <p/>
-     * Note that indexed lookup is not perfectly efficient in terms of disk I/O.  I.e. some SAMRecords may be read
-     * and then discarded because they do not match the interval of interest.
-     * <p/>
-     * Note that an unmapped read will be returned by this call if it has a coordinate for the purpose of sorting that
-     * matches the arguments.
-     *
-     * @param sequence Reference sequence of interest.
-     * @param start    Alignment start of interest.
-     * @return Iterator over the SAMRecords with the given alignment start.
-     */
-    public SAMRecordIterator queryAlignmentStart(final String sequence, final int start) {
-        return new AssertableIterator(mReader.queryAlignmentStart(sequence, start));
-    }
-
-    /**
-     * Fetch the mate for the given read.  Only valid to call this if hasIndex() == true.
-     * This will work whether the mate has a coordinate or not, so long as the given read has correct
-     * mate information.  This method iterates over the SAM file, so there may not be an unclosed
-     * iterator on the SAM file when this method is called.
-     *
-     * Note that it is not possible to call queryMate when iterating over the SAMFileReader, because queryMate
-     * requires its own iteration, and there cannot be two simultaneous iterations on the same SAMFileReader.  The
-     * work-around is to open a second SAMFileReader on the same input file, and call queryMate on the second
-     * reader.
-     *
-     * @param rec Record for which mate is sought.  Must be a paired read.
-     * @return rec's mate, or null if it cannot be found.
-     */
-    public SAMRecord queryMate(final SAMRecord rec) {
-        if (!rec.getReadPairedFlag()) {
-            throw new IllegalArgumentException("queryMate called for unpaired read.");
-        }
-        if (rec.getFirstOfPairFlag() == rec.getSecondOfPairFlag()) {
-            throw new IllegalArgumentException("SAMRecord must be either first and second of pair, but not both.");
-        }
-        final boolean firstOfPair = rec.getFirstOfPairFlag();
-        final CloseableIterator<SAMRecord> it;
-        if (rec.getMateReferenceIndex() == SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX) {
-            it = queryUnmapped();
-        } else {
-            it = queryAlignmentStart(rec.getMateReferenceName(), rec.getMateAlignmentStart());
-        }
-        try {
-            SAMRecord mateRec = null;
-            while (it.hasNext()) {
-                final SAMRecord next = it.next();
-                if (!next.getReadPairedFlag()) {
-                    if (rec.getReadName().equals(next.getReadName())) {
-                        throw new SAMFormatException("Paired and unpaired reads with same name: " + rec.getReadName());
-                    }
-                    continue;
-                }
-                if (firstOfPair) {
-                    if (next.getFirstOfPairFlag()) continue;
-                } else {
-                    if (next.getSecondOfPairFlag()) continue;
-                }
-                if (rec.getReadName().equals(next.getReadName())) {
-                    if (mateRec != null) {
-                        throw new SAMFormatException("Multiple SAMRecord with read name " + rec.getReadName() +
-                                " for " + (firstOfPair ? "second" : "first") + " end.");
-                    }
-                    mateRec = next;
-                }
-            }
-            return mateRec;
-        } finally {
-            it.close();
-        }
-    }
-
-
-    private void init(final SeekableStream strm, final File indexFile, final boolean eagerDecode,
-                      final ValidationStringency validationStringency) {
-
-        try {
-            if (streamLooksLikeBam(strm)) {
-                mIsBinary = true;
-                mReader = new BAMFileReader(strm, indexFile, eagerDecode, validationStringency, this.samRecordFactory);
-            } else {
-                throw new SAMFormatException("Unrecognized file format: " + strm);
-            }
-            setValidationStringency(validationStringency);
-        }
-        catch (final IOException e) {
-            throw new RuntimeIOException(e);
-        }
-    }
-
-    private void init(final SeekableStream strm, final SeekableStream indexStream, final boolean eagerDecode,
-                      final ValidationStringency validationStringency) {
-
-        try {
-            if (streamLooksLikeBam(strm)) {
-                mIsBinary = true;
-                mReader = new BAMFileReader(strm, indexStream, eagerDecode, validationStringency, this.samRecordFactory);
-            } else {
-                throw new SAMFormatException("Unrecognized file format: " + strm);
-            }
-            setValidationStringency(validationStringency);
-        }
-        catch (final IOException e) {
-            throw new RuntimeIOException(e);
-        }
-    }
-
-    // Its too expensive to examine the remote file to determine type.
-    // Rely on file extension.
-    private boolean streamLooksLikeBam(final SeekableStream strm) {
-        String source = strm.getSource();
-        if(source == null) return true;
-        source = source.toLowerCase();
-        //Source will typically be a file path or URL
-        //If it's a URL we require one of the query parameters to be bam file
-        return source.endsWith(".bam") || source.contains(".bam?")|| source.contains(".bam&") || source.contains(".bam%26");
-    }
-
-    private void init(final InputStream stream, final File file, final File indexFile, final boolean eagerDecode, final ValidationStringency validationStringency) {
-        if (stream != null && file != null) throw new IllegalArgumentException("stream and file are mutually exclusive");
-        this.samFile = file;
-
-        try {
-            final BufferedInputStream bufferedStream;
-            // Buffering is required because mark() and reset() are called on the input stream.
-            final int bufferSize = Math.max(Defaults.BUFFER_SIZE, BlockCompressedStreamConstants.MAX_COMPRESSED_BLOCK_SIZE);
-            if (file != null) bufferedStream = new BufferedInputStream(new FileInputStream(file), bufferSize);
-            else bufferedStream = IOUtil.toBufferedStream(stream);
-            if (isBAMFile(bufferedStream)) {
-                mIsBinary = true;
-                if (file == null || !file.isFile()) {
-                    // Handle case in which file is a named pipe, e.g. /dev/stdin or created by mkfifo
-                    mReader = new BAMFileReader(bufferedStream, indexFile, eagerDecode, validationStringency, this.samRecordFactory);
-                } else {
-                    bufferedStream.close();
-                    mReader = new BAMFileReader(file, indexFile, eagerDecode, validationStringency, this.samRecordFactory);
-                }
-            } else if (BlockCompressedInputStream.isValidFile(bufferedStream)) {
-                mIsBinary = false;
-                mReader = new SAMTextReader(new BlockCompressedInputStream(bufferedStream), validationStringency, this.samRecordFactory);
-            } else if (isGzippedSAMFile(bufferedStream)) {
-                mIsBinary = false;
-                mReader = new SAMTextReader(new GZIPInputStream(bufferedStream), validationStringency, this.samRecordFactory);
-            } else if (isSAMFile(bufferedStream)) {
-                if (indexFile != null) {
-                    bufferedStream.close();
-                    throw new RuntimeException("Cannot use index file with textual SAM file");
-                }
-                mIsBinary = false;
-                mReader = new SAMTextReader(bufferedStream, file, validationStringency, this.samRecordFactory);
-            } else {
-                bufferedStream.close();
-                throw new SAMFormatException("Unrecognized file format");
-            }
-
-            setValidationStringency(validationStringency);
-            mReader.setSAMRecordFactory(this.samRecordFactory);
-        }
-        catch (final IOException e) {
-            throw new RuntimeIOException(e);
-        }
-    }
-
-    /**
-     * @param stream stream.markSupported() must be true
-     * @return true if this looks like a BAM file.
-     */
-    private boolean isBAMFile(final InputStream stream)
-            throws IOException {
-        if (!BlockCompressedInputStream.isValidFile(stream)) {
-          return false;
-        }
-        final int buffSize = BlockCompressedStreamConstants.MAX_COMPRESSED_BLOCK_SIZE;
-        stream.mark(buffSize);
-        final byte[] buffer = new byte[buffSize];
-        readBytes(stream, buffer, 0, buffSize);
-        stream.reset();
-        final byte[] magicBuf = new byte[4];
-        final int magicLength = readBytes(new BlockCompressedInputStream(new ByteArrayInputStream(buffer)), magicBuf, 0, 4);
-        return magicLength == BAMFileConstants.BAM_MAGIC.length && Arrays.equals(BAMFileConstants.BAM_MAGIC, magicBuf);
-    }
-
-    private static int readBytes(final InputStream stream, final byte[] buffer, final int offset, final int length)
-        throws IOException {
-        int bytesRead = 0;
-        while (bytesRead < length) {
-            final int count = stream.read(buffer, offset + bytesRead, length - bytesRead);
-            if (count <= 0) {
-                break;
-            }
-            bytesRead += count;
-        }
-        return bytesRead;
-    }
-
-    /**
-     * Attempts to check whether the file is a gzipped sam file.  Returns true if it
-     * is and false otherwise.
-     */
-    private boolean isGzippedSAMFile(final BufferedInputStream stream) {
-        if (!stream.markSupported()) {
-            throw new IllegalArgumentException("Cannot test a stream that doesn't support marking.");
-        }
-        stream.mark(8000);
-
-        try {
-            final GZIPInputStream gunzip = new GZIPInputStream(stream);
-            final int ch = gunzip.read();
-            return true;
-        }
-        catch (final IOException ioe) {
-            return false;
-        }
-        finally {
-            try {
-                stream.reset();
-            }
-            catch (final IOException ioe) {
-                throw new IllegalStateException("Could not reset stream.");
-            }
-        }
-    }
-
-    private boolean isSAMFile(final InputStream stream) {
-        // For now, assume every non-binary file is a SAM text file.
-        return true;
-    }
-
-    @Override
-    public String toString() {
-        if (this.samFile == null) {
-            return getClass().getSimpleName() + "{initialized with stream}";
-        } else {
-            return getClass().getSimpleName() + "{" + this.samFile.getAbsolutePath() + "}";
-        }
-    }
-
-    /**
-     * Wrapper class to let calls to Iterator return a SAMRecordIterator
-     */
-    static class AssertableIterator implements SAMRecordIterator {
-
-        private final CloseableIterator<SAMRecord> wrappedIterator;
-        private SAMRecord previous = null;
-        private SAMRecordComparator comparator = null;
-
-        public AssertableIterator(final CloseableIterator<SAMRecord> iterator) {
-            wrappedIterator = iterator;
-        }
-
-        public SAMRecordIterator assertSorted(final SAMFileHeader.SortOrder sortOrder) {
-
-            if (sortOrder == null || sortOrder == SAMFileHeader.SortOrder.unsorted) {
-                comparator = null;
-                return this;
-            }
-
-            comparator = sortOrder.getComparatorInstance();
-            return this;
-        }
-
-        public SAMRecord next() {
-            final SAMRecord result = wrappedIterator.next();
-            if (comparator != null) {
-                if (previous != null) {
-                    if (comparator.fileOrderCompare(previous, result) > 0) {
-                         throw new IllegalStateException("Records " + previous.getReadName() + " (" +
-                             previous.getReferenceName() + ":" + previous.getAlignmentStart() + ") " +
-                             "should come after " + result.getReadName() + " (" +
-                             result.getReferenceName() + ":" + result.getAlignmentStart() +
-                             ") when sorting with " + comparator.getClass().getName());
-                     }
-                }
-                previous = result;
-            }
-            return result;
-        }
-
-        public void close() { wrappedIterator.close(); }
-        public boolean hasNext() { return wrappedIterator.hasNext(); }
-        public void remove() { wrappedIterator.remove(); }
-    }
-
-
-    /**
-     * Interval relative to a reference, for querying a BAM file.
-     */
-    public static class QueryInterval implements Comparable<QueryInterval> {
-
-        /** Index of reference sequence, based on the sequence dictionary of the BAM file being queried. */
-        public final int referenceIndex;
-        /** 1-based, inclusive */
-        public final int start;
-        /** 1-based, inclusive.  If <= 0, implies that the interval goes to the end of the reference sequence */
-        public final int end;
-
-
-        public QueryInterval(final int referenceIndex, final int start, final int end) {
-            if (referenceIndex < 0) {
-                throw new IllegalArgumentException("Invalid reference index " + referenceIndex);
-            }
-            this.referenceIndex = referenceIndex;
-            this.start = start;
-            this.end = end;
-        }
-
-
-        public int compareTo(final QueryInterval other) {
-            int comp = this.referenceIndex - other.referenceIndex;
-            if (comp != 0) return comp;
-            comp = this.start - other.start;
-            if (comp != 0) return comp;
-            else if (this.end == other.end) return 0;
-            else if (this.end == 0) return 1;
-            else if (other.end == 0) return -1;
-            else return this.end - other.end;
-        }
-
-        /**
-         * @return true if both are on same reference, and other starts exactly where this ends.
-         */
-        public boolean abuts(final QueryInterval other) {
-            return this.referenceIndex == other.referenceIndex && this.end == other.start;
-        }
-
-        /**
-         * @return true if both are on same reference, and the overlap.
-         */
-        public boolean overlaps(final QueryInterval other) {
-            if (this.referenceIndex != other.referenceIndex) {
-                return false;
-            }
-            final int thisEnd = (this.end == 0? Integer.MAX_VALUE: this.end);
-            final int otherEnd = (other.end == 0? Integer.MAX_VALUE: other.end);
-            return CoordMath.overlaps(this.start, thisEnd, other.start, otherEnd);
-        }
-
-        @Override
-        public String toString() {
-            return String.format("%d:%d-%d", referenceIndex, start, end);
-        }
-
-        private static final QueryInterval[] EMPTY_QUERY_INTERVAL_ARRAY = new QueryInterval[0];
-
-        /**
-         *
-         * @param inputIntervals WARNING: This list is modified (sorted) by this method.
-         * @return Ordered list of intervals in which abutting and overlapping intervals are merged.
-         */
-        public static QueryInterval[] optimizeIntervals(final QueryInterval[] inputIntervals) {
-            if (inputIntervals.length == 0) return EMPTY_QUERY_INTERVAL_ARRAY;
-            Arrays.sort(inputIntervals);
-
-            final List<QueryInterval> unique = new ArrayList<QueryInterval>();
-            QueryInterval previous = inputIntervals[0];
-
-
-            for(int i = 1; i < inputIntervals.length; ++i) {
-                final QueryInterval next = inputIntervals[i];
-                if (previous.abuts(next) || previous.overlaps(next)) {
-                    final int newEnd = ((previous.end == 0 || next.end == 0)? 0: Math.max(previous.end, next.end));
-                    previous = new QueryInterval(previous.referenceIndex, previous.start, newEnd);
-                }
-                else {
-                    unique.add(previous);
-                    previous = next;
-                }
-            }
-
-            if (previous != null) unique.add(previous);
-
-            return unique.toArray(EMPTY_QUERY_INTERVAL_ARRAY);
-        }
-    }
-
-    /**
-     * Convenience method to create a QueryInterval
-     * @param sequence sequence of interest, must exist in sequence dictionary
-     * @param start 1-based start position, must be >= 1
-     * @param end 1-based end position.
-     * @throws java.lang.IllegalArgumentException if sequence not found in sequence dictionary, or start position < 1
-     */
-    public QueryInterval makeQueryInterval(final String sequence, int start, int end) {
-        int referenceIndex = getFileHeader().getSequenceIndex(sequence);
-        if (referenceIndex < 0) {
-            throw new IllegalArgumentException(String.format("Sequence '%s' not found in sequence dictionary", sequence));
-        }
-        if (start < 1) {
-            throw new IllegalArgumentException("Start position must be >= 1");
-        }
-        return new QueryInterval(referenceIndex, start, end);
-    }
-
-    /**
-     * Convenience method to create a QueryInterval that goes from start to end of given sequence.
-     * @param sequence sequence of interest, must exist in sequence dictionary
-     * @param start 1-based start position, must be >= 1
-     * @throws java.lang.IllegalArgumentException if sequence not found in sequence dictionary, or start position < 1
-     */
-    public QueryInterval makeQueryInterval(final String sequence, int start) {
-        return makeQueryInterval(sequence, start, 0);
-    }
-
-}
diff --git a/src/java/net/sf/samtools/SAMFileSource.java b/src/java/net/sf/samtools/SAMFileSource.java
deleted file mode 100644
index 2272543..0000000
--- a/src/java/net/sf/samtools/SAMFileSource.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-/**
- * Represents the origin of a SAM record.
- *
- * @author mhanna
- * @version 0.1
- */
-public class SAMFileSource {
-    /**
-     * The reader originating this SAM record.
-     */
-    private SAMFileReader mReader;
-
-    /**
-     * The point on disk from which a record originates.
-     */
-    private SAMFileSpan mFilePointer;
-
-    /**
-     * Create a new SAMFileSource with the given reader and file pointer.
-     * @param reader reader.
-     * @param filePointer File pointer.
-     */
-    public SAMFileSource(final SAMFileReader reader, final SAMFileSpan filePointer) {
-        this.mReader = reader;
-        this.mFilePointer = filePointer;
-    }
-
-    /**
-     * Retrieves the reader from which this read was initially retrieved.
-     * @return The reader.
-     */
-    public SAMFileReader getReader() {
-        return mReader;
-    }
-
-    /**
-     * A pointer to the region on disk from which the read originated.
-     * @return A pointer within the file.
-     */
-    public SAMFileSpan getFilePointer() {
-        return mFilePointer;
-    }
-}
diff --git a/src/java/net/sf/samtools/SAMFileSpan.java b/src/java/net/sf/samtools/SAMFileSpan.java
deleted file mode 100644
index 4b0bf69..0000000
--- a/src/java/net/sf/samtools/SAMFileSpan.java
+++ /dev/null
@@ -1,291 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import net.sf.samtools.util.StringUtil;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-/**
- * A interface representing a collection of (possibly) discontinuous segments in the
- * BAM file, possibly representing the results of an index query.
- */
-public interface SAMFileSpan extends Cloneable {
-    /**
-     * Gets a pointer over the data immediately following this span.
-     * @return The a pointer to data immediately following this span.
-     */
-    public SAMFileSpan getContentsFollowing();
-
-    /**
-     * Remove all pointers in this file span before the given file span starts.
-     * @param fileSpan The filespan before which to eliminate.
-     * @return The portion of the chunk list after the given chunk.
-     */
-    public SAMFileSpan removeContentsBefore(final SAMFileSpan fileSpan);
-
-    /**
-     * Does this file span point to any data, or is it completely empty?
-     * @return True if the file span is empty, false otherwise.
-     */
-    public boolean isEmpty();
-}
-
-/**
- * An ordered list of chunks, capable of representing a set of discontiguous
- * regions in the BAM file.  FileSpans are mutable within the package, but perceived
- * as immutable outside the package.
- *
- * Some operations on FileSpans assume that the spans are sorted.  In these cases,
- * sort order will be validated.
- *
- * @author mhanna
- * @version 0.1
- */
-class BAMFileSpan implements SAMFileSpan, Serializable {
-    private static final long serialVersionUID = 1L;    
-
-    /**
-     * The constituent chunks of this list.
-     */
-    private final List<Chunk> chunks;
-
-    /**
-     * Create a new empty list of chunks.
-     */
-    protected BAMFileSpan() {
-        this.chunks = new ArrayList<Chunk>();
-    }
-
-    /**
-     * Convenience constructor to construct a BAM file span from
-     * a single chunk.
-     * @param chunk Chunk to use as the sole region in this span.
-     */
-    protected BAMFileSpan(final Chunk chunk) {
-        this.chunks = new ArrayList<Chunk>();
-        chunks.add(chunk);
-    }
-
-    /**
-     * Create a new chunk list from the given list of chunks.
-     * @param chunks Constituent chunks.
-     */
-    protected BAMFileSpan(final List<Chunk> chunks) {
-        this.chunks = new ArrayList<Chunk>(chunks);
-    }
-
-    /**
-     * Does this chunk list map to any position within the BAM file?
-     * @return True iff the ChunkList points to any data within the BAM.
-     */
-    public boolean isEmpty() {
-        return chunks.isEmpty();    
-    }
-
-    /**
-     * Deep clone the given chunk list.
-     * @return A copy of the chunk list.
-     */
-    public BAMFileSpan clone() {
-        final BAMFileSpan clone = new BAMFileSpan();
-        for(final Chunk chunk: chunks)
-            clone.chunks.add(chunk.clone());
-        return clone;
-    }
-
-    /**
-     * Remove all chunks in this file span before the given file span starts.
-     * If a chunk in the chunk list starts before and ends after the given
-     * chunk, the first portion of the chunk will be deleted.
-     * @param fileSpan The filespan before which to eliminate.
-     * @return The portion of the chunk list after the given chunk.
-     */
-    public SAMFileSpan removeContentsBefore(final SAMFileSpan fileSpan) {
-        if(fileSpan == null)
-            return clone();
-
-        if(!(fileSpan instanceof BAMFileSpan))
-            throw new SAMException("Unable to compare ");
-
-        final BAMFileSpan bamFileSpan = (BAMFileSpan)fileSpan;
-
-        if(bamFileSpan.isEmpty())
-            return clone();
-
-        validateSorted();
-
-        final BAMFileSpan trimmedChunkList = new BAMFileSpan();
-        for(final Chunk chunkToTrim: chunks) {
-            if(chunkToTrim.getChunkEnd() > chunkToTrim.getChunkStart()) {
-                if(chunkToTrim.getChunkStart() >= bamFileSpan.chunks.get(0).getChunkStart()) {
-                    // This chunk from the list is completely beyond the start of the filtering chunk.
-                    trimmedChunkList.add(chunkToTrim.clone());
-                }
-                else {
-                    // This chunk from the list partially overlaps the filtering chunk and must be trimmed.                    
-                    trimmedChunkList.add(new Chunk(bamFileSpan.chunks.get(0).getChunkStart(),chunkToTrim.getChunkEnd()));
-                }
-            }
-        }
-        return trimmedChunkList;
-    }
-
-    /**
-     * Gets a file span over the data immediately following this span.
-     * @return The a pointer to data immediately following this span.
-     */
-    public SAMFileSpan getContentsFollowing() {
-        if(chunks.isEmpty())
-            throw new SAMException("Unable to get the file pointer following this one: no data present.");
-        validateSorted();
-        return new BAMFileSpan(new Chunk(chunks.get(chunks.size()-1).getChunkEnd(),Long.MAX_VALUE));
-    }
-
-    /**
-     * Merge one span into another
-     *
-     * @param span - span with chunks to add to this one
-     */
-    public void add(final BAMFileSpan span) {
-        for (final Chunk c : span.chunks) {
-            chunks.add(c);
-        }
-    }
-
-    /**
-     * Adds a new chunk to this list.  Visible only within the BAm.
-     * @param chunk Chunk to add.
-     */
-    protected void add(final Chunk chunk) {
-        chunks.add(chunk);
-    }
-    
-    /**
-     * Convert the chunk list to an array of offsets, paired in [start,end) format.
-     * @return Array of offsets.
-     */
-    protected long[] toCoordinateArray() {
-        final int count = chunks.size() * 2;
-        if (count == 0) {
-            return null;
-        }
-        int index = 0;
-        final long[] result = new long[count];
-        for (final Chunk chunk : chunks) {
-            result[index++] = chunk.getChunkStart();
-            result[index++] = chunk.getChunkEnd();
-        }
-        return result;
-    }
-
-    /**
-     * Find the first offset in the chunk list
-     * @return The first offset in the span
-     */
-    protected long getFirstOffset() {
-        final long result = 0;
-        if (chunks == null){
-            return result;
-        }
-        for (final Chunk chunk : chunks) {
-            return chunk.getChunkStart();
-        }
-        return result;
-    }
-
-    /**
-     * Gets the constituent chunks stored in this span.
-     * @return An unmodifiable list of chunks.
-     */
-    protected List<Chunk> getChunks() {
-        return Collections.unmodifiableList(chunks);
-    }
-
-    /**
-     * Checks that there is only a single chunk for this span and returns it.
-     * @return The single chunk stored in this span
-     */
-    protected Chunk getSingleChunk() {
-        if (chunks.size() != 1){
-            throw new SAMException("Expecting a single chunk for span. Found " + chunks.size());
-        }
-        return chunks.get(0);
-    }
-
-    /**
-     * The list of chunks is often represented as an array of
-     * longs where every even-numbered index is a start coordinate
-     * and every odd-numbered index is a stop coordinate.  Convert
-     * from that format back to a list of chunks.
-     * @param coordinateArray List of chunks to convert.
-     * @return A list of chunks.
-     */
-    protected static SAMFileSpan toChunkList(final long[] coordinateArray) {
-        if(coordinateArray.length % 2 != 0)
-            throw new SAMException("Data supplied does not appear to be in coordinate array format.");
-
-        final BAMFileSpan chunkList = new BAMFileSpan();
-        for(int i = 0; i < coordinateArray.length; i += 2)
-            chunkList.add(new Chunk(coordinateArray[i],coordinateArray[i+1]));
-
-        chunkList.validateSorted();
-
-        return chunkList;
-    }
-
-    /**
-     * Validates the list of chunks to ensure that they appear in sorted order.
-     */
-    private void validateSorted() {
-        for(int i = 1; i < chunks.size(); i++) {
-            if(chunks.get(i).getChunkStart() < chunks.get(i-1).getChunkEnd())
-                throw new SAMException(String.format("Chunk list is unsorted; chunk %s is before chunk %s",chunks.get(i-1),chunks.get(i)));
-        }
-    }
-
-    /**
-     * Creates a string representation of this chunk list.
-     */
-    @Override
-    public String toString() {
-        return StringUtil.join(";", chunks);
-    }
-
-    /**
-     *
-     * @return A single BAMFileSpan that is an intelligent merge of the input spans, i.e. contiguous, overlapping
-     * and contained chunks are intelligently merged, and the chunks are sorted.
-     */
-    public static BAMFileSpan merge(final BAMFileSpan[] spans) {
-        int numInputChunks = 0;
-        for (final BAMFileSpan span : spans) numInputChunks += span.chunks.size();
-        final ArrayList<Chunk> inputChunks = new ArrayList<Chunk>(numInputChunks);
-        for (final BAMFileSpan span : spans) inputChunks.addAll(span.chunks);
-        return new BAMFileSpan(Chunk.optimizeChunkList(inputChunks, 0));
-    }
-}
diff --git a/src/java/net/sf/samtools/SAMFileTruncatedReader.java b/src/java/net/sf/samtools/SAMFileTruncatedReader.java
deleted file mode 100644
index 7b2c1bd..0000000
--- a/src/java/net/sf/samtools/SAMFileTruncatedReader.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package net.sf.samtools;
-
-import java.io.File;
-import java.util.NoSuchElementException;
-
-/**
- * A truncated form of a SAMFileReader that iterates over a limited number of records.
- *
- * @author mccowan at broadinstitute.org
- */
-public class SAMFileTruncatedReader extends SAMFileReader {
-    private class TruncatedIterator implements SAMRecordIterator {
-        final SAMRecordIterator i;
-        final long max;
-        long currentRecord = 0;
-
-        TruncatedIterator(final SAMRecordIterator i, final long max) {
-            this.i = i;
-            this.max = max;
-        }
-
-        public boolean hasNext() {
-            return i.hasNext() && max != currentRecord;
-        }
-
-        public SAMRecord next() {
-            if (this.hasNext()) {
-                currentRecord += 1;
-                return i.next();
-            } else {
-                throw new NoSuchElementException();
-            }
-        }
-
-        public void remove() {
-            i.remove();
-        }
-
-        public void close() {
-            i.close();
-        }
-
-        public SAMRecordIterator assertSorted(final SAMFileHeader.SortOrder sortOrder) {
-            return i.assertSorted(sortOrder);
-        }
-    }
-
-    private final long maxRecordsToIterate;
-    
-    /**
-     * @param input The SAM file
-     * @param max   The maximum number of records to read from the file via iterator() methods
-     */
-    public SAMFileTruncatedReader(final File input, final long max) {
-        super(input);
-        this.maxRecordsToIterate = max;
-    }
-    
-    @Override
-    public SAMRecordIterator iterator() {
-        return new TruncatedIterator(super.iterator(), maxRecordsToIterate);
-    }
-
-    @Override
-    public SAMRecordIterator iterator(final SAMFileSpan chunks) {
-        return new TruncatedIterator(super.iterator(chunks), maxRecordsToIterate);
-    }
-}
diff --git a/src/java/net/sf/samtools/SAMFileWriter.java b/src/java/net/sf/samtools/SAMFileWriter.java
deleted file mode 100644
index 46790fc..0000000
--- a/src/java/net/sf/samtools/SAMFileWriter.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import net.sf.samtools.util.ProgressLoggerInterface;
-
-/**
- * Interface for SAMText and BAM file writers.  Clients need not care which they write to,
- * once the object is constructed.
- */
-public interface SAMFileWriter {
-
-	void addAlignment(SAMRecord alignment);
-
-    SAMFileHeader getFileHeader();
-
-	/**
-	 * Sets a ProgressLogger on this writer. This is useful when pulling, for instance, from a
-	 * SortingCollection.
-	 */
-	void setProgressLogger(final ProgressLoggerInterface progress);
-
-    /**
-     * Must be called to flush or file will likely be defective. 
-     */
-    void close();
-}
diff --git a/src/java/net/sf/samtools/SAMFileWriterFactory.java b/src/java/net/sf/samtools/SAMFileWriterFactory.java
deleted file mode 100644
index e38cce1..0000000
--- a/src/java/net/sf/samtools/SAMFileWriterFactory.java
+++ /dev/null
@@ -1,259 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import net.sf.samtools.util.BlockCompressedOutputStream;
-import net.sf.samtools.util.IOUtil;
-import net.sf.samtools.util.Md5CalculatingOutputStream;
-import net.sf.samtools.util.RuntimeIOException;
-
-import java.io.*;
-
-/**
- * Create a SAMFileWriter for writing SAM or BAM.
- */
-public class SAMFileWriterFactory {
-    private static boolean defaultCreateIndexWhileWriting = Defaults.CREATE_INDEX;
-    private boolean createIndex = defaultCreateIndexWhileWriting ;
-    private static boolean defaultCreateMd5File = Defaults.CREATE_MD5;
-    private boolean createMd5File = defaultCreateMd5File;
-    private boolean useAsyncIo = Defaults.USE_ASYNC_IO;
-    private int asyncOutputBufferSize = AsyncSAMFileWriter.DEFAULT_QUEUE_SIZE;
-    private int bufferSize = Defaults.BUFFER_SIZE;
-    private File tmpDir;
-
-
-    private Integer maxRecordsInRam;
-
-    /** Sets the default for whether to create md5Files for BAM files this factory. */
-    public static void setDefaultCreateMd5File(final boolean createMd5File) {
-        defaultCreateMd5File = createMd5File;
-    }
-
-    /** Sets whether to create md5Files for BAMs from this factory. */
-    public SAMFileWriterFactory setCreateMd5File(final boolean createMd5File) {
-        this.createMd5File = createMd5File;
-        return this;
-    }
-
-    /**
-     * Sets the default for subsequent SAMFileWriterFactories
-     * that do not specify whether to create an index.
-     * If a BAM (not SAM) file is created, the setting is true, and the file header specifies coordinate order,
-     * then a BAM index file will be written along with the BAM file.
-     *
-     * @param setting whether to attempt to create a BAM index while creating the BAM file
-     */
-    public static void setDefaultCreateIndexWhileWriting(final boolean setting) {
-        defaultCreateIndexWhileWriting = setting;
-    }
-
-    /**
-     * Convenience method allowing newSAMFileWriterFactory().setCreateIndex(true);
-     * Equivalent to SAMFileWriterFactory.setDefaultCreateIndexWhileWriting(true); newSAMFileWriterFactory();
-     * If a BAM (not SAM) file is created, the setting is true, and the file header specifies coordinate order,
-     * then a BAM index file will be written along with the BAM file.
-     *
-     * @param setting whether to attempt to create a BAM index while creating the BAM file.
-     * @return this factory object
-     */
-    public SAMFileWriterFactory setCreateIndex(final boolean setting){
-        this.createIndex = setting;
-        return this;
-    }
-
-    /**
-     * Before creating a writer that is not presorted, this method may be called in order to override
-     * the default number of SAMRecords stored in RAM before spilling to disk
-     * (c.f. SAMFileWriterImpl.MAX_RECORDS_IN_RAM).  When writing very large sorted SAM files, you may need
-     * call this method in order to avoid running out of file handles.  The RAM available to the JVM may need
-     * to be increased in order to hold the specified number of records in RAM.  This value affects the number
-     * of records stored in subsequent calls to one of the make...() methods.
-     *
-     * @param maxRecordsInRam Number of records to store in RAM before spilling to temporary file when
-     * creating a sorted SAM or BAM file.
-     */
-    public SAMFileWriterFactory setMaxRecordsInRam(final int maxRecordsInRam) {
-        this.maxRecordsInRam = maxRecordsInRam;
-        return this;
-    }
-
-    /**
-     * Turn on or off the use of asynchronous IO for writing output SAM and BAM files.  If true then
-     * each SAMFileWriter creates a dedicated thread which is used for compression and IO activities.
-     */
-    public SAMFileWriterFactory setUseAsyncIo(final boolean useAsyncIo) {
-        this.useAsyncIo = useAsyncIo;
-        return this;
-    }
-
-    /**
-     * If and only if using asynchronous IO then sets the maximum number of records that can be buffered per
-     * SAMFileWriter before producers will block when trying to write another SAMRecord.
-     */
-    public SAMFileWriterFactory setAsyncOutputBufferSize(final int asyncOutputBufferSize) {
-        this.asyncOutputBufferSize = asyncOutputBufferSize;
-        return this;
-    }
-
-    /**
-     * Controls size of write buffer.
-     * Default value: [[net.sf.samtools.Defaults#BUFFER_SIZE]]
-     *
-     */
-    public SAMFileWriterFactory setBufferSize(final int bufferSize) {
-        this.bufferSize = bufferSize;
-        return this;
-    }
-
-    /**
-     * Set the temporary directory to use when sort data.
-     * @param tmpDir Path to the temporary directory
-     */
-    public SAMFileWriterFactory setTempDirectory(final File tmpDir) {
-        this.tmpDir = tmpDir;
-        return this;
-    }
-
-    /**
-     * Create a BAMFileWriter that is ready to receive SAMRecords.  Uses default compression level.
-     * @param header entire header. Sort order is determined by the sortOrder property of this arg.
-     * @param presorted if true, SAMRecords must be added to the SAMFileWriter in order that agrees with header.sortOrder.
-     * @param outputFile where to write the output.
-     */
-    public SAMFileWriter makeBAMWriter(final SAMFileHeader header, final boolean presorted, final File outputFile) {
-        return makeBAMWriter(header, presorted, outputFile, BlockCompressedOutputStream.getDefaultCompressionLevel());
-    }
-
-    /**
-     *
-     * Create a BAMFileWriter that is ready to receive SAMRecords.
-     * @param header entire header. Sort order is determined by the sortOrder property of this arg.
-     * @param presorted if true, SAMRecords must be added to the SAMFileWriter in order that agrees with header.sortOrder.
-     * @param outputFile where to write the output.
-     * @param compressionLevel Override default compression level with the given value, between 0 (fastest) and 9 (smallest).
-     */
-    public SAMFileWriter makeBAMWriter(final SAMFileHeader header, final boolean presorted, final File outputFile,
-                                       final int compressionLevel) {
-        try {
-            final boolean createMd5File = this.createMd5File && IOUtil.isRegularPath(outputFile);
-            if (this.createMd5File && !createMd5File) {
-                System.err.println("Cannot create MD5 file for BAM because output file is not a regular file: " + outputFile.getAbsolutePath());
-            }
-            OutputStream os = IOUtil.maybeBufferOutputStream(new FileOutputStream(outputFile, false), bufferSize);
-            if (createMd5File) os = new Md5CalculatingOutputStream(os, new File(outputFile.getAbsolutePath() + ".md5"));
-            final BAMFileWriter ret = new BAMFileWriter(os, outputFile, compressionLevel);
-            final boolean createIndex = this.createIndex && IOUtil.isRegularPath(outputFile);
-            if (this.createIndex && !createIndex) {
-                System.err.println("Cannot create index for BAM because output file is not a regular file: " + outputFile.getAbsolutePath());
-            }
-            if (this.tmpDir!=null) ret.setTempDirectory(this.tmpDir);
-            initializeBAMWriter(ret, header, presorted, createIndex);
-
-            if (this.useAsyncIo) return new AsyncSAMFileWriter(ret, this.asyncOutputBufferSize);
-            else return ret;
-        }
-        catch (final IOException ioe) {
-            throw new RuntimeIOException("Error opening file: " + outputFile.getAbsolutePath());
-        }
-    }
-
-    private void initializeBAMWriter(final BAMFileWriter writer, final SAMFileHeader header, final boolean presorted, final boolean createIndex) {
-        writer.setSortOrder(header.getSortOrder(), presorted);
-        if (maxRecordsInRam != null) {
-            writer.setMaxRecordsInRam(maxRecordsInRam);
-        }
-        writer.setHeader(header);
-        if (createIndex && writer.getSortOrder().equals(SAMFileHeader.SortOrder.coordinate)){
-            writer.enableBamIndexConstruction();
-        }
-    }
-
-    /**
-     * Create a SAMTextWriter that is ready to receive SAMRecords.
-     * @param header entire header. Sort order is determined by the sortOrder property of this arg.
-     * @param presorted if true, SAMRecords must be added to the SAMFileWriter in order that agrees with header.sortOrder.
-     * @param outputFile where to write the output.
-     */
-    public SAMFileWriter makeSAMWriter(final SAMFileHeader header, final boolean presorted, final File outputFile) {
-        try {
-            final SAMTextWriter ret = this.createMd5File
-                ? new SAMTextWriter(new Md5CalculatingOutputStream(new FileOutputStream(outputFile, false),
-                    new File(outputFile.getAbsolutePath() + ".md5")))
-                : new SAMTextWriter(outputFile);
-            ret.setSortOrder(header.getSortOrder(), presorted);
-            if (maxRecordsInRam != null) {
-                ret.setMaxRecordsInRam(maxRecordsInRam);
-            }
-            ret.setHeader(header);
-
-            if (this.useAsyncIo) return new AsyncSAMFileWriter(ret, this.asyncOutputBufferSize);
-            else return ret;
-        }
-        catch (final IOException ioe) {
-            throw new RuntimeIOException("Error opening file: " + outputFile.getAbsolutePath());
-        }
-    }
-
-    /**
-     * Create a SAMTextWriter for writing to a stream that is ready to receive SAMRecords.
-     * This method does not support the creation of an MD5 file
-     * 
-     * @param header entire header. Sort order is determined by the sortOrder property of this arg.
-     * @param presorted if true, SAMRecords must be added to the SAMFileWriter in order that agrees with header.sortOrder.
-     * @param stream the stream to write records to.  Note that this method does not buffer the stream, so the
-     *               caller must buffer if desired.  Note that PrintStream is buffered.
-     */
-    public SAMFileWriter makeSAMWriter(final SAMFileHeader header, final boolean presorted, final OutputStream stream) {
-        final SAMTextWriter ret = new SAMTextWriter(stream);
-        ret.setSortOrder(header.getSortOrder(), presorted);
-        if (maxRecordsInRam != null) {
-            ret.setMaxRecordsInRam(maxRecordsInRam);
-        }
-        ret.setHeader(header);
-
-        if (this.useAsyncIo) return new AsyncSAMFileWriter(ret, this.asyncOutputBufferSize);
-        else return ret;
-    }
-
-
-    /**
-     * Create either a SAM or a BAM writer based on examination of the outputFile extension.
-     * @param header entire header. Sort order is determined by the sortOrder property of this arg.
-     * @param presorted presorted if true, SAMRecords must be added to the SAMFileWriter in order that agrees with header.sortOrder.
-     * @param outputFile where to write the output.  Must end with .sam or .bam.
-     * @return SAM or BAM writer based on file extension of outputFile.
-     */
-    public SAMFileWriter makeSAMOrBAMWriter(final SAMFileHeader header, final boolean presorted, final File outputFile) {
-        final String filename = outputFile.getName();
-        if (filename.endsWith(BamFileIoUtils.BAM_FILE_EXTENSION)) {
-            return makeBAMWriter(header, presorted, outputFile);
-        }
-        if (filename.endsWith(".sam")) {
-            return makeSAMWriter(header, presorted, outputFile);
-        }
-        return makeBAMWriter(header, presorted, outputFile);
-    }
-
-}
diff --git a/src/java/net/sf/samtools/SAMFileWriterImpl.java b/src/java/net/sf/samtools/SAMFileWriterImpl.java
deleted file mode 100644
index 2e752c8..0000000
--- a/src/java/net/sf/samtools/SAMFileWriterImpl.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import net.sf.samtools.util.ProgressLoggerInterface;
-import net.sf.samtools.util.SortingCollection;
-
-import java.io.File;
-import java.io.StringWriter;
-
-/**
- * Base class for implementing SAM writer with any underlying format.
- * Mostly this manages accumulation & sorting of SAMRecords when appropriate,
- * and produces the text version of the header, since that seems to be a popular item
- * in both text and binary file formats.
- */
-public abstract class SAMFileWriterImpl implements SAMFileWriter
-{
-    private static int DEAFULT_MAX_RECORDS_IN_RAM = 500000;      
-    private int maxRecordsInRam = DEAFULT_MAX_RECORDS_IN_RAM;
-    private SAMFileHeader.SortOrder sortOrder;
-    private SAMFileHeader header;
-    private SortingCollection<SAMRecord> alignmentSorter;
-    private File tmpDir = new File(System.getProperty("java.io.tmpdir"));
-	private ProgressLoggerInterface progressLogger = null;
-
-    // If true, records passed to addAlignment are already in the order specified by sortOrder
-    private boolean presorted;
-
-    // For validating presorted records.
-    private SAMSortOrderChecker sortOrderChecker;
-
-    /**
-     * When writing records that are not presorted, specify the number of records stored in RAM
-     * before spilling to disk.  This method sets the default value for all SamFileWriterImpl
-     * instances. Must be called before the constructor is called.
-     * @param maxRecordsInRam
-     */
-    public static void setDefaultMaxRecordsInRam(final int maxRecordsInRam) {
-    	DEAFULT_MAX_RECORDS_IN_RAM = maxRecordsInRam;	
-    }
-    
-    /**
-     * When writing records that are not presorted, this number determines the 
-     * number of records stored in RAM before spilling to disk.
-     * @return DEAFULT_MAX_RECORDS_IN_RAM 
-     */
-    public static int getDefaultMaxRecordsInRam() {
-    	return DEAFULT_MAX_RECORDS_IN_RAM;	
-    }
-
-	/**
-	 * Sets the progress logger used by this implementation. Setting this lets this writer emit log
-	 * messages as SAM records in a SortingCollection are being written to disk.
-	 */
-    public void setProgressLogger(final ProgressLoggerInterface progress) {
-	    this.progressLogger = progress;
-    }
-
-    /**
-     * Must be called before calling setHeader().  SortOrder value in the header passed
-     * to setHeader() is ignored.  If setSortOrder is not called, default is SortOrder.unsorted.
-     */
-    public void setSortOrder(final SAMFileHeader.SortOrder sortOrder, final boolean presorted) {
-        if (header != null) {
-            throw new IllegalStateException("Cannot call SAMFileWriterImpl.setSortOrder after setHeader for " +
-                    getFilename());
-        }
-        this.sortOrder = sortOrder;
-        this.presorted = presorted;
-    }
-
-    /**
-     * Must be called after calling setHeader().
-     */
-    protected SAMFileHeader.SortOrder getSortOrder() {
-        return this.sortOrder;
-    }
-
-    /**
-     * When writing records that are not presorted, specify the number of records stored in RAM
-     * before spilling to disk.  Must be called before setHeader().
-     * @param maxRecordsInRam
-     */
-    void setMaxRecordsInRam(final int maxRecordsInRam) {
-        if (this.header != null) {
-            throw new IllegalStateException("setMaxRecordsInRam must be called before setHeader()");
-        }
-        this.maxRecordsInRam = maxRecordsInRam;
-    }
-    
-    /**
-     * When writing records that are not presorted, specify the path of the temporary directory 
-     * for spilling to disk.  Must be called before setHeader().
-     * @param tmpDir path to the temporary directory
-     */
-    void setTempDirectory(final File tmpDir) {
-        if (tmpDir!=null) {
-            this.tmpDir = tmpDir;
-        }
-    }
-
-    /**
-     * Must be called before addAlignment.
-     */
-    public void setHeader(final SAMFileHeader header)
-    {
-        this.header = header;
-        if (sortOrder == null) {
-             sortOrder = SAMFileHeader.SortOrder.unsorted;
-        }
-        header.setSortOrder(sortOrder);
-        final StringWriter headerTextBuffer = new StringWriter();
-        new SAMTextHeaderCodec().encode(headerTextBuffer, header);
-        final String headerText = headerTextBuffer.toString();
-
-        writeHeader(headerText);
-
-        if (presorted) {
-            if (sortOrder.equals(SAMFileHeader.SortOrder.unsorted)) {
-                presorted = false;
-            } else {
-                sortOrderChecker = new SAMSortOrderChecker(sortOrder);
-            }
-        } else if (!sortOrder.equals(SAMFileHeader.SortOrder.unsorted)) {
-            alignmentSorter = SortingCollection.newInstance(SAMRecord.class,
-                    new BAMRecordCodec(header), makeComparator(), maxRecordsInRam, tmpDir);
-        }
-    }
-
-    public SAMFileHeader getFileHeader() {
-        return header;
-    }
-
-    private SAMRecordComparator makeComparator() {
-        switch (sortOrder) {
-            case coordinate:
-                return new SAMRecordCoordinateComparator();
-            case queryname:
-                return new SAMRecordQueryNameComparator();
-            case unsorted:
-                return null;
-        }
-        throw new IllegalStateException("sortOrder should not be null");
-    }
-
-    public void addAlignment(final SAMRecord alignment)
-    {
-        if (sortOrder.equals(SAMFileHeader.SortOrder.unsorted)) {
-            if (!header.getGroupOrder().equals(SAMFileHeader.GroupOrder.none)) {
-                throw new UnsupportedOperationException("GroupOrder " + header.getGroupOrder() + " is not supported");
-            }
-            writeAlignment(alignment);
-        } else if (presorted) {
-            assertPresorted(alignment);
-            writeAlignment(alignment);
-        } else {
-            alignmentSorter.add(alignment);
-        }
-    }
-
-    private void assertPresorted(final SAMRecord alignment) {
-        final SAMRecord prev = sortOrderChecker.getPreviousRecord();
-        if (!sortOrderChecker.isSorted(alignment)) {
-            throw new IllegalArgumentException("Alignments added out of order in SAMFileWriterImpl.addAlignment for " +
-                    getFilename() + ". Sort order is " + this.sortOrder + ". Offending records are at ["
-                    + sortOrderChecker.getSortKey(prev) + "] and ["
-                    + sortOrderChecker.getSortKey(alignment) + "]");
-        }
-    }
-
-    /**
-     * Must be called or else file will likely be defective.
-     */
-    public final void close()
-    {
-        if (alignmentSorter != null) {
-            for (final SAMRecord alignment : alignmentSorter) {
-                writeAlignment(alignment);
-	            if (progressLogger != null) progressLogger.record(alignment);
-            }
-            alignmentSorter.cleanup();
-        }
-        finish();
-    }
-
-    /**
-     * Writes the record to disk.  Sort order has been taken care of by the time
-     * this method is called.
-     * @param alignment
-     */
-    abstract protected void writeAlignment(SAMRecord alignment);
-
-    /**
-     * Write the header to disk.  Header object is available via getHeader().
-     * @param textHeader for convenience if the implementation needs it.
-     */
-    abstract protected void writeHeader(String textHeader);
-
-    /**
-     * Do any required flushing here.
-     */
-    abstract protected void finish();
-
-    /**
-     * For producing error messages.
-     * @return Output filename, or null if there isn't one.
-     */
-    abstract protected String getFilename();
-}
diff --git a/src/java/net/sf/samtools/SAMFormatException.java b/src/java/net/sf/samtools/SAMFormatException.java
deleted file mode 100644
index 1ae70fd..0000000
--- a/src/java/net/sf/samtools/SAMFormatException.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-/**
- * Thrown when a SAM file being read or decoded (text or binary) looks bad.
- */
-public class SAMFormatException extends SAMException {
-    public SAMFormatException() {
-    }
-
-    public SAMFormatException(final String s) {
-        super(s);
-    }
-
-    public SAMFormatException(final String s, final Throwable throwable) {
-        super(s, throwable);
-    }
-
-    public SAMFormatException(final Throwable throwable) {
-        super(throwable);
-    }
-}
diff --git a/src/java/net/sf/samtools/SAMHeaderRecordComparator.java b/src/java/net/sf/samtools/SAMHeaderRecordComparator.java
deleted file mode 100644
index 8f01cea..0000000
--- a/src/java/net/sf/samtools/SAMHeaderRecordComparator.java
+++ /dev/null
@@ -1,66 +0,0 @@
-package net.sf.samtools;
-
-/**
- * The MIT License
- * <p/>
- * Copyright (c) 2014 The Broad Institute
- * <p/>
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * <p/>
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * <p/>
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-import java.util.Comparator;
-
-/**
- * Provides ordering based on SAM header records' attribute values. Provide the list of attributes to use
- * in the comparison to the constructor. Null attribute values (i.e., those attributes not present in the
- * record) sort behind those that have values.
- */
-public class SAMHeaderRecordComparator<T extends AbstractSAMHeaderRecord> implements Comparator<T> {
-
-	private final String[] attributes;
-
-	public SAMHeaderRecordComparator(final String... attributes) {
-		this.attributes = attributes;
-	}
-
-	@Override
-	public int compare(final T left, final T right) {
-		for (final String attribute : attributes) {
-			final String leftValue = left.getAttribute(attribute);
-			final String rightValue = right.getAttribute(attribute);
-
-			if (leftValue == null) {
-				// Fastest comparison possible; two empty values are
-				// equivalent, so move along to the next attribute
-				if (rightValue == null) continue;
-
-					// Otherwise left < right, since right has a value
-				else return -1;
-			}
-
-			// left is not null; if right is, left > right
-			if (rightValue == null) return 1;
-
-			final int compare = leftValue.compareTo(rightValue);
-			if (compare != 0) return compare;
-		}
-
-		return 0;
-	}
-}
diff --git a/src/java/net/sf/samtools/SAMLineParser.java b/src/java/net/sf/samtools/SAMLineParser.java
deleted file mode 100644
index 5356e33..0000000
--- a/src/java/net/sf/samtools/SAMLineParser.java
+++ /dev/null
@@ -1,457 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2012 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import java.io.File;
-import java.util.List;
-import java.util.Map;
-import java.util.regex.Pattern;
-
-import net.sf.samtools.util.StringUtil;
-
-/**
- * this class enables creation of a SAMRecord object from a String in SAM text format.
- */
-public class SAMLineParser {
-
-    // From SAM specification
-    private static final int QNAME_COL = 0;
-    private static final int FLAG_COL = 1;
-    private static final int RNAME_COL = 2;
-    private static final int POS_COL = 3;
-    private static final int MAPQ_COL = 4;
-    private static final int CIGAR_COL = 5;
-    private static final int MRNM_COL = 6;
-    private static final int MPOS_COL = 7;
-    private static final int ISIZE_COL = 8;
-    private static final int SEQ_COL = 9;
-    private static final int QUAL_COL = 10;
-
-    private static final int NUM_REQUIRED_FIELDS = 11;
-
-    // Read string must contain only these characters
-    private static final Pattern VALID_BASES = Pattern
-            .compile("^[acmgrsvtwyhkdbnACMGRSVTWYHKDBN.=]+$");
-
-    /**
-     * Allocate this once rather than for every line as a performance
-     * optimization. The size is arbitrary -- merely large enough to handle the
-     * maximum number of fields we might expect from a reasonable SAM file.
-     */
-    private final String[] mFields = new String[10000];
-
-    /**
-     * Add information about the origin (reader and position) to SAM records.
-     */
-    private final SAMFileReader mParentReader;
-    private final SAMRecordFactory samRecordFactory;
-    private final SAMFileReader.ValidationStringency validationStringency;
-    private final SAMFileHeader mFileHeader;
-    private final File mFile;
-
-    private final TextTagCodec tagCodec = new TextTagCodec();
-
-    private int currentLineNumber;
-    private String currentLine;
-
-    //
-    // Constructors
-    //
-
-    /**
-     * Public constructor. Use the default SAMRecordFactory and stringency.
-     * @param samFileHeader SAM file header
-     */
-    public SAMLineParser(final SAMFileHeader samFileHeader) {
-
-        this(new DefaultSAMRecordFactory(),
-                SAMFileReader.ValidationStringency.DEFAULT_STRINGENCY, samFileHeader,
-                null, null);
-    }
-
-    /**
-     * Public constructor. Use the default SAMRecordFactory and stringency.
-     * @param samFileHeader SAM file header
-     * @param samFileReader SAM file reader For passing to SAMRecord.setFileSource, may be null.
-     * @param samFile SAM file being read (for error message only, may be null)
-     */
-    public SAMLineParser(final SAMFileHeader samFileHeader,
-                         final SAMFileReader samFileReader, final File samFile) {
-
-        this(new DefaultSAMRecordFactory(),
-                SAMFileReader.ValidationStringency.DEFAULT_STRINGENCY, samFileHeader,
-                samFileReader, samFile);
-    }
-
-    /**
-     * Public constructor.
-     * @param samRecordFactory SamRecord Factory
-     * @param validationStringency validation stringency
-     * @param samFileHeader SAM file header
-     * @param samFileReader SAM file reader For passing to SAMRecord.setFileSource, may be null.
-     * @param samFile SAM file being read (for error message only, may be null)
-     */
-    public SAMLineParser(final SAMRecordFactory samRecordFactory,
-                         final SAMFileReader.ValidationStringency validationStringency,
-                         final SAMFileHeader samFileHeader, final SAMFileReader samFileReader,
-                         final File samFile) {
-
-        if (samRecordFactory == null)
-            throw new NullPointerException("The SamRecordFactory must be set");
-
-        if (validationStringency == null)
-            throw new NullPointerException("The validationStringency must be set");
-
-        if (samFileHeader == null)
-            throw new NullPointerException("The mFileHeader must be set");
-
-        this.samRecordFactory = samRecordFactory;
-        this.validationStringency = validationStringency;
-        this.mFileHeader = samFileHeader;
-
-        // Can be null
-        this.mParentReader = samFileReader;
-
-        // Can be null
-        this.mFile = samFile;
-    }
-
-    /**
-     * Get the File header.
-     * @return the SAM file header
-     */
-    public SAMFileHeader getFileHeader() {
-
-        return this.mFileHeader;
-    }
-
-    /**
-     * Get validation stringency.
-     * @return validation stringency
-     */
-    public SAMFileReader.ValidationStringency getValidationStringency() {
-
-        return this.validationStringency;
-    }
-
-    private int parseInt(final String s, final String fieldName) {
-        final int ret;
-        try {
-            ret = Integer.parseInt(s);
-        } catch (NumberFormatException e) {
-            throw reportFatalErrorParsingLine("Non-numeric value in "
-                    + fieldName + " column");
-        }
-        return ret;
-    }
-
-    private void validateReferenceName(final String rname, final String fieldName) {
-        if (rname.equals("=")) {
-            if (fieldName.equals("MRNM")) {
-                return;
-            }
-            reportErrorParsingLine("= is not a valid value for "
-                    + fieldName + " field.");
-        }
-        if (this.mFileHeader.getSequenceDictionary().size() != 0) {
-            if (this.mFileHeader.getSequence(rname) == null) {
-                reportErrorParsingLine(fieldName
-                        + " '" + rname + "' not found in any SQ record");
-            }
-        }
-    }
-
-    /**
-     * Parse a SAM line.
-     * @param line line to parse
-     * @return a new SAMRecord object
-     */
-    public SAMRecord parseLine(final String line) {
-
-        return parseLine(line, -1);
-    }
-
-    /**
-     * Parse a SAM line.
-     * @param line line to parse
-     * @param lineNumber line number in the file. If the line number is not known
-     *          can be <=0.
-     * @return a new SAMRecord object
-     */
-    public SAMRecord parseLine(final String line, final int lineNumber) {
-
-        final String mCurrentLine = line;
-        this.currentLineNumber = lineNumber;
-        this.currentLine = line;
-
-        final int numFields = StringUtil.split(mCurrentLine, mFields, '\t');
-        if (numFields < NUM_REQUIRED_FIELDS) {
-            throw reportFatalErrorParsingLine("Not enough fields");
-        }
-        if (numFields == mFields.length) {
-            reportErrorParsingLine("Too many fields in SAM text record.");
-        }
-        for (int i = 0; i < numFields; ++i) {
-            if (mFields[i].length() == 0) {
-                reportErrorParsingLine("Empty field at position " + i + " (zero-based)");
-            }
-        }
-        final SAMRecord samRecord =
-                samRecordFactory.createSAMRecord(this.mFileHeader);
-        samRecord.setValidationStringency(this.validationStringency);
-        if (mParentReader != null)
-            samRecord.setFileSource(new SAMFileSource(mParentReader, null));
-        samRecord.setHeader(this.mFileHeader);
-        samRecord.setReadName(mFields[QNAME_COL]);
-
-        final int flags = parseInt(mFields[FLAG_COL], "FLAG");
-        samRecord.setFlags(flags);
-
-        String rname = mFields[RNAME_COL];
-        if (!rname.equals("*")) {
-            rname = SAMSequenceRecord.truncateSequenceName(rname);
-            validateReferenceName(rname, "RNAME");
-            samRecord.setReferenceName(rname);
-        } else if (!samRecord.getReadUnmappedFlag()) {
-            reportErrorParsingLine("RNAME is not specified but flags indicate mapped");
-        }
-
-        final int pos = parseInt(mFields[POS_COL], "POS");
-        final int mapq = parseInt(mFields[MAPQ_COL], "MAPQ");
-        final String cigar = mFields[CIGAR_COL];
-        if (!SAMRecord.NO_ALIGNMENT_REFERENCE_NAME.equals(samRecord
-                .getReferenceName())) {
-            if (pos == 0) {
-                reportErrorParsingLine("POS must be non-zero if RNAME is specified");
-            }
-            if (!samRecord.getReadUnmappedFlag() && cigar.equals("*")) {
-                reportErrorParsingLine("CIGAR must not be '*' if RNAME is specified");
-            }
-        } else {
-            if (pos != 0) {
-                reportErrorParsingLine("POS must be zero if RNAME is not specified");
-            }
-            if (mapq != 0) {
-                reportErrorParsingLine("MAPQ must be zero if RNAME is not specified");
-            }
-            if (!cigar.equals("*")) {
-                reportErrorParsingLine("CIGAR must be '*' if RNAME is not specified");
-            }
-        }
-        samRecord.setAlignmentStart(pos);
-        samRecord.setMappingQuality(mapq);
-        samRecord.setCigarString(cigar);
-
-        String mateRName = mFields[MRNM_COL];
-        if (mateRName.equals("*")) {
-            if (samRecord.getReadPairedFlag() && !samRecord.getMateUnmappedFlag()) {
-                reportErrorParsingLine("MRNM not specified but flags indicate mate mapped");
-            }
-        } else {
-            if (!samRecord.getReadPairedFlag()) {
-                reportErrorParsingLine("MRNM specified but flags indicate unpaired");
-            }
-            if (!"=".equals(mateRName)) {
-                mateRName = SAMSequenceRecord.truncateSequenceName(mateRName);
-            }
-            validateReferenceName(mateRName, "MRNM");
-            if (mateRName.equals("=")) {
-                if (samRecord.getReferenceName() == null) {
-                    reportErrorParsingLine("MRNM is '=', but RNAME is not set");
-                }
-                samRecord.setMateReferenceName(samRecord.getReferenceName());
-            } else {
-                samRecord.setMateReferenceName(mateRName);
-            }
-        }
-
-        final int matePos = parseInt(mFields[MPOS_COL], "MPOS");
-        final int isize = parseInt(mFields[ISIZE_COL], "ISIZE");
-        if (!samRecord.getMateReferenceName().equals(
-                SAMRecord.NO_ALIGNMENT_REFERENCE_NAME)) {
-            if (matePos == 0) {
-                reportErrorParsingLine("MPOS must be non-zero if MRNM is specified");
-            }
-        } else {
-            if (matePos != 0) {
-                reportErrorParsingLine("MPOS must be zero if MRNM is not specified");
-            }
-            if (isize != 0) {
-                reportErrorParsingLine("ISIZE must be zero if MRNM is not specified");
-            }
-        }
-        samRecord.setMateAlignmentStart(matePos);
-        samRecord.setInferredInsertSize(isize);
-        if (!mFields[SEQ_COL].equals("*")) {
-            validateReadBases(mFields[SEQ_COL]);
-            samRecord.setReadString(mFields[SEQ_COL]);
-        } else {
-            samRecord.setReadBases(SAMRecord.NULL_SEQUENCE);
-        }
-        if (!mFields[QUAL_COL].equals("*")) {
-            if (samRecord.getReadBases() == SAMRecord.NULL_SEQUENCE) {
-                reportErrorParsingLine("QUAL should not be specified if SEQ is not specified");
-            }
-            if (samRecord.getReadString().length() != mFields[QUAL_COL].length()) {
-                reportErrorParsingLine("length(QUAL) != length(SEQ)");
-            }
-            samRecord.setBaseQualityString(mFields[QUAL_COL]);
-        } else {
-            samRecord.setBaseQualities(SAMRecord.NULL_QUALS);
-        }
-
-        for (int i = NUM_REQUIRED_FIELDS; i < numFields; ++i) {
-            parseTag(samRecord, mFields[i]);
-        }
-
-        final List<SAMValidationError> validationErrors = samRecord.isValid();
-        if (validationErrors != null) {
-            for (final SAMValidationError errorMessage : validationErrors) {
-                reportErrorParsingLine(errorMessage.getMessage());
-            }
-        }
-        return samRecord;
-    }
-
-    private void validateReadBases(final String bases) {
-        /*
-        * Using regex is slow, so check for invalid characters via
-        * isValidReadBase(), which hopefully the JIT will optimize. if
-        * (!VALID_BASES.matcher(bases).matches()) {
-        * reportErrorParsingLine("Invalid character in read bases"); }
-        */
-        for (int i = 0; i < bases.length(); ++i) {
-            if (!isValidReadBase(bases.charAt(i))) {
-                reportErrorParsingLine("Invalid character in read bases");
-                return;
-            }
-        }
-    }
-
-    private boolean isValidReadBase(final char base) {
-        switch (base) {
-            case 'a':
-            case 'c':
-            case 'm':
-            case 'g':
-            case 'r':
-            case 's':
-            case 'v':
-            case 't':
-            case 'w':
-            case 'y':
-            case 'h':
-            case 'k':
-            case 'd':
-            case 'b':
-            case 'n':
-            case 'A':
-            case 'C':
-            case 'M':
-            case 'G':
-            case 'R':
-            case 'S':
-            case 'V':
-            case 'T':
-            case 'W':
-            case 'Y':
-            case 'H':
-            case 'K':
-            case 'D':
-            case 'B':
-            case 'N':
-            case '.':
-            case '=':
-                return true;
-            default:
-                return false;
-        }
-    }
-
-    private void parseTag(final SAMRecord samRecord, final String tag) {
-        Map.Entry<String, Object> entry = null;
-        try {
-            entry = tagCodec.decode(tag);
-        } catch (SAMFormatException e) {
-            reportErrorParsingLine(e);
-        }
-        if (entry != null) {
-            if (entry.getValue() instanceof TagValueAndUnsignedArrayFlag) {
-                final TagValueAndUnsignedArrayFlag valueAndFlag =
-                        (TagValueAndUnsignedArrayFlag) entry.getValue();
-                if (valueAndFlag.isUnsignedArray) {
-                    samRecord.setUnsignedArrayAttribute(entry.getKey(),
-                            valueAndFlag.value);
-                } else {
-                    samRecord.setAttribute(entry.getKey(), valueAndFlag.value);
-                }
-            } else {
-                samRecord.setAttribute(entry.getKey(), entry.getValue());
-            }
-        }
-    }
-
-    //
-    // Error methods
-    //
-
-    private RuntimeException reportFatalErrorParsingLine(final String reason) {
-        return new SAMFormatException(makeErrorString(reason));
-    }
-
-    private void reportErrorParsingLine(final String reason) {
-        final String errorMessage = makeErrorString(reason);
-
-        if (validationStringency == SAMFileReader.ValidationStringency.STRICT) {
-            throw new SAMFormatException(errorMessage);
-        } else if (validationStringency == SAMFileReader.ValidationStringency.LENIENT) {
-            System.err
-                    .println("Ignoring SAM validation error due to lenient parsing:");
-            System.err.println(errorMessage);
-        }
-    }
-
-    private void reportErrorParsingLine(final Exception e) {
-        final String errorMessage = makeErrorString(e.getMessage());
-        if (validationStringency == SAMFileReader.ValidationStringency.STRICT) {
-            throw new SAMFormatException(errorMessage);
-        } else if (validationStringency == SAMFileReader.ValidationStringency.LENIENT) {
-            System.err
-                    .println("Ignoring SAM validation error due to lenient parsing:");
-            System.err.println(errorMessage);
-        }
-    }
-
-    private String makeErrorString(final String reason) {
-        String fileMessage = "";
-        if (mFile != null) {
-            fileMessage = "File " + mFile + "; ";
-        }
-        return "Error parsing text SAM file. "
-                + reason + "; " + fileMessage + "Line "
-                + (this.currentLineNumber <= 0 ? "unknown" : this.currentLineNumber)
-                + "\nLine: " + this.currentLine;
-    }
-
-}
diff --git a/src/java/net/sf/samtools/SAMProgramRecord.java b/src/java/net/sf/samtools/SAMProgramRecord.java
deleted file mode 100644
index 1ece45a..0000000
--- a/src/java/net/sf/samtools/SAMProgramRecord.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import java.util.*;
-
-/**
- * In-memory representation of @PG SAM header record.
- */
-public class SAMProgramRecord extends AbstractSAMHeaderRecord {
-    public static final String PROGRAM_GROUP_ID_TAG = "ID";
-    public static final String PROGRAM_NAME_TAG = "PN";
-    public static final String PROGRAM_VERSION_TAG = "VN";
-    public static final String COMMAND_LINE_TAG = "CL";
-    public static final String PREVIOUS_PROGRAM_GROUP_ID_TAG = "PP";
-    private String mProgramGroupId;
-    public static final Set<String> STANDARD_TAGS = Collections.unmodifiableSet(
-            new HashSet<String>(Arrays.asList(PROGRAM_GROUP_ID_TAG,
-                    PROGRAM_NAME_TAG,
-                    PROGRAM_VERSION_TAG,
-                    COMMAND_LINE_TAG,
-                    PREVIOUS_PROGRAM_GROUP_ID_TAG)) );
-
-    public SAMProgramRecord(final String programGroupId) {
-        this.mProgramGroupId = programGroupId;
-    }
-
-    public SAMProgramRecord(final String id, SAMProgramRecord srcProgramRecord) {
-        mProgramGroupId = id;
-        for (final Map.Entry<String, String> entry : srcProgramRecord.getAttributes()) {
-            setAttribute(entry.getKey(), entry.getValue());
-        }
-    }
-
-    public String getId() {
-        return getProgramGroupId();
-    }
-
-    public String getProgramGroupId() {
-        return mProgramGroupId;
-    }
-
-    public String getProgramName() {
-        return (String)getAttribute(PROGRAM_NAME_TAG);
-    }
-
-    public void setProgramName(final String name) {
-        setAttribute(PROGRAM_NAME_TAG, name);
-    }
-
-    public String getProgramVersion() {
-        return (String)getAttribute(PROGRAM_VERSION_TAG);
-    }
-
-    public void setProgramVersion(final String version) {
-        setAttribute(PROGRAM_VERSION_TAG, version);
-    }
-
-    public String getCommandLine() {
-        return (String)getAttribute(COMMAND_LINE_TAG);
-    }
-
-    public void setCommandLine(final String commandLine) {
-        setAttribute(COMMAND_LINE_TAG, commandLine);
-    }
-
-    public String getPreviousProgramGroupId() {
-        return (String)getAttribute(PREVIOUS_PROGRAM_GROUP_ID_TAG);
-    }
-
-    public void setPreviousProgramGroupId(final String id) {
-        setAttribute(PREVIOUS_PROGRAM_GROUP_ID_TAG, id);
-    }
-
-
-
-    /**
-     * @return true if this == that except for the program group ID, which is arbitrary
-     */
-    public boolean equivalent(final SAMProgramRecord that) {
-        return attributesEqual(that);
-    }
-
-    @Override
-    public boolean equals(final Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-
-        final SAMProgramRecord that = (SAMProgramRecord) o;
-
-        if (!attributesEqual(that)) return false;
-        if (mProgramGroupId != null ? !mProgramGroupId.equals(that.mProgramGroupId) : that.mProgramGroupId != null) return false;
-
-        return true;
-    }
-
-    @Override
-    public int hashCode() {
-        int result = mProgramGroupId != null ? mProgramGroupId.hashCode() : 0;
-        result = 31 * result + attributesHashCode();
-        return result;
-    }
-
-    Set<String> getStandardTags() {
-        return STANDARD_TAGS;
-    }
-}
diff --git a/src/java/net/sf/samtools/SAMReadGroupRecord.java b/src/java/net/sf/samtools/SAMReadGroupRecord.java
deleted file mode 100644
index a04f87c..0000000
--- a/src/java/net/sf/samtools/SAMReadGroupRecord.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-
-import net.sf.samtools.util.Iso8601Date;
-
-import java.util.*;
-
-/**
- * Header information about a read group.
- */
-public class SAMReadGroupRecord extends AbstractSAMHeaderRecord
-{
-    private String mReadGroupId = null;
-    public static final String READ_GROUP_ID_TAG = "ID";
-    public static final String READ_GROUP_SAMPLE_TAG = "SM";
-    public static final String PREDICTED_MEDIAN_INSERT_SIZE_TAG = "PI";
-    public static final String DATE_RUN_PRODUCED_TAG = "DT";
-    public static final String FLOW_ORDER_TAG = "FO";
-    public static final String KEY_SEQUENCE_TAG = "KS";
-    public static final String DESCRIPTION_TAG = "DS";
-    public static final String PLATFORM_UNIT_TAG = "PU";
-    public static final String SEQUENCING_CENTER_TAG = "CN";
-    public static final String PLATFORM_TAG = "PL";
-    public static final String LIBRARY_TAG = "LB";
-
-    public static final Set<String> STANDARD_TAGS =
-            new HashSet<String>(Arrays.asList(READ_GROUP_ID_TAG, READ_GROUP_SAMPLE_TAG, LIBRARY_TAG,
-        DESCRIPTION_TAG, PLATFORM_UNIT_TAG, PREDICTED_MEDIAN_INSERT_SIZE_TAG, SEQUENCING_CENTER_TAG,
-            DATE_RUN_PRODUCED_TAG, PLATFORM_TAG, FLOW_ORDER_TAG, KEY_SEQUENCE_TAG));
-
-    public SAMReadGroupRecord(final String id) { mReadGroupId = id; }
-
-    public SAMReadGroupRecord(final String id, final SAMReadGroupRecord srcProgramRecord) {
-        mReadGroupId = id;
-        for (final Map.Entry<String, String> entry : srcProgramRecord.getAttributes()) {
-            setAttribute(entry.getKey(), entry.getValue());
-        }
-    }
-
-    public String getId() { return getReadGroupId();  }
-    public String getReadGroupId() { return mReadGroupId; }
-
-    public String getSample() { return getAttribute(READ_GROUP_SAMPLE_TAG); }
-    public void setSample(final String value) { setAttribute(READ_GROUP_SAMPLE_TAG, value); }
-
-    public String getLibrary() { return getAttribute(LIBRARY_TAG); }
-    public void setLibrary(final String value) { setAttribute(LIBRARY_TAG, value); }
-
-    public String getPlatformUnit() { return getAttribute(PLATFORM_UNIT_TAG); }
-    public void setPlatformUnit(final String pu) { setAttribute(PLATFORM_UNIT_TAG, pu); }
-
-    public String getPlatform() { return getAttribute(PLATFORM_TAG); }
-    public void setPlatform(final String platform) { setAttribute(PLATFORM_TAG, platform); }
-
-    public Date getRunDate() {
-        final String dt = getAttribute(DATE_RUN_PRODUCED_TAG);
-        if (dt == null) return null;
-        else return new Iso8601Date(dt);
-    }
-
-    public String getFlowOrder() { return getAttribute(FLOW_ORDER_TAG); }
-    public void setFlowOrder(final String flowOrder) { setAttribute(FLOW_ORDER_TAG, flowOrder); }
-
-    public String getKeySequence() { return getAttribute(KEY_SEQUENCE_TAG); }
-    public void setKeySequence(final String keySequence) { setAttribute(KEY_SEQUENCE_TAG, keySequence); }
-
-    /**
-     * Converts to Iso8601Date if not already in that form.
-     */
-    public void setRunDate(Date runDate) {
-        if (runDate != null && !(runDate instanceof Iso8601Date)) {
-            runDate = new Iso8601Date(runDate);
-        }
-        setAttribute(DATE_RUN_PRODUCED_TAG, runDate != null ? runDate.toString() : null);
-    }
-
-    public String getSequencingCenter() { return getAttribute(SEQUENCING_CENTER_TAG); }
-    public void setSequencingCenter(final String center) { setAttribute(SEQUENCING_CENTER_TAG, center); }
-
-    public String getDescription() { return getAttribute(DESCRIPTION_TAG); }
-    public void setDescription(final String description) { setAttribute(DESCRIPTION_TAG, description); }
-
-    public Integer getPredictedMedianInsertSize() {
-        final String stringRep = getAttribute(PREDICTED_MEDIAN_INSERT_SIZE_TAG);
-        if (stringRep == null) return null;
-        return Integer.parseInt(stringRep); 
-    }
-    public void setPredictedMedianInsertSize(final Integer predictedMedianInsertSize) {
-
-        setAttribute(PREDICTED_MEDIAN_INSERT_SIZE_TAG, (predictedMedianInsertSize == null? null: predictedMedianInsertSize.toString())); 
-    }
-
-    /**
-     * @return true if this == that except for the read group ID, which is arbitrary
-     */
-    public boolean equivalent(final SAMReadGroupRecord that) {
-        return attributesEqual(that);
-    }
-
-    @Override
-    public boolean equals(final Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-
-        final SAMReadGroupRecord that = (SAMReadGroupRecord) o;
-
-        if (!attributesEqual(that)) return false;
-        if (mReadGroupId != null ? !mReadGroupId.equals(that.mReadGroupId) : that.mReadGroupId != null) return false;
-
-        return true;
-    }
-
-    @Override
-    public int hashCode() {
-        return mReadGroupId.hashCode();
-    }
-
-    Set<String> getStandardTags() {
-        return STANDARD_TAGS;
-    }
-}
-
diff --git a/src/java/net/sf/samtools/SAMRecord.java b/src/java/net/sf/samtools/SAMRecord.java
deleted file mode 100644
index ded7ebe..0000000
--- a/src/java/net/sf/samtools/SAMRecord.java
+++ /dev/null
@@ -1,1732 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-
-import net.sf.samtools.util.CoordMath;
-import net.sf.samtools.util.StringUtil;
-
-import java.lang.reflect.Array;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-
-/**
- * Java binding for a SAM file record.  c.f. http://samtools.sourceforge.net/SAM1.pdf
- *
- * The presence of reference name/reference index and alignment start
- * do not necessarily mean that a read is aligned.  Those values may merely be set to force a SAMRecord
- * to appear in a certain place in the sort order.  The readUnmappedFlag must be checked to determine whether
- * or not a read is mapped.  Only if the readUnmappedFlag is false can the reference name/index and alignment start
- * be interpreted as indicating an actual alignment position.
- *
- * Likewise, presence of mate reference name/index and mate alignment start do not necessarily mean that the
- * mate is aligned.  These may be set for an unaligned mate if the mate has been forced into a particular place
- * in the sort order per the above paragraph.  Only if the mateUnmappedFlag is false can the mate reference name/index
- * and mate alignment start be interpreted as indicating the actual alignment position of the mate.
- *
- * Note also that there are a number of getters & setters that are linked, i.e. they present different representations
- * of the same underlying data.  In these cases there is typically a representation that is preferred because it
- * ought to be faster than some other representation.  The following are the preferred representations:
- *
- * getReadNameLength() is preferred to getReadName().length()
- * get/setReadBases() is preferred to get/setReadString()
- * get/setBaseQualities() is preferred to get/setBaseQualityString()
- * get/setReferenceIndex() is preferred to get/setReferenceName()
- * get/setMateReferenceIndex() is preferred to get/setMateReferenceName()
- * getCigarLength() is preferred to getCigar().getNumElements()
- * get/setCigar() is preferred to get/setCigarString()
- *
- * Note that setIndexingBin() need not be called when writing SAMRecords.  It will be computed as necessary.  It is only
- * present as an optimization in the event that the value is already known and need not be computed.
- *
- * setHeader() need not be called when writing SAMRecords.  It may be convenient to call it, however, because
- * get/setReferenceIndex() and get/setMateReferenceIndex() must have access to the SAM header, either as an argument
- * or previously passed to setHeader().
- *
- * setHeader() is called by the SAM reading code, so the get/setReferenceIndex() and get/setMateReferenceIndex()
- * methods will have access to the sequence dictionary.
- *
- * Some of the get() methods return values that are mutable, due to the limitations of Java.  A caller should
- * never change the value returned by a get() method.  If you want to change the value of some attribute of a
- * SAMRecord, create a new value object and call the appropriate set() method.
- *
- * By default, extensive validation of SAMRecords is done when they are read.  Very limited validation is done when
- * values are set onto SAMRecords.
- */
-/**
- * @author alecw at broadinstitute.org
- * @author mishali.naik at intel.com
- */
-public class SAMRecord implements Cloneable
-{
-    /**
-     * Alignment score for a good alignment, but where computing a Phred-score is not feasible. 
-     */
-    public static final int UNKNOWN_MAPPING_QUALITY = 255;
-
-    /**
-     * Alignment score for an unaligned read.
-     */
-    public static final int NO_MAPPING_QUALITY = 0;
-
-    /**
-     * If a read has this reference name, it is unaligned, but not all unaligned reads have
-     * this reference name (see above).
-     */
-    public static final String NO_ALIGNMENT_REFERENCE_NAME = "*";
-
-    /**
-     * If a read has this reference index, it is unaligned, but not all unaligned reads have
-     * this reference index (see above).
-     */
-    public static final int NO_ALIGNMENT_REFERENCE_INDEX = -1;
-
-    /**
-     * Cigar string for an unaligned read.
-     */
-    public static final String NO_ALIGNMENT_CIGAR = "*";
-
-    /**
-     * If a read has reference name "*", it will have this value for position.
-     */
-    public static final int NO_ALIGNMENT_START = GenomicIndexUtil.UNSET_GENOMIC_LOCATION;
-
-    /**
-     * This should rarely be used, since a read with no sequence doesn't make much sense.
-     */
-    public static final byte[] NULL_SEQUENCE = new byte[0];
-
-    public static final String NULL_SEQUENCE_STRING = "*";
-
-    /**
-     * This should rarely be used, since all reads should have quality scores.
-     */
-    public static final byte[] NULL_QUALS = new byte[0];
-    public static final String NULL_QUALS_STRING = "*";
-
-    /**
-     * abs(insertSize) must be <= this
-     */
-    public static final int MAX_INSERT_SIZE = 1<<29;
-
-    /**
-     * It is not necessary in general to use the flag constants, because there are getters
-     * & setters that handles these symbolically.
-     */
-    private static final int READ_PAIRED_FLAG = 0x1;
-    private static final int PROPER_PAIR_FLAG = 0x2;
-    private static final int READ_UNMAPPED_FLAG = 0x4;
-    private static final int MATE_UNMAPPED_FLAG = 0x8;
-    private static final int READ_STRAND_FLAG = 0x10;
-    private static final int MATE_STRAND_FLAG = 0x20;
-    private static final int FIRST_OF_PAIR_FLAG = 0x40;
-    private static final int SECOND_OF_PAIR_FLAG = 0x80;
-    private static final int NOT_PRIMARY_ALIGNMENT_FLAG = 0x100;
-    private static final int READ_FAILS_VENDOR_QUALITY_CHECK_FLAG = 0x200;
-    private static final int DUPLICATE_READ_FLAG = 0x400;
-    private static final int SUPPLEMENTARY_ALIGNMENT_FLAG = 0x800;
-
-
-    private String mReadName = null;
-    private byte[] mReadBases = NULL_SEQUENCE;
-    private byte[] mBaseQualities = NULL_QUALS;
-    private String mReferenceName = NO_ALIGNMENT_REFERENCE_NAME;
-    private int mAlignmentStart = NO_ALIGNMENT_START;
-    private transient int mAlignmentEnd = NO_ALIGNMENT_START;
-    private int mMappingQuality = NO_MAPPING_QUALITY;
-    private String mCigarString = NO_ALIGNMENT_CIGAR;
-    private Cigar mCigar = null;
-    private List<AlignmentBlock> mAlignmentBlocks = null;
-    private int mFlags = 0;
-    private String mMateReferenceName = NO_ALIGNMENT_REFERENCE_NAME;
-    private int mMateAlignmentStart = 0;
-    private int mInferredInsertSize = 0;
-    private SAMBinaryTagAndValue mAttributes = null;
-    protected Integer mReferenceIndex = null;
-    protected Integer mMateReferenceIndex = null;
-    private Integer mIndexingBin = null;
-
-    /**
-     * Some attributes (e.g. CIGAR) are not decoded immediately.  Use this to decide how to validate when decoded.
-     */
-    private SAMFileReader.ValidationStringency mValidationStringency = SAMFileReader.ValidationStringency.SILENT;
-
-    private SAMFileSource mFileSource;
-    private SAMFileHeader mHeader = null;
-
-    public SAMRecord(final SAMFileHeader header) {
-        mHeader = header;
-    }
-
-    public String getReadName() {
-        return mReadName;
-    }
-
-    /**
-     * This method is preferred over getReadName().length(), because for BAMRecord
-     * it may be faster.
-     * @return length not including a null terminator.
-     */
-    public int getReadNameLength() {
-        return mReadName.length();
-    }
-
-    public void setReadName(final String value) {
-        mReadName = value;
-    }
-
-    /**
-     * @return read sequence as a string of ACGTN=.
-     */
-    public String getReadString() {
-        final byte[] readBases = getReadBases();
-        if (readBases.length == 0) {
-            return NULL_SEQUENCE_STRING;
-        }
-        return StringUtil.bytesToString(readBases);
-    }
-
-    public void setReadString(final String value) {
-        if (NULL_SEQUENCE_STRING.equals(value)) {
-            mReadBases = NULL_SEQUENCE;
-        } else {
-            final byte[] bases = StringUtil.stringToBytes(value);
-            SAMUtils.normalizeBases(bases);
-            setReadBases(bases);
-        }
-    }
-
-
-    /**
-     * Do not modify the value returned by this method.  If you want to change the bases, create a new
-     * byte[] and call setReadBases() or call setReadString().
-     * @return read sequence as ASCII bytes ACGTN=.
-     */
-    public byte[] getReadBases() {
-        return mReadBases;
-    }
-
-    public void setReadBases(final byte[] value) {
-        mReadBases = value;
-    }
-
-    /**
-     * This method is preferred over getReadBases().length, because for BAMRecord it may be faster.
-     * @return number of bases in the read.
-     */
-    public int getReadLength() {
-        return getReadBases().length;
-    }
-
-    /**
-     * @return Base qualities, encoded as a FASTQ string.
-     */
-    public String getBaseQualityString() {
-        if (Arrays.equals(NULL_QUALS, getBaseQualities())) {
-            return NULL_QUALS_STRING;
-        }
-        return SAMUtils.phredToFastq(getBaseQualities());
-    }
-
-    public void setBaseQualityString(final String value) {
-        if (NULL_QUALS_STRING.equals(value)) {
-            setBaseQualities(NULL_QUALS);
-        } else {
-            setBaseQualities(SAMUtils.fastqToPhred(value));
-        }
-    }
-
-    /**
-     * Do not modify the value returned by this method.  If you want to change the qualities, create a new
-     * byte[] and call setBaseQualities() or call setBaseQualityString().
-     * @return Base qualities, as binary phred scores (not ASCII).
-     */
-    public byte[] getBaseQualities() {
-        return mBaseQualities;
-    }
-
-    public void setBaseQualities(final byte[] value) {
-        mBaseQualities = value;
-    }
-
-    /**
-     * If the original base quality scores have been store in the "OQ" tag will return the numeric
-     * score as a byte[]
-     */
-    public byte[] getOriginalBaseQualities() {
-        final String oqString = (String) getAttribute("OQ");
-        if (oqString != null && oqString.length() > 0) {
-            return SAMUtils.fastqToPhred(oqString);
-        }
-        else {
-            return null;
-        }
-    }
-
-    /**
-     * Sets the original base quality scores into the "OQ" tag as a String.  Supplied value should be
-     * as phred-scaled numeric qualities.
-     */
-    public void setOriginalBaseQualities(final byte[] oq) {
-        setAttribute("OQ", SAMUtils.phredToFastq(oq));
-    }
-
-    private static boolean hasReferenceName(final Integer referenceIndex, final String referenceName) {
-        return (referenceIndex != null && referenceIndex != NO_ALIGNMENT_REFERENCE_INDEX) ||
-                !NO_ALIGNMENT_REFERENCE_NAME.equals(referenceName);
-    }
-
-    /**
-     * @return true if this SAMRecord has a reference, either as a String or index (or both).
-     */
-    private boolean hasReferenceName() {
-        return hasReferenceName(mReferenceIndex, mReferenceName);
-    }
-
-    /**
-     * @return true if this SAMRecord has a mate reference, either as a String or index (or both).
-     */
-    private boolean hasMateReferenceName() {
-        return hasReferenceName(mMateReferenceIndex, mMateReferenceName);
-    }
-
-    /**
-     * @return Reference name, or null if record has no reference.
-     */
-    public String getReferenceName() {
-        return mReferenceName;
-    }
-
-    public void setReferenceName(final String value) {
-        /* String.intern() is surprisingly expensive, so avoid it by looking up in sequence dictionary if possible */
-        if (NO_ALIGNMENT_REFERENCE_NAME.equals(value)) {
-            mReferenceName = NO_ALIGNMENT_REFERENCE_NAME;
-            mReferenceIndex = NO_ALIGNMENT_REFERENCE_INDEX;
-            return;
-        } else if (mHeader != null) {
-            final int referenceIndex = mHeader.getSequenceIndex(value);
-            if (referenceIndex != -1) {
-                setReferenceIndex(referenceIndex);
-                return;
-            }
-        }
-        // Drop through from above if nothing done.
-        mReferenceName = value.intern();
-        mReferenceIndex = null;
-    }
-
-    /**
-     * @return index of the reference sequence for this read in the sequence dictionary, or -1
-     * if read has no reference sequence set, or if a String reference name is not found in the sequence index..
-     */
-    public Integer getReferenceIndex() {
-        if (mReferenceIndex == null) {
-            if (mReferenceName == null) {
-                mReferenceIndex = NO_ALIGNMENT_REFERENCE_INDEX;
-            } else if (NO_ALIGNMENT_REFERENCE_NAME.equals(mReferenceName)) {
-                mReferenceIndex = NO_ALIGNMENT_REFERENCE_INDEX;
-            } else {
-                mReferenceIndex = mHeader.getSequenceIndex(mReferenceName);
-            }
-        }
-        return mReferenceIndex;
-    }
-
-    /**
-     * @param referenceIndex Must either equal -1 (indicating no reference), or exist in the sequence dictionary
-     * in the header associated with this record.
-     */
-    public void setReferenceIndex(final int referenceIndex) {
-        mReferenceIndex = referenceIndex;
-        if (mReferenceIndex == NO_ALIGNMENT_REFERENCE_INDEX) {
-            mReferenceName = NO_ALIGNMENT_REFERENCE_NAME;
-        } else {
-            try {
-                mReferenceName = mHeader.getSequence(referenceIndex).getSequenceName();
-            } catch (final NullPointerException e) {
-                throw new IllegalArgumentException("Reference index " + referenceIndex + " not found in sequence dictionary.", e);
-            }
-        }
-    }
-
-    /**
-     * @return Mate reference name, or null if one is not assigned.
-     */
-    public String getMateReferenceName() {
-        return mMateReferenceName;
-    }
-
-    public void setMateReferenceName(final String mateReferenceName) {
-        /* String.intern() is surprisingly expensive, so avoid it by looking up in sequence dictionary if possible */
-        if (NO_ALIGNMENT_REFERENCE_NAME.equals(mateReferenceName)) {
-            mMateReferenceName = NO_ALIGNMENT_REFERENCE_NAME;
-            mMateReferenceIndex = NO_ALIGNMENT_REFERENCE_INDEX;
-            return;
-        } else if (mHeader != null) {
-            final int referenceIndex = mHeader.getSequenceIndex(mateReferenceName);
-            if (referenceIndex != -1) {
-                setMateReferenceIndex(referenceIndex);
-                return;
-            }
-        }
-        // Drop through from above if nothing done.
-        this.mMateReferenceName = mateReferenceName.intern();
-        mMateReferenceIndex = null;
-    }
-
-    /**
-     * @return index of the reference sequence for this read's mate in the sequence dictionary, or -1
-     * if mate has no reference sequence set.
-     */
-    public Integer getMateReferenceIndex() {
-        if (mMateReferenceIndex == null) {
-            if (mMateReferenceName == null) {
-                mMateReferenceIndex = NO_ALIGNMENT_REFERENCE_INDEX;
-            } else if (NO_ALIGNMENT_REFERENCE_NAME.equals(mMateReferenceName)){
-                mMateReferenceIndex = NO_ALIGNMENT_REFERENCE_INDEX;
-            } else {
-                mMateReferenceIndex = mHeader.getSequenceIndex(mMateReferenceName);
-            }
-        }
-        return mMateReferenceIndex;
-    }
-
-    /**
-     * @param referenceIndex Must either equal -1 (indicating no reference), or exist in the sequence dictionary
-     * in the header associated with this record.
-     */
-    public void setMateReferenceIndex(final int referenceIndex) {
-        mMateReferenceIndex = referenceIndex;
-        if (mMateReferenceIndex == NO_ALIGNMENT_REFERENCE_INDEX) {
-            mMateReferenceName = NO_ALIGNMENT_REFERENCE_NAME;
-        } else {
-            try {
-                mMateReferenceName = mHeader.getSequence(referenceIndex).getSequenceName();
-            } catch (final NullPointerException e) {
-                throw new IllegalArgumentException("Reference index " + referenceIndex + " not found in sequence dictionary.", e);
-            }
-        }
-    }
-
-    /**
-     * @return 1-based inclusive leftmost position of the clipped sequence, or 0 if there is no position.
-     */
-    public int getAlignmentStart() {
-        return mAlignmentStart;
-    }
-
-    /**
-     * @param value 1-based inclusive leftmost position of the clipped sequence, or 0 if there is no position.
-     */
-    public void setAlignmentStart(final int value) {
-        mAlignmentStart = value;
-        // Clear cached alignment end
-        mAlignmentEnd = NO_ALIGNMENT_START;
-        // Change to alignmentStart could change indexing bin
-        setIndexingBin(null);
-    }
-
-    /**
-     * @return 1-based inclusive rightmost position of the clipped sequence, or 0 read if unmapped.
-     */
-    public int getAlignmentEnd() {
-        if (getReadUnmappedFlag()) {
-            return NO_ALIGNMENT_START;
-        }
-        else if (this.mAlignmentEnd == NO_ALIGNMENT_START) {
-            this.mAlignmentEnd = mAlignmentStart + getCigar().getReferenceLength() - 1;
-        }
-
-        return this.mAlignmentEnd;
-    }
-
-    /**
-     * @return the alignment start (1-based, inclusive) adjusted for clipped bases.  For example if the read
-     * has an alignment start of 100 but the first 4 bases were clipped (hard or soft clipped)
-     * then this method will return 96.
-     *
-     * Invalid to call on an unmapped read.
-     */
-    public int getUnclippedStart() {
-        return SAMUtils.getUnclippedStart(getAlignmentStart(), getCigar());
-    }
-
-    /**
-     * @return the alignment end (1-based, inclusive) adjusted for clipped bases.  For example if the read
-     * has an alignment end of 100 but the last 7 bases were clipped (hard or soft clipped)
-     * then this method will return 107.
-     *
-     * Invalid to call on an unmapped read.
-     */
-    public int getUnclippedEnd() {
-        return SAMUtils.getUnclippedEnd(getAlignmentEnd(), getCigar());
-    }
-
-
-    /**
-     * @return 1-based inclusive reference position of the unclipped sequence at a given offset,
-     *         or 0 if there is no position.
-     *         For example, given the sequence NNNAAACCCGGG, cigar 3S9M, and an alignment start of 1,
-     *         and a (1-based)offset 10 (start of GGG) it returns 7 (1-based offset starting after the soft clip.
-     *         For example: given the sequence AAACCCGGGTTT, cigar 4M1D6M, an alignment start of 1,
-     *         an offset of 4 returns reference position 4, an offset of 5 returns reference position 6.
-     *         Another example: given the sequence AAACCCGGGTTT, cigar 4M1I6M, an alignment start of 1,
-     *         an offset of 4 returns reference position 4, an offset of 5 returns 0.
-     * @offset 1-based location within the unclipped sequence
-     */
-    public int getReferencePositionAtReadPosition(final int offset) {
-
-        if (offset == 0) return 0;
-
-        for (final AlignmentBlock alignmentBlock : getAlignmentBlocks()) {
-            if (CoordMath.getEnd(alignmentBlock.getReadStart(), alignmentBlock.getLength()) < offset) {
-                continue;
-            } else if (offset < alignmentBlock.getReadStart()) {
-                return 0;
-            } else {
-                return alignmentBlock.getReferenceStart() + offset - alignmentBlock.getReadStart();
-            }
-        }
-        return 0; // offset not located in an alignment block
-    }
-
-    /**
-     * Unsupported.  This property is derived from alignment start and CIGAR. 
-     */
-    public void setAlignmentEnd(final int value) {
-        throw new UnsupportedOperationException("Not supported: setAlignmentEnd");
-    }
-
-    /**
-     * @return 1-based inclusive leftmost position of the clipped mate sequence, or 0 if there is no position.
-     */
-    public int getMateAlignmentStart() {
-        return mMateAlignmentStart;
-    }
-
-    public void setMateAlignmentStart(final int mateAlignmentStart) {
-        this.mMateAlignmentStart = mateAlignmentStart;
-    }
-
-    /**
-     * @return insert size (difference btw 5' end of read & 5' end of mate), if possible, else 0.
-     * Negative if mate maps to lower position than read.
-     */
-    public int getInferredInsertSize() {
-        return mInferredInsertSize;
-    }
-
-    public void setInferredInsertSize(final int inferredInsertSize) {
-        this.mInferredInsertSize = inferredInsertSize;
-    }
-
-    /**
-     * @return phred scaled mapping quality.  255 implies valid mapping but quality is hard to compute.
-     */
-    public int getMappingQuality() {
-        return mMappingQuality;
-    }
-
-    public void setMappingQuality(final int value) {
-        mMappingQuality = value;
-    }
-
-    public String getCigarString() {
-        if (mCigarString == null && getCigar() != null) {
-            mCigarString = TextCigarCodec.getSingleton().encode(getCigar());
-        }
-        return mCigarString;
-    }
-
-    public void setCigarString(final String value) {
-        mCigarString = value;
-        mCigar = null;
-        mAlignmentBlocks = null;
-        // Clear cached alignment end
-        mAlignmentEnd = NO_ALIGNMENT_START;
-        // Change to cigar could change alignmentEnd, and thus indexing bin
-        setIndexingBin(null);
-    }
-
-    /**
-     * Do not modify the value returned by this method.  If you want to change the Cigar, create a new
-     * Cigar and call setCigar() or call setCigarString()
-     * @return Cigar object for the read, or null if there is none.
-     */
-    public Cigar getCigar() {
-        if (mCigar == null && mCigarString != null) {
-            mCigar = TextCigarCodec.getSingleton().decode(mCigarString);
-            if (getValidationStringency() != SAMFileReader.ValidationStringency.SILENT && !this.getReadUnmappedFlag()) {
-                // Don't know line number, and don't want to force read name to be decoded.
-                SAMUtils.processValidationErrors(this.validateCigar(-1L), -1L, getValidationStringency());
-            }
-        }
-        return mCigar;
-    }
-
-    /**
-     * This method is preferred over getCigar().getNumElements(), because for BAMRecord it may be faster.
-     * @return number of cigar elements (number + operator) in the cigar string.
-     */
-    public int getCigarLength() {
-        return getCigar().numCigarElements();
-    }
-
-    public void setCigar(final Cigar cigar) {
-        initializeCigar(cigar);
-        // Change to cigar could change alignmentEnd, and thus indexing bin
-        setIndexingBin(null);
-    }
-
-    /**
-     * For setting the Cigar string when BAMRecord has decoded it.  Use this rather than setCigar()
-     * so that indexing bin doesn't get clobbered.
-     */
-    protected void initializeCigar(final Cigar cigar) {
-        this.mCigar = cigar;
-        mCigarString = null;
-        mAlignmentBlocks = null;
-        // Clear cached alignment end
-        mAlignmentEnd = NO_ALIGNMENT_START;
-    }
-
-    /**
-     * Get the SAMReadGroupRecord for this SAMRecord.
-     * @return The SAMReadGroupRecord from the SAMFileHeader for this SAMRecord, or null if
-     * 1) this record has no RG tag, or 2) the header doesn't contain the read group with
-     * the given ID.
-     * @throws NullPointerException if this.getHeader() returns null.
-     * @throws ClassCastException if RG tag does not have a String value.
-     */
-    public SAMReadGroupRecord getReadGroup() {
-        final String rgId = (String)getAttribute(SAMTagUtil.getSingleton().RG);
-        if (rgId == null) {
-            return null;
-        }
-        return getHeader().getReadGroup(rgId);
-    }
-
-    /**
-     * It is preferable to use the get*Flag() methods that handle the flag word symbolically.
-     */
-    public int getFlags() {
-        return mFlags;
-    }
-
-    public void setFlags(final int value) {
-        mFlags = value;
-        // Could imply change to readUnmapped flag, which could change indexing bin
-        setIndexingBin(null);
-    }
-
-    /**
-     * the read is paired in sequencing, no matter whether it is mapped in a pair.
-     */
-    public boolean getReadPairedFlag() {
-        return (mFlags & READ_PAIRED_FLAG) != 0;
-    }
-
-    private void requireReadPaired() {
-        if (!getReadPairedFlag()) {
-            throw new IllegalStateException("Inappropriate call if not paired read");
-        }
-    }
-
-    /**
-     * the read is mapped in a proper pair (depends on the protocol, normally inferred during alignment).
-     */
-    public boolean getProperPairFlag() {
-        requireReadPaired();
-        return getProperPairFlagUnchecked();
-    }
-
-    private boolean getProperPairFlagUnchecked() {
-        return (mFlags & PROPER_PAIR_FLAG) != 0;
-    }
-
-    /**
-     * the query sequence itself is unmapped.
-     */
-    public boolean getReadUnmappedFlag() {
-        return (mFlags & READ_UNMAPPED_FLAG) != 0;
-    }
-
-    /**
-     * the mate is unmapped.
-     */
-    public boolean getMateUnmappedFlag() {
-        requireReadPaired();
-        return getMateUnmappedFlagUnchecked();
-    }
-
-    private boolean getMateUnmappedFlagUnchecked() {
-        return (mFlags & MATE_UNMAPPED_FLAG) != 0;
-    }
-
-    /**
-     * strand of the query (false for forward; true for reverse strand).
-     */
-    public boolean getReadNegativeStrandFlag() {
-        return (mFlags & READ_STRAND_FLAG) != 0;
-    }
-
-    /**
-     * strand of the mate (false for forward; true for reverse strand).
-     */
-    public boolean getMateNegativeStrandFlag() {
-        requireReadPaired();
-        return getMateNegativeStrandFlagUnchecked();
-    }
-
-    private boolean getMateNegativeStrandFlagUnchecked() {
-        return (mFlags & MATE_STRAND_FLAG) != 0;
-    }
-
-    /**
-     * the read is the first read in a pair.
-     */
-    public boolean getFirstOfPairFlag() {
-        requireReadPaired();
-        return getFirstOfPairFlagUnchecked();
-    }
-
-    private boolean getFirstOfPairFlagUnchecked() {
-        return (mFlags & FIRST_OF_PAIR_FLAG) != 0;
-    }
-
-    /**
-     * the read is the second read in a pair.
-     */
-    public boolean getSecondOfPairFlag() {
-        requireReadPaired();
-        return getSecondOfPairFlagUnchecked();
-    }
-
-    private boolean getSecondOfPairFlagUnchecked() {
-        return (mFlags & SECOND_OF_PAIR_FLAG) != 0;
-    }
-
-    /**
-     * the alignment is not primary (a read having split hits may have multiple primary alignment records).
-     */
-    public boolean getNotPrimaryAlignmentFlag() {
-        return (mFlags & NOT_PRIMARY_ALIGNMENT_FLAG) != 0;
-    }
-
-    /**
-     * the alignment is supplementary (TODO: further explanation?).
-     */
-    public boolean getSupplementaryAlignmentFlag() {
-        return (mFlags & SUPPLEMENTARY_ALIGNMENT_FLAG) != 0;
-    }
-
-    /**
-     * the read fails platform/vendor quality checks.
-     */
-    public boolean getReadFailsVendorQualityCheckFlag() {
-        return (mFlags & READ_FAILS_VENDOR_QUALITY_CHECK_FLAG) != 0;
-    }
-
-    /**
-     * the read is either a PCR duplicate or an optical duplicate.
-     */
-    public boolean getDuplicateReadFlag() {
-        return (mFlags & DUPLICATE_READ_FLAG) != 0;
-    }
-
-    /**
-     * the read is paired in sequencing, no matter whether it is mapped in a pair.
-     */
-    public void setReadPairedFlag(final boolean flag) {
-        setFlag(flag, READ_PAIRED_FLAG);
-    }
-
-    /**
-     * the read is mapped in a proper pair (depends on the protocol, normally inferred during alignment).
-     */
-    public void setProperPairFlag(final boolean flag) {
-        setFlag(flag, PROPER_PAIR_FLAG);
-    }
-
-    /**
-     * the query sequence itself is unmapped.  This method name is misspelled.
-     * Use setReadUnmappedFlag instead.
-     * @deprecated
-     */
-    public void setReadUmappedFlag(final boolean flag) {
-        setReadUnmappedFlag(flag);
-    }
-
-    /**
-     * the query sequence itself is unmapped.
-     */
-    public void setReadUnmappedFlag(final boolean flag) {
-        setFlag(flag, READ_UNMAPPED_FLAG);
-        // Change to readUnmapped could change indexing bin
-        setIndexingBin(null);
-    }
-
-    /**
-     * the mate is unmapped.
-     */
-    public void setMateUnmappedFlag(final boolean flag) {
-        setFlag(flag, MATE_UNMAPPED_FLAG);
-    }
-
-    /**
-     * strand of the query (false for forward; true for reverse strand).
-     */
-    public void setReadNegativeStrandFlag(final boolean flag) {
-        setFlag(flag, READ_STRAND_FLAG);
-    }
-
-    /**
-     * strand of the mate (false for forward; true for reverse strand).
-     */
-    public void setMateNegativeStrandFlag(final boolean flag) {
-        setFlag(flag, MATE_STRAND_FLAG);
-    }
-
-    /**
-     * the read is the first read in a pair.
-     */
-    public void setFirstOfPairFlag(final boolean flag) {
-        setFlag(flag, FIRST_OF_PAIR_FLAG);
-    }
-
-    /**
-     * the read is the second read in a pair.
-     */
-    public void setSecondOfPairFlag(final boolean flag) {
-        setFlag(flag, SECOND_OF_PAIR_FLAG);
-    }
-
-    /**
-     * the alignment is not primary (a read having split hits may have multiple primary alignment records).
-     */
-    public void setNotPrimaryAlignmentFlag(final boolean flag) {
-        setFlag(flag, NOT_PRIMARY_ALIGNMENT_FLAG);
-    }
-
-    /**
-     * the alignment is supplementary (TODO: further explanation?).
-     */
-    public void setSupplementaryAlignmentFlag(final boolean flag) {
-        setFlag(flag, SUPPLEMENTARY_ALIGNMENT_FLAG);
-    }
-
-    /**
-     * the read fails platform/vendor quality checks.
-     */
-    public void setReadFailsVendorQualityCheckFlag(final boolean flag) {
-        setFlag(flag, READ_FAILS_VENDOR_QUALITY_CHECK_FLAG);
-    }
-
-    /**
-     * the read is either a PCR duplicate or an optical duplicate.
-     */
-    public void setDuplicateReadFlag(final boolean flag) {
-        setFlag(flag, DUPLICATE_READ_FLAG);
-    }
-
-    /**
-     * Tests if this record is either a secondary and/or supplementary alignment;
-     * equivalent to {@code (getNotPrimaryAlignmentFlag() || getSupplementaryAlignmentFlag())}.
-     */
-    public boolean isSecondaryOrSupplementary() {
-        return getNotPrimaryAlignmentFlag() || getSupplementaryAlignmentFlag();
-    }
-
-    private void setFlag(final boolean flag, final int bit) {
-        if (flag) {
-            mFlags |= bit;
-        } else {
-            mFlags &= ~bit;
-        }
-    }
-
-    public SAMFileReader.ValidationStringency getValidationStringency() {
-        return mValidationStringency;
-    }
-
-    /**
-     * Control validation of lazily-decoded elements.
-     */
-    public void setValidationStringency(final SAMFileReader.ValidationStringency validationStringency) {
-        this.mValidationStringency = validationStringency;
-    }
-
-    /**
-     * Get the value for a SAM tag.
-     * WARNING: Some value types (e.g. byte[]) are mutable.  It is dangerous to change one of these values in
-     * place, because some SAMRecord implementations keep track of when attributes have been changed.  If you
-     * want to change an attribute value, call setAttribute() to replace the value.
-     *
-     * @param tag Two-character tag name.
-     * @return Appropriately typed tag value, or null if the requested tag is not present.
-     */
-    public Object getAttribute(final String tag) {
-        return getAttribute(SAMTagUtil.getSingleton().makeBinaryTag(tag));
-    }
-
-    /**
-     * Get the tag value and attempt to coerce it into the requested type.
-     * @param tag The requested tag.
-     * @return The value of a tag, converted into an Integer if possible.
-     * @throws RuntimeException If the value is not an integer type, or will not fit in an Integer.
-     */
-    public Integer getIntegerAttribute(final String tag) {
-        final Object val = getAttribute(tag);
-        if (val == null) return null;
-        if (val instanceof Integer) {
-            return (Integer)val;
-        }
-        if (!(val instanceof Number)) {
-            throw new RuntimeException("Value for tag " + tag + " is not Number: " + val.getClass());
-        }
-        final long longVal = ((Number)val).longValue();
-        if (longVal < Integer.MIN_VALUE || longVal > Integer.MAX_VALUE) {
-            throw new RuntimeException("Value for tag " + tag + " is not in Integer range: " + longVal);
-        }
-        return (int)longVal;
-    }
-
-    /**
-     * Get the tag value and attempt to coerce it into the requested type.
-     * @param tag The requested tag.
-     * @return The value of a tag, converted into a Short if possible.
-     * @throws RuntimeException If the value is not an integer type, or will not fit in a Short.
-     */
-    public Short getShortAttribute(final String tag) {
-        final Object val = getAttribute(tag);
-        if (val == null) return null;
-        if (val instanceof Short) {
-            return (Short)val;
-        }
-        if (!(val instanceof Number)) {
-            throw new RuntimeException("Value for tag " + tag + " is not Number: " + val.getClass());
-        }
-        final long longVal = ((Number)val).longValue();
-        if (longVal < Short.MIN_VALUE || longVal > Short.MAX_VALUE) {
-            throw new RuntimeException("Value for tag " + tag + " is not in Short range: " + longVal);
-        }
-        return (short)longVal;
-    }
-
-    /**
-     * Get the tag value and attempt to coerce it into the requested type.
-     * @param tag The requested tag.
-     * @return The value of a tag, converted into a Byte if possible.
-     * @throws RuntimeException If the value is not an integer type, or will not fit in a Byte.
-     */
-    public Byte getByteAttribute(final String tag) {
-        final Object val = getAttribute(tag);
-        if (val == null) return null;
-        if (val instanceof Byte) {
-            return (Byte)val;
-        }
-        if (!(val instanceof Number)) {
-            throw new RuntimeException("Value for tag " + tag + " is not Number: " + val.getClass());
-        }
-        final long longVal = ((Number)val).longValue();
-        if (longVal < Byte.MIN_VALUE || longVal > Byte.MAX_VALUE) {
-            throw new RuntimeException("Value for tag " + tag + " is not in Short range: " + longVal);
-        }
-        return (byte)longVal;
-    }
-
-    public String getStringAttribute(final String tag) {
-        final Object val = getAttribute(tag);
-        if (val == null) return null;
-        if (val instanceof String) {
-            return (String)val;
-        }
-        throw new SAMException("Value for tag " + tag + " is not a String: " + val.getClass());
-    }
-
-    public Character getCharacterAttribute(final String tag) {
-        final Object val = getAttribute(tag);
-        if (val == null) return null;
-        if (val instanceof Character) {
-            return (Character)val;
-        }
-        throw new SAMException("Value for tag " + tag + " is not a Character: " + val.getClass());
-    }
-
-    public Float getFloatAttribute(final String tag) {
-        final Object val = getAttribute(tag);
-        if (val == null) return null;
-        if (val instanceof Float) {
-            return (Float)val;
-        }
-        throw new SAMException("Value for tag " + tag + " is not a Float: " + val.getClass());
-    }
-
-    /** Will work for signed byte array, unsigned byte array, or old-style hex array */
-    public byte[] getByteArrayAttribute(final String tag) {
-        final Object val = getAttribute(tag);
-        if (val == null) return null;
-        if (val instanceof byte[]) {
-            return (byte[])val;
-        }
-        throw new SAMException("Value for tag " + tag + " is not a byte[]: " + val.getClass());
-    }
-
-    public byte[] getUnsignedByteArrayAttribute(final String tag) {
-        final byte[] ret = getByteArrayAttribute(tag);
-        if (ret != null) requireUnsigned(tag);
-        return ret;
-    }
-
-    /** Will work for signed byte array or old-style hex array */
-    public byte[] getSignedByteArrayAttribute(final String tag) {
-        final byte[] ret = getByteArrayAttribute(tag);
-        if (ret != null) requireSigned(tag);
-        return ret;
-    }
-
-    public short[] getUnsignedShortArrayAttribute(final String tag) {
-        final Object val = getAttribute(tag);
-        if (val == null) return null;
-        if (val instanceof short[]) {
-            requireUnsigned(tag);
-            return (short[]) val;
-        }
-        throw new SAMException("Value for tag " + tag + " is not a short[]: " + val.getClass());
-    }
-
-    public short[] getSignedShortArrayAttribute(final String tag) {
-        final Object val = getAttribute(tag);
-        if (val == null) return null;
-        if (val instanceof short[]) {
-            requireSigned(tag);
-            return (short[]) val;
-        }
-        throw new SAMException("Value for tag " + tag + " is not a short[]: " + val.getClass());
-    }
-
-    public int[] getUnsignedIntArrayAttribute(final String tag) {
-        final Object val = getAttribute(tag);
-        if (val == null) return null;
-        if (val instanceof int[]) {
-            requireUnsigned(tag);
-            return (int[]) val;
-        }
-        throw new SAMException("Value for tag " + tag + " is not a int[]: " + val.getClass());
-    }
-
-    public int[] getSignedIntArrayAttribute(final String tag) {
-        final Object val = getAttribute(tag);
-        if (val == null) return null;
-        if (val instanceof int[]) {
-            requireSigned(tag);
-            return (int[]) val;
-        }
-        throw new SAMException("Value for tag " + tag + " is not a int[]: " + val.getClass());
-    }
-
-    public float[] getFloatArrayAttribute(final String tag) {
-        final Object val = getAttribute(tag);
-        if (val != null && !(val instanceof float[])) {
-            throw new SAMException("Value for tag " + tag + " is not a float[]: " + val.getClass());
-        }
-        return (float[]) val;
-    }
-
-    /**
-     * @return True if this tag is an unsigned array, else false.
-     * @throws SAMException if the tag is not present.
-     */
-    public boolean isUnsignedArrayAttribute(final String tag) {
-        final SAMBinaryTagAndValue tmp = this.mAttributes.find(SAMTagUtil.getSingleton().makeBinaryTag(tag));
-        if (tmp != null) return tmp.isUnsignedArray();
-        throw new SAMException("Tag " + tag + " is not present in this SAMRecord");
-    }
-
-    private void requireSigned(final String tag) {
-        if (isUnsignedArrayAttribute(tag))  throw new SAMException("Value for tag " + tag + " is not signed");
-    }
-
-    private void requireUnsigned(final String tag) {
-        if (!isUnsignedArrayAttribute(tag))  throw new SAMException("Value for tag " + tag + " is not unsigned");
-    }
-
-    /**
-     * @see SAMRecord#getAttribute(java.lang.String)
-     * @param tag Binary representation of a 2-char String tag as created by SAMTagUtil.
-     */
-    public Object getAttribute(final short tag) {
-        if (this.mAttributes == null) return null;
-        else {
-            final SAMBinaryTagAndValue tmp = this.mAttributes.find(tag);
-            if (tmp != null) return tmp.value;
-            else return null;
-        }
-    }
-
-    /**
-     * Set a named attribute onto the SAMRecord.  Passing a null value causes the attribute to be cleared.
-     * @param tag two-character tag name.  See http://samtools.sourceforge.net/SAM1.pdf for standard and user-defined tags.
-     * @param value Supported types are String, Char, Integer, Float, byte[], short[]. int[], float[].
-     * If value == null, tag is cleared.
-     *
-     * Byte and Short are allowed but discouraged.  If written to a SAM file, these will be converted to Integer,
-     * whereas if written to BAM, getAttribute() will return as Byte or Short, respectively.
-     *
-     * Long with value between 0 and MAX_UINT is allowed for BAM but discouraged.  Attempting to write such a value
-     * to SAM will cause an exception to be thrown.
-     *
-     * To set unsigned byte[], unsigned short[] or unsigned int[] (which is discouraged because of poor Java language
-     * support), setUnsignedArrayAttribute() must be used instead of this method.
-     *
-     * String values are not validated to ensure that they conform to SAM spec.
-     */
-    public void setAttribute(final String tag, final Object value) {
-        if (value != null && value.getClass().isArray() && Array.getLength(value) == 0) {
-            throw new IllegalArgumentException("Empty value passed for tag " + tag);
-        }
-        setAttribute(SAMTagUtil.getSingleton().makeBinaryTag(tag), value);
-    }
-
-    /**
-     * Because Java does not support unsigned integer types, we think it is a bad idea to encode them in SAM
-     * files.  If you must do so, however, you must call this method rather than setAttribute, because calling
-     * this method is the way to indicate that, e.g. a short array should be interpreted as unsigned shorts.
-     * @param value must be one of byte[], short[], int[]
-     */
-    public void setUnsignedArrayAttribute(final String tag, final Object value) {
-        if (!value.getClass().isArray()) {
-            throw new IllegalArgumentException("Non-array passed to setUnsignedArrayAttribute for tag " + tag);
-        }
-        if (Array.getLength(value) == 0) {
-            throw new IllegalArgumentException("Empty array passed to setUnsignedArrayAttribute for tag " + tag);
-        }
-        setAttribute(SAMTagUtil.getSingleton().makeBinaryTag(tag), value, true);
-    }
-
-    /**
-     * @see net.sf.samtools.SAMRecord#setAttribute(java.lang.String, java.lang.Object)
-     * @param tag Binary representation of a 2-char String tag as created by SAMTagUtil.
-     */
-    protected void setAttribute(final short tag, final Object value) {
-        setAttribute(tag, value, false);
-    }
-
-    protected void setAttribute(final short tag, final Object value, final boolean isUnsignedArray) {
-        if (value != null &&
-                !(value instanceof Byte || value instanceof Short || value instanceof Integer ||
-                        value instanceof String || value instanceof Character || value instanceof Float ||
-                        value instanceof byte[] || value instanceof short[] || value instanceof int[] ||
-                        value instanceof float[])) {
-            throw new SAMException("Attribute type " + value.getClass() + " not supported. Tag: " +
-                    SAMTagUtil.getSingleton().makeStringTag(tag));
-        }
-        if (value == null) {
-            if (this.mAttributes != null) this.mAttributes = this.mAttributes.remove(tag);
-        }
-        else {
-            final SAMBinaryTagAndValue tmp;
-            if(!isUnsignedArray) {
-                tmp = new SAMBinaryTagAndValue(tag, value);
-            }
-            else {
-                if (!value.getClass().isArray() || value instanceof float[]) {
-                    throw new SAMException("Attribute type " + value.getClass() +
-                            " cannot be encoded as an unsigned array. Tag: " +
-                            SAMTagUtil.getSingleton().makeStringTag(tag));
-                }
-                tmp = new SAMBinaryTagAndUnsignedArrayValue(tag, value);
-            }
-            if (this.mAttributes == null) this.mAttributes = tmp;
-            else this.mAttributes = this.mAttributes.insert(tmp);
-        }
-    }
-
-    /**
-     * Removes all attributes.
-     */
-    public void clearAttributes() {
-        mAttributes = null;
-    }
-
-    /**
-     * Replace any existing attributes with the given linked item.
-     */
-    protected void setAttributes(final SAMBinaryTagAndValue attributes) {
-        mAttributes = attributes;
-    }
-
-    /**
-     * @return Pointer to the first of the tags.  Returns null if there are no tags.
-     */
-    protected SAMBinaryTagAndValue getBinaryAttributes() {
-        return mAttributes;
-    }
-
-    /**
-     * Tag name and value of an attribute, for getAttributes() method.
-     */
-    public static class SAMTagAndValue {
-        public final String tag;
-        public final Object value;
-
-        public SAMTagAndValue(final String tag, final Object value) {
-            this.tag = tag;
-            this.value = value;
-        }
-    }
-
-    /**
-     * @return list of {tag, value} tuples
-     */
-    public List<SAMTagAndValue> getAttributes() {
-        SAMBinaryTagAndValue binaryAttributes = getBinaryAttributes();
-        final List<SAMTagAndValue> ret = new ArrayList<SAMTagAndValue>();
-        while (binaryAttributes != null) {
-            ret.add(new SAMTagAndValue(SAMTagUtil.getSingleton().makeStringTag(binaryAttributes.tag),
-                    binaryAttributes.value));
-            binaryAttributes = binaryAttributes.getNext();
-        }
-        return ret;
-    }
-
-    Integer getIndexingBin() {
-        return mIndexingBin;
-    }
-
-    /**
-     * Used internally when writing BAMRecords.
-     * @param mIndexingBin c.f. http://samtools.sourceforge.net/SAM1.pdf
-     */
-    void setIndexingBin(final Integer mIndexingBin) {
-        this.mIndexingBin = mIndexingBin;
-    }
-
-    /**
-     * Does not change state of this.
-     * @return indexing bin based on alignment start & end.
-     */
-    int computeIndexingBin() {
-        // reg2bin has zero-based, half-open API
-        final int alignmentStart = getAlignmentStart()-1;
-        int alignmentEnd = getAlignmentEnd();
-        if (alignmentEnd <= 0) {
-            // If alignment end cannot be determined (e.g. because this read is not really aligned),
-            // then treat this as a one base alignment for indexing purposes.
-            alignmentEnd = alignmentStart + 1;
-        }
-        return GenomicIndexUtil.reg2bin(alignmentStart, alignmentEnd);
-    }
-
-    public SAMFileHeader getHeader() {
-        return mHeader;
-    }
-
-    /**
-     * Setting header into SAMRecord facilitates conversion btw reference sequence names and indices
-     * @param header contains sequence dictionary for this SAMRecord
-     */
-    public void setHeader(final SAMFileHeader header) {
-        this.mHeader = header;
-    }
-
-    /**
-     * If this record has a valid binary representation of the variable-length portion of a binary record stored,
-     * return that byte array, otherwise return null.  This will never be true for SAMRecords.  It will be true
-     * for BAMRecords that have not been eagerDecoded(), and for which none of the data in the variable-length
-     * portion has been changed.
-     */
-    public byte[] getVariableBinaryRepresentation() {
-        return null;
-    }
-
-    /**
-     * Depending on the concrete implementation, the binary file size of attributes may be known without
-     * computing them all.
-     * @return binary file size of attribute, if known, else -1
-     */
-    public int getAttributesBinarySize() {
-        return -1;
-    }
-
-    /**
-     *
-     * @return String representation of this.
-     * @deprecated This method is not guaranteed to return a valid SAM text representation of the SAMRecord.
-     * To get standard SAM text representation, use net.sf.samtools.SAMRecord#getSAMString().
-     */
-    public String format() {
-        final StringBuilder buffer = new StringBuilder();
-        addField(buffer, getReadName(), null, null);
-        addField(buffer, getFlags(), null, null);
-        addField(buffer, getReferenceName(), null, "*");
-        addField(buffer, getAlignmentStart(), 0, "*");
-        addField(buffer, getMappingQuality(), 0, "0");
-        addField(buffer, getCigarString(), null, "*");
-        addField(buffer, getMateReferenceName(), null, "*");
-        addField(buffer, getMateAlignmentStart(), 0, "*");
-        addField(buffer, getInferredInsertSize(), 0, "*");
-        addField(buffer, getReadString(), null, "*");
-        addField(buffer, getBaseQualityString(), null, "*");
-        if (mAttributes != null) {
-            SAMBinaryTagAndValue entry = getBinaryAttributes();
-            while (entry != null) {
-                addField(buffer, formatTagValue(entry.tag, entry.value));
-                entry = entry.getNext();
-            }
-        }
-        return buffer.toString();
-    }
-
-    private void addField(final StringBuilder buffer, final Object value, final Object defaultValue, final String defaultString) {
-        if (safeEquals(value, defaultValue)) {
-            addField(buffer, defaultString);
-        } else if (value == null) {
-            addField(buffer, "");
-        } else {
-            addField(buffer, value.toString());
-        }
-    }
-
-    private void addField(final StringBuilder buffer, final String field) {
-        if (buffer.length() > 0) {
-            buffer.append('\t');
-        }
-        buffer.append(field);
-    }
-
-    private String formatTagValue(final short tag, final Object value) {
-        final String tagString = SAMTagUtil.getSingleton().makeStringTag(tag);
-        if (value == null || value instanceof String) {
-            return tagString + ":Z:" + value;
-        } else if (value instanceof Integer || value instanceof Long ||
-                value instanceof Short || value instanceof Byte) {
-            return tagString + ":i:" + value;
-        } else if (value instanceof Character) {
-            return tagString + ":A:" + value;
-        } else if (value instanceof Float) {
-            return tagString + ":f:" + value;
-        } else if (value instanceof byte[]) {
-            return tagString + ":H:" + StringUtil.bytesToHexString((byte[]) value);
-        } else {
-            throw new RuntimeException("Unexpected value type for tag " + tagString +
-                    ": " + value + " of class " + value.getClass().getName());
-        }
-    }
-
-    private boolean safeEquals(final Object o1, final Object o2) {
-        if (o1 == o2) {
-            return true;
-        } else if (o1 == null || o2 == null) {
-            return false;
-        } else {
-            return o1.equals(o2);
-        }
-    }
-
-    /**
-     * Force all lazily-initialized data members to be initialized.  If a subclass overrides this method,
-     * typically it should also call  super method.
-     */
-    protected void eagerDecode() {
-        getCigar();
-        getCigarString();
-    }
-
-    /**
-     * Returns blocks of the read sequence that have been aligned directly to the
-     * reference sequence. Note that clipped portions of the read and inserted and
-     * deleted bases (vs. the reference) are not represented in the alignment blocks.
-     */
-    public List<AlignmentBlock> getAlignmentBlocks() {
-        if (this.mAlignmentBlocks == null) {
-            this.mAlignmentBlocks = SAMUtils.getAlignmentBlocks(getCigar(), getAlignmentStart(), "read cigar");
-        }
-        return this.mAlignmentBlocks;
-    }
-
-    /**
-     * Run all validations of CIGAR.  These include validation that the CIGAR makes sense independent of
-     * placement, plus validation that CIGAR + placement yields all bases with M operator within the range of the reference.
-     * @param recordNumber For error reporting.  -1 if not known.
-     * @return List of errors, or null if no errors.
-     */
-    public List<SAMValidationError> validateCigar(final long recordNumber) {
-        List<SAMValidationError> ret = null;
-
-        if (getValidationStringency() != SAMFileReader.ValidationStringency.SILENT && !this.getReadUnmappedFlag()) {
-            ret = SAMUtils.validateCigar(this, getCigar(), getReferenceIndex(), getAlignmentBlocks(), recordNumber, "Read CIGAR");
-        }
-        return ret;
-    }
-
-    @Override
-    public boolean equals(final Object o) {
-        if (this == o) return true;
-        if (!(o instanceof SAMRecord)) return false;
-
-        final SAMRecord samRecord = (SAMRecord) o;
-
-        // First check all the elements that do not require decoding
-        if (mAlignmentStart != samRecord.mAlignmentStart) return false;
-        if (mFlags != samRecord.mFlags) return false;
-        if (mInferredInsertSize != samRecord.mInferredInsertSize) return false;
-        if (mMappingQuality != samRecord.mMappingQuality) return false;
-        if (mMateAlignmentStart != samRecord.mMateAlignmentStart) return false;
-        if (mIndexingBin != null ? !mIndexingBin.equals(samRecord.mIndexingBin) : samRecord.mIndexingBin != null)
-            return false;
-        if (mMateReferenceIndex != null ? !mMateReferenceIndex.equals(samRecord.mMateReferenceIndex) : samRecord.mMateReferenceIndex != null)
-            return false;
-        if (mReferenceIndex != null ? !mReferenceIndex.equals(samRecord.mReferenceIndex) : samRecord.mReferenceIndex != null)
-            return false;
-
-        eagerDecode();
-        samRecord.eagerDecode();
-
-        if (mReadName != null ? !mReadName.equals(samRecord.mReadName) : samRecord.mReadName != null) return false;
-        if (mAttributes != null ? !mAttributes.equals(samRecord.mAttributes) : samRecord.mAttributes != null)
-            return false;
-        if (!Arrays.equals(mBaseQualities, samRecord.mBaseQualities)) return false;
-        if (mCigar != null ? !mCigar.equals(samRecord.mCigar) : samRecord.mCigar != null)
-            return false;
-        if (mMateReferenceName != null ? !mMateReferenceName.equals(samRecord.mMateReferenceName) : samRecord.mMateReferenceName != null)
-            return false;
-        if (!Arrays.equals(mReadBases, samRecord.mReadBases)) return false;
-        if (mReferenceName != null ? !mReferenceName.equals(samRecord.mReferenceName) : samRecord.mReferenceName != null)
-            return false;
-
-        return true;
-    }
-
-    @Override
-    public int hashCode() {
-        eagerDecode();
-        int result = mReadName != null ? mReadName.hashCode() : 0;
-        result = 31 * result + (mReadBases != null ? Arrays.hashCode(mReadBases) : 0);
-        result = 31 * result + (mBaseQualities != null ? Arrays.hashCode(mBaseQualities) : 0);
-        result = 31 * result + (mReferenceName != null ? mReferenceName.hashCode() : 0);
-        result = 31 * result + mAlignmentStart;
-        result = 31 * result + mMappingQuality;
-        result = 31 * result + (mCigarString != null ? mCigarString.hashCode() : 0);
-        result = 31 * result + mFlags;
-        result = 31 * result + (mMateReferenceName != null ? mMateReferenceName.hashCode() : 0);
-        result = 31 * result + mMateAlignmentStart;
-        result = 31 * result + mInferredInsertSize;
-        result = 31 * result + (mAttributes != null ? mAttributes.hashCode() : 0);
-        result = 31 * result + (mReferenceIndex != null ? mReferenceIndex.hashCode() : 0);
-        result = 31 * result + (mMateReferenceIndex != null ? mMateReferenceIndex.hashCode() : 0);
-        result = 31 * result + (mIndexingBin != null ? mIndexingBin.hashCode() : 0);
-        return result;
-    }
-
-    /**
-     * Perform various validations of SAMRecord.
-     * Note that this method deliberately returns null rather than Collections.emptyList() if there
-     * are no validation errors, because callers tend to assume that if a non-null list is returned, it is modifiable.
-     * @return null if valid.  If invalid, returns a list of error messages.
-     */
-    public List<SAMValidationError> isValid() {
-        // ret is only instantiate if there are errors to report, in order to reduce GC in the typical case
-        // in which everything is valid.  It's ugly, but more efficient.
-        ArrayList<SAMValidationError> ret = null;
-        if (!getReadPairedFlag()) {
-            if (getProperPairFlagUnchecked()) {
-                if (ret == null) ret = new ArrayList<SAMValidationError>();
-                ret.add(new SAMValidationError(SAMValidationError.Type.INVALID_FLAG_PROPER_PAIR, "Proper pair flag should not be set for unpaired read.", getReadName()));
-            }
-            if (getMateUnmappedFlagUnchecked()) {
-                if (ret == null) ret = new ArrayList<SAMValidationError>();
-                ret.add(new SAMValidationError(SAMValidationError.Type.INVALID_FLAG_MATE_UNMAPPED, "Mate unmapped flag should not be set for unpaired read.", getReadName()));
-            }
-            if (getMateNegativeStrandFlagUnchecked()) {
-                if (ret == null) ret = new ArrayList<SAMValidationError>();
-                ret.add(new SAMValidationError(SAMValidationError.Type.INVALID_FLAG_MATE_NEG_STRAND, "Mate negative strand flag should not be set for unpaired read.", getReadName()));
-            }
-            if (getFirstOfPairFlagUnchecked()) {
-                if (ret == null) ret = new ArrayList<SAMValidationError>();
-                ret.add(new SAMValidationError(SAMValidationError.Type.INVALID_FLAG_FIRST_OF_PAIR, "First of pair flag should not be set for unpaired read.", getReadName()));
-            }
-            if (getSecondOfPairFlagUnchecked()) {
-                if (ret == null) ret = new ArrayList<SAMValidationError>();
-                ret.add(new SAMValidationError(SAMValidationError.Type.INVALID_FLAG_SECOND_OF_PAIR, "Second of pair flag should not be set for unpaired read.", getReadName()));
-            }
-            if (getMateReferenceIndex() != NO_ALIGNMENT_REFERENCE_INDEX) {
-                if (ret == null) ret = new ArrayList<SAMValidationError>();
-                ret.add(new SAMValidationError(SAMValidationError.Type.INVALID_MATE_REF_INDEX, "MRNM should not be set for unpaired read.", getReadName()));
-            }
-        } else {
-            final List<SAMValidationError> errors = isValidReferenceIndexAndPosition(mMateReferenceIndex, mMateReferenceName,
-                    getMateAlignmentStart(), true);
-            if (errors != null) {
-                if (ret == null) ret = new ArrayList<SAMValidationError>();
-                ret.addAll(errors);
-            }
-            if (!hasMateReferenceName() && !getMateUnmappedFlag()) {
-                if (ret == null) ret = new ArrayList<SAMValidationError>();
-                ret.add(new SAMValidationError(SAMValidationError.Type.INVALID_FLAG_MATE_UNMAPPED, "Mapped mate should have mate reference name", getReadName()));
-            }
-            if (!getFirstOfPairFlagUnchecked() && !getSecondOfPairFlagUnchecked()) {
-                if (ret == null) ret = new ArrayList<SAMValidationError>();
-                ret.add(new SAMValidationError(SAMValidationError.Type.PAIRED_READ_NOT_MARKED_AS_FIRST_OR_SECOND,
-                        "Paired read should be marked as first of pair or second of pair.", getReadName()));
-            }
-/*
-            TODO: PIC-97 This validation should be enabled, but probably at this point there are too many
-            BAM files that have the proper pair flag set when read or mate is unmapped.
-            if (getMateUnmappedFlag() && getProperPairFlagUnchecked()) {
-                if (ret == null) ret = new ArrayList<SAMValidationError>();
-                ret.add(new SAMValidationError(SAMValidationError.Type.INVALID_FLAG_PROPER_PAIR, "Proper pair flag should not be set for unpaired read.", getReadName()));
-            }
-*/
-        }
-        if (getInferredInsertSize() > MAX_INSERT_SIZE || getInferredInsertSize() < -MAX_INSERT_SIZE) {
-            if (ret == null) ret = new ArrayList<SAMValidationError>();
-            ret.add(new SAMValidationError(SAMValidationError.Type.INVALID_INSERT_SIZE, "Insert size out of range", getReadName()));
-        }
-        if (getReadUnmappedFlag()) {
-            if (getNotPrimaryAlignmentFlag()) {
-                if (ret == null) ret = new ArrayList<SAMValidationError>();
-                ret.add(new SAMValidationError(SAMValidationError.Type.INVALID_FLAG_NOT_PRIM_ALIGNMENT, "Not primary alignment flag should not be set for unmapped read.", getReadName()));
-            }
-            if (getSupplementaryAlignmentFlag()) {
-                if (ret == null) ret = new ArrayList<SAMValidationError>();
-                ret.add(new SAMValidationError(SAMValidationError.Type.INVALID_FLAG_SUPPLEMENTARY_ALIGNMENT, "Supplementary alignment flag should not be set for unmapped read.", getReadName()));
-            }
-            if (getMappingQuality() != 0) {
-                if (ret == null) ret = new ArrayList<SAMValidationError>();
-                ret.add(new SAMValidationError(SAMValidationError.Type.INVALID_MAPPING_QUALITY, "MAPQ should be 0 for unmapped read.", getReadName()));
-            }
-            /* non-empty CIGAR on unmapped read is now allowed, because there are special reads when SAM is used to store assembly. */
-/*
-            TODO: PIC-97 This validation should be enabled, but probably at this point there are too many
-            BAM files that have the proper pair flag set when read or mate is unmapped.
-            if (getProperPairFlagUnchecked()) {
-                if (ret == null) ret = new ArrayList<SAMValidationError>();
-                ret.add(new SAMValidationError(SAMValidationError.Type.INVALID_FLAG_PROPER_PAIR, "Proper pair flag should not be set for unmapped read.", getReadName()));
-            }
-*/
-        } else {
-            if (getMappingQuality() >= 256) {
-                if (ret == null) ret = new ArrayList<SAMValidationError>();
-                ret.add(new SAMValidationError(SAMValidationError.Type.INVALID_MAPPING_QUALITY, "MAPQ should be < 256.", getReadName()));
-            }
-            if (getCigarLength() == 0) {
-                if (ret == null) ret = new ArrayList<SAMValidationError>();
-                ret.add(new SAMValidationError(SAMValidationError.Type.INVALID_CIGAR, "CIGAR should have > zero elements for mapped read.", getReadName()));
-            /* todo - will uncomment once unit tests are added
-            } else if (getCigar().getReadLength() != getReadLength()) {
-                if (ret == null) ret = new ArrayList<SAMValidationError>();
-                ret.add(new SAMValidationError(SAMValidationError.Type.INVALID_CIGAR, "CIGAR read length " + getCigar().getReadLength() + " doesn't match read length " + getReadLength(), getReadName()));
-            */
-            }
-            if (getHeader().getSequenceDictionary().size() == 0) {
-                if (ret == null) ret = new ArrayList<SAMValidationError>();
-                ret.add(new SAMValidationError(SAMValidationError.Type.MISSING_SEQUENCE_DICTIONARY, "Empty sequence dictionary.", getReadName()));
-            }
-            if (!hasReferenceName()) {
-                if (ret == null) ret = new ArrayList<SAMValidationError>();
-                ret.add(new SAMValidationError(SAMValidationError.Type.INVALID_FLAG_READ_UNMAPPED, "Mapped read should have valid reference name", getReadName()));
-            }
-/*
-            Oops!  We know this is broken in older BAM files, so this having this validation will cause all sorts of
-            problems!
-            if (getIndexingBin() != null && getIndexingBin() != computeIndexingBin()) {
-                ret.add(new SAMValidationError(SAMValidationError.Type.INVALID_INDEXING_BIN,
-                        "Indexing bin (" + getIndexingBin() + ") does not agree with computed value (" + computeIndexingBin() + ")",
-                        getReadName()));
-
-            }
-*/
-        }
-        // Validate the RG ID is found in header
-        final String rgId = (String)getAttribute(SAMTagUtil.getSingleton().RG);
-        if (rgId != null && getHeader().getReadGroup(rgId) == null) {
-            if (ret == null) ret = new ArrayList<SAMValidationError>();
-            ret.add(new SAMValidationError(SAMValidationError.Type.READ_GROUP_NOT_FOUND,
-                    "RG ID on SAMRecord not found in header: " + rgId, getReadName()));
-        }
-        final List<SAMValidationError> errors = isValidReferenceIndexAndPosition(mReferenceIndex, mReferenceName, getAlignmentStart(), false);
-        if (errors != null) {
-            if (ret == null) ret = new ArrayList<SAMValidationError>();
-            ret.addAll(errors);
-        }
-        // TODO(mccowan): Is this asking "is this the primary alignment"?
-        if (this.getReadLength() == 0 && !this.getNotPrimaryAlignmentFlag()) {
-            final Object fz = getAttribute(SAMTagUtil.getSingleton().FZ);
-            if (fz == null) {
-                final String cq = (String)getAttribute(SAMTagUtil.getSingleton().CQ);
-                final String cs = (String)getAttribute(SAMTagUtil.getSingleton().CS);
-                if (cq == null || cq.length() == 0 || cs == null || cs.length() == 0) {
-                    if (ret == null) ret = new ArrayList<SAMValidationError>();
-                    ret.add(new SAMValidationError(SAMValidationError.Type.EMPTY_READ,
-                            "Zero-length read without FZ, CS or CQ tag", getReadName()));
-                } else if (!getReadUnmappedFlag()) {
-                    boolean hasIndel = false;
-                    for (final CigarElement cigarElement : getCigar().getCigarElements()) {
-                        if (cigarElement.getOperator() == CigarOperator.DELETION ||
-                                cigarElement.getOperator() == CigarOperator.INSERTION) {
-                            hasIndel = true;
-                            break;
-                        }
-                    }
-                    if (!hasIndel) {
-                        if (ret == null) ret = new ArrayList<SAMValidationError>();
-                        ret.add(new SAMValidationError(SAMValidationError.Type.EMPTY_READ,
-                                "Colorspace read with zero-length bases but no indel", getReadName()));
-                    }
-                }
-            }
-        }
-        if (this.getReadLength() != getBaseQualities().length &&  !Arrays.equals(getBaseQualities(), NULL_QUALS)) {
-            if (ret == null) ret = new ArrayList<SAMValidationError>();
-            ret.add(new SAMValidationError(SAMValidationError.Type.MISMATCH_READ_LENGTH_AND_QUALS_LENGTH,
-                    "Read length does not match quals length", getReadName()));
-        }
-
-        if (this.getAlignmentStart() != NO_ALIGNMENT_START && this.getIndexingBin() != null &&
-                this.computeIndexingBin() != this.getIndexingBin()) {
-            if (ret == null) ret = new ArrayList<SAMValidationError>();
-            ret.add(new SAMValidationError(SAMValidationError.Type.INVALID_INDEXING_BIN,
-                    "bin field of BAM record does not equal value computed based on alignment start and end, and length of sequence to which read is aligned",
-                    getReadName()));
-        }
-
-        if (ret == null || ret.size() == 0) {
-            return null;
-        }
-        return ret;
-    }
-
-    /**
-     * Gets the source of this SAM record -- both the reader that retrieved the record and the position on disk from
-     * whence it came. 
-     * @return The file source.  Note that the reader will be null if not activated using SAMFileReader.enableFileSource().
-     */
-    public SAMFileSource getFileSource() {
-        return mFileSource;
-    }
-
-    /**
-     * Sets a marker providing the source reader for this file and the position in the file from which the read originated.
-     * @param fileSource source of the given file.
-     */
-    protected void setFileSource(final SAMFileSource fileSource) {
-        mFileSource = fileSource;
-    }
-
-    private List<SAMValidationError> isValidReferenceIndexAndPosition(final Integer referenceIndex, final String referenceName,
-                                                                      final int alignmentStart, final boolean isMate) {
-        final boolean hasReference = hasReferenceName(referenceIndex, referenceName);
-
-        // ret is only instantiate if there are errors to report, in order to reduce GC in the typical case
-        // in which everything is valid.  It's ugly, but more efficient.
-        ArrayList<SAMValidationError> ret = null;
-        if (!hasReference) {
-            if (alignmentStart != 0) {
-                if (ret == null) ret = new ArrayList<SAMValidationError>();
-                ret.add(new SAMValidationError(SAMValidationError.Type.INVALID_ALIGNMENT_START, buildMessage("Alignment start should be 0 because reference name = *.", isMate), getReadName()));
-            }
-        } else {
-            if (alignmentStart == 0) {
-                if (ret == null) ret = new ArrayList<SAMValidationError>();
-                ret.add(new SAMValidationError(SAMValidationError.Type.INVALID_ALIGNMENT_START, buildMessage("Alignment start should != 0 because reference name != *.", isMate), getReadName()));
-            }
-
-            if (getHeader().getSequenceDictionary().size() > 0) {
-                final SAMSequenceRecord sequence =
-                        (referenceIndex != null? getHeader().getSequence(referenceIndex): getHeader().getSequence(referenceName));
-                if (sequence == null) {
-                    if (ret == null) ret = new ArrayList<SAMValidationError>();
-                    ret.add(new SAMValidationError(SAMValidationError.Type.INVALID_REFERENCE_INDEX, buildMessage("Reference sequence not found in sequence dictionary.", isMate), getReadName()));
-                } else {
-                    if (alignmentStart > sequence.getSequenceLength()) {
-                        if (ret == null) ret = new ArrayList<SAMValidationError>();
-                        ret.add(new SAMValidationError(SAMValidationError.Type.INVALID_ALIGNMENT_START, buildMessage("Alignment start (" + alignmentStart + ") must be <= reference sequence length (" +
-                                sequence.getSequenceLength() + ") on reference " + sequence.getSequenceName(), isMate), getReadName()));
-                    }
-                }
-            }
-        }
-        return ret;
-    }
-
-    private String buildMessage(final String baseMessage, final boolean isMate) {
-        return isMate ? "Mate " + baseMessage : baseMessage;
-    }
-
-    /**
-     * Note that this does a shallow copy of everything, except for the attribute list, for which a copy of the list
-     * is made, but the attributes themselves are copied by reference.  This should be safe because callers should
-     * never modify a mutable value returned by any of the get() methods anyway.
-     */
-    @Override
-    public Object clone() throws CloneNotSupportedException {
-        final SAMRecord newRecord = (SAMRecord)super.clone();
-        if (mAttributes != null) {
-            newRecord.mAttributes = this.mAttributes.copy();
-        }
-
-        return newRecord;
-    }
-
-    /** Simple toString() that gives a little bit of useful info about the read. */
-    @Override
-    public String toString() {
-        final StringBuilder builder = new StringBuilder(64);
-        builder.append(getReadName());
-        if (getReadPairedFlag()) {
-            if (getFirstOfPairFlag()) {
-                builder.append(" 1/2");
-            }
-            else {
-                builder.append(" 2/2");
-            }
-        }
-
-        builder.append(" ");
-        builder.append(String.valueOf(getReadLength()));
-        builder.append("b");
-
-        if (getReadUnmappedFlag()) {
-            builder.append(" unmapped read.");
-        }
-        else {
-            builder.append(" aligned read.");
-        }
-
-        return builder.toString();
-    }
-
-    /**
-     Returns the record in the SAM line-based text format.  Fields are
-     separated by '\t' characters, and the String is terminated by '\n'.
-     */
-    public String getSAMString() {
-        return SAMTextWriter.getSAMString(this);
-    }
-}
-
diff --git a/src/java/net/sf/samtools/SAMRecordComparator.java b/src/java/net/sf/samtools/SAMRecordComparator.java
deleted file mode 100644
index 31f2e00..0000000
--- a/src/java/net/sf/samtools/SAMRecordComparator.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import java.util.Comparator;
-
-/**
- * Interface for comparators that define the various SAM sort orders.
- */
-public interface SAMRecordComparator extends Comparator<SAMRecord> {
-
-    /**
-     * Less stringent compare method than the regular compare.  If the two records
-     * are equal enough that their ordering in a sorted SAM file would be arbitrary,
-     * this method returns 0.
-     * @return negative if samRecord1 < samRecord2,  0 if equal, else positive
-     */
-    public int fileOrderCompare(SAMRecord samRecord1, SAMRecord samRecord2);
-}
diff --git a/src/java/net/sf/samtools/SAMRecordCoordinateComparator.java b/src/java/net/sf/samtools/SAMRecordCoordinateComparator.java
deleted file mode 100644
index 5977e61..0000000
--- a/src/java/net/sf/samtools/SAMRecordCoordinateComparator.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-/**
- * Comparator for sorting SAMRecords by coordinate.  Note that the header is required because
- * the order of sequences in the header defines the major sort order.
- *
- * Ideally this method would only return 0 for completely equal SAMRecords, so that sort is
- * completely deterministic.  This implementation does not achieve this completely, but it
- * comes pretty close, while avoiding decoding the variable length fields, except for read name,
- * which is decoded if coordinate and strand are equal.
- *
- * Extreme care must be taken to ensure the following:
- * if A == B, then B == A
- * if A < B, then B > A
- * if A < B && B < C, then A < C
- *
- */
-public class SAMRecordCoordinateComparator implements SAMRecordComparator {
-    public int compare(final SAMRecord samRecord1, final SAMRecord samRecord2) {
-        int cmp = fileOrderCompare(samRecord1, samRecord2);
-        if (cmp != 0) {
-            return cmp;
-        }
-        // Test of negative strand flag is not really necessary, because it is tested
-        // with cmp if getFlags, but it is left here because that is the way it was done
-        // in the past.
-        if (samRecord1.getReadNegativeStrandFlag() == samRecord2.getReadNegativeStrandFlag()) {
-            cmp = samRecord1.getReadName().compareTo(samRecord2.getReadName());
-            if (cmp != 0) return cmp;
-            cmp = compareInts(samRecord1.getFlags(), samRecord2.getFlags());
-            if (cmp != 0) return cmp;
-            cmp = compareInts(samRecord1.getMappingQuality(), samRecord2.getMappingQuality());
-            if (cmp != 0) return cmp;
-            cmp = compareInts(samRecord1.getMateReferenceIndex(), samRecord2.getMateReferenceIndex());
-            if (cmp != 0) return cmp;
-            cmp = compareInts(samRecord1.getMateAlignmentStart(), samRecord2.getMateAlignmentStart());
-            if (cmp != 0) return cmp;
-            cmp = compareInts(samRecord1.getInferredInsertSize(), samRecord2.getInferredInsertSize());
-            return cmp;
-
-        }
-        else return (samRecord1.getReadNegativeStrandFlag()? 1: -1);
-    }
-
-    private int compareInts(int i1, int i2) {
-        if (i1 < i2) return -1;
-        else if (i1 > i2) return 1;
-        else return 0;
-    }
-
-    /**
-     * Less stringent compare method than the regular compare.  If the two records
-     * are equal enough that their ordering in a sorted SAM file would be arbitrary,
-     * this method returns 0.  If read is paired and unmapped, use the mate mapping to sort.
-     *
-     * @return negative if samRecord1 < samRecord2,  0 if equal, else positive
-     */
-    public int fileOrderCompare(final SAMRecord samRecord1, final SAMRecord samRecord2) {
-        final int refIndex1 = samRecord1.getReferenceIndex();
-        final int refIndex2 = samRecord2.getReferenceIndex();
-        if (refIndex1 == -1) {
-            return (refIndex2 == -1? 0: 1);
-        } else if (refIndex2 == -1) {
-            return -1;
-        }
-        final int cmp = refIndex1 - refIndex2;
-        if (cmp != 0) {
-            return cmp;
-        }
-        return samRecord1.getAlignmentStart() - samRecord2.getAlignmentStart();
-    }
-}
diff --git a/src/java/net/sf/samtools/SAMRecordFactory.java b/src/java/net/sf/samtools/SAMRecordFactory.java
deleted file mode 100644
index aeb9af2..0000000
--- a/src/java/net/sf/samtools/SAMRecordFactory.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package net.sf.samtools;
-
-/**
- * Factory interface which allows plugging in of different classes for generating instances of
- * SAMRecord and BAMRecord when reading from SAM/BAM files.
- *
- * @author Tim Fennell
- */
-public interface SAMRecordFactory {
-
-    /** Create a new SAMRecord to be filled in */
-    public SAMRecord createSAMRecord(SAMFileHeader header);
-
-    /** Create a new BAM Record. */
-    public BAMRecord createBAMRecord(final SAMFileHeader header,
-                                     final int referenceSequenceIndex,
-                                     final int alignmentStart,
-                                     final short readNameLength,
-                                     final short mappingQuality,
-                                     final int indexingBin,
-                                     final int cigarLen,
-                                     final int flags,
-                                     final int readLen,
-                                     final int mateReferenceSequenceIndex,
-                                     final int mateAlignmentStart,
-                                     final int insertSize,
-                                     final byte[] variableLengthBlock);
-}
diff --git a/src/java/net/sf/samtools/SAMRecordIterator.java b/src/java/net/sf/samtools/SAMRecordIterator.java
deleted file mode 100755
index 74492d5..0000000
--- a/src/java/net/sf/samtools/SAMRecordIterator.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import net.sf.samtools.util.CloseableIterator;
-
-/**
- * A general interface that adds functionality to a CloseableIterator of
- * SAMRecords.  Currently, this interface is implemented by iterators that
- * want to validate as they are iterating that that the records in the
- * underlying SAM/BAM file are in a particular order.
- */
-public interface SAMRecordIterator extends CloseableIterator<SAMRecord> {
-
-    /**
-     * Establishes that records returned by this iterator are expected to
-     * be in the specified sort order.  If this method has been called,
-     * then implementers must throw an IllegalStateException from next()
-     * when a record is read that violates the sort order.  This method
-     * may be called multiple times over the course of an iteration,
-     * changing the expected sort, if desired -- from the time it is called,
-     * it validates whatever sort is set, or stops validating if it
-     * is set to null or SAMFileHeader.SortOrder.unsorted.  If this method
-     * is not called, then no validation of the iterated records is done.
-     *
-     * @param sortOrder The order in which records are expected to be returned
-     * @return  This SAMRecordIterator
-     */
-    public SAMRecordIterator assertSorted(SAMFileHeader.SortOrder sortOrder);
-    
-}
diff --git a/src/java/net/sf/samtools/SAMRecordQueryNameComparator.java b/src/java/net/sf/samtools/SAMRecordQueryNameComparator.java
deleted file mode 100644
index bcf7a3e..0000000
--- a/src/java/net/sf/samtools/SAMRecordQueryNameComparator.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-/**
- * Comparator for "queryname" ordering of SAMRecords.
- */
-public class SAMRecordQueryNameComparator implements SAMRecordComparator {
-
-    public int compare(final SAMRecord samRecord1, final SAMRecord samRecord2) {
-        int cmp = fileOrderCompare(samRecord1, samRecord2);
-        if (cmp != 0) {
-            return cmp;
-        }
-
-        final boolean r1Paired = samRecord1.getReadPairedFlag();
-        final boolean r2Paired = samRecord2.getReadPairedFlag();
-
-        if (r1Paired || r2Paired) {
-            if (!r1Paired) return 1;
-            else if (!r2Paired) return -1;
-            else if (samRecord1.getFirstOfPairFlag()  && samRecord2.getSecondOfPairFlag()) return -1;
-            else if (samRecord1.getSecondOfPairFlag() && samRecord2.getFirstOfPairFlag()) return 1;
-        }
-
-        if (samRecord1.getReadNegativeStrandFlag() != samRecord2.getReadNegativeStrandFlag()) {
-            return (samRecord1.getReadNegativeStrandFlag()? 1: -1);
-        }
-        if (samRecord1.getNotPrimaryAlignmentFlag() != samRecord2.getNotPrimaryAlignmentFlag()) {
-            return samRecord2.getNotPrimaryAlignmentFlag()? -1: 1;
-        }
-        if (samRecord1.getSupplementaryAlignmentFlag() != samRecord2.getSupplementaryAlignmentFlag()) {
-            return samRecord2.getSupplementaryAlignmentFlag() ? -1 : 1;
-        }
-        final Integer hitIndex1 = samRecord1.getIntegerAttribute(SAMTag.HI.name());
-        final Integer hitIndex2 = samRecord2.getIntegerAttribute(SAMTag.HI.name());
-        if (hitIndex1 != null) {
-            if (hitIndex2 == null) return 1;
-            else {
-                cmp = hitIndex1.compareTo(hitIndex2);
-                if (cmp != 0) return cmp;
-            }
-        } else if (hitIndex2 != null) return -1;
-        return 0;
-    }
-
-    /**
-     * Less stringent compare method than the regular compare.  If the two records
-     * are equal enough that their ordering in a sorted SAM file would be arbitrary,
-     * this method returns 0.
-     *
-     * @return negative if samRecord1 < samRecord2,  0 if equal, else positive
-     */
-    public int fileOrderCompare(final SAMRecord samRecord1, final SAMRecord samRecord2) {
-        return compareReadNames(samRecord1.getReadName(), samRecord2.getReadName());
-    }
-
-    /**
-     * Encapsulate algorithm for comparing read names in queryname-sorted file, since there have been
-     * conversations about changing the behavior.
-     */
-    public static int compareReadNames(final String readName1, final String readName2) {
-        return readName1.compareTo(readName2);
-    }
-}
diff --git a/src/java/net/sf/samtools/SAMRecordSetBuilder.java b/src/java/net/sf/samtools/SAMRecordSetBuilder.java
deleted file mode 100644
index 7507239..0000000
--- a/src/java/net/sf/samtools/SAMRecordSetBuilder.java
+++ /dev/null
@@ -1,466 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import net.sf.samtools.util.CloseableIterator;
-import net.sf.samtools.util.CoordMath;
-import net.sf.samtools.util.RuntimeIOException;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Random;
-import java.util.TreeSet;
-/**
- * Factory class for creating SAMRecords for testing purposes. Various methods can be called
- * to add new SAM records (or pairs of records) to a list which can then be returned at
- * any point. The records must reference human chromosomes (excluding randoms etc.).
- *
- * Although this is a class for testing, it is in the src tree because it is included in the sam jarfile.
- *
- * @author Tim Fennell
- */
-public class SAMRecordSetBuilder implements Iterable<SAMRecord> {
-    private static final String[] chroms = {
-            "chr1", "chr2", "chr3", "chr4", "chr5", "chr6", "chr7", "chr8", "chr9", "chr10",
-            "chr11", "chr12", "chr13", "chr14", "chr15", "chr16", "chr17", "chr18", "chr19", "chr20",
-            "chr21", "chr22", "chrX", "chrY", "chrM"
-    };
-    private static final byte[] BASES = {'A','C','G','T'};
-    private static final String READ_GROUP_ID = "1";
-    private static final String SAMPLE = "FREE_SAMPLE";
-    private final Random random = new Random();
-
-    private final SAMFileHeader header;
-    private final Collection<SAMRecord> records;
-
-    private int readLength = 36 ;
-
-    private SAMProgramRecord programRecord = null;
-    private SAMReadGroupRecord readGroup = null;
-
-    private static final int DEFAULT_CHROMOSOME_LENGTH = 100000000;
-
-    /**
-     * Constructs a new SAMRecordSetBuilder with all the data needed to keep the records
-     * sorted in coordinate order.
-     */
-    public SAMRecordSetBuilder() {
-        this(true, SAMFileHeader.SortOrder.coordinate);
-    }
-
-    /**
-     * Construct a new SAMRecordSetBuilder.
-     * @para
-     * m sortForMe If true, keep the records created in sorted order.
-     * @param sortOrder If sortForMe, defines the sort order.
-     */
-    public SAMRecordSetBuilder(final boolean sortForMe, final SAMFileHeader.SortOrder sortOrder) {
-        this(sortForMe, sortOrder, true) ;
-    }
-
-    public SAMRecordSetBuilder(final boolean sortForMe, final SAMFileHeader.SortOrder sortOrder, final boolean addReadGroup) {
-        this(sortForMe, sortOrder, addReadGroup, DEFAULT_CHROMOSOME_LENGTH);
-    }
-
-    public SAMRecordSetBuilder(final boolean sortForMe, final SAMFileHeader.SortOrder sortOrder, final boolean addReadGroup, final int defaultChromosomeLength) {
-        final List<SAMSequenceRecord> sequences = new ArrayList<SAMSequenceRecord>();
-        for (final String chrom : chroms) {
-            final SAMSequenceRecord sequenceRecord = new SAMSequenceRecord(chrom, defaultChromosomeLength);
-            sequences.add(sequenceRecord);
-        }
-
-        this.header = new SAMFileHeader();
-        this.header.setSequenceDictionary(new SAMSequenceDictionary(sequences));
-        this.header.setSortOrder(sortOrder);
-        if (sortForMe) {
-            final SAMRecordComparator comparator;
-            if (sortOrder == SAMFileHeader.SortOrder.queryname) {
-                comparator = new SAMRecordQueryNameComparator();
-            } else {
-                comparator = new SAMRecordCoordinateComparator();
-            }
-            this.records = new TreeSet<SAMRecord>(comparator);
-        } else {
-            this.records = new ArrayList<SAMRecord>();
-        }
-
-        if (addReadGroup) {
-            final SAMReadGroupRecord readGroupRecord = new SAMReadGroupRecord(READ_GROUP_ID);
-            readGroupRecord.setSample(SAMPLE);
-            readGroupRecord.setPlatform("ILLUMINA");
-            final List<SAMReadGroupRecord> readGroups = new ArrayList<SAMReadGroupRecord>();
-            readGroups.add(readGroupRecord);
-            this.header.setReadGroups(readGroups);
-        }
-    }
-
-    /**
-     * Set the seed of the random number generator for cases in which repeatable result is desired.
-     * @param seed
-     */
-    public void setRandomSeed(final long seed) {
-        random.setSeed(seed);
-    }
-
-    /**
-     * Adds the given program record to the header, and assigns the PG tag to any SAMRecords
-     * created after it has been added. May be called multiple times in order to assign different
-     * PG IDs to different SAMRecords.  programRecord may be null to stop assignment of PG tag.
-     * It is up to the caller to ensure that program record IDs do not collide.
-     */
-    public void setProgramRecord(final SAMProgramRecord programRecord) {
-        this.programRecord = programRecord;
-        if (programRecord != null) {
-            this.header.addProgramRecord(programRecord);
-        }
-    }
-
-    public void setReadGroup(final SAMReadGroupRecord readGroup) {
-        this.readGroup = readGroup;
-        if (readGroup != null) {
-            this.header.addReadGroup(readGroup);
-        }
-    }
-
-    /** Returns the accumulated list of sam records. */
-    public Collection<SAMRecord> getRecords() { return this.records; }
-
-    /** Returns a CloseableIterator over the collection of SAMRecords. */
-    public CloseableIterator<SAMRecord> iterator() {
-        return new CloseableIterator<SAMRecord>() {
-            private final Iterator<SAMRecord> iterator = records.iterator();
-            public void close() { /** Do nothing. */  }
-            public boolean hasNext() { return this.iterator.hasNext(); }
-            public SAMRecord next() { return this.iterator.next(); }
-            public void remove() { this.iterator.remove(); }
-        };
-    }
-
-    /**
-     * Adds a fragment record (mapped or unmapped) to the set using the provided contig start and optionally the strand,
-     * cigar string, quality string or default quality score.  This does not modify the flag field, which should be updated
-     * if desired before adding the return to the list of records.
-     */
-    private SAMRecord createReadNoFlag(final String name, final int contig, final int start, final boolean negativeStrand,
-                                       final boolean recordUnmapped, final String cigar, final String qualityString,
-                                       final int defaultQuality) throws SAMException {
-        final SAMRecord rec = new SAMRecord(this.header);
-        rec.setReadName(name);
-        if (chroms.length <= contig) {
-            throw new SAMException("Contig too big [" + chroms.length + " < " + contig);
-        }
-        if (0 <= contig) {
-            rec.setReferenceIndex(contig);
-            rec.setReferenceName(chroms[contig]);
-            rec.setAlignmentStart(start);
-        }
-        if (!recordUnmapped) {
-            rec.setReadNegativeStrandFlag(negativeStrand);
-            if (null != cigar) {
-                rec.setCigarString(cigar);
-                readLength = rec.getCigar().getReadLength();
-            } else if (!rec.getReadUnmappedFlag()) {
-                rec.setCigarString(readLength + "M");
-            }
-            rec.setMappingQuality(255);
-        } else {
-            rec.setReadUnmappedFlag(true);
-        }
-        rec.setAttribute(SAMTag.RG.name(), READ_GROUP_ID);
-
-        if (programRecord != null) {
-            rec.setAttribute(SAMTag.PG.name(), programRecord.getProgramGroupId());
-        }
-
-        if (readGroup != null) {
-            rec.setAttribute(SAMTag.RG.name(), readGroup.getReadGroupId());
-        }
-
-        fillInBasesAndQualities(rec, qualityString, defaultQuality);
-
-        return rec;
-    }
-
-    /**
-     * Adds a skeletal fragment (non-PE) record to the set using the provided
-     * contig start and strand information.
-     */
-    public void addFrag(final String name, final int contig, final int start, final boolean negativeStrand) {
-        addFrag(name, contig, start, negativeStrand, false, null, null, -1);
-    }
-
-    /**
-     * Adds a fragment record (mapped or unmapped) to the set using the provided contig start and optionally the strand,
-     * cigar string, quality string or default quality score.
-     */
-    public SAMRecord addFrag(final String name, final int contig, final int start, final boolean negativeStrand,
-                             final boolean recordUnmapped, final String cigar, final String qualityString,
-                             final int defaultQuality) throws SAMException {
-        final SAMRecord rec = createReadNoFlag(name, contig, start, negativeStrand, recordUnmapped, cigar, qualityString, defaultQuality);
-        this.records.add(rec);
-        return rec;
-    }
-
-    /**
-     * Fills in the bases and qualities for the given record. Quality data is randomly generated if the defaultQuality
-     * is set to -1. Otherwise all qualities will be set to defaultQuality. If a quality string is provided that string
-     * will be used instead of the defaultQuality.
-     */
-    private void fillInBasesAndQualities(final SAMRecord rec, final String qualityString, final int defaultQuality) {
-
-        if (null == qualityString) {
-            fillInBasesAndQualities(rec, defaultQuality);
-        } else {
-            fillInBases(rec);
-            rec.setBaseQualityString(qualityString);
-        }
-    }
-
-    /**
-     * Randomly fills in the bases for the given record.
-     */
-    private void fillInBases(final SAMRecord rec){
-        final int length = this.readLength;
-        final byte[] bases = new byte[length];
-
-        for (int i = 0; i < length; ++i) {
-            bases[i] = BASES[this.random.nextInt(BASES.length)];
-        }
-
-        rec.setReadBases(bases);
-    }
-
-    /**
-     * Adds an unmapped fragment read to the builder.
-     */
-    public void addUnmappedFragment(final String name) {
-        addFrag(name, -1, -1, false, true, null, null, -1);
-    }
-
-
-    /**
-     * Adds a skeletal pair of records to the set using the provided
-     * contig starts.  The pair is assumed to be a well
-     * formed pair sitting on a single contig.
-     */
-    public void addPair(final String name, final int contig, final int start1, final int start2) {
-        final SAMRecord end1 = new SAMRecord(this.header);
-        final SAMRecord end2 = new SAMRecord(this.header);
-        final boolean end1IsFirstOfPair = this.random.nextBoolean();
-
-        end1.setReadName(name);
-        end1.setReferenceIndex(contig);
-        end1.setAlignmentStart(start1);
-        end1.setReadNegativeStrandFlag(false);
-        end1.setCigarString(readLength + "M");
-        end1.setMappingQuality(255);
-        end1.setReadPairedFlag(true);
-        end1.setProperPairFlag(true);
-        end1.setMateReferenceIndex(contig);
-        end1.setAttribute(SAMTag.MC.name(), readLength + "M");
-        end1.setMateAlignmentStart(start2);
-        end1.setMateNegativeStrandFlag(true);
-        end1.setFirstOfPairFlag(end1IsFirstOfPair);
-        end1.setSecondOfPairFlag(!end1IsFirstOfPair);
-        end1.setInferredInsertSize((int) CoordMath.getLength(start1, CoordMath.getEnd(start2, this.readLength)));
-        end1.setAttribute(SAMTag.RG.name(), READ_GROUP_ID);
-        if (programRecord != null) {
-            end1.setAttribute(SAMTag.PG.name(), programRecord.getProgramGroupId());
-        }
-        if (readGroup != null) {
-            end1.setAttribute(SAMTag.RG.name(), readGroup.getReadGroupId());
-        }
-        fillInBasesAndQualities(end1);
-
-        end2.setReadName(name);
-        end2.setReferenceIndex(contig);
-        end2.setAlignmentStart(start2);
-        end2.setReadNegativeStrandFlag(true);
-        end2.setCigarString(readLength + "M");
-        end2.setMappingQuality(255);
-        end2.setReadPairedFlag(true);
-        end2.setProperPairFlag(true);
-        end2.setMateReferenceIndex(contig);
-        end2.setAttribute(SAMTag.MC.name(), readLength + "M");
-        end2.setMateAlignmentStart(start1);
-        end2.setMateNegativeStrandFlag(false);
-        end2.setFirstOfPairFlag(!end1IsFirstOfPair);
-        end2.setSecondOfPairFlag(end1IsFirstOfPair);
-        end2.setInferredInsertSize(end1.getInferredInsertSize());
-        end2.setAttribute(SAMTag.RG.name(), READ_GROUP_ID);
-        if (programRecord != null) {
-            end2.setAttribute(SAMTag.PG.name(), programRecord.getProgramGroupId());
-        }
-        if (readGroup != null) {
-            end2.setAttribute(SAMTag.RG.name(), readGroup.getReadGroupId());
-        }
-        fillInBasesAndQualities(end2);
-
-        this.records.add(end1);
-        this.records.add(end2);
-    }
-
-    /**
-     * Adds a pair of records (mapped or unmmapped) to the set using the provided contig starts.
-     * The pair is assumed to be a well formed pair sitting on a single contig.
-     */
-    public List<SAMRecord> addPair(final String name, final int contig, final int start1, final int start2,
-                                   final boolean record1Unmapped, final boolean record2Unmapped, final String cigar1,
-                                   final String cigar2, final boolean strand1, final boolean strand2, final int defaultQuality) {
-        final List<SAMRecord> recordsList = new LinkedList<SAMRecord>();
-
-        final SAMRecord end1 = createReadNoFlag(name, contig, start1, strand1, record1Unmapped, cigar1, null, defaultQuality);
-        final SAMRecord end2 = createReadNoFlag(name, contig, start2, strand2, record2Unmapped, cigar2, null, defaultQuality);
-
-        end1.setReadPairedFlag(true);
-        end1.setFirstOfPairFlag(true);
-
-        if (!record1Unmapped && !record2Unmapped) {
-            end1.setProperPairFlag(true);
-            end2.setProperPairFlag(true);
-        }
-        end2.setReadPairedFlag(true);
-        end2.setSecondOfPairFlag(true);
-
-        // set mate info
-        SamPairUtil.setMateInfo(end1, end2, header, true);
-
-        recordsList.add(end1);
-        recordsList.add(end2);
-
-        records.add(end1);
-        records.add(end2);
-
-        return recordsList;
-    }
-
-    /**
-     * Adds a pair with both ends unmapped to the builder.
-     */
-    public void addUnmappedPair(final String name) {
-        final SAMRecord end1 = new SAMRecord(this.header);
-        final SAMRecord end2 = new SAMRecord(this.header);
-        final boolean end1IsFirstOfPair = this.random.nextBoolean();
-
-        end1.setReadName(name);
-        end1.setReadPairedFlag(false);
-        end1.setReadUnmappedFlag(true);
-        end1.setAttribute(SAMTag.MC.name(), null);
-        end1.setProperPairFlag(false);
-        end1.setFirstOfPairFlag(end1IsFirstOfPair);
-        end1.setSecondOfPairFlag(!end1IsFirstOfPair);
-        end1.setAttribute(SAMTag.RG.name(), READ_GROUP_ID);
-        if (programRecord != null) {
-            end1.setAttribute(SAMTag.PG.name(), programRecord.getProgramGroupId());
-        }
-        fillInBasesAndQualities(end1);
-
-        end2.setReadName(name);
-        end2.setReadPairedFlag(false);
-        end2.setReadUnmappedFlag(true);
-        end2.setAttribute(SAMTag.MC.name(), null);
-        end2.setProperPairFlag(false);
-        end2.setFirstOfPairFlag(!end1IsFirstOfPair);
-        end2.setSecondOfPairFlag(end1IsFirstOfPair);
-        end2.setAttribute(SAMTag.RG.name(), READ_GROUP_ID);
-        if (programRecord != null) {
-            end2.setAttribute(SAMTag.PG.name(), programRecord.getProgramGroupId());
-        }
-        fillInBasesAndQualities(end2);
-
-        this.records.add(end1);
-        this.records.add(end2);
-    }
-
-    /**
-     * Fills in bases and qualities with randomly generated data.
-     * Relies on the alignment start and end having been set to get read length.
-     */
-    private void fillInBasesAndQualities(final SAMRecord rec) {
-        fillInBasesAndQualities(rec, -1);
-    }
-
-    /**
-     * Fills in bases and qualities with a set default quality. If the defaultQuality is set to -1 quality scores will
-     * be randomly generated.
-     * Relies on the alignment start and end having been set to get read length.
-     */
-    private void fillInBasesAndQualities(final SAMRecord rec, final int defaultQuality) {
-        final int length = this.readLength;
-        final byte[] quals = new byte[length];
-
-        if (-1 != defaultQuality) {
-            Arrays.fill(quals, (byte) defaultQuality);
-        } else {
-            for (int i = 0; i < length; ++i) {
-                quals[i] = (byte) this.random.nextInt(50);
-            }
-        }
-        rec.setBaseQualities(quals);
-        fillInBases(rec);
-    }
-
-    /**
-     * Creates samFileReader from the data in instance of this class
-     * @return SAMFileReader
-     */
-    public SAMFileReader getSamReader() {
-
-        final File tempFile;
-
-        try {
-            tempFile = File.createTempFile("temp", ".sam");
-        } catch (final IOException e) {
-            throw new RuntimeIOException("problems creating tempfile", e);
-        }
-
-
-
-        this.header.setAttribute("VN", "1.0");
-        final SAMFileWriter w = new SAMFileWriterFactory().makeBAMWriter(this.header, true, tempFile);
-        for (final SAMRecord r:this.getRecords()){
-            w.addAlignment(r);
-        }
-
-
-        w.close();
-
-        final SAMFileReader reader = new SAMFileReader(tempFile);
-        tempFile.deleteOnExit();
-
-        return reader;
-    }
-
-    public SAMFileHeader getHeader() {
-        return header;
-    }
-    public void setReadLength(final int readLength) { this.readLength = readLength; }
-
-}
diff --git a/src/java/net/sf/samtools/SAMRecordUtil.java b/src/java/net/sf/samtools/SAMRecordUtil.java
deleted file mode 100644
index 69b5972..0000000
--- a/src/java/net/sf/samtools/SAMRecordUtil.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import net.sf.samtools.util.StringUtil;
-import net.sf.samtools.util.SequenceUtil;
-
-/**
- * @author alecw at broadinstitute.org
- */
-public class SAMRecordUtil {
-
-    /** List of String tags that must be reversed if present when a SAMRecord is reverseComplemented */
-    private static final short[] STRING_TAGS_TO_REVERSE = {
-            SAMTagUtil.getSingleton().U2,
-            SAMTagUtil.getSingleton().OQ
-    };
-
-    /**
-     * Reverse-complement all known sequence and base quality attributes of the SAMRecord.
-     */
-    public static void reverseComplement(final SAMRecord rec) {
-        final byte[] readBases = rec.getReadBases();
-        SequenceUtil.reverseComplement(readBases);
-        rec.setReadBases(readBases);
-        final byte qualities[] = rec.getBaseQualities();
-        reverseArray(qualities);
-        rec.setBaseQualities(qualities);
-        final byte[] sqTagValue = (byte[])rec.getAttribute(SAMTagUtil.getSingleton().SQ);
-        if (sqTagValue != null) {
-            SQTagUtil.reverseComplementSqArray(sqTagValue);
-            rec.setAttribute(SAMTagUtil.getSingleton().SQ, sqTagValue);
-        }
-        final String e2TagValue = (String)rec.getAttribute(SAMTagUtil.getSingleton().E2);
-        if (e2TagValue != null) {
-            final byte[] secondaryBases = StringUtil.stringToBytes(e2TagValue);
-            SequenceUtil.reverseComplement(secondaryBases);
-            rec.setAttribute(SAMTagUtil.getSingleton().E2, StringUtil.bytesToString(secondaryBases));
-        }
-        for (final short stringTag : STRING_TAGS_TO_REVERSE) {
-            final String value = (String)rec.getAttribute(stringTag);
-            if (value != null) {
-                rec.setAttribute(stringTag, StringUtil.reverseString(value));
-            }
-        }
-    }
-
-    /**
-     * Reverse the given array in place.
-     */
-    public static void reverseArray(final byte[] array) {
-        final int lastIndex = array.length - 1;
-        int i, j;
-        for (i=0, j=lastIndex; i<j; ++i, --j) {
-            final byte tmp = array[i];
-            array[i] = array[j];
-            array[j] = tmp;
-        }
-    }
-}
diff --git a/src/java/net/sf/samtools/SAMSequenceDictionary.java b/src/java/net/sf/samtools/SAMSequenceDictionary.java
deleted file mode 100644
index 49f3f61..0000000
--- a/src/java/net/sf/samtools/SAMSequenceDictionary.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import java.util.*;
-
-/**
- * Collection of SAMSequenceRecords.
- */
-public class SAMSequenceDictionary {
-    private List<SAMSequenceRecord> mSequences = new ArrayList<SAMSequenceRecord>();
-    private final Map<String, SAMSequenceRecord> mSequenceMap = new HashMap<String, SAMSequenceRecord>();
-
-    public SAMSequenceDictionary() {
-    }
-
-    public SAMSequenceDictionary(final List<SAMSequenceRecord> list) {
-        this();
-        setSequences(list);
-    }
-
-    public List<SAMSequenceRecord> getSequences() {
-        return Collections.unmodifiableList(mSequences);
-    }
-
-    public SAMSequenceRecord getSequence(final String name) {
-        return mSequenceMap.get(name);
-    }
-
-    /**
-     * Replaces the existing list of SAMSequenceRecords with the given list.
-     *
-     * @param list This value is used directly, rather than being copied.
-     */
-    public void setSequences(final List<SAMSequenceRecord> list) {
-        mSequences = list;
-        mSequenceMap.clear();
-        int index = 0;
-        for (final SAMSequenceRecord record : list) {
-            record.setSequenceIndex(index++);
-            if (mSequenceMap.put(record.getSequenceName(), record) != null) {
-                throw new IllegalArgumentException("Cannot add sequence that already exists in SAMSequenceDictionary: " +
-                        record.getSequenceName());
-            }
-        }
-    }
-
-    public void addSequence(final SAMSequenceRecord sequenceRecord) {
-        if (mSequenceMap.containsKey(sequenceRecord.getSequenceName())) {
-            throw new IllegalArgumentException("Cannot add sequence that already exists in SAMSequenceDictionary: " +
-                    sequenceRecord.getSequenceName());
-        }
-        sequenceRecord.setSequenceIndex(mSequences.size());
-        mSequences.add(sequenceRecord);
-        mSequenceMap.put(sequenceRecord.getSequenceName(), sequenceRecord);
-    }
-
-    /**
-     * @return The SAMSequenceRecord with the given index, or null if index is out of range.
-     */
-    public SAMSequenceRecord getSequence(final int sequenceIndex) {
-        if (sequenceIndex < 0 || sequenceIndex >= mSequences.size()) {
-            return null;
-        }
-        return mSequences.get(sequenceIndex);
-    }
-
-    /**
-     * @return The index for the given sequence name, or -1 if the name is not found.
-     */
-    public int getSequenceIndex(final String sequenceName) {
-        final SAMSequenceRecord record = mSequenceMap.get(sequenceName);
-        if (record == null) {
-            return -1;
-        }
-        return record.getSequenceIndex();
-    }
-
-    public int size() {
-        return mSequences.size();
-    }
-
-    /**
-     * @return The sum of the lengths of the sequences in this dictionary
-     */
-    public long getReferenceLength() {
-        long len = 0L;
-        for (final SAMSequenceRecord seq : getSequences()) {
-            len += seq.getSequenceLength();
-        }
-        return len;
-    }
-
-    public boolean isEmpty() {
-        return mSequences.isEmpty();
-    }
-
-    private static String DICT_MISMATCH_TEMPLATE = "SAM dictionaries are not the same: %s.";
-    /**
-     * Non-comprehensive {@link #equals(Object)}-assertion: instead of calling {@link SAMSequenceRecord#equals(Object)} on constituent
-     * {@link SAMSequenceRecord}s in this dictionary against its pair in the target dictionary, in order,  call 
-     * {@link SAMSequenceRecord#isSameSequence(SAMSequenceRecord)}.
-     *
-     * @throws AssertionError When the dictionaries are not the same, with some human-readable information as to why
-     */
-    public void assertSameDictionary(final SAMSequenceDictionary that) {
-        if (this == that) return;
-        
-        final Iterator<SAMSequenceRecord> thatSequences = that.mSequences.iterator();
-        for (final SAMSequenceRecord thisSequence : mSequences) {
-            if (!thatSequences.hasNext())
-                throw new AssertionError(String.format(DICT_MISMATCH_TEMPLATE, thisSequence + " is present in only one dictionary"));
-            else {
-                final SAMSequenceRecord thatSequence = thatSequences.next();
-                if(!thatSequence.isSameSequence(thisSequence))
-                    throw new AssertionError(
-                            String.format(DICT_MISMATCH_TEMPLATE, thatSequence + " was found when " + thisSequence + " was expected")
-                    );
-            }
-        }
-        if (thatSequences.hasNext())
-            throw new AssertionError(String.format(DICT_MISMATCH_TEMPLATE, thatSequences.next() + " is present in only one dictionary"));
-    }
-    
-    @Override
-    public boolean equals(Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-
-        SAMSequenceDictionary that = (SAMSequenceDictionary) o;
-
-        if (!mSequences.equals(that.mSequences)) return false;
-
-        return true;
-    }
-
-    @Override
-    public int hashCode() {
-        return mSequences.hashCode();
-    }
-}
\ No newline at end of file
diff --git a/src/java/net/sf/samtools/SAMSequenceRecord.java b/src/java/net/sf/samtools/SAMSequenceRecord.java
deleted file mode 100644
index f49fd31..0000000
--- a/src/java/net/sf/samtools/SAMSequenceRecord.java
+++ /dev/null
@@ -1,225 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-
-import java.util.*;
-import java.math.BigInteger;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.regex.Pattern;
-
-/**
- * Header information about a reference sequence.  Corresponds to @SQ header record in SAM text header.
- */
-public class SAMSequenceRecord extends AbstractSAMHeaderRecord implements Cloneable
-{
-    private String mSequenceName = null; // Value must be interned() if it's ever set/modified
-    private int mSequenceIndex = -1;
-    private int mSequenceLength = 0;
-    public static final String SEQUENCE_NAME_TAG = "SN";
-    public static final String SEQUENCE_LENGTH_TAG = "LN";
-    public static final String MD5_TAG = "M5";
-    public static final String ASSEMBLY_TAG = "AS";
-    public static final String URI_TAG = "UR";
-    public static final String SPECIES_TAG = "SP";
-
-    /** If one sequence has this length, and another sequence had a different length, isSameSequence will
-     * not complain that they are different sequences. */
-    public static final int UNKNOWN_SEQUENCE_LENGTH = 0;
-
-
-    /**
-     * This is not a valid sequence name, because it is reserved in the MRNM field of SAM text format
-     * to mean "same reference as RNAME field."
-     */
-    public static final String RESERVED_MRNM_SEQUENCE_NAME = "=";
-
-    /**
-     * The standard tags are stored in text header without type information, because the type of these tags is known.
-     */
-    public static final Set<String> STANDARD_TAGS =
-            new HashSet<String>(Arrays.asList(SEQUENCE_NAME_TAG, SEQUENCE_LENGTH_TAG, ASSEMBLY_TAG, MD5_TAG, URI_TAG,
-                                                SPECIES_TAG));
-
-    // Split on any whitespace
-    private static Pattern SEQUENCE_NAME_SPLITTER = Pattern.compile("\\s");
-    // These are the chars matched by \\s.
-    private static char[] WHITESPACE_CHARS = {' ', '\t', '\n', '\013', '\f', '\r'}; // \013 is vertical tab
-
-    /**
-     * @deprecated Use SAMSequenceRecord(final String name, final int sequenceLength) instead.
-     * sequenceLength is required for the object to be considered valid.
-     */
-    public SAMSequenceRecord(final String name) {
-        this(name, UNKNOWN_SEQUENCE_LENGTH);
-    }
-
-    public SAMSequenceRecord(final String name, final int sequenceLength) {
-        if (name != null) {
-            if (SEQUENCE_NAME_SPLITTER.matcher(name).find()) {
-                throw new SAMException("Sequence name contains invalid character: " + name);
-            }
-            validateSequenceName(name);
-            mSequenceName = name.intern();
-        }
-        mSequenceLength = sequenceLength;
-    }
-
-    public String getSequenceName() { return mSequenceName; }
-    // We don't think this method should ever really be used, but we left it here
-    // in case we forget and go to implement it later!
-    private void setSequenceName(final String name) {
-        if (name != null) {
-            mSequenceName = name.intern();
-        }
-        else {
-            mSequenceName = null;
-        }
-    }
-    
-    public int getSequenceLength() { return mSequenceLength; }
-    public void setSequenceLength(final int value) { mSequenceLength = value; }
-
-    public String getAssembly() { return (String) getAttribute("AS"); }
-    public void setAssembly(final String value) { setAttribute("AS", value); }
-
-    public String getSpecies() { return (String) getAttribute("SP"); }
-    public void setSpecies(final String value) { setAttribute("SP", value); }
-
-
-    /**
-     * @return Index of this record in the sequence dictionary it lives in. 
-     */
-    public int getSequenceIndex() { return mSequenceIndex; }
-
-    // Private state used only by SAM implementation.
-    public void setSequenceIndex(final int value) { mSequenceIndex = value; }
-
-    /**
-     * Looser comparison than equals().  We look only at sequence index, sequence length, and MD5 tag value
-     * (or sequence names, if there is no MD5 tag in either record.
-     */
-    public boolean isSameSequence(final SAMSequenceRecord that) {
-        if (this == that) return true;
-        if (that == null) return false;
-
-        if (mSequenceIndex != that.mSequenceIndex) return false;
-        // PIC-439.  Allow undefined length.
-        if (mSequenceLength != UNKNOWN_SEQUENCE_LENGTH && that.mSequenceLength != UNKNOWN_SEQUENCE_LENGTH && mSequenceLength != that.mSequenceLength)
-            return false;
-        if (this.getAttribute(SAMSequenceRecord.MD5_TAG) != null && that.getAttribute(SAMSequenceRecord.MD5_TAG) != null) {
-            final BigInteger thisMd5 = new BigInteger((String)this.getAttribute(SAMSequenceRecord.MD5_TAG), 16);
-            final BigInteger thatMd5 = new BigInteger((String)that.getAttribute(SAMSequenceRecord.MD5_TAG), 16);
-            if (!thisMd5.equals(thatMd5)) {
-                return false;
-            }
-        }
-        else {
-            if (mSequenceName != that.mSequenceName) return false; // Compare using == since we intern() the Strings
-        }
-
-        return true;
-    }
-
-    private URI makeURI(final String s) throws URISyntaxException {
-        URI uri = new URI(s);
-        if (uri.getScheme() == null) {
-            uri = new URI("file", uri.getUserInfo(), uri.getHost(), uri.getPort(), uri.getPath(), uri.getQuery(), uri.getFragment());
-        }
-        return uri;
-    }
-
-    @Override
-    public boolean equals(final Object o) {
-        if (this == o) return true;
-        if (!(o instanceof SAMSequenceRecord)) return false;
-
-        final SAMSequenceRecord that = (SAMSequenceRecord) o;
-
-        if (mSequenceIndex != that.mSequenceIndex) return false;
-        if (mSequenceLength != that.mSequenceLength) return false;
-        if (!attributesEqual(that)) return false;
-        if (mSequenceName != that.mSequenceName) return false; // Compare using == since we intern() the name
-
-        return true;
-    }
-
-    @Override
-    public int hashCode() {
-        return mSequenceName != null ? mSequenceName.hashCode() : 0;
-    }
-
-    Set<String> getStandardTags() {
-        return STANDARD_TAGS;
-    }
-
-    public final SAMSequenceRecord clone() {
-        final SAMSequenceRecord ret = new SAMSequenceRecord(this.mSequenceName, this.mSequenceLength);
-        ret.mSequenceIndex = this.mSequenceIndex;
-        for (final Map.Entry<String, String> entry : this.getAttributes()) {
-            ret.setAttribute(entry.getKey(), entry.getValue());
-        }
-        return ret;
-    }
-
-    /**
-     * Truncate sequence name at first whitespace.
-     */
-    public static String truncateSequenceName(final String sequenceName) {
-        /*
-         * Instead of using regex split, do it manually for better performance.
-        return SEQUENCE_NAME_SPLITTER.split(sequenceName, 2)[0];
-        */
-        int truncateAt = sequenceName.length();
-        for (final char c : WHITESPACE_CHARS) {
-            int index = sequenceName.indexOf(c);
-            if (index != -1 && index < truncateAt) {
-                truncateAt = index;
-            }
-        }
-        return sequenceName.substring(0, truncateAt);
-    }
-
-    /**
-     * Throw an exception if the sequence name is not valid.
-     */
-    public static void validateSequenceName(final String name) {
-        if (RESERVED_MRNM_SEQUENCE_NAME.equals(name)) {
-            throw new SAMException("'" + RESERVED_MRNM_SEQUENCE_NAME + "' is not a valid sequence name");
-        }
-    }
-
-    @Override
-    public String toString() {
-        return String.format(
-                "SAMSequenceRecord(name=%s,length=%s,dict_index=%s,assembly=%s)", 
-                getSequenceName(), 
-                getSequenceLength(), 
-                getSequenceIndex(),
-                getAssembly()
-        );
-    }
-}
-
diff --git a/src/java/net/sf/samtools/SAMSortOrderChecker.java b/src/java/net/sf/samtools/SAMSortOrderChecker.java
deleted file mode 100644
index 403e48f..0000000
--- a/src/java/net/sf/samtools/SAMSortOrderChecker.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-/**
- * Encapsulates simple check for SAMRecord order.
- * @author alecw at broadinstitute.org
- */
-public class SAMSortOrderChecker {
-    private final SAMFileHeader.SortOrder sortOrder;
-    private SAMRecord prev;
-    private final SAMRecordComparator comparator;
-
-    public SAMSortOrderChecker(final SAMFileHeader.SortOrder sortOrder) {
-        this.sortOrder = sortOrder;
-        switch (sortOrder) {
-            case coordinate:
-                comparator = new SAMRecordCoordinateComparator();
-                break;
-            case queryname:
-                comparator = new SAMRecordQueryNameComparator();
-                break;
-            case unsorted:
-            default:
-                comparator = null;
-                break;
-        }
-    }
-
-    /**
-     * Check if given SAMRecord violates sort order relative to previous SAMRecord.
-     * @return True if sort order is unsorted, if this is the first record, or if previous <= rec.
-     */
-    public boolean isSorted(final SAMRecord rec) {
-        if (comparator == null) {
-            return true;
-        }
-        boolean ret = true;
-        if (prev != null) {
-            ret = comparator.fileOrderCompare(prev, rec) <= 0;
-        }
-        prev = rec;
-        return ret;
-    }
-
-    public SAMRecord getPreviousRecord() {
-        return prev;
-    }
-
-    /**
-     * Return the sort key used for the given sort order.  Useful in error messages.
-     */
-    public String getSortKey(final SAMRecord rec) {
-        switch (sortOrder) {
-
-            case coordinate:
-                return rec.getReferenceName() + ":" + rec.getAlignmentStart();
-            case queryname:
-                return rec.getReadName();
-            case unsorted:
-            default:
-                return null;
-        }
-    }
-}
diff --git a/src/java/net/sf/samtools/SAMTag.java b/src/java/net/sf/samtools/SAMTag.java
deleted file mode 100644
index d5eeef5..0000000
--- a/src/java/net/sf/samtools/SAMTag.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-/**
- * The standard tags for a SAM record that are defined in the SAM spec.
- */
-public enum SAMTag {
-    RG, LB, PU, PG, AS, SQ, MQ, NM, H0, H1, H2, UQ, PQ, NH, IH, HI, MD, CS, CQ, CM, R2, Q2, S2, CC, CP, SM, AM, MF,
-    E2, U2, OQ, FZ, SA, MC, BC
-}
diff --git a/src/java/net/sf/samtools/SAMTagUtil.java b/src/java/net/sf/samtools/SAMTagUtil.java
deleted file mode 100644
index ba108fc..0000000
--- a/src/java/net/sf/samtools/SAMTagUtil.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import net.sf.samtools.util.StringUtil;
-
-/**
- * Facility for converting between String and short representation of a SAM tag.  short representation
- * is used by SAM JDK internally and is much more efficient.  Callers are encouraged to obtain the short
- * value for a tag of interest once, and then use the SAMRecord attribute API that takes shorts rather than
- * Strings.
- *
- * @author alecw at broadinstitute.org
- */
-public class SAMTagUtil {
-
-    // Standard tags pre-computed for convenience
-    public final short RG = makeBinaryTag(SAMTag.RG.name());
-    public final short LB = makeBinaryTag(SAMTag.LB.name());
-    public final short PU = makeBinaryTag(SAMTag.PU.name());
-    public final short PG = makeBinaryTag(SAMTag.PG.name());
-    public final short AS = makeBinaryTag(SAMTag.AS.name());
-    public final short SQ = makeBinaryTag(SAMTag.SQ.name());
-    public final short MQ = makeBinaryTag(SAMTag.MQ.name());
-    public final short NM = makeBinaryTag(SAMTag.NM.name());
-    public final short H0 = makeBinaryTag(SAMTag.H0.name());
-    public final short H1 = makeBinaryTag(SAMTag.H1.name());
-    public final short H2 = makeBinaryTag(SAMTag.H2.name());
-    public final short UQ = makeBinaryTag(SAMTag.UQ.name());
-    public final short PQ = makeBinaryTag(SAMTag.PQ.name());
-    public final short NH = makeBinaryTag(SAMTag.NH.name());
-    public final short IH = makeBinaryTag(SAMTag.IH.name());
-    public final short HI = makeBinaryTag(SAMTag.HI.name());
-    public final short MD = makeBinaryTag(SAMTag.MD.name());
-    public final short CS = makeBinaryTag(SAMTag.CS.name());
-    public final short CQ = makeBinaryTag(SAMTag.CQ.name());
-    public final short CM = makeBinaryTag(SAMTag.CM.name());
-    public final short R2 = makeBinaryTag(SAMTag.R2.name());
-    public final short Q2 = makeBinaryTag(SAMTag.Q2.name());
-    public final short S2 = makeBinaryTag(SAMTag.S2.name());
-    public final short CC = makeBinaryTag(SAMTag.CC.name());
-    public final short CP = makeBinaryTag(SAMTag.CP.name());
-    public final short SM = makeBinaryTag(SAMTag.SM.name());
-    public final short AM = makeBinaryTag(SAMTag.AM.name());
-    public final short MF = makeBinaryTag(SAMTag.MF.name());
-    public final short E2 = makeBinaryTag(SAMTag.E2.name());
-    public final short U2 = makeBinaryTag(SAMTag.U2.name());
-    public final short OQ = makeBinaryTag(SAMTag.OQ.name());
-    public final short FZ = makeBinaryTag(SAMTag.FZ.name());
-    public final short SA = makeBinaryTag(SAMTag.SA.name());
-    public final short MC = makeBinaryTag(SAMTag.MC.name());
-
-    private static SAMTagUtil singleton;
-
-    // Cache of already-converted tags.  Should speed up SAM text generation.
-    // Not synchronized because race condition is not a problem.
-    private final String[] stringTags = new String[Short.MAX_VALUE];
-
-    /**
-     * Despite the fact that this class has state, it should be thread-safe because the cache
-     * gets filled with the same values by any thread.
-     */
-    public static SAMTagUtil getSingleton() {
-        if (singleton == null) {
-            singleton = new SAMTagUtil();
-        }
-        return singleton;
-    }
-
-
-    /**
-     * Convert from String representation of tag name to short representation.
-     *
-     * @param tag 2-character String representation of a tag name.
-     * @return Tag name packed as 2 ASCII bytes in a short.
-     */
-    public short makeBinaryTag(final String tag) {
-        if (tag.length() != 2) {
-            throw new IllegalArgumentException("String tag does not have length() == 2: " + tag);
-        }
-        return (short)(tag.charAt(1) << 8 | tag.charAt(0));
-    }
-
-    /**
-     * Convert from short representation of tag name to String representation.
-     *
-     * @param tag Tag name packed as 2 ASCII bytes in a short.
-     * @return 2-character String representation of a tag name.
-     */
-    public String makeStringTag(final short tag) {
-        String ret = stringTags[tag];
-        if (ret == null) {
-            final byte[] stringConversionBuf = new byte[2];
-            stringConversionBuf[0] = (byte)(tag & 0xff);
-            stringConversionBuf[1] = (byte)((tag >> 8) & 0xff);
-            ret = StringUtil.bytesToString(stringConversionBuf);
-            stringTags[tag] = ret;
-        }
-        return ret;
-    }
-}
diff --git a/src/java/net/sf/samtools/SAMTestUtil.java b/src/java/net/sf/samtools/SAMTestUtil.java
deleted file mode 100644
index 752dccf..0000000
--- a/src/java/net/sf/samtools/SAMTestUtil.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import org.testng.Assert;
-
-/**
- * Misc methods for SAM-related unit tests.  These are in the src tree rather than the tests tree
- * so that they will be included in sam.jar, and therefore can be used by tests outside of net.sf.samtools.
- * These methods use org.testng.Assert methods.
- */
-public class SAMTestUtil {
-    /**
-     * Basic sanity check for a pair of SAMRecords.
-     */
-    public void assertPairValid(final SAMRecord firstEnd, final SAMRecord secondEnd) {
-        Assert.assertEquals(firstEnd.getReadName(), secondEnd.getReadName());
-        Assert.assertTrue(firstEnd.getFirstOfPairFlag());
-        Assert.assertTrue(secondEnd.getSecondOfPairFlag());
-        Assert.assertFalse(secondEnd.getFirstOfPairFlag());
-        Assert.assertFalse(firstEnd.getSecondOfPairFlag());
-        if (!firstEnd.getReadUnmappedFlag() && !secondEnd.getReadUnmappedFlag()) {
-            Assert.assertNotSame(firstEnd.getReadNegativeStrandFlag(),
-                    secondEnd.getReadNegativeStrandFlag());
-        }
-    }
-
-    /**
-     * Basic sanity check for a SAMRecord.
-     */
-    public void assertReadValid(final SAMRecord read) {
-        Assert.assertEquals(read.getReadBases().length, read.getBaseQualities().length);
-        // Note that it is possible to have an unmapped read that has a coordinate
-        if (read.getReferenceName().equals(SAMRecord.NO_ALIGNMENT_REFERENCE_NAME)) {
-            Assert.assertEquals(read.getAlignmentStart(), SAMRecord.NO_ALIGNMENT_START);
-            Assert.assertTrue(read.getReadUnmappedFlag());
-        } else {
-            Assert.assertNotSame(read.getAlignmentStart(), SAMRecord.NO_ALIGNMENT_START);
-        }
-        if (read.getReadUnmappedFlag()) {
-            Assert.assertEquals(read.getMappingQuality(), SAMRecord.NO_MAPPING_QUALITY);
-            Assert.assertEquals(read.getCigar().getCigarElements().size(), 0);
-        } else {
-            Assert.assertNotSame(read.getCigar().getCigarElements(), 0);
-        }
-        if (read.getReadPairedFlag()) {
-            if (read.getMateReferenceName().equals(SAMRecord.NO_ALIGNMENT_REFERENCE_NAME)) {
-                Assert.assertEquals(read.getMateAlignmentStart(), SAMRecord.NO_ALIGNMENT_START);
-                Assert.assertTrue(read.getMateUnmappedFlag());
-            } else {
-                // Even if the mate is unmapped, if it has a reference name, it should have a position.
-                Assert.assertNotSame(read.getMateAlignmentStart(), SAMRecord.NO_ALIGNMENT_START);
-            }
-            if (read.getReadUnmappedFlag() || read.getMateUnmappedFlag() ||
-                    !read.getReferenceName().equals(read.getMateReferenceName())) {
-                Assert.assertEquals(read.getInferredInsertSize(), 0);
-            } else {
-                Assert.assertNotSame(read.getInferredInsertSize(), 0);
-            }
-            if (!read.getReadUnmappedFlag() && !read.getMateUnmappedFlag()) {
-                Assert.assertNotSame(read.getReadNegativeStrandFlag(), read.getMateNegativeStrandFlag(),
-                        read.getReadName());
-            }
-
-        } else {
-            Assert.assertEquals(read.getInferredInsertSize(), 0);
-        }
-    }
-}
diff --git a/src/java/net/sf/samtools/SAMTextHeaderCodec.java b/src/java/net/sf/samtools/SAMTextHeaderCodec.java
deleted file mode 100644
index f7f4bab..0000000
--- a/src/java/net/sf/samtools/SAMTextHeaderCodec.java
+++ /dev/null
@@ -1,465 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import net.sf.samtools.util.DateParser;
-import net.sf.samtools.util.LineReader;
-import net.sf.samtools.util.RuntimeIOException;
-import net.sf.samtools.util.StringUtil;
-
-import java.io.BufferedWriter;
-import java.io.IOException;
-import java.io.Writer;
-import java.util.*;
-import java.util.regex.Pattern;
-
-/**
- * Parser for a SAM text header, and a generator of SAM text header.
- */
-public class SAMTextHeaderCodec {
-    private static final String HEADER_LINE_START = "@";
-
-    // These attributes are populated when parsing or generating
-    private SAMFileHeader mFileHeader;
-    private final TextTagCodec mTagCodec = new TextTagCodec();
-
-    // These attributes are populated when parsing text
-    private String mCurrentLine;
-    private LineReader mReader;
-    private String mSource;
-    private List<SAMSequenceRecord> sequences;
-    private List<SAMReadGroupRecord> readGroups;
-    // Accumulate header while reading it from input.
-    private final StringBuilder textHeader = new StringBuilder();
-
-    // For error reporting when parsing
-    private SAMFileReader.ValidationStringency validationStringency = SAMFileReader.ValidationStringency.SILENT;
-
-    // These attributes are populated when generating text
-    private BufferedWriter writer;
-
-    private static final String TAG_KEY_VALUE_SEPARATOR = ":";
-    private static final char TAG_KEY_VALUE_SEPARATOR_CHAR = ':';
-    private static final String FIELD_SEPARATOR = "\t";
-    private static final char FIELD_SEPARATOR_CHAR = '\t';
-    private static final Pattern FIELD_SEPARATOR_RE = Pattern.compile(FIELD_SEPARATOR);
-
-    public static final String COMMENT_PREFIX = HEADER_LINE_START + HeaderRecordType.CO.name() + FIELD_SEPARATOR;
-
-    /**
-     * Reads text SAM header and converts to a SAMFileHeader object.
-     * @param reader Where to get header text from.
-     * @param source Name of the input file, for error messages.  May be null.
-     * @return complete header object.
-     */
-    public SAMFileHeader decode(final LineReader reader, final String source) {
-        mFileHeader = new SAMFileHeader();
-        mReader = reader;
-        mSource = source;
-        sequences = new ArrayList<SAMSequenceRecord>();
-        readGroups = new ArrayList<SAMReadGroupRecord>();
-
-        while (advanceLine() != null) {
-            final ParsedHeaderLine parsedHeaderLine = new ParsedHeaderLine(mCurrentLine);
-            if (!parsedHeaderLine.isLineValid()) {
-                continue;
-            }
-            switch (parsedHeaderLine.getHeaderRecordType()) {
-
-                case HD:
-                    parseHDLine(parsedHeaderLine);
-                    break;
-                case PG:
-                    parsePGLine(parsedHeaderLine);
-                    break;
-                case RG:
-                    parseRGLine(parsedHeaderLine);
-                    break;
-                case SQ:
-                    parseSQLine(parsedHeaderLine);
-                    break;
-                case CO:
-                    mFileHeader.addComment(mCurrentLine);
-                    break;
-                default:
-                    throw new IllegalStateException("Unrecognized header record type: " +
-                            parsedHeaderLine.getHeaderRecordType());
-            }
-        }
-        mFileHeader.setSequenceDictionary(new SAMSequenceDictionary(sequences));
-        mFileHeader.setReadGroups(readGroups);
-
-        // Only store the header text if there was a parsing error or the it's less than 1MB on disk / 2MB in mem
-        if (!mFileHeader.getValidationErrors().isEmpty() || textHeader.length() < (1024 * 1024)) {
-            mFileHeader.setTextHeader(textHeader.toString());
-        }
-
-        SAMUtils.processValidationErrors(mFileHeader.getValidationErrors(), -1, validationStringency);
-        return mFileHeader;
-    }
-
-    private String advanceLine() {
-        final int nextChar = mReader.peek();
-        if (nextChar != '@') {
-            return null;
-        }
-        mCurrentLine = mReader.readLine();
-        textHeader.append(mCurrentLine).append("\n");
-        return mCurrentLine;
-    }
-
-    /**
-     * Transfer standard and non-standard tags from text representation to in-memory representation.
-     * All values are now stored as Strings.
-     * @param record attributes get set into this object.
-     * @param textAttributes Map of tag type to value.  Some values may be removed by this method.
-     */
-    private void transferAttributes(final AbstractSAMHeaderRecord record, final Map<String, String> textAttributes) {
-        // All header tags are now of type String, so no need to distinguish standard from non-standard.
-        for (final Map.Entry<String, String> entry : textAttributes.entrySet()) {
-            record.setAttribute(entry.getKey(), entry.getValue());
-        }
-
-    }
-
-    private void parsePGLine(final ParsedHeaderLine parsedHeaderLine) {
-        assert(HeaderRecordType.PG.equals(parsedHeaderLine.getHeaderRecordType()));
-        if (!parsedHeaderLine.requireTag(SAMProgramRecord.PROGRAM_GROUP_ID_TAG)) {
-            return;
-        }
-        final SAMProgramRecord programRecord = new SAMProgramRecord(parsedHeaderLine.removeValue(SAMProgramRecord.PROGRAM_GROUP_ID_TAG));
-
-        transferAttributes(programRecord, parsedHeaderLine.mKeyValuePairs);
-        mFileHeader.addProgramRecord(programRecord);
-    }
-
-    private void parseRGLine(final ParsedHeaderLine parsedHeaderLine) {
-        assert(HeaderRecordType.RG.equals(parsedHeaderLine.getHeaderRecordType()));
-        if (!parsedHeaderLine.requireTag(SAMReadGroupRecord.READ_GROUP_ID_TAG)) {
-            return;
-        }
-        // Allow no SM tag if validation stringency is not strict.  This call has the side effect of reporting an error
-        // or throwing an exception depending on validation stringency if this is missing.
-        parsedHeaderLine.requireTag(SAMReadGroupRecord.READ_GROUP_SAMPLE_TAG);
-        final SAMReadGroupRecord samReadGroupRecord = new SAMReadGroupRecord(parsedHeaderLine.removeValue(SAMReadGroupRecord.READ_GROUP_ID_TAG));
-        transferAttributes(samReadGroupRecord, parsedHeaderLine.mKeyValuePairs);
-
-        // Convert non-String attributes to the appropriate types
-        final String predictedMedianInsertSize =
-                (String)samReadGroupRecord.getAttribute(SAMReadGroupRecord.PREDICTED_MEDIAN_INSERT_SIZE_TAG);
-        if (predictedMedianInsertSize != null) {
-            try {
-                Integer.parseInt(predictedMedianInsertSize);
-                samReadGroupRecord.setAttribute(SAMReadGroupRecord.PREDICTED_MEDIAN_INSERT_SIZE_TAG,predictedMedianInsertSize);
-            } catch (NumberFormatException e) {
-                reportErrorParsingLine(SAMReadGroupRecord.PREDICTED_MEDIAN_INSERT_SIZE_TAG +
-                        " is not numeric: " + predictedMedianInsertSize, SAMValidationError.Type.INVALID_PREDICTED_MEDIAN_INSERT_SIZE,
-                        e);
-            }
-        }
-
-        final String dateRunProduced = (String)samReadGroupRecord.getAttribute(SAMReadGroupRecord.DATE_RUN_PRODUCED_TAG);
-        if (dateRunProduced != null) {
-            Object date;
-            try {
-                date = mTagCodec.decodeDate(dateRunProduced);
-            } catch (DateParser.InvalidDateException e) {
-                // Can't convert date string into Date object.  Treat it as a string if validation
-                //  stringency allows it.
-                date = dateRunProduced;
-                reportErrorParsingLine(SAMReadGroupRecord.DATE_RUN_PRODUCED_TAG + " tag value '" +
-                dateRunProduced + "' is not parseable as a date", SAMValidationError.Type.INVALID_DATE_STRING,
-                        e);
-            }
-            samReadGroupRecord.setAttribute(SAMReadGroupRecord.DATE_RUN_PRODUCED_TAG, date.toString());
-        }
-
-        readGroups.add(samReadGroupRecord);
-    }
-
-    private void parseSQLine(final ParsedHeaderLine parsedHeaderLine) {
-        assert(HeaderRecordType.SQ.equals(parsedHeaderLine.getHeaderRecordType()));
-        if (!parsedHeaderLine.requireTag(SAMSequenceRecord.SEQUENCE_NAME_TAG) ||
-                !parsedHeaderLine.requireTag(SAMSequenceRecord.SEQUENCE_LENGTH_TAG)) {
-            return;
-        }
-        String sequenceName = parsedHeaderLine.removeValue(SAMSequenceRecord.SEQUENCE_NAME_TAG);
-        sequenceName = SAMSequenceRecord.truncateSequenceName(sequenceName);
-        final SAMSequenceRecord samSequenceRecord = new SAMSequenceRecord(sequenceName,
-                Integer.parseInt(parsedHeaderLine.removeValue(SAMSequenceRecord.SEQUENCE_LENGTH_TAG)));
-        transferAttributes(samSequenceRecord, parsedHeaderLine.mKeyValuePairs);
-        sequences.add(samSequenceRecord);
-    }
-
-    private void parseHDLine(final ParsedHeaderLine parsedHeaderLine) {
-        assert(HeaderRecordType.HD.equals(parsedHeaderLine.getHeaderRecordType()));
-        if (!parsedHeaderLine.requireTag(SAMFileHeader.VERSION_TAG)) {
-            return;
-        }
-        transferAttributes(mFileHeader, parsedHeaderLine.mKeyValuePairs);
-    }
-
-    private void reportErrorParsingLine(String reason, final SAMValidationError.Type type, final Throwable nestedException) {
-        reason = "Error parsing SAM header. " + reason + ". Line:\n" + mCurrentLine;
-        if (validationStringency != SAMFileReader.ValidationStringency.STRICT) {
-            final SAMValidationError error = new SAMValidationError(type, reason, null, mReader.getLineNumber());
-            error.setSource(mSource);
-            mFileHeader.addValidationError(error);
-        } else {
-            String fileMessage = "";
-            if (mSource != null) {
-                fileMessage = "File " + mSource;
-            }
-            throw new SAMFormatException(reason + "; " + fileMessage +
-                    "; Line number " + mReader.getLineNumber(), nestedException);
-        }
-    }
-
-    private enum HeaderRecordType {
-        HD, SQ, RG, PG, CO
-    }
-
-    /**
-     * Takes a header line as a String and converts it into a HeaderRecordType, and a map of key:value strings.
-     * If the line does not contain a recognized HeaderRecordType, then the line is considered invalid, and will
-     * not have any key:value pairs.
-     */
-    private class ParsedHeaderLine {
-        private HeaderRecordType mHeaderRecordType;
-        private final Map<String, String> mKeyValuePairs = new HashMap<String, String>();
-        private boolean lineValid = false;
-
-        ParsedHeaderLine(final String line) {
-            assert(line.startsWith(HEADER_LINE_START));
-
-            // Tab-separate
-            String[] fields = new String[1024];
-            int numFields = StringUtil.split(line, fields, FIELD_SEPARATOR_CHAR);
-            if (numFields == fields.length) {
-                // Lots of fields, so fall back
-                fields = FIELD_SEPARATOR_RE.split(line);
-                numFields = fields.length;
-            }
-
-            // Parse the HeaderRecordType
-            try {
-                mHeaderRecordType = HeaderRecordType.valueOf(fields[0].substring(1));
-            } catch (IllegalArgumentException e) {
-                reportErrorParsingLine("Unrecognized header record type", SAMValidationError.Type.UNRECOGNIZED_HEADER_TYPE, null);
-                mHeaderRecordType = null;
-                return;
-            }
-
-            // Do not parse key:value pairs for comment lines.
-            if (mHeaderRecordType == HeaderRecordType.CO) {
-                lineValid = true;
-                return;
-            }
-
-            final String[] keyAndValue = new String[2];
-            // Parse they key:value pairs
-            for (int i = 1; i < numFields; ++i) {
-                if (StringUtil.splitConcatenateExcessTokens(fields[i], keyAndValue, TAG_KEY_VALUE_SEPARATOR_CHAR) != 2) {
-                    reportErrorParsingLine("Problem parsing " + HEADER_LINE_START + mHeaderRecordType +
-                            " key:value pair", SAMValidationError.Type.POORLY_FORMATTED_HEADER_TAG, null);
-                    continue;
-                }
-                if (mKeyValuePairs.containsKey(keyAndValue[0]) &&
-                        ! mKeyValuePairs.get(keyAndValue[0]).equals(keyAndValue[1])) {
-                    reportErrorParsingLine("Problem parsing " + HEADER_LINE_START + mHeaderRecordType +
-                            " key:value pair " + keyAndValue[0] + ":" + keyAndValue[1] +
-                            " clashes with " + keyAndValue[0] + ":" + mKeyValuePairs.get(keyAndValue[0]),
-                            SAMValidationError.Type.HEADER_TAG_MULTIPLY_DEFINED, null);
-                    continue;
-                }
-                mKeyValuePairs.put(keyAndValue[0], keyAndValue[1]);
-            }
-            lineValid = true;
-        }
-
-        /**
-         * True if the line is recognized as one of the valid HeaderRecordTypes.
-         */
-        public boolean isLineValid() {
-            return lineValid;
-        }
-
-        /**
-         * Handling depends on the validation stringency.  If the tag is not present, and stringency is strict,
-         * an exception is thrown.  If stringency is not strict, false is returned.
-         * @param tag Must be present for the line to be considered value.
-         * @return True if tag is present.
-         */
-        boolean requireTag(final String tag) {
-            if (!mKeyValuePairs.containsKey(tag)) {
-                reportErrorParsingLine(HEADER_LINE_START + mHeaderRecordType + " line missing " + tag + " tag",
-                        SAMValidationError.Type.HEADER_RECORD_MISSING_REQUIRED_TAG, null);
-                return false;
-            }
-            return true;
-        }
-
-        /**
-         * @return null if line is invalid, otherwise the parsed HeaderRecordType
-         */
-        public HeaderRecordType getHeaderRecordType() {
-            return mHeaderRecordType;
-        }
-
-        boolean containsKey(final String key) {
-            return mKeyValuePairs.containsKey(key);
-        }
-
-        String getValue(final String key) {
-            return mKeyValuePairs.get(key);
-        }
-
-        String removeValue(final String key) {
-            final String ret = mKeyValuePairs.get(key);
-            mKeyValuePairs.remove(key);
-            return ret;
-        }
-
-    }
-
-    /**
-     * Convert SAMFileHeader from in-memory representation to text representation. Always writes
-     * SAMFileHeader.CURRENT_VERSION as the version in the header.
-     * @param writer where to write the header text.
-     * @param header object to be converted to text.
-     */
-    public void encode(final Writer writer, final SAMFileHeader header) {
-        encode(writer, header, false);
-    }
-
-    /**
-     * Convert SAMFileHeader from in-memory representation to text representation.
-     * @param writer where to write the header text.
-     * @param header object to be converted to text.
-     * @param keepExistingVersionNumber If true, writes whatever version # was in the header.  If false, writes
-     *                                  SAMFileHeader.CURRENT_VERSION.
-     */
-    public void encode(final Writer writer, final SAMFileHeader header, final boolean keepExistingVersionNumber) {
-        mFileHeader = header;
-        this.writer = new BufferedWriter(writer);
-        writeHDLine(keepExistingVersionNumber);
-        for (final SAMSequenceRecord sequenceRecord: header.getSequenceDictionary().getSequences()) {
-            writeSQLine(sequenceRecord);
-        }
-
-        for (final SAMReadGroupRecord readGroup : header.getReadGroups()) {
-            writeRGLine(readGroup);
-        }
-        for (final SAMProgramRecord programRecord : header.getProgramRecords()) {
-            writePGLine(programRecord);
-        }
-        for (final String comment : header.getComments()) {
-            println(comment);
-        }
-        try {
-            this.writer.flush();
-        } catch (IOException e) {
-            throw new RuntimeIOException(e);
-        }
-    }
-
-    private void println(final String s) {
-        try {
-            writer.append(s);
-            writer.append("\n");
-        } catch (IOException e) {
-            throw new RuntimeIOException(e);
-        }
-    }
-
-    private void writePGLine(final SAMProgramRecord programRecord) {
-        if (programRecord == null) {
-            return;
-        }
-        final String[] fields = new String[2 + programRecord.getAttributes().size()];
-        fields[0] = HEADER_LINE_START + HeaderRecordType.PG;
-        fields[1] = SAMProgramRecord.PROGRAM_GROUP_ID_TAG + TAG_KEY_VALUE_SEPARATOR + programRecord.getProgramGroupId();
-        encodeTags(programRecord, fields, 2);
-        println(StringUtil.join(FIELD_SEPARATOR, fields));
-    }
-
-    private void writeRGLine(final SAMReadGroupRecord readGroup) {
-        final String[] fields = new String[2 + readGroup.getAttributes().size()];
-        fields[0] = HEADER_LINE_START + HeaderRecordType.RG;
-        fields[1] = SAMReadGroupRecord.READ_GROUP_ID_TAG + TAG_KEY_VALUE_SEPARATOR + readGroup.getReadGroupId();
-        encodeTags(readGroup, fields, 2);
-        println(StringUtil.join(FIELD_SEPARATOR, fields));
-    }
-
-    private void writeHDLine(final boolean keepExistingVersionNumber) {
-        final SAMFileHeader newHeader;
-        if (keepExistingVersionNumber) {
-            newHeader = mFileHeader;
-        } else {
-            // Make a copy of the header, excluding the version from the input header, so that
-            // output get CURRENT_VERSION instead of whatever the version of the input header was.
-            newHeader = new SAMFileHeader();
-
-            for (final Map.Entry<String, String> entry : mFileHeader.getAttributes()) {
-                if (!entry.getKey().equals(SAMFileHeader.VERSION_TAG)) {
-                    newHeader.setAttribute(entry.getKey(), entry.getValue());
-                }
-            }
-        }
-
-        final String[] fields = new String[1 + newHeader.getAttributes().size()];
-        fields[0] = HEADER_LINE_START + HeaderRecordType.HD;
-        encodeTags(newHeader, fields, 1);
-        println(StringUtil.join(FIELD_SEPARATOR, fields));
-    }
-
-    private void writeSQLine(final SAMSequenceRecord sequenceRecord) {
-        final int numAttributes =sequenceRecord.getAttributes() != null ? sequenceRecord.getAttributes().size() : 0;
-        final String[] fields = new String[3 + numAttributes];
-        fields[0] = HEADER_LINE_START + HeaderRecordType.SQ;
-        fields[1] = SAMSequenceRecord.SEQUENCE_NAME_TAG + TAG_KEY_VALUE_SEPARATOR + sequenceRecord.getSequenceName();
-        fields[2] = SAMSequenceRecord.SEQUENCE_LENGTH_TAG + TAG_KEY_VALUE_SEPARATOR + Integer.toString(sequenceRecord.getSequenceLength());
-        encodeTags(sequenceRecord, fields, 3);
-        println(StringUtil.join(FIELD_SEPARATOR, fields));
-    }
-
-    /**
-     * Encode all the attributes in the given object as text
-     * @param rec object containing attributes, and knowledge of which are standard tags
-     * @param fields where to put the text representation of the tags.  Must be big enough to hold all tags.
-     * @param offset where to start putting text tag representations.
-     */
-    private void encodeTags(final AbstractSAMHeaderRecord rec, final String[] fields, int offset) {
-        for (final Map.Entry<String, String> entry: rec.getAttributes()) {
-            fields[offset++] = mTagCodec.encodeUntypedTag(entry.getKey(), entry.getValue());
-        }
-    }
-
-    public void setValidationStringency(final SAMFileReader.ValidationStringency validationStringency) {
-        if (validationStringency == null) {
-            throw new IllegalArgumentException("null validationStringency not allowed");
-        }
-        this.validationStringency = validationStringency;
-    }
-}
diff --git a/src/java/net/sf/samtools/SAMTextReader.java b/src/java/net/sf/samtools/SAMTextReader.java
deleted file mode 100644
index bf651ff..0000000
--- a/src/java/net/sf/samtools/SAMTextReader.java
+++ /dev/null
@@ -1,247 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-
-import net.sf.samtools.util.BufferedLineReader;
-import net.sf.samtools.util.CloseableIterator;
-
-import java.io.File;
-import java.io.InputStream;
-
-
-/**
- * Internal class for reading SAM text files.
- */
-class SAMTextReader extends SAMFileReader.ReaderImplementation {
-
-
-    private SAMRecordFactory samRecordFactory;
-    private BufferedLineReader mReader;
-    private SAMFileHeader mFileHeader = null;
-    private String mCurrentLine = null;
-    private RecordIterator mIterator = null;
-    private File mFile = null;
-
-    private SAMFileReader.ValidationStringency validationStringency = SAMFileReader.ValidationStringency.DEFAULT_STRINGENCY;
-
-    /**
-     * Add information about the origin (reader and position) to SAM records.
-     */
-    private SAMFileReader mParentReader;
-
-    /**
-     * Prepare to read a SAM text file.
-     * @param stream Need not be buffered, as this class provides buffered reading.
-     */
-    SAMTextReader(final InputStream stream, final SAMFileReader.ValidationStringency validationStringency, final SAMRecordFactory factory) {
-        mReader = new BufferedLineReader(stream);
-        this.validationStringency = validationStringency;
-        this.samRecordFactory = factory;
-        readHeader();
-    }
-
-    /**
-     * Prepare to read a SAM text file.
-     * @param stream Need not be buffered, as this class provides buffered reading.
-     * @param file For error reporting only.
-     */
-    SAMTextReader(final InputStream stream, final File file, final SAMFileReader.ValidationStringency validationStringency, final SAMRecordFactory factory) {
-        this(stream, validationStringency, factory);
-        mFile = file;
-    }
-
-    /**
-     * If true, writes the source of every read into the source SAMRecords.
-     * @param enabled true to write source information into each SAMRecord.
-     */
-    void enableFileSource(final SAMFileReader reader, final boolean enabled) {
-        this.mParentReader = enabled ? reader : null;
-    }
-
-    void enableIndexCaching(final boolean enabled) {
-        throw new UnsupportedOperationException("Cannot enable index caching for a SAM text reader");
-    }
-
-    void enableIndexMemoryMapping(final boolean enabled) {
-        throw new UnsupportedOperationException("Cannot enable index memory mapping for a SAM text reader");
-    }
-
-    void enableCrcChecking(final boolean enabled) {
-        // Do nothing - this has no meaning for SAM reading
-    }
-
-    void setSAMRecordFactory(final SAMRecordFactory factory) {
-        this.samRecordFactory = factory;
-    }
-
-    boolean hasIndex() {
-        return false;
-    }
-
-    BAMIndex getIndex() {
-        throw new UnsupportedOperationException();
-    }
-
-    void close() {
-        if (mReader != null) {
-            try {
-                mReader.close();
-            } finally {
-                mReader = null;
-            }
-        }
-    }
-
-    SAMFileHeader getFileHeader() {
-        return mFileHeader;
-    }
-
-    public SAMFileReader.ValidationStringency getValidationStringency() {
-        return validationStringency;
-    }
-
-    public void setValidationStringency(final SAMFileReader.ValidationStringency stringency) {
-        this.validationStringency = stringency;
-    }
-
-    /**
-     * There can only be one extant iterator on a SAMTextReader at a time.  The previous one must
-     * be closed before calling getIterator().  Because the input stream is not seekable, a subsequent
-     * call to getIterator() returns an iterator that starts where the last one left off.
-     *
-     * @return Iterator of SAMRecords in file order.
-     */
-    CloseableIterator<SAMRecord> getIterator() {
-        if (mReader == null) {
-            throw new IllegalStateException("File reader is closed");
-        }
-        if (mIterator != null) {
-            throw new IllegalStateException("Iteration in progress");
-        }
-        mIterator = new RecordIterator();
-        return mIterator;
-    }
-
-    /**
-     * Generally loads data at a given point in the file.  Unsupported for SAMTextReaders.
-     * @param fileSpan The file span.
-     * @return An iterator over the given file span.
-     */
-    CloseableIterator<SAMRecord> getIterator(final SAMFileSpan fileSpan) {
-        throw new UnsupportedOperationException("Cannot directly iterate over regions within SAM text files.");
-    }
-
-    /**
-     * Generally gets a pointer to the first read in the file.  Unsupported for SAMTextReaders.
-     * @return An pointer to the first read in the file.
-     */
-    SAMFileSpan getFilePointerSpanningReads() {
-        throw new UnsupportedOperationException("Cannot retrieve file pointers within SAM text files.");
-    }
-
-    /**
-     * Unsupported for SAM text files.
-     */
-    CloseableIterator<SAMRecord> query(final String sequence, final int start, final int end, final boolean contained) {
-        throw new UnsupportedOperationException("Cannot query SAM text files");
-    }
-
-    @Override
-    CloseableIterator<SAMRecord> query(final SAMFileReader.QueryInterval[] intervals, final boolean contained) {
-        throw new UnsupportedOperationException("Cannot query SAM text files");
-    }
-
-    /**
-     * Unsupported for SAM text files.
-     */
-    CloseableIterator<SAMRecord> queryAlignmentStart(final String sequence, final int start) {
-        throw new UnsupportedOperationException("Cannot query SAM text files");
-    }
-
-    public CloseableIterator<SAMRecord> queryUnmapped() {
-        throw new UnsupportedOperationException("Cannot query SAM text files");
-    }
-
-    private void readHeader() {
-        final SAMTextHeaderCodec headerCodec = new SAMTextHeaderCodec();
-        headerCodec.setValidationStringency(validationStringency);
-        mFileHeader = headerCodec.decode(mReader, (mFile != null? mFile.toString(): null));
-        advanceLine();
-    }
-
-    private String advanceLine() {
-        mCurrentLine = mReader.readLine();
-        return mCurrentLine;
-    }
-
-
-
-
-
-    /**
-     * SAMRecord iterator for SAMTextReader
-     */
-    private class RecordIterator implements CloseableIterator<SAMRecord> {
-
-        private final SAMLineParser parser = new SAMLineParser(samRecordFactory, validationStringency,
-                mFileHeader, mParentReader, mFile);
-
-        private RecordIterator() {
-            if (mReader == null) {
-                throw new IllegalStateException("Reader is closed.");
-            }
-        }
-
-        public void close() {
-            SAMTextReader.this.close();
-        }
-
-        public boolean hasNext() {
-            return mCurrentLine != null;
-        }
-
-        public SAMRecord next() {
-            if (!hasNext()) {
-                throw new IllegalStateException("Cannot call next() on exhausted iterator");
-            }
-            try {
-                return parseLine();
-            } finally {
-                advanceLine();
-            }
-        }
-
-        public void remove() {
-            throw new UnsupportedOperationException("Not supported: remove");
-        }
-
-        private SAMRecord parseLine() {
-
-            return parser.parseLine(mCurrentLine, mReader.getLineNumber());
-        }
-
-    }
-}
-
diff --git a/src/java/net/sf/samtools/SAMTextWriter.java b/src/java/net/sf/samtools/SAMTextWriter.java
deleted file mode 100644
index a33b4e9..0000000
--- a/src/java/net/sf/samtools/SAMTextWriter.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import net.sf.samtools.util.AsciiWriter;
-import net.sf.samtools.util.RuntimeIOException;
-
-import java.io.*;
-
-/**
- * Writer for text-format SAM files.
- */
-public class SAMTextWriter extends SAMFileWriterImpl {
-    private static final String FIELD_SEPARATOR = "\t";
-
-    private final Writer out;
-    // For error reporting only.
-    private final File file;
-    private final TextTagCodec tagCodec = new TextTagCodec();
-    private final SAMTagUtil tagUtil = new SAMTagUtil();
-
-    /**
-     * Constructs a SAMTextWriter that outputs to a Writer.
-     * @param out Writer.
-     */
-    public SAMTextWriter(Writer out) {
-	this.out = out;
-	this.file = null;
-    }
-
-    /**
-     * Constructs a SAMTextWriter that writes to a File.
-     * @param file Where to write the output.
-     */
-    public SAMTextWriter(final File file) {
-        try {
-            this.file = file;
-            this.out = new AsciiWriter(new FileOutputStream(file));
-        } catch (IOException e) {
-            throw new RuntimeIOException(e);
-        }
-    }
-
-    /**
-     * Returns the Writer used by this instance.  Useful for flushing the output.
-     */
-    public Writer getWriter() {
-	return out;
-    }
-
-    /**
-     * Constructs a SAMTextWriter that writes to an OutputStream.  The OutputStream
-     * is wrapped in an AsciiWriter, which can be retrieved with getWriter().
-     * @param stream Need not be buffered because this class provides buffering. 
-     */
-    public SAMTextWriter(final OutputStream stream) {
-        this.file = null;
-        this.out = new AsciiWriter(stream);
-    }
-
-    /**
-     * Write the record.
-     *
-     * @param alignment SAMRecord.
-     */
-    public void writeAlignment(final SAMRecord alignment) {
-        try {
-            out.write(alignment.getReadName());
-            out.write(FIELD_SEPARATOR);
-            out.write(Integer.toString(alignment.getFlags()));
-            out.write(FIELD_SEPARATOR);
-            out.write(alignment.getReferenceName());
-            out.write(FIELD_SEPARATOR);
-            out.write(Integer.toString(alignment.getAlignmentStart()));
-            out.write(FIELD_SEPARATOR);
-            out.write(Integer.toString(alignment.getMappingQuality()));
-            out.write(FIELD_SEPARATOR);
-            out.write(alignment.getCigarString());
-            out.write(FIELD_SEPARATOR);
-
-            //  == is OK here because these strings are interned
-            if (alignment.getReferenceName() == alignment.getMateReferenceName() &&
-                    SAMRecord.NO_ALIGNMENT_REFERENCE_NAME != alignment.getReferenceName()) {
-                out.write("=");
-            } else {
-                out.write(alignment.getMateReferenceName());
-            }
-            out.write(FIELD_SEPARATOR);
-            out.write(Integer.toString(alignment.getMateAlignmentStart()));
-            out.write(FIELD_SEPARATOR);
-            out.write(Integer.toString(alignment.getInferredInsertSize()));
-            out.write(FIELD_SEPARATOR);
-            out.write(alignment.getReadString());
-            out.write(FIELD_SEPARATOR);
-            out.write(alignment.getBaseQualityString());
-            SAMBinaryTagAndValue attribute = alignment.getBinaryAttributes();
-            while (attribute != null) {
-                out.write(FIELD_SEPARATOR);
-                final String encodedTag;
-                if (attribute.isUnsignedArray()) {
-                    encodedTag = tagCodec.encodeUnsignedArray(tagUtil.makeStringTag(attribute.tag), attribute.value);
-                } else {
-                    encodedTag = tagCodec.encode(tagUtil.makeStringTag(attribute.tag), attribute.value);
-                }
-                out.write(encodedTag);
-                attribute = attribute.getNext();
-            }
-            out.write("\n");
-
-        } catch (IOException e) {
-            throw new RuntimeIOException(e);
-        }
-    }
-
-    /* This method is called by SAMRecord.getSAMString(). */
-    private static SAMTextWriter textWriter = null;
-    private static StringWriter stringWriter = null;
-    static synchronized String getSAMString(final SAMRecord alignment) {
-	if (stringWriter == null) stringWriter = new StringWriter();
-	if (textWriter == null) textWriter = new SAMTextWriter(stringWriter);
-	stringWriter.getBuffer().setLength(0);
-	textWriter.writeAlignment(alignment);
-	return stringWriter.toString();
-    }
-
-    /**
-     * Write the header text.  This method can also be used to write
-     * an arbitrary String, not necessarily the header.
-     *
-     * @param textHeader String containing the text to write.
-     */
-    public void writeHeader(final String textHeader) {
-        try {
-            out.write(textHeader);
-        } catch (IOException e) {
-            throw new RuntimeIOException(e);
-        }
-    }
-
-    /**
-     * Do any required flushing here.
-     */
-    public void finish() {
-        try {
-            out.close();
-        } catch (IOException e) {
-            throw new RuntimeIOException(e);
-        }
-    }
-
-    /**
-     * For producing error messages.
-     *
-     * @return Output filename, or null if there isn't one.
-     */
-    public String getFilename() {
-        if (file == null) {
-            return null;
-        }
-        return file.getAbsolutePath();
-    }
-}
diff --git a/src/java/net/sf/samtools/SAMTools.java b/src/java/net/sf/samtools/SAMTools.java
deleted file mode 100644
index 9209e42..0000000
--- a/src/java/net/sf/samtools/SAMTools.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-
-import net.sf.samtools.util.CloseableIterator;
-import java.io.*;
-
-
-/**
- * Command line utility for manipulating SAM/BAM files.
- */
-public class SAMTools
-{
-    private String mCommand = null;
-    private File mInputFile = null;
-
-
-    public static void main(final String[] args)
-        throws Exception {
-        final int status = new SAMTools().run(args);
-        if (status != 0) {
-            System.exit(status);
-        }
-    }
-
-    private SAMTools() {
-    }
-
-    private void usage() {
-        System.out.println();
-        System.out.println("SAMTools version 0.1.0");
-        System.out.println("Tools for manipulating SAM/BAM files");
-        System.out.println();
-        System.out.println("Usage: SAMTools <command> <options...>");
-        System.out.println();
-        System.out.println("Commands:");
-        System.out.println("  help");
-        System.out.println("  view        <file>");
-        System.out.println();
-    }
-
-    private boolean parseArguments(final String[] args) {
-        if (args.length == 0) {
-            usage();
-            return true;
-        }
-        final String command = args[0];
-        final int argpos = 1;
-        final int argcount = args.length - argpos;
-        if (command.equals("help")) {
-            usage();
-            return true;
-        } else if (command.equals("view")) {
-            if (argcount != 1) {
-                usage();
-                return false;
-            }
-            mInputFile = new File(args[1]);
-            if (!mInputFile.exists()) {
-                System.out.println("Input file not found: " + mInputFile);
-                return false;
-            }
-        } else {
-            System.out.println("Unrecognized command: " + command);
-            System.out.println();
-            usage();
-            return false;
-        }
-        mCommand = command;
-        return true;
-    }
-
-    private int run(final String[] args)
-        throws Exception {
-        if (!parseArguments(args)) {
-            return 1;
-        }
-        if (mCommand == null) {
-            return 0;
-        }
-        if (mCommand.equals("view")) {
-            return runView();
-        }
-        return 1;
-    }
-
-    private int runView() {
-        final SAMFileReader reader = new SAMFileReader(mInputFile);
-        final CloseableIterator<SAMRecord> iterator = reader.iterator();
-        while (iterator.hasNext()) {
-            final SAMRecord record = iterator.next();
-            System.out.println(record.format());
-        }
-        iterator.close();
-        return 0;
-    }
-}
diff --git a/src/java/net/sf/samtools/SAMUtils.java b/src/java/net/sf/samtools/SAMUtils.java
deleted file mode 100644
index 5517ea8..0000000
--- a/src/java/net/sf/samtools/SAMUtils.java
+++ /dev/null
@@ -1,925 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import net.sf.samtools.util.CoordMath;
-import net.sf.samtools.util.RuntimeEOFException;
-import net.sf.samtools.util.StringUtil;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.math.BigInteger;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.TreeMap;
-
-
-/**
- * Utilty methods.
- */
-public final class SAMUtils
-{
-    // Representation of bases, one for when in low-order nybble, one for when in high-order nybble.
-    private static final byte COMPRESSED_EQUAL_LOW = 0;
-    private static final byte COMPRESSED_A_LOW = 1;
-    private static final byte COMPRESSED_C_LOW = 2;
-    private static final byte COMPRESSED_M_LOW = 3;
-    private static final byte COMPRESSED_G_LOW = 4;
-    private static final byte COMPRESSED_R_LOW = 5;
-    private static final byte COMPRESSED_S_LOW = 6;
-    private static final byte COMPRESSED_V_LOW = 7;
-    private static final byte COMPRESSED_T_LOW = 8;
-    private static final byte COMPRESSED_W_LOW = 9;
-    private static final byte COMPRESSED_Y_LOW = 10;
-    private static final byte COMPRESSED_H_LOW = 11;
-    private static final byte COMPRESSED_K_LOW = 12;
-    private static final byte COMPRESSED_D_LOW = 13;
-    private static final byte COMPRESSED_B_LOW = 14;
-    private static final byte COMPRESSED_N_LOW = 15;
-    private static final byte COMPRESSED_EQUAL_HIGH = COMPRESSED_EQUAL_LOW << 4;
-    private static final byte COMPRESSED_A_HIGH = COMPRESSED_A_LOW << 4;
-    private static final byte COMPRESSED_C_HIGH = COMPRESSED_C_LOW << 4;
-    private static final byte COMPRESSED_G_HIGH = COMPRESSED_G_LOW << 4;
-    private static final byte COMPRESSED_T_HIGH = (byte)(COMPRESSED_T_LOW << 4);
-    private static final byte COMPRESSED_N_HIGH = (byte)(COMPRESSED_N_LOW << 4);
-
-    private static final byte COMPRESSED_M_HIGH = (byte)(COMPRESSED_M_LOW << 4);
-    private static final byte COMPRESSED_R_HIGH = (byte)(COMPRESSED_R_LOW << 4);
-    private static final byte COMPRESSED_S_HIGH = (byte)(COMPRESSED_S_LOW << 4);
-    private static final byte COMPRESSED_V_HIGH = (byte)(COMPRESSED_V_LOW << 4);
-    private static final byte COMPRESSED_W_HIGH = (byte)(COMPRESSED_W_LOW << 4);
-    private static final byte COMPRESSED_Y_HIGH = (byte)(COMPRESSED_Y_LOW << 4);
-    private static final byte COMPRESSED_H_HIGH = (byte)(COMPRESSED_H_LOW << 4);
-    private static final byte COMPRESSED_K_HIGH = (byte)(COMPRESSED_K_LOW << 4);
-    private static final byte COMPRESSED_D_HIGH = (byte)(COMPRESSED_D_LOW << 4);
-    private static final byte COMPRESSED_B_HIGH = (byte)(COMPRESSED_B_LOW << 4);
-
-
-    public static final int MAX_PHRED_SCORE = 93;
-
-    /**
-     * Convert from a byte array containing =AaCcGgTtNn represented as ASCII, to a byte array half as long,
-     * with =, A, C, G, T converted to 0, 1, 2, 4, 8, 15.
-     * @param readBases Bases as ASCII bytes.
-     * @return New byte array with bases represented as nybbles, in BAM binary format.
-     */
-    static byte[] bytesToCompressedBases(final byte[] readBases) {
-        final byte[] compressedBases = new byte[(readBases.length + 1)/2];
-        int i;
-        for (i = 1; i < readBases.length; i+=2) {
-            compressedBases[i/2] = (byte)(charToCompressedBaseHigh(readBases[i-1]) |
-                                    charToCompressedBaseLow(readBases[i]));
-        }
-        // Last nybble
-        if (i == readBases.length) {
-            compressedBases[i/2] = charToCompressedBaseHigh((char)readBases[i-1]);
-        }
-        return compressedBases;
-    }
-
-    /**
-     * Convert from a byte array with basese stored in nybbles, with =, A, C, G, T represented as 0, 1, 2, 4, 8, 15,
-     * to a a byte array containing =AaCcGgTtNn represented as ASCII.
-     * @param length Number of bases (not bytes) to convert.
-     * @param compressedBases Bases represented as nybbles, in BAM binary format.
-     * @param compressedOffset Byte offset in compressedBases to start.
-     * @return New byte array with bases as ASCII bytes.
-     */
-    public static byte[] compressedBasesToBytes(final int length, final byte[] compressedBases, final int compressedOffset) {
-        final byte[] ret = new byte[length];
-        int i;
-        for (i = 1; i < length; i+=2) {
-            final int compressedIndex = i / 2 + compressedOffset;
-            ret[i-1] = compressedBaseToByteHigh(compressedBases[compressedIndex]);
-            ret[i] = compressedBaseToByteLow(compressedBases[compressedIndex]);
-        }
-        // Last nybble
-        if (i == length) {
-            ret[i-1] = compressedBaseToByteHigh(compressedBases[i/2 + compressedOffset]);
-        }
-        return ret;
-    }
-
-    /**
-     * Convert from ASCII byte to BAM nybble representation of a base in low-order nybble.
-     * @param base One of =AaCcGgTtNn.
-     * @return Low-order nybble-encoded equivalent.
-     */
-    private static byte charToCompressedBaseLow(final int base) {
-        switch (base) {
-            case '=':
-                return COMPRESSED_EQUAL_LOW;
-            case 'a':
-            case 'A':
-                return COMPRESSED_A_LOW;
-            case 'c':
-            case 'C':
-                return COMPRESSED_C_LOW;
-            case 'g':
-            case 'G':
-                return COMPRESSED_G_LOW;
-            case 't':
-            case 'T':
-                return COMPRESSED_T_LOW;
-            case 'n':
-            case 'N':
-            case '.':
-                return COMPRESSED_N_LOW;
-
-            // IUPAC ambiguity codes
-            case 'M':
-            case 'm':
-                return COMPRESSED_M_LOW;
-            case 'R':
-            case 'r':
-                return COMPRESSED_R_LOW;
-            case 'S':
-            case 's':
-                return COMPRESSED_S_LOW;
-            case 'V':
-            case 'v':
-                return COMPRESSED_V_LOW;
-            case 'W':
-            case 'w':
-                return COMPRESSED_W_LOW;
-            case 'Y':
-            case 'y':
-                return COMPRESSED_Y_LOW;
-            case 'H':
-            case 'h':
-                return COMPRESSED_H_LOW;
-            case 'K':
-            case 'k':
-                return COMPRESSED_K_LOW;
-            case 'D':
-            case 'd':
-                return COMPRESSED_D_LOW;
-            case 'B':
-            case 'b':
-                return COMPRESSED_B_LOW;
-            default:
-                throw new IllegalArgumentException("Bad  byte passed to charToCompressedBase: " + base);
-        }
-    }
-
-    /**
-     * Convert from ASCII byte to BAM nybble representation of a base in high-order nybble.
-     * @param base One of =AaCcGgTtNn.
-     * @return High-order nybble-encoded equivalent.
-     */
-    private static byte charToCompressedBaseHigh(final int base) {
-        switch (base) {
-            case '=':
-                return COMPRESSED_EQUAL_HIGH;
-            case 'a':
-            case 'A':
-                return COMPRESSED_A_HIGH;
-            case 'c':
-            case 'C':
-                return COMPRESSED_C_HIGH;
-            case 'g':
-            case 'G':
-                return COMPRESSED_G_HIGH;
-            case 't':
-            case 'T':
-                return COMPRESSED_T_HIGH;
-            case 'n':
-            case 'N':
-            case '.':
-                return COMPRESSED_N_HIGH;
-
-            // IUPAC ambiguity codes
-            case 'M':
-            case 'm':
-                return COMPRESSED_M_HIGH;
-            case 'R':
-            case 'r':
-                return COMPRESSED_R_HIGH;
-            case 'S':
-            case 's':
-                return COMPRESSED_S_HIGH;
-            case 'V':
-            case 'v':
-                return COMPRESSED_V_HIGH;
-            case 'W':
-            case 'w':
-                return COMPRESSED_W_HIGH;
-            case 'Y':
-            case 'y':
-                return COMPRESSED_Y_HIGH;
-            case 'H':
-            case 'h':
-                return COMPRESSED_H_HIGH;
-            case 'K':
-            case 'k':
-                return COMPRESSED_K_HIGH;
-            case 'D':
-            case 'd':
-                return COMPRESSED_D_HIGH;
-            case 'B':
-            case 'b':
-                return COMPRESSED_B_HIGH;
-            default:
-                throw new IllegalArgumentException("Bad  byte passed to charToCompressedBase: " + base);
-        }
-    }
-
-    /**
-     * Convert from BAM nybble representation of a base in low-order nybble to ASCII byte.
-     * @param base One of COMPRESSED_*_LOW, a low-order nybble encoded base.
-     * @return ASCII base, one of ACGTN=.
-     */
-    private static byte compressedBaseToByteLow(final int base) {
-        switch (base & 0xf) {
-            case COMPRESSED_EQUAL_LOW:
-                return '=';
-            case COMPRESSED_A_LOW:
-                return 'A';
-            case COMPRESSED_C_LOW:
-                return 'C';
-            case COMPRESSED_G_LOW:
-                return 'G';
-            case COMPRESSED_T_LOW:
-                return 'T';
-            case COMPRESSED_N_LOW:
-                return 'N';
-
-            // IUPAC ambiguity codes
-            case COMPRESSED_M_LOW: return 'M';
-            case COMPRESSED_R_LOW: return 'R';
-            case COMPRESSED_S_LOW: return 'S';
-            case COMPRESSED_V_LOW: return 'V';
-            case COMPRESSED_W_LOW: return 'W';
-            case COMPRESSED_Y_LOW: return 'Y';
-            case COMPRESSED_H_LOW: return 'H';
-            case COMPRESSED_K_LOW: return 'K';
-            case COMPRESSED_D_LOW: return 'D';
-            case COMPRESSED_B_LOW: return 'B';
-
-
-            default:
-                throw new IllegalArgumentException("Bad  byte passed to charToCompressedBase: " + base);
-        }
-    }
-
-    /**
-     * Convert from BAM nybble representation of a base in high-order nybble to ASCII byte.
-     * @param base One of COMPRESSED_*_HIGH, a high-order nybble encoded base.
-     * @return ASCII base, one of ACGTN=.
-     */
-    private static byte compressedBaseToByteHigh(final int base) {
-        switch ((byte)(base & 0xf0)) {
-            case COMPRESSED_EQUAL_HIGH:
-                return '=';
-            case COMPRESSED_A_HIGH:
-                return 'A';
-            case COMPRESSED_C_HIGH:
-                return 'C';
-            case COMPRESSED_G_HIGH:
-                return 'G';
-            case COMPRESSED_T_HIGH:
-                return 'T';
-            case COMPRESSED_N_HIGH:
-                return 'N';
-
-            // IUPAC ambiguity codes
-            case COMPRESSED_M_HIGH: return 'M';
-            case COMPRESSED_R_HIGH: return 'R';
-            case COMPRESSED_S_HIGH: return 'S';
-            case COMPRESSED_V_HIGH: return 'V';
-            case COMPRESSED_W_HIGH: return 'W';
-            case COMPRESSED_Y_HIGH: return 'Y';
-            case COMPRESSED_H_HIGH: return 'H';
-            case COMPRESSED_K_HIGH: return 'K';
-            case COMPRESSED_D_HIGH: return 'D';
-            case COMPRESSED_B_HIGH: return 'B';
-
-            default:
-                throw new IllegalArgumentException("Bad  byte passed to charToCompressedBase: " + base);
-        }
-    }
-
-    /**
-     * Convert bases in place into canonical form, upper case, and with no-call represented as N.
-     * @param bases
-     */
-    static void normalizeBases(final byte[] bases) {
-        for (int i = 0; i < bases.length; ++i) {
-            bases[i] = StringUtil.toUpperCase(bases[i]);
-            if (bases[i] == '.') {
-                bases[i] = 'N';
-            }
-        }
-    }
-
-    /**
-     * Convert an array of bytes, in which each byte is a binary phred quality score, to
-     * printable ASCII representation of the quality scores, ala FASTQ format.
-     *
-     * Equivalent to phredToFastq(data, 0, data.length)
-     *
-     * @param data Array of bytes in which each byte is a binar phred score.
-     * @return String with ASCII representation of those quality scores.
-     */
-    public static String phredToFastq(final byte[] data) {
-        if (data == null) {
-            return null;
-        }
-        return phredToFastq(data, 0, data.length);
-    }
-
-    /**
-     * Convert an array of bytes, in which each byte is a binary phred quality score, to
-     * printable ASCII representation of the quality scores, ala FASTQ format.
-     * @param buffer Array of bytes in which each byte is a binar phred score.
-     * @param offset Where in buffer to start conversion.
-     * @param length How many bytes of buffer to convert.
-     * @return String with ASCII representation of those quality scores.
-     */
-    public static String phredToFastq(final byte[] buffer, final int offset, final int length) {
-        final char[] chars = new char[length];
-        for (int i = 0; i < length; i++) {
-            chars[i] = phredToFastq(buffer[offset+i] & 0xFF);
-        }
-        return new String(chars);
-    }
-
-    /**
-     * Convert a single binary phred score to printable ASCII representation, ala FASTQ format.
-     * @param phredScore binary phred score.
-     * @return Printable ASCII representation of phred score.
-     */
-    public static char phredToFastq(final int phredScore) {
-        if (phredScore < 0 || phredScore > MAX_PHRED_SCORE) {
-            throw new IllegalArgumentException("Cannot encode phred score: " + phredScore);
-        }
-        return (char) (33 + phredScore);
-    }
-
-    /**
-     * Convert a string with phred scores in printable ASCII FASTQ format to an array
-     * of binary phred scores.
-     * @param fastq Phred scores in FASTQ printable ASCII format.
-     * @return byte array of binary phred scores in which each byte corresponds to a character in the input string.
-     */
-    public static byte[] fastqToPhred(final String fastq) {
-        if (fastq == null) {
-            return null;
-        }
-        final int length = fastq.length();
-        final byte[] scores = new byte[length];
-        for (int i = 0; i < length; i++) {
-            scores[i] = (byte) fastqToPhred(fastq.charAt(i));
-        }
-        return scores;
-    }
-
-    /**
-     * Converts printable qualities in Sanger fastq format to binary phred scores.
-     */
-    public static void fastqToPhred(final byte[] fastq) {
-        for (int i = 0; i < fastq.length; ++i) {
-            fastq[i] = (byte)fastqToPhred((char)(fastq[i] & 0xff));
-        }
-    }
-
-    /**
-     * Convert a single printable ASCII FASTQ format phred score to binary phred score.
-     * @param ch Printable ASCII FASTQ format phred score.
-     * @return Binary phred score.
-     */
-    public static int fastqToPhred(final char ch) {
-        if (ch < 33 || ch > 126) {
-            throw new IllegalArgumentException("Invalid fastq character: " + ch);
-        }
-        return (ch - 33);
-    }
-
-    /**
-     * calculate the bin given an alignment in [beg,end)
-     * Copied from SAM spec.
-     * @param beg 0-based start of read (inclusive)
-     * @param end 0-based end of read (exclusive)
-     * @deprecated Use GenomicIndexUtil.reg2bin
-     */
-    static int reg2bin(final int beg, final int end)
-    {
-        return GenomicIndexUtil.reg2bin(beg, end);
-    }
-
-    /**
-     * Handle a list of validation errors according to the validation stringency.
-     * @param validationErrors List of errors to report, or null if there are no errors.
-     * @param samRecordIndex Record number of the SAMRecord corresponding to the validation errors, or -1 if
-     * the record number is not known.
-     * @param validationStringency If STRICT, throw a SAMFormatException.  If LENIENT, print the validation
-     * errors to stderr.  If SILENT, do nothing.
-     */
-    static void processValidationErrors(final List<SAMValidationError> validationErrors,
-                                        final long samRecordIndex,
-                                        final SAMFileReader.ValidationStringency validationStringency) {
-        if (validationErrors != null && validationErrors.size() > 0) {
-            for (final SAMValidationError validationError : validationErrors) {
-                validationError.setRecordNumber(samRecordIndex);
-            }
-            if (validationStringency == SAMFileReader.ValidationStringency.STRICT) {
-                throw new SAMFormatException("SAM validation error: " + validationErrors.get(0));
-            }
-            else if (validationStringency == SAMFileReader.ValidationStringency.LENIENT) {
-                for (final SAMValidationError error : validationErrors) {
-                    System.err.println("Ignoring SAM validation error: " + error);
-                }
-            }
-        }
-    }
-
-    public static void processValidationError(final SAMValidationError validationError,
-                                       final SAMFileReader.ValidationStringency validationStringency) {
-        if (validationStringency == SAMFileReader.ValidationStringency.STRICT) {
-            throw new SAMFormatException("SAM validation error: " + validationError);
-        }
-        else if (validationStringency == SAMFileReader.ValidationStringency.LENIENT) {
-            System.err.println("Ignoring SAM validation error: " + validationError);
-        }
-        
-    }
-
-	private static final SAMHeaderRecordComparator<SAMReadGroupRecord> HEADER_RECORD_COMPARATOR =
-			new SAMHeaderRecordComparator<SAMReadGroupRecord>(
-					SAMReadGroupRecord.PLATFORM_UNIT_TAG,
-					SAMReadGroupRecord.LIBRARY_TAG,
-					SAMReadGroupRecord.DATE_RUN_PRODUCED_TAG,
-					SAMReadGroupRecord.READ_GROUP_SAMPLE_TAG,
-					SAMReadGroupRecord.SEQUENCING_CENTER_TAG,
-					SAMReadGroupRecord.PLATFORM_TAG,
-					SAMReadGroupRecord.DESCRIPTION_TAG,
-					SAMReadGroupRecord.READ_GROUP_ID_TAG    // We don't actually want to compare with ID but it's suitable
-					// "just in case" since it's the only one that's actually required
-			);
-
-	/**
-	 * Calculate a hash code from identifying information in the RG (read group) records in a SAM file's
-	 * header. This hash code changes any time read groups are added or removed. Comparing one file's
-	 * hash code to another's tells you if the read groups in the BAM files are different.
-	 */
-	public static String calculateReadGroupRecordChecksum(final File input) {
-		final String ENCODING = "UTF-8";
-
-		final MessageDigest digest;
-		try {
-			digest = MessageDigest.getInstance("MD5");
-		} catch (final NoSuchAlgorithmException nsae) {
-			throw new Error("No MD5 algorithm was available in a Java JDK? Unheard-of!");
-		}
-
-		// Sort the read group records by their first
-		final SAMFileReader reader = new SAMFileReader(input);
-		final List<SAMReadGroupRecord> sortedRecords = new ArrayList<SAMReadGroupRecord>(reader.getFileHeader().getReadGroups());
-		Collections.sort(sortedRecords, HEADER_RECORD_COMPARATOR);
-
-		for (final SAMReadGroupRecord rgRecord : sortedRecords) {
-			final TreeMap<String, String> sortedAttributes = new TreeMap<String, String>();
-			for (final Map.Entry<String, String> attributeEntry : rgRecord.getAttributes()) {
-				sortedAttributes.put(attributeEntry.getKey(), attributeEntry.getValue());
-			}
-
-			try {
-				for (final Map.Entry<String, String> sortedEntry : sortedAttributes.entrySet()) {
-					if ( ! sortedEntry.getKey().equals(SAMReadGroupRecord.READ_GROUP_ID_TAG)) { // Redundant check, safety first
-						digest.update(sortedEntry.getKey().getBytes(ENCODING));
-						digest.update(sortedEntry.getValue().getBytes(ENCODING));
-					}
-				}
-			} catch (final UnsupportedEncodingException uee) {
-				throw new Error("No " + ENCODING + "!? WTH?");
-			}
-		}
-
-		// Convert to a String and pad to get the full 32 chars.
-		final StringBuilder hashText = new StringBuilder((new BigInteger(1, digest.digest())).toString(16));
-		while (hashText.length() < 32 ) hashText.insert(0, "0");
-
-		return hashText.toString();
-	}
-
-    /**
-     * Chains <code>program</code> in front of the first "head" item in the list of
-     * SAMProgramRecords in <code>header</code>.  This method should not be used
-     * when there are multiple chains of program groups in a header, only when
-     * it can safely be assumed that there is only one chain.  It correctly handles
-     * the case where <code>program</code> has already been added to the header, so
-     * it can be used whether creating a SAMProgramRecord with a constructor or when
-     * calling SAMFileHeader.createProgramRecord().
-     */
-    public static void chainSAMProgramRecord(final SAMFileHeader header, final SAMProgramRecord program) {
-
-        final List<SAMProgramRecord> pgs = header.getProgramRecords();
-        if (pgs.size() > 0) {
-            final List<String> referencedIds = new ArrayList<String>();
-            for (final SAMProgramRecord pg : pgs) {
-                if (pg.getPreviousProgramGroupId() != null) {
-                    referencedIds.add(pg.getPreviousProgramGroupId());
-                }
-            }
-            for (final SAMProgramRecord pg : pgs) {
-                // if record being chained has already been added, ignore it
-                if (pg.getProgramGroupId().equals(program.getProgramGroupId())) {
-                    continue;
-                }
-                if (!referencedIds.contains(pg.getProgramGroupId())) {
-                    program.setPreviousProgramGroupId(pg.getProgramGroupId());
-                    break;
-                }
-            }
-        }
-    }
-
-    public static void makeReadUnmapped(final SAMRecord rec) {
-        if (rec.getReadNegativeStrandFlag()) {
-            SAMRecordUtil.reverseComplement(rec);
-            rec.setReadNegativeStrandFlag(false);
-        }
-        rec.setDuplicateReadFlag(false);
-        rec.setReferenceIndex(SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX);
-        rec.setAlignmentStart(SAMRecord.NO_ALIGNMENT_START);
-        rec.setCigarString(SAMRecord.NO_ALIGNMENT_CIGAR);
-        rec.setMappingQuality(SAMRecord.NO_MAPPING_QUALITY);
-        rec.setInferredInsertSize(0);
-        rec.setNotPrimaryAlignmentFlag(false);
-        rec.setProperPairFlag(false);
-        rec.setReadUnmappedFlag(true);
-    }
-
-
-    /**
-     * Determines if a cigar has any element that both consumes read bases and consumes reference bases
-     * (e.g. is not all soft-clipped)
-     */
-    public static boolean cigarMapsNoBasesToRef(final Cigar cigar) {
-        for (final CigarElement el : cigar.getCigarElements()) {
-            if (el.getOperator().consumesReadBases() && el.getOperator().consumesReferenceBases()) {
-                return false;
-            }
-        }
-        return true;
-    }
-
-    /**
-     * Tests if the provided record is mapped entirely beyond the end of the reference (i.e., the alignment start is greater than the
-     * length of the sequence to which the record is mapped).
-     */
-    public static boolean recordMapsEntirelyBeyondEndOfReference(final SAMRecord record) {
-        return record.getHeader().getSequence(record.getReferenceIndex()).getSequenceLength() < record.getAlignmentStart();
-    }
-    
-    /**
-     *
-     * @return negative if mapq1 < mapq2, etc.
-     * Note that MAPQ(0) < MAPQ(255) < MAPQ(1)
-     */
-    public static int compareMapqs(final int mapq1, final int mapq2) {
-        if (mapq1 == mapq2) return 0;
-        if (mapq1 == 0)  return -1;
-        else if (mapq2 == 0) return 1;
-        else if (mapq1 == 255) return -1;
-        else if (mapq2 == 255) return 1;
-        else return mapq1 - mapq2;
-    }
-
-
-    /**
-     * Hokey algorithm for combining two MAPQs into values that are comparable, being cognizant of the fact
-     * that in MAPQ world, 1 > 255 > 0. In this algorithm, 255 is treated as if it were 0.01, so that
-     * CombinedMapq(1,0) > CombinedMapq(255, 255) > CombinedMapq(0, 0).
-     * The return value should not be used for anything other than comparing to the return value of other
-     * invocations of this method.
-     */
-    public static int combineMapqs(int m1, int m2) {
-        if (m1 == 255) m1 = 1;
-        else m1 *= 100;
-
-        if (m2 == 255) m2 = 1;
-        else m2 *= 100;
-
-        return m1 + m2;
-
-    }
-
-    /**
-     * Returns the virtual file offset of the first record in a BAM file - i.e. the virtual file
-     * offset after skipping over the text header and the sequence records.
-     */
-    public static long findVirtualOffsetOfFirstRecordInBam(final File bamFile) {
-        try { return BAMFileReader.findVirtualOffsetOfFirstRecord(bamFile); }
-        catch (final IOException ioe) { throw new RuntimeEOFException(ioe); }
-    }
-
-    /**
-     * Given a Cigar, Returns blocks of the sequence that have been aligned directly to the
-     * reference sequence. Note that clipped portions, and inserted and deleted bases (vs. the reference)
-     * are not represented in the alignment blocks.
-     *
-     * @param cigar The cigar containing the alignment information
-     * @param alignmentStart The start (1-based) of the alignment
-     * @param cigarTypeName The type of cigar passed - for error logging.
-     * @return List of alignment blocks
-     */
-    public static List<AlignmentBlock> getAlignmentBlocks(final Cigar cigar, final int alignmentStart, final String cigarTypeName) {
-        if (cigar == null) return Collections.emptyList();
-
-        final List<AlignmentBlock> alignmentBlocks = new ArrayList<AlignmentBlock>();
-        int readBase = 1;
-        int refBase  = alignmentStart;
-
-        for (final CigarElement e : cigar.getCigarElements()) {
-            switch (e.getOperator()) {
-                case H : break; // ignore hard clips
-                case P : break; // ignore pads
-                case S : readBase += e.getLength(); break; // soft clip read bases
-                case N : refBase += e.getLength(); break;  // reference skip
-                case D : refBase += e.getLength(); break;
-                case I : readBase += e.getLength(); break;
-                case M :
-                case EQ :
-                case X :
-                    final int length = e.getLength();
-                    alignmentBlocks.add(new AlignmentBlock(readBase, refBase, length));
-                    readBase += length;
-                    refBase  += length;
-                    break;
-                default : throw new IllegalStateException("Case statement didn't deal with " + cigarTypeName + " op: " + e.getOperator());
-            }
-        }
-        return Collections.unmodifiableList(alignmentBlocks);
-    }
-
-    /**
-     * @param alignmentStart The start (1-based) of the alignment
-     * @param cigar The cigar containing the alignment information
-     * @return the alignment start (1-based, inclusive) adjusted for clipped bases.  For example if the read
-     * has an alignment start of 100 but the first 4 bases were clipped (hard or soft clipped)
-     * then this method will return 96.
-     *
-     * Invalid to call on an unmapped read.
-     * Invalid to call with cigar = null
-     */
-    public static int getUnclippedStart(final int alignmentStart, final Cigar cigar) {
-        int unClippedStart = alignmentStart;
-        for (final CigarElement cig : cigar.getCigarElements()) {
-            final CigarOperator op = cig.getOperator();
-            if (op == CigarOperator.SOFT_CLIP || op == CigarOperator.HARD_CLIP) {
-                unClippedStart -= cig.getLength();
-            }
-            else {
-                break;
-            }
-        }
-
-        return unClippedStart;
-    }
-
-    /**
-     * @param alignmentEnd The end (1-based) of the alignment
-     * @param cigar The cigar containing the alignment information
-     * @return the alignment end (1-based, inclusive) adjusted for clipped bases.  For example if the read
-     * has an alignment end of 100 but the last 7 bases were clipped (hard or soft clipped)
-     * then this method will return 107.
-     *
-     * Invalid to call on an unmapped read.
-     * Invalid to call with cigar = null
-     */
-    public static int getUnclippedEnd(final int alignmentEnd, final Cigar cigar) {
-        int unClippedEnd = alignmentEnd;
-        final List<CigarElement> cigs = cigar.getCigarElements();
-        for (int i=cigs.size() - 1; i>=0; --i) {
-            final CigarElement cig = cigs.get(i);
-            final CigarOperator op = cig.getOperator();
-
-            if (op == CigarOperator.SOFT_CLIP || op == CigarOperator.HARD_CLIP) {
-                unClippedEnd += cig.getLength();
-            }
-            else {
-                break;
-            }
-        }
-
-        return unClippedEnd;
-    }
-
-    /**
-     * Returns the Mate Cigar String as stored in the attribute 'MC'.
-     * @param rec the SAM record
-     * @return Mate Cigar String, or null if there is none.
-     */
-    public static String getMateCigarString(final SAMRecord rec) {
-        return rec.getStringAttribute(SAMTag.MC.name());
-    }
-
-    /**
-     * Returns the Mate Cigar or null if there is none.
-     * @param rec the SAM record
-     * @param withValidation true if we are to validate the mate cigar before returning, false otherwise.
-     * @return Cigar object for the read's mate, or null if there is none.
-     */
-    public static Cigar getMateCigar(final SAMRecord rec, final boolean withValidation) {
-        final String mateCigarString = getMateCigarString(rec);
-        Cigar mateCigar = null;
-        if (mateCigarString != null) {
-            mateCigar = TextCigarCodec.getSingleton().decode(mateCigarString);
-            if (withValidation && rec.getValidationStringency() != SAMFileReader.ValidationStringency.SILENT) {
-                final List<AlignmentBlock> alignmentBlocks = getAlignmentBlocks(mateCigar, rec.getMateAlignmentStart(), "mate cigar");
-                SAMUtils.processValidationErrors(validateCigar(rec, mateCigar, rec.getMateReferenceIndex(), alignmentBlocks, -1, "Mate CIGAR"), -1L, rec.getValidationStringency());
-            }
-        }
-        return mateCigar;
-    }
-
-    /**
-     * Returns the Mate Cigar or null if there is none.  No validation is done on the returned cigar.
-     * @param rec the SAM record
-     * @return Cigar object for the read's mate, or null if there is none.
-     */
-    public static Cigar getMateCigar(final SAMRecord rec) {
-        return getMateCigar(rec, false);
-    }
-
-    /**
-     * @param rec the SAM record
-     * @return number of cigar elements (number + operator) in the mate cigar string.
-     */
-    public static int getMateCigarLength(final SAMRecord rec) {
-        final Cigar mateCigar = getMateCigar(rec);
-        return (mateCigar != null) ? mateCigar.numCigarElements() : 0;
-    }
-
-    /**
-     * This method uses the MateCigar value as determined from the attribute MC.  It must be non-null.
-     * @param rec the SAM record
-     * @return 1-based inclusive rightmost position of the clipped mate sequence, or 0 read if unmapped.
-     */
-    public static int getMateAlignmentEnd(final SAMRecord rec) {
-        if (rec.getMateUnmappedFlag()) {
-            throw new RuntimeException("getMateAlignmentEnd called on an unmapped mate.");
-        }
-        final Cigar mateCigar = SAMUtils.getMateCigar(rec);
-        if (mateCigar == null) {
-            throw new SAMException("Mate CIGAR (Tag MC) not found.");
-        }
-        return CoordMath.getEnd(rec.getMateAlignmentStart(), mateCigar.getReferenceLength());
-    }
-
-    /**
-     * @param rec the SAM record
-     * @return the mate alignment start (1-based, inclusive) adjusted for clipped bases.  For example if the mate
-     * has an alignment start of 100 but the first 4 bases were clipped (hard or soft clipped)
-     * then this method will return 96.
-     *
-     * Invalid to call on an unmapped read.
-     */
-    public static int getMateUnclippedStart(final SAMRecord rec) {
-        if (rec.getMateUnmappedFlag())
-            throw new RuntimeException("getMateUnclippedStart called on an unmapped mate.");
-        final Cigar mateCigar = getMateCigar(rec);
-        if (mateCigar == null) {
-            throw new SAMException("Mate CIGAR (Tag MC) not found.");
-        }
-        return SAMUtils.getUnclippedStart(rec.getMateAlignmentStart(), mateCigar);
-    }
-
-
-    /**
-     * @param rec the SAM record
-     * @return the mate alignment end (1-based, inclusive) adjusted for clipped bases.  For example if the mate
-     * has an alignment end of 100 but the last 7 bases were clipped (hard or soft clipped)
-     * then this method will return 107.
-     *
-     * Invalid to call on an unmapped read.
-     */
-    public static int getMateUnclippedEnd(final SAMRecord rec) {
-        if (rec.getMateUnmappedFlag()) {
-            throw new RuntimeException("getMateUnclippedEnd called on an unmapped mate.");
-        }
-        final Cigar mateCigar = SAMUtils.getMateCigar(rec);
-        if (mateCigar == null) {
-            throw new SAMException("Mate CIGAR (Tag MC) not found.");
-        }
-        return SAMUtils.getUnclippedEnd(getMateAlignmentEnd(rec), mateCigar);
-    }
-
-    /**
-     * @param rec the SAM record
-     * Returns blocks of the mate sequence that have been aligned directly to the
-     * reference sequence. Note that clipped portions of the mate and inserted and
-     * deleted bases (vs. the reference) are not represented in the alignment blocks.
-     */
-    public static List<AlignmentBlock> getMateAlignmentBlocks(final SAMRecord rec) {
-        return getAlignmentBlocks(getMateCigar(rec), rec.getMateAlignmentStart(), "mate cigar");
-    }
-
-    /**
-     * Run all validations of the mate's CIGAR.  These include validation that the CIGAR makes sense independent of
-     * placement, plus validation that CIGAR + placement yields all bases with M operator within the range of the reference.
-     * @param rec the SAM record
-     * @param cigar The cigar containing the alignment information
-     * @param referenceIndex The reference index
-     * @param alignmentBlocks The alignment blocks (parsed from the cigar)
-     * @param recordNumber For error reporting.  -1 if not known.
-     * @param cigarTypeName For error reporting.  "Read CIGAR" or "Mate Cigar"
-     * @return List of errors, or null if no errors.
-     */
-
-    public static List<SAMValidationError> validateCigar(final SAMRecord rec,
-                                                  final Cigar cigar,
-                                                   final Integer referenceIndex,
-                                                   final List<AlignmentBlock> alignmentBlocks,
-                                                   final long recordNumber,
-                                                   final String cigarTypeName) {
-        // Don't know line number, and don't want to force read name to be decoded.
-        List<SAMValidationError> ret = cigar.isValid(rec.getReadName(), recordNumber);
-        if (referenceIndex != SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX) {
-            final SAMSequenceRecord sequence = rec.getHeader().getSequence(referenceIndex);
-            final int referenceSequenceLength = sequence.getSequenceLength();
-            for (final AlignmentBlock alignmentBlock : alignmentBlocks) {
-                if (alignmentBlock.getReferenceStart() + alignmentBlock.getLength() - 1 > referenceSequenceLength) {
-                    if (ret == null) ret = new ArrayList<SAMValidationError>();
-                    ret.add(new SAMValidationError(SAMValidationError.Type.CIGAR_MAPS_OFF_REFERENCE,
-                            cigarTypeName + " M operator maps off end of reference", rec.getReadName(), recordNumber));
-                    break;
-                }
-            }
-        }
-        return ret;
-    }
-
-    /**
-     * Run all validations of the mate's CIGAR.  These include validation that the CIGAR makes sense independent of
-     * placement, plus validation that CIGAR + placement yields all bases with M operator within the range of the reference.
-     * @param rec the SAM record
-     * @param recordNumber For error reporting.  -1 if not known.
-     * @return List of errors, or null if no errors.
-     */
-    public static List<SAMValidationError> validateMateCigar(final SAMRecord rec, final long recordNumber) {
-        List<SAMValidationError> ret = null;
-
-        if (rec.getValidationStringency() != SAMFileReader.ValidationStringency.SILENT) {
-            if (rec.getReadPairedFlag() && !rec.getMateUnmappedFlag()) {      // The mateCigar will be defined if the mate is mapped
-                if (getMateCigarString(rec) != null) {
-                    ret = SAMUtils.validateCigar(rec, getMateCigar(rec), rec.getMateReferenceIndex(), getMateAlignmentBlocks(rec), recordNumber, "Mate CIGAR");
-                }
-            } else {
-                if (getMateCigarString(rec) != null) {
-                    ret = new ArrayList<SAMValidationError>();
-                    if (rec.getMateUnmappedFlag()) {
-                        // If the Mate is unmapped, and the Mate Cigar String (MC Attribute) exists, that is a validation error.
-                        ret.add(new SAMValidationError(SAMValidationError.Type.MATE_CIGAR_STRING_INVALID_PRESENCE,
-                                "Mate CIGAR String (MC Attribute) present for a read whose mate is unmapped", rec.getReadName(), recordNumber));
-                    }
-                    else {
-                        // If the Mate is not paired, and the Mate Cigar String (MC Attribute) exists, that is a validation error.
-                        ret.add(new SAMValidationError(SAMValidationError.Type.MATE_CIGAR_STRING_INVALID_PRESENCE,
-                                "Mate CIGAR String (MC Attribute) present for a read that is not paired", rec.getReadName(), recordNumber));
-                    }
-                }
-            }
-        }
-
-        return ret;
-    }
-
-    /**
-     * Checks to see if it is valid for this record to have a mate CIGAR (MC) and then if there is a mate CIGAR available.  This is done by
-     * checking that this record is paired, its mate is mapped, and that it returns a non-null mate CIGAR.
-     * @param rec
-     * @return
-     */
-    public static boolean hasMateCigar(SAMRecord rec) {
-        // NB: use getMateCigarString rather than getMateCigar to avoid validation.
-        return (rec.getReadPairedFlag() && !rec.getMateUnmappedFlag() && null != SAMUtils.getMateCigarString(rec));
-    }
-}
diff --git a/src/java/net/sf/samtools/SAMValidationError.java b/src/java/net/sf/samtools/SAMValidationError.java
deleted file mode 100644
index 3690d81..0000000
--- a/src/java/net/sf/samtools/SAMValidationError.java
+++ /dev/null
@@ -1,288 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-/**
- * Class that encapsulates a validation error message as well as a type code so that
- * errors can be aggregated by type.
- *
- * @author Doug Voet
- */
-public class SAMValidationError {
-    public enum Severity {
-        WARNING, ERROR
-    }
-
-    public enum Type {
-        /** quality encodings out of range; appear to be Solexa or Illumina when Phread expected */
-        INVALID_QUALITY_FORMAT(Severity.WARNING),
-
-        /** proper pair flag set for unpaired read */
-        INVALID_FLAG_PROPER_PAIR,
-
-        /** mate unmapped flag set when mate is mapped or not set when mate is not mapped */
-        INVALID_FLAG_MATE_UNMAPPED,
-
-        /** mate unmapped flag does not match read unmapped flag of mate */
-        MISMATCH_FLAG_MATE_UNMAPPED,
-
-        /** mate negative strand flag set for unpaired read */
-        INVALID_FLAG_MATE_NEG_STRAND,
-
-        /** mate negative strand flag does not match read negative strand flag of mate */
-        MISMATCH_FLAG_MATE_NEG_STRAND,
-
-        /** first of pair flag set for unpaired read */
-        INVALID_FLAG_FIRST_OF_PAIR,
-
-        /** second of pair flag set for unpaired read */
-        INVALID_FLAG_SECOND_OF_PAIR,
-
-        /** pair flag set but not marked as first or second of pair */
-        PAIRED_READ_NOT_MARKED_AS_FIRST_OR_SECOND(Severity.WARNING),
-
-        /** not primary alignment flag set for unmapped read */
-        INVALID_FLAG_NOT_PRIM_ALIGNMENT,
-
-        /** supplementary alignment flag set for unmapped read */
-        INVALID_FLAG_SUPPLEMENTARY_ALIGNMENT,
-
-        /** mapped read flat not set for mapped read */
-        INVALID_FLAG_READ_UNMAPPED,
-
-        /**
-         * inferred insert size is out of range
-         * @see SAMRecord#MAX_INSERT_SIZE
-         */
-        INVALID_INSERT_SIZE,
-
-        /** mapping quality set for unmapped read or is >= 256 */
-        INVALID_MAPPING_QUALITY,
-
-        /** CIGAR string is empty for mapped read or not empty of unmapped read, or other CIGAR badness. */
-        INVALID_CIGAR,
-
-        /** CIGAR string contains I followed by D, or vice versa */
-        ADJACENT_INDEL_IN_CIGAR(Severity.WARNING),
-
-        /** mate reference index (MRNM) set for unpaired read */
-        INVALID_MATE_REF_INDEX,
-
-        /** mate reference index (MRNM) does not match reference index of mate */
-        MISMATCH_MATE_REF_INDEX,
-
-        /** reference index not found in sequence dictionary */
-        INVALID_REFERENCE_INDEX,
-
-        /** alignment start is can not be correct */
-        INVALID_ALIGNMENT_START,
-
-        /** mate alignment does not match alignment start of mate */
-        MISMATCH_MATE_ALIGNMENT_START,
-
-        /** the record's mate fields do not match the corresponding fields of the mate */
-        MATE_FIELD_MISMATCH,
-
-        /** the NM tag (nucleotide differences) is incorrect */
-        INVALID_TAG_NM,
-
-        /** the NM tag (nucleotide differences) is missing */
-        MISSING_TAG_NM(Severity.WARNING),
-
-        /** the sam/bam file is missing the header */
-        MISSING_HEADER,
-
-        /** there is no sequence dictionary in the header */
-        MISSING_SEQUENCE_DICTIONARY,
-
-        /** the header is missing read group information */
-        MISSING_READ_GROUP,
-
-        /** the record is out of order */
-        RECORD_OUT_OF_ORDER,
-
-        /** A read group ID on a SAMRecord is not found in the header */
-        READ_GROUP_NOT_FOUND,
-
-        /** A SAMRecord is found with no read group id */
-        RECORD_MISSING_READ_GROUP(Severity.WARNING),
-
-        /** Indexing bin set on SAMRecord does not agree with computed value. */
-        INVALID_INDEXING_BIN,
-
-        MISSING_VERSION_NUMBER,
-
-        INVALID_VERSION_NUMBER,
-
-        TRUNCATED_FILE,
-
-        MISMATCH_READ_LENGTH_AND_QUALS_LENGTH,
-
-        EMPTY_READ,
-
-        /**
-         * Bases corresponding to M operator in CIGAR are beyond the end of the reference.
-         */
-        CIGAR_MAPS_OFF_REFERENCE,
-
-        /** Length of E2 (secondary base calls) and U2 (secondary base quals) tag values should match read length */
-        MISMATCH_READ_LENGTH_AND_E2_LENGTH,
-        MISMATCH_READ_LENGTH_AND_U2_LENGTH,
-
-        /** Secondary base calls should not be the same as primary, unless one or the other is N */
-        E2_BASE_EQUALS_PRIMARY_BASE(Severity.WARNING),
-
-        /** BAM appears to be healthy, but is an older file so doesn't have terminator block. */
-        BAM_FILE_MISSING_TERMINATOR_BLOCK(Severity.WARNING),
-
-        /** Header record is not one of the standard types */
-        UNRECOGNIZED_HEADER_TYPE,
-
-        /** Header tag does not have colon */
-        POORLY_FORMATTED_HEADER_TAG,
-
-        /** Header tag appears more than once in header line with different value */
-        HEADER_TAG_MULTIPLY_DEFINED,
-
-        HEADER_RECORD_MISSING_REQUIRED_TAG,
-
-        /** Date string is not ISO-8601 */
-        INVALID_DATE_STRING(Severity.WARNING),
-
-        /** Unsigned integer tag value is deprecated in BAM. */
-        TAG_VALUE_TOO_LARGE,
-
-        /** Invalid virtualFilePointer in index */
-        INVALID_INDEX_FILE_POINTER,
-
-        /** PI tag value is not numeric. */
-        INVALID_PREDICTED_MEDIAN_INSERT_SIZE,
-
-        /** Same read group id appears more than once */
-        DUPLICATE_READ_GROUP_ID,
-
-        /** The read group is missing its PL (platform unit) field */
-        MISSING_PLATFORM_VALUE,
-
-        /** The read group has an invalid value set for its PL field */
-        INVALID_PLATFORM_VALUE,
-
-        /** Same program group id appears more than once */
-        DUPLICATE_PROGRAM_GROUP_ID,
-
-        /** Read is marked as paired, but its pair was not found.  */
-        MATE_NOT_FOUND,
-
-        /** Both mates are marked as first of pair, or both mates are marked as second of pair. */
-        MATES_ARE_SAME_END,
-
-        /** The Cigar String in the MC Tag does not match the Cigar String for the mate of this read. */
-        MISMATCH_MATE_CIGAR_STRING,
-
-        /** There is a Cigar String (stored in the MC Tag) for a read whose mate is NOT mapped. */
-        MATE_CIGAR_STRING_INVALID_PRESENCE;
-
-        public final Severity severity;
-
-        private Type() {
-            this.severity = Severity.ERROR;
-        }
-
-        private Type(final Severity severity) {
-            this.severity = severity;
-        }
-
-        /**
-         * @return Format for writing to histogram summary output.
-         */
-        public String getHistogramString() {
-            return this.severity.name() + ":" + this.name();
-        }
-    }
-
-    private final Type type;
-    private final String message;
-    private final String readName;
-    private long recordNumber = -1;
-    private String source;
-
-    /**
-     * Construct a SAMValidationError with unknown record number.
-     * @param type
-     * @param message
-     * @param readName May be null if readName is not known.
-     */
-    public SAMValidationError(final Type type, final String message, final String readName) {
-        this.type = type;
-        this.message = message;
-        this.readName = readName;
-    }
-
-    /**
-     * Construct a SAMValidationError with possibly-known record number.
-     * @param type
-     * @param message
-     * @param readName May be null if readName is not known.
-     * @param recordNumber Position of the record in the SAM file it has been read from.  -1 if not known.
-     */
-    public SAMValidationError(final Type type, final String message, final String readName, final long recordNumber) {
-        this(type, message, readName);
-        this.recordNumber = recordNumber;
-    }
-
-    public String toString() {
-        final StringBuilder builder = new StringBuilder();
-        builder.append(type.severity.toString());
-        builder.append(": ");
-        if (source != null) {
-            builder.append("File ").append(source.toString()).append(", ");
-        }
-        if (recordNumber > 0) {
-            builder.append("Record ").append(recordNumber).append(", ");
-        }
-        if (readName != null) {
-            builder.append("Read name ").append(readName).append(", ");
-        }
-        return builder.append(message).toString();
-    }
-
-    public Type getType() { return type; }
-    public String getMessage() { return message; }
-
-    /** may be null */
-    public String getReadName() { return readName; }
-
-    /** 1-based.  -1 if not known. */
-    public long getRecordNumber() { return recordNumber; }
-
-    public void setRecordNumber(final long recordNumber) { this.recordNumber = recordNumber; }
-
-    public String getSource() {
-        return source;
-    }
-
-    public void setSource(final String source) {
-        this.source = source;
-    }
-}
diff --git a/src/java/net/sf/samtools/SQTagUtil.java b/src/java/net/sf/samtools/SQTagUtil.java
deleted file mode 100644
index 72659b1..0000000
--- a/src/java/net/sf/samtools/SQTagUtil.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-/**
- * Utility methods for encoding and decoding the SQ tag value of SAMRecord.
- * 
- * @author alecw at broadinstitute.org
- */
-public class SQTagUtil {
-    /**
-     * The ordinals of these are stored in the high-order 2 bits of each byte of the SQ tag.
-     * Note that these have the convenient property that the binary complement of each ordinal, masked to
-     * the two low-order bits, is the complementary base.
-     */
-    public enum SQBase {
-        SQ_A('A'), SQ_C('C'), SQ_G('G'), SQ_T('T');
-        private final Character base;
-
-        SQBase(final Character base) {
-            this.base = base;
-        }
-
-        public Character getBase() {
-            return base;
-        }
-    }
-
-    /**
-     * For complementing SQBase ordinals.
-     */
-    private static final int COMPLEMENT_MASK = 3;
-
-    private static final int QUALITY_MASK = 0x3f;
-    public static final byte MAX_QUALITY = QUALITY_MASK;
-    private static final int BASE_INDEX_SHIFT = 6;
-
-    /**
-     * Convert a pair of likelihoods into a value suitable for passing to baseAndProbDiffToSqValue.
-     * @param secondBestLikelihood Probability of the 2nd-best base call.  1 > secondBestLikelihood > thirdBestLikelihood.
-     * @param thirdBestLikelihood Probability of the 3rd-best base call.  thirdBestLikelihood > 0.
-     * @return ratio of input probabilities for storing in SQ tag.
-     */
-    public static byte sqScaledProbabilityRatio(final double secondBestLikelihood, final double thirdBestLikelihood) {
-        if (secondBestLikelihood >= 1.0 || thirdBestLikelihood <= 0 || thirdBestLikelihood > secondBestLikelihood) {
-            throw new IllegalArgumentException("Likelihoods out of range.  second best: " + secondBestLikelihood +
-            "; third best: " + thirdBestLikelihood);
-        }
-        // Cap value at QUALITY_MASK
-        return (byte)(Math.min(Math.round(-10.0 * Math.log10(thirdBestLikelihood/secondBestLikelihood)), QUALITY_MASK));
-    }
-
-    /**
-     * Compress a base and a log probabiliy difference (-10log10(p3/p2)) into
-     * a single byte so that it can be output in a SAMRecord's SQ field.
-     *
-     * @param base  the 2nd-best base.
-     * @param probRatio   the log probability difference between the secondary and tertiary bases (-10log10(p3/p2)),
-     * rounded to an integer and capped so it fits in 6 bits.
-     * @return a byte containing the index and the log probability difference.
-     */
-    public static byte baseAndProbDiffToSqValue(final SQBase base, final byte probRatio) {
-        return baseAndProbDiffToSqValue(base.ordinal(), probRatio);
-    }
-
-    /**
-     * Compress a base and a log probabiliy difference (-10log10(p3/p2)) into
-     * a single byte so that it can be output in a SAMRecord's SQ field.
-     *
-     * @param base  the 2nd-best base (A=0, C=1, G=2, T=3).
-     * @param probRatio   the log probability difference between the secondary and tertiary bases (-10log10(p3/p2)),
-     * rounded to an integer and capped so it fits in 6 bits.  If this value is > MAX_QUALITY, it is truncated to that.
-     * @return a byte containing the index and the log probability difference.
-     */
-    public static byte baseAndProbDiffToSqValue(final int base, final byte probRatio) {
-        return (byte)((base << BASE_INDEX_SHIFT) | Math.min(probRatio, QUALITY_MASK));
-    }
-
-    /**
-     * Retrieve SQ-scaled probability ratio from SQ value.
-     * @param sqValue
-     * @return the log probability difference between the secondary and tertiary bases (-10log10(p3/p2)).
-     */
-    public static byte sqValueToProbRatio(final byte sqValue) {
-        return (byte)(sqValue & QUALITY_MASK);
-    }
-
-    /**
-     * Retrieve the 2nd-best base call from SQ value.
-     * @param sqValue
-     * @return 2nd-best base call.
-     */
-    public static SQBase sqValueToBase(final byte sqValue) {
-        return SQBase.values()[sqValueToBaseOrdinal(sqValue)];
-    }
-
-    /**
-     * Retrieve the 2nd-best base call from SQ value.
-     * @param sqValue
-     * @return Ordinal of 2nd-best base call.
-     */
-    public static int sqValueToBaseOrdinal(final byte sqValue) {
-        return (sqValue & 0xff) >>> BASE_INDEX_SHIFT;
-    }
-
-
-    /**
-     * Reverses and complements the sqValues in place.
-     * @param sqArray Array of SQ-values, with 2nd-best base in high-order 2 bits, and probability diff
-     * in low-order 6 bits.
-     */
-    public static void reverseComplementSqArray(final byte[] sqArray) {
-        final int lastIndex = sqArray.length - 1;
-
-        int i, j;
-        for (i=0, j=lastIndex; i<j; ++i, --j) {
-            final byte tmp = complementSqValue(sqArray[i]);
-            sqArray[i] = complementSqValue(sqArray[j]);
-            sqArray[j] = tmp;
-        }
-        if (sqArray.length % 2 == 1) {
-            sqArray[i] = complementSqValue(sqArray[i]);
-        }
-    }
-
-    private static byte complementSqValue(final byte sqValue) {
-        final byte probDiff = sqValueToProbRatio(sqValue);
-        final int baseOrdinal = sqValueToBaseOrdinal(sqValue);
-        final int complementOrdinal = COMPLEMENT_MASK & ~baseOrdinal;
-        return baseAndProbDiffToSqValue(complementOrdinal, probDiff);
-    }
-
-}
diff --git a/src/java/net/sf/samtools/SamPairUtil.java b/src/java/net/sf/samtools/SamPairUtil.java
deleted file mode 100644
index e93028f..0000000
--- a/src/java/net/sf/samtools/SamPairUtil.java
+++ /dev/null
@@ -1,319 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.samtools;
-
-import java.util.Iterator;
-import java.util.List;
-
-/**
- * Utility methods for pairs of SAMRecords
- */
-public class SamPairUtil {
-
-    /**
-     * The possible orientations of paired reads.
-     *
-     * F = mapped to forward strand
-     * R = mapped to reverse strand
-     *
-     * FR means the read that's mapped to the forward strand comes before the
-     * read mapped to the reverse strand when their 5'-end coordinates are
-     * compared.
-     */
-    public static enum PairOrientation
-    {
-        FR,     // ( 5' --F-->       <--R-- 5'  )  - aka. innie
-        RF,     // (   <--R-- 5'   5' --F-->    )  - aka. outie
-        TANDEM; // ( 5' --F-->   5' --F-->  or  (  <--R-- 5'   <--R-- 5'  )
-
-    };
-
-
-    /**
-     * Computes the pair orientation of the given SAMRecord.
-     * @param r
-     * @return PairOrientation of the given SAMRecord.
-     * @throws IllegalArgumentException If the record is not a paired read, or
-     * one or both reads are unmapped.
-     */
-    public static PairOrientation getPairOrientation(SAMRecord r)
-    {
-        final boolean readIsOnReverseStrand = r.getReadNegativeStrandFlag();
-
-        if(r.getReadUnmappedFlag() || !r.getReadPairedFlag() || r.getMateUnmappedFlag()) {
-            throw new IllegalArgumentException("Invalid SAMRecord: " + r.getReadName() + ". This method only works for SAMRecords " +
-                    "that are paired reads with both reads aligned.");
-        }
-
-        if(readIsOnReverseStrand == r.getMateNegativeStrandFlag() )  {
-            return PairOrientation.TANDEM;
-        }
-
-        final long positiveStrandFivePrimePos = ( readIsOnReverseStrand
-                ?  r.getMateAlignmentStart()  //mate's 5' position  ( x---> )
-                :  r.getAlignmentStart() );   //read's 5' position  ( x---> )
-
-        final long negativeStrandFivePrimePos = ( readIsOnReverseStrand
-                ?  r.getAlignmentEnd()                                   //read's 5' position  ( <---x )
-                :  r.getAlignmentStart() + r.getInferredInsertSize() );  //mate's 5' position  ( <---x )
-
-        return ( positiveStrandFivePrimePos < negativeStrandFivePrimePos
-                ? PairOrientation.FR
-                : PairOrientation.RF );
-    }
-
-
-
-    // TODO: KT and TF say this is more complicated than what I have here
-    public static boolean isProperPair(final SAMRecord firstEnd, final SAMRecord secondEnd,
-                                       final List<PairOrientation> expectedOrientations) {
-        // are both records mapped?
-        if (firstEnd.getReadUnmappedFlag() || secondEnd.getReadUnmappedFlag()) {
-            return false;
-        }
-        if (firstEnd.getReferenceName().equals(SAMRecord.NO_ALIGNMENT_REFERENCE_NAME)) {
-            return false;
-        }
-        // AND are they both mapped to the same chromosome
-
-        if (!firstEnd.getReferenceName().equals(secondEnd.getReferenceName())) {
-            return false;
-        }
-
-        // AND is the pair orientation in the set of expected orientations
-        final PairOrientation actual = getPairOrientation(firstEnd);
-        return expectedOrientations.contains(actual);
-    }
-
-    public static void assertMate(final SAMRecord firstOfPair, final SAMRecord secondOfPair) {
-        // Validate paired reads arrive as first of pair, then second of pair
-
-        if (firstOfPair == null) {
-            throw new SAMException(
-                    "First record does not exist - cannot perform mate assertion!");
-        } else if (secondOfPair == null) {
-            throw new SAMException(
-                    firstOfPair.toString() + " is missing its mate");
-        } else if (!firstOfPair.getReadPairedFlag()) {
-            throw new SAMException(
-                    "First record is not marked as paired: " + firstOfPair.toString());
-        } else if (!secondOfPair.getReadPairedFlag()) {
-            throw new SAMException(
-                    "Second record is not marked as paired: " + secondOfPair.toString());
-        } else if (!firstOfPair.getFirstOfPairFlag()) {
-            throw new SAMException(
-                    "First record is not marked as first of pair: " + firstOfPair.toString());
-        } else if (!secondOfPair.getSecondOfPairFlag()) {
-            throw new SAMException(
-                    "Second record is not marked as second of pair: " + secondOfPair.toString());
-        } else if (!firstOfPair.getReadName().equals(secondOfPair.getReadName())) {
-            throw new SAMException(
-                    "First [" + firstOfPair.getReadName() + "] and Second [" +
-                            secondOfPair.getReadName() + "] readnames do not match!");
-        }
-    }
-
-    /**
-     * Obtain the secondOfPair mate belonging to the firstOfPair SAMRecord
-     * (assumed to be in the next element of the specified samRecordIterator)
-     * @param samRecordIterator the iterator assumed to contain the secondOfPair SAMRecord in the
-     * next element in the iteration
-     * @param firstOfPair the firstOfPair SAMRecord
-     * @return the secondOfPair SAMRecord
-     * @throws SAMException when the secondOfPair mate cannot be obtained due to assertion failures
-     */
-    public static SAMRecord obtainAssertedMate(final Iterator<SAMRecord> samRecordIterator,
-                                               final SAMRecord firstOfPair) {
-        if (samRecordIterator.hasNext()) {
-            final SAMRecord secondOfPair = samRecordIterator.next();
-            assertMate(firstOfPair, secondOfPair);
-            return secondOfPair;
-        } else {
-            throw new SAMException(
-                    "Second record does not exist: " + firstOfPair.getReadName());
-        }
-    }
-
-    /**
-     * Compute SAMRecord insert size
-     * @param firstEnd
-     * @param secondEnd
-     * @return note that when storing insert size on the secondEnd, the return value must be negated.
-     */
-    public static int computeInsertSize(final SAMRecord firstEnd, final SAMRecord secondEnd) {
-        if (firstEnd.getReadUnmappedFlag() || secondEnd.getReadUnmappedFlag()) {
-            return 0;
-        }
-        if (!firstEnd.getReferenceName().equals(secondEnd.getReferenceName())) {
-            return 0;
-        }
-
-        final int firstEnd5PrimePosition = firstEnd.getReadNegativeStrandFlag()? firstEnd.getAlignmentEnd(): firstEnd.getAlignmentStart();
-        final int secondEnd5PrimePosition = secondEnd.getReadNegativeStrandFlag()? secondEnd.getAlignmentEnd(): secondEnd.getAlignmentStart();
-
-        final int adjustment = (secondEnd5PrimePosition >= firstEnd5PrimePosition) ? +1 : -1;
-        return secondEnd5PrimePosition - firstEnd5PrimePosition + adjustment;
-    }
-
-    /**
-     * Write the mate info for two SAMRecords
-     * @param rec1 the first SAM record
-     * @param rec2 the second SAM record
-     * @param header the SAM file header
-     * @param setMateCigar true if we are to update/create the Mate CIGAR (MC) optional tag, false if we are to clear any mate cigar tag that is present.
-     */
-    public static void setMateInfo(final SAMRecord rec1, final SAMRecord rec2, final SAMFileHeader header, final boolean setMateCigar) {
-        // If neither read is unmapped just set their mate info
-        if (!rec1.getReadUnmappedFlag() && !rec2.getReadUnmappedFlag()) {
-            rec1.setMateReferenceIndex(rec2.getReferenceIndex());
-            rec1.setMateAlignmentStart(rec2.getAlignmentStart());
-            rec1.setMateNegativeStrandFlag(rec2.getReadNegativeStrandFlag());
-            rec1.setMateUnmappedFlag(false);
-            rec1.setAttribute(SAMTag.MQ.name(), rec2.getMappingQuality());
-
-            rec2.setMateReferenceIndex(rec1.getReferenceIndex());
-            rec2.setMateAlignmentStart(rec1.getAlignmentStart());
-            rec2.setMateNegativeStrandFlag(rec1.getReadNegativeStrandFlag());
-            rec2.setMateUnmappedFlag(false);
-            rec2.setAttribute(SAMTag.MQ.name(), rec1.getMappingQuality());
-
-            if (setMateCigar) {
-                rec1.setAttribute(SAMTag.MC.name(), rec2.getCigarString());
-                rec2.setAttribute(SAMTag.MC.name(), rec1.getCigarString());
-            }
-            else {
-                rec1.setAttribute(SAMTag.MC.name(), null);
-                rec2.setAttribute(SAMTag.MC.name(), null);
-            }
-        }
-        // Else if they're both unmapped set that straight
-        else if (rec1.getReadUnmappedFlag() && rec2.getReadUnmappedFlag()) {
-            rec1.setReferenceIndex(SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX);
-            rec1.setAlignmentStart(SAMRecord.NO_ALIGNMENT_START);
-            rec1.setMateReferenceIndex(SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX);
-            rec1.setMateAlignmentStart(SAMRecord.NO_ALIGNMENT_START);
-            rec1.setMateNegativeStrandFlag(rec2.getReadNegativeStrandFlag());
-            rec1.setMateUnmappedFlag(true);
-            rec1.setAttribute(SAMTag.MQ.name(), null);
-            rec1.setAttribute(SAMTag.MC.name(), null);
-            rec1.setInferredInsertSize(0);
-
-            rec2.setReferenceIndex(SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX);
-            rec2.setAlignmentStart(SAMRecord.NO_ALIGNMENT_START);
-            rec2.setMateReferenceIndex(SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX);
-            rec2.setMateAlignmentStart(SAMRecord.NO_ALIGNMENT_START);
-            rec2.setMateNegativeStrandFlag(rec1.getReadNegativeStrandFlag());
-            rec2.setMateUnmappedFlag(true);
-            rec2.setAttribute(SAMTag.MQ.name(), null);
-            rec2.setAttribute(SAMTag.MC.name(), null);
-            rec2.setInferredInsertSize(0);
-        }
-        // And if only one is mapped copy it's coordinate information to the mate
-        else {
-            final SAMRecord mapped   = rec1.getReadUnmappedFlag() ? rec2 : rec1;
-            final SAMRecord unmapped = rec1.getReadUnmappedFlag() ? rec1 : rec2;
-            unmapped.setReferenceIndex(mapped.getReferenceIndex());
-            unmapped.setAlignmentStart(mapped.getAlignmentStart());
-
-            mapped.setMateReferenceIndex(unmapped.getReferenceIndex());
-            mapped.setMateAlignmentStart(unmapped.getAlignmentStart());
-            mapped.setMateNegativeStrandFlag(unmapped.getReadNegativeStrandFlag());
-            mapped.setMateUnmappedFlag(true);
-            // For the mapped read, set it's mateCigar to null, since the other read must be unmapped
-            mapped.setAttribute(SAMTag.MC.name(), null);
-            mapped.setInferredInsertSize(0);
-
-            unmapped.setMateReferenceIndex(mapped.getReferenceIndex());
-            unmapped.setMateAlignmentStart(mapped.getAlignmentStart());
-            unmapped.setMateNegativeStrandFlag(mapped.getReadNegativeStrandFlag());
-            unmapped.setMateUnmappedFlag(false);
-            // For the unmapped read, set it's mateCigar to the mate's Cigar, since the mate must be mapped
-            if (setMateCigar) unmapped.setAttribute(SAMTag.MC.name(), mapped.getCigarString());
-            else unmapped.setAttribute(SAMTag.MC.name(), null);
-            unmapped.setInferredInsertSize(0);
-        }
-
-        final int insertSize = SamPairUtil.computeInsertSize(rec1, rec2);
-        rec1.setInferredInsertSize(insertSize);
-        rec2.setInferredInsertSize(-insertSize);
-    }
-
-    /**
-     * Write the mate info for two SAMRecords.  This will always clear/remove any mate cigar tag that is present.
-     * @param rec1 the first SAM record
-     * @param rec2 the second SAM record
-     * @param header the SAM file header
-     */
-    public static void setMateInfo(final SAMRecord rec1, final SAMRecord rec2, final SAMFileHeader header) {
-        setMateInfo(rec1, rec2, header, false);
-    }
-
-    /**
-     * Sets mate pair information appropriately on a supplemental SAMRecord (e.g. from a split alignment)
-     * using the primary alignment of the read's mate.
-     * @param supplemental a supplemental alignment for the mate pair of the primary supplied
-     * @param matePrimary the primary alignment of the the mate pair of the supplemental
-     */
-    public static void setMateInformationOnSupplementalAlignment( final SAMRecord supplemental,
-                                                                  final SAMRecord matePrimary) {
-        supplemental.setMateReferenceIndex(matePrimary.getReferenceIndex());
-        supplemental.setMateAlignmentStart(matePrimary.getAlignmentStart());
-        supplemental.setMateNegativeStrandFlag(matePrimary.getReadNegativeStrandFlag());
-        supplemental.setMateUnmappedFlag(matePrimary.getReadUnmappedFlag());
-        supplemental.setInferredInsertSize(-matePrimary.getInferredInsertSize());
-    }
-
-    /**
-     * This method will clear any mate cigar already present.
-     */
-    public static void setProperPairAndMateInfo(final SAMRecord rec1, final SAMRecord rec2,
-                                                final SAMFileHeader header,
-                                                final List<PairOrientation> exepectedOrientations) {
-        setProperPairAndMateInfo(rec1, rec2, header, exepectedOrientations, false);
-    }
-
-    /**
-     * @param rec1
-     * @param rec2
-     * @param header
-     * @param exepectedOrientations
-     * @param addMateCigar true if we are to update/create the Mate CIGAR (MC) optional tag, false if we are to clear any mate cigar tag that is present.
-     */
-    public static void setProperPairAndMateInfo(final SAMRecord rec1, final SAMRecord rec2,
-                                                final SAMFileHeader header,
-                                                final List<PairOrientation> exepectedOrientations,
-                                                final boolean addMateCigar) {
-        setMateInfo(rec1, rec2, header, addMateCigar);
-        setProperPairFlags(rec1, rec2, exepectedOrientations);
-    }
-
-    public static void setProperPairFlags(final SAMRecord rec1, final SAMRecord rec2, final List<PairOrientation> expectedOrientations) {
-        final boolean properPair =  (!rec1.getReadUnmappedFlag() && !rec2.getReadUnmappedFlag())
-                ? isProperPair(rec1, rec2, expectedOrientations)
-                : false;
-        rec1.setProperPairFlag(properPair);
-        rec2.setProperPairFlag(properPair);
-    }
-}
diff --git a/src/java/net/sf/samtools/SecondaryOrSupplementarySkippingIterator.java b/src/java/net/sf/samtools/SecondaryOrSupplementarySkippingIterator.java
deleted file mode 100644
index f5899f6..0000000
--- a/src/java/net/sf/samtools/SecondaryOrSupplementarySkippingIterator.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package net.sf.samtools;
-
-import net.sf.samtools.util.CloseableIterator;
-import net.sf.samtools.util.PeekIterator;
-
-/**
- * Wrapper around SAMRecord iterator that skips over secondary and supplementary elements.
- * This iterator conflates a filtering iterator and a peekable iterator.  It would be cleaner to
- * handle those concerns separately. This class should be viewed as a replacement for NotPrimarySkippingIterator,
- * in that we did not want to change the functionality of NPSI to no longer match its name
- */
-public class SecondaryOrSupplementarySkippingIterator {
-    private final PeekIterator<SAMRecord> it;
-
-    public SecondaryOrSupplementarySkippingIterator(final CloseableIterator<SAMRecord> underlyingIt) {
-        it = new PeekIterator<SAMRecord>(underlyingIt);
-        skipAnyNotprimary();
-    }
-
-    public boolean hasCurrent() {
-        return it.hasNext();
-    }
-
-    public SAMRecord getCurrent() {
-        assert(hasCurrent());
-        return it.peek();
-    }
-
-    public boolean advance() {
-        it.next();
-        skipAnyNotprimary();
-        return hasCurrent();
-    }
-
-    private void skipAnyNotprimary() {
-        while (it.hasNext() && it.peek().isSecondaryOrSupplementary()) {
-            it.next();
-        }
-    }
-
-}
diff --git a/src/java/net/sf/samtools/StreamInflatingIndexingOutputStream.java b/src/java/net/sf/samtools/StreamInflatingIndexingOutputStream.java
deleted file mode 100644
index a422e9d..0000000
--- a/src/java/net/sf/samtools/StreamInflatingIndexingOutputStream.java
+++ /dev/null
@@ -1,80 +0,0 @@
-package net.sf.samtools;
-
-
-import net.sf.samtools.util.RuntimeIOException;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.PipedInputStream;
-import java.io.PipedOutputStream;
-
-/**
- * OutputStream implementation that writes output to an underlying output stream while also copying the
- * same bytes to a PipedOutputStream that routes the data back into an Indexer to generate a BAMIndex
- * by inflating and decoding the stream and feeding the SAMRecords to a BAMIndexer.
- */
-class StreamInflatingIndexingOutputStream extends OutputStream {
-    private final OutputStream s1;
-    private final PipedOutputStream s2;
-    private final Thread thread;
-
-    public StreamInflatingIndexingOutputStream(final OutputStream s1, final File indexFile) {
-        try {
-            this.s1 = s1;
-            this.s2 = new PipedOutputStream();
-            final PipedInputStream pin = new PipedInputStream(this.s2, Defaults.NON_ZERO_BUFFER_SIZE);
-            this.thread = new Thread(new Indexer(indexFile, pin), "BamIndexingThread");
-            this.thread.start();
-        }
-        catch (final IOException ioe) {
-            throw new RuntimeIOException(ioe);
-        }
-    }
-
-    @Override public final void write(final int b) throws IOException { this.s1.write(b); this.s2.write(b); }
-    @Override public final void write(final byte[] b) throws IOException { this.s1.write(b); this.s2.write(b); }
-    @Override public final void write(final byte[] b, final int off, final int len) throws IOException { this.s1.write(b, off, len); this.s2.write(b, off, len); }
-    @Override public final void flush() throws IOException { this.s1.flush(); this.s2.flush(); }
-
-    @Override public final void close() throws IOException {
-        this.s1.close();
-        this.s2.close();
-
-        try { this.thread.join(); }
-        catch (final InterruptedException ie) { throw new RuntimeException(ie); }
-    }
-}
-
-/**
- * A little class that takes an InputStream from which it reads a BAM file, generates
- * a BAMIndex and then writes the index to the File provided.  All operations are designed
- * to be carried out in a separate thread.
- */
-class Indexer implements Runnable {
-    private final File index;
-    private final InputStream stream;
-
-    /** Constructs an indexer that reads from the stream provided and writes an index to the File provided. */
-    Indexer(final File index, final InputStream stream) {
-        this.index = index;
-        this.stream = stream;
-    }
-
-    /** Runnable implementation that reads the entire stream and writes the index. */
-    @Override
-    public void run() {
-        final SAMFileReader in = new SAMFileReader(this.stream);
-        in.enableFileSource(true);
-        in.setValidationStringency(SAMFileReader.ValidationStringency.SILENT);
-        in.enableCrcChecking(false);
-        final BAMIndexer indexer = new BAMIndexer(this.index, in.getFileHeader());
-        for (final SAMRecord rec : in) {
-            indexer.processAlignment(rec);
-        }
-
-        indexer.finish();
-        in.close();
-    }
-}
diff --git a/src/java/net/sf/samtools/TagValueAndUnsignedArrayFlag.java b/src/java/net/sf/samtools/TagValueAndUnsignedArrayFlag.java
deleted file mode 100644
index c5ca6da..0000000
--- a/src/java/net/sf/samtools/TagValueAndUnsignedArrayFlag.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-/**
- * CVO to use as a method return value.
- */
-public class TagValueAndUnsignedArrayFlag {
-    public final Object value;
-    public final boolean isUnsignedArray;
-
-    TagValueAndUnsignedArrayFlag(Object value, boolean unsignedArray) {
-        this.value = value;
-        isUnsignedArray = unsignedArray;
-    }
-
-    TagValueAndUnsignedArrayFlag(Object value) {
-        this.value = value;
-        this.isUnsignedArray = false;
-    }
-}
diff --git a/src/java/net/sf/samtools/TextCigarCodec.java b/src/java/net/sf/samtools/TextCigarCodec.java
deleted file mode 100755
index 705f9e5..0000000
--- a/src/java/net/sf/samtools/TextCigarCodec.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import net.sf.samtools.util.StringUtil;
-
-/**
- * Convert between String and Cigar class representations of CIGAR.
- */
-public class TextCigarCodec
-{
-    private static final byte ZERO_BYTE = "0".getBytes()[0];
-    private static final byte NINE_BYTE = "9".getBytes()[0];
-    
-    private static final TextCigarCodec singleton = new TextCigarCodec();
-
-    /**
-     * It is not necessary to get the singleton but it is preferable to use the same one
-     * over and over vs. creating a new object for each BAMRecord.  There is no state in this
-     * class so this is thread-safe.
-     * @return A singleton TextCigarCodec useful for converting Cigar classes to and from strings
-     */
-    public static TextCigarCodec getSingleton() {
-        return singleton;
-    }
-
-
-    /**
-     * Convert from Cigar class representation to String.
-     * @param cigar in Cigar class format
-     * @return CIGAR in String form ala SAM text file.  "*" means empty CIGAR.
-     */
-    public String encode(final Cigar cigar) {
-        if (cigar.isEmpty()) {
-            return SAMRecord.NO_ALIGNMENT_CIGAR;
-        }
-        final StringBuilder ret = new StringBuilder();
-        for (final CigarElement cigarElement : cigar.getCigarElements()) {
-            ret.append(cigarElement.getLength());
-            ret.append(cigarElement.getOperator());
-        }
-        return ret.toString();
-    }
-
-    /**
-     * Convert from String CIGAR representation to Cigar class representation.  Does not
-     * do validation beyond the most basic CIGAR string well-formedness, i.e. each operator is
-     * valid, and preceded by a decimal length.
-     * @param textCigar CIGAR in String form ala SAM text file.  "*" means empty CIGAR.
-     * @throws RuntimeException if textCigar is invalid at the most basic level.
-     * @return cigar in Cigar class format
-     */
-    public Cigar decode(final String textCigar) {
-        if (SAMRecord.NO_ALIGNMENT_CIGAR.equals(textCigar)) {
-            return new Cigar();
-        }
-        final Cigar ret = new Cigar();
-        final byte[] cigarBytes = StringUtil.stringToBytes(textCigar);
-        for (int i = 0; i < cigarBytes.length; ++i) {
-            if (!isDigit(cigarBytes[i])) {
-                throw new IllegalArgumentException("Malformed CIGAR string: " + textCigar);
-            }
-            int length = (cigarBytes[i] - ZERO_BYTE);
-            for (++i; isDigit(cigarBytes[i]); ++i) {
-                length = (length * 10) + cigarBytes[i] - ZERO_BYTE;
-            }
-            final CigarOperator operator = CigarOperator.characterToEnum(cigarBytes[i]);
-            ret.add(new CigarElement(length, operator));
-        }
-        return ret;
-    }
-    
-    private boolean isDigit(final byte c) {
-        return c >= ZERO_BYTE && c <= NINE_BYTE;
-    }
-
-    
-        
-}
-
-/******************************************************************/
-/**************************[END OF TextCigarCodec.java]*************************/
-/******************************************************************/
diff --git a/src/java/net/sf/samtools/TextTagCodec.java b/src/java/net/sf/samtools/TextTagCodec.java
deleted file mode 100644
index 5157c40..0000000
--- a/src/java/net/sf/samtools/TextTagCodec.java
+++ /dev/null
@@ -1,321 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import net.sf.samtools.util.Iso8601Date;
-import net.sf.samtools.util.StringUtil;
-import net.sf.samtools.util.DateParser;
-
-import java.lang.reflect.Array;
-import java.util.Map;
-import java.util.Date;
-import java.text.DateFormat;
-import java.text.ParseException;
-
-/**
- * Converter between SAM text representation of a tag, and in-memory Object representation.
- * Note that this class is not thread-safe, in that some local variables have been made into instance
- * variables in order to reduce object creation, but it should not ever be the case that the same
- * instance is used in multiple threads.
- */
-public class TextTagCodec {
-    private static final int NUM_TAG_FIELDS = 3;
-
-    /**
-     * This is really a local variable of decode(), but allocated here to reduce allocations.
-     */
-    private final String[] fields = new String[NUM_TAG_FIELDS];
-
-    /**
-     * Convert in-memory representation of tag to SAM text representation.
-     * @param tagName Two-character tag name.
-     * @param value Tag value as approriate Object subclass.
-     * @return SAM text String representation, i.e. name:type:value
-     */
-    public String encode(final String tagName, Object value) {
-        final StringBuilder sb = new StringBuilder(tagName);
-        sb.append(':');
-        char tagType = BinaryTagCodec.getTagValueType(value);
-        switch (tagType) {
-            case 'c':
-            case 'C':
-            case 's':
-            case 'S':
-            case 'I':
-                tagType = 'i';
-        }
-        if (tagType == 'H') {
-            // H should never happen anymore.
-            value = StringUtil.bytesToHexString((byte[])value);
-        } else if (tagType == 'B') {
-            value = getArrayType(value, false) + "," + encodeArrayValue(value);
-        } else if (tagType == 'i') {
-            final long longVal = ((Number) value).longValue();
-            if (longVal > Integer.MAX_VALUE || longVal < Integer.MIN_VALUE) {
-                throw new SAMFormatException("Value for tag " + tagName + " cannot be stored in an Integer: " + longVal);
-            }
-        }
-        sb.append(tagType);
-        sb.append(':');
-        sb.append(value.toString());
-        return sb.toString();
-    }
-
-    private char getArrayType(final Object array, final boolean isUnsigned) {
-        final char type;
-        final Class<?> componentType = array.getClass().getComponentType();
-        if (componentType == Float.TYPE) {
-            if (isUnsigned) throw new IllegalArgumentException("float array cannot be unsigned");
-            return 'f';
-        }
-        else if (componentType == Byte.TYPE)    type = 'c';
-        else if (componentType == Short.TYPE)   type = 's';
-        else if (componentType == Integer.TYPE) type = 'i';
-        else throw new IllegalArgumentException("Unrecognized array type " + componentType);
-        return (isUnsigned? Character.toUpperCase(type): type);
-    }
-
-    private String encodeArrayValue(final Object value) {
-        final StringBuilder ret = new StringBuilder(Array.get(value, 0).toString());
-        final int length = Array.getLength(value);
-        for (int i = 1; i < length; ++i) {
-            ret.append(",");
-            ret.append(Array.get(value, i).toString());
-        }
-        return ret.toString();
-
-    }
-
-    private long[] widenToUnsigned(final Object array) {
-        final Class<?> componentType = array.getClass().getComponentType();
-        final long mask;
-        if (componentType == Byte.TYPE)    mask = 0xffL;
-        else if (componentType == Short.TYPE)   mask = 0xffffL;
-        else if (componentType == Integer.TYPE) mask = 0xffffffffL;
-        else throw new IllegalArgumentException("Unrecognized unsigned array type " + componentType);
-        final long[] ret = new long[Array.getLength(array)];
-        for (int i = 0; i < ret.length; ++i) {
-            ret[i] = Array.getLong(array, i) & mask;
-        }
-        return ret;
-    }
-
-    String encodeUnsignedArray(final String tagName, final Object array) {
-        if (!array.getClass().isArray()) {
-            throw new IllegalArgumentException("Non-array passed to encodeUnsignedArray: " + array.getClass());
-        }
-        final long[] widened = widenToUnsigned(array);
-        return tagName + ":B:" + getArrayType(array, true) + "," + encodeArrayValue(widened);
-    }
-
-    /**
-     * Encode a standard header tag, which should not have a type field.
-     * @param tagName 2-character String.
-     * @param value Not necessarily a String.  Some of these are integers but the type is implied by
-     * the tagName.  Converted to String with toString().
-     * @return Colon-separated text representation suitable for a SAM header, i.e. name:value.
-     */
-    public String encodeUntypedTag(final String tagName, final Object value) {
-        final StringBuilder sb = new StringBuilder(tagName);
-        sb.append(':');
-        sb.append(value.toString());
-        return sb.toString();
-    }
-
-    /**
-     * Convert typed tag in SAM text format (name:type:value) into tag name and Object value representation.
-     * @param tag SAM text format name:type:value tag.
-     * @return Tag name as 2-character String, and tag value in appropriate class based on tag type.
-     * If value is an unsigned array, then the value is a TagValueAndUnsignedArrayFlag object.
-     */
-    public Map.Entry<String, Object> decode(final String tag) {
-        final int numFields = StringUtil.splitConcatenateExcessTokens(tag, fields, ':');
-        if (numFields != TextTagCodec.NUM_TAG_FIELDS) {
-            throw new SAMFormatException("Not enough fields in tag '" + tag + "'");
-        }
-        final String key = fields[0];
-        final String type = fields[1];
-        final String stringVal = fields[2];
-        final Object val = convertStringToObject(type, stringVal);
-        return new Map.Entry<String, Object>() {
-            public String getKey() {
-                return key;
-            }
-
-            public Object getValue() {
-                return val;
-            }
-
-            public Object setValue(final Object o) {
-                throw new UnsupportedOperationException();
-            }
-        };
-    }
-
-    private Object convertStringToObject(final String type, final String stringVal) {
-        if (type.equals("Z")) {
-            return stringVal;
-        } else if (type.equals("A")) {
-            if (stringVal.length() != 1) {
-                throw new SAMFormatException("Tag of type A should have a single-character value");
-            }
-            return stringVal.charAt(0);
-        } else if (type.equals("i")) {
-            try {
-                return new Integer(stringVal);
-            } catch (NumberFormatException e) {
-                throw new SAMFormatException("Tag of type i should have signed decimal value");
-            }
-        } else if (type.equals("f")) {
-            try {
-                return new Float(stringVal);
-            } catch (NumberFormatException e) {
-                throw new SAMFormatException("Tag of type f should have single-precision floating point value");
-            }
-        } else if (type.equals("H")) {
-            try {
-                return StringUtil.hexStringToBytes(stringVal);
-            } catch (NumberFormatException e) {
-                throw new SAMFormatException("Tag of type H should have valid hex string with even number of digits");
-            }
-        } else if (type.equals("B")) {
-            return covertStringArrayToObject(stringVal);
-        } else {
-            throw new SAMFormatException("Unrecognized tag type: " + type);
-        }
-    }
-
-    private Object covertStringArrayToObject(final String stringVal) {
-        final String[] elementTypeAndValue = new String[2];
-        if (StringUtil.splitConcatenateExcessTokens(stringVal, elementTypeAndValue, ',') != 2) {
-            throw new SAMFormatException("Tag of type B should have an element type followed by comma");
-        }
-        if (elementTypeAndValue[0].length() != 1) {
-            throw new SAMFormatException("Unrecognized element type for array tag value: " + elementTypeAndValue[0]);
-        }
-        final char elementType = elementTypeAndValue[0].charAt(0);
-        final String[] stringValues = elementTypeAndValue[1].split(",");
-        if (stringValues.length == 0) throw new SAMFormatException("Tag of type B should have at least one element");
-        if (elementType == 'f') {
-            final float[] ret = new float[stringValues.length];
-            for (int i = 0; i < stringValues.length; ++i) {
-                try {
-                    ret[i] = Float.parseFloat(stringValues[i]);
-                } catch (NumberFormatException e) {
-                    throw new SAMFormatException("Array tag of type f should have single-precision floating point value");
-                }
-            }
-            return ret;
-        }
-        long mask = Long.MAX_VALUE;
-        long minValue = Long.MAX_VALUE;
-        long maxValue = Long.MIN_VALUE;
-        final boolean isUnsigned = Character.isUpperCase(elementType);
-        switch (Character.toLowerCase(elementType)) {
-            case 'c':
-                if (isUnsigned) {
-                    mask = 0xffL;
-                } else {
-                    minValue = Byte.MIN_VALUE;
-                    maxValue = Byte.MAX_VALUE;
-                }
-                break;
-            case 's':
-                if (isUnsigned) {
-                    mask = 0xffffL;
-                } else {
-                    minValue = Short.MIN_VALUE;
-                    maxValue = Short.MAX_VALUE;
-                }
-                break;
-            case 'i':
-                if (isUnsigned) {
-                    mask = 0xffffffffL;
-                } else {
-                    minValue = Integer.MIN_VALUE;
-                    maxValue = Integer.MAX_VALUE;
-                }
-                break;
-            default:
-                throw new SAMFormatException("Unrecognized array tag element type: " + elementType);
-        }
-        if (isUnsigned) {
-            minValue = 0;
-            maxValue = mask;
-        }
-        final long[] longValues = new long[stringValues.length];
-        for (int i = 0; i < stringValues.length; ++i) {
-            final long longValue;
-            try {
-                longValue = Long.parseLong(stringValues[i]);
-            } catch (NumberFormatException e) {
-                throw new SAMFormatException("Array tag of type " + elementType + " should have integral value");
-            }
-            if (longValue < minValue || longValue > maxValue) {
-                throw new SAMFormatException("Value for element of array tag of type " + elementType +
-                " is out of allowed range: " + longValue);
-            }
-            longValues[i] = longValue;
-        }
-
-        switch (Character.toLowerCase(elementType)) {
-            case 'c': {
-                final byte[] array = new byte[longValues.length];
-                for (int i = 0; i < longValues.length; ++i) array[i] = (byte)longValues[i];
-                if (isUnsigned) return new TagValueAndUnsignedArrayFlag(array, true);
-                else return array;
-            }
-            case 's': {
-                final short[] array = new short[longValues.length];
-                for (int i = 0; i < longValues.length; ++i) array[i] = (short)longValues[i];
-                if (isUnsigned) return new TagValueAndUnsignedArrayFlag(array, true);
-                else return array;
-            }
-            case 'i':{
-                final int[] array = new int[longValues.length];
-                for (int i = 0; i < longValues.length; ++i) array[i] = (int)longValues[i];
-                if (isUnsigned) return new TagValueAndUnsignedArrayFlag(array, true);
-                else return array;
-            }
-            default:
-                throw new SAMFormatException("Unrecognized array tag element type: " + elementType);
-        }
-    }
-
-    Iso8601Date decodeDate(final String dateStr) {
-        try {
-            return new Iso8601Date(dateStr);
-        } catch (DateParser.InvalidDateException ex) {
-            try {
-                return new Iso8601Date(DateFormat.getDateTimeInstance().parse(dateStr));
-            } catch (ParseException e) {
-                try {
-                    return new Iso8601Date(new Date(dateStr));
-                } catch (Exception e1) {
-                    throw new DateParser.InvalidDateException("Could not parse as date: " + dateStr, e);
-                }
-            }
-        }
-    }
-}
diff --git a/src/java/net/sf/samtools/TextualBAMIndexWriter.java b/src/java/net/sf/samtools/TextualBAMIndexWriter.java
deleted file mode 100644
index c84cff2..0000000
--- a/src/java/net/sf/samtools/TextualBAMIndexWriter.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.samtools;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.PrintWriter;
-import java.util.List;
-
-/**
- * Class for writing binary BAM index files as human-readable text.
- * Used for testing only.
-
- */
-class TextualBAMIndexWriter implements BAMIndexWriter {
-
-    protected final int nRef;
-    protected final File output;
-    private final PrintWriter pw;
-    private int count = 0;
-
-    /**
-     * constructor
-     *
-     * @param nRef    Number of reference sequences
-     * @param output   BAM Index output file
-     */
-    public TextualBAMIndexWriter(final int nRef, final File output) {
-        this.output = output;
-        this.nRef = nRef;
-        try {
-            pw = new PrintWriter(output);
-        } catch (final FileNotFoundException e) {
-            throw new SAMException("Can't find output file " + output, e);
-        }
-        writeHeader();
-    }
-
-    /**
-     * Write header information at the beginning of the file
-     */
-    private void writeHeader() {
-        pw.println("n_ref=" + nRef);
-    }
-
-    /**
-     * Write this content as human-readable text
-     */
-    public void writeReference(final BAMIndexContent content) {
-
-        final int reference = content.getReferenceSequence();
-
-        if (content == null) {
-            writeNullContent(reference);
-            count++;
-            return;
-        }
-
-        if (reference != count){
-            throw new SAMException("Reference on content is " + reference + " but expecting reference " + count);
-        }
-        count++;
-
-        final BAMIndexContent.BinList bins = content.getBins();
-        final int size = bins == null ? 0 : content.getNumberOfNonNullBins();
-
-        if (size == 0) {
-            writeNullContent(reference);
-            return;
-        }
-
-        //final List<Chunk> chunks = content.getMetaData() == null ? null
-        //        : content.getMetaData().getMetaDataChunks();
-        final BAMIndexMetaData metaData = content.getMetaData();
-
-        pw.println("Reference " + reference + " has n_bin= " + Integer.toString(size + (metaData != null? 1 : 0)));
-
-        // chunks
-        for (final Bin bin : bins) {   // note, bins will always be sorted
-            if (bin.getBinNumber() == GenomicIndexUtil.MAX_BINS)  break;
-            if (bin.getChunkList() == null) {
-                pw.println("  Ref " + reference + " bin " + bin.getBinNumber() + " has no binArray");  // remove?
-                continue;
-            }
-            final List<Chunk> chunkList = bin.getChunkList();
-            if (chunkList == null) {
-                pw.println("  Ref " + reference + " bin " + bin.getBinNumber() + " has no chunkList");
-                continue;
-            }
-            pw.print("  Ref " + reference + " bin " + bin.getBinNumber() + " has n_chunk= " + chunkList.size());
-            if (chunkList.size() == 0) {
-                 pw.println();
-            }
-            for (final Chunk c : chunkList) {
-                pw.println("     Chunk: " + c.toString() +
-                        " start: " + Long.toString(c.getChunkStart(), 16) +
-                        " end: " + Long.toString(c.getChunkEnd(), 16));
-            }
-        }
-
-        writeChunkMetaData(reference, metaData);
-        
-        // linear index
-        final LinearIndex linearIndex = content.getLinearIndex();
-        if (linearIndex == null || linearIndex.getIndexEntries() == null) {
-            pw.println("Reference " + reference + " has n_intv= 0");
-            return;
-        }
-        final long[] entries = linearIndex.getIndexEntries();
-        final int indexStart = linearIndex.getIndexStart();
-        // System.out.println("index start is " + indexStart);
-        final int n_intv = entries.length + indexStart;
-        pw.println("Reference " + reference + " has n_intv= " + n_intv);
-        for (int k = 0; k < entries.length; k++) {
-            if (entries[k] != 0) {
-                pw.println("  Ref " + reference + " ioffset for " + (k + indexStart) + " is " + Long.toString(entries[k]));
-            }
-        }
-        pw.flush ();  // write each reference to disk as it's being created
-    }
-
-    /**
-     * Write the meta data represented by the chunkLists associated with bin MAX_BINS 37450
-     *
-     * @param metaData information describing numAligned records, numUnAligned, etc
-     */
-    private void writeChunkMetaData(final int reference, final BAMIndexMetaData metaData) {
-        final int nChunks = metaData == null ? 0 : 2;
-        pw.print("  Ref " + reference + " bin 37450 has n_chunk= " + nChunks);
-        if (nChunks == 0) {
-            pw.println();
-        } else {
-            pw.println("     Chunk: " + //  c.toString() +
-                    " start: " + Long.toString(metaData.getFirstOffset(), 16) +
-                    " end: " + Long.toString(metaData.getLastOffset(), 16));
-            pw.println("     Chunk: " + //  c.toString() +
-                    " start: " + Long.toString(metaData.getAlignedRecordCount(), 16) +
-                    " end: " + Long.toString(metaData.getUnalignedRecordCount(), 16));
-        }
-
-    }
-       
-    private void writeNullContent(final int reference) {
-        pw.println("Reference " + reference + " has n_bin=0");
-        pw.println("Reference " + reference + " has n_intv=0");
-    }
-
-    /**
-     * Write count of records without coordinates
-     *
-     * @param noCoordinateCount the count of records seen with no coordinate positions in the start coordinate
-     */
-    public void writeNoCoordinateRecordCount(final Long noCoordinateCount) {
-        pw.println("No Coordinate Count=" + noCoordinateCount);
-    }
-
-    /**
-     * Any necessary processing at the end of the file
-     */
-    public void close() {
-        pw.close();
-    }
-}
diff --git a/src/java/net/sf/samtools/apps/TimeChannel.java b/src/java/net/sf/samtools/apps/TimeChannel.java
deleted file mode 100644
index fbfb666..0000000
--- a/src/java/net/sf/samtools/apps/TimeChannel.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- */
-package net.sf.samtools.apps;
-
-import java.io.RandomAccessFile;
-import java.io.File;
-import java.io.IOException;
-import java.io.FileInputStream;
-import java.nio.channels.FileChannel;
-import java.nio.MappedByteBuffer;
-
-/**
- * @author alecw at broadinstitute.org
- */
-public class TimeChannel {
-    public static void main(String[] args) throws Exception {
-        long fileSize = new File(args[0]).length();
-        FileInputStream in = new FileInputStream(args[0]);
-        FileChannel channel = in.getChannel();
-        byte[] buf = new byte[64 * 1024];
-        long totalBytesRead = 0;
-        long mappedOffset = 0;
-        // Map a round number of bytes that might correspond to some kind of page size boundary.
-        long maxToMapAtATime = 1024 * 1024 * 1024;
-        long mappedSize = Math.min(fileSize, maxToMapAtATime);
-        while (totalBytesRead < fileSize) {
-            System.err.println("mappedOffset: " + mappedOffset + "; mappedSize: " + mappedSize);
-            System.err.println("fileSize: " + fileSize + "; totalBytesRead: " + totalBytesRead);
-            MappedByteBuffer mappedBuffer = channel.map(FileChannel.MapMode.READ_ONLY, mappedOffset, mappedSize);
-            while (mappedBuffer.remaining() > 0) {
-                int bytesRead = Math.min(mappedBuffer.remaining(), buf.length);
-                mappedBuffer.get(buf, 0, bytesRead);
-                totalBytesRead += bytesRead;
-            }
-            mappedOffset += mappedSize;
-            mappedSize = Math.min(fileSize - totalBytesRead, maxToMapAtATime);
-        }
-        System.out.println("Total bytes: " + totalBytesRead);
-    }
-}
diff --git a/src/java/net/sf/samtools/apps/TimeRandomAccessFile.java b/src/java/net/sf/samtools/apps/TimeRandomAccessFile.java
deleted file mode 100644
index 8b4108f..0000000
--- a/src/java/net/sf/samtools/apps/TimeRandomAccessFile.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- */
-package net.sf.samtools.apps;
-
-import java.io.RandomAccessFile;
-import java.io.File;
-import java.io.IOException;
-
-/**
- * @author alecw at broadinstitute.org
- */
-public class TimeRandomAccessFile {
-    public static void main(String[] args) throws Exception {
-        RandomAccessFile raf = new RandomAccessFile(new File(args[0]), "r");
-        byte[] buf = new byte[64 * 1024];
-        long totalBytesRead = 0;
-        int bytesRead;
-        while ((bytesRead = readBytes(raf, buf, 0, buf.length)) > 0) {
-            totalBytesRead += bytesRead;
-        }
-        System.out.println("Total bytes: " + totalBytesRead);
-    }
-    private static int readBytes(final RandomAccessFile file, final byte[] buffer, final int offset, final int length)
-        throws IOException {
-        int bytesRead = 0;
-        while (bytesRead < length) {
-            final int count = file.read(buffer, offset + bytesRead, length - bytesRead);
-            if (count <= 0) {
-                break;
-            }
-            bytesRead += count;
-        }
-        return bytesRead;
-    }
-}
diff --git a/src/java/net/sf/samtools/example/ExampleSamUsage.java b/src/java/net/sf/samtools/example/ExampleSamUsage.java
deleted file mode 100644
index f1285a5..0000000
--- a/src/java/net/sf/samtools/example/ExampleSamUsage.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.example;
-
-import net.sf.samtools.*;
-
-import java.io.File;
-
-public class ExampleSamUsage {
-    /**
-     * Read a SAM or BAM file, convert each read name to upper case, and write a new
-     * SAM or BAM file.
-     */
-    public void convertReadNamesToUpperCase(final File inputSamOrBamFile, final File outputSamOrBamFile) {
-
-        // Open the input file.  Automatically detects whether input is SAM or BAM
-        // and delegates to a reader implementation for the appropriate format.
-        final SAMFileReader inputSam = new SAMFileReader(inputSamOrBamFile);
-
-        // makeSAMorBAMWriter() writes a file in SAM text or BAM binary format depending
-        // on the file extension, which must be either .sam or .bam.
-
-        // Since the SAMRecords will be written in the same order as they appear in the input file,
-        // and the output file is specified as having the same sort order (as specified in
-        // SAMFileHeader.getSortOrder(), presorted == true.  This is much more efficient than
-        // presorted == false, if coordinate or queryname sorting is specified, because the SAMRecords
-        // can be written to the output file directly rather than being written to a temporary file
-        // and sorted after all records have been sent to outputSam.
-
-        final SAMFileWriter outputSam = new SAMFileWriterFactory().makeSAMOrBAMWriter(inputSam.getFileHeader(),
-                true, outputSamOrBamFile);
-
-        for (final SAMRecord samRecord : inputSam) {
-            // Convert read name to upper case.
-            samRecord.setReadName(samRecord.getReadName().toUpperCase());
-            outputSam.addAlignment(samRecord);
-        }
-
-        outputSam.close();
-        inputSam.close();
-    }
-}
diff --git a/src/java/net/sf/samtools/seekablestream/ISeekableStreamFactory.java b/src/java/net/sf/samtools/seekablestream/ISeekableStreamFactory.java
deleted file mode 100644
index 901583d..0000000
--- a/src/java/net/sf/samtools/seekablestream/ISeekableStreamFactory.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package net.sf.samtools.seekablestream;
-
-import java.io.IOException;
-import java.net.URL;
-
-/**
- * Factory for creating {@link SeekableStream}s based on URLs/paths.
- * Implementations can be set as the default with {@link SeekableStreamFactory#setInstance(ISeekableStreamFactory)}
- * @author jacob
- * @date 2013-Oct-24
- */
-public interface ISeekableStreamFactory {
-
-    public SeekableStream getStreamFor(URL url) throws IOException;
-
-    public SeekableStream getStreamFor(String path) throws IOException;
-
-    /**
-     * Return a buffered {@code SeekableStream} which wraps the input {@code stream}
-     * using the default buffer size
-     * @param stream
-     * @return
-     */
-    public SeekableStream getBufferedStream(SeekableStream stream);
-
-    /**
-     * Return a buffered {@code SeekableStream} which wraps the input {@code stream}
-     * @param stream
-     * @param bufferSize
-     * @return
-     */
-    public SeekableStream getBufferedStream(SeekableStream stream, int bufferSize);
-}
diff --git a/src/java/net/sf/samtools/seekablestream/SeekableBufferedStream.java b/src/java/net/sf/samtools/seekablestream/SeekableBufferedStream.java
deleted file mode 100644
index ad4426d..0000000
--- a/src/java/net/sf/samtools/seekablestream/SeekableBufferedStream.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.samtools.seekablestream;
-
-import java.io.BufferedInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-
-/**
- * A wrapper class to provide buffered read access to a SeekableStream.  Just wrapping such a stream with
- * a BufferedInputStream will not work as it does not support seeking.  In this implementation a
- * seek call is delegated to the wrapped stream, and the buffer reset. 
- */
-public class SeekableBufferedStream extends SeekableStream {
-
-    /** Little extension to buffered input stream to give access to the available bytes in the buffer. */
-    private class ExtBufferedInputStream extends BufferedInputStream {
-        private ExtBufferedInputStream(final InputStream inputStream, final int i) {
-            super(inputStream, i);
-        }
-
-        /** Returns the number of bytes that can be read from the buffer without reading more into the buffer. */
-        int getBytesInBufferAvailable() {
-            if (this.count == this.pos) return 0; // documented test for "is buffer empty"
-            else return this.buf.length - this.pos;
-        }
-    }
-
-
-    public static final int DEFAULT_BUFFER_SIZE = 512000;
-
-    final private int bufferSize;
-    final SeekableStream wrappedStream;
-    ExtBufferedInputStream bufferedStream;
-    long position;
-
-    public SeekableBufferedStream(final SeekableStream stream, final int bufferSize) {
-        this.bufferSize = bufferSize;
-        this.wrappedStream = stream;
-        this.position = 0;
-        bufferedStream = new ExtBufferedInputStream(wrappedStream, bufferSize);
-    }
-    public SeekableBufferedStream(final SeekableStream stream) {
-        this(stream, DEFAULT_BUFFER_SIZE);
-    }
-
-    public long length() {
-        return wrappedStream.length();
-    }
-
-    @Override
-    public long skip(final long skipLength) throws IOException {
-        if (skipLength < this.bufferedStream.getBytesInBufferAvailable()) {
-            final long retval = this.bufferedStream.skip(skipLength);
-            this.position += retval;
-            return retval;
-        }
-        else {
-            final long position = this.position + skipLength;
-            seek(position);
-            return skipLength;
-        }
-    }
-
-    public void seek(final long position) throws IOException {
-        this.position = position;
-        wrappedStream.seek(position);
-        bufferedStream = new ExtBufferedInputStream(wrappedStream, bufferSize);
-    }
-
-    public int read() throws IOException {
-        int b = bufferedStream.read();
-        position++;
-        return b;
-    }
-
-    public int read(final byte[] buffer, final int offset, final int length) throws IOException {
-        final int nBytesRead = bufferedStream.read(buffer, offset, length);
-        if (nBytesRead > 0) {
-            position += nBytesRead;
-        }
-        return nBytesRead;
-    }
-
-    public void close() throws IOException {
-        wrappedStream.close();
-    }
-
-    public boolean eof() throws IOException {
-        return position >= wrappedStream.length();
-    }
-
-    @Override
-    public String getSource() {
-        return wrappedStream.getSource();
-    }
-
-    @Override
-    public long position() throws IOException {
-        return position;
-    }
-}
diff --git a/src/java/net/sf/samtools/seekablestream/SeekableFTPStream.java b/src/java/net/sf/samtools/seekablestream/SeekableFTPStream.java
deleted file mode 100644
index 253a568..0000000
--- a/src/java/net/sf/samtools/seekablestream/SeekableFTPStream.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Copyright (c) 2007-2011 by The Broad Institute of MIT and Harvard.  All Rights Reserved.
- *
- * This software is licensed under the terms of the GNU Lesser General Public License (LGPL),
- * Version 2.1 which is available at http://www.opensource.org/licenses/lgpl-2.1.php.
- *
- * THE SOFTWARE IS PROVIDED "AS IS." THE BROAD AND MIT MAKE NO REPRESENTATIONS OR
- * WARRANTES OF ANY KIND CONCERNING THE SOFTWARE, EXPRESS OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
- * PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, WHETHER
- * OR NOT DISCOVERABLE.  IN NO EVENT SHALL THE BROAD OR MIT, OR THEIR RESPECTIVE
- * TRUSTEES, DIRECTORS, OFFICERS, EMPLOYEES, AND AFFILIATES BE LIABLE FOR ANY DAMAGES
- * OF ANY KIND, INCLUDING, WITHOUT LIMITATION, INCIDENTAL OR CONSEQUENTIAL DAMAGES,
- * ECONOMIC DAMAGES OR INJURY TO PROPERTY AND LOST PROFITS, REGARDLESS OF WHETHER
- * THE BROAD OR MIT SHALL BE ADVISED, SHALL HAVE OTHER REASON TO KNOW, OR IN FACT
- * SHALL KNOW OF THE POSSIBILITY OF THE FOREGOING.
- */
-
-package net.sf.samtools.seekablestream;
-
-import java.io.IOException;
-import java.net.URL;
-
-/**
- * Unfortunately the seekable stream classes exist for both Tribble and Picard, and we need both.  This class
- * is for use with Tribble and delegates all the work to a helper.
- *
- * @author jrobinso
- * @date Oct 27, 2010
- */
-public class SeekableFTPStream extends SeekableStream {
-
-    SeekableFTPStreamHelper helper;
-    public SeekableFTPStream(URL url) throws IOException {
-        this(url, null);
-    }
-
-    public SeekableFTPStream(URL url, UserPasswordInput userPasswordInput) throws IOException {
-        helper = new SeekableFTPStreamHelper(url, userPasswordInput);
-    }
-
-    public void seek(long position) {
-        helper.seek(position);
-    }
-
-    public long position() {
-        return helper.position();
-    }
-
-    @Override
-    public boolean eof() throws IOException {
-        return helper.eof();
-    }
-
-    @Override
-    public String getSource() {
-        return null; //TODO
-    }
-
-    @Override
-    public long length() {
-        return helper.length();
-    }
-
-
-    @Override
-    public long skip(long n) throws IOException {
-        return helper.skip(n);
-    }
-
-
-    @Override
-    public int read(byte[] buffer, int offset, int len) throws IOException {
-        return helper.read(buffer, offset, len);
-    }
-
-
-    public void close() throws IOException {
-        helper.close();
-    }
-
-    public int read() throws IOException {
-        return helper.read();
-    }
-
-//    private static final String EXPECTED = "Apache Software Foundation";
-    private static final String EXPECTED1 = "\u00cf\u00ac\u00c9\u0075\u0043\u00d4\u00d5\u0079";
-    private static final String EXPECTED2 = "\u00e4\u006c\u0077\u000c\u0016\u00f1\u0030\u008f";
-    public static void main(String[] args) throws IOException {
-//    	String testURL = (args.length < 1) ? "ftp://apache.cs.utah.edu/apache.org/HEADER.html" : args[0];
-    	String testURL = (args.length < 1) ? "ftp://hgdownload.cse.ucsc.edu/goldenPath/panTro3/vsHg19/panTro3.hg19.all.chain.gz" : args[0];
-        long startPosition = (args.length < 2) ? 0x0b66c78l : Long.parseLong(args[1]);
-        int len = (args.length < 3) ? 8 : Integer.parseInt(args[2]);
-        int skipLen = (args.length < 4) ? 0x18 : Integer.parseInt(args[3]);
-        SeekableStream s = SeekableStreamFactory.getInstance().getStreamFor(testURL);
-        byte[] buffer = new byte[len];
-        s.seek(startPosition);
-        s.read(buffer, 0, len);
-        if (s.position() != startPosition + len && s.position() != s.length()) {
-        	System.out.println("1) updated position is incorrect");
-        }
-        String data = new String(buffer);
-        System.out.println("1) read:" + data);
-        if (args.length == 0) {
-            System.out.println("1) expected:" + EXPECTED1);
-            System.out.println("1) values do" + (EXPECTED1.equals(data) ? "" : " not") + " match");
-        }
-        s.skip(skipLen);
-        s.read(buffer, 0, len);
-        if (s.position() != startPosition + 2 * len + skipLen && s.position() != s.length()) {
-        	System.out.println("2) updated position is incorrect");
-        }
-        String data2 = new String(buffer);
-        System.out.println("2) read:" + data2);
-        if (args.length == 0) {
-            System.out.println("2) expected:" + EXPECTED2);
-            System.out.println("2) values do" + (EXPECTED2.equals(data2) ? "" : " not") + " match");
-        }
-    }
-}
diff --git a/src/java/net/sf/samtools/seekablestream/SeekableFTPStreamHelper.java b/src/java/net/sf/samtools/seekablestream/SeekableFTPStreamHelper.java
deleted file mode 100644
index c679496..0000000
--- a/src/java/net/sf/samtools/seekablestream/SeekableFTPStreamHelper.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * Copyright (c) 2007-2011 by The Broad Institute of MIT and Harvard.  All Rights Reserved.
- *
- * This software is licensed under the terms of the GNU Lesser General Public License (LGPL),
- * Version 2.1 which is available at http://www.opensource.org/licenses/lgpl-2.1.php.
- *
- * THE SOFTWARE IS PROVIDED "AS IS." THE BROAD AND MIT MAKE NO REPRESENTATIONS OR
- * WARRANTES OF ANY KIND CONCERNING THE SOFTWARE, EXPRESS OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
- * PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, WHETHER
- * OR NOT DISCOVERABLE.  IN NO EVENT SHALL THE BROAD OR MIT, OR THEIR RESPECTIVE
- * TRUSTEES, DIRECTORS, OFFICERS, EMPLOYEES, AND AFFILIATES BE LIABLE FOR ANY DAMAGES
- * OF ANY KIND, INCLUDING, WITHOUT LIMITATION, INCIDENTAL OR CONSEQUENTIAL DAMAGES,
- * ECONOMIC DAMAGES OR INJURY TO PROPERTY AND LOST PROFITS, REGARDLESS OF WHETHER
- * THE BROAD OR MIT SHALL BE ADVISED, SHALL HAVE OTHER REASON TO KNOW, OR IN FACT
- * SHALL KNOW OF THE POSSIBILITY OF THE FOREGOING.
- */
-
-package net.sf.samtools.seekablestream;
-
-import net.sf.samtools.util.ftp.FTPClient;
-import net.sf.samtools.util.ftp.FTPReply;
-import net.sf.samtools.util.ftp.FTPUtils;
-
-import java.io.EOFException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-
-/**
- * @author jrobinso
- * @date Oct 27, 2010
- */
-public class SeekableFTPStreamHelper {
-
-    private long position = 0;
-    private long contentLength = -1;
-    private String host;
-    private String path;
-    private String userInfo;
-    FTPClient ftp = null;
-    private UserPasswordInput userPasswordInput;
-
-    SeekableFTPStreamHelper(URL url, UserPasswordInput userPasswordInput) throws IOException {
-        this.userInfo = url.getUserInfo();
-        this.host = url.getHost();
-        this.path = url.getPath();
-        this.userPasswordInput = userPasswordInput;
-        ftp = FTPUtils.connect(host, userInfo, userPasswordInput);
-
-        ftp.binary();
-        FTPReply reply = ftp.size(path);
-        if(reply.isSuccess()) {
-            contentLength = Long.parseLong(reply.getReplyString());
-        }
-
-    }
-
-    public void seek(long position) {
-        this.position = position;
-    }
-
-    public long position() {
-        return position;
-    }
-
-    public boolean eof() throws IOException {
-        return false;
-    }
-
-    public long length() {
-        return contentLength;
-    }
-
-
-    public long skip(long n) throws IOException {
-        long bytesToSkip = n;
-        position += bytesToSkip;
-        if (ftp != null) {
-            ftp.setRestPosition(position);
-        }
-        return bytesToSkip;
-    }
-
-    public int read(byte[] buffer, int offset, int len) throws IOException {
-
-        if (ftp == null) {
-            ftp = FTPUtils.connect(host, userInfo, userPasswordInput);
-        }
-
-        if (offset < 0 || len < 0 || (offset + len) > buffer.length) {
-            throw new IndexOutOfBoundsException();
-        }
-
-        if (len == 0) {
-            return 0;
-        }
-
-        int n = 0;
-        try {
-
-            FTPReply reply = ftp.pasv();
-
-            // If we are positioned at or beyond the EOF return -1
-            if(contentLength >= 0 && position >= contentLength) {
-                return -1;
-            }
-
-            if (position > 0) ftp.setRestPosition(position);
-
-            reply = ftp.retr(path);
-
-            InputStream is = ftp.getDataStream();
-
-            while (n < len) {
-                int count = is.read(buffer, offset + n, len - n);
-                if (count < 0) {
-                    if (n == 0) {
-                        return -1;
-                    } else {
-                        break;
-                    }
-                }
-                n += count;
-            }
-
-            position += n;
-
-            return n;
-        } catch (EOFException e) {
-            if (n < 0) {
-                return -1;
-            } else {
-                position += n;
-                return n;
-            }
-        } finally {
-            // ALWAYS close ftp connection,  this is more robust than trying to resue them,
-            // and we don't want open connections hanging about
-            ftp.disconnect();
-            ftp = null;
-        }
-    }
-
-
-    private void reconnect() throws IOException {
-        if (ftp != null) {
-            ftp.disconnect();
-        }
-        ftp = FTPUtils.connect(host, userInfo, userPasswordInput);
-    }
-
-
-    public void close() throws IOException {
-        if (ftp != null) {
-            ftp.disconnect();
-            ftp = null;
-        }
-    }
-
-
-    public int read() throws IOException {
-        throw new UnsupportedOperationException("read() is not supported on SeekableHTTPStream.  Must read in blocks.");
-    }
-
-}
diff --git a/src/java/net/sf/samtools/seekablestream/SeekableFileStream.java b/src/java/net/sf/samtools/seekablestream/SeekableFileStream.java
deleted file mode 100644
index 9699246..0000000
--- a/src/java/net/sf/samtools/seekablestream/SeekableFileStream.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Copyright (c) 2007-2009 by The Broad Institute, Inc. and the Massachusetts Institute of Technology.
- * All Rights Reserved.
- *
- * This software is licensed under the terms of the GNU Lesser General Public License (LGPL), Version 2.1 which
- * is available at http://www.opensource.org/licenses/lgpl-2.1.php.
- *
- * THE SOFTWARE IS PROVIDED "AS IS." THE BROAD AND MIT MAKE NO REPRESENTATIONS OR WARRANTIES OF
- * ANY KIND CONCERNING THE SOFTWARE, EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES
- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT
- * OR OTHER DEFECTS, WHETHER OR NOT DISCOVERABLE.  IN NO EVENT SHALL THE BROAD OR MIT, OR THEIR
- * RESPECTIVE TRUSTEES, DIRECTORS, OFFICERS, EMPLOYEES, AND AFFILIATES BE LIABLE FOR ANY DAMAGES OF
- * ANY KIND, INCLUDING, WITHOUT LIMITATION, INCIDENTAL OR CONSEQUENTIAL DAMAGES, ECONOMIC
- * DAMAGES OR INJURY TO PROPERTY AND LOST PROFITS, REGARDLESS OF WHETHER THE BROAD OR MIT SHALL
- * BE ADVISED, SHALL HAVE OTHER REASON TO KNOW, OR IN FACT SHALL KNOW OF THE POSSIBILITY OF THE
- * FOREGOING.
- */
-package net.sf.samtools.seekablestream;
-
-import java.io.*;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-
-/**
- *
- * @author jrobinso
- */
-public class SeekableFileStream extends SeekableStream {
-
-    /**
-     * Collection of all open instances.  SeekableFileStream objects are usually open and kept open for the
-     * duration of a session.  This collection supports a method to close them all.
-     */
-    static Collection<SeekableFileStream> allInstances =
-            Collections.synchronizedCollection(new HashSet<SeekableFileStream>());
-
-
-    File file;
-    RandomAccessFile fis;
-
-    public SeekableFileStream(final File file) throws FileNotFoundException {
-        this.file = file;
-        fis = new RandomAccessFile(file, "r");
-        allInstances.add(this);
-    }
-
-    public long length() {
-        return file.length();
-    }
-
-    public boolean eof() throws IOException {
-        return fis.length() == fis.getFilePointer();
-    }
-
-    public void seek(final long position) throws IOException {
-        fis.seek(position);
-    }
-
-    public long position() throws IOException {
-        return fis.getChannel().position();
-    }
-
-    @Override
-    public long skip(long n) throws IOException {
-        long initPos = position();
-        fis.getChannel().position(initPos + n);
-        return position() - initPos;
-    }
-    
-    public int read(final byte[] buffer, final int offset, final int length) throws IOException {
-        if (length < 0) {
-            throw new IndexOutOfBoundsException();
-        }
-        int n = 0;
-        while (n < length) {
-            final int count = fis.read(buffer, offset + n, length - n);
-            if (count < 0) {
-              if (n > 0) {
-                return n;
-              } else {
-                return count;
-              }
-            }
-            n += count;
-        }
-        return n;
-
-    }
-
-    public int read() throws IOException {
-        return fis.read();  
-    }
-
-    @Override
-    public int read(byte[] b) throws IOException {
-        return fis.read(b);
-    }
-
-    @Override
-    public String getSource() {
-        return file.getAbsolutePath();
-    }
-
-
-    public void close() throws IOException {
-        allInstances.remove(this);
-        fis.close();
-
-    }
-
-    public static synchronized void closeAllInstances() {
-        Collection<SeekableFileStream> clonedInstances = new HashSet<SeekableFileStream>();
-        clonedInstances.addAll(allInstances);
-        for (SeekableFileStream sfs : clonedInstances) {
-            try {
-                sfs.close();
-            } catch (IOException e) {
-                //TODO
-                //log.error("Error closing SeekableFileStream", e);
-            }
-        }
-        allInstances.clear();
-    }
-}
diff --git a/src/java/net/sf/samtools/seekablestream/SeekableHTTPStream.java b/src/java/net/sf/samtools/seekablestream/SeekableHTTPStream.java
deleted file mode 100644
index 5120e72..0000000
--- a/src/java/net/sf/samtools/seekablestream/SeekableHTTPStream.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.seekablestream;
-
-import net.sf.samtools.util.HttpUtils;
-
-import java.io.EOFException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.HttpURLConnection;
-import java.net.Proxy;
-import java.net.URL;
-
-/**
- * @author jrobinso
- */
-public class SeekableHTTPStream extends SeekableStream {
-
-    private long position = 0;
-    private long contentLength = -1;
-    private final URL url;
-    private final Proxy proxy;
-
-    public SeekableHTTPStream(final URL url) {
-        this(url, null);
-
-    }
-
-    public SeekableHTTPStream(final URL url, Proxy proxy) {
-
-        this.proxy = proxy;
-        this.url = url;
-
-        // Try to get the file length
-        // Note: This also sets setDefaultUseCaches(false), which is important
-        final String contentLengthString = HttpUtils.getHeaderField(url, "Content-Length");
-        if (contentLengthString != null) {
-            try {
-                contentLength = Long.parseLong(contentLengthString);
-            }
-            catch (NumberFormatException ignored) {
-                System.err.println("WARNING: Invalid content length (" + contentLengthString + "  for: " + url);
-                contentLength = -1;
-            }
-        }
-
-    }
-
-    public long position() {
-        return position;
-    }
-
-    public long length() {
-        return contentLength;
-    }
-
-    @Override
-    public long skip(long n) throws IOException {
-        long bytesToSkip = Math.min(n, contentLength - position);
-        position += bytesToSkip;
-        return bytesToSkip;
-    }
-
-    public boolean eof() throws IOException {
-        return contentLength > 0 && position >= contentLength;
-    }
-
-    public void seek(final long position) {
-        this.position = position;
-    }
-
-    public int read(byte[] buffer, int offset, int len) throws IOException {
-
-        if (offset < 0 || len < 0 || (offset + len) > buffer.length) {
-            throw new IndexOutOfBoundsException("Offset="+offset+",len="+len+",buflen="+buffer.length);
-        }
-        if (len == 0) {
-            return 0;
-        }
-
-        HttpURLConnection connection = null;
-        InputStream is = null;
-        String byteRange = "";
-        int n = 0;
-        try {
-            connection = proxy == null ?
-                    (HttpURLConnection) url.openConnection() :
-                    (HttpURLConnection) url.openConnection(proxy);
-
-            long endRange = position + len - 1;
-            // IF we know the total content length, limit the end range to that.
-            if (contentLength > 0) {
-                endRange = Math.min(endRange, contentLength);
-            }
-            byteRange = "bytes=" + position + "-" + endRange;
-            connection.setRequestProperty("Range", byteRange);
-
-            is = connection.getInputStream();
-
-            while (n < len) {
-                int count = is.read(buffer, offset + n, len - n);
-                if (count < 0) {
-                    if (n == 0) {
-                        return -1;
-                    } else {
-                        break;
-                    }
-                }
-                n += count;
-            }
-
-            position += n;
-
-            return n;
-
-        }
-
-        catch (IOException e) {
-            // THis is a bit of a hack, but its not clear how else to handle this.  If a byte range is specified
-            // that goes past the end of the file the response code will be 416.  The MAC os translates this to
-            // an IOException with the 416 code in the message.  Windows translates the error to an EOFException.
-            //
-            //  The BAM file iterator  uses the return value to detect end of file (specifically looks for n == 0).
-            if (e.getMessage().contains("416") || (e instanceof EOFException)) {
-                if (n == 0) {
-                    return -1;
-                } else {
-                    position += n;
-                    // As we are at EOF, the contentLength and position are by definition =
-                    contentLength = position;
-                    return n;
-                }
-            } else {
-                throw e;
-            }
-
-        }
-
-        finally {
-            if (is != null) {
-                is.close();
-            }
-            if (connection != null) {
-                connection.disconnect();
-            }
-        }
-    }
-
-
-    public void close() throws IOException {
-        // Nothing to do
-    }
-
-
-    public int read() throws IOException {
-    	byte []tmp=new byte[1];
-    	read(tmp,0,1);
-    	return (int) tmp[0] & 0xFF; 
-    }
-
-    @Override
-    public String getSource() {
-        return url.toString();
-    }
-}
diff --git a/src/java/net/sf/samtools/seekablestream/SeekableStream.java b/src/java/net/sf/samtools/seekablestream/SeekableStream.java
deleted file mode 100644
index 09ed534..0000000
--- a/src/java/net/sf/samtools/seekablestream/SeekableStream.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.seekablestream;
-
-import java.io.EOFException;
-import java.io.IOException;
-import java.io.InputStream;
-
-public abstract class SeekableStream extends InputStream {
-
-    public abstract long length();
-
-    public abstract long position() throws IOException;
-
-    public abstract void seek(long position) throws IOException;
-
-    public abstract int read(byte[] buffer, int offset, int length) throws IOException;
-
-    public abstract void close() throws IOException;
-
-    public abstract boolean eof() throws IOException;
-
-    /**
-     * @return String representation of source (e.g. URL, file path, etc.), or null if not available.
-     */
-    public abstract String getSource();
-
-    /**
-     * Read enough bytes to fill the input buffer.
-     * @param b
-     * @throws EOFException If EOF is reached before buffer is filled
-     */
-    public void readFully(byte b[]) throws IOException {
-        int len = b.length;
-        if (len < 0){
-            throw new IndexOutOfBoundsException();
-        }
-        int n = 0;
-        while (n < len) {
-            int count = read(b, n, len - n);
-            if (count < 0){
-                throw new EOFException();
-            }
-            n += count;
-        }
-    }
-
-}
diff --git a/src/java/net/sf/samtools/seekablestream/SeekableStreamFactory.java b/src/java/net/sf/samtools/seekablestream/SeekableStreamFactory.java
deleted file mode 100644
index 2dc1b2b..0000000
--- a/src/java/net/sf/samtools/seekablestream/SeekableStreamFactory.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.seekablestream;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URL;
-
-/**
- * Singleton class for getting {@link SeekableStream}s from URL/paths
- * Applications using this library can set their own factory
- * @author jrobinso
- * @date Nov 30, 2009
- */
-public class SeekableStreamFactory{
-
-    private static final ISeekableStreamFactory DEFAULT_FACTORY;
-    private static ISeekableStreamFactory currentFactory;
-
-    static{
-        DEFAULT_FACTORY = new DefaultSeekableStreamFactory();
-        currentFactory = DEFAULT_FACTORY;
-    }
-
-    private SeekableStreamFactory(){}
-
-    public static void setInstance(final ISeekableStreamFactory factory){
-        currentFactory = factory;
-    }
-
-    public static ISeekableStreamFactory getInstance(){
-        return currentFactory;
-    }
-
-    /**
-     * Does this path point to a regular file on disk and not something like a URL?
-     * @param path the path to test
-     * @return true if the path is to a file on disk
-     */
-    public static boolean isFilePath(final String path) {
-        return ! ( path.startsWith("http:") || path.startsWith("https:") || path.startsWith("ftp:") );
-    }
-
-    private static class DefaultSeekableStreamFactory implements ISeekableStreamFactory {
-
-        public SeekableStream getStreamFor(final URL url) throws IOException {
-            return getStreamFor(url.toExternalForm());
-        }
-
-        public SeekableStream getStreamFor(final String path) throws IOException {
-            // todo -- add support for SeekableBlockInputStream
-
-            if (path.startsWith("http:") || path.startsWith("https:")) {
-                final URL url = new URL(path);
-                return new SeekableHTTPStream(url);
-            } else if (path.startsWith("ftp:")) {
-                return new SeekableFTPStream(new URL(path));
-            } else {
-                return new SeekableFileStream(new File(path));
-            }
-        }
-
-        public SeekableStream getBufferedStream(SeekableStream stream){
-            return getBufferedStream(stream, SeekableBufferedStream.DEFAULT_BUFFER_SIZE);
-        }
-
-        public SeekableStream getBufferedStream(SeekableStream stream, int bufferSize){
-            if (bufferSize == 0) return stream;
-            else return new SeekableBufferedStream(stream, bufferSize);
-        }
-
-    }
-
-}
diff --git a/src/java/net/sf/samtools/seekablestream/UserPasswordInput.java b/src/java/net/sf/samtools/seekablestream/UserPasswordInput.java
deleted file mode 100644
index 696d6c9..0000000
--- a/src/java/net/sf/samtools/seekablestream/UserPasswordInput.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.seekablestream;
-
-public interface UserPasswordInput {
-	public void setHost(String host);
-    public boolean showDialog();
-    public String getUser();
-    public String getPassword();
-}
diff --git a/src/java/net/sf/samtools/util/AbstractAsyncWriter.java b/src/java/net/sf/samtools/util/AbstractAsyncWriter.java
deleted file mode 100644
index 7048815..0000000
--- a/src/java/net/sf/samtools/util/AbstractAsyncWriter.java
+++ /dev/null
@@ -1,121 +0,0 @@
-package net.sf.samtools.util;
-
-import java.util.concurrent.ArrayBlockingQueue;
-import java.util.concurrent.BlockingQueue;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.concurrent.atomic.AtomicReference;
-
-/**
- * Abstract class that is designed to be extended and specialized to provide an asynchronous
- * wrapper around any kind of Writer class that takes an object and writes it out somehow.
- *
- * @author Tim Fennell
- */
-public abstract class AbstractAsyncWriter<T> {
-    private static volatile int threadsCreated = 0; // Just used for thread naming.
-    public static final int DEFAULT_QUEUE_SIZE = 2000;
-
-    private final AtomicBoolean isClosed = new AtomicBoolean(false);
-    private final BlockingQueue<T> queue;
-    private final Thread writer;
-    private final WriterRunnable writerRunnable;
-    private final AtomicReference<Throwable> ex = new AtomicReference<Throwable>(null);
-
-    /** Returns the prefix to use when naming threads. */
-    protected abstract String getThreadNamePrefix();
-
-    protected abstract void synchronouslyWrite(final T item);
-
-    protected abstract void synchronouslyClose();
-
-    /**
-     * Creates an AbstractAsyncWriter that will use the provided WriterRunnable to consume from the
-     * internal queue and write records into the synchronous writer.
-     */
-    protected AbstractAsyncWriter(final int queueSize) {
-        this.queue = new ArrayBlockingQueue<T>(queueSize);
-        this.writerRunnable = new WriterRunnable();
-        this.writer = new Thread(writerRunnable, getThreadNamePrefix() + threadsCreated++);
-        this.writer.setDaemon(true);
-        this.writer.start();
-    }
-
-    /**
-     * Public method for sub-classes or ultimately consumers to put an item into the queue
-     * to be written out.
-     */
-    public void write(final T item) {
-        if (this.isClosed.get()) throw new RuntimeException("Attempt to add record to closed writer.");
-
-        checkAndRethrow();
-        try { this.queue.put(item); }
-        catch (InterruptedException ie) { throw new RuntimeException("Interrupted queueing item for writing.", ie); }
-        checkAndRethrow();
-    }
-
-    /**
-     * Attempts to finishing draining the queue and then calls synchronoslyClose() to allow implementation
-     * to do any one time clean up.
-     */
-    public void close() {
-        checkAndRethrow();
-
-        if (this.isClosed.get()) {
-            throw new RuntimeException("AbstractAsyncWriter already closed.");
-        }
-        else {
-            this.isClosed.set(true);
-
-            try { this.writer.join(); }
-            catch (InterruptedException ie) { throw new RuntimeException("Interrupted waiting on writer thread.", ie); }
-
-            // Assert that the queue is empty
-            if (!this.queue.isEmpty()) {
-                throw new RuntimeException("Queue should be empty but is size: " + this.queue.size());
-            }
-
-            synchronouslyClose();
-            checkAndRethrow();
-        }
-    }
-
-    /**
-     * Checks to see if an exception has been raised in the writer thread and if so rethrows it as an Error
-     * or RuntimeException as appropriate.
-     */
-    private final void checkAndRethrow() {
-        final Throwable t = this.ex.get();
-        if (t != null) {
-            if (t instanceof Error) throw (Error) t;
-            if (t instanceof RuntimeException) throw (RuntimeException) t;
-            else throw new RuntimeException(t);
-        }
-    }
-
-    /**
-     * Small Runnable implementation that simply reads from the blocking queue and writes to the
-     * synchronous writer.
-     */
-    private class WriterRunnable implements Runnable {
-        public void run() {
-            try {
-                while (!queue.isEmpty() || !isClosed.get()) {
-                    try {
-                        final T item = queue.poll(2, TimeUnit.SECONDS);
-                        if (item != null) synchronouslyWrite(item);
-                    }
-                    catch (InterruptedException ie) {
-                        /* Do Nothing */
-                    }
-                }
-            }
-            catch (Throwable t) {
-                ex.compareAndSet(null, t);
-                // In case a writer was blocking on a full queue before ex has been set, clear the queue
-                // so that the writer will no longer be blocked so that it can see the exception.
-                queue.clear();
-            }
-        }
-    }
-}
diff --git a/src/java/net/sf/samtools/util/AbstractIterator.java b/src/java/net/sf/samtools/util/AbstractIterator.java
deleted file mode 100644
index 7c3b741..0000000
--- a/src/java/net/sf/samtools/util/AbstractIterator.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.samtools.util;
-
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-
-/**
- * Base class of implementing iterators. All you have to do is implement advance which gets
- * the next element.
- *
- * @author Doug Voet (dvoet at broadinstitute dot org)
- */
-public abstract class AbstractIterator<E> implements Iterator<E> {
-    protected E next;
-    private boolean iterating = false;
-
-    @Override
-    public boolean hasNext() {
-        // If this is the start of iteration, queue up the first item
-        if (!iterating) {
-            next = advance();
-            iterating = true;
-        }
-        return next != null;
-    }
-
-    @Override
-    public E next() {
-        if (!hasNext()) {
-            throw new NoSuchElementException();
-        }
-
-        E ret = next;
-        next = advance();
-        return ret;
-    }
-
-    @Override
-    public void remove() {
-        throw new UnsupportedOperationException("Remove() not supported.");
-    }
-
-    /**
-     * @return the next element or null if the iterator is at the end
-     */
-    protected abstract E advance();
-
-    /**
-     * Returns the next element in the iterator, if one exists.  Otherwise, returns null.  Invoking this method does not advance the iterator.
-     * @return The next element in the iterator, without advancing, or, if no other element exists, null.
-     */
-    public E peek() {
-        return next;
-    }
-
-    /**
-     * @return true after the first time hasNext() or next() have been called
-     */
-    protected boolean isIterating() {
-        return iterating;
-    }
-}
diff --git a/src/java/net/sf/samtools/util/AsciiWriter.java b/src/java/net/sf/samtools/util/AsciiWriter.java
deleted file mode 100644
index 886d4a0..0000000
--- a/src/java/net/sf/samtools/util/AsciiWriter.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.util;
-
-import net.sf.samtools.Defaults;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.Writer;
-
-/**
- * Fast (I hope) buffered Writer that converts char to byte merely by casting, rather than charset conversion.
- */
-public class AsciiWriter extends Writer {
-
-    private final OutputStream os;
-    // Buffer size has not been tuned.
-    private final byte[] buffer = new byte[Defaults.NON_ZERO_BUFFER_SIZE];
-    private int numBytes;
-
-    /**
-     * @param os need not be buffered as this class buffers
-     */
-    public AsciiWriter(final OutputStream os) {
-        this.os = os;
-        numBytes = 0;
-    }
-
-    /**
-     * flushes and closes underlying OutputStream.
-     */
-    public void close() throws IOException {
-        flush();
-        os.close();
-    }
-
-    /**
-     * flushes underlying OutputStream
-     */
-    public void flush() throws IOException {
-        os.write(buffer, 0, numBytes);
-        numBytes = 0;
-        os.flush();
-    }
-
-    /**
-     * All other Writer methods vector through this, so this is the only one that must be overridden.
-     */
-    public void write(final char[] chars, int offset, int length) throws IOException {
-        while (length > 0) {
-            final int charsToConvert = Math.min(length, buffer.length - numBytes);
-            StringUtil.charsToBytes(chars, offset, charsToConvert, buffer, numBytes);
-            numBytes += charsToConvert;
-            offset += charsToConvert;
-            length -= charsToConvert;
-            if (numBytes == buffer.length) {
-                os.write(buffer, 0, numBytes);
-                numBytes = 0;
-            }
-        }
-    }
-}
diff --git a/src/java/net/sf/samtools/util/BinaryCodec.java b/src/java/net/sf/samtools/util/BinaryCodec.java
deleted file mode 100644
index 84b0a9c..0000000
--- a/src/java/net/sf/samtools/util/BinaryCodec.java
+++ /dev/null
@@ -1,663 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.util;
-
-import java.io.*;
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
-
-/**
- * Encapsulates file representation of various primitive data types.  Forces little-endian disk representation.
- * Note that this class is currently not very efficient.  There are plans to increase the size of the ByteBuffer,
- * and move data between the ByteBuffer and the underlying input or output stream in larger chunks.
- *
- * All the read methods throw RuntimeEOFException if the input stream is exhausted before the required number
- * of bytes are read.
- *
- * @author Dave Tefft
- */
-public class BinaryCodec {
-
-    //Outstream to write to
-    private OutputStream outputStream;
-    //If a file or filename was given it will be stored here.  Used for error reporting.
-    private String outputFileName;
-
-    //Input stream to read from
-    private InputStream inputStream;
-    //If a file or filename was give to read from it will be stored here.  Used for error reporting.
-    private String inputFileName;
-
-    /*
-    Mode that the BinaryCodec is in.  It is either writing to a binary file or reading from.
-    This is set to true if it is writing to a binary file
-    Right now we don't support reading and writing to the same file with the same BinaryCodec instance
-    */
-    private boolean isWriting;
-
-    /**
-     * For byte swapping.
-     */
-    private ByteBuffer byteBuffer;
-
-    /**
-     * For reading Strings of known length, this can reduce object creation
-     */
-    private final byte[] scratchBuffer = new byte[16];
-
-    // Byte order used in BAM files.
-    private static final ByteOrder LITTLE_ENDIAN = ByteOrder.LITTLE_ENDIAN;
-    private static final byte NULL_BYTE[] = {0};
-
-    private static final long MAX_UBYTE = (Byte.MAX_VALUE * 2) + 1;
-    private static final long MAX_USHORT = (Short.MAX_VALUE * 2) + 1;
-    private static final long MAX_UINT = ((long)Integer.MAX_VALUE * 2) + 1;
-
-    // We never serialize more than this much at a time (except for Strings)
-    private static final int MAX_BYTE_BUFFER = 8;
-
-    //////////////////////////////////////////////////
-    // Constructors                                 //
-    //////////////////////////////////////////////////
-
-    /**
-     * Constructs BinaryCodec from a file and set it's mode to writing or not
-     *
-     * @param file    file to be written to or read from
-     * @param writing whether the file is being written to
-     */
-    public BinaryCodec(final File file, final boolean writing) {
-        this();
-        try {
-            this.isWriting = writing;
-            if (this.isWriting) {
-                this.outputStream = new FileOutputStream(file);
-                this.outputFileName = file.getName();
-            } else {
-                this.inputStream = new FileInputStream(file);
-                this.inputFileName = file.getName();
-            }
-        } catch (FileNotFoundException e) {
-            throw new RuntimeIOException("File not found: " + file, e);
-        }
-    }
-
-    /**
-     * Constructs BinaryCodec from a file name and set it's mode to writing or not
-     *
-     * @param fileName name of the file to be written to or read from
-     * @param writing  writing whether the file is being written to
-     */
-    public BinaryCodec(final String fileName, final boolean writing) {
-        this(new File(fileName), writing);
-    }
-
-    /**
-     * Constructs BinaryCodec from an output stream
-     *
-     * @param outputStream Stream to write to, since it's an output stream we know that isWriting
-     *                     should be set to true
-     */
-    public BinaryCodec(final OutputStream outputStream) {
-        this();
-        setOutputStream(outputStream);
-    }
-
-    /**
-     * Constructs BinaryCodec from an input stream
-     *
-     * @param inputStream Stream to read from, since we are reading isWriting is set to false
-     */
-    public BinaryCodec(final InputStream inputStream) {
-        this();
-        setInputStream(inputStream);
-    }
-
-    /**
-     * Ambiguous whether reading or writing until set{In,Out}putStream is called
-     */
-    public BinaryCodec() {
-        initByteBuffer();
-    }
-
-    /**
-     * Shared among ctors.
-     * Note that if endianness is changed, all the unsigned methods must also be changed.
-     */
-    private void initByteBuffer() {
-        byteBuffer = ByteBuffer.allocate(MAX_BYTE_BUFFER);
-        byteBuffer.order(LITTLE_ENDIAN);
-    }
-
-    //////////////////////////////////////////////////
-    // Writing methods                              //
-    //////////////////////////////////////////////////
-
-
-    /**
-     * Write whatever has been put into the byte buffer
-     * @param numBytes -- how much to write.  Note that in case of writing an unsigned value,
-     * more bytes were put into the ByteBuffer than will get written out.
-     */
-    private void writeByteBuffer(final int numBytes) {
-        assert(numBytes <= byteBuffer.limit());
-        writeBytes(byteBuffer.array(), 0, numBytes);
-    }
-
-    /**
-     * Writes a byte to the output buffer
-     *
-     * @param bite byte array to write
-     */
-    public void writeByte(final byte bite) {
-        byteBuffer.clear();
-        byteBuffer.put(bite);
-        writeByteBuffer(1);
-    }
-
-    public void writeByte(final int b) {
-        writeByte((byte)b);
-    }
-
-    /**
-     * Writes a byte array to the output buffer
-     *
-     * @param bytes value to write
-     */
-    public void writeBytes(final byte[] bytes) {
-        writeBytes(bytes,  0, bytes.length);
-    }
-
-    public void writeBytes(final byte[] bytes, final int startOffset, final int numBytes) {
-        if (!isWriting) {
-            throw new IllegalStateException("Calling write method on BinaryCodec open for read.");
-        }
-        try {
-            outputStream.write(bytes, startOffset, numBytes);
-        } catch (IOException e) {
-            throw new RuntimeIOException(constructErrorMessage("Write error"), e);
-        }
-    }
-
-    /**
-     * Write a 32-bit int to the output stream
-     *
-     * @param value int to write
-     */
-    public void writeInt(final int value) {
-        byteBuffer.clear();
-        byteBuffer.putInt(value);
-        writeByteBuffer(4);
-    }
-
-    /**
-     * Write a double (8 bytes) to the output stream
-     *
-     * @param value double to write
-     */
-    public void writeDouble(final double value) {
-        byteBuffer.clear();
-        byteBuffer.putDouble(value);
-        writeByteBuffer(8);
-    }
-
-    /**
-     * Write a 64-bit long to the output stream
-     *
-     * @param value long to write
-     */
-    public void writeLong(final long value) {
-        byteBuffer.clear();
-        byteBuffer.putLong(value);
-        writeByteBuffer(8);
-    }
-
-
-    /**
-     * Write a 16-bit short to output stream
-     */
-    public void writeShort(final short value) {
-        byteBuffer.clear();
-        byteBuffer.putShort(value);
-        writeByteBuffer(2);
-    }
-
-    /**
-     * Write a float (4 bytes) to the output stream
-     *
-     * @param value float to write
-     */
-    public void writeFloat(final float value) {
-        byteBuffer.clear();
-        byteBuffer.putFloat(value);
-        writeByteBuffer(4);
-    }
-
-    /**
-     * Writes a boolean (1 byte) to the output buffer
-     *
-     * @param value boolean to write
-     */
-    public void writeBoolean(final boolean value) {
-        byteBuffer.clear();
-        byteBuffer.put(value ? (byte)1 : (byte)0);
-        writeByteBuffer(1);
-    }
-
-    /**
-     * Writes a string to the buffer as ASCII bytes
-     *
-     * @param value       string to write to buffer
-     * @param writeLength prefix the string with the length as a 32-bit int
-     * @param appendNull  add a null byte to the end of the string
-     */
-    public void writeString(final String value, final boolean writeLength, final boolean appendNull) {
-        if (writeLength) {
-            int lengthToWrite = value.length();
-            if (appendNull) lengthToWrite++;
-            writeInt(lengthToWrite);
-        }
-
-        //Actually writes the string to a buffer
-        writeString(value);
-
-        if (appendNull) writeBytes(NULL_BYTE);
-
-    }
-
-
-    /**
-     * Write a string to the buffer as ASCII bytes
-     *
-     * @param value string to write
-     */
-    private void writeString(final String value) {
-        writeBytes(StringUtil.stringToBytes(value));
-    }
-
-    /**
-     * Write an 8-bit unsigned byte.
-     * NOTE: This method will break if we change to big-endian.
-     */
-    public void writeUByte(final short val) {
-        if (val < 0) {
-            throw new IllegalArgumentException("Negative value (" + val + ") passed to unsigned writing method.");
-        }
-        if (val > MAX_UBYTE) {
-            throw new IllegalArgumentException("Value (" + val + ") to large to be written as ubyte.");
-        }
-        byteBuffer.clear();
-        byteBuffer.putShort(val);
-        writeByteBuffer(1);
-    }
-
-    /**
-     * Write a 16-bit unsigned short.
-     * NOTE: This method will break if we change to big-endian.
-     */
-    public void writeUShort(final int val) {
-        if (val < 0) {
-            throw new IllegalArgumentException("Negative value (" + val + ") passed to unsigned writing method.");
-        }
-        if (val > MAX_USHORT) {
-            throw new IllegalArgumentException("Value (" + val + ") to large to be written as ushort.");
-        }
-        byteBuffer.clear();
-        byteBuffer.putInt(val);
-        writeByteBuffer(2);
-    }
-
-    /**
-     * Write a 32-bit unsigned int.
-     * NOTE: This method will break if we change to big-endian.
-     */
-    public void writeUInt(final long val) {
-        if (val < 0) {
-            throw new IllegalArgumentException("Negative value (" + val + ") passed to unsigned writing method.");
-        }
-        if (val > MAX_UINT) {
-            throw new IllegalArgumentException("Value (" + val + ") to large to be written as uint.");
-        }
-        byteBuffer.clear();
-        byteBuffer.putLong(val);
-        writeByteBuffer(4);
-    }
-
-    //////////////////////////////////////////////////
-    // Reading methods                              //
-    //////////////////////////////////////////////////
-
-    /**
-     * Read a byte array from the input stream.
-     *
-     * @throws net.sf.samtools.util.RuntimeEOFException if fewer than buffer.length bytes to read
-     */
-    public void readBytes(final byte[] buffer) {
-        readBytes(buffer, 0, buffer.length);
-    }
-
-    /**
-     * Read a byte array from the input stream
-     *
-     * @param buffer where to put bytes read
-     * @param offset offset to start putting bytes into buffer
-     * @param length number of bytes to read
-     * @throws RuntimeEOFException if fewer than length bytes to read
-     */
-    public void readBytes(final byte[] buffer, final int offset, final int length) {
-        int totalNumRead = 0;
-        do {
-            final int numRead = readBytesOrFewer(buffer, offset + totalNumRead, length - totalNumRead);
-            if (numRead < 0) {
-                String msg = String.format("Premature EOF. Expected %d but only received %d", length, totalNumRead);
-                throw new RuntimeEOFException(constructErrorMessage(msg));
-            } else {
-                totalNumRead += numRead;
-            }
-        } while (totalNumRead < length);
-    }
-
-    /**
-     * Reads a byte array from the input stream.
-     *
-     * @param buffer where to put bytes read
-     * @param offset offset to start putting bytes into buffer
-     * @param length number of bytes to read.  Fewer bytes may be read if EOF is reached before length bytes
-     *        have been read.
-     * @return the total number of bytes read into the buffer, or -1 if there is no more data because the end of the stream has been reached.
-     */
-    public int readBytesOrFewer(final byte[] buffer, final int offset, final int length) {
-        if (isWriting) {
-            throw new IllegalStateException("Calling read method on BinaryCodec open for write.");
-        }
-        try {
-            return inputStream.read(buffer, offset, length);
-        } catch (IOException e) {
-            throw new RuntimeIOException(constructErrorMessage("Read error"), e);
-        }
-    }
-
-    /**
-     * @return a single byte read from the input stream.
-     */
-    public byte readByte() {
-        if (isWriting) {
-            throw new IllegalStateException("Calling read method on BinaryCodec open for write.");
-        }
-        try {
-            final int ret = inputStream.read();
-            if (ret == -1) {
-                throw new RuntimeEOFException(constructErrorMessage("Premature EOF"));
-            }
-            return (byte)ret;
-        } catch (IOException e) {
-            throw new RuntimeIOException(constructErrorMessage("Read error"), e);
-        }
-    }
-
-    /**
-     * @return true if it is possible to know for sure if at EOF, and it is known for sure.
-     * If the input stream is a ByteArrayInputStream, this is faster than causing a RuntimeEOFException
-     * to be thrown.
-     */
-    public boolean knownAtEof() {
-        if (isWriting) {
-            throw new IllegalStateException("Calling knownAtEof method on BinaryCodec open for write.");
-        }
-        try {
-            return inputStream instanceof ByteArrayInputStream && inputStream.available() == 0;
-        } catch (IOException e) {
-            throw new RuntimeIOException(constructErrorMessage("available() error"), e);
-        }
-    }
-
-    /**
-     * Read a string off the input stream, as ASCII bytes
-     *
-     * @param length length of string to read
-     * @return String read from stream
-     */
-    public String readString(final int length) {
-        final byte[] buffer;
-        // Recycle single buffer if possible
-        if (length <= scratchBuffer.length) {
-            buffer = scratchBuffer;
-        } else {
-            buffer = new byte[length];
-
-        }
-        readBytes(buffer, 0, length);
-
-        return StringUtil.bytesToString(buffer, 0, length);
-    }
-
-    /**
-     * Read ASCII bytes from the input stream until a null byte is read
-     * @return String constructed from the ASCII bytes read
-     */
-    public String readNullTerminatedString() {
-        return StringUtil.readNullTerminatedString(this);
-    }
-
-    /**
-     * Read an int length, and then a String of that length
-     * @param devourNull if true, the length include a null terminator, which is read and discarded
-     */
-    public String readLengthAndString(final boolean devourNull) {
-        int length = readInt();
-        if (devourNull) {
-            --length;
-        }
-        final String ret = readString(length);
-        if (devourNull) {
-            readByte();
-        }
-        return ret;
-    }
-
-    private void readByteBuffer(final int numBytes) {
-        assert(numBytes <= byteBuffer.capacity());
-        readBytes(byteBuffer.array(), 0, numBytes);
-        byteBuffer.limit(byteBuffer.capacity());
-        byteBuffer.position(numBytes);
-    }
-
-    /**
-     * Read an int off the input stream
-     *
-     * @return int from input stream
-     */
-    public int readInt() {
-        readByteBuffer(4);
-        byteBuffer.flip();
-        return byteBuffer.getInt();
-    }
-
-    /**
-     * Reads a double off the input stream
-     *
-     * @return double
-     */
-    public double readDouble() {
-        readByteBuffer(8);
-        byteBuffer.flip();
-        return byteBuffer.getDouble();
-    }
-
-    /**
-     * Reads a long off the input stream
-     *
-     * @return long
-     */
-    public long readLong()  {
-        readByteBuffer(8);
-        byteBuffer.flip();
-        return byteBuffer.getLong();
-    }
-
-    public short readShort() {
-        readByteBuffer(2);
-        byteBuffer.flip();
-        return byteBuffer.getShort();
-    }
-
-    /**
-     * Reads a float off the input stream
-     *
-     * @return float
-     */
-    public float readFloat() {
-        readByteBuffer(4);
-        byteBuffer.flip();
-        return byteBuffer.getFloat();
-    }
-
-    /**
-     * Reads a boolean off the input stream, represented as a byte with value 1 or 0
-     *
-     * @return boolean
-     */
-    public boolean readBoolean() {
-        return (((int)readByte()) == 1);
-    }
-
-    /**
-     * Reads an 8-bit unsigned byte from the input stream.
-     * This method assumes little-endianness.
-     */
-    public short readUByte() {
-        readByteBuffer(1);
-        byteBuffer.put((byte)0);
-        byteBuffer.flip();
-        return byteBuffer.getShort();
-    }
-
-    /**
-     * Reads a 16-bit unsigned short from the input stream.
-     * This method assumes little-endianness.
-     */
-    public int readUShort() {
-        readByteBuffer(2);
-        byteBuffer.putShort((short)0);
-        byteBuffer.flip();
-        return byteBuffer.getInt();
-    }
-
-    /**
-     * Reads a 32-bit unsigned int from the input stream.
-     * This method assumes little-endianness.
-     */
-    public long readUInt() {
-        readByteBuffer(4);
-        byteBuffer.putInt(0);
-        byteBuffer.flip();
-        return byteBuffer.getLong();
-    }
-
-    /**
-     * Close the appropriate stream
-     */
-    public void close() {
-        try {
-            if (this.isWriting) {
-                // To the degree possible, make sure the bytes get forced to the file system,
-                // or else cause an exception to be thrown.
-                if (this.outputStream instanceof FileOutputStream) {
-                    this.outputStream.flush();
-                    FileOutputStream fos = (FileOutputStream)this.outputStream;
-                    try {
-                        fos.getFD().sync();
-                    } catch (SyncFailedException e) {
-                        // Since the sync is belt-and-suspenders anyway, don't throw an exception if it fails,
-                        // because on some OSs it will fail for some types of output.  E.g. writing to /dev/null
-                        // on some Unixes.
-                    }
-                }
-                this.outputStream.close();
-            }
-            else this.inputStream.close();
-        } catch (IOException e) {
-            throw new RuntimeIOException(e.getMessage(), e);
-        }
-    }
-
-    private String constructErrorMessage(final String msg) {
-        final StringBuilder sb = new StringBuilder(msg);
-        sb.append("; BinaryCodec in ");
-        sb.append(isWriting? "write": "read");
-        sb.append("mode; ");
-        final String filename = isWriting? outputFileName: inputFileName;
-        if (filename != null) {
-            sb.append("file: ");
-            sb.append(filename);
-        } else  {
-            sb.append("streamed file (filename not available)");
-        }
-        return sb.toString();
-    }
-
-    //////////////////////////////////////////////////
-    // Some getters                                 //
-    //////////////////////////////////////////////////
-
-
-    public String getInputFileName() {
-        return inputFileName;
-    }
-
-    public String getOutputFileName() {
-        return outputFileName;
-    }
-
-    public void setOutputFileName(final String outputFileName) {
-        this.outputFileName = outputFileName;
-    }
-
-    public void setInputFileName(final String inputFileName) {
-        this.inputFileName = inputFileName;
-    }
-
-    public boolean isWriting() {
-        return isWriting;
-    }
-
-    public OutputStream getOutputStream() {
-        return outputStream;
-    }
-
-    public InputStream getInputStream() {
-        return inputStream;
-    }
-
-    public void setInputStream(final InputStream is) {
-        isWriting = false;
-        this.inputStream = is;
-    }
-
-    public void setOutputStream(final OutputStream os) {
-        isWriting = true;
-        this.outputStream = os;
-
-    }
-}
diff --git a/src/java/net/sf/samtools/util/BlockCompressedFilePointerUtil.java b/src/java/net/sf/samtools/util/BlockCompressedFilePointerUtil.java
deleted file mode 100644
index f593e33..0000000
--- a/src/java/net/sf/samtools/util/BlockCompressedFilePointerUtil.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.util;
-
-/**
- * Static for manipulating virtual file pointers in BGZF files.
- */
-public class BlockCompressedFilePointerUtil {
-    private static final int SHIFT_AMOUNT = 16;
-    private static final int OFFSET_MASK = 0xffff;
-    private static final long ADDRESS_MASK = 0xFFFFFFFFFFFFL;
-
-    public static final long MAX_BLOCK_ADDRESS = ADDRESS_MASK;
-    public static final int MAX_OFFSET = OFFSET_MASK;
-    
-    /**
-     * @param vfp1
-     * @param vfp2
-     * @return negative if vfp1 is earlier in file than vfp2, positive if it is later, 0 if equal.
-     */
-    public static int compare(final long vfp1, final long vfp2) {
-        if (vfp1 == vfp2) return 0;
-        // When treating as unsigned, negative number is > positive.
-        if (vfp1 < 0 && vfp2 >= 0) return 1;
-        if (vfp1 >= 0 && vfp2 < 0) return -1;
-        // Either both negative or both non-negative, so regular comparison works.
-        if (vfp1 < vfp2) return -1;
-        return 1; // vfp1 > vfp2
-    }
-
-    /**
-     * @return true if vfp2 points to somewhere in the same BGZF block, or the one immediately following vfp1's BGZF block.
-     */
-    public static boolean areInSameOrAdjacentBlocks(final long vfp1, final long vfp2) {
-        final long block1 = getBlockAddress(vfp1);
-        final long block2 = getBlockAddress(vfp2);
-        return (block1 == block2 || block1 + 1 == block2);        
-    }
-
-    /**
-     * @param blockAddress File offset of start of BGZF block.
-     * @param blockOffset Offset into uncompressed block.
-     * @return Virtual file pointer that embodies the input parameters.
-     */
-    static long makeFilePointer(final long blockAddress, final int blockOffset) {
-        if (blockOffset < 0) {
-            throw new IllegalArgumentException("Negative blockOffset " + blockOffset + " not allowed.");
-        }
-        if (blockAddress < 0) {
-            throw new IllegalArgumentException("Negative blockAddress " + blockAddress + " not allowed.");
-        }
-        if (blockOffset > MAX_OFFSET) {
-            throw new IllegalArgumentException("blockOffset " + blockOffset + " too large.");
-        }
-        if (blockAddress > MAX_BLOCK_ADDRESS) {
-            throw new IllegalArgumentException("blockAddress " + blockAddress + " too large.");
-        }
-        return blockAddress << SHIFT_AMOUNT | blockOffset;
-    }
-
-    /**
-     * @param virtualFilePointer
-     * @return File offset of start of BGZF block for this virtual file pointer.
-     */
-    public static long getBlockAddress(final long virtualFilePointer) {
-        return (virtualFilePointer >> SHIFT_AMOUNT) & ADDRESS_MASK;
-    }
-
-    /**
-     * @param virtualFilePointer
-     * @return Offset into uncompressed block for this virtual file pointer.
-     */
-    public static int getBlockOffset(final long virtualFilePointer) {
-        return (int) (virtualFilePointer & OFFSET_MASK);
-    }
-
-    public static String asString(final long vfp) {
-        return String.format("%d(0x%x): (block address: %d, offset: %d)", vfp, vfp, getBlockAddress(vfp), getBlockOffset(vfp));
-    }
-}
diff --git a/src/java/net/sf/samtools/util/BlockCompressedInputStream.java b/src/java/net/sf/samtools/util/BlockCompressedInputStream.java
deleted file mode 100755
index a66a4b2..0000000
--- a/src/java/net/sf/samtools/util/BlockCompressedInputStream.java
+++ /dev/null
@@ -1,512 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.util;
-
-
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.RandomAccessFile;
-import java.net.URL;
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
-import java.util.Arrays;
-
-import net.sf.samtools.FileTruncatedException;
-import net.sf.samtools.SAMException;
-import net.sf.samtools.seekablestream.SeekableBufferedStream;
-import net.sf.samtools.seekablestream.SeekableFileStream;
-import net.sf.samtools.seekablestream.SeekableHTTPStream;
-import net.sf.samtools.seekablestream.SeekableStream;
-
-/*
- * Utility class for reading BGZF block compressed files.  The caller can treat this file like any other InputStream.
- * It probably is not necessary to wrap this stream in a buffering stream, because there is internal buffering.
- * The advantage of BGZF over conventional GZip format is that BGZF allows for seeking without having to read the
- * entire file up to the location being sought.  Note that seeking is only possible if the ctor(File) is used.
- *
- * c.f. http://samtools.sourceforge.net/SAM1.pdf for details of BGZF format
- */
-public class BlockCompressedInputStream extends InputStream implements LocationAware {
-    private InputStream mStream = null;
-    private SeekableStream mFile = null;
-    private byte[] mFileBuffer = null;
-    private byte[] mCurrentBlock = null;
-    private int mCurrentOffset = 0;
-    private long mBlockAddress = 0;
-    private int mLastBlockLength = 0;
-    private final BlockGunzipper blockGunzipper = new BlockGunzipper();
-
-
-    /**
-     * Note that seek() is not supported if this ctor is used.
-     */
-    public BlockCompressedInputStream(final InputStream stream) {
-        this(stream, true);
-    }
-
-    /**
-     * Note that seek() is not supported if this ctor is used.
-     */
-    public BlockCompressedInputStream(final InputStream stream, final boolean allowBuffering) {
-        if (allowBuffering) {
-            mStream = IOUtil.toBufferedStream(stream);
-        }
-        else {
-            mStream = stream;
-        }
-
-        mFile = null;
-    }
-
-    /**
-     * Use this ctor if you wish to call seek()
-     */
-    public BlockCompressedInputStream(final File file)
-        throws IOException {
-        mFile = new SeekableFileStream(file);
-        mStream = null;
-
-    }
-
-    public BlockCompressedInputStream(final URL url) {
-        mFile = new SeekableBufferedStream(new SeekableHTTPStream(url));
-        mStream = null;
-    }
-
-    /**
-     * For providing some arbitrary data source.  No additional buffering is
-     * provided, so if the underlying source is not buffered, wrap it in a
-     * SeekableBufferedStream before passing to this ctor.
-     */
-    public BlockCompressedInputStream(final SeekableStream strm) {
-        mFile = strm;
-        mStream = null;
-    }
-
-    /**
-     * Determines whether or not the inflater will re-calculated the CRC on the decompressed data
-     * and check it against the value stored in the GZIP header.  CRC checking is an expensive
-     * operation and should be used accordingly.
-     */
-    public void setCheckCrcs(final boolean check) {
-        this.blockGunzipper.setCheckCrcs(check);
-    }
-
-    /**
-     * @return the number of bytes that can be read (or skipped over) from this input stream without blocking by the
-     * next caller of a method for this input stream. The next caller might be the same thread or another thread.
-     * Note that although the next caller can read this many bytes without blocking, the available() method call itself
-     * may block in order to fill an internal buffer if it has been exhausted.
-     */
-    public int available()
-        throws IOException {
-        if (mCurrentBlock == null || mCurrentOffset == mCurrentBlock.length) {
-            readBlock();
-        }
-        if (mCurrentBlock == null) {
-            return 0;
-        }
-        return mCurrentBlock.length - mCurrentOffset;
-    }
-
-    /**
-     * Closes the underlying InputStream or RandomAccessFile
-     */
-    public void close()
-        throws IOException {
-        if (mFile != null) {
-            mFile.close();
-            mFile = null;
-        } else if (mStream != null) {
-            mStream.close();
-            mStream = null;
-        }
-        // Encourage garbage collection
-        mFileBuffer = null;
-        mCurrentBlock = null;
-    }
-
-    /**
-     * Reads the next byte of data from the input stream. The value byte is returned as an int in the range 0 to 255.
-     * If no byte is available because the end of the stream has been reached, the value -1 is returned.
-     * This method blocks until input data is available, the end of the stream is detected, or an exception is thrown.
-
-     * @return the next byte of data, or -1 if the end of the stream is reached.
-     */
-    public int read()
-        throws IOException {
-        return (available() > 0) ? (mCurrentBlock[mCurrentOffset++] & 0xFF) : -1;
-    }
-
-    /**
-     * Reads some number of bytes from the input stream and stores them into the buffer array b. The number of bytes
-     * actually read is returned as an integer. This method blocks until input data is available, end of file is detected,
-     * or an exception is thrown.
-     *
-     * read(buf) has the same effect as read(buf, 0, buf.length).
-     *
-     * @param buffer the buffer into which the data is read.
-     * @return the total number of bytes read into the buffer, or -1 is there is no more data because the end of
-     * the stream has been reached.
-     */
-    public int read(final byte[] buffer)
-        throws IOException {
-        return read(buffer, 0, buffer.length);
-    }
-
-    private volatile ByteArrayOutputStream buf = null;
-    private static final byte eol = '\n';
-    private static final byte eolCr = '\r';
-    
-    /**
-     * Reads a whole line. A line is considered to be terminated by either a line feed ('\n'), 
-     * carriage return ('\r') or carriage return followed by a line feed ("\r\n").
-     *
-     * @return  A String containing the contents of the line, excluding the line terminating
-     *          character, or null if the end of the stream has been reached
-     *
-     * @exception  IOException  If an I/O error occurs
-     * @
-     */
-    public String readLine() throws IOException {
-    	int available = available();
-        if (available == 0) {
-            return null;
-        }
-        if(null == buf){ // lazy initialisation 
-        	buf = new ByteArrayOutputStream(8192);
-        }
-        buf.reset();
-    	boolean done = false;
-    	boolean foundCr = false; // \r found flag
-        while (!done) {
-        	int linetmpPos = mCurrentOffset;
-        	int bCnt = 0;
-        	while((available-- > 0)){
-        		final byte c = mCurrentBlock[linetmpPos++];
-        		if(c == eol){ // found \n
-        			done = true;
-        			break;
-        		} else if(foundCr){  // previous char was \r
-        			--linetmpPos; // current char is not \n so put it back
-        			done = true;
-        			break;
-        		} else if(c == eolCr){ // found \r
-					foundCr = true;
-        			continue; // no ++bCnt
-        		}
-				++bCnt;
-        	}
-        	if(mCurrentOffset < linetmpPos){
-				buf.write(mCurrentBlock, mCurrentOffset, bCnt);
-	        	mCurrentOffset = linetmpPos;
-        	}
-        	available = available();    
-        	if(available == 0){
-        		// EOF
-        		done = true;
-        	}
-        }
-    	return buf.toString();
-    }
-
-    /**
-     * Reads up to len bytes of data from the input stream into an array of bytes. An attempt is made to read
-     * as many as len bytes, but a smaller number may be read. The number of bytes actually read is returned as an integer.
-     *
-     * This method blocks until input data is available, end of file is detected, or an exception is thrown.
-     *
-     * @param buffer buffer into which data is read.
-     * @param offset the start offset in array b  at which the data is written.
-     * @param length the maximum number of bytes to read.
-     * @return the total number of bytes read into the buffer, or -1 if there is no more data because the end of
-     * the stream has been reached.
-     */
-    public int read(final byte[] buffer, int offset, int length)
-        throws IOException {
-        final int originalLength = length;
-        while (length > 0) {
-            final int available = available();
-            if (available == 0) {
-                // Signal EOF to caller
-                if (originalLength == length) {
-                    return -1;
-                }
-                break;
-            }
-            final int copyLength = Math.min(length, available);
-            System.arraycopy(mCurrentBlock, mCurrentOffset, buffer, offset, copyLength);
-            mCurrentOffset += copyLength;
-            offset += copyLength;
-            length -= copyLength;
-        }
-        return originalLength - length;
-    }
-
-    /**
-     * Seek to the given position in the file.  Note that pos is a special virtual file pointer,
-     * not an actual byte offset.
-     *
-     * @param pos virtual file pointer
-     */
-    public void seek(final long pos)
-        throws IOException {
-        if (mFile == null) {
-            throw new IOException("Cannot seek on stream based file");
-        }
-        // Decode virtual file pointer
-        // Upper 48 bits is the byte offset into the compressed stream of a block.
-        // Lower 16 bits is the byte offset into the uncompressed stream inside the block.
-        final long compressedOffset = BlockCompressedFilePointerUtil.getBlockAddress(pos);
-        final int uncompressedOffset = BlockCompressedFilePointerUtil.getBlockOffset(pos);
-        final int available;
-        if (mBlockAddress == compressedOffset && mCurrentBlock != null) {
-            available = mCurrentBlock.length;
-        } else {
-            mFile.seek(compressedOffset);
-            mBlockAddress = compressedOffset;
-            mLastBlockLength = 0;
-            readBlock();
-            available = available();
-        }
-        if (uncompressedOffset > available ||
-                (uncompressedOffset == available && !eof())) {
-            throw new IOException("Invalid file pointer: " + pos);
-        }
-        mCurrentOffset = uncompressedOffset;
-    }
-
-    private boolean eof() throws IOException {
-        if (mFile.eof()) {
-            return true;
-        }
-        // If the last remaining block is the size of the EMPTY_GZIP_BLOCK, this is the same as being at EOF.
-        return (mFile.length() - (mBlockAddress + mLastBlockLength) == BlockCompressedStreamConstants.EMPTY_GZIP_BLOCK.length);
-    }
-
-    /**
-     * @return virtual file pointer that can be passed to seek() to return to the current position.  This is
-     * not an actual byte offset, so arithmetic on file pointers cannot be done to determine the distance between
-     * the two.
-     */
-    public long getFilePointer() {
-        if (mCurrentOffset == mCurrentBlock.length) {
-            // If current offset is at the end of the current block, file pointer should point
-            // to the beginning of the next block.
-            return BlockCompressedFilePointerUtil.makeFilePointer(mBlockAddress + mLastBlockLength, 0);
-        }
-        return BlockCompressedFilePointerUtil.makeFilePointer(mBlockAddress, mCurrentOffset);
-    }
-
-    @Override
-    public long getPosition() {
-        return getFilePointer();
-    }
-
-    public static long getFileBlock(final long bgzfOffset) {
-        return BlockCompressedFilePointerUtil.getBlockAddress(bgzfOffset);
-    }
-    
-    /**
-     * @param stream Must be at start of file.  Throws RuntimeException if !stream.markSupported().
-     * @return true if the given file looks like a valid BGZF file.
-     */
-    public static boolean isValidFile(final InputStream stream)
-        throws IOException {
-        if (!stream.markSupported()) {
-            throw new RuntimeException("Cannot test non-buffered stream");
-        }
-        stream.mark(BlockCompressedStreamConstants.BLOCK_HEADER_LENGTH);
-        final byte[] buffer = new byte[BlockCompressedStreamConstants.BLOCK_HEADER_LENGTH];
-        final int count = readBytes(stream, buffer, 0, BlockCompressedStreamConstants.BLOCK_HEADER_LENGTH);
-        stream.reset();
-        return count == BlockCompressedStreamConstants.BLOCK_HEADER_LENGTH && isValidBlockHeader(buffer);
-    }
-
-    private static boolean isValidBlockHeader(final byte[] buffer) {
-        return (buffer[0] == BlockCompressedStreamConstants.GZIP_ID1 &&
-                (buffer[1] & 0xFF) == BlockCompressedStreamConstants.GZIP_ID2 &&
-                (buffer[3] & BlockCompressedStreamConstants.GZIP_FLG) != 0 &&
-                buffer[10] == BlockCompressedStreamConstants.GZIP_XLEN &&
-                buffer[12] == BlockCompressedStreamConstants.BGZF_ID1 &&
-                buffer[13] == BlockCompressedStreamConstants.BGZF_ID2);
-    }
-
-    private void readBlock()
-        throws IOException {
-
-        if (mFileBuffer == null) {
-            mFileBuffer = new byte[BlockCompressedStreamConstants.MAX_COMPRESSED_BLOCK_SIZE];
-        }
-        int count = readBytes(mFileBuffer, 0, BlockCompressedStreamConstants.BLOCK_HEADER_LENGTH);
-        if (count == 0) {
-            // Handle case where there is no empty gzip block at end.
-            mCurrentOffset = 0;
-            mBlockAddress += mLastBlockLength;
-            mCurrentBlock = new byte[0];
-            return;
-        }
-        if (count != BlockCompressedStreamConstants.BLOCK_HEADER_LENGTH) {
-            throw new IOException("Premature end of file");
-        }
-        final int blockLength = unpackInt16(mFileBuffer, BlockCompressedStreamConstants.BLOCK_LENGTH_OFFSET) + 1;
-        if (blockLength < BlockCompressedStreamConstants.BLOCK_HEADER_LENGTH || blockLength > mFileBuffer.length) {
-            throw new IOException("Unexpected compressed block length: " + blockLength);
-        }
-        final int remaining = blockLength - BlockCompressedStreamConstants.BLOCK_HEADER_LENGTH;
-        count = readBytes(mFileBuffer, BlockCompressedStreamConstants.BLOCK_HEADER_LENGTH, remaining);
-        if (count != remaining) {
-            throw new FileTruncatedException("Premature end of file");
-        }
-        inflateBlock(mFileBuffer, blockLength);
-        mCurrentOffset = 0;
-        mBlockAddress += mLastBlockLength;
-        mLastBlockLength = blockLength;
-    }
-
-    private void inflateBlock(final byte[] compressedBlock, final int compressedLength)
-        throws IOException {
-        final int uncompressedLength = unpackInt32(compressedBlock, compressedLength-4);
-        byte[] buffer = mCurrentBlock;
-        mCurrentBlock = null;
-        if (buffer == null || buffer.length != uncompressedLength) {
-            try {
-                buffer = new byte[uncompressedLength];
-            } catch (final NegativeArraySizeException e) {
-                throw new RuntimeException("BGZF file has invalid uncompressedLength: " + uncompressedLength, e);
-            }
-        }
-        blockGunzipper.unzipBlock(buffer, compressedBlock, compressedLength);
-        mCurrentBlock = buffer;
-    }
-
-    private int readBytes(final byte[] buffer, final int offset, final int length)
-        throws IOException {
-        if (mFile != null) {
-            return readBytes(mFile, buffer, offset, length);
-        } else if (mStream != null) {
-            return readBytes(mStream, buffer, offset, length);
-        } else {
-            return 0;
-        }
-    }
-
-    private static int readBytes(final SeekableStream file, final byte[] buffer, final int offset, final int length)
-        throws IOException {
-        int bytesRead = 0;
-        while (bytesRead < length) {
-            final int count = file.read(buffer, offset + bytesRead, length - bytesRead);
-            if (count <= 0) {
-                break;
-            }
-            bytesRead += count;
-        }
-        return bytesRead;
-    }
-
-    private static int readBytes(final InputStream stream, final byte[] buffer, final int offset, final int length)
-        throws IOException {
-        int bytesRead = 0;
-        while (bytesRead < length) {
-            final int count = stream.read(buffer, offset + bytesRead, length - bytesRead);
-            if (count <= 0) {
-                break;
-            }
-            bytesRead += count;
-        }
-        return bytesRead;
-    }
-
-    private int unpackInt16(final byte[] buffer, final int offset) {
-        return ((buffer[offset] & 0xFF) |
-                ((buffer[offset+1] & 0xFF) << 8));
-    }
-
-    private int unpackInt32(final byte[] buffer, final int offset) {
-        return ((buffer[offset] & 0xFF) |
-                ((buffer[offset+1] & 0xFF) << 8) |
-                ((buffer[offset+2] & 0xFF) << 16) |
-                ((buffer[offset+3] & 0xFF) << 24));
-    }
-
-    public enum FileTermination {HAS_TERMINATOR_BLOCK, HAS_HEALTHY_LAST_BLOCK, DEFECTIVE}
-
-    public static FileTermination checkTermination(final File file)
-        throws IOException {
-        final long fileSize = file.length();
-        if (fileSize < BlockCompressedStreamConstants.EMPTY_GZIP_BLOCK.length) {
-            return FileTermination.DEFECTIVE;
-        }
-        final RandomAccessFile raFile = new RandomAccessFile(file, "r");
-        try {
-            raFile.seek(fileSize - BlockCompressedStreamConstants.EMPTY_GZIP_BLOCK.length);
-            byte[] buf = new byte[BlockCompressedStreamConstants.EMPTY_GZIP_BLOCK.length];
-            raFile.readFully(buf);
-            if (Arrays.equals(buf, BlockCompressedStreamConstants.EMPTY_GZIP_BLOCK)) {
-                return FileTermination.HAS_TERMINATOR_BLOCK;
-            }
-            final int bufsize = (int)Math.min(fileSize, BlockCompressedStreamConstants.MAX_COMPRESSED_BLOCK_SIZE);
-            buf = new byte[bufsize];
-            raFile.seek(fileSize - bufsize);
-            raFile.read(buf);
-            for (int i = buf.length - BlockCompressedStreamConstants.EMPTY_GZIP_BLOCK.length;
-                    i >= 0; --i) {
-                if (!preambleEqual(BlockCompressedStreamConstants.GZIP_BLOCK_PREAMBLE,
-                        buf, i, BlockCompressedStreamConstants.GZIP_BLOCK_PREAMBLE.length)) {
-                    continue;
-                }
-                final ByteBuffer byteBuffer = ByteBuffer.wrap(buf, i + BlockCompressedStreamConstants.GZIP_BLOCK_PREAMBLE.length, 4);
-                byteBuffer.order(ByteOrder.LITTLE_ENDIAN);
-                final int totalBlockSizeMinusOne =  byteBuffer.getShort() & 0xFFFF;
-                if (buf.length - i == totalBlockSizeMinusOne + 1) {
-                    return FileTermination.HAS_HEALTHY_LAST_BLOCK;
-                } else {
-                    return FileTermination.DEFECTIVE;
-                }
-            }
-            return FileTermination.DEFECTIVE;
-        } finally {
-            raFile.close();
-        }
-    }
-
-    public static void assertNonDefectiveFile(final File file) throws IOException {
-        if (checkTermination(file) == FileTermination.DEFECTIVE) {
-            throw new SAMException(file.getAbsolutePath() + " does not have a valid GZIP block at the end of the file.");
-        }
-    }
-
-    private static boolean preambleEqual(final byte[] preamble, final byte[] buf, final int startOffset, final int length) {
-        for (int i = 0; i < length; ++i) {
-            if (preamble[i] != buf[i + startOffset]) {
-                return false;
-            }
-        }
-        return true;
-    }
-}
-
-
diff --git a/src/java/net/sf/samtools/util/BlockCompressedOutputStream.java b/src/java/net/sf/samtools/util/BlockCompressedOutputStream.java
deleted file mode 100644
index 5c98742..0000000
--- a/src/java/net/sf/samtools/util/BlockCompressedOutputStream.java
+++ /dev/null
@@ -1,336 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.util;
-
-import net.sf.samtools.util.zip.DeflaterFactory;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.zip.CRC32;
-import java.util.zip.Deflater;
-
-/**
- * Writer for a file that is a series of gzip blocks (BGZF format).  The caller just treats it as an
- * OutputStream, and under the covers a gzip block is written when the amount of uncompressed as-yet-unwritten
- * bytes reaches a threshold.
- *
- * The advantage of BGZF over conventional gzip is that BGZF allows for seeking without having to scan through
- * the entire file up to the position being sought.
- *
- * Note that the flush() method should not be called by client
- * unless you know what you're doing, because it forces a gzip block to be written even if the
- * number of buffered bytes has not reached threshold.  close(), on the other hand, must be called
- * when done writing in order to force the last gzip block to be written.
- *
- * c.f. http://samtools.sourceforge.net/SAM1.pdf for details of BGZF file format.
- */
-public class BlockCompressedOutputStream
-        extends OutputStream
-        implements LocationAware
-{
-    private static int defaultCompressionLevel = BlockCompressedStreamConstants.DEFAULT_COMPRESSION_LEVEL;
-
-    /**
-     * Sets the GZip compression level for subsequent BlockCompressedOutputStream object creation
-     * that do not specify the compression level.
-     * @param compressionLevel 1 <= compressionLevel <= 9
-     */
-    public static void setDefaultCompressionLevel(final int compressionLevel) {
-        if (compressionLevel < Deflater.NO_COMPRESSION || compressionLevel > Deflater.BEST_COMPRESSION) {
-            throw new IllegalArgumentException("Invalid compression level: " + compressionLevel);
-        }
-        defaultCompressionLevel = compressionLevel;
-    }
-
-    public static int getDefaultCompressionLevel() {
-        return defaultCompressionLevel;
-    }
-
-    private final BinaryCodec codec;
-    private final byte[] uncompressedBuffer = new byte[BlockCompressedStreamConstants.DEFAULT_UNCOMPRESSED_BLOCK_SIZE];
-    private int numUncompressedBytes = 0;
-    private final byte[] compressedBuffer =
-            new byte[BlockCompressedStreamConstants.MAX_COMPRESSED_BLOCK_SIZE -
-                    BlockCompressedStreamConstants.BLOCK_HEADER_LENGTH];
-    private final Deflater deflater;
-
-    // A second deflater is created for the very unlikely case where the regular deflation actually makes
-    // things bigger, and the compressed block is too big.  It should be possible to downshift the
-    // primary deflater to NO_COMPRESSION level, recompress, and then restore it to its original setting,
-    // but in practice that doesn't work.
-    // The motivation for deflating at NO_COMPRESSION level is that it will predictably produce compressed
-    // output that is 10 bytes larger than the input, and the threshold at which a block is generated is such that
-    // the size of tbe final gzip block will always be <= 64K.  This is preferred over the previous method,
-    // which would attempt to compress up to 64K bytes, and if the resulting compressed block was too large,
-    // try compressing fewer input bytes (aka "downshifting').  The problem with downshifting is that
-    // getFilePointer might return an inaccurate value.
-    // I assume (AW 29-Oct-2013) that there is no value in using hardware-assisted deflater for no-compression mode,
-    // so just use JDK standard.
-    private final Deflater noCompressionDeflater = new Deflater(Deflater.NO_COMPRESSION, true);
-    private final CRC32 crc32 = new CRC32();
-    private File file = null;
-    private long mBlockAddress = 0;
-
-
-    // Really a local variable, but allocate once to reduce GC burden.
-    private final byte[] singleByteArray = new byte[1];
-
-    /**
-     * Uses default compression level, which is 5 unless changed by setDefaultCompressionLevel
-     */
-    public BlockCompressedOutputStream(final String filename) {
-        this(filename, defaultCompressionLevel);
-    }
-
-    /**
-     * Uses default compression level, which is 5 unless changed by setDefaultCompressionLevel
-     */
-    public BlockCompressedOutputStream(final File file) {
-        this(file, defaultCompressionLevel);
-    }
-
-    /**
-     * Prepare to compress at the given compression level
-     * @param compressionLevel 1 <= compressionLevel <= 9
-     */
-    public BlockCompressedOutputStream(final String filename, final int compressionLevel) {
-        this(new File(filename), compressionLevel);
-    }
-
-    /**
-     * Prepare to compress at the given compression level
-     * @param compressionLevel 1 <= compressionLevel <= 9
-     */
-    public BlockCompressedOutputStream(final File file, final int compressionLevel) {
-        this.file = file;
-        codec = new BinaryCodec(file, true);
-        deflater = DeflaterFactory.makeDeflater(compressionLevel, true);
-    }
-
-    /**
-     * Constructors that take output streams
-     * file may be null
-     */
-    public BlockCompressedOutputStream(final OutputStream os, final File file) {
-        this(os, file, defaultCompressionLevel);
-    }
-
-    public BlockCompressedOutputStream(final OutputStream os, final File file, final int compressionLevel) {
-        this.file = file;
-        codec = new BinaryCodec(os);
-        if (file != null) {
-            codec.setOutputFileName(file.getAbsolutePath());
-        }
-        deflater = DeflaterFactory.makeDeflater(compressionLevel, true);
-    }
-
-    /**
-     *
-     * @param location May be null.  Used for error messages, and for checking file termination.
-     * @param output May or not already be a BlockCompressedOutputStream.
-     * @return A BlockCompressedOutputStream, either by wrapping the given OutputStream, or by casting if it already
-     *         is a BCOS.
-     */
-    public static BlockCompressedOutputStream maybeBgzfWrapOutputStream(final File location, OutputStream output) {
-        if (!(output instanceof BlockCompressedOutputStream)) {
-                return new BlockCompressedOutputStream(output, location);
-        } else {
-        return (BlockCompressedOutputStream)output;
-        }
-    }
-
-    /**
-     * Writes b.length bytes from the specified byte array to this output stream. The general contract for write(b)
-     * is that it should have exactly the same effect as the call write(b, 0, b.length).
-     * @param bytes the data
-     */
-    @Override
-    public void write(final byte[] bytes) throws IOException {
-        write(bytes, 0, bytes.length);
-    }
-
-    /**
-     * Writes len bytes from the specified byte array starting at offset off to this output stream. The general
-     * contract for write(b, off, len) is that some of the bytes in the array b are written to the output stream in order;
-     * element b[off] is the first byte written and b[off+len-1] is the last byte written by this operation.
-     *
-     * @param bytes the data
-     * @param startIndex the start offset in the data
-     * @param numBytes the number of bytes to write
-     */
-    @Override
-    public void write(final byte[] bytes, int startIndex, int numBytes) throws IOException {
-        assert(numUncompressedBytes < uncompressedBuffer.length);
-        while (numBytes > 0) {
-            final int bytesToWrite = Math.min(uncompressedBuffer.length - numUncompressedBytes, numBytes);
-            System.arraycopy(bytes, startIndex, uncompressedBuffer, numUncompressedBytes, bytesToWrite);
-            numUncompressedBytes += bytesToWrite;
-            startIndex += bytesToWrite;
-            numBytes -= bytesToWrite;
-            assert(numBytes >= 0);
-            if (numUncompressedBytes == uncompressedBuffer.length) {
-                deflateBlock();
-            }
-        }
-    }
-
-    /**
-     * WARNING: flush() affects the output format, because it causes the current contents of uncompressedBuffer
-     * to be compressed and written, even if it isn't full.  Unless you know what you're doing, don't call flush().
-     * Instead, call close(), which will flush any unwritten data before closing the underlying stream.
-     *
-     */
-    @Override
-    public void flush() throws IOException {
-        while (numUncompressedBytes > 0) {
-            deflateBlock();
-        }
-        codec.getOutputStream().flush();
-    }
-
-    /**
-     * close() must be called in order to flush any remaining buffered bytes.  An unclosed file will likely be
-     * defective.
-     *
-     */
-    @Override
-    public void close() throws IOException {
-        flush();
-        // For debugging...
-        // if (numberOfThrottleBacks > 0) {
-        //     System.err.println("In BlockCompressedOutputStream, had to throttle back " + numberOfThrottleBacks +
-        //                        " times for file " + codec.getOutputFileName());
-        // }
-        codec.writeBytes(BlockCompressedStreamConstants.EMPTY_GZIP_BLOCK);
-        codec.close();
-        // Can't re-open something that is not a regular file, e.g. a named pipe or an output stream
-        if (this.file == null || !this.file.isFile()) return;
-        if (BlockCompressedInputStream.checkTermination(this.file) !=
-                BlockCompressedInputStream.FileTermination.HAS_TERMINATOR_BLOCK) {
-            throw new IOException("Terminator block not found after closing BGZF file " + this.file);
-        }
-    }
-
-    /**
-     * Writes the specified byte to this output stream. The general contract for write is that one byte is written
-     * to the output stream. The byte to be written is the eight low-order bits of the argument b.
-     * The 24 high-order bits of b are ignored.
-     * @param bite
-     * @throws IOException
-     */
-    public void write(final int bite) throws IOException {
-        singleByteArray[0] = (byte)bite;
-        write(singleByteArray);
-    }
-
-    /** Encode virtual file pointer
-     * Upper 48 bits is the byte offset into the compressed stream of a block.
-     * Lower 16 bits is the byte offset into the uncompressed stream inside the block.
-     */
-    public long getFilePointer(){
-        return BlockCompressedFilePointerUtil.makeFilePointer(mBlockAddress, numUncompressedBytes);
-    }
-
-    @Override
-    public long getPosition() {
-        return getFilePointer();
-    }
-
-    /**
-     * Attempt to write the data in uncompressedBuffer to the underlying file in a gzip block.
-     * If the entire uncompressedBuffer does not fit in the maximum allowed size, reduce the amount
-     * of data to be compressed, and slide the excess down in uncompressedBuffer so it can be picked
-     * up in the next deflate event.
-     * @return size of gzip block that was written.
-     */
-    private int deflateBlock() {
-        if (numUncompressedBytes == 0) {
-            return 0;
-        }
-        final int bytesToCompress = numUncompressedBytes;
-        // Compress the input
-        deflater.reset();
-        deflater.setInput(uncompressedBuffer, 0, bytesToCompress);
-        deflater.finish();
-        int compressedSize = deflater.deflate(compressedBuffer, 0, compressedBuffer.length);
-
-        // If it didn't all fit in compressedBuffer.length, set compression level to NO_COMPRESSION
-        // and try again.  This should always fit.
-        if (!deflater.finished()) {
-            noCompressionDeflater.reset();
-            noCompressionDeflater.setInput(uncompressedBuffer, 0, bytesToCompress);
-            noCompressionDeflater.finish();
-            compressedSize = noCompressionDeflater.deflate(compressedBuffer, 0, compressedBuffer.length);
-            if (!noCompressionDeflater.finished()) {
-                throw new IllegalStateException("unpossible");
-            }
-        }
-        // Data compressed small enough, so write it out.
-        crc32.reset();
-        crc32.update(uncompressedBuffer, 0, bytesToCompress);
-
-        final int totalBlockSize = writeGzipBlock(compressedSize, bytesToCompress, crc32.getValue());
-        assert(bytesToCompress <= numUncompressedBytes);
-
-        // Clear out from uncompressedBuffer the data that was written
-        if (bytesToCompress == numUncompressedBytes) {
-            numUncompressedBytes = 0;
-        } else {
-            System.arraycopy(uncompressedBuffer, bytesToCompress, uncompressedBuffer, 0,
-                    numUncompressedBytes - bytesToCompress);
-            numUncompressedBytes -= bytesToCompress;
-        }
-        mBlockAddress += totalBlockSize;
-        return totalBlockSize;
-    }
-
-    /**
-     * Writes the entire gzip block, assuming the compressed data is stored in compressedBuffer
-     * @return  size of gzip block that was written.
-     */
-    private int writeGzipBlock(final int compressedSize, final int uncompressedSize, final long crc) {
-        // Init gzip header
-        codec.writeByte(BlockCompressedStreamConstants.GZIP_ID1);
-        codec.writeByte(BlockCompressedStreamConstants.GZIP_ID2);
-        codec.writeByte(BlockCompressedStreamConstants.GZIP_CM_DEFLATE);
-        codec.writeByte(BlockCompressedStreamConstants.GZIP_FLG);
-        codec.writeInt(0); // Modification time
-        codec.writeByte(BlockCompressedStreamConstants.GZIP_XFL);
-        codec.writeByte(BlockCompressedStreamConstants.GZIP_OS_UNKNOWN);
-        codec.writeShort(BlockCompressedStreamConstants.GZIP_XLEN);
-        codec.writeByte(BlockCompressedStreamConstants.BGZF_ID1);
-        codec.writeByte(BlockCompressedStreamConstants.BGZF_ID2);
-        codec.writeShort(BlockCompressedStreamConstants.BGZF_LEN);
-        final int totalBlockSize = compressedSize + BlockCompressedStreamConstants.BLOCK_HEADER_LENGTH +
-                BlockCompressedStreamConstants.BLOCK_FOOTER_LENGTH;
-
-        // I don't know why we store block size - 1, but that is what the spec says
-        codec.writeShort((short)(totalBlockSize - 1));
-        codec.writeBytes(compressedBuffer, 0, compressedSize);
-        codec.writeInt((int)crc);
-        codec.writeInt(uncompressedSize);
-        return totalBlockSize;
-    }
-}
diff --git a/src/java/net/sf/samtools/util/BlockCompressedStreamConstants.java b/src/java/net/sf/samtools/util/BlockCompressedStreamConstants.java
deleted file mode 100644
index ea25733..0000000
--- a/src/java/net/sf/samtools/util/BlockCompressedStreamConstants.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.util;
-
-import net.sf.samtools.Defaults;
-
-/**
- * Constants shared by BlockCompressed{Input,Output}Stream classes
- */
-public class BlockCompressedStreamConstants {
-    // Number of bytes in the gzip block before the deflated data.
-    // This is not the standard header size, because we include one optional subfield,
-    // but it is the standard for us.
-    public static final int BLOCK_HEADER_LENGTH = 18;
-
-    // Location in the gzip block of the total block size (actually total block size - 1)
-    public static final int BLOCK_LENGTH_OFFSET = 16;
-
-    // Number of bytes that follow the deflated data
-    public static final int BLOCK_FOOTER_LENGTH = 8;
-
-    // We require that a compressed block (including header and footer, be <= this)
-    public static final int MAX_COMPRESSED_BLOCK_SIZE = 64 * 1024;
-
-    // Gzip overhead is the header, the footer, and the block size (encoded as a short).
-    public static final int GZIP_OVERHEAD = BLOCK_HEADER_LENGTH + BLOCK_FOOTER_LENGTH + 2;
-
-    // If Deflater has compression level == NO_COMPRESSION, 10 bytes of overhead (determined experimentally).
-    public static final int NO_COMPRESSION_OVERHEAD = 10;
-
-    // Push out a gzip block when this many uncompressed bytes have been accumulated.
-    // This size is selected so that if data is not compressible,  if Deflater is given
-    // compression level == NO_COMPRESSION, compressed size is guaranteed to be <= MAX_COMPRESSED_BLOCK_SIZE.
-    public static final int DEFAULT_UNCOMPRESSED_BLOCK_SIZE = 64 * 1024 - (GZIP_OVERHEAD + NO_COMPRESSION_OVERHEAD);
-
-    // Magic numbers
-    public static final byte GZIP_ID1 = 31;
-    public static final int GZIP_ID2 = 139;
-
-    // FEXTRA flag means there are optional fields
-    public static final int GZIP_FLG = 4;
-
-    // extra flags
-    public static final int GZIP_XFL = 0;
-
-    // length of extra subfield
-    public static final short GZIP_XLEN = 6;
-
-    // The deflate compression, which is customarily used by gzip
-    public static final byte GZIP_CM_DEFLATE = 8;
-
-    public static final int DEFAULT_COMPRESSION_LEVEL = Defaults.COMPRESSION_LEVEL;
-
-    // We don't care about OS because we're not doing line terminator translation
-    public static final int GZIP_OS_UNKNOWN = 255;
-
-    // The subfield ID
-    public static final byte BGZF_ID1 = 66;
-    public static final byte BGZF_ID2 = 67;
-
-    // subfield length in bytes
-    public static final byte BGZF_LEN = 2;
-
-    public static final byte[] EMPTY_GZIP_BLOCK = {
-            BlockCompressedStreamConstants.GZIP_ID1,
-            (byte)BlockCompressedStreamConstants.GZIP_ID2,
-            BlockCompressedStreamConstants.GZIP_CM_DEFLATE,
-            BlockCompressedStreamConstants.GZIP_FLG,
-            0, 0, 0, 0, // Modification time
-            BlockCompressedStreamConstants.GZIP_XFL,
-            (byte)BlockCompressedStreamConstants.GZIP_OS_UNKNOWN,
-            BlockCompressedStreamConstants.GZIP_XLEN, 0, // Little-endian short
-            BlockCompressedStreamConstants.BGZF_ID1,
-            BlockCompressedStreamConstants.BGZF_ID2,
-            BlockCompressedStreamConstants.BGZF_LEN, 0, // Little-endian short
-            // Total block size - 1
-            BlockCompressedStreamConstants.BLOCK_HEADER_LENGTH +
-                    BlockCompressedStreamConstants.BLOCK_FOOTER_LENGTH - 1 + 2, 0, // Little-endian short
-            // Dummy payload?
-            3, 0,
-            0, 0, 0, 0, // crc
-            0, 0, 0, 0, // uncompressedSize
-    };
-    public static final byte[] GZIP_BLOCK_PREAMBLE = {
-            BlockCompressedStreamConstants.GZIP_ID1,
-            (byte)BlockCompressedStreamConstants.GZIP_ID2,
-            BlockCompressedStreamConstants.GZIP_CM_DEFLATE,
-            BlockCompressedStreamConstants.GZIP_FLG,
-            0, 0, 0, 0, // Modification time
-            BlockCompressedStreamConstants.GZIP_XFL,
-            (byte)BlockCompressedStreamConstants.GZIP_OS_UNKNOWN,
-            BlockCompressedStreamConstants.GZIP_XLEN, 0, // Little-endian short
-            BlockCompressedStreamConstants.BGZF_ID1,
-            BlockCompressedStreamConstants.BGZF_ID2,
-            BlockCompressedStreamConstants.BGZF_LEN, 0, // Little-endian short
-    };
-}
diff --git a/src/java/net/sf/samtools/util/BlockGunzipper.java b/src/java/net/sf/samtools/util/BlockGunzipper.java
deleted file mode 100644
index 365a6bd..0000000
--- a/src/java/net/sf/samtools/util/BlockGunzipper.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.util;
-
-import net.sf.samtools.SAMFormatException;
-
-import java.util.zip.Inflater;
-import java.util.zip.CRC32;
-import java.util.zip.DataFormatException;
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
-
-/**
- * Alternative to GZIPInputStream, for decompressing GZIP blocks that are already loaded into a byte[].
- * The main advantage is that this object can be used over and over again to decompress many blocks,
- * whereas a new GZIPInputStream and ByteArrayInputStream would otherwise need to be created for each
- * block to be decompressed.
- *
- * This code requires that the GZIP header conform to the GZIP blocks written to BAM files, with
- * a specific subfield and no other optional stuff.
- *
- * @author alecw at broadinstitute.org
- */
-public class BlockGunzipper {
-    private final Inflater inflater = new Inflater(true); // GZIP mode
-    private final CRC32 crc32 = new CRC32();
-    private boolean checkCrcs = false;
-
-    /** Allows the caller to decide whether or not to check CRCs on when uncompressing blocks. */
-    public void setCheckCrcs(final boolean check) {
-        this.checkCrcs = check;
-    }
-
-    /**
-     * Decompress GZIP-compressed data
-     * @param uncompressedBlock must be big enough to hold decompressed output.
-     * @param compressedBlock compressed data starting at offset 0
-     * @param compressedLength size of compressed data, possibly less than the size of the buffer.
-     */
-    void unzipBlock(byte[] uncompressedBlock, byte[] compressedBlock, int compressedLength) {
-        try {
-            ByteBuffer byteBuffer = ByteBuffer.wrap(compressedBlock, 0, compressedLength);
-            byteBuffer.order(ByteOrder.LITTLE_ENDIAN);
-
-            // Validate GZIP header
-            if (byteBuffer.get() != BlockCompressedStreamConstants.GZIP_ID1 ||
-                    byteBuffer.get() != (byte)BlockCompressedStreamConstants.GZIP_ID2 ||
-                    byteBuffer.get() != BlockCompressedStreamConstants.GZIP_CM_DEFLATE ||
-                    byteBuffer.get() != BlockCompressedStreamConstants.GZIP_FLG
-                    ) {
-                throw new SAMFormatException("Invalid GZIP header");
-            }
-            // Skip MTIME, XFL, OS fields
-            byteBuffer.position(byteBuffer.position() + 6);
-            if (byteBuffer.getShort() != BlockCompressedStreamConstants.GZIP_XLEN) {
-                throw new SAMFormatException("Invalid GZIP header");
-            }
-            // Skip blocksize subfield intro
-            byteBuffer.position(byteBuffer.position() + 4);
-            // Read ushort
-            final int totalBlockSize = (byteBuffer.getShort() & 0xffff) + 1;
-            if (totalBlockSize != compressedLength) {
-                throw new SAMFormatException("GZIP blocksize disagreement");
-            }
-
-            // Read expected size and CRD from end of GZIP block
-            final int deflatedSize = compressedLength - BlockCompressedStreamConstants.BLOCK_HEADER_LENGTH - BlockCompressedStreamConstants.BLOCK_FOOTER_LENGTH;
-            byteBuffer.position(byteBuffer.position() + deflatedSize);
-            int expectedCrc = byteBuffer.getInt();
-            int uncompressedSize = byteBuffer.getInt();
-            inflater.reset();
-
-            // Decompress
-            inflater.setInput(compressedBlock, BlockCompressedStreamConstants.BLOCK_HEADER_LENGTH, deflatedSize);
-            final int inflatedBytes = inflater.inflate(uncompressedBlock, 0, uncompressedSize);
-            if (inflatedBytes != uncompressedSize) {
-                throw new SAMFormatException("Did not inflate expected amount");
-            }
-
-            // Validate CRC if so desired
-            if (this.checkCrcs) {
-                crc32.reset();
-                crc32.update(uncompressedBlock, 0, uncompressedSize);
-                final long crc = crc32.getValue();
-                if ((int)crc != expectedCrc) {
-                    throw new SAMFormatException("CRC mismatch");
-                }
-            }
-        } catch (DataFormatException e)
-        {
-            throw new RuntimeException(e);
-        }
-    }
-}
diff --git a/src/java/net/sf/samtools/util/BufferedLineReader.java b/src/java/net/sf/samtools/util/BufferedLineReader.java
deleted file mode 100644
index 90ea98b..0000000
--- a/src/java/net/sf/samtools/util/BufferedLineReader.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.util;
-
-import net.sf.samtools.Defaults;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.nio.charset.Charset;
-
-/**
- * Implementation of LineReader that is a thin wrapper around BufferedReader.  On Linux, this is faster
- * than AsciiLineReaderImpl.  If you use AsciiLineReader rather than this class, it will detect the OS
- * and delegate to the preferred implementation.
- *
- * TODO: Replace this with {@link java.io.LineNumberReader}?
- * 
- * @author alecw at broadinstitute.org
- */
-public class BufferedLineReader implements LineReader {
-
-    private final BufferedReader reader;
-    private int lineNumber = 0;
-    private String peekedLine;
-
-    public BufferedLineReader(final InputStream is) {
-        this(is, Defaults.NON_ZERO_BUFFER_SIZE);
-    }
-
-    public BufferedLineReader(final InputStream is, final int bufferSize) {
-        reader = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8")), bufferSize);
-    }
-
-    /**
-     * Read a line and remove the line terminator
-     *
-     * @return the line read, or null if EOF has been reached.
-     */
-    public String readLine() {
-        ++lineNumber;
-        try {
-            final String ret;
-            if (peekedLine != null) {
-                ret = peekedLine;
-                peekedLine = null;
-            } else {
-            ret = reader.readLine();
-            }
-            return ret;
-        } catch (IOException e) {
-            throw new RuntimeIOException(e);
-        }
-    }
-
-    /**
-     * @return 1-based number of line most recently read
-     */
-    public int getLineNumber() {
-        return lineNumber;
-    }
-
-    /**
-     * Non-destructive one-character look-ahead.
-     *
-     * @return If not eof, the next character that would be read.  If eof, -1.
-     */
-    public int peek() {
-        if (peekedLine == null) {
-            try {
-                peekedLine = reader.readLine();
-            } catch (IOException e) {
-                throw new RuntimeIOException(e);
-            }
-        }
-        if (peekedLine == null) {
-            return -1;
-        }
-        if (peekedLine.length() == 0) {
-            return '\n';
-        }
-        return peekedLine.charAt(0);
-    }
-
-    public void close() {
-        peekedLine = null;
-        try {
-            reader.close();
-        } catch (IOException e) {
-            throw new RuntimeIOException(e);
-        }
-    }
-}
diff --git a/src/java/net/sf/samtools/util/CloseableIterator.java b/src/java/net/sf/samtools/util/CloseableIterator.java
deleted file mode 100755
index 13d9a3a..0000000
--- a/src/java/net/sf/samtools/util/CloseableIterator.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.util;
-
-import java.io.Closeable;
-import java.util.Iterator;
-
-/**
- * This interface is used by iterators that use releasable resources during iteration.
- * 
- * The consumer of a CloseableIterator should ensure that the close() method is always called,
- * for example by putting such a call in a finally block.  Two conventions should be followed
- * by all implementors of CloseableIterator:
- * 1) The close() method should be idempotent: calling close() twice should have no effect.
- * 2) When hasNext() returns false, the iterator implementation should automatically close itself.
- *    The latter makes it somewhat safer for consumers to use the for loop syntax for iteration:
- *    for (Type obj : getCloseableIterator()) { ... }
- * 
- * We do not inherit from java.io.Closeable because IOExceptions are a pain to deal with.
- */
-public interface CloseableIterator<T> extends Iterator<T>, Closeable {
-
-    public void close();
-}
diff --git a/src/java/net/sf/samtools/util/CloserUtil.java b/src/java/net/sf/samtools/util/CloserUtil.java
deleted file mode 100644
index da4e93c..0000000
--- a/src/java/net/sf/samtools/util/CloserUtil.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.util;
-
-import net.sf.samtools.util.CloseableIterator;
-
-import java.util.List;
-import java.util.Arrays;
-import java.io.Closeable;
-import java.io.IOException;
-
-/**
- * Utility to close things that implement Closeable
- * WARNING: This should only be used for Closeable things open for read, because it ignores exceptions, and
- * the caller will probably want to know about exceptions when closing a file being written to, because
- * this may indicate a failure to flush.
- *
- * @author Kathleen Tibbetts
- */
-public class CloserUtil {
-
-    /**
-     * Calls close() on <code>obj</code> if it implements Closeable
-     *
-     * @param obj   The potentially closeable object
-     */
-    public static void close(Object obj) {
-        if (obj != null) {
-            close(Arrays.asList(obj));
-        }
-    }
-
-    /**
-     * Calls close() on all elements of <code>objs</code> that implement Closeable
-     *
-     * @param objs   A list of potentially closeable objects
-     */
-    public static void close(List<Object> objs) {
-        for (Object o : objs) {
-            if (o instanceof Closeable) {
-                try {
-                    ((Closeable)o).close();
-                }
-                catch (IOException ioe) {
-                    // Do nothing 
-                }
-            } else if (o instanceof CloseableIterator) {
-                ((CloseableIterator)o).close();
-            }
-            else {
-                try {
-                    java.lang.reflect.Method m = o.getClass().getMethod("close");
-                    m.invoke(o);
-                }
-                catch (Exception e) { /** Ignore */ }
-            }
-        }
-    }
-}
diff --git a/src/java/net/sf/samtools/util/CollectionUtil.java b/src/java/net/sf/samtools/util/CollectionUtil.java
deleted file mode 100755
index 58bcd5f..0000000
--- a/src/java/net/sf/samtools/util/CollectionUtil.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.util;
-
-import java.util.*;
-
-/**
- * Small utility methods for dealing with collection classes.
- * @author mccowan
- */
-public class CollectionUtil {
-
-    /** Simple case-insensitive lexical comparator of objects using their {@link Object#toString()} value. */
-    final public static Comparator<Object> OBJECT_TOSTRING_COMPARATOR = new Comparator<Object>() {
-        @Override
-        public int compare(final Object o1, final Object o2) {
-            return o1.toString().compareToIgnoreCase(o2.toString());
-        }
-    };
-
-    public static <T> List<T> makeList (final T... list) {
-        final List<T> result = new ArrayList<T>();
-        Collections.addAll(result, list);
-
-        return result;
-    }
-    
-    public static <T> Set<T> makeSet (final T... list) {
-        final Set<T> result = new HashSet<T>();
-        Collections.addAll(result, list);
-        return result;
-    }
-    
-    public static <T> Collection<T> makeCollection (final Iterator<T> i) {
-        final List<T> list = new LinkedList<T>();
-        while (i.hasNext()) {
-            list.add(i.next());
-        }
-        return list;
-    }
-    
-    /** Construct a string by toString()ing each item in the collection with inBetween between each item. */
-    public static String join(final Collection<?> items, final String inBetween) {
-        final StringBuilder builder = new StringBuilder();
-        for (final Object item : items) {
-            if (builder.length() > 0) builder.append(inBetween);
-            builder.append(item);
-        }
-
-        return builder.toString();
-    }
-
-    public static <T> T getSoleElement(final Collection<T> items) {
-        if (items.size() != 1)
-            throw new IllegalArgumentException(String.format("Expected a single element in %s, but found %s.", items, items.size()));
-        return items.iterator().next();
-    }
-    
-    /** Simple multi-map for convenience of storing collections in map values. */
-    public static class MultiMap<K, V> extends HashMap<K, Collection<V>> {
-        public void append(final K k, final V v) {
-            this.initializeKeyIfUninitialized(k);
-            this.get(k).add(v);
-        }
-
-        public void appendAll(final K k, final Collection<? extends V> v) {
-            this.initializeKeyIfUninitialized(k);
-            this.get(k).addAll(v);
-        }
-
-        private void initializeKeyIfUninitialized(final K k) {
-            if (!this.containsKey(k))
-                this.put(k, new LinkedList<V>());
-        }
-    }
-
-    /** 
-     * Partitions a collection into groups based on a characteristics of that group.  Partitions are embodied in a map, whose keys are the
-     * value of that characteristic, and the values are the partition of elements whose characteristic evaluate to that key.
-     */
-    public static <K, V> Map<K,Collection<V>> partition(final Collection<V> collection,  final Partitioner<V, K> p) {
-        final MultiMap<K, V> partitionToValues = new MultiMap<K, V>();
-        for (final V entry : collection) {
-            partitionToValues.append(p.getPartition(entry), entry);
-        }
-        return partitionToValues;
-    }
-    public static abstract class Partitioner<V, K> {
-        public abstract K getPartition(final V v);
-    }
-    
-    /**
-     * A defaulting map, which returns a default value when a value that does not exist in the map is looked up.
-     * 
-     * This map supports two modes: injecting-on-default, and not injecting-on-default.  When injecting on default, when a lookup is
-     * performed and a default value is returned, the default value is injected at that key, so that it now lives in the underlying map.
-     * Without this mode, the value is simply returned and the underlying map is unaffected.
-     * 
-     * Note: When using injecting-on-default mode, and performing a lookup with a non-key type (the get method accepts any object), a 
-     * class cast exception will be thrown because a non-key type cannot be added to the map.
-     * @param <K>
-     * @param <V>
-     */
-    public static class DefaultingMap<K, V> extends HashMap<K, V> {
-        final Factory<V, K> defaultGenerator;
-        final boolean injectValueOnDefault;
-        
-        /** Creates a defaulting map which defaults to the provided value and with injecting-on-default disabled. */
-        public DefaultingMap(final V defaultValue) {
-            this(new Factory<V, K>() {
-                @Override
-                public V make(final K k) {
-                    return defaultValue;
-                }
-            }, false);
-        }
-        
-        /**
-         * Creates a defaulting map that generates defaults from the provided factory. This is useful when the default is non-static, or
-         * the default is mutable, and the client wishes to get a value and mutate it and persist those changes in the map.
-         */
-        public DefaultingMap(final Factory<V, K> defaultGenerator, final boolean injectValueOnDefaulting) {
-            this.defaultGenerator = defaultGenerator;
-            this.injectValueOnDefault = injectValueOnDefaulting;
-        }
-
-        @Override
-        @SuppressWarnings("unchecked") // Expect that the cast is successful; otherwise, client is breaking contract.
-        public V get(final Object key) {
-            if (!this.containsKey(key)) {
-                final V val = this.defaultGenerator.make((K) key);
-                if (this.injectValueOnDefault) {
-                    this.put((K) key, val); 
-                }
-                return val;
-            } else {
-                return super.get(key);
-            }
-        }
-        
-        public interface Factory<V, K> {
-            /**
-             * @param k
-             */
-            V make(K k);
-        }
-    }
-
-}
diff --git a/src/java/net/sf/samtools/util/CoordMath.java b/src/java/net/sf/samtools/util/CoordMath.java
deleted file mode 100644
index ed70759..0000000
--- a/src/java/net/sf/samtools/util/CoordMath.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.util;
-
-/**
- * Static methods that encapsulate the standard SAM way of storing ranges: one-based, with both ends
- * inclusive.
- */
-public class CoordMath {
-
-    public static int getLength(final int start, final int end) {
-        return (end - start) + 1;
-    }
-
-    public static int getStart(final int end, final int length) {
-        return end - length + 1;
-    }
-
-    public static int getEnd(final int start, final int length) {
-        return start + length - 1;
-    }
-
-    /**
-     * Checks to see if the two sets of coordinates have any overlap.
-     */
-    public static boolean overlaps(final int start, final int end, final int start2, final int end2) {
-        return (start2 >= start && start2 <= end) || (end2 >=start && end2 <= end) ||
-                encloses(start2, end2, start, end);
-    }
-
-    /** Returns true if the "inner" coords and totally enclosed by the "outer" coords. */
-    public static boolean encloses(final int outerStart, final int outerEnd, final int innerStart, final int innerEnd) {
-        return innerStart >= outerStart && innerEnd <= outerEnd;
-    }
-
-    /**
-     * Determines the amount of overlap between two coordinate ranges. Assumes that the two ranges
-     * actually do overlap and therefore may produce strange results when they do not!
-     */
-    public static int getOverlap(final int start, final int end, final int start2, final int end2) {
-        return getLength(Math.max(start, start2), Math.min(end, end2));
-    }
-    
-    /** 
-     * Determines the read cycle number for the base
-     * 
-     *  @param isNegativeStrand true if the read is negative strand
-     *  @param readLength
-     *  @param readBaseIndex the 0-based index of the read base in question
-     */
-    public static int getCycle(boolean isNegativeStrand, int readLength, final int readBaseIndex) {
-        return isNegativeStrand ? readLength - readBaseIndex : readBaseIndex + 1;
-    }
-    
-}
diff --git a/src/java/net/sf/samtools/util/DateParser.java b/src/java/net/sf/samtools/util/DateParser.java
deleted file mode 100644
index eab68db..0000000
--- a/src/java/net/sf/samtools/util/DateParser.java
+++ /dev/null
@@ -1,340 +0,0 @@
-// DateParser.java
-// $Id: DateParser.java,v 1.3 2001/01/04 13:26:19 bmahe Exp $
-// (c) COPYRIGHT MIT, INRIA and Keio, 2000.
-
-/*
-W3C IPR SOFTWARE NOTICE
-
-Copyright 1995-1998 World Wide Web Consortium, (Massachusetts Institute of
-Technology, Institut National de Recherche en Informatique et en
-Automatique, Keio University). All Rights Reserved.
-http://www.w3.org/Consortium/Legal/
-
-This W3C work (including software, documents, or other related items) is
-being provided by the copyright holders under the following license. By
-obtaining, using and/or copying this work, you (the licensee) agree that you
-have read, understood, and will comply with the following terms and
-conditions:
-
-Permission to use, copy, and modify this software and its documentation,
-with or without modification,  for any purpose and without fee or royalty is
-hereby granted, provided that you include the following on ALL copies of the
-software and documentation or portions thereof, including modifications,
-that you make:
-
-  1. The full text of this NOTICE in a location viewable to users of the
-     redistributed or derivative work.
-  2. Any pre-existing intellectual property disclaimers, notices, or terms
-     and conditions. If none exist, a short notice of the following form
-     (hypertext is preferred, text is permitted) should be used within the
-     body of any redistributed or derivative code: "Copyright World Wide
-     Web Consortium, (Massachusetts Institute of Technology, Institut
-     National de Recherche en Informatique et en Automatique, Keio
-     University). All Rights Reserved. http://www.w3.org/Consortium/Legal/"
-  3. Notice of any changes or modifications to the W3C files, including the
-     date changes were made. (We recommend you provide URIs to the location
-     from which the code is derived).
-
-In addition, creators of derivitive works must include the full text of this
-NOTICE in a location viewable to users of the derivitive work.
-
-THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS
-MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
-LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR
-PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE
-ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
-
-COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR
-DOCUMENTATION.
-
-The name and trademarks of copyright holders may NOT be used in advertising
-or publicity pertaining to the software without specific, written prior
-permission. Title to copyright in this software and any associated
-documentation will at all times remain with copyright holders.
-
-____________________________________
-
-This formulation of W3C's notice and license became active on August 14
-1998. See the older formulation for the policy prior to this date. Please
-see our Copyright FAQ for common questions about using materials from our
-site, including specific terms and conditions for packages like libwww,
-Amaya, and Jigsaw. Other questions about this notice can be directed to
-site-policy at w3.org .
-
-
-
-
-webmaster
-(last updated 14-Aug-1998)
-
- */
-
-package net.sf.samtools.util;
-
-import net.sf.samtools.SAMException;
-
-import java.util.Calendar;
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.NoSuchElementException;
-import java.util.StringTokenizer;
-import java.util.TimeZone;
-
-/**
- * NOTE: This code has been taken from w3.org, and modified slightly to handle timezones of the form [-+]DDDD,
- * and also to fix a bug in the application of time zone to the parsed date.
- *
- * Date parser for ISO 8601 format
- * http://www.w3.org/TR/1998/NOTE-datetime-19980827
- * @version $Revision: 1.3 $
- * @author  bmahe at w3.org
- */
-public class DateParser {
-
-    private static boolean check(StringTokenizer st, String token)
-            throws InvalidDateException
-    {
-        if (!st.hasMoreElements()) return false;
-        if (st.nextToken().equals(token)) {
-            return true;
-        } else {
-            throw new InvalidDateException("Missing ["+token+"]");
-        }
-    }
-
-    private static Calendar getCalendar(String isodate)
-            throws InvalidDateException
-    {
-        // YYYY-MM-DDThh:mm:ss.sTZD
-        StringTokenizer st = new StringTokenizer(isodate, "-T:.+Z", true);
-
-        Calendar calendar = new GregorianCalendar(TimeZone.getTimeZone("UTC"));
-        calendar.clear();
-        try {
-            // Year
-            if (st.hasMoreTokens()) {
-                int year = Integer.parseInt(st.nextToken());
-                calendar.set(Calendar.YEAR, year);
-            } else {
-                return calendar;
-            }
-            // Month
-            if (check(st, "-") && (st.hasMoreTokens())) {
-                int month = Integer.parseInt(st.nextToken()) -1;
-                calendar.set(Calendar.MONTH, month);
-            } else {
-                return calendar;
-            }
-            // Day
-            if (check(st, "-") && (st.hasMoreTokens())) {
-                int day = Integer.parseInt(st.nextToken());
-                calendar.set(Calendar.DAY_OF_MONTH, day);
-            } else {
-                return calendar;
-            }
-            // Hour
-            if (check(st, "T") && (st.hasMoreTokens())) {
-                int hour = Integer.parseInt(st.nextToken());
-                calendar.set(Calendar.HOUR_OF_DAY, hour);
-            } else {
-                calendar.set(Calendar.HOUR_OF_DAY, 0);
-                calendar.set(Calendar.MINUTE, 0);
-                calendar.set(Calendar.SECOND, 0);
-                calendar.set(Calendar.MILLISECOND, 0);
-                return calendar;
-            }
-            // Minutes
-            if (check(st, ":") && (st.hasMoreTokens())) {
-                int minutes = Integer.parseInt(st.nextToken());
-                calendar.set(Calendar.MINUTE, minutes);
-            } else {
-                calendar.set(Calendar.MINUTE, 0);
-                calendar.set(Calendar.SECOND, 0);
-                calendar.set(Calendar.MILLISECOND, 0);
-                return calendar;
-            }
-
-            //
-            // Not mandatory now
-            //
-
-            // Secondes
-            if (! st.hasMoreTokens()) {
-                return calendar;
-            }
-            String tok = st.nextToken();
-            if (tok.equals(":")) { // secondes
-                if (st.hasMoreTokens()) {
-                    int secondes = Integer.parseInt(st.nextToken());
-                    calendar.set(Calendar.SECOND, secondes);
-                    if (! st.hasMoreTokens()) {
-                        return calendar;
-                    }
-                    // frac sec
-                    tok = st.nextToken();
-                    if (tok.equals(".")) {
-                        // bug fixed, thx to Martin Bottcher
-                        String nt = st.nextToken();
-                        while(nt.length() < 3) {
-                            nt += "0";
-                        }
-                        nt = nt.substring( 0, 3 ); //Cut trailing chars..
-                        int millisec = Integer.parseInt(nt);
-                        //int millisec = Integer.parseInt(st.nextToken()) * 10;
-                        calendar.set(Calendar.MILLISECOND, millisec);
-                        if (! st.hasMoreTokens()) {
-                            return calendar;
-                        }
-                        tok = st.nextToken();
-                    } else {
-                        calendar.set(Calendar.MILLISECOND, 0);
-                    }
-                } else {
-                    throw new InvalidDateException("No secondes specified");
-                }
-            } else {
-                calendar.set(Calendar.SECOND, 0);
-                calendar.set(Calendar.MILLISECOND, 0);
-            }
-            // Timezone
-            if (! tok.equals("Z")) { // UTC
-                if (! (tok.equals("+") || tok.equals("-"))) {
-                    throw new InvalidDateException("only Z, + or - allowed");
-                }
-                boolean plus = tok.equals("+");
-                if (! st.hasMoreTokens()) {
-                    throw new InvalidDateException("Missing hour field");
-                }
-                int tzhour = Integer.parseInt(st.nextToken());
-                int tzmin  = 0;
-                if (check(st, ":") && (st.hasMoreTokens())) {
-                    tzmin = Integer.parseInt(st.nextToken());
-                } else {
-                    // Modified by AW -- minute field is not required, and minutes may be represented
-                    // without colon between hours and minutes
-                    // throw new InvalidDateException("Missing minute field");
-                    if (tzhour >= 100) {
-                        tzmin = tzhour % 100;
-                        tzhour /= 100;
-                    }
-                }
-                if (!plus) { // Modified by AW -- !plus instead of plus
-                    calendar.add(Calendar.HOUR, tzhour);
-                    calendar.add(Calendar.MINUTE, tzmin);
-                } else {
-                    calendar.add(Calendar.HOUR, -tzhour);
-                    calendar.add(Calendar.MINUTE, -tzmin);
-                }
-            }
-        } catch (NumberFormatException ex) {
-            throw new InvalidDateException("["+ex.getMessage()+
-                    "] is not an integer");
-        }
-        return calendar;
-    }
-
-    /**
-     * Parse the given string in ISO 8601 format and build a Date object.
-     * @param isodate the date in ISO 8601 format
-     * @return a Date instance
-     * @exception InvalidDateException if the date is not valid
-     */
-    public static Date parse(String isodate)
-            throws InvalidDateException
-    {
-        Calendar calendar = getCalendar(isodate);
-        return calendar.getTime();
-    }
-
-    private static String twoDigit(int i) {
-        if (i >=0 && i < 10) {
-            return "0"+String.valueOf(i);
-        }
-        return String.valueOf(i);
-    }
-
-    /**
-     * Generate a ISO 8601 date
-     * @param date a Date instance
-     * @return a string representing the date in the ISO 8601 format
-     */
-    public static String getIsoDate(Date date) {
-        Calendar calendar = new GregorianCalendar(TimeZone.getTimeZone("UTC"));
-        calendar.setTime(date);
-        StringBuffer buffer = new StringBuffer();
-        buffer.append(calendar.get(Calendar.YEAR));
-        buffer.append("-");
-        buffer.append(twoDigit(calendar.get(Calendar.MONTH) + 1));
-        buffer.append("-");
-        buffer.append(twoDigit(calendar.get(Calendar.DAY_OF_MONTH)));
-        buffer.append("T");
-        buffer.append(twoDigit(calendar.get(Calendar.HOUR_OF_DAY)));
-        buffer.append(":");
-        buffer.append(twoDigit(calendar.get(Calendar.MINUTE)));
-        buffer.append(":");
-        buffer.append(twoDigit(calendar.get(Calendar.SECOND)));
-        buffer.append(".");
-        buffer.append(twoDigit(calendar.get(Calendar.MILLISECOND) / 10));
-        buffer.append("Z");
-        return buffer.toString();
-    }
-
-    public static void test(String isodate) {
-        System.out.println("----------------------------------");
-        try {
-            Date date = parse(isodate);
-            System.out.println(">> "+isodate);
-            System.out.println(">> "+date.toString()+" ["+date.getTime()+"]");
-            System.out.println(">> "+getIsoDate(date));
-        } catch (InvalidDateException ex) {
-            System.err.println(isodate+" is invalid");
-            System.err.println(ex.getMessage());
-        }
-        System.out.println("----------------------------------");
-    }
-
-    public static void test(Date date) {
-        String isodate = null;
-        System.out.println("----------------------------------");
-        try {
-            System.out.println(">> "+date.toString()+" ["+date.getTime()+"]");
-            isodate = getIsoDate(date);
-            System.out.println(">> "+isodate);
-            date = parse(isodate);
-            System.out.println(">> "+date.toString()+" ["+date.getTime()+"]");
-        } catch (InvalidDateException ex) {
-            System.err.println(isodate+" is invalid");
-            System.err.println(ex.getMessage());
-        }
-        System.out.println("----------------------------------");
-    }
-
-    public static void main(String args[]) {
-        test("1997-07-16T19:20:30.45-02:00");
-        test("1997-07-16T19:20:30+01:00");
-        test("1997-07-16T19:20:30+01:00");
-        test("1997-07-16T19:20");
-        test("1997-07-16");
-        test("1997-07");
-        test("1997");
-        test(new Date());
-    }
-
-    public static class InvalidDateException extends SAMException {
-        public InvalidDateException() {
-        }
-
-        public InvalidDateException(final String s) {
-            super(s);
-        }
-
-        public InvalidDateException(final String s, final Throwable throwable) {
-            super(s, throwable);
-        }
-
-        public InvalidDateException(final Throwable throwable) {
-            super(throwable);
-        }
-    }
-}
diff --git a/src/java/net/sf/samtools/util/DelegatingIterator.java b/src/java/net/sf/samtools/util/DelegatingIterator.java
deleted file mode 100644
index 603f8f1..0000000
--- a/src/java/net/sf/samtools/util/DelegatingIterator.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package net.sf.samtools.util;
-
-import net.sf.samtools.util.CloseableIterator;
-
-import java.util.Iterator;
-
-/**
- * Simple iterator class that delegates all method calls to an underlying iterator. Useful
- * for in-line subclassing to add behaviour to one or more methods.
- *
- * @author Tim Fennell
- */
-public class DelegatingIterator<T> implements CloseableIterator<T> {
-    private final Iterator<T> iterator;
-
-    public DelegatingIterator(final Iterator<T> iterator) {
-        this.iterator = iterator;
-    }
-
-    public void close() {
-        if (iterator instanceof CloseableIterator) {
-            ((CloseableIterator) this.iterator).close();
-        }
-    }
-
-    public boolean hasNext() {
-        return this.iterator.hasNext();
-    }
-
-    public T next() {
-        return this.iterator.next();
-    }
-
-    public void remove() {
-        this.iterator.remove();
-    }
-}
diff --git a/src/java/net/sf/samtools/util/HttpUtils.java b/src/java/net/sf/samtools/util/HttpUtils.java
deleted file mode 100644
index b259a76..0000000
--- a/src/java/net/sf/samtools/util/HttpUtils.java
+++ /dev/null
@@ -1,80 +0,0 @@
-package net.sf.samtools.util;
-
-import java.io.IOException;
-import java.net.URLConnection;
-import java.net.URL;
-import java.net.HttpURLConnection;
-import java.net.MalformedURLException;
-
-/**
- * User: jrobinso
- * Date: Sep 23, 2009
- */
-public class HttpUtils {
-
-    public static String getETag(final URL url) {
-        return getHeaderField(url, "ETag");
-    }
-
-    private static URLConnection openConnection(final URL url) throws IOException{
-        URLConnection conn = url.openConnection();
-        conn.setReadTimeout(3000);
-        conn.setDefaultUseCaches(false);
-        conn.setUseCaches(false);
-        return conn;
-    }
-
-    public static String getHeaderField(final URL url, final String name) {
-        URLConnection conn = null;
-        try {
-            // Create a URLConnection object for a URL
-            conn = openConnection(url);
-            return conn.getHeaderField(name);
-
-        } catch (IOException e) {
-            e.printStackTrace();
-            return null;
-        }
-        finally {
-            if (conn != null && conn instanceof HttpURLConnection) {
-                ((HttpURLConnection) conn).disconnect();
-            }
-        }
-    }
-
-    public static void printHeaderFields(final URL url) {
-
-        URLConnection conn = null;
-        try {
-            // Create a URLConnection object for a URL
-            conn = openConnection(url);
-
-            for (final String name : conn.getHeaderFields().keySet()) {
-                System.out.println(name + "\t" + conn.getHeaderField(name));
-
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        finally {
-            if (conn != null && conn instanceof HttpURLConnection) {
-                ((HttpURLConnection) conn).disconnect();
-            }
-        }
-    }
-
-    public static boolean resourceAvailable(final URL url) {
-        return getETag(url) != null;
-    }
-
-    public static void main(final String[] args) throws MalformedURLException {
-        //printHeaderFields(new URL(
-        //        "http://www.broadinstitute.org/igvdata/1KG/DCC_merged/freeze5/NA12891.pilot2.SLX.bam"));
-        System.out.println(getETag(new URL(
-                 "http://www.broadinstitute.org/igvdata/test/sam/303KY.8.paired1.bam.tdf")));
-        System.out.println(resourceAvailable(new URL(
-                "http://www.broadinstitute.org/igvdata/test/sam/303KY.8.paired1.bam.tdf")));
-
-
-    }
-}
diff --git a/src/java/net/sf/samtools/util/IOUtil.java b/src/java/net/sf/samtools/util/IOUtil.java
deleted file mode 100644
index aff1209..0000000
--- a/src/java/net/sf/samtools/util/IOUtil.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.util;
-
-
-import net.sf.samtools.Defaults;
-import net.sf.samtools.seekablestream.SeekableBufferedStream;
-import net.sf.samtools.seekablestream.SeekableFileStream;
-import net.sf.samtools.seekablestream.SeekableStream;
-
-import java.io.*;
-
-/**
- * Miscellaneous stateless static IO-oriented methods.
- */
-public class IOUtil {
-    /**
-     * @deprecated Use Defaults.NON_ZERO_BUFFER_SIZE instead.
-     */
-    @Deprecated public static final int STANDARD_BUFFER_SIZE = Defaults.NON_ZERO_BUFFER_SIZE;
-
-    public static final long ONE_GB   = 1024 * 1024 * 1024;
-    public static final long TWO_GBS  = 2 * ONE_GB;
-    public static final long FIVE_GBS = 5 * ONE_GB;
-
-    /**
-     * Wrap the given stream in a BufferedInputStream, if it isn't already wrapper
-     * @param stream stream to be wrapped
-     * @return A BufferedInputStream wrapping stream, or stream itself if stream instanceof BufferedInputStream.
-     */
-    public static BufferedInputStream toBufferedStream(final InputStream stream) {
-        if (stream instanceof BufferedInputStream) {
-            return (BufferedInputStream) stream;
-        } else {
-            return new BufferedInputStream(stream, Defaults.NON_ZERO_BUFFER_SIZE);
-        }
-    }
-
-    /**
-     * Transfers from the input stream to the output stream using stream operations and a buffer.
-     */
-    public static void transferByStream(final InputStream in, final OutputStream out, final long bytes) {
-        final byte[] buffer = new byte[Defaults.NON_ZERO_BUFFER_SIZE];
-        long remaining = bytes;
-
-        try {
-            while (remaining > 0) {
-                final int read = in.read(buffer, 0, (int) Math.min(buffer.length, remaining));
-                out.write(buffer, 0, read);
-                remaining -= read;
-            }
-        }
-        catch (final IOException ioe) {
-            throw new RuntimeIOException(ioe);
-        }
-    }
-
-    /**
-     * @return If Defaults.BUFFER_SIZE > 0, wrap os in BufferedOutputStream, else return os itself.
-     */
-    public static OutputStream maybeBufferOutputStream(final OutputStream os) {
-        return maybeBufferOutputStream(os, Defaults.BUFFER_SIZE);
-    }
-
-    /**
-     * @return If bufferSize > 0, wrap os in BufferedOutputStream, else return os itself.
-     */
-    public static OutputStream maybeBufferOutputStream(final OutputStream os, final int bufferSize) {
-        if (bufferSize > 0) return new BufferedOutputStream(os, bufferSize);
-        else return os;
-    }
-
-    public static SeekableStream maybeBufferedSeekableStream(final SeekableStream stream, final int bufferSize) {
-        return bufferSize > 0 ? new SeekableBufferedStream(stream, bufferSize) : stream; 
-    }
-    
-    public static SeekableStream maybeBufferedSeekableStream(final SeekableStream stream) {
-        return maybeBufferedSeekableStream(stream, Defaults.BUFFER_SIZE);
-    }
-    
-    public static SeekableStream maybeBufferedSeekableStream(final File file) {
-        try {
-            return maybeBufferedSeekableStream(new SeekableFileStream(file));
-        } catch (final FileNotFoundException e) {
-            throw new RuntimeIOException(e);
-        }
-    }
-    
-    /**
-     * @return If Defaults.BUFFER_SIZE > 0, wrap is in BufferedInputStream, else return is itself.
-     */
-    public static InputStream maybeBufferInputStream(final InputStream is) {
-        return maybeBufferInputStream(is, Defaults.BUFFER_SIZE);
-    }
-    
-    /**
-     * @return If bufferSize > 0, wrap is in BufferedInputStream, else return is itself.
-     */
-    public static InputStream maybeBufferInputStream(final InputStream is, final int bufferSize) {
-        if (bufferSize > 0) return new BufferedInputStream(is, bufferSize);
-        else return is;
-    }
-
-    public static Reader maybeBufferReader(Reader reader, final int bufferSize) {
-        if (bufferSize > 0) reader = new BufferedReader(reader, bufferSize);
-        return reader;
-    }
-
-    public static Reader maybeBufferReader(final Reader reader) {
-        return maybeBufferReader(reader, Defaults.BUFFER_SIZE);
-    }
-
-    public static Writer maybeBufferWriter(Writer writer, final int bufferSize) {
-        if (bufferSize > 0) writer = new BufferedWriter(writer, bufferSize);
-        return writer;
-    }
-
-    public static Writer maybeBufferWriter(final Writer writer) {
-        return maybeBufferWriter(writer, Defaults.BUFFER_SIZE);
-    }
-
-
-    /**
-     * Delete a list of files, and write a warning message if one could not be deleted.
-     * @param files Files to be deleted.
-     */
-    public static void deleteFiles(final File... files) {
-        for (final File f : files) {
-            if (!f.delete()) {
-                System.err.println("Could not delete file " + f);
-            }
-        }
-    }
-
-    public static void deleteFiles(final Iterable<File> files) {
-        for (final File f : files) {
-            if (!f.delete()) {
-                System.err.println("Could not delete file " + f);
-            }
-        }
-    }
-
-
-    /**
-     * @return true if the path is not a device (e.g. /dev/null or /dev/stdin), and is not
-     * an existing directory.  I.e. is is a regular path that may correspond to an existing
-     * file, or a path that could be a regular output file.
-     */
-    public static boolean isRegularPath(final File file) {
-        return !file.exists() || file.isFile();
-    }
-
-    /**
-     * Creates a new tmp file on one of the available temp filesystems, registers it for deletion
-     * on JVM exit and then returns it.
-     */
-    public static File newTempFile(final String prefix, final String suffix,
-                                   final File[] tmpDirs, final long minBytesFree) throws IOException {
-        File f = null;
-
-        for (int i=0; i<tmpDirs.length; ++i) {
-            if ( i == tmpDirs.length-1 || tmpDirs[i].getUsableSpace() > minBytesFree) {
-                f = File.createTempFile(prefix, suffix, tmpDirs[i]);
-                f.deleteOnExit();
-                break;
-            }
-        }
-
-        return f;
-    }
-
-    /** Creates a new tmp file on one of the potential filesystems that has at least 5GB free. */
-    public static File newTempFile(final String prefix, final String suffix,
-                                   final File[] tmpDirs) throws IOException {
-        return newTempFile(prefix, suffix, tmpDirs, FIVE_GBS);
-    }
-
-
-    /** Returns a default tmp directory. */
-    public static File getDefaultTmpDir() {
-        final String user = System.getProperty("user.name");
-        final String tmp = System.getProperty("java.io.tmpdir");
-
-        if (tmp.endsWith(File.separatorChar + user)) return new File(tmp);
-        else return new File(tmp, user);
-    }
-
-    /** Returns the name of the file minus the extension (i.e. text after the last "." in the filename). */
-    public static String basename(final File f) {
-        final String full = f.getName();
-        final int index = full.lastIndexOf(".");
-        if (index > 0  && index > full.lastIndexOf(File.separator)) {
-            return full.substring(0, index);
-        }
-        else {
-            return full;
-        }
-    }
-}
diff --git a/src/java/net/sf/samtools/util/Iso8601Date.java b/src/java/net/sf/samtools/util/Iso8601Date.java
deleted file mode 100644
index 3d969eb..0000000
--- a/src/java/net/sf/samtools/util/Iso8601Date.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.util;
-
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-/**
- * Use this type rather than java.util.Date in command-line options in order to get ISO 8601 parsing.
- * The ctors below truncate milliseconds, since our formatter does not write them.  Note that it is possible
- * to modify an Iso8601Date so that it has fractional seconds, but that is discouraged.
- *
- * @author alecw at broadinstitute.org
- */
-public class Iso8601Date extends Date {
-    private static final ThreadLocal<DateFormat> iso8601DateFormatter = new ThreadLocal<DateFormat>() {
-        protected synchronized DateFormat initialValue() {
-            return new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
-        }
-    };
-
-    public Iso8601Date(final String dateStr) {
-        super(DateParser.parse(dateStr).getTime());
-        truncateMilliseconds();
-    }
-
-    public Iso8601Date(final Date date) {
-        super(date.getTime());
-        truncateMilliseconds();
-    }
-
-    public String toString() {
-        return iso8601DateFormatter.get().format(this);
-    }
-
-    private void truncateMilliseconds() {
-        long time = getTime();
-        long mod = time % 1000;
-        if (mod != 0) {
-            super.setTime(time - mod);
-        }
-    }
-}
diff --git a/src/java/net/sf/samtools/util/Lazy.java b/src/java/net/sf/samtools/util/Lazy.java
deleted file mode 100644
index 04a592b..0000000
--- a/src/java/net/sf/samtools/util/Lazy.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package net.sf.samtools.util;
-
-/**
- * Simple utility for building an on-demand (lazy) object-initializer.
- * 
- * Works by accepting an initializer describing how to build the on-demand object, which is only called once and only after the first
- * invocation of {@link #get()} (or it may not be called at all).
- * 
- * @author mccowan
- */
-public class Lazy<T> {
-    private final LazyInitializer<T> initializer;
-    private boolean isInitialized = false;
-    private T instance;
-
-    /** Simple cons */
-    public Lazy(final LazyInitializer<T> initializer) {
-        this.initializer = initializer;
-    }
-
-    /** Returns the instance associated with this {@link Lazy}, initializing it if necessary. */
-    public synchronized T get() {
-        if (!isInitialized) {
-            this.instance = initializer.make();
-            isInitialized = true;
-        }
-        return instance;
-    }
-
-    /** Describes how to build the instance of the lazy object. */
-    public interface LazyInitializer<T> {
-        /** Returns the desired object instance. */
-        T make();
-    }
-
-    public boolean isInitialized() {
-        return isInitialized;
-    }
-}
diff --git a/src/java/net/sf/samtools/util/LineReader.java b/src/java/net/sf/samtools/util/LineReader.java
deleted file mode 100644
index 5f09b81..0000000
--- a/src/java/net/sf/samtools/util/LineReader.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.util;
-
-import java.io.Closeable;
-
-/**
- * Interface allows for implementations that read lines from a String, an ASCII file, or somewhere else.
- */
-public interface LineReader extends Closeable{
-
-    /**
-     * Read a line and remove the line terminator
-     * @return the line read, or null if EOF has been reached.
-     */
-    String readLine();
-
-    /**
-     * @return 1-based number of line most recently read
-     */
-    int getLineNumber();
-
-    /**
-     * Non-destructive one-character look-ahead.
-     * @return If not eof, the next character that would be read.  If eof, -1.
-     */
-    int peek();
-
-    public void close();
-}
diff --git a/src/java/net/sf/samtools/util/LocationAware.java b/src/java/net/sf/samtools/util/LocationAware.java
deleted file mode 100644
index 7ad3f5c..0000000
--- a/src/java/net/sf/samtools/util/LocationAware.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package net.sf.samtools.util;
-
-/**
- * Describes API for getting current position in a stream, writer, or underlying file.
- * 
- * The expected functionality is simple: if you are a output stream / writer, and you've written 50 bytes to the stream, then 
- * {@link #getPosition()} should return 50; if you are an input stream or file reader, and you've read 25 bytes from the object, then it 
- * should return 25.
- * 
- * In the context of an iterator or any producer-like object that doesn't map directly to a byte stream, {@link #getPosition()} should
- * return the position (in the underlying stream being read/written to) of the most-recently read/written element.  For example, if you
- * are reading lines from a file with a {@link org.broad.tribble.readers.AsciiLineReaderIterator}, calling {@link #getPosition()} should return the byte position
- * of the start of the most recent line returned by {@link org.broad.tribble.readers.AsciiLineReaderIterator#next()}.
- * 
- * @author mccowan
- */
-public interface LocationAware {
-    /**
-     * The current offset, in bytes, of this stream/writer/file.  Or, if this is an iterator/producer, the offset (in bytes) of the
-     * END of the most recently returned record (since a produced record corresponds to something that has been read already). See class
-     * javadoc for more.
-     *
-     * Note that for BGZF files, this does not represent an actually file position, but a virtual file pointer.
-     */
-    public long getPosition();
-}
diff --git a/src/java/net/sf/samtools/util/Md5CalculatingInputStream.java b/src/java/net/sf/samtools/util/Md5CalculatingInputStream.java
deleted file mode 100755
index 01227fe..0000000
--- a/src/java/net/sf/samtools/util/Md5CalculatingInputStream.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.util;
-
-import net.sf.samtools.SAMException;
-
-import java.io.*;
-import java.math.BigInteger;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-
-/**
- * Class to generate an MD5 string for a file as it is being read
- *
- * @author ktibbett at broadinstitue.org
- */
-public class Md5CalculatingInputStream extends InputStream {
-
-    private final InputStream is;
-    private final MessageDigest md5;
-    private final File digestFile;
-    private String hash;
-
-    /**
-     * Constructor that takes in the InputStream that we are wrapping
-     * and creates the MD5 MessageDigest
-     */
-    public Md5CalculatingInputStream(InputStream is, File digestFile) {
-        super();
-        this.is = is;
-        this.digestFile = digestFile;
-        this.hash = null;
-
-        try {
-            md5 = MessageDigest.getInstance("MD5");
-            md5.reset();
-        }
-        catch (NoSuchAlgorithmException e) {
-            throw new RuntimeException("MD5 algorithm not found", e);
-        }
-    }
-
-    public int read() throws IOException {
-        int result = is.read();
-        if (result != -1) md5.update((byte)result);
-        return result;
-    }
-
-    public int read(byte[] b) throws IOException {
-        int result = is.read(b);
-        if (result != -1) md5.update(b, 0, result);
-        return result;
-    }
-
-
-    public int read(byte[] b, int off, int len) throws IOException {
-        int result = is.read(b, off, len);
-        if (result != -1) md5.update(b, off, result);
-        return result;
-    }
-
-    public String md5() {
-        if(hash == null) {
-            throw new SAMException("Attempting to access md5 digest before the entire file is read!  Call close first.");
-        }
-        return hash;
-    }
-
-    private String makeHash() {
-        if(hash == null) {
-            hash = new BigInteger(1, md5.digest()).toString(16);
-            if (hash.length() != 32) {
-                final String zeros = "00000000000000000000000000000000";
-                hash = zeros.substring(0, 32 - hash.length()) + hash;
-            }
-            return hash;
-        } else {
-            throw new SAMException("MD5InputStream is already closed!");
-        }
-    }
-
-    public void close() throws IOException {
-        is.close();
-        makeHash();
-
-        if(digestFile != null) {
-            BufferedWriter writer = new BufferedWriter(new FileWriter(digestFile));
-            writer.write(hash);
-            writer.close();
-        }
-    }
-
-    // Methods not supported or overridden because they would not result in a valid hash
-    public boolean markSupported() { return false; }
-    public void	mark(int readlimit) {
-        throw new UnsupportedOperationException("mark() is not supported by the MD5CalculatingInputStream");
-    }
-    public void	reset() throws IOException {
-        throw new UnsupportedOperationException("reset() is not supported by the MD5CalculatingInputStream");
-    }
-    public long skip(long n) throws IOException {
-        throw new UnsupportedOperationException("skip() is not supported by the MD5CalculatingInputStream");
-    }
-
-    // Methods delegated to the wrapped InputStream
-    public int available() throws IOException { return is.available(); }
-
-}
diff --git a/src/java/net/sf/samtools/util/Md5CalculatingOutputStream.java b/src/java/net/sf/samtools/util/Md5CalculatingOutputStream.java
deleted file mode 100755
index 7d2dd50..0000000
--- a/src/java/net/sf/samtools/util/Md5CalculatingOutputStream.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.util;
-
-import net.sf.samtools.SAMException;
-
-import java.io.*;
-import java.math.BigInteger;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-
-/**
- * Class to generate an MD5 string for a file as it is being read
- *
- * @author ktibbett at broadinstitue.org
- */
-public class Md5CalculatingOutputStream extends OutputStream {
-
-    private final OutputStream os;
-    private final MessageDigest md5;
-    private final File digestFile;
-    private String hash;
-
-    /**
-     * Constructor that takes in the OutputStream that we are wrapping
-     * and creates the MD5 MessageDigest
-     */
-    public Md5CalculatingOutputStream(OutputStream os, File digestFile) {
-        super();
-        this.hash = null;
-        this.os = os;
-        this.digestFile = digestFile;
-
-        try {
-            md5 = MessageDigest.getInstance("MD5");
-            md5.reset();
-        }
-        catch (NoSuchAlgorithmException e) {
-            throw new RuntimeException("MD5 algorithm not found", e);
-        }
-    }
-
-    public void write(int b) throws IOException {
-        md5.update((byte)b);
-        os.write(b);
-    }
-
-    public void write(byte[] b) throws IOException {
-        md5.update(b);
-        os.write(b);
-    }
-
-
-    public void write(byte[] b, int off, int len) throws IOException {
-        md5.update(b, off, len);
-        os.write(b, off, len);
-    }
-
-    public String md5() {
-        if(hash == null) {
-            throw new SAMException("Attempting to access md5 digest before the entire file is written!  Call close first.");
-        }
-
-        return hash;
-    }
-
-    private String makeHash() {
-        if(hash == null) {
-            hash = new BigInteger(1, md5.digest()).toString(16);
-            if (hash.length() != 32) {
-                final String zeros = "00000000000000000000000000000000";
-                hash = zeros.substring(0, 32 - hash.length()) + hash;
-            }
-            return hash;
-        } else {
-            throw new SAMException("Calling close on Md5CalculatingOutputStream twice!");
-        }
-    }
-
-    public void close() throws IOException {
-        os.close();
-        makeHash();
-
-        if(digestFile != null) {
-            BufferedWriter writer = new BufferedWriter(new FileWriter(digestFile));
-            writer.write(hash);
-            writer.close();
-        }
-    }
-
-    // Pass-through method
-    public void flush() throws IOException { os.flush(); }
-
-}
diff --git a/src/java/net/sf/samtools/util/PeekIterator.java b/src/java/net/sf/samtools/util/PeekIterator.java
deleted file mode 100644
index f315922..0000000
--- a/src/java/net/sf/samtools/util/PeekIterator.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.util;
-
-import java.util.Iterator;
-
-/**
- * Wrapper around an iterator that enables non-destructive peeking at the next element that would
- * be returned by next()
- */
-public class PeekIterator<T> implements Iterator<T> {
-    Iterator<T> underlyingIterator;
-    T peekedElement = null;
-
-    public PeekIterator(final Iterator<T> underlyingIterator) {
-        this.underlyingIterator = underlyingIterator;
-    }
-
-    /**
-     * @return true if the iteration has more elements. (In other words, returns true if next would return an element 
-     * rather than throwing an exception.)
-     */
-    public boolean hasNext() {
-        return peekedElement != null || underlyingIterator.hasNext();  
-    }
-
-    /**
-     * @return the next element in the iteration. Calling this method repeatedly until the hasNext() method returns
-     * false will return each element in the underlying collection exactly once.
-     */
-    public T next() {
-        if (peekedElement != null) {
-            final T ret = peekedElement;
-            peekedElement = null;
-            return ret;
-        }
-        return underlyingIterator.next();
-    }
-
-    /**
-     * @return the next element in the iteration, but without removing it, so the next call to next() or peek()
-     * will return the same element as returned by the current call to peek().
-     */
-    public T peek() {
-        if (peekedElement == null) {
-            peekedElement = underlyingIterator.next();
-        }
-        return peekedElement;
-    }
-
-    /**
-     * Unsupported
-     */
-    public void remove() {
-        throw new UnsupportedOperationException();
-    }
-
-    /**
-     * @return the iterator wrapped by this object.
-     */
-    public Iterator<T> getUnderlyingIterator() {
-        return underlyingIterator;
-    }
-}
diff --git a/src/java/net/sf/samtools/util/ProgressLoggerInterface.java b/src/java/net/sf/samtools/util/ProgressLoggerInterface.java
deleted file mode 100644
index 0401e55..0000000
--- a/src/java/net/sf/samtools/util/ProgressLoggerInterface.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package net.sf.samtools.util;
-
-/**
- * The MIT License
- * <p/>
- * Copyright (c) 2014 The Broad Institute
- * <p/>
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * <p/>
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * <p/>
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-import net.sf.samtools.SAMRecord;
-
-/**
- * An interface defining the record() methods of the Picard-public ProgressLogger implementation.
- */
-public interface ProgressLoggerInterface {
-
-	public boolean record(final String chrom, final int pos);
-	public boolean record(final SAMRecord rec);
-	public boolean record(final SAMRecord... recs);
-
-}
diff --git a/src/java/net/sf/samtools/util/RelativeIso8601Date.java b/src/java/net/sf/samtools/util/RelativeIso8601Date.java
deleted file mode 100644
index 0a9a4b4..0000000
--- a/src/java/net/sf/samtools/util/RelativeIso8601Date.java
+++ /dev/null
@@ -1,187 +0,0 @@
-package net.sf.samtools.util;
-
-import java.util.Date;
-
-/**
- * Like {@link Iso8601Date}, but also comes in a "lazy now" flavor.
- * 
- * When "lazy now" mode is enabled, this instance's date value is undefined until the first time it is queried, at which time it is set to 
- * {@link System#currentTimeMillis()}.  This value is returned on subsequent queries, so it is consistent.
- * 
- * The "lazy state" is conveyed via {@link #toString()}.  A "lazy now" instance will answer {@link #toString()} with
- * {@link #LAZY_NOW_LABEL} if the time has not yet been queried/set, or a {@link Iso8601Date}-formatted date of the query time if it
- * has been queried.  This characteristic is useful for serialization and persistence purposes.
- * 
- * Consumers can create "lazy now" instances via the {@link #generateLazyNowInstance()} factory method or by passing {@link #LAZY_NOW_LABEL} to 
- * {@link #RelativeIso8601Date(String)}.
- * 
- * @author mccowan
- */
-public class RelativeIso8601Date extends Iso8601Date {
-
-    public static final String LAZY_NOW_LABEL = "NOW";
-    
-    /** Flag that indicates this instance is lazy and has not yet been queried (and so its value should be updated at the next query). */
-    private boolean doSetTimeNextQuery;
-
-    /** Returns a "lazy now" instance. */
-    public static RelativeIso8601Date generateLazyNowInstance() {
-        return new RelativeIso8601Date(LAZY_NOW_LABEL);
-    }
-    
-    public RelativeIso8601Date(final Date date) {
-        super(date);
-        doSetTimeNextQuery = false;
-    }
-
-    public RelativeIso8601Date(final String dateStr) {
-        /** 
-         * We must pass a date parsable {@link Iso8601Date#Iso8601Date(String)}; we will never actually read the passed value, so it doesn't
-         * matter what it is.
-         */
-        super(LAZY_NOW_LABEL.equals(dateStr) ? new Iso8601Date(new Date()).toString() : dateStr);
-        doSetTimeNextQuery = LAZY_NOW_LABEL.equals(dateStr);
-    }
-
-    /** Updates the time stored by this instance if it's a "lazy now" instance and has never been stored. */
-    private synchronized void conditionallyUpdateTime() {
-        if (!doSetTimeNextQuery) {
-            super.setTime(System.currentTimeMillis());
-            doSetTimeNextQuery = false;
-        }
-    }
-
-    /**
-     * Returns a {@link String} representation of this date.
-     * @return An {@link Iso8601Date}-formatted string, or the value of {@link #LAZY_NOW_LABEL} if this is a "lazy now" instance.
-     */
-    @Override
-    public String toString() {
-        return doSetTimeNextQuery ? LAZY_NOW_LABEL : super.toString();
-    }
-    
-    @Override
-    public long getTime() {
-        conditionallyUpdateTime();
-        return super.getTime();
-    }
-    
-    @Override
-    public boolean after(final Date when) {
-        conditionallyUpdateTime();
-        return super.after(when);
-    }
-
-    @Override
-    public boolean before(final Date when) {
-        conditionallyUpdateTime();
-        return super.before(when);
-    }
-
-    @Override
-    public Object clone() {
-        conditionallyUpdateTime();
-        return super.clone();
-    }
-
-    @Override
-    public int compareTo(final Date anotherDate) {
-        conditionallyUpdateTime();
-        return super.compareTo(anotherDate);
-    }
-
-    @Override
-    public boolean equals(final Object obj) {
-        conditionallyUpdateTime();
-        return super.equals(obj);
-    }
-
-    @Override
-    public int getDate() {
-        conditionallyUpdateTime();
-        return super.getDate();
-    }
-
-    @Override
-    public int getDay() {
-        conditionallyUpdateTime();
-        return super.getDay();
-    }
-
-    @Override
-    public int getHours() {
-        conditionallyUpdateTime();
-        return super.getHours();
-    }
-
-    @Override
-    public int getMinutes() {
-        conditionallyUpdateTime();
-        return super.getMinutes();
-    }
-
-    @Override
-    public int getMonth() {
-        conditionallyUpdateTime();
-        return super.getMonth();
-    }
-
-    @Override
-    public int getSeconds() {
-        conditionallyUpdateTime();
-        return super.getSeconds();
-    }
-
-    @Override
-    public int getTimezoneOffset() {
-        conditionallyUpdateTime();
-        return super.getTimezoneOffset();
-    }
-
-    @Override
-    public int getYear() {
-        conditionallyUpdateTime();
-        return super.getYear();
-    }
-
-    @Override
-    public int hashCode() {
-        conditionallyUpdateTime();
-        return super.hashCode();
-    }
-
-    @Override
-    public void setDate(final int date) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public void setHours(final int hours) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public void setMinutes(final int minutes) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public void setMonth(final int month) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public void setSeconds(final int seconds) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public void setTime(final long time) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public void setYear(final int year) {
-        throw new UnsupportedOperationException();
-    }
-}
diff --git a/src/java/net/sf/samtools/util/RuntimeEOFException.java b/src/java/net/sf/samtools/util/RuntimeEOFException.java
deleted file mode 100644
index ae4d70d..0000000
--- a/src/java/net/sf/samtools/util/RuntimeEOFException.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.util;
-
-import net.sf.samtools.SAMException;
-
-/**
- * Thrown by various codecs to indicate EOF without having to clutter the API with throws clauses
- */
-public class RuntimeEOFException extends SAMException {
-    public RuntimeEOFException() {
-    }
-
-    public RuntimeEOFException(final String s) {
-        super(s);
-    }
-
-    public RuntimeEOFException(final String s, final Throwable throwable) {
-        super(s, throwable);
-    }
-
-    public RuntimeEOFException(final Throwable throwable) {
-        super(throwable);
-    }
-}
diff --git a/src/java/net/sf/samtools/util/RuntimeIOException.java b/src/java/net/sf/samtools/util/RuntimeIOException.java
deleted file mode 100644
index 6c2f5ad..0000000
--- a/src/java/net/sf/samtools/util/RuntimeIOException.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.util;
-
-import net.sf.samtools.SAMException;
-
-/**
- * Thrown by various IO classes to indicate IOException without having to clutter the API with throws clauses
- */
-public class RuntimeIOException extends SAMException {
-    public RuntimeIOException() {
-    }
-
-    public RuntimeIOException(final String s) {
-        super(s);
-    }
-
-    public RuntimeIOException(final String s, final Throwable throwable) {
-        super(s, throwable);
-    }
-
-    public RuntimeIOException(final Throwable throwable) {
-        super(throwable);
-    }
-}
diff --git a/src/java/net/sf/samtools/util/SequenceUtil.java b/src/java/net/sf/samtools/util/SequenceUtil.java
deleted file mode 100644
index 6348eee..0000000
--- a/src/java/net/sf/samtools/util/SequenceUtil.java
+++ /dev/null
@@ -1,767 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.util;
-
-import net.sf.samtools.*;
-
-import java.io.File;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-public class SequenceUtil {
-    /** Byte typed variables for all normal bases. */
-    public static final byte a='a', c='c', g='g', t='t', n='n', A='A', C='C', G='G', T='T', N='N';
-
-    /**
-     * Calculate the reverse complement of the specified sequence
-     * (Stolen from Reseq)
-     *
-     * @param sequenceData
-     * @return reverse complement
-     */
-    public static String reverseComplement(final String sequenceData) {
-        final byte[] bases = net.sf.samtools.util.StringUtil.stringToBytes(sequenceData);
-        reverseComplement(bases);
-        return net.sf.samtools.util.StringUtil.bytesToString(bases);
-    }
-
-    /** Attempts to efficiently compare two bases stored as bytes for equality. */
-    public static boolean basesEqual(byte lhs, byte rhs) {
-        if (lhs == rhs) return true;
-        else {
-            if (lhs > 90) lhs -= 32;
-            if (rhs > 90) rhs -= 32;
-        }
-
-        return lhs == rhs;
-    }
-
-    /**
-     * returns true if the value of base represents a no call
-     */
-    public static boolean isNoCall(final byte base) {
-        return base == 'N' || base == 'n' || base == '.';
-    }
-
-    /** Returns true if the byte is in [acgtACGT]. */
-    public static boolean isValidBase(final byte b){
-        return b == a || b == A ||
-               b == c || b == C ||
-               b == g || b == G ||
-               b == t || b == T;
-    }
-
-    /** Calculates the fraction of bases that are G/C in the sequence. */
-    public static double calculateGc(final byte[] bases) {
-        int gcs = 0;
-        for (int i=0; i<bases.length; ++i) {
-            final byte b = bases[i];
-            if (b == 'C' || b == 'G' || b == 'c' || b == 'g') ++gcs;
-        }
-
-        return gcs / (double) bases.length;
-    }
-
-    /**
-     * Throws an exception only if both parameters are not null
-     * @param s1 a list of sequence headers
-     * @param s2 a second list of sequence headers
-     */
-    public static void assertSequenceListsEqual(final List<SAMSequenceRecord> s1, final List<SAMSequenceRecord> s2) {
-        if (s1 != null && s2 != null) {
-
-            if (s1.size() != s2.size()) {
-                throw new SequenceListsDifferException(
-                    "Sequence dictionaries are not the same size (" + s1.size() + ", " + s2.size() +
-                        ")");
-            }
-
-            for (int i = 0; i < s1.size(); ++i) {
-                if (!s1.get(i).isSameSequence(s2.get(i))) {
-                    String s1Attrs = "";
-                    for (final java.util.Map.Entry<String, String> entry : s1.get(i)
-                        .getAttributes()) {
-                        s1Attrs += "/" + entry.getKey() + "=" + entry.getValue();
-                    }
-                    String s2Attrs = "";
-                    for (final java.util.Map.Entry<String, String> entry : s2.get(i)
-                        .getAttributes()) {
-                        s2Attrs += "/" + entry.getKey() + "=" + entry.getValue();
-                    }
-                    throw new SequenceListsDifferException(
-                        "Sequences at index " + i + " don't match: " +
-                            s1.get(i).getSequenceIndex() + "/" + s1.get(i).getSequenceLength() +
-                            "/" + s1.get(i).getSequenceName() + s1Attrs + " " +
-                            s2.get(i).getSequenceIndex() + "/" + s2.get(i).getSequenceLength() +
-                            "/" + s2.get(i).getSequenceName() + s2Attrs);
-                }
-            }
-        }
-    }
-
-    public static class SequenceListsDifferException extends SAMException {
-        public SequenceListsDifferException() {
-        }
-
-        public SequenceListsDifferException(final String s) {
-            super(s);
-        }
-
-        public SequenceListsDifferException(final String s, final Throwable throwable) {
-            super(s, throwable);
-        }
-
-        public SequenceListsDifferException(final Throwable throwable) {
-            super(throwable);
-        }
-    }
-
-    /**
-     * Returns true if both parameters are null or equal, otherwise returns false
-     */
-    public static boolean areSequenceDictionariesEqual(final SAMSequenceDictionary s1, final SAMSequenceDictionary s2) {
-        if (s1 == null && s2 == null) return true;
-        if (s1 == null || s2 == null) return false;
-
-        try {
-            assertSequenceListsEqual(s1.getSequences(), s2.getSequences());
-            return true;
-        } catch (SequenceListsDifferException e) {
-            return false;
-        }
-    }
-
-    /**
-     * Throws an exception if both parameters are non-null and unequal.
-     */
-    public static void assertSequenceDictionariesEqual(final SAMSequenceDictionary s1, final SAMSequenceDictionary s2) {
-        if (s1 == null || s2 == null) return;
-        assertSequenceListsEqual(s1.getSequences(), s2.getSequences());
-    }
-
-    /**
-     * Throws an exception if both parameters are non-null and unequal, including the filenames.
-     */
-    public static void assertSequenceDictionariesEqual(final SAMSequenceDictionary s1, final SAMSequenceDictionary s2,
-                                                       final File f1, final File f2) {
-        try {
-            assertSequenceDictionariesEqual(s1, s2);
-        } catch (SequenceListsDifferException e) {
-            throw new SequenceListsDifferException("In files " + f1.getAbsolutePath() + " and " + f2.getAbsolutePath(), e);
-        }
-    }
-    /**
-     * Create a simple ungapped cigar string, which might have soft clipping at either end
-     * @param alignmentStart raw aligment start, which may result in read hanging off beginning or end of read
-     * @return cigar string that may have S operator at beginning or end, and has M operator for the rest of the read
-     */
-    public static String makeCigarStringWithPossibleClipping(final int alignmentStart, final int readLength, final int referenceSequenceLength) {
-        int start = alignmentStart;
-        int leftSoftClip = 0;
-        if (start < 1) {
-            leftSoftClip = 1 - start;
-            start = 1;
-        }
-        int rightSoftClip = 0;
-        if (alignmentStart + readLength > referenceSequenceLength + 1) {
-            rightSoftClip = alignmentStart + readLength - referenceSequenceLength - 1;
-        }
-        // CIGAR is trivial because there are no indels or clipping in Gerald
-        final int matchLength = readLength - leftSoftClip - rightSoftClip;
-        if (matchLength < 1) {
-            throw new SAMException("Unexpected cigar string with no M op for read.");
-        }
-        return makeSoftClipCigar(leftSoftClip) + Integer.toString(matchLength) + "M" + makeSoftClipCigar(rightSoftClip);
-    }
-
-    /**
-     * Create a cigar string for a gapped alignment, which may have soft clipping at either end
-     * @param alignmentStart raw alignment start, which may result in read hanging off beginning or end of read
-     * @param readLength
-     * @param referenceSequenceLength
-     * @param indelPosition number of matching bases before indel.  Must be > 0
-     * @param indelLength length of indel.  Positive for insertion, negative for deletion.
-     * @return cigar string that may have S operator at beginning or end, has one or two M operators, and an I or a D.
-     */
-    public static String makeCigarStringWithIndelPossibleClipping(final int alignmentStart,
-                                                                  final int readLength,
-                                                                  final int referenceSequenceLength,
-                                                                  final int indelPosition,
-                                                                  final int indelLength) {
-        int start = alignmentStart;
-        int leftSoftClip = 0;
-        if (start < 1) {
-            leftSoftClip = 1 - start;
-            start = 1;
-        }
-        int rightSoftClip = 0;
-        final int alignmentEnd = alignmentStart + readLength - indelLength;
-        if (alignmentEnd > referenceSequenceLength + 1) {
-            rightSoftClip = alignmentEnd - referenceSequenceLength - 1;
-        }
-        if (leftSoftClip >= indelPosition) {
-            throw new IllegalStateException("Soft clipping entire pre-indel match. leftSoftClip: " + leftSoftClip +
-            "; indelPosition: " + indelPosition);
-        }
-        // CIGAR is trivial because there are no indels or clipping in Gerald
-        final int firstMatchLength = indelPosition - leftSoftClip;
-        final int secondMatchLength = readLength - indelPosition - (indelLength > 0? indelLength: 0) - rightSoftClip;
-        if (secondMatchLength < 1) {
-            throw new SAMException("Unexpected cigar string with no M op for read.");
-        }
-        return makeSoftClipCigar(leftSoftClip) + Integer.toString(firstMatchLength) + "M" +
-                Math.abs(indelLength) + (indelLength > 0? "I": "D") +
-                Integer.toString(secondMatchLength) + "M" +
-                makeSoftClipCigar(rightSoftClip);
-    }
-
-    public static String makeSoftClipCigar(final int clipLength) {
-        if (clipLength == 0) {
-            return "";
-        }
-        return Integer.toString(clipLength) + "S";
-    }
-
-    /** Calculates the number of mismatches between the read and the reference sequence provided. */
-    public static int countMismatches(final SAMRecord read, final byte[] referenceBases) {
-        return countMismatches(read, referenceBases, 0, false);
-    }
-
-    /** Calculates the number of mismatches between the read and the reference sequence provided. */
-    public static int countMismatches(final SAMRecord read, final byte[] referenceBases, final int referenceOffset) {
-        return countMismatches(read, referenceBases, referenceOffset, false);
-    }
-
-    /**
-     * Calculates the number of mismatches between the read and the reference sequence provided.
-     *
-     * @param referenceBases Array of ASCII bytes that covers at least the the portion of the reference sequence
-     * to which read is aligned from getReferenceStart to getReferenceEnd.
-     * @param referenceOffset 0-based offset of the first element of referenceBases relative to the start
-     * of that reference sequence.
-     * @param bisulfiteSequence If this is true, it is assumed that the reads were bisulfite treated
-     *      and C->T on the positive strand and G->A on the negative strand will not be counted
-     *      as mismatches.
-     */
-    public static int countMismatches(final SAMRecord read, final byte[] referenceBases, final int referenceOffset,
-                                      final boolean bisulfiteSequence) {
-        try {
-            int mismatches = 0;
-
-            final byte[] readBases = read.getReadBases();
-
-            for (final AlignmentBlock block : read.getAlignmentBlocks()) {
-                final int readBlockStart = block.getReadStart() - 1;
-                final int referenceBlockStart = block.getReferenceStart() - 1 - referenceOffset;
-                final int length = block.getLength();
-
-                for (int i=0; i<length; ++i) {
-                    if (!bisulfiteSequence) {
-                        if (!basesEqual(readBases[readBlockStart+i], referenceBases[referenceBlockStart+i])) {
-                            ++mismatches;
-                        }
-                    }
-                    else {
-                        if (!bisulfiteBasesEqual(read.getReadNegativeStrandFlag(), readBases[readBlockStart+i],
-                                referenceBases[referenceBlockStart+i])) {
-                            ++mismatches;
-                        }
-                    }
-                }
-            }
-            return mismatches;
-        } catch (Exception e) {
-            throw new SAMException("Exception counting mismatches for read " + read, e);
-        }
-    }
-
-    /**
-     * Calculates the number of mismatches between the read and the reference sequence provided.
-     *
-     * @param referenceBases Array of ASCII bytes that covers at least the the portion of the reference sequence
-     * to which read is aligned from getReferenceStart to getReferenceEnd.
-     * @param bisulfiteSequence If this is true, it is assumed that the reads were bisulfite treated
-     *      and C->T on the positive strand and G->A on the negative strand will not be counted
-     *      as mismatches.
-     */
-    public static int countMismatches(final SAMRecord read, final byte[] referenceBases, final boolean bisulfiteSequence) {
-        return countMismatches(read, referenceBases, 0, bisulfiteSequence);
-    }
-
-    /**
-     * Sadly, this is a duplicate of the method above, except that it takes char[] for referenceBases rather
-     * than byte[].  This is because GATK needs it this way.
-     *
-     * TODO: Remove this method when GATK map method is changed to take refseq as byte[].
-     */
-    private static int countMismatches(final SAMRecord read, final char[] referenceBases, final int referenceOffset) {
-        int mismatches = 0;
-
-        final byte[] readBases = read.getReadBases();
-
-        for (final AlignmentBlock block : read.getAlignmentBlocks()) {
-            final int readBlockStart = block.getReadStart() - 1;
-            final int referenceBlockStart = block.getReferenceStart() - 1 - referenceOffset;
-            final int length = block.getLength();
-
-            for (int i=0; i<length; ++i) {
-                if (!basesEqual(readBases[readBlockStart+i], StringUtil.charToByte(referenceBases[referenceBlockStart+i]))) {
-                    ++mismatches;
-                }
-            }
-        }
-        return mismatches;
-    }
-
-    /**
-     * Calculates the sum of qualities for mismatched bases in the read.
-     * @param referenceBases Array of ASCII bytes in which the 0th position in the array corresponds
-     * to the first element of the reference sequence to which read is aligned. 
-     */
-    public static int sumQualitiesOfMismatches(final SAMRecord read, final byte[] referenceBases) {
-        return sumQualitiesOfMismatches(read, referenceBases, 0, false);
-    }
-
-    /**
-     * Calculates the sum of qualities for mismatched bases in the read.
-     * @param referenceBases Array of ASCII bytes that covers at least the the portion of the reference sequence
-     * to which read is aligned from getReferenceStart to getReferenceEnd.
-     * @param referenceOffset 0-based offset of the first element of referenceBases relative to the start
-     * of that reference sequence.
-     */
-    public static int sumQualitiesOfMismatches(final SAMRecord read, final byte[] referenceBases,
-                                               final int referenceOffset) {
-        return sumQualitiesOfMismatches(read, referenceBases, referenceOffset, false);
-    }
-
-    /**
-     * Calculates the sum of qualities for mismatched bases in the read.
-     * @param referenceBases Array of ASCII bytes that covers at least the the portion of the reference sequence
-     * to which read is aligned from getReferenceStart to getReferenceEnd.
-     * @param referenceOffset 0-based offset of the first element of referenceBases relative to the start
-     * of that reference sequence. 
-     * @param bisulfiteSequence If this is true, it is assumed that the reads were bisulfite treated
-     *      and C->T on the positive strand and G->A on the negative strand will not be counted
-     *      as mismatches.
-     */
-    public static int sumQualitiesOfMismatches(final SAMRecord read, final byte[] referenceBases,
-                                               final int referenceOffset, final boolean bisulfiteSequence) {
-        int qualities = 0;
-
-        final byte[] readBases = read.getReadBases();
-        final byte[] readQualities = read.getBaseQualities();
-
-        if (read.getAlignmentStart() <= referenceOffset) {
-            throw new IllegalArgumentException("read.getAlignmentStart(" + read.getAlignmentStart() +
-                    ") <= referenceOffset(" + referenceOffset + ")");
-        }
-
-        for (final AlignmentBlock block : read.getAlignmentBlocks()) {
-            final int readBlockStart = block.getReadStart() - 1;
-            final int referenceBlockStart = block.getReferenceStart() - 1 - referenceOffset;
-            final int length = block.getLength();
-
-            for (int i=0; i<length; ++i) {
-                if (!bisulfiteSequence) {
-                    if (!basesEqual(readBases[readBlockStart+i], referenceBases[referenceBlockStart+i])) {
-                        qualities += readQualities[readBlockStart+i];
-                    }
-
-                }
-                else {
-                    if (!bisulfiteBasesEqual(read.getReadNegativeStrandFlag(), readBases[readBlockStart+i],
-                            referenceBases[referenceBlockStart+i])) {
-                        qualities += readQualities[readBlockStart+i];
-                    }
-                }
-            }
-        }
-
-        return qualities;
-    }
-
-    /**
-     * Sadly, this is a duplicate of the method above, except that it takes char[] for referenceBases rather
-     * than byte[].  This is because GATK needs it this way.
-     *
-     * TODO: Remove this method when GATK map method is changed to take refseq as byte[].
-     */
-    public static int sumQualitiesOfMismatches(final SAMRecord read, final char[] referenceBases,
-                                               final int referenceOffset) {
-        int qualities = 0;
-
-        final byte[] readBases = read.getReadBases();
-        final byte[] readQualities = read.getBaseQualities();
-
-        if (read.getAlignmentStart() <= referenceOffset) {
-            throw new IllegalArgumentException("read.getAlignmentStart(" + read.getAlignmentStart() +
-                    ") <= referenceOffset(" + referenceOffset + ")");
-        }
-
-        for (final AlignmentBlock block : read.getAlignmentBlocks()) {
-            final int readBlockStart = block.getReadStart() - 1;
-            final int referenceBlockStart = block.getReferenceStart() - 1 - referenceOffset;
-            final int length = block.getLength();
-
-            for (int i=0; i<length; ++i) {
-                if (!basesEqual(readBases[readBlockStart+i], StringUtil.charToByte(referenceBases[referenceBlockStart+i]))) {
-                    qualities += readQualities[readBlockStart+i];
-                }
-            }
-        }
-
-        return qualities;
-    }
-
-    public static int countInsertedBases(final Cigar cigar) {
-        int ret = 0;
-        for (final CigarElement element : cigar.getCigarElements()) {
-            if (element.getOperator() == CigarOperator.INSERTION) ret += element.getLength();
-        }
-        return ret;
-    }
-
-    public static int countDeletedBases(final Cigar cigar) {
-        int ret = 0;
-        for (final CigarElement element : cigar.getCigarElements()) {
-            if (element.getOperator() == CigarOperator.DELETION) ret += element.getLength();
-        }
-        return ret;
-    }
-
-    public static int countInsertedBases(final SAMRecord read) {
-        return countInsertedBases(read.getCigar());
-    }
-
-    public static int countDeletedBases(final SAMRecord read) {
-        return countDeletedBases(read.getCigar());
-    }
-
-    /**
-     * Calculates the for the predefined NM tag from the SAM spec. To the result of
-     * countMismatches() it adds 1 for each indel.
-     */
-    public static int calculateSamNmTag(final SAMRecord read, final byte[] referenceBases) {
-        return calculateSamNmTag(read, referenceBases, 0, false);
-    }
-
-    /**
-     * Calculates the for the predefined NM tag from the SAM spec. To the result of
-     * countMismatches() it adds 1 for each indel.
-
-     * @param referenceOffset 0-based offset of the first element of referenceBases relative to the start
-     * of that reference sequence.
-     */
-    public static int calculateSamNmTag(final SAMRecord read, final byte[] referenceBases,
-                                        final int referenceOffset) {
-        return calculateSamNmTag(read, referenceBases, referenceOffset, false);
-    }
-
-    /**
-     * Calculates the for the predefined NM tag from the SAM spec. To the result of
-     * countMismatches() it adds 1 for each indel.
-
-     * @param referenceOffset 0-based offset of the first element of referenceBases relative to the start
-     * of that reference sequence.
-     * @param bisulfiteSequence If this is true, it is assumed that the reads were bisulfite treated
-     *      and C->T on the positive strand and G->A on the negative strand will not be counted
-     *      as mismatches.
-     */
-    public static int calculateSamNmTag(final SAMRecord read, final byte[] referenceBases,
-                                        final int referenceOffset, final boolean bisulfiteSequence) {
-        int samNm = countMismatches(read, referenceBases, referenceOffset, bisulfiteSequence);
-        for (final CigarElement el : read.getCigar().getCigarElements()) {
-            if (el.getOperator() == CigarOperator.INSERTION || el.getOperator() == CigarOperator.DELETION) {
-                samNm += el.getLength();
-            }
-        }
-        return samNm;
-    }
-
-    /**
-     * Sadly, this is a duplicate of the method above, except that it takes char[] for referenceBases rather
-     * than byte[].  This is because GATK needs it this way.
-     *
-     * TODO: Remove this method when GATK map method is changed to take refseq as byte[].
-     */
-    public static int calculateSamNmTag(final SAMRecord read, final char[] referenceBases,
-                                               final int referenceOffset) {
-        int samNm = countMismatches(read, referenceBases, referenceOffset);
-        for (final CigarElement el : read.getCigar().getCigarElements()) {
-            if (el.getOperator() == CigarOperator.INSERTION || el.getOperator() == CigarOperator.DELETION) {
-                samNm += el.getLength();
-            }
-        }
-        return samNm;
-    }
-
-    /** Returns the complement of a single byte. */
-    public static byte complement(final byte b) {
-        switch (b) {
-            case a: return t;
-            case c: return g;
-            case g: return c;
-            case t: return a;
-            case A: return T;
-            case C: return G;
-            case G: return C;
-            case T: return A;
-            default: return b;
-        }
-    }
-
-    /** Reverses and complements the bases in place. */
-    public static void reverseComplement(final byte[] bases) {
-        final int lastIndex = bases.length - 1;
-
-        int i, j;
-        for (i=0, j=lastIndex; i<j; ++i, --j) {
-            final byte tmp = complement(bases[i]);
-            bases[i] = complement(bases[j]);
-            bases[j] = tmp;
-        }
-        if (bases.length % 2 == 1) {
-            bases[i] = complement(bases[i]);
-        }
-    }
-
-    
-    /** Reverses the quals in place. */
-    public static void reverseQualities(final byte[] quals) {
-		final int lastIndex = quals.length - 1;
-
-		int i, j;
-		for (i=0, j=lastIndex; i<j; ++i, --j) {
-			final byte tmp = quals[i];
-			quals[i] = quals[j];
-			quals[j] = tmp;
-		}
-	}
-    
-    /** Returns true if the bases are equal OR if the mismatch cannot be accounted for by
-     * bisfulite treatment.  C->T on the positive strand and G->A on the negative strand
-     * do not count as mismatches */
-    public static boolean bisulfiteBasesEqual(final boolean negativeStrand, final byte read, final byte reference) {
-		return (basesEqual(read, reference)) || (isBisulfiteConverted(read, reference, negativeStrand));
-    }
-
-	public static boolean bisulfiteBasesEqual(final byte read, final byte reference) {
-		return bisulfiteBasesEqual(false, read, reference);
-	}
-
-	/**
-	 * Checks for bisulfite conversion, C->T on the positive strand and G-> on the negative strand.
-	 */
-	public static boolean isBisulfiteConverted(final byte read, final byte reference, final boolean negativeStrand) {
-		if (negativeStrand) {
-			if (basesEqual(reference, G) && basesEqual(read, A)) {
-				return true;
-			}
-		}
-		else {
-			if (basesEqual(reference, C) && basesEqual(read, T)) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	public static boolean isBisulfiteConverted(final byte read, final byte reference) {
-		return isBisulfiteConverted(read, reference, false);
-	}
-
-	/*
-	 * Regexp for MD string.
-	 *
-	 * \G = end of previous match.
-	 * (?:[0-9]+) non-capturing (why non-capturing?) group of digits.  For this number of bases read matches reference.
-	 *  - or -
-	 * Single reference base for case in which reference differs from read.
-	 *  - or -
-	 * ^one or more reference bases that are deleted in read.
-	 *
-	 */
-    static final Pattern mdPat = Pattern.compile("\\G(?:([0-9]+)|([ACTGNactgn])|(\\^[ACTGNactgn]+))");
-
-    /**
-     * Produce reference bases from an aligned SAMRecord with MD string and Cigar.
-     * @param rec Must contain non-empty CIGAR and MD attribute.
-     * @param includeReferenceBasesForDeletions If true, include reference bases that are deleted in the read.
-     * This will make the returned array not line up with the read if there are deletions.
-     * @return References bases corresponding to the read.  If there is an insertion in the read, reference contains
-     * '-'.  If the read is soft-clipped, reference contains '0'.  If there is a skipped region and
-     * includeReferenceBasesForDeletions==true, reference will have Ns for the skipped region.
-     */
-    public static byte[] makeReferenceFromAlignment(final SAMRecord rec, final boolean includeReferenceBasesForDeletions) {
-        final String md = rec.getStringAttribute(SAMTag.MD.name());
-        if (md == null) {
-            throw new SAMException("Cannot create reference from SAMRecord with no MD tag, read: " + rec.getReadName());
-        }
-        // Not sure how long output will be, but it will be no longer than this.
-        int maxOutputLength = 0;
-        final Cigar cigar = rec.getCigar();
-        if (cigar == null) {
-            throw new SAMException("Cannot create reference from SAMRecord with no CIGAR, read: " + rec.getReadName());
-        }
-        for (final CigarElement cigarElement : cigar.getCigarElements()) {
-            maxOutputLength += cigarElement.getLength();
-        }
-        final byte[] ret = new byte[maxOutputLength];
-        int outIndex = 0;
-
-        final Matcher match = mdPat.matcher(md);
-        int curSeqPos = 0;
-
-        int savedBases = 0;
-        final byte[] seq = rec.getReadBases();
-        for (final CigarElement cigEl : cigar.getCigarElements())
-        {
-            final int cigElLen = cigEl.getLength();
-            final CigarOperator cigElOp = cigEl.getOperator();
-
-
-            if (cigElOp == CigarOperator.SKIPPED_REGION) {
-                // We've decided that MD tag will not contain bases for skipped regions, as they
-                // could be megabases long, so just put N in there if caller wants reference bases,
-                // otherwise ignore skipped regions.
-                if (includeReferenceBasesForDeletions) {
-                    for (int i = 0; i < cigElLen; ++i) {
-                    ret[outIndex++] = N;
-                    }
-                }
-            }
-            // If it consumes reference bases, it's either a match or a deletion in the sequence
-            // read.  Either way, we're going to need to parse through the MD.
-            else if (cigElOp.consumesReferenceBases()) {
-                // We have a match region, go through the MD
-                int basesMatched = 0;
-
-                // Do we have any saved matched bases?
-                while ((savedBases>0) && (basesMatched < cigElLen))
-                {
-                    ret[outIndex++] = seq[curSeqPos++];
-                    savedBases--;
-                    basesMatched++;
-                }
-
-                while (basesMatched < cigElLen)
-                {
-                    boolean matched = match.find();
-                    if (matched)
-                    {
-                        String mg;
-                        if ( ((mg = match.group(1)) !=null) && (mg.length() > 0) )
-                        {
-                            // It's a number , meaning a series of matches
-                            final int num = Integer.parseInt(mg);
-                            for (int i = 0; i < num; i++)
-                            {
-                                if (basesMatched<cigElLen)
-                                {
-                                    ret[outIndex++] = seq[curSeqPos++];
-                                }
-                                else
-                                {
-                                    savedBases++;
-                                }
-                                basesMatched++;
-                            }
-                        }
-
-                        else if ( ((mg = match.group(2)) !=null) && (mg.length() > 0) )
-                        {
-                            // It's a single nucleotide, meaning a mismatch
-                            if (basesMatched<cigElLen)
-                            {
-                                ret[outIndex++] = StringUtil.charToByte(mg.charAt(0));
-                                curSeqPos++;
-                            }
-                            else
-                            {
-                                throw new IllegalStateException("Should never happen.");
-                            }
-                            basesMatched++;
-                        }
-                        else if ( ((mg = match.group(3)) !=null) && (mg.length() > 0) )
-                        {
-                            // It's a deletion, starting with a caret
-                            // don't include caret
-                            if (includeReferenceBasesForDeletions) {
-                                final byte[] deletedBases = StringUtil.stringToBytes(mg);
-                                System.arraycopy(deletedBases, 1, ret, outIndex, deletedBases.length - 1);
-                                outIndex += deletedBases.length - 1;
-                            }
-                            basesMatched += mg.length() - 1;
-
-                            // Check just to make sure.
-                            if (basesMatched != cigElLen)
-                            {
-                                throw new SAMException("Got a deletion in CIGAR (" + cigar + ", deletion " + cigElLen +
-                                        " length) with an unequal ref insertion in MD (" + md + ", md " + basesMatched + " length");
-                            }
-                            if (cigElOp != CigarOperator.DELETION)
-                            {
-                                throw new SAMException ("Got an insertion in MD ("+md+") without a corresponding deletion in cigar ("+cigar+")");
-                            }
-
-                        }
-                        else
-                        {
-                            matched = false;
-                        }
-                    }
-
-                    if (!matched)
-                    {
-                        throw new SAMException("Illegal MD pattern: " + md + " for read " + rec.getReadName() +
-                                " with CIGAR " + rec.getCigarString());
-                    }
-                }
-
-            }
-            else if (cigElOp.consumesReadBases())
-            {
-                // We have an insertion in read
-                for (int i = 0; i < cigElLen; i++)
-                {
-                    final char c = (cigElOp == CigarOperator.SOFT_CLIP) ? '0' : '-';
-                    ret[outIndex++] =  StringUtil.charToByte(c);
-                    curSeqPos++;
-                }
-            }
-            else
-            {
-                // It's an op that consumes neither read nor reference bases.  Do we just ignore??
-            }
-
-        }
-        if (outIndex < ret.length) {
-            final byte[] shorter = new byte[outIndex];
-            System.arraycopy(ret, 0, shorter, 0, outIndex);
-            return shorter;
-        }
-        return ret;
-    }
-}
diff --git a/src/java/net/sf/samtools/util/SnappyLoader.java b/src/java/net/sf/samtools/util/SnappyLoader.java
deleted file mode 100644
index 8b1dfc0..0000000
--- a/src/java/net/sf/samtools/util/SnappyLoader.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.util;
-
-import net.sf.samtools.SAMException;
-import org.xerial.snappy.LoadSnappy;
-import org.xerial.snappy.SnappyInputStream;
-
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.lang.reflect.Constructor;
-
-/**
- * If Snappy is available, obtain single-arg ctors for SnappyInputStream and SnappyOutputStream.
- */
-public class SnappyLoader {
-    private static final int SNAPPY_BLOCK_SIZE = 32768;  // keep this as small as can be without hurting compression ratio.
-    private final Constructor<InputStream> SnappyInputStreamCtor;
-    private final Constructor<OutputStream> SnappyOutputStreamCtor;
-    public final boolean SnappyAvailable;
-
-    // Force Snappy-java code to be loaded into executable jars.
-    private final SnappyInputStream ignoreMe = null;
-
-    // Force bcel to load Snappy.
-    //private static final Class SnappyClass = SnappyInputStream.class;
-
-    private static final boolean DefaultVerbosity = Boolean.valueOf(System.getProperty("snappy.loader.verbosity", "false"));
-
-    public SnappyLoader() {
-        this(DefaultVerbosity);
-    }
-
-    /**
-     * Constructs a new SnappyLoader which will check to see if snappy is available in the JVM/library path.
-     * @param verbose if true output a small number of debug messages to System.err
-     */
-    public SnappyLoader(final boolean verbose) {
-        Constructor<InputStream> inputStreamCtor = null;
-        Constructor<OutputStream> outputStreamCtor = null;
-        Class<Error> snappyErrorClass = null;
-
-        if (java.lang.Boolean.valueOf(System.getProperty("snappy.disable", "false"))) {
-            System.err.println("Snappy is disabled via system property.");
-        }
-        else {
-            try {
-                final Class<InputStream> snappyInputStreamClass = (Class<InputStream>)Class.forName("org.xerial.snappy.SnappyInputStream");
-                final Class<OutputStream> snappyOutputStreamClass = (Class<OutputStream>)Class.forName("org.xerial.snappy.SnappyOutputStream");
-                snappyErrorClass = (Class<Error>)Class.forName("org.xerial.snappy.SnappyError");
-                inputStreamCtor = snappyInputStreamClass.getConstructor(InputStream.class);
-                outputStreamCtor = snappyOutputStreamClass.getConstructor(OutputStream.class, Integer.TYPE);
-            }
-            catch (NoSuchMethodException e) { /* Do nothing. */ }
-            catch (ClassNotFoundException e) { /* Do nothing. */ }
-        }
-
-        this.SnappyInputStreamCtor = inputStreamCtor;
-        this.SnappyOutputStreamCtor = outputStreamCtor;
-
-        if (this.SnappyInputStreamCtor != null && this.SnappyOutputStreamCtor != null) {
-            // Don't try to call any Snappy code until classes have been found via reflection above.
-            boolean tmpSnappyAvailable;
-            try {
-                if (!LoadSnappy.load()) {
-                    if (verbose) System.err.println("Snappy dll failed to load.");
-                    tmpSnappyAvailable = false;
-                }
-                else {
-                    if (verbose) System.err.println("Snappy stream classes loaded.");
-                    tmpSnappyAvailable = true;
-                }
-            } catch (Error e) {
-                if (e.getClass().equals(snappyErrorClass)) {
-                    if (verbose) System.err.println("Snappy dll failed to load: " + e.getMessage());
-                    tmpSnappyAvailable = false;
-                } else {
-                    throw e;
-                }
-            }
-            SnappyAvailable = tmpSnappyAvailable;
-        }
-        else {
-            if (verbose) System.err.println("Snappy stream classes not loaded.");
-            SnappyAvailable = false;
-        }
-    }
-
-    /** Wrap an InputStream in a SnappyInputStream. If Snappy is not available will throw an exception. */
-    public InputStream wrapInputStream(final InputStream inputStream) {
-        try {
-            return SnappyInputStreamCtor.newInstance(inputStream);
-        } catch (Exception e) {
-            throw new SAMException("Error instantiating SnappyInputStream", e);
-        }
-    }
-
-    /** Wrap an InputStream in a SnappyInputStream. If Snappy is not available will throw an exception. */
-    public OutputStream wrapOutputStream(final OutputStream outputStream) {
-        try {
-            return SnappyOutputStreamCtor.newInstance(outputStream, SNAPPY_BLOCK_SIZE);
-        } catch (Exception e) {
-            throw new SAMException("Error instantiating SnappyOutputStream", e);
-        }
-    }
-}
diff --git a/src/java/net/sf/samtools/util/SortingCollection.java b/src/java/net/sf/samtools/util/SortingCollection.java
deleted file mode 100644
index 4162b04..0000000
--- a/src/java/net/sf/samtools/util/SortingCollection.java
+++ /dev/null
@@ -1,517 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.util;
-
-import net.sf.samtools.Defaults;
-
-import java.io.*;
-import java.lang.reflect.Array;
-import java.util.*;
-
-/**
- * Collection to which many records can be added.  After all records are added, the collection can be
- * iterated, and the records will be returned in order defined by the comparator.  Records may be spilled
- * to a temporary directory if there are more records added than will fit in memory.  As a result of this,
- * the objects returned may not be identical to the objects added to the collection, but they should be
- * equal as determined by the codec used to write them to disk and read them back.
- *
- * When iterating over the collection, the number of file handles required is numRecordsInCollection/maxRecordsInRam.
- * If this becomes a limiting factor, a file handle cache could be added.
- *
- * If Snappy DLL is available and snappy.disable system property is not set to true, then Snappy is used
- * to compress temporary files.
- */
-public class SortingCollection<T> implements Iterable<T> {
-
-    /**
-     * Client must implement this class, which defines the way in which records are written to and
-     * read from file.
-     */
-    public interface Codec<T> extends Cloneable {
-        /**
-         * Where to write encoded output
-         * @param os
-         */
-        void setOutputStream(OutputStream os);
-
-        /**
-         * Where to read encoded input from
-         * @param is
-         */
-        void setInputStream(InputStream is);
-        /**
-         * Write object to output stream
-         * @param val what to write
-         */
-        void encode(T val);
-
-        /**
-         * Read the next record from the input stream and convert into a java object.
-         * @return null if no more records.  Should throw exception if EOF is encountered in the middle of
-         * a record.
-         */
-        T decode();
-
-        /**
-         * Must return a cloned copy of the codec that can be used independently of
-         * the original instance.  This is required so that multiple codecs can exist simultaneously
-         * that each is reading a separate file.
-         */
-        Codec<T> clone();
-    }
-
-    /** Directories where files of sorted records go. */
-    private final File[] tmpDirs;
-
-    /** The minimum amount of space free on a temp filesystem to write a file there. */
-    private final long TMP_SPACE_FREE = IOUtil.FIVE_GBS;
-
-    /**
-     * Used to write records to file, and used as a prototype to create codecs for reading.
-     */
-    private final SortingCollection.Codec<T> codec;
-
-    /**
-     * For sorting, both when spilling records to file, and merge sorting.
-     */
-    private final Comparator<T> comparator;
-    private final int maxRecordsInRam;
-    private int numRecordsInRam = 0;
-    private T[] ramRecords;
-    private boolean iterationStarted = false;
-    private boolean doneAdding = false;
-
-    /**
-     * Set to true when all temp files have been cleaned up
-     */
-    private boolean cleanedUp = false;
-
-    /**
-     * List of files in tmpDir containing sorted records
-     */
-    private final List<File> files = new ArrayList<File>();
-
-    private boolean destructiveIteration = true;
-
-    private TempStreamFactory tempStreamFactory = new TempStreamFactory();
-
-    /**
-     * Prepare to accumulate records to be sorted
-     * @param componentType Class of the record to be sorted.  Necessary because of Java generic lameness.
-     * @param codec For writing records to file and reading them back into RAM
-     * @param comparator Defines output sort order
-     * @param maxRecordsInRam how many records to accumulate before spilling to disk
-     * @param tmpDir Where to write files of records that will not fit in RAM
-     */
-    private SortingCollection(final Class<T> componentType, final SortingCollection.Codec<T> codec,
-                             final Comparator<T> comparator, final int maxRecordsInRam, final File... tmpDir) {
-        if (maxRecordsInRam <= 0) {
-            throw new IllegalArgumentException("maxRecordsInRam must be > 0");
-        }
-
-        if (tmpDir == null || tmpDir.length == 0) {
-            throw new IllegalArgumentException("At least one temp directory must be provided.");
-        }
-
-        this.tmpDirs = tmpDir;
-        this.codec = codec;
-        this.comparator = comparator;
-        this.maxRecordsInRam = maxRecordsInRam;
-        this.ramRecords = (T[])Array.newInstance(componentType, maxRecordsInRam);
-    }
-
-    public void add(final T rec) {
-        if (doneAdding) {
-            throw new IllegalStateException("Cannot add after calling doneAdding()");
-        }
-        if (iterationStarted) {
-            throw new IllegalStateException("Cannot add after calling iterator()");
-        }
-        if (numRecordsInRam == maxRecordsInRam) {
-            spillToDisk();
-        }
-        ramRecords[numRecordsInRam++] = rec;
-    }
-
-    /**
-     * This method can be called after caller is done adding to collection, in order to possibly free
-     * up memory.  If iterator() is called immediately after caller is done adding, this is not necessary,
-     * because iterator() triggers the same freeing.
-     */
-    public void doneAdding() {
-        if (this.cleanedUp) {
-            throw new IllegalStateException("Cannot call doneAdding() after cleanup() was called.");
-        }
-        if (doneAdding) {
-            return;
-        }
-
-        doneAdding = true;
-
-        if (this.files.isEmpty()) {
-            return;
-        }
-
-        if (this.numRecordsInRam > 0) {
-            spillToDisk();
-        }
-
-        // Facilitate GC
-        this.ramRecords = null;
-    }
-
-    /**
-     * @return True if this collection is allowed to discard data during iteration in order to reduce memory
-     * footprint, precluding a second iteration over the collection.
-     */
-    public boolean isDestructiveIteration() {
-        return destructiveIteration;
-    }
-
-    /**
-     * Tell this collection that it is allowed to discard data during iteration in order to reduce memory footprint,
-     * precluding a second iteration.  This is true by default.
-     */
-    public void setDestructiveIteration(boolean destructiveIteration) {
-        this.destructiveIteration = destructiveIteration;
-    }
-
-    /**
-     * Sort the records in memory, write them to a file, and clear the buffer of records in memory.
-     */
-    private void spillToDisk() {
-        try {
-            Arrays.sort(this.ramRecords, 0, this.numRecordsInRam, this.comparator);
-            final File f = newTempFile();
-            OutputStream os = null;
-            try {
-                os = tempStreamFactory.wrapTempOutputStream(new FileOutputStream(f), Defaults.BUFFER_SIZE);
-                this.codec.setOutputStream(os);
-                for (int i = 0; i < this.numRecordsInRam; ++i) {
-                    this.codec.encode(ramRecords[i]);
-                    // Facilitate GC
-                    this.ramRecords[i] = null;
-                }
-
-                os.flush();
-            } catch (RuntimeIOException ex) {
-                throw new RuntimeIOException("Problem writing temporary file " + f.getAbsolutePath() +
-                        ".  Try setting TMP_DIR to a file system with lots of space.", ex);
-            } finally {
-                if (os != null) {
-                    os.close();
-                }
-            }
-
-            this.numRecordsInRam = 0;
-            this.files.add(f);
-
-        }
-        catch (IOException e) {
-            throw new RuntimeIOException(e);
-        }
-    }
-
-    /**
-     * Creates a new tmp file on one of the available temp filesystems, registers it for deletion
-     * on JVM exit and then returns it.
-     */
-    private File newTempFile() throws IOException {
-        return IOUtil.newTempFile("sortingcollection.", ".tmp", this.tmpDirs, TMP_SPACE_FREE);
-    }
-
-    /**
-     * Prepare to iterate through the records in order.  This method may be called more than once,
-     * but add() may not be called after this method has been called.
-     */
-    public CloseableIterator<T> iterator() {
-        if (this.cleanedUp) {
-            throw new IllegalStateException("Cannot call iterator() after cleanup() was called.");
-        }
-        doneAdding();
-
-        this.iterationStarted = true;
-        if (this.files.isEmpty()) {
-            return new InMemoryIterator();
-        } else {
-            return new MergingIterator();
-        }
-    }
-
-    /**
-     * Delete any temporary files.  After this method is called, iterator() may not be called.
-     */
-    public void cleanup() {
-        this.iterationStarted = true;
-        this.cleanedUp = true;
-
-        IOUtil.deleteFiles(this.files);
-    }
-
-    /**
-     * Syntactic sugar around the ctor, to save some typing of type parameters
-     *
-     * @param componentType Class of the record to be sorted.  Necessary because of Java generic lameness.
-     * @param codec For writing records to file and reading them back into RAM
-     * @param comparator Defines output sort order
-     * @param maxRecordsInRAM how many records to accumulate in memory before spilling to disk
-     * @param tmpDir Where to write files of records that will not fit in RAM
-     */
-    public static <T> SortingCollection<T> newInstance(final Class<T> componentType,
-                                                       final SortingCollection.Codec<T> codec,
-                                                       final Comparator<T> comparator,
-                                                       final int maxRecordsInRAM,
-                                                       final File... tmpDir) {
-        return new SortingCollection<T>(componentType, codec, comparator, maxRecordsInRAM, tmpDir);
-
-    }
-
-    /**
-     * Syntactic sugar around the ctor, to save some typing of type parameters
-     *
-     * @param componentType Class of the record to be sorted.  Necessary because of Java generic lameness.
-     * @param codec For writing records to file and reading them back into RAM
-     * @param comparator Defines output sort order
-     * @param maxRecordsInRAM how many records to accumulate in memory before spilling to disk
-     * @param tmpDirs Where to write files of records that will not fit in RAM
-     */
-    public static <T> SortingCollection<T> newInstance(final Class<T> componentType,
-                                                       final SortingCollection.Codec<T> codec,
-                                                       final Comparator<T> comparator,
-                                                       final int maxRecordsInRAM,
-                                                       final Collection<File> tmpDirs) {
-        return new SortingCollection<T>(componentType,
-                                        codec,
-                                        comparator,
-                                        maxRecordsInRAM,
-                                        tmpDirs.toArray(new File[tmpDirs.size()]));
-
-    }
-
-
-    /**
-     * Syntactic sugar around the ctor, to save some typing of type parameters.  Writes files to java.io.tmpdir
-     *
-     * @param componentType Class of the record to be sorted.  Necessary because of Java generic lameness.
-     * @param codec For writing records to file and reading them back into RAM
-     * @param comparator Defines output sort order
-     * @param maxRecordsInRAM how many records to accumulate in memory before spilling to disk
-     */
-    public static <T> SortingCollection<T> newInstance(final Class<T> componentType,
-                                                       final SortingCollection.Codec<T> codec,
-                                                       final Comparator<T> comparator,
-                                                       final int maxRecordsInRAM) {
-
-        final File tmpDir = new File(System.getProperty("java.io.tmpdir"));
-        return new SortingCollection<T>(componentType, codec, comparator, maxRecordsInRAM, tmpDir);
-    }
-
-    /**
-     * For iteration when number of records added is less than the threshold for spilling to disk.
-     */
-    class InMemoryIterator implements CloseableIterator<T> {
-        private int iterationIndex = 0;
-
-        InMemoryIterator() {
-            Arrays.sort(SortingCollection.this.ramRecords,
-                        0,
-                        SortingCollection.this.numRecordsInRam,
-                        SortingCollection.this.comparator);
-        }
-
-        public void close() {
-            // nothing to do
-        }
-
-        public boolean hasNext() {
-            return this.iterationIndex < SortingCollection.this.numRecordsInRam;
-        }
-
-        public T next() {
-            if (!hasNext()) {
-                throw new NoSuchElementException();
-            }
-            T ret = SortingCollection.this.ramRecords[iterationIndex];
-            if (destructiveIteration) SortingCollection.this.ramRecords[iterationIndex] = null;
-            ++iterationIndex;
-            return ret;
-        }
-
-        public void remove() {
-            throw new UnsupportedOperationException();
-        }
-    }
-
-    /**
-     * For iteration when spilling to disk has occurred.
-     * Each file is has records in sort order within the file.
-     * This iterator automatically closes when it iterates to the end, but if not iterating
-     * to the end it is a good idea to call close().
-     *
-     * Algorithm: MergingIterator maintains a PriorityQueue of PeekFileRecordIterators.
-     * Each PeekFileRecordIterator iterates through a file in which the records are sorted.
-     * The comparator for PeekFileRecordIterator used by the PriorityQueue peeks at the next record from
-     * the file, so the first element in the PriorityQueue is the file that has the next record to be emitted.
-     * In order to get the next record, the first PeekFileRecordIterator in the PriorityQueue is popped,
-     * the record is obtained from that iterator, and then if that iterator is not empty, it is pushed back into
-     * the PriorityQueue.  Because it now has a different record as its next element, it may go into another
-     * location in the PriorityQueue
-     */
-    class MergingIterator implements CloseableIterator<T> {
-        private final PollableTreeSet<PeekFileRecordIterator> queue;
-
-        MergingIterator() {
-            this.queue = new PollableTreeSet<PeekFileRecordIterator>(new PeekFileRecordIteratorComparator());
-            int n = 0;
-            for (final File f : SortingCollection.this.files) {
-                final FileRecordIterator it = new FileRecordIterator(f);
-                if (it.hasNext()) {
-                    this.queue.add(new PeekFileRecordIterator(it, n++));
-                }
-                else {
-                    it.close();
-                }
-            }
-        }
-
-        public boolean hasNext() {
-            return !this.queue.isEmpty();
-        }
-
-        public T next() {
-            if (!hasNext()) {
-                throw new NoSuchElementException();
-            }
-
-            final PeekFileRecordIterator fileIterator = queue.poll();
-            final T ret = fileIterator.next();
-            if (fileIterator.hasNext()) {
-                this.queue.add(fileIterator);
-            }
-            else {
-                ((CloseableIterator<T>)fileIterator.getUnderlyingIterator()).close();
-            }
-
-            return ret;
-        }
-
-        public void remove() {
-            throw new UnsupportedOperationException();
-        }
-
-        public void close() {
-            while (!this.queue.isEmpty()) {
-                final PeekFileRecordIterator it = this.queue.poll();
-                ((CloseableIterator<T>)it.getUnderlyingIterator()).close();
-            }
-        }
-    }
-
-    /**
-     * Read a file of records in format defined by the codec
-     */
-    class FileRecordIterator implements CloseableIterator<T> {
-        private final File file;
-        private final FileInputStream is;
-        private final Codec<T> codec;
-        private T currentRecord = null;
-
-        FileRecordIterator(final File file) {
-            this.file = file;
-            try {
-                this.is = new FileInputStream(file);
-                this.codec = SortingCollection.this.codec.clone();
-                this.codec.setInputStream(tempStreamFactory.wrapTempInputStream(this.is, Defaults.BUFFER_SIZE));
-                advance();
-            }
-            catch (FileNotFoundException e) {
-                throw new RuntimeIOException(e);
-            }
-        }
-
-        public boolean hasNext() {
-            return this.currentRecord != null;
-        }
-
-        public T next() {
-            if (!hasNext()) {
-                throw new NoSuchElementException();
-            }
-            final T ret = this.currentRecord;
-            advance();
-            return ret;
-        }
-
-        public void remove() {
-            throw new UnsupportedOperationException();
-        }
-
-        private void advance() {
-            this.currentRecord = this.codec.decode();
-        }
-
-        public void close() {
-            CloserUtil.close(this.is);
-        }
-    }
-
-
-    /**
-     * Just a typedef
-     */
-    class PeekFileRecordIterator extends PeekIterator<T> {
-        final int n; // A serial number used for tie-breaking in the sort
-        PeekFileRecordIterator(final Iterator<T> underlyingIterator, final int n) {
-            super(underlyingIterator);
-            this.n = n;
-        }
-    }
-
-    class PeekFileRecordIteratorComparator implements Comparator<PeekFileRecordIterator> {
-
-        public int compare(final PeekFileRecordIterator lhs, final PeekFileRecordIterator rhs) {
-            final int result = comparator.compare(lhs.peek(), rhs.peek());
-            if (result == 0) return lhs.n - rhs.n;
-            else return result;
-        }
-    }
-
-    /** Little class that provides the Java 1.5 TreeSet with a poll() method */
-    static class PollableTreeSet<T> extends TreeSet<T> {
-        PollableTreeSet(final Comparator<? super T> comparator) {
-            super(comparator);
-        }
-
-        public T poll() {
-            if (isEmpty()) {
-                return null;
-            }
-            else {
-                final T t = first();
-                remove(t);
-                return t;
-            }
-        }
-    }
-}
diff --git a/src/java/net/sf/samtools/util/SortingLongCollection.java b/src/java/net/sf/samtools/util/SortingLongCollection.java
deleted file mode 100644
index 932f969..0000000
--- a/src/java/net/sf/samtools/util/SortingLongCollection.java
+++ /dev/null
@@ -1,338 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.util;
-
-import net.sf.samtools.Defaults;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Accumulate a list of longs that can then be sorted in natural order and iterated over.
- * If there are more values accumulated than a specified maximum, values are spilled to disk.
- *
- * Note that because this class returns primitive longs rather than Longs, it does not conform to
- * any of the Collection iteration interfaces.  Use as follows:
- *
- * 1. ctor
- * 2. call add() as many times as desired.
- * 3. call doneAddingStartIteration().
- * 4. call hasNext() and next() until exhausted or had enough.
- * 5. optionally call cleanup() to free space in temporary directory as soon as possible.
- *
- * If there are few enough values so that they all can be kept in RAM, then the array is sorted
- * and iterated over trivially.
- *
- * If there are more values that can fit in RAM, then values are sorted and written to a temp file when the max
- * number to be stored in RAM is reached. Multiple temp files are then merged during iteration via PriorityQueue.
- *
- * c.f. SortingCollection for more details.
- *
- * @author alecw at broadinstitute.org
- */
-public class SortingLongCollection {
-    public static final int SIZEOF = 8;
-    public static final int MAX_ITEMS_IN_RAM = (int)Math.floor((Integer.MAX_VALUE/8)*.999);
-
-    /**
-     * Where files of sorted values go.
-     */
-    private final File[] tmpDir;
-
-    private final int maxValuesInRam;
-    private int numValuesInRam = 0;
-    private long[] ramValues;
-
-
-    /**
-     * Set to true when done adding and ready to iterate
-     */
-    private boolean doneAdding = false;
-
-    /**
-     * Set to true when all temp files have been cleaned up
-     */
-    private boolean cleanedUp = false;
-
-    /**
-     * List of files in tmpDir containing sorted values
-     */
-    private final List<File> files = new ArrayList<File>();
-
-    // for in-memory iteration
-    private int iterationIndex = 0;
-
-    // For disk-based iteration
-    private PriorityQueue<PeekFileValueIterator> priorityQueue;
-
-    /**
-     * Prepare to accumulate values to be sorted
-     * @param maxValuesInRam how many values to accumulate before spilling to disk
-     * @param tmpDir Where to write files of values that will not fit in RAM
-     */
-    public SortingLongCollection(final int maxValuesInRam, final File... tmpDir) {
-        if (maxValuesInRam <= 0) {
-            throw new IllegalArgumentException("maxValuesInRam must be > 0");
-        }
-        this.tmpDir = tmpDir;
-        this.maxValuesInRam = Math.min(maxValuesInRam, MAX_ITEMS_IN_RAM);
-        this.ramValues = new long[maxValuesInRam];
-    }
-
-    /**
-     * Add a value to the collection.
-     * @param value
-     */
-    public void add(final long value) {
-        if (doneAdding) {
-            throw new IllegalStateException("Cannot add after calling doneAddingStartIteration()");
-        }
-        if (numValuesInRam == maxValuesInRam) {
-            spillToDisk();
-        }
-        ramValues[numValuesInRam++] = value;
-    }
-
-    /**
-     * This method must be called after done adding, and before calling hasNext() or next().
-     */
-    public void doneAddingStartIteration() {
-        if (cleanedUp || doneAdding) {
-            throw new IllegalStateException("Cannot call doneAddingStartIteration() after cleanup() was called.");
-        }
-        doneAdding = true;
-
-        if (this.files.isEmpty()) {
-            Arrays.sort(this.ramValues, 0, this.numValuesInRam);
-            return;
-        }
-
-        if (this.numValuesInRam > 0) {
-            spillToDisk();
-        }
-
-        this.priorityQueue = new PriorityQueue<PeekFileValueIterator>(files.size(),
-                                                                       new PeekFileValueIteratorComparator());
-        for (final File f : files) {
-            final FileValueIterator it = new FileValueIterator(f);
-            if (it.hasNext()) {
-                this.priorityQueue.offer(new PeekFileValueIterator(it));
-            }
-        }
-
-        // Facilitate GC
-        this.ramValues = null;
-    }
-
-    /**
-     * Sort the values in memory, write them to a file, and clear the buffer of values in memory.
-     */
-    private void spillToDisk() {
-
-        try {
-            Arrays.sort(this.ramValues, 0, this.numValuesInRam);
-            final File f = IOUtil.newTempFile("sortingcollection.", ".tmp", this.tmpDir, IOUtil.FIVE_GBS);
-            DataOutputStream os = null;
-            try {
-                final long numBytes = this.numValuesInRam * SIZEOF;
-                os = new DataOutputStream(IOUtil.maybeBufferOutputStream(new FileOutputStream(f)));
-                f.deleteOnExit();
-                for (int i = 0; i < this.numValuesInRam; ++i) {
-                    os.writeLong(ramValues[i]);
-                }
-                os.flush();
-            }
-            finally {
-                if (os != null) {
-                    os.close();
-                }
-            }
-
-            this.numValuesInRam = 0;
-            this.files.add(f);
-
-        }
-        catch (IOException e) {
-            throw new RuntimeIOException(e);
-        }
-    }
-
-    /**
-     * Delete any temporary files.  After this method is called, no other method calls should be made on this object.
-     */
-    public void cleanup() {
-        this.doneAdding = true;
-        this.cleanedUp = true;
-        this.ramValues = null;
-
-        IOUtil.deleteFiles(this.files);
-    }
-
-
-    /**
-     * Call only after doneAddingStartIteration() has been called.
-     *
-     * @return true if there is another value to be gotten.
-     */
-    public boolean hasNext() {
-        if (!doneAdding || cleanedUp) {
-            throw new IllegalStateException();
-        }
-        if (this.ramValues != null) {
-            // in-memory iteration
-            return this.iterationIndex < numValuesInRam;
-        } else {
-            return !priorityQueue.isEmpty();
-        }
-    }
-
-    /**
-     * Call only if hasNext() == true.
-     * @return next value from collection, in natural sort order.
-     */
-    public long next() {
-        if (!hasNext()) {
-            throw new NoSuchElementException();
-        }
-        if (this.ramValues != null) {
-            // in-memory iteration
-            return ramValues[iterationIndex++];
-        } else {
-
-            final PeekFileValueIterator fileIterator = priorityQueue.poll();
-            final long ret = fileIterator.next();
-            if (fileIterator.hasNext()) {
-                this.priorityQueue.offer(fileIterator);
-            } else {
-                fileIterator.close();
-            }
-            return ret;
-        }
-    }
-
-    /**
-     * Read a file of longs
-     */
-    private static class FileValueIterator {
-        private final File file;
-        private final DataInputStream is;
-        private long currentRecord = 0;
-        private boolean isCurrentRecord = true;
-
-        FileValueIterator(final File file) {
-            this.file = file;
-            try {
-                is = new DataInputStream(IOUtil.maybeBufferInputStream(new FileInputStream(file)));
-                next();
-            }
-            catch (FileNotFoundException e) {
-                throw new RuntimeIOException(file.getAbsolutePath(), e);
-            }
-        }
-
-        boolean hasNext() {
-            return isCurrentRecord;
-        }
-
-        long next() {
-            if (!hasNext()) {
-                throw new NoSuchElementException();
-            }
-            final long ret = currentRecord;
-            try {
-                currentRecord = is.readLong();
-            } catch (EOFException eof) {
-                isCurrentRecord = false;
-                currentRecord = 0;
-            } catch(IOException e) {
-                throw new RuntimeException(e);
-            }
-            return ret;
-        }
-
-        void close() {
-            CloserUtil.close(is);
-            IOUtil.deleteFiles(file);
-        }
-    }
-
-
-    /**
-     * Add peek() functionality to FileValueIterator
-     */
-    private static class PeekFileValueIterator {
-        private FileValueIterator underlyingIterator;
-        private long peekValue;
-        private boolean hasPeekedValue = false;
-
-        PeekFileValueIterator(final FileValueIterator underlyingIterator) {
-            this.underlyingIterator = underlyingIterator;
-        }
-
-        boolean hasNext() {
-            return hasPeekedValue || underlyingIterator.hasNext();
-        }
-
-        long next() {
-            if (!hasNext()) {
-                throw new NoSuchElementException();
-            }
-            if (hasPeekedValue) {
-                hasPeekedValue = false;
-                return peekValue;
-            }
-            return underlyingIterator.next();
-        }
-
-        long peek() {
-            if (!hasNext()) {
-                throw new NoSuchElementException();
-            }
-            if (!hasPeekedValue) {
-                peekValue = underlyingIterator.next();
-                hasPeekedValue = true;
-            }
-            return peekValue;
-        }
-
-        void close() {
-            underlyingIterator.close();
-            hasPeekedValue = false;
-            underlyingIterator = null;
-        }
-    }
-
-    private static class PeekFileValueIteratorComparator implements Comparator<PeekFileValueIterator> {
-
-        public int compare(final PeekFileValueIterator it1, final PeekFileValueIterator it2) {
-            if (it1.peek() < it2.peek()) {
-                return -1;
-            }
-            if (it1.peek() == it2.peek()) {
-                return 0;
-            }
-            return 1;
-        }
-    }
-}
diff --git a/src/java/net/sf/samtools/util/StopWatch.java b/src/java/net/sf/samtools/util/StopWatch.java
deleted file mode 100644
index 603aba7..0000000
--- a/src/java/net/sf/samtools/util/StopWatch.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.util;
-
-/**
- * Utility to help in performance testing.
- */
-public class StopWatch {
-
-    private long startTime = 0;
-    private long elapsedTime = 0;
-    private boolean running = false;
-
-
-    public void start() {
-        this.startTime = System.currentTimeMillis();
-        this.running = true;
-    }
-
-
-    public void stop() {
-        long stopTime = System.currentTimeMillis();
-        elapsedTime += stopTime - startTime;
-        this.running = false;
-    }
-
-    public void reset() {
-        stop();
-        elapsedTime = 0;
-        startTime = 0;
-    }
-
-    /**
-     * Returns the cumulative time between all the start() and stop() calls made to this object.  If the
-     * StopWatch is currently running, also includes the time between the most recent start() and now.
-     * @return elapsedTime in milliseconds
-     */
-    public long getElapsedTime() {
-        final long currentElapsed;
-        if (running) {
-             currentElapsed = (System.currentTimeMillis() - startTime);
-        } else {
-            currentElapsed = 0;
-        }
-        return currentElapsed + elapsedTime;
-    }
-
-
-    /**
-     * @return same as getElapsedTime(), but truncated to seconds.
-     */
-    public long getElapsedTimeSecs() {
-        return getElapsedTime() / 1000;
-    }
-}
diff --git a/src/java/net/sf/samtools/util/StringLineReader.java b/src/java/net/sf/samtools/util/StringLineReader.java
deleted file mode 100644
index a7e240c..0000000
--- a/src/java/net/sf/samtools/util/StringLineReader.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.util;
-
-import java.util.regex.Pattern;
-
-/**
- * Implementation of LineReader that gets its input from a String.  No charset conversion
- * is necessary because the String is in unicode.  Handles CR, LF or CRLF line termination,
- * but if asked to return the line terminator, it always comes back as LF.
- */
-public class StringLineReader implements LineReader {
-    private static final Pattern CRLF = Pattern.compile("\r\n");
-    private final String theString;
-    private int curPos = 0;
-    private int lineNumber = 0;
-
-    public StringLineReader(final String s) {
-        // Simplify later processing by replacing crlf with just lf, and replacing solo cr with lf.
-        // Note that String.replace(String, String) causes a regex to be used, so precompilation should be
-        // the best we can do short of handling the string directly.
-        this.theString = CRLF.matcher(s).replaceAll("\n").replace('\r', '\n');
-    }
-
-    /**
-     * Read a line and remove the line terminator
-     */
-    public String readLine() {
-        return readLine(false);
-    }
-
-    /**
-     * Read a line and optionally include the line terminator
-     *
-     * @param includeTerminators
-     * @return the next line from the input, with \n terminator if present and requested, or null if no more input.
-     */
-    private String readLine(final boolean includeTerminators) {
-        if (curPos == theString.length()) {
-            return null;
-        }
-        final int nextLfIndex = theString.indexOf('\n', curPos);
-        if (nextLfIndex == -1) {
-            final int startPos = curPos;
-            curPos = theString.length();
-            ++lineNumber;
-            return theString.substring(startPos);
-        }
-        final int startPos = curPos;
-        final int endPos = nextLfIndex + (includeTerminators? 1: 0);
-        curPos = nextLfIndex + 1;
-        ++lineNumber;
-        return theString.substring(startPos, endPos);
-    }
-
-    /**
-     * @return 1-based number of line most recently read
-     */
-    public int getLineNumber() {
-        return lineNumber;
-    }
-
-    /**
-     * Non-destructive one-character look-ahead.
-     *
-     * @return If not eof, the next character that would be read.  If eof, -1.
-     */
-    public int peek() {
-        if (curPos == theString.length()) {
-            return -1;
-        }
-        return theString.charAt(curPos);
-    }
-
-    public void close() {
-        curPos = theString.length();
-    }
-}
diff --git a/src/java/net/sf/samtools/util/StringUtil.java b/src/java/net/sf/samtools/util/StringUtil.java
deleted file mode 100644
index eee2161..0000000
--- a/src/java/net/sf/samtools/util/StringUtil.java
+++ /dev/null
@@ -1,466 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.samtools.util;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.Arrays;
-
-/**
- * Grab-bag of stateless String-oriented utilities.
- */
-public class StringUtil {
-    private static final byte UPPER_CASE_OFFSET = 'A' - 'a';
-
-    /**
-     * @param separator String to interject between each string in strings arg
-     * @param objs List of objs to be joined
-     * @return String that concatenates the result of each item's to String method for all items in objs, with separator between each of them.
-     */
-    public static <T> String join(final String separator, final Collection<T> objs) {
-        if (objs.size() == 0) {
-            return "";
-        }
-
-        boolean notFirst = false;
-
-        final StringBuilder ret = new StringBuilder();
-        for (final Object obj : objs) {
-            if(notFirst) {
-                ret.append(separator);
-            }
-            ret.append(obj.toString());
-            notFirst = true;
-        }
-        return ret.toString();
-    }
-
-    public static <T> String join(final String separator, final T... objs) {
-        final List<T> values = Arrays.asList(objs);
-        return join(separator, values);
-    }
-
-
-    /**
-     * Split the string into tokens separated by the given delimiter.  Profiling has
-     * revealed that the standard string.split() method typically takes > 1/2
-     * the total time when used for parsing ascii files.
-     * Note that if tokens arg is not large enough to all the tokens in the string, excess tokens are discarded.
-     *
-     * @param aString  the string to split
-     * @param tokens an array to hold the parsed tokens
-     * @param delim  character that delimits tokens
-     * @return the number of tokens parsed
-     */
-    public static int split(final String aString, final String[] tokens, final char delim) {
-
-        final int maxTokens = tokens.length;
-        int nTokens = 0;
-        int start = 0;
-        int end = aString.indexOf(delim);
-        if(end < 0) {
-            tokens[nTokens++] = aString;
-            return nTokens;
-        }
-        while ((end > 0) && (nTokens < maxTokens))
-        {
-            tokens[nTokens++] = aString.substring(start, end);
-            start = end + 1;
-            end = aString.indexOf(delim, start);
-
-        }
-        // Add the trailing string,  if there is room and if it is not empty.
-        if (nTokens < maxTokens)
-        {
-            final String trailingString = aString.substring(start);
-            if (trailingString.length() > 0)
-            {
-                tokens[nTokens++] = trailingString;
-            }
-        }
-        return nTokens;
-    }
-
-    /**
-     * Split the string into tokens separated by the given delimiter.  Profiling has
-     * revealed that the standard string.split() method typically takes > 1/2
-     * the total time when used for parsing ascii files.
-     * Note that the string is split into no more elements than tokens arg will hold, so the final tokenized
-     * element may contain delimiter chars.
-     *
-     * @param aString  the string to split
-     * @param tokens an array to hold the parsed tokens
-     * @param delim  character that delimits tokens
-     * @return the number of tokens parsed
-     */
-    public static int splitConcatenateExcessTokens(final String aString, final String[] tokens, final char delim) {
-
-        final int maxTokens = tokens.length;
-        int nTokens = 0;
-        int start = 0;
-        int end = aString.indexOf(delim);
-        if(end < 0) {
-            tokens[nTokens++] = aString;
-            return nTokens;
-        }
-        while ((end > 0) && (nTokens < maxTokens - 1))
-        {
-            tokens[nTokens++] = aString.substring(start, end);
-            start = end + 1;
-            end = aString.indexOf(delim, start);
-
-        }
-        // Add the trailing string,  if it is not empty.
-        final String trailingString = aString.substring(start);
-        if (trailingString.length() > 0)
-        {
-            tokens[nTokens++] = trailingString;
-        }
-        return nTokens;
-    }
-
-    /**
-     * @param b ASCII character
-     * @return lowercase version of arg if it was uppercase, otherwise returns arg
-     */
-    public static byte toLowerCase(final byte b) {
-        if (b < 'A' || b > 'Z') {
-            return b;
-        }
-        return (byte)(b - UPPER_CASE_OFFSET);
-    }
-
-    /**
-     * @param b ASCII character
-     * @return uppercase version of arg if it was lowercase, otherwise returns arg
-     */
-    public static byte toUpperCase(final byte b) {
-        if (b < 'a' || b > 'z') {
-            return b;
-        }
-        return (byte)(b + UPPER_CASE_OFFSET);
-    }
-
-    /**
-     * Converts in place all lower case letters to upper case in the byte array provided.
-     */
-    public static void toUpperCase(final byte[] bytes) {
-        final int length = bytes.length;
-        for (int i=0; i<length; ++i) {
-            if (bytes[i] >= 'a' && bytes[i] <= 'z') {
-                bytes[i] = (byte) (bytes[i] + UPPER_CASE_OFFSET);
-            }
-        }
-    }
-
-
-    /**
-     * Checks that a String doesn't contain one or more characters of interest.
-     *
-     * @param illegalChars the String to check
-     * @param chars the characters to check for
-     * @return String the input String for convenience
-     * @throws IllegalArgumentException if the String contains one or more of the characters
-     */
-    public static String assertCharactersNotInString(final String illegalChars, final char... chars) {
-        for (final char illegalChar : illegalChars.toCharArray()) {
-            for (final char ch: chars) {
-                if (illegalChar == ch) {
-                    throw new IllegalArgumentException("Supplied String contains illegal character '" + illegalChar + "'.");
-                }
-            }
-        }
-
-        return illegalChars;
-    }
-
-    /**
-     * Return input string with newlines inserted to ensure that all lines
-     * have length <= maxLineLength.  if a word is too long, it is simply broken
-     * at maxLineLength.  Does not handle tabs intelligently (due to implementer laziness).
-     */
-    public static String wordWrap(final String s, final int maxLineLength) {
-        final String[] lines = s.split("\n");
-        final StringBuilder sb = new StringBuilder();
-        for (final String line: lines) {
-            if (sb.length() > 0) {
-                sb.append("\n");
-            }
-            sb.append(wordWrapSingleLine(line, maxLineLength));
-        }
-        if (s.endsWith("\n")) {
-            sb.append("\n");
-        }
-        return sb.toString();
-    }
-
-    public static String wordWrapSingleLine(final String s, final int maxLineLength) {
-        if (s.length() <= maxLineLength) {
-            return s;
-        }
-        final StringBuilder sb = new StringBuilder();
-        int startCopyFrom = 0;
-        while (startCopyFrom < s.length()) {
-            int lastSpaceIndex = startCopyFrom;
-            int i;
-            // Find break point (if it exists)
-            for (i = startCopyFrom; i < s.length() && i - startCopyFrom < maxLineLength; ++i) {
-                if (Character.isWhitespace(s.charAt(i))) {
-                    lastSpaceIndex = i;
-                }
-            }
-            if (i - startCopyFrom < maxLineLength) {
-                lastSpaceIndex = i;
-            }
-            // Include any trailing whitespace
-            for (; lastSpaceIndex < s.length() && Character.isWhitespace(s.charAt(lastSpaceIndex)); ++lastSpaceIndex) {}
-            if (sb.length() > 0) {
-                sb.append("\n");
-            }
-            // Handle situation in which there is no word break.  Just break the word in the middle.
-            if (lastSpaceIndex == startCopyFrom) {
-                lastSpaceIndex = i;
-            }
-            sb.append(s.substring(startCopyFrom, lastSpaceIndex));
-            startCopyFrom = lastSpaceIndex;
-        }
-        return sb.toString();
-    }
-
-
-    public static String intValuesToString(final int[] intVals) {
-        final StringBuilder sb = new StringBuilder(intVals.length);
-        if(intVals.length > 0) {
-            sb.append(String.valueOf(intVals[0]));
-            for(int i = 1; i < intVals.length; i++) {
-                sb.append(", ");
-                sb.append(String.valueOf(intVals[i]));
-            }
-        }
-
-        return sb.toString();
-    }
-
-    public static String intValuesToString(final short[] shortVals) {
-        final StringBuilder sb = new StringBuilder(shortVals.length);
-        if(shortVals.length > 0) {
-            sb.append(String.valueOf(shortVals[0]));
-            for(int i = 1; i < shortVals.length; i++) {
-                sb.append(", ");
-                sb.append(String.valueOf(shortVals[i]));
-            }
-        }
-
-        return sb.toString();
-    }
-
-    ////////////////////////////////////////////////////////////////////
-    // The following methods all convert btw bytes and Strings, without
-    // using the Java character set mechanism.
-    ////////////////////////////////////////////////////////////////////
-
-    public static String bytesToString(final byte[] data) {
-        if (data == null) {
-            return null;
-        }
-        return bytesToString(data, 0, data.length);
-    }
-
-    @SuppressWarnings("deprecation")
-    public static String bytesToString(final byte[] buffer, final int offset, final int length) {
-/*
-        The non-deprecated way, that requires allocating char[]
-        final char[] charBuffer = new char[length];
-        for (int i = 0; i < length; ++i) {
-            charBuffer[i] = (char)buffer[i+offset];
-        }
-        return new String(charBuffer);
-*/
-        return new String(buffer, 0, offset, length);
-    }
-
-    @SuppressWarnings("deprecation")
-    public static byte[] stringToBytes(final String s) {
-/*
-        The non-deprecated way, that requires allocating char[]
-        final byte[] byteBuffer = new byte[s.length()];
-        final char[] charBuffer = s.toCharArray();
-        for (int i = 0; i < charBuffer.length; ++i) {
-            byteBuffer[i] = (byte)(charBuffer[i] & 0xff);
-        }
-        return byteBuffer;
-*/
-        final byte[] byteBuffer = new byte[s.length()];
-        s.getBytes(0, byteBuffer.length, byteBuffer, 0);
-        return byteBuffer;
-    }
-
-    @SuppressWarnings("deprecation")
-    public static byte[] stringToBytes(final String s, final int offset, final int length) {
-        final byte[] byteBuffer = new byte[length];
-        s.getBytes(offset, offset + length, byteBuffer, 0);
-        return byteBuffer;
-    }
-
-    // This method might more appropriately live in BinaryCodec, but all the byte <=> char conversion
-    // should be in the same place.
-    public static String readNullTerminatedString(final BinaryCodec binaryCodec) {
-        final StringBuilder ret = new StringBuilder();
-        for (byte b = binaryCodec.readByte(); b != 0; b = binaryCodec.readByte()) {
-            ret.append((char)(b & 0xff));
-        }
-        return ret.toString();
-    }
-
-    /**
-     * Convert chars to bytes merely by casting
-     * @param chars input chars
-     * @param charOffset where to start converting from chars array
-     * @param length how many chars to convert
-     * @param bytes where to put the converted output
-     * @param byteOffset where to start writing the converted output.
-     */
-    public static void charsToBytes(final char[] chars, final int charOffset, final int length,
-                                    final byte[] bytes, final int byteOffset) {
-        for (int i = 0; i < length; ++i) {
-            bytes[byteOffset + i] = (byte)chars[charOffset + i];
-        }
-    }
-
-    /**
-     * Convert ASCII char to byte.
-     */
-    public static byte charToByte(final char c) {
-        return (byte)c;
-    }
-
-    /**
-     * Convert ASCII byte to ASCII char.
-     */
-    public static char byteToChar(final byte b) {
-        return (char)(b & 0xff);
-    }
-
-    /**
-     * Convert a byte array into a String hex representation.
-     * @param data Input to be converted.
-     * @return String twice as long as data.length with hex representation of data.
-     */
-    public static String bytesToHexString(final byte[] data) {
-        final char[] chars = new char[2 * data.length];
-        for (int i = 0; i < data.length; i++) {
-            final byte b = data[i];
-            chars[2*i] = toHexDigit((b >> 4) & 0xF);
-            chars[2*i+1] = toHexDigit(b & 0xF);
-        }
-        return new String(chars);
-    }
-
-    /**
-     * Convert a String containing hex characters into an array of bytes with the binary representation
-     * of the hex string
-     * @param s Hex string.  Length must be even because each pair of hex chars is converted into a byte.
-     * @return byte array with binary representation of hex string.
-     * @throws NumberFormatException
-     */
-    public static byte[] hexStringToBytes(final String s)  throws NumberFormatException {
-        if (s.length() % 2 != 0) {
-            throw new NumberFormatException("Hex representation of byte string does not have even number of hex chars: " + s);
-        }
-        final byte[] ret = new byte[s.length() / 2];
-        for (int i = 0; i < ret.length; ++i) {
-            ret[i] = (byte) ((fromHexDigit(s.charAt(i * 2)) << 4) | fromHexDigit(s.charAt(i * 2 + 1)));
-        }
-        return ret;
-    }
-
-    public static char toHexDigit(final int value) {
-        return (char) ((value < 10) ? ('0' + value) : ('A' + value - 10));
-    }
-
-    public static int fromHexDigit(final char c) throws NumberFormatException {
-        final int ret = Character.digit(c, 16);
-        if (ret == -1) {
-            throw new NumberFormatException("Not a valid hex digit: " + c);
-        }
-        return ret;
-    }
-
-    /**
-     * Reverse the given string.  Does not check for null.
-     * @param s String to be reversed.
-     * @return New string that is the reverse of the input string.
-     */
-    public static String reverseString(final String s) {
-        final StringBuilder sb = new StringBuilder(s);
-        sb.reverse();
-        return sb.toString();
-    }
-
-    /**
-     * <p>Checks if a String is whitespace, empty ("") or null.</p>
-     *
-     * <pre>
-     * StringUtils.isBlank(null)      = true
-     * StringUtils.isBlank("")        = true
-     * StringUtils.isBlank(" ")       = true
-     * StringUtils.isBlank("sam")     = false
-     * StringUtils.isBlank("  sam  ") = false
-     * </pre>
-     *
-     * @param str  the String to check, may be null
-     * @return <code>true</code> if the String is null, empty or whitespace
-     */
-    public static boolean isBlank(String str) {
-        int strLen;
-        if (str == null || (strLen = str.length()) == 0) {
-            return true;
-        }
-        for (int i = 0; i < strLen; i++) {
-            if (!Character.isWhitespace(str.charAt(i)) ) {
-                return false;
-            }
-        }
-        return true;
-    }
-
-     /* <p>Generates a string of one character to a specified length</p>
-     *
-     * @param c  the Character to repeat
-     * @param repeatNumber the number of times to repeat the character
-     * @return String with the character c repeated repeatNumber times
-     */
-    public static String repeatCharNTimes(char c, int repeatNumber) {
-        char[] output = new char[repeatNumber];
-        Arrays.fill(output, c);
-        return String.valueOf(output);
-    }
-
-    /** Returns {@link Object#toString()} of the provided value if it isn't null; "" otherwise. */
-    public static final String EMPTY_STRING = "";
-    public static String asEmptyIfNull(final Object string) {
-        return string == null ? EMPTY_STRING : string.toString();
-    }
-}
diff --git a/src/java/net/sf/samtools/util/TempStreamFactory.java b/src/java/net/sf/samtools/util/TempStreamFactory.java
deleted file mode 100644
index 985ba11..0000000
--- a/src/java/net/sf/samtools/util/TempStreamFactory.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.util;
-
-import net.sf.samtools.SAMException;
-
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
-import java.io.InputStream;
-import java.io.OutputStream;
-
-/**
- * Factory class for wrapping input and output streams for temporary files.  If available, Snappy is used to
- * compress output files.  Therefore, if a temporary output file is written with an output stream obtained
- * from this class, it must be read by an input stream created by this class, otherwise a file written with
- * compression will not be read with decompression.
- */
-public class TempStreamFactory {
-    private static SnappyLoader snappyLoader = null;
-
-    private static synchronized SnappyLoader getSnappyLoader() {
-        if (snappyLoader == null) snappyLoader = new SnappyLoader();
-        return snappyLoader;
-    }
-
-    /**
-     * Wrap the given InputStream in a SnappyInputStream if available.
-     * @return If Snappy is available, a SnappyInputStream wrapping inputStream.
-     * If not, and bufferSize > 0, a BufferedInputStream.
-     * Otherwise inputStream is returned.
-     */
-    public InputStream wrapTempInputStream(final InputStream inputStream, final int bufferSize) {
-        InputStream is = IOUtil.maybeBufferInputStream(inputStream, bufferSize);
-        if (getSnappyLoader().SnappyAvailable) {
-            try {
-                return getSnappyLoader().wrapInputStream(is);
-            } catch (Exception e) {
-                throw new SAMException("Error creating SnappyInputStream", e);
-            }
-        } else {
-            return is;
-        }
-    }
-
-    /**
-     * Wrap the given OutputStream in a SnappyOutputStream if available.
-     * @return If Snappy is available, a SnappyOutputStream wrapping outputStream.
-     * If not, and bufferSize > 0, a BufferedOutputStream.
-     * Otherwise outputStream is returned.
-     */
-    public OutputStream wrapTempOutputStream(final OutputStream outputStream, final int bufferSize) {
-        OutputStream os = outputStream;
-        if (bufferSize > 0) os = new BufferedOutputStream(os, bufferSize);
-        if (getSnappyLoader().SnappyAvailable) {
-            try {
-                os = getSnappyLoader().wrapOutputStream(os);
-            } catch (Exception e) {
-                throw new SAMException("Error creating SnappyOutputStream", e);
-            }
-        }
-        return os;
-    }
-}
diff --git a/src/java/net/sf/samtools/util/TestUtil.java b/src/java/net/sf/samtools/util/TestUtil.java
deleted file mode 100644
index d45d74b..0000000
--- a/src/java/net/sf/samtools/util/TestUtil.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.util;
-
-import net.sf.samtools.SAMException;
-
-import java.io.File;
-import java.io.IOException;
-
-public class TestUtil {
-
-    public static File getTempDirectory(final String prefix, final String suffix) {
-        final File tempDirectory;
-        try {
-            tempDirectory = File.createTempFile(prefix, suffix);
-        } catch (IOException e) {
-            throw new SAMException("Failed to create temporary file.", e);
-        }
-        if (!tempDirectory.delete())
-            throw new SAMException("Failed to delete file: " + tempDirectory);
-        if (!tempDirectory.mkdir())
-            throw new SAMException("Failed to make directory: " + tempDirectory);
-        tempDirectory.deleteOnExit();
-        return tempDirectory;
-    }
-
-    /**
-     * @deprecated Use properly spelled method.
-     */
-    public static File getTempDirecory(final String prefix, final String suffix) {
-        return getTempDirectory(prefix, suffix);
-    }
-
-        /**
-         * Little test utility to help tests that create multiple levels of subdirectories
-         * clean up after themselves.
-         *
-         * @param directory The directory to be deleted (along with its subdirectories)
-         */
-    public static void recursiveDelete(final File directory) {
-        for (final File f : directory.listFiles()) {
-            if (f.isDirectory()) {
-                recursiveDelete(f);
-            }
-            f.delete();
-        }
-    }
-}
diff --git a/src/java/net/sf/samtools/util/Tuple.java b/src/java/net/sf/samtools/util/Tuple.java
deleted file mode 100644
index 98ce0cd..0000000
--- a/src/java/net/sf/samtools/util/Tuple.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package net.sf.samtools.util;
-
-/**
- * A simple tuple class.
- *
- * @author mccowan
- */
-public class Tuple<A, B> {
-    public final A a;
-    public final B b;
-
-    public Tuple(final A a, final B b) {
-        this.a = a;
-        this.b = b;
-    }
-}
diff --git a/src/java/net/sf/samtools/util/ftp/FTPClient.java b/src/java/net/sf/samtools/util/ftp/FTPClient.java
deleted file mode 100644
index ad10668..0000000
--- a/src/java/net/sf/samtools/util/ftp/FTPClient.java
+++ /dev/null
@@ -1,235 +0,0 @@
-/*
- * Copyright (c) 2007-2011 by The Broad Institute of MIT and Harvard.  All Rights Reserved.
- *
- * This software is licensed under the terms of the GNU Lesser General Public License (LGPL),
- * Version 2.1 which is available at http://www.opensource.org/licenses/lgpl-2.1.php.
- *
- * THE SOFTWARE IS PROVIDED "AS IS." THE BROAD AND MIT MAKE NO REPRESENTATIONS OR
- * WARRANTIES OF ANY KIND CONCERNING THE SOFTWARE, EXPRESS OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
- * PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, WHETHER
- * OR NOT DISCOVERABLE.  IN NO EVENT SHALL THE BROAD OR MIT, OR THEIR RESPECTIVE
- * TRUSTEES, DIRECTORS, OFFICERS, EMPLOYEES, AND AFFILIATES BE LIABLE FOR ANY DAMAGES
- * OF ANY KIND, INCLUDING, WITHOUT LIMITATION, INCIDENTAL OR CONSEQUENTIAL DAMAGES,
- * ECONOMIC DAMAGES OR INJURY TO PROPERTY AND LOST PROFITS, REGARDLESS OF WHETHER
- * THE BROAD OR MIT SHALL BE ADVISED, SHALL HAVE OTHER REASON TO KNOW, OR IN FACT
- * SHALL KNOW OF THE POSSIBILITY OF THE FOREGOING.
- */
-
-package net.sf.samtools.util.ftp;
-
-import net.sf.samtools.SAMException;
-
-import java.io.*;
-import java.net.Socket;
-import java.util.NoSuchElementException;
-import java.util.StringTokenizer;
-
-/**
- * @author jrobinso
- * @date Oct 30, 2010
- */
-public class FTPClient {
-
-    private Socket commandSocket = null;
-
-    public static int READ_TIMEOUT = 5 * 60 * 1000;
-
-    /**
-     * Stream to write commands.
-     * NOTE -- a PrintStream is used no purpose (as opposed to PrintWriter).  PrintWriter will not work!
-     */
-    private PrintStream commandStream = null;
-    private BufferedReader responseReader = null;
-    private InputStream dataStream;
-    private String passiveHost;
-    private int passivePort;
-    long restPosition = -1;
-    String host;
-
-    /**
-     * Connects to the given FTP host on the default port.
-     */
-    public FTPReply connect(String host) throws IOException {
-        this.host = host;
-        commandSocket = new Socket(host, 21);
-        commandSocket.setSoTimeout(READ_TIMEOUT);
-        commandStream = new PrintStream(commandSocket.getOutputStream());
-        responseReader = new BufferedReader(new InputStreamReader(commandSocket.getInputStream()));
-
-        FTPReply reply = new FTPReply(responseReader);
-
-        if (!reply.isPositiveCompletion()) {
-            disconnect();
-        }
-
-        return reply;
-    }
-
-
-    /**
-     * Executes the given FTP command on our current connection, returning the
-     * three digit response code from the server.  This method only works for
-     * commands that do not require an additional data port.
-     */
-    public FTPReply executeCommand(String command) throws IOException {
-        commandStream.println(command);
-        return new FTPReply(responseReader);
-    }
-
-
-    /**
-     * Wrapper for the commands <code>user [username]</code> and <code>pass
-     * [password]</code>.
-     */
-    public FTPReply login(String username, String password) throws IOException {
-        FTPReply response = executeCommand("user " + username);
-        if (!response.isPositiveIntermediate()) return response;
-        response = executeCommand("pass " + password);
-        return response;
-    }
-
-    public FTPReply quit() throws IOException {
-        return executeCommand("QUIT");
-    }
-
-    public FTPReply binary() throws IOException {
-        return executeCommand("TYPE I");
-    }
-
-
-    public FTPReply pasv() throws IOException {
-
-        FTPReply reply = executeCommand("PASV");
-
-        if (reply.getCode() == 226 || reply.getCode() == 426) {
-            reply = getReply();
-        }
-
-        String response = reply.getReplyString();
-
-
-        int code = reply.getCode();
-
-        int opening = response.indexOf('(');
-        int closing = response.indexOf(')', opening + 1);
-        if (closing > 0) {
-            String dataLink = response.substring(opening + 1, closing);
-            StringTokenizer tokenizer = new StringTokenizer(dataLink, ",");
-            try {
-                passiveHost = tokenizer.nextToken() + "." + tokenizer.nextToken() + "."
-                        + tokenizer.nextToken() + "." + tokenizer.nextToken();
-                passivePort = Integer.parseInt(tokenizer.nextToken()) * 256
-                        + Integer.parseInt(tokenizer.nextToken());
-            } catch (NumberFormatException e) {
-                throw new IOException("SimpleFTP received bad data link information: " + response);
-            } catch (NoSuchElementException e){
-                throw new IOException("SimpleFTP received bad data link information: " + response);
-            }
-        }
-
-        if (reply.isPositiveCompletion()) {
-            if (dataStream == null) {
-                Socket dataSocket = new Socket(passiveHost, passivePort);
-                dataSocket.setSoTimeout(READ_TIMEOUT);
-                dataStream = new SocketInputStream(dataSocket, dataSocket.getInputStream());
-            }
-        }
-        return reply;
-    }
-
-    public void setRestPosition(long position) {
-        this.restPosition = position;
-    }
-
-    public FTPReply retr(String file) throws IOException {
-
-        if (restPosition >= 0) {
-            FTPReply restReply = executeCommand("REST " + restPosition);
-            if (!restReply.isSuccess()) {
-                return restReply;
-            }
-        }
-
-        return executeCommand("RETR " + file);
-    }
-
-    public FTPReply getReply() throws IOException {
-        return new FTPReply(responseReader);
-    }
-
-    /**
-     * Return the size of the remote file
-     *
-     * @param file
-     * @return
-     * @throws IOException
-     */
-    public FTPReply size(String file) throws IOException {
-
-        return executeCommand("SIZE " + file);
-
-    }
-
-
-    public InputStream getDataStream() throws IOException {
-        return dataStream;
-    }
-
-    public void closeDataStream() throws IOException {
-        //  NOTE -- some ftp servers seem to need a pause before closing the data stream
-        // if (dataStream != null) {
-        //    try {
-        //        //
-        //        Thread.sleep(3000);
-        //    } catch (InterruptedException e) {
-        //
-        //    }
-        dataStream.close();
-        //}
-        dataStream = null;
-    }
-
-
-    /**
-     * Disconnects from the host to which we are currently connected.
-     */
-    public void disconnect() {
-        try {
-            //quit();
-            if (commandStream != null) {
-                commandStream.close();
-                responseReader.close();
-                commandSocket.close();
-
-                if (dataStream != null) {
-                    dataStream.close();
-                }
-            }
-        } catch (IOException e) {
-            throw new SAMException("Error disconnecting", e);
-        }
-
-        commandStream = null;
-        responseReader = null;
-        commandSocket = null;
-    }
-
-    class SocketInputStream extends FilterInputStream {
-
-        Socket socket;
-
-        SocketInputStream(Socket socket, InputStream inputStream) {
-            super(inputStream);
-            this.socket = socket;
-        }
-
-        @Override
-        public void close() throws IOException {
-            super.close();
-            socket.close();
-            FTPClient.this.dataStream = null;
-        }
-    }
-
-}
diff --git a/src/java/net/sf/samtools/util/ftp/FTPReply.java b/src/java/net/sf/samtools/util/ftp/FTPReply.java
deleted file mode 100644
index 970ec99..0000000
--- a/src/java/net/sf/samtools/util/ftp/FTPReply.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Copyright (c) 2007-2011 by The Broad Institute of MIT and Harvard.  All Rights Reserved.
- *
- * This software is licensed under the terms of the GNU Lesser General Public License (LGPL),
- * Version 2.1 which is available at http://www.opensource.org/licenses/lgpl-2.1.php.
- *
- * THE SOFTWARE IS PROVIDED "AS IS." THE BROAD AND MIT MAKE NO REPRESENTATIONS OR
- * WARRANTES OF ANY KIND CONCERNING THE SOFTWARE, EXPRESS OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
- * PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, WHETHER
- * OR NOT DISCOVERABLE.  IN NO EVENT SHALL THE BROAD OR MIT, OR THEIR RESPECTIVE
- * TRUSTEES, DIRECTORS, OFFICERS, EMPLOYEES, AND AFFILIATES BE LIABLE FOR ANY DAMAGES
- * OF ANY KIND, INCLUDING, WITHOUT LIMITATION, INCIDENTAL OR CONSEQUENTIAL DAMAGES,
- * ECONOMIC DAMAGES OR INJURY TO PROPERTY AND LOST PROFITS, REGARDLESS OF WHETHER
- * THE BROAD OR MIT SHALL BE ADVISED, SHALL HAVE OTHER REASON TO KNOW, OR IN FACT
- * SHALL KNOW OF THE POSSIBILITY OF THE FOREGOING.
- */
-
-package net.sf.samtools.util.ftp;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-
-/**
- * @author jrobinso
- * @date Oct 30, 2010
- */
-public class FTPReply {
-
-    String reply;
-    int code;
-
-    public FTPReply(BufferedReader inputStream) throws IOException {
-
-        String response = null;
-        do {
-            response = inputStream.readLine();
-        } while (response != null &&
-                !(Character.isDigit(response.charAt(0)) &&
-                        Character.isDigit(response.charAt(1)) &&
-                        Character.isDigit(response.charAt(2)) &&
-                        response.charAt(3) == ' '));
-        if (response == null || response.length() < 3) {
-            code = -1;
-        } else {
-            code = Integer.parseInt(response.substring(0, 3));
-            reply = response.substring(3).trim();
-
-        }
-    }
-
-    /**
-     * Gets server reply code from the control port after an ftp command has
-     * been executed.  It knows the last line of the response because it begins
-     * with a 3 digit number and a space, (a dash instead of a space would be a
-     * continuation).
-     */
-
-    public int getCode() throws IOException {
-        return code;
-    }
-
-
-    /**
-     * Gets server reply string from the control port after an ftp command has
-     * been executed.  This consists only of the last line of the response,
-     * and only the part after the response code.
-     */
-    public String getReplyString()
-            throws IOException {
-
-        return reply;
-    }
-
-
-    public boolean isSuccess() {
-        return isPositiveCompletion() || isPositiveIntermediate();
-    }
-
-    /**
-     * Determine if a reply code is a positive completion response.  All
-     * codes beginning with a 2 are positive completion responses.
-     * The FTP server will send a positive completion response on the final
-     * successful completion of a command.
-     * <p/>
-     *
-     * @return True if a reply code is a postive completion response, false
-     *         if not.
-     *         *
-     */
-    public boolean isPositiveCompletion() {
-        return (code >= 200 && code < 300);
-    }
-
-
-    /**
-     * Determine if a reply code is a positive intermediate response.  All
-     * codes beginning with a 3 are positive intermediate responses.
-     * The FTP server will send a positive intermediate response on the
-     * successful completion of one part of a multi-part sequence of
-     * commands.  For example, after a successful USER command, a positive
-     * intermediate response will be sent to indicate that the server is
-     * ready for the PASS command.
-     * <p/>
-     *
-     * @return True if a reply code is a postive intermediate response, false
-     *         if not.
-     *         *
-     */
-    public boolean isPositiveIntermediate() {
-        return (code >= 300 && code < 400);
-    }
-}
diff --git a/src/java/net/sf/samtools/util/ftp/FTPStream.java b/src/java/net/sf/samtools/util/ftp/FTPStream.java
deleted file mode 100644
index 34738b5..0000000
--- a/src/java/net/sf/samtools/util/ftp/FTPStream.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (c) 2007-2011 by The Broad Institute of MIT and Harvard.  All Rights Reserved.
- *
- * This software is licensed under the terms of the GNU Lesser General Public License (LGPL),
- * Version 2.1 which is available at http://www.opensource.org/licenses/lgpl-2.1.php.
- *
- * THE SOFTWARE IS PROVIDED "AS IS." THE BROAD AND MIT MAKE NO REPRESENTATIONS OR
- * WARRANTES OF ANY KIND CONCERNING THE SOFTWARE, EXPRESS OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
- * PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, WHETHER
- * OR NOT DISCOVERABLE.  IN NO EVENT SHALL THE BROAD OR MIT, OR THEIR RESPECTIVE
- * TRUSTEES, DIRECTORS, OFFICERS, EMPLOYEES, AND AFFILIATES BE LIABLE FOR ANY DAMAGES
- * OF ANY KIND, INCLUDING, WITHOUT LIMITATION, INCIDENTAL OR CONSEQUENTIAL DAMAGES,
- * ECONOMIC DAMAGES OR INJURY TO PROPERTY AND LOST PROFITS, REGARDLESS OF WHETHER
- * THE BROAD OR MIT SHALL BE ADVISED, SHALL HAVE OTHER REASON TO KNOW, OR IN FACT
- * SHALL KNOW OF THE POSSIBILITY OF THE FOREGOING.
- */
-
-package net.sf.samtools.util.ftp;
-
-import java.io.FilterInputStream;
-import java.io.IOException;
-
-/**
- * A "non-seekable" ftp stream.  This one doesn't support random access.
- *
- * It is assumed that the ftp client has been connected, put in passive mode,
- * set to binary, and otherwise prepped for reading before creating this stream.
- *
- * @author jrobinso
- * @date Oct 31, 2010
- */
-public class FTPStream extends FilterInputStream {
-
-    FTPClient ftp;
-
-    public FTPStream(FTPClient ftp) throws IOException {
-        super(ftp.getDataStream());
-        this.ftp = ftp;
-    }
-
-
-    @Override
-    public int read(byte[] bytes, int i, int i1) throws IOException {
-        return super.read(bytes, i, i1);    //To change body of overridden methods use File | Settings | File Templates.
-    }
-
-    @Override
-    public void close() throws IOException {
-        super.close();
-        ftp.disconnect();
-    }
-}
diff --git a/src/java/net/sf/samtools/util/ftp/FTPUtils.java b/src/java/net/sf/samtools/util/ftp/FTPUtils.java
deleted file mode 100644
index 539f13d..0000000
--- a/src/java/net/sf/samtools/util/ftp/FTPUtils.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * Copyright (c) 2007-2011 by The Broad Institute of MIT and Harvard.  All Rights Reserved.
- *
- * This software is licensed under the terms of the GNU Lesser General Public License (LGPL),
- * Version 2.1 which is available at http://www.opensource.org/licenses/lgpl-2.1.php.
- *
- * THE SOFTWARE IS PROVIDED "AS IS." THE BROAD AND MIT MAKE NO REPRESENTATIONS OR
- * WARRANTES OF ANY KIND CONCERNING THE SOFTWARE, EXPRESS OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
- * PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, WHETHER
- * OR NOT DISCOVERABLE.  IN NO EVENT SHALL THE BROAD OR MIT, OR THEIR RESPECTIVE
- * TRUSTEES, DIRECTORS, OFFICERS, EMPLOYEES, AND AFFILIATES BE LIABLE FOR ANY DAMAGES
- * OF ANY KIND, INCLUDING, WITHOUT LIMITATION, INCIDENTAL OR CONSEQUENTIAL DAMAGES,
- * ECONOMIC DAMAGES OR INJURY TO PROPERTY AND LOST PROFITS, REGARDLESS OF WHETHER
- * THE BROAD OR MIT SHALL BE ADVISED, SHALL HAVE OTHER REASON TO KNOW, OR IN FACT
- * SHALL KNOW OF THE POSSIBILITY OF THE FOREGOING.
- */
-
-package net.sf.samtools.util.ftp;
-
-
-import net.sf.samtools.SAMException;
-import net.sf.samtools.seekablestream.UserPasswordInput;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.net.URLConnection;
-import java.util.HashMap;
-import java.util.Map;
-
-
-/**
- * @author jrobinso
- * @date Aug 31, 2010
- */
-public class FTPUtils {
-
-    static Map<String, String> userCredentials = new HashMap<String, String>();
-
-    static int TIMEOUT = 10000;
-
-    public static boolean resourceAvailable(URL url) {
-        InputStream is = null;
-        try {
-            URLConnection conn = url.openConnection();
-            conn.setConnectTimeout(TIMEOUT);
-            conn.setReadTimeout(TIMEOUT);
-            is = conn.getInputStream();
-            return (is.read() >= 0);
-
-        } catch (IOException e) {
-            return false;
-        }
-        finally {
-            if (is != null) {
-                try {
-                    is.close();
-                } catch (IOException e) {
-                    throw new SAMException("Error closing connection", e);
-                }
-            }
-        }
-    }
-
-    public static long getContentLength(URL url) throws IOException {
-        FTPClient ftp = null;
-        try {
-            ftp = FTPUtils.connect(url.getHost(), url.getUserInfo(), null);
-            String sizeString = ftp.executeCommand("size " + url.getPath()).getReplyString();
-            return Integer.parseInt(sizeString);
-        } catch (Exception e) {
-            return -1 ;
-        }
-        finally {
-            if(ftp != null) {
-                ftp.disconnect();
-            }
-        }
-    }
-
-
-    /**
-     * Connect to an FTP server
-     *
-     * @param host
-     * @param userInfo
-     * @param userPasswordInput Dialog with which a user can enter credentials, if login fails
-     * @return
-     * @throws IOException
-     */
-    public static synchronized FTPClient connect(String host, String userInfo, UserPasswordInput userPasswordInput) throws IOException {
-
-        FTPClient ftp = new FTPClient();
-        FTPReply reply = ftp.connect(host);
-        if (!reply.isSuccess()) {
-            throw new RuntimeException("Could not connect to " + host);
-        }
-
-        String user = "anonymous";
-        String password = "igv at broadinstitute.org";
-
-        if (userInfo == null) {
-            userInfo = userCredentials.get(host);
-        }
-        if (userInfo != null) {
-            String[] tmp = userInfo.split(":");
-            user = tmp[0];
-            if (tmp.length > 1) {
-                password = tmp[1];
-            }
-        }
-
-        reply = ftp.login(user, password);
-        if (!reply.isSuccess()) {
-        	if (userPasswordInput == null) {
-                throw new RuntimeException("Login failure for host: " + host);
-        	}
-        	else {
-	        	userPasswordInput.setHost(host);
-	            boolean success = false;
-	            while (!success) {
-	                if (userPasswordInput.showDialog()) {
-	                    user = userPasswordInput.getUser();
-	                    password = userPasswordInput.getPassword();
-	                    reply = ftp.login(user, password);
-	                    success = reply.isSuccess();
-	                } else {
-	                    // canceled
-	                    break;
-	                }
-	
-	            }
-	            if (success) {
-	                userInfo = user + ":" + password;
-	                userCredentials.put(host, userInfo);
-	            } else {
-	                throw new RuntimeException("Login failure for host: " + host);
-	            }
-        	}
-        }
-
-        reply = ftp.binary();
-        if (!(reply.isSuccess())) {
-            throw new RuntimeException("Could not set binary mode on host: " + host);
-        }
-
-        return ftp;
-
-    }
-
-}
-
diff --git a/src/java/net/sf/samtools/util/zip/DeflaterFactory.java b/src/java/net/sf/samtools/util/zip/DeflaterFactory.java
deleted file mode 100644
index 0c6af8c..0000000
--- a/src/java/net/sf/samtools/util/zip/DeflaterFactory.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.util.zip;
-
-import net.sf.samtools.Defaults;
-import net.sf.samtools.SAMException;
-
-import java.lang.reflect.Constructor;
-import java.util.zip.Deflater;
-
-/**
- * Create zlib-based Deflater if JNI library and other require libraries are available, otherwise create standard
- * JDK Deflater.
- * Java 7 has its own Deflater implementation (libzip.so).  This is almost as fast as a zlib-based Deflater, so in general
- * there isn't a compelling reason to use zlib.  However, Intel has created a hardware-assisted zlib implementation
- * as part of their IPP (Integrated Performance Primitives) package that can run significantly faster on some Intel
- * hardware.  We have seen compression times reduced by 13% to 33% depending on particular hardware, and hope that
- * newer Intel processors will be even better.
- *
- * Note that this class will no longer be necessary once Java 8 is required, because JDK 8 will use zlib instead
- * of libzip implementation.
- */
-public class DeflaterFactory {
-
-    private static Constructor<IntelDeflater> intelDeflaterConstructor;
-
-    static {
-        try {
-            if (Defaults.TRY_USE_INTEL_DEFLATER) {
-                final Class<IntelDeflater> clazz = (Class<IntelDeflater>) Class.forName("net.sf.samtools.util.zip.IntelDeflater");
-                intelDeflaterConstructor = clazz.getConstructor(Integer.TYPE, Boolean.TYPE);
-            }
-        } catch (ClassNotFoundException e) {
-            intelDeflaterConstructor = null;
-        } catch (NoSuchMethodException e) {
-            intelDeflaterConstructor = null;
-        } catch (UnsatisfiedLinkError e) {
-            intelDeflaterConstructor = null;
-        }
-    }
-
-    public static Deflater makeDeflater(final int compressionLevel, final boolean nowrap) {
-        if (intelDeflaterConstructor != null) {
-            try {
-                return intelDeflaterConstructor.newInstance(compressionLevel, nowrap);
-            } catch (Exception e) {
-                throw new SAMException("Exception constructing IntelDeflater", e);
-            }
-        } else {
-            return new Deflater(compressionLevel, nowrap);
-        }
-    }
-
-    public static boolean usingIntelDeflater() {
-        return intelDeflaterConstructor != null;
-    }
-}
diff --git a/src/java/net/sf/samtools/util/zip/IntelDeflater.java b/src/java/net/sf/samtools/util/zip/IntelDeflater.java
deleted file mode 100644
index 1ce5de6..0000000
--- a/src/java/net/sf/samtools/util/zip/IntelDeflater.java
+++ /dev/null
@@ -1,567 +0,0 @@
-/*
- * Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-package net.sf.samtools.util.zip;
-
-import net.sf.samtools.Defaults;
-
-import java.io.File;
-import java.net.URL;
-import java.util.zip.Deflater;
-
-/**
- * This is a copy of java.util.zip.Deflater from OpenJDK 7, with the following changes:
- * - package and class name changed
- * - static block to load libIntelDeflater library
- * - extends java.util.zip.Deflater so that IntelDeflater object can be used as regular Deflater object.
- *   Note however that all methods of Deflater are overridden.
- *
- * The shared library is found via one of the following mechanisms:
- * 1. if samjdk.intel_deflater_so_path system property is set, this is assumed to be the path of libIntelDeflater.so
- * 2. If system property is not set, directory where the jarfile that this class came from lives is tried as location
- *    of libIntelDeflater.so
- * 3. If either of the above fails to find the library, regular LD_LIBRARY_PATH is used to find the library.
- * 4. If that doesn't work, class fails to load and code falls back to regular Java Deflater class.
- *
- *
- * The rest of this document is copied verbatim from the original OpenJDK file.
- *
- * This class provides support for general purpose compression using the
- * popular ZLIB compression library. The ZLIB compression library was
- * initially developed as part of the PNG graphics standard and is not
- * protected by patents. It is fully described in the specifications at
- * the <a href="package-summary.html#package_description">java.util.zip
- * package description</a>.
- *
- * <p>The following code fragment demonstrates a trivial compression
- * and decompression of a string using <tt>IntelDeflater</tt> and
- * <tt>Inflater</tt>.
- *
- * <blockquote><pre>
- * try {
- *     // Encode a String into bytes
- *     String inputString = "blahblahblah";
- *     byte[] input = inputString.getBytes("UTF-8");
- *
- *     // Compress the bytes
- *     byte[] output = new byte[100];
- *     IntelDeflater compresser = new IntelDeflater();
- *     compresser.setInput(input);
- *     compresser.finish();
- *     int compressedDataLength = compresser.deflate(output);
- *     compresser.end();
- *
- *     // Decompress the bytes
- *     Inflater decompresser = new Inflater();
- *     decompresser.setInput(output, 0, compressedDataLength);
- *     byte[] result = new byte[100];
- *     int resultLength = decompresser.inflate(result);
- *     decompresser.end();
- *
- *     // Decode the bytes into a String
- *     String outputString = new String(result, 0, resultLength, "UTF-8");
- * } catch(java.io.UnsupportedEncodingException ex) {
- *     // handle
- * } catch (java.util.zip.DataFormatException ex) {
- *     // handle
- * }
- * </pre></blockquote>
- *
- * @see         java.util.zip.Inflater
- * @author      David Connelly
- */
-public
-class IntelDeflater extends Deflater {
-
-    private final ZStreamRef zsRef;
-    private byte[] buf = new byte[0];
-    private int off, len;
-    private int level, strategy;
-    private boolean setParams;
-    private boolean finish, finished;
-
-    /**
-     * Compression flush mode used to achieve best compression result.
-     *
-     * @see IntelDeflater#deflate(byte[], int, int, int)
-     * @since 1.7
-     */
-    public static final int NO_FLUSH = 0;
-
-    /**
-     * Compression flush mode used to flush out all pending output; may
-     * degrade compression for some compression algorithms.
-     *
-     * @see IntelDeflater#deflate(byte[], int, int, int)
-     * @since 1.7
-     */
-    public static final int SYNC_FLUSH = 2;
-
-    /**
-     * Compression flush mode used to flush out all pending output and
-     * reset the deflater. Using this mode too often can seriously degrade
-     * compression.
-     *
-     * @see IntelDeflater#deflate(byte[], int, int, int)
-     * @since 1.7
-     */
-    public static final int FULL_FLUSH = 3;
-
-    static {
-        try {
-            final File sharedLibrary;
-            if (Defaults.INTEL_DEFLATER_SHARED_LIBRARY_PATH != null) {
-                // Load via path set by -Dsamjdk.intel_deflater_so_path=<path>
-                sharedLibrary = new File(Defaults.INTEL_DEFLATER_SHARED_LIBRARY_PATH);
-            } else {
-                // Look in directory containing this class for the library
-                URL jarUrl = IntelDeflater.class.getProtectionDomain().getCodeSource().getLocation();
-                sharedLibrary = new File(new File(jarUrl.getPath()).getParentFile(), "libIntelDeflater.so");
-            }
-            System.load(sharedLibrary.getAbsolutePath());
-        } catch (Throwable e) {
-            // Possible exceptions:
-            // System.load: UnsatisfiedLinkError
-            // getProtectionDomain: SecurityException
-            // NullPointerException due to getCodeSource returning null
-
-            // Try to find via LD_LIBRARY_PATH
-            System.loadLibrary("IntelDeflater");
-        }
-        initIDs();
-    }
-
-    /**
-     * Creates a new compressor using the specified compression level.
-     * If 'nowrap' is true then the ZLIB header and checksum fields will
-     * not be used in order to support the compression format used in
-     * both GZIP and PKZIP.
-     * @param level the compression level (0-9)
-     * @param nowrap if true then use GZIP compatible compression
-     */
-    public IntelDeflater(int level, boolean nowrap) {
-        this.level = level;
-        this.strategy = DEFAULT_STRATEGY;
-        this.zsRef = new ZStreamRef(init(level, DEFAULT_STRATEGY, nowrap));
-    }
-
-    /**
-     * Creates a new compressor using the specified compression level.
-     * Compressed data will be generated in ZLIB format.
-     * @param level the compression level (0-9)
-     */
-    public IntelDeflater(int level) {
-        this(level, false);
-    }
-
-    /**
-     * Creates a new compressor with the default compression level.
-     * Compressed data will be generated in ZLIB format.
-     */
-    public IntelDeflater() {
-        this(DEFAULT_COMPRESSION, false);
-    }
-
-    /**
-     * Sets input data for compression. This should be called whenever
-     * needsInput() returns true indicating that more input data is required.
-     * @param b the input data bytes
-     * @param off the start offset of the data
-     * @param len the length of the data
-     * @see IntelDeflater#needsInput
-     */
-    @Override
-    public void setInput(byte[] b, int off, int len) {
-        if (b== null) {
-            throw new NullPointerException();
-        }
-        if (off < 0 || len < 0 || off > b.length - len) {
-            throw new ArrayIndexOutOfBoundsException();
-        }
-        synchronized (zsRef) {
-            this.buf = b;
-            this.off = off;
-            this.len = len;
-        }
-    }
-
-    /**
-     * Sets input data for compression. This should be called whenever
-     * needsInput() returns true indicating that more input data is required.
-     * @param b the input data bytes
-     * @see IntelDeflater#needsInput
-     */
-    @Override
-    public void setInput(byte[] b) {
-        setInput(b, 0, b.length);
-    }
-
-    /**
-     * Sets preset dictionary for compression. A preset dictionary is used
-     * when the history buffer can be predetermined. When the data is later
-     * uncompressed with Inflater.inflate(), Inflater.getAdler() can be called
-     * in order to get the Adler-32 value of the dictionary required for
-     * decompression.
-     * @param b the dictionary data bytes
-     * @param off the start offset of the data
-     * @param len the length of the data
-     * @see java.util.zip.Inflater#inflate
-     * @see java.util.zip.Inflater#getAdler
-     */
-    @Override
-    public void setDictionary(byte[] b, int off, int len) {
-        if (b == null) {
-            throw new NullPointerException();
-        }
-        if (off < 0 || len < 0 || off > b.length - len) {
-            throw new ArrayIndexOutOfBoundsException();
-        }
-        synchronized (zsRef) {
-            ensureOpen();
-            setDictionary(zsRef.address(), b, off, len);
-        }
-    }
-
-    /**
-     * Sets preset dictionary for compression. A preset dictionary is used
-     * when the history buffer can be predetermined. When the data is later
-     * uncompressed with Inflater.inflate(), Inflater.getAdler() can be called
-     * in order to get the Adler-32 value of the dictionary required for
-     * decompression.
-     * @param b the dictionary data bytes
-     * @see java.util.zip.Inflater#inflate
-     * @see java.util.zip.Inflater#getAdler
-     */
-    @Override
-    public void setDictionary(byte[] b) {
-        setDictionary(b, 0, b.length);
-    }
-
-    /**
-     * Sets the compression strategy to the specified value.
-     * @param strategy the new compression strategy
-     * @exception IllegalArgumentException if the compression strategy is
-     *                                     invalid
-     */
-    @Override
-    public void setStrategy(int strategy) {
-        switch (strategy) {
-            case DEFAULT_STRATEGY:
-            case FILTERED:
-            case HUFFMAN_ONLY:
-                break;
-            default:
-                throw new IllegalArgumentException();
-        }
-        synchronized (zsRef) {
-            if (this.strategy != strategy) {
-                this.strategy = strategy;
-                setParams = true;
-            }
-        }
-    }
-
-    /**
-     * Sets the current compression level to the specified value.
-     * @param level the new compression level (0-9)
-     * @exception IllegalArgumentException if the compression level is invalid
-     */
-    @Override
-    public void setLevel(int level) {
-        if ((level < 0 || level > 9) && level != DEFAULT_COMPRESSION) {
-            throw new IllegalArgumentException("invalid compression level");
-        }
-        synchronized (zsRef) {
-            if (this.level != level) {
-                this.level = level;
-                setParams = true;
-            }
-        }
-    }
-
-    /**
-     * Returns true if the input data buffer is empty and setInput()
-     * should be called in order to provide more input.
-     * @return true if the input data buffer is empty and setInput()
-     * should be called in order to provide more input
-     */
-    @Override
-    public boolean needsInput() {
-        return len <= 0;
-    }
-
-    /**
-     * When called, indicates that compression should end with the current
-     * contents of the input buffer.
-     */
-    @Override
-    public void finish() {
-        synchronized (zsRef) {
-            finish = true;
-        }
-    }
-
-    /**
-     * Returns true if the end of the compressed data output stream has
-     * been reached.
-     * @return true if the end of the compressed data output stream has
-     * been reached
-     */
-    @Override
-    public boolean finished() {
-        synchronized (zsRef) {
-            return finished;
-        }
-    }
-
-    /**
-     * Compresses the input data and fills specified buffer with compressed
-     * data. Returns actual number of bytes of compressed data. A return value
-     * of 0 indicates that {@link #needsInput() needsInput} should be called
-     * in order to determine if more input data is required.
-     *
-     * <p>This method uses {@link #NO_FLUSH} as its compression flush mode.
-     * An invocation of this method of the form {@code deflater.deflate(b, off, len)}
-     * yields the same result as the invocation of
-     * {@code deflater.deflate(b, off, len, IntelDeflater.NO_FLUSH)}.
-     *
-     * @param b the buffer for the compressed data
-     * @param off the start offset of the data
-     * @param len the maximum number of bytes of compressed data
-     * @return the actual number of bytes of compressed data written to the
-     *         output buffer
-     */
-    @Override
-    public int deflate(byte[] b, int off, int len) {
-        return deflate(b, off, len, NO_FLUSH);
-    }
-
-    /**
-     * Compresses the input data and fills specified buffer with compressed
-     * data. Returns actual number of bytes of compressed data. A return value
-     * of 0 indicates that {@link #needsInput() needsInput} should be called
-     * in order to determine if more input data is required.
-     *
-     * <p>This method uses {@link #NO_FLUSH} as its compression flush mode.
-     * An invocation of this method of the form {@code deflater.deflate(b)}
-     * yields the same result as the invocation of
-     * {@code deflater.deflate(b, 0, b.length, IntelDeflater.NO_FLUSH)}.
-     *
-     * @param b the buffer for the compressed data
-     * @return the actual number of bytes of compressed data written to the
-     *         output buffer
-     */
-    @Override
-    public int deflate(byte[] b) {
-        return deflate(b, 0, b.length, NO_FLUSH);
-    }
-
-    /**
-     * Compresses the input data and fills the specified buffer with compressed
-     * data. Returns actual number of bytes of data compressed.
-     *
-     * <p>Compression flush mode is one of the following three modes:
-     *
-     * <ul>
-     * <li>{@link #NO_FLUSH}: allows the deflater to decide how much data
-     * to accumulate, before producing output, in order to achieve the best
-     * compression (should be used in normal use scenario). A return value
-     * of 0 in this flush mode indicates that {@link #needsInput()} should
-     * be called in order to determine if more input data is required.
-     *
-     * <li>{@link #SYNC_FLUSH}: all pending output in the deflater is flushed,
-     * to the specified output buffer, so that an inflater that works on
-     * compressed data can get all input data available so far (In particular
-     * the {@link #needsInput()} returns {@code true} after this invocation
-     * if enough output space is provided). Flushing with {@link #SYNC_FLUSH}
-     * may degrade compression for some compression algorithms and so it
-     * should be used only when necessary.
-     *
-     * <li>{@link #FULL_FLUSH}: all pending output is flushed out as with
-     * {@link #SYNC_FLUSH}. The compression state is reset so that the inflater
-     * that works on the compressed output data can restart from this point
-     * if previous compressed data has been damaged or if random access is
-     * desired. Using {@link #FULL_FLUSH} too often can seriously degrade
-     * compression.
-     * </ul>
-     *
-     * <p>In the case of {@link #FULL_FLUSH} or {@link #SYNC_FLUSH}, if
-     * the return value is {@code len}, the space available in output
-     * buffer {@code b}, this method should be invoked again with the same
-     * {@code flush} parameter and more output space.
-     *
-     * @param b the buffer for the compressed data
-     * @param off the start offset of the data
-     * @param len the maximum number of bytes of compressed data
-     * @param flush the compression flush mode
-     * @return the actual number of bytes of compressed data written to
-     *         the output buffer
-     *
-     * @throws IllegalArgumentException if the flush mode is invalid
-     * @since 1.7
-     */
-    public int deflate(byte[] b, int off, int len, int flush) {
-        //System.out.println("Inside IntelDeflater\n");
-        if (b == null) {
-            throw new NullPointerException();
-        }
-        if (off < 0 || len < 0 || off > b.length - len) {
-            throw new ArrayIndexOutOfBoundsException();
-        }
-        synchronized (zsRef) {
-            ensureOpen();
-            if (flush == NO_FLUSH || flush == SYNC_FLUSH ||
-                    flush == FULL_FLUSH)
-                return deflateBytes(zsRef.address(), b, off, len, flush);
-            throw new IllegalArgumentException();
-        }
-    }
-
-    /**
-     * Returns the ADLER-32 value of the uncompressed data.
-     * @return the ADLER-32 value of the uncompressed data
-     */
-    @Override
-    public int getAdler() {
-        synchronized (zsRef) {
-            ensureOpen();
-            return getAdler(zsRef.address());
-        }
-    }
-
-    /**
-     * Returns the total number of uncompressed bytes input so far.
-     *
-     * <p>Since the number of bytes may be greater than
-     * Integer.MAX_VALUE, the {@link #getBytesRead()} method is now
-     * the preferred means of obtaining this information.</p>
-     *
-     * @return the total number of uncompressed bytes input so far
-     */
-    @Override
-    public int getTotalIn() {
-        return (int) getBytesRead();
-    }
-
-    /**
-     * Returns the total number of uncompressed bytes input so far.</p>
-     *
-     * @return the total (non-negative) number of uncompressed bytes input so far
-     * @since 1.5
-     */
-    @Override
-    public long getBytesRead() {
-        synchronized (zsRef) {
-            ensureOpen();
-            return getBytesRead(zsRef.address());
-        }
-    }
-
-    /**
-     * Returns the total number of compressed bytes output so far.
-     *
-     * <p>Since the number of bytes may be greater than
-     * Integer.MAX_VALUE, the {@link #getBytesWritten()} method is now
-     * the preferred means of obtaining this information.</p>
-     *
-     * @return the total number of compressed bytes output so far
-     */
-    @Override
-    public int getTotalOut() {
-        return (int) getBytesWritten();
-    }
-
-    /**
-     * Returns the total number of compressed bytes output so far.</p>
-     *
-     * @return the total (non-negative) number of compressed bytes output so far
-     * @since 1.5
-     */
-    @Override
-    public long getBytesWritten() {
-        synchronized (zsRef) {
-            ensureOpen();
-            return getBytesWritten(zsRef.address());
-        }
-    }
-
-    /**
-     * Resets deflater so that a new set of input data can be processed.
-     * Keeps current compression level and strategy settings.
-     */
-    @Override
-    public void reset() {
-        synchronized (zsRef) {
-            ensureOpen();
-            reset(zsRef.address());
-            finish = false;
-            finished = false;
-            off = len = 0;
-        }
-    }
-
-    /**
-     * Closes the compressor and discards any unprocessed input.
-     * This method should be called when the compressor is no longer
-     * being used, but will also be called automatically by the
-     * finalize() method. Once this method is called, the behavior
-     * of the IntelDeflater object is undefined.
-     */
-    @Override
-    public void end() {
-        synchronized (zsRef) {
-            long addr = zsRef.address();
-            zsRef.clear();
-            if (addr != 0) {
-                end(addr);
-                buf = null;
-            }
-        }
-    }
-
-    /**
-     * Closes the compressor when garbage is collected.
-     */
-    protected void finalize() {
-        end();
-    }
-
-    private void ensureOpen() {
-        assert Thread.holdsLock(zsRef);
-        if (zsRef.address() == 0)
-            throw new NullPointerException("IntelDeflater has been closed");
-    }
-
-    private static native void initIDs();
-    private native static long init(int level, int strategy, boolean nowrap);
-    private native static void setDictionary(long addr, byte[] b, int off, int len);
-    private native int deflateBytes(long addr, byte[] b, int off, int len,
-                                    int flush);
-    private native static int getAdler(long addr);
-    private native static long getBytesRead(long addr);
-    private native static long getBytesWritten(long addr);
-    private native static void reset(long addr);
-    private native static void end(long addr);
-}
-
diff --git a/src/java/net/sf/samtools/util/zip/ZStreamRef.java b/src/java/net/sf/samtools/util/zip/ZStreamRef.java
deleted file mode 100644
index 5a49d8a..0000000
--- a/src/java/net/sf/samtools/util/zip/ZStreamRef.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-package net.sf.samtools.util.zip;
-
-/**
- * Copied from OpenJDK 7.  Only change is package name, because IntelDeflater needs this and
- * the original class is private to java.util.zip package.
- *
- * A reference to the native zlib's z_stream structure.
- */
-
-class ZStreamRef {
-
-    private long address;
-    ZStreamRef (long address) {
-        this.address = address;
-    }
-
-    long address() {
-        return address;
-    }
-
-    void clear() {
-        address = 0;
-    }
-}
diff --git a/src/java/org/broad/tribble/AbstractFeatureCodec.java b/src/java/org/broad/tribble/AbstractFeatureCodec.java
deleted file mode 100644
index cfc11d0..0000000
--- a/src/java/org/broad/tribble/AbstractFeatureCodec.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package org.broad.tribble;
-
-import java.io.IOException;
-
-/**
- * Simple basic class providing much of the basic functionality of codecs
- */
-public abstract class AbstractFeatureCodec<FEATURE_TYPE extends Feature, SOURCE> implements FeatureCodec<FEATURE_TYPE, SOURCE> {
-    private final Class<FEATURE_TYPE> myClass;
-
-    protected AbstractFeatureCodec(final Class<FEATURE_TYPE> myClass) {
-        this.myClass = myClass;
-    }
-    
-    @Override
-    public Feature decodeLoc(final SOURCE source) throws IOException {
-        return decode(source);
-    }
-
-    @Override
-    public Class<FEATURE_TYPE> getFeatureType() {
-        return myClass;
-    }
-
-    @Override
-    public boolean canDecode(final String path) {
-        return false;
-    }
-
-}
diff --git a/src/java/org/broad/tribble/AbstractFeatureReader.java b/src/java/org/broad/tribble/AbstractFeatureReader.java
deleted file mode 100644
index 8dd9008..0000000
--- a/src/java/org/broad/tribble/AbstractFeatureReader.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
- * Copyright (c) 2007-2010 by The Broad Institute, Inc. and the Massachusetts Institute of Technology.
- * All Rights Reserved.
- *
- * This software is licensed under the terms of the GNU Lesser General Public License (LGPL), Version 2.1 which
- * is available at http://www.opensource.org/licenses/lgpl-2.1.php.
- *
- * THE SOFTWARE IS PROVIDED "AS IS." THE BROAD AND MIT MAKE NO REPRESENTATIONS OR WARRANTIES OF
- * ANY KIND CONCERNING THE SOFTWARE, EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES
- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT
- * OR OTHER DEFECTS, WHETHER OR NOT DISCOVERABLE.  IN NO EVENT SHALL THE BROAD OR MIT, OR THEIR
- * RESPECTIVE TRUSTEES, DIRECTORS, OFFICERS, EMPLOYEES, AND AFFILIATES BE LIABLE FOR ANY DAMAGES OF
- * ANY KIND, INCLUDING, WITHOUT LIMITATION, INCIDENTAL OR CONSEQUENTIAL DAMAGES, ECONOMIC
- * DAMAGES OR INJURY TO PROPERTY AND LOST PROFITS, REGARDLESS OF WHETHER THE BROAD OR MIT SHALL
- * BE ADVISED, SHALL HAVE OTHER REASON TO KNOW, OR IN FACT SHALL KNOW OF THE POSSIBILITY OF THE
- * FOREGOING.
- */
-
-package org.broad.tribble;
-
-import org.broad.tribble.index.Index;
-import org.broad.tribble.util.ParsingUtils;
-import org.broad.tribble.util.TabixUtils;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-/**
- * jrobinso
- * <p/>
- * the feature reader class, which uses indices and codecs to read in Tribble file formats.
- */
-public abstract class AbstractFeatureReader<T extends Feature, SOURCE> implements FeatureReader<T> {
-    // the logging destination for this source
-    //private final static Logger log = Logger.getLogger("BasicFeatureSource");
-
-    // the path to underlying data source
-    String path;
-
-    // the query source, codec, and header
-    // protected final QuerySource querySource;
-    protected final FeatureCodec<T, SOURCE> codec;
-    protected FeatureCodecHeader header;
-
-    private static ComponentMethods methods = new ComponentMethods();
-
-    public static final Set<String> BLOCK_COMPRESSED_EXTENSIONS = Collections.unmodifiableSet(new HashSet<String>(Arrays.asList(".gz", ".gzip", ".bgz", ".bgzf")));
-
-    /**
-     * Calls {@link #getFeatureReader(String, FeatureCodec, boolean)} with {@code requireIndex} = true
-     */
-    public static <FEATURE extends Feature, SOURCE> AbstractFeatureReader<FEATURE, SOURCE> getFeatureReader(final String featureFile, final FeatureCodec<FEATURE, SOURCE> codec) throws TribbleException {
-        return getFeatureReader(featureFile, codec, true);
-    }
-
-    /**
-     * {@link #getFeatureReader(String, String, FeatureCodec, boolean)} with {@code null} for indexResource
-     * @throws TribbleException
-     */
-    public static <FEATURE extends Feature, SOURCE> AbstractFeatureReader<FEATURE, SOURCE> getFeatureReader(final String featureResource, final FeatureCodec<FEATURE, SOURCE> codec, final boolean requireIndex) throws TribbleException {
-        return getFeatureReader(featureResource, null, codec, requireIndex);
-    }
-
-    /**
-     *
-     * @param featureResource the feature file to create from
-     * @param indexResource   the index for the feature file. If null, will auto-generate (if necessary)
-     * @param codec
-     * @param requireIndex    whether an index is required for this file
-     * @return
-     * @throws TribbleException
-     */
-    public static <FEATURE extends Feature, SOURCE> AbstractFeatureReader<FEATURE, SOURCE> getFeatureReader(final String featureResource, String indexResource, final FeatureCodec<FEATURE, SOURCE> codec, final boolean requireIndex) throws TribbleException {
-
-        try {
-            // Test for tabix index
-            if (methods.isTabix(featureResource, indexResource)) {
-                if ( ! (codec instanceof AsciiFeatureCodec) )
-                    throw new TribbleException("Tabix indexed files only work with ASCII codecs, but received non-Ascii codec " + codec.getClass().getSimpleName());
-                return new TabixFeatureReader<FEATURE, SOURCE>(featureResource, (AsciiFeatureCodec) codec);
-            }
-            // Not tabix => tribble index file (might be gzipped, but not block gzipped)
-            else {
-                return new TribbleIndexedFeatureReader<FEATURE, SOURCE>(featureResource, codec, requireIndex);
-            }
-        } catch (IOException e) {
-            throw new TribbleException.MalformedFeatureFile("Unable to create BasicFeatureReader using feature file ", featureResource, e);
-        } catch (TribbleException e) {
-            e.setSource(featureResource);
-            throw e;
-        }
-    }
-
-    /**
-     * Return a reader with a supplied index.
-     *
-     * @param featureResource the path to the source file containing the features
-     * @param codec used to decode the features
-     * @param index index of featureResource
-     * @return a reader for this data
-     * @throws TribbleException
-     */
-    public static <FEATURE extends Feature, SOURCE> AbstractFeatureReader<FEATURE, SOURCE> getFeatureReader(final String featureResource, final FeatureCodec<FEATURE, SOURCE>  codec, final Index index) throws TribbleException {
-        try {
-            return new TribbleIndexedFeatureReader<FEATURE, SOURCE>(featureResource, codec, index);
-        } catch (IOException e) {
-            throw new TribbleException.MalformedFeatureFile("Unable to create AbstractFeatureReader using feature file ", featureResource, e);
-        }
-
-    }
-
-    protected AbstractFeatureReader(final String path, final FeatureCodec<T, SOURCE> codec) {
-        this.path = path;
-        this.codec = codec;
-    }
-
-    /**
-     * Whether the reader has an index or not
-     * Default implementation returns false
-     * @return
-     */
-    public boolean hasIndex(){
-        return false;
-    }
-
-    public static void setComponentMethods(ComponentMethods methods){
-        AbstractFeatureReader.methods = methods;
-    }
-
-    /**
-     * Whether a filename ends in one of the BLOCK_COMPRESSED_EXTENSIONS
-     * @param fileName
-     * @return
-     */
-    public static boolean hasBlockCompressedExtension (final String fileName) {
-        for (final String extension : BLOCK_COMPRESSED_EXTENSIONS) {
-            if (fileName.toLowerCase().endsWith(extension))
-                return true;
-        }
-        return false;
-    }
-
-    /**
-     * Whether the name of a file ends in one of the BLOCK_COMPRESSED_EXTENSIONS
-     * @param file
-     * @return
-     */
-    public static boolean hasBlockCompressedExtension (final File file) {
-        return hasBlockCompressedExtension(file.getName());
-    }
-
-    /**
-     * get the header
-     *
-     * @return the header object we've read-in
-     */
-    public Object getHeader() {
-        return header.getHeaderValue();
-    }
-
-    static class EmptyIterator<T extends Feature> implements CloseableTribbleIterator<T> {
-        public Iterator iterator() { return this; }
-        public boolean hasNext() { return false; }
-        public T next() { return null; }
-        public void remove() { }
-        @Override public void close() { }
-    }
-
-    public static class ComponentMethods{
-
-        public boolean isTabix(String resourcePath, String indexPath) throws IOException{
-            if(indexPath == null){
-                indexPath = ParsingUtils.appendToPath(resourcePath, TabixUtils.STANDARD_INDEX_EXTENSION);
-            }
-            return hasBlockCompressedExtension(resourcePath) && ParsingUtils.resourceExists(indexPath);
-        }
-    }
-}
diff --git a/src/java/org/broad/tribble/AsciiFeatureCodec.java b/src/java/org/broad/tribble/AsciiFeatureCodec.java
deleted file mode 100644
index 225938f..0000000
--- a/src/java/org/broad/tribble/AsciiFeatureCodec.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Copyright (c) 2007-2010 by The Broad Institute, Inc. and the Massachusetts Institute of Technology.
- * All Rights Reserved.
- *
- * This software is licensed under the terms of the GNU Lesser General Public License (LGPL), Version 2.1 which
- * is available at http://www.opensource.org/licenses/lgpl-2.1.php.
- *
- * THE SOFTWARE IS PROVIDED "AS IS." THE BROAD AND MIT MAKE NO REPRESENTATIONS OR WARRANTIES OF
- * ANY KIND CONCERNING THE SOFTWARE, EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES
- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT
- * OR OTHER DEFECTS, WHETHER OR NOT DISCOVERABLE.  IN NO EVENT SHALL THE BROAD OR MIT, OR THEIR
- * RESPECTIVE TRUSTEES, DIRECTORS, OFFICERS, EMPLOYEES, AND AFFILIATES BE LIABLE FOR ANY DAMAGES OF
- * ANY KIND, INCLUDING, WITHOUT LIMITATION, INCIDENTAL OR CONSEQUENTIAL DAMAGES, ECONOMIC
- * DAMAGES OR INJURY TO PROPERTY AND LOST PROFITS, REGARDLESS OF WHETHER THE BROAD OR MIT SHALL
- * BE ADVISED, SHALL HAVE OTHER REASON TO KNOW, OR IN FACT SHALL KNOW OF THE POSSIBILITY OF THE
- * FOREGOING.
- */
-
-package org.broad.tribble;
-
-import net.sf.samtools.util.CloserUtil;
-import net.sf.samtools.util.LocationAware;
-import org.broad.tribble.readers.*;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-/**
- * A convenience base class for codecs that want to read in features from ASCII lines.
- * <p/>
- * This class overrides the general decode locs for streams and presents instead
- * Strings to decode(String) and readHeader(LineReader) functions.
- *
- * @param <T> The feature type this codec reads
- */
-public abstract class AsciiFeatureCodec<T extends Feature> extends AbstractFeatureCodec<T, LineIterator> {
-    protected AsciiFeatureCodec(final Class<T> myClass) {
-        super(myClass);
-    }
-    
-    @Override
-    public void close(final LineIterator lineIterator) {
-        CloserUtil.close(lineIterator);
-    }
-
-    @Override
-    public boolean isDone(final LineIterator lineIterator) {
-        return !lineIterator.hasNext();
-    }
-
-    @Override
-    public LocationAware makeIndexableSourceFromStream(final InputStream bufferedInputStream) {
-        final PositionalBufferedStream pbs;
-        if (bufferedInputStream instanceof PositionalBufferedStream) {
-            pbs = (PositionalBufferedStream) bufferedInputStream;
-        } else {
-            pbs = new PositionalBufferedStream(bufferedInputStream);
-        }
-        return new AsciiLineReaderIterator(new AsciiLineReader(pbs));
-    }
-
-    @Override
-    public LineIterator makeSourceFromStream(final InputStream bufferedInputStream) {
-        return new LineIteratorImpl(LineReaderUtil.fromBufferedStream(bufferedInputStream));
-    }
-
-    /** 
-     * Convenience method.  Decoding in ASCII files operates line-by-line, so obviate the need to call 
-     * {@link org.broad.tribble.readers.LineIterator#next()} in implementing classes and, instead, have them implement
-     * {@link AsciiFeatureCodec#decode(String)}.
-     */
-    @Override
-    public T decode(final LineIterator lineIterator) {
-        return decode(lineIterator.next());
-    }
-
-    /** @see {@link AsciiFeatureCodec#decode(org.broad.tribble.readers.LineIterator)} */
-    public abstract T decode(String s);
-
-    @Override
-    public FeatureCodecHeader readHeader(final LineIterator lineIterator) throws IOException {
-        // TODO: Track header end here, rather than assuming there isn't one.
-        return new FeatureCodecHeader(readActualHeader(lineIterator), FeatureCodecHeader.NO_HEADER_END);
-    }
-
-    /**
-     * Read and return the header, or null if there is no header.
-     *
-     * @return the actual header data in the file, or null if none is available
-     */
-    abstract public Object readActualHeader(final LineIterator reader);
-}
diff --git a/src/java/org/broad/tribble/BasicFeature.java b/src/java/org/broad/tribble/BasicFeature.java
deleted file mode 100644
index ec6eb24..0000000
--- a/src/java/org/broad/tribble/BasicFeature.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package org.broad.tribble;
-
-/*
- * Copyright (c) 2012, The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person
- * obtaining a copy of this software and associated documentation
- * files (the "Software"), to deal in the Software without
- * restriction, including without limitation the rights to use,
- * copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following
- * conditions:
- *
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/**
- * Trivial feature -- all it holds is the key information.
- *
- * @author Mark DePristo
- * @since 5/3/12
- */
-public class BasicFeature implements Feature {
-    private final String chr;
-    private final int start, stop;
-
-    public BasicFeature(final String chr, final int start, final int stop) {
-        this.chr = chr;
-        this.start = start;
-        this.stop = stop;
-    }
-
-    public String getChr() {
-        return chr;
-    }
-
-    public int getStart() {
-        return start;
-    }
-
-    public int getEnd() {
-        return stop;
-    }
-}
diff --git a/src/java/org/broad/tribble/BinaryFeatureCodec.java b/src/java/org/broad/tribble/BinaryFeatureCodec.java
deleted file mode 100644
index 9a153d5..0000000
--- a/src/java/org/broad/tribble/BinaryFeatureCodec.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package org.broad.tribble;
-
-import net.sf.samtools.util.CloserUtil;
-import net.sf.samtools.util.LocationAware;
-import org.broad.tribble.readers.PositionalBufferedStream;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-/**
- * Implements common methods of {@link FeatureCodec}s that read from {@link PositionalBufferedStream}s.
- * @author mccowan
- */
-abstract public class BinaryFeatureCodec<T extends Feature> implements FeatureCodec<T, PositionalBufferedStream> {
-    @Override
-    public PositionalBufferedStream makeSourceFromStream(final InputStream bufferedInputStream) {
-        if (bufferedInputStream instanceof PositionalBufferedStream)
-            return (PositionalBufferedStream) bufferedInputStream;
-        else
-            return new PositionalBufferedStream(bufferedInputStream);
-    }
-
-    /** {@link PositionalBufferedStream} is already {@link LocationAware}. */
-    @Override
-    public LocationAware makeIndexableSourceFromStream(final InputStream bufferedInputStream) {
-        return makeSourceFromStream(bufferedInputStream);
-    }
-
-    @Override
-    public void close(final PositionalBufferedStream source) {
-        CloserUtil.close(source);
-    }
-
-    @Override
-    public boolean isDone(final PositionalBufferedStream source) {
-        try {
-            return source.isDone();
-        } catch (final IOException e) {
-            throw new RuntimeException("Failure reading from stream.", e);
-        }
-    }
-}
diff --git a/src/java/org/broad/tribble/CloseableTribbleIterator.java b/src/java/org/broad/tribble/CloseableTribbleIterator.java
deleted file mode 100644
index 70b1e0c..0000000
--- a/src/java/org/broad/tribble/CloseableTribbleIterator.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (c) 2009-2010 by The Broad Institute, Inc.
- * All Rights Reserved.
- *
- * This software is licensed under the terms of the GNU Lesser General Public License (LGPL), Version 2.1 which
- * is available at http://www.opensource.org/licenses/lgpl-2.1.php.
- *
- * THE SOFTWARE IS PROVIDED "AS IS." THE BROAD AND MIT MAKE NO REPRESENTATIONS OR WARRANTIES OF
- * ANY KIND CONCERNING THE SOFTWARE, EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES
- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT
- * OR OTHER DEFECTS, WHETHER OR NOT DISCOVERABLE.  IN NO EVENT SHALL THE BROAD OR MIT, OR THEIR
- * RESPECTIVE TRUSTEES, DIRECTORS, OFFICERS, EMPLOYEES, AND AFFILIATES BE LIABLE FOR ANY DAMAGES OF
- * ANY KIND, INCLUDING, WITHOUT LIMITATION, INCIDENTAL OR CONSEQUENTIAL DAMAGES, ECONOMIC
- * DAMAGES OR INJURY TO PROPERTY AND LOST PROFITS, REGARDLESS OF WHETHER THE BROAD OR MIT SHALL
- * BE ADVISED, SHALL HAVE OTHER REASON TO KNOW, OR IN FACT SHALL KNOW OF THE POSSIBILITY OF THE
- * FOREGOING.
- */
-
-package org.broad.tribble;
-
-import net.sf.samtools.util.CloseableIterator;
-
-/**
- * The basic iterator we use in Tribble, which allows closing and basic iteration.
- * @param <T> the feature type
- */
-public interface CloseableTribbleIterator<T extends Feature> extends CloseableIterator<T>, Iterable<T> {}
diff --git a/src/java/org/broad/tribble/Feature.java b/src/java/org/broad/tribble/Feature.java
deleted file mode 100644
index f789bf5..0000000
--- a/src/java/org/broad/tribble/Feature.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package org.broad.tribble;
-
-
-/**
- * Represents a locus on a reference sequence.   The coordinate conventions for start and end are implementation
- * dependent, no specific contact is specified here.
- */
-public interface Feature {
-
-    /**
-     * Return the features reference sequence name, e.g chromosome or contig
-     */
-    public String getChr();
-
-    /**
-     * Return the start position
-     */
-    public int getStart();
-
-    /**
-     * Return the end position
-     */
-    public int getEnd();
-}
diff --git a/src/java/org/broad/tribble/FeatureCodec.java b/src/java/org/broad/tribble/FeatureCodec.java
deleted file mode 100644
index ca49fd3..0000000
--- a/src/java/org/broad/tribble/FeatureCodec.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright (c) 2007-2010 by The Broad Institute, Inc. and the Massachusetts Institute of Technology.
- * All Rights Reserved.
- *
- * This software is licensed under the terms of the GNU Lesser General Public License (LGPL), Version 2.1 which
- * is available at http://www.opensource.org/licenses/lgpl-2.1.php.
- *
- * THE SOFTWARE IS PROVIDED "AS IS." THE BROAD AND MIT MAKE NO REPRESENTATIONS OR WARRANTIES OF
- * ANY KIND CONCERNING THE SOFTWARE, EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES
- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT
- * OR OTHER DEFECTS, WHETHER OR NOT DISCOVERABLE.  IN NO EVENT SHALL THE BROAD OR MIT, OR THEIR
- * RESPECTIVE TRUSTEES, DIRECTORS, OFFICERS, EMPLOYEES, AND AFFILIATES BE LIABLE FOR ANY DAMAGES OF
- * ANY KIND, INCLUDING, WITHOUT LIMITATION, INCIDENTAL OR CONSEQUENTIAL DAMAGES, ECONOMIC
- * DAMAGES OR INJURY TO PROPERTY AND LOST PROFITS, REGARDLESS OF WHETHER THE BROAD OR MIT SHALL
- * BE ADVISED, SHALL HAVE OTHER REASON TO KNOW, OR IN FACT SHALL KNOW OF THE POSSIBILITY OF THE
- * FOREGOING.
- */
-
-package org.broad.tribble;
-
-import net.sf.samtools.util.LocationAware;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-/**
- * The base interface for classes that read in features.
- * <p/>
- * FeatureCodecs have to implement two key methods:
- * <p/>
- * {@link #readHeader(SOURCE)} - Reads the header, provided a {@link SOURCE} pointing at the beginning of the source input.
- * {@link #decode(SOURCE)} - Reads a {@link Feature} record, provided a {@link SOURCE} pointing at the beginning of a record within the 
- * source input.
- * <p/>
- * Note that it's not safe to carry state about the {@link SOURCE} within the codec.  There's no guarantee about its  state between calls.
- *
- * @param <FEATURE_TYPE> The type of {@link Feature} this codec generates
- * @param <SOURCE> The type of the data source this codec reads from
- */
-public interface FeatureCodec<FEATURE_TYPE extends Feature, SOURCE> {
-    /**
-     * Decode a line to obtain just its FeatureLoc for indexing -- contig, start, and stop.
-     *
-     * @param source the input stream from which to decode the next record
-     * @return Return the FeatureLoc encoded by the line, or null if the line does not represent a feature (e.g. is
-     *         a comment)
-     */
-    public Feature decodeLoc(final SOURCE source) throws IOException;
-
-    /**
-     * Decode a single {@link Feature} from the {@link SOURCE}, reading no further in the underlying source than beyond that feature.
-     *
-     * @param source the input stream from which to decode the next record
-     * @return Return the Feature encoded by the line,  or null if the line does not represent a feature (e.g. is
-     *         a comment)
-     */
-    public FEATURE_TYPE decode(final SOURCE source) throws IOException;
-
-    /**
-     * Read and return the header, or null if there is no header.
-     * 
-     * Note: Implementers of this method must be careful to read exactly as much from {@link SOURCE} as needed to parse the header, and no 
-     * more. Otherwise, data that might otherwise be fed into parsing a {@link Feature} may be lost.
-     *
-     * @param source the source from which to decode the header
-     * @return header object
-     */
-    public FeatureCodecHeader readHeader(final SOURCE source) throws IOException;
-
-    /**
-     * This function returns the object the codec generates.  This is allowed to be Feature in the case where
-     * conditionally different types are generated.  Be as specific as you can though.
-     * <p/>
-     * This function is used by reflections based tools, so we can know the underlying type
-     *
-     * @return the feature type this codec generates.
-     */
-    public Class<FEATURE_TYPE> getFeatureType();
-
-    /**
-     * Generates a reader of type {@link SOURCE} appropriate for use by this codec from the generic input stream.  Implementers should
-     * assume the stream is buffered.
-     */
-    public SOURCE makeSourceFromStream(final InputStream bufferedInputStream);
-
-    /**
-     * Generates a {@link LocationAware} reader of type {@link SOURCE}.  Like {@link #makeSourceFromStream(java.io.InputStream)}, except
-     * the {@link LocationAware} compatibility is required for creating indexes.
-     * 
-     * Implementers of this method must return a type that is both {@link LocationAware} as well as {@link SOURCE}.  Note that this 
-     * requirement cannot be enforced via the method signature due to limitations in Java's generic typing system.  Instead, consumers
-     * should cast the call result into a {@link SOURCE} when applicable.
-     */
-    public LocationAware makeIndexableSourceFromStream(final InputStream bufferedInputStream);
-
-    /** Adapter method that assesses whether the provided {@link SOURCE} has more data. True if it does, false otherwise. */
-    public boolean isDone(final SOURCE source);
-
-    /** Adapter method that closes the provided {@link SOURCE}. */
-    public void close(final SOURCE source);
-
-    /**
-     * This function returns true iff the File potentialInput can be parsed by this
-     * codec.
-     * <p/>
-     * There is an assumption that there's never a situation where two different Codecs
-     * return true for the same file.  If this occurs, the recommendation would be to error out.
-     * <p/>
-     * Note this function must never throw an error.  All errors should be trapped
-     * and false returned.
-     *
-     * @param path the file to test for parsability with this codec
-     * @return true if potentialInput can be parsed, false otherwise
-     */
-    public boolean canDecode(final String path);
-}
diff --git a/src/java/org/broad/tribble/FeatureCodecHeader.java b/src/java/org/broad/tribble/FeatureCodecHeader.java
deleted file mode 100644
index 8dea58f..0000000
--- a/src/java/org/broad/tribble/FeatureCodecHeader.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package org.broad.tribble;
-
-/**
- * A class to represent a header of a feature containing file.  Specific to a codec.  All
- * codecs must return a non-null value now for their header, but the header can be the
- * empty header object or the end case be set to NO_HEADER_END.
- *
- * Note that if the headerEnd value is > 0 the readers will skip the header for the codec upfront,
- * so that decode() doesn't have to deal with potentially seeing header records in the inputstream.
- *
- * @author Mark DePristo
- * @since 5/2/12
- */
-public class FeatureCodecHeader {
-    /** The value of the headerEnd field when there's no header */
-    public final static long NO_HEADER_END = 0;
-
-    /** An public instance representing no header */
-    public final static FeatureCodecHeader EMPTY_HEADER = new FeatureCodecHeader(null, NO_HEADER_END);
-
-    private final Object headerValue;
-    private final long headerEnd;
-
-    /**
-     * Create a FeatureCodecHeader indicating the contents of the header (can be null)
-     * and the byte position in the file where the header ends (not inclusive).  headerEnd
-     * should be NO_HEADER_END when no header is present.
-     *
-     * @param headerValue the header data read by the codec
-     * @param headerEnd the position (not inclusive) of the end of the header.  1 would
-     *                  mean just the first byte of the file is the header.  Zero indicates
-     *                  there's no header at all
-     */
-    public FeatureCodecHeader(final Object headerValue, final long headerEnd) {
-        if ( headerEnd < 0 ) throw new TribbleException("Header end < 0");
-        this.headerValue = headerValue;
-        this.headerEnd = headerEnd;
-    }
-
-    /**
-     * @return the header value provided by the codec for this file
-     */
-    public Object getHeaderValue() {
-        return headerValue;
-    }
-
-    /**
-     * @return to position, not inclusive, where the header ends.  Must be >= 0
-     */
-    public long getHeaderEnd() {
-        return headerEnd;
-    }
-
-    /**
-     * @return true if we should skip some bytes to skip this header
-     */
-    public boolean skipHeaderBytes() {
-        return getHeaderEnd() != NO_HEADER_END;
-    }
-}
diff --git a/src/java/org/broad/tribble/FeatureReader.java b/src/java/org/broad/tribble/FeatureReader.java
deleted file mode 100644
index e035d27..0000000
--- a/src/java/org/broad/tribble/FeatureReader.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (c) 2007-2010 by The Broad Institute, Inc. and the Massachusetts Institute of Technology.
- * All Rights Reserved.
- *
- * This software is licensed under the terms of the GNU Lesser General Public License (LGPL), Version 2.1 which
- * is available at http://www.opensource.org/licenses/lgpl-2.1.php.
- *
- * THE SOFTWARE IS PROVIDED "AS IS." THE BROAD AND MIT MAKE NO REPRESENTATIONS OR WARRANTIES OF
- * ANY KIND CONCERNING THE SOFTWARE, EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES
- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT
- * OR OTHER DEFECTS, WHETHER OR NOT DISCOVERABLE.  IN NO EVENT SHALL THE BROAD OR MIT, OR THEIR
- * RESPECTIVE TRUSTEES, DIRECTORS, OFFICERS, EMPLOYEES, AND AFFILIATES BE LIABLE FOR ANY DAMAGES OF
- * ANY KIND, INCLUDING, WITHOUT LIMITATION, INCIDENTAL OR CONSEQUENTIAL DAMAGES, ECONOMIC
- * DAMAGES OR INJURY TO PROPERTY AND LOST PROFITS, REGARDLESS OF WHETHER THE BROAD OR MIT SHALL
- * BE ADVISED, SHALL HAVE OTHER REASON TO KNOW, OR IN FACT SHALL KNOW OF THE POSSIBILITY OF THE
- * FOREGOING.
- */
-
-package org.broad.tribble;
-
-import java.io.IOException;
-import java.util.List;
-
-/**
- * the basic interface that feature sources need to match
- * @param <T> a feature type
- */
-public interface FeatureReader<T extends Feature> {
-    
-    public CloseableTribbleIterator<T> query(final String chr, final int start, final int end) throws IOException;
-
-    public CloseableTribbleIterator<T> iterator() throws IOException;
-
-    public void close() throws IOException;
-
-    public List<String> getSequenceNames();
-
-    public Object getHeader();
-
-}
diff --git a/src/java/org/broad/tribble/NameAwareCodec.java b/src/java/org/broad/tribble/NameAwareCodec.java
deleted file mode 100755
index e0abcdc..0000000
--- a/src/java/org/broad/tribble/NameAwareCodec.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2010, The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person
- * obtaining a copy of this software and associated documentation
- * files (the "Software"), to deal in the Software without
- * restriction, including without limitation the rights to use,
- * copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following
- * conditions:
- *
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- */
-
-package org.broad.tribble;
-
-/**
- * Created by IntelliJ IDEA.
- * User: depristo
- * Date: Jun 29, 2010
- * Time: 3:48:47 PM
- * To change this template use File | Settings | File Templates.
- */
-public interface NameAwareCodec {
-    public String getName();
-    public void setName(String name);
-}
diff --git a/src/java/org/broad/tribble/TabixFeatureReader.java b/src/java/org/broad/tribble/TabixFeatureReader.java
deleted file mode 100644
index cdaba0b..0000000
--- a/src/java/org/broad/tribble/TabixFeatureReader.java
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package org.broad.tribble;
-
-import net.sf.samtools.util.BlockCompressedInputStream;
-import org.broad.tribble.readers.*;
-import org.broad.tribble.util.ParsingUtils;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-/**
- * @author Jim Robinson
- * @since 2/11/12
- */
-public class TabixFeatureReader<T extends Feature, SOURCE> extends AbstractFeatureReader<T, SOURCE> {
-
-    TabixReader tabixReader;
-    List<String> sequenceNames;
-
-    /**
-     *
-     * @param featureFile - path to a feature file. Can be a local file, http url, or ftp url
-     * @param codec
-     * @throws IOException
-     */
-    public TabixFeatureReader(final String featureFile, final AsciiFeatureCodec codec) throws IOException {
-        super(featureFile, codec);
-        tabixReader = new TabixReader(featureFile);
-        sequenceNames = new ArrayList<String>(tabixReader.mChr2tid.keySet());
-        readHeader();
-    }
-
-
-    /**
-     * read the header
-     *
-     * @return a Object, representing the file header, if available
-     * @throws IOException throws an IOException if we can't open the file
-     */
-    private void readHeader() throws IOException {
-        SOURCE source = null;
-        try {
-            source = codec.makeSourceFromStream(new PositionalBufferedStream(new BlockCompressedInputStream(ParsingUtils.openInputStream(path))));
-            header = codec.readHeader(source);
-        } catch (Exception e) {
-            throw new TribbleException.MalformedFeatureFile("Unable to parse header with error: " + e.getMessage(), path, e);
-        } finally {
-            if (source != null) {
-                codec.close(source);
-            }
-        }
-    }
-
-    @Override
-    public boolean hasIndex(){
-        return true;
-    }
-
-
-    public List<String> getSequenceNames() {
-        return sequenceNames;
-    }
-
-    /**
-     * Return iterator over all features overlapping the given interval
-     *
-     * @param chr
-     * @param start
-     * @param end
-     * @return
-     * @throws IOException
-     */
-    public CloseableTribbleIterator<T> query(final String chr, final int start, final int end) throws IOException {
-        final List<String> mp = getSequenceNames();
-        if (mp == null) throw new TribbleException.TabixReaderFailure("Unable to find sequence named " + chr +
-                " in the tabix index. ", path);
-        if (!mp.contains(chr)) {
-            return new EmptyIterator<T>();
-        }
-        final TabixIteratorLineReader lineReader = new TabixIteratorLineReader(tabixReader.query(tabixReader.mChr2tid.get(chr), start - 1, end));
-        return new FeatureIterator<T>(lineReader, start - 1, end);
-    }
-
-    public CloseableTribbleIterator<T> iterator() throws IOException {
-        final InputStream is = new BlockCompressedInputStream(ParsingUtils.openInputStream(path));
-        final PositionalBufferedStream stream = new PositionalBufferedStream(is);
-        final LineReader reader = LineReaderUtil.fromBufferedStream(stream, LineReaderUtil.LineReaderOption.SYNCHRONOUS);
-        return new FeatureIterator<T>(reader, 0, Integer.MAX_VALUE);
-    }
-
-    public void close() throws IOException {
-
-    }
-
-
-    class FeatureIterator<T extends Feature> implements CloseableTribbleIterator<T> {
-        private T currentRecord;
-        private LineReader lineReader;
-        private int start;
-        private int end;
-
-        public FeatureIterator(final LineReader lineReader, final int start, final int end) throws IOException {
-            this.lineReader = lineReader;
-            this.start = start;
-            this.end = end;
-            readNextRecord();
-        }
-
-
-        /**
-         * Advance to the next record in the query interval.
-         *
-         * @throws IOException
-         */
-        protected void readNextRecord() throws IOException {
-            currentRecord = null;
-            String nextLine;
-            while (currentRecord == null && (nextLine = lineReader.readLine()) != null) {
-                final Feature f;
-                try {
-                    f = ((AsciiFeatureCodec)codec).decode(nextLine);
-                    if (f == null) {
-                        continue;   // Skip
-                    }
-                    if (f.getStart() > end) {
-                        return;    // Done
-                    }
-                    if (f.getEnd() <= start) {
-                        continue;   // Skip
-                    }
-
-                    currentRecord = (T) f;
-
-                } catch (TribbleException e) {
-                    e.setSource(path);
-                    throw e;
-                } catch (NumberFormatException e) {
-                    String error = "Error parsing line: " + nextLine;
-                    throw new TribbleException.MalformedFeatureFile(error, path, e);
-                }
-
-
-            }
-        }
-
-
-        public boolean hasNext() {
-            return currentRecord != null;
-        }
-
-        public T next() {
-            T ret = currentRecord;
-            try {
-                readNextRecord();
-            } catch (IOException e) {
-                throw new RuntimeException("Unable to read the next record, the last record was at " +
-                        ret.getChr() + ":" + ret.getStart() + "-" + ret.getEnd(), e);
-            }
-            return ret;
-
-        }
-
-        public void remove() {
-            throw new UnsupportedOperationException("Remove is not supported in Iterators");
-        }
-
-        public void close() {
-            lineReader.close();
-        }
-
-        public Iterator<T> iterator() {
-            return this;
-        }
-    }
-
-
-}
diff --git a/src/java/org/broad/tribble/Tribble.java b/src/java/org/broad/tribble/Tribble.java
deleted file mode 100644
index abccbb7..0000000
--- a/src/java/org/broad/tribble/Tribble.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package org.broad.tribble;
-
-import org.broad.tribble.util.ParsingUtils;
-
-import java.io.File;
-
-/**
- * Common, tribble wide constants and static functions
- */
-public class Tribble {
-    private Tribble() { } // can't be instantiated
-
-    public final static String STANDARD_INDEX_EXTENSION = ".idx";
-
-    /**
-     * Return the name of the index file for the provided {@code filename}
-     * Does not actually create an index
-     * @param filename
-     * @return
-     */
-    public static String indexFile(String filename) {
-        return ParsingUtils.appendToPath(filename, STANDARD_INDEX_EXTENSION);
-    }
-
-    /**
-     * Return the File of the index file for the provided {@code file}
-     * Does not actually create an index
-     * @param file
-     * @return
-     */
-    public static File indexFile(File file) {
-        return new File(file.getAbsoluteFile() + STANDARD_INDEX_EXTENSION);
-    }
-
-}
diff --git a/src/java/org/broad/tribble/TribbleException.java b/src/java/org/broad/tribble/TribbleException.java
deleted file mode 100644
index 9593d17..0000000
--- a/src/java/org/broad/tribble/TribbleException.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package org.broad.tribble;
-
-
-/**
- * @author Aaron
- *
- * The base Tribble exception; this allows external libraries to catch any exception Tribble generates
- * 
- */
-public class TribbleException extends RuntimeException {
-    // what file or input source we are working from
-    String source;
-
-    public TribbleException(String msg) {
-        super(msg);
-    }
-
-    public TribbleException(String message, Throwable throwable) {
-        super(message, throwable);
-    }
-
-    /**
-     * set the source for the file; where we got lines from
-     * @param source the source location, usually a file though it could be a http link or other source
-     */
-    public void setSource(String source) {
-        this.source = source;
-    }
-
-    /**
-     * override the default message with ours, which attaches the source file in question
-     * @return a string with our internal error, along with the causitive source file (or other input source)
-     */
-    public String getMessage() {
-        String ret = super.getMessage();
-        if ( source != null )
-            ret = ret + ", for input source: " + source;
-        return ret;
-    }
-
-    // //////////////////////////////////////////////////////////////////////
-    // other more specific exceptions generated in Tribble
-    // //////////////////////////////////////////////////////////////////////
-
-
-    // //////////////////////////////////////////////////////////////////////
-    // Codec exception
-    // //////////////////////////////////////////////////////////////////////
-    // if the line to decode is incorrect
-    public static class InvalidDecodeLine extends TribbleException {
-        public InvalidDecodeLine(String message, String line) { super (message + ", line = " + line); }
-
-        public InvalidDecodeLine(String message, int lineNo) { super (message + ", at line number " + lineNo); }
-    }
-
-    public static class InvalidHeader extends TribbleException {
-        public InvalidHeader(String message) { super ("Your input file has a malformed header: " + message); }
-    }
-
-    // capture other internal codec exceptions
-    public static class InternalCodecException extends TribbleException {
-        public InternalCodecException(String message) { super (message); }
-    }
-
-    // //////////////////////////////////////////////////////////////////////
-    // Index exceptions
-    // //////////////////////////////////////////////////////////////////////
-    public static class UnableToCreateCorrectIndexType extends TribbleException {
-        public UnableToCreateCorrectIndexType(String message, Exception e) {
-            super(message,e);
-        }
-        public UnableToCreateCorrectIndexType(String message) {
-            super(message);
-        }
-    }
-
-    // //////////////////////////////////////////////////////////////////////
-    // Source exceptions
-    // //////////////////////////////////////////////////////////////////////
-    public static class FeatureFileDoesntExist extends TribbleException {
-        public FeatureFileDoesntExist(String message, String file) {
-            super(message);
-            setSource(file);
-        }
-    }
-
-    public static class MalformedFeatureFile extends TribbleException {
-        public MalformedFeatureFile(String message, String f, Exception e) {
-            super(message,e);
-            setSource(f);
-        }
-        public MalformedFeatureFile(String message, String f) {
-            super(message);
-            setSource(f);
-        }
-    }
-
-    public static class UnableToReadIndexFile extends TribbleException {
-        public UnableToReadIndexFile(String message, String f, Exception e) {
-            super(message,e);
-            setSource(f);
-        }
-    }
-
-    public static class TabixReaderFailure extends TribbleException {
-        public TabixReaderFailure(String message, String f, Exception e) {
-            super(message,e);
-            setSource(f);
-        }
-
-        public TabixReaderFailure(String message, String f) {
-            super(message);
-            setSource(f);
-        }
-    }
-}
diff --git a/src/java/org/broad/tribble/TribbleIndexedFeatureReader.java b/src/java/org/broad/tribble/TribbleIndexedFeatureReader.java
deleted file mode 100644
index 8a7b418..0000000
--- a/src/java/org/broad/tribble/TribbleIndexedFeatureReader.java
+++ /dev/null
@@ -1,523 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package org.broad.tribble;
-
-import net.sf.samtools.seekablestream.SeekableStream;
-import net.sf.samtools.seekablestream.SeekableStreamFactory;
-import org.broad.tribble.index.Block;
-import org.broad.tribble.index.Index;
-import org.broad.tribble.index.IndexFactory;
-import org.broad.tribble.readers.PositionalBufferedStream;
-import org.broad.tribble.util.ParsingUtils;
-
-import java.io.BufferedInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.zip.GZIPInputStream;
-
-/**
- * A reader for text feature files  (i.e. not tabix files).   This includes tribble-indexed and non-indexed files.  If
- * index both iterate() and query() methods are supported.
- * <p/>
- * Note: Non-indexed files can be gzipped, but not bgzipped.
- *
- * @author Jim Robinson
- * @since 2/11/12
- */
-public class TribbleIndexedFeatureReader<T extends Feature, SOURCE> extends AbstractFeatureReader<T, SOURCE> {
-
-    private Index index;
-
-    /**
-     * is the path pointing to our source data a regular file?
-     */
-    private final boolean pathIsRegularFile;
-
-    /**
-     * a potentially reusable seekable stream for queries over regular files
-     */
-    private SeekableStream seekableStream = null;
-
-    /**
-     * We lazy-load the index but it might not even exist
-     * Don't want to keep checking if that's the case
-     */
-    private boolean needCheckForIndex = true;
-
-    /**
-     * @param featurePath  - path to the feature file, can be a local file path, http url, or ftp url
-     * @param codec        - codec to decode the features
-     * @param requireIndex - true if the reader will be queries for specific ranges.  An index (idx) file must exist
-     * @throws IOException
-     */
-    public TribbleIndexedFeatureReader(final String featurePath, final FeatureCodec<T, SOURCE> codec, final boolean requireIndex) throws IOException {
-
-        super(featurePath, codec);
-
-        if (requireIndex) {
-            this.loadIndex();
-            if(!this.hasIndex()){
-                throw new TribbleException("An index is required, but none found.");
-            }
-        }
-
-        // does path point to a regular file?
-        this.pathIsRegularFile = SeekableStreamFactory.isFilePath(path);
-
-        readHeader();
-    }
-
-    /**
-     * @param featureFile - path to the feature file, can be a local file path, http url, or ftp url
-     * @param codec       - codec to decode the features
-     * @param index       - a tribble Index object
-     * @throws IOException
-     */
-    public TribbleIndexedFeatureReader(final String featureFile, final FeatureCodec<T, SOURCE> codec, final Index index) throws IOException {
-        this(featureFile, codec, false); // required to read the header
-        this.index = index;
-        this.needCheckForIndex = false;
-    }
-
-    /**
-     * Attempt to load the index for the specified {@link #path}.
-     * If the {@link #path} has no available index file,
-     * does nothing
-     * @throws IOException
-     */
-    private void loadIndex() throws IOException{
-        String indexFile = Tribble.indexFile(this.path);
-        if (ParsingUtils.resourceExists(indexFile)) {
-            index = IndexFactory.loadIndex(indexFile);
-        } else {
-            // See if the index itself is gzipped
-            indexFile = ParsingUtils.appendToPath(indexFile, ".gz");
-            if (ParsingUtils.resourceExists(indexFile)) {
-                index = IndexFactory.loadIndex(indexFile);
-            }
-        }
-        this.needCheckForIndex = false;
-    }
-
-    /**
-     * Get a seekable stream appropriate to read information from the current feature path
-     * <p/>
-     * This function ensures that if reuseStreamInQuery returns true then this function will only
-     * ever return a single unique instance of SeekableStream for all calls given this instance of
-     * TribbleIndexedFeatureReader.  If reuseStreamInQuery() returns false then the returned SeekableStream
-     * will be newly opened each time, and should be closed after each use.
-     *
-     * @return a SeekableStream
-     */
-    private SeekableStream getSeekableStream() throws IOException {
-        final SeekableStream result;
-        if (reuseStreamInQuery()) {
-            // if the stream points to an underlying file, only create the underlying seekable stream once
-            if (seekableStream == null) seekableStream = SeekableStreamFactory.getInstance().getStreamFor(path);
-            result = seekableStream;
-        } else {
-            // we are not reusing the stream, so make a fresh copy each time we request it
-            result = SeekableStreamFactory.getInstance().getStreamFor(path);
-        }
-
-        return result;
-    }
-
-    /**
-     * Are we attempting to reuse the underlying stream in query() calls?
-     *
-     * @return true if
-     */
-    private boolean reuseStreamInQuery() {
-        return pathIsRegularFile;
-    }
-
-    public void close() throws IOException {
-        // close the seekable stream if that's necessary
-        if (seekableStream != null) seekableStream.close();
-    }
-
-    /**
-     * Return the sequence (chromosome/contig) names in this file, if known.
-     *
-     * @return list of strings of the contig names
-     */
-    public List<String> getSequenceNames() {
-        return !this.hasIndex() ? new ArrayList<String>() : new ArrayList<String>(index.getSequenceNames());
-    }
-
-    @Override
-    public boolean hasIndex() {
-        if(index == null && this.needCheckForIndex){
-            try {
-                this.loadIndex();
-            } catch (IOException e) {
-                throw new TribbleException("Error loading index file: " + e.getMessage(), e);
-            }
-        }
-        return index != null;
-    }
-
-    /**
-     * read the header from the file
-     *
-     * @throws IOException throws an IOException if we can't open the file
-     */
-    private void readHeader() throws IOException {
-        InputStream is = null;
-        PositionalBufferedStream pbs = null;
-        try {
-            is = ParsingUtils.openInputStream(path);
-            if (path.endsWith("gz")) {
-                // TODO -- warning I don't think this can work, the buffered input stream screws up position
-                is = new GZIPInputStream(new BufferedInputStream(is));
-            }
-            pbs = new PositionalBufferedStream(is);
-            final SOURCE source = codec.makeSourceFromStream(pbs);
-            header = codec.readHeader(source);
-        } catch (Exception e) {
-            throw new TribbleException.MalformedFeatureFile("Unable to parse header with error: " + e.getMessage(), path, e);
-        } finally {
-            if (pbs != null) pbs.close();
-            else if (is != null) is.close();
-        }
-    }
-
-    /**
-     * Return an iterator to iterate over features overlapping the specified interval
-     * <p/>
-     * Note that TribbleIndexedFeatureReader only supports issuing and manipulating a single query
-     * for each reader.  That is, the behavior of the following code is undefined:
-     * <p/>
-     * reader = new TribbleIndexedFeatureReader()
-     * Iterator it1 = reader.query("x", 10, 20)
-     * Iterator it2 = reader.query("x", 1000, 1010)
-     * <p/>
-     * As a consequence of this, the TribbleIndexedFeatureReader are also not thread-safe.
-     *
-     * @param chr   contig
-     * @param start start position
-     * @param end   end position
-     * @return an iterator of records in this interval
-     * @throws IOException
-     */
-    public CloseableTribbleIterator<T> query(final String chr, final int start, final int end) throws IOException {
-
-        if (!this.hasIndex()) {
-            throw new TribbleException("Index not found for: " + path);
-        }
-
-        if (index.containsChromosome(chr)) {
-            final List<Block> blocks = index.getBlocks(chr, start - 1, end);
-            return new QueryIterator(chr, start, end, blocks);
-        } else {
-            return new EmptyIterator<T>();
-        }
-    }
-
-
-    /**
-     * @return Return an iterator to iterate over the entire file
-     * @throws IOException
-     */
-    public CloseableTribbleIterator<T> iterator() throws IOException {
-        return new WFIterator();
-    }
-
-    /**
-     * Class to iterator over an entire file.
-     */
-    class WFIterator implements CloseableTribbleIterator<T> {
-        private T currentRecord;
-        private SOURCE source;
-
-        /**
-         * Constructor for iterating over the entire file (seekableStream).
-         *
-         * @throws IOException
-         */
-        public WFIterator() throws IOException {
-            final InputStream inputStream = ParsingUtils.openInputStream(path);
-
-            final PositionalBufferedStream pbs;
-            if (path.endsWith(".gz")) {
-                // Gzipped -- we need to buffer the GZIPInputStream methods as this class makes read() calls,
-                // and seekableStream does not support single byte reads
-                final InputStream is = new GZIPInputStream(new BufferedInputStream(inputStream, 512000));
-                pbs = new PositionalBufferedStream(is, 1000);  // Small buffer as this is buffered already.
-            } else {
-                pbs = new PositionalBufferedStream(inputStream, 512000);
-            }
-            /**
-             * The header was already read from the original source in the constructor; don't read it again, since some codecs keep state
-             * about its initializagtion.  Instead, skip that part of the stream.
-             */
-            pbs.skip(header.getHeaderEnd());
-            source = codec.makeSourceFromStream(pbs);
-            readNextRecord();
-        }
-
-        @Override
-        public boolean hasNext() {
-            return currentRecord != null;
-        }
-
-        @Override
-        public T next() {
-            final T ret = currentRecord;
-            try {
-                readNextRecord();
-            } catch (IOException e) {
-                throw new RuntimeException("Unable to read the next record, the last record was at " +
-                        ret.getChr() + ":" + ret.getStart() + "-" + ret.getEnd(), e);
-            }
-            return ret;
-        }
-
-
-        /**
-         * Advance to the next record in the query interval.
-         *
-         * @throws IOException
-         */
-        private void readNextRecord() throws IOException {
-            currentRecord = null;
-
-            while (!codec.isDone(source)) {
-                final T f;
-                try {
-                    f = codec.decode(source);
-
-                    if (f == null) {
-                        continue;
-                    }
-
-                    currentRecord = f;
-                    return;
-
-                } catch (TribbleException e) {
-                    e.setSource(path);
-                    throw e;
-                } catch (NumberFormatException e) {
-                    final String error = "Error parsing line at byte position: " + source;
-                    throw new TribbleException.MalformedFeatureFile(error, path, e);
-                }
-            }
-        }
-
-        @Override
-        public void remove() {
-            throw new UnsupportedOperationException("Remove is not supported in Iterators");
-        }
-
-        @Override
-        public void close() {
-            codec.close(source);
-        }
-
-        @Override
-        public WFIterator iterator() {
-            return this;
-        }
-    }
-
-    /**
-     * Iterator for a query interval
-     */
-    class QueryIterator implements CloseableTribbleIterator<T> {
-        private String chrAlias;
-        int start;
-        int end;
-        private T currentRecord;
-        private SOURCE source;
-        private SeekableStream mySeekableStream;
-        private Iterator<Block> blockIterator;
-
-
-        public QueryIterator(final String chr, final int start, final int end, final List<Block> blocks) throws IOException {
-            this.start = start;
-            this.end = end;
-            mySeekableStream = getSeekableStream();
-            blockIterator = blocks.iterator();
-            advanceBlock();
-            readNextRecord();
-
-            // The feature chromosome might not be the query chromosome, due to alias definitions.  We assume
-            // the chromosome of the first record is correct and record it here.  This is not pretty.
-            chrAlias = (currentRecord == null ? chr : currentRecord.getChr());
-
-        }
-
-
-        public boolean hasNext() {
-            return currentRecord != null;
-        }
-
-        public T next() {
-            final T ret = currentRecord;
-            try {
-                readNextRecord();
-            } catch (IOException e) {
-                throw new RuntimeException("Unable to read the next record, the last record was at " +
-                        ret.getChr() + ":" + ret.getStart() + "-" + ret.getEnd(), e);
-            }
-            return ret;
-        }
-
-
-        private void advanceBlock() throws IOException {
-            while (blockIterator != null && blockIterator.hasNext()) {
-                final Block block = blockIterator.next();
-                if (block.getSize() > 0) {
-                    final int bufferSize = Math.min(2000000, block.getSize() > 100000000 ? 10000000 : (int) block.getSize());
-                    source = codec.makeSourceFromStream(new PositionalBufferedStream(new BlockStreamWrapper(mySeekableStream, block), bufferSize));
-                    // note we don't have to skip the header here as the block should never start in the header
-                    return;
-                }
-            }
-
-            // If we get here the blocks are exhausted, set reader to null
-            if (source != null) {
-                codec.close(source);
-                source = null;
-            }
-        }
-
-        /**
-         * Advance to the next record in the query interval.
-         *
-         * @throws IOException
-         */
-        private void readNextRecord() throws IOException {
-
-            if (source == null) {
-                return;  // <= no more features to read
-            }
-
-            currentRecord = null;
-
-            while (true) {   // Loop through blocks
-                while (!codec.isDone(source)) {  // Loop through current block
-                    final T f;
-                    try {
-                        f = codec.decode(source);
-                        if (f == null) {
-                            continue;   // Skip
-                        }
-                        if ((chrAlias != null && !f.getChr().equals(chrAlias)) || f.getStart() > end) {
-                            if (blockIterator.hasNext()) {
-                                advanceBlock();
-                                continue;
-                            } else {
-                                return;    // Done
-                            }
-                        }
-                        if (f.getEnd() < start) {
-                            continue;   // Skip
-                        }
-
-                        currentRecord = f;     // Success
-                        return;
-
-                    } catch (TribbleException e) {
-                        e.setSource(path);
-                        throw e;
-                    } catch (NumberFormatException e) {
-                        final String error = "Error parsing line: " + source;
-                        throw new TribbleException.MalformedFeatureFile(error, path, e);
-                    }
-                }
-                if (blockIterator != null && blockIterator.hasNext()) {
-                    advanceBlock();   // Advance to next block
-                } else {
-                    return;   // No blocks left, we're done.
-                }
-            }
-        }
-
-
-        public void remove() {
-            throw new UnsupportedOperationException("Remove is not supported.");
-        }
-
-
-        public void close() {
-            // Note that this depends on BlockStreamWrapper not actually closing the underlying stream
-            codec.close(source);
-            if (!reuseStreamInQuery()) {
-                // if we are going to reuse the underlying stream we don't close the underlying stream.
-                try {
-                    mySeekableStream.close();
-                } catch (IOException e) {
-                    throw new TribbleException("Couldn't close seekable stream", e);
-                }
-            }
-        }
-
-        public Iterator<T> iterator() {
-            return this;
-        }
-    }
-
-
-    /**
-     * Wrapper around a SeekableStream that limits reading to the specified "block" of bytes.  Attempts to
-     * read beyond the end of the block should return -1  (EOF).
-     */
-    static class BlockStreamWrapper extends InputStream {
-
-        SeekableStream seekableStream;
-        long maxPosition;
-
-        BlockStreamWrapper(final SeekableStream seekableStream, final Block block) throws IOException {
-            this.seekableStream = seekableStream;
-            seekableStream.seek(block.getStartPosition());
-            maxPosition = block.getEndPosition();
-        }
-
-        @Override
-        public int read() throws IOException {
-            return (seekableStream.position() > maxPosition) ? -1 : seekableStream.read();
-        }
-
-        @Override
-        public int read(final byte[] bytes, final int off, final int len) throws IOException {
-            // note the careful treatment here to ensure we can continue to
-            // read very long > Integer sized blocks
-            final long maxBytes = maxPosition - seekableStream.position();
-            if (maxBytes <= 0) {
-                return -1;
-            }
-
-            final int bytesToRead = (int) Math.min(len, Math.min(maxBytes, Integer.MAX_VALUE));
-            return seekableStream.read(bytes, off, bytesToRead);
-
-        }
-    }
-
-
-}
diff --git a/src/java/org/broad/tribble/annotation/Strand.java b/src/java/org/broad/tribble/annotation/Strand.java
deleted file mode 100644
index efac6d0..0000000
--- a/src/java/org/broad/tribble/annotation/Strand.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package org.broad.tribble.annotation;
-
-/**
- * Enum for strand, which can be encoded as string
- */
-public enum Strand {
-    POSITIVE("+"), NEGATIVE("-"), NONE("!");  // not really sure what we should do for the NONE Enum
-
-    /**
-     * How we represent the strand information as text
-     */
-    private String encoding;
-    Strand(String str) {
-        encoding = str;
-    }
-
-    /**
-     * provide a way to take an encoding string, and produce a Strand
-     * @param encoding the encoding string
-     * @return a Strand object, if an appropriate one cannot be located an IllegalArg exception
-     */
-    public static Strand toStrand(String encoding) {
-        for (Strand st : Strand.values())
-            if (st.encoding.equals(encoding))
-                return st;
-        throw new IllegalArgumentException("Unable to match encoding to Strand enum for encoding string " + encoding);
-    }
-
-}
\ No newline at end of file
diff --git a/src/java/org/broad/tribble/bed/BEDCodec.java b/src/java/org/broad/tribble/bed/BEDCodec.java
deleted file mode 100644
index 90dcdfb..0000000
--- a/src/java/org/broad/tribble/bed/BEDCodec.java
+++ /dev/null
@@ -1,227 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package org.broad.tribble.bed;
-
-import org.broad.tribble.AsciiFeatureCodec;
-import org.broad.tribble.annotation.Strand;
-import org.broad.tribble.readers.LineIterator;
-import org.broad.tribble.util.ParsingUtils;
-
-import java.util.regex.Pattern;
-
-/**
- * Codec for parsing BED file, as described by UCSC
- * See https://genome.ucsc.edu/FAQ/FAQformat.html#format1
- *
- * @author jrobinso
- *         Date: Dec 20, 2009
- */
-public class BEDCodec extends AsciiFeatureCodec<BEDFeature> {
-
-    private static final Pattern SPLIT_PATTERN = Pattern.compile("\\t|( +)");
-    private final int startOffsetValue;
-
-    /**
-     * Calls {@link #BEDCodec(StartOffset)} with an argument
-     * of {@code StartOffset.ONE}
-     */
-    public BEDCodec() {
-        this(StartOffset.ONE);
-    }
-
-
-    /**
-     * BED format is 0-based, but Tribble is 1-based.
-     * Set desired start position at either ZERO or ONE
-     */
-    public BEDCodec(final StartOffset startOffset) {
-        super(BEDFeature.class);
-        this.startOffsetValue = startOffset.value();
-    }
-
-
-    public BEDFeature decodeLoc(String line) {
-        return decode(line);
-    }
-
-    @Override
-    public BEDFeature decode(String line) {
-
-        if (line.trim().length() == 0) {
-            return null;
-        }
-
-        if (line.startsWith("#") || line.startsWith("track") || line.startsWith("browser")) {
-            this.readHeaderLine(line);
-            return null;
-        }
-
-        String[] tokens = SPLIT_PATTERN.split(line, -1);
-        return decode(tokens);
-    }
-
-    @Override
-    public Object readActualHeader(LineIterator reader) {
-        return null;
-    }
-
-    public BEDFeature decode(String[] tokens) {
-        int tokenCount = tokens.length;
-
-        // The first 3 columns are non optional for BED.  We will relax this
-        // and only require 2.
-
-        if (tokenCount < 2) {
-            return null;
-        }
-
-        String chr = tokens[0];
-
-        // The BED format uses a first-base-is-zero convention,  Tribble features use 1 => add 1.
-        int start = Integer.parseInt(tokens[1]) + startOffsetValue;
-
-        int end = start;
-        if (tokenCount > 2) {
-            end = Integer.parseInt(tokens[2]);
-        }
-
-        FullBEDFeature feature = new FullBEDFeature(chr, start, end);
-
-        // The rest of the columns are optional.  Stop parsing upon encountering
-        // a non-expected value
-
-        // Name
-        if (tokenCount > 3) {
-            String name = tokens[3].replaceAll("\"", "");
-            feature.setName(name);
-        }
-
-        // Score
-        if (tokenCount > 4) {
-            try {
-                float score = Float.parseFloat(tokens[4]);
-                feature.setScore(score);
-            } catch (NumberFormatException numberFormatException) {
-
-                // Unexpected, but does not invalidate the previous values.
-                // Stop parsing the line here but keep the feature
-                // Don't log, would just slow parsing down.
-                return feature;
-            }
-        }
-
-        // Strand
-        if (tokenCount > 5) {
-            String strandString = tokens[5].trim();
-            char strand = (strandString.length() == 0)
-                    ? ' ' : strandString.charAt(0);
-
-            if (strand == '-') {
-                feature.setStrand(Strand.NEGATIVE);
-            } else if (strand == '+') {
-                feature.setStrand(Strand.POSITIVE);
-            } else {
-                feature.setStrand(Strand.NONE);
-            }
-        }
-
-        //Color
-        if (tokenCount > 8) {
-            String colorString = tokens[8];
-            feature.setColor(ParsingUtils.parseColor(colorString));
-        }
-
-        // Coding information is optional
-        if (tokenCount > 11) {
-            createExons(start, tokens, feature, feature.getStrand());
-        }
-
-        return feature;
-    }
-
-    protected boolean readHeaderLine(String line) {
-        //We don't parse BED header
-        return false;
-    }
-
-    private void createExons(int start, String[] tokens, FullBEDFeature gene,
-                             Strand strand) throws NumberFormatException {
-
-        int cdStart = Integer.parseInt(tokens[6]) + startOffsetValue;
-        int cdEnd = Integer.parseInt(tokens[7]);
-
-        int exonCount = Integer.parseInt(tokens[9]);
-        String[] exonSizes = new String[exonCount];
-        String[] startsBuffer = new String[exonCount];
-        ParsingUtils.split(tokens[10], exonSizes, ',');
-        ParsingUtils.split(tokens[11], startsBuffer, ',');
-
-        int exonNumber = (strand == Strand.NEGATIVE ? exonCount : 1);
-
-        if (startsBuffer.length == exonSizes.length) {
-            for (int i = 0; i < startsBuffer.length; i++) {
-                int exonStart = start + Integer.parseInt(startsBuffer[i]);
-                int exonEnd = exonStart + Integer.parseInt(exonSizes[i]) - 1;
-                gene.addExon(exonStart, exonEnd, cdStart, cdEnd, exonNumber);
-
-                if (strand == Strand.NEGATIVE) {
-                    exonNumber--;
-                } else {
-                    exonNumber++;
-                }
-            }
-        }
-    }
-
-    @Override
-    public boolean canDecode(final String path) {
-        return path.toLowerCase().endsWith(".bed");
-    }
-
-    public int getStartOffset() {
-        return this.startOffsetValue;
-    }
-
-    /**
-     * Indicate whether co-ordinates or 0-based or 1-based.
-     * <p/>
-     * Tribble uses 1-based, BED files use 0.
-     * e.g.:
-     * start_position = bedline_start_position - startIndex.value()
-     */
-    public enum StartOffset {
-        ZERO(0),
-        ONE(1);
-        private int start;
-
-        private StartOffset(int start) {
-            this.start = start;
-        }
-
-        public int value() {
-            return this.start;
-        }
-    }
-
-}
diff --git a/src/java/org/broad/tribble/bed/BEDFeature.java b/src/java/org/broad/tribble/bed/BEDFeature.java
deleted file mode 100644
index 6870f98..0000000
--- a/src/java/org/broad/tribble/bed/BEDFeature.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package org.broad.tribble.bed;
-
-import org.broad.tribble.Feature;
-import org.broad.tribble.annotation.Strand;
-
-import java.awt.*;
-
-/**
- * @author jrobinso
- * @date Dec 24, 2009
- */
-public interface BEDFeature extends Feature {
-    Strand getStrand();
-
-    String getType();
-
-    Color getColor();
-
-    String getDescription();
-
-    java.util.List<FullBEDFeature.Exon> getExons();
-
-    String getName();
-
-    float getScore();
-
-    String getLink();
-}
diff --git a/src/java/org/broad/tribble/bed/FullBEDFeature.java b/src/java/org/broad/tribble/bed/FullBEDFeature.java
deleted file mode 100644
index 0aef4c9..0000000
--- a/src/java/org/broad/tribble/bed/FullBEDFeature.java
+++ /dev/null
@@ -1,433 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package org.broad.tribble.bed;
-
-import org.broad.tribble.annotation.Strand;
-
-import java.util.ArrayList;
-
-/**
- * Object for full BED file.
- */
-public class FullBEDFeature extends SimpleBEDFeature implements BEDFeature {
-
-    private java.util.List<Exon> exons = new ArrayList();
-
-    public FullBEDFeature(String chr, int start, int end) {
-        super(start, end, chr);
-
-    }
-
-    public java.util.List<Exon> getExons() {
-        return exons;
-    }
-
-    public void setExons(java.util.List<Exon> exons) {
-        this.exons = exons;
-    }
-
-    public void addExon(Exon exon) {
-        if (exon == null) {
-            this.exons = new ArrayList();
-        }
-        exons.add(exon);
-    }
-
-    public void addExon(int exonStart, int exonEnd, int cdStart, int cdEnd, int exonNumber) {
-        Exon exon = new Exon(exonStart, exonEnd);
-        exon.setCodingStart(cdStart);
-        exon.setCodingEnd(cdEnd);
-        exon.setNumber(exonNumber);
-        addExon(exon);
-    }
-
-    /**
-     * A sub region of a feature.  For example,  a Gene exon
-     *
-     * @author jrobinso
-     */
-    public class Exon {
-
-        int start;
-        int end;
-        /**
-         * The index of the exon relative to the start codon.  The exon with the start
-         * codon is number "1".
-         */
-        private int number;
-        private int readingFrame = -1;
-
-        /**
-         * Coding start position.  This is the leftmost position of the coding region, not neccessarily the 5'utr end
-         */
-        private int codingStart;
-        private int codingEnd;
-        boolean utr = false;
-
-        // The position of the first base of this exon relative to the start of the mRNA.  This will correspond
-        // to either the beginning or end of the exon, depending on the strand
-        private int mrnaBase = -1;
-
-
-        public void setMrnaBase(int base) {
-            this.mrnaBase = base;
-        }
-
-
-        /**
-         * Constructs ...
-         *
-         * @param start
-         * @param end
-         */
-        public Exon(int start, int end) {
-            this.start = start;
-            this.end = end;
-
-            // By default the entre exon is a coding region
-            this.codingStart = start;
-            this.codingEnd = end;
-        }
-
-        /**
-         * Flag indicating that the entire exon is the UTR.
-         *
-         * @param utr
-         */
-        public void setUTR(boolean utr) {
-            this.utr = utr;
-            if (strand == Strand.POSITIVE) {
-                codingStart = codingEnd = end;
-            } else {
-                codingStart = codingEnd = start;
-            }
-        }
-
-        /**
-         * Method description
-         *
-         * @param codingStart
-         */
-        public void setCodingStart(int codingStart) {
-            this.codingStart = Math.max(start, codingStart);
-        }
-
-        /**
-         * Method description
-         *
-         * @param codingEnd
-         */
-        public void setCodingEnd(int codingEnd) {
-            this.codingEnd = Math.min(end, codingEnd);
-        }
-
-        /**
-         * Method description
-         *
-         * @param offset
-         */
-        public void setReadingFrame(int offset) {
-            this.readingFrame = offset;
-        }
-
-        /**
-         * Method description
-         *
-         * @param phase
-         */
-        public void setPhase(int phase) {
-            if (strand == Strand.POSITIVE) {
-                readingFrame = phase;
-            } else if (strand == Strand.NEGATIVE) {
-                int modLen = (getCodingLength() - phase) % 3;
-                readingFrame = modLen;
-            }
-        }
-
-
-        /**
-         * Method description
-         *
-         * @return
-         */
-        public int getCdStart() {
-            return codingStart;
-        }
-
-        /**
-         * Method description
-         *
-         * @return
-         */
-        public int getCdEnd() {
-            return this.codingEnd;
-        }
-
-        /**
-         * Method description
-         *
-         * @return
-         */
-        public int getCodingLength() {
-            return utr ? 0 : Math.max(0, codingEnd - codingStart + 1);
-        }
-
-        /**
-         * This is exposed for unit tests.
-         *
-         * @return
-         */
-        int getReadingShift() {
-            return readingFrame;
-        }
-
-
-        public String getValueString(double position) {
-            String msg = number > 0 ? "Exon number: " + number : "";
-            return msg;
-        }
-
-        public int getNumber() {
-            return number;
-        }
-
-        public void setNumber(int number) {
-            this.number = number;
-        }
-    }
-
-
-    public class Exon2 {
-
-        /**
-         * The index of the exon relative to the start codon.  The exon with the start
-         * codon is number "1".
-         */
-        private int number;
-        private int readingFrame = -1;
-
-        /**
-         * Coding start position.  This is the leftmost position of the coding region, not neccessarily the 5'utr end
-         */
-        private int start;
-        private int end;
-        private int codingStart;
-        private int codingEnd;
-        //private AminoAcidSequence aminoAcidSequence;
-        boolean utr = false;
-
-        // The position of the first base of this exon relative to the start of the mRNA.  This will correspond
-        // to either the beginning or end of the exon, depending on the strand
-        private int mrnaBase = -1;
-
-
-        public Exon2(int start, int end, int codingStart, int codingDne) {
-
-            this.start = start;
-            this.end = end;
-            this.codingStart = codingStart;
-            this.codingEnd = codingDne;
-        }
-
-
-        public void setMrnaBase(int base) {
-            this.mrnaBase = base;
-        }
-
-        public int getAminoAcidNumber(int genomeCoordinate) {
-            if (mrnaBase < 0) {
-                return -1;
-            }
-            if (genomeCoordinate < getStart() || genomeCoordinate > getEnd()) {
-                throw new IndexOutOfBoundsException();
-            }
-            if (getStrand() == Strand.POSITIVE) {
-                int mrnaCoord = mrnaBase + (genomeCoordinate - codingStart) - 1;
-                return mrnaCoord < 0 ? -1 : mrnaCoord / 3 + 1;
-
-            } else if (getStrand() == Strand.NEGATIVE) {
-                int mrnaCoord = mrnaBase + (codingEnd - genomeCoordinate);
-                return mrnaCoord < 0 ? -1 : mrnaCoord / 3 + 1;
-
-            } else {
-                return 0;
-            }
-        }
-
-        /**
-         * Flag indicating that the entire exon is the UTR.
-         *
-         * @param utr
-         */
-        public void setUTR(boolean utr) {
-            this.utr = utr;
-            if (getStrand() == Strand.POSITIVE) {
-                codingStart = codingEnd = getEnd();
-            } else {
-                codingStart = codingEnd = getStart();
-            }
-        }
-
-        /**
-         * Method description
-         *
-         * @param codingStart
-         */
-        public void setCodingStart(int codingStart) {
-            this.codingStart = Math.max(getStart(), codingStart);
-        }
-
-        /**
-         * Method description
-         *
-         * @param codingEnd
-         */
-        public void setCodingEnd(int codingEnd) {
-            this.codingEnd = Math.min(getEnd(), codingEnd);
-        }
-
-        /**
-         * Method description
-         *
-         * @param offset
-         */
-        public void setReadingFrame(int offset) {
-            this.readingFrame = offset;
-        }
-
-        /**
-         * Method description
-         *
-         * @param phase
-         */
-        public void setPhase(int phase) {
-            if (getStrand() == Strand.POSITIVE) {
-                readingFrame = phase;
-            } else if (getStrand() == Strand.NEGATIVE) {
-                int modLen = (getCodingLength() - phase) % 3;
-                readingFrame = modLen;
-            }
-        }
-
-
-        /**
-         * Method description
-         *
-         * @return
-         */
-        public int getCdStart() {
-            return codingStart;
-        }
-
-        /**
-         * Method description
-         *
-         * @return
-         */
-        public int getCdEnd() {
-            return this.codingEnd;
-        }
-
-        /**
-         * Method description
-         *
-         * @return
-         */
-        public int getCodingLength() {
-            return utr ? 0 : Math.max(0, codingEnd - codingStart);
-        }
-
-        /**
-         * This is exposed for unit tests.
-         *
-         * @return
-         */
-        int getReadingShift() {
-            return readingFrame;
-        }
-
-
-        /**
-         * Method description
-         *
-         * @return
-         */
-        /*
-        public AminoAcidSequence getAminoAcidSequence() {
-            if (aminoAcidSequence == null) {
-                computeAminoAcidSequence();
-            }
-            return aminoAcidSequence;
-        }
-        */
-
-
-        /*
-        public void setAminoAcidSequence(AminoAcidSequence aminoAcidSequence) {
-            this.aminoAcidSequence = aminoAcidSequence;
-        }
-        */
-
-        /*
-        private void computeAminoAcidSequence() {
-
-            if (utr) {
-                return;
-            }
-            int start = getStart();
-            int end = getEnd();
-            String chr = getChr();
-            if (readingFrame >= 0) {
-                int readStart = (codingStart > start) ? codingStart : start + readingFrame;
-                int readEnd = Math.min(end, codingEnd);
-                if (readEnd > readStart + 3) {
-                    String genome = IGVModel.getInstance().getViewContext().getGenomeId();
-                    aminoAcidSequence = AminoAcidManager.getAminoAcidSequence(genome, chr, readStart,
-                            readEnd, getStrand());
-                }
-            }
-        }
-        */
-
-
-        public String getValueString(double position) {
-            String msg = number > 0 ? "Exon number: " + number : "";
-            int aaNumber = this.getAminoAcidNumber((int) position);
-            if (aaNumber > 0) {
-                msg += "<br>Amino acid number: " + aaNumber;
-            }
-            return msg;
-        }
-
-        public int getNumber() {
-            return number;
-        }
-
-        public void setNumber(int number) {
-            this.number = number;
-        }
-
-    }
-
-}
diff --git a/src/java/org/broad/tribble/bed/SimpleBEDFeature.java b/src/java/org/broad/tribble/bed/SimpleBEDFeature.java
deleted file mode 100644
index 0e8bdc5..0000000
--- a/src/java/org/broad/tribble/bed/SimpleBEDFeature.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package org.broad.tribble.bed;
-
-import org.broad.tribble.annotation.Strand;
-
-import java.awt.*;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- *  Feature from a BED file without exon blocks.
- */
-public class SimpleBEDFeature implements BEDFeature {
-    protected String chr;
-    protected int start = -1;
-    protected int end = -1;
-    protected Strand strand = Strand.NONE;
-    private String name = "";
-    private float score = Float.NaN;
-    private String type = "";
-    private Color color;
-    private String description;//protected float confidence;
-    //private String identifier;
-    private String link;
-
-    public SimpleBEDFeature(int start, int end, String chr) {
-        this.start = start;
-        this.end = end;
-        this.chr = chr;
-    }
-
-    public String getChr() {
-        return chr;
-    }
-
-    public int getStart() {
-        return start;
-    }
-
-    public int getEnd() {
-        return end;
-    }
-
-    public Strand getStrand() {
-        return strand;
-    }
-
-    public void setStrand(Strand strand) {
-        this.strand = strand;
-    }
-
-    public void setChr(String chr) {
-        this.chr = chr;
-    }
-
-    public void setStart(int start) {
-        this.start = start;
-    }
-
-    public void setEnd(int end) {
-        this.end = end;
-    }
-
-    public String getType() {
-        return type;
-    }
-
-    public void setType(String type) {
-        this.type = type;
-    }
-
-    public Color getColor() {
-        return color;
-    }
-
-    public void setColor(Color color) {
-        this.color = color;
-    }
-
-    public String getDescription() {
-        return description;
-    }
-
-    public void setDescription(String description) {
-        this.description = description;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public float getScore() {
-        return score;
-    }
-
-    public void setScore(float score) {
-        this.score = score;
-    }
-
-    public String getLink() {
-        return link;
-    }
-
-    public void setLink(String link) {
-        this.link = link;
-    }
-
-    final static List<FullBEDFeature.Exon> emptyExonList = new ArrayList();
-
-    public java.util.List<FullBEDFeature.Exon> getExons() {
-        return emptyExonList;
-    }
-}
diff --git a/src/java/org/broad/tribble/dbsnp/OldDbSNPCodec.java b/src/java/org/broad/tribble/dbsnp/OldDbSNPCodec.java
deleted file mode 100644
index 5e241fb..0000000
--- a/src/java/org/broad/tribble/dbsnp/OldDbSNPCodec.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package org.broad.tribble.dbsnp;
-
-import org.broad.tribble.AsciiFeatureCodec;
-import org.broad.tribble.Feature;
-import org.broad.tribble.annotation.Strand;
-import org.broad.tribble.readers.LineIterator;
-
-
-/**
- * @author aaron
- *
- * Example format:
- * 585 chr1 433 433 rs56289060  0  +  - - -/C  genomic  insertion unknown 0  0  unknown  between  1
- * 585 chr1 491 492 rs55998931  0  +  C C C/T  genomic  single   unknown 0 0 unknown exact 1
- */
-public class OldDbSNPCodec extends AsciiFeatureCodec<OldDbSNPFeature> {
-
-    // the number of tokens we expect to parse from a dbSNP line
-    static final int expectedTokenCount = 18;
-    
-    public OldDbSNPCodec() {
-        super(OldDbSNPFeature.class);
-    }
-
-    public Feature decodeLoc(String line) {
-        return decode(line);
-    }
-    
-    /**
-     * Decode a line as a db SNP Feature.
-     *
-     * @param line the line to decode
-     *
-     * @return Return the Feature encoded by the line, or null if the line does not represent a feature (e.g. is
-     *         a comment)
-     *
-     * The ordering of db SNP fields from the UCSC track browser:
-     * 1 bin
-     * 2 chromosome
-     * 3 chromosome Start
-     * 4 chromosome End
-     * 5 name
-     * 6 score
-     * 7 strand
-     * 8 reference base NCBI
-     * 9 reference base UCSC
-     * 10 observed base
-     * 11 mol. Type
-     * 12 class
-     * 13 valid
-     * 14 avHet
-     * 15 avHetSE
-     * 16 functions
-     * 17 locType
-     * 18 weight
-     */
-    public OldDbSNPFeature decode(String line) {
-        // we may be asked to process a header line; ignore it
-        if (line.startsWith("#")) return null;
-
-        // split the line
-        String[] tokens = line.split("\\t+");
-        return decode(tokens);
-    }
-
-    @Override
-    public Object readActualHeader(final LineIterator reader) {
-        return null;
-    }
-
-    public OldDbSNPFeature decode(String[] tokens){
-        // check to see if we've parsed the string into the right number of tokens (expectedTokenCount)
-        if (tokens.length != expectedTokenCount)
-            return null;
-        //    throw new CodecLineParsingException("the dbSNP line didn't have the expected number of tokens " +
-        //                                        "(expected = " + expectedTokenCount + ", saw = " + tokens.length + " on " +
-        //
-            //                                         "line = " + line + ")");
-        // create a new feature from the line
-        int start = Integer.valueOf(tokens[2])+1;
-        int stop = Integer.valueOf(tokens[3]);
-        stop = (stop < start) ? start : stop; // Indels can be of length zero in dbSNP, we make them length one
-        OldDbSNPFeature feature = new OldDbSNPFeature(tokens[1],
-						      start,
-						      stop);
-
-        feature.setRsID(tokens[4]);
-        feature.setScore(Integer.valueOf(tokens[5]));
-        feature.setStrand(tokens[6].equals("+") ? Strand.POSITIVE : Strand.NEGATIVE);
-        feature.setNCBIRefBase(tokens[7]);
-        feature.setUCSCRefBase(tokens[8]);
-        // split the observed bases
-        feature.setObserved(tokens[9].split("/"));        
-        feature.setMolType(tokens[10]);
-        feature.setVariantType(tokens[11]);
-        feature.setValidationStatus(tokens[12]);
-        feature.setAvHet(Double.valueOf(tokens[13]));
-        feature.setAvHetSE(Double.valueOf(tokens[14]));
-        feature.setFunction(tokens[15]);
-        feature.setLocationType(tokens[16]);
-        feature.setWeight(Integer.valueOf(tokens[17]));
-
-        // return the setup feature                                                                                
-        return feature;
-    }
-}
diff --git a/src/java/org/broad/tribble/dbsnp/OldDbSNPFeature.java b/src/java/org/broad/tribble/dbsnp/OldDbSNPFeature.java
deleted file mode 100644
index 2c5547c..0000000
--- a/src/java/org/broad/tribble/dbsnp/OldDbSNPFeature.java
+++ /dev/null
@@ -1,212 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package org.broad.tribble.dbsnp;
-
-import org.broad.tribble.Feature;
-import org.broad.tribble.annotation.Strand;
-
-
-/**
- * @author aaron
- *
- * This class represents a DBSNP track, as retrieved from the UCSC browser.
- *
- * Example format:
- * bin	chrom	chromStart	chromEnd	rsID	score	strand	refNCBI	refUCSC	observed	molType	class	valid	avHet	avHetSE	func	locType	weight
- * 585 chr1 433 433 rs56289060  0  +  - - -/C  genomic  insertion unknown 0  0  unknown  between  1
- * 585 chr1 491 492 rs55998931  0  +  C C C/T  genomic  single   unknown 0 0 unknown exact 1
- */
-public class OldDbSNPFeature implements Feature {
-
-    private String contig;                      // our contig location
-    private int start;                          // our starting location, zero based
-    private int stop;                           // our stopping location
-
-    private String rsID = "";                   // the snp indentifier
-    private int score = 0;
-    private Strand strand = Strand.NONE;        // Which DNA strand contains the observed alleles
-
-    private String ncbiRefBase = "N";             // the reference base according to NCBI
-    private String ucscRefBase = "N";             // the reference base according to UCSC
-
-    private String[] mObserved = null;          // The sequences of the observed alleles
-
-    private String molType = "genomic";         // molecule type
-    private String classType = "unknown";       // The class of variant (simple, insertion, deletion, range, etc.)
-    private String validationStatus;            // The validation status of the SNP
-
-    private double avHet = 0.0;                 // The average heterozygosity from all observations
-    private double avHetSE = 0.0;               // The Standard Error for the average heterozygosity
-
-    private String function = "unknown";        // The functional category of the SNP (coding-synon, coding-nonsynon, intron, etc.)
-    private String locationType = "unknown";    // How the variant affects the reference sequence
-    private int weight = 0;                     // The quality of the alignment
-
-    /**
-     * create the dbSNP feature, given the following information:
-     *
-     * @param contig the contig rsID
-     * @param start  the start position, one based
-     * @param stop   the stop position, one based
-     */
-    OldDbSNPFeature(String contig,
-		    int start,
-		    int stop) {
-        this.contig = contig;
-        this.start = start;
-        this.stop = stop;
-    }
-
-    /*
-     * the required getting and setter methods
-     */
-
-    public String getChr() {
-        return contig;
-    }
-
-    public int getStart() {
-        return start;
-    }
-
-    public int getEnd() {
-        return stop;
-    }
-
-    /*
-     * getter and setter methods for the rest of the dbSNP data
-     */
-
-    public int getScore() {
-        return score;
-    }
-
-    public void setScore(int score) {
-        this.score = score;
-    }
-
-    public Strand getStrand() {
-        return strand;
-    }
-
-    public void setStrand(Strand strand) {
-        this.strand = strand;
-    }
-
-    public String getNCBIRefBase() {
-        return ncbiRefBase;
-    }
-
-    public void setNCBIRefBase(String ncbiRefBase) {
-        this.ncbiRefBase = ncbiRefBase;
-    }
-
-    public String getUCSCRefBase() {
-        return ucscRefBase;
-    }
-
-    public void setUCSCRefBase(String ucscRefBase) {
-        this.ucscRefBase = ucscRefBase;
-    }
-
-    public String[] getObserved() {
-        return mObserved;
-    }
-
-    public void setObserved(String[] mObserved) {
-        this.mObserved = mObserved;
-    }
-
-    public String getMolType() {
-        return molType;
-    }
-
-    public void setMolType(String molType) {
-        this.molType = molType;
-    }
-
-    public String getVariantType() {
-        return classType;
-    }
-
-    public void setVariantType(String classType) {
-        this.classType = classType;
-    }
-
-    public String getValidationStatus() {
-        return validationStatus;
-    }
-
-    public void setValidationStatus(String validationStatus) {
-        this.validationStatus = validationStatus;
-    }
-
-    public double getAvHet() {
-        return avHet;
-    }
-
-    public void setAvHet(double avHet) {
-        this.avHet = avHet;
-    }
-
-    public double getAvHetSE() {
-        return avHetSE;
-    }
-
-    public void setAvHetSE(double avHetSE) {
-        this.avHetSE = avHetSE;
-    }
-
-    public String getFunction() {
-        return function;
-    }
-
-    public void setFunction(String function) {
-        this.function = function;
-    }
-
-    public String getLocationType() {
-        return locationType;
-    }
-
-    public void setLocationType(String locationType) {
-        this.locationType = locationType;
-    }
-
-    public int getWeight() {
-        return weight;
-    }
-
-    public void setWeight(int weight) {
-        this.weight = weight;
-    }
-
-    public String getRsID() {
-        return rsID;
-    }
-
-    public void setRsID(String rsID) {
-        this.rsID = rsID;
-    }
-}
diff --git a/src/java/org/broad/tribble/example/CountRecords.java b/src/java/org/broad/tribble/example/CountRecords.java
deleted file mode 100644
index 429926c..0000000
--- a/src/java/org/broad/tribble/example/CountRecords.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package org.broad.tribble.example;
-
-import org.broad.tribble.AbstractFeatureReader;
-import org.broad.tribble.Feature;
-import org.broad.tribble.FeatureCodec;
-import org.broad.tribble.Tribble;
-import org.broad.tribble.bed.BEDCodec;
-import org.broad.tribble.dbsnp.OldDbSNPCodec;
-import org.broad.tribble.gelitext.GeliTextCodec;
-import org.broad.tribble.index.Index;
-import org.broad.tribble.index.IndexFactory;
-import org.broad.tribble.index.linear.LinearIndex;
-import org.broad.tribble.util.LittleEndianOutputStream;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.Iterator;
-
-/**
- * An example of how to index a feature file, and then count all the records in the file.
- * This is also useful for testing the feature reader
- */
-public class CountRecords {
-
-    /**
-     *  The main method of this class:
-     *  1) checks to see that the feature file exists
-     *  2) loads an index from disk, if one doesn't exist, it creates it and writes it to disk
-     *  3) creates a FeatureSource
-     *  4) iterates over the records, emitting a final tally for the number of features seen
-     *
-     * @param args a single parameter, the file name to load
-     */
-    public static void main(String[] args) {
-        
-        // check yourself before you wreck yourself - we require one arg, the input file
-        if (args.length > 2)
-            printUsage();
-
-        // our feature file
-        File featureFile = new File(args[0]);
-        if (!featureFile.exists()) {
-            System.err.println("File " + featureFile.getAbsolutePath() + " doesnt' exist");
-            printUsage();
-        }
-
-        int optimizeIndex = args.length == 2 ? Integer.valueOf(args[1]) : -1;
-
-        // determine the codec
-        FeatureCodec codec = getFeatureCodec(featureFile);
-
-        runWithIndex(featureFile, codec, optimizeIndex);
-
-    }
-
-    /**
-     *
-     * @see org.broad.tribble.index.linear.LinearIndex#optimize(double)
-     * @param featureInput  File containing features
-     * @param codec  Codec used to read the features
-     * @param optimizeThreshold Threshold used to optimize the linear index
-     * @return
-     */
-    public static long runWithIndex(File featureInput, FeatureCodec codec, int optimizeThreshold) {
-        // get an index
-        Index index = loadIndex(featureInput, codec);
-        if ( optimizeThreshold != -1 )
-            ((LinearIndex)index).optimize(optimizeThreshold);
-
-        // get a reader
-        AbstractFeatureReader reader = null;
-        try {
-            reader =   AbstractFeatureReader.getFeatureReader(featureInput.getAbsolutePath(), codec, index);
-
-            // now read iterate over the file
-            long recordCount = 0l;
-
-            // this call could be replaced with a query
-            Iterator<Feature> iter = reader.iterator();
-
-            // cycle through the iterators
-            while (iter.hasNext()) {
-                Feature feat = iter.next();
-                ++recordCount;
-            }
-
-            System.err.println("We saw " + recordCount + " record in file " + featureInput);
-            return recordCount;
-
-        } catch (IOException e) {
-            throw new RuntimeException("Something went wrong while reading feature file " + featureInput, e);
-        }
-    }
-
-    /**
-     * print usage information
-     */
-    public static void printUsage() {
-        System.err.println("Usage: java -jar CountRecords.jar <inputFile>");
-        System.err.println("    Where input can be of type: VCF (ends in .vcf or .VCF");
-        System.err.println("                                Bed (ends in .bed or .bed");
-        System.err.println("                                OldDbSNP (ends in .snp or .rod");
-        /**
-         * you could add others here; also look in the GATK code-base for an example of a dynamic way
-         * to load Tribble codecs.
-         */
-        System.exit(1);
-    }
-
-    /**
-     *
-     * @param featureFile the feature file
-     * @param codec the codec to decode features with
-     * @return an index instance
-     */
-    public static Index loadIndex(File featureFile, FeatureCodec codec) {
-        // lets setup a index file name
-        File indexFile = Tribble.indexFile(featureFile);
-
-        // our index instance;
-        Index index = null;
-
-        // can we read the index file
-        if (indexFile.canRead()) {
-            System.err.println("Loading index from disk for index file -> " + indexFile);
-            index = IndexFactory.loadIndex(indexFile.getAbsolutePath());
-        // else we want to make the index, and write it to disk if possible
-        } else {
-            System.err.println("Creating the index and memory, then writing to disk for index file -> " + indexFile);
-            index = createAndWriteNewIndex(featureFile,indexFile,codec);
-        }
-
-        return index;
-    }
-
-    /**
-     * creates a new index, given the feature file and the codec
-     * @param featureFile the feature file (i.e. .vcf, .bed)
-     * @param indexFile the index file; the location we should be writing the index to
-     * @param codec the codec to read features with
-     * @return an index instance
-     */
-    public static Index createAndWriteNewIndex(File featureFile, File indexFile, FeatureCodec codec) {
-        try {
-            Index index = IndexFactory.createLinearIndex(featureFile, codec);
-
-            // try to write it to disk
-            LittleEndianOutputStream stream = new LittleEndianOutputStream(new FileOutputStream(indexFile));
-            index.write(stream);
-            stream.close();
-
-            return index;
-        } catch (IOException e) {
-            throw new RuntimeException("Unable to create index from file " + featureFile,e);
-        }
-    }
-
-    /**
-     * Return a {@code FeatureCodec} instance appropriate for the given
-     * {@code featureFile}. Codec is generated based on file extension
-     * @param featureFile
-     * @return
-     * @throws IllegalArgumentException If a codec cannot be found
-     */
-    public static FeatureCodec getFeatureCodec(File featureFile) {
-        // quickly determine the codec type
-        //if (featureFile.getName().endsWith(".vcf") || featureFile.getName().endsWith(".VCF") )
-        //    return new VCFCodec();
-        if (featureFile.getName().endsWith(".bed") || featureFile.getName().endsWith(".BED") )
-            return new BEDCodec();
-        if (featureFile.getName().endsWith(".snp") || featureFile.getName().endsWith(".rod") )
-            return new OldDbSNPCodec();
-        if (featureFile.getName().endsWith(".geli.calls") || featureFile.getName().endsWith(".geli") )
-            return new GeliTextCodec();
-        //if (featureFile.getName().endsWith(".txt") || featureFile.getName().endsWith(".TXT") )
-        //    return new SoapSNPCodec();
-        throw new IllegalArgumentException("Unable to determine correct file type based on the file name, for file -> " + featureFile);
-    }
-}
diff --git a/src/java/org/broad/tribble/example/ExampleBinaryCodec.java b/src/java/org/broad/tribble/example/ExampleBinaryCodec.java
deleted file mode 100644
index 0e01df0..0000000
--- a/src/java/org/broad/tribble/example/ExampleBinaryCodec.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package org.broad.tribble.example;
-
-import org.broad.tribble.*;
-import org.broad.tribble.readers.AsciiLineReader;
-import org.broad.tribble.readers.LineIterator;
-import org.broad.tribble.readers.PositionalBufferedStream;
-
-import java.io.*;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-/**
- * An example binary codec that encodes / decodes contig / start / stop values via DataInputStreams
- *
- * @author Mark DePristo
- */
-public class ExampleBinaryCodec extends BinaryFeatureCodec<Feature> {
-    public final static String HEADER_LINE = "# BinaryTestFeature";
-
-    @Override
-    public Feature decodeLoc(final PositionalBufferedStream stream) throws IOException {
-        return decode(stream);
-    }
-
-    @Override
-    public Feature decode(final PositionalBufferedStream stream) throws IOException {
-        DataInputStream dis = new DataInputStream(stream);
-        String contig = dis.readUTF();
-        int start = dis.readInt();
-        int stop = dis.readInt();
-        return new BasicFeature(contig, start, stop);
-    }
-
-    @Override
-    public FeatureCodecHeader readHeader(final PositionalBufferedStream stream) throws IOException {
-        // Construct a reader that does not read ahead (because we don't want to consume data from the stream that is not the header)
-        final AsciiLineReader nonReadAheadLineReader = new AsciiLineReader(stream);
-        final List<String> headerLines = new ArrayList<String>();
-        long headerLengthInBytes = 0;
-        while (stream.peek() == ('#' & 0xff)) { // Look for header lines, which are prefixed by '#'.
-            headerLines.add(nonReadAheadLineReader.readLine());
-            headerLengthInBytes = stream.getPosition();
-        }
-        return new FeatureCodecHeader(headerLines, headerLengthInBytes);
-    }
-
-    @Override
-    public Class<Feature> getFeatureType() {
-
-        return Feature.class;
-    }
-    @Override
-    public boolean canDecode(final String path) {
-        return false;
-    }
-
-    /**
-     * Convenience method that creates an ExampleBinaryCodec file from another feature file.
-     *
-     * For testing purposes really
-     *
-     * @param source file containing the features
-     * @param dest the place to write the binary features
-     * @param codec of the source file features
-     * @throws IOException
-     */
-    public static <FEATURE_TYPE extends Feature> void convertToBinaryTest(final File source, final File dest, final FeatureCodec<FEATURE_TYPE, LineIterator> codec) throws IOException {
-        final FeatureReader<FEATURE_TYPE> reader = AbstractFeatureReader.getFeatureReader(source.getAbsolutePath(), codec, false); // IndexFactory.loadIndex(idxFile));
-        final OutputStream output = new FileOutputStream(dest);
-        ExampleBinaryCodec.convertToBinaryTest(reader, output);
-    }
-
-    /**
-     * Convenience method that creates an ExampleBinaryCodec file from another feature file.
-     *
-     * For testing purposes really
-     *
-     * @throws IOException
-     */
-    public static <FEATURE_TYPE extends Feature> void convertToBinaryTest(final FeatureReader<FEATURE_TYPE> reader, final OutputStream out) throws IOException {
-        DataOutputStream dos = new DataOutputStream(out);
-        dos.writeBytes(HEADER_LINE + "\n");
-        Iterator<FEATURE_TYPE> it = reader.iterator();
-        while ( it.hasNext() ) {
-            final Feature f = it.next();
-            dos.writeUTF(f.getChr());
-            dos.writeInt(f.getStart());
-            dos.writeInt(f.getEnd());
-        }
-        dos.close();
-        reader.close();
-    }
-}
diff --git a/src/java/org/broad/tribble/example/IndexToTable.java b/src/java/org/broad/tribble/example/IndexToTable.java
deleted file mode 100644
index ee636d6..0000000
--- a/src/java/org/broad/tribble/example/IndexToTable.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (c) 2010, The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person
- * obtaining a copy of this software and associated documentation
- * files (the "Software"), to deal in the Software without
- * restriction, including without limitation the rights to use,
- * copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following
- * conditions:
- *
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- */
-
-package org.broad.tribble.example;
-
-import org.broad.tribble.index.IndexFactory;
-import org.broad.tribble.index.linear.LinearIndex;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.PrintStream;
-import java.io.FileNotFoundException;
-
-
-public class IndexToTable {
-
-    /**
-     * this class:
-     *  1) checks to see that the feature file exists
-     *  2) loads an index from disk, if one doesn't exist, it creates it and writes it to disk
-     *  3) Converts the index to a human readable table
-     *  @see LinearIndex#writeTable(java.io.PrintStream)
-     *
-     * @param args 2 parameters:
-     *             1) The path of the file to index
-     *             2) The output file path
-     */
-    public static void main(String[] args) {
-
-        // check yourself before you wreck yourself - we require one arg, the input file
-        if (args.length != 2)
-            printUsage();
-
-        //LinearIndex.enableAdaptiveIndexing = false;
-        LinearIndex idx = (LinearIndex)IndexFactory.loadIndex(new File(args[0]).getAbsolutePath());
-        try {
-            idx.writeTable(new PrintStream(new FileOutputStream(new File(args[1]))));
-        } catch ( FileNotFoundException e ) {
-            e.printStackTrace();
-            System.exit(1);
-        }
-    }
-
-    /**
-     * print usage information
-     */
-    public static void printUsage() {
-        System.err.println("Usage: java -jar IndexToTable.jar index.file output.table");
-        System.exit(1);
-    }
-}
\ No newline at end of file
diff --git a/src/java/org/broad/tribble/example/IndicesAreEqual.java b/src/java/org/broad/tribble/example/IndicesAreEqual.java
deleted file mode 100644
index c241e13..0000000
--- a/src/java/org/broad/tribble/example/IndicesAreEqual.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package org.broad.tribble.example;
-
-import org.broad.tribble.index.Index;
-import org.broad.tribble.index.IndexFactory;
-
-import java.io.File;
-
-/**
- * Check with two index files are equal
- */
-public class IndicesAreEqual {
-
-    /**
-     *
-     * @param args 2 parameters, the paths of the two index files to compare
-     */
-    public static void main(String[] args) {
-        if ( args.length != 2 )
-            printUsage();
-        else {
-            Index index1 = loadIndex(args[0]);
-            Index index2 = loadIndex(args[1]);
-            System.out.printf("%n");
-            System.out.printf("index1: %s%n", args[0]);
-            System.out.printf("index2: %s%n", args[1]);
-            boolean eq = index1.equals(index2);
-            System.out.printf("  equals() = %b%n", eq);
-        }
-    }
-
-    /**
-     * print usage information
-     */
-    public static void printUsage() {
-        System.err.println("Usage: java -jar IndicesAreEqual.jar index1 index2");
-        System.err.println("    Prints out true / false if index1 and index2 are equal");
-        System.exit(1);
-    }
-
-    /**
-     * @return an index instance
-     */
-    public static Index loadIndex(String filename) {
-        //System.err.println("Loading index from disk for index file -> " + filename);
-        File file = new File(filename);
-        if (file.canRead()) {
-            return IndexFactory.loadIndex(file.getAbsolutePath());
-        } else {
-            printUsage();
-            return null;
-        }
-    }
-}
diff --git a/src/java/org/broad/tribble/example/ProfileIndexReading.java b/src/java/org/broad/tribble/example/ProfileIndexReading.java
deleted file mode 100644
index 5ec49e7..0000000
--- a/src/java/org/broad/tribble/example/ProfileIndexReading.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (c) 2010, The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person
- * obtaining a copy of this software and associated documentation
- * files (the "Software"), to deal in the Software without
- * restriction, including without limitation the rights to use,
- * copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following
- * conditions:
- *
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- */
-
-package org.broad.tribble.example;
-
-import org.broad.tribble.index.Index;
-import org.broad.tribble.index.IndexFactory;
-
-public class ProfileIndexReading {
-
-    /**
-     * This class times the loading of an index file a number of times,
-     * and prints the result of each trial
-     * @param args Two parameters:
-     *             1) The number of trials to run
-     *             2) Index file to load
-     */
-    public static void main(String[] args) {
-
-        // check yourself before you wreck yourself - we require one arg, the input file
-        if (args.length < 2)
-            printUsage();
-
-        int iterations = Integer.valueOf(args[0]);
-        for ( int j = 1; j < args.length; j++  ) {
-            String indexFile = args[j];
-            System.out.printf("Reading %s%n", indexFile);
-            long startTime = System.currentTimeMillis();
-            for ( int i = 0; i < iterations; i++ ) {
-                System.out.printf("  iteration %d%n", i);
-                Index index = IndexFactory.loadIndex(indexFile);
-            }
-            long stopTime = System.currentTimeMillis();
-            System.out.printf("Runtime %s %.2f%n", indexFile, (stopTime - startTime) / 1000.0);
-        }
-    }
-
-    /**
-     * print usage information
-     */
-    public static void printUsage() {
-        System.err.println("Usage: java -jar ReadIndices.jar iterations index.file...");
-        System.exit(1);
-    }
-}
\ No newline at end of file
diff --git a/src/java/org/broad/tribble/exception/CodecLineParsingException.java b/src/java/org/broad/tribble/exception/CodecLineParsingException.java
deleted file mode 100644
index 23e336b..0000000
--- a/src/java/org/broad/tribble/exception/CodecLineParsingException.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package org.broad.tribble.exception;
-
-
-/**
- * Class CodecLineParsingException
- *
- * a generic exception we use if the codec has trouble parsing the line its given
- *
- * @author aaron
- */
-public class CodecLineParsingException extends RuntimeException {
-
-    public CodecLineParsingException(Throwable cause) {
-        super(cause);
-    }
-
-    public CodecLineParsingException(String message, Throwable cause) {
-        super(message, cause);
-    }
-
-    public CodecLineParsingException(String message) {
-        super(message);
-    }
-
-    public CodecLineParsingException() {
-    }
-}
diff --git a/src/java/org/broad/tribble/exception/UnsortedFileException.java b/src/java/org/broad/tribble/exception/UnsortedFileException.java
deleted file mode 100644
index df179fc..0000000
--- a/src/java/org/broad/tribble/exception/UnsortedFileException.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package org.broad.tribble.exception;
-
-/**
- * an exception for when we've discovered that an input file is unsorted; sorted files are required by Tribble
- */
-public class UnsortedFileException extends RuntimeException {
-
-    public UnsortedFileException(Throwable cause) {
-        super(cause);
-    }
-
-    public UnsortedFileException(String message, Throwable cause) {
-        super(message, cause);
-    }
-
-    public UnsortedFileException(String message) {
-        super(message);
-    }
-
-    public UnsortedFileException() {
-    }
-}
\ No newline at end of file
diff --git a/src/java/org/broad/tribble/gelitext/DiploidGenotype.java b/src/java/org/broad/tribble/gelitext/DiploidGenotype.java
deleted file mode 100644
index 3b3847e..0000000
--- a/src/java/org/broad/tribble/gelitext/DiploidGenotype.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package org.broad.tribble.gelitext;
-
-
-/**
- * Class DiploidGenotype
- *
- * Enum describing all possible combinations of diploid genotype variations;
- * AA, AC, etc.
- *
- * @author aaron
- */
-public enum DiploidGenotype {
-    AA, AC, AG, AT, CC, CG, CT, GG, GT, TT;
-
-    public static DiploidGenotype toDiploidGenotype(String genotype) {
-        if (genotype.length() != 2)
-            throw new DiploidGenotypeException("Genotype string for conversion should be of length 2, we were passed = " + genotype);
-        genotype = genotype.toUpperCase();
-        for (DiploidGenotype g: DiploidGenotype.values())
-            if (g.toString().equals(genotype)) return g;
-        throw new DiploidGenotypeException("Unable to find genotype matching " + genotype);
-    }
-
-    public boolean isHet() {
-        return toString().toCharArray()[0] != toString().toCharArray()[1];
-    }
-
-    public boolean containsBase(char base) {
-        return (toString().charAt(0) == base || toString().charAt(1) == base);
-    }
-}
-
-class DiploidGenotypeException extends RuntimeException {
-    DiploidGenotypeException(String s) {
-        super(s);
-    }
-
-    DiploidGenotypeException(String s, Throwable throwable) {
-        super(s, throwable);
-    }
-}
\ No newline at end of file
diff --git a/src/java/org/broad/tribble/gelitext/GeliTextCodec.java b/src/java/org/broad/tribble/gelitext/GeliTextCodec.java
deleted file mode 100644
index b8b0c6b..0000000
--- a/src/java/org/broad/tribble/gelitext/GeliTextCodec.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package org.broad.tribble.gelitext;
-
-import net.sf.samtools.util.CollectionUtil;
-import org.broad.tribble.AsciiFeatureCodec;
-import org.broad.tribble.Feature;
-import org.broad.tribble.exception.CodecLineParsingException;
-import org.broad.tribble.readers.LineIterator;
-
-import java.util.Arrays;
-
-
-/**
- * <p/>
- * A codec for parsing geli text files, which is the text version of the geli binary format.
- * <p/>
- * <p/>
- * GELI text has the following tab-seperated fields:
- * contig             the contig (string)
- * position           the position on the contig (long)
- * refBase            the reference base (char)
- * depthOfCoverage    the depth of coverage at this position (int)
- * maximumMappingQual the maximum mapping quality of a read at this position (int)
- * genotype           the called genotype (string)
- * LODBestToReference the LOD score of the best to the reference (double)
- * LODBestToNext      the LOD score of the best to the next best genotype (double)
- * likelihoods        the array of all genotype likelihoods, in ordinal ordering (array of 10 doubles, in ordinal order)
- *
- * @author aaron
- */
-public class GeliTextCodec extends AsciiFeatureCodec<GeliTextFeature> {
-    public GeliTextCodec() {
-        super(GeliTextFeature.class);
-    }
-
-    public Feature decodeLoc(final String line) {
-        return decode(line);
-    }
-
-    @Override
-    public GeliTextFeature decode(final String line) {
-        // clean out header lines and comments
-        if (line.startsWith("#") || line.startsWith("@"))
-            return null;
-
-        // parse into tokens
-        final String[] parts = line.trim().split("\\s+");
-        return decode(parts);
-    }
-
-    @Override
-    public Object readActualHeader(LineIterator reader) {
-        return null;
-    }
-
-    public GeliTextFeature decode(final String[] tokens) {
-        try {
-            // check that we got the correct number of tokens in the split
-            if (tokens.length != 18)
-                throw new CodecLineParsingException("Invalid GeliTextFeature row found -- incorrect element count.  Expected 18, got " + tokens.length + " line = " + CollectionUtil.join(Arrays.asList(tokens), " "));
-
-            // UPPER case and sort
-            final char[] x = tokens[5].toUpperCase().toCharArray();
-            Arrays.sort(x);
-            final String bestGenotype = new String(x);
-
-            final double[] genotypeLikelihoods = new double[10];
-            for (int pieceIndex = 8, offset = 0; pieceIndex < 18; pieceIndex++, offset++) {
-                genotypeLikelihoods[offset] = Double.valueOf(tokens[pieceIndex]);
-            }
-            return new GeliTextFeature(tokens[0],
-                    Long.valueOf(tokens[1]),
-                    Character.toUpperCase(tokens[2].charAt(0)),
-                    Integer.valueOf(tokens[3]),
-                    Integer.valueOf(tokens[4]),
-                    DiploidGenotype.toDiploidGenotype(bestGenotype),
-                    Double.valueOf(tokens[6]),
-                    Double.valueOf(tokens[7]),
-                    genotypeLikelihoods);
-        } catch (CodecLineParsingException e) {
-            e.printStackTrace();
-            throw new RuntimeException("Unable to parse line " + CollectionUtil.join(Arrays.asList(tokens), " "), e);
-        } catch (NumberFormatException e) {
-            e.printStackTrace();
-            throw new RuntimeException("Unable to parse line " + CollectionUtil.join(Arrays.asList(tokens), " "), e);
-        }
-    }
-}
diff --git a/src/java/org/broad/tribble/gelitext/GeliTextFeature.java b/src/java/org/broad/tribble/gelitext/GeliTextFeature.java
deleted file mode 100644
index afdf7b8..0000000
--- a/src/java/org/broad/tribble/gelitext/GeliTextFeature.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package org.broad.tribble.gelitext;
-
-import org.broad.tribble.Feature;
-
-import java.util.Arrays;
-
-
-/**
- *         <p/>
- *         Class GeliTextFeature
- *         <p/>
- *         This is a feature for the Geli text object, which is the text version of the Geli binary genotyping format.
- *
- * @author aaron
- */
-public class GeliTextFeature implements Feature {
-
-    private final String contig;                // the contig name
-    private final long position;                // the position on the contig
-    private final char refBase;                 // the reference base
-    private final int depthOfCoverage;          // the depth of coverage at this position
-    private final int maximumMappingQual;       // the maximum mapping quality of a read at this position
-    private final DiploidGenotype genotype;     // the called genotype
-    private final double LODBestToReference;    // the LOD score of the best to the reference
-    private final double LODBestToNext;         // the LOD score of the best to the next best genotype
-    private final double likelihoods[];         // the array of all genotype likelihoods, in ordinal order
-
-    /**
-     * Create a geli text feature, given:
-     *
-     * @param contig             the contig
-     * @param position           the position on the contig
-     * @param refBase            the reference base
-     * @param depthOfCoverage    the depth of coverage at this position
-     * @param maximumMappingQual the maximum mapping quality of a read at this position
-     * @param genotype           the called genotype
-     * @param LODBestToReference the LOD score of the best to the reference
-     * @param LODBestToNext      the LOD score of the best to the next best genotype
-     * @param likelihoods        the array of all genotype likelihoods, in ordinal ordering
-     */
-    public GeliTextFeature(String contig,
-                           long position,
-                           char refBase,
-                           int depthOfCoverage,
-                           int maximumMappingQual,
-                           DiploidGenotype genotype,
-                           double LODBestToReference,
-                           double LODBestToNext,
-                           double[] likelihoods) {
-        this.contig = contig;
-        this.position = position;
-        this.refBase = refBase;
-        this.depthOfCoverage = depthOfCoverage;
-        this.maximumMappingQual = maximumMappingQual;
-        this.genotype = genotype;
-        this.LODBestToReference = LODBestToReference;
-        this.LODBestToNext = LODBestToNext;
-        this.likelihoods = likelihoods;
-    }
-
-    /** Return the features reference sequence name, e.g chromosome or contig */
-    public String getChr() {
-        return this.contig;
-    }
-
-    /** Return the start position in 1-based coordinates (first base is 1) */
-    public int getStart() {
-        return (int) this.position;
-    }
-
-    /**
-     * Return the end position following 1-based fully closed conventions.  The length of a feature is
-     * end - start + 1;
-     */
-    public int getEnd() {
-        return (int) this.position;
-    }
-
-    public char getRefBase() {
-        return refBase;
-    }
-
-    public int getDepthOfCoverage() {
-        return depthOfCoverage;
-    }
-
-    public int getMaximumMappingQual() {
-        return maximumMappingQual;
-    }
-
-    public DiploidGenotype getGenotype() {
-        return genotype;
-    }
-
-    public double getLODBestToNext() {
-        return LODBestToNext;
-    }
-
-    public double getLODBestToReference() {
-        return LODBestToReference;
-    }
-
-    public double[] getLikelihoods() {
-        return likelihoods;
-    }
-
-    private static double Epsilon = 0.0001;
-    public boolean equals(Object o) {
-        if (!(o instanceof GeliTextFeature)) return false;
-        GeliTextFeature other = (GeliTextFeature)o;
-        if (!Arrays.equals(likelihoods,other.likelihoods)) return false;
-        if (!contig.equals(other.contig)) return false;
-        if (!(position == other.position)) return false;
-        if (!(refBase == other.refBase)) return false;
-        if (!(depthOfCoverage == other.depthOfCoverage)) return false;
-        if (!(maximumMappingQual == other.maximumMappingQual)) return false;
-        if (!(genotype == other.genotype)) return false;
-        if (!(Math.abs(LODBestToReference - other.LODBestToReference) < Epsilon)) return false;
-        if (!(Math.abs(LODBestToNext - other.LODBestToNext) < Epsilon)) return false;
-        return true;
-    }
-}
diff --git a/src/java/org/broad/tribble/index/AbstractIndex.java b/src/java/org/broad/tribble/index/AbstractIndex.java
deleted file mode 100644
index a4aa781..0000000
--- a/src/java/org/broad/tribble/index/AbstractIndex.java
+++ /dev/null
@@ -1,443 +0,0 @@
-/*
- * Copyright (c) 2007-2010 by The Broad Institute, Inc. and the Massachusetts Institute of Technology.
- * All Rights Reserved.
- *
- * This software is licensed under the terms of the GNU Lesser General Public License (LGPL), Version 2.1 which
- * is available at http://www.opensource.org/licenses/lgpl-2.1.php.
- *
- * THE SOFTWARE IS PROVIDED "AS IS." THE BROAD AND MIT MAKE NO REPRESENTATIONS OR WARRANTIES OF
- * ANY KIND CONCERNING THE SOFTWARE, EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES
- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT
- * OR OTHER DEFECTS, WHETHER OR NOT DISCOVERABLE.  IN NO EVENT SHALL THE BROAD OR MIT, OR THEIR
- * RESPECTIVE TRUSTEES, DIRECTORS, OFFICERS, EMPLOYEES, AND AFFILIATES BE LIABLE FOR ANY DAMAGES OF
- * ANY KIND, INCLUDING, WITHOUT LIMITATION, INCIDENTAL OR CONSEQUENTIAL DAMAGES, ECONOMIC
- * DAMAGES OR INJURY TO PROPERTY AND LOST PROFITS, REGARDLESS OF WHETHER THE BROAD OR MIT SHALL
- * BE ADVISED, SHALL HAVE OTHER REASON TO KNOW, OR IN FACT SHALL KNOW OF THE POSSIBILITY OF THE
- * FOREGOING.
- */
-
-package org.broad.tribble.index;
-
-import org.broad.tribble.Tribble;
-import org.broad.tribble.TribbleException;
-import org.broad.tribble.util.LittleEndianInputStream;
-import org.broad.tribble.util.LittleEndianOutputStream;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.*;
-
-/**
- * <p/>
- * An abstract implementation of the index class.  This class takes care of the basics that are common
- * to all of the current indexing classes; including the version information, common header properties,
- * and reading and writing the header to disk.
- *
- * @author jrobinso
- */
-public abstract class AbstractIndex implements MutableIndex {
-
-    public enum IndexType {
-        LINEAR(1),
-        INTERVAL_TREE(2);
-        public final int fileHeaderTypeIdentifier;
-
-        IndexType(int fileHeaderTypeIdentifier) {
-            this.fileHeaderTypeIdentifier = fileHeaderTypeIdentifier;
-        }
-    }
-
-    // todo -- up to version 4 and use ETag to detect out of date
-    // todo -- inode number + size in bytes + modification time
-    // todo -- remove MD5
-
-    // the current version of the index
-    public static final int VERSION = 3;
-    public static final int MAGIC_NUMBER = 1480870228;   //  byte[]{'T', 'I', 'D', 'X'};
-
-
-    private final static String NO_MD5 = "";
-    private final static long NO_FILE_SIZE = -1L;
-    private final static long NO_TS = -1L;
-
-    protected int version;                    // Our version value
-    protected File indexedFile = null;         // The file we've created this index for
-    protected long indexedFileSize = NO_FILE_SIZE; // The size of the indexed file
-    protected long indexedFileTS = NO_TS;      // The timestamp
-    protected String indexedFileMD5 = NO_MD5;        // The MD5 value, generally not filled in (expensive to calc)
-    protected int flags;
-
-    public boolean hasFileSize() {
-        return indexedFileSize != NO_FILE_SIZE;
-    }
-
-    public boolean hasTimestamp() {
-        return indexedFileTS != NO_TS;
-    }
-
-    public boolean hasMD5() {
-        return indexedFileMD5 != NO_MD5;
-    }
-
-    private LinkedHashMap<String, String> properties;
-
-    /**
-     * the map of our chromosome bins
-     */
-    protected LinkedHashMap<String, ChrIndex> chrIndices;
-
-    /**
-     * Any flags we're using
-     */
-    private static final int SEQUENCE_DICTIONARY_FLAG = 0x8000; // if we have a sequence dictionary in our header
-
-    /**
-     * @param obj
-     * @return true if this and obj are 'effectively' equivalent data structures.
-     */
-    public boolean equalsIgnoreProperties(final Object obj) {
-        if (this == obj) return true;
-        if (!(obj instanceof AbstractIndex)) {
-            System.err.printf("equals: %s not instance of AbstractIndex", obj);
-            return false;
-        }
-
-        final AbstractIndex other = (AbstractIndex) obj;
-
-        if (version != other.version) {
-            System.err.printf("equals version: this %d != other %d%n", version, other.version);
-            return false;
-        }
-
-        if (indexedFile != other.indexedFile && (indexedFile == null || !indexedFile.equals(other.indexedFile))) {
-            System.err.printf("equals indexedFile: this %s != other %s%n", indexedFile, other.indexedFile);
-            return false;
-        }
-
-        if (indexedFileSize != other.indexedFileSize) {
-            System.err.printf("equals indexedFileSize: this %d != other %d%n", indexedFileSize, other.indexedFileSize);
-            return false;
-        }
-
-        if (!indexedFileMD5.equals(other.indexedFileMD5)) {
-            System.err.printf("equals indexedFileMD5: this %s != other %s%n", indexedFileMD5, other.indexedFileMD5);
-            return false;
-        }
-
-        if (flags != other.flags) {
-            System.err.printf("equals flags: this %d != other %d%n", flags, other.flags);
-            return false;
-        }
-
-        if (!chrIndices.equals(other.chrIndices)) {
-            System.err.printf("equals chrIndeces: this %s != other %s%n", chrIndices, other.chrIndices);
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * create an abstract index, with defaults for the version value, and empty properties and chromosome lists
-     */
-    public AbstractIndex() {
-        this.version = VERSION; // <= is overriden when file is read
-        this.properties = new LinkedHashMap<String, String>();
-        chrIndices = new LinkedHashMap();
-    }
-
-    /**
-     * create an index file from the target feature file
-     *
-     * @param featureFile the feature file to create an index from
-     */
-    public AbstractIndex(final String featureFile) {
-        this(new File(featureFile));
-    }
-
-    public AbstractIndex(final File featureFile) {
-        this();
-        this.indexedFile = featureFile;
-    }
-
-    public AbstractIndex(final AbstractIndex parent) {
-        this();
-        this.version = parent.version;
-        this.indexedFile = parent.indexedFile;
-        this.indexedFileSize = parent.indexedFileSize;
-        this.indexedFileTS = parent.indexedFileTS;
-        this.indexedFileMD5 = parent.indexedFileMD5;
-        this.flags = parent.flags;
-        this.properties = (LinkedHashMap<String, String>) parent.properties.clone();
-    }
-
-    protected void validateIndexHeader(final int indexType, final LittleEndianInputStream dis) throws IOException {
-        final int magicNumber = dis.readInt();
-        if (magicNumber != MAGIC_NUMBER) {
-            throw new TribbleException(String.format("Unexpected magic number %d", magicNumber));
-        }
-        final int type = dis.readInt();
-        if (type != indexType) {
-            throw new TribbleException(String.format("Unexpected index type %d", type));
-        }
-
-    }
-
-    /**
-     * check the current version against the version we read in
-     *
-     * @return true if we're up to date, false otherwise
-     */
-    public boolean isCurrentVersion() {
-        return version == VERSION;
-    }
-
-    public File getIndexedFile() {
-        return indexedFile;
-    }
-
-    public long getIndexedFileSize() {
-        return indexedFileSize;
-    }
-
-    public long getIndexedFileTS() {
-        return indexedFileTS;
-    }
-
-    public String getIndexedFileMD5() {
-        return indexedFileMD5;
-    }
-
-    public int getFlags() {
-        return flags;
-    }
-
-    public int getVersion() {
-        return version;
-    }
-
-    public void setMD5(final String md5) {
-        this.indexedFileMD5 = md5;
-    }
-
-    public boolean containsChromosome(final String chr) {
-        return chrIndices.containsKey(chr);
-    }
-
-    public void finalizeIndex() {
-        // these two functions must be called now because the file may be being written during on the fly indexing
-        if (indexedFile != null) {
-            this.indexedFileSize = indexedFile.length();
-            this.indexedFileTS = indexedFile.lastModified();
-        }
-    }
-
-    /**
-     * write the header to the target output stream
-     *
-     * @param dos the little endian output stream
-     * @throws IOException an exception when we can't write to the file
-     */
-    private void writeHeader(final LittleEndianOutputStream dos) throws IOException {
-        dos.writeInt(MAGIC_NUMBER);
-        dos.writeInt(getType());
-        dos.writeInt(version);
-        dos.writeString(indexedFile.getAbsolutePath());
-        dos.writeLong(indexedFileSize);
-        dos.writeLong(indexedFileTS);
-        dos.writeString(indexedFileMD5);
-        dos.writeInt(flags);
-
-        // Properties (Version 3 and later)
-        dos.writeInt(properties.size());
-        for (final Map.Entry<String, String> prop : properties.entrySet()) {
-            dos.writeString(prop.getKey());
-            dos.writeString(prop.getValue());
-        }
-    }
-
-    /**
-     * read the header from the input stream
-     *
-     * @param dis the little endian input stream
-     * @throws IOException if we fail to read from the file at any point
-     */
-    private void readHeader(final LittleEndianInputStream dis) throws IOException {
-
-        version = dis.readInt();
-        indexedFile = new File(dis.readString());
-        indexedFileSize = dis.readLong();
-        indexedFileTS = dis.readLong();
-        indexedFileMD5 = dis.readString();
-        flags = dis.readInt();
-        if (version < 3 && (flags & SEQUENCE_DICTIONARY_FLAG) == SEQUENCE_DICTIONARY_FLAG) {
-            readSequenceDictionary(dis);
-        }
-
-        if (version >= 3) {
-            int nProperties = dis.readInt();
-            while (nProperties-- > 0) {
-                final String key = dis.readString();
-                final String value = dis.readString();
-                properties.put(key, value);
-            }
-        }
-    }
-
-    /**
-     * Kept to maintain backward compatibility with pre version 3 indexes.  The sequence dictionary is no longer
-     * used,  use getSequenceNames() instead.
-     *
-     * @param dis
-     * @throws IOException
-     */
-    private void readSequenceDictionary(final LittleEndianInputStream dis) throws IOException {
-        final int size = dis.readInt();
-        if (size < 0) throw new IllegalStateException("Size of the sequence dictionary entries is negative");
-        for (int x = 0; x < size; x++) {
-            dis.readString();
-            dis.readInt();
-        }
-    }
-
-    public List<String> getSequenceNames() {
-        return new ArrayList<String>(chrIndices.keySet());
-    }
-
-    public List<Block> getBlocks(final String chr, final int start, final int end) {
-        return getChrIndex(chr).getBlocks(start, end);
-    }
-
-    public List<Block> getBlocks(final String chr) {
-        return getChrIndex(chr).getBlocks();
-    }
-
-    /**
-     * @param chr
-     * @return return the ChrIndex associated with chr,
-     * @throws IllegalArgumentException if {@code chr} not found
-     */
-    private final ChrIndex getChrIndex(final String chr) {
-        final ChrIndex chrIdx = chrIndices.get(chr);
-        if (chrIdx == null) {
-            throw new IllegalArgumentException("getBlocks() called with of unknown contig " + chr);
-        } else {
-            return chrIdx;
-        }
-    }
-
-    public void write(final LittleEndianOutputStream stream) throws IOException {
-        writeHeader(stream);
-
-        //# of chromosomes
-        stream.writeInt(chrIndices.size());
-        for (final ChrIndex chrIdx : chrIndices.values()) {
-            chrIdx.write(stream);
-        }
-    }
-
-    @Override
-    public void writeBasedOnFeatureFile(final File featureFile) throws IOException {
-        if (!featureFile.isFile()) return;
-        final LittleEndianOutputStream idxStream =
-                new LittleEndianOutputStream(new FileOutputStream(Tribble.indexFile(featureFile)));
-        write(idxStream);
-        idxStream.close();
-
-    }
-
-    public void read(final LittleEndianInputStream dis) throws IOException {
-        try {
-            readHeader(dis);
-
-            int nChromosomes = dis.readInt();
-            chrIndices = new LinkedHashMap<String, ChrIndex>(nChromosomes);
-
-            while (nChromosomes-- > 0) {
-                final ChrIndex chrIdx = (ChrIndex) getChrIndexClass().newInstance();
-                chrIdx.read(dis);
-                chrIndices.put(chrIdx.getName(), chrIdx);
-            }
-
-        } catch (final InstantiationException e) {
-            throw new TribbleException.UnableToCreateCorrectIndexType("Unable to create class " + getChrIndexClass(), e);
-        } catch (final IllegalAccessException e) {
-            throw new TribbleException.UnableToCreateCorrectIndexType("Unable to create class " + getChrIndexClass(), e);
-        } finally {
-            dis.close();
-        }
-
-        //printIndexInfo();
-    }
-
-    protected void printIndexInfo() {
-        System.out.println(String.format("Index for %s with %d indices", indexedFile, chrIndices.size()));
-        final BlockStats stats = getBlockStats(true);
-        System.out.println(String.format("  total blocks %d", stats.total));
-        System.out.println(String.format("  total empty blocks %d", stats.empty));
-    }
-
-    protected static class BlockStats {
-        long total = 0, empty = 0, objects = 0, size = 0;
-    }
-
-    protected BlockStats getBlockStats(final boolean logDetails) {
-        final BlockStats stats = new BlockStats();
-        for (final Map.Entry<String, ChrIndex> elt : chrIndices.entrySet()) {
-            final List<Block> blocks = elt.getValue().getBlocks();
-
-            if (blocks != null) {
-                final int nBlocks = blocks.size();
-
-                int nEmptyBlocks = 0;
-                for (final Block b : elt.getValue().getBlocks()) {
-                    if (b.getSize() == 0) nEmptyBlocks++;
-                }
-                stats.empty += nEmptyBlocks;
-                stats.total += nBlocks;
-
-                if (logDetails)
-                    System.out.println(String.format("  %s => %d blocks, %d empty, %.2f", elt.getKey(), nBlocks, nEmptyBlocks, (100.0 * nEmptyBlocks) / nBlocks));
-            }
-        }
-
-        return stats;
-    }
-
-    protected String statsSummary() {
-        final BlockStats stats = getBlockStats(false);
-        return String.format("%12d blocks (%12d empty (%.2f%%))", stats.total, stats.empty, (100.0 * stats.empty) / stats.total);
-    }
-
-    public void addProperty(final String key, final String value) {
-        properties.put(key, value);
-    }
-
-    public void addProperties(final Map<String, String> properties) {
-        this.properties.putAll(properties);
-    }
-
-    /**
-     * return a mapping of name to property value
-     *
-     * @return the mapping of values as an unmodifiable map
-     */
-    public Map<String, String> getProperties() {
-        return Collections.unmodifiableMap(properties);
-    }
-
-    /**
-     * get the index type
-     *
-     * @return The index type
-     */
-    protected abstract int getType();
-
-    /**
-     * returns the class for the index type
-     *
-     * @return a Class, from which a new instance can be created
-     */
-    public abstract Class getChrIndexClass();
-}
diff --git a/src/java/org/broad/tribble/index/Block.java b/src/java/org/broad/tribble/index/Block.java
deleted file mode 100644
index 0308f0b..0000000
--- a/src/java/org/broad/tribble/index/Block.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package org.broad.tribble.index;
-
-/**
- * Represents a contiguous block of bytes in a file, defined by a start position and size (in bytes)
-*/
-public class Block {
-
-    private final long startPosition;
-    private long size;
-
-    /**
-     * @param startPosition  in bytes
-     * @param size in bytes
-     */
-    public Block(final long startPosition, final long size) {
-        this.startPosition = startPosition;
-        this.size = size;
-    }
-
-    /**
-     * @return the startPosition
-     */
-    public long getStartPosition() {
-        return startPosition;
-    }
-
-    public long getEndPosition() {
-        return startPosition + size;
-    }
-
-    /**
-     * This method is used to aid in consolidating blocks.
-     * Sets the size based on the provided {@code endPosition}
-     * @param endPosition Where the block ends, in bytes
-     */
-    public void setEndPosition(final long endPosition) {
-        if(endPosition < startPosition)
-            throw new IllegalArgumentException("Attempting to set block end position to " +
-                                                                           endPosition + " which is before the start of " + startPosition);
-        size = endPosition - startPosition;
-
-    }
-
-    /**
-     * @return the # of bytes in this block.  Note that for block-compressed files, this is not truly the
-     * size of the block in the file.  getEndPosition should be used to determine the virtual file offset
-     * of the end of the region of interest.
-     */
-    public long getSize() {
-        return size;
-    }
-
-    public boolean equals(final Object obj) {
-        if ( this == obj ) return true;
-        if ( ! (obj instanceof Block) ) return false;
-        final Block otherBlock = (Block)obj;
-        return this.startPosition == otherBlock.startPosition && this.size == otherBlock.size;
-    }
-}
diff --git a/src/java/org/broad/tribble/index/ChrIndex.java b/src/java/org/broad/tribble/index/ChrIndex.java
deleted file mode 100644
index d427470..0000000
--- a/src/java/org/broad/tribble/index/ChrIndex.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package org.broad.tribble.index;
-
-import org.broad.tribble.util.LittleEndianInputStream;
-import org.broad.tribble.util.LittleEndianOutputStream;
-
-import java.io.IOException;
-import java.util.List;
-
-/**
- * Represents an index on a specific chromosome
- */
-
-public interface ChrIndex {
-
-    public String getName();
-
-    /**
-     * @return all blocks in ChrIndex
-     */
-    List<Block> getBlocks();
-
-    /**
-     * @param start the start position, one based
-     * @param end   the end position, one based
-     * @return a list of blocks that include the region defined from start to stop.  Can never return null
-     */
-    List<Block> getBlocks(int start, int end);
-
-    void write(LittleEndianOutputStream dos) throws IOException;
-
-    void read(LittleEndianInputStream dis) throws IOException;
-}
diff --git a/src/java/org/broad/tribble/index/DynamicIndexCreator.java b/src/java/org/broad/tribble/index/DynamicIndexCreator.java
deleted file mode 100644
index 629df96..0000000
--- a/src/java/org/broad/tribble/index/DynamicIndexCreator.java
+++ /dev/null
@@ -1,209 +0,0 @@
-/*
- * Copyright (c) 2010, The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person
- * obtaining a copy of this software and associated documentation
- * files (the "Software"), to deal in the Software without
- * restriction, including without limitation the rights to use,
- * copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following
- * conditions:
- *
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- */
-
-package org.broad.tribble.index;
-
-import org.broad.tribble.Feature;
-import org.broad.tribble.TribbleException;
-import org.broad.tribble.index.interval.IntervalIndexCreator;
-import org.broad.tribble.index.linear.LinearIndexCreator;
-import org.broad.tribble.util.MathUtils;
-
-import java.io.File;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.TreeMap;
-
-
-/**
- * A DynamicIndexCreator creates the proper index based on an {@link IndexFactory.IndexBalanceApproach} and
- * the characteristics of the file.  Ultimately this is either a LinearIndex or an IntervalTreeIndex, with index
- * parameters based on whether seek time or file size is to be minimized.
- */
-public class DynamicIndexCreator extends TribbleIndexCreator {
-    IndexFactory.IndexBalanceApproach iba;
-    Map<IndexFactory.IndexType,TribbleIndexCreator> creators;
-
-    /**
-     * we're interested in two stats:
-     * the longest feature and the density of features
-      */
-    int longestFeatureLength = 0;
-    long featureCount = 0;
-
-    MathUtils.RunningStat stats = new MathUtils.RunningStat();
-    long basesSeen = 0;
-    Feature lastFeature = null;
-    File inputFile;
-
-    public DynamicIndexCreator(final File inputFile, final IndexFactory.IndexBalanceApproach iba) {
-        this.iba = iba;
-        // get a list of index creators
-        this.inputFile = inputFile;
-        creators = getIndexCreators(inputFile,iba);
-    }
-
-    public Index finalizeIndex(final long finalFilePosition) {
-        // finalize all of the indexes
-        // return the score of the indexes we've generated
-        final Map<Double,TribbleIndexCreator> mapping = scoreIndexes((double)featureCount/(double)basesSeen, creators, longestFeatureLength, iba);
-        final TribbleIndexCreator creator = getMinIndex(mapping, this.iba);
-
-        for (final Map.Entry<String, String> entry : properties.entrySet()) {
-            creator.addProperty(entry.getKey(), entry.getValue());
-        }
-
-        // add our statistics to the file
-        creator.addProperty("FEATURE_LENGTH_MEAN",String.valueOf(stats.mean()));
-        creator.addProperty("FEATURE_LENGTH_STD_DEV",String.valueOf(stats.standardDeviation()));
-        creator.addProperty("MEAN_FEATURE_VARIANCE",String.valueOf(stats.variance()));
-
-        // add the feature count
-        creator.addProperty("FEATURE_COUNT",String.valueOf(featureCount));
-
-        // Now let's finalize and create the index itself
-        return creator.finalizeIndex(finalFilePosition);
-    }
-
-    /**
-     * create a list of index creators (initialized) representing the common index types we'd suspect they'd like to use
-     * @param inputFile the input file to use to create the indexes
-     * @return a map of index type to the best index for that balancing approach
-     */
-    private Map<IndexFactory.IndexType,TribbleIndexCreator> getIndexCreators(final File inputFile, final IndexFactory.IndexBalanceApproach iba) {
-        final Map<IndexFactory.IndexType,TribbleIndexCreator> creators = new HashMap<IndexFactory.IndexType,TribbleIndexCreator>();
-
-        if (iba == IndexFactory.IndexBalanceApproach.FOR_SIZE) {
-            // add a linear index with the default bin size
-            final LinearIndexCreator linearNormal = new LinearIndexCreator(inputFile, LinearIndexCreator.DEFAULT_BIN_WIDTH);
-            creators.put(IndexFactory.IndexType.LINEAR,linearNormal);
-
-            // create a tree index with the default size
-            final IntervalIndexCreator treeNormal = new IntervalIndexCreator(inputFile, IntervalIndexCreator.DEFAULT_FEATURE_COUNT);
-            creators.put(IndexFactory.IndexType.INTERVAL_TREE,treeNormal);
-        }
-
-        // this section is a little more arbitrary; we're creating indexes with a bin size that's a portion of the default; these
-        // values were determined experimentally
-        if (iba == IndexFactory.IndexBalanceApproach.FOR_SEEK_TIME) {
-            // create a linear index with a small bin size
-            final LinearIndexCreator linearSmallBin =
-                    new LinearIndexCreator(inputFile, Math.max(200, LinearIndexCreator.DEFAULT_BIN_WIDTH / 4));
-            creators.put(IndexFactory.IndexType.LINEAR,linearSmallBin);
-
-            // create a tree index with a small index size
-            final IntervalIndexCreator treeSmallBin =
-                    new IntervalIndexCreator(inputFile, Math.max(20, IntervalIndexCreator.DEFAULT_FEATURE_COUNT / 8));
-            creators.put(IndexFactory.IndexType.INTERVAL_TREE,treeSmallBin);
-        }
-
-        return creators;
-    }
-
-
-    public void addFeature(final Feature f, final long filePosition) {
-        // protected static Map<Double,Index> createIndex(FileBasedFeatureIterator<Feature> iterator, Map<IndexType,IndexCreator> creators, IndexBalanceApproach iba) {
-        // feed each feature to the indexes we've created
-        // first take care of the stats
-        featureCount++;
-
-        // calculate the number of bases seen - we have to watch out for the situation where the last record was on the previous chromosome
-        basesSeen = (lastFeature == null) ? basesSeen + f.getStart() :
-                ((f.getStart() - lastFeature.getStart() >= 0) ? basesSeen + (f.getStart() - lastFeature.getStart()) : basesSeen + f.getStart());
-
-        longestFeatureLength = Math.max(longestFeatureLength,(f.getEnd()-f.getStart()) + 1);
-
-        // push the longest feature to the running stats
-        stats.push(longestFeatureLength);
-
-        // now feed the feature to each of our creators
-        for (final IndexCreator creator : creators.values()) {
-            creator.addFeature(f,filePosition);
-        }
-
-        //Redundant check, done in IndexFactory
-        // if the last feature is after the current feature, exception out
-//        if (lastFeature != null && f.getStart() < lastFeature.getStart() && lastFeature.getChr().equals(f.getChr()))
-//            throw new TribbleException.MalformedFeatureFile("We saw a record with a start of " + f.getChr() + ":" + f.getStart() +
-//                    " after a record with a start of " + lastFeature.getChr() + ":" + lastFeature.getStart(), inputFile.getAbsolutePath());
-
-        // save the last feature
-        lastFeature = f;
-    }
-
-    /**
-     * score the available indexes for the specified density and feature lengths
-     *
-     * The scoring method is trying to determine how many features would be returned for a sample one base query; or:
-     * (features/seek).  For the interval index this is clear: it's the bin size (interval is binned by feature count).
-     * for Linear indexes it's the density of features X the number of bins we need to retrieve (which is determined
-     * by the bin size X the longest feature).
-     *
-     * @param densityOfFeatures the density of features (features/base)
-     * @param indexes Map from IndexType -> IndexCreator
-     * @param longestFeature the longest feature we've found
-     * @param iba the index balancing approach
-     * @return the best index available for the target indexes
-     */
-    protected static LinkedHashMap<Double,TribbleIndexCreator> scoreIndexes(final double densityOfFeatures, final Map<IndexFactory.IndexType,TribbleIndexCreator> indexes, final int longestFeature, final IndexFactory.IndexBalanceApproach iba) {
-        if (indexes.size() < 1) throw new IllegalArgumentException("Please specify at least one index to evaluate");
-
-        final LinkedHashMap<Double,TribbleIndexCreator> scores = new LinkedHashMap<Double,TribbleIndexCreator>();
-
-        for (final Map.Entry<IndexFactory.IndexType,TribbleIndexCreator> entry : indexes.entrySet()) {
-            // we have different scoring
-            if (entry.getValue() instanceof LinearIndexCreator) {
-                final double binSize = ((LinearIndexCreator)(entry.getValue())).getBinSize();
-                scores.put(binSize * densityOfFeatures * Math.ceil((double) longestFeature / binSize), entry.getValue());
-            } else if (entry.getValue() instanceof IntervalIndexCreator) {
-                scores.put((double) ((IntervalIndexCreator)entry.getValue()).getFeaturesPerInterval(), entry.getValue());
-            } else {
-                throw new TribbleException.UnableToCreateCorrectIndexType("Unknown index type, we don't have a scoring method for " + entry.getValue().getClass());
-            }
-        }
-        return scores;
-    }
-
-    /**
-     * utility function to find the min of a list
-     * @param scores the list of scaled features/bin scores for each index type
-     * @return the best score <b>index value</b>
-     */
-    private TribbleIndexCreator getMinIndex(final Map<Double,TribbleIndexCreator> scores, final IndexFactory.IndexBalanceApproach iba) {
-        final TreeMap<Double,TribbleIndexCreator> map = new TreeMap<Double,TribbleIndexCreator>();
-        map.putAll(scores);
-        
-        // if we are optimizing for seek time, choose the lowest score (adjusted features/bin value), if for storage size, choose the opposite
-        final TribbleIndexCreator idx = (iba != IndexFactory.IndexBalanceApproach.FOR_SEEK_TIME) ? map.get(map.lastKey()) : map.get(map.firstKey());
-        return idx;
-    }
-
-    @Override
-    public void addProperty(final String key, final String value) {
-        for (final TribbleIndexCreator creator : creators.values()) {
-            creator.addProperty(key, value);
-        }
-    }
-}
diff --git a/src/java/org/broad/tribble/index/Index.java b/src/java/org/broad/tribble/index/Index.java
deleted file mode 100644
index f60e23a..0000000
--- a/src/java/org/broad/tribble/index/Index.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package org.broad.tribble.index;
-
-import org.broad.tribble.util.LittleEndianOutputStream;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Interface for all index implementations.
- * An index file is used for efficient lookup of features from a feature file;
- * and Index represents that index file.
- */
-public interface Index {
-    /**
-     * Query the index.
-     * @param chr the chromosome
-     * @param start the start position
-     * @param end the end position
-     * @return a list of blocks that contain the specified interval.  Can never return null
-     * @throws IllegalArgumentException of chr isn't part of this index
-     */
-    List<Block> getBlocks(String chr, int start, int end);
-
-    /**
-     * @return true if the index is up to date, false otherwise
-     */
-    public boolean isCurrentVersion();
-
-    /**
-     * @return a list of the sequence names we've seen during indexing, in order
-     */
-    List<String> getSequenceNames();
-
-    /**
-     * @param chr the chromosome (or contig) name
-     * @return true if we have an entry; false otherwise
-     */
-    public boolean containsChromosome(final String chr);
-
-    /**
-     * all indexes are writable to disk
-     * @param stream the stream to write the index to.  Caller must close after invocation.
-     * @throws IOException if the index is unable to write to the specified location
-     */
-    public void write(LittleEndianOutputStream stream) throws IOException;
-
-    /**
-     * Write an appropriately named and located Index file based on the name and location of the featureFile.
-     * If featureFile is not a normal file, the index will silently not be written.
-     * @param featureFile
-     */
-    public void writeBasedOnFeatureFile(File featureFile) throws IOException;
-
-    /**
-     * @return get the list of properties for this index.  Returns null if no properties.
-     */
-    public Map<String,String> getProperties();
-
-    /**
-     * Returns true if this and obj are 'effectively' equivalent indices.  Ignores the
-     * time stamp on the file, as this may not be the same for even identical indices
-     * @param obj
-     * @return
-     */
-    public boolean equalsIgnoreProperties(Object obj);
-}
diff --git a/src/java/org/broad/tribble/index/IndexCreator.java b/src/java/org/broad/tribble/index/IndexCreator.java
deleted file mode 100644
index 87e0006..0000000
--- a/src/java/org/broad/tribble/index/IndexCreator.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package org.broad.tribble.index;
-
-import org.broad.tribble.Feature;
-
-/**
- *
- * An interface for creating indexes
- *
- * @author jrobinso
- */                                                                           
-public interface IndexCreator {
-    /**
-     * Add a feature to the index
-     * @param feature the feature, of which start, end, and contig must be filled in
-     * @param filePosition the current file position, at the beginning of the specified feature
-     */
-    public void addFeature(Feature feature, long filePosition);
-
-    /**
-     * Create the index, given the stream of features passed in to this point
-     * @param finalFilePosition the final file position, for indexes that have to close out with the final position
-     * @return an index object
-     */
-    public Index finalizeIndex(long finalFilePosition);
-}
-
-
diff --git a/src/java/org/broad/tribble/index/IndexFactory.java b/src/java/org/broad/tribble/index/IndexFactory.java
deleted file mode 100644
index f3730c0..0000000
--- a/src/java/org/broad/tribble/index/IndexFactory.java
+++ /dev/null
@@ -1,472 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package org.broad.tribble.index;
-
-import net.sf.samtools.Defaults;
-import net.sf.samtools.SAMSequenceDictionary;
-import net.sf.samtools.util.BlockCompressedInputStream;
-import org.broad.tribble.*;
-import org.broad.tribble.index.interval.IntervalIndexCreator;
-import org.broad.tribble.index.interval.IntervalTreeIndex;
-import org.broad.tribble.index.linear.LinearIndex;
-import org.broad.tribble.index.linear.LinearIndexCreator;
-import org.broad.tribble.index.tabix.TabixFormat;
-import org.broad.tribble.index.tabix.TabixIndex;
-import net.sf.samtools.util.LocationAware;
-import org.broad.tribble.index.tabix.TabixIndexCreator;
-import org.broad.tribble.readers.PositionalBufferedStream;
-import org.broad.tribble.util.LittleEndianInputStream;
-import org.broad.tribble.util.LittleEndianOutputStream;
-import org.broad.tribble.util.ParsingUtils;
-import org.broad.tribble.util.TabixUtils;
-
-import java.io.*;
-import java.lang.reflect.Constructor;
-import java.util.*;
-import java.util.zip.GZIPInputStream;
-
-/**
- * Factory class for creating indexes.  It is the responsibility of this class to determine and create the
- * correct index type from the input file or stream.  Only LinearIndex and IntervalTreeIndex are supported
- * by this factory.
- */
-public class IndexFactory {
-    /** We can optimize index-file-creation for different factors. As of this writing, those are index-file size or seeking time. */
-    public enum IndexBalanceApproach {
-        FOR_SIZE,
-        FOR_SEEK_TIME
-    }
-
-    /**
-     * an enum that contains all of the information about the index types, and how to create them
-     */
-    public enum IndexType {
-        LINEAR(LinearIndex.MAGIC_NUMBER, LinearIndex.INDEX_TYPE, LinearIndexCreator.class, LinearIndex.class, LinearIndexCreator.DEFAULT_BIN_WIDTH),
-        INTERVAL_TREE(IntervalTreeIndex.MAGIC_NUMBER, IntervalTreeIndex.INDEX_TYPE, IntervalIndexCreator.class, IntervalTreeIndex.class, IntervalIndexCreator.DEFAULT_FEATURE_COUNT),
-        // Tabix index initialization requires additional information, so generic construction won't work, thus indexCreatorClass is null.
-        TABIX(TabixIndex.MAGIC_NUMBER, null, null, TabixIndex.class, -1);
-
-        private final int magicNumber;
-        private final Integer tribbleIndexType;
-        private final Class<IndexCreator> indexCreatorClass;
-        private final int defaultBinSize;
-        private final Class<Index> indexType;
-
-        public int getDefaultBinSize() {
-            return defaultBinSize;
-        }
-
-        public IndexCreator getIndexCreator() {
-            try {
-                return indexCreatorClass.newInstance();
-            } catch ( final InstantiationException e ) {
-                throw new TribbleException("Couldn't make index creator in " + this, e);
-            } catch ( final IllegalAccessException e ) {
-                throw new TribbleException("Couldn't make index creator in " + this, e);
-            }
-        }
-
-        public boolean canCreate() {
-            return indexCreatorClass != null;
-        }
-
-        IndexType(final int magicNumber, final Integer tribbleIndexType, final Class creator, final Class indexClass, final int defaultBinSize) {
-            this.magicNumber = magicNumber;
-            this.tribbleIndexType = tribbleIndexType;
-            indexCreatorClass = creator;
-            indexType = indexClass;
-            this.defaultBinSize = defaultBinSize;
-        }
-
-        public Integer getTribbleIndexType() {
-            return tribbleIndexType;
-        }
-
-        public Class getIndexType() {
-            return indexType;
-        }
-
-        public int getMagicNumber() { return magicNumber; }
-
-        /**
-         *
-         * @param is InputStream of index.  This will be reset to location it was at when method was invoked.
-         * @return The {@code IndexType} based on the {@code headerValue}
-         * @throws TribbleException.UnableToCreateCorrectIndexType
-         */
-        public static IndexType getIndexType(final BufferedInputStream is) {
-            // Currently only need 8 bytes, so this should be plenty
-            is.mark(128);
-            final LittleEndianInputStream dis = new LittleEndianInputStream(is);
-            final int magicNumber;
-            final int type;
-
-            try {
-                // Read the type and version,  then create the appropriate type
-                magicNumber = dis.readInt();
-                // This is not appropriate for all types, but it doesn't hurt to read it.
-                type = dis.readInt();
-                is.reset();
-
-                for (final IndexType indexType : IndexType.values()) {
-                    if (indexType.magicNumber == magicNumber &&
-                            (indexType.tribbleIndexType == null || indexType.tribbleIndexType == type)) {
-                        return indexType;
-                    }
-                }
-            } catch (final IOException e) {
-                throw new TribbleException("Problem detecting index type", e);
-            }
-
-            throw new TribbleException.UnableToCreateCorrectIndexType(
-                    String.format("Unknown index type.  magic number: 0x%x; type %d", magicNumber, type));
-        }
-    }
-
-
-    /**
-     * Load in index from the specified file.   The type of index (LinearIndex or IntervalTreeIndex) is determined
-     * at run time by reading the type flag in the file.
-     *
-     * @param indexFile from which to load the index
-     */
-    public static Index loadIndex(final String indexFile) {
-        final Index idx = null;
-        BufferedInputStream bufferedInputStream = null;
-        final LittleEndianInputStream dis = null;
-        try {
-            InputStream  inputStream = ParsingUtils.openInputStream(indexFile);
-            if (indexFile.endsWith(".gz")) {
-                inputStream = new GZIPInputStream(inputStream);
-            }
-            else if (indexFile.endsWith(TabixUtils.STANDARD_INDEX_EXTENSION)) {
-                inputStream = new BlockCompressedInputStream(inputStream);
-            }
-            // Must be buffered, because getIndexType uses mark and reset
-            bufferedInputStream = new BufferedInputStream(inputStream, Defaults.NON_ZERO_BUFFER_SIZE);
-            final Class indexClass = IndexType.getIndexType(bufferedInputStream).getIndexType();
-
-            final Constructor ctor = indexClass.getConstructor(InputStream.class);
-
-            return (Index) ctor.newInstance(bufferedInputStream);
-        } catch (final IOException ex) {
-            throw new TribbleException.UnableToReadIndexFile("Unable to read index file", indexFile, ex);
-        } catch (final Exception ex) {
-            throw new RuntimeException(ex);
-        } finally {
-            try {
-                if (bufferedInputStream != null) bufferedInputStream.close();
-                if (dis != null) dis.close();
-                //log.info(String.format("Closed %s and %s", is, dis));
-            } catch (final IOException e) {
-                //log.error("Error closing indexFile: " + indexFile, e);
-            }
-        }
-    }
-
-
-    /**
-     * a helper method for creating a linear binned index with default bin size
-     *
-     * @param inputFile the input file to load features from
-     * @param codec     the codec to use for decoding records
-     */
-    public static LinearIndex createLinearIndex(final File inputFile, final FeatureCodec codec) {
-        return createLinearIndex(inputFile, codec, LinearIndexCreator.DEFAULT_BIN_WIDTH);
-    }
-
-    /**
-     * a helper method for creating a linear binned index
-     *
-     * @param inputFile the input file to load features from
-     * @param codec     the codec to use for decoding records
-     * @param binSize   the bin size
-     */
-    public static <FEATURE_TYPE extends Feature, SOURCE_TYPE> LinearIndex createLinearIndex(final File inputFile,
-                                                                                      final FeatureCodec<FEATURE_TYPE, SOURCE_TYPE> codec,
-                                                                                      final int binSize) {
-        final LinearIndexCreator indexCreator = new LinearIndexCreator(inputFile, binSize);
-        return (LinearIndex)createIndex(inputFile, new FeatureIterator<FEATURE_TYPE, SOURCE_TYPE>(inputFile, codec), indexCreator);
-    }
-
-    /**
-     * create an interval-tree index with the default features per bin count
-     *
-     * @param inputFile the file containing the features
-     * @param codec to decode the features
-     */
-    public static <FEATURE_TYPE extends Feature, SOURCE_TYPE> IntervalTreeIndex createIntervalIndex(final File inputFile,
-                                                                                        final FeatureCodec<FEATURE_TYPE, SOURCE_TYPE> codec) {
-        return createIntervalIndex(inputFile, codec, IntervalIndexCreator.DEFAULT_FEATURE_COUNT);
-    }
-
-
-    /**
-     * a helper method for creating an interval-tree index
-     *
-     * @param inputFile the input file to load features from
-     * @param codec     the codec to use for decoding records
-     * @param featuresPerInterval
-     */
-    public static <FEATURE_TYPE extends Feature, SOURCE_TYPE> IntervalTreeIndex createIntervalIndex(final File inputFile,
-                                                                                        final FeatureCodec<FEATURE_TYPE, SOURCE_TYPE> codec,
-                                                                                        final int featuresPerInterval) {
-        final IntervalIndexCreator indexCreator = new IntervalIndexCreator(inputFile, featuresPerInterval);
-        return (IntervalTreeIndex)createIndex(inputFile, new FeatureIterator<FEATURE_TYPE, SOURCE_TYPE>(inputFile, codec), indexCreator);
-    }
-
-    /**
-     * Create a dynamic index with the default balancing approach
-     *
-     * @param inputFile the input file to load features from
-     * @param codec     the codec to use for decoding records
-     */
-    public static <FEATURE_TYPE extends Feature, SOURCE_TYPE> Index createDynamicIndex(final File inputFile, final FeatureCodec<FEATURE_TYPE, SOURCE_TYPE> codec) {
-        return createDynamicIndex(inputFile, codec, IndexBalanceApproach.FOR_SEEK_TIME);
-    }
-
-    /**
-     * Create a index of the specified type with default binning parameters
-     *
-     * @param inputFile the input file to load features from
-     * @param codec     the codec to use for decoding records
-     * @param type      the type of index to create
-     */
-    public static <FEATURE_TYPE extends Feature, SOURCE_TYPE> Index createIndex(final File inputFile,
-                                                                                final FeatureCodec<FEATURE_TYPE, SOURCE_TYPE> codec,
-                                                                                final IndexType type) {
-        switch (type) {
-            case INTERVAL_TREE: return createIntervalIndex(inputFile, codec);
-            case LINEAR:        return createLinearIndex(inputFile, codec);
-            // Tabix index initialization requires additional information, so this construction method won't work.
-            case TABIX:         throw new UnsupportedOperationException("Tabix indices cannot be created through a generic interface");
-        }
-        throw new IllegalArgumentException("Unrecognized IndexType " + type);
-    }
-
-    /**
-     * Write the index to a file; little endian.
-     * @param idx
-     * @param idxFile
-     * @throws IOException
-     */
-    public static void writeIndex(final Index idx, final File idxFile) throws IOException {
-        LittleEndianOutputStream stream = null;
-        try {
-            stream = new LittleEndianOutputStream(new BufferedOutputStream(new FileOutputStream(idxFile)));
-            idx.write(stream);
-        }
-        finally {
-            if(stream != null) {
-                stream.close();
-            }
-        }
-    }
-
-    /**
-     * create a dynamic index, given an input file, codec, and balance approach
-     *
-     * @param inputFile the input file to load features from
-     * @param codec     the codec to use for decoding records
-     * @param iba       the index balancing approach
-     */
-    public static <FEATURE_TYPE extends Feature, SOURCE_TYPE> Index createDynamicIndex(final File inputFile,
-                                                                                       final FeatureCodec<FEATURE_TYPE, SOURCE_TYPE> codec,
-                                                                                       final IndexBalanceApproach iba) {
-        // get a list of index creators
-        final DynamicIndexCreator indexCreator = new DynamicIndexCreator(inputFile, iba);
-        return createIndex(inputFile, new FeatureIterator<FEATURE_TYPE, SOURCE_TYPE>(inputFile, codec), indexCreator);
-    }
-
-    /**
-     * @param inputFile The file to be indexed.
-     * @param codec Mechanism for reading inputFile.
-     * @param tabixFormat Header fields for TabixIndex to be produced.
-     * @param sequenceDictionary May be null, but if present may reduce memory footprint for index creation.  Features
-     *                           in inputFile must be in the order defined by sequenceDictionary, if it is present.
-     */
-    public static <FEATURE_TYPE extends Feature, SOURCE_TYPE> TabixIndex createTabixIndex(final File inputFile,
-                                                                                     final FeatureCodec<FEATURE_TYPE, SOURCE_TYPE> codec,
-                                                                                     final TabixFormat tabixFormat,
-                                                                                     final SAMSequenceDictionary sequenceDictionary) {
-        final TabixIndexCreator indexCreator = new TabixIndexCreator(sequenceDictionary, tabixFormat);
-        return (TabixIndex)createIndex(inputFile, new FeatureIterator<FEATURE_TYPE, SOURCE_TYPE>(inputFile, codec), indexCreator);
-    }
-
-
-
-    private static Index createIndex(final File inputFile, final FeatureIterator iterator, final IndexCreator creator) {
-        Feature lastFeature = null;
-        Feature currentFeature;
-        final Map<String, Feature> visitedChromos = new HashMap<String, Feature>(40);
-        while (iterator.hasNext()) {
-            final long position = iterator.getPosition();
-            currentFeature = iterator.next();
-
-            checkSorted(inputFile, lastFeature, currentFeature);
-            //should only visit chromosomes once
-            final String curChr = currentFeature.getChr();
-            final String lastChr = lastFeature != null ? lastFeature.getChr() : null;
-            if(!curChr.equals(lastChr)){
-                if(visitedChromos.containsKey(curChr)){
-                    String msg = "Input file must have contiguous chromosomes.";
-                    msg += " Saw feature " + featToString(visitedChromos.get(curChr));
-                    msg += " followed later by " + featToString(lastFeature);
-                    msg += " and then " + featToString(currentFeature);
-                    throw new TribbleException.MalformedFeatureFile(msg, inputFile.getAbsolutePath());
-                }else{
-                    visitedChromos.put(curChr, currentFeature);
-                }
-            }
-
-            creator.addFeature(currentFeature, position);
-
-            lastFeature = currentFeature;
-        }
-
-        iterator.close();
-        return creator.finalizeIndex(iterator.getPosition());
-    }
-
-    private static String featToString(final Feature feature){
-        return feature.getChr() + ":" + feature.getStart() + "-" + feature.getEnd();
-    }
-
-    private static void checkSorted(final File inputFile, final Feature lastFeature, final Feature currentFeature){
-        // if the last currentFeature is after the current currentFeature, exception out
-        if (lastFeature != null && currentFeature.getStart() < lastFeature.getStart() && lastFeature.getChr().equals(currentFeature.getChr()))
-            throw new TribbleException.MalformedFeatureFile("Input file is not sorted by start position. \n" +
-                    "We saw a record with a start of " + currentFeature.getChr() + ":" + currentFeature.getStart() +
-                    " after a record with a start of " + lastFeature.getChr() + ":" + lastFeature.getStart(), inputFile.getAbsolutePath());
-    }
-
-
-    /**
-     * Iterator for reading features from a file, given a {@code FeatureCodec}.
-     */
-    static class FeatureIterator<FEATURE_TYPE extends Feature, SOURCE> implements CloseableTribbleIterator<Feature> {
-        // the stream we use to get features
-        private final SOURCE source;
-        // the next feature
-        private Feature nextFeature;
-        // our codec
-        private final FeatureCodec<FEATURE_TYPE, SOURCE> codec;
-        private final File inputFile;
-
-        // we also need cache our position
-        private long cachedPosition;
-
-        /**
-         *
-         * @param inputFile The file from which to read. Stream for reading is opened on construction.
-         * @param codec
-         */
-        public FeatureIterator(final File inputFile, final FeatureCodec<FEATURE_TYPE, SOURCE> codec) {
-            this.codec = codec;
-            this.inputFile = inputFile;
-            final FeatureCodecHeader header = readHeader();
-            source = (SOURCE) codec.makeIndexableSourceFromStream(initStream(inputFile, header.getHeaderEnd()));
-            readNextFeature();
-        }
-
-        /**
-         * Some codecs,  e.g. VCF files,  need the header to decode features.  This is a rather poor design,
-         * the internal header is set as a side-affect of reading it, but we have to live with it for now.
-         */
-        private FeatureCodecHeader readHeader() {
-            try {
-                final SOURCE source = this.codec.makeSourceFromStream(initStream(inputFile, 0));
-                final FeatureCodecHeader header = this.codec.readHeader(source);
-                codec.close(source);
-                return header;
-            } catch (final IOException e) {
-                throw new TribbleException.InvalidHeader("Error reading header " + e.getMessage());
-            }
-        }
-
-        private PositionalBufferedStream initStream(final File inputFile, final long skip) {
-            try {
-                final FileInputStream is = new FileInputStream(inputFile);
-                final PositionalBufferedStream pbs = new PositionalBufferedStream(is);
-                if ( skip > 0 ) pbs.skip(skip);
-                return pbs;
-            } catch (final FileNotFoundException e) {
-                throw new TribbleException.FeatureFileDoesntExist("Unable to open the input file, most likely the file doesn't exist.", inputFile.getAbsolutePath());
-            } catch (final IOException e) {
-                throw new TribbleException.MalformedFeatureFile("Error initializing stream", inputFile.getAbsolutePath(), e);
-            }
-        }
-
-        public boolean hasNext() {
-            return nextFeature != null;
-        }
-
-        public Feature next() {
-            final Feature ret = nextFeature;
-            readNextFeature();
-            return ret;
-        }
-
-        /**
-         * @throws UnsupportedOperationException
-         */
-        public void remove() {
-            throw new UnsupportedOperationException("We cannot remove");
-        }
-
-
-        /**
-         * @return the file position from the underlying reader
-         */
-        public long getPosition() {
-            return (hasNext()) ? cachedPosition : ((LocationAware) source).getPosition();
-        }
-
-        @Override
-        public Iterator<Feature> iterator() {
-            return this;
-        }
-
-        @Override
-        public void close() {
-            codec.close(source);
-        }
-
-        /**
-         * Read the next feature from the stream
-         * @throws TribbleException.MalformedFeatureFile
-         */
-        private void readNextFeature() {
-            cachedPosition = ((LocationAware) source).getPosition();
-            try {
-                nextFeature = null;
-                while (nextFeature == null && !codec.isDone(source)) {
-                    nextFeature = codec.decodeLoc(source);
-                }
-            } catch (final IOException e) {
-                throw new TribbleException.MalformedFeatureFile("Unable to read a line from the file", inputFile.getAbsolutePath(), e);
-            }
-        }
-    }
-}
diff --git a/src/java/org/broad/tribble/index/MutableIndex.java b/src/java/org/broad/tribble/index/MutableIndex.java
deleted file mode 100644
index e0bb991..0000000
--- a/src/java/org/broad/tribble/index/MutableIndex.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2014 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package org.broad.tribble.index;
-
-import java.util.Map;
-
-/**
- * Some Index implementations can be modified in memory.  Also, properties do not make sense for all index types.
- * Only the relevant index implementations implement this interface.
- */
-public interface MutableIndex extends Index {
-    void addProperty(String key, String value);
-
-    void addProperties(Map<String, String> properties);
-}
diff --git a/src/java/org/broad/tribble/index/TribbleIndexCreator.java b/src/java/org/broad/tribble/index/TribbleIndexCreator.java
deleted file mode 100644
index 2c5b80f..0000000
--- a/src/java/org/broad/tribble/index/TribbleIndexCreator.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2014 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package org.broad.tribble.index;
-
-import java.util.LinkedHashMap;
-
-/**
- * Base class for Tribble-specific index creators.
- */
-public abstract class TribbleIndexCreator implements IndexCreator {
-    protected LinkedHashMap<String, String> properties = new LinkedHashMap<String, String>();
-
-    public void addProperty(final String key, final String value) {
-        properties.put(key, value);
-    }
-}
diff --git a/src/java/org/broad/tribble/index/interval/Interval.java b/src/java/org/broad/tribble/index/interval/Interval.java
deleted file mode 100644
index 7afced2..0000000
--- a/src/java/org/broad/tribble/index/interval/Interval.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Copyright (c) 2007-2010 by The Broad Institute, Inc. and the Massachusetts Institute of Technology.
- * All Rights Reserved.
- *
- * This software is licensed under the terms of the GNU Lesser General Public License (LGPL), Version 2.1 which
- * is available at http://www.opensource.org/licenses/lgpl-2.1.php.
- *
- * THE SOFTWARE IS PROVIDED "AS IS." THE BROAD AND MIT MAKE NO REPRESENTATIONS OR WARRANTIES OF
- * ANY KIND CONCERNING THE SOFTWARE, EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES
- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT
- * OR OTHER DEFECTS, WHETHER OR NOT DISCOVERABLE.  IN NO EVENT SHALL THE BROAD OR MIT, OR THEIR
- * RESPECTIVE TRUSTEES, DIRECTORS, OFFICERS, EMPLOYEES, AND AFFILIATES BE LIABLE FOR ANY DAMAGES OF
- * ANY KIND, INCLUDING, WITHOUT LIMITATION, INCIDENTAL OR CONSEQUENTIAL DAMAGES, ECONOMIC
- * DAMAGES OR INJURY TO PROPERTY AND LOST PROFITS, REGARDLESS OF WHETHER THE BROAD OR MIT SHALL
- * BE ADVISED, SHALL HAVE OTHER REASON TO KNOW, OR IN FACT SHALL KNOW OF THE POSSIBILITY OF THE
- * FOREGOING.
- */
-
-package org.broad.tribble.index.interval;
-
-import org.broad.tribble.index.Block;
-
-
-/**
- *  Quick and dirty interval class
- *  Describes a genomic interval and where in a file information for that
- *  interval can be obtained
- */
-public class Interval implements Comparable {
-    /**
-     * Start of the interval in genomic coordinates -- this is exposed on purpose, getters have a significant
-     * performance penalty for this field.
-     */
-     final int start;
-
-    /**
-     * End of the interval in genomic coordinates -- this is exposed on purpose, getters have a significant
-     * performance penalty for this field.
-     */
-     final int end;
-
-    /**
-     * File block  (position, size) containing the data for this interval
-     */
-    private Block block;
-
-    public Interval(int start, int end) {
-        assert start <= end;
-        this.start = start;
-        this.end = end;
-    }
-
-
-    public Interval(int start, int end, Block block) {
-        assert start <= end;
-        this.start = start;
-        this.end = end;
-        this.block = block;
-    }
-
-
-    public boolean equals(Object other) {
-        if (this == other)
-            return true;
-        if (this.getClass().equals(other.getClass())) {
-            Interval otherInterval = (Interval) other;
-            return (this.start == otherInterval.start &&
-                    this.end == otherInterval.end);
-        }
-        return false;
-    }
-
-
-    public int hashCode() {
-        return start;
-    }
-
-
-    public int compareTo(Object o) {
-        Interval other = (Interval) o;
-        if (this.start < other.start)
-            return -1;
-        if (this.start > other.start)
-            return 1;
-
-        if (this.end < other.end)
-            return -1;
-        if (this.end > other.end)
-            return 1;
-
-        return 0;
-    }
-
-    public String toString() {
-        return "Interval[" + this.start + ", " + this.end + "]";
-    }
-
-
-    /**
-     * @return whether this interval overlaps the other.
-     */
-    public boolean overlaps(Interval other) {
-        return (this.start <= other.end &&
-                other.start <= this.end);
-    }
-
-
-    /**
-     * @return The file block for this interval
-     */
-    public Block getBlock() {
-        return block;
-    }
-}
-
diff --git a/src/java/org/broad/tribble/index/interval/IntervalIndexCreator.java b/src/java/org/broad/tribble/index/interval/IntervalIndexCreator.java
deleted file mode 100644
index e8ef0ec..0000000
--- a/src/java/org/broad/tribble/index/interval/IntervalIndexCreator.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * Copyright (c) 2007-2010 by The Broad Institute, Inc. and the Massachusetts Institute of Technology.
- * All Rights Reserved.
- *
- * This software is licensed under the terms of the GNU Lesser General Public License (LGPL), Version 2.1 which
- * is available at http://www.opensource.org/licenses/lgpl-2.1.php.
- *
- * THE SOFTWARE IS PROVIDED "AS IS." THE BROAD AND MIT MAKE NO REPRESENTATIONS OR WARRANTIES OF
- * ANY KIND CONCERNING THE SOFTWARE, EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES
- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT
- * OR OTHER DEFECTS, WHETHER OR NOT DISCOVERABLE.  IN NO EVENT SHALL THE BROAD OR MIT, OR THEIR
- * RESPECTIVE TRUSTEES, DIRECTORS, OFFICERS, EMPLOYEES, AND AFFILIATES BE LIABLE FOR ANY DAMAGES OF
- * ANY KIND, INCLUDING, WITHOUT LIMITATION, INCIDENTAL OR CONSEQUENTIAL DAMAGES, ECONOMIC
- * DAMAGES OR INJURY TO PROPERTY AND LOST PROFITS, REGARDLESS OF WHETHER THE BROAD OR MIT SHALL
- * BE ADVISED, SHALL HAVE OTHER REASON TO KNOW, OR IN FACT SHALL KNOW OF THE POSSIBILITY OF THE
- * FOREGOING.
- */
-
-package org.broad.tribble.index.interval;
-
-import org.broad.tribble.Feature;
-import org.broad.tribble.index.Block;
-import org.broad.tribble.index.Index;
-import org.broad.tribble.index.TribbleIndexCreator;
-import org.broad.tribble.index.interval.IntervalTreeIndex.ChrIndex;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.LinkedList;
-
-/**
- * Creates interval indexes from a stream of features
- * @author jrobinso
- */
-public class IntervalIndexCreator extends TribbleIndexCreator {
-
-    public static int DEFAULT_FEATURE_COUNT = 600;
-
-    /**
-     * Maximum number of features stored per interval.
-     * @see #DEFAULT_FEATURE_COUNT
-     */
-    private int featuresPerInterval = DEFAULT_FEATURE_COUNT;
-
-    private final LinkedList<ChrIndex> chrList = new LinkedList<ChrIndex>();
-
-    /**
-     * Instance variable for the number of features we currently are storing in the interval
-     */
-    private int featureCount = 0;
-
-    private final ArrayList<MutableInterval> intervals = new ArrayList<MutableInterval>();
-
-    File inputFile;
-
-    public IntervalIndexCreator(final File inputFile, final int featuresPerInterval) {
-        this.inputFile = inputFile;
-        this.featuresPerInterval = featuresPerInterval;
-    }
-
-    public IntervalIndexCreator(final File inputFile) {
-        this(inputFile, DEFAULT_FEATURE_COUNT);
-    }
-
-    public void addFeature(final Feature feature, final long filePosition) {
-        // if we don't have a chrIndex yet, or if the last one was for the previous contig, create a new one
-        if (chrList.size() == 0 || !chrList.getLast().getName().equals(feature.getChr())) {
-            // if we're creating a new chrIndex (not the first), make sure to dump the intervals to the old chrIndex
-            if (chrList.size() != 0)
-                addIntervalsToLastChr(filePosition);
-
-            // create a new chr index for the current contig
-            chrList.add(new ChrIndex(feature.getChr()));
-            intervals.clear();
-        }
-
-        // if we're about to overflow the current bin, make a new one
-        if (featureCount >= featuresPerInterval || intervals.size() == 0) {
-            final MutableInterval i = new MutableInterval();
-            i.setStart(feature.getStart());
-            i.setStartFilePosition(filePosition);
-            if( intervals.size() > 0) intervals.get(intervals.size()-1).setEndFilePosition(filePosition);
-            featureCount = 0; // reset the feature count
-            intervals.add(i);
-        }
-        
-        // make sure we update the ending position of the bin
-        intervals.get(intervals.size()-1).setStop(Math.max(feature.getEnd(),intervals.get(intervals.size()-1).getStop()));
-        featureCount++;
-    }
-
-    /**
-     * dump the intervals we have stored to the last chrList entry
-     * @param currentPos the current position, for the last entry in the interval list
-     */
-    private void addIntervalsToLastChr(final long currentPos) {
-        for (int x = 0; x < intervals.size(); x++) {
-            if (x == intervals.size()-1) intervals.get(x).setEndFilePosition(currentPos);
-            chrList.getLast().insert(intervals.get(x).toInterval());
-        }
-    }
-
-    /**
-     * finalize the index; create a tree index given the feature list passed in so far
-     * @param finalFilePosition the final file position, for indexes that have to close out with the final position
-     * @return a Tree Index
-     */
-    public Index finalizeIndex(final long finalFilePosition) {
-        final IntervalTreeIndex featureIndex = new IntervalTreeIndex(inputFile.getAbsolutePath());
-        // dump the remaining bins to the index
-        addIntervalsToLastChr(finalFilePosition);
-        featureIndex.setChrIndex(chrList);
-        featureIndex.addProperties(properties);
-        featureIndex.finalizeIndex();
-        return featureIndex;
-    }
-
-    public int getFeaturesPerInterval() {
-        return featuresPerInterval;
-    }
-}
-
-/**
- * The interval class isn't mutable; use this private class as a temporary storage until we're ready to make intervals
- */
-class MutableInterval {
-
-    // the start, the stop, and the start position
-    private int start;
-    private int stop;                                                                                                                                               
-    private long startFilePosition;
-    private long endFilePosition;
-
-    public void setStart(final int start) {
-        if (start < 0) throw new IllegalArgumentException("Start must be greater than 0!");
-        this.start = start;
-    }
-
-    public void setStop(final int stop) {
-        if (stop < 0) throw new IllegalArgumentException("Start must be greater than 0!");
-        this.stop = stop;
-    }
-
-    public void setStartFilePosition(final long startFilePosition) {
-        this.startFilePosition = startFilePosition;
-    }
-
-    public void setEndFilePosition(final long endFilePosition) {
-        this.endFilePosition = endFilePosition;
-    }
-
-    public Interval toInterval() {
-        return new Interval(start,stop,new Block(startFilePosition, endFilePosition - startFilePosition));
-    }
-
-    public int getStop() {
-        return stop;
-    }
-}
\ No newline at end of file
diff --git a/src/java/org/broad/tribble/index/interval/IntervalTree.java b/src/java/org/broad/tribble/index/interval/IntervalTree.java
deleted file mode 100644
index ab5faba..0000000
--- a/src/java/org/broad/tribble/index/interval/IntervalTree.java
+++ /dev/null
@@ -1,546 +0,0 @@
-/*
- * Copyright (c) 2007-2010 by The Broad Institute, Inc. and the Massachusetts Institute of Technology.
- * All Rights Reserved.
- *
- * This software is licensed under the terms of the GNU Lesser General Public License (LGPL), Version 2.1 which
- * is available at http://www.opensource.org/licenses/lgpl-2.1.php.
- *
- * THE SOFTWARE IS PROVIDED "AS IS." THE BROAD AND MIT MAKE NO REPRESENTATIONS OR WARRANTIES OF
- * ANY KIND CONCERNING THE SOFTWARE, EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES
- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT
- * OR OTHER DEFECTS, WHETHER OR NOT DISCOVERABLE.  IN NO EVENT SHALL THE BROAD OR MIT, OR THEIR
- * RESPECTIVE TRUSTEES, DIRECTORS, OFFICERS, EMPLOYEES, AND AFFILIATES BE LIABLE FOR ANY DAMAGES OF
- * ANY KIND, INCLUDING, WITHOUT LIMITATION, INCIDENTAL OR CONSEQUENTIAL DAMAGES, ECONOMIC
- * DAMAGES OR INJURY TO PROPERTY AND LOST PROFITS, REGARDLESS OF WHETHER THE BROAD OR MIT SHALL
- * BE ADVISED, SHALL HAVE OTHER REASON TO KNOW, OR IN FACT SHALL KNOW OF THE POSSIBILITY OF THE
- * FOREGOING.
- */
-
-package org.broad.tribble.index.interval;
-
-
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.util.*;
-
-/** An implementation of an interval tree, following the explanation.
- * from CLR. For efficiently finding all intervals which overlap a given
- * interval or point.
- *
- * References:
- * http://en.wikipedia.org/wiki/Interval_tree
- *
- * Cormen, Thomas H.; Leiserson, Charles E., Rivest, Ronald L. (1990). Introduction to Algorithms (1st ed.). MIT Press and McGraw-Hill. ISBN 0-262-03141-8
- *
- *
- */
-public class IntervalTree {
-
-    Node root;
-    Node NIL = Node.NIL;
-
-    /**
-     * See {@link #getSize()}
-     */
-    int size;
-
-    public IntervalTree() {
-        this.root = NIL;
-        this.size = 0;
-    }
-
-
-    public void insert(Interval interval) {
-        Node node = new Node(interval);
-        insert(node);
-        size++;
-    }
-
-    /**
-     * The estimated size of the tree. We keep a running count
-     * on each insert, this getter returns that count.
-     * @see #size()
-     * @return
-     */
-    public int getSize() {
-        return size;
-    }
-
-    /**
-     *
-     * @param interval
-     * @return all matches as a list of Intervals
-     */
-    public List<Interval> findOverlapping(Interval interval) {
-
-        if (root().isNull()) {
-            return Collections.emptyList();
-        }
-
-        List<Interval> results = new ArrayList();
-        searchAll(interval, root(), results);
-        return results;
-    }
-
-    public String toString() {
-        return root().toString();
-    }
-
-    private List<Interval> searchAll(Interval interval, Node node, List<Interval> results) {
-        if (node.interval.overlaps(interval)) {
-            results.add(node.interval);
-        }
-        if (!node.left.isNull() && node.left.max >= interval.start) {
-            searchAll(interval, node.left, results);
-        }
-        if (!node.right.isNull() && node.right.min <= interval.end) {
-            searchAll(interval, node.right, results);
-        }
-        return results;
-    }
-
-    /**
-     * Return all intervals in tree.
-     * TODO: an iterator would be more effecient.
-     * @return
-     */
-    public List<Interval> getIntervals() {
-        if (root().isNull()) {
-            return Collections.emptyList();
-        }
-        List<Interval> results = new ArrayList(size);
-        getAll(root(), results);
-        return results;
-    }
-
-    /**
-     * Get all nodes which are descendants of {@code node}, inclusive.
-     * {@code results} is modified in place
-     * @param node
-     * @param results
-     * @return the total list of descendants, including original {@code results}
-     */
-    private List<Interval> getAll(Node node, List<Interval> results) {
-
-        results.add(node.interval);
-        if (!node.left.isNull()) {
-            getAll(node.left, results);
-        }
-        if (!node.right.isNull()) {
-            getAll(node.right, results);
-        }
-        return results;
-    }
-
-
-    /**
-     * Used for testing only.
-     *
-     * @param node
-     * @return
-     */
-    private int getRealMax(Node node) {
-        if (node.isNull())
-            return Integer.MIN_VALUE;
-        int leftMax = getRealMax(node.left);
-        int rightMax = getRealMax(node.right);
-        int nodeHigh = (node.interval).end;
-
-        int max1 = (leftMax > rightMax ? leftMax : rightMax);
-        return (max1 > nodeHigh ? max1 : nodeHigh);
-    }
-
-    /**
-     * Used for testing only
-     *
-     * @param node
-     * @return
-     */
-    private int getRealMin(Node node) {
-        if (node.isNull())
-            return Integer.MAX_VALUE;
-
-        int leftMin = getRealMin(node.left);
-        int rightMin = getRealMin(node.right);
-        int nodeLow = (node.interval).start;
-
-        int min1 = (leftMin < rightMin ? leftMin : rightMin);
-        return (min1 < nodeLow ? min1 : nodeLow);
-    }
-
-
-    private void insert(Node x) {
-        assert (x != null);
-        assert (!x.isNull());
-
-        treeInsert(x);
-        x.color = Node.RED;
-        while (x != this.root && x.parent.color == Node.RED) {
-            if (x.parent == x.parent.parent.left) {
-                Node y = x.parent.parent.right;
-                if (y.color == Node.RED) {
-                    x.parent.color = Node.BLACK;
-                    y.color = Node.BLACK;
-                    x.parent.parent.color = Node.RED;
-                    x = x.parent.parent;
-                } else {
-                    if (x == x.parent.right) {
-                        x = x.parent;
-                        this.leftRotate(x);
-                    }
-                    x.parent.color = Node.BLACK;
-                    x.parent.parent.color = Node.RED;
-                    this.rightRotate(x.parent.parent);
-                }
-            } else {
-                Node y = x.parent.parent.left;
-                if (y.color == Node.RED) {
-                    x.parent.color = Node.BLACK;
-                    y.color = Node.BLACK;
-                    x.parent.parent.color = Node.RED;
-                    x = x.parent.parent;
-                } else {
-                    if (x == x.parent.left) {
-                        x = x.parent;
-                        this.rightRotate(x);
-                    }
-                    x.parent.color = Node.BLACK;
-                    x.parent.parent.color = Node.RED;
-                    this.leftRotate(x.parent.parent);
-                }
-            }
-        }
-        this.root.color = Node.BLACK;
-    }
-
-
-    private Node root() {
-        return this.root;
-    }
-
-
-    private void leftRotate(Node x) {
-        Node y = x.right;
-        x.right = y.left;
-        if (y.left != NIL) {
-            y.left.parent = x;
-        }
-        y.parent = x.parent;
-        if (x.parent == NIL) {
-            this.root = y;
-        } else {
-            if (x.parent.left == x) {
-                x.parent.left = y;
-            } else {
-                x.parent.right = y;
-            }
-        }
-        y.left = x;
-        x.parent = y;
-
-        applyUpdate(x);
-        // no need to apply update on y, since it'll y is an ancestor
-        // of x, and will be touched by applyUpdate().
-    }
-
-
-    private void rightRotate(Node x) {
-        Node y = x.left;
-        x.left = y.right;
-        if (y.right != NIL) {
-            y.right.parent = x;
-        }
-        y.parent = x.parent;
-        if (x.parent == NIL) {
-            this.root = y;
-        } else {
-            if (x.parent.right == x) {
-                x.parent.right = y;
-            } else {
-                x.parent.left = y;
-            }
-        }
-        y.right = x;
-        x.parent = y;
-
-
-        applyUpdate(x);
-        // no need to apply update on y, since it'll y is an ancestor
-        // of x, and will be touched by applyUpdate().
-    }
-
-
-    /**
-     * Note:  Does not maintain RB constraints,  this is done post insert
-     *
-     * @param x
-     */
-    private void treeInsert(Node x) {
-        Node node = this.root;
-        Node y = NIL;
-        while (node != NIL) {
-            y = node;
-            if (x.interval.start <= node.interval.start) {
-                node = node.left;
-            } else {
-                node = node.right;
-            }
-        }
-        x.parent = y;
-
-        if (y == NIL) {
-            this.root = x;
-            x.left = x.right = NIL;
-        } else {
-            if (x.interval.start <= y.interval.start) {
-                y.left = x;
-            } else {
-                y.right = x;
-            }
-        }
-
-        this.applyUpdate(x);
-    }
-
-
-    // Applies the statistic update on the node and its ancestors.
-
-    private void applyUpdate(Node node) {
-        while (!node.isNull()) {
-            this.update(node);
-            node = node.parent;
-        }
-    }
-
-    private void update(Node node) {
-        node.max = Math.max(Math.max(node.left.max, node.right.max), node.interval.end);
-        node.min = Math.min(Math.min(node.left.min, node.right.min), node.interval.start);
-    }
-
-    /**
-     * @see #getSize()
-     * @return Returns the number of nodes in the tree.
-     *         Recalculated each call
-     */
-    public int size() {
-        return _size(this.root);
-    }
-
-
-    private int _size(Node node) {
-        if (node.isNull())
-            return 0;
-        return 1 + _size(node.left) + _size(node.right);
-    }
-
-
-    private boolean allRedNodesFollowConstraints(Node node) {
-        if (node.isNull())
-            return true;
-
-        if (node.color == Node.BLACK) {
-            return (allRedNodesFollowConstraints(node.left) &&
-                    allRedNodesFollowConstraints(node.right));
-        }
-
-        // At this point, we know we're on a RED node.
-        return (node.left.color == Node.BLACK &&
-                node.right.color == Node.BLACK &&
-                allRedNodesFollowConstraints(node.left) &&
-                allRedNodesFollowConstraints(node.right));
-    }
-
-
-    // Check that both ends are equally balanced in terms of black height.
-
-    private boolean isBalancedBlackHeight(Node node) {
-        if (node.isNull())
-            return true;
-        return (blackHeight(node.left) == blackHeight(node.right) &&
-                isBalancedBlackHeight(node.left) &&
-                isBalancedBlackHeight(node.right));
-    }
-
-
-    // The black height of a node should be left/right equal.
-
-    private int blackHeight(Node node) {
-        if (node.isNull())
-            return 0;
-        int leftBlackHeight = blackHeight(node.left);
-        if (node.color == Node.BLACK) {
-            return leftBlackHeight + 1;
-        } else {
-            return leftBlackHeight;
-        }
-    }
-
-
-    /**
-     * Test code: make sure that the tree has all the properties
-     * defined by Red Black trees and interval trees
-     * <p/>
-     * o.  Root is black.
-     * <p/>
-     * o.  NIL is black.
-     * <p/>
-     * o.  Red nodes have black children.
-     * <p/>
-     * o.  Every path from root to leaves contains the same number of
-     * black nodes.
-     * <p/>
-     * o.  getMax(node) is the maximum of any interval rooted at that node..
-     * <p/>
-     * This code is expensive, and only meant to be used for
-     * assertions and testing.
-     */
-    public boolean isValid() {
-        if (this.root.color != Node.BLACK) {
-            //logger.warn("root color is wrong");
-            return false;
-        }
-        if (NIL.color != Node.BLACK) {
-            //logger.warn("NIL color is wrong");
-            return false;
-        }
-        if (allRedNodesFollowConstraints(this.root) == false) {
-            //logger.warn("red node doesn't follow constraints");
-            return false;
-        }
-        if (isBalancedBlackHeight(this.root) == false) {
-            //logger.warn("black height unbalanced");
-            return false;
-        }
-
-        return hasCorrectMaxFields(this.root) &&
-                hasCorrectMinFields(this.root);
-    }
-
-
-    private boolean hasCorrectMaxFields(Node node) {
-        if (node.isNull())
-            return true;
-        return (getRealMax(node) == (node.max) &&
-                hasCorrectMaxFields(node.left) &&
-                hasCorrectMaxFields(node.right));
-    }
-
-
-    private boolean hasCorrectMinFields(Node node) {
-        if (node.isNull())
-            return true;
-        return (getRealMin(node) == (node.min) &&
-                hasCorrectMinFields(node.left) &&
-                hasCorrectMinFields(node.right));
-    }
-
-
-    static class Node {
-
-        public static boolean BLACK = false;
-        public static boolean RED = true;
-
-        Interval interval;
-        int min;
-        int max;
-        Node left;
-        Node right;
-
-        // Color and parent are used for inserts.  If tree is immutable these are not required (no requirement
-        // to store these persistently).
-        boolean color;
-        Node parent;
-
-
-        private Node() {
-            this.max = Integer.MIN_VALUE;
-            this.min = Integer.MAX_VALUE;
-        }
-
-        public void store(DataOutputStream dos) throws IOException {
-            dos.writeInt(interval.start);
-            dos.writeInt(interval.end);
-            dos.writeInt(min);
-            dos.writeInt(max);
-
-        }
-
-        public Node(Interval interval) {
-            this();
-            this.parent = NIL;
-            this.left = NIL;
-            this.right = NIL;
-            this.interval = interval;
-            this.color = RED;
-        }
-
-
-        static Node NIL;
-
-        static {
-            NIL = new Node();
-            NIL.color = BLACK;
-            NIL.parent = NIL;
-            NIL.left = NIL;
-            NIL.right = NIL;
-        }
-
-
-        public boolean isNull() {
-            return this == NIL;
-        }
-
-
-        public String toString() {
-
-            // Make some shorthand for the nodes
-            Map<Interval, Integer> keys = new LinkedHashMap();
-
-            if (this == NIL) {
-                return "nil";
-            }
-
-            StringBuffer buf = new StringBuffer();
-            _toString(buf, keys);
-
-            buf.append("\n");
-            for (Map.Entry<Interval, Integer> entry : keys.entrySet()) {
-                buf.append(entry.getValue() + " = " + entry.getKey());
-                buf.append("\n");
-            }
-
-            return buf.toString();
-        }
-
-        public void _toString(StringBuffer buf, Map<Interval, Integer> keys) {
-            if (this == NIL) {
-                buf.append("nil");
-                buf.append("\n");
-                return;
-            }
-
-            Integer selfKey = keys.get(this.interval);
-            if (selfKey == null) {
-                selfKey = keys.size();
-                keys.put(this.interval, selfKey);
-            }
-            Integer leftKey = keys.get(this.left.interval);
-            if (leftKey == null) {
-                leftKey = keys.size();
-                keys.put(this.left.interval, leftKey);
-            }
-            Integer rightKey = keys.get(this.right.interval);
-            if (rightKey == null) {
-                rightKey = keys.size();
-                keys.put(this.right.interval, rightKey);
-            }
-
-
-            buf.append(selfKey + " -> " + leftKey + " , " + rightKey);
-            buf.append("\n");
-            this.left._toString(buf, keys);
-            this.right._toString(buf, keys);
-        }
-    }
-}
-
diff --git a/src/java/org/broad/tribble/index/interval/IntervalTreeIndex.java b/src/java/org/broad/tribble/index/interval/IntervalTreeIndex.java
deleted file mode 100644
index da98ecc..0000000
--- a/src/java/org/broad/tribble/index/interval/IntervalTreeIndex.java
+++ /dev/null
@@ -1,211 +0,0 @@
-/*
- * Copyright (c) 2007-2010 by The Broad Institute, Inc. and the Massachusetts Institute of Technology.
- * All Rights Reserved.
- *
- * This software is licensed under the terms of the GNU Lesser General Public License (LGPL), Version 2.1 which
- * is available at http://www.opensource.org/licenses/lgpl-2.1.php.
- *
- * THE SOFTWARE IS PROVIDED "AS IS." THE BROAD AND MIT MAKE NO REPRESENTATIONS OR WARRANTIES OF
- * ANY KIND CONCERNING THE SOFTWARE, EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES
- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT
- * OR OTHER DEFECTS, WHETHER OR NOT DISCOVERABLE.  IN NO EVENT SHALL THE BROAD OR MIT, OR THEIR
- * RESPECTIVE TRUSTEES, DIRECTORS, OFFICERS, EMPLOYEES, AND AFFILIATES BE LIABLE FOR ANY DAMAGES OF
- * ANY KIND, INCLUDING, WITHOUT LIMITATION, INCIDENTAL OR CONSEQUENTIAL DAMAGES, ECONOMIC
- * DAMAGES OR INJURY TO PROPERTY AND LOST PROFITS, REGARDLESS OF WHETHER THE BROAD OR MIT SHALL
- * BE ADVISED, SHALL HAVE OTHER REASON TO KNOW, OR IN FACT SHALL KNOW OF THE POSSIBILITY OF THE
- * FOREGOING.
- */
-
-package org.broad.tribble.index.interval;
-
-import org.broad.tribble.TribbleException;
-import org.broad.tribble.index.AbstractIndex;
-import org.broad.tribble.index.Block;
-import org.broad.tribble.util.LittleEndianInputStream;
-import org.broad.tribble.util.LittleEndianOutputStream;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.List;
-
-/**
- * Index based on an interval tree
- * @see IntervalTree
- * @author jrobinso
- * @date Jul 9, 2010
- */
-public class IntervalTreeIndex extends AbstractIndex {
-    public static final int INDEX_TYPE = IndexType.INTERVAL_TREE.fileHeaderTypeIdentifier;
-
-    /**
-     * Load from file.
-     * @param inputStream This method assumes that the input stream is already buffered as appropriate.  Caller
-     *                    should close after this object is constructed.
-     */
-    public IntervalTreeIndex(final InputStream inputStream) throws IOException {
-        final LittleEndianInputStream dis = new LittleEndianInputStream(inputStream);
-        validateIndexHeader(INDEX_TYPE, dis);
-        read(dis);
-    }
-
-    /**
-     * Prepare to build an index.
-     * @param featureFile File which we are indexing
-     */
-    public IntervalTreeIndex(final String featureFile) {
-        super(featureFile);
-    }
-
-    @Override
-    public Class getChrIndexClass() {
-        return ChrIndex.class;
-    }
-
-    @Override
-    protected int getType() {
-        return INDEX_TYPE;
-    }
-
-    /**
-     * Add a new interval to this index
-     * @param chr  Chromosome
-     * @param interval
-     */
-    public void insert(final String chr, final Interval interval) {
-        ChrIndex chrIdx = (ChrIndex) chrIndices.get(chr);
-        if (chrIdx == null) {
-            chrIdx = new ChrIndex(chr);
-            chrIndices.put(chr, chrIdx);
-        }
-        chrIdx.insert(interval);
-    }
-
-    protected void setChrIndex(final List<ChrIndex> indicies) {
-        for (final ChrIndex index : indicies) {
-            chrIndices.put(index.getName(), index);
-        }
-    }
-
-    public void printTree() {
-
-        for (final String chr : chrIndices.keySet()) {
-            System.out.println(chr + ":");
-            final ChrIndex chrIdx = (ChrIndex) chrIndices.get(chr);
-            chrIdx.printTree();
-            System.out.println();
-        }
-    }
-
-    public static class ChrIndex implements org.broad.tribble.index.ChrIndex {
-
-        IntervalTree tree;
-        String name;
-
-        /**
-         * Default constructor needed for factory methods -- DO NOT REMOVE
-         */
-        public ChrIndex() {
-
-        }
-
-        public ChrIndex(final String name) {
-            this.name = name;
-            tree = new IntervalTree();
-        }
-
-        public String getName() {
-            return name;
-        }
-
-        public void insert(final Interval iv) {
-            tree.insert(iv);
-        }
-
-        public List<Block> getBlocks() {
-            return null;
-        }
-
-
-        public List<Block> getBlocks(final int start, final int end) {
-
-            // Get intervals and build blocks list
-            final List<Interval> intervals = tree.findOverlapping(new Interval(start, end));
-
-            // save time (and save throwing an exception) if the blocks are empty, return now
-            if (intervals == null || intervals.size() == 0) return new ArrayList<Block>();
-
-            final Block[] blocks = new Block[intervals.size()];
-            int idx = 0;
-            for (final Interval iv : intervals) {
-                blocks[idx++] = iv.getBlock();
-            }
-
-            // Sort blocks by start position
-            Arrays.sort(blocks, new Comparator<Block>() {
-                public int compare(final Block b1, final Block b2) {
-                    // this is a little cryptic because the normal method (b1.getStartPosition() - b2.getStartPosition()) wraps in int space and we incorrectly sort the blocks in extreme cases
-                    return b1.getStartPosition() - b2.getStartPosition() < 1 ? -1 : (b1.getStartPosition() - b2.getStartPosition() > 1 ? 1 : 0);
-                }
-            });
-
-            // Consolidate blocks  that are close together
-            final List<Block> consolidatedBlocks = new ArrayList(blocks.length);
-            Block lastBlock = blocks[0];
-            consolidatedBlocks.add(lastBlock);
-            for (int i = 1; i < blocks.length; i++) {
-                final Block block = blocks[i];
-                if (block.getStartPosition() < (lastBlock.getEndPosition() + 1000)) {
-                    lastBlock.setEndPosition(block.getEndPosition());
-                } else {
-                    lastBlock = block;
-                    consolidatedBlocks.add(lastBlock);
-                }
-            }
-
-            return consolidatedBlocks;
-        }
-
-        public void printTree() {
-            System.out.println(tree.toString());
-        }
-
-        public void write(final LittleEndianOutputStream dos) throws IOException {
-
-            dos.writeString(name);
-            final List<Interval> intervals = tree.getIntervals();
-
-            dos.writeInt(intervals.size());
-            for (final Interval interval : intervals) {
-                dos.writeInt(interval.start);
-                dos.writeInt(interval.end);
-                dos.writeLong(interval.getBlock().getStartPosition());
-                dos.writeInt((int)interval.getBlock().getSize());
-            }
-
-        }
-
-        public void read(final LittleEndianInputStream dis) throws IOException {
-
-            tree = new IntervalTree();
-
-            name = dis.readString();
-            int nIntervals = dis.readInt();
-            while (nIntervals-- > 0) {
-
-                final int start = dis.readInt();
-                final int end = dis.readInt();
-                final long pos = dis.readLong();
-                final int size = dis.readInt();
-
-                final Interval iv = new Interval(start, end, new Block(pos, size));
-                tree.insert(iv);
-            }
-
-
-        }
-
-    }
-}
diff --git a/src/java/org/broad/tribble/index/linear/LinearIndex.java b/src/java/org/broad/tribble/index/linear/LinearIndex.java
deleted file mode 100644
index 910c1fc..0000000
--- a/src/java/org/broad/tribble/index/linear/LinearIndex.java
+++ /dev/null
@@ -1,431 +0,0 @@
-/*
- * Copyright (c) 2009-2010 by The Broad Institute, Inc.
- * All Rights Reserved.
- *
- * This software is licensed under the terms of the GNU Lesser General Public License (LGPL), Version 2.1 which
- * is available at http://www.opensource.org/licenses/lgpl-2.1.php.
- *
- * THE SOFTWARE IS PROVIDED "AS IS." THE BROAD AND MIT MAKE NO REPRESENTATIONS OR WARRANTIES OF
- * ANY KIND CONCERNING THE SOFTWARE, EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES
- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT
- * OR OTHER DEFECTS, WHETHER OR NOT DISCOVERABLE.  IN NO EVENT SHALL THE BROAD OR MIT, OR THEIR
- * RESPECTIVE TRUSTEES, DIRECTORS, OFFICERS, EMPLOYEES, AND AFFILIATES BE LIABLE FOR ANY DAMAGES OF
- * ANY KIND, INCLUDING, WITHOUT LIMITATION, INCIDENTAL OR CONSEQUENTIAL DAMAGES, ECONOMIC
- * DAMAGES OR INJURY TO PROPERTY AND LOST PROFITS, REGARDLESS OF WHETHER THE BROAD OR MIT SHALL
- * BE ADVISED, SHALL HAVE OTHER REASON TO KNOW, OR IN FACT SHALL KNOW OF THE POSSIBILITY OF THE
- * FOREGOING.
- */
-
-package org.broad.tribble.index.linear;
-
-import org.broad.tribble.TribbleException;
-import org.broad.tribble.index.AbstractIndex;
-import org.broad.tribble.index.Block;
-import org.broad.tribble.index.Index;
-import org.broad.tribble.util.LittleEndianInputStream;
-import org.broad.tribble.util.LittleEndianOutputStream;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.PrintStream;
-import java.util.*;
-
-/**
- * Index defined by dividing the genome by chromosome, then each chromosome into bins of fixed width (in
- * genomic coordinates).   Features are allocated to bins by start position.  The longest feature in each
- * recorded and used to adjust the start position of a query to include all bins that might have a feature
- * that overlaps the query interval.  This works well for feature sets of approximately homogeneous length,
- * or whose longest feature is on the order of the bin width or less.
- * <p/>
- * magicNumber      integer
- * type             integer
- * version          integer
- * filename         null terminated character array
- * filesize         long
- * lastModified     long
- * md5              String
- * flags            integer
- * <p/>
- * ------  LINEAR INDEX
- * nChromosomes     integer
- */
-public class LinearIndex extends AbstractIndex {
-
-    // NOTE: To debug uncomment the System.getProperty and recompile.
-    public static final double MAX_FEATURES_PER_BIN = Double.valueOf(System.getProperty("MAX_FEATURES_PER_BIN", "100"));
-    public static final int INDEX_TYPE = IndexType.LINEAR.fileHeaderTypeIdentifier;
-
-    private final static int MAX_BIN_WIDTH = 1 * 1000 * 1000 * 1000; //  widths must be less than 1 billion
-
-    // 1MB: we will no merge bins with any features in them beyond this size, no matter how sparse, per chromosome
-    private static final long MAX_BIN_WIDTH_FOR_OCCUPIED_CHR_INDEX = Long.valueOf(System.getProperty("MAX_BIN_WIDTH_FOR_OCCUPIED_CHR_INDEX", "1024000"));
-
-    public static boolean enableAdaptiveIndexing = true;
-
-    /**
-     * Initialize using the specified {@code indices}
-     * @param indices
-     * @param featureFile
-     */
-    public LinearIndex(final List<ChrIndex> indices, final File featureFile) {
-        super(featureFile.getAbsolutePath());
-        for (final ChrIndex index : indices)
-            chrIndices.put(index.getName(), index);
-    }
-
-    private LinearIndex(final LinearIndex parent, final List<ChrIndex> indices) {
-        super(parent);
-        for (final ChrIndex index : indices)
-            chrIndices.put(index.getName(), index);
-    }
-
-    /**
-     * Initialize with default parameters
-     * @param featureFile File for which this is an index
-     */
-    public LinearIndex(final String featureFile) {
-        super(featureFile);
-    }
-
-    /**
-     * Load from file.
-     * @param inputStream This method assumes that the input stream is already buffered as appropriate.
-     */
-    public LinearIndex(final InputStream inputStream) throws IOException {
-        final LittleEndianInputStream dis = new LittleEndianInputStream(inputStream);
-        validateIndexHeader(INDEX_TYPE, dis);
-        read(dis);
-    }
-
-    public boolean isCurrentVersion() {
-        if (!super.isCurrentVersion()) return false;
-
-        // todo fixme nasty hack to determine if this is an old style V3 linear index (without nFeaturesPerBin)
-        for (final org.broad.tribble.index.ChrIndex chrIndex : chrIndices.values())
-            if (((ChrIndex) chrIndex).OLD_V3_INDEX)
-                return false;
-
-        return true;
-    }
-
-    @Override
-    protected int getType() {
-        return INDEX_TYPE;
-    }
-
-    public List<String> getSequenceNames() {
-        return (chrIndices == null ? Collections.EMPTY_LIST :
-                Collections.unmodifiableList(new ArrayList<String>(chrIndices.keySet())));
-    }
-
-    @Override
-    public Class getChrIndexClass() {
-        return ChrIndex.class;
-    }
-
-
-    /**
-     * Blocks are organized as a simple flat list:
-     * <p/>
-     * Block 0
-     * Block 1
-     * Block 2
-     * <p/>
-     * There's a constant bin width, so that each block corresponds to a specific interval
-     * over the genome based on its index, as in:
-     * <p/>
-     * Block 0: (0 - binWidth]
-     * Block 1: (binWidth - 2 * binWidth]
-     * Block 2: (2 * binWidth - 3 * binWidth]
-     * <p/>
-     * Note that covered regions are open on the left ( and closed on the right ].
-     * <p/>
-     * In general, if block i is the ith block (starting from 0), then block i
-     * contains all records that have starting position > (i * binWidth) and
-     * <= ((i + 1) * binWidth))
-     */
-    public static class ChrIndex implements org.broad.tribble.index.ChrIndex {
-        private String name = "";
-        private int binWidth;
-        private int longestFeature;
-        private int nFeatures;
-        private List<Block> blocks;
-
-        private boolean OLD_V3_INDEX = false;
-
-        /**
-         * Default constructor needed for factory methods -- DO NOT REMOVE
-         */
-        public ChrIndex() {
-
-        }
-
-        ChrIndex(final String name, final int binWidth) {
-            this.name = name;
-            this.binWidth = binWidth;
-            this.blocks = new ArrayList<Block>(100);
-            this.longestFeature = 0;
-            //this.largestBlockSize = 0;
-            this.nFeatures = 0;
-        }
-
-        public String getName() {
-            return name;
-        }
-
-        void addBlock(final Block block) {
-            blocks.add(block);
-            //largestBlockSize = Math.max(largestBlockSize, block.getSize());
-        }
-
-        public int getNBlocks() {
-            return blocks.size();
-        }
-
-        public List<Block> getBlocks() {
-            return blocks;
-        }
-
-        public List<Block> getBlocks(final int start, final int end) {
-            if (blocks.isEmpty()) {
-                return Collections.emptyList();
-            } else {
-                // Adjust position for the longest feature in this chromosome.  This insures we get
-                // features that start before the bin but extend into it
-                final int adjustedPosition = Math.max(start - longestFeature, 0);
-                final int startBinNumber = adjustedPosition / binWidth;
-                if (startBinNumber >= blocks.size()) // are we off the end of the bin list, so return nothing
-                    return Collections.emptyList();
-                else {
-                    final int endBinNumber = Math.min((end - 1) / binWidth, blocks.size() - 1);
-
-                    // By definition blocks are adjacent for the liner index.  Combine them into one merged block
-
-                    final long startPos = blocks.get(startBinNumber).getStartPosition();
-                    final long endPos = blocks.get(endBinNumber).getStartPosition() + blocks.get(endBinNumber).getSize();
-                    final long size = endPos - startPos;
-                    if (size == 0) {
-                        return Collections.EMPTY_LIST;
-                    } else {
-                        final Block mergedBlock = new Block(startPos, size);
-                        return Arrays.asList(mergedBlock);
-                    }
-                }
-            }
-        }
-
-
-        public void updateLongestFeature(final int featureLength) {
-            longestFeature = Math.max(longestFeature, featureLength);
-        }
-
-        public int getNFeatures() {
-            return this.nFeatures;
-        }
-
-        public void incrementFeatureCount() {
-            this.nFeatures++;
-        }
-
-        public void write(final LittleEndianOutputStream dos) throws IOException {
-
-            // Chr name, binSize,  # bins,  longest feature
-            dos.writeString(name);
-            dos.writeInt(binWidth);
-            dos.writeInt(blocks.size());
-            dos.writeInt(longestFeature);
-            dos.writeInt(0);    // no longer used
-            //dos.writeInt(largestBlockSize);
-            dos.writeInt(nFeatures);
-
-            long pos = 0;
-            long size = 0;
-            for (final Block block : blocks) {
-                pos = block.getStartPosition();
-                size = block.getSize();
-                dos.writeLong(pos);
-            }
-            // End of last block for this chromosome
-            dos.writeLong(pos + size);
-        }
-
-        public void read(final LittleEndianInputStream dis) throws IOException {
-            name = dis.readString();
-            binWidth = dis.readInt();
-            final int nBins = dis.readInt();
-            longestFeature = dis.readInt();
-            //largestBlockSize = dis.readInt();
-            // largestBlockSize and totalBlockSize are old V3 index values.  largest block size should be 0 for
-            // all newer V3 block.  This is a nasty hack that should be removed when we go to V4 (XML!) indices
-            OLD_V3_INDEX = dis.readInt() > 0;
-            nFeatures = dis.readInt();
-
-            // note the code below accounts for > 60% of the total time to read an index
-            blocks = new ArrayList<Block>(nBins);
-            long pos = dis.readLong();
-            for (int binNumber = 0; binNumber < nBins; binNumber++) {
-                final long nextPos = dis.readLong();
-                final long size = nextPos - pos;
-                blocks.add(new Block(pos, size));
-                pos = nextPos;
-            }
-        }
-
-        public boolean equals(final Object obj) {
-            if (this == obj) return true;
-            if (!(obj instanceof ChrIndex)) return false;
-            final ChrIndex other = (ChrIndex) obj;
-            return binWidth == other.binWidth
-                    && longestFeature == other.longestFeature
-                    //&& largestBlockSize == other.largestBlockSize
-                    && nFeatures == other.nFeatures
-                    && name.equals(other.name)
-                    && blocks.equals(other.blocks);
-        }
-
-        /**
-         * @return  Total size of all blocks
-         */
-        public long getTotalSize() {
-            long n = 0;
-            for (final Block b : getBlocks())
-                n += b.getSize();
-            return n;
-        }
-
-        public double getAverageFeatureSize() {
-            return (1.0 * getTotalSize()) / getNFeatures();
-        }
-
-        public double getFeaturesPerBlock() {
-            return (1.0 * getNFeatures()) / getNBlocks();
-        }
-
-        private double getNFeaturesOfMostDenseBlock(final double featureSize) {
-            double m = -1;
-            for (final Block b : getBlocks()) {
-                final double n = b.getSize() / featureSize;
-                if (m == -1 || n > m) m = n;
-            }
-            return m;
-        }
-
-        private double optimizeScore() {
-            return getNFeaturesOfMostDenseBlock(getAverageFeatureSize());
-        }
-
-        public ChrIndex optimize(final double threshold) {
-            return optimize(this, threshold, 0);
-        }
-
-        private static boolean badBinWidth(final ChrIndex idx) {
-            if (idx.binWidth > MAX_BIN_WIDTH || idx.binWidth < 0) // an overflow occurred
-                return true;
-            else if (MAX_BIN_WIDTH_FOR_OCCUPIED_CHR_INDEX != 0 && idx.getNFeatures() > 1 && idx.binWidth > MAX_BIN_WIDTH_FOR_OCCUPIED_CHR_INDEX) {
-                return true;
-            } else {
-                return false;
-            }
-        }
-
-        private static ChrIndex optimize(ChrIndex idx, final double threshold, int level) {
-            ChrIndex best = idx;
-
-            while (true) {
-                final double score = idx.optimizeScore();
-
-                if (score > threshold || idx.getNBlocks() == 1 || badBinWidth(idx))
-                    break;
-                else {
-                    best = idx; // remember the last best option
-
-                    // try to make a better one
-                    idx = mergeBlocks(idx);
-                    level++;
-                }
-
-                if (level > 30) throw new IllegalStateException("Too many iterations");
-            }
-
-            return best;
-        }
-
-        private static ChrIndex mergeBlocks(final ChrIndex idx) {
-            final ChrIndex merged = new ChrIndex(idx.name, idx.binWidth * 2); // increasing width by 2 each time
-            merged.longestFeature = idx.longestFeature;
-            merged.nFeatures = idx.nFeatures;
-
-            final Iterator<Block> blocks = idx.getBlocks().iterator();
-            if (!blocks.hasNext())
-                throw new IllegalStateException("Block iterator cannot be empty at the start for " + idx.getName());
-
-            // extremely simple merging algorithm.  Walk left to right, joining up blocks adjacent blocks.
-            while (blocks.hasNext()) {
-                final Block b1 = blocks.next();
-                final Block b2 = blocks.hasNext() ? blocks.next() : null;
-
-                if (b2 == null)
-                    merged.addBlock(b1);
-                else
-                    // the new block is simply the start of the first block and the size of both together
-                    merged.addBlock(new Block(b1.getStartPosition(), b1.getSize() + b2.getSize()));
-            }
-
-            return merged;
-        }
-
-        private static String dupString(final char c, final int nCopies) {
-            final char[] chars = new char[nCopies];
-            Arrays.fill(chars, c);
-            return new String(chars);
-        }
-    }
-
-    /**
-     * Adapative optimization of the linear index
-     * @param threshold threshold to use for optimizing each constituent {@code chrIndex}
-     * @return The new optimized index
-     */
-    public Index optimize(final double threshold) {
-        if (enableAdaptiveIndexing) {
-
-            final List<ChrIndex> newIndices = new ArrayList<ChrIndex>(this.chrIndices.size());
-            for (final String name : chrIndices.keySet()) {
-                final LinearIndex.ChrIndex oldIdx = (LinearIndex.ChrIndex) chrIndices.get(name);
-                final LinearIndex.ChrIndex newIdx = oldIdx.optimize(threshold);
-                newIndices.add(newIdx);
-            }
-            return new LinearIndex(this, newIndices);
-        } else {
-            return this;
-        }
-    }
-
-    public Index optimize() {
-        return optimize(MAX_FEATURES_PER_BIN);
-    }
-
-    /**
-     * Code to convert linear index to a text table for analysis
-     * @param out Stream to which to write out table to
-     */
-    public void writeTable(final PrintStream out) {
-        out.printf("chr binWidth avg.feature.size nFeatures.total block.id start.pos size nFeatures%n");
-        for (final String name : chrIndices.keySet()) {
-            final LinearIndex.ChrIndex chrIdx = (LinearIndex.ChrIndex) chrIndices.get(name);
-            int blockCount = 0;
-            for (final Block b : chrIdx.getBlocks()) {
-                out.printf("%s %d %.2f %d %d %d %d %d%n", name, chrIdx.binWidth, chrIdx.getAverageFeatureSize(), chrIdx.getNFeatures(), blockCount,
-                        blockCount * chrIdx.binWidth, b.getSize(), (int) (b.getSize() / chrIdx.getAverageFeatureSize()));
-                blockCount++;
-            }
-        }
-    }
-
-    // purely for testing purposes
-    protected final void setTS(final long ts) {
-        this.indexedFileTS = ts;
-    }
-}
-
diff --git a/src/java/org/broad/tribble/index/linear/LinearIndexCreator.java b/src/java/org/broad/tribble/index/linear/LinearIndexCreator.java
deleted file mode 100644
index fb48ae4..0000000
--- a/src/java/org/broad/tribble/index/linear/LinearIndexCreator.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package org.broad.tribble.index.linear;
-
-import org.broad.tribble.Feature;
-import org.broad.tribble.index.Block;
-import org.broad.tribble.index.Index;
-import org.broad.tribble.index.TribbleIndexCreator;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.LinkedList;
-
-/**
- * For creating a LinearIndex from a stream of features.
- *
- * @author jrobinso
- */
-public class LinearIndexCreator  extends TribbleIndexCreator {
-    public static int DEFAULT_BIN_WIDTH = 8000;
-    // the set bin width
-    private int binWidth = DEFAULT_BIN_WIDTH;
-
-    // the input file
-    private final File inputFile;
-
-    private final LinkedList<LinearIndex.ChrIndex> chrList = new LinkedList<LinearIndex.ChrIndex>();
-    private int longestFeature= 0;
-
-    private final ArrayList<Block> blocks = new ArrayList<Block>();
-
-    public LinearIndexCreator(final File inputFile, final int binSize) {
-        this.inputFile = inputFile;
-        binWidth = binSize;
-    }
-
-    public LinearIndexCreator(final File inputFile) {
-        this(inputFile, DEFAULT_BIN_WIDTH);
-    }
-
-    /**
-     * add a feature to the index
-     * @param feature the feature, from which we use the contig, start, and stop
-     * @param filePosition the position of the file at the BEGINNING of the current feature
-     */
-    public void addFeature(final Feature feature, final long filePosition) {
-        // fi we don't have a chrIndex yet, or if the last one was for the previous contig, create a new one
-        if (chrList.size() == 0 || !chrList.getLast().getName().equals(feature.getChr())) {
-            // if we're creating a new chrIndex (not the first), make sure to dump the blocks to the old chrIndex
-            if (chrList.size() != 0)
-                for (int x = 0; x < blocks.size(); x++) {
-                    blocks.get(x).setEndPosition((x + 1 == blocks.size()) ? filePosition : blocks.get(x + 1).getStartPosition());
-                    chrList.getLast().addBlock(blocks.get(x));
-                }
-            chrList.add(new LinearIndex.ChrIndex(feature.getChr(),binWidth));
-            blocks.clear();
-
-            // Add the first block
-            blocks.add(new Block(filePosition, 0));
-            longestFeature = 0;
-        }
-
-        // if start > current bin location, make new bins until we're at the correct location
-        while (feature.getStart() > blocks.size() * binWidth) {
-            blocks.add(new Block(filePosition,0));
-        }
-        if ((feature.getEnd()- feature.getStart())+1 > longestFeature) {
-            longestFeature = (feature.getEnd()- feature.getStart())+1;
-            chrList.getLast().updateLongestFeature(longestFeature);
-        }
-        chrList.getLast().incrementFeatureCount();
-    }
-
-    /**
-     * finalize the index; producing an index object
-     * @param finalFilePosition the final file position, for indexes that have to close out with the final position
-     * @return an Index object
-     */
-    public Index finalizeIndex(final long finalFilePosition) {
-        if (finalFilePosition == 0)
-            throw new IllegalArgumentException("finalFilePosition != 0, -> " + finalFilePosition);
-
-        for (int x = 0; x < blocks.size(); x++) {
-            blocks.get(x).setEndPosition((x + 1 == blocks.size()) ? finalFilePosition : blocks.get(x+1).getStartPosition());
-            chrList.getLast().addBlock(blocks.get(x));
-        }
-        blocks.clear();
-
-        final LinearIndex index = new LinearIndex(chrList,inputFile);
-        index.addProperties(properties);
-        index.finalizeIndex();
-        return index.optimize();
-    }
-
-    /**
-     * the current default bin size
-     * @return
-     */
-    public int defaultBinSize() {
-        return DEFAULT_BIN_WIDTH;
-    }
-
-    public int getBinSize() { return binWidth; }
-}
-
diff --git a/src/java/org/broad/tribble/index/tabix/TabixFormat.java b/src/java/org/broad/tribble/index/tabix/TabixFormat.java
deleted file mode 100644
index 8f82229..0000000
--- a/src/java/org/broad/tribble/index/tabix/TabixFormat.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2014 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package org.broad.tribble.index.tabix;
-
-import org.broad.tribble.TribbleException;
-
-/**
- * The values in a Tabix header that define the format of the file being indexed, e.g. gff, bed, vcf
- */
-public class TabixFormat implements Cloneable {
-    public static final int ZERO_BASED    = 0x10000;
-    public static final int GENERIC_FLAGS = 0;
-    public static final int SAM_FLAGS     = 1;
-    public static final int VCF_FLAGS     = 2;
-    public static final int UCSC_FLAGS    = GENERIC_FLAGS | ZERO_BASED;
-
-    /** Predefined headers for known formats */
-    public static TabixFormat GFF = new TabixFormat(GENERIC_FLAGS, 1, 4, 5, '#', 0);
-    public static TabixFormat BED = new TabixFormat(UCSC_FLAGS, 1, 2, 3, '#', 0);
-    public static TabixFormat PSLTBL = new TabixFormat(UCSC_FLAGS, 15, 17, 18, '#', 0);
-    public static TabixFormat SAM = new TabixFormat(SAM_FLAGS, 3, 4, 0, '@', 0);
-    public static TabixFormat VCF = new TabixFormat(VCF_FLAGS, 1, 2, 0, '#', 0);
-
-    /** Describes interpretation of file being indexed.  See FLAGS constants above. */
-    public int flags;
-    /** One-based index of the column in the file being indexed containing the sequence name */
-    public int sequenceColumn;
-    /** One-based index of the column in the file being indexed containing the start position. */
-    public int startPositionColumn;
-    /**
-     * One-based index of the column in the file being indexed containing the end position. Zero implies
-     * there is no end position column.
-     */
-    public int endPositionColumn;
-    /** Lines in the file being indexed that start with this character are ignored. */
-    public char metaCharacter;
-    /** This is part of the index header, but does not appear to be used. */
-    public int numHeaderLinesToSkip;
-
-    public TabixFormat() {
-    }
-
-    public TabixFormat(final int flags, final int sequenceColumn, final int startPositionColumn, final int endPositionColumn, final char metaCharacter, final int numHeaderLinesToSkip) {
-        this.flags = flags;
-        this.sequenceColumn = sequenceColumn;
-        this.startPositionColumn = startPositionColumn;
-        this.endPositionColumn = endPositionColumn;
-        this.metaCharacter = metaCharacter;
-        this.numHeaderLinesToSkip = numHeaderLinesToSkip;
-    }
-
-    @Override
-    public TabixFormat clone() {
-        try {
-            return (TabixFormat)super.clone();
-        } catch (final CloneNotSupportedException e) {
-            throw new TribbleException("unpossible!");
-        }
-    }
-
-    @Override
-    public boolean equals(final Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-
-        final TabixFormat that = (TabixFormat) o;
-
-        if (endPositionColumn != that.endPositionColumn) return false;
-        if (flags != that.flags) return false;
-        if (metaCharacter != that.metaCharacter) return false;
-        if (numHeaderLinesToSkip != that.numHeaderLinesToSkip) return false;
-        if (sequenceColumn != that.sequenceColumn) return false;
-        if (startPositionColumn != that.startPositionColumn) return false;
-
-        return true;
-    }
-
-    @Override
-    public int hashCode() {
-        int result = flags;
-        result = 31 * result + sequenceColumn;
-        result = 31 * result + startPositionColumn;
-        result = 31 * result + endPositionColumn;
-        result = 31 * result + (int) metaCharacter;
-        result = 31 * result + numHeaderLinesToSkip;
-        return result;
-    }
-}
diff --git a/src/java/org/broad/tribble/index/tabix/TabixIndex.java b/src/java/org/broad/tribble/index/tabix/TabixIndex.java
deleted file mode 100644
index 44fd98a..0000000
--- a/src/java/org/broad/tribble/index/tabix/TabixIndex.java
+++ /dev/null
@@ -1,364 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2014 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package org.broad.tribble.index.tabix;
-
-import net.sf.samtools.Bin;
-import net.sf.samtools.BinningIndexContent;
-import net.sf.samtools.Chunk;
-import net.sf.samtools.LinearIndex;
-import net.sf.samtools.util.BlockCompressedInputStream;
-import net.sf.samtools.util.BlockCompressedOutputStream;
-import net.sf.samtools.util.CloserUtil;
-import net.sf.samtools.util.StringUtil;
-import org.broad.tribble.TribbleException;
-import org.broad.tribble.index.Block;
-import org.broad.tribble.index.Index;
-import org.broad.tribble.util.LittleEndianInputStream;
-import org.broad.tribble.util.LittleEndianOutputStream;
-import org.broad.tribble.util.TabixUtils;
-
-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.*;
-
-/**
- * This class represent a Tabix index that has been built in memory or read from a file.  It can be queried or
- * written to a file.
- */
-public class TabixIndex implements Index {
-    private static final byte[] MAGIC = {'T', 'B', 'I', 1};
-    public static final int MAGIC_NUMBER;
-    static {
-        final ByteBuffer bb = ByteBuffer.allocate(MAGIC.length);
-        bb.put(MAGIC);
-        bb.flip();
-        MAGIC_NUMBER = bb.order(ByteOrder.LITTLE_ENDIAN).getInt();
-    }
-
-    private final TabixFormat formatSpec;
-    private final List<String> sequenceNames;
-    private final BinningIndexContent[] indices;
-
-    /**
-     * @param formatSpec Information about how to interpret the file being indexed.  Unused by this class other than
-     *                   written to an output file.
-     * @param sequenceNames Sequences in the file being indexed, in the order they appear in the file.
-     * @param indices One for each element of sequenceNames
-     */
-    public TabixIndex(final TabixFormat formatSpec, final List<String> sequenceNames, final BinningIndexContent[] indices) {
-        if (sequenceNames.size() != indices.length) {
-            throw new IllegalArgumentException("sequenceNames.size() != indices.length");
-        }
-        this.formatSpec = formatSpec.clone();
-        this.sequenceNames = Collections.unmodifiableList(new ArrayList<String>(sequenceNames));
-        this.indices = indices;
-    }
-
-    /**
-     * @param inputStream This is expected to be buffered and be gzip-decompressing as appropriate.  Caller
-     *                    should close input stream after ctor returns.
-     */
-    public TabixIndex(final InputStream inputStream) throws IOException {
-        this(inputStream, false);
-    }
-
-    /**
-     * Convenient ctor that opens the file, wraps with with BGZF reader, and closes after reading index.
-     */
-    public TabixIndex(final File tabixFile) throws IOException {
-        this(new BlockCompressedInputStream(tabixFile), true);
-    }
-
-    private TabixIndex(final InputStream inputStream, final boolean closeInputStream) throws IOException {
-        final LittleEndianInputStream dis = new LittleEndianInputStream(inputStream);
-        if (dis.readInt() != MAGIC_NUMBER) {
-            throw new TribbleException(String.format("Unexpected magic number 0x%x", MAGIC_NUMBER));
-        }
-        final int numSequences = dis.readInt();
-        indices = new BinningIndexContent[numSequences];
-        formatSpec = new TabixFormat();
-        formatSpec.flags = dis.readInt();
-        formatSpec.sequenceColumn = dis.readInt();
-        formatSpec.startPositionColumn = dis.readInt();
-        formatSpec.endPositionColumn = dis.readInt();
-        formatSpec.metaCharacter = (char)dis.readInt();
-        formatSpec.numHeaderLinesToSkip = dis.readInt();
-        final int nameBlockSize = dis.readInt();
-        final byte[] nameBlock = new byte[nameBlockSize];
-        if (dis.read(nameBlock) != nameBlockSize) throw new EOFException("Premature end of file reading Tabix header");
-        final List<String> sequenceNames = new ArrayList<String>(numSequences);
-        int startPos = 0;
-        for (int i = 0; i < numSequences; ++i) {
-            int endPos = startPos;
-            while (nameBlock[endPos] != '\0') ++endPos;
-            sequenceNames.add(StringUtil.bytesToString(nameBlock, startPos, endPos - startPos));
-            startPos = endPos + 1;
-        }
-        if (startPos != nameBlockSize) {
-            throw new TribbleException("Tabix header format exception.  Sequence name block is longer than expected");
-        }
-        for (int i = 0; i < numSequences; ++i) {
-            indices[i] = loadSequence(i, dis);
-        }
-        if (closeInputStream) CloserUtil.close(dis);
-        this.sequenceNames = Collections.unmodifiableList(sequenceNames);
-    }
-
-    /**
-     *
-     * @param chr the chromosome
-     * @param start the start position, one-based, inclusive.
-     * @param end the end position, one-based, inclusive.
-     * @return List of regions of file that are candidates for the given query.
-     *
-     * TODO: This method has not yet been tested, since the primary task is index writing.
-     */
-    @Override
-    public List<Block> getBlocks(final String chr, final int start, final int end) {
-        final int sequenceIndex = sequenceNames.indexOf(chr);
-        if (sequenceIndex == -1 || indices[sequenceIndex] == null) {
-            return Collections.EMPTY_LIST;
-        }
-        final List<Chunk> chunks = indices[sequenceIndex].getChunksOverlapping(start, end);
-        final List<Block> ret = new ArrayList<Block>(chunks.size());
-        for (final Chunk chunk : chunks) {
-            ret.add(new Block(chunk.getChunkStart(), chunk.getChunkEnd() - chunk.getChunkStart()));
-        }
-        return ret;
-    }
-
-    @Override
-    public boolean isCurrentVersion() {
-        return true;
-    }
-
-    @Override
-    public List<String> getSequenceNames() {
-        return sequenceNames;
-    }
-
-    @Override
-    public boolean containsChromosome(final String chr) {
-        return sequenceNames.contains(chr);
-    }
-
-    /**
-     *
-     * No arbitrary properties in Tabix
-     */
-    @Override
-    public Map<String, String> getProperties() {
-        return null;
-    }
-
-    @Override
-    public boolean equalsIgnoreProperties(final Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-
-        final TabixIndex that = (TabixIndex) o;
-
-        if (!formatSpec.equals(that.formatSpec)) return false;
-        if (!Arrays.equals(indices, that.indices)) return false;
-        return sequenceNames.equals(that.sequenceNames);
-
-    }
-
-    public TabixFormat getFormatSpec() {
-        return formatSpec;
-    }
-
-    /**
-     * Writes the index with BGZF.
-     * @param tabixFile Where to write the index.
-     */
-    public void write(final File tabixFile) {
-        final LittleEndianOutputStream los = new LittleEndianOutputStream(new BlockCompressedOutputStream(tabixFile));
-        try {
-            write(los);
-            los.close();
-        } catch (final IOException e) {
-            throw new TribbleException("Exception writing " + tabixFile.getAbsolutePath(), e);
-        }
-    }
-
-    /**
-     * Writes to a file with appropriate name and directory based on feature file.
-     * @param featureFile File being indexed.
-     */
-    @Override
-    public void writeBasedOnFeatureFile(final File featureFile) throws IOException {
-        if (!featureFile.isFile()) return;
-        write(new File(featureFile.getAbsolutePath() + TabixUtils.STANDARD_INDEX_EXTENSION));
-    }
-
-    /**
-     *
-     * @param los It is assumes that caller has done appropriate buffering and BlockCompressedOutputStream wrapping.
-     *            Caller should close output stream after invoking this method.
-     * @throws IOException
-     */
-    @Override
-    public void write(final LittleEndianOutputStream los) throws IOException {
-        los.writeInt(MAGIC_NUMBER);
-        los.writeInt(sequenceNames.size());
-        los.writeInt(formatSpec.flags);
-        los.writeInt(formatSpec.sequenceColumn);
-        los.writeInt(formatSpec.startPositionColumn);
-        los.writeInt(formatSpec.endPositionColumn);
-        los.writeInt(formatSpec.metaCharacter);
-        los.writeInt(formatSpec.numHeaderLinesToSkip);
-        int nameBlockSize = sequenceNames.size(); // null terminators
-        for (final String sequenceName : sequenceNames) nameBlockSize += sequenceName.length();
-        los.writeInt(nameBlockSize);
-        for (final String sequenceName : sequenceNames) {
-            los.write(StringUtil.stringToBytes(sequenceName));
-            los.write(0);
-        }
-        for (final BinningIndexContent index : indices) {
-            writeSequence(index, los);
-        }
-    }
-
-    private void writeSequence(final BinningIndexContent indexContent, final LittleEndianOutputStream los) throws IOException {
-        if (indexContent == null) {
-            los.writeInt(0);
-        } else {
-            final BinningIndexContent.BinList binList = indexContent.getBins();
-            los.writeInt(binList.numberOfNonNullBins);
-            for (final Bin bin : binList) {
-                writeBin(bin, los);
-            }
-            writeLinearIndex(indexContent.getLinearIndex(), los);
-        }
-    }
-
-    private void writeLinearIndex(final LinearIndex linearIndex, final LittleEndianOutputStream los) throws IOException {
-        if (linearIndex.getIndexStart() != 0) {
-            // This could be handled by writing zeroes, but it is not expected so just fail.
-            throw new IllegalArgumentException("Non-zero linear index start");
-        }
-        final long[] entries = linearIndex.getIndexEntries();
-        los.writeInt(entries.length);
-        for (final long entry : entries) los.writeLong(entry);
-    }
-
-    private void writeBin(final Bin bin, final LittleEndianOutputStream los) throws IOException {
-        los.writeInt(bin.getBinNumber());
-        final List<Chunk> chunkList = bin.getChunkList();
-        los.writeInt(chunkList.size());
-        for (final Chunk chunk: chunkList) {
-            los.writeLong(chunk.getChunkStart());
-            los.writeLong(chunk.getChunkEnd());
-        }
-    }
-
-    /**
-     * Although this is probably identical to BAM index reading code, code does not exist there to load directly
-     * into a BinningIndexContent object, so that is implemented here.
-     * @param referenceSequenceIndex Merely for setting in the returned object, not for seeking into the file.
-     * @param dis This method assumes that the current position is at the start of the reference.
-     */
-    private BinningIndexContent loadSequence(final int referenceSequenceIndex, final LittleEndianInputStream dis) throws IOException {
-        final int numBins = dis.readInt();
-        if (numBins == 0) return null;
-        int nonNullBins = 0;
-        final ArrayList<Bin> bins = new ArrayList<Bin>();
-        for (int i = 0; i < numBins; ++i) {
-            final Bin bin = loadBin(referenceSequenceIndex, dis);
-            if (bin != null) {
-                // File is not sparse, but array being produced is sparse, so grow array with nulls as appropriate
-                // so that bin number == index into array.
-                ++nonNullBins;
-                if (bins.size() > bin.getBinNumber()) {
-                    if (bins.get(bin.getBinNumber()) != null) {
-                        throw new TribbleException("Bin " + bin.getBinNumber() + " appears more than once in file");
-                    }
-                    bins.set(bin.getBinNumber(),bin);
-                } else {
-                    // Grow bins array as needed.
-                    bins.ensureCapacity(bin.getBinNumber() + 1);
-                    while (bins.size() < bin.getBinNumber()) bins.add(null);
-                    bins.add(bin);
-                }
-            }
-        }
-        final LinearIndex linearIndex = loadLinearIndex(referenceSequenceIndex, dis);
-        return new BinningIndexContent(referenceSequenceIndex,
-                new BinningIndexContent.BinList(bins.toArray(new Bin[bins.size()]), nonNullBins), linearIndex);
-    }
-
-    private LinearIndex loadLinearIndex(final int referenceSequenceIndex, final LittleEndianInputStream dis) throws IOException {
-        final int numElements = dis.readInt();
-        final long[] elements = new long[numElements];
-        for (int i = 0; i < numElements; ++i) {
-            elements[i] = dis.readLong();
-        }
-        return new LinearIndex(referenceSequenceIndex, 0, elements);
-    }
-
-    private Bin loadBin(final int referenceSequenceIndex, final LittleEndianInputStream dis) throws IOException {
-        final int binNumber = dis.readInt();
-        final Bin ret = new Bin(referenceSequenceIndex, binNumber);
-        final int numChunks = dis.readInt();
-        final List<Chunk> chunkList = new ArrayList<Chunk>(numChunks);
-        for (int i = 0; i < numChunks; ++i) {
-            chunkList.add(loadChunk(dis));
-        }
-        ret.setChunkList(chunkList);
-        return ret;
-    }
-
-    private Chunk loadChunk(final LittleEndianInputStream dis) throws IOException {
-        final long start = dis.readLong();
-        final long end = dis.readLong();
-        return new Chunk(start, end);
-    }
-
-    @Override
-    public boolean equals(final Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-
-        final TabixIndex index = (TabixIndex) o;
-
-        if (!formatSpec.equals(index.formatSpec)) return false;
-        if (!Arrays.equals(indices, index.indices)) return false;
-        if (!sequenceNames.equals(index.sequenceNames)) return false;
-
-        return true;
-    }
-
-    @Override
-    public int hashCode() {
-        int result = formatSpec.hashCode();
-        result = 31 * result + sequenceNames.hashCode();
-        result = 31 * result + Arrays.hashCode(indices);
-        return result;
-    }
-}
diff --git a/src/java/org/broad/tribble/index/tabix/TabixIndexCreator.java b/src/java/org/broad/tribble/index/tabix/TabixIndexCreator.java
deleted file mode 100644
index 7fdb438..0000000
--- a/src/java/org/broad/tribble/index/tabix/TabixIndexCreator.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2014 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package org.broad.tribble.index.tabix;
-
-import net.sf.samtools.*;
-import org.broad.tribble.Feature;
-import org.broad.tribble.index.Index;
-import org.broad.tribble.index.IndexCreator;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-/**
- * IndexCreator for Tabix.
- * Features are expected to be 1-based, inclusive.
- */
-public class TabixIndexCreator implements IndexCreator {
-    private final TabixFormat formatSpec;
-    private final List<BinningIndexContent> indexContents = new ArrayList<BinningIndexContent>();
-    private final List<String> sequenceNames = new ArrayList<String>();
-    // Merely a faster way to ensure that features are added in a specific sequence name order
-    private final Set<String> sequenceNamesSeen = new HashSet<String>();
-    // A sequence dictionary is not required, but if it is provided all sequences names must be present in it.
-    // It is used to determine the length of a sequence in order to optimize index memory allocation.
-    private final SAMSequenceDictionary sequenceDictionary;
-
-    private String currentSequenceName = null;
-    private BinningIndexBuilder indexBuilder = null;
-    // A feature can't be added to the index until the next feature is added because the next feature
-    // defines the location of the end of the previous feature in the output file.
-    private TabixFeature previousFeature = null;
-
-
-    /**
-     * @param sequenceDictionary is not required, but if present all features added must refer to sequences in the
-     *                           dictionary.  It is used to optimize the memory needed to build the index.
-     */
-    public TabixIndexCreator(final SAMSequenceDictionary sequenceDictionary,
-                             final TabixFormat formatSpec) {
-        this.sequenceDictionary = sequenceDictionary;
-        this.formatSpec = formatSpec.clone();
-    }
-
-    public TabixIndexCreator(final TabixFormat formatSpec) {
-        this(null, formatSpec);
-    }
-
-    @Override
-    public void addFeature(final Feature feature, final long filePosition) {
-        final String sequenceName = feature.getChr();
-        final int referenceIndex;
-        if (sequenceName.equals(currentSequenceName)) {
-            referenceIndex = sequenceNames.size() - 1;
-        } else {
-            referenceIndex = sequenceNames.size();
-            if (currentSequenceName != null && sequenceNamesSeen.contains(sequenceName)) {
-                throw new IllegalArgumentException("Sequence " + feature + " added out sequence of order");
-            }
-        }
-        final TabixFeature thisFeature = new TabixFeature(referenceIndex, feature.getStart(), feature.getEnd(), filePosition);
-        if (previousFeature != null) {
-            if (previousFeature.compareTo(thisFeature) > 0) {
-                throw new IllegalArgumentException(String.format("Features added out of order: previous (%s) > next (%s)",
-                        previousFeature, thisFeature));
-            }
-            finalizeFeature(filePosition);
-        }
-        previousFeature = thisFeature;
-        if (referenceIndex == sequenceNames.size()) {
-            advanceToReference(sequenceName);
-        }
-    }
-
-    private void finalizeFeature(final long featureEndPosition) {
-        previousFeature.featureEndFilePosition = featureEndPosition;
-        if (previousFeature.featureStartFilePosition >= previousFeature.featureEndFilePosition) {
-            throw new IllegalArgumentException(String.format("Feature start position %d >= feature end position %d",
-                    previousFeature.featureStartFilePosition, previousFeature.featureEndFilePosition));
-        }
-        indexBuilder.processFeature(previousFeature);
-    }
-
-    private void advanceToReference(final String sequenceName) {
-        if (indexBuilder != null) {
-            indexContents.add(indexBuilder.generateIndexContent());
-        }
-        // If sequence dictionary is provided, BinningIndexBuilder can reduce size of array it allocates.
-        final int sequenceLength;
-        if (sequenceDictionary != null) {
-            sequenceLength = sequenceDictionary.getSequence(sequenceName).getSequenceLength();
-        } else {
-            sequenceLength = 0;
-        }
-        indexBuilder = new BinningIndexBuilder(sequenceNames.size(), sequenceLength);
-        sequenceNames.add(sequenceName);
-        currentSequenceName = sequenceName;
-        sequenceNamesSeen.add(sequenceName);
-    }
-
-    @Override
-    public Index finalizeIndex(final long finalFilePosition) {
-        if (previousFeature != null) {
-            finalizeFeature(finalFilePosition);
-        }
-        if (indexBuilder != null) {
-            indexContents.add(indexBuilder.generateIndexContent());
-        }
-        // Make this as big as the sequence dictionary, even if there is not content for every sequence,
-        // but truncate the sequence dictionary before its end if there are sequences in the sequence dictionary without
-        // any features.
-        final BinningIndexContent[] indices = indexContents.toArray(new BinningIndexContent[sequenceNames.size()]);
-        return new TabixIndex(formatSpec, sequenceNames, indices);
-    }
-
-
-    private static class TabixFeature implements BinningIndexBuilder.FeatureToBeIndexed, Comparable<TabixFeature> {
-        private final int referenceIndex;
-        private final int start;
-        private final int end;
-        private final long featureStartFilePosition;
-        // Position after this feature in the file.
-        private long featureEndFilePosition = -1;
-
-        private TabixFeature(final int referenceIndex, final int start, final int end, final long featureStartFilePosition) {
-            this.referenceIndex = referenceIndex;
-            this.start = start;
-            this.end = end;
-            this.featureStartFilePosition = featureStartFilePosition;
-        }
-
-        @Override
-        public int getStart() {
-            return start;
-        }
-
-        @Override
-        public int getEnd() {
-            return end;
-        }
-
-        /**
-         *
-         * @return null -- Let index builder compute this.
-         */
-        @Override
-        public Integer getIndexingBin() {
-            return null;
-        }
-
-        @Override
-        public Chunk getChunk() {
-            if (featureEndFilePosition == -1) {
-                throw new IllegalStateException("End position is not set");
-            }
-            return new Chunk(featureStartFilePosition, featureEndFilePosition);
-        }
-
-        @Override
-        public int compareTo(final TabixFeature other) {
-            final int ret = this.referenceIndex - other.referenceIndex;
-            if (ret != 0) return ret;
-            return this.start - other.start;
-        }
-
-        @Override
-        public String toString() {
-            return "TabixFeature{" +
-                    "referenceIndex=" + referenceIndex +
-                    ", start=" + start +
-                    ", end=" + end +
-                    ", featureStartFilePosition=" + featureStartFilePosition +
-                    ", featureEndFilePosition=" + featureEndFilePosition +
-                    '}';
-        }
-    }
-}
diff --git a/src/java/org/broad/tribble/readers/AsciiLineReader.java b/src/java/org/broad/tribble/readers/AsciiLineReader.java
deleted file mode 100644
index 0ef2c3d..0000000
--- a/src/java/org/broad/tribble/readers/AsciiLineReader.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * Copyright (c) 2007-2009 by The Broad Institute, Inc. and the Massachusetts Institute of Technology.
- * All Rights Reserved.
- *
- * This software is licensed under the terms of the GNU Lesser General Public License (LGPL), Version 2.1 which
- * is available at http://www.opensource.org/licenses/lgpl-2.1.php.
- *
- * THE SOFTWARE IS PROVIDED "AS IS." THE BROAD AND MIT MAKE NO REPRESENTATIONS OR WARRANTIES OF
- * ANY KIND CONCERNING THE SOFTWARE, EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES
- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT
- * OR OTHER DEFECTS, WHETHER OR NOT DISCOVERABLE.  IN NO EVENT SHALL THE BROAD OR MIT, OR THEIR
- * RESPECTIVE TRUSTEES, DIRECTORS, OFFICERS, EMPLOYEES, AND AFFILIATES BE LIABLE FOR ANY DAMAGES OF
- * ANY KIND, INCLUDING, WITHOUT LIMITATION, INCIDENTAL OR CONSEQUENTIAL DAMAGES, ECONOMIC
- * DAMAGES OR INJURY TO PROPERTY AND LOST PROFITS, REGARDLESS OF WHETHER THE BROAD OR MIT SHALL
- * BE ADVISED, SHALL HAVE OTHER REASON TO KNOW, OR IN FACT SHALL KNOW OF THE POSSIBILITY OF THE
- * FOREGOING.
- */
-package org.broad.tribble.readers;
-
-import net.sf.samtools.util.LocationAware;
-import org.broad.tribble.TribbleException;
-
-import java.io.*;
-
-/**
- * A simple class that provides {@link #readLine()} functionality around a PositionalBufferedStream
- *
- * {@link BufferedReader} and its {@link java.io.BufferedReader#readLine()} method should be used in preference to this class (when the
- * {@link net.sf.samtools.util.LocationAware} functionality is not required) because it offers greater performance.
- * 
- * @author jrobinso
- */
-public class AsciiLineReader implements LineReader, LocationAware {
-    private static final int BUFFER_OVERFLOW_INCREASE_FACTOR = 2;
-    private static final byte LINEFEED = (byte) ('\n' & 0xff);
-    private static final byte CARRIAGE_RETURN = (byte) ('\r' & 0xff);
-
-    PositionalBufferedStream is;
-    char[] lineBuffer;
-
-    public AsciiLineReader(final InputStream is){
-        this(new PositionalBufferedStream(is));
-    }
-
-    public AsciiLineReader(final PositionalBufferedStream is) {
-        this.is = is;
-        // Allocate this only once, even though it is essentially a local variable of
-        // readLine.  This makes a huge difference in performance
-        lineBuffer = new char[10000];
-    }
-
-    /**
-     * @return The position of the InputStream
-     */
-    public long getPosition(){
-        if(is == null){
-            throw new TribbleException("getPosition() called but no default stream was provided to the class on creation");
-        }
-        return is.getPosition();
-    }
-
-    /**
-     * Read a line of text.  A line is considered to be terminated by any one
-     * of a line feed ('\n'), a carriage return ('\r'), or a carriage return
-     * followed immediately by a linefeed.
-     *
-     * @param stream the stream to read the next line from
-     * @return A String containing the contents of the line or null if the
-     *         end of the stream has been reached
-     */
-    public final String readLine(final PositionalBufferedStream stream) throws IOException{
-        int linePosition = 0;
-
-        while (true) {
-            final int b = stream.read();
-
-            if (b == -1) {
-                // eof reached.  Return the last line, or null if this is a new line
-                if (linePosition > 0) {
-                    return new String(lineBuffer, 0, linePosition);
-                } else {
-                    return null;
-                }
-            }
-
-            final char c = (char) (b & 0xFF);
-            if (c == LINEFEED || c == CARRIAGE_RETURN) {
-                if (c == CARRIAGE_RETURN && stream.peek() == LINEFEED) {
-                    stream.read(); // <= skip the trailing \n in case of \r\n termination
-                }
-
-                return new String(lineBuffer, 0, linePosition);
-            } else {
-                // Expand line buffer size if neccessary.  Reserve at least 2 characters
-                // for potential line-terminators in return string
-
-                if (linePosition > (lineBuffer.length - 3)) {
-                    final char[] temp = new char[BUFFER_OVERFLOW_INCREASE_FACTOR * lineBuffer.length];
-                    System.arraycopy(lineBuffer, 0, temp, 0, lineBuffer.length);
-                    lineBuffer = temp;
-                }
-
-                lineBuffer[linePosition++] = c;
-            }
-        }
-    }
-
-    /**
-     * Same as {@link #readLine(PositionalBufferedStream)} but uses the stream provided in the constructor
-     *
-     * @return
-     */
-    public final String readLine() throws IOException{
-        if ( is == null ){
-            throw new TribbleException("readLine() called without an explicit stream argument but no default stream was provided to the class on creation");
-        }
-        return readLine(is);
-    }
-
-    @Override
-    public void close() {
-        if ( is != null ) is.close();
-        lineBuffer = null;
-    }
-
-    public static void main(final String[] args) throws Exception {
-        final File testFile = new File(args[0]);
-        final int iterations = Integer.valueOf(args[1]);
-        final boolean includeBufferedReader = Boolean.valueOf(args[2]);
-        long t0, lineCount, dt;
-        double rate;
-
-        System.out.printf("Testing %s%n", args[0]);
-        for (int i = 0; i < iterations; i++) {
-            if ( includeBufferedReader ) {
-                final BufferedReader reader2 = new BufferedReader(new FileReader(testFile));
-                t0 = System.currentTimeMillis();
-                lineCount = 0;
-                while (reader2.readLine() != null) {
-                    lineCount++;
-                }
-                dt = System.currentTimeMillis() - t0;
-                rate = ((double) lineCount) / dt;
-                printStatus("BufferedReader", lineCount, rate, dt);
-                reader2.close();
-            }
-
-            if ( includeBufferedReader ) {
-                final LongLineBufferedReader longLineBufferedReader = new LongLineBufferedReader(new BufferedReader(new FileReader(testFile)));
-                t0 = System.currentTimeMillis();
-                lineCount = 0;
-                while (longLineBufferedReader.readLine() != null) {
-                    lineCount++;
-                }
-                dt = System.currentTimeMillis() - t0;
-                rate = ((double) lineCount) / dt;
-                printStatus("BufferedReader", lineCount, rate, dt);
-                longLineBufferedReader.close();
-            }
-            
-            final PositionalBufferedStream pbs = new PositionalBufferedStream(new FileInputStream(testFile));
-            final LineReader reader = new AsciiLineReader(pbs);
-            t0 = System.currentTimeMillis();
-            lineCount = 0;
-            while (reader.readLine() != null) {
-                lineCount++;
-            }
-            dt = System.currentTimeMillis() - t0;
-            rate = ((double) lineCount) / dt;
-            printStatus("PositionalBufferedStream", lineCount, rate, dt);
-            pbs.close();
-        }
-    }
-
-    private static final void printStatus(final String name, final long lineCount, final double rate, final long dt) {
-        System.out.printf("%30s: %d lines read.  Rate = %.2e lines per second.  DT = %d%n", name, lineCount, rate, dt);
-        System.out.flush();
-    }
-}
-
diff --git a/src/java/org/broad/tribble/readers/AsciiLineReaderIterator.java b/src/java/org/broad/tribble/readers/AsciiLineReaderIterator.java
deleted file mode 100644
index 6ffcef7..0000000
--- a/src/java/org/broad/tribble/readers/AsciiLineReaderIterator.java
+++ /dev/null
@@ -1,100 +0,0 @@
-package org.broad.tribble.readers;
-
-import net.sf.samtools.util.AbstractIterator;
-import net.sf.samtools.util.CloserUtil;
-import net.sf.samtools.util.LocationAware;
-import net.sf.samtools.util.Tuple;
-
-import java.io.Closeable;
-import java.io.IOException;
-
-/**
- * A class that iterates over the lines and line positions in an {@link AsciiLineReader}.
- * 
- * This class is slower than other {@link LineIterator}s because it is driven by {@link AsciiLineReader}, but offers the benefit of 
- * implementing {@link net.sf.samtools.util.LocationAware}, which is required for indexing.  If you do not require {@link net.sf.samtools.util.LocationAware}, consider using
- * {@link LineIteratorImpl} as an alternative to this class.
- * 
- * Note an important distinction in the way this class and its inner iterator differ: in the inner iterator, the position stored with
- * a line is the position at the start of that line.  However, {@link #getPosition()} of the outer class must return the position at the
- * end of the most-recently-returned line (or the start of the underlying {@link AsciiLineReader}, if no line has been read).  The latter
- * bit of logic here is required to conform with the interface described by {@link net.sf.samtools.util.LocationAware#getPosition()}.
- * 
- * @author mccowan
- */
-public class AsciiLineReaderIterator implements LocationAware, LineIterator, Closeable {
-    private final AsciiLineReader asciiLineReader;
-    private final TupleIterator i;
-    private Tuple<String, Long> current = null;
-
-    public AsciiLineReaderIterator(final AsciiLineReader asciiLineReader) {
-        this.asciiLineReader = asciiLineReader;
-        this.i = new TupleIterator();
-    }
-
-    @Override
-    public void close() throws IOException {
-        CloserUtil.close(asciiLineReader);
-    }
-
-    @Override
-    public boolean hasNext() {
-        return i.hasNext();
-    }
-
-    @Override
-    public String next() {
-        current = i.next();
-        return current.a;
-    }
-
-    @Override
-    public void remove() {
-        i.remove();
-    }
-
-    /**
-     * Returns the byte position at the end of the most-recently-read line (a.k.a., the beginning of the next line) from {@link #next()} in
-     * the underlying {@link AsciiLineReader}.
-     */
-    @Override
-    public long getPosition() {
-        return i.getPosition();
-    }
-
-    @Override
-    public String peek() {
-        return i.peek().a;
-    }
-
-    /**
-     * This is stored internally since it iterates over {@link net.sf.samtools.util.Tuple}, not {@link String} (and the outer 
-     * class can't do both).
-     */
-    private class TupleIterator extends AbstractIterator<Tuple<String, Long>> implements LocationAware {
-        
-        public TupleIterator() {
-            hasNext(); // Initialize the iterator, which appears to be a requirement of the parent class.  TODO: Really?
-        }
-        
-        @Override
-        protected Tuple<String, Long> advance() {
-            final String line;
-            final long position = asciiLineReader.getPosition(); // A line's position is where it starts, so get it before reading the line.
-            try {
-                line = asciiLineReader.readLine();
-            } catch (IOException e) {
-                throw new RuntimeException(e);
-            }
-            return line == null ? null : new Tuple<String, Long>(line, position);
-        }
-
-        /** Returns the byte position at the beginning of the next line. */
-        @Override
-        public long getPosition() {
-            final Tuple<String, Long> peek = peek();
-            // Be careful: peek will be null at the end of the stream.
-            return peek != null ? peek.b : asciiLineReader.getPosition();
-        }
-    }
-}
diff --git a/src/java/org/broad/tribble/readers/AsynchronousLineReader.java b/src/java/org/broad/tribble/readers/AsynchronousLineReader.java
deleted file mode 100644
index 166e079..0000000
--- a/src/java/org/broad/tribble/readers/AsynchronousLineReader.java
+++ /dev/null
@@ -1,98 +0,0 @@
-package org.broad.tribble.readers;
-
-import net.sf.samtools.util.CloserUtil;
-import org.broad.tribble.TribbleException;
-
-import java.io.Reader;
-import java.util.concurrent.BlockingQueue;
-import java.util.concurrent.LinkedBlockingQueue;
-import java.util.concurrent.TimeUnit;
-
-/**
- * A LineReader implementation that delegates the work of reading and fetching lines to another thread.  The thread terminates when it
- * encounters EOF in the underlying reader, or when this LineReader is closed.
- *
- * @author mccowan
- */
-public class AsynchronousLineReader implements LineReader {
-    public static final int DEFAULT_NUMBER_LINES_BUFFER = 100;
-    
-    private final LongLineBufferedReader bufferedReader;
-    private final BlockingQueue<String> lineQueue;
-    private final Thread worker;
-    private volatile Throwable workerException = null;
-    private volatile boolean eofReached = false;
-
-    public AsynchronousLineReader(final Reader reader, final int lineReadAheadSize) {
-        bufferedReader = new LongLineBufferedReader(reader);
-        lineQueue = new LinkedBlockingQueue<String>(lineReadAheadSize);
-        worker = new Thread(new Worker());
-        worker.setDaemon(true);
-        worker.start();
-    }
-
-    public AsynchronousLineReader(final Reader reader) {
-        this(reader, DEFAULT_NUMBER_LINES_BUFFER);
-    }
-
-    @Override
-    public String readLine() {
-        try {
-            // Continually poll until we get a result, unless the underlying reader is finished.
-            for (; ; ) {
-                checkAndThrowIfWorkerException();
-                final String pollResult = this.lineQueue.poll(100, TimeUnit.MILLISECONDS); // Not ideal for small files.
-                if (pollResult == null) {
-                    if (eofReached) {
-                        checkAndThrowIfWorkerException();
-                        return lineQueue.poll(); // If there is nothing left, returns null as expected.  Otherwise, grabs next element.
-                    }
-                } else {
-                    return pollResult;
-                }
-            }
-        } catch (final InterruptedException e) {
-            throw new TribbleException("Line polling interrupted.", e);
-        }
-    }
-
-    private void checkAndThrowIfWorkerException() {
-        if (workerException != null) {
-            throw new TribbleException("Exception encountered in worker thread.", workerException);
-        }
-    }
-
-    @Override
-    public void close() {
-        this.worker.interrupt(); // Allow the worker to close gracefully.
-    } 
-
-    private class Worker implements Runnable {
-        @Override
-        public void run() {
-            try {
-                for (; ; ) {
-                    final String line = bufferedReader.readLine();
-                    if (line == null) {
-                        eofReached = true;
-                        break;
-                    } else {
-                        try {
-                            lineQueue.put(line);
-                        } catch (final InterruptedException e) {
-                            /**
-                             * A thread interruption is not an exceptional state: it means a {@link AsynchronousLineReader#close();} has 
-                             * been called, so shut down gracefully.
-                             */
-                            break;
-                        }
-                    }
-                }
-            } catch (final Throwable e) {
-                AsynchronousLineReader.this.workerException = e;
-            } finally {
-                CloserUtil.close(AsynchronousLineReader.this.bufferedReader);
-            }
-        }
-    }
-}
diff --git a/src/java/org/broad/tribble/readers/LineIterator.java b/src/java/org/broad/tribble/readers/LineIterator.java
deleted file mode 100644
index bd8e3f0..0000000
--- a/src/java/org/broad/tribble/readers/LineIterator.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package org.broad.tribble.readers;
-
-import java.util.Iterator;
-
-/**
- * A very simple descriptor for line-iterables.
- * @author mccowan
- */
-public interface LineIterator extends Iterator<String> {
-    /** Peeks at the next line, without expending any elements in the underlying iterator. */
-    public String peek();
-}
diff --git a/src/java/org/broad/tribble/readers/LineIteratorImpl.java b/src/java/org/broad/tribble/readers/LineIteratorImpl.java
deleted file mode 100644
index 4084e46..0000000
--- a/src/java/org/broad/tribble/readers/LineIteratorImpl.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package org.broad.tribble.readers;
-
-import net.sf.samtools.util.AbstractIterator;
-import net.sf.samtools.util.CloserUtil;
-
-import java.io.Closeable;
-import java.io.IOException;
-
-/** A simple iterator over the elements in LineReader. */
-public class LineIteratorImpl extends AbstractIterator<String> implements LineIterator, Closeable {
-    private final LineReader lineReader;
-
-    /**
-     * @param lineReader The line reader whose elements are to be iterated over.
-     */
-    public LineIteratorImpl(final LineReader lineReader) {
-        this.lineReader = lineReader;
-    }
-
-    @Override
-    protected String advance() {
-        try {
-            return lineReader.readLine();
-        } catch (IOException e) {
-            throw new RuntimeException(e);
-        }
-    }
-
-    @Override
-    public void close() throws IOException {
-        CloserUtil.close(lineReader);
-    }
-}
diff --git a/src/java/org/broad/tribble/readers/LineReader.java b/src/java/org/broad/tribble/readers/LineReader.java
deleted file mode 100644
index 08345d8..0000000
--- a/src/java/org/broad/tribble/readers/LineReader.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package org.broad.tribble.readers;
-
-import java.io.IOException;
-
-/**
- * Interface for line-oriented readers.
- */
-public interface LineReader {
-
-    /**
-     * @return The next "line" from the source. Typically a line is a set of characters
-     * terminated by '\n', '\r', or '\r\n'. The line-terminator is not included
-     * @throws IOException
-     */
-    public String readLine() throws IOException;
-
-
-    public void close();
-}
diff --git a/src/java/org/broad/tribble/readers/LineReaderUtil.java b/src/java/org/broad/tribble/readers/LineReaderUtil.java
deleted file mode 100644
index bac947a..0000000
--- a/src/java/org/broad/tribble/readers/LineReaderUtil.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package org.broad.tribble.readers;
-
-import net.sf.samtools.Defaults;
-import net.sf.samtools.util.CloserUtil;
-import org.broad.tribble.TribbleException;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-
-/**
- * A collection of factories for generating {@link LineReader}s.
- * 
- * @author mccowan
- */
-public class LineReaderUtil {
-    public enum LineReaderOption {
-        ASYNCHRONOUS, SYNCHRONOUS
-    }
-
-    /**
-     * Like {@link #fromBufferedStream(java.io.InputStream, org.broad.tribble.readers.LineReaderUtil.LineReaderOption)}, but the synchronicity
-     * option is determined by {@link net.sf.samtools.Defaults}: if asynchronous I/O is enabled, an asynchronous line reader will be
-     * returned.
-     */
-    public static LineReader fromBufferedStream(final InputStream stream) {
-        return fromBufferedStream(stream, Defaults.USE_ASYNC_IO ? LineReaderOption.ASYNCHRONOUS : LineReaderOption.SYNCHRONOUS);
-    }
-
-    /**
-     * Convenience factory for composing a LineReader from an InputStream.
-     */
-    public static LineReader fromBufferedStream(final InputStream bufferedStream, final LineReaderOption option) {
-        final InputStreamReader bufferedInputStreamReader = new InputStreamReader(bufferedStream);
-        switch (option) {
-            case ASYNCHRONOUS:
-                return new AsynchronousLineReader(bufferedInputStreamReader);
-            case SYNCHRONOUS:
-                return new LineReader() {
-                    final LongLineBufferedReader reader = new LongLineBufferedReader(bufferedInputStreamReader);
-
-                    @Override
-                    public String readLine() {
-                        try {
-                            return reader.readLine();
-                        } catch (IOException e) {
-                            throw new RuntimeException(e);
-                        }
-                    }
-
-                    @Override
-                    public void close() {
-                        CloserUtil.close(reader);
-                    }
-                };
-            default:
-                throw new TribbleException(String.format("Unrecognized LineReaderUtil option: %s.", option));
-        }
-    }
-
-}
diff --git a/src/java/org/broad/tribble/readers/LongLineBufferedReader.java b/src/java/org/broad/tribble/readers/LongLineBufferedReader.java
deleted file mode 100644
index aced12f..0000000
--- a/src/java/org/broad/tribble/readers/LongLineBufferedReader.java
+++ /dev/null
@@ -1,490 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package org.broad.tribble.readers;
-
-
-import java.io.IOException;
-import java.io.Reader;
-
-/**
- * A variant of {@link java.io.BufferedReader} with improved performance reading files with long lines.
- * 
- * This class is almost identical to BufferedReader, but it retains a single line buffer for accumulating characters in a line, and allows
- * its size to grow. Conversely, {@link java.io.BufferedReader} assumes each new line will be approximately 80 characters and its
- * performance suffers when that is not the case.
- * 
- * Unlike {@link java.io.BufferedReader}, this class is not thread safe.
- *
- * @author mccowan
- */
-public class LongLineBufferedReader extends Reader {
-
-    private Reader in;
-
-    private char cb[];
-    private int nChars, nextChar;
-
-    private static final int INVALIDATED = -2;
-    private static final int UNMARKED = -1;
-    private int markedChar = UNMARKED;
-    private int readAheadLimit = 0; /* Valid only when markedChar > 0 */
-
-    /**
-     * If the next character is a line feed, skip it
-     */
-    private boolean skipLF = false;
-
-    /**
-     * The skipLF flag when the mark was set
-     */
-    private boolean markedSkipLF = false;
-
-    private static final int DEFAULT_CHAR_BUFFER_SIZE = 8192;
-    private static final int DEFAULT_EXPECTED_LINE_LENGTH = 80;
-
-    private StringBuilder lineBuffer = new StringBuilder(DEFAULT_EXPECTED_LINE_LENGTH);
-
-    /**
-     * Creates a buffering character-input stream that uses an input buffer of
-     * the specified size.
-     *
-     * @param in A Reader
-     * @param sz Input-buffer size
-     * @throws IllegalArgumentException If sz is <= 0
-     */
-    public LongLineBufferedReader(Reader in, int sz) {
-        super(in);
-        if (sz <= 0)
-            throw new IllegalArgumentException("Buffer size <= 0");
-        this.in = in;
-        cb = new char[sz];
-        nextChar = nChars = 0;
-    }
-
-    /**
-     * Creates a buffering character-input stream that uses a default-sized
-     * input buffer.
-     *
-     * @param in A Reader
-     */
-    public LongLineBufferedReader(Reader in) {
-        this(in, DEFAULT_CHAR_BUFFER_SIZE);
-    }
-
-    /**
-     * Checks to make sure that the stream has not been closed
-     */
-    private void ensureOpen() throws IOException {
-        if (in == null)
-            throw new IOException("Stream closed");
-    }
-
-    /**
-     * Fills the input buffer, taking the mark into account if it is valid.
-     */
-    private void fill() throws IOException {
-        int dst;
-        if (markedChar <= UNMARKED) {
-        /* No mark */
-            dst = 0;
-        } else {
-        /* Marked */
-            int delta = nextChar - markedChar;
-            if (delta >= readAheadLimit) {
-        /* Gone past read-ahead limit: Invalidate mark */
-                markedChar = INVALIDATED;
-                readAheadLimit = 0;
-                dst = 0;
-            } else {
-                if (readAheadLimit <= cb.length) {
-		    /* Shuffle in the current buffer */
-                    System.arraycopy(cb, markedChar, cb, 0, delta);
-                    markedChar = 0;
-                    dst = delta;
-                } else {
-		    /* Reallocate buffer to accommodate read-ahead limit */
-                    char ncb[] = new char[readAheadLimit];
-                    System.arraycopy(cb, markedChar, ncb, 0, delta);
-                    cb = ncb;
-                    markedChar = 0;
-                    dst = delta;
-                }
-                nextChar = nChars = delta;
-            }
-        }
-
-        int n;
-        do {
-            n = in.read(cb, dst, cb.length - dst);
-        } while (n == 0);
-        if (n > 0) {
-            nChars = dst + n;
-            nextChar = dst;
-        }
-    }
-
-    /**
-     * Reads a single character.
-     *
-     * @return The character read, as an integer in the range
-     *         0 to 65535 (<tt>0x00-0xffff</tt>), or -1 if the
-     *         end of the stream has been reached
-     * @throws IOException If an I/O error occurs
-     */
-    public int read() throws IOException {
-        synchronized (lock) {
-            ensureOpen();
-            for (; ; ) {
-                if (nextChar >= nChars) {
-                    fill();
-                    if (nextChar >= nChars)
-                        return -1;
-                }
-                if (skipLF) {
-                    skipLF = false;
-                    if (cb[nextChar] == '\n') {
-                        nextChar++;
-                        continue;
-                    }
-                }
-                return cb[nextChar++];
-            }
-        }
-    }
-
-    /**
-     * Reads characters into a portion of an array, reading from the underlying
-     * stream if necessary.
-     */
-    private int read1(char[] cbuf, int off, int len) throws IOException {
-        if (nextChar >= nChars) {
-	    /* If the requested length is at least as large as the buffer, and
-	       if there is no mark/reset activity, and if line feeds are not
-	       being skipped, do not bother to copy the characters into the
-	       local buffer.  In this way buffered streams will cascade
-	       harmlessly. */
-            if (len >= cb.length && markedChar <= UNMARKED && !skipLF) {
-                return in.read(cbuf, off, len);
-            }
-            fill();
-        }
-        if (nextChar >= nChars) return -1;
-        if (skipLF) {
-            skipLF = false;
-            if (cb[nextChar] == '\n') {
-                nextChar++;
-                if (nextChar >= nChars)
-                    fill();
-                if (nextChar >= nChars)
-                    return -1;
-            }
-        }
-        int n = Math.min(len, nChars - nextChar);
-        System.arraycopy(cb, nextChar, cbuf, off, n);
-        nextChar += n;
-        return n;
-    }
-
-    /**
-     * Reads characters into a portion of an array.
-     * <p/>
-     * <p> This method implements the general contract of the corresponding
-     * <code>{@link Reader#read(char[], int, int) read}</code> method of the
-     * <code>{@link Reader}</code> class.  As an additional convenience, it
-     * attempts to read as many characters as possible by repeatedly invoking
-     * the <code>read</code> method of the underlying stream.  This iterated
-     * <code>read</code> continues until one of the following conditions becomes
-     * true: <ul>
-     * <p/>
-     * <li> The specified number of characters have been read,
-     * <p/>
-     * <li> The <code>read</code> method of the underlying stream returns
-     * <code>-1</code>, indicating end-of-file, or
-     * <p/>
-     * <li> The <code>ready</code> method of the underlying stream
-     * returns <code>false</code>, indicating that further input requests
-     * would block.
-     * <p/>
-     * </ul> If the first <code>read</code> on the underlying stream returns
-     * <code>-1</code> to indicate end-of-file then this method returns
-     * <code>-1</code>.  Otherwise this method returns the number of characters
-     * actually read.
-     * <p/>
-     * <p> Subclasses of this class are encouraged, but not required, to
-     * attempt to read as many characters as possible in the same fashion.
-     * <p/>
-     * <p> Ordinarily this method takes characters from this stream's character
-     * buffer, filling it from the underlying stream as necessary.  If,
-     * however, the buffer is empty, the mark is not valid, and the requested
-     * length is at least as large as the buffer, then this method will read
-     * characters directly from the underlying stream into the given array.
-     * Thus redundant <code>BufferedReaderTwo</code>s will not copy data
-     * unnecessarily.
-     *
-     * @param cbuf Destination buffer
-     * @param off  Offset at which to start storing characters
-     * @param len  Maximum number of characters to read
-     * @return The number of characters read, or -1 if the end of the
-     *         stream has been reached
-     * @throws IOException If an I/O error occurs
-     */
-    public int read(char cbuf[], int off, int len) throws IOException {
-        synchronized (lock) {
-            ensureOpen();
-            if ((off < 0) || (off > cbuf.length) || (len < 0) ||
-                    ((off + len) > cbuf.length) || ((off + len) < 0)) {
-                throw new IndexOutOfBoundsException();
-            } else if (len == 0) {
-                return 0;
-            }
-
-            int n = read1(cbuf, off, len);
-            if (n <= 0) return n;
-            while ((n < len) && in.ready()) {
-                int n1 = read1(cbuf, off + n, len - n);
-                if (n1 <= 0) break;
-                n += n1;
-            }
-            return n;
-        }
-    }
-
-    /**
-     * Reads a line of text.  A line is considered to be terminated by any one
-     * of a line feed ('\n'), a carriage return ('\r'), or a carriage return
-     * followed immediately by a linefeed.
-     *
-     * @param ignoreLF If true, the next '\n' will be skipped
-     * @return A String containing the contents of the line, not including
-     *         any line-termination characters, or null if the end of the
-     *         stream has been reached
-     * @throws IOException If an I/O error occurs
-     * @see java.io.LineNumberReader#readLine()
-     */
-    String readLine(boolean ignoreLF) throws IOException {
-        int startChar;
-        lineBuffer.setLength(0);
-        
-        synchronized (lock) {
-            ensureOpen();
-            boolean omitLF = ignoreLF || skipLF;
-
-            bufferLoop:
-            for (; ; ) {
-
-                if (nextChar >= nChars)
-                    fill();
-                if (nextChar >= nChars) { /* EOF */
-                    if (lineBuffer != null && lineBuffer.length() > 0)
-                        return lineBuffer.toString();
-                    else
-                        return null;
-                }
-                boolean eol = false;
-                char c = 0;
-                int i;
-
-                /* Skip a leftover '\n', if necessary */
-                if (omitLF && (cb[nextChar] == '\n'))
-                    nextChar++;
-                skipLF = false;
-                omitLF = false;
-
-                charLoop:
-                for (i = nextChar; i < nChars; i++) {
-                    c = cb[i];
-                    if ((c == '\n') || (c == '\r')) {
-                        eol = true;
-                        break charLoop;
-                    }
-                }
-
-                startChar = nextChar;
-                nextChar = i;
-
-                if (eol) {
-                    String str;
-                    lineBuffer.append(cb, startChar, i - startChar);
-                    str = lineBuffer.toString();
-                    nextChar++;
-                    if (c == '\r') {
-                        skipLF = true;
-                    }
-                    return str;
-                }
-
-                lineBuffer.append(cb, startChar, i - startChar);
-            }
-        }
-    }
-
-    /**
-     * Reads a line of text.  A line is considered to be terminated by any one
-     * of a line feed ('\n'), a carriage return ('\r'), or a carriage return
-     * followed immediately by a linefeed.
-     *
-     * @return A String containing the contents of the line, not including
-     *         any line-termination characters, or null if the end of the
-     *         stream has been reached
-     * @throws IOException If an I/O error occurs
-     */
-    public String readLine() throws IOException {
-        return readLine(false);
-    }
-
-    /**
-     * Skips characters.
-     *
-     * @param n The number of characters to skip
-     * @return The number of characters actually skipped
-     * @throws IllegalArgumentException If <code>n</code> is negative.
-     * @throws IOException              If an I/O error occurs
-     */
-    public long skip(long n) throws IOException {
-        if (n < 0L) {
-            throw new IllegalArgumentException("skip value is negative");
-        }
-        synchronized (lock) {
-            ensureOpen();
-            long r = n;
-            while (r > 0) {
-                if (nextChar >= nChars)
-                    fill();
-                if (nextChar >= nChars)	/* EOF */
-                    break;
-                if (skipLF) {
-                    skipLF = false;
-                    if (cb[nextChar] == '\n') {
-                        nextChar++;
-                    }
-                }
-                long d = nChars - nextChar;
-                if (r <= d) {
-                    nextChar += r;
-                    r = 0;
-                    break;
-                } else {
-                    r -= d;
-                    nextChar = nChars;
-                }
-            }
-            return n - r;
-        }
-    }
-
-    /**
-     * Tells whether this stream is ready to be read.  A buffered character
-     * stream is ready if the buffer is not empty, or if the underlying
-     * character stream is ready.
-     *
-     * @throws IOException If an I/O error occurs
-     */
-    public boolean ready() throws IOException {
-        synchronized (lock) {
-            ensureOpen();
-
-	    /* 
-	     * If newline needs to be skipped and the next char to be read
-	     * is a newline character, then just skip it right away.
-	     */
-            if (skipLF) {
-		/* Note that in.ready() will return true if and only if the next 
-		 * read on the stream will not block.
-		 */
-                if (nextChar >= nChars && in.ready()) {
-                    fill();
-                }
-                if (nextChar < nChars) {
-                    if (cb[nextChar] == '\n')
-                        nextChar++;
-                    skipLF = false;
-                }
-            }
-            return (nextChar < nChars) || in.ready();
-        }
-    }
-
-    /**
-     * Tells whether this stream supports the mark() operation, which it does.
-     */
-    public boolean markSupported() {
-        return true;
-    }
-
-    /**
-     * Marks the present position in the stream.  Subsequent calls to reset()
-     * will attempt to reposition the stream to this point.
-     *
-     * @param readAheadLimit Limit on the number of characters that may be
-     *                       read while still preserving the mark. An attempt
-     *                       to reset the stream after reading characters
-     *                       up to this limit or beyond may fail.
-     *                       A limit value larger than the size of the input
-     *                       buffer will cause a new buffer to be allocated
-     *                       whose size is no smaller than limit.
-     *                       Therefore large values should be used with care.
-     * @throws IllegalArgumentException If readAheadLimit is < 0
-     * @throws IOException              If an I/O error occurs
-     */
-    public void mark(int readAheadLimit) throws IOException {
-        if (readAheadLimit < 0) {
-            throw new IllegalArgumentException("Read-ahead limit < 0");
-        }
-        synchronized (lock) {
-            ensureOpen();
-            this.readAheadLimit = readAheadLimit;
-            markedChar = nextChar;
-            markedSkipLF = skipLF;
-        }
-    }
-
-    /**
-     * Resets the stream to the most recent mark.
-     *
-     * @throws IOException If the stream has never been marked,
-     *                     or if the mark has been invalidated
-     */
-    public void reset() throws IOException {
-        synchronized (lock) {
-            ensureOpen();
-            if (markedChar < 0)
-                throw new IOException((markedChar == INVALIDATED)
-                        ? "Mark invalid"
-                        : "Stream not marked");
-            nextChar = markedChar;
-            skipLF = markedSkipLF;
-        }
-    }
-
-    public void close() throws IOException {
-        synchronized (lock) {
-            if (in == null)
-                return;
-            in.close();
-            in = null;
-            cb = null;
-        }
-    }
-}
diff --git a/src/java/org/broad/tribble/readers/Positional.java b/src/java/org/broad/tribble/readers/Positional.java
deleted file mode 100644
index f79ee2a..0000000
--- a/src/java/org/broad/tribble/readers/Positional.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package org.broad.tribble.readers;
-
-import net.sf.samtools.util.LocationAware;
-
-import java.io.IOException;
-
-/**
- * Minimal interface for an object at support getting the current position in the stream / writer / file, as well as a handful of other
- * reader-like features.
- * 
- * @author depristo
- */
-public interface Positional extends LocationAware {
-    /**
-     * Is the stream done?  Equivalent to ! hasNext() for an iterator?
-     * @return true if the stream has reached EOF, false otherwise
-     */
-    public boolean isDone() throws IOException;
-
-    /**
-     * Skip the next nBytes in the stream.
-     * @param nBytes to skip, must be >= 0
-     * @return the number of bytes actually skippped.
-     * @throws IOException
-     */
-    public long skip(long nBytes) throws IOException;
-
-    /**
-     * Return the next byte in the first, without actually reading it from the stream.
-     *
-     * Has the same output as read()
-     *
-     * @return the next byte, or -1 if EOF encountered
-     * @throws IOException
-     */
-    public int peek() throws IOException;
-}
diff --git a/src/java/org/broad/tribble/readers/PositionalBufferedStream.java b/src/java/org/broad/tribble/readers/PositionalBufferedStream.java
deleted file mode 100644
index 743f19f..0000000
--- a/src/java/org/broad/tribble/readers/PositionalBufferedStream.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/*
- * Copyright (c) 2007-2009 by The Broad Institute, Inc. and the Massachusetts Institute of Technology.
- * All Rights Reserved.
- *
- * This software is licensed under the terms of the GNU Lesser General Public License (LGPL), Version 2.1 which
- * is available at http://www.opensource.org/licenses/lgpl-2.1.php.
- *
- * THE SOFTWARE IS PROVIDED "AS IS." THE BROAD AND MIT MAKE NO REPRESENTATIONS OR WARRANTIES OF
- * ANY KIND CONCERNING THE SOFTWARE, EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES
- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT
- * OR OTHER DEFECTS, WHETHER OR NOT DISCOVERABLE.  IN NO EVENT SHALL THE BROAD OR MIT, OR THEIR
- * RESPECTIVE TRUSTEES, DIRECTORS, OFFICERS, EMPLOYEES, AND AFFILIATES BE LIABLE FOR ANY DAMAGES OF
- * ANY KIND, INCLUDING, WITHOUT LIMITATION, INCIDENTAL OR CONSEQUENTIAL DAMAGES, ECONOMIC
- * DAMAGES OR INJURY TO PROPERTY AND LOST PROFITS, REGARDLESS OF WHETHER THE BROAD OR MIT SHALL
- * BE ADVISED, SHALL HAVE OTHER REASON TO KNOW, OR IN FACT SHALL KNOW OF THE POSSIBILITY OF THE
- * FOREGOING.
- */
-package org.broad.tribble.readers;
-
-import org.broad.tribble.TribbleException;
-
-import java.io.*;
-
-/**
- * A wrapper around an {@code InputStream} which performs it's own buffering, and keeps track of the position.
- * 
- * @author depristo
- */
-public final class PositionalBufferedStream extends InputStream implements Positional {
-    final InputStream is;
-    final byte[] buffer;
-    int nextChar;
-    int nChars;
-    long position;
-
-    public PositionalBufferedStream(final InputStream is) {
-        this(is, 512000);
-    }
-
-    public PositionalBufferedStream(final InputStream is, final int bufferSize) {
-        this.is = is;
-        buffer = new byte[bufferSize];
-        nextChar = nChars = 0;
-    }
-
-    public final long getPosition() {
-        return position;
-    }
-
-    @Override
-    public final int read() throws IOException {
-        final int c = peek();
-        if ( c >= 0 ) {
-            // update position and buffer offset if peek says we aren't yet done
-            position++;
-            nextChar++;
-        }
-        return c;
-    }
-
-    @Override
-    public final int read(final byte[] bytes, final int start, final int len) throws IOException {
-        if ( len == 0 ) // If len is zero, then no bytes are read and 0 is returned
-            return 0;
-        if (nChars < 0) // If no byte is available because the stream is at end of file, the value -1 is returned
-            return -1;
-        else {
-            int nRead = 0;
-            int remaining = len;
-
-            while ( remaining > 0 ) {
-                // Try to Refill buffer if at the end of current buffer
-                if ( nChars == nextChar )
-                    if ( fill() < 0 ) { // EOF
-                        break;
-                    }
-
-                // we copy as many bytes from the buffer as possible, up to the number of need
-                final int nCharsToCopy = Math.min(nChars - nextChar, remaining);
-                System.arraycopy(buffer, nextChar, bytes, start + nRead, nCharsToCopy);
-
-                // update nextChar (pointer into buffer) and keep track of nRead and remaining
-                nextChar  += nCharsToCopy;
-                nRead     += nCharsToCopy;
-                remaining -= nCharsToCopy;
-            }
-
-            // make sure we update our position tracker to reflect having advanced by nRead bytes
-            position += nRead;
-            
-            /** Conform to {@link InputStream#read(byte[], int, int)} contract by returning -1 if EOF and no data was read. */
-            return nRead == 0 ? -1 : nRead;
-        }
-    }
-
-    @Override
-    public final int read(final byte[] bytes) throws IOException {
-        return read(bytes, 0, bytes.length);
-    }
-
-    @Override
-    public final boolean isDone() throws IOException {
-        return nChars == -1 || peek() == -1;
-    }
-
-    @Override
-    public final int peek() throws IOException {
-        // Check for EOF
-        if (nChars < 0) {
-            return -1;
-        } else if (nextChar == nChars){
-            //Try to Refill buffer if at the end of current buffer
-            if ( fill() < 0 ){
-                return -1;
-            }
-        }
-
-        return byteToInt(buffer[nextChar]);
-    }
-
-    private final int fill() throws IOException {
-        nChars = is.read(buffer);
-        nextChar = 0;
-        return nChars;
-    }
-
-    public final long skip(final long nBytes) throws IOException {
-        long remainingToSkip = nBytes;
-
-        // because we have this buffer, that may be shorter than nBytes
-        // we loop while there are bytes to skip, filling the buffer
-        // When the buffer contains enough data that we have less than
-        // its less left to skip we increase nextChar by the remaining
-        // amount
-        while ( remainingToSkip > 0 && ! isDone() ) {
-            final long bytesLeftInBuffer = nChars - nextChar;
-            if ( remainingToSkip > bytesLeftInBuffer ) {
-                // we need to refill the buffer and continue our skipping
-                remainingToSkip -= bytesLeftInBuffer;
-                fill();
-            } else {
-                // there are enough bytes in the buffer to not read again
-                // we just push forward the pointer nextChar
-                nextChar += remainingToSkip;
-                remainingToSkip = 0;
-            }
-        }
-
-        final long actuallySkipped = nBytes - remainingToSkip;
-        position += actuallySkipped;
-        return actuallySkipped;
-    }
-
-    public final void close() {
-        try {
-            is.close();
-        } catch (IOException ex) {
-            new TribbleException("Failed to close PositionalBufferedStream", ex);
-        }
-    }
-
-    private final static int byteToInt(byte b) {
-        return b & 0xFF;
-    }
-
-    public static void main(String[] args) throws Exception {
-        final File testFile = new File(args[0]);
-        final int iterations = Integer.valueOf(args[1]);
-        final boolean includeInputStream = Boolean.valueOf(args[2]);
-        final boolean doReadFileInChunks = Boolean.valueOf(args[3]);
-
-        System.out.printf("Testing %s%n", args[0]);
-        for (int i = 0; i < iterations; i++) {
-            if ( includeInputStream ) {
-                final InputStream is = new FileInputStream(testFile);
-                if ( doReadFileInChunks )
-                    readFileInChunks("InputStream", is);
-                else
-                    readFileByLine("InputStream", is);
-                is.close();
-            }
-
-            final PositionalBufferedStream pbs = new PositionalBufferedStream(new FileInputStream(testFile));
-            if ( doReadFileInChunks )
-                readFileInChunks("PositionalBufferedStream", pbs);
-            else
-                readFileByLine("PositionalBufferedStream", pbs);
-            pbs.close();
-        }
-    }
-
-    private static void readFileByLine(final String name, final InputStream is) throws IOException {
-        final BufferedReader reader2 = new BufferedReader(new InputStreamReader(is));
-        final long t0 = System.currentTimeMillis();
-        long lineCount = 0;
-        while (reader2.readLine() != null) {
-            lineCount++;
-        }
-        final long dt = System.currentTimeMillis() - t0;
-        final double rate = ((double) lineCount) / dt;
-        printStatus(name, lineCount, rate, dt);
-        reader2.close();
-    }
-
-    private static void readFileInChunks(final String name, final InputStream is) throws IOException {
-        final long t0 = System.currentTimeMillis();
-        long chunk = 0;
-        final byte[] bytes = new byte[4096];
-        while (is.read(bytes) != -1) {
-            chunk++;
-        }
-        final long dt = System.currentTimeMillis() - t0;
-        final double rate = ((double) chunk) / dt;
-        printStatus(name, chunk, rate, dt);
-        is.close();
-    }
-
-
-    private static final void printStatus(final String name, long lineCount, double rate, long dt) {
-        System.out.printf("%30s: %d lines read.  Rate = %.2e lines per second.  DT = %d%n", name, lineCount, rate, dt);
-        System.out.flush();
-    }
-}
-
diff --git a/src/java/org/broad/tribble/readers/TabixIteratorLineReader.java b/src/java/org/broad/tribble/readers/TabixIteratorLineReader.java
deleted file mode 100644
index cd7fb93..0000000
--- a/src/java/org/broad/tribble/readers/TabixIteratorLineReader.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package org.broad.tribble.readers;
-
-import java.io.IOException;
-
-/**
- * @author Jim Robinson
- * @date 2/11/12
- */
-public class TabixIteratorLineReader implements LineReader {
-
-    TabixReader.Iterator iterator;
-
-
-    public TabixIteratorLineReader(TabixReader.Iterator iterator) {
-        this.iterator = iterator;
-    }
-
-    public String readLine() {
-        try {
-            return iterator != null ? iterator.next() : null;
-        } catch (IOException e) {
-            throw new RuntimeException(e);
-        }
-    }
-
-    public void close() {
-        // Ignore -
-    }
-}
diff --git a/src/java/org/broad/tribble/readers/TabixReader.java b/src/java/org/broad/tribble/readers/TabixReader.java
deleted file mode 100644
index b1c2d3a..0000000
--- a/src/java/org/broad/tribble/readers/TabixReader.java
+++ /dev/null
@@ -1,462 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package org.broad.tribble.readers;
-
-import java.io.*;
-import java.nio.*;
-import java.util.HashMap;
-import java.util.Arrays;
-import java.lang.StringBuffer;
-
-import net.sf.samtools.seekablestream.ISeekableStreamFactory;
-import net.sf.samtools.seekablestream.SeekableStream;
-import net.sf.samtools.util.BlockCompressedInputStream;
-import net.sf.samtools.seekablestream.SeekableStreamFactory;
-import org.broad.tribble.Tribble;
-import org.broad.tribble.util.ParsingUtils;
-import org.broad.tribble.util.TabixUtils;
-
-/**
- * @author Heng Li <hengli at broadinstitute.org>
- */
-public class TabixReader {
-    private String mFn;
-    private String mIdxFn;
-    BlockCompressedInputStream mFp;
-
-    private int mPreset;
-    private int mSc;
-    private int mBc;
-    private int mEc;
-    private int mMeta;
-    private int mSkip;
-    private String[] mSeq;
-
-    public HashMap<String, Integer> mChr2tid;
-
-    private static int MAX_BIN = 37450;
-    private static int TAD_MIN_CHUNK_GAP = 32768;
-    private static int TAD_LIDX_SHIFT = 14;
-
-    protected class TPair64 implements Comparable<TPair64> {
-        long u, v;
-
-        public TPair64(final long _u, final long _v) {
-            u = _u;
-            v = _v;
-        }
-
-        public TPair64(final TPair64 p) {
-            u = p.u;
-            v = p.v;
-        }
-
-        public int compareTo(final TPair64 p) {
-            return u == p.u ? 0 : ((u < p.u) ^ (u < 0) ^ (p.u < 0)) ? -1 : 1; // unsigned 64-bit comparison
-        }
-    }
-
-    protected class TIndex {
-        HashMap<Integer, TPair64[]> b; // binning index
-        long[] l; // linear index
-    }
-
-    protected TIndex[] mIndex;
-
-    private class TIntv {
-        int tid, beg, end;
-    }
-
-    private static boolean less64(final long u, final long v) { // unsigned 64-bit comparison
-        return (u < v) ^ (u < 0) ^ (v < 0);
-    }
-
-    /**
-     * @param fn File name of the data file
-     */
-    public TabixReader(final String fn) throws IOException {
-        this(fn, SeekableStreamFactory.getInstance().getBufferedStream(SeekableStreamFactory.getInstance().getStreamFor(fn)));
-    }
-
-    /**
-     * @param fn File name of the data file  (used for error messages only)
-     * @param stream Seekable stream from which the data is read 
-     */
-    public TabixReader(final String fn, SeekableStream stream) throws IOException {
-        this(fn, null, stream);
-    }
-
-    /**
-     * @param fn File name of the data file  (used for error messages only)
-     * @param idxFn Full path to the index file. Auto-generated if null
-     * @param stream Seekable stream from which the data is read
-     */
-    public TabixReader(final String fn, final String idxFn, SeekableStream stream) throws IOException {
-        mFn = fn;
-        mFp = new BlockCompressedInputStream(stream);
-        if(idxFn == null){
-            mIdxFn = ParsingUtils.appendToPath(fn, TabixUtils.STANDARD_INDEX_EXTENSION);
-        }
-        readIndex();
-    }
-
-    private static int reg2bins(final int beg, final int _end, final int[] list) {
-        int i = 0, k, end = _end;
-        if (beg >= end) return 0;
-        if (end >= 1 << 29) end = 1 << 29;
-        --end;
-        list[i++] = 0;
-        for (k = 1 + (beg >> 26); k <= 1 + (end >> 26); ++k) list[i++] = k;
-        for (k = 9 + (beg >> 23); k <= 9 + (end >> 23); ++k) list[i++] = k;
-        for (k = 73 + (beg >> 20); k <= 73 + (end >> 20); ++k) list[i++] = k;
-        for (k = 585 + (beg >> 17); k <= 585 + (end >> 17); ++k) list[i++] = k;
-        for (k = 4681 + (beg >> 14); k <= 4681 + (end >> 14); ++k) list[i++] = k;
-        return i;
-    }
-
-    public static int readInt(final InputStream is) throws IOException {
-        byte[] buf = new byte[4];
-        is.read(buf);
-        return ByteBuffer.wrap(buf).order(ByteOrder.LITTLE_ENDIAN).getInt();
-    }
-
-    public static long readLong(final InputStream is) throws IOException {
-        byte[] buf = new byte[8];
-        is.read(buf);
-        return ByteBuffer.wrap(buf).order(ByteOrder.LITTLE_ENDIAN).getLong();
-    }
-
-    public static String readLine(final InputStream is) throws IOException {
-        StringBuffer buf = new StringBuffer();
-        int c;
-        while ((c = is.read()) >= 0 && c != '\n')
-            buf.append((char) c);
-        if (c < 0) return null;
-        return buf.toString();
-    }
-
-    /**
-     * Read the Tabix index from a file
-     *
-     * @param fp File pointer
-     */
-    public void readIndex(SeekableStream fp) throws IOException {
-        if (fp == null) return;
-        BlockCompressedInputStream is = new BlockCompressedInputStream(fp);
-        byte[] buf = new byte[4];
-
-        is.read(buf, 0, 4); // read "TBI\1"
-        mSeq = new String[readInt(is)]; // # sequences
-        mChr2tid = new HashMap<String, Integer>();
-        mPreset = readInt(is);
-        mSc = readInt(is);
-        mBc = readInt(is);
-        mEc = readInt(is);
-        mMeta = readInt(is);
-        mSkip = readInt(is);
-        // read sequence dictionary
-        int i, j, k, l = readInt(is);
-        buf = new byte[l];
-        is.read(buf);
-        for (i = j = k = 0; i < buf.length; ++i) {
-            if (buf[i] == 0) {
-                byte[] b = new byte[i - j];
-                System.arraycopy(buf, j, b, 0, b.length);
-                String s = new String(b);
-                mChr2tid.put(s, k);
-                mSeq[k++] = s;
-                j = i + 1;
-            }
-        }
-        // read the index
-        mIndex = new TIndex[mSeq.length];
-        for (i = 0; i < mSeq.length; ++i) {
-            // the binning index
-            int n_bin = readInt(is);
-            mIndex[i] = new TIndex();
-            mIndex[i].b = new HashMap<Integer, TPair64[]>();
-            for (j = 0; j < n_bin; ++j) {
-                int bin = readInt(is);
-                TPair64[] chunks = new TPair64[readInt(is)];
-                for (k = 0; k < chunks.length; ++k) {
-                    long u = readLong(is);
-                    long v = readLong(is);
-                    chunks[k] = new TPair64(u, v); // in C, this is inefficient
-                }
-                mIndex[i].b.put(bin, chunks);
-            }
-            // the linear index
-            mIndex[i].l = new long[readInt(is)];
-            for (k = 0; k < mIndex[i].l.length; ++k)
-                mIndex[i].l[k] = readLong(is);
-        }
-        // close
-        is.close();
-    }
-
-    /**
-     * Read the Tabix index from the default file.
-     */
-    public void readIndex() throws IOException {
-        ISeekableStreamFactory ssf = SeekableStreamFactory.getInstance();
-        readIndex(ssf.getBufferedStream(ssf.getStreamFor(mIdxFn), 128000));
-    }
-
-    /**
-     * Read one line from the data file.
-     */
-    public String readLine() throws IOException {
-        return readLine(mFp);
-    }
-
-    private int chr2tid(final String chr) {
-        if (mChr2tid.containsKey(chr)) return mChr2tid.get(chr);
-        else return -1;
-    }
-
-    /**
-     * Parse a region in the format of "chr1", "chr1:100" or "chr1:100-1000"
-     *
-     * @param reg Region string
-     * @return An array where the three elements are sequence_id,
-     *         region_begin and region_end. On failure, sequence_id==-1.
-     */
-    public int[] parseReg(final String reg) { // FIXME: NOT working when the sequence name contains : or -.
-        String chr;
-        int colon, hyphen;
-        int[] ret = new int[3];
-        colon = reg.indexOf(':');
-        hyphen = reg.indexOf('-');
-        chr = colon >= 0 ? reg.substring(0, colon) : reg;
-        ret[1] = colon >= 0 ? Integer.parseInt(reg.substring(colon + 1, hyphen >= 0 ? hyphen : reg.length())) - 1 : 0;
-        ret[2] = hyphen >= 0 ? Integer.parseInt(reg.substring(hyphen + 1)) : 0x7fffffff;
-        ret[0] = chr2tid(chr);
-        return ret;
-    }
-
-    private TIntv getIntv(final String s) {
-        TIntv intv = new TIntv();
-        int col = 0, end = 0, beg = 0;
-        while ((end = s.indexOf('\t', beg)) >= 0 || end == -1) {
-            ++col;
-            if (col == mSc) {
-                intv.tid = chr2tid(end != -1 ? s.substring(beg, end) : s.substring(beg));
-            } else if (col == mBc) {
-                intv.beg = intv.end = Integer.parseInt(end != -1 ? s.substring(beg, end) : s.substring(beg));
-                if ((mPreset & 0x10000) != 0) ++intv.end;
-                else --intv.beg;
-                if (intv.beg < 0) intv.beg = 0;
-                if (intv.end < 1) intv.end = 1;
-            } else { // FIXME: SAM supports are not tested yet
-                if ((mPreset & 0xffff) == 0) { // generic
-                    if (col == mEc)
-                        intv.end = Integer.parseInt(end != -1 ? s.substring(beg, end) : s.substring(beg));
-                } else if ((mPreset & 0xffff) == 1) { // SAM
-                    if (col == 6) { // CIGAR
-                        int l = 0, i, j;
-                        String cigar = s.substring(beg, end);
-                        for (i = j = 0; i < cigar.length(); ++i) {
-                            if (cigar.charAt(i) > '9') {
-                                int op = cigar.charAt(i);
-                                if (op == 'M' || op == 'D' || op == 'N')
-                                    l += Integer.parseInt(cigar.substring(j, i));
-                                j = i + 1;
-                            }
-                        }
-                        intv.end = intv.beg + l;
-                    }
-                } else if ((mPreset & 0xffff) == 2) { // VCF
-                    String alt;
-                    alt = end >= 0 ? s.substring(beg, end) : s.substring(beg);
-                    if (col == 4) { // REF
-                        if (alt.length() > 0) intv.end = intv.beg + alt.length();
-                    } else if (col == 8) { // INFO
-                        int e_off = -1, i = alt.indexOf("END=");
-                        if (i == 0) e_off = 4;
-                        else if (i > 0) {
-                            i = alt.indexOf(";END=");
-                            if (i >= 0) e_off = i + 5;
-                        }
-                        if (e_off > 0) {
-                            i = alt.indexOf(";", e_off);
-                            intv.end = Integer.parseInt(i > e_off ? alt.substring(e_off, i) : alt.substring(e_off));
-                        }
-                    }
-                }
-            }
-            if (end == -1) break;
-            beg = end + 1;
-        }
-        return intv;
-    }
-
-    public class Iterator {
-        private int i, n_seeks;
-        private int tid, beg, end;
-        private TPair64[] off;
-        private long curr_off;
-        private boolean iseof;
-
-        public Iterator(final int _tid, final int _beg, final int _end, final TPair64[] _off) {
-            i = -1;
-            n_seeks = 0;
-            curr_off = 0;
-            iseof = false;
-            off = _off;
-            tid = _tid;
-            beg = _beg;
-            end = _end;
-        }
-
-        public String next() throws IOException {
-            if (iseof) return null;
-            for (; ;) {
-                if (curr_off == 0 || !less64(curr_off, off[i].v)) { // then jump to the next chunk
-                    if (i == off.length - 1) break; // no more chunks
-                    if (i >= 0) assert (curr_off == off[i].v); // otherwise bug
-                    if (i < 0 || off[i].v != off[i + 1].u) { // not adjacent chunks; then seek
-                        mFp.seek(off[i + 1].u);
-                        curr_off = mFp.getFilePointer();
-                        ++n_seeks;
-                    }
-                    ++i;
-                }
-                String s;
-                if ((s = readLine(mFp)) != null) {
-                    TIntv intv;
-                    char[] str = s.toCharArray();
-                    curr_off = mFp.getFilePointer();
-                    if (str.length == 0 || str[0] == mMeta) continue;
-                    intv = getIntv(s);
-                    if (intv.tid != tid || intv.beg >= end) break; // no need to proceed
-                    else if (intv.end > beg && intv.beg < end) return s; // overlap; return
-                } else break; // end of file
-            }
-            iseof = true;
-            return null;
-        }
-    }
-
-    /**
-     * Return
-     * @param tid Sequence id
-     * @param beg beginning of interval, genomic coords
-     * @param end end of interval, genomic coords
-     * @return an iterator over the lines within the specified interval
-     */
-    public Iterator query(final int tid, final int beg, final int end) {
-        TPair64[] off, chunks;
-        long min_off;
-        TIndex idx = mIndex[tid];
-        int[] bins = new int[MAX_BIN];
-        int i, l, n_off, n_bins = reg2bins(beg, end, bins);
-        if (idx.l.length > 0)
-            min_off = (beg >> TAD_LIDX_SHIFT >= idx.l.length) ? idx.l[idx.l.length - 1] : idx.l[beg >> TAD_LIDX_SHIFT];
-        else min_off = 0;
-        for (i = n_off = 0; i < n_bins; ++i) {
-            if ((chunks = idx.b.get(bins[i])) != null)
-                n_off += chunks.length;
-        }
-        if (n_off == 0) return null;
-        off = new TPair64[n_off];
-        for (i = n_off = 0; i < n_bins; ++i)
-            if ((chunks = idx.b.get(bins[i])) != null)
-                for (int j = 0; j < chunks.length; ++j)
-                    if (less64(min_off, chunks[j].v))
-                        off[n_off++] = new TPair64(chunks[j]);
-        Arrays.sort(off, 0, n_off);
-        // resolve completely contained adjacent blocks
-        for (i = 1, l = 0; i < n_off; ++i) {
-            if (less64(off[l].v, off[i].v)) {
-                ++l;
-                off[l].u = off[i].u;
-                off[l].v = off[i].v;
-            }
-        }
-        n_off = l + 1;
-        // resolve overlaps between adjacent blocks; this may happen due to the merge in indexing
-        for (i = 1; i < n_off; ++i)
-            if (!less64(off[i - 1].v, off[i].u)) off[i - 1].v = off[i].u;
-        // merge adjacent blocks
-        for (i = 1, l = 0; i < n_off; ++i) {
-            if (off[l].v >> 16 == off[i].u >> 16) off[l].v = off[i].v;
-            else {
-                ++l;
-                off[l].u = off[i].u;
-                off[l].v = off[i].v;
-            }
-        }
-        n_off = l + 1;
-        // return
-        TPair64[] ret = new TPair64[n_off];
-        for (i = 0; i < n_off; ++i) {
-            if (off[i] != null) ret[i] = new TPair64(off[i].u, off[i].v); // in C, this is inefficient
-        }
-        if (ret.length == 0 || (ret.length == 1 && ret[0] == null))
-            return null;
-        return new TabixReader.Iterator(tid, beg, end, ret);
-    }
-
-    /**
-     *
-     * @see #parseReg(String)
-     * @param reg A region string of the form acceptable by {@link #parseReg(String)}
-     * @return
-     */
-    public Iterator query(final String reg) {
-        int[] x = parseReg(reg);
-        return query(x[0], x[1], x[2]);
-    }
-
-    public static void main(String[] args) {
-        if (args.length < 1) {
-            System.out.println("Usage: java -cp .:sam.jar TabixReader <in.gz> [region]");
-            System.exit(1);
-        }
-        try {
-            TabixReader tr = new TabixReader(args[0]);
-            String s;
-            if (args.length == 1) { // no region is specified; print the whole file
-                while ((s = tr.readLine()) != null)
-                    System.out.println(s);
-            } else { // a region is specified; random access
-                TabixReader.Iterator iter = tr.query(args[1]); // get the iterator
-                while ((s = iter.next()) != null)
-                    System.out.println(s);
-            }
-        } catch (IOException e) {
-        }
-    }
-
-    // ADDED BY JTR
-    public void close() {
-        if(mFp != null) {
-            try {
-                mFp.close();
-            } catch (IOException e) {
-
-            }
-        }
-    }
-}
diff --git a/src/java/org/broad/tribble/readme.txt b/src/java/org/broad/tribble/readme.txt
deleted file mode 100644
index 6ee86c3..0000000
--- a/src/java/org/broad/tribble/readme.txt
+++ /dev/null
@@ -1 +0,0 @@
-Source root for tribble project -- indexed, queryable genomic file formats
\ No newline at end of file
diff --git a/src/java/org/broad/tribble/util/FTPHelper.java b/src/java/org/broad/tribble/util/FTPHelper.java
deleted file mode 100644
index b3bc946..0000000
--- a/src/java/org/broad/tribble/util/FTPHelper.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package org.broad.tribble.util;
-
-import net.sf.samtools.util.ftp.FTPClient;
-import net.sf.samtools.util.ftp.FTPStream;
-import net.sf.samtools.util.ftp.FTPUtils;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-
-/**
- * @author jacob
- * @date 2013-Apr-11
- */
-public class FTPHelper implements URLHelper {
-
-    private URL url;
-
-    public FTPHelper(URL url){
-        if(!url.getProtocol().toLowerCase().equals("ftp")){
-            throw new IllegalArgumentException("FTPHelper can only be used with ftp protocol, not " + url.getProtocol());
-        }
-        this.url = url;
-    }
-
-    @Override
-    public URL getUrl() {
-        return this.url;
-    }
-
-    @Override
-    public long getContentLength() throws IOException {
-        return FTPUtils.getContentLength(this.url);
-    }
-
-    @Override
-    public InputStream openInputStream() throws IOException {
-        String file = url.getPath();
-        FTPClient ftp = FTPUtils.connect(url.getHost(), url.getUserInfo(), null);
-        ftp.pasv();
-        ftp.retr(file);
-        return new FTPStream(ftp);
-    }
-
-    @Override
-    public InputStream openInputStreamForRange(long start, long end) throws IOException {
-        throw new UnsupportedOperationException("Cannot perform range operations over FTP");
-    }
-
-    @Override
-    public boolean exists() throws IOException {
-        return FTPUtils.resourceAvailable(this.url);
-    }
-}
diff --git a/src/java/org/broad/tribble/util/HTTPHelper.java b/src/java/org/broad/tribble/util/HTTPHelper.java
deleted file mode 100644
index 9e4d0d4..0000000
--- a/src/java/org/broad/tribble/util/HTTPHelper.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * Copyright (c) 2007-2011 by The Broad Institute of MIT and Harvard.  All Rights Reserved.
- *
- * This software is licensed under the terms of the GNU Lesser General Public License (LGPL),
- * Version 2.1 which is available at http://www.opensource.org/licenses/lgpl-2.1.php.
- *
- * THE SOFTWARE IS PROVIDED "AS IS." THE BROAD AND MIT MAKE NO REPRESENTATIONS OR
- * WARRANTES OF ANY KIND CONCERNING THE SOFTWARE, EXPRESS OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
- * PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, WHETHER
- * OR NOT DISCOVERABLE.  IN NO EVENT SHALL THE BROAD OR MIT, OR THEIR RESPECTIVE
- * TRUSTEES, DIRECTORS, OFFICERS, EMPLOYEES, AND AFFILIATES BE LIABLE FOR ANY DAMAGES
- * OF ANY KIND, INCLUDING, WITHOUT LIMITATION, INCIDENTAL OR CONSEQUENTIAL DAMAGES,
- * ECONOMIC DAMAGES OR INJURY TO PROPERTY AND LOST PROFITS, REGARDLESS OF WHETHER
- * THE BROAD OR MIT SHALL BE ADVISED, SHALL HAVE OTHER REASON TO KNOW, OR IN FACT
- * SHALL KNOW OF THE POSSIBILITY OF THE FOREGOING.
- */
-
-package org.broad.tribble.util;
-
-import java.io.FileNotFoundException;
-import java.io.FilterInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.HttpURLConnection;
-import java.net.Proxy;
-import java.net.URL;
-import java.net.URLConnection;
-
-/**
- * Simple implementation of URLHelper based on the JDK URL and HttpURLConnection classes.  This
- * version optionally takes a proxy, but does not support authentication.
- *
- * @author jrobinso
- * @date Jun 28, 2011
- */
-public class HTTPHelper implements URLHelper {
-    /**
-     * Global proxy setting -- shared by all instances
-     */
-    static Proxy proxy;
-
-    private URL url;
-
-    public HTTPHelper(URL url) {
-        this.url = url;
-        proxy = null;
-
-        try {
-            URLConnection conn = openConnection();
-            conn.setDefaultUseCaches(false);
-        } catch (IOException e) {
-            e.printStackTrace();
-        }
-    }
-
-    public static synchronized void setProxy(Proxy p) {
-        proxy = p;
-    }
-
-    public URL getUrl() {
-        return url;
-    }
-
-    /**
-     * @return content length of the resource
-     * @throws IOException
-     */
-    public long getContentLength() throws IOException {
-
-        HttpURLConnection con = null;
-        try {
-            con = openConnection();
-            con.setRequestMethod("HEAD");
-            if((con.getResponseCode() != HttpURLConnection.HTTP_OK)) {
-                System.out.println("Error (" + con.getResponseMessage() + " ) fetching content length: " + url);
-                return -1;
-            }
-            else {
-                String contentLength = con.getHeaderField("Content-Length");
-                return contentLength == null ? -1 : Long.parseLong(contentLength);
-            }
-        }
-        finally {
-            if (con != null) con.disconnect();
-        }
-    }
-
-
-    public InputStream openInputStream() throws IOException {
-
-        HttpURLConnection connection = openConnection();
-        return new WrapperInputStream(connection, connection.getInputStream());
-    }
-
-
-    /**
-     * Open an input stream for the requested byte range.  Its the client's responsibility to close the stream.
-     *
-     * @param start start of range in bytes
-     * @param end   end of range ni bytes
-     * @return
-     * @throws IOException
-     */
-    public InputStream openInputStreamForRange(long start, long end) throws IOException {
-
-        HttpURLConnection connection = openConnection();
-        String byteRange = "bytes=" + start + "-" + end;
-        connection.setRequestProperty("Range", byteRange);
-        return new WrapperInputStream(connection, connection.getInputStream());
-    }
-
-    private HttpURLConnection openConnection() throws IOException {
-        HttpURLConnection connection;
-        if (proxy == null) {
-            connection = (HttpURLConnection) url.openConnection();
-        } else {
-            connection = (HttpURLConnection) url.openConnection(proxy);
-        }
-        return connection;
-    }
-
-    public boolean exists() throws IOException{
-        HttpURLConnection con = null;
-        try {
-            con = openConnection();
-            con.setRequestMethod("HEAD");
-            return (con.getResponseCode() == HttpURLConnection.HTTP_OK);
-        }
-        catch (IOException e) {
-            // This is what we are testing for, so its not really an exception
-            return false;
-        }
-        finally {
-            if (con != null) con.disconnect();
-        }
-    }
-    
-    class WrapperInputStream extends FilterInputStream {
-
-        HttpURLConnection connection;
-
-        protected WrapperInputStream(HttpURLConnection connection, InputStream inputStream) {
-            super(inputStream);
-            this.connection = connection;
-        }
-
-        @Override
-        public void close() throws IOException {
-            super.close();
-            connection.disconnect();
-        }
-    }
-
-
-}
diff --git a/src/java/org/broad/tribble/util/LittleEndianInputStream.java b/src/java/org/broad/tribble/util/LittleEndianInputStream.java
deleted file mode 100644
index 5654a8b..0000000
--- a/src/java/org/broad/tribble/util/LittleEndianInputStream.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
-* Adapted from example code in
-* Title: Hardcore Java
-* Title: Java I/O
-* Second Edition: May 2006
-* ISBN 10: 0-596-52750-0
-* ISBN 13: 9780596527501
-*
-* http://www.javafaq.nu/java-example-code-1078.html
-*
-*/
-package org.broad.tribble.util;
-
-import java.io.*;
-
-
-/**
- * Input stream with methods to convert byte arrays to numeric values using "little endian" order.
- * <p/>
- * Note: This class is not thread safe => instances should not be shared amongst threads
- */
-public class LittleEndianInputStream extends FilterInputStream {
-
-    byte[] buffer;
-
-    public LittleEndianInputStream(InputStream in) {
-        super(in);
-        buffer = new byte[8];
-
-    }
-
-    /**
-     *
-     * @return the next byte of this input stream, interpreted as an unsigned 8-bit number
-     * @throws IOException
-     */
-    public byte readByte() throws IOException {
-        int ch = in.read();
-        if (ch < 0) {
-            throw new EOFException();
-        }
-        return (byte) (ch);
-    }
-
-    public short readShort() throws IOException {
-        int byte1 = in.read();
-        int byte2 = in.read();
-        if (byte2 < 0) {
-            throw new EOFException();
-        }
-
-        return (short) (((byte2 << 24) >>> 16) + ((byte1 << 24) >>> 24));
-    }
-
-
-    public int readInt() throws IOException {
-        int byte1 = in.read();
-        int byte2 = in.read();
-        int byte3 = in.read();
-        int byte4 = in.read();
-        if (byte4 < 0) {
-            throw new EOFException();
-        }
-        return (byte4 << 24)
-                + ((byte3 << 24) >>> 8)
-                + ((byte2 << 24) >>> 16)
-                + ((byte1 << 24) >>> 24);
-
-    }
-
-    /**
-     *
-     */
-
-    public long readLong() throws IOException {
-        readFully(buffer);
-        long byte1 = (long) buffer[0];
-        long byte2 = (long) buffer[1];
-        long byte3 = (long) buffer[2];
-        long byte4 = (long) buffer[3];
-        long byte5 = (long) buffer[4];
-        long byte6 = (long) buffer[5];
-        long byte7 = (long) buffer[6];
-        long byte8 = (long) buffer[7];
-        return (byte8 << 56)
-                + ((byte7 << 56) >>> 8)
-                + ((byte6 << 56) >>> 16)
-                + ((byte5 << 56) >>> 24)
-                + ((byte4 << 56) >>> 32)
-                + ((byte3 << 56) >>> 40)
-                + ((byte2 << 56) >>> 48)
-                + ((byte1 << 56) >>> 56);
-    }
-
-    public final double readDouble() throws IOException {
-        return Double.longBitsToDouble(this.readLong());
-    }
-
-    public final float readFloat() throws IOException {
-        return Float.intBitsToFloat(this.readInt());
-    }
-
-    /**
-     * Read a null terminated byte array and return result as a string
-     *
-     * @return
-     * @throws IOException
-     */
-
-    public String readString() throws IOException {
-        ByteArrayOutputStream bis = new ByteArrayOutputStream(100);
-        byte b;
-        while ((b = (byte) in.read()) != 0) {
-            if(b < 0) {
-                throw new EOFException();
-            }
-            bis.write(b);
-        }
-        return new String(bis.toByteArray());
-    }
-
-
-    /**
-     * Keep reading until the input buffer is filled.
-     */
-    private void readFully(byte b[]) throws IOException {
-        int len = b.length;
-        if (len < 0)
-            throw new IndexOutOfBoundsException();
-        int n = 0;
-        while (n < len) {
-            int count = read(b, n, len - n);
-            if (count < 0)
-                throw new EOFException();
-            n += count;
-        }
-    }
-
-
-}
diff --git a/src/java/org/broad/tribble/util/LittleEndianOutputStream.java b/src/java/org/broad/tribble/util/LittleEndianOutputStream.java
deleted file mode 100644
index 2b71e75..0000000
--- a/src/java/org/broad/tribble/util/LittleEndianOutputStream.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
-* Adapted from example code in
-* Title: Hardcore Java
-* Title: Java I/O
-* Second Edition: May 2006
-* ISBN 10: 0-596-52750-0
-* ISBN 13: 9780596527501
-*
-* http://www.javafaq.nu/java-example-code-1078.html
-* 
-*/
-
-package org.broad.tribble.util;
-
-import java.io.FilterOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-
-
-public final class LittleEndianOutputStream extends FilterOutputStream {
-
-    protected long written;
-
-    public LittleEndianOutputStream(OutputStream out) {
-        super(out);
-    }
-
-    public void write(int b) throws IOException {
-        out.write(b);
-        written++;
-    }
-
-    public void write(byte[] data, int offset, int length)
-            throws IOException {
-        out.write(data, offset, length);
-        written += length;
-    }
-
-    public void writeBoolean(boolean b) throws IOException {
-        if (b) this.write(1);
-        else this.write(0);
-    }
-
-    public void writeByte(int b) throws IOException {
-        out.write(b);
-        written++;
-    }
-
-    public void writeShort(int s) throws IOException {
-        out.write(s & 0xFF);
-        out.write((s >>> 8) & 0xFF);
-        written += 2;
-    }
-
-    public void writeChar(int c) throws IOException {
-        out.write(c & 0xFF);
-        out.write((c >>> 8) & 0xFF);
-        written += 2;
-    }
-
-    public void writeInt(int i) throws IOException {
-
-        out.write(i & 0xFF);
-        out.write((i >>> 8) & 0xFF);
-        out.write((i >>> 16) & 0xFF);
-        out.write((i >>> 24) & 0xFF);
-        written += 4;
-
-    }
-
-    public void writeLong(long l) throws IOException {
-
-        out.write((int) l & 0xFF);
-        out.write((int) (l >>> 8) & 0xFF);
-        out.write((int) (l >>> 16) & 0xFF);
-        out.write((int) (l >>> 24) & 0xFF);
-        out.write((int) (l >>> 32) & 0xFF);
-        out.write((int) (l >>> 40) & 0xFF);
-        out.write((int) (l >>> 48) & 0xFF);
-        out.write((int) (l >>> 56) & 0xFF);
-        written += 8;
-
-    }
-
-    public final void writeFloat(float f) throws IOException {
-        this.writeInt(Float.floatToIntBits(f));
-    }
-
-    public final void writeDouble(double d) throws IOException {
-        this.writeLong(Double.doubleToLongBits(d));
-    }
-
-    public void writeBytes(String s) throws IOException {
-        int length = s.length();
-        for (int i = 0; i < length; i++) {
-            out.write((byte) s.charAt(i));
-        }
-        written += length;
-    }
-
-    /**
-     * Srite a string as a null terminated byte array.
-     *
-     * @param s
-     * @throws IOException
-     */
-    public void writeString(String s) throws IOException {
-        writeBytes(s);
-        write((byte) 0);
-    }
-
-    public long getWrittenCount() {
-        return written;
-    }
-
-    // Method provide to enable "reseting" to a previous state.
-    public void setWrittenCount(long count) {
-        this.written = count;
-    }
-}// end LittleEndianOutputStream
diff --git a/src/java/org/broad/tribble/util/MathUtils.java b/src/java/org/broad/tribble/util/MathUtils.java
deleted file mode 100644
index 1b8bf54..0000000
--- a/src/java/org/broad/tribble/util/MathUtils.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package org.broad.tribble.util;
-
-/**
- * a collection of functions and classes for various common calculations
- */
-public class MathUtils {
-
-    /**
-     * a class for calculating moving statistics - this class returns the
-     * mean, variance, and std dev after accumulating any number of records.
-     * taken from http://www.johndcook.com/standard_deviation.html
-     */
-    public static class RunningStat {
-        private double oldMean, newMean, oldStdDev, newStdDev;
-        private long recordCount = 0;
-
-        /**
-         * @param x the value to add to the running mean and variance
-         */
-        public void push(double x) {
-            recordCount++;
-            // See Knuth TAOCP vol 2, 3rd edition, page 232
-            if (recordCount == 1) {
-                oldMean = newMean = x;
-                oldStdDev = 0.0;
-            } else {
-                newMean = oldMean + (x - oldMean) / recordCount;
-                newStdDev = oldStdDev + (x - oldMean) * (x - newMean);
-
-                // set up for next iteration
-                oldMean = newMean;
-                oldStdDev = newStdDev;
-            }
-        }
-
-        public void clear() { recordCount = 0; }
-        public final long numDataValues() { return recordCount; }
-        public final double mean() { return (recordCount > 0) ? newMean : 0.0; }
-        public double variance() { return ((recordCount > 1) ? newStdDev / (recordCount - 1) : 0.0); }
-        public double standardDeviation() { return Math.sqrt(variance()); }
-    }
-
-}
diff --git a/src/java/org/broad/tribble/util/ParsingUtils.java b/src/java/org/broad/tribble/util/ParsingUtils.java
deleted file mode 100644
index 25bc9ce..0000000
--- a/src/java/org/broad/tribble/util/ParsingUtils.java
+++ /dev/null
@@ -1,447 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package org.broad.tribble.util;
-
-import net.sf.samtools.util.HttpUtils;
-
-import java.awt.*;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.lang.reflect.Constructor;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.*;
-import java.util.List;
-
-/**
- * @author jrobinso
- */
-public class ParsingUtils {
-
-    public static Map<Object, Color> colorCache = new WeakHashMap<Object, Color>(100);
-
-    // HTML 4.1 color table,  + orange and magenta
-    static Map<String, String> colorSymbols = new HashMap();
-
-    private static final Class defaultUrlHelperClass = RemoteURLHelper.class;
-    public static Class urlHelperClass = defaultUrlHelperClass;
-
-    static {
-        colorSymbols.put("white", "FFFFFF");
-        colorSymbols.put("silver", "C0C0C0");
-        colorSymbols.put("gray", "808080");
-        colorSymbols.put("black", "000000");
-        colorSymbols.put("red", "FF0000");
-        colorSymbols.put("maroon", "800000");
-        colorSymbols.put("yellow", "FFFF00");
-        colorSymbols.put("olive", "808000");
-        colorSymbols.put("lime", "00FF00");
-        colorSymbols.put("green", "008000");
-        colorSymbols.put("aqua", "00FFFF");
-        colorSymbols.put("teal", "008080");
-        colorSymbols.put("blue", "0000FF");
-        colorSymbols.put("navy", "000080");
-        colorSymbols.put("fuchsia", "FF00FF");
-        colorSymbols.put("purple", "800080");
-        colorSymbols.put("orange", "FFA500");
-        colorSymbols.put("magenta", "FF00FF");
-    }
-
-
-    public static InputStream openInputStream(String path)
-            throws IOException {
-
-        InputStream inputStream;
-
-        if (path.startsWith("http:") || path.startsWith("https:") || path.startsWith("ftp:")) {
-            inputStream = getURLHelper(new URL(path)).openInputStream();
-        } else {
-            File file = new File(path);
-            inputStream = new FileInputStream(file);
-        }
-
-        return inputStream;
-    }
-
-    //public static String join(String separator, Collection<String> strings) {
-    //    return join( separator, strings.toArray(new String[0]) );
-    //}
-
-    public static <T> String join(String separator, Collection<T> objects) {
-        if (objects.isEmpty()) {
-            return "";
-        }
-        Iterator<T> iter = objects.iterator();
-        final StringBuilder ret = new StringBuilder(iter.next().toString());
-        while (iter.hasNext()) {
-            ret.append(separator);
-            ret.append(iter.next().toString());
-        }
-
-        return ret.toString();
-    }
-
-    /**
-     * a small utility function for sorting a list
-     *
-     * @param list
-     * @param <T>
-     * @return
-     */
-    public static <T extends Comparable> List<T> sortList(Collection<T> list) {
-        ArrayList<T> ret = new ArrayList<T>();
-        ret.addAll(list);
-        Collections.sort(ret);
-        return ret;
-    }
-
-    public static <T extends Comparable<T>, V> String sortedString(Map<T, V> c) {
-        List<T> t = new ArrayList<T>(c.keySet());
-        Collections.sort(t);
-
-        List<String> pairs = new ArrayList<String>();
-        for (T k : t) {
-            pairs.add(k + "=" + c.get(k));
-        }
-
-        return "{" + ParsingUtils.join(", ", pairs.toArray(new String[pairs.size()])) + "}";
-    }
-
-    /**
-     * join an array of strings given a seperator
-     *
-     * @param separator the string to insert between each array element
-     * @param strings   the array of strings
-     * @return a string, which is the joining of all array values with the separator
-     */
-    public static String join(String separator, String[] strings) {
-        return join(separator, strings, 0, strings.length);
-    }
-
-    /**
-     * join a set of strings, using the separator provided, from index start to index stop
-     *
-     * @param separator the separator to use
-     * @param strings   the list of strings
-     * @param start     the start position (index in the list)0
-     * @param end       the end position (index in the list)
-     * @return a joined string, or "" if end - start == 0
-     */
-    public static String join(String separator, String[] strings, int start, int end) {
-        if ((end - start) == 0) {
-            return "";
-        }
-        StringBuilder ret = new StringBuilder(strings[start]);
-        for (int i = start + 1; i < end; ++i) {
-            ret.append(separator);
-            ret.append(strings[i]);
-        }
-        return ret.toString();
-    }
-
-
-    /**
-     * Split the string into tokesn separated by the given delimiter.  Profiling has
-     * revealed that the standard string.split() method typically takes > 1/2
-     * the total time when used for parsing ascii files.
-     *
-     * @param aString the string to split
-     * @param tokens  an array to hold the parsed tokens
-     * @param delim   character that delimits tokens
-     * @return the number of tokens parsed
-     */
-    public static int split(String aString, String[] tokens, char delim) {
-        return split(aString, tokens, delim, false);
-    }
-
-    /**
-     * Split the string into tokens separated by the given delimiter.  Profiling has
-     * revealed that the standard string.split() method typically takes > 1/2
-     * the total time when used for parsing ascii files.
-     *
-     * @param aString                the string to split
-     * @param tokens                 an array to hold the parsed tokens
-     * @param delim                  character that delimits tokens
-     * @param condenseTrailingTokens if true and there are more tokens than will fit in the tokens array,
-     *                               condense all trailing tokens into the last token
-     * @return the number of tokens parsed
-     */
-    public static int split(String aString, String[] tokens, char delim, boolean condenseTrailingTokens) {
-
-        int maxTokens = tokens.length;
-        int nTokens = 0;
-        int start = 0;
-        int end = aString.indexOf(delim);
-
-        if (end == 0) {
-            if (aString.length() > 1) {
-                start = 1;
-                end = aString.indexOf(delim, start);
-            } else {
-                return 0;
-            }
-        }
-
-        if (end < 0) {
-            tokens[nTokens++] = aString;
-            return nTokens;
-        }
-
-        while ((end > 0) && (nTokens < maxTokens)) {
-            tokens[nTokens++] = aString.substring(start, end);
-            start = end + 1;
-            end = aString.indexOf(delim, start);
-        }
-
-        // condense if appropriate
-        if (condenseTrailingTokens && nTokens == maxTokens) {
-            tokens[nTokens - 1] = tokens[nTokens - 1] + delim + aString.substring(start);
-        }
-        // Add the trailing string
-        else if (nTokens < maxTokens) {
-            String trailingString = aString.substring(start);
-            tokens[nTokens++] = trailingString;
-        }
-
-        return nTokens;
-    }
-
-
-    // trim a string for the given character (i.e. not just whitespace)
-
-    public static String trim(String str, char ch) {
-        char[] array = str.toCharArray();
-        int start = 0;
-        while (start < array.length && array[start] == ch)
-            start++;
-
-        int end = array.length - 1;
-        while (end > start && array[end] == ch)
-            end--;
-
-        return str.substring(start, end + 1);
-    }
-
-
-    /**
-     * Split the string into tokens separated by tab or space(s).  This method
-     * was added so support wig and bed files, which apparently accept space delimiters.
-     * <p/>
-     * Note:  TODO REGEX expressions are not used for speed.  This should be re-evaluated with JDK 1.5 or later
-     *
-     * @param aString the string to split
-     * @param tokens  an array to hold the parsed tokens
-     * @return the number of tokens parsed
-     */
-    public static int splitWhitespace(String aString, String[] tokens) {
-
-        int maxTokens = tokens.length;
-        int nTokens = 0;
-        int start = 0;
-        int tabEnd = aString.indexOf('\t');
-        int spaceEnd = aString.indexOf(' ');
-        int end = tabEnd < 0 ? spaceEnd : spaceEnd < 0 ? tabEnd : Math.min(spaceEnd, tabEnd);
-        while ((end > 0) && (nTokens < maxTokens)) {
-            //tokens[nTokens++] = new String(aString.toCharArray(), start, end-start); //  aString.substring(start, end);
-            tokens[nTokens++] = aString.substring(start, end);
-
-            start = end + 1;
-            // Gobble up any whitespace before next token -- don't gobble tabs, consecutive tabs => empty cell
-            while (start < aString.length() && aString.charAt(start) == ' ') {
-                start++;
-            }
-
-            tabEnd = aString.indexOf('\t', start);
-            spaceEnd = aString.indexOf(' ', start);
-            end = tabEnd < 0 ? spaceEnd : spaceEnd < 0 ? tabEnd : Math.min(spaceEnd, tabEnd);
-
-        }
-
-        // Add the trailing string
-        if (nTokens < maxTokens) {
-            String trailingString = aString.substring(start);
-            tokens[nTokens++] = trailingString;
-        }
-        return nTokens;
-    }
-
-    public static <T extends Comparable<? super T>> boolean isSorted(Iterable<T> iterable) {
-        Iterator<T> iter = iterable.iterator();
-        if (!iter.hasNext())
-            return true;
-
-        T t = iter.next();
-        while (iter.hasNext()) {
-            T t2 = iter.next();
-            if (t.compareTo(t2) > 0)
-                return false;
-
-            t = t2;
-        }
-
-        return true;
-    }
-
-    /**
-     * Convert an rgb string, hex, or symbol to a color.
-     *
-     * @param string
-     * @return
-     */
-    public static Color parseColor(String string) {
-        try {
-            Color c = colorCache.get(string);
-            if (c == null) {
-                if (string.contains(",")) {
-                    String[] rgb = string.split(",");
-                    int red = Integer.parseInt(rgb[0]);
-                    int green = Integer.parseInt(rgb[1]);
-                    int blue = Integer.parseInt(rgb[2]);
-                    c = new Color(red, green, blue);
-                } else if (string.startsWith("#")) {
-                    c = hexToColor(string.substring(1));
-                } else {
-                    String hexString = colorSymbols.get(string.toLowerCase());
-                    if (hexString != null) {
-                        c = hexToColor(hexString);
-                    }
-                }
-
-                if (c == null) {
-                    c = Color.black;
-                }
-                colorCache.put(string, c);
-            }
-            return c;
-
-        } catch (NumberFormatException numberFormatException) {
-            //TODO Throw this exception?
-            return Color.black;
-        }
-    }
-
-
-    private static Color hexToColor(String string) {
-        if (string.length() == 6) {
-            int red = Integer.parseInt(string.substring(0, 2), 16);
-            int green = Integer.parseInt(string.substring(2, 4), 16);
-            int blue = Integer.parseInt(string.substring(4, 6), 16);
-            return new Color(red, green, blue);
-        } else {
-            return null;
-        }
-
-    }
-
-    public static boolean resourceExists(String resource) throws IOException{
-
-        boolean remoteFile = resource.startsWith("http://") || resource.startsWith("https://") || resource.startsWith("ftp://");
-        if (remoteFile) {
-            URL url = null;
-            try {
-                url = new URL(resource);
-            } catch (MalformedURLException e) {
-                // Malformed URLs by definition don't exist
-                return false;
-            }
-            URLHelper helper = getURLHelper(url);
-            return helper.exists();
-        } else {
-            return (new File(resource)).exists();
-        }
-    }
-
-    /**
-     * Return the registered URLHelper, constructed with the provided URL
-     * @see #registerHelperClass(Class)
-     * @param url
-     * @return
-     */
-    public static URLHelper getURLHelper(URL url) {
-        try {
-            return getURLHelper(urlHelperClass, url);
-        } catch (Exception e) {
-            return getURLHelper(defaultUrlHelperClass, url);
-        }
-    }
-
-    private static URLHelper getURLHelper(Class helperClass, URL url) {
-        try {
-            Constructor constr = helperClass.getConstructor(URL.class);
-            return (URLHelper) constr.newInstance(url);
-        } catch (Exception e) {
-            String errMsg = "Error instantiating url helper for class: " + helperClass;
-            throw new IllegalStateException(errMsg, e);
-        }
-    }
-
-    /**
-     * Register a {@code URLHelper} class to be used for URL operations. The helper
-     * may be used for both FTP and HTTP operations, so if any FTP URLs are used
-     * the {@code URLHelper} must support it.
-     *
-     * The default helper class is {@link RemoteURLHelper}, which delegates to FTP/HTTP
-     * helpers as appropriate.
-     *
-     * @see URLHelper
-     * @param helperClass Class which implements {@link URLHelper}, and have a constructor
-     *                    which takes a URL as it's only argument.
-     */
-    public static void registerHelperClass(Class helperClass) {
-        if (!URLHelper.class.isAssignableFrom(helperClass)) {
-            throw new IllegalArgumentException("helperClass must implement URLHelper");
-            //TODO check that it has 1 arg constructor of proper type
-        }
-        urlHelperClass = helperClass;
-    }
-
-    /**
-     * Add the {@code indexExtension} to the {@code filepath}, preserving
-     * query string elements if present. Intended for use where {@code filepath}
-     * is a URL. Will behave correctly on regular file paths (just add the extension
-     * to the end)
-     * @param filepath
-     * @param indexExtension
-     * @return
-     */
-    public static String appendToPath(String filepath, String indexExtension) {
-        String tabxIndex = null;
-        URL url = null;
-        try{
-            url = new URL(filepath);
-        }catch (MalformedURLException e){
-            //pass
-        }
-        if (url != null) {
-            String path = url.getPath();
-            String indexPath = path + indexExtension;
-            tabxIndex = filepath.replace(path, indexPath);
-        } else {
-            tabxIndex = filepath + indexExtension;
-        }
-        return tabxIndex;
-    }
-}
diff --git a/src/java/org/broad/tribble/util/RemoteURLHelper.java b/src/java/org/broad/tribble/util/RemoteURLHelper.java
deleted file mode 100644
index 7f24ce6..0000000
--- a/src/java/org/broad/tribble/util/RemoteURLHelper.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package org.broad.tribble.util;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-
-/**
- * Implementation of URLHelper designed for remote resources.
- * Determines appropriate helper based on protocol (ftp/http),
- * and then delegates.
- *
- * @author jacob
- * @date 2013-Apr-11
- */
-public class RemoteURLHelper implements URLHelper {
-
-    private URLHelper wrappedHelper;
-
-    public RemoteURLHelper(URL url){
-        String protocol = url.getProtocol().toLowerCase();
-        if(protocol.startsWith("http")){
-            this.wrappedHelper = new HTTPHelper(url);
-        }else if(protocol.startsWith("ftp")){
-            this.wrappedHelper = new FTPHelper(url);
-        }else{
-            throw new IllegalArgumentException("Unable to create helper for url with protocol " + protocol);
-        }
-    }
-
-    @Override
-    public URL getUrl() {
-        return this.wrappedHelper.getUrl();
-    }
-
-    @Override
-    public long getContentLength() throws IOException {
-        return this.wrappedHelper.getContentLength();
-    }
-
-    @Override
-    public InputStream openInputStream() throws IOException {
-        return this.wrappedHelper.openInputStream();
-    }
-
-    @Override
-    public InputStream openInputStreamForRange(long start, long end) throws IOException {
-        return this.wrappedHelper.openInputStreamForRange(start, end);
-    }
-
-    @Override
-    public boolean exists() throws IOException {
-        return this.wrappedHelper.exists();
-    }
-}
diff --git a/src/java/org/broad/tribble/util/TabixUtils.java b/src/java/org/broad/tribble/util/TabixUtils.java
deleted file mode 100644
index 07cae06..0000000
--- a/src/java/org/broad/tribble/util/TabixUtils.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package org.broad.tribble.util;
-
-
-import net.sf.samtools.SAMSequenceDictionary;
-import net.sf.samtools.SAMSequenceRecord;
-import net.sf.samtools.util.BlockCompressedInputStream;
-import org.broad.tribble.TribbleException;
-import org.broad.tribble.readers.TabixReader;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-/**
- * classes that have anything to do with tabix
- */
-public class TabixUtils {
-
-    public static final String STANDARD_INDEX_EXTENSION = ".tbi";
-
-    public static class TPair64 implements Comparable<TPair64> {
-        public long u, v;
-
-        public TPair64(final long _u, final long _v) {
-            u = _u;
-            v = _v;
-        }
-
-        public TPair64(final TPair64 p) {
-            u = p.u;
-            v = p.v;
-        }
-
-        public int compareTo(final TPair64 p) {
-            return u == p.u ? 0 : ((u < p.u) ^ (u < 0) ^ (p.u < 0)) ? -1 : 1; // unsigned 64-bit comparison
-        }
-    }
-
-    public static class TIndex {
-        public HashMap<Integer, TPair64[]> b; // binning index
-        public long[] l; // linear index
-    }
-
-
-    public static class TIntv {
-        public int tid, beg, end;
-    }
-
-
-    public static boolean less64(final long u, final long v) { // unsigned 64-bit comparison
-        return (u < v) ^ (u < 0) ^ (v < 0);
-    }
-
-    /**
-     * Generates the SAMSequenceDictionary from the given tabix index file
-     *
-     * @param tabixIndex the tabix index file
-     * @return non-null sequence dictionary
-     */
-    public static SAMSequenceDictionary getSequenceDictionary(final File tabixIndex) {
-        if (tabixIndex == null) throw new IllegalArgumentException();
-
-        try {
-            final BlockCompressedInputStream is = new BlockCompressedInputStream(tabixIndex);
-
-            // read preliminary bytes
-            byte[] buf = new byte[32];
-            is.read(buf, 0, 32);
-
-            // read sequence dictionary
-            int i, j, len = TabixReader.readInt(is);
-            buf = new byte[len];
-            is.read(buf);
-
-            final List<SAMSequenceRecord> sequences = new ArrayList<SAMSequenceRecord>();
-            for (i = j = 0; i < buf.length; ++i) {
-                if (buf[i] == 0) {
-                    byte[] b = new byte[i - j];
-                    System.arraycopy(buf, j, b, 0, b.length);
-                    sequences.add(new SAMSequenceRecord(new String(b)));
-                    j = i + 1;
-                }
-            }
-            is.close();
-
-            return new SAMSequenceDictionary(sequences);
-        } catch (Exception e) {
-            throw new TribbleException("Unable to read tabix index: " + e.getMessage());
-        }
-    }
-}
diff --git a/src/java/org/broad/tribble/util/URLHelper.java b/src/java/org/broad/tribble/util/URLHelper.java
deleted file mode 100644
index dfaa4b1..0000000
--- a/src/java/org/broad/tribble/util/URLHelper.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright (c) 2007-2011 by The Broad Institute of MIT and Harvard.  All Rights Reserved.
- *
- * This software is licensed under the terms of the GNU Lesser General Public License (LGPL),
- * Version 2.1 which is available at http://www.opensource.org/licenses/lgpl-2.1.php.
- *
- * THE SOFTWARE IS PROVIDED "AS IS." THE BROAD AND MIT MAKE NO REPRESENTATIONS OR
- * WARRANTES OF ANY KIND CONCERNING THE SOFTWARE, EXPRESS OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
- * PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, WHETHER
- * OR NOT DISCOVERABLE.  IN NO EVENT SHALL THE BROAD OR MIT, OR THEIR RESPECTIVE
- * TRUSTEES, DIRECTORS, OFFICERS, EMPLOYEES, AND AFFILIATES BE LIABLE FOR ANY DAMAGES
- * OF ANY KIND, INCLUDING, WITHOUT LIMITATION, INCIDENTAL OR CONSEQUENTIAL DAMAGES,
- * ECONOMIC DAMAGES OR INJURY TO PROPERTY AND LOST PROFITS, REGARDLESS OF WHETHER
- * THE BROAD OR MIT SHALL BE ADVISED, SHALL HAVE OTHER REASON TO KNOW, OR IN FACT
- * SHALL KNOW OF THE POSSIBILITY OF THE FOREGOING.
- */
-
-package org.broad.tribble.util;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-
-/**
- * Interface defining a helper class for dealing with URL resources.  Purpose of this class is to provide the
- * flexibility to use either URLConnection or Apache HTTPClient. Also want to delegate to either HTTP or FTP
- *
- * @see HTTPHelper
- * @see FTPHelper
- * @author jrobinso
- * @date Jun 28, 2011
- */
-public interface URLHelper {
-
-    URL getUrl();
-
-    long getContentLength() throws IOException;
-
-    InputStream openInputStream() throws IOException;
-
-    /**
-     * May throw an OperationUnsupportedException
-     * @deprecated Will be removed in a future release, as is somewhat fragile
-     * and not used.
-     * @param start
-     * @param end
-     * @return
-     * @throws IOException
-     */
-    @Deprecated
-    InputStream openInputStreamForRange(long start, long end) throws IOException;
-
-    public boolean exists() throws IOException;
-
-}
diff --git a/src/java/org/broad/tribble/util/popgen/HardyWeinbergCalculation.java b/src/java/org/broad/tribble/util/popgen/HardyWeinbergCalculation.java
deleted file mode 100755
index a756d94..0000000
--- a/src/java/org/broad/tribble/util/popgen/HardyWeinbergCalculation.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person
- * obtaining a copy of this software and associated documentation
- * files (the "Software"), to deal in the Software without
- * restriction, including without limitation the rights to use,
- * copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following
- * conditions:
- *
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- */
-
-package org.broad.tribble.util.popgen;
-
-/**
-* The Broad Institute
-* SOFTWARE COPYRIGHT NOTICE AGREEMENT
-* This software and its documentation are copyright 2004 by the
-* Broad Institute/Massachusetts Institute of Technology. All rights are reserved.
-*
-* This software is supplied without any warranty or guaranteed support whatsoever. Neither
-* the Broad Institute nor MIT can be responsible for its use, misuse, or functionality.
-*/
-
-/**
-* This class calculates a HardyWeinberg p-value given three values representing
-* the observed frequences of homozygous and heterozygous genotypes in the
-* test population.
-*
-* @author Bob Handsaker
-*/
-public final class HardyWeinbergCalculation {
-   /**
-    * This class is not instantiable.
-    */
-   private HardyWeinbergCalculation() {
-   }
-
-   /**
-    * Calculates exact two-sided hardy-weinberg p-value. Parameters
-    * are number of genotypes, number of rare alleles observed and
-    * number of heterozygotes observed.
-    *
-    * (c) 2003 Jan Wigginton, Goncalo Abecasis (goncalo at umich.edu)
-    */
-   public static double hwCalculate(int obsAA, int obsAB, int obsBB) {
-       int diplotypes = obsAA + obsAB + obsBB;
-       int rare = (obsAA * 2) + obsAB;
-       int hets = obsAB;
-
-       //make sure "rare" allele is really the rare allele
-       if (rare > diplotypes) {
-           rare = (2 * diplotypes) - rare;
-       }
-
-       //make sure numbers aren't screwy
-       if (hets > rare) {
-           return -1;
-       }
-
-       double[] tailProbs = new double[rare + 1];
-
-       for (int z = 0; z < tailProbs.length; z++) {
-           tailProbs[z] = 0;
-       }
-
-       //start at midpoint
-       int mid = (rare * ((2 * diplotypes) - rare)) / (2 * diplotypes);
-
-       //check to ensure that midpoint and rare alleles have same parity
-       if (((rare & 1) ^ (mid & 1)) != 0) {
-           mid++;
-       }
-
-       int het = mid;
-       int hom_r = (rare - mid) / 2;
-       int hom_c = diplotypes - het - hom_r;
-
-       //Calculate probability for each possible observed heterozygote
-       //count up to a scaling constant, to avoid underflow and overflow
-       tailProbs[mid] = 1.0;
-
-       double sum = tailProbs[mid];
-
-       for (het = mid; het > 1; het -= 2) {
-           tailProbs[het - 2] = (tailProbs[het] * het * (het - 1.0)) / (4.0 * (hom_r + 1.0) * (hom_c +
-               1.0));
-           sum += tailProbs[het - 2];
-
-           //2 fewer hets for next iteration -> add one rare and one common homozygote
-           hom_r++;
-           hom_c++;
-       }
-
-       het = mid;
-       hom_r = (rare - mid) / 2;
-       hom_c = diplotypes - het - hom_r;
-
-       for (het = mid; het <= (rare - 2); het += 2) {
-           tailProbs[het + 2] = (tailProbs[het] * 4.0 * hom_r * hom_c) / ((het + 2.0) * (het +
-               1.0));
-           sum += tailProbs[het + 2];
-
-           //2 more hets for next iteration -> subtract one rare and one common homozygote
-           hom_r--;
-           hom_c--;
-       }
-
-       for (int z = 0; z < tailProbs.length; z++) {
-           tailProbs[z] /= sum;
-       }
-
-       double top = tailProbs[hets];
-
-       for (int i = hets + 1; i <= rare; i++) {
-           top += tailProbs[i];
-       }
-
-       double otherSide = tailProbs[hets];
-
-       for (int i = hets - 1; i >= 0; i--) {
-           otherSide += tailProbs[i];
-       }
-
-       if ((top > 0.5) && (otherSide > 0.5)) {
-           return 1.0;
-       }
-
-       if (top < otherSide) {
-           return top * 2;
-       }
-
-       return otherSide * 2;
-   }
-}
\ No newline at end of file
diff --git a/src/java/org/broadinstitute/variant/bcf2/BCF2Codec.java b/src/java/org/broadinstitute/variant/bcf2/BCF2Codec.java
deleted file mode 100644
index 63ca54c..0000000
--- a/src/java/org/broadinstitute/variant/bcf2/BCF2Codec.java
+++ /dev/null
@@ -1,501 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.bcf2;
-
-import com.google.java.contract.Ensures;
-import com.google.java.contract.Requires;
-import org.broad.tribble.BinaryFeatureCodec;
-import org.broad.tribble.Feature;
-import org.broad.tribble.FeatureCodecHeader;
-import org.broad.tribble.TribbleException;
-import org.broad.tribble.readers.LineIterator;
-import org.broad.tribble.readers.LineIteratorImpl;
-import org.broad.tribble.readers.LineReaderUtil;
-import org.broad.tribble.readers.PositionalBufferedStream;
-import org.broadinstitute.variant.utils.GeneralUtils;
-import org.broadinstitute.variant.variantcontext.*;
-import org.broadinstitute.variant.vcf.*;
-
-import java.io.ByteArrayInputStream;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Decode BCF2 files
- */
-public final class BCF2Codec extends BinaryFeatureCodec<VariantContext> {
-    private final static int ALLOWED_MAJOR_VERSION = 2;
-    private final static int MIN_MINOR_VERSION = 1;
-
-    private BCFVersion bcfVersion = null;
-
-    private VCFHeader header = null;
-
-    /**
-     * Maps offsets (encoded in BCF) into contig names (from header) for the CHROM field
-     */
-    private final ArrayList<String> contigNames = new ArrayList<String>();
-
-    /**
-     * Maps header string names (encoded in VCF) into strings found in the BCF header
-     *
-     * Initialized when processing the header
-     */
-    private ArrayList<String> dictionary;
-
-    /**
-     * Our decoder that reads low-level objects from the BCF2 records
-     */
-    private final BCF2Decoder decoder = new BCF2Decoder();
-
-    /**
-     * Provides some sanity checking on the header
-     */
-    private final static int MAX_HEADER_SIZE = 0x08000000;
-
-    /**
-     * Genotype field decoders that are initialized when the header is read
-     */
-    private BCF2GenotypeFieldDecoders gtFieldDecoders = null;
-
-    /**
-     * A cached array of GenotypeBuilders for efficient genotype decoding.
-     *
-     * Caching it allows us to avoid recreating this intermediate data
-     * structure each time we decode genotypes
-     */
-    private GenotypeBuilder[] builders = null;
-
-    // for error handling
-    private int recordNo = 0;
-    private int pos = 0;
-
-
-    // ----------------------------------------------------------------------
-    //
-    // Feature codec interface functions
-    //
-    // ----------------------------------------------------------------------
-
-    @Override
-    public Feature decodeLoc( final PositionalBufferedStream inputStream ) {
-        return decode(inputStream);
-    }
-
-    @Override
-    public VariantContext decode( final PositionalBufferedStream inputStream ) {
-        try {
-            recordNo++;
-            final VariantContextBuilder builder = new VariantContextBuilder();
-
-            final int sitesBlockSize = decoder.readBlockSize(inputStream);
-            final int genotypeBlockSize = decoder.readBlockSize(inputStream);
-
-            decoder.readNextBlock(sitesBlockSize, inputStream);
-            decodeSiteLoc(builder);
-            final SitesInfoForDecoding info = decodeSitesExtendedInfo(builder);
-
-            decoder.readNextBlock(genotypeBlockSize, inputStream);
-            createLazyGenotypesDecoder(info, builder);
-            return builder.fullyDecoded(true).make();
-        } catch ( IOException e ) {
-            throw new TribbleException("Failed to read BCF file", e);
-        }
-    }
-
-    @Override
-    public Class<VariantContext> getFeatureType() {
-        return VariantContext.class;
-    }
-
-    @Override
-    public FeatureCodecHeader readHeader( final PositionalBufferedStream inputStream ) {
-        try {
-            // note that this reads the magic as well, and so does double duty
-            bcfVersion = BCFVersion.readBCFVersion(inputStream);
-            if ( bcfVersion == null )
-                error("Input stream does not contain a BCF encoded file; BCF magic header info not found");
-
-            if ( bcfVersion.getMajorVersion() != ALLOWED_MAJOR_VERSION )
-                error("BCF2Codec can only process BCF2 files, this file has major version " + bcfVersion.getMajorVersion());
-            if ( bcfVersion.getMinorVersion() < MIN_MINOR_VERSION )
-                error("BCF2Codec can only process BCF2 files with minor version >= " + MIN_MINOR_VERSION + " but this file has minor version " + bcfVersion.getMinorVersion());
-
-            if ( GeneralUtils.DEBUG_MODE_ENABLED ) {
-                System.err.println("Parsing data stream with BCF version " + bcfVersion);
-            }
-
-            final int headerSizeInBytes = BCF2Type.INT32.read(inputStream);
-
-            if ( headerSizeInBytes <= 0 || headerSizeInBytes > MAX_HEADER_SIZE) // no bigger than 8 MB
-                error("BCF2 header has invalid length: " + headerSizeInBytes + " must be >= 0 and < "+ MAX_HEADER_SIZE);
-
-            final byte[] headerBytes = new byte[headerSizeInBytes];
-            if ( inputStream.read(headerBytes) != headerSizeInBytes )
-                error("Couldn't read all of the bytes specified in the header length = " + headerSizeInBytes);
-
-            final PositionalBufferedStream bps = new PositionalBufferedStream(new ByteArrayInputStream(headerBytes));
-            final LineIterator lineIterator = new LineIteratorImpl(LineReaderUtil.fromBufferedStream(bps, LineReaderUtil.LineReaderOption.SYNCHRONOUS));
-            final VCFCodec headerParser = new VCFCodec();
-            this.header = (VCFHeader) headerParser.readActualHeader(lineIterator);
-            bps.close();
-        } catch ( IOException e ) {
-            throw new TribbleException("I/O error while reading BCF2 header");
-        }
-
-        // create the config offsets
-        if ( ! header.getContigLines().isEmpty() ) {
-            contigNames.clear();
-            for ( final VCFContigHeaderLine contig : header.getContigLines()) {
-                if ( contig.getID() == null || contig.getID().equals("") )
-                    error("found a contig with an invalid ID " + contig);
-                contigNames.add(contig.getID());
-            }
-        } else {
-            error("Didn't find any contig lines in BCF2 file header");
-        }
-
-        // create the string dictionary
-        dictionary = parseDictionary(header);
-
-        // prepare the genotype field decoders
-        gtFieldDecoders = new BCF2GenotypeFieldDecoders(header);
-
-        // create and initialize the genotype builder array
-        final int nSamples = header.getNGenotypeSamples();
-        builders = new GenotypeBuilder[nSamples];
-        for ( int i = 0; i < nSamples; i++ ) {
-            builders[i] = new GenotypeBuilder(header.getGenotypeSamples().get(i));
-        }
-
-        // position right before next line (would be right before first real record byte at end of header)
-        return new FeatureCodecHeader(header, inputStream.getPosition());
-    }
-
-    @Override
-    public boolean canDecode( final String path ) {
-        FileInputStream fis = null;
-        try {
-            fis = new FileInputStream(path);
-            final BCFVersion version = BCFVersion.readBCFVersion(fis);
-            return version != null && version.getMajorVersion() == ALLOWED_MAJOR_VERSION;
-        } catch ( FileNotFoundException e ) {
-            return false;
-        } catch ( IOException e ) {
-            return false;
-        } finally {
-            try {
-                if ( fis != null ) fis.close();
-            } catch ( IOException e ) {
-                // do nothing
-            }
-        }
-    }
-
-    // --------------------------------------------------------------------------------
-    //
-    // implicit block
-    //
-    // The first four records of BCF are inline untype encoded data of:
-    //
-    // 4 byte integer chrom offset
-    // 4 byte integer start
-    // 4 byte integer ref length
-    // 4 byte float qual
-    //
-    // --------------------------------------------------------------------------------
-
-    /**
-     * Decode the sites level data from this classes decoder
-     *
-     * @param builder
-     * @return
-     */
-    @Requires({"builder != null"})
-    private final void decodeSiteLoc(final VariantContextBuilder builder) throws IOException {
-        final int contigOffset = decoder.decodeInt(BCF2Type.INT32);
-        final String contig = lookupContigName(contigOffset);
-        builder.chr(contig);
-
-        this.pos = decoder.decodeInt(BCF2Type.INT32) + 1; // GATK is one based, BCF2 is zero-based
-        final int refLength = decoder.decodeInt(BCF2Type.INT32);
-        builder.start((long)pos);
-        builder.stop((long)(pos + refLength - 1)); // minus one because GATK has closed intervals but BCF2 is open
-    }
-
-    /**
-     * Decode the sites level data from this classes decoder
-     *
-     * @param builder
-     * @return
-     */
-    @Requires({"builder != null", "decoder != null"})
-    @Ensures({"result != null", "result.isValid()"})
-    private final SitesInfoForDecoding decodeSitesExtendedInfo(final VariantContextBuilder builder) throws IOException {
-        final Object qual = decoder.decodeSingleValue(BCF2Type.FLOAT);
-        if ( qual != null ) {
-            builder.log10PError(((Double)qual) / -10.0);
-        }
-
-        final int nAlleleInfo = decoder.decodeInt(BCF2Type.INT32);
-        final int nFormatSamples = decoder.decodeInt(BCF2Type.INT32);
-        final int nAlleles = nAlleleInfo >> 16;
-        final int nInfo = nAlleleInfo & 0x0000FFFF;
-        final int nFormatFields = nFormatSamples >> 24;
-        final int nSamples = nFormatSamples & 0x00FFFFF;
-
-        if ( header.getNGenotypeSamples() != nSamples )
-            error("Reading BCF2 files with different numbers of samples per record " +
-                    "is not currently supported.  Saw " + header.getNGenotypeSamples() +
-                    " samples in header but have a record with " + nSamples + " samples");
-
-        decodeID(builder);
-        final List<Allele> alleles = decodeAlleles(builder, pos, nAlleles);
-        decodeFilter(builder);
-        decodeInfo(builder, nInfo);
-
-        final SitesInfoForDecoding info = new SitesInfoForDecoding(nFormatFields, nSamples, alleles);
-        if ( ! info.isValid() )
-            error("Sites info is malformed: " + info);
-        return info;
-    }
-
-    protected final static class SitesInfoForDecoding {
-        final int nFormatFields;
-        final int nSamples;
-        final List<Allele> alleles;
-
-        private SitesInfoForDecoding(final int nFormatFields, final int nSamples, final List<Allele> alleles) {
-            this.nFormatFields = nFormatFields;
-            this.nSamples = nSamples;
-            this.alleles = alleles;
-        }
-
-        public boolean isValid() {
-            return nFormatFields >= 0 &&
-                    nSamples >= 0 &&
-                    alleles != null && ! alleles.isEmpty() && alleles.get(0).isReference();
-        }
-
-        @Override
-        public String toString() {
-            return String.format("nFormatFields = %d, nSamples = %d, alleles = %s", nFormatFields, nSamples, alleles);
-        }
-    }
-
-    /**
-     * Decode the id field in this BCF2 file and store it in the builder
-     * @param builder
-     */
-    private void decodeID( final VariantContextBuilder builder ) throws IOException {
-        final String id = (String)decoder.decodeTypedValue();
-
-        if ( id == null )
-            builder.noID();
-        else
-            builder.id(id);
-    }
-
-    /**
-     * Decode the alleles from this BCF2 file and put the results in builder
-     * @param builder
-     * @param pos
-     * @param nAlleles
-     * @return the alleles
-     */
-    @Requires("nAlleles > 0")
-    private List<Allele> decodeAlleles( final VariantContextBuilder builder, final int pos, final int nAlleles ) throws IOException {
-        // TODO -- probably need inline decoder for efficiency here (no sense in going bytes -> string -> vector -> bytes
-        List<Allele> alleles = new ArrayList<Allele>(nAlleles);
-        String ref = null;
-
-        for ( int i = 0; i < nAlleles; i++ ) {
-            final String alleleBases = (String)decoder.decodeTypedValue();
-
-            final boolean isRef = i == 0;
-            final Allele allele = Allele.create(alleleBases, isRef);
-            if ( isRef ) ref = alleleBases;
-
-            alleles.add(allele);
-        }
-        assert ref != null;
-
-        builder.alleles(alleles);
-
-        assert ref.length() > 0;
-
-        return alleles;
-    }
-
-    /**
-     * Decode the filter field of this BCF2 file and store the result in the builder
-     * @param builder
-     */
-    private void decodeFilter( final VariantContextBuilder builder ) throws IOException {
-        final Object value = decoder.decodeTypedValue();
-
-        if ( value == null )
-            builder.unfiltered();
-        else {
-            if ( value instanceof Integer ) {
-                // fast path for single integer result
-                final String filterString = getDictionaryString((Integer)value);
-                if ( VCFConstants.PASSES_FILTERS_v4.equals(filterString))
-                    builder.passFilters();
-                else
-                    builder.filter(filterString);
-            } else {
-                for ( final int offset : (List<Integer>)value )
-                    builder.filter(getDictionaryString(offset));
-            }
-        }
-    }
-
-    /**
-     * Loop over the info field key / value pairs in this BCF2 file and decode them into the builder
-     *
-     * @param builder
-     * @param numInfoFields
-     */
-    @Requires("numInfoFields >= 0")
-    private void decodeInfo( final VariantContextBuilder builder, final int numInfoFields ) throws IOException {
-        if ( numInfoFields == 0 )
-            // fast path, don't bother doing any work if there are no fields
-            return;
-
-        final Map<String, Object> infoFieldEntries = new HashMap<String, Object>(numInfoFields);
-        for ( int i = 0; i < numInfoFields; i++ ) {
-            final String key = getDictionaryString();
-            Object value = decoder.decodeTypedValue();
-            final VCFCompoundHeaderLine metaData = VariantContextUtils.getMetaDataForField(header, key);
-            if ( metaData.getType() == VCFHeaderLineType.Flag ) value = true; // special case for flags
-            infoFieldEntries.put(key, value);
-        }
-
-        builder.attributes(infoFieldEntries);
-    }
-
-    // --------------------------------------------------------------------------------
-    //
-    // Decoding Genotypes
-    //
-    // --------------------------------------------------------------------------------
-
-    /**
-     * Create the lazy loader for the genotypes data, and store it in the builder
-     * so that the VC will be able to decode on demand the genotypes data
-     *
-     * @param siteInfo
-     * @param builder
-     */
-    private void createLazyGenotypesDecoder( final SitesInfoForDecoding siteInfo,
-                                             final VariantContextBuilder builder ) {
-        if (siteInfo.nSamples > 0) {
-            final LazyGenotypesContext.LazyParser lazyParser =
-                    new BCF2LazyGenotypesDecoder(this, siteInfo.alleles, siteInfo.nSamples, siteInfo.nFormatFields, builders);
-
-            final LazyData lazyData = new LazyData(header, siteInfo.nFormatFields, decoder.getRecordBytes());
-            final LazyGenotypesContext lazy = new LazyGenotypesContext(lazyParser, lazyData, header.getNGenotypeSamples());
-
-            // did we resort the sample names?  If so, we need to load the genotype data
-            if ( !header.samplesWereAlreadySorted() )
-                lazy.decode();
-
-            builder.genotypesNoValidation(lazy);
-        }
-    }
-
-    public static class LazyData {
-        final public VCFHeader header;
-        final public int nGenotypeFields;
-        final public byte[] bytes;
-
-        @Requires({"nGenotypeFields > 0", "bytes != null"})
-        public LazyData(final VCFHeader header, final int nGenotypeFields, final byte[] bytes) {
-            this.header = header;
-            this.nGenotypeFields = nGenotypeFields;
-            this.bytes = bytes;
-        }
-    }
-
-    @Ensures("result != null")
-    private final String getDictionaryString() throws IOException {
-        return getDictionaryString((Integer) decoder.decodeTypedValue());
-    }
-
-    @Requires("offset < dictionary.size()")
-    @Ensures("result != null")
-    protected final String getDictionaryString(final int offset) {
-        return dictionary.get(offset);
-    }
-
-    /**
-     * Translate the config offset as encoded in the BCF file into the actual string
-     * name of the contig from the dictionary
-     *
-     * @param contigOffset
-     * @return
-     */
-    @Requires({"contigOffset >= 0", "contigOffset < contigNames.size()"})
-    @Ensures("result != null")
-    private final String lookupContigName( final int contigOffset ) {
-        return contigNames.get(contigOffset);
-    }
-
-    @Requires("header != null")
-    @Ensures({"result != null", "! result.isEmpty()"})
-    private final ArrayList<String> parseDictionary(final VCFHeader header) {
-        final ArrayList<String> dict = BCF2Utils.makeDictionary(header);
-
-        // if we got here we never found a dictionary, or there are no elements in the dictionary
-        if ( dict.isEmpty() )
-            error("Dictionary header element was absent or empty");
-
-        return dict;
-    }
-
-    /**
-     * @return the VCFHeader we found in this BCF2 file
-     */
-    protected VCFHeader getHeader() {
-        return header;
-    }
-
-    @Requires("field != null")
-    @Ensures("result != null")
-    protected BCF2GenotypeFieldDecoders.Decoder getGenotypeFieldDecoder(final String field) {
-        return gtFieldDecoders.getDecoder(field);
-    }
-
-    private void error(final String message) throws RuntimeException {
-        throw new TribbleException(String.format("%s, at record %d with position %d:", message, recordNo, pos));
-    }
-}
diff --git a/src/java/org/broadinstitute/variant/bcf2/BCF2Decoder.java b/src/java/org/broadinstitute/variant/bcf2/BCF2Decoder.java
deleted file mode 100644
index b997070..0000000
--- a/src/java/org/broadinstitute/variant/bcf2/BCF2Decoder.java
+++ /dev/null
@@ -1,375 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.bcf2;
-
-import com.google.java.contract.Ensures;
-import com.google.java.contract.Requires;
-import org.broad.tribble.TribbleException;
-import org.broadinstitute.variant.utils.GeneralUtils;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Arrays;
-
-public final class BCF2Decoder {
-    byte[] recordBytes = null;
-    ByteArrayInputStream recordStream = null;
-
-    public BCF2Decoder() {
-        // nothing to do
-    }
-
-    /**
-     * Create a new decoder ready to read BCF2 data from the byte[] recordBytes, for testing purposes
-     *
-     * @param recordBytes
-     */
-    protected BCF2Decoder(final byte[] recordBytes) {
-        setRecordBytes(recordBytes);
-    }
-
-    // ----------------------------------------------------------------------
-    //
-    // Routines to load, set, skip blocks of underlying data we are decoding
-    //
-    // ----------------------------------------------------------------------
-
-    /**
-     * Reads the next record from input stream and prepare this decoder to decode values from it
-     *
-     * @param stream
-     * @return
-     */
-    public void readNextBlock(final int blockSizeInBytes, final InputStream stream) {
-        if ( blockSizeInBytes < 0 ) throw new TribbleException("Invalid block size " + blockSizeInBytes);
-        setRecordBytes(readRecordBytes(blockSizeInBytes, stream));
-    }
-
-    /**
-     * Skips the next record from input stream, invalidating current block data
-     *
-     * @param stream
-     * @return
-     */
-    public void skipNextBlock(final int blockSizeInBytes, final InputStream stream) {
-        try {
-            final int bytesRead = (int)stream.skip(blockSizeInBytes);
-            validateReadBytes(bytesRead, 1, blockSizeInBytes);
-        } catch ( IOException e ) {
-            throw new TribbleException("I/O error while reading BCF2 file", e);
-        }
-        this.recordBytes = null;
-        this.recordStream = null;
-    }
-
-    /**
-     * Returns the byte[] for the block of data we are currently decoding
-     * @return
-     */
-    public byte[] getRecordBytes() {
-        return recordBytes;
-    }
-
-    /**
-     * The size of the current block in bytes
-     *
-     * @return
-     */
-    public int getBlockSize() {
-        return recordBytes.length;
-    }
-
-    public boolean blockIsFullyDecoded() {
-        return recordStream.available() == 0;
-    }
-
-    /**
-     * Use the recordBytes[] to read BCF2 records from now on
-     *
-     * @param recordBytes
-     */
-    @Requires("recordBytes != null")
-    @Ensures({"this.recordBytes == recordBytes", "recordStream != null"})
-    public void setRecordBytes(final byte[] recordBytes) {
-        this.recordBytes = recordBytes;
-        this.recordStream = new ByteArrayInputStream(recordBytes);
-    }
-
-    // ----------------------------------------------------------------------
-    //
-    // High-level decoder
-    //
-    // ----------------------------------------------------------------------
-
-    public final Object decodeTypedValue() throws IOException {
-        final byte typeDescriptor = readTypeDescriptor();
-        return decodeTypedValue(typeDescriptor);
-    }
-
-    public final Object decodeTypedValue(final byte typeDescriptor) throws IOException {
-        final int size = decodeNumberOfElements(typeDescriptor);
-        return decodeTypedValue(typeDescriptor, size);
-    }
-
-    @Requires("size >= 0")
-    public final Object decodeTypedValue(final byte typeDescriptor, final int size) throws IOException {
-        if ( size == 0 ) {
-            // missing value => null in java
-            return null;
-        } else {
-            final BCF2Type type = BCF2Utils.decodeType(typeDescriptor);
-            if ( type == BCF2Type.CHAR ) { // special case string decoding for efficiency
-                return decodeLiteralString(size);
-            } else if ( size == 1 ) {
-                return decodeSingleValue(type);
-            } else {
-                final ArrayList<Object> ints = new ArrayList<Object>(size);
-                for ( int i = 0; i < size; i++ ) {
-                    final Object val = decodeSingleValue(type);
-                    if ( val == null ) continue; // auto-pruning.  We remove trailing nulls
-                    ints.add(val);
-                }
-                return ints.isEmpty() ? null : ints; // return null when all of the values are null
-            }
-        }
-    }
-
-    public final Object decodeSingleValue(final BCF2Type type) throws IOException {
-        // TODO -- decodeTypedValue should integrate this routine
-        final int value = decodeInt(type);
-
-        if ( value == type.getMissingBytes() )
-            return null;
-        else {
-            switch (type) {
-                case INT8:
-                case INT16:
-                case INT32: return value;
-                case FLOAT: return rawFloatToFloat(value);
-                case CHAR:  return value & 0xFF; // TODO -- I cannot imagine why we'd get here, as string needs to be special cased
-                default:    throw new TribbleException("BCF2 codec doesn't know how to decode type " + type );
-            }
-        }
-    }
-
-    // ----------------------------------------------------------------------
-    //
-    // Decode raw primitive data types (ints, floats, and strings)
-    //
-    // ----------------------------------------------------------------------
-
-    private final Object decodeLiteralString(final int size) {
-        assert size > 0;
-
-        // TODO -- assumes size > 0
-        final byte[] bytes = new byte[size]; // TODO -- in principle should just grab bytes from underlying array
-        try {
-            recordStream.read(bytes);
-
-            int goodLength = 0;
-            for ( ; goodLength < bytes.length ; goodLength++ )
-                if ( bytes[goodLength] == 0 ) break;
-
-            if ( goodLength == 0 )
-                return null;
-            else {
-                final String s = new String(bytes, 0, goodLength);
-                return BCF2Utils.isCollapsedString(s) ? BCF2Utils.explodeStringList(s) : s;
-            }
-        } catch ( IOException e ) {
-            throw new TribbleException("readByte failure", e);
-        }
-    }
-
-    @Ensures("result >= 0")
-    public final int decodeNumberOfElements(final byte typeDescriptor) throws IOException {
-        if ( BCF2Utils.sizeIsOverflow(typeDescriptor) )
-            // -1 ensures we explode immediately with a bad size if the result is missing
-            return decodeInt(readTypeDescriptor(), -1);
-        else
-            // the size is inline, so just decode it
-            return BCF2Utils.decodeSize(typeDescriptor);
-    }
-
-    /**
-     * Decode an int from the stream.  If the value in the stream is missing,
-     * returns missingValue.  Requires the typeDescriptor indicate an inline
-     * single element event
-     *
-     * @param typeDescriptor
-     * @return
-     */
-    @Requires("BCF2Utils.decodeSize(typeDescriptor) == 1")
-    public final int decodeInt(final byte typeDescriptor, final int missingValue) throws IOException {
-        final BCF2Type type = BCF2Utils.decodeType(typeDescriptor);
-        final int i = decodeInt(type);
-        return i == type.getMissingBytes() ? missingValue : i;
-    }
-
-    @Requires("type != null")
-    public final int decodeInt(final BCF2Type type) throws IOException {
-        return type.read(recordStream);
-    }
-
-    /**
-     * Low-level reader for int[]
-     *
-     * Requires a typeDescriptor so the function knows how many elements to read,
-     * and how they are encoded.
-     *
-     * If size == 0 => result is null
-     * If size > 0 => result depends on the actual values in the stream
-     *      -- If the first element read is MISSING, result is null (all values are missing)
-     *      -- Else result = int[N] where N is the first N non-missing values decoded
-     *
-     * @param maybeDest if not null we'll not allocate space for the vector, but instead use
-     *                  the externally allocated array of ints to store values.  If the
-     *                  size of this vector is < the actual size of the elements, we'll be
-     *                  forced to use freshly allocated arrays.  Also note that padded
-     *                  int elements are still forced to do a fresh allocation as well.
-     * @return see description
-     */
-    @Requires({"type != null", "type.isIntegerType()", "size >= 0"})
-    public final int[] decodeIntArray(final int size, final BCF2Type type, int[] maybeDest) throws IOException {
-        if ( size == 0 ) {
-            return null;
-        } else {
-            if ( maybeDest != null && maybeDest.length < size )
-                maybeDest = null; // by nulling this out we ensure that we do fresh allocations as maybeDest is too small
-
-            final int val1 = decodeInt(type);
-            if ( val1 == type.getMissingBytes() ) {
-                // fast path for first element being missing
-                for ( int i = 1; i < size; i++ ) decodeInt(type);
-                return null;
-            } else {
-                // we know we will have at least 1 element, so making the int[] is worth it
-                final int[] ints = maybeDest == null ? new int[size] : maybeDest;
-                ints[0] = val1; // we already read the first one
-                for ( int i = 1; i < size; i++ ) {
-                    ints[i] = decodeInt(type);
-                    if ( ints[i] == type.getMissingBytes() ) {
-                        // read the rest of the missing values, dropping them
-                        for ( int j = i + 1; j < size; j++ ) decodeInt(type);
-                        // deal with auto-pruning by returning an int[] containing
-                        // only the non-MISSING values.  We do this by copying the first
-                        // i elements, as i itself is missing
-                        return Arrays.copyOf(ints, i);
-                    }
-                }
-                return ints; // all of the elements were non-MISSING
-            }
-        }
-    }
-
-    public final int[] decodeIntArray(final byte typeDescriptor, final int size) throws IOException {
-        final BCF2Type type = BCF2Utils.decodeType(typeDescriptor);
-        return decodeIntArray(size, type, null);
-    }
-
-    private double rawFloatToFloat(final int rawFloat) {
-        return (double)Float.intBitsToFloat(rawFloat);
-    }
-
-    // ----------------------------------------------------------------------
-    //
-    // Utility functions
-    //
-    // ----------------------------------------------------------------------
-
-    /**
-     * Read the size of the next block from inputStream
-     *
-     * @param inputStream
-     * @return
-     */
-    public final int readBlockSize(final InputStream inputStream) throws IOException {
-        return BCF2Type.INT32.read(inputStream);
-    }
-
-    /**
-     * Read all bytes for a BCF record block into a byte[], and return it
-     *
-     * Is smart about reading from the stream multiple times to fill the buffer, if necessary
-     *
-     * @param blockSizeInBytes number of bytes to read
-     * @param inputStream the stream to read from
-     * @return a non-null byte[] containing exactly blockSizeInBytes bytes from the inputStream
-     */
-    @Requires({"blockSizeInBytes >= 0", "inputStream != null"})
-    @Ensures("result != null")
-    private static byte[] readRecordBytes(final int blockSizeInBytes, final InputStream inputStream) {
-        assert blockSizeInBytes >= 0;
-
-        final byte[] record = new byte[blockSizeInBytes];
-        try {
-            int bytesRead = 0;
-            int nReadAttempts = 0; // keep track of how many times we've read
-
-            // because we might not read enough bytes from the file in a single go, do it in a loop until we get EOF
-            while ( bytesRead < blockSizeInBytes ) {
-                final int read1 = inputStream.read(record, bytesRead, blockSizeInBytes - bytesRead);
-                if ( read1 == -1 )
-                    validateReadBytes(bytesRead, nReadAttempts, blockSizeInBytes);
-                else
-                    bytesRead += read1;
-            }
-
-            if ( GeneralUtils.DEBUG_MODE_ENABLED && nReadAttempts > 1 ) { // TODO -- remove me
-                System.err.println("Required multiple read attempts to actually get the entire BCF2 block, unexpected behavior");
-            }
-
-            validateReadBytes(bytesRead, nReadAttempts, blockSizeInBytes);
-        } catch ( IOException e ) {
-            throw new TribbleException("I/O error while reading BCF2 file", e);
-        }
-
-        return record;
-    }
-
-    /**
-     * Make sure we read the right number of bytes, or throw an error
-     *
-     * @param actuallyRead
-     * @param nReadAttempts
-     * @param expected
-     */
-    private static void validateReadBytes(final int actuallyRead, final int nReadAttempts, final int expected) {
-        assert expected >= 0;
-
-        if ( actuallyRead < expected ) {
-            throw new TribbleException(
-                    String.format("Failed to read next complete record: expected %d bytes but read only %d after %d iterations",
-                            expected, actuallyRead, nReadAttempts));
-        }
-    }
-
-    public final byte readTypeDescriptor() throws IOException {
-        return BCF2Utils.readByte(recordStream);
-    }
-}
diff --git a/src/java/org/broadinstitute/variant/bcf2/BCF2GenotypeFieldDecoders.java b/src/java/org/broadinstitute/variant/bcf2/BCF2GenotypeFieldDecoders.java
deleted file mode 100644
index 87d6765..0000000
--- a/src/java/org/broadinstitute/variant/bcf2/BCF2GenotypeFieldDecoders.java
+++ /dev/null
@@ -1,284 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.bcf2;
-
-import com.google.java.contract.Ensures;
-import com.google.java.contract.Requires;
-import org.broadinstitute.variant.vcf.VCFConstants;
-import org.broadinstitute.variant.vcf.VCFHeader;
-import org.broadinstitute.variant.variantcontext.Allele;
-import org.broadinstitute.variant.variantcontext.GenotypeBuilder;
-
-import java.io.IOException;
-import java.util.*;
-
-/**
- * An efficient scheme for building and obtaining specialized
- * genotype field decoders.  Used by the BCFCodec to parse
- * with little overhead the fields from BCF2 encoded genotype
- * records
- *
- * @author Mark DePristo
- * @since 6/12
- */
-public class BCF2GenotypeFieldDecoders {
-    private final static boolean ENABLE_FASTPATH_GT = true;
-    private final static int MIN_SAMPLES_FOR_FASTPATH_GENOTYPES = 0; // TODO -- update to reasonable number
-
-    // initialized once per writer to allow parallel writers to work
-    private final HashMap<String, Decoder> genotypeFieldDecoder = new HashMap<String, Decoder>();
-    private final Decoder defaultDecoder = new GenericDecoder();
-
-    public BCF2GenotypeFieldDecoders(final VCFHeader header) {
-        // TODO -- fill in appropriate decoders for each FORMAT field in the header
-
-        genotypeFieldDecoder.put(VCFConstants.GENOTYPE_KEY, new GTDecoder());
-        // currently the generic decoder handles FILTER values properly, in so far as we don't tolerate multiple filter field values per genotype
-        genotypeFieldDecoder.put(VCFConstants.GENOTYPE_FILTER_KEY, new FTDecoder());
-        genotypeFieldDecoder.put(VCFConstants.DEPTH_KEY, new DPDecoder());
-        genotypeFieldDecoder.put(VCFConstants.GENOTYPE_ALLELE_DEPTHS, new ADDecoder());
-        genotypeFieldDecoder.put(VCFConstants.GENOTYPE_PL_KEY, new PLDecoder());
-        genotypeFieldDecoder.put(VCFConstants.GENOTYPE_QUALITY_KEY, new GQDecoder());
-    }
-
-    // -----------------------------------------------------------------
-    //
-    // Genotype field decoder
-    //
-    // -----------------------------------------------------------------
-
-    /**
-     * Return decoder appropriate for field, or the generic decoder if no
-     * specialized one is bound
-     * @param field the GT field to decode
-     * @return a non-null decoder
-     */
-    @Requires("field != null")
-    @Ensures("result != null")
-    public Decoder getDecoder(final String field) {
-        final Decoder d = genotypeFieldDecoder.get(field);
-        return d == null ? defaultDecoder : d;
-    }
-
-    /**
-     * Decoder a field (implicit from creation) encoded as
-     * typeDescriptor in the decoder object in the GenotypeBuilders
-     * one for each sample in order.
-     *
-     * The way this works is that this decode method
-     * iterates over the builders, decoding a genotype field
-     * in BCF2 for each sample from decoder.
-     *
-     * This system allows us to easily use specialized
-     * decoders for specific genotype field values. For example,
-     * we use a special decoder to directly read the BCF2 data for
-     * the PL field into a int[] rather than the generic List of Integer
-     */
-    public interface Decoder {
-        @Requires({"siteAlleles != null", "! siteAlleles.isEmpty()",
-                "field != null", "decoder != null", "gbs != null", "gbs.length != 0"})
-        public void decode(final List<Allele> siteAlleles,
-                           final String field,
-                           final BCF2Decoder decoder,
-                           final byte typeDescriptor,
-                           final int numElements,
-                           final GenotypeBuilder[] gbs) throws IOException;
-    }
-
-    private class GTDecoder implements Decoder {
-        @Override
-        public void decode(final List<Allele> siteAlleles, final String field, final BCF2Decoder decoder, final byte typeDescriptor, final int numElements, final GenotypeBuilder[] gbs) throws IOException {
-            if ( ENABLE_FASTPATH_GT && siteAlleles.size() == 2 && numElements == 2 && gbs.length >= MIN_SAMPLES_FOR_FASTPATH_GENOTYPES )
-                fastBiallelicDiploidDecode(siteAlleles, decoder, typeDescriptor, gbs);
-            else {
-                generalDecode(siteAlleles, numElements, decoder, typeDescriptor, gbs);
-            }
-        }
-
-        /**
-         * fast path for many samples with diploid genotypes
-         *
-         * The way this would work is simple.  Create a List<Allele> diploidGenotypes[] object
-         * After decoding the offset, if that sample is diploid compute the
-         * offset into the alleles vector which is simply offset = allele0 * nAlleles + allele1
-         * if there's a value at diploidGenotypes[offset], use it, otherwise create the genotype
-         * cache it and use that
-         *
-         * Some notes.  If there are nAlleles at the site, there are implicitly actually
-         * n + 1 options including
-         */
-        @Requires("siteAlleles.size() == 2")
-        @SuppressWarnings({"unchecked"})
-        private final void fastBiallelicDiploidDecode(final List<Allele> siteAlleles,
-                                                      final BCF2Decoder decoder,
-                                                      final byte typeDescriptor,
-                                                      final GenotypeBuilder[] gbs) throws IOException {
-            final BCF2Type type = BCF2Utils.decodeType(typeDescriptor);
-
-            final int nPossibleGenotypes = 3 * 3;
-            final Object allGenotypes[] = new Object[nPossibleGenotypes];
-
-            for ( final GenotypeBuilder gb : gbs ) {
-                final int a1 = decoder.decodeInt(type);
-                final int a2 = decoder.decodeInt(type);
-
-                if ( a1 == type.getMissingBytes() ) {
-                    assert a2 == type.getMissingBytes();
-                    // no called sample GT = .
-                    gb.alleles(null);
-                } else if ( a2 == type.getMissingBytes() ) {
-                    gb.alleles(Arrays.asList(getAlleleFromEncoded(siteAlleles, a1)));
-                } else {
-                    // downshift to remove phase
-                    final int offset = (a1 >> 1) * 3 + (a2 >> 1);
-                    assert offset < allGenotypes.length;
-
-                    // TODO -- how can I get rid of this cast?
-                    List<Allele> gt = (List<Allele>)allGenotypes[offset];
-                    if ( gt == null ) {
-                        final Allele allele1 = getAlleleFromEncoded(siteAlleles, a1);
-                        final Allele allele2 = getAlleleFromEncoded(siteAlleles, a2);
-                        gt = Arrays.asList(allele1, allele2);
-                        allGenotypes[offset] = gt;
-                    }
-
-                    gb.alleles(gt);
-                }
-
-                final boolean phased = (a1 & 0x01) == 1;
-                gb.phased(phased);
-            }
-        }
-
-        private final void generalDecode(final List<Allele> siteAlleles,
-                                         final int ploidy,
-                                         final BCF2Decoder decoder,
-                                         final byte typeDescriptor,
-                                         final GenotypeBuilder[] gbs) throws IOException {
-            final BCF2Type type = BCF2Utils.decodeType(typeDescriptor);
-
-            // a single cache for the encoded genotypes, since we don't actually need this vector
-            final int[] tmp = new int[ploidy];
-
-            for ( final GenotypeBuilder gb : gbs ) {
-                final int[] encoded = decoder.decodeIntArray(ploidy, type, tmp);
-                if ( encoded == null )
-                    // no called sample GT = .
-                    gb.alleles(null);
-                else {
-                    assert encoded.length > 0;
-
-                    // we have at least some alleles to decode
-                    final List<Allele> gt = new ArrayList<Allele>(encoded.length);
-
-                    // note that the auto-pruning of fields magically handles different
-                    // ploidy per sample at a site
-                    for ( final int encode : encoded )
-                        gt.add(getAlleleFromEncoded(siteAlleles, encode));
-
-                    gb.alleles(gt);
-                    final boolean phased = (encoded[0] & 0x01) == 1;
-                    gb.phased(phased);
-                }
-            }
-        }
-
-        @Requires({"siteAlleles != null && ! siteAlleles.isEmpty()", "encode >= 0"})
-        @Ensures("result != null")
-        private final Allele getAlleleFromEncoded(final List<Allele> siteAlleles, final int encode) {
-            final int offset = encode >> 1;
-            return offset == 0 ? Allele.NO_CALL : siteAlleles.get(offset - 1);
-        }
-    }
-
-    private class DPDecoder implements Decoder {
-        @Override
-        public void decode(final List<Allele> siteAlleles, final String field, final BCF2Decoder decoder, final byte typeDescriptor, final int numElements, final GenotypeBuilder[] gbs) throws IOException {
-            for ( final GenotypeBuilder gb : gbs ) {
-                // the -1 is for missing
-                gb.DP(decoder.decodeInt(typeDescriptor, -1));
-            }
-        }
-    }
-
-    private class GQDecoder implements Decoder {
-        @Override
-        public void decode(final List<Allele> siteAlleles, final String field, final BCF2Decoder decoder, final byte typeDescriptor, final int numElements, final GenotypeBuilder[] gbs) throws IOException {
-            for ( final GenotypeBuilder gb : gbs ) {
-                // the -1 is for missing
-                gb.GQ(decoder.decodeInt(typeDescriptor, -1));
-            }
-        }
-    }
-
-    private class ADDecoder implements Decoder {
-        @Override
-        public void decode(final List<Allele> siteAlleles, final String field, final BCF2Decoder decoder, final byte typeDescriptor, final int numElements, final GenotypeBuilder[] gbs) throws IOException {
-            for ( final GenotypeBuilder gb : gbs ) {
-                gb.AD(decoder.decodeIntArray(typeDescriptor, numElements));
-            }
-        }
-    }
-
-    private class PLDecoder implements Decoder {
-        @Override
-        public void decode(final List<Allele> siteAlleles, final String field, final BCF2Decoder decoder, final byte typeDescriptor, final int numElements, final GenotypeBuilder[] gbs) throws IOException {
-            for ( final GenotypeBuilder gb : gbs ) {
-                gb.PL(decoder.decodeIntArray(typeDescriptor, numElements));
-            }
-        }
-    }
-
-    private class GenericDecoder implements Decoder {
-        @Override
-        public void decode(final List<Allele> siteAlleles, final String field, final BCF2Decoder decoder, final byte typeDescriptor, final int numElements, final GenotypeBuilder[] gbs) throws IOException {
-            for ( final GenotypeBuilder gb : gbs ) {
-                Object value = decoder.decodeTypedValue(typeDescriptor, numElements);
-                if ( value != null ) { // don't add missing values
-                    if ( value instanceof List && ((List)value).size() == 1) {
-                        // todo -- I really hate this, and it suggests that the code isn't completely right
-                        // the reason it's here is that it's possible to prune down a vector to a singleton
-                        // value and there we have the contract that the value comes back as an atomic value
-                        // not a vector of size 1
-                        value = ((List)value).get(0);
-                    }
-                    gb.attribute(field, value);
-                }
-            }
-        }
-    }
-
-    private class FTDecoder implements Decoder {
-        @Override
-        public void decode(final List<Allele> siteAlleles, final String field, final BCF2Decoder decoder, final byte typeDescriptor, final int numElements, final GenotypeBuilder[] gbs) throws IOException {
-            for ( final GenotypeBuilder gb : gbs ) {
-                Object value = decoder.decodeTypedValue(typeDescriptor, numElements);
-                assert value == null || value instanceof String;
-                gb.filter((String)value);
-            }
-        }
-    }
-}
diff --git a/src/java/org/broadinstitute/variant/bcf2/BCF2LazyGenotypesDecoder.java b/src/java/org/broadinstitute/variant/bcf2/BCF2LazyGenotypesDecoder.java
deleted file mode 100644
index ffbfe81..0000000
--- a/src/java/org/broadinstitute/variant/bcf2/BCF2LazyGenotypesDecoder.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.bcf2;
-
-import com.google.java.contract.Requires;
-import org.broad.tribble.TribbleException;
-import org.broadinstitute.variant.variantcontext.*;
-
-import java.io.IOException;
-import java.util.*;
-
-/**
- * Lazy version of genotypes decoder for BCF2 genotypes
- *
- * @author Mark DePristo
- * @since 5/12
- */
-public class BCF2LazyGenotypesDecoder implements LazyGenotypesContext.LazyParser {
-    // the essential information for us to use to decode the genotypes data
-    // initialized when this lazy decoder is created, as we know all of this from the BCF2Codec
-    // and its stored here again for code cleanliness
-    private final BCF2Codec codec;
-    private final List<Allele> siteAlleles;
-    private final int nSamples;
-    private final int nFields;
-    private final GenotypeBuilder[] builders;
-
-    @Requires("codec.getHeader().getNGenotypeSamples() == builders.length")
-    BCF2LazyGenotypesDecoder(final BCF2Codec codec, final List<Allele> alleles, final int nSamples,
-                             final int nFields, final GenotypeBuilder[] builders) {
-        this.codec = codec;
-        this.siteAlleles = alleles;
-        this.nSamples = nSamples;
-        this.nFields = nFields;
-        this.builders = builders;
-    }
-
-    @Override
-    public LazyGenotypesContext.LazyData parse(final Object data) {
-        try {
-
-            // load our byte[] data into the decoder
-            final BCF2Decoder decoder = new BCF2Decoder(((BCF2Codec.LazyData)data).bytes);
-
-            for ( int i = 0; i < nSamples; i++ )
-                builders[i].reset(true);
-
-            for ( int i = 0; i < nFields; i++ ) {
-                // get the field name
-                final int offset = (Integer) decoder.decodeTypedValue();
-                final String field = codec.getDictionaryString(offset);
-
-                // the type of each element
-                final byte typeDescriptor = decoder.readTypeDescriptor();
-                final int numElements = decoder.decodeNumberOfElements(typeDescriptor);
-                final BCF2GenotypeFieldDecoders.Decoder fieldDecoder = codec.getGenotypeFieldDecoder(field);
-                try {
-                    fieldDecoder.decode(siteAlleles, field, decoder, typeDescriptor, numElements, builders);
-                } catch ( ClassCastException e ) {
-                    throw new TribbleException("BUG: expected encoding of field " + field
-                            + " inconsistent with the value observed in the decoded value");
-                }
-            }
-
-            final ArrayList<Genotype> genotypes = new ArrayList<Genotype>(nSamples);
-            for ( final GenotypeBuilder gb : builders )
-                genotypes.add(gb.make());
-
-            return new LazyGenotypesContext.LazyData(genotypes, codec.getHeader().getSampleNamesInOrder(), codec.getHeader().getSampleNameToOffset());
-        } catch ( IOException e ) {
-            throw new TribbleException("Unexpected IOException parsing already read genotypes data block", e);
-        }
-    }
-}
diff --git a/src/java/org/broadinstitute/variant/bcf2/BCF2Type.java b/src/java/org/broadinstitute/variant/bcf2/BCF2Type.java
deleted file mode 100644
index 4504b8d..0000000
--- a/src/java/org/broadinstitute/variant/bcf2/BCF2Type.java
+++ /dev/null
@@ -1,219 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.bcf2;
-
-import com.google.java.contract.Requires;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.EnumSet;
-
-/**
- * BCF2 types and associated information
- *
- * @author depristo
- * @since 05/12
- */
-public enum BCF2Type {
-    // the actual values themselves
-    MISSING(0, 0, 0x00) {
-        @Override public int read(final InputStream in) throws IOException {
-            throw new IllegalArgumentException("Cannot read MISSING type");
-        }
-        @Override public void write(final int value, final OutputStream out) throws IOException {
-            throw new IllegalArgumentException("Cannot write MISSING type");
-        }
-    },
-
-    INT8 (1, 1, 0xFFFFFF80,        -127,        127) {
-        @Override
-        public int read(final InputStream in) throws IOException {
-            return BCF2Utils.readByte(in);
-        }
-
-        @Override
-        public void write(final int value, final OutputStream out) throws IOException {
-            out.write(0xFF & value);   // TODO -- do we need this operation?
-        }
-    },
-
-    INT16(2, 2, 0xFFFF8000,      -32767,      32767) {
-        @Override
-        public int read(final InputStream in) throws IOException {
-            final int b2 = BCF2Utils.readByte(in) & 0xFF;
-            final int b1 = BCF2Utils.readByte(in) & 0xFF;
-            return (short)((b1 << 8) | b2);
-        }
-
-        @Override
-        public void write(final int value, final OutputStream out) throws IOException {
-            // TODO -- optimization -- should we put this in a local buffer?
-            out.write((0x00FF & value));
-            out.write((0xFF00 & value) >> 8);
-        }
-    },
-
-    INT32(3, 4, 0x80000000, -2147483647, 2147483647) {
-        @Override
-        public int read(final InputStream in) throws IOException {
-            final int b4 = BCF2Utils.readByte(in) & 0xFF;
-            final int b3 = BCF2Utils.readByte(in) & 0xFF;
-            final int b2 = BCF2Utils.readByte(in) & 0xFF;
-            final int b1 = BCF2Utils.readByte(in) & 0xFF;
-            return (int)(b1 << 24 | b2 << 16 | b3 << 8 | b4);
-        }
-
-        @Override
-        public void write(final int value, final OutputStream out) throws IOException {
-            out.write((0x000000FF & value));
-            out.write((0x0000FF00 & value) >> 8);
-            out.write((0x00FF0000 & value) >> 16);
-            out.write((0xFF000000 & value) >> 24);
-        }
-    },
-
-    FLOAT(5, 4, 0x7F800001) {
-        @Override
-        public int read(final InputStream in) throws IOException {
-            return INT32.read(in);
-        }
-
-        @Override
-        public void write(final int value, final OutputStream out) throws IOException {
-            INT32.write(value, out);
-        }
-    },
-
-    CHAR (7, 1, 0x00000000) {
-        @Override
-        public int read(final InputStream in) throws IOException {
-            return INT8.read(in);
-        }
-
-        @Override
-        public void write(final int value, final OutputStream out) throws IOException {
-            INT8.write(value, out);
-        }
-    };
-
-    private final int id;
-    private final Object missingJavaValue;
-    private final int missingBytes;
-    private final int sizeInBytes;
-    private final long minValue, maxValue;
-
-    BCF2Type(final int id, final int sizeInBytes, final int missingBytes) {
-        this(id, sizeInBytes, missingBytes, 0, 0);
-    }
-
-    BCF2Type(final int id, final int sizeInBytes, final int missingBytes, final long minValue, final long maxValue) {
-        this.id = id;
-        this.sizeInBytes = sizeInBytes;
-        this.missingJavaValue = null;
-        this.missingBytes = missingBytes;
-        this.minValue = minValue;
-        this.maxValue = maxValue;
-    }
-
-    /**
-     * How many bytes are used to represent this type on disk?
-     * @return
-     */
-    public int getSizeInBytes() {
-        return sizeInBytes;
-    }
-
-    /**
-     * The ID according to the BCF2 specification
-     * @return
-     */
-    public int getID() { return id; }
-
-    /**
-     * Can we encode value v in this type, according to its declared range.
-     *
-     * Only makes sense for integer values
-     *
-     * @param v
-     * @return
-     */
-    @Requires("this.isIntegerType()")
-    public final boolean withinRange(final long v) { return v >= minValue && v <= maxValue; }
-
-    /**
-     * Return the java object (aka null) that is used to represent a missing value for this
-     * type in Java
-     *
-     * @return
-     */
-    public Object getMissingJavaValue() { return missingJavaValue; }
-
-    /**
-     * The bytes (encoded as an int) that are used to represent a missing value
-     * for this type in BCF2
-     *
-     * @return
-     */
-    public int getMissingBytes() { return missingBytes; }
-
-    /**
-     * An enum set of the types that might represent Integer values
-     */
-    private final static EnumSet<BCF2Type> INTEGERS = EnumSet.of(INT8, INT16, INT32);
-
-    /**
-     * @return true if this BCF2Type corresponds to the magic "MISSING" type (0x00)
-     */
-    public boolean isMissingType() {
-        return this == MISSING;
-    }
-
-    public boolean isIntegerType() {
-        return INTEGERS.contains(this);
-    }
-
-    /**
-     * Read a value from in stream of this BCF2 type as an int [32 bit] collection of bits
-     *
-     * For intX and char values this is just the int / byte value of the underlying data represented as a 32 bit int
-     * For a char the result must be converted to a char by (char)(byte)(0x0F & value)
-     * For doubles it's necessary to convert subsequently this value to a double via Double.bitsToDouble()
-     *
-     * @param in
-     * @return
-     * @throws IOException
-     */
-    @Requires("in != null")
-    public int read(final InputStream in) throws IOException {
-        throw new IllegalArgumentException("Not implemented");
-    }
-
-    @Requires("out != null")
-    public void write(final int value, final OutputStream out) throws IOException {
-        throw new IllegalArgumentException("Not implemented");
-    }
-}
diff --git a/src/java/org/broadinstitute/variant/bcf2/BCF2Utils.java b/src/java/org/broadinstitute/variant/bcf2/BCF2Utils.java
deleted file mode 100644
index d699242..0000000
--- a/src/java/org/broadinstitute/variant/bcf2/BCF2Utils.java
+++ /dev/null
@@ -1,338 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.bcf2;
-
-import com.google.java.contract.Ensures;
-import com.google.java.contract.Requires;
-import org.broad.tribble.TribbleException;
-import org.broadinstitute.variant.vcf.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Common utilities for working with BCF2 files
- *
- * Includes convenience methods for encoding, decoding BCF2 type descriptors (size + type)
- *
- * @author depristo
- * @since 5/12
- */
-public final class BCF2Utils {
-    public static final int MAX_ALLELES_IN_GENOTYPES = 127;
-
-    public static final int OVERFLOW_ELEMENT_MARKER = 15;
-    public static final int MAX_INLINE_ELEMENTS = 14;
-
-    public final static BCF2Type[] INTEGER_TYPES_BY_SIZE = new BCF2Type[]{BCF2Type.INT8, BCF2Type.INT16, BCF2Type.INT32};
-    public final static BCF2Type[] ID_TO_ENUM;
-
-    static {
-        int maxID = -1;
-        for ( BCF2Type v : BCF2Type.values() ) maxID = Math.max(v.getID(), maxID);
-        ID_TO_ENUM = new BCF2Type[maxID+1];
-        for ( BCF2Type v : BCF2Type.values() ) ID_TO_ENUM[v.getID()] = v;
-    }
-
-    private BCF2Utils() {}
-
-    /**
-     * Create a strings dictionary from the VCF header
-     *
-     * The dictionary is an ordered list of common VCF identifers (FILTER, INFO, and FORMAT)
-     * fields.
-     *
-     * Note that its critical that the list be dedupped and sorted in a consistent manner each time,
-     * as the BCF2 offsets are encoded relative to this dictionary, and if it isn't determined exactly
-     * the same way as in the header each time it's very bad
-     *
-     * @param header the VCFHeader from which to build the dictionary
-     * @return a non-null dictionary of elements, may be empty
-     */
-    @Requires("header != null")
-    @Ensures({"result != null", "new HashSet(result).size() == result.size()"})
-    public static ArrayList<String> makeDictionary(final VCFHeader header) {
-        final Set<String> seen = new HashSet<String>();
-        final ArrayList<String> dict = new ArrayList<String>();
-
-        // special case the special PASS field which doesn't show up in the FILTER field definitions
-        seen.add(VCFConstants.PASSES_FILTERS_v4);
-        dict.add(VCFConstants.PASSES_FILTERS_v4);
-
-        // set up the strings dictionary
-        for ( VCFHeaderLine line : header.getMetaDataInInputOrder() ) {
-            if ( line.shouldBeAddedToDictionary() ) {
-                final VCFIDHeaderLine idLine = (VCFIDHeaderLine)line;
-                if ( ! seen.contains(idLine.getID())) {
-                    dict.add(idLine.getID());
-                    seen.add(idLine.getID());
-                }
-            }
-        }
-
-        return dict;
-    }
-
-    @Requires({"nElements >= 0", "nElements <= OVERFLOW_ELEMENT_MARKER", "type != null"})
-    public static byte encodeTypeDescriptor(final int nElements, final BCF2Type type ) {
-        return (byte)((0x0F & nElements) << 4 | (type.getID() & 0x0F));
-    }
-
-    @Ensures("result >= 0")
-    public static int decodeSize(final byte typeDescriptor) {
-        return (0xF0 & typeDescriptor) >> 4;
-    }
-
-    @Ensures("result >= 0")
-    public static int decodeTypeID(final byte typeDescriptor) {
-        return typeDescriptor & 0x0F;
-    }
-
-    @Ensures("result != null")
-    public static BCF2Type decodeType(final byte typeDescriptor) {
-        return ID_TO_ENUM[decodeTypeID(typeDescriptor)];
-    }
-
-    public static boolean sizeIsOverflow(final byte typeDescriptor) {
-        return decodeSize(typeDescriptor) == OVERFLOW_ELEMENT_MARKER;
-    }
-
-    public static byte readByte(final InputStream stream) throws IOException {
-        return (byte)(stream.read() & 0xFF);
-    }
-
-    /**
-     * Collapse multiple strings into a comma separated list
-     *
-     * ["s1", "s2", "s3"] => ",s1,s2,s3"
-     *
-     * @param strings size > 1 list of strings
-     * @return
-     */
-    @Requires({"strings != null"})
-    @Ensures("result != null")
-    public static String collapseStringList(final List<String> strings) {
-        if ( strings.isEmpty() ) return "";
-        else if ( strings.size() == 1 ) return strings.get(0);
-        else {
-            final StringBuilder b = new StringBuilder();
-            for ( final String s : strings ) {
-                if ( s != null ) {
-                    assert s.indexOf(",") == -1; // no commas in individual strings
-                    b.append(",").append(s);
-                }
-            }
-            return b.toString();
-        }
-    }
-
-    /**
-     * Inverse operation of collapseStringList.
-     *
-     * ",s1,s2,s3" => ["s1", "s2", "s3"]
-     *
-     *
-     * @param collapsed
-     * @return
-     */
-    @Requires({"collapsed != null", "isCollapsedString(collapsed)"})
-    @Ensures("result != null")
-    public static List<String> explodeStringList(final String collapsed) {
-        assert isCollapsedString(collapsed);
-        final String[] exploded = collapsed.substring(1).split(",");
-        return Arrays.asList(exploded);
-    }
-
-    @Requires("s != null")
-    public static boolean isCollapsedString(final String s) {
-        return s.length() > 0 && s.charAt(0) == ',';
-    }
-
-    /**
-     * Returns a good name for a shadow BCF file for vcfFile.
-     *
-     * foo.vcf => foo.bcf
-     * foo.xxx => foo.xxx.bcf
-     *
-     * If the resulting BCF file cannot be written, return null.  Happens
-     * when vcfFile = /dev/null for example
-     *
-     * @param vcfFile
-     * @return the BCF
-     */
-    @Requires("vcfFile != null")
-    public static final File shadowBCF(final File vcfFile) {
-        final String path = vcfFile.getAbsolutePath();
-        if ( path.contains(".vcf") )
-            return new File(path.replace(".vcf", ".bcf"));
-        else {
-            final File bcf = new File( path + ".bcf" );
-            if ( bcf.canRead() )
-                return bcf;
-            else {
-                try {
-                    // this is the only way to robustly decide if we could actually write to BCF
-                    final FileOutputStream o = new FileOutputStream(bcf);
-                    o.close();
-                    bcf.delete();
-                    return bcf;
-                } catch ( FileNotFoundException e ) {
-                    return null;
-                } catch ( IOException e ) {
-                    return null;
-                }
-            }
-        }
-    }
-
-    @Ensures("result.isIntegerType()")
-    public static BCF2Type determineIntegerType(final int value) {
-        for ( final BCF2Type potentialType : INTEGER_TYPES_BY_SIZE) {
-            if ( potentialType.withinRange(value) )
-                return potentialType;
-        }
-
-        throw new TribbleException("Integer cannot be encoded in allowable range of even INT32: " + value);
-    }
-
-    @Ensures("result.isIntegerType()")
-    public static BCF2Type determineIntegerType(final int[] values) {
-        // find the min and max values in the array
-        int max = 0, min = 0;
-        for ( final int v : values ) {
-            if ( v > max ) max = v;
-            if ( v < min ) min = v;
-        }
-
-        final BCF2Type maxType = determineIntegerType(max);
-        final BCF2Type minType = determineIntegerType(min);
-
-        // INT8 < INT16 < INT32 so this returns the larger of the two
-        return maxType.compareTo(minType) >= 0 ? maxType : minType;
-    }
-
-    /**
-     * Returns the maximum BCF2 integer size of t1 and t2
-     *
-     * For example, if t1 == INT8 and t2 == INT16 returns INT16
-     *
-     * @param t1
-     * @param t2
-     * @return
-     */
-    @Requires({"t1.isIntegerType()","t2.isIntegerType()"})
-    @Ensures("result.isIntegerType()")
-    public static BCF2Type maxIntegerType(final BCF2Type t1, final BCF2Type t2) {
-        switch ( t1 ) {
-            case INT8: return t2;
-            case INT16: return t2 == BCF2Type.INT32 ? t2 : t1;
-            case INT32: return t1;
-            default: throw new TribbleException("BUG: unexpected BCF2Type " + t1);
-        }
-    }
-
-    @Ensures("result.isIntegerType()")
-    public static BCF2Type determineIntegerType(final List<Integer> values) {
-        BCF2Type maxType = BCF2Type.INT8;
-        for ( final int value : values ) {
-            final BCF2Type type1 = determineIntegerType(value);
-            switch ( type1 ) {
-                case INT8: break;
-                case INT16: maxType = BCF2Type.INT16; break;
-                case INT32: return BCF2Type.INT32; // fast path for largest possible value
-                default: throw new TribbleException("Unexpected integer type " + type1 );
-            }
-        }
-        return maxType;
-    }
-
-    /**
-     * Helper function that takes an object and returns a list representation
-     * of it:
-     *
-     * o == null => []
-     * o is a list => o
-     * else => [o]
-     *
-     * @param o
-     * @return
-     */
-    public static List<Object> toList(final Object o) {
-        if ( o == null ) return Collections.emptyList();
-        else if ( o instanceof List ) return (List<Object>)o;
-        else if ( o.getClass().isArray() ) {
-            final List<Object> l = new ArrayList<Object>();
-            Collections.addAll(l, (int[])o);
-            return l;
-        }
-        else return Collections.singletonList(o);
-    }
-
-    /**
-     * Are the elements and their order in the output and input headers consistent so that
-     * we can write out the raw genotypes block without decoding and recoding it?
-     *
-     * If the order of INFO, FILTER, or contrig elements in the output header is different than
-     * in the input header we must decode the blocks using the input header and then recode them
-     * based on the new output order.
-     *
-     * If they are consistent, we can simply pass through the raw genotypes block bytes, which is
-     * a *huge* performance win for large blocks.
-     *
-     * Many common operations on BCF2 files (merging them for -nt, selecting a subset of records, etc)
-     * don't modify the ordering of the header fields and so can safely pass through the genotypes
-     * undecoded.  Some operations -- those at add filters or info fields -- can change the ordering
-     * of the header fields and so produce invalid BCF2 files if the genotypes aren't decoded
-     */
-    public static boolean headerLinesAreOrderedConsistently(final VCFHeader outputHeader, final VCFHeader genotypesBlockHeader) {
-        // first, we have to have the same samples in the same order
-        if ( ! nullAsEmpty(outputHeader.getSampleNamesInOrder()).equals(nullAsEmpty(genotypesBlockHeader.getSampleNamesInOrder())) )
-            return false;
-
-        final Iterator<? extends VCFIDHeaderLine> outputLinesIt = outputHeader.getIDHeaderLines().iterator();
-        final Iterator<? extends VCFIDHeaderLine> inputLinesIt = genotypesBlockHeader.getIDHeaderLines().iterator();
-
-        while ( inputLinesIt.hasNext() ) {
-            if ( ! outputLinesIt.hasNext() ) // missing lines in output
-                return false;
-
-            final VCFIDHeaderLine outputLine = outputLinesIt.next();
-            final VCFIDHeaderLine inputLine = inputLinesIt.next();
-
-            if ( ! inputLine.getClass().equals(outputLine.getClass()) || ! inputLine.getID().equals(outputLine.getID()) )
-                return false;
-        }
-
-        return true;
-    }
-
-    private static <T> List<T> nullAsEmpty(List<T> l) {
-        if ( l == null )
-            return Collections.emptyList();
-        else
-            return l;
-    }
-}
diff --git a/src/java/org/broadinstitute/variant/bcf2/BCFVersion.java b/src/java/org/broadinstitute/variant/bcf2/BCFVersion.java
deleted file mode 100644
index dcb2d60..0000000
--- a/src/java/org/broadinstitute/variant/bcf2/BCFVersion.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.bcf2;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.Arrays;
-
-/**
- * Simple holder for BCF version information
- *
- * User: depristo
- * Date: 8/2/12
- * Time: 2:16 PM
- */
-public class BCFVersion {
-    /**
-     * BCF2 begins with the MAGIC info BCF_M_m where M is the major version (currently 2)
-     * and m is the minor version, currently 1
-     */
-    public static final byte[] MAGIC_HEADER_START = "BCF".getBytes();
-
-    final int majorVersion;
-    final int minorVersion;
-
-    public BCFVersion(int majorVersion, int minorVersion) {
-        this.majorVersion = majorVersion;
-        this.minorVersion = minorVersion;
-    }
-
-    /**
-     * @return the major version number of this BCF file
-     */
-    public int getMajorVersion() {
-        return majorVersion;
-    }
-
-    /**
-     * @return the minor version number of this BCF file
-     */
-    public int getMinorVersion() {
-        return minorVersion;
-    }
-
-    /**
-     * Return a new BCFVersion object describing the major and minor version of the BCF file in stream
-     *
-     * Note that stream must be at the very start of the file.
-     *
-     * @param stream
-     * @return a BCFVersion object, or null if stream doesn't contain a BCF file
-     * @throws IOException
-     */
-    public static BCFVersion readBCFVersion(final InputStream stream) throws IOException {
-        final byte[] magicBytes = new byte[MAGIC_HEADER_START.length];
-        stream.read(magicBytes);
-        if ( Arrays.equals(magicBytes, MAGIC_HEADER_START) ) {
-            // we're a BCF file
-            final int majorByte = stream.read();
-            final int minorByte = stream.read();
-            return new BCFVersion( majorByte, minorByte );
-        } else
-            return null;
-    }
-
-    /**
-     * Write out the BCF magic information indicating this is a BCF file with corresponding major and minor versions
-     * @param out
-     * @throws IOException
-     */
-    public void write(final OutputStream out) throws IOException {
-        out.write(MAGIC_HEADER_START);
-        out.write(getMajorVersion() & 0xFF);
-        out.write(getMinorVersion() & 0xFF);
-    }
-
-    @Override
-    public String toString() {
-        return String.format("BCF%d.%d", getMajorVersion(), getMinorVersion());
-    }
-}
diff --git a/src/java/org/broadinstitute/variant/utils/GeneralUtils.java b/src/java/org/broadinstitute/variant/utils/GeneralUtils.java
deleted file mode 100644
index 2dbc865..0000000
--- a/src/java/org/broadinstitute/variant/utils/GeneralUtils.java
+++ /dev/null
@@ -1,242 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.utils;
-
-import java.util.*;
-
-/**
- * Constants and utility methods used throughout the VCF/BCF/VariantContext classes
- */
-public class GeneralUtils {
-
-    /**
-     * Setting this to true causes the VCF/BCF/VariantContext classes to emit debugging information
-     * to standard error
-     */
-    public static final boolean DEBUG_MODE_ENABLED = false;
-
-    /**
-     * The smallest log10 value we'll emit from normalizeFromLog10 and other functions
-     * where the real-space value is 0.0.
-     */
-    public final static double LOG10_P_OF_ZERO = -1000000.0;
-
-    /**
-     * Returns a string of the form elt1.toString() [sep elt2.toString() ... sep elt.toString()] for a collection of
-     * elti objects (note there's no actual space between sep and the elti elements).  Returns
-     * "" if collection is empty.  If collection contains just elt, then returns elt.toString()
-     *
-     * @param separator the string to use to separate objects
-     * @param objects a collection of objects.  the element order is defined by the iterator over objects
-     * @param <T> the type of the objects
-     * @return a non-null string
-     */
-    public static <T> String join(final String separator, final Collection<T> objects) {
-        if (objects.isEmpty()) { // fast path for empty collection
-            return "";
-        } else {
-            final Iterator<T> iter = objects.iterator();
-            final T first = iter.next();
-
-            if ( ! iter.hasNext() ) // fast path for singleton collections
-                return first.toString();
-            else { // full path for 2+ collection that actually need a join
-                final StringBuilder ret = new StringBuilder(first.toString());
-                while(iter.hasNext()) {
-                    ret.append(separator);
-                    ret.append(iter.next().toString());
-                }
-                return ret.toString();
-            }
-        }
-    }
-
-    /**
-     * normalizes the log10-based array.  ASSUMES THAT ALL ARRAY ENTRIES ARE <= 0 (<= 1 IN REAL-SPACE).
-     *
-     * @param array the array to be normalized
-     * @return a newly allocated array corresponding the normalized values in array
-     */
-    public static double[] normalizeFromLog10(double[] array) {
-        return normalizeFromLog10(array, false);
-    }
-
-    /**
-     * normalizes the log10-based array.  ASSUMES THAT ALL ARRAY ENTRIES ARE <= 0 (<= 1 IN REAL-SPACE).
-     *
-     * @param array             the array to be normalized
-     * @param takeLog10OfOutput if true, the output will be transformed back into log10 units
-     * @return a newly allocated array corresponding the normalized values in array, maybe log10 transformed
-     */
-    public static double[] normalizeFromLog10(double[] array, boolean takeLog10OfOutput) {
-        return normalizeFromLog10(array, takeLog10OfOutput, false);
-    }
-
-    /**
-     * See #normalizeFromLog10 but with the additional option to use an approximation that keeps the calculation always in log-space
-     *
-     * @param array
-     * @param takeLog10OfOutput
-     * @param keepInLogSpace
-     *
-     * @return
-     */
-    public static double[] normalizeFromLog10(double[] array, boolean takeLog10OfOutput, boolean keepInLogSpace) {
-        // for precision purposes, we need to add (or really subtract, since they're
-        // all negative) the largest value; also, we need to convert to normal-space.
-        double maxValue = arrayMax(array);
-
-        // we may decide to just normalize in log space without converting to linear space
-        if (keepInLogSpace) {
-            for (int i = 0; i < array.length; i++) {
-                array[i] -= maxValue;
-            }
-            return array;
-        }
-
-        // default case: go to linear space
-        double[] normalized = new double[array.length];
-
-        for (int i = 0; i < array.length; i++)
-            normalized[i] = Math.pow(10, array[i] - maxValue);
-
-        // normalize
-        double sum = 0.0;
-        for (int i = 0; i < array.length; i++)
-            sum += normalized[i];
-        for (int i = 0; i < array.length; i++) {
-            double x = normalized[i] / sum;
-            if (takeLog10OfOutput) {
-                x = Math.log10(x);
-                if ( x < LOG10_P_OF_ZERO || Double.isInfinite(x) )
-                    x = array[i] - maxValue;
-            }
-
-            normalized[i] = x;
-        }
-
-        return normalized;
-    }
-
-    public static double arrayMax(final double[] array) {
-        return array[maxElementIndex(array, array.length)];
-    }
-
-    public static int maxElementIndex(final double[] array) {
-        return maxElementIndex(array, array.length);
-    }
-
-    public static int maxElementIndex(final double[] array, final int endIndex) {
-        if (array == null || array.length == 0)
-            throw new IllegalArgumentException("Array cannot be null!");
-
-        int maxI = 0;
-        for (int i = 1; i < endIndex; i++) {
-            if (array[i] > array[maxI])
-                maxI = i;
-        }
-
-        return maxI;
-    }
-
-    public static <T> List<T> cons(final T elt, final List<T> l) {
-        List<T> l2 = new ArrayList<T>();
-        l2.add(elt);
-        if (l != null) l2.addAll(l);
-        return l2;
-    }
-
-    /**
-     * Make all combinations of N size of objects
-     *
-     * if objects = [A, B, C]
-     * if N = 1 => [[A], [B], [C]]
-     * if N = 2 => [[A, A], [B, A], [C, A], [A, B], [B, B], [C, B], [A, C], [B, C], [C, C]]
-     *
-     * @param objects
-     * @param n
-     * @param <T>
-     * @param withReplacement if false, the resulting permutations will only contain unique objects from objects
-     * @return
-     */
-    public static <T> List<List<T>> makePermutations(final List<T> objects, final int n, final boolean withReplacement) {
-        final List<List<T>> combinations = new ArrayList<List<T>>();
-
-        if ( n <= 0 )
-            ;
-        else if ( n == 1 ) {
-            for ( final T o : objects )
-                combinations.add(Collections.singletonList(o));
-        } else {
-            final List<List<T>> sub = makePermutations(objects, n - 1, withReplacement);
-            for ( List<T> subI : sub ) {
-                for ( final T a : objects ) {
-                    if ( withReplacement || ! subI.contains(a) )
-                        combinations.add(cons(a, subI));
-                }
-            }
-        }
-
-        return combinations;
-    }
-
-    /**
-     * Compares double values for equality (within 1e-6), or inequality.
-     *
-     * @param a the first double value
-     * @param b the second double value
-     * @return -1 if a is greater than b, 0 if a is equal to be within 1e-6, 1 if b is greater than a.
-     */
-    public static byte compareDoubles(double a, double b) {
-        return compareDoubles(a, b, 1e-6);
-    }
-
-    /**
-     * Compares double values for equality (within epsilon), or inequality.
-     *
-     * @param a       the first double value
-     * @param b       the second double value
-     * @param epsilon the precision within which two double values will be considered equal
-     * @return -1 if a is greater than b, 0 if a is equal to be within epsilon, 1 if b is greater than a.
-     */
-    public static byte compareDoubles(double a, double b, double epsilon) {
-        if (Math.abs(a - b) < epsilon) {
-            return 0;
-        }
-        if (a > b) {
-            return -1;
-        }
-        return 1;
-    }
-
-    static public final <T> List<T> reverse(final List<T> l) {
-        final List<T> newL = new ArrayList<T>(l);
-        Collections.reverse(newL);
-        return newL;
-    }
-}
-
-
diff --git a/src/java/org/broadinstitute/variant/variantcontext/Allele.java b/src/java/org/broadinstitute/variant/variantcontext/Allele.java
deleted file mode 100644
index 0113923..0000000
--- a/src/java/org/broadinstitute/variant/variantcontext/Allele.java
+++ /dev/null
@@ -1,505 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.variantcontext;
-
-import net.sf.samtools.util.StringUtil;
-
-import java.util.Arrays;
-import java.util.Collection;
-
-/**
- * Immutable representation of an allele
- *
- * Types of alleles:
- *
- * Ref: a t C g a // C is the reference base
- *
- *    : a t G g a // C base is a G in some individuals
- *
- *    : a t - g a // C base is deleted w.r.t. the reference
- *
- *    : a t CAg a // A base is inserted w.r.t. the reference sequence
- *
- * In these cases, where are the alleles?
- *
- * SNP polymorphism of C/G  -> { C , G } -> C is the reference allele
- * 1 base deletion of C     -> { tC , t } -> C is the reference allele and we include the preceding reference base (null alleles are not allowed)
- * 1 base insertion of A    -> { C ; CA } -> C is the reference allele (because null alleles are not allowed)
- *
- * Suppose I see a the following in the population:
- *
- * Ref: a t C g a // C is the reference base
- *    : a t G g a // C base is a G in some individuals
- *    : a t - g a // C base is deleted w.r.t. the reference
- *
- * How do I represent this?  There are three segregating alleles:
- *
- *  { C , G , - }
- *
- *  and these are represented as:
- *
- *  { tC, tG, t }
- *
- * Now suppose I have this more complex example:
- *
- * Ref: a t C g a // C is the reference base
- *    : a t - g a
- *    : a t - - a
- *    : a t CAg a
- *
- * There are actually four segregating alleles:
- *
- *   { Cg , -g, --, and CAg } over bases 2-4
- *
- *   represented as:
- *
- *   { tCg, tg, t, tCAg }
- *
- * Critically, it should be possible to apply an allele to a reference sequence to create the
- * correct haplotype sequence:
- *
- * Allele + reference => haplotype
- *
- * For convenience, we are going to create Alleles where the GenomeLoc of the allele is stored outside of the
- * Allele object itself.  So there's an idea of an A/C polymorphism independent of it's surrounding context.
- *
- * Given list of alleles it's possible to determine the "type" of the variation
- *
- *      A / C @ loc => SNP
- *      - / A => INDEL
- *
- * If you know where allele is the reference, you can determine whether the variant is an insertion or deletion.
- *
- * Alelle also supports is concept of a NO_CALL allele.  This Allele represents a haplotype that couldn't be
- * determined. This is usually represented by a '.' allele.
- *
- * Note that Alleles store all bases as bytes, in **UPPER CASE**.  So 'atc' == 'ATC' from the perspective of an
- * Allele.
-
- * @author ebanks, depristo
- */
-public class Allele implements Comparable<Allele> {
-    private static final byte[] EMPTY_ALLELE_BASES = new byte[0];
-
-    private boolean isRef = false;
-    private boolean isNoCall = false;
-    private boolean isSymbolic = false;
-
-    private byte[] bases = null;
-
-    public final static String NO_CALL_STRING = ".";
-    /** A generic static NO_CALL allele for use */
-
-    // no public way to create an allele
-    protected Allele(byte[] bases, boolean isRef) {
-        // null alleles are no longer allowed
-        if ( wouldBeNullAllele(bases) ) {
-            throw new IllegalArgumentException("Null alleles are not supported");
-        }
-
-        // no-calls are represented as no bases
-        if ( wouldBeNoCallAllele(bases) ) {
-            this.bases = EMPTY_ALLELE_BASES;
-            isNoCall = true;
-            if ( isRef ) throw new IllegalArgumentException("Cannot tag a NoCall allele as the reference allele");
-            return;
-        }
-
-        if ( wouldBeSymbolicAllele(bases) ) {
-            isSymbolic = true;
-            if ( isRef ) throw new IllegalArgumentException("Cannot tag a symbolic allele as the reference allele");
-        }
-        else {
-            StringUtil.toUpperCase(bases);
-        }
-
-        this.isRef = isRef;
-        this.bases = bases;
-
-        if ( ! acceptableAlleleBases(bases) )
-            throw new IllegalArgumentException("Unexpected base in allele bases \'" + new String(bases)+"\'");
-    }
-
-    protected Allele(String bases, boolean isRef) {
-        this(bases.getBytes(), isRef);
-    }
-
-    /**
-     * Creates a new allele based on the provided one.  Ref state will be copied unless ignoreRefState is true
-     * (in which case the returned allele will be non-Ref).
-     *
-     * This method is efficient because it can skip the validation of the bases (since the original allele was already validated)
-     *
-     * @param allele  the allele from which to copy the bases
-     * @param ignoreRefState  should we ignore the reference state of the input allele and use the default ref state?
-     */
-    protected Allele(final Allele allele, final boolean ignoreRefState) {
-        this.bases = allele.bases;
-        this.isRef = ignoreRefState ? false : allele.isRef;
-        this.isNoCall = allele.isNoCall;
-        this.isSymbolic = allele.isSymbolic;
-    }
-
-
-    private final static Allele REF_A = new Allele("A", true);
-    private final static Allele ALT_A = new Allele("A", false);
-    private final static Allele REF_C = new Allele("C", true);
-    private final static Allele ALT_C = new Allele("C", false);
-    private final static Allele REF_G = new Allele("G", true);
-    private final static Allele ALT_G = new Allele("G", false);
-    private final static Allele REF_T = new Allele("T", true);
-    private final static Allele ALT_T = new Allele("T", false);
-    private final static Allele REF_N = new Allele("N", true);
-    private final static Allele ALT_N = new Allele("N", false);
-    public final static Allele NO_CALL = new Allele(NO_CALL_STRING, false);
-
-    // ---------------------------------------------------------------------------------------------------------
-    //
-    // creation routines
-    //
-    // ---------------------------------------------------------------------------------------------------------
-
-    /**
-     * Create a new Allele that includes bases and if tagged as the reference allele if isRef == true.  If bases
-     * == '-', a Null allele is created.  If bases ==  '.', a no call Allele is created.
-     *
-     * @param bases the DNA sequence of this variation, '-', of '.'
-     * @param isRef should we make this a reference allele?
-     * @throws IllegalArgumentException if bases contains illegal characters or is otherwise malformated
-     */
-    public static Allele create(byte[] bases, boolean isRef) {
-        if ( bases == null )
-            throw new IllegalArgumentException("create: the Allele base string cannot be null; use new Allele() or new Allele(\"\") to create a Null allele");
-
-        if ( bases.length == 1 ) {
-            // optimization to return a static constant Allele for each single base object
-            switch (bases[0]) {
-                case '.':
-                    if ( isRef ) throw new IllegalArgumentException("Cannot tag a NoCall allele as the reference allele");
-                    return NO_CALL;
-                case 'A': case 'a' : return isRef ? REF_A : ALT_A;
-                case 'C': case 'c' : return isRef ? REF_C : ALT_C;
-                case 'G': case 'g' : return isRef ? REF_G : ALT_G;
-                case 'T': case 't' : return isRef ? REF_T : ALT_T;
-                case 'N': case 'n' : return isRef ? REF_N : ALT_N;
-                default: throw new IllegalArgumentException("Illegal base [" + (char)bases[0] + "] seen in the allele");
-            }
-        } else {
-            return new Allele(bases, isRef);
-        }
-    }
-
-    public static Allele create(byte base, boolean isRef) {
-        return create( new byte[]{ base }, isRef);
-    }
-
-    public static Allele create(byte base) {
-        return create( base, false );
-    }
-
-    public static Allele extend(Allele left, byte[] right) {
-        if (left.isSymbolic())
-            throw new IllegalArgumentException("Cannot extend a symbolic allele");
-        byte[] bases = new byte[left.length() + right.length];
-        System.arraycopy(left.getBases(), 0, bases, 0, left.length());
-        System.arraycopy(right, 0, bases, left.length(), right.length);
-
-        return create(bases, left.isReference());
-    }
-
-    /**
-     * @param bases  bases representing an allele
-     * @return true if the bases represent the null allele
-     */
-    public static boolean wouldBeNullAllele(byte[] bases) {
-        return (bases.length == 1 && bases[0] == '-') || bases.length == 0;
-    }
-
-    /**
-     * @param bases  bases representing an allele
-     * @return true if the bases represent the NO_CALL allele
-     */
-    public static boolean wouldBeNoCallAllele(byte[] bases) {
-        return bases.length == 1 && bases[0] == '.';
-    }
-
-    /**
-     * @param bases  bases representing an allele
-     * @return true if the bases represent a symbolic allele
-     */
-    public static boolean wouldBeSymbolicAllele(byte[] bases) {
-        if ( bases.length <= 2 )
-            return false;
-        else {
-            final String strBases = new String(bases);
-            return (bases[0] == '<' && bases[bases.length-1] == '>') ||
-                    (strBases.contains("[") || strBases.contains("]"));
-        }
-    }
-
-    /**
-     * @param bases  bases representing an allele
-     * @return true if the bases represent the well formatted allele
-     */
-    public static boolean acceptableAlleleBases(String bases) {
-        return acceptableAlleleBases(bases.getBytes(), true);
-    }
-
-    public static boolean acceptableAlleleBases(String bases, boolean allowNsAsAcceptable) {
-        return acceptableAlleleBases(bases.getBytes(), allowNsAsAcceptable);
-    }
-
-    /**
-     * @param bases  bases representing an allele
-     * @return true if the bases represent the well formatted allele
-     */
-    public static boolean acceptableAlleleBases(byte[] bases) {
-        return acceptableAlleleBases(bases, true); // default: N bases are acceptable
-    }
-    
-    public static boolean acceptableAlleleBases(byte[] bases, boolean allowNsAsAcceptable) {
-        if ( wouldBeNullAllele(bases) )
-            return false;
-
-        if ( wouldBeNoCallAllele(bases) || wouldBeSymbolicAllele(bases) )
-            return true;
-
-        for (byte base :  bases ) {
-            switch (base) {
-                case 'A': case 'C': case 'G': case 'T':  case 'a': case 'c': case 'g': case 't': 
-                    break;
-                case 'N' : case 'n' :
-                    if (allowNsAsAcceptable)
-                        break;
-                    else
-                        return false;
-                default:
-                    return false;
-            }
-        }
-
-        return true;
-    }
-
-    /**
-     * @see Allele(byte[], boolean)
-     *
-     * @param bases  bases representing an allele
-     * @param isRef  is this the reference allele?
-     */
-    public static Allele create(String bases, boolean isRef) {
-        return create(bases.getBytes(), isRef);
-    }
-
-
-    /**
-     * Creates a non-Ref allele.  @see Allele(byte[], boolean) for full information
-     *
-     * @param bases  bases representing an allele
-     */
-    public static Allele create(String bases) {
-        return create(bases, false);
-    }
-
-    /**
-     * Creates a non-Ref allele.  @see Allele(byte[], boolean) for full information
-     *
-     * @param bases  bases representing an allele
-     */
-    public static Allele create(byte[] bases) {
-        return create(bases, false);
-    }
-
-    /**
-     * Creates a new allele based on the provided one.  Ref state will be copied unless ignoreRefState is true
-     * (in which case the returned allele will be non-Ref).
-     *
-     * This method is efficient because it can skip the validation of the bases (since the original allele was already validated)
-     *
-     * @param allele  the allele from which to copy the bases
-     * @param ignoreRefState  should we ignore the reference state of the input allele and use the default ref state?
-     */
-    public static Allele create(final Allele allele, final boolean ignoreRefState) {
-        return new Allele(allele, ignoreRefState);
-    }
-
-    // ---------------------------------------------------------------------------------------------------------
-    //
-    // accessor routines
-    //
-    // ---------------------------------------------------------------------------------------------------------
-
-    // Returns true if this is the NO_CALL allele
-    public boolean isNoCall()           { return isNoCall; }
-    // Returns true if this is not the NO_CALL allele
-    public boolean isCalled()           { return ! isNoCall(); }
-
-    // Returns true if this Allele is the reference allele
-    public boolean isReference()        { return isRef; }
-    // Returns true if this Allele is not the reference allele
-    public boolean isNonReference()     { return ! isReference(); }
-
-    // Returns true if this Allele is symbolic (i.e. no well-defined base sequence)
-    public boolean isSymbolic()         { return isSymbolic; }
-
-    // Returns a nice string representation of this object
-    public String toString() {
-        return ( isNoCall() ? NO_CALL_STRING : getDisplayString() ) + (isReference() ? "*" : "");
-    }
-
-    /**
-     * Return the DNA bases segregating in this allele.  Note this isn't reference polarized,
-     * so the Null allele is represented by a vector of length 0
-     *
-     * @return the segregating bases
-     */
-    public byte[] getBases() { return isSymbolic ? EMPTY_ALLELE_BASES : bases; }
-
-    /**
-     * Return the DNA bases segregating in this allele in String format.
-     * This is useful, because toString() adds a '*' to reference alleles and getBases() returns garbage when you call toString() on it.
-     *
-     * @return the segregating bases
-     */
-    public String getBaseString() { return isNoCall() ? NO_CALL_STRING : new String(getBases()); }
-
-    /**
-     * Return the printed representation of this allele.
-     * Same as getBaseString(), except for symbolic alleles.
-     * For symbolic alleles, the base string is empty while the display string contains <TAG>.
-     *
-     * @return the allele string representation
-     */
-    public String getDisplayString() { return new String(bases); }
-
-    /**
-     * Same as #getDisplayString() but returns the result as byte[].
-     *
-     * Slightly faster then getDisplayString()
-     *
-     * @return the allele string representation
-     */
-    public byte[] getDisplayBases() { return bases; }
-
-    /**
-     * @param other  the other allele
-     *
-     * @return true if these alleles are equal
-     */
-    public boolean equals(Object other) {
-        return ( ! (other instanceof Allele) ? false : equals((Allele)other, false) );
-    }
-
-    /**
-     * @return hash code
-     */
-    public int hashCode() {
-        int hash = 1;
-        for (int i = 0; i < bases.length; i++)
-            hash += (i+1) * bases[i];
-        return hash;
-    }
-
-    /**
-     * Returns true if this and other are equal.  If ignoreRefState is true, then doesn't require both alleles has the
-     * same ref tag
-     *
-     * @param other            allele to compare to
-     * @param ignoreRefState   if true, ignore ref state in comparison
-     * @return true if this and other are equal
-     */
-    public boolean equals(Allele other, boolean ignoreRefState) {
-        return this == other || (isRef == other.isRef || ignoreRefState) && isNoCall == other.isNoCall && (bases == other.bases || Arrays.equals(bases, other.bases));
-    }
-
-    /**
-     * @param test  bases to test against
-     *
-     * @return  true if this Allele contains the same bases as test, regardless of its reference status; handles Null and NO_CALL alleles
-     */
-    public boolean basesMatch(byte[] test) { return !isSymbolic && (bases == test || Arrays.equals(bases, test)); }
-
-    /**
-     * @param test  bases to test against
-     *
-     * @return  true if this Allele contains the same bases as test, regardless of its reference status; handles Null and NO_CALL alleles
-     */
-    public boolean basesMatch(String test) { return basesMatch(test.toUpperCase().getBytes()); }
-
-    /**
-     * @param test  allele to test against
-     *
-     * @return  true if this Allele contains the same bases as test, regardless of its reference status; handles Null and NO_CALL alleles
-     */
-    public boolean basesMatch(Allele test) { return basesMatch(test.getBases()); }
-
-    /**
-     * @return the length of this allele.  Null and NO_CALL alleles have 0 length.
-     */
-    public int length() {
-        return isSymbolic ? 0 : bases.length;
-    }
-
-    // ---------------------------------------------------------------------------------------------------------
-    //
-    // useful static functions
-    //
-    // ---------------------------------------------------------------------------------------------------------
-
-    public static Allele getMatchingAllele(Collection<Allele> allAlleles, byte[] alleleBases) {
-        for ( Allele a : allAlleles ) {
-            if ( a.basesMatch(alleleBases) ) {
-                return a;
-            }
-        }
-
-        if ( wouldBeNoCallAllele(alleleBases) )
-            return NO_CALL;
-        else
-            return null;    // couldn't find anything
-    }
-
-    public int compareTo(Allele other) {
-        if ( isReference() && other.isNonReference() )
-            return -1;
-        else if ( isNonReference() && other.isReference() ) 
-            return 1;
-        else
-            return getBaseString().compareTo(other.getBaseString()); // todo -- potential performance issue
-    }
-
-    public static boolean oneIsPrefixOfOther(Allele a1, Allele a2) {
-        if ( a2.length() >= a1.length() )
-            return firstIsPrefixOfSecond(a1, a2);
-        else
-            return firstIsPrefixOfSecond(a2, a1);
-    }
-
-    private static boolean firstIsPrefixOfSecond(Allele a1, Allele a2) {
-        String a1String = a1.getBaseString();
-        return a2.getBaseString().substring(0, a1String.length()).equals(a1String);
-    }
-}
diff --git a/src/java/org/broadinstitute/variant/variantcontext/CommonInfo.java b/src/java/org/broadinstitute/variant/variantcontext/CommonInfo.java
deleted file mode 100644
index 16fa52e..0000000
--- a/src/java/org/broadinstitute/variant/variantcontext/CommonInfo.java
+++ /dev/null
@@ -1,263 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.variantcontext;
-
-
-import org.broadinstitute.variant.vcf.VCFConstants;
-
-import java.util.*;
-
-
-/**
- * Common utility routines for VariantContext and Genotype
- *
- * @author depristo
- */
-public final class CommonInfo {
-    public static final double NO_LOG10_PERROR = 1.0;
-
-    private static Set<String> NO_FILTERS = Collections.emptySet();
-    private static Map<String, Object> NO_ATTRIBUTES = Collections.unmodifiableMap(new HashMap<String, Object>());
-
-    private double log10PError = NO_LOG10_PERROR;
-    private String name = null;
-    private Set<String> filters = null;
-    private Map<String, Object> attributes = NO_ATTRIBUTES;
-
-    public CommonInfo(String name, double log10PError, Set<String> filters, Map<String, Object> attributes) {
-        this.name = name;
-        setLog10PError(log10PError);
-        this.filters = filters;
-        if ( attributes != null && ! attributes.isEmpty() ) {
-            this.attributes = attributes;
-        }
-    }
-
-    /**
-     * @return the name
-     */
-    public String getName() {
-        return name;
-    }
-
-    /**
-     * Sets the name
-     *
-     * @param name    the name associated with this information
-     */
-    public void setName(String name) {
-        if ( name == null ) throw new IllegalArgumentException("Name cannot be null " + this);
-        this.name = name;
-    }
-
-
-    // ---------------------------------------------------------------------------------------------------------
-    //
-    // Filter
-    //
-    // ---------------------------------------------------------------------------------------------------------
-
-    public Set<String> getFiltersMaybeNull() {
-        return filters;
-    }
-
-    public Set<String> getFilters() {
-        return filters == null ? NO_FILTERS : Collections.unmodifiableSet(filters);
-    }
-
-    public boolean filtersWereApplied() {
-        return filters != null;
-    }
-
-    public boolean isFiltered() {
-        return filters == null ? false : filters.size() > 0;
-    }
-
-    public boolean isNotFiltered() {
-        return ! isFiltered();
-    }
-
-    public void addFilter(String filter) {
-        if ( filters == null ) // immutable -> mutable
-            filters = new HashSet<String>();
-
-        if ( filter == null ) throw new IllegalArgumentException("BUG: Attempting to add null filter " + this);
-        if ( getFilters().contains(filter) ) throw new IllegalArgumentException("BUG: Attempting to add duplicate filter " + filter + " at " + this);
-        filters.add(filter);
-    }
-
-    public void addFilters(Collection<String> filters) {
-        if ( filters == null ) throw new IllegalArgumentException("BUG: Attempting to add null filters at" + this);
-        for ( String f : filters )
-            addFilter(f);
-    }
-
-    // ---------------------------------------------------------------------------------------------------------
-    //
-    // Working with log error rates
-    //
-    // ---------------------------------------------------------------------------------------------------------
-
-    public boolean hasLog10PError() {
-        return getLog10PError() != NO_LOG10_PERROR;
-    }
-
-    /**
-     * @return the -1 * log10-based error estimate
-     */
-    public double getLog10PError() { return log10PError; }
-    public double getPhredScaledQual() { return getLog10PError() * -10; }
-
-    public void setLog10PError(double log10PError) {
-        if ( log10PError > 0 && log10PError != NO_LOG10_PERROR)
-            throw new IllegalArgumentException("BUG: log10PError cannot be > 0 : " + this.log10PError);
-        if ( Double.isInfinite(this.log10PError) )
-            throw new IllegalArgumentException("BUG: log10PError should not be Infinity");
-        if ( Double.isNaN(this.log10PError) )
-            throw new IllegalArgumentException("BUG: log10PError should not be NaN");
-        this.log10PError = log10PError;
-    }
-
-    // ---------------------------------------------------------------------------------------------------------
-    //
-    // Working with attributes
-    //
-    // ---------------------------------------------------------------------------------------------------------
-    public void clearAttributes() {
-        attributes = new HashMap<String, Object>();
-    }
-
-    /**
-     * @return the attribute map
-     */
-    public Map<String, Object> getAttributes() {
-        return Collections.unmodifiableMap(attributes);
-    }
-
-    // todo -- define common attributes as enum
-
-    public void setAttributes(Map<String, ?> map) {
-        clearAttributes();
-        putAttributes(map);
-    }
-
-    public void putAttribute(String key, Object value) {
-        putAttribute(key, value, false);
-    }
-
-    public void putAttribute(String key, Object value, boolean allowOverwrites) {
-        if ( ! allowOverwrites && hasAttribute(key) )
-            throw new IllegalStateException("Attempting to overwrite key->value binding: key = " + key + " this = " + this);
-
-        if ( attributes == NO_ATTRIBUTES ) // immutable -> mutable
-            attributes = new HashMap<String, Object>();
-
-        attributes.put(key, value);
-    }
-
-    public void removeAttribute(String key) {
-        if ( attributes == NO_ATTRIBUTES ) // immutable -> mutable
-            attributes = new HashMap<String, Object>();
-        attributes.remove(key);
-    }
-
-    public void putAttributes(Map<String, ?> map) {
-        if ( map != null ) {
-            // for efficiency, we can skip the validation if the map is empty
-            if ( attributes.size() == 0 ) {
-                if ( attributes == NO_ATTRIBUTES ) // immutable -> mutable
-                    attributes = new HashMap<String, Object>();
-                attributes.putAll(map);
-            } else {
-                for ( Map.Entry<String, ?> elt : map.entrySet() ) {
-                    putAttribute(elt.getKey(), elt.getValue(), false);
-                }
-            }
-        }
-    }
-
-    public boolean hasAttribute(String key) {
-        return attributes.containsKey(key);
-    }
-
-    public int getNumAttributes() {
-        return attributes.size();
-    }
-
-    /**
-     * @param key    the attribute key
-     *
-     * @return the attribute value for the given key (or null if not set)
-     */
-    public Object getAttribute(String key) {
-        return attributes.get(key);
-    }
-
-    public Object getAttribute(String key, Object defaultValue) {
-        if ( hasAttribute(key) )
-            return attributes.get(key);
-        else
-            return defaultValue;
-    }
-
-    public String getAttributeAsString(String key, String defaultValue) {
-        Object x = getAttribute(key);
-        if ( x == null ) return defaultValue;
-        if ( x instanceof String ) return (String)x;
-        return String.valueOf(x); // throws an exception if this isn't a string
-    }
-
-    public int getAttributeAsInt(String key, int defaultValue) {
-        Object x = getAttribute(key);
-        if ( x == null || x == VCFConstants.MISSING_VALUE_v4 ) return defaultValue;
-        if ( x instanceof Integer ) return (Integer)x;
-        return Integer.valueOf((String)x); // throws an exception if this isn't a string
-    }
-
-    public double getAttributeAsDouble(String key, double defaultValue) {
-        Object x = getAttribute(key);
-        if ( x == null ) return defaultValue;
-        if ( x instanceof Double ) return (Double)x;
-        if ( x instanceof Integer ) return (Integer)x;
-        return Double.valueOf((String)x); // throws an exception if this isn't a string
-    }
-
-    public boolean getAttributeAsBoolean(String key, boolean defaultValue) {
-        Object x = getAttribute(key);
-        if ( x == null ) return defaultValue;
-        if ( x instanceof Boolean ) return (Boolean)x;
-        return Boolean.valueOf((String)x); // throws an exception if this isn't a string
-    }
-
-//    public String getAttributeAsString(String key)      { return (String.valueOf(getExtendedAttribute(key))); } // **NOTE**: will turn a null Object into the String "null"
-//    public int getAttributeAsInt(String key)            { Object x = getExtendedAttribute(key); return x instanceof Integer ? (Integer)x : Integer.valueOf((String)x); }
-//    public double getAttributeAsDouble(String key)      { Object x = getExtendedAttribute(key); return x instanceof Double ? (Double)x : Double.valueOf((String)x); }
-//    public boolean getAttributeAsBoolean(String key)      { Object x = getExtendedAttribute(key); return x instanceof Boolean ? (Boolean)x : Boolean.valueOf((String)x); }
-//    public Integer getAttributeAsIntegerNoException(String key)  { try {return getAttributeAsInt(key);} catch (Exception e) {return null;} }
-//    public Double getAttributeAsDoubleNoException(String key)    { try {return getAttributeAsDouble(key);} catch (Exception e) {return null;} }
-//    public String getAttributeAsStringNoException(String key)    { if (getExtendedAttribute(key) == null) return null; return getAttributeAsString(key); }
-//    public Boolean getAttributeAsBooleanNoException(String key)  { try {return getAttributeAsBoolean(key);} catch (Exception e) {return null;} }
-}
\ No newline at end of file
diff --git a/src/java/org/broadinstitute/variant/variantcontext/FastGenotype.java b/src/java/org/broadinstitute/variant/variantcontext/FastGenotype.java
deleted file mode 100644
index 2ed8914..0000000
--- a/src/java/org/broadinstitute/variant/variantcontext/FastGenotype.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.variantcontext;
-
-
-import com.google.java.contract.Requires;
-
-import java.util.*;
-
-/**
- * This class encompasses all the basic information about a genotype.  It is immutable.
- *
- * A genotype has several key fields
- *
- * -- a sample name, must be a non-null string
- *
- * -- an ordered list of alleles, intrepreted as the genotype of the sample,
- *    each allele for each chromosome given in order.  If alleles = [a*, t]
- *    then the sample is a/t, with a (the reference from the *) the first
- *    chromosome and t on the second chromosome
- *
- * -- a isPhased marker indicting where the alleles are phased with respect to some global
- *    coordinate system.  See VCF4.1 spec for a detailed discussion
- *
- * -- Inline, optimized ints and int[] values for:
- *      -- GQ: the phred-scaled genotype quality, of -1 if it's missing
- *
- *      -- DP: the count of reads at this locus for this sample, of -1 if missing
- *
- *      -- AD: an array of counts of reads at this locus, one for each Allele at the site.
- *             that is, for each allele in the surrounding VariantContext.  Null if missing.
- *
- *      -- PL: phred-scaled genotype likelihoods in standard VCF4.1 order for
- *             all combinations of the alleles in the surrounding VariantContext, given
- *             the ploidy of the sample (from the alleles vector).  Null if missing.
- *
- * -- A general map from String keys to -> Object values for all other attributes in
- *    this genotype.  Note that this map should not contain duplicate values for the
- *    standard bindings for GQ, DP, AD, and PL.  Genotype filters can be put into
- *    this genotype, but it isn't respected by the GATK in analyses
- *
- * The only way to build a Genotype object is with a GenotypeBuilder, which permits values
- * to be set in any order, which means that GenotypeBuilder may at some in the chain of
- * sets pass through invalid states that are not permitted in a fully formed immutable
- * Genotype.
- *
- * Note this is a simplified, refactored Genotype object based on the original
- * generic (and slow) implementation from the original VariantContext + Genotype
- * codebase.
- *
- * @author Mark DePristo
- * @since 05/12
- */
-public final class FastGenotype extends Genotype {
-    private final List<Allele> alleles;
-    private final boolean isPhased;
-    private final int GQ;
-    private final int DP;
-    private final int[] AD;
-    private final int[] PL;
-    private final Map<String, Object> extendedAttributes;
-
-    /**
-     * The only way to make one of these, for use by GenotypeBuilder only
-     *
-     * @param sampleName
-     * @param alleles
-     * @param isPhased
-     * @param GQ
-     * @param DP
-     * @param AD
-     * @param PL
-     * @param extendedAttributes
-     */
-    @Requires({
-            "sampleName != null",
-            "alleles != null",
-            "GQ >= -1",
-            "DP >= -1",
-            "validADorPLField(AD)",
-            "validADorPLField(PL)",
-            "extendedAttributes != null",
-            "! hasForbiddenKey(extendedAttributes)"})
-    protected FastGenotype(final String sampleName,
-                           final List<Allele> alleles,
-                           final boolean isPhased,
-                           final int GQ,
-                           final int DP,
-                           final int[] AD,
-                           final int[] PL,
-                           final String filters,
-                           final Map<String, Object> extendedAttributes) {
-        super(sampleName, filters);
-        this.alleles = alleles;
-        this.isPhased = isPhased;
-        this.GQ = GQ;
-        this.DP = DP;
-        this.AD = AD;
-        this.PL = PL;
-        this.extendedAttributes = extendedAttributes;
-    }
-
-    // ---------------------------------------------------------------------------------------------------------
-    //
-    // Implmenting the abstract methods
-    //
-    // ---------------------------------------------------------------------------------------------------------
-
-    @Override public List<Allele> getAlleles() {
-        return alleles;
-    }
-
-    @Override public Allele getAllele(int i) {
-        return alleles.get(i);
-    }
-
-    @Override public boolean isPhased() {
-        return isPhased;
-    }
-
-    @Override public int getDP() {
-        return DP;
-    }
-
-    @Override public int[] getAD() {
-        return AD;
-    }
-
-    @Override public int getGQ()  {
-        return GQ;
-    }
-
-    @Override public int[] getPL() {
-        return PL;
-    }
-
-    // ---------------------------------------------------------------------------------------------------------
-    // 
-    // get routines for extended attributes
-    //
-    // ---------------------------------------------------------------------------------------------------------
-
-    public Map<String, Object> getExtendedAttributes() {
-        return extendedAttributes;
-    }
-
-    /**
-     * Is values a valid AD or PL field
-     * @param values
-     * @return
-     */
-    private static boolean validADorPLField(final int[] values) {
-        if ( values != null )
-            for ( int v : values )
-                if ( v < 0 )
-                    return false;
-        return true;
-    }
-}
\ No newline at end of file
diff --git a/src/java/org/broadinstitute/variant/variantcontext/Genotype.java b/src/java/org/broadinstitute/variant/variantcontext/Genotype.java
deleted file mode 100644
index 3695c39..0000000
--- a/src/java/org/broadinstitute/variant/variantcontext/Genotype.java
+++ /dev/null
@@ -1,676 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.variantcontext;
-
-
-import com.google.java.contract.Ensures;
-import com.google.java.contract.Invariant;
-import com.google.java.contract.Requires;
-import org.broad.tribble.util.ParsingUtils;
-import org.broadinstitute.variant.vcf.VCFConstants;
-
-import java.util.*;
-
-/**
- * This class encompasses all the basic information about a genotype.  It is immutable.
- *
- * @author Mark DePristo
- */
- at Invariant({
-        "getAlleles() != null",
-        "getSampleName() != null",
-        "getPloidy() >= 0",
-        "! hasForbiddenKey(getExtendedAttributes())"})
-public abstract class Genotype implements Comparable<Genotype> {
-    /**
-     * A list of genotype field keys corresponding to values we
-     * manage inline in the Genotype object.  They must not appear in the
-     * extended attributes map
-     */
-    public final static Collection<String> PRIMARY_KEYS = Arrays.asList(
-            VCFConstants.GENOTYPE_FILTER_KEY,
-            VCFConstants.GENOTYPE_KEY,
-            VCFConstants.GENOTYPE_QUALITY_KEY,
-            VCFConstants.DEPTH_KEY,
-            VCFConstants.GENOTYPE_ALLELE_DEPTHS,
-            VCFConstants.GENOTYPE_PL_KEY);
-
-    public final static String PHASED_ALLELE_SEPARATOR = "|";
-    public final static String UNPHASED_ALLELE_SEPARATOR = "/";
-
-    private final String sampleName;
-    private GenotypeType type = null;
-    private final String filters;
-
-    protected Genotype(final String sampleName, final String filters) {
-        this.sampleName = sampleName;
-        this.filters = filters;
-    }
-
-    /**
-     * @return the alleles for this genotype.  Cannot be null.  May be empty
-     */
-    @Ensures("result != null")
-    public abstract List<Allele> getAlleles();
-
-    /**
-     * Returns how many times allele appears in this genotype object?
-     *
-     * @param allele
-     * @return a value >= 0 indicating how many times the allele occurred in this sample's genotype
-     */
-    @Requires("allele != null")
-    @Ensures("result >= 0")
-    public int countAllele(final Allele allele) {
-        int c = 0;
-        for ( final Allele a : getAlleles() )
-            if ( a.equals(allele) )
-                c++;
-
-        return c;
-    }
-
-    /**
-     * Get the ith allele in this genotype
-     *
-     * @param i the ith allele, must be < the ploidy, starting with 0
-     * @return the allele at position i, which cannot be null
-     */
-    @Requires({"i >=0 && i < getPloidy()", "getType() != GenotypeType.UNAVAILABLE"})
-    @Ensures("result != null")
-    public abstract Allele getAllele(int i);
-
-    /**
-     * Are the alleles phased w.r.t. the global phasing system?
-     *
-     * @return true if yes
-     */
-    public abstract boolean isPhased();
-
-    /**
-     * What is the ploidy of this sample?
-     *
-     * @return the ploidy of this genotype.  0 if the site is no-called.
-     */
-    @Ensures("result >= 0")
-    public int getPloidy() {
-        return getAlleles().size();
-    }
-
-    /**
-     * @return the sequencing depth of this sample, or -1 if this value is missing
-     */
-    @Ensures("result >= -1")
-    public abstract int getDP();
-
-    /**
-     * @return the count of reads, one for each allele in the surrounding Variant context,
-     *      matching the corresponding allele, or null if this value is missing.  MUST
-     *      NOT BE MODIFIED!
-     */
-    public abstract int[] getAD();
-
-    /**
-     * Returns the name associated with this sample.
-     *
-     * @return a non-null String
-     */
-    @Ensures("result != null")
-    public String getSampleName() {
-        return sampleName;
-    }
-
-    /**
-     * Returns a phred-scaled quality score, or -1 if none is available
-     * @return
-     */
-    @Ensures("result >= -1")
-    public abstract int getGQ();
-
-    /**
-     * Does the PL field have a value?
-     * @return true if there's a PL field value
-     */
-    @Ensures("(result == false && getPL() == null) || (result == true && getPL() != null)")
-    public boolean hasPL() {
-        return getPL() != null;
-    }
-
-    /**
-     * Does the AD field have a value?
-     * @return true if there's a AD field value
-     */
-    @Ensures("(result == false && getAD() == null) || (result == true && getAD() != null)")
-    public boolean hasAD() {
-        return getAD() != null;
-    }
-
-    /**
-     * Does the GQ field have a value?
-     * @return true if there's a GQ field value
-     */
-    @Ensures("(result == false && getGQ() == -1) || (result == true && getGQ() >= 0)")
-    public boolean hasGQ() {
-        return getGQ() != -1;
-    }
-
-    /**
-     * Does the DP field have a value?
-     * @return true if there's a DP field value
-     */
-    @Ensures("(result == false && getDP() == -1) || (result == true && getDP() >= 0)")
-    public boolean hasDP() {
-        return getDP() != -1;
-    }
-
-    // ---------------------------------------------------------------------------------------------------------
-    //
-    // The type of this genotype
-    //
-    // ---------------------------------------------------------------------------------------------------------
-
-    /**
-     * @return the high-level type of this sample's genotype
-     */
-    @Ensures({"type != null", "result != null"})
-    public GenotypeType getType() {
-        if ( type == null ) {
-            type = determineType();
-        }
-        return type;
-    }
-
-    /**
-     * Internal code to determine the type of the genotype from the alleles vector
-     * @return the type
-     */
-    @Requires("type == null") // we should never call if already calculated
-    protected GenotypeType determineType() {
-        // TODO -- this code is slow and could be optimized for the diploid case
-        final List<Allele> alleles = getAlleles();
-        if ( alleles.isEmpty() )
-            return GenotypeType.UNAVAILABLE;
-
-        boolean sawNoCall = false, sawMultipleAlleles = false;
-        Allele observedAllele = null;
-
-        for ( final Allele allele : alleles ) {
-            if ( allele.isNoCall() )
-                sawNoCall = true;
-            else if ( observedAllele == null )
-                observedAllele = allele;
-            else if ( !allele.equals(observedAllele) )
-                sawMultipleAlleles = true;
-        }
-
-        if ( sawNoCall ) {
-            if ( observedAllele == null )
-                return GenotypeType.NO_CALL;
-            return GenotypeType.MIXED;
-        }
-
-        if ( observedAllele == null )
-            throw new IllegalStateException("BUG: there are no alleles present in this genotype but the alleles list is not null");
-
-        return sawMultipleAlleles ? GenotypeType.HET : observedAllele.isReference() ? GenotypeType.HOM_REF : GenotypeType.HOM_VAR;
-    }
-
-    /**
-     * @return true if all observed alleles are the same (regardless of whether they are ref or alt); if any alleles are no-calls, this method will return false.
-     */
-    public boolean isHom()    { return isHomRef() || isHomVar(); }
-
-    /**
-     * @return true if all observed alleles are ref; if any alleles are no-calls, this method will return false.
-     */
-    public boolean isHomRef() { return getType() == GenotypeType.HOM_REF; }
-
-    /**
-     * @return true if all observed alleles are alt; if any alleles are no-calls, this method will return false.
-     */
-    public boolean isHomVar() { return getType() == GenotypeType.HOM_VAR; }
-
-    /**
-     * @return true if we're het (observed alleles differ); if the ploidy is less than 2 or if any alleles are no-calls, this method will return false.
-     */
-    public boolean isHet() { return getType() == GenotypeType.HET; }
-
-    /**
-     * @return true if this genotype is not actually a genotype but a "no call" (e.g. './.' in VCF); if any alleles are not no-calls (even if some are), this method will return false.
-     */
-    public boolean isNoCall() { return getType() == GenotypeType.NO_CALL; }
-
-    /**
-     * @return true if this genotype is comprised of any alleles that are not no-calls (even if some are).
-     */
-    public boolean isCalled() { return getType() != GenotypeType.NO_CALL && getType() != GenotypeType.UNAVAILABLE; }
-
-    /**
-     * @return true if this genotype is comprised of both calls and no-calls.
-     */
-    public boolean isMixed() { return getType() == GenotypeType.MIXED; }
-
-    /**
-     * @return true if the type of this genotype is set.
-     */
-    public boolean isAvailable() { return getType() != GenotypeType.UNAVAILABLE; }
-
-    // ------------------------------------------------------------------------------
-    //
-    // methods for getting genotype likelihoods for a genotype object, if present
-    //
-    // ------------------------------------------------------------------------------
-
-    /**
-     * @return Returns true if this Genotype has PL field values
-     */
-    @Ensures("(result && getLikelihoods() != null) || (! result && getLikelihoods() == null)")
-    public boolean hasLikelihoods() {
-        return getPL() != null;
-    }
-
-    /**
-     * Convenience function that returns a string representation of the PL field of this
-     * genotype, or . if none is available.
-     *
-     * @return a non-null String representation for the PL of this sample
-     */
-    @Ensures("result != null")
-    public String getLikelihoodsString() {
-        return hasLikelihoods() ? getLikelihoods().toString() : VCFConstants.MISSING_VALUE_v4;
-    }
-
-    /**
-     * Returns the GenotypesLikelihoods data associated with this Genotype, or null if missing
-     * @return null or a GenotypesLikelihood object for this sample's PL field
-     */
-    @Ensures("(hasLikelihoods() && result != null) || (! hasLikelihoods() && result == null)")
-    public GenotypeLikelihoods getLikelihoods() {
-        return hasLikelihoods() ? GenotypeLikelihoods.fromPLs(getPL()) : null;
-    }
-
-    /**
-     * Are all likelihoods for this sample non-informative?
-     *
-     * Returns true if all PLs are 0 => 0,0,0 => true
-     * 0,0,0,0,0,0 => true
-     * 0,10,100 => false
-     *
-     * @return true if all samples PLs are equal and == 0
-     */
-    public boolean isNonInformative() {
-        if ( getPL() == null )
-            return true;
-        else {
-            for ( final int PL : getPL() ) {
-                if ( PL != 0 )
-                    return false;
-            }
-
-            return true;
-        }
-    }
-
-    /**
-     * Unsafe low-level accessor the PL field itself, may be null.
-     *
-     * @return a pointer to the underlying PL data.  MUST NOT BE MODIFIED!
-     */
-    public abstract int[] getPL();
-
-    // ---------------------------------------------------------------------------------------------------------
-    //
-    // Many different string representations
-    //
-    // ---------------------------------------------------------------------------------------------------------
-
-    /**
-     * Return a VCF-like string representation for the alleles of this genotype.
-     *
-     * Does not append the reference * marker on the alleles.
-     *
-     * @return a string representing the genotypes, or null if the type is unavailable.
-     */
-    @Ensures("result != null || ! isAvailable()")
-    public String getGenotypeString() {
-        return getGenotypeString(true);
-    }
-
-    /**
-     * Return a VCF-like string representation for the alleles of this genotype.
-     *
-     * If ignoreRefState is true, will not append the reference * marker on the alleles.
-     *
-     * @return a string representing the genotypes, or null if the type is unavailable.
-     */
-    @Ensures("result != null || ! isAvailable()")
-    public String getGenotypeString(boolean ignoreRefState) {
-        if ( getPloidy() == 0 )
-            return "NA";
-
-        // Notes:
-        // 1. Make sure to use the appropriate separator depending on whether the genotype is phased
-        // 2. If ignoreRefState is true, then we want just the bases of the Alleles (ignoring the '*' indicating a ref Allele)
-        // 3. So that everything is deterministic with regards to integration tests, we sort Alleles (when the genotype isn't phased, of course)
-        return ParsingUtils.join(isPhased() ? PHASED_ALLELE_SEPARATOR : UNPHASED_ALLELE_SEPARATOR,
-                ignoreRefState ? getAlleleStrings() : (isPhased() ? getAlleles() : ParsingUtils.sortList(getAlleles())));
-    }
-
-    /**
-     * Utility that returns a list of allele strings corresponding to the alleles in this sample
-     * @return
-     */
-    protected List<String> getAlleleStrings() {
-        final List<String> al = new ArrayList<String>(getPloidy());
-        for ( Allele a : getAlleles() )
-            al.add(a.getBaseString());
-
-        return al;
-    }
-
-    public String toString() {
-        return String.format("[%s %s%s%s%s%s%s%s]",
-                getSampleName(),
-                getGenotypeString(false),
-                toStringIfExists(VCFConstants.GENOTYPE_QUALITY_KEY, getGQ()),
-                toStringIfExists(VCFConstants.DEPTH_KEY, getDP()),
-                toStringIfExists(VCFConstants.GENOTYPE_ALLELE_DEPTHS, getAD()),
-                toStringIfExists(VCFConstants.GENOTYPE_PL_KEY, getPL()),
-                toStringIfExists(VCFConstants.GENOTYPE_FILTER_KEY, getFilters()),
-                sortedString(getExtendedAttributes()));
-    }
-
-    public String toBriefString() {
-        return String.format("%s:Q%d", getGenotypeString(false), getGQ());
-    }
-
-    // ---------------------------------------------------------------------------------------------------------
-    //
-    // Comparison operations
-    //
-    // ---------------------------------------------------------------------------------------------------------
-
-    /**
-     * comparable genotypes -> compareTo on the sample names
-     * @param genotype
-     * @return
-     */
-    @Override
-    public int compareTo(final Genotype genotype) {
-        return getSampleName().compareTo(genotype.getSampleName());
-    }
-
-    public boolean sameGenotype(final Genotype other) {
-        return sameGenotype(other, true);
-    }
-
-    public boolean sameGenotype(final Genotype other, boolean ignorePhase) {
-        if (getPloidy() != other.getPloidy())
-            return false; // gotta have the same number of allele to be equal
-
-        // By default, compare the elements in the lists of alleles, element-by-element
-        Collection<Allele> thisAlleles = this.getAlleles();
-        Collection<Allele> otherAlleles = other.getAlleles();
-
-        if (ignorePhase) { // do not care about order, only identity of Alleles
-            thisAlleles = new TreeSet<Allele>(thisAlleles);   //implemented Allele.compareTo()
-            otherAlleles = new TreeSet<Allele>(otherAlleles);
-        }
-
-        return thisAlleles.equals(otherAlleles);
-    }
-
-    // ---------------------------------------------------------------------------------------------------------
-    //
-    // get routines for extended attributes
-    //
-    // ---------------------------------------------------------------------------------------------------------
-
-    /**
-     * Returns the extended attributes for this object
-     * @return is never null, but is often isEmpty()
-     */
-    @Ensures({"result != null", "! hasForbiddenKey(result)"})
-    public abstract Map<String, Object> getExtendedAttributes();
-
-    /**
-     * Is key associated with a value (even a null one) in the extended attributes?
-     *
-     * Note this will not return true for the inline attributes DP, GQ, AD, or PL
-     *
-     * @param key a non-null string key to check for an association
-     * @return true if key has a value in the extendedAttributes
-     */
-    @Requires({"key != null", "! isForbiddenKey(key)"})
-    public boolean hasExtendedAttribute(final String key) {
-        return getExtendedAttributes().containsKey(key);
-    }
-
-    /**
-     * Get the extended attribute value associated with key, if possible
-     *
-     * @param key a non-null string key to fetch a value for
-     * @param defaultValue the value to return if key isn't in the extended attributes
-     * @return a value (potentially) null associated with key, or defaultValue if no association exists
-     */
-    @Requires({"key != null", "! isForbiddenKey(key)"})
-    @Ensures("hasExtendedAttribute(key) || result == defaultValue")
-    public Object getExtendedAttribute(final String key, final Object defaultValue) {
-        return hasExtendedAttribute(key) ? getExtendedAttributes().get(key) : defaultValue;
-    }
-
-    /**
-     * Same as #getExtendedAttribute with a null default
-     *
-     * @param key
-     * @return
-     */
-    public Object getExtendedAttribute(final String key) {
-        return getExtendedAttribute(key, null);
-    }
-
-    /**
-     * Returns the filter string associated with this Genotype.
-     *
-     * @return If this result == null, then the genotype is considered PASSing filters
-     *   If the result != null, then the genotype has failed filtering for the reason(s)
-     *   specified in result.  To be reference compliant multiple filter field
-     *   string values can be encoded with a ; separator.
-     */
-    public final String getFilters() {
-        return filters;
-    }
-
-    /**
-     * Is this genotype filtered or not?
-     *
-     * @return returns false if getFilters() == null
-     */
-    @Ensures({"result != (getFilters() == null)"})
-    public final boolean isFiltered() {
-        return getFilters() != null;
-    }
-
-    @Deprecated public boolean hasLog10PError() { return hasGQ(); }
-    @Deprecated public double getLog10PError() { return getGQ() / -10.0; }
-    @Deprecated public int getPhredScaledQual() { return getGQ(); }
-
-    @Deprecated
-    public String getAttributeAsString(String key, String defaultValue) {
-        Object x = getExtendedAttribute(key);
-        if ( x == null ) return defaultValue;
-        if ( x instanceof String ) return (String)x;
-        return String.valueOf(x); // throws an exception if this isn't a string
-    }
-
-    @Deprecated
-    public int getAttributeAsInt(String key, int defaultValue) {
-        Object x = getExtendedAttribute(key);
-        if ( x == null || x == VCFConstants.MISSING_VALUE_v4 ) return defaultValue;
-        if ( x instanceof Integer ) return (Integer)x;
-        return Integer.valueOf((String)x); // throws an exception if this isn't a string
-    }
-
-    @Deprecated
-    public double getAttributeAsDouble(String key, double defaultValue) {
-        Object x = getExtendedAttribute(key);
-        if ( x == null ) return defaultValue;
-        if ( x instanceof Double ) return (Double)x;
-        return Double.valueOf((String)x); // throws an exception if this isn't a string
-    }
-
-    /**
-     * A totally generic getter, that allows you to specific keys that correspond
-     * to even inline values (GQ, for example).  Can be very expensive.  Additionally,
-     * all int[] are converted inline into List<Integer> for convenience.
-     *
-     * @param key
-     * @return
-     */
-    public Object getAnyAttribute(final String key) {
-        if (key.equals(VCFConstants.GENOTYPE_KEY)) {
-            return getAlleles();
-        } else if (key.equals(VCFConstants.GENOTYPE_QUALITY_KEY)) {
-            return getGQ();
-        } else if (key.equals(VCFConstants.GENOTYPE_ALLELE_DEPTHS)) {
-            return Arrays.asList(getAD());
-        } else if (key.equals(VCFConstants.GENOTYPE_PL_KEY)) {
-            return Arrays.asList(getPL());
-        } else if (key.equals(VCFConstants.DEPTH_KEY)) {
-            return getDP();
-        } else {
-            return getExtendedAttribute(key);
-        }
-    }
-
-    public boolean hasAnyAttribute(final String key) {
-        if (key.equals(VCFConstants.GENOTYPE_KEY)) {
-            return isAvailable();
-        } else if (key.equals(VCFConstants.GENOTYPE_QUALITY_KEY)) {
-            return hasGQ();
-        } else if (key.equals(VCFConstants.GENOTYPE_ALLELE_DEPTHS)) {
-            return hasAD();
-        } else if (key.equals(VCFConstants.GENOTYPE_PL_KEY)) {
-            return hasPL();
-        } else if (key.equals(VCFConstants.DEPTH_KEY)) {
-            return hasDP();
-        } else {
-            return hasExtendedAttribute(key);
-        }
-    }
-
-    // TODO -- add getAttributesAsX interface here
-
-    // ------------------------------------------------------------------------------
-    //
-    // private utilities
-    //
-    // ------------------------------------------------------------------------------
-
-    /**
-     * a utility method for generating sorted strings from a map key set.
-     * @param c the map
-     * @param <T> the key type
-     * @param <V> the value type
-     * @return a sting, enclosed in {}, with comma seperated key value pairs in order of the keys
-     */
-    @Requires("c != null")
-    protected static <T extends Comparable<T>, V> String sortedString(Map<T, V> c) {
-
-        // NOTE -- THIS IS COPIED FROM GATK UTILS TO ALLOW US TO KEEP A SEPARATION BETWEEN THE GATK AND VCF CODECS
-        final List<T> t = new ArrayList<T>(c.keySet());
-        Collections.sort(t);
-
-        final List<String> pairs = new ArrayList<String>();
-        for (final T k : t) {
-            pairs.add(k + "=" + c.get(k));
-        }
-
-        return pairs.isEmpty() ? "" : " {" + ParsingUtils.join(", ", pairs.toArray(new String[pairs.size()])) + "}";
-    }
-
-    /**
-     * Returns a display name for field name with value v if this isn't -1.  Otherwise returns ""
-     * @param name of the field ("AD")
-     * @param v the value of the field, or -1 if missing
-     * @return a non-null string for display if the field is not missing
-     */
-    @Requires("name != null")
-    @Ensures("result != null")
-    protected final static String toStringIfExists(final String name, final int v) {
-        return v == -1 ? "" : " " + name + " " + v;
-    }
-
-    /**
-     * Returns a display name for field name with String value v if this isn't null.  Otherwise returns ""
-     * @param name of the field ("FT")
-     * @param v the value of the field, or null if missing
-     * @return a non-null string for display if the field is not missing
-     */
-    protected final static String toStringIfExists(final String name, final String v) {
-        return v == null ? "" : " " + name + " " + v;
-    }
-
-    /**
-     * Returns a display name for field name with values vs if this isn't null.  Otherwise returns ""
-     * @param name of the field ("AD")
-     * @param vs the value of the field, or null if missing
-     * @return a non-null string for display if the field is not missing
-     */
-    @Requires("name != null")
-    @Ensures("result != null")
-    protected final static String toStringIfExists(final String name, final int[] vs) {
-        if ( vs == null )
-            return "";
-        else {
-            StringBuilder b = new StringBuilder();
-            b.append(" ").append(name).append(" ");
-            for ( int i = 0; i < vs.length; i++ ) {
-                if ( i != 0 ) b.append(",");
-                b.append(vs[i]);
-            }
-            return b.toString();
-        }
-    }
-
-    /**
-     * Does the attribute map have a mapping involving a forbidden key (i.e.,
-     * one that's managed inline by this Genotypes object?
-     *
-     * @param attributes the extended attributes key
-     * @return
-     */
-    protected final static boolean hasForbiddenKey(final Map<String, Object> attributes) {
-        for ( final String forbidden : PRIMARY_KEYS)
-            if ( attributes.containsKey(forbidden) )
-                return true;
-        return false;
-    }
-
-    protected final static boolean isForbiddenKey(final String key) {
-        return PRIMARY_KEYS.contains(key);
-    }
-}
\ No newline at end of file
diff --git a/src/java/org/broadinstitute/variant/variantcontext/GenotypeBuilder.java b/src/java/org/broadinstitute/variant/variantcontext/GenotypeBuilder.java
deleted file mode 100644
index 31ba942..0000000
--- a/src/java/org/broadinstitute/variant/variantcontext/GenotypeBuilder.java
+++ /dev/null
@@ -1,419 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.variantcontext;
-
-
-import com.google.java.contract.Ensures;
-import com.google.java.contract.Invariant;
-import com.google.java.contract.Requires;
-import org.broad.tribble.util.ParsingUtils;
-import org.broadinstitute.variant.vcf.VCFConstants;
-
-import java.util.*;
-
-/**
- * A builder class for genotypes
- *
- * Provides convenience setter methods for all of the Genotype field
- * values.  Setter methods can be used in any order, allowing you to
- * pass through states that wouldn't be allowed in the highly regulated
- * immutable Genotype class.
- *
- * All fields default to meaningful MISSING values.
- *
- * Call make() to actually create the corresponding Genotype object from
- * this builder.  Can be called multiple times to create independent copies,
- * or with intervening sets to conveniently make similar Genotypes with
- * slight modifications.
- *
- * @author Mark DePristo
- * @since 06/12
- */
- at Invariant({"alleles != null"})
-public final class GenotypeBuilder {
-    private static final List<Allele> HAPLOID_NO_CALL = Arrays.asList(Allele.NO_CALL);
-    private static final List<Allele> DIPLOID_NO_CALL = Arrays.asList(Allele.NO_CALL, Allele.NO_CALL);
-
-    private String sampleName = null;
-    private List<Allele> alleles = Collections.emptyList();
-
-    private boolean isPhased = false;
-    private int GQ = -1;
-    private int DP = -1;
-    private int[] AD = null;
-    private int[] PL = null;
-    private Map<String, Object> extendedAttributes = null;
-    private String filters = null;
-    private int initialAttributeMapSize = 5;
-
-    private final static Map<String, Object> NO_ATTRIBUTES =
-            Collections.unmodifiableMap(new HashMap<String, Object>(0));
-
-    // -----------------------------------------------------------------
-    //
-    // Factory methods
-    //
-    // -----------------------------------------------------------------
-
-    public static Genotype create(final String sampleName, final List<Allele> alleles) {
-        return new GenotypeBuilder(sampleName, alleles).make();
-    }
-
-    public static Genotype create(final String sampleName,
-                                        final List<Allele> alleles,
-                                        final Map<String, Object> attributes) {
-        return new GenotypeBuilder(sampleName, alleles).attributes(attributes).make();
-    }
-
-    protected static Genotype create(final String sampleName,
-                                           final List<Allele> alleles,
-                                           final double[] gls) {
-        return new GenotypeBuilder(sampleName, alleles).PL(gls).make();
-    }
-
-    /**
-     * Create a new Genotype object for a sample that's missing from the VC (i.e., in
-     * the output header).  Defaults to a diploid no call genotype ./.
-     *
-     * @param sampleName the name of this sample
-     * @return an initialized Genotype with sampleName that's a diploid ./. no call genotype
-     */
-    public static Genotype createMissing(final String sampleName, final int ploidy) {
-        final GenotypeBuilder builder = new GenotypeBuilder(sampleName);
-        switch ( ploidy ) {
-            case 1:  builder.alleles(HAPLOID_NO_CALL); break;
-            case 2:  builder.alleles(DIPLOID_NO_CALL); break;
-            default: builder.alleles(Collections.nCopies(ploidy, Allele.NO_CALL)); break;
-        }
-        return builder.make();
-    }
-
-    /**
-     * Create a empty builder.  Both a sampleName and alleles must be provided
-     * before trying to make a Genotype from this builder.
-     */
-    public GenotypeBuilder() {}
-
-    /**
-     * Create a builder using sampleName.  Alleles must be provided
-     * before trying to make a Genotype from this builder.
-     * @param sampleName
-     */
-    public GenotypeBuilder(final String sampleName) {
-        name(sampleName);
-    }
-
-    /**
-     * Make a builder using sampleName and alleles for starting values
-     * @param sampleName
-     * @param alleles
-     */
-    public GenotypeBuilder(final String sampleName, final List<Allele> alleles) {
-        name(sampleName);
-        alleles(alleles);
-    }
-
-    /**
-     * Create a new builder starting with the values in Genotype g
-     * @param g
-     */
-    public GenotypeBuilder(final Genotype g) {
-        copy(g);
-    }
-
-    /**
-     * Copy all of the values for this builder from Genotype g
-     * @param g
-     * @return
-     */
-    public GenotypeBuilder copy(final Genotype g) {
-        name(g.getSampleName());
-        alleles(g.getAlleles());
-        phased(g.isPhased());
-        GQ(g.getGQ());
-        DP(g.getDP());
-        AD(g.getAD());
-        PL(g.getPL());
-        filter(g.getFilters());
-        attributes(g.getExtendedAttributes());
-        return this;
-    }
-
-    /**
-     * Reset all of the builder attributes to their defaults.  After this
-     * function you must provide sampleName and alleles before trying to
-     * make more Genotypes.
-     */
-    public final void reset(final boolean keepSampleName) {
-        if ( ! keepSampleName ) sampleName = null;
-        alleles = Collections.emptyList();
-        isPhased = false;
-        GQ = -1;
-        DP = -1;
-        AD = null;
-        PL = null;
-        filters = null;
-        extendedAttributes = null;
-    }
-
-    /**
-     * Create a new Genotype object using the values set in this builder.
-     *
-     * After creation the values in this builder can be modified and more Genotypes
-     * created, althrough the contents of array values like PL should never be modified
-     * inline as they are not copied for efficiency reasons.
-     *
-     * @return a newly minted Genotype object with values provided from this builder
-     */
-    @Ensures({"result != null"})
-    public Genotype make() {
-        final Map<String, Object> ea = extendedAttributes == null ? NO_ATTRIBUTES : extendedAttributes;
-        return new FastGenotype(sampleName, alleles, isPhased, GQ, DP, AD, PL, filters, ea);
-    }
-
-    /**
-     * Set this genotype's name
-     * @param sampleName
-     * @return
-     */
-    @Requires({"sampleName != null"})
-    @Ensures({"this.sampleName != null"})
-    public GenotypeBuilder name(final String sampleName) {
-        this.sampleName = sampleName;
-        return this;
-    }
-
-    /**
-     * Set this genotype's alleles
-     * @param alleles
-     * @return
-     */
-    @Ensures({"this.alleles != null"})
-    public GenotypeBuilder alleles(final List<Allele> alleles) {
-        if ( alleles == null )
-            this.alleles = Collections.emptyList();
-        else
-            this.alleles = alleles;
-        return this;
-    }
-
-    /**
-     * Is this genotype phased?
-     * @param phased
-     * @return
-     */
-    public GenotypeBuilder phased(final boolean phased) {
-        isPhased = phased;
-        return this;
-    }
-
-    @Requires({"GQ >= -1"})
-    @Ensures({"this.GQ == GQ", "this.GQ >= -1"})
-    public GenotypeBuilder GQ(final int GQ) {
-        this.GQ = GQ;
-        return this;
-    }
-
-    /**
-     * Adaptor interface from the pLog10Error system.
-     *
-     * Will be retired when
-     *
-     * @param pLog10Error
-     * @return
-     */
-    @Deprecated
-    public GenotypeBuilder log10PError(final double pLog10Error) {
-        if ( pLog10Error == CommonInfo.NO_LOG10_PERROR )
-            return GQ(-1);
-        else
-            return GQ((int)Math.round(pLog10Error * -10));
-    }
-
-    /**
-     * This genotype has no GQ value
-     * @return
-     */
-    public GenotypeBuilder noGQ() { GQ = -1; return this; }
-
-    /**
-     * This genotype has no AD value
-     * @return
-     */
-    public GenotypeBuilder noAD() { AD = null; return this; }
-
-    /**
-     * This genotype has no DP value
-     * @return
-     */
-    public GenotypeBuilder noDP() { DP = -1; return this; }
-
-    /**
-     * This genotype has no PL value
-     * @return
-     */
-    public GenotypeBuilder noPL() { PL = null; return this; }
-
-    /**
-     * This genotype has this DP value
-     * @return
-     */
-    @Requires({"DP >= -1"})
-    @Ensures({"this.DP == DP"})
-    public GenotypeBuilder DP(final int DP) {
-        this.DP = DP;
-        return this;
-    }
-
-    /**
-     * This genotype has this AD value
-     * @return
-     */
-    @Requires({"AD == null || AD.length > 0"})
-    @Ensures({"this.AD == AD"})
-    public GenotypeBuilder AD(final int[] AD) {
-        this.AD = AD;
-        return this;
-    }
-
-    /**
-     * This genotype has this PL value, as int[].  FAST
-     * @return
-     */
-    @Requires("PL == null || PL.length > 0")
-    @Ensures({"this.PL == PL"})
-    public GenotypeBuilder PL(final int[] PL) {
-        this.PL = PL;
-        return this;
-    }
-
-    /**
-     * This genotype has this PL value, converted from double[]. SLOW
-     * @return
-     */
-    @Requires("PL == null || PL.length > 0")
-    @Ensures({"this.PL == PL"})
-    public GenotypeBuilder PL(final double[] GLs) {
-        this.PL = GenotypeLikelihoods.fromLog10Likelihoods(GLs).getAsPLs();
-        return this;
-    }
-
-    /**
-     * This genotype has these attributes.
-     *
-     * Cannot contain inline attributes (DP, AD, GQ, PL)
-     * @return
-     */
-    @Requires("attributes != null")
-    @Ensures("attributes.isEmpty() || extendedAttributes != null")
-    public GenotypeBuilder attributes(final Map<String, Object> attributes) {
-        for ( Map.Entry<String, Object> pair : attributes.entrySet() )
-            attribute(pair.getKey(), pair.getValue());
-        return this;
-    }
-
-    /**
-     * Tells this builder to remove all extended attributes
-     *
-     * @return
-     */
-    public GenotypeBuilder noAttributes() {
-        this.extendedAttributes = null;
-        return this;
-    }
-
-    /**
-     * This genotype has this attribute key / value pair.
-     *
-     * Cannot contain inline attributes (DP, AD, GQ, PL)
-     * @return
-     */
-    @Requires({"key != null"})
-    @Ensures({"extendedAttributes != null", "extendedAttributes.containsKey(key)"})
-    public GenotypeBuilder attribute(final String key, final Object value) {
-        if ( extendedAttributes == null )
-            extendedAttributes = new HashMap<String, Object>(initialAttributeMapSize);
-        extendedAttributes.put(key, value);
-        return this;
-    }
-
-    /**
-     * Tells this builder to make a Genotype object that has had filters applied,
-     * which may be empty (passes) or have some value indicating the reasons
-     * why it's been filtered.
-     *
-     * @param filters non-null list of filters.  empty list => PASS
-     * @return this builder
-     */
-    @Requires("filters != null")
-    public GenotypeBuilder filters(final List<String> filters) {
-        if ( filters.isEmpty() )
-            return filter(null);
-        else if ( filters.size() == 1 )
-            return filter(filters.get(0));
-        else
-            return filter(ParsingUtils.join(";", ParsingUtils.sortList(filters)));
-    }
-
-    /**
-     * varargs version of #filters
-     * @param filters
-     * @return
-     */
-    @Requires("filters != null")
-    public GenotypeBuilder filters(final String ... filters) {
-        return filters(Arrays.asList(filters));
-    }
-
-    /**
-     * Most efficient version of setting filters -- just set the filters string to filters
-     *
-     * @param filter if filters == null or filters.equals("PASS") => genotype is PASS
-     * @return
-     */
-    public GenotypeBuilder filter(final String filter) {
-        this.filters = VCFConstants.PASSES_FILTERS_v4.equals(filter) ? null : filter;
-        return this;
-    }
-
-    /**
-     * This genotype is unfiltered
-     *
-     * @return
-     */
-    public GenotypeBuilder unfiltered() {
-        return filter(null);
-    }
-
-    /**
-     * Tell's this builder that we have at most these number of attributes
-     * @return
-     */
-    public GenotypeBuilder maxAttributes(final int i) {
-        initialAttributeMapSize = i;
-        return this;
-    }
-}
\ No newline at end of file
diff --git a/src/java/org/broadinstitute/variant/variantcontext/GenotypeLikelihoods.java b/src/java/org/broadinstitute/variant/variantcontext/GenotypeLikelihoods.java
deleted file mode 100644
index 8b80691..0000000
--- a/src/java/org/broadinstitute/variant/variantcontext/GenotypeLikelihoods.java
+++ /dev/null
@@ -1,463 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.variantcontext;
-
-import com.google.java.contract.Ensures;
-import com.google.java.contract.Requires;
-import org.broad.tribble.TribbleException;
-import org.broadinstitute.variant.utils.GeneralUtils;
-import org.broadinstitute.variant.vcf.VCFConstants;
-
-import java.util.Arrays;
-import java.util.EnumMap;
-import java.util.List;
-
-public class GenotypeLikelihoods {
-    private final static int NUM_LIKELIHOODS_CACHE_N_ALLELES = 5;
-    private final static int NUM_LIKELIHOODS_CACHE_PLOIDY = 10;
-    // caching numAlleles up to 5 and ploidy up to 10
-    private final static int[][] numLikelihoodCache = new int[NUM_LIKELIHOODS_CACHE_N_ALLELES][NUM_LIKELIHOODS_CACHE_PLOIDY];
-
-    public final static int MAX_PL = Integer.MAX_VALUE;
-
-    //
-    // There are two objects here because we are lazy in creating both representations
-    // for this object: a vector of log10 Probs and the PL phred-scaled string.  Supports
-    // having one set during initializating, and dynamic creation of the other, if needed
-    //
-    private double[] log10Likelihoods = null;
-    private String likelihoodsAsString_PLs = null;
-
-
-    /**
-     * initialize num likelihoods cache
-     */
-    static {
-        // must be done before PLIndexToAlleleIndex
-        for ( int numAlleles = 1; numAlleles < NUM_LIKELIHOODS_CACHE_N_ALLELES; numAlleles++ ) {
-            for ( int ploidy = 1; ploidy < NUM_LIKELIHOODS_CACHE_PLOIDY; ploidy++ ) {
-                numLikelihoodCache[numAlleles][ploidy] = calcNumLikelihoods(numAlleles, ploidy);
-            }
-        }
-    }
-
-    /**
-     * The maximum number of alleles that we can represent as genotype likelihoods
-     */
-    public final static int MAX_ALT_ALLELES_THAT_CAN_BE_GENOTYPED = 50;
-
-    /*
-    * a cache of the PL index to the 2 alleles it represents over all possible numbers of alternate alleles
-    */
-    private final static GenotypeLikelihoodsAllelePair[] PLIndexToAlleleIndex = calculatePLcache(MAX_ALT_ALLELES_THAT_CAN_BE_GENOTYPED);
-
-    public final static GenotypeLikelihoods fromPLField(String PLs) {
-        return new GenotypeLikelihoods(PLs);
-    }
-
-    @Deprecated
-    public final static GenotypeLikelihoods fromGLField(String GLs) {
-        return new GenotypeLikelihoods(parseDeprecatedGLString(GLs));
-    }
-
-    public final static GenotypeLikelihoods fromLog10Likelihoods(double[] log10Likelihoods) {
-        return new GenotypeLikelihoods(log10Likelihoods);
-    }
-
-    public final static GenotypeLikelihoods fromPLs(final int[] pls) {
-        return new GenotypeLikelihoods(PLsToGLs(pls));
-    }
-
-    //
-    // You must use the factory methods now
-    //
-    private GenotypeLikelihoods(String asString) {
-        likelihoodsAsString_PLs = asString;
-    }
-
-    private GenotypeLikelihoods(double[] asVector) {
-        log10Likelihoods = asVector;
-    }
-
-    /**
-     * Returns the genotypes likelihoods in negative log10 vector format.  pr{AA} = x, this
-     * vector returns math.log10(x) for each of the genotypes.  Can return null if the
-     * genotype likelihoods are "missing".
-     *
-     * @return
-     */
-    public double[] getAsVector() {
-        // assumes one of the likelihoods vector or the string isn't null
-        if ( log10Likelihoods == null ) {
-            // make sure we create the GL string if it doesn't already exist
-            log10Likelihoods = parsePLsIntoLikelihoods(likelihoodsAsString_PLs);
-        }
-
-        return log10Likelihoods;
-    }
-
-    public int[] getAsPLs() {
-        final double[] GLs = getAsVector();
-        return GLs == null ? null : GLsToPLs(GLs);
-    }
-
-    public String toString() {
-        return getAsString();
-    }
-
-    public String getAsString() {
-        if ( likelihoodsAsString_PLs == null ) {
-            // todo -- should we accept null log10Likelihoods and set PLs as MISSING?
-            if ( log10Likelihoods == null )
-                throw new TribbleException("BUG: Attempted to get likelihoods as strings and neither the vector nor the string is set!");
-            likelihoodsAsString_PLs = convertLikelihoodsToPLString(log10Likelihoods);
-        }
-
-        return likelihoodsAsString_PLs;
-    }
-
-    @Override public boolean equals(Object aThat) {
-        //check for self-comparison
-        if ( this == aThat ) return true;
-
-        if ( !(aThat instanceof GenotypeLikelihoods) ) return false;
-        GenotypeLikelihoods that = (GenotypeLikelihoods)aThat;
-
-        // now a proper field-by-field evaluation can be made.
-        // GLs are considered equal if the corresponding PLs are equal
-        return Arrays.equals(getAsPLs(), that.getAsPLs());
-    }
-
-    //Return genotype likelihoods as an EnumMap with Genotypes as keys and likelihoods as values
-    //Returns null in case of missing likelihoods
-    public EnumMap<GenotypeType,Double> getAsMap(boolean normalizeFromLog10){
-        //Make sure that the log10likelihoods are set
-        double[] likelihoods = normalizeFromLog10 ? GeneralUtils.normalizeFromLog10(getAsVector()) : getAsVector();
-        if(likelihoods == null)
-            return null;
-        EnumMap<GenotypeType,Double> likelihoodsMap = new EnumMap<GenotypeType, Double>(GenotypeType.class);
-        likelihoodsMap.put(GenotypeType.HOM_REF,likelihoods[GenotypeType.HOM_REF.ordinal()-1]);
-        likelihoodsMap.put(GenotypeType.HET,likelihoods[GenotypeType.HET.ordinal()-1]);
-        likelihoodsMap.put(GenotypeType.HOM_VAR, likelihoods[GenotypeType.HOM_VAR.ordinal() - 1]);
-        return likelihoodsMap;
-    }
-
-    //Return the neg log10 Genotype Quality (GQ) for the given genotype
-    //Returns Double.NEGATIVE_INFINITY in case of missing genotype
-
-    /**
-     * This is really dangerous and returns completely wrong results for genotypes from a multi-allelic context.
-     * Use getLog10GQ(Genotype,VariantContext) or getLog10GQ(Genotype,List<Allele>) in place of it.
-     *
-     * If you **know** you're biallelic, use getGQLog10FromLikelihoods directly.
-     * @param genotype - actually a genotype type (no call, hom ref, het, hom var)
-     * @return an unsafe quantity that could be negative. In the bi-allelic case, the GQ resulting from best minus next best (if the type is the best).
-     */
-    @Deprecated
-    public double getLog10GQ(GenotypeType genotype){
-        return getGQLog10FromLikelihoods(genotype.ordinal() - 1 /* NO_CALL IS FIRST */, getAsVector());
-    }
-
-    @Requires({"genotypeAlleles != null","genotypeAlleles.size()==2","contextAlleles != null","contextAlleles.size() >= 1"})
-    private double getLog10GQ(List<Allele> genotypeAlleles,List<Allele> contextAlleles) {
-        int allele1Index = contextAlleles.indexOf(genotypeAlleles.get(0));
-        int allele2Index = contextAlleles.indexOf(genotypeAlleles.get(1));
-        int plIndex = calculatePLindex(allele1Index,allele2Index);
-        return getGQLog10FromLikelihoods(plIndex,getAsVector());
-    }
-
-    public double getLog10GQ(Genotype genotype, List<Allele> vcAlleles ) {
-        return getLog10GQ(genotype.getAlleles(),vcAlleles);
-    }
-
-    public double getLog10GQ(Genotype genotype, VariantContext context) {
-        return getLog10GQ(genotype,context.getAlleles());
-    }
-
-    public static double getGQLog10FromLikelihoods(int iOfChoosenGenotype, double[] likelihoods){
-        if(likelihoods == null)
-            return Double.NEGATIVE_INFINITY;
-
-        double qual = Double.NEGATIVE_INFINITY;
-        for (int i=0; i < likelihoods.length; i++) {
-            if (i==iOfChoosenGenotype)
-                continue;
-            if (likelihoods[i] >= qual)
-                qual = likelihoods[i];
-        }
-
-        // qual contains now max(likelihoods[k]) for all k != bestGTguess
-        qual = likelihoods[iOfChoosenGenotype] - qual;
-
-        if (qual < 0) {
-            // QUAL can be negative if the chosen genotype is not the most likely one individually.
-            // In this case, we compute the actual genotype probability and QUAL is the likelihood of it not being the chosen one
-            double[] normalized = GeneralUtils.normalizeFromLog10(likelihoods);
-            double chosenGenotype = normalized[iOfChoosenGenotype];
-            return Math.log10(1.0 - chosenGenotype);
-        } else {
-            // invert the size, as this is the probability of making an error
-            return -1 * qual;
-        }
-    }
-
-    private final static double[] parsePLsIntoLikelihoods(String likelihoodsAsString_PLs) {
-        if ( !likelihoodsAsString_PLs.equals(VCFConstants.MISSING_VALUE_v4) ) {
-            String[] strings = likelihoodsAsString_PLs.split(",");
-            double[] likelihoodsAsVector = new double[strings.length];
-            try {
-                for ( int i = 0; i < strings.length; i++ ) {
-                    likelihoodsAsVector[i] = Integer.parseInt(strings[i]) / -10.0;
-                }
-            } catch (NumberFormatException e) {
-                throw new TribbleException("The GL/PL tag contains non-integer values: " + likelihoodsAsString_PLs);
-            }
-            return likelihoodsAsVector;
-        } else
-            return null;
-    }
-
-    /**
-     * Back-compatibility function to read old style GL formatted genotype likelihoods in VCF format
-     * @param GLString
-     * @return
-     */
-    private final static double[] parseDeprecatedGLString(String GLString) {
-        if ( !GLString.equals(VCFConstants.MISSING_VALUE_v4) ) {
-            String[] strings = GLString.split(",");
-            double[] likelihoodsAsVector = new double[strings.length];
-            for ( int i = 0; i < strings.length; i++ ) {
-                likelihoodsAsVector[i] = Double.parseDouble(strings[i]);
-            }
-            return likelihoodsAsVector;
-        }
-
-        return null;
-    }
-
-    private final static String convertLikelihoodsToPLString(final double[] GLs) {
-        if ( GLs == null )
-            return VCFConstants.MISSING_VALUE_v4;
-
-        final StringBuilder s = new StringBuilder();
-        boolean first = true;
-        for ( final int pl : GLsToPLs(GLs) ) {
-            if ( ! first )
-                s.append(",");
-            else
-                first = false;
-
-            s.append(pl);
-        }
-
-        return s.toString();
-    }
-
-    private final static int[] GLsToPLs(final double[] GLs) {
-        final int[] pls = new int[GLs.length];
-        final double adjust = maxPL(GLs);
-
-        for ( int i = 0; i < GLs.length; i++ ) {
-            pls[i] = (int)Math.round(Math.min(-10 * (GLs[i] - adjust), MAX_PL));
-        }
-
-        return pls;
-    }
-
-    private final static double maxPL(final double[] GLs) {
-        double adjust = Double.NEGATIVE_INFINITY;
-        for ( double l : GLs ) adjust = Math.max(adjust, l);
-        return adjust;
-    }
-
-    private final static double[] PLsToGLs(final int pls[]) {
-        double[] likelihoodsAsVector = new double[pls.length];
-        for ( int i = 0; i < pls.length; i++ ) {
-            likelihoodsAsVector[i] = pls[i] / -10.0;
-        }
-        return likelihoodsAsVector;
-    }
-
-    // -------------------------------------------------------------------------------------
-    //
-    // Static conversion utilities, going from GL/PL index to allele index and vice versa.
-    //
-    // -------------------------------------------------------------------------------------
-
-    /*
-    * Class representing the 2 alleles (or rather their indexes into VariantContext.getAllele()) corresponding to a specific PL index.
-    * Note that the reference allele is always index=0.
-    */
-    public static class GenotypeLikelihoodsAllelePair {
-        public final int alleleIndex1, alleleIndex2;
-
-        public GenotypeLikelihoodsAllelePair(final int alleleIndex1, final int alleleIndex2) {
-            this.alleleIndex1 = alleleIndex1;
-            this.alleleIndex2 = alleleIndex2;
-        }
-    }
-
-    private static GenotypeLikelihoodsAllelePair[] calculatePLcache(final int altAlleles) {
-        final int numLikelihoods = numLikelihoods(1 + altAlleles, 2);
-        final GenotypeLikelihoodsAllelePair[] cache = new GenotypeLikelihoodsAllelePair[numLikelihoods];
-
-        // for all possible combinations of 2 alleles
-        for ( int allele1 = 0; allele1 <= altAlleles; allele1++ ) {
-            for ( int allele2 = allele1; allele2 <= altAlleles; allele2++ ) {
-                cache[calculatePLindex(allele1, allele2)] = new GenotypeLikelihoodsAllelePair(allele1, allele2);
-            }
-        }
-
-        // a bit of sanity checking
-        for ( int i = 0; i < cache.length; i++ ) {
-            if ( cache[i] == null )
-                throw new IllegalStateException("BUG: cache entry " + i + " is unexpected null");
-        }
-
-        return cache;
-    }
-
-    // -------------------------------------------------------------------------------------
-    //
-    // num likelihoods given number of alleles and ploidy
-    //
-    // -------------------------------------------------------------------------------------
-
-    /**
-     * Actually does the computation in @see #numLikelihoods
-     *
-     * @param numAlleles
-     * @param ploidy
-     * @return
-     */
-    private static final int calcNumLikelihoods(final int numAlleles, final int ploidy) {
-        if (numAlleles == 1)
-            return 1;
-        else if (ploidy == 1)
-            return numAlleles;
-        else {
-            int acc =0;
-            for (int k=0; k <= ploidy; k++ )
-                acc += calcNumLikelihoods(numAlleles - 1, ploidy - k);
-            return acc;
-        }
-    }
-
-    /**
-     * Compute how many likelihood elements are associated with the given number of alleles
-     * Equivalent to asking in how many ways N non-negative integers can add up to P is S(N,P)
-     * where P = ploidy (number of chromosomes) and N = total # of alleles.
-     * Each chromosome can be in one single state (0,...,N-1) and there are P of them.
-     * Naive solution would be to store N*P likelihoods, but this is not necessary because we can't distinguish chromosome states, but rather
-     * only total number of alt allele counts in all chromosomes.
-     *
-     * For example, S(3,2) = 6: For alleles A,B,C, on a diploid organism we have six possible genotypes:
-     * AA,AB,BB,AC,BC,CC.
-     * Another way of expressing is with vector (#of A alleles, # of B alleles, # of C alleles)
-     * which is then, for ordering above, (2,0,0), (1,1,0), (0,2,0), (1,1,0), (0,1,1), (0,0,2)
-     * In general, for P=2 (regular biallelic), then S(N,2) = N*(N+1)/2
-     *
-     * Note this method caches the value for most common num Allele / ploidy combinations for efficiency
-     *
-     * Recursive implementation:
-     *   S(N,P) = sum_{k=0}^P S(N-1,P-k)
-     *  because if we have N integers, we can condition 1 integer to be = k, and then N-1 integers have to sum to P-K
-     * With initial conditions
-     *   S(N,1) = N  (only way to have N integers add up to 1 is all-zeros except one element with a one. There are N of these vectors)
-     *   S(1,P) = 1 (only way to have 1 integer add to P is with that integer P itself).
-     *
-     *   @param  numAlleles      Number of alleles (including ref)
-     *   @param  ploidy          Ploidy, or number of chromosomes in set
-     *   @return    Number of likelihood elements we need to hold.
-     */
-    @Requires({"ploidy > 0", "numAlleles > 0"})
-    @Ensures("result > 0")
-    public static int numLikelihoods(final int numAlleles, final int ploidy) {
-        if ( numAlleles < NUM_LIKELIHOODS_CACHE_N_ALLELES
-                && ploidy < NUM_LIKELIHOODS_CACHE_PLOIDY )
-            return numLikelihoodCache[numAlleles][ploidy];
-        else {
-            // have to calculate on the fly
-            return calcNumLikelihoods(numAlleles, ploidy);
-        }
-    }
-
-    // As per the VCF spec: "the ordering of genotypes for the likelihoods is given by: F(j/k) = (k*(k+1)/2)+j.
-    // In other words, for biallelic sites the ordering is: AA,AB,BB; for triallelic sites the ordering is: AA,AB,BB,AC,BC,CC, etc."
-    // Assumes that allele1Index < allele2Index
-    public static int calculatePLindex(final int allele1Index, final int allele2Index) {
-        return (allele2Index * (allele2Index+1) / 2) + allele1Index;
-    }
-
-    /**
-     * get the allele index pair for the given PL
-     *
-     * @param PLindex   the PL index
-     * @return the allele index pair
-     */
-    public static GenotypeLikelihoodsAllelePair getAllelePair(final int PLindex) {
-        // make sure that we've cached enough data
-        if ( PLindex >= PLIndexToAlleleIndex.length )
-            throw new IllegalStateException("Internal limitation: cannot genotype more than " + MAX_ALT_ALLELES_THAT_CAN_BE_GENOTYPED + " alleles");
-
-        return PLIndexToAlleleIndex[PLindex];
-    }
-
-    // An index conversion from the deprecated PL ordering to the new VCF-based ordering for up to 3 alternate alleles
-    protected static final int[] PLindexConversion = new int[]{0, 1, 3, 6, 2, 4, 7, 5, 8, 9};
-
-    /**
-     * get the allele index pair for the given PL using the deprecated PL ordering:
-     *    AA,AB,AC,AD,BB,BC,BD,CC,CD,DD instead of AA,AB,BB,AC,BC,CC,AD,BD,CD,DD.
-     * Although it's painful to keep this conversion around, our DiploidSNPGenotypeLikelihoods class uses the deprecated
-     *    ordering and I know with certainty that external users have built code on top of it; changing it now would
-     *    cause a whole lot of heartache for our collaborators, so for now at least there's a standard conversion method.
-     * This method assumes at most 3 alternate alleles.
-     *
-     * @param PLindex   the PL index
-     * @return the allele index pair
-     */
-    @Deprecated
-    public static GenotypeLikelihoodsAllelePair getAllelePairUsingDeprecatedOrdering(final int PLindex) {
-        return getAllelePair(PLindexConversion[PLindex]);
-    }
-
-    /**
-     * get the PL indexes (AA, AB, BB) for the given allele pair; assumes allele1Index <= allele2Index.
-     *
-     * @param allele1Index    the index in VariantContext.getAllele() of the first allele
-     * @param allele2Index    the index in VariantContext.getAllele() of the second allele
-     * @return the PL indexes
-     */
-    public static int[] getPLIndecesOfAlleles(final int allele1Index, final int allele2Index) {
-
-        final int[] indexes = new int[3];
-        indexes[0] = calculatePLindex(allele1Index, allele1Index);
-        indexes[1] = calculatePLindex(allele1Index, allele2Index);
-        indexes[2] = calculatePLindex(allele2Index, allele2Index);
-        return indexes;
-    }
-}
diff --git a/src/java/org/broadinstitute/variant/variantcontext/GenotypeType.java b/src/java/org/broadinstitute/variant/variantcontext/GenotypeType.java
deleted file mode 100644
index 7074431..0000000
--- a/src/java/org/broadinstitute/variant/variantcontext/GenotypeType.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.variantcontext;
-
-/**
- * Summary types for Genotype objects
- *
- * @author Your Name
- * @since Date created
- */
-public enum GenotypeType {
-    /** The sample is no-called (all alleles are NO_CALL */
-    NO_CALL,
-    /** The sample is homozygous reference */
-    HOM_REF,
-    /** The sample is heterozygous, with at least one ref and at least one one alt in any order */
-    HET,
-    /** All alleles are non-reference */
-    HOM_VAR,
-    /** There is no allele data availble for this sample (alleles.isEmpty) */
-    UNAVAILABLE,
-    /** Some chromosomes are NO_CALL and others are called */
-    MIXED  // no-call and call in the same genotype
-}
diff --git a/src/java/org/broadinstitute/variant/variantcontext/GenotypesContext.java b/src/java/org/broadinstitute/variant/variantcontext/GenotypesContext.java
deleted file mode 100644
index d0684d2..0000000
--- a/src/java/org/broadinstitute/variant/variantcontext/GenotypesContext.java
+++ /dev/null
@@ -1,724 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.variantcontext;
-
-import com.google.java.contract.Ensures;
-import com.google.java.contract.Requires;
-
-import java.util.*;
-
-/**
- * Represents an ordered collection of Genotype objects
- */
-public class GenotypesContext implements List<Genotype> {
-    /**
-     * static constant value for an empty GenotypesContext.  Useful since so many VariantContexts have no genotypes
-     */
-    public final static GenotypesContext NO_GENOTYPES =
-            new GenotypesContext(new ArrayList<Genotype>(0), new HashMap<String, Integer>(0), Collections.<String>emptyList()).immutable();
-
-    /**
-     *sampleNamesInOrder a list of sample names, one for each genotype in genotypes, sorted in alphabetical order
-     */
-    List<String> sampleNamesInOrder = null;
-
-    /**
-     * a map optimized for efficient lookup.  Each genotype in genotypes must have its
-     * sample name in sampleNameToOffset, with a corresponding integer value that indicates the offset of that
-     * genotype in the vector of genotypes
-     */
-    Map<String, Integer> sampleNameToOffset = null;
-
-    /**
-     * An ArrayList of genotypes contained in this context
-     *
-     * WARNING: TO ENABLE THE LAZY VERSION OF THIS CLASS, NO METHODS SHOULD DIRECTLY
-     * ACCESS THIS VARIABLE.  USE getGenotypes() INSTEAD.
-     *
-     */
-    ArrayList<Genotype> notToBeDirectlyAccessedGenotypes;
-
-    /**
-     * Cached value of the maximum ploidy observed among all samples
-     */
-    private int maxPloidy = -1;
-
-    /** Are we allowing users to modify the list? */
-    boolean immutable = false;
-
-    // ---------------------------------------------------------------------------
-    //
-    // private constructors -- you have to use static create methods to make these classes
-    //
-    // ---------------------------------------------------------------------------
-
-    /**
-     * Create an empty GenotypeContext
-     */
-    protected GenotypesContext() {
-        this(10);
-    }
-
-    /**
-     * Create an empty GenotypeContext, with initial capacity for n elements
-     */
-    @Requires("n >= 0")
-    protected GenotypesContext(final int n) {
-        this(new ArrayList<Genotype>(n));
-    }
-
-    /**
-     * Create an GenotypeContext containing genotypes
-     */
-    @Requires("genotypes != null")
-    protected GenotypesContext(final ArrayList<Genotype> genotypes) {
-        this.notToBeDirectlyAccessedGenotypes = genotypes;
-        this.sampleNameToOffset = null;
-    }
-
-    /**
-     * Create a fully resolved GenotypeContext containing genotypes, sample lookup table,
-     * and sorted sample names
-     *
-     * @param genotypes our genotypes in arbitrary
-     * @param sampleNameToOffset map optimized for efficient lookup.  Each genotype in genotypes must have its
-     * sample name in sampleNameToOffset, with a corresponding integer value that indicates the offset of that
-     * genotype in the vector of genotypes
-     * @param sampleNamesInOrder a list of sample names, one for each genotype in genotypes, sorted in alphabetical
-     * order.
-     */
-    @Requires({"genotypes != null",
-            "sampleNameToOffset != null",
-            "sampleNamesInOrder != null",
-            "genotypes.size() == sampleNameToOffset.size()",
-            "genotypes.size() == sampleNamesInOrder.size()"})
-    protected GenotypesContext(final ArrayList<Genotype> genotypes,
-                             final Map<String, Integer> sampleNameToOffset,
-                             final List<String> sampleNamesInOrder) {
-        this.notToBeDirectlyAccessedGenotypes = genotypes;
-        this.sampleNameToOffset = sampleNameToOffset;
-        this.sampleNamesInOrder = sampleNamesInOrder;
-    }
-
-    // ---------------------------------------------------------------------------
-    //
-    // public static factory methods
-    //
-    // ---------------------------------------------------------------------------
-
-    /**
-     * Basic creation routine
-     * @return an empty, mutable GenotypeContext
-     */
-    @Ensures({"result != null"})
-    public static final GenotypesContext create() {
-        return new GenotypesContext();
-    }
-
-    /**
-     * Basic creation routine
-     * @return an empty, mutable GenotypeContext with initial capacity for nGenotypes
-     */
-    @Requires("nGenotypes >= 0")
-    @Ensures({"result != null"})
-    public static final GenotypesContext create(final int nGenotypes) {
-        return new GenotypesContext(nGenotypes);
-    }
-
-    /**
-     * Create a fully resolved GenotypeContext containing genotypes, sample lookup table,
-     * and sorted sample names
-     *
-     * @param genotypes our genotypes in arbitrary
-     * @param sampleNameToOffset map optimized for efficient lookup.  Each genotype in genotypes must have its
-     * sample name in sampleNameToOffset, with a corresponding integer value that indicates the offset of that
-     * genotype in the vector of genotypes
-     * @param sampleNamesInOrder a list of sample names, one for each genotype in genotypes, sorted in alphabetical
-     * order.
-     * @return an mutable GenotypeContext containing genotypes with already present lookup data
-     */
-    @Requires({"genotypes != null",
-            "sampleNameToOffset != null",
-            "sampleNamesInOrder != null"})
-    @Ensures({"result != null"})
-    public static final GenotypesContext create(final ArrayList<Genotype> genotypes,
-                                                final Map<String, Integer> sampleNameToOffset,
-                                                final List<String> sampleNamesInOrder) {
-        return new GenotypesContext(genotypes, sampleNameToOffset, sampleNamesInOrder);
-    }
-
-    /**
-     * Create a fully resolved GenotypeContext containing genotypes
-     *
-     * @param genotypes our genotypes in arbitrary
-     * @return an mutable GenotypeContext containing genotypes
-     */
-    @Requires({"genotypes != null"})
-    @Ensures({"result != null"})
-    public static final GenotypesContext create(final ArrayList<Genotype> genotypes) {
-        return genotypes == null ? NO_GENOTYPES : new GenotypesContext(genotypes);
-    }
-
-    /**
-     * Create a fully resolved GenotypeContext containing genotypes
-     *
-     * @param genotypes our genotypes in arbitrary
-     * @return an mutable GenotypeContext containing genotypes
-     */
-    @Requires({"genotypes != null"})
-    @Ensures({"result != null"})
-    public static final GenotypesContext create(final Genotype... genotypes) {
-        return create(new ArrayList<Genotype>(Arrays.asList(genotypes)));
-    }
-
-    /**
-     * Create a freshly allocated GenotypeContext containing the genotypes in toCopy
-     *
-     * @param toCopy the GenotypesContext to copy
-     * @return an mutable GenotypeContext containing genotypes
-     */
-    @Requires({"toCopy != null"})
-    @Ensures({"result != null"})
-    public static final GenotypesContext copy(final GenotypesContext toCopy) {
-        return create(new ArrayList<Genotype>(toCopy.getGenotypes()));
-    }
-
-    /**
-     * Create a GenotypesContext containing the genotypes in iteration order contained
-     * in toCopy
-     *
-     * @param toCopy the collection of genotypes
-     * @return an mutable GenotypeContext containing genotypes
-     */
-    @Ensures({"result != null"})
-    public static final GenotypesContext copy(final Collection<Genotype> toCopy) {
-        return toCopy == null ? NO_GENOTYPES : create(new ArrayList<Genotype>(toCopy));
-    }
-
-    // ---------------------------------------------------------------------------
-    //
-    // Mutability methods
-    //
-    // ---------------------------------------------------------------------------
-
-    public final GenotypesContext immutable() {
-        immutable = true;
-        return this;
-    }
-
-    public boolean isMutable() {
-        return ! immutable;
-    }
-
-    public final void checkImmutability() {
-        if ( immutable )
-            throw new IllegalAccessError("GenotypeMap is currently immutable, but a mutator method was invoked on it");
-    }
-
-    // ---------------------------------------------------------------------------
-    //
-    // caches
-    //
-    // ---------------------------------------------------------------------------
-
-    @Ensures({"sampleNameToOffset == null"})
-    protected void invalidateSampleNameMap() {
-        sampleNameToOffset = null;
-    }
-
-    @Ensures({"sampleNamesInOrder == null"})
-    protected void invalidateSampleOrdering() {
-        sampleNamesInOrder = null;
-    }
-
-    @Ensures({"sampleNamesInOrder != null"})
-    protected void ensureSampleOrdering() {
-        if ( sampleNamesInOrder == null ) {
-            sampleNamesInOrder = new ArrayList<String>(size());
-
-            for ( int i = 0; i < size(); i++ ) {
-                sampleNamesInOrder.add(getGenotypes().get(i).getSampleName());
-            }
-            Collections.sort(sampleNamesInOrder);
-        }
-    }
-
-    @Ensures({"sampleNameToOffset != null"})
-    protected void ensureSampleNameMap() {
-        if ( sampleNameToOffset == null ) {
-            sampleNameToOffset = new HashMap<String, Integer>(size());
-
-            for ( int i = 0; i < size(); i++ ) {
-                sampleNameToOffset.put(getGenotypes().get(i).getSampleName(), i);
-            }
-        }
-    }
-
-    // ---------------------------------------------------------------------------
-    //
-    // Lazy methods
-    //
-    // ---------------------------------------------------------------------------
-
-    public boolean isLazyWithData() {
-        return this instanceof LazyGenotypesContext &&
-                ((LazyGenotypesContext)this).getUnparsedGenotypeData() != null;
-    }
-
-    // ---------------------------------------------------------------------------
-    //
-    // Map methods
-    //
-    // ---------------------------------------------------------------------------
-
-    protected ArrayList<Genotype> getGenotypes() {
-        return notToBeDirectlyAccessedGenotypes;
-    }
-
-    @Override
-    public void clear() {
-        checkImmutability();
-        invalidateSampleNameMap();
-        invalidateSampleOrdering();
-        getGenotypes().clear();
-    }
-
-    @Override
-    public int size() {
-        return getGenotypes().size();
-    }
-
-    @Override
-    public boolean isEmpty() {
-        return getGenotypes().isEmpty();
-    }
-
-    /**
-     * Adds a single genotype to this context.
-     *
-     * There are many constraints on this input, and important
-     * impacts on the performance of other functions provided by this
-     * context.
-     *
-     * First, the sample name of genotype must be unique within this
-     * context.  However, this is not enforced in the code itself, through
-     * you will invalid the contract on this context if you add duplicate
-     * samples and are running with CoFoJa enabled.
-     *
-     * Second, adding genotype also updates the sample name -> index map,
-     * so add() followed by containsSample and related function is an efficient
-     * series of operations.
-     *
-     * Third, adding the genotype invalidates the sorted list of sample names, to
-     * add() followed by any of the SampleNamesInOrder operations is inefficient, as
-     * each SampleNamesInOrder must rebuild the sorted list of sample names at
-     * an O(n log n) cost.
-     *
-     * @param genotype
-     * @return
-     */
-    @Override
-    @Requires({"genotype != null", "get(genotype.getSampleName()) == null"})
-    public boolean add(final Genotype genotype) {
-        checkImmutability();
-        invalidateSampleOrdering();
-
-        if ( sampleNameToOffset != null ) {
-            // update the name map by adding entries
-            sampleNameToOffset.put(genotype.getSampleName(), size());
-        }
-
-        return getGenotypes().add(genotype);
-    }
-
-    @Override
-    @Requires("! contains(genotype)")
-    public void add(final int i, final Genotype genotype) {
-        throw new UnsupportedOperationException();
-    }
-
-    /**
-     * Adds all of the genotypes to this context
-     *
-     * See {@link #add(Genotype)} for important information about this functions
-     * constraints and performance costs
-     *
-     * @param genotypes
-     * @return
-     */
-    @Override
-    @Requires("! containsAny(genotypes)")
-    public boolean addAll(final Collection<? extends Genotype> genotypes) {
-        checkImmutability();
-        invalidateSampleOrdering();
-
-        if ( sampleNameToOffset != null ) {
-            // update the name map by adding entries
-            int pos = size();
-            for ( final Genotype g : genotypes ) {
-                sampleNameToOffset.put(g.getSampleName(), pos++);
-            }
-        }
-
-        return getGenotypes().addAll(genotypes);
-    }
-
-    @Override
-    public boolean addAll(final int i, final Collection<? extends Genotype> genotypes) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public boolean contains(final Object o) {
-        return getGenotypes().contains(o);
-    }
-
-    @Override
-    public boolean containsAll(final Collection<?> objects) {
-        return getGenotypes().containsAll(objects);
-    }
-
-    private boolean containsAny(final Collection<? extends Genotype> genotypes) {
-        for ( final Genotype g : genotypes ) {
-            if ( contains(g) ) return true;
-        }
-        return false;
-    }
-
-    @Override
-    public Genotype get(final int i) {
-        return getGenotypes().get(i);
-    }
-
-    /**
-     * What is the max ploidy among all samples?  Returns defaultPloidy if no genotypes are present
-     *
-     * @param defaultPloidy the default ploidy, if all samples are no-called
-     * @return
-     */
-    @Ensures("result >= 0")
-    public int getMaxPloidy(final int defaultPloidy) {
-        if ( defaultPloidy < 0 ) throw new IllegalArgumentException("defaultPloidy must be greater than or equal to 0");
-
-        if ( maxPloidy == -1 ) {
-            maxPloidy = 0; // necessary in the case where there are no genotypes
-            for ( final Genotype g : getGenotypes() ) {
-                maxPloidy = Math.max(g.getPloidy(), maxPloidy);
-            }
-
-            // everything is no called so we return the default ploidy
-            if ( maxPloidy == 0 ) maxPloidy = defaultPloidy;
-        }
-
-        return maxPloidy;
-    }
-
-    /**
-     * Gets sample associated with this sampleName, or null if none is found
-     *
-     * @param sampleName
-     * @return
-     */
-    public Genotype get(final String sampleName) {
-        Integer offset = getSampleI(sampleName);
-        return offset == null ? null : getGenotypes().get(offset);
-    }
-
-    private Integer getSampleI(final String sampleName) {
-        ensureSampleNameMap();
-        return sampleNameToOffset.get(sampleName);
-    }
-
-    @Override
-    public int indexOf(final Object o) {
-        return getGenotypes().indexOf(o);
-    }
-
-    @Override
-    public Iterator<Genotype> iterator() {
-        return getGenotypes().iterator();
-    }
-
-    @Override
-    public int lastIndexOf(final Object o) {
-        return getGenotypes().lastIndexOf(o);
-    }
-
-    @Override
-    public ListIterator<Genotype> listIterator() {
-        // todo -- must be immutable
-        throw new UnsupportedOperationException();
-//        return genotypes.listIterator();
-    }
-
-    @Override
-    public ListIterator<Genotype> listIterator(final int i) {
-        // todo -- must be immutable
-        throw new UnsupportedOperationException();
-//        return genotypes.listIterator(i);
-    }
-
-    /**
-     * Note that remove requires us to invalidate our sample -> index
-     * cache.  The loop:
-     *
-     * GenotypesContext gc = ...
-     * for ( sample in samples )
-     *   if ( gc.containsSample(sample) )
-     *     gc.remove(sample)
-     *
-     * is extremely inefficient, as each call to remove invalidates the cache
-     * and containsSample requires us to rebuild it, an O(n) operation.
-     *
-     * If you must remove many samples from the GC, use either removeAll or retainAll
-     * to avoid this O(n * m) operation.
-     *
-     * @param i
-     * @return
-     */
-    @Override
-    public Genotype remove(final int i) {
-        checkImmutability();
-        invalidateSampleNameMap();
-        invalidateSampleOrdering();
-        return getGenotypes().remove(i);
-    }
-
-    /**
-     * See for important warning {@link this.remove(Integer)}
-     * @param o
-     * @return
-     */
-    @Override
-    public boolean remove(final Object o) {
-        checkImmutability();
-        invalidateSampleNameMap();
-        invalidateSampleOrdering();
-        return getGenotypes().remove(o);
-    }
-
-    @Override
-    public boolean removeAll(final Collection<?> objects) {
-        checkImmutability();
-        invalidateSampleNameMap();
-        invalidateSampleOrdering();
-        return getGenotypes().removeAll(objects);
-    }
-
-    @Override
-    public boolean retainAll(final Collection<?> objects) {
-        checkImmutability();
-        invalidateSampleNameMap();
-        invalidateSampleOrdering();
-        return getGenotypes().retainAll(objects);
-    }
-
-    @Override
-    public Genotype set(final int i, final Genotype genotype) {
-        checkImmutability();
-        final Genotype prev = getGenotypes().set(i, genotype);
-
-        invalidateSampleOrdering();
-        if ( sampleNameToOffset != null ) {
-            // update the name map by removing the old entry and replacing it with the new one
-            sampleNameToOffset.remove(prev.getSampleName());
-            sampleNameToOffset.put(genotype.getSampleName(), i);
-        }
-
-        return prev;
-    }
-
-    /**
-     * Replaces the genotype in this context -- note for efficiency
-     * reasons we do not add the genotype if it's not present.  The
-     * return value will be null indicating this happened.
-     *
-     * Note this operation is preserves the map cache Sample -> Offset but
-     * invalidates the sorted list of samples.  Using replace within a loop
-     * containing any of the SampleNameInOrder operation requires an O(n log n)
-     * resorting after each replace operation.
-     *
-     * @param genotype a non null genotype to bind in this context
-     * @return null if genotype was not added, otherwise returns the previous genotype
-     */
-    @Requires("genotype != null")
-    public Genotype replace(final Genotype genotype) {
-        checkImmutability();
-        Integer offset = getSampleI(genotype.getSampleName());
-        if ( offset == null )
-            return null;
-        else
-            return set(offset, genotype);
-    }
-
-    @Override
-    public List<Genotype> subList(final int i, final int i1) {
-        return getGenotypes().subList(i, i1);
-    }
-
-    @Override
-    public Object[] toArray() {
-        return getGenotypes().toArray();
-    }
-
-    @Override
-    public <T> T[] toArray(final T[] ts) {
-        return getGenotypes().toArray(ts);
-    }
-
-    /**
-     * Iterate over the Genotypes in this context in the order specified by sampleNamesInOrder
-     *
-     * @param sampleNamesInOrder a Iterable of String, containing exactly one entry for each Genotype sample name in
-     * this context
-     * @return a Iterable over the genotypes in this context.
-     */
-    @Requires("sampleNamesInOrder != null")
-    public Iterable<Genotype> iterateInSampleNameOrder(final Iterable<String> sampleNamesInOrder) {
-        return new Iterable<Genotype>() {
-            @Override
-            public Iterator<Genotype> iterator() {
-                return new InOrderIterator(sampleNamesInOrder.iterator());
-            }
-        };
-    }
-
-    /**
-     * Iterate over the Genotypes in this context in their sample name order (A, B, C)
-     * regardless of the underlying order in the vector of genotypes
-     * @return a Iterable over the genotypes in this context.
-     */
-    public Iterable<Genotype> iterateInSampleNameOrder() {
-        return iterateInSampleNameOrder(getSampleNamesOrderedByName());
-    }
-
-    private final class InOrderIterator implements Iterator<Genotype> {
-        final Iterator<String> sampleNamesInOrder;
-
-        private InOrderIterator(final Iterator<String> sampleNamesInOrder) {
-            this.sampleNamesInOrder = sampleNamesInOrder;
-        }
-
-        @Override
-        public boolean hasNext() {
-            return sampleNamesInOrder.hasNext();
-        }
-
-        @Override
-        public Genotype next() {
-            return get(sampleNamesInOrder.next());
-        }
-
-        @Override
-        public void remove() {
-            throw new UnsupportedOperationException();
-        }
-    }
-
-    /**
-     * @return The set of sample names for all genotypes in this context, in arbitrary order
-     */
-    @Ensures("result != null")
-    public Set<String> getSampleNames() {
-        ensureSampleNameMap();
-        return sampleNameToOffset.keySet();
-    }
-
-    /**
-     * @return The set of sample names for all genotypes in this context, in their natural ordering (A, B, C)
-     */
-    @Ensures("result != null")
-    public List<String> getSampleNamesOrderedByName() {
-        ensureSampleOrdering();
-        return sampleNamesInOrder;
-    }
-
-    @Requires("sample != null")
-    public boolean containsSample(final String sample) {
-        ensureSampleNameMap();
-        return sampleNameToOffset.containsKey(sample);
-    }
-
-    @Requires("samples != null")
-    public boolean containsSamples(final Collection<String> samples) {
-        return getSampleNames().containsAll(samples);
-    }
-
-    /**
-     * Return a freshly allocated subcontext of this context containing only the samples
-     * listed in samples.  Note that samples can contain names not in this context, they
-     * will just be ignored.
-     *
-     * @param samples
-     * @return
-     */
-    @Requires("samples != null")
-    @Ensures("result != null")
-    public GenotypesContext subsetToSamples( final Set<String> samples ) {
-        final int nSamples = samples.size();
-
-        if ( nSamples == 0 )
-            return NO_GENOTYPES;
-        else { // nGenotypes < nSamples
-            final GenotypesContext subset = create(samples.size());
-            for ( final String sample : samples ) {
-                final Genotype g = get(sample);
-                if ( g != null )
-                    subset.add(g);
-            }
-            return subset;
-        }
-    }
-
-    @Override
-    public String toString() {
-        final List<String> gS = new ArrayList<String>();
-        for ( final Genotype g : this.iterateInSampleNameOrder() )
-            gS.add(g.toString());
-        return "[" + join(",", gS) + "]";
-    }
-
-    // copied from Utils
-    private static <T> String join(final String separator, final Collection<T> objects) {
-        if (objects.isEmpty()) { // fast path for empty collection
-            return "";
-        } else {
-            final Iterator<T> iter = objects.iterator();
-            final T first = iter.next();
-
-            if ( ! iter.hasNext() ) // fast path for singleton collections
-                return first.toString();
-            else { // full path for 2+ collection that actually need a join
-                final StringBuilder ret = new StringBuilder(first.toString());
-                while(iter.hasNext()) {
-                    ret.append(separator);
-                    ret.append(iter.next().toString());
-                }
-                return ret.toString();
-            }
-        }
-    }
-}
diff --git a/src/java/org/broadinstitute/variant/variantcontext/JEXLMap.java b/src/java/org/broadinstitute/variant/variantcontext/JEXLMap.java
deleted file mode 100644
index d43a887..0000000
--- a/src/java/org/broadinstitute/variant/variantcontext/JEXLMap.java
+++ /dev/null
@@ -1,230 +0,0 @@
-package org.broadinstitute.variant.variantcontext;
-
-import org.apache.commons.jexl2.JexlContext;
-import org.apache.commons.jexl2.MapContext;
-import org.broadinstitute.variant.utils.GeneralUtils;
-import org.broadinstitute.variant.variantcontext.VariantContextUtils.JexlVCMatchExp;
-import org.broadinstitute.variant.vcf.VCFConstants;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * this is an implementation of a Map of JexlVCMatchExp to true or false values.  It lazy initializes each value
- * as requested to save as much processing time as possible.
- *
- * Compatible with JEXL 1.1 (this code will be easier if we move to 2.0, all of the functionality can go into the
- * JexlContext's get()
- *
- */
-
-class JEXLMap implements Map<JexlVCMatchExp, Boolean> {
-    // our variant context and/or Genotype
-    private final VariantContext vc;
-    private final Genotype g;
-
-    // our context
-    private JexlContext jContext = null;
-
-    // our mapping from JEXLVCMatchExp to Booleans, which will be set to NULL for previously uncached JexlVCMatchExp
-    private Map<JexlVCMatchExp,Boolean> jexl;
-
-
-    public JEXLMap(Collection<JexlVCMatchExp> jexlCollection, VariantContext vc, Genotype g) {
-        this.vc = vc;
-        this.g = g;
-        initialize(jexlCollection);
-    }
-
-    public JEXLMap(Collection<JexlVCMatchExp> jexlCollection, VariantContext vc) {
-        this(jexlCollection, vc, null);
-    }
-
-    private void initialize(Collection<JexlVCMatchExp> jexlCollection) {
-        jexl = new HashMap<JexlVCMatchExp,Boolean>();
-        for (JexlVCMatchExp exp: jexlCollection) {
-            jexl.put(exp, null);
-        }
-    }
-
-    /**
-     * create the internal JexlContext, only when required.  This code is where new JEXL context variables
-     * should get added.
-     *
-     */
-    private void createContext() {
-        if ( g == null ) {
-            // todo -- remove dependancy on g to the entire system
-            jContext = new VariantJEXLContext(vc);
-        } else {
-            //
-            // this whole branch is here just to support G jexl operations
-            //
-            Map<String, Object> infoMap = new HashMap<String, Object>();
-
-            if ( vc != null ) {
-                // create a mapping of what we know about the variant context, its Chromosome, positions, etc.
-                infoMap.put("CHROM", vc.getChr());
-                infoMap.put("POS", vc.getStart());
-                infoMap.put("TYPE", vc.getType().toString());
-                infoMap.put("QUAL", String.valueOf(vc.getPhredScaledQual()));
-
-                // add alleles
-                infoMap.put("ALLELES", GeneralUtils.join(";", vc.getAlleles()));
-                infoMap.put("N_ALLELES", String.valueOf(vc.getNAlleles()));
-
-                // add attributes
-                addAttributesToMap(infoMap, vc.getAttributes());
-
-                // add filter fields
-                infoMap.put("FILTER", vc.isFiltered() ? "1" : "0");
-                for ( Object filterCode : vc.getFilters() ) {
-                    infoMap.put(String.valueOf(filterCode), "1");
-                }
-
-                // add genotype-specific fields
-                // TODO -- implement me when we figure out a good way to represent this
-                //    for ( Genotype g : vc.getGenotypes().values() ) {
-                //        String prefix = g.getSampleName() + ".";
-                //        addAttributesToMap(infoMap, g.getAttributes(), prefix);
-                //        infoMap.put(prefix + "GT", g.getGenotypeString());
-                //    }
-
-                // add specific genotype if one is provided
-                infoMap.put(VCFConstants.GENOTYPE_KEY, g.getGenotypeString());
-                infoMap.put("isHomRef", g.isHomRef() ? "1" : "0");
-                infoMap.put("isHet", g.isHet() ? "1" : "0");
-                infoMap.put("isHomVar", g.isHomVar() ? "1" : "0");
-                infoMap.put(VCFConstants.GENOTYPE_QUALITY_KEY, g.getGQ());
-                if ( g.hasDP() )
-                    infoMap.put(VCFConstants.DEPTH_KEY, g.getDP());
-                for ( Entry<String, Object> e : g.getExtendedAttributes().entrySet() ) {
-                    if ( e.getValue() != null && !e.getValue().equals(VCFConstants.MISSING_VALUE_v4) )
-                        infoMap.put(e.getKey(), e.getValue());
-                }
-            }
-
-            // create the internal context that we can evaluate expressions against
-
-            jContext = new MapContext(infoMap);
-        }
-    }
-
-    /**
-     * @return the size of the internal data structure
-     */
-    public int size() {
-        return jexl.size();
-    }
-
-    /**
-     * @return true if we're empty
-     */
-    public boolean isEmpty() { return this.jexl.isEmpty(); }
-
-    /**
-     * do we contain the specified key
-     * @param o the key
-     * @return true if we have a value for that key
-     */
-    public boolean containsKey(Object o) { return jexl.containsKey(o); }
-
-    public Boolean get(Object o) {
-        // if we've already determined the value, return it
-        if (jexl.containsKey(o) && jexl.get(o) != null) return jexl.get(o);
-
-        // try and cast the expression
-        JexlVCMatchExp e = (JexlVCMatchExp) o;
-        evaluateExpression(e);
-        return jexl.get(e);
-    }
-
-    /**
-     * get the keyset of map
-     * @return a set of keys of type JexlVCMatchExp
-     */
-    public Set<JexlVCMatchExp> keySet() {
-        return jexl.keySet();
-    }
-
-    /**
-     * get all the values of the map.  This is an expensive call, since it evaluates all keys that haven't
-     * been evaluated yet.  This is fine if you truely want all the keys, but if you only want a portion, or  know
-     * the keys you want, you would be better off using get() to get them by name.
-     * @return a collection of boolean values, representing the results of all the variants evaluated
-     */
-    public Collection<Boolean> values() {
-        // this is an expensive call
-        for (JexlVCMatchExp exp : jexl.keySet())
-            if (jexl.get(exp) == null)
-                evaluateExpression(exp);
-        return jexl.values();
-    }
-
-    /**
-     * evaulate a JexlVCMatchExp's expression, given the current context (and setup the context if it's null)
-     * @param exp the JexlVCMatchExp to evaluate
-     */
-    private void evaluateExpression(JexlVCMatchExp exp) {
-        // if the context is null, we need to create it to evaluate the JEXL expression
-        if (this.jContext == null) createContext();
-        try {
-            final Boolean value = (Boolean) exp.exp.evaluate(jContext);
-            // treat errors as no match
-            jexl.put(exp, value == null ? false : value);
-        } catch (Exception e) {
-            // if exception happens because variable is undefined (i.e. field in expression is not present), evaluate to FALSE
-            // todo - might be safer if we explicitly checked for an exception type, but Apache's API doesn't seem to have that ability
-            if (e.getMessage().contains("undefined variable"))
-                jexl.put(exp,false);
-            else
-                throw new IllegalArgumentException(String.format("Invalid JEXL expression detected for %s with message %s", exp.name, e.getMessage()));
-        }
-    }
-
-    /**
-     * helper function: adds the list of attributes to the information map we're building
-     * @param infoMap the map
-     * @param attributes the attributes
-     */
-    private static void addAttributesToMap(Map<String, Object> infoMap, Map<String, ?> attributes ) {
-        for (Entry<String, ?> e : attributes.entrySet()) {
-            infoMap.put(e.getKey(), String.valueOf(e.getValue()));
-        }
-    }
-
-    public Boolean put(JexlVCMatchExp jexlVCMatchExp, Boolean aBoolean) {
-        return jexl.put(jexlVCMatchExp,aBoolean);
-    }
-
-    public void putAll(Map<? extends JexlVCMatchExp, ? extends Boolean> map) {
-        jexl.putAll(map);
-    }
-
-    // //////////////////////////////////////////////////////////////////////////////////////
-    // The Following are unsupported at the moment
-    // //////////////////////////////////////////////////////////////////////////////////////
-
-    // this doesn't make much sense to implement, boolean doesn't offer too much variety to deal
-    // with evaluating every key in the internal map.
-    public boolean containsValue(Object o) {
-        throw new UnsupportedOperationException("containsValue() not supported on a JEXLMap");
-    }
-
-    // this doesn't make much sense
-    public Boolean remove(Object o) {
-        throw new UnsupportedOperationException("remove() not supported on a JEXLMap");
-    }
-
-
-    public Set<Entry<JexlVCMatchExp, Boolean>> entrySet() {
-        throw new UnsupportedOperationException("clear() not supported on a JEXLMap");
-    }
-
-    // nope
-    public void clear() {
-        throw new UnsupportedOperationException("clear() not supported on a JEXLMap");
-    }
-}
diff --git a/src/java/org/broadinstitute/variant/variantcontext/LazyGenotypesContext.java b/src/java/org/broadinstitute/variant/variantcontext/LazyGenotypesContext.java
deleted file mode 100644
index 4825615..0000000
--- a/src/java/org/broadinstitute/variant/variantcontext/LazyGenotypesContext.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.variantcontext;
-
-import com.google.java.contract.Ensures;
-import com.google.java.contract.Requires;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Lazy-loading GenotypesContext.  A lazy-loading context has access to the
- * VCFParser and a unparsed string of genotype data.  If the user attempts to manipulate
- * the genotypes contained in this context, we decode the data and become a full blown
- * GenotypesContext.  However, if the user never does this we are spared a lot of expense
- * decoding the genotypes unnecessarily.
- */
-public class LazyGenotypesContext extends GenotypesContext {
-    /** The LazyParser we'll use to decode unparsedGenotypeData if necessary */
-    final LazyParser parser;
-
-    Object unparsedGenotypeData;
-
-    /**
-     * nUnparsedGenotypes the number of genotypes contained in the unparsedGenotypes data
-     * (known already in the parser).  Useful for isEmpty and size() optimizations
-     */
-    final int nUnparsedGenotypes;
-
-    /**
-     * True if we've already decoded the values in unparsedGenotypeData
-     */
-    boolean loaded = false;
-
-    private final static ArrayList<Genotype> EMPTY = new ArrayList<Genotype>(0);
-
-    /**
-     * Simple lazy parser interface.  Provide an object implementing this
-     * interface to LazyGenotypesContext, and it's parse method will be called
-     * when the use of the lazy context requires the underlying genotypes data
-     * be parsed into Genotype objects.  The data argument is the data provided
-     * to the LazyGenotypesContext holding encoded genotypes data
-     */
-    public interface LazyParser {
-        @Requires("data != null")
-        @Ensures("result != null")
-        public LazyData parse(Object data);
-    }
-
-    /**
-     * Returns the data used in the full GenotypesContext constructor
-     *
-     * {@link GenotypesContext#GenotypesContext(java.util.ArrayList, java.util.Map, java.util.List)}
-     */
-    public static class LazyData {
-        final ArrayList<Genotype> genotypes;
-        final Map<String, Integer> sampleNameToOffset;
-        final List<String> sampleNamesInOrder;
-
-        @Requires({"genotypes != null", "sampleNamesInOrder != null", "sampleNameToOffset != null"})
-        public LazyData(final ArrayList<Genotype> genotypes,
-                        final List<String> sampleNamesInOrder,
-                        final Map<String, Integer> sampleNameToOffset) {
-            this.genotypes = genotypes;
-            this.sampleNamesInOrder = sampleNamesInOrder;
-            this.sampleNameToOffset = sampleNameToOffset;
-        }
-    }
-
-    /**
-     * Creates a new lazy loading genotypes context using the LazyParser to create
-     * genotypes data on demand.
-     *
-     * @param parser the parser to be used to load on-demand genotypes data
-     * @param unparsedGenotypeData the encoded genotypes data that we will decode if necessary
-     * @param nUnparsedGenotypes the number of genotypes that will be produced if / when we actually decode the genotypes data
-     */
-    @Requires({"parser != null", "unparsedGenotypeData != null", "nUnparsedGenotypes >= 0"})
-    public LazyGenotypesContext(final LazyParser parser, final Object unparsedGenotypeData, final int nUnparsedGenotypes) {
-        super(EMPTY);
-        this.parser = parser;
-        this.unparsedGenotypeData = unparsedGenotypeData;
-        this.nUnparsedGenotypes = nUnparsedGenotypes;
-    }
-
-    /**
-     * Overrides the genotypes accessor.  If we haven't already, decode the genotypes data
-     * and store the decoded results in the appropriate variables.  Otherwise we just
-     * returned the decoded result directly.  Note some care needs to be taken here as
-     * the value in notToBeDirectlyAccessedGenotypes may diverge from what would be produced
-     * by decode, if after the first decode the genotypes themselves are replaced
-     * @return
-     */
-    @Override
-    @Ensures("result != null")
-    protected ArrayList<Genotype> getGenotypes() {
-        decode();
-        return notToBeDirectlyAccessedGenotypes;
-    }
-
-    /**
-     * Force us to decode the genotypes, if not already done
-     */
-    public void decode() {
-        if ( ! loaded ) {
-            //System.out.printf("Loading genotypes... %s:%d%n", contig, start);
-            LazyData parsed = parser.parse(unparsedGenotypeData);
-            notToBeDirectlyAccessedGenotypes = parsed.genotypes;
-            sampleNamesInOrder = parsed.sampleNamesInOrder;
-            sampleNameToOffset = parsed.sampleNameToOffset;
-            loaded = true;
-            unparsedGenotypeData = null; // don't hold the unparsed data any longer
-
-            // warning -- this path allows us to create a VariantContext that doesn't run validateGenotypes()
-            // That said, it's not such an important routine -- it's just checking that the genotypes
-            // are well formed w.r.t. the alleles list, but this will be enforced within the VCFCodec
-        }
-    }
-
-    /**
-     * Overrides the ensure* functionality.  If the data hasn't been loaded
-     * yet and we want to build the cache, just decode it and we're done.  If we've
-     * already decoded the data, though, go through the super class
-     */
-    @Override
-    protected synchronized void ensureSampleNameMap() {
-        if ( ! loaded ) {
-            decode(); // will load up all of the necessary data
-        } else {
-            super.ensureSampleNameMap();
-        }
-    }
-
-    @Override
-    protected synchronized void ensureSampleOrdering() {
-        if ( ! loaded ) {
-            decode(); // will load up all of the necessary data
-        } else {
-            super.ensureSampleOrdering();
-        }
-    }
-
-    @Override
-    protected void invalidateSampleNameMap() {
-        // if the cache is invalidated, and we haven't loaded our data yet, do so
-        if ( ! loaded ) decode();
-        super.invalidateSampleNameMap();
-    }
-
-    @Override
-    protected void invalidateSampleOrdering() {
-        // if the cache is invalidated, and we haven't loaded our data yet, do so
-        if ( ! loaded ) decode();
-        super.invalidateSampleOrdering();
-    }
-
-    @Override
-    public boolean isEmpty() {
-        // optimization -- we know the number of samples in the unparsed data, so use it here to
-        // avoid parsing just to know if the genotypes context is empty
-        return loaded ? super.isEmpty() : nUnparsedGenotypes == 0;
-    }
-
-    @Override
-    public int size() {
-        // optimization -- we know the number of samples in the unparsed data, so use it here to
-        // avoid parsing just to know the size of the context
-        return loaded ? super.size() : nUnparsedGenotypes;
-    }
-
-    public Object getUnparsedGenotypeData() {
-        return unparsedGenotypeData;
-    }
-}
diff --git a/src/java/org/broadinstitute/variant/variantcontext/VariantContext.java b/src/java/org/broadinstitute/variant/variantcontext/VariantContext.java
deleted file mode 100644
index cc4a369..0000000
--- a/src/java/org/broadinstitute/variant/variantcontext/VariantContext.java
+++ /dev/null
@@ -1,1653 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.variantcontext;
-
-import org.broad.tribble.Feature;
-import org.broad.tribble.TribbleException;
-import org.broad.tribble.util.ParsingUtils;
-import org.broadinstitute.variant.utils.GeneralUtils;
-import org.broadinstitute.variant.vcf.*;
-
-import java.util.*;
-
-/**
- * Class VariantContext
- *
- * == High-level overview ==
- *
- * The VariantContext object is a single general class system for representing genetic variation data composed of:
- *
- * * Allele: representing single genetic haplotypes (A, T, ATC, -) (note that null alleles are used here for illustration; see the Allele class for how to represent indels)
- * * Genotype: an assignment of alleles for each chromosome of a single named sample at a particular locus
- * * VariantContext: an abstract class holding all segregating alleles at a locus as well as genotypes
- *    for multiple individuals containing alleles at that locus
- *
- * The class system works by defining segregating alleles, creating a variant context representing the segregating
- * information at a locus, and potentially creating and associating genotypes with individuals in the context.
- *
- * All of the classes are highly validating -- call validate() if you modify them -- so you can rely on the
- * self-consistency of the data once you have a VariantContext in hand.  The system has a rich set of assessor
- * and manipulator routines, as well as more complex static support routines in VariantContextUtils.
- *
- * The VariantContext (and Genotype) objects are attributed (supporting addition of arbitrary key/value pairs) and
- * filtered (can represent a variation that is viewed as suspect).
- *
- * VariantContexts are dynamically typed, so whether a VariantContext is a SNP, Indel, or NoVariant depends
- * on the properties of the alleles in the context.  See the detailed documentation on the Type parameter below.
- *
- * It's also easy to create subcontexts based on selected genotypes.
- *
- * == Working with Variant Contexts ==
- * By default, VariantContexts are immutable.  In order to access (in the rare circumstances where you need them)
- * setter routines, you need to create MutableVariantContexts and MutableGenotypes.
- *
- * === Some example data ===
- *
- * Allele A, Aref, T, Tref;
- * Allele del, delRef, ATC, ATCref;
- *
- * A [ref] / T at 10
- * GenomeLoc snpLoc = GenomeLocParser.createGenomeLoc("chr1", 10, 10);
- *
- * A / ATC [ref] from 20-23
- * GenomeLoc delLoc = GenomeLocParser.createGenomeLoc("chr1", 20, 22);
- *
- *  // A [ref] / ATC immediately after 20
- * GenomeLoc insLoc = GenomeLocParser.createGenomeLoc("chr1", 20, 20);
- *
- * === Alleles ===
- *
- * See the documentation in the Allele class itself
- *
- * What are they?
- *
- * Alleles can be either reference or non-reference
- *
- * Examples of alleles used here:
- *
- *   A = new Allele("A");
- *   Aref = new Allele("A", true);
- *   T = new Allele("T");
- *   ATC = new Allele("ATC");
- *
- * === Creating variant contexts ===
- *
- * ==== By hand ====
- *
- * Here's an example of a A/T polymorphism with the A being reference:
- *
- * <pre>
- * VariantContext vc = new VariantContext(name, snpLoc, Arrays.asList(Aref, T));
- * </pre>
- *
- * If you want to create a non-variant site, just put in a single reference allele
- *
- * <pre>
- * VariantContext vc = new VariantContext(name, snpLoc, Arrays.asList(Aref));
- * </pre>
- *
- * A deletion is just as easy:
- *
- * <pre>
- * VariantContext vc = new VariantContext(name, delLoc, Arrays.asList(ATCref, del));
- * </pre>
- *
- * The only thing that distinguishes between an insertion and deletion is which is the reference allele.
- * An insertion has a reference allele that is smaller than the non-reference allele, and vice versa for deletions.
- *
- * <pre>
- * VariantContext vc = new VariantContext("name", insLoc, Arrays.asList(delRef, ATC));
- * </pre>
- *
- * ==== Converting rods and other data structures to VCs ====
- *
- * You can convert many common types into VariantContexts using the general function:
- *
- * <pre>
- * VariantContextAdaptors.convertToVariantContext(name, myObject)
- * </pre>
- *
- * dbSNP and VCFs, for example, can be passed in as myObject and a VariantContext corresponding to that
- * object will be returned.  A null return type indicates that the type isn't yet supported.  This is the best
- * and easiest way to create contexts using RODs.
- *
- *
- * === Working with genotypes ===
- *
- * <pre>
- * List<Allele> alleles = Arrays.asList(Aref, T);
- * Genotype g1 = new Genotype(Arrays.asList(Aref, Aref), "g1", 10);
- * Genotype g2 = new Genotype(Arrays.asList(Aref, T), "g2", 10);
- * Genotype g3 = new Genotype(Arrays.asList(T, T), "g3", 10);
- * VariantContext vc = new VariantContext(snpLoc, alleles, Arrays.asList(g1, g2, g3));
- * </pre>
- *
- * At this point we have 3 genotypes in our context, g1-g3.
- *
- * You can assess a good deal of information about the genotypes through the VariantContext:
- *
- * <pre>
- * vc.hasGenotypes()
- * vc.isMonomorphicInSamples()
- * vc.isPolymorphicInSamples()
- * vc.getSamples().size()
- *
- * vc.getGenotypes()
- * vc.getGenotypes().get("g1")
- * vc.hasGenotype("g1")
- *
- * vc.getCalledChrCount()
- * vc.getCalledChrCount(Aref)
- * vc.getCalledChrCount(T)
- * </pre>
- *
- * === NO_CALL alleles ===
- *
- * The system allows one to create Genotypes carrying special NO_CALL alleles that aren't present in the
- * set of context alleles and that represent undetermined alleles in a genotype:
- *
- * Genotype g4 = new Genotype(Arrays.asList(Allele.NO_CALL, Allele.NO_CALL), "NO_DATA_FOR_SAMPLE", 10);
- *
- *
- * === subcontexts ===
- * It's also very easy get subcontext based only the data in a subset of the genotypes:
- *
- * <pre>
- * VariantContext vc12 = vc.subContextFromGenotypes(Arrays.asList(g1,g2));
- * VariantContext vc1 = vc.subContextFromGenotypes(Arrays.asList(g1));
- * </pre>
- *
- * <s3>
- *     Fully decoding.  Currently VariantContexts support some fields, particularly those
- *     stored as generic attributes, to be of any type.  For example, a field AB might
- *     be naturally a floating point number, 0.51, but when it's read into a VC its
- *     not decoded into the Java presentation but left as a string "0.51".  A fully
- *     decoded VariantContext is one where all values have been converted to their
- *     corresponding Java object types, based on the types declared in a VCFHeader.
- *
- *     The fullyDecode() takes a header object and creates a new fully decoded VariantContext
- *     where all fields are converted to their true java representation.  The VCBuilder
- *     can be told that all fields are fully decoded, in which case no work is done when
- *     asking for a fully decoded version of the VC.
- * </s3>
- *
- * @author depristo
- */
-public class VariantContext implements Feature { // to enable tribble integration
-    private final static boolean WARN_ABOUT_BAD_END = true;
-    private final static int MAX_ALLELE_SIZE_FOR_NON_SV = 150;
-    private boolean fullyDecoded = false;
-    protected CommonInfo commonInfo = null;
-    public final static double NO_LOG10_PERROR = CommonInfo.NO_LOG10_PERROR;
-
-    public final static Set<String> PASSES_FILTERS = Collections.unmodifiableSet(new LinkedHashSet<String>());
-
-    /** The location of this VariantContext */
-    final protected String contig;
-    final protected long start;
-    final protected long stop;
-    private final String ID;
-
-    /** The type (cached for performance reasons) of this context */
-    protected Type type = null;
-
-    /** A set of the alleles segregating in this context */
-    final protected List<Allele> alleles;
-
-    /** A mapping from sampleName -> genotype objects for all genotypes associated with this context */
-    protected GenotypesContext genotypes = null;
-
-    /** Counts for each of the possible Genotype types in this context */
-    protected int[] genotypeCounts = null;
-
-    public final static GenotypesContext NO_GENOTYPES = GenotypesContext.NO_GENOTYPES;
-
-    // a fast cached access point to the ref / alt alleles for biallelic case
-    private Allele REF = null;
-
-    // set to the alt allele when biallelic, otherwise == null
-    private Allele ALT = null;
-
-    /* cached monomorphic value: null -> not yet computed, False, True */
-    private Boolean monomorphic = null;
-
-    /*
-* Determine which genotype fields are in use in the genotypes in VC
-* @return an ordered list of genotype fields in use in VC.  If vc has genotypes this will always include GT first
-*/
-    public List<String> calcVCFGenotypeKeys(final VCFHeader header) {
-        final Set<String> keys = new HashSet<String>();
-
-        boolean sawGoodGT = false;
-        boolean sawGoodQual = false;
-        boolean sawGenotypeFilter = false;
-        boolean sawDP = false;
-        boolean sawAD = false;
-        boolean sawPL = false;
-        for (final Genotype g : this.getGenotypes()) {
-            keys.addAll(g.getExtendedAttributes().keySet());
-            if ( g.isAvailable() ) sawGoodGT = true;
-            if ( g.hasGQ() ) sawGoodQual = true;
-            if ( g.hasDP() ) sawDP = true;
-            if ( g.hasAD() ) sawAD = true;
-            if ( g.hasPL() ) sawPL = true;
-            if (g.isFiltered()) sawGenotypeFilter = true;
-        }
-
-        if ( sawGoodQual ) keys.add(VCFConstants.GENOTYPE_QUALITY_KEY);
-        if ( sawDP ) keys.add(VCFConstants.DEPTH_KEY);
-        if ( sawAD ) keys.add(VCFConstants.GENOTYPE_ALLELE_DEPTHS);
-        if ( sawPL ) keys.add(VCFConstants.GENOTYPE_PL_KEY);
-        if ( sawGenotypeFilter ) keys.add(VCFConstants.GENOTYPE_FILTER_KEY);
-
-        List<String> sortedList = ParsingUtils.sortList(new ArrayList<String>(keys));
-
-        // make sure the GT is first
-        if (sawGoodGT) {
-            final List<String> newList = new ArrayList<String>(sortedList.size()+1);
-            newList.add(VCFConstants.GENOTYPE_KEY);
-            newList.addAll(sortedList);
-            sortedList = newList;
-        }
-
-        if (sortedList.isEmpty() && header.hasGenotypingData()) {
-            // this needs to be done in case all samples are no-calls
-            return Collections.singletonList(VCFConstants.GENOTYPE_KEY);
-        } else {
-            return sortedList;
-        }
-    }
-
-    // ---------------------------------------------------------------------------------------------------------
-    //
-    // validation mode
-    //
-    // ---------------------------------------------------------------------------------------------------------
-
-    public enum Validation {
-        ALLELES,
-        GENOTYPES
-    }
-
-    private final static EnumSet<Validation> NO_VALIDATION = EnumSet.noneOf(Validation.class);
-
-    // ---------------------------------------------------------------------------------------------------------
-    //
-    // constructors: see VariantContextBuilder
-    //
-    // ---------------------------------------------------------------------------------------------------------
-
-    /**
-     * Copy constructor
-     *
-     * @param other the VariantContext to copy
-     */
-    protected VariantContext(VariantContext other) {
-        this(other.getSource(), other.getID(), other.getChr(), other.getStart(), other.getEnd(),
-                other.getAlleles(), other.getGenotypes(), other.getLog10PError(),
-                other.getFiltersMaybeNull(),
-                other.getAttributes(),
-                other.fullyDecoded, NO_VALIDATION);
-    }
-
-    /**
-     * the actual constructor.  Private access only
-     *
-     * @param source          source
-     * @param contig          the contig
-     * @param start           the start base (one based)
-     * @param stop            the stop reference base (one based)
-     * @param alleles         alleles
-     * @param genotypes       genotypes map
-     * @param log10PError  qual
-     * @param filters         filters: use null for unfiltered and empty set for passes filters
-     * @param attributes      attributes
-     * @param validationToPerform     set of validation steps to take
-     */
-    protected VariantContext(final String source,
-                             final String ID,
-                             final String contig,
-                             final long start,
-                             final long stop,
-                             final Collection<Allele> alleles,
-                             final GenotypesContext genotypes,
-                             final double log10PError,
-                             final Set<String> filters,
-                             final Map<String, Object> attributes,
-                             final boolean fullyDecoded,
-                             final EnumSet<Validation> validationToPerform ) {
-        if ( contig == null ) { throw new IllegalArgumentException("Contig cannot be null"); }
-        this.contig = contig;
-        this.start = start;
-        this.stop = stop;
-
-        // intern for efficiency.  equals calls will generate NPE if ID is inappropriately passed in as null
-        if ( ID == null || ID.equals("") ) throw new IllegalArgumentException("ID field cannot be the null or the empty string");
-        this.ID = ID.equals(VCFConstants.EMPTY_ID_FIELD) ? VCFConstants.EMPTY_ID_FIELD : ID;
-
-        this.commonInfo = new CommonInfo(source, log10PError, filters, attributes);
-
-        if ( alleles == null ) { throw new IllegalArgumentException("Alleles cannot be null"); }
-
-        // we need to make this a LinkedHashSet in case the user prefers a given ordering of alleles
-        this.alleles = makeAlleles(alleles);
-
-        if ( genotypes == null || genotypes == NO_GENOTYPES ) {
-            this.genotypes = NO_GENOTYPES;
-        } else {
-            this.genotypes = genotypes.immutable();
-        }
-
-        // cache the REF and ALT alleles
-        int nAlleles = alleles.size();
-        for ( Allele a : alleles ) {
-            if ( a.isReference() ) {
-                REF = a;
-            } else if ( nAlleles == 2 ) { // only cache ALT when biallelic
-                ALT = a;
-            }
-        }
-
-        this.fullyDecoded = fullyDecoded;
-
-        if ( ! validationToPerform.isEmpty() ) {
-            validate(validationToPerform);
-        }
-    }
-
-    // ---------------------------------------------------------------------------------------------------------
-    //
-    // Selectors
-    //
-    // ---------------------------------------------------------------------------------------------------------
-
-    /**
-     * This method subsets down to a set of samples.
-     *
-     * At the same time returns the alleles to just those in use by the samples,
-     * if rederiveAllelesFromGenotypes is true, otherwise the full set of alleles
-     * in this VC is returned as the set of alleles in the subContext, even if
-     * some of those alleles aren't in the samples
-     *
-     * WARNING: BE CAREFUL WITH rederiveAllelesFromGenotypes UNLESS YOU KNOW WHAT YOU ARE DOING?
-     *
-     * @param sampleNames    the sample names
-     * @param rederiveAllelesFromGenotypes if true, returns the alleles to just those in use by the samples, true should be default
-     * @return new VariantContext subsetting to just the given samples
-     */
-    public VariantContext subContextFromSamples(Set<String> sampleNames, final boolean rederiveAllelesFromGenotypes ) {
-        if ( sampleNames.containsAll(getSampleNames()) && ! rederiveAllelesFromGenotypes ) {
-            return this; // fast path when you don't have any work to do
-        } else {
-            VariantContextBuilder builder = new VariantContextBuilder(this);
-            GenotypesContext newGenotypes = genotypes.subsetToSamples(sampleNames);
-
-            if ( rederiveAllelesFromGenotypes ) {
-                Set<Allele> allelesFromGenotypes = allelesOfGenotypes(newGenotypes);
-
-                // ensure original order of genotypes
-                List<Allele> rederivedAlleles = new ArrayList<Allele>(allelesFromGenotypes.size());
-                for (Allele allele : alleles)
-                    if (allelesFromGenotypes.contains(allele))
-                        rederivedAlleles.add(allele);
-
-                builder.alleles(rederivedAlleles);
-            }
-            else {
-                builder.alleles(alleles);
-            }
-
-            return builder.genotypes(newGenotypes).make();
-        }
-    }
-
-    /**
-     * @see #subContextFromSamples(java.util.Set, boolean) with rederiveAllelesFromGenotypes = true
-     *
-     * @param sampleNames
-     * @return
-     */
-    public VariantContext subContextFromSamples(final Set<String> sampleNames) {
-        return subContextFromSamples(sampleNames, true);
-    }
-
-    public VariantContext subContextFromSample(String sampleName) {
-        return subContextFromSamples(Collections.singleton(sampleName));
-    }
-
-    /**
-     * helper routine for subcontext
-     * @param genotypes genotypes
-     * @return allele set
-     */
-    private final Set<Allele> allelesOfGenotypes(Collection<Genotype> genotypes) {
-        final Set<Allele> alleles = new HashSet<Allele>();
-
-        boolean addedref = false;
-        for ( final Genotype g : genotypes ) {
-            for ( final Allele a : g.getAlleles() ) {
-                addedref = addedref || a.isReference();
-                if ( a.isCalled() )
-                    alleles.add(a);
-            }
-        }
-        if ( ! addedref ) alleles.add(getReference());
-
-        return alleles;
-    }
-
-    // ---------------------------------------------------------------------------------------------------------
-    //
-    // type operations
-    //
-    // ---------------------------------------------------------------------------------------------------------
-
-    /**
-     * see: http://www.ncbi.nlm.nih.gov/bookshelf/br.fcgi?book=handbook&part=ch5&rendertype=table&id=ch5.ch5_t3
-     *
-     * Format:
-     * dbSNP variation class
-     * Rules for assigning allele classes
-     * Sample allele definition
-     *
-     * Single Nucleotide Polymorphisms (SNPs)a
-     *   Strictly defined as single base substitutions involving A, T, C, or G.
-     *   A/T
-     *
-     * Deletion/Insertion Polymorphisms (DIPs)
-     *   Designated using the full sequence of the insertion as one allele, and either a fully
-     *   defined string for the variant allele or a '-' character to specify the deleted allele.
-     *   This class will be assigned to a variation if the variation alleles are of different lengths or
-     *   if one of the alleles is deleted ('-').
-     *   T/-/CCTA/G
-     *
-     * No-variation
-     *   Reports may be submitted for segments of sequence that are assayed and determined to be invariant
-     *   in the sample.
-     *   (NoVariation)
-     *
-     * Mixed
-     *   Mix of other classes
-     *
-     * Also supports NO_VARIATION type, used to indicate that the site isn't polymorphic in the population
-     *
-     *
-     * Not currently supported:
-     *
-     * Heterozygous sequence
-     * The term heterozygous is used to specify a region detected by certain methods that do not
-     * resolve the polymorphism into a specific sequence motif. In these cases, a unique flanking
-     * sequence must be provided to define a sequence context for the variation.
-     * (heterozygous)
-     *
-     * Microsatellite or short tandem repeat (STR)
-     * Alleles are designated by providing the repeat motif and the copy number for each allele.
-     * Expansion of the allele repeat motif designated in dbSNP into full-length sequence will
-     * be only an approximation of the true genomic sequence because many microsatellite markers are
-     * not fully sequenced and are resolved as size variants only.
-     * (CAC)8/9/10/11
-     *
-     * Named variant
-     * Applies to insertion/deletion polymorphisms of longer sequence features, such as retroposon
-     * dimorphism for Alu or line elements. These variations frequently include a deletion '-' indicator
-     * for the absent allele.
-     * (alu) / -
-     *
-     * Multi-Nucleotide Polymorphism (MNP)
-     *   Assigned to variations that are multi-base variations of a single, common length
-     *   GGA/AGT
-     */
-    public enum Type {
-        NO_VARIATION,
-        SNP,
-        MNP,    // a multi-nucleotide polymorphism
-        INDEL,
-        SYMBOLIC,
-        MIXED,
-    }
-
-    /**
-     * Determines (if necessary) and returns the type of this variation by examining the alleles it contains.
-     *
-     * @return the type of this VariantContext
-     **/
-    public Type getType() {
-        if ( type == null )
-            determineType();
-
-        return type;
-    }
-
-    /**
-     * convenience method for SNPs
-     *
-     * @return true if this is a SNP, false otherwise
-     */
-    public boolean isSNP() { return getType() == Type.SNP; }
-
-
-    /**
-     * convenience method for variants
-     *
-     * @return true if this is a variant allele, false if it's reference
-     */
-    public boolean isVariant() { return getType() != Type.NO_VARIATION; }
-
-    /**
-     * convenience method for point events
-     *
-     * @return true if this is a SNP or ref site, false if it's an indel or mixed event
-     */
-    public boolean isPointEvent() { return isSNP() || !isVariant(); }
-
-    /**
-     * convenience method for indels
-     *
-     * @return true if this is an indel, false otherwise
-     */
-    public boolean isIndel() { return getType() == Type.INDEL; }
-
-    /**
-     * @return true if the alleles indicate a simple insertion (i.e., the reference allele is Null)
-     */
-    public boolean isSimpleInsertion() {
-        // can't just call !isSimpleDeletion() because of complex indels
-        return isSimpleIndel() && getReference().length() == 1;
-    }
-
-    /**
-     * @return true if the alleles indicate a simple deletion (i.e., a single alt allele that is Null)
-     */
-    public boolean isSimpleDeletion() {
-        // can't just call !isSimpleInsertion() because of complex indels
-        return isSimpleIndel() && getAlternateAllele(0).length() == 1;
-    }
-
-    /**
-     * @return true if the alleles indicate a simple indel, false otherwise.
-     */
-    public boolean isSimpleIndel() {
-        return getType() == Type.INDEL                   // allelic lengths differ
-                && isBiallelic()                         // exactly 2 alleles
-                && getReference().length() > 0           // ref is not null or symbolic
-                && getAlternateAllele(0).length() > 0    // alt is not null or symbolic
-                && getReference().getBases()[0] == getAlternateAllele(0).getBases()[0]    // leading bases match for both alleles
-                && (getReference().length() == 1 || getAlternateAllele(0).length() == 1);
-    }
-
-    /**
-     * @return true if the alleles indicate neither a simple deletion nor a simple insertion
-     */
-    public boolean isComplexIndel() {
-        return isIndel() && !isSimpleDeletion() && !isSimpleInsertion();
-    }
-
-    public boolean isSymbolic() {
-        return getType() == Type.SYMBOLIC;
-    }
-
-    public boolean isStructuralIndel() {
-        if ( getType() == Type.INDEL ) {
-            List<Integer> sizes = getIndelLengths();
-            if ( sizes != null ) {
-                for ( Integer length : sizes ) {
-                    if ( length > MAX_ALLELE_SIZE_FOR_NON_SV ) {
-                        return true;
-                    }
-                }
-            }
-        }
-        return false;
-    }
-
-    /**
-     *
-     * @return true if the variant is symbolic or a large indel
-     */
-    public boolean isSymbolicOrSV() {
-        return isSymbolic() || isStructuralIndel();
-    }
-
-    public boolean isMNP() {
-        return getType() == Type.MNP;
-    }
-
-    /**
-     * convenience method for indels
-     *
-     * @return true if this is an mixed variation, false otherwise
-     */
-    public boolean isMixed() { return getType() == Type.MIXED; }
-
-
-    // ---------------------------------------------------------------------------------------------------------
-    //
-    // Generic accessors
-    //
-    // ---------------------------------------------------------------------------------------------------------
-
-    public boolean hasID() {
-        return getID() != VCFConstants.EMPTY_ID_FIELD;
-    }
-
-    public boolean emptyID() {
-        return ! hasID();
-    }
-
-    public String getID() {
-        return ID;
-    }
-
-
-    // ---------------------------------------------------------------------------------------------------------
-    //
-    // get routines to access context info fields
-    //
-    // ---------------------------------------------------------------------------------------------------------
-    public String getSource()                   { return commonInfo.getName(); }
-    public Set<String> getFiltersMaybeNull()    { return commonInfo.getFiltersMaybeNull(); }
-    public Set<String> getFilters()             { return commonInfo.getFilters(); }
-    public boolean isFiltered()                 { return commonInfo.isFiltered(); }
-    public boolean isNotFiltered()              { return commonInfo.isNotFiltered(); }
-    public boolean filtersWereApplied()         { return commonInfo.filtersWereApplied(); }
-    public boolean hasLog10PError()             { return commonInfo.hasLog10PError(); }
-    public double getLog10PError()              { return commonInfo.getLog10PError(); }
-    public double getPhredScaledQual()          { return commonInfo.getPhredScaledQual(); }
-
-    public Map<String, Object>  getAttributes() { return commonInfo.getAttributes(); }
-    public boolean hasAttribute(String key)     { return commonInfo.hasAttribute(key); }
-    public Object getAttribute(String key)      { return commonInfo.getAttribute(key); }
-
-    public Object getAttribute(String key, Object defaultValue) {
-        return commonInfo.getAttribute(key, defaultValue);
-    }
-
-    public String getAttributeAsString(String key, String defaultValue)   { return commonInfo.getAttributeAsString(key, defaultValue); }
-    public int getAttributeAsInt(String key, int defaultValue)            { return commonInfo.getAttributeAsInt(key, defaultValue); }
-    public double getAttributeAsDouble(String key, double  defaultValue)  { return commonInfo.getAttributeAsDouble(key, defaultValue); }
-    public boolean getAttributeAsBoolean(String key, boolean  defaultValue)  { return commonInfo.getAttributeAsBoolean(key, defaultValue); }
-
-    public CommonInfo getCommonInfo() {
-        return commonInfo;
-    }
-
-    // ---------------------------------------------------------------------------------------------------------
-    //
-    // Working with alleles
-    //
-    // ---------------------------------------------------------------------------------------------------------
-
-    /**
-     * @return the reference allele for this context
-     */
-    public Allele getReference() {
-        Allele ref = REF;
-        if ( ref == null )
-            throw new IllegalStateException("BUG: no reference allele found at " + this);
-        return ref;
-    }
-
-
-    /**
-     * @return true if the context is strictly bi-allelic
-     */
-    public boolean isBiallelic() {
-        return getNAlleles() == 2;
-    }
-
-    /**
-     * @return The number of segregating alleles in this context
-     */
-    public int getNAlleles() {
-        return alleles.size();
-    }
-
-    /**
-     * Returns the maximum ploidy of all samples in this VC, or default if there are no genotypes
-     *
-     * This function is caching, so it's only expensive on the first call
-     *
-     * @param defaultPloidy the default ploidy, if all samples are no-called
-     * @return default, or the max ploidy
-     */
-    public int getMaxPloidy(final int defaultPloidy) {
-        return genotypes.getMaxPloidy(defaultPloidy);
-    }
-
-    /**
-     * @return The allele sharing the same bases as this String.  A convenience method; better to use byte[]
-     */
-    public Allele getAllele(String allele) {
-        return getAllele(allele.getBytes());
-    }
-
-    /**
-     * @return The allele sharing the same bases as this byte[], or null if no such allele is present.
-     */
-    public Allele getAllele(byte[] allele) {
-        return Allele.getMatchingAllele(getAlleles(), allele);
-    }
-
-    /**
-     * @return True if this context contains Allele allele, or false otherwise
-     */
-    public boolean hasAllele(final Allele allele) {
-        return hasAllele(allele, false, true);
-    }
-
-    public boolean hasAllele(final Allele allele, final boolean ignoreRefState) {
-        return hasAllele(allele, ignoreRefState, true);
-    }
-
-    public boolean hasAlternateAllele(final Allele allele) {
-        return hasAllele(allele, false, false);
-    }
-
-    public boolean hasAlternateAllele(final Allele allele, final boolean ignoreRefState) {
-        return hasAllele(allele, ignoreRefState, false);
-    }
-
-    private boolean hasAllele(final Allele allele, final boolean ignoreRefState, final boolean considerRefAllele) {
-        if ( (considerRefAllele && allele == REF) || allele == ALT ) // optimization for cached cases
-            return true;
-
-        final List<Allele> allelesToConsider = considerRefAllele ? getAlleles() : getAlternateAlleles();
-        for ( Allele a : allelesToConsider ) {
-            if ( a.equals(allele, ignoreRefState) )
-                return true;
-        }
-
-        return false;
-    }
-
-
-    /**
-     * Gets the alleles.  This method should return all of the alleles present at the location,
-     * including the reference allele.  There are no constraints imposed on the ordering of alleles
-     * in the set. If the reference is not an allele in this context it will not be included.
-     *
-     * @return the set of alleles
-     */
-    public List<Allele> getAlleles() { return alleles; }
-
-    /**
-     * Gets the alternate alleles.  This method should return all the alleles present at the location,
-     * NOT including the reference allele.  There are no constraints imposed on the ordering of alleles
-     * in the set.
-     *
-     * @return the set of alternate alleles
-     */
-    public List<Allele> getAlternateAlleles() {
-        return alleles.subList(1, alleles.size());
-    }
-
-    /**
-     * Gets the sizes of the alternate alleles if they are insertion/deletion events, and returns a list of their sizes
-     *
-     * @return a list of indel lengths ( null if not of type indel or mixed )
-     */
-    public List<Integer> getIndelLengths() {
-        if ( getType() != Type.INDEL && getType() != Type.MIXED ) {
-            return null;
-        }
-
-        List<Integer> lengths = new ArrayList<Integer>();
-        for ( Allele a : getAlternateAlleles() ) {
-            lengths.add(a.length() - getReference().length());
-        }
-
-        return lengths;
-    }
-
-    /**
-     * @param i -- the ith allele (from 0 to n - 2 for a context with n alleles including a reference allele)
-     * @return the ith non-reference allele in this context
-     * @throws IllegalArgumentException if i is invalid
-     */
-    public Allele getAlternateAllele(int i) {
-        return alleles.get(i+1);
-    }
-
-    /**
-     * @param  other  VariantContext whose alleles to compare against
-     * @return true if this VariantContext has the same alleles (both ref and alts) as other,
-     *         regardless of ordering. Otherwise returns false.
-     */
-    public boolean hasSameAllelesAs ( final VariantContext other ) {
-        return hasSameAlternateAllelesAs(other) && other.getReference().equals(getReference(), false);
-    }
-
-    /**
-     * @param  other  VariantContext whose alternate alleles to compare against
-     * @return true if this VariantContext has the same alternate alleles as other,
-     *         regardless of ordering. Otherwise returns false.
-     */
-    public boolean hasSameAlternateAllelesAs ( final VariantContext other ) {
-        List<Allele> thisAlternateAlleles = getAlternateAlleles();
-        List<Allele> otherAlternateAlleles = other.getAlternateAlleles();
-
-        if ( thisAlternateAlleles.size() != otherAlternateAlleles.size() ) {
-            return false;
-        }
-
-        for ( Allele allele : thisAlternateAlleles ) {
-            if ( ! otherAlternateAlleles.contains(allele) ) {
-                return false;
-            }
-        }
-
-        return true;
-    }
-
-    // ---------------------------------------------------------------------------------------------------------
-    //
-    // Working with genotypes
-    //
-    // ---------------------------------------------------------------------------------------------------------
-
-    /**
-     * @return the number of samples in the context
-     */
-    public int getNSamples() {
-        return genotypes.size();
-    }
-
-    /**
-     * @return true if the context has associated genotypes
-     */
-    public boolean hasGenotypes() {
-        return ! genotypes.isEmpty();
-    }
-
-    public boolean hasGenotypes(Collection<String> sampleNames) {
-        return genotypes.containsSamples(sampleNames);
-    }
-
-    /**
-     * @return set of all Genotypes associated with this context
-     */
-    public GenotypesContext getGenotypes() {
-        return genotypes;
-    }
-
-    public Iterable<Genotype> getGenotypesOrderedByName() {
-        return genotypes.iterateInSampleNameOrder();
-    }
-
-    public Iterable<Genotype> getGenotypesOrderedBy(Iterable<String> sampleOrdering) {
-        return genotypes.iterateInSampleNameOrder(sampleOrdering);
-    }
-
-    /**
-     * Returns a map from sampleName -> Genotype for the genotype associated with sampleName.  Returns a map
-     * for consistency with the multi-get function.
-     *
-     * @param sampleName   the sample name
-     * @return mapping from sample name to genotype
-     * @throws IllegalArgumentException if sampleName isn't bound to a genotype
-     */
-    public GenotypesContext getGenotypes(String sampleName) {
-        return getGenotypes(Collections.singleton(sampleName));
-    }
-
-    /**
-     * Returns a map from sampleName -> Genotype for each sampleName in sampleNames.  Returns a map
-     * for consistency with the multi-get function.
-     *
-     * For testing convenience only
-     *
-     * @param sampleNames a unique list of sample names
-     * @return subsetting genotypes context
-     * @throws IllegalArgumentException if sampleName isn't bound to a genotype
-     */
-    protected GenotypesContext getGenotypes(Collection<String> sampleNames) {
-        return getGenotypes().subsetToSamples(new HashSet<String>(sampleNames));
-    }
-
-    public GenotypesContext getGenotypes(Set<String> sampleNames) {
-        return getGenotypes().subsetToSamples(sampleNames);
-    }
-
-
-    /**
-     * @return the set of all sample names in this context, not ordered
-     */
-    public Set<String> getSampleNames() {
-        return getGenotypes().getSampleNames();
-    }
-
-    public List<String> getSampleNamesOrderedByName() {
-        return getGenotypes().getSampleNamesOrderedByName();
-    }
-
-    /**
-     * @param sample  the sample name
-     *
-     * @return the Genotype associated with the given sample in this context or null if the sample is not in this context
-     */
-    public Genotype getGenotype(String sample) {
-        return getGenotypes().get(sample);
-    }
-
-    public boolean hasGenotype(String sample) {
-        return getGenotypes().containsSample(sample);
-    }
-
-    public Genotype getGenotype(int ith) {
-        return genotypes.get(ith);
-    }
-
-
-    /**
-     * Returns the number of chromosomes carrying any allele in the genotypes (i.e., excluding NO_CALLS)
-     *
-     * @return chromosome count
-     */
-    public int getCalledChrCount() {
-        final Set<String> noSamples = Collections.emptySet();
-        return  getCalledChrCount(noSamples);
-    }
-
-    /**
-     * Returns the number of chromosomes carrying any allele in the genotypes (i.e., excluding NO_CALLS)
-     *
-     * @param sampleIds IDs of samples to take into account. If empty then all samples are included.
-     * @return chromosome count
-     */
-    public int getCalledChrCount(Set<String> sampleIds) {
-        int n = 0;
-        GenotypesContext genotypes = sampleIds.isEmpty() ? getGenotypes() : getGenotypes(sampleIds);
-
-        for ( final Genotype g : genotypes) {
-            for ( final Allele a : g.getAlleles() )
-                n += a.isNoCall() ? 0 : 1;
-        }
-
-        return n;
-    }
-
-    /**
-     * Returns the number of chromosomes carrying allele A in the genotypes
-     *
-     * @param a allele
-     * @return chromosome count
-     */
-    public int getCalledChrCount(Allele a) {
-        return getCalledChrCount(a,new HashSet<String>(0));
-    }
-
-    /**
-     * Returns the number of chromosomes carrying allele A in the genotypes
-     *
-     * @param a allele
-     * @param sampleIds - IDs of samples to take into account. If empty then all samples are included.
-     * @return chromosome count
-     */
-    public int getCalledChrCount(Allele a, Set<String> sampleIds) {
-        int n = 0;
-        GenotypesContext genotypes = sampleIds.isEmpty() ? getGenotypes() : getGenotypes(sampleIds);
-
-        for ( final Genotype g : genotypes ) {
-            n += g.countAllele(a);
-        }
-
-        return n;
-    }
-
-    /**
-     * Genotype-specific functions -- are the genotypes monomorphic w.r.t. to the alleles segregating at this
-     * site?  That is, is the number of alternate alleles among all fo the genotype == 0?
-     *
-     * @return true if it's monomorphic
-     */
-    public boolean isMonomorphicInSamples() {
-        if ( monomorphic == null )
-            monomorphic = ! isVariant() || (hasGenotypes() && getCalledChrCount(getReference()) == getCalledChrCount());
-        return monomorphic;
-    }
-
-    /**
-     * Genotype-specific functions -- are the genotypes polymorphic w.r.t. to the alleles segregating at this
-     * site?  That is, is the number of alternate alleles among all fo the genotype > 0?
-     *
-     * @return true if it's polymorphic
-     */
-    public boolean isPolymorphicInSamples() {
-        return ! isMonomorphicInSamples();
-    }
-
-    private void calculateGenotypeCounts() {
-        if ( genotypeCounts == null ) {
-            genotypeCounts = new int[GenotypeType.values().length];
-
-            for ( final Genotype g : getGenotypes() ) {
-                genotypeCounts[g.getType().ordinal()]++;
-            }
-        }
-    }
-
-    /**
-     * Genotype-specific functions -- how many no-calls are there in the genotypes?
-     *
-     * @return number of no calls
-     */
-    public int getNoCallCount() {
-        calculateGenotypeCounts();
-        return genotypeCounts[GenotypeType.NO_CALL.ordinal()];
-    }
-
-    /**
-     * Genotype-specific functions -- how many hom ref calls are there in the genotypes?
-     *
-     * @return number of hom ref calls
-     */
-    public int getHomRefCount() {
-        calculateGenotypeCounts();
-        return genotypeCounts[GenotypeType.HOM_REF.ordinal()];
-    }
-
-    /**
-     * Genotype-specific functions -- how many het calls are there in the genotypes?
-     *
-     * @return number of het calls
-     */
-    public int getHetCount() {
-        calculateGenotypeCounts();
-        return genotypeCounts[GenotypeType.HET.ordinal()];
-    }
-
-    /**
-     * Genotype-specific functions -- how many hom var calls are there in the genotypes?
-     *
-     * @return number of hom var calls
-     */
-    public int getHomVarCount() {
-        calculateGenotypeCounts();
-        return genotypeCounts[GenotypeType.HOM_VAR.ordinal()];
-    }
-
-    /**
-     * Genotype-specific functions -- how many mixed calls are there in the genotypes?
-     *
-     * @return number of mixed calls
-     */
-    public int getMixedCount() {
-        calculateGenotypeCounts();
-        return genotypeCounts[GenotypeType.MIXED.ordinal()];
-    }
-
-    // ---------------------------------------------------------------------------------------------------------
-    //
-    // validation: extra-strict validation routines for paranoid users
-    //
-    // ---------------------------------------------------------------------------------------------------------
-
-    /**
-     * Run all extra-strict validation tests on a Variant Context object
-     *
-     * @param reportedReference   the reported reference allele
-     * @param observedReference   the actual reference allele
-     * @param rsIDs               the true dbSNP IDs
-     */
-    public void extraStrictValidation(final Allele reportedReference, final Allele observedReference, final Set<String> rsIDs) {
-        // validate the reference
-        validateReferenceBases(reportedReference, observedReference);
-
-        // validate the RS IDs
-        validateRSIDs(rsIDs);
-
-        // validate the altenate alleles
-        validateAlternateAlleles();
-
-        // validate the AN and AC fields
-        validateChromosomeCounts();
-
-        // TODO: implement me
-        //checkReferenceTrack();
-    }
-
-    public void validateReferenceBases(final Allele reportedReference, final Allele observedReference) {
-        if ( reportedReference != null && !reportedReference.basesMatch(observedReference) ) {
-            throw new TribbleException.InternalCodecException(String.format("the REF allele is incorrect for the record at position %s:%d, fasta says %s vs. VCF says %s", getChr(), getStart(), observedReference.getBaseString(), reportedReference.getBaseString()));
-        }
-    }
-
-    public void validateRSIDs(Set<String> rsIDs) {
-        if ( rsIDs != null && hasID() ) {
-            for ( String id : getID().split(VCFConstants.ID_FIELD_SEPARATOR) ) {
-                if ( id.startsWith("rs") && !rsIDs.contains(id) )
-                    throw new TribbleException.InternalCodecException(String.format("the rsID %s for the record at position %s:%d is not in dbSNP", id, getChr(), getStart()));
-            }
-        }
-    }
-
-    public void validateAlternateAlleles() {
-        if ( !hasGenotypes() )
-            return;
-
-        List<Allele> reportedAlleles = getAlleles();
-        Set<Allele> observedAlleles = new HashSet<Allele>();
-        observedAlleles.add(getReference());
-        for ( final Genotype g : getGenotypes() ) {
-            if ( g.isCalled() )
-                observedAlleles.addAll(g.getAlleles());
-        }
-        if ( observedAlleles.contains(Allele.NO_CALL) )
-            observedAlleles.remove(Allele.NO_CALL);
-
-        if ( reportedAlleles.size() != observedAlleles.size() )
-            throw new TribbleException.InternalCodecException(String.format("one or more of the ALT allele(s) for the record at position %s:%d are not observed at all in the sample genotypes", getChr(), getStart()));
-
-        int originalSize = reportedAlleles.size();
-        // take the intersection and see if things change
-        observedAlleles.retainAll(reportedAlleles);
-        if ( observedAlleles.size() != originalSize )
-            throw new TribbleException.InternalCodecException(String.format("one or more of the ALT allele(s) for the record at position %s:%d are not observed at all in the sample genotypes", getChr(), getStart()));
-    }
-
-    public void validateChromosomeCounts() {
-        if ( !hasGenotypes() )
-            return;
-
-        // AN
-        if ( hasAttribute(VCFConstants.ALLELE_NUMBER_KEY) ) {
-            int reportedAN = Integer.valueOf(getAttribute(VCFConstants.ALLELE_NUMBER_KEY).toString());
-            int observedAN = getCalledChrCount();
-            if ( reportedAN != observedAN )
-                throw new TribbleException.InternalCodecException(String.format("the Allele Number (AN) tag is incorrect for the record at position %s:%d, %d vs. %d", getChr(), getStart(), reportedAN, observedAN));
-        }
-
-        // AC
-        if ( hasAttribute(VCFConstants.ALLELE_COUNT_KEY) ) {
-            ArrayList<Integer> observedACs = new ArrayList<Integer>();
-
-            // if there are alternate alleles, record the relevant tags
-            if ( getAlternateAlleles().size() > 0 ) {
-                for ( Allele allele : getAlternateAlleles() ) {
-                    observedACs.add(getCalledChrCount(allele));
-                }
-            }
-            else { // otherwise, set them to 0
-                observedACs.add(0);
-            }
-
-            if ( getAttribute(VCFConstants.ALLELE_COUNT_KEY) instanceof List ) {
-                final List reportedACs = (List)getAttribute(VCFConstants.ALLELE_COUNT_KEY);
-                if ( observedACs.size() != reportedACs.size() )
-                    throw new TribbleException.InternalCodecException(String.format("the Allele Count (AC) tag doesn't have the correct number of values for the record at position %s:%d, %d vs. %d", getChr(), getStart(), reportedACs.size(), observedACs.size()));
-                for (int i = 0; i < observedACs.size(); i++) {
-                    // need to cast to int to make sure we don't have an issue below with object equals (earlier bug) - EB
-                    final int reportedAC = Integer.valueOf(reportedACs.get(i).toString());
-                    if ( reportedAC != observedACs.get(i) )
-                        throw new TribbleException.InternalCodecException(String.format("the Allele Count (AC) tag is incorrect for the record at position %s:%d, %s vs. %d", getChr(), getStart(), reportedAC, observedACs.get(i)));
-                }
-            } else {
-                if ( observedACs.size() != 1 )
-                    throw new TribbleException.InternalCodecException(String.format("the Allele Count (AC) tag doesn't have enough values for the record at position %s:%d", getChr(), getStart()));
-                int reportedAC = Integer.valueOf(getAttribute(VCFConstants.ALLELE_COUNT_KEY).toString());
-                if ( reportedAC != observedACs.get(0) )
-                    throw new TribbleException.InternalCodecException(String.format("the Allele Count (AC) tag is incorrect for the record at position %s:%d, %d vs. %d", getChr(), getStart(), reportedAC, observedACs.get(0)));
-            }
-        }
-    }
-
-    // ---------------------------------------------------------------------------------------------------------
-    //
-    // validation: the normal validation routines are called automatically upon creation of the VC
-    //
-    // ---------------------------------------------------------------------------------------------------------
-
-    private boolean validate(final EnumSet<Validation> validationToPerform) {
-        validateStop();
-        for (final Validation val : validationToPerform ) {
-            switch (val) {
-                case ALLELES: validateAlleles(); break;
-                case GENOTYPES: validateGenotypes(); break;
-                default: throw new IllegalArgumentException("Unexpected validation mode " + val);
-            }
-        }
-
-        return true;
-    }
-
-    /**
-     * Check that getEnd() == END from the info field, if it's present
-     */
-    private void validateStop() {
-        if ( hasAttribute(VCFConstants.END_KEY) ) {
-            final int end = getAttributeAsInt(VCFConstants.END_KEY, -1);
-            assert end != -1;
-            if ( end != getEnd() ) {
-                final String message = "Badly formed variant context at location " + getChr() + ":"
-                        + getStart() + "; getEnd() was " + getEnd()
-                        + " but this VariantContext contains an END key with value " + end;
-                if ( GeneralUtils.DEBUG_MODE_ENABLED && WARN_ABOUT_BAD_END ) {
-                    System.err.println(message);
-                }
-                else {
-                    throw new TribbleException(message);
-                }
-            }
-        } else {
-            final long length = (stop - start) + 1;
-            if ( ! hasSymbolicAlleles() && length != getReference().length() ) {
-                throw new IllegalStateException("BUG: GenomeLoc " + contig + ":" + start + "-" + stop + " has a size == " + length + " but the variation reference allele has length " + getReference().length() + " this = " + this);
-            }
-        }
-    }
-
-    private void validateAlleles() {
-
-        boolean alreadySeenRef = false;
-
-        for ( final Allele allele : alleles ) {
-            // make sure there's only one reference allele
-            if ( allele.isReference() ) {
-                if ( alreadySeenRef ) throw new IllegalArgumentException("BUG: Received two reference tagged alleles in VariantContext " + alleles + " this=" + this);
-                alreadySeenRef = true;
-            }
-
-            if ( allele.isNoCall() ) {
-                throw new IllegalArgumentException("BUG: Cannot add a no call allele to a variant context " + alleles + " this=" + this);
-            }
-        }
-
-        // make sure there's one reference allele
-        if ( ! alreadySeenRef )
-            throw new IllegalArgumentException("No reference allele found in VariantContext");
-    }
-
-    private void validateGenotypes() {
-        if ( this.genotypes == null ) throw new IllegalStateException("Genotypes is null");
-
-        for ( final Genotype g : this.genotypes ) {
-            if ( g.isAvailable() ) {
-                for ( Allele gAllele : g.getAlleles() ) {
-                    if ( ! hasAllele(gAllele) && gAllele.isCalled() )
-                        throw new IllegalStateException("Allele in genotype " + gAllele + " not in the variant context " + alleles);
-                }
-            }
-        }
-    }
-
-    // ---------------------------------------------------------------------------------------------------------
-    //
-    // utility routines
-    //
-    // ---------------------------------------------------------------------------------------------------------
-
-    private void determineType() {
-        if ( type == null ) {
-            switch ( getNAlleles() ) {
-                case 0:
-                    throw new IllegalStateException("Unexpected error: requested type of VariantContext with no alleles!" + this);
-                case 1:
-                    // note that this doesn't require a reference allele.  You can be monomorphic independent of having a
-                    // reference allele
-                    type = Type.NO_VARIATION;
-                    break;
-                default:
-                    determinePolymorphicType();
-            }
-        }
-    }
-
-    private void determinePolymorphicType() {
-        type = null;
-
-        // do a pairwise comparison of all alleles against the reference allele
-        for ( Allele allele : alleles ) {
-            if ( allele == REF )
-                continue;
-
-            // find the type of this allele relative to the reference
-            Type biallelicType = typeOfBiallelicVariant(REF, allele);
-
-            // for the first alternate allele, set the type to be that one
-            if ( type == null ) {
-                type = biallelicType;
-            }
-            // if the type of this allele is different from that of a previous one, assign it the MIXED type and quit
-            else if ( biallelicType != type ) {
-                type = Type.MIXED;
-                return;
-            }
-        }
-    }
-
-    private static Type typeOfBiallelicVariant(Allele ref, Allele allele) {
-        if ( ref.isSymbolic() )
-            throw new IllegalStateException("Unexpected error: encountered a record with a symbolic reference allele");
-
-        if ( allele.isSymbolic() )
-            return Type.SYMBOLIC;
-
-        if ( ref.length() == allele.length() ) {
-            if ( allele.length() == 1 )
-                return Type.SNP;
-            else
-                return Type.MNP;
-        }
-
-        // Important note: previously we were checking that one allele is the prefix of the other.  However, that's not an
-        // appropriate check as can be seen from the following example:
-        // REF = CTTA and ALT = C,CT,CA
-        // This should be assigned the INDEL type but was being marked as a MIXED type because of the prefix check.
-        // In truth, it should be absolutely impossible to return a MIXED type from this method because it simply
-        // performs a pairwise comparison of a single alternate allele against the reference allele (whereas the MIXED type
-        // is reserved for cases of multiple alternate alleles of different types).  Therefore, if we've reached this point
-        // in the code (so we're not a SNP, MNP, or symbolic allele), we absolutely must be an INDEL.
-
-        return Type.INDEL;
-
-        // old incorrect logic:
-        // if (oneIsPrefixOfOther(ref, allele))
-        //     return Type.INDEL;
-        // else
-        //     return Type.MIXED;
-    }
-
-    public String toString() {
-        // Note: passing genotypes to String.format() will implicitly decode the genotypes
-        // This may not be desirable, so don't decode by default
-
-        return genotypes.isLazyWithData() ? toStringUnparsedGenotypes() : toStringDecodeGenotypes();
-    }
-
-    public String toStringDecodeGenotypes() {
-        return String.format("[VC %s @ %s Q%s of type=%s alleles=%s attr=%s GT=%s",
-                getSource(), contig + ":" + (start - stop == 0 ? start : start + "-" + stop),
-                hasLog10PError() ? String.format("%.2f", getPhredScaledQual()) : ".",
-                this.getType(),
-                ParsingUtils.sortList(this.getAlleles()),
-                ParsingUtils.sortedString(this.getAttributes()),
-                this.getGenotypes());
-    }
-
-    private String toStringUnparsedGenotypes() {
-        return String.format("[VC %s @ %s Q%s of type=%s alleles=%s attr=%s GT=%s",
-                getSource(), contig + ":" + (start - stop == 0 ? start : start + "-" + stop),
-                hasLog10PError() ? String.format("%.2f", getPhredScaledQual()) : ".",
-                this.getType(),
-                ParsingUtils.sortList(this.getAlleles()),
-                ParsingUtils.sortedString(this.getAttributes()),
-                ((LazyGenotypesContext)this.genotypes).getUnparsedGenotypeData());
-    }
-
-    public String toStringWithoutGenotypes() {
-        return String.format("[VC %s @ %s Q%s of type=%s alleles=%s attr=%s",
-                getSource(), contig + ":" + (start - stop == 0 ? start : start + "-" + stop),
-                hasLog10PError() ? String.format("%.2f", getPhredScaledQual()) : ".",
-                this.getType(),
-                ParsingUtils.sortList(this.getAlleles()),
-                ParsingUtils.sortedString(this.getAttributes()));
-    }
-
-    // protected basic manipulation routines
-    private static List<Allele> makeAlleles(Collection<Allele> alleles) {
-        final List<Allele> alleleList = new ArrayList<Allele>(alleles.size());
-
-        boolean sawRef = false;
-        for ( final Allele a : alleles ) {
-            for ( final Allele b : alleleList ) {
-                if ( a.equals(b, true) )
-                    throw new IllegalArgumentException("Duplicate allele added to VariantContext: " + a);
-            }
-
-            // deal with the case where the first allele isn't the reference
-            if ( a.isReference() ) {
-                if ( sawRef )
-                    throw new IllegalArgumentException("Alleles for a VariantContext must contain at most one reference allele: " + alleles);
-                alleleList.add(0, a);
-                sawRef = true;
-            }
-            else
-                alleleList.add(a);
-        }
-
-        if ( alleleList.isEmpty() )
-            throw new IllegalArgumentException("Cannot create a VariantContext with an empty allele list");
-
-        if ( alleleList.get(0).isNonReference() )
-            throw new IllegalArgumentException("Alleles for a VariantContext must contain at least one reference allele: " + alleles);
-
-        return alleleList;
-    }
-
-    // ---------------------------------------------------------------------------------------------------------
-    //
-    // Fully decode
-    //
-    // ---------------------------------------------------------------------------------------------------------
-
-    /**
-     * Return a VC equivalent to this one but where all fields are fully decoded
-     *
-     * See VariantContext document about fully decoded
-     *
-     * @param header containing types about all fields in this VC
-     * @return a fully decoded version of this VC
-     */
-    public VariantContext fullyDecode(final VCFHeader header, final boolean lenientDecoding) {
-        if ( isFullyDecoded() )
-            return this;
-        else {
-            // TODO -- warning this is potentially very expensive as it creates copies over and over
-            final VariantContextBuilder builder = new VariantContextBuilder(this);
-            fullyDecodeInfo(builder, header, lenientDecoding);
-            fullyDecodeGenotypes(builder, header);
-            builder.fullyDecoded(true);
-            return builder.make();
-        }
-    }
-
-    /**
-     * See VariantContext document about fully decoded
-     * @return true if this is a fully decoded VC
-     */
-    public boolean isFullyDecoded() {
-        return fullyDecoded;
-    }
-
-    private final void fullyDecodeInfo(final VariantContextBuilder builder, final VCFHeader header, final boolean lenientDecoding) {
-        builder.attributes(fullyDecodeAttributes(getAttributes(), header, lenientDecoding));
-    }
-
-    private final Map<String, Object> fullyDecodeAttributes(final Map<String, Object> attributes,
-                                                            final VCFHeader header,
-                                                            final boolean lenientDecoding) {
-        final Map<String, Object> newAttributes = new HashMap<String, Object>(10);
-
-        for ( final Map.Entry<String, Object> attr : attributes.entrySet() ) {
-            final String field = attr.getKey();
-
-            if ( field.equals(VCFConstants.GENOTYPE_FILTER_KEY) )
-                continue; // gross, FT is part of the extended attributes
-
-            final VCFCompoundHeaderLine format = VariantContextUtils.getMetaDataForField(header, field);
-            final Object decoded = decodeValue(field, attr.getValue(), format);
-
-            if ( decoded != null &&
-                    ! lenientDecoding
-                    && format.getCountType() != VCFHeaderLineCount.UNBOUNDED
-                    && format.getType() != VCFHeaderLineType.Flag ) { // we expect exactly the right number of elements
-                final int obsSize = decoded instanceof List ? ((List) decoded).size() : 1;
-                final int expSize = format.getCount(this);
-                if ( obsSize != expSize ) {
-                    throw new TribbleException.InvalidHeader("Discordant field size detected for field " +
-                            field + " at " + getChr() + ":" + getStart() + ".  Field had " + obsSize + " values " +
-                            "but the header says this should have " + expSize + " values based on header record " +
-                            format);
-                }
-            }
-            newAttributes.put(field, decoded);
-        }
-
-        return newAttributes;
-    }
-
-    private final Object decodeValue(final String field, final Object value, final VCFCompoundHeaderLine format) {
-        if ( value instanceof String ) {
-            if ( field.equals(VCFConstants.GENOTYPE_PL_KEY) )
-                return GenotypeLikelihoods.fromPLField((String)value);
-
-            final String string = (String)value;
-            if ( string.indexOf(",") != -1 ) {
-                final String[] splits = string.split(",");
-                final List<Object> values = new ArrayList<Object>(splits.length);
-                for ( int i = 0; i < splits.length; i++ )
-                    values.add(decodeOne(field, splits[i], format));
-                return values;
-            } else {
-                return decodeOne(field, string, format);
-            }
-        } else if ( value instanceof List && (((List) value).get(0)) instanceof String ) {
-            final List<String> asList = (List<String>)value;
-            final List<Object> values = new ArrayList<Object>(asList.size());
-            for ( final String s : asList )
-                values.add(decodeOne(field, s, format));
-            return values;
-        } else {
-            return value;
-        }
-
-        // allowMissingValuesComparedToHeader
-    }
-
-    private final Object decodeOne(final String field, final String string, final VCFCompoundHeaderLine format) {
-        try {
-            if ( string.equals(VCFConstants.MISSING_VALUE_v4) )
-                return null;
-            else {
-                switch ( format.getType() ) {
-                    case Character: return string;
-                    case Flag:
-                        final boolean b = Boolean.valueOf(string) || string.equals("1");
-                        if ( b == false )
-                            throw new TribbleException("VariantContext FLAG fields " + field + " cannot contain false values"
-                             + " as seen at " + getChr() + ":" + getStart());
-                        return b;
-                    case String:    return string;
-                    case Integer:   return Integer.valueOf(string);
-                    case Float:     return Double.valueOf(string);
-                    default: throw new TribbleException("Unexpected type for field" + field);
-                }
-            }
-        } catch (NumberFormatException e) {
-            throw new TribbleException("Could not decode field " + field + " with value " + string + " of declared type " + format.getType());
-        }
-    }
-
-    private final void fullyDecodeGenotypes(final VariantContextBuilder builder, final VCFHeader header) {
-        final GenotypesContext gc = new GenotypesContext();
-        for ( final Genotype g : getGenotypes() ) {
-            gc.add(fullyDecodeGenotypes(g, header));
-        }
-        builder.genotypesNoValidation(gc);
-    }
-
-    private final Genotype fullyDecodeGenotypes(final Genotype g, final VCFHeader header) {
-        final Map<String, Object> map = fullyDecodeAttributes(g.getExtendedAttributes(), header, true);
-        return new GenotypeBuilder(g).attributes(map).make();
-    }
-
-    // ---------------------------------------------------------------------------------------------------------
-    //
-    // tribble integration routines -- not for public consumption
-    //
-    // ---------------------------------------------------------------------------------------------------------
-    public String getChr() {
-        return contig;
-    }
-
-    public int getStart() {
-        return (int)start;
-    }
-
-    public int getEnd() {
-        return (int)stop;
-    }
-
-    public boolean hasSymbolicAlleles() {
-        return hasSymbolicAlleles(getAlleles());
-    }
-
-    public static boolean hasSymbolicAlleles( final List<Allele> alleles ) {
-        for ( final Allele a: alleles ) {
-            if (a.isSymbolic()) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    public Allele getAltAlleleWithHighestAlleleCount() {
-        // optimization: for bi-allelic sites, just return the 1only alt allele
-        if ( isBiallelic() )
-            return getAlternateAllele(0);
-
-        Allele best = null;
-        int maxAC1 = 0;
-        for ( Allele a : getAlternateAlleles() ) {
-            final int ac = getCalledChrCount(a);
-            if ( ac >= maxAC1 ) {
-                maxAC1 = ac;
-                best = a;
-            }
-
-        }
-        return best;
-    }
-
-    /**
-     * Lookup the index of allele in this variant context
-     *
-     * @param allele the allele whose index we want to get
-     * @return the index of the allele into getAlleles(), or -1 if it cannot be found
-     */
-    public int getAlleleIndex(final Allele allele) {
-        return getAlleles().indexOf(allele);
-    }
-
-    /**
-     * Return the allele index #getAlleleIndex for each allele in alleles
-     *
-     * @param alleles the alleles we want to look up
-     * @return a list of indices for each allele, in order
-     */
-    public List<Integer> getAlleleIndices(final Collection<Allele> alleles) {
-        final List<Integer> indices = new LinkedList<Integer>();
-        for ( final Allele allele : alleles )
-            indices.add(getAlleleIndex(allele));
-        return indices;
-    }
-
-    public int[] getGLIndecesOfAlternateAllele(Allele targetAllele) {
-        final int index = getAlleleIndex(targetAllele);
-        if ( index == -1 ) throw new IllegalArgumentException("Allele " + targetAllele + " not in this VariantContex " + this);
-        return GenotypeLikelihoods.getPLIndecesOfAlleles(0, index);
-    }
-}
diff --git a/src/java/org/broadinstitute/variant/variantcontext/VariantContextBuilder.java b/src/java/org/broadinstitute/variant/variantcontext/VariantContextBuilder.java
deleted file mode 100644
index bbacbc1..0000000
--- a/src/java/org/broadinstitute/variant/variantcontext/VariantContextBuilder.java
+++ /dev/null
@@ -1,497 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.variantcontext;
-
-import com.google.java.contract.*;
-import org.broadinstitute.variant.vcf.VCFConstants;
-
-import java.util.*;
-
-/**
- * Builder class for VariantContext
- *
- * Some basic assumptions here:
- *
- * 1 -- data isn't protectively copied.  If you provide an attribute map to
- * the build, and modify it later, the builder will see this and so will any
- * resulting variant contexts.  It's best not to modify collections provided
- * to a builder.
- *
- * 2 -- the system uses the standard builder model, allowing the simple construction idiom:
- *
- *   builder.source("a").genotypes(gc).id("x").make() => VariantContext
- *
- * 3 -- The best way to copy a VariantContext is:
- *
- *   new VariantContextBuilder(vc).make() => a copy of VC
- *
- * 4 -- validation of arguments is done at the during the final make() call, so a
- * VariantContextBuilder can exist in an inconsistent state as long as those issues
- * are resolved before the call to make() is issued.
- *
- * @author depristo
- */
-public class VariantContextBuilder {
-    // required fields
-    private boolean fullyDecoded = false;
-    private String source = null;
-    private String contig = null;
-    private long start = -1;
-    private long stop = -1;
-    private Collection<Allele> alleles = null;
-
-    // optional -> these are set to the appropriate default value
-    private String ID = VCFConstants.EMPTY_ID_FIELD;
-    private GenotypesContext genotypes = GenotypesContext.NO_GENOTYPES;
-    private double log10PError = VariantContext.NO_LOG10_PERROR;
-    private Set<String> filters = null;
-    private Map<String, Object> attributes = null;
-    private boolean attributesCanBeModified = false;
-
-    /** enum of what must be validated */
-    final private EnumSet<VariantContext.Validation> toValidate = EnumSet.noneOf(VariantContext.Validation.class);
-
-    /**
-     * Create an empty VariantContextBuilder where all values adopt their default values.  Note that
-     * source, chr, start, stop, and alleles must eventually be filled in, or the resulting VariantContext
-     * will throw an error.
-     */
-    public VariantContextBuilder() {}
-
-    /**
-     * Create an empty VariantContextBuilder where all values adopt their default values, but the bare min.
-     * of info (source, chr, start, stop, and alleles) have been provided to start.
-     */
-    @Requires({"source != null", "contig != null", "start >= 0", "stop >= 0",
-            "alleles != null && !alleles.isEmpty()"})
-    public VariantContextBuilder(String source, String contig, long start, long stop, Collection<Allele> alleles) {
-        this.source = source;
-        this.contig = contig;
-        this.start = start;
-        this.stop = stop;
-        this.alleles = alleles;
-        this.attributes = Collections.emptyMap(); // immutable
-        toValidate.add(VariantContext.Validation.ALLELES);
-    }
-
-    /**
-     * Returns a new builder based on parent -- the new VC will have all fields initialized
-     * to their corresponding values in parent.  This is the best way to create a derived VariantContext
-     *
-     * @param parent  Cannot be null
-     */
-    public VariantContextBuilder(VariantContext parent) {
-        if ( parent == null ) throw new IllegalArgumentException("BUG: VariantContextBuilder parent argument cannot be null in VariantContextBuilder");
-        this.alleles = parent.alleles;
-        this.attributes = parent.getAttributes();
-        this.attributesCanBeModified = false;
-        this.contig = parent.contig;
-        this.filters = parent.getFiltersMaybeNull();
-        this.genotypes = parent.genotypes;
-        this.ID = parent.getID();
-        this.log10PError = parent.getLog10PError();
-        this.source = parent.getSource();
-        this.start = parent.getStart();
-        this.stop = parent.getEnd();
-        this.fullyDecoded = parent.isFullyDecoded();
-    }
-
-    public VariantContextBuilder(VariantContextBuilder parent) {
-        if ( parent == null ) throw new IllegalArgumentException("BUG: VariantContext parent argument cannot be null in VariantContextBuilder");
-        this.alleles = parent.alleles;
-        this.attributesCanBeModified = false;
-        this.contig = parent.contig;
-        this.genotypes = parent.genotypes;
-        this.ID = parent.ID;
-        this.log10PError = parent.log10PError;
-        this.source = parent.source;
-        this.start = parent.start;
-        this.stop = parent.stop;
-        this.fullyDecoded = parent.fullyDecoded;
-
-        this.attributes(parent.attributes);
-        this.filters(parent.filters);
-    }
-
-    public VariantContextBuilder copy() {
-        return new VariantContextBuilder(this);
-    }
-
-    /**
-     * Tells this builder to use this collection of alleles for the resulting VariantContext
-     *
-     * @param alleles
-     * @return this builder
-     */
-    @Requires({"alleles != null", "!alleles.isEmpty()"})
-    public VariantContextBuilder alleles(final Collection<Allele> alleles) {
-        this.alleles = alleles;
-        toValidate.add(VariantContext.Validation.ALLELES);
-        return this;
-    }
-
-    public VariantContextBuilder alleles(final List<String> alleleStrings) {
-        List<Allele> alleles = new ArrayList<Allele>(alleleStrings.size());
-
-        for ( int i = 0; i < alleleStrings.size(); i++ ) {
-            alleles.add(Allele.create(alleleStrings.get(i), i == 0));
-        }
-
-        return alleles(alleles);
-    }
-
-    public VariantContextBuilder alleles(final String ... alleleStrings) {
-        return alleles(Arrays.asList(alleleStrings));
-    }
-
-    public List<Allele> getAlleles() {
-        return new ArrayList<Allele>(alleles);
-    }
-
-    /**
-     * Tells this builder to use this map of attributes alleles for the resulting VariantContext
-     *
-     * Attributes can be null -> meaning there are no attributes.  After
-     * calling this routine the builder assumes it can modify the attributes
-     * object here, if subsequent calls are made to set attribute values
-     * @param attributes
-     */
-    public VariantContextBuilder attributes(final Map<String, Object> attributes) {
-        if (attributes != null) {
-            this.attributes = attributes;
-        }
-        else {
-            this.attributes = new HashMap<String, Object>();
-        }
-
-        this.attributesCanBeModified = true;
-        return this;
-    }
-
-    /**
-     * Puts the key -> value mapping into this builder's attributes
-     *
-     * @param key
-     * @param value
-     * @return
-     */
-    @Requires({"key != null"})
-    @Ensures({"this.attributes.size() == old(this.attributes.size()) || this.attributes.size() == old(this.attributes.size()+1)"})
-    public VariantContextBuilder attribute(final String key, final Object value) {
-        makeAttributesModifiable();
-        attributes.put(key, value);
-        return this;
-    }
-
-    /**
-     * Removes key if present in the attributes
-     *
-     * @param key  key to remove
-     * @return
-     */
-    @Requires({"key != null"})
-    @Ensures({"this.attributes.size() == old(this.attributes.size()) || this.attributes.size() == old(this.attributes.size()-1)"})
-    public VariantContextBuilder rmAttribute(final String key) {
-        makeAttributesModifiable();
-        attributes.remove(key);
-        return this;
-    }
-
-    /**
-     * Removes list of keys if present in the attributes
-     *
-     * @param keys  list of keys to remove
-     * @return
-     */
-    @Requires({"keys != null"})
-    @Ensures({"this.attributes.size() <= old(this.attributes.size())"})
-    public VariantContextBuilder rmAttributes(final List<String> keys) {
-        makeAttributesModifiable();
-        for ( final String key : keys )
-            attributes.remove(key);
-        return this;
-    }
-
-    /**
-     * Makes the attributes field modifiable.  In many cases attributes is just a pointer to an immutable
-     * collection, so methods that want to add / remove records require the attributes to be copied to a
-     */
-    @Ensures({"this.attributesCanBeModified"})
-    private void makeAttributesModifiable() {
-        if ( ! attributesCanBeModified ) {
-            this.attributesCanBeModified = true;
-            this.attributes = new HashMap<String, Object>(attributes);
-        }
-    }
-
-    /**
-     * This builder's filters are set to this value
-     *
-     * filters can be null -> meaning there are no filters
-     * @param filters
-     */
-    public VariantContextBuilder filters(final Set<String> filters) {
-        this.filters = filters;
-        return this;
-    }
-
-    /**
-     * {@link #filters}
-     *
-     * @param filters
-     * @return
-     */
-    public VariantContextBuilder filters(final String ... filters) {
-        filters(new LinkedHashSet<String>(Arrays.asList(filters)));
-        return this;
-    }
-
-    @Requires({"filter != null", "!filter.equals(\"PASS\")"})
-    public VariantContextBuilder filter(final String filter) {
-        if ( this.filters == null ) this.filters = new LinkedHashSet<String>(1);
-        this.filters.add(filter);
-        return this;
-    }
-
-    /**
-     * Tells this builder that the resulting VariantContext should have PASS filters
-     *
-     * @return
-     */
-    public VariantContextBuilder passFilters() {
-        return filters(VariantContext.PASSES_FILTERS);
-    }
-
-    /**
-     * Tells this builder that the resulting VariantContext be unfiltered
-     *
-     * @return
-     */
-    public VariantContextBuilder unfiltered() {
-        this.filters = null;
-        return this;
-    }
-
-    /**
-     * Tells this builder that the resulting VariantContext should use this genotypes GenotypeContext
-     *
-     * Note that genotypes can be null -> meaning there are no genotypes
-     *
-     * @param genotypes
-     */
-    public VariantContextBuilder genotypes(final GenotypesContext genotypes) {
-        this.genotypes = genotypes;
-        if ( genotypes != null )
-            toValidate.add(VariantContext.Validation.GENOTYPES);
-        return this;
-    }
-
-    public VariantContextBuilder genotypesNoValidation(final GenotypesContext genotypes) {
-        this.genotypes = genotypes;
-        return this;
-    }
-
-    /**
-     * Tells this builder that the resulting VariantContext should use a GenotypeContext containing genotypes
-     *
-     * Note that genotypes can be null -> meaning there are no genotypes
-     *
-     * @param genotypes
-     */
-    public VariantContextBuilder genotypes(final Collection<Genotype> genotypes) {
-        return genotypes(GenotypesContext.copy(genotypes));
-    }
-
-    /**
-     * Tells this builder that the resulting VariantContext should use a GenotypeContext containing genotypes
-     * @param genotypes
-     */
-    public VariantContextBuilder genotypes(final Genotype ... genotypes) {
-        return genotypes(GenotypesContext.copy(Arrays.asList(genotypes)));
-    }
-
-    /**
-     * Tells this builder that the resulting VariantContext should not contain any GenotypeContext
-     */
-    public VariantContextBuilder noGenotypes() {
-        this.genotypes = null;
-        return this;
-    }
-
-    /**
-     * Tells us that the resulting VariantContext should have ID
-     * @param ID
-     * @return
-     */
-    @Requires("ID != null")
-    public VariantContextBuilder id(final String ID) {
-        this.ID = ID;
-        return this;
-    }
-
-    /**
-     * Tells us that the resulting VariantContext should not have an ID
-     * @return
-     */
-    public VariantContextBuilder noID() {
-        return id(VCFConstants.EMPTY_ID_FIELD);
-    }
-
-    /**
-     * Tells us that the resulting VariantContext should have log10PError
-     * @param log10PError
-     * @return
-     */
-    @Requires("log10PError <= 0 || log10PError == VariantContext.NO_LOG10_PERROR")
-    public VariantContextBuilder log10PError(final double log10PError) {
-        this.log10PError = log10PError;
-        return this;
-    }
-
-    /**
-     * Tells us that the resulting VariantContext should have source field set to source
-     * @param source
-     * @return
-     */
-    @Requires("source != null")
-    public VariantContextBuilder source(final String source) {
-        this.source = source;
-        return this;
-    }
-
-    /**
-     * Tells us that the resulting VariantContext should have the specified location
-     * @param contig
-     * @param start
-     * @param stop
-     * @return
-     */
-    @Requires({"contig != null", "start >= 0", "stop >= 0"})
-    public VariantContextBuilder loc(final String contig, final long start, final long stop) {
-        this.contig = contig;
-        this.start = start;
-        this.stop = stop;
-        toValidate.add(VariantContext.Validation.ALLELES);
-        return this;
-    }
-
-    /**
-     * Tells us that the resulting VariantContext should have the specified contig chr
-     * @param contig
-     * @return
-     */
-    @Requires({"contig != null"})
-    public VariantContextBuilder chr(final String contig) {
-        this.contig = contig;
-        return this;
-    }
-
-    /**
-     * Tells us that the resulting VariantContext should have the specified contig start
-     * @param start
-     * @return
-     */
-    @Requires({"start >= 0"})
-    public VariantContextBuilder start(final long start) {
-        this.start = start;
-        toValidate.add(VariantContext.Validation.ALLELES);
-        return this;
-    }
-
-    /**
-     * Tells us that the resulting VariantContext should have the specified contig stop
-     * @param stop
-     * @return
-     */
-    @Requires({"stop >= 0"})
-    public VariantContextBuilder stop(final long stop) {
-        this.stop = stop;
-        return this;
-    }
-
-    /**
-     * @see #computeEndFromAlleles(java.util.List, int, int) with endForSymbolicAlleles == -1
-     */
-    public VariantContextBuilder computeEndFromAlleles(final List<Allele> alleles, final int start) {
-        return computeEndFromAlleles(alleles, start, -1);
-    }
-
-    /**
-     * Compute the end position for this VariantContext from the alleles themselves
-     *
-     * assigns this builder the stop position computed.
-     *
-     * @param alleles the list of alleles to consider.  The reference allele must be the first one
-     * @param start the known start position of this event
-     * @param endForSymbolicAlleles the end position to use if any of the alleles is symbolic.  Can be -1
-     *                              if no is expected but will throw an error if one is found
-     * @return this builder
-     */
-    @Requires({"! alleles.isEmpty()", "start > 0", "endForSymbolicAlleles == -1 || endForSymbolicAlleles > 0" })
-    public VariantContextBuilder computeEndFromAlleles(final List<Allele> alleles, final int start, final int endForSymbolicAlleles) {
-        stop(VariantContextUtils.computeEndFromAlleles(alleles, start, endForSymbolicAlleles));
-        return this;
-    }
-
-    /**
-     * @return true if this builder contains fully decoded data
-     *
-     * See VariantContext for more information
-     */
-    public boolean isFullyDecoded() {
-        return fullyDecoded;
-    }
-
-    /**
-     * Sets this builder's fully decoded state to true.
-     *
-     * A fully decoded builder indicates that all fields are represented by their
-     * proper java objects (e.g., Integer(10) not "10").
-     *
-     * See VariantContext for more information
-     *
-     * @param isFullyDecoded
-     */
-    public VariantContextBuilder fullyDecoded(boolean isFullyDecoded) {
-        this.fullyDecoded = isFullyDecoded;
-        return this;
-    }
-
-    /**
-     * Takes all of the builder data provided up to this point, and instantiates
-     * a freshly allocated VariantContext with all of the builder data.  This
-     * VariantContext is validated as appropriate and if not failing QC (and
-     * throwing an exception) is returned.
-     *
-     * Note that this function can be called multiple times to create multiple
-     * VariantContexts from the same builder.
-     */
-    public VariantContext make() {
-        return new VariantContext(source, ID, contig, start, stop, alleles,
-                genotypes, log10PError, filters, attributes,
-                fullyDecoded, toValidate);
-    }
-}
diff --git a/src/java/org/broadinstitute/variant/variantcontext/VariantContextComparator.java b/src/java/org/broadinstitute/variant/variantcontext/VariantContextComparator.java
deleted file mode 100644
index 7a8b9cb..0000000
--- a/src/java/org/broadinstitute/variant/variantcontext/VariantContextComparator.java
+++ /dev/null
@@ -1,95 +0,0 @@
-package org.broadinstitute.variant.variantcontext;
-
-import net.sf.samtools.SAMSequenceDictionary;
-import net.sf.samtools.SAMSequenceRecord;
-import org.broadinstitute.variant.vcf.VCFContigHeaderLine;
-
-import java.util.*;
-
-/**
- * A Comparator that orders VariantContexts by the ordering of the contigs/chromosomes in the List
- * provided at construction time, then by start position with each contig/chromosome.
- */
-public class VariantContextComparator implements Comparator<VariantContext> {
-
-	public static List<String> getSequenceNameList(final SAMSequenceDictionary dictionary) {
-		final List<String> list = new ArrayList<String>();
-		for (final SAMSequenceRecord record : dictionary.getSequences()) {
-			list.add(record.getSequenceName());
-		}
-		return list;
-	}
-
-	// For fast lookup of the contig's index in the contig list
-	private final Map<String, Integer> contigIndexLookup;
-
-	public VariantContextComparator(final List<String> contigs) {
-		if (contigs.size() == 0) throw new IllegalArgumentException("One or more contigs must be in the contig list.");
-
-		final Map<String, Integer> protoContigIndexLookup = new HashMap<String, Integer>();
-		int index = 0;
-		for (final String contig : contigs) {
-			protoContigIndexLookup.put(contig, index++);
-		}
-
-		if (protoContigIndexLookup.size() != contigs.size()) {
-			throw new IllegalArgumentException("There are duplicate contigs/chromosomes in the input contig list.");
-		}
-
-		this.contigIndexLookup = Collections.unmodifiableMap(protoContigIndexLookup);
-	}
-
-	/**
-	 * Creates a VariantContextComparator from the given VCF contig header lines. The header lines'
-	 * index values are used to order the contigs. Throws IllegalArgumentException if there are dupe
-	 *
-	 */
-	public VariantContextComparator(final Collection<VCFContigHeaderLine> headerLines) {
-		if (headerLines.size() == 0) throw new IllegalArgumentException("One or more header lines must be in the header line collection.");
-
-		final Map<String, Integer> protoContigIndexLookup = new HashMap<String, Integer>();
-		for (final VCFContigHeaderLine headerLine : headerLines) {
-			protoContigIndexLookup.put(headerLine.getID(), headerLine.getContigIndex());
-		}
-
-		if (protoContigIndexLookup.size() != headerLines.size()) {
-			throw new IllegalArgumentException("There are duplicate contigs/chromosomes in the input header line collection.");
-		}
-
-		final Set<Integer> protoIndexValues = new HashSet<Integer>(protoContigIndexLookup.values());
-		if (protoIndexValues.size() != headerLines.size()) {
-			throw new IllegalArgumentException("One or more contigs share the same index number.");
-		}
-
-		this.contigIndexLookup = Collections.unmodifiableMap(protoContigIndexLookup);
-	}
-
-    public VariantContextComparator(final SAMSequenceDictionary dictionary) {
-	    this(getSequenceNameList(dictionary));
-    }
-
-	@Override
-	public int compare(final VariantContext firstVariantContext, final VariantContext secondVariantContext) {
-		// Will throw NullPointerException -- happily -- if either of the chromosomes/contigs aren't
-		// present. This error checking should already have been done in the constructor but it's left
-		// in as defence anyway.
-		final int contigCompare =
-				this.contigIndexLookup.get(firstVariantContext.getChr()) - this.contigIndexLookup.get(secondVariantContext.getChr());
-		return contigCompare != 0
-				? contigCompare
-				: firstVariantContext.getStart() - secondVariantContext.getStart();
-	}
-
-	/**
-	 * Returns true if the given header lines are from a file sorted according to this VariantContextComparator.
-	 * For sorting to work properly, the contig in each header line must have the same index.
-	 */
-	public boolean isCompatible(final Collection<VCFContigHeaderLine> headerLines) {
-		for (final VCFContigHeaderLine headerLine : headerLines) {
-			final Integer existingIndex = this.contigIndexLookup.get(headerLine.getID());
-			if (existingIndex == null || headerLine.getContigIndex() != existingIndex.intValue()) return false;
-		}
-
-		return true;
-	}
-}
diff --git a/src/java/org/broadinstitute/variant/variantcontext/VariantContextUtils.java b/src/java/org/broadinstitute/variant/variantcontext/VariantContextUtils.java
deleted file mode 100644
index a23bcbb..0000000
--- a/src/java/org/broadinstitute/variant/variantcontext/VariantContextUtils.java
+++ /dev/null
@@ -1,385 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.variantcontext;
-
-import com.google.java.contract.Ensures;
-import com.google.java.contract.Requires;
-import net.sf.samtools.util.Lazy;
-import org.apache.commons.jexl2.Expression;
-import org.apache.commons.jexl2.JexlEngine;
-import org.broad.tribble.TribbleException;
-import org.broadinstitute.variant.utils.GeneralUtils;
-import org.broadinstitute.variant.vcf.*;
-
-import java.util.*;
-
-public class VariantContextUtils {
-    private static Set<String> MISSING_KEYS_WARNED_ABOUT = new HashSet<String>();
-
-    /** Use a {@link Lazy} {@link JexlEngine} instance to avoid class-loading issues. (Applications that access this class are otherwise
-     * forced to build a {@link JexlEngine} instance, which depends on some apache logging libraries that mightn't be packaged.) */
-    final public static Lazy<JexlEngine> engine = new Lazy<JexlEngine>(new Lazy.LazyInitializer<JexlEngine>() {
-        @Override
-        public JexlEngine make() {
-            final JexlEngine jexl = new JexlEngine();
-            jexl.setSilent(false); // will throw errors now for selects that don't evaluate properly
-            jexl.setLenient(false);
-            jexl.setDebug(false);
-            return jexl;
-        }
-    });
-    private final static boolean ASSUME_MISSING_FIELDS_ARE_STRINGS = false;
-    
-    /**
-     * Computes the alternate allele frequency at the provided {@link VariantContext} by dividing its "AN" by its "AC".
-     * @param vc The variant whose alternate allele frequency is computed
-     * @return The alternate allele frequency in [0, 1]
-     * @throws AssertionError When either annotation is missing, or when the compuated frequency is outside the expected range
-     */
-    public static double calculateAltAlleleFrequency(final VariantContext vc) {
-        if (!vc.hasAttribute(VCFConstants.ALLELE_NUMBER_KEY) || !vc.hasAttribute(VCFConstants.ALLELE_COUNT_KEY))
-            throw new AssertionError(String.format(
-                    "Cannot compute the provided variant's alt allele frequency because it does not have both %s and %s annotations: %s",
-                    VCFConstants.ALLELE_NUMBER_KEY,
-                    VCFConstants.ALLELE_COUNT_KEY,
-                    vc));
-        final double altAlleleCount = vc.getAttributeAsInt(VCFConstants.ALLELE_COUNT_KEY, 0);
-        final double totalCount = vc.getAttributeAsInt(VCFConstants.ALLELE_NUMBER_KEY, 0);
-        final double aaf = altAlleleCount / totalCount;
-        if (aaf > 1 || aaf < 0)
-            throw new AssertionError(String.format("Expected a minor allele frequency in the range [0, 1], but got %s. vc=%s", aaf, vc));
-        return aaf;
-    }
-    
-    /**
-     * Update the attributes of the attributes map given the VariantContext to reflect the
-     * proper chromosome-based VCF tags
-     *
-     * @param vc          the VariantContext
-     * @param attributes  the attributes map to populate; must not be null; may contain old values
-     * @param removeStaleValues should we remove stale values from the mapping?
-     * @return the attributes map provided as input, returned for programming convenience
-     */
-    public static Map<String, Object> calculateChromosomeCounts(VariantContext vc, Map<String, Object> attributes, boolean removeStaleValues) {
-        return calculateChromosomeCounts(vc, attributes,  removeStaleValues, new HashSet<String>(0));
-    }
-
-    /**
-     * Update the attributes of the attributes map given the VariantContext to reflect the
-     * proper chromosome-based VCF tags
-     *
-     * @param vc          the VariantContext
-     * @param attributes  the attributes map to populate; must not be null; may contain old values
-     * @param removeStaleValues should we remove stale values from the mapping?
-     * @param founderIds - Set of founders Ids to take into account. AF and FC will be calculated over the founders.
-     *                  If empty or null, counts are generated for all samples as unrelated individuals
-     * @return the attributes map provided as input, returned for programming convenience
-     */
-    public static Map<String, Object> calculateChromosomeCounts(VariantContext vc, Map<String, Object> attributes, boolean removeStaleValues, final Set<String> founderIds) {
-        final int AN = vc.getCalledChrCount();
-
-        // if everyone is a no-call, remove the old attributes if requested
-        if ( AN == 0 && removeStaleValues ) {
-            if ( attributes.containsKey(VCFConstants.ALLELE_COUNT_KEY) )
-                attributes.remove(VCFConstants.ALLELE_COUNT_KEY);
-            if ( attributes.containsKey(VCFConstants.ALLELE_FREQUENCY_KEY) )
-                attributes.remove(VCFConstants.ALLELE_FREQUENCY_KEY);
-            if ( attributes.containsKey(VCFConstants.ALLELE_NUMBER_KEY) )
-                attributes.remove(VCFConstants.ALLELE_NUMBER_KEY);
-            return attributes;
-        }
-
-        if ( vc.hasGenotypes() ) {
-            attributes.put(VCFConstants.ALLELE_NUMBER_KEY, AN);
-
-            // if there are alternate alleles, record the relevant tags
-            if ( vc.getAlternateAlleles().size() > 0 ) {
-                ArrayList<Double> alleleFreqs = new ArrayList<Double>();
-                ArrayList<Integer> alleleCounts = new ArrayList<Integer>();
-                ArrayList<Integer> foundersAlleleCounts = new ArrayList<Integer>();
-                double totalFoundersChromosomes = (double)vc.getCalledChrCount(founderIds);
-                int foundersAltChromosomes;
-                for ( Allele allele : vc.getAlternateAlleles() ) {
-                    foundersAltChromosomes = vc.getCalledChrCount(allele,founderIds);
-                    alleleCounts.add(vc.getCalledChrCount(allele));
-                    foundersAlleleCounts.add(foundersAltChromosomes);
-                    if ( AN == 0 ) {
-                        alleleFreqs.add(0.0);
-                    } else {
-                        final Double freq = (double)foundersAltChromosomes / totalFoundersChromosomes;
-                        alleleFreqs.add(freq);
-                    }
-                }
-
-                attributes.put(VCFConstants.ALLELE_COUNT_KEY, alleleCounts.size() == 1 ? alleleCounts.get(0) : alleleCounts);
-                attributes.put(VCFConstants.ALLELE_FREQUENCY_KEY, alleleFreqs.size() == 1 ? alleleFreqs.get(0) : alleleFreqs);
-            } else {
-                // if there's no alt AC and AF shouldn't be present
-                attributes.remove(VCFConstants.ALLELE_COUNT_KEY);
-                attributes.remove(VCFConstants.ALLELE_FREQUENCY_KEY);
-            }
-        }
-
-        return attributes;
-    }
-
-    /**
-     * Update the attributes of the attributes map in the VariantContextBuilder to reflect the proper
-     * chromosome-based VCF tags based on the current VC produced by builder.make()
-     *
-     * @param builder     the VariantContextBuilder we are updating
-     * @param removeStaleValues should we remove stale values from the mapping?
-     */
-    public static void calculateChromosomeCounts(VariantContextBuilder builder, boolean removeStaleValues) {
-        VariantContext vc = builder.make();
-        builder.attributes(calculateChromosomeCounts(vc, new HashMap<String, Object>(vc.getAttributes()), removeStaleValues, new HashSet<String>(0)));
-    }
-
-    /**
-     * Update the attributes of the attributes map in the VariantContextBuilder to reflect the proper
-     * chromosome-based VCF tags based on the current VC produced by builder.make()
-     *
-     * @param builder     the VariantContextBuilder we are updating
-     * @param founderIds - Set of founders to take into account. AF and FC will be calculated over the founders only.
-     *                   If empty or null, counts are generated for all samples as unrelated individuals
-     * @param removeStaleValues should we remove stale values from the mapping?
-     */
-    public static void calculateChromosomeCounts(VariantContextBuilder builder, boolean removeStaleValues, final Set<String> founderIds) {
-        VariantContext vc = builder.make();
-        builder.attributes(calculateChromosomeCounts(vc, new HashMap<String, Object>(vc.getAttributes()), removeStaleValues, founderIds));
-    }
-
-    public final static VCFCompoundHeaderLine getMetaDataForField(final VCFHeader header, final String field) {
-        VCFCompoundHeaderLine metaData = header.getFormatHeaderLine(field);
-        if ( metaData == null ) metaData = header.getInfoHeaderLine(field);
-        if ( metaData == null ) {
-            if ( ASSUME_MISSING_FIELDS_ARE_STRINGS ) {
-                if ( ! MISSING_KEYS_WARNED_ABOUT.contains(field) ) {
-                    MISSING_KEYS_WARNED_ABOUT.add(field);
-                    if ( GeneralUtils.DEBUG_MODE_ENABLED )
-                        System.err.println("Field " + field + " missing from VCF header, assuming it is an unbounded string type");
-                }
-                return new VCFInfoHeaderLine(field, VCFHeaderLineCount.UNBOUNDED, VCFHeaderLineType.String, "Auto-generated string header for " + field);
-            }
-            else
-                throw new TribbleException("Fully decoding VariantContext requires header line for all fields, but none was found for " + field);
-        }
-        return metaData;
-    }
-
-    /**
-     * A simple but common wrapper for matching VariantContext objects using JEXL expressions
-     */
-    public static class JexlVCMatchExp {
-        public String name;
-        public Expression exp;
-
-        /**
-         * Create a new matcher expression with name and JEXL expression exp
-         * @param name name
-         * @param exp  expression
-         */
-        public JexlVCMatchExp(String name, Expression exp) {
-            this.name = name;
-            this.exp = exp;
-        }
-    }
-
-    /**
-     * Method for creating JexlVCMatchExp from input walker arguments names and exps.  These two arrays contain
-     * the name associated with each JEXL expression. initializeMatchExps will parse each expression and return
-     * a list of JexlVCMatchExp, in order, that correspond to the names and exps.  These are suitable input to
-     * match() below.
-     *
-     * @param names names
-     * @param exps  expressions
-     * @return list of matches
-     */
-    public static List<JexlVCMatchExp> initializeMatchExps(String[] names, String[] exps) {
-        if ( names == null || exps == null )
-            throw new IllegalArgumentException("BUG: neither names nor exps can be null: names " + Arrays.toString(names) + " exps=" + Arrays.toString(exps) );
-
-        if ( names.length != exps.length )
-            throw new IllegalArgumentException("Inconsistent number of provided filter names and expressions: names=" + Arrays.toString(names) + " exps=" + Arrays.toString(exps));
-
-        Map<String, String> map = new HashMap<String, String>();
-        for ( int i = 0; i < names.length; i++ ) { map.put(names[i], exps[i]); }
-
-        return VariantContextUtils.initializeMatchExps(map);
-    }
-
-    public static List<JexlVCMatchExp> initializeMatchExps(ArrayList<String> names, ArrayList<String> exps) {
-        String[] nameArray = new String[names.size()];
-        String[] expArray = new String[exps.size()];
-        return initializeMatchExps(names.toArray(nameArray), exps.toArray(expArray));
-    }
-
-
-    /**
-     * Method for creating JexlVCMatchExp from input walker arguments mapping from names to exps.  These two arrays contain
-     * the name associated with each JEXL expression. initializeMatchExps will parse each expression and return
-     * a list of JexlVCMatchExp, in order, that correspond to the names and exps.  These are suitable input to
-     * match() below.
-     *
-     * @param names_and_exps mapping of names to expressions
-     * @return list of matches
-     */
-    public static List<JexlVCMatchExp> initializeMatchExps(Map<String, String> names_and_exps) {
-        List<JexlVCMatchExp> exps = new ArrayList<JexlVCMatchExp>();
-
-        for ( Map.Entry<String, String> elt : names_and_exps.entrySet() ) {
-            String name = elt.getKey();
-            String expStr = elt.getValue();
-
-            if ( name == null || expStr == null ) throw new IllegalArgumentException("Cannot create null expressions : " + name +  " " + expStr);
-            try {
-                Expression exp = engine.get().createExpression(expStr);
-                exps.add(new JexlVCMatchExp(name, exp));
-            } catch (Exception e) {
-                throw new IllegalArgumentException("Argument " + name + "has a bad value. Invalid expression used (" + expStr + "). Please see the JEXL docs for correct syntax.") ;
-            }
-        }
-
-        return exps;
-    }
-
-    /**
-     * Returns true if exp match VC.  See collection<> version for full docs.
-     * @param vc    variant context
-     * @param exp   expression
-     * @return true if there is a match
-     */
-    public static boolean match(VariantContext vc, JexlVCMatchExp exp) {
-        return match(vc,Arrays.asList(exp)).get(exp);
-    }
-
-    /**
-     * Matches each JexlVCMatchExp exp against the data contained in vc, and returns a map from these
-     * expressions to true (if they matched) or false (if they didn't).  This the best way to apply JEXL
-     * expressions to VariantContext records.  Use initializeMatchExps() to create the list of JexlVCMatchExp
-     * expressions.
-     *
-     * @param vc   variant context
-     * @param exps expressions
-     * @return true if there is a match
-     */
-    public static Map<JexlVCMatchExp, Boolean> match(VariantContext vc, Collection<JexlVCMatchExp> exps) {
-        return new JEXLMap(exps,vc);
-
-    }
-
-    /**
-     * Returns true if exp match VC/g.  See collection<> version for full docs.
-     * @param vc   variant context
-     * @param g    genotype
-     * @param exp   expression
-     * @return true if there is a match
-     */
-    public static boolean match(VariantContext vc, Genotype g, JexlVCMatchExp exp) {
-        return match(vc,g,Arrays.asList(exp)).get(exp);
-    }
-
-    /**
-     * Matches each JexlVCMatchExp exp against the data contained in vc/g, and returns a map from these
-     * expressions to true (if they matched) or false (if they didn't).  This the best way to apply JEXL
-     * expressions to VariantContext records/genotypes.  Use initializeMatchExps() to create the list of JexlVCMatchExp
-     * expressions.
-     *
-     * @param vc   variant context
-     * @param g    genotype
-     * @param exps expressions
-     * @return true if there is a match
-     */
-    public static Map<JexlVCMatchExp, Boolean> match(VariantContext vc, Genotype g, Collection<JexlVCMatchExp> exps) {
-        return new JEXLMap(exps,vc,g);
-    }
-
-    /**
-     * Returns a newly allocated VC that is the same as VC, but without genotypes
-     * @param vc  variant context
-     * @return  new VC without genotypes
-     */
-    @Requires("vc != null")
-    @Ensures("result != null")
-    public static VariantContext sitesOnlyVariantContext(VariantContext vc) {
-        return new VariantContextBuilder(vc).noGenotypes().make();
-    }
-
-    /**
-     * Returns a newly allocated list of VC, where each VC is the same as the input VCs, but without genotypes
-     * @param vcs  collection of VCs
-     * @return new VCs without genotypes
-     */
-    @Requires("vcs != null")
-    @Ensures("result != null")
-    public static Collection<VariantContext> sitesOnlyVariantContexts(Collection<VariantContext> vcs) {
-        List<VariantContext> r = new ArrayList<VariantContext>();
-        for ( VariantContext vc : vcs )
-            r.add(sitesOnlyVariantContext(vc));
-        return r;
-    }
-
-    public static int getSize( VariantContext vc ) {
-        return vc.getEnd() - vc.getStart() + 1;
-    }
-
-    public static Set<String> genotypeNames(final Collection<Genotype> genotypes) {
-        final Set<String> names = new HashSet<String>(genotypes.size());
-        for ( final Genotype g : genotypes )
-            names.add(g.getSampleName());
-        return names;
-    }
-
-    /**
-     * Compute the end position for this VariantContext from the alleles themselves
-     *
-     * In the trivial case this is a single BP event and end = start (open intervals)
-     * In general the end is start + ref length - 1, handling the case where ref length == 0
-     * However, if alleles contains a symbolic allele then we use endForSymbolicAllele in all cases
-     *
-     * @param alleles the list of alleles to consider.  The reference allele must be the first one
-     * @param start the known start position of this event
-     * @param endForSymbolicAlleles the end position to use if any of the alleles is symbolic.  Can be -1
-     *                              if no is expected but will throw an error if one is found
-     * @return this builder
-     */
-    @Requires({"! alleles.isEmpty()", "start > 0", "endForSymbolicAlleles == -1 || endForSymbolicAlleles > 0" })
-    public static int computeEndFromAlleles(final List<Allele> alleles, final int start, final int endForSymbolicAlleles) {
-        final Allele ref = alleles.get(0);
-
-        if ( ref.isNonReference() )
-            throw new IllegalStateException("computeEndFromAlleles requires first allele to be reference");
-
-        if ( VariantContext.hasSymbolicAlleles(alleles) ) {
-            if ( endForSymbolicAlleles == -1 )
-                throw new IllegalStateException("computeEndFromAlleles found a symbolic allele but endForSymbolicAlleles was provided");
-            return endForSymbolicAlleles;
-        } else {
-            return start + Math.max(ref.length() - 1, 0);
-        }
-    }
-
-}
diff --git a/src/java/org/broadinstitute/variant/variantcontext/VariantJEXLContext.java b/src/java/org/broadinstitute/variant/variantcontext/VariantJEXLContext.java
deleted file mode 100644
index fff48eb..0000000
--- a/src/java/org/broadinstitute/variant/variantcontext/VariantJEXLContext.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.variantcontext;
-
-import org.apache.commons.jexl2.JexlContext;
-import org.apache.commons.jexl2.MapContext;
-import org.broadinstitute.variant.utils.GeneralUtils;
-import org.broadinstitute.variant.vcf.VCFConstants;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-
-/**
- *
- * @author aaron
- * @author depristo
- *
- * Class VariantJEXLContext
- *
- * implements the JEXML context for VariantContext; this saves us from
- * having to generate a JEXML context lookup map everytime we want to evaluate an expression.
- *
- * This is package protected, only classes in variantcontext should have access to it.
- *
- * // todo -- clean up to remove or better support genotype filtering 
- */
-
-class VariantJEXLContext implements JexlContext {
-    // our stored variant context
-    private VariantContext vc;
-
-    private interface AttributeGetter {
-        public Object get(VariantContext vc);
-    }
-
-    private static Map<String, AttributeGetter> x = new HashMap<String, AttributeGetter>();
-
-    static {
-        x.put("vc",   new AttributeGetter() { public Object get(VariantContext vc) { return vc; }});
-        x.put("CHROM",   new AttributeGetter() { public Object get(VariantContext vc) { return vc.getChr(); }});
-        x.put("POS",     new AttributeGetter() { public Object get(VariantContext vc) { return vc.getStart(); }});
-        x.put("TYPE",    new AttributeGetter() { public Object get(VariantContext vc) { return vc.getType().toString(); }});
-        x.put("QUAL",    new AttributeGetter() { public Object get(VariantContext vc) { return -10 * vc.getLog10PError(); }});
-        x.put("ALLELES", new AttributeGetter() { public Object get(VariantContext vc) { return vc.getAlleles(); }});
-        x.put("N_ALLELES", new AttributeGetter() { public Object get(VariantContext vc) { return vc.getNAlleles(); }});
-        x.put("FILTER",    new AttributeGetter() { public Object get(VariantContext vc) { return vc.isFiltered() ? "1" : "0"; }});
-
-//        x.put("GT",        new AttributeGetter() { public Object get(VariantContext vc) { return g.getGenotypeString(); }});
-        x.put("homRefCount",  new AttributeGetter() { public Object get(VariantContext vc) { return vc.getHomRefCount(); }});
-        x.put("hetCount",     new AttributeGetter() { public Object get(VariantContext vc) { return vc.getHetCount(); }});
-        x.put("homVarCount",  new AttributeGetter() { public Object get(VariantContext vc) { return vc.getHomVarCount(); }});
-    }
-
-    public VariantJEXLContext(VariantContext vc) {
-        this.vc = vc;
-    }
-
-    public Object get(String name) {
-        Object result = null;
-        if ( x.containsKey(name) ) { // dynamic resolution of name -> value via map
-            result = x.get(name).get(vc);
-        } else if ( vc.hasAttribute(name)) {
-            result = vc.getAttribute(name);
-        } else if ( vc.getFilters().contains(name) ) {
-            result = "1";
-        }
-
-        //System.out.printf("dynamic lookup %s => %s%n", name, result);
-
-        return result;
-    }
-
-    public boolean has(String name) {
-        return get(name) != null;
-    }
-
-    public void	set(String name, Object value) {
-        throw new UnsupportedOperationException("remove() not supported on a VariantJEXLContext");
-    }
-}
-
-
-
-
diff --git a/src/java/org/broadinstitute/variant/variantcontext/writer/AsyncVariantContextWriter.java b/src/java/org/broadinstitute/variant/variantcontext/writer/AsyncVariantContextWriter.java
deleted file mode 100644
index 4bc2c2e..0000000
--- a/src/java/org/broadinstitute/variant/variantcontext/writer/AsyncVariantContextWriter.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package org.broadinstitute.variant.variantcontext.writer;
-
-import net.sf.samtools.util.AbstractAsyncWriter;
-import org.broadinstitute.variant.variantcontext.VariantContext;
-import org.broadinstitute.variant.vcf.VCFHeader;
-
-/**
- * AsyncVariantContextWriter that can be wrapped around an underlying AsyncVariantContextWriter to provide asynchronous output. Records
- * added are placed into a queue, the queue is then drained into the underlying VariantContextWriter by a thread owned
- * by the instance.
- *
- * Exceptions experienced by the writer thread will be emitted back to the caller in subsequent calls to either
- * add() or close().
- *
- * @author George Grant
- */
-public class AsyncVariantContextWriter extends AbstractAsyncWriter<VariantContext> implements VariantContextWriter {
-    private final VariantContextWriter underlyingWriter;
-
-    /**
-     * Creates a new AsyncVariantContextWriter wrapping the provided VariantContextWriter.
-     */
-    public AsyncVariantContextWriter(final VariantContextWriter out) {
-        this(out, DEFAULT_QUEUE_SIZE);
-    }
-
-    /**
-     * Creates an AsyncVariantContextWriter wrapping the provided VariantContextWriter and using the specified
-     * queue size for buffer VariantContexts.
-     */
-    public AsyncVariantContextWriter(final VariantContextWriter out, final int queueSize) {
-        super(queueSize);
-        this.underlyingWriter = out;
-    }
-
-    @Override protected void synchronouslyWrite(final VariantContext item) { this.underlyingWriter.add(item); }
-
-    @Override protected void synchronouslyClose() { this.underlyingWriter.close();  }
-
-    @Override protected final String getThreadNamePrefix() { return "VariantContextWriterThread-"; }
-
-    public void add(final VariantContext vc) {
-        write(vc);
-    }
-
-    public void writeHeader(final VCFHeader header) {
-        this.underlyingWriter.writeHeader(header);
-    }
-}
diff --git a/src/java/org/broadinstitute/variant/variantcontext/writer/BCF2Encoder.java b/src/java/org/broadinstitute/variant/variantcontext/writer/BCF2Encoder.java
deleted file mode 100644
index d2a3d54..0000000
--- a/src/java/org/broadinstitute/variant/variantcontext/writer/BCF2Encoder.java
+++ /dev/null
@@ -1,279 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.variantcontext.writer;
-
-import com.google.java.contract.Ensures;
-import com.google.java.contract.Requires;
-import org.broadinstitute.variant.bcf2.BCF2Type;
-import org.broadinstitute.variant.bcf2.BCF2Utils;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.util.*;
-
-/**
- * See #BCFWriter for documentation on this classes role in encoding BCF2 files
- *
- * @author Mark DePristo
- * @since 06/12
- */
-public final class BCF2Encoder {
-    // TODO -- increase default size?
-    public static final int WRITE_BUFFER_INITIAL_SIZE = 16384;
-    private ByteArrayOutputStream encodeStream = new ByteArrayOutputStream(WRITE_BUFFER_INITIAL_SIZE);
-
-    // --------------------------------------------------------------------------------
-    //
-    // Functions to return the data being encoded here
-    //
-    // --------------------------------------------------------------------------------
-
-    @Ensures("result != null")
-    public byte[] getRecordBytes() {
-        byte[] bytes = encodeStream.toByteArray();
-        encodeStream.reset();
-        return bytes;
-    }
-
-    // --------------------------------------------------------------------------------
-    //
-    // Writing typed values (have type byte)
-    //
-    // --------------------------------------------------------------------------------
-
-    @Ensures("encodeStream.size() > old(encodeStream.size())")
-    public final void encodeTypedMissing(final BCF2Type type) throws IOException {
-        encodeType(0, type);
-    }
-
-    @Ensures("encodeStream.size() > old(encodeStream.size())")
-    public final void encodeTyped(final Object value, final BCF2Type type) throws IOException {
-        if ( value == null )
-            encodeTypedMissing(type);
-        else {
-            switch ( type ) {
-                case INT8:
-                case INT16:
-                case INT32: encodeTypedInt((Integer)value, type); break;
-                case FLOAT: encodeTypedFloat((Double) value); break;
-                case CHAR:  encodeTypedString((String) value); break;
-                default:    throw new IllegalArgumentException("Illegal type encountered " + type);
-            }
-        }
-    }
-
-    @Ensures("encodeStream.size() > old(encodeStream.size())")
-    public final void encodeTypedInt(final int v) throws IOException {
-        final BCF2Type type = BCF2Utils.determineIntegerType(v);
-        encodeTypedInt(v, type);
-    }
-
-    @Requires("type.isIntegerType()")
-    @Ensures("encodeStream.size() > old(encodeStream.size())")
-    public final void encodeTypedInt(final int v, final BCF2Type type) throws IOException {
-        encodeType(1, type);
-        encodeRawInt(v, type);
-    }
-
-    @Ensures("encodeStream.size() > old(encodeStream.size())")
-    public final void encodeTypedString(final String s) throws IOException {
-        encodeTypedString(s.getBytes());
-    }
-
-    @Ensures("encodeStream.size() > old(encodeStream.size())")
-    public final void encodeTypedString(final byte[] s) throws IOException {
-        if ( s == null )
-            encodeType(0, BCF2Type.CHAR);
-        else {
-            encodeType(s.length, BCF2Type.CHAR);
-            for ( int i = 0; i < s.length; i++ ) {
-                encodeRawChar(s[i]);
-            }
-        }
-    }
-
-    @Ensures("encodeStream.size() > old(encodeStream.size())")
-    public final void encodeTypedFloat(final double d) throws IOException {
-        encodeType(1, BCF2Type.FLOAT);
-        encodeRawFloat(d);
-    }
-
-    @Ensures("encodeStream.size() > old(encodeStream.size())")
-    public final void encodeTyped(List<? extends Object> v, final BCF2Type type) throws IOException {
-        if ( type == BCF2Type.CHAR && v.size() != 0 ) {
-            final String s = BCF2Utils.collapseStringList((List<String>) v);
-            v = stringToBytes(s);
-        }
-
-        encodeType(v.size(), type);
-        encodeRawValues(v, type);
-    }
-
-    // --------------------------------------------------------------------------------
-    //
-    // Writing raw values (don't have a type byte)
-    //
-    // --------------------------------------------------------------------------------
-
-    public final <T extends Object> void encodeRawValues(final Collection<T> v, final BCF2Type type) throws IOException {
-        for ( final T v1 : v ) {
-            encodeRawValue(v1, type);
-        }
-    }
-
-    public final <T extends Object> void encodeRawValue(final T value, final BCF2Type type) throws IOException {
-        try {
-            if ( value == type.getMissingJavaValue() )
-                encodeRawMissingValue(type);
-            else {
-                switch (type) {
-                    case INT8:
-                    case INT16:
-                    case INT32: encodeRawBytes((Integer) value, type); break;
-                    case FLOAT: encodeRawFloat((Double) value); break;
-                    case CHAR:  encodeRawChar((Byte) value); break;
-                    default:    throw new IllegalArgumentException("Illegal type encountered " + type);
-                }
-            }
-        } catch ( ClassCastException e ) {
-            throw new ClassCastException("BUG: invalid type cast to " + type + " from " + value);
-        }
-    }
-
-    @Ensures("encodeStream.size() > old(encodeStream.size())")
-    public final void encodeRawMissingValue(final BCF2Type type) throws IOException {
-        encodeRawBytes(type.getMissingBytes(), type);
-    }
-
-    @Requires("size >= 0")
-    public final void encodeRawMissingValues(final int size, final BCF2Type type) throws IOException {
-        for ( int i = 0; i < size; i++ )
-            encodeRawMissingValue(type);
-    }
-
-    // --------------------------------------------------------------------------------
-    //
-    // low-level encoders
-    //
-    // --------------------------------------------------------------------------------
-
-    public final void encodeRawChar(final byte c) throws IOException {
-        encodeStream.write(c);
-    }
-
-    public final void encodeRawFloat(final double value) throws IOException {
-        encodeRawBytes(Float.floatToIntBits((float) value), BCF2Type.FLOAT);
-    }
-
-    @Requires("size >= 0")
-    @Ensures("encodeStream.size() > old(encodeStream.size())")
-    public final void encodeType(final int size, final BCF2Type type) throws IOException {
-        if ( size <= BCF2Utils.MAX_INLINE_ELEMENTS ) {
-            final int typeByte = BCF2Utils.encodeTypeDescriptor(size, type);
-            encodeStream.write(typeByte);
-        } else {
-            final int typeByte = BCF2Utils.encodeTypeDescriptor(BCF2Utils.OVERFLOW_ELEMENT_MARKER, type);
-            encodeStream.write(typeByte);
-            // write in the overflow size
-            encodeTypedInt(size);
-        }
-    }
-
-    @Ensures("encodeStream.size() > old(encodeStream.size())")
-    public final void encodeRawInt(final int value, final BCF2Type type) throws IOException {
-        type.write(value, encodeStream);
-    }
-
-    @Ensures("encodeStream.size() > old(encodeStream.size())")
-    public final void encodeRawBytes(final int value, final BCF2Type type) throws IOException {
-        type.write(value, encodeStream);
-    }
-
-    // --------------------------------------------------------------------------------
-    //
-    // utility functions
-    //
-    // --------------------------------------------------------------------------------
-
-    @Requires({"s != null", "sizeToWrite >= 0"})
-    public void encodeRawString(final String s, final int sizeToWrite) throws IOException {
-        final byte[] bytes = s.getBytes();
-        for ( int i = 0; i < sizeToWrite; i++ )
-            if ( i < bytes.length )
-                encodeRawChar(bytes[i]);
-            else
-                encodeRawMissingValue(BCF2Type.CHAR);
-    }
-
-    /**
-     * Totally generic encoder that examines o, determines the best way to encode it, and encodes it
-     *
-     * This method is incredibly slow, but it's only used for UnitTests so it doesn't matter
-     *
-     * @param o
-     * @return
-     */
-    @Requires("o != null")
-    public final BCF2Type encode(final Object o) throws IOException {
-        if ( o == null ) throw new IllegalArgumentException("Generic encode cannot deal with null values");
-
-        if ( o instanceof List ) {
-            final BCF2Type type = determineBCFType(((List) o).get(0));
-            encodeTyped((List) o, type);
-            return type;
-        } else {
-            final BCF2Type type = determineBCFType(o);
-            encodeTyped(o, type);
-            return type;
-        }
-    }
-
-    @Requires("arg != null")
-    private final BCF2Type determineBCFType(final Object arg) {
-        final Object toType = arg instanceof List ? ((List)arg).get(0) : arg;
-
-        if ( toType instanceof Integer )
-            return BCF2Utils.determineIntegerType((Integer) toType);
-        else if ( toType instanceof String )
-            return BCF2Type.CHAR;
-        else if ( toType instanceof Double )
-            return BCF2Type.FLOAT;
-        else
-            throw new IllegalArgumentException("No native encoding for Object of type " + arg.getClass().getSimpleName());
-    }
-
-    private final List<Byte> stringToBytes(final String v) throws IOException {
-        if ( v == null || v.equals("") )
-            return Collections.emptyList();
-        else {
-            // TODO -- this needs to be optimized away for efficiency
-            final byte[] bytes = v.getBytes();
-            final List<Byte> l = new ArrayList<Byte>(bytes.length);
-            for ( int i = 0; i < bytes.length; i++) l.add(bytes[i]);
-            return l;
-        }
-    }
-}
\ No newline at end of file
diff --git a/src/java/org/broadinstitute/variant/variantcontext/writer/BCF2FieldEncoder.java b/src/java/org/broadinstitute/variant/variantcontext/writer/BCF2FieldEncoder.java
deleted file mode 100644
index 88b9c49..0000000
--- a/src/java/org/broadinstitute/variant/variantcontext/writer/BCF2FieldEncoder.java
+++ /dev/null
@@ -1,528 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.variantcontext.writer;
-
-import com.google.java.contract.Ensures;
-import com.google.java.contract.Invariant;
-import com.google.java.contract.Requires;
-import org.broadinstitute.variant.bcf2.BCF2Type;
-import org.broadinstitute.variant.bcf2.BCF2Utils;
-import org.broadinstitute.variant.vcf.VCFCompoundHeaderLine;
-import org.broadinstitute.variant.vcf.VCFHeaderLineCount;
-import org.broadinstitute.variant.variantcontext.VariantContext;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-
-/**
- * See #BCFWriter for documentation on this classes role in encoding BCF2 files
- *
- * @author Mark DePristo
- * @since 06/12
- */
- at Invariant({
-        "headerLine != null",
-        "dictionaryOffsetType.isIntegerType()",
-        "dictionaryOffset >= 0"
-})
-public abstract class BCF2FieldEncoder {
-    /**
-     * The header line describing the field we will encode values of
-     */
-    final VCFCompoundHeaderLine headerLine;
-
-    /**
-     * The BCF2 type we'll use to encoder this field, if it can be determined statically.
-     * If not, this variable must be null
-     */
-    final BCF2Type staticType;
-
-    /**
-     * The integer offset into the strings map of the BCF2 file corresponding to this
-     * field.
-     */
-    final int dictionaryOffset;
-
-    /**
-     * The integer type we use to encode our dictionary offset in the BCF2 file
-     */
-    final BCF2Type dictionaryOffsetType;
-
-    // ----------------------------------------------------------------------
-    //
-    // Constructor
-    //
-    // ----------------------------------------------------------------------
-
-    @Requires({"headerLine != null", "dict != null"})
-    private BCF2FieldEncoder(final VCFCompoundHeaderLine headerLine, final Map<String, Integer> dict, final BCF2Type staticType) {
-        this.headerLine = headerLine;
-        this.staticType = staticType;
-
-        final Integer offset = dict.get(getField());
-        if ( offset == null ) throw new IllegalStateException("Format error: could not find string " + getField() + " in header as required by BCF");
-        this.dictionaryOffset = offset;
-        dictionaryOffsetType = BCF2Utils.determineIntegerType(offset);
-    }
-
-    // ----------------------------------------------------------------------
-    //
-    // Basic accessors
-    //
-    // ----------------------------------------------------------------------
-
-    @Ensures("result != null")
-    public final String getField() { return headerLine.getID(); }
-
-    /**
-     * Write the field key (dictionary offset and type) into the BCF2Encoder stream
-     *
-     * @param encoder where we write our dictionary offset
-     * @throws IOException
-     */
-    @Requires("encoder != null")
-    public final void writeFieldKey(final BCF2Encoder encoder) throws IOException {
-        encoder.encodeTypedInt(dictionaryOffset, dictionaryOffsetType);
-    }
-
-    @Override
-    public String toString() {
-        return "BCF2FieldEncoder for " + getField() + " with count " + getCountType() + " encoded with " + getClass().getSimpleName();
-    }
-
-    // ----------------------------------------------------------------------
-    //
-    // methods to determine the number of encoded elements
-    //
-    // ----------------------------------------------------------------------
-
-    @Ensures("result != null")
-    protected final VCFHeaderLineCount getCountType() {
-        return headerLine.getCountType();
-    }
-
-    /**
-     * True if this field has a constant, fixed number of elements (such as 1 for an atomic integer)
-     *
-     * @return
-     */
-    @Ensures("result != (hasValueDeterminedNumElements() || hasContextDeterminedNumElements())")
-    public boolean hasConstantNumElements() {
-        return getCountType() == VCFHeaderLineCount.INTEGER;
-    }
-
-    /**
-     * True if the only way to determine how many elements this field contains is by
-     * inspecting the actual value directly, such as when the number of elements
-     * is a variable length list per site or per genotype.
-     * @return
-     */
-    @Ensures("result != (hasConstantNumElements() || hasContextDeterminedNumElements())")
-    public boolean hasValueDeterminedNumElements() {
-        return getCountType() == VCFHeaderLineCount.UNBOUNDED;
-    }
-
-    /**
-     * True if this field has a non-fixed number of elements that depends only on the properties
-     * of the current VariantContext, such as one value per Allele or per genotype configuration.
-     *
-     * @return
-     */
-    @Ensures("result != (hasValueDeterminedNumElements() || hasConstantNumElements())")
-    public boolean hasContextDeterminedNumElements() {
-        return ! hasConstantNumElements() && ! hasValueDeterminedNumElements();
-    }
-
-    /**
-     * Get the number of elements, assuming this field has a constant number of elements.
-     * @return
-     */
-    @Requires("hasConstantNumElements()")
-    @Ensures("result >= 0")
-    public int numElements() {
-        return headerLine.getCount();
-    }
-
-    /**
-     * Get the number of elements by looking at the actual value provided
-     * @return
-     */
-    @Requires("hasValueDeterminedNumElements()")
-    @Ensures("result >= 0")
-    public int numElements(final Object value) {
-        return numElementsFromValue(value);
-    }
-
-    /**
-     * Get the number of elements, assuming this field has context-determined number of elements.
-     * @return
-     */
-    @Requires("hasContextDeterminedNumElements()")
-    @Ensures("result >= 0")
-    public int numElements(final VariantContext vc) {
-        return headerLine.getCount(vc);
-    }
-
-    /**
-     * A convenience access for the number of elements, returning
-     * the number of encoded elements, either from the fixed number
-     * it has, from the VC, or from the value itself.
-     * @param vc
-     * @param value
-     * @return
-     */
-    @Ensures("result >= 0")
-    public final int numElements(final VariantContext vc, final Object value) {
-        if ( hasConstantNumElements() ) return numElements();
-        else if ( hasContextDeterminedNumElements() ) return numElements(vc);
-        else return numElements(value);
-    }
-
-    /**
-     * Given a value, return the number of elements we will encode for it.
-     *
-     * Assumes the value is encoded as a List
-     *
-     * @param value
-     * @return
-     */
-    @Requires("hasValueDeterminedNumElements()")
-    @Ensures("result >= 0")
-    protected int numElementsFromValue(final Object value) {
-        if ( value == null ) return 0;
-        else if ( value instanceof List ) return ((List) value).size();
-        else return 1;
-    }
-
-    // ----------------------------------------------------------------------
-    //
-    // methods to determine the BCF2 type of the encoded values
-    //
-    // ----------------------------------------------------------------------
-
-    /**
-     * Is the BCF2 type of this field static, or does it have to be determine from
-     * the actual field value itself?
-     * @return
-     */
-    @Ensures("result || isDynamicallyTyped()")
-    public final boolean isStaticallyTyped() { return ! isDynamicallyTyped(); }
-
-    /**
-     * Is the BCF2 type of this field static, or does it have to be determine from
-     * the actual field value itself?
-     * @return
-     */
-    @Ensures("result || isStaticallyTyped()")
-    public final boolean isDynamicallyTyped() { return staticType == null; }
-
-    /**
-     * Get the BCF2 type for this field, either from the static type of the
-     * field itself or by inspecting the value itself.
-     *
-     * @return
-     */
-    public final BCF2Type getType(final Object value) {
-        return isDynamicallyTyped() ? getDynamicType(value) : getStaticType();
-    }
-
-    @Requires("isStaticallyTyped()")
-    @Ensures("result != null")
-    public final BCF2Type getStaticType() {
-        return staticType;
-    }
-
-    @Requires("isDynamicallyTyped()")
-    @Ensures("result != null")
-    public BCF2Type getDynamicType(final Object value) {
-        throw new IllegalStateException("BUG: cannot get dynamic type for statically typed BCF2 field " + getField());
-    }
-
-    // ----------------------------------------------------------------------
-    //
-    // methods to encode values, including the key abstract method
-    //
-    // ----------------------------------------------------------------------
-
-    /**
-     * Key abstract method that should encode a value of the given type into the encoder.
-     *
-     * Value will be of a type appropriate to the underlying encoder.  If the genotype field is represented as
-     * an int[], this will be value, and the encoder needs to handle encoding all of the values in the int[].
-     *
-     * The argument should be used, not the getType() method in the superclass as an outer loop might have
-     * decided a more general type (int16) to use, even through this encoder could have been done with int8.
-     *
-     * If minValues > 0, then encodeValue must write in at least minValues items from value.  If value is atomic,
-     * this means that minValues - 1 MISSING values should be added to the encoder.  If minValues is a collection
-     * type (int[]) then minValues - values.length should be added.  This argument is intended to handle padding
-     * of values in genotype fields.
-     *
-     * @param encoder
-     * @param value
-     * @param type
-     * @param minValues
-     * @throws IOException
-     */
-    @Requires({"encoder != null", "isDynamicallyTyped() || type == getStaticType()", "minValues >= 0"})
-    public abstract void encodeValue(final BCF2Encoder encoder, final Object value, final BCF2Type type, final int minValues) throws IOException;
-
-    // ----------------------------------------------------------------------
-    //
-    // Subclass to encode Strings
-    //
-    // ----------------------------------------------------------------------
-
-    public static class StringOrCharacter extends BCF2FieldEncoder {
-        public StringOrCharacter(final VCFCompoundHeaderLine headerLine, final Map<String, Integer> dict ) {
-            super(headerLine, dict, BCF2Type.CHAR);
-        }
-
-        @Override
-        public void encodeValue(final BCF2Encoder encoder, final Object value, final BCF2Type type, final int minValues) throws IOException {
-            final String s = javaStringToBCF2String(value);
-            encoder.encodeRawString(s, Math.max(s.length(), minValues));
-        }
-
-        //
-        // Regardless of what the header says, BCF2 strings and characters are always encoded
-        // as arrays of CHAR type, which has a variable number of elements depending on the
-        // exact string being encoded
-        //
-        @Override public boolean hasConstantNumElements()          { return false; }
-        @Override public boolean hasContextDeterminedNumElements() { return false; }
-        @Override public boolean hasValueDeterminedNumElements()   { return true; }
-        @Override protected int numElementsFromValue(final Object value) {
-            return value == null ? 0 : javaStringToBCF2String(value).length();
-        }
-
-        /**
-         * Recode the incoming object to a String, compacting it into a
-         * BCF2 string if the value is a list.
-         *
-         * @param value a String or List<String> to encode, or null
-         * @return a non-null string to encode
-         */
-        @Ensures("result != null")
-        private String javaStringToBCF2String(final Object value) {
-            if ( value == null )
-                return "";
-            else if (value instanceof List) {
-                final List<String> l = (List<String>)value;
-                return BCF2Utils.collapseStringList(l);
-            } else if ( value.getClass().isArray() ) {
-                final List<String> l = new ArrayList<String>();
-                Collections.addAll(l, (String[])value);
-                return BCF2Utils.collapseStringList(l);
-            } else
-                return (String)value;
-        }
-    }
-
-    // ----------------------------------------------------------------------
-    //
-    // Subclass to encode FLAG
-    //
-    // ----------------------------------------------------------------------
-
-    public static class Flag extends BCF2FieldEncoder {
-        public Flag(final VCFCompoundHeaderLine headerLine, final Map<String, Integer> dict ) {
-            super(headerLine, dict, BCF2Type.INT8);
-            if ( ! headerLine.isFixedCount() || headerLine.getCount() != 0 )
-                throw new IllegalStateException("Flag encoder only supports atomic flags for field " + getField());
-        }
-
-        @Override
-        public int numElements() {
-            return 1; // the header says 0 but we will write 1 value
-        }
-
-        @Override
-        @Requires({"minValues <= 1", "value != null", "value instanceof Boolean", "((Boolean)value) == true"})
-        public void encodeValue(final BCF2Encoder encoder, final Object value, final BCF2Type type, final int minValues) throws IOException {
-            encoder.encodeRawBytes(1, getStaticType());
-        }
-    }
-
-    // ----------------------------------------------------------------------
-    //
-    // Subclass to encode FLOAT
-    //
-    // ----------------------------------------------------------------------
-
-    public static class Float extends BCF2FieldEncoder {
-        final boolean isAtomic;
-
-        public Float(final VCFCompoundHeaderLine headerLine, final Map<String, Integer> dict ) {
-            super(headerLine, dict, BCF2Type.FLOAT);
-            isAtomic = hasConstantNumElements() && numElements() == 1;
-        }
-
-        @Override
-        public void encodeValue(final BCF2Encoder encoder, final Object value, final BCF2Type type, final int minValues) throws IOException {
-            int count = 0;
-            // TODO -- can be restructured to avoid toList operation
-            if ( isAtomic ) {
-                // fast path for fields with 1 fixed float value
-                if ( value != null ) {
-                    encoder.encodeRawFloat((Double)value);
-                    count++;
-                }
-            } else {
-                // handle generic case
-                final List<Double> doubles = toList(Double.class, value);
-                for ( final Double d : doubles ) {
-                    if ( d != null ) { // necessary because .,. => [null, null] in VC
-                        encoder.encodeRawFloat(d);
-                        count++;
-                    }
-                }
-            }
-            for ( ; count < minValues; count++ ) encoder.encodeRawMissingValue(type);
-        }
-    }
-
-    // ----------------------------------------------------------------------
-    //
-    // Subclass to encode int[]
-    //
-    // ----------------------------------------------------------------------
-
-    public static class IntArray extends BCF2FieldEncoder {
-        public IntArray(final VCFCompoundHeaderLine headerLine, final Map<String, Integer> dict ) {
-            super(headerLine, dict, null);
-        }
-
-        @Override
-        protected int numElementsFromValue(final Object value) {
-            return value == null ? 0 : ((int[])value).length;
-        }
-
-        @Override
-        public BCF2Type getDynamicType(final Object value) {
-            return value == null ? BCF2Type.INT8 : BCF2Utils.determineIntegerType((int[])value);
-        }
-
-        @Requires("value == null || ((int[])value).length <= minValues")
-        @Override
-        public void encodeValue(final BCF2Encoder encoder, final Object value, final BCF2Type type, final int minValues) throws IOException {
-            int count = 0;
-            if ( value != null ) {
-                for ( final int i : (int[])value ) {
-                    encoder.encodeRawInt(i, type);
-                    count++;
-                }
-            }
-            for ( ; count < minValues; count++ ) encoder.encodeRawMissingValue(type);
-        }
-    }
-
-    // ----------------------------------------------------------------------
-    //
-    // Subclass to encode List<Integer>
-    //
-    // ----------------------------------------------------------------------
-
-    /**
-     * Specialized int encoder for atomic (non-list) integers
-     */
-    public static class AtomicInt extends BCF2FieldEncoder {
-        public AtomicInt(final VCFCompoundHeaderLine headerLine, final Map<String, Integer> dict ) {
-            super(headerLine, dict, null);
-        }
-
-        @Override
-        public BCF2Type getDynamicType(final Object value) {
-            return value == null ? BCF2Type.INT8 : BCF2Utils.determineIntegerType((Integer)value);
-        }
-
-        @Override
-        public void encodeValue(final BCF2Encoder encoder, final Object value, final BCF2Type type, final int minValues) throws IOException {
-            int count = 0;
-            if ( value != null ) {
-                encoder.encodeRawInt((Integer)value, type);
-                count++;
-            }
-            for ( ; count < minValues; count++ ) encoder.encodeRawMissingValue(type);
-        }
-    }
-
-    public static class GenericInts extends BCF2FieldEncoder {
-        public GenericInts(final VCFCompoundHeaderLine headerLine, final Map<String, Integer> dict ) {
-            super(headerLine, dict, null);
-        }
-
-        @Override
-        public BCF2Type getDynamicType(final Object value) {
-            return value == null ? BCF2Type.INT8 : BCF2Utils.determineIntegerType(toList(Integer.class, value));
-        }
-
-        @Override
-        public void encodeValue(final BCF2Encoder encoder, final Object value, final BCF2Type type, final int minValues) throws IOException {
-            int count = 0;
-            for ( final Integer i : toList(Integer.class, value) ) {
-                if ( i != null ) { // necessary because .,. => [null, null] in VC
-                    encoder.encodeRawInt(i, type);
-                    count++;
-                }
-            }
-            for ( ; count < minValues; count++ ) encoder.encodeRawMissingValue(type);
-        }
-    }
-
-
-    // ----------------------------------------------------------------------
-    //
-    // Helper methods
-    //
-    // ----------------------------------------------------------------------
-
-    /**
-     * Helper function that takes an object and returns a list representation
-     * of it:
-     *
-     * o == null => []
-     * o is a list => o
-     * else => [o]
-     *
-     * @param c  the class of the object
-     * @param o  the object to convert to a Java List
-     * @return
-     */
-    private final static <T> List<T> toList(final Class<T> c, final Object o) {
-        if ( o == null ) return Collections.emptyList();
-        else if ( o instanceof List ) return (List<T>)o;
-        else if ( o.getClass().isArray() ) {
-            final List<T> l = new ArrayList<T>();
-            Collections.addAll(l, (T[])o);
-            return l;
-        }
-        else return Collections.singletonList((T)o);
-    }
-}
diff --git a/src/java/org/broadinstitute/variant/variantcontext/writer/BCF2FieldWriter.java b/src/java/org/broadinstitute/variant/variantcontext/writer/BCF2FieldWriter.java
deleted file mode 100644
index 9667d18..0000000
--- a/src/java/org/broadinstitute/variant/variantcontext/writer/BCF2FieldWriter.java
+++ /dev/null
@@ -1,337 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.variantcontext.writer;
-
-import com.google.java.contract.Ensures;
-import com.google.java.contract.Requires;
-import org.broadinstitute.variant.bcf2.BCF2Type;
-import org.broadinstitute.variant.bcf2.BCF2Utils;
-import org.broadinstitute.variant.vcf.VCFHeader;
-import org.broadinstitute.variant.variantcontext.Allele;
-import org.broadinstitute.variant.variantcontext.Genotype;
-import org.broadinstitute.variant.variantcontext.VariantContext;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * See #BCFWriter for documentation on this classes role in encoding BCF2 files
- *
- * @author Mark DePristo
- * @since 06/12
- */
-public abstract class BCF2FieldWriter {
-    private final VCFHeader header;
-    private final BCF2FieldEncoder fieldEncoder;
-
-    @Requires({"header != null", "fieldEncoder != null"})
-    protected BCF2FieldWriter(final VCFHeader header, final BCF2FieldEncoder fieldEncoder) {
-        this.header = header;
-        this.fieldEncoder = fieldEncoder;
-    }
-
-    @Ensures("result != null")
-    protected VCFHeader getHeader() { return header; }
-    @Ensures("result != null")
-    protected BCF2FieldEncoder getFieldEncoder() {
-        return fieldEncoder;
-    }
-    @Ensures("result != null")
-    protected String getField() { return getFieldEncoder().getField(); }
-
-    @Requires("vc != null")
-    public void start(final BCF2Encoder encoder, final VariantContext vc) throws IOException {
-        fieldEncoder.writeFieldKey(encoder);
-    }
-
-    public void done(final BCF2Encoder encoder, final VariantContext vc) throws IOException { } // TODO -- overload done so that we null out values and test for correctness
-
-    @Override
-    public String toString() {
-        return "BCF2FieldWriter " + getClass().getSimpleName() + " with encoder " + getFieldEncoder();
-    }
-
-    // --------------------------------------------------------------------------------
-    //
-    // Sites writers
-    //
-    // --------------------------------------------------------------------------------
-
-    public static abstract class SiteWriter extends BCF2FieldWriter {
-        protected SiteWriter(final VCFHeader header, final BCF2FieldEncoder fieldEncoder) {
-            super(header, fieldEncoder);
-        }
-
-        public abstract void site(final BCF2Encoder encoder, final VariantContext vc) throws IOException;
-    }
-
-    public static class GenericSiteWriter extends SiteWriter {
-        public GenericSiteWriter(final VCFHeader header, final BCF2FieldEncoder fieldEncoder) {
-            super(header, fieldEncoder);
-        }
-
-        @Override
-        public void site(final BCF2Encoder encoder, final VariantContext vc) throws IOException {
-            final Object rawValue = vc.getAttribute(getField(), null);
-            final BCF2Type type = getFieldEncoder().getType(rawValue);
-            if ( rawValue == null ) {
-                // the value is missing, just write in null
-                encoder.encodeType(0, type);
-            } else {
-                final int valueCount = getFieldEncoder().numElements(vc, rawValue);
-                encoder.encodeType(valueCount, type);
-                getFieldEncoder().encodeValue(encoder, rawValue, type, valueCount);
-            }
-        }
-    }
-
-    // --------------------------------------------------------------------------------
-    //
-    // Genotypes writers
-    //
-    // --------------------------------------------------------------------------------
-
-    public static abstract class GenotypesWriter extends BCF2FieldWriter {
-        int nValuesPerGenotype = -1;
-        BCF2Type encodingType = null;
-
-        protected GenotypesWriter(final VCFHeader header, final BCF2FieldEncoder fieldEncoder) {
-            super(header, fieldEncoder);
-
-            if ( fieldEncoder.hasConstantNumElements() ) {
-                nValuesPerGenotype = getFieldEncoder().numElements();
-            }
-        }
-
-        @Override
-        @Requires({"encodingType != null",
-                "nValuesPerGenotype >= 0 || ! getFieldEncoder().hasConstantNumElements()"})
-        @Ensures("nValuesPerGenotype >= 0")
-        public void start(final BCF2Encoder encoder, final VariantContext vc) throws IOException {
-            // writes the key information
-            super.start(encoder, vc);
-
-            // only update if we need to
-            if ( ! getFieldEncoder().hasConstantNumElements() ) {
-                if ( getFieldEncoder().hasContextDeterminedNumElements() )
-                    // we are cheap -- just depends on genotype of allele counts
-                    nValuesPerGenotype = getFieldEncoder().numElements(vc);
-                else
-                    // we have to go fishing through the values themselves (expensive)
-                    nValuesPerGenotype = computeMaxSizeOfGenotypeFieldFromValues(vc);
-            }
-
-            encoder.encodeType(nValuesPerGenotype, encodingType);
-        }
-
-        @Requires({"encodingType != null", "nValuesPerGenotype >= 0"})
-        public void addGenotype(final BCF2Encoder encoder, final VariantContext vc, final Genotype g) throws IOException {
-            final Object fieldValue = g.getExtendedAttribute(getField(), null);
-            getFieldEncoder().encodeValue(encoder, fieldValue, encodingType, nValuesPerGenotype);
-        }
-
-        @Ensures({"result >= 0"})
-        protected int numElements(final VariantContext vc, final Genotype g) {
-            return getFieldEncoder().numElements(vc, g.getExtendedAttribute(getField()));
-        }
-
-        @Ensures({"result >= 0"})
-        private final int computeMaxSizeOfGenotypeFieldFromValues(final VariantContext vc) {
-            int size = -1;
-
-            for ( final Genotype g : vc.getGenotypes() ) {
-                size = Math.max(size, numElements(vc, g));
-            }
-
-            return size;
-        }
-    }
-
-    public static class StaticallyTypeGenotypesWriter extends GenotypesWriter {
-        public StaticallyTypeGenotypesWriter(final VCFHeader header, final BCF2FieldEncoder fieldEncoder) {
-            super(header, fieldEncoder);
-            encodingType = getFieldEncoder().getStaticType();
-        }
-    }
-
-    public static class IntegerTypeGenotypesWriter extends GenotypesWriter {
-        public IntegerTypeGenotypesWriter(final VCFHeader header, final BCF2FieldEncoder fieldEncoder) {
-            super(header, fieldEncoder);
-        }
-
-        @Override
-        public void start(final BCF2Encoder encoder, final VariantContext vc) throws IOException {
-            // the only value that is dynamic are integers
-            final List<Integer> values = new ArrayList<Integer>(vc.getNSamples());
-            for ( final Genotype g : vc.getGenotypes() ) {
-                for ( final Object i : BCF2Utils.toList(g.getExtendedAttribute(getField(), null)) ) {
-                    if ( i != null ) values.add((Integer)i); // we know they are all integers
-                }
-            }
-
-            encodingType = BCF2Utils.determineIntegerType(values);
-            super.start(encoder, vc);
-        }
-    }
-
-    public static class IGFGenotypesWriter extends GenotypesWriter {
-        final IntGenotypeFieldAccessors.Accessor ige;
-
-        public IGFGenotypesWriter(final VCFHeader header, final BCF2FieldEncoder fieldEncoder, final IntGenotypeFieldAccessors.Accessor ige) {
-            super(header, fieldEncoder);
-            this.ige = ige;
-
-            if ( ! (fieldEncoder instanceof BCF2FieldEncoder.IntArray) )
-                throw new IllegalArgumentException("BUG: IntGenotypesWriter requires IntArray encoder for field " + getField());
-        }
-
-        @Override
-        public void start(final BCF2Encoder encoder, final VariantContext vc) throws IOException {
-            // TODO
-            // TODO this piece of code consumes like 10% of the runtime alone because fo the vc.getGenotypes() iteration
-            // TODO
-            encodingType = BCF2Type.INT8;
-            for ( final Genotype g : vc.getGenotypes() ) {
-                final int[] pls = ige.getValues(g);
-                final BCF2Type plsType = getFieldEncoder().getType(pls);
-                encodingType = BCF2Utils.maxIntegerType(encodingType, plsType);
-                if ( encodingType == BCF2Type.INT32 )
-                    break; // stop early
-            }
-
-            super.start(encoder, vc);
-        }
-
-        @Override
-        public void addGenotype(final BCF2Encoder encoder, final VariantContext vc, final Genotype g) throws IOException {
-            getFieldEncoder().encodeValue(encoder, ige.getValues(g), encodingType, nValuesPerGenotype);
-        }
-
-        @Override
-        protected int numElements(final VariantContext vc, final Genotype g) {
-            return ige.getSize(g);
-        }
-    }
-
-    public static class FTGenotypesWriter extends StaticallyTypeGenotypesWriter {
-        public FTGenotypesWriter(final VCFHeader header, final BCF2FieldEncoder fieldEncoder) {
-            super(header, fieldEncoder);
-        }
-
-        public void addGenotype(final BCF2Encoder encoder, final VariantContext vc, final Genotype g) throws IOException {
-            final String fieldValue = g.getFilters();
-            getFieldEncoder().encodeValue(encoder, fieldValue, encodingType, nValuesPerGenotype);
-        }
-
-        @Override
-        protected int numElements(final VariantContext vc, final Genotype g) {
-            return getFieldEncoder().numElements(vc, g.getFilters());
-        }
-    }
-
-    public static class GTWriter extends GenotypesWriter {
-        final Map<Allele, Integer> alleleMapForTriPlus = new HashMap<Allele, Integer>(5);
-        Allele ref, alt1;
-
-        public GTWriter(final VCFHeader header, final BCF2FieldEncoder fieldEncoder) {
-            super(header, fieldEncoder);
-        }
-
-        @Override
-        public void start(final BCF2Encoder encoder, final VariantContext vc) throws IOException {
-            if ( vc.getNAlleles() > BCF2Utils.MAX_ALLELES_IN_GENOTYPES )
-                throw new IllegalStateException("Current BCF2 encoder cannot handle sites " +
-                        "with > " + BCF2Utils.MAX_ALLELES_IN_GENOTYPES + " alleles, but you have "
-                        + vc.getNAlleles() + " at " + vc.getChr() + ":" + vc.getStart());
-
-            encodingType = BCF2Type.INT8;
-            buildAlleleMap(vc);
-            nValuesPerGenotype = vc.getMaxPloidy(2);
-
-            super.start(encoder, vc);
-        }
-
-        @Override
-        public void addGenotype(final BCF2Encoder encoder, final VariantContext vc, final Genotype g) throws IOException {
-            final int samplePloidy = g.getPloidy();
-            for ( int i = 0; i < nValuesPerGenotype; i++ ) {
-                if ( i < samplePloidy ) {
-                    // we encode the actual allele
-                    final Allele a = g.getAllele(i);
-                    final int offset = getAlleleOffset(a);
-                    final int encoded = ((offset+1) << 1) | (g.isPhased() ? 0x01 : 0x00);
-                    encoder.encodeRawBytes(encoded, encodingType);
-                } else {
-                    // we need to pad with missing as we have ploidy < max for this sample
-                    encoder.encodeRawBytes(encodingType.getMissingBytes(), encodingType);
-                }
-            }
-        }
-
-        /**
-         * Fast path code to determine the offset.
-         *
-         * Inline tests for == against ref (most common, first test)
-         * == alt1 (second most common, second test)
-         * == NO_CALL (third)
-         * and finally in the map from allele => offset for all alt 2+ alleles
-         *
-         * @param a the allele whose offset we wish to determine
-         * @return the offset (from 0) of the allele in the list of variant context alleles (-1 means NO_CALL)
-         */
-        @Requires("a != null")
-        private final int getAlleleOffset(final Allele a) {
-            if ( a == ref ) return 0;
-            else if ( a == alt1 ) return 1;
-            else if ( a == Allele.NO_CALL ) return -1;
-            else {
-                final Integer o = alleleMapForTriPlus.get(a);
-                if ( o == null ) throw new IllegalStateException("BUG: Couldn't find allele offset for allele " + a);
-                return o;
-            }
-        }
-
-        private final void buildAlleleMap(final VariantContext vc) {
-            // these are fast path options to determine the offsets for
-            final int nAlleles = vc.getNAlleles();
-            ref = vc.getReference();
-            alt1 = nAlleles > 1 ? vc.getAlternateAllele(0) : null;
-
-            if ( nAlleles > 2 ) {
-                // for multi-allelics we need to clear the map, and add additional looks
-                alleleMapForTriPlus.clear();
-                final List<Allele> alleles = vc.getAlleles();
-                for ( int i = 2; i < alleles.size(); i++ ) {
-                    alleleMapForTriPlus.put(alleles.get(i), i);
-                }
-            }
-        }
-    }
-}
-
diff --git a/src/java/org/broadinstitute/variant/variantcontext/writer/BCF2FieldWriterManager.java b/src/java/org/broadinstitute/variant/variantcontext/writer/BCF2FieldWriterManager.java
deleted file mode 100644
index a3cbc5b..0000000
--- a/src/java/org/broadinstitute/variant/variantcontext/writer/BCF2FieldWriterManager.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.variantcontext.writer;
-
-import com.google.java.contract.Ensures;
-import com.google.java.contract.Requires;
-import org.broadinstitute.variant.utils.GeneralUtils;
-import org.broadinstitute.variant.vcf.*;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * See #BCFWriter for documentation on this classes role in encoding BCF2 files
- *
- * @author Mark DePristo
- * @since 06/12
- */
-public class BCF2FieldWriterManager {
-    final Map<String, BCF2FieldWriter.SiteWriter> siteWriters = new HashMap<String, BCF2FieldWriter.SiteWriter>();
-    final Map<String, BCF2FieldWriter.GenotypesWriter> genotypesWriters = new HashMap<String, BCF2FieldWriter.GenotypesWriter>();
-    final IntGenotypeFieldAccessors intGenotypeFieldAccessors = new IntGenotypeFieldAccessors();
-
-    public BCF2FieldWriterManager() { }
-
-    /**
-     * Setup the FieldWriters appropriate to each INFO and FORMAT in the VCF header
-     *
-     * Must be called before any of the getter methods will work
-     *
-     * @param header a VCFHeader containing description for every INFO and FORMAT field we'll attempt to write out to BCF
-     * @param encoder the encoder we are going to use to write out the BCF2 data
-     * @param stringDictionary a map from VCFHeader strings to their offsets for encoding
-     */
-    public void setup(final VCFHeader header, final BCF2Encoder encoder, final Map<String, Integer> stringDictionary) {
-        for (final VCFInfoHeaderLine line : header.getInfoHeaderLines()) {
-            final String field = line.getID();
-            final BCF2FieldWriter.SiteWriter writer = createInfoWriter(header, line, encoder, stringDictionary);
-            add(siteWriters, field, writer);
-        }
-
-        for (final VCFFormatHeaderLine line : header.getFormatHeaderLines()) {
-            final String field = line.getID();
-            final BCF2FieldWriter.GenotypesWriter writer = createGenotypesWriter(header, line, encoder, stringDictionary);
-            add(genotypesWriters, field, writer);
-        }
-    }
-
-    @Requires({"field != null", "writer != null"})
-    @Ensures("map.containsKey(field)")
-    private final <T> void add(final Map<String, T> map, final String field, final T writer) {
-        if ( map.containsKey(field) )
-            throw new IllegalStateException("BUG: field " + field + " already seen in VCFHeader while building BCF2 field encoders");
-        map.put(field, writer);
-    }
-
-    // -----------------------------------------------------------------
-    //
-    // Master routine to look at the header, a specific line, and
-    // build an appropriate SiteWriter for that header element
-    //
-    // -----------------------------------------------------------------
-
-    private BCF2FieldWriter.SiteWriter createInfoWriter(final VCFHeader header,
-                                                        final VCFInfoHeaderLine line,
-                                                        final BCF2Encoder encoder,
-                                                        final Map<String, Integer> dict) {
-        return new BCF2FieldWriter.GenericSiteWriter(header, createFieldEncoder(line, encoder, dict, false));
-    }
-
-    private BCF2FieldEncoder createFieldEncoder(final VCFCompoundHeaderLine line,
-                                                final BCF2Encoder encoder,
-                                                final Map<String, Integer> dict,
-                                                final boolean createGenotypesEncoders ) {
-
-        if ( createGenotypesEncoders && intGenotypeFieldAccessors.getAccessor(line.getID()) != null ) {
-            if ( GeneralUtils.DEBUG_MODE_ENABLED && line.getType() != VCFHeaderLineType.Integer )
-                System.err.println("Warning: field " + line.getID() + " expected to encode an integer but saw " + line.getType() + " for record " + line);
-            return new BCF2FieldEncoder.IntArray(line, dict);
-        } else if ( createGenotypesEncoders && line.getID().equals(VCFConstants.GENOTYPE_KEY) ) {
-            return new BCF2FieldEncoder.GenericInts(line, dict);
-        } else {
-            switch ( line.getType() ) {
-                case Character:
-                case String:
-                    return new BCF2FieldEncoder.StringOrCharacter(line, dict);
-                case Flag:
-                    return new BCF2FieldEncoder.Flag(line, dict);
-                case Float:
-                    return new BCF2FieldEncoder.Float(line, dict);
-                case Integer:
-                    if ( line.isFixedCount() && line.getCount() == 1 )
-                        return new BCF2FieldEncoder.AtomicInt(line, dict);
-                    else
-                        return new BCF2FieldEncoder.GenericInts(line, dict);
-                default:
-                    throw new IllegalArgumentException("Unexpected type for field " + line.getID());
-            }
-        }
-    }
-
-    // -----------------------------------------------------------------
-    //
-    // Master routine to look at the header, a specific line, and
-    // build an appropriate Genotypes for that header element
-    //
-    // -----------------------------------------------------------------
-
-    private BCF2FieldWriter.GenotypesWriter createGenotypesWriter(final VCFHeader header,
-                                                                  final VCFFormatHeaderLine line,
-                                                                  final BCF2Encoder encoder,
-                                                                  final Map<String, Integer> dict) {
-        final String field = line.getID();
-        final BCF2FieldEncoder fieldEncoder = createFieldEncoder(line, encoder, dict, true);
-
-        if ( field.equals(VCFConstants.GENOTYPE_KEY) ) {
-            return new BCF2FieldWriter.GTWriter(header, fieldEncoder);
-        } else if ( line.getID().equals(VCFConstants.GENOTYPE_FILTER_KEY) ) {
-            return new BCF2FieldWriter.FTGenotypesWriter(header, fieldEncoder);
-        } else if ( intGenotypeFieldAccessors.getAccessor(field) != null ) {
-            return new BCF2FieldWriter.IGFGenotypesWriter(header, fieldEncoder, intGenotypeFieldAccessors.getAccessor(field));
-        } else if ( line.getType() == VCFHeaderLineType.Integer ) {
-            return new BCF2FieldWriter.IntegerTypeGenotypesWriter(header, fieldEncoder);
-        } else {
-            return new BCF2FieldWriter.StaticallyTypeGenotypesWriter(header, fieldEncoder);
-        }
-    }
-
-    // -----------------------------------------------------------------
-    //
-    // Accessors to get site / genotype writers
-    //
-    // -----------------------------------------------------------------
-
-    /**
-     * Get a site writer specialized to encode values for site info field
-     * @param field key found in the VCF header INFO records
-     * @return non-null writer if one can be found, or null if none exists for field
-     */
-    public BCF2FieldWriter.SiteWriter getSiteFieldWriter(final String field) {
-        return getWriter(field, siteWriters);
-    }
-
-    /**
-     * Get a genotypes writer specialized to encode values for genotypes field
-     * @param field key found in the VCF header FORMAT records
-     * @return non-null writer if one can be found, or null if none exists for field
-     */
-    public BCF2FieldWriter.GenotypesWriter getGenotypeFieldWriter(final String field) {
-        return getWriter(field, genotypesWriters);
-    }
-
-    @Requires({"map != null", "key != null"})
-    public <T> T getWriter(final String key, final Map<String, T> map) {
-        return map.get(key);
-    }
-}
diff --git a/src/java/org/broadinstitute/variant/variantcontext/writer/BCF2Writer.java b/src/java/org/broadinstitute/variant/variantcontext/writer/BCF2Writer.java
deleted file mode 100644
index 462f32d..0000000
--- a/src/java/org/broadinstitute/variant/variantcontext/writer/BCF2Writer.java
+++ /dev/null
@@ -1,434 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.variantcontext.writer;
-
-import com.google.java.contract.Ensures;
-import com.google.java.contract.Requires;
-import net.sf.samtools.SAMSequenceDictionary;
-import org.broad.tribble.index.IndexCreator;
-import org.broadinstitute.variant.bcf2.BCF2Codec;
-import org.broadinstitute.variant.bcf2.BCF2Type;
-import org.broadinstitute.variant.bcf2.BCF2Utils;
-import org.broadinstitute.variant.bcf2.BCFVersion;
-import org.broadinstitute.variant.utils.GeneralUtils;
-import org.broadinstitute.variant.vcf.VCFConstants;
-import org.broadinstitute.variant.vcf.VCFContigHeaderLine;
-import org.broadinstitute.variant.vcf.VCFHeader;
-import org.broadinstitute.variant.variantcontext.*;
-import org.broadinstitute.variant.vcf.VCFUtils;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * VariantContextWriter that emits BCF2 binary encoding
- *
- * Overall structure of this writer is complex for efficiency reasons
- *
- * -- The BCF2Writer manages the low-level BCF2 encoder, the mappings
- * from contigs and strings to offsets, the VCF header, and holds the
- * lower-level encoders that map from VC and Genotype fields to their
- * specific encoders.  This class also writes out the standard BCF2 fields
- * like POS, contig, the size of info and genotype data, QUAL, etc.  It
- * has loops over the INFO and GENOTYPES to encode each individual datum
- * with the generic field encoders, but the actual encoding work is
- * done with by the FieldWriters classes themselves
- *
- * -- BCF2FieldWriter are specialized classes for writing out SITE and
- * genotype information for specific SITE/GENOTYPE fields (like AC for
- * sites and GQ for genotypes).  These are objects in themselves because
- * the manage all of the complexity of relating the types in the VCF header
- * with the proper encoding in BCF as well as the type representing this
- * in java.  Relating all three of these pieces of information together
- * is the main complexity challenge in the encoder.  The piece of code
- * that determines which FieldWriters to associate with each SITE and
- * GENOTYPE field is the BCF2FieldWriterManager.  These FieldWriters
- * are specialized for specific combinations of encoders (see below)
- * and contexts (genotypes) for efficiency, so they smartly manage
- * the writing of PLs (encoded as int[]) directly into the lowest
- * level BCFEncoder.
- *
- * -- At the third level is the BCF2FieldEncoder, relatively simple
- * pieces of code that handle the task of determining the right
- * BCF2 type for specific field values, as well as reporting back
- * information such as the number of elements used to encode it
- * (simple for atomic values like Integer but complex for PLs
- * or lists of strings)
- *
- * -- At the lowest level is the BCF2Encoder itself.  This provides
- * just the limited encoding methods specified by the BCF2 specification.  This encoder
- * doesn't do anything but make it possible to conveniently write out valid low-level
- * BCF2 constructs.
- *
- * @author Mark DePristo
- * @since 06/12
- */
-class BCF2Writer extends IndexingVariantContextWriter {
-    public static final int MAJOR_VERSION = 2;
-    public static final int MINOR_VERSION = 1;
-
-    final private static boolean ALLOW_MISSING_CONTIG_LINES = false;
-
-    private final OutputStream outputStream;      // Note: do not flush until completely done writing, to avoid issues with eventual BGZF support
-    private VCFHeader header;
-    private final Map<String, Integer> contigDictionary = new HashMap<String, Integer>();
-    private final Map<String, Integer> stringDictionaryMap = new LinkedHashMap<String, Integer>();
-    private final boolean doNotWriteGenotypes;
-    private String[] sampleNames = null;
-
-    private final BCF2Encoder encoder = new BCF2Encoder(); // initialized after the header arrives
-    final BCF2FieldWriterManager fieldManager = new BCF2FieldWriterManager();
-
-    /**
-     * cached results for whether we can write out raw genotypes data.
-     */
-    private VCFHeader lastVCFHeaderOfUnparsedGenotypes = null;
-    private boolean canPassOnUnparsedGenotypeDataForLastVCFHeader = false;
-
-    public BCF2Writer(final File location, final OutputStream output, final SAMSequenceDictionary refDict,
-                      final boolean enableOnTheFlyIndexing, final boolean doNotWriteGenotypes) {
-        super(writerName(location, output), location, output, refDict, enableOnTheFlyIndexing);
-        this.outputStream = getOutputStream();
-        this.doNotWriteGenotypes = doNotWriteGenotypes;
-    }
-
-    public BCF2Writer(final File location, final OutputStream output, final SAMSequenceDictionary refDict,
-                      final IndexCreator indexCreator,
-                      final boolean enableOnTheFlyIndexing, final boolean doNotWriteGenotypes) {
-        super(writerName(location, output), location, output, refDict, enableOnTheFlyIndexing, indexCreator);
-        this.outputStream = getOutputStream();
-        this.doNotWriteGenotypes = doNotWriteGenotypes;
-    }
-
-    // --------------------------------------------------------------------------------
-    //
-    // Interface functions
-    //
-    // --------------------------------------------------------------------------------
-
-    @Override
-    public void writeHeader(VCFHeader header) {
-        // make sure the header is sorted correctly
-        header = new VCFHeader(header.getMetaDataInSortedOrder(), header.getGenotypeSamples());
-
-        // create the config offsets map
-        if ( header.getContigLines().isEmpty() ) {
-            if ( ALLOW_MISSING_CONTIG_LINES ) {
-                if ( GeneralUtils.DEBUG_MODE_ENABLED ) {
-                    System.err.println("No contig dictionary found in header, falling back to reference sequence dictionary");
-                }
-                createContigDictionary(VCFUtils.makeContigHeaderLines(getRefDict(), null));
-            } else {
-                throw new IllegalStateException("Cannot write BCF2 file with missing contig lines");
-            }
-        } else {
-            createContigDictionary(header.getContigLines());
-        }
-
-        // set up the map from dictionary string values -> offset
-        final ArrayList<String> dict = BCF2Utils.makeDictionary(header);
-        for ( int i = 0; i < dict.size(); i++ ) {
-            stringDictionaryMap.put(dict.get(i), i);
-        }
-
-        sampleNames = header.getGenotypeSamples().toArray(new String[header.getNGenotypeSamples()]);
-
-        // setup the field encodings
-        fieldManager.setup(header, encoder, stringDictionaryMap);
-
-        try {
-            // write out the header into a byte stream, get its length, and write everything to the file
-            final ByteArrayOutputStream capture = new ByteArrayOutputStream();
-            final OutputStreamWriter writer = new OutputStreamWriter(capture);
-            this.header = VCFWriter.writeHeader(header, writer, doNotWriteGenotypes, VCFWriter.getVersionLine(), "BCF2 stream");
-            writer.append('\0'); // the header is null terminated by a byte
-            writer.close();
-
-            final byte[] headerBytes = capture.toByteArray();
-            new BCFVersion(MAJOR_VERSION, MINOR_VERSION).write(outputStream);
-            BCF2Type.INT32.write(headerBytes.length, outputStream);
-            outputStream.write(headerBytes);
-        } catch (IOException e) {
-            throw new RuntimeException("BCF2 stream: Got IOException while trying to write BCF2 header", e);
-        }
-    }
-
-    @Override
-    public void add( VariantContext vc ) {
-        if ( doNotWriteGenotypes )
-            vc = new VariantContextBuilder(vc).noGenotypes().make();
-        vc = vc.fullyDecode(header, false);
-
-        super.add(vc); // allow on the fly indexing
-
-        try {
-            final byte[] infoBlock = buildSitesData(vc);
-            final byte[] genotypesBlock = buildSamplesData(vc);
-
-            // write the two blocks to disk
-            writeBlock(infoBlock, genotypesBlock);
-        }
-        catch ( IOException e ) {
-            throw new RuntimeException("Error writing record to BCF2 file: " + vc.toString(), e);
-        }
-    }
-
-    @Override
-    public void close() {
-        try {
-            outputStream.flush();
-            outputStream.close();
-        }
-        catch ( IOException e ) {
-            throw new RuntimeException("Failed to close BCF2 file");
-        }
-        super.close();
-    }
-
-    // --------------------------------------------------------------------------------
-    //
-    // implicit block
-    //
-    // The first four records of BCF are inline untype encoded data of:
-    //
-    // 4 byte integer chrom offset
-    // 4 byte integer start
-    // 4 byte integer ref length
-    // 4 byte float qual
-    //
-    // --------------------------------------------------------------------------------
-    private byte[] buildSitesData( VariantContext vc ) throws IOException {
-        final int contigIndex = contigDictionary.get(vc.getChr());
-        if ( contigIndex == -1 )
-            throw new IllegalStateException(String.format("Contig %s not found in sequence dictionary from reference", vc.getChr()));
-
-        // note use of encodeRawValue to not insert the typing byte
-        encoder.encodeRawValue(contigIndex, BCF2Type.INT32);
-
-        // pos.  GATK is 1 based, BCF2 is 0 based
-        encoder.encodeRawValue(vc.getStart() - 1, BCF2Type.INT32);
-
-        // ref length.  GATK is closed, but BCF2 is open so the ref length is GATK end - GATK start + 1
-        // for example, a SNP is in GATK at 1:10-10, which has ref length 10 - 10 + 1 = 1
-        encoder.encodeRawValue(vc.getEnd() - vc.getStart() + 1, BCF2Type.INT32);
-
-        // qual
-        if ( vc.hasLog10PError() )
-            encoder.encodeRawFloat((float) vc.getPhredScaledQual());
-        else
-            encoder.encodeRawMissingValue(BCF2Type.FLOAT);
-
-        // info fields
-        final int nAlleles = vc.getNAlleles();
-        final int nInfo = vc.getAttributes().size();
-        final int nGenotypeFormatFields = getNGenotypeFormatFields(vc);
-        final int nSamples = header.getNGenotypeSamples();
-
-        encoder.encodeRawInt((nAlleles << 16) | (nInfo & 0x0000FFFF), BCF2Type.INT32);
-        encoder.encodeRawInt((nGenotypeFormatFields << 24) | (nSamples & 0x00FFFFF), BCF2Type.INT32);
-
-        buildID(vc);
-        buildAlleles(vc);
-        buildFilter(vc);
-        buildInfo(vc);
-
-        return encoder.getRecordBytes();
-    }
-
-
-    /**
-     * Can we safely write on the raw (undecoded) genotypes of an input VC?
-     *
-     * The cache depends on the undecoded lazy data header == lastVCFHeaderOfUnparsedGenotypes, in
-     * which case we return the previous result.  If it's not cached, we use the BCF2Util to
-     * compare the VC header with our header (expensive) and cache it.
-     *
-     * @param lazyData
-     * @return
-     */
-    private boolean canSafelyWriteRawGenotypesBytes(final BCF2Codec.LazyData lazyData) {
-        if ( lazyData.header != lastVCFHeaderOfUnparsedGenotypes ) {
-            // result is already cached
-            canPassOnUnparsedGenotypeDataForLastVCFHeader = BCF2Utils.headerLinesAreOrderedConsistently(this.header,lazyData.header);
-            lastVCFHeaderOfUnparsedGenotypes = lazyData.header;
-        }
-
-        return canPassOnUnparsedGenotypeDataForLastVCFHeader;
-    }
-
-    private BCF2Codec.LazyData getLazyData(final VariantContext vc) {
-        if ( vc.getGenotypes().isLazyWithData() ) {
-            final LazyGenotypesContext lgc = (LazyGenotypesContext)vc.getGenotypes();
-
-            if ( lgc.getUnparsedGenotypeData() instanceof BCF2Codec.LazyData &&
-                    canSafelyWriteRawGenotypesBytes((BCF2Codec.LazyData) lgc.getUnparsedGenotypeData())) {
-                return (BCF2Codec.LazyData)lgc.getUnparsedGenotypeData();
-            } else {
-                lgc.decode(); // WARNING -- required to avoid keeping around bad lazy data for too long
-            }
-        }
-
-        return null;
-    }
-
-    /**
-     * Try to get the nGenotypeFields as efficiently as possible.
-     *
-     * If this is a lazy BCF2 object just grab the field count from there,
-     * otherwise do the whole counting by types test in the actual data
-     *
-     * @param vc
-     * @return
-     */
-    private int getNGenotypeFormatFields(final VariantContext vc) {
-        final BCF2Codec.LazyData lazyData = getLazyData(vc);
-        return lazyData != null ? lazyData.nGenotypeFields : vc.calcVCFGenotypeKeys(header).size();
-    }
-
-    private void buildID( VariantContext vc ) throws IOException {
-        encoder.encodeTypedString(vc.getID());
-    }
-
-    private void buildAlleles( VariantContext vc ) throws IOException {
-        for ( Allele allele : vc.getAlleles() ) {
-            final byte[] s = allele.getDisplayBases();
-            if ( s == null )
-                throw new IllegalStateException("BUG: BCF2Writer encountered null padded allele" + allele);
-            encoder.encodeTypedString(s);
-        }
-    }
-
-    private void buildFilter( VariantContext vc ) throws IOException {
-        if ( vc.isFiltered() ) {
-            encodeStringsByRef(vc.getFilters());
-        } else if ( vc.filtersWereApplied() ) {
-            encodeStringsByRef(Collections.singleton(VCFConstants.PASSES_FILTERS_v4));
-        } else {
-            encoder.encodeTypedMissing(BCF2Type.INT8);
-        }
-    }
-
-    private void buildInfo( VariantContext vc ) throws IOException {
-        for ( Map.Entry<String, Object> infoFieldEntry : vc.getAttributes().entrySet() ) {
-            final String field = infoFieldEntry.getKey();
-            final BCF2FieldWriter.SiteWriter writer = fieldManager.getSiteFieldWriter(field);
-            if ( writer == null ) errorUnexpectedFieldToWrite(vc, field, "INFO");
-            writer.start(encoder, vc);
-            writer.site(encoder, vc);
-            writer.done(encoder, vc);
-        }
-    }
-
-    private byte[] buildSamplesData(final VariantContext vc) throws IOException {
-        final BCF2Codec.LazyData lazyData = getLazyData(vc);  // has critical side effects
-        if ( lazyData != null ) {
-            // we never decoded any data from this BCF file, so just pass it back
-            return lazyData.bytes;
-        }
-
-        // we have to do work to convert the VC into a BCF2 byte stream
-        final List<String> genotypeFields = vc.calcVCFGenotypeKeys(header);
-        for ( final String field : genotypeFields ) {
-            final BCF2FieldWriter.GenotypesWriter writer = fieldManager.getGenotypeFieldWriter(field);
-            if ( writer == null ) errorUnexpectedFieldToWrite(vc, field, "FORMAT");
-
-            assert writer != null;
-
-            writer.start(encoder, vc);
-            for ( final String name : sampleNames ) {
-                Genotype g = vc.getGenotype(name);
-                if ( g == null ) g = GenotypeBuilder.createMissing(name, writer.nValuesPerGenotype);
-                writer.addGenotype(encoder, vc, g);
-            }
-            writer.done(encoder, vc);
-        }
-        return encoder.getRecordBytes();
-    }
-
-    /**
-     * Throws a meaningful error message when a field (INFO or FORMAT) is found when writing out a file
-     * but there's no header line for it.
-     *
-     * @param vc
-     * @param field
-     * @param fieldType
-     */
-    private void errorUnexpectedFieldToWrite(final VariantContext vc, final String field, final String fieldType) {
-        throw new IllegalStateException("Found field " + field + " in the " + fieldType + " fields of VariantContext at " +
-                vc.getChr() + ":" + vc.getStart() + " from " + vc.getSource() + " but this hasn't been defined in the VCFHeader");
-    }
-
-    // --------------------------------------------------------------------------------
-    //
-    // Low-level block encoding
-    //
-    // --------------------------------------------------------------------------------
-
-    /**
-     * Write the data in the encoder to the outputstream as a length encoded
-     * block of data.  After this call the encoder stream will be ready to
-     * start a new data block
-     *
-     * @throws IOException
-     */
-    @Requires({"infoBlock.length > 0", "genotypesBlock.length >= 0"})
-    private void writeBlock(final byte[] infoBlock, final byte[] genotypesBlock) throws IOException {
-        BCF2Type.INT32.write(infoBlock.length, outputStream);
-        BCF2Type.INT32.write(genotypesBlock.length, outputStream);
-        outputStream.write(infoBlock);
-        outputStream.write(genotypesBlock);
-    }
-
-    @Requires("! strings.isEmpty()")
-    @Ensures("result.isIntegerType()")
-    private BCF2Type encodeStringsByRef(final Collection<String> strings) throws IOException {
-        final List<Integer> offsets = new ArrayList<Integer>(strings.size());
-
-        // iterate over strings until we find one that needs 16 bits, and break
-        for ( final String string : strings ) {
-            final Integer got = stringDictionaryMap.get(string);
-            if ( got == null ) throw new IllegalStateException("Format error: could not find string " + string + " in header as required by BCF");
-            final int offset = got;
-            offsets.add(offset);
-        }
-
-        final BCF2Type type = BCF2Utils.determineIntegerType(offsets);
-        encoder.encodeTyped(offsets, type);
-        return type;
-    }
-
-    /**
-     * Create the contigDictionary from the contigLines extracted from the VCF header
-     *
-     * @param contigLines
-     */
-    @Requires("contigDictionary.isEmpty()")
-    private void createContigDictionary(final Collection<VCFContigHeaderLine> contigLines) {
-        int offset = 0;
-        for ( VCFContigHeaderLine contig : contigLines )
-            contigDictionary.put(contig.getID(), offset++);
-    }
-}
diff --git a/src/java/org/broadinstitute/variant/variantcontext/writer/IndexingVariantContextWriter.java b/src/java/org/broadinstitute/variant/variantcontext/writer/IndexingVariantContextWriter.java
deleted file mode 100644
index 1a9fe24..0000000
--- a/src/java/org/broadinstitute/variant/variantcontext/writer/IndexingVariantContextWriter.java
+++ /dev/null
@@ -1,227 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.variantcontext.writer;
-
-import com.google.java.contract.Ensures;
-import com.google.java.contract.Requires;
-import net.sf.samtools.SAMSequenceDictionary;
-import net.sf.samtools.SAMSequenceRecord;
-import net.sf.samtools.util.LocationAware;
-import org.broad.tribble.index.*;
-import org.broadinstitute.variant.variantcontext.VariantContext;
-import org.broadinstitute.variant.vcf.VCFHeader;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.OutputStream;
-
-/**
- * this class writes VCF files
- */
-abstract class IndexingVariantContextWriter implements VariantContextWriter {
-    private final String name;
-    private final File location;
-    private final SAMSequenceDictionary refDict;
-
-    private OutputStream outputStream;
-    private LocationAware locationSource = null;
-    private IndexCreator indexer = null;
-
-    private IndexingVariantContextWriter(final String name, final File location, final OutputStream output, final SAMSequenceDictionary refDict) {
-        this.name = name;
-        this.location = location;
-        this.outputStream = output;
-        this.refDict = refDict;
-    }
-
-    /**
-     * Create a VariantContextWriter with an associated index using the default index creator
-     *
-     * @param name  the name of this writer (i.e. the file name or stream)
-     * @param location  the path to the output file
-     * @param output    the output stream to write to
-     * @param refDict   the reference dictionary
-     * @param enableOnTheFlyIndexing    is OTF indexing enabled?
-     */
-    @Requires({"name != null",
-            "! ( location == null && output == null )",
-            "! ( enableOnTheFlyIndexing && location == null )"})
-    protected IndexingVariantContextWriter(final String name, final File location, final OutputStream output, final SAMSequenceDictionary refDict,
-                                           final boolean enableOnTheFlyIndexing) {
-        this(name, location, output, refDict);
-
-        if ( enableOnTheFlyIndexing ) {
-            initIndexingWriter(new DynamicIndexCreator(location, IndexFactory.IndexBalanceApproach.FOR_SEEK_TIME));
-        }
-    }
-
-    /**
-     * Create a VariantContextWriter with an associated index using a custom index creator
-     *
-     * @param name  the name of this writer (i.e. the file name or stream)
-     * @param location  the path to the output file
-     * @param output    the output stream to write to
-     * @param refDict   the reference dictionary
-     * @param enableOnTheFlyIndexing    is OTF indexing enabled?
-     * @param idxCreator    the custom index creator.  NOTE: must be initialized
-     */
-    @Requires({"name != null",
-            "! ( location == null && output == null )",
-            "! ( enableOnTheFlyIndexing && location == null )",
-            "idxCreator != null"})
-    protected IndexingVariantContextWriter(final String name, final File location, final OutputStream output, final SAMSequenceDictionary refDict,
-                                           final boolean enableOnTheFlyIndexing, final IndexCreator idxCreator) {
-        this(name, location, output, refDict);
-
-        if ( enableOnTheFlyIndexing ) {
-            // TODO: Handle non-Tribble IndexCreators
-            initIndexingWriter(idxCreator);
-        }
-    }
-
-    @Requires({"idxCreator != null"})
-    private void initIndexingWriter(final IndexCreator idxCreator) {
-        indexer = idxCreator;
-        if (outputStream instanceof LocationAware) {
-            locationSource = (LocationAware)outputStream;
-        } else {
-            final PositionalOutputStream positionalOutputStream = new PositionalOutputStream(outputStream);
-            locationSource = positionalOutputStream;
-            outputStream = positionalOutputStream;
-        }
-    }
-
-    @Ensures("result != null")
-    public OutputStream getOutputStream() {
-        return outputStream;
-    }
-
-    @Ensures("result != null")
-    public String getStreamName() {
-        return name;
-    }
-
-    public abstract void writeHeader(VCFHeader header);
-
-    /**
-     * attempt to close the VCF file
-     */
-    public void close() {
-        try {
-            // close the underlying output stream
-            outputStream.close();
-
-            // close the index stream (keep it separate to help debugging efforts)
-            if (indexer != null) {
-                if (indexer instanceof TribbleIndexCreator) {
-                    setIndexSequenceDictionary((TribbleIndexCreator)indexer, refDict);
-                }
-                final Index index = indexer.finalizeIndex(locationSource.getPosition());
-                index.writeBasedOnFeatureFile(location);
-            }
-
-
-        } catch (final IOException e) {
-            throw new RuntimeException("Unable to close index for " + getStreamName(), e);
-        }
-    }
-
-    /**
-     * @return the reference sequence dictionary used for the variant contexts being written
-     */
-    public SAMSequenceDictionary getRefDict() {
-        return refDict;
-    }
-
-    /**
-     * add a record to the file
-     *
-     * @param vc      the Variant Context object
-     */
-    public void add(final VariantContext vc) {
-        // if we are doing on the fly indexing, add the record ***before*** we write any bytes
-        if ( indexer != null )
-            indexer.addFeature(vc, locationSource.getPosition());
-    }
-
-    /**
-     * Returns a reasonable "name" for this writer, to display to the user if something goes wrong
-     *
-     * @param location
-     * @param stream
-     * @return
-     */
-    protected static final String writerName(final File location, final OutputStream stream) {
-        return location == null ? stream.toString() : location.getAbsolutePath();
-    }
-
-    // a constant we use for marking sequence dictionary entries in the Tribble index property list
-    private static final String SequenceDictionaryPropertyPredicate = "DICT:";
-
-    private static void setIndexSequenceDictionary(final TribbleIndexCreator indexCreator, final SAMSequenceDictionary dict) {
-        for (final SAMSequenceRecord seq : dict.getSequences()) {
-            final String contig = SequenceDictionaryPropertyPredicate + seq.getSequenceName();
-            final String length = String.valueOf(seq.getSequenceLength());
-            indexCreator.addProperty(contig,length);
-        }
-    }
-}
-
-/**
- * Wraps output stream in a manner which keeps track of the position within the file and allowing writes
- * at arbitrary points
- */
-final class PositionalOutputStream extends OutputStream implements LocationAware
-{
-    private final OutputStream out;
-    private long position = 0;
-
-    public PositionalOutputStream(final OutputStream out) {
-        this.out = out;
-    }
-
-    public final void write(final byte[] bytes) throws IOException {
-        write(bytes, 0, bytes.length);
-    }
-
-    public final void write(final byte[] bytes, final int startIndex, final int numBytes) throws IOException {
-        position += numBytes;
-        out.write(bytes, startIndex, numBytes);
-    }
-
-    public final void write(final int c)  throws IOException {
-        position++;
-        out.write(c);
-    }
-
-    public final long getPosition() { return position; }
-
-    @Override
-    public void close() throws IOException {
-        super.close();
-        out.close();
-    }
-}
\ No newline at end of file
diff --git a/src/java/org/broadinstitute/variant/variantcontext/writer/IntGenotypeFieldAccessors.java b/src/java/org/broadinstitute/variant/variantcontext/writer/IntGenotypeFieldAccessors.java
deleted file mode 100644
index 9a485d2..0000000
--- a/src/java/org/broadinstitute/variant/variantcontext/writer/IntGenotypeFieldAccessors.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.variantcontext.writer;
-
-import org.broadinstitute.variant.vcf.VCFConstants;
-import org.broadinstitute.variant.variantcontext.Genotype;
-
-import java.util.HashMap;
-
-/**
- * A convenient way to provide a single view on the many int and int[] field values we work with,
- * for writing out the values.  This class makes writing out the inline AD, GQ, PL, DP fields
- * easy and fast
- *
- * @author Mark DePristo
- * @since 6/12
- */
-public class IntGenotypeFieldAccessors {
-    // initialized once per writer to allow parallel writers to work
-    private final HashMap<String, Accessor> intGenotypeFieldEncoders = new HashMap<String, Accessor>();
-
-    public IntGenotypeFieldAccessors() {
-        intGenotypeFieldEncoders.put(VCFConstants.DEPTH_KEY, new IntGenotypeFieldAccessors.DPAccessor());
-        intGenotypeFieldEncoders.put(VCFConstants.GENOTYPE_ALLELE_DEPTHS, new IntGenotypeFieldAccessors.ADAccessor());
-        intGenotypeFieldEncoders.put(VCFConstants.GENOTYPE_PL_KEY, new IntGenotypeFieldAccessors.PLAccessor());
-        intGenotypeFieldEncoders.put(VCFConstants.GENOTYPE_QUALITY_KEY, new IntGenotypeFieldAccessors.GQAccessor());
-    }
-
-    /**
-     * Return an accessor for field, or null if none exists
-     * @param field
-     * @return
-     */
-    public Accessor getAccessor(final String field) {
-        return intGenotypeFieldEncoders.get(field);
-    }
-
-    public static abstract class Accessor {
-        public abstract int[] getValues(final Genotype g);
-
-        public final int getSize(final Genotype g) {
-            final int[] v = getValues(g);
-            return v == null ? 0 : v.length;
-        }
-    }
-
-    private static abstract class AtomicAccessor extends Accessor {
-        private final int[] singleton = new int[1];
-
-        @Override
-        public int[] getValues(final Genotype g) {
-            singleton[0] = getValue(g);
-            return singleton[0] == -1 ? null : singleton;
-        }
-
-        public abstract int getValue(final Genotype g);
-    }
-
-    public static class GQAccessor extends AtomicAccessor {
-        @Override public int getValue(final Genotype g) { return Math.min(g.getGQ(), VCFConstants.MAX_GENOTYPE_QUAL); }
-    }
-
-    public static class DPAccessor extends AtomicAccessor {
-        @Override public int getValue(final Genotype g) { return g.getDP(); }
-    }
-
-    public static class ADAccessor extends Accessor {
-        @Override public int[] getValues(final Genotype g) { return g.getAD(); }
-    }
-
-    public static class PLAccessor extends Accessor {
-        @Override public int[] getValues(final Genotype g) { return g.getPL(); }
-    }
-}
diff --git a/src/java/org/broadinstitute/variant/variantcontext/writer/Options.java b/src/java/org/broadinstitute/variant/variantcontext/writer/Options.java
deleted file mode 100644
index eac2eb8..0000000
--- a/src/java/org/broadinstitute/variant/variantcontext/writer/Options.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.variantcontext.writer;
-
-/**
- * Available writer options for VariantContextWriters
- *
- * @author Mark DePristo
- * @since 5/12
- */
-public enum Options {
-    INDEX_ON_THE_FLY,
-    DO_NOT_WRITE_GENOTYPES,
-    ALLOW_MISSING_FIELDS_IN_HEADER,
-    FORCE_BCF,
-    USE_ASYNC_IO            // Turn on or off the use of asynchronous IO for writing output VCF files.
-}
diff --git a/src/java/org/broadinstitute/variant/variantcontext/writer/SortingVariantContextWriter.java b/src/java/org/broadinstitute/variant/variantcontext/writer/SortingVariantContextWriter.java
deleted file mode 100644
index d7254fa..0000000
--- a/src/java/org/broadinstitute/variant/variantcontext/writer/SortingVariantContextWriter.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.variantcontext.writer;
-
-import org.broadinstitute.variant.variantcontext.VariantContext;
-
-/**
- * this class writes VCF files, allowing records to be passed in unsorted (up to a certain genomic distance away)
- */
-class SortingVariantContextWriter extends SortingVariantContextWriterBase {
-
-    // the maximum START distance between records that we'll cache
-    private int maxCachingStartDistance;
-
-    /**
-     * create a local-sorting VCF writer, given an inner VCF writer to write to
-     *
-     * @param innerWriter        the VCFWriter to write to
-     * @param maxCachingStartDistance the maximum start distance between records that we'll cache
-     * @param takeOwnershipOfInner Should this Writer close innerWriter when it's done with it
-     */
-    public SortingVariantContextWriter(VariantContextWriter innerWriter, int maxCachingStartDistance, boolean takeOwnershipOfInner) {
-        super(innerWriter, takeOwnershipOfInner);
-        this.maxCachingStartDistance = maxCachingStartDistance;
-    }
-
-    public SortingVariantContextWriter(VariantContextWriter innerWriter, int maxCachingStartDistance) {
-        this(innerWriter, maxCachingStartDistance, false); // by default, don't own inner
-    }
-
-    protected void noteCurrentRecord(VariantContext vc) {
-        super.noteCurrentRecord(vc); // first, check for errors
-
-        // then, update mostUpstreamWritableLoc:
-        int mostUpstreamWritableIndex = vc.getStart() - maxCachingStartDistance;
-        this.mostUpstreamWritableLoc = Math.max(BEFORE_MOST_UPSTREAM_LOC, mostUpstreamWritableIndex);
-    }
-}
\ No newline at end of file
diff --git a/src/java/org/broadinstitute/variant/variantcontext/writer/SortingVariantContextWriterBase.java b/src/java/org/broadinstitute/variant/variantcontext/writer/SortingVariantContextWriterBase.java
deleted file mode 100644
index c4588df..0000000
--- a/src/java/org/broadinstitute/variant/variantcontext/writer/SortingVariantContextWriterBase.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.variantcontext.writer;
-
-import org.broadinstitute.variant.vcf.VCFHeader;
-import org.broadinstitute.variant.variantcontext.VariantContext;
-
-import java.util.*;
-import java.util.concurrent.PriorityBlockingQueue;
-
-/**
- * This class writes VCF files, allowing records to be passed in unsorted.
- * It also enforces that it is never passed records of the same chromosome with any other chromosome in between them.
- */
-abstract class SortingVariantContextWriterBase implements VariantContextWriter {
-
-    // The VCFWriter to which to actually write the sorted VCF records
-    private final VariantContextWriter innerWriter;
-
-    // the current queue of un-emitted records
-    private final Queue<VCFRecord> queue;
-
-    // The locus until which we are permitted to write out (inclusive)
-    protected Integer mostUpstreamWritableLoc;
-    protected static final int BEFORE_MOST_UPSTREAM_LOC = 0; // No real locus index is <= 0
-
-    // The set of chromosomes already passed over and to which it is forbidden to return
-    private final Set<String> finishedChromosomes;
-
-    // Should we call innerWriter.close() in close()
-    private final boolean takeOwnershipOfInner;
-
-    // --------------------------------------------------------------------------------
-    //
-    // Constructors
-    //
-    // --------------------------------------------------------------------------------
-
-    /**
-     * create a local-sorting VCF writer, given an inner VCF writer to write to
-     *
-     * @param innerWriter        the VCFWriter to write to
-     * @param takeOwnershipOfInner Should this Writer close innerWriter when it's done with it
-     */
-    public SortingVariantContextWriterBase(VariantContextWriter innerWriter, boolean takeOwnershipOfInner) {
-        this.innerWriter = innerWriter;
-        this.finishedChromosomes = new TreeSet<String>();
-        this.takeOwnershipOfInner = takeOwnershipOfInner;
-
-        // has to be PriorityBlockingQueue to be thread-safe
-        this.queue = new PriorityBlockingQueue<VCFRecord>(50, new VariantContextComparator());
-
-        this.mostUpstreamWritableLoc = BEFORE_MOST_UPSTREAM_LOC;
-    }
-
-    public SortingVariantContextWriterBase(VariantContextWriter innerWriter) {
-        this(innerWriter, false); // by default, don't own inner
-    }
-
-    // --------------------------------------------------------------------------------
-    //
-    // public interface functions
-    //
-    // --------------------------------------------------------------------------------
-
-    @Override
-    public void writeHeader(VCFHeader header) {
-        innerWriter.writeHeader(header);
-    }
-
-    /**
-     * attempt to close the VCF file; we need to flush the queue first
-     */
-    @Override
-    public void close() {
-        stopWaitingToSort();
-
-        if (takeOwnershipOfInner)
-            innerWriter.close();
-    }
-
-
-    /**
-     * add a record to the file
-     *
-     * @param vc      the Variant Context object
-     */
-    @Override
-    public synchronized void add(VariantContext vc) {
-        /* Note that the code below does not prevent the successive add()-ing of: (chr1, 10), (chr20, 200), (chr15, 100)
-           since there is no implicit ordering of chromosomes:
-         */
-        VCFRecord firstRec = queue.peek();
-        if (firstRec != null && !vc.getChr().equals(firstRec.vc.getChr())) { // if we hit a new contig, flush the queue
-            if (finishedChromosomes.contains(vc.getChr()))
-                throw new IllegalArgumentException("Added a record at " + vc.getChr() + ":" + vc.getStart() + ", but already finished with chromosome" + vc.getChr());
-
-            finishedChromosomes.add(firstRec.vc.getChr());
-            stopWaitingToSort();
-        }
-
-        noteCurrentRecord(vc); // possibly overwritten
-
-        queue.add(new VCFRecord(vc));
-        emitSafeRecords();
-    }
-
-    /**
-     * Gets a string representation of this object.
-     * @return a string representation of this object
-     */
-    @Override
-    public String toString() {
-        return getClass().getName();
-    }
-
-    // --------------------------------------------------------------------------------
-    //
-    // protected interface functions for subclasses to use
-    //
-    // --------------------------------------------------------------------------------
-
-    private synchronized void stopWaitingToSort() {
-        emitRecords(true);
-        mostUpstreamWritableLoc = BEFORE_MOST_UPSTREAM_LOC;
-    }
-
-    protected synchronized void emitSafeRecords() {
-        emitRecords(false);
-    }
-
-    protected void noteCurrentRecord(VariantContext vc) {
-        // did the user break the contract by giving a record too late?
-        if (mostUpstreamWritableLoc != null && vc.getStart() < mostUpstreamWritableLoc) // went too far back, since may have already written anything that is <= mostUpstreamWritableLoc
-            throw new IllegalArgumentException("Permitted to write any record upstream of position " + mostUpstreamWritableLoc + ", but a record at " + vc.getChr() + ":" + vc.getStart() + " was just added.");
-    }
-
-    // --------------------------------------------------------------------------------
-    //
-    // private implementation functions
-    //
-    // --------------------------------------------------------------------------------
-
-    private synchronized void emitRecords(boolean emitUnsafe) {
-        while (!queue.isEmpty()) {
-            VCFRecord firstRec = queue.peek();
-
-            // No need to wait, waiting for nothing, or before what we're waiting for:
-            if (emitUnsafe || mostUpstreamWritableLoc == null || firstRec.vc.getStart() <= mostUpstreamWritableLoc) {
-                queue.poll();
-                innerWriter.add(firstRec.vc);
-            }
-            else {
-                break;
-            }
-        }
-    }
-
-    private static class VariantContextComparator implements Comparator<VCFRecord> {
-        public int compare(VCFRecord r1, VCFRecord r2) {
-            return r1.vc.getStart() - r2.vc.getStart();
-        }
-    }
-
-    private static class VCFRecord {
-        public VariantContext vc;
-
-        public VCFRecord(VariantContext vc) {
-            this.vc = vc;
-        }
-    }
-}
\ No newline at end of file
diff --git a/src/java/org/broadinstitute/variant/variantcontext/writer/VCFWriter.java b/src/java/org/broadinstitute/variant/variantcontext/writer/VCFWriter.java
deleted file mode 100644
index 7a43e83..0000000
--- a/src/java/org/broadinstitute/variant/variantcontext/writer/VCFWriter.java
+++ /dev/null
@@ -1,223 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.variantcontext.writer;
-
-import net.sf.samtools.SAMSequenceDictionary;
-import org.broad.tribble.index.IndexCreator;
-import org.broadinstitute.variant.variantcontext.VariantContext;
-import org.broadinstitute.variant.variantcontext.VariantContextBuilder;
-import org.broadinstitute.variant.vcf.VCFConstants;
-import org.broadinstitute.variant.vcf.VCFEncoder;
-import org.broadinstitute.variant.vcf.VCFHeader;
-import org.broadinstitute.variant.vcf.VCFHeaderLine;
-import org.broadinstitute.variant.vcf.VCFHeaderVersion;
-
-import java.io.BufferedWriter;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.OutputStreamWriter;
-import java.io.Writer;
-
-/**
- * this class writes VCF files
- */
-class VCFWriter extends IndexingVariantContextWriter {
-
-    private static final String VERSION_LINE =
-		    VCFHeader.METADATA_INDICATOR + VCFHeaderVersion.VCF4_1.getFormatString() + "=" + VCFHeaderVersion.VCF4_1.getVersionString();
-
-	// Initialized when the header is written to the output stream
-	private VCFEncoder vcfEncoder = null;
-
-    // the VCF header we're storing
-    protected VCFHeader mHeader = null;
-
-	private final boolean allowMissingFieldsInHeader;
-
-	// should we write genotypes or just sites?
-	private final boolean doNotWriteGenotypes;
-
-    /*
-     * The VCF writer uses an internal Writer, based by the ByteArrayOutputStream lineBuffer,
-     * to temp. buffer the header and per-site output before flushing the per line output
-     * in one go to the super.getOutputStream.  This results in high-performance, proper encoding,
-     * and allows us to avoid flushing explicitly the output stream getOutputStream, which
-     * allows us to properly compress vcfs in gz format without breaking indexing on the fly
-     * for uncompressed streams.
-     */
-    private static final int INITIAL_BUFFER_SIZE = 1024 * 16;
-    private final ByteArrayOutputStream lineBuffer = new ByteArrayOutputStream(INITIAL_BUFFER_SIZE);
-    /* Wrapping in a {@link BufferedWriter} avoids frequent conversions with individual writes to OutputStreamWriter. */
-    private final Writer writer = new BufferedWriter(new OutputStreamWriter(lineBuffer, VCFEncoder.VCF_CHARSET));
-
-    public VCFWriter(final File location, final OutputStream output, final SAMSequenceDictionary refDict,
-                     final boolean enableOnTheFlyIndexing,
-                     final boolean doNotWriteGenotypes, final boolean allowMissingFieldsInHeader ) {
-        super(writerName(location, output), location, output, refDict, enableOnTheFlyIndexing);
-        this.doNotWriteGenotypes = doNotWriteGenotypes;
-	    this.allowMissingFieldsInHeader = allowMissingFieldsInHeader;
-    }
-
-    public VCFWriter(final File location, final OutputStream output, final SAMSequenceDictionary refDict,
-                     final IndexCreator indexCreator, final boolean enableOnTheFlyIndexing,
-                     final boolean doNotWriteGenotypes, final boolean allowMissingFieldsInHeader ) {
-        super(writerName(location, output), location, output, refDict, enableOnTheFlyIndexing, indexCreator);
-        this.doNotWriteGenotypes = doNotWriteGenotypes;
-        this.allowMissingFieldsInHeader = allowMissingFieldsInHeader;
-    }
-    // --------------------------------------------------------------------------------
-    //
-    // VCFWriter interface functions
-    //
-    // --------------------------------------------------------------------------------
-
-    /*
-     * Write String s to the internal buffered writer.
-     *
-     * writeAndResetBuffer() must be called to actually write the data to the true output stream.
-     *
-     * @param s the string to write
-     * @throws IOException
-     */
-    private void write(final String s) throws IOException {
-        writer.write(s);
-    }
-
-    /*
-     * Actually write the line buffer contents to the destination output stream. After calling this function
-     * the line buffer is reset so the contents of the buffer can be reused
-     */
-    private void writeAndResetBuffer() throws IOException {
-        writer.flush();
-        getOutputStream().write(lineBuffer.toByteArray());
-        lineBuffer.reset();
-    }
-
-    @Override
-    public void writeHeader(final VCFHeader header) {
-        // note we need to update the mHeader object after this call because they header
-        // may have genotypes trimmed out of it, if doNotWriteGenotypes is true
-        try {
-            this.mHeader = writeHeader(header, writer, doNotWriteGenotypes, getVersionLine(), getStreamName());
-	        this.vcfEncoder = new VCFEncoder(this.mHeader, this.allowMissingFieldsInHeader);
-            writeAndResetBuffer();
-
-        } catch ( IOException e ) {
-            throw new RuntimeException("Couldn't write file " + getStreamName(), e);
-        }
-    }
-
-    public static String getVersionLine() {
-        return VERSION_LINE;
-    }
-
-    public static VCFHeader writeHeader(VCFHeader header,
-                                        final Writer writer,
-                                        final boolean doNotWriteGenotypes,
-                                        final String versionLine,
-                                        final String streamNameForError) {
-        header = doNotWriteGenotypes ? new VCFHeader(header.getMetaDataInSortedOrder()) : header;
-        
-        try {
-            // the file format field needs to be written first
-            writer.write(versionLine + "\n");
-
-            for (final VCFHeaderLine line : header.getMetaDataInSortedOrder() ) {
-                if ( VCFHeaderVersion.isFormatString(line.getKey()) )
-                    continue;
-
-                writer.write(VCFHeader.METADATA_INDICATOR);
-                writer.write(line.toString());
-                writer.write("\n");
-            }
-
-            // write out the column line
-            writer.write(VCFHeader.HEADER_INDICATOR);
-            boolean isFirst = true;
-            for (final VCFHeader.HEADER_FIELDS field : header.getHeaderFields() ) {
-                if ( isFirst )
-                    isFirst = false; // don't write out a field separator
-                else
-                    writer.write(VCFConstants.FIELD_SEPARATOR);
-                writer.write(field.toString());
-            }
-
-            if ( header.hasGenotypingData() ) {
-                writer.write(VCFConstants.FIELD_SEPARATOR);
-                writer.write("FORMAT");
-                for (final String sample : header.getGenotypeSamples() ) {
-                    writer.write(VCFConstants.FIELD_SEPARATOR);
-                    writer.write(sample);
-                }
-            }
-
-            writer.write("\n");
-            writer.flush();  // necessary so that writing to an output stream will work
-        }
-        catch (IOException e) {
-            throw new RuntimeException("IOException writing the VCF header to " + streamNameForError, e);
-        }
-
-        return header;
-    }
-
-    /**
-     * attempt to close the VCF file
-     */
-    @Override
-    public void close() {
-        // try to close the vcf stream
-        try {
-            // TODO -- would it be useful to null out the line buffer so we don't have it around unnecessarily?
-            writer.close();
-        } catch (IOException e) {
-            throw new RuntimeException("Unable to close " + getStreamName(), e);
-        }
-
-        super.close();
-    }
-
-    /**
-     * Add a record to the file
-     */
-    @Override
-    public void add(final VariantContext context) {
-        try {
-            super.add(context);
-
-	        if (this.doNotWriteGenotypes) write(this.vcfEncoder.encode(new VariantContextBuilder(context).noGenotypes().make()));
-	        else write(this.vcfEncoder.encode(context));
-	        write("\n");
-
-            writeAndResetBuffer();
-
-        } catch (IOException e) {
-            throw new RuntimeException("Unable to write the VCF object to " + getStreamName(), e);
-        }
-    }
-}
diff --git a/src/java/org/broadinstitute/variant/variantcontext/writer/VariantContextWriter.java b/src/java/org/broadinstitute/variant/variantcontext/writer/VariantContextWriter.java
deleted file mode 100644
index 4ab6b2d..0000000
--- a/src/java/org/broadinstitute/variant/variantcontext/writer/VariantContextWriter.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.variantcontext.writer;
-
-import org.broadinstitute.variant.vcf.VCFHeader;
-import org.broadinstitute.variant.variantcontext.VariantContext;
-
-/**
- * this class writes VCF files
- */
-public interface VariantContextWriter {
-
-    public void writeHeader(VCFHeader header);
-
-    /**
-     * attempt to close the VCF file
-     */
-    public void close();
-
-    public void add(VariantContext vc);
-}
\ No newline at end of file
diff --git a/src/java/org/broadinstitute/variant/variantcontext/writer/VariantContextWriterBuilder.java b/src/java/org/broadinstitute/variant/variantcontext/writer/VariantContextWriterBuilder.java
deleted file mode 100644
index e7c3b2d..0000000
--- a/src/java/org/broadinstitute/variant/variantcontext/writer/VariantContextWriterBuilder.java
+++ /dev/null
@@ -1,466 +0,0 @@
-/*
-* Copyright (c) 2014 The Broad Institute
-*
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-*
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.variantcontext.writer;
-
-import net.sf.samtools.Defaults;
-import net.sf.samtools.SAMSequenceDictionary;
-import net.sf.samtools.util.BlockCompressedOutputStream;
-import net.sf.samtools.util.IOUtil;
-import net.sf.samtools.util.Md5CalculatingOutputStream;
-import net.sf.samtools.util.RuntimeIOException;
-import org.broad.tribble.AbstractFeatureReader;
-import org.broad.tribble.index.IndexCreator;
-import org.broad.tribble.index.tabix.TabixFormat;
-import org.broad.tribble.index.tabix.TabixIndexCreator;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.OutputStream;
-import java.util.EnumSet;
-
-/**
- * Created with IntelliJ IDEA.
- * User: thibault
- * Date: 3/7/14
- * Time: 2:07 PM
- *
- * Provides methods for creating VariantContextWriters using the Builder pattern.
- * Replaces VariantContextWriterFactory.
- *
- * The caller must choose an output file or an output stream for the VariantContextWriter to write to.
- * When a file is chosen, the output stream is created implicitly based on Defaults and options passed to the builder.
- * When a stream is chosen, it is passed unchanged to the VariantContextWriter.
- *
- * Example: Create a series of files with buffering and indexing on the fly.
- * Determine the appropriate file type based on filename.
- *
- *  VariantContextWriterBuilder builder = new VariantContextWriterBuilder()
- *      .setReferenceDictionary(refDict)
- *      .setOption(Options.INDEX_ON_THE_FLY)
- *      .setBuffer(8192);
- *
- *  VariantContextWriter sample1_writer = builder
- *      .setOutputFile("sample1.vcf")
- *      .build();
- *  VariantContextWriter sample2_writer = builder
- *      .setOutputFile("sample2.bcf")
- *      .build();
- *  VariantContextWriter sample3_writer = builder
- *      .setOutputFile("sample3.vcf.bgzf")
- *      .build();
- *
- * Example: Explicitly turn off buffering and explicitly set the file type
- *
- *  VariantContextWriterBuilder builder = new VariantContextWriterBuilder()
- *      .setReferenceDictionary(refDict)
- *      .setOption(Options.INDEX_ON_THE_FLY)
- *      .unsetBuffering();
- *
- *  VariantContextWriter sample1_writer = builder
- *      .setOutputFile("sample1.custom_extension")
- *      .setOutputFileType(OutputType.VCF)
- *      .build();
- *  VariantContextWriter sample2_writer = builder
- *      .setOutputFile("sample2.custom_extension")
- *      .setOutputFileType(OutputType.BLOCK_COMPRESSED_VCF)
- *      .build();
-
- */
-public class VariantContextWriterBuilder {
-    public static final EnumSet<Options> DEFAULT_OPTIONS = EnumSet.of(Options.INDEX_ON_THE_FLY);
-    public static final EnumSet<Options> NO_OPTIONS = EnumSet.noneOf(Options.class);
-
-    public enum OutputType {
-        UNSPECIFIED,
-        VCF,
-        BCF,
-        BLOCK_COMPRESSED_VCF,
-        VCF_STREAM,
-        BCF_STREAM
-    }
-
-    public static final EnumSet<OutputType> FILE_TYPES = EnumSet.of(OutputType.VCF, OutputType.BCF, OutputType.BLOCK_COMPRESSED_VCF);
-    public static final EnumSet<OutputType> STREAM_TYPES = EnumSet.of(OutputType.VCF_STREAM, OutputType.BCF_STREAM);
-
-    private SAMSequenceDictionary refDict = null;
-    private OutputType outType = OutputType.UNSPECIFIED;
-    private File outFile = null;
-    private OutputStream outStream = null;
-    private IndexCreator idxCreator = null;
-    private int bufferSize = Defaults.BUFFER_SIZE;
-    private boolean createMD5 = Defaults.CREATE_MD5;
-    private EnumSet<Options> options = DEFAULT_OPTIONS.clone();
-
-    /**
-     * Default constructor.  Adds USE_ASYNC_IO to the Options if it is present in Defaults.
-     */
-    public VariantContextWriterBuilder() {
-        if (Defaults.USE_ASYNC_IO)
-            options.add(Options.USE_ASYNC_IO);
-    }
-
-    /**
-     * Set the reference dictionary to be used by VariantContextWriters created by this builder
-     *
-     * @param refDict the reference dictionary
-     * @return this VariantContextWriterBuilder
-     */
-    public VariantContextWriterBuilder setReferenceDictionary(final SAMSequenceDictionary refDict) {
-        this.refDict = refDict;
-        return this;
-    }
-
-    /**
-     * Set the output file for the next VariantContextWriter created by this builder
-     * Determines file type implicitly from the filename
-     *
-     * @param outFile the file the VariantContextWriter will write to
-     * @return this VariantContextWriterBuilder
-     */
-    public VariantContextWriterBuilder setOutputFile(final File outFile) {
-        this.outFile = outFile;
-        this.outStream = null;
-        determineOutputTypeFromFilename();
-        return this;
-    }
-
-    /**
-     * Set the output file for the next VariantContextWriter created by this builder
-     * Determines file type implicitly from the filename
-     *
-     * @param outFile the file the VariantContextWriter will write to
-     * @return this VariantContextWriterBuilder
-     */
-    public VariantContextWriterBuilder setOutputFile(final String outFile) {
-        this.outFile = new File(outFile);
-        this.outStream = null;
-        determineOutputTypeFromFilename();
-        return this;
-    }
-
-    /**
-     * Set the output file type for the next VariantContextWriter created by this builder
-     *
-     * @param outType the type of file the VariantContextWriter will write to
-     * @return this VariantContextWriterBuilder
-     */
-    public VariantContextWriterBuilder setOutputFileType(final OutputType outType) {
-        if (!FILE_TYPES.contains(outType))
-            throw new IllegalArgumentException("Must choose a file type, not other output types.");
-
-        if (this.outFile == null || this.outStream != null)
-            throw new IllegalArgumentException("Cannot set a file type if the output is not to a file.");
-
-        this.outType = outType;
-        return this;
-    }
-
-    /**
-     * Set the output VCF stream for the next VariantContextWriter created by this builder
-     * If buffered writing is desired, caller must provide some kind of buffered OutputStream.
-     *
-     * @param outStream the output stream to write to
-     * @return this VariantContextWriterBuilder
-     */
-    public VariantContextWriterBuilder setOutputVCFStream(final OutputStream outStream) {
-        this.outStream = outStream;
-        this.outFile = null;
-        this.outType = OutputType.VCF_STREAM;
-        return this;
-    }
-
-    /**
-     * Set the output BCF stream for the next VariantContextWriter created by this builder
-     * If buffered writing is desired, caller must provide some kind of buffered OutputStream.
-     *
-     * @param outStream the output stream to write to
-     * @return this VariantContextWriterBuilder
-     */
-    public VariantContextWriterBuilder setOutputBCFStream(final OutputStream outStream) {
-        this.outStream = outStream;
-        this.outFile = null;
-        this.outType = OutputType.BCF_STREAM;
-        return this;
-    }
-
-    /**
-     * Set the output stream (VCF, by default) for the next VariantContextWriter created by this builder
-     * If buffered writing is desired, caller must provide some kind of buffered OutputStream.
-     *
-     * @param outStream the output stream to write to
-     * @return this VariantContextWriterBuilder
-     */
-    public VariantContextWriterBuilder setOutputStream(final OutputStream outStream) {
-        return setOutputVCFStream(outStream);
-    }
-
-    /**
-     * Set an IndexCreator for the next VariantContextWriter created by this builder
-     *
-     * @param idxCreator the IndexCreator to use
-     * @return this VariantContextWriterBuilder
-     */
-    public VariantContextWriterBuilder setIndexCreator(final IndexCreator idxCreator) {
-        this.idxCreator = idxCreator;
-        return this;
-    }
-
-    /**
-     * Do not pass an IndexCreator to the next VariantContextWriter created by this builder
-     *
-     * @return this VariantContextWriterBuilder
-     */
-    public VariantContextWriterBuilder clearIndexCreator() {
-        this.idxCreator = null;
-        return this;
-    }
-
-    /**
-     * Set a buffer size for the file output stream passed to the next VariantContextWriter created by this builder
-     * Set to 0 for no buffering
-     * Does not affect OutputStreams passed directly to VariantContextWriterBuilder
-     *
-     * @param bufferSize the buffer size to use
-     * @return this VariantContextWriterBuilder
-     */
-    public VariantContextWriterBuilder setBuffer(final int bufferSize) {
-        this.bufferSize = bufferSize;
-        return this;
-    }
-
-    /**
-     * Do not use buffering in the next VariantContextWriter created by this builder
-     * Does not affect OutputStreams passed directly to VariantContextWriterBuilder
-     *
-     * @return this VariantContextWriterBuilder
-     */
-    public VariantContextWriterBuilder unsetBuffering() {
-        this.bufferSize = 0;
-        return this;
-    }
-
-    /**
-     * Choose whether to also create an MD5 digest file for the next VariantContextWriter created by this builder
-     *
-     * @param createMD5 boolean, true to create an MD5 digest
-     * @return this VariantContextWriterBuilder
-     */
-    public VariantContextWriterBuilder setCreateMD5(final boolean createMD5) {
-        this.createMD5 = createMD5;
-        return this;
-    }
-
-    /**
-     * Create an MD5 digest file for the next VariantContextWriter created by this builder
-     *
-     * @return this VariantContextWriterBuilder
-     */
-    public VariantContextWriterBuilder setCreateMD5() {
-        return setCreateMD5(true);
-    }
-
-    /**
-     * Don't create an MD5 digest file for the next VariantContextWriter created by this builder
-     *
-     * @return this VariantContextWriterBuilder
-     */
-    public VariantContextWriterBuilder unsetCreateMD5() {
-        return setCreateMD5(false);
-    }
-
-    /**
-     * Replace the set of Options for the VariantContextWriterBuilder with a new set
-     *
-     * @param options the complete set of options to use
-     * @return this VariantContextWriterBuilder
-     */
-    public VariantContextWriterBuilder setOptions(final EnumSet<Options> options) {
-        this.options = options;
-        return this;
-    }
-
-    /**
-     * Add one option to the set of Options for the VariantContextWriterBuilder, if it's not already present
-     *
-     * @param option the option to set
-     * @return this VariantContextWriterBuilder
-     */
-    public VariantContextWriterBuilder setOption(final Options option) {
-        this.options.add(option);
-        return this;
-    }
-
-    /**
-     * Remove one option from the set of Options for the VariantContextWriterBuilder, if it's present
-     *
-     * @param option the option to unset
-     * @return this VariantContextWriterBuilder
-     */
-    public VariantContextWriterBuilder unsetOption(final Options option) {
-        this.options.remove(option);
-        return this;
-    }
-
-    /**
-     * Remove all options from the set of Options for the VariantContextWriterBuilder
-     *
-     * @return this VariantContextWriterBuilder
-     */
-    public VariantContextWriterBuilder clearOptions() {
-        this.options = NO_OPTIONS;
-        return this;
-    }
-
-    /**
-     * Validate and build the VariantContextWriter
-     *
-     * @return the VariantContextWriter as specified by previous method calls
-     */
-    public VariantContextWriter build() {
-        VariantContextWriter writer = null;
-
-        // don't allow FORCE_BCF to modify the outType state
-        OutputType typeToBuild = this.outType;
-
-        if (this.options.contains(Options.FORCE_BCF)) {
-            if (FILE_TYPES.contains(this.outType))
-                typeToBuild = OutputType.BCF;
-            else if (STREAM_TYPES.contains(this.outType))
-                typeToBuild = OutputType.BCF_STREAM;
-        }
-
-        OutputStream outStreamFromFile = this.outStream;
-        if (FILE_TYPES.contains(this.outType)) {
-            try {
-                outStreamFromFile = IOUtil.maybeBufferOutputStream(new FileOutputStream(outFile), bufferSize);
-            } catch (final FileNotFoundException e) {
-                throw new RuntimeIOException("File not found: " + outFile, e);
-            }
-
-            if (createMD5)
-                outStreamFromFile = new Md5CalculatingOutputStream(outStreamFromFile, new File(outFile.getAbsolutePath() + ".md5"));
-        }
-
-        switch (typeToBuild) {
-            case UNSPECIFIED:
-                throw new IllegalArgumentException("Must specify file or stream output type.");
-            case VCF:
-                if ((refDict == null) && (options.contains(Options.INDEX_ON_THE_FLY)))
-                    throw new IllegalArgumentException("A reference dictionary is required for creating Tribble indices on the fly");
-
-                writer = createVCFWriter(outFile, outStreamFromFile);
-                break;
-            case BLOCK_COMPRESSED_VCF:
-                if (refDict == null)
-                    idxCreator = new TabixIndexCreator(TabixFormat.VCF);
-                else
-                    idxCreator = new TabixIndexCreator(refDict, TabixFormat.VCF);
-
-                writer = createVCFWriter(outFile, new BlockCompressedOutputStream(outStreamFromFile, outFile));
-                break;
-            case BCF:
-                if ((refDict == null) && (options.contains(Options.INDEX_ON_THE_FLY)))
-                    throw new IllegalArgumentException("A reference dictionary is required for creating Tribble indices on the fly");
-
-                writer = createBCFWriter(outFile, outStreamFromFile);
-                break;
-            case VCF_STREAM:
-                if (options.contains(Options.INDEX_ON_THE_FLY))
-                    throw new IllegalArgumentException("VCF index creation not supported for stream output.");
-
-                writer = createVCFWriter(null, outStream);
-                break;
-            case BCF_STREAM:
-                if (options.contains(Options.INDEX_ON_THE_FLY))
-                    throw new IllegalArgumentException("BCF index creation not supported for stream output.");
-
-                writer = createBCFWriter(null, outStream);
-                break;
-        }
-
-        if (this.options.contains(Options.USE_ASYNC_IO))
-            writer = new AsyncVariantContextWriter(writer, AsyncVariantContextWriter.DEFAULT_QUEUE_SIZE);
-
-        return writer;
-     }
-
-    private void determineOutputTypeFromFilename() {
-        if (isBCF(this.outFile)) {
-            this.outType = OutputType.BCF;
-        } else if (isCompressedVCF(this.outFile)) {
-            this.outType = OutputType.BLOCK_COMPRESSED_VCF;
-        } else if (isVCF(this.outFile)) {
-            this.outType = OutputType.VCF;
-        }
-        else {
-            this.outType = OutputType.UNSPECIFIED;
-        }
-    }
-
-    private boolean isVCF(final File outFile) {
-        return outFile != null && outFile.getName().endsWith(".vcf");
-    }
-
-    private boolean isBCF(final File outFile) {
-        return outFile != null && outFile.getName().endsWith(".bcf");
-    }
-
-    private boolean isCompressedVCF(final File outFile) {
-        if (outFile == null)
-            return false;
-
-        return AbstractFeatureReader.hasBlockCompressedExtension(outFile);
-    }
-
-    private VariantContextWriter createVCFWriter(final File writerFile, final OutputStream writerStream) {
-        if (idxCreator == null) {
-            return new VCFWriter(writerFile, writerStream, refDict,
-                    options.contains(Options.INDEX_ON_THE_FLY),
-                    options.contains(Options.DO_NOT_WRITE_GENOTYPES),
-                    options.contains(Options.ALLOW_MISSING_FIELDS_IN_HEADER));
-        }
-        else {
-            return new VCFWriter(writerFile, writerStream, refDict, idxCreator,
-                    options.contains(Options.INDEX_ON_THE_FLY),
-                    options.contains(Options.DO_NOT_WRITE_GENOTYPES),
-                    options.contains(Options.ALLOW_MISSING_FIELDS_IN_HEADER));
-        }
-    }
-
-    private VariantContextWriter createBCFWriter(final File writerFile, final OutputStream writerStream) {
-        if (idxCreator == null) {
-            return new BCF2Writer(writerFile, writerStream, refDict,
-                    options.contains(Options.INDEX_ON_THE_FLY),
-                    options.contains(Options.DO_NOT_WRITE_GENOTYPES));
-        }
-        else {
-            return new BCF2Writer(writerFile, writerStream, refDict, idxCreator,
-                    options.contains(Options.INDEX_ON_THE_FLY),
-                    options.contains(Options.DO_NOT_WRITE_GENOTYPES));
-        }
-    }
-}
diff --git a/src/java/org/broadinstitute/variant/variantcontext/writer/VariantContextWriterFactory.java b/src/java/org/broadinstitute/variant/variantcontext/writer/VariantContextWriterFactory.java
deleted file mode 100644
index 85a7f22..0000000
--- a/src/java/org/broadinstitute/variant/variantcontext/writer/VariantContextWriterFactory.java
+++ /dev/null
@@ -1,274 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.variantcontext.writer;
-
-import net.sf.samtools.Defaults;
-import net.sf.samtools.SAMSequenceDictionary;
-import net.sf.samtools.util.BlockCompressedOutputStream;
-import net.sf.samtools.util.IOUtil;
-import org.broad.tribble.AbstractFeatureReader;
-import org.broad.tribble.index.IndexCreator;
-import org.broad.tribble.index.tabix.TabixFormat;
-import org.broad.tribble.index.tabix.TabixIndexCreator;
-
-import java.io.*;
-import java.util.EnumSet;
-
-/**
- * Factory methods to create VariantContext writers
- *
- * @author depristo
- * @since 5/12
- *
- * @deprecated Replaced by {@link org.broadinstitute.variant.variantcontext.writer.VariantContextWriterBuilder}
- */
- at Deprecated
-public class VariantContextWriterFactory {
-
-    public static final EnumSet<Options> DEFAULT_OPTIONS = EnumSet.of(Options.INDEX_ON_THE_FLY);
-    public static final EnumSet<Options> NO_OPTIONS = EnumSet.noneOf(Options.class);
-
-    static {
-        if (Defaults.USE_ASYNC_IO) {
-            DEFAULT_OPTIONS.add(Options.USE_ASYNC_IO);
-        }
-    }
-
-    private VariantContextWriterFactory() {}
-
-    public static VariantContextWriter create(final File location, final SAMSequenceDictionary refDict) {
-        return create(location, openOutputStream(location), refDict, DEFAULT_OPTIONS);
-    }
-
-    public static VariantContextWriter create(final File location, final SAMSequenceDictionary refDict, final EnumSet<Options> options) {
-        return create(location, openOutputStream(location), refDict, options);
-    }
-
-    /**
-     * @param output If buffered writing is desired, caller must provide some kind of buffered OutputStream.
-     */
-    public static VariantContextWriter create(final File location,
-                                              final OutputStream output,
-                                              final SAMSequenceDictionary refDict) {
-        return create(location, output, refDict, DEFAULT_OPTIONS);
-    }
-
-    /**
-     * @param output If buffered writing is desired, caller must provide some kind of buffered OutputStream.
-     */
-    public static VariantContextWriter create(final OutputStream output,
-                                              final SAMSequenceDictionary refDict,
-                                              final EnumSet<Options> options) {
-        return create(null, output, refDict, options);
-    }
-
-    /**
-     * @param location Note that this parameter is used to producing intelligent log messages, and for naming the index,
-     *                 but does not control where the file is written
-     * @param output This is where the BCF is actually written. If buffered writing is desired, caller must provide
-     *               some kind of buffered OutputStream.
-     */
-    public static VariantContextWriter createBcf2(final File location,
-                                                  final OutputStream output,
-                                                  final SAMSequenceDictionary refDict,
-                                                  final EnumSet<Options> options) {
-        return maybeWrapWithAsyncWriter(new BCF2Writer(location, output, refDict,
-                options.contains(Options.INDEX_ON_THE_FLY),
-                options.contains(Options.DO_NOT_WRITE_GENOTYPES)), options);
-    }
-
-    /**
-     * @param location Note that this parameter is used to producing intelligent log messages, and for naming the index,
-     *                 but does not control where the file is written
-     * @param output This is where the BCF is actually written.  If buffered writing is desired, caller must provide
-     *               some kind of buffered OutputStream.
-     */
-    public static VariantContextWriter createBcf2(final File location,
-                                                  final OutputStream output,
-                                                  final SAMSequenceDictionary refDict,
-                                                  final IndexCreator indexCreator,
-                                                  final EnumSet<Options> options) {
-        return maybeWrapWithAsyncWriter(new BCF2Writer(location, output, refDict, indexCreator,
-                options.contains(Options.INDEX_ON_THE_FLY),
-                options.contains(Options.DO_NOT_WRITE_GENOTYPES)), options);
-    }
-
-    /**
-     * @param location Note that this parameter is used to producing intelligent log messages, and for naming the index,
-     *                 but does not control where the file is written
-     * @param output This is where the VCF is actually written. If buffered writing is desired, caller must provide
-     *               some kind of buffered OutputStream.
-     */
-    public static VariantContextWriter createVcf(final File location,
-                                                 final OutputStream output,
-                                                 final SAMSequenceDictionary refDict,
-                                                 final EnumSet<Options> options) {
-        return maybeWrapWithAsyncWriter(new VCFWriter(location, output, refDict,
-                options.contains(Options.INDEX_ON_THE_FLY),
-                options.contains(Options.DO_NOT_WRITE_GENOTYPES),
-                options.contains(Options.ALLOW_MISSING_FIELDS_IN_HEADER)), options);
-    }
-
-    /**
-     * @param location Note that this parameter is used to producing intelligent log messages, and for naming the index,
-     *                 but does not control where the file is written
-     * @param output This is where the VCF is actually written.  If buffered writing is desired, caller must provide
-     *               some kind of buffered OutputStream.
-     */
-    public static VariantContextWriter createVcf(final File location,
-                                                 final OutputStream output,
-                                                 final SAMSequenceDictionary refDict,
-                                                 final IndexCreator indexCreator,
-                                                 final EnumSet<Options> options) {
-        return maybeWrapWithAsyncWriter(new VCFWriter(location, output, refDict, indexCreator,
-                options.contains(Options.INDEX_ON_THE_FLY),
-                options.contains(Options.DO_NOT_WRITE_GENOTYPES),
-                options.contains(Options.ALLOW_MISSING_FIELDS_IN_HEADER)), options);
-    }
-
-    /**
-     * @param location Note that this parameter is used to producing intelligent log messages,
-     *                 but does not control where the file is written
-     * @param output This is where the VCF is actually written.  If buffered writing is desired, caller must provide
-     *               some kind of buffered OutputStream.
-     */
-    public static VariantContextWriter createBlockCompressedVcf(final File location,
-                                                                final OutputStream output,
-                                                                final SAMSequenceDictionary refDict,
-                                                                final EnumSet<Options> options) {
-        final TabixIndexCreator indexCreator;
-        if (options.contains(Options.INDEX_ON_THE_FLY)) {
-            indexCreator = new TabixIndexCreator(refDict, TabixFormat.VCF);
-        } else {
-            indexCreator = null;
-        }
-        return maybeWrapWithAsyncWriter(new VCFWriter(location, BlockCompressedOutputStream.maybeBgzfWrapOutputStream(location, output),
-                refDict, indexCreator,
-                options.contains(Options.INDEX_ON_THE_FLY),
-                options.contains(Options.DO_NOT_WRITE_GENOTYPES),
-                options.contains(Options.ALLOW_MISSING_FIELDS_IN_HEADER)), options);
-    }
-
-    /**
-     * @param location Note that this parameter is used to producing intelligent log messages,
-     *                 but does not control where the file is written
-     * @param output This is where the VCF is actually written. If buffered writing is desired, caller must provide
-     *               some kind of buffered OutputStream.
-     */
-    public static VariantContextWriter createBlockCompressedVcf(final File location,
-                                                                final OutputStream output,
-                                                                final SAMSequenceDictionary refDict,
-                                                                final IndexCreator indexCreator,
-                                                                final EnumSet<Options> options) {
-        return maybeWrapWithAsyncWriter(new VCFWriter(location, BlockCompressedOutputStream.maybeBgzfWrapOutputStream(location, output),
-                refDict, indexCreator,
-                options.contains(Options.INDEX_ON_THE_FLY),
-                options.contains(Options.DO_NOT_WRITE_GENOTYPES),
-                options.contains(Options.ALLOW_MISSING_FIELDS_IN_HEADER)), options);
-    }
-
-    public static VariantContextWriter create(final File location,
-        final OutputStream output,
-        final SAMSequenceDictionary refDict,
-        final EnumSet<Options> options) {
-
-        if (isBCFOutput(location, options)) {
-            return createBcf2(location, output, refDict, options);
-        } else if (isCompressedVcf(location)) {
-            return createBlockCompressedVcf(location, output, refDict, options);
-        } else {
-            return createVcf(location, output, refDict, options);
-        }
-    }
-
-    /**
-     * @param output If buffered writing is desired, caller must provide some kind of buffered OutputStream.
-     */
-    public static VariantContextWriter create(final File location,
-                                              final OutputStream output,
-                                              final SAMSequenceDictionary refDict,
-                                              final IndexCreator indexCreator,
-                                              final EnumSet<Options> options) {
-
-        if (isBCFOutput(location, options)) {
-            return createBcf2(location, output, refDict, indexCreator, options);
-        } else if (isCompressedVcf(location)) {
-            return createBlockCompressedVcf(location, output, refDict, indexCreator, options);
-        } else {
-            return createVcf(location, output, refDict, indexCreator, options);
-        }
-    }
-
-    private static VariantContextWriter maybeWrapWithAsyncWriter(final VariantContextWriter writer,
-                                                                 final EnumSet<Options> options) {
-        if (options.contains(Options.USE_ASYNC_IO)) {
-            return new AsyncVariantContextWriter(writer, AsyncVariantContextWriter.DEFAULT_QUEUE_SIZE);
-        }
-        else return writer;
-    }
-
-    /**
-     * Should we output a BCF file based solely on the name of the file at location?
-     *
-     * @param location
-     * @return
-     */
-    public static boolean isBCFOutput(final File location) {
-        return isBCFOutput(location, EnumSet.noneOf(Options.class));
-    }
-
-    public static boolean isBCFOutput(final File location, final EnumSet<Options> options) {
-        return options.contains(Options.FORCE_BCF) || (location != null && location.getName().contains(".bcf"));
-    }
-
-    public static boolean isCompressedVcf(final File location) {
-        if (location == null)
-            return false;
-
-        return AbstractFeatureReader.hasBlockCompressedExtension(location);
-    }
-
-    public static VariantContextWriter sortOnTheFly(final VariantContextWriter innerWriter, final int maxCachingStartDistance) {
-        return sortOnTheFly(innerWriter, maxCachingStartDistance, false);
-    }
-
-    public static VariantContextWriter sortOnTheFly(final VariantContextWriter innerWriter, final int maxCachingStartDistance, final boolean takeOwnershipOfInner) {
-        return new SortingVariantContextWriter(innerWriter, maxCachingStartDistance, takeOwnershipOfInner);
-    }
-
-    /**
-     * Returns a output stream writing to location, or throws an exception if this fails
-     * @param location
-     * @return
-     */
-    protected static OutputStream openOutputStream(final File location) {
-        try {
-            return IOUtil.maybeBufferOutputStream(new FileOutputStream(location));
-        } catch (final FileNotFoundException e) {
-            throw new RuntimeException(location + ": Unable to create VCF writer", e);
-        }
-    }
-}
diff --git a/src/java/org/broadinstitute/variant/vcf/AbstractVCFCodec.java b/src/java/org/broadinstitute/variant/vcf/AbstractVCFCodec.java
deleted file mode 100644
index 32e9a8f..0000000
--- a/src/java/org/broadinstitute/variant/vcf/AbstractVCFCodec.java
+++ /dev/null
@@ -1,781 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.vcf;
-
-import net.sf.samtools.util.BlockCompressedInputStream;
-import org.broad.tribble.AsciiFeatureCodec;
-import org.broad.tribble.Feature;
-import org.broad.tribble.NameAwareCodec;
-import org.broad.tribble.TribbleException;
-import org.broad.tribble.util.ParsingUtils;
-import org.broadinstitute.variant.utils.GeneralUtils;
-import org.broadinstitute.variant.variantcontext.*;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.*;
-import java.util.zip.GZIPInputStream;
-
-
-public abstract class AbstractVCFCodec extends AsciiFeatureCodec<VariantContext> implements NameAwareCodec {
-    public final static int MAX_ALLELE_SIZE_BEFORE_WARNING = (int)Math.pow(2, 20);
-
-    protected final static int NUM_STANDARD_FIELDS = 8;  // INFO is the 8th column
-
-    // we have to store the list of strings that make up the header until they're needed
-    protected VCFHeader header = null;
-    protected VCFHeaderVersion version = null;
-
-    // a mapping of the allele
-    protected Map<String, List<Allele>> alleleMap = new HashMap<String, List<Allele>>(3);
-
-    // for ParsingUtils.split
-    protected String[] GTValueArray = new String[100];
-    protected String[] genotypeKeyArray = new String[100];
-    protected String[] infoFieldArray = new String[1000];
-    protected String[] infoValueArray = new String[1000];
-
-    // for performance testing purposes
-    public static boolean validate = true;
-
-    // a key optimization -- we need a per thread string parts array, so we don't allocate a big array over and over
-    // todo: make this thread safe?
-    protected String[] parts = null;
-    protected String[] genotypeParts = null;
-    protected final String[] locParts = new String[6];
-
-    // for performance we cache the hashmap of filter encodings for quick lookup
-    protected HashMap<String,List<String>> filterHash = new HashMap<String,List<String>>();
-
-    // we store a name to give to each of the variant contexts we emit
-    protected String name = "Unknown";
-
-    protected int lineNo = 0;
-
-    protected Map<String, String> stringCache = new HashMap<String, String>();
-
-    protected boolean warnedAboutNoEqualsForNonFlag = false;
-
-    /**
-     * If true, then we'll magically fix up VCF headers on the fly when we read them in
-     */
-    protected boolean doOnTheFlyModifications = true;
-
-    /**
-     * If non-null, we will replace the sample name read from the VCF header with this sample name. This feature works
-     * only for single-sample VCFs.
-     */
-    protected String remappedSampleName = null;
-
-    protected AbstractVCFCodec() {
-        super(VariantContext.class);
-    }
-
-    /**
-     * Creates a LazyParser for a LazyGenotypesContext to use to decode
-     * our genotypes only when necessary.  We do this instead of eagarly
-     * decoding the genotypes just to turn around and reencode in the frequent
-     * case where we don't actually want to manipulate the genotypes
-     */
-    class LazyVCFGenotypesParser implements LazyGenotypesContext.LazyParser {
-        final List<Allele> alleles;
-        final String contig;
-        final int start;
-
-        LazyVCFGenotypesParser(final List<Allele> alleles, final String contig, final int start) {
-            this.alleles = alleles;
-            this.contig = contig;
-            this.start = start;
-        }
-
-        @Override
-        public LazyGenotypesContext.LazyData parse(final Object data) {
-            //System.out.printf("Loading genotypes... %s:%d%n", contig, start);
-            return createGenotypeMap((String) data, alleles, contig, start);
-        }
-    }
-
-    /**
-     * parse the filter string, first checking to see if we already have parsed it in a previous attempt
-     * @param filterString the string to parse
-     * @return a set of the filters applied
-     */
-    protected abstract List<String> parseFilters(String filterString);
-
-    /**
-     * create a VCF header from a set of header record lines
-     *
-     * @param headerStrings a list of strings that represent all the ## and # entries
-     * @return a VCFHeader object
-     */
-    protected VCFHeader parseHeaderFromLines( final List<String> headerStrings, final VCFHeaderVersion version ) {
-        this.version = version;
-
-        Set<VCFHeaderLine> metaData = new LinkedHashSet<VCFHeaderLine>();
-        Set<String> sampleNames = new LinkedHashSet<String>();
-        int contigCounter = 0;
-        // iterate over all the passed in strings
-        for ( String str : headerStrings ) {
-            if ( !str.startsWith(VCFHeader.METADATA_INDICATOR) ) {
-                String[] strings = str.substring(1).split(VCFConstants.FIELD_SEPARATOR);
-                if ( strings.length < VCFHeader.HEADER_FIELDS.values().length )
-                    throw new TribbleException.InvalidHeader("there are not enough columns present in the header line: " + str);
-
-                int arrayIndex = 0;
-                for (VCFHeader.HEADER_FIELDS field : VCFHeader.HEADER_FIELDS.values()) {
-                    try {
-                        if (field != VCFHeader.HEADER_FIELDS.valueOf(strings[arrayIndex]))
-                            throw new TribbleException.InvalidHeader("we were expecting column name '" + field + "' but we saw '" + strings[arrayIndex] + "'");
-                    } catch (IllegalArgumentException e) {
-                        throw new TribbleException.InvalidHeader("unknown column name '" + strings[arrayIndex] + "'; it does not match a legal column header name.");
-                    }
-                    arrayIndex++;
-                }
-
-                boolean sawFormatTag = false;
-                if ( arrayIndex < strings.length ) {
-                    if ( !strings[arrayIndex].equals("FORMAT") )
-                        throw new TribbleException.InvalidHeader("we were expecting column name 'FORMAT' but we saw '" + strings[arrayIndex] + "'");
-                    sawFormatTag = true;
-                    arrayIndex++;
-                }
-
-                while ( arrayIndex < strings.length )
-                    sampleNames.add(strings[arrayIndex++]);
-
-                if ( sawFormatTag && sampleNames.size() == 0 )
-                    throw new TribbleException.InvalidHeader("The FORMAT field was provided but there is no genotype/sample data");
-
-                // If we're performing sample name remapping and there is exactly one sample specified in the header, replace
-                // it with the remappedSampleName. Throw an error if there are 0 or multiple samples and remapping was requested
-                // for this file.
-                if ( remappedSampleName != null ) {
-                    // We currently only support on-the-fly sample name remapping for single-sample VCFs
-                    if ( sampleNames.isEmpty() || sampleNames.size() > 1 ) {
-                        throw new TribbleException(String.format("Cannot remap sample name to %s because %s samples are specified in the VCF header, and on-the-fly sample name remapping is only supported for single-sample VCFs",
-                                                                 remappedSampleName, sampleNames.isEmpty() ? "no" : "multiple"));
-                    }
-
-                    sampleNames.clear();
-                    sampleNames.add(remappedSampleName);
-                }
-
-            } else {
-                if ( str.startsWith(VCFConstants.INFO_HEADER_START) ) {
-                    final VCFInfoHeaderLine info = new VCFInfoHeaderLine(str.substring(7), version);
-                    metaData.add(info);
-                } else if ( str.startsWith(VCFConstants.FILTER_HEADER_START) ) {
-                    final VCFFilterHeaderLine filter = new VCFFilterHeaderLine(str.substring(9), version);
-                    metaData.add(filter);
-                } else if ( str.startsWith(VCFConstants.FORMAT_HEADER_START) ) {
-                    final VCFFormatHeaderLine format = new VCFFormatHeaderLine(str.substring(9), version);
-                    metaData.add(format);
-                } else if ( str.startsWith(VCFConstants.CONTIG_HEADER_START) ) {
-                    final VCFContigHeaderLine contig = new VCFContigHeaderLine(str.substring(9), version, VCFConstants.CONTIG_HEADER_START.substring(2), contigCounter++);
-                    metaData.add(contig);
-                } else if ( str.startsWith(VCFConstants.ALT_HEADER_START) ) {
-                    final VCFSimpleHeaderLine alt = new VCFSimpleHeaderLine(str.substring(6), version, VCFConstants.ALT_HEADER_START.substring(2), Arrays.asList("ID", "Description"));
-                    metaData.add(alt);
-                } else {
-                    int equals = str.indexOf("=");
-                    if ( equals != -1 )
-                        metaData.add(new VCFHeaderLine(str.substring(2, equals), str.substring(equals+1)));
-                }
-            }
-        }
-
-        this.header = new VCFHeader(metaData, sampleNames);
-        if ( doOnTheFlyModifications )
-            this.header = VCFStandardHeaderLines.repairStandardHeaderLines(this.header);
-        return this.header;
-    }
-
-	/**
-	 * Explicitly set the VCFHeader on this codec. This will overwrite the header read from the file
-	 * and the version state stored in this instance; conversely, reading the header from a file will
-	 * overwrite whatever is set here. The returned header may not be identical to the header argument
-	 * since the header lines may be "repaired" (i.e., rewritten) if doOnTheFlyModifications is set.
-	 */
-	public VCFHeader setVCFHeader(final VCFHeader header, final VCFHeaderVersion version) {
-		this.version = version;
-
-		if (this.doOnTheFlyModifications) this.header = VCFStandardHeaderLines.repairStandardHeaderLines(header);
-		else this.header = header;
-
-		return this.header;
-	}
-
-    /**
-     * the fast decode function
-     * @param line the line of text for the record
-     * @return a feature, (not guaranteed complete) that has the correct start and stop
-     */
-    public Feature decodeLoc(String line) {
-        return decodeLine(line, false);
-    }
-
-    /**
-     * decode the line into a feature (VariantContext)
-     * @param line the line
-     * @return a VariantContext
-     */
-    public VariantContext decode(String line) {
-        return decodeLine(line, true);
-    }
-
-    private VariantContext decodeLine(final String line, final boolean includeGenotypes) {
-        // the same line reader is not used for parsing the header and parsing lines, if we see a #, we've seen a header line
-        if (line.startsWith(VCFHeader.HEADER_INDICATOR)) return null;
-
-        // our header cannot be null, we need the genotype sample names and counts
-        if (header == null) throw new TribbleException("VCF Header cannot be null when decoding a record");
-
-        if (parts == null)
-            parts = new String[Math.min(header.getColumnCount(), NUM_STANDARD_FIELDS+1)];
-
-        final int nParts = ParsingUtils.split(line, parts, VCFConstants.FIELD_SEPARATOR_CHAR, true);
-
-        // if we have don't have a header, or we have a header with no genotyping data check that we
-        // have eight columns.  Otherwise check that we have nine (normal columns + genotyping data)
-        if (( (header == null || !header.hasGenotypingData()) && nParts != NUM_STANDARD_FIELDS) ||
-                (header != null && header.hasGenotypingData() && nParts != (NUM_STANDARD_FIELDS + 1)) )
-            throw new TribbleException("Line " + lineNo + ": there aren't enough columns for line " + line + " (we expected " + (header == null ? NUM_STANDARD_FIELDS : NUM_STANDARD_FIELDS + 1) +
-                    " tokens, and saw " + nParts + " )");
-
-        return parseVCFLine(parts, includeGenotypes);
-    }
-
-    /**
-     * parse out the VCF line
-     *
-     * @param parts the parts split up
-     * @return a variant context object
-     */
-    private VariantContext parseVCFLine(final String[] parts, final boolean includeGenotypes) {
-        VariantContextBuilder builder = new VariantContextBuilder();
-        builder.source(getName());
-
-        // increment the line count
-        // TODO -- because of the way the engine utilizes Tribble, we can parse a line multiple times (especially when
-        // TODO --   the first record is far along the contig) and the line counter can get out of sync
-        lineNo++;
-
-        // parse out the required fields
-        final String chr = getCachedString(parts[0]);
-        builder.chr(chr);
-        int pos = -1;
-        try {
-            pos = Integer.valueOf(parts[1]);
-        } catch (NumberFormatException e) {
-            generateException(parts[1] + " is not a valid start position in the VCF format");
-        }
-        builder.start(pos);
-
-        if ( parts[2].length() == 0 )
-            generateException("The VCF specification requires a valid ID field");
-        else if ( parts[2].equals(VCFConstants.EMPTY_ID_FIELD) )
-            builder.noID();
-        else
-            builder.id(parts[2]);
-
-        final String ref = getCachedString(parts[3].toUpperCase());
-        final String alts = getCachedString(parts[4].toUpperCase());
-        builder.log10PError(parseQual(parts[5]));
-
-        final List<String> filters = parseFilters(getCachedString(parts[6]));
-        if ( filters != null ) builder.filters(new HashSet<String>(filters));
-        final Map<String, Object> attrs = parseInfo(parts[7]);
-        builder.attributes(attrs);
-
-        if ( attrs.containsKey(VCFConstants.END_KEY) ) {
-            // update stop with the end key if provided
-            try {
-                builder.stop(Integer.valueOf(attrs.get(VCFConstants.END_KEY).toString()));
-            } catch (Exception e) {
-                generateException("the END value in the INFO field is not valid");
-            }
-        } else {
-            builder.stop(pos + ref.length() - 1);
-        }
-
-        // get our alleles, filters, and setup an attribute map
-        final List<Allele> alleles = parseAlleles(ref, alts, lineNo);
-        builder.alleles(alleles);
-
-        // do we have genotyping data
-        if (parts.length > NUM_STANDARD_FIELDS && includeGenotypes) {
-            final LazyGenotypesContext.LazyParser lazyParser = new LazyVCFGenotypesParser(alleles, chr, pos);
-            final int nGenotypes = header.getNGenotypeSamples();
-            LazyGenotypesContext lazy = new LazyGenotypesContext(lazyParser, parts[8], nGenotypes);
-
-            // did we resort the sample names?  If so, we need to load the genotype data
-            if ( !header.samplesWereAlreadySorted() )
-                lazy.decode();
-
-            builder.genotypesNoValidation(lazy);
-        }
-
-        VariantContext vc = null;
-        try {
-            vc = builder.make();
-        } catch (Exception e) {
-            generateException(e.getMessage());
-        }
-
-        return vc;
-    }
-
-    /**
-     * get the name of this codec
-     * @return our set name
-     */
-    public String getName() {
-        return name;
-    }
-
-    /**
-     * set the name of this codec
-     * @param name new name
-     */
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    /**
-     * Return a cached copy of the supplied string.
-     *
-     * @param str string
-     * @return interned string
-     */
-    protected String getCachedString(String str) {
-        String internedString = stringCache.get(str);
-        if ( internedString == null ) {
-            internedString = new String(str);
-            stringCache.put(internedString, internedString);
-        }
-        return internedString;
-    }
-
-    /**
-     * parse out the info fields
-     * @param infoField the fields
-     * @return a mapping of keys to objects
-     */
-    private Map<String, Object> parseInfo(String infoField) {
-        Map<String, Object> attributes = new HashMap<String, Object>();
-
-        if ( infoField.length() == 0 )
-            generateException("The VCF specification requires a valid (non-zero length) info field");
-
-        if ( !infoField.equals(VCFConstants.EMPTY_INFO_FIELD) ) {
-            if ( infoField.indexOf("\t") != -1 || infoField.indexOf(" ") != -1 )
-                generateException("The VCF specification does not allow for whitespace in the INFO field. Offending field value was \"" + infoField + "\"");
-
-            int infoFieldSplitSize = ParsingUtils.split(infoField, infoFieldArray, VCFConstants.INFO_FIELD_SEPARATOR_CHAR, false);
-            for (int i = 0; i < infoFieldSplitSize; i++) {
-                String key;
-                Object value;
-
-                int eqI = infoFieldArray[i].indexOf("=");
-                if ( eqI != -1 ) {
-                    key = infoFieldArray[i].substring(0, eqI);
-                    String valueString = infoFieldArray[i].substring(eqI+1);
-
-                    // split on the INFO field separator
-                    int infoValueSplitSize = ParsingUtils.split(valueString, infoValueArray, VCFConstants.INFO_FIELD_ARRAY_SEPARATOR_CHAR, false);
-                    if ( infoValueSplitSize == 1 ) {
-                        value = infoValueArray[0];
-                        final VCFInfoHeaderLine headerLine = header.getInfoHeaderLine(key);
-                        if ( headerLine != null && headerLine.getType() == VCFHeaderLineType.Flag && value.equals("0") ) {
-                            // deal with the case where a flag field has =0, such as DB=0, by skipping the add
-                            continue;
-                        }
-                    } else {
-                        ArrayList<String> valueList = new ArrayList<String>(infoValueSplitSize);
-                        for ( int j = 0; j < infoValueSplitSize; j++ )
-                            valueList.add(infoValueArray[j]);
-                        value = valueList;
-                    }
-                } else {
-                    key = infoFieldArray[i];
-                    final VCFInfoHeaderLine headerLine = header.getInfoHeaderLine(key);
-                    if ( headerLine != null && headerLine.getType() != VCFHeaderLineType.Flag ) {
-                        if ( GeneralUtils.DEBUG_MODE_ENABLED && ! warnedAboutNoEqualsForNonFlag ) {
-                            System.err.println("Found info key " + key + " without a = value, but the header says the field is of type "
-                                               + headerLine.getType() + " but this construct is only value for FLAG type fields");
-                            warnedAboutNoEqualsForNonFlag = true;
-                        }
-
-                        value = VCFConstants.MISSING_VALUE_v4;
-                    } else {
-                        value = true;
-                    }
-                }
-
-                // this line ensures that key/value pairs that look like key=; are parsed correctly as MISSING
-                if ( "".equals(value) ) value = VCFConstants.MISSING_VALUE_v4;
-
-                attributes.put(key, value);
-            }
-        }
-
-        return attributes;
-    }
-
-    /**
-     * create a an allele from an index and an array of alleles
-     * @param index the index
-     * @param alleles the alleles
-     * @return an Allele
-     */
-    protected static Allele oneAllele(String index, List<Allele> alleles) {
-        if ( index.equals(VCFConstants.EMPTY_ALLELE) )
-            return Allele.NO_CALL;
-        final int i;
-        try {
-            i = Integer.valueOf(index);
-        } catch ( NumberFormatException e ) {
-            throw new TribbleException.InternalCodecException("The following invalid GT allele index was encountered in the file: " + index);
-        }
-        if ( i >= alleles.size() )
-            throw new TribbleException.InternalCodecException("The allele with index " + index + " is not defined in the REF/ALT columns in the record");
-        return alleles.get(i);
-    }
-
-
-    /**
-     * parse genotype alleles from the genotype string
-     * @param GT         GT string
-     * @param alleles    list of possible alleles
-     * @param cache      cache of alleles for GT
-     * @return the allele list for the GT string
-     */
-    protected static List<Allele> parseGenotypeAlleles(String GT, List<Allele> alleles, Map<String, List<Allele>> cache) {
-        // cache results [since they are immutable] and return a single object for each genotype
-        List<Allele> GTAlleles = cache.get(GT);
-
-        if ( GTAlleles == null ) {
-            StringTokenizer st = new StringTokenizer(GT, VCFConstants.PHASING_TOKENS);
-            GTAlleles = new ArrayList<Allele>(st.countTokens());
-            while ( st.hasMoreTokens() ) {
-                String genotype = st.nextToken();
-                GTAlleles.add(oneAllele(genotype, alleles));
-            }
-            cache.put(GT, GTAlleles);
-        }
-
-        return GTAlleles;
-    }
-
-    /**
-     * parse out the qual value
-     * @param qualString the quality string
-     * @return return a double
-     */
-    protected static Double parseQual(String qualString) {
-        // if we're the VCF 4 missing char, return immediately
-        if ( qualString.equals(VCFConstants.MISSING_VALUE_v4))
-            return VariantContext.NO_LOG10_PERROR;
-
-        Double val = Double.valueOf(qualString);
-
-        // check to see if they encoded the missing qual score in VCF 3 style, with either the -1 or -1.0.  check for val < 0 to save some CPU cycles
-        if ((val < 0) && (Math.abs(val - VCFConstants.MISSING_QUALITY_v3_DOUBLE) < VCFConstants.VCF_ENCODING_EPSILON))
-            return VariantContext.NO_LOG10_PERROR;
-
-        // scale and return the value
-        return val / -10.0;
-    }
-
-    /**
-     * parse out the alleles
-     * @param ref the reference base
-     * @param alts a string of alternates to break into alleles
-     * @param lineNo  the line number for this record
-     * @return a list of alleles, and a pair of the shortest and longest sequence
-     */
-    protected static List<Allele> parseAlleles(String ref, String alts, int lineNo) {
-        List<Allele> alleles = new ArrayList<Allele>(2); // we are almost always biallelic
-        // ref
-        checkAllele(ref, true, lineNo);
-        Allele refAllele = Allele.create(ref, true);
-        alleles.add(refAllele);
-
-        if ( alts.indexOf(",") == -1 ) // only 1 alternatives, don't call string split
-            parseSingleAltAllele(alleles, alts, lineNo);
-        else
-            for ( String alt : alts.split(",") )
-                parseSingleAltAllele(alleles, alt, lineNo);
-
-        return alleles;
-    }
-
-    /**
-     * check to make sure the allele is an acceptable allele
-     * @param allele the allele to check
-     * @param isRef are we the reference allele?
-     * @param lineNo  the line number for this record
-     */
-    private static void checkAllele(String allele, boolean isRef, int lineNo) {
-        if ( allele == null || allele.length() == 0 )
-            generateException(generateExceptionTextForBadAlleleBases(""), lineNo);
-
-        if ( GeneralUtils.DEBUG_MODE_ENABLED && MAX_ALLELE_SIZE_BEFORE_WARNING != -1 && allele.length() > MAX_ALLELE_SIZE_BEFORE_WARNING ) {
-            System.err.println(String.format("Allele detected with length %d exceeding max size %d at approximately line %d, likely resulting in degraded VCF processing performance", allele.length(), MAX_ALLELE_SIZE_BEFORE_WARNING, lineNo));
-        }
-
-        if ( isSymbolicAllele(allele) ) {
-            if ( isRef ) {
-                generateException("Symbolic alleles not allowed as reference allele: " + allele, lineNo);
-            }
-        } else {
-            // check for VCF3 insertions or deletions
-            if ( (allele.charAt(0) == VCFConstants.DELETION_ALLELE_v3) || (allele.charAt(0) == VCFConstants.INSERTION_ALLELE_v3) )
-                generateException("Insertions/Deletions are not supported when reading 3.x VCF's. Please" +
-                        " convert your file to VCF4 using VCFTools, available at http://vcftools.sourceforge.net/index.html", lineNo);
-
-            if (!Allele.acceptableAlleleBases(allele))
-                generateException(generateExceptionTextForBadAlleleBases(allele), lineNo);
-
-            if ( isRef && allele.equals(VCFConstants.EMPTY_ALLELE) )
-                generateException("The reference allele cannot be missing", lineNo);
-        }
-    }
-
-    /**
-     * Generates the exception text for the case where the allele string contains unacceptable bases.
-     *
-     * @param allele   non-null allele string
-     * @return non-null exception text string
-     */
-    private static String generateExceptionTextForBadAlleleBases(final String allele) {
-        if ( allele.length() == 0 )
-            return "empty alleles are not permitted in VCF records";
-        if ( allele.contains("[") || allele.contains("]") || allele.contains(":") || allele.contains(".") )
-            return "VCF support for complex rearrangements with breakends has not yet been implemented";
-        return "unparsable vcf record with allele " + allele;
-    }
-
-    /**
-     * return true if this is a symbolic allele (e.g. <SOMETAG>) or
-     * structural variation breakend (with [ or ]), otherwise false
-     * @param allele the allele to check
-     * @return true if the allele is a symbolic allele, otherwise false
-     */
-    private static boolean isSymbolicAllele(String allele) {
-        return (allele != null && allele.length() > 2 &&
-                ((allele.startsWith("<") && allele.endsWith(">")) ||
-                        (allele.contains("[") || allele.contains("]"))));
-    }
-
-    /**
-     * parse a single allele, given the allele list
-     * @param alleles the alleles available
-     * @param alt the allele to parse
-     * @param lineNo  the line number for this record
-     */
-    private static void parseSingleAltAllele(List<Allele> alleles, String alt, int lineNo) {
-        checkAllele(alt, false, lineNo);
-
-        Allele allele = Allele.create(alt, false);
-        if ( ! allele.isNoCall() )
-            alleles.add(allele);
-    }
-
-    public final static boolean canDecodeFile(final String potentialInput, final String MAGIC_HEADER_LINE) {
-        try {
-            return isVCFStream(new FileInputStream(potentialInput), MAGIC_HEADER_LINE) ||
-                    isVCFStream(new GZIPInputStream(new FileInputStream(potentialInput)), MAGIC_HEADER_LINE) ||
-                    isVCFStream(new BlockCompressedInputStream(new FileInputStream(potentialInput)), MAGIC_HEADER_LINE);
-        } catch ( FileNotFoundException e ) {
-            return false;
-        } catch ( IOException e ) {
-            return false;
-        }
-    }
-
-    private final static boolean isVCFStream(final InputStream stream, final String MAGIC_HEADER_LINE) {
-        try {
-            byte[] buff = new byte[MAGIC_HEADER_LINE.length()];
-            int nread = stream.read(buff, 0, MAGIC_HEADER_LINE.length());
-            boolean eq = Arrays.equals(buff, MAGIC_HEADER_LINE.getBytes());
-            return eq;
-//            String firstLine = new String(buff);
-//            return firstLine.startsWith(MAGIC_HEADER_LINE);
-        } catch ( IOException e ) {
-            return false;
-        } catch ( RuntimeException e ) {
-            return false;
-        } finally {
-            try { stream.close(); } catch ( IOException e ) {}
-        }
-    }
-
-
-    /**
-     * create a genotype map
-     *
-     * @param str the string
-     * @param alleles the list of alleles
-     * @return a mapping of sample name to genotype object
-     */
-    public LazyGenotypesContext.LazyData createGenotypeMap(final String str,
-                                                              final List<Allele> alleles,
-                                                              final String chr,
-                                                              final int pos) {
-        if (genotypeParts == null)
-            genotypeParts = new String[header.getColumnCount() - NUM_STANDARD_FIELDS];
-
-        int nParts = ParsingUtils.split(str, genotypeParts, VCFConstants.FIELD_SEPARATOR_CHAR);
-        if ( nParts != genotypeParts.length )
-            generateException("there are " + (nParts-1) + " genotypes while the header requires that " + (genotypeParts.length-1) + " genotypes be present for all records at " + chr + ":" + pos, lineNo);
-
-        ArrayList<Genotype> genotypes = new ArrayList<Genotype>(nParts);
-
-        // get the format keys
-        int nGTKeys = ParsingUtils.split(genotypeParts[0], genotypeKeyArray, VCFConstants.GENOTYPE_FIELD_SEPARATOR_CHAR);
-
-        // cycle through the sample names
-        Iterator<String> sampleNameIterator = header.getGenotypeSamples().iterator();
-
-        // clear out our allele mapping
-        alleleMap.clear();
-
-        // cycle through the genotype strings
-        for (int genotypeOffset = 1; genotypeOffset < nParts; genotypeOffset++) {
-            int GTValueSplitSize = ParsingUtils.split(genotypeParts[genotypeOffset], GTValueArray, VCFConstants.GENOTYPE_FIELD_SEPARATOR_CHAR);
-
-            final String sampleName = sampleNameIterator.next();
-            final GenotypeBuilder gb = new GenotypeBuilder(sampleName);
-
-            // check to see if the value list is longer than the key list, which is a problem
-            if (nGTKeys < GTValueSplitSize)
-                generateException("There are too many keys for the sample " + sampleName + ", keys = " + parts[8] + ", values = " + parts[genotypeOffset]);
-
-            int genotypeAlleleLocation = -1;
-            if (nGTKeys >= 1) {
-                gb.maxAttributes(nGTKeys - 1);
-
-                for (int i = 0; i < nGTKeys; i++) {
-                    final String gtKey = genotypeKeyArray[i];
-                    boolean missing = i >= GTValueSplitSize;
-
-                    // todo -- all of these on the fly parsing of the missing value should be static constants
-                    if (gtKey.equals(VCFConstants.GENOTYPE_KEY)) {
-                        genotypeAlleleLocation = i;
-                    } else if ( missing ) {
-                        // if its truly missing (there no provided value) skip adding it to the attributes
-                    } else if (gtKey.equals(VCFConstants.GENOTYPE_FILTER_KEY)) {
-                        final List<String> filters = parseFilters(getCachedString(GTValueArray[i]));
-                        if ( filters != null ) gb.filters(filters);
-                    } else if ( GTValueArray[i].equals(VCFConstants.MISSING_VALUE_v4) ) {
-                        // don't add missing values to the map
-                    } else {
-                        if (gtKey.equals(VCFConstants.GENOTYPE_QUALITY_KEY)) {
-                            if ( GTValueArray[i].equals(VCFConstants.MISSING_GENOTYPE_QUALITY_v3) )
-                                gb.noGQ();
-                            else
-                                gb.GQ((int)Math.round(Double.valueOf(GTValueArray[i])));
-                        } else if (gtKey.equals(VCFConstants.GENOTYPE_ALLELE_DEPTHS)) {
-                            gb.AD(decodeInts(GTValueArray[i]));
-                        } else if (gtKey.equals(VCFConstants.GENOTYPE_PL_KEY)) {
-                            gb.PL(decodeInts(GTValueArray[i]));
-                        } else if (gtKey.equals(VCFConstants.GENOTYPE_LIKELIHOODS_KEY)) {
-                            gb.PL(GenotypeLikelihoods.fromGLField(GTValueArray[i]).getAsPLs());
-                        } else if (gtKey.equals(VCFConstants.DEPTH_KEY)) {
-                            gb.DP(Integer.valueOf(GTValueArray[i]));
-                        } else {
-                            gb.attribute(gtKey, GTValueArray[i]);
-                        }
-                    }
-                }
-            }
-
-            // check to make sure we found a genotype field if our version is less than 4.1 file
-            if ( ! version.isAtLeastAsRecentAs(VCFHeaderVersion.VCF4_1) && genotypeAlleleLocation == -1 )
-                generateException("Unable to find the GT field for the record; the GT field is required before VCF4.1");
-            if ( genotypeAlleleLocation > 0 )
-                generateException("Saw GT field at position " + genotypeAlleleLocation + ", but it must be at the first position for genotypes when present");
-
-            final List<Allele> GTalleles = (genotypeAlleleLocation == -1 ? new ArrayList<Allele>(0) : parseGenotypeAlleles(GTValueArray[genotypeAlleleLocation], alleles, alleleMap));
-            gb.alleles(GTalleles);
-            gb.phased(genotypeAlleleLocation != -1 && GTValueArray[genotypeAlleleLocation].indexOf(VCFConstants.PHASED) != -1);
-
-            // add it to the list
-            try {
-                genotypes.add(gb.make());
-            } catch (TribbleException e) {
-                throw new TribbleException.InternalCodecException(e.getMessage() + ", at position " + chr+":"+pos);
-            }
-        }
-
-        return new LazyGenotypesContext.LazyData(genotypes, header.getSampleNamesInOrder(), header.getSampleNameToOffset());
-    }
-
-    private final String[] INT_DECODE_ARRAY = new String[10000];
-    private final int[] decodeInts(final String string) {
-        final int nValues = ParsingUtils.split(string, INT_DECODE_ARRAY, ',');
-        final int[] values = new int[nValues];
-        try {
-            for ( int i = 0; i < nValues; i++ )
-                values[i] = Integer.valueOf(INT_DECODE_ARRAY[i]);
-        } catch (final NumberFormatException e) {
-            return null;
-        }
-        return values;
-    }
-
-    /**
-     * Forces all VCFCodecs to not perform any on the fly modifications to the VCF header
-     * of VCF records.  Useful primarily for raw comparisons such as when comparing
-     * raw VCF records
-     */
-    public final void disableOnTheFlyModifications() {
-        doOnTheFlyModifications = false;
-    }
-
-    /**
-     * Replaces the sample name read from the VCF header with the remappedSampleName. Works
-     * only for single-sample VCFs -- attempting to perform sample name remapping for multi-sample
-     * VCFs will produce an Exception.
-     *
-     * @param remappedSampleName replacement sample name for the sample specified in the VCF header
-     */
-    public void setRemappedSampleName( final String remappedSampleName ) {
-        this.remappedSampleName = remappedSampleName;
-    }
-
-    protected void generateException(String message) {
-        throw new TribbleException(String.format("The provided VCF file is malformed at approximately line number %d: %s", lineNo, message));
-    }
-
-    protected static void generateException(String message, int lineNo) {
-        throw new TribbleException(String.format("The provided VCF file is malformed at approximately line number %d: %s", lineNo, message));
-    }
-}
diff --git a/src/java/org/broadinstitute/variant/vcf/VCF3Codec.java b/src/java/org/broadinstitute/variant/vcf/VCF3Codec.java
deleted file mode 100644
index 6c468c9..0000000
--- a/src/java/org/broadinstitute/variant/vcf/VCF3Codec.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.vcf;
-
-import org.broad.tribble.TribbleException;
-import org.broad.tribble.readers.LineIterator;
-import org.broad.tribble.readers.LineReader;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-
-/**
- * A feature codec for the VCF3 specification, to read older VCF files.  VCF3 has been
- * depreciated in favor of VCF4 (See VCF codec for the latest information)
- *
- * <p>
- * Reads historical VCF3 encoded files (1000 Genomes Pilot results, for example)
- * </p>
- *
- * <p>
- * See also: @see <a href="http://vcftools.sourceforge.net/specs.html">VCF specification</a><br>
- * See also: @see <a href="http://www.ncbi.nlm.nih.gov/pubmed/21653522">VCF spec. publication</a>
- * </p>
- *
- * @author Mark DePristo
- * @since 2010
- */
-public class VCF3Codec extends AbstractVCFCodec {
-    public final static String VCF3_MAGIC_HEADER = "##fileformat=VCFv3";
-
-    /**
-     * @param reader the line reader to take header lines from
-     * @return the number of header lines
-     */
-    public Object readActualHeader(final LineIterator reader) {
-        final List<String> headerStrings = new ArrayList<String>();
-
-        VCFHeaderVersion version = null;
-        boolean foundHeaderVersion = false;
-        while (reader.hasNext()) {
-            lineNo++;
-            final String line = reader.peek();
-            if (line.startsWith(VCFHeader.METADATA_INDICATOR)) {
-                final String[] lineFields = line.substring(2).split("=");
-                if (lineFields.length == 2 && VCFHeaderVersion.isFormatString(lineFields[0]) ) {
-                    if ( !VCFHeaderVersion.isVersionString(lineFields[1]) )
-                        throw new TribbleException.InvalidHeader(lineFields[1] + " is not a supported version");
-                    foundHeaderVersion = true;
-                    version = VCFHeaderVersion.toHeaderVersion(lineFields[1]);
-                    if ( version != VCFHeaderVersion.VCF3_3 && version != VCFHeaderVersion.VCF3_2 )
-                        throw new TribbleException.InvalidHeader("This codec is strictly for VCFv3 and does not support " + lineFields[1]);
-                }
-                headerStrings.add(reader.next());
-            }
-            else if (line.startsWith(VCFHeader.HEADER_INDICATOR)) {
-                if (!foundHeaderVersion) {
-                    throw new TribbleException.InvalidHeader("We never saw a header line specifying VCF version");
-                }
-                headerStrings.add(reader.next());
-                return super.parseHeaderFromLines(headerStrings, version);
-            }
-            else {
-                throw new TribbleException.InvalidHeader("We never saw the required CHROM header line (starting with one #) for the input VCF file");
-            }
-
-        }
-        throw new TribbleException.InvalidHeader("We never saw the required CHROM header line (starting with one #) for the input VCF file");
-    }
-
-
-    /**
-     * parse the filter string, first checking to see if we already have parsed it in a previous attempt
-     * @param filterString the string to parse
-     * @return a set of the filters applied
-     */
-    protected List<String> parseFilters(String filterString) {
-
-        // null for unfiltered
-        if ( filterString.equals(VCFConstants.UNFILTERED) )
-            return null;
-
-        // empty set for passes filters
-        List<String> fFields = new ArrayList<String>();
-
-        if ( filterString.equals(VCFConstants.PASSES_FILTERS_v3) )
-            return new ArrayList<String>(fFields);
-
-        if ( filterString.length() == 0 )
-            generateException("The VCF specification requires a valid filter status");
-
-        // do we have the filter string cached?
-        if ( filterHash.containsKey(filterString) )
-            return new ArrayList<String>(filterHash.get(filterString));
-
-        // otherwise we have to parse and cache the value
-        if ( filterString.indexOf(VCFConstants.FILTER_CODE_SEPARATOR) == -1 )
-            fFields.add(filterString);
-        else
-            fFields.addAll(Arrays.asList(filterString.split(VCFConstants.FILTER_CODE_SEPARATOR)));
-
-        filterHash.put(filterString, fFields);
-
-        return fFields;
-    }
-
-    @Override
-    public boolean canDecode(final String potentialInput) {
-        return canDecodeFile(potentialInput, VCF3_MAGIC_HEADER);
-    }
-}
diff --git a/src/java/org/broadinstitute/variant/vcf/VCFCodec.java b/src/java/org/broadinstitute/variant/vcf/VCFCodec.java
deleted file mode 100644
index fad90ca..0000000
--- a/src/java/org/broadinstitute/variant/vcf/VCFCodec.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.vcf;
-
-import org.broad.tribble.TribbleException;
-import org.broad.tribble.readers.LineIterator;
-
-import java.util.*;
-
-/**
- * A feature codec for the VCF 4 specification
- *
- * <p>
- * VCF is a text file format (most likely stored in a compressed manner). It contains meta-information lines, a
- * header line, and then data lines each containing information about a position in the genome.
- * </p>
- * <p>One of the main uses of next-generation sequencing is to discover variation amongst large populations
- * of related samples. Recently the format for storing next-generation read alignments has been
- * standardised by the SAM/BAM file format specification. This has significantly improved the
- * interoperability of next-generation tools for alignment, visualisation, and variant calling.
- * We propose the Variant Call Format (VCF) as a standarised format for storing the most prevalent
- * types of sequence variation, including SNPs, indels and larger structural variants, together
- * with rich annotations. VCF is usually stored in a compressed manner and can be indexed for
- * fast data retrieval of variants from a range of positions on the reference genome.
- * The format was developed for the 1000 Genomes Project, and has also been adopted by other projects
- * such as UK10K, dbSNP, or the NHLBI Exome Project. VCFtools is a software suite that implements
- * various utilities for processing VCF files, including validation, merging and comparing,
- * and also provides a general Perl and Python API.
- * The VCF specification and VCFtools are available from http://vcftools.sourceforge.net.</p>
- *
- * <p>
- * See also: @see <a href="http://vcftools.sourceforge.net/specs.html">VCF specification</a><br>
- * See also: @see <a href="http://www.ncbi.nlm.nih.gov/pubmed/21653522">VCF spec. publication</a>
- * </p>
- *
- * <h2>File format example</h2>
- * <pre>
- *     ##fileformat=VCFv4.0
- *     #CHROM  POS     ID      REF     ALT     QUAL    FILTER  INFO    FORMAT  NA12878
- *     chr1    109     .       A       T       0       PASS  AC=1    GT:AD:DP:GL:GQ  0/1:610,327:308:-316.30,-95.47,-803.03:99
- *     chr1    147     .       C       A       0       PASS  AC=1    GT:AD:DP:GL:GQ  0/1:294,49:118:-57.87,-34.96,-338.46:99
- * </pre>
- *
- * @author Mark DePristo
- * @since 2010
- */
-public class VCFCodec extends AbstractVCFCodec {
-    // Our aim is to read in the records and convert to VariantContext as quickly as possible, relying on VariantContext to do the validation of any contradictory (or malformed) record parameters.
-    public final static String VCF4_MAGIC_HEADER = "##fileformat=VCFv4";
-
-    /**
-     * Reads all of the header from the provided iterator, but no reads no further.
-     * @param lineIterator the line reader to take header lines from
-     * @return The parsed header
-     */
-    @Override
-    public Object readActualHeader(final LineIterator lineIterator) {
-        final List<String> headerStrings = new ArrayList<String>();
-
-        String line;
-        boolean foundHeaderVersion = false;
-        while (lineIterator.hasNext()) {
-            line = lineIterator.peek();
-            lineNo++;
-            if (line.startsWith(VCFHeader.METADATA_INDICATOR)) {
-                final String[] lineFields = line.substring(2).split("=");
-                if (lineFields.length == 2 && VCFHeaderVersion.isFormatString(lineFields[0]) ) {
-                    if ( !VCFHeaderVersion.isVersionString(lineFields[1]) )
-                        throw new TribbleException.InvalidHeader(lineFields[1] + " is not a supported version");
-                    foundHeaderVersion = true;
-                    version = VCFHeaderVersion.toHeaderVersion(lineFields[1]);
-                    if ( ! version.isAtLeastAsRecentAs(VCFHeaderVersion.VCF4_0) )
-                        throw new TribbleException.InvalidHeader("This codec is strictly for VCFv4; please use the VCF3 codec for " + lineFields[1]);
-                    if ( version != VCFHeaderVersion.VCF4_0 && version != VCFHeaderVersion.VCF4_1 && version != VCFHeaderVersion.VCF4_2 )
-                        throw new TribbleException.InvalidHeader("This codec is strictly for VCFv4 and does not support " + lineFields[1]);
-                }
-                headerStrings.add(lineIterator.next());
-            }
-            else if (line.startsWith(VCFHeader.HEADER_INDICATOR)) {
-                if (!foundHeaderVersion) {
-                    throw new TribbleException.InvalidHeader("We never saw a header line specifying VCF version");
-                }
-                headerStrings.add(lineIterator.next());
-                super.parseHeaderFromLines(headerStrings, version);
-                return this.header;
-            }
-            else {
-                throw new TribbleException.InvalidHeader("We never saw the required CHROM header line (starting with one #) for the input VCF file");
-            }
-
-        }
-        throw new TribbleException.InvalidHeader("We never saw the required CHROM header line (starting with one #) for the input VCF file");
-    }
-
-    /**
-     * parse the filter string, first checking to see if we already have parsed it in a previous attempt
-     *
-     * @param filterString the string to parse
-     * @return a set of the filters applied or null if filters were not applied to the record (e.g. as per the missing value in a VCF)
-     */
-    protected List<String> parseFilters(final String filterString) {
-        // null for unfiltered
-        if ( filterString.equals(VCFConstants.UNFILTERED) )
-            return null;
-
-        if ( filterString.equals(VCFConstants.PASSES_FILTERS_v4) )
-            return Collections.emptyList();
-        if ( filterString.equals(VCFConstants.PASSES_FILTERS_v3) )
-            generateException(VCFConstants.PASSES_FILTERS_v3 + " is an invalid filter name in vcf4", lineNo);
-        if ( filterString.length() == 0 )
-            generateException("The VCF specification requires a valid filter status: filter was " + filterString, lineNo);
-
-        // do we have the filter string cached?
-        if ( filterHash.containsKey(filterString) )
-            return filterHash.get(filterString);
-
-        // empty set for passes filters
-        final List<String> fFields = new LinkedList<String>();
-        // otherwise we have to parse and cache the value
-        if ( !filterString.contains(VCFConstants.FILTER_CODE_SEPARATOR) )
-            fFields.add(filterString);
-        else
-            fFields.addAll(Arrays.asList(filterString.split(VCFConstants.FILTER_CODE_SEPARATOR)));
-
-        filterHash.put(filterString, Collections.unmodifiableList(fFields));
-
-        return fFields;
-    }
-
-    @Override
-    public boolean canDecode(final String potentialInput) {
-        return canDecodeFile(potentialInput, VCF4_MAGIC_HEADER);
-    }
-}
diff --git a/src/java/org/broadinstitute/variant/vcf/VCFCompoundHeaderLine.java b/src/java/org/broadinstitute/variant/vcf/VCFCompoundHeaderLine.java
deleted file mode 100644
index 12db895..0000000
--- a/src/java/org/broadinstitute/variant/vcf/VCFCompoundHeaderLine.java
+++ /dev/null
@@ -1,265 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.vcf;
-
-import org.broad.tribble.TribbleException;
-import org.broadinstitute.variant.utils.GeneralUtils;
-import org.broadinstitute.variant.variantcontext.GenotypeLikelihoods;
-import org.broadinstitute.variant.variantcontext.VariantContext;
-
-import java.util.Arrays;
-import java.util.LinkedHashMap;
-import java.util.ArrayList;
-import java.util.Map;
-
-/**
- * a base class for compound header lines, which include info lines and format lines (so far)
- */
-public abstract class VCFCompoundHeaderLine extends VCFHeaderLine implements VCFIDHeaderLine {
-
-    public enum SupportedHeaderLineType {
-        INFO(true), FORMAT(false);
-
-        public final boolean allowFlagValues;
-        SupportedHeaderLineType(boolean flagValues) {
-            allowFlagValues = flagValues;
-        }
-    }
-
-    // the field types
-    private String name;
-    private int count = -1;
-    private VCFHeaderLineCount countType;
-    private String description;
-    private VCFHeaderLineType type;
-
-    // access methods
-    public String getID() { return name; }
-    public String getDescription() { return description; }
-    public VCFHeaderLineType getType() { return type; }
-    public VCFHeaderLineCount getCountType() { return countType; }
-    public boolean isFixedCount() { return countType == VCFHeaderLineCount.INTEGER; }
-    public int getCount() {
-        if ( ! isFixedCount() )
-            throw new TribbleException("Asking for header line count when type is not an integer");
-        return count;
-    }
-
-    /**
-     * Get the number of values expected for this header field, given the properties of VariantContext vc
-     *
-     * If the count is a fixed count, return that.  For example, a field with size of 1 in the header returns 1
-     * If the count is of type A, return vc.getNAlleles - 1
-     * If the count is of type G, return the expected number of genotypes given the number of alleles in VC and the
-     *   max ploidy among all samples.  Note that if the max ploidy of the VC is 0 (there's no GT information
-     *   at all, then implicitly assume diploid samples when computing G values.
-     * If the count is UNBOUNDED return -1
-     *
-     * @param vc
-     * @return
-     */
-    public int getCount(final VariantContext vc) {
-        switch ( countType ) {
-            case INTEGER:       return count;
-            case UNBOUNDED:     return -1;
-            case A:             return vc.getNAlleles() - 1;
-            case G:
-                final int ploidy = vc.getMaxPloidy(2);
-                return GenotypeLikelihoods.numLikelihoods(vc.getNAlleles(), ploidy);
-            default:
-                throw new TribbleException("Unknown count type: " + countType);
-        }
-    }
-
-    public void setNumberToUnbounded() {
-        countType = VCFHeaderLineCount.UNBOUNDED;
-        count = -1;
-    }
-
-    // our type of line, i.e. format, info, etc
-    private final SupportedHeaderLineType lineType;
-
-    /**
-     * create a VCF format header line
-     *
-     * @param name         the name for this header line
-     * @param count        the count for this header line
-     * @param type         the type for this header line
-     * @param description  the description for this header line
-     * @param lineType     the header line type
-     */
-    protected VCFCompoundHeaderLine(String name, int count, VCFHeaderLineType type, String description, SupportedHeaderLineType lineType) {
-        super(lineType.toString(), "");
-        this.name = name;
-        this.countType = VCFHeaderLineCount.INTEGER;
-        this.count = count;
-        this.type = type;
-        this.description = description;
-        this.lineType = lineType;
-        validate();
-    }
-
-    /**
-     * create a VCF format header line
-     *
-     * @param name         the name for this header line
-     * @param count        the count type for this header line
-     * @param type         the type for this header line
-     * @param description  the description for this header line
-     * @param lineType     the header line type
-     */
-    protected VCFCompoundHeaderLine(String name, VCFHeaderLineCount count, VCFHeaderLineType type, String description, SupportedHeaderLineType lineType) {
-        super(lineType.toString(), "");
-        this.name = name;
-        this.countType = count;
-        this.type = type;
-        this.description = description;
-        this.lineType = lineType;
-        validate();
-    }
-
-    /**
-     * create a VCF format header line
-     *
-     * @param line   the header line
-     * @param version      the VCF header version
-     * @param lineType     the header line type
-     *
-     */
-    protected VCFCompoundHeaderLine(String line, VCFHeaderVersion version, SupportedHeaderLineType lineType) {
-        super(lineType.toString(), "");
-
-        final ArrayList<String> expectedTags = new ArrayList(Arrays.asList("ID","Number","Type","Description"));
-        if ( version.isAtLeastAsRecentAs(VCFHeaderVersion.VCF4_2) )
-            expectedTags.add("Version");
-        final Map<String,String> mapping = VCFHeaderLineTranslator.parseLine(version, line, expectedTags);
-        name = mapping.get("ID");
-        count = -1;
-        final String numberStr = mapping.get("Number");
-        if ( numberStr.equals(VCFConstants.PER_ALLELE_COUNT) ) {
-            countType = VCFHeaderLineCount.A;
-        } else if ( numberStr.equals(VCFConstants.PER_GENOTYPE_COUNT) ) {
-            countType = VCFHeaderLineCount.G;
-        } else if ( (version.isAtLeastAsRecentAs(VCFHeaderVersion.VCF4_0) && numberStr.equals(VCFConstants.UNBOUNDED_ENCODING_v4)) ||
-                    (! version.isAtLeastAsRecentAs(VCFHeaderVersion.VCF4_0) && numberStr.equals(VCFConstants.UNBOUNDED_ENCODING_v3)) ) {
-            countType = VCFHeaderLineCount.UNBOUNDED;
-        } else {
-            countType = VCFHeaderLineCount.INTEGER;
-            count = Integer.valueOf(numberStr);
-
-        }
-
-        if ( count < 0 && countType == VCFHeaderLineCount.INTEGER )
-            throw new TribbleException.InvalidHeader("Count < 0 for fixed size VCF header field " + name);
-
-        try {
-            type = VCFHeaderLineType.valueOf(mapping.get("Type"));
-        } catch (Exception e) {
-            throw new TribbleException(mapping.get("Type") + " is not a valid type in the VCF specification (note that types are case-sensitive)");
-        }
-        if (type == VCFHeaderLineType.Flag && !allowFlagValues())
-            throw new IllegalArgumentException("Flag is an unsupported type for this kind of field");
-
-        description = mapping.get("Description");
-        if ( description == null && ALLOW_UNBOUND_DESCRIPTIONS ) // handle the case where there's no description provided
-            description = UNBOUND_DESCRIPTION;
-        
-        this.lineType = lineType;
-
-        validate();
-    }
-
-    private void validate() {
-        if ( name == null || type == null || description == null || lineType == null )
-            throw new IllegalArgumentException(String.format("Invalid VCFCompoundHeaderLine: key=%s name=%s type=%s desc=%s lineType=%s", 
-                    super.getKey(), name, type, description, lineType ));
-        if ( name.contains("<") || name.contains(">") )
-            throw new IllegalArgumentException("VCFHeaderLine: ID cannot contain angle brackets");
-        if ( name.contains("=") )
-            throw new IllegalArgumentException("VCFHeaderLine: ID cannot contain an equals sign");
-
-        if ( type == VCFHeaderLineType.Flag && count != 0 ) {
-            count = 0;
-            if ( GeneralUtils.DEBUG_MODE_ENABLED ) {
-                System.err.println("FLAG fields must have a count value of 0, but saw " + count + " for header line " + getID() + ". Changing it to 0 inside the code");
-            }
-        }
-    }
-
-    /**
-     * make a string representation of this header line
-     * @return a string representation
-     */
-    protected String toStringEncoding() {
-        Map<String,Object> map = new LinkedHashMap<String,Object>();
-        map.put("ID", name);
-        Object number;
-        switch ( countType ) {
-            case A: number = VCFConstants.PER_ALLELE_COUNT; break;
-            case G: number = VCFConstants.PER_GENOTYPE_COUNT; break;
-            case UNBOUNDED: number = VCFConstants.UNBOUNDED_ENCODING_v4; break;
-            case INTEGER:
-            default: number = count;
-        }
-        map.put("Number", number);
-        map.put("Type", type);
-        map.put("Description", description);
-        return lineType.toString() + "=" + VCFHeaderLine.toStringEncoding(map);
-    }
-
-    /**
-     * returns true if we're equal to another compounder header line
-     * @param o a compound header line
-     * @return true if equal
-     */
-    public boolean equals(Object o) {
-        if ( !(o instanceof VCFCompoundHeaderLine) )
-            return false;
-        VCFCompoundHeaderLine other = (VCFCompoundHeaderLine)o;
-        return equalsExcludingDescription(other) &&
-                description.equals(other.description);
-    }
-
-    public boolean equalsExcludingDescription(VCFCompoundHeaderLine other) {
-        return count == other.count &&
-                countType == other.countType &&
-                type == other.type &&
-                lineType == other.lineType &&
-                name.equals(other.name);
-    }
-
-    public boolean sameLineTypeAndName(VCFCompoundHeaderLine other) {
-        return  lineType == other.lineType &&
-                name.equals(other.name);
-    }
-
-    /**
-     * do we allow flag (boolean) values? (i.e. booleans where you don't have specify the value, AQ means AQ=true)
-     * @return true if we do, false otherwise
-     */
-    abstract boolean allowFlagValues();
-
-}
diff --git a/src/java/org/broadinstitute/variant/vcf/VCFConstants.java b/src/java/org/broadinstitute/variant/vcf/VCFConstants.java
deleted file mode 100644
index b45edea..0000000
--- a/src/java/org/broadinstitute/variant/vcf/VCFConstants.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.vcf;
-
-import java.util.Locale;
-
-public final class VCFConstants {
-    public static final Locale VCF_LOCALE = Locale.US;
-
-    // reserved INFO/FORMAT field keys
-    public static final String ANCESTRAL_ALLELE_KEY = "AA";
-    public static final String ALLELE_COUNT_KEY = "AC";
-    public static final String MLE_ALLELE_COUNT_KEY = "MLEAC";
-    public static final String ALLELE_FREQUENCY_KEY = "AF";
-    public static final String MLE_ALLELE_FREQUENCY_KEY = "MLEAF";
-    public static final String MLE_PER_SAMPLE_ALLELE_COUNT_KEY = "MLPSAC";
-    public static final String MLE_PER_SAMPLE_ALLELE_FRACTION_KEY = "MLPSAF";
-    public static final String ALLELE_NUMBER_KEY = "AN";
-    public static final String RMS_BASE_QUALITY_KEY = "BQ";
-    public static final String CIGAR_KEY = "CIGAR";
-    public static final String DBSNP_KEY = "DB";
-    public static final String DEPTH_KEY = "DP";
-    public static final String DOWNSAMPLED_KEY = "DS";
-    public static final String EXPECTED_ALLELE_COUNT_KEY = "EC";
-    public static final String END_KEY = "END";
-
-    public static final String GENOTYPE_FILTER_KEY = "FT";
-    public static final String GENOTYPE_KEY = "GT";
-    public static final String GENOTYPE_POSTERIORS_KEY = "GP";
-    public static final String GENOTYPE_QUALITY_KEY = "GQ";
-    public static final String GENOTYPE_ALLELE_DEPTHS = "AD";
-    public static final String GENOTYPE_PL_KEY = "PL";   // phred-scaled genotype likelihoods
-    @Deprecated public static final String GENOTYPE_LIKELIHOODS_KEY = "GL";         // log10 scaled genotype likelihoods
-
-    public static final String HAPMAP2_KEY = "H2";
-    public static final String HAPMAP3_KEY = "H3";
-    public static final String HAPLOTYPE_QUALITY_KEY = "HQ";
-    public static final String RMS_MAPPING_QUALITY_KEY = "MQ";
-    public static final String MAPPING_QUALITY_ZERO_KEY = "MQ0";
-    public static final String SAMPLE_NUMBER_KEY = "NS";
-    public static final String PHASE_QUALITY_KEY = "PQ";
-    public static final String PHASE_SET_KEY = "PS";
-    public static final String OLD_DEPTH_KEY = "RD";
-    public static final String STRAND_BIAS_KEY = "SB";
-    public static final String SOMATIC_KEY = "SOMATIC";
-    public static final String VALIDATED_KEY = "VALIDATED";
-    public static final String THOUSAND_GENOMES_KEY = "1000G";
-
-    // separators
-    public static final String FORMAT_FIELD_SEPARATOR = ":";
-    public static final String GENOTYPE_FIELD_SEPARATOR = ":";
-    public static final char   GENOTYPE_FIELD_SEPARATOR_CHAR = ':';
-    public static final String FIELD_SEPARATOR = "\t";
-    public static final char   FIELD_SEPARATOR_CHAR = '\t';
-    public static final String FILTER_CODE_SEPARATOR = ";";
-    public static final String INFO_FIELD_ARRAY_SEPARATOR = ",";
-    public static final char INFO_FIELD_ARRAY_SEPARATOR_CHAR = ',';
-    public static final String ID_FIELD_SEPARATOR = ";";
-    public static final String INFO_FIELD_SEPARATOR = ";";
-    public static final char INFO_FIELD_SEPARATOR_CHAR = ';';
-    public static final String UNPHASED = "/";
-    public static final String PHASED = "|";
-    public static final String PHASED_SWITCH_PROB_v3 = "\\";
-    public static final String PHASING_TOKENS = "/|\\";
-
-    // header lines
-    public static final String FILTER_HEADER_START = "##FILTER";
-    public static final String FORMAT_HEADER_START = "##FORMAT";
-    public static final String INFO_HEADER_START = "##INFO";
-    public static final String ALT_HEADER_START = "##ALT";
-    public static final String CONTIG_HEADER_KEY = "contig";
-    public static final String CONTIG_HEADER_START = "##" + CONTIG_HEADER_KEY;
-    public static final String GATK_COMMAND_START = "##GATKCommandLine";
-
-    // old indel alleles
-    public static final char DELETION_ALLELE_v3 = 'D';
-    public static final char INSERTION_ALLELE_v3 = 'I';
-
-    // missing/default values
-    public static final String UNFILTERED = ".";
-    public static final String PASSES_FILTERS_v3 = "0";
-    public static final String PASSES_FILTERS_v4 = "PASS";
-    public static final String EMPTY_ID_FIELD = ".";
-    public static final String EMPTY_INFO_FIELD = ".";
-    public static final String EMPTY_ALTERNATE_ALLELE_FIELD = ".";
-    public static final String MISSING_VALUE_v4 = ".";
-    public static final String MISSING_QUALITY_v3 = "-1";
-    public static final Double MISSING_QUALITY_v3_DOUBLE = Double.valueOf(MISSING_QUALITY_v3);
-
-    public static final String MISSING_GENOTYPE_QUALITY_v3 = "-1";
-    public static final String MISSING_HAPLOTYPE_QUALITY_v3 = "-1";
-    public static final String MISSING_DEPTH_v3 = "-1";
-    public static final String UNBOUNDED_ENCODING_v4 = ".";
-    public static final String UNBOUNDED_ENCODING_v3 = "-1";
-    public static final String PER_ALLELE_COUNT = "A";
-    public static final String PER_GENOTYPE_COUNT = "G";
-    public static final String EMPTY_ALLELE = ".";
-    public static final String EMPTY_GENOTYPE = "./.";
-    public static final int MAX_GENOTYPE_QUAL = 99;
-
-    public static final Double VCF_ENCODING_EPSILON = 0.00005; // when we consider fields equal(), used in the Qual compare
-    public static final String REFSAMPLE_DEPTH_KEY = "REFDEPTH";
-}
\ No newline at end of file
diff --git a/src/java/org/broadinstitute/variant/vcf/VCFContigHeaderLine.java b/src/java/org/broadinstitute/variant/vcf/VCFContigHeaderLine.java
deleted file mode 100644
index d65c56a..0000000
--- a/src/java/org/broadinstitute/variant/vcf/VCFContigHeaderLine.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.vcf;
-
-import net.sf.samtools.SAMSequenceRecord;
-import org.broad.tribble.TribbleException;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * A special class representing a contig VCF header line.  Knows the true contig order and sorts on that
- *
- * @author mdepristo
- */
-public class VCFContigHeaderLine extends VCFSimpleHeaderLine {
-    final Integer contigIndex;
-
-    /**
-     * create a VCF contig header line
-     *
-     * @param line      the header line
-     * @param version   the vcf header version
-     * @param key            the key for this header line
-     */
-    public VCFContigHeaderLine(final String line, final VCFHeaderVersion version, final String key, final int contigIndex) {
-        super(line, version, key, null);
-	    if (contigIndex < 0) throw new TribbleException("The contig index is less than zero.");
-        this.contigIndex = contigIndex;
-    }
-
-    public VCFContigHeaderLine(final Map<String, String> mapping, final int contigIndex) {
-        super(VCFHeader.CONTIG_KEY, mapping);
-	    if (contigIndex < 0) throw new TribbleException("The contig index is less than zero.");
-        this.contigIndex = contigIndex;
-    }
-
-	VCFContigHeaderLine(final SAMSequenceRecord sequenceRecord, final String assembly) {
-		super(VCFHeader.CONTIG_KEY, new HashMap<String, String>() {{
-			// Now inside an init block in an anon HashMap subclass
-			this.put("ID", sequenceRecord.getSequenceName());
-			this.put("length", Integer.toString(sequenceRecord.getSequenceLength()));
-			if ( assembly != null ) this.put("assembly", assembly);
-		}});
-		this.contigIndex = sequenceRecord.getSequenceIndex();
-	}
-
-    public Integer getContigIndex() {
-        return contigIndex;
-    }
-
-	public SAMSequenceRecord getSAMSequenceRecord() {
-		final String lengthString = this.getGenericFieldValue("length");
-		if (lengthString == null) throw new TribbleException("Contig " + this.getID() + " does not have a length field.");
-		final SAMSequenceRecord record = new SAMSequenceRecord(this.getID(), Integer.valueOf(lengthString));
-		record.setSequenceIndex(this.contigIndex);
-		return record;
-	}
-
-    /**
-     * IT IS CRITICAL THAT THIS BE OVERRIDDEN SO WE SORT THE CONTIGS IN THE CORRECT ORDER
-     */
-    @Override
-    public int compareTo(final Object other) {
-        if ( other instanceof VCFContigHeaderLine )
-            return contigIndex.compareTo(((VCFContigHeaderLine) other).contigIndex);
-        else {
-            return super.compareTo(other);
-        }
-    }
-}
\ No newline at end of file
diff --git a/src/java/org/broadinstitute/variant/vcf/VCFEncoder.java b/src/java/org/broadinstitute/variant/vcf/VCFEncoder.java
deleted file mode 100644
index f50cac3..0000000
--- a/src/java/org/broadinstitute/variant/vcf/VCFEncoder.java
+++ /dev/null
@@ -1,381 +0,0 @@
-package org.broadinstitute.variant.vcf;
-
-import org.broad.tribble.util.ParsingUtils;
-import org.broadinstitute.variant.variantcontext.Allele;
-import org.broadinstitute.variant.variantcontext.Genotype;
-import org.broadinstitute.variant.variantcontext.GenotypeBuilder;
-import org.broadinstitute.variant.variantcontext.GenotypesContext;
-import org.broadinstitute.variant.variantcontext.LazyGenotypesContext;
-import org.broadinstitute.variant.variantcontext.VariantContext;
-import org.broadinstitute.variant.variantcontext.writer.IntGenotypeFieldAccessors;
-
-import java.lang.reflect.Array;
-import java.nio.charset.Charset;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.TreeMap;
-
-/**
- * Functions specific to encoding VCF records.
- */
-public class VCFEncoder {
-
-    /**
-     * The encoding used for VCF files: ISO-8859-1
-     */
-    public static final Charset VCF_CHARSET = Charset.forName("ISO-8859-1");
-    private static final String QUAL_FORMAT_STRING = "%.2f";
-	private static final String QUAL_FORMAT_EXTENSION_TO_TRIM = ".00";
-
-	private final IntGenotypeFieldAccessors GENOTYPE_FIELD_ACCESSORS = new IntGenotypeFieldAccessors();
-
-	private VCFHeader header;
-
-	private boolean allowMissingFieldsInHeader = false;
-
-	/**
-	 * Prepare a VCFEncoder that will encode records appropriate to the given VCF header, optionally
-	 * allowing missing fields in the header.
-	 */
-	public VCFEncoder(final VCFHeader header, final boolean allowMissingFieldsInHeader) {
-		if (header == null) throw new NullPointerException("The VCF header must not be null.");
-		this.header = header;
-		this.allowMissingFieldsInHeader = allowMissingFieldsInHeader;
-	}
-
-	/**
-	 * Please see the notes in the default constructor
-	 */
-	@Deprecated
-	public void setVCFHeader(final VCFHeader header) {
-		this.header = header;
-	}
-
-	/**
-	 * Please see the notes in the default constructor
-	 */
-	@Deprecated
-	public void setAllowMissingFieldsInHeader(final boolean allow) {
-		this.allowMissingFieldsInHeader = allow;
-	}
-
-	public String encode(final VariantContext context) {
-		if (this.header == null) {
-			throw new NullPointerException("The header field must be set on the VCFEncoder before encoding records.");
-		}
-
-		final StringBuilder stringBuilder = new StringBuilder();
-
-		// CHROM
-		stringBuilder.append(context.getChr()).append(VCFConstants.FIELD_SEPARATOR);
-
-		// POS
-		stringBuilder.append(String.valueOf(context.getStart())).append(VCFConstants.FIELD_SEPARATOR);
-
-		// ID
-		stringBuilder.append(context.getID()).append(VCFConstants.FIELD_SEPARATOR);
-
-		// REF
-		stringBuilder.append(context.getReference().getDisplayString()).append(VCFConstants.FIELD_SEPARATOR);
-
-		// ALT
-		if ( context.isVariant() ) {
-			Allele altAllele = context.getAlternateAllele(0);
-			String alt = altAllele.getDisplayString();
-			stringBuilder.append(alt);
-
-			for (int i = 1; i < context.getAlternateAlleles().size(); i++) {
-				altAllele = context.getAlternateAllele(i);
-				alt = altAllele.getDisplayString();
-				stringBuilder.append(",");
-				stringBuilder.append(alt);
-			}
-		} else {
-			stringBuilder.append(VCFConstants.EMPTY_ALTERNATE_ALLELE_FIELD);
-		}
-
-		stringBuilder.append(VCFConstants.FIELD_SEPARATOR);
-
-		// QUAL
-		if ( ! context.hasLog10PError()) stringBuilder.append(VCFConstants.MISSING_VALUE_v4);
-		else stringBuilder.append(formatQualValue(context.getPhredScaledQual()));
-		stringBuilder.append(VCFConstants.FIELD_SEPARATOR);
-
-		// FILTER
-		stringBuilder.append(getFilterString(context)).append(VCFConstants.FIELD_SEPARATOR);
-
-		// INFO
-		final Map<String, String> infoFields = new TreeMap<String, String>();
-		for (final Map.Entry<String, Object> field : context.getAttributes().entrySet() ) {
-			if ( ! this.header.hasInfoLine(field.getKey())) fieldIsMissingFromHeaderError(context, field.getKey(), "INFO");
-
-			final String outputValue = formatVCFField(field.getValue());
-			if (outputValue != null) infoFields.put(field.getKey(), outputValue);
-		}
-		writeInfoString(infoFields, stringBuilder);
-
-		// FORMAT
-		final GenotypesContext gc = context.getGenotypes();
-		if (gc.isLazyWithData() && ((LazyGenotypesContext) gc).getUnparsedGenotypeData() instanceof String) {
-			stringBuilder.append(VCFConstants.FIELD_SEPARATOR);
-			stringBuilder.append(((LazyGenotypesContext) gc).getUnparsedGenotypeData().toString());
-		} else {
-			final List<String> genotypeAttributeKeys = context.calcVCFGenotypeKeys(this.header);
-			if ( ! genotypeAttributeKeys.isEmpty()) {
-				for (final String format : genotypeAttributeKeys)
-					if ( ! this.header.hasFormatLine(format))
-						fieldIsMissingFromHeaderError(context, format, "FORMAT");
-
-				final String genotypeFormatString = ParsingUtils.join(VCFConstants.GENOTYPE_FIELD_SEPARATOR, genotypeAttributeKeys);
-
-				stringBuilder.append(VCFConstants.FIELD_SEPARATOR);
-				stringBuilder.append(genotypeFormatString);
-
-				final Map<Allele, String> alleleStrings = buildAlleleStrings(context);
-				addGenotypeData(context, alleleStrings, genotypeAttributeKeys, stringBuilder);
-			}
-		}
-
-		return stringBuilder.toString();
-	}
-
-	VCFHeader getVCFHeader() {
-		return this.header;
-	}
-
-	boolean getAllowMissingFieldsInHeader() {
-		return this.allowMissingFieldsInHeader;
-	}
-
-	private String getFilterString(final VariantContext vc) {
-		if (vc.isFiltered()) {
-			for (final String filter : vc.getFilters()) {
-				if ( ! this.header.hasFilterLine(filter)) fieldIsMissingFromHeaderError(vc, filter, "FILTER");
-			}
-
-			return ParsingUtils.join(";", ParsingUtils.sortList(vc.getFilters()));
-		}
-		else if (vc.filtersWereApplied()) return VCFConstants.PASSES_FILTERS_v4;
-		else return VCFConstants.UNFILTERED;
-	}
-
-	private String formatQualValue(final double qual) {
-		String s = String.format(QUAL_FORMAT_STRING, qual);
-		if ( s.endsWith(QUAL_FORMAT_EXTENSION_TO_TRIM) )
-			s = s.substring(0, s.length() - QUAL_FORMAT_EXTENSION_TO_TRIM.length());
-		return s;
-	}
-
-	private void fieldIsMissingFromHeaderError(final VariantContext vc, final String id, final String field) {
-		if ( ! allowMissingFieldsInHeader)
-			throw new IllegalStateException("Key " + id + " found in VariantContext field " + field
-					+ " at " + vc.getChr() + ":" + vc.getStart()
-					+ " but this key isn't defined in the VCFHeader.  We require all VCFs to have"
-					+ " complete VCF headers by default.");
-	}
-
-	String formatVCFField(final Object val) {
-		final String result;
-		if ( val == null )
-			result = VCFConstants.MISSING_VALUE_v4;
-		else if ( val instanceof Double )
-			result = formatVCFDouble((Double) val);
-		else if ( val instanceof Boolean )
-			result = (Boolean)val ? "" : null; // empty string for true, null for false
-		else if ( val instanceof List ) {
-			result = formatVCFField(((List)val).toArray());
-		} else if ( val.getClass().isArray() ) {
-			final int length = Array.getLength(val);
-			if ( length == 0 )
-				return formatVCFField(null);
-			final StringBuilder sb = new StringBuilder(formatVCFField(Array.get(val, 0)));
-			for ( int i = 1; i < length; i++) {
-				sb.append(",");
-				sb.append(formatVCFField(Array.get(val, i)));
-			}
-			result = sb.toString();
-		} else
-			result = val.toString();
-
-		return result;
-	}
-
-	/**
-	 * Takes a double value and pretty prints it to a String for display
-	 *
-	 * Large doubles => gets %.2f style formatting
-	 * Doubles < 1 / 10 but > 1/100 </>=> get %.3f style formatting
-	 * Double < 1/100 => %.3e formatting
-	 * @param d
-	 * @return
-	 */
-	public static String formatVCFDouble(final double d) {
-		final String format;
-		if ( d < 1 ) {
-			if ( d < 0.01 ) {
-				if ( Math.abs(d) >= 1e-20 )
-					format = "%.3e";
-				else {
-					// return a zero format
-					return "0.00";
-				}
-			} else {
-				format = "%.3f";
-			}
-		} else {
-			format = "%.2f";
-		}
-
-		return String.format(format, d);
-	}
-
-	static int countOccurrences(final char c, final String s) {
-		int count = 0;
-		for (int i = 0; i < s.length(); i++) {
-			count += s.charAt(i) == c ? 1 : 0;
-		}
-		return count;
-	}
-
-	static boolean isMissingValue(final String s) {
-		// we need to deal with the case that it's a list of missing values
-		return (countOccurrences(VCFConstants.MISSING_VALUE_v4.charAt(0), s) + countOccurrences(',', s) == s.length());
-	}
-
-	/*
-	 * Add the genotype data
-	 */
-	public void addGenotypeData(final VariantContext vc, final Map<Allele, String> alleleMap, final List<String> genotypeFormatKeys, final StringBuilder builder) {
-		final int ploidy = vc.getMaxPloidy(2);
-
-		for (final String sample : this.header.getGenotypeSamples()) {
-			builder.append(VCFConstants.FIELD_SEPARATOR);
-
-			Genotype g = vc.getGenotype(sample);
-			if (g == null) g = GenotypeBuilder.createMissing(sample, ploidy);
-
-			final List<String> attrs = new ArrayList<String>(genotypeFormatKeys.size());
-			for (final String field : genotypeFormatKeys) {
-				if (field.equals(VCFConstants.GENOTYPE_KEY)) {
-					if ( ! g.isAvailable()) {
-						throw new IllegalStateException("GTs cannot be missing for some samples if they are available for others in the record");
-					}
-
-					writeAllele(g.getAllele(0), alleleMap, builder);
-					for (int i = 1; i < g.getPloidy(); i++) {
-						builder.append(g.isPhased() ? VCFConstants.PHASED : VCFConstants.UNPHASED);
-						writeAllele(g.getAllele(i), alleleMap, builder);
-					}
-					continue;
-
-				} else {
-					final String outputValue;
-					if ( field.equals(VCFConstants.GENOTYPE_FILTER_KEY ) ) {
-						outputValue = g.isFiltered() ? g.getFilters() : VCFConstants.PASSES_FILTERS_v4;
-					} else {
-						final IntGenotypeFieldAccessors.Accessor accessor = GENOTYPE_FIELD_ACCESSORS.getAccessor(field);
-						if ( accessor != null ) {
-							final int[] intValues = accessor.getValues(g);
-							if ( intValues == null )
-								outputValue = VCFConstants.MISSING_VALUE_v4;
-							else if ( intValues.length == 1 ) // fast path
-								outputValue = Integer.toString(intValues[0]);
-							else {
-								final StringBuilder sb = new StringBuilder();
-								sb.append(intValues[0]);
-								for ( int i = 1; i < intValues.length; i++) {
-									sb.append(",");
-									sb.append(intValues[i]);
-								}
-								outputValue = sb.toString();
-							}
-						} else {
-							Object val = g.hasExtendedAttribute(field) ? g.getExtendedAttribute(field) : VCFConstants.MISSING_VALUE_v4;
-
-							final VCFFormatHeaderLine metaData = this.header.getFormatHeaderLine(field);
-							if ( metaData != null ) {
-								final int numInFormatField = metaData.getCount(vc);
-								if ( numInFormatField > 1 && val.equals(VCFConstants.MISSING_VALUE_v4) ) {
-									// If we have a missing field but multiple values are expected, we need to construct a new string with all fields.
-									// For example, if Number=2, the string has to be ".,."
-									final StringBuilder sb = new StringBuilder(VCFConstants.MISSING_VALUE_v4);
-									for ( int i = 1; i < numInFormatField; i++ ) {
-										sb.append(",");
-										sb.append(VCFConstants.MISSING_VALUE_v4);
-									}
-									val = sb.toString();
-								}
-							}
-
-							// assume that if key is absent, then the given string encoding suffices
-							outputValue = formatVCFField(val);
-						}
-					}
-
-					if ( outputValue != null )
-						attrs.add(outputValue);
-				}
-			}
-
-			// strip off trailing missing values
-			for (int i = attrs.size()-1; i >= 0; i--) {
-				if ( isMissingValue(attrs.get(i))) attrs.remove(i);
-				else break;
-			}
-
-			for (int i = 0; i < attrs.size(); i++) {
-				if ( i > 0 || genotypeFormatKeys.contains(VCFConstants.GENOTYPE_KEY)) {
-					builder.append(VCFConstants.GENOTYPE_FIELD_SEPARATOR);
-				}
-				builder.append(attrs.get(i));
-			}
-		}
-	}
-
-	/*
-	 * Create the info string; assumes that no values are null
-	 */
-	private void writeInfoString(final Map<String, String> infoFields, final StringBuilder builder) {
-		if ( infoFields.isEmpty() ) {
-			builder.append(VCFConstants.EMPTY_INFO_FIELD);
-			return;
-		}
-
-		boolean isFirst = true;
-		for (final Map.Entry<String, String> entry : infoFields.entrySet()) {
-			if (isFirst) isFirst = false;
-			else builder.append(VCFConstants.INFO_FIELD_SEPARATOR);
-
-			builder.append(entry.getKey());
-
-			if ( ! entry.getValue().equals("")) {
-				final VCFInfoHeaderLine metaData = this.header.getInfoHeaderLine(entry.getKey());
-				if ( metaData == null || metaData.getCountType() != VCFHeaderLineCount.INTEGER || metaData.getCount() != 0 ) {
-					builder.append("=");
-					builder.append(entry.getValue());
-				}
-			}
-		}
-	}
-
-	public Map<Allele, String> buildAlleleStrings(final VariantContext vc) {
-		final Map<Allele, String> alleleMap = new HashMap<Allele, String>(vc.getAlleles().size()+1);
-		alleleMap.put(Allele.NO_CALL, VCFConstants.EMPTY_ALLELE); // convenience for lookup
-
-		final List<Allele> alleles = vc.getAlleles();
-		for ( int i = 0; i < alleles.size(); i++ ) {
-			alleleMap.put(alleles.get(i), String.valueOf(i));
-		}
-
-		return alleleMap;
-	}
-
-	private void writeAllele(final Allele allele, final Map<Allele, String> alleleMap, final StringBuilder builder) {
-		final String encoding = alleleMap.get(allele);
-		if ( encoding == null )
-			throw new RuntimeException("Allele " + allele + " is not an allele in the variant context");
-		builder.append(encoding);
-	}
-}
diff --git a/src/java/org/broadinstitute/variant/vcf/VCFFileReader.java b/src/java/org/broadinstitute/variant/vcf/VCFFileReader.java
deleted file mode 100644
index a9f03e1..0000000
--- a/src/java/org/broadinstitute/variant/vcf/VCFFileReader.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package org.broadinstitute.variant.vcf;
-
-import net.sf.samtools.SAMSequenceDictionary;
-import net.sf.samtools.util.CloseableIterator;
-import net.sf.samtools.util.CloserUtil;
-import org.broad.tribble.AbstractFeatureReader;
-import org.broad.tribble.FeatureReader;
-import org.broad.tribble.TribbleException;
-import org.broadinstitute.variant.bcf2.BCF2Codec;
-import org.broadinstitute.variant.variantcontext.VariantContext;
-
-import java.io.Closeable;
-import java.io.File;
-import java.io.IOException;
-
-/**
- * Simplified interface for reading from VCF/BCF files.
- */
-public class VCFFileReader implements Closeable, Iterable<VariantContext> {
-
-	private final FeatureReader<VariantContext> reader;
-
-	/**
-	 * Returns true if the given file appears to be a BCF file.
-	 */
-	public static boolean isBCF(final File file) {
-		return file.getAbsolutePath().endsWith(".bcf");
-	}
-
-	/**
-	 * Returns the SAMSequenceDictionary from the provided VCF file.
-	 */
-	public static SAMSequenceDictionary getSequenceDictionary(final File file) {
-		final SAMSequenceDictionary dict = new VCFFileReader(file, false).getFileHeader().getSequenceDictionary();
-		CloserUtil.close(file);
-		return dict;
-	}
-
-    /** Constructs a VCFFileReader that requires the index to be present. */
-	public VCFFileReader(final File file) {
-		this(file, true);
-	}
-
-    /** Allows construction of a VCFFileReader that will or will not assert the presence of an index as desired. */
-	public VCFFileReader(final File file, final boolean requireIndex) {
-		this.reader = AbstractFeatureReader.getFeatureReader(
-						file.getAbsolutePath(),
-						isBCF(file) ? new BCF2Codec() : new VCFCodec(),
-						requireIndex);
-	}
-
-    /** Returns the VCFHeader associated with this VCF/BCF file. */
-	public VCFHeader getFileHeader() {
-		return (VCFHeader) reader.getHeader();
-	}
-
-    /** Returns an iterator over all records in this VCF/BCF file. */
-	public CloseableIterator<VariantContext> iterator() {
-		try { return reader.iterator(); }
-        catch (final IOException ioe) {
-			throw new TribbleException("Could not create an iterator from a feature reader.", ioe);
-		}
-	}
-
-    /** Queries for records within the region specified. */
-    public CloseableIterator<VariantContext> query(final String chrom, final int start, final int end) {
-        try { return reader.query(chrom, start, end); }
-        catch (final IOException ioe) {
-            throw new TribbleException("Could not create an iterator from a feature reader.", ioe);
-        }
-    }
-
-	public void close() {
-		try { this.reader.close(); }
-        catch (final IOException ioe) {
-			throw new TribbleException("Could not close a variant context feature reader.", ioe);
-		}
-	}
-}
diff --git a/src/java/org/broadinstitute/variant/vcf/VCFFilterHeaderLine.java b/src/java/org/broadinstitute/variant/vcf/VCFFilterHeaderLine.java
deleted file mode 100644
index 72f70e4..0000000
--- a/src/java/org/broadinstitute/variant/vcf/VCFFilterHeaderLine.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.vcf;
-
-import java.util.Arrays;
-
-/**
- * @author ebanks
- * A class representing a key=value entry for FILTER fields in the VCF header
- */
-public class VCFFilterHeaderLine extends VCFSimpleHeaderLine  {
-
-    /**
-     * create a VCF filter header line
-     *
-     * @param name         the name for this header line
-     * @param description  the description for this header line
-     */
-    public VCFFilterHeaderLine(String name, String description) {
-        super("FILTER", name, description);
-    }
-
-    /**
-     * Convenience constructor for FILTER whose description is the name
-     * @param name
-     */
-    public VCFFilterHeaderLine(String name) {
-        super("FILTER", name, name);
-    }
-
-    /**
-     * create a VCF info header line
-     *
-     * @param line      the header line
-     * @param version   the vcf header version
-     */
-    public VCFFilterHeaderLine(String line, VCFHeaderVersion version) {
-        super(line, version, "FILTER", Arrays.asList("ID", "Description"));
-    }
-
-    @Override
-    public boolean shouldBeAddedToDictionary() {
-        return true;
-    }
-}
\ No newline at end of file
diff --git a/src/java/org/broadinstitute/variant/vcf/VCFFormatHeaderLine.java b/src/java/org/broadinstitute/variant/vcf/VCFFormatHeaderLine.java
deleted file mode 100644
index ea05753..0000000
--- a/src/java/org/broadinstitute/variant/vcf/VCFFormatHeaderLine.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.vcf;
-
-
-/**
- * @author ebanks
- *         <p/>
- *         Class VCFFormatHeaderLine
- *         <p/>
- *         A class representing a key=value entry for genotype FORMAT fields in the VCF header
- */
-public class VCFFormatHeaderLine extends VCFCompoundHeaderLine {
-
-    public VCFFormatHeaderLine(String name, int count, VCFHeaderLineType type, String description) {
-        super(name, count, type, description, SupportedHeaderLineType.FORMAT);
-        if (type == VCFHeaderLineType.Flag)
-            throw new IllegalArgumentException("Flag is an unsupported type for format fields");
-    }
-
-    public VCFFormatHeaderLine(String name, VCFHeaderLineCount count, VCFHeaderLineType type, String description) {
-        super(name, count, type, description, SupportedHeaderLineType.FORMAT);
-    }
-
-    public VCFFormatHeaderLine(String line, VCFHeaderVersion version) {
-        super(line, version, SupportedHeaderLineType.FORMAT);
-    }
-
-    // format fields do not allow flag values (that wouldn't make much sense, how would you encode this in the genotype).
-    @Override
-    boolean allowFlagValues() {
-        return false;
-    }
-
-    @Override
-    public boolean shouldBeAddedToDictionary() {
-        return true;
-    }
-}
\ No newline at end of file
diff --git a/src/java/org/broadinstitute/variant/vcf/VCFHeader.java b/src/java/org/broadinstitute/variant/vcf/VCFHeader.java
deleted file mode 100644
index 42365e3..0000000
--- a/src/java/org/broadinstitute/variant/vcf/VCFHeader.java
+++ /dev/null
@@ -1,498 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.vcf;
-
-import net.sf.samtools.SAMSequenceDictionary;
-import net.sf.samtools.SAMSequenceRecord;
-import org.broad.tribble.TribbleException;
-import org.broad.tribble.util.ParsingUtils;
-import org.broadinstitute.variant.utils.GeneralUtils;
-import org.broadinstitute.variant.variantcontext.VariantContextComparator;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedHashMap;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeSet;
-
-
-/**
- * NOTE: This class allows duplicate entries in the metadata & stores header lines in
- * lots of places. The original author noted that this should be cleaned up at some point
- * in the future (jgentry - 5/2013)
- *
- * @author aaron
- *         <p/>
- *         Class VCFHeader
- *         <p/>
- *         A class representing the VCF header
- */
-public class VCFHeader {
-
-    // the mandatory header fields
-    public enum HEADER_FIELDS {
-        CHROM, POS, ID, REF, ALT, QUAL, FILTER, INFO
-    }
-
-    // the associated meta data
-    private final Set<VCFHeaderLine> mMetaData = new LinkedHashSet<VCFHeaderLine>();
-    private final Map<String, VCFInfoHeaderLine> mInfoMetaData = new LinkedHashMap<String, VCFInfoHeaderLine>();
-    private final Map<String, VCFFormatHeaderLine> mFormatMetaData = new LinkedHashMap<String, VCFFormatHeaderLine>();
-    private final Map<String, VCFFilterHeaderLine> mFilterMetaData = new LinkedHashMap<String, VCFFilterHeaderLine>();
-    private final Map<String, VCFHeaderLine> mOtherMetaData = new LinkedHashMap<String, VCFHeaderLine>();
-    private final List<VCFContigHeaderLine> contigMetaData = new ArrayList<VCFContigHeaderLine>();
-
-    // the list of auxillary tags
-    private final List<String> mGenotypeSampleNames = new ArrayList<String>();
-
-    // the character string that indicates meta data
-    public static final String METADATA_INDICATOR = "##";
-
-    // the header string indicator
-    public static final String HEADER_INDICATOR = "#";
-
-    public static final String SOURCE_KEY = "source";
-    public static final String REFERENCE_KEY = "reference";
-    public static final String CONTIG_KEY = "contig";
-    public static final String INTERVALS_KEY = "intervals";
-    public static final String EXCLUDE_INTERVALS_KEY = "excludeIntervals";
-    public static final String INTERVAL_MERGING_KEY = "interval_merging";
-    public static final String INTERVAL_SET_RULE_KEY = "interval_set_rule";
-    public static final String INTERVAL_PADDING_KEY = "interval_padding";
-
-    // were the input samples sorted originally (or are we sorting them)?
-    private boolean samplesWereAlreadySorted = true;
-
-    // cache for efficient conversion of VCF -> VariantContext
-    private ArrayList<String> sampleNamesInOrder = null;
-    private HashMap<String, Integer> sampleNameToOffset = null;
-
-    private boolean writeEngineHeaders = true;
-    private boolean writeCommandLine = true;
-
-    /**
-     * Create an empty VCF header with no header lines and no samples
-     */
-    public VCFHeader() {
-        this(Collections.<VCFHeaderLine>emptySet(), Collections.<String>emptySet());
-    }
-
-    /**
-     * create a VCF header, given a list of meta data and auxillary tags
-     *
-     * @param metaData     the meta data associated with this header
-     */
-    public VCFHeader(final Set<VCFHeaderLine> metaData) {
-        mMetaData.addAll(metaData);
-        loadVCFVersion();
-        loadMetaDataMaps();
-    }
-
-    /**
-     * Creates a deep copy of the given VCFHeader, duplicating all its metadata and
-     * sample names.
-     */
-    public VCFHeader(final VCFHeader toCopy) {
-        this(toCopy.mMetaData, toCopy.mGenotypeSampleNames);
-    }
-
-    /**
-     * create a VCF header, given a list of meta data and auxillary tags
-     *
-     * @param metaData            the meta data associated with this header
-     * @param genotypeSampleNames the sample names
-     */
-    public VCFHeader(final Set<VCFHeaderLine> metaData, final Set<String> genotypeSampleNames) {
-        this(metaData, new ArrayList<String>(genotypeSampleNames));
-    }
-
-    public VCFHeader(final Set<VCFHeaderLine> metaData, final List<String> genotypeSampleNames) {
-        this(metaData);
-
-        if ( genotypeSampleNames.size() != new HashSet<String>(genotypeSampleNames).size() )
-            throw new TribbleException.InvalidHeader("BUG: VCF header has duplicate sample names");
-
-        mGenotypeSampleNames.addAll(genotypeSampleNames);
-        samplesWereAlreadySorted = ParsingUtils.isSorted(genotypeSampleNames);
-        buildVCFReaderMaps(genotypeSampleNames);
-    }
-
-    /**
-     * Tell this VCF header to use pre-calculated sample name ordering and the
-     * sample name -> offset map.  This assumes that all VariantContext created
-     * using this header (i.e., read by the VCFCodec) will have genotypes
-     * occurring in the same order
-     *
-     * @param genotypeSampleNamesInAppearenceOrder genotype sample names, must iterator in order of appearance
-     */
-    private void buildVCFReaderMaps(final Collection<String> genotypeSampleNamesInAppearenceOrder) {
-        sampleNamesInOrder = new ArrayList<String>(genotypeSampleNamesInAppearenceOrder.size());
-        sampleNameToOffset = new HashMap<String, Integer>(genotypeSampleNamesInAppearenceOrder.size());
-
-        int i = 0;
-        for (final String name : genotypeSampleNamesInAppearenceOrder) {
-            sampleNamesInOrder.add(name);
-            sampleNameToOffset.put(name, i++);
-        }
-        Collections.sort(sampleNamesInOrder);
-    }
-
-
-    /**
-     * Sets a header line in the header metadata. This is essentially a Set.add call, which means that
-     * equals() and hashCode() are used to determine whether an additional header line is added or an
-     * existing header line is replaced.
-     */
-    public void addMetaDataLine(final VCFHeaderLine headerLine) {
-        mMetaData.add(headerLine);
-        loadMetaDataMaps();
-    }
-
-    /**
-     * @return all of the VCF header lines of the ##contig form in order, or an empty list if none were present
-     */
-    public List<VCFContigHeaderLine> getContigLines() {
-        return Collections.unmodifiableList(contigMetaData);
-    }
-
-	/**
-	 * Returns the contigs in this VCF file as a SAMSequenceDictionary. Returns null if contigs lines are
-	 * not present in the header. Throws PicardException if one or more contig lines do not have length
-	 * information.
-	 */
-	public SAMSequenceDictionary getSequenceDictionary() {
-		final List<VCFContigHeaderLine> contigHeaderLines = this.getContigLines();
-		if (contigHeaderLines.isEmpty()) return null;
-
-		final List<SAMSequenceRecord> sequenceRecords = new ArrayList<SAMSequenceRecord>(contigHeaderLines.size());
-		for (final VCFContigHeaderLine contigHeaderLine : contigHeaderLines) {
-			sequenceRecords.add(contigHeaderLine.getSAMSequenceRecord());
-		}
-
-		return new SAMSequenceDictionary(sequenceRecords);
-	}
-
-	/**
-	 * Completely replaces the contig records in this header with those in the given SAMSequenceDictionary.
-	 */
-	public void setSequenceDictionary(final SAMSequenceDictionary dictionary) {
-		this.contigMetaData.clear();
-		for (final SAMSequenceRecord record : dictionary.getSequences()) {
-			contigMetaData.add(new VCFContigHeaderLine(record, null));
-		}
-
-		this.mMetaData.addAll(contigMetaData);
-	}
-
-	public VariantContextComparator getVCFRecordComparator() {
-		return new VariantContextComparator(this.getContigLines());
-	}
-
-    /**
-     * @return all of the VCF FILTER lines in their original file order, or an empty list if none were present
-     */
-    public List<VCFFilterHeaderLine> getFilterLines() {
-        final List<VCFFilterHeaderLine> filters = new ArrayList<VCFFilterHeaderLine>();
-        for (final VCFHeaderLine line : mMetaData) {
-            if ( line instanceof VCFFilterHeaderLine )  {
-                filters.add((VCFFilterHeaderLine)line);
-            }
-        }
-        return filters;
-    }
-
-    /**
-     * @return all of the VCF FILTER lines in their original file order, or an empty list if none were present
-     */
-    public List<VCFIDHeaderLine> getIDHeaderLines() {
-        final List<VCFIDHeaderLine> filters = new ArrayList<VCFIDHeaderLine>();
-        for (final VCFHeaderLine line : mMetaData) {
-            if (line instanceof VCFIDHeaderLine)  {
-                filters.add((VCFIDHeaderLine)line);
-            }
-        }
-        return filters;
-    }
-
-    /**
-     * check our metadata for a VCF version tag, and throw an exception if the version is out of date
-     * or the version is not present
-     */
-    public void loadVCFVersion() {
-        final List<VCFHeaderLine> toRemove = new ArrayList<VCFHeaderLine>();
-        for (final VCFHeaderLine line : mMetaData)
-            if (VCFHeaderVersion.isFormatString(line.getKey())) {
-                toRemove.add(line);
-            }
-        // remove old header lines for now,
-        mMetaData.removeAll(toRemove);
-
-    }
-
-    /**
-     * load the format/info meta data maps (these are used for quick lookup by key name)
-     */
-    private void loadMetaDataMaps() {
-        for (final VCFHeaderLine line : mMetaData) {
-            if ( line instanceof VCFInfoHeaderLine )  {
-                final VCFInfoHeaderLine infoLine = (VCFInfoHeaderLine)line;
-                addMetaDataMapBinding(mInfoMetaData, infoLine);
-            } else if ( line instanceof VCFFormatHeaderLine ) {
-                final VCFFormatHeaderLine formatLine = (VCFFormatHeaderLine)line;
-                addMetaDataMapBinding(mFormatMetaData, formatLine);
-            } else if ( line instanceof VCFFilterHeaderLine ) {
-                final VCFFilterHeaderLine filterLine = (VCFFilterHeaderLine)line;
-                mFilterMetaData.put(filterLine.getID(), filterLine);
-            } else if ( line instanceof VCFContigHeaderLine ) {
-                contigMetaData.add((VCFContigHeaderLine)line);
-            } else {
-                mOtherMetaData.put(line.getKey(), line);
-            }
-        }
-
-        if ( hasFormatLine(VCFConstants.GENOTYPE_LIKELIHOODS_KEY) && ! hasFormatLine(VCFConstants.GENOTYPE_PL_KEY) ) {
-            if ( GeneralUtils.DEBUG_MODE_ENABLED ) {
-                System.err.println("Found " + VCFConstants.GENOTYPE_LIKELIHOODS_KEY + " format, but no "
-                                   + VCFConstants.GENOTYPE_PL_KEY + " field.  We now only manage PL fields internally"
-                                   + " automatically adding a corresponding PL field to your VCF header");
-            }
-            addMetaDataLine(new VCFFormatHeaderLine(VCFConstants.GENOTYPE_PL_KEY, VCFHeaderLineCount.G, VCFHeaderLineType.Integer, "Normalized, Phred-scaled likelihoods for genotypes as defined in the VCF specification"));
-        }
-    }
-
-    /**
-     * Add line to map, issuing warnings about duplicates
-     *
-     * @param map
-     * @param line
-     * @param <T>
-     */
-    private <T extends VCFCompoundHeaderLine> void addMetaDataMapBinding(final Map<String, T> map, final T line) {
-        final String key = line.getID();
-        if ( map.containsKey(key) ) {
-            if ( GeneralUtils.DEBUG_MODE_ENABLED ) {
-                System.err.println("Found duplicate VCF header lines for " + key + "; keeping the first only" );
-            }
-        }
-        else {
-            map.put(key, line);
-        }
-    }
-
-    /**
-     * get the header fields in order they're presented in the input file (which is now required to be
-     * the order presented in the spec).
-     *
-     * @return a set of the header fields, in order
-     */
-    public Set<HEADER_FIELDS> getHeaderFields() {
-        return new LinkedHashSet<HEADER_FIELDS>(Arrays.asList(HEADER_FIELDS.values()));
-    }
-
-    /**
-     * get the meta data, associated with this header, in sorted order
-     *
-     * @return a set of the meta data
-     */
-    public Set<VCFHeaderLine> getMetaDataInInputOrder() {
-        return makeGetMetaDataSet(mMetaData);
-    }
-
-    public Set<VCFHeaderLine> getMetaDataInSortedOrder() {
-        return makeGetMetaDataSet(new TreeSet<VCFHeaderLine>(mMetaData));
-    }
-
-    private static Set<VCFHeaderLine> makeGetMetaDataSet(final Set<VCFHeaderLine> headerLinesInSomeOrder) {
-        final Set<VCFHeaderLine> lines = new LinkedHashSet<VCFHeaderLine>();
-        lines.add(new VCFHeaderLine(VCFHeaderVersion.VCF4_1.getFormatString(), VCFHeaderVersion.VCF4_1.getVersionString()));
-        lines.addAll(headerLinesInSomeOrder);
-        return Collections.unmodifiableSet(lines);
-    }
-
-    /**
-     * Get the VCFHeaderLine whose key equals key.  Returns null if no such line exists
-     * @param key
-     * @return
-     */
-    public VCFHeaderLine getMetaDataLine(final String key) {
-        for (final VCFHeaderLine line: mMetaData) {
-            if ( line.getKey().equals(key) )
-                return line;
-        }
-
-        return null;
-    }
-
-    /**
-     * get the genotyping sample names
-     *
-     * @return a list of the genotype column names, which may be empty if hasGenotypingData() returns false
-     */
-    public List<String> getGenotypeSamples() {
-        return mGenotypeSampleNames;
-    }
-
-    public int getNGenotypeSamples() {
-        return mGenotypeSampleNames.size();
-    }
-
-    /**
-     * do we have genotyping data?
-     *
-     * @return true if we have genotyping columns, false otherwise
-     */
-    public boolean hasGenotypingData() {
-        return getNGenotypeSamples() > 0;
-    }
-
-    /**
-     * were the input samples sorted originally?
-     *
-     * @return true if the input samples were sorted originally, false otherwise
-     */
-    public boolean samplesWereAlreadySorted() {
-        return samplesWereAlreadySorted;
-    }
-
-    /** @return the column count */
-    public int getColumnCount() {
-        return HEADER_FIELDS.values().length + (hasGenotypingData() ? mGenotypeSampleNames.size() + 1 : 0);
-    }
-
-    /**
-     * Returns the INFO HeaderLines in their original ordering
-     */
-    public Collection<VCFInfoHeaderLine> getInfoHeaderLines() {
-        return mInfoMetaData.values();
-    }
-
-    /**
-     * Returns the FORMAT HeaderLines in their original ordering
-     */
-    public Collection<VCFFormatHeaderLine> getFormatHeaderLines() {
-        return mFormatMetaData.values();
-    }
-
-    /**
-     * @param id the header key name
-     * @return the meta data line, or null if there is none
-     */
-    public VCFInfoHeaderLine getInfoHeaderLine(final String id) {
-        return mInfoMetaData.get(id);
-    }
-
-    /**
-     * @param id    the header key name
-     * @return the meta data line, or null if there is none
-     */
-    public VCFFormatHeaderLine getFormatHeaderLine(final String id) {
-        return mFormatMetaData.get(id);
-    }
-
-    /**
-     * @param id    the header key name
-     * @return the meta data line, or null if there is none
-     */
-    public VCFFilterHeaderLine getFilterHeaderLine(final String id) {
-        return mFilterMetaData.get(id);
-    }
-
-    public boolean hasInfoLine(final String id) {
-        return getInfoHeaderLine(id) != null;
-    }
-
-    public boolean hasFormatLine(final String id) {
-        return getFormatHeaderLine(id) != null;
-    }
-
-    public boolean hasFilterLine(final String id) {
-        return getFilterHeaderLine(id) != null;
-    }
-
-    /**
-     * @param key    the header key name
-     * @return the meta data line, or null if there is none
-     */
-    public VCFHeaderLine getOtherHeaderLine(final String key) {
-        return mOtherMetaData.get(key);
-    }
-
-    /**
-     * If true additional engine headers will be written to the VCF, otherwise only the walker headers will be output.
-     * @return true if additional engine headers will be written to the VCF
-     */
-    public boolean isWriteEngineHeaders() {
-        return writeEngineHeaders;
-    }
-
-    /**
-     * If true additional engine headers will be written to the VCF, otherwise only the walker headers will be output.
-     * @param writeEngineHeaders true if additional engine headers will be written to the VCF
-     */
-    public void setWriteEngineHeaders(final boolean writeEngineHeaders) {
-        this.writeEngineHeaders = writeEngineHeaders;
-    }
-
-    /**
-     * If true, and isWriteEngineHeaders also returns true, the command line will be written to the VCF.
-     * @return true if the command line will be written to the VCF
-     */
-    public boolean isWriteCommandLine() {
-        return writeCommandLine;
-    }
-
-    /**
-     * If true, and isWriteEngineHeaders also returns true, the command line will be written to the VCF.
-     * @param writeCommandLine true if the command line will be written to the VCF
-     */
-    public void setWriteCommandLine(final boolean writeCommandLine) {
-        this.writeCommandLine = writeCommandLine;
-    }
-
-    public ArrayList<String> getSampleNamesInOrder() {
-        return sampleNamesInOrder;
-    }
-
-    public HashMap<String, Integer> getSampleNameToOffset() {
-        return sampleNameToOffset;
-    }
-
-    @Override
-    public String toString() {
-        final StringBuilder b = new StringBuilder();
-        b.append("[VCFHeader:");
-        for ( final VCFHeaderLine line : mMetaData )
-            b.append("\n\t").append(line);
-        return b.append("\n]").toString();
-    }
-}
diff --git a/src/java/org/broadinstitute/variant/vcf/VCFHeaderLine.java b/src/java/org/broadinstitute/variant/vcf/VCFHeaderLine.java
deleted file mode 100644
index a096cf1..0000000
--- a/src/java/org/broadinstitute/variant/vcf/VCFHeaderLine.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.vcf;
-
-import org.broad.tribble.TribbleException;
-
-import java.util.Map;
-
-
-/**
- * @author ebanks
- *         <p/>
- *         Class VCFHeaderLine
- *         <p/>
- *         A class representing a key=value entry in the VCF header
- */
-public class VCFHeaderLine implements Comparable {
-    protected static final boolean ALLOW_UNBOUND_DESCRIPTIONS = true;
-    protected static final String UNBOUND_DESCRIPTION = "Not provided in original VCF header";
-
-    private String mKey = null;
-    private String mValue = null;
-
-    /**
-     * create a VCF header line
-     *
-     * @param key     the key for this header line
-     * @param value   the value for this header line
-     */
-    public VCFHeaderLine(String key, String value) {
-        if ( key == null )
-            throw new IllegalArgumentException("VCFHeaderLine: key cannot be null");
-        if ( key.contains("<") || key.contains(">") )
-            throw new IllegalArgumentException("VCFHeaderLine: key cannot contain angle brackets");
-        if ( key.contains("=") )
-            throw new IllegalArgumentException("VCFHeaderLine: key cannot contain an equals sign");
-        mKey = key;
-        mValue = value;
-    }
-
-    /**
-     * Get the key
-     *
-     * @return the key
-     */
-    public String getKey() {
-        return mKey;
-    }
-
-    /**
-     * Get the value
-     *
-     * @return the value
-     */
-    public String getValue() {
-        return mValue;
-    }
-
-    /**
-     * By default the header lines won't be added to the dictionary, unless this method will be override (for example in FORMAT, INFO or FILTER header lines)
-     *
-     * @return false
-     */
-    public boolean shouldBeAddedToDictionary() {
-        return false;
-    }
-
-    public String toString() {
-        return toStringEncoding();
-    }
-
-    /**
-     * Should be overloaded in sub classes to do subclass specific
-     *
-     * @return the string encoding
-     */
-    protected String toStringEncoding() {
-        return mKey + "=" + mValue;
-    }
-
-    public boolean equals(Object o) {
-        if ( !(o instanceof VCFHeaderLine) )
-            return false;
-        return mKey.equals(((VCFHeaderLine)o).getKey()) && mValue.equals(((VCFHeaderLine)o).getValue());
-    }
-
-    public int compareTo(Object other) {
-        return toString().compareTo(other.toString());
-    }
-
-    /**
-     * @param line    the line
-     * @return true if the line is a VCF meta data line, or false if it is not
-     */
-    public static boolean isHeaderLine(String line) {
-        return line != null && line.length() > 0 && VCFHeader.HEADER_INDICATOR.equals(line.substring(0,1));
-    }
-
-    /**
-     * create a string of a mapping pair for the target VCF version
-     * @param keyValues a mapping of the key->value pairs to output
-     * @return a string, correctly formatted
-     */
-    public static String toStringEncoding(Map<String, ? extends Object> keyValues) {
-        StringBuilder builder = new StringBuilder();
-        builder.append("<");
-        boolean start = true;
-        for (Map.Entry<String,?> entry : keyValues.entrySet()) {
-            if (start) start = false;
-            else builder.append(",");
-
-            if ( entry.getValue() == null ) throw new TribbleException.InternalCodecException("Header problem: unbound value at " + entry + " from " + keyValues);
-
-            builder.append(entry.getKey());
-            builder.append("=");
-            builder.append(entry.getValue().toString().contains(",") ||
-                           entry.getValue().toString().contains(" ") ||
-                           entry.getKey().equals("Description") ? "\""+ entry.getValue() + "\"" : entry.getValue());
-        }
-        builder.append(">");
-        return builder.toString();
-    }
-}
\ No newline at end of file
diff --git a/src/java/org/broadinstitute/variant/vcf/VCFHeaderLineCount.java b/src/java/org/broadinstitute/variant/vcf/VCFHeaderLineCount.java
deleted file mode 100644
index bae404b..0000000
--- a/src/java/org/broadinstitute/variant/vcf/VCFHeaderLineCount.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.vcf;
-
-/**
- * the count encodings we use for fields in VCF header lines
- */
-public enum VCFHeaderLineCount {
-    INTEGER, A, G, UNBOUNDED;
-}
diff --git a/src/java/org/broadinstitute/variant/vcf/VCFHeaderLineTranslator.java b/src/java/org/broadinstitute/variant/vcf/VCFHeaderLineTranslator.java
deleted file mode 100644
index ab6ee8f..0000000
--- a/src/java/org/broadinstitute/variant/vcf/VCFHeaderLineTranslator.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.vcf;
-
-import org.broad.tribble.TribbleException;
-
-import java.util.*;
-
-/**
- * A class for translating between vcf header versions
- */
-public class VCFHeaderLineTranslator {
-    private static Map<VCFHeaderVersion,VCFLineParser> mapping;
-
-    static {
-        mapping = new HashMap<VCFHeaderVersion,VCFLineParser>();
-        mapping.put(VCFHeaderVersion.VCF4_0,new VCF4Parser());
-        mapping.put(VCFHeaderVersion.VCF4_1,new VCF4Parser());
-        mapping.put(VCFHeaderVersion.VCF4_2,new VCF4Parser());
-        mapping.put(VCFHeaderVersion.VCF3_3,new VCF3Parser());
-        mapping.put(VCFHeaderVersion.VCF3_2,new VCF3Parser());
-    }
-
-    public static Map<String,String> parseLine(VCFHeaderVersion version, String valueLine, List<String> expectedTagOrder) {
-        return mapping.get(version).parseLine(valueLine,expectedTagOrder);
-    }
-}
-
-
-interface VCFLineParser {
-    public Map<String,String> parseLine(String valueLine, List<String> expectedTagOrder);
-}
-
-
-/**
- * a class that handles the to and from disk for VCF 4 lines
- */
-class VCF4Parser implements VCFLineParser {
-    /**
-     * parse a VCF4 line
-     * @param valueLine the line
-     * @return a mapping of the tags parsed out
-     */
-    public Map<String, String> parseLine(String valueLine, List<String> expectedTagOrder) {
-        // our return map
-        Map<String, String> ret = new LinkedHashMap<String, String>();
-
-        // a builder to store up characters as we go
-        StringBuilder builder = new StringBuilder();
-
-        // store the key when we're parsing out the values
-        String key = "";
-
-        // where are we in the stream of characters?
-        int index = 0;
-
-        // are we inside a quotation? we don't special case ',' then
-        boolean inQuote = false;
-
-        // a little switch machine to parse out the tags. Regex ended up being really complicated and ugly [yes, but this machine is getting ugly now... MAD]
-        for (char c: valueLine.toCharArray()) {
-            if ( c == '\"' ) {
-                inQuote = ! inQuote;
-            } else if ( inQuote ) {
-                builder.append(c);
-            } else {
-                switch (c) {
-                    case ('<') : if (index == 0) break; // if we see a open bracket at the beginning, ignore it
-                    case ('>') : if (index == valueLine.length()-1) ret.put(key,builder.toString().trim()); break; // if we see a close bracket, and we're at the end, add an entry to our list
-                    case ('=') : key = builder.toString().trim(); builder = new StringBuilder(); break; // at an equals, copy the key and reset the builder
-                    case (',') : ret.put(key,builder.toString().trim()); builder = new StringBuilder(); break; // drop the current key value to the return map
-                    default: builder.append(c); // otherwise simply append to the current string
-                }
-            }
-            
-            index++;
-        }
-
-        // validate the tags against the expected list
-        index = 0;
-        if ( expectedTagOrder != null ) {
-            if ( ret.size() > expectedTagOrder.size() )
-                throw new TribbleException.InvalidHeader("unexpected tag count " + ret.size() + " in line " + valueLine);
-            for ( String str : ret.keySet() ) {
-                if ( !expectedTagOrder.get(index).equals(str) )
-                    throw new TribbleException.InvalidHeader("Unexpected tag " + str + " in line " + valueLine);
-                index++;
-            }
-        }
-        return ret;
-    }
-}
-
-class VCF3Parser implements VCFLineParser {
-
-    public Map<String, String> parseLine(String valueLine, List<String> expectedTagOrder) {
-        // our return map
-        Map<String, String> ret = new LinkedHashMap<String, String>();
-
-        // a builder to store up characters as we go
-        StringBuilder builder = new StringBuilder();
-
-        // where are we in the stream of characters?
-        int index = 0;
-        // where in the expected tag order are we?
-        int tagIndex = 0;
-
-        // are we inside a quotation? we don't special case ',' then
-        boolean inQuote = false;
-
-        // a little switch machine to parse out the tags. Regex ended up being really complicated and ugly
-        for (char c: valueLine.toCharArray()) {
-            switch (c) {
-                case ('\"') : inQuote = !inQuote; break; // a quote means we ignore ',' in our strings, keep track of it
-                case (',') : if (!inQuote) { ret.put(expectedTagOrder.get(tagIndex++),builder.toString()); builder = new StringBuilder(); break; } // drop the current key value to the return map
-                default: builder.append(c); // otherwise simply append to the current string
-            }
-            index++;
-        }
-        ret.put(expectedTagOrder.get(tagIndex++),builder.toString());
-        
-        // validate the tags against the expected list
-        index = 0;
-        if (tagIndex != expectedTagOrder.size()) throw new IllegalArgumentException("Unexpected tag count " + tagIndex + ", we expected " + expectedTagOrder.size());
-        for (String str : ret.keySet()){
-            if (!expectedTagOrder.get(index).equals(str)) throw new IllegalArgumentException("Unexpected tag " + str + " in string " + valueLine);
-            index++;
-        }
-        return ret;
-    }
-}
\ No newline at end of file
diff --git a/src/java/org/broadinstitute/variant/vcf/VCFHeaderLineType.java b/src/java/org/broadinstitute/variant/vcf/VCFHeaderLineType.java
deleted file mode 100644
index d2d502a..0000000
--- a/src/java/org/broadinstitute/variant/vcf/VCFHeaderLineType.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.vcf;
-
-/**
- * the type encodings we use for fields in VCF header lines
- */
-public enum VCFHeaderLineType {
-    Integer, Float, String, Character, Flag;
-}
diff --git a/src/java/org/broadinstitute/variant/vcf/VCFHeaderVersion.java b/src/java/org/broadinstitute/variant/vcf/VCFHeaderVersion.java
deleted file mode 100644
index 812b4fa..0000000
--- a/src/java/org/broadinstitute/variant/vcf/VCFHeaderVersion.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.vcf;
-
-import org.broad.tribble.TribbleException;
-
-/**
- * information that identifies each header version
- */
-public enum VCFHeaderVersion {
-    VCF3_2("VCRv3.2","format"),
-    VCF3_3("VCFv3.3","fileformat"),
-    VCF4_0("VCFv4.0","fileformat"),
-    VCF4_1("VCFv4.1","fileformat"),
-    VCF4_2("VCFv4.2","fileformat");
-
-    private final String versionString;
-    private final String formatString;
-
-    /**
-     * create the enum, privately, using:
-     * @param vString the version string
-     * @param fString the format string
-     */
-    VCFHeaderVersion(String vString, String fString) {
-        this.versionString = vString;
-        this.formatString = fString;
-    }
-
-    /**
-     * get the header version
-     * @param version the version string
-     * @return a VCFHeaderVersion object
-     */
-    public static VCFHeaderVersion toHeaderVersion(String version) {
-        version = clean(version);
-        for (VCFHeaderVersion hv : VCFHeaderVersion.values())
-            if (hv.versionString.equals(version))
-                    return hv;
-        return null;
-    }
-
-    /**
-     * are we a valid version string of some type
-     * @param version the version string
-     * @return true if we're valid of some type, false otherwise
-     */
-    public static boolean isVersionString(String version){
-        return toHeaderVersion(version) != null;
-    }
-
-    /**
-     * are we a valid format string for some type
-     * @param format the format string
-     * @return true if we're valid of some type, false otherwise
-     */
-    public static boolean isFormatString(String format){
-        format = clean(format);
-        for (VCFHeaderVersion hv : VCFHeaderVersion.values())
-            if (hv.formatString.equals(format))
-                    return true;
-        return false;
-    }
-
-    public static VCFHeaderVersion getHeaderVersion(String versionLine) {
-        String[] lineFields = versionLine.split("=");
-        if ( lineFields.length != 2 || !isFormatString(lineFields[0].substring(2)) )
-            throw new TribbleException.InvalidHeader(versionLine + " is not a valid VCF version line");
-
-        if ( !isVersionString(lineFields[1]) )
-            throw new TribbleException.InvalidHeader(lineFields[1] + " is not a supported version");
-
-        return toHeaderVersion(lineFields[1]);
-    }
-
-    /**
-     * Utility function to clean up a VCF header string
-     * 
-     * @param s string
-     * @return  trimmed version of s
-     */
-    private static String clean(String s) {
-        return s.trim();
-    }
-
-    /**
-     * Determines whether this version is at least as recent as a given version
-     *
-     * @param target   the target version to compare against
-     * @return true if this version is at least as recent as the target version, false otherwise
-     */
-    public boolean isAtLeastAsRecentAs(final VCFHeaderVersion target) {
-        switch (target) {
-            case VCF4_2:
-                return this == VCF4_2;
-            case VCF4_1:
-                return this == VCF4_1 || this == VCF4_2;
-            case VCF4_0:
-                return this != VCF3_2 && this != VCF3_3;
-            case VCF3_3:
-                return this != VCF3_2;
-            case VCF3_2:
-            default:
-                return true;
-        }
-    }
-
-    public String getVersionString() {
-        return versionString;
-    }
-
-    public String getFormatString() {
-        return formatString;
-    }
-}
diff --git a/src/java/org/broadinstitute/variant/vcf/VCFIDHeaderLine.java b/src/java/org/broadinstitute/variant/vcf/VCFIDHeaderLine.java
deleted file mode 100644
index cdd5440..0000000
--- a/src/java/org/broadinstitute/variant/vcf/VCFIDHeaderLine.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.vcf;
-
-/** an interface for ID-based header lines **/
-public interface VCFIDHeaderLine {
-    String getID();
-}
diff --git a/src/java/org/broadinstitute/variant/vcf/VCFInfoHeaderLine.java b/src/java/org/broadinstitute/variant/vcf/VCFInfoHeaderLine.java
deleted file mode 100644
index 5fc64ac..0000000
--- a/src/java/org/broadinstitute/variant/vcf/VCFInfoHeaderLine.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.vcf;
-
-
-/**
- * @author ebanks
- *         <p/>
- *         Class VCFInfoHeaderLine
- *         <p/>
- *         A class representing a key=value entry for INFO fields in the VCF header
- */
-public class VCFInfoHeaderLine extends VCFCompoundHeaderLine {
-    public VCFInfoHeaderLine(String name, int count, VCFHeaderLineType type, String description) {
-        super(name, count, type, description, SupportedHeaderLineType.INFO);
-    }
-
-    public VCFInfoHeaderLine(String name, VCFHeaderLineCount count, VCFHeaderLineType type, String description) {
-        super(name, count, type, description, SupportedHeaderLineType.INFO);
-    }
-
-    public VCFInfoHeaderLine(String line, VCFHeaderVersion version) {
-        super(line, version, SupportedHeaderLineType.INFO);
-    }
-
-    // info fields allow flag values
-    @Override
-    boolean allowFlagValues() {
-        return true;
-    }
-
-    @Override
-    public boolean shouldBeAddedToDictionary() {
-        return true;
-    }
-}
diff --git a/src/java/org/broadinstitute/variant/vcf/VCFRecordCodec.java b/src/java/org/broadinstitute/variant/vcf/VCFRecordCodec.java
deleted file mode 100644
index 15cbf59..0000000
--- a/src/java/org/broadinstitute/variant/vcf/VCFRecordCodec.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package org.broadinstitute.variant.vcf;
-
-import net.sf.samtools.util.SortingCollection;
-import org.broadinstitute.variant.variantcontext.VariantContext;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.io.PrintStream;
-
-/**
- * Writes VariantContext instances to an OutputStream without headers or metadata. For use
- * with SortingCollection ONLY.
- */
-public class VCFRecordCodec implements SortingCollection.Codec<VariantContext> {
-
-	final VCFCodec vcfDecoder = new VCFCodec();
-
-	final VCFEncoder vcfEncoder;
-
-	private PrintStream outputStream = null;
-
-	private BufferedReader inputReader = null;
-
-	public VCFRecordCodec(final VCFHeader header) {
-		this.vcfEncoder = new VCFEncoder(header, false);
-		// Explicitly set the version because it's not available in the header itself.
-		this.vcfDecoder.setVCFHeader(header, VCFHeaderVersion.VCF4_1);
-	}
-
-	@Override
-	public void setOutputStream(final OutputStream stream) {
-		this.outputStream = new PrintStream(stream);
-	}
-
-	@Override
-	public void setInputStream(final InputStream stream) {
-		this.inputReader = new BufferedReader(new InputStreamReader(stream));
-	}
-
-	@Override
-	public void encode(final VariantContext context) {
-		this.outputStream.println(this.vcfEncoder.encode(context));
-	}
-
-	@Override
-	public VariantContext decode() {
-		try {
-			final String line;
-			return ((line = inputReader.readLine()) != null) ? this.vcfDecoder.decode(line) : null;
-		} catch (final IOException ioe) {
-			throw new RuntimeException("Could not decode/read a VCF record for a sorting collection: " + ioe.getMessage(), ioe);
-		}
-	}
-
-	@Override
-	public VCFRecordCodec clone() {
-		return new VCFRecordCodec(this.vcfEncoder.getVCFHeader());
-	}
-}
-
diff --git a/src/java/org/broadinstitute/variant/vcf/VCFSimpleHeaderLine.java b/src/java/org/broadinstitute/variant/vcf/VCFSimpleHeaderLine.java
deleted file mode 100644
index 2ee8261..0000000
--- a/src/java/org/broadinstitute/variant/vcf/VCFSimpleHeaderLine.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.vcf;
-
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-
-
-/**
- * @author ebanks
- * A class representing a key=value entry for simple VCF header types
- */
-public class VCFSimpleHeaderLine extends VCFHeaderLine implements VCFIDHeaderLine {
-
-    private String name;
-    private Map<String, String> genericFields = new LinkedHashMap<String, String>();
-
-    /**
-     * create a VCF filter header line
-     *
-     * @param key            the key for this header line
-     * @param name           the name for this header line
-     * @param description    description for this header line
-     */
-    public VCFSimpleHeaderLine(String key, String name, String description) {
-        super(key, "");
-        Map<String, String> map = new LinkedHashMap<String, String>(1);
-        map.put("Description", description);
-        initialize(name, map);
-    }
-
-    /**
-     * create a VCF info header line
-     *
-     * @param line      the header line
-     * @param version   the vcf header version
-     * @param key            the key for this header line
-     * @param expectedTagOrdering the tag ordering expected for this header line
-     */
-    public VCFSimpleHeaderLine(final String line, final VCFHeaderVersion version, final String key, final List<String> expectedTagOrdering) {
-        this(key, VCFHeaderLineTranslator.parseLine(version, line, expectedTagOrdering));
-    }
-
-    public VCFSimpleHeaderLine(final String key, final Map<String, String> mapping) {
-        super(key, "");
-        name = mapping.get("ID");
-        initialize(name, mapping);
-    }
-
-	/**
-	 * Returns the String value associated with the given key. Returns null if there is no value. Key
-	 * must not be null.
-	 */
-	String getGenericFieldValue(final String key) {
-		return this.genericFields.get(key);
-	}
-
-    protected void initialize(String name, Map<String, String> genericFields) {
-        if ( name == null || genericFields == null || genericFields.isEmpty() )
-            throw new IllegalArgumentException(String.format("Invalid VCFSimpleHeaderLine: key=%s name=%s", super.getKey(), name));
-        if ( name.contains("<") || name.contains(">") )
-            throw new IllegalArgumentException("VCFHeaderLine: ID cannot contain angle brackets");
-        if ( name.contains("=") )
-            throw new IllegalArgumentException("VCFHeaderLine: ID cannot contain an equals sign");
-
-        this.name = name;
-        this.genericFields.putAll(genericFields);
-    }
-
-    protected String toStringEncoding() {
-        Map<String, Object> map = new LinkedHashMap<String, Object>();
-        map.put("ID", name);
-        map.putAll(genericFields);
-        return getKey() + "=" + VCFHeaderLine.toStringEncoding(map);
-    }
-
-    public boolean equals(Object o) {
-        if ( !(o instanceof VCFSimpleHeaderLine) )
-            return false;
-        VCFSimpleHeaderLine other = (VCFSimpleHeaderLine)o;
-        if ( !name.equals(other.name) || genericFields.size() != other.genericFields.size() )
-            return false;
-        for ( Map.Entry<String, String> entry : genericFields.entrySet() ) {
-            if ( !entry.getValue().equals(other.genericFields.get(entry.getKey())) )
-                return false;
-        }
-        
-        return true;       
-    }
-
-    public String getID() {
-        return name;
-    }
-}
\ No newline at end of file
diff --git a/src/java/org/broadinstitute/variant/vcf/VCFStandardHeaderLines.java b/src/java/org/broadinstitute/variant/vcf/VCFStandardHeaderLines.java
deleted file mode 100644
index d289c67..0000000
--- a/src/java/org/broadinstitute/variant/vcf/VCFStandardHeaderLines.java
+++ /dev/null
@@ -1,264 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.vcf;
-
-import com.google.java.contract.Ensures;
-import com.google.java.contract.Requires;
-import org.broad.tribble.TribbleException;
-import org.broadinstitute.variant.utils.GeneralUtils;
-
-import java.util.*;
-
-/**
- * Manages header lines for standard VCF INFO and FORMAT fields
- *
- * Provides simple mechanisms for registering standard lines,
- * looking them up, and adding them to headers
- *
- * @author Mark DePristo
- * @since 6/12
- */
-public class VCFStandardHeaderLines {
-    /**
-     * Enabling this causes us to repair header lines even if only their descriptions differ
-     */
-    private final static boolean REPAIR_BAD_DESCRIPTIONS = false;
-    private static Standards<VCFFormatHeaderLine> formatStandards = new Standards<VCFFormatHeaderLine>();
-    private static Standards<VCFInfoHeaderLine> infoStandards = new Standards<VCFInfoHeaderLine>();
-
-    /**
-     * Walks over the VCF header and repairs the standard VCF header lines in it, returning a freshly
-     * allocated VCFHeader with standard VCF header lines repaired as necessary
-     *
-     * @param header
-     * @return
-     */
-    @Requires("header != null")
-    @Ensures("result != null")
-    public static VCFHeader repairStandardHeaderLines(final VCFHeader header) {
-        final Set<VCFHeaderLine> newLines = new LinkedHashSet<VCFHeaderLine>(header.getMetaDataInInputOrder().size());
-        for ( VCFHeaderLine line : header.getMetaDataInInputOrder() ) {
-            if ( line instanceof VCFFormatHeaderLine ) {
-                line = formatStandards.repair((VCFFormatHeaderLine) line);
-            } else if ( line instanceof VCFInfoHeaderLine) {
-                line = infoStandards.repair((VCFInfoHeaderLine) line);
-            }
-
-            newLines.add(line);
-        }
-
-        return new VCFHeader(newLines, header.getGenotypeSamples());
-    }
-
-    /**
-     * Adds header lines for each of the format fields in IDs to header, returning the set of
-     * IDs without standard descriptions, unless throwErrorForMissing is true, in which
-     * case this situation results in a TribbleException
-     *
-     * @param IDs
-     * @return
-     */
-    public static Set<String> addStandardFormatLines(final Set<VCFHeaderLine> headerLines, final boolean throwErrorForMissing, final Collection<String> IDs) {
-        return formatStandards.addToHeader(headerLines, IDs, throwErrorForMissing);
-    }
-
-    /**
-     * @see #addStandardFormatLines(java.util.Set, boolean, java.util.Collection)
-     *
-     * @param headerLines
-     * @param throwErrorForMissing
-     * @param IDs
-     * @return
-     */
-    public static Set<String> addStandardFormatLines(final Set<VCFHeaderLine> headerLines, final boolean throwErrorForMissing, final String ... IDs) {
-        return addStandardFormatLines(headerLines, throwErrorForMissing, Arrays.asList(IDs));
-    }
-
-    /**
-     * Returns the standard format line for ID.  If none exists, return null or throw an exception, depending
-     * on throwErrorForMissing
-     *
-     * @param ID
-     * @param throwErrorForMissing
-     * @return
-     */
-    public static VCFFormatHeaderLine getFormatLine(final String ID, final boolean throwErrorForMissing) {
-        return formatStandards.get(ID, throwErrorForMissing);
-    }
-
-    /**
-     * Returns the standard format line for ID.  If none exists throw an exception
-     *
-     * @param ID
-     * @return
-     */
-    public static VCFFormatHeaderLine getFormatLine(final String ID) {
-        return formatStandards.get(ID, true);
-    }
-
-    private static void registerStandard(final VCFFormatHeaderLine line) {
-        formatStandards.add(line);
-    }
-
-    /**
-     * Adds header lines for each of the info fields in IDs to header, returning the set of
-     * IDs without standard descriptions, unless throwErrorForMissing is true, in which
-     * case this situation results in a TribbleException
-     *
-     * @param IDs
-     * @return
-     */
-    public static Set<String> addStandardInfoLines(final Set<VCFHeaderLine> headerLines, final boolean throwErrorForMissing, final Collection<String> IDs) {
-        return infoStandards.addToHeader(headerLines, IDs, throwErrorForMissing);
-    }
-
-    /**
-     * @see #addStandardFormatLines(java.util.Set, boolean, java.util.Collection)
-     *
-     * @param IDs
-     * @return
-     */
-    public static Set<String> addStandardInfoLines(final Set<VCFHeaderLine> headerLines, final boolean throwErrorForMissing, final String ... IDs) {
-        return addStandardInfoLines(headerLines, throwErrorForMissing, Arrays.asList(IDs));
-    }
-
-    /**
-     * Returns the standard info line for ID.  If none exists, return null or throw an exception, depending
-     * on throwErrorForMissing
-     *
-     * @param ID
-     * @param throwErrorForMissing
-     * @return
-     */
-    public static VCFInfoHeaderLine getInfoLine(final String ID, final boolean throwErrorForMissing) {
-        return infoStandards.get(ID, throwErrorForMissing);
-    }
-
-    /**
-     * Returns the standard info line for ID.  If none exists throw an exception
-     *
-     * @param ID
-     * @return
-     */
-    public static VCFInfoHeaderLine getInfoLine(final String ID) {
-        return getInfoLine(ID, true);
-    }
-
-    private static void registerStandard(final VCFInfoHeaderLine line) {
-        infoStandards.add(line);
-    }
-
-
-    //
-    // VCF header line constants
-    //
-    static {
-        // FORMAT lines
-        registerStandard(new VCFFormatHeaderLine(VCFConstants.GENOTYPE_KEY, 1, VCFHeaderLineType.String, "Genotype"));
-        registerStandard(new VCFFormatHeaderLine(VCFConstants.GENOTYPE_QUALITY_KEY, 1, VCFHeaderLineType.Integer, "Genotype Quality"));
-        registerStandard(new VCFFormatHeaderLine(VCFConstants.DEPTH_KEY, 1, VCFHeaderLineType.Integer, "Approximate read depth (reads with MQ=255 or with bad mates are filtered)"));
-        registerStandard(new VCFFormatHeaderLine(VCFConstants.GENOTYPE_PL_KEY, VCFHeaderLineCount.G, VCFHeaderLineType.Integer, "Normalized, Phred-scaled likelihoods for genotypes as defined in the VCF specification"));
-        registerStandard(new VCFFormatHeaderLine(VCFConstants.GENOTYPE_ALLELE_DEPTHS, VCFHeaderLineCount.UNBOUNDED, VCFHeaderLineType.Integer, "Allelic depths for the ref and alt alleles in the order listed"));
-        registerStandard(new VCFFormatHeaderLine(VCFConstants.GENOTYPE_FILTER_KEY, 1, VCFHeaderLineType.String, "Genotype-level filter"));
-
-        // INFO lines
-        registerStandard(new VCFInfoHeaderLine(VCFConstants.END_KEY, 1, VCFHeaderLineType.Integer, "Stop position of the interval"));
-        registerStandard(new VCFInfoHeaderLine(VCFConstants.MLE_ALLELE_COUNT_KEY, VCFHeaderLineCount.A, VCFHeaderLineType.Integer, "Maximum likelihood expectation (MLE) for the allele counts (not necessarily the same as the AC), for each ALT allele, in the same order as listed"));
-        registerStandard(new VCFInfoHeaderLine(VCFConstants.MLE_ALLELE_FREQUENCY_KEY, VCFHeaderLineCount.A, VCFHeaderLineType.Float, "Maximum likelihood expectation (MLE) for the allele frequency (not necessarily the same as the AF), for each ALT allele, in the same order as listed"));
-        registerStandard(new VCFInfoHeaderLine(VCFConstants.DOWNSAMPLED_KEY, 0, VCFHeaderLineType.Flag, "Were any of the samples downsampled?"));
-        registerStandard(new VCFInfoHeaderLine(VCFConstants.DBSNP_KEY, 0, VCFHeaderLineType.Flag, "dbSNP Membership"));
-        registerStandard(new VCFInfoHeaderLine(VCFConstants.DEPTH_KEY, 1, VCFHeaderLineType.Integer, "Approximate read depth; some reads may have been filtered"));
-        registerStandard(new VCFInfoHeaderLine(VCFConstants.STRAND_BIAS_KEY, 1, VCFHeaderLineType.Float, "Strand Bias"));
-        registerStandard(new VCFInfoHeaderLine(VCFConstants.ALLELE_FREQUENCY_KEY, VCFHeaderLineCount.A, VCFHeaderLineType.Float, "Allele Frequency, for each ALT allele, in the same order as listed"));
-        registerStandard(new VCFInfoHeaderLine(VCFConstants.ALLELE_COUNT_KEY, VCFHeaderLineCount.A, VCFHeaderLineType.Integer, "Allele count in genotypes, for each ALT allele, in the same order as listed"));
-        registerStandard(new VCFInfoHeaderLine(VCFConstants.ALLELE_NUMBER_KEY, 1, VCFHeaderLineType.Integer, "Total number of alleles in called genotypes"));
-        registerStandard(new VCFInfoHeaderLine(VCFConstants.MAPPING_QUALITY_ZERO_KEY, 1, VCFHeaderLineType.Integer, "Total Mapping Quality Zero Reads"));
-        registerStandard(new VCFInfoHeaderLine(VCFConstants.RMS_MAPPING_QUALITY_KEY, 1, VCFHeaderLineType.Float, "RMS Mapping Quality"));
-        registerStandard(new VCFInfoHeaderLine(VCFConstants.SOMATIC_KEY, 0, VCFHeaderLineType.Flag, "Somatic event"));
-    }
-
-    private static class Standards<T extends VCFCompoundHeaderLine> {
-        private final Map<String, T> standards = new HashMap<String, T>();
-
-        @Requires("line != null")
-        @Ensures({"result != null", "result.getID().equals(line.getID())"})
-        public T repair(final T line) {
-            final T standard = get(line.getID(), false);
-            if ( standard != null ) {
-                final boolean badCountType = line.getCountType() != standard.getCountType();
-                final boolean badCount = line.isFixedCount() && ! badCountType && line.getCount() != standard.getCount();
-                final boolean badType = line.getType() != standard.getType();
-                final boolean badDesc = ! line.getDescription().equals(standard.getDescription());
-                final boolean needsRepair = badCountType || badCount || badType || (REPAIR_BAD_DESCRIPTIONS && badDesc);
-
-                if ( needsRepair ) {
-                    if ( GeneralUtils.DEBUG_MODE_ENABLED ) {
-                        System.err.println("Repairing standard header line for field " + line.getID() + " because"
-                                           + (badCountType ? " -- count types disagree; header has " + line.getCountType() + " but standard is " + standard.getCountType() : "")
-                                           + (badType ? " -- type disagree; header has " + line.getType() + " but standard is " + standard.getType() : "")
-                                           + (badCount ? " -- counts disagree; header has " + line.getCount() + " but standard is " + standard.getCount() : "")
-                                           + (badDesc ? " -- descriptions disagree; header has '" + line.getDescription() + "' but standard is '" + standard.getDescription() + "'": ""));
-                    }
-                    return standard;
-                } else
-                    return line;
-            } else
-                return line;
-        }
-
-        @Requires("headerLines != null")
-        @Ensures({"result != null", "result.isEmpty() || ! throwErrorForMissing", "IDs.containsAll(result)"})
-        public Set<String> addToHeader(final Set<VCFHeaderLine> headerLines, final Collection<String> IDs, final boolean throwErrorForMissing) {
-            final Set<String> missing = new HashSet<String>();
-            for ( final String ID : IDs ) {
-                final T line = get(ID, throwErrorForMissing);
-                if ( line == null )
-                    missing.add(ID);
-                else
-                    headerLines.add(line);
-            }
-
-            return missing;
-        }
-
-        @Requires("line != null")
-        @Ensures({"standards.containsKey(line.getID())"})
-        public void add(final T line) {
-            if ( standards.containsKey(line.getID()) )
-                throw new TribbleException("Attempting to add multiple standard header lines for ID " + line.getID());
-            standards.put(line.getID(), line);
-        }
-
-        @Requires("ID != null")
-        @Ensures({"result != null || ! throwErrorForMissing"})
-        public T get(final String ID, final boolean throwErrorForMissing) {
-            final T x = standards.get(ID);
-            if ( throwErrorForMissing && x == null )
-                throw new TribbleException("Couldn't find a standard VCF header line for field " + ID);
-            return x;
-        }
-    }
-}
diff --git a/src/java/org/broadinstitute/variant/vcf/VCFUtils.java b/src/java/org/broadinstitute/variant/vcf/VCFUtils.java
deleted file mode 100644
index 815c323..0000000
--- a/src/java/org/broadinstitute/variant/vcf/VCFUtils.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.vcf;
-
-import net.sf.samtools.SAMSequenceDictionary;
-import net.sf.samtools.SAMSequenceRecord;
-import org.broadinstitute.variant.utils.GeneralUtils;
-
-import java.io.File;
-import java.util.*;
-
-public class VCFUtils {
-
-    public static Set<VCFHeaderLine> smartMergeHeaders(Collection<VCFHeader> headers, boolean emitWarnings) throws IllegalStateException {
-        HashMap<String, VCFHeaderLine> map = new HashMap<String, VCFHeaderLine>(); // from KEY.NAME -> line
-        HeaderConflictWarner conflictWarner = new HeaderConflictWarner(emitWarnings);
-
-        // todo -- needs to remove all version headers from sources and add its own VCF version line
-        for ( VCFHeader source : headers ) {
-            //System.out.printf("Merging in header %s%n", source);
-            for ( VCFHeaderLine line : source.getMetaDataInSortedOrder()) {
-
-                String key = line.getKey();
-                if ( line instanceof VCFIDHeaderLine )
-                    key = key + "-" + ((VCFIDHeaderLine)line).getID();
-
-                if ( map.containsKey(key) ) {
-                    VCFHeaderLine other = map.get(key);
-                    if ( line.equals(other) ) {
-                        // continue;
-                    } else if ( ! line.getClass().equals(other.getClass()) ) {
-                        throw new IllegalStateException("Incompatible header types: " + line + " " + other );
-                    } else if ( line instanceof VCFFilterHeaderLine ) {
-                        String lineName = ((VCFFilterHeaderLine) line).getID();
-                        String otherName = ((VCFFilterHeaderLine) other).getID();
-                        if ( ! lineName.equals(otherName) )
-                            throw new IllegalStateException("Incompatible header types: " + line + " " + other );
-                    } else if ( line instanceof VCFCompoundHeaderLine ) {
-                        VCFCompoundHeaderLine compLine = (VCFCompoundHeaderLine)line;
-                        VCFCompoundHeaderLine compOther = (VCFCompoundHeaderLine)other;
-
-                        // if the names are the same, but the values are different, we need to quit
-                        if (! (compLine).equalsExcludingDescription(compOther) ) {
-                            if ( compLine.getType().equals(compOther.getType()) ) {
-                                // The Number entry is an Integer that describes the number of values that can be
-                                // included with the INFO field. For example, if the INFO field contains a single
-                                // number, then this value should be 1. However, if the INFO field describes a pair
-                                // of numbers, then this value should be 2 and so on. If the number of possible
-                                // values varies, is unknown, or is unbounded, then this value should be '.'.
-                                conflictWarner.warn(line, "Promoting header field Number to . due to number differences in header lines: " + line + " " + other);
-                                compOther.setNumberToUnbounded();
-                            } else if ( compLine.getType() == VCFHeaderLineType.Integer && compOther.getType() == VCFHeaderLineType.Float ) {
-                                // promote key to Float
-                                conflictWarner.warn(line, "Promoting Integer to Float in header: " + compOther);
-                                map.put(key, compOther);
-                            } else if ( compLine.getType() == VCFHeaderLineType.Float && compOther.getType() == VCFHeaderLineType.Integer ) {
-                                // promote key to Float
-                                conflictWarner.warn(line, "Promoting Integer to Float in header: " + compOther);
-                            } else {
-                                throw new IllegalStateException("Incompatible header types, collision between these two types: " + line + " " + other );
-                            }
-                        }
-                        if ( ! compLine.getDescription().equals(compOther.getDescription()) )
-                            conflictWarner.warn(line, "Allowing unequal description fields through: keeping " + compOther + " excluding " + compLine);
-                    } else {
-                        // we are not equal, but we're not anything special either
-                        conflictWarner.warn(line, "Ignoring header line already in map: this header line = " + line + " already present header = " + other);
-                    }
-                } else {
-                    map.put(key, line);
-                    //System.out.printf("Adding header line %s%n", line);
-                }
-            }
-        }
-
-        return new HashSet<VCFHeaderLine>(map.values());
-    }
-
-    /**
-     * Add / replace the contig header lines in the VCFHeader with the in the reference file and master reference dictionary
-     *
-     * @param oldHeader the header to update
-     * @param referenceFile the file path to the reference sequence used to generate this vcf
-     * @param refDict the SAM formatted reference sequence dictionary
-     */
-    public static VCFHeader withUpdatedContigs(final VCFHeader oldHeader, final File referenceFile, final SAMSequenceDictionary refDict) {
-        return new VCFHeader(withUpdatedContigsAsLines(oldHeader.getMetaDataInInputOrder(), referenceFile, refDict), oldHeader.getGenotypeSamples());
-    }
-
-    public static Set<VCFHeaderLine> withUpdatedContigsAsLines(final Set<VCFHeaderLine> oldLines, final File referenceFile, final SAMSequenceDictionary refDict) {
-        return withUpdatedContigsAsLines(oldLines, referenceFile, refDict, false);
-    }
-
-    public static Set<VCFHeaderLine> withUpdatedContigsAsLines(final Set<VCFHeaderLine> oldLines, final File referenceFile, final SAMSequenceDictionary refDict, boolean referenceNameOnly) {
-        final Set<VCFHeaderLine> lines = new LinkedHashSet<VCFHeaderLine>(oldLines.size());
-
-        for ( final VCFHeaderLine line : oldLines ) {
-            if ( line instanceof VCFContigHeaderLine )
-                continue; // skip old contig lines
-            if ( line.getKey().equals(VCFHeader.REFERENCE_KEY) )
-                continue; // skip the old reference key
-            lines.add(line);
-        }
-
-        for ( final VCFHeaderLine contigLine : makeContigHeaderLines(refDict, referenceFile) )
-            lines.add(contigLine);
-
-        String referenceValue;
-        if (referenceFile != null) {
-            if (referenceNameOnly) {
-                int extensionStart = referenceFile.getName().lastIndexOf(".");
-                referenceValue = extensionStart == -1 ? referenceFile.getName() : referenceFile.getName().substring(0, extensionStart);
-            }
-            else {
-                referenceValue = "file://" + referenceFile.getAbsolutePath();
-            }
-            lines.add(new VCFHeaderLine(VCFHeader.REFERENCE_KEY, referenceValue));
-        }
-        return lines;
-    }
-
-    /**
-     * Create VCFHeaderLines for each refDict entry, and optionally the assembly if referenceFile != null
-     * @param refDict reference dictionary
-     * @param referenceFile for assembly name.  May be null
-     * @return list of vcf contig header lines
-     */
-    public static List<VCFContigHeaderLine> makeContigHeaderLines(final SAMSequenceDictionary refDict,
-                                                                  final File referenceFile) {
-        final List<VCFContigHeaderLine> lines = new ArrayList<VCFContigHeaderLine>();
-        final String assembly = referenceFile != null ? getReferenceAssembly(referenceFile.getName()) : null;
-        for ( SAMSequenceRecord contig : refDict.getSequences() )
-            lines.add(makeContigHeaderLine(contig, assembly));
-        return lines;
-    }
-
-    private static VCFContigHeaderLine makeContigHeaderLine(final SAMSequenceRecord contig, final String assembly) {
-        final Map<String, String> map = new LinkedHashMap<String, String>(3);
-        map.put("ID", contig.getSequenceName());
-        map.put("length", String.valueOf(contig.getSequenceLength()));
-        if ( assembly != null ) map.put("assembly", assembly);
-        return new VCFContigHeaderLine(map, contig.getSequenceIndex());
-    }
-
-    private static String getReferenceAssembly(final String refPath) {
-        // This doesn't need to be perfect as it's not a required VCF header line, but we might as well give it a shot
-        String assembly = null;
-        if (refPath.contains("b37") || refPath.contains("v37"))
-            assembly = "b37";
-        else if (refPath.contains("b36"))
-            assembly = "b36";
-        else if (refPath.contains("hg18"))
-            assembly = "hg18";
-        else if (refPath.contains("hg19"))
-            assembly = "hg19";
-        return assembly;
-    }
-
-    /** Only displays a warning if warnings are enabled and an identical warning hasn't been already issued */
-    private static final class HeaderConflictWarner {
-        boolean emitWarnings;
-        Set<String> alreadyIssued = new HashSet<String>();
-
-        private HeaderConflictWarner( final boolean emitWarnings ) {
-            this.emitWarnings = emitWarnings;
-        }
-
-        public void warn(final VCFHeaderLine line, final String msg) {
-            if ( GeneralUtils.DEBUG_MODE_ENABLED && emitWarnings && ! alreadyIssued.contains(line.getKey()) ) {
-                alreadyIssued.add(line.getKey());
-                System.err.println(msg);
-            }
-        }
-    }
-}
diff --git a/src/java/picard/PicardException.java b/src/java/picard/PicardException.java
new file mode 100644
index 0000000..d08ea6b
--- /dev/null
+++ b/src/java/picard/PicardException.java
@@ -0,0 +1,41 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard;
+
+/**
+ * Basic Picard runtime exception that, for now, does nothing much
+ *
+ * @author Kathleen Tibbetts
+ */
+public class PicardException extends RuntimeException
+{
+    public PicardException(final String message) {
+        super(message);
+    }
+
+    public PicardException(final String message, final Throwable throwable) {
+        super(message, throwable);
+    }
+
+}
diff --git a/src/java/picard/Test.java b/src/java/picard/Test.java
new file mode 100644
index 0000000..c0ac40e
--- /dev/null
+++ b/src/java/picard/Test.java
@@ -0,0 +1,56 @@
+package picard;
+
+import htsjdk.samtools.util.StopWatch;
+import htsjdk.samtools.util.StringUtil;
+
+import java.util.StringTokenizer;
+
+/**
+ *
+ */
+public class Test {
+    private final String text = "C0A69ACXX111213:6:1101:10000:144257\t83\t5\t128984606\t60\t76M\t=\t128984542\t-140\tAGTGTTAGAACTTCCTCCCCAAAGCATATACTTCAGTGGCAAGCTGTCCTGGATGAAGGTATGACCAACCAGATCA\t at FFFEECC>EFHBJIGIFGIEIJJJIHED<IEHIGIIJIIIGJIGJIIIIIJGGCJIIGIHHHBHGHFFDFFFC@@\tXT:A:U\tNM:i:0\tSM:i:37\tAM:i:37\tX0:i:1\tX1:i:0\tXM:i:0\tXO:i:0\tXG:i:0\tMD:Z:76";
+
+    public static void main(String[] args) {
+        new Test().run();
+    }
+
+    public void run() {
+        final int ITERATIONS = 1000000;
+        final String[] fields = new String[10000];
+        final StopWatch watch = new StopWatch();
+
+        watch.start();
+        for (int i=0; i<ITERATIONS; ++i) {
+            if (StringUtil.split(text, fields, '\t') > 100) {
+                System.out.println("Mama Mia that's a lot of tokens!!");
+            }
+        }
+        watch.stop();
+        System.out.println("StringUtil.split() took " + watch.getElapsedTime());
+        watch.reset();
+        
+        watch.start();
+        for (int i=0; i<ITERATIONS; ++i) {
+            if (split(text, fields, "\t") > 100) {
+                System.out.println("Mama Mia that's a lot of tokens!!");
+            }
+        }
+        watch.stop();
+        System.out.println("StringTokenizer took " + watch.getElapsedTime());
+    }
+
+    public int split(final String s, final String[] tokens, final String token) {
+        final StringTokenizer tokenizer = new StringTokenizer(s, token, false);
+        int i=0;
+        while (tokenizer.hasMoreTokens()) {
+            tokens[i++] = tokenizer.nextToken();
+        }
+
+        return i;
+    }
+    
+
+
+
+}
diff --git a/src/java/picard/analysis/AlignmentSummaryMetrics.java b/src/java/picard/analysis/AlignmentSummaryMetrics.java
new file mode 100644
index 0000000..4a7db22
--- /dev/null
+++ b/src/java/picard/analysis/AlignmentSummaryMetrics.java
@@ -0,0 +1,162 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.analysis;
+
+import picard.metrics.MultilevelMetrics;
+
+/**
+ * High level metrics about the alignment of reads within a SAM file, produced by
+ * the CollectAlignmentSummaryMetrics program and usually stored in a file with
+ * the extension ".alignment_summary_metrics".
+ */
+public class AlignmentSummaryMetrics extends MultilevelMetrics {
+    public enum Category { UNPAIRED, FIRST_OF_PAIR, SECOND_OF_PAIR, PAIR }
+
+    /**
+     * One of either UNPAIRED (for a fragment run), FIRST_OF_PAIR when metrics are for only the
+     * first read in a paired run, SECOND_OF_PAIR when the metrics are for only the second read
+     * in a paired run or PAIR when the metrics are aggregated for both first and second reads
+     * in a pair.
+     */
+    public Category CATEGORY;
+
+    /**
+     * The total number of reads including all PF and non-PF reads. When CATEGORY equals PAIR
+     * this value will be 2x the number of clusters.
+     */
+    public long TOTAL_READS;
+
+    /** The number of PF reads where PF is defined as passing Illumina's filter. */
+    public long PF_READS;
+
+    /** The percentage of reads that are PF (PF_READS / TOTAL_READS) */
+    public double PCT_PF_READS;
+
+    /**
+     * The number of PF reads that are marked as noise reads.  A noise read is one which is composed
+     * entirely of A bases and/or N bases. These reads are marked as they are usually artifactual and
+     * are of no use in downstream analysis.
+     */
+    public long PF_NOISE_READS;
+
+    /**
+     * The number of PF reads that were aligned to the reference sequence. This includes reads that
+     * aligned with low quality (i.e. their alignments are ambiguous).
+     */
+    public long PF_READS_ALIGNED;
+
+    /**
+     * The percentage of PF reads that aligned to the reference sequence. PF_READS_ALIGNED / PF_READS
+     */
+    public double PCT_PF_READS_ALIGNED;
+    
+    /**
+     * The total number of aligned bases, in all mapped PF reads, that are aligned to the reference sequence.
+     */
+    public long PF_ALIGNED_BASES;
+
+    /**
+     * The number of PF reads that were aligned to the reference sequence with a mapping quality of
+     * Q20 or higher signifying that the aligner estimates a 1/100 (or smaller) chance that the
+     * alignment is wrong.
+     */
+    public long PF_HQ_ALIGNED_READS;
+
+    /**
+     * The number of bases aligned to the reference sequence in reads that were mapped at high
+     * quality.  Will usually approximate PF_HQ_ALIGNED_READS * READ_LENGTH but may differ when
+     * either mixed read lengths are present or many reads are aligned with gaps.
+     */
+    public long PF_HQ_ALIGNED_BASES;
+
+    /**
+     * The subset of PF_HQ_ALIGNED_BASES where the base call quality was Q20 or higher.
+     */
+    public long PF_HQ_ALIGNED_Q20_BASES;
+
+    /**
+     * The median number of mismatches versus the reference sequence in reads that were aligned
+     * to the reference at high quality (i.e. PF_HQ_ALIGNED READS).
+     */
+    public double PF_HQ_MEDIAN_MISMATCHES;
+
+    /**
+     * The rate of bases mismatching the reference for all bases aligned to the reference sequence.
+     */
+    public double PF_MISMATCH_RATE;
+
+    /**
+     * The percentage of bases that mismatch the reference in PF HQ aligned reads.
+     */
+    public double PF_HQ_ERROR_RATE;
+
+    /**
+     * The number of insertion and deletion events per 100 aligned bases.  Uses the number of events
+     * as the numerator, not the number of inserted or deleted bases.
+     */
+    public double PF_INDEL_RATE;
+
+    /**
+     * The mean read length of the set of reads examined.  When looking at the data for a single lane with
+     * equal length reads this number is just the read length.  When looking at data for merged lanes with
+     * differing read lengths this is the mean read length of all reads.
+     */
+    public double MEAN_READ_LENGTH;
+
+    /**
+     * The number of aligned reads whose mate pair was also aligned to the reference.
+     */
+    public long READS_ALIGNED_IN_PAIRS;
+
+    /**
+     * The percentage of reads whose mate pair was also aligned to the reference.
+     * READS_ALIGNED_IN_PAIRS / PF_READS_ALIGNED
+     */
+    public double PCT_READS_ALIGNED_IN_PAIRS;
+
+    /**
+     * The number of instrument cycles in which 80% or more of base calls were no-calls.
+     */
+    public long BAD_CYCLES;
+
+    /**
+     * The number of PF reads aligned to the positive strand of the genome divided by the number of
+     * PF reads aligned to the genome.
+     */
+    public double STRAND_BALANCE;
+
+    /**
+     * The percentage of reads that map outside of a maximum insert size (usually 100kb) or that have
+     * the two ends mapping to different chromosomes.
+     */
+    public double PCT_CHIMERAS;
+
+    /**
+     * The percentage of PF reads that are unaligned and match to a known adapter sequence right from the
+     * start of the read.
+     */
+    public double PCT_ADAPTER;
+
+}
diff --git a/src/java/picard/analysis/AlignmentSummaryMetricsCollector.java b/src/java/picard/analysis/AlignmentSummaryMetricsCollector.java
new file mode 100644
index 0000000..7f5327d
--- /dev/null
+++ b/src/java/picard/analysis/AlignmentSummaryMetricsCollector.java
@@ -0,0 +1,390 @@
+package picard.analysis;
+
+import htsjdk.samtools.AlignmentBlock;
+import htsjdk.samtools.BAMRecord;
+import htsjdk.samtools.CigarElement;
+import htsjdk.samtools.CigarOperator;
+import htsjdk.samtools.ReservedTagConstants;
+import htsjdk.samtools.SAMReadGroupRecord;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.metrics.MetricsFile;
+import htsjdk.samtools.reference.ReferenceSequence;
+import htsjdk.samtools.util.CoordMath;
+import htsjdk.samtools.util.Histogram;
+import htsjdk.samtools.util.SequenceUtil;
+import htsjdk.samtools.util.StringUtil;
+import picard.metrics.PerUnitMetricCollector;
+import picard.metrics.SAMRecordAndReference;
+import picard.metrics.SAMRecordAndReferenceMultiLevelCollector;
+
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+public class AlignmentSummaryMetricsCollector extends SAMRecordAndReferenceMultiLevelCollector<AlignmentSummaryMetrics, Comparable<?>> {
+    // If we have a reference sequence, collect metrics on how well we aligned to it
+    private final boolean doRefMetrics;
+
+    //the adapter sequences converted to byte arrays
+    private final byte[][] adapterKmers;
+
+    //A list of Strings representing the sequence of bases in an adapter
+    private final List<String> adapterSequence;
+
+    //Paired end reads above this insert size will be considered chimeric along with inter-chromosomal pairs.
+    private final int maxInsertSize;
+
+
+    //Whether the SAM or BAM file consists of bisulfite sequenced reads.
+    private final boolean isBisulfiteSequenced;
+
+    //The minimum mapping quality a base has to meet in order to be considered high quality
+    private final int MAPPING_QUALITY_THRESOLD = 20;
+
+    //The minimum quality a base has to meet in order to be consider hq_20
+    private final static int BASE_QUALITY_THRESHOLD = 20;
+
+    //The number of bases to check in order to map a read to an adapter
+    private static final int ADAPTER_MATCH_LENGTH = 16;
+
+    // The maximum number of mismatches a read can have and still be considered as matching an adapter
+    private static final int MAX_ADAPTER_ERRORS = 1;
+
+    public AlignmentSummaryMetricsCollector(final Set<MetricAccumulationLevel> accumulationLevels, final List<SAMReadGroupRecord> samRgRecords,
+                                            final boolean doRefMetrics, final List<String> adapterSequence, final int maxInsertSize, boolean isBisulfiteSequenced) {
+        this.doRefMetrics       = doRefMetrics;
+        this.adapterSequence    = adapterSequence;
+        this.adapterKmers = prepareAdapterSequences();
+        this.maxInsertSize = maxInsertSize;
+        this.isBisulfiteSequenced = isBisulfiteSequenced;
+        setup(accumulationLevels, samRgRecords);
+    }
+
+    @Override
+    protected PerUnitMetricCollector<AlignmentSummaryMetrics, Comparable<?>, SAMRecordAndReference> makeChildCollector(String sample, String library, String readGroup) {
+        return new GroupAlignmentSummaryMetricsPerUnitMetricCollector(sample, library, readGroup);
+    }
+
+    @Override
+    public void acceptRecord(final SAMRecord rec, final ReferenceSequence ref) {
+        if (!rec.isSecondaryOrSupplementary()) {
+            super.acceptRecord(rec, ref);
+        }
+    }
+
+    /** Converts the supplied adapter sequences to byte arrays in both fwd and rc. */
+    private byte [][] prepareAdapterSequences() {
+        final Set<String> kmers = new HashSet<String>();
+
+        // Make a set of all kmers of adapterMatchLength
+        for (final String seq : adapterSequence) {
+            for (int i=0; i<=seq.length() - ADAPTER_MATCH_LENGTH; ++i) {
+                final String kmer = seq.substring(i, i+ADAPTER_MATCH_LENGTH).toUpperCase();
+
+                int ns = 0;
+                for (final char ch : kmer.toCharArray()) if (ch == 'N') ++ns;
+                if (ns <= MAX_ADAPTER_ERRORS) {
+                    kmers.add(kmer);
+                    kmers.add(SequenceUtil.reverseComplement(kmer));
+                }
+            }
+        }
+
+        // Make an array of byte[] for the kmers
+        final byte [][] adapterKmers = new byte[kmers.size()][];
+        int i=0;
+        for (final String kmer : kmers) {
+            adapterKmers[i++] = StringUtil.stringToBytes(kmer);
+        }
+        return adapterKmers;
+    }
+
+    /**
+     * Checks the first ADAPTER_MATCH_LENGTH bases of the read against known adapter sequences and returns
+     * true if the read matches an adapter sequence with MAX_ADAPTER_ERRORS mismsatches or fewer.
+     *
+     * @param read the basecalls for the read in the order and orientation the machine read them
+     * @return true if the read matches an adapter and false otherwise
+     */
+    private boolean isAdapterSequence(final byte[] read) {
+        if (read.length < ADAPTER_MATCH_LENGTH) return false;
+
+        for (final byte[] adapter : adapterKmers) {
+            int errors = 0;
+
+            for (int i=0; i<adapter.length; ++i) {
+                if (read[i] != adapter[i]) {
+                    if (++errors > MAX_ADAPTER_ERRORS) break;
+                }
+            }
+
+            if (errors <= MAX_ADAPTER_ERRORS) return true;
+        }
+
+        return false;
+    }
+
+    private class GroupAlignmentSummaryMetricsPerUnitMetricCollector implements PerUnitMetricCollector<AlignmentSummaryMetrics, Comparable<?>, SAMRecordAndReference> {
+        final IndividualAlignmentSummaryMetricsCollector unpairedCollector;
+        final IndividualAlignmentSummaryMetricsCollector firstOfPairCollector;
+        final IndividualAlignmentSummaryMetricsCollector secondOfPairCollector;
+        final IndividualAlignmentSummaryMetricsCollector pairCollector;
+        final String sample;
+        final String library;
+        final String readGroup;
+
+        public GroupAlignmentSummaryMetricsPerUnitMetricCollector(final String sample, final String library, final String readGroup) {
+            this.sample = sample;
+            this.library = library;
+            this.readGroup = readGroup;
+            unpairedCollector     = new IndividualAlignmentSummaryMetricsCollector(AlignmentSummaryMetrics.Category.UNPAIRED, sample, library, readGroup);
+            firstOfPairCollector  = new IndividualAlignmentSummaryMetricsCollector(AlignmentSummaryMetrics.Category.FIRST_OF_PAIR, sample, library, readGroup);
+            secondOfPairCollector = new IndividualAlignmentSummaryMetricsCollector(AlignmentSummaryMetrics.Category.SECOND_OF_PAIR, sample, library, readGroup);
+            pairCollector         = new IndividualAlignmentSummaryMetricsCollector(AlignmentSummaryMetrics.Category.PAIR, sample, library, readGroup);
+        }
+
+        public void acceptRecord(final SAMRecordAndReference args) {
+            final SAMRecord rec         = args.getSamRecord();
+            final ReferenceSequence ref = args.getReferenceSequence();
+
+            if (rec.getReadPairedFlag()) {
+                if (rec.getFirstOfPairFlag()) {
+                    firstOfPairCollector.addRecord(rec, ref);
+                }
+                else {
+                    secondOfPairCollector.addRecord(rec, ref);
+                }
+
+                pairCollector.addRecord(rec, ref);
+            }
+            else {
+                unpairedCollector.addRecord(rec, ref);
+            }
+        }
+
+        @Override
+        public void finish() {
+            // Let the collectors do any summary computations etc.
+            unpairedCollector.onComplete();
+            firstOfPairCollector.onComplete();
+            secondOfPairCollector.onComplete();
+            pairCollector.onComplete();
+        }
+
+        @Override
+        public void addMetricsToFile(final MetricsFile<AlignmentSummaryMetrics, Comparable<?>> file) {
+            if (firstOfPairCollector.getMetrics().TOTAL_READS > 0) {
+                // override how bad cycle is determined for paired reads, it should be
+                // the sum of first and second reads
+                pairCollector.getMetrics().BAD_CYCLES = firstOfPairCollector.getMetrics().BAD_CYCLES +
+                        secondOfPairCollector.getMetrics().BAD_CYCLES;
+
+                file.addMetric(firstOfPairCollector.getMetrics());
+                file.addMetric(secondOfPairCollector.getMetrics());
+                file.addMetric(pairCollector.getMetrics());
+            }
+
+            //if there are no reads in any category then we will returned an unpaired alignment summary metric with all zero values
+            if (unpairedCollector.getMetrics().TOTAL_READS > 0 || firstOfPairCollector.getMetrics().TOTAL_READS == 0) {
+                file.addMetric(unpairedCollector.getMetrics());
+            }
+        }
+
+        /**
+         * Class that counts reads that match various conditions
+         */
+        private class IndividualAlignmentSummaryMetricsCollector {
+            private long numPositiveStrand = 0;
+            private final Histogram<Integer> readLengthHistogram = new Histogram<Integer>();
+            private AlignmentSummaryMetrics metrics;
+            private long chimeras;
+            private long chimerasDenominator;
+            private long adapterReads;
+            private long indels;
+
+            private long nonBisulfiteAlignedBases = 0;
+            private long hqNonBisulfiteAlignedBases = 0;
+            private final Histogram<Long> mismatchHistogram = new Histogram<Long>();
+            private final Histogram<Long> hqMismatchHistogram = new Histogram<Long>();
+            private final Histogram<Integer> badCycleHistogram = new Histogram<Integer>();
+
+            public IndividualAlignmentSummaryMetricsCollector(final AlignmentSummaryMetrics.Category pairingCategory,
+                                                              final String sample,
+                                                              final String library,
+                                                              final String readGroup) {
+                metrics = new AlignmentSummaryMetrics();
+                metrics.CATEGORY = pairingCategory;
+                metrics.SAMPLE = sample;
+                metrics.LIBRARY = library;
+                metrics.READ_GROUP = readGroup;
+            }
+
+            public void addRecord(final SAMRecord record, final ReferenceSequence ref) {
+                if (record.isSecondaryOrSupplementary()) {
+                    // only want 1 count per read so skip non primary alignments
+                    return;
+                }
+
+                collectReadData(record, ref);
+                collectQualityData(record, ref);
+            }
+
+            public void onComplete() {
+                //summarize read data
+                if (metrics.TOTAL_READS > 0)
+                {
+                    metrics.PCT_PF_READS = (double) metrics.PF_READS / (double) metrics.TOTAL_READS;
+                    metrics.PCT_ADAPTER = this.adapterReads / (double) metrics.PF_READS;
+                    metrics.MEAN_READ_LENGTH = readLengthHistogram.getMean();
+
+                    //Calculate BAD_CYCLES
+                    metrics.BAD_CYCLES = 0;
+                    for (final Histogram<Integer>.Bin cycleBin : badCycleHistogram.values()) {
+                        final double badCyclePercentage = cycleBin.getValue() / metrics.TOTAL_READS;
+                        if (badCyclePercentage >= .8) {
+                            metrics.BAD_CYCLES++;
+                        }
+                    }
+
+                    if(doRefMetrics) {
+                        if (metrics.PF_READS > 0)         metrics.PCT_PF_READS_ALIGNED = (double) metrics.PF_READS_ALIGNED / (double) metrics.PF_READS;
+                        if (metrics.PF_READS_ALIGNED > 0) metrics.PCT_READS_ALIGNED_IN_PAIRS = (double) metrics.READS_ALIGNED_IN_PAIRS/ (double) metrics.PF_READS_ALIGNED;
+                        if (metrics.PF_READS_ALIGNED > 0) metrics.STRAND_BALANCE = numPositiveStrand / (double) metrics.PF_READS_ALIGNED;
+                        if (this.chimerasDenominator > 0) metrics.PCT_CHIMERAS = this.chimeras / (double) this.chimerasDenominator;
+
+                        if (nonBisulfiteAlignedBases > 0) metrics.PF_MISMATCH_RATE = mismatchHistogram.getSum() / (double) nonBisulfiteAlignedBases;
+                        metrics.PF_HQ_MEDIAN_MISMATCHES = hqMismatchHistogram.getMedian();
+                        if (hqNonBisulfiteAlignedBases > 0) metrics.PF_HQ_ERROR_RATE = hqMismatchHistogram.getSum() / (double) hqNonBisulfiteAlignedBases;
+                        if (metrics.PF_ALIGNED_BASES > 0) metrics.PF_INDEL_RATE = this.indels / (double) metrics.PF_ALIGNED_BASES;
+                    }
+                }
+            }
+
+            private void collectReadData(final SAMRecord record, final ReferenceSequence ref) {
+                metrics.TOTAL_READS++;
+                readLengthHistogram.increment(record.getReadBases().length);
+
+                if (!record.getReadFailsVendorQualityCheckFlag()) {
+                    metrics.PF_READS++;
+                    if (isNoiseRead(record)) metrics.PF_NOISE_READS++;
+
+                    if (record.getReadUnmappedFlag()) {
+                        // If the read is unmapped see if it's adapter sequence
+                        final byte[] readBases = record.getReadBases();
+                        if (!(record instanceof BAMRecord)) StringUtil.toUpperCase(readBases);
+
+                        if (isAdapterSequence(readBases)) {
+                            this.adapterReads++;
+                        }
+                    }
+                    else if(doRefMetrics) {
+                        metrics.PF_READS_ALIGNED++;
+                        if (!record.getReadNegativeStrandFlag()) numPositiveStrand++;
+
+                        if (record.getReadPairedFlag() && !record.getMateUnmappedFlag()) {
+                            metrics.READS_ALIGNED_IN_PAIRS++;
+
+                            // Check that both ends have mapq > minimum
+                            final Integer mateMq = record.getIntegerAttribute("MQ");
+                            if (mateMq == null || mateMq >= MAPPING_QUALITY_THRESOLD && record.getMappingQuality() >= MAPPING_QUALITY_THRESOLD) {
+                                ++this.chimerasDenominator;
+
+                                // With both reads mapped we can see if this pair is chimeric
+                                if (Math.abs(record.getInferredInsertSize()) > maxInsertSize ||
+                                        !record.getReferenceIndex().equals(record.getMateReferenceIndex())) {
+                                    ++this.chimeras;
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+
+            private void collectQualityData(final SAMRecord record, final ReferenceSequence reference) {
+                // If the read isnt an aligned PF read then look at the read for no-calls
+                if (record.getReadUnmappedFlag() || record.getReadFailsVendorQualityCheckFlag() || !doRefMetrics) {
+                    final byte[] readBases = record.getReadBases();
+                    for (int i = 0; i < readBases.length; i++) {
+                        if (SequenceUtil.isNoCall(readBases[i])) {
+                            badCycleHistogram.increment(CoordMath.getCycle(record.getReadNegativeStrandFlag(), readBases.length, i));
+                        }
+                    }
+                }
+                else if (!record.getReadFailsVendorQualityCheckFlag()) {
+                    final boolean highQualityMapping = isHighQualityMapping(record);
+                    if (highQualityMapping) metrics.PF_HQ_ALIGNED_READS++;
+
+                    final byte[] readBases = record.getReadBases();
+                    final byte[] refBases = reference.getBases();
+                    final byte[] qualities  = record.getBaseQualities();
+                    final int refLength = refBases.length;
+                    long mismatchCount   = 0;
+                    long hqMismatchCount = 0;
+
+                    for (final AlignmentBlock alignmentBlock : record.getAlignmentBlocks()) {
+                        final int readIndex = alignmentBlock.getReadStart() - 1;
+                        final int refIndex  = alignmentBlock.getReferenceStart() - 1;
+                        final int length    = alignmentBlock.getLength();
+
+                        for (int i=0; i<length && refIndex+i<refLength; ++i) {
+                            final int readBaseIndex = readIndex + i;
+                            boolean mismatch = !SequenceUtil.basesEqual(readBases[readBaseIndex], refBases[refIndex+i]);
+                            boolean bisulfiteBase = false;
+                            if (mismatch && isBisulfiteSequenced) {
+                                if ( (record.getReadNegativeStrandFlag() &&
+                                        (refBases[refIndex+i] == 'G' || refBases[refIndex+i] =='g') &&
+                                        (readBases[readBaseIndex] == 'A' || readBases[readBaseIndex] == 'a'))
+                                        || ((!record.getReadNegativeStrandFlag()) &&
+                                        (refBases[refIndex+i] == 'C' || refBases[refIndex+i] == 'c') &&
+                                        (readBases[readBaseIndex] == 'T') || readBases[readBaseIndex] == 't') ) {
+
+                                    bisulfiteBase = true;
+                                    mismatch = false;
+                                }
+                            }
+
+                            if(mismatch) mismatchCount++;
+
+                            metrics.PF_ALIGNED_BASES++;
+                            if(!bisulfiteBase) nonBisulfiteAlignedBases++;
+
+                            if (highQualityMapping) {
+                                metrics.PF_HQ_ALIGNED_BASES++;
+                                if (!bisulfiteBase) hqNonBisulfiteAlignedBases++;
+                                if (qualities[readBaseIndex] >= BASE_QUALITY_THRESHOLD) metrics.PF_HQ_ALIGNED_Q20_BASES++;
+                                if (mismatch) hqMismatchCount++;
+                            }
+
+                            if (mismatch || SequenceUtil.isNoCall(readBases[readBaseIndex])) {
+                                badCycleHistogram.increment(CoordMath.getCycle(record.getReadNegativeStrandFlag(), readBases.length, i));
+                            }
+                        }
+                    }
+
+                    mismatchHistogram.increment(mismatchCount);
+                    hqMismatchHistogram.increment(hqMismatchCount);
+
+                    // Add any insertions and/or deletions to the global count
+                    for (final CigarElement elem : record.getCigar().getCigarElements()) {
+                        final CigarOperator op = elem.getOperator();
+                        if (op == CigarOperator.INSERTION || op == CigarOperator.DELETION) ++ this.indels;
+                    }
+                }
+            }
+
+            private boolean isNoiseRead(final SAMRecord record) {
+                final Object noiseAttribute = record.getAttribute(ReservedTagConstants.XN);
+                return (noiseAttribute != null && noiseAttribute.equals(1));
+            }
+
+            private boolean isHighQualityMapping(final SAMRecord record) {
+                return !record.getReadFailsVendorQualityCheckFlag() &&
+                        record.getMappingQuality() >= MAPPING_QUALITY_THRESOLD;
+            }
+
+            public AlignmentSummaryMetrics getMetrics() {
+                return this.metrics;
+            }
+        }
+    }
+}
diff --git a/src/java/picard/analysis/BaseDistributionByCycleMetrics.java b/src/java/picard/analysis/BaseDistributionByCycleMetrics.java
new file mode 100644
index 0000000..8884f06
--- /dev/null
+++ b/src/java/picard/analysis/BaseDistributionByCycleMetrics.java
@@ -0,0 +1,13 @@
+package picard.analysis;
+
+import htsjdk.samtools.metrics.MetricBase;
+
+public class BaseDistributionByCycleMetrics extends MetricBase {
+    public int READ_END;
+    public int CYCLE;
+    public double PCT_A;
+    public double PCT_C;
+    public double PCT_G;
+    public double PCT_T;
+    public double PCT_N;
+}
diff --git a/src/java/picard/analysis/CollectAlignmentSummaryMetrics.java b/src/java/picard/analysis/CollectAlignmentSummaryMetrics.java
new file mode 100644
index 0000000..489bdc0
--- /dev/null
+++ b/src/java/picard/analysis/CollectAlignmentSummaryMetrics.java
@@ -0,0 +1,145 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.analysis;
+
+import htsjdk.samtools.Defaults;
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.metrics.MetricsFile;
+import htsjdk.samtools.reference.ReferenceSequence;
+import htsjdk.samtools.util.CollectionUtil;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.Metrics;
+import picard.util.IlluminaUtil;
+
+import java.io.File;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * A command line tool to read a BAM file and produce standard alignment metrics that would be applicable to any alignment.  
+ * Metrics to include, but not limited to:
+ * <ul>
+ * <li>Total number of reads (total, period, no exclusions)</li>
+ * <li>Total number of PF reads (PF == does not fail vendor check flag)</li>
+ * <li>Number of PF noise reads (does not fail vendor check and has noise attr set)</li>
+ * <li>Total aligned PF reads (any PF read that has a sequence and position)</li>
+ * <li>High quality aligned PF reads (high quality == mapping quality >= 20)</li>
+ * <li>High quality aligned PF bases (actual aligned bases, calculate off alignment blocks)</li>
+ * <li>High quality aligned PF Q20 bases (subset of above where base quality >= 20)</li>
+ * <li>Median mismatches in HQ aligned PF reads (how many aligned bases != ref on average)</li>
+ * <li>Reads aligned in pairs (vs. reads aligned with mate unaligned/not present)</li>
+ * <li>Read length (how to handle mixed lengths?)</li>
+ * <li>Bad Cycles - how many machine cycles yielded combined no-call and mismatch rates of >= 80%</li>
+ * <li>Strand balance - reads mapped to positive strand / total mapped reads</li>
+ * </ul>
+ * Metrics are written for the first read of a pair, the second read, and combined for the pair.
+ * 
+ * @author Doug Voet (dvoet at broadinstitute dot org)
+ */
+ at CommandLineProgramProperties(
+        usage = CollectAlignmentSummaryMetrics.USAGE_SUMMARY + CollectAlignmentSummaryMetrics.USAGE_DETAILS,
+        usageShort = CollectAlignmentSummaryMetrics.USAGE_SUMMARY,
+        programGroup = Metrics.class
+)
+public class CollectAlignmentSummaryMetrics extends SinglePassSamProgram {
+    static final String USAGE_SUMMARY = "Produces a file containing summary alignment metrics from a SAM or BAM.";
+    static final String USAGE_DETAILS = "<br />" +
+            "<h4>Usage example:</h4>" +
+            "<pre>" +
+            "    java -jar picard.jar CollectAlignmentMetrics \\<br />" +
+            "        R=reference.fasta \\<br />" +
+            "        I=input.bam \\<br />" +
+            "        O=output.txt" +
+            "</pre>" +
+            "<hr />";
+    
+    private static final Log log = Log.getInstance(CollectAlignmentSummaryMetrics.class);
+
+    // Usage and parameters
+
+    @Option(doc="Paired end reads above this insert size will be considered chimeric along with inter-chromosomal pairs.")
+    public int MAX_INSERT_SIZE = 100000;
+
+    @Option(doc="List of adapter sequences to use when processing the alignment metrics")
+	public List<String> ADAPTER_SEQUENCE = CollectionUtil.makeList(
+        IlluminaUtil.IlluminaAdapterPair.SINGLE_END.get5PrimeAdapter(),
+        IlluminaUtil.IlluminaAdapterPair.SINGLE_END.get3PrimeAdapter(),
+        IlluminaUtil.IlluminaAdapterPair.PAIRED_END.get5PrimeAdapter(),
+        IlluminaUtil.IlluminaAdapterPair.PAIRED_END.get3PrimeAdapter(),
+        IlluminaUtil.IlluminaAdapterPair.INDEXED.get5PrimeAdapter(),
+        IlluminaUtil.IlluminaAdapterPair.INDEXED.get3PrimeAdapter()
+    );
+
+    @Option(shortName="LEVEL", doc="The level(s) at which to accumulate metrics.  ")
+    private Set<MetricAccumulationLevel> METRIC_ACCUMULATION_LEVEL = CollectionUtil.makeSet(MetricAccumulationLevel.ALL_READS);
+
+    @Option(shortName="BS", doc="Whether the SAM or BAM file consists of bisulfite sequenced reads.  ")
+    public boolean IS_BISULFITE_SEQUENCED = false;
+
+    //overridden to make it visible on the commandline and to change the doc.
+    @Option(shortName = StandardOptionDefinitions.REFERENCE_SHORT_NAME, doc = "Reference sequence file. Note that while this argument isn't required, without it only a small subset of the metrics will be calculated.",  optional = true, overridable = true)
+    public File REFERENCE_SEQUENCE = Defaults.REFERENCE_FASTA;
+
+    private AlignmentSummaryMetricsCollector collector;
+
+    /** Required main method implementation. */
+    public static void main(final String[] argv) {
+        new CollectAlignmentSummaryMetrics().instanceMainWithExit(argv);
+    }
+
+    /** Silly method that is necessary to give unit test access to call doWork() */
+    protected final int testDoWork() { return doWork(); }
+
+    @Override protected void setup(final SAMFileHeader header, final File samFile) {
+        IOUtil.assertFileIsWritable(OUTPUT);
+
+        if (header.getSequenceDictionary().isEmpty()) {
+            log.warn(INPUT.getAbsoluteFile() + " has no sequence dictionary.  If any reads " +
+                    "in the file are aligned then alignment summary metrics collection will fail.");
+        }
+
+        final boolean doRefMetrics = REFERENCE_SEQUENCE != null;
+        collector = new AlignmentSummaryMetricsCollector(METRIC_ACCUMULATION_LEVEL, header.getReadGroups(), doRefMetrics,
+                ADAPTER_SEQUENCE, MAX_INSERT_SIZE,  IS_BISULFITE_SEQUENCED);
+    }
+
+    @Override protected void acceptRead(final SAMRecord rec, final ReferenceSequence ref) {
+        collector.acceptRecord(rec, ref);
+    }
+
+    @Override protected void finish() {
+        collector.finish();
+
+        final MetricsFile<AlignmentSummaryMetrics, Comparable<?>> file = getMetricsFile();
+        collector.addAllLevelsToFile(file);
+
+        file.write(OUTPUT);
+    }
+}
diff --git a/src/java/picard/analysis/CollectBaseDistributionByCycle.java b/src/java/picard/analysis/CollectBaseDistributionByCycle.java
new file mode 100644
index 0000000..fb3bacd
--- /dev/null
+++ b/src/java/picard/analysis/CollectBaseDistributionByCycle.java
@@ -0,0 +1,188 @@
+package picard.analysis;
+
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMReadGroupRecord;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.metrics.MetricsFile;
+import htsjdk.samtools.reference.ReferenceSequence;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+
+import java.io.File;
+import java.util.Arrays;
+import java.util.List;
+
+import htsjdk.samtools.util.StringUtil;
+import picard.PicardException;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.programgroups.Metrics;
+import picard.util.RExecutor;
+
+ at CommandLineProgramProperties(
+        usage = "Program to chart the nucleotide distribution per cycle in a SAM or BAM file.",
+        usageShort = "Program to chart the nucleotide distribution per cycle in a SAM or BAM file.",
+        programGroup = Metrics.class
+)
+public class CollectBaseDistributionByCycle extends SinglePassSamProgram {
+
+    @Option(shortName = "CHART", doc = "A file (with .pdf extension) to write the chart to.")
+    public File CHART_OUTPUT;
+
+    @Option(doc = "If set to true, calculate the base distribution over aligned reads only.")
+    public boolean ALIGNED_READS_ONLY = false;
+
+    @Option(doc = "If set to true calculate the base distribution over PF reads only.")
+    public boolean PF_READS_ONLY = false;
+
+    private HistogramGenerator hist;
+    private String plotSubtitle = "";
+    private final Log log = Log.getInstance(CollectBaseDistributionByCycle.class);
+
+    public static void main(String[] args) {
+        System.exit(new CollectBaseDistributionByCycle().instanceMain(args));
+    }
+
+    @Override
+    protected void setup(final SAMFileHeader header, final File samFile) {
+        IOUtil.assertFileIsWritable(CHART_OUTPUT);
+        final List<SAMReadGroupRecord> readGroups = header.getReadGroups();
+        if (readGroups.size() == 1) {
+            plotSubtitle = StringUtil.asEmptyIfNull(readGroups.get(0).getLibrary());
+        }
+        hist = new HistogramGenerator();
+    }
+
+    @Override
+    protected void acceptRead(final SAMRecord rec, final ReferenceSequence ref) {
+        if ((PF_READS_ONLY) && (rec.getReadFailsVendorQualityCheckFlag())) {
+            return;
+        }
+        if ((ALIGNED_READS_ONLY) && (rec.getReadUnmappedFlag())) {
+            return;
+        }
+        if (rec.isSecondaryOrSupplementary()) {
+            return;
+        }
+        hist.addRecord(rec);
+    }
+
+    @Override
+    protected void finish() {
+        final MetricsFile<BaseDistributionByCycleMetrics, ?> metrics = getMetricsFile();
+        hist.addToMetricsFile(metrics);
+        metrics.write(OUTPUT);
+        if (hist.isEmpty()) {
+            log.warn("No valid bases found in input file. No plot will be produced.");
+        } else {
+            final int rResult = RExecutor.executeFromClasspath("picard/analysis/baseDistributionByCycle.R",
+                    OUTPUT.getAbsolutePath(),
+                    CHART_OUTPUT.getAbsolutePath(),
+                    INPUT.getName(),
+                    plotSubtitle);
+            if (rResult != 0) {
+                throw new PicardException("R script nucleotideDistributionByCycle.R failed with return code " + rResult);
+            }
+        }
+    }
+
+    private class HistogramGenerator {
+        private int maxLengthSoFar = 0;
+        final private long[][] firstReadTotalsByCycle = new long[5][maxLengthSoFar];
+        private long[] firstReadCountsByCycle = new long[maxLengthSoFar];
+        final private long[][] secondReadTotalsByCycle = new long[5][maxLengthSoFar];
+        private long[] secondReadCountsByCycle = new long[maxLengthSoFar];
+        private boolean seenSecondEnd = false;
+
+        private int baseToInt(final byte base) {
+            switch (base) {
+                case 'A':
+                case 'a':
+                    return 0;
+                case 'C':
+                case 'c':
+                    return 1;
+                case 'G':
+                case 'g':
+                    return 2;
+                case 'T':
+                case 't':
+                    return 3;
+            }
+            return 4;
+        }
+
+        void addRecord(final SAMRecord rec) {
+            final byte[] bases = rec.getReadBases();
+            if (bases == null) {
+                return;
+            }
+            final int length = bases.length;
+            final boolean rc = rec.getReadNegativeStrandFlag();
+            ensureArraysBigEnough(length + 1);
+            if ((rec.getReadPairedFlag()) && (rec.getSecondOfPairFlag())) {
+                seenSecondEnd = true;
+                for (int i = 0; i < length; i++) {
+                    final int cycle = rc ? length - i : i + 1;
+                    secondReadTotalsByCycle[baseToInt(bases[i])][cycle] += 1;
+                    secondReadCountsByCycle[cycle] += 1;
+                }
+            } else {
+                for (int i = 0; i < length; i++) {
+                    final int cycle = rc ? length - i : i + 1;
+                    firstReadTotalsByCycle[baseToInt(bases[i])][cycle] += 1;
+                    firstReadCountsByCycle[cycle] += 1;
+                }
+            }
+        }
+
+        private void ensureArraysBigEnough(final int length) {
+            if (length > maxLengthSoFar) {
+                for (int i = 0; i < 5; i++) {
+                    firstReadTotalsByCycle[i] = Arrays.copyOf(firstReadTotalsByCycle[i], length);
+                    secondReadTotalsByCycle[i] = Arrays.copyOf(secondReadTotalsByCycle[i], length);
+                }
+                firstReadCountsByCycle = Arrays.copyOf(firstReadCountsByCycle, length);
+                secondReadCountsByCycle = Arrays.copyOf(secondReadCountsByCycle, length);
+                maxLengthSoFar = length;
+            }
+        }
+
+        boolean isEmpty() {
+            return maxLengthSoFar == 0;
+        }
+
+        public void addToMetricsFile(final MetricsFile<BaseDistributionByCycleMetrics, ?> metrics) {
+            int firstReadLength = 0;
+            for (int i = 0; i < maxLengthSoFar; i++) {
+                if (0 != firstReadCountsByCycle[i]) {
+                    final BaseDistributionByCycleMetrics metric = new BaseDistributionByCycleMetrics();
+                    metric.READ_END = 1;
+                    metric.CYCLE = i;
+                    metric.PCT_A = (100.0 * firstReadTotalsByCycle[0][i] / firstReadCountsByCycle[i]);
+                    metric.PCT_C = (100.0 * firstReadTotalsByCycle[1][i] / firstReadCountsByCycle[i]);
+                    metric.PCT_G = (100.0 * firstReadTotalsByCycle[2][i] / firstReadCountsByCycle[i]);
+                    metric.PCT_T = (100.0 * firstReadTotalsByCycle[3][i] / firstReadCountsByCycle[i]);
+                    metric.PCT_N = (100.0 * firstReadTotalsByCycle[4][i] / firstReadCountsByCycle[i]);
+                    metrics.addMetric(metric);
+                    firstReadLength = i;
+                }
+            }
+            if (seenSecondEnd) {
+                for (int i = 0; i < maxLengthSoFar; i++) {
+                    if (0 != secondReadCountsByCycle[i]) {
+                        final BaseDistributionByCycleMetrics metric = new BaseDistributionByCycleMetrics();
+                        metric.READ_END = 2;
+                        metric.CYCLE = (i + firstReadLength);
+                        metric.PCT_A = (100.0 * secondReadTotalsByCycle[0][i] / secondReadCountsByCycle[i]);
+                        metric.PCT_C = (100.0 * secondReadTotalsByCycle[1][i] / secondReadCountsByCycle[i]);
+                        metric.PCT_G = (100.0 * secondReadTotalsByCycle[2][i] / secondReadCountsByCycle[i]);
+                        metric.PCT_T = (100.0 * secondReadTotalsByCycle[3][i] / secondReadCountsByCycle[i]);
+                        metric.PCT_N = (100.0 * secondReadTotalsByCycle[4][i] / secondReadCountsByCycle[i]);
+                        metrics.addMetric(metric);
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/src/java/picard/analysis/CollectGcBiasMetrics.java b/src/java/picard/analysis/CollectGcBiasMetrics.java
new file mode 100644
index 0000000..e748ecf
--- /dev/null
+++ b/src/java/picard/analysis/CollectGcBiasMetrics.java
@@ -0,0 +1,236 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2015 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.analysis;
+
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.metrics.MetricsFile;
+import htsjdk.samtools.reference.ReferenceSequence;
+import htsjdk.samtools.reference.ReferenceSequenceFile;
+import htsjdk.samtools.reference.ReferenceSequenceFileFactory;
+import htsjdk.samtools.util.CollectionUtil;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.StringUtil;
+import picard.PicardException;
+import picard.analysis.directed.GcBiasMetricsCollector;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.programgroups.Metrics;
+import picard.metrics.GcBiasMetrics;
+import picard.util.RExecutor;
+
+import java.io.File;
+import java.text.NumberFormat;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * Tool to collect information about GC bias in the reads in a given BAM file. Computes
+ * the number of windows (of size specified by WINDOW_SIZE) in the genome at each GC%
+ * and counts the number of read starts in each GC bin.  What is output and plotted is
+ * the "normalized coverage" in each bin - i.e. the number of reads per window normalized
+ * to the average number of reads per window across the whole genome.
+ *
+ * @author Tim Fennell
+ * edited by Kylee Bergin
+ */
+ at CommandLineProgramProperties(
+        usage = "Tool to collect information about GC bias in the reads in a given BAM file. Computes" +
+                " the number of windows (of size specified by WINDOW_SIZE) in the genome at each GC%" +
+                " and counts the number of read starts in each GC bin.  What is output and plotted is" +
+                " the \"normalized coverage\" in each bin - i.e. the number of reads per window normalized" +
+                " to the average number of reads per window across the whole genome..\n",
+        usageShort = "Collects information about GC bias in the reads in the provided SAM or BAM",
+        programGroup = Metrics.class
+)
+public class CollectGcBiasMetrics extends SinglePassSamProgram {
+    /** The location of the R script to do the plotting. */
+    private static final String R_SCRIPT = "picard/analysis/gcBias.R";
+
+    // Usage and parameters
+
+    @Option(shortName = "CHART", doc = "The PDF file to render the chart to.")
+    public File CHART_OUTPUT;
+
+    @Option(shortName = "S", doc = "The text file to write summary metrics to.", optional = true)
+    public File SUMMARY_OUTPUT;
+
+    @Option(doc = "The size of windows on the genome that are used to bin reads.")
+    public int WINDOW_SIZE = 100;
+
+    @Option(doc = "For summary metrics, exclude GC windows that include less than this fraction of the genome.")
+    public double MINIMUM_GENOME_FRACTION = 0.00001;
+
+    @Option(shortName = "BS", doc = "Whether the SAM or BAM file consists of bisulfite sequenced reads.")
+    public boolean IS_BISULFITE_SEQUENCED = false;
+
+    @Option(shortName = "LEVEL", doc = "The level(s) at which to accumulate metrics.")
+    public Set<MetricAccumulationLevel> METRIC_ACCUMULATION_LEVEL = CollectionUtil.makeSet(MetricAccumulationLevel.ALL_READS);
+
+    // Calculates GcBiasMetrics for all METRIC_ACCUMULATION_LEVELs provided
+    private GcBiasMetricsCollector multiCollector;
+
+    //windowSize is the size of the scanning window that goes over the reference
+    private final int windowSize = WINDOW_SIZE;
+    final int[] windowsByGc = new int[WINDOWS];
+
+    // Histograms to track the number of windows at each GC, and the number of read starts
+    // at windows of each GC. Need 101 to get from 0-100.
+    private static final int WINDOWS = 101;
+
+    //Hash map of gc[] with reference name as key
+    private final Map<String, byte[]> gcByRef = new HashMap<String, byte[]>();
+
+    ////////////////////////////////////////////////////////////////////////////
+    // Stock main method
+    ////////////////////////////////////////////////////////////////////////////
+    public static void main(final String[] args) {
+        System.exit(new CollectGcBiasMetrics().instanceMain(args));
+    }
+
+    /////////////////////////////////////////////////////////////////////////////
+    // Setup calculates gc[] for the reference. Must be done at startup to avoid
+    // missing reference sequences in the case of small files that may
+    // not have reads aligning to every reference sequence
+    /////////////////////////////////////////////////////////////////////////////
+    @Override
+    protected void setup(final SAMFileHeader header, final File samFile) {
+        IOUtil.assertFileIsWritable(CHART_OUTPUT);
+
+        if (SUMMARY_OUTPUT != null) IOUtil.assertFileIsWritable(SUMMARY_OUTPUT);
+
+        IOUtil.assertFileIsReadable(REFERENCE_SEQUENCE);
+
+        final ReferenceSequenceFile refFile = ReferenceSequenceFileFactory.getReferenceSequenceFile(REFERENCE_SEQUENCE);
+        ReferenceSequence ref;
+
+        while ((ref = refFile.nextSequence()) != null) {
+            final byte[] refBases = ref.getBases();
+            final String refName = ref.getName();
+            StringUtil.toUpperCase(refBases);
+            final int refLength = refBases.length;
+            final int lastWindowStart = refLength - windowSize;
+            final byte[] gc = calculateAllGcs(refBases, windowsByGc, lastWindowStart);
+            gcByRef.put(refName, gc);
+        }
+        //Delegate actual collection to GcBiasMetricCollector
+        multiCollector = new GcBiasMetricsCollector(METRIC_ACCUMULATION_LEVEL, gcByRef, windowsByGc, header.getReadGroups(), windowSize, IS_BISULFITE_SEQUENCED);
+    }
+
+    ////////////////////////////////////////////////////////////////////////////
+    // MultiCollector acceptRead
+    ////////////////////////////////////////////////////////////////////////////
+    @Override
+    protected void acceptRead(final SAMRecord rec, final ReferenceSequence ref) {
+        multiCollector.acceptRecord(rec, ref);
+    }
+
+    /////////////////////////////////////////////////////////////////////////////
+    // Write out all levels of normalized coverage metrics to a file
+    /////////////////////////////////////////////////////////////////////////////
+    @Override
+    protected void finish() {
+        multiCollector.finish();
+        final MetricsFile<GcBiasMetrics, Integer> file = getMetricsFile();
+        final MetricsFile<GcBiasDetailMetrics, ?> detailMetricsFile = getMetricsFile();
+        final MetricsFile<GcBiasSummaryMetrics, ?> summaryMetricsFile = getMetricsFile();
+        multiCollector.addAllLevelsToFile(file);
+        final List<GcBiasMetrics> gcBiasMetricsList = file.getMetrics();
+        for(final GcBiasMetrics gcbm : gcBiasMetricsList){
+            final List<GcBiasDetailMetrics> gcDetailList = gcbm.DETAILS.getMetrics();
+            for(final GcBiasDetailMetrics d : gcDetailList) {
+                detailMetricsFile.addMetric(d);
+            }
+            summaryMetricsFile.addMetric(gcbm.SUMMARY);
+        }
+        detailMetricsFile.write(OUTPUT);
+        summaryMetricsFile.write(SUMMARY_OUTPUT);
+
+        final NumberFormat fmt = NumberFormat.getIntegerInstance();
+        fmt.setGroupingUsed(true);
+        RExecutor.executeFromClasspath(R_SCRIPT,
+                OUTPUT.getAbsolutePath(),
+                SUMMARY_OUTPUT.getAbsolutePath(),
+                CHART_OUTPUT.getAbsolutePath(),
+                String.valueOf(WINDOW_SIZE));
+    }
+
+    /////////////////////////////////////////////////////////////////////////////
+    // Calculcate all the GC values for all windows
+    /////////////////////////////////////////////////////////////////////////////
+    private byte[] calculateAllGcs(final byte[] refBases, final int[] windowsByGc, final int lastWindowStart) {
+        final CalculateGcState state = new CalculateGcState();
+        final int refLength = refBases.length;
+        final byte[] gc = new byte[refLength + 1];
+        for (int i = 1; i < lastWindowStart; ++i) {
+            final int windowEnd = i + windowSize;
+            final int windowGc = calculateGc(refBases, i, windowEnd, state);
+            gc[i] = (byte) windowGc;
+            if (windowGc != -1) windowsByGc[windowGc]++;
+        }
+        return gc;
+    }
+
+    /////////////////////////////////////////////////////////////////////////////
+    // Calculates GC as a number from 0 to 100 in the specified window.
+    // If the window includes more than five no-calls then -1 is returned.
+    /////////////////////////////////////////////////////////////////////////////
+    private int calculateGc(final byte[] bases, final int startIndex, final int endIndex, final CalculateGcState state) {
+        if (state.init) {
+            state.init = false;
+            state.gcCount = 0;
+            state.nCount = 0;
+            for (int i = startIndex; i < endIndex; ++i) {
+                final byte base = bases[i];
+                if (base == 'G' || base == 'C') ++state.gcCount;
+                else if (base == 'N') ++state.nCount;
+            }
+        } else {
+            final byte newBase = bases[endIndex - 1];
+            if (newBase == 'G' || newBase == 'C') ++state.gcCount;
+            else if (newBase == 'N') ++state.nCount;
+
+            if (state.priorBase == 'G' || state.priorBase == 'C') --state.gcCount;
+            else if (state.priorBase == 'N') --state.nCount;
+        }
+        state.priorBase = bases[startIndex];
+        if (state.nCount > 4) return -1;
+        else return (state.gcCount * 100) / (endIndex - startIndex);
+    }
+
+    /////////////////////////////////////////////////////////////////////////////
+    // Keeps track of current GC calculation state
+    /////////////////////////////////////////////////////////////////////////////
+    class CalculateGcState {
+        boolean init = true;
+        int nCount;
+        int gcCount;
+        byte priorBase;
+    }
+}
+
+
diff --git a/src/java/picard/analysis/CollectInsertSizeMetrics.java b/src/java/picard/analysis/CollectInsertSizeMetrics.java
new file mode 100644
index 0000000..141c5fd
--- /dev/null
+++ b/src/java/picard/analysis/CollectInsertSizeMetrics.java
@@ -0,0 +1,157 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2012 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.analysis;
+
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.metrics.MetricsFile;
+import htsjdk.samtools.reference.ReferenceSequence;
+import htsjdk.samtools.util.CollectionUtil;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import picard.PicardException;
+import picard.analysis.directed.InsertSizeMetricsCollector;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.programgroups.Metrics;
+import picard.util.RExecutor;
+
+import java.io.File;
+import java.util.Set;
+
+/**
+ * Command line program to read non-duplicate insert sizes, create a Histogram
+ * and report distribution statistics.
+ *
+ * @author Doug Voet (dvoet at broadinstitute dot org)
+ */
+ at CommandLineProgramProperties(
+        usage = "Reads a SAM or BAM file and writes a file containing metrics about " +
+                "the statistical distribution of insert size (excluding duplicates) " +
+                "and generates a Histogram plot.",
+        usageShort = "Writes insert size distribution metrics for a SAM or BAM file",
+        programGroup = Metrics.class
+)
+public class CollectInsertSizeMetrics extends SinglePassSamProgram {
+    private static final Log log = Log.getInstance(CollectInsertSizeMetrics.class);
+    private static final String Histogram_R_SCRIPT = "picard/analysis/insertSizeHistogram.R";
+
+    @Option(shortName="H", doc="File to write insert size Histogram chart to.")
+    public File Histogram_FILE;
+
+    @Option(doc="Generate mean, sd and plots by trimming the data down to MEDIAN + DEVIATIONS*MEDIAN_ABSOLUTE_DEVIATION. " +
+            "This is done because insert size data typically includes enough anomalous values from chimeras and other " +
+            "artifacts to make the mean and sd grossly misleading regarding the real distribution.")
+    public double DEVIATIONS = 10;
+
+    @Option(shortName="W", doc="Explicitly sets the Histogram width, overriding automatic truncation of Histogram tail. " +
+            "Also, when calculating mean and standard deviation, only bins <= Histogram_WIDTH will be included.", optional=true)
+    public Integer Histogram_WIDTH = null;
+
+    @Option(shortName="M", doc="When generating the Histogram, discard any data categories (out of FR, TANDEM, RF) that have fewer than this " +
+            "percentage of overall reads. (Range: 0 to 1).")
+    public float MINIMUM_PCT = 0.05f;
+
+    @Option(shortName="LEVEL", doc="The level(s) at which to accumulate metrics.  ")
+    private Set<MetricAccumulationLevel> METRIC_ACCUMULATION_LEVEL = CollectionUtil.makeSet(MetricAccumulationLevel.ALL_READS);
+
+    // Calculates InsertSizeMetrics for all METRIC_ACCUMULATION_LEVELs provided
+    private InsertSizeMetricsCollector multiCollector;
+
+    /** Required main method implementation. */
+    public static void main(final String[] argv) {
+        new CollectInsertSizeMetrics().instanceMainWithExit(argv);
+    }
+
+    /**
+     * Put any custom command-line validation in an override of this method.
+     * clp is initialized at this point and can be used to print usage and access argv.
+     * 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.
+     */
+    @Override
+    protected String[] customCommandLineValidation() {
+         if (MINIMUM_PCT < 0 || MINIMUM_PCT > 0.5) {
+             return new String[]{"MINIMUM_PCT was set to " + MINIMUM_PCT + ". It must be between 0 and 0.5 so all data categories don't get discarded."};
+         }
+
+         return super.customCommandLineValidation();
+    }
+
+    @Override protected boolean usesNoRefReads() { return false; }
+
+    @Override protected void setup(final SAMFileHeader header, final File samFile) {
+        IOUtil.assertFileIsWritable(OUTPUT);
+        IOUtil.assertFileIsWritable(Histogram_FILE);
+
+        //Delegate actual collection to InsertSizeMetricCollector
+        multiCollector = new InsertSizeMetricsCollector(METRIC_ACCUMULATION_LEVEL, header.getReadGroups(), MINIMUM_PCT, Histogram_WIDTH, DEVIATIONS);
+    }
+
+    @Override protected void acceptRead(final SAMRecord record, final ReferenceSequence ref) {
+        multiCollector.acceptRecord(record, ref);
+    }
+
+    @Override protected void finish() {
+        multiCollector.finish();
+
+        final MetricsFile<InsertSizeMetrics, Integer> file = getMetricsFile();
+        multiCollector.addAllLevelsToFile(file);
+
+        if(file.getNumHistograms() == 0) {
+            //can happen if user sets MINIMUM_PCT = 0.5, etc.
+            log.warn("All data categories were discarded because they contained < " + MINIMUM_PCT +
+                     " of the total aligned paired data.");
+            final InsertSizeMetricsCollector.PerUnitInsertSizeMetricsCollector allReadsCollector = (InsertSizeMetricsCollector.PerUnitInsertSizeMetricsCollector) multiCollector.getAllReadsCollector();
+            log.warn("Total mapped pairs in all categories: " + (allReadsCollector == null ? allReadsCollector : allReadsCollector.getTotalInserts()));
+        }
+        else  {
+            file.write(OUTPUT);
+
+            final int rResult;
+            if(Histogram_WIDTH == null) {
+                rResult = RExecutor.executeFromClasspath(
+                    Histogram_R_SCRIPT,
+                    OUTPUT.getAbsolutePath(),
+                    Histogram_FILE.getAbsolutePath(),
+                    INPUT.getName());
+            } else {
+                rResult = RExecutor.executeFromClasspath(
+                    Histogram_R_SCRIPT,
+                    OUTPUT.getAbsolutePath(),
+                    Histogram_FILE.getAbsolutePath(),
+                    INPUT.getName(),
+                    String.valueOf( Histogram_WIDTH ) ); //Histogram_WIDTH is passed because R automatically sets Histogram width to the last
+                                                         //bin that has data, which may be less than Histogram_WIDTH and confuse the user.
+            }
+
+            if (rResult != 0) {
+                throw new PicardException("R script " + Histogram_R_SCRIPT + " failed with return code " + rResult);
+            }
+        }
+    }
+}
diff --git a/src/java/picard/analysis/CollectJumpingLibraryMetrics.java b/src/java/picard/analysis/CollectJumpingLibraryMetrics.java
new file mode 100644
index 0000000..a54035a
--- /dev/null
+++ b/src/java/picard/analysis/CollectJumpingLibraryMetrics.java
@@ -0,0 +1,249 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.analysis;
+
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SAMTag;
+import htsjdk.samtools.SamPairUtil;
+import htsjdk.samtools.SamPairUtil.PairOrientation;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.metrics.MetricsFile;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.Histogram;
+import htsjdk.samtools.util.IOUtil;
+import picard.PicardException;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.Metrics;
+import picard.sam.DuplicationMetrics;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * Command-line program to compute metrics about outward-facing pairs, inward-facing
+ * pairs, and chimeras in a jumping library.
+ *
+ * @author ktibbett at broadinstitute.org
+ */
+ at CommandLineProgramProperties(
+        usage = "Computes jumping library metrics.  Gets all data for computation from the first" +
+                "read in each pair and assumes that the MQ tag is set with the mate's mapping quality.  If the " +
+                "MQ tag is not set, then the program assumes that the mate's mapping quality is >= MINIMUM_MAPPING_QUALITY",
+        usageShort = "Produces jumping library metrics for the provided SAM/BAMs",
+        programGroup = Metrics.class
+)
+public class CollectJumpingLibraryMetrics extends CommandLineProgram {
+    // Usage and parameters
+
+    @Option(shortName = StandardOptionDefinitions.INPUT_SHORT_NAME, doc = "BAM file(s) of reads with duplicates marked")
+    public List<File> INPUT = new ArrayList<File>();
+    @Option(shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc = "File to which metrics should be written")
+    public File OUTPUT;
+    @Option(shortName = StandardOptionDefinitions.MINIMUM_MAPPING_QUALITY_SHORT_NAME, doc = "Mapping quality minimum cutoff")
+    public Integer MINIMUM_MAPPING_QUALITY = 0;
+    @Option(shortName = "T", doc = "When calculating mean and stdev stop when the bins in the tail of the distribution " +
+            "contain fewer than mode/TAIL_LIMIT items")
+    public int TAIL_LIMIT = 10000;
+    @Option(doc = "Jumps greater than or equal to the greater of this value or 2 times the mode of the " +
+            "outward-facing pairs are considered chimeras")
+    public int CHIMERA_KB_MIN = 100000;
+
+    private static final int SAMPLE_FOR_MODE = 50000; // How many outward-facing pairs to sample to determine the mode
+
+    /** Stock main method. */
+    public static void main(String[] args) {
+        System.exit(new CollectJumpingLibraryMetrics().instanceMain(args));
+    }
+
+    /**
+     * Calculates the detailed statistics about the jumping library and then generates the results.
+     */
+    protected int doWork() {
+
+        for (File f : INPUT) {
+            IOUtil.assertFileIsReadable(f);
+        }
+        IOUtil.assertFileIsWritable(OUTPUT);
+
+        Histogram<Integer> innieHistogram = new Histogram<Integer>();
+        Histogram<Integer> outieHistogram = new Histogram<Integer>();
+
+        int fragments = 0;
+        int innies = 0;
+        int outies = 0;
+        int innieDupes = 0;
+        int outieDupes = 0;
+        int crossChromPairs = 0;
+        int superSized = 0;
+        int tandemPairs = 0;
+        double chimeraSizeMinimum = Math.max(getOutieMode(), (double) CHIMERA_KB_MIN);
+
+        for (File f : INPUT) {
+            SamReader reader = SamReaderFactory.makeDefault().open(f);
+
+            if (reader.getFileHeader().getSortOrder() != SAMFileHeader.SortOrder.coordinate) {
+                throw new PicardException("SAM file must " + f.getName() + " must be sorted in coordintate order");
+            }
+
+            for (SAMRecord sam : reader) {
+
+                // We're getting all our info from the first of each pair.
+                if (!sam.getFirstOfPairFlag()) {
+                    continue;
+                }
+
+                // Ignore unmapped read pairs
+                if (sam.getReadUnmappedFlag()) {
+                    if (!sam.getMateUnmappedFlag()) {
+                        fragments++;
+                        continue;
+                    }
+
+                    // If both ends are unmapped and we've hit unaligned reads we're done
+                    if (sam.getReferenceIndex() == SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX) {
+                        break;
+                    }
+                    continue;
+                }
+
+                if (sam.getMateUnmappedFlag()) {
+                    fragments++;
+                    continue;
+                }
+
+                // Ignore low-quality reads.  If we don't have the mate mapping quality, assume it's OK
+                if ((sam.getAttribute(SAMTag.MQ.name()) != null &&
+                        sam.getIntegerAttribute(SAMTag.MQ.name()) < MINIMUM_MAPPING_QUALITY) ||
+                        sam.getMappingQuality() < MINIMUM_MAPPING_QUALITY) {
+                    continue;
+                }
+
+                final int absInsertSize = Math.abs(sam.getInferredInsertSize());
+                if (absInsertSize > chimeraSizeMinimum) {
+                    superSized++;
+                } else if (sam.getMateNegativeStrandFlag() == sam.getReadNegativeStrandFlag()) {
+                    tandemPairs++;
+                } else if (!sam.getMateReferenceIndex().equals(sam.getReferenceIndex())) {
+                    crossChromPairs++;
+                } else {
+                    final PairOrientation pairOrientation = SamPairUtil.getPairOrientation(sam);
+                    if (pairOrientation == PairOrientation.RF) {
+                        outieHistogram.increment(absInsertSize);
+                        outies++;
+                        if (sam.getDuplicateReadFlag()) {
+                            outieDupes++;
+                        }
+                    } else if (pairOrientation == PairOrientation.FR) {
+                        innieHistogram.increment(absInsertSize);
+                        innies++;
+                        if (sam.getDuplicateReadFlag()) {
+                            innieDupes++;
+                        }
+                    } else {
+                        throw new IllegalStateException("This should never happen");
+                    }
+                }
+            }
+            CloserUtil.close(reader);
+        }
+
+        MetricsFile<JumpingLibraryMetrics, Integer> metricsFile = getMetricsFile();
+        JumpingLibraryMetrics metrics = new JumpingLibraryMetrics();
+        metrics.JUMP_PAIRS = outies;
+        metrics.JUMP_DUPLICATE_PAIRS = outieDupes;
+        metrics.JUMP_DUPLICATE_PCT = outies != 0 ? outieDupes / (double) outies : 0;
+        metrics.JUMP_LIBRARY_SIZE = (outies > 0 && outieDupes > 0) ? DuplicationMetrics.estimateLibrarySize(outies, outies - outieDupes) : 0;
+        outieHistogram.trimByTailLimit(TAIL_LIMIT);
+        metrics.JUMP_MEAN_INSERT_SIZE = outieHistogram.getMean();
+        metrics.JUMP_STDEV_INSERT_SIZE = outieHistogram.getStandardDeviation();
+        metrics.NONJUMP_PAIRS = innies;
+        metrics.NONJUMP_DUPLICATE_PAIRS = innieDupes;
+        metrics.NONJUMP_DUPLICATE_PCT = innies != 0 ? innieDupes / (double) innies : 0;
+        metrics.NONJUMP_LIBRARY_SIZE = (innies > 0 && innieDupes > 0) ? DuplicationMetrics.estimateLibrarySize(innies, innies - innieDupes) : 0;
+        innieHistogram.trimByTailLimit(TAIL_LIMIT);
+        metrics.NONJUMP_MEAN_INSERT_SIZE = innieHistogram.getMean();
+        metrics.NONJUMP_STDEV_INSERT_SIZE = innieHistogram.getStandardDeviation();
+        metrics.CHIMERIC_PAIRS = crossChromPairs + superSized + tandemPairs;
+        metrics.FRAGMENTS = fragments;
+        double totalPairs = outies + innies + metrics.CHIMERIC_PAIRS;
+        metrics.PCT_JUMPS = totalPairs != 0 ? outies / totalPairs : 0;
+        metrics.PCT_NONJUMPS = totalPairs != 0 ? innies / totalPairs : 0;
+        metrics.PCT_CHIMERAS = totalPairs != 0 ? metrics.CHIMERIC_PAIRS / totalPairs : 0;
+        metricsFile.addMetric(metrics);
+        metricsFile.write(OUTPUT);
+
+        return 0;
+    }
+
+    /**
+     * Calculates the mode for outward-facing pairs, using the first SAMPLE_FOR_MODE
+     * outward-facing pairs found in INPUT
+     */
+    private double getOutieMode() {
+
+        int samplePerFile = SAMPLE_FOR_MODE / INPUT.size();
+
+        Histogram<Integer> histo = new Histogram<Integer>();
+
+        for (File f : INPUT) {
+            SamReader reader = SamReaderFactory.makeDefault().open(f);
+            int sampled = 0;
+            for (Iterator<SAMRecord> it = reader.iterator(); it.hasNext() && sampled < samplePerFile; ) {
+                SAMRecord sam = it.next();
+                if (!sam.getFirstOfPairFlag()) {
+                    continue;
+                }
+                // If we get here we've hit the end of the aligned reads
+                if (sam.getReadUnmappedFlag() && sam.getReferenceIndex() == SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX) {
+                    break;
+                } else if (sam.getReadUnmappedFlag() || sam.getMateUnmappedFlag()) {
+                    continue;
+                } else {
+                    if ((sam.getAttribute(SAMTag.MQ.name()) == null ||
+                            sam.getIntegerAttribute(SAMTag.MQ.name()) >= MINIMUM_MAPPING_QUALITY) &&
+                            sam.getMappingQuality() >= MINIMUM_MAPPING_QUALITY &&
+                            sam.getMateNegativeStrandFlag() != sam.getReadNegativeStrandFlag() &&
+                            sam.getMateReferenceIndex().equals(sam.getReferenceIndex())) {
+                        if (SamPairUtil.getPairOrientation(sam) == PairOrientation.RF) {
+                            histo.increment(Math.abs(sam.getInferredInsertSize()));
+                            sampled++;
+                        }
+                    }
+                }
+
+            }
+            CloserUtil.close(reader);
+        }
+
+        return histo.size() > 0 ? histo.getMode() : 0;
+    }
+}
diff --git a/src/java/picard/analysis/CollectMultipleMetrics.java b/src/java/picard/analysis/CollectMultipleMetrics.java
new file mode 100644
index 0000000..1603822
--- /dev/null
+++ b/src/java/picard/analysis/CollectMultipleMetrics.java
@@ -0,0 +1,259 @@
+package picard.analysis;
+
+import htsjdk.samtools.util.CollectionUtil;
+import picard.PicardException;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.programgroups.Metrics;
+import picard.cmdline.StandardOptionDefinitions;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+
+/**
+ * Class that is designed to instantiate and execute multiple metrics programs that extend
+ * SinglePassSamProgram while making only a single pass through the SAM file and supplying
+ * each program with the records as it goes.
+ *
+ * @author Tim Fennell
+ */
+ at CommandLineProgramProperties(
+        usage = "Takes an input BAM and reference sequence and runs one or more Picard " +
+                "metrics modules at the same time to cut down on I/O. Currently all programs are run with " +
+                "default options and fixed output extesions, but this may become more flexible in future.",
+        usageShort = "A \"meta-metrics\" calculating program that produces multiple metrics for the provided SAM/BAM",
+        programGroup = Metrics.class
+)
+public class CollectMultipleMetrics extends CommandLineProgram {
+
+    /**
+     * This interface allows developers to create Programs to run in addition to the ones defined in the Program enum.
+     * Includes a method for determining whether or not a Program explicitly needs a reference sequence (i.e. cannot be null)
+     */
+    public static interface ProgramInterface {
+        SinglePassSamProgram makeInstance(final String outbase, final File input, final File reference);
+        public boolean needsReferenceSequence();
+    }
+    
+    public static enum Program implements ProgramInterface {
+        CollectAlignmentSummaryMetrics {
+            @Override
+            public boolean needsReferenceSequence() {
+                return false;
+            }
+
+            @Override
+            public SinglePassSamProgram makeInstance(final String outbase, final File input, final File reference) {
+                final CollectAlignmentSummaryMetrics program = new CollectAlignmentSummaryMetrics();
+                program.OUTPUT = new File(outbase + ".alignment_summary_metrics");
+
+                // Generally programs should not be accessing these directly but it might make things smoother
+                // to just set them anyway. These are set here to make sure that in case of a the derived class
+                // overrides
+                program.INPUT = input;
+                program.REFERENCE_SEQUENCE = reference;
+
+                return program;
+            }
+        },
+        CollectInsertSizeMetrics {
+            @Override
+            public boolean needsReferenceSequence() {
+                return false;
+            }
+
+            @Override
+            public SinglePassSamProgram makeInstance(final String outbase, final File input, final File reference) {
+                final CollectInsertSizeMetrics program = new CollectInsertSizeMetrics();
+                program.OUTPUT = new File(outbase + ".insert_size_metrics");
+                program.Histogram_FILE = new File(outbase + ".insert_size_histogram.pdf");
+                // Generally programs should not be accessing these directly but it might make things smoother
+                // to just set them anyway. These are set here to make sure that in case of a the derived class
+                // overrides
+                program.INPUT = input;
+                program.REFERENCE_SEQUENCE = reference;
+
+                return program;
+            }
+        },
+        QualityScoreDistribution {
+            @Override
+            public boolean needsReferenceSequence() {
+                return false;
+            }
+            @Override
+            public SinglePassSamProgram makeInstance(final String outbase, final File input, final File reference) {
+                final QualityScoreDistribution program = new QualityScoreDistribution();
+                program.OUTPUT = new File(outbase + ".quality_distribution_metrics");
+                program.CHART_OUTPUT = new File(outbase + ".quality_distribution.pdf");
+                // Generally programs should not be accessing these directly but it might make things smoother
+                // to just set them anyway. These are set here to make sure that in case of a the derived class
+                // overrides
+                program.INPUT = input;
+                program.REFERENCE_SEQUENCE = reference;
+
+                return program;
+            }
+        },
+        MeanQualityByCycle {
+            @Override
+            public boolean needsReferenceSequence() {
+                return false;
+            }
+            @Override
+            public SinglePassSamProgram makeInstance(final String outbase, final File input, final File reference) {
+                final MeanQualityByCycle program = new MeanQualityByCycle();
+                program.OUTPUT = new File(outbase + ".quality_by_cycle_metrics");
+                program.CHART_OUTPUT = new File(outbase + ".quality_by_cycle.pdf");
+                // Generally programs should not be accessing these directly but it might make things smoother
+                // to just set them anyway. These are set here to make sure that in case of a the derived class
+                // overrides
+                program.INPUT = input;
+                program.REFERENCE_SEQUENCE = reference;
+
+                return program;
+            }
+        },
+        CollectBaseDistributionByCycle {
+            @Override
+            public boolean needsReferenceSequence() {
+                return false;
+            }
+            @Override
+            public SinglePassSamProgram makeInstance(final String outbase, final File input, final File reference) {
+                final CollectBaseDistributionByCycle program = new CollectBaseDistributionByCycle();
+                program.OUTPUT = new File(outbase + ".base_distribution_by_cycle_metrics");
+                program.CHART_OUTPUT = new File(outbase + ".base_distribution_by_cycle.pdf");
+                // Generally programs should not be accessing these directly but it might make things smoother
+                // to just set them anyway. These are set here to make sure that in case of a the derived class
+                // overrides
+                program.INPUT = input;
+                program.REFERENCE_SEQUENCE = reference;
+
+                return program;
+            }
+        },
+        CollectGcBiasMetrics {
+            @Override
+            public boolean needsReferenceSequence() {
+                return true;
+            }
+            @Override
+            public SinglePassSamProgram makeInstance(final String outbase, final File input, final File reference) {
+                final CollectGcBiasMetrics program = new CollectGcBiasMetrics();
+                program.OUTPUT = new File(outbase + ".gc_bias.detail_metrics");
+                program.SUMMARY_OUTPUT = new File(outbase + ".gc_bias.summary_metrics");
+                program.CHART_OUTPUT = new File(outbase + ".gc_bias.pdf");
+
+                program.INPUT = input;
+                program.METRIC_ACCUMULATION_LEVEL = CollectionUtil.makeSet(MetricAccumulationLevel.ALL_READS,
+                        MetricAccumulationLevel.LIBRARY);
+                program.WINDOW_SIZE = 100;
+                program.MINIMUM_GENOME_FRACTION = 1.0E-5;
+                program.IS_BISULFITE_SEQUENCED = false;
+                program.ASSUME_SORTED = false;
+
+                //GC_Bias actually uses the class-level REFERENCE_SEQUENCE variable.
+                program.REFERENCE_SEQUENCE = reference;
+
+                return program;
+            }
+        },
+        RnaSeqMetrics {
+            @Override
+            public boolean needsReferenceSequence() {
+                return true;
+            }
+            @Override
+            public SinglePassSamProgram makeInstance(final String outbase, final File input, final File reference) {
+                final CollectRnaSeqMetrics program = new CollectRnaSeqMetrics();
+                program.OUTPUT       = new File(outbase + ".rna_metrics");
+                program.CHART_OUTPUT = new File(outbase + ".rna_coverage.pdf");
+                // Generally programs should not be accessing these directly but it might make things smoother
+                // to just set them anyway. These are set here to make sure that in case of a the derived class
+                // overrides
+                program.INPUT = input;
+                program.REFERENCE_SEQUENCE = reference;
+                
+                return program;
+            }
+        }
+    }
+
+    @Option(shortName = StandardOptionDefinitions.INPUT_SHORT_NAME, doc = "Input SAM or BAM file.")
+    public File INPUT;
+
+
+    @Option(doc = "If true (default), then the sort order in the header file will be ignored.",
+            shortName = StandardOptionDefinitions.ASSUME_SORTED_SHORT_NAME)
+    public boolean ASSUME_SORTED = true;
+
+    @Option(doc = "Stop after processing N reads, mainly for debugging.")
+    public int STOP_AFTER = 0;
+
+    @Option(shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc = "Base name of output files.")
+    public String OUTPUT;
+
+    @Option(doc = "List of metrics programs to apply during the pass through the SAM file.")
+    public List<Program> PROGRAM = CollectionUtil.makeList(Program.CollectAlignmentSummaryMetrics, Program.CollectBaseDistributionByCycle,
+            Program.CollectInsertSizeMetrics, Program.MeanQualityByCycle, Program.QualityScoreDistribution);
+
+    /**
+     * Contents of PROGRAM list is transferred to this list during command-line validation, so that an outside
+     * developer can invoke this class programmatically and provide alternative Programs to run by calling
+     * setProgramsToRun().
+     */
+    private List<ProgramInterface> programsToRun;
+    
+    // Stock main method
+    public static void main(final String[] args) {
+        new CollectMultipleMetrics().instanceMainWithExit(args);
+    }
+
+    @Override
+    protected String[] customCommandLineValidation() {
+        if (PROGRAM.isEmpty()) {
+            return new String[]{"No programs specified with PROGRAM"};
+        }
+        programsToRun = new ArrayList<ProgramInterface>(PROGRAM);
+        return super.customCommandLineValidation();
+    }
+
+    /**
+     * Use this method when invoking CollectMultipleMetrics programmatically to run programs other than the ones
+     * available via enum.  This must be called before doWork().
+     */
+    public void setProgramsToRun(final List<ProgramInterface> programsToRun) {
+        this.programsToRun = programsToRun;
+    }
+
+    @Override
+    public int doWork() {
+        if (OUTPUT.endsWith(".")) {
+            OUTPUT = OUTPUT.substring(0, OUTPUT.length() - 1);
+        }
+
+        final List<SinglePassSamProgram> programs = new ArrayList<SinglePassSamProgram>();
+        for (final ProgramInterface program : new HashSet<ProgramInterface>(programsToRun)) {
+            if (program.needsReferenceSequence() && REFERENCE_SEQUENCE==null) {
+                throw new PicardException("The " + program.toString() + " program needs a Reference Sequence, please set REFERENCE_SEQUENCE in the command line");
+            }
+            final SinglePassSamProgram instance = program.makeInstance(OUTPUT, INPUT, REFERENCE_SEQUENCE);
+
+            // Generally programs should not be accessing these directly but it might make things smoother
+            // to just set them anyway
+            instance.INPUT = INPUT;
+            instance.REFERENCE_SEQUENCE = REFERENCE_SEQUENCE;
+
+            instance.setDefaultHeaders(getDefaultHeaders());
+
+            programs.add(instance);
+        }
+        SinglePassSamProgram.makeItSo(INPUT, REFERENCE_SEQUENCE, ASSUME_SORTED, STOP_AFTER, programs);
+
+        return 0;
+    }
+}
diff --git a/src/java/picard/analysis/CollectOxoGMetrics.java b/src/java/picard/analysis/CollectOxoGMetrics.java
new file mode 100644
index 0000000..5392ba4
--- /dev/null
+++ b/src/java/picard/analysis/CollectOxoGMetrics.java
@@ -0,0 +1,458 @@
+package picard.analysis;
+
+import htsjdk.samtools.SAMReadGroupRecord;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.filter.DuplicateReadFilter;
+import htsjdk.samtools.filter.InsertSizeFilter;
+import htsjdk.samtools.filter.NotPrimaryAlignmentFilter;
+import htsjdk.samtools.filter.SamRecordFilter;
+import htsjdk.samtools.metrics.MetricBase;
+import htsjdk.samtools.metrics.MetricsFile;
+import htsjdk.samtools.reference.ReferenceSequenceFileWalker;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.IntervalList;
+import htsjdk.samtools.util.ListMap;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.SamLocusIterator;
+import htsjdk.samtools.util.SequenceUtil;
+import htsjdk.samtools.util.StringUtil;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.Metrics;
+import picard.util.DbSnpBitSetUtil;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import static htsjdk.samtools.util.CodeUtil.getOrElse;
+import static htsjdk.samtools.util.SequenceUtil.generateAllKmers;
+import static java.lang.Math.log10;
+
+/**
+ * Class for trying to quantify the CpCG->CpCA error rate.
+ */
+ at CommandLineProgramProperties(
+        usage = CollectOxoGMetrics.USAGE,
+        usageShort = CollectOxoGMetrics.USAGE,
+        programGroup = Metrics.class
+)
+public class CollectOxoGMetrics extends CommandLineProgram {
+    static final String USAGE = "Collects metrics quantifying the CpCG -> CpCA error rate from the provided SAM/BAM";
+
+    @Option(shortName = StandardOptionDefinitions.INPUT_SHORT_NAME,
+            doc = "Input BAM file for analysis.")
+    public File INPUT;
+
+    @Option(shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME,
+            doc = "Location of output metrics file to write.")
+    public File OUTPUT;
+
+    @Option(shortName = StandardOptionDefinitions.REFERENCE_SHORT_NAME,
+            doc = "Reference sequence to which BAM is aligned.")
+    public File REFERENCE_SEQUENCE;
+
+    @Option(doc = "An optional list of intervals to restrict analysis to.",
+            optional = true)
+    public File INTERVALS;
+
+    @Option(doc = "VCF format dbSNP file, used to exclude regions around known polymorphisms from analysis.",
+            optional = true)
+    public File DB_SNP;
+
+    @Option(shortName = "Q",
+            doc = "The minimum base quality score for a base to be included in analysis.")
+    public int MINIMUM_QUALITY_SCORE = 20;
+
+    @Option(shortName = "MQ",
+            doc = "The minimum mapping quality score for a base to be included in analysis.")
+    public int MINIMUM_MAPPING_QUALITY = 30;
+
+    @Option(shortName = "MIN_INS",
+            doc = "The minimum insert size for a read to be included in analysis. Set of 0 to allow unpaired reads.")
+    public int MINIMUM_INSERT_SIZE = 60;
+
+    @Option(shortName = "MAX_INS",
+            doc = "The maximum insert size for a read to be included in analysis. Set of 0 to allow unpaired reads.")
+    public int MAXIMUM_INSERT_SIZE = 600;
+
+    @Option(doc = "When available, use original quality scores for filtering.")
+    public boolean USE_OQ = true;
+
+    @Option(doc = "The number of context bases to include on each side of the assayed G/C base.")
+    public int CONTEXT_SIZE = 1;
+
+    @Option(doc = "The optional set of sequence contexts to restrict analysis to. If not supplied all contexts are analyzed.")
+    public Set<String> CONTEXTS = new HashSet<String>();
+
+    @Option(doc = "For debugging purposes: stop after visiting this many sites with at least 1X coverage.")
+    public int STOP_AFTER = Integer.MAX_VALUE;
+
+    private final Log log = Log.getInstance(CollectOxoGMetrics.class);
+    private static final String UNKNOWN_LIBRARY = "UnknownLibrary";
+    private static final String UNKNOWN_SAMPLE = "UnknownSample";
+
+    /** Metrics class for outputs. */
+    public static final class CpcgMetrics extends MetricBase {
+        /** The name of the sample being assayed. */
+        public String SAMPLE_ALIAS;
+        /** The name of the library being assayed. */
+        public String LIBRARY;
+        /** The sequence context being reported on. */
+        public String CONTEXT;
+        /** The total number of sites that had at least one base covering them. */
+        public int TOTAL_SITES;
+        /** The total number of basecalls observed at all sites. */
+        public long TOTAL_BASES;
+        /** The number of reference alleles observed as C in read 1 and G in read 2. */
+        public long REF_NONOXO_BASES;
+        /** The number of reference alleles observed as G in read 1 and C in read 2. */
+        public long REF_OXO_BASES;
+        /** The total number of reference alleles observed */
+        public long REF_TOTAL_BASES;
+        /**
+         * The count of observed A basecalls at C reference positions and T basecalls
+         * at G reference bases that are correlated to instrument read number in a way
+         * that rules out oxidation as the cause
+         */
+        public long ALT_NONOXO_BASES;
+        /**
+         * The count of observed A basecalls at C reference positions and T basecalls
+         * at G reference bases that are correlated to instrument read number in a way
+         * that is consistent with oxidative damage.
+         */
+        public long ALT_OXO_BASES;
+        /** The oxo error rate, calculated as max(ALT_OXO_BASES - ALT_NONOXO_BASES, 1) / TOTAL_BASES */
+        public double OXIDATION_ERROR_RATE;
+        /** -10 * log10(OXIDATION_ERROR_RATE) */
+        public double OXIDATION_Q;
+
+        // Fields below this point are metrics that are calculated to see if there is oxidative damage that is
+        // biased toward the reference base - i.e. occurs more where the reference base is a C vs. a G or vice
+        // versa.
+
+        /** The number of ref basecalls observed at sites where the genome reference == C. */
+        public long C_REF_REF_BASES;
+        /** The number of ref basecalls observed at sites where the genome reference == G. */
+        public long G_REF_REF_BASES;
+        /** The number of alt (A/T) basecalls observed at sites where the genome reference == C. */
+        public long C_REF_ALT_BASES;
+        /** The number of alt (A/T) basecalls observed at sites where the genome reference == G. */
+        public long G_REF_ALT_BASES;
+
+        /**
+         * The rate at which C>A and G>T substitutions are observed at C reference sites above the expected rate if there
+         * were no bias between sites with a C reference base vs. a G reference base.
+         */
+        public double C_REF_OXO_ERROR_RATE;
+        /** C_REF_OXO_ERROR_RATE expressed as a phred-scaled quality score. */
+        public double C_REF_OXO_Q;
+        /**
+         * The rate at which C>A and G>T substitutions are observed at G reference sites above the expected rate if there
+         * were no bias between sites with a C reference base vs. a G reference base.
+         */
+        public double G_REF_OXO_ERROR_RATE;
+        /** G_REF_OXO_ERROR_RATE expressed as a phred-scaled quality score. */
+        public double G_REF_OXO_Q;
+    }
+
+    // Stock main method
+    public static void main(final String[] args) {
+        new CollectOxoGMetrics().instanceMainWithExit(args);
+    }
+
+    @Override
+    protected String[] customCommandLineValidation() {
+        final int size = 1 + 2 * CONTEXT_SIZE;
+        final List<String> messages = new ArrayList<String>();
+
+        for (final String ctx : CONTEXTS) {
+            if (ctx.length() != size) {
+                messages.add("Context " + ctx + " is not " + size + " long as implied by CONTEXT_SIZE=" + CONTEXT_SIZE);
+            } else if (ctx.charAt(ctx.length() / 2) != 'C') {
+                messages.add("Middle base of context sequence " + ctx + " must be C");
+            }
+        }
+
+        if (MINIMUM_INSERT_SIZE < 0) messages.add("MINIMUM_INSERT_SIZE cannot be negative");
+        if (MAXIMUM_INSERT_SIZE < 0) messages.add("MAXIMUM_INSERT_SIZE cannot be negative");
+        if (MAXIMUM_INSERT_SIZE < MINIMUM_INSERT_SIZE) {
+            messages.add("MAXIMUM_INSERT_SIZE cannot be less than MINIMUM_INSERT_SIZE");
+        }
+
+        return messages.isEmpty() ? null : messages.toArray(new String[messages.size()]);
+    }
+
+    @Override
+    protected int doWork() {
+        IOUtil.assertFileIsReadable(INPUT);
+        IOUtil.assertFileIsWritable(OUTPUT);
+        if (INTERVALS != null) IOUtil.assertFileIsReadable(INTERVALS);
+        IOUtil.assertFileIsReadable(REFERENCE_SEQUENCE);
+
+        final ReferenceSequenceFileWalker refWalker = new ReferenceSequenceFileWalker(REFERENCE_SEQUENCE);
+        final SamReader in = SamReaderFactory.makeDefault().open(INPUT);
+
+        final Set<String> samples = new HashSet<String>();
+        final Set<String> libraries = new HashSet<String>();
+        for (final SAMReadGroupRecord rec : in.getFileHeader().getReadGroups()) {
+            samples.add(getOrElse(rec.getSample(), UNKNOWN_SAMPLE));
+            libraries.add(getOrElse(rec.getLibrary(), UNKNOWN_LIBRARY));
+        }
+
+        // Setup the calculators
+        final Set<String> contexts = CONTEXTS.isEmpty() ? makeContextStrings(CONTEXT_SIZE) : CONTEXTS;
+        final ListMap<String, Calculator> calculators = new ListMap<String, Calculator>();
+        for (final String context : contexts) {
+            for (final String library : libraries) {
+                calculators.add(context, new Calculator(library, context));
+            }
+        }
+
+        // Load up dbSNP if available
+        log.info("Loading dbSNP File: " + DB_SNP);
+        final DbSnpBitSetUtil dbSnp;
+        if (DB_SNP != null) dbSnp = new DbSnpBitSetUtil(DB_SNP, in.getFileHeader().getSequenceDictionary());
+        else dbSnp = null;
+
+        // Make an iterator that will filter out funny looking things
+        final SamLocusIterator iterator;
+        if (INTERVALS != null) {
+            final IntervalList intervals = IntervalList.fromFile(INTERVALS);
+            iterator = new SamLocusIterator(in, intervals.uniqued(), false);
+        } else {
+            iterator = new SamLocusIterator(in);
+        }
+        iterator.setEmitUncoveredLoci(false);
+        iterator.setMappingQualityScoreCutoff(MINIMUM_MAPPING_QUALITY);
+
+        final List<SamRecordFilter> filters = new ArrayList<SamRecordFilter>();
+        filters.add(new NotPrimaryAlignmentFilter());
+        filters.add(new DuplicateReadFilter());
+        if (MINIMUM_INSERT_SIZE > 0 || MAXIMUM_INSERT_SIZE > 0) {
+            filters.add(new InsertSizeFilter(MINIMUM_INSERT_SIZE, MAXIMUM_INSERT_SIZE));
+        }
+        iterator.setSamFilters(filters);
+
+        log.info("Starting iteration.");
+        long nextLogTime = 0;
+        int sites = 0;
+
+        for (final SamLocusIterator.LocusInfo info : iterator) {
+            // Skip dbSNP sites
+            final String chrom = info.getSequenceName();
+            final int pos = info.getPosition();
+            final int index = pos - 1;
+            if (dbSnp != null && dbSnp.isDbSnpSite(chrom, pos)) continue;
+
+            // Skip sites at the end of chromosomes 
+            final byte[] bases = refWalker.get(info.getSequenceIndex()).getBases();
+            if (pos < 3 || pos > bases.length - 3) continue;
+
+            // Skip non C-G bases
+            final byte base = StringUtil.toUpperCase(bases[index]);
+            if (base != 'C' && base != 'G') continue;
+
+            // Get the context string
+            final String context;
+            {
+                final String tmp = StringUtil.bytesToString(bases, index - CONTEXT_SIZE, 1 + (2 * CONTEXT_SIZE)).toUpperCase();
+                if (base == 'C') context = tmp;
+                else /* if G */  context = SequenceUtil.reverseComplement(tmp);
+            }
+
+            final List<Calculator> calculatorsForContext = calculators.get(context);
+            if (calculatorsForContext == null) continue; // happens if we get ambiguous bases in the reference
+            for (final Calculator calc : calculatorsForContext) calc.accept(info, base);
+
+            // See if we need to stop
+            if (++sites % 100 == 0) {
+                final long now = System.currentTimeMillis();
+                if (now > nextLogTime) {
+                    log.info("Visited " + sites + " sites of interest. Last site: " + chrom + ":" + pos);
+                    nextLogTime = now + 60000;
+                }
+            }
+            if (sites >= STOP_AFTER) break;
+        }
+
+        final MetricsFile<CpcgMetrics, Integer> file = getMetricsFile();
+        for (final List<Calculator> calcs : calculators.values()) {
+            for (final Calculator calc : calcs) {
+                final CpcgMetrics m = calc.finish();
+                m.SAMPLE_ALIAS = StringUtil.join(",", new ArrayList<String>(samples));
+                file.addMetric(m);
+            }
+        }
+
+        file.write(OUTPUT);
+        CloserUtil.close(in);
+        return 0;
+    }
+
+    private Set<String> makeContextStrings(final int contextSize) {
+        final Set<String> contexts = new HashSet<String>();
+
+        for (final byte[] kmer : generateAllKmers(2 * contextSize + 1)) {
+            if (kmer[contextSize] == 'C') {
+                contexts.add(StringUtil.bytesToString(kmer));
+            }
+        }
+
+        log.info("Generated " + contexts.size() + " context strings.");
+        return contexts;
+    }
+
+    /** A little class for counting alleles. */
+    private static class Counts {
+        int controlA;
+        int oxidatedA;
+        int controlC;
+        int oxidatedC;
+
+        int total() { return controlC + oxidatedC + controlA + oxidatedA; }
+    }
+
+    /**
+     * Class that calculated CpCG metrics for a specific library.
+     */
+    private class Calculator {
+        private final String library;
+        private final String context;
+
+        // Things to be accumulated
+        int sites = 0;
+        long refCcontrolA = 0;
+        long refCoxidatedA = 0;
+        long refCcontrolC = 0;
+        long refCoxidatedC = 0;
+        long refGcontrolA = 0;
+        long refGoxidatedA = 0;
+        long refGcontrolC = 0;
+        long refGoxidatedC = 0;
+
+        Calculator(final String library, final String context) {
+            this.library = library;
+            this.context = context;
+        }
+
+        void accept(final SamLocusIterator.LocusInfo info, final byte refBase) {
+            final Counts counts = computeAlleleFraction(info, refBase);
+
+            if (counts.total() > 0) {
+                // Things calculated on all sites with coverage
+                this.sites++;
+                if (refBase == 'C') {
+                    this.refCcontrolA += counts.controlA;
+                    this.refCoxidatedA += counts.oxidatedA;
+                    this.refCcontrolC += counts.controlC;
+                    this.refCoxidatedC += counts.oxidatedC;
+                } else if (refBase == 'G') {
+                    this.refGcontrolA += counts.controlA;
+                    this.refGoxidatedA += counts.oxidatedA;
+                    this.refGcontrolC += counts.controlC;
+                    this.refGoxidatedC += counts.oxidatedC;
+                } else {
+                    throw new IllegalStateException("Reference bases other than G and C not supported.");
+                }
+            }
+        }
+
+        CpcgMetrics finish() {
+            final CpcgMetrics m = new CpcgMetrics();
+            m.LIBRARY = this.library;
+            m.CONTEXT = this.context;
+            m.TOTAL_SITES = this.sites;
+            m.TOTAL_BASES = this.refCcontrolC + this.refCoxidatedC + this.refCcontrolA + this.refCoxidatedA +
+                    this.refGcontrolC + this.refGoxidatedC + this.refGcontrolA + this.refGoxidatedA;
+            m.REF_OXO_BASES = this.refCoxidatedC + refGoxidatedC;
+            m.REF_NONOXO_BASES = this.refCcontrolC + this.refGcontrolC;
+            m.REF_TOTAL_BASES = m.REF_OXO_BASES + m.REF_NONOXO_BASES;
+            m.ALT_NONOXO_BASES = this.refCcontrolA + this.refGcontrolA;
+            m.ALT_OXO_BASES = this.refCoxidatedA + this.refGoxidatedA;
+
+            /**
+             * Why do we calculate the oxo error rate using oxidatedA - controlA you ask?  We know that all the
+             * bases counted in oxidatedA are consistent with 8-oxo-G damage during shearing, but not all of them
+             * will have been caused by this. If we assume that C>A errors caused by other factors will occur randomly
+             * with respect to read1/read2, then we should see as many in the 8-oxo-G consistent state as not.  So we
+             * assume that controlA is half the story, and remove the other half from oxidatedA.
+             */
+            m.OXIDATION_ERROR_RATE = Math.max(m.ALT_OXO_BASES - m.ALT_NONOXO_BASES, 1) / (double) m.TOTAL_BASES;
+            m.OXIDATION_Q = -10 * log10(m.OXIDATION_ERROR_RATE);
+
+            /** Now look for things that have a reference base bias! */
+            m.C_REF_REF_BASES = this.refCcontrolC + this.refCoxidatedC;
+            m.G_REF_REF_BASES = this.refGcontrolC + this.refGoxidatedC;
+            m.C_REF_ALT_BASES = this.refCcontrolA + this.refCoxidatedA;
+            m.G_REF_ALT_BASES = this.refGcontrolA + this.refGoxidatedA;
+
+            final double cRefErrorRate = m.C_REF_ALT_BASES / (double) (m.C_REF_ALT_BASES + m.C_REF_REF_BASES);
+            final double gRefErrorRate = m.G_REF_ALT_BASES / (double) (m.G_REF_ALT_BASES + m.G_REF_REF_BASES);
+
+            m.C_REF_OXO_ERROR_RATE = Math.max(cRefErrorRate - gRefErrorRate, 1e-10);
+            m.G_REF_OXO_ERROR_RATE = Math.max(gRefErrorRate - cRefErrorRate, 1e-10);
+            m.C_REF_OXO_Q = -10 * log10(m.C_REF_OXO_ERROR_RATE);
+            m.G_REF_OXO_Q = -10 * log10(m.G_REF_OXO_ERROR_RATE);
+
+            return m;
+        }
+
+        /**
+         *
+         */
+        private Counts computeAlleleFraction(final SamLocusIterator.LocusInfo info, final byte refBase) {
+            final Counts counts = new Counts();
+            final byte altBase = (refBase == 'C') ? (byte) 'A' : (byte) 'T';
+
+            for (final SamLocusIterator.RecordAndOffset rec : info.getRecordAndPositions()) {
+                final byte qual;
+                final SAMRecord samrec = rec.getRecord();
+
+                if (USE_OQ) {
+                    final byte[] oqs = samrec.getOriginalBaseQualities();
+                    if (oqs != null) qual = oqs[rec.getOffset()];
+                    else qual = rec.getBaseQuality();
+                } else {
+                    qual = rec.getBaseQuality();
+                }
+
+                // Skip if below qual, or if library isn't a match
+                if (qual < MINIMUM_QUALITY_SCORE) continue;
+                if (!this.library.equals(getOrElse(samrec.getReadGroup().getLibrary(), UNKNOWN_LIBRARY))) continue;
+
+                // Get the read base, and get it in "as read" orientation
+                final byte base = rec.getReadBase();
+                final byte baseAsRead = samrec.getReadNegativeStrandFlag() ? SequenceUtil.complement(base) : base;
+                final int read = samrec.getReadPairedFlag() && samrec.getSecondOfPairFlag() ? 2 : 1;
+
+                // Figure out how to count the alternative allele. If the damage is caused by oxidation of G
+                // during shearing (in non-rnaseq data), then we know that:
+                //     G>T observation is always in read 1
+                //     C>A observation is always in read 2
+                // But if the substitution is from other causes the distribution of A/T across R1/R2 will be
+                // random.
+                if (base == refBase) {
+                    if (baseAsRead == 'G' && read == 1) ++counts.oxidatedC;
+                    else if (baseAsRead == 'G' && read == 2) ++counts.controlC;
+                    else if (baseAsRead == 'C' && read == 1) ++counts.controlC;
+                    else if (baseAsRead == 'C' && read == 2) ++counts.oxidatedC;
+                } else if (base == altBase) {
+                    if (baseAsRead == 'T' && read == 1) ++counts.oxidatedA;
+                    else if (baseAsRead == 'T' && read == 2) ++counts.controlA;
+                    else if (baseAsRead == 'A' && read == 1) ++counts.controlA;
+                    else if (baseAsRead == 'A' && read == 2) ++counts.oxidatedA;
+                }
+            }
+
+            return counts;
+        }
+    }
+}
diff --git a/src/java/picard/analysis/CollectQualityYieldMetrics.java b/src/java/picard/analysis/CollectQualityYieldMetrics.java
new file mode 100644
index 0000000..4753e18
--- /dev/null
+++ b/src/java/picard/analysis/CollectQualityYieldMetrics.java
@@ -0,0 +1,179 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.analysis;
+
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.metrics.MetricBase;
+import htsjdk.samtools.metrics.MetricsFile;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.ProgressLogger;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.Metrics;
+
+import java.io.File;
+
+/**
+ * Command line program to calibrate quality yield metrics
+ *
+ * @author Martha Borkan
+ */
+ at CommandLineProgramProperties(
+        usage = "Collects quality yield metrics, a set of metrics that quantify the quality and yield of sequence data from a " +
+                "SAM/BAM input file.",
+        usageShort = "Collects a set of metrics that quantify the quality and yield of sequence data from the provided SAM/BAM",
+        programGroup = Metrics.class
+)
+public class CollectQualityYieldMetrics extends CommandLineProgram {
+
+    @Option(shortName = StandardOptionDefinitions.INPUT_SHORT_NAME,
+            doc = "A SAM or BAM file to process.")
+    public File INPUT;
+
+    @Option(shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME,
+            doc = "The metrics file to write with quality yield metrics.")
+    public File OUTPUT;
+
+    @Option(shortName = StandardOptionDefinitions.USE_ORIGINAL_QUALITIES_SHORT_NAME,
+            doc = "If available in the OQ tag, use the original quality scores " +
+                    "as inputs instead of the quality scores in the QUAL field.")
+    public boolean USE_ORIGINAL_QUALITIES = true;
+
+    /** Stock main method for a command line program. */
+    public static void main(final String[] argv) {
+        new CollectQualityYieldMetrics().instanceMainWithExit(argv);
+    }
+
+    /**
+     * Main method for the program.  Checks that all input files are present and
+     * readable and that the output file can be written to.  Then iterates through
+     * all the records accumulating metrics.  Finally writes metrics file
+     */
+    protected int doWork() {
+        final Log log = Log.getInstance(getClass());
+        final ProgressLogger progress = new ProgressLogger(log);
+
+        // Some quick parameter checking
+        IOUtil.assertFileIsReadable(INPUT);
+        IOUtil.assertFileIsWritable(OUTPUT);
+
+        log.info("Reading input file and calculating metrics.");
+
+        final SamReader sam = SamReaderFactory.makeDefault().open(INPUT);
+
+        final MetricsFile<QualityYieldMetrics, Integer> metricsFile = getMetricsFile();
+        final QualityYieldMetrics metrics = new QualityYieldMetrics();
+
+        for (final SAMRecord rec : sam) {
+            metrics.TOTAL_READS++;
+            final int length = rec.getReadLength();
+
+            final boolean isPfRead = !rec.getReadFailsVendorQualityCheckFlag();
+            if (isPfRead) {
+                metrics.PF_READS++;
+                metrics.PF_BASES += length;
+            }
+
+            metrics.TOTAL_BASES += length;
+
+            final byte[] quals;
+            if (USE_ORIGINAL_QUALITIES) {
+                byte[] tmp = rec.getOriginalBaseQualities();
+                if (tmp == null) tmp = rec.getBaseQualities();
+                quals = tmp;
+            } else {
+                quals = rec.getBaseQualities();
+            }
+
+            // add up quals, and quals >= 20
+            for (int i = 0; i < quals.length; ++i) {
+                metrics.Q20_EQUIVALENT_YIELD += quals[i];
+                if (quals[i] >= 20) metrics.Q20_BASES++;
+                if (quals[i] >= 30) metrics.Q30_BASES++;
+
+                if (isPfRead) {
+                    metrics.PF_Q20_EQUIVALENT_YIELD += quals[i];
+                    if (quals[i] >= 20) metrics.PF_Q20_BASES++;
+                    if (quals[i] >= 30) metrics.PF_Q30_BASES++;
+                }
+            }
+
+            progress.record(rec);
+        }
+
+        metrics.READ_LENGTH = metrics.TOTAL_READS == 0 ? 0 : (int) (metrics.TOTAL_BASES / metrics.TOTAL_READS);
+        metrics.Q20_EQUIVALENT_YIELD = metrics.Q20_EQUIVALENT_YIELD / 20;
+        metrics.PF_Q20_EQUIVALENT_YIELD = metrics.PF_Q20_EQUIVALENT_YIELD / 20;
+
+        metricsFile.addMetric(metrics);
+        metricsFile.write(OUTPUT);
+
+        return 0;
+    }
+
+    /** A set of metrics used to describe the general quality of a BAM file */
+    public static class QualityYieldMetrics extends MetricBase {
+
+        /** The total number of reads in the input file */
+        public int TOTAL_READS = 0;
+
+        /** The number of reads that are PF - pass filter */
+        public int PF_READS = 0;
+
+        /** The average read length of all the reads (will be fixed for a lane) */
+        public int READ_LENGTH = 0;
+
+        /** The total number of bases in all reads */
+        public long TOTAL_BASES;
+
+        /** The total number of bases in all PF reads */
+        public long PF_BASES = 0;
+
+        /** The number of bases in all reads that achieve quality score 20 or higher */
+        public long Q20_BASES = 0;
+
+        /** The number of bases in PF reads that achieve quality score 20 or higher */
+        public long PF_Q20_BASES = 0;
+
+        /** The number of bases in all reads that achieve quality score 20 or higher */
+        public long Q30_BASES = 0;
+
+        /** The number of bases in PF reads that achieve quality score 20 or higher */
+        public long PF_Q30_BASES = 0;
+
+        /** The sum of quality scores of all bases divided by 20 */
+        public long Q20_EQUIVALENT_YIELD = 0;
+
+        /** The sum of quality scores of all bases divided by 20 */
+        public long PF_Q20_EQUIVALENT_YIELD = 0;
+
+    }
+
+}
diff --git a/src/java/picard/analysis/CollectRawWgsMetrics.java b/src/java/picard/analysis/CollectRawWgsMetrics.java
new file mode 100644
index 0000000..d6305fc
--- /dev/null
+++ b/src/java/picard/analysis/CollectRawWgsMetrics.java
@@ -0,0 +1,37 @@
+package picard.analysis;
+
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.programgroups.Metrics;
+
+/**
+ * Computes a number of metrics that are useful for evaluating coverage and performance of whole genome sequencing experiments, same implementation as CollectWgsMetrics, with different defaults: lacks baseQ and mappingQ filters and has much higher coverage cap.
+ *
+ * @author farjoun
+ */
+ at CommandLineProgramProperties(
+        usage = "Computes a number of metrics that are useful for evaluating coverage and performance of " +
+                "whole genome sequencing experiments. Defaults are different than for CollectWgsMetrics.",
+        usageShort = "Writes whole genome sequencing-related metrics for a SAM or BAM file",
+        programGroup = Metrics.class
+)
+public class CollectRawWgsMetrics extends CollectWgsMetrics{
+
+    @Option(shortName="MQ", doc="Minimum mapping quality for a read to contribute coverage.")
+    public int MINIMUM_MAPPING_QUALITY = 0;
+
+    @Option(shortName="Q", doc="Minimum base quality for a base to contribute coverage.")
+    public int MINIMUM_BASE_QUALITY = 3;
+
+    @Option(shortName="CAP", doc="Treat bases with coverage exceeding this value as if they had coverage at this value.")
+    public int COVERAGE_CAP = 100000;
+
+    // rename the class so that in the metric file it is annotated differently.
+    public static class RawWgsMetrics extends WgsMetrics {}
+
+    @Override
+    protected WgsMetrics generateWgsMetrics() {
+        return new RawWgsMetrics();
+    }
+
+}
diff --git a/src/java/picard/analysis/CollectRnaSeqMetrics.java b/src/java/picard/analysis/CollectRnaSeqMetrics.java
new file mode 100644
index 0000000..b205a28
--- /dev/null
+++ b/src/java/picard/analysis/CollectRnaSeqMetrics.java
@@ -0,0 +1,156 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.analysis;
+
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMReadGroupRecord;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.metrics.MetricsFile;
+import htsjdk.samtools.reference.ReferenceSequence;
+import htsjdk.samtools.util.CollectionUtil;
+import htsjdk.samtools.util.Histogram;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Interval;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.OverlapDetector;
+import picard.PicardException;
+import picard.analysis.directed.RnaSeqMetricsCollector;
+import picard.annotation.Gene;
+import picard.annotation.GeneAnnotationReader;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.programgroups.Metrics;
+import picard.util.RExecutor;
+
+import java.io.File;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+ at CommandLineProgramProperties(
+        usage = "Collect metrics about the alignment of RNA to various functional classes of loci in the genome:" +
+                "coding, intronic, UTR, intergenic, ribosomal. Also determines strand-specificity for strand-specific libraries.",
+        usageShort = "Produces RNA alignment metrics for a SAM or BAM file",
+        programGroup = Metrics.class
+)
+public class CollectRnaSeqMetrics extends SinglePassSamProgram {
+    private static final Log LOG = Log.getInstance(CollectRnaSeqMetrics.class);
+
+    @Option(doc="Gene annotations in refFlat form.  Format described here: http://genome.ucsc.edu/goldenPath/gbdDescriptionsOld.html#RefFlat")
+    public File REF_FLAT;
+
+    @Option(doc="Location of rRNA sequences in genome, in interval_list format.  " +
+            "If not specified no bases will be identified as being ribosomal.  " +
+            "Format described here: http://samtools.github.io/htsjdk/javadoc/htsjdk/htsjdk/samtools/util/IntervalList.html", optional = true)
+    public File RIBOSOMAL_INTERVALS;
+
+    @Option(shortName = "STRAND", doc="For strand-specific library prep. " +
+            "For unpaired reads, use FIRST_READ_TRANSCRIPTION_STRAND if the reads are expected to be on the transcription strand.")
+    public RnaSeqMetricsCollector.StrandSpecificity STRAND_SPECIFICITY;
+
+    @Option(doc="When calculating coverage based values (e.g. CV of coverage) only use transcripts of this length or greater.")
+    public int MINIMUM_LENGTH = 500;
+
+    @Option(doc="The PDF file to write out a plot of normalized position vs. coverage.", shortName="CHART", optional = true)
+    public File CHART_OUTPUT;
+
+    @Option(doc="If a read maps to a sequence specified with this option, all the bases in the read are counted as ignored bases.  " +
+    "These reads are not counted as ")
+    public Set<String> IGNORE_SEQUENCE = new HashSet<String>();
+
+    @Option(doc="This percentage of the length of a fragment must overlap one of the ribosomal intervals for a read or read pair by this must in order to be considered rRNA.")
+    public double RRNA_FRAGMENT_PERCENTAGE = 0.8;
+
+    @Option(shortName="LEVEL", doc="The level(s) at which to accumulate metrics.  ")
+    private final Set<MetricAccumulationLevel> METRIC_ACCUMULATION_LEVEL = CollectionUtil.makeSet(MetricAccumulationLevel.ALL_READS);
+
+    private RnaSeqMetricsCollector collector;
+
+    /**
+     * A subtitle for the plot, usually corresponding to a library.
+     */
+    private String plotSubtitle = "";
+
+    /** Required main method implementation. */
+    public static void main(final String[] argv) {
+        new CollectRnaSeqMetrics().instanceMainWithExit(argv);
+    }
+
+    @Override
+    protected void setup(final SAMFileHeader header, final File samFile) {
+
+        if (CHART_OUTPUT != null) IOUtil.assertFileIsWritable(CHART_OUTPUT);
+
+        final OverlapDetector<Gene> geneOverlapDetector = GeneAnnotationReader.loadRefFlat(REF_FLAT, header.getSequenceDictionary());
+        LOG.info("Loaded " + geneOverlapDetector.getAll().size() + " genes.");
+
+        final Long ribosomalBasesInitialValue = RIBOSOMAL_INTERVALS != null ? 0L : null;
+        final OverlapDetector<Interval> ribosomalSequenceOverlapDetector = RnaSeqMetricsCollector.makeOverlapDetector(samFile, header, RIBOSOMAL_INTERVALS);
+
+        final HashSet<Integer> ignoredSequenceIndices = RnaSeqMetricsCollector.makeIgnoredSequenceIndicesSet(header, IGNORE_SEQUENCE);
+
+        collector = new RnaSeqMetricsCollector(METRIC_ACCUMULATION_LEVEL, header.getReadGroups(), ribosomalBasesInitialValue,
+                geneOverlapDetector, ribosomalSequenceOverlapDetector, ignoredSequenceIndices, MINIMUM_LENGTH, STRAND_SPECIFICITY, RRNA_FRAGMENT_PERCENTAGE,
+                true);
+
+        // If we're working with a single library, assign that library's name as a suffix to the plot title
+        final List<SAMReadGroupRecord> readGroups = header.getReadGroups();
+        if (readGroups.size() == 1) {
+            this.plotSubtitle = readGroups.get(0).getLibrary();
+            if (null == this.plotSubtitle) this.plotSubtitle = "";
+        }
+    }
+
+    @Override
+    protected void acceptRead(final SAMRecord rec, final ReferenceSequence refSeq) {
+        collector.acceptRecord(rec, refSeq);
+    }
+
+    @Override
+    protected void finish() {
+        collector.finish();
+
+        final MetricsFile<RnaSeqMetrics, Integer> file = getMetricsFile();
+        collector.addAllLevelsToFile(file);
+        file.write(OUTPUT);
+
+        boolean atLeastOneHistogram = false;
+        for (final Histogram<Integer> histo : file.getAllHistograms()) {
+            atLeastOneHistogram = atLeastOneHistogram || !histo.isEmpty();
+        }
+        // Generate the coverage by position plot
+        if (CHART_OUTPUT != null && atLeastOneHistogram) {
+            final int rResult = RExecutor.executeFromClasspath("picard/analysis/rnaSeqCoverage.R",
+                                                               OUTPUT.getAbsolutePath(),
+                                                               CHART_OUTPUT.getAbsolutePath(),
+                                                               INPUT.getName(),
+                                                               this.plotSubtitle);
+
+            if (rResult != 0) {
+                throw new PicardException("Problem invoking R to generate plot.");
+            }
+        }
+    }
+
+}
diff --git a/src/java/picard/analysis/CollectRrbsMetrics.java b/src/java/picard/analysis/CollectRrbsMetrics.java
new file mode 100644
index 0000000..16d8eff
--- /dev/null
+++ b/src/java/picard/analysis/CollectRrbsMetrics.java
@@ -0,0 +1,184 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2013 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.analysis;
+
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.metrics.MetricsFile;
+import htsjdk.samtools.reference.ReferenceSequence;
+import htsjdk.samtools.reference.ReferenceSequenceFileWalker;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.CollectionUtil;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.ProgressLogger;
+import picard.PicardException;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.Metrics;
+import picard.util.RExecutor;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Calculates and reports QC metrics for RRBS data based on the methylation status at individual C/G bases as well
+ * as CpG sites across all reads in the input BAM/SAM file.
+ *
+ * @author jgentry at broadinstitute.org
+ */
+ at CommandLineProgramProperties(
+        usage = CollectRrbsMetrics.USAGE,
+        usageShort = CollectRrbsMetrics.USAGE,
+        programGroup = Metrics.class
+)
+public class CollectRrbsMetrics extends CommandLineProgram {
+    final static String USAGE = "Collects metrics about bisulfite conversion for RRBS data";
+
+    // Path to R file for plotting purposes
+    private static final String R_SCRIPT = "picard/analysis/rrbsQc.R";
+
+    @Option(doc = "The BAM or SAM file containing aligned reads. Must be coordinate sorted", shortName = StandardOptionDefinitions.INPUT_SHORT_NAME)
+    public File INPUT;
+    @Option(doc = "Base name for output files", shortName = StandardOptionDefinitions.METRICS_FILE_SHORT_NAME)
+    public String METRICS_FILE_PREFIX;
+    @Option(doc = "The reference sequence fasta file", shortName = StandardOptionDefinitions.REFERENCE_SHORT_NAME)
+    public File REFERENCE;
+    @Option(doc = "Minimum read length")
+    public int MINIMUM_READ_LENGTH = 5;
+    @Option(doc = "Threshold for base quality of a C base before it is considered")
+    public int C_QUALITY_THRESHOLD = 20;
+    @Option(doc = "Threshold for quality of a base next to a C before the C base is considered")
+    public int NEXT_BASE_QUALITY_THRESHOLD = 10;
+    @Option(doc = "Maximum percentage of mismatches in a read for it to be considered, with a range of 0-1")
+    public double MAX_MISMATCH_RATE = 0.1;
+    @Option(doc = "Set of sequence names to consider, if not specified all sequences will be used", optional = true)
+    public Set<String> SEQUENCE_NAMES = new HashSet<String>();
+    @Option(shortName = StandardOptionDefinitions.ASSUME_SORTED_SHORT_NAME,
+            doc = "If true, assume that the input file is coordinate sorted even if the header says otherwise.")
+    public boolean ASSUME_SORTED = false;
+    @Option(shortName = "LEVEL", doc = "The level(s) at which to accumulate metrics.  ")
+    public Set<MetricAccumulationLevel> METRIC_ACCUMULATION_LEVEL = CollectionUtil.makeSet(MetricAccumulationLevel.ALL_READS);
+
+    public static final String DETAIL_FILE_EXTENSION = "rrbs_detail_metrics";
+    public static final String SUMMARY_FILE_EXTENSION = "rrbs_summary_metrics";
+    public static final String PDF_FILE_EXTENSION = "rrbs_qc.pdf";
+
+    private static final Log log = Log.getInstance(CollectRrbsMetrics.class);
+
+    public static void main(final String[] args) {
+        new CollectRrbsMetrics().instanceMainWithExit(args);
+    }
+
+    @Override
+    protected int doWork() {
+        if (!METRICS_FILE_PREFIX.endsWith(".")) {
+            METRICS_FILE_PREFIX = METRICS_FILE_PREFIX + ".";
+        }
+        final File SUMMARY_OUT = new File(METRICS_FILE_PREFIX + SUMMARY_FILE_EXTENSION);
+        final File DETAILS_OUT = new File(METRICS_FILE_PREFIX + DETAIL_FILE_EXTENSION);
+        final File PLOTS_OUT = new File(METRICS_FILE_PREFIX + PDF_FILE_EXTENSION);
+        assertIoFiles(SUMMARY_OUT, DETAILS_OUT, PLOTS_OUT);
+
+        final SamReader samReader = SamReaderFactory.makeDefault().open(INPUT);
+        if (!ASSUME_SORTED && samReader.getFileHeader().getSortOrder() != SAMFileHeader.SortOrder.coordinate) {
+            throw new PicardException("The input file " + INPUT.getAbsolutePath() + " does not appear to be coordinate sorted");
+        }
+
+        final ReferenceSequenceFileWalker refWalker = new ReferenceSequenceFileWalker(REFERENCE);
+        final ProgressLogger progressLogger = new ProgressLogger(log);
+
+        final RrbsMetricsCollector metricsCollector = new RrbsMetricsCollector(METRIC_ACCUMULATION_LEVEL, samReader.getFileHeader().getReadGroups(),
+                C_QUALITY_THRESHOLD, NEXT_BASE_QUALITY_THRESHOLD, MINIMUM_READ_LENGTH, MAX_MISMATCH_RATE);
+
+        for (final SAMRecord samRecord : samReader) {
+            progressLogger.record(samRecord);
+            if (!samRecord.getReadUnmappedFlag() && !isSequenceFiltered(samRecord.getReferenceName())) {
+                final ReferenceSequence referenceSequence = refWalker.get(samRecord.getReferenceIndex());
+                metricsCollector.acceptRecord(samRecord, referenceSequence);
+            }
+        }
+        metricsCollector.finish();
+        final MetricsFile<RrbsMetrics, Comparable<?>> rrbsMetrics = getMetricsFile();
+        metricsCollector.addAllLevelsToFile(rrbsMetrics);
+
+        // Using RrbsMetrics as a way to get both of the metrics objects through the MultiLevelCollector. Once
+        // we get it out split it apart to the two separate MetricsFiles and write them to file
+        final MetricsFile<RrbsSummaryMetrics, ?> summaryFile = getMetricsFile();
+        final MetricsFile<RrbsCpgDetailMetrics, ?> detailsFile = getMetricsFile();
+        for (final RrbsMetrics rrbsMetric : rrbsMetrics.getMetrics()) {
+            summaryFile.addMetric(rrbsMetric.getSummaryMetrics());
+            for (final RrbsCpgDetailMetrics detailMetric : rrbsMetric.getDetailMetrics()) {
+                detailsFile.addMetric(detailMetric);
+            }
+        }
+        summaryFile.write(SUMMARY_OUT);
+        detailsFile.write(DETAILS_OUT);
+        RExecutor.executeFromClasspath(R_SCRIPT, DETAILS_OUT.getAbsolutePath(), SUMMARY_OUT.getAbsolutePath(), PLOTS_OUT.getAbsolutePath());
+        CloserUtil.close(samReader);
+        return 0;
+    }
+
+    private boolean isSequenceFiltered(final String sequenceName) {
+        return (SEQUENCE_NAMES != null) && (SEQUENCE_NAMES.size() > 0) && (!SEQUENCE_NAMES.contains(sequenceName));
+    }
+
+    private void assertIoFiles(final File summaryFile, final File detailsFile, final File plotsFile) {
+        IOUtil.assertFileIsReadable(INPUT);
+        IOUtil.assertFileIsReadable(REFERENCE);
+        IOUtil.assertFileIsWritable(summaryFile);
+        IOUtil.assertFileIsWritable(detailsFile);
+        IOUtil.assertFileIsWritable(plotsFile);
+    }
+
+    @Override
+    protected String[] customCommandLineValidation() {
+        final List<String> errorMsgs = new ArrayList<String>();
+        if (MAX_MISMATCH_RATE < 0 || MAX_MISMATCH_RATE > 1) {
+            errorMsgs.add("MAX_MISMATCH_RATE must be in the range of 0-1");
+        }
+
+        if (C_QUALITY_THRESHOLD < 0) {
+            errorMsgs.add("C_QUALITY_THRESHOLD must be >= 0");
+        }
+
+        if (NEXT_BASE_QUALITY_THRESHOLD < 0) {
+            errorMsgs.add("NEXT_BASE_QUALITY_THRESHOLD must be >= 0");
+        }
+
+        if (MINIMUM_READ_LENGTH <= 0) {
+            errorMsgs.add("MINIMUM_READ_LENGTH must be > 0");
+        }
+
+        return errorMsgs.size() == 0 ? null : errorMsgs.toArray(new String[errorMsgs.size()]);
+    }
+}
diff --git a/src/java/picard/analysis/CollectWgsMetrics.java b/src/java/picard/analysis/CollectWgsMetrics.java
new file mode 100644
index 0000000..bfb4a00
--- /dev/null
+++ b/src/java/picard/analysis/CollectWgsMetrics.java
@@ -0,0 +1,314 @@
+package picard.analysis;
+
+import htsjdk.samtools.AlignmentBlock;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.filter.SamRecordFilter;
+import htsjdk.samtools.filter.SecondaryAlignmentFilter;
+import htsjdk.samtools.metrics.MetricBase;
+import htsjdk.samtools.metrics.MetricsFile;
+import htsjdk.samtools.reference.ReferenceSequence;
+import htsjdk.samtools.reference.ReferenceSequenceFileWalker;
+import htsjdk.samtools.util.Histogram;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.ProgressLogger;
+import htsjdk.samtools.util.SamLocusIterator;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.programgroups.Metrics;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.util.MathUtil;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+
+/**
+ * Computes a number of metrics that are useful for evaluating coverage and performance of whole genome sequencing experiments.
+ *
+ * @author tfennell
+ */
+ at CommandLineProgramProperties(
+        usage = "Computes a number of metrics that are useful for evaluating coverage and performance of " +
+                "whole genome sequencing experiments.",
+        usageShort = "Writes whole genome sequencing-related metrics for a SAM or BAM file",
+        programGroup = Metrics.class
+)
+public class CollectWgsMetrics extends CommandLineProgram {
+
+    @Option(shortName = StandardOptionDefinitions.INPUT_SHORT_NAME, doc = "Input SAM or BAM file.")
+    public File INPUT;
+
+    @Option(shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc = "Output metrics file.")
+    public File OUTPUT;
+
+    @Option(shortName = StandardOptionDefinitions.REFERENCE_SHORT_NAME, doc = "The reference sequence fasta aligned to.")
+    public File REFERENCE_SEQUENCE;
+
+    @Option(shortName = "MQ", doc = "Minimum mapping quality for a read to contribute coverage.", overridable = true)
+    public int MINIMUM_MAPPING_QUALITY = 20;
+
+    @Option(shortName = "Q", doc = "Minimum base quality for a base to contribute coverage.", overridable = true)
+    public int MINIMUM_BASE_QUALITY = 20;
+
+    @Option(shortName = "CAP", doc = "Treat bases with coverage exceeding this value as if they had coverage at this value.", overridable = true)
+    public int COVERAGE_CAP = 250;
+
+    @Option(doc = "For debugging purposes, stop after processing this many genomic bases.")
+    public long STOP_AFTER = -1;
+
+    @Option(doc = "Determines whether to include the base quality histogram in the metrics file.")
+    public boolean INCLUDE_BQ_HISTOGRAM = false;
+
+    private final Log log = Log.getInstance(CollectWgsMetrics.class);
+
+    /** Metrics for evaluating the performance of whole genome sequencing experiments. */
+    public static class WgsMetrics extends MetricBase {
+        /** The number of non-N bases in the genome reference over which coverage will be evaluated. */
+        public long GENOME_TERRITORY;
+        /** The mean coverage in bases of the genome territory, after all filters are applied. */
+        public double MEAN_COVERAGE;
+        /** The standard deviation of coverage of the genome after all filters are applied. */
+        public double SD_COVERAGE;
+        /** The median coverage in bases of the genome territory, after all filters are applied. */
+        public double MEDIAN_COVERAGE;
+        /** The median absolute deviation of coverage of the genome after all filters are applied. */
+        public double MAD_COVERAGE;
+
+        /** The fraction of aligned bases that were filtered out because they were in reads with low mapping quality (default is < 20). */
+        public double PCT_EXC_MAPQ;
+        /** The fraction of aligned bases that were filtered out because they were in reads marked as duplicates. */
+        public double PCT_EXC_DUPE;
+        /** The fraction of aligned bases that were filtered out because they were in reads without a mapped mate pair. */
+        public double PCT_EXC_UNPAIRED;
+        /** The fraction of aligned bases that were filtered out because they were of low base quality (default is < 20). */
+        public double PCT_EXC_BASEQ;
+        /** The fraction of aligned bases that were filtered out because they were the second observation from an insert with overlapping reads. */
+        public double PCT_EXC_OVERLAP;
+        /** The fraction of aligned bases that were filtered out because they would have raised coverage above the capped value (default cap = 250x). */
+        public double PCT_EXC_CAPPED;
+        /** The total fraction of aligned bases excluded due to all filters. */
+        public double PCT_EXC_TOTAL;
+
+        /** The fraction of bases that attained at least 5X sequence coverage in post-filtering bases. */
+        public double PCT_5X;
+        /** The fraction of bases that attained at least 10X sequence coverage in post-filtering bases. */
+        public double PCT_10X;
+        /** The fraction of bases that attained at least 15X sequence coverage in post-filtering bases. */
+        public double PCT_15X;
+        /** The fraction of bases that attained at least 20X sequence coverage in post-filtering bases. */
+        public double PCT_20X;
+        /** The fraction of bases that attained at least 25X sequence coverage in post-filtering bases. */
+        public double PCT_25X;
+        /** The fraction of bases that attained at least 30X sequence coverage in post-filtering bases. */
+        public double PCT_30X;
+        /** The fraction of bases that attained at least 40X sequence coverage in post-filtering bases. */
+        public double PCT_40X;
+        /** The fraction of bases that attained at least 50X sequence coverage in post-filtering bases. */
+        public double PCT_50X;
+        /** The fraction of bases that attained at least 60X sequence coverage in post-filtering bases. */
+        public double PCT_60X;
+        /** The fraction of bases that attained at least 70X sequence coverage in post-filtering bases. */
+        public double PCT_70X;
+        /** The fraction of bases that attained at least 80X sequence coverage in post-filtering bases. */
+        public double PCT_80X;
+        /** The fraction of bases that attained at least 90X sequence coverage in post-filtering bases. */
+        public double PCT_90X;
+        /** The fraction of bases that attained at least 100X sequence coverage in post-filtering bases. */
+        public double PCT_100X;
+    }
+
+    public static void main(final String[] args) {
+        new CollectWgsMetrics().instanceMainWithExit(args);
+    }
+
+    @Override
+    protected int doWork() {
+        IOUtil.assertFileIsReadable(INPUT);
+        IOUtil.assertFileIsWritable(OUTPUT);
+        IOUtil.assertFileIsReadable(REFERENCE_SEQUENCE);
+
+        // Setup all the inputs
+        final ProgressLogger progress = new ProgressLogger(log, 10000000, "Processed", "loci");
+        final ReferenceSequenceFileWalker refWalker = new ReferenceSequenceFileWalker(REFERENCE_SEQUENCE);
+        final SamReader in = SamReaderFactory.makeDefault().referenceSequence(REFERENCE_SEQUENCE).open(INPUT);
+
+        final SamLocusIterator iterator = new SamLocusIterator(in);
+        final List<SamRecordFilter> filters = new ArrayList<SamRecordFilter>();
+        final CountingFilter dupeFilter = new CountingDuplicateFilter();
+        final CountingFilter mapqFilter = new CountingMapQFilter(MINIMUM_MAPPING_QUALITY);
+        final CountingPairedFilter pairFilter = new CountingPairedFilter();
+        filters.add(mapqFilter);
+        filters.add(dupeFilter);
+        filters.add(pairFilter);
+        filters.add(new SecondaryAlignmentFilter()); // Not a counting filter because we never want to count reads twice
+        iterator.setSamFilters(filters);
+        iterator.setEmitUncoveredLoci(true);
+        iterator.setMappingQualityScoreCutoff(0); // Handled separately because we want to count bases
+        iterator.setQualityScoreCutoff(0);        // Handled separately because we want to count bases
+        iterator.setIncludeNonPfReads(false);
+
+        final int max = COVERAGE_CAP;
+        final long[] HistogramArray = new long[max + 1];
+        final long[] baseQHistogramArray = new long[Byte.MAX_VALUE];
+        final boolean usingStopAfter = STOP_AFTER > 0;
+        final long stopAfter = STOP_AFTER - 1;
+        long counter = 0;
+
+        long basesExcludedByBaseq = 0;
+        long basesExcludedByOverlap = 0;
+        long basesExcludedByCapping = 0;
+
+        // Loop through all the loci
+        while (iterator.hasNext()) {
+            final SamLocusIterator.LocusInfo info = iterator.next();
+
+            // Check that the reference is not N
+            final ReferenceSequence ref = refWalker.get(info.getSequenceIndex());
+            final byte base = ref.getBases()[info.getPosition() - 1];
+            if (base == 'N') continue;
+
+            // Figure out the coverage while not counting overlapping reads twice, and excluding various things
+            final HashSet<String> readNames = new HashSet<String>(info.getRecordAndPositions().size());
+            int pileupSize = 0;
+            for (final SamLocusIterator.RecordAndOffset recs : info.getRecordAndPositions()) {
+
+                if (recs.getBaseQuality() < MINIMUM_BASE_QUALITY)                   { ++basesExcludedByBaseq;   continue; }
+                if (!readNames.add(recs.getRecord().getReadName()))                 { ++basesExcludedByOverlap; continue; }
+                pileupSize++;
+                if (pileupSize <= max) {
+                    baseQHistogramArray[recs.getRecord().getBaseQualities()[recs.getOffset()]]++;
+                }
+            }
+
+            final int depth = Math.min(readNames.size(), max);
+            if (depth < readNames.size()) basesExcludedByCapping += readNames.size() - max;
+            HistogramArray[depth]++;
+
+            // Record progress and perhaps stop
+            progress.record(info.getSequenceName(), info.getPosition());
+            if (usingStopAfter && ++counter > stopAfter) break;
+        }
+
+        // Construct and write the outputs
+        final Histogram<Integer> histo = new Histogram<Integer>("coverage", "count");
+        for (int i = 0; i < HistogramArray.length; ++i) {
+            histo.increment(i, HistogramArray[i]);
+        }
+
+        // Construct and write the outputs
+        final Histogram<Integer> baseQHisto = new Histogram<Integer>("value", "baseq_count");
+        for (int i=0; i<baseQHistogramArray.length; ++i) {
+            baseQHisto.increment(i, baseQHistogramArray[i]);
+        }
+
+        final WgsMetrics metrics = generateWgsMetrics();
+        metrics.GENOME_TERRITORY = (long) histo.getSumOfValues();
+        metrics.MEAN_COVERAGE = histo.getMean();
+        metrics.SD_COVERAGE = histo.getStandardDeviation();
+        metrics.MEDIAN_COVERAGE = histo.getMedian();
+        metrics.MAD_COVERAGE = histo.getMedianAbsoluteDeviation();
+
+        final long basesExcludedByDupes = dupeFilter.getFilteredBases();
+        final long basesExcludedByMapq = mapqFilter.getFilteredBases();
+        final long basesExcludedByPairing = pairFilter.getFilteredBases();
+        final double total = histo.getSum();
+        final double totalWithExcludes = total + basesExcludedByDupes + basesExcludedByMapq + basesExcludedByPairing + basesExcludedByBaseq + basesExcludedByOverlap + basesExcludedByCapping;
+        metrics.PCT_EXC_DUPE = basesExcludedByDupes / totalWithExcludes;
+        metrics.PCT_EXC_MAPQ = basesExcludedByMapq / totalWithExcludes;
+        metrics.PCT_EXC_UNPAIRED = basesExcludedByPairing / totalWithExcludes;
+        metrics.PCT_EXC_BASEQ = basesExcludedByBaseq / totalWithExcludes;
+        metrics.PCT_EXC_OVERLAP = basesExcludedByOverlap / totalWithExcludes;
+        metrics.PCT_EXC_CAPPED = basesExcludedByCapping / totalWithExcludes;
+        metrics.PCT_EXC_TOTAL = (totalWithExcludes - total) / totalWithExcludes;
+
+        metrics.PCT_5X = MathUtil.sum(HistogramArray, 5, HistogramArray.length) / (double) metrics.GENOME_TERRITORY;
+        metrics.PCT_10X = MathUtil.sum(HistogramArray, 10, HistogramArray.length) / (double) metrics.GENOME_TERRITORY;
+        metrics.PCT_15X = MathUtil.sum(HistogramArray, 15, HistogramArray.length) / (double) metrics.GENOME_TERRITORY;
+        metrics.PCT_20X = MathUtil.sum(HistogramArray, 20, HistogramArray.length) / (double) metrics.GENOME_TERRITORY;
+        metrics.PCT_25X = MathUtil.sum(HistogramArray, 25, HistogramArray.length) / (double) metrics.GENOME_TERRITORY;
+        metrics.PCT_30X = MathUtil.sum(HistogramArray, 30, HistogramArray.length) / (double) metrics.GENOME_TERRITORY;
+        metrics.PCT_40X = MathUtil.sum(HistogramArray, 40, HistogramArray.length) / (double) metrics.GENOME_TERRITORY;
+        metrics.PCT_50X = MathUtil.sum(HistogramArray, 50, HistogramArray.length) / (double) metrics.GENOME_TERRITORY;
+        metrics.PCT_60X = MathUtil.sum(HistogramArray, 60, HistogramArray.length) / (double) metrics.GENOME_TERRITORY;
+        metrics.PCT_70X = MathUtil.sum(HistogramArray, 70, HistogramArray.length) / (double) metrics.GENOME_TERRITORY;
+        metrics.PCT_80X = MathUtil.sum(HistogramArray, 80, HistogramArray.length) / (double) metrics.GENOME_TERRITORY;
+        metrics.PCT_90X = MathUtil.sum(HistogramArray, 90, HistogramArray.length) / (double) metrics.GENOME_TERRITORY;
+        metrics.PCT_100X = MathUtil.sum(HistogramArray, 100, HistogramArray.length) / (double) metrics.GENOME_TERRITORY;
+
+        final MetricsFile<WgsMetrics, Integer> out = getMetricsFile();
+        out.addMetric(metrics);
+        out.addHistogram(histo);
+        if (INCLUDE_BQ_HISTOGRAM) {
+            out.addHistogram(baseQHisto);
+        }
+        out.write(OUTPUT);
+
+        return 0;
+    }
+
+    protected WgsMetrics generateWgsMetrics() {
+        return new WgsMetrics();
+    }
+}
+
+/**
+ * A SamRecordFilter that counts the number of aligned bases in the reads which it filters out. Abstract and designed
+ * to be subclassed to implement the desired filter.
+ */
+abstract class CountingFilter implements SamRecordFilter {
+    private long filteredRecords = 0;
+    private long filteredBases = 0;
+
+    /** Gets the number of records that have been filtered out thus far. */
+    public long getFilteredRecords() { return this.filteredRecords; }
+
+    /** Gets the number of bases that have been filtered out thus far. */
+    public long getFilteredBases() { return this.filteredBases; }
+
+    @Override
+    public final boolean filterOut(final SAMRecord record) {
+        final boolean filteredOut = reallyFilterOut(record);
+        if (filteredOut) {
+            ++filteredRecords;
+            for (final AlignmentBlock block : record.getAlignmentBlocks()) {
+                this.filteredBases += block.getLength();
+            }
+        }
+        return filteredOut;
+    }
+
+    abstract public boolean reallyFilterOut(final SAMRecord record);
+
+    @Override
+    public boolean filterOut(final SAMRecord first, final SAMRecord second) {
+        throw new UnsupportedOperationException();
+    }
+}
+
+/** Counting filter that discards reads that have been marked as duplicates. */
+class CountingDuplicateFilter extends CountingFilter {
+    @Override
+    public boolean reallyFilterOut(final SAMRecord record) { return record.getDuplicateReadFlag(); }
+}
+
+/** Counting filter that discards reads below a configurable mapping quality threshold. */
+class CountingMapQFilter extends CountingFilter {
+    private final int minMapq;
+
+    CountingMapQFilter(final int minMapq) { this.minMapq = minMapq; }
+
+    @Override
+    public boolean reallyFilterOut(final SAMRecord record) { return record.getMappingQuality() < minMapq; }
+}
+
+/** Counting filter that discards reads that are unpaired in sequencing and paired reads who's mates are not mapped. */
+class CountingPairedFilter extends CountingFilter {
+    @Override
+    public boolean reallyFilterOut(final SAMRecord record) { return !record.getReadPairedFlag() || record.getMateUnmappedFlag(); }
+}
+
diff --git a/src/java/picard/analysis/CompareMetrics.java b/src/java/picard/analysis/CompareMetrics.java
new file mode 100644
index 0000000..130bba6
--- /dev/null
+++ b/src/java/picard/analysis/CompareMetrics.java
@@ -0,0 +1,53 @@
+package picard.analysis;
+
+import htsjdk.samtools.metrics.MetricsFile;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import picard.PicardException;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.PositionalArguments;
+import picard.cmdline.programgroups.Metrics;
+
+import java.io.File;
+import java.io.FileReader;
+import java.util.List;
+
+/**
+ * Compare two metrics files.
+ */
+ at CommandLineProgramProperties(
+        usage = CompareMetrics.USAGE,
+        usageShort = CompareMetrics.USAGE,
+        programGroup = Metrics.class
+)
+public class CompareMetrics extends CommandLineProgram {
+
+    static final String USAGE = "Compare two metrics files";
+
+    @PositionalArguments(minElements = 2, maxElements = 2)
+    public List<File> metricsFiles;
+
+    private static final Log log = Log.getInstance(CompareMetrics.class);
+
+    @Override
+    protected int doWork() {
+        IOUtil.assertFilesAreReadable(metricsFiles);
+        final MetricsFile<?, ?> metricsA = new MetricsFile();
+        final MetricsFile<?, ?> metricsB = new MetricsFile();
+        try {
+            metricsA.read(new FileReader(metricsFiles.get(0)));
+            metricsB.read(new FileReader(metricsFiles.get(1)));
+            final boolean areEqual = metricsA.areMetricsEqual(metricsB) && metricsA.areHistogramsEqual(metricsB);
+            final String status = areEqual ? "EQUAL" : "NOT EQUAL";
+            log.info("Files " + metricsFiles.get(0) + " and " + metricsFiles.get(1) + "are " + status);
+        } catch (final Exception e) {
+            throw new PicardException(e.getMessage());
+        }
+        return 0;
+    }
+
+    public static void main(String[] argv) {
+        new CompareMetrics().instanceMainWithExit(argv);
+    }
+}
diff --git a/src/java/picard/analysis/GcBiasDetailMetrics.java b/src/java/picard/analysis/GcBiasDetailMetrics.java
new file mode 100644
index 0000000..281a23c
--- /dev/null
+++ b/src/java/picard/analysis/GcBiasDetailMetrics.java
@@ -0,0 +1,64 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.analysis;
+
+import picard.metrics.MultilevelMetrics;
+
+/**
+ * Class that holds detailed metrics about reads that fall within windows of a certain
+ * GC bin on the reference genome.
+ *
+ * @author Tim Fennell
+ */
+public class GcBiasDetailMetrics extends MultilevelMetrics {
+    public String ACCUMULATION_LEVEL;
+    /** The G+C content of the reference sequence represented by this bin. Values are from 0% to 100% */
+    public int GC;
+
+    /** The number of windows on the reference genome that have this G+C content. */
+    public int WINDOWS;
+
+    /** The number of reads whose start position is at the start of a window of this GC. */
+    public long READ_STARTS;
+
+    /** The mean quality (determined via the error rate) of all bases of all reads that are assigned to windows of this GC. */
+    public int MEAN_BASE_QUALITY;
+
+    /**
+     * The ration of "coverage" in this GC bin vs. the mean coverage of all GC bins. A number of
+     * 1 represents mean coverage, a number less than one represents lower than mean coverage (e.g. 0.5
+     * means half as much coverage as average) while a number greater than one represents higher than
+     * mean coverage (e.g. 3.1 means this GC bin has 3.1 times more reads per window than average).
+     */
+    public double NORMALIZED_COVERAGE;
+
+    /**
+     * The radius of error bars in this bin based on the number of observations made. For example if
+     * the normalized coverage is 0.75 and the error bar width is 0.1 then the error bars would be
+     * drawn from 0.65 to 0.85. 
+     */
+    public double ERROR_BAR_WIDTH;
+
+}
diff --git a/src/java/picard/analysis/GcBiasSummaryMetrics.java b/src/java/picard/analysis/GcBiasSummaryMetrics.java
new file mode 100644
index 0000000..6841a67
--- /dev/null
+++ b/src/java/picard/analysis/GcBiasSummaryMetrics.java
@@ -0,0 +1,57 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.analysis;
+
+import picard.metrics.MultilevelMetrics;
+
+/**
+ * High level metrics that capture how biased the coverage in a certain lane is.
+ *
+ * @author Tim Fennell
+ */
+public class GcBiasSummaryMetrics extends MultilevelMetrics {
+    public String ACCUMULATION_LEVEL;
+
+    /** The window size on the genome used to calculate the GC of the sequence. */
+    public int WINDOW_SIZE;
+
+    /** The total number of clusters that were seen in the gc bias calculation. */
+    public int TOTAL_CLUSTERS;
+
+    /** The total number of aligned reads used to compute the gc bias metrics. */
+    public int ALIGNED_READS;
+
+    /**
+     * Illumina-style AT dropout metric.  Calculated by taking each GC bin independently and calculating
+     * (%ref_at_gc - %reads_at_gc) and summing all positive values for GC=[0..50].
+     */
+    public double AT_DROPOUT;
+
+    /**
+     * Illumina-style GC dropout metric.  Calculated by taking each GC bin independently and calculating
+     * (%ref_at_gc - %reads_at_gc) and summing all positive values for GC=[50..100].
+     */
+    public double GC_DROPOUT;
+}
diff --git a/src/java/picard/analysis/InsertSizeMetrics.java b/src/java/picard/analysis/InsertSizeMetrics.java
new file mode 100644
index 0000000..af492cd
--- /dev/null
+++ b/src/java/picard/analysis/InsertSizeMetrics.java
@@ -0,0 +1,94 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.analysis;
+
+import htsjdk.samtools.SamPairUtil.PairOrientation;
+import picard.metrics.MultilevelMetrics;
+
+/**
+ * Metrics about the insert size distribution of a paired-end library, created by the
+ * CollectInsertSizeMetrics program and usually written to a file with the extension
+ * ".insert_size_metrics".  In addition the insert size distribution is plotted to
+ * a file with the extension ".insert_size_Histogram.pdf".
+ *
+ * @author Doug Voet (dvoet at broadinstitute dot org)
+ */
+public class InsertSizeMetrics extends MultilevelMetrics {
+
+    /** The MEDIAN insert size of all paired end reads where both ends mapped to the same chromosome. */
+    public double MEDIAN_INSERT_SIZE;
+
+    /**
+     * The median absolute deviation of the distribution.  If the distribution is essentially normal then
+     * the standard deviation can be estimated as ~1.4826 * MAD.
+     */
+    public double MEDIAN_ABSOLUTE_DEVIATION;
+
+    /** The minimum measured insert size.  This is usually 1 and not very useful as it is likely artifactual. */
+    public int MIN_INSERT_SIZE;
+    /**
+     * The maximum measure insert size by alignment. This is usually very high representing either an artifact
+     * or possibly the presence of a structural re-arrangement.
+     */
+    public int MAX_INSERT_SIZE;
+    /**
+     * The mean insert size of the "core" of the distribution. Artefactual outliers in the distribution often
+     * cause calculation of nonsensical mean and stdev values.  To avoid this the distribution is first trimmed
+     * to a "core" distribution of +/- N median absolute deviations around the median insert size. By default
+     * N=10, but this is configurable.
+     */
+    public double MEAN_INSERT_SIZE;
+    /** Standard deviation of insert sizes over the "core" of the distribution. */
+    public double STANDARD_DEVIATION;
+    /** The total number of read pairs that were examined in the entire distribution. */
+    public long READ_PAIRS;
+    /** The pair orientation of the reads in this data category. */
+    public PairOrientation PAIR_ORIENTATION;
+
+    /** The "width" of the bins, centered around the median, that encompass 10% of all read pairs. */
+    public int WIDTH_OF_10_PERCENT;
+    /** The "width" of the bins, centered around the median, that encompass 20% of all read pairs. */
+    public int WIDTH_OF_20_PERCENT;
+    /** The "width" of the bins, centered around the median, that encompass 30% of all read pairs. */
+    public int WIDTH_OF_30_PERCENT;
+    /** The "width" of the bins, centered around the median, that encompass 40% of all read pairs. */
+    public int WIDTH_OF_40_PERCENT;
+    /** The "width" of the bins, centered around the median, that encompass 50% of all read pairs. */
+    public int WIDTH_OF_50_PERCENT;
+    /** The "width" of the bins, centered around the median, that encompass 60% of all read pairs. */
+    public int WIDTH_OF_60_PERCENT;
+    /**
+     * The "width" of the bins, centered around the median, that encompass 70% of all read pairs.
+     * This metric divided by 2 should approximate the standard deviation when the insert size
+     * distribution is a normal distribution.
+     */
+    public int WIDTH_OF_70_PERCENT;
+    /** The "width" of the bins, centered around the median, that encompass 80% of all read pairs. */
+    public int WIDTH_OF_80_PERCENT;
+    /** The "width" of the bins, centered around the median, that encompass 90% of all read pairs. */
+    public int WIDTH_OF_90_PERCENT;
+    /** The "width" of the bins, centered around the median, that encompass 100% of all read pairs. */
+    public int WIDTH_OF_99_PERCENT;
+}
diff --git a/src/java/picard/analysis/JumpingLibraryMetrics.java b/src/java/picard/analysis/JumpingLibraryMetrics.java
new file mode 100644
index 0000000..de60c62
--- /dev/null
+++ b/src/java/picard/analysis/JumpingLibraryMetrics.java
@@ -0,0 +1,127 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.analysis;
+
+import picard.sam.DuplicationMetrics;
+import htsjdk.samtools.util.Histogram;
+import htsjdk.samtools.metrics.MetricBase;
+
+/**
+ * High level metrics about the presence of  outward- and inward-facing pairs
+ * within a SAM file generated with a jumping library, produced by
+ * the CollectJumpingLibraryMetrics program and usually stored in a file with
+ * the extension ".jump_metrics".
+ */
+public class JumpingLibraryMetrics extends MetricBase {
+
+    /**
+     * The number of outward-facing pairs in the SAM file
+     */
+    public long JUMP_PAIRS;
+
+    /**
+     * The number of outward-facing pairs that are duplicates
+     */
+    public long JUMP_DUPLICATE_PAIRS;
+
+    /**
+     * The percentage of outward-facing pairs that are marked as duplicates
+     */
+    public double JUMP_DUPLICATE_PCT;
+
+    /**
+     * The estimated library size for outward-facing pairs
+     */
+    public long JUMP_LIBRARY_SIZE;
+
+    /**
+     * The mean insert size for outward-facing pairs
+     */
+    public double JUMP_MEAN_INSERT_SIZE;
+
+    /**
+     * The standard deviation on the insert size for outward-facing pairs
+     */
+    public double JUMP_STDEV_INSERT_SIZE;
+
+    /**
+     * The number of inward-facing pairs in the SAM file
+     */
+    public long NONJUMP_PAIRS;
+
+    /**
+     * The number of inward-facing pais that are duplicates
+     */
+    public long NONJUMP_DUPLICATE_PAIRS;
+
+    /**
+     * The percentage of inward-facing pairs that are marked as duplicates
+     */
+    public double NONJUMP_DUPLICATE_PCT;
+
+    /**
+     * The estimated library size for inward-facing pairs
+     */
+    public long NONJUMP_LIBRARY_SIZE;
+
+    /**
+     * The mean insert size for inward-facing pairs
+     */
+    public double NONJUMP_MEAN_INSERT_SIZE;
+
+    /**
+     * The standard deviation on the insert size for inward-facing pairs
+     */
+    public double NONJUMP_STDEV_INSERT_SIZE;
+
+    /**
+     * The number of pairs where either (a) the ends fall on different chromosomes or (b) the insert size
+     * is greater than the maximum of 100000 or 2 times the mode of the insert size for outward-facing pairs.
+     */
+    public long CHIMERIC_PAIRS;
+
+    /**
+     * The number of fragments in the SAM file
+     */
+    public long FRAGMENTS;
+
+    /**
+     * The number of outward-facing pairs expressed as a percentage of the total of all outward facing pairs,
+     * inward-facing pairs, and chimeric pairs.
+     */
+    public double PCT_JUMPS; 
+
+    /**
+     * The number of inward-facing pairs expressed as a percentage of the total of all outward facing pairs,
+     * inward-facing pairs, and chimeric pairs.
+     */
+    public double PCT_NONJUMPS;
+
+    /**
+     * The number of chimeric pairs expressed as a percentage of the total of all outward facing pairs,
+     * inward-facing pairs, and chimeric pairs.
+     */
+    public double PCT_CHIMERAS;
+    
+}
diff --git a/src/java/picard/analysis/MeanQualityByCycle.java b/src/java/picard/analysis/MeanQualityByCycle.java
new file mode 100644
index 0000000..8c7c11a
--- /dev/null
+++ b/src/java/picard/analysis/MeanQualityByCycle.java
@@ -0,0 +1,207 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.analysis;
+
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMReadGroupRecord;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.metrics.MetricsFile;
+import htsjdk.samtools.reference.ReferenceSequence;
+import htsjdk.samtools.util.Histogram;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.StringUtil;
+import picard.PicardException;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.programgroups.Metrics;
+import picard.util.RExecutor;
+
+import java.io.File;
+import java.util.Arrays;
+import java.util.List;
+
+
+/**
+ * Program to generate a data table and chart of mean quality by cycle from a
+ * BAM file.  Works best on a single lane/run of data, but can be applied to
+ * merged BAMs - the output may just be a little confusing.
+ *
+ * @author Tim Fennell
+ */
+ at CommandLineProgramProperties(
+        usage = "Program to generate a data table and pdf chart of " +
+                "mean base quality by cycle from a SAM or BAM file.  Works best on a single lane/run of data, but can be applied to" +
+                "merged BAMs. Uses R to generate chart output.",
+        usageShort = "Writes mean quality by cycle for a SAM or BAM file",
+        programGroup = Metrics.class
+)
+public class MeanQualityByCycle extends SinglePassSamProgram {
+
+    @Option(shortName="CHART", doc="A file (with .pdf extension) to write the chart to.")
+    public File CHART_OUTPUT;
+
+    @Option(doc="If set to true, calculate mean quality over aligned reads only.")
+    public boolean ALIGNED_READS_ONLY = false;
+
+    @Option(doc="If set to true calculate mean quality over PF reads only.")
+    public boolean PF_READS_ONLY = false;
+
+    private final HistogramGenerator q  = new HistogramGenerator(false);
+    private final HistogramGenerator oq = new HistogramGenerator(true);
+
+    /**
+     * A subtitle for the plot, usually corresponding to a library.
+     */
+    private String plotSubtitle = "";
+
+    private final Log log = Log.getInstance(MeanQualityByCycle.class);
+
+    /** Required main method. */
+    public static void main(String[] args) {
+        System.exit(new MeanQualityByCycle().instanceMain(args));
+    }
+
+    private static class HistogramGenerator {
+        final boolean useOriginalQualities;
+        int maxLengthSoFar = 0;
+        double[] firstReadTotalsByCycle  = new double[maxLengthSoFar];
+        long[]   firstReadCountsByCycle  = new long[maxLengthSoFar];
+        double[] secondReadTotalsByCycle = new double[maxLengthSoFar];
+        long[]   secondReadCountsByCycle = new long[maxLengthSoFar];
+
+        private HistogramGenerator(final boolean useOriginalQualities) {
+            this.useOriginalQualities = useOriginalQualities;
+        }
+
+        void addRecord(final SAMRecord rec) {
+            final byte[] quals = (useOriginalQualities ? rec.getOriginalBaseQualities() : rec.getBaseQualities());
+            if (quals == null) return;
+
+            final int length = quals.length;
+            final boolean rc = rec.getReadNegativeStrandFlag();
+            ensureArraysBigEnough(length+1);
+
+            for (int i=0; i<length; ++i) {
+                final int cycle = rc ? length-i : i+1;
+
+                if (rec.getReadPairedFlag() && rec.getSecondOfPairFlag()) {
+                    secondReadTotalsByCycle[cycle] += quals[i];
+                    secondReadCountsByCycle[cycle] += 1;
+                }
+                else {
+                    firstReadTotalsByCycle[cycle] += quals[i];
+                    firstReadCountsByCycle[cycle] += 1;
+                }
+            }
+        }
+
+        private void ensureArraysBigEnough(final int length) {
+            if (length > maxLengthSoFar) {
+                firstReadTotalsByCycle  = Arrays.copyOf(firstReadTotalsByCycle, length);
+                firstReadCountsByCycle  = Arrays.copyOf(firstReadCountsByCycle, length);
+                secondReadTotalsByCycle = Arrays.copyOf(secondReadTotalsByCycle , length);
+                secondReadCountsByCycle = Arrays.copyOf(secondReadCountsByCycle, length);
+                maxLengthSoFar = length;
+            }
+        }
+
+        Histogram<Integer> getMeanQualityHistogram() {
+            final String label = useOriginalQualities ? "MEAN_ORIGINAL_QUALITY" : "MEAN_QUALITY";
+            final Histogram<Integer> meanQualities = new Histogram<Integer>("CYCLE", label);
+
+            int firstReadLength = 0;
+
+            for (int cycle=0; cycle < firstReadTotalsByCycle.length; ++cycle) {
+                if (firstReadTotalsByCycle[cycle] > 0) {
+                    meanQualities.increment(cycle, firstReadTotalsByCycle[cycle] / firstReadCountsByCycle[cycle]);
+                    firstReadLength = cycle;
+                }
+            }
+
+            for (int i=0; i< secondReadTotalsByCycle.length; ++i) {
+                if (secondReadCountsByCycle[i] > 0) {
+                    final int cycle = firstReadLength + i;
+                    meanQualities.increment(cycle, secondReadTotalsByCycle[i] / secondReadCountsByCycle[i]);
+                }
+            }
+
+            return meanQualities;
+        }
+
+        boolean isEmpty() {
+            return maxLengthSoFar == 0;
+        }
+    }
+
+    @Override
+    protected void setup(final SAMFileHeader header, final File samFile) {
+        IOUtil.assertFileIsWritable(CHART_OUTPUT);
+        // If we're working with a single library, assign that library's name
+        // as a suffix to the plot title
+        final List<SAMReadGroupRecord> readGroups = header.getReadGroups();
+        if (readGroups.size() == 1) {
+            plotSubtitle = StringUtil.asEmptyIfNull(readGroups.get(0).getLibrary());
+        }
+    }
+
+    @Override
+    protected void acceptRead(final SAMRecord rec, final ReferenceSequence ref) {
+        // Skip unwanted records
+        if (PF_READS_ONLY && rec.getReadFailsVendorQualityCheckFlag()) return;
+        if (ALIGNED_READS_ONLY && rec.getReadUnmappedFlag()) return;
+        if (rec.isSecondaryOrSupplementary()) return;
+
+        q.addRecord(rec);
+        oq.addRecord(rec);
+    }
+
+    @Override
+    protected void finish() {
+        // Generate a "Histogram" of mean quality and write it to the file
+        final MetricsFile<?,Integer> metrics = getMetricsFile();
+        metrics.addHistogram(q.getMeanQualityHistogram());
+        if (!oq.isEmpty()) metrics.addHistogram(oq.getMeanQualityHistogram());
+        metrics.write(OUTPUT);
+
+        if (q.isEmpty() && oq.isEmpty()) {
+            log.warn("No valid bases found in input file. No plot will be produced.");
+        }
+        else {
+            // Now run R to generate a chart
+            final int rResult = RExecutor.executeFromClasspath(
+                    "picard/analysis/meanQualityByCycle.R",
+                    OUTPUT.getAbsolutePath(),
+                    CHART_OUTPUT.getAbsolutePath(),
+                    INPUT.getName(),
+                    plotSubtitle);
+
+            if (rResult != 0) {
+                throw new PicardException("R script meanQualityByCycle.R failed with return code " + rResult);
+            }
+        }
+    }
+}
+
diff --git a/src/java/picard/analysis/MetricAccumulationLevel.java b/src/java/picard/analysis/MetricAccumulationLevel.java
new file mode 100755
index 0000000..95451a4
--- /dev/null
+++ b/src/java/picard/analysis/MetricAccumulationLevel.java
@@ -0,0 +1,32 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.analysis;
+
+/**
+ * For use with Picard metrics programs that may output metrics for multiple levels
+ * of aggregation with an analysis.  Used to specify which metrics to output
+ */
+public enum MetricAccumulationLevel {
+    ALL_READS, SAMPLE, LIBRARY, READ_GROUP
+}
diff --git a/src/java/picard/analysis/QualityScoreDistribution.java b/src/java/picard/analysis/QualityScoreDistribution.java
new file mode 100644
index 0000000..bc227d8
--- /dev/null
+++ b/src/java/picard/analysis/QualityScoreDistribution.java
@@ -0,0 +1,152 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.analysis;
+
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMReadGroupRecord;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.metrics.MetricsFile;
+import htsjdk.samtools.reference.ReferenceSequence;
+import htsjdk.samtools.util.Histogram;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.SequenceUtil;
+import picard.PicardException;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.programgroups.Metrics;
+import picard.util.RExecutor;
+
+import java.io.File;
+import java.util.List;
+
+/**
+ * Charts quality score distribution within a BAM file.
+ *
+ * @author Tim Fennell
+ */
+ at CommandLineProgramProperties(
+        usage = "Program to chart " +
+                "quality score distributions in a SAM or BAM file.",
+        usageShort = "Charts quality score distributions for a SAM or BAM file",
+        programGroup = Metrics.class
+)
+public class QualityScoreDistribution extends SinglePassSamProgram {
+
+    @Option(shortName="CHART", doc="A file (with .pdf extension) to write the chart to.")
+    public File CHART_OUTPUT;
+
+    @Option(doc="If set to true calculate mean quality over aligned reads only.")
+    public boolean ALIGNED_READS_ONLY = false;
+
+    @Option(shortName="PF", doc="If set to true calculate mean quality over PF reads only.")
+    public boolean PF_READS_ONLY = false;
+
+    @Option(doc="If set to true, include quality for no-call bases in the distribution.")
+    public boolean INCLUDE_NO_CALLS = false;
+
+    private final long[] qCounts  = new long[128];
+    private final long[] oqCounts = new long[128];
+
+    /**
+     * A subtitle for the plot, usually corresponding to a library.
+     */
+    private String plotSubtitle = "";
+
+    private final Log log = Log.getInstance(QualityScoreDistribution.class);
+
+    /** Required main method. */
+    public static void main(final String[] args) {
+        System.exit(new QualityScoreDistribution().instanceMain(args));
+    }
+
+    @Override
+    protected void setup(final SAMFileHeader header, final File samFile) {
+        IOUtil.assertFileIsWritable(OUTPUT);
+        IOUtil.assertFileIsWritable(CHART_OUTPUT);
+
+        // If we're working with a single library, assign that library's name
+        // as a suffix to the plot title
+        final List<SAMReadGroupRecord> readGroups = header.getReadGroups();
+        if (readGroups.size() == 1) {
+            this.plotSubtitle = readGroups.get(0).getLibrary();
+            if (null == this.plotSubtitle) this.plotSubtitle = "";
+        }
+    }
+
+    @Override
+    protected void acceptRead(final SAMRecord rec, final ReferenceSequence ref) {
+        // Skip unwanted records
+        if (PF_READS_ONLY && rec.getReadFailsVendorQualityCheckFlag()) return;
+        if (ALIGNED_READS_ONLY && rec.getReadUnmappedFlag()) return;
+        if (rec.isSecondaryOrSupplementary()) return;
+
+        final byte[] bases = rec.getReadBases();
+        final byte[] quals = rec.getBaseQualities();
+        final byte[] oq    = rec.getOriginalBaseQualities();
+
+        final int length = quals.length;
+
+        for (int i=0; i<length; ++i) {
+            if (INCLUDE_NO_CALLS || !SequenceUtil.isNoCall(bases[i])) {
+                qCounts[quals[i]]++;
+                if (oq != null) oqCounts[oq[i]]++;
+            }
+        }
+    }
+
+    @Override
+    protected void finish() {
+        // Built the Histograms out of the long[]s
+        final Histogram<Byte> qHisto  = new Histogram<Byte>("QUALITY", "COUNT_OF_Q");
+        final Histogram<Byte> oqHisto = new Histogram<Byte>("QUALITY", "COUNT_OF_OQ");
+
+        for (int i=0; i< qCounts.length; ++i) {
+            if (qCounts[i]  > 0) qHisto.increment( (byte) i, (double) qCounts[i]);
+            if (oqCounts[i] > 0) oqHisto.increment((byte) i, (double) oqCounts[i]);
+        }
+
+        final MetricsFile<?,Byte> metrics = getMetricsFile();
+        metrics.addHistogram(qHisto);
+        if (!oqHisto.isEmpty()) metrics.addHistogram(oqHisto);
+        metrics.write(OUTPUT);
+        if (qHisto.isEmpty() && oqHisto.isEmpty()) {
+            log.warn("No valid bases found in input file. No plot will be produced.");
+        }
+        else {
+            // Now run R to generate a chart
+            final int rResult = RExecutor.executeFromClasspath(
+                    "picard/analysis/qualityScoreDistribution.R",
+                    OUTPUT.getAbsolutePath(),
+                    CHART_OUTPUT.getAbsolutePath(),
+                    INPUT.getName(),
+                    this.plotSubtitle);
+
+            if (rResult != 0) {
+                throw new PicardException("R script qualityScoreDistribution.R failed with return code " + rResult);
+            }
+        }
+    }
+}
diff --git a/src/java/picard/analysis/RnaSeqMetrics.java b/src/java/picard/analysis/RnaSeqMetrics.java
new file mode 100644
index 0000000..0121040
--- /dev/null
+++ b/src/java/picard/analysis/RnaSeqMetrics.java
@@ -0,0 +1,111 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.analysis;
+
+import picard.metrics.MultilevelMetrics;
+
+/**
+ * Metrics about the alignment of RNA-seq reads within a SAM file to genes, produced by the CollectRnaSeqMetrics
+ * program and usually stored in a file with the extension ".rna_metrics".
+ */
+public class RnaSeqMetrics extends MultilevelMetrics {
+    /** The total number of PF bases including non-aligned reads. */
+    public long PF_BASES;
+
+    /**
+     * The total number of aligned PF bases.  Non-primary alignments are not counted. Bases in aligned reads that
+     * do not correspond to reference (e.g. soft clips, insertions) are not counted.
+     */
+    public long PF_ALIGNED_BASES;
+
+    /** Number of bases in primary aligments that align to ribosomal sequence. */
+    public Long RIBOSOMAL_BASES;
+
+    /** Number of bases in primary aligments that align to a non-UTR coding base for some gene, and not ribosomal sequence. */
+    public long CODING_BASES;
+
+    /** Number of bases in primary aligments that align to a UTR base for some gene, and not a coding base. */
+    public long UTR_BASES;
+
+    /** Number of bases in primary aligments that align to an intronic base for some gene, and not a coding or UTR base. */
+    public long INTRONIC_BASES;
+
+    /** Number of bases in primary aligments that do not align to any gene. */
+    public long INTERGENIC_BASES;
+
+    /**
+     * Number of primary alignments that map to a sequence specified on command-line as IGNORED_SEQUENCE.  These are not
+     * counted in PF_ALIGNED_BASES, CORRECT_STRAND_READS, INCORRECT_STRAND_READS, or any of the base-counting metrics.
+     * These reads are counted in PF_BASES.
+     */
+    public long IGNORED_READS;
+
+    /** Number of aligned reads that map to the correct strand.  0 if library is not strand-specific. */
+    public long CORRECT_STRAND_READS;
+
+    /** Number of aligned reads that map to the incorrect strand.  0 if library is not strand-specific. */
+    public long INCORRECT_STRAND_READS;
+
+    /** RIBOSOMAL_BASES / PF_ALIGNED_BASES */
+    public Double PCT_RIBOSOMAL_BASES;
+
+    /** CODING_BASES / PF_ALIGNED_BASES */
+    public double PCT_CODING_BASES;
+
+    /** UTR_BASES / PF_ALIGNED_BASES */
+    public double PCT_UTR_BASES;
+
+    /** INTRONIC_BASES / PF_ALIGNED_BASES */
+    public double PCT_INTRONIC_BASES;
+
+    /** INTERGENIC_BASES / PF_ALIGNED_BASES */
+    public double PCT_INTERGENIC_BASES;
+
+    /** PCT_UTR_BASES + PCT_CODING_BASES */
+    public double PCT_MRNA_BASES;
+
+    /** The percentage of bases mapping to mRNA divided by the total number of PF bases. */
+    public double PCT_USABLE_BASES;
+
+    /** CORRECT_STRAND_READS/(CORRECT_STRAND_READS + INCORRECT_STRAND_READS).  0 if library is not strand-specific. */
+    public double PCT_CORRECT_STRAND_READS;
+
+    /** The median CV of coverage of the 1000 most highly expressed transcripts. Ideal value = 0. */
+    public double MEDIAN_CV_COVERAGE;
+
+    /**
+     * The median 5 prime bias of the 1000 most highly expressed transcripts, where 5 prime bias is calculated per
+     * transcript as: mean coverage of the 5' most 100 bases divided by the mean coverage of the whole transcript.
+     */
+    public double MEDIAN_5PRIME_BIAS;
+
+    /**
+     * The median 3 prime bias of the 1000 most highly expressed transcripts, where 3 prime bias is calculated per
+     * transcript as: mean coverage of the 3' most 100 bases divided by the mean coverage of the whole transcript.
+     */
+    public double MEDIAN_3PRIME_BIAS;
+
+    /** The ratio of coverage at the 5' end of to the 3' end based on the 1000 most highly expressed transcripts. */
+    public double MEDIAN_5PRIME_TO_3PRIME_BIAS;
+}
diff --git a/src/java/picard/analysis/RrbsCpgDetailMetrics.java b/src/java/picard/analysis/RrbsCpgDetailMetrics.java
new file mode 100644
index 0000000..9e4fd85
--- /dev/null
+++ b/src/java/picard/analysis/RrbsCpgDetailMetrics.java
@@ -0,0 +1,44 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2013 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.analysis;
+
+import picard.metrics.MultilevelMetrics;
+
+/**
+ * Holds information about CpG sites encountered for RRBS processing QC
+ * @author jgentry
+ */
+public final class RrbsCpgDetailMetrics extends MultilevelMetrics {
+	/** Sequence the CpG is seen in */
+	public String SEQUENCE_NAME;
+	/** Position within the sequence of the CpG site */
+	public Integer POSITION;
+	/** Number of times this CpG site was encountered */
+	public Integer TOTAL_SITES;
+	/** Number of times this CpG site was converted (TG for + strand, CA for - strand) */
+	public Integer CONVERTED_SITES;
+	/** TOTAL_BASES / CONVERTED_BASES */
+	public Double PCT_CONVERTED;
+}
diff --git a/src/java/picard/analysis/RrbsMetrics.java b/src/java/picard/analysis/RrbsMetrics.java
new file mode 100644
index 0000000..01672c1
--- /dev/null
+++ b/src/java/picard/analysis/RrbsMetrics.java
@@ -0,0 +1,56 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2013 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.analysis;
+
+import htsjdk.samtools.metrics.MetricBase;
+
+import java.util.List;
+
+/**
+ * Holds per-MetricAccumulationLevel metric information for the RRBS metrics. Required as the MultiLevelCollector
+ * is designed around having a single metrics object and we have two being calculated so RrbsMetricsCollector builds
+ * this object which can be teased apart downstream
+ *
+ * NB: This is purely for internal use, if used as a proper metric object it likely won't do what you want it to
+ *
+ * @author jgentry at broadinstitute.org
+ */
+class RrbsMetrics extends MetricBase {
+	private final RrbsSummaryMetrics summaryMetrics;
+	private final List<RrbsCpgDetailMetrics> detailMetrics;
+
+	public RrbsMetrics(final RrbsSummaryMetrics summaryMetrics, final List<RrbsCpgDetailMetrics> detailMetrics) {
+		this.summaryMetrics = summaryMetrics;
+		this.detailMetrics = detailMetrics;
+	}
+
+	public List<RrbsCpgDetailMetrics> getDetailMetrics() {
+		return detailMetrics;
+	}
+
+	public RrbsSummaryMetrics getSummaryMetrics() {
+		return summaryMetrics;
+	}
+}
diff --git a/src/java/picard/analysis/RrbsMetricsCollector.java b/src/java/picard/analysis/RrbsMetricsCollector.java
new file mode 100644
index 0000000..7923dd1
--- /dev/null
+++ b/src/java/picard/analysis/RrbsMetricsCollector.java
@@ -0,0 +1,311 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2013 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.analysis;
+
+
+import htsjdk.samtools.metrics.MetricsFile;
+import htsjdk.samtools.reference.ReferenceSequence;
+import htsjdk.samtools.util.Histogram;
+import htsjdk.samtools.AlignmentBlock;
+import htsjdk.samtools.SAMReadGroupRecord;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.util.SequenceUtil;
+import picard.metrics.PerUnitMetricCollector;
+import picard.metrics.SAMRecordAndReference;
+import picard.metrics.SAMRecordAndReferenceMultiLevelCollector;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Set;
+
+public class RrbsMetricsCollector extends SAMRecordAndReferenceMultiLevelCollector<RrbsMetrics, Comparable<?>> {
+	private final int minReadLength;
+	private final double maxMismatchRate;
+	private final int cQualityThreshold;
+	private final int nextBaseQualityThreshold;
+
+	public RrbsMetricsCollector(final Set<MetricAccumulationLevel> accumulationLevels, final List<SAMReadGroupRecord> samRgRecords,
+								final int cQualityThreshold, final int nextBaseQualityThreshold, final int minReadLength,
+								final double maxMismatchRate) {
+		this.cQualityThreshold = cQualityThreshold;
+		this.nextBaseQualityThreshold = nextBaseQualityThreshold;
+		this.minReadLength = minReadLength;
+		this.maxMismatchRate = maxMismatchRate;
+		setup(accumulationLevels, samRgRecords);
+	}
+
+	@Override
+	protected PerUnitMetricCollector<RrbsMetrics, Comparable<?>, SAMRecordAndReference> makeChildCollector(final String sample, final String library, final String readGroup) {
+		return new PerUnitRrbsMetricsCollector(sample, library, readGroup);
+	}
+
+	private class PerUnitRrbsMetricsCollector implements PerUnitMetricCollector<RrbsMetrics, Comparable<?>, SAMRecordAndReference> {
+		final String sample;
+		final String library;
+		final String readGroup;
+
+		// Counters for CpG & non-CpG seen/converted sites
+		int nCytoConverted = 0;
+		int nCytoTotal = 0;
+		final Histogram<CpgLocation> cpgTotal = new Histogram<CpgLocation>();
+		final Histogram<CpgLocation> cpgConverted = new Histogram<CpgLocation>();
+
+		// Counters for QC filters used in the final metrics
+		int mappedRecordCount = 0;
+		int smallReadCount = 0;
+		int mismatchCount = 0;
+		int noCpgCount = 0;
+
+		// Final metrics calculated once all the reads are done
+		double cytoConversionRate;
+		double cpgConversionRate;
+		int nCpgSeen;
+		int nCpgConverted;
+		double coverageMean;
+		int coverageMedian;
+
+		public PerUnitRrbsMetricsCollector(final String sample, final String library, final String readGroup) {
+			this.sample = sample;
+			this.library = library;
+			this.readGroup = readGroup;
+		}
+
+		public void acceptRecord(final SAMRecordAndReference args) {
+			mappedRecordCount++;
+
+			final SAMRecord samRecord = args.getSamRecord();
+			final ReferenceSequence referenceSequence = args.getReferenceSequence();
+
+			final byte[] readBases = samRecord.getReadBases();
+			final byte[] readQualities = samRecord.getBaseQualities();
+			final byte[] refBases = referenceSequence.getBases();
+
+			if (samRecord.getReadLength() < minReadLength) {
+				smallReadCount++;
+				return;
+			} else if (SequenceUtil.countMismatches(samRecord, refBases, true) > Math.round(samRecord.getReadLength() * maxMismatchRate)) {
+				mismatchCount++;
+				return;
+			}
+
+			// We only record non-CpG C sites if there was at least one CpG in the read, keep track of
+			// the values for this record and then apply to the global totals if valid
+			int recordCpgs = 0;
+
+			for (final AlignmentBlock alignmentBlock : samRecord.getAlignmentBlocks()) {
+				final int blockLength = alignmentBlock.getLength();
+				final int refFragmentStart = alignmentBlock.getReferenceStart() - 1;
+				final int readFragmentStart = alignmentBlock.getReadStart() - 1;
+
+				final byte[] refFragment = getFragment(refBases, refFragmentStart, blockLength);
+				final byte[] readFragment = getFragment(readBases, readFragmentStart, blockLength);
+				final byte[] readQualityFragment = getFragment(readQualities, readFragmentStart, blockLength);
+
+				if (samRecord.getReadNegativeStrandFlag()) {
+					// In the case of a negative strand, reverse (and complement for base arrays) the reference,
+					// reads & qualities so that it can be treated as a positive strand for the rest of the process
+					SequenceUtil.reverseComplement(refFragment);
+					SequenceUtil.reverseComplement(readFragment);
+					SequenceUtil.reverseQualities(readQualityFragment);
+				}
+
+				for (int i=0; i < blockLength-1; i++) {
+					final int curRefIndex = getCurRefIndex(refFragmentStart, blockLength, i, samRecord.getReadNegativeStrandFlag());
+
+					// Look at a 2-base window to see if we're on a CpG site, and if so check for conversion
+					// (CG -> TG). We do not consider ourselves to be on a CpG site if we're on the last base of a read
+					if ((SequenceUtil.basesEqual(refFragment[i], SequenceUtil.C)) &&
+							(SequenceUtil.basesEqual(refFragment[i+1], SequenceUtil.G))) {
+						// We want to catch the case where there's a CpG in the reference, even if it is not valid
+						// to prevent the C showing up as a non-CpG C down below. Otherwise this could have been all
+						// in one if statement
+						if (isValidCpg(refFragment, readFragment, readQualityFragment, i)) {
+							recordCpgs++;
+							final CpgLocation curLocation = new CpgLocation(samRecord.getReferenceName(), curRefIndex);
+							cpgTotal.increment(curLocation);
+							if (SequenceUtil.isBisulfiteConverted(readFragment[i], refFragment[i])) {
+								cpgConverted.increment(curLocation);
+							}
+						}
+						i++;
+					} else if (isC(refFragment[i], readFragment[i]) && isAboveCytoQcThreshold(readQualities, i) &&
+							SequenceUtil.bisulfiteBasesEqual(false, readFragment[i+1], refFragment[i+1])) {
+						// C base in the reference that's not associated with a CpG
+						nCytoTotal++;
+						if (SequenceUtil.isBisulfiteConverted(readFragment[i], refFragment[i])) {
+							nCytoConverted++;
+						}
+					}
+				}
+			}
+
+			if (recordCpgs == 0) {
+				noCpgCount++;
+			}
+		}
+
+		public void finish() {
+			cytoConversionRate = nCytoTotal == 0 ? 0 : nCytoConverted / (double)nCytoTotal;
+			nCpgSeen = (int)cpgTotal.getSumOfValues();
+			nCpgConverted = (int)cpgConverted.getSumOfValues();
+			cpgConversionRate = nCpgSeen == 0 ? 0 : nCpgConverted / (double)nCpgSeen;
+			coverageMean = cpgTotal.getMeanBinSize();
+			coverageMedian = (int)cpgTotal.getMedianBinSize();
+		}
+
+		@Override
+		public void addMetricsToFile(final MetricsFile<RrbsMetrics, Comparable<?>> metricsFile) {
+			// Create both the summary and detail metrics & add them to the RrbsMetrics container class for
+			// the downstream code to use as desired
+			final RrbsSummaryMetrics summaryMetrics = buildSummaryMetrics();
+			final List<RrbsCpgDetailMetrics> detailMetrics = buildDetailMetrics();
+			final RrbsMetrics rrbsMetrics = new RrbsMetrics(summaryMetrics, detailMetrics);
+			metricsFile.addMetric(rrbsMetrics);
+		}
+
+		private RrbsSummaryMetrics buildSummaryMetrics() {
+			final RrbsSummaryMetrics summaryMetrics = new RrbsSummaryMetrics();
+			summaryMetrics.SAMPLE = sample;
+			summaryMetrics.READ_GROUP = readGroup;
+			summaryMetrics.LIBRARY = library;
+			summaryMetrics.READS_ALIGNED = mappedRecordCount;
+			summaryMetrics.NON_CPG_BASES = nCytoTotal;
+			summaryMetrics.NON_CPG_CONVERTED_BASES = nCytoConverted;
+			summaryMetrics.PCT_NON_CPG_BASES_CONVERTED = cytoConversionRate;
+			summaryMetrics.CPG_BASES_SEEN = nCpgSeen;
+			summaryMetrics.CPG_BASES_CONVERTED = nCpgConverted;
+			summaryMetrics.PCT_CPG_BASES_CONVERTED = cpgConversionRate;
+			summaryMetrics.MEAN_CPG_COVERAGE = coverageMean;
+			summaryMetrics.MEDIAN_CPG_COVERAGE = coverageMedian;
+			summaryMetrics.READS_IGNORED_SHORT = smallReadCount;
+			summaryMetrics.READS_WITH_NO_CPG = noCpgCount;
+			summaryMetrics.READS_IGNORED_MISMATCHES = mismatchCount;
+			return summaryMetrics;
+		}
+
+		private List<RrbsCpgDetailMetrics> buildDetailMetrics() {
+			final List<RrbsCpgDetailMetrics> detailMetrics = new ArrayList<RrbsCpgDetailMetrics>();
+			for (final CpgLocation key : cpgTotal.keySet()) {
+				final RrbsCpgDetailMetrics cpgMetric = new RrbsCpgDetailMetrics();
+				cpgMetric.SAMPLE = sample;
+				cpgMetric.READ_GROUP = readGroup;
+				cpgMetric.LIBRARY = library;
+				cpgMetric.SEQUENCE_NAME = key.getSequence();
+				cpgMetric.POSITION = key.getPosition();
+				cpgMetric.TOTAL_SITES = (int)cpgTotal.get(key).getValue();
+				cpgMetric.CONVERTED_SITES = cpgConverted.containsKey(key) ? (int)cpgConverted.get(key).getValue() : 0;
+				cpgMetric.PCT_CONVERTED = cpgMetric.CONVERTED_SITES == 0 ? 0 : cpgMetric.CONVERTED_SITES / (double)cpgMetric.TOTAL_SITES;
+				detailMetrics.add(cpgMetric);
+			}
+			return detailMetrics;
+		}
+	}
+
+	private byte[] getFragment(final byte[] fullArray, final int fragmentStart, final int length) {
+		return Arrays.copyOfRange(fullArray, fragmentStart, fragmentStart + length);
+	}
+
+	/**
+	 * True if there's a C in the reference as well as read (possibly bisulfite converted)
+	 */
+	private boolean isC(final byte refBase, final byte readBase) {
+		return (SequenceUtil.basesEqual(refBase, SequenceUtil.C) && SequenceUtil.bisulfiteBasesEqual(readBase, refBase));
+	}
+
+	/**
+	 * Checks a pair of bases for CpG status & quality thresholds
+	 */
+	private boolean isValidCpg(final byte[] refBases, final byte[] readBases, final byte[] readQualities, final int index) {
+		return isC(refBases[index], readBases[index]) && SequenceUtil.basesEqual(refBases[index+1], readBases[index+1]) &&
+				isAboveCytoQcThreshold(readQualities, index);
+	}
+
+	/**
+	 * Any cyto base (CpG context or not) needs to be above a specified quality threshold. Similarly, the neighboring
+	 * base on the 3' side must also be above another threshold unless the cyto base is the final base in the 3'
+	 * direction.
+	 */
+	private boolean isAboveCytoQcThreshold(final byte[] readQualities, final int index) {
+		return ((index < readQualities.length - 1) && (readQualities[index] >= cQualityThreshold) &&
+				(readQualities[index+1] >= nextBaseQualityThreshold));
+	}
+
+	/**
+	 * Accounts for the fact that negative strand counts have been reversed
+	 */
+	private int getCurRefIndex(final int refStart, final int blockLength, final int idx, final boolean isNegative) {
+		return isNegative ? refStart + (blockLength - 1) - idx - 1 : refStart + idx;
+	}
+}
+
+/**
+ * Used to keep track of the location of CpG sites
+ */
+class CpgLocation implements Comparable<CpgLocation> {
+	private final String sequence;
+	private final Integer position;
+
+	public CpgLocation(final String sequence, final int position) {
+		this.sequence = sequence;
+		this.position = position;
+	}
+
+	@Override
+	public int compareTo(final CpgLocation other) {
+		final int seqComp = sequence.compareTo(other.sequence);
+		return seqComp == 0 ? position.compareTo(other.position) : seqComp;
+	}
+
+	@Override
+	public boolean equals(final Object other) {
+		if (this == other) {
+			return true;
+		}
+
+		if (other == null || getClass() != other.getClass()) {
+			return false;
+		}
+
+		final CpgLocation that = (CpgLocation)other;
+
+		return (sequence.equals(that.sequence)) && (position.equals(that.position));
+	}
+
+	@Override
+	public int hashCode() {
+		int result = sequence.hashCode();
+		result = 31 * result + position;
+		return result;
+	}
+
+	public String getSequence() {
+		return sequence;
+	}
+
+	public Integer getPosition() {
+		return position;
+	}
+}
diff --git a/src/java/picard/analysis/RrbsSummaryMetrics.java b/src/java/picard/analysis/RrbsSummaryMetrics.java
new file mode 100644
index 0000000..2454eb0
--- /dev/null
+++ b/src/java/picard/analysis/RrbsSummaryMetrics.java
@@ -0,0 +1,59 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2013 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.analysis;
+
+import picard.metrics.MultilevelMetrics;
+
+/**
+ * Holds summary statistics from RRBS processing QC
+ *
+ * @author jgentry
+ */
+public final class RrbsSummaryMetrics extends MultilevelMetrics {
+	/** Number of mapped reads processed */
+	public Integer READS_ALIGNED;
+	/** Number of times a non-CpG cytosine was encountered */
+	public Integer NON_CPG_BASES;
+	/** Number of times a non-CpG cytosine was converted (C->T for +, G->A for -) */
+	public Integer NON_CPG_CONVERTED_BASES;
+	/** NON_CPG_BASES / NON_CPG_CONVERTED_BASES */
+	public Double PCT_NON_CPG_BASES_CONVERTED;
+	/** Number of CpG sites encountered */
+	public Integer CPG_BASES_SEEN;
+	/** Number of CpG sites that were converted (TG for +, CA for -) */
+	public Integer CPG_BASES_CONVERTED;
+	/** CPG_BASES_SEEN / CPG_BASES_CONVERTED */
+	public Double PCT_CPG_BASES_CONVERTED;
+	/** Mean coverage of CpG sites */
+	public Double MEAN_CPG_COVERAGE;
+	/** Median coverage of CpG sites */
+	public Integer MEDIAN_CPG_COVERAGE;
+	/** Number of reads discarded for having no CpG sites */
+	public Integer READS_WITH_NO_CPG;
+	/** Number of reads discarded due to being too short */
+	public Integer READS_IGNORED_SHORT;
+	/** Number of reads discarded for exceeding the mismatch threshold */
+	public Integer READS_IGNORED_MISMATCHES;
+}
diff --git a/src/java/picard/analysis/SinglePassSamProgram.java b/src/java/picard/analysis/SinglePassSamProgram.java
new file mode 100644
index 0000000..ac14bf5
--- /dev/null
+++ b/src/java/picard/analysis/SinglePassSamProgram.java
@@ -0,0 +1,153 @@
+package picard.analysis;
+
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMFileHeader.SortOrder;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.reference.ReferenceSequence;
+import htsjdk.samtools.reference.ReferenceSequenceFileWalker;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.ProgressLogger;
+import htsjdk.samtools.util.SequenceUtil;
+import picard.PicardException;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+
+import java.io.File;
+import java.util.Arrays;
+import java.util.Collection;
+
+/**
+ * Super class that is designed to provide some consistent structure between subclasses that
+ * simply iterate once over a coordinate sorted BAM and collect information from the records
+ * as the go in order to produce some kind of output.
+ *
+ * @author Tim Fennell
+ */
+public abstract class SinglePassSamProgram extends CommandLineProgram {
+    @Option(shortName = StandardOptionDefinitions.INPUT_SHORT_NAME, doc = "Input SAM or BAM file.")
+    public File INPUT;
+
+    @Option(shortName = "O", doc = "File to write the output to.")
+    public File OUTPUT;
+
+    @Option(doc = "If true (default), then the sort order in the header file will be ignored.",
+            shortName = StandardOptionDefinitions.ASSUME_SORTED_SHORT_NAME)
+    public boolean ASSUME_SORTED = true;
+
+    @Option(doc = "Stop after processing N reads, mainly for debugging.")
+    public long STOP_AFTER = 0;
+
+    private static final Log log = Log.getInstance(SinglePassSamProgram.class);
+
+    /**
+     * Final implementation of doWork() that checks and loads the input and optionally reference
+     * sequence files and the runs the sublcass through the setup() acceptRead() and finish() steps.
+     */
+    @Override
+    protected final int doWork() {
+        makeItSo(INPUT, REFERENCE_SEQUENCE, ASSUME_SORTED, STOP_AFTER, Arrays.asList(this));
+        return 0;
+    }
+
+    public static void makeItSo(final File input,
+                                final File referenceSequence,
+                                final boolean assumeSorted,
+                                final long stopAfter,
+                                final Collection<SinglePassSamProgram> programs) {
+
+        // Setup the standard inputs
+        IOUtil.assertFileIsReadable(input);
+        final SamReader in = SamReaderFactory.makeDefault().referenceSequence(referenceSequence).open(input);
+
+        // Optionally load up the reference sequence and double check sequence dictionaries
+        final ReferenceSequenceFileWalker walker;
+        if (referenceSequence == null) {
+            walker = null;
+        } else {
+            IOUtil.assertFileIsReadable(referenceSequence);
+            walker = new ReferenceSequenceFileWalker(referenceSequence);
+
+            if (!in.getFileHeader().getSequenceDictionary().isEmpty()) {
+                SequenceUtil.assertSequenceDictionariesEqual(in.getFileHeader().getSequenceDictionary(),
+                        walker.getSequenceDictionary());
+            }
+        }
+
+        // Check on the sort order of the BAM file
+        {
+            final SortOrder sort = in.getFileHeader().getSortOrder();
+            if (sort != SortOrder.coordinate) {
+                if (assumeSorted) {
+                    log.warn("File reports sort order '" + sort + "', assuming it's coordinate sorted anyway.");
+                } else {
+                    throw new PicardException("File " + input.getAbsolutePath() + " should be coordinate sorted but " +
+                            "the header says the sort order is " + sort + ". If you believe the file " +
+                            "to be coordinate sorted you may pass ASSUME_SORTED=true");
+                }
+            }
+        }
+
+        // Call the abstract setup method!
+        boolean anyUseNoRefReads = false;
+        for (final SinglePassSamProgram program : programs) {
+            program.setup(in.getFileHeader(), input);
+            anyUseNoRefReads = anyUseNoRefReads || program.usesNoRefReads();
+        }
+
+
+        final ProgressLogger progress = new ProgressLogger(log);
+
+        for (final SAMRecord rec : in) {
+            final ReferenceSequence ref;
+            if (walker == null || rec.getReferenceIndex() == SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX) {
+                ref = null;
+            } else {
+                ref = walker.get(rec.getReferenceIndex());
+            }
+
+            for (final SinglePassSamProgram program : programs) {
+                program.acceptRead(rec, ref);
+            }
+
+            progress.record(rec);
+
+            // See if we need to terminate early?
+            if (stopAfter > 0 && progress.getCount() >= stopAfter) {
+                break;
+            }
+
+            // And see if we're into the unmapped reads at the end
+            if (!anyUseNoRefReads && rec.getReferenceIndex() == SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX) {
+                break;
+            }
+        }
+
+        CloserUtil.close(in);
+
+        for (final SinglePassSamProgram program : programs) {
+            program.finish();
+        }
+    }
+
+    /** Can be overriden and set to false if the section of unmapped reads at the end of the file isn't needed. */
+    protected boolean usesNoRefReads() { return true; }
+
+    /** Should be implemented by subclasses to do one-time initialization work. */
+    protected abstract void setup(final SAMFileHeader header, final File samFile);
+
+    /**
+     * Should be implemented by subclasses to accept SAMRecords one at a time.
+     * If the read has a reference sequence and a reference sequence file was supplied to the program
+     * it will be passed as 'ref'. Otherwise 'ref' may be null.
+     */
+    protected abstract void acceptRead(final SAMRecord rec, final ReferenceSequence ref);
+
+    /** Should be implemented by subclasses to do one-time finalization work. */
+    protected abstract void finish();
+
+}
diff --git a/src/java/picard/analysis/artifacts/ArtifactCounter.java b/src/java/picard/analysis/artifacts/ArtifactCounter.java
new file mode 100644
index 0000000..953b6f1
--- /dev/null
+++ b/src/java/picard/analysis/artifacts/ArtifactCounter.java
@@ -0,0 +1,216 @@
+package picard.analysis.artifacts;
+
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.util.ListMap;
+import htsjdk.samtools.util.SequenceUtil;
+import htsjdk.samtools.util.StringUtil;
+import picard.PicardException;
+import picard.analysis.artifacts.SequencingArtifactMetrics.*;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * Keeps track of artifact counts, and extracts metrics once accumulation is finished.
+ */
+class ArtifactCounter {
+    private final String sampleAlias;
+    private final String library;
+
+    private final Set<String> fullContexts;
+    private final Map<String, String> leadingContextMap;
+    private final Map<String, String> trailingContextMap;
+    private final Map<String, String> zeroContextMap;
+
+    private final ContextAccumulator fullContextAccumulator;
+    private final ContextAccumulator halfContextAccumulator;
+    private final ContextAccumulator zeroContextAccumulator;
+
+    private final List<PreAdapterSummaryMetrics> preAdapterSummaryMetricsList;
+    private final List<PreAdapterDetailMetrics> preAdapterDetailMetricsList;
+    private final List<BaitBiasSummaryMetrics> baitBiasSummaryMetricsList;
+    private final List<BaitBiasDetailMetrics> baitBiasDetailMetricsList;
+
+    public ArtifactCounter(final String sampleAlias, final String library, final int contextSize, final boolean expectedTandemReads) {
+        this.sampleAlias = sampleAlias;
+        this.library = library;
+
+        // define the contexts
+        this.fullContexts = new HashSet<String>();
+        for (final byte[] kmer : SequenceUtil.generateAllKmers(2 * contextSize + 1)) {
+            this.fullContexts.add(StringUtil.bytesToString(kmer));
+        }
+
+        // the half contexts specify either leading or trailing bases. the zero context is just the center.
+        // NB: we use N to represent a wildcard base, rather than an ambiguous base. It's assumed that all of the input
+        // contexts are unambiguous, and that any actual N's in the data have been dealt with elsewhere.
+        final String padding = StringUtil.repeatCharNTimes('N', contextSize);
+        this.leadingContextMap = new HashMap<String, String>();
+        this.trailingContextMap = new HashMap<String, String>();
+        this.zeroContextMap = new HashMap<String, String>();
+        for (final String context : this.fullContexts) {
+            final String leading = context.substring(0, contextSize);
+            final String trailing = context.substring(contextSize + 1, context.length());
+            final char center = context.charAt(contextSize);
+            this.leadingContextMap.put(context, leading + center + padding);
+            this.trailingContextMap.put(context, padding + center + trailing);
+            this.zeroContextMap.put(context, padding + center + padding);
+        }
+
+        // set up the accumulators
+        final Set<String> halfContexts = new HashSet<String>();
+        halfContexts.addAll(leadingContextMap.values());
+        halfContexts.addAll(trailingContextMap.values());
+        final Set<String> zeroContexts = new HashSet<String>();
+        zeroContexts.addAll(zeroContextMap.values());
+
+        this.fullContextAccumulator = new ContextAccumulator(fullContexts, expectedTandemReads);
+        this.halfContextAccumulator = new ContextAccumulator(halfContexts, expectedTandemReads);
+        this.zeroContextAccumulator = new ContextAccumulator(zeroContexts, expectedTandemReads);
+
+        // these will get populated in the final step
+        preAdapterSummaryMetricsList = new ArrayList<PreAdapterSummaryMetrics>();
+        preAdapterDetailMetricsList = new ArrayList<PreAdapterDetailMetrics>();
+        baitBiasSummaryMetricsList = new ArrayList<BaitBiasSummaryMetrics>();
+        baitBiasDetailMetricsList = new ArrayList<BaitBiasDetailMetrics>();
+    }
+
+    /**
+     * Add a record to all the accumulators.
+     */
+    public void countRecord(final String refContext, final char calledBase, final SAMRecord rec) {
+        if (this.fullContexts.contains(refContext)) {
+            this.fullContextAccumulator.countRecord(refContext, calledBase, rec);
+            this.halfContextAccumulator.countRecord(this.leadingContextMap.get(refContext), calledBase, rec);
+            this.halfContextAccumulator.countRecord(this.trailingContextMap.get(refContext), calledBase, rec);
+            this.zeroContextAccumulator.countRecord(this.zeroContextMap.get(refContext), calledBase, rec);
+        }
+    }
+
+    /**
+     * Stop counting, tally things up, and extract metrics.
+     */
+    public void finish() {
+        final ListMap<Transition, DetailPair> allDetailMetrics = getDetailMetrics();
+        final Map<Transition, SummaryPair> allSummaryMetrics = getSummaryMetrics();
+
+        for (final Transition transition : Transition.altValues()) {
+            final SummaryPair summary = allSummaryMetrics.get(transition);
+            final List<DetailPair> details = allDetailMetrics.get(transition);
+            preAdapterSummaryMetricsList.add(summary.preAdapterMetrics);
+            baitBiasSummaryMetricsList.add(summary.baitBiasMetrics);
+            for (final DetailPair detail : details) {
+                preAdapterDetailMetricsList.add(detail.preAdapterMetrics);
+                baitBiasDetailMetricsList.add(detail.baitBiasMetrics);
+            }
+        }
+    }
+
+    public List<PreAdapterSummaryMetrics> getPreAdapterSummaryMetrics() { return preAdapterSummaryMetricsList; }
+    public List<PreAdapterDetailMetrics> getPreAdapterDetailMetrics() { return preAdapterDetailMetricsList; }
+    public List<BaitBiasSummaryMetrics> getBaitBiasSummaryMetrics() { return baitBiasSummaryMetricsList; }
+    public List<BaitBiasDetailMetrics> getBaitBiasDetailMetrics() { return baitBiasDetailMetricsList; }
+
+    /**
+     * Core method to compute summary metrics. For each transition, we report:
+     * 1. the total Q-score across all contexts
+     * 2. the worst full context and its Q-score
+     * 3. the worst leading context and its Q-score
+     * 4. the worst trailing context and its Q-score
+     *
+     */
+    private Map<Transition, SummaryPair> getSummaryMetrics() {
+        final Map<Transition, SummaryPair> summaryMetricsMap = new HashMap<Transition, SummaryPair>();
+
+        // extract the detail metrics from each accumulator
+        final ListMap<Transition, DetailPair> fullMetrics = this.fullContextAccumulator.calculateMetrics(sampleAlias, library);
+        final ListMap<Transition, DetailPair> halfMetrics = this.halfContextAccumulator.calculateMetrics(sampleAlias, library);
+        final ListMap<Transition, DetailPair> zeroMetrics = this.zeroContextAccumulator.calculateMetrics(sampleAlias, library);
+
+        // compute the summary metrics - one row for each transition
+        for (final Transition transition : Transition.altValues()) {
+            final List<DetailPair> fullMetricsForTransition = fullMetrics.get(transition);
+            final List<DetailPair> zeroMetricsForTransition = zeroMetrics.get(transition);
+            if (zeroMetricsForTransition.size() != 1) {
+                throw new PicardException("Should have exactly one context-free metric pair for transition: " + transition);
+            }
+
+            // we want to report on leading / trailing contexts separately
+            final List<DetailPair> leadingMetricsForTransition = new ArrayList<DetailPair>();
+            final List<DetailPair> trailingMetricsForTransition = new ArrayList<DetailPair>();
+            for (final DetailPair metrics : halfMetrics.get(transition)) {
+                // first make sure they're the same context
+                if (!metrics.preAdapterMetrics.CONTEXT.equals(metrics.baitBiasMetrics.CONTEXT)) {
+                    throw new PicardException("Input detail metrics are not matched up properly - contexts differ.");
+                }
+                final boolean isLeading = this.leadingContextMap.containsValue(metrics.preAdapterMetrics.CONTEXT);
+                final boolean isTrailing = this.trailingContextMap.containsValue(metrics.preAdapterMetrics.CONTEXT);
+                // if the original contextSize is 0, there's no difference between leading and trailing, so add it to both
+                if (isLeading) leadingMetricsForTransition.add(metrics);
+                if (isTrailing) trailingMetricsForTransition.add(metrics);
+            }
+
+            // get the worst cases
+            final DetailPair totalMetric = zeroMetricsForTransition.get(0);
+            final DetailPair worstFullMetric = getWorstMetrics(fullMetricsForTransition);
+            final DetailPair worstLeadingMetric = getWorstMetrics(leadingMetricsForTransition);
+            final DetailPair worstTrailingMetric = getWorstMetrics(trailingMetricsForTransition);
+
+            // construct the actual summary metrics - a combination of all the data we've just extracted
+            final PreAdapterSummaryMetrics preAdapterSummaryMetrics = new PreAdapterSummaryMetrics();
+            final BaitBiasSummaryMetrics baitBiasSummaryMetrics = new BaitBiasSummaryMetrics();
+
+            preAdapterSummaryMetrics.SAMPLE_ALIAS = this.sampleAlias;
+            preAdapterSummaryMetrics.LIBRARY = this.library;
+            preAdapterSummaryMetrics.REF_BASE = transition.ref();
+            preAdapterSummaryMetrics.ALT_BASE = transition.call();
+            preAdapterSummaryMetrics.TOTAL_QSCORE = totalMetric.preAdapterMetrics.QSCORE;
+            preAdapterSummaryMetrics.WORST_CXT = worstFullMetric.preAdapterMetrics.CONTEXT;
+            preAdapterSummaryMetrics.WORST_CXT_QSCORE = worstFullMetric.preAdapterMetrics.QSCORE;
+            preAdapterSummaryMetrics.WORST_PRE_CXT = worstLeadingMetric.preAdapterMetrics.CONTEXT;
+            preAdapterSummaryMetrics.WORST_PRE_CXT_QSCORE = worstLeadingMetric.preAdapterMetrics.QSCORE;
+            preAdapterSummaryMetrics.WORST_POST_CXT = worstTrailingMetric.preAdapterMetrics.CONTEXT;
+            preAdapterSummaryMetrics.WORST_POST_CXT_QSCORE = worstTrailingMetric.preAdapterMetrics.QSCORE;
+            preAdapterSummaryMetrics.inferArtifactName();
+
+            baitBiasSummaryMetrics.SAMPLE_ALIAS = this.sampleAlias;
+            baitBiasSummaryMetrics.LIBRARY = this.library;
+            baitBiasSummaryMetrics.REF_BASE = transition.ref();
+            baitBiasSummaryMetrics.ALT_BASE = transition.call();
+            baitBiasSummaryMetrics.TOTAL_QSCORE = totalMetric.baitBiasMetrics.QSCORE;
+            baitBiasSummaryMetrics.WORST_CXT = worstFullMetric.baitBiasMetrics.CONTEXT;
+            baitBiasSummaryMetrics.WORST_CXT_QSCORE = worstFullMetric.baitBiasMetrics.QSCORE;
+            baitBiasSummaryMetrics.WORST_PRE_CXT = worstLeadingMetric.baitBiasMetrics.CONTEXT;
+            baitBiasSummaryMetrics.WORST_PRE_CXT_QSCORE = worstLeadingMetric.baitBiasMetrics.QSCORE;
+            baitBiasSummaryMetrics.WORST_POST_CXT = worstTrailingMetric.baitBiasMetrics.CONTEXT;
+            baitBiasSummaryMetrics.WORST_POST_CXT_QSCORE = worstTrailingMetric.baitBiasMetrics.QSCORE;
+            baitBiasSummaryMetrics.inferArtifactName();
+
+            // add the finalized metrics to the map
+            summaryMetricsMap.put(transition, new SummaryPair(preAdapterSummaryMetrics, baitBiasSummaryMetrics));
+        }
+        return summaryMetricsMap;
+    }
+
+    private ListMap<Transition, DetailPair> getDetailMetrics() {
+        return this.fullContextAccumulator.calculateMetrics(this.sampleAlias, this.library);
+    }
+
+    /**
+     * Given a list of detail metrics, get the worst pre-adapter metrics, and independently from that get the worst bait bias metrics
+     * (in terms of Q-score).
+     */
+    private DetailPair getWorstMetrics(final List<DetailPair> metrics) {
+        PreAdapterDetailMetrics worstPreAdapterMetrics = null;
+        BaitBiasDetailMetrics worstBaitBiasMetrics = null;
+        for (final DetailPair m : metrics) {
+            if (worstPreAdapterMetrics == null || m.preAdapterMetrics.QSCORE < worstPreAdapterMetrics.QSCORE) worstPreAdapterMetrics = m.preAdapterMetrics;
+            if (worstBaitBiasMetrics == null || m.baitBiasMetrics.QSCORE < worstBaitBiasMetrics.QSCORE) worstBaitBiasMetrics = m.baitBiasMetrics;
+        }
+        return new DetailPair(worstPreAdapterMetrics, worstBaitBiasMetrics);
+    }
+}
diff --git a/src/java/picard/analysis/artifacts/CollectSequencingArtifactMetrics.java b/src/java/picard/analysis/artifacts/CollectSequencingArtifactMetrics.java
new file mode 100644
index 0000000..e9c9771
--- /dev/null
+++ b/src/java/picard/analysis/artifacts/CollectSequencingArtifactMetrics.java
@@ -0,0 +1,290 @@
+package picard.analysis.artifacts;
+
+import htsjdk.samtools.AlignmentBlock;
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMReadGroupRecord;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.filter.AggregateFilter;
+import htsjdk.samtools.filter.AlignedFilter;
+import htsjdk.samtools.filter.DuplicateReadFilter;
+import htsjdk.samtools.filter.FailsVendorReadQualityFilter;
+import htsjdk.samtools.filter.InsertSizeFilter;
+import htsjdk.samtools.filter.MappingQualityFilter;
+import htsjdk.samtools.filter.NotPrimaryAlignmentFilter;
+import htsjdk.samtools.filter.SamRecordFilter;
+import htsjdk.samtools.metrics.MetricsFile;
+import htsjdk.samtools.reference.ReferenceSequence;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.IntervalList;
+import htsjdk.samtools.util.IntervalListReferenceSequenceMask;
+import htsjdk.samtools.util.StringUtil;
+import picard.PicardException;
+import picard.analysis.SinglePassSamProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.programgroups.Metrics;
+import picard.util.DbSnpBitSetUtil;
+import picard.analysis.artifacts.SequencingArtifactMetrics.*;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import static htsjdk.samtools.util.CodeUtil.getOrElse;
+
+/**
+ * Quantify substitution errors caused by mismatched base pairings during various
+ * stages of sample / library prep.
+ *
+ * We measure two distinct error types - artifacts that are introduced before
+ * the addition of the read1/read2 adapters ("pre adapter") and those that are
+ * introduced after target selection ("bait bias"). For each of these, we provide
+ * summary metrics as well as detail metrics broken down by reference context
+ * (the ref bases surrounding the substitution event).
+ *
+ * For a deeper explanation, see Costello et al. 2013:
+ * http://www.ncbi.nlm.nih.gov/pubmed/23303777
+ *
+ * @author mattsooknah
+ *
+ */
+ at CommandLineProgramProperties(
+        usage = CollectSequencingArtifactMetrics.USAGE,
+        usageShort = CollectSequencingArtifactMetrics.USAGE,
+        programGroup = Metrics.class
+)
+public class CollectSequencingArtifactMetrics extends SinglePassSamProgram {
+    static final String USAGE = "Collect metrics to quantify single-base sequencing artifacts.";
+
+    @Option(doc = "An optional list of intervals to restrict analysis to.", optional = true)
+    public File INTERVALS;
+
+    @Option(doc = "VCF format dbSNP file, used to exclude regions around known polymorphisms from analysis.", optional = true)
+    public File DB_SNP;
+
+    @Option(shortName = "Q", doc = "The minimum base quality score for a base to be included in analysis.")
+    public int MINIMUM_QUALITY_SCORE = 20;
+
+    @Option(shortName = "MQ", doc = "The minimum mapping quality score for a base to be included in analysis.")
+    public int MINIMUM_MAPPING_QUALITY = 30;
+
+    @Option(shortName = "MIN_INS", doc = "The minimum insert size for a read to be included in analysis.")
+    public int MINIMUM_INSERT_SIZE = 60;
+
+    @Option(shortName = "MAX_INS", doc = "The maximum insert size for a read to be included in analysis. Set to 0 to have no maximum.")
+    public int MAXIMUM_INSERT_SIZE = 600;
+
+    @Option(shortName = "UNPAIRED", doc = "Include unpaired reads. If set to true then all paired reads will be included as well - " +
+            "MINIMUM_INSERT_SIZE and MAXIMUM_INSERT_SIZE will be ignored.")
+    public boolean INCLUDE_UNPAIRED = false;
+
+    @Option(shortName = "TANDEM", doc = "Set to true if mate pairs are being sequenced from the same strand, " +
+            "i.e. they're expected to face the same direction.")
+    public boolean TANDEM_READS = false;
+
+    @Option(doc = "When available, use original quality scores for filtering.")
+    public boolean USE_OQ = true;
+
+    @Option(doc = "The number of context bases to include on each side of the assayed base.")
+    public int CONTEXT_SIZE = 1;
+
+    @Option(doc = "If specified, only print results for these contexts in the detail metrics output. " +
+                  "However, the summary metrics output will still take all contexts into consideration.")
+    public Set<String> CONTEXTS_TO_PRINT = new HashSet<String>();
+
+    private static final String UNKNOWN_LIBRARY = "UnknownLibrary";
+    private static final String UNKNOWN_SAMPLE = "UnknownSample";
+
+    private File preAdapterSummaryOut;
+    private File preAdapterDetailsOut;
+    private File baitBiasSummaryOut;
+    private File baitBiasDetailsOut;
+
+    private IntervalListReferenceSequenceMask intervalMask;
+    private DbSnpBitSetUtil dbSnpMask;
+    private SamRecordFilter recordFilter;
+
+    private final Set<String> samples = new HashSet<String>();
+    private final Set<String> libraries = new HashSet<String>();
+    private final Map<String, ArtifactCounter> artifactCounters = new HashMap<String, ArtifactCounter>();
+
+    public static void main(final String[] args) {
+        new CollectSequencingArtifactMetrics().instanceMainWithExit(args);
+    }
+
+    @Override
+    protected String[] customCommandLineValidation() {
+        final List<String> messages = new ArrayList<String>();
+
+        final int contextFullLength = 2 * CONTEXT_SIZE + 1;
+        if (CONTEXT_SIZE < 0) messages.add("CONTEXT_SIZE cannot be negative");
+        for (final String context : CONTEXTS_TO_PRINT) {
+            if (context.length() != contextFullLength) {
+                messages.add("Context " + context + " is not the length implied by CONTEXT_SIZE: " + contextFullLength);
+            }
+        }
+
+        if (MINIMUM_INSERT_SIZE < 0) messages.add("MINIMUM_INSERT_SIZE cannot be negative");
+        if (MAXIMUM_INSERT_SIZE < 0) messages.add("MAXIMUM_INSERT_SIZE cannot be negative");
+        if (MAXIMUM_INSERT_SIZE > 0 && MAXIMUM_INSERT_SIZE < MINIMUM_INSERT_SIZE) {
+            messages.add("MAXIMUM_INSERT_SIZE cannot be less than MINIMUM_INSERT_SIZE unless set to 0");
+        }
+
+        return messages.isEmpty() ? null : messages.toArray(new String[messages.size()]);
+    }
+
+    @Override
+    protected void setup(final SAMFileHeader header, final File samFile) {
+        preAdapterSummaryOut = new File(OUTPUT + SequencingArtifactMetrics.PRE_ADAPTER_SUMMARY_EXT);
+        preAdapterDetailsOut = new File(OUTPUT + SequencingArtifactMetrics.PRE_ADAPTER_DETAILS_EXT);
+        baitBiasSummaryOut = new File(OUTPUT + SequencingArtifactMetrics.BAIT_BIAS_SUMMARY_EXT);
+        baitBiasDetailsOut = new File(OUTPUT + SequencingArtifactMetrics.BAIT_BIAS_DETAILS_EXT);
+
+        IOUtil.assertFileIsWritable(preAdapterSummaryOut);
+        IOUtil.assertFileIsWritable(preAdapterDetailsOut);
+        IOUtil.assertFileIsWritable(baitBiasSummaryOut);
+        IOUtil.assertFileIsWritable(baitBiasDetailsOut);
+
+        for (final SAMReadGroupRecord rec : header.getReadGroups()) {
+            samples.add(getOrElse(rec.getSample(), UNKNOWN_SAMPLE));
+            libraries.add(getOrElse(rec.getLibrary(), UNKNOWN_LIBRARY));
+        }
+
+        if (INTERVALS != null) {
+            IOUtil.assertFileIsReadable(INTERVALS);
+            intervalMask = new IntervalListReferenceSequenceMask(IntervalList.fromFile(INTERVALS).uniqued());
+        }
+
+        if (DB_SNP != null) {
+            IOUtil.assertFileIsReadable(DB_SNP);
+            dbSnpMask = new DbSnpBitSetUtil(DB_SNP, header.getSequenceDictionary());
+        }
+
+        // set record-level filters
+        final List<SamRecordFilter> filters = new ArrayList<SamRecordFilter>();
+        filters.add(new FailsVendorReadQualityFilter());
+        filters.add(new NotPrimaryAlignmentFilter());
+        filters.add(new DuplicateReadFilter());
+        filters.add(new AlignedFilter(true)); // discard unmapped reads
+        filters.add(new MappingQualityFilter(MINIMUM_MAPPING_QUALITY));
+        if (!INCLUDE_UNPAIRED) {
+            final int effectiveMaxInsertSize = (MAXIMUM_INSERT_SIZE == 0) ? Integer.MAX_VALUE : MAXIMUM_INSERT_SIZE;
+            filters.add(new InsertSizeFilter(MINIMUM_INSERT_SIZE, effectiveMaxInsertSize));
+        }
+        recordFilter = new AggregateFilter(filters);
+
+        // set up the artifact counters
+        final String sampleAlias = StringUtil.join(",", new ArrayList<String>(samples));
+        for (final String library : libraries) {
+            artifactCounters.put(library, new ArtifactCounter(sampleAlias, library, CONTEXT_SIZE, TANDEM_READS));
+        }
+    }
+
+    @Override
+    protected void acceptRead(final SAMRecord rec, final ReferenceSequence ref) {
+        // see if the whole read should be skipped
+        if (recordFilter.filterOut(rec)) return;
+
+        // check read group + library
+        final String library = (rec.getReadGroup() == null) ? UNKNOWN_LIBRARY : getOrElse(rec.getReadGroup().getLibrary(), UNKNOWN_LIBRARY);
+        if (!libraries.contains(library)) {
+            // should never happen if SAM is valid
+            throw new PicardException("Record contains library that is missing from header: " + library);
+        }
+
+        // iterate over aligned positions
+        for (final AlignmentBlock block : rec.getAlignmentBlocks()) {
+            for (int offset = 0; offset < block.getLength(); offset++) {
+                // remember, these are 1-based!
+                final int readPos = block.getReadStart() + offset;
+                final int refPos = block.getReferenceStart() + offset;
+
+                /**
+                 * Skip regions outside of intervals.
+                 *
+                 * NB: IntervalListReferenceSequenceMask.get() has side-effects which assume
+                 * that successive ReferenceSequence's passed to this method will be in-order
+                 * (e.g. it will break if you call acceptRead() with chr1, then chr2, then chr1
+                 * again). So this only works if the underlying iteration is coordinate-sorted.
+                 */
+                if (intervalMask != null && !intervalMask.get(ref.getContigIndex(), refPos)) continue;
+
+                // skip dbSNP sites
+                if (dbSnpMask != null && dbSnpMask.isDbSnpSite(ref.getName(), refPos)) continue;
+
+                // skip the ends of the reference
+                final int contextStartIndex = refPos - CONTEXT_SIZE - 1;
+                final int contextFullLength = 2 * CONTEXT_SIZE + 1;
+                if (contextStartIndex < 0 || contextStartIndex + contextFullLength > ref.length()) continue;
+
+                // skip contexts with N bases
+                final String context = StringUtil.bytesToString(ref.getBases(), contextStartIndex, contextFullLength).toUpperCase();
+                if (context.contains("N")) continue;
+
+                // skip low BQ sites
+                if (failsBaseQualityCutoff(readPos, rec)) continue;
+
+                // skip N bases in read
+                final char readBase = Character.toUpperCase((char) rec.getReadBases()[readPos - 1]);
+                if (readBase == 'N') continue;
+
+                // count the base!
+                artifactCounters.get(library).countRecord(context, readBase, rec);
+            }
+        }
+    }
+
+    @Override
+    protected void finish() {
+        final MetricsFile<PreAdapterSummaryMetrics, Integer> preAdapterSummaryMetricsFile = getMetricsFile();
+        final MetricsFile<PreAdapterDetailMetrics, Integer> preAdapterDetailMetricsFile = getMetricsFile();
+        final MetricsFile<BaitBiasSummaryMetrics, Integer> baitBiasSummaryMetricsFile = getMetricsFile();
+        final MetricsFile<BaitBiasDetailMetrics, Integer> baitBiasDetailMetricsFile = getMetricsFile();
+
+        for (final ArtifactCounter counter : artifactCounters.values()) {
+            // build metrics
+            counter.finish();
+
+            // write metrics
+            preAdapterSummaryMetricsFile.addAllMetrics(counter.getPreAdapterSummaryMetrics());
+            baitBiasSummaryMetricsFile.addAllMetrics(counter.getBaitBiasSummaryMetrics());
+
+            for (final PreAdapterDetailMetrics preAdapterDetailMetrics : counter.getPreAdapterDetailMetrics()) {
+                if (CONTEXTS_TO_PRINT.size() == 0 || CONTEXTS_TO_PRINT.contains(preAdapterDetailMetrics.CONTEXT)) {
+                    preAdapterDetailMetricsFile.addMetric(preAdapterDetailMetrics);
+                }
+            }
+            for (final BaitBiasDetailMetrics baitBiasDetailMetrics : counter.getBaitBiasDetailMetrics()) {
+                if (CONTEXTS_TO_PRINT.size() == 0 || CONTEXTS_TO_PRINT.contains(baitBiasDetailMetrics.CONTEXT)) {
+                    baitBiasDetailMetricsFile.addMetric(baitBiasDetailMetrics);
+                }
+            }
+
+        }
+
+        preAdapterDetailMetricsFile.write(preAdapterDetailsOut);
+        preAdapterSummaryMetricsFile.write(preAdapterSummaryOut);
+        baitBiasDetailMetricsFile.write(baitBiasDetailsOut);
+        baitBiasSummaryMetricsFile.write(baitBiasSummaryOut);
+    }
+
+    @Override
+    protected boolean usesNoRefReads() { return false; }
+
+    /**
+     * Check if this read base fails the base quality cutoff.
+     */
+    private boolean failsBaseQualityCutoff(final int oneIndexedPos, final SAMRecord rec) {
+        final byte qual;
+        if (USE_OQ && rec.getOriginalBaseQualities() != null) {
+            qual = rec.getOriginalBaseQualities()[oneIndexedPos - 1];
+        } else {
+            qual = rec.getBaseQualities()[oneIndexedPos - 1];
+        }
+        return (qual < MINIMUM_QUALITY_SCORE);
+    }
+}
diff --git a/src/java/picard/analysis/artifacts/ContextAccumulator.java b/src/java/picard/analysis/artifacts/ContextAccumulator.java
new file mode 100644
index 0000000..06f126b
--- /dev/null
+++ b/src/java/picard/analysis/artifacts/ContextAccumulator.java
@@ -0,0 +1,132 @@
+package picard.analysis.artifacts;
+
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.util.ListMap;
+import htsjdk.samtools.util.SequenceUtil;
+import picard.PicardException;
+import picard.analysis.artifacts.SequencingArtifactMetrics.*;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * Keeps track of the AlignmentAccumulators for each artifact / context of interest.
+ */
+class ContextAccumulator {
+
+    // are the PE reads expected to face the same direction?
+    private final boolean expectedTandemReads;
+    private final Map<Transition, Map<String, AlignmentAccumulator>> artifactMap;
+
+    public ContextAccumulator(final Set<String> contexts, final boolean expectedTandemReads) {
+        this.expectedTandemReads = expectedTandemReads;
+        this.artifactMap = new HashMap<Transition, Map<String, AlignmentAccumulator>>();
+        for (final Transition transition : Transition.values()) {
+            this.artifactMap.put(transition, new HashMap<String, AlignmentAccumulator>());
+        }
+        for (final String context : contexts) {
+            final char refBase = getCentralBase(context);
+            for (final byte calledBase : SequenceUtil.VALID_BASES_UPPER) {
+                final Transition transition = Transition.transitionOf(refBase, (char)calledBase);
+                this.artifactMap.get(transition).put(context, new AlignmentAccumulator());
+            }
+        }
+    }
+
+    public void countRecord(final String refContext, final char calledBase, final SAMRecord rec) {
+        final char refBase = getCentralBase(refContext);
+        final Transition transition = Transition.transitionOf(refBase, calledBase);
+        this.artifactMap.get(transition).get(refContext).countRecord(rec);
+    }
+
+    /**
+     * Core method to compute detailed (i.e. context-by-context) metrics from this accumulator.
+     */
+    public ListMap<Transition, DetailPair> calculateMetrics(final String sampleAlias, final String library) {
+        final ListMap<Transition, DetailPair> detailMetricsMap = new ListMap<Transition, DetailPair>();
+        for (final Transition altTransition : Transition.altValues()) {
+            final Transition refTransition = altTransition.matchingRef();
+            for (final String context : this.artifactMap.get(altTransition).keySet()) {
+                // each combination of artifact + context represents a single metric row
+                final PreAdapterDetailMetrics preAdapterDetailMetrics = new PreAdapterDetailMetrics();
+                final BaitBiasDetailMetrics baitBiasDetailMetrics = new BaitBiasDetailMetrics();
+
+                // populate basic fields
+                preAdapterDetailMetrics.SAMPLE_ALIAS = sampleAlias;
+                preAdapterDetailMetrics.LIBRARY = library;
+                preAdapterDetailMetrics.CONTEXT = context;
+                preAdapterDetailMetrics.REF_BASE = altTransition.ref();
+                preAdapterDetailMetrics.ALT_BASE = altTransition.call();
+
+                baitBiasDetailMetrics.SAMPLE_ALIAS = sampleAlias;
+                baitBiasDetailMetrics.LIBRARY = library;
+                baitBiasDetailMetrics.CONTEXT = context;
+                baitBiasDetailMetrics.REF_BASE = altTransition.ref();
+                baitBiasDetailMetrics.ALT_BASE = altTransition.call();
+
+                // retrieve all the necessary alignment counters.
+                final AlignmentAccumulator fwdRefAlignments = this.artifactMap.get(refTransition).get(context);
+                final AlignmentAccumulator fwdAltAlignments = this.artifactMap.get(altTransition).get(context);
+                final AlignmentAccumulator revRefAlignments = this.artifactMap.get(refTransition.complement()).get(SequenceUtil.reverseComplement(context));
+                final AlignmentAccumulator revAltAlignments = this.artifactMap.get(altTransition.complement()).get(SequenceUtil.reverseComplement(context));
+
+                // categorize observations of pre-adapter artifacts
+                if (expectedTandemReads) {
+                    // if both ends are sequenced on the same strand, then read1/read2 should exhibit the same bias
+                    preAdapterDetailMetrics.PRO_REF_BASES = fwdRefAlignments.R1_POS + fwdRefAlignments.R2_POS + revRefAlignments.R1_NEG + revRefAlignments.R2_NEG;
+                    preAdapterDetailMetrics.PRO_ALT_BASES = fwdAltAlignments.R1_POS + fwdAltAlignments.R2_POS + revAltAlignments.R1_NEG + revAltAlignments.R2_NEG;
+                    preAdapterDetailMetrics.CON_REF_BASES = fwdRefAlignments.R1_NEG + fwdRefAlignments.R2_NEG + revRefAlignments.R1_POS + revRefAlignments.R2_POS;
+                    preAdapterDetailMetrics.CON_ALT_BASES = fwdAltAlignments.R1_NEG + fwdAltAlignments.R2_NEG + revAltAlignments.R1_POS + revAltAlignments.R2_POS;
+                } else {
+                    // if ends are sequenced on opposite strands, then read1/read2 should exhibit opposite biases
+                    preAdapterDetailMetrics.PRO_REF_BASES = fwdRefAlignments.R1_POS + fwdRefAlignments.R2_NEG + revRefAlignments.R1_NEG + revRefAlignments.R2_POS;
+                    preAdapterDetailMetrics.PRO_ALT_BASES = fwdAltAlignments.R1_POS + fwdAltAlignments.R2_NEG + revAltAlignments.R1_NEG + revAltAlignments.R2_POS;
+                    preAdapterDetailMetrics.CON_REF_BASES = fwdRefAlignments.R1_NEG + fwdRefAlignments.R2_POS + revRefAlignments.R1_POS + revRefAlignments.R2_NEG;
+                    preAdapterDetailMetrics.CON_ALT_BASES = fwdAltAlignments.R1_NEG + fwdAltAlignments.R2_POS + revAltAlignments.R1_POS + revAltAlignments.R2_NEG;
+                }
+
+                // categorize observations of bait bias artifacts
+                baitBiasDetailMetrics.FWD_CXT_REF_BASES = fwdRefAlignments.R1_POS + fwdRefAlignments.R1_NEG + fwdRefAlignments.R2_POS + fwdRefAlignments.R2_NEG;
+                baitBiasDetailMetrics.FWD_CXT_ALT_BASES = fwdAltAlignments.R1_POS + fwdAltAlignments.R1_NEG + fwdAltAlignments.R2_POS + fwdAltAlignments.R2_NEG;
+                baitBiasDetailMetrics.REV_CXT_REF_BASES = revRefAlignments.R1_POS + revRefAlignments.R1_NEG + revRefAlignments.R2_POS + revRefAlignments.R2_NEG;
+                baitBiasDetailMetrics.REV_CXT_ALT_BASES = revAltAlignments.R1_POS + revAltAlignments.R1_NEG + revAltAlignments.R2_POS + revAltAlignments.R2_NEG;
+
+                // calculate error rates + Q-scores
+                preAdapterDetailMetrics.calculateDerivedStatistics();
+                baitBiasDetailMetrics.calculateDerivedStatistics();
+
+                // add the finalized metrics to the map
+                detailMetricsMap.add(altTransition, new DetailPair(preAdapterDetailMetrics, baitBiasDetailMetrics));
+            }
+        }
+        return detailMetricsMap;
+    }
+
+    private char getCentralBase(final String context) {
+        if (context.length() % 2 == 0) throw new PicardException("Contexts cannot have an even number of bases: " + context);
+        else return context.charAt(context.length() / 2);
+    }
+
+    /**
+     * Little class for breaking down alignments by read1/read2 and positive/negative strand.
+     */
+    private static class AlignmentAccumulator {
+        private long R1_POS = 0;
+        private long R1_NEG = 0;
+        private long R2_POS = 0;
+        private long R2_NEG = 0;
+
+        private void countRecord(final SAMRecord rec) {
+            final boolean isNegativeStrand = rec.getReadNegativeStrandFlag();
+            final boolean isReadTwo = rec.getReadPairedFlag() && rec.getSecondOfPairFlag();
+            if (isReadTwo) {
+                if (isNegativeStrand) this.R2_NEG++;
+                else this.R2_POS++;
+            } else {
+                if (isNegativeStrand) this.R1_NEG++;
+                else this.R1_POS++;
+            }
+        }
+    }
+}
diff --git a/src/java/picard/analysis/artifacts/ConvertSequencingArtifactToOxoG.java b/src/java/picard/analysis/artifacts/ConvertSequencingArtifactToOxoG.java
new file mode 100644
index 0000000..1908431
--- /dev/null
+++ b/src/java/picard/analysis/artifacts/ConvertSequencingArtifactToOxoG.java
@@ -0,0 +1,168 @@
+package picard.analysis.artifacts;
+
+import htsjdk.samtools.metrics.MetricsFile;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.SequenceUtil;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.Metrics;
+import picard.analysis.CollectOxoGMetrics.*;
+import picard.analysis.artifacts.SequencingArtifactMetrics.*;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+ at CommandLineProgramProperties(
+        usage = ConvertSequencingArtifactToOxoG.USAGE,
+        usageShort = ConvertSequencingArtifactToOxoG.USAGE,
+        programGroup = Metrics.class
+)
+public class ConvertSequencingArtifactToOxoG extends CommandLineProgram {
+    static final String USAGE = "Extract OxoG metrics format from generalized artifact metrics.";
+
+    @Option(shortName = StandardOptionDefinitions.INPUT_SHORT_NAME,
+            doc = "Basename for input artifact metrics")
+    public File INPUT_BASE;
+
+    @Option(shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME,
+            doc = "Basename for output OxoG metrics. Defaults to same basename as input metrics",
+            optional = true)
+    public File OUTPUT_BASE;
+
+    // Stock main method
+    public static void main(final String[] args) {
+        new ConvertSequencingArtifactToOxoG().instanceMainWithExit(args);
+    }
+
+    @Override
+    protected int doWork() {
+        if (OUTPUT_BASE == null) { OUTPUT_BASE = INPUT_BASE; }
+
+        final File PRE_ADAPTER_IN = new File(INPUT_BASE + SequencingArtifactMetrics.PRE_ADAPTER_DETAILS_EXT);
+        final File BAIT_BIAS_IN = new File(INPUT_BASE + SequencingArtifactMetrics.BAIT_BIAS_DETAILS_EXT);
+        final File OXOG_OUT = new File(OUTPUT_BASE + ".oxog_metrics");
+
+        IOUtil.assertFileIsReadable(PRE_ADAPTER_IN);
+        IOUtil.assertFileIsReadable(BAIT_BIAS_IN);
+        IOUtil.assertFileIsWritable(OXOG_OUT);
+
+        final List<PreAdapterDetailMetrics> preAdapterDetailMetricsList = (List<PreAdapterDetailMetrics>) MetricsFile.readBeans(PRE_ADAPTER_IN);
+        final List<BaitBiasDetailMetrics> baitBiasDetailMetricsList = (List<BaitBiasDetailMetrics>) MetricsFile.readBeans(BAIT_BIAS_IN);
+
+        // TODO should we validate that the two inputs match up as expected?
+
+        /**
+         * Determine output fields. Just copy these from the input for now.
+         */
+        final String oxogSampleAlias = preAdapterDetailMetricsList.get(0).SAMPLE_ALIAS;
+        final Set<String> oxogLibraries = new HashSet<String>();
+        final Set<String> oxogContexts = new HashSet<String>();
+        for (final PreAdapterDetailMetrics preAdapter : preAdapterDetailMetricsList) {
+            oxogLibraries.add(preAdapter.LIBRARY);
+            // Remember that OxoG only reports on the 'C' contexts
+            if (preAdapter.REF_BASE == 'C') {
+                oxogContexts.add(preAdapter.CONTEXT);
+            }
+        }
+
+        /**
+         * Store the inputs in maps of {Library -> {Context, Metric}} for easy access.
+         * Remember, we only care about two transitions - C>A and G>T! Thus, for each context we
+         * will only store one metric.
+         */
+        final Map<String, Map<String, PreAdapterDetailMetrics>> preAdapterDetailMetricsMap = new HashMap<String, Map<String, PreAdapterDetailMetrics>>();
+        final Map<String, Map<String, BaitBiasDetailMetrics>> baitBiasDetailMetricsMap = new HashMap<String, Map<String, BaitBiasDetailMetrics>>();
+        for (final String library : oxogLibraries) {
+            final Map<String, PreAdapterDetailMetrics> contextsToPreAdapter = new HashMap<String, PreAdapterDetailMetrics>();
+            final Map<String, BaitBiasDetailMetrics> contextsToBaitBias = new HashMap<String, BaitBiasDetailMetrics>();
+            preAdapterDetailMetricsMap.put(library, contextsToPreAdapter);
+            baitBiasDetailMetricsMap.put(library, contextsToBaitBias);
+        }
+        for (final PreAdapterDetailMetrics preAdapter : preAdapterDetailMetricsList) {
+            final Transition transition = Transition.transitionOf(preAdapter.REF_BASE, preAdapter.ALT_BASE);
+            if (isOxoG(transition)) {
+                preAdapterDetailMetricsMap.get(preAdapter.LIBRARY).put(preAdapter.CONTEXT, preAdapter);
+            }
+        }
+        for (final BaitBiasDetailMetrics baitBias : baitBiasDetailMetricsList) {
+            final Transition transition = Transition.transitionOf(baitBias.REF_BASE, baitBias.ALT_BASE);
+            if (isOxoG(transition)) {
+                baitBiasDetailMetricsMap.get(baitBias.LIBRARY).put(baitBias.CONTEXT, baitBias);
+            }
+        }
+
+        /**
+         * Create the OxoG metrics
+         */
+        final List<CpcgMetrics> oxogMetrics = new ArrayList<CpcgMetrics>();
+        for (final String library : oxogLibraries) {
+            for (final String context : oxogContexts) {
+                final CpcgMetrics m = new CpcgMetrics();
+                m.SAMPLE_ALIAS = oxogSampleAlias;
+                m.LIBRARY = library;
+                m.CONTEXT = context;
+                m.TOTAL_SITES = 0; // not calculated in the input metrics
+
+                /**
+                 * Get the relevant input metrics. This is done in a somewhat confusing way:
+                 *
+                 * 1. For pre-adapter metrics: note that OxoG only reports 'C' contexts, even though the actual pre-adapter OxoG artifact
+                 *    occurs when the reference-strand base is 'G'. This is because OxoG reverse-complements all the contexts for some reason.
+                 *    Thus when we add an entry for 'ACA' in the output, we actually need to get that data from 'TGT' in the input.
+                 *
+                 * 2. For bait-bias metrics: for each context, we report two opposing error rates, C_REF and G_REF, because for this metric
+                 *    the bias could really go in either direction (whereas for pre-adapter artifacts we only expect one direction: G>T, but
+                 *    never C>A, on the original reference strand). C_REF corresponds to the actual context printed in that row, and G_REF
+                 *    corresponds to its reverse complement. So for 'ACA' in the output, we need to take data from both 'ACA' and 'TGT' in the
+                 *    input.
+                 */
+
+                final PreAdapterDetailMetrics preAdapter = preAdapterDetailMetricsMap.get(library).get(SequenceUtil.reverseComplement(context));
+                final BaitBiasDetailMetrics baitBiasFwd = baitBiasDetailMetricsMap.get(library).get(context);
+                final BaitBiasDetailMetrics baitBiasRev = baitBiasDetailMetricsMap.get(library).get(SequenceUtil.reverseComplement(context));
+
+                // extract fields from PreAdapterDetailMetrics
+                m.TOTAL_BASES = preAdapter.PRO_REF_BASES + preAdapter.PRO_ALT_BASES + preAdapter.CON_REF_BASES + preAdapter.CON_ALT_BASES;
+                m.REF_TOTAL_BASES = preAdapter.PRO_REF_BASES + preAdapter.CON_REF_BASES;
+                m.REF_NONOXO_BASES = preAdapter.CON_REF_BASES;
+                m.REF_OXO_BASES = preAdapter.PRO_REF_BASES;
+                m.ALT_NONOXO_BASES = preAdapter.CON_ALT_BASES;
+                m.ALT_OXO_BASES = preAdapter.PRO_ALT_BASES;
+                m.OXIDATION_ERROR_RATE = preAdapter.ERROR_RATE;
+                m.OXIDATION_Q = preAdapter.QSCORE;
+
+                // extract fields from BaitBiasDetailMetrics
+                m.C_REF_REF_BASES = baitBiasFwd.FWD_CXT_REF_BASES;
+                m.G_REF_REF_BASES = baitBiasFwd.REV_CXT_REF_BASES;
+                m.C_REF_ALT_BASES = baitBiasFwd.FWD_CXT_ALT_BASES;
+                m.G_REF_ALT_BASES = baitBiasFwd.REV_CXT_ALT_BASES;
+                m.C_REF_OXO_ERROR_RATE = baitBiasFwd.ERROR_RATE;
+                m.C_REF_OXO_Q = baitBiasFwd.QSCORE;
+                m.G_REF_OXO_ERROR_RATE = baitBiasRev.ERROR_RATE;
+                m.G_REF_OXO_Q = baitBiasRev.QSCORE;
+
+                // add it
+                oxogMetrics.add(m);
+            }
+        }
+
+        final MetricsFile<CpcgMetrics, Integer> outputFile = getMetricsFile();
+        for (final CpcgMetrics m : oxogMetrics) {
+            outputFile.addMetric(m);
+        }
+
+        outputFile.write(OXOG_OUT);
+        return 0;
+    }
+
+    private boolean isOxoG(final Transition t) {
+        return t.equals(Transition.CtoA) || t.equals(Transition.GtoT);
+    }
+}
diff --git a/src/java/picard/analysis/artifacts/SequencingArtifactMetrics.java b/src/java/picard/analysis/artifacts/SequencingArtifactMetrics.java
new file mode 100644
index 0000000..e4cb0ff
--- /dev/null
+++ b/src/java/picard/analysis/artifacts/SequencingArtifactMetrics.java
@@ -0,0 +1,269 @@
+package picard.analysis.artifacts;
+
+import htsjdk.samtools.metrics.MetricBase;
+import htsjdk.samtools.util.QualityUtil;
+
+public class SequencingArtifactMetrics {
+    public static final String PRE_ADAPTER_SUMMARY_EXT = ".pre_adapter_summary_metrics";
+    public static final String PRE_ADAPTER_DETAILS_EXT = ".pre_adapter_detail_metrics";
+    public static final String BAIT_BIAS_SUMMARY_EXT = ".bait_bias_summary_metrics";
+    public static final String BAIT_BIAS_DETAILS_EXT = ".bait_bias_detail_metrics";
+
+    private static final double MIN_ERROR = 1e-10; // minimum error rate to report
+
+    /**
+     * Summary analysis of a single pre-adapter artifact.
+     *
+     * These artifacts occur on the original template strand, before the addition of adapters,
+     * so they correlate with read number / orientation in a specific way.
+     *
+     * For example, the well-known "Oxo-G" artifact occurs when a G on the template
+     * strand is oxidized, giving it an affinity for binding to A rather than the usual C.
+     * Thus PCR will introduce apparent G>T substitutions in read 1 and C>A in read 2.
+     * In the resulting alignments, a given G>T or C>A observation could either be:
+     *
+     * 1. a true mutation
+     * 2. an OxoG artifact
+     * 3. some other kind of artifact
+     *
+     * On average, we assume that 1 and 3 will not display this read number / orientation bias, so
+     * their contributions will cancel out in the calculation.
+     *
+     */
+    public static class PreAdapterSummaryMetrics extends MetricBase {
+        /** The name of the sample being assayed. */
+        public String SAMPLE_ALIAS;
+        /** The name of the library being assayed. */
+        public String LIBRARY;
+        /** The (upper-case) original base on the reference strand. */
+        public char REF_BASE;
+        /** The (upper-case) alternative base that is called as a result of DNA damage. */
+        public char ALT_BASE;
+
+        /**
+         * The total Phred-scaled Q-score for this artifact. A lower Q-score
+         * means a higher probability that a REF_BASE:ALT_BASE observation
+         * randomly picked from the data will be due to this artifact, rather
+         * than a true variant.
+         */
+        public double TOTAL_QSCORE;
+
+        /** The sequence context (reference bases surrounding the locus of interest) having the lowest Q-score among all contexts for this artifact. */
+        public String WORST_CXT;
+        /** The Q-score for the worst context. */
+        public double WORST_CXT_QSCORE;
+
+        /** The pre-context (reference bases leading up to the locus of interest) with the lowest Q-score. */
+        public String WORST_PRE_CXT;
+        /** The Q-score for the worst pre-context. */
+        public double WORST_PRE_CXT_QSCORE;
+
+        /** The post-context (reference bases trailing after the locus of interest) with the lowest Q-score. */
+        public String WORST_POST_CXT;
+        /** The Q-score for the worst post-context. */
+        public double WORST_POST_CXT_QSCORE;
+
+        /** A "nickname" of this artifact, if it is a known error mode. */
+        public String ARTIFACT_NAME;
+
+        /**
+         * Label the artifacts corresponding to known error modes.
+         */
+        public void inferArtifactName() {
+            if (this.REF_BASE == 'G' && this.ALT_BASE == 'T') this.ARTIFACT_NAME = "OxoG";
+            else if (this.REF_BASE == 'C' && this.ALT_BASE == 'T') this.ARTIFACT_NAME = "Deamination";
+            else this.ARTIFACT_NAME = "NA";
+        }
+    }
+
+    /**
+     * Summary analysis of a single bait bias artifact, also known as a reference bias artifact.
+     *
+     * These artifacts occur during or after the target selection step, and correlate with substitution
+     * rates that are "biased", or higher for sites having one base on the reference/positive strand
+     * relative to sites having the complementary base on that strand.
+     *
+     * For example, a G>T artifact during the target selection step might result in a higher
+     * G>T / C>A substitution rate at sites with a G on the positive strand (and C on the negative),
+     * relative to sites with the flip (C positive / G negative). This is known as the "G-Ref" artifact.
+     *
+     */
+    public static class BaitBiasSummaryMetrics extends MetricBase {
+        /** The name of the sample being assayed. */
+        public String SAMPLE_ALIAS;
+        /** The name of the library being assayed. */
+        public String LIBRARY;
+        /** The (upper-case) original base on the reference strand. */
+        public char REF_BASE;
+        /** The (upper-case) alternative base that is called as a result of DNA damage. */
+        public char ALT_BASE;
+
+        /**
+         * The total Phred-scaled Q-score for this artifact. A lower Q-score
+         * means a higher probability that a REF_BASE:ALT_BASE observation
+         * randomly picked from the data will be due to this artifact, rather
+         * than a true variant.
+         */
+        public double TOTAL_QSCORE;
+
+        /** The sequence context (reference bases surrounding the locus of interest) having the lowest Q-score among all contexts for this artifact. */
+        public String WORST_CXT;
+        /** The Q-score for the worst context. */
+        public double WORST_CXT_QSCORE;
+
+        /** The pre-context (reference bases leading up to the locus of interest) with the lowest Q-score. */
+        public String WORST_PRE_CXT;
+        /** The Q-score for the worst pre-context. */
+        public double WORST_PRE_CXT_QSCORE;
+
+        /** The post-context (reference bases trailing after the locus of interest) with the lowest Q-score. */
+        public String WORST_POST_CXT;
+        /** The Q-score for the worst post-context. */
+        public double WORST_POST_CXT_QSCORE;
+
+        /** A "nickname" of this artifact, if it is a known error mode. */
+        public String ARTIFACT_NAME;
+
+        /**
+         * Label the artifacts corresponding to known error modes.
+         */
+        public void inferArtifactName() {
+            if (this.REF_BASE == 'G' && this.ALT_BASE == 'T') this.ARTIFACT_NAME = "Gref";
+            else if (this.REF_BASE == 'C' && this.ALT_BASE == 'A') this.ARTIFACT_NAME = "Cref";
+            else this.ARTIFACT_NAME = "NA";
+        }
+    }
+
+    /**
+     * Pre-adapter artifacts broken down by context.
+     */
+    public static class PreAdapterDetailMetrics extends MetricBase {
+        /** The name of the sample being assayed. */
+        public String SAMPLE_ALIAS;
+        /** The name of the library being assayed. */
+        public String LIBRARY;
+        /** The (upper-case) original base on the reference strand. */
+        public char REF_BASE;
+        /** The (upper-case) alternative base that is called as a result of DNA damage. */
+        public char ALT_BASE;
+
+        /** The sequence context to which the analysis is constrained. */
+        public String CONTEXT;
+
+        /** The number of REF_BASE:REF_BASE alignments having a read number and orientation that supports the presence of this artifact. */
+        public long PRO_REF_BASES;
+        /** The number of REF_BASE:ALT_BASE alignments having a read number and orientation that supports the presence of this artifact. */
+        public long PRO_ALT_BASES;
+        /** The number of REF_BASE:REF_BASE alignments having a read number and orientation that refutes the presence of this artifact. */
+        public long CON_REF_BASES;
+        /** The number of REF_BASE:ALT_BASE alignments having a read number and orientation that refutes the presence of this artifact. */
+        public long CON_ALT_BASES;
+
+        /**
+         * The estimated error rate due to this artifact.
+         * Calculated as max(1e-10, (PRO_ALT_BASES - CON_ALT_BASES) / (PRO_ALT_BASES + PRO_REF_BASES + CON_ALT_BASES + CON_REF_BASES)).
+         */
+        public double ERROR_RATE;
+        /** The Phred-scaled quality score of the artifact, calculated as -10 * log10(ERROR_RATE). */
+        public double QSCORE;
+
+        /**
+         * Calculate the error rate given the raw counts. Negative rates are set to MIN_ERROR.
+         */
+        public void calculateDerivedStatistics() {
+            this.ERROR_RATE = MIN_ERROR;
+            final long totalBases = this.PRO_REF_BASES + this.PRO_ALT_BASES + this.CON_REF_BASES + this.CON_ALT_BASES;
+            if (totalBases > 0) {
+                final double rawErrorRate = (this.PRO_ALT_BASES - this.CON_ALT_BASES) / (double) totalBases;
+                this.ERROR_RATE = Math.max(MIN_ERROR, rawErrorRate);
+            }
+            this.QSCORE = QualityUtil.getPhredScoreFromErrorProbability(this.ERROR_RATE);
+        }
+    }
+
+    /**
+     * Bait bias artifacts broken down by context.
+     */
+    public static class BaitBiasDetailMetrics extends MetricBase {
+        /** The name of the sample being assayed. */
+        public String SAMPLE_ALIAS;
+        /** The name of the library being assayed. */
+        public String LIBRARY;
+        /** The (upper-case) original base on the reference strand. */
+        public char REF_BASE;
+        /** The (upper-case) alternative base that is called as a result of DNA damage. */
+        public char ALT_BASE;
+
+        /** The sequence context to which the analysis is constrained. */
+        public String CONTEXT;
+
+        /** The number of REF_BASE:REF_BASE alignments at sites with the given reference context. */
+        public long FWD_CXT_REF_BASES;
+        /** The number of REF_BASE:ALT_BASE alignments at sites with the given reference context. */
+        public long FWD_CXT_ALT_BASES;
+        /** The number of ~REF_BASE:~REF_BASE alignments at sites complementary to the given reference context. */
+        public long REV_CXT_REF_BASES;
+        /** The number of ~REF_BASE:~ALT_BASE alignments at sites complementary to the given reference context. */
+        public long REV_CXT_ALT_BASES;
+
+        /** The substitution rate of REF_BASE:ALT_BASE, calculated as max(1e-10, FWD_CXT_ALT_BASES / (FWD_CXT_ALT_BASES + FWD_CXT_REF_BASES)). */
+        public double FWD_ERROR_RATE;
+        /** The substitution rate of ~REF_BASE:~ALT_BASE, calculated as max(1e-10, REV_CXT_ALT_BASES / (REV_CXT_ALT_BASES + REV_CXT_REF_BASES)). */
+        public double REV_ERROR_RATE;
+
+        /**
+         * The bait bias error rate, calculated as max(1e-10, FWD_ERROR_RATE - REV_ERROR_RATE).
+         */
+        public double ERROR_RATE;
+        /** The Phred-scaled quality score of the artifact, calculated as -10 * log10(ERROR_RATE). */
+        public double QSCORE;
+
+        /**
+         * Calculate the error rate given the raw counts. Negative rates are set to MIN_ERROR.
+         */
+        public void calculateDerivedStatistics() {
+            this.FWD_ERROR_RATE = MIN_ERROR;
+            final long fwdBases = this.FWD_CXT_REF_BASES + this.FWD_CXT_ALT_BASES;
+            if (fwdBases > 0) {
+                final double fwdErr = this.FWD_CXT_ALT_BASES / (double) fwdBases;
+                this.FWD_ERROR_RATE = Math.max(MIN_ERROR, fwdErr);
+            }
+
+            this.REV_ERROR_RATE = MIN_ERROR;
+            final long revBases = this.REV_CXT_REF_BASES + this.REV_CXT_ALT_BASES;
+            if (revBases > 0) {
+                final double revErr = this.REV_CXT_ALT_BASES / (double) revBases;
+                this.REV_ERROR_RATE = Math.max(MIN_ERROR, revErr);
+            }
+
+            this.ERROR_RATE = Math.max(MIN_ERROR, this.FWD_ERROR_RATE - this.REV_ERROR_RATE);
+            this.QSCORE = QualityUtil.getPhredScoreFromErrorProbability(this.ERROR_RATE);
+        }
+    }
+
+    /**
+     * Little container for passing around a detail metrics pair.
+     */
+    static class DetailPair {
+        final PreAdapterDetailMetrics preAdapterMetrics;
+        final BaitBiasDetailMetrics baitBiasMetrics;
+
+        DetailPair(final PreAdapterDetailMetrics preAdapterMetrics, final BaitBiasDetailMetrics baitBiasMetrics) {
+            this.preAdapterMetrics = preAdapterMetrics;
+            this.baitBiasMetrics = baitBiasMetrics;
+        }
+    }
+
+    /**
+     * Little container for passing around a summary metrics pair.
+     */
+    static class SummaryPair {
+        final PreAdapterSummaryMetrics preAdapterMetrics;
+        final BaitBiasSummaryMetrics baitBiasMetrics;
+
+        SummaryPair(final PreAdapterSummaryMetrics preAdapterMetrics, final BaitBiasSummaryMetrics baitBiasMetrics) {
+            this.preAdapterMetrics = preAdapterMetrics;
+            this.baitBiasMetrics = baitBiasMetrics;
+        }
+    }
+}
diff --git a/src/java/picard/analysis/artifacts/Transition.java b/src/java/picard/analysis/artifacts/Transition.java
new file mode 100644
index 0000000..303b0ee
--- /dev/null
+++ b/src/java/picard/analysis/artifacts/Transition.java
@@ -0,0 +1,54 @@
+package picard.analysis.artifacts;
+
+import htsjdk.samtools.util.SequenceUtil;
+
+enum Transition {
+    AtoA('A','A'), AtoC('A','C'), AtoG('A','G'), AtoT('A','T'),
+    CtoA('C','A'), CtoC('C','C'), CtoG('C','G'), CtoT('C','T'),
+    GtoA('G','A'), GtoC('G','C'), GtoG('G','G'), GtoT('G','T'),
+    TtoA('T','A'), TtoC('T','C'), TtoG('T','G'), TtoT('T','T');
+
+    private static final Transition[] ALT_VALUES = new Transition[]{
+        AtoC, AtoG, AtoT, CtoA, CtoG, CtoT, GtoA, GtoC, GtoT, TtoA, TtoC, TtoG
+    };
+
+    private final char ref;
+    private final char call;
+
+    Transition(final char ref, final char call) {
+        this.ref = ref;
+        this.call = call;
+    }
+
+    public static Transition transitionOf(final char ref, final char call) {
+        return valueOf(ref + "to" + call);
+    }
+
+    /**
+     * Like values(), but ignores the ref:ref "transitions".
+     */
+    public static Transition[] altValues() { return ALT_VALUES; }
+
+    /**
+     * Return the complementary transition. Both ref and call must be complemented.
+     */
+    public Transition complement() {
+        return transitionOf((char) SequenceUtil.complement((byte) this.ref), (char) SequenceUtil.complement((byte) this.call));
+    }
+
+    /**
+     * Return the ref:ref transition corresponding to this ref:alt transition.
+     */
+    public Transition matchingRef() {
+        return transitionOf(this.ref, this.ref);
+    }
+
+    public char ref() { return this.ref; }
+
+    public char call() { return this.call; }
+
+    @Override
+    public String toString() {
+        return this.ref + ">" + this.call;
+    }
+}
\ No newline at end of file
diff --git a/src/java/picard/analysis/directed/CalculateHsMetrics.java b/src/java/picard/analysis/directed/CalculateHsMetrics.java
new file mode 100644
index 0000000..5d42821
--- /dev/null
+++ b/src/java/picard/analysis/directed/CalculateHsMetrics.java
@@ -0,0 +1,98 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.analysis.directed;
+
+import htsjdk.samtools.SAMReadGroupRecord;
+import htsjdk.samtools.reference.ReferenceSequenceFile;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.IntervalList;
+import htsjdk.samtools.util.StringUtil;
+import picard.analysis.MetricAccumulationLevel;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.programgroups.Metrics;
+
+import java.io.File;
+import java.util.List;
+import java.util.Set;
+import java.util.SortedSet;
+import java.util.TreeSet;
+
+/**
+ * Calculates a set of HS metrics from a sam or bam file.  See HsMetricsCollector and CollectTargetedMetrics for more details.
+ *
+ * @author Tim Fennell
+ */
+ at CommandLineProgramProperties(
+        usage = "Calculates a set of Hybrid Selection specific metrics from an aligned SAM" +
+                "or BAM file. If a reference sequence is provided, AT/GC dropout metrics will " +
+                "be calculated, and the PER_TARGET_COVERAGE option can be used to output GC and " +
+                "mean coverage information for every target.",
+        usageShort = "Calculates Hybrid Selection-specific metrics for a SAM or BAM file",
+        programGroup = Metrics.class
+)
+public class CalculateHsMetrics extends CollectTargetedMetrics<HsMetrics, HsMetricCollector> {
+
+    @Option(shortName = "BI", doc = "An interval list file that contains the locations of the baits used.", minElements=1)
+    public List<File> BAIT_INTERVALS;
+
+    @Option(shortName = "N", doc = "Bait set name. If not provided it is inferred from the filename of the bait intervals.", optional = true)
+    public String BAIT_SET_NAME;
+
+    @Override
+    protected IntervalList getProbeIntervals() {
+        for (final File file : BAIT_INTERVALS) IOUtil.assertFileIsReadable(file);
+        return IntervalList.fromFiles(BAIT_INTERVALS);
+    }
+
+    @Override
+    protected String getProbeSetName() {
+        if (BAIT_SET_NAME != null) {
+            return BAIT_SET_NAME;
+        } else {
+            final SortedSet<String> baitSetNames = new TreeSet<String>();
+            for (final File file : BAIT_INTERVALS) {
+                baitSetNames.add(CollectTargetedMetrics.renderProbeNameFromFile(file));
+            }
+            return StringUtil.join(".", baitSetNames);
+        }
+    }
+
+    /** Stock main method. */
+    public static void main(final String[] argv) {
+        System.exit(new CalculateHsMetrics().instanceMain(argv));
+    }
+
+    @Override
+    protected HsMetricCollector makeCollector(final Set<MetricAccumulationLevel> accumulationLevels,
+                                              final List<SAMReadGroupRecord> samRgRecords,
+                                              final ReferenceSequenceFile refFile,
+                                              final File perTargetCoverage,
+                                              final IntervalList targetIntervals,
+                                              final IntervalList probeIntervals,
+                                              final String probeSetName) {
+        return new HsMetricCollector(accumulationLevels, samRgRecords, refFile, perTargetCoverage, targetIntervals, probeIntervals, probeSetName);
+    }
+}
diff --git a/src/java/picard/analysis/directed/CollectTargetedMetrics.java b/src/java/picard/analysis/directed/CollectTargetedMetrics.java
new file mode 100644
index 0000000..93df377
--- /dev/null
+++ b/src/java/picard/analysis/directed/CollectTargetedMetrics.java
@@ -0,0 +1,158 @@
+package picard.analysis.directed;
+
+import htsjdk.samtools.SAMReadGroupRecord;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.metrics.MetricsFile;
+import htsjdk.samtools.reference.ReferenceSequenceFile;
+import htsjdk.samtools.reference.ReferenceSequenceFileFactory;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.CollectionUtil;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.IntervalList;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.ProgressLogger;
+import htsjdk.samtools.util.SequenceUtil;
+import picard.analysis.MetricAccumulationLevel;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.metrics.MultilevelMetrics;
+
+import java.io.File;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Both CollectTargetedPCRMetrics and CalculateHybridSelection metrics share virtually identical program structures except
+ * for the name of their targeting mechanisms (e.g. bait set or amplicon set).  The shared behavior of these programs
+ * is encapsulated in CollectTargetedMetrics which is then subclassed by CalculateHsMetrics and CollectTargetedPcrMetrics.
+ * <p/>
+ * This program verifies the input parameters to TargetMetricsCollector and converts all files to
+ * the format desired by TargetMetricsCollector.  Then it instantiates a TargetMetricsCollector and
+ * collects metric information for all reads in the INPUT sam file.
+ */
+public abstract class CollectTargetedMetrics<METRIC extends MultilevelMetrics, COLLECTOR extends TargetMetricsCollector<METRIC>> extends CommandLineProgram {
+
+    private static final Log log = Log.getInstance(CalculateHsMetrics.class);
+
+    protected abstract IntervalList getProbeIntervals();
+
+    protected abstract String getProbeSetName();
+
+    /**
+     * A factory method for the TargetMetricsCollector to use this time.  Examples of TargetMetricsCollector:
+     * (TargetedPcrMetricsCollector, HsMetricsCalculator)
+     *
+     * @return A TargetMetricsCollector to which we will pass SAMRecords
+     */
+    protected abstract COLLECTOR makeCollector(final Set<MetricAccumulationLevel> accumulationLevels,
+                                               final List<SAMReadGroupRecord> samRgRecords,
+                                               final ReferenceSequenceFile refFile,
+                                               final File perTargetCoverage,
+                                               final IntervalList targetIntervals,
+                                               final IntervalList probeIntervals,
+                                               final String probeSetName);
+
+
+    @Option(shortName = "TI", doc = "An interval list file that contains the locations of the targets.", minElements=1)
+    public List<File> TARGET_INTERVALS;
+
+    @Option(shortName = StandardOptionDefinitions.INPUT_SHORT_NAME, doc = "An aligned SAM or BAM file.")
+    public File INPUT;
+
+    @Option(shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc = "The output file to write the metrics to.")
+    public File OUTPUT;
+
+    @Option(shortName = "LEVEL", doc = "The level(s) at which to accumulate metrics.")
+    public Set<MetricAccumulationLevel> METRIC_ACCUMULATION_LEVEL = CollectionUtil.makeSet(MetricAccumulationLevel.ALL_READS);
+
+    @Option(optional = true, doc = "An optional file to output per target coverage information to.")
+    public File PER_TARGET_COVERAGE;
+
+    /**
+     * Asserts that files are readable and writable and then fires off an
+     * HsMetricsCalculator instance to do the real work.
+     */
+    protected int doWork() {
+        for (final File targetInterval : TARGET_INTERVALS) IOUtil.assertFileIsReadable(targetInterval);
+        IOUtil.assertFileIsReadable(INPUT);
+        IOUtil.assertFileIsWritable(OUTPUT);
+        if (PER_TARGET_COVERAGE != null) IOUtil.assertFileIsWritable(PER_TARGET_COVERAGE);
+
+        final SamReader reader = SamReaderFactory.makeDefault().referenceSequence(REFERENCE_SEQUENCE).open(INPUT);
+        final IntervalList targetIntervals = IntervalList.fromFiles(TARGET_INTERVALS);
+
+        // Validate that the targets and baits have the same references as the reads file
+        SequenceUtil.assertSequenceDictionariesEqual(
+                reader.getFileHeader().getSequenceDictionary(),
+                targetIntervals.getHeader().getSequenceDictionary());
+        SequenceUtil.assertSequenceDictionariesEqual(
+                reader.getFileHeader().getSequenceDictionary(),
+                getProbeIntervals().getHeader().getSequenceDictionary()
+        );
+
+        ReferenceSequenceFile ref = null;
+        if (REFERENCE_SEQUENCE != null) {
+            IOUtil.assertFileIsReadable(REFERENCE_SEQUENCE);
+            ref = ReferenceSequenceFileFactory.getReferenceSequenceFile(REFERENCE_SEQUENCE);
+            SequenceUtil.assertSequenceDictionariesEqual(
+                    reader.getFileHeader().getSequenceDictionary(), ref.getSequenceDictionary(),
+                    INPUT, REFERENCE_SEQUENCE
+            );
+        }
+
+        final COLLECTOR collector = makeCollector(
+                METRIC_ACCUMULATION_LEVEL,
+                reader.getFileHeader().getReadGroups(),
+                ref,
+                PER_TARGET_COVERAGE,
+                targetIntervals,
+                getProbeIntervals(),
+                getProbeSetName()
+        );
+
+        final ProgressLogger progress = new ProgressLogger(log);
+        for (final SAMRecord record : reader) {
+            collector.acceptRecord(record, null);
+            progress.record(record);
+        }
+
+        // Write the output file
+        final MetricsFile<METRIC, Integer> metrics = getMetricsFile();
+        collector.finish();
+
+        collector.addAllLevelsToFile(metrics);
+
+        metrics.write(OUTPUT);
+
+        CloserUtil.close(reader);
+        return 0;
+    }
+
+    /** Renders a probe name from the provided file, returning {@link java.io.File#getName()} with all extensions stripped. */
+    static String renderProbeNameFromFile(final File probeIntervalFile) {
+        final String name = probeIntervalFile.getName();
+        final int firstPeriodIndex = name.indexOf('.');
+        if (firstPeriodIndex == -1) {
+            return name;
+        } else {
+            return name.substring(0, firstPeriodIndex);
+        }
+    }
+
+    protected String[] customCommandLineValidation() {
+        if (PER_TARGET_COVERAGE != null && (METRIC_ACCUMULATION_LEVEL.size() != 1 ||
+                METRIC_ACCUMULATION_LEVEL.iterator().next() != MetricAccumulationLevel.ALL_READS)) {
+            return new String[]{"PER_TARGET_COVERAGE can be specified only when METRIC_ACCUMULATION_LEVEL is set " +
+                    "to ALL_READS."};
+        }
+
+        if (PER_TARGET_COVERAGE != null && REFERENCE_SEQUENCE == null) {
+            return new String[]{"Must supply REFERENCE_SEQUENCE when supplying PER_TARGET_COVERAGE"};
+        }
+
+        return super.customCommandLineValidation();
+    }
+}
diff --git a/src/java/picard/analysis/directed/CollectTargetedPcrMetrics.java b/src/java/picard/analysis/directed/CollectTargetedPcrMetrics.java
new file mode 100644
index 0000000..45d3bee
--- /dev/null
+++ b/src/java/picard/analysis/directed/CollectTargetedPcrMetrics.java
@@ -0,0 +1,66 @@
+package picard.analysis.directed;
+
+import htsjdk.samtools.SAMReadGroupRecord;
+import htsjdk.samtools.reference.ReferenceSequenceFile;
+import htsjdk.samtools.util.IntervalList;
+import picard.analysis.MetricAccumulationLevel;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.programgroups.Metrics;
+
+import java.io.File;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Collect metric information for target pcr metrics runs.  See CollectTargetedMetrics and TargetPcrMetricsCollector for
+ * more information
+ */
+ at CommandLineProgramProperties(
+        usage = "Calculates a set of metrics to Illumina Truseq Custom Amplicon sequencing from an aligned SAM" +
+                "or BAM file. If a reference sequence is provided, AT/GC dropout metrics will " +
+                "be calculated, and the PER_TARGET_COVERAGE option can be used to output GC and " +
+                "mean coverage information for every target.",
+        usageShort = "Produces Targeted PCR-related metrics given the provided SAM/BAM",
+        programGroup = Metrics.class
+)
+public class CollectTargetedPcrMetrics extends CollectTargetedMetrics<TargetedPcrMetrics, TargetedPcrMetricsCollector> {
+
+    @Option(shortName = "AI", doc = "An interval list file that contains the locations of the baits used.")
+    public File AMPLICON_INTERVALS;
+
+    @Option(shortName = "N", doc = "Custom amplicon set name. If not provided it is inferred from the filename of the AMPLICON_INTERVALS intervals.", optional = true)
+    public String CUSTOM_AMPLICON_SET_NAME;
+
+    /**
+     * @return AMPLICON_INTERVALS
+     */
+    @Override
+    protected IntervalList getProbeIntervals() {
+        return IntervalList.fromFile(AMPLICON_INTERVALS);
+    }
+
+    /**
+     * @return CUSTOM_AMPLICON_SET_NAME
+     */
+    @Override
+    protected String getProbeSetName() {
+        return CUSTOM_AMPLICON_SET_NAME != null ? CUSTOM_AMPLICON_SET_NAME : CollectTargetedMetrics.renderProbeNameFromFile(AMPLICON_INTERVALS);
+    }
+
+    /** Stock main method. */
+    public static void main(final String[] argv) {
+        System.exit(new CollectTargetedPcrMetrics().instanceMain(argv));
+    }
+
+    @Override
+    protected TargetedPcrMetricsCollector makeCollector(final Set<MetricAccumulationLevel> accumulationLevels,
+                                                        final List<SAMReadGroupRecord> samRgRecords,
+                                                        final ReferenceSequenceFile refFile,
+                                                        final File perTargetCoverage,
+                                                        final IntervalList targetIntervals,
+                                                        final IntervalList probeIntervals,
+                                                        final String probeSetName) {
+        return new TargetedPcrMetricsCollector(accumulationLevels, samRgRecords, refFile, perTargetCoverage, targetIntervals, probeIntervals, probeSetName);
+    }
+}
diff --git a/src/java/picard/analysis/directed/GcBiasMetricsCollector.java b/src/java/picard/analysis/directed/GcBiasMetricsCollector.java
new file mode 100644
index 0000000..c8cb08e
--- /dev/null
+++ b/src/java/picard/analysis/directed/GcBiasMetricsCollector.java
@@ -0,0 +1,298 @@
+package picard.analysis.directed;
+
+import htsjdk.samtools.SAMReadGroupRecord;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.metrics.MetricsFile;
+import htsjdk.samtools.reference.ReferenceSequence;
+import htsjdk.samtools.util.QualityUtil;
+import htsjdk.samtools.util.SequenceUtil;
+import picard.analysis.GcBiasDetailMetrics;
+import picard.analysis.GcBiasSummaryMetrics;
+import picard.metrics.GcBiasMetrics;
+import picard.analysis.MetricAccumulationLevel;
+import picard.metrics.MultiLevelCollector;
+import picard.metrics.PerUnitMetricCollector;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.HashMap;
+
+/** Calculates GC Bias Metrics on multiple levels
+ * Created by kbergin on 3/23/15.
+ */
+public class GcBiasMetricsCollector extends MultiLevelCollector<GcBiasMetrics, Integer, GcBiasCollectorArgs> {
+    // Histograms to track the number of windows at each GC, and the number of read starts
+    // at windows of each GC. Need 101 to get from 0-100.
+    private final int windowSize;
+    private final boolean bisulfite;
+    private final Map<String, byte[]> gcByRef;
+    private int[] windowsByGc = new int[WINDOWS];
+    private static final int WINDOWS = 101;
+
+    public GcBiasMetricsCollector(final Set<MetricAccumulationLevel> accumulationLevels, final Map<String, byte[]> gcByRef, final int[] windowsByGc, final List<SAMReadGroupRecord> samRgRecords, final int windowSize, final boolean bisulfite) {
+        this.windowSize = windowSize;
+        this.bisulfite = bisulfite;
+        this.gcByRef = gcByRef;
+        this.windowsByGc = windowsByGc;
+        setup(accumulationLevels, samRgRecords);
+    }
+    /////////////////////////////////////////////////////////////////////////////
+    // This method is called once Per samRecord
+    /////////////////////////////////////////////////////////////////////////////
+    @Override
+    protected GcBiasCollectorArgs makeArg(final SAMRecord rec, final ReferenceSequence ref) {
+        return new GcBiasCollectorArgs(rec, ref);
+    }
+
+    /////////////////////////////////////////////////////////////////////////////
+    //Make a GcBiasCollector with the given arguments
+    /////////////////////////////////////////////////////////////////////////////
+    @Override
+    protected PerUnitMetricCollector<GcBiasMetrics, Integer, GcBiasCollectorArgs> makeChildCollector(final String sample, final String library, final String readGroup) {
+        return new PerUnitGcBiasMetricsCollector(sample, library, readGroup);
+    }
+
+    @Override
+    public void acceptRecord(final SAMRecord rec, final ReferenceSequence ref) {super.acceptRecord(rec, ref);}
+
+    /////////////////////////////////////////////////////////////////////////////
+    //A collector for individual GcBiasMetrics for a given SAMPLE or SAMPLE/LIBRARY
+    //or SAMPLE/LIBRARY/READ_GROUP (depending on aggregation levels)
+    /////////////////////////////////////////////////////////////////////////////
+    public class PerUnitGcBiasMetricsCollector implements PerUnitMetricCollector<GcBiasMetrics, Integer, GcBiasCollectorArgs> {
+        Map<String, GcObject> gcData = new HashMap<String, GcObject>();
+        private String sample = null;
+        private String library = null;
+        private String readGroup = null;
+        private static final String allReads = "All_Reads";
+
+        /////////////////////////////////////////////////////////////////////////////
+        //Records the accumulation level for each level of collection and initializes
+        // a GcObject for this accumulation level
+        /////////////////////////////////////////////////////////////////////////////
+        public PerUnitGcBiasMetricsCollector(final String sample, final String library, final String readGroup) {
+            this.sample = sample;
+            this.library = library;
+            this.readGroup = readGroup;
+            final String prefix;
+            if (this.readGroup != null) {
+                prefix = this.readGroup;
+                gcData.put(prefix, new GcObject());
+            } else if (this.library != null) {
+                prefix = this.library;
+                gcData.put(prefix, new GcObject());
+            } else if (this.sample != null) {
+                prefix = this.sample;
+                gcData.put(prefix, new GcObject());
+            } else {
+                prefix = allReads;
+                gcData.put(prefix, new GcObject());
+            }
+        }
+
+        /////////////////////////////////////////////////////////////////////////////
+        //Takes each record and sends them to addRead to calculate gc metrics for
+        // that read for each accumulation level
+        /////////////////////////////////////////////////////////////////////////////
+        public void acceptRecord(final GcBiasCollectorArgs args) {
+            final SAMRecord rec = args.getRec();
+            final String type;
+            if (!rec.getReadUnmappedFlag()) {
+                final ReferenceSequence ref = args.getRef();
+                final byte[] refBases = ref.getBases();
+                final String refName = ref.getName();
+                final byte[] gc = gcByRef.get(refName);
+                final String group;
+                if (this.readGroup != null) {
+                    type = this.readGroup;
+                    group = "Read Group";
+                    addRead(gcData.get(type), rec, group, gc, refBases);
+                } else if (this.library != null) {
+                    type = this.library;
+                    group = "Library";
+                    addRead(gcData.get(type), rec, group, gc, refBases);
+                } else if (this.sample != null) {
+                    type = this.sample;
+                    group = "Sample";
+                    addRead(gcData.get(type), rec, group, gc, refBases);
+                } else {
+                    type = allReads;
+                    group = "All Reads";
+                    addRead(gcData.get(type), rec, group, gc, refBases);
+                }
+            }
+            else {
+                for (final Map.Entry<String, GcObject> entry : gcData.entrySet()) {
+                    final GcObject gcCur = entry.getValue();
+                    if (!rec.getReadPairedFlag() || rec.getFirstOfPairFlag()) ++gcCur.totalClusters;
+                }
+            }
+        }
+
+        public void finish() {}
+
+        /////////////////////////////////////////////////////////////////////////////
+        // Sums the values in an int[].
+        /////////////////////////////////////////////////////////////////////////////
+        private double sum(final int[] values) {
+            final int length = values.length;
+            double total = 0;
+            for (int i = 0; i < length; i++) {
+                total += values[i];
+            }
+
+            return total;
+        }
+
+        /////////////////////////////////////////////////////////////////////////////
+        //Called to add metrics to the output file for each level of collection
+        // these metrics are used for graphing gc bias in R script
+        /////////////////////////////////////////////////////////////////////////////
+        public void addMetricsToFile(final MetricsFile<GcBiasMetrics, Integer> file) {
+            for (final Map.Entry<String, GcObject> entry : gcData.entrySet()) {
+                final GcObject gcCur = entry.getValue();
+                final String gcType = entry.getKey();
+
+                final int[] readsByGc = gcCur.readsByGc;
+                final long[] errorsByGc = gcCur.errorsByGc;
+                final long[] basesByGc = gcCur.basesByGc;
+                final int totalClusters = gcCur.totalClusters;
+                final int totalAlignedReads = gcCur.totalAlignedReads;
+                final String group = gcCur.group;
+
+                final GcBiasMetrics metrics = new GcBiasMetrics();
+
+                final double totalWindows = sum(windowsByGc);
+                final double totalReads = sum(readsByGc);
+                final double meanReadsPerWindow = totalReads / totalWindows;
+
+                if (totalAlignedReads > 0) {
+                    for (int i = 0; i < windowsByGc.length; ++i) {
+                        final GcBiasDetailMetrics detail = new GcBiasDetailMetrics();
+                        detail.GC = i;
+                        detail.WINDOWS = windowsByGc[i];
+                        detail.READ_STARTS = readsByGc[i];
+                        if (errorsByGc[i] > 0) detail.MEAN_BASE_QUALITY = QualityUtil.getPhredScoreFromObsAndErrors(basesByGc[i], errorsByGc[i]);
+                        if (windowsByGc[i] != 0) {
+                            detail.NORMALIZED_COVERAGE = (detail.READ_STARTS / (double) detail.WINDOWS) / meanReadsPerWindow;
+                            detail.ERROR_BAR_WIDTH = (Math.sqrt(detail.READ_STARTS) / (double) detail.WINDOWS) / meanReadsPerWindow;
+                        }
+                        else{
+                            detail.NORMALIZED_COVERAGE = 0;
+                            detail.ERROR_BAR_WIDTH = 0;
+                        }
+                        detail.ACCUMULATION_LEVEL = group;
+                        if (group.equals("Read Group")) {
+                            detail.READ_GROUP = gcType;}
+                        else if (group.equals("Sample")) {
+                            detail.SAMPLE = gcType;}
+                        else if (group.equals("Library")) {
+                            detail.LIBRARY = gcType;}
+                        metrics.DETAILS.addMetric(detail);
+                    }
+
+                    // Synthesize the high level summary metrics
+                    final GcBiasSummaryMetrics summary = new GcBiasSummaryMetrics();
+                    if (group.equals("Read Group")) {summary.READ_GROUP = gcType;}
+                    else if (group.equals("Sample")) {summary.SAMPLE = gcType;}
+                    else if (group.equals("Library")) {summary.LIBRARY = gcType;}
+
+                    summary.ACCUMULATION_LEVEL = group;
+                    summary.WINDOW_SIZE = windowSize;
+                    summary.TOTAL_CLUSTERS = totalClusters;
+                    summary.ALIGNED_READS = totalAlignedReads;
+
+                    calculateDropoutMetrics(metrics.DETAILS.getMetrics(), summary);
+
+                    metrics.SUMMARY = summary;
+
+                    file.addMetric(metrics);
+                }
+            }
+        }
+    }
+
+    /////////////////////////////////////////////////////////////////////////////
+    // Calculates the Illumina style AT and GC dropout numbers
+    /////////////////////////////////////////////////////////////////////////////
+    private void calculateDropoutMetrics(final Collection<GcBiasDetailMetrics> details,
+                                         final GcBiasSummaryMetrics summary) {
+        // First calculate the totals
+        double totalReads = 0;
+        double totalWindows = 0;
+
+        for (final GcBiasDetailMetrics detail : details) {
+            totalReads += detail.READ_STARTS;
+            totalWindows += detail.WINDOWS;
+        }
+
+        double atDropout = 0;
+        double gcDropout = 0;
+
+        for (final GcBiasDetailMetrics detail : details) {
+            final double relativeReads = detail.READ_STARTS / totalReads;
+            final double relativeWindows = detail.WINDOWS / totalWindows;
+            final double dropout = (relativeWindows - relativeReads) * 100;
+
+            if (dropout > 0) {
+                if (detail.GC <= 50) atDropout += dropout;
+                else{ gcDropout += dropout; }
+            }
+        }
+
+        summary.AT_DROPOUT = atDropout;
+        summary.GC_DROPOUT = gcDropout;
+    }
+
+    /////////////////////////////////////////////////////////////////////////////
+    //Keeps track of each level of GcCalculation
+    /////////////////////////////////////////////////////////////////////////////
+    class GcObject{
+        int totalClusters = 0;
+        int totalAlignedReads = 0;
+        int[] readsByGc = new int[WINDOWS];
+        long[] basesByGc = new long[WINDOWS];
+        long[] errorsByGc = new long[WINDOWS];
+        String group = null;
+    }
+
+    /////////////////////////////////////////////////////////////////////////////
+    //Adds each read to the appropriate gcObj which is determined in acceptRecord above
+    //Also calculates values for calculating GC Bias at each level
+    /////////////////////////////////////////////////////////////////////////////
+     private void addRead(final GcObject gcObj, final SAMRecord rec, final String group, final byte[] gc, final byte[] refBases) {
+        if (!rec.getReadPairedFlag() || rec.getFirstOfPairFlag()) ++gcObj.totalClusters;
+        final int pos = rec.getReadNegativeStrandFlag() ? rec.getAlignmentEnd() - windowSize : rec.getAlignmentStart();
+        ++gcObj.totalAlignedReads;
+        if (pos > 0) {
+            final int windowGc = gc[pos];
+            if (windowGc >= 0) {
+                ++gcObj.readsByGc[windowGc];
+                gcObj.basesByGc[windowGc] += rec.getReadLength();
+                gcObj.errorsByGc[windowGc] +=
+                        SequenceUtil.countMismatches(rec, refBases, bisulfite) +
+                                SequenceUtil.countInsertedBases(rec) + SequenceUtil.countDeletedBases(rec);
+            }
+        }
+        if (gcObj.group == null) {
+            gcObj.group = group;
+        }
+    }
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// Arguments that need to be passed to each PerUnitMetricCollector
+// for the given record
+/////////////////////////////////////////////////////////////////////////////
+class GcBiasCollectorArgs {
+    private final SAMRecord rec;
+    private final ReferenceSequence ref;
+    public SAMRecord getRec() {return rec;}
+    public ReferenceSequence getRef() {return ref;}
+    public GcBiasCollectorArgs(final SAMRecord rec, final ReferenceSequence ref) {
+        this.rec = rec;
+        this.ref = ref;
+    }
+}
diff --git a/src/java/picard/analysis/directed/HsMetricCollector.java b/src/java/picard/analysis/directed/HsMetricCollector.java
new file mode 100644
index 0000000..23ae6e7
--- /dev/null
+++ b/src/java/picard/analysis/directed/HsMetricCollector.java
@@ -0,0 +1,124 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.analysis.directed;
+
+import htsjdk.samtools.SAMReadGroupRecord;
+import htsjdk.samtools.reference.ReferenceSequenceFile;
+import htsjdk.samtools.util.IntervalList;
+import picard.analysis.MetricAccumulationLevel;
+import picard.sam.DuplicationMetrics;
+
+import java.io.File;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Calculates HS metrics for a given SAM or BAM file. Requires the input of a list of
+ * target intervals and a list of bait intervals. Can be invoked either on an entire
+ * iterator of SAMRecords or be passed SAMRecords one at a time.
+ *
+ * @author Jonathan Burke
+ */
+public class HsMetricCollector extends TargetMetricsCollector<HsMetrics> {
+
+    public HsMetricCollector(final Set<MetricAccumulationLevel> accumulationLevels, final List<SAMReadGroupRecord> samRgRecords, final ReferenceSequenceFile refFile, final File perTargetCoverage, final IntervalList targetIntervals, final IntervalList probeIntervals, final String probeSetName) {
+        super(accumulationLevels, samRgRecords, refFile, perTargetCoverage, targetIntervals, probeIntervals, probeSetName);
+    }
+
+    @Override
+    public HsMetrics convertMetric(final TargetMetrics targetMetrics) {
+        final HsMetrics hsMetrics = new HsMetrics();
+        TargetMetricsCollector.reflectiveCopy(targetMetrics, hsMetrics,
+                new String[]{"PROBE_SET", "PROBE_TERRITORY", "ON_PROBE_BASES", "NEAR_PROBE_BASES", "OFF_PROBE_BASES", "PCT_OFF_PROBE", "ON_PROBE_VS_SELECTED", "MEAN_PROBE_COVERAGE"},
+                new String[]{"BAIT_SET",  "BAIT_TERRITORY",  "ON_BAIT_BASES",  "NEAR_BAIT_BASES",  "OFF_BAIT_BASES",  "PCT_OFF_BAIT",  "ON_BAIT_VS_SELECTED",  "MEAN_BAIT_COVERAGE"}
+        );
+
+        hsMetrics.BAIT_DESIGN_EFFICIENCY = (double) hsMetrics.TARGET_TERRITORY / (double) hsMetrics.BAIT_TERRITORY;
+        hsMetrics.PCT_USABLE_BASES_ON_BAIT   = hsMetrics.ON_BAIT_BASES   / (double) targetMetrics.PF_BASES;
+        hsMetrics.PCT_USABLE_BASES_ON_TARGET = hsMetrics.ON_TARGET_BASES / (double) targetMetrics.PF_BASES;
+        hsMetrics.HS_LIBRARY_SIZE = DuplicationMetrics.estimateLibrarySize(targetMetrics.PF_SELECTED_PAIRS, targetMetrics.PF_SELECTED_UNIQUE_PAIRS);
+
+        //need HSLIBRARY_SIZE
+        hsMetrics.HS_PENALTY_10X = calculateHsPenalty(hsMetrics.HS_LIBRARY_SIZE, targetMetrics, 10);
+        hsMetrics.HS_PENALTY_20X = calculateHsPenalty(hsMetrics.HS_LIBRARY_SIZE, targetMetrics, 20);
+	    hsMetrics.HS_PENALTY_30X = calculateHsPenalty(hsMetrics.HS_LIBRARY_SIZE, targetMetrics, 30);
+	    hsMetrics.HS_PENALTY_40X = calculateHsPenalty(hsMetrics.HS_LIBRARY_SIZE, targetMetrics, 40);
+	    hsMetrics.HS_PENALTY_50X = calculateHsPenalty(hsMetrics.HS_LIBRARY_SIZE, targetMetrics, 50);
+	    hsMetrics.HS_PENALTY_100X = calculateHsPenalty(hsMetrics.HS_LIBRARY_SIZE, targetMetrics, 100);
+        return hsMetrics;
+    }
+
+    /**
+     * Attempts to calculate the HS penalty incurred by the library in order to get 80%
+     * of target bases (in non-zero-covered targets) to a specific target coverage (e.g. 20X).
+     *
+     * @param coverageGoal the desired coverage target (e.g. 20X)
+     * @return the hs penalty - a multiplier that tells if you want, e.g. 20X coverage, then you will
+     *         need to produce this many PF aligned bases per target bases in your design!
+     */
+    private double calculateHsPenalty(final Long librarySize, final TargetMetrics targetMetrics, final int coverageGoal) {
+        if (librarySize == null) return 0;
+
+        final double meanCoverage  = targetMetrics.ON_TARGET_FROM_PAIR_BASES / (double) targetMetrics.TARGET_TERRITORY;
+        final double fold80        = targetMetrics.FOLD_80_BASE_PENALTY;
+        final long pairs           = targetMetrics.PF_SELECTED_PAIRS;
+        final long uniquePairs     = targetMetrics.PF_SELECTED_UNIQUE_PAIRS;
+        final double onTargetPct   = (double) targetMetrics.ON_TARGET_BASES / (double) targetMetrics.PF_UQ_BASES_ALIGNED;
+
+        final double uniquePairGoalMultiplier = (coverageGoal / meanCoverage) * fold80;
+        double pairMultiplier = uniquePairGoalMultiplier;
+        double increment = 1;
+        boolean goingUp = uniquePairGoalMultiplier >= 1;
+        double finalPairMultiplier = -1;
+
+        // Converge "pairMultiplier" to the number that gives us a uniquePairMultiplier equal
+        // to the coverage multiplier we desire.  If we can't get there with 1000X coverage,
+        // we're not going to get there!
+        for (int i=0; i<10000; ++i) {
+            final double uniquePairMultiplier = DuplicationMetrics.estimateRoi(librarySize, pairMultiplier, pairs, uniquePairs);
+
+            if (Math.abs(uniquePairMultiplier - uniquePairGoalMultiplier) / uniquePairGoalMultiplier <= 0.001) {
+                finalPairMultiplier  = pairMultiplier;
+                break;
+            }
+            else if ((uniquePairMultiplier > uniquePairGoalMultiplier && goingUp) ||
+                    (uniquePairMultiplier < uniquePairGoalMultiplier && !goingUp)){
+                increment /= 2;
+                goingUp = !goingUp;
+            }
+
+            pairMultiplier += (goingUp ? increment : -increment);
+        }
+
+        if (finalPairMultiplier == -1) {
+            return -1;
+        }
+        else {
+            final double uniqueFraction = (uniquePairs * uniquePairGoalMultiplier) / (pairs * finalPairMultiplier);
+            return (1 / uniqueFraction) * fold80 * (1 / onTargetPct);
+        }
+    }
+
+}
diff --git a/src/java/picard/analysis/directed/HsMetrics.java b/src/java/picard/analysis/directed/HsMetrics.java
new file mode 100644
index 0000000..c08391e
--- /dev/null
+++ b/src/java/picard/analysis/directed/HsMetrics.java
@@ -0,0 +1,194 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.analysis.directed;
+
+import picard.metrics.MultilevelMetrics;
+
+/**
+ * The set of metrics captured that are specific to a hybrid selection analysis.
+ *
+ * @author Tim Fennell
+ */
+public class HsMetrics extends MultilevelMetrics {
+    /** The name of the bait set used in the hybrid selection. */
+    public String BAIT_SET;
+
+    /** The number of bases in the reference genome used for alignment. */
+    public long GENOME_SIZE;
+
+    /** The number of bases which have one or more baits on top of them. */
+    public long BAIT_TERRITORY;
+
+    /** The unique number of target bases in the experiment where target is usually exons etc. */
+    public long TARGET_TERRITORY;
+
+    /** Target terrirtoy / bait territory.  1 == perfectly efficient, 0.5 = half of baited bases are not target. */
+    public double BAIT_DESIGN_EFFICIENCY;
+
+    /** The total number of reads in the SAM or BAM file examine. */
+    public long TOTAL_READS;
+
+    /** The number of reads that pass the vendor's filter. */
+    public long PF_READS;
+
+    /** The number of PF reads that are not marked as duplicates. */
+    public long PF_UNIQUE_READS;
+
+    /** PF reads / total reads.  The percent of reads passing filter. */
+    public double PCT_PF_READS;
+
+    /** PF Unique Reads / Total Reads. */
+    public double PCT_PF_UQ_READS;
+
+    /** The number of PF unique reads that are aligned with mapping score > 0 to the reference genome. */
+    public long PF_UQ_READS_ALIGNED;
+
+    /** PF Reads Aligned / PF Reads. */
+    public double PCT_PF_UQ_READS_ALIGNED;
+
+    /** The number of bases in the PF aligned reads that are mapped to a reference base. Accounts for clipping and gaps. */
+    public long PF_UQ_BASES_ALIGNED;
+
+    /** The number of PF aligned bases that mapped to a baited region of the genome. */
+    public long ON_BAIT_BASES;
+
+    /** The number of PF aligned bases that mapped to within a fixed interval of a baited region, but not on a baited region. */
+    public long NEAR_BAIT_BASES;
+
+    /** The number of PF aligned bases that mapped to neither on or near a bait. */
+    public long OFF_BAIT_BASES;
+
+    /** The number of PF aligned bases that mapped to a targeted region of the genome. */
+    public long ON_TARGET_BASES;
+
+    /** On+Near Bait Bases / PF Bases Aligned. */
+    public double PCT_SELECTED_BASES;
+
+    /** The percentage of aligned PF bases that mapped neither on or near a bait. */
+    public double PCT_OFF_BAIT;
+
+    /** The percentage of on+near bait bases that are on as opposed to near. */
+    public double ON_BAIT_VS_SELECTED;
+
+    /** The mean coverage of all baits in the experiment. */
+    public double MEAN_BAIT_COVERAGE;
+
+    /** The mean coverage of targets that received at least coverage depth = 2 at one base. */
+    public double MEAN_TARGET_COVERAGE;
+
+    /** The number of aligned, de-duped, on-bait bases out of the PF bases available. */
+    public double PCT_USABLE_BASES_ON_BAIT;
+
+    /** The number of aligned, de-duped, on-target bases out of the PF bases available. */
+    public double PCT_USABLE_BASES_ON_TARGET;
+
+    /** The fold by which the baited region has been amplified above genomic background. */
+    public double FOLD_ENRICHMENT;
+
+    /** The number of targets that did not reach coverage=2 over any base. */
+    public double ZERO_CVG_TARGETS_PCT;
+
+    /**
+     * The fold over-coverage necessary to raise 80% of bases in "non-zero-cvg" targets to
+     * the mean coverage level in those targets.
+     */
+    public double FOLD_80_BASE_PENALTY;
+
+    /** The percentage of ALL target bases achieving 2X or greater coverage. */
+    public double PCT_TARGET_BASES_2X;
+    /** The percentage of ALL target bases achieving 10X or greater coverage. */
+    public double PCT_TARGET_BASES_10X;
+    /** The percentage of ALL target bases achieving 20X or greater coverage. */
+    public double PCT_TARGET_BASES_20X;
+	/** The percentage of ALL target bases achieving 30X or greater coverage. */
+	public double PCT_TARGET_BASES_30X;
+	/** The percentage of ALL target bases achieving 40X or greater coverage. */
+	public double PCT_TARGET_BASES_40X;
+	/** The percentage of ALL target bases achieving 50X or greater coverage. */
+	public double PCT_TARGET_BASES_50X;
+	/** The percentage of ALL target bases achieving 100X or greater coverage. */
+	public double PCT_TARGET_BASES_100X;
+
+    /** The estimated number of unique molecules in the selected part of the library. */
+    public Long HS_LIBRARY_SIZE;
+
+    /**
+     * The "hybrid selection penalty" incurred to get 80% of target bases to 10X. This metric
+     * should be interpreted as: if I have a design with 10 megabases of target, and want to get
+     * 10X coverage I need to sequence until PF_ALIGNED_BASES = 10^7 * 10 * HS_PENALTY_10X.
+     */
+    public double HS_PENALTY_10X;
+
+    /**
+     * The "hybrid selection penalty" incurred to get 80% of target bases to 20X. This metric
+     * should be interpreted as: if I have a design with 10 megabases of target, and want to get
+     * 20X coverage I need to sequence until PF_ALIGNED_BASES = 10^7 * 20 * HS_PENALTY_20X.
+     */
+    public double HS_PENALTY_20X;
+
+	/**
+	 * The "hybrid selection penalty" incurred to get 80% of target bases to 30X. This metric
+	 * should be interpreted as: if I have a design with 10 megabases of target, and want to get
+	 * 30X coverage I need to sequence until PF_ALIGNED_BASES = 10^7 * 30 * HS_PENALTY_30X.
+	 */
+	public double HS_PENALTY_30X;
+
+	/**
+	 * The "hybrid selection penalty" incurred to get 80% of target bases to 40X. This metric
+	 * should be interpreted as: if I have a design with 10 megabases of target, and want to get
+	 * 40X coverage I need to sequence until PF_ALIGNED_BASES = 10^7 * 40 * HS_PENALTY_40X.
+	 */
+	public double HS_PENALTY_40X;
+
+	/**
+	 * The "hybrid selection penalty" incurred to get 80% of target bases to 50X. This metric
+	 * should be interpreted as: if I have a design with 10 megabases of target, and want to get
+	 * 50X coverage I need to sequence until PF_ALIGNED_BASES = 10^7 * 50 * HS_PENALTY_50X.
+	 */
+	public double HS_PENALTY_50X;
+
+	/**
+	 * The "hybrid selection penalty" incurred to get 80% of target bases to 100X. This metric
+	 * should be interpreted as: if I have a design with 10 megabases of target, and want to get
+	 * 100X coverage I need to sequence until PF_ALIGNED_BASES = 10^7 * 100 * HS_PENALTY_100X.
+	 */
+	public double HS_PENALTY_100X;
+
+    /**
+     * A measure of how undercovered <= 50% GC regions are relative to the mean. For each GC bin [0..50]
+     * we calculate a = % of target territory, and b = % of aligned reads aligned to these targets.
+     * AT DROPOUT is then abs(sum(a-b when a-b < 0)). E.g. if the value is 5% this implies that 5% of total
+     * reads that should have mapped to GC<=50% regions mapped elsewhere.
+     */
+    public double AT_DROPOUT;
+
+    /**
+     * A measure of how undercovered >= 50% GC regions are relative to the mean. For each GC bin [50..100]
+     * we calculate a = % of target territory, and b = % of aligned reads aligned to these targets.
+     * GC DROPOUT is then abs(sum(a-b when a-b < 0)). E.g. if the value is 5% this implies that 5% of total
+     * reads that should have mapped to GC>=50% regions mapped elsewhere.
+     */
+    public double GC_DROPOUT;
+}
diff --git a/src/java/picard/analysis/directed/InsertSizeMetricsCollector.java b/src/java/picard/analysis/directed/InsertSizeMetricsCollector.java
new file mode 100644
index 0000000..27de45d
--- /dev/null
+++ b/src/java/picard/analysis/directed/InsertSizeMetricsCollector.java
@@ -0,0 +1,212 @@
+package picard.analysis.directed;
+
+import htsjdk.samtools.SAMReadGroupRecord;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SamPairUtil;
+import htsjdk.samtools.metrics.MetricsFile;
+import htsjdk.samtools.reference.ReferenceSequence;
+import htsjdk.samtools.util.Histogram;
+import picard.analysis.InsertSizeMetrics;
+import picard.analysis.MetricAccumulationLevel;
+import picard.metrics.MultiLevelCollector;
+import picard.metrics.PerUnitMetricCollector;
+
+import java.util.EnumMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * Collects InserSizeMetrics on the specified accumulationLevels using
+ */
+public class InsertSizeMetricsCollector extends MultiLevelCollector<InsertSizeMetrics, Integer, InsertSizeCollectorArgs> {
+    // When generating the Histogram, discard any data categories (out of FR, TANDEM, RF) that have fewer than this
+    // percentage of overall reads. (Range: 0 to 1)
+    private final double minimumPct;
+
+    // Generate mean, sd and plots by trimming the data down to MEDIAN + DEVIATIONS*MEDIAN_ABSOLUTE_DEVIATION.
+    // This is done because insert size data typically includes enough anomolous values from chimeras and other
+    // artifacts to make the mean and sd grossly misleading regarding the real distribution.
+    private final double deviations;
+
+    //Explicitly sets the Histogram width, overriding automatic truncation of Histogram tail.
+    //Also, when calculating mean and stdev, only bins <= Histogram_WIDTH will be included.
+    private final Integer histogramWidth;
+
+    public InsertSizeMetricsCollector(final Set<MetricAccumulationLevel> accumulationLevels, final List<SAMReadGroupRecord> samRgRecords,
+                                      final double minimumPct, final Integer HistogramWidth, final double deviations) {
+        this.minimumPct = minimumPct;
+        this.histogramWidth = HistogramWidth;
+        this.deviations = deviations;
+        setup(accumulationLevels, samRgRecords);
+    }
+
+    // We will pass insertSize and PairOrientation with the DefaultPerRecordCollectorArgs passed to the record collectors
+    // This method is called once Per samRecord
+    @Override
+    protected InsertSizeCollectorArgs makeArg(SAMRecord samRecord, ReferenceSequence refSeq) {
+        final int insertSize = Math.abs(samRecord.getInferredInsertSize());
+        final SamPairUtil.PairOrientation orientation = SamPairUtil.getPairOrientation(samRecord);
+
+        return new InsertSizeCollectorArgs(insertSize, orientation);
+    }
+
+    /** Make an InsertSizeCollector with the given arguments */
+    @Override
+    protected PerUnitMetricCollector<InsertSizeMetrics, Integer, InsertSizeCollectorArgs> makeChildCollector(final String sample, final String library, final String readGroup) {
+        return new PerUnitInsertSizeMetricsCollector(sample, library, readGroup);
+    }
+
+    @Override
+    public void acceptRecord(final SAMRecord record, final ReferenceSequence refSeq) {
+        if (!record.getReadPairedFlag() ||
+                record.getReadUnmappedFlag() ||
+                record.getMateUnmappedFlag() ||
+                record.getFirstOfPairFlag() ||
+                record.isSecondaryOrSupplementary() ||
+                record.getDuplicateReadFlag() ||
+                record.getInferredInsertSize() == 0) {
+            return;
+        }
+
+        super.acceptRecord(record, refSeq);
+    }
+
+    /** A Collector for individual InsertSizeMetrics for a given SAMPLE or SAMPLE/LIBRARY or SAMPLE/LIBRARY/READ_GROUP (depending on aggregation levels) */
+    public class PerUnitInsertSizeMetricsCollector implements PerUnitMetricCollector<InsertSizeMetrics, Integer, InsertSizeCollectorArgs> {
+        final EnumMap<SamPairUtil.PairOrientation, Histogram<Integer>> Histograms = new EnumMap<SamPairUtil.PairOrientation, Histogram<Integer>>(SamPairUtil.PairOrientation.class);
+        final String sample;
+        final String library;
+        final String readGroup;
+        private double totalInserts = 0;
+
+        public PerUnitInsertSizeMetricsCollector(final String sample, final String library, final String readGroup) {
+            this.sample = sample;
+            this.library = library;
+            this.readGroup = readGroup;
+            String prefix = null;
+            if (this.readGroup != null) {
+                prefix = this.readGroup + ".";
+            }
+            else if (this.library != null) {
+                prefix = this.library + ".";
+            }
+            else if (this.sample != null) {
+                prefix = this.sample + ".";
+            }
+            else {
+                prefix = "All_Reads.";
+            }
+            Histograms.put(SamPairUtil.PairOrientation.FR,     new Histogram<Integer>("insert_size", prefix + "fr_count"));
+            Histograms.put(SamPairUtil.PairOrientation.TANDEM, new Histogram<Integer>("insert_size", prefix + "tandem_count"));
+            Histograms.put(SamPairUtil.PairOrientation.RF,     new Histogram<Integer>("insert_size", prefix + "rf_count"));
+        }
+
+        public void acceptRecord(final InsertSizeCollectorArgs args) {
+            Histograms.get(args.getPairOrientation()).increment(args.getInsertSize());
+        }
+
+        public void finish() { }
+
+        public double getTotalInserts() {
+            return totalInserts;
+        }
+
+        public void addMetricsToFile(final MetricsFile<InsertSizeMetrics,Integer> file) {
+            for (final Histogram<Integer> h : this.Histograms.values()) totalInserts += h.getCount();
+
+            for(final Map.Entry<SamPairUtil.PairOrientation, Histogram<Integer>> entry : Histograms.entrySet()) {
+                final SamPairUtil.PairOrientation pairOrientation = entry.getKey();
+                final Histogram<Integer> Histogram = entry.getValue();
+                final double total = Histogram.getCount();
+
+                // Only include a category if it has a sufficient percentage of the data in it
+                if( total > totalInserts * minimumPct ) {
+                    final InsertSizeMetrics metrics = new InsertSizeMetrics();
+                    metrics.SAMPLE             = this.sample;
+                    metrics.LIBRARY            = this.library;
+                    metrics.READ_GROUP         = this.readGroup;
+                    metrics.PAIR_ORIENTATION   = pairOrientation;
+                    metrics.READ_PAIRS         = (long) total;
+                    metrics.MAX_INSERT_SIZE    = (int) Histogram.getMax();
+                    metrics.MIN_INSERT_SIZE    = (int) Histogram.getMin();
+                    metrics.MEDIAN_INSERT_SIZE = Histogram.getMedian();
+                    metrics.MEDIAN_ABSOLUTE_DEVIATION = Histogram.getMedianAbsoluteDeviation();
+
+                    final double median  = Histogram.getMedian();
+                    double covered = 0;
+                    double low  = median;
+                    double high = median;
+
+                    while (low >= Histogram.getMin() || high <= Histogram.getMax()) {
+                        final Histogram<Integer>.Bin lowBin = Histogram.get((int) low);
+                        if (lowBin != null) covered += lowBin.getValue();
+
+                        if (low != high) {
+                            final Histogram<Integer>.Bin highBin = Histogram.get((int) high);
+                            if (highBin != null) covered += highBin.getValue();
+                        }
+
+                        final double percentCovered = covered / total;
+                        final int distance = (int) (high - low) + 1;
+                        if (percentCovered >= 0.1  && metrics.WIDTH_OF_10_PERCENT == 0) metrics.WIDTH_OF_10_PERCENT = distance;
+                        if (percentCovered >= 0.2  && metrics.WIDTH_OF_20_PERCENT == 0) metrics.WIDTH_OF_20_PERCENT = distance;
+                        if (percentCovered >= 0.3  && metrics.WIDTH_OF_30_PERCENT == 0) metrics.WIDTH_OF_30_PERCENT = distance;
+                        if (percentCovered >= 0.4  && metrics.WIDTH_OF_40_PERCENT == 0) metrics.WIDTH_OF_40_PERCENT = distance;
+                        if (percentCovered >= 0.5  && metrics.WIDTH_OF_50_PERCENT == 0) metrics.WIDTH_OF_50_PERCENT = distance;
+                        if (percentCovered >= 0.6  && metrics.WIDTH_OF_60_PERCENT == 0) metrics.WIDTH_OF_60_PERCENT = distance;
+                        if (percentCovered >= 0.7  && metrics.WIDTH_OF_70_PERCENT == 0) metrics.WIDTH_OF_70_PERCENT = distance;
+                        if (percentCovered >= 0.8  && metrics.WIDTH_OF_80_PERCENT == 0) metrics.WIDTH_OF_80_PERCENT = distance;
+                        if (percentCovered >= 0.9  && metrics.WIDTH_OF_90_PERCENT == 0) metrics.WIDTH_OF_90_PERCENT = distance;
+                        if (percentCovered >= 0.99 && metrics.WIDTH_OF_99_PERCENT == 0) metrics.WIDTH_OF_99_PERCENT = distance;
+
+                        --low;
+                        ++high;
+                    }
+
+                    // Trim the Histogram down to get rid of outliers that would make the chart useless.
+                    final Histogram<Integer> trimmedHisto = Histogram; //alias it
+                    trimmedHisto.trimByWidth(getWidthToTrimTo(metrics));
+
+                    metrics.MEAN_INSERT_SIZE = trimmedHisto.getMean();
+                    metrics.STANDARD_DEVIATION = trimmedHisto.getStandardDeviation();
+
+                    file.addHistogram(trimmedHisto);
+                    file.addMetric(metrics);
+                }
+            }
+        }
+
+        /**
+         * @return {@link #histogramWidth} if it was specified in the constructor or a calculated width based on the stdev of the input metric and {@link #deviations}
+         */
+        private int getWidthToTrimTo(InsertSizeMetrics metrics) {
+            if (histogramWidth == null) {
+                return (int) (metrics.MEDIAN_INSERT_SIZE + (deviations * metrics.MEDIAN_ABSOLUTE_DEVIATION));
+            } else {
+                return histogramWidth;
+            }
+        }
+    }
+}
+
+// Arguments that need to be calculated once per SAMRecord that are then passed to each PerUnitMetricCollector
+// for the given record
+class InsertSizeCollectorArgs {
+    private final int insertSize;
+    private final SamPairUtil.PairOrientation po;
+
+
+    public int getInsertSize() {
+        return insertSize;
+    }
+
+    public SamPairUtil.PairOrientation getPairOrientation() {
+        return po;
+    }
+
+    public InsertSizeCollectorArgs(final int insertSize, final SamPairUtil.PairOrientation po) {
+        this.insertSize = insertSize;
+        this.po = po;
+    }
+}
diff --git a/src/java/picard/analysis/directed/RnaSeqMetricsCollector.java b/src/java/picard/analysis/directed/RnaSeqMetricsCollector.java
new file mode 100644
index 0000000..d6ab4f1
--- /dev/null
+++ b/src/java/picard/analysis/directed/RnaSeqMetricsCollector.java
@@ -0,0 +1,413 @@
+package picard.analysis.directed;
+
+import htsjdk.samtools.AlignmentBlock;
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMReadGroupRecord;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SAMSequenceRecord;
+import htsjdk.samtools.metrics.MetricsFile;
+import htsjdk.samtools.util.CoordMath;
+import htsjdk.samtools.util.Histogram;
+import htsjdk.samtools.util.Interval;
+import htsjdk.samtools.util.IntervalList;
+import htsjdk.samtools.util.OverlapDetector;
+import htsjdk.samtools.util.SequenceUtil;
+import picard.PicardException;
+import picard.analysis.MetricAccumulationLevel;
+import picard.analysis.RnaSeqMetrics;
+import picard.annotation.Gene;
+import picard.annotation.LocusFunction;
+import picard.metrics.PerUnitMetricCollector;
+import picard.metrics.SAMRecordMultiLevelCollector;
+import picard.util.MathUtil;
+
+import java.io.File;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+public class RnaSeqMetricsCollector extends SAMRecordMultiLevelCollector<RnaSeqMetrics, Integer> {
+    public enum StrandSpecificity {NONE, FIRST_READ_TRANSCRIPTION_STRAND, SECOND_READ_TRANSCRIPTION_STRAND}
+
+    private final int minimumLength;
+    private final StrandSpecificity strandSpecificity;
+    private final double rrnaFragmentPercentage;
+    private final Long ribosomalInitialValue;
+
+    final private Set<Integer> ignoredSequenceIndices;
+
+    private final OverlapDetector<Gene> geneOverlapDetector;
+    private final OverlapDetector<Interval> ribosomalSequenceOverlapDetector;
+    private final boolean collectCoverageStatistics;
+    
+    public RnaSeqMetricsCollector(final Set<MetricAccumulationLevel> accumulationLevels, final List<SAMReadGroupRecord> samRgRecords,
+                                  final Long ribosomalBasesInitialValue, OverlapDetector<Gene> geneOverlapDetector, OverlapDetector<Interval> ribosomalSequenceOverlapDetector,
+                                  final HashSet<Integer> ignoredSequenceIndices, final int minimumLength, final StrandSpecificity strandSpecificity,
+                                  final double rrnaFragmentPercentage, boolean collectCoverageStatistics) {
+        this.ribosomalInitialValue  = ribosomalBasesInitialValue;
+        this.ignoredSequenceIndices = ignoredSequenceIndices;
+        this.geneOverlapDetector    = geneOverlapDetector;
+        this.ribosomalSequenceOverlapDetector = ribosomalSequenceOverlapDetector;
+        this.minimumLength          = minimumLength;
+        this.strandSpecificity      = strandSpecificity;
+        this.rrnaFragmentPercentage = rrnaFragmentPercentage;
+        this.collectCoverageStatistics = collectCoverageStatistics;
+        setup(accumulationLevels, samRgRecords);
+    }
+
+    @Override
+    protected PerUnitMetricCollector<RnaSeqMetrics, Integer, SAMRecord> makeChildCollector(final String sample, final String library, final String readGroup) {
+        return new PerUnitRnaSeqMetricsCollector(sample, library, readGroup, ribosomalInitialValue);
+    }
+
+    public static OverlapDetector<Interval> makeOverlapDetector(final File samFile, final SAMFileHeader header, final File ribosomalIntervalsFile) {
+
+        OverlapDetector<Interval> ribosomalSequenceOverlapDetector = new OverlapDetector<Interval>(0, 0);
+        if (ribosomalIntervalsFile != null) {
+
+            final IntervalList ribosomalIntervals = IntervalList.fromFile(ribosomalIntervalsFile);
+            try {
+                SequenceUtil.assertSequenceDictionariesEqual(header.getSequenceDictionary(), ribosomalIntervals.getHeader().getSequenceDictionary());
+            } catch (SequenceUtil.SequenceListsDifferException e) {
+                throw new PicardException("Sequence dictionaries differ in " + samFile.getAbsolutePath() + " and " + ribosomalIntervalsFile.getAbsolutePath(),
+                        e);
+            }
+            final IntervalList uniquedRibosomalIntervals = ribosomalIntervals.uniqued();
+            final List<Interval> intervals = uniquedRibosomalIntervals.getIntervals();
+            ribosomalSequenceOverlapDetector.addAll(intervals, intervals);
+        }
+        return ribosomalSequenceOverlapDetector;
+    }
+
+    public static HashSet<Integer> makeIgnoredSequenceIndicesSet(final SAMFileHeader header, final Set<String> ignoredSequence) {
+        final HashSet<Integer> ignoredSequenceIndices = new HashSet<Integer>();
+        for (final String sequenceName: ignoredSequence) {
+            final SAMSequenceRecord sequenceRecord = header.getSequence(sequenceName);
+            if (sequenceRecord == null) {
+                throw new PicardException("Unrecognized sequence " + sequenceName + " passed as argument to IGNORE_SEQUENCE");
+            }
+            ignoredSequenceIndices.add(sequenceRecord.getSequenceIndex());
+        }
+        return ignoredSequenceIndices;
+    }
+
+    private class PerUnitRnaSeqMetricsCollector implements PerUnitMetricCollector<RnaSeqMetrics, Integer, SAMRecord> {
+
+        final RnaSeqMetrics metrics = new RnaSeqMetrics();
+        
+        private final Map<Gene.Transcript, int[]> coverageByTranscript = new HashMap<Gene.Transcript, int[]>();
+
+        public PerUnitRnaSeqMetricsCollector(final String sample,
+                                             final String library,
+                                             final String readGroup,
+                                             final Long ribosomalBasesInitialValue) {
+            this.metrics.SAMPLE = sample;
+            this.metrics.LIBRARY = library;
+            this.metrics.READ_GROUP = readGroup;
+            this.metrics.RIBOSOMAL_BASES = ribosomalBasesInitialValue;
+            
+        }
+
+        public void acceptRecord(SAMRecord rec) {
+            // Filter out some reads, and collect the total number of PF bases
+            if (rec.getReadFailsVendorQualityCheckFlag() || rec.isSecondaryOrSupplementary()) return;
+
+            this.metrics.PF_BASES += rec.getReadLength();
+            if (rec.getReadUnmappedFlag()) return;
+
+            if (ignoredSequenceIndices.contains(rec.getReferenceIndex())) {
+                ++this.metrics.IGNORED_READS;
+                return;
+            }
+
+            // Grab information about the alignment and overlapping genes etc.
+            final Interval readInterval = new Interval(rec.getReferenceName(), rec.getAlignmentStart(), rec.getAlignmentEnd());
+
+            // Attempt to get an interval for the entire fragment (if paired read) else just use the read itself.
+            // If paired read is chimeric or has one end unmapped, don't create an interval.
+            final Interval fragmentInterval;
+            if (!rec.getReadPairedFlag()) {
+                fragmentInterval = readInterval;
+            } else if (rec.getMateUnmappedFlag() || rec.getReferenceIndex() != rec.getMateReferenceIndex()) {
+                fragmentInterval = null;
+            } else {
+                final int fragmentStart = Math.min(rec.getAlignmentStart(), rec.getMateAlignmentStart());
+                final int fragmentEnd = CoordMath.getEnd(fragmentStart, Math.abs(rec.getInferredInsertSize()));
+                fragmentInterval = new Interval(rec.getReferenceName(), fragmentStart, fragmentEnd);
+            }
+            if (fragmentInterval != null) {
+                final Collection<Interval> overlappingRibosomalIntervals = ribosomalSequenceOverlapDetector.getOverlaps(fragmentInterval);
+                int intersectionLength = 0;
+                for (final Interval overlappingInterval : overlappingRibosomalIntervals) {
+                    final int thisIntersectionLength = overlappingInterval.getIntersectionLength(fragmentInterval);
+                    intersectionLength = Math.max(intersectionLength, thisIntersectionLength);
+                }
+                if (intersectionLength/(double)fragmentInterval.length() >= rrnaFragmentPercentage) {
+                    // Assume entire read is ribosomal.
+                    // TODO: Should count reads, not bases?
+                    metrics.RIBOSOMAL_BASES += rec.getReadLength();
+                    int numAlignedBases = 0;
+                    for (final AlignmentBlock alignmentBlock : rec.getAlignmentBlocks()) {
+                        numAlignedBases += alignmentBlock.getLength();
+                    }
+                    metrics.PF_ALIGNED_BASES += numAlignedBases;
+                    return;
+                }
+            }
+
+            final Collection<Gene> overlappingGenes                  = geneOverlapDetector.getOverlaps(readInterval);
+            final List<AlignmentBlock> alignmentBlocks               = rec.getAlignmentBlocks();
+            boolean overlapsExon = false;
+
+            for (final AlignmentBlock alignmentBlock : alignmentBlocks) {
+                // Get functional class for each position in the alignment block.
+                final LocusFunction[] locusFunctions = new LocusFunction[alignmentBlock.getLength()];
+
+                // By default, if base does not overlap with rRNA or gene, it is intergenic.
+                Arrays.fill(locusFunctions, 0, locusFunctions.length, LocusFunction.INTERGENIC);
+
+                for (final Gene gene : overlappingGenes) {
+                    for (final Gene.Transcript transcript : gene) {
+                        transcript.assignLocusFunctionForRange(alignmentBlock.getReferenceStart(), locusFunctions);
+                        // if you want to gather coverage statistics, this variable should be true.
+                        // added for cases with many units [samples/read groups] which overwhelm memory.                
+                        // Add coverage to our coverage counter for this transcript
+                        if (collectCoverageStatistics) {
+                            int[] coverage = this.coverageByTranscript.get(transcript);
+                            if (coverage == null) {
+                                coverage = new int[transcript.length()];
+                                this.coverageByTranscript.put(transcript, coverage);
+                            }
+                            transcript.addCoverageCounts(alignmentBlock.getReferenceStart(),
+                                    CoordMath.getEnd(alignmentBlock.getReferenceStart(), alignmentBlock.getLength()),
+                                    coverage);
+                        }
+
+                    }
+                }
+
+                // Tally the function of each base in the alignment block.
+                for (final LocusFunction locusFunction : locusFunctions) {
+                    ++metrics.PF_ALIGNED_BASES;
+                    switch (locusFunction) {
+                        case INTERGENIC:
+                            ++metrics.INTERGENIC_BASES;
+                            break;
+                        case INTRONIC:
+                            ++metrics.INTRONIC_BASES;
+                            break;
+                        case UTR:
+                            ++metrics.UTR_BASES;
+                            overlapsExon = true;
+                            break;
+                        case CODING:
+                            ++metrics.CODING_BASES;
+                            overlapsExon = true;
+                            break;
+                        case RIBOSOMAL:
+                            ++metrics.RIBOSOMAL_BASES;
+                            break;
+                    }
+                }
+            }
+
+            // Strand-specificity is tallied on read basis rather than base at a time.  A read that aligns to more than one
+            // gene is not counted.
+            if (overlapsExon && strandSpecificity != StrandSpecificity.NONE && overlappingGenes.size() == 1) {
+                final boolean negativeTranscriptionStrand = overlappingGenes.iterator().next().isNegativeStrand();
+                final boolean negativeReadStrand = rec.getReadNegativeStrandFlag();
+                final boolean readAndTranscriptStrandsAgree = negativeReadStrand == negativeTranscriptionStrand;
+                final boolean readOneOrUnpaired = !rec.getReadPairedFlag() || rec.getFirstOfPairFlag();
+                final boolean firstReadExpectedToAgree = strandSpecificity == StrandSpecificity.FIRST_READ_TRANSCRIPTION_STRAND;
+                final boolean thisReadExpectedToAgree = readOneOrUnpaired == firstReadExpectedToAgree;
+                // If the read strand is the same as the strand of the transcript, and the end is the one that is supposed to agree,
+                // then the strand specificity for this read is correct.
+                // -- OR --
+                // If the read strand is not the same as the strand of the transcript, and the end is not the one that is supposed
+                // to agree, then the strand specificity for this read is correct.
+                if (readAndTranscriptStrandsAgree == thisReadExpectedToAgree) {
+                    ++metrics.CORRECT_STRAND_READS;
+                } else {
+                    ++metrics.INCORRECT_STRAND_READS;
+                }
+            }
+
+        }
+
+        public void finish() {
+            if (metrics.PF_ALIGNED_BASES > 0) {
+                if (metrics.RIBOSOMAL_BASES != null) {
+                    metrics.PCT_RIBOSOMAL_BASES =  metrics.RIBOSOMAL_BASES  / (double) metrics.PF_ALIGNED_BASES;
+                }
+                metrics.PCT_CODING_BASES =     metrics.CODING_BASES     / (double) metrics.PF_ALIGNED_BASES;
+                metrics.PCT_UTR_BASES =        metrics.UTR_BASES        / (double) metrics.PF_ALIGNED_BASES;
+                metrics.PCT_INTRONIC_BASES =   metrics.INTRONIC_BASES   / (double) metrics.PF_ALIGNED_BASES;
+                metrics.PCT_INTERGENIC_BASES = metrics.INTERGENIC_BASES / (double) metrics.PF_ALIGNED_BASES;
+                metrics.PCT_MRNA_BASES =       metrics.PCT_CODING_BASES + metrics.PCT_UTR_BASES;
+                metrics.PCT_USABLE_BASES =     (metrics.CODING_BASES + metrics.UTR_BASES) / (double) metrics.PF_BASES;
+            }
+
+            if (metrics.CORRECT_STRAND_READS > 0 || metrics.INCORRECT_STRAND_READS > 0) {
+                metrics.PCT_CORRECT_STRAND_READS = metrics.CORRECT_STRAND_READS/(double)(metrics.CORRECT_STRAND_READS + metrics.INCORRECT_STRAND_READS);
+            }
+        }
+
+        @Override
+        public void addMetricsToFile(final MetricsFile<RnaSeqMetrics, Integer> file) {
+            // Compute metrics based on coverage of top 1000 genes
+            final Histogram<Integer> normalizedCovByPos = computeCoverageMetrics();
+            file.addMetric(metrics);
+            file.addHistogram(normalizedCovByPos);
+        }
+
+        /**
+         * Computes a set of coverage based metrics on the mostly highly expressed genes' most highly
+         * expressed transcripts.
+         */
+        private Histogram<Integer> computeCoverageMetrics() {
+            final Histogram<Double> cvs = new Histogram<Double>();
+            final Histogram<Double> fivePrimeSkews = new Histogram<Double>();
+            final Histogram<Double> threePrimeSkews = new Histogram<Double>();
+            final Histogram<Double> gapBasesPerKb = new Histogram<Double>();
+            final Histogram<Double> fiveToThreeSkews = new Histogram<Double>();
+            String prefix = null;
+            if (this.metrics.READ_GROUP != null) {
+                prefix = this.metrics.READ_GROUP + ".";
+            }
+            else if (this.metrics.LIBRARY != null) {
+                prefix = this.metrics.LIBRARY + ".";
+            }
+            else if (this.metrics.SAMPLE != null) {
+                prefix = this.metrics.SAMPLE + ".";
+            }
+            else {
+                prefix = "All_Reads.";
+            }
+
+            final Histogram<Integer> normalizedCoverageByNormalizedPosition = new Histogram<Integer>("normalized_position", prefix + "normalized_coverage");
+
+            final Map<Gene.Transcript,int[]> transcripts = pickTranscripts(coverageByTranscript);
+            final double transcriptCount = transcripts.size();
+
+            for (final Map.Entry<Gene.Transcript,int[]> entry : transcripts.entrySet()) {
+                final Gene.Transcript tx = entry.getKey();
+                final double[] coverage;
+                {
+                    final double[] tmp = MathUtil.promote(entry.getValue());
+                    if (tx.getGene().isPositiveStrand())  coverage = tmp;
+                    else coverage = copyAndReverse(tmp);
+                }
+                final double mean = MathUtil.mean(coverage, 0, coverage.length);
+
+                // Calculate the CV of coverage for this tx
+                final double stdev = MathUtil.stddev(coverage, 0, coverage.length, mean);
+                final double cv    = stdev / mean;
+                cvs.increment(cv);
+
+                // Calculate the 5' and 3' biases
+                {
+                    final int PRIME_BASES = 100;
+                    final double fivePrimeCoverage = MathUtil.mean(coverage, 0, PRIME_BASES);
+                    final double threePrimeCoverage = MathUtil.mean(coverage, coverage.length - PRIME_BASES, coverage.length);
+
+                    fivePrimeSkews.increment(fivePrimeCoverage / mean);
+                    threePrimeSkews.increment(threePrimeCoverage / mean);
+                    fiveToThreeSkews.increment(fivePrimeCoverage / threePrimeCoverage);
+                }
+
+                // Calculate normalized coverage vs. normalized position
+                {
+                    final int lastIndex = coverage.length - 1;
+
+                    for (int percent=0; percent<=100; ++percent) {
+                        final double p = percent / 100d;
+                        final int start  = (int) Math.max(0,         lastIndex * (p-0.005));
+                        final int end    = (int) Math.min(lastIndex, lastIndex * (p+0.005));
+                        final int length = end - start + 1;
+
+                        double sum = 0;
+                        for (int i=start; i<=end; ++i) sum += coverage[i];
+                        final double normalized = (sum / length) / mean;
+                        normalizedCoverageByNormalizedPosition.increment(percent, normalized / transcriptCount);
+                    }
+                }
+
+                // Calculate gap bases per kilobase
+                //            {
+                //                int gapBases = 0;
+                //                final double minCoverage = mean * 0.1;
+                //                for (int i=0; i<coverage.length; ++i) {
+                //                    if (coverage[i] < minCoverage) ++gapBases;
+                //                }
+                //                gapBasesPerKb.increment(gapBases / (coverage.length / 1000d));
+                //            }
+            }
+
+            this.metrics.MEDIAN_CV_COVERAGE = cvs.getMedian();
+            this.metrics.MEDIAN_5PRIME_BIAS = fivePrimeSkews.getMedian();
+            this.metrics.MEDIAN_3PRIME_BIAS = threePrimeSkews.getMedian();
+            this.metrics.MEDIAN_5PRIME_TO_3PRIME_BIAS = fiveToThreeSkews.getMedian();
+
+            return normalizedCoverageByNormalizedPosition;
+        }
+
+        /** Little method to copy an array and reverse it at the same time. */
+        private double[] copyAndReverse(final double[] in) {
+            final double[] out = new double[in.length];
+            for (int i=0, j=in.length-1; i<in.length; ++i, --j) out[j] = in[i];
+            return out;
+        }
+
+        /** Picks the set of transcripts on which the coverage metrics are to be calculated. */
+        public Map<Gene.Transcript, int[]> pickTranscripts(final Map<Gene.Transcript, int[]> transcriptCoverage) {
+            final Map<Gene.Transcript, Double> bestPerGene = new HashMap<Gene.Transcript, Double>();
+
+            // Make a map of the best transcript per gene to it's mean coverage
+            for (final Gene gene : geneOverlapDetector.getAll()) {
+                Gene.Transcript best = null;
+                double bestMean = 0;
+
+                for (final Gene.Transcript tx : gene) {
+                    final int[] cov = transcriptCoverage.get(tx);
+
+                    if (tx.length() < Math.max(minimumLength, 100)) continue;
+                    if (cov == null) continue;
+
+                    final double mean = MathUtil.mean(MathUtil.promote(cov), 0, cov.length);
+                    if (mean < 1d) continue;
+                    if (best == null || mean > bestMean) {
+                        best = tx;
+                        bestMean = mean;
+                    }
+                }
+
+                if (best != null) bestPerGene.put(best, bestMean);
+            }
+
+            // Find the 1000th best coverage value
+            final double[] coverages = new double[bestPerGene.size()];
+            int i=0;
+            for (final double d : bestPerGene.values()) coverages[i++] = d;
+            Arrays.sort(coverages);
+            final double min = coverages.length == 0 ? 0 : coverages[Math.max(0, coverages.length - 1001)];
+
+            // And finally build the output map
+            final Map<Gene.Transcript, int[]> retval = new HashMap<Gene.Transcript, int[]>();
+            for (final Map.Entry<Gene.Transcript,Double> entry : bestPerGene.entrySet()) {
+                final Gene.Transcript tx = entry.getKey();
+                final double coverage = entry.getValue();
+
+                if (coverage >= min) {
+                    retval.put(tx, transcriptCoverage.get(tx));
+                }
+            }
+
+            return retval;
+        }
+
+    }
+}
diff --git a/src/java/picard/analysis/directed/TargetMetricsCollector.java b/src/java/picard/analysis/directed/TargetMetricsCollector.java
new file mode 100644
index 0000000..f08b48c
--- /dev/null
+++ b/src/java/picard/analysis/directed/TargetMetricsCollector.java
@@ -0,0 +1,759 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.analysis.directed;
+
+import htsjdk.samtools.AlignmentBlock;
+import htsjdk.samtools.SAMReadGroupRecord;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SAMSequenceRecord;
+import htsjdk.samtools.metrics.MetricBase;
+import htsjdk.samtools.metrics.MetricsFile;
+import htsjdk.samtools.reference.ReferenceSequence;
+import htsjdk.samtools.reference.ReferenceSequenceFile;
+import htsjdk.samtools.util.CollectionUtil;
+import htsjdk.samtools.util.CoordMath;
+import htsjdk.samtools.util.FormatUtil;
+import htsjdk.samtools.util.Interval;
+import htsjdk.samtools.util.IntervalList;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.OverlapDetector;
+import htsjdk.samtools.util.RuntimeIOException;
+import htsjdk.samtools.util.SequenceUtil;
+import htsjdk.samtools.util.StringUtil;
+import picard.PicardException;
+import picard.analysis.MetricAccumulationLevel;
+import picard.metrics.MultilevelMetrics;
+import picard.metrics.PerUnitMetricCollector;
+import picard.metrics.SAMRecordMultiLevelCollector;
+import picard.util.MathUtil;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.lang.reflect.Field;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * TargetMetrics, are metrics to measure how well we hit specific targets (or baits) when using a targeted sequencing process like hybrid selection
+ * or Targeted PCR Techniques (TSCA).  TargetMetrics at the moment are the metrics that are shared by both HybridSelection and TargetedPcrMetrics.
+ *
+ * TargetMetricsCollector collects for a run these common metrics and can be sub-classed to provide metrics more specific to a targeted sequencing
+ * run.
+ *
+ * Note: Probe is the name I've used to indicate the bait set or amplicon set (e.g. the individual technological units used to target specific
+ * sites).
+ *
+ * @author Jonathan Burke
+ */
+public abstract class TargetMetricsCollector<METRIC_TYPE extends MultilevelMetrics> extends SAMRecordMultiLevelCollector<METRIC_TYPE, Integer> {
+
+    // What is considered "near" to the bait
+    private static final int NEAR_PROBE_DISTANCE = 250;
+
+    //If perTargetCoverage != null then coverage is computed for each specified target and output to this file
+    private final File perTargetCoverage;
+
+    //The name of the set of probes used
+    private final String probeSetName;
+
+    private static final Log log = Log.getInstance(TargetMetricsCollector.class);
+
+    //The interval list indicating the regions targeted by all probes
+    private final IntervalList allProbes;
+
+    //The interval list of the the regions we intend to cover
+    private final IntervalList allTargets;
+
+    // Overlap detector for finding overlaps between reads and the experimental targets
+    private final OverlapDetector<Interval> targetDetector;
+
+    // Overlap detector for finding overlaps between the reads and the baits (and the near bait space)
+    private final OverlapDetector<Interval> probeDetector;
+
+    private Map<Interval,Double> intervalToGc = null;
+
+    //The number of bases within all unique intervals in allProbes
+    private final long probeTerritory;
+
+    //The number of bases within all unique intervals found in allTargets
+    private final long targetTerritory;
+
+    private final long genomeSize;
+
+    //A map of coverage by target in which coverage is reset every read, this is done
+    //so that we can calculate overlap for a read once and the resulting coverage is
+    //than added to the cumulative coverage of every collector that collects
+    //information on that read
+    private Map<Interval, Coverage> coverageByTargetForRead;
+    private Coverage [] cov;
+
+    //Converts a targetMetric into a more specific metric of METRIC_TYPE
+    public abstract METRIC_TYPE convertMetric(final TargetMetrics targetMetrics);
+
+    /**
+     * Since the targeted metrics (HsMetrics, TargetedPcrMetrics,...) share many of the same values as TargetMetrics, this copy will copy all public attributes in targetMetrics
+     * to the outputMetrics' attributes of the same name.  If no matching attribute exists in the outputMetrics or the attribute of the target metrics class also is found
+     * in targetKeys then it's value is not copied.  Further more, targetKeys and outputKeys are attribute name arrays synchronized by the index.
+     * For each target key, targetMetrics.<targetKeys[i]> is assigned to outputMetrics.<outputKeys[i]>
+     *
+     * @param targetMetrics A metric with values to be copied
+     * @param outputMetrics A metrics intended to receive values from targetMetrics
+     * @param targetKeys Specific names of attributes of targetMetrics to copy to outputMetrics, each key has a corresponding one in outputKeys
+     * @param outputKeys Specific names of the destination attributes of outputMetrics that will be filled with values of outputMetrics, each key has a corresponding one in targetKeys
+     * @param <MT> The type of metric of outputMetrics
+     */
+    protected static <MT extends MetricBase> void reflectiveCopy(final TargetMetrics targetMetrics, final MT outputMetrics, final String [] targetKeys, final String [] outputKeys) {
+
+        if(targetKeys == null || outputKeys == null) {
+            if(outputKeys != null) {
+                throw new PicardException("Target keys is null but output keys == " + StringUtil.join(",", outputKeys));
+            }
+
+            if(targetKeys != null) {
+                throw new PicardException("Output keys is null but target keys == " + StringUtil.join(",", targetKeys));
+            }
+        } else {
+            if(targetKeys.length != outputKeys.length) {
+                throw new PicardException("Target keys and output keys do not have the same length: " +
+                        "targetKeys == (" + StringUtil.join(",", targetKeys) + ") " +
+                        "outputKeys == (" + StringUtil.join(",", outputKeys) + ")");
+            }
+        }
+
+        final Class mtClass = outputMetrics.getClass();
+        final Set<Field> targetSet = CollectionUtil.makeSet(TargetMetrics.class.getFields());
+
+        for(final String targetKey : targetKeys) {
+            if(targetSet.contains(targetKey)) {
+                targetSet.remove(targetKey);
+            }
+        }
+
+        final Set<String> outputSet = new HashSet<String>();
+        for(final Field field : outputMetrics.getClass().getFields()) {
+            outputSet.add(field.getName());
+        }
+
+        for(final Field field : targetSet) {
+            if(outputSet.contains(field.getName())) {
+                try {
+                    final Field outputField = mtClass.getField(field.getName());
+                    outputField.set(outputMetrics, field.get(targetMetrics));
+                } catch (Exception e) {
+                    throw new PicardException("Exception while copying targetMetrics to " + outputMetrics.getClass().getName(), e);
+                }
+            }
+        }
+
+        for(int i = 0; i < targetKeys.length; i++) {
+            try {
+                Field targetMetricField = TargetMetrics.class.getField(targetKeys[i]);
+                Field outputMetricField = mtClass.getField(outputKeys[i]);
+                outputMetricField.set(outputMetrics, targetMetricField.get(targetMetrics));
+            } catch(final Exception exc) {
+                throw new PicardException("Exception while copying TargetMetrics." + targetKeys[i] + " to " + mtClass.getName() + "." + outputKeys[i], exc);
+            }
+        }
+    }
+
+    public TargetMetricsCollector(final Set<MetricAccumulationLevel> accumulationLevels, final List<SAMReadGroupRecord> samRgRecords, final ReferenceSequenceFile refFile,
+                                  final File perTargetCoverage, final IntervalList targetIntervals, final IntervalList probeIntervals, final String probeSetName) {
+        this.perTargetCoverage = perTargetCoverage;
+        this.probeSetName = probeSetName;
+
+        this.allProbes  = probeIntervals;
+        this.allTargets = targetIntervals;
+
+        final List<Interval> uniqueBaits = this.allProbes.uniqued().getIntervals();
+        this.probeDetector = new OverlapDetector<Interval>(-NEAR_PROBE_DISTANCE, 0);
+        this.probeDetector.addAll(uniqueBaits, uniqueBaits);
+        this.probeTerritory = Interval.countBases(uniqueBaits);
+
+        final List<Interval> uniqueTargets = this.allTargets.uniqued().getIntervals();
+        targetDetector = new OverlapDetector<Interval>(0,0);
+        this.targetDetector.addAll(uniqueTargets, uniqueTargets);
+        this.targetTerritory = Interval.countBases(uniqueTargets);
+
+        // Populate the coverage by target map
+        int i = 0;
+        cov = new Coverage[uniqueTargets.size()];
+        this.coverageByTargetForRead = new LinkedHashMap<Interval, Coverage>(uniqueTargets.size() * 2, 0.5f);
+        for (final Interval target : uniqueTargets) {
+            final Coverage coverage = new Coverage(target, 0);
+            this.coverageByTargetForRead.put(target, coverage);
+            cov[i++] = coverage;
+        }
+
+        long genomeSizeAccumulator = 0;
+        for (final SAMSequenceRecord seq : this.allProbes.getHeader().getSequenceDictionary().getSequences()) {
+            genomeSizeAccumulator += seq.getSequenceLength();
+        }
+        this.genomeSize = genomeSizeAccumulator;
+
+
+        if (refFile != null) {
+            intervalToGc = new HashMap<Interval,Double>();
+            for (final Interval target : uniqueTargets) {
+                final ReferenceSequence rs = refFile.getSubsequenceAt(target.getSequence(), target.getStart(), target.getEnd());
+                intervalToGc.put(target,SequenceUtil.calculateGc(rs.getBases()));
+            }
+        }
+
+        setup(accumulationLevels, samRgRecords);
+    }
+
+    @Override
+    protected PerUnitMetricCollector<METRIC_TYPE, Integer, SAMRecord> makeChildCollector(final String sample, final String library, final String readGroup) {
+        final PerUnitTargetMetricCollector collector =  new PerUnitTargetMetricCollector(probeSetName, coverageByTargetForRead.keySet(),
+                                                                                         sample, library, readGroup, probeTerritory, targetTerritory, genomeSize,
+                                                                                         intervalToGc);
+        if (this.probeSetName != null) {
+            collector.setBaitSetName(probeSetName);
+        }
+
+        return collector;
+    }
+
+    @Override
+    protected PerUnitMetricCollector<METRIC_TYPE, Integer, SAMRecord> makeAllReadCollector() {
+        final PerUnitTargetMetricCollector collector = (PerUnitTargetMetricCollector) makeChildCollector(null, null, null);
+        if (perTargetCoverage != null) {
+            collector.setPerTargetOutput(perTargetCoverage);
+        }
+
+        return collector;
+    }
+
+    /**
+     * Collect the Target Metrics for one unit of "accumulation" (i.e. for one sample, or for one library ...)
+     */
+    public class PerUnitTargetMetricCollector implements PerUnitMetricCollector<METRIC_TYPE, Integer, SAMRecord> {
+
+        private final Map<Interval,Double> intervalToGc;
+        private File perTargetOutput;
+
+        // A Map to accumulate per-bait-region (i.e. merge of overlapping targets) coverage. */
+        private final Map<Interval, Coverage> coverageByTarget;
+
+        private final TargetMetrics metrics = new TargetMetrics();
+
+        /**
+         * Constructor that parses the squashed reference to genome reference file and stores the
+         * information in a map for later use.
+         */
+        public PerUnitTargetMetricCollector(final String probeSetName, final Set<Interval> coverageTargets,
+                                            final String sample, final String library, final String readGroup,
+                                            final long probeTerritory, final long targetTerritory, final long genomeSize,
+                                            final Map<Interval, Double> intervalToGc) {
+            this.metrics.SAMPLE           = sample;
+            this.metrics.LIBRARY          = library;
+            this.metrics.READ_GROUP       = readGroup;
+            this.metrics.PROBE_SET        = probeSetName;
+
+            metrics.PROBE_TERRITORY  = probeTerritory;
+            metrics.TARGET_TERRITORY = targetTerritory;
+            metrics.GENOME_SIZE      = genomeSize;
+
+            this.coverageByTarget = new LinkedHashMap<Interval, Coverage>(coverageTargets.size() * 2, 0.5f);
+            for (Interval target : coverageTargets) {
+                this.coverageByTarget.put(target, new Coverage(target,0));
+            }
+
+            this.intervalToGc = intervalToGc;
+        }
+
+        /** If set, the metrics collector will output per target coverage information to this file. */
+        public void setPerTargetOutput(final File perTargetOutput) {
+            this.perTargetOutput = perTargetOutput;
+        }
+
+        /** Sets the name of the bait set explicitly instead of inferring it from the bait file. */
+        public void setBaitSetName(final String name) {
+            this.metrics.PROBE_SET = name;
+        }
+
+        /** Adds information about an individual SAMRecord to the statistics. */
+        public void acceptRecord(final SAMRecord rec) {
+            // Just plain avoid records that are marked as not-primary
+            if (rec.isSecondaryOrSupplementary()) return;
+
+            this.metrics.TOTAL_READS += 1;
+
+            // Check for PF reads
+            if (rec.getReadFailsVendorQualityCheckFlag()) {
+                return;
+            }
+
+            // Prefetch the list of target and bait overlaps here as they're needed multiple times.
+            final Collection<Interval> targets;
+            final Collection<Interval> probes;
+
+            if (!rec.getReadUnmappedFlag()) {
+                final Interval read = new Interval(rec.getReferenceName(), rec.getAlignmentStart(), rec.getAlignmentEnd());
+                targets = targetDetector.getOverlaps(read);
+                probes   = probeDetector.getOverlaps(read);
+            }
+            else {
+                targets = null;
+                probes = null;
+            }
+
+            ++this.metrics.PF_READS;
+            this.metrics.PF_BASES += rec.getReadLength();
+
+            // And now calculate the values we need for HS_LIBRARY_SIZE
+            if (rec.getReadPairedFlag() && rec.getFirstOfPairFlag() && !rec.getReadUnmappedFlag() && !rec.getMateUnmappedFlag()) {
+                if (probes != null && !probes.isEmpty()) {
+                    ++this.metrics.PF_SELECTED_PAIRS;
+                    if (!rec.getDuplicateReadFlag()) ++this.metrics.PF_SELECTED_UNIQUE_PAIRS;
+                }
+            }
+
+            // Check for reads that are marked as duplicates
+            if (rec.getDuplicateReadFlag()) {
+                return;
+            }
+            else {
+                ++this.metrics.PF_UNIQUE_READS;
+            }
+
+            // Don't bother with reads that didn't align uniquely
+            if (rec.getReadUnmappedFlag() || rec.getMappingQuality() == 0) {
+                return;
+            }
+
+            this.metrics.PF_UQ_READS_ALIGNED += 1;
+            for (final AlignmentBlock block : rec.getAlignmentBlocks()) {
+                this.metrics.PF_UQ_BASES_ALIGNED += block.getLength();
+            }
+
+            final boolean mappedInPair = rec.getReadPairedFlag() && !rec.getMateUnmappedFlag();
+
+            // Find the target overlaps
+            if (targets != null && !targets.isEmpty()) {
+                for (final Interval target : targets) {
+                    final Coverage coverage = this.coverageByTarget.get(target);
+
+                    for (final AlignmentBlock block : rec.getAlignmentBlocks()) {
+                        final int end = CoordMath.getEnd(block.getReferenceStart(), block.getLength());
+                        for (int pos=block.getReferenceStart(); pos<=end; ++ pos) {
+                            if (pos >= target.getStart() && pos <= target.getEnd()) {
+                                ++this.metrics.ON_TARGET_BASES;
+                                if (mappedInPair) ++this.metrics.ON_TARGET_FROM_PAIR_BASES;
+                                coverage.addBase(pos - target.getStart());
+                            }
+                        }
+                    }
+                }
+            }
+
+            // Now do the bait overlaps
+            int mappedBases = 0;
+            for (final AlignmentBlock block : rec.getAlignmentBlocks()) mappedBases += block.getLength();
+            int onBaitBases = 0;
+
+            if (probes != null && !probes.isEmpty()) {
+                for (final Interval bait : probes) {
+                    for (final AlignmentBlock block : rec.getAlignmentBlocks()) {
+                        final int end = CoordMath.getEnd(block.getReferenceStart(), block.getLength());
+
+                        for (int pos=block.getReferenceStart(); pos<=end; ++pos) {
+                            if (pos >= bait.getStart() && pos <= bait.getEnd()) ++onBaitBases;
+                        }
+                    }
+                }
+
+                this.metrics.ON_PROBE_BASES   += onBaitBases;
+                this.metrics.NEAR_PROBE_BASES += (mappedBases - onBaitBases);
+            }
+            else {
+                this.metrics.OFF_PROBE_BASES += mappedBases;
+            }
+
+        }
+
+        @Override
+        public void finish() {
+            metrics.PCT_PF_READS         = metrics.PF_READS / (double) metrics.TOTAL_READS;
+            metrics.PCT_PF_UQ_READS      = metrics.PF_UNIQUE_READS / (double) metrics.TOTAL_READS;
+            metrics.PCT_PF_UQ_READS_ALIGNED = metrics.PF_UQ_READS_ALIGNED / (double) metrics.PF_UNIQUE_READS;
+
+            final double denominator   = (metrics.ON_PROBE_BASES + metrics.NEAR_PROBE_BASES + metrics.OFF_PROBE_BASES);
+
+            metrics.PCT_SELECTED_BASES = (metrics.ON_PROBE_BASES + metrics.NEAR_PROBE_BASES) / denominator;
+            metrics.PCT_OFF_PROBE         = metrics.OFF_PROBE_BASES / denominator;
+            metrics.ON_PROBE_VS_SELECTED = metrics.ON_PROBE_BASES / (double) (metrics.ON_PROBE_BASES + metrics.NEAR_PROBE_BASES);
+            metrics.MEAN_PROBE_COVERAGE   = metrics.ON_PROBE_BASES / (double) metrics.PROBE_TERRITORY;
+            metrics.FOLD_ENRICHMENT       = (metrics.ON_PROBE_BASES/ denominator) / ((double) metrics.PROBE_TERRITORY / metrics.GENOME_SIZE);
+
+            calculateTargetCoverageMetrics();
+            calculateGcMetrics();
+        }
+
+        /** Calculates how much additional sequencing is needed to raise 80% of bases to the mean for the lane. */
+        private void calculateTargetCoverageMetrics() {
+            final short[] depths = new short[(int) this.metrics.TARGET_TERRITORY];  // may not use entire array
+            int zeroCoverageTargets = 0;
+            int depthIndex = 0;
+            double totalCoverage = 0;
+            int basesConsidered = 0;
+
+            for (final Coverage c : this.coverageByTarget.values()) {
+                if (!c.hasCoverage()) {
+                    ++zeroCoverageTargets;
+                    continue;
+                }
+
+                final short[] targetDepths = c.getDepths();
+                basesConsidered += targetDepths.length;
+
+                for (final short depth : targetDepths) {
+                    depths[depthIndex++] = depth;
+                    totalCoverage += depth;
+                }
+            }
+
+            this.metrics.MEAN_TARGET_COVERAGE = totalCoverage / basesConsidered;
+
+            // Sort the array (ASCENDING) and then find the base the coverage value that lies at the 80%
+            // line, which is actually at 20% into the array now
+            Arrays.sort(depths);
+            // Note.  basesConsidered can be between 0 and depths.length inclusive.  indexOf80thPercentile will be -1 in the latter case
+            final int indexOf80thPercentile = Math.max((depths.length - 1 - basesConsidered) + (int) (basesConsidered * 0.2), 0);
+            final int coverageAt80thPercentile = depths[indexOf80thPercentile];
+            this.metrics.FOLD_80_BASE_PENALTY = this.metrics.MEAN_TARGET_COVERAGE / coverageAt80thPercentile;
+            this.metrics.ZERO_CVG_TARGETS_PCT = zeroCoverageTargets / (double) allTargets.getIntervals().size();
+
+            // Now do the "how many bases at X" calculations.
+            int totalTargetBases = 0;
+            int targetBases2x  = 0;
+            int targetBases10x = 0;
+            int targetBases20x = 0;
+	        int targetBases30x = 0;
+	        int targetBases40x = 0;
+	        int targetBases50x = 0;
+	        int targetBases100x = 0;
+
+            for (final Coverage c : this.coverageByTarget.values()) {
+                for (final short depth : c.getDepths()) {
+                    ++totalTargetBases;
+
+                    if (depth >= 2) {
+                        ++targetBases2x;
+                        if (depth >=10) {
+                            ++targetBases10x;
+                            if (depth >= 20) {
+                                ++targetBases20x;
+                                if (depth >=30) {
+                                    ++targetBases30x;
+	                                if (depth >=40) {
+		                                ++targetBases40x;
+		                                if (depth >=50) {
+			                                ++targetBases50x;
+			                                if (depth >=100) {
+				                                ++targetBases100x;
+			                                }
+		                                }
+	                                }
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+
+            this.metrics.PCT_TARGET_BASES_2X  = (double) targetBases2x  / (double) totalTargetBases;
+            this.metrics.PCT_TARGET_BASES_10X = (double) targetBases10x / (double) totalTargetBases;
+            this.metrics.PCT_TARGET_BASES_20X = (double) targetBases20x / (double) totalTargetBases;
+	        this.metrics.PCT_TARGET_BASES_30X = (double) targetBases30x / (double) totalTargetBases;
+	        this.metrics.PCT_TARGET_BASES_40X = (double) targetBases40x / (double) totalTargetBases;
+	        this.metrics.PCT_TARGET_BASES_50X = (double) targetBases50x / (double) totalTargetBases;
+	        this.metrics.PCT_TARGET_BASES_100X = (double) targetBases100x / (double) totalTargetBases;
+        }
+
+        private void calculateGcMetrics() {
+            if (this.intervalToGc != null) {
+                log.info("Calculating GC metrics");
+
+                // Setup the output file if we're outputting per-target coverage
+                FormatUtil fmt = new FormatUtil();
+                final PrintWriter out;
+                try {
+                    if (perTargetOutput != null) {
+                        out = new PrintWriter(perTargetOutput);
+                        out.println("chrom\tstart\tend\tlength\tname\t%gc\tmean_coverage\tnormalized_coverage\tmin_normalized_coverage");
+                    }
+                    else {
+                        out = null;
+                    }
+                }
+                catch (IOException ioe) { throw new RuntimeIOException(ioe); }
+
+                final int bins = 101;
+                final long[] targetBasesByGc  = new long[bins];
+                final long[] alignedBasesByGc = new long[bins];
+
+                for (final Map.Entry<Interval,Coverage> entry : this.coverageByTarget.entrySet()) {
+                    final Interval interval = entry.getKey();
+                    final Coverage cov = entry.getValue();
+
+                    final double gcDouble = this.intervalToGc.get(interval);
+                    final int gc = (int) Math.round(gcDouble * 100);
+
+                    targetBasesByGc[gc]  += interval.length();
+                    alignedBasesByGc[gc] += cov.getTotal();
+
+                    if (out != null) {
+                        final double coverage = cov.getTotal() / (double) interval.length();
+                        final double min = MathUtil.min(cov.getDepths());
+
+                        out.println(interval.getSequence() + "\t" +
+                                    interval.getStart() + "\t" +
+                                    interval.getEnd() + "\t" +
+                                    interval.length() + "\t" +
+                                    interval.getName() + "\t" +
+                                    fmt.format(gcDouble) + "\t" +
+                                    fmt.format(coverage) + "\t" +
+                                    fmt.format(coverage / this.metrics.MEAN_TARGET_COVERAGE) + "\t" +
+                                    fmt.format(min / this.metrics.MEAN_TARGET_COVERAGE)
+                        );
+                    }
+                }
+
+                if (out != null) out.close();
+
+                // Total things up
+                long totalTarget = 0;
+                long totalBases  = 0;
+                for (int i=0; i<targetBasesByGc.length; ++i) {
+                    totalTarget += targetBasesByGc[i];
+                    totalBases  += alignedBasesByGc[i];
+                }
+
+                // Re-express things as % of the totals and calculate dropout metrics
+                for (int i=0; i<targetBasesByGc.length; ++i) {
+                    final double targetPct  = targetBasesByGc[i]  / (double) totalTarget;
+                    final double alignedPct = alignedBasesByGc[i] / (double) totalBases;
+
+                    double dropout = (alignedPct - targetPct) * 100d;
+                    if (dropout < 0) {
+                        dropout = Math.abs(dropout);
+
+                        if (i <=50) this.metrics.AT_DROPOUT += dropout;
+                        if (i >=50) this.metrics.GC_DROPOUT += dropout;
+                    }
+                }
+            }
+        }
+
+
+        @Override
+        public void addMetricsToFile(MetricsFile<METRIC_TYPE, Integer> hsMetricsComparableMetricsFile) {
+            hsMetricsComparableMetricsFile.addMetric(convertMetric(this.metrics));
+        }
+    }
+
+    /**
+     * A simple class that is used to store the coverage information about an interval.
+     *
+     * @author Tim Fennell
+     */
+    public static class Coverage {
+        private final Interval interval;
+        private final short[] depths;
+
+        /** Constructs a new coverage object for the provided mapping with the desired padding either side. */
+        public Coverage(final Interval i, final int padding) {
+            this.interval = i;
+            this.depths = new short[interval.length() + 2*padding];
+        }
+
+        /** Adds a single point of depth at the desired offset into the coverage array. */
+        public void addBase(final int offset) {
+            if (offset >= 0 && offset < this.depths.length) {
+                // Prevent overflow if depth is too great, while avoiding doubling memory requirement.
+                if (this.depths[offset] < Short.MAX_VALUE) {
+                    this.depths[offset] += 1;
+                }
+            }
+        }
+
+        /** Returns true if any base in the range has coverage of > 1 */
+        public boolean hasCoverage() {
+            for (final short s : depths) {
+                if (s > 1) return true;
+            }
+
+            return false;
+        }
+
+        /** Gets the coverage depths as an array of shorts. */
+        public short[] getDepths() { return this.depths; }
+
+        public int getTotal() {
+            int total = 0;
+            for (int i=0; i<depths.length; ++i) total += depths[i];
+            return total;
+        }
+
+        @Override
+        public String toString() {
+            return "TargetedMetricCollector(interval=" + interval + ", depths = [" + StringUtil.intValuesToString(this.depths) + "])";
+        }
+    }
+}
+
+/**
+ * For a sequencing run targeting specific regions of the genome this metric class holds metrics describing
+ * how well those regions were targeted.
+ */
+class TargetMetrics extends MultilevelMetrics {
+    /**  The name of the PROBE_SET (BAIT SET, AMPLICON SET, ...) used in this metrics collection run */
+    public String PROBE_SET;
+
+    /** The number of unique bases covered by the intervals of all probes in the probe set */
+    public long PROBE_TERRITORY;
+
+    /** The number of unique bases covered by the intervals of all targets that should be covered */
+    public long TARGET_TERRITORY;
+
+    /** The number of bases in the reference genome used for alignment. */
+    public long GENOME_SIZE;
+
+    /** The total number of reads in the SAM or BAM file examined. */
+    public long TOTAL_READS;
+
+    /** The number of reads that pass the vendor's filter. */
+    public long PF_READS;
+
+    /** The number of bases in the SAM or BAM file to be examined */
+    public long PF_BASES;
+
+    /** The number of PF reads that are not marked as duplicates. */
+    public long PF_UNIQUE_READS;
+
+    // Tracks the number of read pairs that we see that are PF (used to calculate library size) */
+    public long PF_SELECTED_PAIRS;
+
+    // Tracks the number of unique PF reads pairs we see (used to calc library size)
+    public long PF_SELECTED_UNIQUE_PAIRS;
+
+    /** The number of PF unique reads that are aligned with mapping score > 0 to the reference genome. */
+    public long PF_UQ_READS_ALIGNED;
+
+    /** The number of PF unique bases that are aligned with mapping score > 0 to the reference genome. */
+    public long PF_UQ_BASES_ALIGNED;
+
+    /** The number of PF aligned probed that mapped to a baited region of the genome. */
+    public long ON_PROBE_BASES;
+
+    /** The number of PF aligned bases that mapped to within a fixed interval of a probed region, but not on a baited region. */
+    public long NEAR_PROBE_BASES;
+
+    /** The number of PF aligned bases that mapped to neither on or near a probe. */
+    public long OFF_PROBE_BASES;
+
+    /** The number of PF aligned bases that mapped to a targeted region of the genome. */
+    public long ON_TARGET_BASES;
+
+    /** The number of PF aligned bases that are mapped in pair to a targeted region of the genome. */
+    public long ON_TARGET_FROM_PAIR_BASES;
+
+    //metrics below here are derived after collection
+
+    /** PF reads / total reads.  The percent of reads passing filter. */
+    public double PCT_PF_READS;
+
+    /** PF Unique Reads / Total Reads. */
+    public double PCT_PF_UQ_READS;
+
+    /** PF Reads Aligned / PF Reads. */
+    public double PCT_PF_UQ_READS_ALIGNED;
+
+    /** On+Near Bait Bases / PF Bases Aligned. */
+    public double PCT_SELECTED_BASES;
+
+    /** The percentage of aligned PF bases that mapped neither on or near a probe. */
+    public double PCT_OFF_PROBE;
+
+    /** The percentage of on+near probe bases that are on as opposed to near. */
+    public double ON_PROBE_VS_SELECTED;
+
+    /** The mean coverage of all probes in the experiment. */
+    public double MEAN_PROBE_COVERAGE;
+
+    /** The fold by which the probed region has been amplified above genomic background. */
+    public double FOLD_ENRICHMENT;
+
+    /** The mean coverage of targets that recieved at least coverage depth = 2 at one base. */
+    public double MEAN_TARGET_COVERAGE;
+
+    /** The number of targets that did not reach coverage=2 over any base. */
+    public double ZERO_CVG_TARGETS_PCT;
+
+    /**
+     * The fold over-coverage necessary to raise 80% of bases in "non-zero-cvg" targets to
+     * the mean coverage level in those targets.
+     */
+    public double FOLD_80_BASE_PENALTY;
+
+    /** The percentage of ALL target bases acheiving 2X or greater coverage. */
+    public double PCT_TARGET_BASES_2X;
+    /** The percentage of ALL target bases acheiving 10X or greater coverage. */
+    public double PCT_TARGET_BASES_10X;
+    /** The percentage of ALL target bases acheiving 20X or greater coverage. */
+    public double PCT_TARGET_BASES_20X;
+	/** The percentage of ALL target bases acheiving 30X or greater coverage. */
+	public double PCT_TARGET_BASES_30X;
+	/** The percentage of ALL target bases acheiving 40X or greater coverage. */
+	public double PCT_TARGET_BASES_40X;
+	/** The percentage of ALL target bases acheiving 50X or greater coverage. */
+	public double PCT_TARGET_BASES_50X;
+	/** The percentage of ALL target bases acheiving 100X or greater coverage. */
+	public double PCT_TARGET_BASES_100X;
+
+    /**
+     * A measure of how undercovered <= 50% GC regions are relative to the mean. For each GC bin [0..50]
+     * we calculate a = % of target territory, and b = % of aligned reads aligned to these targets.
+     * AT DROPOUT is then abs(sum(a-b when a-b < 0)). E.g. if the value is 5% this implies that 5% of total
+     * reads that should have mapped to GC<=50% regions mapped elsewhere.
+     */
+    public double AT_DROPOUT;
+
+    /**
+     * A measure of how undercovered >= 50% GC regions are relative to the mean. For each GC bin [50..100]
+     * we calculate a = % of target territory, and b = % of aligned reads aligned to these targets.
+     * GC DROPOUT is then abs(sum(a-b when a-b < 0)). E.g. if the value is 5% this implies that 5% of total
+     * reads that should have mapped to GC>=50% regions mapped elsewhere.
+     */
+    public double GC_DROPOUT;
+}
diff --git a/src/java/picard/analysis/directed/TargetedPcrMetrics.java b/src/java/picard/analysis/directed/TargetedPcrMetrics.java
new file mode 100644
index 0000000..63971ea
--- /dev/null
+++ b/src/java/picard/analysis/directed/TargetedPcrMetrics.java
@@ -0,0 +1,119 @@
+package picard.analysis.directed;
+
+import picard.metrics.MultilevelMetrics;
+
+/** Metrics class for targeted pcr runs such as TSCA runs */
+public class TargetedPcrMetrics extends MultilevelMetrics {
+
+    /**  The name of the amplicon set used in this metrics collection run */
+    public String CUSTOM_AMPLICON_SET;
+
+    /** The number of bases in the reference genome used for alignment. */
+    public long GENOME_SIZE;
+
+    /** The number of unique bases covered by the intervals of all amplicons in the amplicon set */
+    public long AMPLICON_TERRITORY;
+
+    /** The number of unique bases covered by the intervals of all targets that should be covered */
+    public long TARGET_TERRITORY;
+
+    /** The total number of reads in the SAM or BAM file examine. */
+    public long TOTAL_READS;
+
+    /** The number of reads that pass the vendor's filter. */
+    public long PF_READS;
+
+    /** THe number of bases in the SAM or BAM file to be examined */
+    public long PF_BASES;
+
+    /** The number of PF reads that are not marked as duplicates. */
+    public long PF_UNIQUE_READS;
+
+    /** PF reads / total reads.  The percent of reads passing filter. */
+    public double PCT_PF_READS;
+
+    /** PF Unique Reads / Total Reads. */
+    public double PCT_PF_UQ_READS;
+
+    /** The number of PF unique reads that are aligned with mapping score > 0 to the reference genome. */
+    public long PF_UQ_READS_ALIGNED;
+
+    /** Tracks the number of read pairs that we see that are PF (used to calculate library size) */
+    public long PF_SELECTED_PAIRS;
+
+    /** Tracks the number of unique PF reads pairs we see (used to calc library size) */
+    public long PF_SELECTED_UNIQUE_PAIRS;
+
+    /** PF Reads Aligned / PF Reads. */
+    public double PCT_PF_UQ_READS_ALIGNED;
+
+    /** The number of PF unique bases that are aligned with mapping score > 0 to the reference genome. */
+    public long PF_UQ_BASES_ALIGNED;
+
+    /** The number of PF aligned amplified that mapped to an amplified region of the genome. */
+    public long ON_AMPLICON_BASES;
+
+    /** The number of PF aligned bases that mapped to within a fixed interval of an amplified region, but not on a baited region. */
+    public long NEAR_AMPLICON_BASES;
+
+    /** The number of PF aligned bases that mapped to neither on or near an amplicon. */
+    public long OFF_AMPLICON_BASES;
+
+    /** The number of PF aligned bases that mapped to a targeted region of the genome. */
+    public long ON_TARGET_BASES;
+
+    /** The number of PF aligned bases that are mapped in pair to a targeted region of the genome. */
+    public long ON_TARGET_FROM_PAIR_BASES;
+
+    /** On+Near Amplicon Bases / PF Bases Aligned. */
+    public double PCT_AMPLIFIED_BASES;
+
+    /** The percentage of aligned PF bases that mapped neither on or near an amplicon. */
+    public double PCT_OFF_AMPLICON;
+
+    /** The percentage of on+near amplicon bases that are on as opposed to near. */
+    public double ON_AMPLICON_VS_SELECTED;
+
+    /** The mean coverage of all amplicons in the experiment. */
+    public double MEAN_AMPLICON_COVERAGE;
+
+    /** The mean coverage of targets that recieved at least coverage depth = 2 at one base. */
+    public double MEAN_TARGET_COVERAGE;
+
+    /** The fold by which the amplicon region has been amplified above genomic background. */
+    public double FOLD_ENRICHMENT;
+
+    /** The number of targets that did not reach coverage=2 over any base. */
+    public double ZERO_CVG_TARGETS_PCT;
+
+    /**
+     * The fold over-coverage necessary to raise 80% of bases in "non-zero-cvg" targets to
+     * the mean coverage level in those targets.
+     */
+    public double FOLD_80_BASE_PENALTY;
+
+    /** The percentage of ALL target bases achieving 2X or greater coverage. */
+    public double PCT_TARGET_BASES_2X;
+    /** The percentage of ALL target bases achieving 10X or greater coverage. */
+    public double PCT_TARGET_BASES_10X;
+    /** The percentage of ALL target bases achieving 20X or greater coverage. */
+    public double PCT_TARGET_BASES_20X;
+	/** The percentage of ALL target bases achieving 30X or greater coverage. */
+	public double PCT_TARGET_BASES_30X;
+
+    /**
+     * A measure of how undercovered <= 50% GC regions are relative to the mean. For each GC bin [0..50]
+     * we calculate a = % of target territory, and b = % of aligned reads aligned to these targets.
+     * AT DROPOUT is then abs(sum(a-b when a-b < 0)). E.g. if the value is 5% this implies that 5% of total
+     * reads that should have mapped to GC<=50% regions mapped elsewhere.
+     */
+    public double AT_DROPOUT;
+
+    /**
+     * A measure of how undercovered >= 50% GC regions are relative to the mean. For each GC bin [50..100]
+     * we calculate a = % of target territory, and b = % of aligned reads aligned to these targets.
+     * GC DROPOUT is then abs(sum(a-b when a-b < 0)). E.g. if the value is 5% this implies that 5% of total
+     * reads that should have mapped to GC>=50% regions mapped elsewhere.
+     */
+    public double GC_DROPOUT;
+}
diff --git a/src/java/picard/analysis/directed/TargetedPcrMetricsCollector.java b/src/java/picard/analysis/directed/TargetedPcrMetricsCollector.java
new file mode 100644
index 0000000..81f5c99
--- /dev/null
+++ b/src/java/picard/analysis/directed/TargetedPcrMetricsCollector.java
@@ -0,0 +1,60 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.analysis.directed;
+
+import htsjdk.samtools.SAMReadGroupRecord;
+import htsjdk.samtools.reference.ReferenceSequenceFile;
+import htsjdk.samtools.util.IntervalList;
+import picard.analysis.MetricAccumulationLevel;
+
+import java.io.File;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Calculates HS metrics for a given SAM or BAM file. Requires the input of a list of
+ * target intervals and a list of bait intervals. Can be invoked either on an entire
+ * iterator of SAMRecords or be passed SAMRecords one at a time.
+ *
+ * @author Jonathan Burke
+ */
+public class TargetedPcrMetricsCollector extends TargetMetricsCollector<TargetedPcrMetrics> {
+    //maybe instead just inject this into the TargetedMetricCollector ->
+
+    public TargetedPcrMetricsCollector(final Set<MetricAccumulationLevel> accumulationLevels, final List<SAMReadGroupRecord> samRgRecords, final ReferenceSequenceFile refFile, final File perTargetCoverage, final IntervalList targetIntervals, final IntervalList probeIntervals, final String probeSetName) {
+        super(accumulationLevels, samRgRecords, refFile, perTargetCoverage, targetIntervals, probeIntervals, probeSetName);
+    }
+
+    @Override
+    public TargetedPcrMetrics convertMetric(TargetMetrics targetMetrics) {
+        final TargetedPcrMetrics pcrMetrics = new TargetedPcrMetrics();
+        TargetMetricsCollector.reflectiveCopy(targetMetrics, pcrMetrics,
+                new String[]{"PROBE_SET",           "PROBE_TERRITORY",    "ON_PROBE_BASES",    "NEAR_PROBE_BASES",    "OFF_PROBE_BASES",    "PCT_SELECTED_BASES",  "PCT_OFF_PROBE",    "ON_PROBE_VS_SELECTED",    "MEAN_PROBE_COVERAGE"},
+                new String[]{"CUSTOM_AMPLICON_SET", "AMPLICON_TERRITORY", "ON_AMPLICON_BASES", "NEAR_AMPLICON_BASES", "OFF_AMPLICON_BASES", "PCT_AMPLIFIED_BASES", "PCT_OFF_AMPLICON", "ON_AMPLICON_VS_SELECTED", "MEAN_AMPLICON_COVERAGE"}
+        );
+
+        return pcrMetrics;
+    }
+}
diff --git a/src/java/picard/annotation/AnnotationException.java b/src/java/picard/annotation/AnnotationException.java
new file mode 100644
index 0000000..bf6bdfa
--- /dev/null
+++ b/src/java/picard/annotation/AnnotationException.java
@@ -0,0 +1,40 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.annotation;
+
+import picard.PicardException;
+
+/**
+ * Exception thrown when loading gene annotations.  It is expected that there will be inconsistencies in annotation
+ * files, such that these exceptions may be reported but not cause program termination.
+ */
+public class AnnotationException extends PicardException{
+    public AnnotationException(String message) {
+        super(message);
+    }
+
+    public AnnotationException(String message, Throwable throwable) {
+        super(message, throwable);
+    }
+}
diff --git a/src/java/picard/annotation/Gene.java b/src/java/picard/annotation/Gene.java
new file mode 100644
index 0000000..5a2ebb6
--- /dev/null
+++ b/src/java/picard/annotation/Gene.java
@@ -0,0 +1,238 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.annotation;
+
+import htsjdk.samtools.util.CoordMath;
+import htsjdk.samtools.util.Interval;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+/**
+ * Holds annotation of a gene for storage in an OverlapDetector.  May hold multiple transcripts for the same gene.
+ * The transcripts must all be relative to the same strand.
+ */
+public class Gene extends Interval implements Iterable<Gene.Transcript>  {
+    private final Map<String, Transcript> transcripts = new HashMap<String, Transcript>();
+
+
+    public Gene(final String sequence, final int start, final int end, final boolean negative, final String name) {
+        super(sequence, start, end, negative, name);
+    }
+
+    public Transcript addTranscript(final String name, final int transcriptionStart, final int transcriptionEnd, final int codingStart, final int codingEnd, final int numExons) {
+        if (transcripts.containsKey(name)) {
+            throw new AnnotationException("Transcript " + name + " for gene " + this.getName() + " appears more than once");
+        }
+        else {
+            final Transcript tx = new Transcript(name, transcriptionStart, transcriptionEnd, codingStart, codingEnd, numExons);
+            transcripts.put(name, tx);
+            return tx;
+        }
+    }
+
+    public Iterator<Transcript> iterator() {
+        return transcripts.values().iterator();
+    }
+
+    public int compareTo(final Gene that) {
+        final int ret = super.compareTo(that);
+        if (ret != 0) return ret;
+        return Boolean.valueOf(this.isPositiveStrand()).compareTo(that.isPositiveStrand());
+    }
+
+    public boolean equals(final Object other) {
+        if (!(other instanceof Gene)) return false;
+        else if (this == other) return true;
+        else {
+            final Gene that = (Gene)other;
+            return (this.compareTo(that) == 0);
+        }
+    }
+
+
+
+    /**
+     * A single transcript of a gene.  Sequence name is stored in the enclosing object (class Gene).
+     */
+    public class Transcript {
+        public final String name;
+        public final int transcriptionStart;
+        public final int transcriptionEnd;
+        public final int codingStart;
+        public final int codingEnd;
+        public final Exon[] exons;
+        private int length; // the number of bases in the transcript
+
+        /**
+         * 1-based, inclusive representation of an exon.  The sequence name is stored in an enclosing object (class Gene).
+         */
+        public class Exon {
+            public final int start;
+            public final int end;
+
+            public Exon(final int start, final int end) {
+                this.start = start;
+                this.end = end;
+            }
+        }
+
+        public Transcript(final String name, final int transcriptionStart, final int transcriptionEnd, final int codingStart, final int codingEnd, final int numExons) {
+            this.name = name;
+            this.transcriptionStart = transcriptionStart;
+            this.transcriptionEnd = transcriptionEnd;
+            this.codingStart = codingStart;
+            this.codingEnd = codingEnd;
+            this.exons = new Exon[numExons];
+        }
+
+        public Exon addExon(final int start, final int end) {
+            for (int i=0; i<this.exons.length; ++i) {
+                if (exons[i] == null) {
+                    exons[i] = new Exon(start, end);
+                    this.length += CoordMath.getLength(start, end);
+                    return exons[i];
+                }
+            }
+
+            throw new IllegalStateException("Attempting to add more exons that exist for transcript.");
+        }
+
+        public int start() {
+            return exons[0].start;
+        }
+
+        public int end() {
+            return exons[exons.length -1].end;
+        }
+
+        public int length() {
+            return this.length;
+        }
+
+        public boolean isSoloTranscript() {
+            return Gene.this.transcripts.size() == 1;
+        }
+
+        public Gene getGene() {
+            return Gene.this;
+        }
+
+        /**
+         * Write into locusFunctions the function of each position from start to start + locusFunctions.length
+         * relative to this transcript.  Does not overwrite an existing value in locusFunctions that is stronger
+         * than the function for that locus in this transcript.
+         * @param start 1-based genomic coordinate of the first position in locusFunctions.
+         * @param locusFunctions
+         */
+        public void assignLocusFunctionForRange(final int start, final LocusFunction[] locusFunctions) {
+            for (int i = Math.max(start, transcriptionStart);
+                    i <= Math.min(transcriptionEnd, CoordMath.getEnd(start, locusFunctions.length)); ++i) {
+
+                if (locusFunctions[i - start].ordinal() > LocusFunction.CODING.ordinal()) continue;
+
+                final LocusFunction locusFunction;
+                if (inExon(i)) {
+                    if (utr(i)) locusFunction = LocusFunction.UTR;
+                    else locusFunction = LocusFunction.CODING;
+                } else locusFunction = LocusFunction.INTRONIC;
+                if (locusFunction.ordinal() > locusFunctions[i - start].ordinal()) {
+                    locusFunctions[i - start] = locusFunction;
+                }
+            }
+        }
+
+        /**
+         *
+         * @param genomeStart
+         * @param genomeEnd
+         * @param coverage
+         */
+        public void addCoverageCounts(final int genomeStart, final int genomeEnd, final int[] coverage) {
+            for (int i=genomeStart; i<genomeEnd; ++i) {
+                final int txBase = getTranscriptCoordinate(i);
+                if (txBase > 0) coverage[txBase-1]++;
+            }
+        }
+
+        /** Given a coordinate on the genome (same chromosome) give the corresponding coordinate in the transcript. */
+        public int getTranscriptCoordinate(final int genomeCoordinate) {
+            int exonOffset = 0;
+            for (final Exon e : exons) {
+                if (genomeCoordinate >= e.start && genomeCoordinate <=e.end) {
+                    return (genomeCoordinate - e.start + 1) + exonOffset;
+                }
+                else {
+                    exonOffset += CoordMath.getLength(e.start, e.end);
+                }
+            }
+
+            return -1;
+        }
+
+        private boolean utr(final int locus) {
+            return locus < codingStart || locus > codingEnd;
+        }
+
+        private boolean inExon(final int locus) {
+            for (int i = 0; i < exons.length; ++i) {
+                final Exon exon = exons[i];
+                if (exon.start > locus) return false;
+                if (inRange(exon.start, exon.end, locus)) return true;
+            }
+            return false;
+        }
+
+        private boolean inRange(final int start, final int end, final int locus) {
+            return (locus >= start && locus <= end);
+        }
+
+        @Override
+        public boolean equals(final Object o) {
+            if (this == o) return true;
+            if (o == null || getClass() != o.getClass()) return false;
+
+            final Transcript that = (Transcript) o;
+
+            if (codingEnd != that.codingEnd) return false;
+            if (codingStart != that.codingStart) return false;
+            if (transcriptionEnd != that.transcriptionEnd) return false;
+            if (transcriptionStart != that.transcriptionStart) return false;
+            if (!name.equals(that.name)) return false;
+
+            return true;
+        }
+
+        @Override
+        public int hashCode() {
+            int result = name.hashCode();
+            result = 31 * result + transcriptionStart;
+            result = 31 * result + transcriptionEnd;
+            result = 31 * result + codingStart;
+            result = 31 * result + codingEnd;
+            return result;
+        }
+    }
+}
diff --git a/src/java/picard/annotation/GeneAnnotationReader.java b/src/java/picard/annotation/GeneAnnotationReader.java
new file mode 100644
index 0000000..e4a37a6
--- /dev/null
+++ b/src/java/picard/annotation/GeneAnnotationReader.java
@@ -0,0 +1,39 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.annotation;
+
+import htsjdk.samtools.SAMSequenceDictionary;
+import htsjdk.samtools.util.OverlapDetector;
+
+import java.io.File;
+
+/**
+ * Load gene annotations into an OverlapDetector of Gene objects.
+ * Currently only refFlat format is accepted.
+ */
+public class GeneAnnotationReader {
+    public static OverlapDetector<Gene> loadRefFlat(File refFlatFile, SAMSequenceDictionary sequenceDictionary) {
+        return RefFlatReader.load(refFlatFile, sequenceDictionary);
+    }
+}
diff --git a/src/java/picard/annotation/LocusFunction.java b/src/java/picard/annotation/LocusFunction.java
new file mode 100644
index 0000000..280e724
--- /dev/null
+++ b/src/java/picard/annotation/LocusFunction.java
@@ -0,0 +1,33 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.annotation;
+
+/**
+ * Describes the behavior of a locus relative to a gene.  Note that these are enumerated in a specific order:
+ * (INTERGENIC, INTRONIC, UTR, CODING, RIBOSOMAL) so that e.g. if a locus is CODING in one gene and UTR in another,
+ * we count it as CODING.
+ */
+public enum LocusFunction {
+    INTERGENIC, INTRONIC, UTR, CODING, RIBOSOMAL
+}
diff --git a/src/java/picard/annotation/RefFlatReader.java b/src/java/picard/annotation/RefFlatReader.java
new file mode 100644
index 0000000..fa21a04
--- /dev/null
+++ b/src/java/picard/annotation/RefFlatReader.java
@@ -0,0 +1,191 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.annotation;
+
+import htsjdk.samtools.SAMSequenceDictionary;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.OverlapDetector;
+import picard.annotation.Gene.Transcript;
+import picard.annotation.Gene.Transcript.Exon;
+import picard.util.TabbedTextFileWithHeaderParser;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Loads gene annotations from a refFlat file into an OverlapDetector<Gene>.  Discards annotations that are not
+ * internally consistent, e.g. transcripts on different chromosomes or different strands.
+ */
+public class RefFlatReader {
+    private static final Log LOG = Log.getInstance(RefFlatReader.class);
+    // These are in the order that columns appear in refFlat format.
+    public enum RefFlatColumns{GENE_NAME, TRANSCRIPT_NAME, CHROMOSOME, STRAND, TX_START, TX_END, CDS_START, CDS_END,
+        EXON_COUNT, EXON_STARTS, EXON_ENDS}
+
+    private static final String[] RefFlatColumnLabels = new String[RefFlatColumns.values().length];
+
+    static {
+        for (int i = 0; i < RefFlatColumnLabels.length; ++i) {
+            RefFlatColumnLabels[i] = RefFlatColumns.values()[i].name();
+        }
+    }
+
+    private final File refFlatFile;
+    private final SAMSequenceDictionary sequenceDictionary;
+
+    RefFlatReader(final File refFlatFile, final SAMSequenceDictionary sequenceDictionary) {
+        this.refFlatFile = refFlatFile;
+        this.sequenceDictionary = sequenceDictionary;
+    }
+
+    static OverlapDetector<Gene> load(final File refFlatFile, final SAMSequenceDictionary sequenceDictionary) {
+        return new RefFlatReader(refFlatFile, sequenceDictionary).load();
+    }
+
+    OverlapDetector<Gene> load() {
+        final OverlapDetector<Gene> overlapDetector = new OverlapDetector<Gene>(0, 0);
+
+        final int expectedColumns = RefFlatColumns.values().length;
+        final TabbedTextFileWithHeaderParser parser = new TabbedTextFileWithHeaderParser(refFlatFile, RefFlatColumnLabels);
+        final Map<String, List<TabbedTextFileWithHeaderParser.Row>> refFlatLinesByGene =
+                new HashMap<String, List<TabbedTextFileWithHeaderParser.Row>>();
+
+        for (final TabbedTextFileWithHeaderParser.Row row : parser) {
+            final int lineNumber = parser.getCurrentLineNumber(); // getCurrentLineNumber returns the number of the next line
+            if (row.getFields().length != expectedColumns) {
+                throw new AnnotationException("Wrong number of fields in refFlat file " + refFlatFile + " at line " +
+                        lineNumber);
+            }
+            final String geneName = row.getField(RefFlatColumns.GENE_NAME.name());
+            final String transcriptName = row.getField(RefFlatColumns.TRANSCRIPT_NAME.name());
+            final String transcriptDescription = geneName + ":" + transcriptName;
+            final String chromosome = row.getField(RefFlatColumns.CHROMOSOME.name());
+            if (!isSequenceRecognized(chromosome)) {
+                LOG.debug("Skipping " + transcriptDescription + " due to unrecognized sequence " + chromosome);
+            } else {
+                List<TabbedTextFileWithHeaderParser.Row> transcriptLines = refFlatLinesByGene.get(geneName);
+                if (transcriptLines == null) {
+                    transcriptLines = new ArrayList<TabbedTextFileWithHeaderParser.Row>();
+                    refFlatLinesByGene.put(geneName, transcriptLines);
+                }
+                transcriptLines.add(row);
+            }
+        }
+
+        int longestInterval = 0;
+        int numIntervalsOver1MB = 0;
+
+        for (final List<TabbedTextFileWithHeaderParser.Row> transcriptLines : refFlatLinesByGene.values()) {
+            try {
+                final Gene gene = makeGeneFromRefFlatLines(transcriptLines);
+                overlapDetector.addLhs(gene, gene);
+                if (gene.length() > longestInterval) longestInterval = gene.length();
+                if (gene.length() > 1000000) ++numIntervalsOver1MB;
+            } catch (AnnotationException e) {
+                LOG.debug(e.getMessage() + " -- skipping");
+            }
+        }
+        LOG.debug("Longest gene: " + longestInterval + "; number of genes > 1MB: " + numIntervalsOver1MB);
+        return overlapDetector;
+    }
+
+    private boolean isSequenceRecognized(final String sequence) {
+        return (sequenceDictionary.getSequence(sequence) != null);
+    }
+
+
+    private Gene makeGeneFromRefFlatLines(final List<TabbedTextFileWithHeaderParser.Row> transcriptLines) {
+        final String geneName = transcriptLines.get(0).getField(RefFlatColumns.GENE_NAME.name());
+        final String strandStr = transcriptLines.get(0).getField(RefFlatColumns.STRAND.name());
+        final boolean negative = strandStr.equals("-");
+        final String chromosome = transcriptLines.get(0).getField(RefFlatColumns.CHROMOSOME.name());
+
+        // Figure out the extend of the gene
+        int start = Integer.MAX_VALUE;
+        int end = Integer.MIN_VALUE;
+        for (final TabbedTextFileWithHeaderParser.Row row: transcriptLines) {
+            start = Math.min(start, row.getIntegerField(RefFlatColumns.TX_START.name()) + 1);
+            end   = Math.max(end,   row.getIntegerField(RefFlatColumns.TX_END.name()));
+        }
+
+        final Gene gene = new Gene(chromosome, start, end, negative, geneName);
+
+        for (final TabbedTextFileWithHeaderParser.Row row: transcriptLines) {
+            if (!strandStr.equals(row.getField(RefFlatColumns.STRAND.name()))) {
+                throw new AnnotationException("Strand disagreement in refFlat file for gene " + geneName);
+            }
+            if (!chromosome.equals(row.getField(RefFlatColumns.CHROMOSOME.name()))) {
+                throw new AnnotationException("Chromosome disagreement(" + chromosome + " != " + row.getField(RefFlatColumns.CHROMOSOME.name()) +
+                                                      ") in refFlat file for gene " + geneName);
+            }
+
+            // This adds it to the Gene also
+            final Transcript tx = makeTranscriptFromRefFlatLine(gene, row);
+        }
+
+        return gene;
+    }
+
+    /**
+     * Conversion from 0-based half-open to 1-based inclusive intervals is done here.
+     */
+    private Gene.Transcript makeTranscriptFromRefFlatLine(final Gene gene, final TabbedTextFileWithHeaderParser.Row row) {
+        final String geneName = row.getField(RefFlatColumns.GENE_NAME.name());
+        final String transcriptName = row.getField(RefFlatColumns.TRANSCRIPT_NAME.name());
+        final String transcriptDescription = geneName + ":" + transcriptName;
+        final int exonCount = Integer.parseInt(row.getField(RefFlatColumns.EXON_COUNT.name()));
+        final String[] exonStarts = row.getField(RefFlatColumns.EXON_STARTS.name()).split(",");
+        final String[] exonEnds = row.getField(RefFlatColumns.EXON_ENDS.name()).split(",");
+
+        if (exonCount != exonStarts.length) {
+            throw new AnnotationException("Number of exon starts does not agree with number of exons for " + transcriptDescription);
+        }
+        if (exonCount != exonEnds.length) {
+            throw new AnnotationException("Number of exon ends does not agree with number of exons for " + transcriptDescription);
+        }
+
+        final int transcriptionStart = row.getIntegerField(RefFlatColumns.TX_START.name()) + 1;
+        final int transcriptionEnd = row.getIntegerField(RefFlatColumns.TX_END.name());
+        final int codingStart = row.getIntegerField(RefFlatColumns.CDS_START.name()) + 1;
+        final int codingEnd = row.getIntegerField(RefFlatColumns.CDS_END.name());
+
+        final Transcript tx = gene.addTranscript(transcriptName, transcriptionStart, transcriptionEnd, codingStart, codingEnd, exonCount);
+
+        for (int i = 0; i < exonCount; ++i) {
+            final Exon e = tx.addExon(Integer.parseInt(exonStarts[i]) + 1, Integer.parseInt(exonEnds[i]));
+
+            if (e.start > e.end) {
+                throw new AnnotationException("Exon has 0 or negative extent for " + transcriptDescription);
+            }
+            if (i > 0 && tx.exons[i-1].end >= tx.exons[i].start) {
+                throw new AnnotationException("Exons overlap for " + transcriptDescription);
+            }
+        }
+
+        return tx;
+    }
+}
diff --git a/src/java/picard/cmdline/ClassFinder.java b/src/java/picard/cmdline/ClassFinder.java
new file mode 100644
index 0000000..81bd2cb
--- /dev/null
+++ b/src/java/picard/cmdline/ClassFinder.java
@@ -0,0 +1,183 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2010 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.cmdline;
+
+
+import htsjdk.samtools.util.Log;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.net.URLDecoder;
+import java.util.*;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipFile;
+
+/**
+ * Utility class that can scan for classes in the classpath and find all the ones
+ * annotated with a particular annotation.
+ *
+ * @author Tim Fennell
+ */
+public class ClassFinder {
+    private final Set<Class<?>> classes = new HashSet<Class<?>>();
+    private final ClassLoader loader;
+    private Class<?> parentType;
+    // If not null, only look for classes in this jar
+    private String jarPath = null;
+
+    private static final Log log = Log.getInstance(ClassFinder.class);
+
+    public ClassFinder() {
+        loader = Thread.currentThread().getContextClassLoader();
+    }
+
+    public ClassFinder(final ClassLoader loader) {
+        this.loader = loader;
+    }
+
+    public ClassFinder(final File jarFile) throws IOException {
+        // The class loader must have the context in order to load dependent classes when loading a class,
+        // but the jarPath is remembered so that the iteration over the classpath skips anything other than
+        // the jarPath.
+        jarPath = jarFile.getCanonicalPath();
+        final URL[] urls = {new URL("file", "", jarPath)};
+        loader = new URLClassLoader(urls, Thread.currentThread().getContextClassLoader());
+    }
+
+    /** Convert a filename to a class name by removing '.class' and converting '/'s to '.'s. */
+    public String toClassName(final String filename) {
+        return filename.substring(0, filename.lastIndexOf(".class"))
+                .replace('/', '.').replace('\\', '.');
+    }
+
+    /**
+     * Scans the classpath for classes within the specified package and sub-packages that
+     * extend the parentType. This method can be called repeatedly
+     * with different packages. Classes are accumulated internally and
+     * can be accessed by calling {@link #getClasses()}.
+     */
+    public void find(String packageName, final Class<?> parentType) {
+        this.parentType = parentType;
+        packageName = packageName.replace('.', '/');
+        final Enumeration<URL> urls;
+
+        try {
+            urls = loader.getResources(packageName);
+        }
+        catch (IOException ioe) {
+            log.warn("Could not read package: " + packageName, ioe);
+            return;
+        }
+
+        while (urls.hasMoreElements()) {
+            try {
+                String urlPath = urls.nextElement().getFile();
+                urlPath = URLDecoder.decode(urlPath, "UTF-8");
+                if ( urlPath.startsWith("file:") ) {
+                    urlPath = urlPath.substring(5);
+                }
+                if (urlPath.indexOf('!') > 0) {
+                    urlPath = urlPath.substring(0, urlPath.indexOf('!'));
+                }
+                if (jarPath != null && !jarPath.equals(urlPath)) {
+                    continue;
+                }
+
+                //Log.info("Looking for classes in location: " + urlPath);
+                final File file = new File(urlPath);
+                if ( file.isDirectory() ) {
+                    scanDir(file, packageName);
+                }
+                else {
+                    scanJar(file, packageName);
+                }
+            }
+            catch (IOException ioe) {
+                log.warn("could not read entries", ioe);
+            }
+        }
+    }
+
+    /**
+     * Scans the entries in a ZIP/JAR file for classes under the parent package.
+     * @param file the jar file to be scanned
+     * @param packagePath the top level package to start from
+     */
+    protected void scanJar(final File file, final String packagePath) throws IOException {
+        final ZipFile zip = new ZipFile(file);
+        final Enumeration<? extends ZipEntry> entries = zip.entries();
+        while ( entries.hasMoreElements() ) {
+            final ZipEntry entry = entries.nextElement();
+            final String name = entry.getName();
+            if (name.startsWith(packagePath)) {
+                handleItem(name);
+            }
+        }
+    }
+
+    /**
+     * Scans a directory on the filesystem for classes.
+     * @param file the directory or file to examine
+     * @param path the package path acculmulated so far (e.g. edu/mit/broad)
+     */
+    protected void scanDir(final File file, final String path) {
+        for ( final File child: file.listFiles() ) {
+            final String newPath = (path==null ? child.getName() : path + '/' + child.getName() );
+            if ( child.isDirectory() ) {
+                scanDir(child, newPath);
+            }
+            else {
+                handleItem(newPath);
+            }
+        }
+    }
+
+    /**
+     * Checks an item to see if it is a class and is annotated with the specified
+     * annotation.  If so, adds it to the set, otherwise ignores it.
+     * @param name the path equivelant to the package + class/item name
+     */
+    protected void handleItem(final String name) {
+        if (name.endsWith(".class")) {
+            final String classname = toClassName(name);
+
+            try {
+                final Class<?> type = loader.loadClass(classname);
+                if (parentType.isAssignableFrom(type)) {
+                    this.classes.add(type);
+                }
+            }
+            catch (Throwable t) {
+                log.debug("could not load class: " + classname, t);
+            }
+        }
+    }
+
+    /** Fetches the set of classes discovered so far. */
+    public Set<Class<?>> getClasses() {
+        return this.classes;
+    }
+}
\ No newline at end of file
diff --git a/src/java/picard/cmdline/CommandLineDefaults.java b/src/java/picard/cmdline/CommandLineDefaults.java
new file mode 100644
index 0000000..f9ebe79
--- /dev/null
+++ b/src/java/picard/cmdline/CommandLineDefaults.java
@@ -0,0 +1,48 @@
+package picard.cmdline;
+
+import java.io.File;
+
+/**
+ * Embodies defaults for global values that affect how the Picard Command Line operates. Defaults are encoded in the class
+ * and are also overridable using system properties.
+ *
+ * @author Nils Homer
+ */
+public class CommandLineDefaults {
+
+    /** Implementation note, this is duplicate code stolen from HTSJDK's Default.java
+
+    /**
+     * Decides if we want to write colors to the terminal.
+     */
+    public static final boolean COLOR_STATUS;
+
+    static {
+        COLOR_STATUS = getBooleanProperty("color_status", true);
+    }
+
+    /** Gets a string system property, prefixed with "picard.cmdline." using the default if the property does not exist. */
+    private static String getStringProperty(final String name, final String def) {
+        return System.getProperty("picard.cmdline." + name, def);
+    }
+
+    /** Gets a boolean system property, prefixed with "picard.cmdline." using the default if the property does not exist. */
+    private static boolean getBooleanProperty(final String name, final boolean def) {
+        final String value = getStringProperty(name, new Boolean(def).toString());
+        return Boolean.parseBoolean(value);
+    }
+
+    /** Gets an int system property, prefixed with "picard.cmdline." using the default if the property does not exist. */
+    private static int getIntProperty(final String name, final int def) {
+        final String value = getStringProperty(name, new Integer(def).toString());
+        return Integer.parseInt(value);
+    }
+
+    /** Gets a File system property, prefixed with "picard.cmdline." using the default if the property does not exist. */
+    private static File getFileProperty(final String name, final String def) {
+        final String value = getStringProperty(name, def);
+        // TODO: assert that it is readable
+        return (null == value) ? null : new File(value);
+    }
+}
+
diff --git a/src/java/picard/cmdline/CommandLineParseException.java b/src/java/picard/cmdline/CommandLineParseException.java
new file mode 100644
index 0000000..c9e9758
--- /dev/null
+++ b/src/java/picard/cmdline/CommandLineParseException.java
@@ -0,0 +1,36 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.cmdline;
+
+import picard.PicardException;
+
+public class CommandLineParseException extends PicardException {
+    public CommandLineParseException(final String s) {
+        super(s);
+    }
+
+    public CommandLineParseException(final String s, final Throwable throwable) {
+        super(s, throwable);
+    }
+}
diff --git a/src/java/picard/cmdline/CommandLineParser.java b/src/java/picard/cmdline/CommandLineParser.java
new file mode 100644
index 0000000..3c70bcc
--- /dev/null
+++ b/src/java/picard/cmdline/CommandLineParser.java
@@ -0,0 +1,1257 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.cmdline;
+
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.CollectionUtil.MultiMap;
+import htsjdk.samtools.util.StringUtil;
+import picard.PicardException;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.PrintStream;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * Annotation-driven utility for parsing command-line arguments, checking for errors, and producing usage message.
+ * <p/>
+ * This class supports options of the form KEY=VALUE, plus positional arguments.  Positional arguments must not contain
+ * an equal sign lest they be mistaken for a KEY=VALUE pair.
+ * <p/>
+ * The caller must supply an object that both defines the command line and has the parsed options set into it.
+ * For each possible KEY=VALUE option, there must be a public data member annotated with @Option.  The KEY name is
+ * the name of the data member.  An abbreviated name may also be specified with the shortName attribute of @Option.
+ * If the data member is a List<T>, then the option may be specified multiple times.  The type of the data member,
+ * or the type of the List element must either have a ctor T(String), or must be an Enum.  List options must
+ * be initialized by the caller with some kind of list.  Any other option that is non-null is assumed to have the given
+ * value as a default.  If an option has no default value, and does not have the optional attribute of @Option set,
+ * is required.  For List options, minimum and maximum number of elements may be specified in the @Option annotation.
+ * <p/>
+ * A single List data member may be annotated with the @PositionalArguments.  This behaves similarly to a Option
+ * with List data member: the caller must initialize the data member, the type must be constructable from String, and
+ * min and max number of elements may be specified.  If no @PositionalArguments annotation appears in the object,
+ * then it is an error for the command line to contain positional arguments.
+ * <p/>
+ * A single String public data member may be annotated with @Usage.  This string, if present, is used to
+ * construct the usage message.  Details about the possible options are automatically appended to this string.
+ * If @Usage does not appear, a boilerplate usage message is used.
+ */
+public class CommandLineParser {
+    // For formatting option section of usage message.
+    private static final int OPTION_COLUMN_WIDTH = 30;
+    private static final int DESCRIPTION_COLUMN_WIDTH = 90;
+
+    private static final Boolean[] TRUE_FALSE_VALUES = {Boolean.TRUE, Boolean.FALSE};
+
+    private static final String[] PACKAGES_WITH_WEB_DOCUMENTATION = {"picard"};
+
+    // Use these if no @Usage annotation
+    private static final String defaultUsagePreamble = "Usage: program [options...]\n";
+    private static final String defaultUsagePreambleWithPositionalArguments =
+            "Usage: program [options...] [positional-arguments...]\n";
+    private static final String OPTIONS_FILE = "OPTIONS_FILE";
+
+    private static final String PRECEDENCE_SYMBOL = "++";
+
+    /** name, shortName, description for options built in to framework */
+    private static final String[][] FRAMEWORK_OPTION_DOC = {
+            {"--help", "-h", "Displays options specific to this tool."},
+            {"--stdhelp", "-H", "Displays options specific to this tool AND " +
+                    "options common to all Picard command line tools."},
+            {"--version", null, "Displays program version."}
+    };
+
+    private final Set<String> optionsThatCannotBeOverridden = new HashSet<String>();
+
+    /**
+     * A typical command line program will call this to get the beginning of the usage message,
+     * and then append a description of the program, like this:
+     * <p/>
+     * \@Usage
+     * public String USAGE = CommandLineParser.getStandardUsagePreamble(getClass()) + "Frobnicates the freebozzle."
+     */
+    public static String getStandardUsagePreamble(final Class mainClass) {
+        return "USAGE: " + mainClass.getSimpleName() + " [options]\n\n" +
+                (hasWebDocumentation(mainClass) ?
+                        "Documentation: http://broadinstitute.github.io/picard/command-line-overview.html#" +
+                                mainClass.getSimpleName() + "\n\n"
+                        : "");
+    }
+
+    /**
+     * Determines if a class has web documentation based on its package name
+     *
+     * @param clazz
+     * @return true if the class has web documentation, false otherwise
+     */
+    public static boolean hasWebDocumentation(final Class clazz) {
+        for (final String pkg : PACKAGES_WITH_WEB_DOCUMENTATION) {
+            if (clazz.getPackage().getName().startsWith(pkg)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * @return the link to a FAQ
+     */
+    public static String getFaqLink() {
+        return "To get help, see http://broadinstitute.github.io/picard/index.html#GettingHelp";
+    }
+
+    /**
+     * Find all of the members annotated with @NestedOptions.
+     * This is package scope and static so that CommandLineProgram can use it to provide default implementation
+     * of its own getNestedOptions() method.
+     */
+    static Map<String, Object> getNestedOptions(final Object callerOptions) {
+        // LinkedHashMap so usage message is generated in order of declaration
+        final Map<String, Object> ret = new LinkedHashMap<String, Object>();
+        final Class<?> clazz = callerOptions.getClass();
+        for (final Field field : getAllFields(clazz)) {
+            if (field.getAnnotation(NestedOptions.class) != null) {
+                field.setAccessible(true);
+                try {
+                    ret.put(field.getName(), field.get(callerOptions));
+                } catch (final IllegalAccessException e) {
+                    throw new RuntimeException("Should never happen.", e);
+                }
+            }
+        }
+        return ret;
+    }
+
+    // This is the object that the caller has provided that contains annotations,
+    // and into which the values will be assigned.
+    private final Object callerOptions;
+
+    // For child CommandLineParser, this contains the prefix for the option names, which is needed for generating
+    // the command line.  For non-nested, this is the empty string.
+    private final String prefix;
+    // For non-nested, empty string.  For nested, prefix + "."
+    private final String prefixDot;
+
+    // null if no @PositionalArguments annotation
+    private Field positionalArguments;
+    private int minPositionalArguments;
+    private int maxPositionalArguments;
+
+    // List of all the data members with @Option annotation
+    private final List<OptionDefinition> optionDefinitions = new ArrayList<OptionDefinition>();
+
+    // Maps long name, and short name, if present, to an option definition that is
+    // also in the optionDefinitions list.
+    private final Map<String, OptionDefinition> optionMap = new HashMap<String, OptionDefinition>();
+
+    // Maps child options prefix to CommandLineParser for the child object.
+    // Key: option prefix.
+    private final Map<String, CommandLineParser> childOptionsMap = new LinkedHashMap<String, CommandLineParser>();
+
+    // Holds the command-line arguments for a child option parser.
+    // Key: option prefix.  Value: List of arguments for child corresponding to that prefix (with prefix stripped).
+    private final MultiMap<String, ChildOptionArg> childOptionArguments = new MultiMap<String, ChildOptionArg>();
+
+    // For printing error messages when parsing command line.
+    private PrintStream messageStream;
+
+    // In case implementation wants to get at arg for some reason.
+    private String[] argv;
+
+    private String programVersion = null;
+
+    // The command line used to launch this program, including non-null default options that
+    // weren't explicitly specified. This is used for logging and debugging.
+    private String commandLine = "";
+
+    /**
+     * This attribute is here just to facilitate printing usage for OPTIONS_FILE
+     */
+    public File IGNORE_THIS_PROPERTY;
+
+    // The associated program properties using the CommandLineProgramProperties annotation
+    private final CommandLineProgramProperties programProperties;
+
+    /**
+     * Prepare for parsing command line arguments, by validating annotations.
+     *
+     * @param callerOptions This object contains annotations that define the acceptable command-line options,
+     *                      and ultimately will receive the settings when a command line is parsed.
+     */
+    public CommandLineParser(final Object callerOptions) {
+        this(callerOptions, "");
+    }
+
+    private String getUsagePreamble() {
+        String usagePreamble = "";
+        if (null != programProperties) {
+            usagePreamble += programProperties.usage();
+        } else if (positionalArguments == null) {
+            usagePreamble += defaultUsagePreamble;
+        } else {
+            usagePreamble += defaultUsagePreambleWithPositionalArguments;
+        }
+        if (null != this.programVersion && 0 < this.programVersion.length()) {
+            usagePreamble += "Version: " + getVersion() + "\n";
+        }
+        return usagePreamble;
+    }
+
+    /**
+     * @param prefix Non-empty for child options object.
+     */
+    private CommandLineParser(final Object callerOptions, final String prefix) {
+        this.callerOptions = callerOptions;
+
+        this.prefix = prefix;
+        if (prefix.isEmpty()) {
+            prefixDot = "";
+        } else {
+            prefixDot = prefix + ".";
+        }
+
+
+        for (final Field field : getAllFields(this.callerOptions.getClass())) {
+            if (field.getAnnotation(PositionalArguments.class) != null) {
+                handlePositionalArgumentAnnotation(field);
+            }
+            if (field.getAnnotation(Option.class) != null) {
+                handleOptionAnnotation(field);
+            } else if (!isCommandLineProgram() && field.getAnnotation(NestedOptions.class) != null) {
+                // If callerOptions is an instance of CommandLineProgram, defer creation of child
+                // CommandLineParsers until after parsing options for this parser, in case CommandLineProgram
+                // wants to do something dynamic based on values for this parser.
+                handleNestedOptionsAnnotation(field);
+            }
+        }
+
+        this.programProperties = this.callerOptions.getClass().getAnnotation(CommandLineProgramProperties.class);
+    }
+
+    private boolean isCommandLineProgram() {
+        return callerOptions instanceof CommandLineProgram;
+    }
+
+    private static List<Field> getAllFields(Class clazz) {
+        final List<Field> ret = new ArrayList<Field>();
+        do {
+            ret.addAll(Arrays.asList(clazz.getDeclaredFields()));
+            clazz = clazz.getSuperclass();
+        } while (clazz != null);
+        return ret;
+    }
+
+    public String getVersion() {
+        return this.callerOptions.getClass().getPackage().getImplementationVersion();
+    }
+
+    /**
+     * Print a usage message based on the options object passed to the ctor.
+     *
+     * @param stream Where to write the usage message.
+     */
+    public void usage(final PrintStream stream, final boolean printCommon) {
+        if (prefix.isEmpty()) {
+            stream.print(getStandardUsagePreamble(callerOptions.getClass()) + getUsagePreamble());
+            stream.println("\nVersion: " + getVersion());
+            stream.println("\n\nOptions:\n");
+
+            for (final String[] optionDoc : FRAMEWORK_OPTION_DOC) {
+                printOptionParamUsage(stream, optionDoc[0], optionDoc[1], null, optionDoc[2]);
+            }
+        }
+
+        if (!optionDefinitions.isEmpty()) {
+            for (final OptionDefinition optionDefinition : optionDefinitions) {
+                if (printCommon || !optionDefinition.isCommon) printOptionUsage(stream, optionDefinition);
+            }
+        }
+
+        if (printCommon) {
+            final Field fileField;
+            try {
+                fileField = getClass().getField("IGNORE_THIS_PROPERTY");
+            } catch (final NoSuchFieldException e) {
+                throw new PicardException("Should never happen", e);
+            }
+            final OptionDefinition optionsFileOptionDefinition =
+                    new OptionDefinition(fileField, OPTIONS_FILE, "",
+                            "File of OPTION_NAME=value pairs.  No positional parameters allowed.  Unlike command-line options, " +
+                                    "unrecognized options are ignored.  " + "A single-valued option set in an options file may be overridden " +
+                                    "by a subsequent command-line option.  " +
+                                    "A line starting with '#' is considered a comment.",
+                            false, true, false, 0, Integer.MAX_VALUE, null, true, new String[0]);
+            printOptionUsage(stream, optionsFileOptionDefinition);
+        }
+
+        // Generate usage for child parsers.
+        final Collection<CommandLineParser> childClps;
+        childClps = getChildParsersForHelp();
+        for (final CommandLineParser childClp : childClps) {
+            childClp.usage(stream, printCommon);
+        }
+    }
+
+    private Collection<CommandLineParser> getChildParsersForHelp() {
+        final Collection<CommandLineParser> childClps;
+        if (isCommandLineProgram()) {
+            childClps = new ArrayList<CommandLineParser>();
+            for (final Map.Entry<String, Object> entry :
+                    ((CommandLineProgram) callerOptions).getNestedOptionsForHelp().entrySet()) {
+                if (entry.getKey().contains(".")) {
+                    throw new IllegalArgumentException("Prefix for nested options should not contain period: " + entry.getKey());
+                }
+                childClps.add(new CommandLineParser(entry.getValue(), prefixDot + entry.getKey()));
+            }
+        } else {
+            childClps = childOptionsMap.values();
+        }
+        return childClps;
+    }
+
+
+    public void htmlUsage(final PrintStream stream, final String programName, final boolean printCommon) {
+        // TODO: Should HTML escape usage preamble and option usage, including line breaks
+        stream.println("<a id=\"" + programName + "\"/>");
+        stream.println("<h3>" + programName + "</h3>");
+        stream.println("<section>");
+        stream.println("<p>" + getUsagePreamble() + "</p>");
+        boolean hasOptions = false;
+        for (final OptionDefinition optionDefinition : optionDefinitions) {
+            if (!optionDefinition.isCommon || printCommon) {
+                hasOptions = true;
+                break;
+            }
+        }
+        if (hasOptions) {
+            htmlPrintOptions(stream, printCommon);
+        }
+        stream.println("</section>");
+    }
+
+    public void htmlPrintOptions(final PrintStream stream, final boolean printCommon) {
+        stream.println("<table>");
+        stream.println("<tr><th>Option</th><th>Description</th></tr>");
+        if (printCommon) {
+            for (final String[] optionDoc : FRAMEWORK_OPTION_DOC) {
+                stream.println("<tr><td>" + optionDoc[0] + "</td><td>" +
+                        htmlEscape(optionDoc[2]) + "</td></tr>");
+            }
+        }
+        htmlPrintOptionTableRows(stream, printCommon);
+        stream.println("</table>");
+    }
+
+    /**
+     * Prints options as rows in an HTML table.
+     *
+     * @param stream
+     * @param printCommon
+     */
+    private void htmlPrintOptionTableRows(final PrintStream stream, final boolean printCommon) {
+        for (final OptionDefinition optionDefinition : optionDefinitions) {
+            if (!optionDefinition.isCommon || printCommon) {
+                printHtmlOptionUsage(stream, optionDefinition);
+            }
+        }
+        for (final CommandLineParser childParser : getChildParsersForHelp()) {
+            childParser.htmlPrintOptionTableRows(stream, false);
+        }
+
+    }
+
+    private static String htmlEscape(String str) {
+        // May need more here
+        str = str.replaceAll("<", "<");
+        str = str.replaceAll("\n", "\n<p>");
+        return str;
+    }
+
+    /**
+     * Parse command-line options, and store values in callerOptions object passed to ctor.
+     *
+     * @param messageStream Where to write error messages.
+     * @param args          Command line tokens.
+     * @return true if command line is valid.
+     */
+    public boolean parseOptions(final PrintStream messageStream, final String[] args) {
+        this.argv = args;
+        this.messageStream = messageStream;
+        if (prefix.isEmpty()) {
+            commandLine = callerOptions.getClass().getName();
+        }
+        for (int i = 0; i < args.length; ++i) {
+            final String arg = args[i];
+            if (arg.equals("-h") || arg.equals("--help")) {
+                usage(messageStream, false);
+                return false;
+            }
+            if (arg.equals("-H") || arg.equals("--stdhelp")) {
+                usage(messageStream, true);
+                return false;
+            }
+
+            if (arg.equals("--version")) {
+                messageStream.println(getVersion());
+                return false;
+            }
+
+
+            final String[] pair = arg.split("=", 2);
+            if (pair.length == 2 && pair[1].length() == 0) {
+
+                if (i < args.length - 1) {
+                    pair[1] = args[++i];
+                }
+            }
+            if (pair.length == 2) {
+                if (!parseOption(pair[0], pair[1], false)) {
+                    messageStream.println();
+                    usage(messageStream, true);
+                    return false;
+                }
+            } else if (!parsePositionalArgument(arg)) {
+                messageStream.println();
+                usage(messageStream, false);
+                return false;
+            }
+        }
+        if (!checkNumArguments()) {
+            messageStream.println();
+            usage(messageStream, false);
+            return false;
+        }
+
+        if (!parseChildOptions()) {
+            messageStream.println();
+            usage(messageStream, false);
+            return false;
+        }
+
+        return true;
+    }
+
+    /**
+     * After command line has been parsed, make sure that all required options have values, and that
+     * lists with minimum # of elements have sufficient.
+     *
+     * @return true if valid
+     */
+    private boolean checkNumArguments() {
+        //Also, since we're iterating over all options and args, use this opportunity to recreate the commandLineString
+        final StringBuilder commandLineString = new StringBuilder();
+        try {
+            for (final OptionDefinition optionDefinition : optionDefinitions) {
+                final String fullName = prefixDot + optionDefinition.name;
+                final StringBuilder mutextOptionNames = new StringBuilder();
+                for (final String mutexOption : optionDefinition.mutuallyExclusive) {
+                    final OptionDefinition mutextOptionDef = optionMap.get(mutexOption);
+                    if (mutextOptionDef != null && mutextOptionDef.hasBeenSet) {
+                        mutextOptionNames.append(" ").append(prefixDot).append(mutextOptionDef.name);
+                    }
+                }
+                if (optionDefinition.hasBeenSet && mutextOptionNames.length() > 0) {
+                    messageStream.println("ERROR: Option '" + fullName +
+                            "' cannot be used in conjunction with option(s)" +
+                            mutextOptionNames.toString());
+                    return false;
+                }
+                if (optionDefinition.isCollection) {
+                    final Collection c = (Collection) optionDefinition.field.get(callerOptions);
+                    if (c.size() < optionDefinition.minElements) {
+                        messageStream.println("ERROR: Option '" + fullName + "' must be specified at least " +
+                                optionDefinition.minElements + " times.");
+                        return false;
+                    }
+                } else if (!optionDefinition.optional && !optionDefinition.hasBeenSet &&
+                        !optionDefinition.hasBeenSetFromParent && mutextOptionNames.length() == 0) {
+                    messageStream.print("ERROR: Option '" + fullName + "' is required");
+                    if (optionDefinition.mutuallyExclusive.isEmpty()) {
+                        messageStream.println(".");
+                    } else {
+                        messageStream.println(" unless any of " + optionDefinition.mutuallyExclusive +
+                                " are specified.");
+                    }
+                    return false;
+                }
+
+            }
+            if (positionalArguments != null) {
+                final Collection c = (Collection) positionalArguments.get(callerOptions);
+                if (c.size() < minPositionalArguments) {
+                    messageStream.println("ERROR: At least " + minPositionalArguments +
+                            " positional arguments must be specified.");
+                    return false;
+                }
+                for (final Object posArg : c) {
+                    commandLineString.append(" ").append(posArg.toString());
+                }
+            }
+            //first, append args that were explicitly set
+            for (final OptionDefinition optionDefinition : optionDefinitions) {
+                if (optionDefinition.hasBeenSet) {
+                    commandLineString.append(" ").append(prefixDot).append(optionDefinition.name).append("=").append(
+                            optionDefinition.field.get(callerOptions));
+                }
+            }
+            commandLineString.append("   "); //separator to tell the 2 apart
+            //next, append args that weren't explicitly set, but have a default value
+            for (final OptionDefinition optionDefinition : optionDefinitions) {
+                if (!optionDefinition.hasBeenSet && !optionDefinition.defaultValue.equals("null")) {
+                    commandLineString.append(" ").append(prefixDot).append(optionDefinition.name).append("=").append(
+                            optionDefinition.defaultValue);
+                }
+            }
+            this.commandLine += commandLineString.toString();
+            return true;
+        } catch (final IllegalAccessException e) {
+            // Should never happen because lack of publicness has already been checked.
+            throw new RuntimeException(e);
+        }
+
+
+    }
+
+    private boolean parsePositionalArgument(final String stringValue) {
+        if (positionalArguments == null) {
+            messageStream.println("ERROR: Invalid argument '" + stringValue + "'.");
+            return false;
+        }
+        final Object value;
+        try {
+            value = constructFromString(getUnderlyingType(positionalArguments), stringValue);
+        } catch (final CommandLineParseException e) {
+            messageStream.println("ERROR: " + e.getMessage());
+            return false;
+        }
+        final Collection c;
+        try {
+            c = (Collection) positionalArguments.get(callerOptions);
+        } catch (final IllegalAccessException e) {
+            throw new RuntimeException(e);
+        }
+        if (c.size() >= maxPositionalArguments) {
+            messageStream.println("ERROR: No more than " + maxPositionalArguments +
+                    " positional arguments may be specified on the command line.");
+            return false;
+        }
+        c.add(value);
+        return true;
+    }
+
+    private boolean parseOption(final String key, final String stringValue, final boolean optionsFile) {
+        return parseOption(key, stringValue, optionsFile, false);
+    }
+
+    private boolean parseOption(String key, final String stringValue, final boolean optionsFile,
+                                boolean precedenceSet) {
+        key = key.toUpperCase();
+        if (key.equals(OPTIONS_FILE)) {
+            commandLine += " " + prefix + OPTIONS_FILE + "=" + stringValue;
+            return parseOptionsFile(stringValue);
+        }
+
+        // Check to see if the precedence symbol was used
+        if (key.startsWith(PRECEDENCE_SYMBOL)) {
+            key = key.substring(PRECEDENCE_SYMBOL.length());
+            precedenceSet = true;
+        }
+
+        // Save child options for later processing.
+        final Integer prefixIndex = key.indexOf('.');
+        if (prefixIndex != -1) {
+            final String prefix = key.substring(0, prefixIndex);
+            final String subKey = key.substring(prefixIndex + 1);
+            if (!subKey.isEmpty()) {
+                childOptionArguments.append(prefix, new ChildOptionArg(subKey, stringValue, optionsFile,
+                        precedenceSet));
+                return true;
+            } else {
+                messageStream.println("ERROR: Unrecognized option: " + key);
+                return false;
+            }
+        }
+
+        final OptionDefinition optionDefinition = optionMap.get(key);
+        if (optionDefinition == null) {
+            if (optionsFile) {
+                // Silently ignore unrecognized option from options file
+                return true;
+            }
+            messageStream.println("ERROR: Unrecognized option: " + key);
+            return false;
+        }
+
+        // Check to see if the option has been "fixed" already
+        if (this.optionsThatCannotBeOverridden.contains(optionDefinition.name)) {
+            return true;
+        } else if (precedenceSet) {
+            this.optionsThatCannotBeOverridden.add(optionDefinition.name);
+        }
+
+        if (!optionDefinition.isCollection) {
+            if (optionDefinition.hasBeenSet && !optionDefinition.hasBeenSetFromOptionsFile) {
+                messageStream.println("ERROR: Option '" + key + "' cannot be specified more than once.");
+                return false;
+            }
+        }
+        final Object value;
+        try {
+            if (stringValue.equals("null")) {
+                //"null" is a special value that allows the user to override any default
+                //value set for this arg. It can only be used for optional args. When
+                //used for a list arg, it will clear the list.
+                if (optionDefinition.optional) {
+                    value = null;
+                } else {
+                    messageStream.println("ERROR: non-null value must be provided for '" + key + "'.");
+                    return false;
+                }
+            } else {
+                value = constructFromString(getUnderlyingType(optionDefinition.field), stringValue);
+            }
+
+        } catch (final CommandLineParseException e) {
+            messageStream.println("ERROR: " + e.getMessage());
+            return false;
+        }
+        try {
+            if (optionDefinition.isCollection) {
+                final Collection c = (Collection) optionDefinition.field.get(callerOptions);
+                if (value == null) {
+                    //user specified this arg=null which is interpreted as empty list
+                    c.clear();
+                } else if (c.size() >= optionDefinition.maxElements) {
+                    messageStream.println("ERROR: Option '" + key + "' cannot be used more than " +
+                            optionDefinition.maxElements + " times.");
+                    return false;
+                } else {
+                    c.add(value);
+                }
+                optionDefinition.hasBeenSet = true;
+                optionDefinition.hasBeenSetFromOptionsFile = optionsFile;
+            } else {
+                //get all fields with this name and set them to the argument.
+                final String fieldName = optionDefinition.field.getName();
+                final Field[] fields = callerOptions.getClass().getFields();
+                for (final Field field : fields) {
+                    if (field.getName().equals(fieldName)) {
+                        field.set(callerOptions, value);
+                        optionDefinition.hasBeenSet = true;
+                    }
+                }
+                if (!optionDefinition.hasBeenSet) {
+                    optionDefinition.field.set(callerOptions, value);
+                    optionDefinition.hasBeenSet = true;
+                }
+               optionDefinition.hasBeenSetFromOptionsFile = optionsFile;
+            }
+        } catch (final IllegalAccessException e) {
+            // Should never happen because we only iterate through public fields.
+            throw new RuntimeException(e);
+        }
+        return true;
+    }
+
+    /**
+     * Parsing of options from file is looser than normal.  Any unrecognized options are
+     * ignored, and a single-valued option that is set in a file may be overridden by a
+     * subsequent appearance of that option.
+     * A line that starts with '#' is ignored.
+     *
+     * @param optionsFile
+     * @return false if a fatal error occurred
+     */
+    private boolean parseOptionsFile(final String optionsFile) {
+        return parseOptionsFile(optionsFile, true);
+    }
+
+    /**
+     * @param optionFileStyleValidation true: unrecognized options are silently ignored; and a single-valued option may be overridden.
+     *                                  false: standard rules as if the options in the file were on the command line directly.
+     * @return
+     */
+    public boolean parseOptionsFile(final String optionsFile, final boolean optionFileStyleValidation) {
+        BufferedReader reader = null;
+        try {
+            reader = new BufferedReader(new FileReader(optionsFile));
+            String line;
+            while ((line = reader.readLine()) != null) {
+                if (line.startsWith("#") || line.trim().length() == 0) {
+                    continue;
+                }
+                final String[] pair = line.split("=", 2);
+                if (pair.length == 2) {
+                    if (!parseOption(pair[0], pair[1], optionFileStyleValidation)) {
+                        messageStream.println();
+                        usage(messageStream, true);
+                        return false;
+                    }
+                } else {
+                    messageStream.println("Strange line in OPTIONS_FILE " + optionsFile + ": " + line);
+                    usage(messageStream, true);
+                    return false;
+                }
+            }
+            reader.close();
+            return true;
+
+        } catch (final IOException e) {
+            throw new PicardException("I/O error loading OPTIONS_FILE=" + optionsFile, e);
+        } finally {
+            CloserUtil.close(reader);
+        }
+    }
+
+    private void printHtmlOptionUsage(final PrintStream stream, final OptionDefinition optionDefinition) {
+        final String type = getUnderlyingType(optionDefinition.field).getSimpleName();
+        final String optionLabel = prefixDot + optionDefinition.name + " (" + type + ")";
+        stream.println("<tr><td>" + optionLabel + "</td><td>" +
+                htmlEscape(makeOptionDescription(optionDefinition)) + "</td></tr>");
+    }
+
+    private void printOptionUsage(final PrintStream stream, final OptionDefinition optionDefinition) {
+        printOptionParamUsage(stream, optionDefinition.name, optionDefinition.shortName,
+                getUnderlyingType(optionDefinition.field).getSimpleName(),
+                makeOptionDescription(optionDefinition));
+    }
+
+
+    private void printOptionParamUsage(final PrintStream stream, final String name, final String shortName,
+                                       final String type, final String optionDescription) {
+        String optionLabel = prefixDot + name;
+        if (type != null) optionLabel += "=" + type;
+
+        stream.print(optionLabel);
+        if (shortName != null && shortName.length() > 0) {
+            stream.println();
+            optionLabel = prefixDot + shortName;
+            if (type != null) optionLabel += "=" + type;
+            stream.print(optionLabel);
+        }
+
+        int numSpaces = OPTION_COLUMN_WIDTH - optionLabel.length();
+        if (optionLabel.length() > OPTION_COLUMN_WIDTH) {
+            stream.println();
+            numSpaces = OPTION_COLUMN_WIDTH;
+        }
+        printSpaces(stream, numSpaces);
+        final String wrappedDescription = StringUtil.wordWrap(optionDescription, DESCRIPTION_COLUMN_WIDTH);
+        final String[] descriptionLines = wrappedDescription.split("\n");
+        for (int i = 0; i < descriptionLines.length; ++i) {
+            if (i > 0) {
+                printSpaces(stream, OPTION_COLUMN_WIDTH);
+            }
+            stream.println(descriptionLines[i]);
+        }
+        stream.println();
+    }
+
+    private String makeOptionDescription(final OptionDefinition optionDefinition) {
+        final StringBuilder sb = new StringBuilder();
+        if (optionDefinition.doc.length() > 0) {
+            sb.append(optionDefinition.doc);
+            sb.append("  ");
+        }
+        if (optionDefinition.optional) {
+            sb.append("Default value: ");
+            sb.append(optionDefinition.defaultValue);
+            sb.append(". ");
+            if (!optionDefinition.defaultValue.equals("null")) {
+                sb.append("This option can be set to 'null' to clear the default value. ");
+            }
+        } else if (!optionDefinition.isCollection) {
+            sb.append("Required. ");
+        }
+        Object[] enumConstants = getUnderlyingType(optionDefinition.field).getEnumConstants();
+        if (enumConstants == null && getUnderlyingType(optionDefinition.field) == Boolean.class) {
+            enumConstants = TRUE_FALSE_VALUES;
+        }
+
+        if (enumConstants != null) {
+            final Boolean isClpEnum = enumConstants.length > 0 && (enumConstants[0] instanceof ClpEnum);
+
+            sb.append("Possible values: {");
+            if (isClpEnum) sb.append("\n");
+
+            for (int i = 0; i < enumConstants.length; ++i) {
+                if (i > 0 && !isClpEnum) {
+                    sb.append(", ");
+                }
+                sb.append(enumConstants[i].toString());
+
+                if (isClpEnum) {
+                    sb.append(" (").append(((ClpEnum) enumConstants[i]).getHelpDoc()).append(")\n");
+                }
+            }
+            sb.append("} ");
+        }
+        if (optionDefinition.isCollection) {
+            if (optionDefinition.minElements == 0) {
+                if (optionDefinition.maxElements == Integer.MAX_VALUE) {
+                    sb.append("This option may be specified 0 or more times. ");
+                } else {
+                    sb.append("This option must be specified no more than ").append(optionDefinition.maxElements).append(
+                            " times. ");
+                }
+            } else if (optionDefinition.maxElements == Integer.MAX_VALUE) {
+                sb.append("This option must be specified at least ").append(optionDefinition.minElements).append(" times. ");
+            } else {
+                sb.append("This option may be specified between ").append(optionDefinition.minElements).append(
+                        " and ").append(optionDefinition.maxElements).append(" times. ");
+            }
+
+            if (!optionDefinition.defaultValue.equals("null")) {
+                sb.append("This option can be set to 'null' to clear the default list. ");
+            }
+
+        }
+        if (!optionDefinition.mutuallyExclusive.isEmpty()) {
+            sb.append(" Cannot be used in conjuction with option(s)");
+            for (final String option : optionDefinition.mutuallyExclusive) {
+                final OptionDefinition mutextOptionDefinition = optionMap.get(option);
+
+                if (mutextOptionDefinition == null) {
+                    throw new PicardException("Invalid option definition in source code.  " + option +
+                            " doesn't match any known option.");
+                }
+
+                sb.append(" ").append(mutextOptionDefinition.name);
+                if (mutextOptionDefinition.shortName.length() > 0) {
+                    sb.append(" (").append(mutextOptionDefinition.shortName).append(")");
+                }
+            }
+        }
+        return sb.toString();
+    }
+
+    private void printSpaces(final PrintStream stream, final int numSpaces) {
+        final StringBuilder sb = new StringBuilder();
+        for (int i = 0; i < numSpaces; ++i) {
+            sb.append(" ");
+        }
+        stream.print(sb);
+    }
+
+    private void handleOptionAnnotation(final Field field) {
+        try {
+            field.setAccessible(true);
+            final Option optionAnnotation = field.getAnnotation(Option.class);
+            final boolean isCollection = isCollectionField(field);
+            if (isCollection) {
+                if (optionAnnotation.maxElements() == 0) {
+                    throw new CommandLineParserDefinitionException("@Option member " + field.getName() +
+                            "has maxElements = 0");
+                }
+                if (optionAnnotation.minElements() > optionAnnotation.maxElements()) {
+                    throw new CommandLineParserDefinitionException("In @Option member " + field.getName() +
+                            ", minElements cannot be > maxElements");
+                }
+                if (field.get(callerOptions) == null) {
+                    createCollection(field, callerOptions, "@Option");
+                }
+            }
+            if (!canBeMadeFromString(getUnderlyingType(field))) {
+                throw new CommandLineParserDefinitionException("@Option member " + field.getName() +
+                        " must have a String ctor or be an enum");
+            }
+
+            final OptionDefinition optionDefinition = new OptionDefinition(field,
+                    field.getName(),
+                    optionAnnotation.shortName(),
+                    optionAnnotation.doc(), optionAnnotation.optional() || (field.get(callerOptions) != null),
+                    optionAnnotation.overridable(), isCollection, optionAnnotation.minElements(),
+                    optionAnnotation.maxElements(), field.get(callerOptions), optionAnnotation.common(),
+                    optionAnnotation.mutex());
+
+            for (final String option : optionAnnotation.mutex()) {
+                final OptionDefinition mutextOptionDef = optionMap.get(option);
+                if (mutextOptionDef != null) {
+                    mutextOptionDef.mutuallyExclusive.add(field.getName());
+                }
+            }
+            if (!optionDefinition.overridable && optionMap.containsKey(optionDefinition.name)) {
+                throw new CommandLineParserDefinitionException(optionDefinition.name + " has already been used.");
+            }
+            if (optionDefinition.shortName.length() > 0) {
+                if (optionMap.containsKey(optionDefinition.shortName)) {
+                    if (!optionDefinition.overridable) {
+                        throw new CommandLineParserDefinitionException(optionDefinition.shortName +
+                                " has already been used");
+                    }
+                } else {
+                    optionMap.put(optionDefinition.shortName, optionDefinition);
+                }
+            }
+            //if we are overridable and we already exist don't add again to the option defs
+            if (!(optionDefinition.overridable && optionMap.containsKey(optionDefinition.name))) {
+                optionDefinitions.add(optionDefinition);
+                optionMap.put(optionDefinition.name, optionDefinition);
+            }
+            //we are overridable but we already exist in the map so we need to update the hidden field value
+            else if (optionMap.containsKey(optionDefinition.name)) {
+                field.set(this.callerOptions, optionMap.get(optionDefinition.name).field.get(callerOptions));
+            }
+        } catch (final IllegalAccessException e) {
+            throw new CommandLineParserDefinitionException(field.getName() +
+                    " must have public visibility to have @Option annotation");
+        }
+    }
+
+    private void handlePositionalArgumentAnnotation(final Field field) {
+        if (positionalArguments != null) {
+            throw new CommandLineParserDefinitionException
+                    ("@PositionalArguments cannot be used more than once in an option class.");
+        }
+        field.setAccessible(true);
+        positionalArguments = field;
+        if (!isCollectionField(field)) {
+            throw new CommandLineParserDefinitionException("@PositionalArguments must be applied to a Collection");
+        }
+
+        if (!canBeMadeFromString(getUnderlyingType(field))) {
+            throw new CommandLineParserDefinitionException("@PositionalParameters member " + field.getName() +
+                    "does not have a String ctor");
+        }
+
+        final PositionalArguments positionalArgumentsAnnotation = field.getAnnotation(PositionalArguments.class);
+        minPositionalArguments = positionalArgumentsAnnotation.minElements();
+        maxPositionalArguments = positionalArgumentsAnnotation.maxElements();
+        if (minPositionalArguments > maxPositionalArguments) {
+            throw new CommandLineParserDefinitionException("In @PositionalArguments, minElements cannot be > maxElements");
+        }
+        try {
+            if (field.get(callerOptions) == null) {
+                createCollection(field, callerOptions, "@PositionalParameters");
+            }
+        } catch (final IllegalAccessException e) {
+            throw new CommandLineParserDefinitionException(field.getName() +
+                    " must have public visibility to have @PositionalParameters annotation");
+
+        }
+    }
+
+    private void handleNestedOptionsAnnotation(final Field field) {
+        field.setAccessible(true);
+        try {
+            childOptionsMap.put(field.getName(),
+                    new CommandLineParser(field.get(this.callerOptions), prefixDot + field.getName()));
+        } catch (final IllegalAccessException e) {
+            throw new CommandLineParserDefinitionException("Should never happen.", e);
+        }
+    }
+
+    private boolean isCollectionField(final Field field) {
+        try {
+            field.getType().asSubclass(Collection.class);
+            return true;
+        } catch (final ClassCastException e) {
+            return false;
+        }
+    }
+
+    private void createCollection(final Field field, final Object callerOptions, final String annotationType)
+            throws IllegalAccessException {
+        try {
+            field.set(callerOptions, field.getType().newInstance());
+        } catch (final Exception ex) {
+            try {
+                field.set(callerOptions, new ArrayList());
+            } catch (final IllegalArgumentException e) {
+                throw new CommandLineParserDefinitionException("In collection " + annotationType +
+                        " member " + field.getName() +
+                        " cannot be constructed or auto-initialized with ArrayList, so collection must be initialized explicitly.");
+            }
+
+        }
+
+    }
+
+    /**
+     * Returns the type that each instance of the argument needs to be converted to. In
+     * the case of primitive fields it will return the wrapper type so that String
+     * constructors can be found.
+     */
+    private Class getUnderlyingType(final Field field) {
+        if (isCollectionField(field)) {
+            final ParameterizedType clazz = (ParameterizedType) (field.getGenericType());
+            final Type[] genericTypes = clazz.getActualTypeArguments();
+            if (genericTypes.length != 1) {
+                throw new CommandLineParserDefinitionException("Strange collection type for field " +
+                        field.getName());
+            }
+            return (Class) genericTypes[0];
+
+        } else {
+            final Class type = field.getType();
+            if (type == Byte.TYPE) return Byte.class;
+            if (type == Short.TYPE) return Short.class;
+            if (type == Integer.TYPE) return Integer.class;
+            if (type == Long.TYPE) return Long.class;
+            if (type == Float.TYPE) return Float.class;
+            if (type == Double.TYPE) return Double.class;
+            if (type == Boolean.TYPE) return Boolean.class;
+
+            return type;
+        }
+    }
+
+    // True if clazz is an enum, or if it has a ctor that takes a single String argument.
+    private boolean canBeMadeFromString(final Class clazz) {
+        if (clazz.isEnum()) {
+            return true;
+        }
+        try {
+            clazz.getConstructor(String.class);
+            return true;
+        } catch (final NoSuchMethodException e) {
+            return false;
+        }
+    }
+
+    private Object constructFromString(final Class clazz, final String s) {
+        try {
+            if (clazz.isEnum()) {
+                try {
+                    return Enum.valueOf(clazz, s);
+                } catch (final IllegalArgumentException e) {
+                    throw new CommandLineParseException("'" + s + "' is not a valid value for " +
+                            clazz.getSimpleName() + ".", e);
+                }
+            }
+            final Constructor ctor = clazz.getConstructor(String.class);
+            return ctor.newInstance(s);
+        } catch (final NoSuchMethodException e) {
+            // Shouldn't happen because we've checked for presence of ctor
+            throw new CommandLineParseException("Cannot find string ctor for " + clazz.getName(), e);
+        } catch (final InstantiationException e) {
+            throw new CommandLineParseException("Abstract class '" + clazz.getSimpleName() +
+                    "'cannot be used for an option value type.", e);
+        } catch (final IllegalAccessException e) {
+            throw new CommandLineParseException("String constructor for option value type '" + clazz.getSimpleName() +
+                    "' must be public.", e);
+        } catch (final InvocationTargetException e) {
+            throw new CommandLineParseException("Problem constructing " + clazz.getSimpleName() +
+                    " from the string '" + s + "'.", e.getCause());
+        }
+    }
+
+    public String[] getArgv() {
+        return argv;
+    }
+
+    public interface ClpEnum {
+        String getHelpDoc();
+    }
+
+    protected static class OptionDefinition {
+        final Field field;
+        final String name;
+        final String shortName;
+        final String doc;
+        final boolean optional;
+        final boolean overridable;
+        final boolean isCollection;
+        final int minElements;
+        final int maxElements;
+        final String defaultValue;
+        final boolean isCommon;
+        boolean hasBeenSet = false;
+        boolean hasBeenSetFromOptionsFile = false;
+        boolean hasBeenSetFromParent = false;
+        final Set<String> mutuallyExclusive;
+
+        private OptionDefinition(final Field field, final String name, final String shortName, final String doc,
+                                 final boolean optional, final boolean overridable, boolean collection, final int minElements,
+                                 final int maxElements, final Object defaultValue, final boolean isCommon,
+                                 final String[] mutuallyExclusive) {
+            this.field = field;
+            this.name = name.toUpperCase();
+            this.shortName = shortName.toUpperCase();
+            this.doc = doc;
+            this.optional = optional;
+            this.overridable = overridable;
+            isCollection = collection;
+            this.minElements = minElements;
+            this.maxElements = maxElements;
+            if (defaultValue != null) {
+                if (isCollection && ((Collection) defaultValue).isEmpty()) {
+                    //treat empty collections the same as uninitialized primitive types
+                    this.defaultValue = "null";
+                } else {
+                    //this is an intialized primitive type or a non-empty collection
+                    this.defaultValue = defaultValue.toString();
+                }
+            } else {
+                this.defaultValue = "null";
+            }
+            this.isCommon = isCommon;
+            this.mutuallyExclusive = new HashSet<String>(Arrays.asList(mutuallyExclusive));
+        }
+    }
+
+    /**
+     * Holds a command-line argument that is destined for a child parser.  Prefix has been stripped from name.
+     */
+    private static class ChildOptionArg {
+        final String name;
+        final String value;
+        final boolean fromFile;
+        final boolean precedenceSet;
+
+        private ChildOptionArg(final String name, final String value, final boolean fromFile, final boolean precedenceSet) {
+            this.name = name;
+            this.value = value;
+            this.fromFile = fromFile;
+            this.precedenceSet = precedenceSet;
+        }
+    }
+
+    /**
+     * Propagate options from parent to children as appropriate, parse command line options for
+     * children, and then validate that children have been properly initialized.  This is done recursively
+     * for any child that itself has a child.
+     *
+     * @return true if parsing is successful.  Writes any errors to the message stream.
+     */
+    private boolean parseChildOptions() {
+
+        // If callerOptions is not an instance of CommandLineProgram, then the child options are populated
+        // when annotations are processed.
+        if (isCommandLineProgram()) {
+            final CommandLineProgram commandLineProgram = (CommandLineProgram) callerOptions;
+            for (final Map.Entry<String, Object> entry : commandLineProgram.getNestedOptions().entrySet()) {
+                if (entry.getKey().contains(".")) {
+                    throw new IllegalArgumentException("Prefix for nested options should not contain period: " + entry.getKey());
+                }
+                childOptionsMap.put(entry.getKey(),
+                        new CommandLineParser(entry.getValue(), prefixDot + entry.getKey()));
+            }
+        }
+        boolean retval = true;
+
+        // Check for child options for which there is no parser
+        for (final String prefix : childOptionArguments.keySet()) {
+            if (!childOptionsMap.containsKey(prefix)) {
+                messageStream.println("ERROR: Option prefix '" + prefix + "' is not valid.");
+                retval = false;
+            }
+        }
+
+        try {
+            // Propagate options from this parser to child parsers
+            for (final OptionDefinition optionDefinition : optionDefinitions) {
+                // Handling collection value propagation is confusing, so just don't do it.
+                if (optionDefinition.isCollection) continue;
+                final Object value = optionDefinition.field.get(callerOptions);
+                if (value == null) continue;
+                for (final CommandLineParser childParser : childOptionsMap.values()) {
+                    maybePropagateValueToChild(childParser, optionDefinition, value);
+                }
+            }
+        } catch (final IllegalAccessException e) {
+            throw new RuntimeException("Should never happen", e);
+        }
+
+        for (final Map.Entry<String, CommandLineParser> entry : childOptionsMap.entrySet()) {
+            final String prefix = entry.getKey();
+            final CommandLineParser childParser = entry.getValue();
+            childParser.messageStream = this.messageStream;
+            final Collection<ChildOptionArg> childOptionArgs = this.childOptionArguments.get(prefix);
+            if (childOptionArgs != null) {
+                for (final ChildOptionArg arg : childOptionArgs) {
+                    childParser.parseOption(arg.name, arg.value, arg.fromFile, arg.precedenceSet);
+                }
+            }
+            if (!childParser.checkNumArguments()) {
+                retval = false;
+            }
+            if (!childParser.parseChildOptions()) {
+                retval = false;
+            }
+            this.commandLine += " " + childParser.getCommandLine();
+        }
+
+        return retval;
+    }
+
+    /**
+     * Propagate value from parent to child if appropriate to do so.
+     */
+    private void maybePropagateValueToChild(final CommandLineParser childParser,
+                                            final OptionDefinition optionDefinition,
+                                            final Object value) {
+        try {
+            final OptionDefinition childOptionDefinition = childParser.optionMap.get(optionDefinition.name);
+            if (childOptionDefinition != null) {
+                final Object childValue = childOptionDefinition.field.get(childParser.callerOptions);
+                if (childValue == null || optionDefinition.hasBeenSet) {
+                    childOptionDefinition.field.set(childParser.callerOptions, value);
+                    childOptionDefinition.hasBeenSetFromParent = true;
+                    childOptionDefinition.hasBeenSetFromOptionsFile = optionDefinition.hasBeenSetFromOptionsFile;
+                }
+            }
+        } catch (final IllegalAccessException e) {
+            throw new RuntimeException("Should never happen", e);
+        }
+    }
+
+    /**
+     * The commandline used to run this program, including any default args that
+     * weren't necessarily specified. This is used for logging and debugging.
+     * <p/>
+     * NOTE: {@link #parseOptions(PrintStream, String[])} must be called before
+     * calling this method.
+     *
+     * @return The commandline, or null if {@link #parseOptions(PrintStream, String[])}
+     * hasn't yet been called, or didn't complete successfully.
+     */
+    public String getCommandLine() { return commandLine; }
+
+    /**
+     * This method is only needed when calling one of the public methods that doesn't take a messageStream argument.
+     */
+    public void setMessageStream(final PrintStream messageStream) {
+        this.messageStream = messageStream;
+    }
+
+    public Object getCallerOptions() {
+        return callerOptions;
+    }
+}
diff --git a/src/java/picard/cmdline/CommandLineParserDefinitionException.java b/src/java/picard/cmdline/CommandLineParserDefinitionException.java
new file mode 100644
index 0000000..e9b857b
--- /dev/null
+++ b/src/java/picard/cmdline/CommandLineParserDefinitionException.java
@@ -0,0 +1,36 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.cmdline;
+
+import picard.PicardException;
+
+public class CommandLineParserDefinitionException extends PicardException {
+    public CommandLineParserDefinitionException(final String s) {
+        super(s);
+    }
+
+    public CommandLineParserDefinitionException(final String s, final Throwable throwable) {
+        super(s, throwable);
+    }
+}
diff --git a/src/java/picard/cmdline/CommandLineProgram.java b/src/java/picard/cmdline/CommandLineProgram.java
new file mode 100644
index 0000000..4dad5a0
--- /dev/null
+++ b/src/java/picard/cmdline/CommandLineProgram.java
@@ -0,0 +1,331 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.cmdline;
+
+import htsjdk.samtools.Defaults;
+import htsjdk.samtools.SAMFileWriterFactory;
+import htsjdk.samtools.SAMFileWriterImpl;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.ValidationStringency;
+import htsjdk.samtools.metrics.Header;
+import htsjdk.samtools.metrics.MetricBase;
+import htsjdk.samtools.metrics.MetricsFile;
+import htsjdk.samtools.metrics.StringHeader;
+import htsjdk.samtools.util.BlockCompressedOutputStream;
+import htsjdk.samtools.util.BlockCompressedStreamConstants;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.zip.DeflaterFactory;
+
+import java.io.File;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Field;
+import java.net.InetAddress;
+import java.text.DecimalFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Abstract class to facilitate writing command-line programs.
+ *
+ * To use:
+ *
+ * 1. Extend this class with a concrete class that has data members annotated with @Option, @PositionalArguments
+ * and/or @Usage annotations.
+ *
+ * 2. If there is any custom command-line validation, override customCommandLineValidation().  When this method is
+ * called, the command line has been parsed and set into the data members of the concrete class.
+ *
+ * 3. Implement a method doWork().  This is called after successful command-line processing.  The value it returns is
+ * the exit status of the program.  It is assumed that the concrete class emits any appropriate error message before
+ * returning non-zero.  doWork() may throw unchecked exceptions, which are caught and reported appropriately.
+ *
+ * 4. Implement the following static method in the concrete class:
+ *
+ *     public static void main(String[] argv) {
+        new MyConcreteClass().instanceMain(argv);
+    }
+
+
+ */
+public abstract class CommandLineProgram {
+    @Option(common=true, optional=true)
+    public List<File> TMP_DIR = new ArrayList<File>();
+
+    @Option(doc = "Control verbosity of logging.", common=true)
+    public Log.LogLevel VERBOSITY = Log.LogLevel.INFO;
+
+    @Option(doc = "Whether to suppress job-summary info on System.err.", common=true)
+    public Boolean QUIET = false;
+
+    @Option(doc = "Validation stringency for all SAM files read by this program.  Setting stringency to SILENT " +
+            "can improve performance when processing a BAM file in which variable-length data (read, qualities, tags) " +
+            "do not otherwise need to be decoded.", common=true)
+    public ValidationStringency VALIDATION_STRINGENCY = ValidationStringency.DEFAULT_STRINGENCY;
+
+    @Option(doc = "Compression level for all compressed files created (e.g. BAM and GELI).", common=true)
+    public int COMPRESSION_LEVEL = BlockCompressedStreamConstants.DEFAULT_COMPRESSION_LEVEL;
+
+    @Option(doc = "When writing SAM files that need to be sorted, this will specify the number of records stored in RAM before spilling to disk. Increasing this number reduces the number of file handles needed to sort a SAM file, and increases the amount of RAM needed.", optional=true, common=true)
+    public Integer MAX_RECORDS_IN_RAM = SAMFileWriterImpl.getDefaultMaxRecordsInRam();
+
+    @Option(doc = "Whether to create a BAM index when writing a coordinate-sorted BAM file.", common=true)
+    public Boolean CREATE_INDEX = Defaults.CREATE_INDEX;
+
+    @Option(doc="Whether to create an MD5 digest for any BAM or FASTQ files created.  ", common=true)
+    public boolean CREATE_MD5_FILE = Defaults.CREATE_MD5;
+
+    @Option(shortName = StandardOptionDefinitions.REFERENCE_SHORT_NAME, doc = "Reference sequence file.", common = true, optional = true, overridable = true)
+    public File REFERENCE_SEQUENCE = Defaults.REFERENCE_FASTA;
+
+    @Option(doc="Google Genomics API client_secrets.json file path.", common = true)
+    public String GA4GH_CLIENT_SECRETS="client_secrets.json";
+    
+    private final String standardUsagePreamble = CommandLineParser.getStandardUsagePreamble(getClass());
+
+    static {
+      // Register custom reader factory for reading data from Google Genomics 
+      // implementation of GA4GH API.
+      // With this it will be possible to pass these urls as INPUT params.
+      // E.g. java -jar dist/picard.jar ViewSam \
+      //    INPUT=https://www.googleapis.com/genomics/v1beta2/readgroupsets/CK256frpGBD44IWHwLP22R4/ \
+      //    GA4GH_CLIENT_SECRETS=../client_secrets.json
+      if (System.getProperty("samjdk.custom_reader") == null) {
+        System.setProperty("samjdk.custom_reader",
+            "https://www.googleapis.com/genomics," + 
+            "com.google.cloud.genomics.gatk.htsjdk.GA4GHReaderFactory");
+      }
+    }
+    
+    /**
+    * Initialized in parseArgs.  Subclasses may want to access this to do their
+    * own validation, and then print usage using commandLineParser.
+    */
+    private CommandLineParser commandLineParser;
+
+    private final List<Header> defaultHeaders = new ArrayList<Header>();
+
+    /**
+    * The reconstructed commandline used to run this program. Used for logging
+    * and debugging.
+    */
+    private String commandLine;
+
+    /**
+    * Do the work after command line has been parsed. RuntimeException may be
+    * thrown by this method, and are reported appropriately.
+    * @return program exit status.
+    */
+    protected abstract int doWork();
+
+    public void instanceMainWithExit(final String[] argv) {
+        System.exit(instanceMain(argv));
+    }
+
+    public int instanceMain(final String[] argv) {
+        if (!parseArgs(argv)) {
+            return 1;
+        }
+
+        // Provide one temp directory if the caller didn't
+        if (this.TMP_DIR == null) this.TMP_DIR = new ArrayList<File>();
+        if (this.TMP_DIR.isEmpty()) TMP_DIR.add(IOUtil.getDefaultTmpDir());
+
+        // Build the default headers
+        final Date startDate = new Date();
+        this.defaultHeaders.add(new StringHeader(commandLine));
+        this.defaultHeaders.add(new StringHeader("Started on: " + startDate));
+
+        Log.setGlobalLogLevel(VERBOSITY);
+        if (System.getProperty("ga4gh.client_secrets") == null) {
+          System.setProperty("ga4gh.client_secrets", GA4GH_CLIENT_SECRETS);
+        }
+        SamReaderFactory.setDefaultValidationStringency(VALIDATION_STRINGENCY);
+        BlockCompressedOutputStream.setDefaultCompressionLevel(COMPRESSION_LEVEL);
+
+        if (MAX_RECORDS_IN_RAM != null) {
+            SAMFileWriterImpl.setDefaultMaxRecordsInRam(MAX_RECORDS_IN_RAM);
+        }
+
+        if (CREATE_INDEX){
+            SAMFileWriterFactory.setDefaultCreateIndexWhileWriting(true);
+        }
+
+        SAMFileWriterFactory.setDefaultCreateMd5File(CREATE_MD5_FILE);
+
+        for (final File f : TMP_DIR) {
+            // Intentially not checking the return values, because it may be that the program does not
+            // need a tmp_dir. If this fails, the problem will be discovered downstream.
+            if (!f.exists()) f.mkdirs();
+            f.setReadable(true, false);
+            f.setWritable(true, false);
+            System.setProperty("java.io.tmpdir", f.getAbsolutePath()); // in loop so that last one takes effect
+        }
+
+        if (!QUIET) {
+            System.err.println("[" + new Date() + "] " + commandLine);
+
+            // Output a one liner about who/where and what software/os we're running on
+            try {
+            System.err.println("[" + new Date() + "] Executing as " +
+                                       System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() +
+                                       " on " + System.getProperty("os.name") + " " + System.getProperty("os.version") +
+                                       " " + System.getProperty("os.arch") + "; " + System.getProperty("java.vm.name") +
+                                       " " + System.getProperty("java.runtime.version") +
+                                       "; Picard version: " + commandLineParser.getVersion() +
+            " " + (DeflaterFactory.usingIntelDeflater()? "IntelDeflater": "JdkDeflater"));
+            }
+            catch (Exception e) { /* Unpossible! */ }
+        }
+
+        int ret = -1;
+        try {
+            ret = doWork();
+        } finally {
+            try {
+                // Emit the time even if program throws
+                if (!QUIET) {
+                    final Date endDate = new Date();
+                    final double elapsedMinutes = (endDate.getTime() - startDate.getTime()) / (1000d * 60d);
+                    final String elapsedString  = new DecimalFormat("#,##0.00").format(elapsedMinutes);
+                    System.err.println("[" + endDate + "] " + getClass().getName() + " done. Elapsed time: " + elapsedString + " minutes.");
+                    System.err.println("Runtime.totalMemory()=" + Runtime.getRuntime().totalMemory());
+                    if (ret != 0 && CommandLineParser.hasWebDocumentation(this.getClass())) System.err.println(CommandLineParser.getFaqLink());
+                }
+            }
+            catch (Throwable e) {
+                // do nothing
+            }
+        }
+        return ret;
+    }
+
+    /**
+    * Put any custom command-line validation in an override of this method.
+    * clp is initialized at this point and can be used to print usage and access argv.
+     * 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.
+    */
+    protected String[] customCommandLineValidation() {
+        final List<String> ret = new ArrayList<String>();
+        for (final Object childOptionsObject : getNestedOptions().values()) {
+            if (childOptionsObject instanceof CommandLineProgram) {
+                final CommandLineProgram childClp = (CommandLineProgram)childOptionsObject;
+                final String[] childErrors = childClp.customCommandLineValidation();
+                if (childErrors != null) {
+                    for (final String error: childErrors) {
+                        ret.add(error);
+                    }
+                }
+            }
+        }
+        if (!ret.isEmpty()) {
+            ret.toArray(new String[ret.size()]);
+        }
+        return null;
+    }
+
+    /**
+    *
+    * @return true if command line is valid
+    */
+    protected boolean parseArgs(final String[] argv) {
+
+        commandLineParser = new CommandLineParser(this);
+        final boolean ret = commandLineParser.parseOptions(System.err, argv);
+        commandLine = commandLineParser.getCommandLine();
+        if (!ret) {
+            return false;
+        }
+        final String[] customErrorMessages = customCommandLineValidation();
+        if (customErrorMessages != null) {
+            for (final String msg : customErrorMessages) {
+                System.err.println(msg);
+            }
+            commandLineParser.usage(System.err, false);
+            return false;
+        }
+        return true;
+    }
+
+    /** Gets a MetricsFile with default headers already written into it. */
+    protected <A extends MetricBase,B extends Comparable<?>> MetricsFile<A,B> getMetricsFile() {
+        final MetricsFile<A,B> file = new MetricsFile<A,B>();
+        for (final Header h : this.defaultHeaders) {
+            file.addHeader(h);
+        }
+
+        return file;
+    }
+
+    public String getStandardUsagePreamble() {
+        return standardUsagePreamble;
+    }
+
+    public CommandLineParser getCommandLineParser() {
+        return commandLineParser;
+    }
+
+
+    /**
+     * @return Version stored in the manifest of the jarfile.
+     */
+    public String getVersion() {
+        return getCommandLineParser().getVersion();
+    }
+
+    public String getCommandLine() {
+        return commandLine;
+    }
+
+    public void setDefaultHeaders(final List<Header> headers) {
+        this.defaultHeaders.clear();
+        this.defaultHeaders.addAll(headers);
+    }
+
+    public List<Header> getDefaultHeaders() {
+        return this.defaultHeaders;
+    }
+
+    /**
+     * @return Map of nested options, where the key is the prefix to be used when specifying Options inside of a nested
+     * options object, and the value is the nested options object itself.  Default implementation is to return a
+     * map of all the fields annotated with @NestedOptions, with key being the field name.
+     */
+    public Map<String, Object> getNestedOptions() {
+        return CommandLineParser.getNestedOptions(this);
+    }
+
+    /**
+     * @return Map of nested options, where the key is the prefix to be used when specifying Options inside of a nested
+     * options object, and the value is the nested options object itself, for the purpose of generating help.
+     * Default implementation is to return the same map as getNestedOptions().
+     */
+    public Map<String, Object> getNestedOptionsForHelp() {
+        return getNestedOptions();
+    }
+}
diff --git a/src/java/picard/cmdline/CommandLineProgramGroup.java b/src/java/picard/cmdline/CommandLineProgramGroup.java
new file mode 100644
index 0000000..443a560
--- /dev/null
+++ b/src/java/picard/cmdline/CommandLineProgramGroup.java
@@ -0,0 +1,21 @@
+package picard.cmdline;
+
+import java.util.Comparator;
+
+/**
+ * Interface for groups of CommandLinePrograms.
+ * @author Nils Homer
+ */
+public interface CommandLineProgramGroup {
+
+    /** Gets the name of this program. **/
+    public String getName();
+    /** Gets the description of this program. **/
+    public String getDescription();
+    /** Compares two program groups by name. **/
+    static public Comparator<CommandLineProgramGroup> comparator = new Comparator<CommandLineProgramGroup>() {
+        public int compare(final CommandLineProgramGroup a, final CommandLineProgramGroup b) {
+            return a.getName().compareTo(b.getName());
+        }
+    };
+}
diff --git a/src/java/picard/cmdline/CommandLineProgramProperties.java b/src/java/picard/cmdline/CommandLineProgramProperties.java
new file mode 100644
index 0000000..1bc5f7e
--- /dev/null
+++ b/src/java/picard/cmdline/CommandLineProgramProperties.java
@@ -0,0 +1,46 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.cmdline;
+
+import picard.cmdline.programgroups.None;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import java.lang.annotation.ElementType;
+
+/**
+ * Annotates a command line program with various properties, such as usage (short and long),
+ * as well as to which program group it belongs.
+ *
+ * TODO: enforced that any CommandLineProgram has this property defined (use an annotation processor?).
+ */
+ at Retention(RetentionPolicy.RUNTIME)
+ at Target(ElementType.TYPE)
+public @interface CommandLineProgramProperties {
+    String usage();
+    String usageShort();
+    Class<? extends CommandLineProgramGroup> programGroup() default None.class;
+    boolean omitFromCommandLine() default false;
+}
diff --git a/src/java/picard/cmdline/CreateHtmlDocForProgram.java b/src/java/picard/cmdline/CreateHtmlDocForProgram.java
new file mode 100644
index 0000000..c22f5b5
--- /dev/null
+++ b/src/java/picard/cmdline/CreateHtmlDocForProgram.java
@@ -0,0 +1,39 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.cmdline;
+
+/**
+ * Print out the usage for one or more CommandLinePrograms in a form close to what is used in the Sourceforge Picard website.
+ *
+ * @author alecw at broadinstitute.org
+ */
+public class CreateHtmlDocForProgram {
+    public static void main(final String[] args) throws Exception {
+        for (final String clazz : args) {
+            CommandLineProgram mainClass = (CommandLineProgram)Class.forName(clazz).newInstance();
+            CommandLineParser clp = new CommandLineParser(mainClass);
+            clp.htmlUsage(System.out, mainClass.getClass().getSimpleName(), false);
+        }
+    }
+}
diff --git a/src/java/picard/cmdline/CreateHtmlDocForStandardOptions.java b/src/java/picard/cmdline/CreateHtmlDocForStandardOptions.java
new file mode 100644
index 0000000..553cf4f
--- /dev/null
+++ b/src/java/picard/cmdline/CreateHtmlDocForStandardOptions.java
@@ -0,0 +1,45 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2010 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.cmdline;
+
+public class CreateHtmlDocForStandardOptions {
+    public static void main(final String[] args) throws Exception {
+        System.setProperty("java.io.tmpdir", "<System temp directory>");
+        System.setProperty("user.name", "<current user name>");
+        CommandLineParser clp = new CommandLineParser(new DummyProgram());
+        clp.htmlPrintOptions(System.out, true);
+    }
+
+    @CommandLineProgramProperties(
+            usage = "",
+            usageShort = "",
+            omitFromCommandLine = true
+    )
+    static class DummyProgram extends CommandLineProgram {
+        @Override
+        protected int doWork() {
+            return 0;
+        }
+    }
+}
diff --git a/src/java/picard/cmdline/NestedOptions.java b/src/java/picard/cmdline/NestedOptions.java
new file mode 100644
index 0000000..0066197
--- /dev/null
+++ b/src/java/picard/cmdline/NestedOptions.java
@@ -0,0 +1,43 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2012 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.cmdline;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Used to annotate a field in a CommandLineProgram that holds a instance containing @Option-annotated
+ * fields.  To set a value for a nested option on the command line, use <member-name>.<option>=value.
+ */
+ at Retention(RetentionPolicy.RUNTIME)
+ at Target(ElementType.FIELD)
+ at Documented
+public @interface NestedOptions {
+    /** Text that appears for this group of options in text describing usage of the command line program. */
+    String doc() default "";
+
+}
diff --git a/src/java/picard/cmdline/Option.java b/src/java/picard/cmdline/Option.java
new file mode 100644
index 0000000..faf49e7
--- /dev/null
+++ b/src/java/picard/cmdline/Option.java
@@ -0,0 +1,86 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.cmdline;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Used to annotate which fields of a CommandLineProgram are options given at the command line.
+ * If a command line call looks like "cmd option=foo x=y bar baz" the CommandLineProgram
+ * would have annotations on fields to handle the values of option and x. All options
+ * must be in the form name=value on the command line. The java type of the option
+ * will be inferred from the type of the field or from the generic type of the collection
+ * if this option is allowed more than once. The type must be an enum or
+ * have a constructor with a single String parameter.
+ *
+ * @author Alec Wysoker
+ */
+ at Retention(RetentionPolicy.RUNTIME)
+ at Target(ElementType.FIELD)
+ at Documented
+public @interface Option {
+    /** The name of the option as it would appear on the command line. */
+    String shortName() default "";
+
+    /** Text that appears for this option in text describing usage of the command line program. */
+    String doc() default "";
+
+    /**
+     * If set to false, an exception will be thrown if the option is not specified.
+     * If 2 options are mutually exclusive and both have optional=false it will be
+     * interpreted as one or the other is required and an exception will only be thrown if
+     * neither are specified.
+     */
+    boolean optional() default false;
+
+    /**
+     * Array of option names that cannot be used in conjunction with this one.
+     * If 2 options are mutually exclusive and both have optional=false it will be
+     * interpreted as one OR the other is required and an exception will only be thrown if
+     * neither are specified.
+     */
+    String[] mutex() default {};
+
+    /** The minimum number of times that this option is required. */
+    int minElements() default 0;
+
+    /** The maximum number of times this option is allowed. */
+    int maxElements() default Integer.MAX_VALUE;
+
+    /**
+     * Is this an Option common to all command line programs.  If it is then it will only
+     * be displayed in usage info when H or STDHELP is used to display usage.
+     */
+    boolean common() default false;
+
+    /**
+     * This boolean determines if this annotation overrides a parent annotation. If that is the case then
+     * the options of the parent annotation are overridden with this annotation.
+     */
+    boolean overridable() default false;
+}
diff --git a/src/java/picard/cmdline/PicardCommandLine.java b/src/java/picard/cmdline/PicardCommandLine.java
new file mode 100644
index 0000000..f3e4d3a
--- /dev/null
+++ b/src/java/picard/cmdline/PicardCommandLine.java
@@ -0,0 +1,316 @@
+package picard.cmdline;
+
+import htsjdk.samtools.Defaults;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.StringUtil;
+
+import java.lang.reflect.Modifier;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeMap;
+
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+
+/**
+ * This is the main class of Picard and is the way of executing individual command line programs.
+ *
+ * CommandLinePrograms are listed in a single command line interface based on the java package specified to instanceMain.
+ *
+ * If you want your own single command line program, extend this class and give instanceMain a new list of java packages in which to
+ * search for classes that extend CommandLineProgram.
+ *
+ */
+public class PicardCommandLine {
+    private static final Log log = Log.getInstance(PicardCommandLine.class);
+    
+    private static String initializeColor(final String color) {
+        if (CommandLineDefaults.COLOR_STATUS) return color;
+        else return "";
+    }
+
+    /** Provides ANSI colors for the terminal output **/
+    private final static String KNRM = initializeColor("\u001B[0m"); // reset
+    private final static String KBLD = initializeColor("\u001B[1m"); // Bold
+    private final static String KRED = initializeColor("\u001B[31m");
+    private final static String KGRN = initializeColor("\u001B[32m");
+    private final static String KYEL = initializeColor("\u001B[33m");
+    private final static String KBLU = initializeColor("\u001B[34m");
+    private final static String KMAG = initializeColor("\u001B[35m");
+    private final static String KCYN = initializeColor("\u001B[36m");
+    private final static String KWHT = initializeColor("\u001B[37m");
+    private final static String KBLDRED = initializeColor("\u001B[1m\u001B[31m");
+
+    /** The name of this unified command line program **/
+    private final static String COMMAND_LINE_NAME = PicardCommandLine.class.getSimpleName();
+
+    /** The packages we wish to include in our command line **/
+    protected static List<String> getPackageList() {
+        final List<String> packageList = new ArrayList<String>();
+        packageList.add("picard");
+        return packageList;
+    }
+
+    /**
+     * The main method.
+     *
+     * Give a list of java packages in which to search for classes that extend CommandLineProgram.  Those will be included
+     * on the command line.
+     * **/
+    protected int instanceMain(final String[] args, final List<String> packageList, final String commandLineName) {
+        final CommandLineProgram program = extractCommandLineProgram(args, packageList, commandLineName);
+        if (null == program) return 1; // no program found!
+        // we can lop off the first two arguments but it requires an array copy or alternatively we could update CLP to remove them
+        // in the constructor do the former in this implementation.
+        final String[] mainArgs = Arrays.copyOfRange(args, 1, args.length);
+        return program.instanceMain(mainArgs);
+    }
+
+    /** For testing **/
+    protected int instanceMain(final String[] args) {
+        return instanceMain(args, getPackageList(), COMMAND_LINE_NAME);
+    }
+
+    /** Override this if you want to include different java packages to search for classes that extend CommandLineProgram. **/
+    public static void main(final String[] args) {
+        System.exit(new PicardCommandLine().instanceMain(args, getPackageList(), COMMAND_LINE_NAME));
+    }
+
+    /** Returns the command line program specified, or prints the usage and exits with exit code 1 **/
+    private static CommandLineProgram extractCommandLineProgram(final String[] args, final List<String> packageList, final String commandLineName) {
+        /** Get the set of classes that are our command line programs **/
+        final ClassFinder classFinder = new ClassFinder();
+        for (final String pkg : packageList) {
+            classFinder.find(pkg, CommandLineProgram.class);
+        }
+        String missingAnnotationClasses = "";
+
+        final Map<String, Class<?>> simpleNameToClass = new HashMap<String, Class<?>>();
+        for (final Class clazz : classFinder.getClasses()) {
+            // No interfaces, synthetic, primitive, local, or abstract classes.
+            if (!clazz.isInterface() && !clazz.isSynthetic() && !clazz.isPrimitive() && !clazz.isLocalClass()
+                    && !Modifier.isAbstract(clazz.getModifiers())) {
+                final CommandLineProgramProperties property = getProgramProperty(clazz);
+                // Check for missing annotations
+                if (null == property) {
+                    if (missingAnnotationClasses.isEmpty()) missingAnnotationClasses += clazz.getSimpleName();
+                    else missingAnnotationClasses += ", " + clazz.getSimpleName();
+                }
+                else if (!property.omitFromCommandLine()) { /** We should check for missing annotations later **/
+                    if (simpleNameToClass.containsKey(clazz.getSimpleName())) {
+                        throw new RuntimeException("Simple class name collision: " + clazz.getSimpleName());
+                    }
+                    simpleNameToClass.put(clazz.getSimpleName(), clazz);
+                }
+            }
+        }
+        if (!missingAnnotationClasses.isEmpty()) {
+            throw new RuntimeException("The following classes are missing the required CommandLineProgramProperties annotation: " + missingAnnotationClasses);
+        }
+
+        final Set<Class<?>> classes = new HashSet<Class<?>>();
+        classes.addAll(simpleNameToClass.values());
+
+        if (args.length < 1) {
+            printUsage(classes, commandLineName);
+        } else {
+            if (args[0].equals("-h")) {
+                printUsage(classes, commandLineName);
+            } else if(args[0].equals("--list-commands")) {
+                printCommandList(classes);
+            } else {
+                if (simpleNameToClass.containsKey(args[0])) {
+                    final Class clazz = simpleNameToClass.get(args[0]);
+                    try {
+                        return (CommandLineProgram)clazz.newInstance();
+                    } catch (final InstantiationException e) {
+                        throw new RuntimeException(e);
+                    } catch (final IllegalAccessException e) {
+                        throw new RuntimeException(e);
+                    }
+                }
+                printUsage(classes, commandLineName);
+                printUnknown(classes, args[0]);
+            }
+        }
+        return null;
+    }
+
+    public static CommandLineProgramProperties getProgramProperty(Class clazz) {
+        return (CommandLineProgramProperties)clazz.getAnnotation(CommandLineProgramProperties.class);
+    }
+
+    private static class SimpleNameComparator implements Comparator<Class> {
+        @Override
+        public int compare(final Class aClass, final Class bClass) {
+            return aClass.getSimpleName().compareTo(bClass.getSimpleName());
+        }
+    }
+
+    private static void printCommandList(final Set<Class<?>> classes) {
+        printUsage(classes, null, true, true);
+    }
+
+    private static void printUsage(final Set<Class<?>> classes, final String commandLineName) {
+        printUsage(classes, commandLineName, false, false);
+    }
+
+    private static void printUsage(final Set<Class<?>> classes, final String commandLineName, boolean commandListOnly, boolean toStdout) {
+        final StringBuilder builder = new StringBuilder();
+        if (!commandListOnly) {
+            builder.append(KBLDRED + "USAGE: " + commandLineName + " " + KGRN + "<program name>" + KBLDRED + " [-h]\n\n" + KNRM);
+            builder.append(KBLDRED + "Available Programs:\n" + KNRM);
+        }
+
+        /** Group CommandLinePrograms by CommandLineProgramGroup **/
+        final Map<Class<? extends CommandLineProgramGroup>, CommandLineProgramGroup> programGroupClassToProgramGroupInstance = new HashMap<Class<? extends CommandLineProgramGroup>, CommandLineProgramGroup>();
+        final Map<CommandLineProgramGroup, List<Class>> programsByGroup = new TreeMap<CommandLineProgramGroup, List<Class>>(CommandLineProgramGroup.comparator);
+        final Map<Class, CommandLineProgramProperties> programsToProperty = new HashMap<Class, CommandLineProgramProperties>();
+        for (final Class clazz : classes) {
+            // Get the command line property for this command line program
+            final CommandLineProgramProperties property = getProgramProperty(clazz);
+            if (null == property) {
+                throw new RuntimeException(String.format("The class '%s' is missing the required CommandLineProgramProperties annotation.", clazz.getSimpleName()));
+            }
+            programsToProperty.put(clazz, property);
+            // Get the command line program group for the command line property
+            // NB: we want to minimize the number of times we make a new instance, hence programGroupClassToProgramGroupInstance
+            CommandLineProgramGroup programGroup = programGroupClassToProgramGroupInstance.get(property.programGroup());
+            if (null == programGroup) {
+                try {
+                    programGroup = property.programGroup().newInstance();
+                } catch (final InstantiationException e) {
+                    throw new RuntimeException(e);
+                } catch (final IllegalAccessException e) {
+                    throw new RuntimeException(e);
+                }
+                programGroupClassToProgramGroupInstance.put(property.programGroup(), programGroup);
+            }
+            List<Class> programs = programsByGroup.get(programGroup);
+            if (null == programs) {
+                programsByGroup.put(programGroup, programs = new ArrayList<Class>());
+            }
+            programs.add(clazz);
+        }
+
+        /** Print out the programs in each group **/
+        for (final Map.Entry<CommandLineProgramGroup, List<Class>> entry : programsByGroup.entrySet()) {
+            final CommandLineProgramGroup programGroup = entry.getKey();
+
+            if (!commandListOnly) {
+                builder.append(KWHT + "--------------------------------------------------------------------------------------\n" + KNRM);
+                builder.append(String.format("%s%-48s %-45s%s\n", KRED, programGroup.getName() + ":", programGroup.getDescription(), KNRM));
+            }
+
+            final List<Class> sortedClasses = new ArrayList<Class>();
+            sortedClasses.addAll(entry.getValue());
+            Collections.sort(sortedClasses, new SimpleNameComparator());
+
+            for (final Class clazz : sortedClasses) {
+                final CommandLineProgramProperties property = programsToProperty.get(clazz);
+                if (null == property) {
+                    throw new RuntimeException(String.format("Unexpected error: did not find the CommandLineProgramProperties annotation for '%s'", clazz.getSimpleName()));
+                }
+                if (!commandListOnly) {
+                    if (clazz.getSimpleName().length() >= 45) {
+                        builder.append(String.format("%s    %s    %s%s%s\n", KGRN, clazz.getSimpleName(), KCYN, property.usageShort(), KNRM));
+                    } else {
+                        builder.append(String.format("%s    %-45s%s%s%s\n", KGRN, clazz.getSimpleName(), KCYN, property.usageShort(), KNRM));
+                    }
+                }
+                else {
+                    builder.append(clazz.getSimpleName() + "\n");
+                }
+            }
+            if (!commandListOnly) builder.append(String.format("\n"));
+        }
+        if (!commandListOnly) builder.append(KWHT + "--------------------------------------------------------------------------------------\n\n" + KNRM);
+        if (toStdout) {
+            System.out.print(builder.toString());
+        }
+        else {
+            System.err.print(builder.toString());
+        }
+    }
+
+    /** similarity floor for matching in printUnknown **/
+    private final static int HELP_SIMILARITY_FLOOR = 7;
+    private final static int MINIMUM_SUBSTRING_LENGTH = 5;
+
+    /** When a command does not match any known command, searches for similar commands, using the same method as GIT **/
+    public static void printUnknown(final Set<Class<?>> classes, final String command) {
+        final Map<Class, Integer> distances = new HashMap<Class, Integer>();
+
+        int bestDistance = Integer.MAX_VALUE;
+        int bestN = 0;
+
+        // Score against all classes
+        for (final Class clazz : classes) {
+            final String name = clazz.getSimpleName();
+            final int distance;
+            if (name.equals(command)) {
+                throw new RuntimeException("Command matches: " + command);
+            }
+            if (name.startsWith(command) || (MINIMUM_SUBSTRING_LENGTH <= command.length() && name.contains(command))) {
+                distance = 0;
+            }
+            else {
+                distance = StringUtil.levenshteinDistance(command, name, 0, 2, 1, 4);
+            }
+            distances.put(clazz, distance);
+
+            if (distance < bestDistance) {
+                bestDistance = distance;
+                bestN = 1;
+            }
+            else if (distance == bestDistance) {
+                bestN++;
+            }
+        }
+
+        // Upper bound on the similarity score
+        if (0 == bestDistance && bestN == classes.size()) {
+            bestDistance = HELP_SIMILARITY_FLOOR + 1;
+        }
+
+        // Output similar matches
+        System.err.println(String.format("'%s' is not a valid command. See PicardCommandLine --help for more information.", command));
+        if (bestDistance < HELP_SIMILARITY_FLOOR) {
+            System.err.println(String.format("Did you mean %s?", (bestN < 2) ? "this" : "one of these"));
+            for (final Class clazz : classes) {
+                if (bestDistance == distances.get(clazz)) {
+                    System.err.println(String.format("        %s", clazz.getSimpleName()));
+                }
+            }
+        }
+    }
+}
diff --git a/src/java/picard/cmdline/PositionalArguments.java b/src/java/picard/cmdline/PositionalArguments.java
new file mode 100644
index 0000000..ec8c9c5
--- /dev/null
+++ b/src/java/picard/cmdline/PositionalArguments.java
@@ -0,0 +1,52 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.cmdline;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Used to annotate which field of a CommandLineProgram should store parameters given at the 
+ * command line which are not options. Fields with this annotation must be a Collection
+ * (and probably should be a List if order is important).
+ * If a command line call looks like "cmd option=foo x=y bar baz" the values "bar" and "baz"
+ * would be added to the collection with this annotation. The java type of the arguments
+ * will be inferred from the generic type of the collection. The type must be an enum or
+ * have a constructor with a single String parameter.
+ *
+ * @author Alec Wysoker
+ */
+ at Retention(RetentionPolicy.RUNTIME)
+ at Target(ElementType.FIELD)
+ at Documented
+public @interface PositionalArguments {
+    /** The minimum number of arguments required. */
+    int minElements() default 0;
+    
+    /** The maximum number of arguments allowed. */
+    int maxElements() default Integer.MAX_VALUE;
+}
diff --git a/src/java/picard/cmdline/StandardOptionDefinitions.java b/src/java/picard/cmdline/StandardOptionDefinitions.java
new file mode 100644
index 0000000..4620800
--- /dev/null
+++ b/src/java/picard/cmdline/StandardOptionDefinitions.java
@@ -0,0 +1,48 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.cmdline;
+
+/**
+ * A set of String constants in which the name of the constant (minus the _SHORT_NAME suffix)
+ * is the standard long Option name, and the value of the constant is the standard shortName.
+ */
+public class StandardOptionDefinitions {
+    public static final String INPUT_SHORT_NAME = "I";
+    public static final String OUTPUT_SHORT_NAME = "O";
+    public static final String REFERENCE_SHORT_NAME = "R";
+    public static final String SAMPLE_ALIAS_SHORT_NAME = "ALIAS";
+    public static final String LIBRARY_NAME_SHORT_NAME = "LIB";
+    public static final String EXPECTED_INSERT_SIZE_SHORT_NAME = "INSERT";
+    public static final String LANE_SHORT_NAME = "L";
+    public static final String SEQUENCE_DICTIONARY_SHORT_NAME = "SD";
+    public static final String METRICS_FILE_SHORT_NAME = "M";
+    public static final String ASSUME_SORTED_SHORT_NAME = "AS";
+    public static final String PF_READS_ONLY_SHORT_NAME = "PF";
+    public static final String MINIMUM_MAPPING_QUALITY_SHORT_NAME = "MQ";
+    public static final String READ_GROUP_ID_SHORT_NAME = "RG";
+    public static final String PROGRAM_RECORD_ID_SHORT_NAME = "PG";
+    public static final String MINIMUM_LOD_SHORT_NAME = "LOD";
+    public static final String SORT_ORDER_SHORT_NAME = "SO";
+    public static final String USE_ORIGINAL_QUALITIES_SHORT_NAME = "OQ";
+}
diff --git a/src/java/picard/cmdline/programgroups/Fasta.java b/src/java/picard/cmdline/programgroups/Fasta.java
new file mode 100644
index 0000000..5edb46d
--- /dev/null
+++ b/src/java/picard/cmdline/programgroups/Fasta.java
@@ -0,0 +1,13 @@
+package picard.cmdline.programgroups;
+
+import picard.cmdline.CommandLineProgramGroup;
+
+/**
+* @author nhomer
+*/
+public class Fasta implements CommandLineProgramGroup {
+    @Override
+    public String getName() { return "Fasta"; }
+    @Override
+    public String getDescription() { return "Tools for manipulating FASTA, or related data."; }
+}
diff --git a/src/java/picard/cmdline/programgroups/Illumina.java b/src/java/picard/cmdline/programgroups/Illumina.java
new file mode 100644
index 0000000..4f8a043
--- /dev/null
+++ b/src/java/picard/cmdline/programgroups/Illumina.java
@@ -0,0 +1,13 @@
+package picard.cmdline.programgroups;
+
+import picard.cmdline.CommandLineProgramGroup;
+
+/**
+* @author nhomer
+*/
+public class Illumina implements CommandLineProgramGroup {
+    @Override
+    public String getName() { return "Illumina Tools"; }
+    @Override
+    public String getDescription() { return "Tools for manipulating data specific to Illumina sequencers."; }
+}
diff --git a/src/java/picard/cmdline/programgroups/Intervals.java b/src/java/picard/cmdline/programgroups/Intervals.java
new file mode 100644
index 0000000..1de82ca
--- /dev/null
+++ b/src/java/picard/cmdline/programgroups/Intervals.java
@@ -0,0 +1,13 @@
+package picard.cmdline.programgroups;
+
+import picard.cmdline.CommandLineProgramGroup;
+
+/**
+* @author nhomer
+*/
+public class Intervals implements CommandLineProgramGroup {
+    @Override
+    public String getName() { return "Interval Tools"; }
+    @Override
+    public String getDescription() { return "Tools for manipulating Picard interval lists."; }
+}
diff --git a/src/java/picard/cmdline/programgroups/Metrics.java b/src/java/picard/cmdline/programgroups/Metrics.java
new file mode 100644
index 0000000..34c4299
--- /dev/null
+++ b/src/java/picard/cmdline/programgroups/Metrics.java
@@ -0,0 +1,13 @@
+package picard.cmdline.programgroups;
+
+import picard.cmdline.CommandLineProgramGroup;
+
+/**
+* @author nhomer
+*/
+public class Metrics implements CommandLineProgramGroup {
+    @Override
+    public String getName() { return "Metrics"; }
+    @Override
+    public String getDescription() { return "Tools for reporting metrics on various data types."; }
+}
diff --git a/src/java/picard/cmdline/programgroups/None.java b/src/java/picard/cmdline/programgroups/None.java
new file mode 100644
index 0000000..41f0618
--- /dev/null
+++ b/src/java/picard/cmdline/programgroups/None.java
@@ -0,0 +1,13 @@
+package picard.cmdline.programgroups;
+
+import picard.cmdline.CommandLineProgramGroup;
+
+/**
+* @author nhomer
+*/
+public class None implements CommandLineProgramGroup {
+    @Override
+    public String getName() { return "Miscellaneous Tools"; }
+    @Override
+    public String getDescription() { return "A set of miscellaneous tools."; }
+}
diff --git a/src/java/picard/cmdline/programgroups/SamOrBam.java b/src/java/picard/cmdline/programgroups/SamOrBam.java
new file mode 100644
index 0000000..5020f79
--- /dev/null
+++ b/src/java/picard/cmdline/programgroups/SamOrBam.java
@@ -0,0 +1,13 @@
+package picard.cmdline.programgroups;
+
+import picard.cmdline.CommandLineProgramGroup;
+
+/**
+* @author nhomer
+*/
+public class SamOrBam implements CommandLineProgramGroup {
+    @Override
+    public String getName() { return "SAM/BAM"; }
+    @Override
+    public String getDescription() { return "Tools for manipulating SAM, BAM, or related data."; }
+}
diff --git a/src/java/picard/cmdline/programgroups/Testing.java b/src/java/picard/cmdline/programgroups/Testing.java
new file mode 100644
index 0000000..663f031
--- /dev/null
+++ b/src/java/picard/cmdline/programgroups/Testing.java
@@ -0,0 +1,13 @@
+package picard.cmdline.programgroups;
+
+import picard.cmdline.CommandLineProgramGroup;
+
+/**
+ * @author nhomer
+ */
+public class Testing implements CommandLineProgramGroup {
+    @Override
+    public String getName() { return "Unit Testing"; }
+    @Override
+    public String getDescription() { return "Unit testing"; }
+}
diff --git a/src/java/picard/cmdline/programgroups/VcfOrBcf.java b/src/java/picard/cmdline/programgroups/VcfOrBcf.java
new file mode 100644
index 0000000..52b893c
--- /dev/null
+++ b/src/java/picard/cmdline/programgroups/VcfOrBcf.java
@@ -0,0 +1,13 @@
+package picard.cmdline.programgroups;
+
+import picard.cmdline.CommandLineProgramGroup;
+
+/**
+* @author nhomer.
+*/
+public class VcfOrBcf implements CommandLineProgramGroup {
+    @Override
+    public String getName() { return "VCF/BCF"; }
+    @Override
+    public String getDescription() { return "Tools for manipulating VCF, BCF, or related data."; }
+}
diff --git a/src/java/picard/fastq/BamToBfq.java b/src/java/picard/fastq/BamToBfq.java
new file mode 100644
index 0000000..168bbe2
--- /dev/null
+++ b/src/java/picard/fastq/BamToBfq.java
@@ -0,0 +1,94 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.fastq;
+
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.SamOrBam;
+
+import java.io.File;
+
+/**
+ * CommandLineProgram to generate to bfq files for use by the Maq aligner
+ *
+ * @author ktibbett at broadinstitute.org
+ */
+ at CommandLineProgramProperties(
+        usage = "Create BFQ files from a BAM file for use by the Maq aligner.",
+        usageShort = "Create BFQ files from a BAM file for use by the Maq aligner.",
+        programGroup = SamOrBam.class
+)
+public class BamToBfq extends CommandLineProgram {
+
+    // The following attributes define the command-line arguments
+
+    @Option(doc="The BAM file to parse.", shortName=StandardOptionDefinitions.INPUT_SHORT_NAME) public File INPUT;
+    @Option(doc="The analysis directory for the binary output file. ") public File ANALYSIS_DIR;
+    @Option(doc="Flowcell barcode (e.g. 30PYMAAXX).  ", shortName="F", mutex="OUTPUT_FILE_PREFIX") public String FLOWCELL_BARCODE;
+    @Option(doc="Lane number. ", shortName= StandardOptionDefinitions.LANE_SHORT_NAME, optional=true,mutex="OUTPUT_FILE_PREFIX") public Integer LANE;
+    @Option(doc="Prefix for all output files", mutex={"FLOWCELL_BARCODE","LANE"}) public String OUTPUT_FILE_PREFIX;
+    @Option(doc="Number of reads to align (null = all).", shortName="NUM", optional=true) public Integer READS_TO_ALIGN;
+    @Option(doc="Number of reads to break into individual groups for alignment", shortName="CHUNK") public Integer READ_CHUNK_SIZE = 2000000;
+    @Option(doc="Whether this is a paired-end run. ", shortName="PE") public Boolean PAIRED_RUN;
+    @Option(doc="Deprecated option; use READ_NAME_PREFIX instead", mutex="READ_NAME_PREFIX", shortName="RB", optional=true) public String RUN_BARCODE;
+    @Option(doc="Prefix to be stripped off the beginning of all read names  (to make them short enough to run in Maq)", optional=true) public String READ_NAME_PREFIX;
+    @Option(doc="Whether to include non-PF reads", shortName="NONPF", optional=true) public Boolean INCLUDE_NON_PF_READS = false;
+    @Option(doc="Whether to clip adapters from the reads") public boolean CLIP_ADAPTERS = true;
+    @Option(doc="The number of bases from each read to write to the bfq file.  If this is non-null, then " +
+            "only the first BASES_TO_WRITE bases from each read will be written.", optional=true) public Integer BASES_TO_WRITE = null;
+
+    protected int doWork() {
+
+        String outputPrefix = ANALYSIS_DIR.getAbsolutePath();
+        if (!outputPrefix.endsWith("/")) {
+            outputPrefix += "/";
+        }
+        outputPrefix += OUTPUT_FILE_PREFIX + ".";
+
+        BamToBfqWriter writer = new BamToBfqWriter(INPUT, outputPrefix, READS_TO_ALIGN,
+                READ_CHUNK_SIZE, PAIRED_RUN, READ_NAME_PREFIX,
+                INCLUDE_NON_PF_READS, CLIP_ADAPTERS, BASES_TO_WRITE);
+        writer.writeBfqFiles();
+        return 0;
+    }
+
+    public static void main(String[] argv) {
+        System.exit(new BamToBfq().instanceMain(argv));
+    }
+
+    protected String[] customCommandLineValidation() {
+
+        if (OUTPUT_FILE_PREFIX == null) {
+            OUTPUT_FILE_PREFIX = FLOWCELL_BARCODE + "." + LANE;
+        }
+        if (READ_NAME_PREFIX == null) {
+            READ_NAME_PREFIX = RUN_BARCODE + ":";
+        }
+        return null;
+    }
+
+}
diff --git a/src/java/picard/fastq/BamToBfqWriter.java b/src/java/picard/fastq/BamToBfqWriter.java
new file mode 100644
index 0000000..04dd5d3
--- /dev/null
+++ b/src/java/picard/fastq/BamToBfqWriter.java
@@ -0,0 +1,444 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.fastq;
+
+import htsjdk.samtools.ReservedTagConstants;
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.filter.AggregateFilter;
+import htsjdk.samtools.filter.FailsVendorReadQualityFilter;
+import htsjdk.samtools.filter.FilteringIterator;
+import htsjdk.samtools.filter.SamRecordFilter;
+import htsjdk.samtools.filter.TagFilter;
+import htsjdk.samtools.filter.WholeReadClippedFilter;
+import htsjdk.samtools.util.BinaryCodec;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.PeekableIterator;
+import picard.PicardException;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * Class to take unmapped reads in BAM file format and create Maq binary fastq format file(s) --
+ * one or two of them, depending on whether it's a paired-end read.  This relies on the unmapped
+ * BAM file having all paired reads together in order.
+ */
+public class BamToBfqWriter {
+
+    private static final int SEED_REGION_LENGTH = 28;
+    private static final int MAX_SEED_REGION_NOCALL_FIXES = 2;
+
+    private final File bamFile;
+    private final String outputPrefix;
+    private final String namePrefix;
+    private final int nameTrim;
+    private boolean pairedReads = false;
+    private int wrote = 0;
+    private int increment = 1;
+    private int chunk = 0;
+    private BinaryCodec codec1;
+    private BinaryCodec codec2;
+    private final Log log = Log.getInstance(BamToBfqWriter.class);
+    private final boolean includeNonPfReads;
+    private final boolean clipAdapters;
+    private final Integer basesToWrite;
+
+    /**
+     * Constructor
+     *
+     * @param bamFile        the BAM file to read from
+     * @param outputPrefix   the directory and file prefix for the binary fastq files
+     * @param total          the total number of records that should be written, drawn evenly
+     *                       from throughout the file (null for all).
+     * @param chunk          the maximum number of records that should be written to any one file
+     * @param pairedReads    whether these reads are from  a paired-end run
+     * @param namePrefix     The string to be stripped off the read name
+     *                       before writing to the bfq file. May be null, in which case
+     *                       the name will not be trimmed.
+     * @param includeNonPfReads whether to include non pf-reads
+     * @param clipAdapters    whether to replace adapters as marked with XT:i clipping position attribute
+     */
+    public BamToBfqWriter(final File bamFile, final String outputPrefix, final Integer total,
+                          final Integer chunk, final boolean pairedReads, String namePrefix,
+                          boolean includeNonPfReads, boolean clipAdapters, Integer basesToWrite) {
+
+        IOUtil.assertFileIsReadable(bamFile);
+        this.bamFile = bamFile;
+        this.outputPrefix = outputPrefix;
+        this.pairedReads = pairedReads;
+        if (total != null) {
+            final double writeable = (double)countWritableRecords();
+            this.increment = (int)Math.floor(writeable/total.doubleValue());
+            if (this.increment == 0) {
+                this.increment = 1;
+            }
+        }
+        if (chunk != null) {
+            this.chunk = chunk;
+        }
+        this.namePrefix = namePrefix;
+        this.nameTrim = namePrefix != null ? namePrefix.length() : 0;
+        this.includeNonPfReads = includeNonPfReads;
+        this.clipAdapters = clipAdapters;
+        this.basesToWrite = basesToWrite;
+    }
+
+    /**
+     * Constructor
+     *
+     * @param bamFile   the BAM file to read from
+     * @param outputPrefix   the directory and file prefix for the binary fastq files
+     * @param pairedReads    whether these reads are from  a paired-end run
+     * @param namePrefix     the barcode of the run (to be stripped off the read name
+     *                       before writing to the bfq file)
+     * @param includeNonPfReads whether to include non pf-reads
+     */
+    public BamToBfqWriter(final File bamFile, final String outputPrefix, final boolean pairedReads,
+                          String namePrefix, boolean includeNonPfReads) {
+        this(bamFile, outputPrefix, null, null, pairedReads, namePrefix, includeNonPfReads, true, null);
+    }
+ 
+    /**
+     * Writes the binary fastq file(s) to the output directory
+     */
+    public void writeBfqFiles() {
+
+        final SamReader reader = SamReaderFactory.makeDefault().open(bamFile);
+        final Iterator<SAMRecord> iterator = reader.iterator();
+
+        // Filter out noise reads and reads that fail the quality filter
+        final TagFilter tagFilter = new TagFilter(ReservedTagConstants.XN, 1);
+        final FailsVendorReadQualityFilter qualityFilter = new FailsVendorReadQualityFilter();
+        final WholeReadClippedFilter clippedFilter = new WholeReadClippedFilter();
+
+
+        if (!pairedReads) {
+            List<SamRecordFilter> filters = new ArrayList<SamRecordFilter>();
+            filters.add(tagFilter);
+            filters.add(clippedFilter);
+            if (!this.includeNonPfReads) {
+                filters.add(qualityFilter);
+            }
+            writeSingleEndBfqs(iterator, filters);
+            codec1.close();
+        }
+        else {
+            writePairedEndBfqs(iterator, tagFilter, qualityFilter, clippedFilter);
+            codec1.close();
+            codec2.close();
+        }
+        log.info("Wrote " + wrote + " bfq records.");
+        CloserUtil.close(reader);
+    }
+
+    /**
+     * Path for writing bfqs for paired-end reads
+     *
+     * @param iterator      the iterator witht he SAM Records to write
+     * @param tagFilter     the filter for noise reads
+     * @param qualityFilter the filter for PF reads
+     */
+    private void writePairedEndBfqs(final Iterator<SAMRecord> iterator, final TagFilter tagFilter,
+                                    final FailsVendorReadQualityFilter qualityFilter,
+                                    SamRecordFilter ... otherFilters) {
+        // Open the codecs for writing
+        int fileIndex = 0;
+        initializeNextBfqFiles(fileIndex++);
+
+        int records = 0;
+
+        RECORD_LOOP: while (iterator.hasNext()) {
+            final SAMRecord first = iterator.next();
+            if (!iterator.hasNext()) {
+                throw new PicardException("Mismatched number of records in " + this.bamFile.getAbsolutePath());
+            }
+            final SAMRecord second = iterator.next();
+            if (!second.getReadName().equals(first.getReadName()) ||
+                first.getFirstOfPairFlag() == second.getFirstOfPairFlag()) {
+                throw new PicardException("Unmatched read pairs in " + this.bamFile.getAbsolutePath() +
+                    ": " + first.getReadName() + ", " + second.getReadName() + ".");
+            }
+
+            // If *both* are noise reads, filter them out
+            if (tagFilter.filterOut(first) && tagFilter.filterOut(second))  {
+                continue;
+            }
+
+            // If either fails to pass filter, then exclude them as well
+            if (!includeNonPfReads && (qualityFilter.filterOut(first) || qualityFilter.filterOut(second))) {
+                continue;
+            }
+
+            // If either fails any of the other filters, exclude them both
+            for (SamRecordFilter filter : otherFilters) {
+                if (filter.filterOut(first) || filter.filterOut(second)) {
+                    continue RECORD_LOOP;
+                }
+            }
+
+            // Otherwise, write them out
+            records++;
+            if (records % increment == 0) {
+                first.setReadName(first.getReadName() + "/1");
+                writeFastqRecord(first.getFirstOfPairFlag() ? codec1 : codec2, first);
+                second.setReadName(second.getReadName() + "/2");
+                writeFastqRecord(second.getFirstOfPairFlag() ? codec1 : codec2, second);
+                wrote++;
+                if (wrote % 1000000 == 0) {
+                    log.info(wrote + " records written.");
+                }
+                if (chunk > 0 && wrote % chunk == 0) {
+                    initializeNextBfqFiles(fileIndex++);
+                }
+            }
+        }
+    }
+
+    /**
+     * Path for writing bfqs for single-end reads
+     *
+     * @param iterator  the iterator with he SAM Records to write
+     * @param filters   the list of filters to be applied
+     */
+    private void writeSingleEndBfqs(final Iterator<SAMRecord> iterator, final List<SamRecordFilter> filters) {
+
+        // Open the codecs for writing
+        int fileIndex = 0;
+        initializeNextBfqFiles(fileIndex++);
+
+        int records = 0;
+
+        final FilteringIterator it = new FilteringIterator(iterator, new AggregateFilter(filters));
+        while (it.hasNext()) {
+            final SAMRecord record = it.next();
+            records++;
+            if (records % increment == 0) {
+
+                record.setReadName(record.getReadName() + "/1");
+                writeFastqRecord(codec1, record);
+                wrote++;
+                if (wrote % 1000000 == 0) {
+                    log.info(wrote + " records processed.");
+                }
+                if (chunk > 0 && wrote % chunk == 0) {
+                    initializeNextBfqFiles(fileIndex++);
+                }
+            }
+        }
+    }
+
+    /**
+     * Closes any the open bfq file(s), if any, and opens the new one(s)
+     *
+     * @param fileIndex the index (counter) of the files to write
+     */
+    private void initializeNextBfqFiles(final int fileIndex) {
+        // Close the codecs if they were writing before
+        if (codec1 != null) {
+            codec1.close();
+            if (pairedReads) {
+                codec2.close();
+            }
+        }
+
+        // Open new file, using the fileIndex.
+        final File bfq1 = getOutputFile(this.outputPrefix , 1, fileIndex);
+        codec1 = new BinaryCodec(IOUtil.openFileForWriting(bfq1));
+        log.info("Now writing to file " + bfq1.getAbsolutePath());
+        if (pairedReads) {
+            final File bfq2 = getOutputFile(this.outputPrefix , 2, fileIndex);
+            codec2 = new BinaryCodec(IOUtil.openFileForWriting(bfq2));
+            log.info("Now writing to file " + bfq2.getAbsolutePath());
+        }
+    }
+
+    /**
+     * Writes out a SAMRecord in Maq fastq format
+     *
+     * @param codec the code to write to
+     * @param rec   the SAMRecord to write
+     */
+    private void writeFastqRecord(final BinaryCodec codec, final SAMRecord rec) {
+
+        // Trim the run barcode off the read name
+        String readName = rec.getReadName();
+        if (namePrefix != null && readName.startsWith(namePrefix)) {
+            readName = readName.substring(nameTrim);
+        }
+        // Writes the length of the read name and then the name (null-terminated)
+        codec.writeString(readName, true, true);
+
+        final char[] seqs = rec.getReadString().toCharArray();
+        final char[] quals = rec.getBaseQualityString().toCharArray();
+
+        int retainedLength = seqs.length;
+        if (clipAdapters){
+            // adjust to a shorter length iff clipping tag exists
+            Integer trimPoint = rec.getIntegerAttribute(ReservedTagConstants.XT);
+            if (trimPoint != null) {
+                assert (rec.getReadLength() == seqs.length);
+                retainedLength = Math.min(seqs.length, Math.max(SEED_REGION_LENGTH, trimPoint -1));
+            }
+        }
+
+        // Write the length of the sequence
+        codec.writeInt(basesToWrite != null ? basesToWrite : seqs.length);
+
+        // Calculate and write the sequence and qualities
+        final byte[] seqsAndQuals = encodeSeqsAndQuals(seqs, quals, retainedLength);
+        codec.writeBytes(seqsAndQuals);
+    }
+
+    private byte[] encodeSeqsAndQuals(char[] seqs, char[] quals, int retainedLength) {
+        final byte[] seqsAndQuals = new byte[basesToWrite == null ? seqs.length : basesToWrite];
+
+        int seedRegionNoCallFixes = 0;
+        for (int i = 0; i < retainedLength && i < seqsAndQuals.length; i++) {
+            int quality = Math.min(quals[i]-33, 63);
+            final int base;
+            switch(seqs[i]) {
+                case 'A':
+                case 'a':
+                    base = 0;
+                    break;
+                case 'C':
+                case 'c':
+                    base = 1;
+                    break;
+                case 'G':
+                case 'g':
+                    base = 2;
+                    break;
+                case 'T':
+                case 't':
+                    base = 3;
+                    break;
+                case 'N':
+                case 'n':
+                case '.':
+                    base = 0;
+                    if (i < SEED_REGION_LENGTH ) {
+                        if (seedRegionNoCallFixes < MAX_SEED_REGION_NOCALL_FIXES) {
+                            quality = 1;
+                            seedRegionNoCallFixes++;
+                        }
+                        else {
+                            quality = 0;
+                        }
+                    }
+                    else {
+                        quality = 1;
+                    }
+                    break;
+                default:
+                    throw new PicardException("Unknown base when writing bfq file: " + seqs[i]);
+            }
+            seqsAndQuals[i] = encodeBaseAndQuality(base, quality);
+        }
+        // rewrite clipped adapter with all A's of quality 1
+        for (int i = retainedLength; i < seqsAndQuals.length; i++) {
+            seqsAndQuals[i] = encodeBaseAndQuality(0, 1);
+        }
+
+        return seqsAndQuals;
+    }
+
+    private byte encodeBaseAndQuality(int base, int quality) {
+        return (byte) ((base << 6) | quality);
+    }
+
+    /**
+     * Count the number of records in the bamFile that could potentially be written
+     *
+     * @return  the number of records in the Bam file
+     */
+    private int countWritableRecords() {
+        int count = 0;
+
+        final SamReader reader = SamReaderFactory.makeDefault().open(this.bamFile);
+        if(!reader.getFileHeader().getSortOrder().equals(SAMFileHeader.SortOrder.queryname)) {
+        	//this is a fix for issue PIC-274: It looks like BamToBfqWriter requires that the input BAM is queryname sorted, 
+        	//but it doesn't check this early, nor produce an understandable error message."
+        	throw new PicardException("Input file (" + this.bamFile.getAbsolutePath() +") needs to be sorted by queryname.");
+        }
+        final PeekableIterator<SAMRecord> it = new PeekableIterator<SAMRecord>(reader.iterator());
+        if (!this.pairedReads) {
+            // Filter out noise reads and reads that fail the quality filter
+            final List<SamRecordFilter> filters = new ArrayList<SamRecordFilter>();
+            filters.add(new TagFilter(ReservedTagConstants.XN, 1));
+            if (!this.includeNonPfReads) {
+                filters.add(new FailsVendorReadQualityFilter());
+            }
+            final FilteringIterator itr = new FilteringIterator(it, new AggregateFilter(filters));
+            while (itr.hasNext()) {
+                itr.next();
+                count++;
+            }
+        }
+        else {
+            while (it.hasNext()) {
+                final SAMRecord first = it.next();
+                final SAMRecord second = it.next();
+                // If both are noise reads, filter them out
+                if (first.getAttribute(ReservedTagConstants.XN) != null &&
+                    second.getAttribute(ReservedTagConstants.XN) != null)  {
+                    // skip it
+                }
+                // If either fails to pass filter, then exclude them as well
+                else if (!this.includeNonPfReads && (first.getReadFailsVendorQualityCheckFlag() || second.getReadFailsVendorQualityCheckFlag()) ) {
+                    // skip it
+                }
+                // Otherwise, write them out
+                else {
+                    count++;
+                }
+            }
+        }
+        it.close();
+        CloserUtil.close(reader);
+        return count;
+    }
+
+    /**
+     * Constructs the name for the output file and returns the file
+     *
+     * @param outputPrefix        the directory and file prefix for the output bfq file
+     * @param read                whether this is the file for the first or second read
+     * @param index               used in file name
+     * @return                    a new File object for the bfq file.
+     */
+    private File getOutputFile(final String outputPrefix, final int read, final int index) {
+        final File result = new File(outputPrefix + index + "." + read + ".bfq");
+        IOUtil.assertFileIsWritable(result);
+        return result;
+    }
+
+}
diff --git a/src/java/picard/fastq/Casava18ReadNameEncoder.java b/src/java/picard/fastq/Casava18ReadNameEncoder.java
new file mode 100644
index 0000000..eacae48
--- /dev/null
+++ b/src/java/picard/fastq/Casava18ReadNameEncoder.java
@@ -0,0 +1,46 @@
+package picard.fastq;
+
+import htsjdk.samtools.util.StringUtil;
+import picard.illumina.parser.ClusterData;
+
+/**
+ * A read name encoder conforming to the standard described by Illumina Casava 1.8.
+ * 
+ * @see <a href="http://biowulf.nih.gov/apps/CASAVA1_8_Changes.pdf">Casava 1.8 update</a>
+ * @author mccowan
+ */
+public class Casava18ReadNameEncoder implements ReadNameEncoder {
+    final static int CONTROL_FIELD_VALUE = 0;
+    final String runId, instrumentName, flowcellId;
+    
+    static enum IsFilteredLabel {
+        Y, N;
+        static IsFilteredLabel get(final boolean passesFilter) {
+            return passesFilter ? N : Y;
+        }
+    }
+    
+    public Casava18ReadNameEncoder(final String instrumentName, final String runId, final String flowcellId) {
+        this.runId = runId;
+        this.instrumentName = instrumentName;
+        this.flowcellId = flowcellId;
+    }
+
+    @Override
+    public String generateReadName(final ClusterData cluster, final Integer pairNumber) {
+        return String.format(
+                "%s:%s:%s:%d:%d:%d:%d %s:%s:%d:%s",
+                instrumentName,
+                runId,
+                flowcellId,
+                cluster.getLane(),
+                cluster.getTile(),
+                cluster.getX(),
+                cluster.getY(),
+                StringUtil.asEmptyIfNull(pairNumber),
+                IsFilteredLabel.get(cluster.isPf()),
+                CONTROL_FIELD_VALUE,
+                StringUtil.asEmptyIfNull(cluster.getMatchedBarcode())
+        );
+    }
+}
diff --git a/src/java/picard/fastq/IlluminaReadNameEncoder.java b/src/java/picard/fastq/IlluminaReadNameEncoder.java
new file mode 100644
index 0000000..80b40fc
--- /dev/null
+++ b/src/java/picard/fastq/IlluminaReadNameEncoder.java
@@ -0,0 +1,28 @@
+package picard.fastq;
+
+import picard.illumina.parser.ClusterData;
+
+/**
+ * A read name encoder following the encoding initially produced by picard fastq writers.
+ * 
+ * @see <a href="http://en.wikipedia.org/wiki/FASTQ_format#Illumina_sequence_identifiers">Illumina sequence identifiers</a> almost describes the format used here, except instead of an instrument name, we write the run barcode
+ * @author mccowan
+ */
+public class IlluminaReadNameEncoder implements ReadNameEncoder {
+    final String runBarcode;
+    public IlluminaReadNameEncoder(final String runBarcode) {
+        this.runBarcode = runBarcode;
+    }
+    
+    @Override
+    public String generateReadName(final ClusterData cluster, final Integer pairNumber) {
+        return runBarcode + ":" + cluster.getLane() + ":" + cluster.getTile() + ":" + cluster.getX() + ":" + cluster.getY() + generatePairNumberSuffix(pairNumber);
+    }
+    
+    private static String generatePairNumberSuffix(final Integer pairNumber) {
+        if (pairNumber == null)
+            return ""; 
+        else
+            return "/" + pairNumber;
+    }
+}
diff --git a/src/java/picard/fastq/ReadNameEncoder.java b/src/java/picard/fastq/ReadNameEncoder.java
new file mode 100644
index 0000000..71837dd
--- /dev/null
+++ b/src/java/picard/fastq/ReadNameEncoder.java
@@ -0,0 +1,17 @@
+package picard.fastq;
+
+import picard.illumina.parser.ClusterData;
+
+/**
+ * @author mccowan
+ */
+public interface ReadNameEncoder {
+    /**
+     * Generates a read name string for the provided cluster. 
+     *
+     * @param cluster The cluster whose reads are having its name generated
+     * @param pairNumber 1 if this is the first of the pair, 2 if it is the second, or null if this not a paired read.
+     * @return The read name
+     */
+    String generateReadName(ClusterData cluster, Integer pairNumber);
+}
diff --git a/src/java/picard/illumina/CheckIlluminaDirectory.java b/src/java/picard/illumina/CheckIlluminaDirectory.java
new file mode 100644
index 0000000..bc34da6
--- /dev/null
+++ b/src/java/picard/illumina/CheckIlluminaDirectory.java
@@ -0,0 +1,248 @@
+package picard.illumina;
+
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.ProcessExecutor;
+import htsjdk.samtools.util.StringUtil;
+import picard.PicardException;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.programgroups.Illumina;
+import picard.cmdline.StandardOptionDefinitions;
+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 java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
+
+/**
+ * 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
+ * specified data type.  If NO data type is specified then the default data types used by IlluminaBasecallsToSam are used.
+ */
+ at CommandLineProgramProperties(
+        usage = "Check that the files to provide the data specified by DATA_TYPES are available, exist, and are reasonably sized for every tile/cycle.  " +
+                "Reasonably sized means non-zero sized for files that exist per tile and equal size for binary files that exist per cycle/per tile. " +
+                "CheckIlluminaDirectory DOES NOT check that the individual records in a file are well-formed.",
+        usageShort = "Asserts the validity of the data in the specified Illumina basecalling data",
+        programGroup = Illumina.class
+)
+public class CheckIlluminaDirectory extends CommandLineProgram {
+    private static final Log log = Log.getInstance(CheckIlluminaDirectory.class);
+
+    // The following attributes define the command-line arguments
+
+    @Option(doc = "The basecalls output directory. ", shortName = "B")
+    public File BASECALLS_DIR;
+
+    @Option(doc = "The data types that should be checked for each tile/cycle.  If no values are provided then the data types checked are those " +
+            "required by IlluminaBaseCallsToSam (which is a superset of those used in ExtractIlluminaBarcodes).  These data types vary slightly depending on " +
+            "whether or not the run is barcoded so READ_STRUCTURE should be the same as that which will be passed to IlluminaBasecallsToSam.  If this option " +
+            "is left unspecified then both ExtractIlluminaBarcodes and IlluminaBaseCallsToSam should complete successfully UNLESS the " +
+            "individual records of the files themselves are spurious.",
+            shortName = "DT", optional = true)
+    public final Set<IlluminaDataType> DATA_TYPES = new TreeSet<IlluminaDataType>();
+
+    @Option(doc = ReadStructure.PARAMETER_DOC + " Note:  If you want to check whether or not a future IlluminaBasecallsToSam or ExtractIlluminaBarcodes " +
+            "run will fail then be sure to use the exact same READ_STRUCTURE that you would pass to these programs for this run.",
+            shortName = "RS")
+    public String READ_STRUCTURE;
+
+    @Option(doc = "The number of the lane(s) to check. ", shortName = StandardOptionDefinitions.LANE_SHORT_NAME,
+            minElements = 1)
+    public List<Integer> LANES;
+
+    @Option(doc = "The number(s) of the tile(s) to check. ", shortName = "T", optional = true)
+    public List<Integer> TILE_NUMBERS;
+
+    @Option(doc = "A flag to determine whether or not to create fake versions of the missing files.", shortName = "F",
+            optional = true)
+    public Boolean FAKE_FILES = false;
+
+    @Option(doc = "A flag to create symlinks to the loc file for the X Ten for each tile.", shortName = "X",
+            optional = true)
+    public Boolean LINK_LOCS = false;
+
+    /**
+     * Required main method implementation.
+     */
+    public static void main(final String[] argv) {
+        new CheckIlluminaDirectory().instanceMainWithExit(argv);
+    }
+
+    @Override
+    protected int doWork() {
+        final ReadStructure readStructure = new ReadStructure(READ_STRUCTURE);
+        if (DATA_TYPES.isEmpty()) {
+            DATA_TYPES.addAll(Arrays.asList(IlluminaBasecallsConverter.DATA_TYPES_NO_BARCODE));
+        }
+
+        final List<Integer> failingLanes = new ArrayList<Integer>();
+        int totalFailures = 0;
+
+        final int[] expectedCycles = new OutputMapping(readStructure).getOutputCycles();
+        log.info("Checking lanes(" + StringUtil.join(",", LANES) + " in basecalls directory (" + BASECALLS_DIR
+                .getAbsolutePath() + ")\n");
+        log.info("Expected cycles: " + StringUtil.intValuesToString(expectedCycles));
+
+        for (final Integer lane : LANES) {
+            IlluminaFileUtil fileUtil = new IlluminaFileUtil(BASECALLS_DIR, lane);
+            final List<Integer> 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 ");
+            }
+        }
+
+        int status = 0;
+        if (totalFailures == 0) {
+            log.info("SUCCEEDED!  All required files are present and non-empty.");
+        } else {
+            status = totalFailures;
+            log.info("FAILED! There were " + totalFailures + " in the following lanes: " + StringUtil
+                    .join(", ", failingLanes));
+        }
+
+        return status;
+    }
+
+    private void createLocFileSymlinks(final IlluminaFileUtil fileUtil, final int lane) {
+        final File baseFile = new File(BASECALLS_DIR.getParentFile().getAbsolutePath() + File.separator + "s.locs");
+        final File newFileBase = new File(baseFile.getParent() + File.separator + IlluminaFileUtil
+                .longLaneStr(lane) + File.separator);
+        if (baseFile.exists()) {
+            boolean success = true;
+            if (!newFileBase.exists()) {
+                success = newFileBase.mkdirs();
+            }
+            if (success) {
+                for (final Integer tile : fileUtil.getExpectedTiles()) {
+                    final String newName =
+                            newFileBase + File.separator + String.format("s_%d_%d.locs", lane, tile);
+                    final ProcessExecutor.ExitStatusAndOutput output =
+                            ProcessExecutor.executeAndReturnInterleavedOutput(new String[]{"ln", "-fs", baseFile.getAbsolutePath(), newName});
+                    if (output.exitStatus != 0) {
+                        throw new PicardException("Could not create symlink: " + output.stdout);
+                    }
+                }
+            } else {
+                throw new PicardException(String.format("Could not create lane directory: %s.", newFileBase.getAbsolutePath()));
+            }
+        } else {
+            throw new PicardException(String.format("Locations file %s does not exist.", baseFile.getAbsolutePath()));
+        }
+
+    }
+
+    /**
+     * Use fileUtil to find the data types that would be used by IlluminaDataProvider.  Verify that for the expected
+     * tiles/cycles/data types that all the files needed to provide their data is present.  This method logs every
+     * error that is found (excluding file faking errors) and returns the number of errors found
+     *
+     * @param fileUtil      A file util paramterized with the directory/lane to check
+     * @param expectedTiles The tiles we expect to be available/well-formed
+     * @param cycles        The cycles we expect to be available/well-formed
+     * @param dataTypes     The data types we expect to be available/well-formed
+     * @return The number of errors found/logged for this directory/lane
+     */
+    private static final int verifyLane(final IlluminaFileUtil fileUtil, final List<Integer> expectedTiles,
+                                        final int[] cycles,
+                                        final Set<IlluminaDataType> dataTypes, final boolean fakeFiles) {
+        if (expectedTiles.isEmpty()) {
+            throw new PicardException(
+                    "0 input tiles were specified!  Check to make sure this lane is in the InterOp file!");
+        }
+
+        if (cycles.length == 0) {
+            throw new PicardException("0 output cycles were specified!");
+        }
+
+        int numFailures = 0;
+
+        //find what request IlluminaDataTypes we have files for and select the most preferred file format available for that type
+        final Map<IlluminaFileUtil.SupportedIlluminaFormat, Set<IlluminaDataType>> formatToDataTypes =
+                IlluminaDataProviderFactory.determineFormats(dataTypes, fileUtil);
+
+        //find if we have any IlluminaDataType with NO available file formats and, if any exist, increase the error count
+        final Set<IlluminaDataType> unmatchedDataTypes =
+                IlluminaDataProviderFactory.findUnmatchedTypes(dataTypes, formatToDataTypes);
+        if (!unmatchedDataTypes.isEmpty()) {
+            if (fakeFiles) {
+                for (final IlluminaDataType dataType : unmatchedDataTypes) {
+                    final IlluminaFileUtil.SupportedIlluminaFormat format =
+                            IlluminaDataProviderFactory.findPreferredFormat(dataType, fileUtil);
+                    fileUtil.getUtil(format).fakeFiles(expectedTiles, cycles, format);
+
+                }
+            }
+            log.info("Could not find a format with available files for the following data types: " + StringUtil
+                    .join(", ", new ArrayList<IlluminaDataType>(unmatchedDataTypes)));
+            numFailures += unmatchedDataTypes.size();
+        }
+
+        for (final IlluminaFileUtil.SupportedIlluminaFormat format : formatToDataTypes.keySet()) {
+            final ParameterizedFileUtil util = fileUtil.getUtil(format);
+            final List<String> failures = util.verify(expectedTiles, cycles);
+            //if we have failures and we want to fake files then fake them now.
+            if (!failures.isEmpty() && fakeFiles) {
+                //fake files
+                util.fakeFiles(expectedTiles, cycles, format);
+
+            }
+            numFailures += failures.size();
+            for (final String failure : failures) {
+                log.info(failure);
+            }
+        }
+
+        return numFailures;
+    }
+
+    @Override
+    protected String[] customCommandLineValidation() {
+        IOUtil.assertDirectoryIsReadable(BASECALLS_DIR);
+        final List<String> errors = new ArrayList<String>();
+
+        for (final Integer lane : LANES) {
+            if (lane < 1) {
+                errors.add(
+                        "LANES must be greater than or equal to 1.  LANES passed in " + StringUtil.join(", ", LANES));
+                break;
+            }
+        }
+
+        if (errors.isEmpty()) {
+            return null;
+        } else {
+            return errors.toArray(new String[errors.size()]);
+        }
+    }
+}
diff --git a/src/java/picard/illumina/ClusterDataToSamConverter.java b/src/java/picard/illumina/ClusterDataToSamConverter.java
new file mode 100644
index 0000000..ad4716f
--- /dev/null
+++ b/src/java/picard/illumina/ClusterDataToSamConverter.java
@@ -0,0 +1,174 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.illumina;
+
+import htsjdk.samtools.ReservedTagConstants;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SAMTag;
+import htsjdk.samtools.filter.SamRecordFilter;
+import htsjdk.samtools.filter.SolexaNoiseFilter;
+import picard.fastq.IlluminaReadNameEncoder;
+import picard.fastq.ReadNameEncoder;
+import picard.illumina.parser.ClusterData;
+import picard.illumina.parser.ReadData;
+import picard.illumina.parser.ReadStructure;
+import picard.util.AdapterMarker;
+import picard.util.AdapterPair;
+import picard.util.IlluminaUtil;
+
+import java.util.List;
+
+/**
+ * Takes ClusterData provided by an IlluminaDataProvider into one or two SAMRecords,
+ * as appropriate, and optionally marking adapter sequence.  There is one converter per
+ * IlluminaBasecallsToSam run, and all the TileProcessors use the same converter.
+ * 
+ * @author jburke at broadinstitute.org
+ */
+public class ClusterDataToSamConverter implements
+        IlluminaBasecallsConverter.ClusterDataConverter<IlluminaBasecallsToSam.SAMRecordsForCluster> {
+
+
+    private final String runBarcode;
+    private final String readGroupId;
+    private final SamRecordFilter filters = new SolexaNoiseFilter();
+    private final boolean isPairedEnd;
+    private final boolean isBarcoded;
+    private final int [] templateIndices;
+    private final int [] barcodeIndices;
+    private final AdapterMarker adapterMarker;
+    private final int outputRecordsPerCluster;
+    private final ReadNameEncoder readNameEncoder;  
+    
+    /**
+     * Constructor
+     *
+     * @param runBarcode        Used to construct read names.
+     * @param readGroupId       If non-null, set RG attribute on SAMRecord to this.
+     * @param readStructure     The expected structure (number of reads and indexes,
+     *                          and their length) in the read.
+     * @param adapters          The list of adapters to check for in the read
+     */
+    public ClusterDataToSamConverter(final String runBarcode,
+                                     final String readGroupId,
+                                     final ReadStructure readStructure,
+                                     final List<IlluminaUtil.IlluminaAdapterPair> adapters) {
+        this.runBarcode  = runBarcode;
+        this.readGroupId = readGroupId;
+        
+        this.readNameEncoder = new IlluminaReadNameEncoder(runBarcode);
+
+        this.isPairedEnd = readStructure.templates.length() == 2;
+        this.isBarcoded  = !readStructure.barcodes.isEmpty();
+
+        if (adapters.isEmpty()) {
+            this.adapterMarker = null;
+        } else {
+            this.adapterMarker = new AdapterMarker(adapters.toArray(new AdapterPair[adapters.size()]));
+        }
+
+        this.templateIndices = readStructure.templates.getIndices();
+        this.barcodeIndices = readStructure.barcodes.getIndices();
+
+        this.outputRecordsPerCluster = readStructure.templates.length();
+    }
+
+    /**
+     * Creates a new SAM record from the basecall data
+     */
+    private SAMRecord createSamRecord(final ReadData readData, final String readName, final boolean isPf, final boolean firstOfPair, final String unmatchedBarcode) {
+        final SAMRecord sam = new SAMRecord(null);
+        sam.setReadName(readName);
+        sam.setReadBases(readData.getBases());
+        sam.setBaseQualities(readData.getQualities());
+
+        // Flag values
+        sam.setReadPairedFlag(isPairedEnd);
+        sam.setReadUnmappedFlag(true);
+        sam.setReadFailsVendorQualityCheckFlag(!isPf);
+        if (isPairedEnd) {
+            sam.setMateUnmappedFlag(true);
+            sam.setFirstOfPairFlag(firstOfPair);
+            sam.setSecondOfPairFlag(!firstOfPair);
+        }
+
+        if (filters.filterOut(sam)) {
+            sam.setAttribute(ReservedTagConstants.XN, 1);
+        }
+
+        if (this.readGroupId != null) {
+            sam.setAttribute(SAMTag.RG.name(), readGroupId);
+        }
+
+        // If it's a barcoded run and the read isn't assigned to a barcode, then add the barcode
+        // that was read as an optional tag
+        if (unmatchedBarcode != null) {
+            sam.setAttribute(SAMTag.BC.name(), unmatchedBarcode);
+        }
+
+        return sam;
+    }
+
+    /**
+     * Creates the SAMRecord for each read in the cluster
+     */
+    public IlluminaBasecallsToSam.SAMRecordsForCluster convertClusterToOutputRecord(final ClusterData cluster) {
+
+        final IlluminaBasecallsToSam.SAMRecordsForCluster ret = new IlluminaBasecallsToSam.SAMRecordsForCluster(outputRecordsPerCluster);
+        final String readName = readNameEncoder.generateReadName(cluster, null); // Use null here to prevent /1 or /2 suffixes on read name.
+
+        // Get and transform the unmatched barcode, if any, to store with the reads
+        String unmatchedBarcode = null;
+        if (isBarcoded && cluster.getMatchedBarcode() == null) {
+            final byte barcode[][] = new byte[barcodeIndices.length][];
+            for (int i = 0; i < barcodeIndices.length; i++) {
+                barcode[i] = cluster.getRead(barcodeIndices[i]).getBases();
+            }
+            unmatchedBarcode = IlluminaUtil.barcodeSeqsToString(barcode).replace('.', 'N'); //TODO: This has a separator, where as in other places we do not use a separator
+        }
+
+        final SAMRecord firstOfPair = createSamRecord(
+            cluster.getRead(templateIndices[0]), readName, cluster.isPf(), true,unmatchedBarcode);
+        ret.records[0] = firstOfPair;
+
+        SAMRecord secondOfPair = null;
+
+        if(isPairedEnd) {
+            secondOfPair  = createSamRecord(
+                cluster.getRead(templateIndices[1]), readName, cluster.isPf(), false, unmatchedBarcode);
+            ret.records[1] = secondOfPair;
+        }
+
+        if (adapterMarker != null) {
+            // Clip the read
+            if (isPairedEnd) {
+                adapterMarker.adapterTrimIlluminaPairedReads(firstOfPair, secondOfPair);
+            }
+            else {
+                adapterMarker.adapterTrimIlluminaSingleRead(firstOfPair);
+            }
+        }
+        return ret;
+    }
+}
diff --git a/src/java/picard/illumina/CollectIlluminaBasecallingMetrics.java b/src/java/picard/illumina/CollectIlluminaBasecallingMetrics.java
new file mode 100644
index 0000000..f15e4de
--- /dev/null
+++ b/src/java/picard/illumina/CollectIlluminaBasecallingMetrics.java
@@ -0,0 +1,276 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.illumina;
+
+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.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.util.SortedMap;
+import java.util.TreeMap;
+
+/***
+ *  A Command line tool to collect Illumina Basecalling metrics for a sequencing run
+ *  Requires a Lane and an input file of Barcodes to expect.
+ *  Outputs metrics:
+ *    *  Mean Clusters Per Tile
+ *    *  Standard Deviation of Clusters Per Tile
+ *    *  Mean Pf Clusters Per Tile
+ *    *  Standard Deviation of Pf Clusters Per Tile
+ *    *  Mean Percentage of Pf Clusters Per Tile
+ *    *  Standard Deviation of Percentage of Pf Clusters Per Tile
+ */
+ at CommandLineProgramProperties(
+        usage = CollectIlluminaBasecallingMetrics.USAGE,
+        usageShort = CollectIlluminaBasecallingMetrics.USAGE,
+        programGroup = Illumina.class
+)
+public class CollectIlluminaBasecallingMetrics extends CommandLineProgram {
+    //Command Line Arguments
+    static final String USAGE = "Given an Illumina basecalling and a lane, produces per-lane-barcode basecalling metrics";
+    
+    @Option(doc="The Illumina basecalls output directory from which data are read", shortName="B")
+    public File BASECALLS_DIR;
+
+    @Option(doc="The lane whose data will be read", shortName = StandardOptionDefinitions.LANE_SHORT_NAME)
+    public Integer LANE;
+
+    // TODO: No longer optional after old workflows are through
+    @Option(doc="The file containing barcodes to expect from the run - barcodeData.#",shortName=StandardOptionDefinitions.INPUT_SHORT_NAME, optional = true)
+    public File INPUT;
+
+    @Option(doc=ReadStructure.PARAMETER_DOC, shortName="RS")
+    public String READ_STRUCTURE;
+
+    @Option(doc="The file to which the collected metrics are written", shortName= StandardOptionDefinitions.OUTPUT_SHORT_NAME, optional = true)
+    public File OUTPUT;
+
+    private int barcodeLength = 0;
+    private String unmatched_barcode;
+    private final SortedMap<String, IlluminaMetricCounts> barcodeToMetricCounts;
+
+    private static final String BARCODE_NAME_COLUMN = "barcode_name";
+    private static final String BARCODE_SEQUENCE_COLUMN_NAME_STUB = "barcode_sequence_";
+
+    public CollectIlluminaBasecallingMetrics() {
+        this.barcodeToMetricCounts = new TreeMap<String, IlluminaMetricCounts>();
+    }
+
+    @Override
+    protected int doWork() {
+        // File and Directory Validation
+        IOUtil.assertDirectoryIsReadable(BASECALLS_DIR);
+        if (OUTPUT == null) OUTPUT = new File(BASECALLS_DIR, String.format("LANE%s_basecalling_metrics", LANE));
+        IOUtil.assertFileIsWritable(OUTPUT);
+
+        final IlluminaDataProviderFactory factory;
+        final ReadStructure readStructure = new ReadStructure(READ_STRUCTURE);
+        final BclQualityEvaluationStrategy bclQualityEvaluationStrategy = new BclQualityEvaluationStrategy(BclQualityEvaluationStrategy.ILLUMINA_ALLEGED_MINIMUM_QUALITY);
+
+        if (INPUT == null) {
+            // TODO: Legacy support. Remove when INPUT is required, after all old workflows are through
+            factory = new IlluminaDataProviderFactory(BASECALLS_DIR, LANE, readStructure, bclQualityEvaluationStrategy,
+                    IlluminaDataType.PF, IlluminaDataType.Position);
+        } else {
+            // Grab expected barcode data from barcodeData.<LANE>
+            IOUtil.assertFileIsReadable(INPUT);
+            final TabbedTextFileWithHeaderParser barcodesParser = new TabbedTextFileWithHeaderParser(INPUT);
+            for (final TabbedTextFileWithHeaderParser.Row row : barcodesParser) {
+                final String barcodeName = row.getField(BARCODE_NAME_COLUMN);
+                final StringBuilder barcode = new StringBuilder();
+                for (int i = 1; i <= readStructure.barcodes.length(); i++) {
+                    barcode.append(row.getField(BARCODE_SEQUENCE_COLUMN_NAME_STUB + i));
+                    if (barcodeLength == 0) barcodeLength = barcode.length();
+                }
+
+                // Only add the barcode to the hash if it has sequences. For libraries
+                // that don't have barcodes this won't be set in the file.
+                if (barcode.length() > 0) {
+                    barcodeToMetricCounts.put(barcode.toString(), new IlluminaMetricCounts(barcode.toString(), barcodeName, LANE));
+                }
+            }
+
+            factory = barcodeToMetricCounts.isEmpty()
+                    ? new IlluminaDataProviderFactory(
+                        BASECALLS_DIR,
+                        LANE,
+                        readStructure,
+                        bclQualityEvaluationStrategy,
+                        IlluminaDataType.PF,
+                        IlluminaDataType.Position)
+                    : new IlluminaDataProviderFactory(
+                        BASECALLS_DIR,
+                        LANE,
+                        readStructure,
+                        bclQualityEvaluationStrategy,
+                        IlluminaDataType.PF,
+                        IlluminaDataType.Position,
+                        IlluminaDataType.Barcodes);
+        }
+
+        unmatched_barcode = StringUtil.repeatCharNTimes('N', barcodeLength);
+
+        //Initialize data provider, iterate over clusters, and collect statistics
+        final IlluminaDataProvider provider = factory.makeDataProvider();
+
+        while (provider.hasNext()) {
+            final ClusterData cluster = provider.next();
+            addCluster(cluster);
+        }
+
+        onComplete();
+        return 0;
+    }
+
+    /***
+     * Process new cluster of Illumina data - increment a running counter of data
+     */
+    private void addCluster(final ClusterData cluster) {
+        //compute hash of Barcode and Lane for key
+        String barcode = cluster.getMatchedBarcode();
+        if (barcode == null) barcode = unmatched_barcode;
+
+        //increment counts
+        IlluminaMetricCounts counters =  barcodeToMetricCounts.get(barcode);
+        if (counters == null) {
+             counters = new IlluminaMetricCounts(barcode,null,LANE);
+             barcodeToMetricCounts.put(barcode, counters);
+        }
+        final int tileNumber = cluster.getTile();
+        counters.incrementClusterCount(tileNumber,cluster.isPf());
+    }
+
+    /**
+     * Handles completion of metric collection. Metrics are computed from counts of data and written out to a file.
+     */
+    private void onComplete() {
+        try {
+            final MetricsFile<IlluminaBasecallingMetrics, Comparable<?>> file = getMetricsFile();
+            final IlluminaMetricCounts allLaneCounts = new IlluminaMetricCounts(null, null, LANE);
+            for (final String s : barcodeToMetricCounts.keySet()) {
+                final IlluminaMetricCounts counts = barcodeToMetricCounts.get(s);
+                counts.addMetricsToFile(file);
+                allLaneCounts.addIlluminaMetricCounts(counts);
+            }
+            if (! barcodeToMetricCounts.keySet().contains("")) allLaneCounts.addMetricsToFile(file);  // detect non-indexed case
+            file.write(OUTPUT);
+        } catch (final Exception ex) {
+            throw new PicardException("Error writing output file " + OUTPUT.getPath(), ex);
+        }
+    }
+
+    public static void main(final String[] argv) {
+        new CollectIlluminaBasecallingMetrics().instanceMainWithExit(argv);
+    }
+
+    /***
+     * This class manages counts of Illumina Basecalling data on a Per Barcode Per Lane basis.  Cluster and PFCluster
+     * counts are stored per tile number.
+     */
+    private class IlluminaMetricCounts {
+        /*** Stores counts of clusters found for a specific Barcode-Lane combination across all tiles.  Key = Tile Number, Value = count of clusters***/
+        private final Histogram<Integer> tileToClusterHistogram;
+        /*** Stores counts of pf clusters found for a specific Barcode-Lane combination across all tiles.  Key = Tile Number, Value = count of clusters***/
+        private final Histogram<Integer> tileToPfClusterHistogram;
+        final IlluminaBasecallingMetrics metrics;
+
+        public IlluminaMetricCounts(final String barcode, final String barcodeName, final Integer laneNumber) {
+            this.tileToClusterHistogram = new Histogram<Integer>();
+            this.tileToPfClusterHistogram = new Histogram<Integer>();
+            this.metrics = new IlluminaBasecallingMetrics();
+            this.metrics.MOLECULAR_BARCODE_SEQUENCE_1 = barcode;
+            this.metrics.MOLECULAR_BARCODE_NAME = barcodeName;
+            this.metrics.LANE = Integer.toString(laneNumber);
+        }
+
+        /*  Increments cluster count by 1 for a given tile number */
+        public void incrementClusterCount(final int tileNumber, final boolean isPf) {
+            incrementClusterCount(tileNumber,1d, isPf);
+        }
+
+        /*  Increments cluster count by an amount for a given tile number */
+        public void incrementClusterCount(final int tileNumber, final double incrementAmount, final boolean isPf) {
+            incrementClusterCount(tileNumber, incrementAmount, (isPf ? 1d : 0d));
+        }
+
+        /*  Increments cluster count by an amount for a given tile number */
+        public void incrementClusterCount(final Integer tileNumber, final double incrementAmount, final double pfIncrementAmount) {
+            tileToClusterHistogram.increment(tileNumber, incrementAmount);
+            tileToPfClusterHistogram.increment(tileNumber, pfIncrementAmount);
+        }
+
+        /* Handles calculating final metrics and updating the metric object */
+        private void onComplete() {
+            final double meanClustersPerTile =  tileToClusterHistogram.getMeanBinSize();
+            metrics.MEAN_CLUSTERS_PER_TILE = Math.round(meanClustersPerTile);
+            metrics.SD_CLUSTERS_PER_TILE = Math.round(tileToClusterHistogram.getStandardDeviationBinSize(meanClustersPerTile));
+
+            final double meanPfClustersPerTile =  tileToPfClusterHistogram.getMeanBinSize();
+            metrics.MEAN_PF_CLUSTERS_PER_TILE = Math.round(meanPfClustersPerTile);
+            metrics.SD_PF_CLUSTERS_PER_TILE = Math.round(tileToPfClusterHistogram.getStandardDeviationBinSize(meanPfClustersPerTile));
+
+            final DecimalFormat decFormat = new DecimalFormat("#.##");
+            final Histogram<Integer> laneToPctPfClusterHistogram = tileToPfClusterHistogram.divideByHistogram(tileToClusterHistogram);
+            final double meanPctPfClustersPerTile = laneToPctPfClusterHistogram.getMeanBinSize();
+            metrics.MEAN_PCT_PF_CLUSTERS_PER_TILE = (Double.isNaN(meanPctPfClustersPerTile) ?  0 : Double.valueOf(decFormat.format(meanPctPfClustersPerTile * 100)));
+            metrics.SD_PCT_PF_CLUSTERS_PER_TILE = Double.valueOf(decFormat.format(laneToPctPfClusterHistogram.getStandardDeviationBinSize(meanPctPfClustersPerTile) * 100));
+
+            metrics.TOTAL_CLUSTERS = (long) this.tileToClusterHistogram.getSumOfValues();
+            metrics.PF_CLUSTERS    = (long) this.tileToPfClusterHistogram.getSumOfValues();
+            
+            final ReadStructure readStructure = new ReadStructure(READ_STRUCTURE);
+            int templateBaseCountPerCluster = 0;
+            for (int i = 0; i < readStructure.templates.length(); i++) templateBaseCountPerCluster += readStructure.templates.get(i).length;
+            metrics.TOTAL_READS = metrics.TOTAL_CLUSTERS * readStructure.templates.length();
+            metrics.PF_READS = metrics.PF_CLUSTERS * readStructure.templates.length();
+            metrics.TOTAL_BASES = metrics.TOTAL_CLUSTERS * templateBaseCountPerCluster;
+            metrics.PF_BASES = metrics.PF_CLUSTERS * templateBaseCountPerCluster;
+            
+        }
+
+        /* Computes final metric based on data counts and writes to output metric file */
+        public void addMetricsToFile(final MetricsFile<IlluminaBasecallingMetrics, Comparable<?>> file) {
+            onComplete();
+            file.addMetric(metrics);
+        }
+
+        /*  Merges data from another IlluminaMetricCount object into current one.*/
+        public void addIlluminaMetricCounts(final IlluminaMetricCounts counts) {
+            this.tileToClusterHistogram.addHistogram(counts.tileToClusterHistogram);
+            this.tileToPfClusterHistogram.addHistogram(counts.tileToPfClusterHistogram);
+        }
+    }
+}
diff --git a/src/java/picard/illumina/CollectIlluminaLaneMetrics.java b/src/java/picard/illumina/CollectIlluminaLaneMetrics.java
new file mode 100644
index 0000000..a73a157
--- /dev/null
+++ b/src/java/picard/illumina/CollectIlluminaLaneMetrics.java
@@ -0,0 +1,161 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.illumina;
+
+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.ReadStructure;
+import picard.illumina.parser.Tile;
+import picard.illumina.parser.TileMetricsUtil;
+import htsjdk.samtools.metrics.MetricBase;
+import htsjdk.samtools.metrics.MetricsFile;
+import htsjdk.samtools.util.CollectionUtil;
+import htsjdk.samtools.util.Log;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.util.Collection;
+import java.util.Map;
+
+/**
+ * Command-line wrapper around {@link IlluminaLaneMetricsCollector}.
+ * @author mccowan
+ */
+
+ at CommandLineProgramProperties(
+        usage = CollectIlluminaLaneMetrics.USAGE,
+        usageShort = CollectIlluminaLaneMetrics.USAGE,
+        programGroup = Illumina.class
+)
+public class CollectIlluminaLaneMetrics extends CommandLineProgram {
+    static final String USAGE = "Collects Illumina lane metrics for the given basecalling analysis directory";
+    
+    @Option(doc = "The Illumina run directory of the run for which the lane metrics are to be generated")
+    public File RUN_DIRECTORY;
+
+    @Option(doc = "The directory to which the output file will be written")
+    public File OUTPUT_DIRECTORY;
+
+    @Option(doc = "The prefix to be prepended to the file name of the output file; an appropriate suffix will be applied", shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME)
+    public String OUTPUT_PREFIX;
+
+    @Option(doc= ReadStructure.PARAMETER_DOC, shortName="RS")
+    public ReadStructure READ_STRUCTURE;
+
+    @Override
+    protected int doWork() {
+        final MetricsFile<MetricBase, Comparable<?>> laneMetricsFile = this.getMetricsFile();
+        final MetricsFile<MetricBase, Comparable<?>> phasingMetricsFile = this.getMetricsFile();
+        IlluminaLaneMetricsCollector.collectLaneMetrics(RUN_DIRECTORY, OUTPUT_DIRECTORY, OUTPUT_PREFIX, laneMetricsFile, phasingMetricsFile, READ_STRUCTURE);
+        return 0;
+    }
+
+    public static void main(final String[] args) {
+        new CollectIlluminaLaneMetrics().instanceMainWithExit(args);
+    }
+
+    /**
+     * Utility for collating Tile records from the Illumina TileMetrics file into lane-level and phasing-level metrics.
+     */
+    public static class IlluminaLaneMetricsCollector {
+    
+        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<Integer, Collection<Tile>> readLaneTiles(final File illuminaRunDirectory, final ReadStructure readStructure) {
+            final Collection<Tile> tiles;
+            try {
+                tiles = TileMetricsUtil.parseTileMetrics(TileMetricsUtil.renderTileMetricsFileFromBasecallingDirectory(illuminaRunDirectory), readStructure);
+            } catch (final FileNotFoundException e) {
+                throw new PicardException("Unable to open laneMetrics file.", e);
+            }
+    
+            return CollectionUtil.partition(tiles,
+                    new CollectionUtil.Partitioner<Tile, Integer>() {
+                        @Override
+                        public Integer getPartition(final Tile tile) {
+                            return tile.getLaneNumber();
+                        }
+                    });
+        }
+
+        /** Parses the tile data from the basecall directory and writes to both the lane and phasing metrics files */
+        public static void collectLaneMetrics(final File runDirectory, final File outputDirectory, final String outputPrefix,
+                                              final MetricsFile<MetricBase, Comparable<?>> laneMetricsFile,
+                                              final MetricsFile<MetricBase, Comparable<?>> phasingMetricsFile,
+                                              final ReadStructure readStructure) {
+            final Map<Integer, Collection<Tile>> laneTiles = readLaneTiles(runDirectory, readStructure);
+            writeLaneMetrics(laneTiles, outputDirectory, outputPrefix, laneMetricsFile);
+            writePhasingMetrics(laneTiles, outputDirectory, outputPrefix, phasingMetricsFile);
+        }
+
+        public static File writePhasingMetrics(final Map<Integer, Collection<Tile>> laneTiles, final File outputDirectory,
+                                               final String outputPrefix, final MetricsFile<MetricBase, Comparable<?>> phasingMetricsFile) {
+            for (final Map.Entry<Integer, Collection<Tile>> entry : laneTiles.entrySet()) {
+                for (final IlluminaPhasingMetrics phasingMetric : IlluminaPhasingMetrics.getPhasingMetricsForTiles(entry.getKey()
+                        .longValue(),
+                        entry.getValue())) {
+                    phasingMetricsFile.addMetric(phasingMetric);
+                }
+            }
+
+            return writeMetrics(phasingMetricsFile, outputDirectory, outputPrefix, IlluminaPhasingMetrics.getExtension());
+        }
+
+        public static File writeLaneMetrics(final Map<Integer, Collection<Tile>> laneTiles, final File outputDirectory,
+                                            final String outputPrefix, final MetricsFile<MetricBase, Comparable<?>> laneMetricsFile) {
+            for (final Map.Entry<Integer, Collection<Tile>> entry : laneTiles.entrySet()) {
+                final IlluminaLaneMetrics laneMetric = new IlluminaLaneMetrics();
+                laneMetric.LANE = entry.getKey().longValue();
+                laneMetric.CLUSTER_DENSITY = calculateLaneDensityFromTiles(entry.getValue());
+                laneMetricsFile.addMetric(laneMetric);
+            }
+
+            return writeMetrics(laneMetricsFile, outputDirectory, outputPrefix, IlluminaLaneMetrics.getExtension());
+        }
+
+        private static File writeMetrics(final MetricsFile<MetricBase, Comparable<?>> metricsFile, final File outputDirectory,
+                                         final String outputPrefix, final String outputExtension) {
+            final File outputFile = new File(outputDirectory, String.format("%s.%s", outputPrefix, outputExtension));
+            LOG.info(String.format("Writing %s lane metrics to %s ...", metricsFile.getMetrics().size(), outputFile));
+            metricsFile.write(outputFile);
+            return outputFile;
+        }
+
+        private static double calculateLaneDensityFromTiles(final Collection<Tile> tiles) {
+            double area = 0;
+            double clusters = 0;
+            for (final Tile tile : tiles) {
+                area += (tile.getClusterCount() / tile.getClusterDensity());
+                clusters += tile.getClusterCount();
+            }
+            return clusters/area;
+        }
+    }
+}
diff --git a/src/java/picard/illumina/ExtractIlluminaBarcodes.java b/src/java/picard/illumina/ExtractIlluminaBarcodes.java
new file mode 100644
index 0000000..4d2f590
--- /dev/null
+++ b/src/java/picard/illumina/ExtractIlluminaBarcodes.java
@@ -0,0 +1,717 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.illumina;
+
+import htsjdk.samtools.metrics.MetricBase;
+import htsjdk.samtools.metrics.MetricsFile;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.SequenceUtil;
+import htsjdk.samtools.util.StringUtil;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.programgroups.Illumina;
+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.ReadDescriptor;
+import picard.illumina.parser.ReadStructure;
+import picard.illumina.parser.ReadType;
+import picard.illumina.parser.readers.BclQualityEvaluationStrategy;
+import picard.util.IlluminaUtil;
+import picard.util.TabbedTextFileWithHeaderParser;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.text.NumberFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Determine the barcode for each read in an Illumina lane.
+ * For each tile, a file is written to the basecalls directory of the form s_<lane>_<tile>_barcode.txt.
+ * An output file contains a line for each read in the tile, aligned with the regular basecall output
+ * The output file contains the following tab-separated columns:
+ * - read subsequence at barcode position
+ * - Y or N indicating if there was a barcode match
+ * - matched barcode sequence (empty if read did not match one of the barcodes).  If there is no match
+ * but we're close to the threshold of calling it a match we output the barcode that would have been
+ * matched but in lower case
+ *
+ * @author jburke at broadinstitute.org
+ */
+ at CommandLineProgramProperties(
+        usage = "Determine the barcode for each read in an Illumina lane.\n" +
+                "For each tile, a file is written to the basecalls directory of the form s_<lane>_<tile>_barcode.txt. " +
+                "An output file contains a line for each read in the tile, aligned with the regular basecall output. \n" +
+                "The output file contains the following tab-separated columns: \n" +
+                "    * read subsequence at barcode position\n" +
+                "    * Y or N indicating if there was a barcode match\n" +
+                "    * matched barcode sequence\n" +
+                "Note that the order of specification of barcodes can cause arbitrary differences in output for poorly matching barcodes.\n\n",
+        usageShort = "Tool to determine the barcode for each read in an Illumina lane",
+        programGroup = Illumina.class
+)
+public class ExtractIlluminaBarcodes extends CommandLineProgram {
+
+    // The following attributes define the command-line arguments
+
+    @Option(doc = "The Illumina basecalls directory. ", shortName = "B")
+    public File BASECALLS_DIR;
+
+    @Option(doc = "Where to write _barcode.txt files.  By default, these are written to BASECALLS_DIR.", optional = true)
+    public File OUTPUT_DIR;
+
+    @Option(doc = "Lane number. ", shortName = StandardOptionDefinitions.LANE_SHORT_NAME)
+    public Integer LANE;
+
+    @Option(doc = ReadStructure.PARAMETER_DOC, shortName = "RS")
+    public String READ_STRUCTURE;
+
+    @Option(doc = "Barcode sequence.  These must be unique, and all the same length.  This cannot be used with reads that " +
+            "have more than one barcode; use BARCODE_FILE in that case. ", mutex = {"BARCODE_FILE"})
+    public List<String> BARCODE = new ArrayList<String>();
+
+    @Option(doc = "Tab-delimited file of barcode sequences, barcode name and, optionally, library name.  " +
+            "Barcodes must be unique and all the same length.  Column headers must be 'barcode_sequence_1', " +
+            "'barcode_sequence_2' (optional), 'barcode_name', and 'library_name'.", mutex = {"BARCODE"})
+    public File BARCODE_FILE;
+
+    @Option(doc = "Per-barcode and per-lane metrics written to this file.", shortName = StandardOptionDefinitions.METRICS_FILE_SHORT_NAME)
+    public File METRICS_FILE;
+
+    @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(shortName = "Q", doc = "Minimum base quality. Any barcode bases falling below this quality will be considered a mismatch even in the bases match.")
+    public int MINIMUM_BASE_QUALITY = 0;
+
+    @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(shortName = "GZIP", doc = "Compress output s_l_t_barcode.txt files using gzip and append a .gz extension to the file names.")
+    public boolean COMPRESS_OUTPUTS = false;
+
+    @Option(doc = "Run this many PerTileBarcodeExtractors in parallel.  If NUM_PROCESSORS = 0, number of cores is automatically set to " +
+            "the number of cores available on the machine. If NUM_PROCESSORS < 0 then the number of cores used will be " +
+            "the number available on the machine less NUM_PROCESSORS.")
+    public int NUM_PROCESSORS = 1;
+
+    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 */
+    private ReadStructure readStructure;
+
+    private IlluminaDataProviderFactory factory;
+
+    private final Map<String, BarcodeMetric> barcodeToMetrics = new LinkedHashMap<String, BarcodeMetric>();
+
+    private final NumberFormat tileNumberFormatter = NumberFormat.getNumberInstance();
+    private BclQualityEvaluationStrategy bclQualityEvaluationStrategy;
+
+    public ExtractIlluminaBarcodes() {
+        tileNumberFormatter.setMinimumIntegerDigits(4);
+        tileNumberFormatter.setGroupingUsed(false);
+    }
+
+    @Override
+    protected int doWork() {
+
+        IOUtil.assertFileIsWritable(METRICS_FILE);
+        if (OUTPUT_DIR == null) {
+            OUTPUT_DIR = BASECALLS_DIR;
+        }
+        IOUtil.assertDirectoryIsWritable(OUTPUT_DIR);
+
+        // Create BarcodeMetric for counting reads that don't match any barcode
+        final String[] noMatchBarcode = new String[readStructure.barcodes.length()];
+        int index = 0;
+        for (final ReadDescriptor d : readStructure.descriptors) {
+            if (d.type == ReadType.Barcode) {
+                noMatchBarcode[index++] = StringUtil.repeatCharNTimes('N', d.length);
+            }
+        }
+
+        final BarcodeMetric noMatchMetric = new BarcodeMetric(null, null, IlluminaUtil.barcodeSeqsToString(noMatchBarcode), noMatchBarcode);
+
+        final int numProcessors;
+        if (NUM_PROCESSORS == 0) {
+            numProcessors = Runtime.getRuntime().availableProcessors();
+        } else if (NUM_PROCESSORS < 0) {
+            numProcessors = Runtime.getRuntime().availableProcessors() + NUM_PROCESSORS;
+        } else {
+            numProcessors = NUM_PROCESSORS;
+        }
+
+        LOG.info("Processing with " + numProcessors + " PerTileBarcodeExtractor(s).");
+        final ExecutorService pool = Executors.newFixedThreadPool(numProcessors);
+
+        // TODO: This is terribly inefficient; we're opening a huge number of files via the extractor constructor and we never close them.
+        final List<PerTileBarcodeExtractor> extractors = new ArrayList<PerTileBarcodeExtractor>(factory.getAvailableTiles().size());
+        for (final int tile : factory.getAvailableTiles()) {
+            final PerTileBarcodeExtractor extractor = new PerTileBarcodeExtractor(
+                    tile,
+                    getBarcodeFile(tile),
+                    barcodeToMetrics,
+                    noMatchMetric,
+                    factory,
+                    MINIMUM_BASE_QUALITY,
+                    MAX_NO_CALLS,
+                    MAX_MISMATCHES,
+                    MIN_MISMATCH_DELTA
+            );
+            extractors.add(extractor);
+        }
+        try {
+            for (final PerTileBarcodeExtractor extractor : extractors) {
+                pool.submit(extractor);    
+            }
+            pool.shutdown();
+            // Wait a while for existing tasks to terminate
+            if (!pool.awaitTermination(6, TimeUnit.HOURS)) {
+                pool.shutdownNow(); // Cancel any still-executing tasks
+                // Wait a while for tasks to respond to being cancelled
+                if (!pool.awaitTermination(60, TimeUnit.SECONDS))
+                    LOG.error("Pool did not terminate");
+                return 1;
+            }
+        } catch (final Throwable e) {
+            // (Re-)Cancel if current thread also interrupted
+            LOG.error(e, "Parent thread encountered problem submitting extractors to thread pool or awaiting shutdown of threadpool.  Attempting to kill threadpool.");
+            pool.shutdownNow();
+            return 2;
+        }
+
+        LOG.info("Processed " + extractors.size() + " tiles.");
+        for (final PerTileBarcodeExtractor extractor : extractors) {
+            for (final String key : barcodeToMetrics.keySet()) {
+                barcodeToMetrics.get(key).merge(extractor.getMetrics().get(key));
+            }
+            noMatchMetric.merge(extractor.getNoMatchMetric());
+            if (extractor.getException() != null) {
+                LOG.error("Abandoning metrics calculation because one or more PerTileBarcodeExtractors failed.");
+                return 4;
+            }
+        }
+
+        // Finish metrics tallying.
+        int totalReads = noMatchMetric.READS;
+        int totalPfReads = noMatchMetric.PF_READS;
+        int totalPfReadsAssigned = 0;
+        for (final BarcodeMetric barcodeMetric : barcodeToMetrics.values()) {
+            totalReads += barcodeMetric.READS;
+            totalPfReads += barcodeMetric.PF_READS;
+            totalPfReadsAssigned += barcodeMetric.PF_READS;
+        }
+
+        if (totalReads > 0) {
+            noMatchMetric.PCT_MATCHES = noMatchMetric.READS / (double) totalReads;
+            double bestPctOfAllBarcodeMatches = 0;
+            for (final BarcodeMetric barcodeMetric : barcodeToMetrics.values()) {
+                barcodeMetric.PCT_MATCHES = barcodeMetric.READS / (double) totalReads;
+                if (barcodeMetric.PCT_MATCHES > bestPctOfAllBarcodeMatches) {
+                    bestPctOfAllBarcodeMatches = barcodeMetric.PCT_MATCHES;
+                }
+            }
+            if (bestPctOfAllBarcodeMatches > 0) {
+                noMatchMetric.RATIO_THIS_BARCODE_TO_BEST_BARCODE_PCT =
+                        noMatchMetric.PCT_MATCHES / bestPctOfAllBarcodeMatches;
+                for (final BarcodeMetric barcodeMetric : barcodeToMetrics.values()) {
+                    barcodeMetric.RATIO_THIS_BARCODE_TO_BEST_BARCODE_PCT =
+                            barcodeMetric.PCT_MATCHES / bestPctOfAllBarcodeMatches;
+                }
+            }
+        }
+
+        if (totalPfReads > 0) {
+            noMatchMetric.PF_PCT_MATCHES = noMatchMetric.PF_READS / (double) totalPfReads;
+            double bestPctOfAllBarcodeMatches = 0;
+            for (final BarcodeMetric barcodeMetric : barcodeToMetrics.values()) {
+                barcodeMetric.PF_PCT_MATCHES = barcodeMetric.PF_READS / (double) totalPfReads;
+                if (barcodeMetric.PF_PCT_MATCHES > bestPctOfAllBarcodeMatches) {
+                    bestPctOfAllBarcodeMatches = barcodeMetric.PF_PCT_MATCHES;
+                }
+            }
+            if (bestPctOfAllBarcodeMatches > 0) {
+                noMatchMetric.PF_RATIO_THIS_BARCODE_TO_BEST_BARCODE_PCT =
+                        noMatchMetric.PF_PCT_MATCHES / bestPctOfAllBarcodeMatches;
+                for (final BarcodeMetric barcodeMetric : barcodeToMetrics.values()) {
+                    barcodeMetric.PF_RATIO_THIS_BARCODE_TO_BEST_BARCODE_PCT =
+                            barcodeMetric.PF_PCT_MATCHES / bestPctOfAllBarcodeMatches;
+                }
+            }
+        }
+
+        // Warn about minimum qualities and assert that we've achieved the minimum.
+        for (Map.Entry<Byte, Integer> entry : bclQualityEvaluationStrategy.getPoorQualityFrequencies().entrySet()) {
+            LOG.warn(String.format("Observed low quality of %s %s times.", entry.getKey(), entry.getValue()));
+        }
+        bclQualityEvaluationStrategy.assertMinimumQualities();
+
+        // Calculate the normalized matches
+        if (totalPfReadsAssigned > 0) {
+            final double mean = (double) totalPfReadsAssigned / (double) barcodeToMetrics.values().size();
+            for (final BarcodeMetric m : barcodeToMetrics.values()) {
+                m.PF_NORMALIZED_MATCHES = m.PF_READS / mean;
+            }
+        }
+
+        final MetricsFile<BarcodeMetric, Integer> metrics = getMetricsFile();
+        for (final BarcodeMetric barcodeMetric : barcodeToMetrics.values()) {
+            metrics.addMetric(barcodeMetric);
+        }
+        metrics.addMetric(noMatchMetric);
+        metrics.write(METRICS_FILE);
+        return 0;
+    }
+
+    /** 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" : ""));
+    }
+
+    /**
+     * 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.
+     */
+    @Override
+    protected String[] customCommandLineValidation() {
+        final ArrayList<String> messages = new ArrayList<String>();
+
+        this.bclQualityEvaluationStrategy = new BclQualityEvaluationStrategy(MINIMUM_QUALITY);
+
+        /**
+         * In extract illumina barcodes we NEVER want to look at the template reads, therefore replace them with skips because
+         * IlluminaDataProvider and its factory will not open these nor produce ClusterData with the template reads in them, thus reducing
+         * the file IO and value copying done by the data provider
+         */
+        readStructure = new ReadStructure(READ_STRUCTURE.replaceAll("T", "S"));
+        final IlluminaDataType[] datatypes = (MINIMUM_BASE_QUALITY > 0) ?
+                new IlluminaDataType[]{IlluminaDataType.BaseCalls, IlluminaDataType.PF, IlluminaDataType.QualityScores} :
+                new IlluminaDataType[]{IlluminaDataType.BaseCalls, IlluminaDataType.PF};
+        factory = new IlluminaDataProviderFactory(BASECALLS_DIR, LANE, readStructure, bclQualityEvaluationStrategy, datatypes);
+
+        if (BARCODE_FILE != null) {
+            parseBarcodeFile(messages);
+        } else {
+            final Set<String> barcodes = new HashSet<String>();
+            for (final String barcode : BARCODE) {
+                if (barcodes.contains(barcode)) {
+                    messages.add("Barcode " + barcode + " specified more than once.");
+                }
+                barcodes.add(barcode);
+                final BarcodeMetric metric = new BarcodeMetric(null, null, barcode, new String[]{barcode});
+                barcodeToMetrics.put(barcode, metric);
+            }
+        }
+        if (barcodeToMetrics.keySet().size() == 0) {
+            messages.add("No barcodes have been specified.");
+        }
+        if (messages.size() == 0) {
+            return null;
+        }
+        return messages.toArray(new String[messages.size()]);
+    }
+
+    public static void main(final String[] argv) {
+        new ExtractIlluminaBarcodes().instanceMainWithExit(argv);
+    }
+
+    private static final String BARCODE_SEQUENCE_COLUMN = "barcode_sequence";
+    private static final String BARCODE_SEQUENCE_1_COLUMN = "barcode_sequence_1";
+    private static final String BARCODE_NAME_COLUMN = "barcode_name";
+    private static final String LIBRARY_NAME_COLUMN = "library_name";
+
+    private void parseBarcodeFile(final ArrayList<String> messages) {
+        final TabbedTextFileWithHeaderParser barcodesParser = new TabbedTextFileWithHeaderParser(BARCODE_FILE);
+        final String sequenceColumn = barcodesParser.hasColumn(BARCODE_SEQUENCE_COLUMN)
+                ? BARCODE_SEQUENCE_COLUMN : barcodesParser.hasColumn(BARCODE_SEQUENCE_1_COLUMN)
+                ? BARCODE_SEQUENCE_1_COLUMN : null;
+        if (sequenceColumn == null) {
+            messages.add(BARCODE_FILE + " does not have " + BARCODE_SEQUENCE_COLUMN + " or " +
+                    BARCODE_SEQUENCE_1_COLUMN + " column header");
+            return;
+        }
+        final boolean hasBarcodeName = barcodesParser.hasColumn(BARCODE_NAME_COLUMN);
+        final boolean hasLibraryName = barcodesParser.hasColumn(LIBRARY_NAME_COLUMN);
+        final int numBarcodes = readStructure.barcodes.length();
+        final Set<String> barcodes = new HashSet<String>();
+        for (final TabbedTextFileWithHeaderParser.Row row : barcodesParser) {
+            final String bcStrings[] = new String[numBarcodes];
+            int barcodeNum = 1;
+            for (final ReadDescriptor rd : readStructure.descriptors) {
+                if (rd.type != ReadType.Barcode) continue;
+                final String header = barcodeNum == 1 ? sequenceColumn : "barcode_sequence_" + String.valueOf(barcodeNum);
+                bcStrings[barcodeNum - 1] = row.getField(header);
+                barcodeNum++;
+            }
+            final String bcStr = IlluminaUtil.barcodeSeqsToString(bcStrings);
+            if (barcodes.contains(bcStr)) {
+                messages.add("Barcode " + bcStr + " specified more than once in " + BARCODE_FILE);
+            }
+            barcodes.add(bcStr);
+            final String barcodeName = (hasBarcodeName ? row.getField(BARCODE_NAME_COLUMN) : "");
+            final String libraryName = (hasLibraryName ? row.getField(LIBRARY_NAME_COLUMN) : "");
+            final BarcodeMetric metric = new BarcodeMetric(barcodeName, libraryName, bcStr, bcStrings);
+            barcodeToMetrics.put(StringUtil.join("", bcStrings), metric);
+        }
+        barcodesParser.close();
+    }
+
+    /**
+     * Metrics produced by the ExtractIlluminaBarcodes program that is used to parse data in
+     * the basecalls directory and determine to which barcode each read should be assigned.
+     */
+    public static class BarcodeMetric extends MetricBase {
+        /**
+         * The barcode (from the set of expected barcodes) for which the following metrics apply.
+         * Note that the "symbolic" barcode of NNNNNN is used to report metrics for all reads that
+         * do not match a barcode.
+         */
+        public String BARCODE;
+        public String BARCODE_NAME = "";
+        public String LIBRARY_NAME = "";
+        /** 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). */
+        public int PF_READS = 0;
+        /** 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. */
+        public int PF_PERFECT_MATCHES = 0;
+        /** 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. */
+        public int PF_ONE_MISMATCH_MATCHES = 0;
+        /** The percentage 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
+         * most prevelant barcode this will be 1, for all others it will be less than 1 (except for the possible
+         * exception of when there are more orphan reads than for any other barcode, in which case the value
+         * may be arbitrarily large).  One over the lowest number in this column gives you the fold-difference
+         * in representation between barcodes.
+         */
+        public double RATIO_THIS_BARCODE_TO_BEST_BARCODE_PCT = 0d;
+        /** The percentage of PF reads in the lane that matched to this barcode. */
+        public double PF_PCT_MATCHES = 0d;
+
+        /**
+         * The rate of PF reads matching this barcode to PF reads matching the most prevelant barcode. For the
+         * most prevelant barcode this will be 1, for all others it will be less than 1 (except for the possible
+         * exception of when there are more orphan reads than for any other barcode, in which case the value
+         * may be arbitrarily large).  One over the lowest number in this column gives you the fold-difference
+         * in representation of PF reads between barcodes.
+         */
+        public double PF_RATIO_THIS_BARCODE_TO_BEST_BARCODE_PCT = 0d;
+
+        /**
+         * The "normalized" matches to each barcode. This is calculated as the number of pf reads matching
+         * this barcode over the sum of all pf reads matching any barcode (excluding orphans). If all barcodes
+         * are represented equally this will be 1.
+         */
+        public double PF_NORMALIZED_MATCHES;
+
+        protected byte[][] barcodeBytes;
+
+        public BarcodeMetric(final String barcodeName, final String libraryName,
+                             final String barcodeDisplay, final String[] barcodeSeqs) {
+
+            this.BARCODE = barcodeDisplay;
+            this.BARCODE_NAME = barcodeName;
+            this.LIBRARY_NAME = libraryName;
+            this.barcodeBytes = new byte[barcodeSeqs.length][];
+            for (int i = 0; i < barcodeSeqs.length; i++) {
+                barcodeBytes[i] = htsjdk.samtools.util.StringUtil.stringToBytes(barcodeSeqs[i]);
+            }
+        }
+
+        /** 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 */
+        public static BarcodeMetric copy(final BarcodeMetric metric) {
+            final BarcodeMetric result = new BarcodeMetric();
+            result.BARCODE = metric.BARCODE;
+            result.BARCODE_NAME = metric.BARCODE_NAME;
+            result.LIBRARY_NAME = metric.LIBRARY_NAME;
+            result.barcodeBytes = metric.barcodeBytes;
+            return result;
+        }
+
+        /**
+         * Adds the non-calculated
+         *
+         * @param metric
+         */
+        public void merge(final BarcodeMetric metric) {
+            this.READS += metric.READS;
+            this.PF_READS += metric.PF_READS;
+            this.PERFECT_MATCHES += metric.PERFECT_MATCHES;
+            this.PF_PERFECT_MATCHES += metric.PF_PERFECT_MATCHES;
+            this.ONE_MISMATCH_MATCHES += metric.ONE_MISMATCH_MATCHES;
+            this.PF_ONE_MISMATCH_MATCHES += metric.PF_ONE_MISMATCH_MATCHES;
+        }
+
+    }
+
+    /** Extracts barcodes and accumulates metrics for an entire tile. */
+    private static class PerTileBarcodeExtractor implements Runnable {
+        private final int tile;
+        private final File barcodeFile;
+        private final Map<String, BarcodeMetric> metrics;
+        private final BarcodeMetric noMatch;
+        private Exception exception = null;
+        private final boolean usingQualityScores;
+        private final IlluminaDataProvider 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 {
+            boolean matched;
+            String barcode;
+            int mismatches;
+            int mismatchesToSecondBest;
+        }
+
+        /**
+         * Constructor
+         *
+         * @param tile             The number of the tile being processed; used for logging only.
+         * @param barcodeFile      The file to write the barcodes to
+         * @param noMatchMetric    A "template" metric that is cloned and the clone is stored internally for accumulating data
+         * @param barcodeToMetrics A "template" metric map whose metrics are cloned, and the clones are stored internally for accumulating data
+         */
+        public PerTileBarcodeExtractor(
+                final int tile,
+                final File barcodeFile,
+                final Map<String, BarcodeMetric> barcodeToMetrics,
+                final BarcodeMetric noMatchMetric,
+                final IlluminaDataProviderFactory factory,
+                final int minimumBaseQuality,
+                final int maxNoCalls,
+                final int maxMismatches,
+                final int minMismatchDelta
+        ) {
+            this.tile = tile;
+            this.barcodeFile = barcodeFile;
+            this.usingQualityScores = minimumBaseQuality > 0;
+            this.maxNoCalls = maxNoCalls;
+            this.maxMismatches = maxMismatches;
+            this.minMismatchDelta = minMismatchDelta;
+            this.minimumBaseQuality = minimumBaseQuality;
+            this.metrics = new LinkedHashMap<String, BarcodeMetric>(barcodeToMetrics.size());
+            for (final String key : barcodeToMetrics.keySet()) {
+                this.metrics.put(key, BarcodeMetric.copy(barcodeToMetrics.get(key)));
+            }
+            this.noMatch = BarcodeMetric.copy(noMatchMetric);
+            this.provider = factory.makeDataProvider(Arrays.asList(tile));
+            this.outputReadStructure = factory.getOutputReadStructure();
+
+        }
+
+        // These methods return the results of the extraction
+        public synchronized Map<String, BarcodeMetric> getMetrics() {
+            return this.metrics;
+        }
+
+        public synchronized BarcodeMetric getNoMatchMetric() { return this.noMatch; }
+
+        public synchronized Exception getException() { return this.exception; }
+
+        /** run method which extracts barcodes and accumulates metrics for an entire tile */
+        synchronized public void run() {
+            try {
+                LOG.info("Extracting barcodes for tile " + tile);
+
+                //Sometimes makeDataProvider takes a while waiting for slow file IO, for each tile the needed set of files
+                //is non-overlapping sets of files so make the  data providers in the individual threads for PerTileBarcodeExtractors
+                //so they are not all waiting for each others file operations
+
+                //Most likely we have SKIPS in our read structure since we replace all template reads with skips in the input data structure
+                //(see customCommnandLineValidation), therefore we must use the outputReadStructure to index into the output cluster data
+                final int[] barcodeIndices = outputReadStructure.barcodes.getIndices();
+                final BufferedWriter writer = IOUtil.openFileForBufferedWriting(barcodeFile);
+                final byte barcodeSubsequences[][] = new byte[barcodeIndices.length][];
+                final byte qualityScores[][] = usingQualityScores ? new byte[barcodeIndices.length][] : null;
+                while (provider.hasNext()) {
+                    // Extract the barcode from the cluster and write it to the file for the tile
+                    final ClusterData cluster = provider.next();
+                    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 boolean passingFilter = cluster.isPf();
+                    final BarcodeMatch match = findBestBarcodeAndUpdateMetrics(barcodeSubsequences, qualityScores, passingFilter, metrics, noMatch);
+
+                    final String yOrN = (match.matched ? "Y" : "N");
+
+                    for (final byte[] bc : barcodeSubsequences) {
+                        writer.write(StringUtil.bytesToString(bc));
+                    }
+                    writer.write("\t" + yOrN + "\t" + match.barcode + "\t" + String.valueOf(match.mismatches) +
+                            "\t" + String.valueOf(match.mismatchesToSecondBest));
+                    writer.newLine();
+                }
+                writer.close();
+            } catch (final Exception e) {
+                LOG.error(e, "Error processing tile ", this.tile);
+                this.exception = e;
+            }
+            finally{
+                provider.close();
+            }
+        }
+
+        /**
+         * Find the best barcode match for the given read sequence, and accumulate metrics
+         *
+         * @param readSubsequences portion of read containing barcode
+         * @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<String, BarcodeMetric> metrics,
+                                                             final BarcodeMetric noMatchBarcodeMetric) {
+            BarcodeMetric bestBarcodeMetric = null;
+            int totalBarcodeReadBases = 0;
+            int numNoCalls = 0; // NoCalls are calculated for all the barcodes combined
+
+            for (final byte[] bc : readSubsequences) {
+                totalBarcodeReadBases += bc.length;
+                for (final byte b : bc) if (SequenceUtil.isNoCall(b)) ++numNoCalls;
+            }
+
+            // PIC-506 When forcing all reads to match a single barcode, allow a read to match even if every
+            // base is a mismatch.
+            int numMismatchesInBestBarcode = totalBarcodeReadBases + 1;
+            int numMismatchesInSecondBestBarcode = totalBarcodeReadBases + 1;
+
+            for (final BarcodeMetric barcodeMetric : metrics.values()) {
+                final int numMismatches = countMismatches(barcodeMetric.barcodeBytes, readSubsequences, qualityScores);
+                if (numMismatches < numMismatchesInBestBarcode) {
+                    if (bestBarcodeMetric != null) {
+                        numMismatchesInSecondBestBarcode = numMismatchesInBestBarcode;
+                    }
+                    numMismatchesInBestBarcode = numMismatches;
+                    bestBarcodeMetric = barcodeMetric;
+                } else if (numMismatches < numMismatchesInSecondBestBarcode) {
+                    numMismatchesInSecondBestBarcode = numMismatches;
+                }
+            }
+
+            final boolean matched = bestBarcodeMetric != null &&
+                    numNoCalls <= maxNoCalls &&
+                    numMismatchesInBestBarcode <= maxMismatches &&
+                    numMismatchesInSecondBestBarcode - numMismatchesInBestBarcode >= minMismatchDelta;
+
+            final BarcodeMatch match = new BarcodeMatch();
+
+            // If we have something that's not a "match" but matches one barcode
+            // slightly, we output that matching barcode in lower case
+            if (numNoCalls + numMismatchesInBestBarcode < totalBarcodeReadBases) {
+                match.mismatches = numMismatchesInBestBarcode;
+                match.mismatchesToSecondBest = numMismatchesInSecondBestBarcode;
+                match.barcode = bestBarcodeMetric.BARCODE.toLowerCase().replaceAll(IlluminaUtil.BARCODE_DELIMITER, "");
+            } else {
+                match.mismatches = totalBarcodeReadBases;
+                match.barcode = "";
+            }
+
+            if (matched) {
+                ++bestBarcodeMetric.READS;
+                if (passingFilter) {
+                    ++bestBarcodeMetric.PF_READS;
+                }
+                if (numMismatchesInBestBarcode == 0) {
+                    ++bestBarcodeMetric.PERFECT_MATCHES;
+                    if (passingFilter) {
+                        ++bestBarcodeMetric.PF_PERFECT_MATCHES;
+                    }
+                } else if (numMismatchesInBestBarcode == 1) {
+                    ++bestBarcodeMetric.ONE_MISMATCH_MATCHES;
+                    if (passingFilter) {
+                        ++bestBarcodeMetric.PF_ONE_MISMATCH_MATCHES;
+                    }
+                }
+
+                match.matched = true;
+                match.barcode = bestBarcodeMetric.BARCODE.replaceAll(IlluminaUtil.BARCODE_DELIMITER, "");
+            } else {
+                ++noMatchBarcodeMetric.READS;
+                if (passingFilter) {
+                    ++noMatchBarcodeMetric.PF_READS;
+                }
+            }
+
+            return match;
+        }
+
+        /**
+         * Compare barcode sequence to bases from read
+         *
+         * @return how many bases did not match
+         */
+        private int countMismatches(final byte[][] barcodeBytes, final byte[][] readSubsequence, final byte[][] qualities) {
+            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++) {
+                final int basesToCheck = Math.min(barcodeBytes[j].length, readSubsequence[j].length);
+                for (int i = 0; i < basesToCheck; ++i) {
+                    if (!SequenceUtil.isNoCall(readSubsequence[j][i])) {
+                        if (!SequenceUtil.basesEqual(barcodeBytes[j][i], readSubsequence[j][i])) ++numMismatches;
+                        else if (qualities != null && qualities[j][i] < minimumBaseQuality) ++numMismatches;
+                    }
+                }
+            }
+            return numMismatches;
+        }
+    }
+}
diff --git a/src/java/picard/illumina/IlluminaBasecallingMetrics.java b/src/java/picard/illumina/IlluminaBasecallingMetrics.java
new file mode 100644
index 0000000..27270b0
--- /dev/null
+++ b/src/java/picard/illumina/IlluminaBasecallingMetrics.java
@@ -0,0 +1,83 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.illumina;
+
+import htsjdk.samtools.metrics.MetricBase;
+import java.lang.Override;
+import java.lang.String;
+
+/***
+ * Metric for Illumina Basecalling that stores means and standard deviations on a per-barcode per-lane basis.  Averages
+ * and means are taken over all tiles.
+ */
+public class IlluminaBasecallingMetrics extends MetricBase
+{
+    /** The lane for which the metrics were calculated. */
+    public String LANE;
+    /** The barcode sequence for which the metrics were calculated. */
+    public String MOLECULAR_BARCODE_SEQUENCE_1;
+    /** The barcode name for which the metrics were calculated. */
+    public String MOLECULAR_BARCODE_NAME;
+    /** The total number of bases assigned to the index. */
+    public long TOTAL_BASES;
+    /** The total number of passing-filter bases assigned to the index. */
+    public long PF_BASES;
+    /** The total number of reads assigned to the index. */
+    public long TOTAL_READS;
+    /** The total number of passing-filter reads assigned to the index. */
+    public long PF_READS;
+    /** The total number of clusters assigned to the index. */
+    public long TOTAL_CLUSTERS;
+    /** The total number of PF clusters assigned to the index. */
+    public long PF_CLUSTERS;
+    /** The mean number of clusters per tile. */
+    public double MEAN_CLUSTERS_PER_TILE = 0d;
+    /** The standard deviation of clusters per tile. */
+    public double SD_CLUSTERS_PER_TILE = 0d;
+    /** The mean percentage of pf clusters per tile. */
+    public double MEAN_PCT_PF_CLUSTERS_PER_TILE = 0d;
+    /** The standard deviation in percentage of pf clusters per tile. */
+    public double SD_PCT_PF_CLUSTERS_PER_TILE = 0d;
+    /** The mean number of pf clusters per tile. */
+    public double MEAN_PF_CLUSTERS_PER_TILE = 0d;
+    /** The standard deviation in number of pf clusters per tile. */
+    public double SD_PF_CLUSTERS_PER_TILE = 0d;
+
+    @Override
+    public String toString() {
+        return String.format("IlluminaBasecallingMetric(Lane:%s,Barcode:%s,Name:%s,MEAN_CLUSTERS_PER_TILE:%s,SD_CLUSTERS_PER_TILE:%s," +
+                              "MEAN_PCT_PF_CLUSTERS_PER_TILE:%s,SD_PCT_PF_CLUSTERS_STD_PER_TILE:%s," +
+                              "MEAN_PF_CLUSTERS_PER_TILE:%s,SD_PF_CLUSTERS_PER_TILE:%s",
+                LANE
+                ,MOLECULAR_BARCODE_SEQUENCE_1
+                ,MOLECULAR_BARCODE_NAME
+                ,MEAN_CLUSTERS_PER_TILE
+                ,SD_CLUSTERS_PER_TILE
+                ,MEAN_PCT_PF_CLUSTERS_PER_TILE
+                ,SD_PCT_PF_CLUSTERS_PER_TILE
+                ,MEAN_PF_CLUSTERS_PER_TILE
+                ,SD_PF_CLUSTERS_PER_TILE);
+    }
+}
diff --git a/src/java/picard/illumina/IlluminaBasecallsConverter.java b/src/java/picard/illumina/IlluminaBasecallsConverter.java
new file mode 100644
index 0000000..01103ab
--- /dev/null
+++ b/src/java/picard/illumina/IlluminaBasecallsConverter.java
@@ -0,0 +1,901 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2013 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.illumina;
+
+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.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 picard.util.FileChannelJDKBugWorkAround;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.NoSuchElementException;
+import java.util.Queue;
+import java.util.Set;
+import java.util.Timer;
+import java.util.TimerTask;
+import java.util.TreeMap;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.PriorityBlockingQueue;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+import static java.util.concurrent.TimeUnit.MILLISECONDS;
+
+/**
+ * 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
+ * into separate outputs by barcode.
+ *
+ * @param <CLUSTER_OUTPUT_RECORD> The class to which a ClusterData is converted in preparation for writing.
+ */
+public class IlluminaBasecallsConverter<CLUSTER_OUTPUT_RECORD> {
+    /**
+     * 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
+     * takes on a state once the tile (which is serving as the context of this state) has been read.
+     */
+    private enum TileBarcodeProcessingState {
+        NA, READ, QUEUED_FOR_WRITE, WRITTEN
+    }
+
+    /**
+     * Describes the state of a tile being processed.  It is either not yet completely read, or read.
+     */
+    private enum TileProcessingState {
+        NOT_DONE_READING, DONE_READING
+    }
+
+    private static final Log log = Log.getInstance(IlluminaBasecallsConverter.class);
+
+    public static final IlluminaDataType[] DATA_TYPES_NO_BARCODE =
+            {IlluminaDataType.BaseCalls, IlluminaDataType.QualityScores, IlluminaDataType.Position, IlluminaDataType.PF};
+    private static final IlluminaDataType[] DATA_TYPES_WITH_BARCODE = Arrays.copyOf(DATA_TYPES_NO_BARCODE, DATA_TYPES_NO_BARCODE.length + 1);
+
+    static {
+        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<Integer> TILE_NUMBER_COMPARATOR = new Comparator<Integer>() {
+        @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()) {
+                if (s1.startsWith(s2)) {
+                    return -1;
+                }
+            }
+            return s1.compareTo(s2);
+        }
+    };
+
+    private final Comparator<CLUSTER_OUTPUT_RECORD> outputRecordComparator;
+
+    private final BclQualityEvaluationStrategy bclQualityEvaluationStrategy;
+    private final Map<String, ? extends ConvertedClusterDataWriter<CLUSTER_OUTPUT_RECORD>> barcodeRecordWriterMap;
+    private final int maxReadsInRamPerTile;
+    private final boolean demultiplex;
+    private final List<File> tmpDirs;
+    private final IlluminaDataProviderFactory factory;
+    private ClusterDataConverter<CLUSTER_OUTPUT_RECORD> 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<Integer> tiles;
+    private final boolean includeNonPfReads;
+    private final SortingCollection.Codec<CLUSTER_OUTPUT_RECORD> codecPrototype;
+    // Annoying that we need this.
+    private final Class<CLUSTER_OUTPUT_RECORD> 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)
+	 */
+	public IlluminaBasecallsConverter(final File basecallsDir, final int lane, final ReadStructure readStructure,
+	                                  final Map<String, ? extends ConvertedClusterDataWriter<CLUSTER_OUTPUT_RECORD>> barcodeRecordWriterMap,
+	                                  final boolean demultiplex,
+	                                  final int maxReadsInRamPerTile,
+	                                  final List<File> tmpDirs,
+	                                  final int numProcessors, final boolean forceGc,
+	                                  final Integer firstTile, final Integer tileLimit,
+	                                  final Comparator<CLUSTER_OUTPUT_RECORD> outputRecordComparator,
+	                                  final SortingCollection.Codec<CLUSTER_OUTPUT_RECORD> codecPrototype,
+	                                  final Class<CLUSTER_OUTPUT_RECORD> outputRecordClass,
+	                                  final BclQualityEvaluationStrategy bclQualityEvaluationStrategy,
+	                                  final boolean applyEamssFiltering,
+	                                  final boolean includeNonPfReads
+	) {
+		this(basecallsDir, null, lane, readStructure,
+				barcodeRecordWriterMap, demultiplex, maxReadsInRamPerTile,
+				tmpDirs, numProcessors, forceGc, firstTile, tileLimit,
+				outputRecordComparator, codecPrototype, outputRecordClass,
+				bclQualityEvaluationStrategy, applyEamssFiltering,
+				includeNonPfReads);
+	}
+
+	/**
+     * @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)
+     */
+    public IlluminaBasecallsConverter(final File basecallsDir, File barcodesDir, final int lane,
+                                      final ReadStructure readStructure,
+                                      final Map<String, ? extends ConvertedClusterDataWriter<CLUSTER_OUTPUT_RECORD>> barcodeRecordWriterMap,
+                                      final boolean demultiplex,
+                                      final int maxReadsInRamPerTile,
+                                      final List<File> tmpDirs, final int numProcessors,
+                                      final boolean forceGc, final Integer firstTile,
+                                      final Integer tileLimit,
+                                      final Comparator<CLUSTER_OUTPUT_RECORD> outputRecordComparator,
+                                      final SortingCollection.Codec<CLUSTER_OUTPUT_RECORD> codecPrototype,
+                                      final Class<CLUSTER_OUTPUT_RECORD> outputRecordClass,
+                                      final BclQualityEvaluationStrategy bclQualityEvaluationStrategy,
+                                      final boolean applyEamssFiltering, final boolean includeNonPfReads
+    ) {
+        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;
+
+        // If we're forcing garbage collection, collect every 5 minutes in a daemon thread.
+        if (forceGc) {
+            final Timer gcTimer = new Timer(true);
+            final long delay = 5 * 1000 * 60;
+            gcTimerTask = new TimerTask() {
+                @Override
+                public void run() {
+                    log.info("Before explicit GC, Runtime.totalMemory()=" + Runtime.getRuntime().totalMemory());
+                    System.gc();
+                    System.runFinalization();
+                    log.info("After explicit GC, Runtime.totalMemory()=" + Runtime.getRuntime().totalMemory());
+                }
+            };
+            gcTimer.scheduleAtFixedRate(gcTimerTask, delay, delay);
+        } else {
+            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<Integer>(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<CLUSTER_OUTPUT_RECORD> 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.
+     */
+    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<Tile> tiles = new ArrayList<Tile>();
+            for (final Integer tileNumber : this.tiles) {
+                tiles.add(new Tile(tileNumber));
+            }
+
+            final TileReadAggregator tileReadAggregator = new TileReadAggregator(tiles);
+            tileReadAggregator.submit();
+            try {
+                tileReadAggregator.awaitWorkComplete();
+            } catch (final InterruptedException e) {
+                log.error(e, "Failure encountered in worker thread; attempting to shut down remaining worker threads and terminate ...");
+                throw new PicardException("Failure encountered in worker thread; see log for details.");
+            } finally {
+                tileReadAggregator.shutdown();
+            }
+
+            for (final Map.Entry<Byte, Integer> entry : bclQualityEvaluationStrategy.getPoorQualityFrequencies().entrySet()) {
+                log.warn(String.format("Observed low quality of %s %s times.", entry.getKey(), entry.getValue()));
+            }
+            bclQualityEvaluationStrategy.assertMinimumQualities();
+
+        } finally {
+            try {
+            	if (gcTimerTask != null) gcTimerTask.cancel();
+            } catch (final Throwable ex) {
+                log.warn(ex, "Ignoring exception stopping background GC thread.");
+            }
+            // Close the writers
+            for (final Map.Entry<String, ? extends ConvertedClusterDataWriter<CLUSTER_OUTPUT_RECORD>> entry : barcodeRecordWriterMap.entrySet()) {
+                final ConvertedClusterDataWriter<CLUSTER_OUTPUT_RECORD> writer = entry.getValue();
+                log.debug(String.format("Closing file for barcode %s.", entry.getKey()));
+                writer.close();
+            }
+        }
+    }
+
+    /**
+     * Simple representation of a tile
+     */
+    private static class Tile implements Comparable<Tile> {
+        private final int tileNumber;
+
+        public Tile(final int i) {
+            tileNumber = i;
+        }
+
+        public int getNumber() {
+            return tileNumber;
+        }
+
+        @Override
+        public boolean equals(final Object o) {
+            return o instanceof Tile && this.getNumber() == ((Tile) o).getNumber();
+        }
+
+        @Override
+        public int compareTo(final Tile o) {
+            return TILE_NUMBER_COMPARATOR.compare(this.getNumber(), o.getNumber());
+        }
+    }
+
+
+    /**
+     * A Runnable that carries a priority which is used to compare and order other PriorityRunnables in a task queue.
+     */
+    private abstract class PriorityRunnable implements Runnable {
+        private final int priority;
+
+        /**
+         * Create a new priority runnable with a default priority of 1.
+         */
+        public PriorityRunnable() {
+            this(1);
+        }
+
+        public PriorityRunnable(final int priority) {
+            this.priority = priority;
+        }
+
+        /**
+         * Returns the priority level.  Higher priorities are run earlier.
+         *
+         * @return
+         */
+        int getPriority() {
+            return this.priority;
+        }
+    }
+
+
+    /**
+     * Represents the state of a tile's processing and encapsulates the data collected from that tile.
+     * <p/>
+     * TileProcessingRecords are accessed from each worker thread to assess the progress of the run, so its methods
+     * are synchronized.
+     */
+    private class TileProcessingRecord {
+        final private Map<String, SortingCollection<CLUSTER_OUTPUT_RECORD>> barcodeToRecordCollection =
+                new HashMap<String, SortingCollection<CLUSTER_OUTPUT_RECORD>>();
+        final private Map<String, TileBarcodeProcessingState> barcodeToProcessingState = new HashMap<String, TileBarcodeProcessingState>();
+        private TileProcessingState state = TileProcessingState.NOT_DONE_READING;
+        private long recordCount = 0;
+
+        /**
+         * Returns the state of this tile's processing.
+         */
+        public synchronized TileProcessingState getState() {
+            return this.state;
+        }
+
+        /**
+         * Sets the state of this tile's processing.
+         */
+        public synchronized void setState(final TileProcessingState state) {
+            this.state = state;
+        }
+
+        /**
+         * Adds the provided record to this tile.
+         */
+        public synchronized void addRecord(final String barcode, final CLUSTER_OUTPUT_RECORD record) {
+            this.recordCount += 1;
+
+            // Grab the existing collection, or initialize it if it doesn't yet exist
+            SortingCollection<CLUSTER_OUTPUT_RECORD> recordCollection = this.barcodeToRecordCollection.get(barcode);
+            if (recordCollection == null) {
+                if (!barcodeRecordWriterMap.containsKey(barcode))
+                    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 = this.newSortingCollection();
+                this.barcodeToRecordCollection.put(barcode, recordCollection);
+                this.barcodeToProcessingState.put(barcode, null);
+            }
+            recordCollection.add(record);
+        }
+
+        private synchronized SortingCollection<CLUSTER_OUTPUT_RECORD> newSortingCollection() {
+            final int maxRecordsInRam =
+                    maxReadsInRamPerTile /
+                            barcodeRecordWriterMap.size();
+            return SortingCollection.newInstance(
+                    outputRecordClass,
+                    codecPrototype.clone(),
+                    outputRecordComparator,
+                    maxRecordsInRam,
+                    tmpDirs);
+        }
+
+        /**
+         * Returns the number of unique barcodes read.
+         */
+        public synchronized long getBarcodeCount() {
+            return this.barcodeToRecordCollection.size();
+        }
+
+        /**
+         * Returns the number of records read.
+         */
+        public synchronized long getRecordCount() {
+            return recordCount;
+        }
+
+        /**
+         * Returns the mapping of barcodes to records associated with them.
+         */
+        public synchronized Map<String, SortingCollection<CLUSTER_OUTPUT_RECORD>> getBarcodeRecords() {
+            return barcodeToRecordCollection;
+        }
+
+        /**
+         * Gets the state of the provided barcode's data's processing progress.  Only invoke this query if this tile
+         * is in a DONE_READING state.
+         *
+         * @throws IllegalStateException When a barcode is queried before the tile is in the DONE_READING state
+         */
+        public synchronized TileBarcodeProcessingState getBarcodeState(final String barcode) {
+            if (this.getState() == TileProcessingState.NOT_DONE_READING) {
+                throw new IllegalStateException(
+                        "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;
+            }
+        }
+
+        public synchronized Map<String, TileBarcodeProcessingState> getBarcodeProcessingStates() {
+            return this.barcodeToProcessingState;
+        }
+
+        /**
+         * Sets the processing state of the provided barcode in this record.
+         *
+         * @throws java.util.NoSuchElementException When the provided barcode is not one associated with this record.
+         */
+        public synchronized void setBarcodeState(final String barcode, final TileBarcodeProcessingState state) {
+            if (this.barcodeToProcessingState.containsKey(barcode)) {
+                this.barcodeToProcessingState.put(barcode, state);
+            } else {
+                throw new NoSuchElementException(String.format("No record of the provided barcode, %s.", barcode));
+            }
+        }
+
+        /**
+         * Returns the distinct set of barcodes for which data has been collected in this record.
+         *
+         * @return
+         */
+        public synchronized Set<String> getBarcodes() {
+            return this.getBarcodeRecords().keySet();
+        }
+    }
+
+    /**
+     * Reads the information from a tile via an IlluminaDataProvider and feeds red information into a processingRecord
+     * managed by the TileReadAggregator.
+     */
+    private class TileReader {
+        private final Tile tile;
+        private final TileReadAggregator handler;
+        private final TileProcessingRecord processingRecord;
+
+        public TileReader(final Tile tile, final TileReadAggregator handler, final TileProcessingRecord processingRecord) {
+            this.tile = tile;
+            this.handler = handler;
+            this.processingRecord = processingRecord;
+        }
+
+        /**
+         * Reads the data from the appropriate IlluminaDataProvider and feeds it into the TileProcessingRecord for
+         * this tile.
+         */
+        public void process() {
+            final IlluminaDataProvider dataProvider = factory.makeDataProvider(Arrays.asList(this.tile.getNumber()));
+            log.debug(String.format("Reading data from tile %s ...", tile.getNumber()));
+
+            while (dataProvider.hasNext()) {
+                final ClusterData cluster = dataProvider.next();
+                readProgressLogger.record(null, 0);
+                // If this cluster is passing, or we do NOT want to ONLY emit passing reads, then add it to the next
+                if (cluster.isPf() || includeNonPfReads) {
+                    final String barcode = (demultiplex ? cluster.getMatchedBarcode() : null);
+                    this.processingRecord.addRecord(barcode, converter.convertClusterToOutputRecord(cluster));
+                }
+            }
+
+            this.handler.completeTile(this.tile);
+            dataProvider.close();
+        }
+    }
+
+
+    /**
+     * Aggregates data collected from tiles and writes them to file. Accepts records from TileReaders and maps
+     * them to the appropriate BAM writers.
+     */
+    private class TileReadAggregator {
+        /**
+         * The collection of records associated with a particular tile.
+         * <p/>
+         * Implemented as a TreeMap to guarantee tiles are iterated over in natural order.
+         */
+        private final Map<Tile, TileProcessingRecord> tileRecords = new TreeMap<Tile, TileProcessingRecord>();
+
+        /**
+         * The executor responsible for doing work.
+         * <p/>
+         * Implemented as a ThreadPoolExecutor with a PriorityBlockingQueue which orders submitted Runnables by their
+         * priority.
+         */
+        private final ExecutorService prioritizingThreadPool = new ThreadPoolExecutor(
+                numThreads,
+                numThreads,
+                0L,
+                MILLISECONDS,
+                new PriorityBlockingQueue<Runnable>(5, new Comparator<Runnable>() {
+                    @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();
+                    }
+                })
+        );
+
+        /**
+         * The object acting as a latch to notify when the aggregator completes its work.
+         */
+        private final Object completionLatch = new Object();
+
+        /**
+         * Stores the thread that is executing this work so that it can be interrupted upon failure.
+         */
+        private Thread parentThread;
+        private final Object workEnqueueMonitor = new Object();
+        private final AtomicBoolean submitted = new AtomicBoolean(false);
+
+
+        /**
+         * Creates a TileReadAggregator that reads from the provided tiles.
+         *
+         * @param tiles
+         */
+        public TileReadAggregator(final Collection<Tile> tiles) {
+            for (final Tile t : tiles) {
+                tileRecords.put(t, new TileProcessingRecord());
+            }
+        }
+
+        /**
+         * Execute the tile aggregator's work.  Creates a thread pool to read data from tiles and write them to file.
+         * Invoke this method only once.
+         *
+         * @throws IllegalStateException If submit was called more than once.
+         */
+        public void submit() {
+            // Ensure the aggregator as not yet been submitted
+            if (!this.submitted.compareAndSet(false, true)) {
+                throw new IllegalStateException("The submit() method may not be called more than once.");
+            }
+
+            // 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.
+             */
+            int priority = 0;
+            for (final Tile tile : this.tileRecords.keySet()) {
+                final TileReader reader = new TileReader(tile, this, this.tileRecords.get(tile));
+                this.prioritizingThreadPool.execute(new PriorityRunnable(--priority) {
+                    @Override
+                    public void run() {
+                        try {
+                            reader.process();
+                        } catch (final RuntimeException 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;
+                        }
+                    }
+                });
+            }
+        }
+
+        /**
+         * Signals that a tile's processing is complete.  This must be invoked exactly once per tile, and only after
+         * all of that tile has been processed.
+         *
+         * @throws IllegalStateException When the tile is already in the completed state.
+         */
+        private void completeTile(final Tile tile) {
+            final TileProcessingRecord tileRecord = this.tileRecords.get(tile);
+
+            if (tileRecord.getState() == TileProcessingState.DONE_READING) {
+                throw new IllegalStateException("This tile is already in the completed state.");
+            }
+
+            // Update all of the barcodes and the tile to be marked as read
+            for (final String barcode : tileRecord.getBarcodes()) {
+                tileRecord.setBarcodeState(barcode, TileBarcodeProcessingState.READ);
+                tileRecord.barcodeToRecordCollection.get(barcode).doneAdding();
+            }
+            tileRecord.setState(TileProcessingState.DONE_READING);
+
+            log.debug(String.format("Completed reading tile %s; collected %s reads spanning %s barcodes.",
+                    tile.getNumber(), tileRecord.getRecordCount(), tileRecord.getBarcodeCount()));
+
+            //noinspection SynchronizationOnLocalVariableOrMethodParameter
+            this.findAndEnqueueWorkOrSignalCompletion();
+        }
+
+        /**
+         * Blocks until this aggregator completes its work.
+         *
+         * @throws InterruptedException
+         */
+        public void awaitWorkComplete() throws InterruptedException {
+            synchronized (this.completionLatch) {
+                this.completionLatch.wait();
+            }
+        }
+
+        /**
+         * Signals to any thread awaiting via awaitWorkComplete() that no work remains. Called
+         * when this aggregator has reached its completed state.
+         */
+        private void signalWorkComplete() {
+            synchronized (this.completionLatch) {
+                this.completionLatch.notifyAll();
+            }
+        }
+
+        /**
+         * Poll the aggregator to find more tasks for it to enqueue.  Specifically, searches for un-written data
+         * read from tiles for each barcode and enqueues it for writing.
+         */
+        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<Runnable> tasks = new LinkedList<Runnable>();
+                    for (final String barcode : barcodeRecordWriterMap.keySet()) {
+                        NEXT_BARCODE:
+                        for (final Map.Entry<Tile, TileProcessingRecord> 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.
+                             */
+                            if (tileRecord.getState() != TileProcessingState.DONE_READING) {
+                                break;
+                            }
+                            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.
+                                     */
+                                    tileRecord.setBarcodeState(barcode, TileBarcodeProcessingState.QUEUED_FOR_WRITE);
+                                    log.debug(String.format("Enqueuing work for tile %s and barcode %s.", tile.getNumber(), barcode));
+                                    tasks.add(this.newBarcodeWorkInstance(tile, tileRecord, barcode));
+                                    break NEXT_BARCODE;
+                            }
+                        }
+                    }
+
+                    for (final Runnable task : tasks) {
+                        this.prioritizingThreadPool.execute(task);
+                    }
+                }
+            }
+        }
+
+        /**
+         * Returns a PriorityRunnable that encapsulates the work involved with writing the provided tileRecord's data
+         * for the given barcode to disk.
+         *
+         * @param tile       The tile from which the record was read
+         * @param tileRecord The processing record associated with the tile
+         * @param barcode    The barcode whose data within the tileRecord is to be written
+         * @return The runnable that upon invocation writes the barcode's data from the tileRecord to disk
+         */
+        private PriorityRunnable newBarcodeWorkInstance(final Tile tile, final TileProcessingRecord tileRecord, final String barcode) {
+            return new PriorityRunnable() {
+                @Override
+                public void run() {
+                    try {
+                        final SortingCollection<CLUSTER_OUTPUT_RECORD> records = tileRecord.getBarcodeRecords().get(barcode);
+                        final ConvertedClusterDataWriter<CLUSTER_OUTPUT_RECORD> writer = barcodeRecordWriterMap.get(barcode);
+
+                        log.debug(String.format("Writing records from tile %s with barcode %s ...", tile.getNumber(), barcode));
+
+                        final PeekIterator<CLUSTER_OUTPUT_RECORD> it = new PeekIterator<CLUSTER_OUTPUT_RECORD>(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
+                             * distance for paired end.  It also assumes that for paired ends there will be duplicates
+                             * for both ends, so there is no need to be PE-aware.
+                             */
+                            if (it.hasNext()) {
+                                final CLUSTER_OUTPUT_RECORD lookAhead = it.peek();
+
+/* TODO: Put this in SAMFileWriter wrapper
+                                if (!rec.getReadUnmappedFlag() || !lookAhead.getReadUnmappedFlag()) {
+                                    throw new IllegalStateException("Should not have mapped reads.");
+                                }
+*/
+
+                                if (outputRecordComparator.compare(rec, lookAhead) == 0) {
+                                    it.next();
+                                    log.info("Skipping reads with identical read names: " + rec.toString());
+                                    continue;
+                                }
+                            }
+
+                            writer.write(rec);
+                            writeProgressLogger.record(null, 0);
+                        }
+
+                        tileRecord.setBarcodeState(barcode, TileBarcodeProcessingState.WRITTEN);
+                        findAndEnqueueWorkOrSignalCompletion();
+
+                    } catch (final RuntimeException 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;
+                    }
+                }
+
+            };
+        }
+
+        /**
+         * Returns true if this aggregator has not completed its work.  Specifically, returns false iff
+         * any tile's barcode data yas not yet been written.
+         *
+         * @return True if more work remains to be done, false otherwise
+         */
+        public boolean isWorkCompleted() {
+            for (final Map.Entry<Tile, TileProcessingRecord> entry : this.tileRecords.entrySet()) {
+                final TileProcessingRecord tileProcessingRecord = entry.getValue();
+
+                if (tileProcessingRecord.getState() != TileProcessingState.DONE_READING) {
+                    log.debug(String.format("Work is not completed because a tile isn't done being read: %s.", entry.getKey().getNumber()));
+                    return false;
+                } else {
+                    for (final Map.Entry<String, TileBarcodeProcessingState> barcodeStateEntry : tileProcessingRecord.getBarcodeProcessingStates().entrySet()) {
+                        final TileBarcodeProcessingState barcodeProcessingState = barcodeStateEntry.getValue();
+                        if (barcodeProcessingState != TileBarcodeProcessingState.WRITTEN) {
+                            log.debug(String.format("Work is not completed because a tile isn't done being read: Tile %s, Barcode %s, Processing State %s.", entry.getKey().getNumber(), barcodeStateEntry.getKey(), barcodeProcessingState));
+                            return false;
+                        }
+                    }
+                }
+            }
+            log.info("All work is complete.");
+            return true;
+        }
+
+        /**
+         * Terminates the threads currently exiting in the thread pool abruptly via ThreadPoolExecutor.shutdownNow().
+         */
+        public void shutdown() {
+            this.prioritizingThreadPool.shutdownNow();
+        }
+    }
+
+    /**
+     * Given a read structure return the data types that need to be parsed for this run
+     */
+    private static IlluminaDataType[] getDataTypesFromReadStructure(final ReadStructure readStructure,
+                                                                    final boolean demultiplex) {
+        if (readStructure.barcodes.isEmpty() || !demultiplex) {
+            return DATA_TYPES_NO_BARCODE;
+        } else {
+            return DATA_TYPES_WITH_BARCODE;
+        }
+    }
+
+    public static interface ClusterDataConverter<OUTPUT_RECORD> {
+
+        /**
+         * Creates the OUTPUT_RECORDs from the cluster
+         */
+        public OUTPUT_RECORD convertClusterToOutputRecord(final ClusterData cluster);
+    }
+
+    public static interface ConvertedClusterDataWriter<OUTPUT_RECORD> {
+        void write(final OUTPUT_RECORD rec);
+
+        void close();
+    }
+}
diff --git a/src/java/picard/illumina/IlluminaBasecallsToFastq.java b/src/java/picard/illumina/IlluminaBasecallsToFastq.java
new file mode 100644
index 0000000..c058215
--- /dev/null
+++ b/src/java/picard/illumina/IlluminaBasecallsToFastq.java
@@ -0,0 +1,488 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2013 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.illumina;
+
+import htsjdk.samtools.SAMRecordQueryNameComparator;
+import htsjdk.samtools.SAMUtils;
+import htsjdk.samtools.fastq.BasicFastqWriter;
+import htsjdk.samtools.fastq.FastqReader;
+import htsjdk.samtools.fastq.FastqRecord;
+import htsjdk.samtools.fastq.FastqWriter;
+import htsjdk.samtools.fastq.FastqWriterFactory;
+import htsjdk.samtools.util.CollectionUtil;
+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.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.programgroups.Illumina;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.fastq.Casava18ReadNameEncoder;
+import picard.fastq.IlluminaReadNameEncoder;
+import picard.fastq.ReadNameEncoder;
+import picard.illumina.parser.ClusterData;
+import picard.illumina.parser.ReadData;
+import picard.illumina.parser.ReadStructure;
+import picard.illumina.parser.readers.BclQualityEvaluationStrategy;
+import picard.util.IlluminaUtil;
+import picard.util.TabbedTextFileWithHeaderParser;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+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;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+ at CommandLineProgramProperties(
+        usage = "Generate fastq file(s) from data in an Illumina basecalls output directory.\n" +
+                "Separate fastq file(s) are created for each template read, and for each barcode read, in the basecalls.\n" +
+                "Template fastqs have extensions like .<number>.fastq, where <number> is the number of the template read,\n" +
+                "starting with 1.  Barcode fastqs have extensions like .barcode_<number>.fastq, where <number> is the number\n" +
+                "of the barcode read, starting with 1.",
+        usageShort = "Generate fastq file(s) from data in an Illumina basecalls output directory",
+        programGroup = Illumina.class
+)
+public class IlluminaBasecallsToFastq extends CommandLineProgram {
+    // 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;
+
+    @Option(doc = "Lane number. ", shortName = StandardOptionDefinitions.LANE_SHORT_NAME)
+    public Integer LANE;
+
+    @Option(doc = "The prefix for output fastqs.  Extensions as described above are appended.  Use this option for " +
+            "a non-barcoded run, or for a barcoded run in which it is not desired to demultiplex reads into separate " +
+            "files by barcode.",
+            shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME,
+            mutex = {"MULTIPLEX_PARAMS"})
+    public File OUTPUT_PREFIX;
+
+    @Option(doc = "The barcode of the run.  Prefixed to read names.", optional = false)
+    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;
+
+    @Option(doc = "Tab-separated file for creating all output fastqs demultiplexed by barcode for a lane with single " +
+            "IlluminaBasecallsToFastq invocation.  The columns are OUTPUT_PREFIX, and BARCODE_1, BARCODE_2 ... BARCODE_X " +
+            "where X = number of barcodes per cluster (optional).  Row with BARCODE_1 set to 'N' is used to specify " +
+            "an output_prefix for no barcode match.",
+            mutex = {"OUTPUT_PREFIX"})
+    public File MULTIPLEX_PARAMS;
+
+    @Option(doc = "Which adapters to look for in the read.")
+    public List<IlluminaUtil.IlluminaAdapterPair> ADAPTERS_TO_CHECK = new ArrayList<IlluminaUtil.IlluminaAdapterPair>(
+            Arrays.asList(IlluminaUtil.IlluminaAdapterPair.INDEXED,
+                    IlluminaUtil.IlluminaAdapterPair.DUAL_INDEXED,
+                    IlluminaUtil.IlluminaAdapterPair.NEXTERA_V2,
+                    IlluminaUtil.IlluminaAdapterPair.FLUIDIGM));
+
+    @Option(doc = "The number of threads to run in parallel. If NUM_PROCESSORS = 0, number of cores is automatically set to " +
+            "the number of cores available on the machine. If NUM_PROCESSORS < 0, then the number of cores used will" +
+            " be the number available on the machine less NUM_PROCESSORS.")
+    public Integer NUM_PROCESSORS = 0;
+
+    @Option(doc = "If set, this is the first tile to be processed (used for debugging).  Note that tiles are not processed" +
+            " in numerical order.",
+            optional = true)
+    public Integer FIRST_TILE;
+
+    @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" +
+            " and convert their quality scores to Q2.")
+    public boolean APPLY_EAMSS_FILTER = true;
+
+    @Option(doc = "If true, call System.gc() periodically.  This is useful in cases in which the -Xmx value passed " +
+            "is larger than the available memory.")
+    public Boolean FORCE_GC = true;
+
+    @Option(doc = "Configure SortingCollections to store this many records before spilling to disk. For an indexed" +
+            " 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." +
+            "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)
+    public boolean INCLUDE_NON_PF_READS = true;
+
+    @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)
+    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. */
+    public enum ReadNameFormat {
+        CASAVA_1_8, ILLUMINA
+    }
+    
+    private final Map<String, FastqRecordsWriter> barcodeFastqWriterMap = new HashMap<String, FastqRecordsWriter>();
+    private ReadStructure readStructure;
+    IlluminaBasecallsConverter<FastqRecordsForCluster> basecallsConverter;
+    private static final Log log = Log.getInstance(IlluminaBasecallsToFastq.class);
+    private final FastqWriterFactory fastqWriterFactory = new FastqWriterFactory();
+    private ReadNameEncoder readNameEncoder;
+    private static final Comparator<FastqRecordsForCluster> queryNameComparator = new Comparator<FastqRecordsForCluster>() {
+        @Override
+        public int compare(final FastqRecordsForCluster r1, final FastqRecordsForCluster r2) {
+            return SAMRecordQueryNameComparator.compareReadNames(r1.templateRecords[0].getReadHeader(),
+                    r2.templateRecords[0].getReadHeader());
+        }
+    };
+
+    @Override
+    protected int doWork() {
+        initialize();
+
+        basecallsConverter.doTileProcessing();
+
+        return 0;
+    }
+
+    @Override
+    protected String[] customCommandLineValidation() {
+        final LinkedList<String> errors = new LinkedList<String>();
+        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.");
+        }
+
+        if (READ_NAME_FORMAT == ReadNameFormat.CASAVA_1_8 && FLOWCELL_BARCODE == null) {
+            errors.add("FLOWCELL_BARCODE is required when using Casava1.8-style read name headers.");
+        }
+        
+        if (errors.isEmpty()) {
+            return null;
+        } else {
+            return errors.toArray(new String[errors.size()]);
+        }
+    }
+
+    /**
+     * Prepares loggers, initiates garbage collection thread, parses arguments and initialized variables appropriately/
+     */
+    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);        
+                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) {
+            IOUtil.assertFileIsReadable(MULTIPLEX_PARAMS);
+        }
+        final boolean demultiplex;
+        if (OUTPUT_PREFIX != null) {
+            barcodeFastqWriterMap.put(null, buildWriter(OUTPUT_PREFIX));
+            demultiplex = false;
+        } else {
+            populateWritersFromMultiplexParams();
+            demultiplex = true;
+        }
+        final int readsPerCluster = readStructure.templates.length() + readStructure.barcodes.length();
+        basecallsConverter = new IlluminaBasecallsConverter<FastqRecordsForCluster>(BASECALLS_DIR, BARCODES_DIR, LANE, readStructure,
+                barcodeFastqWriterMap, demultiplex, MAX_READS_IN_RAM_PER_TILE/readsPerCluster, TMP_DIR, NUM_PROCESSORS,
+                FORCE_GC, FIRST_TILE, TILE_LIMIT, queryNameComparator,
+                new FastqRecordsForClusterCodec(readStructure.templates.length(),
+                readStructure.barcodes.length()), FastqRecordsForCluster.class, bclQualityEvaluationStrategy,
+                this.APPLY_EAMSS_FILTER, INCLUDE_NON_PF_READS);
+
+        log.info("READ STRUCTURE IS " + readStructure.toString());
+
+        basecallsConverter.setConverter(
+		        new ClusterToFastqRecordsForClusterConverter(
+				        basecallsConverter.getFactory().getOutputReadStructure()));
+
+    }
+
+    /**
+     * Assert that expectedCols are present
+     *
+     * @param actualCols   The columns present in the MULTIPLEX_PARAMS file
+     * @param expectedCols The columns that are REQUIRED
+     */
+    private void assertExpectedColumns(final Set<String> actualCols, final Set<String> expectedCols) {
+        final Set<String> missingColumns = new HashSet<String>(expectedCols);
+        missingColumns.removeAll(actualCols);
+
+        if (missingColumns.size() > 0) {
+            throw new PicardException(String.format(
+                    "MULTIPLEX_PARAMS file %s is missing the following columns: %s.",
+                    MULTIPLEX_PARAMS.getAbsolutePath(), StringUtil.join(", ", missingColumns
+            )));
+        }
+    }
+
+    /**
+     * For each line in the MULTIPLEX_PARAMS file create a FastqRecordsWriter and put it in the barcodeFastqWriterMap map,
+     * where the key to the map is the concatenation of all barcodes in order for the given line.
+     */
+    private void populateWritersFromMultiplexParams() {
+        final TabbedTextFileWithHeaderParser libraryParamsParser = new TabbedTextFileWithHeaderParser(MULTIPLEX_PARAMS);
+
+        final Set<String> expectedColumnLabels = CollectionUtil.makeSet("OUTPUT_PREFIX");
+        final List<String> barcodeColumnLabels = new ArrayList<String>();
+        for (int i = 1; i <= readStructure.barcodes.length(); i++) {
+            barcodeColumnLabels.add("BARCODE_" + i);
+        }
+
+        expectedColumnLabels.addAll(barcodeColumnLabels);
+        assertExpectedColumns(libraryParamsParser.columnLabels(), expectedColumnLabels);
+
+        for (final TabbedTextFileWithHeaderParser.Row row : libraryParamsParser) {
+            List<String> barcodeValues = null;
+
+            if (barcodeColumnLabels.size() > 0) {
+                barcodeValues = new ArrayList<String>();
+                for (final String barcodeLabel : barcodeColumnLabels) {
+                    barcodeValues.add(row.getField(barcodeLabel));
+                }
+            }
+
+            final String key = (barcodeValues == null || barcodeValues.contains("N")) ? null : StringUtil.join("", barcodeValues);
+            if (barcodeFastqWriterMap.containsKey(key)) {    //This will catch the case of having more than 1 line in a non-barcoded MULTIPLEX_PARAMS file
+                throw new PicardException("Row for barcode " + key + " appears more than once in MULTIPLEX_PARAMS file " +
+                        MULTIPLEX_PARAMS);
+            }
+
+            final FastqRecordsWriter writer = buildWriter(new File(row.getField("OUTPUT_PREFIX")));
+            barcodeFastqWriterMap.put(key, writer);
+        }
+        if (barcodeFastqWriterMap.isEmpty()) {
+            throw new PicardException("MULTIPLEX_PARAMS file " + MULTIPLEX_PARAMS + " does have any data rows.");
+        }
+        libraryParamsParser.close();
+    }
+
+    /**
+     * @return FastqRecordsWriter that contains one or more FastqWriters (amount depends on read structure), all using
+     * outputPrefix to determine the filename(s).
+     */
+    private FastqRecordsWriter buildWriter(final File outputPrefix) {
+        final File outputDir = outputPrefix.getAbsoluteFile().getParentFile();
+        IOUtil.assertDirectoryIsWritable(outputDir);
+        final String prefixString = outputPrefix.getName();
+        final String suffixString = COMPRESS_OUTPUTS ? "fastq.gz" : "fastq";
+        final FastqWriter[] templateWriters = new FastqWriter[readStructure.templates.length()];
+        final FastqWriter[] barcodeWriters = new FastqWriter[readStructure.barcodes.length()];
+        for (int i = 0; i < templateWriters.length; ++i) {
+            final String filename = String.format("%s.%d.%s", prefixString, i+1, suffixString);
+            templateWriters[i] = fastqWriterFactory.newWriter(new File(outputDir, filename));
+        }
+        for (int i = 0; i < barcodeWriters.length; ++i) {
+            final String filename = String.format("%s.barcode_%d.%s", prefixString, i+1, suffixString);
+            barcodeWriters[i] = fastqWriterFactory.newWriter(new File(outputDir, filename));
+        }
+        return new FastqRecordsWriter(templateWriters, barcodeWriters);
+    }
+
+    public static void main(final String[] args) {
+        new IlluminaBasecallsToFastq().instanceMainWithExit(args);
+    }
+
+    /**
+     * Container for various FastqWriters, one for each template read and one for each barcode read.
+     */
+    private static class FastqRecordsWriter implements IlluminaBasecallsConverter.ConvertedClusterDataWriter<FastqRecordsForCluster> {
+        final FastqWriter[] templateWriters;
+        final FastqWriter[] barcodeWriters;
+
+        /**
+         * @param templateWriters Writers for template reads in order, e,g. 0th element is for template read 1.
+         * @param barcodeWriters Writers for barcode reads in order, e,g. 0th element is for barcode read 1.
+         */
+        private FastqRecordsWriter(final FastqWriter[] templateWriters, final FastqWriter[] barcodeWriters) {
+            this.templateWriters = templateWriters;
+            this.barcodeWriters = barcodeWriters;
+        }
+
+        @Override
+        public void write(final FastqRecordsForCluster records) {
+            write(templateWriters, records.templateRecords);
+            write(barcodeWriters, records.barcodeRecords);
+        }
+
+        private void write(final FastqWriter[] writers, final FastqRecord[] records) {
+            for (int i = 0; i < writers.length; ++i) {
+                writers[i].write(records[i]);
+            }
+        }
+
+        @Override
+        public void close() {
+            for (final FastqWriter writer : templateWriters) {
+                writer.close();
+            }
+            for (final FastqWriter writer : barcodeWriters) {
+                writer.close();
+            }
+        }
+    }
+
+    /**
+     * Contains the results of transforming one cluster into the record(s) to be written to output file(s).
+     */
+    static class FastqRecordsForCluster {
+        // These are accessed directly by converter and writer rather than through getters and setters.
+        final FastqRecord[] templateRecords;
+        final FastqRecord[] barcodeRecords;
+
+        FastqRecordsForCluster(final int numTemplates, final int numBarcodes) {
+            templateRecords = new FastqRecord[numTemplates];
+            barcodeRecords = new FastqRecord[numBarcodes];
+        }
+    }
+
+    /**
+     * Passed to IlluminaBaseCallsConverter to do the conversion from input format to output format.
+     */
+    class ClusterToFastqRecordsForClusterConverter
+            implements IlluminaBasecallsConverter.ClusterDataConverter<FastqRecordsForCluster> {
+
+        private final int [] templateIndices;
+        private final int [] barcodeIndices;
+
+        ClusterToFastqRecordsForClusterConverter(final ReadStructure outputReadStructure) {
+            this.templateIndices = outputReadStructure.templates.getIndices();
+            this.barcodeIndices = outputReadStructure.barcodes.getIndices();
+        }
+
+        @Override
+        public FastqRecordsForCluster convertClusterToOutputRecord(final ClusterData cluster) {
+            final FastqRecordsForCluster ret = new FastqRecordsForCluster(readStructure.templates.length(), readStructure.barcodes.length());
+            final boolean appendReadNumberSuffix = ret.templateRecords.length > 1;
+            makeFastqRecords(ret.templateRecords, templateIndices, cluster, appendReadNumberSuffix);
+            makeFastqRecords(ret.barcodeRecords, barcodeIndices, cluster, false);
+            return ret;
+        }
+
+        private void makeFastqRecords(final FastqRecord[] recs, final int[] indices,
+                                      final ClusterData cluster, final boolean appendReadNumberSuffix) {
+            for (short i = 0; i < indices.length; ++i) {
+                final ReadData readData = cluster.getRead(indices[i]);
+                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, 
+                        null,
+                        SAMUtils.phredToFastq(readData.getQualities())
+                );
+            }
+        }
+    }
+
+    /**
+     * Coded passed to IlluminaBasecallsConverter for use in SortingCollections of output records.
+     */
+    static class FastqRecordsForClusterCodec implements SortingCollection.Codec<FastqRecordsForCluster> {
+        private final int numTemplates;
+        private final int numBarcodes;
+        private BasicFastqWriter writer = null;
+        private FastqReader reader = null;
+
+        FastqRecordsForClusterCodec(final int numTemplates, final int numBarcodes) {
+            this.numTemplates = numTemplates;
+            this.numBarcodes = numBarcodes;
+        }
+
+        @Override
+        public void setOutputStream(final OutputStream os) {
+            writer = new BasicFastqWriter(new PrintStream(os));
+        }
+
+        @Override
+        public void setInputStream(final InputStream is) {
+            reader = new FastqReader(new BufferedReader(new InputStreamReader(is)));
+        }
+
+        @Override
+        public void encode(final FastqRecordsForCluster val) {
+            if (numTemplates != val.templateRecords.length) throw new IllegalStateException();
+            if (numBarcodes != val.barcodeRecords.length) throw new IllegalStateException();
+            encodeArray(val.templateRecords);
+            encodeArray(val.barcodeRecords);
+            writer.flush();
+        }
+
+        private void encodeArray(final FastqRecord[] recs) {
+            for (final FastqRecord rec: recs) {
+                writer.write(rec);
+            }
+        }
+
+        @Override
+        public FastqRecordsForCluster decode() {
+            if (!reader.hasNext()) return null;
+            final FastqRecordsForCluster ret = new FastqRecordsForCluster(numTemplates, numBarcodes);
+            decodeArray(ret.templateRecords);
+            decodeArray(ret.barcodeRecords);
+            return ret;
+        }
+
+        private void decodeArray(final FastqRecord[] recs) {
+            for (int i = 0; i < recs.length; ++i) {
+                recs[i] = reader.next();
+            }
+        }
+
+        @Override
+        public SortingCollection.Codec<FastqRecordsForCluster> clone() {
+            return new FastqRecordsForClusterCodec(numTemplates, numBarcodes);
+        }
+    }
+}
diff --git a/src/java/picard/illumina/IlluminaBasecallsToSam.java b/src/java/picard/illumina/IlluminaBasecallsToSam.java
new file mode 100644
index 0000000..94e56d0
--- /dev/null
+++ b/src/java/picard/illumina/IlluminaBasecallsToSam.java
@@ -0,0 +1,546 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.illumina;
+
+import htsjdk.samtools.BAMRecordCodec;
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMFileWriter;
+import htsjdk.samtools.SAMFileWriterFactory;
+import htsjdk.samtools.SAMReadGroupRecord;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SAMRecordQueryNameComparator;
+import htsjdk.samtools.util.CollectionUtil;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Iso8601Date;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.SortingCollection;
+import htsjdk.samtools.util.StringUtil;
+import picard.PicardException;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.programgroups.Illumina;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.illumina.parser.ReadStructure;
+import picard.illumina.parser.readers.BclQualityEvaluationStrategy;
+import picard.util.IlluminaUtil;
+import picard.util.IlluminaUtil.IlluminaAdapterPair;
+import picard.util.TabbedTextFileWithHeaderParser;
+
+import java.io.File;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * IlluminaBasecallsToSam transforms a lane of Illumina data file formats (bcl, locs, clocs, qseqs, etc.) into
+ * SAM or BAM file format.
+ * <p/>
+ * In this application, barcode data is read from Illumina data file groups, each of which is associated with a tile.
+ * Each tile may contain data for any number of barcodes, and a single barcode's data may span multiple tiles.  Once the
+ * barcode data is collected from files, each barcode's data is written to its own SAM/BAM.  The barcode data must be
+ * written in order; this means that barcode data from each tile is sorted before it is written to file, and that if a
+ * barcode's data does span multiple tiles, data collected from each tile must be written in the order of the tiles
+ * themselves.
+ * <p/>
+ * This class employs a number of private subclasses to achieve this goal.  The TileReadAggregator controls the flow
+ * of operation.  It is fed a number of Tiles which it uses to spawn TileReaders.  TileReaders are responsible for
+ * 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
+ * more writes.  When all barcodes for all tiles have been written, the TileReadAggregator shuts down.
+ * <p/>
+ * The TileReadAggregator controls task execution using a specialized ThreadPoolExecutor.  It accepts special Runnables
+ * of type PriorityRunnable which allow a priority to be assigned to the runnable.  When the ThreadPoolExecutor is
+ * assigning threads, it gives priority to those PriorityRunnables with higher priority values.  In this application,
+ * TileReaders are assigned lowest priority, and write tasks are assigned high priority.  It is designed in this fashion
+ * to minimize the amount of time data must remain in memory (write the data as soon as possible, then discard it from
+ * memory) while maximizing CPU usage.
+ *
+ * @author jburke at broadinstitute.org
+ * @author mccowan at broadinstitute.org
+ */
+ at CommandLineProgramProperties(
+        usage = IlluminaBasecallsToSam.USAGE,
+        usageShort = IlluminaBasecallsToSam.USAGE,
+        programGroup = Illumina.class
+)
+public class IlluminaBasecallsToSam extends CommandLineProgram {
+    // The following attributes define the command-line arguments
+
+    public static final String USAGE = "Generate a SAM or BAM file from data in an Illumina basecalls output directory";
+
+    @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;
+
+    @Option(doc = "Lane number. ", shortName = StandardOptionDefinitions.LANE_SHORT_NAME)
+    public Integer LANE;
+
+    @Option(doc = "Deprecated (use LIBRARY_PARAMS).  The output SAM or BAM file. Format is determined by extension.",
+            shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME,
+            mutex = {"BARCODE_PARAMS", "LIBRARY_PARAMS"})
+    public File OUTPUT;
+
+    @Option(doc = "The barcode of the run.  Prefixed to read names.")
+    public String RUN_BARCODE;
+
+    @Option(doc = "Deprecated (use LIBRARY_PARAMS).  The name of the sequenced sample",
+            shortName = StandardOptionDefinitions.SAMPLE_ALIAS_SHORT_NAME,
+            mutex = {"BARCODE_PARAMS", "LIBRARY_PARAMS"})
+    public String SAMPLE_ALIAS;
+
+    @Option(doc = "ID used to link RG header record with RG tag in SAM record.  " +
+            "If these are unique in SAM files that get merged, merge performance is better.  " +
+            "If not specified, READ_GROUP_ID will be set to <first 5 chars of RUN_BARCODE>.<LANE> .",
+            shortName = StandardOptionDefinitions.READ_GROUP_ID_SHORT_NAME, optional = true)
+    public String READ_GROUP_ID;
+
+    @Option(doc = "Deprecated (use LIBRARY_PARAMS).  The name of the sequenced library",
+            shortName = StandardOptionDefinitions.LIBRARY_NAME_SHORT_NAME,
+            optional = true,
+            mutex = {"BARCODE_PARAMS", "LIBRARY_PARAMS"})
+    public String LIBRARY_NAME;
+
+    @Option(doc = "The name of the sequencing center that produced the reads.  Used to set the RG.CN tag.", optional = true)
+    public String SEQUENCING_CENTER = "BI";
+
+    @Option(doc = "The start date of the run.", optional = true)
+    public Date RUN_START_DATE;
+
+    @Option(doc = "The name of the sequencing technology that produced the read.", optional = true)
+    public String PLATFORM = "illumina";
+
+    @Option(doc = ReadStructure.PARAMETER_DOC, shortName = "RS")
+    public String READ_STRUCTURE;
+
+    @Option(doc = "Deprecated (use LIBRARY_PARAMS).  Tab-separated file for creating all output BAMs for barcoded run " +
+            "with single IlluminaBasecallsToSam invocation.  Columns are BARCODE, OUTPUT, SAMPLE_ALIAS, and " +
+            "LIBRARY_NAME.  Row with BARCODE=N is used to specify a file for no barcode match",
+            mutex = {"OUTPUT", "SAMPLE_ALIAS", "LIBRARY_NAME", "LIBRARY_PARAMS"})
+    public File BARCODE_PARAMS;
+
+    @Option(doc = "Tab-separated file for creating all output BAMs for a lane with single IlluminaBasecallsToSam " +
+            "invocation.  The columns are OUTPUT, SAMPLE_ALIAS, and LIBRARY_NAME, BARCODE_1, BARCODE_2 ... BARCODE_X " +
+            "where X = number of barcodes per cluster (optional).  Row with BARCODE_1 set to 'N' is used to specify a file " +
+            "for no barcode match.  You may also provide any 2 letter RG header attributes (excluding PU, CN, PL, and" +
+            " DT)  as columns in this file and the values for those columns will be inserted into the RG tag for the" +
+            " BAM file created for a given row.",
+            mutex = {"OUTPUT", "SAMPLE_ALIAS", "LIBRARY_NAME", "BARCODE_PARAMS"})
+    public File LIBRARY_PARAMS;
+
+    @Option(doc = "Which adapters to look for in the read.")
+    public List<IlluminaAdapterPair> ADAPTERS_TO_CHECK = new ArrayList<IlluminaAdapterPair>(
+            Arrays.asList(IlluminaAdapterPair.INDEXED,
+                    IlluminaAdapterPair.DUAL_INDEXED,
+                    IlluminaAdapterPair.NEXTERA_V2,
+                    IlluminaAdapterPair.FLUIDIGM));
+
+    @Option(doc = "The number of threads to run in parallel. If NUM_PROCESSORS = 0, number of cores is automatically set to " +
+            "the number of cores available on the machine. If NUM_PROCESSORS < 0, then the number of cores used will" +
+            " be the number available on the machine less NUM_PROCESSORS.")
+    public Integer NUM_PROCESSORS = 0;
+
+    @Option(doc = "If set, this is the first tile to be processed (used for debugging).  Note that tiles are not processed" +
+            " in numerical order.",
+            optional = true)
+    public Integer FIRST_TILE;
+
+    @Option(doc = "If set, process no more than this many tiles (used for debugging).", optional = true)
+    public Integer TILE_LIMIT;
+
+    @Option(doc = "If true, call System.gc() periodically.  This is useful in cases in which the -Xmx value passed " +
+            "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" +
+            " and convert their quality scores to Q2.")
+    public boolean APPLY_EAMSS_FILTER = true;
+
+    @Option(doc = "Configure SortingCollections to store this many records before spilling to disk. For an indexed" +
+            " 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." +
+            "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)
+    public boolean INCLUDE_NON_PF_READS = true;
+
+    private final Map<String, SAMFileWriterWrapper> barcodeSamWriterMap = new HashMap<String, SAMFileWriterWrapper>();
+    private ReadStructure readStructure;
+    IlluminaBasecallsConverter<SAMRecordsForCluster> basecallsConverter;
+    private static final Log log = Log.getInstance(IlluminaBasecallsToSam.class);
+    private BclQualityEvaluationStrategy bclQualityEvaluationStrategy;
+
+    @Override
+    protected int doWork() {
+        initialize();
+        basecallsConverter.doTileProcessing();
+        return 0;
+    }
+
+    /**
+     * Prepares loggers, initiates garbage collection thread, parses arguments and initialized variables appropriately/
+     */
+    private void initialize() {
+        this.bclQualityEvaluationStrategy = new BclQualityEvaluationStrategy(MINIMUM_QUALITY);
+
+        if (OUTPUT != null) {
+            IOUtil.assertFileIsWritable(OUTPUT);
+        }
+
+        if (LIBRARY_PARAMS != null) {
+            IOUtil.assertFileIsReadable(LIBRARY_PARAMS);
+        }
+
+        if (OUTPUT != null) {
+            barcodeSamWriterMap.put(null, buildSamFileWriter(OUTPUT, SAMPLE_ALIAS, LIBRARY_NAME, buildSamHeaderParameters(null)));
+        } else {
+            populateWritersFromLibraryParams();
+        }
+
+        readStructure = new ReadStructure(READ_STRUCTURE);
+
+        final int numOutputRecords = readStructure.templates.length();
+
+        basecallsConverter = new IlluminaBasecallsConverter<SAMRecordsForCluster>(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);
+
+        log.info("DONE_READING STRUCTURE IS " + readStructure.toString());
+
+        /**
+         * 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).
+         */
+        final ClusterDataToSamConverter converter = new ClusterDataToSamConverter(RUN_BARCODE, READ_GROUP_ID,
+                basecallsConverter.getFactory().getOutputReadStructure(), ADAPTERS_TO_CHECK);
+        basecallsConverter.setConverter(converter);
+
+    }
+
+    /**
+     * Assert that expectedCols are present and return actualCols - expectedCols
+     *
+     * @param actualCols   The columns present in the LIBRARY_PARAMS file
+     * @param expectedCols The columns that are REQUIRED
+     * @return actualCols - expectedCols
+     */
+    private Set<String> findAndFilterExpectedColumns(final Set<String> actualCols, final Set<String> expectedCols) {
+        final Set<String> missingColumns = new HashSet<String>(expectedCols);
+        missingColumns.removeAll(actualCols);
+
+        if (missingColumns.size() > 0) {
+            throw new PicardException(String.format(
+                    "LIBRARY_PARAMS file %s is missing the following columns: %s.",
+                    LIBRARY_PARAMS.getAbsolutePath(), StringUtil.join(", ", missingColumns
+            )));
+        }
+
+        final Set<String> remainingColumns = new HashSet<String>(actualCols);
+        remainingColumns.removeAll(expectedCols);
+        return remainingColumns;
+    }
+
+    /**
+     * Given a set of columns assert that all columns conform to the format of an RG header attribute (i.e. 2 letters)
+     * the attribute is NOT a member of the rgHeaderTags that are built by default in buildSamHeaderParameters
+     *
+     * @param rgTagColumns A set of columns that should conform to the rg header attribute format
+     */
+    private void checkRgTagColumns(final Set<String> rgTagColumns) {
+        final Set<String> forbiddenHeaders = buildSamHeaderParameters(null).keySet();
+        forbiddenHeaders.retainAll(rgTagColumns);
+
+        if (forbiddenHeaders.size() > 0) {
+            throw new PicardException("Illegal ReadGroup tags in library params(barcode params) file(" + LIBRARY_PARAMS.getAbsolutePath() + ") Offending headers = " + StringUtil.join(", ", forbiddenHeaders));
+        }
+
+        for (final String column : rgTagColumns) {
+            if (column.length() > 2) {
+                throw new PicardException("Column label (" + column + ") unrecognized.  Library params(barcode params) can only contain the columns " +
+                        "(OUTPUT, LIBRARY_NAME, SAMPLE_ALIAS, BARCODE, BARCODE_<X> where X is a positive integer) OR two letter RG tags!");
+            }
+        }
+    }
+
+    /**
+     * For each line in the LIBRARY_PARAMS file create a SamFileWriter and put it in the barcodeSamWriterMap map, where
+     * the key to the map is the concatenation of all barcodes in order for the given line
+     */
+    private void populateWritersFromLibraryParams() {
+        final TabbedTextFileWithHeaderParser libraryParamsParser = new TabbedTextFileWithHeaderParser(LIBRARY_PARAMS);
+
+        final Set<String> expectedColumnLabels = CollectionUtil.makeSet("OUTPUT", "SAMPLE_ALIAS", "LIBRARY_NAME");
+        final List<String> barcodeColumnLabels = new ArrayList<String>();
+        if (readStructure.barcodes.length() == 1) {
+            //For the single barcode read case, the barcode label name can either by BARCODE or BARCODE_1
+            if (libraryParamsParser.hasColumn("BARCODE")) {
+                barcodeColumnLabels.add("BARCODE");
+            } else if (libraryParamsParser.hasColumn("BARCODE_1")) {
+                barcodeColumnLabels.add("BARCODE_1");
+            } else {
+                throw new PicardException("LIBRARY_PARAMS(BARCODE_PARAMS) file " + LIBRARY_PARAMS + " does not have column BARCODE or BARCODE_1.");
+            }
+        } else {
+            for (int i = 1; i <= readStructure.barcodes.length(); i++) {
+                barcodeColumnLabels.add("BARCODE_" + i);
+            }
+        }
+
+        expectedColumnLabels.addAll(barcodeColumnLabels);
+        final Set<String> rgTagColumns = findAndFilterExpectedColumns(libraryParamsParser.columnLabels(), expectedColumnLabels);
+        checkRgTagColumns(rgTagColumns);
+
+        for (final TabbedTextFileWithHeaderParser.Row row : libraryParamsParser) {
+            List<String> barcodeValues = null;
+
+            if (barcodeColumnLabels.size() > 0) {
+                barcodeValues = new ArrayList<String>();
+                for (final String barcodeLabel : barcodeColumnLabels) {
+                    barcodeValues.add(row.getField(barcodeLabel));
+                }
+            }
+
+            final String key = (barcodeValues == null || barcodeValues.contains("N")) ? null : StringUtil.join("", barcodeValues);
+            if (barcodeSamWriterMap.containsKey(key)) {    //This will catch the case of having more than 1 line in a non-barcoded LIBRARY_PARAMS file
+                throw new PicardException("Row for barcode " + key + " appears more than once in LIBRARY_PARAMS or BARCODE_PARAMS file " +
+                        LIBRARY_PARAMS);
+            }
+
+            final Map<String, String> samHeaderParams = buildSamHeaderParameters(barcodeValues);
+
+            for (final String tagName : rgTagColumns) {
+                samHeaderParams.put(tagName, row.getField(tagName));
+            }
+
+            final SAMFileWriterWrapper writer = buildSamFileWriter(new File(row.getField("OUTPUT")),
+                    row.getField("SAMPLE_ALIAS"), row.getField("LIBRARY_NAME"), samHeaderParams);
+            barcodeSamWriterMap.put(key, writer);
+        }
+        if (barcodeSamWriterMap.isEmpty()) {
+            throw new PicardException("LIBRARY_PARAMS(BARCODE_PARAMS) file " + LIBRARY_PARAMS + " does have any data rows.");
+        }
+        libraryParamsParser.close();
+    }
+
+    /**
+     * Create the list of headers that will be added to the SAMFileHeader for a library with the given barcodes (or
+     * the entire run if barcodes == NULL).  Note that any value that is null will NOT be added via buildSamFileWriter
+     * but is placed in the map in order to be able to query the tags that we automatically add.
+     *
+     * @param barcodes The list of barcodes that uniquely identify the read group we are building parameters for
+     * @return A Map of ReadGroupHeaderTags -> Values
+     */
+    private Map<String, String> buildSamHeaderParameters(final List<String> barcodes) {
+        final Map<String, String> params = new HashMap<String, String>();
+
+        String platformUnit = RUN_BARCODE + "." + LANE;
+        if (barcodes != null) platformUnit += ("." + IlluminaUtil.barcodeSeqsToString(barcodes));
+        params.put("PU", platformUnit);
+
+        params.put("CN", SEQUENCING_CENTER);
+        params.put("PL", PLATFORM);
+        if (RUN_START_DATE != null) {
+            final Iso8601Date date = new Iso8601Date(RUN_START_DATE);
+            params.put("DT", date.toString());
+        } else {
+            params.put("DT", null);
+        }
+
+        return params;
+    }
+
+    /**
+     * Build a SamFileWriter that will write its contents to the output file.
+     *
+     * @param output           The file to which to write
+     * @param sampleAlias      The sample alias set in the read group header
+     * @param libraryName      The name of the library to which this read group belongs
+     * @param headerParameters Header parameters that will be added to the RG header for this SamFile
+     * @return A SAMFileWriter
+     */
+    private SAMFileWriterWrapper buildSamFileWriter(final File output, final String sampleAlias,
+                                                    final String libraryName, final Map<String, String> headerParameters) {
+        IOUtil.assertFileIsWritable(output);
+        final SAMReadGroupRecord rg = new SAMReadGroupRecord(READ_GROUP_ID);
+        rg.setSample(sampleAlias);
+
+        if (libraryName != null) rg.setLibrary(libraryName);
+        for (final Map.Entry<String, String> tagNameToValue : headerParameters.entrySet()) {
+            if (tagNameToValue.getValue() != null) {
+                rg.setAttribute(tagNameToValue.getKey(), tagNameToValue.getValue());
+            }
+        }
+
+        final SAMFileHeader header = new SAMFileHeader();
+        header.setSortOrder(SAMFileHeader.SortOrder.queryname);
+        header.addReadGroup(rg);
+        return new SAMFileWriterWrapper(new SAMFileWriterFactory().makeSAMOrBAMWriter(header, true, output));
+    }
+
+    public static void main(final String[] args) {
+        System.exit(new IlluminaBasecallsToSam().instanceMain(args));
+    }
+
+    /**
+     * Put any custom command-line validation in an override of this method.
+     * clp is initialized at this point and can be used to print usage and access 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.
+     */
+    @Override
+    protected String[] customCommandLineValidation() {
+        if (BARCODE_PARAMS != null) {
+            LIBRARY_PARAMS = BARCODE_PARAMS;
+        }
+
+        final ArrayList<String> messages = new ArrayList<String>();
+
+        readStructure = new ReadStructure(READ_STRUCTURE);
+        if (!readStructure.barcodes.isEmpty()) {
+            if (LIBRARY_PARAMS == null) {
+                messages.add("BARCODE_PARAMS or LIBRARY_PARAMS is missing.  If READ_STRUCTURE contains a B (barcode)" +
+                        " then either LIBRARY_PARAMS or BARCODE_PARAMS(deprecated) must be provided!");
+            }
+        }
+
+        if (READ_GROUP_ID == null) {
+            READ_GROUP_ID = RUN_BARCODE.substring(0, 5) + "." + LANE;
+        }
+        if (messages.size() == 0) {
+            return null;
+        }
+        return messages.toArray(new String[messages.size()]);
+    }
+
+    private static class SAMFileWriterWrapper
+            implements IlluminaBasecallsConverter.ConvertedClusterDataWriter<SAMRecordsForCluster> {
+        public final SAMFileWriter writer;
+
+        private SAMFileWriterWrapper(final SAMFileWriter writer) {
+            this.writer = writer;
+        }
+
+        @Override
+        public void write(final SAMRecordsForCluster records) {
+            for (final SAMRecord rec : records.records) {
+                writer.addAlignment(rec);
+            }
+        }
+
+        @Override
+        public void close() {
+            writer.close();
+        }
+    }
+
+    static class SAMRecordsForCluster {
+        final SAMRecord[] records;
+
+        SAMRecordsForCluster(final int numRecords) {
+            records = new SAMRecord[numRecords];
+        }
+    }
+
+    static class QueryNameComparator implements Comparator<SAMRecordsForCluster> {
+        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]);
+        }
+    }
+
+    static class Codec implements SortingCollection.Codec<SAMRecordsForCluster> {
+        private final BAMRecordCodec bamCodec;
+        private final int numRecords;
+
+        Codec(final int numRecords, final BAMRecordCodec bamCodec) {
+            this.numRecords = numRecords;
+            this.bamCodec = bamCodec;
+        }
+
+        Codec(final int numRecords) {
+            this(numRecords, new BAMRecordCodec(null));
+        }
+
+        @Override
+        public void setOutputStream(final OutputStream os) {
+            bamCodec.setOutputStream(os);
+        }
+
+        @Override
+        public void setInputStream(final InputStream is) {
+            bamCodec.setInputStream(is);
+        }
+
+        @Override
+        public void encode(final SAMRecordsForCluster val) {
+            if (val.records.length != numRecords) {
+                throw new IllegalStateException(String.format("Expected number of clusters %d != actual %d",
+                        numRecords, val.records.length));
+            }
+            for (final SAMRecord rec : val.records) {
+                bamCodec.encode(rec);
+            }
+        }
+
+        @Override
+        public SAMRecordsForCluster decode() {
+            final SAMRecord zerothRecord = bamCodec.decode();
+            if (zerothRecord == null) return null;
+            final SAMRecordsForCluster ret = new SAMRecordsForCluster(numRecords);
+            ret.records[0] = zerothRecord;
+            for (int i = 1; i < numRecords; ++i) {
+                ret.records[i] = bamCodec.decode();
+                if (ret.records[i] == null) {
+                    throw new IllegalStateException(String.format("Expected to read % records but read only %d", numRecords, i));
+                }
+            }
+            return ret;
+        }
+
+        @Override
+        public SortingCollection.Codec<SAMRecordsForCluster> clone() {
+            return new Codec(numRecords, bamCodec.clone());
+        }
+    }
+}
diff --git a/src/java/picard/illumina/IlluminaLaneMetrics.java b/src/java/picard/illumina/IlluminaLaneMetrics.java
new file mode 100644
index 0000000..5e27214
--- /dev/null
+++ b/src/java/picard/illumina/IlluminaLaneMetrics.java
@@ -0,0 +1,23 @@
+package picard.illumina;
+
+import htsjdk.samtools.metrics.MetricBase;
+import java.lang.Double;
+import java.lang.Long;
+import java.lang.String;
+
+/**
+ * Embodies characteristics that describe a lane.  
+ * @author mccowan
+ */
+public class IlluminaLaneMetrics extends MetricBase {
+    /** The number of clusters per unit area on the this lane expressed in units of [cluster / mm^2]. */
+    public Double CLUSTER_DENSITY;
+    
+    /** This lane's number. */
+    public Long LANE;
+    
+    /** This property is not exposed in a field to avoid complications with MetricBase's dependency on reflection. */
+    public static String getExtension() {
+        return "illumina_lane_metrics";
+    }
+}
diff --git a/src/java/picard/illumina/IlluminaPhasingMetrics.java b/src/java/picard/illumina/IlluminaPhasingMetrics.java
new file mode 100644
index 0000000..57c16dc
--- /dev/null
+++ b/src/java/picard/illumina/IlluminaPhasingMetrics.java
@@ -0,0 +1,68 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.illumina;
+
+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.Collection;
+
+
+/**
+ * Metrics for Illumina Basecalling that stores median phasing and prephasing percentages on a per-template-read, per-lane basis.
+ * For each lane/template read # (i.e. FIRST, SECOND) combination we will store the median values of both the phasing and prephasing
+ * values for every tile in that lane/template read pair.
+ *
+ * @author jgentry
+ */
+public class IlluminaPhasingMetrics extends MetricBase {
+    public long LANE;
+    public String TYPE_NAME;
+    public double PHASING_APPLIED;
+    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<IlluminaPhasingMetrics> getPhasingMetricsForTiles(final long lane, final Collection<Tile> tilesForLane) {
+        final LanePhasingMetricsCollector lanePhasingMetricsCollector = new LanePhasingMetricsCollector(tilesForLane);
+        final Collection<IlluminaPhasingMetrics> phasingMetrics = new ArrayList<IlluminaPhasingMetrics>();
+        for (final TileTemplateRead tileTemplateRead : lanePhasingMetricsCollector.getMedianPhasingMap().keySet()) {
+            final IlluminaPhasingMetrics phasingMetric = new IlluminaPhasingMetrics();
+            phasingMetric.LANE = lane;
+            phasingMetric.TYPE_NAME = tileTemplateRead.toString();
+            phasingMetric.PHASING_APPLIED = lanePhasingMetricsCollector.getMedianPhasingMap().get(tileTemplateRead);
+            phasingMetric.PREPHASING_APPLIED = lanePhasingMetricsCollector.getMedianPrePhasingMap().get(tileTemplateRead);
+            phasingMetrics.add(phasingMetric);
+        }
+
+        return phasingMetrics;
+    }
+
+    /** This property is not exposed in a field to avoid complications with MetricBase's dependency on reflection. */
+    public static String getExtension() {
+        return "illumina_phasing_metrics";
+    }
+}
diff --git a/src/java/picard/illumina/LanePhasingMetricsCollector.java b/src/java/picard/illumina/LanePhasingMetricsCollector.java
new file mode 100644
index 0000000..ffa6556
--- /dev/null
+++ b/src/java/picard/illumina/LanePhasingMetricsCollector.java
@@ -0,0 +1,84 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.illumina;
+
+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.*;import java.util.Collection;import java.util.Collections;import java.util.Map;import java.util.TreeMap;
+
+/** Helper class used to transform tile data for a lane into a collection of IlluminaPhasingMetrics */
+public class LanePhasingMetricsCollector {
+    private final Map<TileTemplateRead, Float> medianPhasingMap;
+    private final Map<TileTemplateRead, Float> medianPrePhasingMap;
+
+    /** 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<Tile> laneTiles) {
+        final Map<TileTemplateRead, Float> medianPhasingMap = new TreeMap<TileTemplateRead, Float>();
+        final Map<TileTemplateRead, Float> medianPrePhasingMap = new TreeMap<TileTemplateRead, Float>();
+
+        final CollectionUtil.MultiMap<TileTemplateRead, Float> phasingValues = new CollectionUtil.MultiMap<TileTemplateRead, Float>();
+        final CollectionUtil.MultiMap<TileTemplateRead, Float> prePhasingValues = new CollectionUtil.MultiMap<TileTemplateRead, Float>();
+
+        // Collect the phasing/prephasing values from all of the tiles, sorted by template read #
+        for (final Tile tile : laneTiles) {
+            for (final TileTemplateRead tileTemplateRead : tile.getPhasingMap().keySet()) {
+                phasingValues.append(tileTemplateRead, tile.getPhasingMap().get(tileTemplateRead));
+                prePhasingValues.append(tileTemplateRead, tile.getPrePhasingMap().get(tileTemplateRead));
+            }
+        }
+
+        // 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)));
+        }
+
+        this.medianPhasingMap = Collections.unmodifiableMap(medianPhasingMap);
+        this.medianPrePhasingMap = Collections.unmodifiableMap(medianPrePhasingMap);
+    }
+
+    public Map<TileTemplateRead, Float> getMedianPhasingMap() {
+        return medianPhasingMap;
+    }
+
+    public Map<TileTemplateRead, Float> getMedianPrePhasingMap() {
+        return medianPrePhasingMap;
+    }
+
+    private static float medianPercentage(final Collection<Float> phaseValues) {
+        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;
+    }
+}
diff --git a/src/java/picard/illumina/MarkIlluminaAdapters.java b/src/java/picard/illumina/MarkIlluminaAdapters.java
new file mode 100644
index 0000000..5cc05fa
--- /dev/null
+++ b/src/java/picard/illumina/MarkIlluminaAdapters.java
@@ -0,0 +1,277 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.illumina;
+
+import htsjdk.samtools.ReservedTagConstants;
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMFileWriter;
+import htsjdk.samtools.SAMFileWriterFactory;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SAMRecordIterator;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.metrics.MetricsFile;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.CollectionUtil;
+import htsjdk.samtools.util.Histogram;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.ProgressLogger;
+import htsjdk.samtools.util.SequenceUtil;
+import htsjdk.samtools.util.StringUtil;
+import picard.PicardException;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.Illumina;
+import picard.util.AdapterMarker;
+import picard.util.AdapterPair;
+import picard.util.ClippingUtility;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+import static picard.util.IlluminaUtil.IlluminaAdapterPair;
+
+/**
+ * Command line program to mark the location of adapter sequences.
+ * This also outputs a Histogram of metrics describing the clipped bases
+ *
+ * @author Tim Fennell (adapted by mborkan at broadinstitute.org)
+ */
+ at CommandLineProgramProperties(
+        usage = "Reads a SAM or BAM file and rewrites it with new adapter-trimming tags.\n" +
+                "Clear any existing adapter-trimming tags (XT:i:).\n" +
+                "Only works for unaligned files in query-name order.\n"+
+                "Note: This is a utility program and will not be run in the pipeline.\n",
+        usageShort = "Reads a SAM or BAM file and rewrites it with new adapter-trimming tags",
+        programGroup = Illumina.class
+)
+public class MarkIlluminaAdapters extends CommandLineProgram {
+
+    // The following attributes define the command-line arguments
+
+    @Option(shortName = StandardOptionDefinitions.INPUT_SHORT_NAME)
+    public File INPUT;
+
+    @Option(doc = "If output is not specified, just the metrics are generated",
+            shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME, optional = true)
+    public File OUTPUT;
+
+    @Option(doc = "Histogram showing counts of bases_clipped in how many reads", shortName = "M")
+    public File METRICS;
+
+    @Option(doc = "The minimum number of bases to match over when clipping single-end reads.")
+    public int MIN_MATCH_BASES_SE = ClippingUtility.MIN_MATCH_BASES;
+
+    @Option(doc = "The minimum number of bases to match over (per-read) when clipping paired-end reads.")
+    public int MIN_MATCH_BASES_PE = ClippingUtility.MIN_MATCH_PE_BASES;
+
+    @Option(doc = "The maximum mismatch error rate to tolerate when clipping single-end reads.")
+    public double MAX_ERROR_RATE_SE = ClippingUtility.MAX_ERROR_RATE;
+
+    @Option(doc = "The maximum mismatch error rate to tolerate when clipping paired-end reads.")
+    public double MAX_ERROR_RATE_PE = ClippingUtility.MAX_PE_ERROR_RATE;
+
+    @Option(doc = "DEPRECATED. Whether this is a paired-end run. No longer used.", shortName = "PE", optional = true)
+    public Boolean PAIRED_RUN;
+
+    @Option(doc = "Which adapters sequences to attempt to identify and clip.")
+    public List<IlluminaAdapterPair> ADAPTERS =
+            CollectionUtil.makeList(IlluminaAdapterPair.INDEXED,
+                    IlluminaAdapterPair.DUAL_INDEXED,
+                    IlluminaAdapterPair.PAIRED_END
+            );
+
+    @Option(doc = "For specifying adapters other than standard Illumina", optional = true)
+    public String FIVE_PRIME_ADAPTER;
+    @Option(doc = "For specifying adapters other than standard Illumina", optional = true)
+    public String THREE_PRIME_ADAPTER;
+
+    @Option(doc = "Adapters are truncated to this length to speed adapter matching.  Set to a large number to effectively disable truncation.")
+    public int ADAPTER_TRUNCATION_LENGTH = AdapterMarker.DEFAULT_ADAPTER_LENGTH;
+
+    @Option(doc = "If looking for multiple adapter sequences, then after having seen this many adapters, shorten the list of sequences. " +
+            "Keep the adapters that were found most frequently in the input so far. " +
+            "Set to -1 if the input has a heterogeneous mix of adapters so shortening is undesirable.",
+            shortName = "APT")
+    public int PRUNE_ADAPTER_LIST_AFTER_THIS_MANY_ADAPTERS_SEEN = AdapterMarker.DEFAULT_PRUNE_ADAPTER_LIST_AFTER_THIS_MANY_ADAPTERS_SEEN;
+
+    @Option(doc = "If pruning the adapter list, keep only this many adapter sequences when pruning the list (plus any adapters that " +
+            "were tied with the adapters being kept).")
+    public int NUM_ADAPTERS_TO_KEEP = AdapterMarker.DEFAULT_NUM_ADAPTERS_TO_KEEP;
+
+    private static final Log log = Log.getInstance(MarkIlluminaAdapters.class);
+
+    // Stock main method
+    public static void main(final String[] args) {
+        System.exit(new MarkIlluminaAdapters().instanceMain(args));
+    }
+
+    @Override
+    protected String[] customCommandLineValidation() {
+        if ((FIVE_PRIME_ADAPTER != null && THREE_PRIME_ADAPTER == null) || (THREE_PRIME_ADAPTER != null && FIVE_PRIME_ADAPTER == null)) {
+            return new String[]{"Either both or neither of THREE_PRIME_ADAPTER and FIVE_PRIME_ADAPTER must be set."};
+        } else {
+            return null;
+        }
+    }
+
+    @Override
+    protected int doWork() {
+        IOUtil.assertFileIsReadable(INPUT);
+        IOUtil.assertFileIsWritable(METRICS);
+
+        final SamReader in = SamReaderFactory.makeDefault().referenceSequence(REFERENCE_SEQUENCE).open(INPUT);
+        final SAMFileHeader.SortOrder order = in.getFileHeader().getSortOrder();
+        SAMFileWriter out = null;
+        if (OUTPUT != null) {
+            IOUtil.assertFileIsWritable(OUTPUT);
+            out = new SAMFileWriterFactory().makeSAMOrBAMWriter(in.getFileHeader(), true, OUTPUT);
+        }
+
+        final Histogram<Integer> histo = new Histogram<Integer>("clipped_bases", "read_count");
+
+        // Combine any adapters and custom adapter pairs from the command line into an array for use in clipping
+        final AdapterPair[] adapters;
+        {
+            final List<AdapterPair> tmp = new ArrayList<AdapterPair>();
+            tmp.addAll(ADAPTERS);
+            if (FIVE_PRIME_ADAPTER != null && THREE_PRIME_ADAPTER != null) {
+                tmp.add(new CustomAdapterPair(FIVE_PRIME_ADAPTER, THREE_PRIME_ADAPTER));
+            }
+            adapters = tmp.toArray(new AdapterPair[tmp.size()]);
+        }
+
+        ////////////////////////////////////////////////////////////////////////
+        // Main loop that consumes reads, clips them and writes them to the output
+        ////////////////////////////////////////////////////////////////////////
+        final ProgressLogger progress = new ProgressLogger(log, 1000000, "Read");
+        final SAMRecordIterator iterator = in.iterator();
+
+        final AdapterMarker adapterMarker = new AdapterMarker(ADAPTER_TRUNCATION_LENGTH, adapters).
+                setMaxPairErrorRate(MAX_ERROR_RATE_PE).setMinPairMatchBases(MIN_MATCH_BASES_PE).
+                setMaxSingleEndErrorRate(MAX_ERROR_RATE_SE).setMinSingleEndMatchBases(MIN_MATCH_BASES_SE).
+                setNumAdaptersToKeep(NUM_ADAPTERS_TO_KEEP).
+                setThresholdForSelectingAdaptersToKeep(PRUNE_ADAPTER_LIST_AFTER_THIS_MANY_ADAPTERS_SEEN);
+
+        while (iterator.hasNext()) {
+            final SAMRecord rec = iterator.next();
+            final SAMRecord rec2 = rec.getReadPairedFlag() && iterator.hasNext() ? iterator.next() : null;
+            rec.setAttribute(ReservedTagConstants.XT, null);
+
+            // Do the clipping one way for PE and another for SE reads
+            if (rec.getReadPairedFlag()) {
+                // Assert that the input file is in query name order only if we see some PE reads
+                if (order != SAMFileHeader.SortOrder.queryname) {
+                    throw new PicardException("Input BAM file must be sorted by queryname");
+                }
+
+                if (rec2 == null) throw new PicardException("Missing mate pair for paired read: " + rec.getReadName());
+                rec2.setAttribute(ReservedTagConstants.XT, null);
+
+                // Assert that we did in fact just get two mate pairs
+                if (!rec.getReadName().equals(rec2.getReadName())) {
+                    throw new PicardException("Adjacent reads expected to be mate-pairs have different names: " +
+                            rec.getReadName() + ", " + rec2.getReadName());
+                }
+
+                // establish which of pair is first and which second
+                final SAMRecord first, second;
+
+                if (rec.getFirstOfPairFlag() && rec2.getSecondOfPairFlag()) {
+                    first = rec;
+                    second = rec2;
+                } else if (rec.getSecondOfPairFlag() && rec2.getFirstOfPairFlag()) {
+                    first = rec2;
+                    second = rec;
+                } else {
+                    throw new PicardException("Two reads with same name but not correctly marked as 1st/2nd of pair: " + rec.getReadName());
+                }
+
+                adapterMarker.adapterTrimIlluminaPairedReads(first, second);
+            } else {
+                adapterMarker.adapterTrimIlluminaSingleRead(rec);
+            }
+
+            // Then output the records, update progress and metrics
+            for (final SAMRecord r : new SAMRecord[]{rec, rec2}) {
+                if (r != null) {
+                    progress.record(r);
+                    if (out != null) out.addAlignment(r);
+
+                    final Integer clip = rec.getIntegerAttribute(ReservedTagConstants.XT);
+                    if (clip != null) histo.increment(rec.getReadLength() - clip + 1);
+                }
+            }
+        }
+
+        if (out != null) out.close();
+
+        // Lastly output the metrics to file
+        final MetricsFile<?, Integer> metricsFile = getMetricsFile();
+        metricsFile.setHistogram(histo);
+        metricsFile.write(METRICS);
+
+        CloserUtil.close(in);
+        return 0;
+    }
+
+    private class CustomAdapterPair implements AdapterPair {
+
+        final String fivePrime, threePrime, fivePrimeReadOrder;
+        final byte[] fivePrimeBytes, threePrimeBytes, fivePrimeReadOrderBytes;
+
+        private CustomAdapterPair(final String fivePrime, final String threePrime) {
+            this.threePrime = threePrime;
+            this.threePrimeBytes = StringUtil.stringToBytes(threePrime);
+
+            this.fivePrime = fivePrime;
+            this.fivePrimeReadOrder = SequenceUtil.reverseComplement(fivePrime);
+            this.fivePrimeBytes = StringUtil.stringToBytes(fivePrime);
+            this.fivePrimeReadOrderBytes = StringUtil.stringToBytes(fivePrimeReadOrder);
+        }
+
+        public String get3PrimeAdapter() { return threePrime; }
+
+        public String get5PrimeAdapter() { return fivePrime; }
+
+        public String get3PrimeAdapterInReadOrder() { return threePrime; }
+
+        public String get5PrimeAdapterInReadOrder() { return fivePrimeReadOrder; }
+
+        public byte[] get3PrimeAdapterBytes() { return threePrimeBytes; }
+
+        public byte[] get5PrimeAdapterBytes() { return fivePrimeBytes; }
+
+        public byte[] get3PrimeAdapterBytesInReadOrder() { return threePrimeBytes; }
+
+        public byte[] get5PrimeAdapterBytesInReadOrder() { return fivePrimeReadOrderBytes; }
+
+        public String getName() { return "Custom adapter pair"; }
+    }
+}
diff --git a/src/java/picard/illumina/parser/BarcodeParser.java b/src/java/picard/illumina/parser/BarcodeParser.java
new file mode 100644
index 0000000..675a419
--- /dev/null
+++ b/src/java/picard/illumina/parser/BarcodeParser.java
@@ -0,0 +1,84 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.illumina.parser;
+
+import htsjdk.samtools.util.CloseableIterator;
+import htsjdk.samtools.util.CollectionUtil;
+import picard.illumina.parser.readers.BarcodeFileReader;
+
+import java.io.File;
+import java.util.Collections;
+import java.util.Set;
+
+/**
+ * @author jburke at broadinstitute.org
+ */
+class BarcodeParser extends PerTileParser<BarcodeData> {
+
+    private static final Set<IlluminaDataType> SUPPORTED_TYPES = Collections.unmodifiableSet(CollectionUtil.makeSet(IlluminaDataType.Barcodes));
+
+    public BarcodeParser(final IlluminaFileMap tilesToFiles) {
+        super(tilesToFiles);
+    }
+
+    public BarcodeParser(final IlluminaFileMap tilesToFiles, final int nextTile) {
+        super(tilesToFiles, nextTile);
+    }
+
+    @Override
+    protected CloseableIterator<BarcodeData> makeTileIterator(File nextTileFile) {
+        return new BarcodeDataIterator(nextTileFile);
+    }
+
+    public Set<IlluminaDataType> supportedTypes() {
+        return SUPPORTED_TYPES;
+    }
+
+    private static class BarcodeDataIterator implements CloseableIterator<BarcodeData>{
+        private BarcodeFileReader bfr;
+        public BarcodeDataIterator(final File file) {
+            bfr = new BarcodeFileReader(file);
+        }
+
+        public void close() {
+            bfr.close();
+        }
+
+        public boolean hasNext() {
+            return bfr.hasNext();
+        }
+
+        public BarcodeData next() {
+            return new BarcodeData() {
+                public String getBarcode() {
+                    return bfr.next();
+                }
+            };
+        }
+
+        public void remove() {
+            throw new UnsupportedOperationException();
+        }
+    }
+}
diff --git a/src/java/picard/illumina/parser/BclData.java b/src/java/picard/illumina/parser/BclData.java
new file mode 100644
index 0000000..ac8845d
--- /dev/null
+++ b/src/java/picard/illumina/parser/BclData.java
@@ -0,0 +1,30 @@
+package picard.illumina.parser;
+
+/** A class that implements the IlluminaData interfaces provided by this parser
+ * One BclData object is returned to IlluminaDataProvider per cluster and each
+ * first level array in bases and qualities represents a single read in that
+ * cluster */
+public class BclData implements BaseData, QualityData {
+    public final byte [][] bases;
+    public final byte [][] qualities;
+
+    public BclData(final int[] outputLengths) {
+        bases     = new byte[outputLengths.length][];
+        qualities = new byte[outputLengths.length][];
+
+        for(int i = 0; i < outputLengths.length; i++) {
+            bases[i]     = new byte[outputLengths[i]];
+            qualities[i] = new byte[outputLengths[i]];
+        }
+    }
+
+    @Override
+    public byte[][] getBases() {
+        return bases;
+    }
+
+    @Override
+    public byte[][] getQualities() {
+        return qualities;
+    }
+}
diff --git a/src/java/picard/illumina/parser/BclParser.java b/src/java/picard/illumina/parser/BclParser.java
new file mode 100644
index 0000000..a694bb2
--- /dev/null
+++ b/src/java/picard/illumina/parser/BclParser.java
@@ -0,0 +1,295 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2012 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.illumina.parser;
+
+
+import htsjdk.samtools.util.CloseableIterator;
+import picard.illumina.parser.readers.BclQualityEvaluationStrategy;
+import picard.illumina.parser.readers.BclReader;
+
+import java.io.File;
+import java.util.Collections;
+import java.util.List;
+import java.util.NoSuchElementException;
+import java.util.Set;
+
+import static htsjdk.samtools.util.CollectionUtil.makeSet;
+
+/**
+ * BclParser parses a number of BclFiles equal to the total of all the values in outputLengths and returns a BclData object
+ * segmented based on these lengths.  The only client of this class should be IlluminaDataProvider and an test classes.  See BclReader for
+ * more information on BclFiles.  BclParser provides support for reading BaseCalls and QualityScores.
+ */
+class BclParser extends PerTileCycleParser<BclData> {
+    private static final int EAMSS_M2_GE_THRESHOLD = 30;
+    private static final int EAMSS_S1_LT_THRESHOLD = 15; //was 15
+    public static final byte MASKING_QUALITY = (byte) 0x02;
+
+    private static final Set<IlluminaDataType> SUPPORTED_TYPES = Collections.unmodifiableSet(makeSet(IlluminaDataType.BaseCalls, IlluminaDataType.QualityScores));
+
+    protected final BclQualityEvaluationStrategy bclQualityEvaluationStrategy;
+    private final boolean applyEamssFilter;
+
+    public BclParser(final File directory, final int lane, final CycleIlluminaFileMap tilesToCycleFiles, final OutputMapping outputMapping, final BclQualityEvaluationStrategy bclQualityEvaluationStrategy) {
+        this(directory, lane, tilesToCycleFiles, outputMapping, true, bclQualityEvaluationStrategy);
+        this.initialize();
+    }
+
+    public BclParser(final File directory, final int lane, final CycleIlluminaFileMap tilesToCycleFiles, final OutputMapping outputMapping, final boolean applyEamssFilter, final BclQualityEvaluationStrategy bclQualityEvaluationStrategy) {
+        super(directory, lane, tilesToCycleFiles, outputMapping);
+        this.bclQualityEvaluationStrategy = bclQualityEvaluationStrategy;
+        this.applyEamssFilter = applyEamssFilter;
+        this.initialize();
+    }
+
+    /**
+     * Create a Bcl parser for an individual cycle and wrap it with the CycleFilesParser interface which populates
+     * the correct cycle in BclData.
+     *
+     * @param files The files to parse.
+     * @return A CycleFilesParser that populates a BclData object with data for a single cycle
+     */
+    @Override
+    protected CycleFilesParser<BclData> makeCycleFileParser(final List<File> files) {
+        return new BclDataCycleFileParser(files);
+    }
+
+    @Override
+    public void initialize() {
+        seekToTile(currentTile);
+    }
+
+    @Override
+    public Set<IlluminaDataType> supportedTypes() {
+        return SUPPORTED_TYPES;
+    }
+
+    @Override
+    public BclData next() {
+        final BclData bclData = super.next();
+
+        final byte[][] bases = bclData.getBases();
+        final byte[][] qualities = bclData.getQualities();
+
+        //first run EAMSS
+        if (this.applyEamssFilter) {
+            for (int i = 0; i < bases.length; i++) {
+                runEamssForReadInPlace(bases[i], qualities[i]);
+            }
+        }
+
+        return bclData;
+    }
+
+    /**
+     * EAMSS is an Illumina Developed Algorithm for detecting reads whose quality has deteriorated towards
+     * their end and revising the quality to the masking quality (2) if this is the case.  This algorithm
+     * works as follows (with one exception):
+     * <p/>
+     * Start at the end (high indices, at the right below) of the read and calculate an EAMSS tally at each
+     * location as follow:
+     * if(quality[i] < 15) tally += 1
+     * if(quality[i] >= 15 and < 30) tally = tally
+     * if(quality[i] >= 30) tally -= 2
+     * <p/>
+     * <p/>
+     * For each location, keep track of this tally (e.g.)
+     * Read Starts at <- this end
+     * Cycle:       1  2  3  4  5  6  7  8  9
+     * Bases:       A  C  T  G  G  G  T  C  A
+     * Qualities:   32 32 16 15 8  10 32 2  2
+     * Cycle Score: -2 -2 0  0  1  1  -2 1  1           //The EAMSS Score determined for this cycle alone
+     * EAMSS TALLY: 0  0  2  2  2  1  0  2  1
+     * X - Earliest instance of Max-Score
+     * <p/>
+     * You must keep track of the maximum EAMSS tally (in this case 2) and the earliest(lowest) cycle at which
+     * it occurs.  If and only if, the max EAMSS tally >= 1 then from there until the end(highest cycle) of the
+     * read reassign these qualities as 2 (the masking quality).  The output qualities would therefore be
+     * transformed from:
+     * <p/>
+     * Original Qualities: 32 32 16 15 8  10 32 2  2    to
+     * Final    Qualities: 32 32 2  2  2  2  2  2  2
+     * X - Earliest instance of max-tally/end of masking
+     * <p/>
+     * IMPORTANT:
+     * The one exception is: If the max EAMSS Tally is preceded by a long string of G basecalls (10 or more, with a single basecall exception per10 bases)
+     * then the masking continues to the beginning of that string of G's. E.g.:
+     * <p/>
+     * Cycle:       1  2  3  4  5  6  7  8   9  10 11 12 13 14 15 16 17 18
+     * Bases:       C  T  A  C  A  G  A  G   G  G  G  G  G  G  G  C  A  T
+     * Qualities:   30 22 26 27 28 30 7  34  20 19 38 15 32 32 10 4  2  5
+     * Cycle Score: -2  0  0  0  0 -2 1  -2  0  0  -2 0  -2 -2  1 1  1  1
+     * EAMSS TALLY: -2 -5 -5 -5 -5 -5 -3 -4 -2 -2  -2 0   0  2  4 3  2  1
+     * X- Earliest instance of Max-Tally
+     * <p/>
+     * Resulting Transformation:
+     * Bases:                C  T  A  C  A  G  A   G   G  G  G  G  G  G  G  C  A  T
+     * Original Qualities:   30 22 26 27 28 30 7  34  20 19 38 15 32 32 10  4  2  5
+     * Final    Qualities:   30 22 26 27 28  2 2   2   2  2  2  2  2  2  2  2  2  2
+     * X- Earliest instance of Max-Tally
+     * X - Start of EAMSS masking due to G-Run
+     * <p/>
+     * To further clarify the exception rule here are a few examples:
+     * A C G A C G G G G G G G G G G G G G G G G G G G G A C T
+     * X - Earliest instance of Max-Tally
+     * X - Start of EAMSS masking (with a two base call jump because we have 20 bases in the run already)
+     * <p/>
+     * T T G G A G G G G G G G G G G G G G G G G G G A G A C T
+     * X - Earliest instance of Max-Tally
+     * X - We can skip this A as well as the earlier A because we have 20 or more bases in the run already
+     * X - Start of EAMSS masking (with a two base call jump because we have 20 bases in the run)
+     * <p/>
+     * T T G G G A A G G G G G G G G G G G G G G G G G G T T A T
+     * X - Earliest instance of Max-Tally
+     * X X - WE can skip these bases because the first A counts as the first skip and as far as the length of the string of G's is
+     * concerned, these are both counted like G's
+     * X - This A is the 20th base in the string of G's and therefore can be skipped
+     * X - Note that the A's previous to the G's are only included because there are G's further on that are within the number
+     * of allowable exceptions away (i.e. 2 in this instance), if there were NO G's after the A's you CANNOT count the A's
+     * as part of the G strings (even if no exceptions have previously occured) In other words, the end of the string of G's
+     * MUST end in a G not an "exception"
+     * <p/>
+     * However, if the max-tally occurs to the right of the run of Gs then this is still part of the string of G's but does count towards
+     * the number of exceptions allowable
+     * (e.g.)
+     * T T G G G G G G G G G G A C G
+     * X - Earliest instance of Max-tally
+     * The first index CAN be considered as an exception, the above would be masked to
+     * the following point:
+     * T T G G G G G G G G G G A C G
+     * X - End of EAMSS masking due to G-Run
+     * <p/>
+     * To sum up the final points, a string of G's CAN START with an exception but CANNOT END in an exception.
+     *
+     * @param bases     Bases for a single read in the cluster ( not the entire cluster )
+     * @param qualities Qualities for a single read in the cluster ( not the entire cluster )
+     */
+    protected static void runEamssForReadInPlace(final byte[] bases, final byte[] qualities) {
+        int eamssTally = 0;
+        int maxTally = Integer.MIN_VALUE;
+        int indexOfMax = -1;
+
+        for (int i = bases.length - 1; i >= 0; i--) {
+            final int quality = (0xff & qualities[i]);
+
+            if (quality >= EAMSS_M2_GE_THRESHOLD) {
+                eamssTally -= 2;
+            } else if (quality < EAMSS_S1_LT_THRESHOLD) {
+                eamssTally += 1;
+            }
+
+            if (eamssTally >= maxTally) {
+                indexOfMax = i;
+                maxTally = eamssTally;
+            }
+        }
+
+        if (maxTally >= 1) {
+            int numGs = 0;
+            int exceptions = 0;
+
+            for (int i = indexOfMax; i >= 0; i--) {
+                if (bases[i] == 'G') {
+                    ++numGs;
+                } else {
+                    final Integer skip = skipBy(i, numGs, exceptions, bases);
+                    if (skip != null) {
+                        exceptions += skip;
+                        numGs += skip;
+                        i -= (skip - 1);
+                    } else {
+                        break;
+                    }
+                }
+            }
+
+            if (numGs >= 10) {
+                indexOfMax = (indexOfMax + 1) - numGs;
+            }
+
+            for (int i = indexOfMax; i < qualities.length; i++) {
+                qualities[i] = MASKING_QUALITY;
+            }
+        }
+    }
+
+    /**
+     * Determine whether or not the base at index is part of a skippable section in a run of G's, if so
+     * return the number of bases that the section is composed of.
+     *
+     * @param index          Current index, which should be the index of a non-'G' base
+     * @param numGs          The number of bases in the current string of G's for this read
+     * @param prevExceptions The number of exceptions previously detected in this string by this method
+     * @param bases          The bases of this read
+     * @return If we have not reached our exception limit (1/every 10bases) and a G is within exceptionLimit(numGs/10)
+     * indices before the current index then return index - (index of next g), else return null  Null indicates this is
+     * NOT a skippable region, if we run into index 0 without finding a g then NULL is also returned
+     */
+    private static Integer skipBy(final int index, final int numGs, final int prevExceptions, final byte[] bases) {
+        Integer skip = null;
+        for (int backup = 1; backup <= index; backup++) {
+            final int exceptionLimit = Math.max((numGs + backup) / 10, 1);
+            if (prevExceptions + backup > exceptionLimit) {
+                break;
+            }
+            if (bases[index - backup] == 'G') {
+                skip = backup;
+                break;
+            }
+        }
+
+        return skip;
+    }
+
+    private class BclDataCycleFileParser implements CycleFilesParser<BclData> {
+        final CloseableIterator<BclData> reader;
+
+        public BclDataCycleFileParser(final List<File> files) {
+            reader = new BclReader(files, outputMapping.getOutputReadLengths(),
+                    bclQualityEvaluationStrategy, false);
+        }
+
+        @Override
+        public void close() {
+            reader.close();
+        }
+
+        @Override
+        public BclData next() {
+            if (!hasNext()) {
+                throw new NoSuchElementException();
+            }
+            return reader.next();
+        }
+
+        @Override
+        public boolean hasNext() {
+            try {
+                return reader.hasNext();
+            } catch (final NullPointerException npe) {
+                return false;
+            }
+        }
+    }
+}
diff --git a/src/java/picard/illumina/parser/ClusterData.java b/src/java/picard/illumina/parser/ClusterData.java
new file mode 100644
index 0000000..a401c23
--- /dev/null
+++ b/src/java/picard/illumina/parser/ClusterData.java
@@ -0,0 +1,200 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.illumina.parser;
+
+import picard.PicardException;
+
+/**
+ * Store the information from Illumina files for a single cluster with one or more reads.
+ * 
+ * @author jburke at broadinstitute.org
+ */
+public class ClusterData {
+
+    private int lane = -1;
+    private int tile = -1;
+    private int x = -1;
+    private int y = -1;
+    private final ReadData [] reads;
+    private Boolean pf;
+    private String matchedBarcode;
+
+    /** Used for testing, reads is set directly with no copying to the input array */
+    public ClusterData(final ReadData ... reads) {
+        this.reads = reads;
+    }
+
+    /** Creates a ClusterData with one read for each type provided */
+    public ClusterData(final ReadType [] readTypes) {
+        reads = new ReadData[readTypes.length];
+        for(int i = 0; i < readTypes.length; i++) {
+            reads[i] = new ReadData(readTypes[i]);
+        }
+    }
+
+    public String toString() {
+        return "ClusterData(lane: " + lane + "; tile: " + tile + "; x: " + x + "; y: " + y + "; pf: " + pf +
+                "; matchedBarcode: " + matchedBarcode + ")";
+    }
+
+    public int getTile() {
+        return tile;
+    }
+
+    public void setTile(final int tile) {
+        this.tile = tile;
+    }
+
+    public boolean tileIsSet() {
+        return tile != -1;
+    }
+
+    public ReadData getRead(final int index) {
+        return reads[index];
+    }
+
+    public int getNumReads() {
+        return reads.length;
+    }
+
+    /**
+     * Either set this value if not already set, or if already set, throw an exception if new value != current value.
+     */
+    public void setOrCheckTile(final int tile) {
+        if (tileIsSet()) {
+            if (this.tile != tile) {
+                throw new PicardException("Tile number mismatch for " + this + " : " + this.tile + " != " + tile);
+            }
+        } else {
+            this.tile = tile;
+        }
+    }
+
+    public int getLane() {
+        return lane;
+    }
+
+    public void setLane(final int lane) {
+        this.lane = lane;
+    }
+
+    public boolean laneIsSet() {
+        return lane != -1;
+    }
+
+    /**
+     * Either set this value if not already set, or if already set, throw an exception if new value != current value.
+     */
+    public void setOrCheckLane(final int lane) {
+        if (laneIsSet()) {
+            if (this.lane != lane) {
+                throw new PicardException("Lane number mismatch for " + this + " : " + this.lane + " != " + lane);
+            }
+        } else {
+            this.lane = lane;
+        }
+    }
+
+    public int getX() {
+        return x;
+    }
+
+    public void setX(final int x) {
+        this.x = x;
+    }
+
+    public boolean xIsSet() {
+        return x != -1;
+    }
+
+    /**
+     * Either set this value if not already set, or if already set, throw an exception if new value != current value.
+     */
+    public void setOrCheckX(final int x) {
+        if (xIsSet()) {
+            if (this.x != x) {
+                throw new PicardException("X value mismatch for " + this + " : " + this.x + " != " + x);
+            }
+        } else {
+            this.x = x;
+        }
+    }
+
+    public int getY() {
+        return y;
+    }
+
+    public void setY(final int y) {
+        this.y = y;
+    }
+
+    public boolean yIsSet() {
+        return y != -1;
+    }
+
+    /**
+     * Either set this value if not already set, or if already set, throw an exception if new value != current value.
+     */
+    public void setOrCheckY(final int y) {
+        if (yIsSet()) {
+            if (this.y != y) {
+                throw new PicardException("Y value mismatch for " + this + " : " + this.y + " != " + y);
+            }
+        } else {
+            this.y = y;
+        }
+    }
+
+    public Boolean isPf() {
+        return pf;
+    }
+
+    public void setPf(final boolean pf) {
+        this.pf = pf;
+    }
+
+    /**
+     * Either set this value if not already set, or if already set, throw an exception if new value != current value.
+     */
+    public void setOrCheckPf(final boolean pf) {
+        if (this.pf == null) {
+            this.pf = pf;
+        } else if (this.pf != pf) {
+            throw new PicardException("PF value mismatch for " + this + " : ");
+        }
+    }
+
+    /**
+     * @return The barcode matched (not the actual sequence from the read, which may not perfectly match
+     * the barcode).
+     */
+    public String getMatchedBarcode() {
+        return matchedBarcode;
+    }
+
+    public void setMatchedBarcode(final String matchedBarcode) {
+        this.matchedBarcode = matchedBarcode;
+    }
+}
diff --git a/src/java/picard/illumina/parser/ClusterIntensityFileReader.java b/src/java/picard/illumina/parser/ClusterIntensityFileReader.java
new file mode 100644
index 0000000..c88a3ab
--- /dev/null
+++ b/src/java/picard/illumina/parser/ClusterIntensityFileReader.java
@@ -0,0 +1,216 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2012 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.illumina.parser;
+
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.StringUtil;
+import picard.PicardException;
+import picard.util.UnsignedTypeUtil;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.nio.MappedByteBuffer;
+import java.nio.channels.FileChannel;
+import java.util.Arrays;
+
+/**
+ * Read a .cnf (binary noise) or .cif (binary intensity) file.  A file in this format contains
+ * 1 or more cycles of data for a set of clusters, with 4 values per cycle, one for each channel.
+ * A file can store its values in either a byte or a short per value, but the API treats them all as shorts.
+ * This class does not distinguish btw CIF and CNF files.
+ *
+ * @author jburke at broadinstitute.org
+ */
+class ClusterIntensityFileReader {
+
+    private static final byte[] IDENTIFIER = StringUtil.stringToBytes("CIF");
+    private static final byte FILE_VERSION = 1;
+    private static final int HEADER_SIZE = 13;
+    private static final int NUM_CHANNELS = IntensityChannel.values().length;
+
+    // Just for error reporting
+    private final File file;
+
+    /**
+     * The entire file is mmapped
+     */
+    private final MappedByteBuffer buf;
+    private final ClusterIntensityFileHeader header;
+
+    // Precomputed for speed, I hope.
+    private final int cycleSize;
+    private final int channelSize;
+
+    public static class ClusterIntensityFileHeader {
+        public final int elementSize;
+        public final int firstCycle;
+        public final int numCycles;
+        public final int numClusters;
+
+        public ClusterIntensityFileHeader(final byte[] headerBytes, final File file) {
+            if(headerBytes.length < HEADER_SIZE) {
+                throw new PicardException("Bytes past to header constructor are too short excpected(" + HEADER_SIZE + ") received (" + headerBytes.length);
+            }
+
+            ByteBuffer buf = ByteBuffer.allocate(headerBytes.length); //for doing some byte conversions
+            buf.order(ByteOrder.LITTLE_ENDIAN);
+            buf.put(headerBytes);
+            buf.position(0);
+
+            final byte[] identifierBuf = new byte[IDENTIFIER.length];
+            buf.get(identifierBuf);
+            if (!Arrays.equals(identifierBuf, IDENTIFIER)) {
+                throw new PicardException("Cluster intensity file " + file + " contains unexpected header: " +
+                        StringUtil.bytesToString(identifierBuf));
+            }
+            final byte fileVersion = buf.get();
+            if (fileVersion != FILE_VERSION) {
+                throw new PicardException("Cluster intensity file " + file + " contains unexpected version: " + fileVersion);
+            }
+            elementSize = buf.get();
+            if (elementSize < 1 || elementSize > 2) {
+                throw new PicardException("Cluster intensity file " + file + " contains unexpected element size: " + elementSize);
+            }
+            // convert these to unsigned
+            firstCycle = UnsignedTypeUtil.uShortToInt(buf.getShort());
+            numCycles = UnsignedTypeUtil.uShortToInt(buf.getShort());
+            if (numCycles == 0) {
+                throw new PicardException("Cluster intensity file " + file + " has zero cycles.");
+            }
+            numClusters = buf.getInt();
+            if (numClusters < 0) {
+                // It is possible for there to be no clusters in a tile.
+                throw new PicardException("Cluster intensity file " + file + " has negative number of clusters: " +numClusters);
+            }
+        }
+    }
+
+    /**
+     * Prepare to parse a CIF or CNF file.
+     * @param file The file to be parsed.
+     */
+    public ClusterIntensityFileReader(final File file) {
+        try {
+            this.file = file;
+            final FileInputStream is = new FileInputStream(this.file);
+            final FileChannel channel = is.getChannel();
+            final long fileSize = channel.size();
+            buf = channel.map(FileChannel.MapMode.READ_ONLY, 0, fileSize);
+            buf.order(ByteOrder.LITTLE_ENDIAN);
+            CloserUtil.close(channel);
+            CloserUtil.close(is);
+            final byte [] headerBytes = new byte[HEADER_SIZE];
+            buf.get(headerBytes);
+            this.header = new ClusterIntensityFileHeader(headerBytes, this.file);
+        } catch (IOException e) {
+            throw new PicardException("IOException opening cluster intensity file " + file, e);
+        }
+        cycleSize = NUM_CHANNELS * header.numClusters * header.elementSize;
+        channelSize = header.numClusters * header.elementSize;
+    }
+
+    /**
+     * Get the value for the given args.  Value is returned as a signed short regardless of whether storage is
+     * in bytes or shorts.
+     * @param cluster 0-based cluster number.
+     * @param channel Which channel is desired.
+     * @param cycle Absolute cycle number.  E.g. if the first cycle in the file is N, then the first value that can
+     * be fetched is cycle=N
+     * @return Intensity or noise (depending on whether this is a CIF or CNF file).
+     */
+    public short getValue(final int cluster, final IntensityChannel channel, final int cycle) {
+        if (cycle < header.firstCycle || cycle >= header.firstCycle + header.numCycles) {
+            throw new IllegalArgumentException("Requested cycle (" + cycle + ") number out of range.  First cycle=" +
+                    header.firstCycle + "; numCycles=" + header.numCycles);
+        }
+        if (cluster < 0 || cluster >= header.numClusters) {
+            throw new IllegalArgumentException("Requested cluster (" + cluster + ") number out of range. numClustersInTile=" + header.numClusters);
+        }
+        final int relativeCycle = cycle - header.firstCycle;
+        final int position = HEADER_SIZE + relativeCycle * cycleSize + channel.ordinal() * channelSize + cluster * header.elementSize;
+        buf.position(position);
+        if (header.elementSize == 1) {
+            return buf.get();
+        } else {
+            return buf.getShort();
+        }
+    }
+
+    public File getFile() {
+        return file;
+    }
+
+    /**
+     * @return The first (one-based) cycle stored in this file.
+     */
+    public int getFirstCycle() {
+        return header.firstCycle;
+    }
+
+    /**
+     * @return Number of clusters stored in this file.
+     */
+    public int getNumClusters() {
+        return header.numClusters;
+    }
+
+    /**
+     * @return Number of cycles stored in this file.
+     */
+    public int getNumCycles() {
+        return header.numCycles;
+    }
+
+    /**
+     * @return the size of one intensity value for one channel in this file.
+     */
+    public int getElementSize() {
+        return header.elementSize;
+    }
+
+    public static ClusterIntensityFileHeader readHeaders(final File intensityFile) {
+        FileInputStream reader = null;
+        byte [] headerBytes = new byte[HEADER_SIZE];
+        int bytesRead = 0;
+        try {
+            reader = new FileInputStream(intensityFile);
+            bytesRead = reader.read(headerBytes);
+        } catch(FileNotFoundException fnfExc) {
+            throw new PicardException("Error opening intensity file (" + intensityFile.getAbsolutePath() +")", fnfExc);
+        } catch(IOException ioExc) {
+            throw new PicardException("Error reading values from header for intensity file (" + intensityFile.getAbsolutePath() + ")", ioExc);
+        } finally {
+            CloserUtil.close(reader);
+        }
+
+        if(bytesRead != HEADER_SIZE)
+            throw new PicardException("Error reading intensity file header, too few bytes read, expected( " + HEADER_SIZE + ") read(" + bytesRead + ")");
+
+        return new ClusterIntensityFileHeader(headerBytes, intensityFile);
+    }
+}
diff --git a/src/java/picard/illumina/parser/CycleIlluminaFileMap.java b/src/java/picard/illumina/parser/CycleIlluminaFileMap.java
new file mode 100644
index 0000000..cb11e07
--- /dev/null
+++ b/src/java/picard/illumina/parser/CycleIlluminaFileMap.java
@@ -0,0 +1,74 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.illumina.parser;
+
+import picard.PicardException;
+
+import java.util.List;
+import java.util.Set;
+import java.util.TreeMap;
+
+/**
+ * For per cycle files.  Maps a Cycle -> Tile -> List<File>
+ *
+ * @author jburke at broadinstitute.org
+ */
+class CycleIlluminaFileMap extends TreeMap<Integer, IlluminaFileMap> {
+    /**
+     * Return a CycleIlluminaFileMap with only the tiles listed and all of the cycles provided.
+     * Important NOTE: this DOES NOT eliminate cycles from the cycles parameter passed in that are missing in the cyclesFileIterator of any given lane in the CycleIlluminaFileMap
+     */
+    public CycleIlluminaFileMap keep(final List<Integer> tilesToKeep, final Set<Integer> cycles) {
+        final CycleIlluminaFileMap ciMap = new CycleIlluminaFileMap();
+
+        if (cycles != null) {
+            for (final int cycle : cycles) {
+                final IlluminaFileMap template = this.get(cycle);
+                if (template != null) {
+                    ciMap.put(cycle, template.keep(tilesToKeep));
+                }
+            }
+        }
+
+        return ciMap;
+    }
+
+    /**
+     * Assert that this map has an iterator for all of the expectedTiles and each iterator has expectedCycles number
+     * of files.  Also, assert that each cycle file for a given tile is the same size
+     *
+     * @param expectedTiles  A list of tiles that should be in this map
+     * @param expectedCycles The total number of files(cycles) that should be in each CycledFilesIterator
+     */
+    public void assertValid(final List<Integer> expectedTiles, final int[] expectedCycles) {
+        if (size() != expectedCycles.length) {
+            throw new PicardException("Expected CycledIlluminaFileMap to contain " + expectedCycles.length + " cycles but only " + size() + " were found!");
+        }
+        if (this.firstEntry().getValue().size() != expectedTiles.size()) {
+            throw new PicardException("Expected CycledIlluminaFileMap to contain " + expectedTiles.size()
+                    + " tiles but only " + this.firstEntry().getValue().size() + " were found!");
+        }
+    }
+
+}
diff --git a/src/java/picard/illumina/parser/FilterParser.java b/src/java/picard/illumina/parser/FilterParser.java
new file mode 100644
index 0000000..09b07c3
--- /dev/null
+++ b/src/java/picard/illumina/parser/FilterParser.java
@@ -0,0 +1,83 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2012 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.illumina.parser;
+
+import htsjdk.samtools.util.CloseableIterator;
+import picard.illumina.parser.readers.FilterFileReader;
+
+import java.io.File;
+import java.util.Collections;
+import java.util.Set;
+
+import static htsjdk.samtools.util.CollectionUtil.makeSet;
+
+/**
+ * Sequentially parses filter files for the given tiles.  One tile is processed at a time.  IlluminaDataProvider should
+ * be the ONLY client class for this class except for test classes.  For more information on the filterFile format
+ * and reading it, see FilterFileReader.
+ */
+class FilterParser extends PerTileParser<PfData> {
+    private static Set<IlluminaDataType> supportedTypes = Collections.unmodifiableSet(makeSet(IlluminaDataType.PF));
+
+    public FilterParser(final IlluminaFileMap tilesToFiles){
+        super(tilesToFiles);
+    }
+
+    public FilterParser(final IlluminaFileMap tilesToFiles, final int startingTile){
+        super(tilesToFiles, startingTile);
+    }
+
+    /** Wrap a filterFile reader in a closeable iterator and return it*/
+    @Override
+    protected CloseableIterator<PfData> makeTileIterator(final File iterator) {
+        return new CloseableIterator<PfData>() {
+            private FilterFileReader reader = new FilterFileReader(iterator);
+
+            public void close() {
+                reader = null;
+            }
+
+            public boolean hasNext() {
+                return reader.hasNext();
+            }
+
+            public PfData next() {
+                final boolean nextValue = reader.next();
+                return new PfData() {
+                    public boolean isPf() {
+                        return nextValue;
+                    }
+                };
+            }
+
+            public void remove() {
+                throw new UnsupportedOperationException();
+            }
+        };
+    }
+
+    public Set<IlluminaDataType> supportedTypes() {
+        return supportedTypes;
+    }
+}
diff --git a/src/java/picard/illumina/parser/FourChannelIntensityData.java b/src/java/picard/illumina/parser/FourChannelIntensityData.java
new file mode 100644
index 0000000..a097ed6
--- /dev/null
+++ b/src/java/picard/illumina/parser/FourChannelIntensityData.java
@@ -0,0 +1,103 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.illumina.parser;
+
+import picard.PicardException;
+
+import java.util.Arrays;
+
+/**
+ * Holds a 4 short values for each cycle of a read.  This is used, to store raw intensities,
+ * processed intensities, or noise.  Note that for Illumina 1.1 and 1.3, these are floating point values,
+ * but are truncated to shorts to store here.
+ *
+ * Indices into the channel arrays are zero-based, i.e. the first cycle is 0.
+ *
+ * @author jburke at broadinstitute.org
+ */
+public class FourChannelIntensityData {
+    /**
+     * Major index: channel number; minor index: cycle number (zero based)
+     */
+    private short [] a;
+    private short [] c;
+    private short [] g;
+    private short [] t;
+
+    public FourChannelIntensityData(final int numberOfCycles) {
+        a = new short[numberOfCycles];
+        c = new short[numberOfCycles];
+        g = new short[numberOfCycles];
+        t = new short[numberOfCycles];
+    }
+
+    public short[] getChannel(final IntensityChannel channel) {
+        switch(channel) {
+            case A: return a;
+            case C: return c;
+            case G: return g;
+            case T: return t;
+        }
+
+        throw new PicardException("Unexpected intensity channel " + channel);
+    }
+
+    public short[] getA() {
+        return a;
+    }
+
+    public short[] getC() {
+        return c;
+    }
+
+    public short[] getG() {
+        return g;
+    }
+
+    public short[] getT() {
+        return t;
+    }
+
+    @Override
+    public boolean equals(final Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+
+        final FourChannelIntensityData that = (FourChannelIntensityData)o;
+        return Arrays.equals(this.a, that.a) &&
+               Arrays.equals(this.c, that.c) &&
+               Arrays.equals(this.g, that.g) &&
+               Arrays.equals(this.t, that.t);
+    }
+
+    @Override
+    public int hashCode() {
+        int ret = 0;
+        ret = ret * 31 + Arrays.hashCode(a);
+        ret += ret * 31 + Arrays.hashCode(c);
+        ret += ret * 31 + Arrays.hashCode(g);
+        ret += ret * 31 + Arrays.hashCode(t);
+        return ret;
+    }
+}
diff --git a/src/java/picard/illumina/parser/IlluminaData.java b/src/java/picard/illumina/parser/IlluminaData.java
new file mode 100644
index 0000000..3303825
--- /dev/null
+++ b/src/java/picard/illumina/parser/IlluminaData.java
@@ -0,0 +1,69 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.illumina.parser;
+
+/**
+ * There is one IlluminaData sub-interface for each IlluminaDataType enum value.
+ * IlluminaParsers must return objects implementing at least one of the interfaces below.
+ * IlluminaDataProvider will take IlluminaData objects created by IlluminaParsers and cast them to the types they
+ * implement and these objects will then be used to populate the ClusterData object.
+ *
+ * @author jburke at broadinstitute.org
+ */
+interface IlluminaData {
+}
+
+// Note: PositionalData was spun out this round but since every parser has means of retrieving lane/tile from the
+// file name, we are going to move lane/tile to be queryable from parsers in future revisions and therefore if you
+// want lane/tile info you will NOT have to parse one of the Positional Data formats (pos, locs, clocs, qseqs)
+interface PositionalData extends IlluminaData {
+    public int getXCoordinate();
+    public int getYCoordinate();
+}
+
+interface BaseData extends IlluminaData {
+    public byte [][] getBases();
+}
+
+interface QualityData extends IlluminaData {
+    public byte [][] getQualities();
+}
+
+interface NoiseData extends IlluminaData {
+    public FourChannelIntensityData [] getNoise();
+}
+
+interface RawIntensityData extends IlluminaData{
+    public FourChannelIntensityData [] getRawIntensities();
+}
+
+interface PfData extends IlluminaData {
+    public boolean isPf();
+}
+
+interface BarcodeData extends IlluminaData {
+    public String getBarcode();
+}
+
+
diff --git a/src/java/picard/illumina/parser/IlluminaDataProvider.java b/src/java/picard/illumina/parser/IlluminaDataProvider.java
new file mode 100644
index 0000000..fc3a327
--- /dev/null
+++ b/src/java/picard/illumina/parser/IlluminaDataProvider.java
@@ -0,0 +1,230 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.illumina.parser;
+
+import picard.PicardException;
+
+import java.io.File;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.NoSuchElementException;
+import java.util.Set;
+
+/**
+ * Parse various formats and versions of Illumina Basecall files, and use them the to populate
+ * ClusterData objects.  Clients of this code should use IlluminaDataProviderFactory to create an IlluminaDataProvider.
+ * IlluminaDataProvider is immutable after construction.
+ *
+ * @author jburke at broadinstitute.org
+ */
+public class IlluminaDataProvider implements Iterator<ClusterData>, Iterable<ClusterData> {
+
+    /** 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 */
+    private final IlluminaParser[] parsers;
+
+    /**
+     * for each parser in this.parsers there is an array of IlluminaDataTypes that specifies what datatypes that parser is providing in
+     * this particular run.  A parser may be able to provide data types which may not be listed here because client code may not
+     * have specified these data types
+     */
+    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.
+     *
+     * @param basecallDirectory For error reporting only.
+     * @param lane              For error reporting only.
+     */
+    IlluminaDataProvider(final OutputMapping outputMapping,
+                         final Map<IlluminaParser, Set<IlluminaDataType>> parsersToDataTypes,
+                         final File basecallDirectory, final int lane) {
+        this.basecallDirectory = basecallDirectory;
+        this.lane = lane;
+        numReads = outputMapping.numOutputReads();
+
+        final int numParsers = parsersToDataTypes.size();
+        if (numParsers == 0) {
+            throw new PicardException("There were 0 parsers passed to IlluminaDataProvider!");
+        }
+
+        int i = 0;
+        parsers = new IlluminaParser[numParsers];
+        dataTypes = new IlluminaDataType[numParsers][];
+        for (final Map.Entry<IlluminaParser, Set<IlluminaDataType>> pToD : parsersToDataTypes.entrySet()) {
+            parsers[i] = pToD.getKey();
+            final Set<IlluminaDataType> dts = pToD.getValue();
+            dataTypes[i] = new IlluminaDataType[dts.size()];
+            dts.toArray(dataTypes[i++]);
+        }
+
+        this.outputReadTypes = new ReadType[numReads];
+        i = 0;
+        for (final ReadDescriptor rd : outputMapping.getOutputDescriptors()) {
+            outputReadTypes[i++] = rd.type;
+        }
+    }
+
+    /**
+     * @return True if we have more clusters to read
+     */
+    public boolean hasNext() {
+        final boolean more = parsers[0].hasNext();
+        if (!more) {
+            for (int i = 1; i < parsers.length; i++) {
+                if (parsers[i].hasNext()) {
+                    throw new PicardException("Unequal length Illumina files in " + basecallDirectory + ", lane " + lane + ". Failing parser: " + parsers[i].getClass().getName());
+                }
+            }
+        }
+
+        return more;
+    }
+
+    /**
+     * @return Current cluster data populated with only the data that matches one of the data types in dataTypes.
+     */
+    public ClusterData next() {
+        if (!hasNext()) {
+            throw new NoSuchElementException();
+        }
+
+        final ClusterData cluster = new ClusterData(outputReadTypes);
+        cluster.setLane(lane);
+
+        //IMPORTANT NOTE: This assignment to tile MUST happen BEFORE the loop below because getTileOfNextCluster
+        //returns the tile for the next cluster and if we call this after the loop then whenever we pass a tile
+        //boundary the last cluster in the previous tile will have the wrong tile number
+        cluster.setTile(parsers[0].getTileOfNextCluster());
+
+        for (int i = 0; i < parsers.length; i++) {
+            final IlluminaData ilData = parsers[i].next();
+            for (final IlluminaDataType ilDataType : dataTypes[i]) {
+                switch (ilDataType) {
+                    case Position:
+                        addData(cluster, (PositionalData) ilData);
+                        break;
+
+                    case PF:
+                        addData(cluster, (PfData) ilData);
+                        break;
+
+                    case Barcodes:
+                        addData(cluster, (BarcodeData) ilData);
+                        break;
+
+                    case BaseCalls:
+                        addReadData(cluster, numReads, (BaseData) ilData);
+                        break;
+
+                    case QualityScores:
+                        addReadData(cluster, numReads, (QualityData) ilData);
+                        break;
+
+                    default:
+                        throw new PicardException("Unknown data type " + ilDataType + " requested by IlluminaDataProviderFactory");
+                }
+            }
+        }
+
+        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. */
+    public void seekToTile(final int oneBasedTileNumber) {
+        for (final IlluminaParser parser : parsers) {
+            parser.seekToTile(oneBasedTileNumber);
+        }
+    }
+
+    @Override
+    public Iterator<ClusterData> iterator() {
+        return this;
+    }
+
+    public void close() {
+        for (final IlluminaParser parser : parsers) {
+            parser.close();
+        }
+    }
+}
diff --git a/src/java/picard/illumina/parser/IlluminaDataProviderFactory.java b/src/java/picard/illumina/parser/IlluminaDataProviderFactory.java
new file mode 100644
index 0000000..ea7f536
--- /dev/null
+++ b/src/java/picard/illumina/parser/IlluminaDataProviderFactory.java
@@ -0,0 +1,389 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2012 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.illumina.parser;
+
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.StringUtil;
+import picard.PicardException;
+import picard.illumina.parser.IlluminaFileUtil.SupportedIlluminaFormat;
+import picard.illumina.parser.readers.BclQualityEvaluationStrategy;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.SortedSet;
+import java.util.TreeSet;
+
+import static htsjdk.samtools.util.CollectionUtil.makeList;
+import static htsjdk.samtools.util.CollectionUtil.makeSet;
+
+/**
+ * IlluminaDataProviderFactory accepts options for parsing Illumina data files for a lane and creates an
+ * IlluminaDataProvider, an iterator over the ClusterData for that lane, which utilizes these options.
+ * <p/>
+ * <p/>
+ * Note: Since we tend to use IlluminaDataProviderFactory in multithreaded environments (e.g. we call makeDataProvider
+ * in a different thread per tile in IlluminaBasecallsToSam).  I've made it essentially immutable.  makeDataProvider/getTiles
+ * are now idempotent (well as far as IlluminaDataProviderFactory is concerned, many file handles and other things are
+ * opened when makeDataProvider is called).  We may in the future want dataTypes to be provided to the
+ * makeDataProvider factory methods so configuration is not done multiple times for the same basecallDirectory in
+ * client code.
+ *
+ * @author jburke at broadinstitute.org
+ */
+public class IlluminaDataProviderFactory {
+    private static final Log log = Log.getInstance(IlluminaDataProviderFactory.class);
+
+    /**
+     * A map of data types to a list of file formats in the order in which we prefer those file types (E.g. we would rather parse Bcls before QSeqs, Locs files before Clocs files ...)
+     * 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<IlluminaDataType, List<SupportedIlluminaFormat>> DATA_TYPE_TO_PREFERRED_FORMATS = new HashMap<IlluminaDataType, List<SupportedIlluminaFormat>>();
+
+    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,
+         * see determineFormats
+         */
+        DATA_TYPE_TO_PREFERRED_FORMATS.put(IlluminaDataType.BaseCalls, makeList(
+                SupportedIlluminaFormat.MultiTileBcl, SupportedIlluminaFormat.Bcl));
+        DATA_TYPE_TO_PREFERRED_FORMATS.put(IlluminaDataType.QualityScores, makeList(
+                SupportedIlluminaFormat.MultiTileBcl, SupportedIlluminaFormat.Bcl));
+        DATA_TYPE_TO_PREFERRED_FORMATS.put(IlluminaDataType.PF, makeList(
+                SupportedIlluminaFormat.MultiTileFilter, SupportedIlluminaFormat.Filter));
+        DATA_TYPE_TO_PREFERRED_FORMATS.put(IlluminaDataType.Position, makeList(
+                SupportedIlluminaFormat.MultiTileLocs, SupportedIlluminaFormat.Locs, SupportedIlluminaFormat.Clocs,
+                SupportedIlluminaFormat.Pos));
+
+        DATA_TYPE_TO_PREFERRED_FORMATS.put(IlluminaDataType.Barcodes, makeList(SupportedIlluminaFormat.Barcode));
+    }
+
+    // The following properties must be specified by caller.
+    /** basecallDirectory holds QSeqs or bcls * */
+    private final File basecallDirectory;
+    private final File barcodesDirectory;
+    private final int lane;
+
+    /**
+     * Whether or not to apply EAMSS filtering if parsing BCLs for the bases and quality scores.
+     */
+    private boolean applyEamssFiltering = true;
+
+    /**
+     * A Map of file formats to the dataTypes they will provide for this run.
+     */
+    protected final Map<SupportedIlluminaFormat, Set<IlluminaDataType>> formatToDataTypes;
+
+    /** Basecall Directory/lane parameterized util for finding IlluminaFiles */
+    private final IlluminaFileUtil fileUtil;
+
+
+    private final List<Integer> availableTiles;
+
+    private final OutputMapping outputMapping;
+    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 barcodesDirectory The barcodesDirectory with barcode files extracted by 'ExtractIlluminaBarcodes' (optional, use basecallDirectory if not specified)
+     * @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, File barcodesDirectory, final int lane,
+                                       final ReadStructure readStructure,
+                                       final BclQualityEvaluationStrategy bclQualityEvaluationStrategy, final IlluminaDataType... dataTypesArg) {
+        this.basecallDirectory = basecallDirectory;
+        this.barcodesDirectory = barcodesDirectory;
+        this.bclQualityEvaluationStrategy = bclQualityEvaluationStrategy;
+
+        this.lane = lane;
+        /* The types of data that will be returned by any IlluminaDataProviders created by this factory.
+
+      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<IlluminaDataType> dataTypes = Collections.unmodifiableSet(new HashSet<IlluminaDataType>(Arrays.asList(dataTypesArg)));
+
+        if (dataTypes.isEmpty()) {
+            throw new PicardException("No data types have been specified for basecall output " + basecallDirectory +
+                    ", lane " + lane);
+        }
+
+        this.fileUtil = new IlluminaFileUtil(basecallDirectory, barcodesDirectory, lane);
+
+        //find what request IlluminaDataTypes we have files for and select the most preferred file format available for that type
+        formatToDataTypes = determineFormats(dataTypes, fileUtil);
+
+        //find if we have any IlluminaDataType with NO available file formats and, if any exist, throw an exception
+        final Set<IlluminaDataType> unmatchedDataTypes = findUnmatchedTypes(dataTypes, formatToDataTypes);
+        if (unmatchedDataTypes.size() > 0) {
+            throw new PicardException("Could not find a format with available files for the following data types: " + StringUtil.join(", ", new ArrayList<IlluminaDataType>(unmatchedDataTypes)));
+        }
+
+        log.debug("The following file formats will be used by IlluminaDataProvider: " + StringUtil.join("," + formatToDataTypes.keySet()));
+
+        availableTiles = fileUtil.getActualTiles(new ArrayList<SupportedIlluminaFormat>(formatToDataTypes.keySet()));
+        if (availableTiles.isEmpty()) {
+            throw new PicardException("No available tiles were found, make sure that " + basecallDirectory.getAbsolutePath() + " has a lane " + lane);
+        }
+
+        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
+     *
+     * @return The ReadStructure describing the output cluster data
+     */
+    public ReadStructure getOutputReadStructure() {
+        return outputMapping.getOutputReadStructure();
+    }
+
+    /**
+     * Return the list of tiles available for this flowcell and lane.  These are in ascending numerical order.
+     *
+     * @return List of all tiles available for this flowcell and lane.
+     */
+    public List<Integer> getAvailableTiles() {
+        return availableTiles;
+    }
+
+    /** 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.
+     *
+     * @return An iterator for reading the Illumina basecall output for the lane specified in the ctor.
+     */
+    public IlluminaDataProvider makeDataProvider() {
+        return makeDataProvider(null);
+    }
+
+    /**
+     * Call this method to create a ClusterData iterator over the specified tiles.
+     *
+     * @return An iterator for reading the Illumina basecall output for the lane specified in the constructor.
+     */
+    public IlluminaDataProvider makeDataProvider(List<Integer> requestedTiles) {
+        if (requestedTiles == null) {
+            requestedTiles = availableTiles;
+        } else {
+            if (requestedTiles.size() == 0) {
+                throw new PicardException("Zero length tile list supplied to makeDataProvider, you must specify at least 1 tile OR pass NULL to use all available tiles");
+            }
+        }
+
+        final Map<IlluminaParser, Set<IlluminaDataType>> parsersToDataType = new HashMap<IlluminaParser, Set<IlluminaDataType>>();
+        for (final Map.Entry<SupportedIlluminaFormat, Set<IlluminaDataType>> fmToDt : formatToDataTypes.entrySet()) {
+            parsersToDataType.put(makeParser(fmToDt.getKey(), requestedTiles), fmToDt.getValue());
+        }
+
+        log.debug("The following parsers will be used by IlluminaDataProvider: " + StringUtil.join("," + parsersToDataType.keySet()));
+
+        return new IlluminaDataProvider(outputMapping, parsersToDataType, basecallDirectory, lane);
+    }
+
+    /**
+     * Given a set of formats to data types they provide, find any requested data types that do not have a format associated with them and return them
+     *
+     * @param requestedDataTypes   Data types that need to be provided
+     * @param formatToMatchedTypes A map of file formats to data types that will support them
+     * @return The data types that go unsupported by the formats found in formatToMatchedTypes
+     */
+    public static Set<IlluminaDataType> findUnmatchedTypes(final Set<IlluminaDataType> requestedDataTypes, final Map<SupportedIlluminaFormat, Set<IlluminaDataType>> formatToMatchedTypes) {
+        final Set<IlluminaDataType> copiedTypes = new HashSet<IlluminaDataType>(requestedDataTypes);
+        for (final Set<IlluminaDataType> matchedTypes : formatToMatchedTypes.values()) {
+            copiedTypes.removeAll(matchedTypes);
+        }
+
+        return copiedTypes;
+    }
+
+    /**
+     * For all requestedDataTypes return a map of file format to set of provided data types that covers as many requestedDataTypes as possible and
+     * chooses the most preferred available formats possible
+     *
+     * @param requestedDataTypes Data types to be provided
+     * @param fileUtil           A file util for the lane/directory we wish to provide data for
+     * @return A Map<Supported file format, Set of data types file format provides>
+     */
+    public static Map<SupportedIlluminaFormat, Set<IlluminaDataType>> determineFormats(final Set<IlluminaDataType> requestedDataTypes, final IlluminaFileUtil fileUtil) {
+        //For predictable ordering and uniqueness only, put the requestedDataTypes into a treeSet
+        final SortedSet<IlluminaDataType> toSupport = new TreeSet<IlluminaDataType>(requestedDataTypes);
+        final Map<SupportedIlluminaFormat, Set<IlluminaDataType>> fileTypeToDataTypes = new HashMap<SupportedIlluminaFormat, Set<IlluminaDataType>>();
+        final Map<IlluminaDataType, SupportedIlluminaFormat> dataTypeToFormat = new HashMap<IlluminaDataType, SupportedIlluminaFormat>();
+
+        for (final IlluminaDataType ts : toSupport) {
+            final SupportedIlluminaFormat preferredFormat = findPreferredAvailableFormat(ts, fileUtil);
+            if (preferredFormat != null) {
+                dataTypeToFormat.put(ts, preferredFormat);
+            }
+        }
+
+        for (final IlluminaDataType dt : toSupport) {
+            final SupportedIlluminaFormat format = dataTypeToFormat.get(dt);
+
+            if (format != null) {
+                if (fileTypeToDataTypes.containsKey(format)) {
+                    fileTypeToDataTypes.get(format).add(dt);
+                } else {
+                    fileTypeToDataTypes.put(dataTypeToFormat.get(dt), makeSet(dt));
+                }
+            }
+        }
+
+        return fileTypeToDataTypes;
+    }
+
+    /**
+     * Given a data type find the most preferred file format that also has files available
+     *
+     * @param dt       Type of desired data
+     * @param fileUtil Util for the lane/directory in which we will find data
+     * @return The file format that is "most preferred" (i.e. fastest to parse/smallest in memory)
+     */
+    private static SupportedIlluminaFormat findPreferredAvailableFormat(final IlluminaDataType dt, final IlluminaFileUtil fileUtil) {
+        return findPreferredFormat(dt, fileUtil, true);
+    }
+
+    /**
+     * Given a data type find the most preferred file format even if files are not available
+     *
+     * @param dt       Type of desired data
+     * @param fileUtil Util for the lane/directory in which we will find data
+     * @return The file format that is "most preferred" (i.e. fastest to parse/smallest in memory)
+     */
+    public static SupportedIlluminaFormat findPreferredFormat(final IlluminaDataType dt, final IlluminaFileUtil fileUtil) {
+        return findPreferredFormat(dt, fileUtil, false);
+    }
+
+    private static SupportedIlluminaFormat findPreferredFormat(final IlluminaDataType dt, final IlluminaFileUtil fileUtil,
+                                                               final boolean checkAvailable) {
+        final List<SupportedIlluminaFormat> preferredFormats = DATA_TYPE_TO_PREFERRED_FORMATS.get(dt);
+        SupportedIlluminaFormat format = null;
+        for (int i = 0; i < preferredFormats.size() && format == null; i++) {
+            if (checkAvailable && fileUtil.getUtil(preferredFormats.get(i)).filesAvailable()) {
+                format = preferredFormats.get(i);
+            } else if (!checkAvailable) {
+                format = preferredFormats.get(i);
+            }
+        }
+
+        return format;
+    }
+
+    /**
+     * There are multiple parsers for the same IlluminaDataType (e.g. BCLParser and QSeqParser).  Instantiate an instance of the preferred parser for
+     * the given data type with the information available and return it.
+     *
+     * @param format         The type of data we want to parse
+     * @param requestedTiles The requestedTiles over which we will be parsing data
+     * @return A parser that will parse dataType data over the given requestedTiles and cycles and output it in groupings of the sizes specified in outputLengths
+     */
+    private IlluminaParser makeParser(final SupportedIlluminaFormat format, final List<Integer> requestedTiles) {
+        final IlluminaParser parser;
+        switch (format) {
+            case Barcode:
+                parser = new BarcodeParser(((PerTileFileUtil)fileUtil.getUtil(SupportedIlluminaFormat.Barcode)).getFiles(requestedTiles));
+                break;
+
+            case 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);
+                break;
+            }
+
+            case Filter:
+                final IlluminaFileMap filterFileMap = ((PerTileFileUtil)fileUtil.getUtil(SupportedIlluminaFormat.Filter)).getFiles(requestedTiles);
+                parser = new FilterParser(filterFileMap);
+                break;
+
+            case Locs:
+            case Clocs:
+            case Pos:
+                final PerTileFileUtil fu = (PerTileFileUtil) fileUtil.getUtil(format);
+                parser = new PosParser(fu.getFiles(requestedTiles), format);
+                break;
+
+            case MultiTileFilter:
+                parser = ((MultiTileFilterFileUtil)fileUtil.getUtil(SupportedIlluminaFormat.MultiTileFilter)).makeParser(requestedTiles);
+                break;
+
+            case MultiTileLocs:
+                parser = ((MultiTileLocsFileUtil)fileUtil.getUtil(SupportedIlluminaFormat.MultiTileLocs)).makeParser(requestedTiles);
+                break;
+
+            case MultiTileBcl: {
+                final MultiTileBclFileUtil util = (MultiTileBclFileUtil) fileUtil.getUtil(SupportedIlluminaFormat.MultiTileBcl);
+                final CycleIlluminaFileMap bclFileMap = util.getFiles(requestedTiles, outputMapping.getOutputCycles());
+                bclFileMap.assertValid(requestedTiles, outputMapping.getOutputCycles());
+                parser = new MultiTileBclParser(basecallDirectory, lane, bclFileMap, outputMapping,
+                        this.applyEamssFiltering, bclQualityEvaluationStrategy, util.tileIndex);
+                break;
+            }
+
+            default:
+                throw new PicardException("Unrecognized data type(" + format + ") found by IlluminaDataProviderFactory!");
+        }
+
+        return parser;
+    }
+}
diff --git a/src/java/picard/illumina/parser/IlluminaDataType.java b/src/java/picard/illumina/parser/IlluminaDataType.java
new file mode 100644
index 0000000..c67327f
--- /dev/null
+++ b/src/java/picard/illumina/parser/IlluminaDataType.java
@@ -0,0 +1,35 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.illumina.parser;
+
+/**
+ * List of data types of interest when parsing Illumina data.  Because different Illumina versions
+ * splatter data of these types across different files, by specifying only the data types of interest,
+ * the number of files read can be reduced.
+ * @author jburke at broadinstitute.org
+ */
+public enum IlluminaDataType {
+    Position, BaseCalls, QualityScores, PF, Barcodes
+}
diff --git a/src/java/picard/illumina/parser/IlluminaFileMap.java b/src/java/picard/illumina/parser/IlluminaFileMap.java
new file mode 100644
index 0000000..83d0489
--- /dev/null
+++ b/src/java/picard/illumina/parser/IlluminaFileMap.java
@@ -0,0 +1,58 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2012 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.illumina.parser;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.TreeMap;
+
+/**
+ * For "non-cycle" files (files that have multiple cycles per file).  Maps a Tile -> File
+ * @author jburke at broadinstitute.org
+ */
+class IlluminaFileMap extends TreeMap<Integer, File> {
+
+    /** Return a file map that includes only the tiles listed */
+    public IlluminaFileMap keep(final List<Integer> tilesToKeep) {
+        final IlluminaFileMap fileMap = new IlluminaFileMap();
+        for(final Integer tile : tilesToKeep) {
+            final File file = this.get(tile);
+            if(file != null) {
+                fileMap.put(tile, file);
+            }
+        }
+        return fileMap;
+    }
+
+    /**
+     * Return the List of Files in order starting at the given tile and containing all files with tile numbers greater than startingTile that
+     * are within this map
+     * @param startingTile The first File in the returned list will correspond to this tile
+     * @return A List of files for all tiles >= startingTile that are contained in this FileMap
+     */
+    public List<File> getFilesStartingAt(final int startingTile) {
+        return new ArrayList<File>(this.tailMap(startingTile).values());
+    }
+}
diff --git a/src/java/picard/illumina/parser/IlluminaFileNotFoundException.java b/src/java/picard/illumina/parser/IlluminaFileNotFoundException.java
new file mode 100644
index 0000000..07f38b2
--- /dev/null
+++ b/src/java/picard/illumina/parser/IlluminaFileNotFoundException.java
@@ -0,0 +1,44 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.illumina.parser;
+
+import picard.PicardException;
+
+import java.io.File;
+
+/**
+ * @author jburke at broadinstitute.org
+ */
+class IlluminaFileNotFoundException extends PicardException {
+    public final File file;
+    public IlluminaFileNotFoundException(final File file, final String message) {
+        super(message);
+        this.file = file;
+    }
+
+    public IlluminaFileNotFoundException(final File file, final String message, final Throwable throwable) {
+        super(message, throwable);
+        this.file = file;
+    }
+}
diff --git a/src/java/picard/illumina/parser/IlluminaFileUtil.java b/src/java/picard/illumina/parser/IlluminaFileUtil.java
new file mode 100644
index 0000000..df3a91c
--- /dev/null
+++ b/src/java/picard/illumina/parser/IlluminaFileUtil.java
@@ -0,0 +1,263 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.illumina.parser;
+
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.IOUtil;
+import picard.PicardException;
+import picard.illumina.parser.fakers.BarcodeFileFaker;
+import picard.illumina.parser.fakers.BclFileFaker;
+import picard.illumina.parser.fakers.ClocsFileFaker;
+import picard.illumina.parser.fakers.FilterFileFaker;
+import picard.illumina.parser.fakers.LocsFileFaker;
+import picard.illumina.parser.fakers.PosFileFaker;
+import picard.illumina.parser.readers.TileMetricsOutReader;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeSet;
+import java.util.regex.Pattern;
+
+/**
+ * General utils for dealing with IlluminaFiles as well as utils for specific, support formats.
+ * This class contains utils that span across multiple Illumina files but it's primary intent
+ * was to provide support for basic file types.  Each supported file type can be accessed
+ * via a factory method (make<filetype>Ft).  When IlluminaFileUtil is created it is parameterized
+ * by basecallDir and lane and all IlluminaFileTypes created by IlluminaFileUtil will also be
+ * parameterized in this fashion.
+ *
+ * @author jburke at broadinstitute.org
+ */
+public class IlluminaFileUtil {
+    public static final Pattern CYCLE_SUBDIRECTORY_PATTERN = Pattern.compile("^C(\\d+)\\.1$");
+
+    public enum SupportedIlluminaFormat {
+        Bcl,
+        Locs,
+        Clocs,
+        Pos,
+        Filter,
+        Barcode,
+        MultiTileFilter,
+        MultiTileLocs,
+        MultiTileBcl
+    }
+
+    private final File basecallLaneDir;
+    private final File intensityLaneDir;
+    private final File basecallDir;
+    private final File barcodeDir;
+    private final File intensityDir;
+    private final int lane;
+
+    private final File tileMetricsOut;
+    private final Map<SupportedIlluminaFormat, ParameterizedFileUtil> utils = new HashMap<SupportedIlluminaFormat, ParameterizedFileUtil>();
+
+    public IlluminaFileUtil(final File basecallDir, final int lane) {
+		this(basecallDir, null, lane);
+	}
+
+
+	public IlluminaFileUtil(final File basecallDir, File barcodeDir, final int lane) {
+        this.lane = lane;
+        this.basecallDir = basecallDir;
+        this.barcodeDir = barcodeDir;
+        this.intensityDir = basecallDir.getParentFile();
+        final File dataDir = intensityDir.getParentFile();
+        this.basecallLaneDir = new File(basecallDir, longLaneStr(lane));
+        this.intensityLaneDir = new File(intensityDir, longLaneStr(lane));
+        final File interopDir = new File(dataDir.getParentFile(), "InterOp");
+        tileMetricsOut = new File(interopDir, "TileMetricsOut.bin");
+    }
+
+
+    /**
+     * Return the lane we're inspecting
+     */
+    public int getLane() {
+        return lane;
+    }
+
+    /**
+     * Given a file type, get the Parameterized File Util object associated with it
+     */
+    public ParameterizedFileUtil getUtil(final SupportedIlluminaFormat format) {
+        ParameterizedFileUtil parameterizedFileUtil = utils.get(format);
+        if (parameterizedFileUtil == null) {
+            switch (format) {
+                case Bcl:
+                    final ParameterizedFileUtil bclFileUtil = new PerTilePerCycleFileUtil(".bcl", basecallLaneDir, new BclFileFaker(), lane);
+                    final ParameterizedFileUtil gzBclFileUtil = new PerTilePerCycleFileUtil(".bcl.gz", basecallLaneDir, new BclFileFaker(), lane);
+                    if (bclFileUtil.filesAvailable() && !gzBclFileUtil.filesAvailable()) {
+                        parameterizedFileUtil = bclFileUtil;
+                    } else if (!bclFileUtil.filesAvailable() && gzBclFileUtil.filesAvailable()) {
+                        parameterizedFileUtil = gzBclFileUtil;
+                    } else if (!bclFileUtil.filesAvailable() && !gzBclFileUtil.filesAvailable()) {
+                        parameterizedFileUtil = bclFileUtil;
+                    } else {
+                        throw new PicardException(
+                                "Not all BCL files in " + basecallLaneDir.getAbsolutePath() + " have the same extension!");
+                    }
+                    utils.put(SupportedIlluminaFormat.Bcl, parameterizedFileUtil);
+                    break;
+                case Locs:
+                    parameterizedFileUtil = new PerTileFileUtil(".locs", intensityLaneDir, new LocsFileFaker(), lane);
+                    utils.put(SupportedIlluminaFormat.Locs, parameterizedFileUtil);
+                    break;
+                case Clocs:
+                    parameterizedFileUtil = new PerTileFileUtil(".clocs", intensityLaneDir, new ClocsFileFaker(), lane);
+                    utils.put(SupportedIlluminaFormat.Clocs, parameterizedFileUtil);
+                    break;
+                case Pos:
+                    parameterizedFileUtil = new PerTileFileUtil("_pos.txt", intensityDir, new PosFileFaker(), lane);
+                    utils.put(SupportedIlluminaFormat.Pos, parameterizedFileUtil);
+                    break;
+                case Filter:
+                    parameterizedFileUtil = new PerTileFileUtil(".filter", basecallLaneDir, new FilterFileFaker(), lane);
+                    utils.put(SupportedIlluminaFormat.Filter, parameterizedFileUtil);
+                    break;
+                case Barcode:
+                    parameterizedFileUtil = new PerTileFileUtil("_barcode.txt", barcodeDir != null ? barcodeDir : basecallDir, new BarcodeFileFaker(), lane, false);
+                    utils.put(SupportedIlluminaFormat.Barcode, parameterizedFileUtil);
+                    break;
+                case MultiTileFilter:
+                    parameterizedFileUtil = new MultiTileFilterFileUtil(basecallLaneDir, lane);
+                    utils.put(SupportedIlluminaFormat.MultiTileFilter, parameterizedFileUtil);
+                    break;
+                case MultiTileLocs:
+                    parameterizedFileUtil = new MultiTileLocsFileUtil(new File(intensityDir, basecallLaneDir.getName()), basecallLaneDir, lane);
+                    utils.put(SupportedIlluminaFormat.MultiTileLocs, parameterizedFileUtil);
+                    break;
+                case MultiTileBcl:
+                    parameterizedFileUtil = new MultiTileBclFileUtil(basecallLaneDir, lane);
+                    utils.put(SupportedIlluminaFormat.MultiTileBcl, parameterizedFileUtil);
+                    break;
+            }
+        }
+        return parameterizedFileUtil;
+    }
+
+    /**
+     * Return the list of tiles we would expect for this lane based on the metrics found in InterOp/TileMetricsOut.bin
+     */
+    public List<Integer> getExpectedTiles() {
+        IOUtil.assertFileIsReadable(tileMetricsOut);
+        //Used just to ensure predictable ordering
+        final TreeSet<Integer> expectedTiles = new TreeSet<Integer>();
+
+        final Iterator<TileMetricsOutReader.IlluminaTileMetrics> tileMetrics = new TileMetricsOutReader(tileMetricsOut);
+        while (tileMetrics.hasNext()) {
+            final TileMetricsOutReader.IlluminaTileMetrics tileMetric = tileMetrics.next();
+
+            if (tileMetric.getLaneNumber() == lane) {
+                if (!expectedTiles.contains(tileMetric.getTileNumber())) {
+                    expectedTiles.add(tileMetric.getTileNumber());
+                }
+            }
+        }
+
+        CloserUtil.close(tileMetrics);
+        return new ArrayList<Integer>(expectedTiles);
+    }
+
+    /**
+     * Get the available tiles for the given formats, if the formats have tile lists that differ then
+     * throw an exception, if any of the format
+     */
+    public List<Integer> getActualTiles(final List<SupportedIlluminaFormat> formats) {
+        if (formats == null) {
+            throw new PicardException("Format list provided to getTiles was null!");
+        }
+
+        if (formats.size() == 0) {
+            throw new PicardException(
+                    "0 Formats were specified.  You need to specify at least SupportedIlluminaFormat to use getTiles");
+        }
+
+        final List<Integer> tiles = getUtil(formats.get(0)).getTiles();
+        for (int i = 1; i < formats.size(); i++) {
+            final List<Integer> fmTiles = getUtil(formats.get(i)).getTiles();
+            if (tiles.size() != fmTiles.size() || !tiles.containsAll(fmTiles)) {
+                throw new PicardException(
+                        "Formats do not have the same number of tiles! " + summarizeTileCounts(formats));
+            }
+        }
+
+        return tiles;
+    }
+
+    public File tileMetricsOut() {
+        return tileMetricsOut;
+    }
+
+    /*
+     * Return a string representing the Lane in the format "L00<lane>"
+     *
+     * @param lane The lane to transform
+     * @return A long string representation of the name
+     */
+    public static String longLaneStr(final int lane) {
+        String lstr = String.valueOf(lane);
+        final int zerosToAdd = 3 - lstr.length();
+
+        for (int i = 0; i < zerosToAdd; i++) {
+            lstr = "0" + lstr;
+        }
+        return "L" + lstr;
+    }
+
+
+    private String liToStr(final List<Integer> intList) {
+        if (intList.size() == 0) {
+            return "";
+        }
+
+        String summary = String.valueOf(intList.get(0));
+        for (int i = 1; i < intList.size(); i++) {
+            summary += ", " + String.valueOf(intList.get(i));
+        }
+
+        return summary;
+    }
+
+    private String summarizeTileCounts(final List<SupportedIlluminaFormat> formats) {
+        String summary;
+        ParameterizedFileUtil pfu = getUtil(formats.get(0));
+        List<Integer> tiles = pfu.getTiles();
+        summary = pfu.extension + "(" + liToStr(tiles) + ")";
+
+        for (final SupportedIlluminaFormat format : formats) {
+            pfu = getUtil(format);
+            tiles = pfu.getTiles();
+
+            summary += ", " + pfu.extension + "(" + liToStr(tiles) + ")";
+        }
+
+        return summary;
+    }
+}
diff --git a/src/java/picard/illumina/parser/IlluminaMetricsCode.java b/src/java/picard/illumina/parser/IlluminaMetricsCode.java
new file mode 100644
index 0000000..e0355a6
--- /dev/null
+++ b/src/java/picard/illumina/parser/IlluminaMetricsCode.java
@@ -0,0 +1,42 @@
+package picard.illumina.parser;
+
+/**
+ * Illumina's TileMetricsOut.bin file codes various metrics, both concrete (all density id's are code 100) or as a base code
+ * (e.g. phasing values are computed from a base of 200).
+ *
+ * @author jgentry
+ */
+public enum IlluminaMetricsCode {
+    DENSITY_ID(100),
+    CLUSTER_ID(102),
+    PHASING_BASE(200),
+    PREPHASING_BASE(201);
+
+    private final int metricsCode;
+
+    IlluminaMetricsCode(final int metricsCode) {
+        this.metricsCode = metricsCode;
+    }
+
+    /**
+     * Phasing codes are between 200 and 299 (inclusive). Phasing codes are defined as being
+     * (200 + ((N - 1) * 2)) for (a 0-based) read descriptor N (i.e., 200, 202, 204, etc.) Prephasing codes are defined
+     * as being (201 + ((N - 1) * 2)) for read descriptor N (i.e., 201, 203, 205, etc.). So for a 101T8B101T read
+     * structure, there will be phasing codes of 200, 202 and 204 and prephasing codes of 201, 203, 205.
+     */
+    public static int getPhasingCode(final int readDescriptorIndex, final IlluminaMetricsCode phasingType) {
+        if (!isPhasing(phasingType)) {
+            throw new IllegalArgumentException("phasingType must be PHASING_BASE or PREPHASING_BASE");
+        }
+
+        return (phasingType.getMetricsCode() + (readDescriptorIndex * 2));
+    }
+
+    public static boolean isPhasing(final IlluminaMetricsCode metricsCode) {
+        return (metricsCode.equals(PHASING_BASE) || metricsCode.equals(PREPHASING_BASE));
+    }
+
+    public int getMetricsCode() {
+        return metricsCode;
+    }
+}
diff --git a/src/java/picard/illumina/parser/IlluminaParser.java b/src/java/picard/illumina/parser/IlluminaParser.java
new file mode 100644
index 0000000..c97e4cb
--- /dev/null
+++ b/src/java/picard/illumina/parser/IlluminaParser.java
@@ -0,0 +1,75 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.illumina.parser;
+
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Interface for classes that parse information out of the Illumina Pipeline
+ *
+ * @author jburke at broadinstitute.org
+ */
+interface IlluminaParser<DATA_TYPE extends IlluminaData> extends Iterator<DATA_TYPE> {
+    /** Jump so that the next record returned will be from the specified tile. */
+    void seekToTile(int oneBasedTileNumber);
+
+    /**
+     * Read the next read's set of data and set it into the provided data object.  The object must have
+     * the appropriate IlluminaEndData objects set into it for first end, second end, barcode.
+     */
+    DATA_TYPE next();
+
+    /**
+     * Is there a DATA_TYPE object for another cluster remaining.
+     *
+     * @return TRUE if there is a DATA_TYPE object for the next cluster that can be provided by
+     * next
+     */
+    boolean hasNext();
+
+    /**
+     * Get the tile for the NEXT DATA_TYPE object that will be returned by this parser.  This should
+     * be called BEFORE next if you want the tile for the value returned by next
+     */
+    public int getTileOfNextCluster();
+
+    /**
+     * Given the expected tiles and cycles for this run, make sure this parser can provide data for
+     * all tiles/cycles or throws an exception if it's missing any required data or data structures
+     * it relies on do not disagree with the provided tiles/cycles
+     *
+     * @param tiles  The number of tiles in the current run
+     * @param cycles The number of cycles in the current run
+     */
+    void verifyData(final List<Integer> tiles, final int[] cycles);
+
+    /** The DataTypes that this parser can provide */
+    Set<IlluminaDataType> supportedTypes();
+
+    void close();
+
+}
diff --git a/src/java/picard/illumina/parser/IlluminaTextIterator.java b/src/java/picard/illumina/parser/IlluminaTextIterator.java
new file mode 100644
index 0000000..30474c4
--- /dev/null
+++ b/src/java/picard/illumina/parser/IlluminaTextIterator.java
@@ -0,0 +1,121 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.illumina.parser;
+
+import htsjdk.samtools.util.CloserUtil;
+import picard.PicardException;
+import picard.util.BasicInputParser;
+
+import java.io.File;
+import java.util.Iterator;
+import java.util.List;
+import java.util.NoSuchElementException;
+
+
+/**
+ * Abstract class for parsing text-based whitespace-delimited Illumina output files, organized
+ * by tile.  Concrete implementations must call setFiles() in order to provide the list of files
+ * to be iterated over.
+ * 
+ * @author jburke at broadinstitute.org
+ */
+class IlluminaTextIterator implements Iterator<String[]> {
+
+    // Location of illumina output files to be parsed
+    private final int lane;
+    private int currentTile = 0;
+
+    // List of files of the given type, sorted by tile #
+    private IlluminaFileMap files;
+
+    private boolean treatGroupedDelimitersAsOne = true;
+    private BasicInputParser parser;
+
+    public IlluminaTextIterator(final int lane, final IlluminaFileMap files) {
+        this.lane = lane;
+        this.files = files;
+        currentTile = files.firstKey();
+    }
+
+    public IlluminaTextIterator(final int lane, final IlluminaFileMap files,
+                                final boolean treatGroupedDelimitersAsOne) {
+        this(lane, files);
+        this.treatGroupedDelimitersAsOne = treatGroupedDelimitersAsOne;
+        currentTile = files.firstKey();
+    }
+    
+    /**
+     * Jump so that the next record returned will be the first one from the specified tile.
+     */
+    public void seekToTile(final int oneBasedTileNumber) {
+        CloserUtil.close(parser);
+        currentTile = oneBasedTileNumber;
+        initializeParser();
+    }
+
+    /**
+     * Prepare to iterate.
+     */
+    private void initializeParser() {
+        final List<File> fileSubset = files.getFilesStartingAt(currentTile);
+        parser = new BasicInputParser(treatGroupedDelimitersAsOne, fileSubset.toArray(new File[fileSubset.size()]));
+    }
+
+    /**
+     * Read the next record from the list of input files, and load into data argument.
+     */
+    @Override
+    public String [] next() {
+        if (!hasNext()) {
+            throw new NoSuchElementException();
+        }
+
+        return parser.next();
+    }
+
+    @Override
+    public void remove() {
+        throw new UnsupportedOperationException("Remove is not supported by IlluminaTextIterator");
+    }
+
+    public boolean hasNext() {
+        if(parser == null) initializeParser();
+        return parser.hasNext();
+    }
+
+    protected int getLane() {
+        return lane;
+    }
+
+    public String getCurrentFilename() {
+        if(parser == null) initializeParser();
+        return parser.getFileName();
+    }
+
+    protected void validateLane(final int lane) {
+        if (lane != getLane()) {
+            throw new PicardException("Lane number mismatch: " + lane + " != " + getLane());
+        }
+    }
+}
diff --git a/src/java/picard/illumina/parser/IntensityChannel.java b/src/java/picard/illumina/parser/IntensityChannel.java
new file mode 100644
index 0000000..3624397
--- /dev/null
+++ b/src/java/picard/illumina/parser/IntensityChannel.java
@@ -0,0 +1,38 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.illumina.parser;
+
+/**
+ * The channels in a FourChannelIntensityData object, and the channels produced by a ClusterIntensityFileReader,
+ * for cases in which it is desirable to handle these abstractly rather than having the specific names
+ * in the source code.
+ * 
+ * @author alecw at broadinstitute.org
+*/
+public enum IntensityChannel {
+
+    A, C, G, T;
+
+    public static final int NUM_CHANNELS = IntensityChannel.values().length;
+}
diff --git a/src/java/picard/illumina/parser/MultiTileBclFileUtil.java b/src/java/picard/illumina/parser/MultiTileBclFileUtil.java
new file mode 100644
index 0000000..ba635a6
--- /dev/null
+++ b/src/java/picard/illumina/parser/MultiTileBclFileUtil.java
@@ -0,0 +1,115 @@
+package picard.illumina.parser;
+
+import htsjdk.samtools.util.IOUtil;
+import picard.illumina.parser.fakers.MultiTileBclFileFaker;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * NextSeq-style bcl's have all tiles for a cycle in a single file.
+ */
+public class MultiTileBclFileUtil extends ParameterizedFileUtil {
+    final File basecallLaneDir;
+    final File bci;
+    final TileIndex tileIndex;
+    final CycleIlluminaFileMap cycleFileMap = new CycleIlluminaFileMap();
+
+    MultiTileBclFileUtil(final File basecallLaneDir, final int lane) {
+        // Since these file names do not contain lane number, first two args to ctor are the same.
+        super("^(\\d{4}).bcl.bgzf$", ".bcl.bgzf", basecallLaneDir,
+                new MultiTileBclFileFaker(), lane);
+        this.basecallLaneDir = basecallLaneDir;
+        bci = new File(basecallLaneDir, "s_" + lane + ".bci");
+        // Do this once rather than when deciding if these files exist and again later.
+        final File[] cycleFiles = IOUtil.getFilesMatchingRegexp(base, matchPattern);
+        if (bci.exists()) {
+            tileIndex = new TileIndex(bci);
+            if (cycleFiles != null) {
+                for (final File file : cycleFiles) {
+                    final String fileName = file.getName();
+                    final String cycleNum = fileName.substring(0, fileName.indexOf('.'));
+                    final IlluminaFileMap fileMap = new IlluminaFileMap();
+                    for(final Integer tile : tileIndex.getTiles()) {
+                        fileMap.put(tile, file);
+                    }
+                    cycleFileMap.put(Integer.valueOf(cycleNum), fileMap);
+                }
+            }
+        } else {
+            tileIndex = null;
+        }
+
+    }
+
+    public CycleIlluminaFileMap getFiles(final List<Integer> tiles, final int[] cycles) {
+        // Filter input list of cycles according to which actually exist
+        final ArrayList<Integer> goodCycleList = new ArrayList<Integer>(cycles.length);
+        for (final int cycle : cycles) {
+            if (cycleFileMap.containsKey(cycle)) {
+                goodCycleList.add(cycle);
+            }
+        }
+        // Ensure cycles are sorted.
+        Collections.sort(goodCycleList);
+        final int[] goodCycles = new int[goodCycleList.size()];
+        for (int i = 0; i < goodCycles.length; ++i) {
+            goodCycles[i] = goodCycleList.get(i);
+        }
+
+        // Create the map.
+        final CycleIlluminaFileMap cycledMap = new CycleIlluminaFileMap();
+        if (goodCycles.length > 0) {
+            for(final int cycle : goodCycles) {
+                final IlluminaFileMap fileMap = cycleFileMap.get(cycle).keep(tiles);
+                cycledMap.put(cycle, fileMap);
+            }
+        }
+        return cycledMap;
+    }
+
+    @Override
+    public boolean filesAvailable() {
+        return bci.exists() && cycleFileMap.size() > 0;
+    }
+
+    @Override
+    public List<Integer> getTiles() {
+        if (tileIndex == null) {
+            return Collections.emptyList();
+        }
+        return tileIndex.getTiles();
+    }
+
+    @Override
+    public List<String> verify(final List<Integer> expectedTiles, final int[] expectedCycles) {
+        if (tileIndex == null) {
+            return Collections.singletonList("Tile index(" + bci.getAbsolutePath() + ") does not exist!");
+        }
+        final List<String> ret = tileIndex.verify(expectedTiles);
+        for (final int expectedCycle : expectedCycles) {
+            if (!cycleFileMap.containsKey(expectedCycle)) {
+                ret.add(expectedCycle + ".bcl.bgzf not found in " + base);
+            }
+        }
+        return ret;
+    }
+
+    @Override
+    public List<String> fakeFiles(final List<Integer> expectedTiles, final int[] expectedCycles,
+                                  final IlluminaFileUtil.SupportedIlluminaFormat format) {
+        if (tileIndex == null) {
+            return Collections.singletonList("Tile index(" + bci.getAbsolutePath() + ") does not exist!");
+        }
+        final List<String> ret = tileIndex.verify(expectedTiles);
+        for (final int expectedCycle : expectedCycles) {
+            if (!cycleFileMap.containsKey(expectedCycle)) {
+                ret.add(expectedCycle + ".bcl.bgzf not found in " + base);
+            }
+        }
+        return ret;
+    }
+}
+
diff --git a/src/java/picard/illumina/parser/MultiTileBclParser.java b/src/java/picard/illumina/parser/MultiTileBclParser.java
new file mode 100644
index 0000000..c39f18a
--- /dev/null
+++ b/src/java/picard/illumina/parser/MultiTileBclParser.java
@@ -0,0 +1,170 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.illumina.parser;
+
+import htsjdk.samtools.util.CloseableIterator;
+import picard.illumina.parser.readers.BclQualityEvaluationStrategy;
+import picard.illumina.parser.readers.BclReader;
+
+import java.io.File;
+import java.util.List;
+import java.util.NoSuchElementException;
+
+/**
+ * Parse .bcl.bgzf files that contain multiple tiles in a single file.  This requires an index file that tells
+ * the bgzf virtual file offset of the start of each tile in the block-compressed bcl file.
+ */
+public class MultiTileBclParser extends BclParser {
+    private final TileIndex tileIndex;
+    private MultiTileBclDataCycleFileParser cycleFileParser = null;
+    public MultiTileBclParser(final File directory, final int lane, final CycleIlluminaFileMap tilesToCycleFiles,
+                              final OutputMapping outputMapping, final boolean applyEamssFilter,
+                              final BclQualityEvaluationStrategy bclQualityEvaluationStrategy,
+                              final TileIndex tileIndex) {
+        super(directory, lane, tilesToCycleFiles, outputMapping, applyEamssFilter, bclQualityEvaluationStrategy);
+        this.tileIndex = tileIndex;
+        this.initialize();
+    }
+
+    @Override
+    public void initialize(){
+        if(tileIndex != null){
+            seekToTile(currentTile);
+        }
+    }
+
+    private CountLimitedIterator makeReader(final List<File> files) {
+        if(tileIndex != null) {
+            final BclReader bclReader = BclReader.makeSeekable(files, bclQualityEvaluationStrategy, outputMapping.getOutputReadLengths());
+            final int numClustersInTile = bclReader.seek(files, tileIndex, currentTile);
+            return new CountLimitedIterator(bclReader, numClustersInTile);
+        }
+        else{
+            return null;
+        }
+    }
+
+    @Override
+    protected CycleFilesParser<BclData> makeCycleFileParser(final List<File> files) {
+        if (cycleFileParser == null) {
+            cycleFileParser = new MultiTileBclDataCycleFileParser(files, currentTile);
+        } else {
+            final int numClustersInTile = cycleFileParser.getReader().seek(files, tileIndex, currentTile);
+            cycleFileParser.setCurrentTile(currentTile);
+            cycleFileParser.resetClusterLimit(numClustersInTile);
+        }
+        return cycleFileParser;
+    }
+
+    /**
+     * An iterator wrapper that stops when it has return a pre-determined number of records even if the underlying
+     * iterator still had more records.
+     */
+    static class CountLimitedIterator implements CloseableIterator<BclData> {
+        public BclReader getUnderlyingIterator() {
+            return underlyingIterator;
+        }
+
+        private final BclReader underlyingIterator;
+        private int recordLimit;
+        private int numRecordsRead = 0;
+
+        CountLimitedIterator(final BclReader underlyingIterator, final int recordLimit) {
+            this.underlyingIterator = underlyingIterator;
+            this.recordLimit = recordLimit;
+        }
+
+        @Override
+        public void close() {
+            //underlyingIterator.close();
+        }
+
+        @Override
+        public boolean hasNext() {
+            return numRecordsRead < recordLimit && underlyingIterator.hasNext();
+        }
+
+        @Override
+        public BclData next() {
+            if (!hasNext()) throw new NoSuchElementException();
+            ++numRecordsRead;
+            return underlyingIterator.next();
+        }
+
+        @Override
+        public void remove() {
+            throw new UnsupportedOperationException();
+        }
+    }
+
+
+    private class MultiTileBclDataCycleFileParser implements CycleFilesParser<BclData> {
+        final CountLimitedIterator reader;
+        int currentTile;
+
+        public MultiTileBclDataCycleFileParser(final List<File> files, final int currentTile) {
+            this.currentTile = currentTile;
+            reader = makeReader(files);
+        }
+
+        @Override
+        public void close() {
+            reader.close();
+        }
+
+        @Override
+        public BclData next() {
+            if (!hasNext()) {
+                throw new NoSuchElementException();
+            }
+            return reader.next();
+        }
+
+        @Override
+        public boolean hasNext() {
+            try {
+                return reader.hasNext();
+            } catch (final NullPointerException npe) {
+                return false;
+            }
+        }
+
+        public int getCurrentTile(){
+            return currentTile;
+        }
+
+        public BclReader getReader() {
+            return reader.getUnderlyingIterator();
+        }
+
+        public void resetClusterLimit(final int numClustersInTile) {
+            reader.recordLimit = numClustersInTile;
+            reader.numRecordsRead = 0;
+        }
+
+        public void setCurrentTile(final int currentTile) {
+            this.currentTile = currentTile;
+        }
+    }
+}
diff --git a/src/java/picard/illumina/parser/MultiTileFileUtil.java b/src/java/picard/illumina/parser/MultiTileFileUtil.java
new file mode 100644
index 0000000..c53ee26
--- /dev/null
+++ b/src/java/picard/illumina/parser/MultiTileFileUtil.java
@@ -0,0 +1,120 @@
+package picard.illumina.parser;
+
+import htsjdk.samtools.util.IOUtil;
+import picard.PicardException;
+import picard.illumina.parser.fakers.BciFileFaker;
+import picard.illumina.parser.fakers.FileFaker;
+import picard.illumina.parser.fakers.FilterFileFaker;
+import picard.illumina.parser.fakers.MultiTileLocsFileFaker;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * For file types for which there is one file per lane, with fixed record size, and all the tiles in it,
+ * so the s_<lane>.bci file can be used to figure out where each tile starts and ends.
+ */
+public abstract class MultiTileFileUtil<OUTPUT_RECORD extends IlluminaData> extends ParameterizedFileUtil {
+    protected final File bci;
+    protected TileIndex tileIndex;
+    protected File dataFile;
+
+    MultiTileFileUtil(final String extension, final File base, final File bciDir, final FileFaker fileFaker,
+                      final int lane) {
+        super(false, extension, base, fileFaker, lane);
+        bci = new File(bciDir, "s_" + lane + ".bci");
+        if (bci.exists()) {
+            tileIndex = new TileIndex(bci);
+        } else {
+            tileIndex = null;
+        }
+        final File[] filesMatchingRegexp = IOUtil.getFilesMatchingRegexp(base, matchPattern);
+        if (filesMatchingRegexp == null || filesMatchingRegexp.length == 0) {
+            dataFile = null;
+        } else if (filesMatchingRegexp.length == 1) {
+            dataFile = filesMatchingRegexp[0];
+        } else {
+            throw new PicardException("More than one filter file found in " + base.getAbsolutePath());
+        }
+    }
+
+    @Override
+    public boolean filesAvailable() {
+        return tileIndex != null && dataFile != null && dataFile.exists();
+    }
+
+    @Override
+    public List<Integer> getTiles() {
+        if (tileIndex == null) {
+            return Collections.emptyList();
+        }
+        return tileIndex.getTiles();
+    }
+
+    /**
+     * expectedCycles are not checked in this implementation.
+     */
+    @Override
+    public List<String> verify(final List<Integer> expectedTiles, final int[] expectedCycles) {
+        if (tileIndex == null) {
+            return Collections.singletonList("Tile index(" + bci.getAbsolutePath() + ") does not exist!");
+        }
+        return tileIndex.verify(expectedTiles);
+    }
+
+    @Override
+    public List<String> fakeFiles(final List<Integer> expectedTiles, final int[] expectedCycles,
+                                  final IlluminaFileUtil.SupportedIlluminaFormat format) {
+        //we need to fake a bci file for the tile index
+        final BciFileFaker bciFileFaker = new BciFileFaker();
+        try {
+            bciFileFaker.fakeBciFile(bci, expectedTiles);
+            tileIndex = new TileIndex(bci);
+            faker.fakeFile(base, expectedTiles, lane, extension);
+            final File[] filesMatchingRegexp = IOUtil.getFilesMatchingRegexp(base, matchPattern);
+            if (filesMatchingRegexp == null || filesMatchingRegexp.length == 0) {
+                dataFile = null;
+            } else if (filesMatchingRegexp.length == 1) {
+                dataFile = filesMatchingRegexp[0];
+            } else {
+                throw new PicardException("More than one filter file found in " + base.getAbsolutePath());
+            }
+        } catch (final IOException e) {
+            return Collections.singletonList("Could not create tile index file: " + bci.getAbsolutePath());
+        }
+        return tileIndex.verify(expectedTiles);
+    }
+
+    abstract IlluminaParser<OUTPUT_RECORD> makeParser(List<Integer> requestedTiles);
+
+}
+
+class MultiTileFilterFileUtil extends MultiTileFileUtil<PfData> {
+
+    /**
+     * @param basecallLaneDir location of .filter file and also .bci file
+     */
+    MultiTileFilterFileUtil(final File basecallLaneDir, final int lane) {
+        super(".filter", basecallLaneDir, basecallLaneDir, new FilterFileFaker(), lane);
+    }
+
+    @Override
+    IlluminaParser<PfData> makeParser(final List<Integer> requestedTiles) {
+        return new MultiTileFilterParser(tileIndex, requestedTiles, dataFile);
+    }
+}
+
+class MultiTileLocsFileUtil extends MultiTileFileUtil<PositionalData> {
+
+    MultiTileLocsFileUtil(final File basecallLaneDir, final File bciDir, final int lane) {
+        super(".locs", basecallLaneDir, bciDir, new MultiTileLocsFileFaker(), lane);
+    }
+
+    @Override
+    IlluminaParser<PositionalData> makeParser(final List<Integer> requestedTiles) {
+        return new MultiTileLocsParser(tileIndex, requestedTiles, dataFile, lane);
+    }
+}
+
diff --git a/src/java/picard/illumina/parser/MultiTileFilterParser.java b/src/java/picard/illumina/parser/MultiTileFilterParser.java
new file mode 100644
index 0000000..4c05431
--- /dev/null
+++ b/src/java/picard/illumina/parser/MultiTileFilterParser.java
@@ -0,0 +1,64 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.illumina.parser;
+
+import picard.illumina.parser.readers.FilterFileReader;
+
+import java.io.File;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * Read filter file that contains multiple tiles in a single file.  A tile index is needed to parse this
+ * file so that {tile number, cluster number} can be converted into absolute record number in file.
+ */
+public class MultiTileFilterParser extends MultiTileParser<PfData> {
+    private final FilterFileReader reader;
+
+    public MultiTileFilterParser(final TileIndex tileIndex, final List<Integer> requestedTiles, final File filterFile) {
+        super(tileIndex, requestedTiles, Collections.singleton(IlluminaDataType.PF));
+        reader = new FilterFileReader(filterFile);
+    }
+
+    @Override
+    PfData readNext() {
+        final boolean nextVal = reader.next();
+        return new PfData() {
+            @Override
+            public boolean isPf() {
+                return nextVal;
+            }
+        };
+    }
+
+    @Override
+    void skipRecords(final int numToSkip) {
+        reader.skipRecords(numToSkip);
+    }
+
+    @Override
+    public void close() {
+        //no-op
+    }
+}
diff --git a/src/java/picard/illumina/parser/MultiTileLocsParser.java b/src/java/picard/illumina/parser/MultiTileLocsParser.java
new file mode 100644
index 0000000..df8e23d
--- /dev/null
+++ b/src/java/picard/illumina/parser/MultiTileLocsParser.java
@@ -0,0 +1,82 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.illumina.parser;
+
+import picard.illumina.parser.readers.AbstractIlluminaPositionFileReader;
+import picard.illumina.parser.readers.LocsFileReader;
+
+import java.io.File;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * Read locs file that contains multiple tiles in a single file.  A tile index is needed to parse this
+ * file so that {tile number, cluster number} can be converted into absolute record number in file.
+ */
+public class MultiTileLocsParser extends MultiTileParser<PositionalData> {
+    private final LocsFileReader reader;
+    private final int lane;
+
+    public MultiTileLocsParser(final TileIndex tileIndex, final List<Integer> requestedTiles, final File locsFile, final int lane) {
+        super(tileIndex, requestedTiles, Collections.singleton(IlluminaDataType.Position));
+        final int tileNumber;
+        if (requestedTiles.size() == 1) tileNumber = requestedTiles.get(0);
+        else tileNumber = -1;
+        this.reader = new LocsFileReader(locsFile, lane, tileNumber);
+        this.lane = lane;
+    }
+
+    @Override
+    PositionalData readNext() {
+        final int tile = getTileOfNextCluster();
+        final AbstractIlluminaPositionFileReader.PositionInfo nextVal = reader.next();
+        return new PositionalData() {
+            public int getXCoordinate() {
+                return nextVal.xQseqCoord;
+            }
+
+            public int getYCoordinate() {
+                return nextVal.yQseqCoord;
+            }
+
+            public int getLane() {
+                return lane;
+            }
+
+            public int getTile() {
+                return tile;
+            }
+        };
+    }
+
+    @Override
+    void skipRecords(final int numToSkip) {
+        reader.skipRecords(numToSkip);
+    }
+
+    @Override
+    public void close() {
+        reader.close();
+    }
+}
diff --git a/src/java/picard/illumina/parser/MultiTileParser.java b/src/java/picard/illumina/parser/MultiTileParser.java
new file mode 100644
index 0000000..f62f2c4
--- /dev/null
+++ b/src/java/picard/illumina/parser/MultiTileParser.java
@@ -0,0 +1,128 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.illumina.parser;
+
+import htsjdk.samtools.util.PeekIterator;
+import picard.PicardException;
+
+import java.util.Iterator;
+import java.util.List;
+import java.util.NoSuchElementException;
+import java.util.Set;
+
+/**
+ * Abstract class for files with fixed-length records for multiple tiles, e.g. .locs and .filter files.
+ * @param <OUTPUT_RECORD> The kind of record to be returned (as opposed to the type of the record stored in the file).
+ */
+public abstract class MultiTileParser<OUTPUT_RECORD extends IlluminaData> implements IlluminaParser<OUTPUT_RECORD> {
+    private final TileIndex tileIndex;
+    private final Iterator<TileIndex.TileIndexRecord> tileIndexIterator;
+    private final PeekIterator<Integer> requestedTilesIterator;
+    private final Set<IlluminaDataType> supportedTypes;
+    private int nextRecordIndex = 0;
+    private int nextClusterInTile;
+    private TileIndex.TileIndexRecord currentTile = null;
+
+    /**
+     * @param tileIndex Enables conversion from tile number to record number in this file.
+     * @param requestedTiles Iterate over these tile numbers, which must be in ascending order.
+     * @param supportedTypes The data types(s) that are provided by this file type, used to decide what file types to read.
+     */
+    public MultiTileParser(final TileIndex tileIndex,
+                           final List<Integer> requestedTiles,
+                           final Set<IlluminaDataType> supportedTypes) {
+        this.tileIndex = tileIndex;
+        this.tileIndexIterator = tileIndex.iterator();
+        this.requestedTilesIterator = new PeekIterator<Integer>(requestedTiles.iterator());
+        this.supportedTypes = supportedTypes;
+    }
+
+    @Override
+    public void seekToTile(final int oneBasedTileNumber) {
+        while (tileIndexIterator.hasNext()) {
+            final TileIndex.TileIndexRecord next = tileIndexIterator.next();
+            if (next.tile > oneBasedTileNumber) {
+                throw new PicardException(
+                        String.format("Cannot seek backwards: next tile %d > tile sought %d", next.tile, oneBasedTileNumber));
+            } else if (next.tile == oneBasedTileNumber) {
+                currentTile = next;
+                break;
+            }
+        }
+        if (nextRecordIndex > currentTile.indexOfFirstClusterInTile) {
+            throw new PicardException(
+                    String.format("Seem to be in wrong position %d > %d", nextRecordIndex, currentTile.indexOfFirstClusterInTile));
+        }
+        skipRecords(currentTile.indexOfFirstClusterInTile - nextRecordIndex);
+        nextRecordIndex = currentTile.indexOfFirstClusterInTile;
+        nextClusterInTile = 0;
+    }
+
+    @Override
+    public OUTPUT_RECORD next() {
+        if (!hasNext()) throw new NoSuchElementException();
+        OUTPUT_RECORD ret = readNext();
+        ++nextClusterInTile;
+        ++nextRecordIndex;
+        return ret;
+    }
+
+    @Override
+    public boolean hasNext() {
+        // Skip over any empty tiles
+        while ((currentTile == null || nextClusterInTile >= currentTile.numClustersInTile) && requestedTilesIterator.hasNext()) {
+            seekToTile(requestedTilesIterator.next());
+        }
+        return currentTile != null && nextClusterInTile < currentTile.numClustersInTile;
+    }
+
+    @Override
+    public int getTileOfNextCluster() {
+        if (!hasNext()) {
+            throw new NoSuchElementException();
+        }
+        if (currentTile != null && nextClusterInTile < currentTile.numClustersInTile) return currentTile.tile;
+        else return requestedTilesIterator.peek();
+    }
+
+    @Override
+    public void verifyData(final List<Integer> tiles, final int[] cycles) {
+        final List<String> tileErrors = tileIndex.verify(tiles);
+        if (!tileErrors.isEmpty()) throw new PicardException(tileErrors.get(0));
+        //No need to validate cycles until such time as this class is used for cycle-oriented data types
+    }
+
+    @Override
+    public Set<IlluminaDataType> supportedTypes() {
+        return supportedTypes;
+    }
+
+    @Override
+    public void remove() {
+        throw new UnsupportedOperationException();
+    }
+
+    abstract OUTPUT_RECORD readNext();
+    abstract void skipRecords(int numToSkip);
+}
diff --git a/src/java/picard/illumina/parser/OutputMapping.java b/src/java/picard/illumina/parser/OutputMapping.java
new file mode 100644
index 0000000..a6d5784
--- /dev/null
+++ b/src/java/picard/illumina/parser/OutputMapping.java
@@ -0,0 +1,183 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2012 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.illumina.parser;
+
+import htsjdk.samtools.util.StringUtil;
+import picard.PicardException;
+
+/**
+ * In multiple locations we need to know what cycles are output, as of now we output all non-skip cycles, but rather than sprinkle
+ * this knowledge throughout the parser code, instead OutputMapping provides all the data a client might want about the
+ * cycles to be output including what ReadType they are.
+ *
+ * @author jburke at broadinstitute.org
+ */
+public class OutputMapping {
+    /**
+     * This class represents the mapping from Raw Cycles to TwoDIndices into output data structures and ClusterData.  This class
+     * also contains ReadStructure.Substructure that describes which reads/cycles should be output.
+     *
+     * For each cycle # (1-Based) there is a corresponding element in the cycleToOutputIndex array where
+     * cycleToOutputIndex[cycle#].arrayIndex indicates the readNumber that cycle will be found on and cycleToOutputIndex[cycle#].elementIndex
+     * indicates the array inde on that readNumber that the cycle occupies.  There are also various intermediate byte[][]
+     * structures (in BclData, QseqReadData, etc...) where the top level array corresponds with the readNumber and the second-level
+     * array corresponds with cycleNumber, cycleToOutputIndex is used to index into these arrays.
+     */
+    private final TwoDIndex[] cycleToOutputIndex;
+
+    /** The collection of ReadDescriptors and information about those read descriptors that describe all the
+     * cycles that IlluminaDataProvider should output in a ClusterData object */
+    private final ReadStructure.Substructure outputSubstructure;
+
+    /** The original read structure without any skips */
+    private final ReadStructure outputReadStructure;
+
+    /**
+     * Create an OutputMapping from a readStructure, currently the outputSubstructure just references the readStructure.nonSkips
+     * Substructure
+     * @param readStructure The readStructure for the given run that we want an OutputMapping for
+     */
+    public OutputMapping(final ReadStructure readStructure) {
+        this.outputSubstructure = readStructure.nonSkips;
+        this.cycleToOutputIndex = makeCycleToOutputIndexArray(readStructure);
+        this.outputReadStructure = outputSubstructure.toReadStructure();
+    }
+
+    /** @return The number of reads that should be found in the output clusterData */
+    public int numOutputReads() {
+        return outputSubstructure.length();
+    }
+
+    /** @return An array of cycles in ascending order of all the cycles that should be output. */
+    public int [] getOutputCycles() {
+        return outputSubstructure.getCycles();
+    }
+
+    /** @return An ordered array of lengths, where each element represents the size of output reads respectively */
+    public int [] getOutputReadLengths() {
+        return outputSubstructure.getDescriptorLengths();
+    }
+
+    /** @return The total number of cycles that will be output */
+    public int getTotalOutputCycles() {
+        return outputSubstructure.getTotalCycles();
+    }
+
+    /** @return An ordered array of Ranges over cycle indices(cycle#-1), where each range represents a contiguous block of cycles
+     * to output, and each cycle in getOutputCycles() is in ONE AND ONLY ONE Range, all ranges are inclusive of both ends
+     */
+    public Range [] getCycleIndexRanges() {
+        return outputSubstructure.getCycleIndexRanges();
+    }
+
+    /** @return An iterator over the read descriptors that describe the reads to be output*/
+    public Iterable<ReadDescriptor> getOutputDescriptors() {
+        return outputSubstructure;
+    }
+
+    public ReadStructure getOutputReadStructure() {
+        return outputReadStructure;
+    }
+
+    /**
+     * Return an index that where:
+     *     index.arrayIndex - represents either the read number the cycle will be output too, or (in some cases)
+     *     an array index into a two dimensional array of byte[][] where the top level array corresponds to read number
+     *
+     *     index.elementIndex - represents the element a cycle will appear in inside it's give read, or the element
+     *     in an array as described above
+     * @param cycle The cycle for which we want an index
+     * @return A TwoDArrayIndex indicating where this cycle can be found
+     */
+    public TwoDIndex getOutputIndexForCycle(final int cycle) {
+        return cycleToOutputIndex[cycle];
+    }
+
+    /**
+     * An index into two dimensional arrays or other two dimensional structures where arrayIndex equals the index
+     * into the top level structure and elementIndex is equal to the index into the bottom level structure
+     */
+    static class TwoDIndex {
+        //index into the "outer structure" i.e. if we have an array T[][], we would index T[majorIndex][minorIndex]
+        public final int majorIndex;
+
+        //index into the "inner structure", see majorIndex
+        public final int minorIndex;
+
+        public TwoDIndex(final int majorIndex, final int minorIndex) {
+            this.majorIndex = majorIndex;
+            this.minorIndex = minorIndex;
+        }
+
+        @Override
+        public String toString() {
+            return "TwoDIndex(majorIndex == " + majorIndex + ", minorIndex == " + minorIndex + ")";
+        }
+
+        @Override
+        public boolean equals(final Object thatObj) {
+            if(thatObj == null || !(thatObj instanceof TwoDIndex)) {
+                return false;
+            }
+
+            final TwoDIndex that = (TwoDIndex) thatObj;
+            return this.majorIndex == that.majorIndex && this.minorIndex == that.minorIndex;
+        }
+    }
+
+    /**
+     * Create an array where each index corresponds to a cycle # (with Cycle 0 = null) and each element in
+     * an index into a ClusterData's reads/bases and reads/qualities for the run described by readStructure
+     * @param readStructure The readStructure describing the run concerned
+     * @return An array of TwoDArrayIndexes
+     */
+    private TwoDIndex[] makeCycleToOutputIndexArray(final ReadStructure readStructure) {
+        int totalCycles = readStructure.totalCycles;
+        final TwoDIndex[] cycleToOutputIndex = new TwoDIndex[totalCycles + 1];
+
+        final int [] outputCycles = getOutputCycles();
+        final int [] outputLengths = getOutputReadLengths();
+        int outputCycleIndex = 0;
+        int arrIndex = 0;
+        int elementIndex = 0;
+        for(int i = 1; i <= totalCycles && outputCycleIndex < outputCycles.length; i++) {
+            if(outputCycles[outputCycleIndex] == i) {
+                if(elementIndex >= outputLengths[arrIndex]) {
+                    elementIndex = 0;
+                    ++arrIndex;
+                }
+
+                cycleToOutputIndex[i] = new TwoDIndex(arrIndex, elementIndex);
+                ++elementIndex;
+                ++outputCycleIndex;
+            }
+        }
+
+        if(outputCycleIndex != outputCycles.length) {
+            throw new PicardException("Error in read structure outputCycles (" + StringUtil.intValuesToString(outputCycles) + ") and total cycles (" + totalCycles + ") OutputCycleIndex(" + outputCycleIndex + ")");
+        }
+
+        return cycleToOutputIndex;
+    }
+}
diff --git a/src/java/picard/illumina/parser/ParameterizedFileUtil.java b/src/java/picard/illumina/parser/ParameterizedFileUtil.java
new file mode 100644
index 0000000..9e062d5
--- /dev/null
+++ b/src/java/picard/illumina/parser/ParameterizedFileUtil.java
@@ -0,0 +1,188 @@
+package picard.illumina.parser;
+
+import htsjdk.samtools.util.IOUtil;
+import picard.PicardException;
+import picard.illumina.parser.fakers.FileFaker;
+
+import java.io.File;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+public abstract class ParameterizedFileUtil {
+    public static final String PER_TILE_PATTERN_STRING = "s_(\\d+)_(\\d{1,5})";
+    /**
+     * The file extension for this class, file extension does not have the standard meaning
+     * in this instance.  It means, all the characters that come after the identifying portion of
+     * the file (after lane, tile, and end that is).  So _qseq.txt and .filter are both file extensions
+     */
+    protected final String extension;
+
+    /**
+     * A pattern that will match files of this type for this lane
+     */
+    protected Pattern matchPattern;
+
+    protected final int lane;
+    protected List<Integer> tiles;
+    /**
+     * If you think of the file system as a tree, this is the deepest directory(node) on the tree that
+     * still contains all of the files for this given type (e.g. If we're talking about BCLs the directory
+     * structure is:
+     * <p/>
+     * BaseCall Dir
+     * |
+     * L001
+     * |     |        |
+     * C1.1 C2.1 ... Cn.1
+     * |     |        |
+     * bcl Files ... bclFiles
+     * <p/>
+     * L001 is the base because it contains every BCL file in the run (though those files are nested in
+     * other folders).
+     */
+    protected final File base;
+    protected final FileFaker faker;
+
+    protected static final boolean DefaultSkipEmptyFiles = true;
+    protected final boolean skipEmptyFiles;
+
+    public ParameterizedFileUtil(final boolean laneTileRegex, final String extension, final File base,
+                                 final FileFaker faker, final int lane, final boolean skipEmptyFiles) {
+        this(extension, base, faker, lane, skipEmptyFiles);
+        if (laneTileRegex) {
+            matchPattern = Pattern.compile(escapePeriods(makeLaneTileRegex(processTxtExtension(extension), lane)));
+        } else {
+            matchPattern = Pattern.compile(escapePeriods(makeLaneRegex(extension, lane)));
+        }
+    }
+
+    public ParameterizedFileUtil(final boolean laneTileRegex, final String extension, final File base,
+                                 final FileFaker faker, final int lane) {
+        this(laneTileRegex, extension, base, faker, lane, DefaultSkipEmptyFiles);
+    }
+
+    public ParameterizedFileUtil(final String pattern, final String extension, final File base, final FileFaker faker,
+                                 final int lane) {
+        this(extension, base, faker, lane);
+        this.matchPattern = Pattern.compile(pattern);
+    }
+
+    private ParameterizedFileUtil(final String extension, final File base, final FileFaker faker,
+                                  final int lane) {
+        this(extension, base, faker, lane, DefaultSkipEmptyFiles);
+    }
+
+    private ParameterizedFileUtil(final String extension, final File base, final FileFaker faker,
+                                  final int lane, final boolean skipEmptyFiles) {
+        this.faker = faker;
+        this.extension = extension;
+        this.base = base;
+        this.lane = lane;
+        this.skipEmptyFiles = skipEmptyFiles;
+    }
+
+    /**
+     * Determine whether or not files are available
+     *
+     * @return return true if files are found matching this types pattern, false otherwise
+     */
+    public abstract boolean filesAvailable();
+
+    /**
+     * Return a list of all tiles available for this file format and run
+     *
+     * @return A List of tile integers
+     */
+    public List<Integer> getTiles() {
+        return tiles;
+    }
+
+    /**
+     * Given the expected tiles/expected cycles for this file type, return a list of error messages describing any
+     * missing/or malformed files
+     *
+     * @param expectedTiles  An ordered list of tile numbers
+     * @param expectedCycles An ordered list of cycle numbers that may contain gaps
+     * @return A list of error messages for this format
+     */
+    public abstract List<String> verify(List<Integer> expectedTiles, int[] expectedCycles);
+
+    /**
+     * Given the expected tiles/expected cycles for this file type create a set of fake files such that the
+     * verification criteria are met.
+     *
+     * @param expectedTiles An ordered list of tile numbers
+     * @param cycles        An ordered list of cycle numbers that may contain gaps
+     * @param format        The format of the files that are to be faked
+     * @return A list of error messages for this format
+     */
+    public abstract List<String> fakeFiles(List<Integer> expectedTiles, int[] cycles,
+                                           IlluminaFileUtil.SupportedIlluminaFormat format);
+
+    /**
+     * Returns only lane and tile information as PerTileFt's do not have End information.
+     *
+     * @param fileName Filename to analyze for data
+     * @return A LaneTile object with the discovered Lane and Tile information and a null end field.
+     */
+    protected Integer fileToTile(final String fileName) {
+        final Matcher matcher = matchPattern.matcher(fileName);
+        if (!matcher.matches()) {
+            return null;
+        }
+        return Integer.parseInt(matcher.group(1));
+    }
+
+    /**
+     * Return a regex string for finding Lane and Tile given a file extension pattern
+     */
+    public static String makeLaneTileRegex(final String fileNameEndPattern, final int lane) {
+        if (lane < 0) {
+            throw new PicardException("Lane (" + lane + ") cannot be negative");
+        }
+        return "^" + "s_" + lane + "_(\\d{1,5})" + fileNameEndPattern + "$";
+    }
+
+    private String makeLaneRegex(final String fileNameEndPattern, final int lane) {
+        return "^s_" + lane + fileNameEndPattern + "$";
+    }
+
+    /**
+     * The period separator is expected in the file extension, since some do not start with it
+     */
+    private String escapePeriods(final String preEscaped) {
+        return preEscaped
+                .replaceAll("\\.", "\\."); //In the first one the \\ is inside a regex in the second it's NOT
+    }
+
+    /**
+     * For filename patterns that end with .txt tack on the option .gz extension
+     */
+    private String processTxtExtension(final String fileNameEndPattern) {
+        if (fileNameEndPattern.endsWith(".txt")) {
+            return fileNameEndPattern + "(\\.gz|\\.bz2)?";
+        } else {
+            return fileNameEndPattern;
+        }
+    }
+
+    /**
+     * Return all files that match pattern of the given file type in the given base directory
+     */
+    protected IlluminaFileMap getTiledFiles(final File baseDirectory, final Pattern pattern) {
+        final IlluminaFileMap fileMap = new IlluminaFileMap();
+        if (baseDirectory.exists()) {
+            IOUtil.assertDirectoryIsReadable(baseDirectory);
+            final File[] files = IOUtil.getFilesMatchingRegexp(baseDirectory, pattern);
+            for (final File file : files) {
+                if (!skipEmptyFiles || file.length() > 0) {
+                    fileMap.put(fileToTile(file.getName()), file);
+                }
+            }
+        }
+
+        return fileMap;
+    }
+
+}
diff --git a/src/java/picard/illumina/parser/PerTileCycleParser.java b/src/java/picard/illumina/parser/PerTileCycleParser.java
new file mode 100644
index 0000000..7cd5960
--- /dev/null
+++ b/src/java/picard/illumina/parser/PerTileCycleParser.java
@@ -0,0 +1,200 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.illumina.parser;
+
+import picard.PicardException;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.NoSuchElementException;
+import java.util.TreeSet;
+
+/**
+ * PerTilePerCycleParser is an abstract IlluminaParser that maintains a list of file parsers for the current tile (1 for each cycle)
+ * and coordinates the construction/population of an IlluminaData object on a cycle by cycle basis.
+ *
+ * @param <ILLUMINA_DATA>
+ */
+abstract class PerTileCycleParser<ILLUMINA_DATA extends IlluminaData> implements IlluminaParser<ILLUMINA_DATA> {
+
+    /** Location of illumina output files to be parsed.  Typically this is Data/Intensities/L00<lane> */
+    private final File laneDirectory;
+
+    /** The lane to iterate over */
+    private final int lane;
+
+    /** A parser for the current tile */
+    private CycleFilesParser<ILLUMINA_DATA> cycleFilesParser;
+
+    final OutputMapping outputMapping;
+
+    /** The current tile number */
+    protected int currentTile;
+
+    /** Map of Cycle -> Tile -> List<File> */
+    private final CycleIlluminaFileMap cyclesToTileFiles;
+
+    private final TreeSet<Integer> tileOrder;
+
+    /**
+     * Construct a per tile parser
+     *
+     * @param directory         The directory containing the lane we are analyzing (i.e. the parent of the L00<lane> directory)
+     * @param lane              The lane that is being iterated over
+     * @param cyclesToTileFiles A map of tile to CycleFilesIterators whose iterators contain only the cycles we want to output
+     * @param outputMapping     Data structure containing information on how we should output data
+     */
+    PerTileCycleParser(final File directory, final int lane, final CycleIlluminaFileMap cyclesToTileFiles, final OutputMapping outputMapping) {
+        this.tileOrder = getTileOrder(cyclesToTileFiles);
+        this.lane = lane;
+        this.laneDirectory = new File(directory, IlluminaFileUtil.longLaneStr(this.lane));
+        this.cyclesToTileFiles = cyclesToTileFiles;
+        this.currentTile = tileOrder.first();
+        this.outputMapping = outputMapping;
+    }
+
+    private TreeSet<Integer> getTileOrder(final CycleIlluminaFileMap cyclesToTileFiles) {
+        final TreeSet<Integer> uniqueTiles = new TreeSet<Integer>();
+
+        for (final IlluminaFileMap fileMap : cyclesToTileFiles.values()) {
+            uniqueTiles.addAll(fileMap.keySet());
+        }
+        return uniqueTiles;
+    }
+
+    /**
+     * For a given cycle, return a CycleFilesParser.
+     *
+     * @param file       The file to parse
+     * @return A CycleFilesParser that will populate the correct position in the IlluminaData object with that cycle's data.
+     */
+    protected abstract CycleFilesParser<ILLUMINA_DATA> makeCycleFileParser(final List<File> file);
+
+    public abstract void initialize();
+
+    /**
+     * CycleFileParsers iterate through the clusters of a file and populate an IlluminaData object with a single cycle's
+     * value.
+     *
+     * @param <ILLUMINA_DATA>
+     */
+    protected interface CycleFilesParser<ILLUMINA_DATA> {
+        public void close();
+
+        public ILLUMINA_DATA next();
+
+        public boolean hasNext();
+    }
+
+    /**
+     * Clear the current set of cycleFileParsers and replace them with the ones for the tile indicated by oneBasedTileNumber
+     *
+     * @param tile requested tile
+     */
+    @Override
+    public void seekToTile(final int tile) {
+        currentTile = tile;
+
+        if(cycleFilesParser != null) {
+            cycleFilesParser.close();
+        }
+
+        int totalCycles = 0;
+        final List<File> tileFiles = new ArrayList<File>();
+        for (final Map.Entry<Integer, IlluminaFileMap> entry : cyclesToTileFiles.entrySet()) {
+            tileFiles.add(entry.getValue().get(currentTile));
+            ++totalCycles;
+        }
+        cycleFilesParser = makeCycleFileParser(tileFiles);
+
+        if (totalCycles != outputMapping.getTotalOutputCycles()) {
+            throw new PicardException("Number of cycle OUTPUT files found (" + totalCycles + ") does not equal the number expected (" + outputMapping.getTotalOutputCycles() + ")");
+        }
+    }
+
+    /**
+     * Return the data for the next cluster by:
+     * 1. Advancing tiles if we reached the end of the current tile.
+     * 2. For each cycle, get the appropriate parser and have it populate it's data into the IlluminaData object.
+     *
+     * @return The IlluminaData object for the next cluster
+     */
+    @Override
+    public ILLUMINA_DATA next() { //iterate over clusters
+        if (!hasNext()) {
+            throw new NoSuchElementException("IlluminaData is missing in lane " + lane + " at directory location " + laneDirectory.getAbsolutePath());
+        }
+
+        if (!cycleFilesParser.hasNext()) {
+            seekToTile(tileOrder.higher(currentTile));
+        }
+
+        return cycleFilesParser.next();
+    }
+
+    @Override
+    public boolean hasNext() {
+        return cycleFilesParser.hasNext() || currentTile < tileOrder.last();
+    }
+
+    /**
+     * Returns the tile of the next cluster that will be returned by PerTilePerCycleParser and therefore should be called before
+     * next() if you want to know the tile for the data returned by next()
+     *
+     * @return The tile number of the next ILLUMINA_DATA object to be returned
+     */
+    public int getTileOfNextCluster() {
+        //if the current parser still has more clusters, return the current tile number
+        if (cycleFilesParser.hasNext()) {
+            return currentTile;
+        }
+
+        //if the current parser is EMPTY, return the next tile number
+        if (currentTile < tileOrder.last()) {
+            return tileOrder.higher(currentTile);
+        }
+
+        //If we are at the end of clusters then this method should not be called, throw an exception
+        throw new NoSuchElementException();
+    }
+
+    @Override
+    public void verifyData(List<Integer> tiles, final int[] cycles) {
+        if (tiles == null) {
+            tiles = new ArrayList<Integer>(this.cyclesToTileFiles.keySet());
+        }
+        this.cyclesToTileFiles.assertValid(tiles, cycles);
+    }
+
+    public void remove() {
+        throw new UnsupportedOperationException("Remove is not supported by " + this.getClass().getName());
+    }
+
+    @Override
+    public void close() {
+        cycleFilesParser.close();
+    }
+}
diff --git a/src/java/picard/illumina/parser/PerTileFileUtil.java b/src/java/picard/illumina/parser/PerTileFileUtil.java
new file mode 100644
index 0000000..af31681
--- /dev/null
+++ b/src/java/picard/illumina/parser/PerTileFileUtil.java
@@ -0,0 +1,83 @@
+package picard.illumina.parser;
+
+import picard.illumina.parser.fakers.FileFaker;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+
+public class PerTileFileUtil extends ParameterizedFileUtil {
+    private final IlluminaFileMap fileMap;
+
+    public PerTileFileUtil(final String extension, final File base,
+                           final FileFaker faker, final int lane) {
+        this(extension, base, faker, lane, DefaultSkipEmptyFiles);
+    }
+
+    public PerTileFileUtil(final String extension, final File base,
+        final FileFaker faker, final int lane, final boolean skipEmptyFiles) {
+        super(true, extension, base, faker, lane, skipEmptyFiles);
+        this.fileMap = getTiledFiles(base, matchPattern);
+        if (fileMap.size() > 0) {
+            this.tiles = Collections.unmodifiableList(new ArrayList<Integer>(this.fileMap.keySet()));
+        } else {
+            this.tiles = new ArrayList<Integer>();
+        }
+    }
+
+    @Override
+    public boolean filesAvailable() {
+        return !fileMap.isEmpty();
+    }
+
+    public IlluminaFileMap getFiles() {
+        return fileMap;
+    }
+
+    public IlluminaFileMap getFiles(final List<Integer> tiles) {
+        return fileMap.keep(tiles);
+    }
+
+    @Override
+    public List<String> verify(final List<Integer> expectedTiles, final int[] expectedCycles) {
+        final List<String> failures = new LinkedList<String>();
+
+        if (!base.exists()) {
+            failures.add("Base directory(" + base.getAbsolutePath() + ") does not exist!");
+        } else {
+                if (!tiles.containsAll(expectedTiles)) {
+                    final List<Integer> missing = new ArrayList<Integer>(expectedTiles);
+                    missing.removeAll(tiles);
+                    failures.add("Missing tile " + missing + " for file type " + extension + ".");
+                }
+        }
+        return failures;
+    }
+
+    @Override
+    public List<String> fakeFiles(final List<Integer> expectedTiles, final int[] cycles,
+                                  final IlluminaFileUtil.SupportedIlluminaFormat format) {
+        final List<String> failures = new LinkedList<String>();
+        if (!base.exists()) {
+            failures.add("Base directory(" + base.getAbsolutePath() + ") does not exist!");
+        } else {
+            for (final Integer tile : expectedTiles) {
+                if (!tiles.contains(tile) || fileMap.get(tile).length() == 0) {
+                    //create a new file of this type
+                    try {
+                        faker.fakeFile(base, tile, lane, extension);
+                    } catch (final IOException e) {
+                        failures.add(String.format("Could not create fake file %s: %s", fileMap.get(tile),
+                                e.getMessage()));
+                    }
+
+                }
+            }
+        }
+        return failures;
+    }
+
+}
diff --git a/src/java/picard/illumina/parser/PerTileParser.java b/src/java/picard/illumina/parser/PerTileParser.java
new file mode 100644
index 0000000..86bca2d
--- /dev/null
+++ b/src/java/picard/illumina/parser/PerTileParser.java
@@ -0,0 +1,142 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2012 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.illumina.parser;
+
+import htsjdk.samtools.util.CloseableIterator;
+import htsjdk.samtools.util.StringUtil;
+import picard.PicardException;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.NoSuchElementException;
+
+/** Abstract base class for Parsers that open a single tile file at a time and iterate through them. */
+public abstract class PerTileParser<ILLUMINA_DATA extends IlluminaData> implements IlluminaParser<ILLUMINA_DATA>  {
+    private final IlluminaFileMap tileToFiles;
+    private CloseableIterator<ILLUMINA_DATA> currentIterator;
+    private Integer nextTile;
+    private Integer currentTile;
+
+    /** Factory method for the iterator of each tile */
+    protected abstract CloseableIterator<ILLUMINA_DATA> makeTileIterator(final File nextTileFile);
+
+    public PerTileParser(final IlluminaFileMap tilesToFiles) {
+        this.tileToFiles = tilesToFiles;
+        this.nextTile = tilesToFiles.firstKey();
+        this.currentTile = null;
+    }
+
+    public PerTileParser(final IlluminaFileMap tilesToFiles, final int nextTile) {
+        this.tileToFiles = tilesToFiles;
+        this.currentTile = null;
+        this.nextTile = nextTile;
+
+        if(!tilesToFiles.containsKey(nextTile)) {
+            throw new IllegalArgumentException("NextTile (" + nextTile + ") is not contained by tilesToFiles (" + StringUtil.join(",", new ArrayList<Integer>(tilesToFiles.keySet())));
+        }
+    }
+
+    /**
+     * Return the tile of the NEXT ILLUMINA_DATA object to be returned by the method next.  This might force us to advance to the
+     * next file (as it will contains the data for the next) tile/ILLUMINA_DATA object.
+     * @return tile number for the next ILLUMINA_DATA object to be returned
+     */
+    public int getTileOfNextCluster() {
+        maybeAdvance();
+        return currentTile;
+    }
+
+    private void advanceTile() {
+        if(nextTile == null){
+            throw new NoSuchElementException("No more tiles to advance!");
+        }
+
+        if(currentIterator != null) {
+            currentIterator.close();
+        }
+
+        currentIterator = makeTileIterator(tileToFiles.get(nextTile));
+        currentTile = nextTile;
+        nextTile = tileToFiles.higherKey(nextTile);
+    }
+
+    public void seekToTile(int oneBasedTileNumber) {
+        nextTile = oneBasedTileNumber;
+
+        if(!tileToFiles.containsKey(oneBasedTileNumber)) {
+            throw new PicardException("PerTileParser does not contain key(" + oneBasedTileNumber +") keys available (" + StringUtil.join(",", new ArrayList<Integer>(tileToFiles.keySet())) + ")");
+        }
+
+        if(currentIterator != null) {
+            currentIterator.close();
+        }
+        currentIterator = null;
+    }
+
+    public void maybeAdvance() {
+        if(!hasNext()) {
+            throw new NoSuchElementException();
+        }
+
+        if(currentIterator == null || !currentIterator.hasNext()) {
+            advanceTile();
+        }
+    }
+
+    public ILLUMINA_DATA next() {
+        maybeAdvance();
+
+        return currentIterator.next();
+    }
+
+    public void remove() {
+        throw new UnsupportedOperationException();
+    }
+
+    public boolean hasNext() {
+        // Skip over empty tiles
+        while ((currentIterator == null || !currentIterator.hasNext()) && nextTile != null) {
+            advanceTile();
+        }
+        return currentIterator != null && currentIterator.hasNext();
+    }
+
+    public void close() {
+        if(currentIterator != null) {
+            currentIterator.close();
+        }
+    }
+
+    public void verifyData(List<Integer> tiles, final int [] cycles) {
+        final List<Integer> mapTiles = new ArrayList<Integer>(this.tileToFiles.keySet());
+        if(!mapTiles.containsAll(tiles)) {
+            throw new PicardException("Missing tiles in PerTileParser expected(" + StringUtil.join(",", tiles) + ") but found (" + StringUtil.join(",", mapTiles) + ")");
+        }
+
+        if(!tiles.containsAll(mapTiles)) {
+            throw new PicardException("Extra tiles where found in PerTileParser  expected(" + StringUtil.join(",", tiles) + ") but found (" + StringUtil.join(",", mapTiles) + ")");
+        }
+    }
+}
diff --git a/src/java/picard/illumina/parser/PerTilePerCycleFileUtil.java b/src/java/picard/illumina/parser/PerTilePerCycleFileUtil.java
new file mode 100644
index 0000000..63af850
--- /dev/null
+++ b/src/java/picard/illumina/parser/PerTilePerCycleFileUtil.java
@@ -0,0 +1,268 @@
+package picard.illumina.parser;
+
+import htsjdk.samtools.util.IOUtil;
+import picard.PicardException;
+import picard.illumina.parser.fakers.FileFaker;
+import picard.illumina.parser.readers.BclReader;
+
+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;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
+import java.util.regex.Matcher;
+
+public class PerTilePerCycleFileUtil extends ParameterizedFileUtil {
+
+    private final CycleIlluminaFileMap cycleFileMap;
+    private final Set<Integer> detectedCycles = new TreeSet<Integer>();
+
+    public PerTilePerCycleFileUtil(final String extension,
+                                   final File base, final FileFaker faker, final int lane) {
+        super(true, extension, base, faker, lane);
+        //sideEffect, assigned to numCycles
+        this.cycleFileMap = getPerTilePerCycleFiles();
+    }
+
+    /**
+     * For the given tiles, populate a CycleIlluminaFileMap that contains all these tiles and will iterate through
+     * all the files for these tiles in expectedBase
+     * Side Effect: Assigns numCycles
+     *
+     * @return A CycleIlluminaFileMap with the listed (or all) tiles for at least expectedCycles number of cycles(or total available
+     * cycles if expectedCycles is null)
+     */
+    protected CycleIlluminaFileMap getPerTilePerCycleFiles() {
+        final CycleIlluminaFileMap cycledMap = new CycleIlluminaFileMap();
+
+        final File laneDir = base;
+        final File[] tempCycleDirs;
+        tempCycleDirs = IOUtil.getFilesMatchingRegexp(laneDir, IlluminaFileUtil.CYCLE_SUBDIRECTORY_PATTERN);
+        if (tempCycleDirs == null || tempCycleDirs.length == 0) {
+            return cycledMap;
+        }
+
+        for (final File tempCycleDir : tempCycleDirs) {
+            detectedCycles.add(getCycleFromDir(tempCycleDir));
+        }
+
+        final Set<Integer> uniqueTiles = new HashSet<Integer>();
+
+        for (final File cycleDir : tempCycleDirs) {
+            final IlluminaFileMap fileMap = getTiledFiles(cycleDir, matchPattern);
+            uniqueTiles.addAll(fileMap.keySet());
+            cycledMap.put(getCycleFromDir(cycleDir), fileMap);
+        }
+
+        this.tiles = Collections.unmodifiableList(new ArrayList<Integer>(uniqueTiles));
+        return cycledMap;
+    }
+
+    public CycleIlluminaFileMap getFiles() {
+        return cycleFileMap;
+    }
+
+    public CycleIlluminaFileMap getFiles(final List<Integer> tiles) {
+        return cycleFileMap.keep(tiles, detectedCycles);
+    }
+
+    /**
+     * Returns a cycleIlluminaFileMap with all available tiles but limited to the cycles passed in.  Any cycles that are missing
+     * cycle files or directories will be removed from the cycle list that is kept.
+     *
+     * @param cycles Cycles that should be present in the output CycleIlluminaFileMap
+     * @return A CycleIlluminaFileMap with all available tiles but at most the cycles passed in by the cycles parameter
+     */
+    public CycleIlluminaFileMap getFiles(final int[] cycles) {
+        //Remove any cycles that were discovered to be NON-EXISTENT when this util was instantiated
+        final Set<Integer> filteredCycles = removeNonExistentCycles(cycles);
+        return cycleFileMap.keep(tiles, filteredCycles);
+    }
+
+    /**
+     * Returns a cycleIlluminaFileMap that contains only the tiles and cycles specified (and fewer if the original CycleIlluminaFileMap, created
+     * on util instantiation, doesn't contain any of these tiles/cycles).
+     *
+     * @param cycles Cycles that should be present in the output CycleIlluminaFileMap
+     * @return A CycleIlluminaFileMap with at most the tiles/cycles listed in the parameters
+     */
+    public CycleIlluminaFileMap getFiles(final List<Integer> tiles, final int[] cycles) {
+        //Remove any cycles that were discovered to be NON-EXISTENT when this util was instantiated
+        final Set<Integer> filteredCycles = removeNonExistentCycles(cycles);
+        return cycleFileMap.keep(tiles, filteredCycles);
+    }
+
+    private Set<Integer> removeNonExistentCycles(final int[] cycles) {
+
+        final TreeSet<Integer> inputCyclesSet = new TreeSet<Integer>();
+        for (final Integer inputCycle : cycles) {
+            inputCyclesSet.add(inputCycle);
+        }
+
+        inputCyclesSet.retainAll(detectedCycles);
+
+        return inputCyclesSet;
+    }
+
+    public Set<Integer> getDetectedCycles() {
+        return detectedCycles;
+    }
+
+    /**
+     * Discover all files of this type in expectedBase that match pattern and construct a list of tiles
+     * available based on these files.  The same number of tiles is expected in each cycle dir.
+     *
+     * @return A list of tile integers for all tiles available
+     */
+    public List<Integer> getTiles() {
+        return tiles;
+    }
+
+    public boolean filesAvailable() {
+        boolean filesAvailable = false;
+        for (final IlluminaFileMap fileMap : cycleFileMap.values()) {
+            if (!fileMap.isEmpty()) {
+                filesAvailable = true;
+                break;
+            }
+        }
+        return filesAvailable;
+    }
+
+    @Override
+    public List<String> verify(final List<Integer> expectedTiles, final int[] expectedCycles) {
+        final List<String> failures = new LinkedList<String>();
+        final Map<Integer, Long> tileToFileLengthMap = new HashMap<Integer, Long>();
+
+        if (!base.exists()) {
+            failures.add("Base directory(" + base.getAbsolutePath() + ") does not exist!");
+        } else {
+            final CycleIlluminaFileMap cfm = getFiles(expectedTiles, expectedCycles);
+            for (final int currentCycle : expectedCycles) {
+                final IlluminaFileMap fileMap = cfm.get(currentCycle);
+                if (fileMap != null) {
+                    for (final int tile : expectedTiles) {
+                        final File cycleFile = fileMap.get(tile);
+                        if (cycleFile != null) {
+                            if (tileToFileLengthMap.get(tile) == null) {
+                                tileToFileLengthMap.put(tile, cycleFile.length());
+                            } else if (!extension.equals(".bcl.gz") && tileToFileLengthMap.get(tile) != cycleFile.length()) {
+
+                                // TODO: The gzip bcl files might not be the same length despite having the same content,
+                                // for now we're punting on this but this should be looked into at some point
+                                failures.add("File type " + extension
+                                        + " has cycles files of different length.  Current cycle ("
+                                        + currentCycle + ") " +
+                                        "Length of first non-empty file (" + tileToFileLengthMap.get(tile)
+                                        + ") length of current cycle (" + cycleFile.length() + ")"
+                                        + " File(" + cycleFile.getAbsolutePath() + ")");
+                            }
+                        } else {
+                            failures.add("File type " + extension + " is missing a file for cycle " + currentCycle + " and tile " + tile);
+                        }
+                    }
+                } else {
+                    failures.add("Missing file for cycle " + currentCycle + " in directory " + base.getAbsolutePath()
+                            + " for file type " + extension);
+                }
+            }
+
+        }
+
+
+        return failures;
+    }
+
+    @Override
+    public List<String> fakeFiles(final List<Integer> expectedTiles, final int[] expectedCycles,
+                                  final IlluminaFileUtil.SupportedIlluminaFormat format) {
+        final List<String> failures = new LinkedList<String>();
+
+        if (!base.exists()) {
+            base.mkdirs();
+        }
+
+        final Set<Integer> missingCycleSet = new TreeSet<Integer>();
+        for (final Integer cycle : expectedCycles) {
+            missingCycleSet.add(cycle);
+        }
+
+        missingCycleSet.removeAll(detectedCycles);
+
+        for (final Integer cycle : missingCycleSet) {
+            final File cycleDirectory = new File(base, "C" + cycle + ".1");
+            if (cycleDirectory.mkdirs()) {
+                detectedCycles.add(cycle);
+            }
+        }
+
+        final CycleIlluminaFileMap cfm = getPerTilePerCycleFiles();
+        final Map<Integer, Integer> tileToSizeMap = new HashMap<Integer, Integer>();
+        for (final int currentCycle : expectedCycles) {
+            final IlluminaFileMap fileMap = cfm.get(currentCycle);
+
+            if (fileMap == null) {
+                for (final Integer tile : expectedTiles) {
+                    final File fileToFake = new File(base + File.separator + getFileForCycle(currentCycle, tile));
+                    try {
+                        if (tileToSizeMap.containsKey(tile)) {
+                            faker.fakeFile(fileToFake, tileToSizeMap.get(tile));
+                        }
+                        else{
+                            faker.fakeFile(fileToFake, 1);
+                        }
+                    } catch (final IOException e) {
+                        failures.add("Could not create fake file: " + e.getMessage());
+                    }
+                }
+            } else {
+                for (final int tile : expectedTiles) {
+                    final File cycleFile = fileMap.get(tile);
+                    if (cycleFile != null && !tileToSizeMap.containsKey(tile)) {
+                        tileToSizeMap.put(tile, (int) BclReader.getNumberOfClusters(cycleFile));
+                    }
+                    try {
+                        if (cycleFile == null) {
+                            final File fileToFake = new File(base + File.separator + getFileForCycle(currentCycle, tile));
+                            if (tileToSizeMap.containsKey(tile)) {
+                                faker.fakeFile(fileToFake, tileToSizeMap.get(tile));
+                            } else {
+                                faker.fakeFile(fileToFake, 1);
+                            }
+                        }
+                    } catch (final IOException e) {
+                        failures.add("Could not create fake file: " + e.getMessage());
+                    }
+                }
+            }
+
+        }
+
+        for (final Integer cycle : missingCycleSet) {
+            failures.add("Missing cycle directory " + cycle + " in directory " + base.getAbsolutePath()
+                    + " for file type " + extension);
+        }
+        return failures;
+    }
+
+    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) {
+        final String fileName = tempCycleDir.getName();
+
+        final Matcher matcher = IlluminaFileUtil.CYCLE_SUBDIRECTORY_PATTERN.matcher(fileName);
+        if (!matcher.matches()) {
+            throw new PicardException("Invalid cycle directory name " + tempCycleDir.getName());
+        }
+
+        return Integer.parseInt(matcher.group(1));
+    }
+}
diff --git a/src/java/picard/illumina/parser/PosParser.java b/src/java/picard/illumina/parser/PosParser.java
new file mode 100644
index 0000000..d6e3aff
--- /dev/null
+++ b/src/java/picard/illumina/parser/PosParser.java
@@ -0,0 +1,133 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2012 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.illumina.parser;
+
+import htsjdk.samtools.util.CloseableIterator;
+import picard.PicardException;
+import picard.illumina.parser.readers.AbstractIlluminaPositionFileReader;
+import picard.illumina.parser.readers.ClocsFileReader;
+import picard.illumina.parser.readers.LocsFileReader;
+import picard.illumina.parser.readers.PosFileReader;
+
+import java.io.File;
+import java.util.Collections;
+import java.util.Set;
+
+import static htsjdk.samtools.util.CollectionUtil.makeSet;
+
+/**
+ * PosParser parses multiple files formatted as one of the three file formats that contain position information
+ * only (pos, locs, and clocs).  This parser takes a map from tilesToFiles and a FileType enum value indicating
+ * whether or not these are POS,LOCS, or CLOCS files.  The only client classes to this class should be IlluminaDataProvider
+ * and test classes.  Check out AbstractIlluminaFileReader, PosFileReader, LocsFileReader, and ClocsFileReader for
+ * more information on Position related illumina files.
+ */
+public class PosParser extends PerTileParser<PositionalData> {
+    private static Set<IlluminaDataType> supportedTypes = Collections.unmodifiableSet(makeSet(IlluminaDataType.Position));
+
+    /** The FileType of the files we are parsing */
+    private final IlluminaFileUtil.SupportedIlluminaFormat fileType;
+
+    public PosParser(final IlluminaFileMap tilesToFiles, final IlluminaFileUtil.SupportedIlluminaFormat fileType) {
+        super(tilesToFiles);
+        this.fileType = fileType;
+    }
+
+    public PosParser(final IlluminaFileMap tilesToFiles, final int startingTile, final IlluminaFileUtil.SupportedIlluminaFormat fileType) {
+        super(tilesToFiles, startingTile);
+        this.fileType = fileType;
+    }
+
+    /**
+     * Make an CloseableIterator<PositionalData> based on the given file and fileType specified at construction.
+     * This method wraps a reader in an iterator that converts it's output to the output format expected by
+     * IlluminaDataProvider (PositionalData).
+     * @param file A file for the current tile being parsed
+     * @return An iterator over the PositionalData in that file.
+     */
+    @Override
+    protected CloseableIterator<PositionalData> makeTileIterator(final File file) {
+
+        final AbstractIlluminaPositionFileReader fileReader;
+        switch(fileType){
+            case Pos:
+                fileReader = new PosFileReader(file);
+                break;
+
+            case Locs:
+                fileReader = new LocsFileReader(file);
+                break;
+
+            case Clocs:
+                fileReader = new ClocsFileReader(file);
+                break;
+
+            default:
+                throw new PicardException("Unrecognized pos file type " + fileType.name());
+        }
+
+        return new CloseableIterator<PositionalData>() {
+            private AbstractIlluminaPositionFileReader reader = fileReader;
+
+            public void close() {
+                reader.close();
+            }
+
+            public boolean hasNext() {
+                return reader.hasNext();
+            }
+
+            public PositionalData next() {
+                final AbstractIlluminaPositionFileReader.PositionInfo nextValue = reader.next();
+                return new PositionalData() {
+                    public int getXCoordinate() {
+                        return nextValue.xQseqCoord;
+                    }
+
+                    public int getYCoordinate() {
+                        return nextValue.yQseqCoord;
+                    }
+
+                    public int getLane() {
+                        return nextValue.lane;
+                    }
+
+                    public int getTile() {
+                        return nextValue.tile;
+                    }
+                };
+            }
+
+            public void remove() {
+                throw new UnsupportedOperationException();
+            }
+        };
+    }
+
+    @Override
+    public Set<IlluminaDataType> supportedTypes() {
+        return supportedTypes;
+    }
+
+}
diff --git a/src/java/picard/illumina/parser/Range.java b/src/java/picard/illumina/parser/Range.java
new file mode 100644
index 0000000..8629675
--- /dev/null
+++ b/src/java/picard/illumina/parser/Range.java
@@ -0,0 +1,65 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.illumina.parser;
+
+import picard.PicardException;
+
+/**
+ * While structurally identical to CompositeIndex, this class is maintained as it makes code more readable when the two are used together (see QSeqParser)
+ * @author jburke at broadinstitute.org
+ */
+public class Range {
+    public final int start;
+    public final int end;
+    public final int length;
+    public Range(final int start, final int end) {
+        if(end < start) {
+            throw new PicardException("Nonsensical Range(" + start + ", " + end + ")");
+        }
+
+        this.start = start;
+        this.end   = end;
+        this.length = end - start + 1;
+    }
+
+    @Override
+    public boolean equals(final Object object) {
+        if(object == null || !(object instanceof Range)) {
+            return false;
+        }
+
+        final Range that = (Range) object;
+        return that.start == this.start && that.end == this.end;
+    }
+
+    @Override
+    public int hashCode() {
+        return (int)Math.pow(start, end);
+    }
+
+    @Override
+    public String toString() {
+        return "Range(" + start + ", " + end + ", " + length +")";
+    }
+}
diff --git a/src/java/picard/illumina/parser/ReadData.java b/src/java/picard/illumina/parser/ReadData.java
new file mode 100644
index 0000000..b1b2909
--- /dev/null
+++ b/src/java/picard/illumina/parser/ReadData.java
@@ -0,0 +1,96 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.illumina.parser;
+
+/**
+ * Data for a single end of a paired-end read, a barcode read, or for the entire read if not paired end.
+ *
+ * @author jburke at broadinstitute.org
+ */
+public class ReadData {
+    private byte[] bases;
+    private byte[] qualities;
+    private FourChannelIntensityData rawIntensities;
+    private FourChannelIntensityData noise;
+    private ReadType readType;
+
+    public ReadData() {
+    }
+
+    public ReadData(ReadType readType) {
+        this.readType = readType;
+    }
+
+    /**
+     * @return ASCII byte representation of bases.
+     */
+    public byte[] getBases() {
+        return bases;
+    }
+
+    public void setBases(final byte[] bases) {
+        this.bases = bases;
+    }
+
+    /**
+     * @return Noise values as produced by Illumina software, converted to shorts.
+     */
+    public FourChannelIntensityData getNoise() {
+        return noise;
+    }
+
+    public void setNoise(final FourChannelIntensityData noise) {
+        this.noise = noise;
+    }
+
+    /**
+     * @return Phred-binary scaled qualities.  E.g. Q20 is the byte with value==20.
+     */
+    public byte[] getQualities() {
+        return qualities;
+    }
+
+    public void setQualities(final byte[] qualities) {
+        this.qualities = qualities;
+    }
+
+    /**
+     * @return Raw intensity values as produced by Illumina software, converted to shorts.
+     */
+    public FourChannelIntensityData getRawIntensities() {
+        return rawIntensities;
+    }
+
+    public void setRawIntensities(final FourChannelIntensityData rawIntensities) {
+        this.rawIntensities = rawIntensities;
+    }
+
+    public ReadType getReadType() {
+        return readType;
+    }
+
+    public void setReadType(final ReadType readType) {
+        this.readType = readType;
+    }
+}
diff --git a/src/java/picard/illumina/parser/ReadDescriptor.java b/src/java/picard/illumina/parser/ReadDescriptor.java
new file mode 100644
index 0000000..956e828
--- /dev/null
+++ b/src/java/picard/illumina/parser/ReadDescriptor.java
@@ -0,0 +1,57 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.illumina.parser;
+
+/**
+ * Represents one set of cycles in an ReadStructure (e.g. if the ReadStructure is 36TB836T then
+ * 36T, 8B, and 36T are invidually represented internally as a ReadDescriptor).
+ */
+public class ReadDescriptor {
+    public final int length;
+    public final ReadType type;
+
+    public ReadDescriptor(final int length, final ReadType type) {
+        this.length = length;
+        this.type = type;
+    }
+
+    @Override
+    public String toString() {
+        return this.length + this.type.name();
+    }
+
+    public boolean equals(final Object other) {
+        if(this == other) return true;
+        if(other.getClass() != this.getClass()) return false;
+
+        final ReadDescriptor that = (ReadDescriptor) other;
+        return this.length == that.length && this.type == that.type;
+    }
+
+    @Override
+    public int hashCode() {
+        return 31 * this.type.ordinal() + 379 * length;
+    }
+}
diff --git a/src/java/picard/illumina/parser/ReadStructure.java b/src/java/picard/illumina/parser/ReadStructure.java
new file mode 100644
index 0000000..7bf53b9
--- /dev/null
+++ b/src/java/picard/illumina/parser/ReadStructure.java
@@ -0,0 +1,361 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.illumina.parser;
+
+import htsjdk.samtools.util.CoordMath;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * Describes the intended logical output structure of clusters of an Illumina run.
+ * (e.g. If the input data consists of 80 base
+ * clusters and we provide a read structure of "36T8B36T" then those bases should be split into 3 reads:
+ *     read one should be 36 cycles of template,
+ *     read two should be 8 cycles of barcode,
+ *     read three should be another 36 cycle template read.)
+ *  Note: In future releases, ReadStructures will be specified by clients of IlluminaDataProvider(currently
+ *  read structures are detected by IlluminaDataProviderFactory via the structure of QSeq files). When working with
+ *  QSeq formats, while the individual reads need not fall on QSeq end file boundaries the total number of cycles
+ *  should equal the total number of cycles found in all end files for one tile.  (e.g. if I have 80 reads and
+ *  3 end files per tile, those end files should have a total of 80 reads in them regardless of how many reads
+ *  appear in each individual file)
+ *
+ *  @author jburke at broadinstitute.org
+ */
+public class ReadStructure {
+    public static final String PARAMETER_DOC =
+            "A description of the logical structure of clusters in an Illumina Run, i.e. a description of the structure IlluminaBasecallsToSam "   +
+            "assumes the  data to be in. It should consist of integer/character pairs describing the number of cycles and the type of those "       +
+            "cycles (B for Barcode, T for Template, and S for skip).  E.g. If the input data consists of 80 base clusters and we provide a "        +
+            "read structure of \"36T8B8S28T\" then, before being converted to SAM records those bases will be split into 4 reads where "            +
+            "read one consists of 36 cycles of template, read two consists of 8 cycles of barcode, read three will be an 8 base read of "           +
+            "skipped cycles and read four is another 28 cycle template read.  The read consisting of skipped cycles would NOT be included "         +
+            "in output SAM/BAM file read groups.";
+    public final List<ReadDescriptor> descriptors;
+    public final int totalCycles;
+    public final int [] readLengths;
+
+    public final Substructure barcodes;
+    public final Substructure templates;
+    public final Substructure skips;
+
+    //nonSkips include barcode and template indices in the order they appear in the descriptors list
+    public final Substructure nonSkips;
+
+    /** Characters representing valid ReadTypes */
+    private static final String ValidTypeChars;
+
+    /** ValidTypeChars except characters are separated by commas */
+    private static final String ValidTypeCharsWSep;
+
+    static {
+        String validTypes = "";
+        String vtWSep = "";
+
+        boolean written = false;
+        for(ReadType rt : ReadType.values()) {
+            if(written) {
+                vtWSep += ",";
+            }
+
+            validTypes += rt.name();
+            vtWSep += rt.name();
+        }
+
+        ValidTypeChars = validTypes;
+        ValidTypeCharsWSep = vtWSep;
+    }
+
+    private static final String ReadStructureMsg = "Read structure must be formatted as follows: " +
+            "<number of bases><type><number of bases><type>...<number of bases> where number of bases is a " +
+            "positive (NON-ZERO) integer and type is one of the following characters " + ValidTypeCharsWSep +
+            " (e.g. 76T8B68T would denote a paired-end run with a 76 base first end an 8 base barcode followed by a 68 base second end).";
+    private static final Pattern FullPattern = java.util.regex.Pattern.compile("^((\\d+[" + ValidTypeChars + "]{1}))+$");
+    private static final Pattern SubPattern = java.util.regex.Pattern.compile("(\\d+)([" + ValidTypeChars + "]{1})");
+
+    /**
+     * Copies collection into descriptors (making descriptors unmodifiable) and then calculates relevant statistics about descriptors.
+     * @param collection A collection of ReadDescriptors that describes this ReadStructure
+     */
+    public ReadStructure(final List<ReadDescriptor> collection) {
+        if(collection.size() == 0) { //If this changes, change hashcode
+            throw new IllegalArgumentException("ReadStructure does not support 0 length clusters!");
+        }
+
+        final List<Range> allRanges = new ArrayList<Range>(collection.size());
+        this.descriptors = Collections.unmodifiableList(collection);
+        int cycles = 0;
+
+        final List<Integer> nonSkipIndicesList  = new ArrayList<Integer>();
+        final List<Integer> barcodeIndicesList  = new ArrayList<Integer>();
+        final List<Integer> templateIndicesList = new ArrayList<Integer>();
+        final List<Integer> skipIndicesList     = new ArrayList<Integer>();
+        readLengths = new int[collection.size()];
+
+        int currentCycleIndex = 0;   // Current cycle in the entire read structure
+        int descIndex = 0;
+        for(final ReadDescriptor desc : descriptors) {
+            if(desc.length == 0 || desc.length < 0) {
+                throw new IllegalArgumentException("ReadStructure only supports ReadDescriptor lengths > 0, found(" + desc.length + ")");
+            }
+
+            final int endIndexOfRange = CoordMath.getEnd(currentCycleIndex, desc.length);
+            allRanges.add(new Range(currentCycleIndex, endIndexOfRange));
+            currentCycleIndex      = endIndexOfRange + 1;
+
+            readLengths[descIndex] = desc.length;
+            cycles                += desc.length;
+            switch(desc.type) {
+                case B:
+                    nonSkipIndicesList.add(descIndex);
+                    barcodeIndicesList.add(descIndex);
+                    break;
+                case T:
+                    nonSkipIndicesList.add(descIndex);
+                    templateIndicesList.add(descIndex);
+                    break;
+                case S:
+                    skipIndicesList.add(descIndex);
+                    break;
+
+                default:
+                    throw new IllegalArgumentException("Unsupported ReadType (" + desc.type + ") encountered by IlluminaRunConfiugration!");
+            }
+            ++descIndex;
+        }
+
+        this.totalCycles    = cycles;
+        this.barcodes       = new Substructure(barcodeIndicesList,  allRanges);
+        this.templates      = new Substructure(templateIndicesList, allRanges);
+        this.skips          = new Substructure(skipIndicesList,     allRanges);
+        this.nonSkips       = new Substructure(nonSkipIndicesList,  allRanges);
+    }
+
+    /**
+     * Converts readStructureString into a List<ReadDescriptor> and calls the primary constructor using this List as it's argument.
+     * @param readStructureString A string of the format <number of bases><type><number of bases><type>...<number of bases><type> describing
+     * this read structure
+     */
+    public ReadStructure(final String readStructureString) {
+        this(readStructureStringToDescriptors(readStructureString));
+    }
+
+    public int getNumDescriptors() {
+        return descriptors.size();
+    }
+
+    /**
+     * Converts this object into a String using rules complementary to the single string constructor above.
+     * @return A string of the form <number of bases><type><number of bases><type>...<number of bases><type> with one
+     * <number of bases><type> per ReadDescriptor in descriptors.
+     */
+    @Override
+    public String toString() {
+        String out = "";
+        for(final ReadDescriptor rd : descriptors) {
+            out += rd.toString();
+        }
+        return out;
+    }
+
+    /**
+     * Converts readStructureString into a List<ReadDescriptor>
+     * @param readStructure A string of the format <number of bases><type><number of bases><type>...<number of bases><type> describing
+     * a read structure
+     * @return A List<ReadDescriptor> corresponding to the input string
+     */
+    private final static List<ReadDescriptor> readStructureStringToDescriptors(final String readStructure) {
+        final Matcher fullMatcher = FullPattern.matcher(readStructure);
+        if(!fullMatcher.matches()) {
+            throw new IllegalArgumentException(readStructure + " cannot be parsed as a ReadStructure! " + ReadStructureMsg);
+        }
+
+
+        final Matcher subMatcher = SubPattern.matcher(readStructure);
+        final List<ReadDescriptor> descriptors = new ArrayList<ReadDescriptor>();
+        while(subMatcher.find()) {
+            final ReadDescriptor rd =  new ReadDescriptor(Integer.parseInt(subMatcher.group(1)), ReadType.valueOf(subMatcher.group(2)));
+            descriptors.add(rd);
+        }
+
+        return descriptors;
+    }
+
+    @Override
+    public boolean equals(final Object thatObj) {
+        if(this == thatObj) return true;
+        if(this.getClass() != thatObj.getClass()) return false;
+
+        final ReadStructure that = (ReadStructure) thatObj;
+        if(this.descriptors.size() != that.descriptors.size()) {
+            return false;
+        }
+
+        for(int i = 0; i < this.descriptors.size(); i++) {
+            if(!this.descriptors.get(i).equals(that.descriptors.get(i))) {
+                return false;
+            }
+        }
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        int res = descriptors.get(0).hashCode();
+        for(int i = 1; i < descriptors.size(); i++) {
+            res *= descriptors.get(i).hashCode();
+        }
+
+        return res;
+    }
+
+    /** Represents a subset of ReadDescriptors in the containing ReadStructure, they ARE NOT necessarily contiguous
+     *  in the containing ReadStrucure but they ARE in the order they appear in the containing ReadStructure */
+    public class Substructure implements Iterable<ReadDescriptor> {
+        /** Total number of descriptors == readTypeIndices.length */
+        private final int   numDescriptors;
+
+        /** The indices into the ReadStructure for this Substructure */
+        private final int   [] descriptorIndices;
+
+        /** The length of each individual ReadDescriptor in this substructure */
+        private final int   [] descriptorLengths;
+
+        /** Ranges of cycle indexes (cycle # - 1) covered by each descriptor */
+        private final Range [] cycleIndexRanges;
+
+        /** The total number of cycles covered by this Substructure */
+        private final int   totalCycles;
+
+        /**
+         * Indices into the ReadStructure.descriptors for this specific substructure, indices
+         * must be in the order they appear in the descriptors list (but the indices do NOT have to be continuous)
+         * @param descriptorIndices  A list of indices into ReadStructure.descriptors of the enclosing ReadStructure
+         * @param allRanges A list of ranges for all reads (not just those in this substructure) in the same order as ReadStructure.descriptors
+         */
+        public Substructure(final List<Integer> descriptorIndices, final List<Range> allRanges) {
+            this.numDescriptors    = descriptorIndices.size();
+
+            this.descriptorIndices = new int[numDescriptors];
+            this.descriptorLengths = new int[numDescriptors];
+            for(int i = 0; i < descriptorIndices.size(); i++) {
+                this.descriptorIndices[i] = descriptorIndices.get(i);
+                this.descriptorLengths[i] = descriptors.get(this.descriptorIndices[i]).length;
+            }
+
+            this.cycleIndexRanges  = new Range[numDescriptors];
+            for(int i = 0; i < numDescriptors; i++) {
+                this.cycleIndexRanges[i] = allRanges.get(this.descriptorIndices[i]);
+            }
+
+            int totalLength = 0;
+            for(final int length : descriptorLengths) {
+                totalLength += length;
+            }
+            totalCycles      = totalLength;
+        }
+
+        public ReadDescriptor get(final int index) {
+            return descriptors.get(descriptorIndices[index]);
+        }
+
+        public boolean isEmpty() {
+            return numDescriptors == 0;
+        }
+
+        public int length() {
+            return numDescriptors;
+        }
+
+        public int getTotalCycles() {
+            return totalCycles;
+        }
+
+        public int [] getIndices() {
+            return descriptorIndices;
+        }
+
+        public int [] getDescriptorLengths() {
+            return descriptorLengths;
+        }
+
+        public Range [] getCycleIndexRanges() {
+            return cycleIndexRanges;
+        }
+        public Iterator<ReadDescriptor> iterator() {
+            return new IndexedIterator(descriptorIndices);
+        }
+
+        public int [] getCycles() {
+            int [] cycles = new int[totalCycles];
+            int cycleIndex = 0;
+            for(final Range range : cycleIndexRanges) {
+                for(int i = range.start; i <= range.end; i++) {
+                    cycles[cycleIndex++] = i+1;
+                }
+            }
+            return cycles;
+        }
+
+        /** Create a ReadStructure from this substructure composed of only the descriptors contained in this substructure, Any
+         * ReadDescriptors not in this substructure are treated as if they don't exist (e.g. if you have a readStructure
+         * (36T8S8B36T) and this substructure consists of all the non-skipped reads than toReadStructure would return
+         * (36T8B36T) in ReadStructure form*/
+        public ReadStructure toReadStructure() {
+            final List<ReadDescriptor> descriptors = new ArrayList<ReadDescriptor>(numDescriptors);
+            for(final ReadDescriptor rd : this) {
+                descriptors.add(rd);
+            }
+            return new ReadStructure(descriptors);
+        }
+    }
+
+    /** An iterator over a Substructure's ReadDescriptors */
+    private class IndexedIterator implements Iterator<ReadDescriptor> {
+        private int index;
+        private int [] indices;
+        public IndexedIterator(final int [] indices) {
+            this.indices = indices;
+            this.index = 0;
+        }
+
+        public boolean hasNext() {
+            return index < indices.length;
+        }
+
+        public ReadDescriptor next() {
+            return descriptors.get(indices[index++]);
+        }
+
+        public void remove() {
+            throw new UnsupportedOperationException();
+        }
+    }
+}
diff --git a/src/java/picard/illumina/parser/ReadType.java b/src/java/picard/illumina/parser/ReadType.java
new file mode 100644
index 0000000..bd69cd5
--- /dev/null
+++ b/src/java/picard/illumina/parser/ReadType.java
@@ -0,0 +1,39 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.illumina.parser;
+
+/**
+* A read type describes a stretch of cycles in an ReadStructure
+* (e.g. Assume we have a paired end/barcoded run with the 76 template cycles followed by 8 barcode cycles followed by
+* another 76 template reads, the run would be represented by the ReadStructure 76T8B76T)
+* Note: Currently SKIP is unused by IlluminaBasecallsToSam, ExtractIlluminaBarcodes, and IlluminaDataProvider
+**/
+public enum ReadType {
+    T, B, S;
+
+    public static final ReadType Template = T;
+    public static final ReadType Barcode  = B;
+    public static final ReadType Skip     = S;
+}
diff --git a/src/java/picard/illumina/parser/Tile.java b/src/java/picard/illumina/parser/Tile.java
new file mode 100644
index 0000000..a08f219
--- /dev/null
+++ b/src/java/picard/illumina/parser/Tile.java
@@ -0,0 +1,119 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.illumina.parser;
+
+import htsjdk.samtools.util.CollectionUtil;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.Map;
+
+/** Represents a tile from TileMetricsOut.bin. Stores information on location (lane & tile #, density, number of clusters and the
+ * phasing/prephasing values associated with this tile
+ *
+ * @author jgentry
+ */
+public class Tile {
+    private final int lane, tile;
+    private final float density, clusters;
+
+    private final Map<TileTemplateRead, Float> phasingMap;
+    private final Map<TileTemplateRead, Float> prePhasingMap;
+
+    /**
+     * @param tilePhasingValues Either one or two TilePhasingValues, corresponding to the FIRST and potentially SECOND template reads
+     */
+    public Tile(final int lane, final int tile, final float density, final float clusters, final TilePhasingValue... tilePhasingValues) {
+        this.lane = lane;
+        this.tile = tile;
+        this.density = density;
+        this.clusters = clusters;
+
+        final Collection<TilePhasingValue> phasingValues = ensureSoleTilePhasingValuesPerRead(Arrays.asList(tilePhasingValues));
+
+        final Map<TileTemplateRead, Float> phasingMap = new HashMap<TileTemplateRead, Float>();
+        final Map<TileTemplateRead, Float> prePhasingMap = new HashMap<TileTemplateRead, Float>();
+
+        /** For each of the TileReads, assign their phasing & prephasing values to the respective maps, which we will
+         * use later to calculate the medians
+         */
+        for (final TilePhasingValue phasingValue : phasingValues) {
+            phasingMap.put(phasingValue.getTileTemplateRead(), phasingValue.getPhasingValue());
+            prePhasingMap.put(phasingValue.getTileTemplateRead(), phasingValue.getPrePhasingValue());
+        }
+
+        this.phasingMap = Collections.unmodifiableMap(phasingMap);
+        this.prePhasingMap = Collections.unmodifiableMap(prePhasingMap);
+    }
+
+    /** Returns the number of this tile's parent lane. */
+    public int getLaneNumber() {
+        return lane;
+    }
+
+    /** Returns the number/name of this tile. */
+    public int getTileNumber() {
+        return tile;
+    }
+
+    /** Returns the cluster density of this tile, in units of [cluster/mm^2]. */
+    public float getClusterDensity() {
+        return density;
+    }
+
+    /** Returns the number of on this tile. */
+    public float getClusterCount() {
+        return clusters;
+    }
+
+    public Map<TileTemplateRead, Float> getPhasingMap() {
+        return phasingMap;
+    }
+
+    public Map<TileTemplateRead, Float> getPrePhasingMap() {
+        return prePhasingMap;
+    }
+
+    /** For any given TileTemplateRead, we want to make sure that there is only a single TilePhasingValue */
+    private static Collection<TilePhasingValue> ensureSoleTilePhasingValuesPerRead(final Collection<TilePhasingValue> tilePhasingValues) {
+        final Map<TileTemplateRead, Collection<TilePhasingValue>> partitionedMap = CollectionUtil.partition(tilePhasingValues,
+                new CollectionUtil.Partitioner<TilePhasingValue, TileTemplateRead>() {
+                    @Override
+                    public TileTemplateRead getPartition(final TilePhasingValue phasingValue) {
+                        return phasingValue.getTileTemplateRead();
+                    }
+                });
+
+        final Collection<TilePhasingValue> newTilePhasingValues = new LinkedList<TilePhasingValue>();
+        for (final TileTemplateRead read : partitionedMap.keySet()) {
+            newTilePhasingValues.add(CollectionUtil.getSoleElement(partitionedMap.get(read)));
+        }
+
+        return newTilePhasingValues;
+    }
+}
diff --git a/src/java/picard/illumina/parser/TileIndex.java b/src/java/picard/illumina/parser/TileIndex.java
new file mode 100644
index 0000000..298d9a1
--- /dev/null
+++ b/src/java/picard/illumina/parser/TileIndex.java
@@ -0,0 +1,170 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.illumina.parser;
+
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.IOUtil;
+import picard.PicardException;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.NoSuchElementException;
+import java.util.Set;
+
+/**
+ * Load a file containing 8-byte records like this:
+ * tile number: 4-byte int
+ * number of clusters in tile: 4-byte int
+ * Number of records to read is determined by reaching EOF.
+ */
+public class TileIndex implements Iterable<TileIndex.TileIndexRecord> {
+    private final File tileIndexFile;
+    private final List<TileIndexRecord> tiles = new ArrayList<TileIndexRecord>();
+
+    TileIndex(final File tileIndexFile) {
+        try {
+            this.tileIndexFile = tileIndexFile;
+            final InputStream is = IOUtil.maybeBufferInputStream(new FileInputStream(tileIndexFile));
+            final ByteBuffer buf = ByteBuffer.allocate(8);
+            buf.order(ByteOrder.LITTLE_ENDIAN);
+            int absoluteRecordIndex = 0;
+            int numTiles = 0;
+            while (readTileIndexRecord(buf.array(), buf.capacity(), is)) {
+                buf.rewind();
+                buf.limit(buf.capacity());
+                final int tile = buf.getInt();
+                // Note: not handling unsigned ints > 2^31, but could if one of these exceptions is thrown.
+                if (tile < 0) throw new PicardException("Tile number too large in " + tileIndexFile.getAbsolutePath());
+                final int numClusters = buf.getInt();
+                if (numClusters < 0) throw new PicardException("Cluster size too large in " + tileIndexFile.getAbsolutePath());
+                tiles.add(new TileIndexRecord(tile, numClusters, absoluteRecordIndex, numTiles++));
+                absoluteRecordIndex += numClusters;
+            }
+            CloserUtil.close(is);
+        } catch (final IOException e) {
+            throw new PicardException("Problem reading " + tileIndexFile.getAbsolutePath(), e);
+        }
+    }
+
+    public File getFile() {
+        return tileIndexFile;
+    }
+
+    public int getNumTiles() {
+        return tiles.size();
+    }
+
+    private boolean readTileIndexRecord(final byte[] buf, final int numBytes, final InputStream is) throws IOException {
+        int totalBytesRead = 0;
+        while (totalBytesRead < numBytes) {
+            final int bytesRead = is.read(buf, totalBytesRead, numBytes - totalBytesRead);
+            if (bytesRead == -1) {
+                if (totalBytesRead != 0) {
+                    throw new PicardException(tileIndexFile.getAbsolutePath() + " has incomplete last block");
+                } else return false;
+            }
+            totalBytesRead += bytesRead;
+        }
+        return true;
+    }
+
+    public List<Integer> getTiles() {
+        final List<Integer> ret = new ArrayList<Integer>(tiles.size());
+        for (final TileIndexRecord rec : tiles) ret.add(rec.tile);
+        return ret;
+    }
+
+    public List<String> verify(final List<Integer> expectedTiles) {
+        final Set<Integer> tileSet = new HashSet<Integer>(tiles.size());
+        for (final TileIndexRecord rec : tiles) tileSet.add(rec.tile);
+        final List<String> failures = new LinkedList<String>();
+        for (final int expectedTile : expectedTiles) {
+            if (!tileSet.contains(expectedTile)) {
+                failures.add("Tile " + expectedTile + " not found in " + tileIndexFile.getAbsolutePath());
+            }
+        }
+        return failures;
+    }
+
+    @Override
+    public Iterator<TileIndexRecord> iterator() {
+        return tiles.iterator();
+    }
+
+    /**
+     * @throws java.util.NoSuchElementException if tile is not found
+     */
+    public TileIndexRecord findTile(final int tileNumber) {
+        for (final TileIndexRecord rec : this) {
+            if (rec.tile == tileNumber) return rec;
+            if (rec.tile > tileNumber) {
+                break;
+            }
+        }
+        throw new NoSuchElementException(String.format("Tile %d not found in %s", tileNumber, tileIndexFile));
+    }
+
+    public static class TileIndexRecord {
+        /**
+         * Number of the tile, e.g. 11101.  These don't necessarily start at 0, and there may be gaps.
+         */
+        final int tile;
+
+        final int numClustersInTile;
+
+        public int getNumClustersInTile() {
+            return numClustersInTile;
+        }
+
+        public int getZeroBasedTileNumber() {
+            return zeroBasedTileNumber;
+        }
+
+        /**
+         * I.e. the sum of numClustersInTile for all tiles preceding this one.
+         */
+        final int indexOfFirstClusterInTile;
+
+        /**
+         * A contiguous numbering of tiles starting at 0.
+         */
+        final int zeroBasedTileNumber;
+
+        private TileIndexRecord(final int tile, final int numClustersInTile, final int indexOfFirstClusterInTile, final int zeroBasedTileNumber) {
+            this.tile = tile;
+            this.numClustersInTile = numClustersInTile;
+            this.indexOfFirstClusterInTile = indexOfFirstClusterInTile;
+            this.zeroBasedTileNumber = zeroBasedTileNumber;
+        }
+    }
+}
diff --git a/src/java/picard/illumina/parser/TileMetricsUtil.java b/src/java/picard/illumina/parser/TileMetricsUtil.java
new file mode 100644
index 0000000..04af80f
--- /dev/null
+++ b/src/java/picard/illumina/parser/TileMetricsUtil.java
@@ -0,0 +1,161 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.illumina.parser;
+
+import htsjdk.samtools.util.CollectionUtil;
+import htsjdk.samtools.util.IterableAdapter;
+import picard.PicardException;
+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.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * Utility for reading the tile data from an Illumina run directory's TileMetricsOut.bin file
+ *
+ * @author mccowan
+ */
+public class TileMetricsUtil {
+    /** 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. */
+    public static String TILE_METRICS_OUT_FILE_NAME = "TileMetricsOut.bin";
+
+    /** 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 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)
+     */
+    public static Collection<Tile> parseTileMetrics(final File tileMetricsOutFile, final ReadStructure readStructure) throws FileNotFoundException {
+        // Get the tile metrics lines from TileMetricsOut, keeping only the last value for any Lane/Tile/Code combination
+        final Collection<IlluminaTileMetrics> tileMetrics = determineLastValueForLaneTileMetricsCode(new TileMetricsOutReader
+                (tileMetricsOutFile));
+
+        // Collect the tiles by lane & tile, and then collect the metrics by lane
+        final Map<String, Collection<IlluminaTileMetrics>> locationToMetricsMap = partitionTileMetricsByLocation(tileMetrics);
+        final Collection<Tile> tiles = new LinkedList<Tile>();
+        for (final Map.Entry<String, Collection<IlluminaTileMetrics>> entry : locationToMetricsMap.entrySet()) {
+            final Collection<IlluminaTileMetrics> tileRecords = entry.getValue();
+
+            // Get a mapping from metric code number to the corresponding IlluminaTileMetrics
+            final Map<Integer, Collection<IlluminaTileMetrics>> codeMetricsMap = partitionTileMetricsByCode(tileRecords);
+
+            final Set<Integer> observedCodes = codeMetricsMap.keySet();
+            if (!(observedCodes.contains(IlluminaMetricsCode.DENSITY_ID.getMetricsCode()) && observedCodes.contains(IlluminaMetricsCode.CLUSTER_ID.getMetricsCode())))
+                throw new PicardException(String.format("Expected to find cluster and density record codes (%s and %s) in records read for tile location %s (lane:tile), but found only %s.",
+                        IlluminaMetricsCode.CLUSTER_ID.getMetricsCode(), IlluminaMetricsCode.DENSITY_ID.getMetricsCode(), entry.getKey(), observedCodes));
+
+            final IlluminaTileMetrics densityRecord = CollectionUtil.getSoleElement(codeMetricsMap.get(IlluminaMetricsCode.DENSITY_ID.getMetricsCode()));
+            final IlluminaTileMetrics clusterRecord = CollectionUtil.getSoleElement(codeMetricsMap.get(IlluminaMetricsCode.CLUSTER_ID.getMetricsCode()));
+
+            // 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<TilePhasingValue> tilePhasingValues = getTilePhasingValues(codeMetricsMap, readStructure);
+
+            tiles.add(new Tile(densityRecord.getLaneNumber(), densityRecord.getTileNumber(), densityRecord.getMetricValue(), clusterRecord.getMetricValue(),
+                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<TilePhasingValue> getTilePhasingValues(final Map<Integer, Collection<IlluminaTileMetrics>> codeMetricsMap, final ReadStructure readStructure) {
+        boolean isFirstRead = true;
+        final Collection<TilePhasingValue> tilePhasingValues = new ArrayList<TilePhasingValue>();
+        for (int descriptorIndex = 0; descriptorIndex < readStructure.descriptors.size(); descriptorIndex++) {
+            if (readStructure.descriptors.get(descriptorIndex).type == ReadType.Template) {
+                final TileTemplateRead tileTemplateRead = isFirstRead ? TileTemplateRead.FIRST : TileTemplateRead.SECOND;
+                // For both phasing & prephasing, pull out the value and create a TilePhasingValue for further processing
+                final int phasingCode = IlluminaMetricsCode.getPhasingCode(descriptorIndex, IlluminaMetricsCode.PHASING_BASE);
+                final int prePhasingCode = IlluminaMetricsCode.getPhasingCode(descriptorIndex, IlluminaMetricsCode.PREPHASING_BASE);
+
+                if (!(codeMetricsMap.containsKey(phasingCode) && codeMetricsMap.containsKey(prePhasingCode))) {
+                    throw new PicardException("Don't have both phasing and prephasing values for tile");
+                }
+
+                tilePhasingValues.add(new TilePhasingValue(tileTemplateRead,
+                        CollectionUtil.getSoleElement(codeMetricsMap.get(phasingCode)).getMetricValue(),
+                        CollectionUtil.getSoleElement(codeMetricsMap.get(prePhasingCode)).getMetricValue()));
+                isFirstRead = false;
+            }
+        }
+
+        return tilePhasingValues;
+    }
+
+    /** According to Illumina, for every lane/tile/code combination they will only use the last value. Filter out the previous values */
+    private static Collection<IlluminaTileMetrics> determineLastValueForLaneTileMetricsCode(final Iterator<IlluminaTileMetrics>
+                                                                                                    tileMetricsIterator) {
+        final Map<TileMetricsOutReader.IlluminaLaneTileCode, IlluminaTileMetrics> filteredTileMetrics = new HashMap<TileMetricsOutReader.IlluminaLaneTileCode, IlluminaTileMetrics>();
+        for (final IlluminaTileMetrics illuminaTileMetrics : new IterableAdapter<IlluminaTileMetrics>(tileMetricsIterator)) {
+            filteredTileMetrics.put(illuminaTileMetrics.getLaneTileCode(), illuminaTileMetrics);
+        }
+
+        return filteredTileMetrics.values();
+    }
+
+    private static String renderMetricLocationKey(final IlluminaTileMetrics metric) {
+        return String.format("%s:%s", metric.getLaneNumber(), metric.getTileNumber());
+    }
+
+    // Wrapper around CollectionUtil.Partitioner, purely to de-bulk the actual methods
+    private static Map<Integer, Collection<IlluminaTileMetrics>> partitionTileMetricsByCode(final Collection<IlluminaTileMetrics> tileMetrics) {
+        return CollectionUtil.partition(tileMetrics, new CollectionUtil.Partitioner<IlluminaTileMetrics, Integer>() {
+            @Override
+            public Integer getPartition(final IlluminaTileMetrics metric) {
+                return metric.getMetricCode();
+            }
+        });
+    }
+
+    // Wrapper around CollectionUtil.Partitioner, purely to de-bulk the actual methods
+    private static Map<String, Collection<IlluminaTileMetrics>> partitionTileMetricsByLocation(final Collection<IlluminaTileMetrics> tileMetrics) {
+        return CollectionUtil.partition(tileMetrics, new CollectionUtil.Partitioner<IlluminaTileMetrics, String>() {
+            @Override
+            public String getPartition(final IlluminaTileMetrics metric) {
+                return renderMetricLocationKey(metric);
+            }
+        });
+    }
+}
diff --git a/src/java/picard/illumina/parser/TilePhasingValue.java b/src/java/picard/illumina/parser/TilePhasingValue.java
new file mode 100644
index 0000000..3ab1461
--- /dev/null
+++ b/src/java/picard/illumina/parser/TilePhasingValue.java
@@ -0,0 +1,30 @@
+package picard.illumina.parser;
+
+/**
+ * Captures information about a phasing value - Which read it corresponds to, which phasing type and a median value
+ *
+ *  @author jgentry
+ */
+public class TilePhasingValue {
+    private final TileTemplateRead tileTemplateRead;
+    private final float phasingValue;
+    private final float prePhasingValue;
+
+    public TilePhasingValue(final TileTemplateRead tileTemplateRead, final float phasingValue, final float prePhasingValue) {
+        this.tileTemplateRead = tileTemplateRead;
+        this.phasingValue = phasingValue;
+        this.prePhasingValue = prePhasingValue;
+    }
+
+    public TileTemplateRead getTileTemplateRead() {
+        return tileTemplateRead;
+    }
+
+    public float getPhasingValue() {
+        return phasingValue;
+    }
+
+    public float getPrePhasingValue() {
+        return prePhasingValue;
+    }
+}
diff --git a/src/java/picard/illumina/parser/TileTemplateRead.java b/src/java/picard/illumina/parser/TileTemplateRead.java
new file mode 100644
index 0000000..501d8f6
--- /dev/null
+++ b/src/java/picard/illumina/parser/TileTemplateRead.java
@@ -0,0 +1,32 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.illumina.parser;
+
+/** Defines the first or second template read for a tile
+ *  @author jgentry
+ */
+public enum TileTemplateRead {
+    FIRST, SECOND
+}
diff --git a/src/java/picard/illumina/parser/fakers/BarcodeFileFaker.java b/src/java/picard/illumina/parser/fakers/BarcodeFileFaker.java
new file mode 100644
index 0000000..4b8aacf
--- /dev/null
+++ b/src/java/picard/illumina/parser/fakers/BarcodeFileFaker.java
@@ -0,0 +1,25 @@
+package picard.illumina.parser.fakers;
+
+import java.nio.ByteBuffer;
+
+/**
+ * Created by jcarey on 3/13/14.
+ */
+public class BarcodeFileFaker extends FileFaker {
+    private final String barcodeString = "1\tn\t \n";
+
+    @Override
+    protected void fakeFile(final ByteBuffer buffer) {
+        buffer.put(barcodeString.getBytes());
+    }
+
+    @Override
+    protected boolean addLeadingZeros() {
+        return false;
+    }
+
+    @Override
+    protected int bufferSize() {
+        return barcodeString.getBytes().length;
+    }
+}
diff --git a/src/java/picard/illumina/parser/fakers/BciFileFaker.java b/src/java/picard/illumina/parser/fakers/BciFileFaker.java
new file mode 100644
index 0000000..e297481
--- /dev/null
+++ b/src/java/picard/illumina/parser/fakers/BciFileFaker.java
@@ -0,0 +1,52 @@
+package picard.illumina.parser.fakers;
+
+import htsjdk.samtools.util.CloserUtil;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.nio.channels.FileChannel;
+import java.util.List;
+
+/**
+ * Created by jcarey on 3/14/14.
+ */
+public class BciFileFaker extends FileFaker {
+
+    @Override
+    protected void fakeFile(final ByteBuffer buffer) {
+        for (final Integer tile : tiles) {
+            buffer.putInt(tile);
+            buffer.putInt(1);
+        }
+    }
+
+    @Override
+    protected boolean addLeadingZeros() {
+        return false;
+    }
+
+    @Override
+    protected int bufferSize() {
+        return 8 * tiles.size();
+    }
+
+    public void fakeBciFile(final File bci, final List<Integer> expectedTiles) throws IOException {
+        tiles = expectedTiles;
+        final FileOutputStream fileOutputStream = new FileOutputStream(bci);
+        final FileChannel channel = fileOutputStream.getChannel();
+        final ByteBuffer buffer = ByteBuffer.allocate(8 * expectedTiles.size());
+        buffer.order(ByteOrder.LITTLE_ENDIAN);
+
+        fakeFile(buffer);
+        buffer.flip();
+
+        channel.write(buffer);
+        channel.force(true);
+
+        CloserUtil.close(channel);
+        CloserUtil.close(fileOutputStream);
+    }
+}
diff --git a/src/java/picard/illumina/parser/fakers/BclFileFaker.java b/src/java/picard/illumina/parser/fakers/BclFileFaker.java
new file mode 100644
index 0000000..a54a42f
--- /dev/null
+++ b/src/java/picard/illumina/parser/fakers/BclFileFaker.java
@@ -0,0 +1,30 @@
+package picard.illumina.parser.fakers;
+
+import java.nio.ByteBuffer;
+
+public class BclFileFaker extends FileFaker {
+
+    @Override
+    public void fakeFile(final ByteBuffer buffer) {
+
+        // Write the number of elements to the header. The state variable "size" contains
+        // the number of elements; we've allocated "size" plus the size of the header
+        // (four bytes) to the buffer.
+        buffer.putInt(size);
+
+        while (size > 0) {
+            // Fill the file with no calls
+            buffer.put((byte) 0);
+            size--;
+        }
+    }
+
+    @Override
+    protected boolean addLeadingZeros() {
+        return false;
+    }
+
+    protected int bufferSize() {
+        return size + 4;
+    }
+}
diff --git a/src/java/picard/illumina/parser/fakers/ClocsFileFaker.java b/src/java/picard/illumina/parser/fakers/ClocsFileFaker.java
new file mode 100644
index 0000000..9855bd0
--- /dev/null
+++ b/src/java/picard/illumina/parser/fakers/ClocsFileFaker.java
@@ -0,0 +1,25 @@
+package picard.illumina.parser.fakers;
+
+import java.nio.ByteBuffer;
+
+public class ClocsFileFaker extends FileFaker {
+
+    @Override
+    protected void fakeFile(final ByteBuffer buffer) {
+        buffer.put((byte) 1);
+        buffer.putInt(1);
+        buffer.put((byte) (0xff & 1));
+        buffer.put((byte) (0xff & 5));
+        buffer.put((byte) (0xff & 5));
+    }
+
+    @Override
+    protected boolean addLeadingZeros() {
+        return false;
+    }
+
+    @Override
+    protected int bufferSize() {
+        return Integer.SIZE + (Byte.SIZE * 4);
+    }
+}
diff --git a/src/java/picard/illumina/parser/fakers/FileFaker.java b/src/java/picard/illumina/parser/fakers/FileFaker.java
new file mode 100644
index 0000000..ead0a57
--- /dev/null
+++ b/src/java/picard/illumina/parser/fakers/FileFaker.java
@@ -0,0 +1,79 @@
+package picard.illumina.parser.fakers;
+
+import htsjdk.samtools.util.BlockCompressedOutputStream;
+import picard.illumina.parser.readers.BclReader;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.nio.channels.Channels;
+import java.nio.channels.WritableByteChannel;
+import java.util.Collections;
+import java.util.List;
+import java.util.zip.GZIPOutputStream;
+
+public abstract class FileFaker {
+
+    int size;
+    List<Integer> tiles;
+
+    protected abstract void fakeFile(ByteBuffer buffer);
+
+    protected abstract boolean addLeadingZeros();
+
+    protected abstract int bufferSize();
+
+    public void fakeFile(final File base, final int tile, final int lane, final String extension) throws IOException {
+        fakeFile(base, Collections.singletonList(tile), lane, extension);
+    }
+
+    public void fakeFile(final File base, final List<Integer> expectedTiles, final int lane, final String extension)
+            throws IOException {
+        if (base.exists() || base.mkdirs()) {
+            this.tiles = expectedTiles;
+            final File fakeFile;
+            if (expectedTiles.size() == 1) {
+                String longTileName = String.valueOf(tiles.get(0));
+                if (addLeadingZeros()) {
+                    while (longTileName.length() < 4) {
+                        longTileName = "0" + longTileName;
+                    }
+                }
+                fakeFile = new File(base, String.format("s_%d_%s%s", lane, longTileName, extension));
+            } else {
+                fakeFile = new File(base, String.format("s_%s%s", lane, extension));
+            }
+
+            fakeFile(fakeFile, bufferSize());
+        }
+
+    }
+
+    public void fakeFile(final File cycleFile, Integer size) throws IOException {
+        if (size == null) {
+            size = 1;
+        }
+        this.size = size;
+
+        final OutputStream outputStream;
+        if (BclReader.isGzipped(cycleFile)) outputStream = new GZIPOutputStream(new FileOutputStream(cycleFile));
+        else if (BclReader.isBlockGzipped(cycleFile)) outputStream = new BlockCompressedOutputStream(cycleFile);
+        else outputStream = new FileOutputStream(cycleFile);
+
+        final WritableByteChannel channel = Channels.newChannel(outputStream);
+        final ByteBuffer buffer = ByteBuffer.allocate(this.bufferSize());
+        buffer.order(ByteOrder.LITTLE_ENDIAN);
+
+        fakeFile(buffer);
+
+        buffer.flip();
+
+        channel.write(buffer);
+
+        channel.close();
+        outputStream.close();
+    }
+}
diff --git a/src/java/picard/illumina/parser/fakers/FilterFileFaker.java b/src/java/picard/illumina/parser/fakers/FilterFileFaker.java
new file mode 100644
index 0000000..94cd341
--- /dev/null
+++ b/src/java/picard/illumina/parser/fakers/FilterFileFaker.java
@@ -0,0 +1,34 @@
+package picard.illumina.parser.fakers;
+
+import java.nio.ByteBuffer;
+
+/**
+ * Created by jcarey on 3/13/14.
+ *
+ * Illumina uses an algorithm described in "Theory of RTA" that determines whether or not a cluster passes filter("PF") or not.
+ * These values are written as sequential bytes to Filter Files.  The structure of a filter file is as follows:
+ * Bytes 0-3  : 0
+ * Bytes 4-7  : unsigned int version
+ * Bytes 8-11 : unsigned int numClusters
+ * Bytes 12...: boolean encoded in a byte representing whether the cluster passing or failing.
+ */
+public class FilterFileFaker extends FileFaker {
+
+    @Override
+    protected void fakeFile(final ByteBuffer buffer) {
+        buffer.putInt(0);       // 0
+        buffer.putInt(3);       // Version number
+        buffer.putInt(1);       // Number of clusters
+        buffer.put((byte) 0);   // Byte representing a cluster failing filter(not a PF read)
+    }
+
+    @Override
+    protected boolean addLeadingZeros() {
+        return true;
+    }
+
+    @Override
+    protected int bufferSize() {
+        return Integer.SIZE * 3;
+    }
+}
diff --git a/src/java/picard/illumina/parser/fakers/LocsFileFaker.java b/src/java/picard/illumina/parser/fakers/LocsFileFaker.java
new file mode 100644
index 0000000..be4f5f5
--- /dev/null
+++ b/src/java/picard/illumina/parser/fakers/LocsFileFaker.java
@@ -0,0 +1,28 @@
+package picard.illumina.parser.fakers;
+
+import java.nio.ByteBuffer;
+
+/**
+ * Created by jcarey on 3/13/14.
+ */
+public class LocsFileFaker extends FileFaker {
+
+    @Override
+    protected void fakeFile(final ByteBuffer buffer) {
+        buffer.putInt(1);
+        buffer.putFloat(1.0f);
+        buffer.putInt(1);
+        buffer.putFloat(5.0f);
+        buffer.putFloat(5.0f);
+    }
+
+    @Override
+    protected boolean addLeadingZeros() {
+        return false;
+    }
+
+    @Override
+    protected int bufferSize() {
+        return (Integer.SIZE * 2) + (Float.SIZE * 3);
+    }
+}
diff --git a/src/java/picard/illumina/parser/fakers/MultiTileBclFileFaker.java b/src/java/picard/illumina/parser/fakers/MultiTileBclFileFaker.java
new file mode 100644
index 0000000..c4b7cee
--- /dev/null
+++ b/src/java/picard/illumina/parser/fakers/MultiTileBclFileFaker.java
@@ -0,0 +1,32 @@
+package picard.illumina.parser.fakers;
+
+import java.nio.ByteBuffer;
+
+/**
+ * Created by jcarey on 3/13/14.
+ */
+public class MultiTileBclFileFaker extends FileFaker {
+
+    @Override
+    protected void fakeFile(final ByteBuffer buffer) {
+        buffer.putInt(1);
+        for (final Integer tile : tiles) {
+            long perTileSize = size;
+            while (perTileSize > 0) {
+                //fill the file with no calls
+                buffer.put((byte) 0);
+                perTileSize--;
+            }
+        }
+    }
+
+    @Override
+    protected boolean addLeadingZeros() {
+        return false;
+    }
+
+    @Override
+    protected int bufferSize() {
+        return ((size - Integer.SIZE) * tiles.size()) + Integer.SIZE;
+    }
+}
diff --git a/src/java/picard/illumina/parser/fakers/MultiTileLocsFileFaker.java b/src/java/picard/illumina/parser/fakers/MultiTileLocsFileFaker.java
new file mode 100644
index 0000000..5ba7ef9
--- /dev/null
+++ b/src/java/picard/illumina/parser/fakers/MultiTileLocsFileFaker.java
@@ -0,0 +1,30 @@
+package picard.illumina.parser.fakers;
+
+import java.nio.ByteBuffer;
+
+/**
+ * Created by jcarey on 3/13/14.
+ */
+public class MultiTileLocsFileFaker extends FileFaker {
+
+    @Override
+    protected void fakeFile(final ByteBuffer buffer) {
+        buffer.putInt(1);
+        buffer.putFloat(1.0f);
+        buffer.putInt(1);
+        for (int count = 0; count < tiles.size(); count++) {
+            buffer.putFloat(5.0f + (count * 0.5f));
+            buffer.putFloat(5.0f + (count * 0.5f));
+        }
+    }
+
+    @Override
+    protected boolean addLeadingZeros() {
+        return false;
+    }
+
+    @Override
+    protected int bufferSize() {
+        return (Integer.SIZE * 2) + (Float.SIZE * tiles.size()) + Float.SIZE;
+    }
+}
diff --git a/src/java/picard/illumina/parser/fakers/PosFileFaker.java b/src/java/picard/illumina/parser/fakers/PosFileFaker.java
new file mode 100644
index 0000000..d3c449e
--- /dev/null
+++ b/src/java/picard/illumina/parser/fakers/PosFileFaker.java
@@ -0,0 +1,25 @@
+package picard.illumina.parser.fakers;
+
+import java.nio.ByteBuffer;
+
+/**
+ * Created by jcarey on 3/13/14.
+ */
+public class PosFileFaker extends FileFaker {
+    private final String posFileString = "102.0\t303.3\n";
+
+    @Override
+    protected void fakeFile(final ByteBuffer buffer) {
+        buffer.put(posFileString.getBytes());
+    }
+
+    @Override
+    protected boolean addLeadingZeros() {
+        return false;
+    }
+
+    @Override
+    protected int bufferSize() {
+        return posFileString.getBytes().length;
+    }
+}
diff --git a/src/java/picard/illumina/parser/readers/AbstractIlluminaPositionFileReader.java b/src/java/picard/illumina/parser/readers/AbstractIlluminaPositionFileReader.java
new file mode 100644
index 0000000..7068a36
--- /dev/null
+++ b/src/java/picard/illumina/parser/readers/AbstractIlluminaPositionFileReader.java
@@ -0,0 +1,177 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2012 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.illumina.parser.readers;
+
+import htsjdk.samtools.util.CloseableIterator;
+import picard.PicardException;
+
+import java.io.File;
+import java.util.NoSuchElementException;
+import java.util.regex.Matcher;
+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.
+ */
+
+public abstract class AbstractIlluminaPositionFileReader implements CloseableIterator<AbstractIlluminaPositionFileReader.PositionInfo> {
+    public static final float MAX_POS = 9999999.99f;
+
+    /**
+     * At least one NextSeq run produced a small negative value for y coordinate (-5), so allow small
+     * negative values and see what happens.
+     */
+    public static final float MIN_POS = -10.0f;
+
+    public class PositionInfo {
+        /** 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*/
+        public final float yPos;
+
+        /** The lane, which is determined from the file name*/
+        public final int lane;
+
+        /** 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)*/
+        public final int xQseqCoord;
+
+        /** 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) {
+
+                throw new IllegalArgumentException(
+                        String.format("Cluster location not in the range %f..%f. x: %f; y: %f; lane: %d; tile: %d",
+                                MIN_POS, MAX_POS, x, y, lane, tile));
+            }
+
+            this.xPos = x;
+            this.yPos = y;
+            this.xQseqCoord = posToQSeqCoord(x);
+            this.yQseqCoord = posToQSeqCoord(y);
+            this.lane = lane;
+            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 */
+        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) {
+                return false;
+            }
+            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;
+        }
+    }
+
+    //Note: Perhaps use the IlluminaFileUtil to do this part
+    private static final Pattern FileNamePattern = Pattern.compile("^s_(\\d+)_(\\d+)(_pos\\.txt|\\.locs|\\.clocs|_pos\\.txt.gz|_pos\\.txt.bz2)$");
+
+    private final File file;
+    private final int lane;
+    private final int tile;
+
+    public AbstractIlluminaPositionFileReader(final File file) {
+        this.file = file;
+
+        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
+     */
+    public AbstractIlluminaPositionFileReader(final File file, final int lane, final int tile) {
+        this.file = file;
+        this.lane = lane;
+        this.tile = tile;
+    }
+
+    public int getTile() {
+        return tile;
+    }
+
+    public int getLane() {
+        return lane;
+    }
+
+    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);
+        final Matcher matcher = FileNamePattern.matcher(tokens[tokens.length - 1]);
+        if(!matcher.matches()) {
+            throw new PicardException("File name not of the right structure: <filePath>/s_<lane>_<tile>(_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. **/
+    public final PositionInfo next() {
+        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() */
+    protected abstract PositionInfo unsafeNextInfo();
+
+    /** 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 */
+    public abstract boolean hasNext();
+
+    public void remove() {
+        throw new UnsupportedOperationException();
+    }
+}
diff --git a/src/java/picard/illumina/parser/readers/BarcodeFileReader.java b/src/java/picard/illumina/parser/readers/BarcodeFileReader.java
new file mode 100644
index 0000000..55be293
--- /dev/null
+++ b/src/java/picard/illumina/parser/readers/BarcodeFileReader.java
@@ -0,0 +1,52 @@
+package picard.illumina.parser.readers;
+
+import htsjdk.samtools.util.CloseableIterator;
+import picard.util.BasicInputParser;
+
+import java.io.File;
+
+/**
+ * Reads a single barcode file line by line and returns the barcode if there was a match or NULL otherwise.
+ *
+ * Barcode.txt file Format (consists of tab delimited columns, 1 record per row)
+ * sequence_read    Matched(Y/N)    BarcodeSequenceMatched
+ *
+ * sequence read          - the actual bases at barcode position
+ * Matched(y/n)           - Y or N indicating if there was a barcode match
+ * BarcodeSequenceMatched - matched barcode sequence (empty if read did not match one of the barcodes).
+ */
+public class BarcodeFileReader implements CloseableIterator<String> {
+    private static final int Y_OR_N_COLUMN = 1;
+    private static final int BARCODE_COLUMN = 2;
+    private final BasicInputParser textIterator;
+
+    public BarcodeFileReader(final File barcodeFile) {
+        this.textIterator = new BasicInputParser(false, barcodeFile);
+    }
+
+    @Override
+    public String next() {
+        final String [] fields = textIterator.next();
+        final String barcode;
+        if (fields[Y_OR_N_COLUMN].equals("Y")) {
+            barcode = fields[BARCODE_COLUMN];
+        } else {
+            barcode = null;
+        }
+
+        return barcode;
+    }
+
+    @Override
+    public boolean hasNext() {
+        return textIterator.hasNext();
+    }
+
+    public void remove() {
+        throw new UnsupportedOperationException("Remove is not supported by " + BarcodeFileReader.class.getName());
+    }
+
+    public void close() {
+        textIterator.close();
+    }
+}
diff --git a/src/java/picard/illumina/parser/readers/BclIndexReader.java b/src/java/picard/illumina/parser/readers/BclIndexReader.java
new file mode 100644
index 0000000..665b576
--- /dev/null
+++ b/src/java/picard/illumina/parser/readers/BclIndexReader.java
@@ -0,0 +1,75 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.illumina.parser.readers;
+
+import picard.PicardException;
+
+import java.io.File;
+import java.nio.ByteBuffer;
+
+/**
+ * Annoyingly, there are two different files with extension .bci in NextSeq output.  This reader handles
+ * the file that contains virtual file pointers into a .bcl.bgzf file.  After the header, there is a 64-bit record
+ * per tile.
+ */
+public class BclIndexReader {
+    private static final int BCI_HEADER_SIZE = 8;
+    private static final int BCI_VERSION = 0;
+
+    private final BinaryFileIterator<Long> bciIterator;
+    private final int numTiles;
+    private final File bciFile;
+    private int nextRecordNumber = 0;
+
+    public BclIndexReader(final File bclFile) {
+        bciFile = new File(bclFile.getAbsolutePath() + ".bci");
+        bciIterator = MMapBackedIteratorFactory.getLongIterator(BCI_HEADER_SIZE, bciFile);
+        final ByteBuffer headerBytes = bciIterator.getHeaderBytes();
+        final int actualVersion = headerBytes.getInt();
+        if (actualVersion != BCI_VERSION) {
+            throw new PicardException(String.format("Unexpected version number %d in %s", actualVersion, bciFile.getAbsolutePath()));
+        }
+        numTiles = headerBytes.getInt();
+    }
+
+    public int getNumTiles() {
+        return numTiles;
+    }
+
+    public long get(final int recordNumber) {
+        if (recordNumber < nextRecordNumber) {
+            throw new IllegalArgumentException("Can only read forward");
+        }
+        if (recordNumber > nextRecordNumber) {
+            bciIterator.skipElements(recordNumber - nextRecordNumber);
+            nextRecordNumber = recordNumber;
+        }
+        ++nextRecordNumber;
+        return bciIterator.getElement();
+    }
+
+    public File getBciFile() {
+        return bciFile;
+    }
+}
diff --git a/src/java/picard/illumina/parser/readers/BclQualityEvaluationStrategy.java b/src/java/picard/illumina/parser/readers/BclQualityEvaluationStrategy.java
new file mode 100644
index 0000000..dfc8608
--- /dev/null
+++ b/src/java/picard/illumina/parser/readers/BclQualityEvaluationStrategy.java
@@ -0,0 +1,99 @@
+package picard.illumina.parser.readers;
+
+import htsjdk.samtools.util.CollectionUtil;
+import picard.PicardException;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.Map;
+import java.util.concurrent.atomic.AtomicInteger;
+
+/**
+ * Describes a mechanism for revising and evaluating qualities read from a BCL file.  This class accumulates observations about low quality
+ * scores that it evaluates, so distinct instances should be used for unrelated sets of BCL readers.
+ * 
+ * The mechanism for revising qualities is not configurable.  The qualities that are less than 1 are revised to 1, and other qualities are
+ * not affected.
+ *
+ * This class is thread-safe and a single instance can and should be passed to {@link BclReader}s running in separate threads.
+ * 
+ * To replicate the functionality of {@link BclReader}s prior to the introduction of this class, create a single instance passing 
+ * {@link #ILLUMINA_ALLEGED_MINIMUM_QUALITY} to the constructor, and then call {@link #assertMinimumQualities()} once the readers finish
+ * their work.
+ * 
+ * @author mccowan
+ */
+public class BclQualityEvaluationStrategy {
+    public static final int ILLUMINA_ALLEGED_MINIMUM_QUALITY = 2;
+    private final int minimumRevisedQuality;
+    /** A thread-safe defaulting map that injects an AtomicInteger starting at 0 when a uninitialized key is get-ted. */
+    private Map<Byte, AtomicInteger> qualityCountMap = Collections.synchronizedMap(new CollectionUtil.DefaultingMap<Byte, AtomicInteger>(
+            new CollectionUtil.DefaultingMap.Factory<AtomicInteger, Byte>() {
+                @Override
+                public AtomicInteger make(final Byte _) {
+                    return new AtomicInteger(0);
+                }
+            }, true));
+
+    /**
+     * @param minimumRevisedQuality The minimum quality that should be seen from revised qualities; controls whether or not an exception
+     *                              is thrown when calling {@link #assertMinimumQualities()}
+     */
+    public BclQualityEvaluationStrategy(final int minimumRevisedQuality) {
+        this.minimumRevisedQuality = minimumRevisedQuality;
+    }
+
+    /** The rule used to revise quality scores, which is: if it's less than 1, make it 1. */
+    private static byte generateRevisedQuality(final byte quality) { return (byte) Math.max(quality, 1); }
+    
+    /**
+     * Accepts a quality read from a BCL file and (1) returns a 1 if the value was 0 and (2) makes a note of the provided quality if it is
+     * low.  Because of (2) each record's quality should be passed only once to this method, otherwise it will be observed multiple times.
+     *
+     * @param quality The quality score read from the BCL
+     * @return The revised new quality score
+     */
+    public byte reviseAndConditionallyLogQuality(final byte quality) {
+        final byte revisedQuality = generateRevisedQuality(quality);
+        if (quality < ILLUMINA_ALLEGED_MINIMUM_QUALITY) {
+            qualityCountMap.get(quality).incrementAndGet();
+        }
+        return revisedQuality;
+    }
+
+    /**
+     * Reviews the qualities observed thus far and throws an exception if any are below the minimum quality threshold.
+     */
+    public void assertMinimumQualities() {
+        final Collection<String> errorTokens = new LinkedList<String>();
+        for (final Map.Entry<Byte, AtomicInteger> entry : this.qualityCountMap.entrySet()) {
+            /**
+             * We're comparing revised qualities here, not observed, but the qualities that are logged in qualityCountMap are observed
+             * qualities.  So as we iterate through it, convert observed qualities into their revised value. 
+             */
+            if (generateRevisedQuality(entry.getKey()) < minimumRevisedQuality) { 
+                errorTokens.add(String.format("quality %s observed %s times", entry.getKey(), entry.getValue()));
+            }
+        }
+        if (!errorTokens.isEmpty()) {
+            throw new PicardException(String.format(
+                    "Found BCL qualities that fell beneath minimum threshold of %s: %s.",
+                    minimumRevisedQuality, 
+                    CollectionUtil.join(errorTokens, "; ")
+            ));
+        }
+    }
+
+    /**
+     * Returns a view of number of qualities that failed, where the key is the quality score and the value is the number of observations.
+     */
+    public Map<Byte, Integer> getPoorQualityFrequencies() {
+        final Map<Byte, Integer> qualityCountMapCopy = new HashMap<Byte, Integer>();
+        for (final Map.Entry<Byte, AtomicInteger> entry : qualityCountMap.entrySet()) {
+            qualityCountMapCopy.put(entry.getKey(), entry.getValue().intValue());
+        }
+        return Collections.unmodifiableMap(qualityCountMapCopy);
+    }
+}
diff --git a/src/java/picard/illumina/parser/readers/BclReader.java b/src/java/picard/illumina/parser/readers/BclReader.java
new file mode 100644
index 0000000..777a565
--- /dev/null
+++ b/src/java/picard/illumina/parser/readers/BclReader.java
@@ -0,0 +1,357 @@
+/*
+* The MIT License
+*
+* Copyright (c) 2012 The Broad Institute
+*
+* Permission is hereby granted, free of charge, to any person obtaining a copy
+* of this software and associated documentation files (the "Software"), to deal
+* in the Software without restriction, including without limitation the rights
+* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+* copies of the Software, and to permit persons to whom the Software is
+* furnished to do so, subject to the following conditions:
+*
+* The above copyright notice and this permission notice shall be included in
+* all copies or substantial portions of the Software.
+*
+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+* THE SOFTWARE.
+*/
+package picard.illumina.parser.readers;
+
+import htsjdk.samtools.Defaults;
+import htsjdk.samtools.util.BlockCompressedInputStream;
+import htsjdk.samtools.util.CloseableIterator;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.RuntimeIOException;
+import picard.PicardException;
+import picard.illumina.parser.BclData;
+import picard.illumina.parser.TileIndex;
+import picard.util.UnsignedTypeUtil;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.util.List;
+import java.util.zip.GZIPInputStream;
+
+/**
+ * BCL Files are base call and quality score binary files containing a (base,quality) pair for successive clusters.
+ * The file is structured as followed:
+ * Bytes 1-4 : unsigned int numClusters
+ * Bytes 5-numClusters + 5 : 1 byte base/quality score
+ * <p/>
+ * The base/quality scores are organized as follows (with one exception, SEE BELOW):
+ * The right 2 most bits (these are the LEAST significant bits) indicate the base, where
+ * A=00(0x00), C=01(0x01), G=10(0x02), and T=11(0x03)
+ * <p/>
+ * The remaining bytes compose the quality score which is an unsigned int.
+ * <p/>
+ * EXCEPTION: If a byte is entirely 0 (e.g. byteRead == 0) then it is a no call, the base
+ * becomes '.' and the Quality becomes 2, the default illumina masking value
+ * <p/>
+ * (E.g. if we get a value in binary of 10001011 it gets transformed as follows:
+ * <p/>
+ * Value read: 10001011(0x8B)
+ * <p/>
+ * Quality     Base
+ * <p/>
+ * 100010      11
+ * 00100010    0x03
+ * 0x22        T
+ * 34          T
+ * <p/>
+ * So the output base/quality will be a (T/34)
+ */
+public class BclReader implements CloseableIterator<BclData> {
+    private static final byte BASE_MASK = 0x0003;
+    private static final int HEADER_SIZE = 4;
+    private static final byte[] BASE_LOOKUP = new byte[]{'A', 'C', 'G', 'T'};
+
+    private final InputStream[] streams;
+    private final File[] streamFiles;
+    private final int[] outputLengths;
+    int[] numClustersPerCycle;
+
+    private final BclQualityEvaluationStrategy bclQualityEvaluationStrategy;
+    private BclData queue = null;
+
+    public BclReader(final List<File> bclsForOneTile, final int[] outputLengths,
+                     final BclQualityEvaluationStrategy bclQualityEvaluationStrategy, final boolean seekable) {
+        try {
+            this.bclQualityEvaluationStrategy = bclQualityEvaluationStrategy;
+            this.outputLengths = outputLengths;
+
+            int cycles = 0;
+            for (final int outputLength : outputLengths) {
+                cycles += outputLength;
+            }
+            this.streams = new InputStream[cycles];
+            this.streamFiles = new File[cycles];
+            this.numClustersPerCycle = new int[cycles];
+
+            final ByteBuffer byteBuffer = ByteBuffer.allocate(HEADER_SIZE);
+            byteBuffer.order(ByteOrder.LITTLE_ENDIAN);
+
+            for (int i = 0; i < cycles; ++i) {
+                final File bclFile = bclsForOneTile.get(i);
+                if (bclFile == null) {
+                    close();
+                    throw new RuntimeIOException(String.format("Could not find BCL file for cycle %d", i));
+                }
+                final String filePath = bclFile.getName();
+                final boolean isGzip = filePath.endsWith(".gz");
+                final boolean isBgzf = filePath.endsWith(".bgzf");
+                final InputStream stream = open(bclFile, seekable, isGzip, isBgzf);
+                final int read = stream.read(byteBuffer.array());
+                if (read != HEADER_SIZE) {
+                    close();
+                    throw new RuntimeIOException(String.format("BCL %s has invalid header structure.", bclFile.getAbsoluteFile()));
+                }
+                numClustersPerCycle[i] = byteBuffer.getInt();
+                if (!isBgzf && !isGzip) {
+                    assertProperFileStructure(bclFile, numClustersPerCycle[i], stream);
+                }
+                this.streams[i] = stream;
+                this.streamFiles[i] =  bclFile;
+                byteBuffer.clear();
+            }
+        } catch (final IOException ioe) {
+            throw new RuntimeIOException(ioe);
+        }
+    }
+
+    public static boolean isGzipped(final File file) {
+        return file.getAbsolutePath().endsWith(".gz");
+    }
+
+    public static boolean isBlockGzipped(final File file) {
+        return file.getAbsolutePath().endsWith(".bgzf");
+    }
+
+    public static long getNumberOfClusters(final File file) {
+        InputStream stream = null;
+        try {
+            if (isBlockGzipped(file)) stream = new BlockCompressedInputStream(IOUtil.maybeBufferedSeekableStream(file));
+            else if (isGzipped(file)) stream = new GZIPInputStream(IOUtil.maybeBufferInputStream(new FileInputStream(file)));
+            else stream = IOUtil.maybeBufferInputStream(new FileInputStream(file));
+
+            return getNumberOfClusters(file.getAbsolutePath(), stream);
+
+        } catch (final IOException ioe) {
+            throw new PicardException("Could not open file " + file.getAbsolutePath() + " to get its cluster count: " + ioe.getMessage(), ioe);
+        } finally {
+            CloserUtil.close(stream);
+        }
+    }
+
+    private static long getNumberOfClusters(final String filePath, final InputStream inputStream) {
+        final byte[] header = new byte[HEADER_SIZE];
+
+        try {
+            final int headerBytesRead = inputStream.read(header);
+            if (headerBytesRead != HEADER_SIZE) {
+                throw new PicardException("Malformed file, expected header of size " + HEADER_SIZE + " but received " + headerBytesRead);
+            }
+        } catch (final IOException ioe) {
+            throw new PicardException("Unable to read header for file (" + filePath + ")", ioe);
+        }
+
+        final ByteBuffer headerBuf = ByteBuffer.wrap(header);
+        headerBuf.order(ByteOrder.LITTLE_ENDIAN);
+        return UnsignedTypeUtil.uIntToLong(headerBuf.getInt());
+    }
+
+
+    public BclReader(final File bclFile, final BclQualityEvaluationStrategy bclQualityEvaluationStrategy, final boolean seekable) {
+        try {
+
+            this.outputLengths = new int[]{1};
+            this.streams = new InputStream[1];
+            this.streamFiles = new File[1];
+            this.numClustersPerCycle = new int[]{1};
+            this.bclQualityEvaluationStrategy = bclQualityEvaluationStrategy;
+
+            final ByteBuffer byteBuffer = ByteBuffer.allocate(HEADER_SIZE);
+            final String filePath = bclFile.getName();
+            final boolean isGzip = filePath.endsWith(".gz");
+            final boolean isBgzf = filePath.endsWith(".bgzf");
+            final InputStream stream = open(bclFile, seekable, isGzip, isBgzf);
+            final int read = stream.read(byteBuffer.array());
+
+            if (read != HEADER_SIZE) {
+                throw new RuntimeIOException(String.format("BCL %s has invalid header structure.", bclFile.getAbsoluteFile()));
+            }
+
+            byteBuffer.order(ByteOrder.LITTLE_ENDIAN);
+            this.numClustersPerCycle[0] = byteBuffer.getInt();
+            if (!isBgzf && !isGzip) {
+                assertProperFileStructure(bclFile, this.numClustersPerCycle[0], stream);
+            }
+            this.streams[0] = stream;
+            this.streamFiles[0] = bclFile;
+        } catch (final IOException ioe) {
+            throw new PicardException("IOException opening file " + bclFile.getAbsoluteFile(), ioe);
+        }
+    }
+
+    void assertProperFileStructure(final File file, final int numClusters, final InputStream stream) {
+        final long elementsInFile = file.length() - HEADER_SIZE;
+        if (numClusters != elementsInFile) {
+            CloserUtil.close(stream);
+            throw new PicardException("Expected " + numClusters + " in file but found " + elementsInFile);
+        }
+    }
+
+    InputStream open(final File file, final boolean seekable, final boolean isGzip, final boolean isBgzf) throws IOException {
+        final String filePath = file.getAbsolutePath();
+
+        try {
+            // Open up a buffered stream to read from the file and optionally wrap it in a gzip stream
+            // if necessary
+            if (isBgzf) {
+                // Only BlockCompressedInputStreams can seek, and only if they are fed a SeekableStream.
+                return new BlockCompressedInputStream(IOUtil.maybeBufferedSeekableStream(file));
+            } else if (isGzip) {
+                if (seekable) {
+                    throw new IllegalArgumentException(
+                            String.format("Cannot create a seekable reader for gzip bcl: %s.", filePath)
+                    );
+                }
+                return (IOUtil.maybeBufferInputStream(new GZIPInputStream(new FileInputStream(file), Defaults.BUFFER_SIZE / 2),
+                        Defaults.BUFFER_SIZE / 2));
+            } else {
+                if (seekable) {
+                    throw new IllegalArgumentException(
+                            String.format("Cannot create a seekable reader for provided bcl: %s.", filePath)
+                    );
+                }
+                return IOUtil.maybeBufferInputStream(new FileInputStream(file));
+            }
+        } catch (final FileNotFoundException fnfe) {
+            throw new PicardException("File not found: (" + filePath + ")", fnfe);
+        } catch (final IOException ioe) {
+            throw new PicardException("Error reading file: (" + filePath + ")", ioe);
+        }
+    }
+
+    public void close() {
+        for (final InputStream stream : this.streams) {
+            CloserUtil.close(stream);
+        }
+    }
+
+    @Override
+    public boolean hasNext() {
+        if (queue == null) {
+            advance();
+        }
+        return queue != null;
+    }
+
+    private long getNumClusters() {
+        return numClustersPerCycle[0];
+    }
+
+    protected void assertProperFileStructure(final File file) {
+        final long elementsInFile = file.length() - HEADER_SIZE;
+        if (numClustersPerCycle[0] != elementsInFile) {
+            throw new PicardException("Expected " + numClustersPerCycle[0]  + " in file " + file.getAbsolutePath() + " but found " + elementsInFile);
+
+        }
+    }
+
+    public BclData next() {
+        if (queue == null) {
+            advance();
+        }
+
+        final BclData data = queue;
+        queue = null;
+        return data;
+    }
+
+    @Override
+    public void remove() {
+        throw new UnsupportedOperationException();
+    }
+
+    void advance() {
+        int totalCycleCount = 0;
+        final BclData data = new BclData(outputLengths);
+        for (int read = 0; read < outputLengths.length; read++) {
+            for (int cycle = 0; cycle < outputLengths[read]; ++cycle) {
+                try {
+
+                    final int readByte;
+                    try {
+                        readByte = this.streams[totalCycleCount].read();
+                    } 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 (readByte == -1) {
+                        queue = null;
+                        return;
+                    }
+
+                    if (readByte == 0) {
+                        //NO CALL, don't confuse with an A call
+                        data.bases[read][cycle] = (byte) '.';
+                        data.qualities[read][cycle] = (byte) 2;
+                    } else {
+                        data.bases[read][cycle] = BASE_LOOKUP[readByte & BASE_MASK];
+                        data.qualities[read][cycle] = bclQualityEvaluationStrategy.reviseAndConditionallyLogQuality((byte) (readByte >>> 2));
+                    }
+                    totalCycleCount++;
+                } catch (final IOException ioe) {
+                    throw new RuntimeIOException(ioe);
+                }
+
+            }
+        }
+        this.queue = data;
+    }
+
+    public static BclReader makeSeekable(final List<File> files, final BclQualityEvaluationStrategy bclQualityEvaluationStrategy, final int[] outputLengths) {
+        return new BclReader(files, outputLengths, bclQualityEvaluationStrategy, true);
+    }
+
+    public int seek(final List<File> files, final TileIndex tileIndex, final int currentTile) {
+        int count = 0;
+        int numClustersInTile = 0;
+        for (final InputStream inputStream : streams) {
+            final TileIndex.TileIndexRecord tileIndexRecord = tileIndex.findTile(currentTile);
+            final BclIndexReader bclIndexReader = new BclIndexReader(files.get(count));
+            final long virtualFilePointer = bclIndexReader.get(tileIndexRecord.getZeroBasedTileNumber());
+            if (!(inputStream instanceof BlockCompressedInputStream)) {
+                throw new UnsupportedOperationException("Seeking only allowed on bzgf");
+            } else {
+                try {
+                    if (tileIndex.getNumTiles() != bclIndexReader.getNumTiles()) {
+                        throw new PicardException(String.format("%s.getNumTiles(%d) != %s.getNumTiles(%d)",
+                                tileIndex.getFile().getAbsolutePath(), tileIndex.getNumTiles(), bclIndexReader.getBciFile().getAbsolutePath(), bclIndexReader.getNumTiles()));
+                    }
+                    ((BlockCompressedInputStream) inputStream).seek(virtualFilePointer);
+                    numClustersInTile = tileIndexRecord.getNumClustersInTile();
+                } catch (final IOException e) {
+                    throw new PicardException("Problem seeking to " + virtualFilePointer, e);
+                }
+            }
+            count++;
+        }
+        return numClustersInTile;
+    }
+}
+
diff --git a/src/java/picard/illumina/parser/readers/ClocsFileReader.java b/src/java/picard/illumina/parser/readers/ClocsFileReader.java
new file mode 100644
index 0000000..04bc7fe
--- /dev/null
+++ b/src/java/picard/illumina/parser/readers/ClocsFileReader.java
@@ -0,0 +1,157 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2012 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.illumina.parser.readers;
+
+import picard.PicardException;
+import picard.util.UnsignedTypeUtil;
+
+import java.io.File;
+import java.nio.ByteBuffer;
+
+/**
+ * The clocs file format is one of 3 Illumina formats(pos, locs, and clocs) that stores position data exclusively.
+ * clocs files store position data for successive clusters, compressed in bins as follows:
+ *     Byte 0   : unused
+ *     Byte 1-4 : unsigned int numBins
+ *     The rest of the file consists of bins/blocks, where a bin consists of an integer
+ *     indicating number of blocks, followed by that number of blocks and a block consists
+ *     of an x-y coordinate pair.  In otherwords:
+ *
+ *     for each bin
+ *         byte 1: Unsigned int numBlocks
+ *         for each block:
+ *             byte 1 : byte xRelativeCoordinate
+ *             byte 2 : byte yRelativeCoordinate
+ *
+ *     Actual x and y values are computed using the following algorithm
+ *
+ *     xOffset = yOffset = 0
+ *     imageWidth = 2048
+ *     blockSize = 25
+ *     maxXbins:Int = Math.Ceiling((double)ImageWidth/(double)blockSize)
+ *     for each bin:
+ *         for each location:
+ *             x = convert.ToSingle(xRelativeCoordinate/10f + xoffset)
+ *             y = convert.toSingle(yRelativeCoordinate/10f + yoffset)
+ *         if (binIndex > 0 && ((binIndex + 1) % maxXbins == 0)) {
+ *            xOffset = 0; yOffset += blockSize
+ *         } else xOffset += blockSize
+ */
+public class ClocsFileReader extends AbstractIlluminaPositionFileReader {
+
+    private static final int HEADER_SIZE = 5;
+
+    private static final int IMAGE_WIDTH = 2048;
+    private static final int BLOCK_SIZE = 25;
+    private static final int NUM_BINS_IN_ROW = (int)Math.ceil((double) IMAGE_WIDTH / (double) BLOCK_SIZE);
+
+    /** Total number of bins */
+    private final long numBins;
+
+    /** An iterator through clocsFile's bytes */
+    private final BinaryFileIterator<Byte> byteIterator;
+
+    //mutable vars
+    private float xOffset;
+    private float yOffset;
+    private long currentBin;
+    private int numClustersInBin;   //MAX 255
+    private long currentClusterInBin;
+
+    public ClocsFileReader(final File clocsFile) {
+        super(clocsFile);
+
+        byteIterator = MMapBackedIteratorFactory.getByteIterator(HEADER_SIZE, clocsFile);
+
+        final ByteBuffer hbs = byteIterator.getHeaderBytes();
+        hbs.get(); //unusedByte
+        numBins = UnsignedTypeUtil.uIntToLong(hbs.getInt());
+
+        xOffset = 0;
+        yOffset = 0;
+        currentBin = 0;
+        startBlock();
+
+        checkAndAdvanceBin();
+    }
+
+    /**
+     * Grab the next set of offset values, decompress them.
+     * @return the position information of the next offset values
+     */
+    @Override
+    protected PositionInfo unsafeNextInfo() {
+        final byte xByte = byteIterator.next();
+        final byte yByte = byteIterator.next();
+
+        final float xPos = UnsignedTypeUtil.uByteToInt(xByte)/10f + xOffset;
+        final float yPos = UnsignedTypeUtil.uByteToInt(yByte)/10f + yOffset;
+        ++currentClusterInBin;
+        checkAndAdvanceBin();
+
+        return new PositionInfo(xPos, yPos, getLane(), getTile());
+    }
+
+    /** Compute offset for next bin and then increment the bin number and reset block information*/
+    private void checkAndAdvanceBin() {
+        while(currentClusterInBin >= numClustersInBin && currentBin < numBins) { //While rather than if statement to skip empty blocks
+            if ((currentBin + 1) % NUM_BINS_IN_ROW == 0) {
+                xOffset = 0;
+                yOffset += BLOCK_SIZE;
+            } else{
+                xOffset += BLOCK_SIZE;
+            }
+
+            currentBin += 1;
+            if(currentBin < numBins) {
+                startBlock();
+            }
+        }
+    }
+
+    /** Start the next block by reading it's numBlocks byte and setting the currentBlock index to 0 */
+    private void startBlock() {
+        numClustersInBin = UnsignedTypeUtil.uByteToInt(byteIterator.next());
+        currentClusterInBin = 0;
+    }
+    
+    @Override
+    protected String makeExceptionMsg() {
+        return "ClocsFileReader(file=" + getFile().getName() + ", lane=" + getLane() +  ", tile=" + getTile() +
+                               ", currentBin="   + currentBin +  ", numBins=" + numBins +  ", xOffset=" + xOffset  + ", yOffset" + yOffset +
+                               ", currentBlock=" + currentClusterInBin + ", numBlocks=" + numClustersInBin;
+    }
+
+    @Override
+    public boolean hasNext() { 
+        boolean valuesRemain = currentClusterInBin < numClustersInBin || currentBin < (numBins -1);
+        if(!valuesRemain && byteIterator.hasNext()) {
+            throw new PicardException("Read the number of expected bins( " + numBins + ") but still had more elements in file( " + byteIterator.getFile().getAbsolutePath() + ") ");
+        }
+        return valuesRemain;
+    }
+
+    public void close() {
+    }
+}
diff --git a/src/java/picard/illumina/parser/readers/FilterFileReader.java b/src/java/picard/illumina/parser/readers/FilterFileReader.java
new file mode 100644
index 0000000..16b824b
--- /dev/null
+++ b/src/java/picard/illumina/parser/readers/FilterFileReader.java
@@ -0,0 +1,114 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2012 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.illumina.parser.readers;
+
+import picard.PicardException;
+import picard.util.UnsignedTypeUtil;
+
+import java.io.File;
+import java.nio.ByteBuffer;
+import java.util.Iterator;
+
+/**
+ * Illumina uses an algorithm described in "Theory of RTA" that determines whether or not a cluster passes filter("PF") or not.
+ * These values are written as sequential bytes to Filter Files.  The structure of a filter file is as follows:
+ * Bytes 0-3  : 0
+ * Bytes 4-7  : unsigned int version
+ * Bytes 8-11 : unsigned int numClusters
+ */
+public class FilterFileReader implements Iterator<Boolean> {
+    /** Number of bytes in the files header that will be skipped by the iterator*/
+    private static final int HEADER_SIZE  = 12;
+
+    /** Expected Version */
+    public final int EXPECTED_VERSION = 3;
+
+    /** Iterator over each cluster in the FilterFile */
+    private final BinaryFileIterator<Byte> bbIterator;
+
+    /** Version number found in the FilterFile, this should equal 3 */
+    public final int version;
+
+    /** The number of cluster's pf values stored in this file */
+    public final long numClusters;
+
+    /** Byte representing a cluster failing filter(not a PF read), we test this exactly at
+     * the moment but technically the standard  may be to check only lowest significant bit */
+    private final static byte FailedFilter = 0x00;
+
+    /** Byte representing a cluster passing filter(a PF read), we test this exactly at
+     * the moment but technically the standard  may be to check only lowest significant bit */
+    private final static byte PassedFilter = 0x01;
+
+    /** The index of the current cluster within the file*/
+    private int currentCluster;
+
+    public FilterFileReader(final File file) {
+        bbIterator = MMapBackedIteratorFactory.getByteIterator(HEADER_SIZE, file);
+        final ByteBuffer headerBuf = bbIterator.getHeaderBytes();
+
+        for(int i = 0; i < 4; i++) {
+            final byte b = headerBuf.get();
+            if(b != 0) {
+                throw new PicardException("The first four bytes of a Filter File should be 0 but byte " + i + " was " + b + " in file " + file.getAbsolutePath());
+            }
+        }
+
+        version = headerBuf.getInt();
+        if(version != EXPECTED_VERSION) {
+            throw new PicardException("Expected version is " + EXPECTED_VERSION + " but version found was "  + version + " in file " + file.getAbsolutePath());
+        }
+
+        numClusters = UnsignedTypeUtil.uIntToLong(headerBuf.getInt());
+        bbIterator.assertTotalElementsEqual(numClusters);
+
+        currentCluster = 0;
+    }
+
+    public boolean hasNext() {
+        return currentCluster < numClusters;
+    }
+
+    public Boolean next() {
+        final byte value = bbIterator.next();
+        currentCluster += 1;
+        if(value == PassedFilter) {
+            return true;
+        } else if(value == FailedFilter) {
+            return false;
+        } else {
+            String hexVal = Integer.toHexString(value);
+            hexVal = (hexVal.length() < 2 ? "0x0" : "0x") + hexVal;
+            throw new PicardException("Didn't recognized PF Byte (" + hexVal + ")" + " for element (" + currentCluster + ") in file(" + bbIterator.getFile().getAbsolutePath() + ")");
+        }
+    }
+
+    public void skipRecords(final int numToSkip) {
+        bbIterator.skipElements(numToSkip);
+    }
+
+    public void remove() {
+        throw new UnsupportedOperationException();
+    }
+}
diff --git a/src/java/picard/illumina/parser/readers/LocsFileReader.java b/src/java/picard/illumina/parser/readers/LocsFileReader.java
new file mode 100644
index 0000000..730fd23
--- /dev/null
+++ b/src/java/picard/illumina/parser/readers/LocsFileReader.java
@@ -0,0 +1,119 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2012 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.illumina.parser.readers;
+
+import picard.PicardException;
+import picard.util.UnsignedTypeUtil;
+
+import java.io.File;
+import java.nio.ByteBuffer;
+
+/**
+ * The locs file format is one 3 Illumina formats(pos, locs, and clocs) that stores position data exclusively.
+ * locs files store position data for successive clusters in 4 byte float pairs, described as follows:
+ *     bytes 1-4    : (int?) Version number (1)
+ *     bytes 5-8    : 4 byte float equaling 1.0
+ *     bytes 9-12   : unsigned int numClusters
+ *     bytes 13-16: : X coordinate of first cluster (32-bit float)
+ *     bytes 17-20: : Y coordinate of first cluster (32-bit float)
+ *
+ *     The remaining bytes of the file store the X and Y coordinates of the remaining clusters.
+ */
+
+public class LocsFileReader extends AbstractIlluminaPositionFileReader {
+    /** Size of the opening file header, this is skipped by the iterator below*/
+    private static final int HEADER_SIZE = 12;
+
+    /** The first four bytes of a locs file should equal a little endian 1 */
+    private static final int BYTES_1_TO_4 = 1;
+
+    /** The expected version of locs files */
+    private static final float VERSION = 1.0f;
+
+    /** An iterator over all of the coordinate values in the file, remember next needs to be called
+     * twice per coordinate pair */
+    private BinaryFileIterator<Float> bbIterator;
+
+    /** Total clusters in the file as read in the file header */
+    private long numClusters;
+
+    /** The index of the next cluster to be returned */
+    private int nextCluster;
+
+    public LocsFileReader(final File file) {
+        super(file);
+
+        initialize(file);
+    }
+
+    public LocsFileReader(final File file, final int lane, final int tile) {
+        super(file, lane, tile);
+
+        initialize(file);
+    }
+
+    private void initialize(final File file) {
+        bbIterator = MMapBackedIteratorFactory.getFloatIterator(HEADER_SIZE, file);
+        final ByteBuffer headerBuf = bbIterator.getHeaderBytes();
+
+        final int firstValue = headerBuf.getInt();
+        if(firstValue != BYTES_1_TO_4) {
+            throw new PicardException("First header byte of locs files should be " + BYTES_1_TO_4 + " value found(" + firstValue + ")");
+        }
+
+        final float versionNumber = headerBuf.getFloat();
+        if(versionNumber != VERSION) {
+            throw new PicardException("First header byte of locs files should be " + VERSION + " value found(" + firstValue + ")");
+        }
+
+        numClusters = UnsignedTypeUtil.uIntToLong(headerBuf.getInt());
+        bbIterator.assertTotalElementsEqual(numClusters * 2);
+    }
+
+    @Override
+    protected PositionInfo unsafeNextInfo() {
+        final float xVal = bbIterator.next();
+        final float yVal = bbIterator.next();
+        ++nextCluster;
+        return new PositionInfo(xVal, yVal, getLane(), getTile());
+    }
+
+    @Override
+    protected String makeExceptionMsg() {
+        return "LocsFileReader(file=" + getFile().getAbsolutePath() + ", numClusters=" + numClusters + ") ";
+    }
+
+    @Override
+    public boolean hasNext() {
+        return nextCluster < numClusters;
+    }
+
+    public void close() {
+        bbIterator = null;
+    }
+
+    public void skipRecords(final int numToSkip) {
+        bbIterator.skipElements(numToSkip * 2);
+    }
+}
diff --git a/src/java/picard/illumina/parser/readers/MMapBackedIteratorFactory.java b/src/java/picard/illumina/parser/readers/MMapBackedIteratorFactory.java
new file mode 100644
index 0000000..0a66128
--- /dev/null
+++ b/src/java/picard/illumina/parser/readers/MMapBackedIteratorFactory.java
@@ -0,0 +1,298 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2012 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.illumina.parser.readers;
+
+
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.IOUtil;
+import picard.PicardException;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.nio.channels.FileChannel;
+import java.util.Iterator;
+import java.util.NoSuchElementException;
+
+/**
+ * MMapBackedIteratorFactory a file reader that takes a header size and a binary file, maps the file to
+ * a read-only byte buffer and provides methods to retrieve the header as it's own bytebuffer and create
+ * iterators of different data types over the values of file (starting after the end of the header).
+ * Values provided by the MMappedBinaryFileReader are read as if they are little endian.
+ *
+ * Note (read to end):
+ * This class IS thread-safe and immutable though the iterator and ByteBuffers it produces are NOT.
+ * The values read are assumed to be signed, NO promoting/sign conversion happens in this class.
+ */
+public class MMapBackedIteratorFactory {
+    private static int BYTE_SIZE  = 1;
+    private static int INT_SIZE   = 4;
+    private static int FLOAT_SIZE = 4;
+    private static int LONG_SIZE = 8;
+
+    public static BinaryFileIterator<Integer> getIntegerIterator(final int headerSize, final File binaryFile) {
+        checkFactoryVars(headerSize, binaryFile);
+        final ByteBuffer buf = getBuffer(binaryFile);
+        final byte [] header = getHeader(buf, headerSize);
+
+        return new IntegerMMapIterator(header, binaryFile, buf);
+    }
+
+    public static BinaryFileIterator<Byte> getByteIterator(final int headerSize, final File binaryFile) {
+        checkFactoryVars(headerSize, binaryFile);
+        final ByteBuffer buf = getBuffer(binaryFile);
+        final byte [] header = getHeader(buf, headerSize);
+
+        return new ByteMMapIterator(header, binaryFile, buf);
+    }
+
+    public static BinaryFileIterator<Float> getFloatIterator(final int headerSize, final File binaryFile) {
+        checkFactoryVars(headerSize, binaryFile);
+        final ByteBuffer buf = getBuffer(binaryFile);
+        final byte [] header = getHeader(buf, headerSize);
+
+        return new FloatMMapIterator(header, binaryFile, buf);
+    }
+
+    public static BinaryFileIterator<Long> getLongIterator(final int headerSize, final File binaryFile) {
+        checkFactoryVars(headerSize, binaryFile);
+        final ByteBuffer buf = getBuffer(binaryFile);
+        final byte [] header = getHeader(buf, headerSize);
+
+        return new LongMMapIterator(header, binaryFile, buf);
+    }
+
+    public static BinaryFileIterator<ByteBuffer> getByteBufferIterator(final int headerSize, final int elementSize, final File binaryFile) {
+        checkFactoryVars(headerSize, binaryFile);
+        final ByteBuffer buf = getBuffer(binaryFile);
+        final byte [] header = getHeader(buf, headerSize);
+
+        return new ByteBufferMMapIterator(header, binaryFile, elementSize, buf);
+    }
+
+    private static void checkFactoryVars(final int headerSize, final File binaryFile) {
+        IOUtil.assertFileIsReadable(binaryFile);
+
+        if(headerSize < 0) {
+            throw new PicardException("Header size cannot be negative.  HeaderSize(" + headerSize + ") for file " + binaryFile.getAbsolutePath());
+        }
+
+        if(headerSize > binaryFile.length()) {
+            throw new PicardException("Header size(" + headerSize + ") is greater than file size(" + binaryFile.length() + ") for file " + binaryFile.getAbsolutePath());
+        }
+    }
+
+    private static ByteBuffer getBuffer(final File binaryFile) {
+        final ByteBuffer buf;
+        try {
+            final FileInputStream is = new FileInputStream(binaryFile);
+            final FileChannel channel = is.getChannel();
+            final long fileSize = channel.size();
+            buf = channel.map(FileChannel.MapMode.READ_ONLY, 0, fileSize);
+            buf.order(ByteOrder.LITTLE_ENDIAN);
+            CloserUtil.close(channel);
+            CloserUtil.close(is);
+        } catch (IOException e) {
+            throw new PicardException("IOException opening cluster binary file " + binaryFile, e);
+        }
+
+        return buf;
+    }
+
+    private static byte [] getHeader(final ByteBuffer buf, final int headerSize) {
+        final byte [] headerBytes = new byte[headerSize];
+        if(headerSize > 0) {
+            buf.get(headerBytes);
+        }
+        return headerBytes;
+    }
+
+    /** A simple iterator that uses a reference to the enclosing ByteBuffer and a member position
+     * value to iterate over values in the buffer, starting after headerSize bytes */
+    static abstract class MMapBackedIterator<TYPE> extends BinaryFileIterator<TYPE>{
+        protected final ByteBuffer buffer;
+
+        protected MMapBackedIterator(final byte[] header, final File file, final int elementSize, final ByteBuffer buffer) {
+            super(header, file, elementSize);
+            this.buffer = buffer;
+        }
+
+        public boolean hasNext() {
+            return buffer.limit() - buffer.position() >= elementSize;
+        }
+
+        public void skipElements(final int numElements) {
+            buffer.position(buffer.position() + (numElements * elementSize));
+        }
+
+        /** The method that actually retrieves the data from the enclosing buffer */
+        protected abstract TYPE getElement();
+
+        public Iterator<TYPE> iterator() {
+            return this;
+        }
+    }
+
+    private static class IntegerMMapIterator extends MMapBackedIterator<Integer> {
+        public IntegerMMapIterator(final byte[] header, final File file, final ByteBuffer buf) {
+            super(header, file, INT_SIZE, buf);
+        }
+
+        @Override
+        protected Integer getElement() {
+            return buffer.getInt();
+        }
+    }
+
+    private static class ByteMMapIterator extends MMapBackedIterator<Byte> {
+        public ByteMMapIterator(final byte[] header, final File file, final ByteBuffer buf) {
+            super(header, file, BYTE_SIZE, buf);
+        }
+
+        @Override
+        protected Byte getElement() {
+            return buffer.get();
+        }
+    }
+
+    private static class FloatMMapIterator extends MMapBackedIterator<Float> {
+        public FloatMMapIterator(final byte[] header, final File file, final ByteBuffer buf) {
+            super(header, file, FLOAT_SIZE, buf);
+        }
+
+        @Override
+        protected Float getElement() {
+            return buffer.getFloat();
+        }
+    }
+
+    private static class LongMMapIterator extends MMapBackedIterator<Long> {
+        public LongMMapIterator(final byte[] header, final File file, final ByteBuffer buf) {
+            super(header, file, LONG_SIZE, buf);
+        }
+
+        @Override
+        protected Long getElement() {
+            return buffer.getLong();
+        }
+    }
+
+    //TODO: Add test
+    //TODO: Make a note that if you want to multithread over this then you have to copy the contents
+    private static class ByteBufferMMapIterator extends MMapBackedIterator<ByteBuffer> {
+        private byte [] localBacking;
+        private ByteBuffer localBuffer;
+        public ByteBufferMMapIterator(final byte[] header, final File file, final int elementBufferSize, final ByteBuffer buf) {
+            super(header, file, elementBufferSize, buf);
+            this.localBacking = new byte[elementBufferSize];
+            this.localBuffer = ByteBuffer.wrap(localBacking);
+            this.localBuffer.order(ByteOrder.LITTLE_ENDIAN);
+        }
+
+        @Override
+        protected ByteBuffer getElement() {
+            localBuffer.position(0);
+            buffer.get(this.localBacking);
+            localBuffer.position(0);
+            return localBuffer;
+        }
+    }
+}
+
+
+abstract class BinaryFileIterator<TYPE> implements Iterator<TYPE>, Iterable<TYPE> {
+    protected final File file;
+    protected final long fileSize;
+    protected final int elementSize;
+    private final byte [] header;
+
+    public BinaryFileIterator(final byte[] header, final File file, final int elementSize) {
+        this.header = header;
+        this.file   = file;
+        this.fileSize = file.length();
+        this.elementSize = elementSize;
+    }
+    /** Return the bytes found in the first headerSize bytes of the file, wrapped as a
+     * ByteBuffer */
+    public ByteBuffer getHeaderBytes() {
+        final ByteBuffer bb = ByteBuffer.allocate(header.length);
+        bb.order(ByteOrder.LITTLE_ENDIAN);
+        bb.put(header);
+        bb.position(0);
+        return bb;
+    }
+
+    public void assertTotalElementsEqual(final long numElements) {
+        if(getElementsInFile() != numElements) {
+            throw new PicardException("Expected " + numElements + " elements in file but found " + getElementsInFile() + " elements! File(" + file.getAbsolutePath() +  ")");
+        }
+
+        if(getExtraBytes() != 0) {
+            throw new PicardException("Malformed file, expected " + (header.length + numElements * elementSize) + " bytes in file, found " + fileSize + " bytes for file("
+                    + file.getAbsolutePath() + ")");
+        }
+    }
+
+    public int getElementSize() {
+        return elementSize;
+    }
+
+    public long getExtraBytes() {
+        return fileSize - header.length - (getElementsInFile() * elementSize);
+    }
+
+    public long getElementsInFile() {
+        return (fileSize - header.length) / elementSize;
+    }
+
+    public File getFile() {
+        return file;
+    }
+
+    public TYPE next() {
+        if(!hasNext()) {
+            throw new NoSuchElementException();
+        }
+        return getElement();
+    }
+
+    public void remove() {
+        throw new UnsupportedOperationException();
+    }
+
+
+    public Iterator<TYPE> iterator() {
+        return this;
+    }
+
+    /** The method that actually retrieves the data from the enclosing buffer */
+    protected abstract TYPE getElement();
+    public abstract void skipElements(final int numElementsToSkip);
+    public abstract boolean hasNext();
+}
+
+
+
diff --git a/src/java/picard/illumina/parser/readers/PosFileReader.java b/src/java/picard/illumina/parser/readers/PosFileReader.java
new file mode 100644
index 0000000..3108abb
--- /dev/null
+++ b/src/java/picard/illumina/parser/readers/PosFileReader.java
@@ -0,0 +1,89 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2012 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.illumina.parser.readers;
+
+import htsjdk.samtools.util.CloserUtil;
+import picard.PicardException;
+import picard.util.BasicInputParser;
+
+import java.io.File;
+
+/**
+ * The pos file format is one 3 Illumina formats(pos, locs, and clocs) that stores position data exclusively.
+ * pos files store position data for successive clusters in tabbed delimited coordinated pairs, 1 per file row e.g.:
+ *
+ * xPos1\tyPos1
+ * xPos2\tyPos2
+ * 102.0\t303.3
+ *     ...
+ * xPosn-1\yPosn-1
+ * xPosn\yPosn
+ *
+ * Where n = the total number of clusters (and therefore lines) in the file.
+ */
+public class PosFileReader extends AbstractIlluminaPositionFileReader {
+
+    private final BasicInputParser parser;
+
+    public PosFileReader(final File posFile) {
+        super(posFile);
+        this.parser  = new BasicInputParser(true, posFile);
+    }
+
+    /** Read a line of text and parse it into two float values, create a PositionInfo and return it */
+    @Override
+    protected PositionInfo unsafeNextInfo() {
+        final String [] strVals = this.parser.next();
+        if(strVals.length != 2) {
+            throw new PicardException("Pos file number of values != 2, found (" + strVals.length +")" + makeExceptionMsg());
+        }
+        try {
+            final float xVal = Float.parseFloat(strVals[0]);
+            final float yVal = Float.parseFloat(strVals[1]);
+
+            if(xVal <0 || yVal < 0) {
+                throw new NumberFormatException("X and Y pos values cannot be negative!");
+            }
+
+            return new PositionInfo(xVal, yVal, getLane(), getTile());
+        } catch(final NumberFormatException nfe) {
+            throw new PicardException("Bad x or y value in " + makeExceptionMsg(), nfe);
+        }
+    }
+
+    @Override
+    protected String makeExceptionMsg() {
+        return "pos file( "              + parser.getFileName()            +
+               " ) on line number( "     + parser.getCurrentLineNumber()   +
+               " ) with current line = " + parser.getCurrentLine();
+    }
+
+    public boolean hasNext() {
+        return parser.hasNext();
+    }
+
+    public void close() {
+        CloserUtil.close(parser);
+    }
+}
diff --git a/src/java/picard/illumina/parser/readers/TileMetricsOutReader.java b/src/java/picard/illumina/parser/readers/TileMetricsOutReader.java
new file mode 100644
index 0000000..215e067
--- /dev/null
+++ b/src/java/picard/illumina/parser/readers/TileMetricsOutReader.java
@@ -0,0 +1,167 @@
+package picard.illumina.parser.readers;
+
+import picard.PicardException;
+import picard.util.UnsignedTypeUtil;
+
+import java.io.File;
+import java.nio.ByteBuffer;
+import java.util.Iterator;
+import java.util.NoSuchElementException;
+
+/**
+ * Reads a TileMetricsOut file commonly found in the InterOp directory of an Illumina Run Folder.  This
+ * reader DOES NOT try to interpret the metrics code or metrics value but instead returns them in what
+ * is essentially a struct.
+ *
+ * File Format:
+ * byte 0 (unsigned byte) = The version number which MUST be 2 or an exception will be thrown
+ * byte 1 (unsigned byte) = The record size which must be 10 or an exception will be thrown
+ * bytes 3 + (current_record * 10) to (current_record * 10 + 10) (TileMetrics Record) = The actual records each of size 10 that
+ *          get converted into IlluminaPhasingMetrics objects
+ *
+ * TileMetrics Record Format:
+ * Each 10 byte record is of the following format:
+ * byte 0-1 (unsigned short) = lane number
+ * byte 2-3 (unsigned short) = tile number
+ * byte 4-5 (unisgned short) = metrics code, see Theory of RTA document by Illumina for definition
+ * byte 6-9 (float)          = metrics value, see Theory of RTA document by Illumina for definition
+ */
+public class TileMetricsOutReader implements Iterator<TileMetricsOutReader.IlluminaTileMetrics> {
+    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<ByteBuffer> bbIterator;
+
+    /**
+     * Return a TileMetricsOutReader for the specified file
+     * @param tileMetricsOutFile The file to read
+     */
+    public TileMetricsOutReader(final File tileMetricsOutFile) {
+        bbIterator = MMapBackedIteratorFactory.getByteBufferIterator(HEADER_SIZE, EXPECTED_RECORD_SIZE, tileMetricsOutFile);
+
+        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 + ")" );
+        }
+
+        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 + ")" );
+        }
+    }
+
+    public boolean hasNext() {
+        return bbIterator.hasNext();
+    }
+
+    public IlluminaTileMetrics next() {
+        if(!hasNext()) {
+            throw new NoSuchElementException();
+        }
+        return new IlluminaTileMetrics(bbIterator.next());
+    }
+
+    public void remove() {
+        throw new UnsupportedOperationException();
+    }
+
+    /**
+     * 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());
+        }
+
+        public IlluminaTileMetrics(final int laneNumber, final int tileNumber, final int metricCode, final float metricValue) {
+            this.laneTileCode = new IlluminaLaneTileCode(laneNumber, tileNumber, metricCode);
+            this.metricValue = metricValue;
+        }
+
+        public int getLaneNumber() {
+            return laneTileCode.getLaneNumber();
+        }
+
+        public int getTileNumber() {
+            return laneTileCode.getTileNumber();
+        }
+
+        public int getMetricCode() {
+            return laneTileCode.getMetricCode();
+        }
+
+        public float getMetricValue() {
+            return metricValue;
+        }
+
+        public IlluminaLaneTileCode getLaneTileCode() {
+            return laneTileCode;
+        }
+
+        @Override
+        public boolean equals(final Object o) {
+            if (o instanceof IlluminaTileMetrics) {
+                final IlluminaTileMetrics that = (IlluminaTileMetrics) o;
+                return laneTileCode == that.laneTileCode && metricValue == that.metricValue; // Identical tile data should render exactly the same float.
+            } else {
+                return false;
+            }
+        }
+        
+        @Override
+        public int hashCode() {
+            return String.format("%s:%s:%s:%s", laneTileCode.getLaneNumber(), laneTileCode.getTileNumber(), laneTileCode.getMetricCode(), metricValue).hashCode(); // Slow but adequate.
+        }
+    }
+
+    /** Helper class which captures the combination of a lane, tile & metric code */
+    public static class IlluminaLaneTileCode {
+        private final int laneNumber;
+        private final int tileNumber;
+        private final int metricCode;
+
+        public IlluminaLaneTileCode(final int laneNumber, final int tileNumber, final int metricCode) {
+            this.laneNumber = laneNumber;
+            this.tileNumber = tileNumber;
+            this.metricCode = metricCode;
+        }
+
+        public int getLaneNumber() {
+            return laneNumber;
+        }
+
+        public int getTileNumber() {
+            return tileNumber;
+        }
+
+        public int getMetricCode() {
+            return metricCode;
+        }
+
+        @Override
+        public boolean equals(final Object o) {
+            if (o instanceof IlluminaLaneTileCode) {
+                final IlluminaLaneTileCode that = (IlluminaLaneTileCode) o;
+                return laneNumber == that.laneNumber && tileNumber == that.tileNumber && metricCode == that.metricCode;
+            } else {
+                return false;
+            }
+        }
+
+        @Override
+        public int hashCode() {
+            int result = laneNumber;
+            result = 31 * result + tileNumber;
+            result = 31 * result + metricCode;
+            return result;
+        }
+    }
+}
diff --git a/src/java/picard/illumina/quality/CollectHiSeqXPfFailMetrics.java b/src/java/picard/illumina/quality/CollectHiSeqXPfFailMetrics.java
new file mode 100644
index 0000000..66ae083
--- /dev/null
+++ b/src/java/picard/illumina/quality/CollectHiSeqXPfFailMetrics.java
@@ -0,0 +1,510 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.illumina.quality;
+
+import htsjdk.samtools.metrics.MetricBase;
+import htsjdk.samtools.metrics.MetricsFile;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.Metrics;
+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;
+import picard.illumina.parser.ReadStructure;
+import picard.illumina.parser.readers.BclQualityEvaluationStrategy;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Random;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Collect metrics regarding the reason for reads (sequenced by HiSeqX) not passing the Illumina PF Filter. (BETA)
+ *
+ * @author Yossi Farjoun
+ */
+ at CommandLineProgramProperties(
+        usage = "Classify PF-Failing reads in a HiSeqX Illumina Basecalling directory into various categories. The classification is based on a heuristic that was derived by looking at a few titration experiments.",
+        usageShort = "Classify PF-Failing reads in a HiSeqX Illumina Basecalling directory into various categories.",
+        programGroup = Metrics.class
+)
+
+public class CollectHiSeqXPfFailMetrics extends CommandLineProgram {
+    @Option(doc = "The Illumina basecalls directory. ", shortName = "B")
+    public File BASECALLS_DIR;
+
+    @Option(shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc = "Basename for metrics file. Resulting file will be" +
+            " <OUTPUT>" + summaryMetricsExtension, optional = false)
+    public File OUTPUT;
+
+    @Option(shortName = "P", doc = "The fraction of (non-PF) reads for which to output explicit classification. Output file will be <OUTPUT>" + detailedMetricsExtension + " (if PROB_EXPLICIT_READS != 0)", optional = true)
+    public double PROB_EXPLICIT_READS = 0;
+
+    @Option(doc = "Lane number.", shortName = StandardOptionDefinitions.LANE_SHORT_NAME)
+    public Integer LANE;
+
+    @Option(shortName = "NP", doc = "Run this many PerTileBarcodeExtractors in parallel.  If NUM_PROCESSORS = 0, number of cores is automatically set to " +
+            "the number of cores available on the machine. If NUM_PROCESSORS < 0 then the number of cores used will be " +
+            "the number available on the machine less NUM_PROCESSORS.", optional = true)
+    public int NUM_PROCESSORS = 1;
+
+    @Option(doc = "Number of cycles to look at. At time of writing PF status gets determined at cycle 24 so numbers greater than this will yield strange results. " +
+            "In addition, PF status is currently determined at cycle 24, so running this with any other value is neither tested nor recommended.", optional = true)
+    public int N_CYCLES = 24;
+
+    private static final Log LOG = Log.getInstance(CollectHiSeqXPfFailMetrics.class);
+
+    private final Map<Integer, PFFailSummaryMetric> tileToSummaryMetrics = new LinkedHashMap<Integer, PFFailSummaryMetric>();
+    private final Map<Integer, List<PFFailDetailedMetric>> tileToDetailedMetrics = new LinkedHashMap<Integer, List<PFFailDetailedMetric>>();
+
+    //Add "T" to the number of cycles to create a "TemplateRead" of the desired length.
+    private final ReadStructure READ_STRUCTURE = new ReadStructure(N_CYCLES + "T");
+
+    public final static String detailedMetricsExtension = ".pffail_detailed_metrics";
+    public final static String summaryMetricsExtension = ".pffail_summary_metrics";
+
+    @Override
+    protected String[] customCommandLineValidation() {
+        final List<String> errors = new ArrayList<String>();
+
+        if (N_CYCLES < 0) {
+            errors.add("Number of Cycles to look at must be greater than 0");
+        }
+
+        if (PROB_EXPLICIT_READS > 1 || PROB_EXPLICIT_READS < 0) {
+            errors.add("PROB_EXPLICIT_READS must be a probability, i.e., 0 <= PROB_EXPLICIT_READS <= 1");
+        }
+
+        if (errors.size() > 0) {
+            return errors.toArray(new String[errors.size()]);
+        } else {
+            return super.customCommandLineValidation();
+        }
+    }
+
+    /** Stock main method. */
+    public static void main(final String[] args) {
+        new CollectHiSeqXPfFailMetrics().instanceMainWithExit(args);
+    }
+
+    @Override
+    protected int doWork() {
+
+        final IlluminaDataProviderFactory factory = new IlluminaDataProviderFactory(BASECALLS_DIR, LANE, READ_STRUCTURE,
+                new BclQualityEvaluationStrategy(BclQualityEvaluationStrategy.ILLUMINA_ALLEGED_MINIMUM_QUALITY),
+                IlluminaDataType.BaseCalls,
+                IlluminaDataType.PF,
+                IlluminaDataType.QualityScores,
+                IlluminaDataType.Position);
+
+        final File summaryMetricsFileName = new File(OUTPUT + summaryMetricsExtension);
+        final File detailedMetricsFileName = new File(OUTPUT + detailedMetricsExtension);
+
+        IOUtil.assertFileIsWritable(summaryMetricsFileName);
+        if (PROB_EXPLICIT_READS != 0) {
+            IOUtil.assertFileIsWritable(detailedMetricsFileName);
+        }
+
+        final int numProcessors;
+        if (NUM_PROCESSORS == 0) {
+            numProcessors = Runtime.getRuntime().availableProcessors();
+        } else if (NUM_PROCESSORS < 0) {
+            numProcessors = Runtime.getRuntime().availableProcessors() + NUM_PROCESSORS;
+        } else {
+            numProcessors = NUM_PROCESSORS;
+        }
+
+        // Create thread-pool submit jobs and what for their completion
+        LOG.info("Processing with " + numProcessors + " PerTilePFMetricsExtractor(s).");
+        final ExecutorService pool = Executors.newFixedThreadPool(numProcessors);
+
+        final List<PerTilePFMetricsExtractor> extractors = new ArrayList<PerTilePFMetricsExtractor>(factory.getAvailableTiles().size());
+        for (final int tile : factory.getAvailableTiles()) {
+            tileToSummaryMetrics.put(tile, new PFFailSummaryMetric(Integer.toString(tile)));
+            tileToDetailedMetrics.put(tile, new ArrayList<PFFailDetailedMetric>());
+
+            final PerTilePFMetricsExtractor extractor = new PerTilePFMetricsExtractor(
+                    tile,
+                    tileToSummaryMetrics.get(tile),
+                    tileToDetailedMetrics.get(tile),
+                    factory,
+                    PROB_EXPLICIT_READS
+            );
+            extractors.add(extractor);
+        }
+        try {
+            for (final PerTilePFMetricsExtractor extractor : extractors) {
+                pool.submit(extractor);
+            }
+            pool.shutdown();
+            // Wait forever for tasks to terminate
+            pool.awaitTermination(Long.MAX_VALUE, TimeUnit.DAYS);
+        } catch (final Throwable e) {
+            // Cancel if current thread also interrupted
+            LOG.error(e, "Parent thread encountered problem submitting extractors to thread pool or awaiting shutdown of threadpool.  Attempting to kill threadpool.");
+            pool.shutdownNow();
+            return 2;
+        }
+
+        LOG.info("Processed " + extractors.size() + " tiles.");
+
+        // Check for exceptions from extractors
+        for (final PerTilePFMetricsExtractor extractor : extractors) {
+            if (extractor.getException() != null) {
+                LOG.error("Abandoning metrics calculation because one or more PerTilePFMetricsExtractors failed.");
+                return 4;
+            }
+        }
+
+        // Add detailed metrics to file
+        final MetricsFile<PFFailDetailedMetric, ?> detailedMetrics = getMetricsFile();
+        for (final Collection<PFFailDetailedMetric> detailedMetricCollection : tileToDetailedMetrics.values()) {
+            for (final PFFailDetailedMetric metric : detailedMetricCollection) {
+                detailedMetrics.addMetric(metric);
+            }
+        }
+
+        // If detailed metrics were requested, write them now.
+        if (PROB_EXPLICIT_READS > 0) {
+            detailedMetrics.write(detailedMetricsFileName);
+        }
+
+        // Finish metrics tallying. Looping twice so that the "All" metrics will come out on top.
+        final PFFailSummaryMetric totalMetric = new PFFailSummaryMetric("All"); // a "fake" tile that will contain the total tally
+        for (final PFFailSummaryMetric summaryMetric : tileToSummaryMetrics.values()) {
+            totalMetric.merge(summaryMetric);
+        }
+
+        // Derive fields for total metric and add to file
+        totalMetric.calculateDerivedFields();
+        final MetricsFile<PFFailSummaryMetric, ?> summaryMetricsFile = getMetricsFile();
+        summaryMetricsFile.addMetric(totalMetric);
+
+        // Prepare each tile's derived fields and add it to the file
+        for (final PFFailSummaryMetric summaryMetric : tileToSummaryMetrics.values()) {
+            summaryMetric.calculateDerivedFields();
+            summaryMetricsFile.addMetric(summaryMetric);
+        }
+
+        // Actually write the summary metrics to their file.
+        summaryMetricsFile.write(summaryMetricsFileName);
+
+        return 0;
+    }
+
+    /** Extracts metrics from a HiSeqX tile. */
+    private static class PerTilePFMetricsExtractor implements Runnable {
+
+        private final int tile;
+        private final PFFailSummaryMetric summaryMetric;
+        final Collection<PFFailDetailedMetric> detailedMetrics;
+        private Exception exception = null;
+        private final IlluminaDataProvider provider;
+        final private double pWriteDetailed;
+        final private Random random = new Random();
+
+        /**
+         * Constructor
+         *
+         * @param tile The number of the tile being processed.
+         * @param summaryMetric A summaryMetric for collecting the tile data in.
+         * @param detailedMetrics A set of metrics for collecting the classification data in.
+         * @param factory A dataprovider for IlluminaData
+         */
+        public PerTilePFMetricsExtractor(
+                final int tile,
+                final PFFailSummaryMetric summaryMetric,
+                final Collection<PFFailDetailedMetric> detailedMetrics,
+                final IlluminaDataProviderFactory factory,
+                final double pWriteDetailed
+        ) {
+            this.tile = tile;
+            this.summaryMetric = summaryMetric;
+            this.detailedMetrics = detailedMetrics;
+            this.pWriteDetailed = pWriteDetailed;
+            this.provider = factory.makeDataProvider(Arrays.asList(tile));
+        }
+
+        public Exception getException() { return this.exception; }
+
+        /** run method which extracts accumulates metrics for a tile */
+        public void run() {
+            try {
+                LOG.info("Extracting PF metrics for tile " + tile);
+
+                /**
+                 *   Sometimes makeDataProvider takes a while waiting for slow file IO, for each tile the needed set of files
+                 *   is non-overlapping sets of files so make the data providers in the individual threads for Extractors
+                 *   so they are not all waiting for each others file operations
+                 */
+                while (provider.hasNext()) {
+                    // Extract the PF status and infer reason if FAIL from the cluster and update the summaryMetric for the tile
+                    final ClusterData cluster = provider.next();
+                    this.summaryMetric.READS++;
+                    if (!cluster.isPf()) {
+                        this.summaryMetric.PF_FAIL_READS++;
+
+                        final ReadClassifier readClassifier = new ReadClassifier(cluster.getRead(0));
+
+                        if (random.nextDouble() < pWriteDetailed) {
+                            detailedMetrics.add(new PFFailDetailedMetric(tile, cluster.getX(), cluster.getY(), readClassifier.numNs, readClassifier.numQGtTwo, readClassifier.failClass));
+                        }
+                        switch (readClassifier.failClass) {
+                            case EMPTY:
+                                this.summaryMetric.PF_FAIL_EMPTY++;
+                                break;
+                            case MISALIGNED:
+                                this.summaryMetric.PF_FAIL_MISALIGNED++;
+                                break;
+                            case POLYCLONAL:
+                                this.summaryMetric.PF_FAIL_POLYCLONAL++;
+                                break;
+                            case UNKNOWN:
+                                this.summaryMetric.PF_FAIL_UNKNOWN++;
+                                break;
+                            default:
+                                LOG.error("Got unexpected fail Reason");
+                        }
+                    }
+                }
+            } catch (final Exception e) {
+                LOG.error(e, "Error processing tile ", this.tile);
+                this.exception = e;
+            } finally {
+                provider.close();
+            }
+        }
+    }
+
+    protected static class ReadClassifier {
+        public enum PfFailReason {
+            EMPTY,
+            POLYCLONAL,
+            MISALIGNED,
+            UNKNOWN
+        }
+
+        private final int numNs; // The number of Ns in the base calls
+        private final int numQGtTwo; // The number of quality scores greater than 2
+        private PfFailReason failClass = null; // The classification of the failure mode
+
+        /**
+         * Heart of CLP.
+         * This class actually classifies ReadData into the reason why it failed PF
+         * classification is based on a small set of titrated flowcells sequenced at the Broad Institute by the Genomics Platform.
+         * Three cluster were observed:
+         * - numNs~24 and was found only near the boundaries of tiles. it didn't seem to depend on concentration. For this reason it
+         * was classified as MISALIGNED
+         * <p/>
+         * - numNs~0 and numQGtTwo<=8 these were found throughout the tiles and _decreased_ in number as the concentration of the library increased
+         * Thus it was concluded that these correspond to the EMPTY wells
+         * <p/>
+         * - numNs~0 and numQGtTwo>=12 there were found throughout the tiles and _increased_ in number as the concentration of the library increased
+         * Thus it was concluded that these correspond to the POLYCLONAL wells
+         * <p/>
+         * - the remaining reads were few in number the classification for them wasn't clear. Thus they are left as UNKNOWN.
+         * <p/>
+         * We use the length of the read as a parameter and scale the 8 and the 12 accordingly as length/3 and length/2, but in reality this has only
+         * been tested on length=24.
+         *
+         * @param read The read to classify.
+         */
+        public ReadClassifier(final ReadData read) {
+
+            final int length = read.getBases().length;
+
+            numNs = countEquals(read.getBases(), (byte) '.'); // Ns are returned as periods from Illumina
+            numQGtTwo = countGreaterThan(read.getQualities(), (byte) 2);
+
+            failClass = PfFailReason.UNKNOWN; //for cases not covered below
+            if (numNs >= (length - 1)) {
+                failClass = PfFailReason.MISALIGNED;
+            } else if (numNs <= 1) {
+                if (numQGtTwo <= length / 3) {
+                    failClass = PfFailReason.EMPTY;
+                } else if (numQGtTwo >= length / 2) {
+                    failClass = PfFailReason.POLYCLONAL;
+                }
+            }
+        }
+    }
+
+    /** a metric class for describing FP failing reads from an Illumina HiSeqX lane * */
+    public static class PFFailDetailedMetric extends MetricBase {
+        // The Tile that is described by this metric.
+        public Integer TILE;
+
+        //The X coordinate of the read within the tile
+        public int X;
+
+        //The Y coordinate of the read within the tile
+        public int Y;
+
+        //The number of Ns found in this read.
+        public int NUM_N;
+
+        //The number of Quality scores greater than 2 found in this read
+        public int NUM_Q_GT_TWO;
+
+        /**
+         * The classification of this read: {EMPTY, POLYCLONAL, MISALIGNED, UNKNOWN}
+         * (See PFFailSummaryMetric for explanation regarding the possible classification.)
+         */
+        public ReadClassifier.PfFailReason CLASSIFICATION;
+
+        public PFFailDetailedMetric(final Integer TILE, final int x, final int y, final int NUM_N, final int NUM_Q_GT_TWO, final ReadClassifier.PfFailReason CLASSIFICATION) {
+            this.TILE = TILE;
+            X = x;
+            Y = y;
+            this.NUM_N = NUM_N;
+            this.NUM_Q_GT_TWO = NUM_Q_GT_TWO;
+            this.CLASSIFICATION = CLASSIFICATION;
+        }
+
+        /** This ctor is necessary for when reading metrics from file */
+        public PFFailDetailedMetric() {
+        }
+    }
+
+    /**
+     * Metrics produced by the GetHiSeqXPFFailMetrics program. Used to diagnose lanes from HiSeqX
+     * Sequencing, providing the number and fraction of each of the reasons that reads could have not passed PF.
+     * Possible reasons are EMPTY (reads from empty wells with no template strand), POLYCLONAL (reads from wells that had more than one strand
+     * cloned in them), MISALIGNED (reads from wells that are near the edge of the tile), UNKNOWN (reads that didn't pass PF but couldn't be diagnosed)
+     */
+    public static class PFFailSummaryMetric extends MetricBase {
+        /** The Tile that is described by this metric. Can be a string (like "All") to mean some marginal over tiles. * */
+        public String TILE = null;
+
+        /** The total number of reads examined */
+        public int READS = 0;
+
+        /** The number of non-PF reads in this tile. */
+        public int PF_FAIL_READS = 0;
+
+        /** The fraction of PF_READS */
+        public double PCT_PF_FAIL_READS = 0.0;
+
+        /** The number of non-PF reads in this tile that are deemed empty. */
+        public int PF_FAIL_EMPTY = 0;
+
+        /** The fraction of non-PF reads in this tile that are deemed empty (as fraction of all non-PF reads). */
+        public double PCT_PF_FAIL_EMPTY = 0.0;
+
+        /** The number of non-PF reads in this tile that are deemed multiclonal. */
+        public int PF_FAIL_POLYCLONAL = 0;
+
+        /** The fraction of non-PF reads in this tile that are deemed multiclonal (as fraction of all non-PF reads). */
+        public double PCT_PF_FAIL_POLYCLONAL = 0.0;
+
+        /** The number of non-PF reads in this tile that are deemed "misaligned". */
+        public int PF_FAIL_MISALIGNED = 0;
+
+        /** The fraction of non-PF reads in this tile that are deemed "misaligned" (as fraction of all non-PF reads). */
+        public double PCT_PF_FAIL_MISALIGNED = 0.0;
+
+        /** The number of non-PF reads in this tile that have not been classified. */
+        public int PF_FAIL_UNKNOWN = 0;
+
+        /** The fraction of non-PF reads in this tile that have not been classified (as fraction of all non-PF reads). */
+        public double PCT_PF_FAIL_UNKNOWN = 0.0;
+
+        // constructor takes a String for tile since we want to have one instance with tile="All". This tile will contain the summary of all the tiles
+        public PFFailSummaryMetric(final String tile) {
+            TILE = tile;
+        }
+
+        /** This ctor is necessary for when reading metrics from file */
+        public PFFailSummaryMetric() {
+        }
+
+        /**
+         * Adds the non-calculated fields from the other metric to this one.
+         *
+         * @param metric
+         */
+        public void merge(final PFFailSummaryMetric metric) {
+            this.READS += metric.READS;
+            this.PF_FAIL_READS += metric.PF_FAIL_READS;
+            this.PF_FAIL_EMPTY += metric.PF_FAIL_EMPTY;
+            this.PF_FAIL_MISALIGNED += metric.PF_FAIL_MISALIGNED;
+            this.PF_FAIL_POLYCLONAL += metric.PF_FAIL_POLYCLONAL;
+            this.PF_FAIL_UNKNOWN += metric.PF_FAIL_UNKNOWN;
+        }
+
+        public void calculateDerivedFields() {
+            //protect against divide by zero
+            if (this.READS != 0) {
+                this.PCT_PF_FAIL_READS = (double) this.PF_FAIL_READS / this.READS;
+                this.PCT_PF_FAIL_EMPTY = (double) this.PF_FAIL_EMPTY / this.READS;
+                this.PCT_PF_FAIL_MISALIGNED = (double) this.PF_FAIL_MISALIGNED / this.READS;
+                this.PCT_PF_FAIL_POLYCLONAL = (double) this.PF_FAIL_POLYCLONAL / this.READS;
+                this.PCT_PF_FAIL_UNKNOWN = (double) this.PF_FAIL_UNKNOWN / this.READS;
+            }
+        }
+    }
+
+    /**
+     * a simple function that counts how many elements in array are equal to 'toCount'
+     *
+     * @param array
+     * @param toCount
+     * @return number of elements in array that == 'toCount'
+     */
+    static private int countEquals(final byte[] array, final byte toCount) {
+        int count = 0;
+        for (final byte t : array) {
+            if (t == toCount) count++;
+        }
+        return count;
+    }
+
+    /**
+     * a simple function that counts how many elements in array are greater-than-or-equal-to 'value'
+     *
+     * @param array
+     * @param value
+     * @return number of elements in array that >= 'value'
+     */
+    static private int countGreaterThan(final byte[] array, final byte value) {
+        int count = 0;
+        for (final int t : array) {
+            if (t > value) count++;
+        }
+        return count;
+    }
+}
diff --git a/src/java/picard/metrics/GcBiasMetrics.java b/src/java/picard/metrics/GcBiasMetrics.java
new file mode 100644
index 0000000..69e3020
--- /dev/null
+++ b/src/java/picard/metrics/GcBiasMetrics.java
@@ -0,0 +1,40 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.metrics;
+
+/**
+ * Created by kbergin on 3/23/15.
+ */
+
+import htsjdk.samtools.metrics.MetricBase;
+import picard.analysis.GcBiasDetailMetrics;
+import picard.analysis.GcBiasSummaryMetrics;
+import htsjdk.samtools.metrics.MetricsFile;
+
+public class GcBiasMetrics extends MetricBase {
+    public MetricsFile<GcBiasDetailMetrics, ?> DETAILS = new MetricsFile<GcBiasDetailMetrics, Comparable>();
+
+    public GcBiasSummaryMetrics SUMMARY;
+}
diff --git a/src/java/picard/metrics/MultiLevelCollector.java b/src/java/picard/metrics/MultiLevelCollector.java
new file mode 100644
index 0000000..914adad
--- /dev/null
+++ b/src/java/picard/metrics/MultiLevelCollector.java
@@ -0,0 +1,341 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2012 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.metrics;
+
+import htsjdk.samtools.SAMReadGroupRecord;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.metrics.MetricBase;
+import htsjdk.samtools.metrics.MetricsFile;
+import htsjdk.samtools.reference.ReferenceSequence;
+import picard.PicardException;
+import picard.analysis.MetricAccumulationLevel;
+
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * MultiLevelCollector handles accumulating Metrics at different MetricAccumulationLevels(ALL_READS, SAMPLE, LIBRARY, READ_GROUP).
+ * Based on the accumulationLevels and readGroup records passed to its constructor, MultiLevelCollector
+ * will instantiate the number of PerUnitMetricCollector's needed to generate metrics for each of the levels provided.
+ *
+ * To Use:
+ *
+ * Instantiate a MultiLevelCollector and call setup(see thoughts about extending MultiLevelCollector below)
+ * setup will create the underlying classes that will handle the accumulation level logic.
+ * Pass all reads you wish to collect data against to MultiLevelCollector via the acceptRecord method
+ * Call finish and use addAllLevelsToFile to add all of the metrics at each accumulation level to the given file.
+ *
+ * Extend MultiLevelCollector and implement makeArg and makeChildCollector
+ * You will most likely want to make a class that extends PerUnitMetricCollector.  This class should do the work of keeping
+ * track of values for one specific "accumulation unit" (e.g. for one library, or for one read group depending on what levels
+ * you are accumulating at).
+ *
+ * If a record has any expensive calculations to be done (that don't need to be done differently depending
+ * on what sample/library/read group the read is for) then create a container class for the results of these calculations and pass
+ * this class as the ARGTYPE of both the PerUnitMetricCollector and MultiLevelCollector.  You can then do these calculations in the makeArg
+ * method and they will only be done once per record.
+ *
+ * @param <METRIC_TYPE> The type of metrics being collected
+ * @param <Histogram_KEY> If there is are Histograms related to metrics of type <BEAN> then <HKEY> is the key value to these Histograms
+ * @param <ARGTYPE> The type of argument passed to individual PerUnitMetricCollector (see SAMRecordMultilevelCollector and PerUnitMetricCollector)
+ */
+public abstract class MultiLevelCollector<METRIC_TYPE extends MetricBase, Histogram_KEY extends Comparable, ARGTYPE>  {
+
+    public static final String UNKNOWN = "unknown";
+    //The collector that will accept all records (allReads is NULL if !calculateAll)
+    private PerUnitMetricCollector<METRIC_TYPE, Histogram_KEY, ARGTYPE> allReadCollector;
+
+    //A list of Distributor that is at most length 3, 1 for each (SAMPLE, LIBRARY, READ_GROUP) accumulation levels
+    //these will be listed in the order in which their children would be added to a metric file
+    private List<Distributor> outputOrderedDistributors;
+
+    //Convert the current SAMRecord and the ReferenceSequence for that record into an ARGTYPE object
+    //see accept record for use
+    protected abstract ARGTYPE makeArg(final SAMRecord samRec, final ReferenceSequence refSeq);
+
+    /**
+     * Construct a PerUnitMetricCollector with the given arguments.
+     * @param sample If aggregating by ALL_READS this will be null, otherwise the sample that will be used to identify
+     *               this collector
+     * @param library If aggregating by SAMPLE this will be null, otherwise the library that will be used to identify
+     *               this collector
+     * @param readGroup If aggregating by LIBRARY this will be null, otherwise the readGroup that will be used to identify
+     *                  this collector
+     * @return A PerUnitMetricCollector parameterized by the given arguments
+     */
+    protected abstract PerUnitMetricCollector<METRIC_TYPE, Histogram_KEY, ARGTYPE> makeChildCollector(final String sample, final String library, final String readGroup);
+
+    //These are exposed here (rather than being encapsulated in the Distributor subclasses below in order
+    //to provide subclasses with an explicit point to add initialization (specific to accumulation level) for
+    //a PerUnitMetricCollector it is creating
+    protected PerUnitMetricCollector<METRIC_TYPE, Histogram_KEY, ARGTYPE> makeAllReadCollector() {
+        return makeChildCollector(null, null, null);
+    }
+    protected PerUnitMetricCollector<METRIC_TYPE, Histogram_KEY, ARGTYPE> makeSampleCollector(final SAMReadGroupRecord rg) {
+        return makeChildCollector(rg.getSample(), null, null);
+    }
+    protected PerUnitMetricCollector<METRIC_TYPE, Histogram_KEY, ARGTYPE> makeLibraryCollector(final SAMReadGroupRecord rg) {
+        return makeChildCollector(rg.getSample(), rg.getLibrary(), null);
+    }
+    protected PerUnitMetricCollector<METRIC_TYPE, Histogram_KEY, ARGTYPE> makeReadGroupCollector(final SAMReadGroupRecord rg) {
+        return makeChildCollector(rg.getSample(), rg.getLibrary(), rg.getPlatformUnit());
+    }
+
+    /**
+     * Distributors group PerUnitMetricCollectors based on a AccumulationLevel.  Their structure mimics
+     * PerUnitMetricCollectors but instead of adding records to metrics they identify which
+     * PerUnitMetricCollector should receive a specific record and distribute records on to the that collector
+     *
+     * There were will be 0 or 1 Distributors for each of the following MetriAcummulationLevels:
+     * ALL_READS, SAMPLE, LIBRARY, READ_GROUP
+     */
+    private abstract class Distributor {
+        //A Map mapping the key for a specific record (as determined by getKey) to the appropriate collector
+        private final Map<String, PerUnitMetricCollector<METRIC_TYPE, Histogram_KEY, ARGTYPE>> collectors;
+
+        //Given a SAMReadGroupRecord, return the key that identifies the collector for the corresponding SAMRecord
+        protected abstract String getKey(final SAMReadGroupRecord rg);
+
+        //Make a PerUnitMetricCollector for this given Distributor
+        protected abstract PerUnitMetricCollector<METRIC_TYPE, Histogram_KEY, ARGTYPE> makeCollector(final SAMReadGroupRecord rg);
+
+        protected abstract PerUnitMetricCollector<METRIC_TYPE, Histogram_KEY, ARGTYPE> makeUnknownCollector();
+
+        public Distributor(final List<SAMReadGroupRecord> rgRecs) {
+            collectors = new LinkedHashMap<String, PerUnitMetricCollector<METRIC_TYPE, Histogram_KEY, ARGTYPE>>();
+            for(final SAMReadGroupRecord rg : rgRecs) {
+                final String key = getKey(rg);
+                if(!collectors.containsKey(key)) {
+                    collectors.put(key, makeCollector(rg));
+                }
+            }
+        }
+
+        /** Call finish on each PerUnitMetricCollector in this Aggregate Collector */
+        public void finish() {
+            for(final PerUnitMetricCollector<METRIC_TYPE, Histogram_KEY, ARGTYPE> collector : collectors.values()) {
+                collector.finish();
+            }
+        }
+
+        /** Call acceptRecord(args) on the record collector identified by getKey */
+        public void acceptRecord(final ARGTYPE args, final SAMReadGroupRecord rg) {
+
+            String key = UNKNOWN;
+            if(rg != null) {
+                final String computedKey = getKey(rg);
+                if(computedKey != null) {
+                    key = computedKey;
+                }
+            }
+            PerUnitMetricCollector<METRIC_TYPE, Histogram_KEY, ARGTYPE> collector = collectors.get(key);
+            if (collector == null) {
+                if (!UNKNOWN.equals(key)) {
+                    throw new PicardException("Could not find collector for " + key);
+                }
+                collector = makeUnknownCollector();
+                collectors.put(key, collector);
+            }
+            collector.acceptRecord(args);
+        }
+
+        /** Add all records to the MetricsFile passed in, this will happen in the order they were
+         * found in the input ReadGroup records */
+        public void addToFile(final MetricsFile<METRIC_TYPE, Histogram_KEY> file) {
+            for(final PerUnitMetricCollector<METRIC_TYPE, Histogram_KEY, ARGTYPE> collector : collectors.values()) {
+                collector.addMetricsToFile(file);
+            }
+        }
+    }
+
+    /** A dummy Distributor to handle the ALL_READS accumulation level.  No distribution is required
+     * since there should only ever be one PerUnitMetricCollector for ALL_READS.
+     */
+    private class AllReadsDistributor extends Distributor {
+
+        public AllReadsDistributor(final List<SAMReadGroupRecord> rgRecs) {
+            super(new ArrayList<SAMReadGroupRecord>());
+            makeCollector(null);
+        }
+
+        @Override
+        protected String getKey(SAMReadGroupRecord rg) {
+            return null;
+        }
+
+        public void acceptRecord(final ARGTYPE args, final SAMReadGroupRecord rg) {
+            allReadCollector.acceptRecord(args);
+        }
+
+        @Override
+        protected PerUnitMetricCollector<METRIC_TYPE, Histogram_KEY, ARGTYPE> makeCollector(final SAMReadGroupRecord rg) {
+            allReadCollector = makeAllReadCollector();
+            return allReadCollector;
+        }
+
+        @Override
+        protected PerUnitMetricCollector<METRIC_TYPE, Histogram_KEY, ARGTYPE> makeUnknownCollector() {
+            throw new UnsupportedOperationException("Should not happen");
+        }
+
+        @Override
+        public void finish() {
+            allReadCollector.finish();
+        }
+
+        @Override
+        public void addToFile(final MetricsFile<METRIC_TYPE, Histogram_KEY> file) {
+            allReadCollector.addMetricsToFile(file);
+        }
+    }
+
+    //Discriminates between records based on sample name, and calls acceptRecord on the appropriate PerUnitMetricCollectors
+    private class SampleDistributor extends Distributor {
+        public SampleDistributor(final List<SAMReadGroupRecord> rgRecs) {
+            super(rgRecs);
+        }
+
+        @Override
+        protected String getKey(SAMReadGroupRecord rg) {
+            return rg.getSample();
+        }
+
+        @Override
+        protected PerUnitMetricCollector<METRIC_TYPE, Histogram_KEY, ARGTYPE> makeCollector(SAMReadGroupRecord rg) {
+            return makeSampleCollector(rg);
+        }
+
+        @Override
+        protected PerUnitMetricCollector<METRIC_TYPE, Histogram_KEY, ARGTYPE> makeUnknownCollector() {
+            return makeChildCollector(UNKNOWN, null, null);
+        }
+    }
+
+    //Discriminates between records based on library name, and calls acceptRecord on the appropriate PerUnitMetricCollectors
+    private class LibraryDistributor extends Distributor {
+        public LibraryDistributor(final List<SAMReadGroupRecord> rgRecs) {
+            super(rgRecs);
+        }
+
+        @Override
+        protected String getKey(SAMReadGroupRecord rg) {
+            return rg.getLibrary();
+        }
+
+        @Override
+        protected PerUnitMetricCollector<METRIC_TYPE, Histogram_KEY, ARGTYPE> makeCollector(SAMReadGroupRecord rg) {
+            return makeLibraryCollector(rg);
+        }
+
+        @Override
+        protected PerUnitMetricCollector<METRIC_TYPE, Histogram_KEY, ARGTYPE> makeUnknownCollector() {
+            return makeChildCollector(UNKNOWN, UNKNOWN, null);
+        }
+    }
+
+    //Discriminates between records based on read group name, and calls acceptRecord on the appropriate PerUnitMetricCollectors
+    private class ReadGroupCollector extends Distributor {
+        public ReadGroupCollector(final List<SAMReadGroupRecord> rgRecs) {
+            super(rgRecs);
+        }
+
+        @Override
+        protected String getKey(SAMReadGroupRecord rg) {
+            return rg.getPlatformUnit();
+        }
+
+        @Override
+        protected PerUnitMetricCollector<METRIC_TYPE, Histogram_KEY, ARGTYPE> makeCollector(SAMReadGroupRecord rg) {
+            return makeReadGroupCollector(rg);
+        }
+
+        @Override
+        protected PerUnitMetricCollector<METRIC_TYPE, Histogram_KEY, ARGTYPE> makeUnknownCollector() {
+            return makeChildCollector(UNKNOWN, UNKNOWN, UNKNOWN);
+        }
+    }
+
+    /**
+     * Use an init method so that overloaded methods in subclasses can pass use parameters that are initialized in their constructor
+     * @param accumulationLevels PerUnitMetricCollectors will only be created for the levels identified by accumulationLevels
+     * @param samRgRecords PerUnitMetricCollectors will be created for each of the different samples, libraries, and
+     *                     readGroups found in the records depending on the accumulationLevels provided
+     */
+    protected void setup(final Set<MetricAccumulationLevel> accumulationLevels, final List<SAMReadGroupRecord> samRgRecords) {
+        outputOrderedDistributors = new ArrayList<Distributor>(4);
+        if(accumulationLevels.contains(MetricAccumulationLevel.ALL_READS)) {
+            outputOrderedDistributors.add(new AllReadsDistributor(samRgRecords));
+        }
+        if (accumulationLevels.contains(MetricAccumulationLevel.SAMPLE)) {
+            outputOrderedDistributors.add(new SampleDistributor(samRgRecords));
+        }
+
+        if(accumulationLevels.contains(MetricAccumulationLevel.LIBRARY)) {
+            outputOrderedDistributors.add(new LibraryDistributor(samRgRecords));
+        }
+
+        if(accumulationLevels.contains(MetricAccumulationLevel.READ_GROUP)) {
+            outputOrderedDistributors.add(new ReadGroupCollector(samRgRecords));
+        }
+    }
+
+    /**
+     * Construct a argument of ARGTYPE using the given SAMRecord and ReferenceSequence then pass
+     * this value to all collectors that should include this record
+     */
+    public void acceptRecord(final SAMRecord record, final ReferenceSequence refSeq) {
+        final ARGTYPE arg = makeArg(record, refSeq);
+
+        for(final Distributor collector : outputOrderedDistributors) {
+            collector.acceptRecord(arg, record.getReadGroup());
+        }
+    }
+
+    /**
+     * Call finish on all PerUnitMetricCollectors
+     */
+    public void finish() {
+        for(final Distributor collector : outputOrderedDistributors) {
+            collector.finish();
+        }
+    }
+
+    /** Get the PerUnitMetricCollector that collects reads for all levels */
+    public PerUnitMetricCollector<METRIC_TYPE, Histogram_KEY, ARGTYPE> getAllReadsCollector() {
+        return allReadCollector;
+    }
+
+    /** Add all metrics to the given file in the following MetricAccumulationLevel order
+     *  ALL_READS, SAMPLE, LIBRARY, READ_GROUP.
+     */
+    public void addAllLevelsToFile(final MetricsFile<METRIC_TYPE, Histogram_KEY> file) {
+        for(final Distributor collector : outputOrderedDistributors) {
+            collector.addToFile(file);
+        }
+    }
+}
diff --git a/src/java/picard/metrics/MultilevelMetrics.java b/src/java/picard/metrics/MultilevelMetrics.java
new file mode 100644
index 0000000..d845a63
--- /dev/null
+++ b/src/java/picard/metrics/MultilevelMetrics.java
@@ -0,0 +1,18 @@
+package picard.metrics;
+
+
+import htsjdk.samtools.metrics.MetricBase;
+
+public class MultilevelMetrics extends MetricBase {
+     /** The sample to which these metrics apply.  If null, it means they apply
+     * to all reads in the file. */
+    public String SAMPLE;
+
+    /** The library to which these metrics apply.  If null, it means that the
+     * metrics were accumulated at the sample level. */
+    public String LIBRARY = null;
+
+    /** The read group to which these metrics apply.  If null, it means that
+     * the metrics were accumulated at the library or sample level.*/
+    public String READ_GROUP = null;
+}
diff --git a/src/java/picard/metrics/PerUnitMetricCollector.java b/src/java/picard/metrics/PerUnitMetricCollector.java
new file mode 100644
index 0000000..846f920
--- /dev/null
+++ b/src/java/picard/metrics/PerUnitMetricCollector.java
@@ -0,0 +1,61 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2012 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.metrics;
+
+import htsjdk.samtools.metrics.MetricBase;
+import htsjdk.samtools.metrics.MetricsFile;
+
+/**
+ *  PerRecordCollector - An interface for classes that collect data in order to generate one or more metrics.
+ *      This process usually occurs in the following fashion:
+ *      1. Loop through a data set (usually all records in a BAM file) and call collector.acceptRecord( data ),
+ *         data in this step is usually added to metrics/Histogram objects
+ *      2. Call collector.finish() - perform any final calculations necessary after ALL records have been accepted
+ *      3. addMetricsToFile is then used to add any metric(s) or Histogram(s) to the given file
+ *
+ *      BEAN    - The Metric type we are generating
+ *      HKEY    - The Key used in any Histograms, use a Wildcard(?) type if there are no Histograms
+ *      ARGTYPE - Collectors are often used in groups of accumulation levels, in order to avoid recalculating
+ *                any information needed by multiple collectors we allow different types of arguments that
+ *                extend DefaultPerRecordCollectorArgs to accommodate any computed values
+ */
+public interface PerUnitMetricCollector<BEAN extends MetricBase, HKEY extends Comparable, ARGTYPE> {
+    /**
+     * Add a SAMRecord (with ReferenceSequence and Read Group info) to the metric(s) being calculated)
+     * @param args Contains SAMRecord, SAMReadGroupRecord, ReferenceSequence of current record and any previously
+     *             computed values that might be needed for this class
+     */
+    public void acceptRecord(final ARGTYPE args);
+
+    /** When all records have been collected, compute any final values needed to finish constructing metrics/Histogram */
+    public void finish();
+
+    /**
+     * Any metrics collected will be added to the metric file provided.
+     * @param file MetricsFile to which all metrics created by this collector should be added
+     */
+    public void addMetricsToFile(final MetricsFile<BEAN, HKEY> file);
+}
+
diff --git a/src/java/picard/metrics/SAMRecordAndReference.java b/src/java/picard/metrics/SAMRecordAndReference.java
new file mode 100644
index 0000000..6c7a498
--- /dev/null
+++ b/src/java/picard/metrics/SAMRecordAndReference.java
@@ -0,0 +1,22 @@
+package picard.metrics;
+
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.reference.ReferenceSequence;
+
+public class SAMRecordAndReference {
+    private final SAMRecord samRec;
+    private final ReferenceSequence refSeq;
+
+    public SAMRecordAndReference(final SAMRecord samRec, final ReferenceSequence refSeq) {
+        this.samRec = samRec;
+        this.refSeq = refSeq;
+    }
+
+    public SAMRecord getSamRecord() {
+        return samRec;
+    }
+
+    public ReferenceSequence getReferenceSequence() {
+        return refSeq;
+    }
+}
diff --git a/src/java/picard/metrics/SAMRecordAndReferenceMultiLevelCollector.java b/src/java/picard/metrics/SAMRecordAndReferenceMultiLevelCollector.java
new file mode 100644
index 0000000..7feadc4
--- /dev/null
+++ b/src/java/picard/metrics/SAMRecordAndReferenceMultiLevelCollector.java
@@ -0,0 +1,15 @@
+package picard.metrics;
+
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.metrics.MetricBase;
+import htsjdk.samtools.reference.ReferenceSequence;
+
+public abstract class SAMRecordAndReferenceMultiLevelCollector<BEAN extends MetricBase, HKEY extends Comparable> extends MultiLevelCollector<BEAN, HKEY, SAMRecordAndReference> {
+
+        @Override
+        protected SAMRecordAndReference makeArg(SAMRecord samRec, final ReferenceSequence refSeq) {
+            return new SAMRecordAndReference(samRec, refSeq);
+        }
+}
+
+
diff --git a/src/java/picard/metrics/SAMRecordMultiLevelCollector.java b/src/java/picard/metrics/SAMRecordMultiLevelCollector.java
new file mode 100644
index 0000000..14c9968
--- /dev/null
+++ b/src/java/picard/metrics/SAMRecordMultiLevelCollector.java
@@ -0,0 +1,14 @@
+package picard.metrics;
+
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.metrics.MetricBase;
+import htsjdk.samtools.reference.ReferenceSequence;
+
+/** Defines a MultilevelPerRecordCollector using the argument type of SAMRecord so that this doesn't have to be redefined for each subclass of MultilevelPerRecordCollector */
+public abstract class SAMRecordMultiLevelCollector<BEAN extends MetricBase, HKEY extends Comparable> extends MultiLevelCollector<BEAN, HKEY, SAMRecord> {
+
+    @Override
+    protected SAMRecord makeArg(SAMRecord samRec, final ReferenceSequence refSeq) {
+        return samRec;
+    }
+}
diff --git a/src/java/picard/pedigree/PedFile.java b/src/java/picard/pedigree/PedFile.java
new file mode 100644
index 0000000..fae0464
--- /dev/null
+++ b/src/java/picard/pedigree/PedFile.java
@@ -0,0 +1,171 @@
+package picard.pedigree;
+
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.RuntimeIOException;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.IOException;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.TreeMap;
+import java.util.regex.Pattern;
+
+/**
+ * Represents a .ped file of family information as documented here:
+ *    http://pngu.mgh.harvard.edu/~purcell/plink/data.shtml
+ *
+ * Stores the information in memory as a map of individualId -> Pedigree information for that individual
+ */
+public class PedFile extends TreeMap<String, PedFile.PedTrio> {
+    private static final Log log = Log.getInstance(PedFile.class);
+    static final Pattern WHITESPACE = Pattern.compile("\\s+");
+    static final Pattern TAB = Pattern.compile("\\t");
+    private final Pattern delimiterPattern;
+    private final String delimiterString; // A textual representation of the delimiter, for output purposes
+
+    // These two are really for PedTrio, but they can't be static in there and need to be accessed outside of PedFile
+    public static final Number NO_PHENO = new Integer(-9);
+    public static final Sex UNKNOWN_SEX = Sex.Unknown;
+
+    public PedFile(final boolean isTabMode) {
+        delimiterPattern = isTabMode ? TAB : WHITESPACE;
+        delimiterString = isTabMode ? "tabs" : "whitespace";
+    }
+
+    /** Adds a trio to the PedFile keyed by the individual id. */
+    public void add(final PedTrio trio) {
+        put(trio.getIndividualId(), trio);
+    }
+
+    /**
+     * Writes a set of pedigrees out to disk.
+     */
+    public void write(final File file) {
+        IOUtil.assertFileIsWritable(file);
+        final BufferedWriter out = IOUtil.openFileForBufferedWriting(file);
+
+        try {
+            for (final PedTrio trio : values()) {
+                out.write(trio.getFamilyId());
+                out.write("\t");
+                out.write(trio.getIndividualId());
+                out.write("\t");
+                out.write(trio.getPaternalId());
+                out.write("\t");
+                out.write(trio.getMaternalId());
+                out.write("\t");
+                out.write(String.valueOf(trio.getSex().toCode()));
+                out.write("\t");
+                out.write(trio.getPhenotype().toString());
+                out.newLine();
+            }
+
+            out.close();
+        }
+        catch (final IOException ioe) {
+            throw new RuntimeIOException("IOException while writing to file " + file.getAbsolutePath(), ioe);
+        }
+    }
+
+    /**
+     * Attempts to read a pedigree file into memory.
+     */
+    public static PedFile fromFile(final File file, final boolean isTabMode) {
+        final PedFile pedFile = new PedFile(isTabMode);
+
+        IOUtil.assertFileIsReadable(file);
+        for (final String line : IOUtil.readLines(file)) {
+            final String[] fields = pedFile.delimiterPattern.split(line);
+            if (fields.length != 6) {
+                log.error("Ped file line contained invalid number of fields, skipping: " + line);
+                continue;
+            }
+
+            final PedTrio trio = pedFile.new PedTrio(fields[0],
+                    fields[1],
+                    fields[2],
+                    fields[3],
+                    Sex.fromCode(Integer.parseInt(fields[4])),
+                    fields[5].contains(".") ? Double.parseDouble(fields[5]) : Integer.parseInt(fields[5])
+            );
+            pedFile.add(trio);
+        }
+
+        return pedFile;
+    }
+
+    /**
+     * Scans through the pedigrees and removes all entries that do not have both paternal and maternal ids set.
+     */
+    public PedFile removeIncompleteTrios() {
+        final Iterator<Map.Entry<String,PedTrio>> iterator = entrySet().iterator();
+
+        while (iterator.hasNext()) {
+            if (!iterator.next().getValue().hasBothParents()) iterator.remove();
+        }
+
+        return this;
+    }
+
+    public class PedTrio {
+        private final String familyId;
+        private final String individualId;
+        private final String paternalId;
+        private final String maternalId;
+        private final Sex sex;
+        private final Number phenotype;
+
+        /** Constructs a TRIO that cannot be modified after the fact. */
+        public PedTrio(final String familyId, final String individualId, final String paternalId, final String maternalId, final Sex sex, final Number phenotype) {
+            if (delimiterPattern.split(familyId).length != 1)     throw new IllegalArgumentException("FamilyID     cannot contain " + delimiterString + ": [" + familyId     + "]");
+            if (delimiterPattern.split(individualId).length != 1) throw new IllegalArgumentException("IndividualID cannot contain " + delimiterString + ": [" + individualId + "]");
+            if (delimiterPattern.split(paternalId).length != 1)   throw new IllegalArgumentException("PaternalID   cannot contain " + delimiterString + ": [" + paternalId   + "]");
+            if (delimiterPattern.split(maternalId).length != 1)   throw new IllegalArgumentException("MaternalID   cannot contain " + delimiterString + ": [" + maternalId   + "]");
+
+            this.familyId = familyId;
+            this.individualId = individualId;
+            this.paternalId = paternalId;
+            this.maternalId = maternalId;
+            this.sex = sex;
+            this.phenotype = phenotype;
+        }
+
+        /** True if this record has paternal and maternal ids, otherwise false. */
+        public boolean hasBothParents() {
+            return this.paternalId != null && this.maternalId != null;
+        }
+
+        public String getFamilyId() { return familyId; }
+        public String getIndividualId() { return individualId; }
+        public String getPaternalId() { return paternalId; }
+        public String getMaternalId() { return maternalId; }
+        public Sex getSex() { return sex; }
+        public Number getPhenotype() { return phenotype; }
+    }
+
+    /** Function that accepts a map from sample-name to its sex and creates a PEDFile
+     * documenting the sexes. Note that the parents are created as UNKNOWNS in this implementation
+     * as the purpose is only to create a PED file for the sex of the samples, not the whole pedigree
+     * @param sampleSexes a map from sample-name to its sex
+     * @return a PedFile object that contains data.
+     */
+    static public PedFile fromSexMap(final Map<String, Sex> sampleSexes) {
+
+        final PedFile pedfile = new PedFile(true);
+        int parentCounter = 1;
+        for (final Map.Entry<String, Sex> sampleSex : sampleSexes.entrySet()) {
+            final PedFile.PedTrio ped = pedfile.new PedTrio(
+                    sampleSex.getKey(), sampleSex.getKey(),
+                    "UNKNOWN" + (parentCounter),
+                    "UNKNOWN" + (parentCounter + 1),
+                    sampleSex.getValue(), PedFile.NO_PHENO);
+            parentCounter += 2;
+
+            pedfile.add(ped);
+        }
+
+        return pedfile;
+    }
+}
diff --git a/src/java/picard/pedigree/Sex.java b/src/java/picard/pedigree/Sex.java
new file mode 100644
index 0000000..041717f
--- /dev/null
+++ b/src/java/picard/pedigree/Sex.java
@@ -0,0 +1,26 @@
+package picard.pedigree;
+
+/**
+ * Represents the sex of an individual.
+ */
+public enum Sex {
+    Male(1), Female(2), Unknown(-9);
+
+    /** The integer code used when reading/writing ped files. */
+    private final int code;
+
+    /** Private constructor that takes the pedigree code for sex. */
+    private Sex(final int code) {
+        this.code = code;
+    }
+
+    /** Returns the code used to encode this sex in a ped/fam file. */
+    public int toCode() { return this.code;}
+
+    /** Decodes the Sex from a numeric code. Note that any value other than 1 or 2 will return Unknown. */
+    public static Sex fromCode(final int code) {
+        if (code == Male.code) return Male;
+        else if (code == Female.code) return Female;
+        else return Unknown;
+    }
+}
diff --git a/src/java/picard/reference/ExtractSequences.java b/src/java/picard/reference/ExtractSequences.java
new file mode 100644
index 0000000..2270b6c
--- /dev/null
+++ b/src/java/picard/reference/ExtractSequences.java
@@ -0,0 +1,116 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2010 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.reference;
+
+import htsjdk.samtools.reference.ReferenceSequence;
+import htsjdk.samtools.reference.ReferenceSequenceFile;
+import htsjdk.samtools.reference.ReferenceSequenceFileFactory;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Interval;
+import htsjdk.samtools.util.IntervalList;
+import htsjdk.samtools.util.SequenceUtil;
+import picard.PicardException;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.programgroups.Fasta;
+import picard.cmdline.StandardOptionDefinitions;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.IOException;
+
+/**
+ * Simple command line program that allows sub-sequences represented by an interval
+ * list to be extracted from a reference sequence file.
+ *
+ * @author Tim Fennell
+ */
+ at CommandLineProgramProperties(
+        usage = "Extracts one or more intervals described in an interval_list file " +
+                "from a given reference sequence and writes them out in FASTA format. Requires a fasta index " +
+                "file to be present.",
+        usageShort = "Extracts intervals from a reference sequence, writing them to a FASTA file",
+        programGroup = Fasta.class
+)
+public class ExtractSequences extends CommandLineProgram {
+
+    @Option(doc="Interval list describing intervals to be extracted from the reference sequence.")
+    public File INTERVAL_LIST;
+
+    @Option(shortName= StandardOptionDefinitions.REFERENCE_SHORT_NAME, doc="Reference sequence file.")
+    public File REFERENCE_SEQUENCE;
+
+    @Option(shortName=StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc="Output fasta file.")
+    public File OUTPUT;
+
+    @Option(doc="Maximum line length for sequence data.")
+    public int LINE_LENGTH = 80;
+
+    public static void main(final String[] args) {
+        new ExtractSequences().instanceMainWithExit(args);
+    }
+
+    @Override
+    protected int doWork() {
+        IOUtil.assertFileIsReadable(INTERVAL_LIST);
+        IOUtil.assertFileIsReadable(REFERENCE_SEQUENCE);
+        IOUtil.assertFileIsWritable(OUTPUT);
+
+        final IntervalList intervals = IntervalList.fromFile(INTERVAL_LIST);
+        final ReferenceSequenceFile ref = ReferenceSequenceFileFactory.getReferenceSequenceFile(REFERENCE_SEQUENCE);
+        SequenceUtil.assertSequenceDictionariesEqual(intervals.getHeader().getSequenceDictionary(), ref.getSequenceDictionary());
+
+        final BufferedWriter out = IOUtil.openFileForBufferedWriting(OUTPUT);
+
+        for (final Interval interval : intervals) {
+            final ReferenceSequence seq = ref.getSubsequenceAt(interval.getSequence(), interval.getStart(), interval.getEnd());
+            final byte[] bases = seq.getBases();
+            if (interval.isNegativeStrand()) SequenceUtil.reverseComplement(bases);
+
+            try {
+                out.write(">");
+                out.write(interval.getName());
+                out.write("\n");
+
+                for (int i=0; i<bases.length; ++i) {
+                    if (i > 0 && i % LINE_LENGTH == 0) out.write("\n");
+                    out.write(bases[i]);
+                }
+
+                out.write("\n");
+            }
+            catch (IOException ioe) {
+                throw new PicardException("Error writing to file " + OUTPUT.getAbsolutePath(), ioe);
+
+            }
+        }
+
+        CloserUtil.close(out);
+
+        return 0;
+    }
+}
diff --git a/src/java/picard/reference/NormalizeFasta.java b/src/java/picard/reference/NormalizeFasta.java
new file mode 100644
index 0000000..4f798fb
--- /dev/null
+++ b/src/java/picard/reference/NormalizeFasta.java
@@ -0,0 +1,97 @@
+package picard.reference;
+
+import htsjdk.samtools.reference.ReferenceSequence;
+import htsjdk.samtools.reference.ReferenceSequenceFile;
+import htsjdk.samtools.reference.ReferenceSequenceFileFactory;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.RuntimeIOException;
+import picard.PicardException;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.programgroups.Fasta;
+import picard.cmdline.StandardOptionDefinitions;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.IOException;
+
+/**
+ * Little program to "normalize" a fasta file to ensure that all line of sequence are the
+ * same length, and are a reasonable length!
+ */
+ at CommandLineProgramProperties(
+        usage = "Takes any file that conforms to the fasta format and " +
+                "normalizes it so that all lines of sequence except the last line per named sequence " +
+                "are of the same length.",
+        usageShort = "Normalizes lines of sequence in a fasta file to be of the same length",
+        programGroup = Fasta.class
+)
+public class NormalizeFasta extends CommandLineProgram {
+
+    @Option(shortName= StandardOptionDefinitions.INPUT_SHORT_NAME, doc="The input fasta file to normalize.")
+    public File INPUT;
+
+    @Option(shortName= StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc="The output fasta file to write.")
+    public File OUTPUT;
+
+    @Option(doc="The line length to be used for the output fasta file.")
+    public int LINE_LENGTH=100;
+
+    @Option(doc="Truncate sequence names at first whitespace.")
+    public boolean TRUNCATE_SEQUENCE_NAMES_AT_WHITESPACE=false;
+
+    private final Log log = Log.getInstance(NormalizeFasta.class);
+
+    public static void main(final String[] args) {
+        new NormalizeFasta().instanceMainWithExit(args);
+    }
+
+    @Override
+    protected int doWork() {
+        IOUtil.assertFileIsReadable(INPUT);
+        IOUtil.assertFileIsWritable(OUTPUT);
+
+        if (INPUT.getAbsoluteFile().equals(OUTPUT.getAbsoluteFile())) {
+            throw new IllegalArgumentException("Input and output cannot be the same file.");
+        }
+
+        final ReferenceSequenceFile ref = ReferenceSequenceFileFactory.getReferenceSequenceFile(INPUT, TRUNCATE_SEQUENCE_NAMES_AT_WHITESPACE);
+        final BufferedWriter out = IOUtil.openFileForBufferedWriting(OUTPUT);
+
+        ReferenceSequence seq = null;
+        while ((seq = ref.nextSequence()) != null) {
+            final String name  = seq.getName();
+            final byte[] bases = seq.getBases();
+
+            try {
+                out.write(">");
+                out.write(name);
+                out.newLine();
+
+                if (bases.length == 0) {
+                    log.warn("Sequence " + name + " contains 0 bases.");
+                }
+                else {
+                    for (int i=0; i<bases.length; ++i) {
+                        if (i > 0 && i % LINE_LENGTH == 0) out.write("\n");
+                        out.write(bases[i]);
+                    }
+
+                    out.write("\n");
+                }
+            }
+            catch (IOException ioe) {
+                throw new PicardException("Error writing to file " + OUTPUT.getAbsolutePath(), ioe);
+
+            }
+        }
+        try {
+            out.close();
+        } catch (IOException e) {
+            throw new RuntimeIOException(e);
+        }
+        return 0;
+    }
+}
diff --git a/src/java/picard/sam/AbstractAlignmentMerger.java b/src/java/picard/sam/AbstractAlignmentMerger.java
new file mode 100644
index 0000000..26614b8
--- /dev/null
+++ b/src/java/picard/sam/AbstractAlignmentMerger.java
@@ -0,0 +1,756 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.sam;
+
+import htsjdk.samtools.BAMRecordCodec;
+import htsjdk.samtools.Cigar;
+import htsjdk.samtools.CigarElement;
+import htsjdk.samtools.CigarOperator;
+import htsjdk.samtools.ReservedTagConstants;
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMFileHeader.SortOrder;
+import htsjdk.samtools.SAMFileWriter;
+import htsjdk.samtools.SAMFileWriterFactory;
+import htsjdk.samtools.SAMProgramRecord;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SAMRecordCoordinateComparator;
+import htsjdk.samtools.SAMRecordQueryNameComparator;
+import htsjdk.samtools.SAMRecordUtil;
+import htsjdk.samtools.SAMSequenceDictionary;
+import htsjdk.samtools.SAMSequenceRecord;
+import htsjdk.samtools.SAMTag;
+import htsjdk.samtools.SAMUtils;
+import htsjdk.samtools.SamPairUtil;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.filter.FilteringIterator;
+import htsjdk.samtools.filter.SamRecordFilter;
+import htsjdk.samtools.reference.ReferenceSequenceFileWalker;
+import htsjdk.samtools.util.CigarUtil;
+import htsjdk.samtools.util.CloseableIterator;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.ProgressLogger;
+import htsjdk.samtools.util.SequenceUtil;
+import htsjdk.samtools.util.SortingCollection;
+import picard.PicardException;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Abstract class that coordinates the general task of taking in a set of alignment information,
+ * possibly in SAM format, possibly in other formats, and merging that with the set of all reads
+ * for which alignment was attempted, stored in an unmapped SAM file.
+ * <p/>
+ * The order of processing is as follows:
+ * <p/>
+ * 1.  Get records from the unmapped bam and the alignment data
+ * 2.  Merge the alignment information and public tags ONLY from the aligned SAMRecords
+ * 3.  Do additional modifications -- handle clipping, trimming, etc.
+ * 4.  Fix up mate information on paired reads
+ * 5.  Do a final calculation of the NM and UQ tags.
+ * 6.  Write the records to the output file.
+ * <p/>
+ * Concrete subclasses which extend AbstractAlignmentMerger should implement getQueryNameSortedAlignedRecords.
+ * If these records are not in queryname order, mergeAlignment will throw an IllegalStateException.
+ * <p/>
+ * Subclasses may optionally implement ignoreAlignment(), which can be used to skip over certain alignments.
+ *
+ * @author ktibbett at broadinstitute.org
+ */
+public abstract class AbstractAlignmentMerger {
+
+    public static final int MAX_RECORDS_IN_RAM = 500000;
+
+    private static final char[] RESERVED_ATTRIBUTE_STARTS = {'X', 'Y', 'Z'};
+
+    private final Log log = Log.getInstance(AbstractAlignmentMerger.class);
+    private final ProgressLogger progress = new ProgressLogger(this.log, 1000000, "Merged", "records");
+
+    private final File unmappedBamFile;
+    private final File targetBamFile;
+    private final SAMSequenceDictionary sequenceDictionary;
+    private ReferenceSequenceFileWalker refSeq = null;
+    private final boolean clipAdapters;
+    private final boolean bisulfiteSequence;
+    private SAMProgramRecord programRecord;
+    private final boolean alignedReadsOnly;
+    private final SAMFileHeader header;
+    private final List<String> attributesToRetain = new ArrayList<String>();
+    private final List<String> attributesToRemove = new ArrayList<String>();
+    protected final File referenceFasta;
+    private final Integer read1BasesTrimmed;
+    private final Integer read2BasesTrimmed;
+    private final List<SamPairUtil.PairOrientation> expectedOrientations;
+    private final SortOrder sortOrder;
+    private MultiHitAlignedReadIterator alignedIterator = null;
+    private boolean clipOverlappingReads = true;
+    private int maxRecordsInRam = MAX_RECORDS_IN_RAM;
+    private final PrimaryAlignmentSelectionStrategy primaryAlignmentSelectionStrategy;
+    private boolean keepAlignerProperPairFlags = false;
+    private boolean addMateCigar = false;
+
+    private final SamRecordFilter alignmentFilter = new SamRecordFilter() {
+        public boolean filterOut(final SAMRecord record) {
+            return ignoreAlignment(record);
+        }
+
+        public boolean filterOut(final SAMRecord first, final SAMRecord second) {
+            throw new UnsupportedOperationException("Paired SamRecordFilter not implemented!");
+        }
+    };
+    private boolean includeSecondaryAlignments = true;
+
+    /** Class that allows a Sorting Collection and a SAMFileWriter to be treated identically. */
+    private static class Sink {
+        private final SAMFileWriter writer;
+        private final SortingCollection<SAMRecord> sorter;
+
+        /** Constructs a sink that outputs to a SAMFileWriter. */
+        public Sink(final SAMFileWriter writer) {
+            this.writer = writer;
+            this.sorter = null;
+        }
+
+        /** Constructs a sink that outputs to a Sorting Collection. */
+        public Sink(final SortingCollection<SAMRecord> sorter) {
+            this.writer = null;
+            this.sorter = sorter;
+        }
+
+        /** Adds a record to the sink. */
+        void add(final SAMRecord rec) {
+            if (writer != null) writer.addAlignment(rec);
+            if (sorter != null) sorter.add(rec);
+        }
+
+        /** Closes the underlying resource. */
+        void close() {
+            if (this.writer != null) this.writer.close();
+            if (this.sorter != null) this.sorter.doneAdding();
+        }
+    }
+
+
+    protected abstract CloseableIterator<SAMRecord> getQuerynameSortedAlignedRecords();
+
+    protected boolean ignoreAlignment(final SAMRecord sam) { return false; } // default implementation
+
+    /**
+     * Constructor
+     *
+     * @param unmappedBamFile                   The BAM file that was used as the input to the aligner, which will
+     *                                          include info on all the reads that did not map.  Required.
+     * @param targetBamFile                     The file to which to write the merged SAM records. Required.
+     * @param referenceFasta                    The reference sequence for the map files. Required.
+     * @param clipAdapters                      Whether adapters marked in unmapped BAM file should be marked as
+     *                                          soft clipped in the merged bam. Required.
+     * @param bisulfiteSequence                 Whether the reads are bisulfite sequence (used when calculating the
+     *                                          NM and UQ tags). Required.
+     * @param alignedReadsOnly                  Whether to output only those reads that have alignment data
+     * @param programRecord                     Program record for target file SAMRecords created.
+     * @param attributesToRetain                private attributes from the alignment record that should be
+     *                                          included when merging.  This overrides the exclusion of
+     *                                          attributes whose tags start with the reserved characters
+     *                                          of X, Y, and Z
+     * @param attributesToRemove                attributes from the alignment record that should be
+     *                                          removed when merging.  This overrides attributesToRetain if they share
+     *                                          common tags.
+     * @param read1BasesTrimmed                 The number of bases trimmed from start of read 1 prior to alignment.  Optional.
+     * @param read2BasesTrimmed                 The number of bases trimmed from start of read 2 prior to alignment.  Optional.
+     * @param expectedOrientations              A List of SamPairUtil.PairOrientations that are expected for
+     *                                          aligned pairs.  Used to determine the properPair flag.
+     * @param sortOrder                         The order in which the merged records should be output.  If null,
+     *                                          output will be coordinate-sorted
+     * @param primaryAlignmentSelectionStrategy What to do when there are multiple primary alignments, or multiple
+     *                                          alignments but none primary, for a read or read pair.
+     * @param addMateCigar                      True if we are to add or maintain the mate CIGAR (MC) tag, false if we are to remove or not include.
+     */
+    public AbstractAlignmentMerger(final File unmappedBamFile, final File targetBamFile,
+                                   final File referenceFasta, final boolean clipAdapters,
+                                   final boolean bisulfiteSequence, final boolean alignedReadsOnly,
+                                   final SAMProgramRecord programRecord, final List<String> attributesToRetain,
+                                   final List<String> attributesToRemove,
+                                   final Integer read1BasesTrimmed, final Integer read2BasesTrimmed,
+                                   final List<SamPairUtil.PairOrientation> expectedOrientations,
+                                   final SAMFileHeader.SortOrder sortOrder,
+                                   final PrimaryAlignmentSelectionStrategy primaryAlignmentSelectionStrategy,
+                                   final boolean addMateCigar) {
+        IOUtil.assertFileIsReadable(unmappedBamFile);
+        IOUtil.assertFileIsWritable(targetBamFile);
+        IOUtil.assertFileIsReadable(referenceFasta);
+
+        this.unmappedBamFile = unmappedBamFile;
+        this.targetBamFile = targetBamFile;
+        this.referenceFasta = referenceFasta;
+
+        this.refSeq = new ReferenceSequenceFileWalker(referenceFasta);
+        this.sequenceDictionary = refSeq.getSequenceDictionary();
+        if (this.sequenceDictionary == null) {
+            throw new PicardException("No sequence dictionary found for " + referenceFasta.getAbsolutePath() +
+                    ".  Use CreateSequenceDictionary.jar to create a sequence dictionary.");
+        }
+
+        this.clipAdapters = clipAdapters;
+        this.bisulfiteSequence = bisulfiteSequence;
+        this.alignedReadsOnly = alignedReadsOnly;
+
+        this.header = new SAMFileHeader();
+        this.sortOrder = sortOrder != null ? sortOrder : SortOrder.coordinate;
+        header.setSortOrder(SortOrder.coordinate);
+        if (programRecord != null) {
+            setProgramRecord(programRecord);
+        }
+        header.setSequenceDictionary(this.sequenceDictionary);
+        if (attributesToRetain != null) {
+            this.attributesToRetain.addAll(attributesToRetain);
+        }
+        if (attributesToRemove != null) {
+            this.attributesToRemove.addAll(attributesToRemove);
+            // attributesToRemove overrides attributesToRetain
+            if (!this.attributesToRetain.isEmpty()) {
+                for (String attribute : this.attributesToRemove) {
+                    if (this.attributesToRetain.contains(attribute)) {
+                        log.info("Overriding retaining the " + attribute + " tag since remove overrides retain.");
+                        this.attributesToRetain.remove(attribute);
+                    }
+                }
+            }
+        }
+        this.read1BasesTrimmed = read1BasesTrimmed;
+        this.read2BasesTrimmed = read2BasesTrimmed;
+        this.expectedOrientations = expectedOrientations;
+
+        this.primaryAlignmentSelectionStrategy = primaryAlignmentSelectionStrategy;
+
+        this.addMateCigar = addMateCigar;
+    }
+
+    /** Allows the caller to override the maximum records in RAM. */
+    public void setMaxRecordsInRam(final int maxRecordsInRam) {
+        this.maxRecordsInRam = maxRecordsInRam;
+    }
+
+    /**
+     * Do this unconditionally, not just for aligned records, for two reasons:
+     * - An unaligned read has been processed by the aligner, so it is more truthful.
+     * - When chaining additional PG records, having all the records in the output file refer to the same PG
+     * record means that only one chain will need to be created, rather than a chain for the mapped reads
+     * and a separate chain for the unmapped reads.
+     */
+    private void maybeSetPgTag(final SAMRecord rec) {
+        if (this.programRecord != null) {
+            rec.setAttribute(ReservedTagConstants.PROGRAM_GROUP_ID, this.programRecord.getProgramGroupId());
+        }
+    }
+
+    /**
+     * /**
+     * Merges the alignment data with the non-aligned records from the source BAM file.
+     */
+    public void mergeAlignment(final File referenceFasta) {
+        // Open the file of unmapped records and write the read groups to the the header for the merged file
+        final SamReader unmappedSam = SamReaderFactory.makeDefault().referenceSequence(referenceFasta).open(this.unmappedBamFile);
+
+        final CloseableIterator<SAMRecord> unmappedIterator = unmappedSam.iterator();
+        this.header.setReadGroups(unmappedSam.getFileHeader().getReadGroups());
+
+        int aligned = 0;
+        int unmapped = 0;
+
+        // Get the aligned records and set up the first one
+        alignedIterator = new MultiHitAlignedReadIterator(new FilteringIterator(getQuerynameSortedAlignedRecords(), alignmentFilter), primaryAlignmentSelectionStrategy);
+        HitsForInsert nextAligned = nextAligned();
+
+        // Check that the program record we are going to insert is not already used in the unmapped SAM
+        // Must come after calling getQuerynameSortedAlignedRecords() in case opening the aligned records
+        // sets the program group
+        if (getProgramRecord() != null) {
+            for (final SAMProgramRecord pg : unmappedSam.getFileHeader().getProgramRecords()) {
+                if (pg.getId().equals(getProgramRecord().getId())) {
+                    throw new PicardException("Program Record ID already in use in unmapped BAM file.");
+                }
+            }
+        }
+
+        // If the output requested is coordinate order then run everything through a sorting collection
+        // in order to have access to the records in coordinate order prior to outputting them. Otherwise
+        // write directly to the output BAM file in queryname order.
+        final Sink sink;
+        if (this.sortOrder == SortOrder.coordinate) {
+            final SortingCollection<SAMRecord> sorted1 = SortingCollection.newInstance(
+                    SAMRecord.class, new BAMRecordCodec(header), new SAMRecordCoordinateComparator(),
+                    MAX_RECORDS_IN_RAM);
+            sink = new Sink(sorted1);
+        }
+        else { // catches queryname and unsorted
+            final SAMFileHeader header = this.header.clone();
+            header.setSortOrder(this.sortOrder);
+            final SAMFileWriter writer = new SAMFileWriterFactory().makeSAMOrBAMWriter(header, true, this.targetBamFile);
+            writer.setProgressLogger(new ProgressLogger(log, (int) 1e7, "Wrote", "records to output in queryname order"));
+            sink = new Sink(writer);
+        }
+
+        while (unmappedIterator.hasNext()) {
+            // Load next unaligned read or read pair.
+            final SAMRecord rec = unmappedIterator.next();
+
+            rec.setHeader(this.header);
+            maybeSetPgTag(rec);
+
+            final SAMRecord secondOfPair;
+            if (rec.getReadPairedFlag()) {
+                secondOfPair = unmappedIterator.next();
+                secondOfPair.setHeader(this.header);
+                maybeSetPgTag(secondOfPair);
+
+                // Validate that paired reads arrive as first of pair followed by second of pair
+                if (!rec.getReadName().equals(secondOfPair.getReadName()))
+                    throw new PicardException("Second read from pair not found in unmapped bam: " + rec.getReadName() + ", " + secondOfPair.getReadName());
+
+                if (!rec.getFirstOfPairFlag())
+                    throw new PicardException("First record in unmapped bam is not first of pair: " + rec.getReadName());
+                if (!secondOfPair.getReadPairedFlag())
+                    throw new PicardException("Second record in unmapped bam is not marked as paired: " + secondOfPair.getReadName());
+                if (!secondOfPair.getSecondOfPairFlag())
+                    throw new PicardException("Second record in unmapped bam is not second of pair: " + secondOfPair.getReadName());
+            } else {
+                secondOfPair = null;
+            }
+
+            // See if there are alignments for current unaligned read or read pair.
+            if (nextAligned != null && rec.getReadName().equals(nextAligned.getReadName())) {
+                // If there are multiple alignments for a read (pair), then the unaligned SAMRecord must be cloned
+                // before copying info from the aligned record to the unaligned.
+                final boolean clone = nextAligned.numHits() > 1 || nextAligned.hasSupplementalHits();
+                SAMRecord r1Primary = null, r2Primary = null;
+
+                if (rec.getReadPairedFlag()) {
+                    for (int i = 0; i < nextAligned.numHits(); ++i) {
+                        // firstAligned or secondAligned may be null, if there wasn't an alignment for the end,
+                        // or if the alignment was rejected by ignoreAlignment.
+                        final SAMRecord firstAligned = nextAligned.getFirstOfPair(i);
+                        final SAMRecord secondAligned = nextAligned.getSecondOfPair(i);
+
+                        final boolean isPrimaryAlignment = (firstAligned != null && !firstAligned.isSecondaryOrSupplementary()) ||
+                                (secondAligned != null && !secondAligned.isSecondaryOrSupplementary());
+
+                        final SAMRecord firstToWrite;
+                        final SAMRecord secondToWrite;
+                        if (clone) {
+                            firstToWrite = clone(rec);
+                            secondToWrite = clone(secondOfPair);
+                        } else {
+                            firstToWrite = rec;
+                            secondToWrite = secondOfPair;
+                        }
+
+                        // If these are the primary alignments then stash them for use on any supplemental alignments
+                        if (isPrimaryAlignment) {
+                            r1Primary = firstToWrite;
+                            r2Primary = secondToWrite;
+                        }
+
+                        transferAlignmentInfoToPairedRead(firstToWrite, secondToWrite, firstAligned, secondAligned);
+
+                        // Only write unmapped read when it has the mate info from the primary alignment.
+                        if (!firstToWrite.getReadUnmappedFlag() || isPrimaryAlignment) {
+                            addIfNotFiltered(sink, firstToWrite);
+                            if (firstToWrite.getReadUnmappedFlag()) ++unmapped;
+                            else ++aligned;
+                        }
+                        if (!secondToWrite.getReadUnmappedFlag() || isPrimaryAlignment) {
+                            addIfNotFiltered(sink, secondToWrite);
+                            if (!secondToWrite.getReadUnmappedFlag()) ++aligned;
+                            else ++unmapped;
+                        }
+                    }
+
+                    // Take all of the supplemental reads which had been stashed and add them (as appropriate) to sorted
+                    for (final boolean isRead1 : new boolean[]{true, false}) {
+                        final List<SAMRecord> supplementals = isRead1 ? nextAligned.getSupplementalFirstOfPairOrFragment() : nextAligned.getSupplementalSecondOfPair();
+                        final SAMRecord sourceRec = isRead1 ? rec : secondOfPair;
+                        final SAMRecord matePrimary = isRead1 ? r2Primary : r1Primary;
+
+                        for (final SAMRecord supp : supplementals) {
+                            final SAMRecord out = clone(sourceRec);
+                            transferAlignmentInfoToFragment(out, supp);
+                            if (matePrimary != null) SamPairUtil.setMateInformationOnSupplementalAlignment(out, matePrimary, addMateCigar);
+                            ++aligned;
+                            addIfNotFiltered(sink, out);
+                        }
+                    }
+                } else {
+                    for (int i = 0; i < nextAligned.numHits(); ++i) {
+                        final SAMRecord recToWrite = clone ? clone(rec) : rec;
+                        transferAlignmentInfoToFragment(recToWrite, nextAligned.getFragment(i));
+                        addIfNotFiltered(sink, recToWrite);
+                        if (recToWrite.getReadUnmappedFlag()) ++unmapped;
+                        else ++aligned;
+                    }
+                    // Take all of the supplemental reads which had been stashed and add them (as appropriate) to sorted
+                    for (final SAMRecord supplementalRec : nextAligned.getSupplementalFirstOfPairOrFragment()) {
+                        final SAMRecord recToWrite = clone(rec);
+                        transferAlignmentInfoToFragment(recToWrite, supplementalRec);
+                        addIfNotFiltered(sink, recToWrite);
+                        ++aligned;
+                    }
+                }
+                nextAligned = nextAligned();
+            } else {
+                // There was no alignment for this read or read pair.
+                if (nextAligned != null &&
+                        SAMRecordQueryNameComparator.compareReadNames(rec.getReadName(), nextAligned.getReadName()) > 0) {
+                    throw new IllegalStateException("Aligned record iterator (" + nextAligned.getReadName() +
+                            ") is behind the unmapped reads (" + rec.getReadName() + ")");
+                }
+                // No matching read from alignedIterator -- just output reads as is.
+                if (!alignedReadsOnly) {
+                    sink.add(rec);
+                    ++unmapped;
+                    if (secondOfPair != null) {
+                        sink.add(secondOfPair);
+                        ++unmapped;
+                    }
+                }
+            }
+        }
+        unmappedIterator.close();
+        if (alignedIterator.hasNext()) {
+            throw new IllegalStateException("Reads remaining on alignment iterator: " + alignedIterator.next().getReadName() + "!");
+        }
+        alignedIterator.close();
+        sink.close();
+
+        // Write the records to the output file in specified sorted order,
+        if (this.sortOrder == SortOrder.coordinate) {
+            header.setSortOrder(this.sortOrder);
+            final SAMFileWriter writer = new SAMFileWriterFactory().makeSAMOrBAMWriter(header, true, this.targetBamFile);
+            writer.setProgressLogger(new ProgressLogger(log, (int) 1e7, "Wrote", "records from a sorting collection"));
+            final ProgressLogger finalProgress = new ProgressLogger(log, 10000000, "Written in coordinate order to output", "records");
+
+            for (final SAMRecord rec : sink.sorter) {
+                if (!rec.getReadUnmappedFlag()) {
+                    if (refSeq != null) {
+                        final byte[] referenceBases = refSeq.get(sequenceDictionary.getSequenceIndex(rec.getReferenceName())).getBases();
+                        rec.setAttribute(SAMTag.NM.name(), SequenceUtil.calculateSamNmTag(rec, referenceBases, 0, bisulfiteSequence));
+
+                        if (rec.getBaseQualities() != SAMRecord.NULL_QUALS) {
+                            rec.setAttribute(SAMTag.UQ.name(), SequenceUtil.sumQualitiesOfMismatches(rec, referenceBases, 0, bisulfiteSequence));
+                        }
+                    }
+                }
+                writer.addAlignment(rec);
+                finalProgress.record(rec);
+            }
+            writer.close();
+            sink.sorter.cleanup();
+        }
+
+        CloserUtil.close(unmappedSam);
+        log.info("Wrote " + aligned + " alignment records and " + (alignedReadsOnly ? 0 : unmapped) + " unmapped reads.");
+    }
+
+    /**
+     * Add record if it is primary or optionally secondary.
+     */
+    private void addIfNotFiltered(final Sink out, final SAMRecord rec) {
+        if (includeSecondaryAlignments || !rec.getNotPrimaryAlignmentFlag()) {
+            out.add(rec);
+            this.progress.record(rec);
+        }
+    }
+
+    private SAMRecord clone(final SAMRecord rec) {
+        try {
+            return (SAMRecord) rec.clone();
+        } catch (CloneNotSupportedException e) {
+            throw new PicardException("Should never happen.");
+        }
+    }
+
+    /**
+     * @return Next read's alignment(s) from aligned input or null, if there are no more.
+     * The alignments are run through ignoreAlignment() filter before being returned, which may result
+     * in an entire read being skipped if all alignments for that read should be ignored.
+     */
+    private HitsForInsert nextAligned() {
+        if (alignedIterator.hasNext()) return alignedIterator.next();
+        return null;
+    }
+
+    /**
+     * Copies alignment info from aligned to unaligned read, clips as appropriate, and sets PG ID.
+     *
+     * @param unaligned Original SAMRecord, and object into which values are copied.
+     * @param aligned   Holds alignment info that will be copied into unaligned.
+     */
+    private void transferAlignmentInfoToFragment(final SAMRecord unaligned, final SAMRecord aligned) {
+        setValuesFromAlignment(unaligned, aligned);
+        updateCigarForTrimmedOrClippedBases(unaligned, aligned);
+        if (SAMUtils.cigarMapsNoBasesToRef(unaligned.getCigar())) {
+            SAMUtils.makeReadUnmapped(unaligned);
+        } else if (SAMUtils.recordMapsEntirelyBeyondEndOfReference(aligned)) {
+            log.warn("Record mapped off end of reference; making unmapped: " + aligned);
+            SAMUtils.makeReadUnmapped(unaligned);
+        }
+    }
+
+    /**
+     * Copies alignment info from aligned to unaligned read, if there is an alignment, and sets mate information.
+     *
+     * @param firstUnaligned  Original first of pair, into which alignment and pair info will be written.
+     * @param secondUnaligned Original second of pair, into which alignment and pair info will be written.
+     * @param firstAligned    Aligned first of pair, or null if no alignment.
+     * @param secondAligned   Aligned second of pair, or null if no alignment.
+     */
+    private void transferAlignmentInfoToPairedRead(final SAMRecord firstUnaligned, final SAMRecord secondUnaligned, final SAMRecord firstAligned, final SAMRecord secondAligned) {
+        if (firstAligned != null) transferAlignmentInfoToFragment(firstUnaligned, firstAligned);
+        if (secondAligned != null) transferAlignmentInfoToFragment(secondUnaligned, secondAligned);
+        if (isClipOverlappingReads()) clipForOverlappingReads(firstUnaligned, secondUnaligned);
+        SamPairUtil.setMateInfo(secondUnaligned, firstUnaligned, header, addMateCigar);
+        if (!keepAlignerProperPairFlags) {
+            SamPairUtil.setProperPairFlags(secondUnaligned, firstUnaligned, expectedOrientations);
+        }
+    }
+
+
+    /**
+     * Checks to see whether the ends of the reads overlap and soft clips reads
+     * them if necessary.
+     */
+    protected void clipForOverlappingReads(final SAMRecord read1, final SAMRecord read2) {
+        // If both reads are mapped, see if we need to clip the ends due to small
+        // insert size
+        if (!(read1.getReadUnmappedFlag() || read2.getReadUnmappedFlag())) {
+
+            if (read1.getReadNegativeStrandFlag() != read2.getReadNegativeStrandFlag()) {
+                final SAMRecord pos = (read1.getReadNegativeStrandFlag()) ? read2 : read1;
+                final SAMRecord neg = (read1.getReadNegativeStrandFlag()) ? read1 : read2;
+
+                // Innies only -- do we need to do anything else about jumping libraries?
+                if (pos.getAlignmentStart() < neg.getAlignmentEnd()) {
+                    final int posDiff = pos.getAlignmentEnd() - neg.getAlignmentEnd();
+                    final int negDiff = pos.getAlignmentStart() - neg.getAlignmentStart();
+
+                    if (posDiff > 0) {
+                        CigarUtil.softClip3PrimeEndOfRead(pos, Math.min(pos.getReadLength(),
+                                pos.getReadLength() - posDiff + 1));
+                    }
+
+                    if (negDiff > 0) {
+                        CigarUtil.softClip3PrimeEndOfRead(neg, Math.min(neg.getReadLength(),
+                                neg.getReadLength() - negDiff + 1));
+                    }
+
+                }
+            } else {
+                // TODO: What about RR/FF pairs?
+            }
+        }
+
+    }
+
+    /**
+     * Sets the values from the alignment record on the unaligned BAM record.  This
+     * preserves all data from the unaligned record (ReadGroup, NoiseRead status, etc)
+     * and adds all the alignment info
+     *
+     * @param rec       The unaligned read record
+     * @param alignment The alignment record
+     */
+    protected void setValuesFromAlignment(final SAMRecord rec, final SAMRecord alignment) {
+        for (final SAMRecord.SAMTagAndValue attr : alignment.getAttributes()) {
+            // Copy over any non-reserved attributes.  attributesToRemove overrides attributesToRetain.
+            if ((!isReservedTag(attr.tag) || this.attributesToRetain.contains(attr.tag)) && !this.attributesToRemove.contains(attr.tag)) {
+                rec.setAttribute(attr.tag, attr.value);
+            }
+        }
+        rec.setReadUnmappedFlag(alignment.getReadUnmappedFlag());
+
+        // Note that it is important to get reference names rather than indices in case the sequence dictionaries
+        // in the two files are in different orders.
+        rec.setReferenceName(alignment.getReferenceName());
+
+        rec.setAlignmentStart(alignment.getAlignmentStart());
+        rec.setReadNegativeStrandFlag(alignment.getReadNegativeStrandFlag());
+        rec.setNotPrimaryAlignmentFlag(alignment.getNotPrimaryAlignmentFlag());
+        rec.setSupplementaryAlignmentFlag(alignment.getSupplementaryAlignmentFlag());
+        if (!alignment.getReadUnmappedFlag()) {
+            // only aligned reads should have cigar and mapping quality set
+            rec.setCigar(alignment.getCigar());  // cigar may change when a
+            // clipCigar called below
+            rec.setMappingQuality(alignment.getMappingQuality());
+        }
+        if (rec.getReadPairedFlag()) {
+            rec.setProperPairFlag(alignment.getProperPairFlag());
+            // Mate info and alignment size will get set by the ClippedPairFixer.
+        }
+
+        // If it's on the negative strand, reverse complement the bases
+        // and reverse the order of the qualities
+        if (rec.getReadNegativeStrandFlag()) {
+            SAMRecordUtil.reverseComplement(rec);
+        }
+
+    }
+
+    private static Cigar createNewCigarIfMapsOffEndOfReference(SAMFileHeader header,
+                                                               boolean isUnmapped,
+                                                               int referenceIndex,
+                                                               int alignmentEnd,
+                                                               int readLength,
+                                                               Cigar oldCigar) {
+        Cigar newCigar = null;
+        if (!isUnmapped) {
+            final SAMSequenceRecord refseq = header.getSequence(referenceIndex);
+            final int overhang = alignmentEnd - refseq.getSequenceLength();
+            if (overhang > 0) {
+                // 1-based index of first base in read to clip.
+                int clipFrom = readLength - overhang + 1;
+                // we have to check if the last element is soft-clipping, so we can subtract that from clipFrom
+                final CigarElement cigarElement = oldCigar.getCigarElement(oldCigar.getCigarElements().size()-1);
+                if (CigarOperator.SOFT_CLIP == cigarElement.getOperator()) clipFrom -= cigarElement.getLength();
+                final List<CigarElement> newCigarElements = CigarUtil.softClipEndOfRead(clipFrom, oldCigar.getCigarElements());
+                newCigar = new Cigar(newCigarElements);
+            }
+        }
+        return newCigar;
+    }
+
+    /**
+     * Soft-clip an alignment that hangs off the end of its reference sequence.  Checks both the read and its mate,
+     * if available.
+     *
+     * @param rec
+     */
+    public static void createNewCigarsIfMapsOffEndOfReference(final SAMRecord rec) {
+        // If the read maps off the end of the alignment, clip it
+        if (!rec.getReadUnmappedFlag()) {
+            final Cigar readCigar = createNewCigarIfMapsOffEndOfReference(rec.getHeader(),
+                    rec.getReadUnmappedFlag(),
+                    rec.getReferenceIndex(),
+                    rec.getAlignmentEnd(),
+                    rec.getReadLength(),
+                    rec.getCigar());
+            if (null != readCigar) rec.setCigar(readCigar);
+        }
+
+        // If the read's mate maps off the end of the alignment, clip it
+        if (SAMUtils.hasMateCigar(rec)) {
+            Cigar mateCigar = SAMUtils.getMateCigar(rec);
+            mateCigar = createNewCigarIfMapsOffEndOfReference(rec.getHeader(),
+                    rec.getMateUnmappedFlag(),
+                    rec.getMateReferenceIndex(),
+                    SAMUtils.getMateAlignmentEnd(rec), // NB: this could be computed without another call to getMateCigar
+                    mateCigar.getReadLength(),
+                    mateCigar);
+            if (null != mateCigar) rec.setAttribute(SAMTag.MC.name(), mateCigar.toString());
+        }
+    }
+
+    protected void updateCigarForTrimmedOrClippedBases(final SAMRecord rec, final SAMRecord alignment) {
+        // If the read was trimmed or not all the bases were sent for alignment, clip it
+        final int alignmentReadLength = alignment.getReadLength();
+        final int originalReadLength = rec.getReadLength();
+        final int trimmed = (!rec.getReadPairedFlag()) || rec.getFirstOfPairFlag()
+                ? this.read1BasesTrimmed != null ? this.read1BasesTrimmed : 0
+                : this.read2BasesTrimmed != null ? this.read2BasesTrimmed : 0;
+        final int notWritten = originalReadLength - (alignmentReadLength + trimmed);
+
+        // Update cigar if the mate maps off the reference
+        createNewCigarsIfMapsOffEndOfReference(rec);
+
+        rec.setCigar(CigarUtil.addSoftClippedBasesToEndsOfCigar(
+                rec.getCigar(), rec.getReadNegativeStrandFlag(), notWritten, trimmed));
+
+        // If the adapter sequence is marked and clipAdapter is true, clip it
+        if (this.clipAdapters && rec.getAttribute(ReservedTagConstants.XT) != null) {
+            CigarUtil.softClip3PrimeEndOfRead(rec, rec.getIntegerAttribute(ReservedTagConstants.XT));
+        }
+    }
+
+
+    protected SAMSequenceDictionary getSequenceDictionary() { return this.sequenceDictionary; }
+
+    protected SAMProgramRecord getProgramRecord() { return this.programRecord; }
+
+    protected void setProgramRecord(final SAMProgramRecord pg) {
+        if (this.programRecord != null) {
+            throw new IllegalStateException("Cannot set program record more than once on alignment merger.");
+        }
+        this.programRecord = pg;
+        this.header.addProgramRecord(pg);
+        SAMUtils.chainSAMProgramRecord(header, pg);
+    }
+
+    protected boolean isReservedTag(final String tag) {
+        final char firstCharOfTag = tag.charAt(0);
+
+        // All tags that start with a lower-case letter are user defined and should not be overridden by aligner
+        // unless explicitly specified in attributesToRetain.
+        if (Character.isLowerCase(firstCharOfTag)) return true;
+
+        for (final char c : RESERVED_ATTRIBUTE_STARTS) {
+            if (firstCharOfTag == c) return true;
+        }
+        return false;
+    }
+
+    protected SAMFileHeader getHeader() { return this.header; }
+
+    protected void resetRefSeqFileWalker() {
+        this.refSeq = new ReferenceSequenceFileWalker(referenceFasta);
+    }
+
+    public boolean isClipOverlappingReads() {
+        return clipOverlappingReads;
+    }
+
+    public void setClipOverlappingReads(final boolean clipOverlappingReads) {
+        this.clipOverlappingReads = clipOverlappingReads;
+    }
+
+    public boolean isKeepAlignerProperPairFlags() {
+        return keepAlignerProperPairFlags;
+    }
+
+    /**
+     * If true, keep the aligner's idea of proper pairs rather than letting alignment merger decide.
+     */
+    public void setKeepAlignerProperPairFlags(final boolean keepAlignerProperPairFlags) {
+        this.keepAlignerProperPairFlags = keepAlignerProperPairFlags;
+    }
+
+    public void setIncludeSecondaryAlignments(final boolean includeSecondaryAlignments) {
+        this.includeSecondaryAlignments = includeSecondaryAlignments;
+    }
+
+    public void close() {
+        CloserUtil.close(this.refSeq);
+    }
+}
diff --git a/src/java/picard/sam/AddCommentsToBam.java b/src/java/picard/sam/AddCommentsToBam.java
new file mode 100644
index 0000000..aa4c23e
--- /dev/null
+++ b/src/java/picard/sam/AddCommentsToBam.java
@@ -0,0 +1,63 @@
+package picard.sam;
+
+import htsjdk.samtools.BamFileIoUtils;
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.util.IOUtil;
+import picard.PicardException;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.SamOrBam;
+
+import java.io.File;
+import java.util.List;
+
+/**
+ * A tool to add comments to a BAM file header. Effectively copies the BAM file except for the addition of the @CO records
+ * in the header. This tool does not support SAM files.
+ *
+ * @author jgentry
+ */
+ at CommandLineProgramProperties(
+        usage = "Adds one or more comments to the header of a specified BAM file. Copies the file with the " +
+                "modified header to a specified output file. Note that a block copying method is used to ensure efficient transfer to the " +
+                "output file. SAM files are not supported",
+        usageShort = "Adds comments to the header of a BAM file",
+        programGroup = SamOrBam.class
+)
+public class AddCommentsToBam extends CommandLineProgram {
+
+    @Option(shortName = StandardOptionDefinitions.INPUT_SHORT_NAME, doc = "Input BAM file to add a comment to the header")
+    public File INPUT;
+
+    @Option(shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc = "Output BAM file to write results")
+    public File OUTPUT;
+
+    @Option(shortName = "C", doc = "Comments to add to the BAM file")
+    public List<String> COMMENT;
+
+    public static void main(final String[] args) { new AddCommentsToBam().instanceMainWithExit(args); }
+
+    protected int doWork() {
+        IOUtil.assertFileIsReadable(INPUT);
+        IOUtil.assertFileIsWritable(OUTPUT);
+
+        if (INPUT.getAbsolutePath().endsWith(".sam")) {
+            throw new PicardException("SAM files are not supported");
+        }
+
+        final SAMFileHeader samFileHeader = SamReaderFactory.makeDefault().referenceSequence(REFERENCE_SEQUENCE).getFileHeader(INPUT);
+        for (final String comment : COMMENT) {
+            if (comment.contains("\n")) {
+                throw new PicardException("Comments can not contain a new line");
+            }
+            samFileHeader.addComment(comment);
+        }
+
+        BamFileIoUtils.reheaderBamFile(samFileHeader, INPUT, OUTPUT, CREATE_MD5_FILE, CREATE_INDEX);
+
+        return 0;
+    }
+}
diff --git a/src/java/picard/sam/AddOrReplaceReadGroups.java b/src/java/picard/sam/AddOrReplaceReadGroups.java
new file mode 100644
index 0000000..27d6976
--- /dev/null
+++ b/src/java/picard/sam/AddOrReplaceReadGroups.java
@@ -0,0 +1,135 @@
+package picard.sam;
+
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMFileHeader.SortOrder;
+import htsjdk.samtools.SAMFileWriter;
+import htsjdk.samtools.SAMFileWriterFactory;
+import htsjdk.samtools.SAMReadGroupRecord;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SAMTag;
+import htsjdk.samtools.SamInputResource;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Iso8601Date;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.ProgressLogger;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.SamOrBam;
+
+import java.io.File;
+import java.util.Arrays;
+
+/**
+ * Replaces read groups in a BAM file
+ *
+ * @author mdepristo
+ */
+ at CommandLineProgramProperties(
+        usage = "Replaces all read groups in the INPUT file with a single new read group and assigns " +
+                "all reads to this read group in the OUTPUT BAM",
+        usageShort = "Replaces read groups in a BAM or SAM file with a single new read group",
+        programGroup = SamOrBam.class
+)
+public class AddOrReplaceReadGroups extends CommandLineProgram {
+
+    @Option(shortName= StandardOptionDefinitions.INPUT_SHORT_NAME, doc="Input file (bam or sam or a GA4GH url).")
+    public String INPUT = null;
+
+    @Option(shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc = "Output file (bam or sam).")
+    public File OUTPUT = null;
+
+    @Option(shortName = StandardOptionDefinitions.SORT_ORDER_SHORT_NAME, optional = true,
+            doc = "Optional sort order to output in. If not supplied OUTPUT is in the same order as INPUT.")
+    public SortOrder SORT_ORDER;
+
+    @Option(shortName = "ID", doc = "Read Group ID")
+    public String RGID = "1";
+
+    @Option(shortName = "LB", doc = "Read Group Library")
+    public String RGLB;
+
+    @Option(shortName = "PL", doc = "Read Group platform (e.g. illumina, solid)")
+    public String RGPL;
+
+    @Option(shortName = "PU", doc = "Read Group platform unit (eg. run barcode)")
+    public String RGPU;
+
+    @Option(shortName = "SM", doc = "Read Group sample name")
+    public String RGSM;
+
+    @Option(shortName = "CN", doc = "Read Group sequencing center name", optional = true)
+    public String RGCN;
+
+    @Option(shortName = "DS", doc = "Read Group description", optional = true)
+    public String RGDS;
+
+    @Option(shortName = "DT", doc = "Read Group run date", optional = true)
+    public Iso8601Date RGDT;
+
+    @Option(shortName = "PI", doc = "Read Group predicted insert size", optional = true)
+    public Integer RGPI;
+    
+    @Option(shortName = "PG", doc = "Read Group program group", optional = true)
+    public String RGPG;
+    
+    @Option(shortName = "PM", doc = "Read Group platform model", optional = true)
+    public String RGPM;
+
+    private final Log log = Log.getInstance(AddOrReplaceReadGroups.class);
+
+    /** Required main method implementation. */
+    public static void main(final String[] argv) {
+        new AddOrReplaceReadGroups().instanceMainWithExit(argv);
+    }
+
+    protected int doWork() {
+        IOUtil.assertInputIsValid(INPUT);
+        IOUtil.assertFileIsWritable(OUTPUT);
+
+        final SamReader in = SamReaderFactory.makeDefault()
+            .referenceSequence(REFERENCE_SEQUENCE)
+            .open(SamInputResource.of(INPUT));
+
+        // create the read group we'll be using
+        final SAMReadGroupRecord rg = new SAMReadGroupRecord(RGID);
+        rg.setLibrary(RGLB);
+        rg.setPlatform(RGPL);
+        rg.setSample(RGSM);
+        rg.setPlatformUnit(RGPU);
+        if (RGCN != null) rg.setSequencingCenter(RGCN);
+        if (RGDS != null) rg.setDescription(RGDS);
+        if (RGDT != null) rg.setRunDate(RGDT);
+        if (RGPI != null) rg.setPredictedMedianInsertSize(RGPI);
+        if (RGPG != null) rg.setProgramGroup(RGPG);
+        if (RGPM != null) rg.setPlatformModel(RGPM);
+
+        log.info(String.format("Created read group ID=%s PL=%s LB=%s SM=%s%n", rg.getId(), rg.getPlatform(), rg.getLibrary(), rg.getSample()));
+
+        // create the new header and output file
+        final SAMFileHeader inHeader = in.getFileHeader();
+        final SAMFileHeader outHeader = inHeader.clone();
+        outHeader.setReadGroups(Arrays.asList(rg));
+        if (SORT_ORDER != null) outHeader.setSortOrder(SORT_ORDER);
+
+        final SAMFileWriter outWriter = new SAMFileWriterFactory().makeSAMOrBAMWriter(outHeader,
+                outHeader.getSortOrder() == inHeader.getSortOrder(),
+                OUTPUT);
+
+        final ProgressLogger progress = new ProgressLogger(log);
+        for (final SAMRecord read : in) {
+            read.setAttribute(SAMTag.RG.name(), RGID);
+            outWriter.addAlignment(read);
+            progress.record(read);
+        }
+
+        // cleanup
+        CloserUtil.close(in);
+        outWriter.close();
+        return 0;
+    }
+}
diff --git a/src/java/picard/sam/BamIndexStats.java b/src/java/picard/sam/BamIndexStats.java
new file mode 100755
index 0000000..17d6e7f
--- /dev/null
+++ b/src/java/picard/sam/BamIndexStats.java
@@ -0,0 +1,80 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2010 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.sam;
+
+import htsjdk.samtools.BAMIndex;
+import htsjdk.samtools.BAMIndexMetaData;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.SamOrBam;
+
+import java.io.File;
+
+/**
+ * Command line program to print statistics from BAM index (.bai) file
+ * Statistics include count of aligned and unaligned reads for each reference sequence
+ * and a count of all records with no start coordinate.
+ * Similar to the 'samtools idxstats' command.
+ *
+ * @author Martha Borkan
+ */
+ at CommandLineProgramProperties(
+        usage = "Generates BAM index statistics, including the number of aligned and unaligned SAMRecords for each reference sequence, " +
+                "and the number of SAMRecords with no coordinate." +
+                "Input BAM file must have a corresponding index file.\n",
+        usageShort = "Generates index statistics from a BAM file",
+        programGroup = SamOrBam.class
+)
+public class BamIndexStats extends CommandLineProgram {
+
+    private static final Log log = Log.getInstance(BamIndexStats.class);
+
+    @Option(shortName= StandardOptionDefinitions.INPUT_SHORT_NAME,
+            doc="A BAM file to process.")
+    public File INPUT;
+
+    /** Stock main method for a command line program. */
+    public static void main(final String[] argv) {
+        System.exit(new BamIndexStats().instanceMain(argv));
+    }
+
+    /**
+     * Main method for the program.  Checks that input file is present and
+     * readable, then iterates through the index printing meta data to stdout.
+     */
+    protected int doWork() {
+
+        if (INPUT.getName().endsWith(BAMIndex.BAMIndexSuffix))
+               log.warn("INPUT should be BAM file not index file");
+        IOUtil.assertFileIsReadable(INPUT);
+        BAMIndexMetaData.printIndexStats(INPUT);
+
+        return 0;
+    }
+}
diff --git a/src/java/picard/sam/BestEndMapqPrimaryAlignmentStrategy.java b/src/java/picard/sam/BestEndMapqPrimaryAlignmentStrategy.java
new file mode 100644
index 0000000..a438cad
--- /dev/null
+++ b/src/java/picard/sam/BestEndMapqPrimaryAlignmentStrategy.java
@@ -0,0 +1,104 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2013 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.sam;
+
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SAMUtils;
+
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+import java.util.Random;
+
+
+/**
+ * For an aligner that aligns each end independently, select the alignment for each end with the best MAPQ, and
+ * make that the primary.  The primary alignments are then correlated so that their mate info points to each
+ * other, but all non-primary alignments are uncorrelated.
+ */
+public class BestEndMapqPrimaryAlignmentStrategy implements PrimaryAlignmentSelectionStrategy {
+    private static final MapqComparator MAPQ_COMPARATOR = new MapqComparator();
+
+    // Give random number generator a seed so results are repeatable.  Used to pick a primary alignment from
+    // multiple alignments with equal mapping quality.
+    private final Random random = new Random(1);
+
+    /**
+     * Primary alignment was filtered out.  Need to select a new one.
+     */
+    public void pickPrimaryAlignment(final HitsForInsert hits) {
+
+        if (hits.numHits() == 0) throw new IllegalArgumentException("No alignments to pick from");
+        Collections.sort(hits.firstOfPairOrFragment, MAPQ_COMPARATOR);
+        Collections.sort(hits.secondOfPair, MAPQ_COMPARATOR);
+
+        randomlySelectPrimaryFromBest(hits.firstOfPairOrFragment);
+        randomlySelectPrimaryFromBest(hits.secondOfPair);
+        hits.setPrimaryAlignment(0);
+
+        if (!hits.isPaired()) return;
+
+        // For non-primary alignments, de-correlate them so that the mate fields don't point at some
+        // arbitrary alignment for the other end.
+
+        // No non-primary alignments for one of the ends so nothing to do.
+        if (hits.firstOfPairOrFragment.size() <= 1 || hits.secondOfPair.size() <= 1) return;
+        final int amountToSlide = hits.firstOfPairOrFragment.size() - 1;
+        for (int i = 0; i < amountToSlide; ++i) {
+            hits.secondOfPair.add(1, null);
+        }
+    }
+
+
+    /**
+     * Randomly picks one of the best alignments and puts it into the 0th slot of the list.
+     * @param recs List of alignments sorted in descending order of alignment quality.
+     */
+    private void randomlySelectPrimaryFromBest(List<SAMRecord> recs) {
+        if (recs.isEmpty()) return;
+        final int bestMapq = recs.get(0).getMappingQuality();
+        int i;
+        for (i = 1; i < recs.size() && recs.get(i).getMappingQuality() == bestMapq; ++i) {
+        }
+        final int bestIndex = random.nextInt(i);
+        if (bestIndex == 0) return;
+        final SAMRecord tmp = recs.get(0);
+        recs.set(0, recs.get(bestIndex));
+        recs.set(bestIndex, tmp);
+    }
+
+    // Sorts in descending order, but 255 is considered > 0 but < 1, and unmapped is worst of all
+    private static class MapqComparator implements Comparator<SAMRecord> {
+        public int compare(final SAMRecord rec1, final SAMRecord rec2) {
+            if (rec1.getReadUnmappedFlag()) {
+                if (rec2.getReadUnmappedFlag()) return 0;
+                else return 1;
+            } else if (rec2.getReadUnmappedFlag()) {
+                return -1;
+            }
+            return -SAMUtils.compareMapqs(rec1.getMappingQuality(), rec2.getMappingQuality());
+        }
+    }
+}
+
diff --git a/src/java/picard/sam/BestMapqPrimaryAlignmentSelectionStrategy.java b/src/java/picard/sam/BestMapqPrimaryAlignmentSelectionStrategy.java
new file mode 100644
index 0000000..4d5be6c
--- /dev/null
+++ b/src/java/picard/sam/BestMapqPrimaryAlignmentSelectionStrategy.java
@@ -0,0 +1,96 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2012 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.sam;
+
+import htsjdk.samtools.SAMUtils;
+import picard.sam.HitsForInsert.NumPrimaryAlignmentState;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Random;
+
+/**
+ * This strategy was designed for TopHat output, but could be of general utility.  It picks the alignment with best MAPQ.
+ * If paired-end, it is the alignment in which the sum of the MAPQs of both ends is the best.  In case of ties, one
+ * is selected arbitrarily.  This strategy expects pair-aware alignments, with the corresponding alignment for each
+ * mate of the pair correlated by HI (hit index) tag.  If the aligner has set a pair of alignments as primary, this
+ * is used (assuming one of those alignments is not filtered out).  Otherwise the alignment pair with best MapQ is
+ * selected.
+ */
+public class BestMapqPrimaryAlignmentSelectionStrategy implements PrimaryAlignmentSelectionStrategy {
+    // Give random number generator a seed so results are repeatable.  Used to pick a primary alignment from
+    // multiple alignments with equal mapping quality.
+    private final Random random = new Random(1);
+
+    /**
+     * Primary alignment was filtered out.  Need to select a new one.
+     */
+    public void pickPrimaryAlignment(final HitsForInsert hits) {
+
+        if (hits.numHits() == 0) throw new IllegalArgumentException("No alignments to pick from");
+        hits.coordinateByHitIndex();
+        // See if primary alignment is not already unambiguously determined.
+        final NumPrimaryAlignmentState firstEndAlignmentState = hits.tallyPrimaryAlignments(true);
+        final NumPrimaryAlignmentState secondEndAlignmentState = hits.tallyPrimaryAlignments(false);
+
+        if ((firstEndAlignmentState == NumPrimaryAlignmentState.NONE && secondEndAlignmentState == NumPrimaryAlignmentState.NONE) ||
+                firstEndAlignmentState == NumPrimaryAlignmentState.MORE_THAN_ONE ||
+                secondEndAlignmentState == NumPrimaryAlignmentState.MORE_THAN_ONE) {
+            // Need to use selected strategy for picking primary.
+
+            // Find all the hits with the best MAPQ.
+            final List<Integer> primaryAlignmentIndices = new ArrayList<Integer>(hits.numHits());
+            int bestMapQ = -1;
+            for (int i = 0; i < hits.numHits(); ++i) {
+                final int firstEndMapq;
+                if (hits.getFirstOfPair(i) != null) {
+                    firstEndMapq = hits.getFirstOfPair(i).getMappingQuality();
+                } else {
+                    firstEndMapq = 0;
+                }
+                final int secondEndMapq;
+                if (hits.getSecondOfPair(i) != null) {
+                    secondEndMapq = hits.getSecondOfPair(i).getMappingQuality();
+                } else {
+                    secondEndMapq = 0;
+                }
+                int thisMapQ = SAMUtils.combineMapqs(firstEndMapq, secondEndMapq);
+                if (thisMapQ > bestMapQ) {
+                    bestMapQ = thisMapQ;
+                    primaryAlignmentIndices.clear();
+                }
+                if (thisMapQ == bestMapQ) primaryAlignmentIndices.add(i);
+            }
+
+            // Of all the hits with the best MAPQ, randomly select one to be primary.
+            final int primaryAlignmentIndex;
+            if (primaryAlignmentIndices.size() == 1) primaryAlignmentIndex = primaryAlignmentIndices.get(0);
+            else if (primaryAlignmentIndices.size() > 1) primaryAlignmentIndex =
+                    primaryAlignmentIndices.get(random.nextInt(primaryAlignmentIndices.size()));
+            else throw new IllegalStateException("Never found a best MAPQ -- should never happen");
+
+            hits.setPrimaryAlignment(primaryAlignmentIndex);
+        }
+    }
+}
diff --git a/src/java/picard/sam/BuildBamIndex.java b/src/java/picard/sam/BuildBamIndex.java
new file mode 100755
index 0000000..177df98
--- /dev/null
+++ b/src/java/picard/sam/BuildBamIndex.java
@@ -0,0 +1,144 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2010 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.sam;
+
+import htsjdk.samtools.BAMIndex;
+import htsjdk.samtools.BAMIndexer;
+import htsjdk.samtools.BamFileIoUtils;
+import htsjdk.samtools.SAMException;
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SamInputResource;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.SamOrBam;
+
+import java.io.File;
+import java.net.URL;
+
+/**
+ * Command line program to generate a BAM index (.bai) file from a BAM (.bam) file
+ *
+ * @author Martha Borkan
+ */
+ at CommandLineProgramProperties(
+        usage = "Generates a BAM index (.bai) file.",
+        usageShort = "Generates a BAM index (.bai) file",
+        programGroup = SamOrBam.class
+)
+public class BuildBamIndex extends CommandLineProgram {
+
+    private static final Log log = Log.getInstance(BuildBamIndex.class);
+
+    @Option(shortName = StandardOptionDefinitions.INPUT_SHORT_NAME,
+            doc = "A BAM file or URL to process. Must be sorted in coordinate order.")
+    public String INPUT;
+
+    URL inputUrl = null;   // INPUT as URL
+    File inputFile = null; // INPUT as File, if it can't be interpreted as a valid URL
+
+    @Option(shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME,
+            doc = "The BAM index file. Defaults to x.bai if INPUT is x.bam, otherwise INPUT.bai.\n" +
+                    "If INPUT is a URL and OUTPUT is unspecified, defaults to a file in the current directory.", optional = true)
+    public File OUTPUT;
+
+    /** Stock main method for a command line program. */
+    public static void main(final String[] argv) {
+        System.exit(new BuildBamIndex().instanceMain(argv));
+    }
+
+    /**
+     * Main method for the program.  Checks that all input files are present and
+     * readable and that the output file can be written to.  Then iterates through
+     * all the records generating a BAM Index, then writes the bai file.
+     */
+    protected int doWork() {
+
+        try {
+            inputUrl = new URL(INPUT);
+        } catch (java.net.MalformedURLException e) {
+            inputFile = new File(INPUT);
+        }
+
+        // set default output file - input-file.bai
+        if (OUTPUT == null) {
+
+            final String baseFileName;
+            if (inputUrl != null) {
+                final String path = inputUrl.getPath();
+                final int lastSlash = path.lastIndexOf("/");
+                baseFileName = path.substring(lastSlash + 1, path.length());
+            } else {
+                baseFileName = inputFile.getAbsolutePath();
+            }
+
+            if (baseFileName.endsWith(BamFileIoUtils.BAM_FILE_EXTENSION)) {
+
+                final int index = baseFileName.lastIndexOf(".");
+                OUTPUT = new File(baseFileName.substring(0, index) + BAMIndex.BAMIndexSuffix);
+
+            } else {
+                OUTPUT = new File(baseFileName + BAMIndex.BAMIndexSuffix);
+            }
+        }
+
+        IOUtil.assertFileIsWritable(OUTPUT);
+        final SamReader bam;
+
+        if (inputUrl != null) {
+            // remote input
+            bam = SamReaderFactory.makeDefault().referenceSequence(REFERENCE_SEQUENCE)
+                    .disable(SamReaderFactory.Option.EAGERLY_DECODE)
+                    .enable(SamReaderFactory.Option.INCLUDE_SOURCE_IN_RECORDS)
+                    .open(SamInputResource.of(inputUrl));
+        } else {
+            // input from a normal file
+            IOUtil.assertFileIsReadable(inputFile);
+            bam = SamReaderFactory.makeDefault().referenceSequence(REFERENCE_SEQUENCE)
+                    .enable(SamReaderFactory.Option.INCLUDE_SOURCE_IN_RECORDS)
+                    .open(inputFile);
+        }
+
+        if (bam.type() != SamReader.Type.BAM_TYPE) {
+            throw new SAMException("Input file must be bam file, not sam file.");
+        }
+
+        if (!bam.getFileHeader().getSortOrder().equals(SAMFileHeader.SortOrder.coordinate)) {
+            throw new SAMException("Input bam file must be sorted by coordinates");
+        }
+
+        BAMIndexer.createIndex(bam, OUTPUT);
+
+        log.info("Successfully wrote bam index file " + OUTPUT);
+        CloserUtil.close(bam);
+        return 0;
+    }
+}
diff --git a/src/java/picard/sam/CalculateReadGroupChecksum.java b/src/java/picard/sam/CalculateReadGroupChecksum.java
new file mode 100644
index 0000000..cbc53bb
--- /dev/null
+++ b/src/java/picard/sam/CalculateReadGroupChecksum.java
@@ -0,0 +1,64 @@
+package picard.sam;
+
+import htsjdk.samtools.SAMUtils;
+import htsjdk.samtools.util.IOUtil;
+import picard.PicardException;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.SamOrBam;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+
+ at CommandLineProgramProperties(
+        usage = "Creates a hash code based on identifying information in the RG (read group) " +
+                "records in a SAM file's header. This hash code changes any time read groups are added or removed " +
+                "comparing one file's hash code to another tells you if the read groups in the BAM files are different.",
+        usageShort = "Creates a hash code based on the read groups (RG) in the SAM or BAM header.",
+        programGroup = SamOrBam.class
+)
+public class CalculateReadGroupChecksum extends CommandLineProgram {
+
+    private static final String OUTPUT_FILE_EXTENSION = ".read_group_md5";
+
+    @Option(shortName = StandardOptionDefinitions.INPUT_SHORT_NAME, doc = "The input SAM or BAM file. ")
+    public File INPUT;
+
+    @Option(shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc = "The file to which the hash code should be written.", optional = true)
+    public File OUTPUT;
+
+    public static void main(final String[] args) {
+        new CalculateReadGroupChecksum().instanceMainWithExit(args);
+    }
+
+    /**
+     * Creates a file name (not including the path) for an RG MD5 file based on the name of the input file.
+     */
+    public static String getOutputFileName(final File inputFile) {
+        return inputFile.getName() + OUTPUT_FILE_EXTENSION;
+    }
+
+    @Override
+    protected int doWork() {
+        final File output =
+                OUTPUT == null
+                        ? new File(INPUT.getParentFile(), getOutputFileName(INPUT))
+                        : OUTPUT;
+
+        IOUtil.assertFileIsWritable(output);
+        final String hashText = SAMUtils.calculateReadGroupRecordChecksum(INPUT, REFERENCE_SEQUENCE);
+
+        try {
+            final FileWriter outputWriter = new FileWriter(output);
+            outputWriter.write(hashText);
+            outputWriter.close();
+        } catch (final IOException ioe) {
+            throw new PicardException(
+                    "Could not write the computed hash (" + hashText + ") to the output file: " + ioe.getMessage(), ioe);
+        }
+        return 0;
+    }
+}
\ No newline at end of file
diff --git a/src/java/picard/sam/CheckTerminatorBlock.java b/src/java/picard/sam/CheckTerminatorBlock.java
new file mode 100644
index 0000000..41ffd92
--- /dev/null
+++ b/src/java/picard/sam/CheckTerminatorBlock.java
@@ -0,0 +1,50 @@
+package picard.sam;
+
+import picard.PicardException;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.BlockCompressedInputStream;
+import htsjdk.samtools.util.BlockCompressedInputStream.FileTermination;
+import picard.cmdline.programgroups.SamOrBam;
+
+import java.io.File;
+import java.io.IOException;
+
+/**
+ * Simple class to check the terminator block of a SAM file.
+ */
+ at CommandLineProgramProperties(
+        usage = CheckTerminatorBlock.USAGE,
+        usageShort = CheckTerminatorBlock.USAGE,
+        programGroup = SamOrBam.class
+)
+public class CheckTerminatorBlock extends CommandLineProgram {
+    static final String USAGE = "Asserts the provided gzip file's (e.g., BAM) last block is well-formed; RC 100 otherwise";
+    
+    @Option(shortName= StandardOptionDefinitions.INPUT_SHORT_NAME, doc="The block compressed file to check.")
+    public File INPUT;
+
+    public static void main(final String[] args) {
+        new CheckTerminatorBlock().instanceMainWithExit(args);
+    }
+
+    @Override protected int doWork() {
+        IOUtil.assertFileIsReadable(INPUT);
+        try {
+            final FileTermination term = BlockCompressedInputStream.checkTermination(INPUT);
+            System.err.println(term.name());
+            if (term == FileTermination.DEFECTIVE) {
+                return 100;
+            }
+            else {
+                return 0;
+            }
+        }
+        catch (IOException ioe) {
+            throw new PicardException("Exception reading terminator block of file: " + INPUT.getAbsolutePath());
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/java/picard/sam/CleanSam.java b/src/java/picard/sam/CleanSam.java
new file mode 100644
index 0000000..9cd8451
--- /dev/null
+++ b/src/java/picard/sam/CleanSam.java
@@ -0,0 +1,107 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2010 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.sam;
+
+import htsjdk.samtools.SAMFileWriter;
+import htsjdk.samtools.SAMFileWriterFactory;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.ValidationStringency;
+import htsjdk.samtools.util.CloseableIterator;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.ProgressLogger;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.SamOrBam;
+
+import java.io.File;
+
+/**
+ * @author alecw at broadinstitute.org
+ */
+ at CommandLineProgramProperties(
+        usage = CleanSam.USAGE,
+        usageShort = CleanSam.USAGE,
+        programGroup = SamOrBam.class
+)
+public class CleanSam extends CommandLineProgram {
+
+    static final String USAGE = "Cleans the provided SAM/BAM, soft-clipping beyond-end-of-reference alignments and setting MAPQ to 0 for unmapped reads";
+    
+    @Option(shortName = StandardOptionDefinitions.INPUT_SHORT_NAME, doc = "Input SAM to be cleaned.")
+    public File INPUT;
+
+    @Option(shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc = "Where to write cleaned SAM.")
+    public File OUTPUT;
+
+    public static void main(final String[] argv) {
+        new CleanSam().instanceMainWithExit(argv);
+    }
+
+    /**
+     * Do the work after command line has been parsed.
+     * RuntimeException may be thrown by this method, and are reported appropriately.
+     *
+     * @return program exit status.
+     */
+    @Override
+    protected int doWork() {
+        IOUtil.assertFileIsReadable(INPUT);
+        IOUtil.assertFileIsWritable(OUTPUT);
+        final SamReaderFactory factory = SamReaderFactory.makeDefault().referenceSequence(REFERENCE_SEQUENCE);
+        if (VALIDATION_STRINGENCY == ValidationStringency.STRICT) {
+            factory.validationStringency(ValidationStringency.LENIENT);
+        }
+        final SamReader reader = factory.open(INPUT);
+        final SAMFileWriter writer = new SAMFileWriterFactory().makeSAMOrBAMWriter(reader.getFileHeader(), true, OUTPUT);
+        final CloseableIterator<SAMRecord> it = reader.iterator();
+        final ProgressLogger progress = new ProgressLogger(Log.getInstance(CleanSam.class));
+
+        // If the read (or its mate) maps off the end of the alignment, clip it
+        while (it.hasNext()) {
+            final SAMRecord rec = it.next();
+
+            // If the read (or its mate) maps off the end of the alignment, clip it
+            AbstractAlignmentMerger.createNewCigarsIfMapsOffEndOfReference(rec);
+
+            // check the read's mapping quality
+            if (rec.getReadUnmappedFlag() && 0 != rec.getMappingQuality()) {
+                rec.setMappingQuality(0);
+            }
+
+            writer.addAlignment(rec);
+            progress.record(rec);
+        }
+
+        writer.close();
+        it.close();
+        CloserUtil.close(reader);
+        return 0;
+    }
+}
diff --git a/src/java/picard/sam/CompareSAMs.java b/src/java/picard/sam/CompareSAMs.java
new file mode 100644
index 0000000..38d9d86
--- /dev/null
+++ b/src/java/picard/sam/CompareSAMs.java
@@ -0,0 +1,528 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.sam;
+
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMProgramRecord;
+import htsjdk.samtools.SAMReadGroupRecord;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SAMSequenceRecord;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.SecondaryOrSupplementarySkippingIterator;
+import htsjdk.samtools.util.CloserUtil;
+import picard.PicardException;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.PositionalArguments;
+import picard.cmdline.programgroups.SamOrBam;
+
+import java.io.File;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Rudimentary SAM comparer.  Compares headers, and if headers are compatible enough, compares SAMRecords,
+ * looking only at basic alignment info.  Summarizes the number of alignments that match, mismatch, are missing, etc.
+ *
+ * @author alecw at broadinstitute.org
+ */
+ at CommandLineProgramProperties(
+        usage = "USAGE: CompareSAMS <SAMFile1> <SAMFile2>\n" +
+                "Compares the headers of the two input SAM or BAM files, and, if possible, the SAMRecords. " +
+                "For SAMRecords, compares only the readUnmapped flag, reference name, start position and strand. " +
+                "Reports the number of SAMRecords that match, differ in alignment, are mapped in only one input, " +
+                "or are missing in one of the files",
+        usageShort = "Compares two input SAM or BAM files",
+        programGroup = SamOrBam.class
+)
+public class CompareSAMs extends CommandLineProgram {
+
+    @PositionalArguments(minElements = 2, maxElements = 2)
+    public List<File> samFiles;
+
+    private final SamReader[] samReaders = new SamReader[2];
+    private boolean sequenceDictionariesDiffer;
+    private int mappingsMatch = 0;
+    private int unmappedBoth = 0;
+    private int unmappedLeft = 0;
+    private int unmappedRight = 0;
+    private int mappingsDiffer = 0;
+    private int missingLeft = 0;
+    private int missingRight = 0;
+    private boolean areEqual;
+
+    public static void main(String[] argv) {
+        new CompareSAMs().instanceMainWithExit(argv);
+    }
+
+    /**
+     * Do the work after command line has been parsed. RuntimeException may be
+     * thrown by this method, and are reported appropriately.
+     *
+     * @return program exit status.
+     */
+    @Override
+    protected int doWork() {
+        for (int i = 0; i < samFiles.size(); ++i) {
+            samReaders[i] = SamReaderFactory.makeDefault().referenceSequence(REFERENCE_SEQUENCE).open(samFiles.get(i));
+        }
+        areEqual = compareHeaders();
+        areEqual = compareAlignments() && areEqual;
+        printReport();
+        if (!areEqual) {
+            System.out.println("SAM files differ.");
+        } else {
+            System.out.println("SAM files match.");
+        }
+        CloserUtil.close(samReaders);
+        return 0;
+    }
+
+    private void printReport() {
+        System.out.println("Match\t" + mappingsMatch);
+        System.out.println("Differ\t" + mappingsDiffer);
+        System.out.println("Unmapped_both\t" + unmappedBoth);
+        System.out.println("Unmapped_left\t" + unmappedLeft);
+        System.out.println("Unmapped_right\t" + unmappedRight);
+        System.out.println("Missing_left\t" + missingLeft);
+        System.out.println("Missing_right\t" + missingRight);
+    }
+
+    private boolean compareAlignments() {
+        if (!compareValues(samReaders[0].getFileHeader().getSortOrder(), samReaders[1].getFileHeader().getSortOrder(),
+                "Sort Order")) {
+            System.out.println("Cannot compare alignments if sort orders differ.");
+            return false;
+        }
+        switch (samReaders[0].getFileHeader().getSortOrder()) {
+            case coordinate:
+                if (sequenceDictionariesDiffer) {
+                    System.out.println("Cannot compare coordinate-sorted SAM files because sequence dictionaries differ.");
+                    return false;
+                }
+                return compareCoordinateSortedAlignments();
+            case queryname:
+                return compareQueryNameSortedAlignments();
+            case duplicate:
+            case unsorted:
+                return compareUnsortedAlignments();
+            default:
+                // unreachable
+                return false;
+        }
+    }
+
+    private boolean compareCoordinateSortedAlignments() {
+        final SecondaryOrSupplementarySkippingIterator itLeft =
+                new SecondaryOrSupplementarySkippingIterator(samReaders[0].iterator());
+        final SecondaryOrSupplementarySkippingIterator itRight =
+                new SecondaryOrSupplementarySkippingIterator(samReaders[1].iterator());
+
+        // Save any reads which haven't been matched during in-order scan.
+        final Map<String, SAMRecord> leftUnmatched = new HashMap<String, SAMRecord>();
+        final Map<String, SAMRecord> rightUnmatched = new HashMap<String, SAMRecord>();
+
+        boolean ret = true;
+
+        while (itLeft.hasCurrent()) {
+            if (!itRight.hasCurrent()) {
+                // Exhausted right side.  See if any of the remaining left reads match
+                // any of the saved right reads.
+                for (; itLeft.hasCurrent(); itLeft.advance()) {
+                    final SAMRecord left = itLeft.getCurrent();
+                    final SAMRecord right = rightUnmatched.remove(left.getReadName());
+                    if (right == null) {
+                        ++missingRight;
+                    } else {
+                        tallyAlignmentRecords(left, right);
+                    }
+                }
+                break;
+            }
+            // Don't assume stability of order beyond the coordinate.  Therefore grab all the
+            // reads from the left that has the same coordinate.
+            final SAMRecord left = itLeft.getCurrent();
+            final Map<String, SAMRecord> leftCurrentCoordinate = new HashMap<String, SAMRecord>();
+            leftCurrentCoordinate.put(left.getReadName(), left);
+            while (itLeft.advance()) {
+                final SAMRecord nextLeft = itLeft.getCurrent();
+                if (compareAlignmentCoordinates(left, nextLeft) == 0) {
+                    leftCurrentCoordinate.put(nextLeft.getReadName(), nextLeft);
+                } else {
+                    break;
+                }
+            }
+            // Advance the right iterator until it is >= the left reads that have just been grabbed
+            while (itRight.hasCurrent() && compareAlignmentCoordinates(left, itRight.getCurrent()) > 0) {
+                final SAMRecord right = itRight.getCurrent();
+                rightUnmatched.put(right.getReadName(), right);
+                itRight.advance();
+            }
+            // For each right read that has the same coordinate as the current left reads,
+            // see if there is a matching left read.  If so, process and discard.  If not,
+            // save the right read for later.
+            for (; itRight.hasCurrent() && compareAlignmentCoordinates(left, itRight.getCurrent()) == 0; itRight.advance()) {
+                final SAMRecord right = itRight.getCurrent();
+                final SAMRecord matchingLeft = leftCurrentCoordinate.remove(right.getReadName());
+                if (matchingLeft != null) {
+                    ret = tallyAlignmentRecords(matchingLeft, right) && ret;
+                } else {
+                    rightUnmatched.put(right.getReadName(), right);
+                }
+            }
+
+            // Anything left in leftCurrentCoordinate has not been matched
+            for (final SAMRecord samRecord : leftCurrentCoordinate.values()) {
+                leftUnmatched.put(samRecord.getReadName(), samRecord);
+            }
+        }
+        // The left iterator has been exhausted.  See if any of the remaining right reads
+        // match any of the saved left reads.
+        for (; itRight.hasCurrent(); itRight.advance()) {
+            final SAMRecord right = itRight.getCurrent();
+            final SAMRecord left = leftUnmatched.remove(right.getReadName());
+            if (left != null) {
+                tallyAlignmentRecords(left, right);
+            } else {
+                ++missingLeft;
+            }
+        }
+
+        // Look up reads that were unmatched from left, and see if they are in rightUnmatched.
+        // If found, remove from rightUnmatched and tally.
+        for (final Map.Entry<String, SAMRecord> leftEntry : leftUnmatched.entrySet()) {
+            final String readName = leftEntry.getKey();
+            final SAMRecord left = leftEntry.getValue();
+            final SAMRecord right = rightUnmatched.remove(readName);
+            if (right == null) {
+                ++missingRight;
+                continue;
+            }
+            tallyAlignmentRecords(left, right);
+        }
+
+        // Any elements remaining in rightUnmatched are guaranteed not to be in leftUnmatched.
+        missingLeft += rightUnmatched.size();
+
+        if (ret) {
+            if (missingLeft > 0 || missingRight > 0 || mappingsDiffer > 0 || unmappedLeft > 0 || unmappedRight > 0) {
+                ret = false;
+            }
+        }
+        return ret;
+    }
+
+    private int compareAlignmentCoordinates(final SAMRecord left, final SAMRecord right) {
+        final String leftReferenceName = left.getReferenceName();
+        final String rightReferenceName = right.getReferenceName();
+        if (leftReferenceName == null && rightReferenceName == null) {
+            return 0;
+        } else if (leftReferenceName == null) {
+            return 1;
+        } else if (rightReferenceName == null) {
+            return -1;
+        }
+        final int leftReferenceIndex = samReaders[0].getFileHeader().getSequenceIndex(leftReferenceName);
+        final int rightReferenceIndex = samReaders[0].getFileHeader().getSequenceIndex(rightReferenceName);
+
+        if (leftReferenceIndex != rightReferenceIndex) {
+            return leftReferenceIndex - rightReferenceIndex;
+        }
+        return left.getAlignmentStart() - right.getAlignmentStart();
+    }
+
+    private boolean compareQueryNameSortedAlignments() {
+        final SecondaryOrSupplementarySkippingIterator it1 = new SecondaryOrSupplementarySkippingIterator(samReaders[0].iterator());
+        final SecondaryOrSupplementarySkippingIterator it2 = new SecondaryOrSupplementarySkippingIterator(samReaders[1].iterator());
+
+        boolean ret = true;
+        while (it1.hasCurrent()) {
+            if (!it2.hasCurrent()) {
+                missingRight += countRemaining(it1);
+                return false;
+            }
+            final int cmp = it1.getCurrent().getReadName().compareTo(it2.getCurrent().getReadName());
+            if (cmp < 0) {
+                ++missingRight;
+                it1.advance();
+                ret = false;
+            } else if (cmp > 0) {
+                ++missingLeft;
+                it2.advance();
+                ret = false;
+            } else {
+                if (!tallyAlignmentRecords(it1.getCurrent(), it2.getCurrent())) {
+                    ret = false;
+                }
+                it1.advance();
+                it2.advance();
+            }
+        }
+        if (it2.hasCurrent()) {
+            missingLeft += countRemaining(it2);
+            return false;
+        }
+        return ret;
+    }
+
+    private boolean compareUnsortedAlignments() {
+        final SecondaryOrSupplementarySkippingIterator it1 = new SecondaryOrSupplementarySkippingIterator(samReaders[0].iterator());
+        final SecondaryOrSupplementarySkippingIterator it2 = new SecondaryOrSupplementarySkippingIterator(samReaders[1].iterator());
+        boolean ret = true;
+        for (; it1.hasCurrent(); it1.advance(), it2.advance()) {
+            if (!it2.hasCurrent()) {
+                missingRight += countRemaining(it1);
+                return false;
+            }
+            final SAMRecord s1 = it1.getCurrent();
+            final SAMRecord s2 = it2.getCurrent();
+            if (!compareValues(s1.getReadName(), s2.getReadName(), "Read names")) {
+                System.out.println("Read names cease agreeing in unsorted SAM files .  Comparison aborting.");
+            }
+            ret = tallyAlignmentRecords(s1, s2) && ret;
+        }
+
+        if (it2.hasCurrent()) {
+            missingLeft += countRemaining(it2);
+            return false;
+        }
+        return ret;
+    }
+
+    private int countRemaining(final SecondaryOrSupplementarySkippingIterator it) {
+        int i;
+        for (i = 0; it.hasCurrent(); ++i) {
+            it.advance();
+        }
+        return i;
+    }
+
+    private boolean tallyAlignmentRecords(final SAMRecord s1, final SAMRecord s2) {
+        if (!s1.getReadName().equals(s2.getReadName())) {
+            throw new PicardException("Read names do not match: " + s1.getReadName() + " : " + s2.getReadName());
+        }
+        if (s1.getReadUnmappedFlag() && s2.getReadUnmappedFlag()) {
+            ++unmappedBoth;
+            return true;
+        }
+        if (s1.getReadUnmappedFlag()) {
+            ++unmappedLeft;
+            return false;
+        }
+        if (s2.getReadUnmappedFlag()) {
+            ++unmappedRight;
+            return false;
+        }
+        final boolean ret = (s1.getReferenceName().equals(s2.getReferenceName()) &&
+                s1.getAlignmentStart() == s2.getAlignmentStart() &&
+                s1.getReadNegativeStrandFlag() == s1.getReadNegativeStrandFlag());
+        if (!ret) {
+            ++mappingsDiffer;
+        } else {
+            ++mappingsMatch;
+        }
+        return ret;
+    }
+
+    private boolean compareHeaders() {
+        final SAMFileHeader h1 = samReaders[0].getFileHeader();
+        final SAMFileHeader h2 = samReaders[1].getFileHeader();
+        boolean ret = compareValues(h1.getVersion(), h2.getVersion(), "File format version");
+        ret = compareValues(h1.getCreator(), h2.getCreator(), "File creator") && ret;
+        ret = compareValues(h1.getAttribute("SO"), h2.getAttribute("SO"), "Sort order") && ret;
+        if (!compareSequenceDictionaries(h1, h2)) {
+            ret = false;
+            sequenceDictionariesDiffer = true;
+        }
+        ret = compareReadGroups(h1, h2) && ret;
+        ret = compareProgramRecords(h1, h2) && ret;
+        return ret;
+    }
+
+    private boolean compareProgramRecords(final SAMFileHeader h1, final SAMFileHeader h2) {
+        final List<SAMProgramRecord> l1 = h1.getProgramRecords();
+        final List<SAMProgramRecord> l2 = h2.getProgramRecords();
+        if (!compareValues(l1.size(), l2.size(), "Number of program records")) {
+            return false;
+        }
+        boolean ret = true;
+        for (int i = 0; i < l1.size(); ++i) {
+            ret = compareProgramRecord(l1.get(i), l2.get(i)) && ret;
+        }
+        return ret;
+    }
+
+    private boolean compareProgramRecord(final SAMProgramRecord programRecord1, final SAMProgramRecord programRecord2) {
+        if (programRecord1 == null && programRecord2 == null) {
+            return true;
+        }
+        if (programRecord1 == null) {
+            reportDifference("null", programRecord2.getProgramGroupId(), "Program Record");
+            return false;
+        }
+        if (programRecord2 == null) {
+            reportDifference(programRecord1.getProgramGroupId(), "null", "Program Record");
+            return false;
+        }
+        boolean ret = compareValues(programRecord1.getProgramGroupId(), programRecord2.getProgramGroupId(),
+                "Program Name");
+        final String[] attributes = {"VN", "CL"};
+        for (final String attribute : attributes) {
+            ret = compareValues(programRecord1.getAttribute(attribute), programRecord2.getAttribute(attribute),
+                    attribute + " Program Record attribute") && ret;
+        }
+        return ret;
+    }
+
+    private boolean compareReadGroups(final SAMFileHeader h1, final SAMFileHeader h2) {
+        final List<SAMReadGroupRecord> l1 = h1.getReadGroups();
+        final List<SAMReadGroupRecord> l2 = h2.getReadGroups();
+        if (!compareValues(l1.size(), l2.size(), "Number of read groups")) {
+            return false;
+        }
+        boolean ret = true;
+        for (int i = 0; i < l1.size(); ++i) {
+            ret = compareReadGroup(l1.get(i), l2.get(i)) && ret;
+        }
+        return ret;
+    }
+
+    private boolean compareReadGroup(final SAMReadGroupRecord samReadGroupRecord1, final SAMReadGroupRecord samReadGroupRecord2) {
+        boolean ret = compareValues(samReadGroupRecord1.getReadGroupId(), samReadGroupRecord2.getReadGroupId(),
+                "Read Group ID");
+        ret = compareValues(samReadGroupRecord1.getSample(), samReadGroupRecord2.getSample(),
+                "Sample for read group " + samReadGroupRecord1.getReadGroupId()) && ret;
+        ret = compareValues(samReadGroupRecord1.getLibrary(), samReadGroupRecord2.getLibrary(),
+                "Library for read group " + samReadGroupRecord1.getReadGroupId()) && ret;
+        final String[] attributes = {"DS", "PU", "PI", "CN", "DT", "PL"};
+        for (final String attribute : attributes) {
+            ret = compareValues(samReadGroupRecord1.getAttribute(attribute), samReadGroupRecord2.getAttribute(attribute),
+                    attribute + " for read group " + samReadGroupRecord1.getReadGroupId()) && ret;
+        }
+        return ret;
+    }
+
+    private boolean compareSequenceDictionaries(final SAMFileHeader h1, final SAMFileHeader h2) {
+        final List<SAMSequenceRecord> s1 = h1.getSequenceDictionary().getSequences();
+        final List<SAMSequenceRecord> s2 = h2.getSequenceDictionary().getSequences();
+        if (s1.size() != s2.size()) {
+            reportDifference(s1.size(), s2.size(), "Length of sequence dictionaries");
+            return false;
+        }
+        boolean ret = true;
+        for (int i = 0; i < s1.size(); ++i) {
+            ret = compareSequenceRecord(s1.get(i), s2.get(i), i + 1) && ret;
+        }
+        return ret;
+    }
+
+    private boolean compareSequenceRecord(final SAMSequenceRecord sequenceRecord1, final SAMSequenceRecord sequenceRecord2, final int which) {
+        if (!sequenceRecord1.getSequenceName().equals(sequenceRecord2.getSequenceName())) {
+            reportDifference(sequenceRecord1.getSequenceName(), sequenceRecord2.getSequenceName(),
+                    "Name of sequence record " + which);
+            return false;
+        }
+        boolean ret = compareValues(sequenceRecord1.getSequenceLength(), sequenceRecord2.getSequenceLength(), "Length of sequence " +
+                sequenceRecord1.getSequenceName());
+        ret = compareValues(sequenceRecord1.getSpecies(), sequenceRecord2.getSpecies(), "Species of sequence " +
+                sequenceRecord1.getSequenceName()) && ret;
+        ret = compareValues(sequenceRecord1.getAssembly(), sequenceRecord2.getAssembly(), "Assembly of sequence " +
+                sequenceRecord1.getSequenceName()) && ret;
+        ret = compareValues(sequenceRecord1.getAttribute("M5"), sequenceRecord2.getAttribute("M5"), "MD5 of sequence " +
+                sequenceRecord1.getSequenceName()) && ret;
+        ret = compareValues(sequenceRecord1.getAttribute("UR"), sequenceRecord2.getAttribute("UR"), "URI of sequence " +
+                sequenceRecord1.getSequenceName()) && ret;
+        return ret;
+    }
+
+    private <T> boolean compareValues(final T v1, final T v2, final String label) {
+        if (v1 == null) {
+            if (v2 == null) {
+                return true;
+            }
+            reportDifference(v1, v2, label);
+            return false;
+        }
+        if (v2 == null) {
+            reportDifference(v1, v2, label);
+            return false;
+        }
+        if (!v1.equals(v2)) {
+            reportDifference(v1, v2, label);
+            return false;
+        }
+        return true;
+    }
+
+    private void reportDifference(final String s1, final String s2, final String label) {
+        System.out.println(label + " differs.");
+        System.out.println(samFiles.get(0) + ": " + s1);
+        System.out.println(samFiles.get(1) + ": " + s2);
+    }
+
+    private void reportDifference(Object o1, Object o2, final String label) {
+        if (o1 == null) {
+            o1 = "null";
+        }
+        if (o2 == null) {
+            o2 = "null";
+        }
+        reportDifference(o1.toString(), o2.toString(), label);
+    }
+
+    public int getMappingsMatch() {
+        return mappingsMatch;
+    }
+
+    public int getUnmappedBoth() {
+        return unmappedBoth;
+    }
+
+    public int getUnmappedLeft() {
+        return unmappedLeft;
+    }
+
+    public int getUnmappedRight() {
+        return unmappedRight;
+    }
+
+    public int getMappingsDiffer() {
+        return mappingsDiffer;
+    }
+
+    public int getMissingLeft() {
+        return missingLeft;
+    }
+
+    public int getMissingRight() {
+        return missingRight;
+    }
+
+    public boolean areEqual() {
+        return areEqual;
+    }
+
+}
diff --git a/src/java/picard/sam/CreateSequenceDictionary.java b/src/java/picard/sam/CreateSequenceDictionary.java
new file mode 100644
index 0000000..c9f98bf
--- /dev/null
+++ b/src/java/picard/sam/CreateSequenceDictionary.java
@@ -0,0 +1,185 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.sam;
+
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMFileWriter;
+import htsjdk.samtools.SAMFileWriterFactory;
+import htsjdk.samtools.SAMSequenceDictionary;
+import htsjdk.samtools.SAMSequenceRecord;
+import htsjdk.samtools.reference.ReferenceSequence;
+import htsjdk.samtools.reference.ReferenceSequenceFile;
+import htsjdk.samtools.reference.ReferenceSequenceFileFactory;
+import htsjdk.samtools.util.StringUtil;
+import picard.PicardException;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.programgroups.Fasta;
+import picard.cmdline.StandardOptionDefinitions;
+
+import java.io.File;
+import java.math.BigInteger;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Create a SAM/BAM file from a fasta containing reference sequence.  The output SAM file contains a header but no
+ * SAMRecords, and the header contains only sequence records.
+ */
+ at CommandLineProgramProperties(
+        usage = "Read fasta or fasta.gz containing reference sequences, and write as a SAM or BAM file with only sequence dictionary.\n",
+        usageShort = "Creates a SAM or BAM file from reference sequence in fasta format",
+        programGroup = Fasta.class
+)
+public class CreateSequenceDictionary extends CommandLineProgram {
+
+    // The following attributes define the command-line arguments
+
+    @Option(doc = "Input reference fasta or fasta.gz", shortName = StandardOptionDefinitions.REFERENCE_SHORT_NAME)
+    public File REFERENCE;
+
+    @Option(doc = "Output SAM or BAM file containing only the sequence dictionary",
+            shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME)
+    public File OUTPUT;
+
+    @Option(doc = "Put into AS field of sequence dictionary entry if supplied", optional = true)
+    public String GENOME_ASSEMBLY;
+
+    @Option(doc = "Put into UR field of sequence dictionary entry.  If not supplied, input reference file is used",
+            optional = true)
+    public String URI;
+
+    @Option(doc = "Put into SP field of sequence dictionary entry", optional = true)
+    public String SPECIES;
+
+    @Option(doc = "Make sequence name the first word from the > line in the fasta file.  " +
+            "By default the entire contents of the > line is used, excluding leading and trailing whitespace.")
+    public boolean TRUNCATE_NAMES_AT_WHITESPACE = true;
+
+    @Option(doc = "Stop after writing this many sequences.  For testing.")
+    public int NUM_SEQUENCES = Integer.MAX_VALUE;
+
+    private final MessageDigest md5;
+
+    public CreateSequenceDictionary() {
+        try {
+            md5 = MessageDigest.getInstance("MD5");
+        } catch (NoSuchAlgorithmException e) {
+            throw new PicardException("MD5 algorithm not found", e);
+        }
+    }
+
+    public static void main(final String[] argv) {
+        System.exit(new CreateSequenceDictionary().instanceMain(argv));
+    }
+
+    /**
+     * Use reference filename to create URI to go into header if URI was not passed on cmd line.
+     */
+    protected String[] customCommandLineValidation() {
+        if (URI == null) {
+            URI = "file:" + REFERENCE.getAbsolutePath();
+        }
+        return null;
+    }
+
+    /**
+     * Do the work after command line has been parsed.
+     * RuntimeException may be thrown by this method, and are reported appropriately.
+     *
+     * @return program exit status.
+     */
+    protected int doWork() {
+        if (OUTPUT.exists()) {
+            throw new PicardException(OUTPUT.getAbsolutePath() +
+                    " already exists.  Delete this file and try again, or specify a different output file.");
+        }
+        final SAMSequenceDictionary sequences = makeSequenceDictionary(REFERENCE);
+        final SAMFileHeader samHeader = new SAMFileHeader();
+        samHeader.setSequenceDictionary(sequences);
+        final SAMFileWriter samWriter = new SAMFileWriterFactory().makeSAMWriter(samHeader, false, OUTPUT);
+        samWriter.close();
+        return 0;
+    }
+
+    /**
+     * Read all the sequences from the given reference file, and convert into SAMSequenceRecords
+     * @param referenceFile fasta or fasta.gz
+     * @return SAMSequenceRecords containing info from the fasta, plus from cmd-line arguments.
+     */
+    public SAMSequenceDictionary makeSequenceDictionary(final File referenceFile) {
+        final ReferenceSequenceFile refSeqFile =
+                ReferenceSequenceFileFactory.getReferenceSequenceFile(referenceFile, TRUNCATE_NAMES_AT_WHITESPACE);
+        ReferenceSequence refSeq;
+        final List<SAMSequenceRecord> ret = new ArrayList<SAMSequenceRecord>();
+        final Set<String> sequenceNames = new HashSet<String>();
+        for (int numSequences = 0; numSequences < NUM_SEQUENCES && (refSeq = refSeqFile.nextSequence()) != null; ++numSequences) {
+            if (sequenceNames.contains(refSeq.getName())) {
+                throw new PicardException("Sequence name appears more than once in reference: " + refSeq.getName());
+            }
+            sequenceNames.add(refSeq.getName());
+            ret.add(makeSequenceRecord(refSeq));
+        }
+        return new SAMSequenceDictionary(ret);
+    }
+
+    /**
+     * Create one SAMSequenceRecord from a single fasta sequence
+     */
+    private SAMSequenceRecord makeSequenceRecord(final ReferenceSequence refSeq) {
+        final SAMSequenceRecord ret = new SAMSequenceRecord(refSeq.getName(), refSeq.length());
+
+        // Compute MD5 of upcased bases
+        final byte[] bases = refSeq.getBases();
+        for (int i = 0; i < bases.length; ++i) {
+                bases[i] = StringUtil.toUpperCase(bases[i]);
+            }
+
+        ret.setAttribute(SAMSequenceRecord.MD5_TAG, md5Hash(bases));
+        if (GENOME_ASSEMBLY != null) {
+            ret.setAttribute(SAMSequenceRecord.ASSEMBLY_TAG, GENOME_ASSEMBLY);
+        }
+        ret.setAttribute(SAMSequenceRecord.URI_TAG, URI);
+        if (SPECIES != null) {
+                ret.setAttribute(SAMSequenceRecord.SPECIES_TAG, SPECIES);
+            }
+        return ret;
+    }
+
+    private String md5Hash(final byte[] bytes) {
+        md5.reset();
+        md5.update(bytes);
+        String s = new BigInteger(1, md5.digest()).toString(16);
+        if (s.length() != 32) {
+            final String zeros = "00000000000000000000000000000000";
+            s = zeros.substring(0, 32 - s.length()) + s;
+        }
+        return s;
+    }
+}
diff --git a/src/java/picard/sam/DownsampleSam.java b/src/java/picard/sam/DownsampleSam.java
new file mode 100644
index 0000000..6675c0a
--- /dev/null
+++ b/src/java/picard/sam/DownsampleSam.java
@@ -0,0 +1,77 @@
+package picard.sam;
+
+import htsjdk.samtools.SAMFileWriter;
+import htsjdk.samtools.SAMFileWriterFactory;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.DownsamplingIterator;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.ProgressLogger;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.SamOrBam;
+
+import java.io.File;
+import java.util.Random;
+
+/**
+ * Class to randomly downsample a BAM file while respecting that we should either get rid
+ * of both ends of a pair or neither end of the pair!
+ */
+ at CommandLineProgramProperties(
+        usage = "Randomly down-sample a SAM or BAM file to retain " +
+                "a random subset of the reads. Mate-pairs are either both kept or both discarded. Reads marked as not primary " +
+                "alignments are all discarded. Each read is given a probability P of being retained - results with the exact " +
+                "same input in the same order and with the same value for RANDOM_SEED will produce the same results.",
+        usageShort = "Down-sample a SAM or BAM file to retain a random subset of the reads",
+        programGroup = SamOrBam.class
+)
+public class DownsampleSam extends CommandLineProgram {
+
+    @Option(shortName = StandardOptionDefinitions.INPUT_SHORT_NAME, doc = "The input SAM or BAM file to downsample.")
+    public File INPUT;
+
+    @Option(shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc = "The output, downsampled, SAM or BAM file to write.")
+    public File OUTPUT;
+
+    @Option(shortName = "R", doc = "Random seed to use if reproducibilty is desired.  " +
+            "Setting to null will cause multiple invocations to produce different results.")
+    public Long RANDOM_SEED = 1L;
+
+    @Option(shortName = "P", doc = "The probability of keeping any individual read, between 0 and 1.")
+    public double PROBABILITY = 1;
+
+    private final Log log = Log.getInstance(DownsampleSam.class);
+
+    public static void main(final String[] args) {
+        new DownsampleSam().instanceMainWithExit(args);
+    }
+
+    @Override
+    protected int doWork() {
+        IOUtil.assertFileIsReadable(INPUT);
+        IOUtil.assertFileIsWritable(OUTPUT);
+
+        final Random r = RANDOM_SEED == null ? new Random() : new Random(RANDOM_SEED);
+        final SamReader in = SamReaderFactory.makeDefault().referenceSequence(REFERENCE_SEQUENCE).open(INPUT);
+        final SAMFileWriter out = new SAMFileWriterFactory().makeSAMOrBAMWriter(in.getFileHeader(), true, OUTPUT);
+        final ProgressLogger progress = new ProgressLogger(log, (int) 1e7, "Wrote");
+        final DownsamplingIterator iterator = new DownsamplingIterator(in.iterator(), r, PROBABILITY);
+
+        for (final SAMRecord rec : iterator) {
+            out.addAlignment(rec);
+            progress.record(rec);
+        }
+
+        out.close();
+        CloserUtil.close(in);
+        log.info("Finished! Kept " + iterator.getKeptReads() + " out of " + iterator.getTotalReads() + " reads.");
+
+        return 0;
+    }
+}
diff --git a/src/java/picard/sam/DuplicationMetrics.java b/src/java/picard/sam/DuplicationMetrics.java
new file mode 100644
index 0000000..2523c12
--- /dev/null
+++ b/src/java/picard/sam/DuplicationMetrics.java
@@ -0,0 +1,203 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.sam;
+
+import htsjdk.samtools.metrics.MetricBase;
+import htsjdk.samtools.util.Histogram;
+
+/**
+ * Metrics that are calculated during the process of marking duplicates
+ * within a stream of SAMRecords.
+ */
+public class DuplicationMetrics extends MetricBase {
+    /** The library on which the duplicate marking was performed. */
+    public String LIBRARY;
+
+    /**
+     * The number of mapped reads examined which did not have a mapped mate pair,
+     * either because the read is unpaired, or the read is paired to an unmapped mate.
+     */
+    public long UNPAIRED_READS_EXAMINED;
+
+    /** The number of mapped read pairs examined. */
+    public long READ_PAIRS_EXAMINED;
+
+    /** The total number of unmapped reads examined. */
+    public long UNMAPPED_READS;
+
+    /** The number of fragments that were marked as duplicates. */
+    public long UNPAIRED_READ_DUPLICATES;
+
+    /** The number of read pairs that were marked as duplicates. */
+    public long READ_PAIR_DUPLICATES;
+
+    /**
+     * The number of read pairs duplicates that were caused by optical duplication.
+     * Value is always < READ_PAIR_DUPLICATES, which counts all duplicates regardless of source.
+     */
+    public long READ_PAIR_OPTICAL_DUPLICATES;
+
+    /** The percentage of mapped sequence that is marked as duplicate. */
+    public Double PERCENT_DUPLICATION;
+
+    /** The estimated number of unique molecules in the library based on PE duplication. */
+    public Long ESTIMATED_LIBRARY_SIZE;
+
+    /**
+     * Fills in the ESTIMATED_LIBRARY_SIZE based on the paired read data examined where
+     * possible and the PERCENT_DUPLICATION.
+     */
+    public void calculateDerivedMetrics() {
+        this.ESTIMATED_LIBRARY_SIZE = estimateLibrarySize(this.READ_PAIRS_EXAMINED - this.READ_PAIR_OPTICAL_DUPLICATES,
+                                                          this.READ_PAIRS_EXAMINED - this.READ_PAIR_DUPLICATES);
+
+        PERCENT_DUPLICATION = (UNPAIRED_READ_DUPLICATES + READ_PAIR_DUPLICATES *2) /(double) (UNPAIRED_READS_EXAMINED + READ_PAIRS_EXAMINED *2);
+    }
+
+    /**
+     * Estimates the size of a library based on the number of paired end molecules observed
+     * and the number of unique pairs ovserved.
+     *
+     * Based on the Lander-Waterman equation that states:
+     *     C/X = 1 - exp( -N/X )
+     * where
+     *     X = number of distinct molecules in library
+     *     N = number of read pairs
+     *     C = number of distinct fragments observed in read pairs
+     */
+    public static Long estimateLibrarySize(final long readPairs, final long uniqueReadPairs) {
+        final long readPairDuplicates = readPairs - uniqueReadPairs;
+
+        if (readPairs > 0 && readPairDuplicates > 0) {
+            long n = readPairs;
+            long c = uniqueReadPairs;
+
+            double m = 1.0, M = 100.0;
+
+            if (c >= n || f(m*c, c, n) < 0) {
+                throw new IllegalStateException("Invalid values for pairs and unique pairs: "
+                        + n + ", " + c);
+
+            }
+
+            while( f(M*c, c, n) >= 0 ) M *= 10.0;
+
+            for (int i=0; i<40; i++ ) {
+                double r = (m+M)/2.0;
+                double u = f( r * c, c, n );
+                if ( u == 0 ) break;
+                else if ( u > 0 ) m = r;
+                else if ( u < 0 ) M = r;
+            }
+
+            return (long) (c * (m+M)/2.0);
+        }
+        else {
+            return null;
+        }
+    }
+
+    /** Method that is used in the computation of estimated library size. */
+    private static double f(double x, double c, double n) {
+        return c/x - 1 + Math.exp(-n/x);
+    }
+
+    /**
+     * Estimates the ROI (return on investment) that one would see if a library was sequenced to
+     * x higher coverage than the observed coverage.
+     *
+     * @param estimatedLibrarySize the estimated number of molecules in the library
+     * @param x the multiple of sequencing to be simulated (i.e. how many X sequencing)
+     * @param pairs the number of pairs observed in the actual sequencing
+     * @param uniquePairs the number of unique pairs observed in the actual sequencing
+     * @return a number z <= x that estimates if you had pairs*x as your sequencing then you
+     *         would observe uniquePairs*z unique pairs.
+     */
+    public static double estimateRoi(long estimatedLibrarySize, double x, long pairs, long uniquePairs) {
+        return estimatedLibrarySize * ( 1 - Math.exp(-(x*pairs)/estimatedLibrarySize) ) / uniquePairs;
+    }
+
+    /**
+     * Calculates a histogram using the estimateRoi method to estimate the effective yield
+     * doing x sequencing for x=1..10.
+     */
+    public Histogram<Double> calculateRoiHistogram() {
+        if (ESTIMATED_LIBRARY_SIZE == null) {
+            try {
+                calculateDerivedMetrics();
+                if (ESTIMATED_LIBRARY_SIZE == null) return null;
+            }
+            catch (IllegalStateException ise) { return null; }
+        }
+
+        long uniquePairs = READ_PAIRS_EXAMINED - READ_PAIR_DUPLICATES;
+        Histogram<Double> histo = new Histogram<Double>();
+
+        for (double x=1; x<=100; x+=1) {
+            histo.increment(x, estimateRoi(ESTIMATED_LIBRARY_SIZE, x, READ_PAIRS_EXAMINED, uniquePairs));
+        }
+
+        return histo;
+    }
+
+    // Main method used for debugging the derived metrics
+    // Usage = DuplicationMetrics READ_PAIRS READ_PAIR_DUPLICATES
+    public static void main(String[] args) {
+        DuplicationMetrics m = new DuplicationMetrics();
+        m.READ_PAIRS_EXAMINED  = Integer.parseInt(args[0]);
+        m.READ_PAIR_DUPLICATES = Integer.parseInt(args[1]);
+        m.calculateDerivedMetrics();
+        System.out.println("Percent Duplication: " + m.PERCENT_DUPLICATION);
+        System.out.println("Est. Library Size  : " + m.ESTIMATED_LIBRARY_SIZE);
+        System.out.println();
+
+        System.out.println("X Seq\tX Unique");
+        for (Histogram<Double>.Bin bin : m.calculateRoiHistogram().values()) {
+            System.out.println(bin.getId() + "\t" + bin.getValue());
+        }
+
+//        DuplicationMetrics m = new DuplicationMetrics();
+//        m.READ_PAIRS_EXAMINED  = Long.parseLong(args[0]);
+//        m.READ_PAIR_DUPLICATES = Long.parseLong(args[1]);
+//        final long UNIQUE_READ_PAIRS = m.READ_PAIRS_EXAMINED - m.READ_PAIR_DUPLICATES;
+//        final double xCoverage = Double.parseDouble(args[2]);
+//        final double uniqueXCoverage = xCoverage * ((double) UNIQUE_READ_PAIRS / (double) m.READ_PAIRS_EXAMINED);
+//        final double oneOverCoverage = 1 / xCoverage;
+//
+//        m.calculateDerivedMetrics();
+//        System.out.println("Percent Duplication: " + m.PERCENT_DUPLICATION);
+//        System.out.println("Est. Library Size  : " + m.ESTIMATED_LIBRARY_SIZE);
+//        System.out.println();
+//
+//
+//        System.out.println("Coverage\tUnique Coverage\tDuplication");
+//        for (double d = oneOverCoverage; (int) (d*xCoverage)<=50; d+=oneOverCoverage) {
+//            double coverage = d * xCoverage;
+//            double uniqueCoverage = uniqueXCoverage * m.estimateRoi(m.ESTIMATED_LIBRARY_SIZE, d, m.READ_PAIRS_EXAMINED, UNIQUE_READ_PAIRS);
+//            double duplication = (coverage - uniqueCoverage) / coverage;
+//            System.out.println(coverage + "\t" + uniqueCoverage + "\t" + duplication);
+//        }
+    }
+}
diff --git a/src/java/picard/sam/EarliestFragmentPrimaryAlignmentSelectionStrategy.java b/src/java/picard/sam/EarliestFragmentPrimaryAlignmentSelectionStrategy.java
new file mode 100644
index 0000000..e68fcd1
--- /dev/null
+++ b/src/java/picard/sam/EarliestFragmentPrimaryAlignmentSelectionStrategy.java
@@ -0,0 +1,93 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2012 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.sam;
+
+import htsjdk.samtools.AlignmentBlock;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.util.CoordMath;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Random;
+
+/**
+ * When it is necessary to pick a primary alignment from a group of alignments for a read, pick the one that maps
+ * the earliest base in the read. This implementation only works for fragments, not for pairs.
+ * If there are multiple alignments that all start mapping at the same offest in the read, pick the one with the best
+ * MAPQ.  If there are multiple alignments that have the earliest mapping and that have the same MAPQ, pick one randomly.
+ */
+public class EarliestFragmentPrimaryAlignmentSelectionStrategy implements PrimaryAlignmentSelectionStrategy {
+    // Give random number generator a seed so results are repeatable.  Used to pick a primary alignment from
+    // multiple alignments with equal mapping quality.
+    private final Random random = new Random(1);
+
+    public void pickPrimaryAlignment(final HitsForInsert hitsForInsert) {
+
+        if (hitsForInsert.numHits() == 0) throw new IllegalArgumentException("No alignments to pick from");
+
+        // Gather the earliest alignment(s) with best MAPQ
+        final List<Integer> earliestAlignments = new ArrayList<Integer>();
+        int earliestMappedBase = Integer.MAX_VALUE;
+        int bestMapQ = -1;
+        for (int i = 0; i < hitsForInsert.numHits(); ++i) {
+            final SAMRecord rec = hitsForInsert.getFragment(i);
+            if (rec.getReadUnmappedFlag()) continue;
+            final int thisFirstMappedBase = getIndexOfFirstAlignedBase(rec);
+            final int thisMapQ = rec.getMappingQuality();
+            if (thisFirstMappedBase < earliestMappedBase ||
+                    (thisFirstMappedBase == earliestMappedBase && thisMapQ > bestMapQ)) {
+                earliestAlignments.clear();
+                earliestAlignments.add(i);
+                earliestMappedBase = thisFirstMappedBase;
+                bestMapQ = thisMapQ;
+            } else if (thisFirstMappedBase == earliestMappedBase && thisMapQ == bestMapQ) {
+                earliestAlignments.add(i);
+            } // else it is not the earliest or the best so skip it.
+        }
+
+
+        if (earliestAlignments.size() == 1) {
+            // If only one best, pick it.
+            hitsForInsert.setPrimaryAlignment(earliestAlignments.get(0));
+        } else {
+            // Arbitrarily select one of the best
+            hitsForInsert.setPrimaryAlignment(earliestAlignments.get(random.nextInt(earliestAlignments.size())));
+        }
+    }
+
+    /**
+     * Returns 1-based index of first base in read that corresponds to M in CIGAR string.
+     * Note that first is relative to 5' end, so that for reverse-strand alignment, the index of
+     * the last base aligned is computed relative to the end of the read.
+     */
+    int getIndexOfFirstAlignedBase(final SAMRecord rec) {
+        final List<AlignmentBlock> alignmentBlocks = rec.getAlignmentBlocks();
+        if (rec.getReadNegativeStrandFlag()) {
+            final AlignmentBlock alignmentBlock = alignmentBlocks.get(alignmentBlocks.size() - 1);
+            return rec.getReadLength() - CoordMath.getEnd(alignmentBlock.getReadStart(), alignmentBlock.getLength()) + 1;
+        } else {
+            return alignmentBlocks.get(0).getReadStart();
+        }
+    }
+}
diff --git a/src/java/picard/sam/FastqToSam.java b/src/java/picard/sam/FastqToSam.java
new file mode 100644
index 0000000..9aa68fc
--- /dev/null
+++ b/src/java/picard/sam/FastqToSam.java
@@ -0,0 +1,499 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.sam;
+
+import htsjdk.samtools.ReservedTagConstants;
+import htsjdk.samtools.SAMException;
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMFileHeader.SortOrder;
+import htsjdk.samtools.SAMFileWriter;
+import htsjdk.samtools.SAMFileWriterFactory;
+import htsjdk.samtools.SAMReadGroupRecord;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SAMUtils;
+import htsjdk.samtools.fastq.FastqConstants;
+import htsjdk.samtools.fastq.FastqConstants.FastqExtensions;
+import htsjdk.samtools.fastq.FastqReader;
+import htsjdk.samtools.fastq.FastqRecord;
+import htsjdk.samtools.util.FastqQualityFormat;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Iso8601Date;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.ProgressLogger;
+import htsjdk.samtools.util.QualityEncodingDetector;
+import htsjdk.samtools.util.SolexaQualityConverter;
+import htsjdk.samtools.util.StringUtil;
+import picard.PicardException;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.SamOrBam;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Converts a fastq file to an unaligned BAM/SAM format.
+ * See <a href="http://maq.sourceforge.net/fastq.shtml">MAQ FastQ specification</a> for details.
+ * Three fastq versions are supported: FastqSanger, FastqSolexa and FastqIllumina.
+ * Input files can be in GZip format (end in .gz).
+ */
+ at CommandLineProgramProperties(
+        usage = "Extracts read sequences and qualities from the input fastq file and writes them into the output file in unaligned BAM format."
+                + " Input files can be in GZip format (end in .gz).\n",
+        usageShort = "Converts a fastq file to an unaligned BAM or SAM file",
+        programGroup = SamOrBam.class
+)
+public class FastqToSam extends CommandLineProgram {
+    private static final Log LOG = Log.getInstance(FastqToSam.class);
+
+    @Option(shortName="F1", doc="Input fastq file (optionally gzipped) for single end data, or first read in paired end data.")
+    public File FASTQ;
+
+    @Option(shortName="F2", doc="Input fastq file (optionally gzipped) for the second read of paired end data.", optional=true)
+    public File FASTQ2;
+    
+    @Option(doc="Use sequential fastq files with the suffix <prefix>_###.fastq or <prefix>_###.fastq.gz", optional=true)
+    public boolean USE_SEQUENTIAL_FASTQS = false;
+
+    @Option(shortName="V", doc="A value describing how the quality values are encoded in the fastq.  Either Solexa for pre-pipeline 1.3 " +
+            "style scores (solexa scaling + 66), Illumina for pipeline 1.3 and above (phred scaling + 64) or Standard for phred scaled " +
+            "scores with a character shift of 33.  If this value is not specified, the quality format will be detected automatically.", optional = true)
+    public FastqQualityFormat QUALITY_FORMAT;
+
+    @Option(doc="Output SAM/BAM file. ", shortName=StandardOptionDefinitions.OUTPUT_SHORT_NAME) 
+    public File OUTPUT ;
+
+    @Option(shortName="RG", doc="Read group name")
+    public String READ_GROUP_NAME = "A";
+
+    @Option(shortName="SM", doc="Sample name to insert into the read group header")
+    public String SAMPLE_NAME;
+
+    @Option(shortName="LB", doc="The library name to place into the LB attribute in the read group header", optional=true)
+    public String LIBRARY_NAME;
+
+    @Option(shortName="PU", doc="The platform unit (often run_barcode.lane) to insert into the read group header", optional=true)
+    public String PLATFORM_UNIT;
+
+    @Option(shortName="PL", doc="The platform type (e.g. illumina, solid) to insert into the read group header", optional=true)
+    public String PLATFORM;
+
+    @Option(shortName="CN", doc="The sequencing center from which the data originated", optional=true)
+    public String SEQUENCING_CENTER;
+
+    @Option(shortName = "PI", doc = "Predicted median insert size, to insert into the read group header", optional = true)
+    public Integer PREDICTED_INSERT_SIZE;
+
+    @Option(shortName = "PG", doc = "Program group to insert into the read group header.", optional=true)
+    public String PROGRAM_GROUP;
+
+    @Option(shortName = "PM", doc = "Platform model to insert into the group header (free-form text providing further details of the platform/technology used)", optional=true)
+    public String PLATFORM_MODEL;
+
+    @Option(doc="Comment(s) to include in the merged output file's header.", optional=true, shortName="CO")
+    public List<String> COMMENT = new ArrayList<String>();
+
+    @Option(shortName = "DS", doc = "Inserted into the read group header", optional = true)
+    public String DESCRIPTION;
+
+    @Option(shortName = "DT", doc = "Date the run was produced, to insert into the read group header", optional = true)
+    public Iso8601Date RUN_DATE;
+
+    @Option(shortName="SO", doc="The sort order for the output sam/bam file.")
+    public SortOrder SORT_ORDER = SortOrder.queryname;
+
+    @Option(doc="Minimum quality allowed in the input fastq.  An exception will be thrown if a quality is less than this value.")
+    public int MIN_Q = 0;
+
+    @Option(doc="Maximum quality allowed in the input fastq.  An exception will be thrown if a quality is greater than this value.")
+    public int MAX_Q = SAMUtils.MAX_PHRED_SCORE;
+
+    @Option(doc="If true and this is an unpaired fastq any occurance of '/1' will be removed from the end of a read name.")
+    public Boolean STRIP_UNPAIRED_MATE_NUMBER = false;
+
+    @Option(doc="Allow (and ignore) empty lines")
+    public Boolean ALLOW_AND_IGNORE_EMPTY_LINES = false;
+
+    private static final SolexaQualityConverter solexaQualityConverter = SolexaQualityConverter.getSingleton();
+
+    /**
+     * Looks at fastq input(s) and attempts to determine the proper quality format
+     *
+     * Closes the reader(s) by side effect
+     *
+     * @param reader1 The first fastq input
+     * @param reader2 The second fastq input, if necessary. To not use this input, set it to null
+     * @param expectedQuality If provided, will be used for sanity checking. If left null, autodetection will occur
+     */
+    public static FastqQualityFormat determineQualityFormat(final FastqReader reader1, final FastqReader reader2, final FastqQualityFormat expectedQuality) {
+        final QualityEncodingDetector detector = new QualityEncodingDetector();
+
+        if (reader2 == null) {
+            detector.add(QualityEncodingDetector.DEFAULT_MAX_RECORDS_TO_ITERATE, reader1);
+        } else {
+            detector.add(QualityEncodingDetector.DEFAULT_MAX_RECORDS_TO_ITERATE, reader1, reader2);
+            reader2.close();
+        }
+
+        reader1.close();
+
+        final FastqQualityFormat qualityFormat =  detector.generateBestGuess(QualityEncodingDetector.FileContext.FASTQ, expectedQuality);
+        if (detector.isDeterminationAmbiguous()) {
+            LOG.warn("Making ambiguous determination about fastq's quality encoding; more than one format possible based on observed qualities.");
+        }
+        LOG.info(String.format("Auto-detected quality format as: %s.", qualityFormat));
+
+        return qualityFormat;
+    }
+
+    /** Stock main method. */
+    public static void main(final String[] argv) {
+        System.exit(new FastqToSam().instanceMain(argv));
+    }
+
+    /**
+     * Get a list of FASTQs that are sequentially numbered based on the first (base) fastq.
+     * The files should be named:
+     *   <prefix>_001.<extension>, <prefix>_002.<extension>, ..., <prefix>_XYZ.<extension>
+     * The base files should be:
+     *   <prefix>_001.<extension>
+     * An example would be:
+     *   RUNNAME_S8_L005_R1_001.fastq
+     *   RUNNAME_S8_L005_R1_002.fastq
+     *   RUNNAME_S8_L005_R1_003.fastq
+     *   RUNNAME_S8_L005_R1_004.fastq
+     * where `baseFastq` is the first in that list.
+     */
+    protected static List<File> getSequentialFileList(final File baseFastq) {
+        final List<File> files = new ArrayList<File>();
+        files.add(baseFastq);
+
+        // Find the correct extension used in the base FASTQ
+        FastqExtensions fastqExtensions = null;
+        String suffix = null; // store the suffix including the extension
+        for (final FastqExtensions ext : FastqExtensions.values()) {
+            suffix = "_001" + ext.getExtension();
+            if (baseFastq.getAbsolutePath().endsWith(suffix)) {
+                fastqExtensions = ext;
+                break;
+            }
+        }
+        if (null == fastqExtensions) {
+            throw new PicardException(String.format("Could not parse the FASTQ extension (expected '_001' + '%s'): %s", FastqExtensions.values().toString(), baseFastq));
+        }
+        
+        // Find all the files
+        for (int idx = 2; true; idx++) {
+            String fastq = baseFastq.getAbsolutePath();
+            fastq = String.format("%s_%03d%s", fastq.substring(0, fastq.length() - suffix.length()), idx, fastqExtensions.getExtension());
+            try {
+                IOUtil.assertFileIsReadable(new File(fastq));
+            } catch (final SAMException e) { // the file is not readable, so do not continue
+                break;
+            }
+            files.add(new File(fastq));
+        }
+        
+        return files;
+    }
+
+    /* Simply invokes the right method for unpaired or paired data. */
+    protected int doWork() {
+        IOUtil.assertFileIsReadable(FASTQ);
+        if (FASTQ2 != null) {
+            IOUtil.assertFileIsReadable(FASTQ2);
+        }
+        IOUtil.assertFileIsWritable(OUTPUT);
+
+        final SAMFileHeader header = createSamFileHeader();
+        final SAMFileWriter writer = new SAMFileWriterFactory().makeSAMOrBAMWriter(header, false, OUTPUT);
+
+        // Set the quality format
+        QUALITY_FORMAT = FastqToSam.determineQualityFormat(fileToFastqReader(FASTQ),
+                (FASTQ2 == null) ? null : fileToFastqReader(FASTQ2),
+                QUALITY_FORMAT);
+        
+        // Lists for sequential files, but also used when not sequential
+        final List<FastqReader> readers1 = new ArrayList<FastqReader>();
+        final List<FastqReader> readers2 = new ArrayList<FastqReader>();
+
+        if (USE_SEQUENTIAL_FASTQS) {
+            // Get all the files
+            for (final File fastq : getSequentialFileList(FASTQ)) {
+                readers1.add(fileToFastqReader(fastq));
+            }
+            if (null != FASTQ2) {
+                for (final File fastq : getSequentialFileList(FASTQ2)) {
+                    readers2.add(fileToFastqReader(fastq));
+                }
+                if (readers1.size() != readers2.size()) {
+                    throw new PicardException(String.format("Found %d files for FASTQ and %d files for FASTQ2.", readers1.size(), readers2.size()));
+                }
+            }
+        }
+        else {
+            readers1.add(fileToFastqReader(FASTQ));
+            if (FASTQ2 != null) {
+                readers2.add(fileToFastqReader(FASTQ2));
+            }
+        }
+
+        // Loop through the FASTQs
+        for (int idx = 0; idx < readers1.size(); idx++) {
+            makeItSo(readers1.get(idx),
+                    (readers2.isEmpty()) ? null : readers2.get(idx),
+                    writer);
+        }
+
+        // Close all the things
+        for (final FastqReader reader : readers1) reader.close();
+        for (final FastqReader reader : readers2) reader.close();
+        writer.close();
+
+        return 0;
+    }
+
+    /**
+     * Handles the FastqToSam execution on the FastqReader(s).
+     *
+     * In some circumstances it might be useful to circumvent the command line based instantiation of this
+     * class, however note that there is no handholding or guardrails to running in this manner.
+     *
+     * It is the caller's responsibility to close the reader(s)
+     *
+     * @param reader1 The FastqReader for the first fastq file
+     * @param reader2 The second FastqReader if applicable. Pass in null if only using a single reader
+     * @param writer The SAMFileWriter where the new SAM file is written
+     *
+     */
+    public void makeItSo(final FastqReader reader1, final FastqReader reader2, final SAMFileWriter writer) {
+        final int readCount = (reader2 == null) ?  doUnpaired(reader1, writer) : doPaired(reader1, reader2, writer);
+        LOG.info("Processed " + readCount + " fastq reads");
+    }
+
+    /** Creates a simple SAM file from a single fastq file. */
+    protected int doUnpaired(final FastqReader freader, final SAMFileWriter writer) {
+        int readCount = 0;
+        final ProgressLogger progress = new ProgressLogger(LOG);
+        for ( ; freader.hasNext()  ; readCount++) {
+            final FastqRecord frec = freader.next();
+            final SAMRecord srec = createSamRecord(writer.getFileHeader(), getReadName(frec.getReadHeader(), false) , frec, false) ;
+            srec.setReadPairedFlag(false);
+            writer.addAlignment(srec);
+            progress.record(srec);
+        }
+
+        return readCount;
+    }
+
+    /** More complicated method that takes two fastq files and builds pairing information in the SAM. */
+    protected int doPaired(final FastqReader freader1, final FastqReader freader2, final SAMFileWriter writer) {
+        int readCount = 0;
+        final ProgressLogger progress = new ProgressLogger(LOG);
+        for ( ; freader1.hasNext() && freader2.hasNext() ; readCount++) {
+            final FastqRecord frec1 = freader1.next();
+            final FastqRecord frec2 = freader2.next();
+
+            final String frec1Name = getReadName(frec1.getReadHeader(), true);
+            final String frec2Name = getReadName(frec2.getReadHeader(), true);
+            final String baseName = getBaseName(frec1Name, frec2Name, freader1, freader2);
+
+            final SAMRecord srec1 = createSamRecord(writer.getFileHeader(), baseName, frec1, true) ;
+            srec1.setFirstOfPairFlag(true);
+            srec1.setSecondOfPairFlag(false);
+            writer.addAlignment(srec1);
+            progress.record(srec1);
+
+            final SAMRecord srec2 = createSamRecord(writer.getFileHeader(), baseName, frec2, true) ;
+            srec2.setFirstOfPairFlag(false);
+            srec2.setSecondOfPairFlag(true);
+            writer.addAlignment(srec2);
+            progress.record(srec2);
+        }
+
+        if (freader1.hasNext() || freader2.hasNext()) {
+            throw new PicardException("Input paired fastq files must be the same length");
+        }
+
+        return readCount;
+    }
+
+    private FastqReader fileToFastqReader(final File file) {
+        return new FastqReader(file, ALLOW_AND_IGNORE_EMPTY_LINES);
+    }
+
+    private SAMRecord createSamRecord(final SAMFileHeader header, final String baseName, final FastqRecord frec, final boolean paired) {
+        final SAMRecord srec = new SAMRecord(header);
+        srec.setReadName(baseName);
+        srec.setReadString(frec.getReadString());
+        srec.setReadUnmappedFlag(true);
+        srec.setAttribute(ReservedTagConstants.READ_GROUP_ID, READ_GROUP_NAME);
+        final byte[] quals = StringUtil.stringToBytes(frec.getBaseQualityString());
+        convertQuality(quals, QUALITY_FORMAT);
+        for (final byte qual : quals) {
+            final int uQual = qual & 0xff;
+            if (uQual < MIN_Q || uQual > MAX_Q) {
+                throw new PicardException("Base quality " + uQual + " is not in the range " + MIN_Q + ".." +
+                MAX_Q + " for read " + frec.getReadHeader());
+            }
+        }
+        srec.setBaseQualities(quals);
+
+        if (paired) {
+            srec.setReadPairedFlag(true);
+            srec.setMateUnmappedFlag(true);
+        }
+        return srec ;
+    }
+
+    /** Creates a simple header with the values provided on the command line. */
+    public SAMFileHeader createSamFileHeader() {
+        final SAMReadGroupRecord rgroup = new SAMReadGroupRecord(this.READ_GROUP_NAME);
+        rgroup.setSample(this.SAMPLE_NAME);
+        if (this.LIBRARY_NAME != null) rgroup.setLibrary(this.LIBRARY_NAME);
+        if (this.PLATFORM != null) rgroup.setPlatform(this.PLATFORM);
+        if (this.PLATFORM_UNIT != null) rgroup.setPlatformUnit(this.PLATFORM_UNIT);
+        if (this.SEQUENCING_CENTER != null) rgroup.setSequencingCenter(SEQUENCING_CENTER);
+        if (this.PREDICTED_INSERT_SIZE != null) rgroup.setPredictedMedianInsertSize(PREDICTED_INSERT_SIZE);
+        if (this.DESCRIPTION != null) rgroup.setDescription(this.DESCRIPTION);
+        if (this.RUN_DATE != null) rgroup.setRunDate(this.RUN_DATE);
+        if (this.PLATFORM_MODEL != null) rgroup.setPlatformModel(this.PLATFORM_MODEL);
+        if (this.PROGRAM_GROUP != null) rgroup.setProgramGroup(this.PROGRAM_GROUP);
+
+        final SAMFileHeader header = new SAMFileHeader();
+        header.addReadGroup(rgroup);
+
+        for (final String comment : COMMENT) {
+            header.addComment(comment);
+        }
+
+        header.setSortOrder(this.SORT_ORDER);
+        return header ;
+    }
+
+    /** Based on the type of quality scores coming in, converts them to a numeric byte[] in phred scale. */
+    void convertQuality(final byte[] quals, final FastqQualityFormat version) {
+        switch (version)  {
+            case Standard:
+                SAMUtils.fastqToPhred(quals);
+                break ;
+            case Solexa:
+                solexaQualityConverter.convertSolexaQualityCharsToPhredBinary(quals);
+                break ;
+            case Illumina:
+                solexaQualityConverter.convertSolexa_1_3_QualityCharsToPhredBinary(quals);
+                break ;
+            }
+    }
+
+    /** Returns read baseName and asserts correct pair read name format:
+     * <ul>
+     * <li> Paired reads must either have the exact same read names or they must contain at least one "/"
+     * <li> and the First pair read name must end with "/1" and second pair read name ends with "/2"
+     * <li> The baseName (read name part before the /) must be the same for both read names
+     * <li> If the read names are exactly the same but end in "/2" or "/1" then an exception will be thrown 
+     * </ul>
+     */
+    String getBaseName(final String readName1, final String readName2, final FastqReader freader1, final FastqReader freader2) {
+        String [] toks = getReadNameTokens(readName1, 1, freader1);
+        final String baseName1 = toks[0] ;
+        final String num1 = toks[1] ;
+
+        toks = getReadNameTokens(readName2, 2, freader2);
+        final String baseName2 = toks[0] ;
+        final String num2 = toks[1];
+
+        if (!baseName1.equals(baseName2)) {
+            throw new PicardException(String.format("In paired mode, read name 1 (%s) does not match read name 2 (%s)", baseName1,baseName2));
+        }
+
+        final boolean num1Blank = StringUtil.isBlank(num1);
+        final boolean num2Blank = StringUtil.isBlank(num2);
+        if (num1Blank || num2Blank) {
+            if(!num1Blank) throw new PicardException(error(freader1,"Pair 1 number is missing (" +readName1+ "). Both pair numbers must be present or neither."));       //num1 != blank and num2   == blank
+            else if(!num2Blank) throw new PicardException(error(freader2, "Pair 2 number is missing (" +readName2+ "). Both pair numbers must be present or neither.")); //num1 == blank and num =2 != blank 
+        } else {
+            if (!num1.equals("1")) throw new PicardException(error(freader1,"Pair 1 number must be 1 ("+readName1+")"));
+            if (!num2.equals("2")) throw new PicardException(error(freader2,"Pair 2 number must be 2 ("+readName2+")"));
+        }
+
+        return baseName1 ;
+    }
+
+    /** Breaks up read name into baseName and number separated by the last / */
+    private String [] getReadNameTokens(final String readName, final int pairNum, final FastqReader freader) {
+        if(readName.equals("")) throw new PicardException(error(freader,"Pair read name "+pairNum+" cannot be empty: "+readName));
+
+        final int idx = readName.lastIndexOf("/");
+        final String result[] = new String[2];
+
+        if (idx == -1) {
+            result[0] = readName;
+            result[1] = null;
+        } else {
+            result[1] = readName.substring(idx+1, readName.length()); // should be a 1 or 2
+            
+            if(!result[1].equals("1") && !result[1].equals("2")) {    //if not a 1 or 2 then names must be identical
+                result[0] = readName;
+                result[1] = null;
+            }
+            else {
+                result[0] = readName.substring(0,idx); // baseName
+            }
+        }
+
+        return result ;
+    }
+
+    /** Little utility to give error messages corresponding to line numbers in the input files. */
+    private String error(final FastqReader freader, final String str) {
+        return str +" at line "+freader.getLineNumber() +" in file "+freader.getFile().getAbsolutePath();
+    }
+
+    // Read names cannot contain blanks
+    private String getReadName(final String fastqHeader, final boolean paired) {
+        final int idx = fastqHeader.indexOf(" ");
+        String readName = (idx == -1) ? fastqHeader : fastqHeader.substring(0,idx);
+
+        // NOTE: the while loop isn't necessarily the most efficient way to handle this but we don't
+        // expect this to ever happen more than once, just trapping pathological cases
+        while (STRIP_UNPAIRED_MATE_NUMBER && !paired && (readName.endsWith("/1") || readName.endsWith("/2"))) {
+            // If this is an unpaired run we want to make sure that "/1" isn't tacked on the end of the read name,
+            // as this can cause problems down the road in MergeBamAlignment
+            readName = readName.substring(0, readName.length() - 2);
+        }
+
+        return readName;
+    }
+
+    @Override
+    protected String[] customCommandLineValidation() {
+        if (MIN_Q < 0) return new String[]{"MIN_Q must be >= 0"};
+        if (MAX_Q > SAMUtils.MAX_PHRED_SCORE) return new String[]{"MAX_Q must be <= " + SAMUtils.MAX_PHRED_SCORE};
+        return null;
+    }
+}
diff --git a/src/java/picard/sam/FilterSamReads.java b/src/java/picard/sam/FilterSamReads.java
new file mode 100644
index 0000000..6d5a44a
--- /dev/null
+++ b/src/java/picard/sam/FilterSamReads.java
@@ -0,0 +1,232 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+/**
+ * $Id$
+ */
+package picard.sam;
+
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMFileWriter;
+import htsjdk.samtools.SAMFileWriterFactory;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.filter.AlignedFilter;
+import htsjdk.samtools.filter.FilteringIterator;
+import htsjdk.samtools.filter.ReadNameFilter;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.ProgressLogger;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.SamOrBam;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.IOException;
+import java.text.DecimalFormat;
+
+/**
+ * From a SAM or BAM file, produce a new SAM or BAM by filtering aligned reads or a list of read
+ * names provided in a file (one readname per line)
+ * <p/>
+ * $Id$
+ */
+ at CommandLineProgramProperties(
+        usage = "Produces a new SAM or BAM file by including or excluding aligned reads " +
+                "or a list of reads names supplied in the READ_LIST_FILE from the INPUT SAM or BAM file.\n",
+        usageShort = "Creates a new SAM or BAM file by including or excluding aligned reads",
+        programGroup = SamOrBam.class
+)
+public class FilterSamReads extends CommandLineProgram {
+
+    private static final Log log = Log.getInstance(FilterSamReads.class);
+
+    private static enum Filter {
+        includeAligned("OUTPUT SAM/BAM will contain aligned reads only. INPUT SAM/BAM must be in queryname SortOrder. (Note that *both* first and second of paired reads must be aligned to be included in the OUTPUT SAM or BAM)"),
+        excludeAligned("OUTPUT SAM/BAM will contain un-mapped reads only. INPUT SAM/BAM must be in queryname SortOrder. (Note that *both* first and second of pair must be aligned to be excluded from the OUTPUT SAM or BAM)"),
+        includeReadList("OUTPUT SAM/BAM will contain reads that are supplied in the READ_LIST_FILE file"),
+        excludeReadList("OUTPUT bam will contain reads that are *not* supplied in the READ_LIST_FILE file");
+
+        private final String description;
+
+        Filter(final String description) {
+            this.description = description;
+        }
+
+        @Override
+        public String toString() {
+            return this.name() + " [" + description + "]";
+        }
+    }
+
+    @Option(doc = "The SAM or BAM file that will be filtered.",
+            optional = false,
+            shortName = StandardOptionDefinitions.INPUT_SHORT_NAME)
+    public File INPUT;
+
+    @Option(doc = "Filter.", optional = false)
+    public Filter FILTER = null;
+
+    @Option(doc = "Read List File containing reads that will be included or excluded from the OUTPUT SAM or BAM file.",
+            optional = true,
+            shortName = "RLF")
+    public File READ_LIST_FILE;
+
+    @Option(
+            doc = "SortOrder of the OUTPUT SAM or BAM file, otherwise use the SortOrder of the INPUT file.",
+            optional = true, shortName = "SO")
+    public SAMFileHeader.SortOrder SORT_ORDER;
+
+    @Option(
+            doc = "Create .reads files (for debugging purposes)",
+            optional = true)
+    public boolean WRITE_READS_FILES = true;
+
+    @Option(doc = "SAM or BAM file to write read excluded results to",
+            optional = false, shortName = "O")
+    public File OUTPUT;
+
+    private void filterReads(final FilteringIterator filteringIterator) {
+
+        // get OUTPUT header from INPUT and overwrite it if necessary
+        final SAMFileHeader fileHeader = SamReaderFactory.makeDefault().referenceSequence(REFERENCE_SEQUENCE).getFileHeader(INPUT);
+        final SAMFileHeader.SortOrder inputSortOrder = fileHeader.getSortOrder();
+        if (SORT_ORDER != null) {
+            fileHeader.setSortOrder(SORT_ORDER);
+        }
+        final boolean presorted = inputSortOrder.equals(fileHeader.getSortOrder());
+        log.info("Filtering [presorted=" + presorted + "] " + INPUT.getName() + " -> OUTPUT=" +
+                OUTPUT.getName() + " [sortorder=" + fileHeader.getSortOrder().name() + "]");
+
+        // create OUTPUT file
+        final SAMFileWriter outputWriter = new SAMFileWriterFactory().makeSAMOrBAMWriter(fileHeader, presorted, OUTPUT);
+
+        final ProgressLogger progress = new ProgressLogger(log, (int) 1e6, "Written");
+
+        while (filteringIterator.hasNext()) {
+            final SAMRecord rec = filteringIterator.next();
+            outputWriter.addAlignment(rec);
+            progress.record(rec);
+        }
+
+        filteringIterator.close();
+        outputWriter.close();
+        log.info(new DecimalFormat("#,###").format(progress.getCount()) + " SAMRecords written to " + OUTPUT.getName());
+    }
+
+    /**
+     * Write out a file of read names for debugging purposes.
+     *
+     * @param samOrBamFile The SAM or BAM file for which we are going to write out a file of its
+     *                     containing read names
+     */
+    private void writeReadsFile(final File samOrBamFile) throws IOException {
+        final SamReader reader = SamReaderFactory.makeDefault().referenceSequence(REFERENCE_SEQUENCE).open(samOrBamFile);
+        final File readsFile =
+                new File(OUTPUT.getParentFile(), IOUtil.basename(samOrBamFile) + ".reads");
+        IOUtil.assertFileIsWritable(readsFile);
+        final BufferedWriter bw = IOUtil.openFileForBufferedWriting(readsFile, false);
+
+        for (final SAMRecord rec : reader) {
+            bw.write(rec.toString() + "\n");
+        }
+
+        bw.close();
+        reader.close();
+        IOUtil.assertFileIsReadable(readsFile);
+    }
+
+    @Override
+    protected int doWork() {
+
+        try {
+            IOUtil.assertFileIsReadable(INPUT);
+            IOUtil.assertFileIsWritable(OUTPUT);
+            if (WRITE_READS_FILES) writeReadsFile(INPUT);
+
+            switch (FILTER) {
+                case includeAligned:
+                    filterReads(new FilteringIterator(SamReaderFactory.makeDefault().referenceSequence(REFERENCE_SEQUENCE).open(INPUT).iterator(),
+                            new AlignedFilter(true), true));
+                    break;
+                case excludeAligned:
+                    filterReads(new FilteringIterator(SamReaderFactory.makeDefault().referenceSequence(REFERENCE_SEQUENCE).open(INPUT).iterator(),
+                            new AlignedFilter(false), true));
+                    break;
+                case includeReadList:
+                    filterReads(new FilteringIterator(SamReaderFactory.makeDefault().referenceSequence(REFERENCE_SEQUENCE).open(INPUT).iterator(),
+                            new ReadNameFilter(READ_LIST_FILE, true)));
+                    break;
+                case excludeReadList:
+                    filterReads(new FilteringIterator(SamReaderFactory.makeDefault().referenceSequence(REFERENCE_SEQUENCE).open(INPUT).iterator(),
+                            new ReadNameFilter(READ_LIST_FILE, false)));
+                    break;
+                default:
+                    throw new UnsupportedOperationException(FILTER.name() + " has not been implemented!");
+            }
+
+            IOUtil.assertFileIsReadable(OUTPUT);
+            if (WRITE_READS_FILES) writeReadsFile(OUTPUT);
+            return 0;
+
+        } catch (Exception e) {
+            if (OUTPUT.exists() && !OUTPUT.delete()) {
+                log.warn("Failed to delete " + OUTPUT.getAbsolutePath());
+            }
+
+            log.error(e, "Failed to filter " + INPUT.getName());
+            return 1;
+        }
+    }
+
+    @Override
+    protected String[] customCommandLineValidation() {
+        if (INPUT.equals(OUTPUT)) {
+            return new String[]{"INPUT file and OUTPUT file must differ!"};
+        }
+
+        if ((FILTER.equals(Filter.includeReadList) ||
+                FILTER.equals(Filter.excludeReadList)) &&
+                READ_LIST_FILE == null) {
+            return new String[]{"A READ_LIST_FILE must be specified when using the " + FILTER.name() + " option"};
+
+        }
+
+        return super.customCommandLineValidation();
+    }
+
+    /**
+     * Stock main method.
+     *
+     * @param args main arguments
+     */
+    public static void main(final String[] args) {
+        System.exit(new FilterSamReads().instanceMain(args));
+    }
+
+}
diff --git a/src/java/picard/sam/FixMateInformation.java b/src/java/picard/sam/FixMateInformation.java
new file mode 100644
index 0000000..fe2c605
--- /dev/null
+++ b/src/java/picard/sam/FixMateInformation.java
@@ -0,0 +1,269 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.sam;
+
+import htsjdk.samtools.BAMRecordCodec;
+import htsjdk.samtools.BamFileIoUtils;
+import htsjdk.samtools.MergingSamRecordIterator;
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMFileHeader.SortOrder;
+import htsjdk.samtools.SAMFileWriter;
+import htsjdk.samtools.SAMFileWriterFactory;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SAMRecordQueryNameComparator;
+import htsjdk.samtools.SamFileHeaderMerger;
+import htsjdk.samtools.SamPairUtil;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.PeekableIterator;
+import htsjdk.samtools.util.ProgressLogger;
+import htsjdk.samtools.util.RuntimeIOException;
+import htsjdk.samtools.util.SortingCollection;
+import picard.PicardException;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.SamOrBam;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * Class to fix mate pair information for all reads in a SAM file.  Will run in fairly limited
+ * memory unless there are lots of mate pairs that are far apart from each other in the file.
+ *
+ * @author Tim Fennell
+ */
+ at CommandLineProgramProperties(
+        usage = "Ensure that all mate-pair information is in sync between each read " +
+                "and its mate pair.  If no OUTPUT file is supplied then the output is written to a temporary file " +
+                "and then copied over the INPUT file.  Reads marked with the secondary alignment flag are written " +
+                "to the output file unchanged.",
+        usageShort = "Ensure that all mate-pair information is in sync between each read and its mate pair",
+        programGroup = SamOrBam.class
+)
+public class FixMateInformation extends CommandLineProgram {
+
+    @Option(shortName = StandardOptionDefinitions.INPUT_SHORT_NAME, doc = "The input file to fix.")
+    public List<File> INPUT;
+
+    @Option(shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME, optional = true,
+            doc = "The output file to write to. If no output file is supplied, the input file is overwritten.")
+    public File OUTPUT;
+
+    @Option(shortName = StandardOptionDefinitions.SORT_ORDER_SHORT_NAME, optional = true,
+            doc = "Optional sort order if the OUTPUT file should be sorted differently than the INPUT file.")
+    public SortOrder SORT_ORDER;
+
+    @Option(doc = "If true, assume that the input file is queryname sorted, even if the header says otherwise.",
+            shortName = StandardOptionDefinitions.ASSUME_SORTED_SHORT_NAME)
+    public boolean ASSUME_SORTED = false;
+
+    @Option(shortName = "MC", optional = true, doc = "Adds the mate CIGAR tag (MC) if true, does not if false.")
+    public Boolean ADD_MATE_CIGAR = true;
+
+    private static final Log log = Log.getInstance(FixMateInformation.class);
+
+    protected SAMFileWriter out;
+
+    public static void main(final String[] args) {
+        new FixMateInformation().instanceMainWithExit(args);
+    }
+
+    protected int doWork() {
+        // Open up the input
+        boolean allQueryNameSorted = true;
+        final List<SamReader> readers = new ArrayList<SamReader>();
+        for (final File f : INPUT) {
+            IOUtil.assertFileIsReadable(f);
+            final SamReader reader = SamReaderFactory.makeDefault().referenceSequence(REFERENCE_SEQUENCE).open(f);
+            readers.add(reader);
+            if (reader.getFileHeader().getSortOrder() != SortOrder.queryname) allQueryNameSorted = false;
+        }
+
+        // Decide where to write the fixed file - into the specified output file
+        // or into a temporary file that will overwrite the INPUT file eventually
+        if (OUTPUT != null) OUTPUT = OUTPUT.getAbsoluteFile();
+        final boolean differentOutputSpecified = OUTPUT != null;
+
+        if (differentOutputSpecified) {
+            IOUtil.assertFileIsWritable(OUTPUT);
+        } else if (INPUT.size() != 1) {
+            throw new PicardException("Must specify either an explicit OUTPUT file or a single INPUT file to be overridden.");
+        } else {
+            final File soleInput = INPUT.get(0).getAbsoluteFile();
+            final File dir = soleInput.getParentFile().getAbsoluteFile();
+            try {
+                IOUtil.assertFileIsWritable(soleInput);
+                IOUtil.assertDirectoryIsWritable(dir);
+                OUTPUT = File.createTempFile(soleInput.getName() + ".being_fixed.", BamFileIoUtils.BAM_FILE_EXTENSION, dir);
+            } catch (final IOException ioe) {
+                throw new RuntimeIOException("Could not create tmp file in " + dir.getAbsolutePath());
+            }
+        }
+
+        // Get the input records merged and sorted by query name as needed
+        final PeekableIterator<SAMRecord> iterator;
+        final SAMFileHeader header;
+
+        {
+            // Deal with merging if necessary
+            final Iterator<SAMRecord> tmp;
+            if (INPUT.size() > 1) {
+                final List<SAMFileHeader> headers = new ArrayList<SAMFileHeader>(readers.size());
+                for (final SamReader reader : readers) {
+                    headers.add(reader.getFileHeader());
+                }
+                final SortOrder sortOrder = (allQueryNameSorted ? SortOrder.queryname : SortOrder.unsorted);
+                final SamFileHeaderMerger merger = new SamFileHeaderMerger(sortOrder, headers, false);
+                tmp = new MergingSamRecordIterator(merger, readers, false);
+                header = merger.getMergedHeader();
+            } else {
+                tmp = readers.get(0).iterator();
+                header = readers.get(0).getFileHeader();
+            }
+
+            // And now deal with re-sorting if necessary
+            if (ASSUME_SORTED || allQueryNameSorted) {
+                iterator = new SamPairUtil.SetMateInfoIterator(new PeekableIterator<SAMRecord>(tmp), ADD_MATE_CIGAR);
+            } else {
+                log.info("Sorting input into queryname order.");
+                final SortingCollection<SAMRecord> sorter = SortingCollection.newInstance(SAMRecord.class,
+                        new BAMRecordCodec(header),
+                        new SAMRecordQueryNameComparator(),
+                        MAX_RECORDS_IN_RAM,
+                        TMP_DIR);
+                while (tmp.hasNext()) {
+                    sorter.add(tmp.next());
+
+                }
+
+                iterator = new SamPairUtil.SetMateInfoIterator(new PeekableIterator<SAMRecord>(sorter.iterator()) {
+                    @Override
+                    public void close() {
+                        super.close();
+                        sorter.cleanup();
+                    }
+                }, ADD_MATE_CIGAR);
+                log.info("Sorting by queryname complete.");
+            }
+
+            // Deal with the various sorting complications
+            final SortOrder outputSortOrder = SORT_ORDER == null ? readers.get(0).getFileHeader().getSortOrder() : SORT_ORDER;
+            log.info("Output will be sorted by " + outputSortOrder);
+            header.setSortOrder(outputSortOrder);
+        }
+
+        if (CREATE_INDEX && header.getSortOrder() != SortOrder.coordinate) {
+            throw new PicardException("Can't CREATE_INDEX unless sort order is coordinate");
+        }
+
+        createSamFileWriter(header);
+
+        log.info("Traversing query name sorted records and fixing up mate pair information.");
+        final ProgressLogger progress = new ProgressLogger(log);
+        while (iterator.hasNext()) {
+            final SAMRecord record = iterator.next();
+            out.addAlignment(record);
+            progress.record(record);
+        }
+        iterator.close();
+
+        if (header.getSortOrder() == SortOrder.queryname) {
+            log.info("Closing output file.");
+        } else {
+            log.info("Finished processing reads; re-sorting output file.");
+        }
+        closeWriter();
+
+        // Lastly if we're fixing in place, swap the files
+        if (!differentOutputSpecified) {
+            log.info("Replacing input file with fixed file.");
+
+            final File soleInput = INPUT.get(0).getAbsoluteFile();
+            final File old = new File(soleInput.getParentFile(), soleInput.getName() + ".old");
+            if (!old.exists() && soleInput.renameTo(old)) {
+                if (OUTPUT.renameTo(soleInput)) {
+
+                    if (!old.delete()) {
+                        log.warn("Could not delete old file: " + old.getAbsolutePath());
+                        return 1;
+                    }
+
+                    if (CREATE_INDEX) {
+                        final File newIndex = new File(OUTPUT.getParent(),
+                                OUTPUT.getName().substring(0, OUTPUT.getName().length() - 4) + ".bai");
+                        final File oldIndex = new File(soleInput.getParent(),
+                                soleInput.getName().substring(0, soleInput.getName().length() - 4) + ".bai");
+
+                        if (!newIndex.renameTo(oldIndex)) {
+                            log.warn("Could not overwrite index file: " + oldIndex.getAbsolutePath());
+                        }
+                    }
+
+                } else {
+                    log.error("Could not move new file to " + soleInput.getAbsolutePath());
+                    log.error("Input file preserved as: " + old.getAbsolutePath());
+                    log.error("New file preserved as: " + OUTPUT.getAbsolutePath());
+                    return 1;
+                }
+            } else {
+                log.error("Could not move input file out of the way: " + soleInput.getAbsolutePath());
+
+                if (!OUTPUT.delete()) {
+                    log.error("Could not delete temporary file: " + OUTPUT.getAbsolutePath());
+                }
+
+                return 1;
+            }
+
+        }
+
+        CloserUtil.close(readers);
+        return 0;
+    }
+
+    protected void createSamFileWriter(final SAMFileHeader header) {
+        out = new SAMFileWriterFactory().makeSAMOrBAMWriter(header,
+                header.getSortOrder() == SortOrder.queryname, OUTPUT);
+
+    }
+
+    protected void writeAlignment(final SAMRecord sam) {
+        out.addAlignment(sam);
+    }
+
+    protected void closeWriter() {
+        out.close();
+    }
+
+}
diff --git a/src/java/picard/sam/GatherBamFiles.java b/src/java/picard/sam/GatherBamFiles.java
new file mode 100644
index 0000000..78722ef
--- /dev/null
+++ b/src/java/picard/sam/GatherBamFiles.java
@@ -0,0 +1,104 @@
+package picard.sam;
+
+import htsjdk.samtools.BamFileIoUtils;
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMFileWriter;
+import htsjdk.samtools.SAMFileWriterFactory;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.SamOrBam;
+
+import java.io.File;
+import java.util.List;
+
+/**
+ * Program to perform a rapid "gather" operation on BAM files after a scatter operations where
+ * the same process has been performed on different regions of a BAM file creating many smaller
+ * BAM files that now need to be concatenated back together.
+ *
+ * @author Tim Fennell
+ */
+ at CommandLineProgramProperties(
+        usage = "Concatenates one or more BAM files together as efficiently as possible. Assumes that the " +
+                "list of BAM files provided as INPUT are in the order that they should be concatenated and simply concatenates the bodies " +
+                "of the BAM files while retaining the header from the first file.  Operates via copying of the gzip blocks directly for speed " +
+                "but also supports generation of an MD5 on the output and indexing of the output BAM file. Only support BAM files, does not " +
+                "support SAM files.",
+        usageShort = "Concatenates one or more BAM files together as efficiently as possible",
+        programGroup = SamOrBam.class
+)
+public class GatherBamFiles extends CommandLineProgram {
+
+    @Option(shortName = StandardOptionDefinitions.INPUT_SHORT_NAME,
+            doc = "One or more BAM files or text files containing lists of BAM files one per line.")
+    public List<File> INPUT;
+
+    @Option(shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc = "The output BAM file to write.")
+    public File OUTPUT;
+
+    private static final Log log = Log.getInstance(GatherBamFiles.class);
+
+    // Stock main method.
+    public static void main(final String[] args) {
+        final GatherBamFiles gatherer = new GatherBamFiles();
+        gatherer.CREATE_INDEX = true;
+        gatherer.instanceMainWithExit(args);
+    }
+
+    @Override
+    protected int doWork() {
+        final List<File> inputs = IOUtil.unrollFiles(INPUT, BamFileIoUtils.BAM_FILE_EXTENSION, ".sam");
+        for (final File f : inputs) IOUtil.assertFileIsReadable(f);
+        IOUtil.assertFileIsWritable(OUTPUT);
+
+        if (determineBlockCopyingStatus(inputs)) {
+            BamFileIoUtils.gatherWithBlockCopying(inputs, OUTPUT, CREATE_INDEX, CREATE_MD5_FILE);
+        } else {
+            gatherNormally(inputs, OUTPUT, CREATE_INDEX, CREATE_MD5_FILE, REFERENCE_SEQUENCE);
+        }
+
+        return 0;
+    }
+
+    private boolean determineBlockCopyingStatus(final List<File> inputs) {
+        boolean useBlockCopying = true;
+        for (final File f : inputs) {
+            if (!BamFileIoUtils.isBamFile(f)) {
+                useBlockCopying = false;
+            }
+        }
+        return useBlockCopying;
+    }
+
+    /**
+     * Simple implementation of a gather operations that uses SAMFileReaders and Writers in order to concatenate
+     * multiple BAM files.
+     */
+    private static void gatherNormally(final List<File> inputs, final File output, final boolean createIndex, final boolean createMd5,
+                                       final File referenceFasta) {
+        final SAMFileHeader header;
+        {
+            header = SamReaderFactory.makeDefault().referenceSequence(referenceFasta).getFileHeader(inputs.get(0));
+        }
+
+        final SAMFileWriter out = new SAMFileWriterFactory().setCreateIndex(createIndex).setCreateMd5File(createMd5).makeSAMOrBAMWriter(header, true, output);
+
+        for (final File f : inputs) {
+            log.info("Gathering " + f.getAbsolutePath());
+            final SamReader in = SamReaderFactory.makeDefault().referenceSequence(referenceFasta).open(f);
+            for (final SAMRecord rec : in) out.addAlignment(rec);
+            CloserUtil.close(in);
+        }
+
+        out.close();
+    }
+
+}
diff --git a/src/java/picard/sam/HitsForInsert.java b/src/java/picard/sam/HitsForInsert.java
new file mode 100644
index 0000000..5ee312c
--- /dev/null
+++ b/src/java/picard/sam/HitsForInsert.java
@@ -0,0 +1,283 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2013 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.sam;
+
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SAMTag;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+
+/**
+ * Holds all the hits (alignments) for a read or read pair.  For single-end reads, all the alignments are
+ * stored in firstOfPairOrFragment list.  For paired-end, alignments are stored in firstOfPairOrFragment list and
+ * secondOfPair list.
+ *
+ * If there is more than one alignment, the selected PrimaryAlignmentSelectionStrategy is used to decide which
+ * alignment should be marked as primary.  The rest are marked as secondary.
+ *
+ * When AbstractAlignmentMerger emits these reads, for paired end reads it assumes that the ith first end alignment
+ * and the ith second end alignment are correlated for the purpose of setting mate information in the SAMRecord.
+ * If it is not appropriate for the ends to be linked like that, then the alignments should be staggered in
+ * the lists so that there is a null in the other end list for each alignment.  E.g. for the firstOfPair(5),
+ * secondOfPair(5) should be null in order not to set the mate info.  In that case the mate info will indicate that
+ * the other end is unmapped.
+ */
+class HitsForInsert {
+
+    private static final HitIndexComparator comparator = new HitIndexComparator();
+
+    public enum NumPrimaryAlignmentState {
+        NONE, ONE, MORE_THAN_ONE
+    }
+
+
+    // These are package-visible to make life easier for the PrimaryAlignmentSelectionStrategies.
+    final List<SAMRecord> firstOfPairOrFragment = new ArrayList<SAMRecord>();
+    final List<SAMRecord> secondOfPair = new ArrayList<SAMRecord>();
+
+    private final List<SAMRecord> supplementalFirstOfPairOrFragment = new ArrayList<SAMRecord>();
+    private final List<SAMRecord> supplementalSecondOfPair = new ArrayList<SAMRecord>();
+
+    /**
+     * @throws if numHits() == 0
+     */
+    public String getReadName() {
+        return getRepresentativeRead().getReadName();
+    }
+
+    /**
+     * @throws if numHits() == 0
+     */
+    public boolean isPaired() {
+        return getRepresentativeRead().getReadPairedFlag();
+    }
+
+    public SAMRecord getRepresentativeRead() {
+        for (final SAMRecord rec : firstOfPairOrFragment) {
+            if (rec != null) return rec;
+        }
+        for (final SAMRecord rec : secondOfPair) {
+            if (rec != null) return rec;
+        }
+        throw new IllegalStateException("Should not be called if numHits == 0");
+    }
+
+    /**
+     * Note that a single alignment for each end of a read pair is counted as a single hit.
+     */
+    public int numHits() {
+        return Math.max(firstOfPairOrFragment.size(), secondOfPair.size());
+    }
+
+    /** True if either the first or second of pair has supplementary alignments, otherwise false. */
+    public boolean hasSupplementalHits() {
+        return !(this.supplementalFirstOfPairOrFragment.isEmpty() && this.supplementalSecondOfPair.isEmpty());
+    }
+
+    /**
+     * @return Returns the ith hit for the first end, or null if the first end is not aligned.
+     */
+    public SAMRecord getFirstOfPair(final int i) {
+        if (i >= firstOfPairOrFragment.size()) {
+            return null;
+        } else {
+            return firstOfPairOrFragment.get(i);
+        }
+    }
+
+    public void addFirstOfPairOrFragment(final SAMRecord rec) {
+        firstOfPairOrFragment.add(rec);
+    }
+
+    public void addSecondOfPair(final SAMRecord rec) {
+        secondOfPair.add(rec);
+    }
+
+    public void addSupplementalFirstOfPairOrFragment(final SAMRecord rec) {
+        supplementalFirstOfPairOrFragment.add(rec);
+    }
+
+    public void addSupplementalSecondOfPair(final SAMRecord rec) {
+        supplementalSecondOfPair.add(rec);
+    }
+
+    /**
+     * @return The ith hit for a un-paired read.  Never returns null.
+     * Do not call if paired read.
+     */
+    public SAMRecord getFragment(final int i) {
+        final SAMRecord samRecord = firstOfPairOrFragment.get(i);
+        if (samRecord.getReadPairedFlag()) throw new UnsupportedOperationException("getFragment called for paired read");
+        return samRecord;
+    }
+
+    /**
+     * @return Returns the ith hit for the second end, or null if the second end is not aligned.
+     */
+    public SAMRecord getSecondOfPair(final int i) {
+        if (i >= secondOfPair.size()) {
+            return null;
+        } else {
+            return secondOfPair.get(i);
+        }
+    }
+
+    /**
+     * Set all alignments to not primary, except for the one specified by the argument.  If paired, and set the
+     * alignment for both ends if there is an alignment for both ends, otherwise just for the end for which
+     * there is an alignment at the given index.
+     * @param primaryAlignmentIndex
+     */
+    public void setPrimaryAlignment(final int primaryAlignmentIndex) {
+        if (primaryAlignmentIndex < 0 || primaryAlignmentIndex >= this.numHits()) {
+            throw new IllegalArgumentException("primaryAlignmentIndex(" + primaryAlignmentIndex +
+                    ") out of range for numHits(" + numHits() + ")");
+        }
+        // Set all alignment to be not primary except the selected one.
+        for (int i = 0; i < this.numHits(); ++i) {
+            final boolean notPrimary = (i != primaryAlignmentIndex);
+            if (this.getFirstOfPair(i) != null) {
+                this.getFirstOfPair(i).setNotPrimaryAlignmentFlag(notPrimary);
+            }
+            if (this.getSecondOfPair(i) != null) {
+                this.getSecondOfPair(i).setNotPrimaryAlignmentFlag(notPrimary);
+            }
+        }
+
+    }
+
+    /**
+     * Some alignment strategies expect to receive alignments for ends that are coordinated by
+     * hit index (HI) tag.  This method lines up alignments for each end by HI tag value, and if there is
+     * no corresponding alignment for an alignment, there is a null in the array at that slot.
+     *
+     * This method then renumbers the HI values so that they start at zero and have no gaps, because some
+     * reads may have been filtered out.
+     */
+    public void coordinateByHitIndex() {
+        // Sort by HI value, with reads with no HI going at the end.
+        Collections.sort(firstOfPairOrFragment, comparator);
+        Collections.sort(secondOfPair, comparator);
+
+        // Insert nulls as necessary in the two lists so that correlated alignments have the same index
+        // and uncorrelated alignments have null in the other list at the corresponding index.
+        for (int i = 0; i < Math.min(firstOfPairOrFragment.size(), secondOfPair.size()); ++i) {
+            final Integer leftHi = firstOfPairOrFragment.get(i).getIntegerAttribute(SAMTag.HI.name());
+            final Integer rightHi = secondOfPair.get(i).getIntegerAttribute(SAMTag.HI.name());
+            if (leftHi != null) {
+                if (rightHi != null) {
+                    if (leftHi < rightHi) secondOfPair.add(i, null);
+                    else if (rightHi < leftHi) firstOfPairOrFragment.add(i, null);
+                    // else the are correlated
+                }
+            } else if (rightHi != null) {
+                firstOfPairOrFragment.add(i, null);
+            } else {
+                // Both alignments do not have HI, so push down the ones on the right.
+                // Right is arbitrarily picked to push down.
+                secondOfPair.add(i, null);
+            }
+        }
+
+        // Now renumber any correlated alignments, and remove hit index if no correlated read.
+        int hi = 0;
+        for (int i = 0; i < numHits(); ++i) {
+            final SAMRecord first = getFirstOfPair(i);
+            final SAMRecord second = getSecondOfPair(i);
+            if (first != null && second != null) {
+                first.setAttribute(SAMTag.HI.name(), i);
+                second.setAttribute(SAMTag.HI.name(), i);
+                ++hi;
+            } else if (first != null) {
+                first.setAttribute(SAMTag.HI.name(), null);
+            } else {
+                second.setAttribute(SAMTag.HI.name(), null);
+            }
+        }
+    }
+
+
+
+    /**
+     * Determine if there is a single primary alignment in a list of alignments.
+     * @param records
+     * @return NONE, ONE or MORE_THAN_ONE.
+     */
+    private NumPrimaryAlignmentState tallyPrimaryAlignments(final List<SAMRecord> records) {
+        boolean seenPrimary = false;
+        for (int i = 0; i < records.size(); ++i) {
+            if (records.get(i) != null && !records.get(i).isSecondaryOrSupplementary()) {
+                if (seenPrimary) return NumPrimaryAlignmentState.MORE_THAN_ONE;
+                else seenPrimary = true;
+            }
+        }
+        if (seenPrimary) return NumPrimaryAlignmentState.ONE;
+        else return NumPrimaryAlignmentState.NONE;
+    }
+
+    public NumPrimaryAlignmentState tallyPrimaryAlignments(final boolean firstEnd) {
+        if (firstEnd) return tallyPrimaryAlignments(firstOfPairOrFragment);
+        else return tallyPrimaryAlignments(secondOfPair);
+    }
+
+    int findPrimaryAlignment(final List<SAMRecord> records) {
+        int indexOfPrimaryAlignment = -1;
+        for (int i = 0; i < records.size(); ++i) {
+            if (records.get(i) != null && !records.get(i).isSecondaryOrSupplementary()) {
+                if (indexOfPrimaryAlignment != -1) {
+                    throw new IllegalStateException("Multiple primary alignments found for read " + getReadName());
+                }
+                indexOfPrimaryAlignment = i;
+            }
+        }
+        return indexOfPrimaryAlignment;
+    }
+
+    // null HI tag sorts after any non-null.
+    private static class HitIndexComparator implements Comparator<SAMRecord> {
+        public int compare(final SAMRecord rec1, final SAMRecord rec2) {
+            final Integer hi1 = rec1.getIntegerAttribute(SAMTag.HI.name());
+            final Integer hi2 = rec2.getIntegerAttribute(SAMTag.HI.name());
+            if (hi1 == null) {
+                if (hi2 == null) return 0;
+                else return 1;
+            } else if (hi2 == null) {
+                return -1;
+            } else {
+                return hi1.compareTo(hi2);
+            }
+        }
+    }
+
+    List<SAMRecord> getSupplementalFirstOfPairOrFragment() {
+        return supplementalFirstOfPairOrFragment;
+    }
+
+    List<SAMRecord> getSupplementalSecondOfPair() {
+        return supplementalSecondOfPair;
+    }
+}
diff --git a/src/java/picard/sam/MergeBamAlignment.java b/src/java/picard/sam/MergeBamAlignment.java
new file mode 100644
index 0000000..38e74a8
--- /dev/null
+++ b/src/java/picard/sam/MergeBamAlignment.java
@@ -0,0 +1,290 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.sam;
+
+import htsjdk.samtools.SAMFileHeader.SortOrder;
+import htsjdk.samtools.SAMProgramRecord;
+import htsjdk.samtools.SamPairUtil;
+import htsjdk.samtools.util.Log;
+import picard.PicardException;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.SamOrBam;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * A command-line tool to merge BAM/SAM alignment info from a third-party aligner with the data in an
+ * unmapped BAM file, producing a third BAM file that has alignment data and all the additional data
+ * from the unmapped BAM
+ *
+ * @author ktibbett at broadinstitute.org
+ */
+ at CommandLineProgramProperties(
+        usage = "Merges alignment data from a SAM or BAM " +
+                "file with additional data stored in an unmapped BAM file and produces a third SAM " +
+                "or BAM file of aligned and unaligned reads. The purpose is to use information from the " +
+                "unmapped BAM to fix up aligner output, so that the resulting file is valid for use by other " +
+                "Picard programs. For simple BAM file merges, use MergeSamFiles. NOTE that MergeBamAlignment expects to " +
+                "find a sequence dictionary in the same directory as REFERENCE_SEQUENCE and expects it " +
+                "to have the same base name as the reference fasta except with the extension '.dict'",
+        usageShort = "Merges alignment data from a SAM or BAM with data in an unmapped BAM file",
+        programGroup = SamOrBam.class
+)
+public class MergeBamAlignment extends CommandLineProgram {
+
+    @Option(shortName = "UNMAPPED",
+            doc = "Original SAM or BAM file of unmapped reads, which must be in queryname order.")
+    public File UNMAPPED_BAM;
+
+    @Option(shortName = "ALIGNED",
+            doc = "SAM or BAM file(s) with alignment data.",
+            mutex = {"READ1_ALIGNED_BAM", "READ2_ALIGNED_BAM"},
+            optional = true)
+    public List<File> ALIGNED_BAM;
+
+    @Option(shortName = "R1_ALIGNED",
+            doc = "SAM or BAM file(s) with alignment data from the first read of a pair.",
+            mutex = {"ALIGNED_BAM"},
+            optional = true)
+    public List<File> READ1_ALIGNED_BAM;
+
+    @Option(shortName = "R2_ALIGNED",
+            doc = "SAM or BAM file(s) with alignment data from the second read of a pair.",
+            mutex = {"ALIGNED_BAM"},
+            optional = true)
+    public List<File> READ2_ALIGNED_BAM;
+
+    @Option(shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME,
+            doc = "Merged SAM or BAM file to write to.")
+    public File OUTPUT;
+
+    @Option(shortName = StandardOptionDefinitions.REFERENCE_SHORT_NAME,
+            doc = "Path to the fasta file for the reference sequence.")
+    public File REFERENCE_SEQUENCE;
+
+    @Option(shortName = StandardOptionDefinitions.PROGRAM_RECORD_ID_SHORT_NAME,
+            doc = "The program group ID of the aligner (if not supplied by the aligned file).",
+            optional = true)
+    public String PROGRAM_RECORD_ID;
+
+    @Option(shortName = "PG_VERSION",
+            doc = "The version of the program group (if not supplied by the aligned file).",
+            optional = true)
+    public String PROGRAM_GROUP_VERSION;
+
+    @Option(shortName = "PG_COMMAND",
+            doc = "The command line of the program group (if not supplied by the aligned file).",
+            optional = true)
+    public String PROGRAM_GROUP_COMMAND_LINE;
+
+    @Option(shortName = "PG_NAME",
+            doc = "The name of the program group (if not supplied by the aligned file).",
+            optional = true)
+    public String PROGRAM_GROUP_NAME;
+
+    @Deprecated
+    @Option(doc = "This argument is ignored and will be removed.", shortName = "PE", optional=true)
+    public Boolean PAIRED_RUN = true;
+
+    @Option(doc = "The expected jump size (required if this is a jumping library). Deprecated. Use EXPECTED_ORIENTATIONS instead",
+            shortName = "JUMP",
+            mutex = "EXPECTED_ORIENTATIONS",
+            optional = true)
+    public Integer JUMP_SIZE;
+
+    @Option(doc = "Whether to clip adapters where identified.")
+    public boolean CLIP_ADAPTERS = true;
+
+    @Option(doc = "Whether the lane is bisulfite sequence (used when caculating the NM tag).")
+    public boolean IS_BISULFITE_SEQUENCE = false;
+
+    @Option(doc = "Whether to output only aligned reads.  ")
+    public boolean ALIGNED_READS_ONLY = false;
+
+    @Option(doc = "The maximum number of insertions or deletions permitted for an alignment to be " +
+            "included. Alignments with more than this many insertions or deletions will be ignored. " +
+            "Set to -1 to allow any number of insertions or deletions.",
+            shortName = "MAX_GAPS")
+    public int MAX_INSERTIONS_OR_DELETIONS = 1;
+
+    @Option(doc = "Reserved alignment attributes (tags starting with X, Y, or Z) that should be " +
+            "brought over from the alignment data when merging.")
+    public List<String> ATTRIBUTES_TO_RETAIN = new ArrayList<String>();
+
+    @Option(doc = "Attributes from the alignment record that should be removed when merging." +
+            "  This overrides ATTRIBUTES_TO_RETAIN if they share common tags.")
+    public List<String> ATTRIBUTES_TO_REMOVE = new ArrayList<String>();
+
+    @Option(shortName = "R1_TRIM",
+            doc = "The number of bases trimmed from the beginning of read 1 prior to alignment")
+    public int READ1_TRIM = 0;
+
+    @Option(shortName = "R2_TRIM",
+            doc = "The number of bases trimmed from the beginning of read 2 prior to alignment")
+    public int READ2_TRIM = 0;
+
+    @Option(shortName = "ORIENTATIONS",
+            doc = "The expected orientation of proper read pairs. Replaces JUMP_SIZE",
+            mutex = "JUMP_SIZE",
+            optional = true)
+    public List<SamPairUtil.PairOrientation> EXPECTED_ORIENTATIONS;
+
+    @Option(doc = "Use the aligner's idea of what a proper pair is rather than computing in this program.")
+    public boolean ALIGNER_PROPER_PAIR_FLAGS = false;
+
+    @Option(shortName = StandardOptionDefinitions.SORT_ORDER_SHORT_NAME,
+            doc = "The order in which the merged reads should be output.")
+    public SortOrder SORT_ORDER = SortOrder.coordinate;
+
+    @Option(doc = "Strategy for selecting primary alignment when the aligner has provided more than one alignment " +
+            "for a pair or fragment, and none are marked as primary, more than one is marked as primary, or the primary " +
+            "alignment is filtered out for some reason. " +
+            "BestMapq expects that multiple alignments will be correlated with HI tag, and prefers the pair of " +
+            "alignments with the largest MAPQ, in the absence of a primary selected by the aligner. " +
+            "EarliestFragment prefers the alignment which maps the earliest base in the read. Note that EarliestFragment " +
+            "may not be used for paired reads. " +
+            "BestEndMapq is appropriate for cases in which the aligner is not pair-aware, and does not output the HI tag. " +
+            "It simply picks the alignment for each end with the highest MAPQ, and makes those alignments primary, regardless " +
+            "of whether the two alignments make sense together." +
+            "MostDistant is also for a non-pair-aware aligner, and picks the alignment pair with the largest insert size. " +
+            "If all alignments would be chimeric, it picks the alignments for each end with the best MAPQ.  For all algorithms, " +
+            "ties are resolved arbitrarily.")
+    public PrimaryAlignmentStrategy PRIMARY_ALIGNMENT_STRATEGY = PrimaryAlignmentStrategy.BestMapq;
+
+    @Option(doc = "For paired reads, soft clip the 3' end of each read if necessary so that it does not extend past the 5' end of its mate.")
+    public boolean CLIP_OVERLAPPING_READS = true;
+
+    @Option(doc = "If false, do not write secondary alignments to output.")
+    public boolean INCLUDE_SECONDARY_ALIGNMENTS = true;
+
+    @Option(shortName = "MC", optional = true, doc = "Adds the mate CIGAR tag (MC) if true, does not if false.")
+    public Boolean ADD_MATE_CIGAR = true;
+
+    private static final Log log = Log.getInstance(MergeBamAlignment.class);
+
+    /**
+     * Mechanism to bridge between command line option and PrimaryAlignmentSelectionStrategy implementation.
+     */
+    enum PrimaryAlignmentStrategy {
+        BestMapq(BestMapqPrimaryAlignmentSelectionStrategy.class),
+        EarliestFragment(EarliestFragmentPrimaryAlignmentSelectionStrategy.class),
+        BestEndMapq(BestEndMapqPrimaryAlignmentStrategy.class),
+        MostDistant(MostDistantPrimaryAlignmentSelectionStrategy.class);
+
+        private final Class<PrimaryAlignmentSelectionStrategy> clazz;
+
+        PrimaryAlignmentStrategy(final Class<?> clazz) {
+            this.clazz = (Class<PrimaryAlignmentSelectionStrategy>) clazz;
+        }
+
+        PrimaryAlignmentSelectionStrategy newInstance() {
+            try {
+                return clazz.newInstance();
+            } catch (Exception e) {
+                throw new PicardException("Trouble instantiating " + clazz.getName(), e);
+            }
+        }
+    }
+
+    /** Required main method implementation. */
+    public static void main(final String[] argv) {
+        System.exit(new MergeBamAlignment().instanceMain(argv));
+    }
+
+    @Override
+    protected int doWork() {
+        // Check the files are readable/writable
+        SAMProgramRecord prod = null;
+        if (PROGRAM_RECORD_ID != null) {
+            prod = new SAMProgramRecord(PROGRAM_RECORD_ID);
+            prod.setProgramVersion(PROGRAM_GROUP_VERSION);
+            prod.setCommandLine(PROGRAM_GROUP_COMMAND_LINE);
+            prod.setProgramName(PROGRAM_GROUP_NAME);
+        }
+        // TEMPORARY FIX until internal programs all specify EXPECTED_ORIENTATIONS
+        if (JUMP_SIZE != null) {
+            EXPECTED_ORIENTATIONS = Arrays.asList(SamPairUtil.PairOrientation.RF);
+        } else if (EXPECTED_ORIENTATIONS == null || EXPECTED_ORIENTATIONS.isEmpty()) {
+            EXPECTED_ORIENTATIONS = Arrays.asList(SamPairUtil.PairOrientation.FR);
+        }
+
+        final SamAlignmentMerger merger = new SamAlignmentMerger(UNMAPPED_BAM, OUTPUT,
+                REFERENCE_SEQUENCE, prod, CLIP_ADAPTERS, IS_BISULFITE_SEQUENCE,
+                ALIGNED_READS_ONLY, ALIGNED_BAM, MAX_INSERTIONS_OR_DELETIONS,
+                ATTRIBUTES_TO_RETAIN, ATTRIBUTES_TO_REMOVE, READ1_TRIM, READ2_TRIM,
+                READ1_ALIGNED_BAM, READ2_ALIGNED_BAM, EXPECTED_ORIENTATIONS, SORT_ORDER,
+                PRIMARY_ALIGNMENT_STRATEGY.newInstance(), ADD_MATE_CIGAR);
+        merger.setClipOverlappingReads(CLIP_OVERLAPPING_READS);
+        merger.setMaxRecordsInRam(MAX_RECORDS_IN_RAM);
+        merger.setKeepAlignerProperPairFlags(ALIGNER_PROPER_PAIR_FLAGS);
+        merger.setIncludeSecondaryAlignments(INCLUDE_SECONDARY_ALIGNMENTS);
+        merger.mergeAlignment(REFERENCE_SEQUENCE);
+        merger.close();
+
+        return 0;
+    }
+
+    /**
+     * Put any custom command-line validation in an override of this method.
+     * clp is initialized at this point and can be used to print usage and access argv.
+     * 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 messages to be written to the appropriate place.
+     */
+    protected String[] customCommandLineValidation() {
+
+        if ((PROGRAM_RECORD_ID != null || PROGRAM_GROUP_VERSION != null ||
+                PROGRAM_GROUP_COMMAND_LINE != null) &&
+                (PROGRAM_RECORD_ID == null || PROGRAM_GROUP_VERSION == null ||
+                        PROGRAM_GROUP_COMMAND_LINE == null)) {
+
+            return new String[]{"PROGRAM_RECORD_ID, PROGRAM_GROUP_VERSION, and " +
+                    "PROGRAM_GROUP_COMMAND_LINE must all be supplied or none should " +
+                    "be included."};
+        }
+
+        final boolean r1sExist = READ1_ALIGNED_BAM != null && READ1_ALIGNED_BAM.size() > 0;
+        final boolean r2sExist = READ2_ALIGNED_BAM != null && READ2_ALIGNED_BAM.size() > 0;
+        if ((r1sExist && !r2sExist) || (r2sExist && !r1sExist)) {
+            return new String[]{"READ1_ALIGNED_BAM and READ2_ALIGNED_BAM " +
+                    "must both be supplied or neither should be included.  For " +
+                    "single-end read use ALIGNED_BAM."};
+        }
+        if (ALIGNED_BAM == null || ALIGNED_BAM.size() == 0 && !(r1sExist && r2sExist)) {
+            return new String[]{"Either ALIGNED_BAM or the combination of " +
+                    "READ1_ALIGNED_BAM and READ2_ALIGNED_BAM must be supplied."};
+
+        }
+
+        return null;
+    }
+
+}
diff --git a/src/java/picard/sam/MergeSamFiles.java b/src/java/picard/sam/MergeSamFiles.java
new file mode 100644
index 0000000..7e95029
--- /dev/null
+++ b/src/java/picard/sam/MergeSamFiles.java
@@ -0,0 +1,176 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.sam;
+
+import htsjdk.samtools.MergingSamRecordIterator;
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMFileWriter;
+import htsjdk.samtools.SAMFileWriterFactory;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SAMSequenceDictionary;
+import htsjdk.samtools.SamFileHeaderMerger;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.ProgressLogger;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.SamOrBam;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Reads a SAM or BAM file and combines the output to one file
+ *
+ * @author Tim Fennell
+ */
+ at CommandLineProgramProperties(
+        usage = "Merges multiple SAM/BAM files into one file.",
+        usageShort = "Merges multiple SAM or BAM files into one file",
+        programGroup = SamOrBam.class
+)
+public class MergeSamFiles extends CommandLineProgram {
+    private static final Log log = Log.getInstance(MergeSamFiles.class);
+
+    @Option(shortName = "I", doc = "SAM or BAM input file", minElements = 1)
+    public List<File> INPUT = new ArrayList<File>();
+
+    @Option(shortName = "O", doc = "SAM or BAM file to write merged result to")
+    public File OUTPUT;
+
+    @Option(shortName = StandardOptionDefinitions.SORT_ORDER_SHORT_NAME, doc = "Sort order of output file", optional = true)
+    public SAMFileHeader.SortOrder SORT_ORDER = SAMFileHeader.SortOrder.coordinate;
+
+    @Option(doc = "If true, assume that the input files are in the same sort order as the requested output sort order, even if their headers say otherwise.",
+            shortName = StandardOptionDefinitions.ASSUME_SORTED_SHORT_NAME)
+    public boolean ASSUME_SORTED = false;
+
+    @Option(shortName = "MSD", doc = "Merge the sequence dictionaries", optional = true)
+    public boolean MERGE_SEQUENCE_DICTIONARIES = false;
+
+    @Option(doc = "Option to create a background thread to encode, " +
+            "compress and write to disk the output file. The threaded version uses about 20% more CPU and decreases " +
+            "runtime by ~20% when writing out a compressed BAM file.")
+    public boolean USE_THREADING = false;
+
+    @Option(doc = "Comment(s) to include in the merged output file's header.", optional = true, shortName = "CO")
+    public List<String> COMMENT = new ArrayList<String>();
+
+    private static final int PROGRESS_INTERVAL = 1000000;
+
+    /** Required main method implementation. */
+    public static void main(final String[] argv) {
+        System.exit(new MergeSamFiles().instanceMain(argv));
+    }
+
+    /** Combines multiple SAM/BAM files into one. */
+    @Override
+    protected int doWork() {
+        boolean matchedSortOrders = true;
+
+        // Open the files for reading and writing
+        final List<SamReader> readers = new ArrayList<SamReader>();
+        final List<SAMFileHeader> headers = new ArrayList<SAMFileHeader>();
+        {
+            SAMSequenceDictionary dict = null; // Used to try and reduce redundant SDs in memory
+
+            for (final File inFile : INPUT) {
+                IOUtil.assertFileIsReadable(inFile);
+                final SamReader in = SamReaderFactory.makeDefault().referenceSequence(REFERENCE_SEQUENCE).open(inFile);
+                readers.add(in);
+                headers.add(in.getFileHeader());
+
+                // A slightly hackish attempt to keep memory consumption down when merging multiple files with
+                // large sequence dictionaries (10,000s of sequences). If the dictionaries are identical, then
+                // replace the duplicate copies with a single dictionary to reduce the memory footprint. 
+                if (dict == null) {
+                    dict = in.getFileHeader().getSequenceDictionary();
+                } else if (dict.equals(in.getFileHeader().getSequenceDictionary())) {
+                    in.getFileHeader().setSequenceDictionary(dict);
+                }
+
+                matchedSortOrders = matchedSortOrders && in.getFileHeader().getSortOrder() == SORT_ORDER;
+            }
+        }
+
+        // If all the input sort orders match the output sort order then just merge them and
+        // write on the fly, otherwise setup to merge and sort before writing out the final file
+        IOUtil.assertFileIsWritable(OUTPUT);
+        final boolean presorted;
+        final SAMFileHeader.SortOrder headerMergerSortOrder;
+        final boolean mergingSamRecordIteratorAssumeSorted;
+
+        if (matchedSortOrders || SORT_ORDER == SAMFileHeader.SortOrder.unsorted || ASSUME_SORTED) {
+            log.info("Input files are in same order as output so sorting to temp directory is not needed.");
+            headerMergerSortOrder = SORT_ORDER;
+            mergingSamRecordIteratorAssumeSorted = ASSUME_SORTED;
+            presorted = true;
+        } else {
+            log.info("Sorting input files using temp directory " + TMP_DIR);
+            headerMergerSortOrder = SAMFileHeader.SortOrder.unsorted;
+            mergingSamRecordIteratorAssumeSorted = false;
+            presorted = false;
+        }
+        final SamFileHeaderMerger headerMerger = new SamFileHeaderMerger(headerMergerSortOrder, headers, MERGE_SEQUENCE_DICTIONARIES);
+        final MergingSamRecordIterator iterator = new MergingSamRecordIterator(headerMerger, readers, mergingSamRecordIteratorAssumeSorted);
+        final SAMFileHeader header = headerMerger.getMergedHeader();
+        for (final String comment : COMMENT) {
+            header.addComment(comment);
+        }
+        header.setSortOrder(SORT_ORDER);
+        final SAMFileWriterFactory samFileWriterFactory = new SAMFileWriterFactory();
+        if (USE_THREADING) {
+            samFileWriterFactory.setUseAsyncIo(true);
+        }
+        final SAMFileWriter out = samFileWriterFactory.makeSAMOrBAMWriter(header, presorted, OUTPUT);
+
+        // Lastly loop through and write out the records
+        final ProgressLogger progress = new ProgressLogger(log, PROGRESS_INTERVAL);
+        while (iterator.hasNext()) {
+            final SAMRecord record = iterator.next();
+            out.addAlignment(record);
+            progress.record(record);
+        }
+
+        log.info("Finished reading inputs.");
+        CloserUtil.close(readers);
+        out.close();
+        return 0;
+    }
+
+    @Override
+    protected String[] customCommandLineValidation() {
+        if (CREATE_INDEX && SORT_ORDER != SAMFileHeader.SortOrder.coordinate) {
+            return new String[]{"Can't CREATE_INDEX unless SORT_ORDER is coordinate"};
+        }
+        return null;
+    }
+
+}
diff --git a/src/java/picard/sam/MostDistantPrimaryAlignmentSelectionStrategy.java b/src/java/picard/sam/MostDistantPrimaryAlignmentSelectionStrategy.java
new file mode 100644
index 0000000..38d8a21
--- /dev/null
+++ b/src/java/picard/sam/MostDistantPrimaryAlignmentSelectionStrategy.java
@@ -0,0 +1,188 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2013 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.sam;
+
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SAMUtils;
+import htsjdk.samtools.util.CollectionUtil;
+import htsjdk.samtools.util.CoordMath;
+
+import java.util.AbstractMap;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.Random;
+
+/**
+ * For a paired-end aligner that aligns each end independently, select the pair of alignments that result
+ * in the largest insert size.  If such a pair of alignments cannot be found, either because one end is not aligned,
+ * or because all alignment pairs are chimeric, then select the best MAPQ for each end independently.
+ *
+ * The primary alignments are then correlated so that their mate info points to each
+ * other, but all non-primary alignments are uncorrelated.
+ */
+public class MostDistantPrimaryAlignmentSelectionStrategy implements PrimaryAlignmentSelectionStrategy {
+    // Give random number generator a seed so results are repeatable.  Used to pick a primary alignment from
+    // multiple alignments with equal mapping quality.
+    private final Random random = new Random(1);
+
+    @Override
+    public void pickPrimaryAlignment(final HitsForInsert hitsForInsert) {
+        final BestEndAlignmentsAccumulator firstEndBest = new BestEndAlignmentsAccumulator();
+        final BestEndAlignmentsAccumulator secondEndBest = new BestEndAlignmentsAccumulator();
+        final CollectionUtil.MultiMap<Integer, SAMRecord> firstEndBySequence =
+                new CollectionUtil.MultiMap<Integer, SAMRecord>();
+        final BestPairAlignmentsAccumulator pairBest = new BestPairAlignmentsAccumulator();
+
+        for (final SAMRecord rec : hitsForInsert.firstOfPairOrFragment) {
+            if (rec.getReadUnmappedFlag()) throw new IllegalStateException();
+            firstEndBest.considerBest(rec);
+            firstEndBySequence.append(rec.getReferenceIndex(), rec);
+        }
+
+        for (final SAMRecord secondEnd: hitsForInsert.secondOfPair) {
+            if (secondEnd.getReadUnmappedFlag()) throw new IllegalStateException();
+            secondEndBest.considerBest(secondEnd);
+            final Collection<SAMRecord> firstEnds = firstEndBySequence.get(secondEnd.getReferenceIndex());
+            if (firstEnds != null) {
+                for (final SAMRecord firstEnd : firstEnds) {
+                    pairBest.considerBest(firstEnd, secondEnd);
+                }
+            }
+        }
+
+        final SAMRecord bestFirstEnd;
+        final SAMRecord bestSecondEnd;
+        if (pairBest.hasBest()) {
+            final Map.Entry<SAMRecord, SAMRecord> pairEntry = pickRandomlyFromList(pairBest.bestAlignmentPairs);
+            bestFirstEnd = pairEntry.getKey();
+            bestSecondEnd = pairEntry.getValue();
+        } else {
+            if (firstEndBest.hasBest()) {
+                bestFirstEnd = pickRandomlyFromList(firstEndBest.bestAlignments);
+            } else {
+                bestFirstEnd = null;
+            }
+            if (secondEndBest.hasBest()) {
+                bestSecondEnd = pickRandomlyFromList(secondEndBest.bestAlignments);
+            } else {
+                bestSecondEnd = null;
+            }
+        }
+
+        if (hitsForInsert.firstOfPairOrFragment.isEmpty() != (bestFirstEnd == null)) {
+            throw new IllegalStateException("Should not happen");
+        }
+        if (hitsForInsert.secondOfPair.isEmpty() != (bestSecondEnd == null)) {
+            throw new IllegalStateException("Should not happen");
+        }
+        if (bestFirstEnd != null) {
+            moveToHead(hitsForInsert.firstOfPairOrFragment, bestFirstEnd);
+        }
+        if (bestSecondEnd != null) {
+            moveToHead(hitsForInsert.secondOfPair, bestSecondEnd);
+        }
+        hitsForInsert.setPrimaryAlignment(0);
+
+        // For non-primary alignments, de-correlate them so that the mate fields don't point at some
+        // arbitrary alignment for the other end.
+
+        // No non-primary alignments for one of the ends so nothing to do.
+        if (hitsForInsert.firstOfPairOrFragment.size() <= 1 || hitsForInsert.secondOfPair.size() <= 1) return;
+        final int amountToSlide = hitsForInsert.firstOfPairOrFragment.size() - 1;
+        for (int i = 0; i < amountToSlide; ++i) {
+            hitsForInsert.secondOfPair.add(1, null);
+        }
+
+
+    }
+
+    private <T> T pickRandomlyFromList(final List<T> list) {
+        return list.get(random.nextInt(list.size()));
+    }
+
+    // Uses reference equality, not .equals()
+    private void moveToHead(final List<SAMRecord> list, final SAMRecord rec) {
+        if (list.get(0) == rec) return;
+        for (int i = 1; i < list.size(); ++i) {
+            if (list.get(i) == rec) {
+                list.remove(i);
+                list.add(0, rec);
+                return;
+            }
+        }
+        throw new IllegalStateException("Should not be reached");
+    }
+
+    private static class BestEndAlignmentsAccumulator {
+        public int bestMapq = -1;
+        public List<SAMRecord> bestAlignments = new ArrayList<SAMRecord>();
+
+        public void considerBest(final SAMRecord rec) {
+            if (bestMapq == -1) {
+                bestMapq = rec.getMappingQuality();
+                bestAlignments.add(rec);
+            } else {
+                final int cmp = SAMUtils.compareMapqs(bestMapq, rec.getMappingQuality());
+                if (cmp < 0) {
+                    bestMapq = rec.getMappingQuality();
+                    bestAlignments.clear();
+                    bestAlignments.add(rec);
+                } else if (cmp == 0) {
+                    bestAlignments.add(rec);
+                }
+            }
+        }
+
+        public boolean hasBest() {
+            return bestMapq != -1;
+        }
+    }
+
+    private static class BestPairAlignmentsAccumulator {
+        public int bestDistance = -1;
+        public int bestPairMapq = -1;
+        public List<Map.Entry<SAMRecord, SAMRecord>> bestAlignmentPairs =
+                new ArrayList<Map.Entry<SAMRecord, SAMRecord>>();
+
+        public void considerBest(final SAMRecord firstEnd, final SAMRecord secondEnd) {
+            final int thisPairMapq = SAMUtils.combineMapqs(firstEnd.getMappingQuality(), secondEnd.getMappingQuality());
+            final int thisDistance = CoordMath.getLength(Math.min(firstEnd.getAlignmentStart(), secondEnd.getAlignmentStart()),
+                    Math.max(firstEnd.getAlignmentEnd(), secondEnd.getAlignmentEnd()));
+            if (thisDistance > bestDistance || (thisDistance == bestDistance && thisPairMapq > bestPairMapq)) {
+                bestDistance = thisDistance;
+                bestPairMapq = thisPairMapq;
+                bestAlignmentPairs.clear();
+                bestAlignmentPairs.add(new AbstractMap.SimpleEntry<SAMRecord, SAMRecord>(firstEnd, secondEnd));
+            } else if (thisDistance == bestDistance && thisPairMapq == bestPairMapq) {
+                bestAlignmentPairs.add(new AbstractMap.SimpleEntry<SAMRecord, SAMRecord>(firstEnd, secondEnd));
+            }
+        }
+
+        public boolean hasBest() {
+            return bestDistance != -1;
+        }
+    }
+}
diff --git a/src/java/picard/sam/MultiHitAlignedReadIterator.java b/src/java/picard/sam/MultiHitAlignedReadIterator.java
new file mode 100644
index 0000000..e1e10ac
--- /dev/null
+++ b/src/java/picard/sam/MultiHitAlignedReadIterator.java
@@ -0,0 +1,215 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.sam;
+
+import htsjdk.samtools.Cigar;
+import htsjdk.samtools.CigarElement;
+import htsjdk.samtools.CigarOperator;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SAMRecordQueryNameComparator;
+import htsjdk.samtools.SAMTag;
+import htsjdk.samtools.SAMUtils;
+import htsjdk.samtools.filter.FilteringIterator;
+import htsjdk.samtools.filter.SamRecordFilter;
+import htsjdk.samtools.util.CloseableIterator;
+import htsjdk.samtools.util.PeekableIterator;
+import picard.PicardException;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.NoSuchElementException;
+
+
+/**
+ * Iterate over queryname-sorted SAM, and return each group of reads with the same queryname.  Unmapped reads
+ * are filtered out, as are alignments that don't seem to match any part of the reference.
+ * If there are multiple hits for the same read, and the first and second ends need to be correlated,
+ * then they are sorted by hit index. Supplemental alignments are discarded, with a logged message.
+ * A set of hits for a single query may then be filtered with a caller-supplied filter, which will remove any
+ * alignments that do not pass the filter.  If the primary alignment is removed, the best-mapping secondary alignment
+ * or alignment pair will be marked as primary.
+ *
+ *
+ * @throws IllegalStateException if the input is not queryname-sorted.
+ */
+class MultiHitAlignedReadIterator implements CloseableIterator<HitsForInsert> {
+    private final PeekableIterator<SAMRecord> peekIterator;
+    private final SAMRecordQueryNameComparator queryNameComparator = new SAMRecordQueryNameComparator();
+    private final PrimaryAlignmentSelectionStrategy primaryAlignmentSelectionStrategy;
+
+    private HitsForInsert theNext = null;
+
+    /**
+     *
+     * @param querynameOrderIterator
+     * @param primaryAlignmentSelectionStrategy Algorithm for selecting primary alignment when it is not clear from
+     *                                          the input what should be primary.
+     */
+    MultiHitAlignedReadIterator(final CloseableIterator<SAMRecord> querynameOrderIterator,
+                                final PrimaryAlignmentSelectionStrategy primaryAlignmentSelectionStrategy) {
+        this.primaryAlignmentSelectionStrategy = primaryAlignmentSelectionStrategy;
+        peekIterator = new PeekableIterator<SAMRecord>(new FilteringIterator(querynameOrderIterator,
+                new SamRecordFilter() {
+                    // Filter unmapped reads.
+                    public boolean filterOut(final SAMRecord record) {
+                        return record.getReadUnmappedFlag() || SAMUtils.cigarMapsNoBasesToRef(record.getCigar());
+                    }
+                    public boolean filterOut(final SAMRecord first, final SAMRecord second) {
+                        return ((first.getReadUnmappedFlag() || SAMUtils.cigarMapsNoBasesToRef(first.getCigar()))
+                                && (second.getReadUnmappedFlag() || SAMUtils.cigarMapsNoBasesToRef(second.getCigar())));
+                    }
+                }));
+
+
+        advance();
+    }
+
+    public void close() {
+        peekIterator.close();
+    }
+
+    public boolean hasNext() {
+        return theNext != null;
+    }
+
+    /**
+     * @throws IllegalStateException if the input is not queryname-sorted.
+     */
+    public HitsForInsert next() {
+        if (!hasNext()) throw new NoSuchElementException();
+        final HitsForInsert ret = theNext;
+        advance();
+        return ret;
+    }
+
+    private void advance() {
+        while (peekIterator.hasNext()) {
+            theNext = nextMaybeEmpty();
+            if (theNext.numHits() > 0) return;
+        }
+        theNext = null;
+    }
+
+    private HitsForInsert nextMaybeEmpty() {
+        if (!peekIterator.hasNext()) throw new IllegalStateException();
+        final String readName = peekIterator.peek().getReadName();
+        final HitsForInsert hits = new HitsForInsert();
+
+        Boolean isPaired = null;
+
+        // Accumulate the alignments matching readName.
+        do {
+            final SAMRecord rec = peekIterator.next();
+            replaceHardWithSoftClips(rec);
+            // It is critical to do this here, because SamAlignmentMerger uses this exception to determine
+            // if the aligned input needs to be sorted.
+            if (peekIterator.hasNext() && queryNameComparator.fileOrderCompare(rec, peekIterator.peek()) > 0) {
+                throw new IllegalStateException("Underlying iterator is not queryname sorted: " +
+                rec + " > " + peekIterator.peek());
+            }
+
+            if (isPaired == null) {
+                isPaired = rec.getReadPairedFlag();
+            } else if (isPaired != rec.getReadPairedFlag()) {
+                throw new PicardException("Got a mix of paired and unpaired alignments for read " + readName);
+            }
+
+            // Records w/ a supplemental flag are stashed to the side until the primary alignment has
+            // been determined, and then re-added into the process later
+            if (!rec.getReadPairedFlag() || rec.getFirstOfPairFlag()) {
+                if (rec.getSupplementaryAlignmentFlag()) {
+                    hits.addSupplementalFirstOfPairOrFragment(rec);
+                } else {
+                    hits.addFirstOfPairOrFragment(rec);
+                }
+            } else if (rec.getSecondOfPairFlag()) {
+                if (rec.getSupplementaryAlignmentFlag()) {
+                    hits.addSupplementalSecondOfPair(rec);
+                } else {
+                    hits.addSecondOfPair(rec);
+                }
+            } else throw new PicardException("Read is marked as pair but neither first or second: " + readName);
+        } while (peekIterator.hasNext() && peekIterator.peek().getReadName().equals(readName));
+
+        // If there is no more than one alignment for each end, no need to do any coordination.
+        if (hits.numHits() <= 1) {
+            // No HI tags needed if only a single hit
+            if (hits.getFirstOfPair(0) != null) {
+                hits.getFirstOfPair(0).setAttribute(SAMTag.HI.name(), null);
+                hits.getFirstOfPair(0).setNotPrimaryAlignmentFlag(false);
+            }
+            if (hits.getSecondOfPair(0) != null) {
+                hits.getSecondOfPair(0).setAttribute(SAMTag.HI.name(), null);
+                hits.getSecondOfPair(0).setNotPrimaryAlignmentFlag(false);
+            }
+        } else {
+            primaryAlignmentSelectionStrategy.pickPrimaryAlignment(hits);
+        }
+
+        // Used to check that alignments for first and second were correlated, but this is no longer required.
+        return hits;
+    }
+
+    /** Replaces hard clips with soft clips and fills in bases and qualities with dummy values as needed. */
+    private void replaceHardWithSoftClips(final SAMRecord rec) {
+        if (rec.getReadUnmappedFlag()) return;
+        if (rec.getCigar().isEmpty()) return;
+
+        List<CigarElement> elements = rec.getCigar().getCigarElements();
+        final CigarElement first = elements.get(0);
+        final CigarElement last  = elements.size() == 1 ? null : elements.get(elements.size()-1);
+        final int startHardClip = first.getOperator() == CigarOperator.H ? first.getLength() : 0;
+        final int endHardClip   = (last != null && last.getOperator() == CigarOperator.H) ? last.getLength() : 0;
+
+        if (startHardClip + endHardClip > 0) {
+            final int len = rec.getReadBases().length + startHardClip + endHardClip;
+
+            // Fix the basecalls
+            final byte[] bases = new byte[len];
+            Arrays.fill(bases, (byte) 'N');
+            System.arraycopy(rec.getReadBases(), 0, bases, startHardClip, rec.getReadBases().length);
+
+            // Fix the quality scores
+            final byte[] quals = new byte[len];
+            Arrays.fill(quals, (byte) 2  );
+            System.arraycopy(rec.getBaseQualities(), 0, quals, startHardClip, rec.getBaseQualities().length);
+
+            // Fix the cigar!
+            elements = new ArrayList<CigarElement>(elements); // make it modifiable
+            if (startHardClip > 0) elements.set(0, new CigarElement(first.getLength(), CigarOperator.S));
+            if (endHardClip   > 0) elements.set(elements.size()-1, new CigarElement(last.getLength(), CigarOperator.S));
+
+            // Set the update structures on the new record
+            rec.setReadBases(bases);
+            rec.setBaseQualities(quals);
+            rec.setCigar(new Cigar(elements));
+        }
+   }
+
+    /** Unsupported operation. */
+    public void remove() {
+        throw new UnsupportedOperationException();
+    }
+}
diff --git a/src/java/picard/sam/PositionBasedDownsampleSam.java b/src/java/picard/sam/PositionBasedDownsampleSam.java
new file mode 100644
index 0000000..3a596f9
--- /dev/null
+++ b/src/java/picard/sam/PositionBasedDownsampleSam.java
@@ -0,0 +1,380 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2015 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.sam;
+
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMFileWriter;
+import htsjdk.samtools.SAMFileWriterFactory;
+import htsjdk.samtools.SAMProgramRecord;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.CollectionUtil;
+import htsjdk.samtools.util.Histogram;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.ProgressLogger;
+import picard.PicardException;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.SamOrBam;
+import picard.sam.util.PhysicalLocation;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * Class to downsample a BAM file while respecting that we should either get rid
+ * of both ends of a pair or neither end of the pair. In addition, this program uses the read-name
+ * and extracts the position within the tile whence the read came from. The downsampling is based on this position.
+ * <p/>
+ * Note 1: This is technology and read-name dependent. If your read-names do not have coordinate information, or if your
+ * BAM contains reads from multiple technologies (flowcell versions, sequencing machines) this will not work properly.
+ * This has been designed with Illumina MiSeq/HiSeq in mind.
+ * <p/>
+ * Note 2: The downsampling is _not_ random. It is deterministically dependent on the position of the read within its tile. Specifically,
+ * it draws out an ellipse that covers a FRACTION fraction of the area and each of the edges and uses this to determine whether to keep the
+ * record. Since reads with the same name have the same position (mates, secondary and supplemental alignments), the decision will be the same for all of them.
+ * <p/>
+ * Finally, the code has been designed to simulate sequencing less as accurately as possible, not for getting an exact downsample fraction.
+ * In particular, since the reads may be distributed non-evenly within the lanes/tiles, the resulting downsampling percentage will not be accurately
+ * determined by the input argument FRACTION. One should re-MarkDuplicates after downsampling in order to "expose" the duplicates whose representative has
+ * been downsampled away.
+ *
+ * @author Yossi Farjoun
+ */
+ at CommandLineProgramProperties(
+        usage = "Class to downsample a BAM file while respecting that we should either get rid of both ends of a pair or neither \n" +
+                "end of the pair. In addition, this program uses the read-name and extracts the position within the tile whence \n" +
+                "the read came from. The downsampling is based on this position. Results with the exact same input will produce the \n" +
+                "same results.\n" +
+                "\n" +
+                "Note 1: This is technology and read-name dependent. If your read-names do not have coordinate information, or if your\n" +
+                "BAM contains reads from multiple technologies (flowcell versions, sequencing machines) this will not work properly. \n" +
+                "This has been designed with Illumina MiSeq/HiSeq in mind.\n" +
+                "Note 2: The downsampling is not random. It is deterministically dependent on the position of the read within its tile.\n" +
+                "Note 3: Downsampling twice with this program is not supported.\n" +
+                "Note 4: You should call MarkDuplicates after downsampling.\n" +
+                "\n" +
+                "Finally, the code has been designed to simulate sequencing less as accurately as possible, not for getting an exact downsample \n" +
+                "fraction. In particular, since the reads may be distributed non-evenly within the lanes/tiles, the resulting downsampling \n" +
+                "percentage will not be accurately determined by the input argument FRACTION.",
+        usageShort = "Downsample a SAM or BAM file to retain a subset of the reads based on the reads location in each tile in the flowcell.",
+        programGroup = SamOrBam.class
+)
+public class PositionBasedDownsampleSam extends CommandLineProgram {
+
+    @Option(shortName = StandardOptionDefinitions.INPUT_SHORT_NAME, doc = "The input SAM or BAM file to downsample.")
+    public File INPUT;
+
+    @Option(shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc = "The output, downsampled, SAM or BAM file to write.")
+    public File OUTPUT;
+
+    @Option(shortName = "F", doc = "The (approximate) fraction of reads to be kept, between 0 and 1.", optional = false)
+    public Double FRACTION = null;
+
+    @Option(doc = "Stop after processing N reads, mainly for debugging.", optional = true)
+    public Long STOP_AFTER = null;
+
+    @Option(doc = "Allow Downsampling again despite this being a bad idea with possibly unexpected results.", optional = true)
+    public boolean ALLOW_MULTIPLE_DOWNSAMPLING_DESPITE_WARNINGS = false;
+
+    @Option(doc = "Determines whether the duplicate tag should be reset since the downsampling requires re-marking duplicates.")
+    public boolean REMOVE_DUPLICATE_INFORMATION = true;
+
+    private final Log log = Log.getInstance(PositionBasedDownsampleSam.class);
+
+    private PhysicalLocation opticalDuplicateFinder;
+    private long total = 0;
+    private long kept = 0;
+    public static String PG_PROGRAM_NAME = "PositionBasedDownsampleSam";
+    private final static double ACCEPTABLE_FUDGE_FACTOR = 0.2;
+
+    /* max-position in tile as a function of tile. We might need to
+       look per-readgroup, but at this point I'm making the assumptions that I need to downsample a
+       sample where all the readgroups came from the same type of flowcell. */
+
+    CollectionUtil.DefaultingMap.Factory<Coord, Short> defaultingMapFactory = new CollectionUtil.DefaultingMap.Factory<Coord, Short>() {
+        @Override
+        public Coord make(final Short aShort) {
+            return new Coord();
+        }
+    };
+
+    final private Map<Short, Coord> tileCoord = new CollectionUtil.DefaultingMap<Short, Coord>(defaultingMapFactory, true);
+
+
+    final Map<Short, Histogram<Short>> xPositions = new HashMap<Short, Histogram<Short>>();
+    final Map<Short, Histogram<Short>> yPositions = new HashMap<Short, Histogram<Short>>();
+
+    public static void main(final String[] args) {
+        new PositionBasedDownsampleSam().instanceMainWithExit(args);
+    }
+
+    @Override
+    protected String[] customCommandLineValidation() {
+        final List<String> errors = new ArrayList<String>();
+
+        if (FRACTION < 0 || FRACTION > 1) {
+            errors.add("FRACTION must be a value between 0 and 1, found: " + FRACTION);
+        }
+
+        if (errors.isEmpty()) {
+            return null;
+        } else {
+            return errors.toArray(new String[errors.size()]);
+        }
+    }
+
+    @Override
+    protected int doWork() {
+
+        IOUtil.assertFileIsReadable(INPUT);
+        IOUtil.assertFileIsWritable(OUTPUT);
+
+        log.info("Checking to see if input file has been downsampled with this program before.");
+        checkProgramRecords();
+
+        opticalDuplicateFinder = new PhysicalLocation();
+
+        log.info("Starting first pass. Examining read distribution in tiles.");
+        fillTileMinMaxCoord();
+        log.info("First pass done.");
+
+        log.info("Starting second pass. Outputting reads.");
+        outputSamRecords();
+        log.info("Second pass done.");
+
+        final double finalP = kept / (double) total;
+        if (Math.abs(finalP - FRACTION) / (Math.min(finalP, FRACTION) + 1e-10) > ACCEPTABLE_FUDGE_FACTOR) {
+            log.warn(String.format("You've requested FRACTION=%g, the resulting downsampling resulted in a rate of %f.", FRACTION, finalP));
+        }
+        log.info(String.format("Finished! Kept %d out of %d reads (P=%g).", kept, total, finalP));
+
+        return 0;
+    }
+
+    private void outputSamRecords() {
+
+        final ProgressLogger progress = new ProgressLogger(log, (int) 1e7);
+        final SamReader in = SamReaderFactory.makeDefault().referenceSequence(REFERENCE_SEQUENCE).open(INPUT);
+
+        final SAMFileHeader header = in.getFileHeader().clone();
+        final SAMFileHeader.PgIdGenerator pgIdGenerator = new SAMFileHeader.PgIdGenerator(header);
+        final SAMProgramRecord programRecord = new SAMProgramRecord(pgIdGenerator.getNonCollidingId(PG_PROGRAM_NAME));
+
+        programRecord.setProgramName(PG_PROGRAM_NAME);
+        programRecord.setCommandLine(getCommandLine());
+        programRecord.setProgramVersion(getVersion());
+        header.addProgramRecord(programRecord);
+
+        final SAMFileWriter out = new SAMFileWriterFactory().makeSAMOrBAMWriter(header, true, OUTPUT);
+
+        final CircleSelector selector = new CircleSelector(FRACTION);
+
+        for (final SAMRecord rec : in) {
+            if (STOP_AFTER != null && total >= STOP_AFTER) break;
+
+            total++;
+
+            final PhysicalLocation pos = getSamRecordLocation(rec);
+
+            if (!xPositions.containsKey(pos.getTile())) {
+                xPositions.put(pos.getTile(), new Histogram<Short>(pos.getTile() + "-xpos", "count"));
+            }
+            if (!yPositions.containsKey(pos.getTile())) {
+                yPositions.put(pos.getTile(), new Histogram<Short>(pos.getTile() + "-ypos", "count"));
+            }
+
+            final boolean keepRecord = selector.select(pos, tileCoord.get(pos.getTile()));
+
+            if (keepRecord) {
+                if (REMOVE_DUPLICATE_INFORMATION) rec.setDuplicateReadFlag(false);
+                out.addAlignment(rec);
+                kept++;
+            }
+            progress.record(rec);
+        }
+
+        out.close();
+
+        CloserUtil.close(in);
+    }
+
+    private void checkProgramRecords() {
+        final SamReader in = SamReaderFactory
+                .makeDefault()
+                .referenceSequence(REFERENCE_SEQUENCE)
+                .open(INPUT);
+
+        for (final SAMProgramRecord pg : in.getFileHeader().getProgramRecords()) {
+            if (pg.getProgramName() != null && pg.getProgramName().equals(PG_PROGRAM_NAME)) {
+
+                final String outText = "Found previous Program Record that indicates that this BAM has been downsampled already with this program. Operation not supported! Previous PG: " + pg.toString();
+
+                if (ALLOW_MULTIPLE_DOWNSAMPLING_DESPITE_WARNINGS) {
+                    log.warn(outText);
+                } else {
+                    log.error(outText);
+                    throw new PicardException(outText);
+                }
+            }
+        }
+        CloserUtil.close(in);
+    }
+
+    // scan all the tiles and find the smallest and largest coordinate (x & y) in that tile.
+    private void fillTileMinMaxCoord() {
+
+        final SamReader in = SamReaderFactory.makeDefault().referenceSequence(REFERENCE_SEQUENCE).open(INPUT);
+
+        final ProgressLogger progress = new ProgressLogger(log, (int) 1e7, "Read");
+
+        int total = 0;
+
+        for (final SAMRecord rec : in) {
+            if (STOP_AFTER != null && total >= STOP_AFTER) break;
+
+            total++;
+            progress.record(rec);
+            final PhysicalLocation location = getSamRecordLocation(rec);
+
+            //Defaulting map will create a new Coord if it's not there.
+
+            final Coord Pos = tileCoord.get(location.getTile());
+
+            Pos.maxX = Math.max(Pos.maxX, location.getX());
+            Pos.minX = Math.min(Pos.minX, location.getX());
+
+            Pos.maxY = Math.max(Pos.maxY, location.getY());
+            Pos.minY = Math.min(Pos.minY, location.getY());
+
+            Pos.count++;
+
+        }
+
+        // now that we know what the maximal/minimal numbers were, we should increase/decrease them a little, to account for sampling error
+        for (final Coord coord : tileCoord.values()) {
+
+            final int diffX = coord.maxX - coord.minX;
+            final int diffY = coord.maxY - coord.minY;
+
+            coord.maxX += diffX / coord.count;
+            coord.minX -= diffX / coord.count;
+
+            coord.maxY += diffY / coord.count;
+            coord.minY -= diffY / coord.count;
+        }
+
+        CloserUtil.close(in);
+    }
+
+    private PhysicalLocation getSamRecordLocation(final SAMRecord rec) {
+        final PhysicalLocation pos = new PhysicalLocation();
+        opticalDuplicateFinder.addLocationInformation(rec.getReadName(), pos);
+        return pos;
+    }
+
+    /*
+     * The reads are selected depending on whether they are in a periodically repeating circle whose representative
+     * overlaps the boundary of the tile. The circle is chosen as to have an area of FRACTION and the also a overlap
+     * of FRACTION with both the bottom and left edges of the unit square ([0,1] x [0,1]), which defines it uniquely.
+     * Finally the repeating pattern is there to make sure that the mask on the flowcell also has minimal boundary.
+     *
+     * The position of the reads is mapped into the unit square using the min/max coordinates of the tile prior to
+     * masking
+     *
+     * This choice of a mask is intended to accomplish several goasl:
+     *  - pick out a fraction FRACTION of the reads
+     *  - pick out a fraction FRACTION of the reads that are near the boundaries
+     *  - keep nearby reads (in a tile) together by minimizing the boundary of the mask itself
+     *  - keep nearby reads (in neighboring tiles) together (since they might be optical duplicates) by keeping that the
+     *  mask is the same on all tiles, and by having the same mask on the left edge as on the right (same for top/bottom).
+     */
+    private class CircleSelector {
+
+        private final double radiusSquared;
+        private final double offset;
+        private final boolean positiveSelection;
+
+        CircleSelector(final double fraction) {
+
+            final double p;
+            if (fraction > 0.5) {
+                p = 1 - fraction;
+                positiveSelection = false;
+            } else {
+                p = fraction;
+                positiveSelection = true;
+            }
+            radiusSquared = p / Math.PI; //thus the area is \pi r^2 = p, thus a fraction p of the unit square will be captured
+
+            /* if offset is used as the center of the circle (both x and y), this makes the overlap
+             region with each of the boundaries of the unit square have length p (and thus a fraction
+             p of the boundaries of each tile will be removed) */
+
+            if (p < 0) {
+                // at this point a negative p will result in a square-root of a negative number in the next step.
+                throw new PicardException("This shouldn't happen...");
+            }
+            offset = Math.sqrt(radiusSquared - p * p / 4);
+        }
+
+        private double roundedPart(final double x) {return x - Math.round(x);}
+
+        // this function checks to see if the location of the read is within the masking circle
+        private boolean select(final PhysicalLocation coord, final Coord tileCoord) {
+            // r^2 = (x-x_0)^2 + (y-y_0)^2, where both x_0 and y_0 equal offset
+            final double distanceSquared =
+                            Math.pow(roundedPart(((coord.getX() - tileCoord.minX) / (double) (tileCoord.maxX - tileCoord.minX)) - offset), 2) +
+                            Math.pow(roundedPart(((coord.getY() - tileCoord.minY) / (double) (tileCoord.maxY - tileCoord.minY)) - offset), 2);
+
+            return (distanceSquared > radiusSquared) ^ positiveSelection;
+        }
+    }
+
+    private class Coord {
+        public int minX;
+        public int minY;
+        public int maxX;
+        public int maxY;
+        public int count;
+
+        public Coord() {
+            count = 0;
+            minX = 0;
+            minY = 0;
+            maxX = 0;
+            maxY = 0;
+        }
+    }
+}
diff --git a/src/java/picard/sam/PrimaryAlignmentSelectionStrategy.java b/src/java/picard/sam/PrimaryAlignmentSelectionStrategy.java
new file mode 100644
index 0000000..1e937cd
--- /dev/null
+++ b/src/java/picard/sam/PrimaryAlignmentSelectionStrategy.java
@@ -0,0 +1,37 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2012 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.sam;
+
+/**
+ * Given a set of alignments for a read or read pair, mark one alignment as primary, according to whatever
+ * strategy is appropriate.  Any pre-existing primary designation is ignored, so if the aligner has selected an
+ * appropriate primary alignment, this class should not be called.
+ */
+public interface PrimaryAlignmentSelectionStrategy {
+    /**
+     * When this method returns, one alignment has been marked as primary according to the implementation's strategy.
+     *
+     */
+    void pickPrimaryAlignment(HitsForInsert hitsForInsert);
+}
diff --git a/src/java/picard/sam/ReorderSam.java b/src/java/picard/sam/ReorderSam.java
new file mode 100644
index 0000000..a0714e0
--- /dev/null
+++ b/src/java/picard/sam/ReorderSam.java
@@ -0,0 +1,245 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.sam;
+
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMFileWriter;
+import htsjdk.samtools.SAMFileWriterFactory;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SAMRecordIterator;
+import htsjdk.samtools.SAMSequenceDictionary;
+import htsjdk.samtools.SAMSequenceRecord;
+import htsjdk.samtools.SAMTag;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.reference.ReferenceSequenceFile;
+import htsjdk.samtools.reference.ReferenceSequenceFileFactory;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import picard.PicardException;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.SamOrBam;
+
+import java.io.File;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Reorders a SAM/BAM input file according to the order of contigs in a second reference sequence
+ *
+ * @author mdepristo
+ */
+ at CommandLineProgramProperties(
+        usage = "Not to be confused with SortSam which sorts a SAM or BAM file with a valid sequence dictionary, " +
+                "ReorderSam reorders reads in a SAM/BAM file to match the contig ordering in a provided reference file, " +
+                "as determined by exact name matching of contigs.  Reads mapped to contigs absent in the new " +
+                "reference are dropped. Runs substantially faster if the input is an indexed BAM file.",
+        usageShort = "Reorders reads in a SAM or BAM file to match ordering in reference",
+        programGroup = SamOrBam.class
+)
+public class ReorderSam extends CommandLineProgram {
+
+    @Option(shortName = StandardOptionDefinitions.INPUT_SHORT_NAME, doc = "Input file (bam or sam) to extract reads from.")
+    public File INPUT;
+
+    @Option(shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc = "Output file (bam or sam) to write extracted reads to.")
+    public File OUTPUT;
+
+    @Option(shortName = StandardOptionDefinitions.REFERENCE_SHORT_NAME, doc = "Reference sequence to reorder reads to match.  " +
+            "A sequence dictionary corresponding to the reference fasta is required.  Create one with CreateSequenceDictionary.jar.")
+    public File REFERENCE;
+
+    @Option(shortName = "S", doc = "If true, then allows only a partial overlap of the BAM contigs with the new reference " +
+            "sequence contigs.  By default, this tool requires a corresponding contig in the new " +
+            "reference for each read contig")
+    public boolean ALLOW_INCOMPLETE_DICT_CONCORDANCE = false;
+
+    @Option(shortName = "U", doc = "If true, then permits mapping from a read contig to a new reference contig with the " +
+            "same name but a different length.  Highly dangerous, only use if you know what you " +
+            "are doing.")
+    public boolean ALLOW_CONTIG_LENGTH_DISCORDANCE = false;
+
+    private final Log log = Log.getInstance(ReorderSam.class);
+
+    /** Required main method implementation. */
+    public static void main(final String[] argv) {
+        new ReorderSam().instanceMainWithExit(argv);
+    }
+
+    protected int doWork() {
+        IOUtil.assertFileIsReadable(INPUT);
+        IOUtil.assertFileIsReadable(REFERENCE);
+        IOUtil.assertFileIsWritable(OUTPUT);
+
+        final SamReader in = SamReaderFactory.makeDefault().referenceSequence(REFERENCE_SEQUENCE).open(INPUT);
+
+        ReferenceSequenceFile reference = ReferenceSequenceFileFactory.getReferenceSequenceFile(REFERENCE);
+        SAMSequenceDictionary refDict = reference.getSequenceDictionary();
+
+        if (refDict == null) {
+            log.error("No reference sequence dictionary found. Aborting.  You can create a sequence dictionary for the reference fasta using CreateSequenceDictionary.jar.");
+            CloserUtil.close(in);
+            return 1;
+        }
+
+        printDictionary("SAM/BAM file", in.getFileHeader().getSequenceDictionary());
+        printDictionary("Reference", refDict);
+        Map<Integer, Integer> newOrder = buildSequenceDictionaryMap(refDict, in.getFileHeader().getSequenceDictionary());
+
+        // has to be after we create the newOrder
+        SAMFileHeader outHeader = in.getFileHeader().clone();
+        outHeader.setSequenceDictionary(refDict);
+
+        log.info("Writing reads...");
+        if (in.hasIndex()) {
+            final SAMFileWriter out = new SAMFileWriterFactory().makeSAMOrBAMWriter(outHeader, true, OUTPUT);
+
+            // write the reads in contig order
+            for (final SAMSequenceRecord contig : refDict.getSequences()) {
+                final SAMRecordIterator it = in.query(contig.getSequenceName(), 0, 0, false);
+                writeReads(out, it, newOrder, contig.getSequenceName());
+            }
+            // don't forget the unmapped reads
+            writeReads(out, in.queryUnmapped(), newOrder, "unmapped");
+            out.close();
+        } else {
+            SAMFileWriter out = new SAMFileWriterFactory().makeSAMOrBAMWriter(outHeader, false, OUTPUT);
+            writeReads(out, in.iterator(), newOrder, "All reads");
+            out.close();
+        }
+
+        // cleanup
+        CloserUtil.close(in);
+        return 0;
+    }
+
+    /**
+     * Low-level helper function that returns the new reference index for oldIndex according to the
+     * ordering map newOrder.  Read is provided in case an error occurs, so that an informative message
+     * can be made.
+     */
+    private int newOrderIndex(SAMRecord read, int oldIndex, Map<Integer, Integer> newOrder) {
+        if (oldIndex == -1)
+            return -1; // unmapped read
+        else {
+            final Integer n = newOrder.get(oldIndex);
+
+            if (n == null) throw new PicardException("BUG: no mapping found for read " + read.format());
+            else return n;
+        }
+    }
+
+    /**
+     * Helper function that writes reads from iterator it into writer out, updating each SAMRecord along the way
+     * according to the newOrder mapping from dictionary index -> index.  Name is used for printing only.
+     */
+    private void writeReads(final SAMFileWriter out,
+                            final SAMRecordIterator it,
+                            final Map<Integer, Integer> newOrder,
+                            final String name) {
+        long counter = 0;
+        log.info("  Processing " + name);
+
+        while (it.hasNext()) {
+            counter++;
+            final SAMRecord read = it.next();
+            final int oldRefIndex = read.getReferenceIndex();
+            final int oldMateIndex = read.getMateReferenceIndex();
+            final int newRefIndex = newOrderIndex(read, oldRefIndex, newOrder);
+
+            read.setHeader(out.getFileHeader());
+            read.setReferenceIndex(newRefIndex);
+
+            final int newMateIndex = newOrderIndex(read, oldMateIndex, newOrder);
+            if (oldMateIndex != -1 && newMateIndex == -1) { // becoming unmapped
+                read.setMateAlignmentStart(0);
+                read.setMateUnmappedFlag(true);
+                read.setAttribute(SAMTag.MC.name(), null);      // Set the Mate Cigar String to null
+            }
+            read.setMateReferenceIndex(newMateIndex);
+
+            out.addAlignment(read);
+        }
+
+        it.close();
+        log.info("Wrote " + counter + " reads");
+    }
+
+    /**
+     * Constructs a mapping from read sequence records index -> new sequence dictionary index for use in
+     * reordering the reference index and mate reference index in each read.  -1 means unmapped.
+     */
+    private Map<Integer, Integer> buildSequenceDictionaryMap(final SAMSequenceDictionary refDict,
+                                                             final SAMSequenceDictionary readsDict) {
+        Map<Integer, Integer> newOrder = new HashMap<Integer, Integer>();
+
+        log.info("Reordering SAM/BAM file:");
+        for (final SAMSequenceRecord refRec : refDict.getSequences()) {
+            final SAMSequenceRecord readsRec = readsDict.getSequence(refRec.getSequenceName());
+
+            if (readsRec != null) {
+                if (refRec.getSequenceLength() != readsRec.getSequenceLength()) {
+                    String msg = String.format("Discordant contig lengths: read %s LN=%d, ref %s LN=%d",
+                            readsRec.getSequenceName(), readsRec.getSequenceLength(),
+                            refRec.getSequenceName(), refRec.getSequenceLength());
+                    if (ALLOW_CONTIG_LENGTH_DISCORDANCE) {
+                        log.warn(msg);
+                    } else {
+                        throw new PicardException(msg);
+                    }
+                }
+
+                log.info(String.format("  Reordering read contig %s [index=%d] to => ref contig %s [index=%d]%n",
+                        readsRec.getSequenceName(), readsRec.getSequenceIndex(),
+                        refRec.getSequenceName(), refRec.getSequenceIndex()));
+                newOrder.put(readsRec.getSequenceIndex(), refRec.getSequenceIndex());
+            }
+        }
+
+        for (SAMSequenceRecord readsRec : readsDict.getSequences()) {
+            if (!newOrder.containsKey(readsRec.getSequenceIndex())) {
+                if (ALLOW_INCOMPLETE_DICT_CONCORDANCE)
+                    newOrder.put(readsRec.getSequenceIndex(), -1);
+                else
+                    throw new PicardException("New reference sequence does not contain a matching contig for " + readsRec.getSequenceName());
+            }
+        }
+
+        return newOrder;
+    }
+
+    /**
+     * Helper function to print out a sequence dictionary
+     */
+    private void printDictionary(String name, SAMSequenceDictionary dict) {
+        log.info(name);
+        for (final SAMSequenceRecord contig : dict.getSequences()) {
+            log.info("  SN=%s LN=%d%n", contig.getSequenceName(), contig.getSequenceLength());
+        }
+    }
+}
diff --git a/src/java/picard/sam/ReplaceSamHeader.java b/src/java/picard/sam/ReplaceSamHeader.java
new file mode 100644
index 0000000..0c05044
--- /dev/null
+++ b/src/java/picard/sam/ReplaceSamHeader.java
@@ -0,0 +1,117 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.sam;
+
+import htsjdk.samtools.BamFileIoUtils;
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMFileWriter;
+import htsjdk.samtools.SAMFileWriterFactory;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.ValidationStringency;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.ProgressLogger;
+import picard.PicardException;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.SamOrBam;
+
+import java.io.File;
+
+/**
+ * @author alecw at broadinstitute.org
+ */
+ at CommandLineProgramProperties(
+        usage = "Replace the SAMFileHeader in a SAM file with the given header. " +
+                "Validation is minimal.  It is up to the user to ensure that all the elements referred to in the SAMRecords " +
+                "are present in the new header.  Sort order of the two input files must be the same.",
+        usageShort = "Replace the SAMFileHeader in a SAM file with the given header",
+        programGroup = SamOrBam.class
+)
+public class ReplaceSamHeader extends CommandLineProgram {
+
+    @Option(doc = "SAM file from which SAMRecords will be read.", shortName = StandardOptionDefinitions.INPUT_SHORT_NAME)
+    public File INPUT;
+
+    @Option(doc = "SAM file from which SAMFileHeader will be read.")
+    public File HEADER;
+
+    @Option(doc = "SAMFileHeader from HEADER file will be written to this file, followed by SAMRecords from INPUT file",
+            shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME)
+    public File OUTPUT;
+
+    public static void main(final String[] argv) {
+        new ReplaceSamHeader().instanceMainWithExit(argv);
+    }
+
+    /**
+     * Do the work after command line has been parsed.
+     * RuntimeException may be thrown by this method, and are reported appropriately.
+     *
+     * @return program exit status.
+     */
+    @Override
+    protected int doWork() {
+        IOUtil.assertFileIsReadable(INPUT);
+        IOUtil.assertFileIsReadable(HEADER);
+        IOUtil.assertFileIsWritable(OUTPUT);
+
+        final SAMFileHeader replacementHeader = SamReaderFactory.makeDefault().referenceSequence(REFERENCE_SEQUENCE).getFileHeader(HEADER);
+
+        if (BamFileIoUtils.isBamFile(INPUT)) {
+            blockCopyReheader(replacementHeader);
+        } else {
+            standardReheader(replacementHeader);
+        }
+
+        return 0;
+    }
+
+    private void standardReheader(final SAMFileHeader replacementHeader) {
+        final SamReader recordReader = SamReaderFactory.makeDefault().referenceSequence(REFERENCE_SEQUENCE).validationStringency(ValidationStringency.SILENT).open(INPUT);
+        if (replacementHeader.getSortOrder() != recordReader.getFileHeader().getSortOrder()) {
+            throw new PicardException("Sort orders of INPUT (" + recordReader.getFileHeader().getSortOrder().name() +
+                    ") and HEADER (" + replacementHeader.getSortOrder().name() + ") do not agree.");
+        }
+        final SAMFileWriter writer = new SAMFileWriterFactory().makeSAMOrBAMWriter(replacementHeader, true, OUTPUT);
+
+        final ProgressLogger progress = new ProgressLogger(Log.getInstance(ReplaceSamHeader.class));
+        for (final SAMRecord rec : recordReader) {
+            rec.setHeader(replacementHeader);
+            writer.addAlignment(rec);
+            progress.record(rec);
+        }
+        writer.close();
+        CloserUtil.close(recordReader);
+    }
+
+    private void blockCopyReheader(final SAMFileHeader replacementHeader) {
+        BamFileIoUtils.reheaderBamFile(replacementHeader, INPUT, OUTPUT, CREATE_MD5_FILE, CREATE_INDEX);
+    }
+}
diff --git a/src/java/picard/sam/RevertOriginalBaseQualitiesAndAddMateCigar.java b/src/java/picard/sam/RevertOriginalBaseQualitiesAndAddMateCigar.java
new file mode 100644
index 0000000..3d52c22
--- /dev/null
+++ b/src/java/picard/sam/RevertOriginalBaseQualitiesAndAddMateCigar.java
@@ -0,0 +1,207 @@
+package picard.sam;
+
+import htsjdk.samtools.BAMRecordCodec;
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMFileWriter;
+import htsjdk.samtools.SAMFileWriterFactory;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SAMRecordQueryNameComparator;
+import htsjdk.samtools.SAMUtils;
+import htsjdk.samtools.SamPairUtil;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.ProgressLogger;
+import htsjdk.samtools.util.SortingCollection;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.SamOrBam;
+
+import java.io.File;
+import java.util.Iterator;
+
+/**
+ * This tool reverts the original base qualities (if specified) and adds the mate cigar tag to mapped BAMs.
+ * If the file does not have OQs and already has mate cigar tags, nothing is done.
+ * New BAM/BAI/MD5 files are created.
+ *
+ * @author Nils Homer
+ */
+ at CommandLineProgramProperties(
+        usage = "Reverts the original base qualities and adds the mate cigar tag to read-group BAMs.",
+        usageShort = "Reverts the original base qualities and adds the mate cigar tag to read-group BAMs",
+        programGroup = SamOrBam.class
+)
+public class RevertOriginalBaseQualitiesAndAddMateCigar extends CommandLineProgram {
+
+    @Option(shortName = StandardOptionDefinitions.INPUT_SHORT_NAME, doc = "The input SAM/BAM file to revert the state of.")
+    public File INPUT;
+
+    @Option(shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc = "The output SAM/BAM file to create.")
+    public File OUTPUT;
+
+    @Option(shortName = "SO", doc = "The sort order to create the reverted output file with."
+            + "By default, the sort order will be the same as the input.", optional = true)
+    public SAMFileHeader.SortOrder SORT_ORDER = null;
+
+    @Option(shortName = StandardOptionDefinitions.USE_ORIGINAL_QUALITIES_SHORT_NAME, doc = "True to restore original" +
+            " qualities from the OQ field to the QUAL field if available.")
+    public boolean RESTORE_ORIGINAL_QUALITIES = true;
+
+    @Option(doc = "The maximum number of records to examine to determine if we can exit early and not output, given that"
+            + " there are a no original base qualities (if we are to restore) and mate cigars exist."
+            + " Set to 0 to never skip the file.")
+    public int MAX_RECORDS_TO_EXAMINE = 10000;
+
+    private final static Log log = Log.getInstance(RevertOriginalBaseQualitiesAndAddMateCigar.class);
+
+    public RevertOriginalBaseQualitiesAndAddMateCigar() {
+        this.CREATE_INDEX = true;
+        this.CREATE_MD5_FILE = true;
+    }
+
+    /** Default main method impl. */
+    public static void main(final String[] args) {
+        new RevertOriginalBaseQualitiesAndAddMateCigar().instanceMainWithExit(args);
+    }
+
+    public int doWork() {
+        IOUtil.assertFileIsReadable(INPUT);
+        IOUtil.assertFileIsWritable(OUTPUT);
+
+        boolean foundPairedMappedReads = false;
+
+        // Check if we can skip this file since it does not have OQ tags and the mate cigar tag is already there.
+        final CanSkipSamFile skipSamFile = RevertOriginalBaseQualitiesAndAddMateCigar.canSkipSAMFile(INPUT, MAX_RECORDS_TO_EXAMINE,
+                RESTORE_ORIGINAL_QUALITIES, REFERENCE_SEQUENCE);
+        log.info(skipSamFile.getMessage(MAX_RECORDS_TO_EXAMINE));
+        if (skipSamFile.canSkip()) return 0;
+
+        final SamReader in = SamReaderFactory.makeDefault().referenceSequence(REFERENCE_SEQUENCE).enable(SamReaderFactory.Option.EAGERLY_DECODE).open(INPUT);
+        final SAMFileHeader inHeader = in.getFileHeader();
+
+        // Build the output writer based on the correct sort order
+        final SAMFileHeader outHeader = inHeader.clone();
+        if (null == SORT_ORDER) this.SORT_ORDER = inHeader.getSortOrder(); // same as the input
+        outHeader.setSortOrder(SORT_ORDER);
+        SAMFileWriterFactory.setDefaultCreateIndexWhileWriting(CREATE_INDEX);
+        SAMFileWriterFactory.setDefaultCreateMd5File(CREATE_MD5_FILE);
+        final SAMFileWriter out = new SAMFileWriterFactory().makeSAMOrBAMWriter(outHeader, false, OUTPUT);
+
+        // Iterate over the records, revert original base qualities, and push them into a SortingCollection by queryname
+        final SortingCollection<SAMRecord> sorter = SortingCollection.newInstance(SAMRecord.class, new BAMRecordCodec(outHeader),
+                new SAMRecordQueryNameComparator(), MAX_RECORDS_IN_RAM);
+        final ProgressLogger revertingProgress = new ProgressLogger(log, 1000000, " reverted OQs");
+        int numOriginalQualitiesRestored = 0;
+        for (final SAMRecord record : in) {
+            // Clean up reads that map off the end of the reference
+            AbstractAlignmentMerger.createNewCigarsIfMapsOffEndOfReference(record);
+
+            if (RESTORE_ORIGINAL_QUALITIES && null != record.getOriginalBaseQualities()) {
+                // revert the original base qualities
+                record.setBaseQualities(record.getOriginalBaseQualities());
+                record.setOriginalBaseQualities(null);
+                numOriginalQualitiesRestored++;
+            }
+            if (!foundPairedMappedReads && record.getReadPairedFlag() && !record.getReadUnmappedFlag()) foundPairedMappedReads = true;
+            revertingProgress.record(record);
+            sorter.add(record);
+        }
+        CloserUtil.close(in);
+        log.info("Reverted the original base qualities for " + numOriginalQualitiesRestored + " records");
+
+        /**
+         * Iterator through sorting collection output
+         * 1. Set mate cigar string and mate information
+         * 2. push record into SAMFileWriter to the output
+         */
+        final SamPairUtil.SetMateInfoIterator sorterIterator = new SamPairUtil.SetMateInfoIterator(sorter.iterator(), true);
+        final ProgressLogger sorterProgress = new ProgressLogger(log, 1000000, " mate cigars added");
+        while (sorterIterator.hasNext()) {
+            final SAMRecord record = sorterIterator.next();
+            out.addAlignment(record);
+            sorterProgress.record(record);
+        }
+        sorterIterator.close();
+        CloserUtil.close(out);
+        log.info("Updated " + sorterIterator.getNumMateCigarsAdded() + " records with mate cigar");
+        if (!foundPairedMappedReads) log.info("Did not find any paired mapped reads.");
+
+        return 0;
+    }
+
+    /**
+     * Used as a return for the canSkipSAMFile function.
+     */
+    public enum CanSkipSamFile {
+        CAN_SKIP("Can skip the BAM file", true),
+        CANNOT_SKIP_FOUND_OQ("Cannot skip the BAM as we found a record with an OQ", false),
+        CANNOT_SKIP_FOUND_NO_MC("Cannot skip the BAM as we found a mate with no mate cigar tag", false),
+        FOUND_NO_EVIDENCE("Found no evidence of OQ or mate with no mate cigar in the first %d records.  Will continue...", false);
+        final private String format;
+        final private boolean skip;
+
+        private CanSkipSamFile(final String format, final boolean skip) {
+            this.format = format;
+            this.skip = skip;
+        }
+
+        public String getMessage(final int maxRecordsToExamine) { return String.format(this.format, maxRecordsToExamine); }
+
+        public boolean canSkip() { return this.skip; }
+    }
+
+    /**
+     * Checks if we can skip the SAM/BAM file when reverting origin base qualities and adding mate cigars.
+     *
+     * @param inputFile                   the SAM/BAM input file
+     * @param maxRecordsToExamine         the maximum number of records to examine before quitting
+     * @param revertOriginalBaseQualities true if we are to revert original base qualities, false otherwise
+     * @return whether we can skip or not, and the explanation why.
+     */
+    public static CanSkipSamFile canSkipSAMFile(final File inputFile, final int maxRecordsToExamine, boolean revertOriginalBaseQualities,
+                                                final File referenceFasta) {
+        final SamReader in = SamReaderFactory.makeDefault().referenceSequence(referenceFasta).enable(SamReaderFactory.Option.EAGERLY_DECODE).open(inputFile);
+        final Iterator<SAMRecord> iterator = in.iterator();
+        int numRecordsExamined = 0;
+        CanSkipSamFile returnType = CanSkipSamFile.FOUND_NO_EVIDENCE;
+
+        while (iterator.hasNext() && numRecordsExamined < maxRecordsToExamine) {
+            final SAMRecord record = iterator.next();
+
+            if (revertOriginalBaseQualities && null != record.getOriginalBaseQualities()) {
+                // has OQ, break and return case #2
+                returnType = CanSkipSamFile.CANNOT_SKIP_FOUND_OQ;
+                break;
+            }
+
+            // check if mate pair and its mate is mapped
+            if (record.getReadPairedFlag() && !record.getMateUnmappedFlag()) {
+                if (null == SAMUtils.getMateCigar(record)) {
+                    // has no MC, break and return case #2
+                    returnType = CanSkipSamFile.CANNOT_SKIP_FOUND_NO_MC;
+                    break;
+                } else {
+                    // has MC, previously checked that it does not have OQ, break and return case #1
+                    returnType = CanSkipSamFile.CAN_SKIP;
+                    break;
+                }
+            }
+
+            numRecordsExamined++;
+        }
+
+        // no more records anyhow, so we can skip
+        if (!iterator.hasNext() && CanSkipSamFile.FOUND_NO_EVIDENCE == returnType) {
+            returnType = CanSkipSamFile.CAN_SKIP;
+        }
+
+        CloserUtil.close(in);
+
+        return returnType;
+    }
+}
diff --git a/src/java/picard/sam/RevertSam.java b/src/java/picard/sam/RevertSam.java
new file mode 100644
index 0000000..b1fc3d7
--- /dev/null
+++ b/src/java/picard/sam/RevertSam.java
@@ -0,0 +1,401 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.sam;
+
+import htsjdk.samtools.BAMRecordCodec;
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMFileHeader.SortOrder;
+import htsjdk.samtools.SAMFileWriter;
+import htsjdk.samtools.SAMFileWriterFactory;
+import htsjdk.samtools.SAMReadGroupRecord;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SAMRecordQueryNameComparator;
+import htsjdk.samtools.SAMRecordUtil;
+import htsjdk.samtools.SAMTag;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.filter.FilteringIterator;
+import htsjdk.samtools.filter.SamRecordFilter;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.FastqQualityFormat;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.PeekableIterator;
+import htsjdk.samtools.util.ProgressLogger;
+import htsjdk.samtools.util.QualityEncodingDetector;
+import htsjdk.samtools.util.SolexaQualityConverter;
+import htsjdk.samtools.util.SortingCollection;
+import picard.PicardException;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.SamOrBam;
+
+import java.io.File;
+import java.text.DecimalFormat;
+import java.text.NumberFormat;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Reverts a SAM file by optionally restoring original quality scores and by removing
+ * all alignment information.
+ */
+ at CommandLineProgramProperties(
+        usage = "Reverts SAM or BAM files to a previous state by removing certain types of information and/or " +
+                "substituting in the original quality scores when available.",
+        usageShort = "Reverts SAM or BAM files to a previous state",
+        programGroup = SamOrBam.class
+)
+public class RevertSam extends CommandLineProgram {
+
+    @Option(shortName = StandardOptionDefinitions.INPUT_SHORT_NAME, doc = "The input SAM/BAM file to revert the state of.")
+    public File INPUT;
+
+    @Option(shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc = "The output SAM/BAM file to create.")
+    public File OUTPUT;
+
+    @Option(shortName = "SO", doc = "The sort order to create the reverted output file with.")
+    public SortOrder SORT_ORDER = SortOrder.queryname;
+
+    @Option(shortName = StandardOptionDefinitions.USE_ORIGINAL_QUALITIES_SHORT_NAME, doc = "True to restore original qualities from the OQ field to the QUAL field if available.")
+    public boolean RESTORE_ORIGINAL_QUALITIES = true;
+
+    @Option(doc = "Remove duplicate read flags from all reads.  Note that if this is true and REMOVE_ALIGNMENT_INFORMATION==false, " +
+            " the output may have the unusual but sometimes desirable trait of having unmapped reads that are marked as duplicates.")
+    public boolean REMOVE_DUPLICATE_INFORMATION = true;
+
+    @Option(doc = "Remove all alignment information from the file.")
+    public boolean REMOVE_ALIGNMENT_INFORMATION = true;
+
+    @Option(doc = "When removing alignment information, the set of optional tags to remove.")
+    public List<String> ATTRIBUTE_TO_CLEAR = new ArrayList<String>() {{
+        add(SAMTag.NM.name());
+        add(SAMTag.UQ.name());
+        add(SAMTag.PG.name());
+        add(SAMTag.MD.name());
+        add(SAMTag.MQ.name());
+        add(SAMTag.SA.name()); // Supplementary alignment metadata
+        add(SAMTag.MC.name());      // Mate Cigar
+    }};
+
+    @Option(doc = "WARNING: This option is potentially destructive. If enabled will discard reads in order to produce " +
+            "a consistent output BAM. Reads discarded include (but are not limited to) paired reads with missing " +
+            "mates, duplicated records, records with mismatches in length of bases and qualities. This option can " +
+            "only be enabled if the output sort order is queryname and will always cause sorting to occur.")
+    public boolean SANITIZE = false;
+
+    @Option(doc = "If SANITIZE=true and higher than MAX_DISCARD_FRACTION reads are discarded due to sanitization then" +
+            "the program will exit with an Exception instead of exiting cleanly. Output BAM will still be valid.")
+    public double MAX_DISCARD_FRACTION = 0.01;
+
+    @Option(doc = "The sample alias to use in the reverted output file.  This will override the existing " +
+            "sample alias in the file and is used only if all the read groups in the input file have the " +
+            "same sample alias ", shortName = StandardOptionDefinitions.SAMPLE_ALIAS_SHORT_NAME, optional = true)
+    public String SAMPLE_ALIAS;
+
+    @Option(doc = "The library name to use in the reverted output file.  This will override the existing " +
+            "sample alias in the file and is used only if all the read groups in the input file have the " +
+            "same sample alias ", shortName = StandardOptionDefinitions.LIBRARY_NAME_SHORT_NAME, optional = true)
+    public String LIBRARY_NAME;
+
+    private final static Log log = Log.getInstance(RevertSam.class);
+
+    /** Default main method impl. */
+    public static void main(final String[] args) {
+        new RevertSam().instanceMainWithExit(args);
+    }
+
+    /**
+     * Enforce that output ordering is queryname when sanitization is turned on since it requires a queryname sort.
+     */
+    @Override
+    protected String[] customCommandLineValidation() {
+        if (SANITIZE && SORT_ORDER != SortOrder.queryname) {
+            return new String[]{"SORT_ORDER must be queryname when sanitization is enabled with SANITIZE=true."};
+        }
+
+        return null;
+    }
+
+    protected int doWork() {
+        IOUtil.assertFileIsReadable(INPUT);
+        IOUtil.assertFileIsWritable(OUTPUT);
+
+        final boolean sanitizing = SANITIZE;
+        final SamReader in = SamReaderFactory.makeDefault().referenceSequence(REFERENCE_SEQUENCE).validationStringency(VALIDATION_STRINGENCY).open(INPUT);
+        final SAMFileHeader inHeader = in.getFileHeader();
+
+        // If we are going to override SAMPLE_ALIAS or LIBRARY_NAME, make sure all the read
+        // groups have the same values.
+        final List<SAMReadGroupRecord> rgs = inHeader.getReadGroups();
+        if (SAMPLE_ALIAS != null || LIBRARY_NAME != null) {
+            boolean allSampleAliasesIdentical = true;
+            boolean allLibraryNamesIdentical = true;
+            for (int i = 1; i < rgs.size(); i++) {
+                if (!rgs.get(0).getSample().equals(rgs.get(i).getSample())) {
+                    allSampleAliasesIdentical = false;
+                }
+                if (!rgs.get(0).getLibrary().equals(rgs.get(i).getLibrary())) {
+                    allLibraryNamesIdentical = false;
+                }
+            }
+            if (SAMPLE_ALIAS != null && !allSampleAliasesIdentical) {
+                throw new PicardException("Read groups have multiple values for sample.  " +
+                        "A value for SAMPLE_ALIAS cannot be supplied.");
+            }
+            if (LIBRARY_NAME != null && !allLibraryNamesIdentical) {
+                throw new PicardException("Read groups have multiple values for library name.  " +
+                        "A value for library name cannot be supplied.");
+            }
+        }
+
+        ////////////////////////////////////////////////////////////////////////////
+        // Build the output writer with an appropriate header based on the options
+        ////////////////////////////////////////////////////////////////////////////
+        final boolean presorted = (inHeader.getSortOrder() == SORT_ORDER) || (SORT_ORDER == SortOrder.queryname && SANITIZE);
+        final SAMFileHeader outHeader = new SAMFileHeader();
+        for (final SAMReadGroupRecord rg : inHeader.getReadGroups()) {
+            if (SAMPLE_ALIAS != null) {
+                rg.setSample(SAMPLE_ALIAS);
+            }
+            if (LIBRARY_NAME != null) {
+                rg.setLibrary(LIBRARY_NAME);
+            }
+            outHeader.addReadGroup(rg);
+        }
+        outHeader.setSortOrder(SORT_ORDER);
+        if (!REMOVE_ALIGNMENT_INFORMATION) {
+            outHeader.setSequenceDictionary(inHeader.getSequenceDictionary());
+            outHeader.setProgramRecords(inHeader.getProgramRecords());
+        }
+
+        final SAMFileWriter out = new SAMFileWriterFactory().makeSAMOrBAMWriter(outHeader, presorted, OUTPUT);
+
+        ////////////////////////////////////////////////////////////////////////////
+        // Build a sorting collection to use if we are sanitizing
+        ////////////////////////////////////////////////////////////////////////////
+        final SortingCollection<SAMRecord> sorter;
+        if (sanitizing) {
+            sorter = SortingCollection.newInstance(SAMRecord.class, new BAMRecordCodec(outHeader), new SAMRecordQueryNameComparator(), MAX_RECORDS_IN_RAM);
+        } else {
+            sorter = null;
+        }
+
+        final ProgressLogger progress = new ProgressLogger(log, 1000000, "Reverted");
+        for (final SAMRecord rec : in) {
+            // Weed out non-primary and supplemental read as we don't want duplicates in the reverted file!
+            if (rec.isSecondaryOrSupplementary()) continue;
+
+            // Actually to the reverting of the remaining records
+            revertSamRecord(rec);
+
+            if (sanitizing) sorter.add(rec);
+            else out.addAlignment(rec);
+            progress.record(rec);
+        }
+
+        ////////////////////////////////////////////////////////////////////////////
+        // Now if we're sanitizing, clean up the records and write them to the output
+        ////////////////////////////////////////////////////////////////////////////
+        if (!sanitizing) {
+            out.close();
+        } else {
+
+            long total = 0, discarded = 0;
+            final PeekableIterator<SAMRecord> iterator = new PeekableIterator<SAMRecord>(sorter.iterator());
+            final Map<SAMReadGroupRecord, FastqQualityFormat> readGroupToFormat = new HashMap<SAMReadGroupRecord, FastqQualityFormat>();
+
+            // Figure out the quality score encoding scheme for each read group.
+            for (final SAMReadGroupRecord rg : inHeader.getReadGroups()) {
+                final SamReader reader = SamReaderFactory.makeDefault().referenceSequence(REFERENCE_SEQUENCE).validationStringency(VALIDATION_STRINGENCY).open(INPUT);
+                final SamRecordFilter filter = new SamRecordFilter() {
+                    public boolean filterOut(final SAMRecord rec) {
+                        return !rec.getReadGroup().getId().equals(rg.getId());
+                    }
+
+                    public boolean filterOut(final SAMRecord first, final SAMRecord second) {
+                        throw new UnsupportedOperationException();
+                    }
+                };
+                readGroupToFormat.put(rg, QualityEncodingDetector.detect(QualityEncodingDetector.DEFAULT_MAX_RECORDS_TO_ITERATE, new FilteringIterator(reader.iterator(), filter), RESTORE_ORIGINAL_QUALITIES));
+                CloserUtil.close(reader);
+            }
+            for (final SAMReadGroupRecord r : readGroupToFormat.keySet()) {
+                log.info("Detected quality format for " + r.getReadGroupId() + ": " + readGroupToFormat.get(r));
+            }
+            if (readGroupToFormat.values().contains(FastqQualityFormat.Solexa)) {
+                log.error("No quality score encoding conversion implemented for " + FastqQualityFormat.Solexa);
+                return -1;
+            }
+
+
+            final ProgressLogger sanitizerProgress = new ProgressLogger(log, 1000000, "Sanitized");
+
+            readNameLoop:
+            while (iterator.hasNext()) {
+                final List<SAMRecord> recs = fetchByReadName(iterator);
+                total += recs.size();
+
+                // Check that all the reads have bases and qualities of the same length
+                for (final SAMRecord rec : recs) {
+                    if (rec.getReadBases().length != rec.getBaseQualities().length) {
+                        log.debug("Discarding " + recs.size() + " reads with name " + rec.getReadName() + " for mismatching bases and quals length.");
+                        discarded += recs.size();
+                        continue readNameLoop;
+                    }
+                }
+
+                // Check that if the first read is marked as unpaired that there is in fact only one read
+                if (!recs.get(0).getReadPairedFlag() && recs.size() > 1) {
+                    log.debug("Discarding " + recs.size() + " reads with name " + recs.get(0).getReadName() + " because they claim to be unpaired.");
+                    discarded += recs.size();
+                    continue readNameLoop;
+                }
+
+                // Check that if we have paired reads there is exactly one first of pair and one second of pair
+                if (recs.get(0).getReadPairedFlag()) {
+                    int firsts = 0, seconds = 0, unpaired = 0;
+                    for (final SAMRecord rec : recs) {
+                        if (!rec.getReadPairedFlag()) ++unpaired;
+                        if (rec.getFirstOfPairFlag()) ++firsts;
+                        if (rec.getSecondOfPairFlag()) ++seconds;
+                    }
+
+                    if (unpaired > 0 || firsts != 1 || seconds != 1) {
+                        log.debug("Discarding " + recs.size() + " reads with name " + recs.get(0).getReadName() + " because pairing information in corrupt.");
+                        discarded += recs.size();
+                        continue readNameLoop;
+                    }
+                }
+
+                // If we've made it this far spit the records into the output!
+                for (final SAMRecord rec : recs) {
+                    // The only valid quality score encoding scheme is standard; if it's not standard, change it.
+                    final FastqQualityFormat recordFormat = readGroupToFormat.get(rec.getReadGroup());
+                    if (!recordFormat.equals(FastqQualityFormat.Standard)) {
+                        final byte quals[] = rec.getBaseQualities();
+                        for (int i = 0; i < quals.length; i++) {
+                            quals[i] -= SolexaQualityConverter.ILLUMINA_TO_PHRED_SUBTRAHEND;
+                        }
+                        rec.setBaseQualities(quals);
+                    }
+                    out.addAlignment(rec);
+                    sanitizerProgress.record(rec);
+                }
+            }
+
+            out.close();
+
+            final double discardRate = discarded / (double) total;
+            final NumberFormat fmt = new DecimalFormat("0.000%");
+            log.info("Discarded " + discarded + " out of " + total + " (" + fmt.format(discardRate) + ") reads in order to sanitize output.");
+
+            if (discarded / (double) total > MAX_DISCARD_FRACTION) {
+                throw new PicardException("Discarded " + fmt.format(discardRate) + " which is above MAX_DISCARD_FRACTION of " + fmt.format(MAX_DISCARD_FRACTION));
+            }
+        }
+
+        CloserUtil.close(in);
+        return 0;
+    }
+
+    /**
+     * Generates a list by consuming from the iterator in order starting with the first available
+     * read and continuing while subsequent reads share the same read name. If there are no reads
+     * remaining returns an empty list.
+     */
+    private List<SAMRecord> fetchByReadName(final PeekableIterator<SAMRecord> iterator) {
+        final List<SAMRecord> out = new LinkedList<SAMRecord>();
+
+        if (iterator.hasNext()) {
+            final SAMRecord first = iterator.next();
+            out.add(first);
+
+            while (iterator.hasNext() && iterator.peek().getReadName().equals(first.getReadName())) {
+                out.add(iterator.next());
+            }
+        }
+
+        return out;
+    }
+
+    /**
+     * Takes an individual SAMRecord and applies the set of changes/reversions to it that
+     * have been requested by program level options.
+     */
+    public void revertSamRecord(final SAMRecord rec) {
+        if (RESTORE_ORIGINAL_QUALITIES) {
+            final byte[] oq = rec.getOriginalBaseQualities();
+            if (oq != null) {
+                rec.setBaseQualities(oq);
+                rec.setOriginalBaseQualities(null);
+            }
+        }
+
+        if (REMOVE_DUPLICATE_INFORMATION) {
+            rec.setDuplicateReadFlag(false);
+        }
+
+        if (REMOVE_ALIGNMENT_INFORMATION) {
+            if (rec.getReadNegativeStrandFlag()) {
+                SAMRecordUtil.reverseComplement(rec);
+                rec.setReadNegativeStrandFlag(false);
+            }
+
+            // Remove all alignment based information about the read itself
+            rec.setReferenceIndex(SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX);
+            rec.setAlignmentStart(SAMRecord.NO_ALIGNMENT_START);
+            rec.setCigarString(SAMRecord.NO_ALIGNMENT_CIGAR);
+            rec.setMappingQuality(SAMRecord.NO_MAPPING_QUALITY);
+
+            if (!rec.getReadUnmappedFlag()) {
+                rec.setInferredInsertSize(0);
+                rec.setNotPrimaryAlignmentFlag(false);
+                rec.setProperPairFlag(false);
+                rec.setReadUnmappedFlag(true);
+
+            }
+
+            // Then remove any mate flags and info related to alignment
+            if (rec.getReadPairedFlag()) {
+                rec.setMateAlignmentStart(SAMRecord.NO_ALIGNMENT_START);
+                rec.setMateNegativeStrandFlag(false);
+                rec.setMateReferenceIndex(SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX);
+                rec.setMateUnmappedFlag(true);
+            }
+
+            // And then remove any tags that are calculated from the alignment
+            for (final String tag : ATTRIBUTE_TO_CLEAR) {
+                rec.setAttribute(tag, null);
+            }
+        }
+    }
+
+}
diff --git a/src/java/picard/sam/SamAlignmentMerger.java b/src/java/picard/sam/SamAlignmentMerger.java
new file mode 100644
index 0000000..b2936f9
--- /dev/null
+++ b/src/java/picard/sam/SamAlignmentMerger.java
@@ -0,0 +1,338 @@
+package picard.sam;
+
+import htsjdk.samtools.BAMRecordCodec;
+import htsjdk.samtools.CigarElement;
+import htsjdk.samtools.CigarOperator;
+import htsjdk.samtools.MergingSamRecordIterator;
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMFileHeader.SortOrder;
+import htsjdk.samtools.SAMProgramRecord;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SAMRecordQueryNameComparator;
+import htsjdk.samtools.SamFileHeaderMerger;
+import htsjdk.samtools.SamPairUtil;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.ValidationStringency;
+import htsjdk.samtools.util.CloseableIterator;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.DelegatingIterator;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.PeekableIterator;
+import htsjdk.samtools.util.SortingCollection;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Class that takes in a set of alignment information in SAM format and merges it with the set
+ * of all reads for which alignment was attempted, stored in an unmapped SAM file.  This
+ * class overrides mergeAlignment in AbstractAlignmentNMerger and proceeds on the assumption that
+ * the underlying alignment records are aleady in query-name sorted order (true for bwa).  If
+ * they are not, the mergeAlignment method catches the IllegalStateException, forces a sort
+ * of the underlying alignment records, and tries again.
+ *
+ * @author ktibbett at broadinstitute.org
+ */
+public class SamAlignmentMerger extends AbstractAlignmentMerger {
+
+    private final Log log = Log.getInstance(SamAlignmentMerger.class);
+    private final List<File> alignedSamFile;
+    private final List<File> read1AlignedSamFile;
+    private final List<File> read2AlignedSamFile;
+    private final int maxGaps;
+    private boolean forceSort = false;
+
+    /**
+     * Constructor
+     *
+     * @param unmappedBamFile                   The BAM file that was used as the input to the aligner, which will
+     *                                          include info on all the reads that did not map.  Required.
+     * @param targetBamFile                     The file to which to write the merged SAM records. Required.
+     * @param referenceFasta                    The reference sequence for the map files. Required.
+     * @param programRecord                     Program record for taget file SAMRecords created.
+     * @param clipAdapters                      Whether adapters marked in unmapped BAM file should be marked as
+     *                                          soft clipped in the merged bam. Required.
+     * @param bisulfiteSequence                 Whether the reads are bisulfite sequence (used when calculating the
+     *                                          NM and UQ tags). Required.
+     * @param alignedReadsOnly                  Whether to output only those reads that have alignment data
+     * @param alignedSamFile                    The SAM file(s) with alignment information.  Optional.  If this is
+     *                                          not provided, then read1AlignedSamFile and read2AlignedSamFile must be.
+     * @param maxGaps                           The maximum number of insertions or deletions permitted in an
+     *                                          alignment.  Alignments with more than this many gaps will be ignored.
+     *                                          -1 means to allow any number of gaps.
+     * @param attributesToRetain                attributes from the alignment record that should be
+     *                                          removed when merging.  This overrides attributesToRetain if they share
+     *                                          common tags.
+     * @param read1BasesTrimmed                 The number of bases trimmed from start of read 1 prior to alignment.  Optional.
+     * @param read2BasesTrimmed                 The number of bases trimmed from start of read 2 prior to alignment.  Optional.
+     * @param read1AlignedSamFile               The alignment records for read1.  Used when the two ends of a read are
+     *                                          aligned separately.  This is optional, but must be specified if
+     *                                          alignedSamFile is not.
+     * @param read2AlignedSamFile               The alignment records for read1.  Used when the two ends of a read are
+     *                                          aligned separately.  This is optional, but must be specified if
+     *                                          alignedSamFile is not.
+     * @param expectedOrientations              A List of SamPairUtil.PairOrientations that are expected for
+     *                                          aligned pairs.  Used to determine the properPair flag.
+     * @param sortOrder                         The order in which the merged records should be output.  If null,
+     *                                          output will be coordinate-sorted
+     * @param primaryAlignmentSelectionStrategy How to handle multiple alignments for a fragment or read pair,
+     *                                          in which none are primary, or more than one is marked primary
+     * @param addMateCigar                      True if we are to add or maintain the mate CIGAR (MC) tag, false if we are to remove or not include.
+     */
+    public SamAlignmentMerger(final File unmappedBamFile, final File targetBamFile, final File referenceFasta,
+                              final SAMProgramRecord programRecord, final boolean clipAdapters, final boolean bisulfiteSequence,
+                              final boolean alignedReadsOnly,
+                              final List<File> alignedSamFile, final int maxGaps, final List<String> attributesToRetain,
+                              final List<String> attributesToRemove,
+                              final Integer read1BasesTrimmed, final Integer read2BasesTrimmed,
+                              final List<File> read1AlignedSamFile, final List<File> read2AlignedSamFile,
+                              final List<SamPairUtil.PairOrientation> expectedOrientations,
+                              final SortOrder sortOrder,
+                              final PrimaryAlignmentSelectionStrategy primaryAlignmentSelectionStrategy,
+                              final boolean addMateCigar) {
+
+        super(unmappedBamFile, targetBamFile, referenceFasta, clipAdapters, bisulfiteSequence,
+                alignedReadsOnly, programRecord, attributesToRetain, attributesToRemove, read1BasesTrimmed,
+                read2BasesTrimmed, expectedOrientations, sortOrder, primaryAlignmentSelectionStrategy, addMateCigar);
+
+        if ((alignedSamFile == null || alignedSamFile.size() == 0) &&
+                (read1AlignedSamFile == null || read1AlignedSamFile.size() == 0 ||
+                        read2AlignedSamFile == null || read2AlignedSamFile.size() == 0)) {
+            throw new IllegalArgumentException("Either alignedSamFile or BOTH of read1AlignedSamFile and " +
+                    "read2AlignedSamFile must be specified.");
+        }
+
+        if (alignedSamFile != null) {
+            for (final File f : alignedSamFile) {
+                IOUtil.assertFileIsReadable(f);
+            }
+        } else {
+            for (final File f : read1AlignedSamFile) {
+                IOUtil.assertFileIsReadable(f);
+            }
+            for (final File f : read2AlignedSamFile) {
+                IOUtil.assertFileIsReadable(f);
+            }
+        }
+
+        this.alignedSamFile = alignedSamFile;
+        this.read1AlignedSamFile = read1AlignedSamFile;
+        this.read2AlignedSamFile = read2AlignedSamFile;
+        this.maxGaps = maxGaps;
+
+        log.info("Processing SAM file(s): " + alignedSamFile != null ? alignedSamFile : read1AlignedSamFile + "," + read2AlignedSamFile);
+    }
+
+
+    /**
+     * Merges the alignment from the map file with the non-aligned records from the source BAM file.
+     * Overrides mergeAlignment in AbstractAlignmentMerger.  Tries first to proceed on the assumption
+     * that the alignment records are pre-sorted.  If not, catches the exception, forces a sort, and
+     * tries again.
+     */
+    public void mergeAlignment(final File referenceFasta) {
+        try {
+            super.mergeAlignment(referenceFasta);
+        } catch (final IllegalStateException ise) {
+            log.warn("Exception merging bam alignment - attempting to sort aligned reads and try again: ", ise.getMessage());
+            forceSort = true;
+            resetRefSeqFileWalker();
+            super.mergeAlignment(referenceFasta);
+        }
+    }
+
+    /**
+     * Reads the aligned SAM records into a SortingCollection and returns an iterator over that collection
+     */
+    protected CloseableIterator<SAMRecord> getQuerynameSortedAlignedRecords() {
+
+        final CloseableIterator<SAMRecord> mergingIterator;
+        final SAMFileHeader header;
+
+        // When the alignment records, including both ends of a pair, are in SAM files
+        if (alignedSamFile != null && alignedSamFile.size() > 0) {
+            final List<SAMFileHeader> headers = new ArrayList<SAMFileHeader>(alignedSamFile.size());
+            final List<SamReader> readers = new ArrayList<SamReader>(alignedSamFile.size());
+            for (final File f : this.alignedSamFile) {
+                final SamReader r = SamReaderFactory.makeDefault().referenceSequence(referenceFasta).open(f);
+                headers.add(r.getFileHeader());
+                readers.add(r);
+
+                // As we're going through and opening the aligned files, if we don't have a @PG yet
+                // and there is only a single one in the input file, use that!
+                if (getProgramRecord() == null && r.getFileHeader().getProgramRecords().size() == 1) {
+                    setProgramRecord(r.getFileHeader().getProgramRecords().iterator().next());
+                }
+            }
+
+            final SamFileHeaderMerger headerMerger = new SamFileHeaderMerger(SortOrder.queryname, headers, false);
+
+            mergingIterator = new MergingSamRecordIterator(headerMerger, readers, true);
+            header = headerMerger.getMergedHeader();
+
+        }
+        // When the ends are aligned separately and don't have firstOfPair information correctly
+        // set we use this branch.
+        else {
+            mergingIterator = new SeparateEndAlignmentIterator(this.read1AlignedSamFile, this.read2AlignedSamFile, referenceFasta);
+            header = ((SeparateEndAlignmentIterator) mergingIterator).getHeader();
+
+            // As we're going through and opening the aligned files, if we don't have a @PG yet
+            // and there is only a single one in the input file, use that!
+            if (getProgramRecord() == null && header.getProgramRecords().size() == 1) {
+                setProgramRecord(header.getProgramRecords().iterator().next());
+            }
+        }
+
+
+        if (!forceSort) {
+            return mergingIterator;
+        }
+
+
+        final SortingCollection<SAMRecord> alignmentSorter = SortingCollection.newInstance(SAMRecord.class,
+                new BAMRecordCodec(header), new SAMRecordQueryNameComparator(), MAX_RECORDS_IN_RAM);
+
+        int count = 0;
+        while (mergingIterator.hasNext()) {
+            alignmentSorter.add(mergingIterator.next());
+            count++;
+            if (count > 0 && count % 1000000 == 0) {
+                log.info("Read " + count + " records from alignment SAM/BAM.");
+            }
+        }
+        log.info("Finished reading " + count + " total records from alignment SAM/BAM.");
+
+        mergingIterator.close();
+        return new DelegatingIterator<SAMRecord>(alignmentSorter.iterator()) {
+            @Override
+            public void close() {
+                super.close();
+                alignmentSorter.cleanup();
+            }
+        };
+    }
+
+    private class SuffixTrimingSamRecordIterator implements CloseableIterator<SAMRecord> {
+        private final CloseableIterator<SAMRecord> underlyingIterator;
+        private final String suffixToTrim;
+
+        private SuffixTrimingSamRecordIterator(final CloseableIterator<SAMRecord> underlyingIterator, final String suffixToTrim) {
+            this.underlyingIterator = underlyingIterator;
+            this.suffixToTrim = suffixToTrim;
+        }
+
+        @Override
+        public void close() {
+            underlyingIterator.close();
+        }
+
+        @Override
+        public boolean hasNext() {
+            return underlyingIterator.hasNext();
+        }
+
+        @Override
+        public SAMRecord next() {
+            final SAMRecord rec = underlyingIterator.next();
+            final String readName = rec.getReadName();
+            if (readName.endsWith(suffixToTrim)) {
+                rec.setReadName(readName.substring(0, readName.length() - suffixToTrim.length()));
+            }
+            return rec;
+        }
+
+        @Override
+        public void remove() {
+            underlyingIterator.remove();
+        }
+    }
+
+    private class SeparateEndAlignmentIterator implements CloseableIterator<SAMRecord> {
+
+        private final PeekableIterator<SAMRecord> read1Iterator;
+        private final PeekableIterator<SAMRecord> read2Iterator;
+        private final SAMFileHeader header;
+
+        public SeparateEndAlignmentIterator(final List<File> read1Alignments, final List<File> read2Alignments, File referenceFasta) {
+            final List<SAMFileHeader> headers = new ArrayList<SAMFileHeader>();
+            final List<SamReader> read1 = new ArrayList<SamReader>(read1Alignments.size());
+            final List<SamReader> read2 = new ArrayList<SamReader>(read2Alignments.size());
+            for (final File f : read1Alignments) {
+                final SamReader r = SamReaderFactory.makeDefault().referenceSequence(referenceFasta).open(f);
+                headers.add(r.getFileHeader());
+                read1.add(r);
+            }
+            for (final File f : read2Alignments) {
+                final SamReader r = SamReaderFactory.makeDefault().referenceSequence(referenceFasta).open(f);
+                headers.add(r.getFileHeader());
+                read2.add(r);
+            }
+
+            final SamFileHeaderMerger headerMerger = new SamFileHeaderMerger(SAMFileHeader.SortOrder.coordinate, headers, false);
+            read1Iterator = new PeekableIterator<SAMRecord>(
+                    new SuffixTrimingSamRecordIterator(new MergingSamRecordIterator(headerMerger, read1, true), "/1"));
+            read2Iterator = new PeekableIterator<SAMRecord>(
+                    new SuffixTrimingSamRecordIterator(new MergingSamRecordIterator(headerMerger, read2, true), "/2"));
+
+            header = headerMerger.getMergedHeader();
+        }
+
+        public void close() {
+            read1Iterator.close();
+            read2Iterator.close();
+        }
+
+        public boolean hasNext() {
+            return read1Iterator.hasNext() || read2Iterator.hasNext();
+        }
+
+        public SAMRecord next() {
+            if (read1Iterator.hasNext()) {
+                if (read2Iterator.hasNext()) {
+                    return (read1Iterator.peek().getReadName().compareTo(read2Iterator.peek().getReadName()) <= 0)
+                            ? setPairFlags(read1Iterator.next(), true)
+                            : setPairFlags(read2Iterator.next(), false);
+                } else {
+                    return setPairFlags(read1Iterator.next(), true);
+                }
+            } else {
+                return setPairFlags(read2Iterator.next(), false);
+            }
+        }
+
+        public void remove() {
+            throw new UnsupportedOperationException("remove() not supported");
+        }
+
+        public SAMFileHeader getHeader() { return this.header; }
+
+        private SAMRecord setPairFlags(final SAMRecord sam, final boolean firstOfPair) {
+            sam.setReadPairedFlag(true);
+            sam.setFirstOfPairFlag(firstOfPair);
+            sam.setSecondOfPairFlag(!firstOfPair);
+            return sam;
+        }
+    }
+
+    /**
+     * For now, we only ignore those alignments that have more than <code>maxGaps</code> insertions
+     * or deletions.
+     */
+    protected boolean ignoreAlignment(final SAMRecord sam) {
+        if (maxGaps == -1) return false;
+        int gaps = 0;
+        for (final CigarElement el : sam.getCigar().getCigarElements()) {
+            if (el.getOperator() == CigarOperator.I || el.getOperator() == CigarOperator.D) {
+                gaps++;
+            }
+        }
+        return gaps > maxGaps;
+    }
+
+    // Accessor for testing
+    public boolean getForceSort() {return this.forceSort; }
+}
diff --git a/src/java/picard/sam/SamFormatConverter.java b/src/java/picard/sam/SamFormatConverter.java
new file mode 100644
index 0000000..7b50364
--- /dev/null
+++ b/src/java/picard/sam/SamFormatConverter.java
@@ -0,0 +1,91 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.sam;
+
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMFileWriter;
+import htsjdk.samtools.SAMFileWriterFactory;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.ProgressLogger;
+import picard.PicardException;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.SamOrBam;
+
+import java.io.File;
+
+/**
+ * Converts a BAM file to human-readable SAM output or vice versa
+ *
+ * @author ktibbett at broadinstitute.org
+ */
+ at CommandLineProgramProperties(
+        usage = "Convert a BAM file to a SAM file, or SAM to BAM.\n" +
+                "Input and output formats are determined by file extension.",
+        usageShort = "Convert a BAM file to a SAM file, or a SAM to a BAM",
+        programGroup = SamOrBam.class
+)
+public class
+        SamFormatConverter extends CommandLineProgram {
+
+    private static final String PROGRAM_VERSION = "1.0";
+
+    // The following attributes define the command-line arguments
+
+    @Option(doc = "The BAM or SAM file to parse.", shortName = StandardOptionDefinitions.INPUT_SHORT_NAME)
+    public File INPUT;
+    @Option(doc = "The BAM or SAM output file. ", shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME)
+    public File OUTPUT;
+
+    public static void main(final String[] argv) {
+        new SamFormatConverter().instanceMainWithExit(argv);
+    }
+
+    protected int doWork() {
+        IOUtil.assertFileIsReadable(INPUT);
+        IOUtil.assertFileIsWritable(OUTPUT);
+        final SamReader reader = SamReaderFactory.makeDefault().referenceSequence(REFERENCE_SEQUENCE).open(INPUT);
+        final SAMFileWriter writer = new SAMFileWriterFactory().makeWriter(reader.getFileHeader(), true, OUTPUT, REFERENCE_SEQUENCE);
+
+        if (CREATE_INDEX && writer.getFileHeader().getSortOrder() != SAMFileHeader.SortOrder.coordinate) {
+            throw new PicardException("Can't CREATE_INDEX unless sort order is coordinate");
+        }
+
+        final ProgressLogger progress = new ProgressLogger(Log.getInstance(SamFormatConverter.class));
+        for (final SAMRecord rec : reader) {
+            writer.addAlignment(rec);
+            progress.record(rec);
+        }
+        CloserUtil.close(reader);
+        writer.close();
+        return 0;
+    }
+}
diff --git a/src/java/picard/sam/SamToFastq.java b/src/java/picard/sam/SamToFastq.java
new file mode 100755
index 0000000..83172d0
--- /dev/null
+++ b/src/java/picard/sam/SamToFastq.java
@@ -0,0 +1,466 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.sam;
+
+import htsjdk.samtools.SAMReadGroupRecord;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SAMUtils;
+import htsjdk.samtools.SAMValidationError;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.fastq.FastqRecord;
+import htsjdk.samtools.fastq.FastqWriter;
+import htsjdk.samtools.fastq.FastqWriterFactory;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Lazy;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.ProgressLogger;
+import htsjdk.samtools.util.SequenceUtil;
+import htsjdk.samtools.util.StringUtil;
+import picard.PicardException;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.SamOrBam;
+
+import java.io.File;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * <p/>
+ * Extracts read sequences and qualities from the input SAM/BAM file and writes them into
+ * the output file in Sanger fastq format.
+ * See <a href="http://maq.sourceforge.net/fastq.shtml">MAQ FastQ specification</a> for details.
+ * In the RC mode (default is True), if the read is aligned and the alignment is to the reverse strand on the genome,
+ * the read's sequence from input sam file will be reverse-complemented prior to writing it to fastq in order restore correctly
+ * the original read sequence as it was generated by the sequencer.
+ */
+ at CommandLineProgramProperties(
+        usage = "Extracts read sequences and qualities from the input SAM/BAM file and writes them into " +
+                "the output file in Sanger fastq format. In the RC mode (default is True), if the read is aligned and the alignment is to the reverse strand on the genome, " +
+                "the read's sequence from input SAM file will be reverse-complemented prior to writing it to fastq in order restore correctly" +
+                "the original read sequence as it was generated by the sequencer.",
+        usageShort = "Converts a SAM/BAM into a FASTQ",
+        programGroup = SamOrBam.class
+)
+public class SamToFastq extends CommandLineProgram {
+
+    @Option(doc = "Input SAM/BAM file to extract reads from", shortName = StandardOptionDefinitions.INPUT_SHORT_NAME)
+    public File INPUT;
+
+    @Option(shortName = "F", doc = "Output fastq file (single-end fastq or, if paired, first end of the pair fastq).",
+            mutex = {"OUTPUT_PER_RG"})
+    public File FASTQ;
+
+    @Option(shortName = "F2", doc = "Output fastq file (if paired, second end of the pair fastq).", optional = true,
+            mutex = {"OUTPUT_PER_RG"})
+    public File SECOND_END_FASTQ;
+
+    @Option(shortName = "FU", doc = "Output fastq file for unpaired reads; may only be provided in paired-fastq mode", optional = true, mutex = {"OUTPUT_PER_RG"})
+    public File UNPAIRED_FASTQ;
+
+    @Option(shortName = "OPRG", doc = "Output a fastq file per read group (two fastq files per read group if the group is paired).",
+            optional = true, mutex = {"FASTQ", "SECOND_END_FASTQ", "UNPAIRED_FASTQ"})
+    public boolean OUTPUT_PER_RG;
+
+    @Option(shortName="RGT", doc = "The read group tag (PU or ID) to be used to output a fastq file per read group.")
+    public String RG_TAG = "PU";
+
+    @Option(shortName = "ODIR", doc = "Directory in which to output the fastq file(s).  Used only when OUTPUT_PER_RG is true.",
+            optional = true)
+    public File OUTPUT_DIR;
+
+    @Option(shortName = "RC", doc = "Re-reverse bases and qualities of reads with negative strand flag set before writing them to fastq",
+            optional = true)
+    public boolean RE_REVERSE = true;
+
+    @Option(shortName = "INTER", doc = "Will generate an interleaved fastq if paired, each line will have /1 or /2 to describe which end it came from")
+    public boolean INTERLEAVE = false;
+
+    @Option(shortName = "NON_PF", doc = "Include non-PF reads from the SAM file into the output " +
+            "FASTQ files. PF means 'passes filtering'. Reads whose 'not passing quality controls' " +
+            "flag is set are non-PF reads.")
+    public boolean INCLUDE_NON_PF_READS = false;
+
+    @Option(shortName = "CLIP_ATTR", doc = "The attribute that stores the position at which " +
+            "the SAM record should be clipped", optional = true)
+    public String CLIPPING_ATTRIBUTE;
+
+    @Option(shortName = "CLIP_ACT", doc = "The action that should be taken with clipped reads: " +
+            "'X' means the reads and qualities should be trimmed at the clipped position; " +
+            "'N' means the bases should be changed to Ns in the clipped region; and any " +
+            "integer means that the base qualities should be set to that value in the " +
+            "clipped region.", optional = true)
+    public String CLIPPING_ACTION;
+
+    @Option(shortName = "R1_TRIM", doc = "The number of bases to trim from the beginning of read 1.")
+    public int READ1_TRIM = 0;
+
+    @Option(shortName = "R1_MAX_BASES", doc = "The maximum number of bases to write from read 1 after trimming. " +
+            "If there are fewer than this many bases left after trimming, all will be written.  If this " +
+            "value is null then all bases left after trimming will be written.", optional = true)
+    public Integer READ1_MAX_BASES_TO_WRITE;
+
+    @Option(shortName = "R2_TRIM", doc = "The number of bases to trim from the beginning of read 2.")
+    public int READ2_TRIM = 0;
+
+    @Option(shortName = "R2_MAX_BASES", doc = "The maximum number of bases to write from read 2 after trimming. " +
+            "If there are fewer than this many bases left after trimming, all will be written.  If this " +
+            "value is null then all bases left after trimming will be written.", optional = true)
+    public Integer READ2_MAX_BASES_TO_WRITE;
+
+    @Option(doc = "If true, include non-primary alignments in the output.  Support of non-primary alignments in SamToFastq " +
+            "is not comprehensive, so there may be exceptions if this is set to true and there are paired reads with non-primary alignments.")
+    public boolean INCLUDE_NON_PRIMARY_ALIGNMENTS = false;
+
+    private final Log log = Log.getInstance(SamToFastq.class);
+
+    public static void main(final String[] argv) {
+        System.exit(new SamToFastq().instanceMain(argv));
+    }
+
+    protected int doWork() {
+        IOUtil.assertFileIsReadable(INPUT);
+        final SamReader reader = SamReaderFactory.makeDefault().referenceSequence(REFERENCE_SEQUENCE).open(INPUT);
+        final Map<String, SAMRecord> firstSeenMates = new HashMap<String, SAMRecord>();
+        final FastqWriterFactory factory = new FastqWriterFactory();
+        factory.setCreateMd5(CREATE_MD5_FILE);
+        final Map<SAMReadGroupRecord, FastqWriters> writers = generateWriters(reader.getFileHeader().getReadGroups(), factory);
+
+        final ProgressLogger progress = new ProgressLogger(log);
+        for (final SAMRecord currentRecord : reader) {
+            if (currentRecord.isSecondaryOrSupplementary() && !INCLUDE_NON_PRIMARY_ALIGNMENTS)
+                continue;
+
+            // Skip non-PF reads as necessary
+            if (currentRecord.getReadFailsVendorQualityCheckFlag() && !INCLUDE_NON_PF_READS)
+                continue;
+
+            final FastqWriters fq = writers.get(currentRecord.getReadGroup());
+            if (currentRecord.getReadPairedFlag()) {
+                final String currentReadName = currentRecord.getReadName();
+                final SAMRecord firstRecord = firstSeenMates.remove(currentReadName);
+                if (firstRecord == null) {
+                    firstSeenMates.put(currentReadName, currentRecord);
+                } else {
+                    assertPairedMates(firstRecord, currentRecord);
+
+                    final SAMRecord read1 =
+                            currentRecord.getFirstOfPairFlag() ? currentRecord : firstRecord;
+                    final SAMRecord read2 =
+                            currentRecord.getFirstOfPairFlag() ? firstRecord : currentRecord;
+                    writeRecord(read1, 1, fq.getFirstOfPair(), READ1_TRIM, READ1_MAX_BASES_TO_WRITE);
+                    final FastqWriter secondOfPairWriter = fq.getSecondOfPair();
+                    if (secondOfPairWriter == null) {
+                        throw new PicardException("Input contains paired reads but no SECOND_END_FASTQ specified.");
+                    }
+                    writeRecord(read2, 2, secondOfPairWriter, READ2_TRIM, READ2_MAX_BASES_TO_WRITE);
+                }
+            } else {
+                writeRecord(currentRecord, null, fq.getUnpaired(), READ1_TRIM, READ1_MAX_BASES_TO_WRITE);
+            }
+
+            progress.record(currentRecord);
+        }
+
+        CloserUtil.close(reader);
+
+        // Close all the fastq writers being careful to close each one only once!
+        for (final FastqWriters writerMapping : new HashSet<FastqWriters>(writers.values())) {
+            writerMapping.closeAll();
+        }
+
+        if (firstSeenMates.size() > 0) {
+            SAMUtils.processValidationError(new SAMValidationError(SAMValidationError.Type.MATE_NOT_FOUND,
+                    "Found " + firstSeenMates.size() + " unpaired mates", null), VALIDATION_STRINGENCY);
+        }
+
+        return 0;
+    }
+
+    /**
+     * Generates the writers for the given read groups or, if we are not emitting per-read-group, just returns the single set of writers.
+     */
+    private Map<SAMReadGroupRecord, FastqWriters> generateWriters(final List<SAMReadGroupRecord> samReadGroupRecords,
+                                                                  final FastqWriterFactory factory) {
+
+        final Map<SAMReadGroupRecord, FastqWriters> writerMap = new HashMap<SAMReadGroupRecord, FastqWriters>();
+
+        final FastqWriters fastqWriters;
+        if (!OUTPUT_PER_RG) {
+            IOUtil.assertFileIsWritable(FASTQ);
+            final FastqWriter firstOfPairWriter = factory.newWriter(FASTQ);
+
+            final FastqWriter secondOfPairWriter;
+            if (INTERLEAVE) {
+                secondOfPairWriter = firstOfPairWriter;
+            } else if (SECOND_END_FASTQ != null) {
+                IOUtil.assertFileIsWritable(SECOND_END_FASTQ);
+                secondOfPairWriter = factory.newWriter(SECOND_END_FASTQ);
+            } else {
+                secondOfPairWriter = null;
+            }
+
+            /** Prepare the writer that will accept unpaired reads.  If we're emitting a single fastq - and assuming single-ended reads -
+             * then this is simply that one fastq writer.  Otherwise, if we're doing paired-end, we emit to a third new writer, since
+             * the other two fastqs are accepting only paired end reads. */
+            final FastqWriter unpairedWriter = UNPAIRED_FASTQ == null ? firstOfPairWriter : factory.newWriter(UNPAIRED_FASTQ);
+            fastqWriters = new FastqWriters(firstOfPairWriter, secondOfPairWriter, unpairedWriter);
+
+            // For all read groups we may find in the bam, register this single set of writers for them.
+            writerMap.put(null, fastqWriters);
+            for (final SAMReadGroupRecord rg : samReadGroupRecords) {
+                writerMap.put(rg, fastqWriters);
+            }
+        } else {
+            // When we're creating a fastq-group per readgroup, by convention we do not emit a special fastq for unpaired reads.
+            for (final SAMReadGroupRecord rg : samReadGroupRecords) {
+                final FastqWriter firstOfPairWriter = factory.newWriter(makeReadGroupFile(rg, "_1"));
+                // Create this writer on-the-fly; if we find no second-of-pair reads, don't bother making a writer (or delegating,
+                // if we're interleaving).
+                final Lazy<FastqWriter> lazySecondOfPairWriter = new Lazy<FastqWriter>(new Lazy.LazyInitializer<FastqWriter>() {
+                    @Override
+                    public FastqWriter make() {
+                        return INTERLEAVE ? firstOfPairWriter : factory.newWriter(makeReadGroupFile(rg, "_2"));
+                    }
+                });
+                writerMap.put(rg, new FastqWriters(firstOfPairWriter, lazySecondOfPairWriter, firstOfPairWriter));
+            }
+        }
+        return writerMap;
+    }
+
+    private File makeReadGroupFile(final SAMReadGroupRecord readGroup, final String preExtSuffix) {
+        String fileName = null;
+        if (RG_TAG.equalsIgnoreCase("PU")){
+            fileName = readGroup.getPlatformUnit();
+        } else if (RG_TAG.equalsIgnoreCase("ID")){
+            fileName = readGroup.getReadGroupId();
+        }
+        if (fileName == null) {
+            throw new PicardException("The selected RG_TAG: "+RG_TAG+" is not present in the bam header.");
+        }
+        fileName = IOUtil.makeFileNameSafe(fileName);
+        if (preExtSuffix != null) fileName += preExtSuffix;
+        fileName += ".fastq";
+
+        final File result = (OUTPUT_DIR != null)
+                ? new File(OUTPUT_DIR, fileName)
+                : new File(fileName);
+        IOUtil.assertFileIsWritable(result);
+        return result;
+    }
+
+    void writeRecord(final SAMRecord read, final Integer mateNumber, final FastqWriter writer,
+                     final int basesToTrim, final Integer maxBasesToWrite) {
+        final String seqHeader = mateNumber == null ? read.getReadName() : read.getReadName() + "/" + mateNumber;
+        String readString = read.getReadString();
+        String baseQualities = read.getBaseQualityString();
+
+        // If we're clipping, do the right thing to the bases or qualities
+        if (CLIPPING_ATTRIBUTE != null) {
+            final Integer clipPoint = (Integer) read.getAttribute(CLIPPING_ATTRIBUTE);
+            if (clipPoint != null) {
+                if (CLIPPING_ACTION.equalsIgnoreCase("X")) {
+                    readString = clip(readString, clipPoint, null,
+                            !read.getReadNegativeStrandFlag());
+                    baseQualities = clip(baseQualities, clipPoint, null,
+                            !read.getReadNegativeStrandFlag());
+
+                } else if (CLIPPING_ACTION.equalsIgnoreCase("N")) {
+                    readString = clip(readString, clipPoint, 'N',
+                            !read.getReadNegativeStrandFlag());
+                } else {
+                    final char newQual = SAMUtils.phredToFastq(
+                            new byte[]{(byte) Integer.parseInt(CLIPPING_ACTION)}).charAt(0);
+                    baseQualities = clip(baseQualities, clipPoint, newQual,
+                            !read.getReadNegativeStrandFlag());
+                }
+            }
+        }
+        if (RE_REVERSE && read.getReadNegativeStrandFlag()) {
+            readString = SequenceUtil.reverseComplement(readString);
+            baseQualities = StringUtil.reverseString(baseQualities);
+        }
+        if (basesToTrim > 0) {
+            readString = readString.substring(basesToTrim);
+            baseQualities = baseQualities.substring(basesToTrim);
+        }
+
+        if (maxBasesToWrite != null && maxBasesToWrite < readString.length()) {
+            readString = readString.substring(0, maxBasesToWrite);
+            baseQualities = baseQualities.substring(0, maxBasesToWrite);
+        }
+
+        writer.write(new FastqRecord(seqHeader, readString, "", baseQualities));
+
+    }
+
+    /**
+     * Utility method to handle the changes required to the base/quality strings by the clipping
+     * parameters.
+     *
+     * @param src         The string to clip
+     * @param point       The 1-based position of the first clipped base in the read
+     * @param replacement If non-null, the character to replace in the clipped positions
+     *                    in the string (a quality score or 'N').  If null, just trim src
+     * @param posStrand   Whether the read is on the positive strand
+     * @return String       The clipped read or qualities
+     */
+    private String clip(final String src, final int point, final Character replacement, final boolean posStrand) {
+        final int len = src.length();
+        String result = posStrand ? src.substring(0, point - 1) : src.substring(len - point + 1);
+        if (replacement != null) {
+            if (posStrand) {
+                for (int i = point; i <= len; i++) {
+                    result += replacement;
+                }
+            } else {
+                for (int i = 0; i <= len - point; i++) {
+                    result = replacement + result;
+                }
+            }
+        }
+        return result;
+    }
+
+    private void assertPairedMates(final SAMRecord record1, final SAMRecord record2) {
+        if (!(record1.getFirstOfPairFlag() && record2.getSecondOfPairFlag() ||
+                record2.getFirstOfPairFlag() && record1.getSecondOfPairFlag())) {
+            throw new PicardException("Illegal mate state: " + record1.getReadName());
+        }
+    }
+
+    /**
+     * Put any custom command-line validation in an override of this method.
+     * clp is initialized at this point and can be used to print usage and access argv.
+     * 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
+     * messages to be written to the appropriate place.
+     */
+    protected String[] customCommandLineValidation() {
+        if (INTERLEAVE && SECOND_END_FASTQ != null) {
+            return new String[]{
+                    "Cannot set INTERLEAVE to true and pass in a SECOND_END_FASTQ"
+            };
+        }
+
+        if (UNPAIRED_FASTQ != null && SECOND_END_FASTQ == null) {
+            return new String[]{
+                    "UNPAIRED_FASTQ may only be set when also emitting read1 and read2 fastqs (so SECOND_END_FASTQ must also be set)."
+            };
+        }
+
+        if ((CLIPPING_ATTRIBUTE != null && CLIPPING_ACTION == null) ||
+                (CLIPPING_ATTRIBUTE == null && CLIPPING_ACTION != null)) {
+            return new String[]{
+                    "Both or neither of CLIPPING_ATTRIBUTE and CLIPPING_ACTION should be set."};
+        }
+
+        if (CLIPPING_ACTION != null) {
+            if (CLIPPING_ACTION.equals("N") || CLIPPING_ACTION.equals("X")) {
+                // Do nothing, this is fine
+            } else {
+                try {
+                    Integer.parseInt(CLIPPING_ACTION);
+                } catch (NumberFormatException nfe) {
+                    return new String[]{"CLIPPING ACTION must be one of: N, X, or an integer"};
+                }
+            }
+        }
+
+        if ((OUTPUT_PER_RG && OUTPUT_DIR == null) || ((!OUTPUT_PER_RG) && OUTPUT_DIR != null)) {
+            return new String[]{
+                    "If OUTPUT_PER_RG is true, then OUTPUT_DIR should be set. " +
+                            "If "};
+        }
+
+        if (OUTPUT_PER_RG) {
+            if (RG_TAG == null) {
+                return new String[]{"If OUTPUT_PER_RG is true, then RG_TAG should be set."};
+            } else if (! (RG_TAG.equalsIgnoreCase("PU") || RG_TAG.equalsIgnoreCase("ID")) ){
+                return new String[]{"RG_TAG must be: PU or ID"};
+            }
+        }
+        return null;
+    }
+
+    /**
+     * A collection of {@link htsjdk.samtools.fastq.FastqWriter}s for particular types of reads.
+     * <p/>
+     * Allows for lazy construction of the second-of-pair writer, since when we are in the "output per read group mode", we only wish to
+     * generate a second-of-pair fastq if we encounter a second-of-pair read.
+     */
+    static class FastqWriters {
+        private final FastqWriter firstOfPair, unpaired;
+        private final Lazy<FastqWriter> secondOfPair;
+
+        /** Constructor if the consumer wishes for the second-of-pair writer to be built on-the-fly. */
+        private FastqWriters(final FastqWriter firstOfPair, final Lazy<FastqWriter> secondOfPair, final FastqWriter unpaired) {
+            this.firstOfPair = firstOfPair;
+            this.unpaired = unpaired;
+            this.secondOfPair = secondOfPair;
+        }
+
+        /** Simple constructor; all writers are pre-initialized.. */
+        private FastqWriters(final FastqWriter firstOfPair, final FastqWriter secondOfPair, final FastqWriter unpaired) {
+            this(firstOfPair, new Lazy<FastqWriter>(new Lazy.LazyInitializer<FastqWriter>() {
+                @Override
+                public FastqWriter make() {
+                    return secondOfPair;
+                }
+            }), unpaired);
+        }
+
+        public FastqWriter getFirstOfPair() {
+            return firstOfPair;
+        }
+
+        public FastqWriter getSecondOfPair() {
+            return secondOfPair.get();
+        }
+
+        public FastqWriter getUnpaired() {
+            return unpaired;
+        }
+
+        public void closeAll() {
+            final Set<FastqWriter> fastqWriters = new HashSet<FastqWriter>();
+            fastqWriters.add(firstOfPair);
+            fastqWriters.add(unpaired);
+            // Make sure this is a no-op if the second writer was never fetched.
+            if (secondOfPair.isInitialized()) fastqWriters.add(secondOfPair.get());
+            for (final FastqWriter fastqWriter : fastqWriters) {
+                fastqWriter.close();
+            }
+        }
+    }
+}
diff --git a/src/java/picard/sam/SortSam.java b/src/java/picard/sam/SortSam.java
new file mode 100644
index 0000000..25c8745
--- /dev/null
+++ b/src/java/picard/sam/SortSam.java
@@ -0,0 +1,92 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.sam;
+
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMFileWriter;
+import htsjdk.samtools.SAMFileWriterFactory;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.ProgressLogger;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.SamOrBam;
+
+import java.io.File;
+
+/**
+ * @author alecw at broadinstitute.org
+ */
+ at CommandLineProgramProperties(
+        usage = "Sorts the input SAM or BAM.\n" +
+                "Input and output formats are determined by file extension.",
+        usageShort = "Sorts a SAM or BAM file",
+        programGroup = SamOrBam.class
+)
+public class SortSam extends CommandLineProgram {
+
+    @Option(doc = "The BAM or SAM file to sort.", shortName = StandardOptionDefinitions.INPUT_SHORT_NAME)
+    public File INPUT;
+
+    @Option(doc = "The sorted BAM or SAM output file. ", shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME)
+    public File OUTPUT;
+
+    @Option(shortName = StandardOptionDefinitions.SORT_ORDER_SHORT_NAME, doc = "Sort order of output file")
+    public SAMFileHeader.SortOrder SORT_ORDER;
+
+    private final Log log = Log.getInstance(SortSam.class);
+
+    public static void main(final String[] argv) {
+        new SortSam().instanceMainWithExit(argv);
+    }
+
+    protected int doWork() {
+        IOUtil.assertFileIsReadable(INPUT);
+        IOUtil.assertFileIsWritable(OUTPUT);
+        final SamReader reader = SamReaderFactory.makeDefault().referenceSequence(REFERENCE_SEQUENCE).open(INPUT);
+        ;
+        reader.getFileHeader().setSortOrder(SORT_ORDER);
+        final SAMFileWriter writer = new SAMFileWriterFactory().makeSAMOrBAMWriter(reader.getFileHeader(), false, OUTPUT);
+        writer.setProgressLogger(
+                new ProgressLogger(log, (int) 1e7, "Wrote", "records from a sorting collection"));
+
+        final ProgressLogger progress = new ProgressLogger(log, (int) 1e7, "Read");
+        for (final SAMRecord rec : reader) {
+            writer.addAlignment(rec);
+            progress.record(rec);
+        }
+
+        log.info("Finished reading inputs, merging and writing to output now.");
+
+        CloserUtil.close(reader);
+        writer.close();
+        return 0;
+    }
+}
diff --git a/src/java/picard/sam/SplitSamByLibrary.java b/src/java/picard/sam/SplitSamByLibrary.java
new file mode 100755
index 0000000..6de2f1c
--- /dev/null
+++ b/src/java/picard/sam/SplitSamByLibrary.java
@@ -0,0 +1,150 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.sam;
+
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMFileWriter;
+import htsjdk.samtools.SAMFileWriterFactory;
+import htsjdk.samtools.SAMReadGroupRecord;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.SamOrBam;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Command-line program to split a SAM or BAM file into separate files based on
+ * library name.
+ *
+ * @author ktibbett at broadinstitute.org
+ */
+ at CommandLineProgramProperties(
+        usage = "Takes a SAM or BAM file and separates all the reads " +
+                "into one SAM or BAM file per library name.  Reads that do not have " +
+                "a read group specified or whose read group does not have a library name " +
+                "are written to a file called 'unknown.'  The format (SAM or BAM) of the  " +
+                "output files matches that of the input file.  ",
+        usageShort = "Splits a SAM or BAM file into individual files by library",
+        programGroup = SamOrBam.class
+)
+public class SplitSamByLibrary extends CommandLineProgram {
+
+    @Option(shortName = StandardOptionDefinitions.INPUT_SHORT_NAME,
+            doc = "The SAM or BAM file to be split. ")
+    public File INPUT;
+    @Option(shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME,
+            doc = "The directory where the library SAM or BAM files should be written " +
+                    "(defaults to the current directory). ", optional = true)
+    public File OUTPUT = new File(".").getAbsoluteFile();
+
+    private static final Log log = Log.getInstance(SplitSamByLibrary.class);
+
+    public static final int NO_LIBRARIES_SPECIFIED_IN_HEADER = 2;
+
+    public static void main(String[] args) {
+        System.exit(new SplitSamByLibrary().instanceMain(args));
+    }
+
+    @Override
+    protected int doWork() {
+        IOUtil.assertFileIsReadable(INPUT);
+        IOUtil.assertDirectoryIsWritable(OUTPUT);
+
+        SamReader reader = SamReaderFactory.makeDefault().open(INPUT);
+        Map<String, SAMFileWriter> libraryToWriter = new HashMap<String, SAMFileWriter>();
+        Map<String, List<SAMReadGroupRecord>> libraryToRg = new HashMap<String, List<SAMReadGroupRecord>>();
+        SAMFileWriterFactory factory = new SAMFileWriterFactory();
+        String extension = reader.type().equals(SamReader.Type.BAM_TYPE) ? ".bam" : ".sam";
+
+        SAMFileHeader unknownHeader = reader.getFileHeader().clone();
+        unknownHeader.setReadGroups(new ArrayList<SAMReadGroupRecord>());
+        SAMFileWriter unknown = null;
+
+        for (SAMReadGroupRecord rg : reader.getFileHeader().getReadGroups()) {
+            String lib = rg.getLibrary();
+            if (lib != null) {
+                if (!libraryToRg.containsKey(lib)) {
+                    libraryToRg.put(lib, new ArrayList<SAMReadGroupRecord>());
+                }
+                libraryToRg.get(lib).add(rg);
+            } else {
+                unknownHeader.addReadGroup(rg);
+            }
+        }
+
+        if (libraryToRg.size() == 0) {
+            log.error("No individual libraries are " +
+                    "specified in the header of " + INPUT.getAbsolutePath());
+            return NO_LIBRARIES_SPECIFIED_IN_HEADER;
+        }
+
+        for (Map.Entry<String, List<SAMReadGroupRecord>> entry : libraryToRg.entrySet()) {
+            String lib = entry.getKey();
+            SAMFileHeader header = reader.getFileHeader().clone();
+            header.setReadGroups(entry.getValue());
+            libraryToWriter.put(lib, factory.makeSAMOrBAMWriter(header, true,
+                    new File(OUTPUT, IOUtil.makeFileNameSafe(lib) + extension)));
+        }
+
+        for (Iterator<SAMRecord> it = reader.iterator(); it.hasNext(); ) {
+            SAMRecord sam = it.next();
+            SAMReadGroupRecord rg = sam.getReadGroup();
+            if (rg != null && rg.getLibrary() != null) {
+                libraryToWriter.get(rg.getLibrary()).addAlignment(sam);
+            } else {
+                if (unknown == null) {
+                    unknown = factory.makeSAMOrBAMWriter(unknownHeader, true,
+                            new File(OUTPUT, "unknown" + extension));
+                }
+                unknown.addAlignment(sam);
+            }
+        }
+
+        // Close the reader and writers
+        CloserUtil.close(reader);
+
+        if (unknown != null) {
+            unknown.close();
+        }
+
+        for (SAMFileWriter writer : libraryToWriter.values()) {
+            writer.close();
+        }
+
+        return 0;
+    }
+}
diff --git a/src/java/picard/sam/ValidateSamFile.java b/src/java/picard/sam/ValidateSamFile.java
new file mode 100644
index 0000000..7b2b578
--- /dev/null
+++ b/src/java/picard/sam/ValidateSamFile.java
@@ -0,0 +1,173 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.sam;
+
+import htsjdk.samtools.SAMValidationError;
+import htsjdk.samtools.SamFileValidator;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.ValidationStringency;
+import htsjdk.samtools.reference.ReferenceSequenceFile;
+import htsjdk.samtools.reference.ReferenceSequenceFileFactory;
+import htsjdk.samtools.util.IOUtil;
+import picard.PicardException;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.SamOrBam;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Command line program wrapping SamFileValidator.
+ *
+ * @author Doug Voet
+ */
+ at CommandLineProgramProperties(
+        usage = "Read a SAM or BAM file and report on its validity.",
+        usageShort = "Validates a SAM or BAM file",
+        programGroup = SamOrBam.class
+)
+public class ValidateSamFile extends CommandLineProgram {
+
+    public enum Mode {VERBOSE, SUMMARY}
+
+    @Option(shortName = StandardOptionDefinitions.INPUT_SHORT_NAME,
+            doc = "Input SAM/BAM file")
+    public File INPUT;
+
+    @Option(shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME,
+            doc = "Output file or standard out if missing",
+            optional = true)
+    public File OUTPUT;
+
+    @Option(shortName = "M",
+            doc = "Mode of output")
+    public Mode MODE = Mode.VERBOSE;
+
+    @Option(doc = "List of validation error types to ignore.")
+    public List<SAMValidationError.Type> IGNORE = new ArrayList<SAMValidationError.Type>();
+
+    @Option(shortName = "MO",
+            doc = "The maximum number of lines output in verbose mode")
+    public Integer MAX_OUTPUT = 100;
+
+    @Option(doc = "If true, only report errors and ignore warnings.")
+    public boolean IGNORE_WARNINGS = false;
+
+    @Option(doc = "If true and input is a BAM file with an index file, also validates the index.")
+    public boolean VALIDATE_INDEX = true;
+
+    @Option(shortName = "BISULFITE",
+            doc = "Whether the SAM or BAM file consists of bisulfite sequenced reads. " +
+                    "If so, C->T is not counted as an error in computing the value of the NM tag.")
+    public boolean IS_BISULFITE_SEQUENCED = false;
+
+    @Option(doc = "Relevant for a coordinate-sorted file containing read pairs only. " +
+            "Maximum number of file handles to keep open when spilling mate info to disk. " +
+            "Set this number a little lower than the per-process maximum number of file that may be open. " +
+            "This number can be found by executing the 'ulimit -n' command on a Unix system.")
+    public int MAX_OPEN_TEMP_FILES = 8000;
+
+    public static void main(final String[] args) {
+        System.exit(new ValidateSamFile().instanceMain(args));
+    }
+
+    @Override
+    protected int doWork() {
+        IOUtil.assertFileIsReadable(INPUT);
+        ReferenceSequenceFile reference = null;
+        if (REFERENCE_SEQUENCE != null) {
+            IOUtil.assertFileIsReadable(REFERENCE_SEQUENCE);
+            reference = ReferenceSequenceFileFactory.getReferenceSequenceFile(REFERENCE_SEQUENCE);
+
+        }
+        final PrintWriter out;
+        if (OUTPUT != null) {
+            IOUtil.assertFileIsWritable(OUTPUT);
+            try {
+                out = new PrintWriter(OUTPUT);
+            } catch (FileNotFoundException e) {
+                // we already asserted this so we should not get here
+                throw new PicardException("Unexpected exception", e);
+            }
+        } else {
+            out = new PrintWriter(System.out);
+        }
+
+        boolean result;
+
+        final SamReaderFactory factory = SamReaderFactory.makeDefault().referenceSequence(REFERENCE_SEQUENCE)
+                .validationStringency(ValidationStringency.SILENT)
+                .enable(SamReaderFactory.Option.VALIDATE_CRC_CHECKSUMS);
+        final SamReader samReader = factory.open(INPUT);
+
+        if (samReader.type() != SamReader.Type.BAM_TYPE) VALIDATE_INDEX = false;
+
+        factory.setOption(SamReaderFactory.Option.CACHE_FILE_BASED_INDEXES, VALIDATE_INDEX);
+        factory.reapplyOptions(samReader);
+
+        final SamFileValidator validator = new SamFileValidator(out, MAX_OPEN_TEMP_FILES);
+        validator.setErrorsToIgnore(IGNORE);
+
+        if (IGNORE_WARNINGS) {
+            validator.setIgnoreWarnings(IGNORE_WARNINGS);
+        }
+        if (MODE == Mode.SUMMARY) {
+            validator.setVerbose(false, 0);
+        } else {
+            validator.setVerbose(true, MAX_OUTPUT);
+        }
+        if (IS_BISULFITE_SEQUENCED) {
+            validator.setBisulfiteSequenced(IS_BISULFITE_SEQUENCED);
+        }
+        if (VALIDATE_INDEX) {
+            validator.setValidateIndex(VALIDATE_INDEX);
+        }
+        if (IOUtil.isRegularPath(INPUT)) {
+            // Do not check termination if reading from a stream
+            validator.validateBamFileTermination(INPUT);
+        }
+
+        result = false;
+
+        switch (MODE) {
+            case SUMMARY:
+                result = validator.validateSamFileSummary(samReader, reference);
+                break;
+            case VERBOSE:
+                result = validator.validateSamFileVerbose(samReader, reference);
+                break;
+        }
+        out.flush();
+
+        return result ? 0 : 1;
+    }
+}
diff --git a/src/java/picard/sam/ViewSam.java b/src/java/picard/sam/ViewSam.java
new file mode 100644
index 0000000..f34ebe8
--- /dev/null
+++ b/src/java/picard/sam/ViewSam.java
@@ -0,0 +1,163 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.sam;
+
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SAMTextHeaderCodec;
+import htsjdk.samtools.SamInputResource;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.util.AsciiWriter;
+import htsjdk.samtools.util.CloseableIterator;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Interval;
+import htsjdk.samtools.util.IntervalList;
+import htsjdk.samtools.util.SamRecordIntervalIteratorFactory;
+import picard.PicardException;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.SamOrBam;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.PrintStream;
+import java.util.List;
+
+/**
+ * Very simple command that just reads a SAM or BAM file and writes out the header
+ * and each records to standard out.  When an (optional) intervals file is specified,
+ * only records overlapping those intervals will be output.
+ *
+ * @author tfennell at broad.mit.edu
+ */
+ at CommandLineProgramProperties(
+        usage = "Prints a SAM or BAM file to the screen.",
+        usageShort = "Prints a SAM or BAM file to the screen",
+        programGroup = SamOrBam.class
+)
+public class ViewSam extends CommandLineProgram {
+    public static enum AlignmentStatus {Aligned, Unaligned, All}
+
+    public static enum PfStatus {PF, NonPF, All}
+
+    public final String USAGE = getStandardUsagePreamble() + "Prints a SAM or BAM file to the screen.";
+    @Option(shortName = StandardOptionDefinitions.INPUT_SHORT_NAME, doc = "The SAM or BAM file or GA4GH url to view.")
+    public String INPUT;
+
+    @Option(doc = "Print out all reads, just the aligned reads or just the unaligned reads.")
+    public AlignmentStatus ALIGNMENT_STATUS = AlignmentStatus.All;
+
+    @Option(doc = "Print out all reads, just the PF reads or just the non-PF reads.")
+    public PfStatus PF_STATUS = PfStatus.All;
+
+    @Option(doc="Print the SAM header only.", optional = true)
+    public boolean HEADER_ONLY = false;
+
+    @Option(doc="Print the alignment records only.", optional = true)
+    public boolean RECORDS_ONLY = false;
+
+    @Option(doc = "An intervals file used to restrict what records are output.", optional = true)
+    public File INTERVAL_LIST;
+
+    public static void main(final String[] args) {
+        new ViewSam().instanceMain(args);
+    }
+
+    @Override
+    protected int doWork() {
+        return writeSamText(System.out);
+    }
+
+    @Override
+    protected String[] customCommandLineValidation() {
+        if (HEADER_ONLY && RECORDS_ONLY) {
+            return new String[]{"Cannot specify both HEADER_ONLY=true and RECORDS_ONLY=true."};
+        }
+        return super.customCommandLineValidation();
+    }
+
+
+    /**
+     * This is factored out of doWork only for unit testing.
+     */
+    int writeSamText(PrintStream printStream) {
+        try {
+            final CloseableIterator<SAMRecord> samRecordsIterator;
+            final SamReader samReader = SamReaderFactory.makeDefault()
+                    .referenceSequence(REFERENCE_SEQUENCE)
+                    .open(SamInputResource.of(INPUT));
+
+            // if we are only using the header or we aren't using intervals, then use the reader as the iterator.
+            // otherwise use the SamRecordIntervalIteratorFactory to make an interval-ed iterator
+            if (HEADER_ONLY || INTERVAL_LIST == null) {
+                samRecordsIterator = samReader.iterator();
+            } else {
+                IOUtil.assertFileIsReadable(INTERVAL_LIST);
+
+                final List<Interval> intervals = IntervalList.fromFile(INTERVAL_LIST).uniqued().getIntervals();
+                samRecordsIterator = new SamRecordIntervalIteratorFactory().makeSamRecordIntervalIterator(samReader, intervals, samReader.hasIndex());
+            }
+            final AsciiWriter writer = new AsciiWriter(printStream);
+            final SAMFileHeader header = samReader.getFileHeader();
+            if (!RECORDS_ONLY) {
+                if (header.getTextHeader() != null) {
+                    writer.write(header.getTextHeader());
+                } else {
+                    // Headers that are too large are not retained as text, so need to regenerate text
+                    new SAMTextHeaderCodec().encode(writer, header, true);
+                }
+            }
+            if (!HEADER_ONLY) {
+                while (samRecordsIterator.hasNext()) {
+                    final SAMRecord rec = samRecordsIterator.next();
+
+                    if (printStream.checkError()) {
+                        return 1;
+                    }
+
+                    if (this.ALIGNMENT_STATUS == AlignmentStatus.Aligned && rec.getReadUnmappedFlag()) continue;
+                    if (this.ALIGNMENT_STATUS == AlignmentStatus.Unaligned && !rec.getReadUnmappedFlag()) continue;
+
+                    if (this.PF_STATUS == PfStatus.PF && rec.getReadFailsVendorQualityCheckFlag()) continue;
+                    if (this.PF_STATUS == PfStatus.NonPF && !rec.getReadFailsVendorQualityCheckFlag()) continue;
+                    writer.write(rec.getSAMString());
+                }
+            }
+            writer.flush();
+            if (printStream.checkError()) {
+                return 1;
+            }
+            CloserUtil.close(writer);
+            CloserUtil.close(samRecordsIterator);
+            return 0;
+        } catch (IOException e) {
+            throw new PicardException("Exception writing SAM text", e);
+        }
+    }
+}
diff --git a/src/java/picard/sam/markduplicates/EstimateLibraryComplexity.java b/src/java/picard/sam/markduplicates/EstimateLibraryComplexity.java
new file mode 100644
index 0000000..ac53b40
--- /dev/null
+++ b/src/java/picard/sam/markduplicates/EstimateLibraryComplexity.java
@@ -0,0 +1,537 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.sam.markduplicates;
+
+import htsjdk.samtools.SAMReadGroupRecord;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.metrics.MetricsFile;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.Histogram;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.PeekableIterator;
+import htsjdk.samtools.util.ProgressLogger;
+import htsjdk.samtools.util.SequenceUtil;
+import htsjdk.samtools.util.SortingCollection;
+import htsjdk.samtools.util.StringUtil;
+import picard.PicardException;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.Metrics;
+import picard.sam.DuplicationMetrics;
+import picard.sam.markduplicates.util.AbstractOpticalDuplicateFinderCommandLineProgram;
+import picard.sam.markduplicates.util.OpticalDuplicateFinder;
+
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+import java.io.EOFException;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import static java.lang.Math.pow;
+
+/**
+ * <p>Attempts to estimate library complexity from sequence alone. Does so by sorting all reads
+ * by the first N bases (5 by default) of each read and then comparing reads with the first
+ * N bases identical to each other for duplicates.  Reads are considered to be duplicates if
+ * they match each other with no gaps and an overall mismatch rate less than or equal to
+ * MAX_DIFF_RATE (0.03 by default).</p>
+ * <p/>
+ * <p>Reads of poor quality are filtered out so as to provide a more accurate estimate. The filtering
+ * removes reads with any no-calls in the first N bases or with a mean base quality lower than
+ * MIN_MEAN_QUALITY across either the first or second read.</p>
+ * <p/>
+ * <p>The algorithm attempts to detect optical duplicates separately from PCR duplicates and excludes
+ * these in the calculation of library size. Also, since there is no alignment to screen out technical
+ * reads one further filter is applied on the data.  After examining all reads a Histogram is built of
+ * [#reads in duplicate set -> #of duplicate sets]; all bins that contain exactly one duplicate set are
+ * then removed from the Histogram as outliers before library size is estimated.</p>
+ *
+ * @author Tim Fennell
+ */
+ at CommandLineProgramProperties(
+        usage = "Attempts to estimate library complexity from sequence of read pairs alone. Does so by sorting all reads " +
+                "by the first N bases (5 by default) of each read and then comparing reads with the first " +
+                "N bases identical to each other for duplicates.  Reads are considered to be duplicates if " +
+                "they match each other with no gaps and an overall mismatch rate less than or equal to " +
+                "MAX_DIFF_RATE (0.03 by default).\n\n" +
+                "Reads of poor quality are filtered out so as to provide a more accurate estimate. The filtering " +
+                "removes reads with any no-calls in the first N bases or with a mean base quality lower than " +
+                "MIN_MEAN_QUALITY across either the first or second read.\n\n" +
+                "Unpaired reads are ignored in this computation.\n\n" +
+                "The algorithm attempts to detect optical duplicates separately from PCR duplicates and excludes " +
+                "these in the calculation of library size. Also, since there is no alignment to screen out technical " +
+                "reads one further filter is applied on the data.  After examining all reads a Histogram is built of " +
+                "[#reads in duplicate set -> #of duplicate sets] all bins that contain exactly one duplicate set are " +
+                "then removed from the Histogram as outliers before library size is estimated.",
+        usageShort = "Estimates library complexity from the sequence of read pairs",
+        programGroup = Metrics.class
+)
+public class EstimateLibraryComplexity extends AbstractOpticalDuplicateFinderCommandLineProgram {
+
+    @Option(shortName = StandardOptionDefinitions.INPUT_SHORT_NAME, doc = "One or more files to combine and " +
+            "estimate library complexity from. Reads can be mapped or unmapped.")
+    public List<File> INPUT;
+
+    @Option(shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME,
+            doc = "Output file to writes per-library metrics to.")
+    public File OUTPUT;
+
+    @Option(doc = "The minimum number of bases at the starts of reads that must be identical for reads to " +
+            "be grouped together for duplicate detection.  In effect total_reads / 4^max_id_bases reads will " +
+            "be compared at a time, so lower numbers will produce more accurate results but consume " +
+            "exponentially more memory and CPU.")
+    public int MIN_IDENTICAL_BASES = 5;
+
+    @Option(doc = "The maximum rate of differences between two reads to call them identical.")
+    public double MAX_DIFF_RATE = 0.03;
+
+    @Option(doc = "The minimum mean quality of the bases in a read pair for the read to be analyzed. Reads with " +
+            "lower average quality are filtered out and not considered in any calculations.")
+    public int MIN_MEAN_QUALITY = 20;
+
+    @Option(doc = "Do not process self-similar groups that are this many times over the mean expected group size. " +
+            "I.e. if the input contains 10m read pairs and MIN_IDENTICAL_BASES is set to 5, then the mean expected " +
+            "group size would be approximately 10 reads.")
+    public int MAX_GROUP_RATIO = 500;
+
+    private final Log log = Log.getInstance(EstimateLibraryComplexity.class);
+
+    /**
+     * Little class to hold the sequence of a pair of reads and tile location information.
+     */
+    static class PairedReadSequence implements OpticalDuplicateFinder.PhysicalLocation {
+        static int size_in_bytes = 2 + 1 + 4 + 1 + 300; // rough guess at memory footprint
+        short readGroup = -1;
+        short tile = -1;
+        short x = -1, y = -1;
+        boolean qualityOk = true;
+        byte[] read1;
+        byte[] read2;
+        short libraryId;
+
+        public short getReadGroup() { return this.readGroup; }
+
+        public void setReadGroup(final short readGroup) { this.readGroup = readGroup; }
+
+        public short getTile() { return this.tile; }
+
+        public void setTile(final short tile) { this.tile = tile; }
+
+        public short getX() { return this.x; }
+
+        public void setX(final short x) { this.x = x; }
+
+        public short getY() { return this.y; }
+
+        public void setY(final short y) { this.y = y; }
+
+        public short getLibraryId() { return this.libraryId; }
+
+        public void setLibraryId(final short libraryId) { this.libraryId = libraryId; }
+    }
+
+    /**
+     * Codec class for writing and read PairedReadSequence objects.
+     */
+    static class PairedReadCodec implements SortingCollection.Codec<PairedReadSequence> {
+        private DataOutputStream out;
+        private DataInputStream in;
+
+        public void setOutputStream(final OutputStream out) {
+            this.out = new DataOutputStream(out);
+        }
+
+        public void setInputStream(final InputStream in) {
+            this.in = new DataInputStream(in);
+        }
+
+        public void encode(final PairedReadSequence val) {
+            try {
+                this.out.writeShort(val.readGroup);
+                this.out.writeShort(val.tile);
+                this.out.writeShort(val.x);
+                this.out.writeShort(val.y);
+                this.out.writeInt(val.read1.length);
+                this.out.write(val.read1);
+                this.out.writeInt(val.read2.length);
+                this.out.write(val.read2);
+            } catch (IOException ioe) {
+                throw new PicardException("Error write out read pair.", ioe);
+            }
+        }
+
+        public PairedReadSequence decode() {
+            try {
+                final PairedReadSequence val = new PairedReadSequence();
+                try {
+                    val.readGroup = this.in.readShort();
+                } catch (EOFException eof) {
+                    return null;
+                }
+
+                val.tile = this.in.readShort();
+                val.x = this.in.readShort();
+                val.y = this.in.readShort();
+
+                int length = this.in.readInt();
+                val.read1 = new byte[length];
+                if (this.in.read(val.read1) != length) {
+                    throw new PicardException("Could not read " + length + " bytes from temporary file.");
+                }
+
+                length = this.in.readInt();
+                val.read2 = new byte[length];
+                if (this.in.read(val.read2) != length) {
+                    throw new PicardException("Could not read " + length + " bytes from temporary file.");
+                }
+
+                return val;
+            } catch (IOException ioe) {
+                throw new PicardException("Exception reading read pair.", ioe);
+            }
+        }
+
+        @Override
+        public SortingCollection.Codec<PairedReadSequence> clone() { return new PairedReadCodec(); }
+    }
+
+    /**
+     * Comparator that orders read pairs on the first N bases of both reads.
+     */
+    class PairedReadComparator implements Comparator<PairedReadSequence> {
+        final int BASES = EstimateLibraryComplexity.this.MIN_IDENTICAL_BASES;
+
+        public int compare(final PairedReadSequence lhs, final PairedReadSequence rhs) {
+            // First compare the first N bases of the first read
+            for (int i = 0; i < BASES; ++i) {
+                final int retval = lhs.read1[i] - rhs.read1[i];
+                if (retval != 0) return retval;
+            }
+
+            // Then compare the first N bases of the second read
+            for (int i = 0; i < BASES; ++i) {
+                final int retval = lhs.read2[i] - rhs.read2[i];
+                if (retval != 0) return retval;
+            }
+
+            return System.identityHashCode(lhs) - System.identityHashCode(rhs);
+        }
+    }
+
+    /** Stock main method. */
+    public static void main(final String[] args) {
+        new EstimateLibraryComplexity().instanceMainWithExit(args);
+    }
+
+    public EstimateLibraryComplexity() {
+        MAX_RECORDS_IN_RAM = (int) (Runtime.getRuntime().maxMemory() / PairedReadSequence.size_in_bytes) / 2;
+    }
+
+    /**
+     * Method that does most of the work.  Reads through the input BAM file and extracts the
+     * read sequences of each read pair and sorts them via a SortingCollection.  Then traverses
+     * the sorted reads and looks at small groups at a time to find duplicates.
+     */
+    @Override
+    protected int doWork() {
+        for (final File f : INPUT) IOUtil.assertFileIsReadable(f);
+
+        log.info("Will store " + MAX_RECORDS_IN_RAM + " read pairs in memory before sorting.");
+
+        final List<SAMReadGroupRecord> readGroups = new ArrayList<SAMReadGroupRecord>();
+        final int recordsRead = 0;
+        final SortingCollection<PairedReadSequence> sorter = SortingCollection.newInstance(PairedReadSequence.class,
+                new PairedReadCodec(),
+                new PairedReadComparator(),
+                MAX_RECORDS_IN_RAM,
+                TMP_DIR);
+
+        // Loop through the input files and pick out the read sequences etc.
+        final ProgressLogger progress = new ProgressLogger(log, (int) 1e6, "Read");
+        for (final File f : INPUT) {
+            final Map<String, PairedReadSequence> pendingByName = new HashMap<String, PairedReadSequence>();
+            final SamReader in = SamReaderFactory.makeDefault().referenceSequence(REFERENCE_SEQUENCE).open(f);
+            readGroups.addAll(in.getFileHeader().getReadGroups());
+
+            for (final SAMRecord rec : in) {
+                if (!rec.getReadPairedFlag()) continue;
+                if (!rec.getFirstOfPairFlag() && !rec.getSecondOfPairFlag()) {
+                    continue;
+                }
+
+                PairedReadSequence prs = pendingByName.remove(rec.getReadName());
+                if (prs == null) {
+                    // Make a new paired read object and add RG and physical location information to it
+                    prs = new PairedReadSequence();
+                    if (opticalDuplicateFinder.addLocationInformation(rec.getReadName(), prs)) {
+                        final SAMReadGroupRecord rg = rec.getReadGroup();
+                        if (rg != null) prs.setReadGroup((short) readGroups.indexOf(rg));
+                    }
+
+                    pendingByName.put(rec.getReadName(), prs);
+                }
+
+                // Read passes quality check if both ends meet the mean quality criteria
+                final boolean passesQualityCheck = passesQualityCheck(rec.getReadBases(),
+                        rec.getBaseQualities(),
+                        MIN_IDENTICAL_BASES,
+                        MIN_MEAN_QUALITY);
+                prs.qualityOk = prs.qualityOk && passesQualityCheck;
+
+                // Get the bases and restore them to their original orientation if necessary
+                final byte[] bases = rec.getReadBases();
+                if (rec.getReadNegativeStrandFlag()) SequenceUtil.reverseComplement(bases);
+
+                if (rec.getFirstOfPairFlag()) {
+                    prs.read1 = bases;
+                } else {
+                    prs.read2 = bases;
+                }
+
+                if (prs.read1 != null && prs.read2 != null && prs.qualityOk) {
+                    sorter.add(prs);
+                }
+
+                progress.record(rec);
+            }
+            CloserUtil.close(in);
+        }
+
+        log.info("Finished reading - moving on to scanning for duplicates.");
+
+        // Now go through the sorted reads and attempt to find duplicates
+        final PeekableIterator<PairedReadSequence> iterator = new PeekableIterator<PairedReadSequence>(sorter.iterator());
+
+        final Map<String, Histogram<Integer>> duplicationHistosByLibrary = new HashMap<String, Histogram<Integer>>();
+        final Map<String, Histogram<Integer>> opticalHistosByLibrary = new HashMap<String, Histogram<Integer>>();
+
+        int groupsProcessed = 0;
+        long lastLogTime = System.currentTimeMillis();
+        final int meanGroupSize = Math.max(1, (recordsRead / 2) / (int) pow(4, MIN_IDENTICAL_BASES * 2));
+
+        while (iterator.hasNext()) {
+            // Get the next group and split it apart by library
+            final List<PairedReadSequence> group = getNextGroup(iterator);
+
+            if (group.size() > meanGroupSize * MAX_GROUP_RATIO) {
+                final PairedReadSequence prs = group.get(0);
+                log.warn("Omitting group with over " + MAX_GROUP_RATIO + " times the expected mean number of read pairs. " +
+                        "Mean=" + meanGroupSize + ", Actual=" + group.size() + ". Prefixes: " +
+                        StringUtil.bytesToString(prs.read1, 0, MIN_IDENTICAL_BASES) +
+                        " / " +
+                        StringUtil.bytesToString(prs.read1, 0, MIN_IDENTICAL_BASES));
+            } else {
+                final Map<String, List<PairedReadSequence>> sequencesByLibrary = splitByLibrary(group, readGroups);
+
+                // Now process the reads by library
+                for (final Map.Entry<String, List<PairedReadSequence>> entry : sequencesByLibrary.entrySet()) {
+                    final String library = entry.getKey();
+                    final List<PairedReadSequence> seqs = entry.getValue();
+
+                    Histogram<Integer> duplicationHisto = duplicationHistosByLibrary.get(library);
+                    Histogram<Integer> opticalHisto = opticalHistosByLibrary.get(library);
+                    if (duplicationHisto == null) {
+                        duplicationHisto = new Histogram<Integer>("duplication_group_count", library);
+                        opticalHisto = new Histogram<Integer>("duplication_group_count", "optical_duplicates");
+                        duplicationHistosByLibrary.put(library, duplicationHisto);
+                        opticalHistosByLibrary.put(library, opticalHisto);
+                    }
+
+                    // Figure out if any reads within this group are duplicates of one another
+                    for (int i = 0; i < seqs.size(); ++i) {
+                        final PairedReadSequence lhs = seqs.get(i);
+                        if (lhs == null) continue;
+                        final List<PairedReadSequence> dupes = new ArrayList<PairedReadSequence>();
+
+                        for (int j = i + 1; j < seqs.size(); ++j) {
+                            final PairedReadSequence rhs = seqs.get(j);
+                            if (rhs == null) continue;
+
+                            if (matches(lhs, rhs, MAX_DIFF_RATE)) {
+                                dupes.add(rhs);
+                                seqs.set(j, null);
+                            }
+                        }
+
+                        if (dupes.size() > 0) {
+                            dupes.add(lhs);
+                            final int duplicateCount = dupes.size();
+                            duplicationHisto.increment(duplicateCount);
+
+                            final boolean[] flags = opticalDuplicateFinder.findOpticalDuplicates(dupes);
+                            for (final boolean b : flags) {
+                                if (b) opticalHisto.increment(duplicateCount);
+                            }
+                        } else {
+                            duplicationHisto.increment(1);
+                        }
+                    }
+                }
+
+                ++groupsProcessed;
+                if (lastLogTime < System.currentTimeMillis() - 60000) {
+                    log.info("Processed " + groupsProcessed + " groups.");
+                    lastLogTime = System.currentTimeMillis();
+                }
+            }
+        }
+
+        iterator.close();
+        sorter.cleanup();
+
+        final MetricsFile<DuplicationMetrics, Integer> file = getMetricsFile();
+        for (final String library : duplicationHistosByLibrary.keySet()) {
+            final Histogram<Integer> duplicationHisto = duplicationHistosByLibrary.get(library);
+            final Histogram<Integer> opticalHisto = opticalHistosByLibrary.get(library);
+            final DuplicationMetrics metrics = new DuplicationMetrics();
+            metrics.LIBRARY = library;
+
+            // Filter out any bins that have only a single entry in them and calcu
+            for (final Integer bin : duplicationHisto.keySet()) {
+                final double duplicateGroups = duplicationHisto.get(bin).getValue();
+                final double opticalDuplicates = opticalHisto.get(bin) == null ? 0 : opticalHisto.get(bin).getValue();
+
+                if (duplicateGroups > 1) {
+                    metrics.READ_PAIRS_EXAMINED += (bin * duplicateGroups);
+                    metrics.READ_PAIR_DUPLICATES += ((bin - 1) * duplicateGroups);
+                    metrics.READ_PAIR_OPTICAL_DUPLICATES += opticalDuplicates;
+                }
+            }
+
+            metrics.calculateDerivedMetrics();
+            file.addMetric(metrics);
+            file.addHistogram(duplicationHisto);
+
+        }
+
+        file.write(OUTPUT);
+
+        return 0;
+    }
+
+    /**
+     * Checks to see if two reads pairs have sequence that are the same, give or take a few
+     * errors/diffs as dictated by the maxDiffRate.
+     */
+    private boolean matches(final PairedReadSequence lhs, final PairedReadSequence rhs, final double maxDiffRate) {
+        final int read1Length = Math.min(lhs.read1.length, rhs.read1.length);
+        final int read2Length = Math.min(lhs.read2.length, rhs.read2.length);
+        final int maxErrors = (int) Math.floor((read1Length + read2Length) * maxDiffRate);
+        int errors = 0;
+
+        // The loop can start from MIN_IDENTICAL_BASES because we've already confirmed that
+        // at least those first few bases are identical when sorting.
+        for (int i = MIN_IDENTICAL_BASES; i < read1Length; ++i) {
+            if (lhs.read1[i] != rhs.read1[i]) {
+                if (++errors > maxErrors) return false;
+            }
+        }
+
+        for (int i = MIN_IDENTICAL_BASES; i < read2Length; ++i) {
+            if (lhs.read2[i] != rhs.read2[i]) {
+                if (++errors > maxErrors) return false;
+            }
+        }
+
+        return true;
+    }
+
+    /**
+     * Pulls out of the iterator the next group of reads that can be compared to each other to
+     * identify duplicates.
+     */
+    List<PairedReadSequence> getNextGroup(final PeekableIterator<PairedReadSequence> iterator) {
+        final List<PairedReadSequence> group = new ArrayList<PairedReadSequence>();
+        final PairedReadSequence first = iterator.next();
+        group.add(first);
+
+        outer:
+        while (iterator.hasNext()) {
+            final PairedReadSequence next = iterator.peek();
+            for (int i = 0; i < MIN_IDENTICAL_BASES; ++i) {
+                if (first.read1[i] != next.read1[i] || first.read2[i] != next.read2[i]) break outer;
+            }
+
+            group.add(iterator.next());
+
+        }
+
+        return group;
+    }
+
+    /**
+     * Takes a list of PairedReadSequence objects and splits them into lists by library.
+     */
+    Map<String, List<PairedReadSequence>> splitByLibrary(final List<PairedReadSequence> input,
+                                                         final List<SAMReadGroupRecord> rgs) {
+
+        final Map<String, List<PairedReadSequence>> out = new HashMap<String, List<PairedReadSequence>>();
+        for (final PairedReadSequence seq : input) {
+            String library = null;
+            if (seq.getReadGroup() != -1) {
+                library = rgs.get(seq.getReadGroup()).getLibrary();
+                if (library == null) library = "Unknown";
+            } else {
+                library = "Unknown";
+            }
+
+            List<PairedReadSequence> librarySeqs = out.get(library);
+            if (librarySeqs == null) {
+                librarySeqs = new ArrayList<PairedReadSequence>();
+                out.put(library, librarySeqs);
+            }
+            librarySeqs.add(seq);
+        }
+
+        return out;
+    }
+
+    /**
+     * Checks that the average quality over the entire read is >= min, and that the first N bases do
+     * not contain any no-calls.
+     */
+    boolean passesQualityCheck(final byte[] bases, final byte[] quals, final int seedLength, final int minQuality) {
+        if (bases.length < seedLength) return false;
+
+        for (int i = 0; i < seedLength; ++i) {
+            if (SequenceUtil.isNoCall(bases[i])) return false;
+        }
+
+        int total = 0;
+        for (final byte b : quals) total += b;
+        return total / quals.length >= minQuality;
+    }
+}
diff --git a/src/java/picard/sam/markduplicates/MarkDuplicates.java b/src/java/picard/sam/markduplicates/MarkDuplicates.java
new file mode 100644
index 0000000..7e3def8
--- /dev/null
+++ b/src/java/picard/sam/markduplicates/MarkDuplicates.java
@@ -0,0 +1,539 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.sam.markduplicates;
+
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.programgroups.SamOrBam;
+import picard.sam.DuplicationMetrics;
+import htsjdk.samtools.ReservedTagConstants;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.ProgressLogger;
+import htsjdk.samtools.*;
+import htsjdk.samtools.util.CloseableIterator;
+import htsjdk.samtools.util.SortingCollection;
+import htsjdk.samtools.util.SortingLongCollection;
+import picard.sam.markduplicates.util.AbstractMarkDuplicatesCommandLineProgram;
+import picard.sam.markduplicates.util.DiskBasedReadEndsForMarkDuplicatesMap;
+import picard.sam.markduplicates.util.LibraryIdGenerator;
+import picard.sam.markduplicates.util.ReadEnds;
+import picard.sam.markduplicates.util.ReadEndsForMarkDuplicates;
+import picard.sam.markduplicates.util.ReadEndsForMarkDuplicatesCodec;
+import picard.sam.markduplicates.util.ReadEndsForMarkDuplicatesMap;
+import htsjdk.samtools.DuplicateScoringStrategy.ScoringStrategy;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * A better duplication marking algorithm that handles all cases including clipped
+ * and gapped alignments.
+ *
+ * @author Tim Fennell
+ */
+ at CommandLineProgramProperties(
+        usage = "Examines aligned records in the supplied SAM or BAM file to locate duplicate molecules. " +
+                "All records are then written to the output file with the duplicate records flagged.",
+        usageShort = "Examines aligned records in the supplied SAM or BAM file to locate duplicate molecules.",
+        programGroup = SamOrBam.class
+)
+public class MarkDuplicates extends AbstractMarkDuplicatesCommandLineProgram {
+    private final Log log = Log.getInstance(MarkDuplicates.class);
+
+    /**
+     * If more than this many sequences in SAM file, don't spill to disk because there will not
+     * be enough file handles.
+     */
+
+    @Option(shortName = "MAX_SEQS",
+            doc = "This option is obsolete. ReadEnds will always be spilled to disk.")
+    public int MAX_SEQUENCES_FOR_DISK_READ_ENDS_MAP = 50000;
+
+    @Option(shortName = "MAX_FILE_HANDLES",
+            doc = "Maximum number of file handles to keep open when spilling read ends to disk. " +
+                    "Set this number a little lower than the per-process maximum number of file that may be open. " +
+                    "This number can be found by executing the 'ulimit -n' command on a Unix system.")
+    public int MAX_FILE_HANDLES_FOR_READ_ENDS_MAP = 8000;
+
+    @Option(doc = "This number, plus the maximum RAM available to the JVM, determine the memory footprint used by " +
+            "some of the sorting collections.  If you are running out of memory, try reducing this number.")
+    public double SORTING_COLLECTION_SIZE_RATIO = 0.25;
+
+    private SortingCollection<ReadEndsForMarkDuplicates> pairSort;
+    private SortingCollection<ReadEndsForMarkDuplicates> fragSort;
+    private SortingLongCollection duplicateIndexes;
+    private int numDuplicateIndices = 0;
+
+    protected LibraryIdGenerator libraryIdGenerator = null; // this is initialized in buildSortedReadEndLists
+
+    public MarkDuplicates() {
+        DUPLICATE_SCORING_STRATEGY = ScoringStrategy.SUM_OF_BASE_QUALITIES;
+    }
+
+    /** Stock main method. */
+    public static void main(final String[] args) {
+        new MarkDuplicates().instanceMainWithExit(args);
+    }
+
+    /**
+     * Main work method.  Reads the BAM file once and collects sorted information about
+     * the 5' ends of both ends of each read (or just one end in the case of pairs).
+     * Then makes a pass through those determining duplicates before re-reading the
+     * input file and writing it out with duplication flags set correctly.
+     */
+    protected int doWork() {
+        IOUtil.assertInputsAreValid(INPUT);
+        IOUtil.assertFileIsWritable(OUTPUT);
+        IOUtil.assertFileIsWritable(METRICS_FILE);
+
+        reportMemoryStats("Start of doWork");
+        log.info("Reading input file and constructing read end information.");
+        buildSortedReadEndLists();
+        reportMemoryStats("After buildSortedReadEndLists");
+        generateDuplicateIndexes();
+        reportMemoryStats("After generateDuplicateIndexes");
+        log.info("Marking " + this.numDuplicateIndices + " records as duplicates.");
+
+        if (this.READ_NAME_REGEX == null) {
+            log.warn("Skipped optical duplicate cluster discovery; library size estimation may be inaccurate!");
+        } else {
+            log.info("Found " + (this.libraryIdGenerator.getNumberOfOpticalDuplicateClusters()) + " optical duplicate clusters.");
+        }
+
+        final SamHeaderAndIterator headerAndIterator = openInputs();
+        final SAMFileHeader header = headerAndIterator.header;
+
+        final SAMFileHeader outputHeader = header.clone();
+        outputHeader.setSortOrder(SAMFileHeader.SortOrder.coordinate);
+        for (final String comment : COMMENT) outputHeader.addComment(comment);
+
+        // Key: previous PG ID on a SAM Record (or null).  Value: New PG ID to replace it.
+        final Map<String, String> chainedPgIds = getChainedPgIds(outputHeader);
+
+        final SAMFileWriter out = new SAMFileWriterFactory().makeSAMOrBAMWriter(outputHeader,
+                true,
+                OUTPUT);
+
+        // Now copy over the file while marking all the necessary indexes as duplicates
+        long recordInFileIndex = 0;
+        long nextDuplicateIndex = (this.duplicateIndexes.hasNext() ? this.duplicateIndexes.next() : -1);
+
+        final ProgressLogger progress = new ProgressLogger(log, (int) 1e7, "Written");
+        final CloseableIterator<SAMRecord> iterator = headerAndIterator.iterator;
+        while (iterator.hasNext()) {
+            final SAMRecord rec = iterator.next();
+            if (!rec.isSecondaryOrSupplementary()) {
+                final String library = libraryIdGenerator.getLibraryName(header, rec);
+                DuplicationMetrics metrics = libraryIdGenerator.getMetricsByLibrary(library);
+                if (metrics == null) {
+                    metrics = new DuplicationMetrics();
+                    metrics.LIBRARY = library;
+                    libraryIdGenerator.addMetricsByLibrary(library, metrics);
+                }
+
+                // First bring the simple metrics up to date
+                if (rec.getReadUnmappedFlag()) {
+                    ++metrics.UNMAPPED_READS;
+                } else if (!rec.getReadPairedFlag() || rec.getMateUnmappedFlag()) {
+                    ++metrics.UNPAIRED_READS_EXAMINED;
+                } else {
+                    ++metrics.READ_PAIRS_EXAMINED; // will need to be divided by 2 at the end
+                }
+
+
+                if (recordInFileIndex == nextDuplicateIndex) {
+                    rec.setDuplicateReadFlag(true);
+
+                    // Update the duplication metrics
+                    if (!rec.getReadPairedFlag() || rec.getMateUnmappedFlag()) {
+                        ++metrics.UNPAIRED_READ_DUPLICATES;
+                    } else {
+                        ++metrics.READ_PAIR_DUPLICATES;// will need to be divided by 2 at the end
+                    }
+
+                    // Now try and figure out the next duplicate index
+                    if (this.duplicateIndexes.hasNext()) {
+                        nextDuplicateIndex = this.duplicateIndexes.next();
+                    } else {
+                        // Only happens once we've marked all the duplicates
+                        nextDuplicateIndex = -1;
+                    }
+                } else {
+                    rec.setDuplicateReadFlag(false);
+                }
+            }
+            recordInFileIndex++;
+
+            if (!this.REMOVE_DUPLICATES || !rec.getDuplicateReadFlag()) {
+                if (PROGRAM_RECORD_ID != null) {
+                    rec.setAttribute(SAMTag.PG.name(), chainedPgIds.get(rec.getStringAttribute(SAMTag.PG.name())));
+                }
+                out.addAlignment(rec);
+                progress.record(rec);
+            }
+        }
+
+        // remember to close the inputs
+        iterator.close();
+
+        this.duplicateIndexes.cleanup();
+
+        reportMemoryStats("Before output close");
+        out.close();
+        reportMemoryStats("After output close");
+
+        // Write out the metrics
+        finalizeAndWriteMetrics(libraryIdGenerator);
+
+        return 0;
+    }
+
+    /**
+     * package-visible for testing
+     */
+    long numOpticalDuplicates() { return ((long) this.libraryIdGenerator.getOpticalDuplicatesByLibraryIdMap().getSumOfValues()); } // cast as long due to returning a double
+
+    /** Print out some quick JVM memory stats. */
+    private void reportMemoryStats(final String stage) {
+        System.gc();
+        final Runtime runtime = Runtime.getRuntime();
+        log.info(stage + " freeMemory: " + runtime.freeMemory() + "; totalMemory: " + runtime.totalMemory() +
+                "; maxMemory: " + runtime.maxMemory());
+    }
+
+    /**
+     * Goes through all the records in a file and generates a set of ReadEndsForMarkDuplicates objects that
+     * hold the necessary information (reference sequence, 5' read coordinate) to do
+     * duplication, caching to disk as necssary to sort them.
+     */
+    private void buildSortedReadEndLists() {
+        final int maxInMemory = (int) ((Runtime.getRuntime().maxMemory() * SORTING_COLLECTION_SIZE_RATIO) / ReadEndsForMarkDuplicates.SIZE_OF);
+        log.info("Will retain up to " + maxInMemory + " data points before spilling to disk.");
+
+        this.pairSort = SortingCollection.newInstance(ReadEndsForMarkDuplicates.class,
+                new ReadEndsForMarkDuplicatesCodec(),
+                new ReadEndsMDComparator(),
+                maxInMemory,
+                TMP_DIR);
+
+        this.fragSort = SortingCollection.newInstance(ReadEndsForMarkDuplicates.class,
+                new ReadEndsForMarkDuplicatesCodec(),
+                new ReadEndsMDComparator(),
+                maxInMemory,
+                TMP_DIR);
+
+        final SamHeaderAndIterator headerAndIterator = openInputs();
+        final SAMFileHeader header = headerAndIterator.header;
+        final ReadEndsForMarkDuplicatesMap tmp = new DiskBasedReadEndsForMarkDuplicatesMap(MAX_FILE_HANDLES_FOR_READ_ENDS_MAP);
+        long index = 0;
+        final ProgressLogger progress = new ProgressLogger(log, (int) 1e6, "Read");
+        final CloseableIterator<SAMRecord> iterator = headerAndIterator.iterator;
+
+        if (null == this.libraryIdGenerator) {
+            this.libraryIdGenerator = new LibraryIdGenerator(header);
+        }
+
+        while (iterator.hasNext()) {
+            final SAMRecord rec = iterator.next();
+
+            // This doesn't have anything to do with building sorted ReadEnd lists, but it can be done in the same pass
+            // over the input
+            if (PROGRAM_RECORD_ID != null) {
+                // Gather all PG IDs seen in merged input files in first pass.  These are gathered for two reasons:
+                // - to know how many different PG records to create to represent this program invocation.
+                // - to know what PG IDs are already used to avoid collisions when creating new ones.
+                // Note that if there are one or more records that do not have a PG tag, then a null value
+                // will be stored in this set.
+                pgIdsSeen.add(rec.getStringAttribute(SAMTag.PG.name()));
+            }
+
+            if (rec.getReadUnmappedFlag()) {
+                if (rec.getReferenceIndex() == -1) {
+                    // When we hit the unmapped reads with no coordinate, no reason to continue.
+                    break;
+                }
+                // If this read is unmapped but sorted with the mapped reads, just skip it.
+            } else if (!rec.isSecondaryOrSupplementary()) {
+                final ReadEndsForMarkDuplicates fragmentEnd = buildReadEnds(header, index, rec);
+                this.fragSort.add(fragmentEnd);
+
+                if (rec.getReadPairedFlag() && !rec.getMateUnmappedFlag()) {
+                    final String key = rec.getAttribute(ReservedTagConstants.READ_GROUP_ID) + ":" + rec.getReadName();
+                    ReadEndsForMarkDuplicates pairedEnds = tmp.remove(rec.getReferenceIndex(), key);
+
+                    // See if we've already seen the first end or not
+                    if (pairedEnds == null) {
+                        pairedEnds = buildReadEnds(header, index, rec);
+                        tmp.put(pairedEnds.read2ReferenceIndex, key, pairedEnds);
+                    } else {
+                        final int sequence = fragmentEnd.read1ReferenceIndex;
+                        final int coordinate = fragmentEnd.read1Coordinate;
+
+                        // Set orientationForOpticalDuplicates, which always goes by the first then the second end for the strands.  NB: must do this
+                        // before updating the orientation later.
+                        if (rec.getFirstOfPairFlag()) {
+                            pairedEnds.orientationForOpticalDuplicates = ReadEnds.getOrientationByte(rec.getReadNegativeStrandFlag(), pairedEnds.orientation == ReadEnds.R);
+                        } else {
+                            pairedEnds.orientationForOpticalDuplicates = ReadEnds.getOrientationByte(pairedEnds.orientation == ReadEnds.R, rec.getReadNegativeStrandFlag());
+                        }
+
+                        // If the second read is actually later, just add the second read data, else flip the reads
+                        if (sequence > pairedEnds.read1ReferenceIndex ||
+                                (sequence == pairedEnds.read1ReferenceIndex && coordinate >= pairedEnds.read1Coordinate)) {
+                            pairedEnds.read2ReferenceIndex = sequence;
+                            pairedEnds.read2Coordinate = coordinate;
+                            pairedEnds.read2IndexInFile = index;
+                            pairedEnds.orientation = ReadEnds.getOrientationByte(pairedEnds.orientation == ReadEnds.R,
+                                    rec.getReadNegativeStrandFlag());
+                        } else {
+                            pairedEnds.read2ReferenceIndex = pairedEnds.read1ReferenceIndex;
+                            pairedEnds.read2Coordinate = pairedEnds.read1Coordinate;
+                            pairedEnds.read2IndexInFile = pairedEnds.read1IndexInFile;
+                            pairedEnds.read1ReferenceIndex = sequence;
+                            pairedEnds.read1Coordinate = coordinate;
+                            pairedEnds.read1IndexInFile = index;
+                            pairedEnds.orientation = ReadEnds.getOrientationByte(rec.getReadNegativeStrandFlag(),
+                                    pairedEnds.orientation == ReadEnds.R);
+                        }
+
+                        pairedEnds.score += DuplicateScoringStrategy.computeDuplicateScore(rec, this.DUPLICATE_SCORING_STRATEGY);
+                        this.pairSort.add(pairedEnds);
+                    }
+                }
+            }
+
+            // Print out some stats every 1m reads
+            ++index;
+            if (progress.record(rec)) {
+                log.info("Tracking " + tmp.size() + " as yet unmatched pairs. " + tmp.sizeInRam() + " records in RAM.");
+            }
+        }
+
+        log.info("Read " + index + " records. " + tmp.size() + " pairs never matched.");
+        iterator.close();
+
+        // Tell these collections to free up memory if possible.
+        this.pairSort.doneAdding();
+        this.fragSort.doneAdding();
+    }
+
+    /** Builds a read ends object that represents a single read. */
+    private ReadEndsForMarkDuplicates buildReadEnds(final SAMFileHeader header, final long index, final SAMRecord rec) {
+        final ReadEndsForMarkDuplicates ends = new ReadEndsForMarkDuplicates();
+        ends.read1ReferenceIndex = rec.getReferenceIndex();
+        ends.read1Coordinate = rec.getReadNegativeStrandFlag() ? rec.getUnclippedEnd() : rec.getUnclippedStart();
+        ends.orientation = rec.getReadNegativeStrandFlag() ? ReadEnds.R : ReadEnds.F;
+        ends.read1IndexInFile = index;
+        ends.score = DuplicateScoringStrategy.computeDuplicateScore(rec, this.DUPLICATE_SCORING_STRATEGY);
+
+        // Doing this lets the ends object know that it's part of a pair
+        if (rec.getReadPairedFlag() && !rec.getMateUnmappedFlag()) {
+            ends.read2ReferenceIndex = rec.getMateReferenceIndex();
+        }
+
+        // Fill in the library ID
+        ends.libraryId = libraryIdGenerator.getLibraryId(rec);
+
+        // Fill in the location information for optical duplicates
+        if (this.opticalDuplicateFinder.addLocationInformation(rec.getReadName(), ends)) {
+            // calculate the RG number (nth in list)
+            ends.readGroup = 0;
+            final String rg = (String) rec.getAttribute("RG");
+            final List<SAMReadGroupRecord> readGroups = header.getReadGroups();
+
+            if (rg != null && readGroups != null) {
+                for (final SAMReadGroupRecord readGroup : readGroups) {
+                    if (readGroup.getReadGroupId().equals(rg)) break;
+                    else ends.readGroup++;
+                }
+            }
+        }
+
+        return ends;
+    }
+
+    /**
+     * Goes through the accumulated ReadEndsForMarkDuplicates objects and determines which of them are
+     * to be marked as duplicates.
+     *
+     * @return an array with an ordered list of indexes into the source file
+     */
+    private void generateDuplicateIndexes() {
+        // Keep this number from getting too large even if there is a huge heap.
+        final int maxInMemory = (int) Math.min((Runtime.getRuntime().maxMemory() * 0.25) / SortingLongCollection.SIZEOF,
+                (double) (Integer.MAX_VALUE - 5));
+        log.info("Will retain up to " + maxInMemory + " duplicate indices before spilling to disk.");
+        this.duplicateIndexes = new SortingLongCollection(maxInMemory, TMP_DIR.toArray(new File[TMP_DIR.size()]));
+
+        ReadEndsForMarkDuplicates firstOfNextChunk = null;
+        final List<ReadEndsForMarkDuplicates> nextChunk = new ArrayList<ReadEndsForMarkDuplicates>(200);
+
+        // First just do the pairs
+        log.info("Traversing read pair information and detecting duplicates.");
+        for (final ReadEndsForMarkDuplicates next : this.pairSort) {
+            if (firstOfNextChunk == null) {
+                firstOfNextChunk = next;
+                nextChunk.add(firstOfNextChunk);
+            } else if (areComparableForDuplicates(firstOfNextChunk, next, true)) {
+                nextChunk.add(next);
+            } else {
+                if (nextChunk.size() > 1) {
+                    markDuplicatePairs(nextChunk);
+                }
+
+                nextChunk.clear();
+                nextChunk.add(next);
+                firstOfNextChunk = next;
+            }
+        }
+        if (nextChunk.size() > 1) markDuplicatePairs(nextChunk);
+        this.pairSort.cleanup();
+        this.pairSort = null;
+
+        // Now deal with the fragments
+        log.info("Traversing fragment information and detecting duplicates.");
+        boolean containsPairs = false;
+        boolean containsFrags = false;
+
+        for (final ReadEndsForMarkDuplicates next : this.fragSort) {
+            if (firstOfNextChunk != null && areComparableForDuplicates(firstOfNextChunk, next, false)) {
+                nextChunk.add(next);
+                containsPairs = containsPairs || next.isPaired();
+                containsFrags = containsFrags || !next.isPaired();
+            } else {
+                if (nextChunk.size() > 1 && containsFrags) {
+                    markDuplicateFragments(nextChunk, containsPairs);
+                }
+
+                nextChunk.clear();
+                nextChunk.add(next);
+                firstOfNextChunk = next;
+                containsPairs = next.isPaired();
+                containsFrags = !next.isPaired();
+            }
+        }
+        markDuplicateFragments(nextChunk, containsPairs);
+        this.fragSort.cleanup();
+        this.fragSort = null;
+
+        log.info("Sorting list of duplicate records.");
+        this.duplicateIndexes.doneAddingStartIteration();
+    }
+
+    private boolean areComparableForDuplicates(final ReadEndsForMarkDuplicates lhs, final ReadEndsForMarkDuplicates rhs, final boolean compareRead2) {
+        boolean retval = lhs.libraryId == rhs.libraryId &&
+                lhs.read1ReferenceIndex == rhs.read1ReferenceIndex &&
+                lhs.read1Coordinate == rhs.read1Coordinate &&
+                lhs.orientation == rhs.orientation;
+
+        if (retval && compareRead2) {
+            retval = lhs.read2ReferenceIndex == rhs.read2ReferenceIndex &&
+                    lhs.read2Coordinate == rhs.read2Coordinate;
+        }
+
+        return retval;
+    }
+
+    private void addIndexAsDuplicate(final long bamIndex) {
+        this.duplicateIndexes.add(bamIndex);
+        ++this.numDuplicateIndices;
+    }
+
+    /**
+     * Takes a list of ReadEndsForMarkDuplicates objects and removes from it all objects that should
+     * not be marked as duplicates.  This assumes that the list contains objects representing pairs.
+     *
+     * @param list
+     */
+    private void markDuplicatePairs(final List<ReadEndsForMarkDuplicates> list) {
+        short maxScore = 0;
+        ReadEndsForMarkDuplicates best = null;
+
+        /** All read ends should have orientation FF, FR, RF, or RR **/
+        for (final ReadEndsForMarkDuplicates end : list) {
+            if (end.score > maxScore || best == null) {
+                maxScore = end.score;
+                best = end;
+            }
+        }
+
+        for (final ReadEndsForMarkDuplicates end : list) {
+            if (end != best) {
+                addIndexAsDuplicate(end.read1IndexInFile);
+                addIndexAsDuplicate(end.read2IndexInFile);
+            }
+        }
+
+        if (this.READ_NAME_REGEX != null) {
+            AbstractMarkDuplicatesCommandLineProgram.trackOpticalDuplicates(list, opticalDuplicateFinder, libraryIdGenerator);
+        }
+    }
+
+    /**
+     * Takes a list of ReadEndsForMarkDuplicates objects and removes from it all objects that should
+     * not be marked as duplicates.  This will set the duplicate index for only list items are fragments.
+     *
+     * @param list
+     * @param containsPairs true if the list also contains objects containing pairs, false otherwise.
+     */
+    private void markDuplicateFragments(final List<ReadEndsForMarkDuplicates> list, final boolean containsPairs) {
+        if (containsPairs) {
+            for (final ReadEndsForMarkDuplicates end : list) {
+                if (!end.isPaired()) addIndexAsDuplicate(end.read1IndexInFile);
+            }
+        } else {
+            short maxScore = 0;
+            ReadEndsForMarkDuplicates best = null;
+            for (final ReadEndsForMarkDuplicates end : list) {
+                if (end.score > maxScore || best == null) {
+                    maxScore = end.score;
+                    best = end;
+                }
+            }
+
+            for (final ReadEndsForMarkDuplicates end : list) {
+                if (end != best) {
+                    addIndexAsDuplicate(end.read1IndexInFile);
+                }
+            }
+        }
+    }
+
+    /** Comparator for ReadEndsForMarkDuplicates that orders by read1 position then pair orientation then read2 position. */
+    static class ReadEndsMDComparator implements Comparator<ReadEndsForMarkDuplicates> {
+        public int compare(final ReadEndsForMarkDuplicates lhs, final ReadEndsForMarkDuplicates rhs) {
+            int retval = lhs.libraryId - rhs.libraryId;
+            if (retval == 0) retval = lhs.read1ReferenceIndex - rhs.read1ReferenceIndex;
+            if (retval == 0) retval = lhs.read1Coordinate - rhs.read1Coordinate;
+            if (retval == 0) retval = lhs.orientation - rhs.orientation;
+            if (retval == 0) retval = lhs.read2ReferenceIndex - rhs.read2ReferenceIndex;
+            if (retval == 0) retval = lhs.read2Coordinate - rhs.read2Coordinate;
+            if (retval == 0) retval = (int) (lhs.read1IndexInFile - rhs.read1IndexInFile);
+            if (retval == 0) retval = (int) (lhs.read2IndexInFile - rhs.read2IndexInFile);
+            return retval;
+        }
+    }
+}
diff --git a/src/java/picard/sam/markduplicates/MarkDuplicatesWithMateCigar.java b/src/java/picard/sam/markduplicates/MarkDuplicatesWithMateCigar.java
new file mode 100644
index 0000000..42fd436
--- /dev/null
+++ b/src/java/picard/sam/markduplicates/MarkDuplicatesWithMateCigar.java
@@ -0,0 +1,205 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.sam.markduplicates;
+
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import htsjdk.samtools.util.Histogram;
+import htsjdk.samtools.util.IterableAdapter;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.ProgressLogger;
+import htsjdk.samtools.*;
+import picard.cmdline.programgroups.SamOrBam;
+import picard.sam.markduplicates.util.AbstractMarkDuplicatesCommandLineProgram;
+
+
+import java.util.*;
+
+/**
+ * An even better duplication marking algorithm that handles all cases including clipped
+ * and gapped alignments.
+ * <p/>
+ * This tool differs with MarkDuplicates as it may break ties differently.  Furthermore,
+ * as it is a one-pass algorithm, it cannot know the program records contained in the file
+ * that should be chained in advance.  Therefore it will only be able to examine the header
+ * to attempt to infer those program group records that have no associated previous program
+ * group record. If a read is encountered without a program record, or not one as previously
+ * defined, it will not be updated.
+ * <p/>
+ * This tool will also not work with alignments that have large gaps or skips, such as those
+ * from RNA-seq data.  This is due to the need to buffer small genomic windows to ensure
+ * integrity of the duplicate marking, while large skips (ex. skipping introns) in the
+ * alignment records would force making that window very large, thus exhausting memory.
+ *
+ * @author Nils Homer
+ */
+ at CommandLineProgramProperties(
+        usage = "Examines aligned records in the supplied SAM or BAM file to locate duplicate molecules. " +
+                "All records are then written to the output file with the duplicate records flagged.",
+        usageShort = "Examines aligned records in the supplied SAM or BAM file to locate duplicate molecules.",
+        programGroup = SamOrBam.class
+)
+public class MarkDuplicatesWithMateCigar extends AbstractMarkDuplicatesCommandLineProgram {
+    private final Log log = Log.getInstance(MarkDuplicatesWithMateCigar.class);
+
+    @Option(doc = "The minimum distance to buffer records to account for clipping on the 5' end of the records." +
+            "Set this number to -1 to use twice the first read's read length (or 100, whichever is smaller).", optional = true)
+    public int MINIMUM_DISTANCE = -1;
+
+    @Option(doc = "Skip record pairs with no mate cigar and include them in the output.")
+    boolean SKIP_PAIRS_WITH_NO_MATE_CIGAR = true;
+
+    @Option(doc = "The block size for use in the coordinate-sorted record buffer.", optional = true)
+    public int BLOCK_SIZE = 100000;
+
+    /** Warnings that will only be emitted once */
+    private boolean warnedNullProgramRecords = false;
+    private boolean warnedMissingProgramRecords = false;
+
+    /** Stock main method. */
+    public static void main(final String[] args) {
+        new MarkDuplicatesWithMateCigar().instanceMainWithExit(args);
+    }
+
+    /**
+     * Main work method.
+     */
+    protected int doWork() {
+        IOUtil.assertInputsAreValid(INPUT);
+        IOUtil.assertFileIsWritable(OUTPUT);
+        IOUtil.assertFileIsWritable(METRICS_FILE);
+
+        // Open the inputs
+        final SamHeaderAndIterator headerAndIterator = openInputs();
+        final SAMFileHeader header = headerAndIterator.header;
+
+        // Create the output header
+        final SAMFileHeader outputHeader = header.clone();
+        outputHeader.setSortOrder(SAMFileHeader.SortOrder.coordinate);
+        for (final String comment : COMMENT) outputHeader.addComment(comment);
+
+        // Since this is one-pass, unlike MarkDuplicates, we cannot only chain together program
+        // group records we have seen, we have to assume all of them may be seen.  We can perhaps
+        // filter out any program groups which have been referenced previously.
+        setPGIdsSeen(outputHeader);
+        // Key: previous PG ID on a SAM Record (or null).  Value: New PG ID to replace it.
+        final Map<String, String> chainedPgIds = getChainedPgIds(outputHeader);
+
+        // Open the output
+        final SAMFileWriter out = new SAMFileWriterFactory().makeSAMOrBAMWriter(outputHeader,
+                true,
+                OUTPUT);
+
+        // Create the mark duplicate iterator.  The duplicate marking is handled by the iterator, conveniently.
+        final MarkDuplicatesWithMateCigarIterator iterator = new MarkDuplicatesWithMateCigarIterator(headerAndIterator.header,
+                headerAndIterator.iterator,
+                this.opticalDuplicateFinder,
+                this.DUPLICATE_SCORING_STRATEGY,
+                this.MINIMUM_DISTANCE,
+                this.REMOVE_DUPLICATES,
+                this.SKIP_PAIRS_WITH_NO_MATE_CIGAR,
+                this.MAX_RECORDS_IN_RAM,
+                this.BLOCK_SIZE,
+                this.TMP_DIR);
+
+        // progress logger!
+        final ProgressLogger progress = new ProgressLogger(log, (int) 1e6, "Read");
+
+        // Go through the records
+        for (final SAMRecord record : new IterableAdapter<SAMRecord>(iterator)) {
+            if (progress.record(record)) {
+                iterator.logMemoryStats(log);
+            }
+
+            // Update the program record if necessary
+            updateProgramRecord(record, chainedPgIds);
+
+            // Write the alignment
+            out.addAlignment(record);
+        }
+
+        // remember to close the inputs
+        iterator.close();
+
+        out.close();
+
+        // For convenience to reference
+        final Histogram<Short> opticalDupesByLibraryId = iterator.getOpticalDupesByLibraryId();
+
+        // Log info
+        log.info("Processed " + progress.getCount() + " records");
+        log.info("Found " + iterator.getNumRecordsWithNoMateCigar() + " records with no mate cigar optional tag.");
+        log.info("Marking " + iterator.getNumDuplicates() + " records as duplicates.");
+        log.info("Found " + ((long) opticalDupesByLibraryId.getSumOfValues()) + " optical duplicate clusters."); // cast as long due to returning a double
+
+        // Write out the metrics
+        finalizeAndWriteMetrics(iterator.getLibraryIdGenerator());
+
+        return 0;
+    }
+
+    /**
+     * Updates the program record if necessary.
+     */
+    private void updateProgramRecord(final SAMRecord record, final Map<String, String> chainedPgIds) {
+        if (PROGRAM_RECORD_ID != null) {
+            final String pgId = record.getStringAttribute(SAMTag.PG.name());
+            if (null == pgId) {
+                if (!warnedNullProgramRecords) {
+                    warnedNullProgramRecords = true;
+                    log.warn("Encountered a record with no program record, program group chaining will not occur for this read: " + record);
+                } // else already warned!
+            } else if (!chainedPgIds.containsKey(pgId)) {
+                if (!warnedMissingProgramRecords) {
+                    warnedMissingProgramRecords = true;
+                    log.warn("Encountered a record with an intermediate program record, program group chaining will not occur for this read: " + record);
+                } // else already warned!
+            } else {
+                record.setAttribute(SAMTag.PG.name(), chainedPgIds.get(pgId));
+            }
+        }
+    }
+
+    /**
+     * Generate the list of program records seen in the SAM file, approximating this with those in the header that were not
+     * themselves mentioned elsewhere.
+     */
+    private void setPGIdsSeen(final SAMFileHeader header) {
+        final Set<String> pgIdsSeenAsPrevious = new HashSet<String>();
+
+        // get all program record ids that are mentioned as previously seen
+        for (final SAMProgramRecord samProgramRecord : header.getProgramRecords()) {
+            final String previousProgramGroupID = samProgramRecord.getPreviousProgramGroupId();
+            if (null != previousProgramGroupID) pgIdsSeenAsPrevious.add(previousProgramGroupID);
+        }
+
+        // ignore those that were previously seen
+        for (final SAMProgramRecord samProgramRecord : header.getProgramRecords()) {
+            final String pgId = samProgramRecord.getId();
+            if (!pgIdsSeenAsPrevious.contains(pgId)) this.pgIdsSeen.add(pgId);
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/java/picard/sam/markduplicates/MarkDuplicatesWithMateCigarIterator.java b/src/java/picard/sam/markduplicates/MarkDuplicatesWithMateCigarIterator.java
new file mode 100644
index 0000000..29860f6
--- /dev/null
+++ b/src/java/picard/sam/markduplicates/MarkDuplicatesWithMateCigarIterator.java
@@ -0,0 +1,613 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.sam.markduplicates;
+
+import htsjdk.samtools.util.SamRecordWithOrdinal;
+import htsjdk.samtools.util.SamRecordTrackingBuffer;
+import picard.PicardException;
+import htsjdk.samtools.util.Histogram;
+import picard.sam.DuplicationMetrics;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.PeekableIterator;
+import htsjdk.samtools.*;
+import htsjdk.samtools.DuplicateScoringStrategy.ScoringStrategy;
+import htsjdk.samtools.util.CloseableIterator;
+import picard.sam.markduplicates.util.*;
+
+import java.io.File;
+import java.util.*;
+
+/**
+ * This will iterate through a coordinate sorted SAM file (iterator) and either mark or
+ * remove duplicates as appropriate.  This class relies on the coordinate sort order as
+ * well as the mate cigar (MC) optional SAM tag.
+ */
+public class MarkDuplicatesWithMateCigarIterator implements SAMRecordIterator {
+
+    private SAMFileHeader header = null;
+
+    /** The iterator from which records are read. */
+    private PeekableIterator<SAMRecord> backingIterator = null;
+
+    /** The ordinal of the next record to be read from the backing iterator */
+    private int backingIteratorRecordIndex = 0;
+
+    private boolean removeDuplicates = false;
+
+    /** Should we skip pairs with no mate cigars or should be throw an error? */
+    private boolean skipPairsWithNoMateCigar = true;
+    private int numRecordsWithNoMateCigar = 0;
+
+    /** When we hit unmapped reads that are just before the EOF, we can greedily process them as they will not have coordinates */
+    private boolean foundUnmappedEOFReads = false;
+
+    /** We can flush our queues and buffers if we move to a different reference index */
+    private int referenceIndex = 0;
+
+    /**
+     * This buffer contains all the records read from input in the same order.  Nonetheless, each record
+     * must be examined for duplicate marking, and so we may need to wait for this process to occur.  This
+     * buffer stores the records in coordinate order, whether or not they can be emitted, and their associated
+     * duplicate marking flag.  By definition, any record in the toMarkQueue will also be in the outputBuffer,
+     * so we can omit checking the size of the toMarkQueue in some cases.
+     */
+    private SamRecordTrackingBuffer outputBuffer = null;
+
+    /**
+     * The queue that stores the records that currently are not marked as duplicates.  These need to be kept until
+     * they cannot proven not to be duplicates, with the latter records having greater coordinate.  The queue is stored in 5' unclipped
+     * ordering, along with keeping the record with the best score, defined by the scoring strategies.  If any record
+     * is added to this queue and can be identified as a duplicate, the outputBuffer is notified of its
+     * status and it can be emitted.  Therefore, we limit the amount of records in this queue to only those that will NOT
+     * be duplicates.
+     */
+    private final MarkQueue toMarkQueue;
+
+    /** The next record to be returned by next * */
+    private SAMRecord nextRecord = null;
+
+    /** This gets various information about the library id for a given record */
+    private final LibraryIdGenerator libraryIdGenerator;
+
+    /** This is used to identify optical duplicates among sets of duplicates */
+    private OpticalDuplicateFinder opticalDuplicateFinder = null;
+
+    /** We use this to check that the input data was in coordinate sort order */
+    private final SAMRecordCoordinateComparator sortComparator = new SAMRecordCoordinateComparator();
+
+    boolean isClosed = false;
+
+    /**
+     * Initializes the mark duplicates iterator.
+     *
+     * @param header                     the SAM header
+     * @param iterator                   an iterator over the SAM records to consider
+     * @param opticalDuplicateFinder     the algorithm for optical duplicate detection
+     * @param duplicateScoringStrategy   the scoring strategy for choosing duplicates.  This cannot be SUM_OF_BASE_QUALITIES.
+     * @param toMarkQueueMinimumDistance minimum distance for which to buffer
+     * @param removeDuplicates           true to remove duplicates, false to mark duplicates
+     * @param skipPairsWithNoMateCigar   true to not return mapped pairs with no mate cigar, false otherwise
+     * @param blockSize                  the size of the blocks in the underlying buffer/queue
+     * @param tmpDirs                    the temporary directories to use if we spill records to disk
+     * @throws PicardException if the inputs are not in coordinate sort order
+     */
+    public MarkDuplicatesWithMateCigarIterator(final SAMFileHeader header,
+                                               final CloseableIterator<SAMRecord> iterator,
+                                               final OpticalDuplicateFinder opticalDuplicateFinder,
+                                               final ScoringStrategy duplicateScoringStrategy,
+                                               final int toMarkQueueMinimumDistance,
+                                               final boolean removeDuplicates,
+                                               final boolean skipPairsWithNoMateCigar,
+                                               final int maxRecordsInRam,
+                                               final int blockSize,
+                                               final List<File> tmpDirs) throws PicardException {
+        if (header.getSortOrder() != SAMFileHeader.SortOrder.coordinate) {
+            throw new PicardException(getClass().getName() + " expects the input to be in coordinate sort order.");
+        }
+
+        this.header = header;
+        backingIterator = new PeekableIterator<SAMRecord>(iterator);
+        outputBuffer = new SamRecordTrackingBuffer<SamRecordWithOrdinalAndSetDuplicateReadFlag>(maxRecordsInRam, blockSize, tmpDirs, header, SamRecordWithOrdinalAndSetDuplicateReadFlag.class);
+
+        this.removeDuplicates = removeDuplicates;
+        this.skipPairsWithNoMateCigar = skipPairsWithNoMateCigar;
+        this.opticalDuplicateFinder = opticalDuplicateFinder;
+        toMarkQueue = new MarkQueue(duplicateScoringStrategy);
+        libraryIdGenerator = new LibraryIdGenerator(header);
+
+        // Check for supported scoring strategies
+        if (duplicateScoringStrategy == ScoringStrategy.SUM_OF_BASE_QUALITIES)
+            throw new PicardException("SUM_OF_BASE_QUALITIES not supported as this may cause inconsistencies across ends in a pair.  Please use a different scoring strategy.");
+
+        // set up metrics
+        for (final SAMReadGroupRecord readGroup : header.getReadGroups()) {
+            final String library = readGroup.getLibrary();
+            DuplicationMetrics metrics = libraryIdGenerator.getMetricsByLibrary(library);
+            if (metrics == null) {
+                metrics = new DuplicationMetrics();
+                metrics.LIBRARY = library;
+                libraryIdGenerator.addMetricsByLibrary(library, metrics);
+            }
+        }
+
+        // This sets the window size we need to keep to guarantee we can mark duplicates correctly
+        toMarkQueue.setToMarkQueueMinimumDistance(toMarkQueueMinimumDistance);
+
+        // get the first samRecordWithOrdinal
+        nextRecord = markDuplicatesAndGetTheNextAvailable(); // get one directly, or null
+    }
+
+    public void logMemoryStats(final Log log) {
+        System.gc();
+        final Runtime runtime = Runtime.getRuntime();
+        log.info("freeMemory: " + runtime.freeMemory() +
+                "; totalMemory: " + runtime.totalMemory() +
+                "; maxMemory: " + runtime.maxMemory() +
+                "; output buffer size: " + outputBuffer.size() +
+                "; duplicate queue size: " + toMarkQueue.size()
+        );
+    }
+
+    /**
+     * Establishes that records returned by this iterator are expected to
+     * be in the specified sort order.  If this method has been called,
+     * then implementers must throw an IllegalStateException from tmpReadEnds()
+     * when a samRecordWithOrdinal is read that violates the sort order.  This method
+     * may be called multiple times over the course of an iteration,
+     * changing the expected sort, if desired -- from the time it is called,
+     * it validates whatever sort is set, or stops validating if it
+     * is set to null or SAMFileHeader.SortOrder.unsorted.  If this method
+     * is not called, then no validation of the iterated records is done.
+     *
+     * @param sortOrder The order in which records are expected to be returned
+     * @return This SAMRecordIterator
+     */
+    @Override
+    public SAMRecordIterator assertSorted(final SAMFileHeader.SortOrder sortOrder) {
+        if (sortOrder != SAMFileHeader.SortOrder.coordinate) {
+            throw new IllegalStateException("Cannot assort " + sortOrder + " when expecting coordinate sorted input");
+        }
+        return this;
+    }
+
+    @Override
+    public boolean hasNext() {
+        // fast succeed
+        if (null != nextRecord) return true;
+
+        // We would need to get another record, so check if we can either a record read from the input to the mark queue, or we have more that we should return.
+        // There should be at no time records in the mark queue that are not tracked in the output buffer.
+        return (backingIterator.hasNext() || !outputBuffer.isEmpty());
+    }
+
+    @Override
+    public SAMRecord next() throws PicardException {
+        final SAMRecord toReturn = nextRecord; // save for return
+
+
+        // This should always return an element
+        // NB: it should be the case that nextRecord != null
+        if (null == toReturn) {
+            throw new NoSuchElementException();
+        }
+
+        // Get the next record, if possible
+        // NB: it should be the case that (nextRecord != null), due to the (null == toReturn) above
+        if (hasNext()) {
+            nextRecord = markDuplicatesAndGetTheNextAvailable(); // get one more, if possible
+        } else {
+            nextRecord = null;
+        }
+
+        // Check for sorted order
+        if (null != nextRecord && 0 < sortComparator.fileOrderCompare(toReturn, nextRecord)) {
+            System.err.print("Previous record: " + toReturn.getSAMString());
+            System.err.print("Current record:" + nextRecord.getSAMString());
+            throw new PicardException("Records were not found coordinate sort order");
+        }
+
+        return toReturn;
+    }
+
+    /**
+     * Handles records that are paired with both ends mapped, but lacking a mate cigar.  This returns true if we
+     * can ignore this record after calling this method (when reading input), false otherwise.
+     */
+    private boolean ignoreDueToMissingMateCigar(final SamRecordWithOrdinal samRecordWithOrdinal) {
+        final SAMRecord record = samRecordWithOrdinal.getRecord();
+        // ignore/except-on paired records with mapped mate and no mate cigar
+        if (record.getReadPairedFlag() &&
+                !record.getMateUnmappedFlag() && null == SAMUtils.getMateCigar(record)) { // paired with one end unmapped and no mate cigar
+
+            // NB: we are not truly examining these records. Do we want to count them?
+            if (!record.isSecondaryOrSupplementary()) {
+                // update metrics
+                final DuplicationMetrics metrics = getMetrics(record);
+                if (record.getReadUnmappedFlag()) {
+                    ++metrics.UNMAPPED_READS;
+                } else if (!record.getReadPairedFlag() || record.getMateUnmappedFlag()) {
+                    ++metrics.UNPAIRED_READS_EXAMINED;
+                } else {
+                    ++metrics.READ_PAIRS_EXAMINED;
+                }
+            }
+
+            if (skipPairsWithNoMateCigar) { // pseudo-silently ignores them
+                // NB: need to addRecordToTheOutputBuffer/set-flag as chunking/flushing of the toMarkQueue may need to occur
+                addRecordToTheOutputBuffer(samRecordWithOrdinal); // now samRecordWithOrdinal will be stored in outputBuffer for return
+                backingIteratorRecordIndex++;
+                outputBuffer.setResultState(samRecordWithOrdinal, false); // indicate the present wrapped samRecordWithOrdinal is available for return
+                numRecordsWithNoMateCigar++;
+                backingIterator.next(); // remove it, since we called backingIterator.peek()
+                return true;
+            } else {
+                throw new PicardException("Read " + record.getReadName() + " was mapped and had a mapped mate, but no mate cigar (\"MC\") tag.");
+            }
+        }
+        return false;
+    }
+
+    /**
+     * This handles unmapped records at the end of the file.  If this is the first time we have found them, then we
+     * can empty the toMarkQueue and call markDuplicatesAndGetTheNextAvailable, otherwise we can just emit them.  The
+     * duplication metrics will be updated.
+     */
+    private SAMRecord nextIfRecordIsUnmappedAtEOF(final SAMRecord record) {
+        // when we find unmapped reads with -1 as their reference index, there should be no mapped reads later in the file.
+        if (foundUnmappedEOFReads) { // previously found unmapped reads at the end of the file
+            final SAMRecord unmappedRecord = backingIterator.next(); // since we called backingIterator.peek()
+
+            if (!record.isSecondaryOrSupplementary()) {
+                // update metrics
+                final DuplicationMetrics metrics = getMetrics(record);
+                ++metrics.UNMAPPED_READS;
+            }
+
+            // We should have no more in the queue
+            if (!outputBuffer.isEmpty()) {
+                throw new PicardException("Encountered unmapped reads at the end of the file, but the alignment start buffer was not empty.");
+            }
+            return unmappedRecord; // unmapped end of file records can simply be emitted - no need to duplicate mark them
+        } else {
+            foundUnmappedEOFReads = true;
+            // move past all mapped reads
+            referenceIndex = header.getSequenceDictionary().getSequences().size();
+
+            // do the final round of duplicate marking
+            tryPollingTheToMarkQueue(true, null);
+
+            // NB: we do not call next here since we will recurse and perhaps hit the flush, or re-enter the if with unmapped EOF reads
+            return markDuplicatesAndGetTheNextAvailable(); // this should flush the buffer
+        }
+    }
+
+    /**
+     * Check that we are not incorrectly performing any duplicate marking, by having too few of the records.  This
+     * can happen if the alignment start is increasing but 5' soft-clipping is increasing such that we miss reads with
+     * the same 5' unclipped alignment start.  This is especially true for RNAseq.
+     */
+    private void checkForMinimumDistanceFailure(final ReadEndsForMateCigar current) {
+        if (!toMarkQueue.isEmpty()) {
+            final ReadEndsForMateCigar other = toMarkQueue.peek();
+            if (other.read1ReferenceIndex == current.read1ReferenceIndex && toMarkQueue.getToMarkQueueMinimumDistance() <= other.read1Coordinate - current.read1Coordinate) {
+                if (checkCigarForSkips(other.getRecord().getCigar())) {
+                    throw new PicardException("Found a samRecordWithOrdinal with sufficiently large code length that we may have\n"
+                            + " missed including it in an early duplicate marking iteration.  Alignment contains skipped"
+                            + " reference bases (N's). If this is an\n RNAseq aligned bam, please use MarkDuplicates instead,"
+                            + " as this tool does not work well with spliced reads.\n Minimum distance set to "
+                            + toMarkQueue.getToMarkQueueMinimumDistance() + " but " + (other.read1Coordinate - current.read1Coordinate - 1)
+                            + " would be required.\n" + "Record was: " + other.getRecord().getSAMString());
+                } else {
+                    System.err.print("record #1: " + other.getRecord().getSAMString());
+                    System.err.print("record #2: " + current.getRecord().getSAMString());
+                    throw new PicardException("Found a samRecordWithOrdinal with sufficiently large clipping that we may have\n"
+                            + " missed including it in an early duplicate marking iteration.  Please increase the"
+                            + " minimum distance to at least " + (other.read1Coordinate - current.read1Coordinate - 1)
+                            + "bp\nto ensure it is considered (was " + toMarkQueue.getToMarkQueueMinimumDistance() + ").\n"
+                            + "Record was: " + other.getRecord().getSAMString());
+                }
+            }
+        }
+    }
+
+    /**
+     * This tries to get a record that has been evaluated for duplicate marking.  It does this by first seeing if there
+     * are any records that have been through duplicate marking.  If none are available, it will try to get more records
+     * from the input iterator until there are reads available that have been duplicate marked.  If there are no more
+     * records available from the input iterator, it will duplicate mark the final chunk of records.  Finally, if there
+     * are no more records, it will return null;
+     */
+    private SAMRecord markDuplicatesAndGetTheNextAvailable() {
+
+        // Check if there are any we can flush output buffer
+        { // NB: braces to limit the scope of 'record'
+            final SAMRecord record = flush();
+            if (null != record) return record;
+        }
+
+        // Check if there are any more records to read in
+        if (!backingIterator.hasNext()) { // no more records to read in
+
+            // Check if there are any more to mark
+            if (toMarkQueue.isEmpty()) {
+                // check if there are any that can be outputted
+                if (outputBuffer.isEmpty()) {
+                    return null;
+                } // no need to flush; no records in the queue and buffer
+            } else {
+                // force marking duplicates on the remaining records
+                tryPollingTheToMarkQueue(true, null);
+            }
+
+            /** Since we have no more records to read in, and no more records that need duplicate marking run, we
+             * update our coordinate to past the end of the reference
+             */
+            referenceIndex = header.getSequenceDictionary().getSequences().size();
+
+            /** Now we recurse, so that we can flush from the outputBuffer until it is empty, then return null when
+             * all of the input, queue, and buffer are empty */
+            return markDuplicatesAndGetTheNextAvailable();
+        }
+
+        /** We need to retrieve more records from the input iterator and duplicate mark, until we can return one that
+         *  has been through duplicate marking.
+         */
+        while (backingIterator.hasNext()) {
+
+            // NB: we could get rid of this if we made nextRecord into a list...
+            // NB: we do not actually remove this record from the backing iterator until much later, to help with processing unmapped reads at the EOF
+            SAMRecord record = backingIterator.peek(); // peek: used for unmapped reads
+            final SamRecordWithOrdinal samRecordWithOrdinal = new SamRecordWithOrdinalAndSetDuplicateReadFlag(record, backingIteratorRecordIndex);
+
+            ReadEndsForMateCigar readEnds = null;
+            boolean performedChunkAndMarkTheDuplicates = false;
+
+            // remove duplicate information
+            record.setDuplicateReadFlag(false);
+
+            /** Check for pairs that have both ends mapped and missing mate cigar. */
+            if (ignoreDueToMissingMateCigar(samRecordWithOrdinal)) {
+                continue;
+            }
+
+            // check for an unmapped read
+            if (record.getReadUnmappedFlag()) {
+                // unmapped reads at the end of the file!
+                if (-1 == record.getReferenceIndex()) {
+                    // NB: this may call markDuplicatesAndGetTheNextAvailable if this is the first time a EOF unmapped record has been seen
+                    return nextIfRecordIsUnmappedAtEOF(record);
+                } else if (!record.isSecondaryOrSupplementary()) {
+                    // update metrics
+                    final DuplicationMetrics metrics = getMetrics(record);
+                    ++metrics.UNMAPPED_READS;
+                }
+                // we will check for unmapped reads later so as not to add them to mark queue
+            } else {
+                // If not already set, this sets the minimum distance to twice the read length, or 100, whichever is larger
+                if (-1 == toMarkQueue.getToMarkQueueMinimumDistance()) {
+                    // use twice the first read's length
+                    toMarkQueue.setToMarkQueueMinimumDistance(Math.max(2 * record.getReadBases().length, 100));
+                }
+
+                // build a read end for use in the toMarkQueue
+                readEnds = new ReadEndsForMateCigar(header, samRecordWithOrdinal, opticalDuplicateFinder, libraryIdGenerator.getLibraryId(samRecordWithOrdinal.getRecord()));
+
+                // check that the minimumDistance was not too small
+                checkForMinimumDistanceFailure(readEnds);
+
+                /**
+                 * If we can do some duplicate marking, lets do it!
+                 * IMPORTANT: this does not flush the to-mark-queue, so the minimum distance needs to be set for us to infer
+                 * which records will never be supplemented (i.e. are non-duplicate).
+                 */
+                performedChunkAndMarkTheDuplicates = tryPollingTheToMarkQueue(false, readEnds);
+            }
+
+            // We can now remove the record from the input
+            backingIterator.next();
+
+            // Add this to the outputBuffer so it can be tracked.  It will not be available to emit until it has been through duplicate marking.
+            addRecordToTheOutputBuffer(samRecordWithOrdinal);
+            backingIteratorRecordIndex++; // Each record is has an index and is emitted in the same order. This helps that.
+
+            // We do not consider secondary, supplementary, or unmapped alignments for duplicate marking. We can thus mark that duplicate marking on them has been completed.
+            if (record.isSecondaryOrSupplementary() || record.getReadUnmappedFlag()) {
+                outputBuffer.setResultState(samRecordWithOrdinal, false);
+            } else {
+                // Bring the simple metrics up to date
+                final DuplicationMetrics metrics = getMetrics(record);
+                if (!record.getReadPairedFlag() || record.getMateUnmappedFlag()) {
+                    ++metrics.UNPAIRED_READS_EXAMINED;
+                } else {
+                    ++metrics.READ_PAIRS_EXAMINED; // will need to be divided by 2 at the end
+                }
+
+                // Add the record for duplicate marking, which may in fact cause it to be duplicate marked or stored for later
+                toMarkQueue.add(readEnds, outputBuffer, getMetrics(readEnds.getRecord()));
+            }
+
+            // Check if there are any we can flush, which happens if we just performed duplicate marking
+            if (performedChunkAndMarkTheDuplicates) {
+                record = flush();
+                if (null != record) return record;
+            }
+        }
+
+        // try again, as we may have records we can flush, or we want to see if we are at the EOF
+        return markDuplicatesAndGetTheNextAvailable();
+    }
+
+
+    @Override
+    public void remove() {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void close() {
+        // close the input and output
+        backingIterator.close();
+        outputBuffer.close();
+        isClosed = true;
+    }
+
+    /**
+     * Checks a Cigar for the presence of N operators. Reads with skipped bases may be spliced RNAseq reads
+     *
+     * @param cigar
+     */
+    private boolean checkCigarForSkips(final Cigar cigar) {
+        final List<CigarElement> elements = cigar.getCigarElements();
+        for (final CigarElement el : elements) {
+            if (el.getOperator() == CigarOperator.N) return true;
+        }
+        return false;
+    }
+
+    private void enforceClosed() {
+        if (!isClosed) throw new PicardException("Calling a method that assumes the iterator is closed");
+    }
+
+    /** Useful for statistics after the iterator has been exhausted and closed. */
+    public int getNumRecordsWithNoMateCigar() {
+        enforceClosed();
+        return numRecordsWithNoMateCigar;
+    }
+
+    public int getNumDuplicates() {
+        enforceClosed();
+        return toMarkQueue.getNumDuplicates();
+    }
+
+    public LibraryIdGenerator getLibraryIdGenerator() {
+        enforceClosed();
+        return libraryIdGenerator;
+    }
+
+    public Histogram<Short> getOpticalDupesByLibraryId() {
+        enforceClosed();
+        return libraryIdGenerator.getOpticalDuplicatesByLibraryIdMap();
+    }
+
+    /**
+     * Gets a SAMRecord if one is available after marking.  This enforces that we return records in the original
+     * coordinate sort order in a stable fashion.
+     *
+     * @return record representing the head of the alignment-start sorted buffer, or null if the head record has not yet been duplicate marked
+     */
+    private SAMRecord flush() {
+        // Check that there is at least one record in the coordinate-sorted buffer, and that the head record has been through duplicate-marking
+        while (!outputBuffer.isEmpty() && outputBuffer.canEmit()) {
+            // the buffer contains wrapped SAMRecords, which we want to unwrap
+            final SAMRecord record = outputBuffer.next().getRecord();
+
+            // If this read is a duplicate, do we want to remove it (continue the loop) or return it for emission?
+            if (!removeDuplicates || !record.getDuplicateReadFlag()) {
+                return record;
+            }
+        }
+        return null;
+    }
+
+    /**
+     * Adds a samRecordWithOrdinal to the output buffer.  This does not mean that it is ready to be emitted, since it may need to be
+     * duplicate marked.
+     *
+     * @param samRecordWithOrdinal the index of the record of which to track.
+     * @throws PicardException if the records are added out of order
+     */
+    private void addRecordToTheOutputBuffer(final SamRecordWithOrdinal samRecordWithOrdinal) throws PicardException {
+        final int recordReferenceIndex = samRecordWithOrdinal.getRecord().getReferenceIndex();
+        if (recordReferenceIndex < referenceIndex) {
+            throw new PicardException("Records out of order: " + recordReferenceIndex + " < " + referenceIndex);
+        } else if (referenceIndex < recordReferenceIndex) {
+            // new reference, so we need to mark duplicates on the current ones
+            // NB: we will not miss inter-chromosomal alignments since presumably one end will have been mapped to this chromosome and processed, and we do not need the other end to do so.
+            tryPollingTheToMarkQueue(true, null);
+            // update genomic coordinate to the next reference index
+            referenceIndex = recordReferenceIndex;
+        }
+
+        // add the samRecordWithOrdinal to the output buffer so that it can be tracked
+        outputBuffer.add(samRecordWithOrdinal);
+    }
+
+    /**
+     * Tries to get a record from the toMarkQueue that has been successfully through duplicate marking.  Note, either flush is true or
+     * current must be non-null.
+     *
+     * @param flush   true if we should empty the toMarkQueue fully.
+     * @param current the current end to ensure we consider all possible ends for a duplicate
+     * @return true if we did get at least one record, false otherwise
+     */
+    private boolean tryPollingTheToMarkQueue(final boolean flush, final ReadEndsForMateCigar current) {
+        boolean performedChunkAndMarkTheDuplicates = false;
+
+        if (!flush && null == current) throw new PicardException("Flush cannot be false and current be null");
+
+        if (toMarkQueue.isEmpty()) return false;
+
+        if (!toMarkQueue.isEmpty() && outputBuffer.isEmpty()) {
+            throw new PicardException("0 < toMarkQueue && outputBuffer.isEmpty()");
+        }
+
+        /**
+         * Try to poll the toMarkQueue.  If we are flushing all the records from it, just do so until empty.  Otherwise, we need to
+         * make sure we only poll those a certain distance away from current.
+         */
+        while (!toMarkQueue.isEmpty() &&
+                (flush || referenceIndex != current.read1ReferenceIndex ||
+                        toMarkQueue.getToMarkQueueMinimumDistance() < current.read1Coordinate - toMarkQueue.peek().read1Coordinate)) {
+
+            // Poll will track that this samRecordWithOrdinal has been through duplicate marking. It is not marked as a duplicate :)
+            final ReadEndsForMateCigar next = toMarkQueue.poll(outputBuffer, header, opticalDuplicateFinder, libraryIdGenerator); // get the first one!
+            performedChunkAndMarkTheDuplicates = true;
+
+            // track optical duplicates using only those reads that are the first end...
+            if (toMarkQueue.shouldBeInLocations(next) && next.getRecord().getFirstOfPairFlag()) {
+                final Set<ReadEnds> locations = toMarkQueue.getLocations(next);
+
+                if (!locations.isEmpty()) {
+                    AbstractMarkDuplicatesCommandLineProgram.trackOpticalDuplicates(new ArrayList<ReadEnds>(locations),
+                            opticalDuplicateFinder, libraryIdGenerator);
+                }
+            }
+            // NB: we could try to greedily return a record if one is available here.  Instead we continue processing the mark queue */
+        }
+        return performedChunkAndMarkTheDuplicates;
+    }
+
+    /** Get the duplication metrics for the library associated with end. */
+    private DuplicationMetrics getMetrics(final SAMRecord record) {
+        final String library = LibraryIdGenerator.getLibraryName(header, record);
+        DuplicationMetrics metrics = libraryIdGenerator.getMetricsByLibrary(library);
+        if (metrics == null) {
+            metrics = new DuplicationMetrics();
+            metrics.LIBRARY = library;
+            libraryIdGenerator.addMetricsByLibrary(library, metrics);
+        }
+        return metrics;
+    }
+}
diff --git a/src/java/picard/sam/markduplicates/util/AbstractMarkDuplicatesCommandLineProgram.java b/src/java/picard/sam/markduplicates/util/AbstractMarkDuplicatesCommandLineProgram.java
new file mode 100644
index 0000000..b46fb18
--- /dev/null
+++ b/src/java/picard/sam/markduplicates/util/AbstractMarkDuplicatesCommandLineProgram.java
@@ -0,0 +1,287 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.sam.markduplicates.util;
+
+import htsjdk.samtools.DuplicateScoringStrategy.ScoringStrategy;
+import htsjdk.samtools.MergingSamRecordIterator;
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMProgramRecord;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SamFileHeaderMerger;
+import htsjdk.samtools.SamInputResource;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.metrics.MetricsFile;
+import htsjdk.samtools.util.CloseableIterator;
+import htsjdk.samtools.util.Histogram;
+import picard.PicardException;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.sam.DuplicationMetrics;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * Abstract class that holds parameters and methods common to classes that perform duplicate
+ * detection and/or marking within SAM/BAM files.
+ *
+ * @author Nils Homer
+ */
+public abstract class AbstractMarkDuplicatesCommandLineProgram extends AbstractOpticalDuplicateFinderCommandLineProgram {
+
+    @Option(shortName = StandardOptionDefinitions.INPUT_SHORT_NAME,
+            doc = "One or more input SAM or BAM files to analyze. Must be coordinate sorted.")
+    public List<String> INPUT;
+
+    @Option(shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME,
+            doc = "The output file to write marked records to")
+    public File OUTPUT;
+
+    @Option(shortName = "M",
+            doc = "File to write duplication metrics to")
+    public File METRICS_FILE;
+
+    @Option(shortName = StandardOptionDefinitions.PROGRAM_RECORD_ID_SHORT_NAME,
+            doc = "The program record ID for the @PG record(s) created by this program. Set to null to disable " +
+                    "PG record creation.  This string may have a suffix appended to avoid collision with other " +
+                    "program record IDs.",
+            optional = true)
+    public String PROGRAM_RECORD_ID = "MarkDuplicates";
+
+    @Option(shortName = "PG_VERSION",
+            doc = "Value of VN tag of PG record to be created. If not specified, the version will be detected automatically.",
+            optional = true)
+    public String PROGRAM_GROUP_VERSION;
+
+    @Option(shortName = "PG_COMMAND",
+            doc = "Value of CL tag of PG record to be created. If not supplied the command line will be detected automatically.",
+            optional = true)
+    public String PROGRAM_GROUP_COMMAND_LINE;
+
+    @Option(shortName = "PG_NAME",
+            doc = "Value of PN tag of PG record to be created.")
+    public String PROGRAM_GROUP_NAME = getClass().getSimpleName();
+
+    @Option(shortName = "CO",
+            doc = "Comment(s) to include in the output file's header.",
+            optional = true)
+    public List<String> COMMENT = new ArrayList<String>();
+
+    @Option(doc = "If true do not write duplicates to the output file instead of writing them with appropriate flags set.")
+    public boolean REMOVE_DUPLICATES = false;
+
+    @Option(shortName = StandardOptionDefinitions.ASSUME_SORTED_SHORT_NAME,
+            doc = "If true, assume that the input file is coordinate sorted even if the header says otherwise.")
+    public boolean ASSUME_SORTED = false;
+
+    @Option(shortName = "DS", doc = "The scoring strategy for choosing the non-duplicate among candidates.")
+    public ScoringStrategy DUPLICATE_SCORING_STRATEGY = ScoringStrategy.TOTAL_MAPPED_REFERENCE_LENGTH;
+
+    /** The program groups that have been seen during the course of examining the input records. */
+    protected final Set<String> pgIdsSeen = new HashSet<String>();
+
+    /**
+     * We have to re-chain the program groups based on this algorithm.  This returns the map from existing program group ID
+     * to new program group ID.
+     */
+    protected Map<String, String> getChainedPgIds(final SAMFileHeader outputHeader) {
+        final Map<String, String> chainedPgIds;
+        // Generate new PG record(s)
+        if (PROGRAM_RECORD_ID != null) {
+            final SAMFileHeader.PgIdGenerator pgIdGenerator = new SAMFileHeader.PgIdGenerator(outputHeader);
+            if (PROGRAM_GROUP_VERSION == null) {
+                PROGRAM_GROUP_VERSION = this.getVersion();
+            }
+            if (PROGRAM_GROUP_COMMAND_LINE == null) {
+                PROGRAM_GROUP_COMMAND_LINE = this.getCommandLine();
+            }
+            chainedPgIds = new HashMap<String, String>();
+            for (final String existingId : this.pgIdsSeen) {
+                final String newPgId = pgIdGenerator.getNonCollidingId(PROGRAM_RECORD_ID);
+                chainedPgIds.put(existingId, newPgId);
+                final SAMProgramRecord programRecord = new SAMProgramRecord(newPgId);
+                programRecord.setProgramVersion(PROGRAM_GROUP_VERSION);
+                programRecord.setCommandLine(PROGRAM_GROUP_COMMAND_LINE);
+                programRecord.setProgramName(PROGRAM_GROUP_NAME);
+                programRecord.setPreviousProgramGroupId(existingId);
+                outputHeader.addProgramRecord(programRecord);
+            }
+        } else {
+            chainedPgIds = null;
+        }
+        return chainedPgIds;
+    }
+
+    /**
+     * Writes the metrics given by the libraryIdGenerator to the METRICS_FILE.
+     *
+     * @param libraryIdGenerator
+     */
+    protected void finalizeAndWriteMetrics(final LibraryIdGenerator libraryIdGenerator) {
+        final Map<String, DuplicationMetrics> metricsByLibrary = libraryIdGenerator.getMetricsByLibraryMap();
+        final Histogram<Short> opticalDuplicatesByLibraryId = libraryIdGenerator.getOpticalDuplicatesByLibraryIdMap();
+        final Map<String, Short> libraryIds = libraryIdGenerator.getLibraryIdsMap();
+
+        // Write out the metrics
+        final MetricsFile<DuplicationMetrics, Double> file = getMetricsFile();
+        for (final Map.Entry<String, DuplicationMetrics> entry : metricsByLibrary.entrySet()) {
+            final String libraryName = entry.getKey();
+            final DuplicationMetrics metrics = entry.getValue();
+
+            metrics.READ_PAIRS_EXAMINED = metrics.READ_PAIRS_EXAMINED / 2;
+            metrics.READ_PAIR_DUPLICATES = metrics.READ_PAIR_DUPLICATES / 2;
+
+            // Add the optical dupes to the metrics
+            final Short libraryId = libraryIds.get(libraryName);
+            if (libraryId != null) {
+                final Histogram<Short>.Bin bin = opticalDuplicatesByLibraryId.get(libraryId);
+                if (bin != null) {
+                    metrics.READ_PAIR_OPTICAL_DUPLICATES = (long) bin.getValue();
+                }
+            }
+            metrics.calculateDerivedMetrics();
+            file.addMetric(metrics);
+        }
+
+        if (metricsByLibrary.size() == 1) {
+            file.setHistogram(metricsByLibrary.values().iterator().next().calculateRoiHistogram());
+        }
+
+        file.write(METRICS_FILE);
+    }
+
+    /** Little class used to package up a header and an iterable/iterator. */
+    public static final class SamHeaderAndIterator {
+        public final SAMFileHeader header;
+        public final CloseableIterator<SAMRecord> iterator;
+
+        public SamHeaderAndIterator(final SAMFileHeader header, final CloseableIterator<SAMRecord> iterator) {
+            this.header = header;
+            this.iterator = iterator;
+        }
+    }
+
+    /**
+     * Since this may read it's inputs more than once this method does all the opening
+     * and checking of the inputs.
+     */
+    protected SamHeaderAndIterator openInputs() {
+        final List<SAMFileHeader> headers = new ArrayList<SAMFileHeader>(INPUT.size());
+        final List<SamReader> readers = new ArrayList<SamReader>(INPUT.size());
+
+        for (final String input : INPUT) {
+            SamReader reader = SamReaderFactory.makeDefault()
+                .enable(SamReaderFactory.Option.EAGERLY_DECODE)
+                .open(SamInputResource.of(input));
+            final SAMFileHeader header = reader.getFileHeader();
+
+            if (!ASSUME_SORTED && header.getSortOrder() != SAMFileHeader.SortOrder.coordinate) {
+                throw new PicardException("Input file " + input + " is not coordinate sorted.");
+            }
+
+            headers.add(header);
+            readers.add(reader);
+        }
+
+        if (headers.size() == 1) {
+            return new SamHeaderAndIterator(headers.get(0), readers.get(0).iterator());
+        } else {
+            final SamFileHeaderMerger headerMerger = new SamFileHeaderMerger(SAMFileHeader.SortOrder.coordinate, headers, false);
+            final MergingSamRecordIterator iterator = new MergingSamRecordIterator(headerMerger, readers, ASSUME_SORTED);
+            return new SamHeaderAndIterator(headerMerger.getMergedHeader(), iterator);
+        }
+    }
+
+    /**
+     * Looks through the set of reads and identifies how many of the duplicates are
+     * in fact optical duplicates, and stores the data in the instance level histogram.
+     */
+    public static void trackOpticalDuplicates(List<? extends ReadEnds> ends,
+                                              final OpticalDuplicateFinder opticalDuplicateFinder,
+                                              final LibraryIdGenerator libraryIdGenerator) {
+        boolean hasFR = false, hasRF = false;
+
+        // Check to see if we have a mixture of FR/RF
+        for (final ReadEnds end : ends) {
+            if (ReadEnds.FR == end.orientationForOpticalDuplicates) {
+                hasFR = true;
+            } else if (ReadEnds.RF == end.orientationForOpticalDuplicates) {
+                hasRF = true;
+            }
+        }
+
+        // Check if we need to partition since the orientations could have changed
+        if (hasFR && hasRF) { // need to track them independently
+            // Variables used for optical duplicate detection and tracking
+            final List<ReadEnds> trackOpticalDuplicatesF = new ArrayList<ReadEnds>();
+            final List<ReadEnds> trackOpticalDuplicatesR = new ArrayList<ReadEnds>();
+
+            // Split into two lists: first of pairs and second of pairs, since they must have orientation and same starting end
+            for (final ReadEnds end : ends) {
+                if (ReadEnds.FR == end.orientationForOpticalDuplicates) {
+                    trackOpticalDuplicatesF.add(end);
+                } else if (ReadEnds.RF == end.orientationForOpticalDuplicates) {
+                    trackOpticalDuplicatesR.add(end);
+                } else {
+                    throw new PicardException("Found an unexpected orientation: " + end.orientation);
+                }
+            }
+
+            // track the duplicates
+            trackOpticalDuplicates(trackOpticalDuplicatesF, opticalDuplicateFinder, libraryIdGenerator.getOpticalDuplicatesByLibraryIdMap());
+            trackOpticalDuplicates(trackOpticalDuplicatesR, opticalDuplicateFinder, libraryIdGenerator.getOpticalDuplicatesByLibraryIdMap());
+        } else { // No need to partition
+            AbstractMarkDuplicatesCommandLineProgram.trackOpticalDuplicates(ends, opticalDuplicateFinder, libraryIdGenerator.getOpticalDuplicatesByLibraryIdMap());
+        }
+    }
+
+    /**
+     * Looks through the set of reads and identifies how many of the duplicates are
+     * in fact optical duplicates, and stores the data in the instance level histogram.
+     * 
+     * We expect only reads with FR or RF orientations, not a mixture of both. 
+     * 
+     * In PCR duplicate detection, a duplicates can be a have FR and RF when fixing the orientation order to the first end of the mate.  In
+     * optical duplicate detection, we do not consider them duplicates if one read as FR ann the other RF when we order orientation by the
+     * first mate sequenced (read #1 of the pair).
+     */
+    private static void trackOpticalDuplicates(final List<? extends OpticalDuplicateFinder.PhysicalLocation> list,
+                                               final OpticalDuplicateFinder opticalDuplicateFinder,
+                                               final Histogram<Short> opticalDuplicatesByLibraryId) {
+        final boolean[] opticalDuplicateFlags = opticalDuplicateFinder.findOpticalDuplicates(list);
+
+        int opticalDuplicates = 0;
+        for (final boolean b : opticalDuplicateFlags) if (b) ++opticalDuplicates;
+        if (opticalDuplicates > 0) {
+            opticalDuplicatesByLibraryId.increment(list.get(0).getLibraryId(), opticalDuplicates);
+        }
+    }
+}
diff --git a/src/java/picard/sam/markduplicates/util/AbstractOpticalDuplicateFinderCommandLineProgram.java b/src/java/picard/sam/markduplicates/util/AbstractOpticalDuplicateFinderCommandLineProgram.java
new file mode 100644
index 0000000..c574af3
--- /dev/null
+++ b/src/java/picard/sam/markduplicates/util/AbstractOpticalDuplicateFinderCommandLineProgram.java
@@ -0,0 +1,71 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.sam.markduplicates.util;
+
+import picard.cmdline.*;
+import htsjdk.samtools.util.Log;
+
+/**
+ * Abstract class that holds parameters and methods common to classes that optical duplicate detection.  We put them here so that
+ * the explanation about how read names are parsed is in once place
+ *
+ * @author Tim Fennell
+ */
+public abstract class AbstractOpticalDuplicateFinderCommandLineProgram extends CommandLineProgram {
+    protected static Log LOG = Log.getInstance(AbstractOpticalDuplicateFinderCommandLineProgram.class);
+
+
+    @Option(doc = "Regular expression that can be used to parse read names in the incoming SAM file. Read names are " +
+            "parsed to extract three variables: tile/region, x coordinate and y coordinate. These values are used " +
+            "to estimate the rate of optical duplication in order to give a more accurate estimated library size. " +
+            "Set this option to null to disable optical duplicate detection. " +
+            "The regular expression should contain three capture groups for the three variables, in order. " +
+            "It must match the entire read name. " +
+            "Note that if the default regex is specified, a regex match is not actually done, but instead the read name " +
+            " is split on colon character. " +
+            "For 5 element names, the 3rd, 4th and 5th elements are assumed to be tile, x and y values. " +
+            "For 7 element names (CASAVA 1.8), the 5th, 6th, and 7th elements are assumed to be tile, x and y values.",
+            optional = true)
+    public String READ_NAME_REGEX = OpticalDuplicateFinder.DEFAULT_READ_NAME_REGEX;
+
+    @Option(doc = "The maximum offset between two duplicte clusters in order to consider them optical duplicates. This " +
+            "should usually be set to some fairly small number (e.g. 5-10 pixels) unless using later versions of the " +
+            "Illumina pipeline that multiply pixel values by 10, in which case 50-100 is more normal.")
+    public int OPTICAL_DUPLICATE_PIXEL_DISTANCE = OpticalDuplicateFinder.DEFAULT_OPTICAL_DUPLICATE_DISTANCE;
+
+    // The tool with which to find optical duplicates
+    protected OpticalDuplicateFinder opticalDuplicateFinder = null;
+
+    // Needed for testing
+    public void setupOpticalDuplicateFinder() {
+        this.opticalDuplicateFinder = new OpticalDuplicateFinder(READ_NAME_REGEX, OPTICAL_DUPLICATE_PIXEL_DISTANCE, LOG);
+    }
+
+    @Override
+    protected String[] customCommandLineValidation() {
+        setupOpticalDuplicateFinder();
+        return super.customCommandLineValidation();
+    }
+}
diff --git a/src/java/picard/sam/markduplicates/util/DiskBasedReadEndsForMarkDuplicatesMap.java b/src/java/picard/sam/markduplicates/util/DiskBasedReadEndsForMarkDuplicatesMap.java
new file mode 100644
index 0000000..0e0fee5
--- /dev/null
+++ b/src/java/picard/sam/markduplicates/util/DiskBasedReadEndsForMarkDuplicatesMap.java
@@ -0,0 +1,107 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.sam.markduplicates.util;
+
+import picard.PicardException;
+import htsjdk.samtools.CoordinateSortedPairInfoMap;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * Disk-based implementation of ReadEndsForMarkDuplicatesMap.  A subdirectory of the system tmpdir is created to store
+ * files, one for each reference sequence.  The reference sequence that is currently being queried (i.e. the
+ * sequence for which remove() has been most recently called) is stored in RAM.  ReadEnds for all other sequences
+ * are stored on disk.
+ * <p/>
+ * When put() is called for a sequence that is the current one in RAM, the ReadEnds object is merely put into the
+ * in-memory map.  If put() is called for a sequence ID that is not the current RAM one, the ReadEnds object is
+ * appended to the file for that sequence, creating the file if necessary.
+ * <p/>
+ * When remove() is called for a sequence that is the current one in RAM, remove() is called on the in-memory map.
+ * If remove() is called for a sequence other than the current RAM sequence, then the current RAM sequence is written
+ * to disk, the new sequence is read from disk into RAM map, and the file for the new sequence is deleted.
+ * <p/>
+ * If things work properly, and reads are processed in genomic order, records will be written for mates that are in
+ * a later sequence.  When the mate is reached in the input SAM file, the file that was written will be deleted.
+ * This should result in all temporary files being deleted by the time all the reads are processed.  The temp
+ * directory is marked to be deleted on exit so everything should get cleaned up.
+ *
+ * @author alecw at broadinstitute.org
+ */
+public class DiskBasedReadEndsForMarkDuplicatesMap implements ReadEndsForMarkDuplicatesMap {
+    private final CoordinateSortedPairInfoMap<String, ReadEndsForMarkDuplicates> pairInfoMap;
+
+    public DiskBasedReadEndsForMarkDuplicatesMap(int maxOpenFiles) {
+        pairInfoMap = new CoordinateSortedPairInfoMap<String, ReadEndsForMarkDuplicates>(maxOpenFiles, new Codec());
+    }
+
+    public ReadEndsForMarkDuplicates remove(int mateSequenceIndex, String key) {
+        return pairInfoMap.remove(mateSequenceIndex, key);
+    }
+
+    public void put(int mateSequenceIndex, String key, ReadEndsForMarkDuplicates readEnds) {
+        pairInfoMap.put(mateSequenceIndex, key, readEnds);
+    }
+
+    public int size() {
+        return pairInfoMap.size();
+    }
+
+    public int sizeInRam() {
+        return pairInfoMap.sizeInRam();
+    }
+
+    private static class Codec implements CoordinateSortedPairInfoMap.Codec<String, ReadEndsForMarkDuplicates> {
+        private final ReadEndsForMarkDuplicatesCodec readEndsForMarkDuplicatesCodec = new ReadEndsForMarkDuplicatesCodec();
+
+        public void setInputStream(final InputStream is) {
+            readEndsForMarkDuplicatesCodec.setInputStream(is);
+        }
+
+        public void setOutputStream(final OutputStream os) {
+            readEndsForMarkDuplicatesCodec.setOutputStream(os);
+        }
+
+        public Map.Entry<String, ReadEndsForMarkDuplicates> decode() {
+            try {
+                final String key = readEndsForMarkDuplicatesCodec.getInputStream().readUTF();
+                final ReadEndsForMarkDuplicates record = readEndsForMarkDuplicatesCodec.decode();
+                return new AbstractMap.SimpleEntry<java.lang.String, ReadEndsForMarkDuplicates>(key, record);
+            } catch (IOException e) {
+                throw new PicardException("Error loading ReadEndsForMarkDuplicatesMap from disk", e);
+            }
+        }
+
+        public void encode(final String key, final ReadEndsForMarkDuplicates readEnds) {
+            try {
+                readEndsForMarkDuplicatesCodec.getOutputStream().writeUTF(key);
+                readEndsForMarkDuplicatesCodec.encode(readEnds);
+            } catch (IOException e) {
+                throw new PicardException("Error spilling ReadEndsForMarkDuplicatesMap to disk.", e);
+            }
+        }
+    }
+
+}
diff --git a/src/java/picard/sam/markduplicates/util/LibraryIdGenerator.java b/src/java/picard/sam/markduplicates/util/LibraryIdGenerator.java
new file mode 100644
index 0000000..518856c
--- /dev/null
+++ b/src/java/picard/sam/markduplicates/util/LibraryIdGenerator.java
@@ -0,0 +1,113 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.sam.markduplicates.util;
+
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMReadGroupRecord;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.util.Histogram;
+import picard.sam.DuplicationMetrics;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * A class to generate library Ids and keep duplication metrics by library IDs.
+ *
+ * @author nhomer
+ */
+public class LibraryIdGenerator {
+
+    private final SAMFileHeader header;
+    private final Map<String, Short> libraryIds = new HashMap<String, Short>(); // from library string to library id
+    private short nextLibraryId = 1;
+    private final Map<String, DuplicationMetrics> metricsByLibrary = new HashMap<String, DuplicationMetrics>();
+    private final Histogram<Short> opticalDuplicatesByLibraryId = new Histogram<Short>();
+
+
+    public LibraryIdGenerator(final SAMFileHeader header) {
+        this.header = header;
+
+        for (final SAMReadGroupRecord readGroup : header.getReadGroups()) {
+            final String library = readGroup.getLibrary();
+            DuplicationMetrics metrics = metricsByLibrary.get(library);
+            if (metrics == null) {
+                metrics = new DuplicationMetrics();
+                metrics.LIBRARY = library;
+                metricsByLibrary.put(library, metrics);
+            }
+        }
+    }
+
+    public Map<String, Short> getLibraryIdsMap() { return this.libraryIds; }
+
+    public Map<String, DuplicationMetrics> getMetricsByLibraryMap() { return this.metricsByLibrary; }
+
+    public Histogram<Short> getOpticalDuplicatesByLibraryIdMap() { return this.opticalDuplicatesByLibraryId; }
+
+    /**
+     * Gets the library name from the header for the record. If the RG tag is not present on
+     * the record, or the library isn't denoted on the read group, a constant string is
+     * returned.
+     */
+    public static String getLibraryName(final SAMFileHeader header, final SAMRecord rec) {
+        final String readGroupId = (String) rec.getAttribute("RG");
+
+        if (readGroupId != null) {
+            final SAMReadGroupRecord rg = header.getReadGroup(readGroupId);
+            if (rg != null) {
+                final String libraryName = rg.getLibrary();
+                if (null != libraryName) return libraryName;
+            }
+        }
+
+        return "Unknown Library";
+    }
+
+    /** Get the library ID for the given SAM record. */
+    public short getLibraryId(final SAMRecord rec) {
+        final String library = getLibraryName(this.header, rec);
+        Short libraryId = this.libraryIds.get(library);
+
+        if (libraryId == null) {
+            libraryId = this.nextLibraryId++;
+            this.libraryIds.put(library, libraryId);
+        }
+
+        return libraryId;
+    }
+
+    public DuplicationMetrics getMetricsByLibrary(final String library) {
+        return this.metricsByLibrary.get(library);
+    }
+
+    public void addMetricsByLibrary(final String library, final DuplicationMetrics metrics) {
+        this.metricsByLibrary.put(library, metrics);
+    }
+
+    public long getNumberOfOpticalDuplicateClusters() {
+        return (long) this.opticalDuplicatesByLibraryId.getSumOfValues();
+    }
+}
diff --git a/src/java/picard/sam/markduplicates/util/MarkQueue.java b/src/java/picard/sam/markduplicates/util/MarkQueue.java
new file mode 100644
index 0000000..228257f
--- /dev/null
+++ b/src/java/picard/sam/markduplicates/util/MarkQueue.java
@@ -0,0 +1,371 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.sam.markduplicates.util;
+
+import htsjdk.samtools.DuplicateScoringStrategy;
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SAMUtils;
+import htsjdk.samtools.util.SamRecordTrackingBuffer;
+import picard.PicardException;
+import picard.sam.DuplicationMetrics;
+import htsjdk.samtools.DuplicateScoringStrategy.ScoringStrategy;
+
+import java.util.Comparator;
+import java.util.Set;
+import java.util.SortedSet;
+import java.util.TreeSet;
+
+/**
+ * This is the mark queue.
+ * <p/>
+ * This stores a current nonDuplicateReadEndsSet of read ends that need to be duplicate marked.  It only stores internally the "best" read end for a given
+ * possible duplicate location, preferring to perform duplicate marking as read ends come in, rather than wait for all "comparable"
+ * read ends to arrive.  This reduces the memory footprint of this data structure.
+ */
+public class MarkQueue {
+
+    /**
+     * Comparator to order the mark queue nonDuplicateReadEndsSet.  The nonDuplicateReadEndsSet of all the read ends that are compared to be the same should
+     * be used for duplicate marking.
+     */
+    private class MarkQueueComparator implements Comparator<ReadEndsForMateCigar> {
+        public int compare(final ReadEndsForMateCigar lhs, final ReadEndsForMateCigar rhs) {
+            int retval = lhs.libraryId - rhs.libraryId;
+            if (retval == 0) retval = lhs.read1ReferenceIndex - rhs.read1ReferenceIndex;
+            if (retval == 0) retval = lhs.read1Coordinate - rhs.read1Coordinate;
+            if (retval == 0) retval = rhs.orientation - lhs.orientation; // to get pairs first, based on the order defined in ReadEnds
+            if (retval == 0) retval = lhs.read2ReferenceIndex - rhs.read2ReferenceIndex;
+            if (retval == 0) retval = lhs.read2Coordinate - rhs.read2Coordinate;
+            return retval;
+        }
+    }
+
+    /**
+     * Comparator for ReadEndsForMateCigar that orders by read1 position then pair orientation then read2 position.
+     * This is the main comparator to choose the best representative read and end to store as the non-duplicate.
+     */
+    class ReadEndsMCComparator implements Comparator<ReadEndsForMateCigar> {
+        private final ScoringStrategy duplicateScoringStrategy;
+
+        public ReadEndsMCComparator(final ScoringStrategy duplicateScoringStrategy) {
+            this.duplicateScoringStrategy = duplicateScoringStrategy;
+        }
+
+        public int compare(final ReadEndsForMateCigar lhs, final ReadEndsForMateCigar rhs) {
+            int retval = lhs.libraryId - rhs.libraryId;
+            if (retval == 0) retval = lhs.read1ReferenceIndex - rhs.read1ReferenceIndex;
+            if (retval == 0) retval = lhs.read1Coordinate - rhs.read1Coordinate;
+            if (retval == 0) retval = rhs.orientation - lhs.orientation; // IMPORTANT: reverse the order to get pairs first
+            if (retval == 0 && lhs.isPaired() != rhs.isPaired()) return lhs.isPaired() ? -1 : 1; // unpaired goes first, based on the order defined in ReadEnds
+            if (retval == 0) retval = lhs.hasUnmapped - rhs.hasUnmapped;
+            if (retval == 0) retval = lhs.read2ReferenceIndex - rhs.read2ReferenceIndex;
+            if (retval == 0) retval = lhs.read2Coordinate - rhs.read2Coordinate;
+            // TODO: cache the scores?
+            if (retval == 0)
+                retval = DuplicateScoringStrategy.compare(lhs.getRecord(), rhs.getRecord(), this.duplicateScoringStrategy, true);
+            if (retval == 0) retval = lhs.getRecordReadName().compareTo(rhs.getRecordReadName());
+            /**
+             * If both reads are paired and both ends mapped, always prefer the first end over the second end.  This is needed to
+             * properly choose the first end for optical duplicate identification when both ends are mapped to the same position etc.
+             */
+            if (retval == 0 && lhs.isPaired() && rhs.isPaired() && null != lhs.getSamRecordIndex()) {
+                if (lhs.getRecord().getFirstOfPairFlag()) retval = -1;
+                else retval = 1;
+            }
+
+            return retval;
+        }
+    }
+
+    /** The genomic distance needed to assure that we have considered all reads for duplicate marking. */
+    private int toMarkQueueMinimumDistance = -1;
+
+    /** The total number of duplicates detected */
+    private int numDuplicates = 0;
+
+    /** The nonDuplicateReadEndsSet of all read ends sorted by 5' start unclipped position.  Some read ends in this nonDuplicateReadEndsSet may eventually be duplicates. */
+    private final TreeSet<ReadEndsForMateCigar> nonDuplicateReadEndsSet = new TreeSet<ReadEndsForMateCigar>(new MarkQueueComparator());
+
+    /**
+     * Reads in the main nonDuplicateReadEndsSet may occasionally have mates with the same chromosome, coordinate, and orientation, causing collisions
+     * We store the 'best' end of the mate pair in the main nonDuplicateReadEndsSet, and the other end in this nonDuplicateReadEndsSet.  We only remove from this.otherEndOfNonDuplicateReadEndsSet when
+     * we remove something from this.nonDuplicateReadEndsSet.
+     */
+    private final TreeSet<ReadEndsForMateCigar> otherEndOfNonDuplicateReadEndsSet = new TreeSet<ReadEndsForMateCigar>(new MarkQueueComparator());
+
+    /**
+     * If we have two items that are the same with respect to being in the "nonDuplicateReadEndsSet", then we must choose one.  The "one" will
+     * eventually be the end that is not marked as a duplicate in most cases (see poll() for the exceptions).
+     */
+    private final Comparator<ReadEndsForMateCigar> comparator;
+
+    /** temporary so we do not need to create many objects */
+    private ReadEndsForMateCigar tmpReadEnds = null;
+
+    public MarkQueue(final ScoringStrategy duplicateScoringStrategy) {
+        comparator = new ReadEndsMCComparator(duplicateScoringStrategy);
+    }
+
+    /** Returns the number of duplicates detected */
+    public int getNumDuplicates() { return this.numDuplicates; }
+
+    /** The number of records currently in this queue. * */
+    public int size() {
+        return this.nonDuplicateReadEndsSet.size() + this.otherEndOfNonDuplicateReadEndsSet.size();
+    }
+
+    public boolean isEmpty() {
+        return this.nonDuplicateReadEndsSet.isEmpty();
+    }
+
+    /** Sets the minimum genomic distance such that we can be assured that all duplicates have been considered. */
+    public void setToMarkQueueMinimumDistance(final int toMarkQueueMinimumDistance) {
+        this.toMarkQueueMinimumDistance = toMarkQueueMinimumDistance;
+    }
+
+    /** Returns the minimum genomic distance such that we can be assured that all duplicates have been considered. */
+    public int getToMarkQueueMinimumDistance() { return this.toMarkQueueMinimumDistance; }
+
+    /** Returns true if we should track this for optical duplicate detection, false otherwise */
+    public boolean shouldBeInLocations(final ReadEndsForMateCigar current) {
+        return (current.isPaired() && 0 == current.hasUnmapped);
+    }
+
+    /** Returns the nonDuplicateReadEndsSet of read ends that should be considered for tracking optical duplicates. */
+    public Set<ReadEnds> getLocations(final ReadEndsForMateCigar current) {
+        // NB: only needed for pairs!!!
+        if (!shouldBeInLocations(current)) throw new PicardException("Not implemented");
+        final Set<ReadEnds> locationSet = current.getReadEndSetForOpticalDuplicates();
+        if (null == locationSet) throw new PicardException("Locations was empty: unexpected error");
+        return locationSet;
+    }
+
+    /** Returns the first element in this queue */
+    public ReadEndsForMateCigar peek() {
+        return this.nonDuplicateReadEndsSet.first();
+    }
+
+    /** Updates the duplication metrics given the provided duplicate */
+    private void updateDuplicationMetrics(final ReadEndsForMateCigar duplicate, final DuplicationMetrics metrics) {
+        // Update the duplication metrics
+        if (!duplicate.getRecord().getReadPairedFlag() || duplicate.getRecord().getMateUnmappedFlag()) {
+            ++metrics.UNPAIRED_READ_DUPLICATES;
+        } else {
+            ++metrics.READ_PAIR_DUPLICATES;// will need to be divided by 2 at the end
+        }
+        this.numDuplicates++;
+    }
+
+    /**
+     * The poll method will return the read end that is *not* the duplicate of all comparable read ends that
+     * have been seen.  All comparable read ends and the returned read end will have their seen duplicate flag nonDuplicateReadEndsSet.  We use
+     * the minimum genomic distance to determine when all the comparable reads have been examined.
+     */
+    public ReadEndsForMateCigar poll(final SamRecordTrackingBuffer outputBuffer,
+                                     final SAMFileHeader header,
+                                     final OpticalDuplicateFinder opticalDuplicateFinder,
+                                     final LibraryIdGenerator libraryIdGenerator) {
+        /**
+         * NB: we must remove all fragments or unpaired reads if this is a mapped pair.
+         * NB: we must remove all fragments if this is an unpaired read.
+         */
+
+        final ReadEndsForMateCigar current = this.nonDuplicateReadEndsSet.pollFirst();
+
+        // If we are a paired read end, we need to make sure we remove unpaired (if we are not also unpaired), as
+        // well as fragments from the nonDuplicateReadEndsSet, as they should all be duplicates.
+        if (current.isPaired()) {
+
+            // Remove this record's comparable pair, if present.
+            if (this.otherEndOfNonDuplicateReadEndsSet.contains(current)) { // the pair of this end is not a duplicate, if found
+                final ReadEndsForMateCigar pair = this.otherEndOfNonDuplicateReadEndsSet.subSet(current, true, current, true).first();
+                outputBuffer.setResultState(pair.getSamRecordIndex(), false); // you are not a duplicate!
+                this.otherEndOfNonDuplicateReadEndsSet.remove(current);
+                // NB: do not need to update metrics since this record is not a duplicate
+            }
+
+            // NB: only care about read1ReferenceIndex, read1Coordinate, and orientation in the nonDuplicateReadEndsSet
+            if (null == this.tmpReadEnds) { // initialize
+                this.tmpReadEnds = new ReadEndsForMateCigar(header, current.getSamRecordIndex(), opticalDuplicateFinder, current.libraryId);
+                this.tmpReadEnds.read2ReferenceIndex = this.tmpReadEnds.read2Coordinate = -1;
+                this.tmpReadEnds.samRecordWithOrdinal = null; // nullify so we do not hold onto it forever
+            } else {
+                this.tmpReadEnds.read1ReferenceIndex = current.read1ReferenceIndex;
+                this.tmpReadEnds.read1Coordinate = current.read1Coordinate;
+            }
+
+            // We should search for one of F/R
+            if (current.orientation == ReadEnds.FF || current.orientation == ReadEnds.FR || current.orientation == ReadEnds.F) {
+                this.tmpReadEnds.orientation = ReadEnds.F;
+            } else {
+                this.tmpReadEnds.orientation = ReadEnds.R;
+            }
+
+            // remove from the nonDuplicateReadEndsSet fragments and unpaired, which only have two possible orientations
+            //this.tmpReadEnds.orientation = orientation;
+            if (this.nonDuplicateReadEndsSet.contains(this.tmpReadEnds)) { // found in the nonDuplicateReadEndsSet
+                // get the duplicate read end
+                final SortedSet<ReadEndsForMateCigar> sortedSet = this.nonDuplicateReadEndsSet.subSet(this.tmpReadEnds, true, this.tmpReadEnds, true);
+                if (1 != sortedSet.size()) throw new PicardException("SortedSet should have size one (has size " + sortedSet.size() + " )");
+                final ReadEndsForMateCigar duplicate = sortedSet.first();
+
+                /** mark as duplicate and nonDuplicateReadEndsSet that it has been through duplicate marking
+                 * duplicate.getRecord().setDuplicateReadFlag(true); HANDLED BY THE METHOD CALL BELOW*/
+                outputBuffer.setResultState(duplicate.getSamRecordIndex(), true);
+
+                // remove from the nonDuplicateReadEndsSet
+                this.nonDuplicateReadEndsSet.remove(this.tmpReadEnds);
+
+                // update the metrics
+                updateDuplicationMetrics(duplicate, libraryIdGenerator.getMetricsByLibrary(libraryIdGenerator.getLibraryName(header, duplicate.getRecord())));
+            }
+        }
+
+        // This read end is now ok to be emitted.  Track that it has been through duplicate marking.
+        outputBuffer.setResultState(current.getSamRecordIndex(), false);
+
+        return current;
+    }
+
+    /**
+     * Add a record to the mark queue.
+     */
+    public void add(final ReadEndsForMateCigar other,
+                    final SamRecordTrackingBuffer outputBuffer,
+                    final DuplicationMetrics metrics) {
+        /**
+         * OK this is the most complicated function in this class.  Please pay attention.
+         */
+        PhysicalLocationForMateCigarSet locationSet = null;
+        boolean addToLocationSet = true; // only false if we have mates mapped to the same position
+        ReadEndsForMateCigar duplicate = null;
+
+        // 1. check the queue to see if there exists a comparable record at the location, if so compare and keep the best.
+        // 2. add physical location info if paired
+
+        /**
+         * Check if we have a comparable record in our nonDuplicateReadEndsSet.
+         */
+        if (this.nonDuplicateReadEndsSet.contains(other)) { // a comparable record to "other" record already in the nonDuplicateReadEndsSet
+            /**
+             * Get the subset of records that are comparable, which should be of size one
+             *
+             * Sometimes, the ends that are comparable are in fact from the same pair.  In this case, we need to choose the best end
+             * from the pair, and track the sub-optimal end.
+             */
+            final SortedSet<ReadEndsForMateCigar> sortedSet = this.nonDuplicateReadEndsSet.subSet(other, true, other, true);
+            if (1 != sortedSet.size()) throw new PicardException("SortedSet should have size one (has size " + sortedSet.size() + " )");
+            final ReadEndsForMateCigar current = sortedSet.first();
+            final String otherName = SAMUtils.getCanonicalRecordName(other.getRecord());
+            final String currentName = SAMUtils.getCanonicalRecordName(current.getRecord());
+
+            final int comparison = this.comparator.compare(current, other);
+
+            /** Check if the ends to compare are in fact from the same pair */
+            if (currentName.equals(otherName)) {
+                /**
+                 * "other" is paired-end mate of "current". We need to choose the best end to store in the main nonDuplicateReadEndsSet.  We also have
+                 * to maintain the pair nonDuplicateReadEndsSet, as well as update the location nonDuplicateReadEndsSet.
+                 * */
+                if (0 < comparison) { // "other" is the best end. Swap for "current".
+                    // Swap them in the nonDuplicateReadEndsSet
+                    this.nonDuplicateReadEndsSet.remove(current);
+                    this.nonDuplicateReadEndsSet.add(other);
+                    this.otherEndOfNonDuplicateReadEndsSet.add(current); // add "current" to the pairset
+                    // Swap "current" and "other" in the locations
+                    if (shouldBeInLocations(other)) {
+                        locationSet = current.removeLocationSet();
+                        locationSet.replace(current, other); // swap "current" and "other"
+                        other.setLocationSet(locationSet);
+                        addToLocationSet = false;
+                    }
+                } else { // other is less desirable. Store it in the pair nonDuplicateReadEndsSet.
+                    this.otherEndOfNonDuplicateReadEndsSet.add(other); // add "other" to the pairset
+                    if (shouldBeInLocations(current)) {
+                        locationSet = current.getLocationSet();
+                        addToLocationSet = false;
+                    }
+                }
+            } else {
+                /**
+                 * "other" is a not the pair of "current" at the same location and must be compared against "current".
+                 */
+                if (0 < comparison) { // remove the current, and add the other in its place
+                    if (shouldBeInLocations(current)) { // was this in the location nonDuplicateReadEndsSet?
+                        // NB we could also just check if locationSet == null after remove?
+                        locationSet = current.removeLocationSet();
+                    } else { // make a new one
+                        locationSet = new PhysicalLocationForMateCigarSet();
+                    }
+                    other.setLocationSet(locationSet); // update locations to use "other" as the identifier for the location nonDuplicateReadEndsSet
+                    // remove current and add the other
+                    this.nonDuplicateReadEndsSet.remove(current);
+                    this.nonDuplicateReadEndsSet.add(other);
+
+                    // update the pair nonDuplicateReadEndsSet in case current's pair is in that nonDuplicateReadEndsSet
+                    if (this.otherEndOfNonDuplicateReadEndsSet.contains(current)) {
+                        final ReadEndsForMateCigar pair = this.otherEndOfNonDuplicateReadEndsSet.subSet(current, true, current, true).first();
+                        this.otherEndOfNonDuplicateReadEndsSet.remove(current);
+                        outputBuffer.setResultState(pair.getSamRecordIndex(), true); // track that this samRecordWithOrdinal has been through duplicate marking
+                        updateDuplicationMetrics(pair, metrics);
+                    }
+
+                    // current is now a duplicate
+                    duplicate = current;
+                } else { // keep the current record, and the "other" is now a duplicate
+                    if (shouldBeInLocations(current)) { // Get the location nonDuplicateReadEndsSet
+                        locationSet = current.getLocationSet();
+                    }
+                    // NB: else is technically not needed, since if this was not paired and the other one was, we would enter here and add it later
+
+                    // other is a duplicate :/
+                    duplicate = other;
+                }
+            }
+        } else { // 'other' ReadEndMC is not in the main nonDuplicateReadEndsSet, thus the first record at this location. Store it for now.
+            if (shouldBeInLocations(other)) {
+                locationSet = new PhysicalLocationForMateCigarSet();
+                other.setLocationSet(locationSet);
+            }
+            this.nonDuplicateReadEndsSet.add(other);
+        }
+        //System.err.println("\tSET SIZE=" + this.nonDuplicateReadEndsSet.size());
+
+        // add to the physical locations for optical duplicate tracking
+        final SAMRecord record = other.getRecord();
+        if (record.getReadPairedFlag() && !record.getReadUnmappedFlag() && !record.getMateUnmappedFlag() && addToLocationSet) {
+            if (null == locationSet) throw new PicardException("location nonDuplicateReadEndsSet was null: " + record.getSAMString());
+            locationSet.add(other);
+        }
+
+        // if we have a duplicate, update it for duplicate tracking and update the metrics
+        if (null != duplicate) {
+            outputBuffer.setResultState(duplicate.getSamRecordIndex(), true);
+            // count the duplicate metrics
+            updateDuplicationMetrics(duplicate, metrics);
+        }
+    }
+}
diff --git a/src/java/picard/sam/markduplicates/util/MemoryBasedReadEndsForMarkDuplicatesMap.java b/src/java/picard/sam/markduplicates/util/MemoryBasedReadEndsForMarkDuplicatesMap.java
new file mode 100644
index 0000000..745a2a8
--- /dev/null
+++ b/src/java/picard/sam/markduplicates/util/MemoryBasedReadEndsForMarkDuplicatesMap.java
@@ -0,0 +1,72 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.sam.markduplicates.util;
+
+import java.util.List;
+import java.util.Map;
+import java.util.ArrayList;
+import java.util.HashMap;
+
+/**
+ * Map from String to ReadEnds object.  Memory-based implementation.  Used for MarkDuplicates.
+ *
+ * @author alecw at broadinstitute.org
+ */
+class MemoryBasedReadEndsForMarkDuplicatesMap implements ReadEndsForMarkDuplicatesMap {
+
+    /**
+     * Index of this list is sequence index.  Value is map from String {read group id:read name} to ReadEnds.
+     * When a ReadEnds is put into this container, it is stored according to the sequenceIndex of the mate
+     */
+    private List<Map<String, ReadEndsForMarkDuplicates>> mapPerSequence = new ArrayList<Map<String, ReadEndsForMarkDuplicates>>();
+
+    public ReadEndsForMarkDuplicates remove(int mateSequenceIndex, String key) {
+        if (mateSequenceIndex >= mapPerSequence.size()) {
+            return null;
+        }
+        return mapPerSequence.get(mateSequenceIndex).remove(key);
+    }
+
+    public void put(int mateSequenceIndex, String key, ReadEndsForMarkDuplicates readEnds) {
+        while (mateSequenceIndex >= mapPerSequence.size()) {
+            mapPerSequence.add(new HashMap<String, ReadEndsForMarkDuplicates>());
+        }
+        mapPerSequence.get(mateSequenceIndex).put(key, readEnds);
+    }
+
+    public int size() {
+        int total = 0;
+        for (Map<String, ReadEndsForMarkDuplicates> map : mapPerSequence) {
+            total += map.size();
+        }
+        return total;
+    }
+
+    /**
+     * @return number of elements stored in RAM.  Always <= size()
+     */
+    public int sizeInRam() {
+        return size();
+    }
+}
diff --git a/src/java/picard/sam/markduplicates/util/OpticalDuplicateFinder.java b/src/java/picard/sam/markduplicates/util/OpticalDuplicateFinder.java
new file mode 100644
index 0000000..8b3ff6b
--- /dev/null
+++ b/src/java/picard/sam/markduplicates/util/OpticalDuplicateFinder.java
@@ -0,0 +1,203 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.sam.markduplicates.util;
+
+import htsjdk.samtools.util.Log;
+import picard.sam.util.ReadNameParsingUtils;
+
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * Contains methods for finding optical duplicates.
+ *
+ * @author Tim Fennell
+ * @author Nils Homer
+ */
+public class OpticalDuplicateFinder {
+
+    public static final String DEFAULT_READ_NAME_REGEX = "[a-zA-Z0-9]+:[0-9]:([0-9]+):([0-9]+):([0-9]+).*".intern();
+
+    public static final int DEFAULT_OPTICAL_DUPLICATE_DISTANCE = 100;
+
+    public String readNameRegex;
+
+    public int opticalDuplicatePixelDistance;
+
+    private Pattern readNamePattern;
+
+    private boolean warnedAboutRegexNotMatching = false;
+
+    private final Log log;
+
+    public OpticalDuplicateFinder() {
+        this(DEFAULT_READ_NAME_REGEX, DEFAULT_OPTICAL_DUPLICATE_DISTANCE);
+    }
+
+    public OpticalDuplicateFinder(final int opticalDuplicatePixelDistance) {
+        this(DEFAULT_READ_NAME_REGEX, opticalDuplicatePixelDistance);
+    }
+
+    public OpticalDuplicateFinder(final String readNameRegex) {
+        this(readNameRegex, DEFAULT_OPTICAL_DUPLICATE_DISTANCE);
+    }
+
+    public OpticalDuplicateFinder(final String readNameRegex, final int opticalDuplicatePixelDistance) {
+        this(readNameRegex, opticalDuplicatePixelDistance, null);
+    }
+
+    public OpticalDuplicateFinder(final String readNameRegex, final int opticalDuplicatePixelDistance, final Log log) {
+        this.readNameRegex = readNameRegex;
+        this.opticalDuplicatePixelDistance = opticalDuplicatePixelDistance;
+        this.log = log;
+    }
+
+    /**
+     * Small interface that provides access to the physical location information about a cluster.
+     * All values should be defaulted to -1 if unavailable.  ReadGroup and Tile should only allow
+     * non-zero positive integers, x and y coordinates may be negative.
+     */
+    public static interface PhysicalLocation {
+        public short getReadGroup();
+
+        public void setReadGroup(short rg);
+
+        public short getTile();
+
+        public void setTile(short tile);
+
+        public short getX();
+
+        public void setX(short x);
+
+        public short getY();
+
+        public void setY(short y);
+
+        public short getLibraryId();
+
+        public void setLibraryId(short libraryId);
+    }
+
+    private final int[] tmpLocationFields = new int[10]; // for optimization of addLocationInformation
+    /**
+     * Method used to extract tile/x/y from the read name and add it to the PhysicalLocation so that it
+     * can be used later to determine optical duplication
+     *
+     * @param readName the name of the read/cluster
+     * @param loc the object to add tile/x/y to
+     * @return true if the read name contained the information in parsable form, false otherwise
+     */
+    public boolean addLocationInformation(final String readName, final PhysicalLocation loc) {
+        // Optimized version if using the default read name regex (== used on purpose):
+        if (this.readNameRegex == this.DEFAULT_READ_NAME_REGEX) {
+            final int fields = ReadNameParsingUtils.getRapidDefaultReadNameRegexSplit(readName, ':', tmpLocationFields);
+            if (!(fields == 5 || fields == 7)) {
+                if (null != log && !this.warnedAboutRegexNotMatching) {
+                    this.log.warn(String.format("Default READ_NAME_REGEX '%s' did not match read name '%s'.  " +
+                            "You may need to specify a READ_NAME_REGEX in order to correctly identify optical duplicates.  " +
+                            "Note that this message will not be emitted again even if other read names do not match the regex.",
+                            this.readNameRegex, readName));
+                    this.warnedAboutRegexNotMatching = true;
+                }
+                return false;
+            }
+            final int offset = fields == 7 ? 2 : 0;
+            loc.setTile((short) tmpLocationFields[offset + 2]);
+            loc.setX((short) tmpLocationFields[offset + 3]);
+            loc.setY((short) tmpLocationFields[offset + 4]);
+            return true;
+        } else if (this.readNameRegex == null) {
+            return false;
+        } else {
+            // Standard version that will use the regex
+            if (this.readNamePattern == null) this.readNamePattern = Pattern.compile(this.readNameRegex);
+
+            final Matcher m = this.readNamePattern.matcher(readName);
+            if (m.matches()) {
+                loc.setTile((short) Integer.parseInt(m.group(1)));
+                loc.setX((short) Integer.parseInt(m.group(2)));
+                loc.setY((short) Integer.parseInt(m.group(3)));
+                return true;
+            } else {
+                if (null != log && !this.warnedAboutRegexNotMatching) {
+                    this.log.warn(String.format("READ_NAME_REGEX '%s' did not match read name '%s'.  Your regex may not be correct.  " +
+                            "Note that this message will not be emitted again even if other read names do not match the regex.",
+                            this.readNameRegex, readName));
+                    warnedAboutRegexNotMatching = true;
+                }
+                return false;
+            }
+        }
+    }
+
+    /**
+     * Finds which reads within the list of duplicates are likely to be optical duplicates of
+     * one another.
+     * <p/>
+     * Note: this method will perform a sort() of the list; if it is imperative that the list be
+     * unmodified a copy of the list should be passed to this method.
+     *
+     * @param list a list of reads that are determined to be duplicates of one another
+     * @return a boolean[] of the same length as the incoming list marking which reads are optical duplicates
+     */
+    public boolean[] findOpticalDuplicates(final List<? extends PhysicalLocation> list) {
+        final int length = list.size();
+        final boolean[] opticalDuplicateFlags = new boolean[length];
+
+        Collections.sort(list, new Comparator<PhysicalLocation>() {
+            public int compare(final PhysicalLocation lhs, final PhysicalLocation rhs) {
+                int retval = lhs.getReadGroup() - rhs.getReadGroup();
+                if (retval == 0) retval = lhs.getTile() - rhs.getTile();
+                if (retval == 0) retval = lhs.getX() - rhs.getX();
+                if (retval == 0) retval = lhs.getY() - rhs.getY();
+                return retval;
+            }
+        });
+
+        outer:
+        for (int i = 0; i < length; ++i) {
+            final PhysicalLocation lhs = list.get(i);
+            if (lhs.getTile() < 0) continue;
+
+            for (int j = i + 1; j < length; ++j) {
+                final PhysicalLocation rhs = list.get(j);
+
+                if (opticalDuplicateFlags[j]) continue;
+                if (lhs.getReadGroup() != rhs.getReadGroup()) continue outer;
+                if (lhs.getTile() != rhs.getTile()) continue outer;
+                if (rhs.getX() > lhs.getX() + this.opticalDuplicatePixelDistance) continue outer;
+
+                if (Math.abs(lhs.getY() - rhs.getY()) <= this.opticalDuplicatePixelDistance) {
+                    opticalDuplicateFlags[j] = true;
+                }
+            }
+        }
+        return opticalDuplicateFlags;
+    }
+}
diff --git a/src/java/picard/sam/markduplicates/util/PhysicalLocationForMateCigar.java b/src/java/picard/sam/markduplicates/util/PhysicalLocationForMateCigar.java
new file mode 100644
index 0000000..20d3840
--- /dev/null
+++ b/src/java/picard/sam/markduplicates/util/PhysicalLocationForMateCigar.java
@@ -0,0 +1,102 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.sam.markduplicates.util;
+
+/**
+ * @author nhomer
+ */
+
+/** Stores the minimal information needed for optical duplicate detection. */
+public class PhysicalLocationForMateCigar implements OpticalDuplicateFinder.PhysicalLocation {
+
+    // Information used to detect optical dupes
+    short readGroup = -1;
+    short tile = -1;
+    short x = -1, y = -1;
+    short libraryId;
+
+    public PhysicalLocationForMateCigar(final OpticalDuplicateFinder.PhysicalLocation rec) {
+        this.setReadGroup(rec.getReadGroup());
+        this.setTile(rec.getTile());
+        this.setX(rec.getX());
+        this.setY(rec.getY());
+        this.setLibraryId(rec.getLibraryId());
+    }
+
+    @Override
+    public short getReadGroup() { return this.readGroup; }
+
+    @Override
+    public void setReadGroup(final short rg) { this.readGroup = rg; }
+
+    @Override
+    public short getTile() { return this.tile; }
+
+    @Override
+    public void setTile(final short tile) { this.tile = tile; }
+
+    @Override
+    public short getX() { return this.x; }
+
+    @Override
+    public void setX(final short x) { this.x = x; }
+
+    @Override
+    public short getY() { return this.y; }
+
+    @Override
+    public void setY(final short y) { this.y = y;}
+
+    @Override
+    public short getLibraryId() { return this.libraryId; }
+
+    @Override
+    public void setLibraryId(final short libraryId) { this.libraryId = libraryId; }
+
+    @Override
+    public boolean equals(Object other) {
+        if (other instanceof PhysicalLocationForMateCigar) {
+            int cmp;
+            PhysicalLocationForMateCigar loc = (PhysicalLocationForMateCigar) other;
+            cmp = getLibraryId() - loc.getLibraryId();
+            if (0 == cmp) cmp = getReadGroup() - loc.getReadGroup();
+            if (0 == cmp) cmp = getTile() - loc.getTile();
+            if (0 == cmp) cmp = getY() - loc.getY();
+            if (0 == cmp) cmp = getX() - loc.getX();
+            return 0 == cmp;
+        }
+        return false;
+    }
+
+    @Override
+    public int hashCode() {
+        int result = getLibraryId();
+        result = 31 * result + getReadGroup();
+        result = 31 * result + getTile();
+        result = 31 * result + getY();
+        result = 31 * result + getX();
+        return result;
+    }
+}
\ No newline at end of file
diff --git a/src/java/picard/sam/markduplicates/util/PhysicalLocationForMateCigarSet.java b/src/java/picard/sam/markduplicates/util/PhysicalLocationForMateCigarSet.java
new file mode 100644
index 0000000..e389c2f
--- /dev/null
+++ b/src/java/picard/sam/markduplicates/util/PhysicalLocationForMateCigarSet.java
@@ -0,0 +1,77 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.sam.markduplicates.util;
+
+import picard.PicardException;
+
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * This stores records that are comparable for detecting optical duplicates.
+ */
+public class PhysicalLocationForMateCigarSet {
+    /**
+     * We want to return a set of ReadEnds but want to compare based on physical location, hence we store two sets.
+     */
+    private final Set<ReadEnds> readEnds = new HashSet<ReadEnds>();
+    private final Set<PhysicalLocationForMateCigar> physicalLocations = new HashSet<PhysicalLocationForMateCigar>();
+
+    public PhysicalLocationForMateCigarSet() {}
+
+    /** Adds the end to this set, if not already added based on physical location */
+    public void add(final ReadEndsForMateCigar end) {
+        final PhysicalLocationForMateCigar location = new PhysicalLocationForMateCigar(end);
+        if (!physicalLocations.contains(location)) {
+            readEnds.add(end);
+            physicalLocations.add(new PhysicalLocationForMateCigar(location));
+        }
+    }
+
+    /** The number of records in this set */
+    public int size() { return physicalLocations.size(); }
+
+    /** Removes the end from this set, if present */
+    public void remove(final ReadEndsForMateCigar end) {
+        final PhysicalLocationForMateCigar location = new PhysicalLocationForMateCigar(end);
+        if (physicalLocations.contains(location)) {
+            readEnds.remove(end);
+            physicalLocations.remove(location);
+        }
+    }
+
+    /** Gets the set of read ends */
+    public Set<ReadEnds> getReadEnds() { return this.readEnds; }
+
+    /** Replaces a given end with the other end.  This ensures that that current is in this set */
+    public void replace(final ReadEndsForMateCigar current, final ReadEndsForMateCigar other) {
+        final PhysicalLocationForMateCigar location = new PhysicalLocationForMateCigar(current);
+        if (!physicalLocations.contains(location)) {
+            throw new PicardException("Trying to replace something not in the set");
+        }
+        this.remove(current);
+        this.add(other);
+    }
+}
diff --git a/src/java/picard/sam/markduplicates/util/ReadEnds.java b/src/java/picard/sam/markduplicates/util/ReadEnds.java
new file mode 100644
index 0000000..396df39
--- /dev/null
+++ b/src/java/picard/sam/markduplicates/util/ReadEnds.java
@@ -0,0 +1,91 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.sam.markduplicates.util;
+
+/** Little struct-like class to hold read pair (and fragment) end data for duplicate marking. */
+abstract public class ReadEnds implements OpticalDuplicateFinder.PhysicalLocation {
+
+    public static final byte F = 0, R = 1, FF = 2, FR = 3, RR = 4, RF = 5;
+
+    public short libraryId;
+    public byte orientation;
+    public int read1ReferenceIndex = -1;
+    public int read1Coordinate = -1;
+    public int read2ReferenceIndex = -1;
+    public int read2Coordinate = -1;
+
+    // Information used to detect optical dupes
+    public short readGroup = -1;
+    public short tile = -1;
+    public short x = -1, y = -1;
+
+    /** For optical duplicate detection the orientation matters regard to 1st or 2nd end of a mate */
+    public byte orientationForOpticalDuplicates = -1;
+
+
+    public boolean isPaired() { return this.read2ReferenceIndex != -1; }
+
+    @Override
+    public short getReadGroup() { return this.readGroup; }
+
+    @Override
+    public void setReadGroup(final short readGroup) { this.readGroup = readGroup; }
+
+    @Override
+    public short getTile() { return this.tile; }
+
+    @Override
+    public void setTile(final short tile) { this.tile = tile; }
+
+    @Override
+    public short getX() { return this.x; }
+
+    @Override
+    public void setX(final short x) { this.x = x; }
+
+    @Override
+    public short getY() { return this.y; }
+
+    @Override
+    public void setY(final short y) { this.y = y; }
+
+    @Override
+    public short getLibraryId() { return this.libraryId; }
+
+    @Override
+    public void setLibraryId(final short libraryId) { this.libraryId = libraryId; }
+
+    /**
+     * Returns a single byte that encodes the orientation of the two reads in a pair.
+     */
+    public static byte getOrientationByte(final boolean read1NegativeStrand, final boolean read2NegativeStrand) {
+        if (read1NegativeStrand) {
+            if (read2NegativeStrand) return ReadEnds.RR;
+            else return ReadEnds.RF;
+        } else {
+            if (read2NegativeStrand) return ReadEnds.FR;
+            else return ReadEnds.FF;
+        }
+    }
+}
diff --git a/src/java/picard/sam/markduplicates/util/ReadEndsForMarkDuplicates.java b/src/java/picard/sam/markduplicates/util/ReadEndsForMarkDuplicates.java
new file mode 100644
index 0000000..14f381c
--- /dev/null
+++ b/src/java/picard/sam/markduplicates/util/ReadEndsForMarkDuplicates.java
@@ -0,0 +1,47 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.sam.markduplicates.util;
+
+/**
+ * Little struct-like class to hold read pair (and fragment) end data for MarkDuplicatesWithMateCigar
+ *
+ * @author Nils Homer
+ */
+public class ReadEndsForMarkDuplicates extends ReadEnds {
+    /*
+    What do we need to store you ask?  Well, we need to store:
+       - byte: orientation
+       - short: libraryId, readGroup, tile, x, y, score
+       - int: read1ReferenceIndex, read1Coordinate, read2ReferenceIndex, read2Coordinate
+       - long: read1IndexInFile, read2IndexInFile
+     */
+    public static final int SIZE_OF = (1 * 1) + (5 * 2) + (4 * 4) + (8 * 2) + 1
+            + 8 + // last 8 == reference overhead
+            13; // This is determined experimentally with JProfiler
+
+    public short score = 0;
+    public long read1IndexInFile = -1;
+    public long read2IndexInFile = -1;
+}
\ No newline at end of file
diff --git a/src/java/picard/sam/markduplicates/util/ReadEndsForMarkDuplicatesCodec.java b/src/java/picard/sam/markduplicates/util/ReadEndsForMarkDuplicatesCodec.java
new file mode 100644
index 0000000..09c8377
--- /dev/null
+++ b/src/java/picard/sam/markduplicates/util/ReadEndsForMarkDuplicatesCodec.java
@@ -0,0 +1,111 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.sam.markduplicates.util;
+
+import htsjdk.samtools.util.SortingCollection;
+import picard.PicardException;
+
+import java.io.*;
+
+/** Coded for ReadEnds that just outputs the primitive fields and reads them back. */
+public class ReadEndsForMarkDuplicatesCodec implements SortingCollection.Codec<ReadEndsForMarkDuplicates> {
+    private DataInputStream in;
+    private DataOutputStream out;
+
+    public SortingCollection.Codec<ReadEndsForMarkDuplicates> clone() {
+        return new ReadEndsForMarkDuplicatesCodec();
+    }
+
+    public void setOutputStream(final OutputStream os) { this.out = new DataOutputStream(os); }
+
+    public void setInputStream(final InputStream is) { this.in = new DataInputStream(is); }
+
+    public DataInputStream getInputStream() {
+        return in;
+    }
+
+    public DataOutputStream getOutputStream() {
+        return out;
+    }
+
+    public void encode(final ReadEndsForMarkDuplicates read) {
+        try {
+            this.out.writeShort(read.score);
+            this.out.writeShort(read.libraryId);
+            this.out.writeByte(read.orientation);
+            this.out.writeInt(read.read1ReferenceIndex);
+            this.out.writeInt(read.read1Coordinate);
+            this.out.writeLong(read.read1IndexInFile);
+            this.out.writeInt(read.read2ReferenceIndex);
+
+            if (read.orientation > ReadEnds.R) {
+                this.out.writeInt(read.read2Coordinate);
+                this.out.writeLong(read.read2IndexInFile);
+            }
+
+            this.out.writeShort(read.readGroup);
+            this.out.writeShort(read.tile);
+            this.out.writeShort(read.x);
+            this.out.writeShort(read.y);
+            this.out.writeByte(read.orientationForOpticalDuplicates);
+        } catch (final IOException ioe) {
+            throw new PicardException("Exception writing ReadEnds to file.", ioe);
+        }
+    }
+
+    public ReadEndsForMarkDuplicates decode() {
+        final ReadEndsForMarkDuplicates read = new ReadEndsForMarkDuplicates();
+        try {
+            // If the first read results in an EOF we've exhausted the stream
+            try {
+                read.score = this.in.readShort();
+            } catch (final EOFException eof) {
+                return null;
+            }
+
+            read.libraryId = this.in.readShort();
+            read.orientation = this.in.readByte();
+            read.read1ReferenceIndex = this.in.readInt();
+            read.read1Coordinate = this.in.readInt();
+            read.read1IndexInFile = this.in.readLong();
+            read.read2ReferenceIndex = this.in.readInt();
+
+            if (read.orientation > ReadEnds.R) {
+                read.read2Coordinate = this.in.readInt();
+                read.read2IndexInFile = this.in.readLong();
+            }
+
+            read.readGroup = this.in.readShort();
+            read.tile = this.in.readShort();
+            read.x = this.in.readShort();
+            read.y = this.in.readShort();
+
+            read.orientationForOpticalDuplicates = this.in.readByte();
+
+            return read;
+        } catch (final IOException ioe) {
+            throw new PicardException("Exception writing ReadEnds to file.", ioe);
+        }
+    }
+}
diff --git a/src/java/picard/sam/markduplicates/util/ReadEndsForMarkDuplicatesMap.java b/src/java/picard/sam/markduplicates/util/ReadEndsForMarkDuplicatesMap.java
new file mode 100644
index 0000000..2a40f18
--- /dev/null
+++ b/src/java/picard/sam/markduplicates/util/ReadEndsForMarkDuplicatesMap.java
@@ -0,0 +1,61 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.sam.markduplicates.util;
+
+/**
+ * Interface for storing and retrieving ReadEnds objects.  An implementation may be disk-based to
+ * reduce memory footprint.
+ */
+public interface ReadEndsForMarkDuplicatesMap {
+    /**
+     * Remove element with given key from the map.  Because an implementation may be disk-based,
+     * the object returned may not be the same object that was put into the map
+     *
+     * @param mateSequenceIndex must agree with the value used when the object was put into the map
+     * @param key               typically, concatenation of read group ID and read name
+     * @return null if the key is not found, otherwise the object removed.
+     */
+    ReadEndsForMarkDuplicates remove(int mateSequenceIndex, String key);
+
+    /**
+     * Store the element in the map with the given key.  It is assumed that the element
+     * is not already present in the map.
+     *
+     * @param mateSequenceIndex use to optimize storage & retrieval.  The same value must be used when trying
+     *                          to remove this element.  It is not valid to store the same key with two different mateSequenceIndexes.
+     * @param key               typically, concatenation of read group ID and read name
+     * @param readEnds          the object to be stored
+     */
+    void put(int mateSequenceIndex, String key, ReadEndsForMarkDuplicates readEnds);
+
+    /**
+     * @return number of elements stored in map
+     */
+    int size();
+
+    /**
+     * @return number of elements stored in RAM.  Always <= size()
+     */
+    int sizeInRam();
+}
diff --git a/src/java/picard/sam/markduplicates/util/ReadEndsForMateCigar.java b/src/java/picard/sam/markduplicates/util/ReadEndsForMateCigar.java
new file mode 100644
index 0000000..03970f8
--- /dev/null
+++ b/src/java/picard/sam/markduplicates/util/ReadEndsForMateCigar.java
@@ -0,0 +1,167 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.sam.markduplicates.util;
+
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMReadGroupRecord;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SAMUtils;
+import htsjdk.samtools.util.SamRecordWithOrdinal;
+import picard.PicardException;
+
+import java.util.List;
+import java.util.Set;
+
+/**
+ * A class to store individual records for MarkDuplicatesWithMateCigar.  This aids in comparing records to determine which need to
+ * be compared when we mark duplicates.  We also store the original SAMRecord and its ordinal in the input file (in SamRecordWithOrdinal) to
+ * access optional tags (mate cigar) and other information.
+ */
+public class ReadEndsForMateCigar extends ReadEnds {
+    // to see if either end is unmapped
+    byte hasUnmapped = 0;
+
+    // we need this reference so we can access the mate cigar among other things
+    public SamRecordWithOrdinal samRecordWithOrdinal = null;
+
+    /**
+     * Physical locations used for optical duplicate tracking.  This is only stored for paired end reads where both ends are mapped,
+     * and when we see the first mate.
+     */
+    private PhysicalLocationForMateCigarSet locationSet = null;
+
+    /** Builds a read ends object that represents a single read. */
+    public ReadEndsForMateCigar(final SAMFileHeader header, final SamRecordWithOrdinal samRecordWithOrdinal,
+                                final OpticalDuplicateFinder opticalDuplicateFinder, final short libraryId) {
+
+        this.readGroup = -1;
+        this.tile = -1;
+        this.x = this.y = -1;
+        this.read2ReferenceIndex = this.read2Coordinate = -1;
+        this.hasUnmapped = 0;
+
+        this.samRecordWithOrdinal = samRecordWithOrdinal;
+
+        final SAMRecord record = this.samRecordWithOrdinal.getRecord();
+
+        this.read1ReferenceIndex = record.getReferenceIndex();
+        this.read1Coordinate = record.getReadNegativeStrandFlag() ? record.getUnclippedEnd() : record.getUnclippedStart();
+        if (record.getReadUnmappedFlag()) {
+            throw new PicardException("Found an unexpected unmapped read");
+        }
+
+        if (record.getReadPairedFlag() && !record.getReadUnmappedFlag() && !record.getMateUnmappedFlag()) {
+            this.read2ReferenceIndex = record.getMateReferenceIndex();
+            this.read2Coordinate = record.getMateNegativeStrandFlag() ? SAMUtils.getMateUnclippedEnd(record) : SAMUtils.getMateUnclippedStart(record);
+
+            // set orientation
+            this.orientation = ReadEnds.getOrientationByte(record.getReadNegativeStrandFlag(), record.getMateNegativeStrandFlag());
+
+            // Set orientationForOpticalDuplicates, which always goes by the first then the second end for the strands.  NB: must do this
+            // before updating the orientation later.
+            if (record.getReadPairedFlag()) {
+                if (record.getFirstOfPairFlag()) {
+                    this.orientationForOpticalDuplicates = ReadEnds.getOrientationByte(record.getReadNegativeStrandFlag(), record.getMateNegativeStrandFlag());
+                } else {
+                    this.orientationForOpticalDuplicates = ReadEnds.getOrientationByte(record.getMateNegativeStrandFlag(), record.getReadNegativeStrandFlag());
+                }
+            }
+        } else {
+            this.orientation = record.getReadNegativeStrandFlag() ? ReadEndsForMateCigar.R : ReadEndsForMateCigar.F;
+        }
+
+        // Fill in the library ID
+        this.libraryId = libraryId;
+
+        // Is this unmapped or its mate?
+        if (record.getReadUnmappedFlag() || (record.getReadPairedFlag() && record.getMateUnmappedFlag())) {
+            this.hasUnmapped = 1;
+        }
+
+        // Fill in the location information for optical duplicates
+        if (opticalDuplicateFinder.addLocationInformation(record.getReadName(), this)) {
+            // calculate the RG number (nth in list)
+            // NB: could this be faster if we used a hash?
+            this.readGroup = 0;
+            final String rg = (String) record.getAttribute("RG");
+            final List<SAMReadGroupRecord> readGroups = header.getReadGroups();
+            if (rg != null && readGroups != null) {
+                for (final SAMReadGroupRecord readGroup : readGroups) {
+                    if (readGroup.getReadGroupId().equals(rg)) break;
+                    else this.readGroup++;
+                }
+            }
+        }
+    }
+
+    /** Creates a shallow copy from the "other" */
+    public ReadEndsForMateCigar(final ReadEndsForMateCigar other, final SamRecordWithOrdinal samRecordWithOrdinal) {
+        this.readGroup = other.readGroup;
+        this.tile = other.tile;
+        this.x = other.x;
+        this.y = other.y;
+        this.read1ReferenceIndex = other.read1ReferenceIndex;
+        this.read1Coordinate = other.read1Coordinate;
+        this.read2ReferenceIndex = other.read2ReferenceIndex;
+        this.read2Coordinate = other.read2Coordinate;
+        this.hasUnmapped = other.hasUnmapped;
+        this.samRecordWithOrdinal = samRecordWithOrdinal;
+        this.orientation = other.orientation;
+        this.libraryId = other.libraryId;
+    }
+
+    /** A number of convenience functions */
+    public SamRecordWithOrdinal getSamRecordIndex() { return this.samRecordWithOrdinal; }
+
+    public SAMRecord getRecord() { return this.samRecordWithOrdinal.getRecord(); }
+
+    public String getRecordReadName() { return this.samRecordWithOrdinal.getRecord().getReadName(); }
+
+    @Override
+    public boolean isPaired() { return this.getRecord().getReadPairedFlag(); }
+
+    /** Gets the read ends for optical duplicate tracking */
+    public Set<ReadEnds> getReadEndSetForOpticalDuplicates() {
+        if (null == this.locationSet) throw new PicardException("Already called getReadEndSetForOpticalDuplicates");
+        final Set<ReadEnds> locationSet = this.locationSet.getReadEnds();
+        this.locationSet = null;
+        return locationSet;
+    }
+
+    public PhysicalLocationForMateCigarSet getLocationSet() {
+        return this.locationSet;
+    }
+
+    public PhysicalLocationForMateCigarSet removeLocationSet() {
+        final PhysicalLocationForMateCigarSet locationSet = this.locationSet;
+        this.locationSet = null;
+        return locationSet;
+    }
+
+    public void setLocationSet(final PhysicalLocationForMateCigarSet locationSet) {
+        this.locationSet = locationSet;
+    }
+
+}
diff --git a/src/java/picard/sam/markduplicates/util/SamRecordWithOrdinalAndSetDuplicateReadFlag.java b/src/java/picard/sam/markduplicates/util/SamRecordWithOrdinalAndSetDuplicateReadFlag.java
new file mode 100644
index 0000000..65531dc
--- /dev/null
+++ b/src/java/picard/sam/markduplicates/util/SamRecordWithOrdinalAndSetDuplicateReadFlag.java
@@ -0,0 +1,49 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.sam.markduplicates.util;
+
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.util.SamRecordWithOrdinal;
+
+/**
+ * This class sets the duplicate read flag as the result state when examining sets of records.
+ *
+ * @author nhomer
+ */
+public class SamRecordWithOrdinalAndSetDuplicateReadFlag extends SamRecordWithOrdinal {
+
+    public SamRecordWithOrdinalAndSetDuplicateReadFlag() {
+        super();
+    }
+
+    public SamRecordWithOrdinalAndSetDuplicateReadFlag(final SAMRecord record, final long recordIndex) {
+        super(record, recordIndex);
+    }
+
+    @Override
+    public void setResultState(final boolean resultState) {
+        this.getRecord().setDuplicateReadFlag(resultState);
+    }
+}
diff --git a/src/java/picard/sam/util/PhysicalLocation.java b/src/java/picard/sam/util/PhysicalLocation.java
new file mode 100644
index 0000000..6d79aaf
--- /dev/null
+++ b/src/java/picard/sam/util/PhysicalLocation.java
@@ -0,0 +1,118 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2015 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.sam.util;
+
+import picard.PicardException;
+import picard.sam.markduplicates.util.OpticalDuplicateFinder;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * Contains class for figuring out the location of reads.
+ *
+ * @author Tim Fennell
+ * @author Nils Homer
+ * @author Yossi Farjoun
+ */
+
+/**
+ * Small interface that provides access to the physical location information about a cluster.
+ * All values should be defaulted to -1 if unavailable.  Tile should only allow
+ * non-zero positive integers, x and y coordinates must be non-negative.
+ * This is different from OpticalDuplicateFinder.PhysicalLocation in that the x and y positions are ints, not shorts
+ * thus, they do not overflow within a HiSeqX tile.
+ */
+public class PhysicalLocation {
+                                                        //FLOWCELL----:LANE-:TILE----:X_COORD-:Y_COORD-UNK
+    public static final String DEFAULT_READ_NAME_REGEX = "[a-zA-Z0-9]+:[0-9]:([0-9]+):([0-9]+):([0-9]+).*";
+
+    private final String readNameRegex;
+
+    public PhysicalLocation() {this(DEFAULT_READ_NAME_REGEX);}
+
+    public PhysicalLocation(final String readNameRegExp) {this.readNameRegex = readNameRegExp;}
+
+    private Pattern readNamePattern;
+
+    private short tile = -1;
+    private int x = -1, y = -1;
+
+
+    public short getTile() { return tile; }
+
+    public void setTile(final short tile) { this.tile = tile; }
+
+    public int getX() { return x; }
+
+    public void setX(final int x) { this.x = x; }
+
+    public int getY() { return y; }
+
+    public void setY(final int y) { this.y = y; }
+
+
+    private final int[] tmpLocationFields = new int[10]; // for optimization of addLocationInformation
+
+    /**
+     * Method used to extract tile/x/y from the read name and add it to the PhysicalLocation so that it
+     * can be used later to determine optical duplication
+     *
+     * @param readName the name of the read/cluster
+     * @param loc      the object to add tile/x/y to
+     * @return true if the read name contained the information in parsable form, false otherwise
+     */
+    public boolean addLocationInformation(final String readName, final PhysicalLocation loc) {
+        // Optimized version if using the default read name regex (== used on purpose):
+        if (readNameRegex == DEFAULT_READ_NAME_REGEX) {
+            final int fields = ReadNameParsingUtils.getRapidDefaultReadNameRegexSplit(readName, ':', tmpLocationFields);
+            if (!(fields == 5 || fields == 7)) {
+                throw new PicardException(String.format(" READ_NAME_REGEX '%s' did not match read name '%s'.  " ,
+                        this.readNameRegex, readName));
+            }
+
+            final int offset = fields == 7 ? 2 : 0;
+            loc.setTile((short) tmpLocationFields[offset + 2]);
+            loc.setX(tmpLocationFields[offset + 3]);
+            loc.setY(tmpLocationFields[offset + 4]);
+            return true;
+        } else if (readNameRegex == null) {
+            return false;
+        } else {
+            // Standard version that will use the regex
+            if (readNamePattern == null) readNamePattern = Pattern.compile(readNameRegex);
+
+            final Matcher m = readNamePattern.matcher(readName);
+            if (m.matches()) {
+                loc.setTile((short) Integer.parseInt(m.group(1)));
+                loc.setX(Integer.parseInt(m.group(2)));
+                loc.setY(Integer.parseInt(m.group(3)));
+                return true;
+            } else {
+                throw new PicardException(String.format("READ_NAME_REGEX '%s' did not match read name '%s'. ", readNameRegex, readName));
+            }
+        }
+    }
+}
diff --git a/src/java/picard/sam/util/ReadNameParsingUtils.java b/src/java/picard/sam/util/ReadNameParsingUtils.java
new file mode 100644
index 0000000..ac6e268
--- /dev/null
+++ b/src/java/picard/sam/util/ReadNameParsingUtils.java
@@ -0,0 +1,83 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2015 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.sam.util;
+
+/**
+ * Common functions for quickly parsing strings. Used for parsing the tile and coordinates from the read names
+ */
+public class ReadNameParsingUtils {
+
+    /**
+     * Single pass method to parse the read name for the default regex.  This will only insert the 2nd to the 4th
+     * tokens (inclusive).  It will also stop after the fifth token has been successfully parsed.
+     */
+    public static int getRapidDefaultReadNameRegexSplit(final String readName, final char delim, final int[] tokens) {
+        int tokensIdx = 0;
+        int prevIdx = 0;
+        for (int i = 0; i < readName.length(); i++) {
+            if (readName.charAt(i) == delim) {
+                if (1 < tokensIdx && tokensIdx < 5)
+                    tokens[tokensIdx] = rapidParseInt(readName.substring(prevIdx, i)); // only fill in 2-4 inclusive
+                tokensIdx++;
+                if (4 < tokensIdx) return tokensIdx; // early return, only consider the first five tokens
+                prevIdx = i + 1;
+            }
+        }
+        if (prevIdx < readName.length()) {
+            if (1 < tokensIdx && tokensIdx < 5)
+                tokens[tokensIdx] = rapidParseInt(readName.substring(prevIdx, readName.length())); // only fill in 2-4 inclusive
+            tokensIdx++;
+        }
+        return tokensIdx;
+    }
+
+    /**
+     * Very specialized method to rapidly parse a sequence of digits from a String up until the first
+     * non-digit character.
+     */
+    public static int rapidParseInt(final String input) {
+        final int len = input.length();
+        int val = 0;
+        int i = 0;
+        boolean isNegative = false;
+
+        if (0 < len && '-' == input.charAt(0)) {
+            i = 1;
+            isNegative = true;
+        }
+
+        for (; i < len; ++i) {
+            final char ch = input.charAt(i);
+            if (Character.isDigit(ch)) {
+                val = (val * 10) + (ch - 48);
+            } else {
+                break;
+            }
+        }
+
+        if (isNegative) val = -val;
+
+        return val;
+    }
+}
diff --git a/src/java/picard/util/AbstractInputParser.java b/src/java/picard/util/AbstractInputParser.java
new file mode 100644
index 0000000..d57db37
--- /dev/null
+++ b/src/java/picard/util/AbstractInputParser.java
@@ -0,0 +1,199 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.util;
+
+import htsjdk.samtools.util.AbstractIterator;
+import htsjdk.samtools.util.CloseableIterator;
+import picard.PicardException;
+
+import java.util.Iterator;
+
+/**
+ * Class for parsing text files where each line consists of fields separated by whitespace.
+ * Code is abstracted into this class so that we can optimize its performance over time.
+ *
+ * This class assumes that every line will have the same number of whitespace-separated "words"
+ * and that lines that start with "#" are comments and should be ignored.
+ *
+ * Classes that extend this parser can do so simply by implementing their own constructors and the
+ * readNextLine(), close(), and getFileName() methods.
+ *
+ * @author Kathleen Tibbetts
+ */
+public abstract class AbstractInputParser
+extends AbstractIterator<String[]>
+implements Iterable<String[]>, CloseableIterator<String[]> {
+
+    private boolean treatGroupedDelimitersAsOne = true; // Whether multiple delimiters in succession should be treated as one
+    private int wordCount = 0;      /* The number of delimiter-separated "words" per line of the file.
+                                       We can save a little caclulation, or handle files with varying numbers of
+                                       words per line, by specifying this if known in advance */
+    private boolean skipBlankLines = true;
+
+    /**
+     * Closes this stream and releases any system resources associated with it.
+     */
+    public abstract void close();
+
+    /**
+     * @return the next line of text from the underlying stream(s) or null if there is no next line
+     */
+    protected abstract byte[] readNextLine();
+
+    /**
+     * @return  the name(s) of the file(s) being parsed, or null if no name is available
+     */
+    public abstract String getFileName();
+
+    /**
+     * @return an iterator over a set of elements of type String[]
+     */
+    public Iterator<String[]> iterator() {
+        if (isIterating()) {
+            throw new IllegalStateException("iterator() method can only be called once, before the" +
+                    "first call to hasNext()");
+        }
+        hasNext();
+        return this;
+    }
+
+    @Override
+    protected String[] advance() {
+        byte[] nextLine;
+        do {
+            nextLine = readNextLine();
+        }
+        while (nextLine != null && ((this.skipBlankLines && isBlank(nextLine)) || isComment(nextLine)));
+        return nextLine == null ? null : parseLine(nextLine);
+    }
+
+    /**
+     * This method represents the most efficient way (so far) to parse a line of whitespace-delimited text
+     *
+     * @param line the line to parse
+     * @return  an array of all the "words"
+     */
+    private String[] parseLine(final byte[] line) {
+
+        if (getWordCount() == 0) {
+            calculateWordCount(line);
+        }
+        final String[] parts = new String[getWordCount()];
+        boolean delimiter = true;
+        int index=0;
+        int start = 0;
+
+        try
+        {
+            for (int i = 0; i < line.length; i++) {
+                if (isDelimiter(line[i])) {
+                    if (!delimiter) {
+                        parts[index++] = new String(line,start,i-start);
+                    }
+                    else if(!isTreatGroupedDelimitersAsOne()) {
+                        parts[index++] = null;
+                    }
+                    delimiter=true;
+                }
+                else {
+                    if (delimiter)  start = i;
+                    delimiter = false;
+                }
+            }
+            if (!delimiter) {
+                 parts[index] = new String(line,start,line.length-start);
+            }
+        }
+        catch (ArrayIndexOutOfBoundsException e) {
+            throw new PicardException("Unexpected number of elements found when parsing file " +
+                    this.getFileName() + ": " + index + ".  Expected a maximum of " +
+                    this.getWordCount() + " elements per line:" + new String(line,0,line.length), e);
+        }
+        return parts;
+    }
+
+    /**
+     * Calculates the number of delimiter-separated "words" in a line and sets the value of <code>wordCount</code>
+     *
+     * @param line  representative line from the file
+     */
+    protected void calculateWordCount(final byte[] line) {
+        int words = 0;
+        boolean delimiter = true;
+        for (final byte b : line) {
+            if (isDelimiter(b)) {
+                if (delimiter && !isTreatGroupedDelimitersAsOne()) words++;
+                delimiter = true;
+            } else {
+                if (delimiter) words++;
+                delimiter = false;
+            }
+        }
+        if (delimiter && !isTreatGroupedDelimitersAsOne()) {
+            words += 1;
+        }
+        setWordCount(words);
+    }
+
+    /**
+     * Determines whether a given line is a comment
+     *
+     * @param line  the line to evaluate
+     * @return  true if the line is a comment (and should be ignored) otherwise false
+     */
+    protected boolean isComment(final byte[] line) {
+        return line.length > 0 && line[0] == '#';
+    }
+
+    /**
+     * Determines whether a given line is a comment
+     *
+     * @param line  the line to evaluate
+     * @return  true if the line is a comment (and should be ignored) otherwise false
+     */
+    protected boolean isBlank(final byte[] line) {
+        return line.length == 0;
+    }
+
+    /**
+     * Determines whether a given character is a delimiter
+     *
+     * @param b the character to evaluate
+     * @return  true if <code>b</code> is a delimiter; otherwise false
+     */
+    protected boolean isDelimiter(final byte b) {
+        return b == ' ' || b == '\t';
+    }
+
+    protected int getWordCount() { return wordCount; }
+    protected void setWordCount(final int wordCount) { this.wordCount = wordCount; }
+    protected boolean isTreatGroupedDelimitersAsOne() { return treatGroupedDelimitersAsOne; }
+    protected void setTreatGroupedDelimitersAsOne(final boolean treatGroupedDelimitersAsOne) {
+        this.treatGroupedDelimitersAsOne = treatGroupedDelimitersAsOne;
+    }
+    protected boolean isSkipBlankLines() { return this.skipBlankLines; }
+    protected void setSkipBlankLines(final boolean skipBlankLines) {
+        this.skipBlankLines = skipBlankLines;
+    }
+}
diff --git a/src/java/picard/util/AdapterMarker.java b/src/java/picard/util/AdapterMarker.java
new file mode 100644
index 0000000..683f04a
--- /dev/null
+++ b/src/java/picard/util/AdapterMarker.java
@@ -0,0 +1,340 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.util;
+
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.util.CollectionUtil;
+import htsjdk.samtools.util.SequenceUtil;
+import htsjdk.samtools.util.StringUtil;
+
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.Map;
+import java.util.TreeMap;
+import java.util.concurrent.atomic.AtomicReference;
+
+/**
+ * Store one or more AdapterPairs to use to mark adapter sequence of SAMRecords.  This is a very compute-intensive process, so
+ * this class implements two heuristics to reduce computation:
+ * - Adapter sequences are truncated, and then any adapter pairs that become identical after truncation are collapsed into a single pair.
+ * - After a specified number of reads with adapter sequence has been seen, prune the list of adapter pairs to include only the most
+ *   frequently seen adapters.  For a flowcell, there should only be a single adapter pair found.
+ *
+ * Note that the AdapterPair object returned by all the adapterTrim* methods will not be one of the original AdapterPairs
+ * passed to the ctor, but rather will be one of the truncated copies.
+ */
+public class AdapterMarker {
+    public static final int DEFAULT_ADAPTER_LENGTH = 30;
+    public static final int DEFAULT_PRUNE_ADAPTER_LIST_AFTER_THIS_MANY_ADAPTERS_SEEN = 100;
+    public static final int DEFAULT_NUM_ADAPTERS_TO_KEEP = 1;
+
+    // It is assumed that these are set once during execution, before the class is used to mark any adapters, but this is not enforced.
+    private int thresholdForSelectingAdaptersToKeep = DEFAULT_PRUNE_ADAPTER_LIST_AFTER_THIS_MANY_ADAPTERS_SEEN;
+    private int numAdaptersToKeep = DEFAULT_NUM_ADAPTERS_TO_KEEP;
+    private int minSingleEndMatchBases = ClippingUtility.MIN_MATCH_BASES;
+    private int minPairMatchBases = ClippingUtility.MIN_MATCH_PE_BASES;
+    private double maxSingleEndErrorRate = ClippingUtility.MAX_ERROR_RATE;
+    private double maxPairErrorRate = ClippingUtility.MAX_PE_ERROR_RATE;
+
+    // This is AtomicReference because one thread could be matching adapters while the threshold has been crossed in another
+    // thread and the array is being replaced.
+    private final AtomicReference<AdapterPair[]> adapters = new AtomicReference<AdapterPair[]>();
+
+    // All the members below are only accessed within a synchronized block.
+    private boolean thresholdReached = false;
+    private int numAdaptersSeen = 0;
+    private final CollectionUtil.DefaultingMap<AdapterPair, Integer> seenCounts = new CollectionUtil.DefaultingMap<AdapterPair, Integer>(0);
+
+    /**
+     * Truncates adapters to DEFAULT_ADAPTER_LENGTH
+     * @param originalAdapters These should be in order from longest & most likely to shortest & least likely.
+     */
+    public AdapterMarker(final AdapterPair... originalAdapters) {
+        this(DEFAULT_ADAPTER_LENGTH, originalAdapters);
+    }
+
+    /**
+     * @param adapterLength Truncate adapters to this length.
+     * @param originalAdapters These should be in order from longest & most likely to shortest & least likely.
+     */
+    public AdapterMarker(final int adapterLength, final AdapterPair... originalAdapters) {
+        // Truncate each AdapterPair to the given length, and then combine any that end up the same after truncation.
+        final ArrayList<TruncatedAdapterPair> truncatedAdapters = new ArrayList<TruncatedAdapterPair>();
+        for (final AdapterPair adapter : originalAdapters) {
+            final TruncatedAdapterPair truncatedAdapter = makeTruncatedAdapterPair(adapter, adapterLength);
+            final int matchingIndex = truncatedAdapters.indexOf(truncatedAdapter);
+            if (matchingIndex == -1) {
+                truncatedAdapters.add(truncatedAdapter);
+            } else {
+                final TruncatedAdapterPair matchingAdapter = truncatedAdapters.get(matchingIndex);
+                matchingAdapter.setName(matchingAdapter.getName() + "|" + adapter.getName());
+            }
+        }
+        adapters.set(truncatedAdapters.toArray(new AdapterPair[truncatedAdapters.size()]));
+    }
+
+    public int getNumAdaptersToKeep() {
+        return numAdaptersToKeep;
+    }
+
+    /**
+     * After seeing the thresholdForSelectingAdapters number of adapters, keep up to this many of the original adapters.
+     */
+    public synchronized AdapterMarker setNumAdaptersToKeep(final int numAdaptersToKeep) {
+        if (numAdaptersToKeep <= 0) {
+            throw new IllegalArgumentException(String.format("numAdaptersToKeep should be positive: %d", numAdaptersToKeep));
+        }
+        this.numAdaptersToKeep = numAdaptersToKeep;
+        return this;
+    }
+
+    public int getThresholdForSelectingAdaptersToKeep() {
+        return thresholdForSelectingAdaptersToKeep;
+    }
+
+    /**
+     * When this number of adapters have been matched, discard the least-frequently matching ones.
+     * @param thresholdForSelectingAdaptersToKeep set to -1 to never discard any adapters.
+     */
+    public synchronized AdapterMarker setThresholdForSelectingAdaptersToKeep(final int thresholdForSelectingAdaptersToKeep) {
+        this.thresholdForSelectingAdaptersToKeep = thresholdForSelectingAdaptersToKeep;
+        return this;
+    }
+
+    public int getMinSingleEndMatchBases() {
+        return minSingleEndMatchBases;
+    }
+
+    /**
+     *
+     * @param minSingleEndMatchBases When marking a single-end read, adapter must match at least this many bases.
+     */
+    public synchronized AdapterMarker setMinSingleEndMatchBases(final int minSingleEndMatchBases) {
+        this.minSingleEndMatchBases = minSingleEndMatchBases;
+        return this;
+    }
+
+    public int getMinPairMatchBases() {
+        return minPairMatchBases;
+    }
+
+    /**
+     *
+     * @param minPairMatchBases When marking a paired-end read, adapter must match at least this many bases.
+     */
+    public synchronized AdapterMarker setMinPairMatchBases(final int minPairMatchBases) {
+        this.minPairMatchBases = minPairMatchBases;
+        return this;
+    }
+
+    public double getMaxSingleEndErrorRate() {
+        return maxSingleEndErrorRate;
+    }
+
+    /**
+     * @param maxSingleEndErrorRate For single-end read, no more than this fraction of the bases that align with the adapter can
+     *                              mismatch the adapter and still be considered an adapter match.
+     */
+    public synchronized AdapterMarker setMaxSingleEndErrorRate(final double maxSingleEndErrorRate) {
+        this.maxSingleEndErrorRate = maxSingleEndErrorRate;
+        return this;
+    }
+
+    public double getMaxPairErrorRate() {
+        return maxPairErrorRate;
+    }
+
+    /**
+     * @param maxPairErrorRate For paired-end read, no more than this fraction of the bases that align with the adapter can
+     *                         mismatch the adapter and still be considered an adapter match.
+     */
+    public synchronized AdapterMarker setMaxPairErrorRate(final double maxPairErrorRate) {
+        this.maxPairErrorRate = maxPairErrorRate;
+        return this;
+    }
+
+    public AdapterPair adapterTrimIlluminaSingleRead(final SAMRecord read) {
+        return adapterTrimIlluminaSingleRead(read, minSingleEndMatchBases, maxSingleEndErrorRate);
+    }
+
+    public AdapterPair adapterTrimIlluminaPairedReads(final SAMRecord read1, final SAMRecord read2) {
+        return adapterTrimIlluminaPairedReads(read1, read2, minPairMatchBases, maxPairErrorRate);
+    }
+
+    /**
+     * Overrides defaults for minMatchBases and maxErrorRate
+     */
+    public AdapterPair adapterTrimIlluminaSingleRead(final SAMRecord read, final int minMatchBases, final double maxErrorRate) {
+        final AdapterPair ret = ClippingUtility.adapterTrimIlluminaSingleRead(read, minMatchBases, maxErrorRate, adapters.get());
+        if (ret != null) tallyFoundAdapter(ret);
+        return ret;
+    }
+
+    /**
+     * Overrides defaults for minMatchBases and maxErrorRate
+     */
+    public AdapterPair adapterTrimIlluminaPairedReads(final SAMRecord read1, final SAMRecord read2,
+                                                             final int minMatchBases, final double maxErrorRate) {
+        final AdapterPair ret = ClippingUtility.adapterTrimIlluminaPairedReads(read1, read2, minMatchBases, maxErrorRate, adapters.get());
+        if (ret != null) tallyFoundAdapter(ret);
+        return ret;
+    }
+
+    /** For unit testing only */
+    AdapterPair[] getAdapters() {
+        return adapters.get();
+    }
+
+    private TruncatedAdapterPair makeTruncatedAdapterPair(final AdapterPair adapterPair, final int adapterLength) {
+        return new TruncatedAdapterPair("truncated " + adapterPair.getName(),
+                substringAndRemoveTrailingNs(adapterPair.get3PrimeAdapterInReadOrder(), adapterLength),
+                substringAndRemoveTrailingNs(adapterPair.get5PrimeAdapterInReadOrder(), adapterLength));
+    }
+
+    /**
+     * Truncate to the given length, and in addition truncate any trailing Ns.
+     */
+    private String substringAndRemoveTrailingNs(final String s, int length) {
+        length = Math.min(length, s.length());
+        final byte[] bytes = StringUtil.stringToBytes(s);
+        while (length > 0 && SequenceUtil.isNoCall(bytes[length - 1])) {
+            length--;
+        }
+        return s.substring(0, length);
+    }
+
+    /**
+     * Keep track of every time an adapter is found, until it is time to prune the list of adapters.
+     */
+    private void tallyFoundAdapter(final AdapterPair foundAdapter) {
+        // If caller does not want adapter pruning, do nothing.
+        if (thresholdForSelectingAdaptersToKeep < 1) return;
+        synchronized (this) {
+            // Already pruned adapter list, so nothing more to do.
+            if (thresholdReached) return;
+
+            // Tally this adapter
+            seenCounts.put(foundAdapter, seenCounts.get(foundAdapter) + 1);
+
+            // Keep track of the number of times an adapter has been seen.
+            numAdaptersSeen += 1;
+
+            // Reached the threshold for pruning the list.
+            if (numAdaptersSeen >= thresholdForSelectingAdaptersToKeep) {
+
+                // Sort adapters by number of times each has been seen.
+                final TreeMap<Integer, AdapterPair> sortedAdapters = new TreeMap<Integer, AdapterPair>(new Comparator<Integer>() {
+                    @Override
+                    public int compare(final Integer integer, final Integer integer2) {
+                        // Reverse of natural ordering
+                        return integer2.compareTo(integer);
+                    }
+                });
+                for (final Map.Entry<AdapterPair, Integer> entry : seenCounts.entrySet()) {
+                    sortedAdapters.put(entry.getValue(), entry.getKey());
+                }
+
+                // Keep the #numAdaptersToKeep adapters that have been seen the most, plus any ties.
+                final ArrayList<AdapterPair> bestAdapters = new ArrayList<AdapterPair>(numAdaptersToKeep);
+                int countOfLastAdapter = Integer.MAX_VALUE;
+                for (final Map.Entry<Integer, AdapterPair> entry : sortedAdapters.entrySet()) {
+                    if (bestAdapters.size() >= numAdaptersToKeep) {
+                        if (entry.getKey() == countOfLastAdapter) {
+                            bestAdapters.add(entry.getValue());
+                        } else {
+                            break;
+                        }
+                    } else {
+                        countOfLastAdapter = entry.getKey();
+                        bestAdapters.add(entry.getValue());
+                    }
+                }
+                // Replace the existing list with the pruned list.
+                thresholdReached = true;
+                adapters.set(bestAdapters.toArray(new AdapterPair[bestAdapters.size()]));
+            }
+        }
+    }
+
+    private static class TruncatedAdapterPair implements AdapterPair {
+        String name;
+        final String fivePrime, threePrime, fivePrimeReadOrder;
+        final byte[]  fivePrimeBytes, threePrimeBytes, fivePrimeReadOrderBytes;
+
+        private TruncatedAdapterPair(final String name, final String threePrimeReadOrder, final String fivePrimeReadOrder) {
+            this.name = name;
+            this.threePrime = threePrimeReadOrder;
+            this.threePrimeBytes = StringUtil.stringToBytes(threePrimeReadOrder);
+            this.fivePrimeReadOrder = fivePrimeReadOrder;
+            this.fivePrimeReadOrderBytes = StringUtil.stringToBytes(fivePrimeReadOrder);
+            this.fivePrime = SequenceUtil.reverseComplement(fivePrimeReadOrder);
+            this.fivePrimeBytes = StringUtil.stringToBytes(this.fivePrime);
+        }
+
+        public String get3PrimeAdapter(){ return threePrime; }
+        public String get5PrimeAdapter(){ return fivePrime; }
+        public String get3PrimeAdapterInReadOrder(){ return threePrime; }
+        public String get5PrimeAdapterInReadOrder() { return fivePrimeReadOrder; }
+        public byte[] get3PrimeAdapterBytes() { return threePrimeBytes; }
+        public byte[] get5PrimeAdapterBytes() { return fivePrimeBytes; }
+        public byte[] get3PrimeAdapterBytesInReadOrder() { return threePrimeBytes; }
+        public byte[] get5PrimeAdapterBytesInReadOrder()  { return fivePrimeReadOrderBytes; }
+
+        public String getName() { return this.name; }
+
+        public void setName(final String name) {
+            this.name = name;
+        }
+
+        // WARNING: These methods ignore the name member!
+        @Override
+        public boolean equals(final Object o) {
+            if (this == o) return true;
+            if (o == null || getClass() != o.getClass()) return false;
+
+            final TruncatedAdapterPair that = (TruncatedAdapterPair) o;
+
+            if (!fivePrime.equals(that.fivePrime)) return false;
+            if (!threePrime.equals(that.threePrime)) return false;
+
+            return true;
+        }
+
+        @Override
+        public int hashCode() {
+            int result = fivePrime.hashCode();
+            result = 31 * result + threePrime.hashCode();
+            return result;
+        }
+
+        @Override
+        public String toString() {
+            return "TruncatedAdapterPair{" +
+                    "fivePrimeReadOrder='" + fivePrimeReadOrder + '\'' +
+                    ", threePrime='" + threePrime + '\'' +
+                    ", name='" + name + '\'' +
+                    '}';
+        }
+    }
+}
diff --git a/src/java/picard/util/AdapterPair.java b/src/java/picard/util/AdapterPair.java
new file mode 100644
index 0000000..7bf2270
--- /dev/null
+++ b/src/java/picard/util/AdapterPair.java
@@ -0,0 +1,16 @@
+package picard.util;
+
+public interface AdapterPair {
+
+    public String get3PrimeAdapter();
+    public String get3PrimeAdapterInReadOrder();
+    public byte[] get3PrimeAdapterBytes();
+    public byte[] get3PrimeAdapterBytesInReadOrder();
+
+    public String get5PrimeAdapter();
+    public String get5PrimeAdapterInReadOrder();
+    public byte[] get5PrimeAdapterBytes();
+    public byte[] get5PrimeAdapterBytesInReadOrder();
+
+    public String getName();
+}
diff --git a/src/java/picard/util/AsyncIterator.java b/src/java/picard/util/AsyncIterator.java
new file mode 100644
index 0000000..4c97e61
--- /dev/null
+++ b/src/java/picard/util/AsyncIterator.java
@@ -0,0 +1,170 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.util;
+
+import htsjdk.samtools.util.CloseableIterator;
+
+import java.util.NoSuchElementException;
+import java.util.concurrent.ArrayBlockingQueue;
+import java.util.concurrent.BlockingQueue;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicReference;
+
+/**
+ * Wrapper around a CloseableIterator that reads in a separate thread, for cases in which that might be
+ * efficient.
+ */
+public class AsyncIterator<T> implements CloseableIterator<T> {
+    private static volatile int threadsCreated = 0; // Just used for thread naming.
+    public static final int DEFAULT_QUEUE_SIZE = 2000;
+
+    private final AtomicBoolean isClosed = new AtomicBoolean(false);
+    private final BlockingQueue<T> queue;
+    private final Thread reader;
+    private final ReaderRunnable readerRunnable;
+    private final AtomicReference<Throwable> ex = new AtomicReference<Throwable>(null);
+    private T theNext = null;
+    private final CloseableIterator<T> underlyingIterator;
+
+
+    public AsyncIterator(final CloseableIterator<T> underlyingIterator,
+                            final int queueSize,
+                            final String threadNamePrefix) {
+        this.underlyingIterator = underlyingIterator;
+        this.queue = new ArrayBlockingQueue<T>(queueSize);
+        this.readerRunnable = new ReaderRunnable();
+        this.reader = new Thread(readerRunnable, threadNamePrefix + threadsCreated++);
+        this.reader.setDaemon(true);
+        this.reader.start();
+        getNext();
+    }
+
+
+    /**
+     * Set theNext to the next item to be returned, or null if there are no more items.
+     */
+    private void getNext() {
+        assertOpen();
+
+        checkAndRethrow();
+        try {
+            theNext = null;
+            while (!this.queue.isEmpty() || !this.readerRunnable.isDone()) {
+                theNext = this.queue.poll(5, TimeUnit.SECONDS);
+                checkAndRethrow();
+                if (theNext != null) break;
+            }
+        } catch (InterruptedException ie) { throw new RuntimeException("Interrupted queueing item for writing.", ie); }
+        checkAndRethrow();
+    }
+
+    public boolean hasNext() {
+        assertOpen();
+        return theNext != null;
+    }
+
+    public T next() {
+        assertOpen();
+        if (!hasNext()) throw new NoSuchElementException();
+        final T ret = theNext;
+        getNext();
+        return ret;
+    }
+
+    public void remove() {
+        throw new UnsupportedOperationException();
+    }
+
+    /**
+     * Stops the thread and then calls synchronouslyClose() to allow implementation to do any one time clean up.
+     */
+    public void close() {
+        checkAndRethrow();
+
+        assertOpen();
+        this.isClosed.set(true);
+
+        try { this.reader.join(); }
+        catch (InterruptedException ie) { throw new RuntimeException("Interrupted waiting on reader thread.", ie); }
+
+        underlyingIterator.close();
+        checkAndRethrow();
+        this.queue.clear();
+    }
+
+    private void assertOpen() {
+        if (this.isClosed.get()) {
+            throw new RuntimeException("AsyncIterator already closed.");
+        }
+    }
+
+    /**
+     * Checks to see if an exception has been raised in the reader thread and if so rethrows it as an Error
+     * or RuntimeException as appropriate.
+     */
+    private void checkAndRethrow() {
+        final Throwable t = this.ex.get();
+        if (t != null) {
+            if (t instanceof Error) throw (Error) t;
+            if (t instanceof RuntimeException) throw (RuntimeException) t;
+            else throw new RuntimeException(t);
+        }
+    }
+
+    /**
+     * Small Runnable implementation that simply reads from underlying iterator and stores on the blocking queue.
+     */
+    private class ReaderRunnable implements Runnable {
+        private final AtomicBoolean readerDone = new AtomicBoolean(false);
+
+        public boolean isDone() { return readerDone.get(); }
+
+        public void run() {
+            try {
+                boolean isEof = false;
+                while (!isClosed.get() && !isEof) {
+                    try {
+                        if (!underlyingIterator.hasNext()) {
+                            isEof = true;
+                        } else {
+                            final T item = underlyingIterator.next();
+                            // Keep trying to put item on the queue unless close() has been called.
+                            while (!isClosed.get() && !queue.offer(item, 2, TimeUnit.SECONDS)) {
+                            }
+                        }
+                    }
+                    catch (InterruptedException ie) {
+                        /* Do Nothing */
+                    }
+                }
+            }
+            catch (Throwable t) {
+                ex.compareAndSet(null, t);
+            } finally {
+                readerDone.set(true);
+            }
+        }
+    }
+}
diff --git a/src/java/picard/util/AtomicIterator.java b/src/java/picard/util/AtomicIterator.java
new file mode 100644
index 0000000..557f1df
--- /dev/null
+++ b/src/java/picard/util/AtomicIterator.java
@@ -0,0 +1,12 @@
+package picard.util;
+
+import com.google.common.base.Optional;
+
+/**
+ * Describes 
+ * @author mccowan
+ */
+public interface AtomicIterator<T> {
+    /** Produces the next element from the iterator, if there is one; otherwise, produces {@link com.google.common.base.Optional.Absent} */
+    Optional<T> next();
+}
diff --git a/src/java/picard/util/BaitDesigner.java b/src/java/picard/util/BaitDesigner.java
new file mode 100644
index 0000000..aa5737f
--- /dev/null
+++ b/src/java/picard/util/BaitDesigner.java
@@ -0,0 +1,623 @@
+package picard.util;
+
+import htsjdk.samtools.SAMSequenceDictionary;
+import htsjdk.samtools.reference.ReferenceSequence;
+import htsjdk.samtools.reference.ReferenceSequenceFileWalker;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.CoordMath;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Interval;
+import htsjdk.samtools.util.IntervalList;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.OverlapDetector;
+import htsjdk.samtools.util.SequenceUtil;
+import htsjdk.samtools.util.StringUtil;
+import picard.PicardException;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.None;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.IOException;
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+import java.text.DecimalFormat;
+import java.text.NumberFormat;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.ListIterator;
+import java.util.regex.Pattern;
+
+/**
+ * Designs baits for hybrid selection!
+ *
+ * @author Tim Fennell
+ */
+ at CommandLineProgramProperties(
+        usage = "Designs baits or oligos for hybrid selection reactions.",
+        usageShort = "Designs baits or oligos for hybrid selection reactions.",
+        programGroup = None.class
+)
+public class BaitDesigner extends CommandLineProgram {
+    /**
+     * Subclass of Interval for representing Baits, that caches the bait sequence.
+     */
+    static class Bait extends Interval {
+        byte[] bases;
+
+        /** Pass through constructor. */
+        public Bait(final String sequence, final int start, final int end, final boolean negative, final String name) {
+            super(sequence, start, end, negative, name);
+        }
+
+        /** Method that takes in the reference sequence this bait is on and caches the bait's bases. */
+        public void addBases(final ReferenceSequence reference, final boolean useStrandInfo) {
+            final byte[] tmp = new byte[length()];
+            System.arraycopy(reference.getBases(), getStart() - 1, tmp, 0, length());
+
+            if (useStrandInfo && isNegativeStrand()) {
+                SequenceUtil.reverseComplement(tmp);
+            }
+
+            setBases(tmp);
+        }
+
+        public int getMaskedBaseCount() {
+            return BaitDesigner.getMaskedBaseCount(bases, 0, bases.length);
+        }
+
+        @Override
+        public String toString() {
+            return "Bait{" +
+                    "name=" + getName() +
+                    ", bases=" + StringUtil.bytesToString(bases) +
+                    '}';
+        }
+
+        public void setBases(final byte[] bases) { this.bases = bases;}
+
+        public byte[] getBases() { return bases; }
+    }
+
+    /**
+     * Set of possible design strategies for bait design.
+     */
+    public enum DesignStrategy {
+        /** Implementation that "constrains" baits to be within the target region when possible. */
+        CenteredConstrained {
+            List<Bait> design(final BaitDesigner designer, final Interval target, final ReferenceSequence reference) {
+                final List<Bait> baits = new LinkedList<Bait>();
+
+                final int baitSize = designer.BAIT_SIZE;
+                final int baitOffset = designer.BAIT_OFFSET;
+
+                // Treat targets less than a bait length differently
+                if (target.length() <= baitSize) {
+                    final int midpoint = target.getStart() + (target.length() / 2);
+                    final int baitStart = midpoint - (baitSize / 2);
+                    final Bait bait = new Bait(target.getSequence(),
+                            baitStart,
+                            CoordMath.getEnd(baitStart, baitSize),
+                            target.isNegativeStrand(),
+                            designer.makeBaitName(target.getName(), 1, 1));
+                    bait.addBases(reference, designer.DESIGN_ON_TARGET_STRAND);
+                    baits.add(bait);
+                } else {
+                    // Work out how many baits we need and how to space them
+                    final int baitCount = 1 + (int) Math.ceil((target.length() - baitSize) / (double) baitOffset);
+                    final int firstBaitStart = target.getStart();
+                    final int lastBaitStart = CoordMath.getStart(target.getEnd(), baitSize);
+                    final double actualShift = (lastBaitStart - firstBaitStart) / (double) (baitCount - 1);
+
+                    // And then design them
+                    int baitIndex = 1;
+                    int start = firstBaitStart;
+                    while (start <= lastBaitStart) {
+                        final int end = CoordMath.getEnd(start, baitSize);
+                        final Bait bait = new Bait(target.getSequence(),
+                                start,
+                                end,
+                                target.isNegativeStrand(),
+                                designer.makeBaitName(target.getName(), baitIndex, baitCount));
+                        bait.addBases(reference, designer.DESIGN_ON_TARGET_STRAND);
+                        baits.add(bait);
+
+                        // Recalculate from actualShift to avoid compounding rounding errors
+                        start = firstBaitStart + (int) Math.round(actualShift * baitIndex);
+                        ++baitIndex;
+                    }
+                }
+
+                return baits;
+            }
+        },
+
+        /**
+         * Design that places baits at fixed offsets over targets, allowing them to hang off the ends
+         * as dictated by the target size and offset.
+         */
+        FixedOffset {
+            List<Bait> design(final BaitDesigner designer, final Interval target, final ReferenceSequence reference) {
+                final List<Bait> baits = new LinkedList<Bait>();
+
+                final int baitSize = designer.BAIT_SIZE;
+                final int baitOffset = designer.BAIT_OFFSET;
+                final int minTargetSize = baitSize + (baitOffset * (designer.MINIMUM_BAITS_PER_TARGET - 1));
+
+                // Redefine the target to be the size of a bait, or the size that a number of baits
+                // tiled tiles across the target at the fixed offset
+                final Interval t2;
+                if (target.length() < minTargetSize) {
+                    final int addon = minTargetSize - target.length();
+                    final int left = addon / 2;
+                    final int right = addon - left;
+                    t2 = new Interval(target.getSequence(),
+                            Math.max(target.getStart() - left, 1),
+                            Math.min(target.getEnd() + right, reference.length()),
+                            target.isNegativeStrand(),
+                            target.getName());
+                } else {
+                    t2 = target;
+                }
+
+                // Work out how many baits we need and how to space them
+                final int baitCount = 1 + (int) Math.ceil((t2.length() - baitSize) / (double) baitOffset);
+                final int baitedBases = baitSize + (baitOffset * (baitCount - 1));
+                final int firstBaitStart = Math.max(t2.getStart() - ((baitedBases - t2.length()) / 2), 1);
+
+                // And then design them
+                final byte[] bases = reference.getBases();
+                final int MAX_MASKED = designer.REPEAT_TOLERANCE;
+
+                for (int i = 1; i <= baitCount; ++i) {
+                    int start = firstBaitStart + (baitOffset * (i - 1));
+                    int end = CoordMath.getEnd(start, baitSize);
+
+                    if (end > reference.length()) break;
+
+                    // If there are too many soft masked bases try shifting it around
+                    if (getMaskedBaseCount(bases, start - 1, end) > MAX_MASKED) {
+                        final int maxMove = baitOffset * 3 / 4;
+
+                        for (int move = 1; move <= maxMove; move++) {
+                            // Move it "backwards?"
+                            if (start - move >= 1 && getMaskedBaseCount(bases, start - move - 1, end - move) <= MAX_MASKED) {
+                                start = start - move;
+                                end = end - move;
+                                break;
+                            }
+                            // Move it "forwards"?
+                            if (end + move <= reference.length() && getMaskedBaseCount(bases, start + move - 1, end + move) <= MAX_MASKED) {
+                                start = start + move;
+                                end = end + move;
+                                break;
+                            }
+                        }
+                    }
+
+                    final Bait bait = new Bait(t2.getSequence(),
+                            start,
+                            end,
+                            t2.isNegativeStrand(),
+                            designer.makeBaitName(t2.getName(), i, baitCount));
+                    bait.addBases(reference, designer.DESIGN_ON_TARGET_STRAND);
+                    baits.add(bait);
+                }
+
+                return baits;
+            }
+        },
+
+        /**
+         * Ultra simple bait design algorithm that just lays down baits starting at the target start position
+         * until either the bait start runs off the end of the target or the bait would run off the sequence
+         */
+        Simple {
+            @Override
+            List<Bait> design(final BaitDesigner designer, final Interval target, final ReferenceSequence reference) {
+                final List<Bait> baits = new LinkedList<Bait>();
+                final int baitSize = designer.BAIT_SIZE;
+                final int baitOffset = designer.BAIT_OFFSET;
+                final int lastPossibleBaitStart = Math.min(target.getEnd(), reference.length() - baitSize);
+                final int baitCount = 1 + (int) Math.floor((lastPossibleBaitStart - target.getStart()) / (double) baitOffset);
+
+                int i = 0;
+                for (int start = target.getStart(); start < lastPossibleBaitStart; start += baitOffset) {
+                    final Bait bait = new Bait(target.getSequence(),
+                            start,
+                            CoordMath.getEnd(start, baitSize),
+                            target.isNegativeStrand(),
+                            designer.makeBaitName(target.getName(), ++i, baitCount));
+                    bait.addBases(reference, designer.DESIGN_ON_TARGET_STRAND);
+                    baits.add(bait);
+                }
+                return baits;
+            }
+        };
+
+        /** Design method that each Design Strategy must implement. */
+        abstract List<Bait> design(BaitDesigner designer, Interval target, ReferenceSequence reference);
+    }
+
+    ///////////////////////////////////////////////////////////////////////////
+    // Options for the Bait Designer
+    ///////////////////////////////////////////////////////////////////////////
+
+    @Option(shortName = "T", doc = "The file with design parameters and targets")
+    public File TARGETS;
+
+    @Option(doc = "The name of the bait design")
+    public String DESIGN_NAME;
+
+    @Option(shortName = StandardOptionDefinitions.REFERENCE_SHORT_NAME, doc = "The reference sequence fasta file")
+    public File REFERENCE_SEQUENCE;
+
+    @Option(doc = "The left amplification primer to prepend to all baits for synthesis")
+    public String LEFT_PRIMER = "ATCGCACCAGCGTGT";
+
+    @Option(doc = "The right amplification primer to prepend to all baits for synthesis")
+    public String RIGHT_PRIMER = "CACTGCGGCTCCTCA";
+
+    @Option(doc = "The design strategy to use to layout baits across each target")
+    public DesignStrategy DESIGN_STRATEGY = DesignStrategy.FixedOffset;
+
+    @Option(doc = "The length of each individual bait to design")
+    public int BAIT_SIZE = 120;
+
+    @Option(doc = "The minimum number of baits to design per target.")
+    public int MINIMUM_BAITS_PER_TARGET = 2;
+
+    @Option(doc = "The desired offset between the start of one bait and the start of another bait for the same target.")
+    public int BAIT_OFFSET = 80;
+
+    @Option(doc = "Pad the input targets by this amount when designing baits. Padding is applied on both sides in this amount.")
+    public int PADDING = 0;
+
+    @Option(doc = "Baits that have more than REPEAT_TOLERANCE soft or hard masked bases will not be allowed")
+    public int REPEAT_TOLERANCE = 50;
+
+    @Option(doc = "The size of pools or arrays for synthesis. If no pool files are desired, can be set to 0.")
+    public int POOL_SIZE = 55000;
+
+    @Option(doc = "If true, fill up the pools with alternating fwd and rc copies of all baits. Equal copies of " +
+            "all baits will always be maintained")
+    public boolean FILL_POOLS = true;
+
+    @Option(doc = "If true design baits on the strand of the target feature, if false always design on the + strand of " +
+            "the genome.")
+    public boolean DESIGN_ON_TARGET_STRAND = false;
+
+    @Option(doc = "If true merge targets that are 'close enough' that designing against a merged target would be more efficient.")
+    public boolean MERGE_NEARBY_TARGETS = true;
+
+    @Option(doc = "If true also output .design.txt files per pool with one line per bait sequence")
+    public boolean OUTPUT_AGILENT_FILES = true;
+
+    @Option(shortName = "O", optional = true,
+            doc = "The output directory. If not provided then the DESIGN_NAME will be used as the output directory")
+    public File OUTPUT_DIRECTORY;
+
+    // "Output" members that will also get picked up by writeParametersFile()
+    int TARGET_TERRITORY;
+    int TARGET_COUNT;
+    int BAIT_TERRITORY;
+    int BAIT_COUNT;
+    int BAIT_TARGET_TERRITORY_INTERSECTION;
+    int ZERO_BAIT_TARGETS;
+    double DESIGN_EFFICIENCY;
+
+    // Utility objects
+    private static final Log log = Log.getInstance(BaitDesigner.class);
+    private final NumberFormat fmt = NumberFormat.getIntegerInstance();
+
+    /** Takes a target name and a bait index and creates a uniform bait name. */
+    String makeBaitName(final String targetName, final int baitIndex, final int totalBaits) {
+        final String total = fmt.format(totalBaits);
+        String bait = fmt.format(baitIndex);
+
+        // Pad out the bait number to match the longest one for this target
+        while (bait.length() < total.length()) bait = "0" + bait;
+
+        return targetName + "_bait#" + bait;
+    }
+
+    /** Returns the total of soft or hard masked bases in the interval of bases. */
+    public static int getMaskedBaseCount(final byte[] bases, final int from, final int until) {
+        int count = 0;
+        for (int i = from; i < until; i++) {
+            final byte b = bases[i];
+            if (b != 'A' && b != 'C' && b != 'G' && b != 'T') ++count;
+        }
+
+        return count;
+    }
+
+    /** Stock main method. */
+    public static void main(final String[] args) {
+        new BaitDesigner().instanceMainWithExit(args);
+    }
+
+    @Override
+    protected String[] customCommandLineValidation() {
+        final List<String> errors = new ArrayList<String>();
+
+        final Pattern p = Pattern.compile("^[ACGTacgt]*$");
+        if (LEFT_PRIMER != null && !p.matcher(LEFT_PRIMER).matches()) {
+            errors.add("Left primer " + LEFT_PRIMER + " is not a valid primer sequence.");
+        }
+
+        if (RIGHT_PRIMER != null && !p.matcher(RIGHT_PRIMER).matches()) {
+            errors.add("Right primer " + RIGHT_PRIMER + " is not a valid primer sequence.");
+        }
+
+        if (errors.size() > 0) return errors.toArray(new String[errors.size()]);
+        else return null;
+    }
+
+    int estimateBaits(final int start, final int end) {
+        final int length = end - start + 1;
+        return Math.max(MINIMUM_BAITS_PER_TARGET, (int) (Math.ceil(length - BAIT_SIZE) / (double) BAIT_OFFSET) + 1);
+    }
+
+    /**
+     * Main method that coordinates the checking of inputs, designing of baits and then
+     * the writing out of all necessary files.
+     *
+     * @return
+     */
+    @Override
+    protected int doWork() {
+        // Input parameter munging and checking
+        if (OUTPUT_DIRECTORY == null) OUTPUT_DIRECTORY = new File(DESIGN_NAME);
+
+        IOUtil.assertFileIsReadable(TARGETS);
+        IOUtil.assertFileIsReadable(REFERENCE_SEQUENCE);
+
+        if (!OUTPUT_DIRECTORY.exists()) {
+            OUTPUT_DIRECTORY.mkdirs();
+        }
+        IOUtil.assertDirectoryIsWritable(OUTPUT_DIRECTORY);
+
+        // Load up the targets and the reference
+        final IntervalList targets;
+        final IntervalList originalTargets = IntervalList.fromFile(TARGETS);
+
+        {
+            // Apply padding
+            final IntervalList padded = new IntervalList(originalTargets.getHeader());
+            final SAMSequenceDictionary dict = padded.getHeader().getSequenceDictionary();
+            for (final Interval i : originalTargets.getIntervals()) {
+                padded.add(new Interval(i.getSequence(),
+                        Math.max(i.getStart() - PADDING, 1),
+                        Math.min(i.getEnd() + PADDING, dict.getSequence(i.getSequence()).getSequenceLength()),
+                        i.isNegativeStrand(),
+                        i.getName()));
+            }
+
+            log.info("Starting with " + padded.size() + " targets.");
+            padded.uniqued();
+            log.info("After uniquing " + padded.size() + " targets remain.");
+
+            if (MERGE_NEARBY_TARGETS) {
+                final ListIterator<Interval> iterator = padded.getIntervals().listIterator();
+                Interval previous = iterator.next();
+
+                targets = new IntervalList(padded.getHeader());
+
+                while (iterator.hasNext()) {
+                    final Interval next = iterator.next();
+                    if (previous.getSequence().equals(next.getSequence()) &&
+                            estimateBaits(previous.getStart(), previous.getEnd()) + estimateBaits(next.getStart(), next.getEnd()) >=
+                                    estimateBaits(previous.getStart(), next.getEnd())) {
+                        previous = new Interval(previous.getSequence(),
+                                previous.getStart(),
+                                Math.max(previous.getEnd(), next.getEnd()),
+                                previous.isNegativeStrand(),
+                                previous.getName());
+                    } else {
+                        targets.add(previous);
+                        previous = next;
+                    }
+                }
+
+                if (previous != null) targets.add(previous);
+                log.info("After collapsing nearby targets " + targets.size() + " targets remain.");
+            } else {
+                targets = padded;
+            }
+        }
+
+        final ReferenceSequenceFileWalker referenceWalker = new ReferenceSequenceFileWalker(REFERENCE_SEQUENCE);
+
+        // Check that the reference and the target list have matching headers
+        SequenceUtil.assertSequenceDictionariesEqual(referenceWalker.getSequenceDictionary(),
+                targets.getHeader().getSequenceDictionary());
+
+        // Design the baits!
+        int discardedBaits = 0;
+        final IntervalList baits = new IntervalList(targets.getHeader());
+        for (final Interval target : targets) {
+            final int sequenceIndex = targets.getHeader().getSequenceIndex(target.getSequence());
+            final ReferenceSequence reference = referenceWalker.get(sequenceIndex);
+
+            for (final Bait bait : DESIGN_STRATEGY.design(this, target, reference)) {
+                if (bait.length() != BAIT_SIZE) {
+                    throw new PicardException("Bait designed at wrong length: " + bait);
+                }
+
+                if (bait.getMaskedBaseCount() <= REPEAT_TOLERANCE) {
+                    baits.add(bait);
+
+                    for (final byte b : bait.getBases()) {
+                        final byte upper = StringUtil.toUpperCase(b);
+                        if (upper != 'A' && upper != 'C' && upper != 'G' && upper != 'T') {
+                            log.warn("Bait contains non-synthesizable bases: " + bait);
+                        }
+                    }
+                } else {
+                    log.debug("Discarding bait: " + bait);
+                    discardedBaits++;
+                }
+            }
+        }
+
+        calculateStatistics(targets, baits);
+        log.info("Designed and kept " + baits.size() + " baits, discarded " + discardedBaits);
+
+        // Write out some files!
+        originalTargets.write(new File(OUTPUT_DIRECTORY, DESIGN_NAME + ".targets.interval_list"));
+        baits.write(new File(OUTPUT_DIRECTORY, DESIGN_NAME + ".baits.interval_list"));
+        writeParametersFile(new File(OUTPUT_DIRECTORY, DESIGN_NAME + ".design_parameters.txt"));
+        writeDesignFastaFile(new File(OUTPUT_DIRECTORY, DESIGN_NAME + ".design.fasta"), baits);
+        if (POOL_SIZE > 0) writePoolFiles(OUTPUT_DIRECTORY, DESIGN_NAME, baits);
+
+        return 0;
+    }
+
+    /** Calculates a few statistics about the bait design that can then be output. */
+    void calculateStatistics(final IntervalList targets, final IntervalList baits) {
+        this.TARGET_TERRITORY = (int) targets.getUniqueBaseCount();
+        this.TARGET_COUNT = targets.size();
+        this.BAIT_TERRITORY = (int) baits.getUniqueBaseCount();
+        this.BAIT_COUNT = baits.size();
+        this.DESIGN_EFFICIENCY = this.TARGET_TERRITORY / (double) this.BAIT_TERRITORY;
+
+        // Figure out the intersection between all targets and all baits
+        final IntervalList tmp = new IntervalList(targets.getHeader());
+        final OverlapDetector<Interval> detector = new OverlapDetector<Interval>(0, 0);
+        detector.addAll(baits.getIntervals(), baits.getIntervals());
+
+        for (final Interval target : targets) {
+            final Collection<Interval> overlaps = detector.getOverlaps(target);
+
+            if (overlaps.isEmpty()) {
+                this.ZERO_BAIT_TARGETS++;
+            } else {
+                for (final Interval i : overlaps) tmp.add(target.intersect(i));
+            }
+        }
+
+        tmp.uniqued();
+        this.BAIT_TARGET_TERRITORY_INTERSECTION = (int) tmp.getBaseCount();
+    }
+
+    /** Method that writes out all the parameter values that were used in the design using reflection. */
+    void writeParametersFile(final File file) {
+        try {
+            final BufferedWriter out = IOUtil.openFileForBufferedWriting(file);
+            for (final Field field : getClass().getDeclaredFields()) {
+                if (Modifier.isPrivate(field.getModifiers())) continue;
+
+                final String name = field.getName();
+
+                if (name.toUpperCase().equals(name) && !name.equals("USAGE")) {
+                    final Object value = field.get(this);
+
+                    if (value != null) {
+                        out.append(name);
+                        out.append("=");
+                        out.append(value.toString());
+                        out.newLine();
+                    }
+                }
+            }
+            out.close();
+        } catch (Exception e) {
+            throw new PicardException("Error writing out parameters file.", e);
+        }
+    }
+
+    void writeDesignFastaFile(final File file, final IntervalList baits) {
+        final BufferedWriter out = IOUtil.openFileForBufferedWriting(file);
+        for (final Interval i : baits) {
+            writeBaitFasta(out, i, false);
+        }
+        CloserUtil.close(out);
+    }
+
+    /** Writes a Bait out in fasta format to an output BufferedWriter. */
+    private void writeBaitFasta(final BufferedWriter out, final Interval i, final boolean rc) {
+        try {
+            final Bait bait = (Bait) i;
+            out.append(">");
+            out.append(bait.getName());
+            out.newLine();
+
+            final String sequence = getBaitSequence(bait, rc);
+            out.append(sequence);
+            out.newLine();
+        } catch (IOException ioe) {
+            throw new PicardException("Error writing out bait information.", ioe);
+        }
+    }
+
+    /** Gets the bait sequence, with primers, as a String, RC'd as appropriate. */
+    private String getBaitSequence(final Bait bait, final boolean rc) {
+        String sequence = (LEFT_PRIMER == null ? "" : LEFT_PRIMER) +
+                StringUtil.bytesToString(bait.getBases()) +
+                (RIGHT_PRIMER == null ? "" : RIGHT_PRIMER);
+
+        if (rc) sequence = SequenceUtil.reverseComplement(sequence);
+        return sequence;
+    }
+
+    /**
+     * Writes out fasta files for each pool and also agilent format files if requested.
+     *
+     * @param dir      the directory to output files into
+     * @param basename the basename of each file
+     * @param baits    the set of baits to write out
+     */
+    void writePoolFiles(final File dir, final String basename, final IntervalList baits) {
+        final int copies;
+        if (FILL_POOLS && baits.size() < POOL_SIZE) copies = (int) Math.floor(POOL_SIZE / (double) baits.size());
+        else copies = 1;
+
+        int written = 0;
+        int nextPool = 0;
+        BufferedWriter out = null;
+        BufferedWriter agilentOut = null;
+        final String prefix = DESIGN_NAME.substring(0, Math.min(DESIGN_NAME.length(), 8)) + "_"; // prefix for 15 digit bait id
+        final NumberFormat fmt = new DecimalFormat("000000");
+
+        try {
+            for (int i = 0; i < copies; ++i) {
+                final boolean rc = i % 2 == 1;
+
+                int baitId = 1;
+                for (final Interval interval : baits) {
+                    final Bait bait = (Bait) interval;
+
+                    if (written++ % POOL_SIZE == 0) {
+                        if (out != null) out.close();
+                        if (agilentOut != null) agilentOut.close();
+
+                        final String filename = basename + ".pool" + nextPool++ + ".design.";
+                        out = IOUtil.openFileForBufferedWriting(new File(dir, filename + "fasta"));
+                        if (OUTPUT_AGILENT_FILES) {
+                            agilentOut = IOUtil.openFileForBufferedWriting(new File(dir, filename + "txt"));
+                        }
+                    }
+
+                    writeBaitFasta(out, interval, rc);
+                    if (OUTPUT_AGILENT_FILES) {
+                        agilentOut.append(prefix).append(fmt.format(baitId++));
+                        agilentOut.append("\t");
+                        agilentOut.append(getBaitSequence(bait, rc).toUpperCase());
+                        agilentOut.newLine();
+                    }
+                }
+            }
+
+            CloserUtil.close(out);
+            CloserUtil.close(agilentOut);
+        } catch (Exception e) {
+            throw new PicardException("Error while writing pool files.", e);
+        }
+    }
+}
diff --git a/src/java/picard/util/BasicInputParser.java b/src/java/picard/util/BasicInputParser.java
new file mode 100644
index 0000000..2df0293
--- /dev/null
+++ b/src/java/picard/util/BasicInputParser.java
@@ -0,0 +1,176 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.util;
+
+import htsjdk.samtools.util.BufferedLineReader;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.RuntimeIOException;
+import picard.PicardException;
+
+import java.io.File;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+
+/**
+ * TextFileParser which reads a single text file.
+ *
+ * @author Kathleen Tibbetts
+ */
+public class BasicInputParser extends AbstractInputParser
+{
+    private BufferedLineReader reader;
+    private final ArrayList<InputStream> inputs = new ArrayList<InputStream>();
+    private final ArrayList<String> fileNames = new ArrayList<String>();
+    String currentFileName = null;
+    private String currentLine = null;
+    private String nextLine = null;
+    private int currentLineNumber = 0;
+    private int nextLineNumber = 0;
+
+    /**
+     * Constructor.  Opens up a buffered reader and reads the first line.
+     *
+     * @param inputStreams  the file(s) to parse, in order
+     */
+    public BasicInputParser(final boolean treatGroupedDelimitersAsOne, final InputStream... inputStreams) {
+        if (inputStreams.length == 0) {
+            throw new IllegalArgumentException("At least one input must be specified.");
+        }
+        this.inputs.addAll(Arrays.asList(inputStreams));
+        reader = new BufferedLineReader(this.inputs.remove(0));
+        this.setTreatGroupedDelimitersAsOne(treatGroupedDelimitersAsOne);
+    }
+
+    public BasicInputParser(final boolean treatGroupedDelimitersAsOne, final int wordCount, final InputStream... inputStreams) {
+        this(treatGroupedDelimitersAsOne, inputStreams);
+        setWordCount(wordCount);
+    }
+
+    /**
+     * Constructor.  Opens up a buffered reader and reads the first line.
+     *
+     * @param files  the file(s) to parse, in order
+     */
+    public BasicInputParser(final boolean treatGroupedDelimitersAsOne, final File... files) {
+        this(treatGroupedDelimitersAsOne, filesToInputStreams(files));
+        for (File f : files) fileNames.add(f.getAbsolutePath());
+        this.currentFileName = fileNames.remove(0);
+    }
+
+    /**
+     * Constructor.  In addition to opening and priming the files, it sets the number of
+     * whitespace-separated "words" per line.
+     *
+     * @param files      the file(s) to parse
+     * @param wordCount number of whitespace-separated "words" per line
+     */
+    public BasicInputParser(final boolean treatGroupedDelimitersAsOne, final int wordCount, final File... files) {
+        this(treatGroupedDelimitersAsOne, files);
+        setWordCount(wordCount);
+    }
+
+    /**
+     * Workhorse method that reads the next line from the underlying reader
+     *
+     * @return  String or null if there is no next line
+     */
+    protected byte[] readNextLine()
+    {
+        try {
+            final String line = reader.readLine();
+            if (nextLine != null && !isComment(nextLine.getBytes())) {
+                currentLineNumber = nextLineNumber;
+                currentLine = nextLine;
+            }
+            if (line != null) {
+                nextLineNumber++;
+                nextLine = line;
+                return line.getBytes();
+            }
+            if (inputs.size() > 0) {
+                advanceFile();
+                return readNextLine();
+            }
+            return null;
+        }
+        catch(RuntimeIOException ioe) {
+            throw new PicardException("Error reading from file " + currentFileName, ioe);
+        }
+    }
+
+    protected void advanceFile() {
+        currentFileName = fileNames.size() > 0 ? fileNames.remove(0) : null;
+        nextLineNumber = 0;
+        nextLine = null;
+        reader = new BufferedLineReader(inputs.remove(0));
+    }
+
+    /**
+     * Closes the underlying stream
+     */
+    public void close() {
+        if (reader != null)  {
+            reader.close();
+        }
+        for(final InputStream stream : inputs){
+            CloserUtil.close(stream);
+        }
+    }
+
+    /**
+     * Gets the name of the file being parsed
+     *
+     * @return  the name of the file being parsed
+     */
+    public String getFileName() {
+        return this.currentFileName != null ? this.currentFileName : "(file name unavailable)";
+    }
+
+    /**
+     * Provides access to the current (just parsed) line in pre-parsed format.
+     * NOTE: Because AbstractInputParser pre-fetches the next line, this method actually returns the
+     * next line, not the most recent line returned by next().
+     */
+    public String getCurrentLine() {
+        return this.currentLine;
+    }
+
+    /**
+     * NOTE: Because AbstractInputParser pre-fetches the next line, this method actually returns the
+     * next line, not the most recent line returned by next().
+     */
+    public int getCurrentLineNumber() {
+        return currentLineNumber;
+    }
+
+    private static InputStream[] filesToInputStreams(final File files[]) {
+        final InputStream result[] = new InputStream[files.length];
+        for (int i = 0; i < files.length; i++) {
+            result[i] = IOUtil.openFileForReading(files[i]);
+        }
+        return result;
+    }
+}
diff --git a/src/java/picard/util/BedToIntervalList.java b/src/java/picard/util/BedToIntervalList.java
new file mode 100644
index 0000000..113e864
--- /dev/null
+++ b/src/java/picard/util/BedToIntervalList.java
@@ -0,0 +1,138 @@
+package picard.util;
+
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMSequenceDictionary;
+import htsjdk.samtools.SAMSequenceRecord;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Interval;
+import htsjdk.samtools.util.IntervalList;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.ProgressLogger;
+import htsjdk.tribble.AbstractFeatureReader;
+import htsjdk.tribble.CloseableTribbleIterator;
+import htsjdk.tribble.FeatureReader;
+import htsjdk.tribble.annotation.Strand;
+import htsjdk.tribble.bed.BEDCodec;
+import htsjdk.tribble.bed.BEDFeature;
+import htsjdk.variant.utils.SAMSequenceDictionaryExtractor;
+import picard.PicardException;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.Intervals;
+
+import java.io.File;
+import java.io.IOException;
+
+/**
+ * @author nhomer
+ */
+ at CommandLineProgramProperties(
+        usage = "Converts a BED file to an Picard Interval List.",
+        usageShort = "Converts a BED file to an Picard Interval List.",
+        programGroup = Intervals.class
+)
+public class BedToIntervalList extends CommandLineProgram {
+
+    @Option(shortName = StandardOptionDefinitions.INPUT_SHORT_NAME, doc = "The input BED file")
+    public File INPUT;
+
+    @Option(shortName = StandardOptionDefinitions.SEQUENCE_DICTIONARY_SHORT_NAME, doc = "The sequence dictionary")
+    public File SEQUENCE_DICTIONARY;
+
+    @Option(shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc = "The output Picard Interval List")
+    public File OUTPUT;
+
+    @Option(doc="If true, sort the output interval list before writing it.")
+    public boolean SORT = true;
+
+    @Option(doc="If true, unique the output interval list by merging overlapping regions, before writing it (implies sort=true).")
+    public boolean UNIQUE = true;
+
+    final Log LOG = Log.getInstance(getClass());
+
+    // Stock main method
+    public static void main(final String[] args) {
+        new BedToIntervalList().instanceMainWithExit(args);
+    }
+
+    @Override
+    protected int doWork() {
+        IOUtil.assertFileIsReadable(INPUT);
+        IOUtil.assertFileIsReadable(SEQUENCE_DICTIONARY);
+        IOUtil.assertFileIsWritable(OUTPUT);
+        try {
+            // create a new header that we will assign the dictionary provided by the SAMSequenceDictionaryExtractor to.
+            final SAMFileHeader header = new SAMFileHeader();
+            final SAMSequenceDictionary samSequenceDictionary = SAMSequenceDictionaryExtractor.extractDictionary(SEQUENCE_DICTIONARY);
+            header.setSequenceDictionary(samSequenceDictionary);
+            // set the sort order to be sorted by coordinate, which is actually done below
+            // by getting the .uniqued() intervals list before we write out the file
+            header.setSortOrder(SAMFileHeader.SortOrder.coordinate);
+            final IntervalList intervalList = new IntervalList(header);
+
+            /**
+             * NB: BED is zero-based, but a BEDCodec by default (since it is returns tribble Features) has an offset of one,
+             * so it returns 1-based starts.  Ugh.  Set to zero.
+             */
+            final FeatureReader<BEDFeature> bedReader = AbstractFeatureReader.getFeatureReader(INPUT.getAbsolutePath(), new BEDCodec(BEDCodec.StartOffset.ZERO), false);
+            final CloseableTribbleIterator<BEDFeature> iterator = bedReader.iterator();
+            final ProgressLogger progressLogger = new ProgressLogger(LOG, (int) 1e6);
+
+            while (iterator.hasNext()) {
+                final BEDFeature bedFeature = iterator.next();
+                final String sequenceName = bedFeature.getContig();
+                /**
+                 * NB: BED is zero-based, so we need to add one here to make it one-based.  Please observe we set the start
+                 * offset to zero when creating the BEDCodec.
+                 */
+                final int start = bedFeature.getStart() + 1;
+                /**
+                 * NB: BED is 0-based OPEN (which, for the end is equivalent to 1-based closed).
+                 */
+                final int end = bedFeature.getEnd();
+                // NB: do not use an empty name within an interval
+                String name = bedFeature.getName();
+                if (name.isEmpty()) name = null;
+
+                final SAMSequenceRecord sequenceRecord = header.getSequenceDictionary().getSequence(sequenceName);
+
+                // Do some validation
+                if (null == sequenceRecord) {
+                    throw new PicardException(String.format("Sequence '%s' was not found in the sequence dictionary", sequenceName));
+                } else if (start < 1) {
+                    throw new PicardException(String.format("Start on sequence '%s' was less than one: %d", sequenceName, start));
+                } else if (sequenceRecord.getSequenceLength() < start) {
+                    throw new PicardException(String.format("Start on sequence '%s' was past the end: %d < %d", sequenceName, sequenceRecord.getSequenceLength(), start));
+                } else if (end < 1) {
+                    throw new PicardException(String.format("End on sequence '%s' was less than one: %d", sequenceName, end));
+                } else if (sequenceRecord.getSequenceLength() < end) {
+                    throw new PicardException(String.format("End on sequence '%s' was past the end: %d < %d", sequenceName, sequenceRecord.getSequenceLength(), end));
+                } else if (end < start - 1) {
+                    throw new PicardException(String.format("On sequence '%s', end < start-1: %d <= %d", sequenceName, end, start));
+                }
+
+                final boolean isNegativeStrand = bedFeature.getStrand() == Strand.NEGATIVE;
+                final Interval interval = new Interval(sequenceName, start, end, isNegativeStrand, name);
+                intervalList.add(interval);
+
+                progressLogger.record(sequenceName, start);
+            }
+            CloserUtil.close(bedReader);
+
+            // Sort and write the output
+            IntervalList out = intervalList;
+            if (SORT) out = out.sorted();
+            if (UNIQUE) out = out.uniqued();
+            out.write(OUTPUT);
+
+        } catch (final IOException e) {
+            throw new RuntimeException(e);
+        }
+
+        return 0;
+    }
+}
diff --git a/src/java/picard/util/CircularByteBuffer.java b/src/java/picard/util/CircularByteBuffer.java
new file mode 100644
index 0000000..d72cb98
--- /dev/null
+++ b/src/java/picard/util/CircularByteBuffer.java
@@ -0,0 +1,94 @@
+package picard.util;
+
+import picard.PicardException;
+
+/**
+ * Implementation of a circular byte buffer that uses a large byte[] internally and supports basic
+ * read/write operations from/to other byte[]s passed as arguments. Uses wait/nofity() to manage
+ * cross-thread coordination when the buffer is either full or empty.
+ */
+public class CircularByteBuffer {
+    private final byte[] bytes;
+    private final int capacity;
+
+    private int nextWritePos = 0;
+    private int bytesAvailableToWrite;
+    private int nextReadPos = 0;
+    private int bytesAvailableToRead = 0;
+
+    private boolean closed = false;
+
+    /** Constructs a buffer capable of holding the given number of bytes. */
+    public CircularByteBuffer(final int size) {
+        this.bytes = new byte[size];
+        this.capacity = this.bytes.length;
+        this.bytesAvailableToWrite = this.capacity;
+    }
+
+    /**
+     * Write bytes into the buffer from the supplied array.  Will attempt to read 'size' bytes beginning
+     * at 'start' in the supplied array and copy them into the buffer.  If the buffer is near full or
+     * cannot write 'size' bytes contiguously it may write fewer than 'size' bytes.
+     *
+     * @return the number of bytes read from the input array and copied into the buffer
+     */
+    synchronized public int write(final byte[] bytes, final int start, final int size) {
+        if (closed) throw new IllegalStateException("Cannot write to closed buffer.");
+
+        try { if (this.bytesAvailableToWrite == 0) wait(); }
+        catch (final InterruptedException ie) {throw new PicardException("Interrupted while waiting to write to fifo.", ie); }
+
+        final int writePos      = this.nextWritePos;
+        final int distanceToEnd = this.capacity - writePos;
+        final int available     = distanceToEnd < this.bytesAvailableToWrite ? distanceToEnd : this.bytesAvailableToWrite;
+        final int length        = available < size ? available : size;
+
+        System.arraycopy(bytes, start, this.bytes, writePos, length);
+        this.bytesAvailableToWrite -= length;
+        this.bytesAvailableToRead  += length;
+        this.nextWritePos = (writePos + length) % this.capacity;
+        notify();
+        return length;
+    }
+
+    /**
+     * Read bytes from the buffer into the supplied array.  Will attempt to read 'size' bytes and write
+     * them into the supplied array beginning at index 'start' in the supplied array.  If the buffer is
+     * near empty or cannot read 'size' bytes contiguously it may write fewer than 'size' bytes.
+     *
+     * @return the number of bytes read from the buffer and copied into the input array
+     */
+    synchronized public int read(final byte[] bytes, final int start, final int size) {
+        try { if (this.bytesAvailableToRead == 0 && !closed) wait(); }
+        catch (final InterruptedException ie) {throw new PicardException("Interrupted while waiting to read from fifo.", ie); }
+
+        final int readPos       = this.nextReadPos;
+        final int distanceToEnd = this.capacity - readPos;
+        final int available     = distanceToEnd < this.bytesAvailableToRead ? distanceToEnd : this.bytesAvailableToRead;
+        final int length        = available < size ? available : size;
+
+        System.arraycopy(this.bytes, readPos, bytes, start, length);
+        this.bytesAvailableToRead  -= length;
+        this.bytesAvailableToWrite += length;
+        this.nextReadPos = (readPos + length) % this.capacity;
+        notify();
+        return length;
+    }
+
+    /** Signals that the buffer is closed and no further writes will occur. */
+    synchronized public void close() {
+        this.closed = true;
+        notify();
+    }
+
+    /** Returns true if the buffer is closed, false otherwise. */
+    synchronized public boolean isClosed() {
+        return this.closed;
+    }
+
+    /** Returns the total capacity of the buffer (empty+filled). */
+    public int getCapacity() { return this.capacity; }
+
+    /** Returns the number of bytes that are in the buffer at the time of the method invocation. */
+    synchronized public int getBytesAvailableToRead() { return this.bytesAvailableToRead; }
+}
\ No newline at end of file
diff --git a/src/java/picard/util/ClippingUtility.java b/src/java/picard/util/ClippingUtility.java
new file mode 100644
index 0000000..c1433d6
--- /dev/null
+++ b/src/java/picard/util/ClippingUtility.java
@@ -0,0 +1,278 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.util;
+
+import htsjdk.samtools.ReservedTagConstants;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.SequenceUtil;
+
+/**
+ * Utilities to clip the adapater sequence from a SAMRecord read
+ *
+ * @author Tim Fennell
+ */
+public class ClippingUtility {
+
+    /**
+     * The default value used for the minimum number of contiguous bases to match against.
+     */
+    public static final int MIN_MATCH_BASES = 12;
+    /**
+     * The default value used for the minimum number of contiguous bases to match against in a paired end read
+     */
+    public static final int MIN_MATCH_PE_BASES = 6;
+
+    /**
+     * The default value used for the maximum error rate when matching read bases to clippable sequence.
+     */
+    public static final double MAX_ERROR_RATE = 0.10;
+    /**
+     * The default value used for the maximum error rate when matching paired end read bases to clippable sequence.
+     */
+    public static final double MAX_PE_ERROR_RATE = 0.10;
+
+    /**
+     * The value returned by methods returning int when no match is found.
+     */
+    public static final int NO_MATCH = -1;
+
+    private static final Log log = Log.getInstance(ClippingUtility.class);
+
+    /**
+     * @deprecated          Use the varargs version.  This no longer returns a warning string..
+     */
+    public static void adapterTrimIlluminaSingleRead(final SAMRecord read, final AdapterPair adapter) {
+        adapterTrimIlluminaSingleRead(read, MIN_MATCH_BASES, MAX_ERROR_RATE, adapter);
+    }
+
+    /**
+     * @deprecated          Use the varargs version.  This no longer returns a warning string..
+     */
+    public static void adapterTrimIlluminaSingleRead(final SAMRecord read, final AdapterPair adapter,
+        final int minMatchBases, final double maxErrorRate) {
+        adapterTrimIlluminaSingleRead(read, minMatchBases, maxErrorRate, adapter);
+    }
+
+    /**
+     * Invokes adapterTrimIlluminRead with default parameters for a single read.
+     * If the read is a negative strand, its bases will be reverse complemented
+     * Simpler, more common of two overloads. Accepts multiple adapters
+     * and tries them all until it finds the first one that matches.
+     *
+     * @param read    SAM/BAM read to trim
+     * @param adapters which adapters to try to use (indexed, paired_end, or single_end)
+     * @return AdapterPair    the AdapterPair matched, or null
+     */
+    public static AdapterPair adapterTrimIlluminaSingleRead(final SAMRecord read,final AdapterPair ... adapters) {
+        return adapterTrimIlluminaSingleRead(read, MIN_MATCH_BASES, MAX_ERROR_RATE, adapters);
+    }
+
+    /**
+     * Invokes adapterTrimIlluminRead with explicit matching thresholds for a single read.
+     * If the read is a negative strand, a copy of its bases will be reverse complemented.
+     * More general form of the two overloads. Accepts multiple adapters
+     * and tries them all until it finds the first one that matches.
+     *
+     * @param read          SAM/BAM read to trim
+     * @param minMatchBases minimum number of contiguous bases to match against in a read
+     * @param maxErrorRate  maximum error rate when matching read bases
+     * @param adapters      which adapters to try (indexed, paired_end, or single_end)
+     * @return AdapterPair    the AdapterPair matched, or null
+     */
+    public static AdapterPair adapterTrimIlluminaSingleRead(final SAMRecord read, final int minMatchBases,
+                                                     final double maxErrorRate, final AdapterPair ... adapters) {
+        for (AdapterPair adapter : adapters) {
+            final int indexOfAdapterSequence = findIndexOfClipSequence(
+                    getReadBases(read), adapter.get3PrimeAdapterBytes(), minMatchBases, maxErrorRate);
+            if (indexOfAdapterSequence != NO_MATCH) {
+                // Convert to a one-based index for storage on the record.
+                read.setAttribute(ReservedTagConstants.XT, indexOfAdapterSequence + 1);
+                return adapter;
+            }
+        }
+        return null;
+    }
+    /**
+     * @deprecated          Use the varargs version.  This no longer returns a warning string..
+     */
+    public static String adapterTrimIlluminaPairedReads(final SAMRecord read1, final SAMRecord read2, final AdapterPair adapters) {
+        adapterTrimIlluminaPairedReads(read1, read2, MIN_MATCH_PE_BASES, MAX_PE_ERROR_RATE, adapters);
+        return null;
+    }
+
+    /**
+     * @deprecated          Use the varargs version.  This no longer returns a warning string..
+     */
+    public static String adapterTrimIlluminaPairedReads(final SAMRecord read1, final SAMRecord read2,
+        final AdapterPair adapters, final int minMatchBases, final double maxErrorRate) {
+
+        adapterTrimIlluminaPairedReads(read1, read2, minMatchBases, maxErrorRate, adapters);
+        return null;
+    }
+
+    /**
+     * Invokes adapterTrimIlluminaPairedReads with default less stringent parameters for a pair of reads.
+     * If the read is a negative strand, its bases will be reverse complemented
+     * Simpler, more common of two overloads.
+     *
+     * @param  read1    first read of the pair
+     * @param  read2    second read of the pair
+     * @param  adapters which adapters to use (indexed, paired_end, or single_end, nextera), attempted in order
+     * @return int     number of bases trimmed
+     */
+    public static AdapterPair adapterTrimIlluminaPairedReads(final SAMRecord read1, final SAMRecord read2, final AdapterPair ... adapters) {
+        return adapterTrimIlluminaPairedReads(read1, read2, MIN_MATCH_PE_BASES, MAX_PE_ERROR_RATE, adapters);
+    }
+
+    /**
+     * Invokes adapterTrimIlluminaRead with explicit parameters for a pair of reads.
+     * More general form of two overloads.
+     * Returns a warning string when the trim positions found differed for each read.
+     *
+     * @param read1         first read of the pair.
+     * If read1 is a negative strand, a copy of its bases will be reverse complemented.
+     * @param read2         second read of the pair.
+     * If read2 is a negative strand, a copy of its bases will be reverse complemented
+     * @param minMatchBases minimum number of contiguous bases to match against in a read
+     * @param maxErrorRate  maximum error rate when matching read bases
+     * @param  adapters which adapters to use (indexed, paired_end, or single_end, nextera), attempted in order
+     * @return int     number of bases trimmed
+     */
+    public static AdapterPair adapterTrimIlluminaPairedReads(final SAMRecord read1, final SAMRecord read2,
+        final int minMatchBases, final double maxErrorRate, final AdapterPair ... adapters) {
+        AdapterPair matched = null;
+
+        for (final AdapterPair adapterPair : adapters) {
+            final int index1 = findIndexOfClipSequence(
+                    getReadBases(read1), adapterPair.get3PrimeAdapterBytes(), minMatchBases, maxErrorRate);
+            final int index2 = findIndexOfClipSequence(
+                    getReadBases(read2), adapterPair.get5PrimeAdapterBytesInReadOrder(), minMatchBases, maxErrorRate);
+
+            if (index1 == index2) {
+                if (index1 != NO_MATCH) {
+                    // This is the best result: both match exactly, we're done
+                    read1.setAttribute(ReservedTagConstants.XT, index1 + 1);
+                    read2.setAttribute(ReservedTagConstants.XT, index2 + 1);
+                    return adapterPair;
+                }
+                else {
+                    // Otherwise they were both no match, we just keep trying
+                }
+            } else if (index1 == NO_MATCH || index2 == NO_MATCH) {
+                // One of them matched, but the other didn't.
+                // Try matching the one that did match again with a little tighter
+                // stringency and, if that works, trim both reads at the matching point.
+                // This is only the second-best possibility... keep looking for a perfect match.
+                if(attemptOneSidedMatch(read1, read2, index1, index2, 2 * minMatchBases)) {
+                    matched = adapterPair;
+                }
+
+            } else {
+                // Both matched at different positions. Do nothing
+            }
+        }
+
+
+        return matched;
+    }
+
+    /**
+     * When an adapter is matched in only one end of a pair, we check it again with
+     * stricter thresholds.  If it still matches, then we trim both ends of the read
+     * at the same location.
+      */
+    private static boolean attemptOneSidedMatch(final SAMRecord read1,
+                                             final SAMRecord read2,
+                                             final int index1,
+                                             final int index2,
+                                             final int stricterMinMatchBases) {
+
+        // Save all the data about the read where we found the adapter match
+        final int matchedIndex = index1 == NO_MATCH ? index2 : index1;
+        final SAMRecord matchedRead = index1 == NO_MATCH ? read2 : read1;
+
+
+        // If it still matches with a stricter minimum matched bases, then
+        // clip both reads
+        if (matchedRead.getReadLength() - matchedIndex >= stricterMinMatchBases) {
+            if (read1.getReadBases().length > matchedIndex) {
+                read1.setAttribute(ReservedTagConstants.XT, matchedIndex + 1);
+            }
+            if (read2.getReadBases().length > matchedIndex) {
+                read2.setAttribute(ReservedTagConstants.XT, matchedIndex + 1);
+            }
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     *  Returns an array of bytes representing the bases in the read,
+     *  reverse complementing them if the read is on the negative strand
+     */
+    private static byte[] getReadBases(final SAMRecord read) {
+        if (!read.getReadNegativeStrandFlag()) {
+            return read.getReadBases();
+        }
+        else {
+            final byte[] reverseComplementedBases = new byte[read.getReadBases().length];
+            System.arraycopy(read.getReadBases(), 0, reverseComplementedBases, 0, reverseComplementedBases.length);
+            SequenceUtil.reverseComplement(reverseComplementedBases);
+            return reverseComplementedBases;
+        }
+    }
+
+    /**
+     * Finds the first index of the adapterSequence sequence in the read sequence requiring at least minMatch
+     * bases of pairwise alignment with a maximum number of errors dictated by maxErrorRate.
+     *
+     * @param read
+     */
+    public static int findIndexOfClipSequence(final byte[] read, final byte[] adapterSequence, final int minMatch, final double maxErrorRate) {
+        // If the read's too short we can't possibly match it
+        if (read == null || read.length < minMatch) return NO_MATCH;
+        final int minClipPosition = 0;
+
+        // Walk backwards down the read looking for the sequence
+        READ_LOOP:
+        for (int start = read.length - minMatch; start > minClipPosition -1; --start) {
+            final int length = Math.min(read.length - start, adapterSequence.length);
+            final int mismatchesAllowed = (int) (length * maxErrorRate);
+            int mismatches = 0;
+
+            for (int i = 0; i < length; ++i) {
+                if (!SequenceUtil.isNoCall(adapterSequence[i]) && !SequenceUtil.basesEqual(adapterSequence[i], read[start + i])) {
+                    if (++mismatches > mismatchesAllowed) continue READ_LOOP;
+                }
+            }
+
+            // If we got this far without breaking out, then it matches
+            return start;
+        }
+
+        return NO_MATCH;
+    }
+}
diff --git a/src/java/picard/util/CsvInputParser.java b/src/java/picard/util/CsvInputParser.java
new file mode 100644
index 0000000..ca7462a
--- /dev/null
+++ b/src/java/picard/util/CsvInputParser.java
@@ -0,0 +1,36 @@
+package picard.util;
+
+import java.io.File;
+import java.io.InputStream;
+
+public class CsvInputParser extends BasicInputParser {
+    /**
+     * Constructor
+     *
+     * @param stream  The input stream(s) to parse
+     */
+    public CsvInputParser(final boolean treatGroupedDelimitersAsOne, final InputStream... stream) {
+        super(treatGroupedDelimitersAsOne, stream);
+    }
+
+    /**
+     * Constructor
+     *
+     * @param file  The file(s) to parse
+     */
+    public CsvInputParser(final boolean treatGroupedDelimitersAsOne, final File... file) {
+        super(treatGroupedDelimitersAsOne, file);
+    }
+
+    /**
+     * Determines whether a given character is a delimiter
+     *
+     * @param b the character to evaluate
+     * @return  true if <code>b</code> is a delimiter; otherwise false
+     */
+    @Override
+    protected boolean isDelimiter(final byte b) {
+        return b == ',';
+    }
+
+}
diff --git a/src/java/picard/util/DbSnpBitSetUtil.java b/src/java/picard/util/DbSnpBitSetUtil.java
new file mode 100755
index 0000000..355e95c
--- /dev/null
+++ b/src/java/picard/util/DbSnpBitSetUtil.java
@@ -0,0 +1,146 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2010 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.util;
+
+import htsjdk.samtools.SAMSequenceDictionary;
+import htsjdk.samtools.util.CloseableIterator;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.variant.variantcontext.VariantContext;
+import htsjdk.variant.vcf.VCFFileReader;
+
+import java.io.File;
+import java.lang.IllegalArgumentException;import java.lang.String;import java.util.BitSet;import java.util.Collection;import java.util.EnumSet;import java.util.HashMap;import java.util.Map;import java.util.Set;
+
+/**
+ * Utility class to use with DbSnp files to determine is a locus is
+ * a dbSnp site.
+ */
+public class DbSnpBitSetUtil {
+
+    private final Map<String, BitSet> sequenceToBitSet = new HashMap<String,BitSet>();
+
+    /** Little tuple class to contain one bitset for SNPs and another for Indels. */
+    public static class DbSnpBitSets {
+        public DbSnpBitSetUtil snps;
+        public DbSnpBitSetUtil indels;
+    }
+
+    /** Private empty contructor for use by factory methods only. */
+    private DbSnpBitSetUtil() { }
+
+    /** Constructor that creates a bit set with bits set to true for all variant types. */
+    public DbSnpBitSetUtil(final File dbSnpFile, final SAMSequenceDictionary sequenceDictionary) {
+        this(dbSnpFile, sequenceDictionary, EnumSet.noneOf(VariantType.class));
+    }
+
+    /**
+     * Constructor.
+     *
+     * For each sequence, creates  a BitSet that denotes whether a dbSNP entry
+     * is present at each base in the reference sequence.  The set is
+     * reference.length() + 1 so that it can be indexed by 1-based reference base.
+     * True means dbSNP present, false means no dbSNP present.
+     *
+     * @param dbSnpFile in VCF format.
+     * @param sequenceDictionary Optionally, a sequence dictionary corresponding to the dbSnp file, else null.
+     * If present, BitSets will be allocated more efficiently because the maximum size will be known.
+     * @param variantsToMatch what types of variants to load.
+     */
+    public DbSnpBitSetUtil(final File dbSnpFile,
+                           final SAMSequenceDictionary sequenceDictionary,
+                           final Collection<VariantType> variantsToMatch) {
+
+        if (dbSnpFile == null) throw new IllegalArgumentException("null dbSnpFile");
+        final Map<DbSnpBitSetUtil, Set<VariantType>> tmp = new HashMap<DbSnpBitSetUtil, Set<VariantType>>();
+        tmp.put(this, EnumSet.copyOf(variantsToMatch));
+        loadVcf(dbSnpFile, sequenceDictionary, tmp);
+    }
+
+    /** Factory method to create both a SNP bitmask and an indel bitmask in a single pass of the VCF. */
+    public static DbSnpBitSets createSnpAndIndelBitSets(final File dbSnpFile,
+                                                        final SAMSequenceDictionary sequenceDictionary) {
+
+        final DbSnpBitSets sets = new DbSnpBitSets();
+        sets.snps   = new DbSnpBitSetUtil();
+        sets.indels = new DbSnpBitSetUtil();
+
+        final Map<DbSnpBitSetUtil, Set<VariantType>> map = new HashMap<DbSnpBitSetUtil, Set<VariantType>>();
+        map.put(sets.snps,   EnumSet.of(VariantType.SNP));
+        map.put(sets.indels, EnumSet.of(VariantType.insertion, VariantType.deletion));
+        loadVcf(dbSnpFile, sequenceDictionary, map);
+        return sets;
+    }
+
+    /** Private helper method to read through the VCF and create one or more bit sets. */
+    private static void loadVcf(final File dbSnpFile,
+                                final SAMSequenceDictionary sequenceDictionary,
+                                final Map<DbSnpBitSetUtil, Set<VariantType>> bitSetsToVariantTypes) {
+
+        final VCFFileReader variantReader = new VCFFileReader(dbSnpFile);
+        final CloseableIterator<VariantContext> variantIterator = variantReader.iterator();
+
+        while (variantIterator.hasNext()) {
+            final VariantContext kv = variantIterator.next();
+
+            for (final Map.Entry<DbSnpBitSetUtil, Set<VariantType>> tuple : bitSetsToVariantTypes.entrySet()) {
+                final DbSnpBitSetUtil bitset            = tuple.getKey();
+                final Set<VariantType> variantsToMatch  = tuple.getValue();
+
+                BitSet bits = bitset.sequenceToBitSet.get(kv.getChr());
+                if (bits == null) {
+                    final int nBits;
+                    if (sequenceDictionary == null) nBits = kv.getEnd() + 1;
+                    else nBits = sequenceDictionary.getSequence(kv.getChr()).getSequenceLength() + 1;
+                    bits = new BitSet(nBits);
+                    bitset.sequenceToBitSet.put(kv.getChr(), bits);
+                }
+                if (variantsToMatch.isEmpty() ||
+                        (kv.isSNP() && variantsToMatch.contains(VariantType.SNP)) ||
+                        (kv.isIndel() && variantsToMatch.contains(VariantType.insertion)) ||
+                        (kv.isIndel() && variantsToMatch.contains(VariantType.deletion))) {
+
+                    for (int i = kv.getStart(); i <= kv.getEnd(); i++)  bits.set(i, true);
+                }
+            }
+        }
+
+        CloserUtil.close(variantIterator);
+        CloserUtil.close(variantReader);
+    }
+
+    /**
+     * Returns true if there is a dbSnp entry at pos in sequenceName, otherwise false
+     */
+    public boolean isDbSnpSite(final String sequenceName, final int pos) {
+        // When we have a dbSnpFile with no sequence dictionary, this line will be necessary
+        if (sequenceToBitSet.get(sequenceName) == null) {
+            return false;
+        }
+        if (pos > sequenceToBitSet.get(sequenceName).length()) {
+            return false;
+        }
+        return sequenceToBitSet.get(sequenceName).get(pos);
+    }
+
+}
diff --git a/src/java/picard/util/DelimitedTextFileWithHeaderIterator.java b/src/java/picard/util/DelimitedTextFileWithHeaderIterator.java
new file mode 100644
index 0000000..246767d
--- /dev/null
+++ b/src/java/picard/util/DelimitedTextFileWithHeaderIterator.java
@@ -0,0 +1,115 @@
+package picard.util;
+
+import htsjdk.samtools.util.CloseableIterator;
+import picard.PicardException;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.NoSuchElementException;
+import java.util.Set;
+
+/**
+ * Iterate through a delimited text file in which columns are found by looking at a header line rather than by position.
+ *
+ * TODO: This effectively replaces TabbedTextFileWithHeaderParser although the latter hasn't been modified to use this
+ * code instead.
+ *
+ * @author jgentry at broadinstitute.org
+ */
+public class DelimitedTextFileWithHeaderIterator implements CloseableIterator<DelimitedTextFileWithHeaderIterator.Row> {
+    public class Row {
+        private final String[] fields;
+        private final String currentLine;
+
+        Row(final String[] fields, final String source) {
+            this.fields = fields;
+            this.currentLine = source;
+        }
+
+        /**
+         * @return Array of fields in the order they appear in the file.
+         */
+        public String[] getFields() {
+            return fields;
+        }
+
+        public String getField(final String columnLabel) {
+            final Integer key = columnLabelIndices.get(columnLabel);
+            if (key == null) throw new NoSuchElementException(String.format("column %s in %s", columnLabel, parser.getFileName()));
+            return fields[key];
+        }
+
+        public Integer getIntegerField(final String columnLabel) {
+            if (fields[columnLabelIndices.get(columnLabel)] == null)  return null;
+            return Integer.parseInt(fields[columnLabelIndices.get(columnLabel)]);
+        }
+
+        public String getCurrentLine() {
+            return this.currentLine;
+        }
+    }
+
+    /**
+     * Map from column label to positional index.
+     */
+    private final Map<String, Integer> columnLabelIndices = new HashMap<String, Integer>();
+    private final BasicInputParser parser;
+
+    public DelimitedTextFileWithHeaderIterator(final BasicInputParser parser) {
+        this.parser = parser;
+        if (!parser.hasNext()) {
+            throw new PicardException("No header line found in file " + parser.getFileName());
+        }
+        final String[] columnLabels = parser.next();
+        for (int i = 0; i < columnLabels.length; ++i) {
+            columnLabelIndices.put(columnLabels[i], i);
+        }
+    }
+
+    /**
+     * @param columnLabel
+     * @return True if the given column label appears in the header.
+     */
+    public boolean hasColumn(final String columnLabel) {
+        return columnLabelIndices.containsKey(columnLabel);
+    }
+
+    /**
+     *
+     * @return The set of column labels for this file in no particular order.
+     */
+    public Set<String> columnLabels() {
+        return columnLabelIndices.keySet();
+    }
+
+    public int getCurrentLineNumber() {
+        return parser.getCurrentLineNumber();
+    }
+
+    public Set<String> getColumnNames() {
+        return Collections.unmodifiableSet(this.columnLabelIndices.keySet());
+    }
+
+    @Override
+    public boolean hasNext() {
+        return parser.hasNext();
+    }
+
+    @Override
+    public Row next() {
+        final String[] fields = parser.next();
+        final String source = parser.getCurrentLine();
+        return new Row(fields, source);
+    }
+
+    @Override
+    public void remove() {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void close() {
+        parser.close();
+    }
+}
diff --git a/src/java/picard/util/FifoBuffer.java b/src/java/picard/util/FifoBuffer.java
new file mode 100644
index 0000000..2055886
--- /dev/null
+++ b/src/java/picard/util/FifoBuffer.java
@@ -0,0 +1,177 @@
+package picard.util;
+
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.RuntimeIOException;
+import picard.PicardException;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.programgroups.None;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.PrintStream;
+import java.text.DecimalFormat;
+import java.text.NumberFormat;
+
+/**
+ * A program that is designed to act as a large memory buffer between processes that are
+ * connected with unix pipes where one or more processes either produce or consume their
+ * input or output in bursts.  By inserting a large memory buffer between such processes
+ * each process can run at full speed and the bursts can be smoothed out.
+ *
+ * For example:
+ *   java -jar SamToFastq.jar F=my.fastq INTERLEAVE=true | java -jar FifoBuffer | bwa mem -t 8 ...
+ *
+ * @author Tim Fennell
+ */
+ at CommandLineProgramProperties(
+        usage = "Provides a large, configurable, FIFO buffer that can be used to buffer input and output " +
+                "streams between programs with a buffer size that is larger than that offered by native unix FIFOs (usually 64k).",
+        usageShort = "FIFO buffer used to buffer input and output streams with a customizable buffer size ",
+        programGroup = None.class
+)
+public class FifoBuffer extends CommandLineProgram {
+    @Option(doc="The size of the memory buffer in bytes.")
+    public int BUFFER_SIZE = 512 * 1024 * 1024;
+
+    @Option(doc="The size, in bytes, to read/write atomically to the input and output streams.")
+    public int IO_SIZE = 64 * 1024; // 64k == most common unix pipe buffer size
+
+    @Option(doc="How frequently, in seconds, to report debugging statistics. Set to zero for never.")
+    public int DEBUG_FREQUENCY = 0;
+
+    @Option(doc="Name to use for Fifo in debugging statements.", optional=true)
+    public String NAME;
+
+    // Standard log object
+    private final Log log = Log.getInstance(FifoBuffer.class);
+
+    /** The input stream that bytes will be read from and deposited into the byte buffer. */
+    private final InputStream inputStream;
+
+    /** The output [Print] stream which bytes read from the buffer will be emitted into. */
+    private final PrintStream outputStream;
+
+    /** Small custom exception handler for threads. */
+    class LoggingExceptionHandler implements Thread.UncaughtExceptionHandler {
+        public Throwable throwable;
+
+        @Override public void uncaughtException(final Thread t, final Throwable e) {
+            this.throwable = e;
+            log.error(e, "Exception caught on thread ", t.getName());
+        }
+    }
+
+    /**
+     * Constructor that defaults to QUIET since Fifos don't do anything beyond buffering having their
+     * start/end information logged is often undesirable.
+     */
+    public FifoBuffer(final InputStream in, final PrintStream out) {
+        this.inputStream = in;
+        this.outputStream = out;
+        this.QUIET=true;
+    }
+
+    /**
+     * Constructor that defaults to QUIET since Fifos don't do anything beyond buffering having their
+     * start/end information logged is often undesirable.
+     */
+    public FifoBuffer() {
+        this(System.in, System.out);
+    }
+
+    // Stock main method
+    public static void main(final String[] args) {
+        new FifoBuffer().instanceMainWithExit(args);
+    }
+
+    @Override
+    protected int doWork() {
+        final CircularByteBuffer fifo = new CircularByteBuffer(BUFFER_SIZE);
+
+        // Input thread that reads from inputStream until it is closed and writes the contents
+        // into the circular byte buffer.
+        final Thread input = new Thread(new Runnable() {
+            @Override public void run() {
+                try {
+                    final byte[] buffer = new byte[IO_SIZE];
+                    int read = 0;
+                    while ((read = inputStream.read(buffer)) > -1) {
+                        int start = 0;
+                        while (start < read) {
+                            start += fifo.write(buffer, start, read-start);
+                        }
+                    }
+                }
+                catch (final IOException ioe) {
+                    throw new RuntimeIOException(ioe);
+                }
+                finally {
+                    fifo.close();
+                }
+            }
+        });
+
+        // Output thread that reads from the circular byte buffer until it is closed and writes
+        // the results to the outputStream
+        final Thread output = new Thread(new Runnable() {
+            @Override public void run() {
+                final byte[] buffer = new byte[IO_SIZE];
+                int read = 0;
+                while ((read = fifo.read(buffer, 0, buffer.length)) > 0 || !fifo.isClosed()) {
+                    outputStream.write(buffer, 0, read);
+                }
+            }
+        });
+
+        try {
+            // If debugging is turned on then start another thread that will report on the utilization of the
+            // circular byte buffer every N seconds.
+            if (DEBUG_FREQUENCY > 0) {
+                final Thread debug = new Thread(new Runnable() {
+                    @Override public void run() {
+                        final NumberFormat pFmt = NumberFormat.getPercentInstance();
+                        final NumberFormat iFmt = new DecimalFormat("#,##0");
+                        while (true) {
+                            final int capacity = fifo.getCapacity();
+                            final int used     = fifo.getBytesAvailableToRead();
+                            final double pct   = used / (double) capacity;
+                            final String name = NAME == null ? "" : NAME + " ";
+                            log.info("Fifo buffer ", name, "used ", iFmt.format(used), " / ", iFmt.format(capacity), " (", pFmt.format(pct), ").");
+                            try { Thread.sleep(DEBUG_FREQUENCY * 1000); } catch (final InterruptedException ie) { /* do nothing */ }
+                        }
+                    }
+                });
+
+                debug.setName("BufferDebugThread");
+                debug.setDaemon(true);
+                debug.start();
+            }
+
+            // Start the input and output threads.
+            final LoggingExceptionHandler inputExceptionHandler = new LoggingExceptionHandler();
+            input.setUncaughtExceptionHandler(inputExceptionHandler);
+            input.setName("Fifo Input Thread");
+            input.start();
+
+            final LoggingExceptionHandler outputExceptionHandler = new LoggingExceptionHandler();
+            output.setUncaughtExceptionHandler(new LoggingExceptionHandler());
+            output.setName("Fifo Output Thread");
+            output.start();
+
+            // Join on both the input and output threads to make sure that we've fully flushed the buffer
+            input.join();
+            output.join();
+
+            // Double check that neither thread exited with an exception; If so propagate the exception
+            if (inputExceptionHandler.throwable  != null) throw new PicardException("Exception on input thread.",  inputExceptionHandler.throwable);
+            if (outputExceptionHandler.throwable != null) throw new PicardException("Exception on output thread.", outputExceptionHandler.throwable);
+        }
+        catch (final InterruptedException ie) {
+            throw new PicardException("Interrupted!", ie);
+        }
+
+        return 0;
+    }
+}
diff --git a/src/java/picard/util/FileChannelJDKBugWorkAround.java b/src/java/picard/util/FileChannelJDKBugWorkAround.java
new file mode 100644
index 0000000..0779344
--- /dev/null
+++ b/src/java/picard/util/FileChannelJDKBugWorkAround.java
@@ -0,0 +1,64 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.util;
+
+import picard.PicardException;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.nio.channels.FileChannel;
+
+/**
+ * Work-around for the following bug
+ * http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6503430
+ *
+ * Call the method in the main thread before launching threads that do memory-mapping.
+ * @author alecw at broadinstitute.org
+ */
+public class FileChannelJDKBugWorkAround {
+    private static boolean alreadyCalled = false;
+
+    public static byte doBugWorkAround() {
+        if (alreadyCalled) return 0;
+        try {
+            File tmpFile = File.createTempFile("ignore-me.", ".bug-work-around");
+            FileWriter writer = new FileWriter(tmpFile);
+            writer.write("Hi, Mom!");
+            writer.close();
+            FileInputStream is = new FileInputStream(tmpFile);
+            ByteBuffer buf = is.getChannel().map(FileChannel.MapMode.READ_ONLY, 0, tmpFile.length());
+            is.close();
+            byte ret = buf.get();
+            tmpFile.delete();
+            alreadyCalled = true;
+            return ret;
+        } catch (IOException e) {
+            throw new PicardException("IOException", e);
+        }
+
+    }
+}
diff --git a/src/java/picard/util/IlluminaUtil.java b/src/java/picard/util/IlluminaUtil.java
new file mode 100644
index 0000000..34a369f
--- /dev/null
+++ b/src/java/picard/util/IlluminaUtil.java
@@ -0,0 +1,224 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.util;
+
+import htsjdk.samtools.util.FormatUtil;
+import htsjdk.samtools.util.SequenceUtil;
+import htsjdk.samtools.util.SolexaQualityConverter;
+import htsjdk.samtools.util.StringUtil;
+import picard.PicardException;
+
+import java.util.List;
+
+/**
+ * Misc utilities for working with Illumina specific files and data
+ *
+ * @author jburke at broadinstitute.org
+ */
+public class IlluminaUtil {
+
+    public static final String BARCODE_DELIMITER = "-";
+
+    /**
+     * Parse the tile # from the read name.
+     * If we find that there are other elements needed from the read name, it might be a good idea to put
+     * makeReadName() and various get..() methods into a new class.
+     *
+     * @param readName As produced by IlluminaUtil.makeReadName()
+     * @return tile number, or null if read name is not in correct format.
+     */
+    public static Integer getTileFromReadName(final String readName) {
+        final int first = readName.indexOf(':');
+        if (first > 0) {
+            final int second = readName.indexOf(':', first+1);
+            if (second > 0) {
+                final int third = readName.indexOf(':', second+1);
+                if (third > 0) {
+                    return Integer.parseInt(readName.substring(second+1, third));
+                }
+            }
+        }
+
+        return null;
+    }
+
+    /**
+     * Convert from Solexa-scaled ASCII qualities to Phred-scaled binary.  The only difference is Solexa qualities have
+     * 64 added to the phred binary to make them printable.
+     *
+     * @param solexaQualities Printable ASCII qualities.
+     * @return binary Phred-scaled qualities.
+     */
+    public static byte[] makePhredBinaryFromSolexaQualityAscii_1_3(final String solexaQualities) {
+        return makePhredBinaryFromSolexaQualityAscii_1_3(solexaQualities, 0, solexaQualities.length());
+    }
+
+    /**
+     * Convert from Solexa-scaled ASCII qualities to Phred-scaled binary.  The only difference is Solexa qualities have
+     * 64 added to the phred binary to make them printable.
+     *
+     * @param solexaQualities Printable ASCII qualities.
+     * @param offset Character at which to start conversion.
+     * @param length Number of characters to convert.
+     * @return binary Phred-scaled qualities.
+     */
+    public static byte[] makePhredBinaryFromSolexaQualityAscii_1_3(final String solexaQualities, final int offset, final int length) {
+        final byte[] quals = StringUtil.stringToBytes(solexaQualities, offset, length);
+        SolexaQualityConverter.getSingleton().convertSolexa_1_3_QualityCharsToPhredBinary(quals);
+        return quals;
+    }
+
+    /**
+     * Converts from Solexa ASCII to Phred binary in place.  These are the older-style qualities
+     * rather than Phred qualities with a different addend to make them printable.
+     */
+    public static void convertSolexaQualityAscii_1_1_ToPhredBinary(final byte[] solexaQualities) {
+        SolexaQualityConverter.getSingleton().convertSolexaQualityCharsToPhredBinary(solexaQualities);
+    }
+
+    /**
+     * Get a Solexa ASCII quality value from an array of strings that are integer qualities in this order:
+     * [cycle-1-A, cycle-1-C, cycle-1-G, cycle-1-T, cycle-2-A, ...].  The best quality from the 4 qualities for
+     * the cycle is found, and then it is ASCII-ized by adding 64.
+     * @param qualities Array of integer quality strings.
+     * @param cycleNumber Which cycle to get quality for.
+     * @param formatter For converting decimal strings to ints.
+     * @return best quality for the given cycle.
+     * @throws picard.PicardException if the best quality ASCII value is > 255.
+     */
+    public static byte getSolexaQualityCharFromFourQualities(final String[] qualities, final int cycleNumber, final FormatUtil formatter) {
+        // It apparently is the case that all 4 qualities might be negative, but this appears to correspond to
+        // an no-called base.
+        int bestQuality = Integer.MIN_VALUE;
+        final int startOffset = (cycleNumber - 1) * 4;
+        for (int i = startOffset; i < startOffset + 4; ++i) {
+            final int quality = formatter.parseInt(qualities[i]);
+            if (quality > bestQuality) {
+                bestQuality = quality;
+            }
+        }
+        final int qualityAsCharacter = bestQuality + SolexaQualityConverter.SOLEXA_ADDEND;
+        if (qualityAsCharacter > 255) {
+            throw new PicardException("Quality too large: " + bestQuality);
+        }
+        return (byte)(qualityAsCharacter & 0xff);
+    }
+
+    // Strings indented below to make these easier to compare visually.
+    /** Describes adapters used on each pair of strands */
+    public static enum IlluminaAdapterPair implements AdapterPair {
+
+        PAIRED_END(            "AATGATACGGCGACCACCGAGATCTACACTCTTTCCCTACACGACGCTCTTCCGATCT",  //58 bases)
+                         "AGATCGGAAGAGCGGTTCAGCAGGAATGCCGAGACCGATCTCGTATGCCGTCTTCTGCTTG"), // 61 bases
+
+        INDEXED (              "AATGATACGGCGACCACCGAGATCTACACTCTTTCCCTACACGACGCTCTTCCGATCT",
+                    "AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNNNATCTCGTATGCCGTCTTCTGCTTG"), // note  8 N's  // 67 bases
+
+        SINGLE_END (           "AATGATACGGCGACCACCGAGATCTACACTCTTTCCCTACACGACGCTCTTCCGATCT",
+                                                    "AGATCGGAAGAGCTCGTATGCCGTCTTCTGCTTG"),
+
+        NEXTERA_V1(            "AATGATACGGCGACCACCGAGATCTACACGCCTCCCTCGCGCCATCAGAGATGTGTATAAGAGACAG",
+          "CTGTCTCTTATACACATCTCTGAGCGGGCTGGCAAGGCAGACCGNNNNNNNNATCTCGTATGCCGTCTTCTGCTTG"),
+
+        NEXTERA_V2(            "AATGATACGGCGACCACCGAGATCTACACNNNNNNNNTCGTCGGCAGCGTCAGATGTGTATAAGAGACAG",
+                    "CTGTCTCTTATACACATCTCCGAGCCCACGAGACNNNNNNNNATCTCGTATGCCGTCTTCTGCTTG"),
+
+        DUAL_INDEXED(          "AATGATACGGCGACCACCGAGATCTNNNNNNNNACACTCTTTCCCTACACGACGCTCTTCCGATCT",
+                    "AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNNNATCTCGTATGCCGTCTTCTGCTTG"),
+
+        FLUIDIGM(              "AATGATACGGCGACCACCGAGATCTACACTGACGACATGGTTCTACA",
+                              "AGACCAAGTCTCTGCTACCGTANNNNNNNNNNATCTCGTATGCCGTCTTCTGCTTG"),
+
+        TRUSEQ_SMALLRNA(       "AATGATACGGCGACCACCGAGATCTACACGTTCAGAGTTCTACAGTCCGACGATC",
+                       "TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG"),
+
+        // This one is at the end of the list because its 3' is a subset of several of the 3's above.
+        // There are unit tests that try all AdapterPairs, and this one should go at the end os
+        // it is checked last.
+        ALTERNATIVE_SINGLE_END("AATGATACGGCGACCACCGACAGGTTCAGAGTTCTACAGTCCGACGATC",
+                                       "TCGTATGCCGTCTTCTGCTTG"),
+
+                ;
+
+        final String fivePrime, threePrime, fivePrimeReadOrder;
+        final byte[]  fivePrimeBytes, threePrimeBytes, fivePrimeReadOrderBytes;
+
+
+        private IlluminaAdapterPair(final String fivePrime, final String threePrime) {
+            this.threePrime = threePrime;
+            this.threePrimeBytes = StringUtil.stringToBytes(threePrime);
+
+            this.fivePrime = fivePrime;
+            this.fivePrimeReadOrder = SequenceUtil.reverseComplement(fivePrime);
+            this.fivePrimeBytes = StringUtil.stringToBytes(fivePrime);
+            this.fivePrimeReadOrderBytes = StringUtil.stringToBytes(fivePrimeReadOrder);
+        }
+
+        public String get3PrimeAdapter(){ return threePrime; }
+        public String get5PrimeAdapter(){ return fivePrime; }
+        public String get3PrimeAdapterInReadOrder(){ return threePrime; }
+        public String get5PrimeAdapterInReadOrder() { return fivePrimeReadOrder; }
+        public byte[] get3PrimeAdapterBytes() { return threePrimeBytes; }
+        public byte[] get5PrimeAdapterBytes() { return fivePrimeBytes; }
+        public byte[] get3PrimeAdapterBytesInReadOrder() { return threePrimeBytes; }
+        public byte[] get5PrimeAdapterBytesInReadOrder()  { return fivePrimeReadOrderBytes; }
+        public String getName() { return this.name(); }
+    }
+
+    /**
+     * Concatenates all the barcode sequences with BARCODE_DELIMITER
+     * @param barcodes
+     * @return A single string representation of all the barcodes
+     */
+    public static String barcodeSeqsToString(final List<String> barcodes) {
+        return barcodeSeqsToString(barcodes.toArray(new String[barcodes.size()]));
+    }
+
+    /**
+     * Concatenates all the barcode sequences with BARCODE_DELIMITER
+     * @param barcodes
+     * @return A single string representation of all the barcodes
+     */
+    public static String barcodeSeqsToString(final String barcodes[]) {
+        final StringBuilder sb = new StringBuilder();
+        for (final String bc : barcodes) {
+            if (sb.length() > 0) sb.append(BARCODE_DELIMITER);
+            sb.append(bc);
+        }
+        return sb.toString();
+    }
+
+    /**
+     * Concatenates all the barcode sequences with BARCODE_DELIMITER
+     * @param barcodes
+     * @return A single string representation of all the barcodes
+     */
+    public static String barcodeSeqsToString(final byte barcodes[][]) {
+        final String bcs[] = new String[barcodes.length];
+        for (int i = 0; i < barcodes.length; i++) {
+            bcs[i] = StringUtil.bytesToString(barcodes[i]);
+        }
+        return barcodeSeqsToString(bcs);
+    }
+}
diff --git a/src/java/picard/util/IntervalListScatterer.java b/src/java/picard/util/IntervalListScatterer.java
new file mode 100644
index 0000000..125182b
--- /dev/null
+++ b/src/java/picard/util/IntervalListScatterer.java
@@ -0,0 +1,180 @@
+package picard.util;
+
+import htsjdk.samtools.util.Interval;
+import htsjdk.samtools.util.IntervalList;
+import picard.PicardException;
+
+import java.util.ArrayDeque;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+
+/**
+ * @author mccowan
+ */
+public class IntervalListScatterer {
+
+    public enum Mode {
+        /**
+         * A simple scatter approach in which all output intervals have size equal to the total base count of the source list divide by the
+         * scatter count (except for possible variance in the final interval list).
+         */
+        INTERVAL_SUBDIVISION,
+        /**
+         * A scatter approach that differs from {@link Mode#INTERVAL_SUBDIVISION} in a few ways.
+         * <ol>
+         * <li>No interval will be subdivided, and consequently, the requested scatter count is an upper bound of scatter count, not a
+         * guarantee as to how many {@link IntervalList}s will be produced (e.g., if scatterCount = 10 but there is only one input interval,
+         * only 1 interval list will be emitted).</li>
+         * <li>When an interval would otherwise be split, it is instead deferred to the next scatter list.</li>
+         * <li>The "target width" of each scatter list may be wider than what is computed for {@link Mode#INTERVAL_SUBDIVISION}.
+         * Specifically, if the widest interval in the source interval list is larger than what would otherwise be the target width, that
+         * interval's width is used.<br/><br/>The reasoning for this is that this approach produces more consistently-sized interval lists,
+         * which is one of the objectives of scattering.</li>
+         * </ol>
+         */
+        BALANCING_WITHOUT_INTERVAL_SUBDIVISION,
+        /**
+         * A scatter approach that differs from {@link Mode#BALANCING_WITHOUT_INTERVAL_SUBDIVISION}.
+         * <ol>
+         * <li>We try to balance the number of unique bases in each interval list by estimating the remaining interval lists sizes.  This is 
+         * computed from the total number of unique bases and the bases we have consumed.  This means that the interval list with the most
+         * number of unique bases is at most the ideal split length larger than the smallest interval list (unique # of bases).</li>
+         * </ol>         
+         */
+        BALANCING_WITHOUT_INTERVAL_SUBDIVISION_WITH_OVERFLOW
+    }
+
+    private final Mode mode;
+
+    public IntervalListScatterer(final Mode mode) {this.mode = mode;}
+
+    private int deduceIdealSplitLength(final IntervalList uniquedList, final int scatterCount) {
+        final int splitWidth = Math.max((int) Math.floor(uniquedList.getBaseCount() / (1.0 * scatterCount)), 1);
+        switch (mode) {
+            case INTERVAL_SUBDIVISION:
+                return splitWidth;
+            case BALANCING_WITHOUT_INTERVAL_SUBDIVISION:
+            case BALANCING_WITHOUT_INTERVAL_SUBDIVISION_WITH_OVERFLOW:
+                final int widestIntervalLength = Collections.max(uniquedList.getIntervals(), new Comparator<Interval>() {
+                    @Override
+                    public int compare(final Interval o1, final Interval o2) {
+                        return Integer.valueOf(o1.length()).compareTo(o2.length());
+                    }
+                }).length();
+
+                // There is no purpose to splitting more granularly than the widest interval, so do not.
+                return Math.max(widestIntervalLength, splitWidth);
+            default:
+                throw new IllegalStateException();
+        }
+    }
+
+    public List<IntervalList> scatter(final IntervalList uniquedIntervalList, final int scatterCount) {
+        return scatter(uniquedIntervalList, scatterCount, false);
+    }
+    
+    /** Helper for the scatter method */
+    private boolean shouldAddToRunningIntervalList(final long idealSplitLength, final long projectedSize, final double projectedSizeOfRemainingDivisions) {
+        switch (mode) {
+            case BALANCING_WITHOUT_INTERVAL_SUBDIVISION_WITH_OVERFLOW:
+                return (projectedSize <= idealSplitLength || idealSplitLength < projectedSizeOfRemainingDivisions);
+            default:
+                return (projectedSize <= idealSplitLength);
+        }
+    }
+
+
+    public List<IntervalList> scatter(final IntervalList sourceIntervalList, final int scatterCount, final boolean isUniqued) {
+        if (scatterCount < 1) throw new IllegalArgumentException("scatterCount < 1");
+
+        final IntervalList uniquedList = isUniqued ? sourceIntervalList : sourceIntervalList.uniqued();
+        final long idealSplitLength = deduceIdealSplitLength(uniquedList, scatterCount);
+        System.err.println("idealSplitLength=" + idealSplitLength);
+
+        final List<IntervalList> accumulatedIntervalLists = new ArrayList<IntervalList>();
+
+        IntervalList runningIntervalList = new IntervalList(uniquedList.getHeader());
+        final ArrayDeque<Interval> intervalQueue = new ArrayDeque<Interval>(uniquedList.getIntervals());
+        
+        long numBasesLeft = uniquedList.getBaseCount();
+
+        while (!intervalQueue.isEmpty() && accumulatedIntervalLists.size() < scatterCount - 1) {
+            final Interval interval = intervalQueue.pollFirst();
+            final long projectedSize = runningIntervalList.getBaseCount() + interval.length();
+
+            // The mean expected size of the remaining divisions
+            // NOTE: that this looks like double counting but isn't, we subtract here the bases that are in the _current_ running intervalList,
+            // and when we create a new intervalList (below) we modify numBasesLeft.
+            // Another Note: the -1 in the denominator is for "runningIntervalList" that isn't yet counted in  accumulatedIntervalLists.size()
+            final double projectedSizeOfRemainingDivisions = (numBasesLeft - runningIntervalList.getBaseCount()) / ((double)(scatterCount - accumulatedIntervalLists.size() - 1));
+
+            // should we add this interval to the list of running intervals?
+            if (shouldAddToRunningIntervalList(idealSplitLength, projectedSize, projectedSizeOfRemainingDivisions)) {
+                runningIntervalList.add(interval);
+            }
+            else {
+                switch (mode) {
+                    case INTERVAL_SUBDIVISION:
+                        final int amountToConsume = (int) (idealSplitLength - runningIntervalList.getBaseCount());
+                        final Interval left = new Interval(
+                                interval.getContig(),
+                                interval.getStart(),
+                                interval.getStart() + amountToConsume - 1,
+                                interval.isNegativeStrand(),
+                                interval.getName()
+                        );
+                        final Interval right = new Interval(
+                                interval.getContig(),
+                                interval.getStart() + amountToConsume,
+                                interval.getEnd(),
+                                interval.isNegativeStrand(),
+                                interval.getName()
+                        );
+                        runningIntervalList.add(left);
+
+                        // Push back the excess back onto our queue for reconsideration.
+                        intervalQueue.addFirst(right);
+                        break;
+
+                    case BALANCING_WITHOUT_INTERVAL_SUBDIVISION:
+                    case BALANCING_WITHOUT_INTERVAL_SUBDIVISION_WITH_OVERFLOW:
+                        if (runningIntervalList.getIntervals().isEmpty()) {
+                            runningIntervalList.add(interval);
+                        } else {
+                            // Push this interval into the next scatter; re-inject it into the queue, then advance the scatter.
+                            intervalQueue.addFirst(interval);
+                            numBasesLeft -= runningIntervalList.getBaseCount();
+                            accumulatedIntervalLists.add(runningIntervalList.uniqued());
+                            runningIntervalList = new IntervalList(uniquedList.getHeader());
+                        }
+                        break;
+                }
+            }
+
+            if (runningIntervalList.getBaseCount() >= idealSplitLength) {
+                numBasesLeft -= runningIntervalList.getBaseCount(); // keep track of the number of *unique* bases left
+                accumulatedIntervalLists.add(runningIntervalList.uniqued());
+                runningIntervalList = new IntervalList(uniquedList.getHeader());
+            }
+        }
+
+        // Flush the remaining intervals into the last split.
+        while (!intervalQueue.isEmpty()) {
+            runningIntervalList.add(intervalQueue.pollFirst());
+        }
+        if (!runningIntervalList.getIntervals().isEmpty()) {
+            accumulatedIntervalLists.add(runningIntervalList.uniqued());
+        }
+        
+        long maximumIntervalSize = -1, minimumIntervalSize = Integer.MAX_VALUE;
+        for (final IntervalList intervalList : accumulatedIntervalLists) {
+            final long baseCount = intervalList.getBaseCount();
+            if (baseCount < minimumIntervalSize) minimumIntervalSize = baseCount;
+            if (maximumIntervalSize < baseCount) maximumIntervalSize = baseCount;
+        }
+
+        return accumulatedIntervalLists;
+    }
+}
diff --git a/src/java/picard/util/IntervalListTools.java b/src/java/picard/util/IntervalListTools.java
new file mode 100644
index 0000000..759fba7
--- /dev/null
+++ b/src/java/picard/util/IntervalListTools.java
@@ -0,0 +1,364 @@
+package picard.util;
+
+import htsjdk.samtools.SAMException;
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMProgramRecord;
+import htsjdk.samtools.util.CollectionUtil;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Interval;
+import htsjdk.samtools.util.IntervalList;
+import htsjdk.samtools.util.Log;
+import htsjdk.variant.vcf.VCFFileReader;
+import picard.PicardException;
+import picard.cmdline.CommandLineParser;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.programgroups.Intervals;
+import picard.cmdline.StandardOptionDefinitions;
+
+import java.io.File;
+import java.text.DecimalFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Little class to aid working with interval lists.
+ *
+ * @author Tim Fennell
+ */
+ at CommandLineProgramProperties(
+        usage = " General tool for manipulating interval lists, " +
+                "including sorting, merging, padding, uniqueifying, and other set-theoretic operations. Default operation if given one or more inputs is to " +
+                "merge and sort them.  Other options are controlled by arguments.",
+        usageShort = "General tool for manipulating interval lists",
+        programGroup = Intervals.class
+)
+public class IntervalListTools extends CommandLineProgram {
+
+    @Option(shortName = StandardOptionDefinitions.INPUT_SHORT_NAME,
+            doc = "One or more interval lists. If multiple interval lists are provided the output is the" +
+                    "result of merging the inputs. Supported formats are interval_list and VCF.", minElements = 1)
+    public List<File> INPUT;
+
+    @Option(doc = "The output interval list file to write (if SCATTER_COUNT is 1) or the directory into which " +
+            "to write the scattered interval sub-directories (if SCATTER_COUNT > 1)", shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME, optional = true)
+    public File OUTPUT;
+
+    @Option(doc = "The amount to pad each end of the intervals by before other operations are undertaken. Negative numbers are allowed " +
+            "and indicate intervals should be shrunk. Resulting intervals < 0 bases long will be removed. Padding is applied to the interval lists <b> before </b> the ACTION is performed.", optional = true)
+    public int PADDING = 0;
+
+    @Option(doc = "If true, merge overlapping and adjacent intervals to create a list of unique intervals. Implies SORT=true")
+    public boolean UNIQUE = false;
+
+    @Option(doc = "If true, sort the resulting interval list by coordinate.")
+    public boolean SORT = true;
+
+    @Option(doc = "Action to take on inputs.")
+    public Action ACTION = Action.CONCAT;
+
+    @Option(shortName = "SI", doc = "Second set of intervals for SUBTRACT and DIFFERENCE operations.", optional = true)
+    public List<File> SECOND_INPUT;
+
+    @Option(doc = "One or more lines of comment to add to the header of the output file.", optional = true)
+    public List<String> COMMENT = null;
+
+    @Option(doc = "The number of files into which to scatter the resulting list by locus; in some situations, fewer intervals may be emitted.  " +
+            "Note - if > 1, the resultant scattered intervals will be sorted and uniqued.  The sort will be inverted if the INVERT flag is set.")
+    public int SCATTER_COUNT = 1;
+
+    @Option(doc = "Whether to include filtered variants in the vcf when generating an interval list from vcf", optional = true)
+    public boolean INCLUDE_FILTERED=false;
+
+    @Option(shortName = "BRK", doc = "If set to a positive value will create a new interval list with the original intervals broken up at integer multiples of this value.  Set to 0 to NOT break up intervals", optional = true)
+    public int BREAK_BANDS_AT_MULTIPLES_OF = 0;
+
+    @Option(shortName = "M", doc = "Do not subdivide ")
+    public IntervalListScatterer.Mode SUBDIVISION_MODE = IntervalListScatterer.Mode.INTERVAL_SUBDIVISION;
+
+    @Option(doc = "Produce the inverse list", optional = true)
+    public boolean INVERT = false;
+
+    private static final Log LOG = Log.getInstance(IntervalListTools.class);
+
+    public enum Action implements CommandLineParser.ClpEnum {
+
+        CONCAT("The concatenation of all the INPUTs, no sorting or merging of overlapping/abutting intervals implied. Will result in an unsorted list unless requested otherwise.") {
+            @Override
+            IntervalList act(final List<IntervalList> list, final List<IntervalList> unused) {
+                if (!unused.isEmpty())
+                    throw new IllegalArgumentException(String.format("Second List found when action was %s. Ignoring second list.", this.name()));
+                return IntervalList.concatenate(list);
+            }
+        },
+        UNION("Like CONCATENATE but with UNIQUE and SORT implied, the result being the set-wise union of all INPUTS.") {
+            @Override
+            IntervalList act(final List<IntervalList> list, final List<IntervalList> unused) {
+                if (!unused.isEmpty())
+                    throw new IllegalArgumentException(String.format("Second List found when action was %s. Ignoring second list.", this.name()));
+                return IntervalList.union(list);
+            }
+        },
+        INTERSECT("The sorted, uniqued set of all loci that are contained in all of the INPUTs.") {
+            @Override
+            IntervalList act(final List<IntervalList> list, final List<IntervalList> unused) {
+                if (!unused.isEmpty())
+                    throw new IllegalArgumentException(String.format("Second List found when action was %s. Ignoring second list.", this.name()));
+                return IntervalList.intersection(list);
+            }
+        },
+        SUBTRACT("Subtracts SECOND_INPUT from INPUT. The resulting loci are there in INPUT that are not in SECOND_INPUT") {
+            @Override
+            IntervalList act(final List<IntervalList> list1, final List<IntervalList> list2) {
+                return IntervalList.subtract(list1, list2);
+
+            }
+        },
+        SYMDIFF("Find loci that are in INPUT or SECOND_INPUT but are not in both.") {
+            @Override
+            IntervalList act(final List<IntervalList> list1, final List<IntervalList> list2) {
+                return IntervalList.difference(list1, list2);
+            }
+        };
+
+        String helpdoc;
+
+        Action(final String helpdoc) {
+            this.helpdoc = helpdoc;
+        }
+
+        @Override
+        public String getHelpDoc() {
+            return helpdoc;
+        }
+
+        abstract IntervalList act(final List<IntervalList> list1, final List<IntervalList> list2);
+
+    }
+
+    // Stock main method
+    public static void main(final String[] args) {
+        new IntervalListTools().instanceMainWithExit(args);
+    }
+
+    @Override
+    protected int doWork() {
+        // Check inputs
+        for (final File f : INPUT) IOUtil.assertFileIsReadable(f);
+        for (final File f : SECOND_INPUT) IOUtil.assertFileIsReadable(f);
+
+        if (OUTPUT != null) {
+            if (SCATTER_COUNT == 1) {
+                IOUtil.assertFileIsWritable(OUTPUT);
+            } else {
+                IOUtil.assertDirectoryIsWritable(OUTPUT);
+            }
+        }
+
+        // Read in the interval lists and apply any padding
+        final List<IntervalList> lists = openIntervalLists(INPUT);
+
+        // same for the second list
+        final List<IntervalList> secondLists = openIntervalLists(SECOND_INPUT);
+
+        if (UNIQUE && !SORT) {
+            LOG.warn("UNIQUE=true requires sorting but SORT=false was specified.  Results will be sorted!");
+        }
+
+        final IntervalList result = ACTION.act(lists, secondLists);
+
+        if (SCATTER_COUNT > 1) {
+            // Scattering requires a uniqued, sorted interval list.  We want to do this up front (before BREAKING AT BANDS)
+            SORT = true;
+            UNIQUE = true;
+        }
+
+        if (INVERT) {
+            SORT = false; // no need to sort, since return will be sorted by definition.
+            UNIQUE = true;
+        }
+
+        final IntervalList possiblySortedResult = SORT ? result.sorted() : result;
+        final IntervalList possiblyInvertedResult = INVERT ? IntervalList.invert(possiblySortedResult) : possiblySortedResult;
+
+        //only get unique if this has been asked unless inverting (since the invert will return a unique list)
+        List<Interval> finalIntervals = UNIQUE ? possiblyInvertedResult.uniqued().getIntervals() : possiblyInvertedResult.getIntervals();
+
+        if (BREAK_BANDS_AT_MULTIPLES_OF > 0) {
+            finalIntervals = IntervalList.breakIntervalsAtBandMultiples(finalIntervals, BREAK_BANDS_AT_MULTIPLES_OF);
+        }
+
+        // Decide on a PG ID and make a program group
+        final SAMFileHeader header = result.getHeader();
+        final Set<String> pgs = new HashSet<String>();
+        for (final SAMProgramRecord pg : header.getProgramRecords()) pgs.add(pg.getId());
+        for (int i = 1; i < Integer.MAX_VALUE; ++i) {
+            if (!pgs.contains(String.valueOf(i))) {
+                final SAMProgramRecord pg = new SAMProgramRecord(String.valueOf(i));
+                pg.setCommandLine(getCommandLine());
+                pg.setProgramName(getClass().getSimpleName());
+                header.addProgramRecord(pg);
+                break;
+            }
+        }
+
+        // Add any comments
+        if (COMMENT != null) {
+            for (final String comment : COMMENT) {
+                header.addComment(comment);
+            }
+        }
+
+        final IntervalList output = new IntervalList(header);
+        for (final Interval i : finalIntervals) {
+            output.add(i);
+        }
+
+        final List<IntervalList> resultIntervals;
+        if (OUTPUT != null) {
+            if (SCATTER_COUNT == 1) {
+                output.write(OUTPUT);
+                resultIntervals = Arrays.asList(output);
+            } else {
+                final List<IntervalList> scattered = writeScatterIntervals(output);
+                LOG.info(String.format("Wrote %s scatter subdirectories to %s.", scattered.size(), OUTPUT));
+                if (scattered.size() != SCATTER_COUNT) {
+                    LOG.warn(String.format(
+                            "Requested scatter width of %s, but only emitted %s.  (This may be an expected consequence of running in %s mode.)",
+                            SCATTER_COUNT,
+                            scattered.size(),
+                            SUBDIVISION_MODE
+                    ));
+                }
+                resultIntervals = scattered;
+            }
+        } else {
+            resultIntervals = Arrays.asList(output);
+        }
+
+        long totalUniqueBaseCount = 0;
+        long intervalCount = 0;
+        for (final IntervalList finalInterval : resultIntervals) {
+            totalUniqueBaseCount = finalInterval.getUniqueBaseCount();
+            intervalCount += finalInterval.size();    
+        }
+
+        LOG.info("Produced " + intervalCount + " intervals totalling " + totalUniqueBaseCount + " unique bases.");
+        
+        return 0;
+    }
+
+
+    private List<IntervalList> openIntervalLists(final List<File> files){
+        final List<IntervalList> lists = new ArrayList<IntervalList>();
+        for (final File f : files) {
+            lists.add(TYPE.getIntervalList(f, INCLUDE_FILTERED).padded(PADDING));
+        }
+        return lists;
+    }
+
+    @Override
+    protected String[] customCommandLineValidation() {
+        final List<String> errorMsgs = new ArrayList<String>();
+        if (SCATTER_COUNT < 1) {
+            errorMsgs.add("SCATTER_COUNT must be greater than 0.");
+        }
+        if (BREAK_BANDS_AT_MULTIPLES_OF < 0) {
+            errorMsgs.add("BREAK_BANDS_AT_MULTIPLES_OF must be greater than or equal to 0.");
+        }
+        return errorMsgs.size() == 0 ? null : errorMsgs.toArray(new String[errorMsgs.size()]);
+    }
+
+    /**
+     * Method to scatter an interval list by locus.
+     *
+     * @param list The list of intervals to scatter
+     * @return The scattered intervals, represented as a {@link List} of {@link IntervalList}
+     */
+    private List<IntervalList> writeScatterIntervals(final IntervalList list) {
+        final IntervalListScatterer scatterer = new IntervalListScatterer(SUBDIVISION_MODE);
+        final List<IntervalList> scattered = scatterer.scatter(list, SCATTER_COUNT, UNIQUE);
+
+        final DecimalFormat fileNameFormatter = new DecimalFormat("0000");
+        int fileIndex = 1;
+        for (final IntervalList intervals : scattered) {
+            intervals.write(createDirectoryAndGetScatterFile(OUTPUT, scattered.size(), fileNameFormatter.format(fileIndex++)));
+        }
+
+        return scattered;
+    }
+
+    public static File getScatteredFileName(final File scatterDirectory, final long scatterTotal, final String formattedIndex) {
+        return new File(scatterDirectory.getAbsolutePath() + "/temp_" + formattedIndex + "_of_" +
+                scatterTotal + "/scattered" + IntervalList.INTERVAL_LIST_FILE_EXTENSION);
+
+    }
+
+    private static File createDirectoryAndGetScatterFile(final File outputDirectory, final long scatterCount, final String formattedIndex) {
+        createDirectoryOrFail(outputDirectory);
+        final File result = getScatteredFileName(outputDirectory, scatterCount, formattedIndex);
+        createDirectoryOrFail(result.getParentFile());
+        return result;
+    }
+
+    private static void createDirectoryOrFail(final File directory) {
+        if (!directory.exists()) {
+            if (!directory.mkdir()) {
+                throw new PicardException("Unable to create directory: " + directory.getAbsolutePath());
+            }
+        }
+    }
+
+    enum TYPE {
+        VCF(IOUtil.VCF_EXTENSIONS) {
+            @Override
+            protected IntervalList getIntervalListInternal(final File vcf, final boolean includeFiltered) {
+                return VCFFileReader.fromVcf(vcf, includeFiltered);
+            }
+        },
+        INTERVAL_LIST(IOUtil.INTERVAL_LIST_FILE_EXTENSION) {
+            @Override
+            protected IntervalList getIntervalListInternal(final File intervalList, final boolean includeFiltered) {
+                return IntervalList.fromFile(intervalList);
+            }
+        };
+
+        final Collection<String> applicableExtensions;
+
+        TYPE(final String... s) {
+            applicableExtensions = CollectionUtil.makeSet(s);
+        }
+
+        TYPE(final Collection<String> extensions) {
+            applicableExtensions = extensions;
+        }
+
+        abstract protected IntervalList getIntervalListInternal(final File file, final boolean includeFiltered);
+
+        static TYPE forFile(final File intervalListExtractable) {
+            for (final TYPE type : TYPE.values()) {
+                for (final String s : type.applicableExtensions) {
+                    if (intervalListExtractable.getName().endsWith(s)) {
+                        return type;
+                    }
+                }
+            }
+            throw new SAMException("Cannot figure out type of file " + intervalListExtractable.getAbsolutePath() + " from extension. Current implementation understands the following types: " + Arrays.toString(TYPE.values()));
+        }
+
+        static public IntervalList getIntervalList(final  File file, final boolean includeFiltered){
+            return forFile(file).getIntervalListInternal(file, includeFiltered);
+        }
+
+        @Override
+        public String toString() {
+            return super.toString() + ": " + applicableExtensions.toString();
+        }
+    }
+
+}
diff --git a/src/java/picard/util/Iterators.java b/src/java/picard/util/Iterators.java
new file mode 100644
index 0000000..ef161d6
--- /dev/null
+++ b/src/java/picard/util/Iterators.java
@@ -0,0 +1,26 @@
+package picard.util;
+
+import com.google.common.base.Optional;
+
+import java.util.Iterator;
+
+/**
+ * @author mccowan
+ */
+public class Iterators {
+    public static <E> AtomicIterator<E> atomicIteratorOf(final Iterable<E> backingIterable) {
+        return atomicIteratorOf(backingIterable.iterator());
+    }
+
+    public static <E> AtomicIterator<E> atomicIteratorOf(final Iterator<E> backingIterator) {
+        final Object monitor = new Object();
+        return new AtomicIterator<E>() {
+            @Override
+            public Optional<E> next() {
+                synchronized (monitor) {
+                    return backingIterator.hasNext() ? Optional.fromNullable(backingIterator.next()) : Optional.<E>absent();
+                }
+            }
+        };
+    }
+}
diff --git a/src/java/picard/util/LiftOverIntervalList.java b/src/java/picard/util/LiftOverIntervalList.java
new file mode 100644
index 0000000..9d1b9f3
--- /dev/null
+++ b/src/java/picard/util/LiftOverIntervalList.java
@@ -0,0 +1,114 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2010 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.util;
+
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.liftover.LiftOver;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Interval;
+import htsjdk.samtools.util.IntervalList;
+import htsjdk.samtools.util.Log;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.Intervals;
+
+import java.io.File;
+import java.util.List;
+
+/**
+ * @author alecw at broadinstitute.org
+ */
+ at CommandLineProgramProperties(
+        usage = "Lifts over an interval list from one reference build to another. Based on UCSC liftOver." +
+                " Uses a UCSC chain file to guide the liftOver.",
+        usageShort = "Lifts over an interval list from one reference build to another",
+        programGroup = Intervals.class
+)
+public class LiftOverIntervalList extends CommandLineProgram {
+
+    private static final Log LOG = Log.getInstance(LiftOverIntervalList.class);
+
+    @Option(doc = "Interval list to be lifted over.", shortName = StandardOptionDefinitions.INPUT_SHORT_NAME)
+    public File INPUT;
+
+    @Option(doc = "Where to write lifted-over interval list.", shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME)
+    public File OUTPUT;
+
+    @Option(doc = "Sequence dictionary to write into the output interval list.",
+            shortName = StandardOptionDefinitions.SEQUENCE_DICTIONARY_SHORT_NAME)
+    public File SEQUENCE_DICTIONARY;
+
+    @Option(doc = "Chain file that guides LiftOver.")
+    public File CHAIN;
+
+    @Option(doc = "Minimum percentage of bases in each input interval that must map to output interval.")
+    public double MIN_LIFTOVER_PCT = LiftOver.DEFAULT_LIFTOVER_MINMATCH;
+
+    public static void main(final String[] argv) {
+        new LiftOverIntervalList().instanceMainWithExit(argv);
+    }
+
+    /**
+     * Do the work after command line has been parsed. RuntimeException may be
+     * thrown by this method, and are reported appropriately.
+     *
+     * @return program exit status.
+     */
+    @Override
+    protected int doWork() {
+        IOUtil.assertFileIsReadable(INPUT);
+        IOUtil.assertFileIsReadable(SEQUENCE_DICTIONARY);
+        IOUtil.assertFileIsReadable(CHAIN);
+        IOUtil.assertFileIsWritable(OUTPUT);
+
+        final LiftOver liftOver = new LiftOver(CHAIN);
+        liftOver.setLiftOverMinMatch(MIN_LIFTOVER_PCT);
+
+        final IntervalList fromIntervals = IntervalList.fromFile(INPUT);
+        final SAMFileHeader toHeader = SamReaderFactory.makeDefault().getFileHeader(SEQUENCE_DICTIONARY);
+        liftOver.validateToSequences(toHeader.getSequenceDictionary());
+        final IntervalList toIntervals = new IntervalList(toHeader);
+        boolean anyFailed = false;
+        for (final Interval fromInterval : fromIntervals) {
+            final Interval toInterval = liftOver.liftOver(fromInterval);
+            if (toInterval != null) {
+                toIntervals.add(toInterval);
+            } else {
+                anyFailed = true;
+                LOG.warn("Liftover failed for ", fromInterval, "(len ", fromInterval.length(), ")");
+                final List<LiftOver.PartialLiftover> partials = liftOver.diagnosticLiftover(fromInterval);
+                for (final LiftOver.PartialLiftover partial : partials) {
+                    LOG.info(partial);
+                }
+            }
+        }
+
+        toIntervals.sorted();
+        toIntervals.write(OUTPUT);
+        return anyFailed ? 1 : 0;
+    }
+}
diff --git a/src/java/picard/util/MathUtil.java b/src/java/picard/util/MathUtil.java
new file mode 100644
index 0000000..92019bc
--- /dev/null
+++ b/src/java/picard/util/MathUtil.java
@@ -0,0 +1,362 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.util;
+
+import java.math.BigDecimal;
+import java.util.Arrays;
+
+import static java.lang.Math.log1p;
+import static java.lang.Math.pow;
+
+/**
+ * General math utilities
+ *
+ * @author Tim Fennell
+ */
+final public class MathUtil {
+    private MathUtil(){};
+
+    /** The double value closest to 1 while still being less than 1. */
+    public static final double MAX_PROB_BELOW_ONE = 0.9999999999999999d;
+
+    /**
+     *  this function mimics the behavior of log_1p but resulting in log _base 10_ of (1+x) instead of natural log of 1+x
+     */
+    public static double log10_1p(final double x){
+        return log1p(x)/LOG_10_MATH.log_of_base;
+    }
+
+    /** Calculated the mean of an array of doubles. */
+    public static double mean(final double[] in, final int start, final int stop) {
+        double total = 0;
+        for (int i = start; i < stop; ++i) {
+            total += in[i];
+        }
+
+        return total / (stop - start);
+    }
+
+    /** Calculated the standard deviation of an array of doubles. */
+    public static double stddev(final double[] in, final int start, final int length) {
+        return stddev(in, start, length, mean(in, start, length));
+    }
+
+    /** Calculated the standard deviation of an array of doubles. */
+    public static double stddev(final double[] in, final int start, final int stop, final double mean) {
+        double total = 0;
+        for (int i = start; i < stop; ++i) {
+            total += (in[i] * in[i]);
+        }
+
+        return Math.sqrt((total / (stop - start)) - (mean * mean));
+    }
+
+    public static int compare(final int v1, final int v2) {
+        return (v1 < v2 ? -1 : (v1 == v2 ? 0 : 1));
+    }
+
+    /** Calculate the median of an array of doubles. Assumes that the input is sorted */
+    public static double median(final double... in) {
+        if (in.length == 0) {
+            throw new IllegalArgumentException("Attempting to find the median of an empty array");
+        }
+
+        final double[] data = Arrays.copyOf(in, in.length);
+        Arrays.sort(data);
+        final int middle = data.length / 2;
+        return data.length % 2 == 1 ? data[middle] : (data[middle - 1] + data[middle]) / 2.0;
+    }
+
+    /**
+     * Obtains percentage of two Longs
+     * @param numerator   dividend
+     * @param denominator divisor
+     * @return numerator/(double)denominator if both are non-null and denominator != 0, else returns null.
+     */
+    public static Double percentageOrNull(final Long numerator, final Long denominator) {
+        if (numerator != null && denominator != null && denominator != 0) {
+            return numerator.doubleValue() / denominator.doubleValue();
+        } else {
+            return null;
+        }
+    }
+
+    /** 
+     * Round off the value to the specified precision. 
+     */
+    public static double round(final double num, final int precision) {
+        BigDecimal bd = new BigDecimal(num);
+        bd = bd.setScale(precision, BigDecimal.ROUND_HALF_UP);
+        return bd.doubleValue();
+    }
+
+    /** Returns the largest value stored in the array. */
+    public static double max(final double[] nums) {
+        return nums[indexOfMax(nums)];
+    }
+
+    /**
+     * Returns the index of the largest element in the array.  If there are multiple equal maxima then
+     * the earliest one in the array is returned.
+     */
+    public static int indexOfMax(final double[] nums) {
+        double max = nums[0];
+        int index  = 0;
+        for (int i = 1; i < nums.length; ++i) {
+            if (nums[i] > max) {
+                max = nums[i];
+                index = i;
+            }
+        }
+
+        return index;
+    }
+
+    /** Returns the smallest value stored in the array. */
+    public static double min(final double[] nums) {
+        double min = nums[0];
+        for (int i = 1; i < nums.length; ++i) {
+            if (nums[i] < min) min = nums[i];
+        }
+
+        return min;
+    }
+
+
+    /** Returns the smallest value stored in the array. */
+    public static short min(final short[] nums) {
+        short min = nums[0];
+        for (int i = 1; i < nums.length; ++i) {
+            if (nums[i] < min) min = nums[i];
+        }
+
+        return min;
+    }
+
+    /** Mimic's R's seq() function to produce a sequence of equally spaced numbers. */
+    public static double[] seq(final double from, final double to, final double by) {
+        if (from < to && by <= 0) return new double[0];
+        if (from > to && by >= 0) return new double[0];
+        final int values = 1 + (int) Math.floor((to - from) / by);
+        final double[] results = new double[values];
+
+        BigDecimal value = new BigDecimal(from);
+        BigDecimal increment = new BigDecimal(by);
+
+        for (int i=0; i<values; ++i) {
+            results[i] = value.doubleValue();
+            value = value.add(increment);
+        }
+
+        return results;
+    }
+
+    /** "Promotes" an int[] into a double array with the same values (or as close as precision allows). */
+    public static double[] promote(final int[] is) {
+        final double[] ds = new double[is.length];
+        for (int i = 0; i < is.length; ++i) ds[i] = is[i];
+        return ds;
+    }
+
+    @Deprecated  // use pNormalizeLogProbability instead (renamed)
+    public static double[] logLikelihoodsToProbs(final double[] likelihoods) {
+        return pNormalizeLogProbability(likelihoods);
+    }
+
+    /**
+     * Takes a complete set of mutually exclusive logPosteriors and converts them to probabilities
+     * that sum to 1 with as much fidelity as possible.  Limits probabilities to be in the space:
+     * 0.9999999999999999 >= p >= (1-0.9999999999999999)/(lPosteriors.length-1)
+     */
+    public static double[] pNormalizeLogProbability(final double[] lPosterior) {
+        // Note: bumping all the LLs so that the biggest is 300 ensures that we have the
+        // widest range possible when unlogging them before one of them underflows. 10^300 is
+        // near the maximum before you hit positive infinity.
+
+        final double maxLikelihood = max(lPosterior);
+        final double bump = 300 - maxLikelihood;
+
+        final double[] tmp = new double[lPosterior.length];
+        double total = 0;
+        for (int i = 0; i < lPosterior.length; ++i) {
+            tmp[i] = pow(10, lPosterior[i] + bump);
+            total += tmp[i];
+        }
+
+        final double maxP = MAX_PROB_BELOW_ONE;
+        final double minP = (1 - MAX_PROB_BELOW_ONE) / (tmp.length - 1);
+
+        for (int i = 0; i < lPosterior.length; ++i) {
+            tmp[i] /= total;
+            if (tmp[i] > maxP) tmp[i] = maxP;
+            else if (tmp[i] < minP) tmp[i] = minP;
+        }
+
+        return tmp;
+    }
+
+    /** Calculates the ratio of two arrays of the same length. */
+    public static double[] divide(final double[] numerators, final double[] denominators) {
+        if (numerators.length != denominators.length) throw new IllegalArgumentException("Arrays must be of same length.");
+
+        final int len = numerators.length;
+        final double[] result = new double[len];
+        for (int i = 0; i < len; ++i) result[i] = numerators[i] / denominators[i];
+        return result;
+    }
+
+    /**
+     * Takes a vector of numbers and converts it to a vector of probabilities
+     * that sum to 1 with as much fidelity as possible.  Limits probabilities to be in the space:
+     * 0.9999999999999999 >= p >= (1-0.9999999999999999)/(likelihoods.length-1)
+     */
+    public static double[] pNormalizeVector(final double[] pPosterior) {
+
+        final double[] tmp = new double[pPosterior.length];
+        final double total = sum(pPosterior);
+
+        final double maxP = MAX_PROB_BELOW_ONE;
+        final double minP = (1 - MAX_PROB_BELOW_ONE) / (tmp.length - 1);
+
+        for (int i = 0; i < pPosterior.length; ++i) {
+            tmp[i] = pPosterior[i] / total;
+            if (tmp[i] > maxP) tmp[i] = maxP;
+            else if (tmp[i] < minP) tmp[i] = minP;
+        }
+
+        return tmp;
+    }
+
+    /** Calculates the product of two arrays of the same length. */
+    public static double[] multiply(final double[] lhs, final double[] rhs) {
+        if (lhs.length != rhs.length) throw new IllegalArgumentException("Arrays must be of same length.");
+
+        final int len = lhs.length;
+        final double[] result = new double[len];
+        for (int i = 0; i < len; ++i) result[i] = lhs[i] * rhs[i];
+        return result;
+    }
+
+    /** calculates the sum of the arrays as a third array. */
+    public static double[] sum(final double[] lhs, final double[] rhs) {
+        if (lhs.length != rhs.length) throw new IllegalArgumentException("Arrays must be of same length.");
+
+        final int len = lhs.length;
+        final double [] result = new double[len];
+        for (int i = 0; i < len; ++i) result[i] = lhs[i] + rhs[i];
+        return result;
+    }
+
+    /** Returns the sum of the elements in the array. */
+    public static double sum(final double[] arr) {
+        double result = 0;
+        for (final double next : arr) result += next;
+        return result;
+    }
+
+    /** Returns the sum of the elements in the array starting with start and ending before stop. */
+    public static long sum(final long[] arr, final int start, final int stop) {
+        long result = 0;
+        for (int i=start; i<stop; ++i) {
+            result += arr[i];
+        }
+        return result;
+    }
+
+    public static final LogMath LOG_2_MATH = new LogMath(2);
+    public static final LogMath NATURAL_LOG_MATH = new LogMath(Math.exp(1)) {
+        @Override
+        public double getLogValue(final double nonLogValue) {
+            return Math.log(nonLogValue);
+        }
+    };
+
+    public static final LogMath LOG_10_MATH = new LogMath(10) {
+        @Override
+        public double getLogValue(final double nonLogValue) {
+            return Math.log10(nonLogValue);
+        }
+    };
+    
+    /** 
+     * A collection of common math operations that work with log values. To use it, pass values from log space, the operation will be
+     * computed in non-log space, and a value in log space will be returned.
+     */
+    public static class LogMath {
+        private final double base;
+        private final double log_of_base;
+
+        public double getLog_of_base() {
+            return log_of_base;
+        }
+
+        private LogMath(final double base) {
+            this.base = base;
+            this.log_of_base=Math.log(base);
+        }
+
+        /** Returns the decimal representation of the provided log values. */
+        public double getNonLogValue(final double logValue) {
+            return Math.pow(base, logValue);
+        }
+
+        /** Returns the log-representation of the provided decimal value. */
+        public double getLogValue(final double nonLogValue) {
+            return Math.log(nonLogValue) / log_of_base;
+        }
+
+        /** Returns the log-representation of the provided decimal array. */
+        public double[] getLogValue(final double[] nonLogArray) {
+            final double logArray[] = new double[nonLogArray.length];
+            for (int i = 0; i < nonLogArray.length; i++) {
+                logArray[i] = getLogValue(nonLogArray[i]);
+            }
+            return logArray;
+        }
+
+        /** Computes the mean of the provided log values. */
+        public double mean(final double... logValues) {
+            return sum(logValues) - getLogValue(logValues.length);
+        }
+        
+        /** Computes the sum of the provided log values. */
+        public double sum(final double... logValues) {
+            // Avoid overflow via scaling.
+            final double scalingFactor = max(logValues);
+            double simpleAdditionResult = 0;
+            for (final double v : logValues) {
+                simpleAdditionResult += getNonLogValue(v - scalingFactor);
+            }
+            return getLogValue(simpleAdditionResult) + scalingFactor;
+        }
+ 
+        /** Computes the sum of the provided log values. */
+        public double product(final double... logValues) {
+            return MathUtil.sum(logValues);
+        }
+
+
+    }
+}
diff --git a/src/java/picard/util/MetricsDoclet.java b/src/java/picard/util/MetricsDoclet.java
new file mode 100644
index 0000000..b423d97
--- /dev/null
+++ b/src/java/picard/util/MetricsDoclet.java
@@ -0,0 +1,178 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.util;
+
+import com.sun.javadoc.ClassDoc;
+import com.sun.javadoc.Doc;
+import com.sun.javadoc.FieldDoc;
+import com.sun.javadoc.RootDoc;
+import com.sun.javadoc.Tag;
+import htsjdk.samtools.metrics.MetricBase;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.PrintStream;
+import java.util.SortedMap;
+import java.util.TreeMap;
+
+/**
+ * Doclet for use with JavaDoc that will find all classes extending MetricBase and
+ * output information about the metrics definitions that go along with the classes.
+ *
+ * Takes a single parameter (-f file) to tell it where to output the resulting
+ * documentation file in HTML format.
+ *
+ * @author Tim Fennell
+ */
+public class MetricsDoclet {
+    /**
+     * Entry point called by the javadoc command line tool. Loops over all the
+     * classes identifying metrics classes and then produces some basic information
+     * about each in a single HTML file.
+     *
+     * @param root the root of the javadoc object hierarchy
+     * @return true if completed successfully, false otherwise
+     */
+    public static boolean start(final RootDoc root) {
+        // Build a set of metrics classes sorted by name
+        final SortedMap<String,ClassDoc> metricsClasses = new TreeMap<String,ClassDoc>();
+        for (final ClassDoc doc : root.classes()) {
+            if (isMetricsClass(doc)) {
+                System.out.println("Processing " + doc.qualifiedTypeName());
+                metricsClasses.put(doc.typeName(), doc);
+            }
+        }
+
+        // Get a print stream to write to
+        final PrintStream out = getOutput(root);
+        if (out == null) return false;
+
+        // Write out the TOC
+        out.println("<h2>Picard Metrics Definitions</h2>");
+        out.println("<section>");
+        out.println("<p> Click on a metric to see a description of its fields.</p>");
+        out.println("<ol>");
+        for (final ClassDoc doc : metricsClasses.values()) {
+            out.println("<li><a href=\"#" + doc.name() + "\">" + doc.name() + "</a>: " +
+                        firstSentence(doc) + "</li>");
+        }
+        out.println("</ol>");
+        out.println("</section>");
+
+        // Now print out each class
+        for (final ClassDoc doc : metricsClasses.values()) {
+            out.println("<a id=\"" + doc.name() + "\"></a>");
+            out.println("<h2>" + doc.name() + "</h2>");
+            out.println("<section>");
+            out.println("<p>" + doc.commentText() + "</p>");
+            out.println("<table>");
+            out.println("<tr><th>Field</th><th>Description</th></tr>");
+
+            for (final FieldDoc field : doc.fields()) {
+                if (field.isPublic() && !field.isStatic()) {
+                    out.append("<tr>");
+                    out.append("<td>" + field.name() + "</td>");
+                    out.append("<td>" + field.commentText() + "</td>");
+                    out.append("</tr>");
+                }
+            }
+
+            out.println("</table>");
+            out.println("</section>");
+        }
+
+        out.close();
+        return true;
+    }
+
+    /**
+     * Checks to see if the class extends MetricBase using only the JavaDoc
+     * metadata provided about the class.
+     *
+     * @param doc the ClassDoc representing the class to be tested
+     * @return true if the class is a metrics class, false otherwise
+     */
+    protected static boolean isMetricsClass(ClassDoc doc) {
+        final String metricBaseFqn = MetricBase.class.getName();
+        if (!doc.isClass()) return false;
+        if (doc.qualifiedTypeName().contains("personal")) return false;
+
+        do {
+            doc = doc.superclass();
+            if (doc != null && metricBaseFqn.equals(doc.qualifiedTypeName())) return true;
+        }
+        while (doc != null);
+
+        return false;
+    }
+
+    /**
+     * Gets the file output parameter from the RootDoc and then opens an
+     * PrintStream to write to the file.
+     */
+    protected static PrintStream getOutput(final RootDoc root) {
+        for (final String[] arg : root.options()) {
+            if (arg[0].equals("-f") && arg.length == 2) {
+                try {
+                    return new PrintStream(new File(arg[1]));
+                }
+                catch (FileNotFoundException fnfe) {
+                    root.printError("Could not open destination file: " + arg[1]);
+                    fnfe.printStackTrace();
+                    return null;
+                }
+            }
+        }
+
+        root.printError("Destination file parameter -f not supplied.");
+        return null;
+    }
+
+    /**
+     * Required method by the javadoc caller that returns the expected number of elements
+     * for doclet specific command line arguments.
+     */
+    public static int optionLength(final String option) {
+        if(option.equals("-f")) {
+	        return 2;
+        }
+        return 0;
+    }
+
+    /**
+     * Takes a Doc object and uses the firstSentenceTags() to recreate the first sentence
+     * text.
+     */
+    protected static String firstSentence(final Doc doc) {
+        final Tag[] tags = doc.firstSentenceTags();
+        final StringBuilder builder = new StringBuilder(128);
+        for (final Tag tag : tags) {
+            builder.append(tag.text());
+        }
+
+        return builder.toString();
+    }
+
+}
diff --git a/src/java/picard/util/RExecutor.java b/src/java/picard/util/RExecutor.java
new file mode 100644
index 0000000..396e0cf
--- /dev/null
+++ b/src/java/picard/util/RExecutor.java
@@ -0,0 +1,113 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.util;
+
+import htsjdk.samtools.util.CollectionUtil;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.ProcessExecutor;
+import picard.PicardException;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.Arrays;
+
+/**
+ * Util class for executing R scripts.
+ * 
+ * @author Doug Voet (dvoet at broadinstitute dot org)
+ */
+public class RExecutor {
+    private static final Log LOG = Log.getInstance(RExecutor.class);
+    private static final String R_EXE = "Rscript";
+    
+    /**
+     * Executes the given R script that is stored in a file on the classpath. The script file
+     * is read from the classpath and written to a temp file then executed by a call to Rscript.
+     * Blocks until the R script is complete.
+     * 
+     * @param rScriptName the fully qualified name of the classpath resource of the script
+     * @param arguments any arguments required by the script
+     * @return the return code of the R process
+     */
+    public static int executeFromClasspath(final String rScriptName, final String... arguments) {
+        final File scriptFile = writeScriptFile(rScriptName);
+        final int returnCode = executeFromFile(scriptFile, arguments);
+        htsjdk.samtools.util.IOUtil.deleteFiles(scriptFile);
+        return returnCode;
+    }
+
+    /**
+     * Executes the given R script that is stored in a file by a call to Rscript.
+     * Blocks until the R script is complete.
+     * 
+     * @param scriptFile the file object for the script
+     * @param arguments any arguments required by the script
+     * @return the return code of the R process
+     */
+    public static int executeFromFile(final File scriptFile, final String... arguments) {
+        final String[] command = new String[arguments.length + 2];
+        command[0] = R_EXE;
+        command[1] = scriptFile.getAbsolutePath();
+        System.arraycopy(arguments, 0, command, 2, arguments.length);
+        LOG.info(String.format("Executing R script via command: %s", CollectionUtil.join(Arrays.asList(command), " ")));
+        return ProcessExecutor.execute(command);
+    }
+
+    /**
+     * Writes the classpath resource named by rScriptName to the temp dir.
+     */
+    private static File writeScriptFile(final String rScriptName) {
+        InputStream scriptStream = null;
+        OutputStream scriptFileStream = null;
+        try {
+            scriptStream = RExecutor.class.getClassLoader().getResourceAsStream(rScriptName);
+            if (scriptStream == null) {
+                throw new IllegalArgumentException("Script [" + rScriptName + "] not found in classpath");
+            }
+            final File scriptFile = File.createTempFile("script", ".R");
+            scriptFileStream = IOUtil.openFileForWriting(scriptFile);
+            IOUtil.copyStream(scriptStream, scriptFileStream);
+            return scriptFile;
+        } catch (IOException e) {
+            throw new PicardException("Unexpected exception creating R script file [" + rScriptName + "]", e);
+        } finally {
+            if (scriptStream != null) {
+                try {
+                    scriptStream.close();
+                } catch (IOException ignored) {
+                }
+            }
+            if (scriptFileStream != null) {
+                try {
+                    scriptFileStream.close();
+                } catch (IOException ignored) {
+                }
+            }
+        }
+    }
+}
diff --git a/src/java/picard/util/ScatterIntervalsByNs.java b/src/java/picard/util/ScatterIntervalsByNs.java
new file mode 100644
index 0000000..7612105
--- /dev/null
+++ b/src/java/picard/util/ScatterIntervalsByNs.java
@@ -0,0 +1,187 @@
+package picard.util;
+
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.programgroups.Intervals;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.reference.ReferenceSequence;
+import htsjdk.samtools.reference.ReferenceSequenceFile;
+import htsjdk.samtools.reference.ReferenceSequenceFileFactory;
+import htsjdk.samtools.util.Interval;
+import htsjdk.samtools.util.IntervalList;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.ProgressLogger;
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMSequenceRecord;
+import htsjdk.samtools.util.StringUtil;
+
+import java.io.File;
+import java.lang.Boolean;import java.lang.Override;import java.lang.String;import java.util.Collections;
+import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+
+/**
+ * A CLP for breaking up a reference into intervals of Ns and ACGTs bases.
+ * Used for creating a broken-up interval list for calling WGS.
+ *
+ * @author Yossi Farjoun
+ */
+
+ at CommandLineProgramProperties(
+        usage = "Writes an interval list based on splitting the reference by Ns.",
+        usageShort = "Writes an interval list based on splitting the reference by Ns",
+        programGroup = Intervals.class
+)
+public class ScatterIntervalsByNs extends CommandLineProgram {
+
+    @Option(shortName = StandardOptionDefinitions.REFERENCE_SHORT_NAME, doc = "Reference sequence to use.")
+    public File REFERENCE;
+
+    @Option(shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc = "Output file for interval list.")
+    public File OUTPUT;
+
+    @Option(shortName = "OT", doc = "Type of intervals to output.", optional = true)
+    public OutputType OUTPUT_TYPE = OutputType.BOTH;
+
+    @Option(shortName = "N", doc = "Maximal number of contiguous N bases to tolerate, thereby continuing the current ACGT interval.", optional = true)
+    public int MAX_TO_MERGE = 1;
+
+    //not using an enum since Interval.name is a String, and am using that to define the type of the Interval
+    static final String
+            ACGTmer = "ACGTmer",
+            Nmer    = "Nmer";
+
+    //an enum to determine which types of intervals get outputted
+    private enum OutputType {
+        N(Nmer),
+        ACGT(ACGTmer),
+        BOTH(Nmer, ACGTmer);
+
+        private final Set acceptedTypes;
+
+        public Boolean accepts(final String string) {return acceptedTypes.contains(string);}
+
+        OutputType(final String... strings) {
+            acceptedTypes = new HashSet<String>();
+            Collections.addAll(acceptedTypes, strings);
+        }
+    }
+
+    private static final Log log = Log.getInstance(ScatterIntervalsByNs.class);
+    final ProgressLogger locusProgress = new ProgressLogger(log, (int) 1e7, "examined", "loci");
+    final ProgressLogger intervalProgress = new ProgressLogger(log, (int) 10, "found", "intervals");
+
+    public static void main(final String[] args) {
+        new ScatterIntervalsByNs().instanceMainWithExit(args);
+    }
+
+    @Override
+    protected int doWork() {
+        IOUtil.assertFileIsReadable(REFERENCE);
+        IOUtil.assertFileIsWritable(OUTPUT);
+
+        final ReferenceSequenceFile refFile = ReferenceSequenceFileFactory.getReferenceSequenceFile(REFERENCE, true);
+
+        // get the intervals
+        final IntervalList intervals = segregateReference(refFile, MAX_TO_MERGE);
+
+        log.info(String.format("Found %d intervals in %d loci during %s seconds", intervalProgress.getCount(), locusProgress.getCount(), locusProgress.getElapsedSeconds()));
+
+        /**********************************
+         * Now output regions for calling *
+         **********************************/
+
+        final IntervalList outputIntervals = new IntervalList(intervals.getHeader().clone());
+        log.info(String.format("Collecting requested type of intervals (%s)", OUTPUT_TYPE));
+
+        for (final Interval i : intervals.getIntervals()) {
+            if (OUTPUT_TYPE.accepts(i.getName())) {
+                outputIntervals.add(i);
+            }
+        }
+
+        log.info("Writing Intervals.");
+        outputIntervals.write(OUTPUT);
+
+        log.info(String.format("Execution ending. Total time %d seconds", locusProgress.getElapsedSeconds()));
+
+        return 0;
+    }
+
+    /**
+     * ****************************************************************
+     * Generate an interval list that alternates between Ns and ACGTs *
+     * ****************************************************************
+     */
+    public static IntervalList segregateReference(final ReferenceSequenceFile refFile, final int maxNmerToMerge) {
+        final List<Interval> preliminaryIntervals = new LinkedList<Interval>();
+        final SAMFileHeader header = new SAMFileHeader();
+        header.setSequenceDictionary(refFile.getSequenceDictionary());
+        header.setSortOrder(SAMFileHeader.SortOrder.coordinate);
+        final IntervalList finalIntervals = new IntervalList(header);
+
+        //iterate over all the sequences in the dictionary
+        for (final SAMSequenceRecord rec : refFile.getSequenceDictionary().getSequences()) {
+            final ReferenceSequence ref = refFile.getSequence(rec.getSequenceName());
+            final byte[] bytes = ref.getBases();
+            StringUtil.toUpperCase(bytes);
+
+            boolean nBlockIsOpen = (bytes[0] == 'N');
+            int start = 0;
+
+            for (int i = 0; i < bytes.length; ++i) {
+                final boolean currentBaseIsN = (bytes[i] == 'N');
+
+                //create intervals when switching, i.e "nBlockIsOpen" disagrees with "currentBaseIsN"
+                if (nBlockIsOpen != currentBaseIsN) {
+                    preliminaryIntervals.add(new Interval(rec.getSequenceName(), start + 1, i, false, nBlockIsOpen ? Nmer : ACGTmer));
+                    start = i;
+                    nBlockIsOpen = !nBlockIsOpen;
+                }
+            }
+            // Catch the last block of chromosome
+            preliminaryIntervals.add(new Interval(rec.getSequenceName(), start + 1, bytes.length, false, nBlockIsOpen ? Nmer : ACGTmer));
+        }
+
+        // now that we have the whole list, we need to remove the short Nmers.
+        // process the list, replacing trios with short Nmers in the middle with longer intervals:
+        while (!preliminaryIntervals.isEmpty()) {
+
+            //if top trio match the bill, replace them with a merged interval,
+            // and push it back the top of the list (we expect alternating Nmers and ACGTmers, but
+            // not assuming it in the logic)
+
+            //(I want this to be fast and the strings are all copies of the static prototypes Nmer and ACGTmer )
+            //noinspection StringEquality
+            if (preliminaryIntervals.size() >= 3 && // three or more intervals
+                    preliminaryIntervals.get(0).getName() == ACGTmer &&   //an N-mer
+                    preliminaryIntervals.get(1).getName() == Nmer &&      //between two
+                    preliminaryIntervals.get(2).getName() == ACGTmer &&   //ACGT-mers
+                    preliminaryIntervals.get(0).abuts(preliminaryIntervals.get(1)) && // all abutting
+                    preliminaryIntervals.get(1).abuts(preliminaryIntervals.get(2)) && // each other (there are many contigs...)
+                    preliminaryIntervals.get(1).length() <= maxNmerToMerge) //and the N-mer is of length N or less
+            {
+                // create the new ACGTmer interval
+                final Interval temp = new Interval(
+                        preliminaryIntervals.get(0).getSequence(),
+                        preliminaryIntervals.get(0).getStart(),
+                        preliminaryIntervals.get(2).getEnd(), false, ACGTmer);
+
+                //remove the first 3 elements of the list
+                for (int i = 0; i < 3; ++i) {
+                    preliminaryIntervals.remove(0);
+                }
+                //and replace them with the newly created one
+                preliminaryIntervals.add(0, temp);
+            } else { //if cannot merge top three intervals, transfer the top intervals to finalIntervals
+                finalIntervals.add(preliminaryIntervals.remove(0));
+            }
+        }
+        return finalIntervals;
+    }
+}
diff --git a/src/java/picard/util/TabbedInputParser.java b/src/java/picard/util/TabbedInputParser.java
new file mode 100644
index 0000000..0f31180
--- /dev/null
+++ b/src/java/picard/util/TabbedInputParser.java
@@ -0,0 +1,64 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.util;
+
+import java.io.File;
+import java.io.InputStream;
+
+/**
+ * Parser for tab-delimited files
+ *
+ * @author Kathleen Tibbetts
+ */
+public class TabbedInputParser extends BasicInputParser {
+
+    /**
+     * Constructor
+     *
+     * @param stream  The input stream(s) to parse
+     */
+    public TabbedInputParser(boolean treatGroupedDelimitersAsOne, InputStream... stream) {
+        super(treatGroupedDelimitersAsOne, stream);
+    }
+
+    /**
+     * Constructor
+     *
+     * @param file  The file(s) to parse
+     */
+    public TabbedInputParser(boolean treatGroupedDelimitersAsOne, File... file) {
+        super(treatGroupedDelimitersAsOne, file);
+    }
+
+    /**
+     * Determines whether a given character is a delimiter
+     *
+     * @param b the character to evaluate
+     * @return  true if <code>b</code> is a delimiter; otherwise false
+     */
+    @Override
+    protected boolean isDelimiter(final byte b) {
+        return b == '\t';
+    }
+}
diff --git a/src/java/picard/util/TabbedTextFileWithHeaderParser.java b/src/java/picard/util/TabbedTextFileWithHeaderParser.java
new file mode 100644
index 0000000..655077d
--- /dev/null
+++ b/src/java/picard/util/TabbedTextFileWithHeaderParser.java
@@ -0,0 +1,177 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.util;
+
+import htsjdk.samtools.util.CloseableIterator;
+import picard.PicardException;
+
+import java.io.File;
+import java.util.Collections;
+import java.util.ConcurrentModificationException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.NoSuchElementException;
+import java.util.Set;
+
+/**
+ * Parse a tabbed text file in which columns are found by looking at a header line rather than by position.
+ *
+ * @author alecw at broadinstitute.org
+ */
+public class TabbedTextFileWithHeaderParser implements Iterable<TabbedTextFileWithHeaderParser.Row> {
+    public class Row {
+        private final String[] fields;
+        private final String currentLine;
+
+        Row(final String[] fields, final String source) {
+            this.fields = fields;
+            this.currentLine = source;
+        }
+
+        /**
+         * @return Array of fields in the order they appear in the file.
+         */
+        public String[] getFields() {
+            return fields;
+        }
+
+        public String getField(final String columnLabel) {
+            final Integer key = columnLabelIndices.get(columnLabel);
+            if (key == null) throw new NoSuchElementException(String.format("column %s in %s", columnLabel, parser.getFileName()));
+            return fields[key];
+        }
+
+        public Integer getIntegerField(final String columnLabel) {
+            if (fields[columnLabelIndices.get(columnLabel)] == null)  return null;
+            return Integer.parseInt(fields[columnLabelIndices.get(columnLabel)]);
+        }
+
+        public String getCurrentLine() {
+            return this.currentLine;
+        }
+    }
+
+    class TheIterator implements CloseableIterator<Row> {
+
+        @Override
+        public boolean hasNext() {
+            return parser.hasNext();
+        }
+
+        @Override
+        public Row next() {
+            final String[] fields = parser.next();
+            final String source = parser.getCurrentLine();
+            return new Row(fields, source);
+        }
+
+        @Override
+        public void remove() {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public void close() {
+            extantIterator = null;
+        }
+    }
+
+    /**
+     * Map from column label to positional index.
+     */
+    private final Map<String, Integer> columnLabelIndices = new HashMap<String, Integer>();
+    private final TabbedInputParser parser;
+    private TheIterator extantIterator;
+
+    public TabbedTextFileWithHeaderParser(final TabbedInputParser parser) {
+        this.parser = parser;
+        if (!parser.hasNext()) {
+            throw new PicardException("No header line found in file " + parser.getFileName());
+        }
+        final String[] columnLabels = parser.next();
+        for (int i = 0; i < columnLabels.length; ++i) {
+            columnLabelIndices.put(columnLabels[i], i);
+        }
+    }
+    
+    public TabbedTextFileWithHeaderParser(final File file) {
+        this(new TabbedInputParser(false, file));
+    }
+
+    public TabbedTextFileWithHeaderParser(final File file, final String[] columnHeaders) {
+        parser = new TabbedInputParser(false, file);
+        if (!parser.hasNext()) {
+            throw new PicardException("No header line found in file " + file);
+        }
+
+        for (int i = 0; i < columnHeaders.length; ++i) {
+            columnLabelIndices.put(columnHeaders[i], i);
+        }
+    }
+
+    /**
+     * @param columnLabel
+     * @return True if the given column label appears in the header.
+     */
+    public boolean hasColumn(final String columnLabel) {
+        return columnLabelIndices.containsKey(columnLabel);
+    }
+
+    /**
+     *
+     * @return The set of column labels for this file in no particular order.
+     */
+    public Set<String> columnLabels() {
+        return columnLabelIndices.keySet();
+    }
+
+    /**
+     * Creates the iterator object.  It is illegal to have more than one iterator extant
+     * on the same parser object.
+     */
+    @Override
+    public CloseableIterator<Row> iterator() {
+        if (extantIterator != null) {
+            throw new ConcurrentModificationException("Only one iterator allowed at a time.");
+        }
+        extantIterator = new TheIterator();
+        return extantIterator;
+    }
+
+    /**
+     * Release all resources associated with the parser.  Iteration will not work after this
+     * has been called.
+     */
+    public void close() {
+        parser.close();
+    }
+
+    public int getCurrentLineNumber() {
+        return parser.getCurrentLineNumber();
+    }
+
+    public Set<String> getColumnNames() {
+        return Collections.unmodifiableSet(this.columnLabelIndices.keySet());
+    }
+}
diff --git a/src/java/picard/util/TestNGUtil.java b/src/java/picard/util/TestNGUtil.java
new file mode 100644
index 0000000..f7e8091
--- /dev/null
+++ b/src/java/picard/util/TestNGUtil.java
@@ -0,0 +1,96 @@
+package picard.util;
+
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.testng.Assert;
+
+import static java.lang.Math.abs;
+
+/**
+ * Small class implementing some utility functions that are useful for test and interfacing with the TestNG framework.
+ */
+public class TestNGUtil {
+
+    static final double EPSILON = 1e-300; //a constant near the smallest possible positive value representable in double,
+    // not actually the smallest possible value on purpose, since that would be indistinguishable from 0 and then useless.
+    // This is small enough to be meaningless, but representable.
+
+
+    public static abstract class SingleTestUnitTest<TestClazz extends TestNGParameterizable> {
+        @DataProvider(name = "testcases")
+        Object[][] getParams() {
+            return TestNGUtil.generateDataProvider(getTestcases());
+        }
+
+        @Test(dataProvider = "testcases")
+        public void doMetaTest(final TestClazz testcase) {
+            // Delegate to another method to avoid overwriting of annotations.
+            doTest(testcase);
+        }
+
+        abstract public Iterable<TestClazz> getTestcases();
+
+        abstract public void doTest(TestClazz testcase);
+    }
+
+    /**
+     * Interface for exposing an implementation for converting an object into a Object[] appropriate for positional
+     * parameter-passing as performed by TestNG.  Useful for simplifying data sources.
+     */
+    public static class TestNGParameterizable {
+        public Object[] toObjectArray() {
+            return new Object[]{this};
+        }
+    }
+
+    public static Object[][] generateDataProvider(final TestNGParameterizable[] testcases) {
+        return generateDataProvider(Arrays.asList(testcases));
+    }
+
+    public static Object[][] generateDataProvider(final Iterable<? extends TestNGParameterizable> testcases) {
+        final Iterator<? extends TestNGParameterizable> i = testcases.iterator();
+        final List<Object[]> parameterList = new LinkedList<Object[]>();
+        while (i.hasNext()) {
+            parameterList.add(i.next().toObjectArray());
+        }
+        Object[][] parameterArray = new Object[parameterList.size()][];
+        for (int j = 0; j < parameterList.size(); j++) {
+            parameterArray[j] = parameterList.get(j);
+        }
+        return parameterArray;
+    }
+
+
+    //TestNG doesn't have utility functions with these signatures
+
+    /**
+     * Small utility function for determining if two doubles are within a _relative_ accuracy of each other.
+     *
+     * @param lhs first number
+     * @param rhs second number
+     * @param accuracy maximal allowed relative difference between the two numbers
+     * @return true if numbers are within the relative tolerance of each other
+     */
+    public static boolean compareDoubleWithAccuracy(final double lhs, final double rhs, final double accuracy) {
+        if (accuracy <= 0) throw new IllegalArgumentException("Accuracy must be positive.");
+        return abs(lhs - rhs) / (abs(lhs) + abs(rhs) + EPSILON) < accuracy;
+    }
+
+    public static void assertEqualDoubleArrays(final double[] lhs, final double[] rhs, final double accuracy) {
+        Assert.assertNotNull(lhs);
+        Assert.assertNotNull(rhs);
+
+        if (accuracy <= 0) throw new IllegalArgumentException("Accuracy must be positive.");
+        Assert.assertEquals(lhs.length, rhs.length, "Arrays not same length: " + lhs.length + " vs. " + rhs.length);
+
+        for (int i = 0; i < lhs.length; ++i) {
+            Assert.assertTrue(compareDoubleWithAccuracy(lhs[i], rhs[i], accuracy), "Arrays disagree at position " + i + ":  " + lhs[i] + " vs. " + rhs[i] + ". ");
+        }
+    }
+}
diff --git a/src/java/picard/util/UnsignedTypeUtil.java b/src/java/picard/util/UnsignedTypeUtil.java
new file mode 100644
index 0000000..be382ad
--- /dev/null
+++ b/src/java/picard/util/UnsignedTypeUtil.java
@@ -0,0 +1,28 @@
+package picard.util;
+
+/**
+ * A utility class for dealing with unsigned types.  This class is primarily used for promoting a value in an unsigned type to
+ * the same value in the net larger type of the same form (e.g. Integer to Long)
+ */
+public class UnsignedTypeUtil {
+
+    /** Convert an unsigned byte to a signed int */
+    public static int uByteToInt(final byte unsignedByte) {
+        return unsignedByte & 0xFF;
+    }
+
+    /** Convert an unsigned byte to a signed short */
+    public static int uByteToShort(final byte unsignedByte) {
+        return (short) unsignedByte & 0xFF;
+    }
+
+    /** Convert an unsigned short to an Int */
+    public static int uShortToInt(final short unsignedShort) {
+        return unsignedShort & 0xFFFF;
+    }
+
+    /** Convert an unsigned int to a long */
+    public static long uIntToLong(final int unsignedInt) {
+        return unsignedInt & 0xFFFFFFFFL;
+    }
+}
diff --git a/src/java/picard/util/VariantType.java b/src/java/picard/util/VariantType.java
new file mode 100644
index 0000000..722aa09
--- /dev/null
+++ b/src/java/picard/util/VariantType.java
@@ -0,0 +1,44 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.util;
+
+/**
+ * Enum to hold the possible types of dbSnps.  Note that these correspsond to the names used
+ * in the dbSnp database with the exception of indel (which is in-del in dbSnp).
+ */
+public enum VariantType
+{
+    SNP, insertion, deletion;
+
+    /**
+     * Gets the enum for a given ordinal
+     *
+     * @param ordinal
+     * @return  VariantType
+     */
+    public static VariantType getVariantTypeFromOrdinal(int ordinal)
+    {
+        return VariantType.class.getEnumConstants()[ordinal];        
+    }
+}
diff --git a/src/java/picard/vcf/ByIntervalListVariantContextIterator.java b/src/java/picard/vcf/ByIntervalListVariantContextIterator.java
new file mode 100644
index 0000000..8c60dc2
--- /dev/null
+++ b/src/java/picard/vcf/ByIntervalListVariantContextIterator.java
@@ -0,0 +1,52 @@
+package picard.vcf;
+
+import htsjdk.samtools.util.CloseableIterator;
+import htsjdk.samtools.util.Interval;
+import htsjdk.samtools.util.IntervalList;
+import htsjdk.variant.variantcontext.VariantContext;
+import htsjdk.variant.vcf.VCFFileReader;
+
+import java.util.Iterator;
+import java.util.Set;
+
+/**
+ * Takes a VCFFileReader and an IntervalList and provides a single iterator over all variants in all the intervals.
+ *
+ * @TODO Currently this uses the VCFFileReader.query method - could be useful to make a version of this iterator that uses the .iterator method
+ *
+ * @author Tim Fennell
+ * @author George Grant
+ */
+public class ByIntervalListVariantContextIterator implements Iterator<VariantContext> {
+    private final VCFFileReader reader;
+    private final Iterator<Interval> intervals;
+    private CloseableIterator<VariantContext> currentIterator;
+
+    public ByIntervalListVariantContextIterator(final VCFFileReader reader, final IntervalList intervals) {
+        this.reader = reader;
+        this.intervals = intervals.uniqued().iterator();
+    }
+
+    /** If the current iterator is null or exhausted, move to the next interval. */
+    private void advance() {
+        while ((currentIterator == null || !currentIterator.hasNext()) && this.intervals.hasNext()) {
+            if (currentIterator != null) currentIterator.close();
+            final Interval i = this.intervals.next();
+            this.currentIterator = this.reader.query(i.getSequence(), i.getStart(), i.getEnd());
+        }
+    }
+
+    @Override public boolean hasNext() {
+        advance();
+        return this.currentIterator.hasNext();
+    }
+
+    @Override public VariantContext next() {
+        advance();
+        return this.currentIterator.next();
+    }
+
+    @Override public void remove() {
+        throw new UnsupportedOperationException();
+    }
+}
diff --git a/src/java/picard/vcf/CallingMetricAccumulator.java b/src/java/picard/vcf/CallingMetricAccumulator.java
new file mode 100644
index 0000000..c0082c3
--- /dev/null
+++ b/src/java/picard/vcf/CallingMetricAccumulator.java
@@ -0,0 +1,300 @@
+package picard.vcf;
+
+import htsjdk.samtools.util.CollectionUtil;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.ProgressLogger;
+import htsjdk.variant.variantcontext.Allele;
+import htsjdk.variant.variantcontext.Genotype;
+import htsjdk.variant.variantcontext.VariantContext;
+import picard.util.DbSnpBitSetUtil;
+import picard.vcf.processor.VariantProcessor;
+
+import static picard.vcf.CollectVariantCallingMetrics.VariantCallingSummaryMetrics;
+import static picard.vcf.CollectVariantCallingMetrics.VariantCallingDetailMetrics;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Map;
+
+/**
+ * Collects variants and generates metrics about them.  To use, construct, call
+ * {@link #accumulate(htsjdk.variant.variantcontext.VariantContext)} as desired, then call {@link #result()}.
+ *
+ * @author mccowan
+ */
+public class CallingMetricAccumulator implements VariantProcessor.Accumulator<CallingMetricAccumulator.Result> {
+    public static class Result {
+        final VariantCallingSummaryMetrics summary;
+        final Collection<VariantCallingDetailMetrics> details;
+
+        Result(final VariantCallingSummaryMetrics summary, final Collection<VariantCallingDetailMetrics> details) {
+            this.summary = summary;
+            this.details = details;
+        }
+
+        public static Result merge(final Collection<Result> results) {
+            final Collection<VariantCallingDetailMetrics> details = new ArrayList<VariantCallingDetailMetrics>();
+            final Collection<VariantCallingSummaryMetrics> summaries = new ArrayList<VariantCallingSummaryMetrics>();
+            for (final Result result : results) {
+                summaries.add(result.summary);
+                details.addAll(result.details);
+            }
+
+
+            final Map<String, Collection<CollectVariantCallingMetrics.VariantCallingDetailMetrics>> sampleDetailsMap = CollectionUtil.partition(details,
+                    new CollectionUtil.Partitioner<CollectVariantCallingMetrics.VariantCallingDetailMetrics, String>() {
+                        @Override
+                        public String getPartition(final CollectVariantCallingMetrics.VariantCallingDetailMetrics variantCallingDetailMetrics) {
+                            return variantCallingDetailMetrics.SAMPLE_ALIAS;
+                        }
+                    });
+            final Collection<CollectVariantCallingMetrics.VariantCallingDetailMetrics> collapsedDetails = new ArrayList<VariantCallingDetailMetrics>();
+            for (final Collection<VariantCallingDetailMetrics> sampleDetails : sampleDetailsMap.values()) {
+                final VariantCallingDetailMetrics collapsed = new VariantCallingDetailMetrics();
+                VariantCallingDetailMetrics.foldInto(collapsed, sampleDetails);
+                collapsedDetails.add(collapsed);
+            }
+
+
+            final VariantCallingSummaryMetrics collapsedSummary = new VariantCallingSummaryMetrics();
+            VariantCallingSummaryMetrics.foldInto(collapsedSummary, summaries);
+
+            return new Result(collapsedSummary, collapsedDetails);
+        }
+    }
+
+    private static final Log LOG = Log.getInstance(CallingMetricAccumulator.class);
+    private static final ProgressLogger progress = new ProgressLogger(LOG, 10000);
+
+    private final DbSnpBitSetUtil.DbSnpBitSets dbsnp;
+    private final VariantCallingSummaryMetrics summaryMetric = new VariantCallingSummaryMetrics();
+    /**
+     * A map of sample names to metrics.  If .get() for a not-yet-existing sample name, a metric is generated, inserted into the map,
+     * then returned.
+     */
+    private final CollectionUtil.DefaultingMap<String, VariantCallingDetailMetrics> sampleMetricsMap =
+            new CollectionUtil.DefaultingMap<String, VariantCallingDetailMetrics>(
+                    new CollectionUtil.DefaultingMap.Factory<VariantCallingDetailMetrics, String>() {
+                        @Override
+                        public VariantCallingDetailMetrics make(final String sampleName) {
+                            final VariantCallingDetailMetrics detail = new VariantCallingDetailMetrics();
+                            detail.SAMPLE_ALIAS = sampleName;
+                            return detail;
+                        }
+                    }, true);
+
+    public CallingMetricAccumulator(final DbSnpBitSetUtil.DbSnpBitSets dbsnp) {
+        this.dbsnp = dbsnp;
+    }
+
+    /** Incorporates the provided variant's data into the metric analysis. */
+    @Override
+    public void accumulate(final VariantContext vc) {
+        progress.record(vc.getChr(), vc.getStart());
+        if (!isVariantExcluded(vc)) {
+            final String singletonSample = getSingletonSample(vc);
+            updateSummaryMetric(summaryMetric, null, vc, singletonSample != null); // The summary metric has no genotype.
+            for (final String sampleName : vc.getSampleNames()) {
+                // Skip homozygous reference calls.
+                if (!vc.getGenotype(sampleName).isHomRef()) {
+                    updateDetailMetric(sampleMetricsMap.get(sampleName), vc.getGenotype(sampleName), vc,
+                            sampleName.equals(singletonSample));
+                }
+            }
+        }
+    }
+
+    /**
+     * @return Sample name if there is only one sample that contains alternate allele(s), else null if either multiple samples that
+     * are not homref, or no samples that are not homref.
+     */
+    private String getSingletonSample(final VariantContext vc) {
+        String singletonSample = null;
+        for (final String sampleName : vc.getSampleNames()) {
+            final Genotype genotype = vc.getGenotype(sampleName);
+            if (genotype.isHomVar()) {
+                return null;
+            } else if (genotype.isHet()) {
+                if (singletonSample != null) {
+                    // second sample with non-reference allele, so not a singleton
+                    return null;
+                } else {
+                    singletonSample = sampleName;
+                }
+            }
+        }
+        return singletonSample;
+    }
+
+    public Result result() {
+        final Collection<VariantCallingDetailMetrics> values = sampleMetricsMap.values();
+        for (final VariantCallingDetailMetrics value : values) {
+            value.updateDerivedValuesInPlace();
+        }
+
+        summaryMetric.updateDerivedValuesInPlace();
+        return new Result(summaryMetric, values);
+    }
+
+    /** Returns true if the variant is --NOT-- interesting enough to be included in metrics calculations. */
+    private boolean isVariantExcluded(final VariantContext vc) {
+
+        // If the entire record is not a variant, exclude it
+        if (!vc.isVariant()) {
+            return true;
+        }
+
+        // Skip calls which are homozygous reference for all samples.
+        for (final String sample : vc.getSampleNames()) {
+            if (!vc.getGenotype(sample).isHomRef()) {
+                return false; // TODO: Is this correct?
+            }
+        }
+
+        return true;
+    }
+
+    private void updateDetailMetric(final VariantCallingDetailMetrics metric,
+                                    final Genotype genotype,
+                                    final VariantContext vc,
+                                    final boolean hasSingletonSample) {
+        updateSummaryMetric(metric, genotype, vc, hasSingletonSample);
+
+        if (genotype != null && !vc.isFiltered()) {
+            if (genotype.isHet()) {
+                ++metric.numHets;
+            } else if (genotype.isHomVar()) {
+                ++metric.numHomVar;
+            }
+        }
+    }
+
+    /** Amends the provided metric with the data in the provided variant.  Also amends the summary metric re: reference bias. */
+    private void updateSummaryMetric(final VariantCallingSummaryMetrics metric,
+                                     final Genotype genotype,
+                                     final VariantContext vc,
+                                     final boolean hasSingletonSample) {
+
+        // If this sample's genotype doesn't have any variation, exclude it
+        if (genotype != null && genotype.isNoCall()) return;
+
+        // Tally up the filtered SNPs & indels, then exit. The other metrics shouldn't be
+        // computed on low-confidence calls.
+        if (vc.isFiltered()) {
+            if (vc.isSNP()) metric.FILTERED_SNPS++;
+            else if (vc.isIndel()) metric.FILTERED_INDELS++;
+            return;
+        }
+
+        if (hasSingletonSample) {
+            ++metric.NUM_SINGLETONS;
+        }
+
+        if (vc.isBiallelic() && vc.isSNP()) {
+            // Biallelic SNPs
+            final boolean isInDbSnp = dbsnp.snps.isDbSnpSite(vc.getChr(), vc.getStart());
+            final boolean isTransition = isTransition(vc);
+
+            metric.TOTAL_SNPS++;
+
+            if (isInDbSnp) {
+                metric.NUM_IN_DB_SNP++;
+                if (isTransition) metric.dbSnpTransitions++;
+                else metric.dbSnpTransversions++;
+            } else {
+                if (isTransition) metric.novelTransitions++;
+                else metric.novelTransversions++;
+            }
+
+            // Calculate reference bias numbers.  Note: genotype == null for summary metric, so this block won't be called when metric ==
+            // summaryMetric.
+            if (genotype != null && genotype.isHet()) { //
+                final int[] alleleDepths = genotype.getAD();
+                /*
+                 * Null check: work around GATK issue in which some biallelic sites are missing allele depth.  This should affect only ~1%
+                 * of samples and should not have a significant impact on the reference bias calculation.
+                 */
+                if (alleleDepths != null) {
+                    final int indexOfRef = vc.getAlleleIndex(vc.getReference());
+                    final int indexOfAlt = (indexOfRef + 1) % 2;
+
+                    metric.refAlleleObs += alleleDepths[indexOfRef];
+                    metric.altAlleleObs += alleleDepths[indexOfAlt];
+
+                    // Always count these values for summary metrics.
+                    summaryMetric.refAlleleObs += alleleDepths[indexOfRef];
+                    summaryMetric.altAlleleObs += alleleDepths[indexOfAlt];
+                } else {
+                    LOG.debug("Skipping aggregation of genotype due to missing allele depth data: ", genotype, ".");
+                }
+            }
+        } else if (vc.isSNP() && vc.getAlternateAlleles().size() > 1) {
+            // Multiallelic SNPs
+            metric.TOTAL_MULTIALLELIC_SNPS++;
+            if (dbsnp.snps.isDbSnpSite(vc.getChr(), vc.getStart())) metric.NUM_IN_DB_SNP_MULTIALLELIC++;
+        } else if (vc.isIndel() && !vc.isComplexIndel()) {
+            // Simple Indels
+            final boolean isInDbSnp = dbsnp.indels.isDbSnpSite(vc.getChr(), vc.getStart());
+            final boolean isInsertion = vc.isSimpleInsertion();
+
+            metric.TOTAL_INDELS++;
+
+            if (isInDbSnp) {
+                metric.NUM_IN_DB_SNP_INDELS++;
+                if (isInsertion) metric.dbSnpInsertions++;
+                else metric.dbSnpDeletions++;
+            } else {
+                if (isInsertion) metric.novelInsertions++;
+                else {
+                    metric.novelDeletions++;
+                }
+            }
+        } else if (vc.isComplexIndel()) {
+            // Complex Indels
+            metric.TOTAL_COMPLEX_INDELS++;
+            if (dbsnp.indels.isDbSnpSite(vc.getChr(), vc.getStart())) metric.NUM_IN_DB_SNP_COMPLEX_INDELS++;
+        }
+
+    }
+
+    /**
+     * Answers if the provided variant is transitional (otherwise, it's transversional).
+     * Transitions:
+     * A->G
+     * G->A
+     * C->T
+     * T->C
+     * <p/>
+     * Transversions:
+     * A->C
+     * A->T
+     * C->A
+     * C->G
+     * G->C
+     * G->T
+     * T->A
+     * T->G
+     */
+    static private boolean isTransition(final VariantContext vc) {
+        final byte refAllele = vc.getReference().getBases()[0];
+        final Collection<Allele> altAlleles = vc.getAlternateAlleles();
+
+        Byte altAllele = null;
+        for (final Allele a : altAlleles) {
+            if (a.getBases()[0] != refAllele) {
+                altAllele = a.getBases()[0];
+                break;
+            }
+        }
+        if (altAllele == null) {
+            // This should never happen
+            throw new IllegalArgumentException("All alternate alleles match the reference base " + (char) refAllele);
+        }
+
+        return (refAllele == 'A' && altAllele == 'G')
+                || (refAllele == 'G' && altAllele == 'A')
+                || (refAllele == 'C' && altAllele == 'T')
+                || (refAllele == 'T' && altAllele == 'C');
+    }
+
+}
diff --git a/src/java/picard/vcf/CollectVariantCallingMetrics.java b/src/java/picard/vcf/CollectVariantCallingMetrics.java
new file mode 100644
index 0000000..a360910
--- /dev/null
+++ b/src/java/picard/vcf/CollectVariantCallingMetrics.java
@@ -0,0 +1,310 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2015 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.vcf;
+
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.metrics.MetricBase;
+import htsjdk.samtools.metrics.MetricsFile;
+import htsjdk.samtools.util.IntervalList;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.SAMFileReader;
+import htsjdk.samtools.SAMSequenceDictionary;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.variant.vcf.VCFFileReader;
+import picard.cmdline.programgroups.Metrics;
+import picard.util.DbSnpBitSetUtil;
+import picard.vcf.processor.VariantProcessor;
+
+import java.io.File;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Set;
+
+/** Collects summary and per-sample metrics about variant calls in a VCF file. */
+ at CommandLineProgramProperties(
+        usage = "Collects per-sample and aggregate (spanning all samples) metrics from the provided VCF file.",
+        usageShort = "Collects per-sample and aggregate (spanning all samples) metrics from the provided VCF file",
+        programGroup = Metrics.class
+)
+public class CollectVariantCallingMetrics extends CommandLineProgram {
+
+    @Option(shortName = StandardOptionDefinitions.INPUT_SHORT_NAME, doc = "Input vcf file for analysis")
+    public File INPUT;
+
+    @Option(shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc = "Path (except for the file extension) of output metrics files " +
+            "to write.")
+    public File OUTPUT;
+
+    @Option(doc = "Reference dbSNP file in dbSNP or VCF format.")
+    public File DBSNP;
+
+    @Option(shortName = "TI", doc = "Target intervals to restrict analysis to.", optional = true)
+    public File TARGET_INTERVALS;
+
+    @Option(shortName = StandardOptionDefinitions.SEQUENCE_DICTIONARY_SHORT_NAME, optional = true,
+            doc = "If present, speeds loading of dbSNP file")
+    public File SEQUENCE_DICTIONARY = null;
+
+    @Option(doc = "Deprecated option will be removed in a future release.")
+    public Boolean REQUIRE_INDEX = false;
+
+    @Option
+    public int THREAD_COUNT = 1;
+
+    private final Log log = Log.getInstance(CollectVariantCallingMetrics.class);
+
+    public static void main(final String[] args) {
+        new CollectVariantCallingMetrics().instanceMainWithExit(args);
+    }
+
+    @Override
+    protected int doWork() {
+        IOUtil.assertFileIsReadable(INPUT);
+
+        final boolean requiresIndex = this.TARGET_INTERVALS != null || this.THREAD_COUNT > 1;
+        final VCFFileReader variantReader = new VCFFileReader(INPUT, requiresIndex);
+        final SAMSequenceDictionary sequenceDictionary;
+        if (SEQUENCE_DICTIONARY != null) {
+            sequenceDictionary = SAMFileReader.getSequenceDictionary(SEQUENCE_DICTIONARY);
+        } else {
+            sequenceDictionary = variantReader.getFileHeader().getSequenceDictionary();
+        }
+        CloserUtil.close(variantReader);
+
+        log.info("Loading dbSNP file ...");
+        final DbSnpBitSetUtil.DbSnpBitSets dbsnp = DbSnpBitSetUtil.createSnpAndIndelBitSets(DBSNP, sequenceDictionary);
+
+        log.info("Starting iteration of variants.");
+
+        final VariantProcessor.Builder<CallingMetricAccumulator, CallingMetricAccumulator.Result> builder =
+                VariantProcessor.Builder
+                        .generatingAccumulatorsBy(
+                                new VariantProcessor.AccumulatorGenerator<CallingMetricAccumulator, CallingMetricAccumulator.Result>() {
+                                    @Override
+                                    public CallingMetricAccumulator build() {
+                                        return new CallingMetricAccumulator(dbsnp);
+                                    }
+                                })
+                        .combiningResultsBy(
+                                new VariantProcessor.ResultMerger<CallingMetricAccumulator.Result>() {
+                                    @Override
+                                    public CallingMetricAccumulator.Result merge(final Collection<CallingMetricAccumulator.Result>
+                                                                                         resultsToReduce) {
+                                        return CallingMetricAccumulator.Result.merge(resultsToReduce);
+                                    }
+                                })
+                        .withInput(INPUT)
+                        .multithreadingBy(THREAD_COUNT);
+
+        if (TARGET_INTERVALS != null) {
+            builder.limitingProcessedRegionsTo(IntervalList.fromFile(TARGET_INTERVALS).uniqued());
+        }
+
+        final CallingMetricAccumulator.Result result = builder.build().process();
+
+        // Fetch and write the metrics.
+        final MetricsFile<CollectVariantCallingMetrics.VariantCallingDetailMetrics, Integer> detail = getMetricsFile();
+        final MetricsFile<CollectVariantCallingMetrics.VariantCallingSummaryMetrics, Integer> summary = getMetricsFile();
+        summary.addMetric(result.summary);
+        for (final CollectVariantCallingMetrics.VariantCallingDetailMetrics detailMetric : result.details) {
+            detail.addMetric(detailMetric);
+        }
+        final String outputPrefix = OUTPUT.getAbsolutePath() + ".";
+        detail.write(new File(outputPrefix + CollectVariantCallingMetrics.VariantCallingDetailMetrics.getFileExtension()));
+        summary.write(new File(outputPrefix + CollectVariantCallingMetrics.VariantCallingSummaryMetrics.getFileExtension()));
+
+        return 0;
+    }
+
+    /** A collection of metrics relating to snps and indels within a variant-calling file (VCF). */
+    public static class VariantCallingSummaryMetrics extends MetricBase {
+        /** The number of high confidence SNPs calls (i.e. non-reference genotypes) that were examined */
+        public long TOTAL_SNPS;
+
+        /** The number of high confidence SNPs found in dbSNP */
+        public long NUM_IN_DB_SNP;
+
+        /** The number of high confidence SNPS called that were not found in dbSNP */
+        public long NOVEL_SNPS;
+
+        /** The number of SNPs that are also filtered */
+        public long FILTERED_SNPS;
+
+        /** The percentage of high confidence SNPs in dbSNP */
+        public float PCT_DBSNP;
+
+        /** The Transition/Transversion ratio of the SNP calls made at dbSNP sites */
+        public double DBSNP_TITV;
+
+        /** The Transition/Transversion ratio of the SNP calls made at non-dbSNP sites */
+        public double NOVEL_TITV;
+
+        /** The number of high confidence Indel calls that were examined */
+        public long TOTAL_INDELS;
+
+        /** The number of high confidence Indels called that were not found in dbSNP */
+        public long NOVEL_INDELS;
+
+        /** The number of indels that are also filtered */
+        public long FILTERED_INDELS;
+
+        /** The percentage of high confidence Indels in dbSNP */
+        public float PCT_DBSNP_INDELS;
+
+        /** The number of high confidence Indels found in dbSNP */
+        public long NUM_IN_DB_SNP_INDELS;
+
+        /** The Insertion/Deletion ratio of the Indel calls made at dbSNP sites */
+        public double DBSNP_INS_DEL_RATIO;
+
+        /** The Insertion/Deletion ratio of the Indel calls made at non-dbSNP sites */
+        public double NOVEL_INS_DEL_RATIO;
+
+        /** The number of high confidence multiallelic SNP calls that were examined */
+        public double TOTAL_MULTIALLELIC_SNPS;
+
+        /** The number of high confidence multiallelic SNPs found in dbSNP */
+        public double NUM_IN_DB_SNP_MULTIALLELIC;
+
+        /** The number of high confidence complex Indel calls that were examined */
+        public double TOTAL_COMPLEX_INDELS;
+
+        /** The number of high confidence complex Indels found in dbSNP */
+        public double NUM_IN_DB_SNP_COMPLEX_INDELS;
+
+        /** The rate at which reference bases are observed at ref/alt heterozygous SNP sites. */
+        public double SNP_REFERENCE_BIAS;
+
+        /**
+         * For summary metrics, the number of variants that appear in only one sample.
+         * For detail metrics, the number of variants that appear only in the current sample.
+         */
+        public long NUM_SINGLETONS;
+
+        /** Hidden fields that are not propagated to the metrics file, but are used to house temporary values. */
+        long refAlleleObs, altAlleleObs, novelDeletions, novelInsertions, novelTransitions, novelTransversions, dbSnpDeletions,
+                dbSnpInsertions, dbSnpTransitions, dbSnpTransversions;
+
+        public static String getFileExtension() {
+            return "variant_calling_summary_metrics";
+        }
+
+        public void updateDerivedValuesInPlace() {
+            this.PCT_DBSNP = this.NUM_IN_DB_SNP / (float) this.TOTAL_SNPS;
+            this.NOVEL_SNPS = this.TOTAL_SNPS - this.NUM_IN_DB_SNP;
+            this.SNP_REFERENCE_BIAS = (this.refAlleleObs) / (double) (this.refAlleleObs + this.altAlleleObs);
+
+            if (this.dbSnpTransversions > 0)
+                this.DBSNP_TITV = (double) this.dbSnpTransitions / (double) this.dbSnpTransversions;
+
+            if (this.novelTransversions > 0)
+                this.NOVEL_TITV = this.novelTransitions / (double) this.novelTransversions;
+
+            this.PCT_DBSNP_INDELS = this.NUM_IN_DB_SNP_INDELS / (float) this.TOTAL_INDELS;
+            this.NOVEL_INDELS = this.TOTAL_INDELS - this.NUM_IN_DB_SNP_INDELS;
+
+            if (this.dbSnpDeletions > 0)
+                this.DBSNP_INS_DEL_RATIO = this.dbSnpInsertions / (double) this.dbSnpDeletions;
+
+            if (this.novelDeletions > 0)
+                this.NOVEL_INS_DEL_RATIO = this.novelInsertions / (double) this.novelDeletions;
+        }
+
+        public static <T extends VariantCallingSummaryMetrics> void foldInto(final T target, final Collection<T> metrics) {
+            for (final T metric : metrics) {
+                target.TOTAL_SNPS += metric.TOTAL_SNPS;
+                target.NUM_IN_DB_SNP += metric.NUM_IN_DB_SNP;
+                target.FILTERED_SNPS += metric.FILTERED_SNPS;
+                target.TOTAL_INDELS += metric.TOTAL_INDELS;
+                target.FILTERED_INDELS += metric.FILTERED_INDELS;
+                target.NUM_IN_DB_SNP_INDELS += metric.NUM_IN_DB_SNP_INDELS;
+                target.TOTAL_MULTIALLELIC_SNPS += metric.TOTAL_MULTIALLELIC_SNPS;
+                target.NUM_IN_DB_SNP_MULTIALLELIC += metric.NUM_IN_DB_SNP_MULTIALLELIC;
+                target.TOTAL_COMPLEX_INDELS += metric.TOTAL_COMPLEX_INDELS;
+                target.NUM_IN_DB_SNP_COMPLEX_INDELS += metric.NUM_IN_DB_SNP_COMPLEX_INDELS;
+                target.NUM_SINGLETONS += metric.NUM_SINGLETONS;
+                target.refAlleleObs += metric.refAlleleObs;
+                target.altAlleleObs += metric.altAlleleObs;
+                target.novelDeletions += metric.novelDeletions;
+                target.novelInsertions += metric.novelInsertions;
+                target.novelTransitions += metric.novelTransitions;
+                target.novelTransversions += metric.novelTransversions;
+                target.dbSnpDeletions += metric.dbSnpDeletions;
+                target.dbSnpInsertions += metric.dbSnpInsertions;
+                target.dbSnpTransitions += metric.dbSnpTransitions;
+                target.dbSnpTransversions += metric.dbSnpTransversions;
+            }
+            target.updateDerivedValuesInPlace();
+        }
+
+    }
+
+    /** A collection of metrics relating to snps and indels within a variant-calling file (VCF) for a given sample. */
+    public static class VariantCallingDetailMetrics extends CollectVariantCallingMetrics.VariantCallingSummaryMetrics {
+        /** The name of the sample being assayed */
+        public String SAMPLE_ALIAS;
+
+        /**
+         * (count of hets)/(count of homozygous non-ref) for this sample
+         */
+        public double HET_HOMVAR_RATIO;
+
+        /**
+         * Hidden fields not propagated to the metrics file.
+         */
+        long numHets, numHomVar;
+
+        public static String getFileExtension() {
+            return "variant_calling_detail_metrics";
+        }
+
+        public static void foldInto(final VariantCallingDetailMetrics target,
+                                    final Collection<VariantCallingDetailMetrics> metrics) {
+            VariantCallingSummaryMetrics.foldInto(target, metrics);
+            final Set<String> sampleAliases = new HashSet<String>();
+            for (final VariantCallingDetailMetrics metric : metrics) {
+                target.numHets += metric.numHets;
+                target.numHomVar += metric.numHomVar;
+                sampleAliases.add(metric.SAMPLE_ALIAS);
+            }
+            target.updateDerivedValuesInPlace();
+            if (sampleAliases.size() != 1) {
+                throw new IllegalArgumentException("Provided metrics do not have the same sample name.");
+            }
+            target.SAMPLE_ALIAS = sampleAliases.iterator().next();
+        }
+
+        @Override
+        public void updateDerivedValuesInPlace() {
+            super.updateDerivedValuesInPlace();
+            // Divide by zero should be OK -- NaN should get propagated to metrics file and to DB.
+            HET_HOMVAR_RATIO = numHets / (double) numHomVar;
+        }
+
+    }
+}
diff --git a/src/java/picard/vcf/GA4GHScheme.java b/src/java/picard/vcf/GA4GHScheme.java
new file mode 100644
index 0000000..3bd2e91
--- /dev/null
+++ b/src/java/picard/vcf/GA4GHScheme.java
@@ -0,0 +1,72 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2015 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.vcf;
+
+import picard.PicardException;
+import picard.vcf.GenotypeConcordanceStates.*;
+
+/**
+ * The scheme is defined in the constructor.
+ *
+ * The default scheme is derived from the GA4GH Benchmarking Work Group's proposed evaluation scheme.
+ *
+ * In general, we are comparing two sets of alleles.  Therefore, we can have zero or more contingency table values represented in one comparison.  For example, if the truthset is
+ * a heterozygous call with both alleles non-reference (HET_VAR1_VAR2), and the callset is a heterozygous call with both alleles non-reference with one of the alternate alleles
+ * matching an alternate allele in the callset, we would have a true positive, false positive, and false negative.  The true positive is from the matching alternate alleles, the
+ * false positive is the alternate allele found in the callset but not found in the truthset, and the false negative is the alternate in the truthset not found in the callset.
+ *
+ * We also include a true negative in cases where the reference allele is found in both the truthset and callset.
+ *
+ * We have no HET_VAR2_VAR3 case, as VAR2/VAR3 are simply symbolic, and so we can change HET_VAR2_VAR3 into the HET_VAR3_VAR4 case.
+ *
+ * In this (the default) scheme
+ *
+ * Finally, we have NA cases, which represent tuples that our code can and should not reach.
+ */
+
+public class GA4GHScheme extends GenotypeConcordanceScheme{
+    @Override
+    protected void initiateScheme() {
+        /**          ROW STATE            MISSING       HOM_REF       HET_REF_VAR1       HET_VAR1_VAR2        HOM_VAR1        NO_CALL        LOW_GQ        LOW_DP        VC_FILTERED   GT_FILTERED   IS_MIXED    **/
+        addRow(CallState.MISSING,         NA,           TN_ONLY,      TN_FN,             FN_ONLY,             FN_ONLY,        EMPTY,         EMPTY,        EMPTY,        EMPTY,        EMPTY,        EMPTY);
+        addRow(CallState.HOM_REF,         TN_ONLY,      TN_ONLY,      TN_FN,             FN_ONLY,             FN_ONLY,        EMPTY,         EMPTY,        EMPTY,        EMPTY,        EMPTY,        EMPTY);
+        addRow(CallState.HET_REF_VAR1,    FP_TN,        FP_TN,        TP_TN,             TP_FN,               TP_FN,          EMPTY,         EMPTY,        EMPTY,        EMPTY,        EMPTY,        EMPTY);
+        addRow(CallState.HET_REF_VAR2,    NA,           NA,           FP_TN_FN,          NA,                  FP_FN,          NA,            NA,           NA,           NA,           NA,           NA);
+        addRow(CallState.HET_REF_VAR3,    NA,           NA,           NA,                FP_FN,               NA,             NA,            NA,           NA,           NA,           NA,           NA);
+        addRow(CallState.HET_VAR1_VAR2,   FP_ONLY,      FP_ONLY,      TP_FP,             TP_ONLY,             TP_FP_FN,       EMPTY,         EMPTY,        EMPTY,        EMPTY,        EMPTY,        EMPTY);
+        addRow(CallState.HET_VAR1_VAR3,   NA,           NA,           NA,                TP_FP_FN,            NA,             NA,            NA,           NA,           NA,           NA,           NA);
+        addRow(CallState.HET_VAR3_VAR4,   FP_ONLY,      FP_ONLY,      FP_FN,             FP_FN,               FP_FN,          NA,            NA,           NA,           NA,           NA,           NA);
+        addRow(CallState.HOM_VAR1,        FP_ONLY,      FP_ONLY,      TP_FP,             TP_FN,               TP_ONLY,        EMPTY,         EMPTY,        EMPTY,        EMPTY,        EMPTY,        EMPTY);
+        addRow(CallState.HOM_VAR2,        NA,           NA,           FP_FN,             TP_FN,               FP_FN,          NA,            NA,           NA,           NA,           NA,           NA);
+        addRow(CallState.HOM_VAR3,        NA,           NA,           NA,                FP_FN,               NA,             NA,            NA,           NA,           NA,           NA,           NA);
+        addRow(CallState.NO_CALL,         EMPTY,        EMPTY,        EMPTY,             EMPTY,               EMPTY,          EMPTY,         EMPTY,        EMPTY,        EMPTY,        EMPTY,        EMPTY);
+        addRow(CallState.VC_FILTERED,     EMPTY,        TN_ONLY,      TN_FN,             FN_ONLY,             FN_ONLY,        EMPTY,         EMPTY,        EMPTY,        EMPTY,        EMPTY,        EMPTY);
+        addRow(CallState.GT_FILTERED,     EMPTY,        TN_ONLY,      TN_FN,             FN_ONLY,             FN_ONLY,        EMPTY,         EMPTY,        EMPTY,        EMPTY,        EMPTY,        EMPTY);
+        addRow(CallState.LOW_GQ,          EMPTY,        TN_ONLY,      TN_FN,             FN_ONLY,             FN_ONLY,        EMPTY,         EMPTY,        EMPTY,        EMPTY,        EMPTY,        EMPTY);
+        addRow(CallState.LOW_DP,          EMPTY,        TN_ONLY,      TN_FN,             FN_ONLY,             FN_ONLY,        EMPTY,         EMPTY,        EMPTY,        EMPTY,        EMPTY,        EMPTY);
+        addRow(CallState.IS_MIXED,        EMPTY,        EMPTY,        EMPTY,             EMPTY,               EMPTY,          EMPTY,         EMPTY,        EMPTY,        EMPTY,        EMPTY,        EMPTY);
+    }
+}
+
diff --git a/src/java/picard/vcf/GA4GHSchemeWithMissingAsHomRef.java b/src/java/picard/vcf/GA4GHSchemeWithMissingAsHomRef.java
new file mode 100644
index 0000000..c75d91b
--- /dev/null
+++ b/src/java/picard/vcf/GA4GHSchemeWithMissingAsHomRef.java
@@ -0,0 +1,58 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2015 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.vcf;
+
+import picard.PicardException;
+import picard.vcf.GenotypeConcordanceStates.*;
+
+/**
+ * The default scheme is derived from the GA4GH Benchmarking Work Group's proposed evaluation scheme. This scheme has been edited to count MISSING
+ * sites in the truth set differently for use with truth sets where the HOM_REF sites are not included in the data set. The MISSING truth sites
+ * are called like they are HOM_REF sites.
+ */
+
+public class GA4GHSchemeWithMissingAsHomRef extends GenotypeConcordanceScheme{
+    @Override
+    protected void initiateScheme() {
+        /**          ROW STATE            MISSING       HOM_REF       HET_REF_VAR1       HET_VAR1_VAR2        HOM_VAR1        NO_CALL        LOW_GQ        LOW_DP        VC_FILTERED   GT_FILTERED   IS_MIXED    **/
+        addRow(CallState.MISSING,         TN_ONLY,      TN_ONLY,      TN_FN,             FN_ONLY,             FN_ONLY,        EMPTY,         EMPTY,        EMPTY,        EMPTY,        EMPTY,        EMPTY);
+        addRow(CallState.HOM_REF,         TN_ONLY,      TN_ONLY,      TN_FN,             FN_ONLY,             FN_ONLY,        EMPTY,         EMPTY,        EMPTY,        EMPTY,        EMPTY,        EMPTY);
+        addRow(CallState.HET_REF_VAR1,    FP_TN,        FP_TN,        TP_TN,             TP_FN,               TP_FN,          EMPTY,         EMPTY,        EMPTY,        EMPTY,        EMPTY,        EMPTY);
+        addRow(CallState.HET_REF_VAR2,    NA,           NA,           FP_TN_FN,          NA,                  FP_FN,          NA,            NA,           NA,           NA,           NA,           NA);
+        addRow(CallState.HET_REF_VAR3,    NA,           NA,           NA,                FP_FN,               NA,             NA,            NA,           NA,           NA,           NA,           NA);
+        addRow(CallState.HET_VAR1_VAR2,   FP_ONLY,      FP_ONLY,      TP_FP,             TP_ONLY,             TP_FP_FN,       EMPTY,         EMPTY,        EMPTY,        EMPTY,        EMPTY,        EMPTY);
+        addRow(CallState.HET_VAR1_VAR3,   NA,           NA,           NA,                TP_FP_FN,            NA,             NA,            NA,           NA,           NA,           NA,           NA);
+        addRow(CallState.HET_VAR3_VAR4,   FP_ONLY,      FP_ONLY,      FP_FN,             FP_FN,               FP_FN,          NA,            NA,           NA,           NA,           NA,           NA);
+        addRow(CallState.HOM_VAR1,        FP_ONLY,      FP_ONLY,      TP_FP,             TP_FN,               TP_ONLY,        EMPTY,         EMPTY,        EMPTY,        EMPTY,        EMPTY,        EMPTY);
+        addRow(CallState.HOM_VAR2,        NA,           NA,           FP_FN,             TP_FN,               FP_FN,          NA,            NA,           NA,           NA,           NA,           NA);
+        addRow(CallState.HOM_VAR3,        NA,           NA,           NA,                FP_FN,               NA,             NA,            NA,           NA,           NA,           NA,           NA);
+        addRow(CallState.NO_CALL,         EMPTY,        EMPTY,        EMPTY,             EMPTY,               EMPTY,          EMPTY,         EMPTY,        EMPTY,        EMPTY,        EMPTY,        EMPTY);
+        addRow(CallState.VC_FILTERED,     TN_ONLY,      TN_ONLY,      TN_FN,             FN_ONLY,             FN_ONLY,        EMPTY,         EMPTY,        EMPTY,        EMPTY,        EMPTY,        EMPTY);
+        addRow(CallState.GT_FILTERED,     TN_ONLY,      TN_ONLY,      TN_FN,             FN_ONLY,             FN_ONLY,        EMPTY,         EMPTY,        EMPTY,        EMPTY,        EMPTY,        EMPTY);
+        addRow(CallState.LOW_GQ,          TN_ONLY,      TN_ONLY,      TN_FN,             FN_ONLY,             FN_ONLY,        EMPTY,         EMPTY,        EMPTY,        EMPTY,        EMPTY,        EMPTY);
+        addRow(CallState.LOW_DP,          TN_ONLY,      TN_ONLY,      TN_FN,             FN_ONLY,             FN_ONLY,        EMPTY,         EMPTY,        EMPTY,        EMPTY,        EMPTY,        EMPTY);
+        addRow(CallState.IS_MIXED,        EMPTY,        EMPTY,        EMPTY,             EMPTY,               EMPTY,          EMPTY,         EMPTY,        EMPTY,        EMPTY,        EMPTY,        EMPTY);
+    }
+}
diff --git a/src/java/picard/vcf/GatherVcfs.java b/src/java/picard/vcf/GatherVcfs.java
new file mode 100644
index 0000000..0334a40
--- /dev/null
+++ b/src/java/picard/vcf/GatherVcfs.java
@@ -0,0 +1,270 @@
+package picard.vcf;
+
+import htsjdk.samtools.util.BlockCompressedInputStream;import htsjdk.samtools.util.BlockCompressedOutputStream;import htsjdk.samtools.util.BlockCompressedStreamConstants;import htsjdk.samtools.util.CloseableIterator;import htsjdk.samtools.util.CloserUtil;import htsjdk.samtools.util.CollectionUtil;import htsjdk.samtools.util.RuntimeIOException;import picard.PicardException;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.PeekableIterator;
+import htsjdk.samtools.util.ProgressLogger;
+import htsjdk.samtools.SAMSequenceDictionary;
+import htsjdk.variant.variantcontext.VariantContext;
+import htsjdk.variant.variantcontext.VariantContextComparator;
+import htsjdk.variant.variantcontext.writer.Options;
+import htsjdk.variant.variantcontext.writer.VariantContextWriter;
+import htsjdk.variant.variantcontext.writer.VariantContextWriterFactory;
+import htsjdk.variant.vcf.VCFFileReader;
+import htsjdk.variant.vcf.VCFHeader;
+import picard.cmdline.programgroups.VcfOrBcf;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.lang.IllegalArgumentException;import java.lang.IllegalStateException;import java.lang.Override;import java.lang.String;import java.util.EnumSet;
+import java.util.List;
+import java.util.SortedSet;
+import java.util.TreeSet;
+
+/**
+ * Simple little class that combines multiple VCFs that have exactly the same set of samples
+ * and totally discrete sets of loci.
+ *
+ * @author Tim Fennell
+ */
+ at CommandLineProgramProperties(
+        usage = "Gathers multiple VCF files from a scatter operation into a single VCF file. Input files " +
+                "must be supplied in genomic order and must not have events at overlapping positions.",
+        usageShort = "Gathers multiple VCF files from a scatter operation into a single VCF file",
+        programGroup = VcfOrBcf.class
+)
+public class GatherVcfs extends CommandLineProgram {
+
+    @Option(shortName=StandardOptionDefinitions.INPUT_SHORT_NAME,  doc="Input VCF file(s).")
+	public List<File> INPUT;
+
+    @Option(shortName=StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc="Output VCF file.")
+	public File OUTPUT;
+
+    private static final Log log = Log.getInstance(GatherVcfs.class);
+
+    public static void main(final String[] args) {
+        new GatherVcfs().instanceMainWithExit(args);
+    }
+
+    public GatherVcfs() {
+        CREATE_INDEX = true;
+    }
+
+    @Override
+    protected int doWork() {
+        log.info("Checking inputs.");
+        INPUT = IOUtil.unrollFiles(INPUT, IOUtil.VCF_EXTENSIONS);
+        for (final File f: INPUT) IOUtil.assertFileIsReadable(f);
+        IOUtil.assertFileIsWritable(OUTPUT);
+
+		final SAMSequenceDictionary sequenceDictionary = VCFFileReader.getSequenceDictionary(INPUT.get(0));
+
+        if (CREATE_INDEX && sequenceDictionary == null) {
+            throw new PicardException("In order to index the resulting VCF input VCFs must contain ##contig lines.");
+        }
+
+        log.info("Checking file headers and first records to ensure compatibility.");
+        assertSameSamplesAndValidOrdering(INPUT);
+
+        if (areAllBlockCompressed(INPUT) && areAllBlockCompressed(CollectionUtil.makeList(OUTPUT))) {
+            log.info("Gathering by copying gzip blocks. Will not be able to validate position non-overlap of files.");
+            if (CREATE_INDEX) log.warn("Index creation not currently supported when gathering block compressed VCFs.");
+            gatherWithBlockCopying(INPUT, OUTPUT);
+        }
+        else {
+            log.info("Gathering by conventional means.");
+            gatherConventionally(sequenceDictionary, CREATE_INDEX, INPUT, OUTPUT);
+        }
+
+        return 0;
+    }
+
+    /** Checks (via filename checking) that all files appear to be block compressed files. */
+    private boolean areAllBlockCompressed(final List<File> input) {
+        for (final File f : input) {
+            if (VariantContextWriterFactory.isBCFOutput(f) || !VariantContextWriterFactory.isCompressedVcf(f)) return false;
+        }
+
+        return true;
+    }
+
+    /** Validates that all headers contain the same set of genotyped samples and that files are in order by position of first record. */
+    private static void assertSameSamplesAndValidOrdering(final List<File> inputFiles) {
+        final VCFHeader header = new VCFFileReader(inputFiles.get(0), false).getFileHeader();
+        final SAMSequenceDictionary dict = header.getSequenceDictionary();
+        final VariantContextComparator comparator = new VariantContextComparator(header.getSequenceDictionary());
+        final List<String> samples = header.getGenotypeSamples();
+
+        File lastFile = null;
+        VariantContext lastContext = null;
+
+        for (final File f : inputFiles) {
+            final VCFFileReader in = new VCFFileReader(f, false);
+            dict.assertSameDictionary(in.getFileHeader().getSequenceDictionary());
+            final List<String> theseSamples = in.getFileHeader().getGenotypeSamples();
+
+            if (!samples.equals(theseSamples)) {
+                final SortedSet<String> s1 = new TreeSet<String>(samples);
+                final SortedSet<String> s2 = new TreeSet<String>(theseSamples);
+                s1.removeAll(theseSamples);
+                s2.removeAll(samples);
+
+                throw new IllegalArgumentException("VCFs do not have identical sample lists." +
+                        " Samples unique to first file: " + s1 + ". Samples unique to " + f.getAbsolutePath() + ": " + s2 + ".");
+            }
+
+            final CloseableIterator<VariantContext> variantIterator = in.iterator();
+            if (variantIterator.hasNext()) {
+                final VariantContext currentContext = variantIterator.next();
+                if (lastContext != null) {
+                    if (comparator.compare(lastContext, currentContext) >= 0) {
+                        throw new IllegalArgumentException("First record in file " + f.getAbsolutePath() + " is not after first record in " +
+                                "previous file " + lastFile.getAbsolutePath());
+                    }
+                }
+
+                lastContext = currentContext;
+                lastFile    = f;
+            }
+
+            CloserUtil.close(in);
+        }
+    }
+
+    /** Code for gathering multiple VCFs that works regardless of input format and output format, but can be slow. */
+    private static void gatherConventionally(final SAMSequenceDictionary sequenceDictionary,
+                                      final boolean createIndex,
+                                      final List<File> inputFiles,
+                                      final File outputFile) {
+        final EnumSet<Options> options = EnumSet.copyOf(VariantContextWriterFactory.DEFAULT_OPTIONS);
+        if (createIndex) options.add(Options.INDEX_ON_THE_FLY); else options.remove(Options.INDEX_ON_THE_FLY);
+        final VariantContextWriter out = VariantContextWriterFactory.create(outputFile, sequenceDictionary, options);
+
+        final ProgressLogger progress = new ProgressLogger(log, 10000);
+        VariantContext lastContext = null;
+        File lastFile = null;
+        VCFHeader firstHeader = null;
+        VariantContextComparator comparator = null;
+
+        for (final File f : inputFiles) {
+            log.debug("Gathering from file: ", f.getAbsolutePath());
+            final VCFFileReader variantReader = new VCFFileReader(f, false);
+            final PeekableIterator<VariantContext> variantIterator = new PeekableIterator<VariantContext>(variantReader.iterator());
+            final VCFHeader header = variantReader.getFileHeader();
+
+            if (firstHeader == null) {
+                firstHeader = header;
+                out.writeHeader(firstHeader);
+                comparator = new VariantContextComparator(firstHeader.getContigLines());
+            }
+
+            if (lastContext != null && variantIterator.hasNext()) {
+                final VariantContext vc = variantIterator.peek();
+                if (comparator.compare(vc, lastContext) <= 0) {
+                    throw new IllegalStateException("First variant in file " + f.getAbsolutePath() + " is at " + vc.getSource() +
+                            " but last variant in earlier file " + lastFile.getAbsolutePath() + " is at " + lastContext.getSource());
+                }
+            }
+
+            while (variantIterator.hasNext()) {
+                lastContext = variantIterator.next();
+                out.add(lastContext);
+                progress.record(lastContext.getChr(), lastContext.getStart());
+            }
+
+            lastFile = f;
+
+            CloserUtil.close(variantIterator);
+            CloserUtil.close(variantReader);
+        }
+
+        out.close();
+    }
+
+    /**
+     * Assumes that all inputs and outputs are block compressed VCF files and copies them without decompressing and parsing
+     * most of the gzip blocks. Will decompress and parse blocks up to the one containing the end of the header in each file
+     * (often the first block) and re-compress any data remaining in that block into a new block in the output file. Subsequent
+     * blocks (excluding a terminator block if present) are copied directly from input to output.
+     */
+    private static void gatherWithBlockCopying(final List<File> vcfs, final File output) {
+        try {
+            final FileOutputStream out = new FileOutputStream(output);
+            boolean isFirstFile = true;
+
+            for (final File f : vcfs) {
+                log.info("Gathering " + f.getAbsolutePath());
+                final FileInputStream in = new FileInputStream(f);
+
+                // a) It's good to check that the end of the file is valid and b) we need to know if there's a terminator block and not copy it
+                final BlockCompressedInputStream.FileTermination term = BlockCompressedInputStream.checkTermination(f);
+                if (term == BlockCompressedInputStream.FileTermination.DEFECTIVE) throw new PicardException(f.getAbsolutePath() + " does not have a valid GZIP block at the end of the file.");
+
+                if (!isFirstFile) {
+                    final BlockCompressedInputStream blockIn = new BlockCompressedInputStream(in, false);
+                    boolean lastByteNewline = true;
+
+                    while (in.available() > 0) {
+                        // Read a block - blockIn.available() is guaranteed to return the bytes remaining in the block that has been
+                        // read, and since we haven't consumed any yet, that is the block size.
+                        final int blockLength = blockIn.available();
+                        final byte[] blockContents = new byte[blockLength];
+                        final int read = blockIn.read(blockContents);
+                        if (blockLength == 0 || read != blockLength) throw new IllegalStateException("Could not read available bytes from BlockCompressedInputStream.");
+
+                        // Scan forward within the block to see if we can find the end of the header within this block
+                        int firstNonHeaderByteIndex = -1;
+                        for (int i=0; i<read; ++i) {
+                            final byte b = blockContents[i];
+                            final boolean thisByteNewline = (b == '\n' || b == '\r');
+
+                            if (lastByteNewline && !thisByteNewline && b != '#') {
+                                // Aha!  Found first byte of non-header data in file!
+                                firstNonHeaderByteIndex = i;
+                                break;
+                            }
+
+                            lastByteNewline = thisByteNewline;
+                        }
+
+                        // If we found the end of the header then write the remainder of this block out as a
+                        // new gzip block and then break out of the while loop
+                        if (firstNonHeaderByteIndex >= 0) {
+                            final BlockCompressedOutputStream blockOut = new BlockCompressedOutputStream(out, null);
+                            blockOut.write(blockContents, firstNonHeaderByteIndex, blockContents.length - firstNonHeaderByteIndex);
+                            blockOut.flush();
+                            // Don't close blockOut because closing underlying stream would break everything
+                            break;
+                        }
+                    }
+                }
+
+                // Copy remainder of input stream into output stream
+                final long currentPos = in.getChannel().position();
+                final long length     = f.length();
+                final long skipLast   = (term == BlockCompressedInputStream.FileTermination.HAS_TERMINATOR_BLOCK) ?
+                        BlockCompressedStreamConstants.EMPTY_GZIP_BLOCK.length : 0;
+                final long bytesToWrite = length - skipLast - currentPos;
+
+                IOUtil.transferByStream(in, out, bytesToWrite);
+                in.close();
+                isFirstFile = false;
+            }
+
+            // And lastly add the Terminator block and close up
+            out.write(BlockCompressedStreamConstants.EMPTY_GZIP_BLOCK);
+            out.close();
+        }
+        catch (final IOException ioe) {
+            throw new RuntimeIOException(ioe);
+        }
+    }
+}
diff --git a/src/java/picard/vcf/GenotypeConcordance.java b/src/java/picard/vcf/GenotypeConcordance.java
new file mode 100644
index 0000000..ca15069
--- /dev/null
+++ b/src/java/picard/vcf/GenotypeConcordance.java
@@ -0,0 +1,654 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2015 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.vcf;
+
+import htsjdk.samtools.SAMSequenceDictionary;
+import htsjdk.samtools.metrics.MetricsFile;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.IntervalList;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.PeekableIterator;
+import htsjdk.samtools.util.ProgressLogger;
+import htsjdk.samtools.util.SequenceUtil;
+import htsjdk.tribble.Tribble;
+import htsjdk.variant.variantcontext.Genotype;
+import htsjdk.variant.variantcontext.VariantContext;
+import htsjdk.variant.variantcontext.VariantContextComparator;
+import htsjdk.variant.vcf.VCFFileReader;
+import picard.PicardException;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.VcfOrBcf;
+import picard.vcf.GenotypeConcordanceStates.*;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import static htsjdk.variant.variantcontext.VariantContext.Type.*;
+
+/**
+ * Calculates the concordance between genotype data for two samples in two different VCFs - one being considered the truth (or reference)
+ * the other being the call.  The concordance is broken into separate results sections for SNPs and indels.  Summary and detailed statistics
+ * are reported
+ *
+ * @author Tim Fennell
+ * @author George Grant
+ */
+ at CommandLineProgramProperties(
+        usage = "Calculates the concordance between genotype data for two samples in two different VCFs - one being considered the truth (or reference) " +
+                "the other being considered the call.  The concordance is broken into separate results sections for SNPs and indels.  Summary and detailed statistics are reported\n\n" +
+                "Note that for any pair of variants to compare, only the alleles for the samples under interrogation are considered " +
+                "and MNP, Symbolic, and Mixed classes of variants are not included.",
+        usageShort = "Calculates the concordance between genotype data for two samples in two different VCFs",
+        programGroup = VcfOrBcf.class
+)
+public class GenotypeConcordance extends CommandLineProgram {
+    @Option(shortName = "TV", doc="The VCF containing the truth sample")
+    public File TRUTH_VCF;
+
+    @Option(shortName = "CV", doc="The VCF containing the call sample")
+    public File CALL_VCF;
+
+    @Option(shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc = "Basename for the two metrics files that are to be written." +
+            " Resulting files will be <OUTPUT>" + SUMMARY_METRICS_FILE_EXTENSION + "  and <OUTPUT>" + DETAILED_METRICS_FILE_EXTENSION + ".")
+    public File OUTPUT;
+
+    @Option(shortName = "TS", doc="The name of the truth sample within the truth VCF")
+    public String TRUTH_SAMPLE;
+
+    @Option(shortName = "CS", doc="The name of the call sample within the call VCF")
+    public String CALL_SAMPLE;
+
+    @Option(doc="One or more interval list files that will be used to limit the genotype concordance.  Note - if intervals are specified, the VCF files must be indexed.")
+    public List<File> INTERVALS;
+
+    @Option(doc="If true, multiple interval lists will be intersected. If false multiple lists will be unioned.")
+    public boolean INTERSECT_INTERVALS = true;
+
+    @Option(doc="Genotypes below this genotype quality will have genotypes classified as LowGq.")
+    public int MIN_GQ = 0;
+
+    @Option(doc="Genotypes below this depth will have genotypes classified as LowDp.")
+    public int MIN_DP = 0;
+
+    @Option(doc="If true, output all rows in detailed statistics even when count == 0.  When false only output rows with non-zero counts.")
+    public boolean OUTPUT_ALL_ROWS = false;
+
+    @Option(doc="If true, use the VCF index, else iterate over the entire VCF.", optional = true)
+    public boolean USE_VCF_INDEX = false;
+
+    @Option(shortName = "MISSING_HOM", doc="Default is false, which follows the GA4GH Scheme. If true, missing sites in the truth set will be " +
+            "treated as HOM_REF sites and sites missing in both the truth and call sets will be true negatives. Useful when hom ref sites are left out of the truth set. " +
+            "This flag can only be used with a high confidence interval list.")
+    public boolean MISSING_SITES_HOM_REF = false;
+
+    private final Log log = Log.getInstance(GenotypeConcordance.class);
+    private final ProgressLogger progress = new ProgressLogger(log, 10000, "checked", "variants");
+
+    public static final String SUMMARY_METRICS_FILE_EXTENSION = ".genotype_concordance_summary_metrics";
+    public static final String DETAILED_METRICS_FILE_EXTENSION = ".genotype_concordance_detail_metrics";
+    public static final String CONTINGENCY_METRICS_FILE_EXTENSION = ".genotype_concordance_contingency_metrics";
+
+    protected GenotypeConcordanceCounts snpCounter;
+    public GenotypeConcordanceCounts getSnpCounter() { return snpCounter; }
+
+    protected GenotypeConcordanceCounts indelCounter;
+    public GenotypeConcordanceCounts getIndelCounter() { return indelCounter; }
+
+    // TODO: add optimization if the samples are in the same file
+    // TODO: add option for auto-detect pairs based on same sample name
+    // TODO: allow multiple sample-pairs in one pass
+
+    public static void main(final String[] args) {
+        new GenotypeConcordance().instanceMainWithExit(args);
+    }
+
+    @Override
+    protected String[] customCommandLineValidation() {
+        // Note - If the user specifies to use INTERVALS, the code will fail if the vcfs are not indexed, so we set USE_VCF_INDEX to true and check that the vcfs are indexed.
+        IOUtil.assertFileIsReadable(TRUTH_VCF);
+        IOUtil.assertFileIsReadable(CALL_VCF);
+        final boolean usingIntervals = this.INTERVALS != null && this.INTERVALS.size() > 0;
+        final List<String> errors = new ArrayList<String>();
+        if (usingIntervals) {
+            USE_VCF_INDEX = true;
+        }
+        if (USE_VCF_INDEX) {
+            // Index file is required either because we are using intervals, or because user-set parameter
+            if (!indexExists(TRUTH_VCF)) {
+                errors.add("The index file was not found for the TRUTH VCF.  Note that if intervals are specified, the VCF files must be indexed.");
+            }
+            if (!indexExists(CALL_VCF)) {
+                errors.add("The index file was not found for the CALL VCF.  Note that if intervals are specified, the VCF files must be indexed.");
+            }
+        }
+        if (MISSING_SITES_HOM_REF) {
+            //If you are using this flag you must include a high confidence interval list where missing sites are hom_ref.
+            if (!usingIntervals){
+                errors.add("You cannot use the MISSING_HOM option without also supplying an interval list over which missing " +
+                        "sites are considered confident homozygous reference calls.");
+            }
+        }
+
+        if (errors.isEmpty()) {
+            return null;
+        } else {
+            return errors.toArray(new String[errors.size()]);
+        }
+    }
+
+    /**
+     * Determines whether an index file exists for the given vcf file using standard extension suffixes
+     *
+     * @param vcf  the vcf file to investigate
+     * @return true if an index file exists, false otherwise
+     */
+    private boolean indexExists(final File vcf) {
+        return Tribble.indexFile(vcf).exists() || Tribble.tabixIndexFile(vcf).exists();
+    }
+
+    @Override protected int doWork() {
+        final File summaryMetricsFile = new File(OUTPUT + SUMMARY_METRICS_FILE_EXTENSION);
+        final File detailedMetricsFile = new File(OUTPUT + DETAILED_METRICS_FILE_EXTENSION);
+        final File contingencyMetricsFile = new File(OUTPUT + CONTINGENCY_METRICS_FILE_EXTENSION);
+        IOUtil.assertFileIsWritable(summaryMetricsFile);
+        IOUtil.assertFileIsWritable(detailedMetricsFile);
+        IOUtil.assertFileIsWritable(contingencyMetricsFile);
+
+        final boolean usingIntervals = this.INTERVALS != null && this.INTERVALS.size() > 0;
+        IntervalList intervals = null;
+        SAMSequenceDictionary intervalsSamSequenceDictionary = null;
+        if (usingIntervals) {
+            log.info("Starting to load intervals list(s).");
+            long genomeBaseCount = 0;
+            for (final File f : INTERVALS) {
+                IOUtil.assertFileIsReadable(f);
+                final IntervalList tmpIntervalList = IntervalList.fromFile(f);
+                if (genomeBaseCount == 0) {         // Don't count the reference length more than once.
+                    intervalsSamSequenceDictionary = tmpIntervalList.getHeader().getSequenceDictionary();
+                    genomeBaseCount = intervalsSamSequenceDictionary.getReferenceLength();
+                }
+
+                if (intervals == null)        intervals = tmpIntervalList;
+                else if (INTERSECT_INTERVALS) intervals = IntervalList.intersection(intervals, tmpIntervalList);
+                else intervals =              IntervalList.union(intervals, tmpIntervalList);
+            }
+            if (intervals != null) {
+                intervals = intervals.uniqued();
+            }
+            log.info("Finished loading up intervals list(s).");
+        }
+        final VCFFileReader truthReader = new VCFFileReader(TRUTH_VCF, USE_VCF_INDEX);
+        final VCFFileReader callReader = new VCFFileReader(CALL_VCF, USE_VCF_INDEX);
+
+        // Check that the samples actually exist in the files!
+        if (!truthReader.getFileHeader().getGenotypeSamples().contains(TRUTH_SAMPLE)) {
+            throw new PicardException("File " + TRUTH_VCF.getAbsolutePath() + " does not contain genotypes for sample " + TRUTH_SAMPLE);
+        }
+        if (!callReader.getFileHeader().getGenotypeSamples().contains(CALL_SAMPLE)) {
+            throw new PicardException("File " + CALL_VCF.getAbsolutePath() + " does not contain genotypes for sample " + CALL_SAMPLE);
+        }
+
+        // Verify that both VCFs have the same Sequence Dictionary
+        SequenceUtil.assertSequenceDictionariesEqual(truthReader.getFileHeader().getSequenceDictionary(), callReader.getFileHeader().getSequenceDictionary());
+
+        if (usingIntervals) {
+            // If using intervals, verify that the sequence dictionaries agree with those of the VCFs
+            SequenceUtil.assertSequenceDictionariesEqual(intervalsSamSequenceDictionary, truthReader.getFileHeader().getSequenceDictionary());
+        }
+
+        // Build the pair of iterators over the regions of interest
+        final Iterator<VariantContext> truthIterator, callIterator;
+        if (usingIntervals) {
+            truthIterator = new ByIntervalListVariantContextIterator(truthReader, intervals);
+            callIterator = new ByIntervalListVariantContextIterator(callReader, intervals);
+        }
+        else {
+            truthIterator = truthReader.iterator();
+            callIterator = callReader.iterator();
+        }
+
+        // Now do the iteration and count things up
+        final PairedVariantSubContextIterator pairedIterator = new PairedVariantSubContextIterator(truthIterator, TRUTH_SAMPLE, callIterator, CALL_SAMPLE, truthReader.getFileHeader().getSequenceDictionary());
+        snpCounter   = new GenotypeConcordanceCounts();
+        indelCounter = new GenotypeConcordanceCounts();
+
+        // A map to keep track of the count of Truth/Call States which we could not successfully classify
+        final Map<String, Integer> unClassifiedStatesMap = new HashMap<String, Integer>();
+
+        log.info("Starting iteration over variants.");
+        while (pairedIterator.hasNext()) {
+            final VcTuple tuple = pairedIterator.next();
+
+            final VariantContext.Type truthVariantContextType = tuple.truthVariantContext != null ? tuple.truthVariantContext.getType() : NO_VARIATION;
+            final VariantContext.Type callVariantContextType =  tuple.callVariantContext != null ? tuple.callVariantContext.getType() : NO_VARIATION;
+
+            // A flag to keep track of whether we have been able to successfully classify the Truth/Call States.
+            // Unclassified include MIXED/MNP/Symbolic...
+            boolean stateClassified = false;
+            final TruthAndCallStates truthAndCallStates = determineState(tuple.truthVariantContext, TRUTH_SAMPLE, tuple.callVariantContext, CALL_SAMPLE, MIN_GQ, MIN_DP);
+            if (truthVariantContextType == SNP) {
+                if ((callVariantContextType == SNP) || (callVariantContextType == MIXED) || (callVariantContextType == NO_VARIATION)) {
+                    // Note.  If truth is SNP and call is MIXED, the event will be logged in the indelCounter, with row = MIXED
+                    snpCounter.increment(truthAndCallStates);
+                    stateClassified = true;
+                }
+            }
+            else if (truthVariantContextType == INDEL) {
+                // Note.  If truth is Indel and call is MIXED, the event will be logged in the indelCounter, with row = MIXED
+                if ((callVariantContextType == INDEL) || (callVariantContextType == MIXED) || (callVariantContextType == NO_VARIATION)) {
+                    indelCounter.increment(truthAndCallStates);
+                    stateClassified = true;
+                }
+            }
+            else if (truthVariantContextType == MIXED) {
+                // Note.  If truth is MIXED and call is SNP, the event will be logged in the snpCounter, with column = MIXED
+                if (callVariantContextType == SNP) {
+                    snpCounter.increment(truthAndCallStates);
+                    stateClassified = true;
+                }
+                // Note.  If truth is MIXED and call is INDEL, the event will be logged in the snpCounter, with column = MIXED
+                else if (callVariantContextType == INDEL) {
+                    indelCounter.increment(truthAndCallStates);
+                    stateClassified = true;
+                }
+            }
+            else if (truthVariantContextType == NO_VARIATION) {
+                if (callVariantContextType == SNP) {
+                    snpCounter.increment(truthAndCallStates);
+                    stateClassified = true;
+                }
+                else if (callVariantContextType == INDEL) {
+                    indelCounter.increment(truthAndCallStates);
+                    stateClassified = true;
+                }
+            }
+            if (!stateClassified) {
+                final String condition = truthVariantContextType + " " + callVariantContextType;
+                Integer count = unClassifiedStatesMap.get(condition);
+                if (count == null) count = 0;
+                unClassifiedStatesMap.put(condition, ++count);
+            }
+
+            final VariantContext variantContextForLogging = tuple.truthVariantContext != null ? tuple.truthVariantContext : tuple.callVariantContext;
+            progress.record(variantContextForLogging.getContig(), variantContextForLogging.getStart());
+        }
+
+        //snp counter add in X number of missing-missing hom ref's (truth and call state)
+        //missing missing is total interval size minus number of iterations in while loop
+        if (MISSING_SITES_HOM_REF) {
+            //need to know size of intervals to add missing-missing sites for NIST schema.
+            final long intervalBaseCount = intervals.getBaseCount();
+            addMissingTruthAndMissingCallStates(snpCounter.getCounterSize(), intervalBaseCount, snpCounter);
+            addMissingTruthAndMissingCallStates(indelCounter.getCounterSize(), intervalBaseCount, indelCounter);
+        }
+
+        // Calculate and store the summary-level metrics
+        final MetricsFile<GenotypeConcordanceSummaryMetrics,?> genotypeConcordanceSummaryMetricsFile = getMetricsFile();
+        GenotypeConcordanceSummaryMetrics summaryMetrics = new GenotypeConcordanceSummaryMetrics(SNP, snpCounter, TRUTH_SAMPLE, CALL_SAMPLE, MISSING_SITES_HOM_REF);
+        genotypeConcordanceSummaryMetricsFile.addMetric(summaryMetrics);
+        summaryMetrics = new GenotypeConcordanceSummaryMetrics(INDEL, indelCounter, TRUTH_SAMPLE, CALL_SAMPLE, MISSING_SITES_HOM_REF);
+        genotypeConcordanceSummaryMetricsFile.addMetric(summaryMetrics);
+        genotypeConcordanceSummaryMetricsFile.write(summaryMetricsFile);
+
+        // Calculate and store the detailed metrics for both SNP and indels
+        final MetricsFile<GenotypeConcordanceDetailMetrics,?> genotypeConcordanceDetailMetrics = getMetricsFile();
+        outputDetailMetricsFile(SNP, genotypeConcordanceDetailMetrics, snpCounter, TRUTH_SAMPLE, CALL_SAMPLE);
+        outputDetailMetricsFile(INDEL, genotypeConcordanceDetailMetrics, indelCounter, TRUTH_SAMPLE, CALL_SAMPLE);
+        genotypeConcordanceDetailMetrics.write(detailedMetricsFile);
+
+        // Calculate and score the contingency metrics
+        final MetricsFile<GenotypeConcordanceContingencyMetrics,?> genotypeConcordanceContingencyMetricsFile = getMetricsFile();
+        GenotypeConcordanceContingencyMetrics contingencyMetrics = new GenotypeConcordanceContingencyMetrics(SNP, snpCounter, TRUTH_SAMPLE, CALL_SAMPLE, MISSING_SITES_HOM_REF);
+        genotypeConcordanceContingencyMetricsFile.addMetric(contingencyMetrics);
+        contingencyMetrics = new GenotypeConcordanceContingencyMetrics(INDEL, indelCounter, TRUTH_SAMPLE, CALL_SAMPLE, MISSING_SITES_HOM_REF);
+        genotypeConcordanceContingencyMetricsFile.addMetric(contingencyMetrics);
+        genotypeConcordanceContingencyMetricsFile.write(contingencyMetricsFile);
+
+        for (final String condition : unClassifiedStatesMap.keySet()) {
+            log.info("Uncovered truth/call Variant Context Type Counts: " + condition + " " + unClassifiedStatesMap.get(condition));
+        }
+
+        return 0;
+    }
+
+    /**
+     * Method to add missing sites that are KNOWN to be HOM_REF in the case of the NIST truth data set.
+     */
+    private void addMissingTruthAndMissingCallStates(final double numVariants, final long intervalBaseCount, final GenotypeConcordanceCounts counter){
+        final double countMissingMissing = intervalBaseCount-numVariants;
+        final TruthAndCallStates missingMissing = new TruthAndCallStates(TruthState.MISSING, CallState.MISSING);
+        counter.increment(missingMissing, countMissingMissing);
+    }
+
+    /**
+    * Outputs the detailed statistics tables for SNP and Indel match categories.
+    **/
+    private void outputDetailMetricsFile(final VariantContext.Type variantType, final MetricsFile<GenotypeConcordanceDetailMetrics,?> genotypeConcordanceDetailMetricsFile,
+                                         final GenotypeConcordanceCounts counter, final String truthSampleName, final String callSampleName) {
+        final GenotypeConcordanceSchemeFactory schemeFactory = new GenotypeConcordanceSchemeFactory();
+        final GenotypeConcordanceScheme scheme = schemeFactory.getScheme(MISSING_SITES_HOM_REF);
+        scheme.validateScheme();
+        for (final TruthState truthState : TruthState.values()) {
+            for (final CallState callState : CallState.values()) {
+                final int count = counter.getCount(truthState, callState);
+                final String contingencyValues = scheme.getContingencyStateString(truthState, callState);
+                if (count > 0 || OUTPUT_ALL_ROWS) {
+                    final GenotypeConcordanceDetailMetrics detailMetrics = new GenotypeConcordanceDetailMetrics();
+                    detailMetrics.VARIANT_TYPE = variantType;
+                    detailMetrics.TRUTH_SAMPLE = truthSampleName;
+                    detailMetrics.CALL_SAMPLE = callSampleName;
+                    detailMetrics.TRUTH_STATE = truthState;
+                    detailMetrics.CALL_STATE = callState;
+                    detailMetrics.COUNT = count;
+                    detailMetrics.CONTINGENCY_VALUES = contingencyValues;
+                    genotypeConcordanceDetailMetricsFile.addMetric(detailMetrics);
+                }
+            }
+        }
+    }
+
+    /**
+     * A method to determine the truth and call states for a pair of variant contexts representing truth and call.
+     * A variety of variant and genotype-level checks are first used to determine if either of the the variant contexts
+     * are filtered and after that a comparison of the called genotype alleles to determine appropriate truth and call state
+     *
+     * Note that this method does NOT check for SNP versus Indel.  It is assumed that that check is done by the caller and the results
+     * of this method are stored by SNP/Indel.
+     * Note that if a variant context has BOTH GQ and DP less than the specified threshold, then it will be of Truth/Call State LOW_GQ
+     *
+     * @param truthContext A variant context representing truth
+     * @param truthSample The name of the truth sample
+     * @param callContext A variant context representing the call
+     * @param callSample The name of the call sample
+     * @param minGq Threshold for filtering by genotype attribute GQ
+     * @param minDp Threshold for filtering by genotype attribute DP
+     * @return TruthAndCallStates object containing the TruthState and CallState determined here.
+     */
+    final TruthAndCallStates determineState(final VariantContext truthContext, final String truthSample, final VariantContext callContext, final String callSample, final int minGq, final int minDp) {
+        TruthState truthState = null;
+        CallState callState = null;
+
+        // TODO: what about getPloidy()
+
+        Genotype truthGenotype = null, callGenotype = null;
+
+        // Site level checks
+        // Added potential to include missing sites as hom ref..
+        if (truthContext == null) truthState = TruthState.MISSING;
+        else if (truthContext.isMixed()) truthState = TruthState.IS_MIXED;
+        else if (truthContext.isFiltered()) truthState = TruthState.VC_FILTERED;
+        else {
+            // Genotype level checks
+            truthGenotype = truthContext.getGenotype(truthSample);
+            if (truthGenotype.isNoCall())           truthState = TruthState.NO_CALL;
+            else if (truthGenotype.isFiltered())    truthState = TruthState.GT_FILTERED;
+            else if ((truthGenotype.getGQ() != -1) && (truthGenotype.getGQ() < minGq)) truthState = TruthState.LOW_GQ;
+            else if ((truthGenotype.getDP() != -1) && (truthGenotype.getDP() < minDp)) truthState = TruthState.LOW_DP;
+            // Note.  Genotype.isMixed means that it is called on one chromosome and NOT on the other
+            else if ((truthGenotype.isMixed())) truthState = TruthState.NO_CALL;
+        }
+
+        // Site level checks
+        if (callContext == null) callState = CallState.MISSING;
+        else if (callContext.isMixed()) callState = CallState.IS_MIXED;
+        else if (callContext.isFiltered()) callState = CallState.VC_FILTERED;
+        else {
+            // Genotype level checks
+            callGenotype = callContext.getGenotype(callSample);
+            if (callGenotype.isNoCall())           callState = CallState.NO_CALL;
+            else if (callGenotype.isFiltered())    callState = CallState.GT_FILTERED;
+            else if ((callGenotype.getGQ() != -1) && (callGenotype.getGQ() < minGq)) callState = CallState.LOW_GQ;
+            else if ((callGenotype.getDP() != -1) && (callGenotype.getDP() < minDp)) callState = CallState.LOW_DP;
+                // Note.  Genotype.isMixed means that it is called on one chromosome and NOT on the other
+            else if ((callGenotype.isMixed())) callState = CallState.NO_CALL;
+        }
+
+        // initialize the reference
+        String truthRef = (truthContext != null) ? truthContext.getReference().getBaseString() : null;
+        String callRef  = (callContext != null) ?  callContext.getReference().getBaseString() : null;
+
+        String truthAllele1 = null;
+        String truthAllele2 = null;
+        if (null == truthState) {
+            // Truth State not yet determined - will need to use truth genotypes below
+            if (truthGenotype.getAlleles().size() != 2) {
+                throw new IllegalStateException("Genotype for Variant Context: " + truthContext + " does not have exactly 2 alleles");
+            }
+            truthAllele1 = truthGenotype.getAllele(0).getBaseString();
+            truthAllele2 = truthGenotype.getAllele(1).getBaseString();
+        }
+
+        String callAllele1 = null;
+        String callAllele2 = null;
+        if (null == callState) {
+            if (callGenotype.getAlleles().size() != 2) {
+                throw new IllegalStateException("Genotype for Variant Context: " + callContext + " does not have exactly 2 alleles");
+            }
+            callAllele1 = callGenotype.getAllele(0).getBaseString();
+            callAllele2 = callGenotype.getAllele(1).getBaseString();
+        }
+
+        if ((truthRef != null && callRef != null) && (!truthRef.equals(callRef))) {
+            // This is for dealing with indel conditions, where we can have truth being TCAA*/T, call being TCAACAA*/TCAA (*=ref)
+            // So, we want to verify that both refs start with the shorter substring of the two
+            // and then we want to pad the shorter's ref and alleles, so that TCAA*/T becomes TCAACAA*/TCAA (i.e. tacking on the CAA)
+            if (truthRef.length() < callRef.length()) {
+                // Truth reference is shorter than call reference
+                final String suffix = getStringSuffix(callRef, truthRef, "Ref alleles mismatch between: " + truthContext + " and " + callContext);
+                truthRef = truthRef + suffix;
+                if (null == truthState) {
+                    truthAllele1 = truthGenotype.getAllele(0).getBaseString() + suffix;
+                    truthAllele2 = truthGenotype.getAllele(1).getBaseString() + suffix;
+                }
+            }
+            else if (truthRef.length() > callRef.length()) {
+                // call reference is shorter than truth:
+                final String suffix = getStringSuffix(truthRef, callRef, "Ref alleles mismatch between: " + truthContext + " and " + callContext);
+                callRef = callRef + suffix;
+                if (null == callState) {
+                    callAllele1 = callGenotype.getAllele(0).getBaseString() + suffix;
+                    callAllele2 = callGenotype.getAllele(1).getBaseString() + suffix;
+                }
+            }
+            else {
+                // Same length - so they must just disagree...
+                throw new IllegalStateException("Ref alleles mismatch between: " + truthContext + " and " + callContext);
+            }
+        }
+
+        final OrderedSet<String> allAlleles = new OrderedSet<String>();
+
+        if (truthContext != null || callContext != null) {
+            // Store the refAllele as the first (0th index) allele in allAlleles (only can do if at least one context is non-null)
+            allAlleles.smartAdd(truthContext == null ? callRef : truthRef); // zeroth allele;
+        }
+
+        if (null == truthState) {
+            // If truthState is not null, it has not yet been determined, and the truthContext has genotypes (i.e. the alleles are valid)
+            allAlleles.smartAdd(truthAllele1);
+            allAlleles.smartAdd(truthAllele2);
+        }
+
+        /**
+         *  if either of the call alleles is in allAlleles, with index > 1, we need to make sure that allele has index 1.
+         *  this is because of the following situations:
+         *
+         *      REF TRUTH   CALL-GT TRUTH-STATE     CALL-STATE
+         *      A   C/G     C/A     HET_VAR1_VAR2   HET_REF_VAR1
+         *      A   G/C     C/A     HET_VAR1_VAR2   HET_REF_VAR1
+         *      A   G/C     G/A     HET_VAR1_VAR2   HET_REF_VAR1
+         *      A   G/C     G/A     HET_VAR1_VAR2   HET_REF_VAR1
+         *
+         *  so, in effect, the order of the alleles in the TRUTH doesn't determine the assignment of allele to Var1 and Var2,
+         *  only once the call is known can this assignment be made.
+         */
+
+        if (null == callState) {
+            // If callState is not null, it has not yet been determined, and the callContext has genotypes (i.e. the alleles are valid)
+            if (allAlleles.indexOf(callAllele1) > 1 || allAlleles.indexOf(callAllele2) > 1) {
+                allAlleles.remove(2);
+                allAlleles.remove(1);
+                allAlleles.smartAdd(truthAllele2);
+                allAlleles.smartAdd(truthAllele1);
+            }
+
+            allAlleles.smartAdd(callAllele1);
+            allAlleles.smartAdd(callAllele2);
+        }
+
+        // Truth
+        if (null == truthState) {
+            final int allele0idx = allAlleles.indexOf(truthAllele1);
+            final int allele1idx = allAlleles.indexOf(truthAllele2);
+
+            if (allele0idx == allele1idx) { //HOM
+                truthState = TruthState.getHom(allele0idx);
+            } else { //HET
+                truthState = TruthState.getVar(allele0idx, allele1idx);
+            }
+        }
+
+        // Call
+        if (null == callState) {
+            final int allele0idx = allAlleles.indexOf(callAllele1);
+            final int allele1idx = allAlleles.indexOf(callAllele2);
+
+            if (allele0idx == allele1idx) { //HOM
+                callState = CallState.getHom(allele0idx);
+            } else { //HET
+                callState = CallState.getHet(allele0idx, allele1idx);
+            }
+
+            if (null == callState) {
+                throw new IllegalStateException("This should never happen...  Could not classify the call variant: " + callGenotype);
+            }
+        }
+
+        return new TruthAndCallStates(truthState, callState);
+    }
+
+    final String getStringSuffix(final String longerString, final String shorterString, final String errorMsg) {
+        // Truth reference is shorter than call reference
+        if (!longerString.startsWith(shorterString)) {
+            throw new IllegalStateException(errorMsg);
+        }
+        return longerString.substring(shorterString.length());
+    }
+}
+
+/** like a list, but if you ask for an index of an item, it will first add that item.
+also, same item cannot be added more than once (like a set)
+ */
+class OrderedSet<T> extends ArrayList<T> {
+
+    public int smartIndexOf(final T o) {
+        smartAdd(o);
+        return super.indexOf(o);
+    }
+
+    public boolean smartAdd(final T o) {
+        if (!this.contains(o)) {
+            return add(o);
+        }
+        return false;
+    }
+}
+
+/** Little class to hold a pair of VariantContexts that are in sync with one another. */
+class VcTuple {
+    public final VariantContext truthVariantContext;
+    public final VariantContext callVariantContext;
+
+    VcTuple(final VariantContext truthVariantContext, final VariantContext callVariantContext) {
+        this.truthVariantContext = truthVariantContext;
+        this.callVariantContext = callVariantContext;
+    }
+}
+
+/** Iterator that takes a pair of iterators over VariantContexts and iterates over them in tandem. */
+class PairedVariantSubContextIterator implements Iterator<VcTuple> {
+    private final PeekableIterator<VariantContext> truthIterator;
+    private final String truthSample;
+    private final PeekableIterator<VariantContext> callIterator;
+    private final String callSample;
+    private final VariantContextComparator comparator;
+
+    PairedVariantSubContextIterator(final Iterator<VariantContext> truthIterator, final String truthSample,
+                                 final Iterator<VariantContext> callIterator, final String callSample,
+                                 final SAMSequenceDictionary dict) {
+        this.truthIterator = new PeekableIterator<VariantContext>(truthIterator);
+        this.truthSample = truthSample;
+        this.callIterator = new PeekableIterator<VariantContext>(callIterator);
+        this.callSample = callSample;
+        this.comparator = new VariantContextComparator(dict);
+    }
+
+    @Override
+    public boolean hasNext() {
+        return this.truthIterator.hasNext() || this.callIterator.hasNext();
+    }
+
+    @Override
+    public VcTuple next() {
+        if (!hasNext()) throw new IllegalStateException("next() called while hasNext() is false.");
+
+        final VariantContext truthVariantContext = this.truthIterator.hasNext() ? this.truthIterator.peek() : null;
+        final VariantContext callVariantContext = this.callIterator.hasNext() ? this.callIterator.peek() : null;
+
+        // If one or the other is null because there is no next, just return a one-sided tuple
+        if (truthVariantContext == null) {
+            return new VcTuple(null, this.callIterator.next().subContextFromSample(callSample));
+        }
+        else if (callVariantContext == null) {
+            return new VcTuple(this.truthIterator.next().subContextFromSample(truthSample), null);
+        }
+
+        // Otherwise check the ordering and do the right thing
+        final int ordering = this.comparator.compare(truthVariantContext, callVariantContext);
+        if (ordering == 0) {
+            return new VcTuple(this.truthIterator.next().subContextFromSample(truthSample), this.callIterator.next().subContextFromSample(callSample));
+        }
+        else if (ordering < 0) {
+            return new VcTuple(this.truthIterator.next().subContextFromSample(truthSample), null);
+        }
+        else {
+            return new VcTuple(null, this.callIterator.next().subContextFromSample(callSample));
+        }
+    }
+
+    @Override public void remove() {
+        throw new UnsupportedOperationException();
+    }
+}
+
+
+
+
diff --git a/src/java/picard/vcf/GenotypeConcordanceContingencyMetrics.java b/src/java/picard/vcf/GenotypeConcordanceContingencyMetrics.java
new file mode 100644
index 0000000..c9c5901
--- /dev/null
+++ b/src/java/picard/vcf/GenotypeConcordanceContingencyMetrics.java
@@ -0,0 +1,61 @@
+package picard.vcf;
+
+import htsjdk.samtools.metrics.MetricBase;
+import htsjdk.variant.variantcontext.VariantContext;
+import picard.vcf.GenotypeConcordanceStates.*;
+
+import java.util.Map;
+
+/**
+ * Class that holds metrics about the Genotype Concordance contingency tables.
+ */
+public class GenotypeConcordanceContingencyMetrics extends MetricBase {
+    /**
+     * Empty constructor - needed for unit tests
+     */
+    public GenotypeConcordanceContingencyMetrics() {
+    }
+
+    GenotypeConcordanceContingencyMetrics(final VariantContext.Type variantType, final GenotypeConcordanceCounts concordanceCounts,
+                                          final String truthSample, final String callSample, final boolean missingSitesFlag) {
+        this.VARIANT_TYPE = variantType;
+        this.TRUTH_SAMPLE = truthSample;
+        this.CALL_SAMPLE = callSample;
+
+        final GenotypeConcordanceSchemeFactory schemeFactory = new GenotypeConcordanceSchemeFactory();
+        final GenotypeConcordanceScheme scheme = schemeFactory.getScheme(missingSitesFlag);
+        scheme.validateScheme();
+        concordanceCounts.validateCountsAgainstScheme(scheme);
+
+        Map<ContingencyState, Integer> counts = concordanceCounts.getContingencyStateCounts(scheme);
+        this.TP_COUNT = counts.get(ContingencyState.TP);
+        this.TN_COUNT = counts.get(ContingencyState.TN);
+        this.FP_COUNT = counts.get(ContingencyState.FP);
+        this.FN_COUNT = counts.get(ContingencyState.FN);
+        this.EMPTY_COUNT = counts.get(ContingencyState.EMPTY);
+    }
+
+    /** The type of the event (i.e. either SNP or INDEL) */
+    public VariantContext.Type VARIANT_TYPE;
+
+    /** The name of the 'truth' sample */
+    public String TRUTH_SAMPLE;
+
+    /** The name of the 'call' sample */
+    public String CALL_SAMPLE;
+
+    /** The TP (true positive) count across all variants */
+    public int TP_COUNT;
+
+    /** The TN (true negative) count across all variants */
+    public int TN_COUNT;
+
+    /** The FP (false positive) count across all variants */
+    public int FP_COUNT;
+
+    /** The FN (false negative) count across all variants */
+    public int FN_COUNT;
+
+    /** The empty (no contingency info) count across all variants */
+    public int EMPTY_COUNT;
+}
diff --git a/src/java/picard/vcf/GenotypeConcordanceCounts.java b/src/java/picard/vcf/GenotypeConcordanceCounts.java
new file mode 100644
index 0000000..29340ee
--- /dev/null
+++ b/src/java/picard/vcf/GenotypeConcordanceCounts.java
@@ -0,0 +1,303 @@
+package picard.vcf;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import htsjdk.samtools.util.Histogram;
+import picard.PicardException;
+import picard.vcf.GenotypeConcordanceStates.*;
+
+/**
+ * A class to store the counts for various truth and call state classifications relative to a reference.  With these counts and a provided
+ * scheme, summary metrics can be returned.
+ * @author nhomer
+ */
+public class GenotypeConcordanceCounts {
+
+    /**
+     * Pre-defined sets based on if the caller wishes to return the sensitivity given the common homozygous reference, heterozygous, and homozygous variant cases.
+     * Var truth states can also be used to calculate specificity. Hom Ref and Missing can be added to var truth states because they are needed
+     * for specificity and do not contain TP or FN, so they will not effect sensitivity.
+     */
+    static final TruthState[] HOM_REF_TRUTH_STATES = {TruthState.HOM_REF};
+    static final TruthState[] HET_TRUTH_STATES = {TruthState.HET_REF_VAR1, TruthState.HET_VAR1_VAR2};
+    static final TruthState[] HOM_VAR_TRUTH_STATES = {TruthState.HOM_VAR1};
+    static final TruthState[] VAR_TRUTH_STATES = {TruthState.HET_REF_VAR1, TruthState.HET_VAR1_VAR2, TruthState.HOM_VAR1,
+            TruthState.HOM_REF, TruthState.MISSING};
+
+    /**
+     * Pre-defined sets based on if the caller wishes to return the PPV given the common homozygous reference, heterozygous, and homozygous variant cases.
+     */
+    static final CallState[] HOM_REF_CALL_STATES = {CallState.HOM_REF};
+    static final CallState[] HET_CALL_STATES = {CallState.HET_REF_VAR1, CallState.HET_REF_VAR2, CallState.HET_REF_VAR3,
+            CallState.HET_VAR1_VAR2, CallState.HET_VAR1_VAR3, CallState.HET_VAR3_VAR4};
+    static final CallState[] HOM_VAR_CALL_STATES = {CallState.HOM_VAR1, CallState.HOM_VAR2, CallState.HOM_VAR3};
+    static final CallState[] VAR_CALL_STATES = {CallState.HET_REF_VAR1, CallState.HET_REF_VAR2, CallState.HET_REF_VAR3,
+            CallState.HET_VAR1_VAR2, CallState.HET_VAR1_VAR3, CallState.HET_VAR3_VAR4,
+            CallState.HOM_VAR1, CallState.HOM_VAR2, CallState.HOM_VAR3};
+
+    /** The underlying counts table */
+    private final Histogram<TruthAndCallStates> counter = new Histogram<TruthAndCallStates>();
+
+    /**
+     * Increments a count for the truth/call state tuple.
+     * @param truthAndCallStates
+     */
+    public void increment(final TruthAndCallStates truthAndCallStates) {
+        this.counter.increment(truthAndCallStates);
+    }
+
+    public void increment(final TruthAndCallStates truthAndCallStates, final double count){
+        this.counter.increment(truthAndCallStates, count);
+    }
+
+    public double getCounterSize() {
+        return this.counter.getCount();
+    }
+
+    /**
+     * Validates that there are no counts for NA states in the underlying scheme
+     */
+    public void validateCountsAgainstScheme(final GenotypeConcordanceScheme scheme) {
+        final Set<ContingencyState> naContingencyStates = getContingencyStateSet(GenotypeConcordanceScheme.NA);
+        for (final TruthState truthState : TruthState.values()) {
+            for (final CallState callState : CallState.values()) {
+                final TruthAndCallStates truthAndCallStates = new TruthAndCallStates(truthState, callState);
+                if (0 < getCount(truthAndCallStates)) {
+                    final Set<ContingencyState> contingencyStates = getContingencyStateSet(scheme.getConcordanceStateArray(truthAndCallStates));
+                    if (contingencyStates.containsAll(naContingencyStates)) {
+                        throw new PicardException(String.format("Found counts for an illegal set of states: [%s, %s]", truthState.name(), callState.name()));
+                    }
+                }
+            }
+        }
+    }
+
+    private Set<ContingencyState> getContingencyStateSet(final ContingencyState[] contingencyStateArray) {
+        final Set<ContingencyState> contingencyStateSet = new HashSet<ContingencyState>();
+        Collections.addAll(contingencyStateSet, contingencyStateArray);
+        return contingencyStateSet;
+    }
+
+    /**
+     * Genotype Concordance Util calculates the Genotype Concordance and the Non-Ref Genotype Concordance, based on the includeHomRef flag.
+     */
+    private double calculateGenotypeConcordanceUtil(final GenotypeConcordanceScheme scheme, final boolean missingSitesFlag, final boolean includeHomRef) {
+        double numerator = 0.0;
+        double denominator = 0.0;
+
+        scheme.validateScheme();
+
+        final TruthState[] allTruthStates = TruthState.values();
+        final CallState[] allCallStates = CallState.values();
+
+        for (final TruthState truthState : allTruthStates) {
+            for (final CallState callState : allCallStates) {
+                if (!missingSitesFlag && isMissing(truthState, callState)) {
+                    continue;
+                }
+                else if (includeHomRef || isVar(truthState, callState)) {
+                    final TruthAndCallStates truthAndCallStates = new TruthAndCallStates(truthState, callState);
+                    final int count = getCount(truthAndCallStates);
+                    if (truthState.getCode()==callState.getCode()) {
+                        //If we enter this, we are 'on the diagonal'
+                        numerator += count;
+                    }
+                    denominator += count;
+                }
+            }
+        }
+        return (denominator > 0.0 ? (numerator / denominator) : Double.NaN);
+    }
+
+    /**
+     * Genotype Concordance is the number of times the truth and call states match exactly / all truth and call combinations made
+     * If the GA4GH scheme is being used, any MISSING sites in truth OR call will not be included in the discordance calculations.
+     */
+    public double calculateGenotypeConcordance(final GenotypeConcordanceScheme scheme, final boolean missingSitesFlag) {
+        return calculateGenotypeConcordanceUtil(scheme, missingSitesFlag, true);
+    }
+
+    /**
+     * Non Ref Genotype Concordance is the number of times the truth and call states match exactly for *vars only* / all truth and call *var* combinations made
+     * If the GA4GH scheme is being used, any MISSING sites in truth OR call will not be included in the discordance calculations.
+     */
+    public double calculateNonRefGenotypeConcordance(final GenotypeConcordanceScheme scheme, final boolean missingSitesFlag) {
+        return calculateGenotypeConcordanceUtil(scheme, missingSitesFlag, false);
+    }
+
+    /**
+     * Returns the sensitivity defined by the scheme across the subset of truth states.
+     */
+    public double getSensitivity(final GenotypeConcordanceScheme scheme, final TruthState[] truthStateArray) {
+        /**
+         * Sensitivity is the TP / P = TP / (TP + FN)
+         */
+        double numerator = 0.0;
+        double denominator = 0.0;
+
+        scheme.validateScheme();
+
+        for (final TruthState truthState : truthStateArray) {
+            for (final CallState callState : CallState.values()) {
+                final TruthAndCallStates truthAndCallStates = new TruthAndCallStates(truthState, callState);
+                final int count = getCount(truthAndCallStates);
+                for (final ContingencyState contingencyState : scheme.getConcordanceStateArray(truthAndCallStates)) {
+                    if (ContingencyState.TP == contingencyState) {
+                        numerator += count;
+                        denominator += count;
+                    } else if (ContingencyState.FN == contingencyState) {
+                        denominator += count;
+                    }
+                }
+            }
+        }
+
+        return (numerator / denominator);
+    }
+
+    /**
+     * Returns the PPV defined by the scheme across the subset of call states.
+     */
+    public double Ppv(final GenotypeConcordanceScheme scheme, final CallState[] callStateList) {
+        /**
+         * PPV is the TP / (TP + FP)
+         */
+        double numerator = 0.0;
+        double denominator = 0.0;
+
+        scheme.validateScheme();
+
+        for (final CallState callState : callStateList) {
+            for (final TruthState truthState : TruthState.values()) {
+                final TruthAndCallStates truthAndCallStates = new TruthAndCallStates(truthState, callState);
+                final int count = getCount(truthAndCallStates);
+                for (final ContingencyState contingencyState : scheme.getConcordanceStateArray(truthAndCallStates)) {
+                    if (ContingencyState.TP == contingencyState) {
+                        numerator += count;
+                        denominator += count;
+                    } else if (ContingencyState.FP == contingencyState) {
+                        denominator += count;
+                    }
+                }
+            }
+        }
+
+        return (numerator / denominator);
+    }
+
+    /**
+     * Returns the specificity defined by the scheme across the subset of truth states.
+     */
+    public double getSpecificity(final GenotypeConcordanceScheme scheme, final TruthState[] truthStateArray) {
+        /**
+         * Specificity is the TN / N = TN / (FP + TN)
+         */
+        double numerator = 0.0;
+        double denominator = 0.0;
+
+        scheme.validateScheme();
+
+        for (final TruthState truthState : truthStateArray) {
+            for (final CallState callState : CallState.values()) {
+                final TruthAndCallStates truthAndCallStates = new TruthAndCallStates(truthState, callState);
+                final int count = getCount(truthAndCallStates);
+                for (final ContingencyState contingencyState : scheme.getConcordanceStateArray(truthAndCallStates)) {
+                    if (ContingencyState.TN == contingencyState) {
+                        numerator += count;
+                        denominator += count;
+                    } else if (ContingencyState.FP == contingencyState) {
+                        denominator += count;
+                    }
+                }
+            }
+        }
+        return (numerator / denominator);
+    }
+
+    /**
+     * Returns the count defined by the truth state set and call state set.
+     */
+    public int getCount(final TruthState truthState, final CallState callState) {
+        return getCount(new TruthAndCallStates(truthState, callState));
+    }
+
+    /**
+     * Returns the count defined by the truth state set and call state set.
+     */
+    public int getCount(final TruthAndCallStates truthAndCallStates) {
+        final Histogram<TruthAndCallStates>.Bin bin = this.counter.get(truthAndCallStates);
+        return (bin == null ? 0 : (int) bin.getValue());
+    }
+
+    /**
+     * Returns true if EITHER the truth or call state is a VAR.
+     * Used for calculating non ref genotype concordance.
+     */
+    public boolean isVar(final TruthState truthState, final CallState callState) {
+        final List<TruthState> listOfTruthStates = Arrays.asList(TruthState.HOM_VAR1, TruthState.HET_REF_VAR1, TruthState.HET_VAR1_VAR2);
+        final List<CallState> listOfCallStates = Arrays.asList(CallState.HET_REF_VAR1, CallState.HET_REF_VAR2, CallState.HET_REF_VAR3,
+                CallState.HET_VAR1_VAR2, CallState.HET_VAR1_VAR3, CallState.HET_VAR3_VAR4,
+                CallState.HOM_VAR1, CallState.HOM_VAR2, CallState.HOM_VAR3);
+
+        return listOfTruthStates.contains(truthState) || listOfCallStates.contains(callState);
+    }
+
+    /**
+     * Returns true if EITHER the truth or call state is MISSING.
+     * Used for calculating genotype concordance and non-ref genotype concordance when the GA4GH scheme is used.
+     */
+    public boolean isMissing(final TruthState truthState, final CallState callState) {
+        return truthState == TruthState.MISSING || callState == CallState.MISSING;
+    }
+
+    /**
+     * Returns the sum of all pairs of tuples defined by the truth state set and call state set.
+     */
+    public int getSum(final Set<TruthState> truthStateSet, final Set<CallState> callStateSet) {
+        int count = 0;
+        for (final TruthState truthState : truthStateSet) {
+            for (final CallState callState : callStateSet) {
+                count += getCount(truthState, callState);
+            }
+        }
+        return count;
+    }
+
+    /**
+     * Returns the sum of all pairs of tuples defined by the truth state set and call state set.
+     */
+    public int getSum() {
+        return getSum(new HashSet<TruthState>(Arrays.asList(TruthState.values())), new HashSet<CallState>(Arrays.asList(CallState.values())));
+    }
+
+    /**
+     * Returns the total number of times each contingency state is encountered, summed across all truth/call state pairs.
+     */
+    public Map<ContingencyState, Integer> getContingencyStateCounts(final GenotypeConcordanceScheme scheme) {
+        scheme.validateScheme();
+
+        final Map<ContingencyState, Integer> counts = new HashMap<ContingencyState, Integer>();
+        for (final ContingencyState contingencyState : ContingencyState.values()) {
+            counts.put(contingencyState, 0);
+        }
+
+        for (final TruthState truthState : TruthState.values()) {
+            for (final CallState callState : CallState.values()) {
+                final TruthAndCallStates truthAndCallStates = new TruthAndCallStates(truthState, callState);
+                final ContingencyState[] contingencyStateArray = scheme.getConcordanceStateArray(truthAndCallStates);
+                for (final ContingencyState contingencyState : contingencyStateArray) {
+                    final int newCount = counts.get(contingencyState) + getCount(truthAndCallStates);
+                    counts.put(contingencyState, newCount);
+                }
+            }
+        }
+
+        return counts;
+    }
+}
diff --git a/src/java/picard/vcf/GenotypeConcordanceDetailMetrics.java b/src/java/picard/vcf/GenotypeConcordanceDetailMetrics.java
new file mode 100644
index 0000000..c3fb616
--- /dev/null
+++ b/src/java/picard/vcf/GenotypeConcordanceDetailMetrics.java
@@ -0,0 +1,40 @@
+package picard.vcf;
+
+import htsjdk.samtools.metrics.MetricBase;
+import htsjdk.variant.variantcontext.VariantContext;
+
+/**
+ * Class that holds detail metrics about Genotype Concordance
+ *
+ * @author George Grant
+ */
+public class GenotypeConcordanceDetailMetrics extends MetricBase {
+    /** The type of the event (i.e. either SNP or INDEL) */
+    public VariantContext.Type VARIANT_TYPE;
+
+    /** The name of the 'truth' sample */
+    public String TRUTH_SAMPLE;
+
+    /** The name of the 'call' sample */
+    public String CALL_SAMPLE;
+
+    /** The state of the 'truth' sample (i.e. HOM_REF, HET_REF_VAR1, HET_VAR1_VAR2...) */
+    public GenotypeConcordanceStates.TruthState TRUTH_STATE;
+
+    /** The state of the 'call' sample (i.e. HOM_REF, HET_REF_VAR1...) */
+    public GenotypeConcordanceStates.CallState CALL_STATE;
+
+    /** The number of events of type TRUTH_STATE and CALL_STATE for the EVENT_TYPE and SAMPLEs */
+    public long COUNT;
+
+    /** The list of contingency table values (TP, TN, FP, FN) that are deduced from the truth/call state comparison, given the reference.
+     *
+     * In general, we are comparing two sets of alleles.  Therefore, we can have zero or more contingency table values represented in one comparison.  For example, if the truthset is
+     * a heterozygous call with both alleles non-reference (HET_VAR1_VAR2), and the callset is a heterozygous call with both alleles non-reference with one of the alternate alleles
+     * matching an alternate allele in the callset, we would have a true positive, false positive, and false negative.  The true positive is from the matching alternate alleles, the
+     * false positive is the alternate allele found in the callset but not found in the truthset, and the false negative is the alternate in the truthset not found in the callset.
+     *
+     * We also include a true negative in cases where the reference allele is found in both the truthset and callset.
+     */
+    public String CONTINGENCY_VALUES;
+}
diff --git a/src/java/picard/vcf/GenotypeConcordanceScheme.java b/src/java/picard/vcf/GenotypeConcordanceScheme.java
new file mode 100644
index 0000000..334b28c
--- /dev/null
+++ b/src/java/picard/vcf/GenotypeConcordanceScheme.java
@@ -0,0 +1,137 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2015 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.vcf;
+
+import htsjdk.samtools.util.StringUtil;
+import picard.PicardException;
+import picard.vcf.GenotypeConcordanceStates.*;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * This defines for each valid TruthState and CallState tuple, the set of contingency table entries that to which the tuple should contribute.
+ * @author nhomer
+ */
+public abstract class GenotypeConcordanceScheme{
+
+    public GenotypeConcordanceScheme (){
+        initiateScheme();
+    }
+
+    protected abstract void initiateScheme();
+
+    /** The underlying scheme */
+    protected final Map<TruthAndCallStates, ContingencyState[]> scheme = new HashMap<TruthAndCallStates, ContingencyState[]>();
+
+    /** These are convenience variables for defining a scheme.  NA means that such a tuple should never be observed. */
+    public static final ContingencyState[]    NA       = {ContingencyState.NA};
+    protected static final ContingencyState[] EMPTY    = {ContingencyState.EMPTY};
+    protected static final ContingencyState[] TP_ONLY  = {ContingencyState.TP};
+    protected static final ContingencyState[] FP_ONLY  = {ContingencyState.FP};
+    protected static final ContingencyState[] TN_ONLY  = {ContingencyState.TN};
+    protected static final ContingencyState[] FN_ONLY  = {ContingencyState.FN};
+    protected static final ContingencyState[] TP_FN    = {ContingencyState.TP, ContingencyState.FN};
+    protected static final ContingencyState[] TP_FP    = {ContingencyState.TP, ContingencyState.FP};
+    protected static final ContingencyState[] TP_TN    = {ContingencyState.TP, ContingencyState.TN};
+    protected static final ContingencyState[] FP_FN    = {ContingencyState.FP, ContingencyState.FN};
+    protected static final ContingencyState[] FP_TN    = {ContingencyState.FP, ContingencyState.TN};
+    protected static final ContingencyState[] FP_TN_FN = {ContingencyState.FP, ContingencyState.TN, ContingencyState.FN};
+    protected static final ContingencyState[] TP_FP_FN = {ContingencyState.TP, ContingencyState.FP, ContingencyState.FN};
+    protected static final ContingencyState[] TN_FN    = {ContingencyState.TN, ContingencyState.FN};
+
+    /** Has this scheme been previously validated */
+    private boolean isValidated = false;
+
+    /**
+     * Adds a row to the scheme
+     * @param callState the call state (row)
+     * @param concordanceStateArrays the concordance state arrays for each truth value, in order
+     */
+    protected void addRow(final CallState callState, final ContingencyState[]... concordanceStateArrays) {
+        if (concordanceStateArrays.length != TruthState.values().length) {
+            throw new PicardException("Length mismatch between concordanceStateArrays and TruthState.values()");
+        }
+        for (int i = 0; i < concordanceStateArrays.length; i++) {
+            scheme.put(new TruthAndCallStates(TruthState.values()[i], callState), concordanceStateArrays[i]);
+        }
+    }
+
+    /**
+     * Get the concordance state array associate with the given truth state and call state tuple.
+     */
+    public ContingencyState[] getConcordanceStateArray(final TruthState truthState, final CallState callState) {
+        return this.getConcordanceStateArray(new TruthAndCallStates(truthState, callState));
+    }
+
+    /**
+     * Get the concordance state array associate with the given truth state and call state tuple.
+     */
+    public ContingencyState[] getConcordanceStateArray(final TruthAndCallStates truthAndCallStates) {
+        return this.scheme.get(truthAndCallStates);
+    }
+
+    /**
+     * Get the contingency state array as a parse-able string
+     */
+    public String getContingencyStateString(final TruthState truthState, final CallState callState) {
+        final ContingencyState[] contingencyStateArray = getConcordanceStateArray(truthState, callState);
+        return (contingencyStateArray.length == 0) ? "EMPTY" : StringUtil.join(",", contingencyStateArray);
+    }
+
+    /**
+     * Get the contingency state array as a set
+     * @param contingencyStateArray
+     * @return
+     */
+    public Set<ContingencyState> getContingencyStateSet(final ContingencyState[] contingencyStateArray) {
+        final Set<ContingencyState> contingencyStateSet = new HashSet<ContingencyState>();
+        Collections.addAll(contingencyStateSet, contingencyStateArray);
+        return contingencyStateSet;
+    }
+
+
+    /**
+     * Check that all cells in the scheme exist.
+     * @throws PicardException if a missing tuple was found.
+     */
+    public void validateScheme() throws PicardException {
+        if (!isValidated) {
+            for (final TruthState truthState : TruthState.values()) {
+                for (final CallState callState : CallState.values()) {
+                    if (!scheme.containsKey(new TruthAndCallStates(truthState, callState))) {
+                        throw new PicardException(String.format("Missing scheme tuple: [%s, %s]", truthState.name(), callState.name()));
+                    }
+                }
+            }
+        }
+
+        isValidated = true;
+    }
+}
+
diff --git a/src/java/picard/vcf/GenotypeConcordanceSchemeFactory.java b/src/java/picard/vcf/GenotypeConcordanceSchemeFactory.java
new file mode 100644
index 0000000..9c14997
--- /dev/null
+++ b/src/java/picard/vcf/GenotypeConcordanceSchemeFactory.java
@@ -0,0 +1,39 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2015 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.vcf;
+
+/**
+ * Created by kbergin on 6/19/15.
+ */
+public class GenotypeConcordanceSchemeFactory {
+    public GenotypeConcordanceScheme getScheme(final boolean isMissingHomRef) {
+        if (isMissingHomRef) {
+            return new GA4GHSchemeWithMissingAsHomRef();
+        }
+        else {
+            return new GA4GHScheme();
+        }
+    }
+}
diff --git a/src/java/picard/vcf/GenotypeConcordanceStateCodes.java b/src/java/picard/vcf/GenotypeConcordanceStateCodes.java
new file mode 100644
index 0000000..9dd5569
--- /dev/null
+++ b/src/java/picard/vcf/GenotypeConcordanceStateCodes.java
@@ -0,0 +1,23 @@
+package picard.vcf;
+
+/**
+ * Created by kbergin on 7/30/15.
+ */
+public enum GenotypeConcordanceStateCodes {
+    /**
+     * These codes allow for constants in the truth state enum and the call state enum to be compared.
+     * The final INCOMPARABLE_CODE is for Call States that are not reflected in the Truth State, so they can never match.
+     */
+        MISSING_CODE,
+        HOM_REF_CODE,
+        HET_REF_VAR1_CODE,
+        HET_VAR1_VAR2_CODE,
+        HOM_VAR1_CODE,
+        NO_CALL_CODE,
+        LOW_GQ_CODE,
+        LOW_DP_CODE,
+        VC_FILTERED_CODE,
+        GT_FILTERED_CODE,
+        IS_MIXED_CODE,
+        INCOMPARABLE_CODE;
+}
diff --git a/src/java/picard/vcf/GenotypeConcordanceStates.java b/src/java/picard/vcf/GenotypeConcordanceStates.java
new file mode 100644
index 0000000..56a212c
--- /dev/null
+++ b/src/java/picard/vcf/GenotypeConcordanceStates.java
@@ -0,0 +1,186 @@
+package picard.vcf;
+
+import static picard.vcf.GenotypeConcordanceStateCodes.*;
+/**
+ * A class to store the various classifications for:
+ * 1. a truth genotype versus a reference
+ * 2. a call genotype versus a truth, relative to a reference
+ *
+ * An example use of this class is to have one instance per following use case:
+ * - SNPs
+ * - indels
+ * - filtered variant (truth or call)
+ * - filtered genotype (truth or call)
+ * - low GQ (call)
+ * - low DP (call)
+ * - No call (truth or call)
+ * - No variant (truth or call) *
+ *
+ * @author nhomer
+ */
+public class GenotypeConcordanceStates {
+    /**
+     * These states represent the relationship between a truth genotype and the reference sequence.
+     */
+    public enum TruthState {
+        MISSING (MISSING_CODE.ordinal()),
+        HOM_REF (HOM_REF_CODE.ordinal()), // ref/ref
+        HET_REF_VAR1 (HET_REF_VAR1_CODE.ordinal()), // ref/var1 (var1!=ref)
+        HET_VAR1_VAR2 (HET_VAR1_VAR2_CODE.ordinal()), // var1/var2 (var1!=var2, var1!=ref, var2!=ref)
+        HOM_VAR1 (HOM_VAR1_CODE.ordinal()), // var1/var1 (var1!=ref)
+        NO_CALL (NO_CALL_CODE.ordinal()),
+        LOW_GQ (LOW_GQ_CODE.ordinal()),
+        LOW_DP (LOW_DP_CODE.ordinal()),
+        VC_FILTERED (VC_FILTERED_CODE.ordinal()),
+        GT_FILTERED (GT_FILTERED_CODE.ordinal()),
+        IS_MIXED (IS_MIXED_CODE.ordinal());
+
+        public static TruthState getHom(final int alleleIdx) {
+            if (alleleIdx == 0) return HOM_REF;
+            if (alleleIdx == 1) return HOM_VAR1;
+            assert false;
+            return null;
+        }
+
+        public static TruthState getVar(final int allele0idx, final int allele1idx) {
+            if (allele0idx == 0 && allele1idx == 1) return HET_REF_VAR1;
+            if (allele0idx == 1 && allele1idx == 0) return HET_REF_VAR1;
+
+            if (allele0idx == 1 && allele1idx == 2) return HET_VAR1_VAR2;
+            if (allele0idx == 2 && allele1idx == 1) return HET_VAR1_VAR2;
+
+            assert false;
+            return null;
+        }
+
+        private final int code;
+
+        private TruthState(final int code) {
+            this.code = code;
+        }
+
+        public int getCode() { return this.code; }
+    }
+
+    /**
+     * These states represent the relationship between the call genotype and the truth genotype relative to
+     * a reference sequence.
+     * The Enum constants must be in the same order as the truth state to allow for comparison.
+     */
+    enum CallState {
+        MISSING (MISSING_CODE.ordinal()),
+        HOM_REF (HOM_REF_CODE.ordinal()), // ref/ref, valid for all TruthStates
+        HET_REF_VAR1 (HET_REF_VAR1_CODE.ordinal()), // ref/var1, valid for all TruthStates
+        HET_VAR1_VAR2 (HET_VAR1_VAR2_CODE.ordinal()), // var1/var2, valid for all TruthStates
+        HOM_VAR1 (HOM_VAR1_CODE.ordinal()), // var1/var1, valid for all TruthStates
+        HET_REF_VAR2 (INCOMPARABLE_CODE.ordinal()), // ref/var2, valid only for TruthStates: HET_REF_VAR1, HET_VAR1_VAR2, HOM_VAR1
+        HET_REF_VAR3 (INCOMPARABLE_CODE.ordinal()), // ref/var3, valid only for TruthStates: HET_VAR1_VAR2
+        HET_VAR1_VAR3 (INCOMPARABLE_CODE.ordinal()), // var1/var3, valid only for TruthStates: HET_VAR1_VAR2. also encapsulates HET_VAR2_VAR3 (see special case below)
+        HET_VAR3_VAR4 (INCOMPARABLE_CODE.ordinal()), // var3/var4, valid only for TruthStates: HET_REF_VAR1, HET_VAR1_VAR2, HOM_VAR1
+        HOM_VAR2 (INCOMPARABLE_CODE.ordinal()), // var2/var2, valid only for TruthStates: HET_REF_VAR1, HET_VAR1_VAR2, HOM_VAR1
+        HOM_VAR3 (INCOMPARABLE_CODE.ordinal()), // var3/var3, valid only for TruthStates: HET_VAR1_VAR2
+        NO_CALL (NO_CALL_CODE.ordinal()),
+        LOW_GQ (LOW_GQ_CODE.ordinal()),
+        LOW_DP (LOW_DP_CODE.ordinal()),
+        VC_FILTERED (VC_FILTERED_CODE.ordinal()),
+        GT_FILTERED (GT_FILTERED_CODE.ordinal()),
+        IS_MIXED (IS_MIXED_CODE.ordinal());
+
+
+        public static CallState getHom(final int alleleIdx) {
+            if (alleleIdx == 0) return HOM_REF;
+            if (alleleIdx == 1) return HOM_VAR1;
+            if (alleleIdx == 2) return HOM_VAR2;
+            if (alleleIdx == 3) return HOM_VAR3;
+
+            assert false;
+            return null;
+        }
+
+        public static CallState getHet(int allele0idx, int allele1idx) {
+
+            if(allele0idx > allele1idx){
+                final int temp = allele0idx;
+                allele0idx=allele1idx;
+                allele1idx=temp;
+            }
+            if(allele0idx == 0) { //REF CASE
+                if (allele1idx == 1) return HET_REF_VAR1;
+                if (allele1idx == 2) return HET_REF_VAR2;
+                if (allele1idx == 3) return HET_REF_VAR3;
+                assert false;
+                return null;
+            }
+
+            //HET CASES
+            if(allele0idx == 1) {
+                if (allele1idx == 2) return HET_VAR1_VAR2;
+                if (allele1idx == 3) return HET_VAR1_VAR3;
+                assert false;
+                return null;
+            }
+
+            if(allele0idx == 2 && allele1idx == 3) return HET_VAR3_VAR4; //special case not a mistake.
+            if(allele0idx == 3 && allele1idx == 4) return HET_VAR3_VAR4;
+
+            assert false;
+            return null;
+        }
+
+        private final int code;
+
+        private CallState(final int code) {
+            this.code = code;
+        }
+
+        public int getCode() { return this.code; }
+    }
+
+    /**
+     * A specific state for a 2x2 contingency table.
+     * NA denotes an invalid state that should not be reachable by the code.
+     * EMPTY denotes that no conclusion could be drawn from the data.
+     */
+    enum ContingencyState {
+        TP,
+        FP,
+        TN,
+        FN,
+        NA,
+        EMPTY
+    }
+
+    /**
+     * A minute class to store the truth and call state respectively.
+     */
+    static class TruthAndCallStates implements Comparable<TruthAndCallStates>{
+        public final TruthState truthState;
+        public final CallState callState;
+
+        public TruthAndCallStates(final TruthState truthState, final CallState callState) {
+            this.truthState = truthState;
+            this.callState = callState;
+        }
+
+        @Override
+        public boolean equals(final Object o) {
+            if (this == o) return true;
+            if (o == null || getClass() != o.getClass()) return false;
+            return compareTo((TruthAndCallStates) o) == 0;
+        }
+
+        @Override
+        public int hashCode() {
+            int result = truthState.hashCode();
+            result = 31 * result + callState.hashCode();
+            return result;
+        }
+
+        @Override
+        public int compareTo(final TruthAndCallStates that) {
+            int result = this.truthState.compareTo(that.truthState);
+            if (result == 0) result = this.callState.compareTo(that.callState);
+            return result;
+        }
+    }
+}
diff --git a/src/java/picard/vcf/GenotypeConcordanceSummaryMetrics.java b/src/java/picard/vcf/GenotypeConcordanceSummaryMetrics.java
new file mode 100644
index 0000000..f58b2ae
--- /dev/null
+++ b/src/java/picard/vcf/GenotypeConcordanceSummaryMetrics.java
@@ -0,0 +1,90 @@
+package picard.vcf;
+
+import htsjdk.samtools.metrics.MetricBase;
+import htsjdk.variant.variantcontext.VariantContext;
+
+/**
+ * Class that holds summary metrics about Genotype Concordance
+ *
+ * @author George Grant
+ */
+public class GenotypeConcordanceSummaryMetrics extends MetricBase {
+    /**
+     * Empty constructor - needed for unit tests
+     */
+    public GenotypeConcordanceSummaryMetrics() {
+    }
+
+    GenotypeConcordanceSummaryMetrics(final VariantContext.Type variantType, final GenotypeConcordanceCounts concordanceCounts,
+                                      final String truthSample, final String callSample, final boolean missingSitesFlag) {
+        this.VARIANT_TYPE = variantType;
+        this.TRUTH_SAMPLE = truthSample;
+        this.CALL_SAMPLE = callSample;
+
+        final GenotypeConcordanceSchemeFactory schemeFactory = new GenotypeConcordanceSchemeFactory();
+        final GenotypeConcordanceScheme scheme = schemeFactory.getScheme(missingSitesFlag);
+        scheme.validateScheme();
+        concordanceCounts.validateCountsAgainstScheme(scheme);
+
+        this.HET_SENSITIVITY = concordanceCounts.getSensitivity(scheme, GenotypeConcordanceCounts.HET_TRUTH_STATES);
+        this.HET_PPV = concordanceCounts.Ppv(scheme, GenotypeConcordanceCounts.HET_CALL_STATES);
+        this.HET_SPECIFICITY = Double.NaN;
+
+        this.HOMVAR_SENSITIVITY = concordanceCounts.getSensitivity(scheme, GenotypeConcordanceCounts.HOM_VAR_TRUTH_STATES);
+        this.HOMVAR_PPV = concordanceCounts.Ppv(scheme, GenotypeConcordanceCounts.HOM_VAR_CALL_STATES);
+        this.HOMVAR_SPECIFICITY = Double.NaN;
+
+        this.VAR_SENSITIVITY = concordanceCounts.getSensitivity(scheme, GenotypeConcordanceCounts.VAR_TRUTH_STATES);
+        this.VAR_PPV = concordanceCounts.Ppv(scheme, GenotypeConcordanceCounts.VAR_CALL_STATES);
+        this.VAR_SPECIFICITY = concordanceCounts.getSpecificity(scheme, GenotypeConcordanceCounts.VAR_TRUTH_STATES);
+
+        this.GENOTYPE_CONCORDANCE = concordanceCounts.calculateGenotypeConcordance(scheme, missingSitesFlag);
+        this.NON_REF_GENOTYPE_CONCORDANCE = concordanceCounts.calculateNonRefGenotypeConcordance(scheme, missingSitesFlag);
+    }
+
+    /** The type of the event (i.e. either SNP or INDEL) */
+    public VariantContext.Type VARIANT_TYPE;
+
+    /** The name of the 'truth' sample */
+    public String TRUTH_SAMPLE;
+
+    /** The name of the 'call' sample */
+    public String CALL_SAMPLE;
+
+    /** The sensitivity for all heterozygous variants (Sensitivity is TP / (TP + FN)) */
+    public double HET_SENSITIVITY;
+
+    /** The ppv (positive predictive value) for all heterozygous variants (PPV is the TP / (TP + FP)) */
+    public double HET_PPV;
+
+    /** The specificity for all heterozygous variants cannot be calculated */
+    public double HET_SPECIFICITY;
+
+    /** The sensitivity for all homozygous variants (Sensitivity is TP / (TP + FN)) */
+    public double HOMVAR_SENSITIVITY;
+
+    /** The ppv (positive predictive value) for all homozygous variants (PPV is the TP / (TP + FP)) */
+    public double HOMVAR_PPV;
+
+    /** The specificity for all homozygous variants cannot be calculated. */
+    public double HOMVAR_SPECIFICITY;
+
+    /** The sensitivity for all (heterozygous and homozygous) variants (Sensitivity is TP / (TP + FN)) */
+    public double VAR_SENSITIVITY;
+
+    /** The ppv (positive predictive value) for all (heterozygous and homozygous) variants (PPV is the TP / (TP + FP)) */
+    public double VAR_PPV;
+
+    /** The specificity for all (heterozygous and homozygous) variants (Specificity is TN / (FP + TN)) */
+    public double VAR_SPECIFICITY;
+
+    /** The genotype concordance for all possible states.
+     *  Genotype Concordance is the number of times the truth and call states match exactly / all truth and call combinations made
+     */
+    public double GENOTYPE_CONCORDANCE;
+
+    /** The non-ref genotype concordance, ie for all var states only.
+     * Non Ref Genotype Concordance is the number of times the truth and call states match exactly for *vars only* / all truth and call *var* combinations made
+     */
+    public double NON_REF_GENOTYPE_CONCORDANCE;
+}
diff --git a/src/java/picard/vcf/LiftoverVcf.java b/src/java/picard/vcf/LiftoverVcf.java
new file mode 100644
index 0000000..0d8cb26
--- /dev/null
+++ b/src/java/picard/vcf/LiftoverVcf.java
@@ -0,0 +1,233 @@
+package picard.vcf;
+
+import htsjdk.samtools.Defaults;
+import htsjdk.samtools.SAMSequenceRecord;
+import htsjdk.samtools.liftover.LiftOver;
+import htsjdk.samtools.reference.ReferenceSequenceFileWalker;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.CollectionUtil;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Interval;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.ProgressLogger;
+import htsjdk.samtools.util.SequenceUtil;
+import htsjdk.samtools.util.SortingCollection;
+import htsjdk.samtools.util.StringUtil;
+import htsjdk.variant.variantcontext.Allele;
+import htsjdk.variant.variantcontext.VariantContext;
+import htsjdk.variant.variantcontext.VariantContextBuilder;
+import htsjdk.variant.variantcontext.writer.Options;
+import htsjdk.variant.variantcontext.writer.VariantContextWriter;
+import htsjdk.variant.variantcontext.writer.VariantContextWriterBuilder;
+import htsjdk.variant.vcf.VCFFileReader;
+import htsjdk.variant.vcf.VCFFilterHeaderLine;
+import htsjdk.variant.vcf.VCFHeader;
+import htsjdk.variant.vcf.VCFRecordCodec;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.VcfOrBcf;
+
+import java.io.File;
+import java.text.DecimalFormat;
+import java.text.NumberFormat;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Tool for lifting over a VCF to another genome build and producing a properly header'd,
+ * sorted and indexed VCF in one go.
+ *
+ * @author Tim Fennell
+ */
+ at CommandLineProgramProperties(
+        usage = "Lifts a VCF over from one genome build to another using UCSC liftover. The output file will be sorted " +
+                "and indexed. Records may be rejected because they cannot be lifted over or because post-liftover the " +
+                "reference allele mismatches the target genome build.  Rejected records will be emitted with filters " +
+                "to the REJECT file, on the source genome.",
+        usageShort = "Lifts a VCF between genome builds.",
+        programGroup = VcfOrBcf.class
+)
+public class LiftoverVcf extends CommandLineProgram {
+    @Option(shortName=StandardOptionDefinitions.INPUT_SHORT_NAME, doc="The input VCF/BCF file to be lifted over.")
+    public File INPUT;
+
+    @Option(shortName=StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc="The output location to write the lifted over VCF/BCF to.")
+    public File OUTPUT;
+
+    @Option(shortName="C", doc="The liftover chain file. See https://genome.ucsc.edu/goldenPath/help/chain.html for a description" +
+            " of chain files.  See http://hgdownload.soe.ucsc.edu/downloads.html#terms for where to download chain files.")
+    public File CHAIN;
+
+    @Option(doc="File to which to write rejected records.")
+    public File REJECT;
+
+    @Option(shortName = StandardOptionDefinitions.REFERENCE_SHORT_NAME, common=false,
+            doc = "The reference sequence (fasta) for the TARGET genome build.  The fasta file must have an " +
+                    "accompanying sqeuence dictionary (.dict file).")
+    public File REFERENCE_SEQUENCE = Defaults.REFERENCE_FASTA;
+
+    /** Filter name to use when a target cannot be lifted over. */
+    public static final String FILTER_CANNOT_LIFTOVER = "FailedLiftover";
+
+    /** Filter name to use when a target is lifted over, but the reference allele doens't match the new reference. */
+    public static final String FILTER_MISMATCHING_REF_ALLELE = "MismatchedRefAllele";
+
+    /** Filters to be added to the REJECT file. */
+    private static final List<VCFFilterHeaderLine> FILTERS = CollectionUtil.makeList(
+            new VCFFilterHeaderLine(FILTER_CANNOT_LIFTOVER, "Variant could not be lifted between genome builds."),
+            new VCFFilterHeaderLine(FILTER_MISMATCHING_REF_ALLELE, "Reference allele does not match reference genome sequence after liftover.")
+    );
+
+    private final Log log = Log.getInstance(LiftoverVcf.class);
+
+    // Stock main method
+    public static void main(final String[] args) {
+        new LiftoverVcf().instanceMainWithExit(args);
+    }
+
+    @Override protected int doWork() {
+        IOUtil.assertFileIsReadable(INPUT);
+        IOUtil.assertFileIsReadable(REFERENCE_SEQUENCE);
+        IOUtil.assertFileIsReadable(CHAIN);
+        IOUtil.assertFileIsWritable(OUTPUT);
+        IOUtil.assertFileIsWritable(REJECT);
+
+        ////////////////////////////////////////////////////////////////////////
+        // Setup the inputs
+        ////////////////////////////////////////////////////////////////////////
+        final LiftOver liftOver = new LiftOver(CHAIN);
+        final VCFFileReader in = new VCFFileReader(INPUT, false);
+
+        log.info("Loading up the target reference genome.");
+        final ReferenceSequenceFileWalker walker = new ReferenceSequenceFileWalker(REFERENCE_SEQUENCE);
+        final Map<String,byte[]> refSeqs = new HashMap<String,byte[]>();
+        for (final SAMSequenceRecord rec: walker.getSequenceDictionary().getSequences()) {
+            refSeqs.put(rec.getSequenceName(), walker.get(rec.getSequenceIndex()).getBases());
+        }
+        CloserUtil.close(walker);
+
+
+        ////////////////////////////////////////////////////////////////////////
+        // Setup the outputs
+        ////////////////////////////////////////////////////////////////////////
+        final VCFHeader inHeader = in.getFileHeader();
+        final VCFHeader outHeader = new VCFHeader(inHeader);
+        outHeader.setSequenceDictionary(walker.getSequenceDictionary());
+        final VariantContextWriter out = new VariantContextWriterBuilder().setOption(Options.INDEX_ON_THE_FLY)
+                .setOutputFile(OUTPUT).setReferenceDictionary(walker.getSequenceDictionary()).build();
+        out.writeHeader(outHeader);
+
+        final VariantContextWriter rejects = new VariantContextWriterBuilder().setOutputFile(REJECT).unsetOption(Options.INDEX_ON_THE_FLY).build();
+        final VCFHeader rejectHeader = new VCFHeader(in.getFileHeader());
+        for (final VCFFilterHeaderLine line : FILTERS) rejectHeader.addMetaDataLine(line);
+        rejects.writeHeader(rejectHeader);
+
+
+        ////////////////////////////////////////////////////////////////////////
+        // Read the input VCF, lift the records over and write to the sorting
+        // collection.
+        ////////////////////////////////////////////////////////////////////////
+        long failedLiftover = 0, failedAlleleCheck = 0, total = 0;
+        log.info("Lifting variants over and sorting.");
+
+        final SortingCollection<VariantContext> sorter = SortingCollection.newInstance(VariantContext.class,
+                new VCFRecordCodec(outHeader),
+                outHeader.getVCFRecordComparator(),
+                MAX_RECORDS_IN_RAM,
+                TMP_DIR);
+
+        ProgressLogger progress = new ProgressLogger(log, 1000000, "read");
+
+        for (final VariantContext ctx : in) {
+            ++total;
+            final Interval source = new Interval(ctx.getContig(), ctx.getStart(), ctx.getEnd(), false, ctx.getContig() + ":" + ctx.getStart() + "-" + ctx.getEnd());
+            final Interval target = liftOver.liftOver(source, 1.0);
+
+            if (target == null) {
+                rejects.add(new VariantContextBuilder(ctx).filter(FILTER_CANNOT_LIFTOVER).make());
+                failedLiftover++;
+            }
+            else {
+                // Fix the alleles if we went from positive to negative strand
+                final List<Allele> alleles = new ArrayList<Allele>();
+                for (final Allele oldAllele : ctx.getAlleles()) {
+                    if (target.isPositiveStrand() || oldAllele.isSymbolic()) {
+                        alleles.add(oldAllele);
+                    }
+                    else {
+                        alleles.add(Allele.create(SequenceUtil.reverseComplement(oldAllele.getBaseString()), oldAllele.isReference()));
+                    }
+                }
+
+                // Build the new variant context
+                final VariantContextBuilder builder = new VariantContextBuilder(
+                        ctx.getSource(),
+                        target.getContig(),
+                        target.getStart(),
+                        target.getEnd(),
+                        alleles);
+
+                builder.id(ctx.getID());
+                builder.attributes(ctx.getAttributes());
+                builder.genotypes(ctx.getGenotypes());
+                builder.filters(ctx.getFilters());
+                builder.log10PError(ctx.getLog10PError());
+
+                // Check that the reference allele still agrees with the reference sequence
+                boolean mismatchesReference = false;
+                for (final Allele allele : builder.getAlleles()) {
+                    if (allele.isReference()) {
+                        final byte[] ref = refSeqs.get(target.getContig());
+                        final String refString = StringUtil.bytesToString(ref, target.getStart()-1, target.length());
+
+                        if (!refString.equalsIgnoreCase(allele.getBaseString())) {
+                            mismatchesReference = true;
+                        }
+
+                        break;
+                    }
+                }
+
+                if (mismatchesReference) {
+                    rejects.add(new VariantContextBuilder(ctx).filter(FILTER_MISMATCHING_REF_ALLELE).make());
+                    failedAlleleCheck++;
+                }
+                else {
+                    sorter.add(builder.make());
+                }
+            }
+
+            progress.record(ctx.getContig(), ctx.getStart());
+        }
+
+        final NumberFormat pfmt = new DecimalFormat("0.0000%");
+        final String pct = pfmt.format((failedLiftover + failedAlleleCheck) / (double) total);
+        log.info("Processed ", total, " variants.");
+        log.info(failedLiftover, " variants failed to liftover.");
+        log.info(failedAlleleCheck, " variants lifted over but had mismatching reference alleles after lift over.");
+        log.info(pct, " of variants were not successfully lifted over and written to the output.");
+
+        rejects.close();
+        in.close();
+
+        ////////////////////////////////////////////////////////////////////////
+        // Write the sorted outputs to the final output file
+        ////////////////////////////////////////////////////////////////////////
+        sorter.doneAdding();
+        progress = new ProgressLogger(log, 1000000, "written");
+        log.info("Writing out sorted records to final VCF.");
+
+        for (final VariantContext ctx : sorter) {
+            out.add(ctx);
+            progress.record(ctx.getContig(), ctx.getStart());
+        }
+        out.close();
+        sorter.cleanup();
+
+        return 0;
+    }
+}
\ No newline at end of file
diff --git a/src/java/picard/vcf/MakeSitesOnlyVcf.java b/src/java/picard/vcf/MakeSitesOnlyVcf.java
new file mode 100644
index 0000000..879570f
--- /dev/null
+++ b/src/java/picard/vcf/MakeSitesOnlyVcf.java
@@ -0,0 +1,111 @@
+package picard.vcf;
+
+import htsjdk.samtools.SAMSequenceDictionary;
+import htsjdk.samtools.util.CloseableIterator;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.ProgressLogger;
+import htsjdk.variant.variantcontext.GenotypesContext;
+import htsjdk.variant.variantcontext.VariantContext;
+import htsjdk.variant.variantcontext.VariantContextBuilder;
+import htsjdk.variant.variantcontext.writer.Options;
+import htsjdk.variant.variantcontext.writer.VariantContextWriter;
+import htsjdk.variant.variantcontext.writer.VariantContextWriterBuilder;
+import htsjdk.variant.vcf.VCFFileReader;
+import htsjdk.variant.vcf.VCFHeader;
+import picard.PicardException;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.VcfOrBcf;
+
+import java.io.File;
+import java.util.Set;
+import java.util.TreeSet;
+
+/**
+ * Writes out a VCF that contains all the site-level information for all records in the input VCF and no per-sample information.
+ *
+ * @author Tim Fennell
+ */
+ at CommandLineProgramProperties(
+        usage = "Reads a VCF/VCF.gz/BCF and removes all genotype information from it while retaining " +
+                "all site level information, including annotations based on genotypes (e.g. AN, AF). Output an be " +
+                "any support variant format including .vcf, .vcf.gz or .bcf.",
+        usageShort = "Creates a VCF bereft of genotype information from an input VCF or BCF",
+        programGroup = VcfOrBcf.class
+)
+public class MakeSitesOnlyVcf extends CommandLineProgram {
+
+    @Option(shortName= StandardOptionDefinitions.INPUT_SHORT_NAME, doc="Input VCF or BCF")
+    public File INPUT;
+
+    @Option(shortName=StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc="Output VCF or BCF to emit without per-sample info.")
+    public File OUTPUT;
+
+    @Option(shortName="S", doc="Optionally one or more samples to retain when building the 'sites-only' VCF.", optional=true)
+    public Set<String> SAMPLE = new TreeSet<String>();
+
+    // Stock main method
+    public static void main(final String[] args) {
+        new MakeSitesOnlyVcf().instanceMainWithExit(args);
+    }
+
+	public MakeSitesOnlyVcf() {
+		CREATE_INDEX = true;
+	}
+
+    @Override
+    protected int doWork() {
+        IOUtil.assertFileIsReadable(INPUT);
+        IOUtil.assertFileIsWritable(OUTPUT);
+
+	    final VCFFileReader reader = new VCFFileReader(INPUT, false);
+	    final VCFHeader inputVcfHeader = new VCFHeader(reader.getFileHeader().getMetaDataInInputOrder());
+	    final SAMSequenceDictionary sequenceDictionary = inputVcfHeader.getSequenceDictionary();
+
+	    if (CREATE_INDEX && sequenceDictionary == null) {
+		    throw new PicardException("A sequence dictionary must be available (either through the input file or by setting it explicitly) when creating indexed output.");
+	    }
+
+        final ProgressLogger progress = new ProgressLogger(Log.getInstance(MakeSitesOnlyVcf.class), 10000);
+
+        // Setup the site-only file writer
+        final VariantContextWriterBuilder builder = new VariantContextWriterBuilder()
+                .setOutputFile(OUTPUT)
+                .setReferenceDictionary(sequenceDictionary);
+        if (CREATE_INDEX)
+            builder.setOption(Options.INDEX_ON_THE_FLY);
+        else
+            builder.unsetOption(Options.INDEX_ON_THE_FLY);
+        final VariantContextWriter writer = builder.build();
+
+        final VCFHeader header = new VCFHeader(inputVcfHeader.getMetaDataInInputOrder(), SAMPLE);
+        writer.writeHeader(header);
+
+        // Go through the input, strip the records and write them to the output
+        final CloseableIterator<VariantContext> iterator = reader.iterator();
+	    while (iterator.hasNext()) {
+		    final VariantContext full = iterator.next();
+            final VariantContext site = subsetToSamplesWithOriginalAnnotations(full, SAMPLE);
+            writer.add(site);
+            progress.record(site.getChr(), site.getStart());
+        }
+
+	    CloserUtil.close(iterator);
+	    CloserUtil.close(reader);
+	    writer.close();
+
+        return 0;
+    }
+
+    /** Makes a new VariantContext with only the desired samples. */
+    private static VariantContext subsetToSamplesWithOriginalAnnotations(final VariantContext ctx, final Set<String> samples) {
+        final VariantContextBuilder builder = new VariantContextBuilder(ctx);
+        final GenotypesContext newGenotypes = ctx.getGenotypes().subsetToSamples(samples);
+        builder.alleles(ctx.getAlleles());
+        return builder.genotypes(newGenotypes).make();
+    }
+}
diff --git a/src/java/picard/vcf/MergeVcfs.java b/src/java/picard/vcf/MergeVcfs.java
new file mode 100644
index 0000000..7e5ec7c
--- /dev/null
+++ b/src/java/picard/vcf/MergeVcfs.java
@@ -0,0 +1,161 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2012 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.vcf;
+
+import htsjdk.samtools.SAMSequenceDictionary;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.util.CloseableIterator;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.MergingIterator;
+import htsjdk.samtools.util.ProgressLogger;
+import htsjdk.variant.variantcontext.VariantContext;
+import htsjdk.variant.variantcontext.VariantContextComparator;
+import htsjdk.variant.variantcontext.writer.Options;
+import htsjdk.variant.variantcontext.writer.VariantContextWriter;
+import htsjdk.variant.variantcontext.writer.VariantContextWriterBuilder;
+import htsjdk.variant.vcf.VCFFileReader;
+import htsjdk.variant.vcf.VCFHeader;
+import htsjdk.variant.vcf.VCFUtils;
+import picard.PicardException;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.VcfOrBcf;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+
+/**
+ * Combines multiple VCF files into a single file. Input files must be sorted by their contigs
+ * and, within contigs, by start position. Throws IllegalArgumentException if the contig lists
+ * are not present in the input files, are not identical or if the sample lists are not the
+ * same; this class uses the GATK to merge headers, which may throw exceptions if the headers
+ * cannot be merged. See VCFUtils.smartMergeHeaders for details.
+ * <p/>
+ * An index file is created for the output file by default. Using an output file name with a
+ * ".gz" extension will create gzip-compressed output.
+ */
+ at CommandLineProgramProperties(
+        usage = "Merges multiple VCF or BCF files into one VCF file. Input files must be sorted by their contigs " +
+                "and, within contigs, by start position. The input files must have the same sample and " +
+                "contig lists. An index file is created and a sequence dictionary is required by default.",
+        usageShort = "Merges multiple VCF or BCF files into one VCF file or BCF",
+        programGroup = VcfOrBcf.class
+)
+public class MergeVcfs extends CommandLineProgram {
+
+    @Option(shortName= StandardOptionDefinitions.INPUT_SHORT_NAME, doc="VCF or BCF input files File format is determined by file extension.", minElements=1)
+    public List<File> INPUT;
+
+    @Option(shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc = "The merged VCF or BCF file. File format is determined by file extension.")
+    public File OUTPUT;
+
+    @Option(shortName = "D", doc = "The index sequence dictionary to use instead of the sequence dictionary in the input file", optional = true)
+    public File SEQUENCE_DICTIONARY;
+
+    private final Log log = Log.getInstance(MergeVcfs.class);
+
+    public static void main(final String[] argv) {
+        new MergeVcfs().instanceMainWithExit(argv);
+    }
+
+    public MergeVcfs() {
+        this.CREATE_INDEX = true;
+    }
+
+    @Override
+    protected int doWork() {
+        final ProgressLogger progress = new ProgressLogger(log, 10000);
+        final List<String> sampleList = new ArrayList<String>();
+        final Collection<CloseableIterator<VariantContext>> iteratorCollection = new ArrayList<CloseableIterator<VariantContext>>(INPUT.size());
+        final Collection<VCFHeader> headers = new HashSet<VCFHeader>(INPUT.size());
+
+        VariantContextComparator variantContextComparator = null;
+        SAMSequenceDictionary sequenceDictionary = null;
+
+        if (SEQUENCE_DICTIONARY != null) {
+            sequenceDictionary = SamReaderFactory.makeDefault().referenceSequence(REFERENCE_SEQUENCE).open(SEQUENCE_DICTIONARY).getFileHeader().getSequenceDictionary();
+        }
+
+        for (final File file : INPUT) {
+            IOUtil.assertFileIsReadable(file);
+            final VCFFileReader fileReader = new VCFFileReader(file, false);
+            final VCFHeader fileHeader = fileReader.getFileHeader();
+
+            if (variantContextComparator == null) {
+                variantContextComparator = fileHeader.getVCFRecordComparator();
+            } else {
+                if (!variantContextComparator.isCompatible(fileHeader.getContigLines())) {
+                    throw new IllegalArgumentException(
+                            "The contig entries in input file " + file.getAbsolutePath() + " are not compatible with the others.");
+                }
+            }
+
+            if (sequenceDictionary == null) sequenceDictionary = fileHeader.getSequenceDictionary();
+
+            if (sampleList.isEmpty()) {
+                sampleList.addAll(fileHeader.getSampleNamesInOrder());
+            } else {
+                if (!sampleList.equals(fileHeader.getSampleNamesInOrder())) {
+                    throw new IllegalArgumentException("Input file " + file.getAbsolutePath() + " has sample entries that don't match the other files.");
+                }
+            }
+
+            headers.add(fileHeader);
+            iteratorCollection.add(fileReader.iterator());
+        }
+
+        if (CREATE_INDEX && sequenceDictionary == null) {
+            throw new PicardException("A sequence dictionary must be available (either through the input file or by setting it explicitly) when creating indexed output.");
+        }
+
+        final VariantContextWriterBuilder builder = new VariantContextWriterBuilder()
+                .setOutputFile(OUTPUT)
+                .setReferenceDictionary(sequenceDictionary)
+                .clearOptions();
+        if (CREATE_INDEX) {
+            builder.setOption(Options.INDEX_ON_THE_FLY);
+        }
+        final VariantContextWriter writer = builder.build();
+
+        writer.writeHeader(new VCFHeader(VCFUtils.smartMergeHeaders(headers, false), sampleList));
+
+        final MergingIterator<VariantContext> mergingIterator = new MergingIterator<VariantContext>(variantContextComparator, iteratorCollection);
+        while (mergingIterator.hasNext()) {
+            final VariantContext context = mergingIterator.next();
+            writer.add(context);
+            progress.record(context.getChr(), context.getStart());
+        }
+
+        CloserUtil.close(mergingIterator);
+        writer.close();
+        return 0;
+    }
+}
diff --git a/src/java/picard/vcf/RenameSampleInVcf.java b/src/java/picard/vcf/RenameSampleInVcf.java
new file mode 100644
index 0000000..a5ff626
--- /dev/null
+++ b/src/java/picard/vcf/RenameSampleInVcf.java
@@ -0,0 +1,99 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.vcf;
+
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.CollectionUtil;
+import htsjdk.variant.variantcontext.VariantContext;
+import htsjdk.variant.variantcontext.writer.Options;
+import htsjdk.variant.variantcontext.writer.VariantContextWriter;
+import htsjdk.variant.variantcontext.writer.VariantContextWriterFactory;
+import htsjdk.variant.vcf.VCFFileReader;
+import htsjdk.variant.vcf.VCFHeader;
+import picard.cmdline.programgroups.VcfOrBcf;
+
+import java.io.File;
+import java.util.EnumSet;
+
+ at CommandLineProgramProperties(
+        usage = "Rename a sample within a VCF or BCF.",
+        usageShort = "Rename a sample within a VCF or BCF.",
+        programGroup = VcfOrBcf.class
+)
+public class RenameSampleInVcf extends CommandLineProgram {
+    @Option(shortName=StandardOptionDefinitions.INPUT_SHORT_NAME, doc="Input single sample VCF.")
+    public File INPUT;
+
+    @Option(shortName=StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc="Output single sample VCF.")
+    public File OUTPUT;
+
+    @Option(doc="Existing name of sample in VCF; if provided, asserts that that is the name of the extant sample name", optional = true)
+    public String OLD_SAMPLE_NAME = null;
+
+    @Option(doc="New name to give sample in output VCF.")
+    public String NEW_SAMPLE_NAME;
+
+
+    public static void main(final String[] args) {
+        new RenameSampleInVcf().instanceMainWithExit(args);
+    }
+
+    @Override
+    protected int doWork() {
+        IOUtil.assertFileIsReadable(INPUT);
+        IOUtil.assertFileIsWritable(OUTPUT);
+
+        final VCFFileReader in = new VCFFileReader(INPUT);
+        final VCFHeader header = in.getFileHeader();
+
+        if (header.getGenotypeSamples().size() > 1) {
+            throw new IllegalArgumentException("Input VCF must be single-sample.");
+        }
+
+        if (OLD_SAMPLE_NAME != null && !OLD_SAMPLE_NAME.equals(header.getGenotypeSamples().get(0))) {
+            throw new IllegalArgumentException("Input VCF did not contain expected sample. Contained: " + header.getGenotypeSamples().get(0));
+        }
+
+        final EnumSet<Options> options = EnumSet.copyOf(VariantContextWriterFactory.DEFAULT_OPTIONS);
+        if (CREATE_INDEX) options.add(Options.INDEX_ON_THE_FLY); else options.remove(Options.INDEX_ON_THE_FLY);
+
+        final VCFHeader outHeader = new VCFHeader(header.getMetaDataInInputOrder(), CollectionUtil.makeList(NEW_SAMPLE_NAME));
+        final VariantContextWriter out = VariantContextWriterFactory.create(OUTPUT, outHeader.getSequenceDictionary(), options);
+        out.writeHeader(outHeader);
+
+        for (final VariantContext ctx : in) {
+            out.add(ctx);
+        }
+
+        out.close();
+        in.close();
+
+        return 0;
+    }
+}
diff --git a/src/java/picard/vcf/SortVcf.java b/src/java/picard/vcf/SortVcf.java
new file mode 100644
index 0000000..8af8ed8
--- /dev/null
+++ b/src/java/picard/vcf/SortVcf.java
@@ -0,0 +1,177 @@
+package picard.vcf;
+
+import htsjdk.samtools.SAMSequenceDictionary;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.ProgressLogger;
+import htsjdk.samtools.util.SortingCollection;
+import htsjdk.variant.variantcontext.VariantContext;
+import htsjdk.variant.variantcontext.writer.Options;
+import htsjdk.variant.variantcontext.writer.VariantContextWriter;
+import htsjdk.variant.variantcontext.writer.VariantContextWriterBuilder;
+import htsjdk.variant.vcf.VCFFileReader;
+import htsjdk.variant.vcf.VCFHeader;
+import htsjdk.variant.vcf.VCFRecordCodec;
+import htsjdk.variant.vcf.VCFUtils;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.VcfOrBcf;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.EnumSet;
+import java.util.List;
+
+/**
+ * Sorts one or more VCF files according to the order of the contigs in the header/sequence dictionary and then
+ * by coordinate.  Can accept an external dictionary. If no external dictionary is supplied, multiple inputs' headers must have
+ * the same sequence dictionaries
+ */
+ at CommandLineProgramProperties(
+        usage = "Sorts one or more VCF files according to the order of the contigs in the header/sequence dictionary and then by coordinate. " +
+        "Can accept an external sequence dictionary. If no external dictionary is supplied, multiple inputs' headers must have " +
+        "the same sequence dictionaries. Multiple inputs must have the same sample names (in order)\n",
+        usageShort = "Sorts one or more VCF files",
+        programGroup = VcfOrBcf.class
+)
+public class SortVcf extends CommandLineProgram {
+
+    @Option(shortName = StandardOptionDefinitions.INPUT_SHORT_NAME, doc = "Input VCF(s) to be sorted. Multiple inputs must have the same sample names (in order)")
+    public List<File> INPUT;
+
+    @Option(shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc = "Output VCF to be written.")
+    public File OUTPUT;
+
+    @Option(shortName = StandardOptionDefinitions.SEQUENCE_DICTIONARY_SHORT_NAME, optional = true)
+    public File SEQUENCE_DICTIONARY;
+
+    private final Log log = Log.getInstance(SortVcf.class);
+
+    private final List<VCFFileReader> inputReaders = new ArrayList<VCFFileReader>();
+    private final List<VCFHeader> inputHeaders = new ArrayList<VCFHeader>();
+
+    public static void main(final String[] args) {
+        new SortVcf().instanceMainWithExit(args);
+    }
+
+    // Overrides the option default, including in the help message. Option remains settable on commandline.
+    public SortVcf() {
+        this.CREATE_INDEX = true;
+    }
+
+    @Override
+    protected int doWork() {
+        final List<String> sampleList = new ArrayList<String>();
+
+        for (final File input : INPUT) IOUtil.assertFileIsReadable(input);
+
+        if (SEQUENCE_DICTIONARY != null) IOUtil.assertFileIsReadable(SEQUENCE_DICTIONARY);
+
+        SAMSequenceDictionary samSequenceDictionary = null;
+        if (SEQUENCE_DICTIONARY != null) {
+            samSequenceDictionary = SamReaderFactory.makeDefault().referenceSequence(REFERENCE_SEQUENCE).getFileHeader(SEQUENCE_DICTIONARY).getSequenceDictionary();
+            CloserUtil.close(SEQUENCE_DICTIONARY);
+        }
+
+        // Gather up a file reader and file header for each input file. Check for sequence dictionary compatibility along the way.
+        collectFileReadersAndHeaders(sampleList, samSequenceDictionary);
+
+        // Create the merged output header from the input headers
+        final VCFHeader outputHeader = new VCFHeader(VCFUtils.smartMergeHeaders(inputHeaders, false), sampleList);
+
+        // Load entries into the sorting collection
+        final SortingCollection<VariantContext> sortedOutput = sortInputs(inputReaders, outputHeader);
+
+        // Output to the final file
+        writeSortedOutput(outputHeader, sortedOutput);
+
+        return 0;
+    }
+
+    private void collectFileReadersAndHeaders(final List<String> sampleList, SAMSequenceDictionary samSequenceDictionary) {
+        for (final File input : INPUT) {
+            final VCFFileReader in = new VCFFileReader(input, false);
+            final VCFHeader header = in.getFileHeader();
+            final SAMSequenceDictionary dict = in.getFileHeader().getSequenceDictionary();
+            if (dict == null || dict.isEmpty()) {
+                if (null == samSequenceDictionary) {
+                    throw new IllegalArgumentException("Sequence dictionary was missing or empty for the VCF: " + input.getAbsolutePath() + " Please add a sequence dictionary to this VCF or specify SEQUENCE_DICTIONARY.");
+                }
+                header.setSequenceDictionary(samSequenceDictionary);
+            } else {
+                if (null == samSequenceDictionary) {
+                    samSequenceDictionary = dict;
+                } else {
+                    try {
+                        samSequenceDictionary.assertSameDictionary(dict);
+                    } catch (final AssertionError e) {
+                        throw new IllegalArgumentException(e);
+                    }
+                }
+            }
+            if (sampleList.isEmpty()) {
+                sampleList.addAll(header.getSampleNamesInOrder());
+            } else {
+                if (!sampleList.equals(header.getSampleNamesInOrder())) {
+                    throw new IllegalArgumentException("Input file " + input.getAbsolutePath() + " has sample names that don't match the other files.");
+                }
+            }
+            inputReaders.add(in);
+            inputHeaders.add(header);
+        }
+    }
+
+    /**
+     * Merge the inputs and sort them by adding each input's content to a single SortingCollection.
+     * <p/>
+     * NB: It would be better to have a merging iterator as in MergeSamFiles, as this would perform better for pre-sorted inputs.
+     * Here, we are assuming inputs are unsorted, and so adding their VariantContexts iteratively is fine for now.
+     * MergeVcfs exists for simple merging of presorted inputs.
+     *
+     * @param readers      - a list of VCFFileReaders, one for each input VCF
+     * @param outputHeader - The merged header whose information we intend to use in the final output file
+     */
+    private SortingCollection<VariantContext> sortInputs(final List<VCFFileReader> readers, final VCFHeader outputHeader) {
+        final ProgressLogger readProgress = new ProgressLogger(log, 25000, "read", "records");
+
+        // NB: The default MAX_RECORDS_IN_RAM may not be appropriate here. VariantContexts are smaller than SamRecords
+        // We would have to play around empirically to find an appropriate value. We are not performing this optimization at this time.
+        final SortingCollection<VariantContext> sorter =
+                SortingCollection.newInstance(
+                        VariantContext.class,
+                        new VCFRecordCodec(outputHeader),
+                        outputHeader.getVCFRecordComparator(),
+                        MAX_RECORDS_IN_RAM,
+                        TMP_DIR);
+        int readerCount = 1;
+        for (final VCFFileReader reader : readers) {
+            log.info("Reading entries from input file " + readerCount);
+            for (final VariantContext variantContext : reader) {
+                sorter.add(variantContext);
+                readProgress.record(variantContext.getChr(), variantContext.getStart());
+            }
+            reader.close();
+            readerCount++;
+        }
+        return sorter;
+    }
+
+    private void writeSortedOutput(final VCFHeader outputHeader, final SortingCollection<VariantContext> sortedOutput) {
+        final ProgressLogger writeProgress = new ProgressLogger(log, 25000, "wrote", "records");
+        final EnumSet<Options> options = CREATE_INDEX ? EnumSet.of(Options.INDEX_ON_THE_FLY) : EnumSet.noneOf(Options.class);
+        final VariantContextWriter out = new VariantContextWriterBuilder().
+                setReferenceDictionary(outputHeader.getSequenceDictionary()).
+                setOptions(options).
+                setOutputFile(OUTPUT).build();
+        out.writeHeader(outputHeader);
+        for (final VariantContext variantContext : sortedOutput) {
+            out.add(variantContext);
+            writeProgress.record(variantContext.getChr(), variantContext.getStart());
+        }
+        out.close();
+    }
+}
diff --git a/src/java/picard/vcf/SplitVcfs.java b/src/java/picard/vcf/SplitVcfs.java
new file mode 100644
index 0000000..b5b3c06
--- /dev/null
+++ b/src/java/picard/vcf/SplitVcfs.java
@@ -0,0 +1,119 @@
+package picard.vcf;
+
+import htsjdk.samtools.SAMSequenceDictionary;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.util.CloseableIterator;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.ProgressLogger;
+import htsjdk.variant.variantcontext.VariantContext;
+import htsjdk.variant.variantcontext.writer.Options;
+import htsjdk.variant.variantcontext.writer.VariantContextWriter;
+import htsjdk.variant.variantcontext.writer.VariantContextWriterBuilder;
+import htsjdk.variant.vcf.VCFFileReader;
+import htsjdk.variant.vcf.VCFHeader;
+import picard.PicardException;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.VcfOrBcf;
+
+import java.io.File;
+
+/**
+ * Splits the input VCF file into two, one for indels and one for SNPs. The headers of the two output
+ * files will be identical.
+ * <p/>
+ * An index file is created for the output file by default. Using an output file name with a ".gz"
+ * extension will create gzip-compressed output.
+ */
+ at CommandLineProgramProperties(
+        usage = "Splits an input VCF or BCF file into two VCF files, one for indel records and one for SNPs. The" +
+                "headers of the two output files will be identical. An index file is created and a" +
+                "sequence dictionary is required by default.",
+        usageShort = "Splits an input VCF or BCF file into two VCF or BCF files",
+        programGroup = VcfOrBcf.class
+)
+public class SplitVcfs extends CommandLineProgram {
+
+    @Option(shortName = StandardOptionDefinitions.INPUT_SHORT_NAME, doc="The VCF or BCF input file")
+    public File INPUT;
+
+    @Option(doc = "The VCF or BCF file to which SNP records should be written. The file format is determined by file extension.")
+    public File SNP_OUTPUT;
+
+    @Option(doc = "The VCF or BCF file to which indel records should be written. The file format is determined by file extension.")
+    public File INDEL_OUTPUT;
+
+    @Option(shortName = "D", doc = "The index sequence dictionary to use instead of the sequence dictionaries in the input files", optional = true)
+    public File SEQUENCE_DICTIONARY;
+
+    @Option(doc = "If true an exception will be thrown if an event type other than SNP or indel is encountered")
+    public Boolean STRICT = true;
+
+    private final Log log = Log.getInstance(SplitVcfs.class);
+
+    public static void main(final String[] argv) {
+        new SplitVcfs().instanceMainWithExit(argv);
+    }
+
+    public SplitVcfs() {
+        this.CREATE_INDEX = true;
+    }
+
+    @Override
+    protected int doWork() {
+        IOUtil.assertFileIsReadable(INPUT);
+        final ProgressLogger progress = new ProgressLogger(log, 10000);
+
+        final VCFFileReader fileReader = new VCFFileReader(INPUT);
+        final VCFHeader fileHeader = fileReader.getFileHeader();
+
+        final SAMSequenceDictionary sequenceDictionary =
+                SEQUENCE_DICTIONARY != null
+                        ? SamReaderFactory.makeDefault().referenceSequence(REFERENCE_SEQUENCE).getFileHeader(SEQUENCE_DICTIONARY).getSequenceDictionary()
+                        : fileHeader.getSequenceDictionary();
+        if (CREATE_INDEX && sequenceDictionary == null) {
+            throw new PicardException("A sequence dictionary must be available (either through the input file or by setting it explicitly) when creating indexed output.");
+        }
+
+        final VariantContextWriterBuilder builder = new VariantContextWriterBuilder()
+                .setReferenceDictionary(sequenceDictionary)
+                .clearOptions();
+        if (CREATE_INDEX)
+            builder.setOption(Options.INDEX_ON_THE_FLY);
+
+        final VariantContextWriter snpWriter = builder.setOutputFile(SNP_OUTPUT).build();
+        final VariantContextWriter indelWriter = builder.setOutputFile(INDEL_OUTPUT).build();
+        snpWriter.writeHeader(fileHeader);
+        indelWriter.writeHeader(fileHeader);
+
+        int incorrectVariantCount = 0;
+
+        final CloseableIterator<VariantContext> iterator = fileReader.iterator();
+        while (iterator.hasNext()) {
+            final VariantContext context = iterator.next();
+            if (context.isIndel()) indelWriter.add(context);
+            else if (context.isSNP()) snpWriter.add(context);
+            else {
+                if (STRICT) throw new IllegalStateException("Found a record with type " + context.getType().name());
+                else incorrectVariantCount++;
+            }
+
+            progress.record(context.getChr(), context.getStart());
+        }
+
+        if (incorrectVariantCount > 0) {
+            log.debug("Found " + incorrectVariantCount + " records that didn't match SNP or INDEL");
+        }
+
+        CloserUtil.close(iterator);
+        CloserUtil.close(fileReader);
+        snpWriter.close();
+        indelWriter.close();
+
+        return 0;
+    }
+}
diff --git a/src/java/picard/vcf/UpdateVcfSequenceDictionary.java b/src/java/picard/vcf/UpdateVcfSequenceDictionary.java
new file mode 100644
index 0000000..71a9ab9
--- /dev/null
+++ b/src/java/picard/vcf/UpdateVcfSequenceDictionary.java
@@ -0,0 +1,110 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.vcf;
+
+import htsjdk.samtools.SAMSequenceDictionary;
+import htsjdk.samtools.util.CloseableIterator;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.ProgressLogger;
+import htsjdk.variant.utils.SAMSequenceDictionaryExtractor;
+import htsjdk.variant.variantcontext.VariantContext;
+import htsjdk.variant.variantcontext.writer.Options;
+import htsjdk.variant.variantcontext.writer.VariantContextWriter;
+import htsjdk.variant.variantcontext.writer.VariantContextWriterBuilder;
+import htsjdk.variant.vcf.VCFFileReader;
+import htsjdk.variant.vcf.VCFHeader;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.VcfOrBcf;
+
+import java.io.File;
+
+/**
+ * Takes a VCF file and a Sequence Dictionary (from a variety of file types) and updates the Sequence Dictionary in VCF.
+ *
+ * @author George Grant
+ *
+ */
+ at CommandLineProgramProperties(
+        usage = "Takes a VCF and a second file that contains a sequence dictionary and updates the VCF with the new sequence dictionary.",
+        usageShort = "Takes a VCF and a second file that contains a sequence dictionary and updates the VCF with the new sequence dictionary.",
+        programGroup = VcfOrBcf.class
+)
+public class UpdateVcfSequenceDictionary extends CommandLineProgram {
+     @Option(shortName = StandardOptionDefinitions.INPUT_SHORT_NAME, doc = "Input VCF")
+    public File INPUT;
+
+    @Option(shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc = "Output VCF to be written.")
+    public File OUTPUT;
+
+    @Option(shortName = StandardOptionDefinitions.SEQUENCE_DICTIONARY_SHORT_NAME, doc = "A Sequence Dictionary (can be read from one of the " +
+            "following file types (SAM, BAM, VCF, BCF, Interval List, Fasta, or Dict)")
+    public File SEQUENCE_DICTIONARY;
+
+    private final Log log = Log.getInstance(UpdateVcfSequenceDictionary.class);
+
+    public static void main(final String[] args) {
+        new UpdateVcfSequenceDictionary().instanceMainWithExit(args);
+    }
+
+    @Override
+    protected int doWork() {
+        IOUtil.assertFileIsReadable(INPUT);
+        IOUtil.assertFileIsReadable(SEQUENCE_DICTIONARY);
+        IOUtil.assertFileIsWritable(OUTPUT);
+
+        final SAMSequenceDictionary samSequenceDictionary = SAMSequenceDictionaryExtractor.extractDictionary(SEQUENCE_DICTIONARY);
+
+        final VCFFileReader fileReader = new VCFFileReader(INPUT, false);
+        final VCFHeader fileHeader = fileReader.getFileHeader();
+
+        final VariantContextWriterBuilder builder = new VariantContextWriterBuilder()
+                .setReferenceDictionary(samSequenceDictionary)
+                .clearOptions();
+        if (CREATE_INDEX)
+            builder.setOption(Options.INDEX_ON_THE_FLY);
+
+        final VariantContextWriter vcfWriter = builder.setOutputFile(OUTPUT).build();
+        fileHeader.setSequenceDictionary(samSequenceDictionary);
+        vcfWriter.writeHeader(fileHeader);
+
+        final ProgressLogger progress = new ProgressLogger(log, 10000);
+        final CloseableIterator<VariantContext> iterator = fileReader.iterator();
+        while (iterator.hasNext()) {
+            final VariantContext context = iterator.next();
+            vcfWriter.add(context);
+            progress.record(context.getChr(), context.getStart());
+        }
+
+        CloserUtil.close(iterator);
+        CloserUtil.close(fileReader);
+        vcfWriter.close();
+
+        return 0;
+    }
+}
diff --git a/src/java/picard/vcf/VcfFormatConverter.java b/src/java/picard/vcf/VcfFormatConverter.java
new file mode 100644
index 0000000..0c62ec2
--- /dev/null
+++ b/src/java/picard/vcf/VcfFormatConverter.java
@@ -0,0 +1,119 @@
+/*
+* Copyright (c) 2013 The Broad Institute
+*
+* Permission is hereby granted, free of charge, to any person
+* obtaining a copy of this software and associated documentation
+* files (the "Software"), to deal in the Software without
+* restriction, including without limitation the rights to use,
+* copy, modify, merge, publish, distribute, sublicense, and/or sell
+* copies of the Software, and to permit persons to whom the
+* Software is furnished to do so, subject to the following
+* conditions:
+*
+* The above copyright notice and this permission notice shall be
+* included in all copies or substantial portions of the Software.
+*
+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
+* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
+
+package picard.vcf;
+
+import htsjdk.samtools.SAMSequenceDictionary;
+import htsjdk.samtools.util.CloseableIterator;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.ProgressLogger;
+import htsjdk.variant.variantcontext.VariantContext;
+import htsjdk.variant.variantcontext.writer.Options;
+import htsjdk.variant.variantcontext.writer.VariantContextWriter;
+import htsjdk.variant.variantcontext.writer.VariantContextWriterBuilder;
+import htsjdk.variant.vcf.VCFFileReader;
+import htsjdk.variant.vcf.VCFHeader;
+import picard.PicardException;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.SamOrBam;
+import picard.cmdline.programgroups.VcfOrBcf;
+
+import java.io.File;
+
+/**
+ * Converts an ASCII VCF file to a binary BCF or vice versa.
+ *
+ * @author jgentry at broadinstitute.org
+ */
+ at CommandLineProgramProperties(
+        usage = "Convert a VCF file to a BCF file, or BCF to VCF.\n" +
+                "Input and output formats are determined by file extension.",
+        usageShort = "Converts a VCF file to a BCF file, or BCF to VCF",
+        programGroup = VcfOrBcf.class
+)
+public class VcfFormatConverter extends CommandLineProgram {
+    // The following attributes define the command-line arguments
+    public static final Log LOG = Log.getInstance(VcfFormatConverter.class);
+
+    @Option(doc="The BCF or VCF input file. The file format is determined by file extension.", shortName= StandardOptionDefinitions.INPUT_SHORT_NAME)
+    public File INPUT;
+
+    @Option(doc="The BCF or VCF output file. The file format is determined by file extension.", shortName=StandardOptionDefinitions.OUTPUT_SHORT_NAME)
+    public File OUTPUT;
+
+	@Option(doc="Fail if an index is not available for the input VCF/BCF")
+	public Boolean REQUIRE_INDEX = true;
+
+    public static void main(final String[] argv) {
+        new VcfFormatConverter().instanceMainWithExit(argv);
+    }
+
+	public VcfFormatConverter() {
+		this.CREATE_INDEX = true;
+	}
+
+    @Override
+    protected int doWork() {
+        final ProgressLogger progress = new ProgressLogger(LOG, 10000);
+        
+        IOUtil.assertFileIsReadable(INPUT);
+        IOUtil.assertFileIsWritable(OUTPUT);
+
+	    final VCFFileReader reader = new VCFFileReader(INPUT, REQUIRE_INDEX);
+	    final VCFHeader header = new VCFHeader(reader.getFileHeader());
+	    final SAMSequenceDictionary sequenceDictionary = header.getSequenceDictionary();
+	    if (CREATE_INDEX && sequenceDictionary == null) {
+		    throw new PicardException("A sequence dictionary must be available in the input file when creating indexed output.");
+	    }
+
+        final VariantContextWriterBuilder builder = new VariantContextWriterBuilder()
+                .setOutputFile(OUTPUT)
+                .setReferenceDictionary(sequenceDictionary);
+        if (CREATE_INDEX)
+            builder.setOption(Options.INDEX_ON_THE_FLY);
+        else
+            builder.unsetOption(Options.INDEX_ON_THE_FLY);
+        final VariantContextWriter writer = builder.build();
+        writer.writeHeader(header);
+	    final CloseableIterator<VariantContext> iterator = reader.iterator();
+
+	    while (iterator.hasNext()) {
+		    final VariantContext context = iterator.next();
+            writer.add(context);
+            progress.record(context.getChr(), context.getStart());
+        }
+
+	    CloserUtil.close(iterator);
+	    CloserUtil.close(reader);
+        writer.close();
+
+        return 0;
+    }
+}
diff --git a/src/java/picard/vcf/VcfToIntervalList.java b/src/java/picard/vcf/VcfToIntervalList.java
new file mode 100644
index 0000000..1b513bf
--- /dev/null
+++ b/src/java/picard/vcf/VcfToIntervalList.java
@@ -0,0 +1,50 @@
+package picard.vcf;
+
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.IntervalList;
+import htsjdk.samtools.util.Log;
+import htsjdk.variant.vcf.VCFFileReader;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.VcfOrBcf;
+
+import java.io.File;
+
+/**
+ * Creates an interval list from a VCF
+ *
+ * @author ggrant at broadinstitute.org
+ */
+
+ at CommandLineProgramProperties(
+        usage = "Converts a VCF or BCF file to a Picard Interval List.",
+        usageShort = "Converts a VCF or BCF file to a Picard Interval List.",
+        programGroup = VcfOrBcf.class
+)
+public class VcfToIntervalList extends CommandLineProgram {
+    // The following attributes define the command-line arguments
+    public static final Log LOG = Log.getInstance(VcfToIntervalList.class);
+
+    @Option(doc="The BCF or VCF input file. The file format is determined by file extension.", shortName= StandardOptionDefinitions.INPUT_SHORT_NAME)
+    public File INPUT;
+
+    @Option(shortName = StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc = "The output Picard Interval List")
+    public File OUTPUT;
+
+    public static void main(final String[] argv) {
+        new VcfToIntervalList().instanceMainWithExit(argv);
+    }
+
+    @Override
+    protected int doWork() {
+        IOUtil.assertFileIsReadable(INPUT);
+        IOUtil.assertFileIsWritable(OUTPUT);
+
+        final IntervalList intervalList = VCFFileReader.fromVcf(INPUT);
+        // Sort and write the output
+        intervalList.uniqued().write(OUTPUT);
+        return 0;
+    }
+}
\ No newline at end of file
diff --git a/src/java/picard/vcf/filter/AlleleBalanceFilter.java b/src/java/picard/vcf/filter/AlleleBalanceFilter.java
new file mode 100644
index 0000000..d33ed5a
--- /dev/null
+++ b/src/java/picard/vcf/filter/AlleleBalanceFilter.java
@@ -0,0 +1,88 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.vcf.filter;
+
+import htsjdk.samtools.util.CollectionUtil;
+import htsjdk.variant.variantcontext.Allele;
+import htsjdk.variant.variantcontext.Genotype;
+import htsjdk.variant.variantcontext.GenotypesContext;
+import htsjdk.variant.variantcontext.VariantContext;
+import htsjdk.variant.variantcontext.VariantContextUtils;
+import htsjdk.variant.vcf.VCFFilterHeaderLine;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Filters out a record if the allele balance for heterozygotes is out of a defined range across all samples.
+ * The threshold is set as the minimum fraction of the data drawn from the less-represented allele - e.g. 0.3 would
+ * set that whichever allele has lower representation across all heterozygous individuals must account for at least 30% of the
+ * total observations.
+ */
+public class AlleleBalanceFilter implements VariantFilter {
+    /** The filter string used for sites that fail the allele balance filter. */
+    public static final String AB_FILTER = "AlleleBalance";
+
+    private final double hetAlleleBalance;
+
+    public AlleleBalanceFilter(final double hetAlleleBalance) {
+        this.hetAlleleBalance = hetAlleleBalance;
+    }
+
+    private static class Counts { int samples; int allele1; int allele2; }
+
+    @Override
+    public List<VCFFilterHeaderLine> headerLines() {
+        return CollectionUtil.makeList(new VCFFilterHeaderLine(AB_FILTER, "Heterozygote allele balance below required threshold."));
+    }
+
+    @Override
+    public String filter(final VariantContext ctx) {
+        if (ctx.getHetCount() == 0) return null;
+        final Map<List<Allele>, Counts> countsMap = new HashMap<List<Allele>, Counts>();
+
+        for (final Genotype gt : ctx.getGenotypesOrderedByName()) {
+            if (gt.isNoCall() || !gt.isHet()) continue;
+
+            final List<Allele> alleles = gt.getAlleles();
+            Counts counts = countsMap.get(alleles);
+            if (counts == null) {
+                counts = new Counts();
+                countsMap.put(alleles, counts);
+            }
+
+            counts.allele1 += gt.getAD()[ctx.getAlleleIndex(alleles.get(0))];
+            counts.allele2 += gt.getAD()[ctx.getAlleleIndex(alleles.get(1))];
+        }
+
+        for (final Counts counts : countsMap.values()) {
+            final int total = counts.allele1 + counts.allele2;
+            if (total > 0 && Math.min(counts.allele1, counts.allele2) / (double) total < this.hetAlleleBalance) return AB_FILTER;
+        }
+
+        return null;
+    }
+}
+
diff --git a/src/java/picard/vcf/filter/DepthFilter.java b/src/java/picard/vcf/filter/DepthFilter.java
new file mode 100644
index 0000000..4b3c07d
--- /dev/null
+++ b/src/java/picard/vcf/filter/DepthFilter.java
@@ -0,0 +1,48 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.vcf.filter;
+
+import htsjdk.variant.variantcontext.Genotype;
+import htsjdk.variant.variantcontext.GenotypesContext;
+import htsjdk.variant.variantcontext.VariantContext;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Filters out a record if all variant samples have depth lower than the given value.
+ */
+public class DepthFilter implements GenotypeFilter {
+    private final int minDepth;
+
+    public DepthFilter(final int minDepth) {
+        this.minDepth = minDepth;
+    }
+
+    @Override
+    public String filter(final VariantContext ctx, final Genotype gt) {
+        if (gt.getDP() < minDepth) return "LowDP";
+        else return null;
+   }
+}
diff --git a/src/java/picard/vcf/filter/FilterApplyingVariantIterator.java b/src/java/picard/vcf/filter/FilterApplyingVariantIterator.java
new file mode 100644
index 0000000..9ca3a67
--- /dev/null
+++ b/src/java/picard/vcf/filter/FilterApplyingVariantIterator.java
@@ -0,0 +1,134 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.vcf.filter;
+
+import htsjdk.samtools.util.CloseableIterator;
+import htsjdk.samtools.util.CloserUtil;
+
+import htsjdk.samtools.util.ListMap;
+import htsjdk.variant.variantcontext.Genotype;
+import htsjdk.variant.variantcontext.GenotypeBuilder;
+import htsjdk.variant.variantcontext.VariantContext;
+import htsjdk.variant.variantcontext.VariantContextBuilder;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Iterator that dynamically applies filter strings to VariantContext records supplied by an underlying
+ * iterator.  Returns all records from the underlying stream and does not remove any.
+ *
+ * @author tfennell
+ */
+public class FilterApplyingVariantIterator implements CloseableIterator<VariantContext> {
+    /** Filter string that is used to filter a Variant when all variant genotypes are filtered out. */
+    public static final String ALL_GTS_FILTERED = "AllGtsFiltered";
+    /** The "PASS"ing filter String. */
+    public static final String PASS_FILTER = "PASS";
+
+    private final Iterator<VariantContext> iterator;
+    private final VariantFilter[] filters;
+    private final GenotypeFilter[] gtFilters;
+
+    /**
+     * Constructs an iterator from an underlying iterator and the provided (possibly empty)
+     * collections of variant and genotype filters.
+     */
+    public FilterApplyingVariantIterator(final Iterator<VariantContext> iterator,
+                                         final Collection<VariantFilter> filters,
+                                         final Collection<GenotypeFilter> gtFilters) {
+        this.iterator = iterator;
+        this.filters = filters.toArray(new VariantFilter[filters.size()]);
+        this.gtFilters = gtFilters.toArray(new GenotypeFilter[gtFilters.size()]);
+    }
+
+    /**
+     * Provides the next record from the underlying iterator after applying filter strings generated
+     * by the set of filters in use by the iterator.
+     */
+    @Override
+    public VariantContext next() {
+        final VariantContext ctx = this.iterator.next();
+        final Set<String> filterStrings = new HashSet<String>();
+
+        // Collect variant level filters
+        for (final VariantFilter filter : this.filters) {
+            final String val = filter.filter(ctx);
+            if (val != null) filterStrings.add(val);
+        }
+
+        // Collect genotype level filters in a Map of Sample -> List<filter string>
+        final ListMap<String,String> gtFilterStrings = new ListMap<String,String>();
+        final Set<String> variantSamples = new HashSet<String>();
+        for (final Genotype gt : ctx.getGenotypes()) {
+            if (gt.isCalled() && !gt.isHomRef()) variantSamples.add(gt.getSampleName());
+
+            for (final GenotypeFilter filter : gtFilters) {
+                final String filterString = filter.filter(ctx,gt);
+                if (filterString != null)  gtFilterStrings.add(gt.getSampleName(), filterString);
+            }
+        }
+
+        // If all genotypes are filtered apply a site level filter
+        if (gtFilterStrings.keySet().containsAll(variantSamples)) {
+            filterStrings.add(ALL_GTS_FILTERED);
+        }
+
+        // Make a builder and set the site level filter appropriately
+        final VariantContextBuilder builder = new VariantContextBuilder(ctx);
+        if (filterStrings.isEmpty()) {
+            builder.passFilters();
+        }
+        else {
+            builder.filters(filterStrings);
+        }
+
+        // Apply filters to the necessary genotypes
+        builder.noGenotypes();
+        final List<Genotype> newGenotypes = new ArrayList<Genotype>(ctx.getNSamples());
+        for (final Genotype gt : ctx.getGenotypes()) {
+            final GenotypeBuilder gtBuilder = new GenotypeBuilder(gt);
+            final List<String> filters = gtFilterStrings.get(gt.getSampleName());
+
+            if (filters == null || filters.isEmpty()) {
+                gtBuilder.filter(PASS_FILTER);
+            }
+            else {
+                gtBuilder.filters(filters);
+            }
+            newGenotypes.add(gtBuilder.make());
+        }
+        builder.genotypes(newGenotypes);
+
+        return builder.make();
+    }
+
+    @Override public boolean hasNext() { return this.iterator.hasNext(); }
+    @Override public void close() { CloserUtil.close(this.iterator); }
+    @Override public void remove() { throw new UnsupportedOperationException("remove() not supported by FilterApplyingVariantIterator."); }
+}
diff --git a/src/java/picard/vcf/filter/FilterVcf.java b/src/java/picard/vcf/filter/FilterVcf.java
new file mode 100644
index 0000000..886f16e
--- /dev/null
+++ b/src/java/picard/vcf/filter/FilterVcf.java
@@ -0,0 +1,117 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.vcf.filter;
+
+import htsjdk.samtools.util.CollectionUtil;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.variant.variantcontext.writer.VariantContextWriter;
+import htsjdk.variant.variantcontext.writer.VariantContextWriterBuilder;
+import htsjdk.variant.vcf.VCFFileReader;
+import htsjdk.variant.vcf.VCFFilterHeaderLine;
+import htsjdk.variant.vcf.VCFFormatHeaderLine;
+import htsjdk.variant.vcf.VCFHeader;
+import htsjdk.variant.vcf.VCFHeaderLineCount;
+import htsjdk.variant.vcf.VCFHeaderLineType;
+import picard.cmdline.CommandLineProgram;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.Option;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.cmdline.programgroups.VcfOrBcf;
+
+import java.io.File;
+import java.util.List;
+
+/**
+ * Applies a set of hard filters to Variants and to Genotypes within a VCF.
+ *
+ * @author Tim Fennell
+ */
+ at CommandLineProgramProperties(
+        usage = "Applies one or more hard filters to a VCF file to filter out genotypes and variants.",
+        usageShort = "Hard filters a VCF.",
+        programGroup = VcfOrBcf.class
+)
+public class FilterVcf extends CommandLineProgram {
+    @Option(shortName=StandardOptionDefinitions.INPUT_SHORT_NAME, doc="The INPUT VCF or BCF file.")
+    public File INPUT;
+
+    @Option(shortName=StandardOptionDefinitions.OUTPUT_SHORT_NAME, doc="The output VCF or BCF.")
+    public File OUTPUT;
+
+    @Option(doc="The minimum allele balance acceptable before filtering a site. Allele balance is calculated for heterozygotes as " +
+            "the number of bases supporting the least-represented allele over the total number of base observations. Different heterozygote " +
+            "genotypes at the same locus are measured independently. The locus is filtered if any allele balance is below the limit.")
+    public double MIN_AB = 0.0d;
+
+    @Option(doc="The minimum sequencing depth supporting a genotype before the genotype will be filtered out.")
+    public int MIN_DP = 0;
+
+    @Option(doc="The minimum genotype quality that must be achieved for a sample otherwise the genotype will be filtered out.")
+    public int MIN_GQ = 0;
+
+    @Option(doc="The maximum phred scaled fisher strand value before a site will be filtered out.")
+    public double MAX_FS = Double.MAX_VALUE;
+
+    @Option(doc="The minimum QD value to accept or otherwise filter out the variant.")
+    public double MIN_QD = 0;
+
+    /** Constructor to default to having index creation on. */
+    public FilterVcf() { this.CREATE_INDEX = true; }
+
+    // Stock main method
+    public static void main(final String[] args) {
+        new FilterVcf().instanceMainWithExit(args);
+    }
+
+    @Override
+    protected int doWork() {
+        IOUtil.assertFileIsReadable(INPUT);
+        IOUtil.assertFileIsWritable(OUTPUT);
+
+        final List<VariantFilter>  variantFilters = CollectionUtil.makeList(new AlleleBalanceFilter(MIN_AB), new FisherStrandFilter(MAX_FS), new QdFilter(MIN_QD));
+        final List<GenotypeFilter> genotypeFilters = CollectionUtil.makeList(new GenotypeQualityFilter(MIN_GQ), new DepthFilter(MIN_DP));
+        final VCFFileReader in = new VCFFileReader(INPUT, false);
+        final FilterApplyingVariantIterator iterator = new FilterApplyingVariantIterator(in.iterator(), variantFilters, genotypeFilters);
+
+        final VariantContextWriter out = new VariantContextWriterBuilder().setOutputFile(OUTPUT).build();
+        final VCFHeader header = in.getFileHeader();
+        header.addMetaDataLine(new VCFFilterHeaderLine("AllGtsFiltered", "Site filtered out because all genotypes are filtered out."));
+        header.addMetaDataLine(new VCFFormatHeaderLine("FT", VCFHeaderLineCount.UNBOUNDED, VCFHeaderLineType.String, "Genotype filters."));
+        for (final VariantFilter filter : variantFilters) {
+            for (final VCFFilterHeaderLine line : filter.headerLines()) {
+                header.addMetaDataLine(line);
+            }
+        }
+
+        out.writeHeader(in.getFileHeader());
+
+        while (iterator.hasNext()) {
+            out.add(iterator.next());
+        }
+
+        out.close();
+        in.close();
+        return 0;
+    }
+}
diff --git a/src/java/picard/vcf/filter/FisherStrandFilter.java b/src/java/picard/vcf/filter/FisherStrandFilter.java
new file mode 100644
index 0000000..633765a
--- /dev/null
+++ b/src/java/picard/vcf/filter/FisherStrandFilter.java
@@ -0,0 +1,55 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.vcf.filter;
+
+import htsjdk.samtools.util.CollectionUtil;
+import htsjdk.variant.variantcontext.VariantContext;
+import htsjdk.variant.vcf.VCFFilterHeaderLine;
+
+import java.util.List;
+
+/**
+ * Filters records based on the phred scaled p-value from the Fisher Strand test stored in
+ * the FS attribute.
+ *
+ * @author tfennell
+ */
+public class FisherStrandFilter implements VariantFilter {
+    private final double maxPhredScalePValue;
+
+    public FisherStrandFilter(final double maxPhredScalePValue) {
+        this.maxPhredScalePValue= maxPhredScalePValue;
+    }
+
+    @Override
+    public List<VCFFilterHeaderLine> headerLines() {
+        return CollectionUtil.makeList(new VCFFilterHeaderLine("StrandBias", "Site exhibits excessive allele/strand correlation."));
+    }
+
+    @Override
+    public String filter(final VariantContext ctx) {
+        final double fs = ctx.getAttributeAsDouble("FS", 0);
+        return (fs > maxPhredScalePValue) ? "StrandBias" : null;
+    }
+}
diff --git a/src/java/picard/vcf/filter/GenotypeFilter.java b/src/java/picard/vcf/filter/GenotypeFilter.java
new file mode 100644
index 0000000..03d3f0c
--- /dev/null
+++ b/src/java/picard/vcf/filter/GenotypeFilter.java
@@ -0,0 +1,40 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.vcf.filter;
+
+import htsjdk.variant.variantcontext.Genotype;
+import htsjdk.variant.variantcontext.VariantContext;
+
+import java.util.Map;
+
+/**
+ * An interface for classes that perform Genotype filtration. Implementations are expected to take in a VariantContext
+ * and a single Genotype and return either null (for no filter) or a specific filter string.
+ *
+ * @author Tim Fennell
+ */
+public interface GenotypeFilter {
+    /** Test whether or not the genotype should be filtered out. If so return a filter string, otherwise return null. */
+    public String filter(final VariantContext ctx, final Genotype gt);
+}
diff --git a/src/java/picard/vcf/filter/GenotypeQualityFilter.java b/src/java/picard/vcf/filter/GenotypeQualityFilter.java
new file mode 100644
index 0000000..a90d068
--- /dev/null
+++ b/src/java/picard/vcf/filter/GenotypeQualityFilter.java
@@ -0,0 +1,46 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.vcf.filter;
+
+import htsjdk.variant.variantcontext.Genotype;
+import htsjdk.variant.variantcontext.VariantContext;
+
+/**
+ * Genotype filter that filters out genotypes below a given quality threshold.
+ *
+ * @author tfennell
+ */
+public class GenotypeQualityFilter implements GenotypeFilter {
+    private final int minGq;
+
+    public GenotypeQualityFilter(final int minGq) {
+        this.minGq = minGq;
+    }
+
+    @Override
+    public String filter(final VariantContext ctx, final Genotype gt) {
+        if (gt.getGQ() < minGq) return "LowGQ";
+        else return null;
+    }
+}
diff --git a/src/java/picard/vcf/filter/QdFilter.java b/src/java/picard/vcf/filter/QdFilter.java
new file mode 100644
index 0000000..b048d00
--- /dev/null
+++ b/src/java/picard/vcf/filter/QdFilter.java
@@ -0,0 +1,62 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.vcf.filter;
+
+import htsjdk.samtools.util.CollectionUtil;
+import htsjdk.variant.variantcontext.VariantContext;
+import htsjdk.variant.vcf.VCFFilterHeaderLine;
+
+import java.util.List;
+
+/**
+ * Filters out sites that have a QD annotation applied to them and where the QD value is lower than a
+ * lower limit.
+ *
+ * @author Tim Fennell
+ */
+public class QdFilter implements VariantFilter {
+    public static final String FILTER_NAME = "LowQD";
+    private final double minimumQd;
+
+    public QdFilter(final double minimumQd) {
+        this.minimumQd = minimumQd;
+    }
+
+    @Override public String filter(final VariantContext ctx) {
+        final double qd = ctx.getAttributeAsDouble("QD", -1d); // If QD is missing, return -1
+
+        // QD should always be positive so a value < 0 indicates a missing value
+        if (qd >= 0 && qd < minimumQd) {
+            return FILTER_NAME;
+        }
+        else {
+            return null;
+        }
+    }
+
+    @Override
+    public List<VCFFilterHeaderLine> headerLines() {
+        return CollectionUtil.makeList(new VCFFilterHeaderLine(FILTER_NAME, "Site exhibits QD value below a hard limit."));
+    }
+}
diff --git a/src/java/picard/vcf/filter/VariantFilter.java b/src/java/picard/vcf/filter/VariantFilter.java
new file mode 100644
index 0000000..6fe0c36
--- /dev/null
+++ b/src/java/picard/vcf/filter/VariantFilter.java
@@ -0,0 +1,44 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.vcf.filter;
+
+import htsjdk.variant.variantcontext.VariantContext;
+import htsjdk.variant.vcf.VCFFilterHeaderLine;
+
+import java.util.List;
+
+/**
+ * Interface for classes that can generate filters for VariantContexts. The contract is that a
+ * VariantContext is provided, and if the variant should be filtered out then the filter string
+ * should be returned, otherwise null.
+ *
+ * @author tfennell
+ */
+public interface VariantFilter {
+    /** Check to see if the VariantContext should have a filter applied to it. If so return the filter string, otherwise return null. */
+    public String filter(final VariantContext ctx);
+
+    /** Return VCF header lines that define filters that may be applied by the VariantFilter. */
+    public List<VCFFilterHeaderLine> headerLines();
+}
diff --git a/src/java/picard/vcf/processor/VariantAccumulatorExecutor.java b/src/java/picard/vcf/processor/VariantAccumulatorExecutor.java
new file mode 100644
index 0000000..3252920
--- /dev/null
+++ b/src/java/picard/vcf/processor/VariantAccumulatorExecutor.java
@@ -0,0 +1,169 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2015 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.vcf.processor;
+
+import com.google.common.base.Function;
+import com.google.common.base.Joiner;
+import com.google.common.base.Optional;
+import com.google.common.collect.FluentIterable;
+import picard.util.AtomicIterator;
+import picard.util.Iterators;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.CloseableIterator;
+import htsjdk.variant.variantcontext.VariantContext;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Describes the functionality for an executor that manages the delegation of work to {@link VariantProcessor.Accumulator}s.
+ * 
+ * @author mccowan
+ */
+public interface VariantAccumulatorExecutor<ACCUMULATOR extends VariantProcessor.Accumulator<RESULT>, RESULT> {
+    /** Starts the work of the executor, returning immediately. */
+    void start();
+
+    /** Blocks until the work is complete. */
+    void awaitCompletion() throws InterruptedException;
+    
+    /** Returns the {@link VariantProcessor.Accumulator}s associated with this executor. */
+    Collection<ACCUMULATOR> accumulators();
+
+    /**
+     * A {@link VariantAccumulatorExecutor} that breaks down work into chunks described by the provided {@link VariantIteratorProducer} and
+     * spreads them over the indicated number of threads.
+     *
+     * @author mccowan
+     */
+    class MultiThreadedChunkBased<A extends VariantProcessor.Accumulator<R>, R> implements VariantAccumulatorExecutor<A, R> {
+        private static final Log LOG = Log.getInstance(MultiThreadedChunkBased.class);
+
+        final AtomicIterator<CloseableIterator<VariantContext>> vcIterators;
+        final ExecutorService executor;
+        final Collection<A> accumulators = Collections.synchronizedCollection(new ArrayList<A>());
+
+        /** Signals whether or not this executor is started. */
+        volatile boolean started = false;
+        final int numThreads;
+
+        private final List<Throwable> childrenErrors = Collections.synchronizedList(new ArrayList<Throwable>());
+
+        final VariantProcessor.AccumulatorGenerator<A, R> accumulatorGenerator;
+
+        public MultiThreadedChunkBased(
+                final int numThreads,
+                final VariantIteratorProducer vcIteratorProducer,
+                final VariantProcessor.AccumulatorGenerator<A, R> accumulatorGenerator
+        ) {
+            this.executor = Executors.newFixedThreadPool(numThreads);
+            this.vcIterators = Iterators.atomicIteratorOf(vcIteratorProducer.iterators());
+            this.numThreads = numThreads;
+            this.accumulatorGenerator = accumulatorGenerator;
+        }
+
+
+        @Override
+        public synchronized void start() {
+            started = true;
+            for (int i = 0; i < numThreads; i++) {
+                final A accumulator = accumulatorGenerator.build();
+                accumulators.add(accumulator);
+                executor.submit(new Worker(accumulator));
+            }
+            executor.shutdown();
+        }
+
+        public synchronized Collection<A> accumulators() {
+            return Collections.unmodifiableCollection(accumulators);
+        }
+
+        @Override
+        public void awaitCompletion() throws InterruptedException {
+            if (!started) {
+                throw new IllegalStateException("This method can be called only after the executor has been started.");
+            } else {
+                executor.awaitTermination(Long.MAX_VALUE, TimeUnit.DAYS);
+                if (!childrenErrors.isEmpty()) {
+                    throw new MultiException(childrenErrors);
+                }
+            }
+        }
+
+        static class MultiException extends RuntimeException {
+            final List<Throwable> childrenExceptions;
+
+            public MultiException(final List<Throwable> childrenExceptions) {
+                this.childrenExceptions = childrenExceptions;
+            }
+
+            @Override
+            public String getMessage() {
+                return "Children threads encountered exceptions:\n" + Joiner.on("\n\t").join(FluentIterable.from(childrenExceptions).transform
+                        (new Function<Throwable, String>() {
+                            @Override
+                            public String apply(final Throwable throwable) {
+                                return throwable.getMessage();
+                            }
+                        }));
+            }
+        }
+
+        /** Continually requests and exhausts variant context iterators, delegating each to the child {@link Worker#processor}. */
+        class Worker implements Runnable {
+            final VariantProcessor.Accumulator processor;
+
+            Worker(final VariantProcessor.Accumulator processor) {
+                this.processor = processor;
+            }
+
+            @Override
+            public void run() {
+                try {
+                    Optional<CloseableIterator<VariantContext>> readerMaybe;
+                    while ((readerMaybe = vcIterators.next()).isPresent()) {
+                        final CloseableIterator<VariantContext> reader = readerMaybe.get();
+                        while (reader.hasNext()) processor.accumulate(reader.next());
+                        reader.close();
+
+                        if (!childrenErrors.isEmpty()) {
+                            LOG.error(Thread.currentThread() + " aborting: observed error in another child thread.");
+                            break;
+                        }
+                    }
+                } catch (final Throwable e) {
+                    childrenErrors.add(e);
+                    LOG.error(e, "Unexpected exception encountered in child thread.");
+                } finally {
+                    LOG.debug(String.format("Thread %s is finishing.", Thread.currentThread()));
+                }
+            }
+        }
+    }
+}
diff --git a/src/java/picard/vcf/processor/VariantIteratorProducer.java b/src/java/picard/vcf/processor/VariantIteratorProducer.java
new file mode 100644
index 0000000..8ae028f
--- /dev/null
+++ b/src/java/picard/vcf/processor/VariantIteratorProducer.java
@@ -0,0 +1,278 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2015 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.vcf.processor;
+
+import com.google.common.base.Function;
+import com.google.common.base.Joiner;
+import com.google.common.base.Predicate;
+import com.google.common.collect.FluentIterable;
+import htsjdk.samtools.util.Interval;
+import htsjdk.samtools.util.IntervalList;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.OverlapDetector;
+import htsjdk.samtools.util.CloseableIterator;
+import htsjdk.samtools.util.CollectionUtil;
+import htsjdk.variant.variantcontext.VariantContext;
+import htsjdk.variant.vcf.VCFFileReader;
+import picard.vcf.processor.util.PredicateFilterDecoratingClosableIterator;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * A mechanism for iterating over {@link CloseableIterator} of {@link VariantContext}s in in some fashion, given VCF files and optionally
+ * an interval list.
+ * 
+ * The produced iterators may perform on-the-fly filtering of the produced {@link VariantContext}s.
+ *
+ * @author mccowan
+ */
+public abstract class VariantIteratorProducer {
+    final static int ONE_HUNDRED_MILLION = (int) 100e6;
+    /** 
+     * Renders the embodied regions of the VCF files in the form of {@link htsjdk.samtools.util.CloseableIterator}s over
+     * {@link VariantContext}s.  The iterator may perform on-the-fly filtering of these elements.
+     */
+    public abstract Iterable<CloseableIterator<VariantContext>> iterators();
+
+    /** Closes any latent file handles that may have been opened by calls to {@link #iterators()}. */
+    public abstract void close();
+
+    /**
+     * Produces a chunking with segments of size 100 megabases (or less if a contig boundary is reached), that also performs on-the-fly
+     * filtering of {@link VariantContext}
+     */
+    public static VariantIteratorProducer byHundredMegabaseChunksWithOnTheFlyFilteringByInterval(final List<File> vcfs, final IntervalList intervalList) {
+        return new Threadsafe(VcfFileSegmentGenerator.byWholeContigSubdividingWithWidth(ONE_HUNDRED_MILLION), vcfs, intervalList);
+    }
+
+    /** Produces a chunking with segments of size 100 megabases (or less if a contig boundary is reached). */
+    public static VariantIteratorProducer byHundredMegabaseChunks(final List<File> vcfs) {
+        return new Threadsafe(VcfFileSegmentGenerator.byWholeContigSubdividingWithWidth(ONE_HUNDRED_MILLION), vcfs, null);
+    }
+
+    /**
+     * A {@link VariantIteratorProducer} that is based on a given {@link VcfFileSegmentGenerator} and a list of VCFs.  The chunks are ordered by VCF, and
+     * then by whatever ordering of segments are produced by {@link VcfFileSegmentGenerator#forVcf(java.io.File)} for each of those VCFs.
+     * <p/>
+     * The iterators produced by this class are safe to share between multiple threads.
+     * <p/>
+     * If an {@link IntervalList} provided, the produced iterators will perform on-the-fly filtering and calls to {@link Iterator#next()} will
+     * only include {@link VariantContext}s that fall within the regions described by that list.
+     * <p/>
+     * This class maintains a {@link ThreadLocal} of {@link VCFFileReader} to ensure that each thread has its own, and at most one, reader per
+     * VCF.  It also guarantees that, so long as a thread closes its "queried into" readers after expiring them, there is only one extant
+     * "queried into" iterator per thread per VCF.
+     *
+     * @author mccowan
+     */
+    static class Threadsafe extends VariantIteratorProducer {
+        final static Log LOG = Log.getInstance(Threadsafe.class);
+
+        /** A list of the segments for which the corresponding {@link VariantContext}s will be produced. */
+        final List<VcfFileSegment> segments;
+        final OverlapDetector<Interval> intervalsOfInterestDetector;
+
+        /** Maps directly to {@link #segments}; useful for determining if a given variant falls into multiple segments (don't double-count!). */
+        final Map<File, OverlapDetector<VcfFileSegment>> multiSegmentDetectorPerFile =
+                new CollectionUtil.DefaultingMap<File,OverlapDetector<VcfFileSegment>>(new CollectionUtil.DefaultingMap.Factory<OverlapDetector<VcfFileSegment>, File>() {
+                    @Override
+                    public OverlapDetector<VcfFileSegment> make(final File f) {
+                        return new OverlapDetector<VcfFileSegment>(0, 0);
+                    }
+                }, true);
+
+
+        Threadsafe(final VcfFileSegmentGenerator segmenter, final List<File> vcfs) {
+            this(segmenter, vcfs, null);
+        }
+
+        Threadsafe(final VcfFileSegmentGenerator segmenter, final List<File> vcfs, final IntervalList intervals) {
+            if (intervals != null) {
+                final List<Interval> uniques = intervals.getUniqueIntervals(false);
+                this.intervalsOfInterestDetector = new OverlapDetector<Interval>(0, 0);
+                intervalsOfInterestDetector.addAll(uniques, uniques);
+            } else {
+                intervalsOfInterestDetector = null;
+            }
+
+            /**
+             * Prepare {@link #segments} and {@link multiSegmentDetectorPerFile}.  First, we only want to accumulate segments that are
+             * interesting, e.g., only ones that do not lie completely outside of the interval list provided by the consumer (if it was
+             * provided).
+             *
+             * Then, break up our {@link VcfFileSegment}s by file, and build a corresponding {@link OverlapDetector} for those segments.  This
+             * will be used downstream to ensure that we don't emit a given VC from a VCF more than once.
+             *
+             * While we're at it, since this class expects the provided {@link VcfFileSegmentGenerator} produces non-overlapping segments, 
+             * assert that this is true.
+             */
+            final VcfFileSegmentGenerator interestingSegmentSegmenter =
+                    intervalsOfInterestDetector == null ? segmenter : VcfFileSegmentGenerator.excludingNonOverlaps(segmenter, intervalsOfInterestDetector);
+            segments = new ArrayList<VcfFileSegment>();
+            for (final File vcf : vcfs) {
+                for (final VcfFileSegment segment : interestingSegmentSegmenter.forVcf(vcf)) {
+                    segments.add(segment);
+                }
+            }
+            for (final VcfFileSegment segment : segments) {
+                final Interval segmentInterval = segment.correspondingInterval();
+                final OverlapDetector<VcfFileSegment> vcfSpecificDetector = multiSegmentDetectorPerFile.get(segment.vcf());
+                if (vcfSpecificDetector.getOverlaps(segmentInterval).isEmpty()) {
+                    vcfSpecificDetector.addLhs(segment, new Interval(segment.contig(), segment.start(), segment.stop()));
+                } else {
+                    throw new IllegalArgumentException(String.format(
+                            "Provided segmenting strategy produced overlapping intervals; %s overlaps with: %s",
+                            segment,
+                            Joiner.on(", ").join(vcfSpecificDetector.getOverlaps(segmentInterval))
+                    ));
+                }
+            }
+        }
+
+        /**
+         * All of the {@link VCFFileReader}s opened by this object, across all threads.  (We can't get this
+         * value out of {@link #localVcfFileReaders} because of the way {@link java.lang.ThreadLocal} works.
+         */
+        final Collection<VCFFileReader> allReaders = Collections.synchronizedCollection(new ArrayList<VCFFileReader>());
+
+        /**
+         * A map maintained for each thread that contains the {@link htsjdk.variant.vcf.VCFFileReader}s that it has opened for a
+         * given VCF.  (Threads never share {@link htsjdk.variant.vcf.VCFFileReader}s.
+         * <p/>
+         * This is a {@link CollectionUtil.DefaultingMap} to effectively produce readers on-the-fly.  Note that it also adds every produced
+         * reader into {@link #allReaders}.
+         */
+        final ThreadLocal<CollectionUtil.DefaultingMap<File, VCFFileReader>> localVcfFileReaders =
+                new ThreadLocal<CollectionUtil.DefaultingMap<File, VCFFileReader>>() {
+                    @Override
+                    protected CollectionUtil.DefaultingMap<File, VCFFileReader> initialValue() {
+                        return new CollectionUtil.DefaultingMap<File, VCFFileReader>(new CollectionUtil.DefaultingMap.Factory<VCFFileReader, File>() {
+                            @Override
+                            public VCFFileReader make(final File file) {
+                                final VCFFileReader reader = new VCFFileReader(file);
+                                LOG.debug(String.format("Producing a reader of %s for %s.", file, Thread.currentThread()));
+                                allReaders.add(reader);
+                                return reader;
+                            }
+                        }, true);
+                    }
+                };
+
+        /**
+         * Converts a {@link VcfFileSegment} into a {@link VariantContext} iterator.  Applies filtering via {@link #intervalsOfInterestDetector}
+         * if it is defined.
+         */
+        private CloseableIterator<VariantContext> iteratorForSegment(final VcfFileSegment segment) {
+            final CloseableIterator<VariantContext> query =
+                    localVcfFileReaders.get() // Get the collection of VCF file readers local to this thread
+                            .get(segment.vcf()) // Get or generate the reader for this segment's VCF file
+                            .query(segment.contig(), segment.start(), segment.stop()); // Query the segment
+
+            // Then wrap the iterator in a on-the-fly interval-list based filter, if requested.
+            final Collection<Predicate<VariantContext>> filters = new ArrayList<Predicate<VariantContext>>();
+            if (intervalsOfInterestDetector != null) {
+                filters.add(new OverlapsPredicate());
+            }
+            filters.add(new NonUniqueVariantPredicate(segment));
+            return new PredicateFilterDecoratingClosableIterator<VariantContext>(query, filters);
+        }
+
+        @Override
+        public Iterable<CloseableIterator<VariantContext>> iterators() {
+            return FluentIterable.from(segments).transform(new Function<VcfFileSegment, CloseableIterator<VariantContext>>() {
+                @Override
+                public CloseableIterator<VariantContext> apply(final VcfFileSegment segment) {
+                    return iteratorForSegment(segment);
+                }
+            });
+        }
+
+        @Override
+        public void close() {
+            final Iterator<VCFFileReader> i = allReaders.iterator();
+            while (i.hasNext()) {
+                i.next().close();
+                i.remove();
+            }
+        }
+
+        /**
+         * A predicate that I had difficulty naming. The value of this predicate is that it ensures that no single variant is produced multiple
+         * times from a call to {@link Threadsafe#iterators()}.  It works by asking each variant "Hey variant, which of the
+         * {@link VcfFileSegment}s that this {@link Threadsafe} is producing variants from do you fall into (and thus,
+         * would be produced by a corresponding call to {@link VCFFileReader#query(String, int, int)}?  If it's more than one, we're only going
+         * to emit you from the query for the very first of those {@link VcfFileSegment}s."
+         */
+        final class NonUniqueVariantPredicate implements Predicate<VariantContext> {
+            final VcfFileSegment sourceSegment;
+
+            NonUniqueVariantPredicate(final VcfFileSegment sourceSegment) {
+                this.sourceSegment = sourceSegment;
+            }
+
+            @Override
+            public boolean apply(final VariantContext vc) {
+                if (vc.getStart() == vc.getEnd()) {
+                    // This isn't a multi-allelic segment, so it can only be produced by a single segment.
+                    return true;
+                }
+                final Collection<VcfFileSegment> intersectingSegments =
+                        multiSegmentDetectorPerFile.get(sourceSegment.vcf()).getOverlaps(new Interval(vc.getChr(), vc.getStart(), vc.getEnd()));
+                if (intersectingSegments.size() < 2) {
+                    // There's only one segment that produces this variant
+                    return true;
+                }
+
+                // The convention is: only emit the VC if it is produced from the first segment that can produce it in the list.
+                final int sourceSegmentIndex = segments.indexOf(sourceSegment);
+                LOG.debug("Found wide variant spanning multiple source segments: ", vc);
+                for (final VcfFileSegment intersectingSegment : intersectingSegments) {
+                    if (segments.indexOf(intersectingSegment) < sourceSegmentIndex) {
+                        // There is a segment that produces this variant earlier in the segment list, exclude it.
+                        return false;
+                    }
+                }
+                LOG.debug("Emitting wide variant because it belongs to first segment: ", vc);
+                return true;
+            }
+        }
+
+        /** A predicate answering if the provided {@link VariantContext} overlaps {@link #intervalsOfInterestDetector}. */
+        final class OverlapsPredicate implements Predicate<VariantContext> {
+            @Override
+            public boolean apply(final VariantContext vc) {
+                final boolean include = !intervalsOfInterestDetector.getOverlaps(new Interval(vc.getChr(), vc.getStart(), vc.getEnd())).isEmpty();
+                if (!include) LOG.debug("Filtering variant at ", vc.getChr(), ":", vc.getStart(), "-", vc.getEnd());
+                return include;
+            }
+        }
+    }
+
+}
diff --git a/src/java/picard/vcf/processor/VariantProcessor.java b/src/java/picard/vcf/processor/VariantProcessor.java
new file mode 100644
index 0000000..f40285e
--- /dev/null
+++ b/src/java/picard/vcf/processor/VariantProcessor.java
@@ -0,0 +1,171 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2015 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.vcf.processor;
+
+import htsjdk.samtools.util.IntervalList;
+import htsjdk.variant.variantcontext.VariantContext;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * Describes an object that processes variants and produces a result.
+ * <p/>
+ * A consumer typically builds an instance of this class via {@link Builder}, providing it the appropriate {@link AccumulatorGenerator} and
+ * {@link ResultMerger}, then calls {@link #process()} to obtain the {@link RESULT} of the processing.
+ * <p/>
+ * Future work...?
+ * - Make more efficient for the single-thread case.
+ * - A {@link VcfFileSegmentGenerator} that is based on an interval list, so that segments' span a constant-size total-base-count overlap with
+ * the interval list (or something in that vein).
+ *
+ * @author mccowan
+ */
+public class VariantProcessor<RESULT, ACCUMULATOR extends VariantProcessor.Accumulator<RESULT>> {
+
+    /**
+     * Handles {@link VariantContext}s, and accumulates their data in some fashion internally.
+     * A call to {@link #result()} produces an embodiment of the results of this processing (which may or may not be the accumulator itself).
+     *
+     * @author mccowan
+     */
+    public static interface Accumulator<RESULT> {
+        void accumulate(final VariantContext vc);
+
+        RESULT result();
+    }
+
+    /**
+     * Generates instances of {@link Accumulator}s.
+     *
+     * @author mccowan
+     */
+    public static interface AccumulatorGenerator<ACCUMULATOR extends Accumulator<RESULT>, RESULT> {
+        ACCUMULATOR build();
+    }
+
+    /**
+     * Takes a collection of results produced by {@link Accumulator#result()} and merges them into a single {@link RESULT}.
+     *
+     * @author mccowan
+     */
+    public static interface ResultMerger<RESULT> {
+        RESULT merge(final Collection<RESULT> resultsToReduce);
+    }
+
+
+    final ResultMerger<RESULT> merger;
+    final VariantAccumulatorExecutor<ACCUMULATOR, RESULT> executor;
+
+    VariantProcessor(
+            final ResultMerger<RESULT> merger,
+            final VariantAccumulatorExecutor<ACCUMULATOR, RESULT> executor) {
+        this.merger = merger;
+        this.executor = executor;
+    }
+
+    public RESULT process() {
+        executor.start();
+        try {
+            executor.awaitCompletion();
+        } catch (final InterruptedException e) {
+            throw new RuntimeException(e);
+        }
+
+        final List<RESULT> results = new ArrayList<RESULT>();
+        for (final ACCUMULATOR a : executor.accumulators()) {
+            results.add(a.result());
+        }
+        return merger.merge(results);
+    }
+
+    /** Simple builder of {@link VariantProcessor}s. */
+    public static class Builder<A extends Accumulator<R>, R> {
+        final AccumulatorGenerator<A, R> accumulatorGenerator;
+        ResultMerger<R> reducer = null;
+        IntervalList intervals = null;
+        final List<File> inputs = new ArrayList<File>();
+        int threadCount = 1;
+
+        Builder(final AccumulatorGenerator<A, R> accumulatorGenerator) {
+            this.accumulatorGenerator = accumulatorGenerator;
+        }
+
+        public Builder<A, R> multithreadingBy(final int threadCount) {
+            if (threadCount < 1) throw new IllegalArgumentException("Multithreading value must exceed 0.");
+            this.threadCount = threadCount;
+            return this;
+        }
+
+        public Builder<A, R> withInput(final File... vcfs) {
+            Collections.addAll(inputs, vcfs);
+            return this;
+        }
+
+        public Builder<A, R> limitingProcessedRegionsTo(final IntervalList intervals) {
+            if (this.intervals != null) throw new IllegalStateException("Already provided an interval list.");
+            this.intervals = IntervalList.copyOf(intervals);
+            return this;
+        }
+
+        public Builder<A, R> combiningResultsBy(final ResultMerger<R> reducer) {
+            if (this.reducer != null) throw new IllegalStateException("Already provided a reducer.");
+            this.reducer = reducer;
+            return this;
+        }
+
+        public static <A extends Accumulator<R>, R> Builder<A, R> generatingAccumulatorsBy(final AccumulatorGenerator<A, R> generator) {
+            return new Builder<A, R>(generator);
+        }
+
+        public VariantProcessor<R, A> build() {
+            if (inputs.isEmpty()) throw new IllegalStateException("You need to provided some inputs before building.");
+            if (reducer == null) throw new IllegalStateException("You must provide a reducer before building.");
+
+            return new VariantProcessor<R, A>(reducer, new VariantAccumulatorExecutor.MultiThreadedChunkBased<A, R>(
+                    threadCount,
+                    composeVcfIteratorProducerFromBuilderArguments(),
+                    accumulatorGenerator
+            ));
+        }
+
+        private VariantIteratorProducer composeVcfIteratorProducerFromBuilderArguments() {
+            /**
+             * Be careful; if we pick chunkings that are highly granular (e.g., a chunking based on each interval in an exome-like 
+             * interval list), it will result in a {@link htsjdk.variant.vcf.VCFFileReader#query(String, int, int)} call
+             * per tiny chunk, which is very non-performant due to some implementations of that method.
+             */
+            final VariantIteratorProducer ret;
+            if (intervals == null) {
+                ret = VariantIteratorProducer.byHundredMegabaseChunks(inputs);
+            } else {
+                ret = VariantIteratorProducer.byHundredMegabaseChunksWithOnTheFlyFilteringByInterval(inputs, intervals);
+            }
+            return ret;
+        }
+    }
+}
diff --git a/src/java/picard/vcf/processor/VcfFileSegment.java b/src/java/picard/vcf/processor/VcfFileSegment.java
new file mode 100644
index 0000000..104aabb
--- /dev/null
+++ b/src/java/picard/vcf/processor/VcfFileSegment.java
@@ -0,0 +1,89 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2015 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.vcf.processor;
+
+import htsjdk.samtools.util.Interval;
+import htsjdk.samtools.SAMSequenceRecord;
+
+import java.io.File;
+
+/**
+ * Describes a segment of a particular VCF file.
+ * 
+ * @author mccowan
+ */
+public abstract class VcfFileSegment {
+    abstract public int start();
+    abstract public int stop();
+    abstract public String contig();
+    abstract public File vcf();
+    
+    public Interval correspondingInterval() {
+        return new Interval(contig(), start(), stop());
+    }
+
+    @Override
+    public String toString() {
+        return vcf().getName() + "::" + contig() + ":" + start() + "-" + stop();
+    }
+
+    static VcfFileSegment ofWholeSequence(final SAMSequenceRecord sequence, final File vcf) {
+        return new SequenceSizedChunk(sequence, vcf);
+    }
+    
+    static class SequenceSizedChunk extends VcfFileSegment {
+        final SAMSequenceRecord sequence;
+        final File vcf;
+
+        private SequenceSizedChunk(final SAMSequenceRecord sequence, final File vcf) {
+            this.sequence = sequence;
+            this.vcf = vcf;
+        }
+
+        @Override
+        public String toString() {
+            return vcf().getAbsolutePath() + "::" + sequence.getSequenceName() + ":1-" + sequence.getSequenceLength();
+        }
+
+        @Override
+        public int start() {
+            return 1;
+        }
+
+        @Override
+        public int stop() {
+            return sequence.getSequenceLength();
+        }
+
+        @Override
+        public String contig() {
+            return sequence.getSequenceName();
+        }
+
+        @Override
+        public File vcf() {
+            return vcf;
+        }
+    }
+}
diff --git a/src/java/picard/vcf/processor/VcfFileSegmentGenerator.java b/src/java/picard/vcf/processor/VcfFileSegmentGenerator.java
new file mode 100644
index 0000000..e8a639e
--- /dev/null
+++ b/src/java/picard/vcf/processor/VcfFileSegmentGenerator.java
@@ -0,0 +1,203 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2015 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.vcf.processor;
+
+import com.google.common.base.Function;
+import com.google.common.base.Predicate;
+import com.google.common.collect.FluentIterable;
+import com.google.common.primitives.Ints;
+import htsjdk.samtools.util.Interval;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.OverlapDetector;
+import htsjdk.samtools.SAMSequenceDictionary;
+import htsjdk.samtools.SAMSequenceRecord;
+import htsjdk.variant.vcf.VCFFileReader;
+import htsjdk.variant.vcf.VCFHeader;
+
+import java.io.File;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * Describes a mechanism for producing {@link VcfFileSegment}s from a VCF file.
+ *
+ * @author mccowan
+ */
+public abstract class VcfFileSegmentGenerator {
+    final static Log LOG = Log.getInstance(VcfFileSegmentGenerator.class);
+
+    public abstract Iterable<VcfFileSegment> forVcf(final File vcf);
+
+    public static VcfFileSegmentGenerator byWholeContigSubdividingWithWidth(final long segmentWidth) {
+        return WidthLimitingDecorator.wrapping(ByWholeContig.getInstance(), segmentWidth);
+    }
+
+    /**
+     * Returns a decorated {@link VcfFileSegmentGenerator} that filters out {@link VcfFileSegment}s that have no overlap with the provided
+     * {@link OverlapDetector}.
+     */
+    public static <T> VcfFileSegmentGenerator excludingNonOverlaps(final VcfFileSegmentGenerator strategy, final OverlapDetector<T> overlaps) {
+        return new VcfFileSegmentGenerator() {
+            @Override
+            public Iterable<VcfFileSegment> forVcf(final File vcf) {
+                return FluentIterable.from(strategy.forVcf(vcf)).filter(new Predicate<VcfFileSegment>() {
+                    @Override
+                    public boolean apply(final VcfFileSegment segment) {
+                        final boolean keep = !overlaps.getOverlaps(new Interval(segment.contig(), segment.start(), segment.stop())).isEmpty();
+                        if (!keep) {
+                            LOG.debug(String.format("Ignoring segment because it does not overlap with detector, %s::%s:%s-%s",
+                                    segment.vcf().getName(), segment.contig(), segment.start(), segment.stop())
+                            );
+                        }
+                        return keep;
+                    }
+                });
+            }
+        };
+    }
+
+    /**
+     * A very simple {@link VcfFileSegmentGenerator} that breaks up the provided vcfs into contig-sized chunks.
+     *
+     * @author mccowan
+     */
+    static class ByWholeContig extends VcfFileSegmentGenerator {
+        // Singleton!
+        ByWholeContig() {
+        }
+
+        private static final ByWholeContig singleton = new ByWholeContig();
+
+        public static ByWholeContig getInstance() {
+            return singleton;
+        }
+
+        @Override
+        public Iterable<VcfFileSegment> forVcf(final File vcf) {
+            final List<SAMSequenceRecord> samSequenceRecords = readSequences(vcf);
+            return FluentIterable.from(samSequenceRecords).transform(new Function<SAMSequenceRecord, VcfFileSegment>() {
+                @Override
+                public VcfFileSegment apply(final SAMSequenceRecord samSequenceRecord) {
+                    return VcfFileSegment.ofWholeSequence(samSequenceRecord, vcf);
+                }
+            });
+        }
+
+        private static List<SAMSequenceRecord> readSequences(final File vcf) {
+            final VCFFileReader reader = new VCFFileReader(vcf);
+            final VCFHeader header = reader.getFileHeader();
+            final SAMSequenceDictionary dict = header.getSequenceDictionary();
+            reader.close();
+            return dict.getSequences();
+        }
+    }
+
+    /**
+     * Decorator to apply to other {@link VcfFileSegmentGenerator} to enforce that no segment is larger than the specified width.
+     *
+     * @author mccowan
+     */
+    static class WidthLimitingDecorator extends VcfFileSegmentGenerator {
+        final VcfFileSegmentGenerator underlyingStrategy;
+        final long width;
+
+        public static WidthLimitingDecorator wrapping(final VcfFileSegmentGenerator basis, final long maximumWidth) {
+            return new WidthLimitingDecorator(basis, maximumWidth);
+        }
+
+        private WidthLimitingDecorator(final VcfFileSegmentGenerator underlyingStrategy, final long maximumWidth) {
+            this.underlyingStrategy = underlyingStrategy;
+            this.width = maximumWidth - 1;
+        }
+
+        /**
+         * The thing that does the work; accepts a {@link VcfFileSegment} (produced by the parent {@link VcfFileSegmentGenerator}) and breaks
+         * it down into subsegments.
+         */
+        private class VcfFileSegmentSubdivider implements Iterable<VcfFileSegment> {
+            final VcfFileSegment basis;
+
+            private VcfFileSegmentSubdivider(final VcfFileSegment basis) {
+                this.basis = basis;
+            }
+
+            @Override
+            public Iterator<VcfFileSegment> iterator() {
+                return new Iterator<VcfFileSegment>() {
+                    int nextStart = basis.start();
+
+                    @Override
+                    public boolean hasNext() {
+                        return nextStart <= basis.stop();
+                    }
+
+                    @Override
+                    public VcfFileSegment next() {
+                        final int start = nextStart;
+                        final VcfFileSegment ret = new VcfFileSegment() {
+                            @Override
+                            public int start() {
+                                return start;
+                            }
+
+                            @Override
+                            public int stop() {
+                                return Ints.checkedCast(Math.min(start + width, basis.stop()));
+                            }
+
+                            @Override
+                            public String contig() {
+                                return basis.contig();
+                            }
+
+                            @Override
+                            public File vcf() {
+                                return basis.vcf();
+                            }
+                        };
+                        nextStart += width + 1;
+                        return ret;
+                    }
+
+                    @Override
+                    public void remove() {
+                        throw new UnsupportedOperationException();
+                    }
+                };
+            }
+        }
+
+        @Override
+        public Iterable<VcfFileSegment> forVcf(final File vcf) {
+            // Turn the VCF into segments, and then apply our 
+            return FluentIterable.from(underlyingStrategy.forVcf(vcf)).transformAndConcat(new Function<VcfFileSegment, Iterable<? extends VcfFileSegment>>() {
+                @Override
+                public Iterable<? extends VcfFileSegment> apply(final VcfFileSegment vcfFileSegment) {
+                    return new VcfFileSegmentSubdivider(vcfFileSegment);
+                }
+            });
+        }
+    }
+
+}
diff --git a/src/java/picard/vcf/processor/util/PredicateFilterDecoratingClosableIterator.java b/src/java/picard/vcf/processor/util/PredicateFilterDecoratingClosableIterator.java
new file mode 100644
index 0000000..7a8e6fb
--- /dev/null
+++ b/src/java/picard/vcf/processor/util/PredicateFilterDecoratingClosableIterator.java
@@ -0,0 +1,80 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2015 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.vcf.processor.util;
+
+import com.google.common.base.Preconditions;
+import com.google.common.base.Predicate;
+import com.google.common.collect.Iterators;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.CloseableIterator;
+import htsjdk.variant.variantcontext.VariantContext;
+
+import java.util.Collection;
+import java.util.Iterator;
+
+/**
+ * Performs on-the-fly filtering of the provided {@link VariantContext} {@link java.util.Iterator} such that only variants that satisfy
+ * all predicates are emitted.
+ *
+ * This class only exists because {@link Iterators#filter(Iterator, Predicate)} won't produce a {@link CloseableIterator}, which is 
+ * necessary. 
+ * 
+ * @author mccowan
+ */
+public class PredicateFilterDecoratingClosableIterator<T> implements CloseableIterator<T> {
+    final CloseableIterator<T> underlyingIterator;
+    final Iterator<T> filteredIterator;
+
+    public PredicateFilterDecoratingClosableIterator(final CloseableIterator<T> underlyingIterator, final Collection<Predicate<T>> predicates) {
+        Preconditions.checkArgument(!predicates.isEmpty(), "predicates must not be empty");
+        Iterator<T> nestedPredicateIterator = underlyingIterator;
+        for (final Predicate<T> predicate : predicates) {
+           nestedPredicateIterator = Iterators.filter(nestedPredicateIterator, predicate);   
+        }
+        filteredIterator = nestedPredicateIterator;
+        
+        this.underlyingIterator = underlyingIterator;
+    }
+    
+    @Override
+    public boolean hasNext() {
+        return filteredIterator.hasNext();
+    }
+
+    @Override
+    public T next() {
+        return filteredIterator.next();
+    }
+
+    @Override
+    public void close() {
+        underlyingIterator.close();
+    }
+
+    @Override
+    public void remove() {
+        underlyingIterator.remove();
+    }
+}
diff --git a/src/scripts/build_intel_deflater.sh b/src/scripts/build_intel_deflater.sh
deleted file mode 100644
index 49d018c..0000000
--- a/src/scripts/build_intel_deflater.sh
+++ /dev/null
@@ -1,64 +0,0 @@
-#! /bin/bash
-#
-# The MIT License
-#
-# Copyright (c) 2013 The Broad Institute
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-# THE SOFTWARE.
-#
-
-# Build libIntelDeflater.so, the JNI library that wraps Intel IPP compression library.
-# Note that this is not built as part of standard release process.  Rather, it is built manually and then
-# copied to Picard-public/lib/jni.
-
-# Assumes OpenJDK exists at $OPENJDK.  I used openjdk-7-fcs-src-b147-27_jun_2011.zip
-# Assumes that Picard-public java sources have been compiled
-# Assumes IPP8_CODE_SAMPLES_DIR points to Intel IPP sample code built with -fPIC
-set -e
-
-if [ "$OPENJDK" = "" ]
-then echo "ERROR: OPENJDK environment variable not defined." >&2
-     exit 1
-fi
-
-if [ "$IPP8_CODE_SAMPLES_DIR" = "" ]
-then echo "ERROR: IPP8_CODE_SAMPLES_DIR environment variable not defined." >&2
-     exit 1
-fi
-
-rootdir=$(dirname $(dirname $(dirname $0)))
-
-
-builddir=$rootdir/lib_build
-rm -rf $builddir
-mkdir -p $builddir
-
-# Create JNI C header file
-javah -jni -classpath $rootdir/classes -d $builddir net.sf.samtools.util.zip.IntelDeflater
-
-# Compile source and create library.
-gcc -I$builddir -I$JAVA_HOME/include/ -I$JAVA_HOME/include/linux/ -I$OPENJDK/jdk/src/share/native/common/ \
--I$OPENJDK/jdk/src/solaris/native/common/ -c -O3 -fPIC IntelDeflater.c
-gcc  -shared -o $builddir/libIntelDeflater.so IntelDeflater.o  -L${IPP8_CODE_SAMPLES_DIR}/__cmake/data-compression.intel64.make.static.release/__lib/release \
--lzlib  -lstdc++ -Wl,-Bstatic  -lbfp754  -ldecimal  -liomp5  -liompstubs5  -lipgo  -lippac  -lippcc  -lippch  -lippcv  \
--lippdc  -lippdi  -lippgen  -lippi  -lippj  -lippm  -lippr  -lippsc  -lippvc  -lippvm  -lirng  -lmatmul  -lpdbx  \
--lpdbxinst  -lsvml  -lipps  -limf  -lirc  -lirc_s  -lippcore -Wl,-Bdynamic
-
-
-
diff --git a/src/scripts/explain_sam_flags.py b/src/scripts/explain_sam_flags.py
deleted file mode 100755
index cb6ad02..0000000
--- a/src/scripts/explain_sam_flags.py
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/usr/bin/env python
-
-# The MIT License
-#
-# Copyright (c) $today.year The Broad Institute
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-#
-# $Header$
-
-"""usage %prog decimal-flag [decimal-flag...]
-
-Explain each flag on the command line in plain English
-"""
-
-from __future__ import division
-import sys
-
-lstFlags = [
-    ("read paired", 0x1),
-    ("read mapped in proper pair", 0x2),
-    ("read unmapped", 0x4),
-    ("mate unmapped", 0x8),
-    ("read reverse strand", 0x10),
-    ("mate reverse strand", 0x20),
-    ("first in pair", 0x40),
-    ("second in pair", 0x80),
-    ("not primary alignment", 0x100),
-    ("read fails platform/vendor quality checks", 0x200),
-    ("read is PCR or optical duplicate", 0x400),
-    ("supplementary alignment", 0x800)
-    ]
-    
-
-def explain_sam_flags(iFlags):
-    print iFlags, ":"
-    for strFlagName, iMask in lstFlags:
-        if iFlags & iMask:
-            print "\t" + strFlagName
-
-def main(argv=None):
-    if argv is None:
-        argv = sys.argv
-
-    for strArg in argv[1:]:
-        explain_sam_flags(int(strArg))
-
-if __name__ == "__main__":
-    sys.exit(main())
-    
diff --git a/src/scripts/net/sf/picard/analysis/gcBias.R b/src/scripts/net/sf/picard/analysis/gcBias.R
deleted file mode 100644
index 1563cdf..0000000
--- a/src/scripts/net/sf/picard/analysis/gcBias.R
+++ /dev/null
@@ -1,77 +0,0 @@
-# Script to generate a chart to display GC bias based upon read starts observed
-# in windows along the genome.
-#
-# @author Tim Fennell
-
-# Parse the arguments
-args <- commandArgs(trailing=T)
-metricsFile  <- args[1]
-outputFile   <- args[2]
-datasetName  <- args[3]
-subtitle  <- args[4]
-windowSize   <- args[5]
-
-# Figure out where the metrics and the histogram are in the file and parse them out
-startFinder <- scan(metricsFile, what="character", sep="\n", quiet=TRUE, blank.lines.skip=FALSE)
-
-firstBlankLine=0
-
-for (i in 1:length(startFinder)) {
-        if (startFinder[i] == "") {
-                if (firstBlankLine==0) {
-                        firstBlankLine=i+1
-                } else {
-                        secondBlankLine=i+1
-                        break
-                }
-        }
-}
-
-metrics <- read.table(metricsFile, header=T, sep="\t", skip=firstBlankLine)
-pdf(outputFile)
-
-# Some constants that are used below
-Y_AXIS_LIM = 2;
-MAX_QUALITY_SCORE = 40;
-COLORS = c("royalblue", "#FFAAAA", "palegreen3");
-
-# Adjust to give more margin on the right hand side
-par(mar = c(5, 4, 4, 4));
-
-# Do the main plot of the normalized coverage by GC
-plot(type="p", x=metrics$GC, y=metrics$NORMALIZED_COVERAGE,
-     xlab=paste(c("GC% of", windowSize, "base windows"), sep=" ", collapse=" "),
-     ylab="Fraction of normalized coverage",
-     xlim=c(0,100),
-     ylim=c(0, Y_AXIS_LIM),
-     col=COLORS[1],
-     main=paste(datasetName, "GC Bias Plot", "\n", subtitle)
-    );
-
-# Add lines at the 50% GC and coverage=1
-abline(h=1, v=50, col="lightgrey");
-
-# Add error bars
-arrows(metrics$GC,
-       metrics$NORMALIZED_COVERAGE - metrics$ERROR_BAR_WIDTH,
-       metrics$GC,
-       metrics$NORMALIZED_COVERAGE + metrics$ERROR_BAR_WIDTH,
-       code = 3, angle = 90, length = 0.05, col="grey");
-
-# Plot count of windows as a separate series near the bottom
-window_ratio = 0.5 / max(metrics$WINDOWS);
-scaled_windows = metrics$WINDOWS * window_ratio;
-lines(metrics$GC, scaled_windows, type="h", col=COLORS[2], lwd=3);
-
-# Plot the quality series
-lines(metrics$GC, metrics$MEAN_BASE_QUALITY * Y_AXIS_LIM / MAX_QUALITY_SCORE, type="l", col=COLORS[3]);
-axis(4,
-     at=c(0, Y_AXIS_LIM/4, Y_AXIS_LIM/4*2, Y_AXIS_LIM/4*3, Y_AXIS_LIM),
-     labels=c(0, MAX_QUALITY_SCORE/4, MAX_QUALITY_SCORE/4*2, MAX_QUALITY_SCORE/4*3, MAX_QUALITY_SCORE)
-    );
-mtext("Mean base quality", side=4, line=2.5);
-
-# And finally add a legend
-legend("topleft", pch=c(1,15, 45), legend=c("Normalized Coverage", "Windows at GC%", "Base Quality at GC%"), col=COLORS)
-
-dev.off();
\ No newline at end of file
diff --git a/src/scripts/picard/analysis/baseDistributionByCycle.R b/src/scripts/picard/analysis/baseDistributionByCycle.R
new file mode 100644
index 0000000..e443068
--- /dev/null
+++ b/src/scripts/picard/analysis/baseDistributionByCycle.R
@@ -0,0 +1,52 @@
+# Script to generate a chart of the base distribution by cycle
+# @author Nils Homer
+
+# Parse the arguments
+args <- commandArgs(trailing=T);
+metricsFile  <- args[1];
+outputFile   <- args[2];
+bamFile  <- args[3];
+subtitle <- ifelse(length(args) < 4, "", args[4]);
+
+
+# Figure out where the metrics and the histogram are in the file and parse them out
+startFinder <- scan(metricsFile, what="character", sep="\n", quiet=TRUE, blank.lines.skip=FALSE);
+
+firstBlankLine=0;
+
+for (i in 1:length(startFinder)) {
+        if (startFinder[i] == "") {
+                if (firstBlankLine==0) {
+                        firstBlankLine=i+1;
+                } else {
+                        secondBlankLine=i+1;
+                        break;
+                }
+        }
+}
+
+metrics <- read.table(metricsFile, header=T, sep="\t", skip=firstBlankLine);
+
+# Then plot the histogram as a PDF
+pdf(outputFile);
+
+plot(x=c(1, 20+nrow(metrics)),
+     y=c(0, max(metrics[,3:7])),
+     main=paste("Base Distribution by Cycle\nin file ",bamFile," ",ifelse(subtitle == "","",paste("(",subtitle,")",sep="")),sep=""),
+     xlab="Cycle",
+     ylab="Base Percentage",
+     type="n");
+
+colors = c("red", "orange", "blue", "purple", "black");
+
+for (i in 1:5) {
+    lines(x=1:nrow(metrics),
+        y=metrics[,2+i],
+        col=colors[i],
+        type="l",
+        lty=1);
+}
+
+legend("bottomright", lwd=1, legend=c("PCT_A", "PCT_C", "PCT_G", "PCT_T", "PCT_N"), col=colors);
+
+dev.off();
diff --git a/src/scripts/picard/analysis/gcBias.R b/src/scripts/picard/analysis/gcBias.R
new file mode 100644
index 0000000..503e737
--- /dev/null
+++ b/src/scripts/picard/analysis/gcBias.R
@@ -0,0 +1,109 @@
+# Script to generate a chart to display GC bias based upon read starts observed
+# in windows along the genome.
+#
+# @author Tim Fennell
+# @author Kylee Bergin
+# edited to make multiple charts for multilevel collection
+
+# Parse the arguments
+args <- commandArgs(trailing=T)
+metricsFile  <- args[1]
+summaryMetricsFile <- args[2]
+outputFile   <- args[3]
+windowSize   <- args[4]
+
+# Figure out where the metrics and the histogram are in the file and parse them out
+startFinder <- scan(metricsFile, what="character", sep="\n", quiet=TRUE, blank.lines.skip=FALSE)
+startFinder2 <- scan(summaryMetricsFile, what="character", sep="\n", quiet=TRUE, blank.lines.skip=FALSE)
+firstBlankLine=0
+firstBlankLine2=0
+secondBlankLine2=0
+
+for (i in 1:length(startFinder)) {
+        if (startFinder[i] == "") {
+                if (firstBlankLine==0) {
+                        firstBlankLine=i+1
+                } else {
+                        secondBlankLine=i+1
+                        break
+                }
+        }
+}
+
+for (j in 1:length(startFinder2)) {
+        if (startFinder2[j] == "") {
+                if (firstBlankLine==0) {
+                        firstBlankLine2=j+1
+                } else {
+                        secondBlankLine2=j+1
+                        break
+                }
+        }
+}
+pdf(outputFile, onefile=TRUE);
+
+summaryMetrics <- read.table(summaryMetricsFile, header=T, sep="\t", skip=firstBlankLine2);
+num.plots <- nrow(summaryMetrics);
+my.plots <- vector(num.plots, mode='list');
+
+for (k in 1:(num.plots)){
+    if (k==1){
+        metrics <- read.table(metricsFile, header=T, sep="\t", skip=(firstBlankLine), nrows=101);
+        heads = colnames(metrics);
+    }else{
+        metrics <-read.table(metricsFile, header=F, sep="\t", skip=(firstBlankLine+((k-1)*101+1)), nrows=101);
+        colnames(metrics) <- heads;
+    }
+    heads = colnames(metrics);
+    # Some constants that are used below
+    Y_AXIS_LIM = 2;
+    MAX_QUALITY_SCORE = 40;
+    COLORS = c("royalblue", "#FFAAAA", "palegreen3");
+
+    # Adjust to give more margin on the right hand side
+    par(mar = c(5, 4, 4, 4));
+
+    accLevel = summaryMetrics[k,"ACCUMULATION_LEVEL"];
+    if(accLevel=="All Reads"){datasetName <- "All Reads";}
+    else{
+    	if(accLevel == "Sample"){datasetName <- summaryMetrics[k, "SAMPLE"]}
+    	if(accLevel == "Library"){datasetName <- summaryMetrics[k, "LIBRARY"]}
+    	else(datasetName <- summaryMetrics[k, "READ_GROUP"])}
+    subtitle = cat("Total clusters: ",summaryMetrics[k,"TOTAL_CLUSTERS"],", Aligned reads: ",summaryMetrics[k, "ALIGNED_READS"]);
+    # Do the main plot of the normalized coverage by GC
+    plot(type="p", x=metrics$GC, y=metrics$NORMALIZED_COVERAGE,
+        xlab=paste(c("GC% of", windowSize, "base windows"), sep=" ", collapse=" "),
+        ylab="Fraction of normalized coverage",
+        xlim=c(0,100),
+        ylim=c(0, Y_AXIS_LIM),
+        col=COLORS[1],
+        main=paste(accLevel, "Level:", datasetName, "GC Bias Plot", "\n", subtitle)
+        );
+
+    # Add lines at the 50% GC and coverage=1
+    abline(h=1, v=50, col="lightgrey");
+
+    # Plot count of windows as a separate series near the bottom
+    window_ratio = 0.5 / max(metrics$WINDOWS);
+    scaled_windows = metrics$WINDOWS * window_ratio;
+    lines(metrics$GC, scaled_windows, type="h", col=COLORS[2], lwd=3);
+
+    # Plot the quality series
+    lines(metrics$GC, metrics$MEAN_BASE_QUALITY * Y_AXIS_LIM / MAX_QUALITY_SCORE, type="l", col=COLORS[3]);
+    axis(4,
+        at=c(0, Y_AXIS_LIM/4, Y_AXIS_LIM/4*2, Y_AXIS_LIM/4*3, Y_AXIS_LIM),
+        labels=c(0, MAX_QUALITY_SCORE/4, MAX_QUALITY_SCORE/4*2, MAX_QUALITY_SCORE/4*3, MAX_QUALITY_SCORE)
+        );
+    mtext("Mean base quality", side=4, line=2.5);
+
+    # And finally add a legend
+   	legend("topleft", pch=c(1,15, 45), legend=c("Normalized Coverage", "Windows at GC%", "Base Quality at GC%"), col=COLORS)
+   	p=recordPlot()
+   	my.plots[[k]] <- p
+}
+
+for (my.plot in my.plots){
+    replayPlot(my.plot)
+}
+
+graphics.off();
\ No newline at end of file
diff --git a/src/scripts/net/sf/picard/analysis/insertSizeHistogram.R b/src/scripts/picard/analysis/insertSizeHistogram.R
similarity index 100%
rename from src/scripts/net/sf/picard/analysis/insertSizeHistogram.R
rename to src/scripts/picard/analysis/insertSizeHistogram.R
diff --git a/src/scripts/net/sf/picard/analysis/meanQualityByCycle.R b/src/scripts/picard/analysis/meanQualityByCycle.R
similarity index 100%
rename from src/scripts/net/sf/picard/analysis/meanQualityByCycle.R
rename to src/scripts/picard/analysis/meanQualityByCycle.R
diff --git a/src/scripts/net/sf/picard/analysis/qualityScoreDistribution.R b/src/scripts/picard/analysis/qualityScoreDistribution.R
similarity index 100%
rename from src/scripts/net/sf/picard/analysis/qualityScoreDistribution.R
rename to src/scripts/picard/analysis/qualityScoreDistribution.R
diff --git a/src/scripts/net/sf/picard/analysis/rnaSeqCoverage.R b/src/scripts/picard/analysis/rnaSeqCoverage.R
similarity index 100%
rename from src/scripts/net/sf/picard/analysis/rnaSeqCoverage.R
rename to src/scripts/picard/analysis/rnaSeqCoverage.R
diff --git a/src/scripts/picard/analysis/rrbsQc.R b/src/scripts/picard/analysis/rrbsQc.R
new file mode 100644
index 0000000..c7d7abe
--- /dev/null
+++ b/src/scripts/picard/analysis/rrbsQc.R
@@ -0,0 +1,109 @@
+##
+## The MIT License
+##
+## Copyright (c) 2013 The Broad Institute
+##
+## Permission is hereby granted, free of charge, to any person obtaining a copy
+## of this software and associated documentation files (the "Software"), to deal
+## in the Software without restriction, including without limitation the rights
+## to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+## copies of the Software, and to permit persons to whom the Software is
+## furnished to do so, subject to the following conditions:
+##
+## The above copyright notice and this permission notice shall be included in
+## all copies or substantial portions of the Software.
+##
+## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+## IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+## FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+## AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+## LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+## OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+## THE SOFTWARE.
+##
+
+args = commandArgs(trailingOnly=TRUE)
+opt = list(details.fn=args[1], summary.fn=args[2], output.fn=args[3])
+
+read_metrics_file = function(metrics.fn) {
+  contents = read.delim(metrics.fn, comment.char="#", stringsAsFactors=FALSE)
+  return(contents)
+}
+
+equals_or_is_na = function(x1, x2) {
+  if (is.na(x1)) {
+    return(is.na(x2))
+  } else {
+    return(x1 == x2)
+  }
+}
+
+details = read_metrics_file(opt$details.fn)
+summary = read_metrics_file(opt$summary.fn)
+
+pdf(opt$output.fn)
+par(mfrow=c(2,2), oma=c(0,0,2,0))
+
+for (i in seq_len(nrow(summary))) {
+  cur_summary = summary[i, ]
+  cur_sample = cur_summary[1, "SAMPLE"]
+  cur_library = cur_summary[1, "LIBRARY"]
+  cur_read_group = cur_summary[1, "READ_GROUP"]
+  cur_details = details[which((equals_or_is_na(cur_library, details[, "LIBRARY"]) &
+    (equals_or_is_na(cur_sample, details[, "SAMPLE"])) &
+    (equals_or_is_na(cur_read_group, details[, "READ_GROUP"])))), ]
+  
+  
+  ## Plot conversion rates
+  cpg.converted = sum(cur_details$CONVERTED_SITES)
+  cpg.seen = sum(cur_details$TOTAL_SITES)
+  cpg.conversion = cpg.converted / cpg.seen
+  total.conversion = (cpg.converted + cur_summary$NON_CPG_CONVERTED_BASES) / (cpg.seen + cur_summary$NON_CPG_BASES)
+
+  barplot(c("non-CpG"=cur_summary$PCT_NON_CPG_BASES_CONVERTED, "Combined"=total.conversion, "CpG"=cpg.conversion),
+          ylim=c(0.95, 1), ylab="% Conversion", xlab="Distribution", main="Bisulfite Conversion Rate",
+          col="blue", xpd=FALSE)
+  abline(h=0.995, col="grey")
+  
+  ## Plot histogram of CpG counts by conversion rate
+  hist(cur_details$PCT_CONVERTED, 10, xlab="Conversion Rate Of CpGs", ylab="# CpGs",
+       main="CpG Conversion Rate Distribution", col="blue")
+  
+  ## Plot pie chart showing distribution of CpG coverage
+  coverage_breaks = c(0, 1, 5, 10, 25, 50, 100, Inf)
+  coverage_cut = cut(cur_details$TOTAL_SITES, coverage_breaks)
+  cpg_coverage = split(cur_details$TOTAL_SITES, coverage_cut)
+  coverages = sapply(cpg_coverage, length)[2:7]
+  names(coverages) = paste(">=", c(1, 5, 10, 25, 50, 100), sep="")
+  ## If we have 0s all across the pie chart will be effectively meaningless but put in a 100% >= 0 field instead
+  ## to avoid an error on pie(). Normally it'd just be a pain to see these, but ...
+  if (all(coverages == 0)) {
+    coverages = c("No Coverage"=1)
+  }
+  color_ramp = colorRampPalette(c("white", "#538ED5", "blue"), bias=1, space="Lab")
+  colors = color_ramp(length(coverages))[2:length(coverages)]
+  pie(coverages, main="Distribution Of CpGs By Coverage", col=colors, clockwise=TRUE)
+  
+  discards = log10(c("Mismatches"=cur_summary$READS_IGNORED_MISMATCHES, "Size"=cur_summary$READS_IGNORED_SHORT))
+  ## Protect against -Inf in the case where we had 0 discards
+  discards = ifelse(is.finite(discards), discards, 0)
+  barplot(discards, ylab="Number Discarded (log10)", xlab="Reason",
+          main="Reads Discarded", col="blue", ylim=c(0, ceiling(max(discards))))
+
+  header_txt = character()
+  if (!is.na(cur_sample) && cur_sample != "") {
+    header_txt = paste(header_txt, " SAMPLE=", cur_sample, sep="")
+  }
+  if (!is.na(cur_library) && cur_library != "") {
+    header_txt = paste(header_txt, " LIBRARY=", cur_library, sep="")
+  }
+  if (!is.na(cur_read_group) && cur_read_group != "") {
+    header_txt = paste(header_txt, " READ GROUP=", cur_read_group, sep="")
+  }
+  if (length(header_txt) > 0) {
+    mtext(header_txt, outer=TRUE, line=1)
+  }
+}
+
+dev.off()
+  
diff --git a/src/scripts/picard/docker_helper.sh b/src/scripts/picard/docker_helper.sh
new file mode 100755
index 0000000..405c3f1
--- /dev/null
+++ b/src/scripts/picard/docker_helper.sh
@@ -0,0 +1,27 @@
+#!/usr/bin/env bash
+
+# Example Usage: ./docker_helper.sh -j "-XX:GCTimeLimit=50 -XX:GCHeapFreeLimit=10 -Xmx4000m" MarkDuplicates INPUT=fake.bam ...
+usage() {
+  cat << EOF
+Usage: $0 [-j <JVM arguments>] tool_name tool_arguments
+
+Run Picard with JVM args and program args if present. Assumes picard.jar lives in the same directory.
+JVM arguments should be a quoted, space separated list.
+
+Example Usage:
+./docker_helper.sh -j "-XX:GCTimeLimit=50 -XX:GCHeapFreeLimit=10 -Xmx4000m" MarkDuplicates INPUT=fake.bam ...
+
+EOF
+  exit 1
+}
+while getopts "j:h" OPTION; do
+  case $OPTION in
+    j) JVM_ARGS=$OPTARG;;
+    h) usage; exit 0;;
+    [?]) usage; exit 1;;
+  esac
+done
+shift $(expr $OPTIND - 1)
+TOOL_WITH_ARGS=$@
+
+java ${JVM_ARGS} -jar picard.jar ${TOOL_WITH_ARGS}
\ No newline at end of file
diff --git a/src/scripts/release_picard.sh b/src/scripts/release_picard.sh
index 1689299..d237931 100755
--- a/src/scripts/release_picard.sh
+++ b/src/scripts/release_picard.sh
@@ -22,40 +22,138 @@
 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 
 PROGNAME=`basename $0`
-USERNAME=alecw
 
 function usage () {
     echo "USAGE: $PROGNAME <release-id>" >&2
-    echo "Branches Sourceforge Picard source, checks out and builds sources, uploads build results to Sourceforge.">&2
+	echo "Tags Github Picard source, checks out and builds sources, uploads build results to Sourceforge.">&2
     echo "-t <tmpdir>                Build in <tmpdir>.  Default: $TMPDIR." >&2
-    echo "-u <sourceforge-user> Sourceforge username.  Default: $USERNAME." >&2
 }
 
-function branch_exists() {
-    if svn info $1 2>&1 | egrep -q '(Not a valid URL)|(non-existent in revision)'
+function create_release () {
+	local token="$1";
+	local owner="$2";
+	local repo="$3";
+	local tag_name="$4";
+	local target_commitish="$5";
+	local name="$6";
+	local body="$7";
+	local draft="$8";
+	local prerelease="$9";
+
+	local payload="\"tag_name\":\"$tag_name\"";
+	payload="$payload,\"target_commitish\":\"$target_commitish\"";
+	payload="$payload,\"name\":\"$name\"";
+	payload="$payload,\"body\":\"$body\"";
+	payload="$payload,\"draft\":$draft";
+	payload="$payload,\"prerelease\":$prerelease";
+	payload="{$payload}";
+
+	RELEASE_RESPONSE=$(curl --fail -s -S -X POST \
+		https://api.github.com/repos/$owner/$repo/releases \
+		-A "create-release" \
+		-H "Accept: application/vnd.github.v3+json" \
+		-H "Content-Type: application/json" \
+		-H "Authorization: token $token" \
+		-d "$payload");
+
+	# NB: we must set the RELEASE_GITHUB_ID as the ID in the returned json response
+	export RELEASE_GITHUB_ID=$(echo "$RELEASE_RESPONSE" | sed -e 's_",.*__g' -e 's_.*/__g')
+}
+
+function upload_asset () {
+	local token="$1";
+	local owner="$2";
+	local repo="$3";
+	local name="$4";
+	local content_type="$5";
+	local file="$6";
+	local id="$7";
+
+	curl --fail -s -S -X POST \
+		https://uploads.github.com/repos/$owner/$repo/releases/$id/assets?name=$name \
+		-A "upload-asset" \
+		-H "Accept: application/vnd.github.v3+json" \
+		-H "Content-Type: $content_type" \
+		-H "Authorization: token $token" \
+		--progress-bar \
+		--data-binary @"$file";
+}
+
+function tag_exists() {
+    git tag | grep -q "$1$"
+    if test $? = 0
+        then return 0
+        else return 1
+    fi
+}
+
+function remote_does_not_exist() {
+    git ls-remote $1 2>/dev/null 1>/dev/null
+    if test $? = 0
         then return 1
         else return 0
     fi
 }
 
+function remote_tag_does_not_exist() {
+    git ls-remote --tags $2 | grep -q "$1$";
+    if test $? = 0
+        then return 0
+        else return 1
+    fi
+}
+
+
+# This method called once for picard and once for htsjdk
+function tag_it() {
+
+    # tag must not exist
+    if tag_exists $RELEASE_ID
+    then echo "ERROR: Tag $RELEASE_ID locally already exists"
+         return 1
+    fi
+
+    # remote must exist
+    if remote_does_not_exist $REMOTE
+    then echo "ERROR: Remote $REMOTE does not exist"
+         return 1
+    fi
+
+    # tag at remote must not exist
+    if remote_tag_does_not_exist $RELEASE_ID $REMOTE
+    then echo "ERROR: Tag $RELEASE_ID at remote $REMOTE already exists"
+         return 1
+    fi
+
+    # tag the branch locally then push to remote
+    echo Tagging master as $RELEASE_ID and pushing the tag to $REMOTE
+    # NB: we could use annotated tags in the future to store release notes, etc.
+    git tag $RELEASE_ID
+    git push $REMOTE $RELEASE_ID # TODO: should we check this return value in case someone made a tag since we last checked?
+}
+
 set -e
 
-while getopts "ht:u:" options; do
+while getopts "ht:" options; do
   case $options in
-    u ) USERNAME=$OPTARG;;
     t ) TMPDIR=$OPTARG;;
     h ) usage;;
     \? ) usage
          exit 1;;
     * ) usage
           exit 1;;
-
   esac
 done
 shift $(($OPTIND - 1))
 
+if [ -z $GITHUB_USER_TOKEN ]
+then echo "ERROR: environment variable GITHUB_USER_TOKEN must be set." >&2
+	usage
+	exit 1
+fi
+
 if (( $# != 1 ))
- then echo "ERROR: Incorrect number of arguments." >&2
+then echo "ERROR: Incorrect number of arguments." >&2
       usage
       exit 1
 fi
@@ -71,56 +169,54 @@ fi
 java_version=`java -version 2>&1 | fgrep -i version`
 (echo $java_version | fgrep -q 1.6. ) || { echo "java -version: $java_version is not 1.6"; exit 1; }
 
-SVNROOT=svn+ssh://$USERNAME@svn.code.sf.net/p/picard/code
+PICARDGITROOT=git at github.com:broadinstitute/picard.git
+REMOTE=origin
+GHPAGES_BRANCH="gh-pages"
 
 RELEASE_ID=$1
 
 # Since releases are lexically sorted, need to filter in order to have 1.1xx be at the bottom.
-PREV_RELEASE_ID=`svn --username $USERNAME ls $SVNROOT/tags | egrep '[.]\d\d\d' | tail -1 | sed 's/\/$//'`
-
-if branch_exists $SVNROOT/branches/$RELEASE_ID
-then echo "ERROR: $SVNROOT/branches/$RELEASE_ID already exists.">&2
-       exit 1
-fi
+PICARD_PREV_RELEASE_ID=`git ls-remote --tags | grep -v "{}$" | awk '{print $2}' | sed -e "s_.*/__g" | egrep '[.]\d\d\d' | tail -1`
 
-if branch_exists $SVNROOT/tags/$RELEASE_ID
-then echo "ERROR: $SVNROOT/tags/$RELEASE_ID already exists.">&2
-       exit 1
-fi
-
-if [[ -e $TMPDIR/Picard-public ]]
-then echo "$TMPDIR/Picard-public already exists.  Please remove or specify a different TMPDIR." >&2
+if [[ -e $TMPDIR/picard ]]
+then echo "$TMPDIR/picard already exists.  Please remove or specify a different TMPDIR." >&2
         exit 1
 fi
-
-# NB: do not copy the trunk to branches, as we already are copying it to tags.
-#svn --username $USERNAME copy -m "Release $RELEASE_ID" $SVNROOT/trunk $SVNROOT/branches/$RELEASE_ID
-svn --username $USERNAME copy -m "Release $RELEASE_ID" $SVNROOT/trunk $SVNROOT/tags/$RELEASE_ID
-
+echo "Using TMPDIR: $TMPDIR";
 cd $TMPDIR
 
-mkdir Picard-public
-cd Picard-public
-svn --username $USERNAME co $SVNROOT/tags/$RELEASE_ID .
+# clone
+git clone $PICARDGITROOT picard
+cd picard
+ant clone-htsjdk
+ant clean # clean shouldn't be necessary, but no harm
 
-ant -lib lib/ant test
+# Since releases are lexically sorted, need to filter in order to have 1.1xx be at the bottom.
+PICARD_PREV_RELEASE_ID=`git ls-remote --tags | grep -v "{}$" | awk '{print $2}' | sed -e "s_.*/__g" | egrep '[.]\d\d\d' | tail -1`
+HTSJDK_PREV_RELEASE_ID=$(cd htsjdk; git ls-remote --tags | grep -v "{}$" | awk '{print $2}' | sed -e "s_.*/__g" | egrep '[.]\d\d\d' | tail -1)
+
+# Tag in both repos
+for sandbox in . htsjdk
+do pushd $sandbox
+	tag_it || exit 1
+	popd
+done
 
-ant -lib lib/ant clean all javadoc
+ant -lib lib/ant test-htsjdk test
 
-REVISION=`svn --username $USERNAME info $SVNROOT/tags/$RELEASE_ID | egrep '^Last Changed Rev: ' | awk '{print $4}'`
-PREV_REVISION=`svn --username $USERNAME info $SVNROOT/tags/$PREV_RELEASE_ID | egrep '^Last Changed Rev: ' | awk '{print $4}'`
+ant -lib lib/ant clean all javadoc
 
 mkdir -p deploy/picard-tools/$RELEASE_ID
 
-svn --username $USERNAME log -r $PREV_REVISION:$REVISION -v > deploy/picard-tools/$RELEASE_ID/README.txt
+git log --name-status ${PICARD_PREV_RELEASE_ID}..${RELEASE_ID} > deploy/picard-tools/$RELEASE_ID/README.txt
+
+(cd htsjdk; git log --name-status  ${HTSJDK_PREV_RELEASE_ID}..${RELEASE_ID}) >> deploy/picard-tools/$RELEASE_ID/README.txt
 
 echo 'Edit release notes and exit editor when finished.'
 
 $EDITOR deploy/picard-tools/$RELEASE_ID/README.txt
 
 cp dist/picard-tools-$RELEASE_ID.zip deploy/picard-tools/$RELEASE_ID/
-mkdir -p deploy/sam-jdk/$RELEASE_ID
-cp dist/sam-$RELEASE_ID.jar deploy/sam-jdk/$RELEASE_ID/
 
 # Make all files to be pushed to Sourceforge writable by group so that another Picard admin can overwrite them.
 
@@ -128,12 +224,66 @@ chmod -R gu+rw javadoc deploy dist
 
 find javadoc deploy dist -type d -exec chmod g+s '{}' ';' 
 
-scp -p -r javadoc $USERNAME,picard at web.sourceforge.net:htdocs
-
-cd deploy
-scp -p -r picard-tools/$RELEASE_ID $USERNAME,picard at web.sourceforge.net:/home/frs/project/p/pi/picard/picard-tools/
-scp -p -r sam-jdk/$RELEASE_ID $USERNAME,picard at web.sourceforge.net:/home/frs/project/p/pi/picard/sam-jdk/
-
-cd ../dist/html
-scp -p *.shtml program_usage/*.shtml $USERNAME,picard at web.sourceforge.net:htdocs/inc
+# Move the javadoc directory to a temporary location
+mv javadoc tmp_javadoc
+
+# Copy over javadoc for htsjdk since we are in the picard directory
+# NB: need to move javadoc to a tmp directory since the javadoc 
+# directory in the gh-pages branch may already exist.
+cd htsjdk
+mkdir tmp_javadoc
+cp -r ../tmp_javadoc/htsjdk tmp_javadoc/.
+cd ../
+
+# Update the javadoc
+for sandbox in . htsjdk
+do pushd $sandbox
+	if [ "." == $sandbox ]; then
+		sandbox="picard";
+	fi
+	echo "Updating the javadoc for $sandbox"
+	# Checkout the gh-pages branch
+	git checkout -b $GHPAGES_BRANCH $REMOTE/$GHPAGES_BRANCH
+	# Copy over from the tmp javadoc directory
+	if [ ! -d javadoc ]; then
+		mkdir javadoc;
+	fi
+	rsync -avP --delete-after tmp_javadoc/* javadoc/.
+	# Remove the tmp directory as we no longer need it
+	rm -r tmp_javadoc
+	# Add the new javadoc files
+	find javadoc/$sandbox | xargs git add
+	# Commit!
+	git commit -m "Updating javadoc for release: $RELEASE_ID"
+	# NB: assumes the push will not fail
+	git push $REMOTE $GHPAGES_BRANCH
+	# Reset the repository to master 
+	git checkout master
+	echo "Updated the javadoc for $sandbox"
+	popd
+done
 
+# Publish a release and upload assets
+echo "Creating a release on github for htsjdk and picard"
+create_release $GITHUB_USER_TOKEN samtools htsjdk $RELEASE_ID "" $RELEASE_ID "Release $RELEASE_ID" "false" "false";
+create_release $GITHUB_USER_TOKEN broadinstitute picard $RELEASE_ID "" $RELEASE_ID "Release $RELEASE_ID" "false" "false";
+echo "Github release id: $RELEASE_GITHUB_ID"
+echo "Updating the release zip and README.txt to github"
+upload_asset $GITHUB_USER_TOKEN broadinstitute picard picard-tools-$RELEASE_ID.zip "application/zip" deploy/picard-tools/$RELEASE_ID/picard-tools-$RELEASE_ID.zip $RELEASE_GITHUB_ID;
+upload_asset $GITHUB_USER_TOKEN broadinstitute picard README.txt "application/zip" deploy/picard-tools/$RELEASE_ID/README.txt $RELEASE_GITHUB_ID;
+
+# Update the website
+echo "Updating the website"
+# Assumes the gh-pages branch is already locally created
+git checkout $GHPAGES_BRANCH;
+cd dist/html
+cp inc/*.html program_usage/*.html picard-metric-definitions.html ../../_includes/.
+cd ../../
+find _includes | xargs git add
+git commit -m "Adding website files for $RELEASE_ID"
+git push $REMOTE $GHPAGES_BRANCH
+
+# Move back to master just in case
+git checkout master
+
+echo "Release was successful!"
diff --git a/src/tests/java/net/sf/picard/analysis/CollectAlignmentSummaryMetricsTest.java b/src/tests/java/net/sf/picard/analysis/CollectAlignmentSummaryMetricsTest.java
deleted file mode 100644
index 511b297..0000000
--- a/src/tests/java/net/sf/picard/analysis/CollectAlignmentSummaryMetricsTest.java
+++ /dev/null
@@ -1,507 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.analysis;
-
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-import java.text.NumberFormat;
-
-import net.sf.picard.analysis.CollectAlignmentSummaryMetrics;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import net.sf.picard.metrics.MetricsFile;
-import net.sf.picard.analysis.AlignmentSummaryMetrics;
-
-/**
- * Tests CollectAlignmentSummaryStatistics
- *
- * @author Doug Voet (dvoet at broadinstitute dot org)
- */
-public class CollectAlignmentSummaryMetricsTest {
-    private static File TEST_DATA_DIR = new File("testdata/net/sf/picard/sam");
-    
-    @Test
-    public void test() throws IOException {
-        File input = new File(TEST_DATA_DIR, "summary_alignment_stats_test.sam");
-        File reference = new File(TEST_DATA_DIR, "summary_alignment_stats_test.fasta");
-        File outfile   = File.createTempFile("alignmentMetrics", ".txt");
-        outfile.deleteOnExit();
-        int result = new CollectAlignmentSummaryMetrics().instanceMain(new String[] {
-                "INPUT="  + input.getAbsolutePath(),
-                "OUTPUT=" + outfile.getAbsolutePath(),
-                "REFERENCE_SEQUENCE=" + reference.getAbsolutePath(),
-        });
-        Assert.assertEquals(result, 0);
-        
-        MetricsFile<AlignmentSummaryMetrics, Comparable<?>> output = new MetricsFile<AlignmentSummaryMetrics, Comparable<?>>();
-        output.read(new FileReader(outfile));
-        
-        for (AlignmentSummaryMetrics metrics : output.getMetrics()) {
-            Assert.assertEquals(metrics.MEAN_READ_LENGTH, 101.0);
-            switch (metrics.CATEGORY) {
-            case FIRST_OF_PAIR:
-                Assert.assertEquals(metrics.TOTAL_READS, 9);
-                Assert.assertEquals(metrics.PF_READS, 7);
-                Assert.assertEquals(metrics.PF_NOISE_READS, 1);
-                Assert.assertEquals(metrics.PF_HQ_ALIGNED_READS, 3);
-                Assert.assertEquals(metrics.PF_HQ_ALIGNED_Q20_BASES, 59);
-                Assert.assertEquals(metrics.PF_HQ_MEDIAN_MISMATCHES, 19.0);
-                Assert.assertEquals(metrics.PF_ALIGNED_BASES, 303);
-                Assert.assertEquals(metrics.PF_MISMATCH_RATE, /*58D/303D*/0.191419);
-                Assert.assertEquals(metrics.BAD_CYCLES, 19);
-                break;
-            case SECOND_OF_PAIR:
-                Assert.assertEquals(metrics.TOTAL_READS, 9);
-                Assert.assertEquals(metrics.PF_READS, 9);
-                Assert.assertEquals(metrics.PF_NOISE_READS, 1);
-                Assert.assertEquals(metrics.PF_HQ_ALIGNED_READS, 7);
-                Assert.assertEquals(metrics.PF_HQ_ALIGNED_Q20_BASES, 239);
-                Assert.assertEquals(metrics.PF_HQ_MEDIAN_MISMATCHES, 3.0);
-                Assert.assertEquals(metrics.PF_ALIGNED_BASES, 707);
-                Assert.assertEquals(metrics.PF_MISMATCH_RATE, /*19D/707D*/0.026874);
-                Assert.assertEquals(metrics.BAD_CYCLES, 3);
-                break;
-            case PAIR:
-                Assert.assertEquals(metrics.TOTAL_READS, 18);
-                Assert.assertEquals(metrics.PF_READS, 16);
-                Assert.assertEquals(metrics.PF_NOISE_READS, 2);
-                Assert.assertEquals(metrics.PF_HQ_ALIGNED_READS, 10);
-                Assert.assertEquals(metrics.PF_HQ_ALIGNED_Q20_BASES, 298);
-                Assert.assertEquals(metrics.PF_HQ_MEDIAN_MISMATCHES, 3.0);
-                Assert.assertEquals(metrics.PF_ALIGNED_BASES, 1010);
-                Assert.assertEquals(metrics.PF_MISMATCH_RATE, /*77D/1010D*/0.076238);
-                Assert.assertEquals(metrics.BAD_CYCLES, 22);
-                break;
-            case UNPAIRED:
-            default:
-                Assert.fail("Data does not contain this category: " + metrics.CATEGORY);
-            }
-        }
-    }
-
-    @Test
-    public void testBisulfite() throws IOException {
-        File input = new File(TEST_DATA_DIR, "summary_alignment_bisulfite_test.sam");
-        File reference = new File(TEST_DATA_DIR, "summary_alignment_stats_test.fasta");
-        File outfile   = File.createTempFile("alignmentMetrics", ".txt");
-        outfile.deleteOnExit();
-        int result = new CollectAlignmentSummaryMetrics().instanceMain(new String[] {
-                "INPUT="  + input.getAbsolutePath(),
-                "OUTPUT=" + outfile.getAbsolutePath(),
-                "REFERENCE_SEQUENCE=" + reference.getAbsolutePath(),
-                "IS_BISULFITE_SEQUENCED=true"
-        });
-        Assert.assertEquals(result, 0);
-
-        NumberFormat format =  NumberFormat.getInstance();
-        format.setMaximumFractionDigits(4);
-
-        MetricsFile<AlignmentSummaryMetrics, Comparable<?>> output = new MetricsFile<AlignmentSummaryMetrics, Comparable<?>>();
-        output.read(new FileReader(outfile));
-
-        for (AlignmentSummaryMetrics metrics : output.getMetrics()) {
-            Assert.assertEquals(metrics.MEAN_READ_LENGTH, 101.0);
-            switch (metrics.CATEGORY) {
-            case FIRST_OF_PAIR:
-                // 19 no-calls, one potentially methylated base, one mismatch at a potentially methylated base
-                Assert.assertEquals(metrics.TOTAL_READS, 1);
-                Assert.assertEquals(metrics.PF_READS, 1);
-                Assert.assertEquals(metrics.PF_HQ_ALIGNED_BASES, 101);
-                Assert.assertEquals(metrics.PF_HQ_MEDIAN_MISMATCHES, 20.0);
-                Assert.assertEquals(metrics.PF_ALIGNED_BASES, 101);
-                Assert.assertEquals(metrics.PF_MISMATCH_RATE, 20D/100D);
-                Assert.assertEquals(metrics.BAD_CYCLES, 20);
-                Assert.assertEquals(format.format(metrics.PF_HQ_ERROR_RATE), format.format(20/(double)100));
-                break;
-            case SECOND_OF_PAIR:
-                // Three no-calls, two potentially methylated bases
-                Assert.assertEquals(metrics.TOTAL_READS, 1);
-                Assert.assertEquals(metrics.PF_READS, 1);
-                Assert.assertEquals(metrics.PF_HQ_ALIGNED_BASES, 101);
-                Assert.assertEquals(metrics.PF_HQ_MEDIAN_MISMATCHES, 3.0);
-                Assert.assertEquals(metrics.PF_ALIGNED_BASES, 101);
-                Assert.assertEquals(metrics.PF_MISMATCH_RATE, /*3D/99D*/0.030303);
-                Assert.assertEquals(metrics.BAD_CYCLES, 3);
-                Assert.assertEquals(format.format(metrics.PF_HQ_ERROR_RATE), format.format(3/(double)99));
-                break;
-            case PAIR:
-                Assert.assertEquals(metrics.TOTAL_READS, 2);
-                Assert.assertEquals(metrics.PF_READS, 2);
-                Assert.assertEquals(metrics.PF_HQ_ALIGNED_BASES, 202);
-                Assert.assertEquals(metrics.PF_HQ_MEDIAN_MISMATCHES, 11.5);
-                Assert.assertEquals(metrics.PF_ALIGNED_BASES, 202);
-                Assert.assertEquals(metrics.PF_MISMATCH_RATE, /*23D/199D*/0.115578);
-                Assert.assertEquals(metrics.BAD_CYCLES, 23);
-                Assert.assertEquals(format.format(metrics.PF_HQ_ERROR_RATE), format.format(23/(double)199));
-                break;
-            case UNPAIRED:
-            default:
-                Assert.fail("Data does not contain this category: " + metrics.CATEGORY);
-            }
-        }
-    }
-
-
-    @Test
-    public void testNoReference() throws IOException {
-        File input = new File(TEST_DATA_DIR, "summary_alignment_stats_test.sam");
-        File outfile   = File.createTempFile("alignmentMetrics", ".txt");
-        outfile.deleteOnExit();
-        int result = new CollectAlignmentSummaryMetrics().instanceMain(new String[] {
-                "INPUT="  + input.getAbsolutePath(),
-                "OUTPUT=" + outfile.getAbsolutePath(),
-        });
-        Assert.assertEquals(result, 0);
-
-        MetricsFile<AlignmentSummaryMetrics, Comparable<?>> output = new MetricsFile<AlignmentSummaryMetrics, Comparable<?>>();
-        output.read(new FileReader(outfile));
-
-        for (AlignmentSummaryMetrics metrics : output.getMetrics()) {
-            Assert.assertEquals(metrics.MEAN_READ_LENGTH, 101.0);
-            switch (metrics.CATEGORY) {
-            case FIRST_OF_PAIR:
-                Assert.assertEquals(metrics.TOTAL_READS, 9);
-                Assert.assertEquals(metrics.PF_READS, 7);
-                Assert.assertEquals(metrics.PF_NOISE_READS, 1);
-                Assert.assertEquals(metrics.PF_HQ_ALIGNED_READS, 0);
-                Assert.assertEquals(metrics.PF_HQ_ALIGNED_Q20_BASES, 0);
-                Assert.assertEquals(metrics.PF_HQ_MEDIAN_MISMATCHES, 0.0);
-                Assert.assertEquals(metrics.PF_ALIGNED_BASES, 0);
-                Assert.assertEquals(metrics.PF_MISMATCH_RATE, 0.0);
-                Assert.assertEquals(metrics.BAD_CYCLES, 19);
-                break;
-            case SECOND_OF_PAIR:
-                Assert.assertEquals(metrics.TOTAL_READS, 9);
-                Assert.assertEquals(metrics.PF_READS, 9);
-                Assert.assertEquals(metrics.PF_NOISE_READS, 1);
-                Assert.assertEquals(metrics.PF_HQ_ALIGNED_READS, 0);
-                Assert.assertEquals(metrics.PF_HQ_ALIGNED_Q20_BASES, 0);
-                Assert.assertEquals(metrics.PF_HQ_MEDIAN_MISMATCHES, 0.0);
-                Assert.assertEquals(metrics.PF_ALIGNED_BASES, 0);
-                Assert.assertEquals(metrics.PF_MISMATCH_RATE, 0.0);
-                Assert.assertEquals(metrics.BAD_CYCLES, 3);
-                break;
-            case PAIR:
-                Assert.assertEquals(metrics.TOTAL_READS, 18);
-                Assert.assertEquals(metrics.PF_READS, 16);
-                Assert.assertEquals(metrics.PF_NOISE_READS, 2);
-                Assert.assertEquals(metrics.PF_HQ_ALIGNED_READS, 0);
-                Assert.assertEquals(metrics.PF_HQ_ALIGNED_Q20_BASES, 0);
-                Assert.assertEquals(metrics.PF_HQ_MEDIAN_MISMATCHES, 0.0);
-                Assert.assertEquals(metrics.PF_ALIGNED_BASES, 0);
-                Assert.assertEquals(metrics.PF_MISMATCH_RATE, 0.0);
-                Assert.assertEquals(metrics.BAD_CYCLES, 22);
-                break;
-            case UNPAIRED:
-            default:
-                Assert.fail("Data does not contain this category: " + metrics.CATEGORY);
-            }
-        }
-    }
-
-    @Test
-    public void testZeroLengthReads() throws IOException {
-        File input = new File(TEST_DATA_DIR, "summary_alignment_stats_test2.sam");
-        File outfile   = File.createTempFile("alignmentMetrics", ".txt");
-        outfile.deleteOnExit();
-        int result = new CollectAlignmentSummaryMetrics().instanceMain(new String[] {
-                "INPUT="  + input.getAbsolutePath(),
-                "OUTPUT=" + outfile.getAbsolutePath(),
-        });
-        Assert.assertEquals(result, 0);
-
-        MetricsFile<AlignmentSummaryMetrics, Comparable<?>> output = new MetricsFile<AlignmentSummaryMetrics, Comparable<?>>();
-        output.read(new FileReader(outfile));
-        for (AlignmentSummaryMetrics metrics : output.getMetrics()) {
-            // test that it doesn't blow up
-        }
-    }
-
-    @Test
-    public void testMultipleLevelsOfMetrics() throws IOException {
-        File input = new File(TEST_DATA_DIR, "summary_alignment_stats_test_multiple.sam");
-        File outfile   = File.createTempFile("alignmentMetrics", ".txt");
-        outfile.deleteOnExit();
-        int result = new CollectAlignmentSummaryMetrics().instanceMain(new String[] {
-                "INPUT="  + input.getAbsolutePath(),
-                "OUTPUT=" + outfile.getAbsolutePath(),
-                "METRIC_ACCUMULATION_LEVEL=ALL_READS",
-                "METRIC_ACCUMULATION_LEVEL=SAMPLE",
-                "METRIC_ACCUMULATION_LEVEL=LIBRARY",
-                "METRIC_ACCUMULATION_LEVEL=READ_GROUP",
-        });
-        Assert.assertEquals(result, 0);
-
-        MetricsFile<AlignmentSummaryMetrics, Comparable<?>> output = new MetricsFile<AlignmentSummaryMetrics, Comparable<?>>();
-        output.read(new FileReader(outfile));
-
-        for (AlignmentSummaryMetrics metrics : output.getMetrics()) {
-            Assert.assertEquals(metrics.MEAN_READ_LENGTH, 101.0);
-            if (metrics.SAMPLE == null) {
-                switch (metrics.CATEGORY) {
-                case FIRST_OF_PAIR:
-                    Assert.assertEquals(metrics.TOTAL_READS, 9);
-                    Assert.assertEquals(metrics.PF_READS, 7);
-                    Assert.assertEquals(metrics.PF_NOISE_READS, 1);
-                    Assert.assertEquals(metrics.PF_HQ_ALIGNED_READS, 0);
-                    Assert.assertEquals(metrics.PF_HQ_ALIGNED_Q20_BASES, 0);
-                    Assert.assertEquals(metrics.PF_HQ_MEDIAN_MISMATCHES, 0.0);
-                    Assert.assertEquals(metrics.PF_ALIGNED_BASES, 0);
-                    Assert.assertEquals(metrics.PF_MISMATCH_RATE, 0.0);
-                    Assert.assertEquals(metrics.BAD_CYCLES, 19);
-                    break;
-                case SECOND_OF_PAIR:
-                    Assert.assertEquals(metrics.TOTAL_READS, 9);
-                    Assert.assertEquals(metrics.PF_READS, 9);
-                    Assert.assertEquals(metrics.PF_NOISE_READS, 1);
-                    Assert.assertEquals(metrics.PF_HQ_ALIGNED_READS, 0);
-                    Assert.assertEquals(metrics.PF_HQ_ALIGNED_Q20_BASES, 0);
-                    Assert.assertEquals(metrics.PF_HQ_MEDIAN_MISMATCHES, 0.0);
-                    Assert.assertEquals(metrics.PF_ALIGNED_BASES, 0);
-                    Assert.assertEquals(metrics.PF_MISMATCH_RATE, 0.0);
-                    Assert.assertEquals(metrics.BAD_CYCLES, 3);
-                    break;
-                case PAIR:
-                    Assert.assertEquals(metrics.TOTAL_READS, 18);
-                    Assert.assertEquals(metrics.PF_READS, 16);
-                    Assert.assertEquals(metrics.PF_NOISE_READS, 2);
-                    Assert.assertEquals(metrics.PF_HQ_ALIGNED_READS, 0);
-                    Assert.assertEquals(metrics.PF_HQ_ALIGNED_Q20_BASES, 0);
-                    Assert.assertEquals(metrics.PF_HQ_MEDIAN_MISMATCHES, 0.0);
-                    Assert.assertEquals(metrics.PF_ALIGNED_BASES, 0);
-                    Assert.assertEquals(metrics.PF_MISMATCH_RATE, 0.0);
-                    Assert.assertEquals(metrics.BAD_CYCLES, 22);
-                    break;
-                case UNPAIRED:
-                default:
-                    Assert.fail("Data does not contain this category: " + metrics.CATEGORY);
-                }
-            }
-            else if (metrics.SAMPLE.equals("Ma")) {
-                // There's only one library and one read group for this sample so the metrics for
-                // every level should be identical
-                switch (metrics.CATEGORY) {
-                    case FIRST_OF_PAIR:
-                        Assert.assertEquals(metrics.TOTAL_READS, 5);
-                        Assert.assertEquals(metrics.PF_READS, 3);
-                        Assert.assertEquals(metrics.PF_NOISE_READS, 1);
-                        Assert.assertEquals(metrics.PF_HQ_ALIGNED_READS, 0);
-                        Assert.assertEquals(metrics.PF_HQ_ALIGNED_Q20_BASES, 0);
-                        Assert.assertEquals(metrics.PF_HQ_MEDIAN_MISMATCHES, 0.0);
-                        Assert.assertEquals(metrics.PF_ALIGNED_BASES, 0);
-                        Assert.assertEquals(metrics.PF_MISMATCH_RATE, 0.0);
-                        Assert.assertEquals(metrics.BAD_CYCLES, 24);
-                        break;
-                    case SECOND_OF_PAIR:
-                        Assert.assertEquals(metrics.TOTAL_READS, 5);
-                        Assert.assertEquals(metrics.PF_READS, 5);
-                        Assert.assertEquals(metrics.PF_NOISE_READS, 0);
-                        Assert.assertEquals(metrics.PF_HQ_ALIGNED_READS, 0);
-                        Assert.assertEquals(metrics.PF_HQ_ALIGNED_Q20_BASES, 0);
-                        Assert.assertEquals(metrics.PF_HQ_MEDIAN_MISMATCHES, 0.0);
-                        Assert.assertEquals(metrics.PF_ALIGNED_BASES, 0);
-                        Assert.assertEquals(metrics.PF_MISMATCH_RATE, 0.0);
-                        Assert.assertEquals(metrics.BAD_CYCLES, 3);
-                        break;
-                    case PAIR:
-                        Assert.assertEquals(metrics.TOTAL_READS, 10);
-                        Assert.assertEquals(metrics.PF_READS, 8);
-                        Assert.assertEquals(metrics.PF_NOISE_READS, 1);
-                        Assert.assertEquals(metrics.PF_HQ_ALIGNED_READS, 0);
-                        Assert.assertEquals(metrics.PF_HQ_ALIGNED_Q20_BASES, 0);
-                        Assert.assertEquals(metrics.PF_HQ_MEDIAN_MISMATCHES, 0.0);
-                        Assert.assertEquals(metrics.PF_ALIGNED_BASES, 0);
-                        Assert.assertEquals(metrics.PF_MISMATCH_RATE, 0.0);
-                        Assert.assertEquals(metrics.BAD_CYCLES, 27);
-                        break;
-                    case UNPAIRED:
-                    default:
-                        Assert.fail("Data does not contain this category: " + metrics.CATEGORY);
-                }
-            }
-            else if (metrics.SAMPLE.equals("Pa")) {
-                // Two libraries and three read groups for this sample
-                if (metrics.LIBRARY == null) {
-                    switch (metrics.CATEGORY) {
-                        case FIRST_OF_PAIR:
-                            Assert.assertEquals(metrics.TOTAL_READS, 4);
-                            Assert.assertEquals(metrics.PF_READS, 4);
-                            Assert.assertEquals(metrics.PF_NOISE_READS, 0);
-                            Assert.assertEquals(metrics.PF_HQ_ALIGNED_READS, 0);
-                            Assert.assertEquals(metrics.PF_HQ_ALIGNED_Q20_BASES, 0);
-                            Assert.assertEquals(metrics.PF_HQ_MEDIAN_MISMATCHES, 0.0);
-                            Assert.assertEquals(metrics.PF_ALIGNED_BASES, 0);
-                            Assert.assertEquals(metrics.PF_MISMATCH_RATE, 0.0);
-                            Assert.assertEquals(metrics.BAD_CYCLES, 19);
-                            break;
-                        case SECOND_OF_PAIR:
-                            Assert.assertEquals(metrics.TOTAL_READS, 4);
-                            Assert.assertEquals(metrics.PF_READS, 4);
-                            Assert.assertEquals(metrics.PF_NOISE_READS, 1);
-                            Assert.assertEquals(metrics.PF_HQ_ALIGNED_READS, 0);
-                            Assert.assertEquals(metrics.PF_HQ_ALIGNED_Q20_BASES, 0);
-                            Assert.assertEquals(metrics.PF_HQ_MEDIAN_MISMATCHES, 0.0);
-                            Assert.assertEquals(metrics.PF_ALIGNED_BASES, 0);
-                            Assert.assertEquals(metrics.PF_MISMATCH_RATE, 0.0);
-                            Assert.assertEquals(metrics.BAD_CYCLES, 3);
-                            break;
-                        case PAIR:
-                            Assert.assertEquals(metrics.TOTAL_READS, 8);
-                            Assert.assertEquals(metrics.PF_READS, 8);
-                            Assert.assertEquals(metrics.PF_NOISE_READS, 1);
-                            Assert.assertEquals(metrics.PF_HQ_ALIGNED_READS, 0);
-                            Assert.assertEquals(metrics.PF_HQ_ALIGNED_Q20_BASES, 0);
-                            Assert.assertEquals(metrics.PF_HQ_MEDIAN_MISMATCHES, 0.0);
-                            Assert.assertEquals(metrics.PF_ALIGNED_BASES, 0);
-                            Assert.assertEquals(metrics.PF_MISMATCH_RATE, 0.0);
-                            Assert.assertEquals(metrics.BAD_CYCLES, 22);
-                            break;
-                        case UNPAIRED:
-                        default:
-                            Assert.fail("Data does not contain this category: " + metrics.CATEGORY);
-                    }
-                }
-                else if (metrics.LIBRARY.equals("lib1")) {
-                    // Only one read group in this library so library and RG metrics should be identical
-                    switch (metrics.CATEGORY) {
-                        case FIRST_OF_PAIR:
-                            Assert.assertEquals(metrics.TOTAL_READS, 2);
-                            Assert.assertEquals(metrics.PF_READS, 2);
-                            Assert.assertEquals(metrics.PF_NOISE_READS, 0);
-                            Assert.assertEquals(metrics.BAD_CYCLES, 19);
-                            break;
-                        case SECOND_OF_PAIR:
-                            Assert.assertEquals(metrics.TOTAL_READS, 2);
-                            Assert.assertEquals(metrics.PF_READS, 2);
-                            Assert.assertEquals(metrics.PF_NOISE_READS, 1);
-                            Assert.assertEquals(metrics.BAD_CYCLES, 3);
-                            break;
-                        case PAIR:
-                            Assert.assertEquals(metrics.TOTAL_READS, 4);
-                            Assert.assertEquals(metrics.PF_READS, 4);
-                            Assert.assertEquals(metrics.PF_NOISE_READS, 1);
-                            Assert.assertEquals(metrics.BAD_CYCLES, 22);
-                            break;
-                        case UNPAIRED:
-                        default:
-                            Assert.fail("Data does not contain this category: " + metrics.CATEGORY);
-                    }
-
-                }
-                else if (metrics.LIBRARY.equals("lib2")) {
-                    if (metrics.READ_GROUP == null) {
-                        switch (metrics.CATEGORY) {
-                            case FIRST_OF_PAIR:
-                                Assert.assertEquals(metrics.TOTAL_READS, 2);
-                                Assert.assertEquals(metrics.PF_READS, 2);
-                                Assert.assertEquals(metrics.PF_NOISE_READS, 0);
-                                Assert.assertEquals(metrics.BAD_CYCLES, 19);
-                                break;
-                            case SECOND_OF_PAIR:
-                                Assert.assertEquals(metrics.TOTAL_READS, 2);
-                                Assert.assertEquals(metrics.PF_READS, 2);
-                                Assert.assertEquals(metrics.PF_NOISE_READS, 0);
-                                Assert.assertEquals(metrics.BAD_CYCLES, 3);
-                                break;
-                            case PAIR:
-                                Assert.assertEquals(metrics.TOTAL_READS, 4);
-                                Assert.assertEquals(metrics.PF_READS, 4);
-                                Assert.assertEquals(metrics.PF_NOISE_READS, 0);
-                                Assert.assertEquals(metrics.BAD_CYCLES, 22);
-                                break;
-                            case UNPAIRED:
-                            default:
-                                Assert.fail("Data does not contain this category: " + metrics.CATEGORY);
-                        }
-                    }
-                    else if (metrics.READ_GROUP.equals("i")) {
-                        switch (metrics.CATEGORY) {
-                            case FIRST_OF_PAIR:
-                                Assert.assertEquals(metrics.TOTAL_READS, 1);
-                                Assert.assertEquals(metrics.PF_READS, 1);
-                                Assert.assertEquals(metrics.PF_NOISE_READS, 0);
-                                Assert.assertEquals(metrics.BAD_CYCLES, 19);
-                                break;
-                            case SECOND_OF_PAIR:
-                                Assert.assertEquals(metrics.TOTAL_READS, 1);
-                                Assert.assertEquals(metrics.PF_READS, 1);
-                                Assert.assertEquals(metrics.PF_NOISE_READS, 0);
-                                Assert.assertEquals(metrics.BAD_CYCLES, 3);
-                                break;
-                            case PAIR:
-                                Assert.assertEquals(metrics.TOTAL_READS, 2);
-                                Assert.assertEquals(metrics.PF_READS, 2);
-                                Assert.assertEquals(metrics.PF_NOISE_READS, 0);
-                                Assert.assertEquals(metrics.BAD_CYCLES, 22);
-                                break;
-                            case UNPAIRED:
-                            default:
-                                Assert.fail("Data does not contain this category: " + metrics.CATEGORY);
-                        }
-                    }
-                    else if (metrics.READ_GROUP.equals("i2")) {
-                        switch (metrics.CATEGORY) {
-                            case FIRST_OF_PAIR:
-                                Assert.assertEquals(metrics.TOTAL_READS, 1);
-                                Assert.assertEquals(metrics.PF_READS, 1);
-                                Assert.assertEquals(metrics.PF_NOISE_READS, 0);
-                                Assert.assertEquals(metrics.BAD_CYCLES, 27);
-                                break;
-                            case SECOND_OF_PAIR:
-                                Assert.assertEquals(metrics.TOTAL_READS, 1);
-                                Assert.assertEquals(metrics.PF_READS, 1);
-                                Assert.assertEquals(metrics.PF_NOISE_READS, 0);
-                                Assert.assertEquals(metrics.BAD_CYCLES, 3);
-                                break;
-                            case PAIR:
-                                Assert.assertEquals(metrics.TOTAL_READS, 2);
-                                Assert.assertEquals(metrics.PF_READS, 2);
-                                Assert.assertEquals(metrics.PF_NOISE_READS, 0);
-                                Assert.assertEquals(metrics.BAD_CYCLES, 30);
-                                break;
-                            case UNPAIRED:
-                            default:
-                                Assert.fail("Data does not contain this category: " + metrics.CATEGORY);
-                        }
-                    }
-                    else {
-                        Assert.fail("Data does not contain this read group: " + metrics.READ_GROUP);
-                    }
-
-                }
-                else {
-                    Assert.fail("Data does not contain this library: " + metrics.LIBRARY);
-                }
-            }
-            else {
-                Assert.fail("Data does not contain this sample: " + metrics.SAMPLE);
-            }
-        }
-
-    }
-
-}
diff --git a/src/tests/java/net/sf/picard/analysis/CollectInsertSizeMetricsTest.java b/src/tests/java/net/sf/picard/analysis/CollectInsertSizeMetricsTest.java
deleted file mode 100755
index 6336f48..0000000
--- a/src/tests/java/net/sf/picard/analysis/CollectInsertSizeMetricsTest.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.analysis;
-
-import net.sf.picard.metrics.MetricsFile;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-
-/**
- * Tests multi-level CollectInsertSizeMetrics
- */
-public class CollectInsertSizeMetricsTest {
-
-    private static File TEST_DATA_DIR = new File("testdata/net/sf/picard/sam/");
-
-    @Test
-    public void test() throws IOException {
-        final File input = new File(TEST_DATA_DIR, "insert_size_metrics_test.sam");
-        final File outfile   = File.createTempFile("test", ".insert_size_metrics");
-        final File pdf   = File.createTempFile("test", ".pdf");
-        outfile.deleteOnExit();
-        pdf.deleteOnExit();
-        final int result = new CollectInsertSizeMetrics().instanceMain(new String[] {
-                "INPUT="  + input.getAbsolutePath(),
-                "OUTPUT=" + outfile.getAbsolutePath(),
-                "HISTOGRAM_FILE=" + pdf.getAbsolutePath()
-        });
-        Assert.assertEquals(result, 0);
-
-        final MetricsFile<InsertSizeMetrics, Comparable<?>> output = new MetricsFile<InsertSizeMetrics, Comparable<?>>();
-        output.read(new FileReader(outfile));
-
-        for (final InsertSizeMetrics metrics : output.getMetrics()) {
-            Assert.assertEquals(metrics.PAIR_ORIENTATION.name(), "FR");
-            if (metrics.LIBRARY==null) {  // SAMPLE or ALL_READS level
-                Assert.assertEquals((int)metrics.MEDIAN_INSERT_SIZE, 41);
-                Assert.assertEquals(metrics.MIN_INSERT_SIZE, 36);
-                Assert.assertEquals(metrics.MAX_INSERT_SIZE, 45);
-                Assert.assertEquals(metrics.READ_PAIRS, 13);
-                Assert.assertEquals(metrics.WIDTH_OF_10_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_20_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_30_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_40_PERCENT, 7);
-                Assert.assertEquals(metrics.WIDTH_OF_50_PERCENT, 7);
-                Assert.assertEquals(metrics.WIDTH_OF_60_PERCENT, 7);
-                Assert.assertEquals(metrics.WIDTH_OF_70_PERCENT, 9);
-                Assert.assertEquals(metrics.WIDTH_OF_80_PERCENT, 11);
-                Assert.assertEquals(metrics.WIDTH_OF_90_PERCENT, 11);
-                Assert.assertEquals(metrics.WIDTH_OF_99_PERCENT, 11);
-
-            }
-            else if (metrics.LIBRARY.equals("Solexa-41753")) { // one LIBRARY and one READ_GROUP
-                Assert.assertEquals((int)metrics.MEDIAN_INSERT_SIZE, 44);
-                Assert.assertEquals(metrics.MIN_INSERT_SIZE, 44);
-                Assert.assertEquals(metrics.MAX_INSERT_SIZE, 44);
-                Assert.assertEquals(metrics.READ_PAIRS, 2);
-                Assert.assertEquals(metrics.WIDTH_OF_10_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_20_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_30_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_40_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_50_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_60_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_70_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_80_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_90_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_99_PERCENT, 1);
-
-            }
-            else if (metrics.LIBRARY.equals("Solexa-41748") && metrics.READ_GROUP == null) {
-                Assert.assertEquals((int)metrics.MEDIAN_INSERT_SIZE, 40);
-                Assert.assertEquals(metrics.MIN_INSERT_SIZE, 36);
-                Assert.assertEquals(metrics.MAX_INSERT_SIZE, 45);
-                Assert.assertEquals(metrics.READ_PAIRS, 9);
-                Assert.assertEquals(metrics.WIDTH_OF_10_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_20_PERCENT, 3);
-                Assert.assertEquals(metrics.WIDTH_OF_30_PERCENT, 3);
-                Assert.assertEquals(metrics.WIDTH_OF_40_PERCENT, 3);
-                Assert.assertEquals(metrics.WIDTH_OF_50_PERCENT, 5);
-                Assert.assertEquals(metrics.WIDTH_OF_60_PERCENT, 5);
-                Assert.assertEquals(metrics.WIDTH_OF_70_PERCENT, 9);
-                Assert.assertEquals(metrics.WIDTH_OF_80_PERCENT, 9);
-                Assert.assertEquals(metrics.WIDTH_OF_90_PERCENT, 11);
-                Assert.assertEquals(metrics.WIDTH_OF_99_PERCENT, 11);
-
-            }
-            else if (metrics.LIBRARY.equals("Solexa-41734") && metrics.READ_GROUP == null) {
-                Assert.assertEquals((int)metrics.MEDIAN_INSERT_SIZE, 26);
-                Assert.assertEquals(metrics.MIN_INSERT_SIZE, 36);
-                Assert.assertEquals(metrics.MAX_INSERT_SIZE, 41);
-                Assert.assertEquals(metrics.READ_PAIRS, 9);
-                Assert.assertEquals(metrics.WIDTH_OF_10_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_20_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_30_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_40_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_50_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_60_PERCENT, 11);
-                Assert.assertEquals(metrics.WIDTH_OF_70_PERCENT, 11);
-                Assert.assertEquals(metrics.WIDTH_OF_80_PERCENT, 11);
-                Assert.assertEquals(metrics.WIDTH_OF_90_PERCENT, 11);
-                Assert.assertEquals(metrics.WIDTH_OF_99_PERCENT, 11);
-            }
-            else if (metrics.READ_GROUP.equals("62A79AAXX100907.7")) {
-                Assert.assertEquals((int)metrics.MEDIAN_INSERT_SIZE, 36);
-                Assert.assertEquals(metrics.MIN_INSERT_SIZE, 36);
-                Assert.assertEquals(metrics.MAX_INSERT_SIZE, 41);
-                Assert.assertEquals(metrics.READ_PAIRS, 4);
-                Assert.assertEquals(metrics.WIDTH_OF_10_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_20_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_30_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_40_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_50_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_60_PERCENT, 5);
-                Assert.assertEquals(metrics.WIDTH_OF_70_PERCENT, 5);
-                Assert.assertEquals(metrics.WIDTH_OF_80_PERCENT, 11);
-                Assert.assertEquals(metrics.WIDTH_OF_90_PERCENT, 11);
-                Assert.assertEquals(metrics.WIDTH_OF_99_PERCENT, 11);
-            }
-            else if (metrics.READ_GROUP.equals("62A79AAXX100907.6")) {
-                Assert.assertEquals((int)metrics.MEDIAN_INSERT_SIZE, 41);
-                Assert.assertEquals(metrics.MIN_INSERT_SIZE, 38);
-                Assert.assertEquals(metrics.MAX_INSERT_SIZE, 45);
-                Assert.assertEquals(metrics.READ_PAIRS, 5);
-                Assert.assertEquals(metrics.WIDTH_OF_10_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_20_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_30_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_40_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_50_PERCENT, 3);
-                Assert.assertEquals(metrics.WIDTH_OF_60_PERCENT, 3);
-                Assert.assertEquals(metrics.WIDTH_OF_70_PERCENT, 7);
-                Assert.assertEquals(metrics.WIDTH_OF_80_PERCENT, 7);
-                Assert.assertEquals(metrics.WIDTH_OF_90_PERCENT, 9);
-                Assert.assertEquals(metrics.WIDTH_OF_99_PERCENT, 9);
-            }
-            else if (metrics.READ_GROUP.equals("62A79AAXX100907.5")) {
-                Assert.assertEquals((int)metrics.MEDIAN_INSERT_SIZE, 41);
-                Assert.assertEquals(metrics.MIN_INSERT_SIZE, 41);
-                Assert.assertEquals(metrics.MAX_INSERT_SIZE, 41);
-                Assert.assertEquals(metrics.READ_PAIRS, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_10_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_20_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_30_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_40_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_50_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_60_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_70_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_80_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_90_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_99_PERCENT, 1);
-            }
-            else if (metrics.READ_GROUP.equals("62A79AAXX100907.3")) {
-                Assert.assertEquals((int)metrics.MEDIAN_INSERT_SIZE, 36);
-                Assert.assertEquals(metrics.MIN_INSERT_SIZE, 36);
-                Assert.assertEquals(metrics.MAX_INSERT_SIZE, 36);
-                Assert.assertEquals(metrics.READ_PAIRS, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_10_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_20_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_30_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_40_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_50_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_60_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_70_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_80_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_90_PERCENT, 1);
-                Assert.assertEquals(metrics.WIDTH_OF_99_PERCENT, 1);
-            }
-            else {
-                Assert.fail("Unexpected metric: " + metrics);
-            }
-        }
-    }
-}
diff --git a/src/tests/java/net/sf/picard/analysis/CollectRnaSeqMetricsTest.java b/src/tests/java/net/sf/picard/analysis/CollectRnaSeqMetricsTest.java
deleted file mode 100644
index da716c6..0000000
--- a/src/tests/java/net/sf/picard/analysis/CollectRnaSeqMetricsTest.java
+++ /dev/null
@@ -1,232 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.analysis;
-
-import net.sf.picard.annotation.RefFlatReader.RefFlatColumns;
-import net.sf.picard.metrics.MetricsFile;
-import net.sf.samtools.SAMRecordSetBuilder;
-import net.sf.picard.util.Interval;
-import net.sf.picard.util.IntervalList;
-import net.sf.samtools.*;
-import net.sf.samtools.util.StringUtil;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.io.FileReader;
-import java.io.PrintStream;
-
-public class CollectRnaSeqMetricsTest {
-    @Test
-    public void basic() throws Exception {
-        final String sequence = "chr1";
-        final String ignoredSequence = "chrM";
-
-        // Create some alignments that hit the ribosomal sequence, various parts of the gene, and intergenic.
-        final SAMRecordSetBuilder builder = new SAMRecordSetBuilder(true, SAMFileHeader.SortOrder.coordinate);
-        // Set seed so that strandedness is consistent among runs.
-        builder.setRandomSeed(0);
-        final int sequenceIndex = builder.getHeader().getSequenceIndex(sequence);
-        builder.addPair("pair1", sequenceIndex, 45, 475);
-        builder.addPair("pair2", sequenceIndex, 90, 225);
-        builder.addPair("pair3", sequenceIndex, 120, 600);
-        builder.addFrag("frag1", sequenceIndex, 150, true);
-        builder.addFrag("frag2", sequenceIndex, 450, true);
-        builder.addFrag("frag3", sequenceIndex, 225, false);
-        builder.addPair("rrnaPair", sequenceIndex, 400, 500);
-
-        builder.addFrag("ignoredFrag", builder.getHeader().getSequenceIndex(ignoredSequence), 1, false);
-
-        final File samFile = File.createTempFile("tmp.collectRnaSeqMetrics.", ".sam");
-        final SAMFileWriter samWriter = new SAMFileWriterFactory().makeSAMWriter(builder.getHeader(), false, samFile);
-        for (final SAMRecord rec: builder.getRecords()) samWriter.addAlignment(rec);
-        samWriter.close();
-
-        // Create an interval list with one ribosomal interval.
-        final Interval rRnaInterval = new Interval(sequence, 300, 520, true, "rRNA");
-        final IntervalList rRnaIntervalList = new IntervalList(builder.getHeader());
-        rRnaIntervalList.add(rRnaInterval);
-        final File rRnaIntervalsFile = File.createTempFile("tmp.rRna.", ".interval_list");
-        rRnaIntervalsFile.deleteOnExit();
-        rRnaIntervalList.write(rRnaIntervalsFile);
-
-        // Generate the metrics.
-        final File metricsFile = File.createTempFile("tmp.", ".rna_metrics");
-
-        final int ret = new CollectRnaSeqMetrics().instanceMain(new String[]{
-                "INPUT=" +               samFile.getAbsolutePath(),
-                "OUTPUT=" +              metricsFile.getAbsolutePath(),
-                "REF_FLAT=" +            getRefFlatFile(sequence).getAbsolutePath(),
-                "RIBOSOMAL_INTERVALS=" + rRnaIntervalsFile.getAbsolutePath(),
-                "STRAND_SPECIFICITY=SECOND_READ_TRANSCRIPTION_STRAND",
-                "IGNORE_SEQUENCE=" +ignoredSequence
-        });
-        Assert.assertEquals(ret, 0);
-
-        final MetricsFile<RnaSeqMetrics, Comparable<?>> output = new MetricsFile<RnaSeqMetrics, Comparable<?>>();
-        output.read(new FileReader(metricsFile));
-
-        final RnaSeqMetrics metrics = output.getMetrics().get(0);
-        Assert.assertEquals(metrics.PF_ALIGNED_BASES, 396);
-        Assert.assertEquals(metrics.PF_BASES, 432);
-        Assert.assertEquals(metrics.RIBOSOMAL_BASES.longValue(), 108L);
-        Assert.assertEquals(metrics.CODING_BASES, 136);
-        Assert.assertEquals(metrics.UTR_BASES, 51);
-        Assert.assertEquals(metrics.INTRONIC_BASES, 50);
-        Assert.assertEquals(metrics.INTERGENIC_BASES, 51);
-        Assert.assertEquals(metrics.CORRECT_STRAND_READS, 3);
-        Assert.assertEquals(metrics.INCORRECT_STRAND_READS, 4);
-        Assert.assertEquals(metrics.IGNORED_READS, 1);
-    }
-
-    @Test
-    public void testMultiLevel() throws Exception {
-        final String sequence = "chr1";
-        final String ignoredSequence = "chrM";
-
-        // Create some alignments that hit the ribosomal sequence, various parts of the gene, and intergenic.
-        final SAMRecordSetBuilder builder = new SAMRecordSetBuilder(true, SAMFileHeader.SortOrder.coordinate, false);
-        // Set seed so that strandedness is consistent among runs.
-        builder.setRandomSeed(0);
-        final int sequenceIndex = builder.getHeader().getSequenceIndex(sequence);
-        SAMReadGroupRecord rg1 = new SAMReadGroupRecord("2");
-        rg1.setSample("Sample");
-        rg1.setLibrary("foo");
-        builder.setReadGroup(rg1);
-        builder.addPair("pair1", sequenceIndex, 45, 475);
-        builder.addPair("pair2", sequenceIndex, 90, 225);
-        builder.addFrag("frag1", sequenceIndex, 150, true);
-        builder.addFrag("frag2", sequenceIndex, 450, true);
-
-        SAMReadGroupRecord rg2 = new SAMReadGroupRecord("3");
-        rg2.setSample("Sample");
-        rg2.setLibrary("bar");
-        builder.setReadGroup(rg2);
-        builder.addPair("pair3", sequenceIndex, 120, 600);
-        builder.addFrag("frag3", sequenceIndex, 225, false);
-        builder.addPair("rrnaPair", sequenceIndex, 400, 500);
-
-        builder.addFrag("ignoredFrag", builder.getHeader().getSequenceIndex(ignoredSequence), 1, false);
-
-        final File samFile = File.createTempFile("tmp.collectRnaSeqMetrics.", ".sam");
-        final SAMFileWriter samWriter = new SAMFileWriterFactory().makeSAMWriter(builder.getHeader(), false, samFile);
-        for (final SAMRecord rec: builder.getRecords()) samWriter.addAlignment(rec);
-        samWriter.close();
-
-        // Create an interval list with one ribosomal interval.
-        final Interval rRnaInterval = new Interval(sequence, 300, 520, true, "rRNA");
-        final IntervalList rRnaIntervalList = new IntervalList(builder.getHeader());
-        rRnaIntervalList.add(rRnaInterval);
-        final File rRnaIntervalsFile = File.createTempFile("tmp.rRna.", ".interval_list");
-        rRnaIntervalsFile.deleteOnExit();
-        rRnaIntervalList.write(rRnaIntervalsFile);
-
-        // Generate the metrics.
-        final File metricsFile = File.createTempFile("tmp.", ".rna_metrics");
-
-        final int ret = new CollectRnaSeqMetrics().instanceMain(new String[]{
-                "INPUT=" +               samFile.getAbsolutePath(),
-                "OUTPUT=" +              metricsFile.getAbsolutePath(),
-                "REF_FLAT=" +            getRefFlatFile(sequence).getAbsolutePath(),
-                "RIBOSOMAL_INTERVALS=" + rRnaIntervalsFile.getAbsolutePath(),
-                "STRAND_SPECIFICITY=SECOND_READ_TRANSCRIPTION_STRAND",
-                "IGNORE_SEQUENCE=" +ignoredSequence,
-                "LEVEL=null",
-                "LEVEL=SAMPLE",
-                "LEVEL=LIBRARY"
-        });
-        Assert.assertEquals(ret, 0);
-
-        final MetricsFile<RnaSeqMetrics, Comparable<?>> output = new MetricsFile<RnaSeqMetrics, Comparable<?>>();
-        output.read(new FileReader(metricsFile));
-
-        for (final RnaSeqMetrics metrics : output.getMetrics()) {
-            if (metrics.LIBRARY == null) {
-                Assert.assertEquals(metrics.PF_ALIGNED_BASES, 396);
-                Assert.assertEquals(metrics.PF_BASES, 432);
-                Assert.assertEquals(metrics.RIBOSOMAL_BASES.longValue(), 108L);
-                Assert.assertEquals(metrics.CODING_BASES, 136);
-                Assert.assertEquals(metrics.UTR_BASES, 51);
-                Assert.assertEquals(metrics.INTRONIC_BASES, 50);
-                Assert.assertEquals(metrics.INTERGENIC_BASES, 51);
-                Assert.assertEquals(metrics.CORRECT_STRAND_READS, 3);
-                Assert.assertEquals(metrics.INCORRECT_STRAND_READS, 4);
-                Assert.assertEquals(metrics.IGNORED_READS, 1);
-            }
-            else if (metrics.LIBRARY.equals("foo")) {
-                Assert.assertEquals(metrics.PF_ALIGNED_BASES, 216);
-                Assert.assertEquals(metrics.PF_BASES, 216);
-                Assert.assertEquals(metrics.RIBOSOMAL_BASES.longValue(), 36L);
-                Assert.assertEquals(metrics.CODING_BASES, 89);
-                Assert.assertEquals(metrics.UTR_BASES, 51);
-                Assert.assertEquals(metrics.INTRONIC_BASES, 25);
-                Assert.assertEquals(metrics.INTERGENIC_BASES, 15);
-                Assert.assertEquals(metrics.CORRECT_STRAND_READS, 3);
-                Assert.assertEquals(metrics.INCORRECT_STRAND_READS, 2);
-                Assert.assertEquals(metrics.IGNORED_READS, 0);
-
-            }
-            else if (metrics.LIBRARY.equals("bar")) {
-                Assert.assertEquals(metrics.PF_ALIGNED_BASES, 180);
-                Assert.assertEquals(metrics.PF_BASES, 216);
-                Assert.assertEquals(metrics.RIBOSOMAL_BASES.longValue(), 72L);
-                Assert.assertEquals(metrics.CODING_BASES, 47);
-                Assert.assertEquals(metrics.UTR_BASES, 0);
-                Assert.assertEquals(metrics.INTRONIC_BASES, 25);
-                Assert.assertEquals(metrics.INTERGENIC_BASES, 36);
-                Assert.assertEquals(metrics.CORRECT_STRAND_READS, 0);
-                Assert.assertEquals(metrics.INCORRECT_STRAND_READS, 2);
-                Assert.assertEquals(metrics.IGNORED_READS, 1);
-
-            }
-        }
-    }
-
-
-    public File getRefFlatFile(String sequence) throws Exception {
-        // Create a refFlat file with a single gene containing two exons, one of which is overlapped by the
-        // ribosomal interval.
-        final String[] refFlatFields = new String[RefFlatColumns.values().length];
-        refFlatFields[RefFlatColumns.GENE_NAME.ordinal()] = "myGene";
-        refFlatFields[RefFlatColumns.TRANSCRIPT_NAME.ordinal()] = "myTranscript";
-        refFlatFields[RefFlatColumns.CHROMOSOME.ordinal()] = sequence;
-        refFlatFields[RefFlatColumns.STRAND.ordinal()] = "+";
-        refFlatFields[RefFlatColumns.TX_START.ordinal()] = "49";
-        refFlatFields[RefFlatColumns.TX_END.ordinal()] = "500";
-        refFlatFields[RefFlatColumns.CDS_START.ordinal()] = "74";
-        refFlatFields[RefFlatColumns.CDS_END.ordinal()] = "400";
-        refFlatFields[RefFlatColumns.EXON_COUNT.ordinal()] = "2";
-        refFlatFields[RefFlatColumns.EXON_STARTS.ordinal()] = "49,249";
-        refFlatFields[RefFlatColumns.EXON_ENDS.ordinal()] = "200,500";
-
-        final File refFlatFile = File.createTempFile("tmp.", ".refFlat");
-        refFlatFile.deleteOnExit();
-        final PrintStream refFlatStream = new PrintStream(refFlatFile);
-        refFlatStream.println(StringUtil.join("\t", refFlatFields));
-        refFlatStream.close();
-
-        return refFlatFile;
-    }
-
-}
diff --git a/src/tests/java/net/sf/picard/analysis/MultiLevelCollectorTest.java b/src/tests/java/net/sf/picard/analysis/MultiLevelCollectorTest.java
deleted file mode 100644
index bd616ab..0000000
--- a/src/tests/java/net/sf/picard/analysis/MultiLevelCollectorTest.java
+++ /dev/null
@@ -1,188 +0,0 @@
-package net.sf.picard.analysis;
-
-
-import net.sf.picard.metrics.*;
-import net.sf.picard.reference.ReferenceSequence;
-import net.sf.samtools.SAMFileReader;
-import net.sf.samtools.SAMReadGroupRecord;
-import net.sf.samtools.SAMRecord;
-import static net.sf.samtools.util.CollectionUtil.*;
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-public class MultiLevelCollectorTest {
-
-    public static File TESTFILE = new File("testdata/net/sf/picard/sam/summary_alignment_stats_test_multiple.sam");
-
-    public String noneOrStr(final String str) {
-        final String out;
-        if(str == null) {
-            out = "";
-        } else {
-            out = str;
-        }
-        return out;
-    }
-
-    class TestArg {
-        public final SAMRecord samRecord;
-        public final ReferenceSequence refSeq;
-
-        public TestArg(final SAMRecord samRecord, final ReferenceSequence refSeq) {
-            this.samRecord = samRecord;
-            this.refSeq    = refSeq;
-        }
-    }
-
-    /** We will just Tally up the number of times records were added to this metric and change FINISHED
-     * to true when FINISHED is called
-     */
-    class TotalNumberMetric extends MultilevelMetrics {
-        /** The number of these encountered **/
-        public Integer TALLY = 0;
-        public boolean FINISHED = false;
-    }
-
-    class RecordCountMultiLevelCollector extends MultiLevelCollector<TotalNumberMetric, Integer, TestArg> {
-
-        public RecordCountMultiLevelCollector(final Set<MetricAccumulationLevel> accumulationLevels, final List<SAMReadGroupRecord> samRgRecords) {
-            setup(accumulationLevels, samRgRecords);
-        }
-
-        //The number of times records were accepted by a RecordCountPerUnitCollectors (note since the same
-        //samRecord might be aggregated by multiple PerUnit collectors, this may be greater than the number of
-        //records in the file
-        private int numProcessed = 0;
-
-        public int getNumProcessed() {
-            return numProcessed;
-        }
-
-        private final Map<String, TotalNumberMetric> unitsToMetrics = new HashMap<String, TotalNumberMetric>();
-
-        public Map<String, TotalNumberMetric> getUnitsToMetrics() {
-            return unitsToMetrics;
-        }
-
-        @Override
-        protected TestArg makeArg(final SAMRecord samRec, final ReferenceSequence refSeq) {
-            return new TestArg(samRec, refSeq);
-        }
-
-        @Override
-        protected PerUnitMetricCollector<TotalNumberMetric, Integer, TestArg> makeChildCollector(final String sample, final String library, final String readGroup) {
-            return new RecordCountPerUnitCollector(sample, library, readGroup);
-        }
-
-        private class RecordCountPerUnitCollector implements PerUnitMetricCollector<TotalNumberMetric, Integer, TestArg>{
-            private final TotalNumberMetric metric;
-
-            public RecordCountPerUnitCollector(final String sample, final String library, final String readGroup) {
-                metric = new TotalNumberMetric();
-                metric.SAMPLE     = sample;
-                metric.LIBRARY    = library;
-                metric.READ_GROUP = readGroup;
-                unitsToMetrics.put(noneOrStr(sample) + "_" + noneOrStr(library) + "_" + noneOrStr(readGroup), metric);
-            }
-
-            @Override
-            public void acceptRecord(final TestArg args) {
-                numProcessed += 1;
-                metric.TALLY += 1;
-                if(metric.SAMPLE != null) {
-                    Assert.assertEquals(metric.SAMPLE, args.samRecord.getReadGroup().getSample());
-                }
-                if(metric.LIBRARY != null) {
-                    Assert.assertEquals(metric.LIBRARY, args.samRecord.getReadGroup().getLibrary());
-                }
-
-                if(metric.READ_GROUP != null) {
-                    Assert.assertEquals(metric.READ_GROUP, args.samRecord.getReadGroup().getPlatformUnit());
-                }
-            }
-
-            @Override
-            public void finish() {
-                metric.FINISHED = true;
-            }
-
-            @Override
-            public void addMetricsToFile(final MetricsFile<TotalNumberMetric, Integer> totalNumberMetricIntegerMetricsFile) {
-                totalNumberMetricIntegerMetricsFile.addMetric(metric);
-            }
-        }
-    }
-
-    public static final Map<MetricAccumulationLevel, Map<String, Integer>> accumulationLevelToPerUnitReads = new HashMap<MetricAccumulationLevel, Map<String, Integer>>();
-    static {
-        HashMap<String, Integer> curMap = new HashMap<String, Integer>();
-        curMap.put("__", 19);
-        accumulationLevelToPerUnitReads.put(MetricAccumulationLevel.ALL_READS, curMap);
-
-        curMap = new HashMap<String, Integer>();
-        curMap.put("Ma__", 10);
-        curMap.put("Pa__", 9);
-        accumulationLevelToPerUnitReads.put(MetricAccumulationLevel.SAMPLE, curMap);
-
-        curMap = new HashMap<String, Integer>();
-        curMap.put("Ma_whatever_", 10);
-        curMap.put("Pa_lib1_",     4);
-        curMap.put("Pa_lib2_",     5);
-        accumulationLevelToPerUnitReads.put(MetricAccumulationLevel.LIBRARY, curMap);
-
-
-        curMap = new HashMap<String, Integer>();
-        curMap.put("Ma_whatever_me",     10);
-        curMap.put("Pa_lib1_myself", 4);
-        curMap.put("Pa_lib2_i",      3);
-        curMap.put("Pa_lib2_i2",     2);
-        accumulationLevelToPerUnitReads.put(MetricAccumulationLevel.READ_GROUP, curMap);
-    }
-
-    @DataProvider(name = "variedAccumulationLevels")
-    public Object [][] variedAccumulationLevels() {
-        return new Object[][] {
-            {makeSet(MetricAccumulationLevel.ALL_READS)},
-            {makeSet(MetricAccumulationLevel.ALL_READS,    MetricAccumulationLevel.SAMPLE)},
-            {makeSet(MetricAccumulationLevel.SAMPLE,       MetricAccumulationLevel.LIBRARY)},
-            {makeSet(MetricAccumulationLevel.READ_GROUP,   MetricAccumulationLevel.LIBRARY)},
-            {makeSet(MetricAccumulationLevel.SAMPLE,       MetricAccumulationLevel.LIBRARY, MetricAccumulationLevel.READ_GROUP)},
-            {makeSet(MetricAccumulationLevel.SAMPLE,       MetricAccumulationLevel.LIBRARY, MetricAccumulationLevel.READ_GROUP, MetricAccumulationLevel.ALL_READS)},
-        };
-    }
-
-    @Test(dataProvider = "variedAccumulationLevels")
-    public void multilevelCollectorTest(final Set<MetricAccumulationLevel> accumulationLevels) {
-        final SAMFileReader in = new SAMFileReader(TESTFILE);
-        final RecordCountMultiLevelCollector collector = new RecordCountMultiLevelCollector(accumulationLevels, in.getFileHeader().getReadGroups());
-
-        for (final SAMRecord rec : in) {
-            collector.acceptRecord(rec, null);
-        }
-
-        collector.finish();
-
-        int totalProcessed = 0;
-        int totalMetrics = 0;
-        for(final MetricAccumulationLevel level : accumulationLevels) {
-            final Map<String, Integer> keyToMetrics = accumulationLevelToPerUnitReads.get(level);
-            for(final Map.Entry<String, Integer> entry : keyToMetrics.entrySet()) {
-                final TotalNumberMetric metric = collector.getUnitsToMetrics().get(entry.getKey());
-                Assert.assertEquals(entry.getValue(), metric.TALLY);
-                Assert.assertTrue(metric.FINISHED);
-                totalProcessed += metric.TALLY;
-                totalMetrics   += 1;
-            }
-        }
-
-        Assert.assertEquals(collector.getUnitsToMetrics().size(), totalMetrics);
-        Assert.assertEquals(totalProcessed, collector.getNumProcessed());
-    }
-}
diff --git a/src/tests/java/net/sf/picard/cmdline/CommandLineParserTest.java b/src/tests/java/net/sf/picard/cmdline/CommandLineParserTest.java
deleted file mode 100644
index 66dda4e..0000000
--- a/src/tests/java/net/sf/picard/cmdline/CommandLineParserTest.java
+++ /dev/null
@@ -1,906 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.cmdline;
-
-import net.sf.samtools.util.CollectionUtil;
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.io.PrintWriter;
-import java.util.*;
-
-public class CommandLineParserTest {
-    enum FrobnicationFlavor {
-        FOO, BAR, BAZ
-    }
-
-    class FrobnicateOptions {
-        @Usage
-        public static final String USAGE = "Usage: frobnicate [options] input-file output-file\n\nRead input-file, frobnicate it, and write frobnicated results to output-file\n";
-
-        @PositionalArguments(minElements=2, maxElements=2)
-        public List<File> positionalArguments = new ArrayList<File>();
-
-        @Option(shortName="T", doc="Frobnication threshold setting.")
-        public Integer FROBNICATION_THRESHOLD = 20;
-
-        @Option
-        public FrobnicationFlavor FROBNICATION_FLAVOR;
-
-        @Option(doc="Allowed shmiggle types.", minElements=1, maxElements = 3)
-        public List<String> SHMIGGLE_TYPE = new ArrayList<String>();
-
-        @Option
-        public Boolean TRUTHINESS;
-    }
-
-    class FrobnicateOptionsWithNullList {
-        @Usage
-        public static final String USAGE = "Usage: frobnicate [options] input-file output-file\n\nRead input-file, frobnicate it, and write frobnicated results to output-file\n";
-
-        @PositionalArguments(minElements=2, maxElements=2)
-        public List<File> positionalArguments = new ArrayList<File>();
-
-        @Option(shortName="T", doc="Frobnication threshold setting.")
-        public Integer FROBNICATION_THRESHOLD = 20;
-
-        @Option
-        public FrobnicationFlavor FROBNICATION_FLAVOR;
-
-        @Option(doc="Allowed shmiggle types.", minElements=0, maxElements = 3)
-        public List<String> SHMIGGLE_TYPE = new ArrayList<String>();
-
-        @Option
-        public Boolean TRUTHINESS;
-    }
-
-    class OptionsWithoutPositional {
-        @Usage
-        public static final String USAGE = "Usage: framistat [options]\n\nCompute the plebnick of the freebozzle.\n";
-        public static final int DEFAULT_FROBNICATION_THRESHOLD = 20;
-        @Option(shortName="T", doc="Frobnication threshold setting.")
-        public Integer FROBNICATION_THRESHOLD = DEFAULT_FROBNICATION_THRESHOLD;
-
-        @Option
-        public FrobnicationFlavor FROBNICATION_FLAVOR;
-
-        @Option(doc="Allowed shmiggle types.", minElements=1, maxElements = 3)
-        public List<String> SHMIGGLE_TYPE = new ArrayList<String>();
-
-        @Option
-        public Boolean TRUTHINESS;
-    }
-
-    class OptionsWithCaseClash {
-        @Option
-        public String FROB;
-        @Option
-        public String frob;
-    }
-    
-    class MutexOptions {
-        @Option(mutex={"M", "N", "Y", "Z"})
-        public String A;
-        @Option(mutex={"M", "N", "Y", "Z"})
-        public String B;
-        @Option(mutex={"A", "B", "Y", "Z"})
-        public String M;
-        @Option(mutex={"A", "B", "Y", "Z"})
-        public String N;
-        @Option(mutex={"A", "B", "M", "N"})
-        public String Y;
-        @Option(mutex={"A", "B", "M", "N"})
-        public String Z;
-        
-    }
-
-
-    @Test
-    public void testUsage() {
-        final FrobnicateOptions fo = new FrobnicateOptions();
-        final CommandLineParser clp = new CommandLineParser(fo);
-        clp.usage(System.out, false);
-    }
-
-    @Test
-    public void testUsageWithDefault() {
-        final FrobnicateOptions fo = new FrobnicateOptions();
-        final CommandLineParser clp = new CommandLineParser(fo);
-        clp.usage(System.out, true);
-    }
-
-    @Test
-    public void testUsageWithoutPositional() {
-        final OptionsWithoutPositional fo = new OptionsWithoutPositional();
-        final CommandLineParser clp = new CommandLineParser(fo);
-        clp.usage(System.out, false);
-    }
-
-    @Test
-    public void testUsageWithoutPositionalWithDefault() {
-        final OptionsWithoutPositional fo = new OptionsWithoutPositional();
-        final CommandLineParser clp = new CommandLineParser(fo);
-        clp.usage(System.out, true);
-    }
-
-    @Test
-    public void testPositive() {
-        final String[] args = {
-                "T=17",
-                "FROBNICATION_FLAVOR=BAR",
-                "TRUTHINESS=False",
-                "SHMIGGLE_TYPE=shmiggle1",
-                "SHMIGGLE_TYPE=shmiggle2",
-                "positional1",
-                "positional2",
-        };
-        final FrobnicateOptions fo = new FrobnicateOptions();
-        final CommandLineParser clp = new CommandLineParser(fo);
-        Assert.assertTrue(clp.parseOptions(System.err, args));
-        Assert.assertEquals(fo.positionalArguments.size(), 2);
-        final File[] expectedPositionalArguments = { new File("positional1"), new File("positional2")};
-        Assert.assertEquals(fo.positionalArguments.toArray(), expectedPositionalArguments);
-        Assert.assertEquals(fo.FROBNICATION_THRESHOLD.intValue(), 17);
-        Assert.assertEquals(fo.FROBNICATION_FLAVOR, FrobnicationFlavor.BAR);
-        Assert.assertEquals(fo.SHMIGGLE_TYPE.size(), 2);
-        final String[] expectedShmiggleTypes = {"shmiggle1", "shmiggle2"};
-        Assert.assertEquals(fo.SHMIGGLE_TYPE.toArray(), expectedShmiggleTypes);
-        Assert.assertFalse(fo.TRUTHINESS);
-    }
-
-    /**
-     * Allow a whitespace btw equal sign and option value.
-     */
-    @Test
-    public void testPositiveWithSpaces() {
-        final String[] args = {
-                "T=", "17",
-                "FROBNICATION_FLAVOR=", "BAR",
-                "TRUTHINESS=", "False",
-                "SHMIGGLE_TYPE=", "shmiggle1",
-                "SHMIGGLE_TYPE=", "shmiggle2",
-                "positional1",
-                "positional2",
-        };
-        final FrobnicateOptions fo = new FrobnicateOptions();
-        final CommandLineParser clp = new CommandLineParser(fo);
-        Assert.assertTrue(clp.parseOptions(System.err, args));
-        Assert.assertEquals(fo.positionalArguments.size(), 2);
-        final File[] expectedPositionalArguments = { new File("positional1"), new File("positional2")};
-        Assert.assertEquals(fo.positionalArguments.toArray(), expectedPositionalArguments);
-        Assert.assertEquals(fo.FROBNICATION_THRESHOLD.intValue(), 17);
-        Assert.assertEquals(fo.FROBNICATION_FLAVOR, FrobnicationFlavor.BAR);
-        Assert.assertEquals(fo.SHMIGGLE_TYPE.size(), 2);
-        final String[] expectedShmiggleTypes = {"shmiggle1", "shmiggle2"};
-        Assert.assertEquals(fo.SHMIGGLE_TYPE.toArray(), expectedShmiggleTypes);
-        Assert.assertFalse(fo.TRUTHINESS);
-    }
-
-    @Test
-    public void testPositiveWithoutPositional() {
-        final String[] args = {
-                "T=17",
-                "FROBNICATION_FLAVOR=BAR",
-                "TRUTHINESS=False",
-                "SHMIGGLE_TYPE=shmiggle1",
-                "SHMIGGLE_TYPE=shmiggle2",
-        };
-        final OptionsWithoutPositional fo = new OptionsWithoutPositional();
-        final CommandLineParser clp = new CommandLineParser(fo);
-        Assert.assertTrue(clp.parseOptions(System.err, args));
-        Assert.assertEquals(fo.FROBNICATION_THRESHOLD.intValue(), 17);
-        Assert.assertEquals(fo.FROBNICATION_FLAVOR, FrobnicationFlavor.BAR);
-        Assert.assertEquals(fo.SHMIGGLE_TYPE.size(), 2);
-        final String[] expectedShmiggleTypes = {"shmiggle1", "shmiggle2"};
-        Assert.assertEquals(fo.SHMIGGLE_TYPE.toArray(), expectedShmiggleTypes);
-        Assert.assertFalse(fo.TRUTHINESS);
-    }
-
-    /**
-     * If last character of command line is the equal sign in an option=value pair,
-     * make sure no crash, and that the value is empty string.
-     */
-    @Test
-    public void testPositiveTerminalEqualSign() {
-        final String[] args = {
-                "T=17",
-                "FROBNICATION_FLAVOR=BAR",
-                "TRUTHINESS=False",
-                "SHMIGGLE_TYPE=shmiggle1",
-                "SHMIGGLE_TYPE=",
-        };
-        final OptionsWithoutPositional fo = new OptionsWithoutPositional();
-        final CommandLineParser clp = new CommandLineParser(fo);
-        Assert.assertTrue(clp.parseOptions(System.err, args));
-        Assert.assertEquals(fo.FROBNICATION_THRESHOLD.intValue(), 17);
-        Assert.assertEquals(fo.FROBNICATION_FLAVOR, FrobnicationFlavor.BAR);
-        Assert.assertEquals(fo.SHMIGGLE_TYPE.size(), 2);
-        final String[] expectedShmiggleTypes = {"shmiggle1", ""};
-        Assert.assertEquals(fo.SHMIGGLE_TYPE.toArray(), expectedShmiggleTypes);
-        Assert.assertFalse(fo.TRUTHINESS);
-    }
-
-    @Test
-    public void testDefault() {
-        final String[] args = {
-                "FROBNICATION_FLAVOR=BAR",
-                "TRUTHINESS=False",
-                "SHMIGGLE_TYPE=shmiggle1",
-                "SHMIGGLE_TYPE=shmiggle2",
-                "positional1",
-                "positional2",
-        };
-        final FrobnicateOptions fo = new FrobnicateOptions();
-        final CommandLineParser clp = new CommandLineParser(fo);
-        Assert.assertTrue(clp.parseOptions(System.err, args));
-        Assert.assertEquals(fo.FROBNICATION_THRESHOLD.intValue(), 20);
-    }
-
-    @Test
-    public void testMissingRequiredArgument() {
-        final String[] args = {
-                "TRUTHINESS=False",
-                "SHMIGGLE_TYPE=shmiggle1",
-                "SHMIGGLE_TYPE=shmiggle2",
-                "positional1",
-                "positional2",
-        };
-        final FrobnicateOptions fo = new FrobnicateOptions();
-        final CommandLineParser clp = new CommandLineParser(fo);
-        Assert.assertFalse(clp.parseOptions(System.err, args));
-    }
-
-    @Test
-    public void testBadValue() {
-        final String[] args = {
-                "FROBNICATION_THRESHOLD=ABC",
-                "FROBNICATION_FLAVOR=BAR",
-                "TRUTHINESS=False",
-                "SHMIGGLE_TYPE=shmiggle1",
-                "SHMIGGLE_TYPE=shmiggle2",
-                "positional1",
-                "positional2",
-        };
-        final FrobnicateOptions fo = new FrobnicateOptions();
-        final CommandLineParser clp = new CommandLineParser(fo);
-        Assert.assertFalse(clp.parseOptions(System.err, args));
-    }
-
-    @Test
-    public void testBadEnumValue() {
-        final String[] args = {
-                "FROBNICATION_FLAVOR=HiMom",
-                "TRUTHINESS=False",
-                "SHMIGGLE_TYPE=shmiggle1",
-                "SHMIGGLE_TYPE=shmiggle2",
-                "positional1",
-                "positional2",
-        };
-        final FrobnicateOptions fo = new FrobnicateOptions();
-        final CommandLineParser clp = new CommandLineParser(fo);
-        Assert.assertFalse(clp.parseOptions(System.err, args));
-    }
-
-    @Test
-    public void testNotEnoughOfListOption() {
-        final String[] args = {
-                "FROBNICATION_FLAVOR=BAR",
-                "TRUTHINESS=False",
-                "positional1",
-                "positional2",
-        };
-        final FrobnicateOptions fo = new FrobnicateOptions();
-        final CommandLineParser clp = new CommandLineParser(fo);
-        Assert.assertFalse(clp.parseOptions(System.err, args));
-    }
-
-    @Test
-    public void testTooManyListOption() {
-        final String[] args = {
-                "FROBNICATION_FLAVOR=BAR",
-                "TRUTHINESS=False",
-                "SHMIGGLE_TYPE=shmiggle1",
-                "SHMIGGLE_TYPE=shmiggle2",
-                "SHMIGGLE_TYPE=shmiggle3",
-                "SHMIGGLE_TYPE=shmiggle4",
-                "positional1",
-                "positional2",
-        };
-        final FrobnicateOptions fo = new FrobnicateOptions();
-        final CommandLineParser clp = new CommandLineParser(fo);
-        Assert.assertFalse(clp.parseOptions(System.err, args));
-    }
-
-    @Test
-    public void testTooManyPositional() {
-        final String[] args = {
-                "FROBNICATION_FLAVOR=BAR",
-                "TRUTHINESS=False",
-                "SHMIGGLE_TYPE=shmiggle1",
-                "SHMIGGLE_TYPE=shmiggle2",
-                "positional1",
-                "positional2",
-                "positional3",
-        };
-        final FrobnicateOptions fo = new FrobnicateOptions();
-        final CommandLineParser clp = new CommandLineParser(fo);
-        Assert.assertFalse(clp.parseOptions(System.err, args));
-    }
-
-    @Test
-    public void testNotEnoughPositional() {
-        final String[] args = {
-                "FROBNICATION_FLAVOR=BAR",
-                "TRUTHINESS=False",
-                "SHMIGGLE_TYPE=shmiggle1",
-                "SHMIGGLE_TYPE=shmiggle2",
-        };
-        final FrobnicateOptions fo = new FrobnicateOptions();
-        final CommandLineParser clp = new CommandLineParser(fo);
-        Assert.assertFalse(clp.parseOptions(System.err, args));
-    }
-
-    @Test
-    public void testUnexpectedPositional() {
-        final String[] args = {
-                "T=17",
-                "FROBNICATION_FLAVOR=BAR",
-                "TRUTHINESS=False",
-                "SHMIGGLE_TYPE=shmiggle1",
-                "SHMIGGLE_TYPE=shmiggle2",
-                "positional"
-        };
-        final OptionsWithoutPositional fo = new OptionsWithoutPositional();
-        final CommandLineParser clp = new CommandLineParser(fo);
-        Assert.assertFalse(clp.parseOptions(System.err, args));
-    }
-
-    @Test(expectedExceptions = CommandLineParserDefinitionException.class)
-    public void testOptionDefinitionCaseClash() {
-        final OptionsWithCaseClash options = new OptionsWithCaseClash();
-        new CommandLineParser(options);
-        Assert.fail("Should not be reached.");
-    }
-
-    @Test
-    public void testOptionUseCaseClash() {
-        final String[] args = {
-                "FROBNICATION_FLAVOR=BAR",
-                "FrOBNICATION_fLAVOR=BAR",
-        };
-        final FrobnicateOptions fo = new FrobnicateOptions();
-        final CommandLineParser clp = new CommandLineParser(fo);
-        Assert.assertFalse(clp.parseOptions(System.err, args));
-    }
-
-    @Test
-    public void testNullValue() {
-    	final String[] args = {
-    			"FROBNICATION_THRESHOLD=null",  
-                "FROBNICATION_FLAVOR=BAR",
-                "TRUTHINESS=False",
-                "SHMIGGLE_TYPE=null",                
-                "positional1",
-                "positional2",
-        };
-    	
-        final FrobnicateOptionsWithNullList fownl = new FrobnicateOptionsWithNullList();
-        fownl.SHMIGGLE_TYPE.add("shmiggle1"); //providing null value should clear this list
-        
-        final CommandLineParser clp = new CommandLineParser(fownl);
-        Assert.assertTrue(clp.parseOptions(System.err, args));
-        Assert.assertEquals(fownl.positionalArguments.size(), 2);
-        final File[] expectedPositionalArguments = { new File("positional1"), new File("positional2")};
-        Assert.assertEquals(fownl.positionalArguments.toArray(), expectedPositionalArguments);
-        Assert.assertEquals(fownl.FROBNICATION_THRESHOLD, null); //test null value         
-        Assert.assertEquals(fownl.SHMIGGLE_TYPE.size(), 0); //test null value for list        
-        Assert.assertFalse(fownl.TRUTHINESS);
-     
-        //verify that required arg can't be set to null
-        args[2] = "TRUTHINESS=null"; 
-        final CommandLineParser clp2 = new CommandLineParser(fownl);
-        Assert.assertFalse(clp2.parseOptions(System.err, args));
-
-        //verify that positional arg can't be set to null
-        args[2] = "TRUTHINESS=False"; 
-        args[4] = "null";
-        final CommandLineParser clp3 = new CommandLineParser(fownl);
-        Assert.assertFalse(clp3.parseOptions(System.err, args));
-        
-    }
-
-
-    @Test
-    public void testOptionsFile() throws Exception {
-        final File optionsFile = File.createTempFile("clp.", ".options");
-        optionsFile.deleteOnExit();
-        final PrintWriter writer = new PrintWriter(optionsFile);
-        writer.println("T=18");
-        writer.println("TRUTHINESS=True");
-        writer.println("SHMIGGLE_TYPE=shmiggle0");
-        writer.println("STRANGE_OPTION=shmiggle0");
-        writer.close();
-        final String[] args = {
-                "OPTIONS_FILE=" + optionsFile.getPath(),
-                // Multiple options files are allowed
-                "OPTIONS_FILE=" + optionsFile.getPath(),
-                "T=17",
-                "FROBNICATION_FLAVOR=BAR",
-                "TRUTHINESS=False",
-                "SHMIGGLE_TYPE=shmiggle1",
-                "positional1",
-                "positional2",
-        };
-        final FrobnicateOptions fo = new FrobnicateOptions();
-        final CommandLineParser clp = new CommandLineParser(fo);
-        Assert.assertTrue(clp.parseOptions(System.err, args));
-        Assert.assertEquals(fo.positionalArguments.size(), 2);
-        final File[] expectedPositionalArguments = { new File("positional1"), new File("positional2")};
-        Assert.assertEquals(fo.positionalArguments.toArray(), expectedPositionalArguments);
-        Assert.assertEquals(fo.FROBNICATION_THRESHOLD.intValue(), 17);
-        Assert.assertEquals(fo.FROBNICATION_FLAVOR, FrobnicationFlavor.BAR);
-        Assert.assertEquals(fo.SHMIGGLE_TYPE.size(), 3);
-        final String[] expectedShmiggleTypes = {"shmiggle0", "shmiggle0", "shmiggle1"};
-        Assert.assertEquals(fo.SHMIGGLE_TYPE.toArray(), expectedShmiggleTypes);
-        Assert.assertFalse(fo.TRUTHINESS);
-    }
-
-
-    /**
-     * In an options file, should not be allowed to override an option set on the command line
-     * @throws Exception
-     */
-    @Test
-    public void testOptionsFileWithDisallowedOverride() throws Exception {
-        final File optionsFile = File.createTempFile("clp.", ".options");
-        optionsFile.deleteOnExit();
-        final PrintWriter writer = new PrintWriter(optionsFile);
-        writer.println("T=18");
-        writer.close();
-        final String[] args = {
-                "T=17",
-                "OPTIONS_FILE=" + optionsFile.getPath()
-        };
-        final FrobnicateOptions fo = new FrobnicateOptions();
-        final CommandLineParser clp = new CommandLineParser(fo);
-        Assert.assertFalse(clp.parseOptions(System.err, args));
-    }
-    
-    @DataProvider(name="mutexScenarios")
-    public Object[][] mutexScenarios() {
-        return new Object[][] {
-                { "pass", new String[] {"A=1", "B=2"}, true },
-                { "no args", new String[0], false },
-                { "1 of group required", new String[] {"A=1"}, false },
-                { "mutex", new String[]  {"A=1", "Y=3"}, false },
-                { "mega mutex", new String[]  {"A=1", "B=2", "Y=3", "Z=1", "M=2", "N=3"}, false }
-        };
-    }
-    
-    @Test(dataProvider="mutexScenarios")
-    public void testMutex(final String testName, final String[] args, final boolean expected) {
-        final MutexOptions o = new MutexOptions();
-        final CommandLineParser clp = new CommandLineParser(o);
-        Assert.assertEquals(clp.parseOptions(System.err, args), expected);
-    }
-
-    class UninitializedCollectionOptions {
-        @Option
-        public List<String> LIST;
-        @Option
-        public ArrayList<String> ARRAY_LIST;
-        @Option
-        public HashSet<String> HASH_SET;
-        @PositionalArguments
-        public Collection<File> COLLECTION;
-
-    }
-
-    @Test
-    public void testUninitializedCollections() {
-        final UninitializedCollectionOptions o = new UninitializedCollectionOptions();
-        final CommandLineParser clp = new CommandLineParser(o);
-        final String[] args = {"LIST=L1", "LIST=L2", "ARRAY_LIST=S1", "HASH_SET=HS1", "P1", "P2"};
-        Assert.assertTrue(clp.parseOptions(System.err, args));
-        Assert.assertEquals(o.LIST.size(), 2);
-        Assert.assertEquals(o.ARRAY_LIST.size(), 1);
-        Assert.assertEquals(o.HASH_SET.size(), 1);
-        Assert.assertEquals(o.COLLECTION.size(), 2);
-    }
-
-    class UninitializedCollectionThatCannotBeAutoInitializedOptions {
-        @Option
-        public Set<String> SET;
-    }
-
-    @Test(expectedExceptions = CommandLineParserDefinitionException.class)
-    public void testCollectionThatCannotBeAutoInitialized() {
-        final UninitializedCollectionThatCannotBeAutoInitializedOptions o = new UninitializedCollectionThatCannotBeAutoInitializedOptions();
-        new CommandLineParser(o);
-        Assert.fail("Exception should have been thrown");
-    }
-
-    class CollectionWithDefaultValuesOptions {
-        @Option
-        public List<String> LIST = CollectionUtil.makeList("foo", "bar");
-    }
-
-    @Test
-    public void testClearDefaultValuesFromListOption() {
-        final CollectionWithDefaultValuesOptions o = new CollectionWithDefaultValuesOptions();
-        final CommandLineParser clp = new CommandLineParser(o);
-        final String[] args = {"LIST=null"};
-        Assert.assertTrue(clp.parseOptions(System.err, args));
-        Assert.assertEquals(o.LIST.size(), 0);
-    }
-
-    @Test
-    public void testClearDefaultValuesFromListOptionAndAddNew() {
-        final CollectionWithDefaultValuesOptions o = new CollectionWithDefaultValuesOptions();
-        final CommandLineParser clp = new CommandLineParser(o);
-        final String[] args = {"LIST=null", "LIST=baz", "LIST=frob"};
-        Assert.assertTrue(clp.parseOptions(System.err, args));
-        Assert.assertEquals(o.LIST, CollectionUtil.makeList("baz", "frob"));
-    }
-
-    @Test
-    public void testAddToDefaultValuesListOption() {
-        final CollectionWithDefaultValuesOptions o = new CollectionWithDefaultValuesOptions();
-        final CommandLineParser clp = new CommandLineParser(o);
-        final String[] args = {"LIST=baz", "LIST=frob"};
-        Assert.assertTrue(clp.parseOptions(System.err, args));
-        Assert.assertEquals(o.LIST, CollectionUtil.makeList("foo", "bar", "baz", "frob"));
-    }
-
-    class OptionsWithNested {
-        @Usage
-        public String USAGE = "Class with nested options.";
-        @Option
-        public Integer AN_INT;
-        @NestedOptions(doc="Doc for FROB")
-        public OptionsWithoutPositional FROB = new OptionsWithoutPositional();
-        @NestedOptions
-        public OptionsWithNestedAgain NESTED = new OptionsWithNestedAgain();
-        @Option
-        public String A_STRING;
-    }
-
-    class OptionsWithNestedAgain {
-        @NestedOptions(doc="Doc for inner FROB")
-        public OptionsWithoutPositional FROB = new OptionsWithoutPositional();
-    }
-
-
-    @Test
-    public void testStaticNestedOptions() {
-        final OptionsWithNested o = new OptionsWithNested();
-        final CommandLineParser clp = new CommandLineParser(o);
-        clp.usage(System.out, false);
-        clp.htmlUsage(System.out, "testStaticNestedOptions", false);
-        final int outerInt = 123;
-        final String outerString = "outerString";
-        final FrobnicationFlavor outerFlavor = FrobnicationFlavor.BAR;
-        final FrobnicationFlavor innerFlavor = FrobnicationFlavor.BAZ;
-        final boolean outerTruthiness = true;
-        final boolean innerTruthiness = false;
-        final int innerThreshold = 10;
-        final String[] outerShmiggle = {"shmiggle1", "shmiggle2"};
-        final String[] innerShmiggle = {"inner1", "inner2", "inner3"};
-
-        final List<String> args = new ArrayList<String>();
-        args.add("AN_INT=" + outerInt);
-        args.add("A_STRING=" + outerString);
-        args.add("frob.truThIness=" + outerTruthiness);
-        args.add("FrOb.FROBNICATION_FLAVOR=" + outerFlavor);
-        for (final String shmiggle : outerShmiggle) {
-            args.add("FROB.SHMIGGLE_TYPE=" + shmiggle);
-        }
-        args.add("NeStEd.Frob.FROBNICATION_THRESHOLD=" + innerThreshold);
-        args.add("NeStEd.Frob.FROBNICATION_FLAVOR=" + innerFlavor);
-        args.add("NeStEd.Frob.truthIness=" + innerTruthiness);
-        for (final String shmiggle : innerShmiggle) {
-            args.add("NESTED.FROB.SHMIGGLE_TYPE=");
-            args.add(shmiggle);
-        }
-        Assert.assertTrue(clp.parseOptions(System.err, args.toArray(new String[args.size()])));
-        System.out.println(clp.getCommandLine());
-        Assert.assertEquals(o.AN_INT.intValue(), outerInt);
-        Assert.assertEquals(o.A_STRING, outerString);
-        Assert.assertEquals(o.FROB.FROBNICATION_FLAVOR, outerFlavor);
-        Assert.assertEquals(o.FROB.FROBNICATION_THRESHOLD.intValue(), OptionsWithoutPositional.DEFAULT_FROBNICATION_THRESHOLD);
-        Assert.assertEquals(o.FROB.SHMIGGLE_TYPE, Arrays.asList(outerShmiggle));
-        Assert.assertEquals(o.FROB.TRUTHINESS.booleanValue(), outerTruthiness);
-        Assert.assertEquals(o.NESTED.FROB.SHMIGGLE_TYPE, Arrays.asList(innerShmiggle));
-        Assert.assertEquals(o.NESTED.FROB.FROBNICATION_THRESHOLD.intValue(), innerThreshold);
-        Assert.assertEquals(o.NESTED.FROB.FROBNICATION_FLAVOR, innerFlavor);
-        Assert.assertEquals(o.NESTED.FROB.TRUTHINESS.booleanValue(), innerTruthiness);
-    }
-
-    @Test void testStaticNestedNegative() {
-        final OptionsWithNested o = new OptionsWithNested();
-        final CommandLineParser clp = new CommandLineParser(o);
-        final int outerInt = 123;
-        final String outerString = "outerString";
-        final FrobnicationFlavor outerFlavor = FrobnicationFlavor.BAR;
-        final boolean outerTruthiness = true;
-        final String[] outerShmiggle = {"shmiggle1", "shmiggle2"};
-
-        final List<String> args = new ArrayList<String>();
-        args.add("AN_INT=" + outerInt);
-        args.add("A_STRING=" + outerString);
-        Assert.assertFalse(clp.parseOptions(System.err, args.toArray(new String[args.size()])));
-        System.out.println(clp.getCommandLine());
-    }
-
-    class ClpOptionsWithNested extends CommandLineProgram {
-        @Usage
-        public String USAGE = "Class with nested options.";
-        @Option
-        public Integer AN_INT;
-        @NestedOptions(doc="This will be ignored")
-        public OptionsWithoutPositional FROB = new OptionsWithoutPositional();
-
-        @Option
-        public String A_STRING;
-
-        private final ClpOptionsWithNestedAgain NESTED = new ClpOptionsWithNestedAgain();
-
-        @Override
-        public Map<String, Object> getNestedOptions() {
-            final Map<String, Object> ret = new LinkedHashMap<String, Object>();
-            ret.put("CLP_NESTED", NESTED);
-            ret.put("FRAB", FROB);
-            return ret;
-        }
-
-        @Override
-        public Map<String, Object> getNestedOptionsForHelp() {
-            final Map<String, Object> ret = new LinkedHashMap<String, Object>();
-            ret.put("CLP_NESTED", NESTED);
-            return ret;
-        }
-
-        @Override
-        protected int doWork() {
-            return 0;
-        }
-    }
-
-    class ClpOptionsWithNestedAgain extends CommandLineProgram {
-        private final OptionsWithoutPositional FROB = new OptionsWithoutPositional();
-
-        @Override
-        public Map<String, Object> getNestedOptions() {
-            final Map<String, Object> ret = new LinkedHashMap<String, Object>();
-            ret.put("FROB_NESTED", FROB);
-            return ret;
-        }
-
-        @Override
-        protected int doWork() {
-            return 0;
-        }
-    }
-
-
-    @Test
-    public void testDynamicNestedOptions() {
-        final ClpOptionsWithNested o = new ClpOptionsWithNested();
-        final int outerInt = 123;
-        final String outerString = "aString";
-        final int outerThreshold = 456;
-        final FrobnicationFlavor outerFlavor = FrobnicationFlavor.FOO;
-        final List<String> outerShmiggleType = Arrays.asList("shmiggle1");
-        final boolean outerTruthiness = true;
-        final int innerThreshold = -1000;
-        final FrobnicationFlavor innerFlavor = FrobnicationFlavor.BAZ;
-        final List<String> innerShmiggleType = Arrays.asList("innershmiggle1", "skeezwitz");
-        final boolean innerTruthiness = false;
-
-        final List<String> args = new ArrayList<String>();
-        args.add("AN_INT=" + outerInt);
-        args.add("A_STRING=" + outerString);
-        args.add("FRAB.FROBNICATION_THRESHOLD=" + outerThreshold);
-        args.add("FRAB.FROBNICATION_FLAVOR=" + outerFlavor);
-        args.add("FRAB.SHMIGGLE_TYPE=" + outerShmiggleType.get(0));
-        args.add("FRAB.TRUTHINESS=" + outerTruthiness);
-        args.add("CLP_NESTED.FROB_NESTED.FROBNICATION_THRESHOLD=" + innerThreshold);
-        args.add("CLP_NESTED.FROB_NESTED.FROBNICATION_FLAVOR=" + innerFlavor);
-        for (final String ist : innerShmiggleType) {
-            args.add("CLP_NESTED.FROB_NESTED.SHMIGGLE_TYPE=" + ist);
-        }
-        args.add("CLP_NESTED.FROB_NESTED.TRUTHINESS=" + innerTruthiness);
-
-        Assert.assertTrue(o.parseArgs(args.toArray(new String[args.size()])));
-        System.out.println(o.getCommandLine());
-        Assert.assertEquals(o.AN_INT.intValue(), outerInt);
-        Assert.assertEquals(o.A_STRING, outerString);
-        Assert.assertEquals(o.FROB.FROBNICATION_THRESHOLD.intValue(), outerThreshold);
-        Assert.assertEquals(o.FROB.FROBNICATION_FLAVOR, outerFlavor);
-        Assert.assertEquals(o.FROB.SHMIGGLE_TYPE, outerShmiggleType);
-        Assert.assertEquals(o.FROB.TRUTHINESS.booleanValue(), outerTruthiness);
-        Assert.assertEquals(o.NESTED.FROB.FROBNICATION_THRESHOLD.intValue(), innerThreshold);
-        Assert.assertEquals(o.NESTED.FROB.FROBNICATION_FLAVOR, innerFlavor);
-        Assert.assertEquals(o.NESTED.FROB.SHMIGGLE_TYPE, innerShmiggleType);
-        Assert.assertEquals(o.NESTED.FROB.TRUTHINESS.booleanValue(), innerTruthiness);
-        Assert.assertFalse(new ClpOptionsWithNested().parseArgs(new String[]{"-h"}));
-        new CommandLineParser(o).htmlUsage(System.err, o.getClass().getSimpleName(), false);
-    }
-
-    class StaticPropagationParent {
-        @Option
-        public String STRING1 = "String1ParentDefault";
-
-        @Option
-        public String STRING2 = "String2ParentDefault";
-
-        @Option
-        public String STRING3 = "String3ParentDefault";
-
-        @Option
-        public String STRING4 = "String4ParentDefault";
-
-        @Option
-        public String STRING5;
-
-        @Option
-        public List<String> COLLECTION;
-
-        @NestedOptions
-        public PropagationChild CHILD = new PropagationChild();
-    }
-
-    class PropagationChild {
-        // Parent has default, child does not, should propagate
-        @Option
-        public String STRING1;
-
-        // Parent and child have default, should not propagate
-        @Option
-        public String STRING2 = "String2ChildDefault";
-
-        // Parent has explicitly set value, child has default, should propagate
-        @Option
-        public String STRING3 = "String3ChildDefault";
-
-        // Parent has default, child has explicitly set value, should not propagate
-        @Option
-        public String STRING4;
-
-        // Parent and child have explicitly set value, should not propagate
-        @Option
-        public String STRING5;
-
-        // Parent has explicitly set value, but collection should not propagate
-        @Option
-        public List<String> COLLECTION;
-    }
-
-    @Test
-    public void testStaticPropagation() {
-        final StaticPropagationParent o = new StaticPropagationParent();
-        final CommandLineParser clp = new CommandLineParser(o);
-        clp.usage(System.out, false);
-        clp.htmlUsage(System.out, "testStaticPropagation", false);
-
-        final List<String> args = new ArrayList<String>();
-        args.add("STRING3=String3Parent");
-        args.add("CHILD.STRING4=String4Child");
-        args.add("STRING5=String5Parent");
-        args.add("CHILD.STRING5=String5Child");
-        args.add("COLLECTION=CollectionParent");
-
-        Assert.assertTrue(clp.parseOptions(System.err, args.toArray(new String[args.size()])));
-        System.out.println(clp.getCommandLine());
-
-        Assert.assertEquals(o.CHILD.STRING1, "String1ParentDefault");
-        Assert.assertEquals(o.CHILD.STRING2, "String2ChildDefault");
-        Assert.assertEquals(o.CHILD.STRING3, "String3Parent");
-        Assert.assertEquals(o.CHILD.STRING4, "String4Child");
-        Assert.assertEquals(o.CHILD.STRING5, "String5Child");
-        Assert.assertEquals(o.CHILD.COLLECTION, new ArrayList<String>());
-    }
-
-    class DynamicPropagationParent extends CommandLineProgram {
-        @Option
-        public String STRING1 = "String1ParentDefault";
-
-        @Option
-        public String STRING2 = "String2ParentDefault";
-
-        @Option
-        public String STRING3 = "String3ParentDefault";
-
-        @Option
-        public String STRING4 = "String4ParentDefault";
-
-        @Option
-        public String STRING5;
-
-        @Option
-        public List<String> COLLECTION;
-
-        public PropagationChild CHILD = new PropagationChild();
-
-        @Override
-        protected int doWork() {
-            return 0;
-        }
-
-        @Override
-        public Map<String, Object> getNestedOptions() {
-            final Map<String, Object> ret = new HashMap<String, Object>();
-            ret.put("CHILD", CHILD);
-            return ret;
-        }
-    }
-
-    @Test
-    public void testDynamicPropagation() {
-        final DynamicPropagationParent o = new DynamicPropagationParent();
-
-        final List<String> args = new ArrayList<String>();
-        args.add("STRING3=String3Parent");
-        args.add("CHILD.STRING4=String4Child");
-        args.add("STRING5=String5Parent");
-        args.add("CHILD.STRING5=String5Child");
-        args.add("COLLECTION=CollectionParent");
-
-        Assert.assertTrue(o.parseArgs(args.toArray(new String[args.size()])));
-        System.out.println(o.getCommandLine());
-        Assert.assertFalse(new DynamicPropagationParent().parseArgs(new String[]{"-h"}));
-        new CommandLineParser(o).htmlUsage(System.err, o.getClass().getSimpleName(), false);
-
-        Assert.assertEquals(o.CHILD.STRING1, "String1ParentDefault");
-        Assert.assertEquals(o.CHILD.STRING2, "String2ChildDefault");
-        Assert.assertEquals(o.CHILD.STRING3, "String3Parent");
-        Assert.assertEquals(o.CHILD.STRING4, "String4Child");
-        Assert.assertEquals(o.CHILD.STRING5, "String5Child");
-        Assert.assertEquals(o.CHILD.COLLECTION, new ArrayList<String>());
-    }
-
-    class NegativePropagationParent {
-        @Option
-        public int STRING1 = 1;
-
-
-        @Option
-        public List<String> COLLECTION;
-
-        @NestedOptions
-        public PropagationChild CHILD = new PropagationChild();
-    }
-
-    /** parent and child option of the same name are not type-compatible. */
-    @Test(expectedExceptions = {IllegalArgumentException.class})
-    public void testStaticPropagationNegative() {
-        final NegativePropagationParent o = new NegativePropagationParent();
-        final CommandLineParser clp = new CommandLineParser(o);
-        clp.usage(System.out, false);
-
-        clp.parseOptions(System.err, new String[0]);
-    }
-}
diff --git a/src/tests/java/net/sf/picard/filter/FailsVendorReadQualityFilterTest.java b/src/tests/java/net/sf/picard/filter/FailsVendorReadQualityFilterTest.java
deleted file mode 100644
index 0e991f9..0000000
--- a/src/tests/java/net/sf/picard/filter/FailsVendorReadQualityFilterTest.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.filter;
-
-import org.testng.annotations.Test;
-import org.testng.annotations.DataProvider;
-import org.testng.Assert;
-import net.sf.samtools.SAMRecordSetBuilder;
-import net.sf.samtools.SAMRecord;
-
-public class FailsVendorReadQualityFilterTest {
-
-    private final SAMRecordSetBuilder builder = new SAMRecordSetBuilder();
-    private final FailsVendorReadQualityFilter filter = new FailsVendorReadQualityFilter();
-
-    /**
-     * Basic positive and negative tests for the FailsReadQualityFilter
-     *
-     * @param readQualityFlag   The read quality flag to be tested
-     * @param expectedResult    The expected result (true is the sequence should match the filter, otherwise false)
-     */
-    @Test(dataProvider="data")
-    public void testFailsReadQualityFilter(final String testName, final boolean readQualityFlag,
-                                           final boolean expectedResult) {
-        builder.addUnmappedFragment("testfrag");
-        final SAMRecord record = builder.iterator().next();
-        record.setReadFailsVendorQualityCheckFlag(readQualityFlag);
-        Assert.assertEquals(filter.filterOut(record), expectedResult, testName);
-    }
-
-
-    /**
-     * Data for various sequences which may or may not match the filter.
-     */
-    @DataProvider(name = "data")
-    private Object[][] getFailsReadQualityTestData()
-    {
-        return new Object[][]{
-            {"Failed read, should be filtered out", true, true},
-            {"Passing read, should not be filtered out", false, false},
-        };
-    }
-
-}
diff --git a/src/tests/java/net/sf/picard/filter/SolexaNoiseFilterTest.java b/src/tests/java/net/sf/picard/filter/SolexaNoiseFilterTest.java
deleted file mode 100644
index f0b69e8..0000000
--- a/src/tests/java/net/sf/picard/filter/SolexaNoiseFilterTest.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.filter;
-
-import org.testng.annotations.Test;
-import org.testng.annotations.DataProvider;
-import org.testng.Assert;
-import net.sf.samtools.SAMRecordSetBuilder;
-import net.sf.samtools.SAMRecord;
-
-/**
- * Basic test for the SolexaNoiseFilter
- */
-public class SolexaNoiseFilterTest {
-
-    private final SAMRecordSetBuilder builder = new SAMRecordSetBuilder();
-    private final SolexaNoiseFilter filter = new SolexaNoiseFilter();
-
-    /**
-     * Basic positive and negative tests for the PolyANoiseFilter
-     *
-     * @param sequence          The sequence to be tested
-     * @param expectedResult    The expected result (true is the sequence should match the filter, otherwise false)
-     */
-    @Test(dataProvider="data")
-    public void testSolexaNoiseFilter(final String testName, final String sequence, final boolean expectedResult) {
-        builder.addUnmappedFragment("testfrag");
-        final SAMRecord record = builder.iterator().next();
-        record.setReadString(sequence);
-        Assert.assertEquals(filter.filterOut(record), expectedResult, testName);
-    }
-
-
-    /**
-     * Data for various sequences which may or may not match the filter.
-     */
-    @DataProvider(name = "data")
-    private Object[][] getSolexaNoiseTestData()
-    {
-        return new Object[][]{
-            {"36-base read all a's filter out", "AAAAAaaaaaAAAAAAAAAAAAAAAAAAAAaaaaaa", true},
-            {"36-base read with n, filter out", "AAAAAaaaaaAAAAAAAAAAAAAAAAAAAAaaaaan", true}, 
-            {"51-base read, final base mismatch", "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAT", false},
-            {"51-base read, middle base mismatch", "aaaaaaaaaaaaaaaaaaaaaaaaaaTaaaaaaaaaaaaaaaaaaaaaaaa", false},
-            {"76-base read, a's and n's, filter out",
-                    "aaaaaaaaaaaaaaaaaNNaaaaaaaaaaaaaaaaaaaaaanaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", true},
-            {"76-base doesn't match",
-                    "NNNATAAAnnnnnnnnnnTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT", false},
-        };
-    }
-
-}
diff --git a/src/tests/java/net/sf/picard/filter/TagFilterTest.java b/src/tests/java/net/sf/picard/filter/TagFilterTest.java
deleted file mode 100644
index 90a863b..0000000
--- a/src/tests/java/net/sf/picard/filter/TagFilterTest.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.filter;
-
-import net.sf.picard.sam.ReservedTagConstants;
-import org.testng.annotations.Test;
-import org.testng.annotations.DataProvider;
-import org.testng.Assert;
-
-import java.util.List;
-import java.util.Arrays;
-
-import net.sf.samtools.SAMRecordSetBuilder;
-import net.sf.samtools.SAMRecord;
-
-/**
- * Tests for the TagFilter class
- */
-public class TagFilterTest {
-    private final SAMRecordSetBuilder builder = new SAMRecordSetBuilder();
-
-
-    /**
-     * Basic positive and negative tests for the TagFilter
-     *
-     * @param tag               The tag to be tested
-     * @param validValues       The values the filter should test for
-     * @param testValue         The value to test for in the record
-     * @param expectedResult    The expected result (true is the sequence should match the filter, otherwise false)
-     */
-    @Test(dataProvider="data")
-    public void testTagFilter(final String testName, final String tag, final List<Object> validValues,
-                              final Object testValue, final boolean expectedResult) {
-        final TagFilter filter = new TagFilter(tag, validValues);
-        builder.addUnmappedFragment("testfrag");
-        final SAMRecord record = builder.iterator().next();
-        if (testValue != null) {
-            record.setAttribute(tag, testValue);
-        }
-        Assert.assertEquals(filter.filterOut(record), expectedResult, testName);
-    }
-
-
-    /**
-     * Data for various sequences which may or may not match the filter.
-     */
-    @DataProvider(name = "data")
-    private Object[][] getTagFilterTestData()
-    {
-        return new Object[][]{
-            {"Basic positive test", ReservedTagConstants.XN, Arrays.asList(1), 1, true},
-            {"Multi-value positive test", ReservedTagConstants.XN, Arrays.asList(1,2,3), 1, true},
-            {"Incorrect value negative test", ReservedTagConstants.XN, Arrays.asList(1), 2, false},
-            {"Null value negative test", ReservedTagConstants.XN, Arrays.asList(1), null, false} 
-        };
-    }
-}
\ No newline at end of file
diff --git a/src/tests/java/net/sf/picard/illumina/CheckIlluminaDirectoryTest.java b/src/tests/java/net/sf/picard/illumina/CheckIlluminaDirectoryTest.java
deleted file mode 100644
index bb9cef5..0000000
--- a/src/tests/java/net/sf/picard/illumina/CheckIlluminaDirectoryTest.java
+++ /dev/null
@@ -1,388 +0,0 @@
-package net.sf.picard.illumina;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.cmdline.StandardOptionDefinitions;
-import net.sf.picard.illumina.parser.IlluminaDataType;
-import net.sf.picard.illumina.parser.IlluminaFileUtil;
-import net.sf.picard.illumina.parser.IlluminaFileUtilTest;
-import net.sf.picard.io.IoUtil;
-import net.sf.samtools.util.CloserUtil;
-import org.broad.tribble.index.Index;
-import org.testng.Assert;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.RandomAccessFile;
-import java.nio.ByteOrder;
-import java.nio.MappedByteBuffer;
-import java.nio.channels.FileChannel;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import static net.sf.picard.illumina.parser.IlluminaDataType.*;
-import static net.sf.picard.illumina.parser.IlluminaFileUtil.SupportedIlluminaFormat;
-import static net.sf.picard.illumina.parser.IlluminaFileUtil.SupportedIlluminaFormat.*;
-import static net.sf.samtools.util.CollectionUtil.makeList;
-
-
-public class CheckIlluminaDirectoryTest {
-
-    private File illuminaDir;
-    private File dataDir;
-    private File interopDir;
-    private File intensityDir;
-    private File basecallDir;
-
-    @BeforeMethod
-    private void setUp() throws Exception {
-        illuminaDir = IoUtil.createTempDir("ift_test", "IlluminaDir");
-
-        interopDir = new File(illuminaDir, "InterOp");
-        if (!interopDir.mkdir()) {
-            throw new RuntimeException("Couldn't make interop dir " + interopDir.getAbsolutePath());
-        }
-
-        dataDir = new File(illuminaDir, "Data");
-        if (!dataDir.mkdir()) {
-            throw new RuntimeException("Couldn't make data dir " + dataDir.getAbsolutePath());
-        }
-
-        intensityDir = new File(dataDir, "Intensities");
-        if (!intensityDir.mkdir()) {
-            throw new RuntimeException("Couldn't make intensity dir " + intensityDir.getAbsolutePath());
-        }
-
-        basecallDir = new File(intensityDir, "BaseCalls");
-        if (!basecallDir.mkdir()) {
-            throw new RuntimeException("Couldn't make basecalls dir " + basecallDir.getAbsolutePath());
-        }
-    }
-
-    @AfterMethod
-    private void tearDown() {
-        IoUtil.deleteDirectoryTree(intensityDir);
-    }
-
-    public void makeFiles(final SupportedIlluminaFormat[] formats, final int lane, final List<Integer> tiles,
-                          final int[] cycles) {
-        for (final IlluminaFileUtil.SupportedIlluminaFormat format : formats) {
-            IlluminaFileUtilTest.makeFiles(format, intensityDir, lane, tiles, cycles);
-        }
-    }
-
-    public String[] makeCheckerArgs(final File basecallDir, final int lane, final String readStructure,
-                                    final IlluminaDataType[] dataTypes, final List<Integer> filterTiles,
-                                    final boolean makeFakeFiles, final boolean createSymLinks) {
-        final String[] dataTypeArgs = new String[dataTypes.length + filterTiles.size() + 5];
-
-        dataTypeArgs[0] = "B=" + basecallDir;
-        dataTypeArgs[1] = StandardOptionDefinitions.LANE_SHORT_NAME + "=" + lane;
-        dataTypeArgs[2] = "RS=" + readStructure;
-        dataTypeArgs[3] = "F=" + makeFakeFiles;
-        dataTypeArgs[4] = "X=" + createSymLinks;
-
-        for (int i = 0; i < dataTypes.length; i++) {
-            dataTypeArgs[i + 5] = "DT=" + dataTypes[i];
-        }
-
-        if (filterTiles.size() > 0) {
-            final int start = dataTypes.length + 5;
-            for (int i = start; i < dataTypeArgs.length; i++) {
-                dataTypeArgs[i] = "T=" + filterTiles.get(i - start);
-            }
-        }
-
-        return dataTypeArgs;
-    }
-
-    public File writeTileMetricsOutFile(final Map<Integer, List<Integer>> lanesToTiles) {
-        return writeTileMetricsOutFile(interopDir, (byte) 2, (byte) 10, lanesToTiles);
-    }
-
-    public File writeTileMetricsOutFile(final File interopDir, final byte versionNumber, final byte recordSize,
-                                        final Map<Integer, List<Integer>> lanesToTiles) {
-        final File tileMetricsOut = new File(interopDir, "TileMetricsOut.bin");
-        if (!tileMetricsOut.exists()) {
-            try {
-                if (!tileMetricsOut.createNewFile()) {
-                    throw new PicardException(
-                            "Could not create tileMetricsOut file(" + tileMetricsOut.getAbsolutePath() + ")");
-                }
-            } catch (final IOException e) {
-                throw new PicardException(
-                        "IOException creating tileMetricsOut file (" + tileMetricsOut + ") for writing!", e);
-            }
-        }
-
-        int totalEntries = 0;
-        for (final Map.Entry<Integer, List<Integer>> l2t : lanesToTiles.entrySet()) {
-            totalEntries += l2t.getValue().size();
-        }
-
-        final MappedByteBuffer buf;
-        try {
-            final RandomAccessFile raf = new RandomAccessFile(tileMetricsOut, "rw");
-            final FileChannel channel = raf.getChannel();
-            buf = channel.map(FileChannel.MapMode.READ_WRITE, 0, 2 + 10 * totalEntries);
-            buf.order(ByteOrder.LITTLE_ENDIAN);
-
-            buf.put(versionNumber);
-            buf.put(recordSize);
-
-            for (final int lane : lanesToTiles.keySet()) {
-                for (final int tile : lanesToTiles.get(lane)) {
-                    buf.putShort((short) lane);
-                    buf.putShort((short) tile);
-                    buf.putShort((short) 0);
-                    buf.putFloat(0F);
-                }
-            }
-
-            buf.force();
-            CloserUtil.close(channel);
-            CloserUtil.close(raf);
-        } catch (final IOException e) {
-            throw new PicardException("IOException writing tileMetricsOut file (" + tileMetricsOut + ")", e);
-        }
-
-        return tileMetricsOut;
-    }
-
-    public static Map<Integer, List<Integer>> makeMap(final List<Integer> lanes, final List<List<Integer>> tiles) {
-        final Map<Integer, List<Integer>> map = new HashMap<Integer, List<Integer>>();
-
-        if (lanes.size() != tiles.size()) {
-            throw new IllegalArgumentException("Number of lanes (" + lanes + ") does not equal number of tiles!");
-        }
-
-        for (int i = 0; i < lanes.size(); i++) {
-            map.put(lanes.get(i), tiles.get(i));
-        }
-
-        return map;
-    }
-
-    @DataProvider(name = "positiveTestData")
-    public Object[][] positiveTestData() {
-        return new Object[][]{
-                {
-                        new SupportedIlluminaFormat[]{Bcl, Locs, Pos, Filter},
-                        new IlluminaDataType[]{BaseCalls, IlluminaDataType.QualityScores, IlluminaDataType.Position,
-                                IlluminaDataType.PF},
-                        3, makeList(1101, 1201, 1301, 2101, 2201, 2301), IlluminaFileUtilTest.cycleRange(1, 50),
-                        "25T25T", new ArrayList<Integer>()
-                },
-                {
-                        new SupportedIlluminaFormat[]{Bcl, Locs, Filter},
-                        new IlluminaDataType[]{BaseCalls, IlluminaDataType.QualityScores, IlluminaDataType.Position,
-                                IlluminaDataType.PF},
-                        2, makeList(1101, 1201, 1301, 2101, 2201, 2301), IlluminaFileUtilTest.cycleRange(1, 50),
-                        "8S15T8S", new ArrayList<Integer>()
-                },
-                {
-                        new SupportedIlluminaFormat[]{Bcl, Filter},
-                        new IlluminaDataType[]{BaseCalls, IlluminaDataType.QualityScores, IlluminaDataType.PF},
-                        2, makeList(1101, 1201, 1301, 2101, 2201, 2301), IlluminaFileUtilTest.cycleRange(1, 152),
-                        "68T8B68T", new ArrayList<Integer>()
-                },
-                {
-                        new SupportedIlluminaFormat[]{Bcl, Pos, Filter},
-                        new IlluminaDataType[]{BaseCalls, IlluminaDataType.QualityScores, IlluminaDataType.Position,
-                                IlluminaDataType.PF},
-                        5, makeList(1101, 1201, 1301, 2101, 2201, 2301), IlluminaFileUtilTest.cycleRange(1, 50),
-                        "25T25T", new ArrayList<Integer>()
-                },
-                {
-                        new SupportedIlluminaFormat[]{Bcl, Pos, Filter},
-                        new IlluminaDataType[]{BaseCalls, IlluminaDataType.QualityScores, IlluminaDataType.Position,
-                                IlluminaDataType.PF},
-                        5, makeList(1101, 1201, 1301, 2101, 2201, 2301), IlluminaFileUtilTest.cycleRange(1, 50),
-                        "25T25T", makeList(1301, 2101)
-                }
-        };
-    }
-
-    //Note: The positiveTest and negativeTests don't actually test Qseqs (the Qseq in the first test case above is there to make sure
-    //BCLs are preferred over Qseqs)
-
-    @Test(dataProvider = "positiveTestData")
-    public void positiveTests(final IlluminaFileUtil.SupportedIlluminaFormat[] formats,
-                              final IlluminaDataType[] dataTypes,
-                              final int lane,
-                              final List<Integer> tiles,
-                              final int[] cycles,
-                              final String readStructure,
-                              final List<Integer> filterTiles) {
-        makeFiles(formats, lane, tiles, cycles);
-        writeTileMetricsOutFile(makeMap(makeList(lane - 1, lane + 1, lane),
-                makeList(makeList(1, 2, 3), tiles, tiles)));
-
-        final String[] args = makeCheckerArgs(basecallDir, lane, readStructure, dataTypes, filterTiles, false, false);
-        final int result = new CheckIlluminaDirectory().instanceMain(args);
-        Assert.assertEquals(result, 0);
-    }
-
-    @DataProvider(name = "negativeTestData")
-    public Object[][] negativeTestData() {
-        return new Object[][]{
-                { //Completely missing data types
-                        new SupportedIlluminaFormat[]{Bcl, Filter},
-                        new IlluminaDataType[]{BaseCalls, IlluminaDataType.QualityScores, IlluminaDataType.PF,
-                                IlluminaDataType.Position, IlluminaDataType.Barcodes},
-                        new ArrayList<String>(),
-                        new ArrayList<String>(),
-                        2, makeList(1101, 1201, 1301, 2101, 2201, 2301), IlluminaFileUtilTest.cycleRange(1, 152),
-                        "68T8B68T",
-                        2, new ArrayList<Integer>(), true
-                },
-                {
-                        new SupportedIlluminaFormat[]{Bcl, Filter},
-                        new IlluminaDataType[]{BaseCalls, IlluminaDataType.QualityScores, IlluminaDataType.PF},
-                        makeList("BaseCalls/L002/C13.1/s_2_1201.bcl", "BaseCalls/L002/C13.1/s_2_2101.bcl"),
-                        makeList("BaseCalls/L002/s_2_2101.filter"),
-                        2, makeList(1101, 1201, 1301, 2101, 2201, 2301), IlluminaFileUtilTest.cycleRange(1, 20), "13T",
-                        3, new ArrayList<Integer>(), true
-                },
-                {
-                        new SupportedIlluminaFormat[]{Bcl, Filter},
-                        new IlluminaDataType[]{BaseCalls, IlluminaDataType.QualityScores, IlluminaDataType.PF},
-                        new ArrayList<String>(),
-                        new ArrayList<String>(),
-                        5, makeList(1101, 1201, 1301, 2101, 2201, 2301), IlluminaFileUtilTest.cycleRange(1, 152),
-                        "250T",
-                        98, new ArrayList<Integer>(), true
-                },
-                {
-                        new SupportedIlluminaFormat[]{Bcl, Filter},
-                        new IlluminaDataType[]{BaseCalls, IlluminaDataType.QualityScores, IlluminaDataType.PF},
-                        new ArrayList<String>(),
-                        new ArrayList<String>(),
-                        5, makeList(1101, 1201, 1301, 2101, 2201, 2301), IlluminaFileUtilTest.cycleRange(1, 152),
-                        "250T",
-                        98, makeList(1301, 2201), true
-                }
-        };
-    }
-
-    @Test(dataProvider = "negativeTestData")
-    public void negativeTests(final IlluminaFileUtil.SupportedIlluminaFormat[] formats,
-                              final IlluminaDataType[] dataTypes,
-                              final List<String> filesToDelete,
-                              final List<String> filesToEmpty,
-                              final int lane,
-                              final List<Integer> tiles,
-                              final int[] cycles,
-                              final String readStructure,
-                              final int expectedNumErrors,
-                              final List<Integer> filterTiles,
-                              final boolean makeFakeFiles) {
-        makeFiles(formats, lane, tiles, cycles);
-        IlluminaFileUtilTest.deleteRelativeFiles(intensityDir, filesToDelete);
-        IlluminaFileUtilTest.emptyRelativeFiles(intensityDir, filesToEmpty);
-        writeTileMetricsOutFile(makeMap(makeList(lane - 1, lane + 1, lane), makeList(makeList(1, 2, 3), tiles, tiles)));
-
-        final String[] args =
-                makeCheckerArgs(basecallDir, lane, readStructure, dataTypes, filterTiles, makeFakeFiles, false);
-        int result = new CheckIlluminaDirectory().instanceMain(args);
-        Assert.assertEquals(expectedNumErrors, result);
-        //if we previously faked files make sure CheckIlluminaDirectory returns with no failures
-        if (makeFakeFiles) {
-            result = new CheckIlluminaDirectory().instanceMain(args);
-            Assert.assertEquals(0, result);
-        }
-    }
-
-    public void writeFileOfSize(final File file, final int size) {
-        try {
-            final BufferedWriter writer = new BufferedWriter(new FileWriter(file));
-            for (int i = 0; i < size; i++) {
-                final int toWrite = Math.min(1000, size);
-                final char[] writeBuffer = new char[toWrite];
-                for (int j = 0; j < writeBuffer.length; j++) {
-                    writeBuffer[j] = (char) (Math.random() * 150);
-                }
-
-                writer.write(writeBuffer);
-            }
-            writer.flush();
-            writer.close();
-        } catch (final Exception exc) {
-            throw new RuntimeException(exc);
-        }
-    }
-
-    @Test
-    public void differentSizedBclTest() {
-        final SupportedIlluminaFormat[] formats = new SupportedIlluminaFormat[]{Bcl, Filter};
-        final int lane = 5;
-        final List<Integer> tiles = makeList(1, 2, 3, 4);
-        final int[] cycles = IlluminaFileUtilTest.cycleRange(1, 50);
-        final IlluminaDataType[] dataTypes = new IlluminaDataType[]{BaseCalls, IlluminaDataType.QualityScores};
-
-        makeFiles(new SupportedIlluminaFormat[]{Bcl, Filter}, lane, tiles, cycles);
-        writeTileMetricsOutFile(makeMap(makeList(lane - 1, lane + 1, lane),
-                makeList(makeList(1, 2, 3), tiles, tiles)));
-
-        final File cycleDir = new File(basecallDir, "L005/C9.1");
-        writeFileOfSize(new File(cycleDir, "s_5_3.bcl"), 222);
-
-        final String[] args =
-                makeCheckerArgs(basecallDir, lane, "50T", dataTypes, new ArrayList<Integer>(), false, false);
-        final int result = new CheckIlluminaDirectory().instanceMain(args);
-        Assert.assertEquals(1, result);
-    }
-
-    @Test(expectedExceptions = PicardException.class)
-    public void basedirDoesntExistTest() {
-        final String[] args = makeCheckerArgs(new File("a_made_up_file/in_some_weird_location"), 1, "76T76T",
-                new IlluminaDataType[]{IlluminaDataType.Position},
-                new ArrayList<Integer>(), false, false);
-
-        final int result = new CheckIlluminaDirectory().instanceMain(args);
-    }
-
-    @Test
-    public void symlinkLocsTest() {
-        final List<Integer> tileList = makeList(1101, 1102, 1103, 2101, 2102, 2103);
-        final int lane = 5;
-        makeFiles(new SupportedIlluminaFormat[]{Bcl}, lane, tileList, IlluminaFileUtilTest.cycleRange(1, 50));
-        String[] args =
-                makeCheckerArgs(basecallDir, lane, "50T", new IlluminaDataType[]{Position}, new ArrayList<Integer>(),
-                        false,
-                        true);
-        writeTileMetricsOutFile(makeMap(makeList(lane), makeList(tileList)));
-
-        createSingleLocsFile();
-        final File intensityLaneDir = new File(intensityDir, IlluminaFileUtil.longLaneStr(lane));
-        intensityLaneDir.mkdirs();
-        int result = new CheckIlluminaDirectory().instanceMain(args);
-        Assert.assertEquals(result, 0);
-        //now that we have created the loc files lets test to make sure they are there
-        args = makeCheckerArgs(basecallDir, lane, "50T", new IlluminaDataType[]{IlluminaDataType.Position},
-                new ArrayList<Integer>(), false,
-                true);
-
-        result = new CheckIlluminaDirectory().instanceMain(args);
-        Assert.assertEquals(result, 0);
-    }
-
-    private void createSingleLocsFile() {
-        try {
-            final File singleLocsFile = new File(intensityDir, "s.locs");
-            final FileWriter writer = new FileWriter(singleLocsFile);
-            writer.write("This is a test string.");
-            writer.close();
-        } catch (final IOException e) {
-            e.printStackTrace();
-        }
-
-    }
-}
diff --git a/src/tests/java/net/sf/picard/illumina/ExtractIlluminaBarcodesTest.java b/src/tests/java/net/sf/picard/illumina/ExtractIlluminaBarcodesTest.java
deleted file mode 100644
index dd71d57..0000000
--- a/src/tests/java/net/sf/picard/illumina/ExtractIlluminaBarcodesTest.java
+++ /dev/null
@@ -1,315 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.illumina;
-
-import net.sf.picard.illumina.parser.readers.BclQualityEvaluationStrategy;
-import net.sf.picard.util.BasicInputParser;
-import org.testng.annotations.BeforeTest;
-import org.testng.annotations.AfterTest;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-import org.testng.Assert;
-
-import java.io.File;
-import java.io.FileReader;
-import java.util.Arrays;
-import java.util.List;
-import java.util.ArrayList;
-
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.metrics.MetricsFile;
-import net.sf.picard.illumina.parser.*;
-
-/**
- * @author alecw at broadinstitute.org
- */
-public class ExtractIlluminaBarcodesTest {
-    private static final File SINGLE_DATA_DIR = new File("testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls");
-    private static final File DUAL_DATA_DIR = new File("testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls");
-    private static final String[] BARCODES = {
-            "CAACTCTC",
-            "CAACTCTG", // This one is artificial -- one edit away from the first one
-            "ACAGGTAT",
-            "GACCGTTG",
-            "ATTATCAA",
-            "TGCTGCTG",
-            "AACAATGG",
-            "TGTAATCA",
-            "GCCGTCGA",
-            "GTCCACAG",
-            "TTGTCTAT",
-            "GTGGAGAC",
-            "TTGCAAAT"
-    };
-
-    private File basecallsDir;
-    private File dual;
-    private File qual;
-
-    @BeforeTest
-    private void setUp() throws Exception {
-        basecallsDir = File.createTempFile("eib.", ".tmp");
-        Assert.assertTrue(basecallsDir.delete());
-        Assert.assertTrue(basecallsDir.mkdir());
-        IoUtil.copyDirectoryTree(SINGLE_DATA_DIR, basecallsDir);
-        dual = File.createTempFile("eib_dual", ".tmp");
-        Assert.assertTrue(dual.delete());
-        Assert.assertTrue(dual.mkdir());
-        IoUtil.copyDirectoryTree(DUAL_DATA_DIR, dual);
-        qual = File.createTempFile("eib_qual", ".tmp");
-        Assert.assertTrue(qual.delete());
-        Assert.assertTrue(qual.mkdir());
-        IoUtil.copyDirectoryTree(DUAL_DATA_DIR, qual);
-    }
-
-    @AfterTest
-    private void tearDown() {
-        IoUtil.deleteDirectoryTree(basecallsDir);
-        IoUtil.deleteDirectoryTree(dual);
-        IoUtil.deleteDirectoryTree(qual);
-    }
-
-    @Test
-    public void testSingleEndWithBarcodeAtStart() throws Exception {
-        final MetricsFile<ExtractIlluminaBarcodes.BarcodeMetric, Integer> metricsFile = runIt(1, "8B25T");
-        Assert.assertEquals(metricsFile.getMetrics().get(11).PERFECT_MATCHES, 1);
-    }
-
-    @Test
-    public void testSingleEndWithBarcodeAtEnd() throws Exception {
-        final MetricsFile<ExtractIlluminaBarcodes.BarcodeMetric, Integer> metricsFile = runIt(1, "25T8B");
-        Assert.assertEquals(metricsFile.getMetrics().get(0).PERFECT_MATCHES, 5);
-    }
-
-    @Test
-    public void testPairedEndWithBarcodeOnFirstEnd() throws Exception {
-        final MetricsFile<ExtractIlluminaBarcodes.BarcodeMetric, Integer> metricsFile = runIt(1, "25T8B25T");
-        Assert.assertEquals(metricsFile.getMetrics().get(0).PERFECT_MATCHES, 5);
-    }
-
-    @Test
-    public void testPairedEndWithBarcodeOnSecondEnd() throws Exception {
-        final MetricsFile<ExtractIlluminaBarcodes.BarcodeMetric, Integer> metricsFile = runIt(1, "25T25T8B");
-        Assert.assertEquals(metricsFile.getMetrics().get(12).PERFECT_MATCHES, 1);
-    }
-
-    @Test
-    public void testNonWritableOutputFile() throws Exception {
-        final File existingFile = new File(basecallsDir, "s_1_1101_barcode.txt.gz");
-        try {
-            existingFile.setReadOnly();
-            final String readStructure = "25T8B25T";
-            final int lane = 1;
-
-            final File metricsFile = File.createTempFile("eib.", ".metrics");
-            metricsFile.deleteOnExit();
-
-            final List<String> args = new ArrayList<String>(Arrays.asList(
-                    "BASECALLS_DIR=" + basecallsDir.getPath(),
-                    "LANE=" + lane,
-                    "READ_STRUCTURE=" + readStructure,
-                    "METRICS_FILE=" + metricsFile.getPath(),
-                    "COMPRESS_OUTPUTS=true"
-            ));
-            for (final String barcode : BARCODES) {
-                args.add("BARCODE=" + barcode);
-            }
-            Assert.assertEquals(new ExtractIlluminaBarcodes().instanceMain(args.toArray(new String[args.size()])), 4);
-        }
-        finally {
-            existingFile.setWritable(true);
-        }
-
-    }
-
-    /**
-     * 4 cases tested:
-     * * exact match to ACAGTG
-     * * inexact match within threshold to TGACCA
-     * * inexact match not within threshold to TGACCA
-     * * inexact match where the next match is too close to ACAGTG
-     * @throws Exception
-     */
-    @Test
-    public void testBarcodeMatching() throws Exception {
-        final int lane = 1;
-        final int barcodePosition = 26;
-        final MetricsFile<ExtractIlluminaBarcodes.BarcodeMetric, Integer> metricsFile = runIt(lane, "25T8B25T");
-
-        ExtractIlluminaBarcodes.BarcodeMetric metricOne = null;
-        ExtractIlluminaBarcodes.BarcodeMetric metricTwo = null;
-        ExtractIlluminaBarcodes.BarcodeMetric metricNoMatch = null;
-        for (final ExtractIlluminaBarcodes.BarcodeMetric metric : metricsFile.getMetrics()) {
-            if (metric.BARCODE.equals(BARCODES[0])) {
-                metricOne = metric;
-            } else if (metric.BARCODE.equals(BARCODES[2])) {
-                metricTwo = metric;
-            } else if (metric.BARCODE.equals("NNNNNNNN")) {
-                metricNoMatch = metric;
-            }
-        }
-        Assert.assertEquals(metricOne.PERFECT_MATCHES, 5);
-        Assert.assertEquals(metricOne.ONE_MISMATCH_MATCHES, 0);
-        Assert.assertEquals(metricOne.PF_READS, 3);
-        Assert.assertEquals(metricOne.READS, 5);
-
-        // one inexact match
-        Assert.assertEquals(metricTwo.READS, 4);
-        Assert.assertEquals(metricTwo.ONE_MISMATCH_MATCHES, 0);
-
-        Assert.assertEquals(metricNoMatch.READS, 140);
-        Assert.assertEquals(metricNoMatch.PF_READS, 112);
-
-        // Check the barcode files themselves
-        final File[] barcodeFiles = IoUtil.getFilesMatchingRegexp(basecallsDir, "s_" + lane + "_\\d{4}_barcode.txt");
-        Arrays.sort(barcodeFiles);
-
-        final BasicInputParser barcodeParser = new BasicInputParser(true, barcodeFiles);
-
-        // Exact match
-        String[] illuminaFields = barcodeParser.next();
-        Assert.assertEquals(illuminaFields[1], "Y");
-        Assert.assertEquals(illuminaFields[2], "CAACTCTC");
-
-        // Inexact match
-        illuminaFields = barcodeParser.next();
-        Assert.assertEquals(illuminaFields[1], "Y");
-        Assert.assertEquals(illuminaFields[2], "ACAGGTAT");
-
-        // Too many mismatches
-        illuminaFields = barcodeParser.next();
-        Assert.assertEquals(illuminaFields[1], "N");
-
-        barcodeParser.close();
-
-        // Tack on test of barcode-informed Illumina Basecall parsing
-        final ReadStructure rs = new ReadStructure("25T8B25T");
-        final IlluminaDataProviderFactory factory = new IlluminaDataProviderFactory(basecallsDir, lane, rs,
-                new BclQualityEvaluationStrategy(BclQualityEvaluationStrategy.ILLUMINA_ALLEGED_MINIMUM_QUALITY),
-                IlluminaDataType.BaseCalls, IlluminaDataType.QualityScores, IlluminaDataType.Barcodes);
-        testParsing(factory, rs, metricOne, barcodePosition);
-    }
-
-    @Test
-    public void testDualBarcodes() throws Exception {
-        final File metricsFile = File.createTempFile("dual.", ".metrics");
-        metricsFile.deleteOnExit();
-
-        final List<String> args = new ArrayList<String>(Arrays.asList(
-                "BASECALLS_DIR=" + dual.getAbsolutePath(),
-                "LANE=" + 1,
-                "METRICS_FILE=" + metricsFile.getPath(),
-                "READ_STRUCTURE=" + "25T8B8B25T"
-                ));
-
-        args.add("BARCODE=" + "CAATAGTCCGACTCTC");
-
-        Assert.assertEquals(new ExtractIlluminaBarcodes().instanceMain(args.toArray(new String[args.size()])), 0);
-        final MetricsFile<ExtractIlluminaBarcodes.BarcodeMetric,Integer> result =  new MetricsFile<ExtractIlluminaBarcodes.BarcodeMetric,Integer>();
-        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");
-    }
-
-    /**
-     *  Testing the quality thresholding. Looking at a single barcode (ACAGTG) with a min quality of 25 and no mismatches
-     */
-    @Test(dataProvider = "qualityBarcodeData")
-    public void testQualityBarcodes(final int quality,
-                                    final int maxMismatches, final int perfectMatches, final int oneMismatch,
-                                    final String testName) throws Exception {
-        final File metricsFile = File.createTempFile("qual.", ".metrics");
-        metricsFile.deleteOnExit();
-
-        final List<String> args = new ArrayList<String>(Arrays.asList(
-                "BASECALLS_DIR=" + qual.getPath(),
-                "LANE=" + 1,
-                "READ_STRUCTURE=25T8B25T",
-                "METRICS_FILE=" + metricsFile.getPath(),
-                "MINIMUM_BASE_QUALITY=" + quality,
-                "MAX_MISMATCHES=" + maxMismatches,
-                "BARCODE=CAATAGTC"
-        ));
-
-        Assert.assertEquals(new ExtractIlluminaBarcodes().instanceMain(args.toArray(new String[args.size()])), 0);
-        final MetricsFile<ExtractIlluminaBarcodes.BarcodeMetric,Integer> result =  new MetricsFile<ExtractIlluminaBarcodes.BarcodeMetric,Integer>();
-        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 + "'");
-    }
-
-    @DataProvider(name = "qualityBarcodeData")
-    public Object[][] getQualityTestData() {
-        return new Object[][] {
-                {16, 0, 1, 0, "Barcode has good quality, 1 match"},
-                {25, 0, 0, 0, "Barcode has quality failures, no matches"}
-        };
-    }
-
-    private void testParsing(final IlluminaDataProviderFactory factory, final ReadStructure readStructure, final ExtractIlluminaBarcodes.BarcodeMetric metricACAGTG, final int barcodePosition) {
-
-        int numReads = 0;
-
-        final IlluminaDataProvider dataProvider = factory.makeDataProvider();
-        while (dataProvider.hasNext()) {
-            final ClusterData cluster = dataProvider.next();
-
-            if(metricACAGTG.BARCODE.equals(cluster.getMatchedBarcode())) {
-                ++numReads;
-            }
-
-            Assert.assertEquals(cluster.getRead(readStructure.templates.getIndices()[0]).getQualities().length, barcodePosition - 1);
-            Assert.assertEquals(cluster.getRead(readStructure.templates.getIndices()[0]).getBases().length, barcodePosition - 1);
-        }
-        Assert.assertEquals(numReads, metricACAGTG.READS);
-        dataProvider.close();
-    }
-
-    private MetricsFile<ExtractIlluminaBarcodes.BarcodeMetric, Integer> runIt(final int lane, final String readStructure)
-            throws Exception {
-        final File metricsFile = File.createTempFile("eib.", ".metrics");
-        metricsFile.deleteOnExit();
-
-        final List<String> args = new ArrayList<String>(Arrays.asList(
-                "BASECALLS_DIR=" + basecallsDir.getPath(),
-                "LANE=" + lane,
-                "READ_STRUCTURE=" + readStructure,
-                "METRICS_FILE=" + metricsFile.getPath()
-        ));
-        for (final String barcode : BARCODES) {
-            args.add("BARCODE=" + barcode);
-        }
-        return runIt(args, metricsFile);
-    }
-
-    private MetricsFile<ExtractIlluminaBarcodes.BarcodeMetric, Integer> runIt(final List<String> args, final File metricsFile) throws Exception {
-
-        // Generate _barcode.txt files and metrics file.
-        Assert.assertEquals(new ExtractIlluminaBarcodes().instanceMain(args.toArray(new String[args.size()])), 0);
-
-        final MetricsFile<ExtractIlluminaBarcodes.BarcodeMetric,Integer> retval =  new MetricsFile<ExtractIlluminaBarcodes.BarcodeMetric,Integer>();
-        retval.read(new FileReader(metricsFile));
-        return retval;
-    }
-}
diff --git a/src/tests/java/net/sf/picard/illumina/IlluminaBasecallsToFastqTest.java b/src/tests/java/net/sf/picard/illumina/IlluminaBasecallsToFastqTest.java
deleted file mode 100644
index 1ffe88c..0000000
--- a/src/tests/java/net/sf/picard/illumina/IlluminaBasecallsToFastqTest.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.illumina;
-
-import net.sf.picard.illumina.parser.ReadStructure;
-import net.sf.picard.io.IoUtil;
-import net.sf.samtools.util.BufferedLineReader;
-import net.sf.samtools.util.LineReader;
-import net.sf.samtools.util.StringUtil;
-import net.sf.samtools.util.TestUtil;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.PrintWriter;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-public class IlluminaBasecallsToFastqTest {
-
-    private static final File BASECALLS_DIR = new File("testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls");
-    private static final File DUAL_BASECALLS_DIR = new File("testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls");
-    private static final File TEST_DATA_DIR = new File("testdata/net/sf/picard/illumina/25T8B25T/fastq");
-    private static final File DUAL_TEST_DATA_DIR = new File("testdata/net/sf/picard/illumina/25T8B8B25T/fastq");
-
-    @Test
-    public void testNonBarcoded() throws Exception {
-        final String suffix = ".1.fastq";
-        final File outputFastq1 = File.createTempFile("nonBarcoded.", suffix);
-        outputFastq1.deleteOnExit();
-        final String outputPrefix = outputFastq1.getAbsolutePath().substring(0, outputFastq1.getAbsolutePath().length() - suffix.length());
-        final File outputFastq2 = new File(outputPrefix + ".2.fastq");
-        outputFastq2.deleteOnExit();
-        final int lane = 1;
-        new IlluminaBasecallsToFastq().instanceMain(new String[]{
-                "BASECALLS_DIR=" + BASECALLS_DIR,
-                "LANE=" + lane,
-                "READ_STRUCTURE=25T8B25T",
-                "OUTPUT_PREFIX=" + outputPrefix,
-                "RUN_BARCODE=HiMom",
-                "MACHINE_NAME=machine1",
-                "FLOWCELL_BARCODE=abcdeACXX"
-        });
-        IoUtil.assertFilesEqual(outputFastq1, new File(TEST_DATA_DIR, "nonBarcoded.1.fastq"));
-        IoUtil.assertFilesEqual(outputFastq2, new File(TEST_DATA_DIR, "nonBarcoded.2.fastq"));
-    }
-
-    @Test
-    public void testMultiplexWithIlluminaReadNameHeaders() throws Exception {
-        final File outputDir = File.createTempFile("testMultiplexRH.", ".dir");
-        try {
-            outputDir.delete();
-            outputDir.mkdir();
-            outputDir.deleteOnExit();
-
-            final String filePrefix = "testMultiplexRH";
-            final File outputPrefix = new File(outputDir, filePrefix);
-
-            new IlluminaBasecallsToFastq().instanceMain(new String[]{
-                    "BASECALLS_DIR=" + BASECALLS_DIR,
-                    "LANE=" + 1,
-                    "RUN_BARCODE=HiMom",
-                    "READ_STRUCTURE=" + "25T8B25T",
-                    "OUTPUT_PREFIX=" + outputPrefix.getAbsolutePath(),
-                    "MACHINE_NAME=machine1",
-                    "FLOWCELL_BARCODE=abcdeACXX",
-                    "READ_NAME_FORMAT=" + IlluminaBasecallsToFastq.ReadNameFormat.ILLUMINA
-            });
-
-            final String[] filenames = new String[]{
-                filePrefix + ".1.fastq",
-                filePrefix + ".barcode_1.fastq"
-            };
-            for (String filename : filenames) {
-                IoUtil.assertFilesEqual(new File(outputDir, filename), new File(TEST_DATA_DIR, filename));
-            }
-
-        } finally {
-            TestUtil.recursiveDelete(outputDir);
-        }
-    }
-
-    @Test
-    public void testDeMultiplexed() throws Exception {
-        runStandardTest(1, "multiplexedBarcode.", "mp_barcode.params", 1, "25T8B25T", BASECALLS_DIR, TEST_DATA_DIR);
-    }
-
-    @Test
-    public void testDualBarcodes() throws Exception {
-        runStandardTest(1, "dualBarcode.", "barcode_double.params", 2, "25T8B8B25T", DUAL_BASECALLS_DIR, DUAL_TEST_DATA_DIR);
-    }
-
-    /**
-     * This test utility takes a libraryParamsFile and generates output sam files through IlluminaBasecallsToFastq to compare against
-     * preloaded test data
-     *
-     * @param jobName
-     * @param libraryParamsFile
-     * @param concatNColumnFields
-     * @param readStructureString
-     * @throws Exception
-     */
-    private void runStandardTest(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<File> outputPrefixes = new ArrayList<File>();
-            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();
-
-            new IlluminaBasecallsToFastq().instanceMain(new String[]{
-                    "BASECALLS_DIR=" + baseCallsDir,
-                    "LANE=" + lane,
-                    "RUN_BARCODE=HiMom",
-                    "READ_STRUCTURE=" + readStructureString,
-                    "MULTIPLEX_PARAMS=" + libraryParams,
-                    "MACHINE_NAME=machine1",
-                    "FLOWCELL_BARCODE=abcdeACXX"
-            });
-
-            final ReadStructure readStructure = new ReadStructure(readStructureString);
-            for (final File outputSam : outputPrefixes) {
-                for (int i = 1; i <= readStructure.templates.length(); ++i) {
-                    String filename = outputSam.getName() + "." + i + ".fastq";
-                    IoUtil.assertFilesEqual(new File(outputSam.getParentFile(), filename), new File(testDataDir, filename));
-                }
-                for (int i = 1; i <= readStructure.barcodes.length(); ++i) {
-                    String filename = outputSam.getName() + ".barcode_" + i + ".fastq";
-                    IoUtil.assertFilesEqual(new File(outputSam.getParentFile(), filename), new File(testDataDir, filename));
-                }
-            }
-        } finally {
-            TestUtil.recursiveDelete(outputDir);
-        }
-    }
-}
diff --git a/src/tests/java/net/sf/picard/illumina/IlluminaBasecallsToSamAdapterClippingTest.java b/src/tests/java/net/sf/picard/illumina/IlluminaBasecallsToSamAdapterClippingTest.java
deleted file mode 100644
index 4c2a863..0000000
--- a/src/tests/java/net/sf/picard/illumina/IlluminaBasecallsToSamAdapterClippingTest.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.illumina;
-
-import net.sf.samtools.*;
-import net.sf.picard.sam.ReservedTagConstants;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-import org.testng.annotations.DataProvider;
-
-import java.io.File;
-
-
-/**
- * Run IlluminaBasecallsToSam on a sample tests, then sanity-check the generated SAM file
- */
-public class IlluminaBasecallsToSamAdapterClippingTest {
-
-    private static final File TEST_DATA_DIR = new File("testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls");
-    private static final String ALIAS = "myalias";
-    private static final String RUN_BARCODE = "305PJAAXX080716";
-
-    /**
-     * Run IlluminaBasecallsToSam on a few test cases, and verify that results agree with hand-checked expectation.
-     */
-    @Test(dataProvider="data")
-    public void testBasic(final String LANE, final String readStructure) throws Exception {
-        // Create the SAM file from Gerald output
-        final File samFile = File.createTempFile("." + LANE + ".illuminaBasecallsToSam", ".sam");
-        samFile.deleteOnExit();
-        final String[] illuminaArgv = {
-                "BASECALLS_DIR=" + TEST_DATA_DIR,
-                "LANE=" + LANE,
-                "RUN_BARCODE=" + RUN_BARCODE,
-                "READ_STRUCTURE=" + readStructure,
-                "OUTPUT=" + samFile,
-                "ALIAS=" + ALIAS
-        };
-        Assert.assertEquals(new IlluminaBasecallsToSam().instanceMain(illuminaArgv), 0);
-
-        System.out.println ("Ouput Sam file is in " + samFile.getAbsolutePath());
-
-        // Read the file and confirm it contains what is expected
-        final SAMFileReader samReader = new SAMFileReader(samFile);
-
-        // look for clipped adaptor attribute in lane 3 PE (2) and in lane 6 (1) non-PE
-        int count = 0;   int matchCount = 0;
-        for (final SAMRecord record : samReader) {
-            if (record.getIntegerAttribute(ReservedTagConstants.XT) != null) {
-                count ++;
-                if ((count == 1 || count == 2) && LANE.equals("2")){
-                    Assert.assertEquals (114, (int)record.getIntegerAttribute(ReservedTagConstants.XT));
-                    matchCount++;
-                } else if (count == 1 || count == 2 && LANE.equals("1")) {
-                    Assert.assertEquals(68, (int) record.getIntegerAttribute(ReservedTagConstants.XT));
-                    matchCount++;
-                }
-            }
-        }
-        samReader.close();
-    }
-
-    @DataProvider(name="data")
-    private Object[][] getIlluminaBasecallsToSamTestData(){
-        return new Object[][] {
-                {"1", "125T125T"},
-                {"2", "125T125T"},
-        };
-    }
-
-
-}
\ No newline at end of file
diff --git a/src/tests/java/net/sf/picard/illumina/IlluminaBasecallsToSamTest.java b/src/tests/java/net/sf/picard/illumina/IlluminaBasecallsToSamTest.java
deleted file mode 100644
index b1d2c0f..0000000
--- a/src/tests/java/net/sf/picard/illumina/IlluminaBasecallsToSamTest.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.illumina;
-
-import net.sf.picard.io.IoUtil;
-import net.sf.samtools.util.BufferedLineReader;
-import net.sf.samtools.util.LineReader;
-import net.sf.samtools.util.StringUtil;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.PrintWriter;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * Run IlluminaBasecallsToSam in various barcode & non-barcode modes
- *
- * @author alecw at broadinstitute.org
- */
-public class IlluminaBasecallsToSamTest {
-
-    private static final File BASECALLS_DIR = new File("testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls");
-    private static final File DUAL_BASECALLS_DIR = new File("testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls");
-    private static final File TEST_DATA_DIR = new File("testdata/net/sf/picard/illumina/25T8B25T/sams");
-    private static final File DUAL_TEST_DATA_DIR = new File("testdata/net/sf/picard/illumina/25T8B8B25T/sams");
-    @Test
-    public void testTileNumberComparator() {
-        Assert.assertTrue(IlluminaBasecallsConverter.TILE_NUMBER_COMPARATOR.compare(100, 10) < 0, "");
-        Assert.assertTrue(IlluminaBasecallsConverter.TILE_NUMBER_COMPARATOR.compare(20, 200) > 0, "");
-        Assert.assertTrue(IlluminaBasecallsConverter.TILE_NUMBER_COMPARATOR.compare(10, 10) == 0, "");
-    }
-
-
-    @Test
-    public void testNonBarcoded() throws Exception {
-        final File outputBam = File.createTempFile("nonBarcoded.", ".sam");
-        outputBam.deleteOnExit();
-        final int lane = 1;
-        new IlluminaBasecallsToSam().instanceMain(new String[]{
-                "BASECALLS_DIR=" + BASECALLS_DIR,
-                "LANE=" + lane,
-                "READ_STRUCTURE=25S8S25T",
-                "OUTPUT=" + outputBam,
-                "RUN_BARCODE=HiMom",
-                "SAMPLE_ALIAS=HiDad",
-                "LIBRARY_NAME=Hello, World"
-        });
-        IoUtil.assertFilesEqual(outputBam, new File(TEST_DATA_DIR, "nonBarcoded.sam"));
-    }
-
-    @Test
-    public void testMultiplexed() throws Exception {
-        runStandardTest(1, "multiplexedBarcode.", "barcode.params", 1, "25T8B25T", BASECALLS_DIR, TEST_DATA_DIR);
-    }
-
-    //Same as testMultiplexed except we use BARCODE_1 instead of BARCODE
-    @Test
-    public void testMultiplexedWithAlternateBarcodeName() throws Exception {
-        runStandardTest(1, "singleBarcodeAltName.", "multiplexed_positive_rgtags.params", 1, "25T8B25T", BASECALLS_DIR, TEST_DATA_DIR);
-    }
-
-    @Test
-    public void testDualBarcodes() throws Exception {
-        runStandardTest(1, "dualBarcode.", "barcode_double.params", 1, "25T8B8B25T", DUAL_BASECALLS_DIR, DUAL_TEST_DATA_DIR);
-    }
-
-    /**
-     * Ensures that a run missing a barcode from the parameters file throws an error.
-     * 
-     * TODO: This testcase isn't broken, but can spawn an issue with FileChannelJDKBugWorkAround since it expects
-     * an exception to be thrown.
-     */
-    @Test(groups={"broken"})
-    public void testCorruptDataReturnCode() throws Exception {
-        boolean exceptionThrown = false;
-        try {
-            runStandardTest(9, "dualBarcode.", "negative_test.params", 2, "30T8B8B", BASECALLS_DIR, TEST_DATA_DIR);
-        } catch (Throwable e) {
-            exceptionThrown = true;
-        } finally {
-            Assert.assertTrue(exceptionThrown);
-        }
-    }
-
-    /**
-     * This test utility takes a libraryParamsFile and generates output sam files through IlluminaBasecallsToSam to compare against
-     * preloaded test data
-     *
-     * @param jobName
-     * @param libraryParamsFile
-     * @param concatNColumnFields
-     * @param readStructure
-     * @throws Exception
-     */
-    private void runStandardTest(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<File> samFiles = new ArrayList<File>();
-        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();
-
-        new IlluminaBasecallsToSam().instanceMain(new String[]{
-                "BASECALLS_DIR=" + baseCallsDir,
-                "LANE=" + lane,
-                "RUN_BARCODE=HiMom",
-                "READ_STRUCTURE=" + readStructure,
-                "LIBRARY_PARAMS=" + libraryParams
-        });
-
-        for (final File outputSam : samFiles) {
-            IoUtil.assertFilesEqual(outputSam, new File(testDataDir, outputSam.getName()));
-        }
-    }
-}
diff --git a/src/tests/java/net/sf/picard/illumina/ReadStructureTest.java b/src/tests/java/net/sf/picard/illumina/ReadStructureTest.java
deleted file mode 100644
index 4bd5cb5..0000000
--- a/src/tests/java/net/sf/picard/illumina/ReadStructureTest.java
+++ /dev/null
@@ -1,178 +0,0 @@
-package net.sf.picard.illumina;
-
-import net.sf.picard.illumina.parser.ReadStructure;
-import net.sf.picard.illumina.parser.ReadDescriptor;
-import net.sf.picard.illumina.parser.ReadType;
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.util.ArrayList;
-import java.util.List;
-import static net.sf.picard.illumina.parser.ReadType.*;
-import static net.sf.samtools.util.CollectionUtil.*;
-
-public class ReadStructureTest {
-
-    //to make construction of lists more intelligible
-    public ReadDescriptor rd(final int length, final ReadType rt) {
-        return new ReadDescriptor(length, rt);
-    }
-
-    //Many of these readStructures would be non-sensical but check different test classes/combinations
-    @DataProvider(name="validReadStructures")
-    public Object[][] validReadStructures() {
-        return new Object[][] {
-            {"2T",                    makeList(rd(2, T)),                 1, 0, 0},
-            {"1234B",                 makeList(rd(1234, B)),              0, 1, 0},
-            {Integer.MAX_VALUE + "S", makeList(rd(Integer.MAX_VALUE, S)), 0, 0, 1},
-
-            {"76T76T", makeList(rd(76, T), rd(76,  T)), 2, 0, 0},
-            {"76T1B",  makeList(rd(76, T), rd(1,   B)), 1, 1, 0},
-            {"76B1T",  makeList(rd(76, B), rd(1,   T)), 1, 1, 0},
-            {"1S1B",   makeList(rd(1,  S), rd(1,   B)), 0, 1, 1},
-            {"1T999S", makeList(rd(1,  T), rd(999, S)), 1, 0, 1},
-
-            {"100T20T100T",  makeList(rd(100, T),  rd(20,  T), rd(100,  T)),    3, 0, 0},
-            {"2S50S10S",     makeList(rd(2,   S),  rd(50,  S), rd(10,   S)),    0, 0, 3},
-            {"10T1B11T",     makeList(rd(10,  T),  rd(1,   B), rd(11,   T)),    2, 1, 0},
-            {"201T13T111B",  makeList(rd(201, T),  rd(13,  T), rd(111,  B)),    2, 1, 0},
-            {"15B1T1T",      makeList(rd(15,  B),  rd(1,   T), rd(1,    T)),    2, 1, 0},
-            {"99B7T6B",      makeList(rd(99,  B),  rd(7,   T), rd(6,    B)),    1, 2, 0},
-            {"631B776S638T", makeList(rd(631, B),  rd(776, S), rd(638,  T)),    1, 1, 1},
-
-
-            {"3T7B60S2T",     makeList(rd(3,  T),    rd(7,  B),   rd(60,   S),    rd(2,  T)),   2, 1, 1},
-            {"20B9S100T1T",   makeList(rd(20, B),    rd(9,  S),   rd(100,  T),    rd(1,  T)),   2, 1, 1},
-            {"33T42B9T81B",   makeList(rd(33, T),    rd(42, B),   rd(9,    T),    rd(81, B)),   2, 2, 0},
-            {"28B56B13T123S", makeList(rd(28, B),    rd(56, B),   rd(13,   T),    rd(123,S)),   1, 2, 1},
-            {"92S8B8B32B",    makeList(rd(92, S),    rd(8,  B),   rd(8,    B),    rd(32, B)),   0, 3, 1},
-
-            {"2S88B7T8S9T9T84B100S2S4B3B", makeList(rd(2,S), rd(88,B), rd(7,T), rd(8,S), rd(9,T), rd(9,T), rd(84,B), rd(100,S), rd(2,S),  rd(4,B), rd(3,B)), 3, 4, 4}
-        };
-    }
-
-    @DataProvider(name="invalidReadStructures")
-    public Object[][] invalidReadStructures() {
-        return new Object[][]{
-                {"",         new ArrayList<ReadDescriptor>()},
-                {"0T",       makeList(rd(0,  T))},
-                {"-1T",      makeList(rd(-1, T))},
-                {"0S" ,      makeList(rd(0,  S))},
-                {"-1B",      makeList(rd(-1, B))},
-                {"8C",       null},
-                {"B5",       null},
-                {"SS",       null},
-                {"75TS",     null},
-                {"8*T",      null},
-                {"-66S1B",   makeList(rd(-66, S), rd(1, B))},
-                {"-0T5B8C",  null},
-                {"77T82B0S", makeList(rd(77, T), rd(82, B), rd(0, S))}
-        };
-    }
-
-    @DataProvider(name="invalidReadStructuresFromList")
-    public Object[][] invalidReadStructuresFromList() {
-        int numTests = 0;
-        for(final Object [] args : invalidReadStructures()) {
-            if(args[1] != null) ++numTests;
-        }
-
-        final Object [][] outObjs = new Object[numTests][2];
-
-        numTests = 0;
-        for(final Object [] args : invalidReadStructures()) {
-            if(args[1] != null) {
-                outObjs[numTests++] = args;
-            }
-        }
-
-        return outObjs;
-    }
-
-    @Test(dataProvider = "validReadStructures")
-    public void testValidStructuresFromString(final String rsString, final List<ReadDescriptor> descriptors, final int numTemplates, final int numBarcodes, final int numSkips) {
-        final ReadStructure readStructure = new ReadStructure(rsString);
-        testReadStructure(readStructure, rsString, descriptors, numTemplates, numBarcodes, numSkips);
-    }
-    
-    @Test(dataProvider = "validReadStructures")
-    public void testValidStructuresFromList(final String rsString, final List<ReadDescriptor> descriptors, final int numTemplates, final int numBarcodes, final int numSkips) {
-        final ReadStructure readStructure = new ReadStructure(descriptors);
-        testReadStructure(readStructure, rsString, descriptors, numTemplates, numBarcodes, numSkips);
-    }
-
-    private void testReadStructure(final ReadStructure readStructure, final String structureString, final List<ReadDescriptor> descriptors, final int numTemplates, final int numBarcodes, final int numSkips) {
-        Assert.assertEquals(readStructure.toString(), structureString);
-
-        int totalCycles = 0;
-
-        int tIndex = 0;
-        int bIndex = 0;
-        int sIndex = 0;
-
-        for(int i = 0; i < descriptors.size(); i++) {
-            Assert.assertEquals(readStructure.descriptors.get(i), descriptors.get(i));
-            switch(readStructure.descriptors.get(i).type) {
-                case T:
-                    Assert.assertEquals(i, readStructure.templates.getIndices()[tIndex++]);
-                    break;
-                case B:
-                    Assert.assertEquals(i, readStructure.barcodes.getIndices()[bIndex++]);
-                    break;
-                case S:
-                    Assert.assertEquals(i, readStructure.skips.getIndices()[sIndex++]);
-                    break;
-                default:
-                    Assert.fail("Unrecognized read type: " + readStructure.descriptors.get(i).type);
-            }
-            totalCycles += readStructure.descriptors.get(i).length;
-        }
-
-        Assert.assertEquals(readStructure.totalCycles,  totalCycles);
-        Assert.assertEquals(readStructure.barcodes.length(),  numBarcodes);
-        Assert.assertEquals(readStructure.templates.length(), numTemplates);
-        Assert.assertEquals(readStructure.skips.length(), numSkips);
-
-    }
-
-    @Test(dataProvider = "invalidReadStructures", expectedExceptions = IllegalArgumentException.class)
-    public void testInvalidReadStructureFromString(final String rsString, final List<ReadDescriptor> descriptors) {
-        final ReadStructure readStructure = new ReadStructure(rsString);
-    }
-
-    @Test(dataProvider = "invalidReadStructuresFromList", expectedExceptions = IllegalArgumentException.class)
-    public void testInvalidReadStructureFromList(final String rsString, final List<ReadDescriptor> descriptors) {
-        final ReadStructure readStructure = new ReadStructure(descriptors);
-    }
-
-    @DataProvider(name="substructuresToReadStructureData")
-    public Object [][] substructureToReadStructureData() {
-        return new Object[][] {
-            {new ReadStructure("10T10T").templates,      "10T10T"  },
-            {new ReadStructure("10T8B10T").nonSkips,     "10T8B10T"},
-            {new ReadStructure("8S10T8B8S10T").nonSkips, "10T8B10T"},
-            {new ReadStructure("10T8S8S10T").skips,      "8S8S"    },
-            {new ReadStructure("8B").barcodes,           "8B"      }
-        };
-    }
-
-    @Test(dataProvider = "substructuresToReadStructureData")
-    public void testSubstructureToReadStructure(final ReadStructure.Substructure substructure, final String outputRs) {
-        Assert.assertEquals(substructure.toReadStructure().toString(), outputRs);
-    }
-
-    @DataProvider(name="substructureToReadStructureNegativeData")
-    public Object[][] substructureToReadStructureNegativeData() {
-        return new Object[][] {
-            {new ReadStructure("10T").barcodes   },
-            {new ReadStructure("10S").nonSkips   },
-            {new ReadStructure("10S8B").templates},
-        };
-    }
-
-    @Test(dataProvider = "substructureToReadStructureNegativeData", expectedExceptions = IllegalArgumentException.class)
-    public void testSubstructureToReadStructure(final ReadStructure.Substructure substructure) {
-        substructure.toReadStructure().toString();
-    }
-}
diff --git a/src/tests/java/net/sf/picard/illumina/parser/BclParserTest.java b/src/tests/java/net/sf/picard/illumina/parser/BclParserTest.java
deleted file mode 100644
index 7894b8e..0000000
--- a/src/tests/java/net/sf/picard/illumina/parser/BclParserTest.java
+++ /dev/null
@@ -1,464 +0,0 @@
-package net.sf.picard.illumina.parser;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.illumina.parser.readers.BclQualityEvaluationStrategy;
-import net.sf.picard.io.IoUtil;
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-
-import static net.sf.picard.illumina.parser.BinTdUtil.*;
-
-public class BclParserTest {
-    public static final File TEST_DATA_DIR = new File("testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001");
-    public static final File MULTI_TILE_DATA_DIR = new File("/seq/tng/jcarey/testdata/NextSeq/Data/Intensities/BaseCalls/L001");
-    public static final String READ_STRUCTURE = "25T8B25T";
-    public static final String READ_STRUCTURE_WSKIPS = "25S8B25S";
-    public static final String READ_STRUCTURE_WSKIPS_PARTIAL = "10T5S10T8B5T20S";
-    public static final String READ_STRUCTURE_WSKIPS_BAD = "10T5S10T2B4S2B5T20S";
-    public static final int[] READ_LENGTHS = new int[]{25, 8, 25};
-    public static final int LANE = 1;
-    public static final IlluminaDataType DATA_TYPES[] = {IlluminaDataType.BaseCalls, IlluminaDataType.QualityScores};
-    public static final int TILE_SIZES = 60;
-
-
-    public static Integer[] boxArr(final int[] ints) {
-        final Integer[] boxArr = new Integer[ints.length];
-        for (int i = 0; i < boxArr.length; i++) {
-            boxArr[i] = ints[i];
-        }
-
-        return boxArr;
-    }
-
-    @DataProvider(name = "tileMaps")
-    public Object[][] getTileMaps() {
-        return new Object[][]{
-                //TILES, NUM_CLUSTER TO BE READ, SEEK AT THIS READ, INDEX TO TILETOSEEK, ORDERED TILE INDEX (FOR OUT OF ORDER TILES)
-                {new int[]{1101, 1201, 2101}, 180, -1, -1, -1},
-                {new int[]{1101, 2101, 1201}, 180, -1, -1, -1},
-                {new int[]{2101, 1201}, 120, -1, -1, -1},
-                {new int[]{1101, 2101}, 120, -1, -1, -1},
-                {new int[]{1101}, 60, -1, -1, -1},
-
-                //Cases with seeking
-                {new int[]{1101, 1201, 2101}, 206, 25, 0, 0},
-                {new int[]{1101, 2101, 1201}, 206, 25, 0, 0},
-                {new int[]{2101, 1201}, 80, 19, 0, 1},
-                {new int[]{1101, 2101}, 156, 35, 0, 0},
-                {new int[]{1101}, 66, 5, 0, 0}
-        };
-    }
-
-    @DataProvider(name = "multiTileMaps")
-    public Object[][] getMultiTileMaps() {
-        return new Object[][]{
-                //TILES, NUM_CLUSTER TO BE READ, SEEK AT THIS READ, INDEX TO TILETOSEEK, ORDERED TILE INDEX (FOR OUT OF ORDER TILES)
-                {new int[]{11101, 11102, 11103}, 341292, -1, -1, -1}
-        };
-    }
-
-
-    public void compareClusterToBclData(final ClusterData cluster, final BclData bclData, final int clusterNum, final int countNum) {
-        final byte[][] bases = bclData.getBases();
-        final byte[][] qualities = bclData.getQualities();
-
-        Assert.assertEquals(bases.length, cluster.getNumReads(), "At cluster num " + clusterNum);
-        Assert.assertEquals(qualities.length, cluster.getNumReads(), "At cluster num " + clusterNum);
-
-        final StringBuilder baseBuilder = new StringBuilder();
-        final StringBuilder qualBuilder = new StringBuilder();
-        final StringBuilder barcode = new StringBuilder();
-        baseBuilder.append("new byte[]{");
-        for (int i = 0; i < bases.length; i++) {
-            final byte[] subBase = bases[i];
-            final byte[] subQual = qualities[i];
-            for (int j = 0; j < subBase.length; j++) {
-                if ((char) subBase[j] == '.') {
-                    baseBuilder.append('P');
-                } else {
-                    baseBuilder.append((char) subBase[j]);
-                }
-                baseBuilder.append(",");
-                qualBuilder.append(subQual[j]);
-                qualBuilder.append(",");
-                if (i == 1) {
-                    if ((char) subBase[j] == '.') {
-                        barcode.append('P');
-                    } else {
-                        barcode.append((char) subBase[j]);
-                    }
-                }
-            }
-        }
-        baseBuilder.deleteCharAt(baseBuilder.length() - 1);
-        qualBuilder.deleteCharAt(qualBuilder.length() - 1);
-        baseBuilder.append("},\n                                new byte[]{");
-        baseBuilder.append(qualBuilder.toString());
-        baseBuilder.append("},\n                                \"");
-        baseBuilder.append(barcode.toString());
-        baseBuilder.append("\"");
-
-        for (int i = 0; i < cluster.getNumReads(); i++) {
-            if (!Arrays.equals(bases[i], cluster.getRead(i).getBases())) {
-                System.out.println(cluster.getLane() + " : " + cluster.getTile() + " : " + clusterNum);
-                System.out.println(baseBuilder.toString());
-            }
-            Assert.assertEquals(bases[i], cluster.getRead(i).getBases(), " Bases differ for read " + i + " at cluster num " + clusterNum + " at cluster count " + countNum);
-            Assert.assertEquals(qualities[i], cluster.getRead(i).getQualities(), " Qualities differ for read " + i + " at cluster num " + clusterNum + " at cluster count " + countNum);
-        }
-    }
-
-    public void fullBclParserTestImpl(final File dir, final String readStructure, final int[] tiles, final int size, final int seekAfter, final int newTileIndex, final int orderedTileIndex,
-                                      final boolean multiTile) {
-        final ReadStructure rs = new ReadStructure(readStructure);
-        final OutputMapping outputMapping = new OutputMapping(rs);
-        final IlluminaFileUtil util = new IlluminaFileUtil(dir.getParentFile(), LANE);
-        final PerTilePerCycleFileUtil bclFileUtil = (PerTilePerCycleFileUtil) util.getUtil(IlluminaFileUtil.SupportedIlluminaFormat.Bcl);
-        final MultiTileBclFileUtil multiTileBclFileUtil = (MultiTileBclFileUtil) util.getUtil(IlluminaFileUtil.SupportedIlluminaFormat.MultiTileBcl);
-
-
-        final List<Integer> tileIntegers = new ArrayList<Integer>();
-        for (final int tile : tiles) {
-            tileIntegers.add(tile);
-        }
-
-        final BclParser bclParser;
-        if(multiTile){
-            final File bci = new File(MULTI_TILE_DATA_DIR, "s_" + LANE + ".bci");
-            bclParser = new MultiTileBclParser(dir, LANE, multiTileBclFileUtil.getFiles(tileIntegers, outputMapping.getOutputCycles()),
-                    outputMapping, true, new BclQualityEvaluationStrategy(BclQualityEvaluationStrategy.ILLUMINA_ALLEGED_MINIMUM_QUALITY),
-                    new TileIndex(bci));
-        }
-        else{
-            bclParser = new BclParser(dir, LANE, bclFileUtil.getFiles(tileIntegers, outputMapping.getOutputCycles()),
-                    outputMapping, new BclQualityEvaluationStrategy(BclQualityEvaluationStrategy.ILLUMINA_ALLEGED_MINIMUM_QUALITY));
-        }
-
-
-        final Map<Integer, ClusterData> testData = BinTdUtil.clusterData(LANE, Arrays.asList(boxArr(tiles)), readStructure, DATA_TYPES);
-
-        int count = 0;
-        int readNum = 0;
-        while (bclParser.hasNext()) {
-            final BclData bclData = bclParser.next();
-            if (testData.containsKey(readNum)) {
-                compareClusterToBclData(testData.get(readNum), bclData, readNum, count);
-            }
-
-            if (count == seekAfter) {
-                bclParser.seekToTile(tiles[newTileIndex]);
-                readNum = (orderedTileIndex * TILE_SIZES);
-            } else {
-                readNum++;
-            }
-            count++;
-        }
-        Assert.assertEquals(count, size);
-        bclParser.close();
-    }
-
-    public static void deleteBclFiles(final File laneDirectory, final String readStructure) {
-        final ReadStructure rs = new ReadStructure(readStructure);
-        int index = 1;
-        for (final ReadDescriptor rd : rs.descriptors) {
-            if (rd.type == ReadType.S) {
-                for (int i = index; i < index + rd.length; i++) {
-                    final File cycleDir = new File(laneDirectory, "C" + i + ".1");
-                    final File[] cycleFiles = cycleDir.listFiles();
-                    for (final File toDelete : cycleFiles) {
-                        if (!toDelete.delete()) {
-                            throw new RuntimeException("Couldn't delete file " + toDelete.getAbsolutePath());
-                        }
-                    }
-                }
-            }
-
-            index += rd.length;
-        }
-    }
-
-    @Test(dataProvider = "tileMaps")
-    public void fullBclParserTest(final int[] tiles, final int size, final int seekAfter, final int newTileIndex, final int orderedTileIndex) {
-        fullBclParserTestImpl(TEST_DATA_DIR, READ_STRUCTURE, tiles, size, seekAfter, newTileIndex, orderedTileIndex, false);
-    }
-
-    //@Test(dataProvider = "multiTileMaps")
-    public void fullMTBclParserTest(final int[] tiles, final int size, final int seekAfter, final int newTileIndex, final int orderedTileIndex) {
-        fullBclParserTestImpl(MULTI_TILE_DATA_DIR, READ_STRUCTURE, tiles, size, seekAfter, newTileIndex, orderedTileIndex, true);
-    }
-
-
-    @Test(dataProvider = "tileMaps")
-    public void fullBclParserTestWSkips(final int[] tiles, final int size, final int seekAfter, final int newTileIndex, final int orderedTileIndex) {
-        fullBclParserTestImpl(TEST_DATA_DIR, READ_STRUCTURE_WSKIPS, tiles, size, seekAfter, newTileIndex, orderedTileIndex, false);
-    }
-
-    @Test(dataProvider = "tileMaps")
-    public void fullBclParserTestWDeletedSkips(final int[] tiles, final int size, final int seekAfter, final int newTileIndex, final int orderedTileIndex) {
-        fullBclParserTestWDeletedSkipsImpl(tiles, size, seekAfter, newTileIndex, orderedTileIndex, READ_STRUCTURE_WSKIPS);
-    }
-
-    @Test(dataProvider = "tileMaps")
-    public void fullBclParserTestWPartiallyDeletedSkips(final int[] tiles, final int size, final int seekAfter, final int newTileIndex, final int orderedTileIndex) {
-        fullBclParserTestWDeletedSkipsImpl(tiles, size, seekAfter, newTileIndex, orderedTileIndex, READ_STRUCTURE_WSKIPS_PARTIAL);
-    }
-
-    @Test(dataProvider = "tileMaps", expectedExceptions = RuntimeException.class)
-    public void fullBclParserTestWBadDeletedSkips(final int[] tiles, final int size, final int seekAfter, final int newTileIndex, final int orderedTileIndex) {
-        fullBclParserTestWDeletedSkipsImpl(tiles, size, seekAfter, newTileIndex, orderedTileIndex, READ_STRUCTURE_WSKIPS_BAD);
-    }
-
-    public void fullBclParserTestWDeletedSkipsImpl(final int[] tiles, final int size, final int seekAfter, final int newTileIndex, final int orderedTileIndex, final String readStructure) {
-        final File basecallDir = IoUtil.createTempDir("bclParserTest", "BaseCalls");
-
-        Exception exc = null;
-        try {
-            final File l001 = new File(basecallDir, "L001");
-            if (!l001.mkdir()) {
-                throw new RuntimeException("Couldn't make lane dir " + l001.getAbsolutePath());
-            }
-
-            copyBcls(TEST_DATA_DIR, l001);
-            deleteBclFiles(l001, readStructure);
-            fullBclParserTestImpl(l001, READ_STRUCTURE_WSKIPS, tiles, size, seekAfter, newTileIndex, orderedTileIndex, false);
-        } catch (final Exception thrExc) {
-            exc = thrExc;
-        } finally {
-            IoUtil.deleteDirectoryTree(basecallDir);
-        }
-        if (exc != null) {
-            if (exc.getClass() == PicardException.class) {
-                throw new PicardException(exc.getMessage());
-            }
-            throw new RuntimeException(exc);
-        }
-    }
-
-    //Custom copy function to avoid copying .svn files etc...
-    public static void copyBcls(final File srcLaneDir, final File dstDir) {
-        final File[] listFiles = srcLaneDir.listFiles();
-
-        for (final File dir : listFiles) {
-            if (dir.isDirectory()) {
-                File cycleDir = null;
-
-                for (final File file : dir.listFiles()) {
-                    if (file.getName().endsWith(".bcl")) {
-                        if (cycleDir == null) {
-                            cycleDir = new File(dstDir, dir.getName());
-                            if (!cycleDir.mkdir()) {
-                                throw new RuntimeException("Couldn't make directory (" + cycleDir.getAbsolutePath() + ")");
-                            }
-                        }
-
-                        IoUtil.copyFile(file, new File(cycleDir, file.getName()));
-                    }
-                }
-            }
-        }
-    }
-
-
-    //Helper byte [] tuple for EAMSS testing
-    class BasesAndQuals {
-        public final byte[] bases;
-        public final byte[] quals;
-        public final byte[] maskedQuals;
-
-        public BasesAndQuals(final byte[] bases, final byte[] quals, final Integer maskStart) {
-            this.bases = bases;
-            this.quals = quals;
-            this.maskedQuals = qualsMaskedFrom(maskStart);
-        }
-
-        private byte[] qualsMaskedFrom(final Integer maskStart) {
-            final byte[] maskedQuals = Arrays.copyOf(quals, quals.length);
-            if (maskStart != null) {
-                for (int i = maskStart; i < maskedQuals.length; i++) {
-                    maskedQuals[i] = BclParser.MASKING_QUALITY;
-                }
-            }
-            return maskedQuals;
-        }
-
-        public String toString() {
-            return "BasesAndQuals( " + basesToString() + ", " + qualsToString(quals) + ", " + qualsToString(maskedQuals) + ")";
-        }
-
-        public String basesToString() {
-            final StringBuilder sb = new StringBuilder(bases.length);
-            for (final byte base : bases) {
-                switch (base) {
-                    case A:
-                        sb.append("A ");
-                        break;
-                    case C:
-                        sb.append("C ");
-                        break;
-                    case G:
-                        sb.append("G ");
-                        break;
-                    case T:
-                        sb.append("T ");
-                        break;
-                    case P:
-                        sb.append(". ");
-                        break;
-
-                    default:
-                        throw new RuntimeException("THIS SHOULD NOT HAPPEN!  Bad byte in bases!");
-                }
-            }
-
-            return sb.toString();
-        }
-
-        public String qualsToString(final byte[] qualsToConvert) {
-
-            final StringBuilder sb = new StringBuilder(bases.length);
-            for (final byte qual : qualsToConvert) {
-                sb.append(String.valueOf((int) qual));
-                sb.append(",");
-            }
-
-            return sb.toString();
-        }
-    }
-
-    @DataProvider(name = "eamssDataNo10GSeries")
-    public Object[][] eamssDataNo10GSeries() {
-
-        return new Object[][]{
-                //Non-masking cases
-
-                //tally very negative, 9G's
-                {new BasesAndQuals(new byte[]{G, G, G, G, G, G, G, G, G},
-                        new byte[]{13, 7, 35, 32, 31, 33, 31, 26, 29},
-                        null)},
-
-                //tally barely negative
-                {new BasesAndQuals(new byte[]{G, G, G, G, G, G, G, G, G},
-                        new byte[]{13, 7, 35, 26, 18, 19, 35, 8, 33},
-                        null)},
-
-                //Reaches 0, A stretch of more than 10 other types of bases
-                {new BasesAndQuals(new byte[]{A, C, C, C, C, C, C, C, C, C, C, C, T, G, G, C, T, A, A},
-                        new byte[]{7, 8, 33, 7, 2, 33, 16, 17, 19, 7, 6, 5, 35, 2, 33, 22, 18, 16, 25},
-                        null)},
-
-                //Stays at 0, Stretches of G's Separated
-                {new BasesAndQuals(new byte[]{T, G, G, G, G, G, G, G, P, P, G, G, G, G, G, G, G, T, A, A, G, G, G},
-                        new byte[]{7, 8, 33, 7, 2, 33, 16, 17, 2, 2, 6, 5, 35, 2, 33, 22, 18, 16, 25, 33, 32, 16, 18},
-                        null)},
-
-                //shorter
-                {new BasesAndQuals(new byte[]{T, A, C},
-                        new byte[]{25, 16, 16},
-                        null)},
-
-                //Longer
-                {new BasesAndQuals(new byte[]{T, A, C, G, G, P, P, T, C, C, C, C, T, T, T, G, G, G, A, T, G, C, A, T, A, C, G, G, P, P, T, C, C, C, C, T, T, T, G, G, G, A, T, G, C, A},
-                        new byte[]{25, 16, 16, 33, 22, 2, 2, 33, 35, 3, 31, 38, 22, 19, 25, 16, 16, 31, 30, 2, 2, 33, 26, 3, 31, 38, 22, 19, 2, 2, 30, 27, 28, 16, 2, 2, 30, 16, 19, 21, 22, 17, 19, 16, 16, 16},
-                        null)},
-
-
-                //Masking-Cases
-
-                //tally very positive, 9Gs                                  X - Mask From here
-                {new BasesAndQuals(new byte[]{G, G, G, G, G, G, G, G, G},
-                        new byte[]{13, 7, 35, 32, 2, 16, 33, 14, 19},
-                        7)},
-
-                //tally barely negative                        X - Mask from here
-                {new BasesAndQuals(new byte[]{G, G, G, G, G, G, G, G, G},
-                        new byte[]{13, 7, 35, 33, 18, 2, 6, 8, 33},
-                        4)},
-                //Reaches 0, A stretch of more than 10 other types of bases                X - Mask From here
-                {new BasesAndQuals(new byte[]{A, C, C, C, C, C, C, C, C, C, C, C, T, G, G, C, T, A, A},
-                        new byte[]{7, 8, 33, 7, 2, 33, 16, 17, 19, 32, 33, 5, 8, 2, 2, 2, 33, 16, 25},
-                        11)},
-                //Stays at 0, Stretches of G's Separated                                                       X- Mask from here
-                {new BasesAndQuals(new byte[]{T, G, G, G, G, G, G, G, P, P, G, G, G, G, G, G, G, T, A, A, G, G, G},
-                        new byte[]{7, 8, 33, 7, 2, 33, 16, 17, 2, 2, 6, 5, 35, 2, 33, 30, 13, 16, 7, 2, 2, 16, 18},
-                        16)},
-                //shorter                       X - Mask from here
-                {new BasesAndQuals(new byte[]{T, A, C},
-                        new byte[]{2, 11, 13},
-                        0)},
-                //Longer                                                                                                                           X- Mask from here
-                {new BasesAndQuals(new byte[]{T, A, C, G, G, P, P, T, C, C, C, C, T, T, T, G, G, G, A, T, G, C, A, T, A, C, G, G, P, P, T, C, C, C, C, T, T, T, G, G, G, A, T, G, C, A},
-                        new byte[]{25, 16, 16, 33, 22, 2, 2, 33, 35, 3, 31, 38, 22, 19, 25, 16, 16, 31, 30, 2, 2, 33, 26, 3, 31, 38, 22, 19, 2, 2, 30, 27, 28, 16, 2, 2, 30, 16, 19, 21, 22, 2, 19, 16, 2, 2},
-                        26)}
-        };
-    }
-
-    /** For more information on EAMSS check BclParser and the large comment above runEamssForReadInPlace * */
-    @DataProvider(name = "eamssDataWithGSeries")
-    public Object[][] eamssTestDat() {
-        return new Object[][]{
-
-                //9 G's followed by tally max                     X - Mask from here
-                {new BasesAndQuals(new byte[]{A, C, G, G, T, G, G, G, G, G, G, G, G, G, A, C, T},
-                        new byte[]{7, 8, 33, 7, 12, 33, 16, 17, 2, 2, 32, 35, 35, 35, 2, 15, 9},
-                        5)},
-                //9 G's surpassed by tally max  X - Mask from here
-                {new BasesAndQuals(new byte[]{A, C, G, G, T, G, G, G, G, G, G, G, G, G, A, C, T},
-                        new byte[]{7, 8, 2, 7, 2, 2, 16, 17, 2, 2, 32, 35, 35, 35, 2, 15, 9},
-                        0)},
-                //10 G's ending before tally max                                                        X - Mask from here
-                {new BasesAndQuals(new byte[]{A, C, G, G, T, G, G, G, G, G, G, G, G, G, A, C, T},
-                        new byte[]{7, 8, 2, 7, 2, 2, 16, 17, 2, 2, 32, 35, 35, 35, 33, 15, 9},
-                        15)},
-                //10 G's ending on tally max                         X - Mask from here Is this wrong?
-                {new BasesAndQuals(new byte[]{A, C, C, G, C, C, G, G, G, G, G, G, G, G, G, G, T, T, A},
-                        new byte[]{33, 31, 29, 32, 28, 27, 30, 18, 18, 18, 18, 19, 19, 19, 33, 18, 9, 9, 19},
-                        6)},
-                //10 G's no masking
-                {new BasesAndQuals(new byte[]{A, C, C, G, C, C, G, G, G, G, G, G, G, G, G, G, T, T, A},
-                        new byte[]{33, 31, 29, 32, 28, 27, 30, 18, 18, 18, 18, 19, 19, 19, 33, 18, 33, 32, 34},
-                        null)},
-                //10 G' with an exception                               X - Mask from here
-                {new BasesAndQuals(new byte[]{A, C, C, G, C, C, G, G, G, G, A, G, G, G, G, G, T, T, A},
-                        new byte[]{33, 31, 29, 32, 28, 27, 30, 18, 18, 18, 18, 19, 19, 19, 33, 18, 9, 9, 19},
-                        6)},
-                //longer than 10 G's                      X - Mask from here
-                {new BasesAndQuals(new byte[]{A, C, G, G, G, C, G, G, G, G, G, G, G, G, G, G, T, T, A},
-                        new byte[]{33, 31, 29, 32, 28, 16, 33, 18, 18, 18, 18, 19, 19, 19, 33, 18, 3, 9, 19},
-                        2)},
-                //longer than 10 G's                                      X - Mask from here
-                {new BasesAndQuals(new byte[]{A, C, G, G, C, C, G, G, G, G, G, G, G, G, G, G, G, G, G},
-                        new byte[]{33, 31, 29, 32, 28, 16, 33, 18, 18, 18, 18, 19, 19, 19, 33, 34, 33, 33, 3},
-                        6)},
-                //longer than 10 G's
-                {new BasesAndQuals(new byte[]{A, C, G, G, C, C, G, G, G, G, G, G, G, G, G, G, G, G, G, T, A, C, T, T, G, G, G, G, G, G, G, G, G, G, G, G, G},
-                        new byte[]{33, 31, 29, 32, 28, 16, 33, 18, 18, 18, 18, 19, 19, 19, 33, 34, 33, 33, 3, 33, 34, 2, 4, 8, 33, 7, 35, 15, 16, 31, 30, 38, 16, 15, 22, 29, 25},
-                        null)}
-        };
-    }
-
-    public void testEamss(final BasesAndQuals bq) {
-        final byte[] bases = Arrays.copyOf(bq.bases, bq.bases.length);
-        final byte[] quals = Arrays.copyOf(bq.quals, bq.quals.length);
-
-        BclParser.runEamssForReadInPlace(bases, quals);
-        Assert.assertEquals(bases, bq.bases);
-        Assert.assertEquals(quals, bq.maskedQuals);
-    }
-
-    @Test(dataProvider = "eamssDataNo10GSeries")
-    public void eamssParsingTestNoGSeries(final BasesAndQuals bq) {
-        testEamss(bq);
-    }
-
-    @Test(dataProvider = "eamssDataWithGSeries")
-    public void eamssParsingTestWithGSeries(final BasesAndQuals bq) {
-        testEamss(bq);
-    }
-}
diff --git a/src/tests/java/net/sf/picard/illumina/parser/BinTdUtil.java b/src/tests/java/net/sf/picard/illumina/parser/BinTdUtil.java
deleted file mode 100644
index 519b11d..0000000
--- a/src/tests/java/net/sf/picard/illumina/parser/BinTdUtil.java
+++ /dev/null
@@ -1,307 +0,0 @@
-package net.sf.picard.illumina.parser;
-
-import java.io.File;
-import java.util.*;
-
-import static net.sf.samtools.util.CollectionUtil.makeList;
-
-//Illumina Dir Test Data
-public class BinTdUtil {
-    public static final File IntensitiesDir = new File("testdata/net/sf/picard/illumina/CompleteIlluminaDir/Intensities/");
-    public static final File basecallDir = new File("testdata/net/sf/picard/illumina/CompleteIlluminaDir/Intensities/BaseCalls");
-
-    public static final String ltStr(final int lane, final int tile) {
-        return "s_" + lane + "_" + tile;
-    }
-
-    public static final byte A = (byte) 65;
-    public static final byte C = (byte) 67;
-    public static final byte G = (byte) 71;
-    public static final byte T = (byte) 84;
-    public static final byte P = (byte) 46; //dot
-    public static final Map<String, List<ClusterData>> goldData = new HashMap<String, List<ClusterData>>();
-    public static final Map<String, List<Integer>> goldIndices = new HashMap<String, List<Integer>>();
-    public static final Map<String, Integer> goldSizes = new HashMap<String, Integer>();
-
-    static {
-        int lane = 1;
-        int tile = 1101;
-        goldIndices.put(ltStr(lane, tile), makeList(0, 2, 10, 18, 19));
-        goldData.put(ltStr(lane, tile), makeList(
-                        makeCd(lane, tile, 1140, 2120, true,
-                                new byte[]{P, C, C, C, C, A, A, C, A, T, T, C, T, A, A, T, T, A, T, G, C, C, T, C, A, C, A, A, C, T, C, T, C, T, T, T, T, T, T, T, T, T, T, T, T, T, A, A, C, T, T, T, G, C, A, A, A, T},
-                                new byte[]{2, 16, 25, 33, 35, 37, 37, 35, 39, 37, 37, 35, 37, 40, 41, 41, 41, 40, 40, 41, 40, 40, 40, 40, 40, 31, 31, 31, 35, 35, 37, 35, 37, 31, 31, 31, 35, 35, 35, 35, 35, 39, 39, 39, 39, 37, 33, 31, 24, 37, 39, 40, 31, 33, 37, 39, 31, 31},
-                                "CAACTCTC"),
-                        makeCd(lane, tile, 1047, 2122, false,
-                                new byte[]{P,C,T,A,A,P,G,P,A,C,T,P,T,G,P,G,T,G,T,G,C,P,P,P,P,P,P,P,A,P,P,P,P,P,P,T,C,A,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P},
-                                new byte[]{2,15,26,31,31,2,19,2,18,31,31,2,18,31,2,17,27,31,31,31,31,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
-                                null),
-                        makeCd(lane, tile, 1069, 2159, true,
-                                new byte[]{T,C,C,C,T,T,A,C,C,A,T,C,A,A,A,T,C,A,A,T,T,G,P,C,C,G,T,C,C,A,C,A,G,G,A,C,G,T,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P},
-                                new byte[]{34,34,34,37,37,37,37,37,39,39,39,39,39,41,41,41,41,41,41,41,41,41,2,18,32,31,33,33,37,37,37,37,37,27,27,27,31,30,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
-                                "GTCCACAG"),
-                        makeCd(lane, tile, 1175, 2197, true,
-                                new byte[]{C,C,C,C,T,G,A,G,G,A,C,A,C,C,A,T,C,C,C,A,C,T,C,C,A,C,C,A,A,C,A,T,T,A,A,G,A,G,C,T,G,G,G,G,A,A,C,A,T,C,C,A,G,A,A,A,G,G},
-                                new byte[]{34,34,34,37,37,37,37,37,39,39,39,39,39,41,41,41,41,41,41,41,41,41,41,41,41,34,34,34,37,37,37,37,37,33,34,31,37,37,37,37,37,39,39,39,39,39,41,41,41,41,41,41,41,41,41,41,41,41},
-                                "CCAACATT"),
-                        makeCd(lane, tile, 1048, 2197, false,
-                                new byte[]{P,C,T,C,C,P,G,P,T,C,A,P,C,A,P,G,T,G,G,A,G,P,P,P,P,P,P,P,C,P,P,P,P,P,P,G,T,G,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P},
-                                new byte[]{2,15,26,30,31,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
-                                null)
-                )
-        );
-        goldSizes.put(ltStr(lane, tile), 60);
-
-        tile = 1201;
-        goldIndices.put(ltStr(lane, tile), makeList(0, 1, 18, 19));
-        goldData.put(ltStr(lane, tile), makeList(
-                makeCd(lane, tile, 1187, 2100, true,
-                        new byte[]{P,G,C,G,G,T,A,A,T,T,C,C,A,G,C,T,C,C,A,A,T,A,G,C,G,T,A,T,C,T,G,C,C,A,A,A,A,A,A,G,A,G,C,C,C,G,C,A,T,T,G,C,C,G,A,G,A,C},
-                        new byte[]{2,16,25,33,33,17,31,35,39,39,37,39,39,40,40,40,40,39,39,40,40,38,39,38,38,34,34,34,37,37,37,37,37,28,27,28,26,32,32,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
-                        "TATCTGCC"),
-                makeCd(lane, tile, 1045, 2105, false,
-                        new byte[]{P,T,A,A,A,G,A,G,A,A,A,T,C,A,A,G,A,A,T,A,C,T,A,T,T,C,T,G,T,A,A,T,C,P,T,T,T,T,T,T,T,T,T,T,P,P,T,T,T,T,T,T,T,T,T,T,T,T},
-                        new byte[]{2,12,19,31,30,7,31,8,31,31,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,16,16,16,17,31,32,2,2,2,15,26,31,31,31,31,31,31,31,30,2,2,15,25,30,30,30,30,30,30,30,30,28,27},
-                        "CTGTAATC"),
-                makeCd(lane, tile, 1159, 2179, false,
-                        new byte[]{G,T,T,A,G,C,A,C,A,G,A,T,A,T,T,G,G,A,T,G,A,G,T,G,A,A,A,A,A,A,A,A,A,T,T,T,T,T,T,T,T,T,A,T,T,T,T,T,C,T,A,A,A,T,A,C,T,T},
-                        new byte[]{2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,28,28,28,32,32,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
-                        null),
-                makeCd(lane, tile, 1103, 2184, true,
-                        new byte[]{G,T,A,A,G,A,A,C,T,A,C,C,C,T,G,G,G,T,C,C,C,C,G,T,G,T,T,G,T,C,T,A,T,A,G,A,A,G,T,T,T,C,A,G,A,A,T,T,G,T,G,G,C,C,C,C,A,T},
-                        new byte[]{31,31,33,37,37,37,37,37,39,39,39,39,39,41,41,41,41,38,40,41,41,41,41,39,40,31,34,34,37,37,37,37,37,33,31,33,37,37,35,36,37,39,39,39,39,39,41,41,41,38,39,40,41,41,41,41,41,40},
-                        "TTGTCTAT")
-        ));
-        goldSizes.put(ltStr(lane, tile), 60);
-
-        tile = 2101;
-        goldIndices.put(ltStr(lane, tile), makeList(7, 15, 16, 19));
-        goldData.put(ltStr(lane, tile), makeList(
-                makeCd(lane, tile, 1123, 2095, true,
-                        new byte[]{P,T,G,G,A,C,A,A,C,A,T,G,T,T,C,G,A,G,A,G,C,T,A,C,A,C,A,G,C,G,G,T,A,T,C,C,G,C,C,T,C,C,A,G,C,T,T,C,A,G,C,T,T,C,T,C,C,T},
-                        new byte[]{2,16,28,33,33,35,35,35,37,37,37,37,35,38,37,38,40,38,30,37,26,39,39,37,40,31,30,31,35,35,37,31,31,31,31,31,37,35,35,37,37,39,39,39,39,39,41,39,38,38,41,40,41,41,41,36,39,39},
-                        "CAGCGGTA"),
-               makeCd(lane, tile, 1162, 2139, true,
-                       new byte[]{A,G,A,G,G,T,G,A,A,A,T,T,C,T,T,G,G,A,C,C,G,G,C,G,C,T,G,C,T,G,C,T,G,A,T,C,G,T,T,T,A,T,G,G,T,C,G,G,A,A,C,T,A,C,G,A,C,G},
-                       new byte[]{31,31,31,35,35,35,35,35,39,37,39,39,39,35,33,25,36,37,39,39,34,32,38,30,35,34,34,34,37,37,37,37,37,33,34,34,37,37,37,37,37,39,39,39,39,39,40,41,41,41,41,41,41,41,40,41,41,40},
-                       "TGCTGCTG"),
-                makeCd(lane, tile, 1013, 2146, true,
-                        new byte[]{P,A,C,A,C,T,G,C,T,G,C,A,G,A,T,G,A,C,A,A,G,C,A,G,C,C,T,A,T,G,C,G,T,P,P,P,P,C,G,C,T,A,G,A,A,C,C,A,A,C,T,T,A,T,T,C,A,T},
-                        new byte[]{2,19,33,35,37,37,37,37,39,39,39,39,39,41,41,41,41,41,41,41,41,41,41,41,41,34,34,34,37,37,37,37,37,2,2,2,2,17,19,28,30,31,31,30,31,30,31,31,30,31,31,31,31,31,31,30,31,31},
-                        "CTATGCGT"),
-                makeCd(lane, tile, 1245, 2154, true,
-                        new byte[]{T,C,G,T,T,A,A,G,T,A,T,A,T,T,C,T,T,A,G,G,T,A,T,T,T,C,T,G,T,A,A,T,C,A,C,C,A,A,T,C,A,G,T,A,G,C,A,C,C,A,C,T,A,T,A,C,A,C},
-                        new byte[]{34,34,34,37,37,35,37,37,37,39,37,39,39,40,40,41,41,41,41,41,37,41,41,41,40,31,34,34,37,37,37,37,37,34,34,34,37,37,37,37,37,39,39,39,39,39,41,41,41,41,41,41,40,41,41,41,41,41},
-                        "CTGTAATC")
-        ));
-        goldSizes.put(ltStr(lane, tile), 60);
-
-        tile = 11101;
-        goldIndices.put(ltStr(lane, tile), makeList(0, 2, 10, 18, 19));
-        goldData.put(ltStr(lane, tile), makeList(
-                        makeCd(lane, tile, 1140, 2120, true,
-                                new byte[]{P,A,A,C,T,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P},
-                                new byte[]{2,32,32,32,32,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
-                                null),
-                        makeCd(lane, tile, 1047, 2122, false,
-                                new byte[]{P,A,A,G,A,C,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P},
-                                new byte[]{2,32,32,32,27,37,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
-                                null),
-                        makeCd(lane, tile, 1069, 2159, true,
-                                new byte[]{P,C,T,T,G,T,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P},
-                                new byte[]{2,32,32,32,32,37,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
-                                null),
-                        makeCd(lane, tile, 1175, 2197, true,
-                                new byte[]{P,A,A,A,T,T,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P},
-                                new byte[]{2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
-                                null),
-                        makeCd(lane, tile, 1048, 2197, false,
-                                new byte[]{P,A,A,G,A,C,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P},
-                                new byte[]{2,27,22,32,32,37,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
-                                null)
-                )
-        );
-        goldSizes.put(ltStr(lane, tile), 341292);
-
-        tile = 11102;
-        goldIndices.put(ltStr(lane, tile), makeList(0, 2, 10, 18, 19));
-        goldData.put(ltStr(lane, tile), makeList(
-                        makeCd(lane, tile, 1140, 2120, true,
-                                new byte[]{P,A,A,G,A,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P},
-                                new byte[]{2,32,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
-                                null),
-                        makeCd(lane, tile, 1047, 2122, false,
-                                new byte[]{P,G,C,T,T,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P},
-                                new byte[]{2,32,32,32,32,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
-                                null),
-                        makeCd(lane, tile, 1069, 2159, true,
-                                new byte[]{P,G,C,T,T,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P},
-                                new byte[]{2,32,32,32,32,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
-                                null),
-                        makeCd(lane, tile, 1175, 2197, true,
-                                new byte[]{P,G,C,T,T,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P},
-                                new byte[]{2,32,32,32,32,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
-                                null),
-                        makeCd(lane, tile, 1048, 2197, false,
-                                new byte[]{P,G,C,T,T,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P},
-                                new byte[]{2,32,32,32,32,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
-                                null)
-                )
-        );
-        goldSizes.put(ltStr(lane, tile), 366884);
-
-        tile = 11103;
-        goldIndices.put(ltStr(lane, tile), makeList(0, 2, 10, 18, 19));
-        goldData.put(ltStr(lane, tile), makeList(
-                        makeCd(lane, tile, 1140, 2120, true,
-                                new byte[]{P,G,C,T,T,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P},
-                                new byte[]{2,32,32,32,32,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
-                                null),
-                        makeCd(lane, tile, 1047, 2122, false,
-                                new byte[]{P,G,C,T,T,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P},
-                                new byte[]{2,32,32,32,32,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
-                                null),
-                        makeCd(lane, tile, 1069, 2159, true,
-                                new byte[]{P,G,C,T,T,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P},
-                                new byte[]{2,32,32,32,32,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
-                                null),
-                        makeCd(lane, tile, 1175, 2197, true,
-                                new byte[]{P,G,C,T,T,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P},
-                                new byte[]{2,32,32,32,32,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
-                                null),
-                        makeCd(lane, tile, 1048, 2197, false,
-                                new byte[]{P,G,C,T,T,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P},
-                                new byte[]{2,32,32,32,32,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
-                                null)
-                )
-        );
-        goldSizes.put(ltStr(lane, tile), 336434);
-    }
-
-    public static Map<Integer, ClusterData> clusterData(final int lane, final List<Integer> tiles, final String readStructure, final IlluminaDataType... dataTypes) {
-        final List<Integer> sortedTiles = new ArrayList<Integer>(tiles);
-        Collections.sort(sortedTiles);
-
-        final Map<Integer, ClusterData> data = new HashMap<Integer, ClusterData>();
-        int offset = 0;
-        for (final int tile : sortedTiles) {
-            final String key = ltStr(lane, tile);
-            final List<ClusterData> cds = goldData.get(key);
-            final List<Integer> readNos = goldIndices.get(key);
-            final int size = goldSizes.get(key);
-
-            for (int i = 0; i < cds.size(); i++) {
-                data.put(offset + readNos.get(i), selectiveCopyCd(cds.get(i), readStructure, dataTypes));
-            }
-
-            offset += size;
-        }
-        return data;
-    }
-
-    public static ReadData[] copyReadData(final ReadStructure rs, final IlluminaDataType[] dts, final ClusterData toCopy) {
-        boolean doBases = false;
-        boolean doQuals = false;
-
-        for (final IlluminaDataType dt : dts) {
-            switch (dt) {
-                case BaseCalls:
-                    doBases = true;
-                    break;
-
-                case QualityScores:
-                    doQuals = true;
-                    break;
-            }
-        }
-
-        if (!doBases && !doQuals)
-            return null;
-
-        final ReadData rdToCopy = toCopy.getRead(0); //Only gonna be one read in this
-        final ReadData[] rds = new ReadData[rs.nonSkips.length()];
-
-        int index = 0;
-        int baseIndex = 0;
-        for (int i = 0; i < rs.descriptors.size(); i++) {
-            final ReadDescriptor readDesc = rs.descriptors.get(i);
-
-            if (readDesc.type != ReadType.S) {
-                final ReadData curRead = new ReadData(readDesc.type);
-                if (doBases) {
-                    final byte[] bases = Arrays.copyOfRange(rdToCopy.getBases(), baseIndex, baseIndex + readDesc.length);
-                    curRead.setBases(bases);
-                }
-
-                if (doQuals) {
-                    final byte[] quals = Arrays.copyOfRange(rdToCopy.getQualities(), baseIndex, baseIndex + readDesc.length);
-                    curRead.setQualities(quals);
-                }
-
-                rds[index++] = curRead;
-            }
-
-            baseIndex += readDesc.length;
-        }
-
-        return rds;
-    }
-
-    private static FourChannelIntensityData copyIntensities(final FourChannelIntensityData toCopy, final int start, final int length) {
-        final FourChannelIntensityData fcid = new FourChannelIntensityData(length);
-
-        System.arraycopy(toCopy.getA(), start, fcid.getA(), 0, length);
-        System.arraycopy(toCopy.getC(), start, fcid.getC(), 0, length);
-        System.arraycopy(toCopy.getG(), start, fcid.getG(), 0, length);
-        System.arraycopy(toCopy.getT(), start, fcid.getT(), 0, length);
-        return fcid;
-    }
-
-    public static ClusterData selectiveCopyCd(final ClusterData toCopy, final String readStructure, final IlluminaDataType... dataTypes) {
-        final ReadStructure rs = new ReadStructure(readStructure);
-        final ReadData[] rd = copyReadData(rs, dataTypes, toCopy);
-        final ClusterData cd = new ClusterData(rd);
-        cd.setTile(toCopy.getTile());
-        cd.setLane(toCopy.getLane());
-
-        for (final IlluminaDataType idt : dataTypes) {
-            switch (idt) {
-                case Position:
-                    cd.setX(toCopy.getX());
-                    cd.setY(toCopy.getY());
-                    break;
-
-                case PF:
-                    cd.setPf(toCopy.isPf());
-                    break;
-
-                case Barcodes:
-                    cd.setMatchedBarcode(toCopy.getMatchedBarcode());
-                    break;
-
-                default:
-                    break;
-            }
-        }
-
-        return cd;
-    }
-
-    public static ClusterData makeCd(final int lane, final int tile, final int xCoord, final int yCoord, final boolean pf, final byte[] bases, final byte[] qualities, final String matchedBarcode) {
-        final ReadData rd = new ReadData();
-        rd.setBases(Arrays.copyOf(bases, bases.length));
-        rd.setQualities(Arrays.copyOf(qualities, bases.length));
-        rd.setReadType(ReadType.T); //This will be ignored, as the cluster will be chopped up by ReadStructure
-
-        final ClusterData cd = new ClusterData(rd);
-        cd.setLane(lane);
-        cd.setTile(tile);
-        cd.setX(xCoord);
-        cd.setY(yCoord);
-        cd.setPf(pf);
-        cd.setMatchedBarcode(matchedBarcode);
-
-        return cd;
-    }
-
-}
diff --git a/src/tests/java/net/sf/picard/illumina/parser/CycleIlluminaFileMapTest.java b/src/tests/java/net/sf/picard/illumina/parser/CycleIlluminaFileMapTest.java
deleted file mode 100644
index eb775dd..0000000
--- a/src/tests/java/net/sf/picard/illumina/parser/CycleIlluminaFileMapTest.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
-* The MIT License
-*
-* Copyright (c) 2011 The Broad Institute
-*
-* Permission is hereby granted, free of charge, to any person obtaining a copy
-* of this software and associated documentation files (the "Software"), to deal
-* in the Software without restriction, including without limitation the rights
-* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the Software is
-* furnished to do so, subject to the following conditions:
-*
-* The above copyright notice and this permission notice shall be included in
-* all copies or substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-* THE SOFTWARE.
-*/
-package net.sf.picard.illumina.parser;
-
-import net.sf.picard.PicardException;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-import org.testng.Assert;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import static net.sf.samtools.util.CollectionUtil.makeList;
-
-/**
-* @author jburke at broadinstitute.org
-*/
-public class CycleIlluminaFileMapTest {
-    //TODO: REVAMP THIS
-    private static final File TEST_DATA_DIR = new File("testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001");
-    private static final File ZERO_LENGTH_TEST_DATA_DIR = new File("testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L002");
-    private static final int [] ALL_CYCLES = {1,2,3,4};
-
-    private static String laneToDir(int lane) {
-        String outStr = String.valueOf(lane);
-        while(outStr.length() < 3) {
-            outStr = "0" + outStr;
-        }
-        return "L" + outStr;
-    }
-
-    private static String constructPathString(int lane, int cycle) {
-        return TEST_DATA_DIR + "/" + laneToDir(lane) + "/C" + cycle + ".1";
-    }
-
-    @DataProvider(name = "iteratorTestData")
-    public Object [][] iteratorTestData() {
-        return new Object[][] {
-            new Object[] {
-                TEST_DATA_DIR, 1, 1101, ".bcl",
-                    makeList(new File(TEST_DATA_DIR + "/C1.1", "s_1_1101.bcl"),
-                             new File(TEST_DATA_DIR + "/C2.1", "s_1_1101.bcl"),
-                             new File(TEST_DATA_DIR + "/C3.1", "s_1_1101.bcl"),
-                             new File(TEST_DATA_DIR + "/C4.1", "s_1_1101.bcl")),
-                    ALL_CYCLES
-            },
-            new Object[] {
-                ZERO_LENGTH_TEST_DATA_DIR, 1, 1101, ".bcl", new ArrayList<File>(), new int[]{},
-
-            },
-            new Object[] {
-                TEST_DATA_DIR, 1, 1201, ".bcl", new ArrayList<File>(), new int[]{}
-            },
-
-            new Object[] {
-                TEST_DATA_DIR, 2, 1101, ".bcl", new ArrayList<File>(), new int[]{}
-            },
-        };
-    }
-
-  /*  @Test(dataProvider = "iteratorTestData")
-    public void cycledFilesIteratorTest(final File parentDir, final int lane, final int tile, final String fileType, final List<File> expectedFiles, final int [] cycles) {
-        final CycleFilesIterator toTest = new CycleFilesIterator(parentDir, lane, tile, cycles, fileType);
-        Iterator<File> expectedIter = expectedFiles.iterator();
-        while(expectedIter.hasNext()) {
-            final File currentExpected = expectedIter.next();
-            Assert.assertTrue(toTest.hasNext(), "CycledFileSetIterator is missing file: " + currentExpected.getAbsolutePath());
-            Assert.assertEquals(toTest.next().getAbsolutePath(), currentExpected.getAbsolutePath());
-        }
-        
-        Assert.assertTrue(!toTest.hasNext(), "CycledFilesIterator has extra files!");
-    }
-
-    @Test
-    public void passingAssertCycledIlluminaFileMapTest() {
-        final CycleIlluminaFileMap fileMap = new CycleIlluminaFileMap();
-        fileMap.put(1101, new CycleFilesIterator(TEST_DATA_DIR, 1, 1101, ALL_CYCLES, ".bcl"));
-        fileMap.put(1201, new CycleFilesIterator(TEST_DATA_DIR, 1, 1201, ALL_CYCLES, ".bcl"));
-        fileMap.assertValid(makeList(1101,1201), ALL_CYCLES);
-    }
-
-    @Test(expectedExceptions = PicardException.class)
-    public void tileFailingAssertCycledIlluminaFileMapTest() {
-        final CycleIlluminaFileMap fileMap = new CycleIlluminaFileMap();
-        fileMap.put(1, new CycleFilesIterator(TEST_DATA_DIR, 1, 1, ALL_CYCLES, ".bcl"));
-        fileMap.put(2, new CycleFilesIterator(TEST_DATA_DIR, 1, 2, ALL_CYCLES, ".bcl"));
-        fileMap.assertValid(makeList(1,2,3), ALL_CYCLES);
-    }
-
-    @Test(expectedExceptions = PicardException.class)
-    public void cycleFailingAssertCycledIlluminaFileMapTest() {
-        final CycleIlluminaFileMap fileMap = new CycleIlluminaFileMap();
-        fileMap.put(1, new CycleFilesIterator(TEST_DATA_DIR, 1, 1, ALL_CYCLES, ".bcl"));
-        fileMap.put(2, new CycleFilesIterator(TEST_DATA_DIR, 1, 2, ALL_CYCLES, ".bcl"));
-        fileMap.assertValid(makeList(1,2), new int[]{1,2,3,4,5});
-    }*/
-
-}
diff --git a/src/tests/java/net/sf/picard/illumina/parser/FilterParserTest.java b/src/tests/java/net/sf/picard/illumina/parser/FilterParserTest.java
deleted file mode 100644
index 1a256e1..0000000
--- a/src/tests/java/net/sf/picard/illumina/parser/FilterParserTest.java
+++ /dev/null
@@ -1,171 +0,0 @@
-package net.sf.picard.illumina.parser;
-
-import net.sf.picard.PicardException;
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.lang.reflect.Array;
-import java.util.ArrayList;
-import java.util.List;
-
-public class FilterParserTest {
-    private static final File TestDataDir = new File("testdata/net/sf/picard/illumina/parserTests");
-    private static final File BaseCallsDir = new File(TestDataDir, "filterParser");
-
-    private static final boolean F = false;
-    private static final boolean T = true;
-    public static final Boolean[] s_1_0001_filter = {F, F, T, F, T, T, F, F, T, F, T, T, F, T, T};
-    public static final Boolean[] s_1_0002_filter = {F, F, F, F, F, T, T, F, F, F, F, T, F, F, F, T, T, T, T, T};
-    public static final Boolean[] s_1_0003_filter = {T, F, F, F, T, T, F, F};
-    public static final Boolean[] s_1_0004_filter = {T, F, F, F, F, T, F, F, F, F, T, F, F, F, F, T, T, F, F, T,
-            T, F, T, F, T, T, F, F, T, T, F, T, T, T, T, F, T, T, T, T,
-            F, T, F, F, F, T, F, T, F, T, T, F, F, T, T, T, F, F, T, T};
-
-    public static final Boolean[] tileToValue(int tile) {
-        switch (tile) {
-            case 1:
-                return s_1_0001_filter;
-            case 2:
-                return s_1_0002_filter;
-            case 3:
-                return s_1_0003_filter;
-            case 4:
-                return s_1_0004_filter;
-        }
-
-        throw new RuntimeException("You shouldn't reach this statement!");
-    }
-
-    public static final Boolean[] allTilesToValues(Integer[] tiles) {
-        Boolean[][] values = new Boolean[tiles.length][];
-        for (int i = 0; i < tiles.length; i++) {
-            values[i] = tileToValue(tiles[i]);
-        }
-
-        return arrayFlatten(values);
-    }
-
-    public static final List<Integer> arrayToList(final Integer[] array) {
-        final List<Integer> list = new ArrayList<Integer>();
-        for (int item : array) {
-            list.add(item);
-        }
-        return list;
-    }
-
-    public static final <T> T[] arrayFlatten(final T[][] arrays) {
-        int total = 0;
-        for (T[] arr : arrays) {
-            total += arr.length;
-        }
-
-        int resultIndex = 0;
-        final T[] result = (T[]) Array.newInstance(arrays[0][0].getClass(), total);
-        for (int i = 0; i < arrays.length; i++) {
-            System.arraycopy(arrays[i], 0, result, resultIndex, arrays[i].length);
-            resultIndex += arrays[i].length;
-        }
-        return result;
-    }
-
-    @DataProvider(name = "passingTiles")
-    public Object[][] passingTiles() {
-        return new Object[][]{
-                {new Integer[]{1}},
-                {new Integer[]{2}},
-                {new Integer[]{4}},
-                {new Integer[]{1, 4}},
-                {new Integer[]{2, 3}},
-                {new Integer[]{1, 2, 3, 4}}
-        };
-    }
-
-    @Test(dataProvider = "passingTiles")
-    public void passingParserTest(Integer[] tiles) {
-        final IlluminaFileUtil fUtil = new IlluminaFileUtil(BaseCallsDir, 1);
-
-        final Boolean[] values = allTilesToValues(tiles);
-        final List<Integer> tileList = arrayToList(tiles);
-
-        final FilterParser fp = new FilterParser(((PerTileFileUtil) fUtil.getUtil(IlluminaFileUtil.SupportedIlluminaFormat.Filter)).getFiles(tileList));
-        fp.verifyData(tileList, null); //filter parser doesn't care about cycle
-
-        for (final boolean expectedValue : values) {
-            Assert.assertTrue(fp.hasNext());
-            Assert.assertEquals(fp.next().isPf(), expectedValue);
-        }
-
-        Assert.assertFalse(fp.hasNext());
-
-        //seek back to the beginning and do it again!
-        fp.seekToTile(tiles[0]);
-        for (final boolean expectedValue : values) {
-            Assert.assertTrue(fp.hasNext());
-            Assert.assertEquals(fp.next().isPf(), expectedValue);
-        }
-
-        Assert.assertFalse(fp.hasNext());
-        fp.close();
-    }
-
-    @DataProvider(name = "seekToTile")
-    public Object[][] seekToTile() {
-        return new Object[][]{
-                //seek after how many, tiles to load, expected values
-                {0, 2, new Integer[]{2}, new Boolean[][]{s_1_0002_filter}},
-                {4, 4, new Integer[]{1, 4}, new Boolean[][]{new Boolean[]{F, F, T, F}, s_1_0004_filter}},
-                {0, 3, new Integer[]{2, 3}, new Boolean[][]{s_1_0003_filter}},
-                {15, 3, new Integer[]{1, 2, 3, 4}, new Boolean[][]{s_1_0001_filter, s_1_0003_filter, s_1_0004_filter}}
-        };
-    }
-
-    @Test(dataProvider = "seekToTile")
-    public void passingSeekingParserTest(int skipBefore, int tileToSkipTo, Integer[] tiles, Boolean[][] expectedValues) {
-        final IlluminaFileUtil fUtil = new IlluminaFileUtil(BaseCallsDir, 1);
-
-        final Boolean[] values = arrayFlatten(expectedValues);
-        final List<Integer> tileList = arrayToList(tiles);
-
-        final FilterParser fp = new FilterParser(((PerTileFileUtil) fUtil.getUtil(IlluminaFileUtil.SupportedIlluminaFormat.Filter)).getFiles(tileList));
-
-        int read = 0;
-        for (final boolean expectedValue : values) {
-            if (read == skipBefore) {
-                fp.seekToTile(tileToSkipTo);
-            }
-
-            Assert.assertTrue(fp.hasNext());
-            Assert.assertEquals(fp.next().isPf(), expectedValue, " Failed on read: " + read);
-            ++read;
-        }
-
-        Assert.assertFalse(fp.hasNext());
-        fp.close();
-    }
-
-    @DataProvider(name = "failingVerifyTiles")
-    public Object[][] failingVerifyTiles() {
-        return new Object[][]{
-                {new Integer[]{1}, new Integer[]{2}},
-                {new Integer[]{2}, new Integer[]{1}},
-                {new Integer[]{4}, new Integer[]{5}},
-                {new Integer[]{1, 4}, new Integer[]{1, 3, 4}},
-                {new Integer[]{2, 3}, new Integer[]{2, 3, 4}},
-                {new Integer[]{1, 2, 3, 4}, new Integer[]{1, 2, 3, 4, 5}},
-                {new Integer[]{2, 3, 4}, new Integer[]{1, 2, 3, 4}}
-        };
-    }
-
-    @Test(dataProvider = "failingVerifyTiles", expectedExceptions = PicardException.class)
-    public void verifyDataTest(final Integer[] initTiles, final Integer[] verifyTiles) {
-        final IlluminaFileUtil fUtil = new IlluminaFileUtil(BaseCallsDir, 1);
-        final List<Integer> initTileList = arrayToList(initTiles);
-        final List<Integer> verifyTileList = arrayToList(verifyTiles);
-
-        final FilterParser fp = new FilterParser(((PerTileFileUtil) fUtil.getUtil(IlluminaFileUtil.SupportedIlluminaFormat.Filter)).getFiles(initTileList));
-        fp.verifyData(verifyTileList, null); //filter parser doesn't care about cycle values
-        fp.close();
-    }
-}
diff --git a/src/tests/java/net/sf/picard/illumina/parser/IlluminaDataProviderFactoryTest.java b/src/tests/java/net/sf/picard/illumina/parser/IlluminaDataProviderFactoryTest.java
deleted file mode 100644
index e317d96..0000000
--- a/src/tests/java/net/sf/picard/illumina/parser/IlluminaDataProviderFactoryTest.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package net.sf.picard.illumina.parser;
-
-
-import net.sf.picard.illumina.parser.readers.BclQualityEvaluationStrategy;
-
-import java.io.File;
-import java.util.List;
-
-public class IlluminaDataProviderFactoryTest {
-
-    class TestFactory extends IlluminaDataProviderFactory{
-        public TestFactory(final File basecallDirectory, final int lane, final ReadStructure readStructure, final IlluminaDataType... dataTypes) {
-            super(basecallDirectory, lane, readStructure, new BclQualityEvaluationStrategy(BclQualityEvaluationStrategy.ILLUMINA_ALLEGED_MINIMUM_QUALITY), dataTypes);
-        }
-
-    }
-}
diff --git a/src/tests/java/net/sf/picard/illumina/parser/IlluminaDataProviderTest.java b/src/tests/java/net/sf/picard/illumina/parser/IlluminaDataProviderTest.java
deleted file mode 100644
index 5724d91..0000000
--- a/src/tests/java/net/sf/picard/illumina/parser/IlluminaDataProviderTest.java
+++ /dev/null
@@ -1,270 +0,0 @@
-/*
-* The MIT License
-*
-* Copyright (c) 2011 The Broad Institute
-*
-* Permission is hereby granted, free of charge, to any person obtaining a copy
-* of this software and associated documentation files (the "Software"), to deal
-* in the Software without restriction, including without limitation the rights
-* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the Software is
-* furnished to do so, subject to the following conditions:
-*
-* The above copyright notice and this permission notice shall be included in
-* all copies or substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-* THE SOFTWARE.
-*/
-package net.sf.picard.illumina.parser;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.illumina.parser.readers.BclQualityEvaluationStrategy;
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-
-import static net.sf.samtools.util.CollectionUtil.makeList;
-//import static net.sf.samtools.util.CollectionUtil.*;
-
-/**
- * @author jburke at broadinstitute.org
- */
-
-public class IlluminaDataProviderTest {
-
-    public static final BclQualityEvaluationStrategy bclQualityEvaluationStrategy = new BclQualityEvaluationStrategy(BclQualityEvaluationStrategy.ILLUMINA_ALLEGED_MINIMUM_QUALITY);
-    public static final File BINARY_TD_LOCATION = new File("testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls");
-    private static final IlluminaDataType[] DEFAULT_DATA_TYPES = new IlluminaDataType[]{
-            IlluminaDataType.Position, IlluminaDataType.BaseCalls, IlluminaDataType.QualityScores, IlluminaDataType.PF
-    };
-
-    private void runTest(
-            final String testName, final int size,
-            final Map<Integer, ClusterData> readNoToClusterData,
-            final int seekAfterFirstRead, final int seekTestDataReadOffset,
-            final IlluminaDataProvider dataProvider)
-            throws Exception {
-
-        int count = 0;
-        int readNum = 0;
-        while (dataProvider.hasNext()) {
-            final ClusterData cluster = dataProvider.next();
-            if (readNoToClusterData.containsKey(readNum)) {
-                compareReadData(cluster, readNoToClusterData.get(readNum), testName + " cluster num " + readNum);
-            }
-
-            if (seekAfterFirstRead != 0 && count == 0) {
-                dataProvider.seekToTile(seekAfterFirstRead);
-                readNum += seekTestDataReadOffset;
-            }
-
-            readNum++;
-            count++;
-        }
-        Assert.assertEquals(count, size, testName);
-        dataProvider.close();
-    }
-
-    private IlluminaDataType[] getDataTypes(final IlluminaDataType[] extraDataTypes) {
-        final IlluminaDataType[] dts;
-
-        if (extraDataTypes == null) {
-            dts = DEFAULT_DATA_TYPES;
-        } else {
-            dts = Arrays.copyOf(DEFAULT_DATA_TYPES, DEFAULT_DATA_TYPES.length + extraDataTypes.length);
-            System.arraycopy(extraDataTypes, 0, dts, DEFAULT_DATA_TYPES.length, extraDataTypes.length);
-        }
-        return dts;
-    }
-
-
-    private void compareBasesAndQuals(final ReadData rd1, final ReadData rd2, final String testName) {
-        Assert.assertEquals(rd1.getBases(), rd2.getBases(), testName);
-        Assert.assertEquals(rd1.getQualities(), rd2.getQualities(), testName);
-        Assert.assertEquals(rd1.getReadType(), rd2.getReadType());
-    }
-
-    private void comparePositionalData(final ClusterData cd1, final ClusterData cd2, final String testName) {
-        Assert.assertEquals(cd1.getLane(), cd2.getLane(), testName);
-        Assert.assertEquals(cd1.getTile(), cd2.getTile(), testName);
-        Assert.assertEquals(cd1.getX(), cd2.getX(), testName);
-        Assert.assertEquals(cd1.getY(), cd2.getY(), testName);
-    }
-
-    //Doesn't compare intensities right now -- Do we want too?
-    private void compareReadData(final ClusterData cd1, final ClusterData cd2, final String testName) {
-        comparePositionalData(cd1, cd2, testName);
-        Assert.assertEquals(cd1.getNumReads(), cd2.getNumReads());
-        for (int i = 0; i < cd1.getNumReads(); i++) {
-            compareBasesAndQuals(cd1.getRead(i), cd2.getRead(i), testName);
-        }
-
-        Assert.assertEquals(cd1.getMatchedBarcode(), cd2.getMatchedBarcode(), testName);
-        Assert.assertEquals(cd1.isPf().booleanValue(), cd2.isPf().booleanValue(), testName);
-    }
-
-    public void runBarcodeParsingTest(final IlluminaDataProviderFactory factory) {
-        int total = 0;
-        final IlluminaDataProvider dataProvider = factory.makeDataProvider();
-        while (dataProvider.hasNext()) {
-            final ClusterData cluster = dataProvider.next();
-            final String matchedBarcode = cluster.getMatchedBarcode();
-            if (matchedBarcode != null) {
-                Assert.assertEquals(matchedBarcode, new String(cluster.getRead(1).getBases()));
-            }
-            if(total > 10){
-                break;
-            }
-            total++;
-        }
-        dataProvider.close();
-    }
-
-    @Test
-    public void barcodeParsingTest() {
-        runBarcodeParsingTest(new IlluminaDataProviderFactory(BINARY_TD_LOCATION, 1, new ReadStructure("25T8B25T"), bclQualityEvaluationStrategy, IlluminaDataType.BaseCalls,
-                IlluminaDataType.Barcodes));
-    }
-
-    @DataProvider(name = "binaryData")
-    public Object[][] binaryData() {
-        return new Object[][]{
-                {
-                        "Bustard Parsing Test(25T8B25T) w/Clocs", 1, 180,
-                        makeList(1101, 1201, 2101),
-                        new IlluminaDataType[]{IlluminaDataType.Barcodes},
-                        "25T8B25T",
-                        0, 0,
-                        BINARY_TD_LOCATION
-                },
-                {
-                        "Bustard Parsing Test(25T8S25T) w/Clocs", 1, 180,
-                        makeList(1101, 1201, 2101),
-                        new IlluminaDataType[]{IlluminaDataType.Barcodes},
-                        "25T8S25T",
-                        0, 0,
-                        BINARY_TD_LOCATION
-                },
-                {
-                        "Bustard Parsing Test(25T8S25T) w/Clocs with ending skip", 1, 180,
-                        makeList(1101, 1201, 2101),
-                        new IlluminaDataType[]{IlluminaDataType.Barcodes},
-                        "25T8B1S",
-                        0, 0,
-                        BINARY_TD_LOCATION
-                },
-                {
-                        "Bustard Parsing Test(25S8S25T) w/Clocs", 1, 180,
-                        makeList(1101, 1201, 2101),
-                        new IlluminaDataType[]{IlluminaDataType.Barcodes},
-                        "25S8S25T",
-                        0, 0,
-                        BINARY_TD_LOCATION
-                },
-                {
-                        "Bustard Parsing Test(25T8B25T) w/Clocs And Seeking", 1, 61,
-                        makeList(1101, 1201, 2101),
-                        new IlluminaDataType[]{IlluminaDataType.Barcodes},
-                        "25T8B25T",
-                        2101, 4631,
-                        BINARY_TD_LOCATION
-                }
-        };
-    }
-
-    @Test(dataProvider = "binaryData")
-    public void testIlluminaDataProviderBclMethod(
-            final String testName, final int lane, final int size,
-            final List<Integer> tiles,
-            final IlluminaDataType[] extraDataTypes,
-            final String illuminaConfigStr,
-            final int seekAfterFirstRead, final int seekTestDataReadOffset,
-            final File basecallsDirectory)
-            throws Exception {
-
-        final IlluminaDataType[] dts = getDataTypes(extraDataTypes);
-
-        final Map<Integer, ClusterData> readNoToClusterData = BinTdUtil.clusterData(lane, tiles, illuminaConfigStr, dts);
-        final IlluminaDataProviderFactory factory = new IlluminaDataProviderFactory(basecallsDirectory, lane, new ReadStructure(illuminaConfigStr), bclQualityEvaluationStrategy, dts);
-        final IlluminaDataProvider dataProvider = factory.makeDataProvider();
-
-        runTest(testName, size, readNoToClusterData, seekAfterFirstRead, seekTestDataReadOffset, dataProvider);
-    }
-
-    //Unlike above, the data types here do not have DEFAULT_DATA_TYPES added before creating the dataProvider
-    @DataProvider(name = "badData")
-    public Object[][] badData() {
-        return new Object[][]{
-                {
-                        "Bad Lane(5)", 5, 60,
-                        makeList(1101, 1201, 2101),
-                        new IlluminaDataType[]{IlluminaDataType.Barcodes},
-                        "25T8B25T",
-                        BINARY_TD_LOCATION
-                },
-                {
-                        "Bad Read Structure(25TB25T)", 4, 60,
-                        makeList(1101, 1201, 2101),
-                        DEFAULT_DATA_TYPES,
-                        "25TB25T",
-                        BINARY_TD_LOCATION
-                },
-                {
-                        "Bad Read Structure(25T0B25T)", 4, 60,
-                        makeList(1101, 1201, 2101),
-                        DEFAULT_DATA_TYPES,
-                        "25T0B25T",
-                        BINARY_TD_LOCATION
-                },
-                {
-                        "Bad Read Structure(-225T0B25T)", 4, 60,
-                        makeList(1101, 1201, 2101),
-                        DEFAULT_DATA_TYPES,
-                        "-25T0B25T",
-                        BINARY_TD_LOCATION
-                },
-                {
-                        "Missing Barcodes File", 9, 60,
-                        makeList(1101, 1201, 2101),
-                        new IlluminaDataType[]{IlluminaDataType.Position, IlluminaDataType.Barcodes},
-                        "25T8B25T",
-                        BINARY_TD_LOCATION
-                },
-                {
-                        "Missing Cycle File", 9, 60,
-                        makeList(1101, 1201, 2101),
-                        new IlluminaDataType[]{IlluminaDataType.BaseCalls},
-                        "25T8B25T",
-                        BINARY_TD_LOCATION
-                },
-                {
-                        "Missing Filter File", 9, 60,
-                        makeList(1101, 1201, 2101),
-                        new IlluminaDataType[]{IlluminaDataType.PF, IlluminaDataType.BaseCalls, IlluminaDataType.QualityScores},
-                        "25T8B24T",
-                        BINARY_TD_LOCATION
-                }
-        };
-    }
-
-    @Test(dataProvider = "badData", expectedExceptions = {PicardException.class, IllegalArgumentException.class})
-    public void testIlluminaDataProviderMissingDatas(final int lane,
-                                                     final IlluminaDataType[] actualDts,
-                                                     final String illuminaConfigStr,
-                                                     final File basecallsDirectory)
-            throws Exception {
-        final IlluminaDataProviderFactory factory = new IlluminaDataProviderFactory(basecallsDirectory, lane, new ReadStructure(illuminaConfigStr), bclQualityEvaluationStrategy, actualDts);
-        factory.makeDataProvider();
-    }
-}
diff --git a/src/tests/java/net/sf/picard/illumina/parser/IlluminaFileUtilTest.java b/src/tests/java/net/sf/picard/illumina/parser/IlluminaFileUtilTest.java
deleted file mode 100644
index 10ef89b..0000000
--- a/src/tests/java/net/sf/picard/illumina/parser/IlluminaFileUtilTest.java
+++ /dev/null
@@ -1,660 +0,0 @@
-package net.sf.picard.illumina.parser;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.illumina.parser.IlluminaFileUtil.SupportedIlluminaFormat;
-import net.sf.picard.io.IoUtil;
-import org.testng.Assert;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.DataOutputStream;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import static net.sf.samtools.util.CollectionUtil.makeList;
-
-public class IlluminaFileUtilTest {
-    private static final int DEFAULT_LANE = 7;
-    private static final List<Integer> DEFAULT_TILES = makeList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);
-    private static final List<Integer> DEFAULT_TILE_TEST_SUBSET = makeList(1, 4, 5, 6, 9, 10);
-    private static final int[] DEFAULT_CYCLES = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20};
-    private static final int DEFAULT_LAST_CYCLE = 20;
-
-    // We have data for these that should agree
-    private static final List<SupportedIlluminaFormat> FORMATS_TO_TEST = Arrays.asList(
-            SupportedIlluminaFormat.Bcl,
-            SupportedIlluminaFormat.Locs,
-            SupportedIlluminaFormat.Clocs,
-            SupportedIlluminaFormat.Pos,
-            SupportedIlluminaFormat.Filter,
-            SupportedIlluminaFormat.Barcode);
-
-
-    private File intensityDir;
-    private File basecallDir;
-
-    @BeforeMethod
-    private void setUp() throws Exception {
-        intensityDir = IoUtil.createTempDir("ift_test", "Intensities");
-        basecallDir = new File(intensityDir, "BaseCalls");
-        if (!basecallDir.mkdir()) {
-            throw new RuntimeException("Couldn't make basecalls dir " + basecallDir.getAbsolutePath());
-        }
-    }
-
-    @AfterMethod
-    private void tearDown() {
-        IoUtil.deleteDirectoryTree(intensityDir);
-    }
-
-    @DataProvider(name = "validLanes")
-    public Object[][] validLanes() {
-        return new Object[][]{
-                {0, "s_0_1111.test"},
-                {1, "s_1_23.test"},
-                {10, "s_10_1.test"}
-        };
-    }
-
-    public void regexMatches(final String regex, final String toMatch) {
-        regexMatches(regex, toMatch, true);
-    }
-
-    public void regexMatches(final String regex, final String toMatch, final boolean expectedResult) {
-        final Pattern pt = Pattern.compile(regex);
-        final Matcher ma = pt.matcher(toMatch);
-        Assert.assertEquals(ma.matches(), expectedResult);
-    }
-
-    @Test(dataProvider = "validLanes")
-    public void regexTests(final int lane, final String ltExample) {
-        regexMatches(ParameterizedFileUtil.makeLaneTileRegex(".test", lane), ltExample);
-    }
-
-    @DataProvider(name = "validLanesInvalidRegexes")
-    public Object[][] validLanesInvalidRegexes() {
-        return new Object[][]{
-                {0, "s_-0_111"},
-                {1, "s_1_A3"},
-                {10, "s_-100_1"},
-                {20, "s_21_1"}
-        };
-    }
-
-    @Test(dataProvider = "validLanesInvalidRegexes")
-    public void notMatchingRegexTest(final int lane, final String ltExample) {
-        regexMatches(ParameterizedFileUtil.makeLaneTileRegex(".test", lane) , ltExample, false);
-    }
-
-    @DataProvider(name = "invalidLanes")
-    public Object[][] invalidLanes() {
-        return new Object[][]{
-                {-1000},
-                {-10},
-                {-1}
-        };
-    }
-
-    @Test(dataProvider = "invalidLanes", expectedExceptions = PicardException.class)
-    public void invalidLaneForLTRegex(final int lane) {
-        ParameterizedFileUtil.makeLaneTileRegex(".test", lane);
-    }
-
-    public void assertDefaults(final IlluminaFileUtil fileUtil, final Integer lane, final List<SupportedIlluminaFormat> formatsToTest) {
-        if (lane == null) {
-            Assert.assertEquals(fileUtil.getLane(), DEFAULT_LANE);
-        } else {
-            Assert.assertEquals(new Integer(fileUtil.getLane()), lane);
-        }
-
-        Assert.assertEquals(fileUtil.getUtil(SupportedIlluminaFormat.Barcode).getTiles(), DEFAULT_TILES);
-
-        Assert.assertEquals(fileUtil.getUtil(SupportedIlluminaFormat.Bcl).getTiles(), DEFAULT_TILES);
-
-        Assert.assertEquals(fileUtil.getUtil(SupportedIlluminaFormat.Pos).getTiles(), DEFAULT_TILES);
-
-        Assert.assertEquals(fileUtil.getUtil(SupportedIlluminaFormat.Locs).getTiles(), DEFAULT_TILES);
-
-        Assert.assertEquals(fileUtil.getUtil(SupportedIlluminaFormat.Clocs).getTiles(), DEFAULT_TILES);
-
-        Assert.assertEquals(fileUtil.getUtil(SupportedIlluminaFormat.Filter).getTiles(), DEFAULT_TILES);
-
-        final Set<Integer> detectedCycles = ((PerTilePerCycleFileUtil) fileUtil.getUtil(SupportedIlluminaFormat.Bcl)).getDetectedCycles();
-        Assert.assertEquals(detectedCycles.size(), DEFAULT_CYCLES.length);
-        int i = 0;
-        for(final Integer cycle : detectedCycles){
-            Assert.assertEquals(cycle.intValue(), DEFAULT_CYCLES[i++], "Elements differ at index " + i);
-        }
-
-        Assert.assertEquals(fileUtil.getActualTiles(formatsToTest), DEFAULT_TILES);
-    }
-
-    @Test
-    public void passNewUtilTest() {
-        for (final SupportedIlluminaFormat format : SupportedIlluminaFormat.values()) {
-            makeFiles(format, intensityDir, DEFAULT_LANE, DEFAULT_TILES, DEFAULT_CYCLES);
-            makeFiles(format, intensityDir, DEFAULT_LANE + 1, DEFAULT_TILES, DEFAULT_CYCLES, ".gz");
-            makeFiles(format, intensityDir, DEFAULT_LANE + 2, DEFAULT_TILES, DEFAULT_CYCLES, ".bz2");
-        }
-
-        final Set<SupportedIlluminaFormat> formatsToTest = new HashSet<SupportedIlluminaFormat>();
-        // TODO: I can't be bothered to build files for these.  AW
-        Collections.addAll(formatsToTest, SupportedIlluminaFormat.values());
-        formatsToTest.remove(SupportedIlluminaFormat.MultiTileBcl);
-        formatsToTest.remove(SupportedIlluminaFormat.MultiTileFilter);
-        formatsToTest.remove(SupportedIlluminaFormat.MultiTileLocs);
-        final ArrayList<SupportedIlluminaFormat> formatsList = new ArrayList<SupportedIlluminaFormat>(formatsToTest);
-
-        for (int i = 0; i < 3; i++) {
-            final IlluminaFileUtil fileUtil = new IlluminaFileUtil(new File(intensityDir, "BaseCalls"), DEFAULT_LANE + i);
-            Assert.assertEquals(fileUtil.getActualTiles(formatsList), DEFAULT_TILES);
-            assertDefaults(fileUtil, DEFAULT_LANE + i, formatsList);
-        }
-    }
-
-    @Test
-    public void passingVerifyTest() {
-        for (final SupportedIlluminaFormat format : SupportedIlluminaFormat.values()) {
-            makeFiles(format, intensityDir, DEFAULT_LANE, DEFAULT_TILES, DEFAULT_CYCLES);
-            makeFiles(format, intensityDir, DEFAULT_LANE + 1, DEFAULT_TILES, DEFAULT_CYCLES, ".gz");
-            makeFiles(format, intensityDir, DEFAULT_LANE + 2, DEFAULT_TILES, DEFAULT_CYCLES, ".bz2");
-        }
-
-        for (int i = 0; i < 3; i++) {
-            final IlluminaFileUtil fileUtil = new IlluminaFileUtil(new File(intensityDir, "BaseCalls"), DEFAULT_LANE + i);
-
-
-            for (final SupportedIlluminaFormat format : FORMATS_TO_TEST) {
-                Assert.assertEquals(new ArrayList<String>(), fileUtil.getUtil(format).verify(DEFAULT_TILES, DEFAULT_CYCLES));
-            }
-        }
-    }
-
-    @DataProvider(name = "missingTileFormats")
-    public Object[][] missingTileFormats() {
-        return new Object[][]{
-                {
-                        1,
-                        makeList(SupportedIlluminaFormat.Bcl, SupportedIlluminaFormat.Barcode),
-                        makeList(SupportedIlluminaFormat.Bcl, SupportedIlluminaFormat.Barcode),
-                        makeList("BaseCalls/s_1_0007_barcode.txt.gz"),
-                        ".gz"
-                },
-
-                {
-                        2,
-                        Arrays.asList(SupportedIlluminaFormat.values()),
-                        Arrays.asList(SupportedIlluminaFormat.values()),
-                        makeCycleFileList(new File("BaseCalls"), ".bcl", 2, DEFAULT_CYCLES, 2),
-                        ".gz"
-                },
-                {
-                        3,
-                        Arrays.asList(SupportedIlluminaFormat.values()),
-                        Arrays.asList(SupportedIlluminaFormat.values()),
-                        makeList("BaseCalls/L003/C1.1/s_3_2.bcl"),
-                        ".bz2"
-                },
-                {
-                        4,
-                        Arrays.asList(SupportedIlluminaFormat.values()),
-                        Arrays.asList(SupportedIlluminaFormat.Pos, SupportedIlluminaFormat.Locs),
-                        makeList("s_4_10_pos.txt", "L004/s_4_2.locs"),
-                        null
-                }
-        };
-    }
-
-    public static void emptyRelativeFiles(final File baseFile, final List<String> relativeFilesToDelete) {
-        for (final String relativeFile : relativeFilesToDelete) {
-            final File actualFile = new File(baseFile, relativeFile);
-
-
-            if (!actualFile.exists()) {
-                throw new RuntimeException("Trying to empty a non-existent file" + actualFile.getAbsolutePath());
-            }
-
-            if (actualFile.isDirectory()) {
-                throw new RuntimeException("Trying to empty a directory(" + actualFile.getAbsolutePath() + ")");
-            } else {
-                if (!actualFile.delete()) {
-                    throw new RuntimeException("Couldn't remove previous file when emptying(" + actualFile.getAbsolutePath() + ")");
-                } else {
-                    try {
-                        if (!actualFile.createNewFile()) {
-                            throw new RuntimeException("Couldn't create empty file: " + actualFile.getAbsolutePath() + ")");
-                        }
-                    } catch (final IOException ioe) {
-                        throw new RuntimeException(ioe);
-                    }
-                }
-            }
-            if (!actualFile.exists()) {
-                throw new PicardException("File should exist: " + actualFile);
-            }
-        }
-    }
-
-    public static void deleteRelativeFiles(final File baseFile, final List<String> relativeFilesToDelete) {
-        for (final String relativeFile : relativeFilesToDelete) {
-            final File actualFile = new File(baseFile, relativeFile);
-
-
-            if (!actualFile.exists()) {
-                throw new RuntimeException("Trying to delete a non-existent file" + actualFile.getAbsolutePath());
-            }
-
-            if (actualFile.isDirectory()) {
-                IoUtil.deleteDirectoryTree(actualFile);
-            } else {
-                IoUtil.deleteFiles(actualFile);
-            }
-            if (actualFile.exists()) {
-                throw new RuntimeException("File still exists after calling delete: " + actualFile);
-            }
-        }
-    }
-
-    public final void deleteRelativeFiles(final List<String> relativeFilesToDelete) {
-        deleteRelativeFiles(intensityDir, relativeFilesToDelete);
-    }
-
-    @Test(dataProvider = "missingTileFormats")
-    public void missingTileTest(final int lane,
-                                final List<SupportedIlluminaFormat> formats,
-                                final List<SupportedIlluminaFormat> formatsToGetTiles,
-                                final List<String> relativeFilesToDelete,
-                                final String compression) {
-        for (final SupportedIlluminaFormat format : formats) {
-            makeFiles(format, intensityDir, lane, DEFAULT_TILES, DEFAULT_CYCLES, compression);
-        }
-
-        deleteRelativeFiles(relativeFilesToDelete);
-
-        PicardException pExc = null;
-        try {
-            final IlluminaFileUtil fUtil = new IlluminaFileUtil(new File(intensityDir, "BaseCalls"), lane);
-            fUtil.getActualTiles(formatsToGetTiles);
-        } catch (final PicardException exception) {
-            pExc = exception;
-        }
-
-        Assert.assertNotNull(pExc, "Didn't raise a Picard Exception for missing tile!");
-        Assert.assertTrue(pExc.getMessage().contains("Formats do not have the same number of tiles! "), "Wrong exception thrown for missing tile!");
-    }
-
-    @DataProvider(name = "perTileFileFormats")
-    public Object[][] perTileFileUtils() {
-        return new Object[][]{
-                {SupportedIlluminaFormat.Locs, null, false, laneDir(DEFAULT_LANE)},
-                {SupportedIlluminaFormat.Clocs, null, false, laneDir(DEFAULT_LANE)},
-                {SupportedIlluminaFormat.Pos, ".gz", false, null},
-                {SupportedIlluminaFormat.Pos, null, false, null},
-                {SupportedIlluminaFormat.Filter, null, true, "BaseCalls/" + laneDir(DEFAULT_LANE)},
-                {SupportedIlluminaFormat.Barcode, ".bz2", true, "BaseCalls"}
-        };
-    }
-
-    public File makePerTileFile(final File parentDir, final int lane, final int tile, final String extension, final String compression, final boolean longFormat) {
-        return new File(parentDir, "s_" + lane + "_" + longTile(tile, longFormat) + extension + (compression != null ? compression : ""));
-    }
-
-    public void testDefaultPerTileUtil(final PerTileFileUtil ptfu, final String compression, final boolean longFormat, final File parentDir) {
-        final IlluminaFileMap fm = ptfu.getFiles();
-        final IlluminaFileMap fmWTiles = ptfu.getFiles(DEFAULT_TILES);
-
-        Assert.assertEquals(fm.size(), DEFAULT_TILES.size());
-
-        for (final Integer tile : DEFAULT_TILES) {
-            final File tFile = fm.get(tile);
-            final File tFile2 = fmWTiles.get(tile);
-            Assert.assertEquals(tFile.getAbsolutePath(), tFile2.getAbsolutePath());
-            Assert.assertEquals(tFile, makePerTileFile(parentDir, DEFAULT_LANE, tile, ptfu.extension, compression, longFormat));
-            Assert.assertTrue(tFile.exists());
-            Assert.assertTrue(tFile.length() > 0);
-        }
-
-        final List<Integer> tiles = new ArrayList<Integer>(DEFAULT_TILE_TEST_SUBSET);
-        final IlluminaFileMap subsetMap = ptfu.getFiles(DEFAULT_TILE_TEST_SUBSET);
-        for (final Integer tile : subsetMap.keySet()) {
-            tiles.remove(tile);
-            Assert.assertTrue(DEFAULT_TILE_TEST_SUBSET.contains(tile));
-            final File tFile = subsetMap.get(tile);
-            Assert.assertEquals(tFile, makePerTileFile(parentDir, DEFAULT_LANE, tile, ptfu.extension, compression, longFormat));
-            Assert.assertTrue(tFile.exists());
-            Assert.assertTrue(tFile.length() > 0);
-        }
-
-        Assert.assertTrue(tiles.isEmpty());
-    }
-
-    @Test(dataProvider = "perTileFileFormats")
-    public void perTileFileUtilsTest(final SupportedIlluminaFormat format, final String compression, final boolean longFormat, final String parentDir) {
-        makeFiles(format, intensityDir, DEFAULT_LANE, DEFAULT_TILES, DEFAULT_CYCLES, compression);
-
-        final IlluminaFileUtil fileUtil = new IlluminaFileUtil(basecallDir, DEFAULT_LANE);
-        final PerTileFileUtil ptfu = (PerTileFileUtil) fileUtil.getUtil(format);
-
-        Assert.assertTrue(ptfu.filesAvailable());
-        testDefaultPerTileUtil(ptfu, compression, longFormat, (parentDir == null) ? intensityDir : new File(intensityDir, parentDir));
-
-        final IlluminaFileUtil noFilesFu = new IlluminaFileUtil(basecallDir, DEFAULT_LANE + 20);
-        final PerTileFileUtil noFilesPtfu = (PerTileFileUtil) noFilesFu.getUtil(format);
-        Assert.assertFalse(noFilesPtfu.filesAvailable());
-        Assert.assertTrue(noFilesPtfu.getFiles().isEmpty());
-        Assert.assertTrue(noFilesPtfu.getFiles(DEFAULT_TILES).isEmpty());
-    }
-
-    public File makePerTilePerCycleFilePath(final File parentDir, final int lane, final int tile, final int cycle, final String extension) {
-        return new File(parentDir, "C" + cycle + ".1/s_" + lane + "_" + tile + extension);
-    }
-
-    public void testDefaultPerTilePerCycleUtil(final PerTilePerCycleFileUtil pcfu, final File parentDir, final int[] cycles) {
-        final CycleIlluminaFileMap cfm = pcfu.getFiles(cycles);
-        final CycleIlluminaFileMap cfmWTiles = pcfu.getFiles(DEFAULT_TILES, cycles);
-        final CycleIlluminaFileMap cfmNoCycles;
-        if (Arrays.equals(cycles, DEFAULT_CYCLES)) {
-            cfmNoCycles = pcfu.getFiles();
-        } else {
-            cfmNoCycles = null;
-        }
-
-        Assert.assertEquals(cfm.size(), cycles.length);
-
-        for (final int cycle : cycles) {
-            final IlluminaFileMap tFileIter = cfm.get(cycle);
-            final IlluminaFileMap tFileIter2 = cfmWTiles.get(cycle);
-            final IlluminaFileMap tFileIter3;
-            if (cfmNoCycles != null) {
-                tFileIter3 = cfmNoCycles.get(cycle);
-            } else {
-                tFileIter3 = null;
-            }
-
-            for (final Integer tile : DEFAULT_TILES) {
-                final File tcFile = tFileIter.get(tile);
-                final File tcFile2 = tFileIter2.get(tile);
-
-                Assert.assertEquals(tcFile.getAbsolutePath(), tcFile2.getAbsolutePath());
-                if (tFileIter3 != null) {
-                    final File tfFile3 = tFileIter3.get(tile);
-                    Assert.assertEquals(tcFile.getAbsolutePath(), tfFile3.getAbsolutePath());
-                }
-
-                Assert.assertEquals(tcFile, makePerTilePerCycleFilePath(parentDir, DEFAULT_LANE, tile, cycle, pcfu.extension));
-                Assert.assertTrue(tcFile.exists());
-                Assert.assertTrue(tcFile.length() > 0);
-            }
-        }
-    }
-
-
-    public void testSubsetDefaultPerTilePerCycleUtil(final PerTilePerCycleFileUtil pcfu, final File parentDir, final int[] cycles) {
-        final List<Integer> tiles = new ArrayList<Integer>(DEFAULT_TILE_TEST_SUBSET);
-        final CycleIlluminaFileMap subsetMap = pcfu.getFiles(DEFAULT_TILE_TEST_SUBSET, cycles);
-        final CycleIlluminaFileMap cfmNoCycles;
-        if (Arrays.equals(cycles, DEFAULT_CYCLES)) {
-            cfmNoCycles = pcfu.getFiles(DEFAULT_TILE_TEST_SUBSET);
-        } else {
-            cfmNoCycles = null;
-        }
-
-        for (final int cycle : cycles) {
-            final IlluminaFileMap tFileIter = subsetMap.get(cycle);
-            final IlluminaFileMap tFileIter2;
-            if (cfmNoCycles != null) {
-                tFileIter2 = cfmNoCycles.get(cycle);
-            } else {
-                tFileIter2 = null;
-            }
-
-
-            for (final Integer tile : subsetMap.get(cycle).keySet()) {
-                Assert.assertTrue(DEFAULT_TILE_TEST_SUBSET.contains(tile));
-                tiles.remove(tile);
-                final File tcFile = tFileIter.get(tile);
-                if (tFileIter2 != null) {
-                    Assert.assertEquals(tcFile, tFileIter2.get(tile));
-                }
-                Assert.assertEquals(tcFile, makePerTilePerCycleFilePath(parentDir, DEFAULT_LANE, tile, cycle, pcfu.extension));
-                Assert.assertTrue(tcFile.exists());
-                Assert.assertTrue(tcFile.length() > 0);
-            }
-        }
-
-        Assert.assertTrue(tiles.isEmpty());
-    }
-
-    public static int[] cycleRange(final Range range) {
-        return cycleRange(range.start, range.end);
-    }
-
-    public static int[] cycleRange(final int start, final int end) {
-        final int[] cycles = new int[end - start + 1];
-        for (int i = 0; i < cycles.length; i++) {
-            cycles[i] = start + i;
-        }
-
-        return cycles;
-    }
-
-    public static int[] cycleRange(final int end) {
-        return cycleRange(1, end);
-    }
-
-    @DataProvider(name = "perTilePerCycleFileFormats")
-    public Object[][] perTilePerCycleFileFormats() {
-        return new Object[][]{
-                {SupportedIlluminaFormat.Bcl, "BaseCalls/" + laneDir(DEFAULT_LANE), DEFAULT_CYCLES, false, false},
-                {SupportedIlluminaFormat.Bcl, "BaseCalls/" + laneDir(DEFAULT_LANE), cycleRange(4), true, true},
-        };
-    }
-
-    @Test(dataProvider = "perTilePerCycleFileFormats")
-    public void perTilePerCycleFileUtilsTest(final SupportedIlluminaFormat format, final String parentDir,
-                                             final int[] cycles, final boolean createEarlySkippedCycles,
-                                             final boolean createLateSkippedCycles) {
-        if (createEarlySkippedCycles) {
-            makeFiles(format, intensityDir, DEFAULT_LANE, DEFAULT_TILES, cycleRange(1, cycles[0]), null);
-        }
-
-        makeFiles(format, intensityDir, DEFAULT_LANE, DEFAULT_TILES, cycles, null);
-
-        if (createLateSkippedCycles) {
-            makeFiles(format, intensityDir, DEFAULT_LANE, DEFAULT_TILES, cycleRange(cycles[cycles.length - 1] + 1, DEFAULT_LAST_CYCLE), null);
-        }
-
-        final IlluminaFileUtil fileUtil = new IlluminaFileUtil(basecallDir, DEFAULT_LANE);
-        final PerTilePerCycleFileUtil pcfu = (PerTilePerCycleFileUtil) fileUtil.getUtil(format);
-
-        Assert.assertTrue(pcfu.filesAvailable());
-        testDefaultPerTilePerCycleUtil(pcfu, (parentDir == null) ? intensityDir : new File(intensityDir, parentDir), cycles);
-        testSubsetDefaultPerTilePerCycleUtil(pcfu, (parentDir == null) ? intensityDir : new File(intensityDir, parentDir), cycles);
-
-        final IlluminaFileUtil noFilesFu = new IlluminaFileUtil(basecallDir, DEFAULT_LANE + 20);
-        final PerTilePerCycleFileUtil noFilesPcfu = (PerTilePerCycleFileUtil) noFilesFu.getUtil(format);
-
-        Assert.assertFalse(noFilesPcfu.filesAvailable());
-        Assert.assertTrue(noFilesPcfu.getFiles().isEmpty());
-        Assert.assertTrue(noFilesPcfu.getFiles(DEFAULT_TILES).isEmpty());
-    }
-
-    @DataProvider(name = "missingCycleDataRanges")
-    public Object[][] missingCycleDataRanges() {
-        return new Object[][]{
-                {makeList(new Range(10, 15))},
-                {makeList(new Range(9, 12), new Range(14, 15))}
-        };
-    }
-
-    @Test(expectedExceptions = PicardException.class, dataProvider = "missingCycleDataRanges")
-    public void perTilePerCycleFileUtilsMissingCycleTest(final List<Range> cycleRangesToMake) {
-        final SupportedIlluminaFormat format = SupportedIlluminaFormat.Bcl;
-
-        for (final Range range : cycleRangesToMake) {
-            makeFiles(format, intensityDir, DEFAULT_LANE, DEFAULT_TILES, cycleRange(range), null);
-        }
-
-        final IlluminaFileUtil fileUtil = new IlluminaFileUtil(basecallDir, DEFAULT_LANE);
-        final PerTilePerCycleFileUtil pcfu = (PerTilePerCycleFileUtil) fileUtil.getUtil(format);
-
-        Assert.assertTrue(pcfu.filesAvailable());
-        final int[] cycles = cycleRange(9, 16);
-        final CycleIlluminaFileMap cfm = pcfu.getFiles(cycles);
-        cfm.assertValid(DEFAULT_TILES, cycles);
-    }
-
-
-    public static void makeFiles(final SupportedIlluminaFormat format, final File intensityDir, final int lane,
-                                 final List<Integer> tiles, final int[] cycles) {
-        makeFiles(format, intensityDir, lane, tiles, cycles, null);
-    }
-
-    public static void makeFiles(final SupportedIlluminaFormat format, final File intensityDir, final int lane,
-                                 final List<Integer> tiles, final int[] cycles, final String compression) {
-        String laneDir = String.valueOf(lane);
-        while (laneDir.length() < 3) {
-            laneDir = "0" + laneDir;
-        }
-        laneDir = "L" + laneDir;
-
-
-        final File basecallDir = new File(intensityDir, "BaseCalls");
-        final File basecallLaneDir = new File(basecallDir, laneDir);
-        final File intensityLaneDir = new File(intensityDir, laneDir);
-
-        switch (format) {
-            //per tile formats
-            case Barcode:
-                makePerTileFiles(basecallDir, lane, tiles, maybeAddExt("_barcode.txt", compression), true);
-                break;
-
-            case Pos:
-                makePerTileFiles(intensityDir, lane, tiles, maybeAddExt("_pos.txt", compression), false);
-                break;
-
-            case Locs:
-                makePerTileFiles(intensityLaneDir, lane, tiles, maybeAddExt(".locs", null), false);
-                break;
-
-            case Clocs:
-                makePerTileFiles(intensityLaneDir, lane, tiles, maybeAddExt(".clocs", null), false);
-                break;
-
-            case Filter:
-                makePerTileFiles(basecallLaneDir, lane, tiles, maybeAddExt(".filter", null), true);
-                break;
-
-            //per tile per cycle formats
-            case Bcl:
-                makePerTilePerCycleFiles(basecallLaneDir, lane, tiles, cycles, ".bcl");
-                break;
-        }
-    }
-
-    private static void makePerTileFiles(final File parentDir, final int lane, final List<Integer> tiles, final String ext, final boolean longName) {
-        if (!parentDir.exists()) {
-            if (!parentDir.mkdir()) {
-                throw new RuntimeException("Couldn't create directory " + parentDir.getAbsolutePath());
-            }
-        }
-
-        for (final Integer tile : tiles) {
-            writeNonEmptyFile(new File(parentDir, "s_" + lane + "_" + longTile(tile, longName) + ext));
-        }
-    }
-
-    private static void makePerTilePerCycleFiles(final File parentDir, final int lane, final List<Integer> tiles, final int[] cycles, final String ext) {
-        if (!parentDir.exists()) {
-            if (!parentDir.mkdir()) {
-                throw new RuntimeException("Couldn't create directory " + parentDir.getAbsolutePath());
-            }
-        }
-
-        for (final int cycle : cycles) {
-            final File cycleDir = new File(parentDir, "C" + cycle + ".1");
-            if (!cycleDir.exists()) {
-                if (!cycleDir.mkdir()) {
-                    throw new RuntimeException("Couldn't create directory " + cycleDir.getAbsolutePath());
-                }
-            }
-
-            for (final Integer tile : tiles) {
-                writeNonEmptyFile(new File(cycleDir, "s_" + lane + "_" + tile + ext));
-            }
-        }
-    }
-
-    private static List<String> makeCycleFileList(final File dir, final String ext, final int lane, final int[] cycles, final int... tiles) {
-        return makeCycleFileList(dir, ext, lane, cycles, false, tiles);
-    }
-
-    private static List<String> makeCycleFileList(final File dir, final String ext, final int lane, final int[] cycles, final boolean longFmt, final int... tiles) {
-        final List<String> files = new ArrayList<String>();
-        final File laneDir = new File(dir, laneDir(lane));
-
-        for (final int cycle : cycles) {
-            final File cycleDir = new File(laneDir, "C" + cycle + ".1");
-            for (final Integer tile : tiles) {
-                files.add(cycleDir + "/s_" + lane + "_" + longTile(tile, longFmt) + ext);
-            }
-        }
-
-        return files;
-    }
-
-    private static void writeNonEmptyFile(final File file) {
-        try {
-            final OutputStream outputStream = new DataOutputStream(new FileOutputStream(file));
-            final int expectedLength = 10;
-            outputStream.write(expectedLength);
-            // The negative beginning index is to accommodate the header. Fancy. Ever so fancy.
-            for (int i = -3; i < expectedLength; i++) outputStream.write(0x0);
-            outputStream.close();
-        } catch (final IOException e) {
-            throw new RuntimeException("Exception trying to create non-empty file!", e);
-        }
-    }
-
-    private static String laneDir(final int lane) {
-        String ldir = String.valueOf(lane);
-        while (ldir.length() < 3) {
-            ldir = "0" + ldir;
-        }
-        return "L" + ldir;
-    }
-
-    private static String longTile(final int tile, final boolean makeLong) {
-        if (makeLong) {
-            String lt = String.valueOf(tile);
-            while (lt.length() < 4) {
-                lt = "0" + lt;
-            }
-            return lt;
-        } else {
-            return String.valueOf(tile);
-        }
-    }
-
-    private static String maybeAddExt(final String fileExt, final String compressionExt) {
-        if (compressionExt != null) {
-            return fileExt + compressionExt;
-        } else {
-            return fileExt;
-        }
-    }
-}
diff --git a/src/tests/java/net/sf/picard/illumina/parser/PerTileParserTest.java b/src/tests/java/net/sf/picard/illumina/parser/PerTileParserTest.java
deleted file mode 100644
index b686ef7..0000000
--- a/src/tests/java/net/sf/picard/illumina/parser/PerTileParserTest.java
+++ /dev/null
@@ -1,169 +0,0 @@
-package net.sf.picard.illumina.parser;
-
-import static net.sf.samtools.util.CollectionUtil.makeList;
-
-import net.sf.picard.PicardException;
-import net.sf.samtools.util.CloseableIterator;
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.util.*;
-
-public class PerTileParserTest {
-
-    private static final Map<String, List<Integer>> FILE_TO_VALUE = new HashMap<String, List<Integer>>();
-    private static final IlluminaFileMap FILE_MAP = new IlluminaFileMap();
-    static {
-        FILE_MAP.put(1, new File("s_1_1"));
-        FILE_MAP.put(2, new File("s_1_2"));
-        FILE_MAP.put(3, new File("s_1_3"));
-        FILE_MAP.put(4, new File("s_1_4"));
-        FILE_MAP.put(5, new File("s_1_5"));
-        FILE_TO_VALUE.put("s_1_1", makeList(1, 2, 3, 4, 5));
-        FILE_TO_VALUE.put("s_1_2", makeList(6, 7, 8, 9, 10));
-        FILE_TO_VALUE.put("s_1_3", makeList(11, 12, 13, 14, 15));
-        FILE_TO_VALUE.put("s_1_4", makeList(16, 17, 18, 19, 20));
-        FILE_TO_VALUE.put("s_1_5", makeList(21, 22, 23, 24, 25));
-    }
-
-    class DummyDt implements IlluminaData {
-        public DummyDt(final Integer value) {
-            this.value = value;
-        }
-        public final Integer value;
-    }
-
-    class MockPerTileParser extends PerTileParser<DummyDt> {
-
-        public MockPerTileParser(final IlluminaFileMap tilesToFiles) {
-            super(tilesToFiles);
-        }
-
-        @Override
-        protected CloseableIterator<DummyDt> makeTileIterator(final File file) {
-            return new CloseableIterator<DummyDt>() {
-                private final Iterator<Integer> values = FILE_TO_VALUE.get(file.getName()).iterator();
-
-                @Override
-                public void close() {
-
-                }
-
-                @Override
-                public boolean hasNext() {
-                    return values.hasNext();
-                }
-
-                @Override
-                public DummyDt next() {
-                    return new DummyDt(values.next());
-                }
-
-                @Override
-                public void remove() {
-                    throw new UnsupportedOperationException();
-                }
-            };
-        }
-
-        @Override
-        public Set<IlluminaDataType> supportedTypes() {
-            return null;  //To change body of implemented methods use File | Settings | File Templates.
-        }
-    }
-
-    @Test
-    public void basicIterationTest() {
-        final IlluminaFileMap fm = new IlluminaFileMap();
-        fm.put(1, new File("s_1_1"));
-        fm.put(2, new File("s_1_2"));
-        fm.put(3, new File("s_1_3"));
-        fm.put(4, new File("s_1_4"));
-        fm.put(5, new File("s_1_5"));
-
-        final PerTileParser<DummyDt> ddts = new MockPerTileParser(fm);
-
-        for(int i = 0; i < 25; i++) {
-            Assert.assertTrue(ddts.hasNext());
-            Assert.assertEquals(ddts.next().value, new Integer(i+1));
-        }
-
-        Assert.assertFalse(ddts.hasNext());
-    }
-
-    @DataProvider(name="seekingTests")
-    public Object[][] seekingTests() {
-        return new Object[][] {
-            {1,  4, null, null},
-            {15, 1, null, null},
-            {25, 3, null, null},
-            {24, 5, null, null},
-            {1,  3,   10, 1},
-            {1,  3,   15, 2},
-            {12, 2,   15, 4},
-            {6,  3,   12, 5},
-            {14, 5,   25, 2}
-        };
-    }
-
-    @Test(dataProvider = "seekingTests")
-    public void seekToTileTest(Integer firstSeekPos, Integer firstTile, Integer secondSeekPos, Integer secondTile) {
-        final PerTileParser<DummyDt> ddts = new MockPerTileParser(FILE_MAP);
-
-        for(int i = 1; i <= firstSeekPos; i++) {
-            Assert.assertTrue(ddts.hasNext());
-            Assert.assertEquals(ddts.next().value, new Integer(i));
-        }
-
-        ddts.seekToTile(firstTile);
-
-        int start = firstTile * 5 - 4;
-        if(secondSeekPos != null) {
-            for(int i = start; i <= secondSeekPos; i++) {
-                Assert.assertTrue(ddts.hasNext());
-                Assert.assertEquals(ddts.next().value, new Integer(i));
-            }
-            ddts.seekToTile(secondTile);
-            start = secondTile * 5 - 4;
-        }
-
-        for(int i = start; i <= 25; i++) {
-            Assert.assertTrue(ddts.hasNext());
-            Assert.assertEquals(ddts.next().value, new Integer(i));
-        }
-
-        Assert.assertFalse(ddts.hasNext());
-    }
-
-    @DataProvider(name="missingTiles")
-    public Object [][] missingTiles() {
-        return new Object [][] {
-           {-1}, {10}, {Integer.MAX_VALUE}, {Integer.MIN_VALUE}
-        };
-    }
-
-    @Test(expectedExceptions = PicardException.class, dataProvider="missingTiles")
-    public void missingTileTest(final Integer missingTile) {
-        final PerTileParser<DummyDt> ddts = new MockPerTileParser(FILE_MAP);
-        ddts.seekToTile(missingTile);
-    }
-
-    @Test(expectedExceptions = PicardException.class)
-    public void failVerifyTestTooManyTiles() {
-        final PerTileParser<DummyDt> ddts = new MockPerTileParser(FILE_MAP);
-        ddts.verifyData(makeList(1,2,3,4,5,6), null);
-    }
-    @Test(expectedExceptions = PicardException.class)
-    public void failVerifyTestMissingTile() {
-        final PerTileParser<DummyDt> ddts = new MockPerTileParser(FILE_MAP);
-        ddts.verifyData(makeList(1,2,4,5), null);
-    }
-
-    @Test
-    public void passVerifyTest() {
-        final PerTileParser<DummyDt> ddts = new MockPerTileParser(FILE_MAP);
-        ddts.verifyData(makeList(1,2,3,4,5), null);
-    }
-}
diff --git a/src/tests/java/net/sf/picard/illumina/parser/PerTilePerCycleParserTest.java b/src/tests/java/net/sf/picard/illumina/parser/PerTilePerCycleParserTest.java
deleted file mode 100644
index 0348a2d..0000000
--- a/src/tests/java/net/sf/picard/illumina/parser/PerTilePerCycleParserTest.java
+++ /dev/null
@@ -1,197 +0,0 @@
-package net.sf.picard.illumina.parser;
-
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.NoSuchElementException;
-import java.util.Set;
-
-import static net.sf.samtools.util.CollectionUtil.makeList;
-
-public class PerTilePerCycleParserTest {
-    public static final List<Integer> DEFAULT_TILES = makeList(1, 2, 3, 4);
-    public static final int[] DEFAULT_OUTPUT_LENGTHS = new int[]{10, 5, 5};
-    public static final int[] CYCLES = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20};
-    public static final int MAX_CYCLE = 20;
-    public static final OutputMapping OUTPUT_MAPPING = new OutputMapping(new ReadStructure("20T"));
-
-    private class MockCycledIlluminaData implements IlluminaData {
-        private final List<String> values;
-
-        public MockCycledIlluminaData() {
-            this.values = new ArrayList<String>();
-        }
-
-        public void addValue(final String value) {
-            values.add(value);
-        }
-
-        public List<String> getValues() {
-            return values;
-        }
-    }
-
-    class MockPerTileCycleParser extends PerTileCycleParser<MockCycledIlluminaData> {
-        private final int[] expectedOutputLengths;
-
-        public MockPerTileCycleParser(final File directory, final int lane, final CycleIlluminaFileMap tilesToCycleFiles, final OutputMapping outputMapping) {
-            super(directory, lane, tilesToCycleFiles, outputMapping);
-            expectedOutputLengths = outputMapping.getOutputReadLengths();
-            this.initialize();
-        }
-
-        @Override
-        protected CycleFilesParser<MockCycledIlluminaData> makeCycleFileParser(final List<File> files) {
-            return new CycleFilesParser<MockCycledIlluminaData>() {
-                int currentCycle = 0;
-
-                @Override
-                public void close() {
-
-                }
-
-                @Override
-                public MockCycledIlluminaData next() {
-                    final MockCycledIlluminaData ild = new MockCycledIlluminaData();
-                    if (!hasNext()) {
-                        throw new NoSuchElementException();
-                    }
-
-                    ild.addValue(str_del(files.get(currentCycle++)));
-                    return ild;
-                }
-
-                @Override
-                public boolean hasNext() {
-                    return currentCycle < MAX_CYCLE;
-                }
-            };
-        }
-
-        @Override
-        public void initialize() {
-            seekToTile(currentTile);
-        }
-
-        public Set<IlluminaDataType> supportedTypes() {
-            return null;
-        }
-
-        @Override
-        public void close() {
-            //no-op
-        }
-    }
-
-    public List<String> getFileNames(final List<Integer> tiles) {
-        final List<String> fileNames = new ArrayList<String>();
-        for (final Integer tile : tiles) {
-            for (int i = 1; i <= MAX_CYCLE; i++) {
-                fileNames.add(str_del(tile, i));
-            }
-        }
-        return fileNames;
-    }
-
-    public CycleIlluminaFileMap getIlluminaFileMaps(final List<Integer> tiles, final int[] cycles) {
-        final CycleIlluminaFileMap cycleFileMap = new CycleIlluminaFileMap();
-        for (final int cycle : cycles) {
-            final IlluminaFileMap fileMap = new IlluminaFileMap();
-            for (final Integer tile : tiles) {
-                fileMap.put(tile, new File(str_del(tile, cycle)));
-            }
-            cycleFileMap.put(cycle, fileMap);
-        }
-        return cycleFileMap;
-    }
-
-    public static String str_del(final Object... objects) {
-        String out = objects[0].toString();
-        for (int i = 1; i < objects.length; i++) {
-            out += "_" + objects[i];
-        }
-        return out;
-    }
-
-    @Test
-    public void basicIterationTest() {
-        final List<String> expectedValues = getFileNames(DEFAULT_TILES);
-        final PerTileCycleParser<MockCycledIlluminaData> parser = makeParser();
-
-        int index = 0;
-        while (parser.hasNext()) {
-            index = compareValues(parser.next().values, expectedValues, index);
-        }
-
-        Assert.assertEquals(index, expectedValues.size());
-    }
-
-
-    private int compareValues(final List<String> parserValues, final List<String> expectedValues, int index) {
-        for (final String parserValue : parserValues) {
-            Assert.assertTrue(index < expectedValues.size());
-            Assert.assertEquals(parserValue, expectedValues.get(index), "With index " + index);
-            ++index;
-        }
-
-        return index;
-    }
-
-    public PerTileCycleParser<MockCycledIlluminaData> makeParser() {
-        final CycleIlluminaFileMap fileMap = getIlluminaFileMaps(DEFAULT_TILES, CYCLES);
-        return new MockPerTileCycleParser(new File("FakeFile"), 1, fileMap, OUTPUT_MAPPING);
-    }
-
-    @DataProvider(name = "seekingTests")
-    public Object[][] seekingTests() {
-        return new Object[][]{
-                {1, 3, null, null},
-                {22, 1, null, null},
-                {38, 2, null, null},
-                {75, 4, null, null},
-                {1, 3, 70, 1},
-                {1, 3, 45, 2},
-                {12, 2, 59, 4},
-                {45, 3, 70, 3},
-                {14, 1, 5, 2}
-        };
-    }
-
-
-    @Test(dataProvider = "seekingTests")
-    public void seekingIterationTest(final Integer seekPos1, final Integer newTile1, final Integer seekPos2, final Integer newTile2) {
-        final List<String> expectedValues = getFileNames(DEFAULT_TILES);
-        final PerTileCycleParser<MockCycledIlluminaData> parser = makeParser();
-
-        int index = 0;
-        for (int i = 0; i <= seekPos1; i++) {
-            Assert.assertTrue(parser.hasNext());
-            index = compareValues(parser.next().values, expectedValues, index);
-        }
-
-        parser.seekToTile(newTile1);
-
-        index = (newTile1 - 1) * MAX_CYCLE;
-        if (seekPos2 != null) {
-            for (int i = index; i <= seekPos2; i++) {
-                Assert.assertTrue(parser.hasNext());
-                index = compareValues(parser.next().values, expectedValues, index);
-            }
-
-            parser.seekToTile(newTile2);
-            index = (newTile2 - 1) * MAX_CYCLE;
-        }
-
-        for (int i = index; i < MAX_CYCLE * DEFAULT_TILES.size(); i++) {
-            Assert.assertTrue(parser.hasNext());
-            index = compareValues(parser.next().values, expectedValues, index);
-        }
-
-        Assert.assertFalse(parser.hasNext());
-
-    }
-}
diff --git a/src/tests/java/net/sf/picard/illumina/parser/PosParserTest.java b/src/tests/java/net/sf/picard/illumina/parser/PosParserTest.java
deleted file mode 100644
index 005c478..0000000
--- a/src/tests/java/net/sf/picard/illumina/parser/PosParserTest.java
+++ /dev/null
@@ -1,201 +0,0 @@
-package net.sf.picard.illumina.parser;
-
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.util.*;
-import static net.sf.samtools.util.CollectionUtil.makeList;
-
-public class PosParserTest {
-
-    public static final File TEST_DIR = new File("testdata/net/sf/picard/illumina/parserTests/posParser");
-    public static final File S_1_1_POS = new File(TEST_DIR, "s_1_1_pos.txt");
-    public static final File S_1_2_POS = new File(TEST_DIR, "s_1_2_pos.txt");
-    public static final File S_1_3_POS = new File(TEST_DIR, "s_1_3_pos.txt");
-    public static final File S_9_3201_POS = new File(TEST_DIR, "s_9_3201_pos.txt");
-    public static final File S_9_3202_POS = new File(TEST_DIR, "s_9_3202_pos.txt");
-
-    static class TestResult {
-        public final int lane;
-        public final int tile;
-        public final float xPos;
-        public final float yPos;
-        public final int xQSeqCoord;
-        public final int yQSeqCoord;
-
-        public TestResult(final int lane, final int tile, final float xPos, final float yPos, final int xQseqCoord, final int yQSeqCoord) {
-            this.lane = lane;
-            this.tile = tile;
-            this.xPos = xPos;
-            this.yPos = yPos;
-            this.xQSeqCoord = xQseqCoord;
-            this.yQSeqCoord = yQSeqCoord;
-        }
-    }
-
-    public static List<TestResult> makeTestResults(final int lane, final int tile, final float [] xyPos, final int [] xyQseq) {
-        final ArrayList<TestResult> results = new ArrayList<TestResult>();
-        for(int i = 0; i < xyPos.length; i+=2) {
-            results.add(new TestResult(lane, tile, xyPos[i], xyPos[i+1], xyQseq[i], xyQseq[i+1]));
-        }
-        return results;
-    }
-
-    public static Map<String, List<TestResult>> TEST_DATA = new HashMap<String, List<TestResult>>();
-    static {
-       float[] pos = {
-               101.35f,      207.8f,
-               102.88f,      209.22f,
-               0.35f,        211.99f,
-               10.11f,       2540.55f,
-               11011.81f,    211
-       };
-
-       int[] qseq = {
-               2014,      3078,
-               2029,      3092,
-               1004,      3120,
-               1101,      26406,
-               111118,    3110
-       };
-       TEST_DATA.put(S_1_1_POS.getName(), makeTestResults(1,1, pos, qseq));
-
-        pos = new float[] {
-                2101.35f,  207.82f,
-                202.88f,  209.222f,
-                2.35f,    211.992f,
-                2.11f,   2540.552f,
-                21011.81f,    2112f
-        };
-
-        qseq = new int[]{
-                22014,     3078,
-                3029,      3092,
-                1024,      3120,
-                1021,      26406,
-                211118,    22120
-        };
-        TEST_DATA.put(S_1_2_POS.getName(), makeTestResults(1,2, pos, qseq));
-
-        pos = new float[] {
-                301.35f,  207.83f,
-                302.88f,  209.23f,
-                0.35f,    911.993f,
-                30.11f,   2540.553f
-        };
-
-        qseq = new int[]{
-                4014,      3078,
-                4029,      3092,
-                1004,      10120,
-                1301,      26406
-        };
-        TEST_DATA.put(S_1_3_POS.getName(), makeTestResults(1,3, pos, qseq));
-
-        pos = new float[] {
-            901.00f,   8011.00f,
-            9.05f,    32.00f,
-            3201.11f, 32001.00f
-        };
-
-        qseq = new int[]{
-            10010, 81110,
-            1091,  1320,
-            33011, 321010
-        };
-        TEST_DATA.put(S_9_3201_POS.getName(), makeTestResults(9,3201, pos, qseq));
-
-        pos = new float[] {
-                3252f,      7785f,
-                97.350f,    0.01f,
-                88.00f,     942.01f,
-                87.85f,     70.01f,
-                32022.000f, 32000.0f
-        };
-
-        qseq = new int[]{
-                33520,  78850,
-                1974,   1000,
-                1880,   10420,
-                1879,   1700,
-                321220, 321000
-        };
-        TEST_DATA.put(S_9_3202_POS.getName(), makeTestResults(9,3202, pos, qseq));
-    }
-
-    public static void compareResults(final TestResult tr, final PositionalData pd, final int index) {
-        Assert.assertEquals(tr.xQSeqCoord, pd.getXCoordinate(), " At index " + index);
-        Assert.assertEquals(tr.yQSeqCoord, pd.getYCoordinate(), " At index " + index);
-    }
-
-    @DataProvider(name = "singleTileData")
-    public Object [][] singleTileData() {
-        return new Object[][]{
-            {1, 1, S_1_1_POS},
-            {1, null, S_1_1_POS},
-            {3202, 3202, S_9_3202_POS},
-            {3202, null, S_9_3202_POS}
-        };
-    }
-
-    @Test(dataProvider = "singleTileData")
-    public void singleTileDataTest(final int tile, final Integer startingTile, final File file) {
-        final IlluminaFileMap fm = new IlluminaFileMap();
-        fm.put(tile, file);
-
-        final PosParser parser = (startingTile == null) ? new PosParser(fm, IlluminaFileUtil.SupportedIlluminaFormat.Pos) :
-                                                          new PosParser(fm, startingTile, IlluminaFileUtil.SupportedIlluminaFormat.Pos);
-        final Iterator<TestResult> expected = TEST_DATA.get(file.getName()).iterator();
-
-        int index = 0;
-        while(expected.hasNext()) {
-            Assert.assertTrue(parser.hasNext());
-            compareResults(expected.next(), parser.next(), index);
-            ++index;
-        }
-
-        Assert.assertFalse(parser.hasNext());
-        parser.close();
-    }
-
-    @DataProvider(name = "multiTileData")
-    public Object [][] multiTileData() {
-        return new Object[][]{
-            {makeList(1,2,3),     null,    makeList(S_1_1_POS, S_1_2_POS, S_1_3_POS)},
-            {makeList(1,2,3),     1,       makeList(S_1_1_POS, S_1_2_POS, S_1_3_POS)},
-            {makeList(1,3),       0,       makeList(S_1_1_POS, S_1_3_POS)},
-            {makeList(3201,3202), null,    makeList(S_9_3201_POS, S_9_3202_POS)},
-            {makeList(3201,3202), 1,       makeList(S_9_3201_POS, S_9_3202_POS)},
-        };
-    }
-
-    @Test(dataProvider = "multiTileData")
-    public void multiTileDataTest(final List<Integer> tiles, final Integer startingTileIndex, final List<File> files) {
-        final IlluminaFileMap fm = new IlluminaFileMap();
-        for(int i = 0; i < tiles.size(); i++) {
-            fm.put(tiles.get(i), files.get(i));
-        }
-
-        final PosParser parser = (startingTileIndex == null) ? new PosParser(fm, IlluminaFileUtil.SupportedIlluminaFormat.Pos) :
-                                                               new PosParser(fm, tiles.get(startingTileIndex), IlluminaFileUtil.SupportedIlluminaFormat.Pos);
-        final List<TestResult> expectedResultsList = new ArrayList<TestResult>();
-        final int t1 = (startingTileIndex != null) ? startingTileIndex : 0;
-        for(int i = t1; i < tiles.size(); i++) {
-            expectedResultsList.addAll(TEST_DATA.get(files.get(i).getName()));
-        }
-
-        final Iterator<TestResult> expected = expectedResultsList.iterator();
-
-        int index = 0;
-        while(expected.hasNext()) {
-            Assert.assertTrue(parser.hasNext());
-            compareResults(expected.next(), parser.next(), index);
-            ++index;
-        }
-
-        Assert.assertFalse(parser.hasNext());
-        parser.close();
-    }
-}
diff --git a/src/tests/java/net/sf/picard/illumina/parser/fakers/BclFileFakerTest.java b/src/tests/java/net/sf/picard/illumina/parser/fakers/BclFileFakerTest.java
deleted file mode 100644
index 445da40..0000000
--- a/src/tests/java/net/sf/picard/illumina/parser/fakers/BclFileFakerTest.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package net.sf.picard.illumina.parser.fakers;
-
-import net.sf.picard.illumina.parser.readers.BclQualityEvaluationStrategy;
-import net.sf.picard.illumina.parser.readers.BclReader;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.io.File;
-
-/**
- * The MIT License
- * <p/>
- * Copyright (c) 2014 The Broad Institute
- * <p/>
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * <p/>
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * <p/>
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-public class BclFileFakerTest {
-
-    @Test
-    public void testFileLengthMatchesHeaderLength() throws Exception {
-        final File fakeFile = File.createTempFile("BclFileFakerTest", ".bcl");
-        fakeFile.deleteOnExit();
-
-        new BclFileFaker().fakeFile(fakeFile, 100000);
-        // .make() has a number of checks for the file
-        final BclReader bclReader = new BclReader(
-            fakeFile,
-            new BclQualityEvaluationStrategy(BclQualityEvaluationStrategy.ILLUMINA_ALLEGED_MINIMUM_QUALITY), false);
-        Assert.assertEquals(100000, BclReader.getNumberOfClusters(fakeFile));
-        Assert.assertEquals(BclReader.getNumberOfClusters(fakeFile), fakeFile.length() - 4);
-    }
-
-    @Test
-    public void testGZFileIsActuallyGZipped() throws Exception {
-        final File fakeFile = File.createTempFile("BclFileFakerTest", ".bcl.gz");
-        fakeFile.deleteOnExit();
-
-        new BclFileFaker().fakeFile(fakeFile, 100000);
-        new BclReader(
-                fakeFile,
-                new BclQualityEvaluationStrategy(BclQualityEvaluationStrategy.ILLUMINA_ALLEGED_MINIMUM_QUALITY), false);
-    }
-}
diff --git a/src/tests/java/net/sf/picard/illumina/parser/readers/AbstractIlluminaPositionFileReaderTest.java b/src/tests/java/net/sf/picard/illumina/parser/readers/AbstractIlluminaPositionFileReaderTest.java
deleted file mode 100644
index f245e2e..0000000
--- a/src/tests/java/net/sf/picard/illumina/parser/readers/AbstractIlluminaPositionFileReaderTest.java
+++ /dev/null
@@ -1,156 +0,0 @@
-package net.sf.picard.illumina.parser.readers;
-
-
-import net.sf.picard.PicardException;
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.File;
-
-public class AbstractIlluminaPositionFileReaderTest {
-
-    //Pos values should never be negative
-    private static final float [] X_COORDS = new float[] {
-        0.00f,      0.012f, 0.09f,   1.44f,       23.45f,           155.893f,  588.921f, 801f,    1201.182f, 101.25f,
-        13201.01f,  0.59f,  0.3540f, 9999999.99f, 7989.88999f,      9298.134f, 12.3f,    109.09f, 54.3f,     17.15f
-    };
-
-    private static final int [] X_QSEQ_COORDS = new int [] {
-        1000,   1000, 1001, 1014,      1235,       2559,  6889, 9010, 13012, 2013,
-        133010, 1006, 1004, 100001000, 80899,      93981, 1123, 2091, 1543, 1172
-    };
-
-    private static final float [] Y_COORDS = new float[] {
-        //A note on index 2 -> this number causes truncation of the float, presumably that's fine as
-        //Illumina describes the value as a floating point number
-        679.99f,    32.0145f, 1878854.89f, 0.00f, 23.45f,           9875.64f,  42.42f,  64.01530f, 103.25f, 102.75f,
-        13201.01f,  0.59f,    0.3540f,     0.02f, 9875.66f,         9298.134f, 12.3f,   67.012f,   0.1254f, 19.54f
-    };
-
-    private static final int [] Y_QSEQ_COORDS = new int [] {
-        7800,   1320, 18789548, 1000, 1235,       99756, 1424, 1640, 2033, 2028,
-        133010, 1006, 1004,     1000, 99757,      93981, 1123, 1670, 1001, 1195
-    };
-
-
-    private static class MockPositionFileReader extends AbstractIlluminaPositionFileReader {
-        private final float [] xCoords;
-        private final float [] yCoords;
-        private int currentCluster;
-
-        public MockPositionFileReader(final String fileName, final int lane, final int tile, final float [] xCoords, final float [] yCoords) {
-            super(new File(fileName));
-            this.xCoords = xCoords;
-            this.yCoords = yCoords;
-            currentCluster = 0;
-        }
-
-        public MockPositionFileReader(final int lane, final int tile, final float [] xCoords, final float [] yCoords) {
-            super(new File("s_" + lane + "_" + tile + "_pos.txt.gz"));
-            this.xCoords = xCoords;
-            this.yCoords = yCoords;
-            currentCluster = 0;
-        }
-
-        @Override
-        protected PositionInfo unsafeNextInfo() {
-            PositionInfo pi = new PositionInfo(xCoords[currentCluster], yCoords[currentCluster], getLane(), getTile());
-            ++currentCluster;
-            return pi;
-        }
-
-        @Override
-        protected String makeExceptionMsg() {
-            return "Abstract IlluminaPositionFileReaderTest currentCluster=" + currentCluster;
-        }
-
-        @Override
-        public boolean hasNext() {
-            return currentCluster < xCoords.length;
-        }
-
-        @Override
-        public void close() {
-        }
-    }
-
-    @Test
-    public void validReaderTest() {
-        final int lane = 2;
-        final int tile = 8;
-        final AbstractIlluminaPositionFileReader reader = new MockPositionFileReader(lane, tile, X_COORDS, Y_COORDS);
-
-        int index = 0;
-        while(reader.hasNext()) {
-            AbstractIlluminaPositionFileReader.PositionInfo pi = reader.next();
-            Assert.assertEquals(pi.lane, lane);
-            Assert.assertEquals(pi.tile, tile);
-            Assert.assertEquals(pi.xPos, X_COORDS[index]);
-            Assert.assertEquals(pi.yPos, Y_COORDS[index]);
-            Assert.assertEquals(pi.xQseqCoord, X_QSEQ_COORDS[index]);
-            Assert.assertEquals(pi.yQseqCoord, Y_QSEQ_COORDS[index]);
-            ++index;
-        }
-
-        if(index < X_COORDS.length) {
-            throw new RuntimeException("Elements still remaining in test data!");
-        }
-    }
-
-    @DataProvider(name="invalidPositions")
-    public Object [][] invalidPositions() {
-        return new Object[][] {
-            {new float[]{0f, 5f, -11f},    new float[]{1f, 12f, 13f}},
-            {new float[]{-15.05f},         new float[]{19801f}},
-            {new float[]{10.05f, 3f, 8f}, new float[]{-120899.723f, 4f, 9f}},
-            {new float[]{9.0f, 2.3f, AbstractIlluminaPositionFileReader.MAX_POS + 1}, new float[]{3.2f, 8.1f, 99.1f}},
-            {new float[]{0.01f}, new float[]{AbstractIlluminaPositionFileReader.MAX_POS + 1000}}
-        };
-    }
-
-    @Test(expectedExceptions = IllegalArgumentException.class, dataProvider = "invalidPositions")
-    public void invalidReaderTest(float [] xCoords, float [] yCoords){
-        final int lane = 3;
-        final int tile = 4;
-
-        final AbstractIlluminaPositionFileReader reader = new MockPositionFileReader(lane, tile, xCoords, yCoords);
-        int index = 0;
-        while(reader.hasNext()) {
-            AbstractIlluminaPositionFileReader.PositionInfo pi = reader.next();
-            Assert.assertEquals(pi.lane, lane);
-            Assert.assertEquals(pi.tile, tile);
-            Assert.assertEquals(pi.xPos, xCoords[index]);
-            Assert.assertEquals(pi.yPos, yCoords[index]);
-            ++index;
-        }
-    }
-
-    @DataProvider(name = "invalidFileNames")
-    public Object [][] invalidFileNames() {
-        return new Object[][]{
-            {"whatever.locs"},
-            {"whatever.clocs"},
-            {"whatever.pos"},
-            {"s_1.clocs"},
-            {"s__2.clocs"},
-            {"s_1_4.Notclocs"},
-            {"a_1_4.pos"},
-            {"a_1_4.pos.txt"}
-        };
-    }
-
-    @Test(expectedExceptions = PicardException.class, dataProvider = "invalidFileNames")
-    public void invalidFileNamesTest(final String fileName){
-        final int lane = 3;
-        final int tile = 4;
-
-        final AbstractIlluminaPositionFileReader reader = new MockPositionFileReader(fileName, 0, 0, null, null);
-    }
-
-    @Test(expectedExceptions = UnsupportedOperationException.class)
-    public void iteratorRemoveTest() {
-        final AbstractIlluminaPositionFileReader reader = new MockPositionFileReader("s_1_1_pos.txt", 0, 0, null, null);
-        reader.remove();
-    }
-}
diff --git a/src/tests/java/net/sf/picard/illumina/parser/readers/BclReaderTest.java b/src/tests/java/net/sf/picard/illumina/parser/readers/BclReaderTest.java
deleted file mode 100644
index 1d4bb99..0000000
--- a/src/tests/java/net/sf/picard/illumina/parser/readers/BclReaderTest.java
+++ /dev/null
@@ -1,172 +0,0 @@
-package net.sf.picard.illumina.parser.readers;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.illumina.parser.BclData;
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.util.Collection;
-import java.util.LinkedList;
-import java.util.concurrent.Callable;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.Future;
-
-public class BclReaderTest {
-
-    public static final File TestDataDir = new File("testdata/net/sf/picard/illumina/readerTests");
-    public static final File PASSING_BCL_FILE = new File(TestDataDir, "bcl_passing.bcl");
-    public static final File QUAL_0FAILING_BCL_FILE = new File(TestDataDir, "bcl_failing.bcl");
-    public static final File QUAL_1FAILING_BCL_FILE = new File(TestDataDir, "bcl_failing2.bcl");
-    public static final File FILE_TOO_LONG = new File(TestDataDir, "bcl_tooLong.bcl");
-    public static final File FILE_TOO_SHORT = new File(TestDataDir, "bcl_tooShort.bcl");
-
-    public static final char[] expectedBases = new char[]{
-            'C', 'A', 'A', 'A', 'T', 'C', 'T', 'G', 'T', 'A', 'A', 'G', 'C', 'C', 'A', 'A',
-            'C', 'A', 'C', 'C', 'A', 'A', 'C', 'G', 'A', 'T', 'A', 'C', 'A', 'A', 'C', 'A',
-            'T', 'G', 'C', 'A', 'C', 'A', 'A', 'C', 'G', 'C', 'A', 'A', 'G', 'T', 'G', 'C',
-            'A', 'C', 'G', 'T', 'A', 'C', 'A', 'A', 'C', 'G', 'C', 'A', 'C', 'A', 'T', 'T',
-            'T', 'A', 'A', 'G', 'C', 'G', 'T', 'C', 'A', 'T', 'G', 'A', 'G', 'C', 'T', 'C',
-            'T', 'A', 'C', 'G', 'A', 'A', 'C', 'C', 'C', 'A', 'T', 'A', 'T', 'G', 'G', 'G',
-            'C', 'T', 'G', 'A', 'A', '.', '.', 'G', 'A', 'C', 'C', 'G', 'T', 'A', 'C', 'A',
-            'G', 'T', 'G', 'T', 'A', '.'
-    };
-
-    public static final int[] expectedQuals = new int[]{
-            18, 29, 8, 17, 27, 25, 28, 27, 9, 29, 8, 20, 25, 24, 27, 27,
-            30, 8, 19, 24, 29, 29, 25, 28, 8, 29, 26, 24, 29, 8, 18, 8,
-            29, 28, 26, 29, 25, 8, 26, 25, 28, 25, 8, 28, 28, 27, 29, 26,
-            25, 26, 27, 25, 8, 18, 8, 26, 24, 29, 25, 8, 24, 8, 25, 27,
-            27, 25, 8, 28, 24, 27, 25, 25, 8, 27, 25, 8, 16, 24, 28, 25,
-            28, 8, 24, 27, 25, 8, 20, 29, 24, 27, 28, 8, 23, 10, 23, 11,
-            15, 11, 10, 12, 12, 2, 2, 31, 24, 8, 4, 36, 12, 17, 21, 4,
-            8, 12, 18, 23, 27, 2
-    };
-
-    public byte[] qualsAsBytes() {
-        final byte[] byteVals = new byte[expectedQuals.length];
-        for (int i = 0; i < byteVals.length; i++) {
-            byteVals[i] = (byte) expectedQuals[i];
-        }
-        return byteVals;
-    }
-
-    @Test
-    public void readValidFile() {
-        final BclQualityEvaluationStrategy bclQualityEvaluationStrategy = new BclQualityEvaluationStrategy(BclQualityEvaluationStrategy.ILLUMINA_ALLEGED_MINIMUM_QUALITY);
-        final BclReader reader = new BclReader(PASSING_BCL_FILE, bclQualityEvaluationStrategy, false);
-        final byte[] quals = qualsAsBytes();
-
-        Assert.assertEquals(reader.numClustersPerCycle[0], expectedBases.length);
-
-        int readNum = 0;
-        while (readNum < reader.numClustersPerCycle[0]) {
-            final BclData bv = reader.next();
-            Assert.assertEquals(bv.bases[0][0], expectedBases[readNum], " On num cluster: " + readNum);
-            Assert.assertEquals(bv.qualities[0][0], quals[readNum], " On num cluster: " + readNum);
-            ++readNum;
-        }
-        bclQualityEvaluationStrategy.assertMinimumQualities();
-        reader.close();
-    }
-
-    @DataProvider(name = "failingFiles")
-    public Object[][] failingFiles() {
-        return new Object[][]{
-                {QUAL_0FAILING_BCL_FILE},
-                {QUAL_1FAILING_BCL_FILE},
-                {new File(TestDataDir, "SomeNoneExistentFile.bcl")},
-                {FILE_TOO_LONG},
-                {FILE_TOO_SHORT}
-        };
-    }
-
-    @Test(expectedExceptions = PicardException.class, dataProvider = "failingFiles")
-    public void failingFileTest(final File failingFile) {
-        final BclQualityEvaluationStrategy bclQualityEvaluationStrategy = new BclQualityEvaluationStrategy(BclQualityEvaluationStrategy.ILLUMINA_ALLEGED_MINIMUM_QUALITY);
-        final BclReader reader = new BclReader(failingFile, bclQualityEvaluationStrategy, false);
-        Assert.assertEquals(reader.numClustersPerCycle[0], expectedBases.length);
-        while (reader.hasNext()) {
-            reader.next();
-        }
-        reader.close();
-        bclQualityEvaluationStrategy.assertMinimumQualities();
-    }
-
-    /**
-     * Asserts appropriate functionality of a quality-minimum-customized BLC reader, such that (1) if sub-Q2 qualities are found, the BCL
-     * reader does not throw an exception, (2) sub-minimum calls are set to quality 1 and (3) sub-minimum calls are counted up properly.
-     */
-    @Test
-    public void lowQualityButPassingTest() throws ExecutionException, InterruptedException {
-        final BclQualityEvaluationStrategy bclQualityEvaluationStrategy = new BclQualityEvaluationStrategy(1);
-
-        // Build a list of callables, then submit them and check for errors.
-        final Collection<Callable<Void>> callables = new LinkedList<Callable<Void>>();
-        for (int i = 0; i < 10; i++) {
-            final boolean even_i = i % 2 == 0;
-            callables.add(new Callable<Void>() {
-                @Override
-                public Void call() throws Exception {
-                    final BclReader reader = new BclReader(even_i ? QUAL_1FAILING_BCL_FILE : QUAL_0FAILING_BCL_FILE,
-                            bclQualityEvaluationStrategy, false);
-                    Assert.assertEquals(reader.numClustersPerCycle[0], expectedBases.length);
-                    while (reader.hasNext()) {
-                        reader.next();
-                    }
-                    reader.close();
-                    return null;
-                }
-            });
-        }
-        final ExecutorService executorService = Executors.newFixedThreadPool(callables.size());
-        final Collection<Future<Void>> futures = new LinkedList<Future<Void>>();
-        for (final Callable<Void> callable : callables) {
-            futures.add(executorService.submit(callable));
-        }
-        for (final Future<Void> future : futures) {
-            future.get();
-        }
-        bclQualityEvaluationStrategy.assertMinimumQualities();
-        Assert.assertEquals((int) bclQualityEvaluationStrategy.getPoorQualityFrequencies().get((byte) 0), 25);
-        Assert.assertEquals((int) bclQualityEvaluationStrategy.getPoorQualityFrequencies().get((byte) 1), 25);
-    }
-
-    @Test(expectedExceptions = PicardException.class)
-    public void lowQualityAndFailingTest() throws ExecutionException, InterruptedException {
-        final BclQualityEvaluationStrategy bclQualityEvaluationStrategy = new BclQualityEvaluationStrategy(BclQualityEvaluationStrategy.ILLUMINA_ALLEGED_MINIMUM_QUALITY);
-
-        // Build a list of callables, then submit them and check for errors.
-        final Collection<Callable<Void>> callables = new LinkedList<Callable<Void>>();
-        for (int i = 0; i < 10; i++) {
-            final boolean even_i = i % 2 == 0;
-            callables.add(new Callable<Void>() {
-                @Override
-                public Void call() throws Exception {
-                    final BclReader reader = new BclReader(even_i ? QUAL_1FAILING_BCL_FILE : QUAL_0FAILING_BCL_FILE,
-                            bclQualityEvaluationStrategy, false);
-                    Assert.assertEquals(reader.numClustersPerCycle[0], expectedBases.length);
-                    while (reader.hasNext()) {
-                        reader.next();
-                    }
-                    reader.close();
-                    return null;
-                }
-            });
-        }
-        final ExecutorService executorService = Executors.newFixedThreadPool(callables.size());
-        final Collection<Future<Void>> futures = new LinkedList<Future<Void>>();
-        for (final Callable<Void> callable : callables) {
-            futures.add(executorService.submit(callable));
-        }
-        for (final Future<Void> future : futures) {
-            future.get();
-        }
-        Assert.assertEquals((int) bclQualityEvaluationStrategy.getPoorQualityFrequencies().get((byte) 0), 25);
-        Assert.assertEquals((int) bclQualityEvaluationStrategy.getPoorQualityFrequencies().get((byte) 1), 25);
-        bclQualityEvaluationStrategy.assertMinimumQualities();
-    }
-}
diff --git a/src/tests/java/net/sf/picard/illumina/parser/readers/ClocsFileReaderTest.java b/src/tests/java/net/sf/picard/illumina/parser/readers/ClocsFileReaderTest.java
deleted file mode 100644
index bcfe270..0000000
--- a/src/tests/java/net/sf/picard/illumina/parser/readers/ClocsFileReaderTest.java
+++ /dev/null
@@ -1,160 +0,0 @@
-package net.sf.picard.illumina.parser.readers;
-
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.File;
-
-public class ClocsFileReaderTest {
-
-    private static final File TEST_DIR = new File("testdata/net/sf/picard/illumina/readerTests");
-    private static final File PASSING_CLOCS_FILE = new File(TEST_DIR, "s_2_1101.clocs");
-
-    public static final int blockSize = 25;
-    public static final File MULTI_BIN_PASSING_CLOCS_FILE = new File(TEST_DIR, "s_3_2102.clocs");
-    public static final File MBCF_W_EMPTY_BINS_AT_START   = new File(TEST_DIR, "s_3_2103.clocs");
-    public static final File MBCF_W_EMPTY_BINS_AT_END     = new File(TEST_DIR, "s_3_2104.clocs");
-    public static final File MBCF_W_EMPTY_BINS_THROUGHOUT = new File(TEST_DIR, "s_3_2105.clocs");
-    public static final int MULTI_BIN_PASSING_CLOCS_TILE = 2102;
-    public static final int MULTI_BIN_PASSING_CLOCS_LANE = 3;
-    public static final int MULTI_BIN_EXPECTED_NUM_VALUES = 271;
-
-    public static final File MBCF_MULTI_ROW_FILE = new File(TEST_DIR, "s_1_2106.clocs");
-
-    public static final float [][] MULTI_BIN_FLOAT_COORD = {
-        {9.7f, 1f},      {16.9f, 1.3f}, {18.5f, 22.6f}, {39.1f, 0.5f}, {46.1f, 1f},
-        {38.4f, 8.4f},   {59.7f, 1.1f}, {89.9f, 0.30f}, {87.1f, 0.6f}, {83.6f, 0.7f},
-        {111.4f, 14.3f}, {109.1f, 15f}, {105.7f, 15f}
-    };
-    public static final int [][] MULTI_BIN_Q_SEQ_COORD = {
-        {1097, 1010}, {1169, 1013}, {1185, 1226}, {1391, 1005}, {1461, 1010},
-        {1384, 1084}, {1597, 1011}, {1899, 1003}, {1871, 1006}, {1836, 1007},
-        {2114, 1143}, {2091, 1150}, {2057, 1150}
-    };
-    public static final int [] MULTI_BIN_INDICES = {
-        0,     1,  34,  39,  40,
-        59,  99, 163, 164, 165,
-        268, 269, 270
-    };
-
-
-    public static final float [][] MULTI_BIN_FLOAT_COORD_MIXED_EMPTY_BINS = {
-            {9.7f, 1f},      {16.9f, 1.3f},  {18.5f, 22.6f},  {89.1f, 0.5f},  {96.1f, 1f},
-            {88.4f, 8.4f},   {109.7f, 1.1f}, {164.9f, 0.30f}, {162.1f, 0.6f}, {158.6f, 0.7f},
-            {186.4f, 14.3f}, {184.1f, 15f},  {180.7f, 15f}
-    };
-    public static final int [][] MULTI_BIN_Q_SEQ_COORD_MIXED_EMPTY_BINS = {
-            {1097, 1010}, {1169, 1013}, {1185, 1226}, {1891, 1005}, {1961, 1010},
-            {1884, 1084}, {2097, 1011}, {2649, 1003}, {2621, 1006}, {2586, 1007},
-            {2864, 1143}, {2841, 1150}, {2807, 1150}
-    };
-
-    //These are all essentially the same file but with 0 or more empty bins spread through them
-    @DataProvider(name = "multiBinPassingClocsFiles")
-    public Object [][] multiBinPassingClocsFiles() {
-        return new Object[][] {
-            {MULTI_BIN_PASSING_CLOCS_FILE, 0, 2102},
-            {MBCF_W_EMPTY_BINS_AT_START,   2, 2103},
-            {MBCF_W_EMPTY_BINS_AT_END,     0, 2104}
-        };
-    }
-
-    @Test(dataProvider = "multiBinPassingClocsFiles")
-    public void multiBinTest(final File multiBinPassingClocsFile, final int binShift, final int tile) {
-        final ClocsFileReader clocsReader = new ClocsFileReader(multiBinPassingClocsFile);
-
-        int tdIndex = 0;
-        int nextIndex = MULTI_BIN_INDICES[tdIndex];
-        for(int i = 0; i < MULTI_BIN_EXPECTED_NUM_VALUES; i++) {
-            Assert.assertTrue(clocsReader.hasNext());
-            final AbstractIlluminaPositionFileReader.PositionInfo piClocs = clocsReader.next();
-
-            if(i == nextIndex) {
-                PosFileReaderTest.comparePositionInfo(piClocs, MULTI_BIN_FLOAT_COORD[tdIndex][0] + binShift * blockSize,       MULTI_BIN_FLOAT_COORD[tdIndex][1],
-                                                               MULTI_BIN_Q_SEQ_COORD[tdIndex][0] + binShift * blockSize * 10,  MULTI_BIN_Q_SEQ_COORD[tdIndex][1],
-                                                               MULTI_BIN_PASSING_CLOCS_LANE, tile,
-                                                               tdIndex);
-                if(tdIndex < MULTI_BIN_INDICES.length-1) {
-                    nextIndex = MULTI_BIN_INDICES[++tdIndex];
-                }
-            }
-        }
-
-        Assert.assertFalse(clocsReader.hasNext());
-    }
-
-    @Test
-    public void multiBinMixedEmptyBinTest() {
-        final ClocsFileReader clocsReader = new ClocsFileReader(MBCF_W_EMPTY_BINS_THROUGHOUT);
-
-        int tdIndex = 0;
-        int nextIndex = MULTI_BIN_INDICES[tdIndex];
-        for(int i = 0; i < MULTI_BIN_EXPECTED_NUM_VALUES; i++) {
-            Assert.assertTrue(clocsReader.hasNext());
-            final AbstractIlluminaPositionFileReader.PositionInfo piClocs = clocsReader.next();
-
-            if(i == nextIndex) {
-                PosFileReaderTest.comparePositionInfo(piClocs, MULTI_BIN_FLOAT_COORD_MIXED_EMPTY_BINS[tdIndex][0],  MULTI_BIN_FLOAT_COORD_MIXED_EMPTY_BINS[tdIndex][1],
-                                                               MULTI_BIN_Q_SEQ_COORD_MIXED_EMPTY_BINS[tdIndex][0],  MULTI_BIN_Q_SEQ_COORD_MIXED_EMPTY_BINS[tdIndex][1],
-                                                               MULTI_BIN_PASSING_CLOCS_LANE, 2105, tdIndex);
-                if(tdIndex < MULTI_BIN_INDICES.length-1) {
-                    nextIndex = MULTI_BIN_INDICES[++tdIndex];
-                }
-            }
-        }
-
-        Assert.assertFalse(clocsReader.hasNext());
-    }
-
-    public static final int [] MULTI_ROW_INDICES = new int[]{
-        1, 10, 200, 2000, 10000, 30000
-    };
-    public static final float [][] MULTI_ROW_FLOAT_COORD = new float[][] {
-            {23.2f,  0.2f},    {16.7f,  5.7f},  {60.9f, 15.0f},
-            {596.2f, 19.6f},   {999.3f, 47.3f}, {1015f, 115.5f}
-    };
-
-    public static final int [][] MULTI_ROW_Q_SEQ_COORD = new int[][] {
-        {1232, 1002},  {1167, 1057 },  {1609, 1150},
-        {6962, 1196},  {10993, 1473}, {11150, 2155}
-    };
-
-    @Test
-    public void multiRowFileTest() {
-        final ClocsFileReader clocsReader = new ClocsFileReader(MBCF_MULTI_ROW_FILE);
-
-        int tdIndex = 0;
-        int nextIndex = MULTI_ROW_INDICES[tdIndex];
-        for(int i = 1; i <= 39891; i++) {
-            Assert.assertTrue(clocsReader.hasNext(), " i == " + i);
-            final AbstractIlluminaPositionFileReader.PositionInfo piClocs = clocsReader.next();
-
-            if(i == nextIndex) {
-                PosFileReaderTest.comparePositionInfo(piClocs, MULTI_ROW_FLOAT_COORD[tdIndex][0], MULTI_ROW_FLOAT_COORD[tdIndex][1],
-                                                               MULTI_ROW_Q_SEQ_COORD[tdIndex][0], MULTI_ROW_Q_SEQ_COORD[tdIndex][1],
-                                                               1, 2106, tdIndex);
-
-                if(tdIndex < MULTI_ROW_INDICES.length-1) {
-                    nextIndex = MULTI_ROW_INDICES[++tdIndex];
-                }
-            }
-        }
-
-        Assert.assertFalse(clocsReader.hasNext());
-
-    }
-
-    @Test
-    public void singleBinTest() {
-        final ClocsFileReader clocsReader = new ClocsFileReader(PASSING_CLOCS_FILE);
-
-        for(int i = 0; i < PosFileReaderTest.PassingPosFloatCoord.length; i++) {
-            Assert.assertTrue(clocsReader.hasNext());
-            final AbstractIlluminaPositionFileReader.PositionInfo piClocs = clocsReader.next();
-            PosFileReaderTest.comparePositionInfo(piClocs, i);
-        }
-
-        Assert.assertFalse(clocsReader.hasNext());
-    }
-}
diff --git a/src/tests/java/net/sf/picard/illumina/parser/readers/FilterFileReaderTest.java b/src/tests/java/net/sf/picard/illumina/parser/readers/FilterFileReaderTest.java
deleted file mode 100644
index a031224..0000000
--- a/src/tests/java/net/sf/picard/illumina/parser/readers/FilterFileReaderTest.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package net.sf.picard.illumina.parser.readers;
-
-import net.sf.picard.PicardException;
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.util.NoSuchElementException;
-
-public class FilterFileReaderTest {
-    public static File TEST_DATA_DIR = new File("testdata/net/sf/picard/illumina/readerTests");
-    public static final File PASSING_FILTER_FILE = new File(TEST_DATA_DIR, "pf_passing.filter");
-
-    public static final boolean [] expectedPfs = {
-            false, false, false, false,     true,  false, false, false,      true,  true,  false, false,   true,  false, true,  false,
-            true,  false, false, true,      true,  true,  true,  false,      true,  true,  false, true,    true,  true,  true,  false,
-            true,  true,  true,  true,      false, true,  false, false,      false, true,  true,  false,   false, true,  false, true,
-            false, true,  true,  true,      false, false, true,  false,      false, false, true,  true,    false, false, false, true
-    };
-
-    @Test
-    public void readValidFile() {
-        final FilterFileReader reader = new FilterFileReader(PASSING_FILTER_FILE);
-        Assert.assertEquals(reader.numClusters, expectedPfs.length);
-        for(int i = 0; i < reader.numClusters; i++) {
-            Assert.assertEquals(reader.hasNext(), true);
-            Assert.assertEquals(reader.next().booleanValue(),    expectedPfs[i]);
-        }
-
-        Assert.assertEquals(false, reader.hasNext());
-    }
-
-    @Test(expectedExceptions = NoSuchElementException.class)
-    public void readPastEnd() {
-        final FilterFileReader reader = new FilterFileReader(PASSING_FILTER_FILE);
-        for(int i = 0; i < reader.numClusters; i++) {
-            reader.next();
-        }
-
-        Assert.assertEquals(false, reader.hasNext());
-        reader.next();
-    }
-
-    @DataProvider(name="failingFiles")
-    public Object[][] failingFiles() {
-        return new Object[][] {
-            {"pf_failing1.filter"},
-            {"pf_failing2.filter"},
-            {"pf_tooLarge.filter"},
-            {"pf_tooShort.filter"},
-            {"pf_badOpeningBytes.filter"},
-            {"pf_badVersionBytes.filter"},
-            {"pf_nonExistentFile.filter"}
-        };
-    }
-
-    @Test(dataProvider = "failingFiles", expectedExceptions = PicardException.class)
-    public void readInvalidValues(final String failingFile) {
-        final FilterFileReader reader = new FilterFileReader(new File(TEST_DATA_DIR, failingFile));
-        while(reader.hasNext()) {
-            reader.next();
-        }
-    }
-}
\ No newline at end of file
diff --git a/src/tests/java/net/sf/picard/illumina/parser/readers/IlluminaFileUtilTest.java b/src/tests/java/net/sf/picard/illumina/parser/readers/IlluminaFileUtilTest.java
deleted file mode 100644
index e0ea87c..0000000
--- a/src/tests/java/net/sf/picard/illumina/parser/readers/IlluminaFileUtilTest.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package net.sf.picard.illumina.parser.readers;
-
-/**
- * Created by IntelliJ IDEA.
- * User: jburke
- * Date: 12/29/11
- * Time: 2:42 PM
- * To change this template use File | Settings | File Templates.
- */
-public class IlluminaFileUtilTest {
-}
diff --git a/src/tests/java/net/sf/picard/illumina/parser/readers/LocsFileReaderTest.java b/src/tests/java/net/sf/picard/illumina/parser/readers/LocsFileReaderTest.java
deleted file mode 100644
index 4ff065f..0000000
--- a/src/tests/java/net/sf/picard/illumina/parser/readers/LocsFileReaderTest.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package net.sf.picard.illumina.parser.readers;
-
-import net.sf.picard.PicardException;
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.File;
-
-public class LocsFileReaderTest {
-    private static final File TestDir = new File("testdata/net/sf/picard/illumina/readerTests");
-    public  static final File LocsFile = new File(TestDir, "s_1_6.locs");
-    public  static final int ExpectedTile = 6;
-    public  static final int ExpectedLane = 1;
-    public  static final int NumValues = 200;
-    public  static final float [][] FloatCoords = {
-        {1703.0117f, 64.01593f}, {1660.3038f, 64.08882f},  {1769.7501f, 65.12467f}, {1726.6725f, 68.367805f}, {1401.213f,  72.07282f},
-        {1358.2775f, 72.07892f}, {1370.5197f, 77.699715f}, {1661.5403f, 77.70719f}, {1682.0504f, 78.76725f},  {1563.8765f, 79.08009f}
-    };
-    public static final int [][] QSeqCoords = {
-        {18030, 1640}, {17603, 1641}, {18698, 1651}, {18267, 1684}, {15012, 1721},
-        {14583, 1721}, {14705, 1777}, {17615, 1777}, {17821, 1788}, {16639, 1791}
-    };
-    public static final int [] Indices = {
-        0,     1,  19,  59,  100,
-        101,  179, 180, 198, 199
-    };
-
-    @Test
-    public void passingFileTest() {
-        final LocsFileReader reader = new LocsFileReader(LocsFile);
-
-        int tdIndex = 0;
-        int nextIndex = Indices[tdIndex];
-        for(int i = 0; i < NumValues; i++) {
-            Assert.assertTrue(reader.hasNext());
-
-            final AbstractIlluminaPositionFileReader.PositionInfo piLocs = reader.next();
-
-            if(i == nextIndex) {
-                PosFileReaderTest.comparePositionInfo(piLocs, FloatCoords[tdIndex][0], FloatCoords[tdIndex][1],
-                                                              QSeqCoords[tdIndex][0],  QSeqCoords[tdIndex][1],
-                                                              ExpectedLane, ExpectedTile, i);
-
-                if(tdIndex < Indices.length-1) {
-                    nextIndex = Indices[++tdIndex];
-                }
-            }
-        }
-
-        Assert.assertFalse(reader.hasNext());
-    }
-
-    @DataProvider(name = "invalidFiles")
-    public Object[][]invalidFiles() {
-        return new Object[][] {
-            {"s_1_7.locs"},
-            {"s_1_8.locs"},
-            {"s_1_9.locs"},
-            {"s_1_10.locs"},
-            {"s_f2af.locs"}
-        };
-    }
-
-    @Test(expectedExceptions = PicardException.class, dataProvider = "invalidFiles")
-    public void invalidFilesTest(final String fileName) {
-        final LocsFileReader reader = new LocsFileReader(new File(TestDir, fileName));
-    }
-}
diff --git a/src/tests/java/net/sf/picard/illumina/parser/readers/MMapBackedIteratorFactoryTest.java b/src/tests/java/net/sf/picard/illumina/parser/readers/MMapBackedIteratorFactoryTest.java
deleted file mode 100644
index cf5b82c..0000000
--- a/src/tests/java/net/sf/picard/illumina/parser/readers/MMapBackedIteratorFactoryTest.java
+++ /dev/null
@@ -1,207 +0,0 @@
-package net.sf.picard.illumina.parser.readers;
-
-import net.sf.picard.PicardException;
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.nio.*;
-import java.util.Iterator;
-
-public class MMapBackedIteratorFactoryTest {
-    public static File TestDataDir = new File("testdata/net/sf/picard/illumina/readerTests");
-    public static File BinFile     = new File(TestDataDir, "binary_passing.bin");
-
-    public static final int FileLength = 51;
-    //remember that the MMappedBinaryFileReader assumes little endianness
-    public byte[] fileAsBytes(final int start, final int end){
-         final int [] bInts = {
-                         0x31, 0x22, 0x41, 0x01,    0x45, 0x6E, 0x64, 0x4F,
-                         0x66, 0x48, 0x65, 0x61,    0x64, 0x65, 0x72, 0x42,
-                         0x6F, 0x64, 0x79, 0x50,    0x61, 0x72, 0x74, 0x6F,
-                         0x66, 0x54, 0x68, 0x65,    0x46, 0x69, 0x6C, 0x65,
-                         0x37, 0x37, 0x0A, 0x45,    0x6E, 0x64, 0x43, 0x6F,
-                         0x6D, 0x6D, 0x75, 0x6E,    0x69, 0x63, 0x61, 0x74,
-                         0x69, 0x6F, 0x6E
-        };
-
-        final int total = end - start + 1;
-        final byte [] bytes = new byte[total];
-        for(int i = 0; i < total; i++) {
-            bytes[i] = (byte)bInts[start + i];
-        }
-        return bytes;
-    }
-
-    //Note these integers are different from the ones in fileAsBytes->bInts (because we're talking about 4 bytes at a time not one)
-    @DataProvider(name="passing_bin_asTdBuffer")
-    public ByteBuffer headerAsByteBuffer(final int headerSize) {
-        final byte [] bytes = fileAsBytes(0, headerSize-1);
-        final ByteBuffer bb = ByteBuffer.allocate(bytes.length);
-        bb.put(bytes);
-        bb.position(0);
-        bb.order(ByteOrder.LITTLE_ENDIAN);
-        return bb;
-    }
-
-    @DataProvider(name="passing_bin_asTdBuffer")
-    public ByteBuffer fileAsByteBuffer(final int headerSize) {
-        final byte [] bytes = fileAsBytes(headerSize, FileLength-1);
-        final ByteBuffer bb = ByteBuffer.allocate(bytes.length);
-        bb.put(bytes);
-        bb.position(0);
-        bb.order(ByteOrder.LITTLE_ENDIAN);
-        return bb;
-    }
-
-    abstract class FileTestDef<T> {
-        public final int headerSize;
-        public final BinaryFileIterator bbIter;
-        public final int numElements;
-
-        public FileTestDef(final int headerSize, final BinaryFileIterator<T> bbIter) {
-            this.headerSize  = headerSize;
-            this.bbIter = bbIter;
-            this.numElements = fileAsBytes(headerSize, FileLength-1).length / bbIter.getElementSize();
-        }
-
-        public void test() {
-            final ByteBuffer testBuffer = fileAsByteBuffer(headerSize);
-
-
-            if(headerSize > 0) {
-                final ByteBuffer headerBuffer = headerAsByteBuffer(headerSize);
-                testHeaderBytes(headerBuffer, bbIter.getHeaderBytes());
-            }
-
-            bbIter.assertTotalElementsEqual(numElements);
-            final Iterator<T> testIter = getTestIterator(testBuffer);
-
-            while(hasNext(testIter, bbIter)) {
-                Assert.assertEquals(testIter.next(), bbIter.next());
-            }
-        }
-
-        public abstract Iterator<T> getTestIterator(final ByteBuffer byteBuffer);
-
-        public boolean hasNext(final Iterator<T> testIter, final Iterator<T> fileIter) {
-            if(testIter.hasNext() && fileIter.hasNext())
-                return true;
-
-            if(testIter.hasNext()) {
-                throw new PicardException("Test data (testIter) has more iterations while fileIter does not!");
-            }
-
-            if(fileIter.hasNext()) {
-                throw new PicardException("File data (fileIter) has more iterations while testIter does not!");
-            }
-
-            return false;
-        }
-    }
-
-    abstract class NoHeaderTestIter<T> implements Iterator<T> {
-        public final Buffer buf;
-
-        public NoHeaderTestIter(final Buffer buf) {
-            this.buf = buf;
-        }
-
-        public boolean hasNext() {
-            return buf.hasRemaining();
-        }
-
-        public void remove() {
-            throw new UnsupportedOperationException();
-        }
-    }
-
-    @DataProvider(name = "validTestDefs")
-    public Object[][] validTestDefs() {
-        return new Object[][] {
-            {
-                new FileTestDef<Integer>(15, MMapBackedIteratorFactory.getIntegerIterator(15, BinFile)) {
-                    @Override
-                    public Iterator<Integer> getTestIterator(final ByteBuffer byteBuffer) {
-                        final IntBuffer ib = byteBuffer.asIntBuffer();
-                        return new NoHeaderTestIter<Integer>(ib) {
-                            @Override
-                            public Integer next() {
-                                return ib.get();
-                            }
-                        };
-                    }
-                }
-            },
-            {
-                new FileTestDef<Byte>(2, MMapBackedIteratorFactory.getByteIterator(2, BinFile)) {
-                    @Override
-                    public Iterator<Byte> getTestIterator(final ByteBuffer byteBuffer) {
-                        return new NoHeaderTestIter<Byte>(byteBuffer) {
-                            @Override
-                            public Byte next() {
-                                return byteBuffer.get();
-                            }
-                        };
-                    }
-                }
-            },
-            {
-                new FileTestDef<Float>(19, MMapBackedIteratorFactory.getFloatIterator(19, BinFile)) {
-                    @Override
-                    public Iterator<Float> getTestIterator(final ByteBuffer byteBuffer) {
-                        return new NoHeaderTestIter<Float>(byteBuffer) {
-                            @Override
-                            public Float next() {
-                                return byteBuffer.getFloat();
-                            }
-                        };
-                    }
-                }
-            }
-        };
-    }
-
-    @Test(dataProvider="validTestDefs")
-    public void testValidConfigurations(final FileTestDef ftd) {
-        ftd.test();
-    }
-
-    @Test
-    public void onlyHeaderTest() {
-        final BinaryFileIterator<Integer> bbIter = MMapBackedIteratorFactory.getIntegerIterator((int)BinFile.length(), BinFile);
-        Assert.assertEquals(bbIter.getHeaderBytes(), headerAsByteBuffer((int)BinFile.length()));
-        Assert.assertFalse(bbIter.hasNext());
-    }
-
-    @Test(expectedExceptions = PicardException.class)
-    public void tooLargeHeaderTest() {
-        final BinaryFileIterator<Integer> bbIter = MMapBackedIteratorFactory.getIntegerIterator(FileLength + 10, BinFile);
-        bbIter.getHeaderBytes();
-    }
-
-    @Test(expectedExceptions = PicardException.class)
-    public void negativeHeaderTest() {
-        final BinaryFileIterator<Integer> bbIter = MMapBackedIteratorFactory.getIntegerIterator(-1, BinFile);
-        bbIter.getHeaderBytes();
-    }
-
-    @DataProvider(name="invalidFileSizes")
-    public Object [][] invalidFileSizes() {
-        return new Object[][]{
-            {1, 12}, //should result in two left over bytes
-            {3, 11}, //should result in one left over elements
-        };
-    }
-
-    @Test(expectedExceptions = PicardException.class, dataProvider = "invalidFileSizes")
-    public void invalidFileSizeTests(final int headerSize, final int expectedElements) {
-        final BinaryFileIterator<Integer> bbIter = MMapBackedIteratorFactory.getIntegerIterator(headerSize, BinFile);
-        bbIter.assertTotalElementsEqual(expectedElements);
-    }
-
-    public void testHeaderBytes(final ByteBuffer bb1, final ByteBuffer bb2) {
-        Assert.assertTrue(bb1.equals(bb2), "Header bytes are not equal! " + bb1.toString() + "  !=  " + bb2.toString());
-    }
-}
diff --git a/src/tests/java/net/sf/picard/illumina/parser/readers/PosFileReaderTest.java b/src/tests/java/net/sf/picard/illumina/parser/readers/PosFileReaderTest.java
deleted file mode 100644
index a427cef..0000000
--- a/src/tests/java/net/sf/picard/illumina/parser/readers/PosFileReaderTest.java
+++ /dev/null
@@ -1,91 +0,0 @@
-package net.sf.picard.illumina.parser.readers;
-
-import net.sf.picard.PicardException;
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.File;
-
-public class PosFileReaderTest {
-    //need to test for negatives
-    public static final File TestDir = new File("testdata/net/sf/picard/illumina/readerTests");
-    public static final File InvalidNamePosFile = new File(TestDir, "pos_failing1_pos.txt");
-
-    public static final File PassingPosFile = new File(TestDir, "s_2_1101_pos.txt");
-    public static final int PassingTile = 1101;
-    public static final int PassingLane = 2;
-    public static final float[][] PassingPosFloatCoord = {
-            {17.80f, 0.30f}, {23.70f, 1.70f}, {18.50f, 3.90f}, {22.80f, 4.00f}, {15.90f, 4.20f},
-            {19.10f, 5.60f}, {23.90f, 6.70f}, {16.70f, 7.00f}, {21.50f, 7.10f}, {18.90f, 9.30f},
-            {17.10f, 10.30f}, {19.90f, 10.80f}, {15.90f, 11.90f}, {21.60f, 12.00f}, {24.80f, 12.40f},
-            {17.90f, 14.20f}, {22.00f, 14.50f}, {23.60f, 15.20f}, {20.00f, 15.50f}, {16.30f, 17.30f}
-    };
-    public static final int[][] PassingPosQSeqCoord = {
-            {1178, 1003}, {1237, 1017}, {1185, 1039}, {1228, 1040}, {1159, 1042},
-            {1191, 1056}, {1239, 1067}, {1167, 1070}, {1215, 1071}, {1189, 1093},
-            {1171, 1103}, {1199, 1108}, {1159, 1119}, {1216, 1120}, {1248, 1124},
-            {1179, 1142}, {1220, 1145}, {1236, 1152}, {1200, 1155}, {1163, 1173}
-    };
-
-    @Test
-    public void validPosFileTest() {
-        final PosFileReader pfr = new PosFileReader(PassingPosFile);
-        for (int i = 0; i < PassingPosFloatCoord.length; i++) {
-            Assert.assertTrue(pfr.hasNext());
-            final AbstractIlluminaPositionFileReader.PositionInfo pi = pfr.next();
-            comparePositionInfo(pi, i);
-        }
-        Assert.assertFalse(pfr.hasNext());
-        pfr.close();
-    }
-
-    public static void comparePositionInfo(final AbstractIlluminaPositionFileReader.PositionInfo pi, final int index) {
-        comparePositionInfo(pi, PassingPosFloatCoord[index][0], PassingPosFloatCoord[index][1],
-                PassingPosQSeqCoord[index][0], PassingPosQSeqCoord[index][1],
-                PassingLane, PassingTile, index);
-    }
-
-    public static void comparePositionInfo(final AbstractIlluminaPositionFileReader.PositionInfo pi, final float xPos, final float yPos,
-                                           final int xQSeqCoord, final int yQSeqCoord, final int lane, final int tile, final int index) {
-        Assert.assertEquals(pi.xPos, xPos, "Differs at index: " + index);
-        Assert.assertEquals(pi.yPos, yPos, "Differs at index: " + index);
-        Assert.assertEquals(pi.xQseqCoord, xQSeqCoord, "Differs at index: " + index);
-        Assert.assertEquals(pi.yQseqCoord, yQSeqCoord, "Differs at index: " + index);
-        Assert.assertEquals(pi.lane, lane, "Differs at index: " + index);
-        Assert.assertEquals(pi.tile, tile, "Differs at index: " + index);
-    }
-
-    @Test(expectedExceptions = PicardException.class)
-    public void failingNamePosFileTest() {
-        final PosFileReader pfr = new PosFileReader(InvalidNamePosFile);
-    }
-
-    @DataProvider(name = "invalidDataFiles")
-    public Object[][] invalidDataFiles() {
-        return new Object[][]{
-                {new File(TestDir, "s_1_1101_pos.txt")},
-                {new File(TestDir, "s_1_1102_pos.txt")},
-                {new File(TestDir, "s_1_1103_pos.txt")}
-        };
-    }
-
-    @Test(dataProvider = "invalidDataFiles", expectedExceptions = PicardException.class)
-    public void failingDataPosFileTest(final File file) {
-        final PosFileReader pfr = new PosFileReader(file);
-        try {
-            while (pfr.hasNext()) {
-                pfr.next();
-            }
-        } finally {
-            pfr.close();
-        }
-    }
-
-    @Test
-    public void zeroLengthFileTest() {
-        final PosFileReader pfr = new PosFileReader(new File(TestDir, "s_1_1104_pos.txt"));
-        Assert.assertFalse(pfr.hasNext());
-        pfr.close();
-    }
-}
diff --git a/src/tests/java/net/sf/picard/io/IoUtilTest.java b/src/tests/java/net/sf/picard/io/IoUtilTest.java
deleted file mode 100644
index 7e8373b..0000000
--- a/src/tests/java/net/sf/picard/io/IoUtilTest.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.io;
-
-import net.sf.picard.util.ProcessExecutor;
-import net.sf.samtools.util.CloserUtil;
-import net.sf.samtools.util.CollectionUtil;
-import org.testng.annotations.Test;
-import org.testng.Assert;
-
-import java.io.*;
-import java.nio.charset.Charset;
-import java.util.Arrays;
-import java.util.List;
-
-public class IoUtilTest {
-
-    private static final File SLURP_TEST_FILE = new File("testdata/net/sf/picard/io/slurptest.txt");
-    private static final File EMPTY_FILE = new File("testdata/net/sf/picard/io/empty.txt");;
-    private static final File FIVE_SPACES_THEN_A_NEWLINE_THEN_FIVE_SPACES_FILE = new File("testdata/net/sf/picard/io/5newline5.txt");
-    private static final List<String> SLURP_TEST_LINES = Arrays.asList("bacon   and rice   ","for breakfast  ","wont you join me");
-    private static final String SLURP_TEST_LINE_SEPARATOR = "\n";
-    private static final String TEST_FILE_PREFIX = "foo";
-    private static final String TEST_FILE_EXTENSIONS[] = { ".txt", ".txt.gz", ".txt.bz2" };
-    private static final String TEST_STRING = "bar!";
-
-    @Test
-    public void testFileReadingAndWriting() throws IOException
-    {
-        String randomizedTestString = TEST_STRING + System.currentTimeMillis();
-        for (String ext : TEST_FILE_EXTENSIONS)
-        {
-            File f = File.createTempFile(TEST_FILE_PREFIX, ext);
-
-            OutputStream os = IoUtil.openFileForWriting(f);
-            BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os));
-            writer.write(randomizedTestString);
-            writer.close();
-
-            InputStream is = IoUtil.openFileForReading(f);
-            BufferedReader reader = new BufferedReader(new InputStreamReader(is));
-            String line = reader.readLine();
-            Assert.assertEquals(randomizedTestString, line);
-        }
-    }
-
-    @Test(groups={"unix"})
-    public void testGetCanonicalPath() throws IOException {
-        String tmpPath = System.getProperty("java.io.tmpdir");
-        String userName = System.getProperty("user.name");
-
-        if(tmpPath.endsWith(userName)) {
-            tmpPath = tmpPath.substring(0, tmpPath.length() - userName.length());
-        }
-
-        File tmpDir = new File(tmpPath, userName);
-        File actual = new File(tmpDir, "actual.txt");
-        ProcessExecutor.execute(new String[]{"touch", actual.getAbsolutePath()});
-        File symlink = new File(tmpDir, "symlink.txt");
-        ProcessExecutor.execute(new String[]{"ln", "-s", actual.getAbsolutePath(), symlink.getAbsolutePath()});
-        File lnDir = new File(tmpDir, "symLinkDir");
-        ProcessExecutor.execute(new String[]{"ln", "-s", tmpDir.getAbsolutePath(), lnDir.getAbsolutePath()});
-        File lnToActual = new File(lnDir, "actual.txt");
-        File lnToSymlink = new File(lnDir, "symlink.txt");
-
-
-        File files [] = { actual, symlink, lnToActual, lnToSymlink };
-        for (File f : files) {
-            Assert.assertEquals(IoUtil.getFullCanonicalPath(f), actual.getCanonicalPath());
-        }
-
-        actual.delete();
-        symlink.delete();
-        lnToActual.delete();
-        lnToSymlink.delete();
-        lnDir.delete();
-    }
-
-    @Test
-    public void testUtfWriting() throws IOException {
-        final String utf8 = new StringWriter().append((char)168).append((char)197).toString();
-        for (String ext : TEST_FILE_EXTENSIONS) {
-            final File f = File.createTempFile(TEST_FILE_PREFIX, ext);
-            f.deleteOnExit();
-
-            final BufferedWriter writer = IoUtil.openFileForBufferedUtf8Writing(f);
-            writer.write(utf8);
-            CloserUtil.close(writer);
-
-            final BufferedReader reader = IoUtil.openFileForBufferedUtf8Reading(f);
-            final String line = reader.readLine();
-            Assert.assertEquals(utf8, line, f.getAbsolutePath());
-
-            CloserUtil.close(reader);
-
-        }
-    }
-
-    @Test
-    public void slurpLinesTest() throws FileNotFoundException {
-        Assert.assertEquals(IoUtil.slurpLines(SLURP_TEST_FILE), SLURP_TEST_LINES);
-    }
-
-    @Test
-    public void slurpWhitespaceOnlyFileTest() throws FileNotFoundException {
-        Assert.assertEquals(IoUtil.slurp(FIVE_SPACES_THEN_A_NEWLINE_THEN_FIVE_SPACES_FILE), "     \n     ");
-    }
-    
-    @Test
-    public void slurpEmptyFileTest() throws FileNotFoundException {
-        Assert.assertEquals(IoUtil.slurp(EMPTY_FILE), "");
-    }
-    
-    @Test
-    public void slurpTest() throws FileNotFoundException {
-        Assert.assertEquals(IoUtil.slurp(SLURP_TEST_FILE), CollectionUtil.join(SLURP_TEST_LINES, SLURP_TEST_LINE_SEPARATOR));
-    }
-}
diff --git a/src/tests/java/net/sf/picard/liftover/LiftOverTest.java b/src/tests/java/net/sf/picard/liftover/LiftOverTest.java
deleted file mode 100644
index b0712de..0000000
--- a/src/tests/java/net/sf/picard/liftover/LiftOverTest.java
+++ /dev/null
@@ -1,459 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.liftover;
-
-import net.sf.picard.util.Interval;
-import net.sf.picard.util.OverlapDetector;
-import org.testng.Assert;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.io.PrintWriter;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.TreeMap;
-
-/**
- * @author alecw at broadinstitute.org
- */
-public class LiftOverTest {
-    private static final File TEST_DATA_DIR = new File("testdata/net/sf/picard/liftover");
-    private static final File CHAIN_FILE = new File(TEST_DATA_DIR, "hg18ToHg19.over.chain");
-
-    private LiftOver liftOver;
-
-    @BeforeClass
-    public void initLiftOver() {
-        liftOver = new LiftOver(CHAIN_FILE);
-    }
-
-    @Test(dataProvider = "testIntervals")
-    public void testBasic(final Interval in, final Interval expected) {
-        final Interval out = liftOver.liftOver(in);
-        Assert.assertEquals(out, expected);
-
-    }
-
-    @DataProvider(name = "testIntervals")
-    public Object[][] makeTestIntervals() {
-        return new Object[][] {
-                {new Interval("chr3", 50911035, 50911051), null},
-                {new Interval("chr1", 16776377, 16776452),    new Interval("chr1", 16903790, 16903865)},
-                {new Interval("chr2", 30575990, 30576065),    new Interval("chr2", 30722486, 30722561)},
-                {new Interval("chr3", 12157217, 12157292),    new Interval("chr3", 12182217, 12182292)},
-                {new Interval("chr4", 12503121, 12503196),    new Interval("chr4", 12894023, 12894098)},
-                {new Interval("chr5", 13970930, 13971005),    new Interval("chr5", 13917930, 13918005)},
-                {new Interval("chr6", 13838774, 13838849),    new Interval("chr6", 13730795, 13730870)},
-                {new Interval("chr7", 23978336, 23978411),    new Interval("chr7", 24011811, 24011886)},
-                {new Interval("chr8", 13337368, 13337443),    new Interval("chr8", 13292997, 13293072)},
-                {new Interval("chr9", 35059282, 35059357),    new Interval("chr9", 35069282, 35069357)},
-                {new Interval("chr10", 7893794, 7893869),     new Interval("chr10", 7853788, 7853863)},
-                {new Interval("chr11", 17365784, 17365859),   new Interval("chr11", 17409208, 17409283)},
-                {new Interval("chr12", 4530193, 4530268),     new Interval("chr12", 4659932, 4660007)},
-                {new Interval("chr13", 29398707, 29398782),   new Interval("chr13", 30500707, 30500782)},
-                {new Interval("chr14", 22955252, 22955327),   new Interval("chr14", 23885412, 23885487)},
-                {new Interval("chr15", 27477379, 27477454),   new Interval("chr15", 29690087, 29690162)},
-                {new Interval("chr16", 13016380, 13016455),   new Interval("chr16", 13108879, 13108954)},
-                {new Interval("chr17", 28318218, 28318293),   new Interval("chr17", 31294105, 31294180)},
-                {new Interval("chr18", 42778225, 42778300),   new Interval("chr18", 44524227, 44524302)},
-                {new Interval("chr19", 8340119, 8340194),     new Interval("chr19", 8434119, 8434194)},
-                {new Interval("chr20", 39749226, 39749301),   new Interval("chr20", 40315812, 40315887)},
-                {new Interval("chr21", 20945136, 20945211),   new Interval("chr21", 22023265, 22023340)},
-                {new Interval("chr22", 32307031, 32307106),   new Interval("chr22", 33977031, 33977106)},
-                {new Interval("chrX", 34252958, 34253033) ,   new Interval("chrX", 34343037, 34343112)},
-                // Sampling from /seq/references/HybSelOligos/whole_exome_refseq_coding/whole_exome_refseq_coding.targets.interval_list
-                {new Interval("chr1", 58952, 59873),	new Interval("chr1", 69089, 70010)},
-                {new Interval("chr1", 7733844, 7734041),	new Interval("chr1", 7811257, 7811454)},
-                {new Interval("chr1", 16261179, 16261276),	new Interval("chr1", 16388592, 16388689)},
-                {new Interval("chr1", 23634929, 23635110),	new Interval("chr1", 23762342, 23762523)},
-                {new Interval("chr1", 31910910, 31911030),	new Interval("chr1", 32138323, 32138443)},
-                {new Interval("chr1", 39686851, 39687024),	new Interval("chr1", 39914264, 39914437)},
-                {new Interval("chr1", 46434068, 46434185),	new Interval("chr1", 46661481, 46661598)},
-                {new Interval("chr1", 60102890, 60102928),	new Interval("chr1", 60330302, 60330340)},
-                {new Interval("chr1", 84734151, 84734336),	new Interval("chr1", 84961563, 84961748)},
-                {new Interval("chr1", 100529545, 100529650),	new Interval("chr1", 100756957, 100757062)},
-                {new Interval("chr1", 114771320, 114771441),	new Interval("chr1", 114969797, 114969918)},
-                {new Interval("chr1", 148564831, 148564965),	new Interval("chr1", 150298207, 150298341)},
-                {new Interval("chr1", 153293008, 153293090),	new Interval("chr1", 155026384, 155026466)},
-                {new Interval("chr1", 158167550, 158167677),	new Interval("chr1", 159900926, 159901053)},
-                {new Interval("chr1", 169444555, 169444718),	new Interval("chr1", 171177931, 171178094)},
-                {new Interval("chr1", 183535970, 183536100),	new Interval("chr1", 185269347, 185269477)},
-                {new Interval("chr1", 201411300, 201411508),	new Interval("chr1", 203144677, 203144885)},
-                {new Interval("chr1", 212862043, 212862249),	new Interval("chr1", 214795420, 214795626)},
-                {new Interval("chr1", 228992499, 228992560),	new Interval("chr1", 230925876, 230925937)},
-                {new Interval("chr1", 246268191, 246269133),	new Interval("chr1", 248201568, 248202510)},
-                {new Interval("chr2", 25027765, 25027929),	new Interval("chr2", 25174261, 25174425)},
-                {new Interval("chr2", 32572109, 32572240),	new Interval("chr2", 32718605, 32718736)},
-                {new Interval("chr2", 53988959, 53989061),	new Interval("chr2", 54135455, 54135557)},
-                {new Interval("chr2", 71749748, 71749847),	new Interval("chr2", 71896240, 71896339)},
-                {new Interval("chr2", 96059879, 96060011),	new Interval("chr2", 96696152, 96696284)},
-                {new Interval("chr2", 109923614, 109923763),	new Interval("chr2", 110566325, 110566474)},
-                {new Interval("chr2", 130655571, 130655646),	new Interval("chr2", 130939101, 130939176)},
-                {new Interval("chr2", 159228028, 159228205),	new Interval("chr2", 159519782, 159519959)},
-                {new Interval("chr2", 172639236, 172639282),	new Interval("chr2", 172930990, 172931036)},
-                {new Interval("chr2", 189558634, 189558751),	new Interval("chr2", 189850389, 189850506)},
-                {new Interval("chr2", 203547300, 203547466),	new Interval("chr2", 203839055, 203839221)},
-                {new Interval("chr2", 219578985, 219579191),	new Interval("chr2", 219870741, 219870947)},
-                {new Interval("chr2", 232982284, 232982404),	new Interval("chr2", 233274040, 233274160)},
-                {new Interval("chr3", 3114819, 3114976),	new Interval("chr3", 3139819, 3139976)},
-                {new Interval("chr3", 16333337, 16333745),	new Interval("chr3", 16358333, 16358741)},
-                {new Interval("chr3", 40183652, 40183736),	new Interval("chr3", 40208648, 40208732)},
-                {new Interval("chr3", 48601077, 48601227),	new Interval("chr3", 48626073, 48626223)},
-                {new Interval("chr3", 52287255, 52287419),	new Interval("chr3", 52312215, 52312379)},
-                {new Interval("chr3", 63979313, 63979425),	new Interval("chr3", 64004273, 64004385)},
-                {new Interval("chr3", 110234255, 110234364),	new Interval("chr3", 108751565, 108751674)},
-                {new Interval("chr3", 126088466, 126088539),	new Interval("chr3", 124605776, 124605849)},
-                {new Interval("chr3", 137600279, 137600363),	new Interval("chr3", 136117589, 136117673)},
-                {new Interval("chr3", 159845116, 159845200),	new Interval("chr3", 158362422, 158362506)},
-                {new Interval("chr3", 185387877, 185387927),	new Interval("chr3", 183905183, 183905233)},
-                {new Interval("chr3", 199065658, 199065715),	new Interval("chr3", 197581261, 197581318)},
-                {new Interval("chr4", 10152742, 10152765),	new Interval("chr4", 10543644, 10543667)},
-                {new Interval("chr4", 47243396, 47243638),	new Interval("chr4", 47548639, 47548881)},
-                {new Interval("chr4", 72632227, 72632303),	new Interval("chr4", 72413363, 72413439)},
-                {new Interval("chr4", 88942682, 88942736),	new Interval("chr4", 88723658, 88723712)},
-                {new Interval("chr4", 114381088, 114381190),	new Interval("chr4", 114161639, 114161741)},
-                {new Interval("chr4", 151338602, 151338707),	new Interval("chr4", 151119152, 151119257)},
-                {new Interval("chr4", 184429225, 184429390),	new Interval("chr4", 184192231, 184192396)},
-                {new Interval("chr5", 14804176, 14804350),	new Interval("chr5", 14751176, 14751350)},
-                {new Interval("chr5", 43687596, 43687745),	new Interval("chr5", 43651839, 43651988)},
-                {new Interval("chr5", 71651730, 71651806),	new Interval("chr5", 71615974, 71616050)},
-                {new Interval("chr5", 95017504, 95017771),	new Interval("chr5", 94991748, 94992015)},
-                {new Interval("chr5", 128984208, 128984352),	new Interval("chr5", 128956309, 128956453)},
-                {new Interval("chr5", 140033038, 140033159),	new Interval("chr5", 140052854, 140052975)},
-                {new Interval("chr5", 153045976, 153046084),	new Interval("chr5", 153065783, 153065891)},
-                {new Interval("chr5", 176255669, 176255768),	new Interval("chr5", 176323063, 176323162)},
-                {new Interval("chr6", 10810586, 10810710),	new Interval("chr6", 10702600, 10702724)},
-                {new Interval("chr6", 30666289, 30666459),	new Interval("chr6", 30558310, 30558480)},
-                {new Interval("chr6", 33082591, 33082598),	new Interval("chr6", 32974613, 32974620)},
-                {new Interval("chr6", 39940185, 39940263),	new Interval("chr6", 39832207, 39832285)},
-                {new Interval("chr6", 50789726, 50789768),	new Interval("chr6", 50681767, 50681809)},
-                {new Interval("chr6", 79721666, 79721720),	new Interval("chr6", 79664947, 79665001)},
-                {new Interval("chr6", 108336822, 108336934),	new Interval("chr6", 108230129, 108230241)},
-                {new Interval("chr6", 131240935, 131241085),	new Interval("chr6", 131199242, 131199392)},
-                {new Interval("chr6", 151799272, 151799384),	new Interval("chr6", 151757579, 151757691)},
-                {new Interval("chr6", 169897302, 169897445),	new Interval("chr6", 170155377, 170155520)},
-                {new Interval("chr7", 17341792, 17341937),	new Interval("chr7", 17375267, 17375412)},
-                {new Interval("chr7", 38875269, 38875380),	new Interval("chr7", 38908744, 38908855)},
-                {new Interval("chr7", 72563000, 72563120),	new Interval("chr7", 72925064, 72925184)},
-                {new Interval("chr7", 89839403, 89839480),	new Interval("chr7", 90001467, 90001544)},
-                {new Interval("chr7", 100063781, 100063867),	new Interval("chr7", 100225845, 100225931)},
-                {new Interval("chr7", 111889559, 111889671),	new Interval("chr7", 112102323, 112102435)},
-                {new Interval("chr7", 133900771, 133900840),	new Interval("chr7", 134250231, 134250300)},
-                {new Interval("chr7", 149124615, 149124769),	new Interval("chr7", 149493682, 149493836)},
-                {new Interval("chr8", 9647462, 9647548),	new Interval("chr8", 9610052, 9610138)},
-                {new Interval("chr8", 27203588, 27203614),	new Interval("chr8", 27147671, 27147697)},
-                {new Interval("chr8", 43171970, 43172044),	new Interval("chr8", 43052813, 43052887)},
-                {new Interval("chr8", 76088775, 76088894),	new Interval("chr8", 75926220, 75926339)},
-                {new Interval("chr8", 103641854, 103642290),	new Interval("chr8", 103572678, 103573114)},
-                {new Interval("chr8", 133913660, 133913828),	new Interval("chr8", 133844478, 133844646)},
-                {new Interval("chr8", 145697031, 145697164),	new Interval("chr8", 145726223, 145726356)},
-                {new Interval("chr9", 26985517, 26985849),	new Interval("chr9", 26995517, 26995849)},
-                {new Interval("chr9", 68496721, 68496793),	new Interval("chr9", 69206901, 69206973)},
-                {new Interval("chr9", 94051959, 94052046),	new Interval("chr9", 95012138, 95012225)},
-                {new Interval("chr9", 110750285, 110750337),	new Interval("chr9", 111710464, 111710516)},
-                {new Interval("chr9", 124416836, 124417782),	new Interval("chr9", 125377015, 125377961)},
-                {new Interval("chr9", 130939690, 130939794),	new Interval("chr9", 131899869, 131899973)},
-                {new Interval("chr9", 138395593, 138395667),	new Interval("chr9", 139275772, 139275846)},
-                {new Interval("chr10", 6048112, 6048310),	new Interval("chr10", 6008106, 6008304)},
-                {new Interval("chr10", 26599573, 26599693),	new Interval("chr10", 26559567, 26559687)},
-                {new Interval("chr10", 51507890, 51507920),	new Interval("chr10", 51837884, 51837914)},
-                {new Interval("chr10", 74343070, 74343234),	new Interval("chr10", 74673064, 74673228)},
-                {new Interval("chr10", 93604764, 93604865),	new Interval("chr10", 93614784, 93614885)},
-                {new Interval("chr10", 101985412, 101985513),	new Interval("chr10", 101995422, 101995523)},
-                {new Interval("chr10", 115325644, 115325755),	new Interval("chr10", 115335654, 115335765)},
-                {new Interval("chr10", 129062310, 129062470),	new Interval("chr10", 129172320, 129172480)},
-                {new Interval("chr11", 1904274, 1904289),	new Interval("chr11", 1947698, 1947713)},
-                {new Interval("chr11", 11928485, 11928607),	new Interval("chr11", 11971909, 11972031)},
-                {new Interval("chr11", 33326642, 33326942),	new Interval("chr11", 33370066, 33370366)},
-                {new Interval("chr11", 55554469, 55555445),	new Interval("chr11", 55797893, 55798869)},
-                {new Interval("chr11", 62505888, 62506060),	new Interval("chr11", 62749312, 62749484)},
-                {new Interval("chr11", 65488560, 65488619),	new Interval("chr11", 65731984, 65732043)},
-                {new Interval("chr11", 71618353, 71618446),	new Interval("chr11", 71940705, 71940798)},
-                {new Interval("chr11", 89174516, 89174750),	new Interval("chr11", 89534868, 89535102)},
-                {new Interval("chr11", 111349955, 111350190),	new Interval("chr11", 111844745, 111844980)},
-                {new Interval("chr11", 120195672, 120195841),	new Interval("chr11", 120690462, 120690631)},
-                {new Interval("chr12", 1089617, 1089776),	new Interval("chr12", 1219356, 1219515)},
-                {new Interval("chr12", 8894021, 8894139),	new Interval("chr12", 9002754, 9002872)},
-                {new Interval("chr12", 26455518, 26455614),	new Interval("chr12", 26564251, 26564347)},
-                {new Interval("chr12", 46663731, 46663788),	new Interval("chr12", 48377464, 48377521)},
-                {new Interval("chr12", 51502394, 51502432),	new Interval("chr12", 53216127, 53216165)},
-                {new Interval("chr12", 55603883, 55604103),	new Interval("chr12", 57317616, 57317836)},
-                {new Interval("chr12", 69218200, 69218280),	new Interval("chr12", 70931933, 70932013)},
-                {new Interval("chr12", 97543837, 97544677),	new Interval("chr12", 99019706, 99020546)},
-                {new Interval("chr12", 108438951, 108439074),	new Interval("chr12", 109954568, 109954691)},
-                {new Interval("chr12", 119021215, 119021343),	new Interval("chr12", 120536832, 120536960)},
-                {new Interval("chr12", 127849755, 127849917),	new Interval("chr12", 129283802, 129283964)},
-                {new Interval("chr13", 28900978, 28901035),	new Interval("chr13", 30002978, 30003035)},
-                {new Interval("chr13", 48646570, 48646698),	new Interval("chr13", 49748569, 49748697)},
-                {new Interval("chr13", 98989699, 98989814),	new Interval("chr13", 100191698, 100191813)},
-                {new Interval("chr14", 20929460, 20929643),	new Interval("chr14", 21859620, 21859803)},
-                {new Interval("chr14", 33338689, 33340068),	new Interval("chr14", 34268938, 34270317)},
-                {new Interval("chr14", 55217155, 55217163),	new Interval("chr14", 56147402, 56147410)},
-                {new Interval("chr14", 71260115, 71260358),	new Interval("chr14", 72190362, 72190605)},
-                {new Interval("chr14", 89806293, 89806451),	new Interval("chr14", 90736540, 90736698)},
-                {new Interval("chr14", 102548185, 102548280),	new Interval("chr14", 103478432, 103478527)},
-                {new Interval("chr15", 31917122, 31918453),	new Interval("chr15", 34129830, 34131161)},
-                {new Interval("chr15", 40481129, 40481302),	new Interval("chr15", 42693837, 42694010)},
-                {new Interval("chr15", 48649374, 48649484),	new Interval("chr15", 50862082, 50862192)},
-                {new Interval("chr15", 61768839, 61768953),	new Interval("chr15", 63981786, 63981900)},
-                {new Interval("chr15", 72115399, 72115456),	new Interval("chr15", 74328346, 74328403)},
-                {new Interval("chr15", 83031858, 83032011),	new Interval("chr15", 85230854, 85231007)},
-                {new Interval("chr16", 79709, 79902),	new Interval("chr16", 139709, 139902)},
-                {new Interval("chr16", 2285590, 2285744),	new Interval("chr16", 2345589, 2345743)},
-                {new Interval("chr16", 14872977, 14873044),	new Interval("chr16", 14965476, 14965543)},
-                {new Interval("chr16", 23611004, 23611155),	new Interval("chr16", 23703503, 23703654)},
-                {new Interval("chr16", 31004784, 31005007),	new Interval("chr16", 31097283, 31097506)},
-                {new Interval("chr16", 55745701, 55745922),	new Interval("chr16", 57188200, 57188421)},
-                {new Interval("chr16", 66647766, 66647830),	new Interval("chr16", 68090265, 68090329)},
-                {new Interval("chr16", 79224415, 79224636),	new Interval("chr16", 80666914, 80667135)},
-                {new Interval("chr17", 1320663, 1320735),	new Interval("chr17", 1373913, 1373985)},
-                {new Interval("chr17", 5304981, 5305155),	new Interval("chr17", 5364257, 5364431)},
-                {new Interval("chr17", 8588568, 8588654),	new Interval("chr17", 8647843, 8647929)},
-                {new Interval("chr17", 18192362, 18192481),	new Interval("chr17", 18251637, 18251756)},
-                {new Interval("chr17", 26514328, 26514522),	new Interval("chr17", 29490202, 29490396)},
-                {new Interval("chr17", 35069238, 35069334),	new Interval("chr17", 37815712, 37815808)},
-                {new Interval("chr17", 38377148, 38377241),	new Interval("chr17", 41123622, 41123715)},
-                {new Interval("chr17", 44472316, 44472454),	new Interval("chr17", 47117317, 47117455)},
-                {new Interval("chr17", 55482984, 55483122),	new Interval("chr17", 58128202, 58128340)},
-                {new Interval("chr17", 64595087, 64595211),	new Interval("chr17", 67083492, 67083616)},
-                {new Interval("chr17", 72814816, 72814876),	new Interval("chr17", 75303221, 75303281)},
-                {new Interval("chr17", 78167687, 78167812),	new Interval("chr17", 80574398, 80574523)},
-                {new Interval("chr18", 19653801, 19653961),	new Interval("chr18", 21399803, 21399963)},
-                {new Interval("chr18", 46766985, 46767455),	new Interval("chr18", 48512987, 48513457)},
-                {new Interval("chr19", 822924, 823120),	new Interval("chr19", 871924, 872120)},
-                {new Interval("chr19", 4200223, 4200327),	new Interval("chr19", 4249223, 4249327)},
-                {new Interval("chr19", 8094666, 8094894),	new Interval("chr19", 8188666, 8188894)},
-                {new Interval("chr19", 11657040, 11657607),	new Interval("chr19", 11796040, 11796607)},
-                {new Interval("chr19", 16298665, 16298844),	new Interval("chr19", 16437665, 16437844)},
-                {new Interval("chr19", 19650533, 19650597),	new Interval("chr19", 19789533, 19789597)},
-                {new Interval("chr19", 42008351, 42008363),	new Interval("chr19", 37316511, 37316523)},
-                {new Interval("chr19", 46446486, 46446567),	new Interval("chr19", 41754646, 41754727)},
-                {new Interval("chr19", 51212087, 51212169),	new Interval("chr19", 46520247, 46520329)},
-                {new Interval("chr19", 55052042, 55052201),	new Interval("chr19", 50360230, 50360389)},
-                {new Interval("chr19", 60200495, 60200669),	new Interval("chr19", 55508683, 55508857)},
-                {new Interval("chr20", 3244380, 3244434),	new Interval("chr20", 3296380, 3296434)},
-                {new Interval("chr20", 25145282, 25145374),	new Interval("chr20", 25197282, 25197374)},
-                {new Interval("chr20", 35182714, 35182855),	new Interval("chr20", 35749300, 35749441)},
-                {new Interval("chr20", 46797751, 46797826),	new Interval("chr20", 47364344, 47364419)},
-                {new Interval("chr20", 61546454, 61546633),	new Interval("chr20", 62076010, 62076189)},
-                {new Interval("chr21", 36666540, 36666701),	new Interval("chr21", 37744670, 37744831)},
-                {new Interval("chr21", 46450176, 46450285),	new Interval("chr21", 47625748, 47625857)},
-                {new Interval("chr22", 22890366, 22890533),	new Interval("chr22", 24560366, 24560533)},
-                {new Interval("chr22", 32487356, 32487465),	new Interval("chr22", 34157356, 34157465)},
-                {new Interval("chr22", 40469028, 40469146),	new Interval("chr22", 42139082, 42139200)},
-                {new Interval("chr22", 49365651, 49365713),	new Interval("chr22", 51018785, 51018847)},
-                {new Interval("chrX", 24135748, 24135895),	new Interval("chrX", 24225827, 24225974)},
-                {new Interval("chrX", 48708293, 48708459),	new Interval("chrX", 48823349, 48823515)},
-                {new Interval("chrX", 69406673, 69406721),	new Interval("chrX", 69489948, 69489996)},
-                {new Interval("chrX", 101459444, 101459531),	new Interval("chrX", 101572788, 101572875)},
-                {new Interval("chrX", 128442357, 128442474),	new Interval("chrX", 128614676, 128614793)},
-                {new Interval("chrX", 152701873, 152701902),	new Interval("chrX", 153048679, 153048708)},
-                {new Interval("chrY", 2715028, 2715646),	new Interval("chrY", 2655028, 2655646)},
-                {new Interval("chrY", 26179988, 26180064),	new Interval("chrY", 27770600, 27770676)},
-                // Some intervals that are flipped in the new genome
-                {new Interval("chr1", 2479704, 2479833, false, "target_549"),        new Interval("chr1", 2494585, 2494714, true, "target_549")},
-                {new Interval("chr1", 2480081, 2480116, false, "target_550"),        new Interval("chr1", 2494302, 2494337, true, "target_550")},
-                {new Interval("chr1", 2481162, 2481308, false, "target_551"),        new Interval("chr1", 2493110, 2493256, true, "target_551")},
-                {new Interval("chr1", 2482263, 2482357, false, "target_552"),        new Interval("chr1", 2492061, 2492155, true, "target_552")},
-                {new Interval("chr1", 2482999, 2483158, false, "target_553"),        new Interval("chr1", 2491260, 2491419, true, "target_553")},
-                {new Interval("chr1", 2484509, 2484638, false, "target_554"),        new Interval("chr1", 2489780, 2489909, true, "target_554")},
-                {new Interval("chr1", 2485143, 2485255, false, "target_555"),        new Interval("chr1", 2489163, 2489275, true, "target_555")},
-                {new Interval("chr1", 2486244, 2486316, false, "target_556"),        new Interval("chr1", 2488102, 2488174, true, "target_556")},
-                {new Interval("chr2", 110735471, 110735558, false, "target_101982"), new Interval("chr2", 110585640, 110585727, true, "target_101982")},
-                {new Interval("chr2", 110735648, 110735831, false, "target_101983"), new Interval("chr2", 110585367, 110585550, true, "target_101983")},
-                {new Interval("chr2", 110736772, 110736922, false, "target_101984"), new Interval("chr2", 110584276, 110584426, true, "target_101984")},
-                {new Interval("chr2", 110737181, 110737322, false, "target_101985"), new Interval("chr2", 110583876, 110584017, true, "target_101985")},
-                {new Interval("chr2", 110737585, 110737747, false, "target_101986"), new Interval("chr2", 110583451, 110583613, true, "target_101986")},
-                {new Interval("chr2", 110738666, 110738793, false, "target_101987"), new Interval("chr2", 110582405, 110582532, true, "target_101987")},
-                {new Interval("chr2", 110738957, 110739136, false, "target_101988"), new Interval("chr2", 110582062, 110582241, true, "target_101988")},
-                {new Interval("chr2", 110739216, 110739401, false, "target_101989"), new Interval("chr2", 110581797, 110581982, true, "target_101989")},
-                {new Interval("chr2", 110741555, 110741768, false, "target_101990"), new Interval("chr2", 110579480, 110579693, true, "target_101990")},
-                {new Interval("chr2", 110743887, 110743978, false, "target_101991"), new Interval("chr2", 110577271, 110577362, true, "target_101991")},
-                {new Interval("chr2", 110750021, 110750220, false, "target_101992"), new Interval("chr2", 110571035, 110571234, true, "target_101992")},
-                {new Interval("chr2", 110754786, 110754935, false, "target_101993"), new Interval("chr2", 110566325, 110566474, true, "target_101993")},
-                {new Interval("chr2", 110755277, 110755511, false, "target_101994"), new Interval("chr2", 110565749, 110565983, true, "target_101994")},
-                {new Interval("chr2", 110759547, 110759703, false, "target_101995"), new Interval("chr2", 110561554, 110561710, true, "target_101995")},
-                {new Interval("chr2", 110760135, 110760250, false, "target_101996"), new Interval("chr2", 110561007, 110561122, true, "target_101996")},
-                {new Interval("chr2", 110761828, 110761899, false, "target_101997"), new Interval("chr2", 110559358, 110559429, true, "target_101997")},
-                {new Interval("chr2", 110769521, 110769596, false, "target_101998"), new Interval("chr2", 110552041, 110552116, true, "target_101998")},
-                {new Interval("chr2", 111012182, 111012298, false, "target_101999"), new Interval("chr2", 108484181, 108484297, true, "target_101999")},
-                {new Interval("chr13", 113547048, 113547139, false, "target_51005"), new Interval("chr13", 114566804, 114566895, true, "target_51005")},
-                {new Interval("chr13", 113547227, 113547397, false, "target_51006"), new Interval("chr13", 114566546, 114566716, true, "target_51006")},
-                {new Interval("chr13", 113562918, 113562946, false, "target_51007"), new Interval("chr13", 114550997, 114551025, true, "target_51007")},
-                {new Interval("chr13", 113564379, 113564445, false, "target_51008"), new Interval("chr13", 114549498, 114549564, true, "target_51008")},
-                {new Interval("chr13", 113571118, 113571244, false, "target_51009"), new Interval("chr13", 114542699, 114542825, true, "target_51009")},
-                {new Interval("chr13", 113572777, 113572903, false, "target_51010"), new Interval("chr13", 114541040, 114541166, true, "target_51010")},
-                {new Interval("chr13", 113575333, 113575459, false, "target_51011"), new Interval("chr13", 114538484, 114538610, true, "target_51011")},
-                {new Interval("chr13", 113576296, 113576421, false, "target_51012"), new Interval("chr13", 114537522, 114537647, true, "target_51012")},
-                {new Interval("chr13", 113578216, 113578338, false, "target_51013"), new Interval("chr13", 114535605, 114535727, true, "target_51013")},
-                {new Interval("chr13", 113578480, 113578673, false, "target_51014"), new Interval("chr13", 114535270, 114535463, true, "target_51014")},
-                {new Interval("chr13", 113582257, 113582425, false, "target_51015"), new Interval("chr13", 114531518, 114531686, true, "target_51015")},
-                {new Interval("chr13", 113583804, 113583976, false, "target_51016"), new Interval("chr13", 114529967, 114530139, true, "target_51016")},
-                {new Interval("chr13", 113587418, 113587597, false, "target_51017"), new Interval("chr13", 114526346, 114526525, true, "target_51017")},
-                {new Interval("chr13", 113588782, 113589014, false, "target_51018"), new Interval("chr13", 114524929, 114525161, true, "target_51018")},
-                {new Interval("chr13", 113589950, 113590108, false, "target_51019"), new Interval("chr13", 114523835, 114523993, true, "target_51019")},
-                {new Interval("chr13", 113599065, 113599236, false, "target_51020"), new Interval("chr13", 114514707, 114514878, true, "target_51020")},
-                {new Interval("chr13", 113605940, 113606087, false, "target_51021"), new Interval("chr13", 114507856, 114508003, true, "target_51021")},
-                {new Interval("chr13", 113609156, 113609319, false, "target_51022"), new Interval("chr13", 114504624, 114504787, true, "target_51022")},
-                {new Interval("chr13", 113610056, 113610145, false, "target_51023"), new Interval("chr13", 114503798, 114503887, true, "target_51023")},
-                {new Interval("chr13", 113611549, 113611633, false, "target_51024"), new Interval("chr13", 114502310, 114502394, true, "target_51024")},
-                {new Interval("chr13", 113615731, 113615824, false, "target_51025"), new Interval("chr13", 114498119, 114498212, true, "target_51025")},
-                {new Interval("chr13", 113641808, 113641874, false, "target_51026"), new Interval("chr13", 114472069, 114472135, true, "target_51026")},
-                {new Interval("chr13", 113644711, 113644857, false, "target_51027"), new Interval("chr13", 114469086, 114469232, true, "target_51027")},
-                {new Interval("chr13", 113651799, 113651848, false, "target_51028"), new Interval("chr13", 114462241, 114462290, true, "target_51028")},
-                {new Interval("chr17", 33541604, 33542176, false, "target_76102"),   new Interval("chr17", 36294030, 36294602, true, "target_76102")},
-                {new Interval("chr17", 33543154, 33543310, false, "target_76103"),   new Interval("chr17", 36292896, 36293052, true, "target_76103")},
-                {new Interval("chr17", 33543677, 33543780, false, "target_76104"),   new Interval("chr17", 36292426, 36292529, true, "target_76104")},
-                {new Interval("chr17", 33544240, 33544309, false, "target_76105"),   new Interval("chr17", 36291897, 36291966, true, "target_76105")},
-                {new Interval("chr17", 33544690, 33544788, false, "target_76106"),   new Interval("chr17", 36291418, 36291516, true, "target_76106")},
-                {new Interval("chr17", 33545498, 33545622, false, "target_76107"),   new Interval("chr17", 36290584, 36290708, true, "target_76107")},
-                {new Interval("chr17", 33547465, 33547578, false, "target_76109"),   new Interval("chr17", 36288629, 36288742, true, "target_76109")},
-                {new Interval("chr17", 33547904, 33548015, false, "target_76110"),   new Interval("chr17", 36288192, 36288303, true, "target_76110")},
-                {new Interval("chr17", 33548455, 33548539, false, "target_76111"),   new Interval("chr17", 36287668, 36287752, true, "target_76111")},
-                {new Interval("chr17", 33549018, 33549061, false, "target_76112"),   new Interval("chr17", 36287146, 36287189, true, "target_76112")},
-                {new Interval("chr17", 33550341, 33550430, false, "target_76113"),   new Interval("chr17", 36285777, 36285866, true, "target_76113")},
-                {new Interval("chr17", 33550589, 33550664, false, "target_76114"),   new Interval("chr17", 36285543, 36285618, true, "target_76114")},
-                {new Interval("chrX", 148575967, 148576994, false, "target_184692"), new Interval("chrX", 148797411, 148798438, true, "target_184692")},
-                {new Interval("chrX", 148577066, 148577143, false, "target_184693"), new Interval("chrX", 148797262, 148797339, true, "target_184693")},
-                {new Interval("chrX", 148578167, 148578266, false, "target_184694"), new Interval("chrX", 148796139, 148796238, true, "target_184694")},
-                {new Interval("chrX", 148579488, 148579587, false, "target_184695"), new Interval("chrX", 148794818, 148794917, true, "target_184695")},
-                {new Interval("chrX", 148603758, 148603770, false, "target_184696"), new Interval("chrX", 148770634, 148770646, true, "target_184696")},
-                // Some that don't map in hg19
-                {new Interval("chr2", 111013693, 111013832), null},
-                {new Interval("chr3", 14174511, 14175398), null},
-                {new Interval("chr3", 50911035, 50911051), null},
-                {new Interval("chr6", 32071709, 32071869), null},
-                {new Interval("chr6", 32072183, 32072358), null},
-                {new Interval("chr6", 32104446, 32104606), null},
-                {new Interval("chr6", 32104920, 32105095), null},
-                {new Interval("chr7", 101995561, 101995739), null},
-                {new Interval("chr7", 142178782, 142178825), null},
-                {new Interval("chr7", 142179850, 142180013), null},
-                {new Interval("chr7", 142181067, 142181324), null},
-                {new Interval("chr7", 142181720, 142181860), null},
-                {new Interval("chr7", 142182157, 142182313), null},
-                {new Interval("chr15", 19335778, 19336302), null},
-                {new Interval("chr17", 33364376, 33364428), null},
-                {new Interval("chr17", 33546162, 33546214), null},
-                {new Interval("chr17", 33706667, 33706736), null},
-                {new Interval("chr17", 59772721, 59772781), null},
-                {new Interval("chr17", 59779355, 59779421), null},
-                {new Interval("chr17", 59781483, 59781540), null},
-                {new Interval("chr17", 59783488, 59783565), null},
-                {new Interval("chr17", 59784584, 59784615), null},
-                {new Interval("chr17", 59786025, 59786136), null},
-                {new Interval("chr17", 59787203, 59787494), null},
-                {new Interval("chr17", 59791235, 59791514), null},
-                {new Interval("chr17", 59794247, 59794502), null},
-                {new Interval("chr17", 59801884, 59802193), null},
-                {new Interval("chr17", 59804685, 59804982), null},
-                {new Interval("chr17", 59817352, 59817382), null},
-                {new Interval("chr17", 59817465, 59817532), null},
-                {new Interval("chr17", 59875754, 59875812), null},
-                {new Interval("chr17", 59875899, 59875944), null},
-                {new Interval("chr17", 59879183, 59879456), null},
-                {new Interval("chr17", 59883988, 59884276), null},
-                {new Interval("chr17", 59887398, 59887512), null},
-                {new Interval("chrX", 48774611, 48775058), null},
-
-        };
-    }
-
-    @Test(dataProvider = "failingIntervals")
-    public void testDiagnosticLiftover(final Interval fromInterval) {
-        final List<LiftOver.PartialLiftover> partials = liftOver.diagnosticLiftover(fromInterval);
-        System.out.println("Diagnosing " + fromInterval + " (len " + fromInterval.length() + ")");
-        for (final LiftOver.PartialLiftover partial : partials) {
-            System.out.println(partial);
-        }
-    }
-
-    @DataProvider(name = "failingIntervals")
-    public Object[][] makeFailingIntervals() {
-        return new Object[][] {
-                {new Interval("chr3", 50911035, 50911051)},
-                {new Interval("chr2", 111013693, 111013832)},
-                {new Interval("chr3", 14174511, 14175398)},
-                {new Interval("chr3", 50911035, 50911051)},
-                {new Interval("chr6", 32071709, 32071869)},
-                {new Interval("chr6", 32072183, 32072358)},
-                {new Interval("chr6", 32104446, 32104606)},
-                {new Interval("chr6", 32104920, 32105095)},
-                {new Interval("chr7", 101995561, 101995739)},
-                {new Interval("chr7", 142178782, 142178825)},
-                {new Interval("chr7", 142179850, 142180013)},
-                {new Interval("chr7", 142181067, 142181324)},
-                {new Interval("chr7", 142181720, 142181860)},
-                {new Interval("chr7", 142182157, 142182313)},
-                {new Interval("chr15", 19335778, 19336302)},
-                {new Interval("chr17", 33364376, 33364428)},
-                {new Interval("chr17", 33546162, 33546214)},
-                {new Interval("chr17", 33706667, 33706736)},
-                {new Interval("chr17", 59772721, 59772781)},
-                {new Interval("chr17", 59779355, 59779421)},
-                {new Interval("chr17", 59781483, 59781540)},
-                {new Interval("chr17", 59783488, 59783565)},
-                {new Interval("chr17", 59784584, 59784615)},
-                {new Interval("chr17", 59786025, 59786136)},
-                {new Interval("chr17", 59787203, 59787494)},
-                {new Interval("chr17", 59791235, 59791514)},
-                {new Interval("chr17", 59794247, 59794502)},
-                {new Interval("chr17", 59801884, 59802193)},
-                {new Interval("chr17", 59804685, 59804982)},
-                {new Interval("chr17", 59817352, 59817382)},
-                {new Interval("chr17", 59817465, 59817532)},
-                {new Interval("chr17", 59875754, 59875812)},
-                {new Interval("chr17", 59875899, 59875944)},
-                {new Interval("chr17", 59879183, 59879456)},
-                {new Interval("chr17", 59883988, 59884276)},
-                {new Interval("chr17", 59887398, 59887512)},
-                {new Interval("chrX", 48774611, 48775058)},
-
-        };
-    }
-
-    @Test
-    public void testWriteChain() throws Exception {
-        final OverlapDetector<Chain> chains = Chain.loadChains(CHAIN_FILE);
-        File outFile = File.createTempFile("test.", ".chain");
-        outFile.deleteOnExit();
-        PrintWriter pw = new PrintWriter(outFile);
-        final Map<Integer, Chain> originalChainMap = new TreeMap<Integer, Chain>();
-        for (final Chain chain : chains.getAll()) {
-            chain.write(pw);
-            originalChainMap.put(chain.id, chain);
-        }
-        pw.close();
-
-        final OverlapDetector<Chain> newChains = Chain.loadChains(outFile);
-        final Map<Integer, Chain> newChainMap = new TreeMap<Integer, Chain>();
-        for (final Chain chain : newChains.getAll()) {
-            newChainMap.put(chain.id, chain);
-        }
-        Assert.assertEquals(newChainMap, originalChainMap);
-    }
-}
diff --git a/src/tests/java/net/sf/picard/metrics/MetricsFileTest.java b/src/tests/java/net/sf/picard/metrics/MetricsFileTest.java
deleted file mode 100644
index c60408d..0000000
--- a/src/tests/java/net/sf/picard/metrics/MetricsFileTest.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.metrics;
-
-import org.testng.annotations.Test;
-import org.testng.Assert;
-
-import java.util.Date;
-import java.io.File;
-import java.io.FileWriter;
-import java.io.FileReader;
-
-import net.sf.picard.util.Histogram;
-import net.sf.picard.util.FormatUtil;
-import net.sf.picard.PicardException;
-
-/**
- * Tests for the various classes in the metrics package.  Constructs a MetricsFile,
- * populates it with various items and then ensure that it can be written to disk
- * and read back without altering any values.
- *
- * @author Tim Fennell
- */
-public class MetricsFileTest {
-    public static enum TestEnum {One, Two, Three}
-
-    public static class TestMetric extends MetricBase implements Cloneable {
-        public String   STRING_PROP;
-        public Date     DATE_PROP;
-        public Short    SHORT_PROP;
-        public Integer  INTEGER_PROP;
-        public Long     LONG_PROP;
-        public Float    FLOAT_PROP;
-        public Double   DOUBLE_PROP;
-        public TestEnum ENUM_PROP;
-        public Boolean  BOOLEAN_PROP;
-        public short    SHORT_PRIMITIVE;
-        public int      INT_PRIMITIVE;
-        public long     LONG_PRIMITIVE;
-        public float    FLOAT_PRIMITIVE;
-        public double   DOUBLE_PRIMITIVE;
-        public boolean  BOOLEAN_PRIMITIVE;
-
-        public TestMetric clone()  {
-            try { return (TestMetric) super.clone(); }
-            catch (CloneNotSupportedException cnse) { throw new PicardException("That's Unpossible!"); }
-        }
-    }
-
-    @Test
-    public void testWriteMetricsFile() throws Exception {
-        MetricsFile<TestMetric,Integer> file = new MetricsFile<TestMetric,Integer>();
-        TestMetric metric = new TestMetric();
-        metric.STRING_PROP       = "Hello World";
-        metric.DATE_PROP         = new FormatUtil().parseDate("2008-12-31");
-        metric.SHORT_PROP        = 123;
-        metric.INTEGER_PROP      = null;
-        metric.LONG_PROP         = Long.MAX_VALUE;
-        metric.FLOAT_PROP        = 456.789f;
-        metric.DOUBLE_PROP       = 0.713487;
-        metric.ENUM_PROP         = TestEnum.Two;
-        metric.BOOLEAN_PROP      = false;
-        metric.SHORT_PRIMITIVE   = 123;
-        metric.INT_PRIMITIVE     = 919834781;
-        metric.LONG_PRIMITIVE    = Long.MAX_VALUE - Integer.MAX_VALUE;
-        metric.FLOAT_PRIMITIVE   = 0.55694f;
-        metric.DOUBLE_PRIMITIVE  = 0.229233;
-        metric.BOOLEAN_PRIMITIVE = true;
-        file.addMetric(metric);
-
-        MetricsFile<TestMetric,Integer> file2 = writeThenReadBack(file);
-        Assert.assertEquals(file, file2);
-
-        // Now add some headers and run the test again
-        StringHeader stringHeader = new StringHeader();
-        stringHeader.setValue("Hello, I'm a String Header!");
-        file.addHeader(stringHeader);
-
-        VersionHeader version = new VersionHeader();
-        version.setVersionedItem("MetricsFileTest");
-        version.setVersionString("1.0");
-        file.addHeader(version);
-
-        version = new VersionHeader();
-        version.setVersionedItem("Nada");
-        version.setVersionString("0.0alpha1");
-        file.addHeader(version);
-
-        file2 = writeThenReadBack(file);
-        Assert.assertEquals(file, file2);
-
-        // Now add a Histogram and make sure it still works
-        Histogram<Integer> histo = new Histogram<Integer>();
-        histo.setBinLabel("small_number");
-        histo.setValueLabel("big_number");
-        histo.increment(1, 101);
-        histo.increment(2, 202);
-        histo.increment(3, 4000);
-        histo.increment(5, 123981);
-        histo.increment(1000, 10981982);
-        file.setHistogram(histo);
-
-        file2 = writeThenReadBack(file);
-        Assert.assertEquals(file, file2);
-
-        // And lastly add some more metrics rows to the file
-        TestMetric metric2 = metric.clone();
-        metric2.ENUM_PROP = TestEnum.One;
-        metric2.FLOAT_PROP = 0.998f;
-        metric2.STRING_PROP = "Wheeeee!";
-        file.addMetric(metric2);
-
-        metric2 = metric.clone();
-        metric2.ENUM_PROP = TestEnum.Three;
-        metric2.DOUBLE_PRIMITIVE = 1.299d;
-        file.addMetric(metric2);
-
-        file2 = writeThenReadBack(file);
-        Assert.assertEquals(file, file2);
-   }
-
-    /** Helper method to persist metrics to file and read them back again. */
-    private MetricsFile<TestMetric, Integer> writeThenReadBack(MetricsFile<TestMetric,Integer> in) throws Exception {
-        File f = File.createTempFile("test", ".metrics");
-        f.deleteOnExit();
-        FileWriter out = new FileWriter(f);
-        in.write(out);
-
-        MetricsFile<TestMetric,Integer> retval = new MetricsFile<TestMetric,Integer>();
-        retval.read(new FileReader(f));
-        return retval;
-    }
-}
diff --git a/src/tests/java/net/sf/picard/reference/FastaSequenceFileTest.java b/src/tests/java/net/sf/picard/reference/FastaSequenceFileTest.java
deleted file mode 100644
index dcbac8f..0000000
--- a/src/tests/java/net/sf/picard/reference/FastaSequenceFileTest.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.reference;
-
-import net.sf.samtools.util.StringUtil;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.io.FileWriter;
-import java.io.PrintWriter;
-
-/**
- * @author alecw at broadinstitute.org
- */
-public class FastaSequenceFileTest {
-    @Test
-    public void testTrailingWhitespace() throws Exception {
-        final File fasta = File.createTempFile("test", ".fasta");
-        fasta.deleteOnExit();
-        final PrintWriter writer = new PrintWriter(fasta);
-        final String chr1 = "chr1";
-        writer.println(">" + chr1);
-        final String sequence = "ACGTACGT";
-        writer.println(sequence);
-        writer.println(sequence + " \t");
-        writer.close();
-        final FastaSequenceFile fastaReader = new FastaSequenceFile(fasta, true);
-        final ReferenceSequence referenceSequence = fastaReader.nextSequence();
-        Assert.assertEquals(referenceSequence.getName(), chr1);
-        Assert.assertEquals(StringUtil.bytesToString(referenceSequence.getBases()), sequence + sequence);
-    }
-
-    @Test
-    public void testIntermediateWhitespace() throws Exception {
-        final File fasta = File.createTempFile("test", ".fasta");
-        fasta.deleteOnExit();
-        final PrintWriter writer = new PrintWriter(fasta);
-        final String chr1 = "chr1";
-        writer.println(">" + chr1 + " extra stuff after sequence name");
-        final String sequence = "ACGTACGT";
-        writer.println(sequence + "  ");
-        writer.println(sequence + " \t");
-        writer.println(sequence);
-        writer.close();
-        final FastaSequenceFile fastaReader = new FastaSequenceFile(fasta, true);
-        final ReferenceSequence referenceSequence = fastaReader.nextSequence();
-        Assert.assertEquals(referenceSequence.getName(), chr1);
-        Assert.assertEquals(StringUtil.bytesToString(referenceSequence.getBases()), sequence + sequence + sequence);
-    }
-}
diff --git a/src/tests/java/net/sf/picard/reference/FastaSequenceIndexTest.java b/src/tests/java/net/sf/picard/reference/FastaSequenceIndexTest.java
deleted file mode 100644
index a72d955..0000000
--- a/src/tests/java/net/sf/picard/reference/FastaSequenceIndexTest.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.reference;
-
-import net.sf.picard.PicardException;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.util.Iterator;
-
-import org.testng.annotations.Test;
-import org.testng.annotations.DataProvider;
-import org.testng.Assert;
-
-/**
- * Test the fasta sequence index reader.
- */
-public class FastaSequenceIndexTest {
-    private static File TEST_DATA_DIR = new File("testdata/net/sf/picard/reference");
-
-    @DataProvider(name="homosapiens")
-    public Object[][] provideHomoSapiens() throws FileNotFoundException {
-        final File sequenceIndexFile = new File(TEST_DATA_DIR,"Homo_sapiens_assembly18.fasta.fai");
-        return new Object[][] { new Object[] { new FastaSequenceIndex(sequenceIndexFile) } };    
-    }
-
-    @DataProvider(name="specialcharacters")
-    public Object[][] provideSpecialCharacters() throws FileNotFoundException {
-        final File sequenceIndexFile = new File(TEST_DATA_DIR,"testing.fai");
-        return new Object[][] { new Object[] { new FastaSequenceIndex(sequenceIndexFile) } };
-    }
-
-    @Test(dataProvider="homosapiens")
-    public void testInitialContig(FastaSequenceIndex sequenceIndex) {
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chrM"),"Contig chrM is not present");
-        FastaSequenceIndexEntry entry = sequenceIndex.getIndexEntry("chrM");
-        Assert.assertEquals(entry.getContig(),"chrM","Contig chrM name is incorrect");
-        Assert.assertEquals(entry.getLocation(),6L,"Contig chrM location is incorrect");
-        Assert.assertEquals(entry.getSize(),16571L,"Contig chrM size is incorrect");
-        Assert.assertEquals(entry.getBasesPerLine(),50,"Contig chrM bases per line is incorrect");
-        Assert.assertEquals(entry.getBytesPerLine(),51,"Contig chrM bytes per line is incorrect");
-
-    }
-
-    @Test(dataProvider="homosapiens")
-    public void testMiddleContig(FastaSequenceIndex sequenceIndex) {
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chr8"),"Contig chr8 is not present");
-        FastaSequenceIndexEntry entry = sequenceIndex.getIndexEntry("chr8");
-        Assert.assertEquals(entry.getContig(),"chr8","Contig chr8 name is incorrect");
-        Assert.assertEquals(entry.getLocation(),1419403101L,"Contig chr8 location is incorrect");
-        Assert.assertEquals(entry.getSize(),146274826L,"Contig chr8 size is incorrect");
-        Assert.assertEquals(entry.getBasesPerLine(),50,"Contig chr8 bases per line is incorrect");
-        Assert.assertEquals(entry.getBytesPerLine(),51,"Contig chr8 bytes per line is incorrect");
-    }
-
-    @Test(dataProvider="homosapiens")
-    public void testLastContig(FastaSequenceIndex sequenceIndex) {
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chrX_random"),"Contig chrX_random is not present");
-        FastaSequenceIndexEntry entry = sequenceIndex.getIndexEntry("chrX_random");
-        Assert.assertEquals(entry.getContig(),"chrX_random","Contig chrX_random name is incorrect");
-        Assert.assertEquals(entry.getLocation(),3156698441L,"Contig chrX_random location is incorrect");
-        Assert.assertEquals(entry.getSize(),1719168L,"Contig chrX_random size is incorrect");
-        Assert.assertEquals(entry.getBasesPerLine(),50,"Contig chrX_random bases per line is incorrect");
-        Assert.assertEquals(entry.getBytesPerLine(),51,"Contig chrX_random bytes per line is incorrect");
-    }
-
-    @Test(dataProvider="homosapiens")
-    public void testAllContigsPresent(FastaSequenceIndex sequenceIndex) {
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chrM"),"Contig chrM is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chr1"),"Contig chr1 is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chr2"),"Contig chr2 is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chr3"),"Contig chr3 is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chr4"),"Contig chr4 is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chr5"),"Contig chr5 is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chr6"),"Contig chr6 is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chr7"),"Contig chr7 is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chr8"),"Contig chr8 is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chr9"),"Contig chr9 is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chr10"),"Contig chr10 is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chr11"),"Contig chr11 is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chr12"),"Contig chr12 is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chr13"),"Contig chr13 is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chr14"),"Contig chr14 is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chr15"),"Contig chr15 is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chr16"),"Contig chr16 is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chr17"),"Contig chr17 is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chr18"),"Contig chr18 is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chr19"),"Contig chr19 is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chr20"),"Contig chr20 is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chr21"),"Contig chr21 is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chr22"),"Contig chr22 is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chrX"),"Contig chrX is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chrY"),"Contig chrY is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chr1_random"),"Contig chr1_random is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chr2_random"),"Contig chr2_random is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chr3_random"),"Contig chr3_random is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chr4_random"),"Contig chr4_random is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chr5_random"),"Contig chr5_random is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chr6_random"),"Contig chr6_random is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chr7_random"),"Contig chr7_random is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chr8_random"),"Contig chr8_random is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chr9_random"),"Contig chr9_random is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chr10_random"),"Contig chr10_random is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chr11_random"),"Contig chr11_random is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chr13_random"),"Contig chr13_random is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chr15_random"),"Contig chr15_random is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chr16_random"),"Contig chr16_random is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chr17_random"),"Contig chr17_random is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chr18_random"),"Contig chr18_random is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chr19_random"),"Contig chr19_random is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chr21_random"),"Contig chr21_random is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chr22_random"),"Contig chr22_random is not present");
-        Assert.assertTrue(sequenceIndex.hasIndexEntry("chrX_random"),"Contig chrX_random is not present");
-    }
-
-    @Test(dataProvider="homosapiens")
-    public void testHasInvalidEntry(FastaSequenceIndex sequenceIndex) {
-        Assert.assertFalse(sequenceIndex.hasIndexEntry("invalid"),"Found an invalid entry");
-    }
-
-    @Test(dataProvider="homosapiens",expectedExceptions=PicardException.class)
-    public void testGetInvalidEntry(FastaSequenceIndex sequenceIndex) {
-        sequenceIndex.getIndexEntry("invalid");
-    }
-
-    @Test(dataProvider="homosapiens")
-    public void testIteration(FastaSequenceIndex sequenceIndex) {
-        Iterator<FastaSequenceIndexEntry> sequenceIndexEntries = sequenceIndex.iterator();
-
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chrM","Contig chrM is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chr1","Contig chr1 is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chr2","Contig chr2 is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chr3","Contig chr3 is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chr4","Contig chr4 is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chr5","Contig chr5 is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chr6","Contig chr6 is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chr7","Contig chr7 is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chr8","Contig chr8 is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chr9","Contig chr9 is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chr10","Contig chr10 is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chr11","Contig chr11 is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chr12","Contig chr12 is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chr13","Contig chr13 is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chr14","Contig chr14 is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chr15","Contig chr15 is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chr16","Contig chr16 is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chr17","Contig chr17 is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chr18","Contig chr18 is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chr19","Contig chr19 is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chr20","Contig chr20 is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chr21","Contig chr21 is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chr22","Contig chr22 is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chrX","Contig chrX is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chrY","Contig chrY is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chr1_random","Contig chr1_random is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chr2_random","Contig chr2_random is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chr3_random","Contig chr3_random is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chr4_random","Contig chr4_random is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chr5_random","Contig chr5_random is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chr6_random","Contig chr6_random is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chr7_random","Contig chr7_random is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chr8_random","Contig chr8_random is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chr9_random","Contig chr9_random is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chr10_random","Contig chr10_random is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chr11_random","Contig chr11_random is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chr13_random","Contig chr13_random is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chr15_random","Contig chr15_random is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chr16_random","Contig chr16_random is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chr17_random","Contig chr17_random is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chr18_random","Contig chr18_random is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chr19_random","Contig chr19_random is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chr21_random","Contig chr21_random is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chr22_random","Contig chr22_random is not present");
-        Assert.assertEquals(sequenceIndexEntries.next().getContig(),"chrX_random","Contig chrX_random is not present");
-        Assert.assertFalse(sequenceIndexEntries.hasNext(),"Iterator still has more entries");
-    }
-
-    @Test(dataProvider="specialcharacters")
-    public void testSpecialCharacters(FastaSequenceIndex specialCharactersIndex) {
-        /* file contents:
-        chrM	16571	6	50	51
-        chr1;boat	247249719	16915	50	51
-        chr2:money	242951149	252211635	50	51
-        chr3::;	199501827	500021813	50	51
-        ;;;;;;  1234            1234            1234    1234
-        file:gi|17981852|ref|NC_001807.4|    16571   2911876801      70      71
-        */
-        Iterator<FastaSequenceIndexEntry> sequenceIndexEntries = specialCharactersIndex.iterator();
-        FastaSequenceIndexEntry ent = sequenceIndexEntries.next();
-        Assert.assertEquals(ent.getContig(),"chrM","Contig chrM is not present");
-        Assert.assertEquals(ent.getSize(),16571,"Contig chrM size is not correct");
-        Assert.assertEquals(ent.getLocation(),6,"Contig chrM location is not correct");
-        Assert.assertEquals(ent.getBasesPerLine(),50,"Contig chrM bases per line is not correct");
-        Assert.assertEquals(ent.getBytesPerLine(),51,"Contig chrM bytes per line is not correct");
-
-        ent = sequenceIndexEntries.next();
-        Assert.assertEquals(ent.getContig(),"chr1;boat","Contig chr1;boat is not present");
-        Assert.assertEquals(ent.getSize(),247249719,"Contig chr1;boat size is not correct");
-        Assert.assertEquals(ent.getLocation(),16915,"Contig chr1;boat location is not correct");
-        Assert.assertEquals(ent.getBasesPerLine(),50,"Contig chr1;boat bases per line is not correct");
-        Assert.assertEquals(ent.getBytesPerLine(),51,"Contig chr1;boat bytes per line is not correct");
-
-        ent = sequenceIndexEntries.next();
-        Assert.assertEquals(ent.getContig(),"chr2:money","Contig chr2:money is not present");
-        Assert.assertEquals(ent.getSize(),242951149,"Contig chr2:money size is not correct");
-        Assert.assertEquals(ent.getLocation(),252211635,"Contig chr2:money location is not correct");
-        Assert.assertEquals(ent.getBasesPerLine(),50,"Contig chr2:money bases per line is not correct");
-        Assert.assertEquals(ent.getBytesPerLine(),51,"Contig chr2:money bytes per line is not correct");
-
-        ent = sequenceIndexEntries.next();
-        Assert.assertEquals(ent.getContig(),"chr3::;","Contig chr3::; is not present");
-        Assert.assertEquals(ent.getSize(),199501827,"Contig chr3::; size is not correct");
-        Assert.assertEquals(ent.getLocation(),500021813,"Contig chrM location is not correct");
-        Assert.assertEquals(ent.getBasesPerLine(),50,"Contig chr3::; bases per line is not correct");
-        Assert.assertEquals(ent.getBytesPerLine(),51,"Contig chr3::; bytes per line is not correct");
-
-        ent = sequenceIndexEntries.next();
-        Assert.assertEquals(ent.getContig(),";;;;;;;;","Contig ;;;;;;;; is not present");
-        Assert.assertEquals(ent.getSize(),123,"Contig ;;;;;;;; size is not correct");
-        Assert.assertEquals(ent.getLocation(),234,"Contig ;;;;;;;; location is not correct");
-        Assert.assertEquals(ent.getBasesPerLine(),456,"Contig ;;;;;;;; bases per line is not correct");
-        Assert.assertEquals(ent.getBytesPerLine(),789,"Contig ;;;;;;;; bytes per line is not correct");
-
-        ent = sequenceIndexEntries.next();
-        Assert.assertEquals(ent.getContig(),"file:gi|17981852|ref|NC_001807.4|","Contig file:gi|17981852|ref|NC_001807.4| is not present");
-        Assert.assertEquals(ent.getSize(),16571,"Contig file:gi|17981852|ref|NC_001807.4| size is not correct");
-        Assert.assertEquals(ent.getLocation(),2911876801L,"Contig file:gi|17981852|ref|NC_001807.4| location is not correct");
-        Assert.assertEquals(ent.getBasesPerLine(),70,"Contig file:gi|17981852|ref|NC_001807.4| bases per line is not correct");
-        Assert.assertEquals(ent.getBytesPerLine(),71,"Contig file:gi|17981852|ref|NC_001807.4| bytes per line is not correct");
-    }
-}
diff --git a/src/tests/java/net/sf/picard/reference/IndexedFastaSequenceFileTest.java b/src/tests/java/net/sf/picard/reference/IndexedFastaSequenceFileTest.java
deleted file mode 100644
index 12198c9..0000000
--- a/src/tests/java/net/sf/picard/reference/IndexedFastaSequenceFileTest.java
+++ /dev/null
@@ -1,303 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.reference;
-
-import net.sf.picard.PicardException;
-import net.sf.samtools.SAMSequenceRecord;
-import net.sf.samtools.util.CloserUtil;
-import net.sf.samtools.util.StringUtil;
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-
-/**
- * Test the indexed fasta sequence file reader.
- */
-public class IndexedFastaSequenceFileTest{
-    private static File TEST_DATA_DIR = new File("testdata/net/sf/picard/reference");
-    private static File SEQUENCE_FILE = new File(TEST_DATA_DIR,"Homo_sapiens_assembly18.trimmed.fasta");
-    private static File SEQUENCE_FILE_NODICT = new File(TEST_DATA_DIR,"Homo_sapiens_assembly18.trimmed.nodict.fasta");
-
-    private final String firstBasesOfChrM = "GATCACAGGTCTATCACCCT";
-    private final String extendedBasesOfChrM = "GATCACAGGTCTATCACCCTATTAACCACTCACGGGAGCTCTCCATGCAT" +
-                                               "TTGGTATTTTCGTCTGGGGGGTGTGCACGCGATAGCATTGCGAGACGCTG" +
-                                               "GAGCCGGAGCACCCTATGTCGCAGTATCTGTCTTTGATTCCTGCCTCATT";
-    private final String lastBasesOfChr20 = "ttgtctgatgctcatattgt";
-    private final int CHR20_LENGTH = 1000000;
-
-    @DataProvider(name="homosapiens")
-    public Object[][] provideSequenceFile() throws FileNotFoundException {
-        return new Object[][] { new Object[]
-                { new IndexedFastaSequenceFile(SEQUENCE_FILE) },
-                { new IndexedFastaSequenceFile(SEQUENCE_FILE_NODICT) }};
-    }
-
-    @DataProvider(name="comparative")
-    public Object[][] provideOriginalAndNewReaders() throws FileNotFoundException {
-        return new Object[][] {
-                new Object[] { ReferenceSequenceFileFactory.getReferenceSequenceFile(SEQUENCE_FILE),
-                                               new IndexedFastaSequenceFile(SEQUENCE_FILE) },
-                new Object[] { ReferenceSequenceFileFactory.getReferenceSequenceFile(SEQUENCE_FILE, true),
-                                               new IndexedFastaSequenceFile(SEQUENCE_FILE) },};
-    }
-
-    @Test(dataProvider="homosapiens")
-    public void testOpenFile(IndexedFastaSequenceFile sequenceFile) {
-        long startTime = System.currentTimeMillis();
-        Assert.assertNotNull(sequenceFile);
-        long endTime = System.currentTimeMillis();
-        CloserUtil.close(sequenceFile);
-
-        System.err.printf("testOpenFile runtime: %dms%n", (endTime - startTime)) ;
-    }
-
-    @Test(dataProvider="homosapiens")
-    public void testFirstSequence(IndexedFastaSequenceFile sequenceFile) {
-        long startTime = System.currentTimeMillis();
-        ReferenceSequence sequence = sequenceFile.getSubsequenceAt("chrM",1,firstBasesOfChrM.length());
-        long endTime = System.currentTimeMillis();
-
-        Assert.assertEquals(sequence.getName(),"chrM","Sequence contig is not correct");
-        Assert.assertEquals(sequence.getContigIndex(),0,"Sequence contig index is not correct");
-        Assert.assertEquals(StringUtil.bytesToString(sequence.getBases()),firstBasesOfChrM,"First n bases of chrM are incorrect");
-
-        CloserUtil.close(sequenceFile);
-
-        System.err.printf("testFirstSequence runtime: %dms%n", (endTime - startTime)) ;
-    }
-
-    @Test(dataProvider="homosapiens")
-    public void testFirstSequenceExtended(IndexedFastaSequenceFile sequenceFile) {
-        long startTime = System.currentTimeMillis();
-        ReferenceSequence sequence = sequenceFile.getSubsequenceAt("chrM",1,extendedBasesOfChrM.length());
-        long endTime = System.currentTimeMillis();
-
-        Assert.assertEquals(sequence.getName(),"chrM","Sequence contig is not correct");
-        Assert.assertEquals(sequence.getContigIndex(),0,"Sequence contig index is not correct");
-        Assert.assertEquals(StringUtil.bytesToString(sequence.getBases()),extendedBasesOfChrM,"First n bases of chrM are incorrect");
-
-        CloserUtil.close(sequenceFile);
-
-        System.err.printf("testFirstSequenceExtended runtime: %dms%n", (endTime - startTime)) ;
-    }
-
-    @Test(dataProvider="homosapiens")
-    public void testReadStartingInCenterOfFirstLine(IndexedFastaSequenceFile sequenceFile) {
-        final int bytesToChopOff = 5;
-        String truncated = extendedBasesOfChrM.substring(bytesToChopOff);
-
-        long startTime = System.currentTimeMillis();
-        ReferenceSequence sequence = sequenceFile.getSubsequenceAt("chrM",
-                                                                   bytesToChopOff + 1,
-                                                                   bytesToChopOff + truncated.length());
-        long endTime = System.currentTimeMillis();
-
-        Assert.assertEquals(sequence.getName(),"chrM","Sequence contig is not correct");
-        Assert.assertEquals(sequence.getContigIndex(),0,"Sequence contig index is not correct");
-        Assert.assertEquals(StringUtil.bytesToString(sequence.getBases()),truncated,"First n bases of chrM are incorrect");
-
-        CloserUtil.close(sequenceFile);
-
-        System.err.printf("testReadStartingInCenterOfFirstLine runtime: %dms%n", (endTime - startTime)) ;
-    }
-
-    @Test(dataProvider="homosapiens")
-    public void testReadStartingInCenterOfMiddleLine(IndexedFastaSequenceFile sequenceFile) {
-        final int bytesToChopOff = 120;
-        String truncated = extendedBasesOfChrM.substring(bytesToChopOff);
-
-        long startTime = System.currentTimeMillis();
-        ReferenceSequence sequence = sequenceFile.getSubsequenceAt("chrM",
-                                                                   bytesToChopOff + 1,
-                                                                   bytesToChopOff + truncated.length());
-        long endTime = System.currentTimeMillis();
-
-        Assert.assertEquals(sequence.getName(),"chrM","Sequence contig is not correct");
-        Assert.assertEquals(sequence.getContigIndex(),0,"Sequence contig index is not correct");
-        Assert.assertEquals(StringUtil.bytesToString(sequence.getBases()),truncated,"First n bases of chrM are incorrect");
-
-        CloserUtil.close(sequenceFile);
-
-        System.err.printf("testReadStartingInCenterOfMiddleLine runtime: %dms%n", (endTime - startTime)) ;
-    }
-
-    @Test(dataProvider="comparative")
-    public void testFirstCompleteContigRead(ReferenceSequenceFile originalSequenceFile, IndexedFastaSequenceFile sequenceFile) {
-        ReferenceSequence expectedSequence = originalSequenceFile.nextSequence();
-
-        long startTime = System.currentTimeMillis();
-        ReferenceSequence sequence = sequenceFile.getSequence("chrM");
-        long endTime = System.currentTimeMillis();
-
-        Assert.assertEquals(sequence.getName(),"chrM","Sequence contig is not correct");
-        Assert.assertEquals(sequence.getContigIndex(),0,"Sequence contig index is not correct");
-        Assert.assertEquals(StringUtil.bytesToString(sequence.getBases()),StringUtil.bytesToString(expectedSequence.getBases()),"chrM is incorrect");
-
-        CloserUtil.close(originalSequenceFile);
-        CloserUtil.close(sequenceFile);
-
-        System.err.printf("testFirstCompleteContigRead runtime: %dms%n", (endTime - startTime)) ;
-    }
-
-    @Test(dataProvider="homosapiens",expectedExceptions=PicardException.class)
-    public void testReadThroughEndOfContig(IndexedFastaSequenceFile sequenceFile) {
-        long startTime = System.currentTimeMillis();
-        try {
-            sequenceFile.getSubsequenceAt("chrM",16500,16600);
-        }
-        finally {
-            long endTime = System.currentTimeMillis();
-
-            CloserUtil.close(sequenceFile);
-
-            System.err.printf("testReadThroughEndOfContig runtime: %dms%n", (endTime - startTime)) ;
-        }
-    }
-
-    @Test(dataProvider="homosapiens",expectedExceptions=PicardException.class)
-    public void testReadPastEndOfContig(IndexedFastaSequenceFile sequenceFile) {
-         long startTime = System.currentTimeMillis();
-         try {
-             sequenceFile.getSubsequenceAt("chrM",16800,16900);
-         }
-         finally {
-             long endTime = System.currentTimeMillis();
-
-             CloserUtil.close(sequenceFile);
-
-             System.err.printf("testReadPastEndOfContig runtime: %dms%n", (endTime - startTime)) ;
-         }
-     }
-
-    @Test(dataProvider="comparative")
-    public void testLastCompleteContigRead(ReferenceSequenceFile originalSequenceFile, IndexedFastaSequenceFile sequenceFile) {
-        ReferenceSequence expectedSequence = originalSequenceFile.nextSequence();
-        while( !expectedSequence.getName().equals("chr20") )
-            expectedSequence = originalSequenceFile.nextSequence();
-
-        long startTime = System.currentTimeMillis();
-        ReferenceSequence sequence = sequenceFile.getSequence("chr20");
-        long endTime = System.currentTimeMillis();
-
-        Assert.assertEquals(sequence.getName(),"chr20","Sequence contig is not correct");
-        Assert.assertEquals(sequence.getContigIndex(),1,"Sequence contig index is not correct");
-        Assert.assertEquals(StringUtil.bytesToString(sequence.getBases()),StringUtil.bytesToString(expectedSequence.getBases()),"chrX_random is incorrect");
-
-        CloserUtil.close(originalSequenceFile);
-        CloserUtil.close(sequenceFile);
-
-        System.err.printf("testLastCompleteContigRead runtime: %dms%n", (endTime - startTime)) ;
-    }
-
-
-    @Test(dataProvider="homosapiens")
-    public void testLastOfChr20(IndexedFastaSequenceFile sequenceFile) {
-        long startTime = System.currentTimeMillis();
-        ReferenceSequence sequence = sequenceFile.getSubsequenceAt("chr20",
-                                                                   CHR20_LENGTH - lastBasesOfChr20.length()+1,
-                                                                   CHR20_LENGTH);
-        long endTime = System.currentTimeMillis();
-
-        Assert.assertEquals(sequence.getName(),"chr20","Sequence contig is not correct");
-        Assert.assertEquals(sequence.getContigIndex(),1,"Sequence contig index is not correct");
-        Assert.assertEquals(StringUtil.bytesToString(sequence.getBases()),lastBasesOfChr20,"First n bases of chr1 are incorrect");
-
-        CloserUtil.close(sequenceFile);
-
-        System.err.printf("testFirstOfChr1 runtime: %dms%n", (endTime - startTime)) ;
-    }
-
-    @Test(dataProvider="comparative")
-    public void testFirstElementOfIterator(ReferenceSequenceFile originalSequenceFile,IndexedFastaSequenceFile sequenceFile) {
-        ReferenceSequence expectedSequence = originalSequenceFile.nextSequence();
-
-        long startTime = System.currentTimeMillis();
-        ReferenceSequence sequence = sequenceFile.nextSequence();
-        long endTime = System.currentTimeMillis();
-
-        Assert.assertEquals(sequence.getName(), "chrM","Sequence contig is not correct");
-        Assert.assertEquals(sequence.getContigIndex(), 0,"Sequence contig index is not correct");
-        Assert.assertEquals(StringUtil.bytesToString(sequence.getBases()),StringUtil.bytesToString(expectedSequence.getBases()),"chrM is incorrect");
-
-        CloserUtil.close(originalSequenceFile);
-        CloserUtil.close(sequenceFile);
-
-        System.err.printf("testFirstElementOfIterator runtime: %dms%n", (endTime - startTime)) ;
-    }
-
-    @Test(dataProvider="comparative")
-    public void testNextElementOfIterator(ReferenceSequenceFile originalSequenceFile, IndexedFastaSequenceFile sequenceFile) {
-        // Skip past the first one and load the second one.
-        originalSequenceFile.nextSequence();
-        ReferenceSequence expectedSequence = originalSequenceFile.nextSequence();
-
-        long startTime = System.currentTimeMillis();
-        sequenceFile.nextSequence();
-        ReferenceSequence sequence = sequenceFile.nextSequence();
-        long endTime = System.currentTimeMillis();
-
-        Assert.assertEquals(sequence.getName(),"chr20","Sequence contig is not correct");
-        Assert.assertEquals(sequence.getContigIndex(),1,"Sequence contig index is not correct");
-        Assert.assertEquals(sequence.length(),expectedSequence.length(),"Sequence size is not correct");
-        Assert.assertEquals(StringUtil.bytesToString(sequence.getBases()),StringUtil.bytesToString(expectedSequence.getBases()),"chr1 is incorrect");
-
-        CloserUtil.close(originalSequenceFile);
-        CloserUtil.close(sequenceFile);
-
-        System.err.printf("testNextElementOfIterator runtime: %dms%n", (endTime - startTime)) ;
-    }
-
-    @Test(dataProvider="comparative")
-    public void testReset(ReferenceSequenceFile originalSequenceFile, IndexedFastaSequenceFile sequenceFile) {
-        // Skip past the first one and load the second one.
-        ReferenceSequence expectedSequence = originalSequenceFile.nextSequence();
-
-        long startTime = System.currentTimeMillis();
-        sequenceFile.nextSequence();
-        sequenceFile.nextSequence();
-        sequenceFile.reset();
-        ReferenceSequence sequence = sequenceFile.nextSequence();
-        long endTime = System.currentTimeMillis();
-
-        Assert.assertEquals(sequence.getName(),"chrM","Sequence contig is not correct");
-        Assert.assertEquals(sequence.getContigIndex(),0,"Sequence contig index is not correct");
-        Assert.assertEquals(sequence.length(),expectedSequence.length(), "Sequence size is not correct");
-        Assert.assertEquals(StringUtil.bytesToString(sequence.getBases()),StringUtil.bytesToString(expectedSequence.getBases()),"chrM is incorrect");
-
-        CloserUtil.close(originalSequenceFile);
-        CloserUtil.close(sequenceFile);
-
-        System.err.printf("testReset runtime: %dms%n", (endTime - startTime)) ;
-    }
-
-    @Test(expectedExceptions = FileNotFoundException.class)
-    public void testMissingFile() throws Exception {
-        new IndexedFastaSequenceFile(new File(TEST_DATA_DIR, "non-existent.fasta"));
-        Assert.fail("FileNotFoundException should have been thrown");
-    }
-}
diff --git a/src/tests/java/net/sf/picard/reference/ReferenceSequenceFileWalkerTest.java b/src/tests/java/net/sf/picard/reference/ReferenceSequenceFileWalkerTest.java
deleted file mode 100644
index 71c6df8..0000000
--- a/src/tests/java/net/sf/picard/reference/ReferenceSequenceFileWalkerTest.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package net.sf.picard.reference;
-
-import net.sf.picard.PicardException;
-import net.sf.samtools.util.CloserUtil;
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.File;
-
-/**
- * Created by farjoun on 2/14/14.
- */
-public class ReferenceSequenceFileWalkerTest {
-
-
-    @DataProvider(name = "TestReference")
-    public Object[][] TestReference() {
-        return new Object[][]{
-                new Object[]{"testdata/net/sf/picard/reference/Homo_sapiens_assembly18.trimmed.fasta", 0, 1},
-                new Object[]{"testdata/net/sf/picard/reference/Homo_sapiens_assembly18.trimmed.fasta", 1, 1},
-                new Object[]{"testdata/net/sf/picard/reference/Homo_sapiens_assembly18.trimmed.fasta", 0, 0}
-        };
-    }
-
-
-    @Test(dataProvider = "TestReference")
-    public void testGet(final String fileName, final int index1, final int index2) throws PicardException {
-        final File refFile = new File(fileName);
-        final ReferenceSequenceFileWalker refWalker = new ReferenceSequenceFileWalker(refFile);
-
-        ReferenceSequence sequence = refWalker.get(index1);
-        Assert.assertEquals(sequence.getContigIndex(), index1);
-
-        sequence = refWalker.get(index2);
-        Assert.assertEquals(sequence.getContigIndex(), index2);
-        CloserUtil.close(refWalker);
-    }
-
-
-    @DataProvider(name = "TestFailReference")
-    public Object[][] TestFailReference() {
-        return new Object[][]{
-                new Object[]{"testdata/net/sf/picard/reference/Homo_sapiens_assembly18.trimmed.fasta", 2,3},
-                new Object[]{"testdata/net/sf/picard/reference/Homo_sapiens_assembly18.trimmed.fasta", 1,0},
-                new Object[]{"testdata/net/sf/picard/reference/Homo_sapiens_assembly18.trimmed.fasta", -1,0}
-        };
-    }
-
-
-    @Test(expectedExceptions = {PicardException.class}, dataProvider = "TestFailReference")
-    public void testFailGet(final String fileName, final int index1, final int index2) throws PicardException {
-        final File refFile = new File(fileName);
-        final ReferenceSequenceFileWalker refWalker = new ReferenceSequenceFileWalker(refFile);
-
-        try {
-            refWalker.get(index1);
-
-            refWalker.get(index2);
-        }
-        finally {
-            CloserUtil.close(refWalker);
-        }
-    }
-
-
-}
diff --git a/src/tests/java/net/sf/picard/reference/ReferenceSequenceTests.java b/src/tests/java/net/sf/picard/reference/ReferenceSequenceTests.java
deleted file mode 100644
index fa2393e..0000000
--- a/src/tests/java/net/sf/picard/reference/ReferenceSequenceTests.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.reference;
-
-import org.testng.annotations.Test;
-import org.testng.annotations.DataProvider;
-import org.testng.Assert;
-
-import java.io.File;
-import java.io.BufferedWriter;
-import java.io.FileWriter;
-import java.util.Random;
-
-/**
- * Tests for the reading of reference sequences in various formats.
- *
- * @author Tim Fennell
- */
-public class ReferenceSequenceTests {
-    private static final byte[] BASES = "acgtACGTN".getBytes();
-    private final Random random = new Random();
-
-    @Test(dataProvider="fastaTestParameters")
-    public void testSingleShortSequence(int chroms, int basesPerChrom) throws Exception {
-        File f = makeRandomReference(chroms, basesPerChrom);
-        ReferenceSequenceFile ref = ReferenceSequenceFileFactory.getReferenceSequenceFile(f);
-
-        for (int i=1; i<=chroms; ++i) {
-            ReferenceSequence seq = ref.nextSequence();
-            Assert.assertNotNull(seq);
-            Assert.assertEquals(seq.length(), basesPerChrom);
-            Assert.assertEquals(seq.getName(), "chr" + i);
-            Assert.assertEquals(seq.getContigIndex(), i-1);
-        }
-
-        Assert.assertNull(ref.nextSequence());
-    }
-
-    @DataProvider
-    Object[][] fastaTestParameters() {
-        return new Object[][] {
-                new Object[] { 1,     60},
-                new Object[] { 2,     60},
-                new Object[] {10,     60},
-                new Object[] { 1,   1000},
-                new Object[] { 2,   1000},
-                new Object[] {10,   1000},
-                new Object[] { 1, 250000},
-                new Object[] { 2, 250000},
-                new Object[] {10, 250000}
-        };
-    }
-
-
-    /** Utility method to write a random reference sequence of specified length. */
-    private File makeRandomReference(int chroms, int basesPerChrom) throws Exception {
-        File file = File.createTempFile("reference.", ".fasta");
-        file.deleteOnExit();
-        BufferedWriter out = new BufferedWriter(new FileWriter(file));
-
-        for (int i=1; i<=chroms; ++i) {
-            out.write("> chr" + i);
-            out.newLine();
-
-            for (int j=1; j<=basesPerChrom; ++j) {
-                out.write(BASES[random.nextInt(BASES.length)]);
-
-                if (j % 80 == 0 || j == basesPerChrom) out.newLine();
-            }
-        }
-
-        out.flush();
-        out.close();
-        return file;
-    }
-}
diff --git a/src/tests/java/net/sf/picard/sam/AddCommentsToBamTest.java b/src/tests/java/net/sf/picard/sam/AddCommentsToBamTest.java
deleted file mode 100644
index 1823997..0000000
--- a/src/tests/java/net/sf/picard/sam/AddCommentsToBamTest.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package net.sf.picard.sam;
-
-import net.sf.picard.PicardException;
-import net.sf.samtools.BamFileIoUtils;
-import net.sf.samtools.SAMFileHeader;
-import net.sf.samtools.SAMFileReader;
-import net.sf.samtools.SAMTextHeaderCodec;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.LinkedList;
-import java.util.List;
-
-public class AddCommentsToBamTest {
-    private static final File TEST_DATA_DIR = new File("testdata/net/sf/picard/sam");
-    private static final File INPUT_FILE = new File(TEST_DATA_DIR, "aligned_queryname_sorted.bam");
-    private static final File SAM_FILE = new File(TEST_DATA_DIR, "summary_alignment_stats_test2.sam");
-
-    private static final List<String> commentList = new ArrayList(Arrays.asList("test1", "test2", "test3"));
-
-    @Test
-    public void testAddCommentsToBam() throws Exception {
-        final AddCommentsToBam addCommentToBam = new AddCommentsToBam();
-        addCommentToBam.INPUT = INPUT_FILE;
-        addCommentToBam.OUTPUT = File.createTempFile("addCommentsToBamTest.", BamFileIoUtils.BAM_FILE_EXTENSION);
-        addCommentToBam.COMMENT = commentList;
-        addCommentToBam.doWork();
-        final SAMFileHeader newHeader = new SAMFileReader(addCommentToBam.OUTPUT).getFileHeader();
-
-        // The original comments are massaged when they're added to the header. Perform the same massaging here,
-        // and then compare the lists
-        final List<String> massagedComments = new LinkedList<String>();
-        for (final String comment : commentList) {
-            massagedComments.add(SAMTextHeaderCodec.COMMENT_PREFIX + comment);
-        }
-
-        Assert.assertEquals(newHeader.getComments(), massagedComments);
-    }
-
-    @Test(expectedExceptions = PicardException.class)
-    public void testUsingSam() throws Exception {
-        final AddCommentsToBam addCommentToBam = new AddCommentsToBam();
-        addCommentToBam.INPUT = SAM_FILE;
-        addCommentToBam.OUTPUT = File.createTempFile("addCommentsToBamTest.samFile.", BamFileIoUtils.BAM_FILE_EXTENSION);
-        addCommentToBam.COMMENT = commentList;
-        addCommentToBam.doWork();
-        throw new IllegalStateException("We shouldn't be here!");
-    }
-
-    @Test(expectedExceptions = PicardException.class)
-    public void testUsingNewlines() throws Exception {
-        final AddCommentsToBam addCommentToBam = new AddCommentsToBam();
-        addCommentToBam.INPUT = INPUT_FILE;
-        addCommentToBam.OUTPUT = File.createTempFile("addCommentsToBamTest.newLine.", BamFileIoUtils.BAM_FILE_EXTENSION);
-        addCommentToBam.COMMENT = new ArrayList(Arrays.asList("this is\n a crazy\n test"));
-        addCommentToBam.doWork();
-        throw new IllegalStateException("We shouldn't be here!");
-    }
-
-}
diff --git a/src/tests/java/net/sf/picard/sam/CleanSamTest.java b/src/tests/java/net/sf/picard/sam/CleanSamTest.java
deleted file mode 100644
index 71ead29..0000000
--- a/src/tests/java/net/sf/picard/sam/CleanSamTest.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2014 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.sam;
-
-import net.sf.picard.sam.testers.CleanSamTester;
-import net.sf.samtools.SAMFileReader;
-import net.sf.samtools.SAMRecord;
-import net.sf.samtools.SAMValidationError;
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.Arrays;
-
-public class CleanSamTest {
-
-    private static final File TEST_DATA_DIR = new File("testdata/net/sf/picard/sam/CleanSam");
-    private static final String qualityScore = "&/,&-.1/6/&&)&).)/,&0768)&/.,/874,&.4137572)&/&&,&1-&.0/&&*,&&&&&&&&&&18775799,&16:8775-56256/69::;0";
-
-    @Test(dataProvider = "testCleanSamDataProvider")
-    public void testCleanSam(final String samFile, final String expectedCigar) throws IOException {
-        final File cleanedFile = File.createTempFile(samFile + ".", ".sam");
-        cleanedFile.deleteOnExit();
-        final CleanSam cleanSam = new CleanSam();
-        cleanSam.INPUT = new File(TEST_DATA_DIR, samFile);
-        cleanSam.OUTPUT = cleanedFile;
-        Assert.assertEquals(cleanSam.doWork(), 0);
-        final SamFileValidator validator = new SamFileValidator(new PrintWriter(System.out), 8000);
-        validator.setIgnoreWarnings(true);
-        validator.setVerbose(true, 1000);
-        validator.setErrorsToIgnore(Arrays.asList(SAMValidationError.Type.MISSING_READ_GROUP));
-        SAMFileReader samReader = new SAMFileReader(cleanedFile);
-        samReader.setValidationStringency(SAMFileReader.ValidationStringency.LENIENT);
-        final SAMRecord rec = samReader.iterator().next();
-        samReader.close();
-        Assert.assertEquals(rec.getCigarString(), expectedCigar);
-        samReader = new SAMFileReader(cleanedFile);
-        final boolean validated = validator.validateSamFileVerbose(samReader, null);
-        samReader.close();
-        Assert.assertTrue(validated, "ValidateSamFile failed");
-    }
-
-    @DataProvider(name = "testCleanSamDataProvider")
-    public Object[][] testCleanSamDataProvider() {
-        return new Object[][]{
-                {"simple_fits.sam", "100M"},
-                {"simple_overhang.sam", "99M1S"},
-                {"fits_with_deletion.sam", "91M2D9M"},
-                {"overhang_with_deletion.sam", "91M2D8M1S"},
-                {"trailing_insertion.sam", "99M1I"},
-                {"long_trailing_insertion.sam", "90M10I"},
-        };
-    }
-
-    //identical test case using the SamFileTester to generate that SAM file on the fly
-    @Test(dataProvider = "testCleanSamTesterDataProvider")
-    public void testCleanSamTester(final String originalCigar, final String expectedCigar, final int defaultChromosomeLength, final int alignStart) throws IOException {
-        final CleanSamTester cleanSamTester = new CleanSamTester(expectedCigar, 100, defaultChromosomeLength);
-        // NB: this will add in the mate cigar, when enabled in SamPairUtil, for additional validation
-        cleanSamTester.addMappedPair(0, alignStart, alignStart, false, false, originalCigar, originalCigar, false, 50);
-        cleanSamTester.runTest();
-    }
-
-    @DataProvider(name = "testCleanSamTesterDataProvider")
-    public Object[][] testCleanSamTesterDataProvider() {
-        return new Object[][]{
-                {"100M", "100M", 101, 2}, // simple_filts.sam
-                {"100M", "99M1S", 101, 3}, // simple_overhang.sam
-                {"91M2D9M", "91M2D9M", 102, 1}, // fits_with_deletion.sam
-                {"91M2D9M", "91M2D8M1S", 101, 1}, // overhang_with_deletion.sam
-                {"99M1I", "99M1I", 101, 3}, // trailing_insertion.sam
-                {"90M10I", "90M10I", 101, 3} // long_trailing_insertion.sam
-        };
-    }
-}
diff --git a/src/tests/java/net/sf/picard/sam/CompareSAMsTest.java b/src/tests/java/net/sf/picard/sam/CompareSAMsTest.java
deleted file mode 100644
index dafdada..0000000
--- a/src/tests/java/net/sf/picard/sam/CompareSAMsTest.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.sam;
-
-import net.sf.picard.sam.CompareSAMs;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.io.File;
-
-public class CompareSAMsTest {
-    private static final File TEST_FILES_DIR = new File("testdata/net/sf/picard/sam/CompareSAMs");
-
-    private void testHelper(final String f1, final String f2, final int expectedMatch, final int expectedDiffer,
-                            final int expectedUnmappedBoth,
-                            final int expectedUnmappedLeft, final int expectedUnmappedRight, final int expectedMissingLeft,
-                            final int expectedMissingRight, final boolean areEqual) {
-        final String[] samFiles = {
-                new File(TEST_FILES_DIR, f1).getAbsolutePath(),
-                new File(TEST_FILES_DIR, f2).getAbsolutePath()
-        };
-        CompareSAMs compareSAMs = new CompareSAMs();
-        compareSAMs.instanceMain(samFiles);
-        Assert.assertEquals(areEqual, compareSAMs.areEqual());
-        Assert.assertEquals(expectedMatch, compareSAMs.getMappingsMatch());
-        Assert.assertEquals(expectedDiffer, compareSAMs.getMappingsDiffer());
-        Assert.assertEquals(expectedUnmappedBoth, compareSAMs.getUnmappedBoth());
-        Assert.assertEquals(expectedUnmappedLeft, compareSAMs.getUnmappedLeft());
-        Assert.assertEquals(expectedUnmappedRight, compareSAMs.getUnmappedRight());
-        Assert.assertEquals(expectedMissingLeft, compareSAMs.getMissingLeft());
-        Assert.assertEquals(expectedMissingRight, compareSAMs.getMissingRight());
-
-        final String[] samFilesReversed = {
-                new File(TEST_FILES_DIR, f2).getAbsolutePath(),
-                new File(TEST_FILES_DIR, f1).getAbsolutePath()
-        };
-        compareSAMs = new CompareSAMs();
-        compareSAMs.instanceMain(samFilesReversed);
-        Assert.assertEquals(areEqual, compareSAMs.areEqual());
-        Assert.assertEquals(expectedMatch, compareSAMs.getMappingsMatch());
-        Assert.assertEquals(expectedDiffer, compareSAMs.getMappingsDiffer());
-        Assert.assertEquals(expectedUnmappedBoth, compareSAMs.getUnmappedBoth());
-        Assert.assertEquals(expectedUnmappedRight, compareSAMs.getUnmappedLeft());
-        Assert.assertEquals(expectedUnmappedLeft, compareSAMs.getUnmappedRight());
-        Assert.assertEquals(expectedMissingRight, compareSAMs.getMissingLeft());
-        Assert.assertEquals(expectedMissingLeft, compareSAMs.getMissingRight());
-    }
-
-    @Test
-    public void testSortsDifferent() {
-        testHelper("genomic_sorted.sam", "unsorted.sam", 0, 0, 0, 0, 0, 0, 0, false);
-    }
-
-    @Test
-    public void testSequenceDictionariesDifferent1() {
-        testHelper("genomic_sorted.sam", "chr21.sam", 0, 0, 0, 0, 0, 0, 0, false);
-    }
-
-    @Test
-    public void testSequenceDictionariesDifferent2() {
-        testHelper("genomic_sorted.sam", "bigger_seq_dict.sam", 0, 0, 0, 0, 0, 0, 0, false);
-    }
-
-    @Test
-    public void testBiggerSequenceDictionaries() {
-        testHelper("bigger_seq_dict.sam", "bigger_seq_dict.sam", 2, 0, 0, 0, 0, 0, 0, true);
-    }
-
-    @Test
-    public void testIdentical() {
-        testHelper("genomic_sorted.sam", "genomic_sorted.sam", 2, 0, 0, 0, 0, 0, 0, true);
-    }
-
-    @Test
-    public void testHasNonPrimary() {
-        testHelper("genomic_sorted.sam", "has_non_primary.sam", 2, 0, 0, 0, 0, 0, 0, true);
-    }
-
-    @Test
-    public void testMoreOnOneSide() {
-        testHelper("genomic_sorted_5.sam", "genomic_sorted_5_plus.sam", 3, 2, 0, 0, 0, 3, 0, false);
-    }
-
-    @Test
-    public void testGroupWithSameCoordinate() {
-        testHelper("group_same_coord.sam", "group_same_coord_diff_order.sam", 3, 0, 0, 0, 0, 1, 2, false);
-    }
-
-    @Test
-    public void testGroupWithSameCoordinateAndNoMatchInOther() {
-        testHelper("group_same_coord.sam", "diff_coords.sam", 0, 5, 0, 0, 0, 0, 0, false);
-    }
-
-    @Test
-    public void testUnmapped1() {
-        testHelper("genomic_sorted.sam", "unmapped_first.sam", 1, 0, 0, 0, 1, 0, 0, false);
-    }
-
-    @Test
-    public void testUnmapped2() {
-        testHelper("genomic_sorted.sam", "unmapped_second.sam", 1, 0, 0, 0, 1, 0, 0, false);
-    }
-
-    @Test
-    public void testUnmapped3() {
-        testHelper("unmapped_first.sam", "unmapped_second.sam", 0, 0, 0, 1, 1, 0, 0, false);
-    }
-
-    @Test
-    public void testUnmapped4() {
-        testHelper("unmapped_first.sam", "unmapped_first.sam", 1, 0, 1, 0, 0, 0, 0, true);
-    }
-
-
-}
diff --git a/src/tests/java/net/sf/picard/sam/CreateSequenceDictionaryTest.java b/src/tests/java/net/sf/picard/sam/CreateSequenceDictionaryTest.java
deleted file mode 100644
index c9f6ef7..0000000
--- a/src/tests/java/net/sf/picard/sam/CreateSequenceDictionaryTest.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.sam;
-
-import net.sf.picard.PicardException;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.io.File;
-
-/**
- * @author alecw at broadinstitute.org
- */
-public class CreateSequenceDictionaryTest {
-    public static File TEST_DATA_DIR = new File("testdata/net/sf/picard/sam");
-    public static File BASIC_FASTA = new File(TEST_DATA_DIR, "basic.fasta");
-    public static File DUPLICATE_FASTA = new File(TEST_DATA_DIR, "duplicate_sequence_names.fasta");
-
-    @Test
-    public void testBasic() throws Exception {
-        final File outputDict = File.createTempFile("CreateSequenceDictionaryTest.", ".dict");
-        outputDict.delete();
-        outputDict.deleteOnExit();
-        final String[] argv = {
-                "REFERENCE=" + BASIC_FASTA,
-                "OUTPUT=" + outputDict,
-                "TRUNCATE_NAMES_AT_WHITESPACE=false"
-        };
-        Assert.assertEquals(new CreateSequenceDictionary().instanceMain(argv), 0);
-    }
-
-    /**
-     * Should throw an exception because with TRUNCATE_NAMES_AT_WHITESPACE, sequence names are not unique.
-     */
-    @Test(expectedExceptions = PicardException.class)
-    public void testNonUniqueSequenceName() throws Exception {
-        final File outputDict = File.createTempFile("CreateSequenceDictionaryTest.", ".dict");
-        outputDict.deleteOnExit();
-        final String[] argv = {
-                "REFERENCE=" + DUPLICATE_FASTA,
-                "OUTPUT=" + outputDict,
-                "TRUNCATE_NAMES_AT_WHITESPACE=true"
-        };
-        Assert.assertEquals(new CreateSequenceDictionary().instanceMain(argv), 0);
-        Assert.fail("Exception should have been thrown.");
-    }
-}
diff --git a/src/tests/java/net/sf/picard/sam/FastqToSamTest.java b/src/tests/java/net/sf/picard/sam/FastqToSamTest.java
deleted file mode 100644
index fbb679d..0000000
--- a/src/tests/java/net/sf/picard/sam/FastqToSamTest.java
+++ /dev/null
@@ -1,255 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.sam;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.fastq.FastqReader;
-import net.sf.picard.util.FastqQualityFormat;
-import org.testng.Assert;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Tests for FastqToBam
- */
-public class FastqToSamTest {
-    private static final File TEST_DATA_DIR = new File("testdata/net/sf/picard/sam/fastq2bam");
-
-    // fastq files with legal values for each fastq version
-    @DataProvider(name = "okVersionFiles")
-    public Object[][] okVersionFiles() {
-        return new Object[][] {
-            {"fastq-sanger/5k-v1-Rhodobacter_LW1.sam.fastq",      FastqQualityFormat.Standard },
-            {"fastq-sanger/5k-30BB2AAXX.3.aligned.sam.fastq",     FastqQualityFormat.Standard },
-            {"fastq-sanger/sanger_full_range_as_sanger-63.fastq", FastqQualityFormat.Standard }, // all sanger chars
-
-            {"fastq-solexa/s_1_sequence.txt", FastqQualityFormat.Solexa},
-            {"fastq-solexa/solexa_full_range_as_solexa.fastq", FastqQualityFormat.Solexa}, // all solexa chars
-
-            {"fastq-illumina/s_1_2_sequence.txt", FastqQualityFormat.Illumina},
-            {"fastq-illumina/s_1_2_sequence.txt", FastqQualityFormat.Illumina},
-            {"fastq-illumina/s_1_sequence.txt", FastqQualityFormat.Illumina},
-        };
-    }
-
-    // Illegal values fastq files for each fastq version
-    @DataProvider(name = "badVersionFiles")
-    public Object[][] badVersionFiles() {
-        return new Object[][] {
-            {"fastq-sanger/sanger_full_range_as_sanger-63.fastq", FastqQualityFormat.Illumina},
-            {"fastq-solexa/s_1_sequence.txt", FastqQualityFormat.Illumina},
-        };
-    }
-
-    // Illegal fastq format, i.e. doesn't contain correct four lines per record
-    @DataProvider(name = "badFormatFiles")
-    public Object[][] badFormatFiles() {
-        return new Object[][] {
-            {"bad-format/bad-qual-header.txt"},
-            {"bad-format/bad-seq-header.txt"},
-            {"bad-format/extra-line.txt"},
-            {"bad-format/too-many-quals.txt"},
-            {"bad-format/1lines.txt"},
-            {"bad-format/2lines.txt"},
-            {"bad-format/3lines.txt"},
-        };
-    }
-
-    // permissive fastq format, i.e. contain blank lines at various places
-    @DataProvider(name = "permissiveFormatFiles")
-    public Object[][] permissiveFormatFiles() {
-        return new Object[][] {
-                {"permissive-format/pair1.txt",          "permissive-format/pair2.txt", FastqQualityFormat.Standard },
-                {"permissive-format/s_1_1_sequence.txt",    "permissive-format/s_1_2_sequence.txt", FastqQualityFormat.Illumina},
-                {"permissive-format/pair1.txt", null, FastqQualityFormat.Standard},
-                {"permissive-format/pair2.txt", null, FastqQualityFormat.Standard},
-                {"permissive-format/s_1_1_sequence.txt", null, FastqQualityFormat.Illumina},
-                {"permissive-format/s_1_2_sequence.txt", null, FastqQualityFormat.Illumina},
-                {"permissive-format/s_1_sequence.txt", null, FastqQualityFormat.Illumina},
-
-        };
-    }
-
-
-    // OK paired fastq files
-    @DataProvider(name = "okPairedFiles")
-    public Object[][] okPairedFiles() {
-        return new Object[][] {
-            {"ok-paired/pair1.txt",          "ok-paired/pair2.txt", FastqQualityFormat.Standard },
-            {"fastq-illumina/s_1_1_sequence.txt", "fastq-illumina/s_1_2_sequence.txt", FastqQualityFormat.Illumina}
-        };
-    }
-
-    // Inconsistent paired fastq files
-    @DataProvider(name = "badPairedFiles")
-    public Object[][] badPairedFiles() {
-        return new Object[][] {
-            {"ok-paired/pair1.txt",          "bad-paired/pair2-one-more-record.txt" },
-            {"bad-paired/pair1-one-more-record.txt", "ok-paired/pair2.txt" },
-            {"ok-paired/pair1.txt",          "bad-paired/pair2-badnum.txt" },
-            {"bad-paired/pair1-badnum.txt",   "ok-paired/pair2.txt" },
-            {"bad-paired/pair1-nonum.txt",    "ok-paired/pair2.txt" },
-            {"bad-paired/pair1-onetoken.txt", "ok-paired/pair2.txt" },
-        };
-    }
-
-    @Test(dataProvider = "permissiveFormatFiles")
-    public void testPermissiveOk(final String filename1, final String filename2, final FastqQualityFormat version) throws IOException {
-        convertFile(filename1,filename2,version,true);
-    }
-
-    @Test(dataProvider = "permissiveFormatFiles",expectedExceptions = PicardException.class)
-    public void testPermissiveFail(final String filename1, final String filename2, final FastqQualityFormat version) throws IOException {
-        convertFile(filename1,filename2,version,false);
-    }
-
-    @Test(dataProvider = "okVersionFiles")
-    public void testFastqVersionOk(final String fastqVersionFilename, final FastqQualityFormat version) throws IOException {
-        convertFile(fastqVersionFilename, version);
-    }
-
-    @Test(dataProvider = "badVersionFiles", expectedExceptions= PicardException.class)
-    public void testFastqVersionBad(final String fastqVersionFilename, final FastqQualityFormat version) throws IOException {
-        convertFile(fastqVersionFilename, version);
-    }
-
-    @Test(dataProvider = "badFormatFiles", expectedExceptions= PicardException.class) 
-    public void testBadFile(final String filename) throws IOException {
-        convertFile(filename, null, FastqQualityFormat.Standard);
-    }
-
-    @Test(dataProvider = "badPairedFiles", expectedExceptions= PicardException.class) 
-    public void testPairedBad(final String filename1, final String filename2) throws IOException {
-        convertFile(filename1, filename2, FastqQualityFormat.Standard);
-    }
-
-    @Test(dataProvider = "okPairedFiles")
-    public void testPairedOk(final String filename1, final String filename2, final FastqQualityFormat version) throws IOException {
-        convertFile(filename1, filename2, version);
-    }
-
-    private File convertFile(final String filename, final FastqQualityFormat version) throws IOException {
-        return convertFile(filename, null, version);
-    }
-
-    private File convertFile(final String fastqFilename1, final String fastqFilename2, final FastqQualityFormat version) throws IOException{
-        return convertFile(fastqFilename1, fastqFilename2, version,false);
-    }
-
-    private File convertFile(final String fastqFilename1, final String fastqFilename2, final FastqQualityFormat version,final boolean permissiveFormat) throws IOException {
-        final File fastq1 = new File(TEST_DATA_DIR, fastqFilename1);
-        final File fastq2 = (fastqFilename2 != null) ? new File(TEST_DATA_DIR, fastqFilename2) : null;
-        final File samFile = newTempSamFile(fastq1.getName());
-
-        final List<String> args =new ArrayList<String>();
-
-        args.add("FASTQ=" + fastq1.getAbsolutePath());
-        args.add("OUTPUT=" + samFile.getAbsolutePath());
-        args.add("QUALITY_FORMAT=" + version);
-        args.add("READ_GROUP_NAME=rg");
-        args.add("SAMPLE_NAME=s1");
-
-        if(fastqFilename2 != null) args.add("FASTQ2=" + fastq2.getAbsolutePath());
-        if(permissiveFormat) args.add("ALLOW_AND_IGNORE_EMPTY_LINES=true");
-
-        final FastqToSam fqToSam = new FastqToSam();
-        Assert.assertEquals(fqToSam.instanceMain(args.toArray(new String[args.size()])), 0);
-        return samFile ;
-    }
-
-    private static File newTempSamFile(final String filename) throws IOException {
-        final File file = File.createTempFile(filename,".sam");
-        file.deleteOnExit();
-        return file; 
-    }
-
-    private static File newTempFile(final String filename) throws IOException {
-        final File file = File.createTempFile(filename,".tmp");
-        file.deleteOnExit();
-        return file; 
-    }
-
-//  Test for legal syntax for pair read names for FastqToSam.getBaseName()
-//  We create a dummy file to test the getBaseName() method since it expects 
-//  an existing file.
-
-    private static final FastqToSam fastqToSam = new FastqToSam();
-    private static FastqReader freader1 ;
-    private static FastqReader freader2 ;
-
-    @BeforeClass
-    public static void beforeClass() throws IOException {
-        final File dummyFile = newTempFile("dummy");
-        freader1 = new FastqReader(dummyFile);
-        freader2 = new FastqReader(dummyFile);
-    }
-
-    @DataProvider(name = "okPairNames")
-    public Object[][] okPairNames() {
-        return new Object[][] {
-            {"aa/1", "aa/2" },
-            {"aa", "aa" },
-            {"aa/bb", "aa/bb" },
-            {"aa/bb/", "aa/bb/" },
-            {"aa/bb/1", "aa/bb/2" },
-            {"aa/bb/cc/dd/ee/ff/1", "aa/bb/cc/dd/ee/ff/2" },
-            {"////1", "////2" },
-            {"/", "/" },
-            {"////", "////" },
-            {"/aa", "/aa" },
-            {"aa/", "aa/" },
-            {"ab/c", "ab/c"}
-        };
-    }
-
-    @DataProvider(name = "badPairNames")
-    public Object[][] badPairNames() {
-        return new Object[][] {
-            {"", "" },
-            {"aa/1", "bb/2" },
-            {"aa"  , "bb" },
-            {"aa/1", "aa" },
-            {"aa",   "aa/2" },
-            {"aa/1", "aa/1" },
-            {"aa/2", "aa/2" },
-        };
-    }
-
-    @Test(dataProvider = "okPairNames")
-    public void readPairNameOk(final String name1, final String name2) throws IOException {
-        fastqToSam.getBaseName(name1, name2, freader1, freader2);
-    }
-
-    @Test(dataProvider = "badPairNames", expectedExceptions= PicardException.class) 
-    public void readPairNameBad(final String name1, final String name2) throws IOException {
-        fastqToSam.getBaseName(name1, name2, freader1, freader2);
-    }
-}
-
diff --git a/src/tests/java/net/sf/picard/sam/MarkDuplicatesTest.java b/src/tests/java/net/sf/picard/sam/MarkDuplicatesTest.java
deleted file mode 100644
index a5342cd..0000000
--- a/src/tests/java/net/sf/picard/sam/MarkDuplicatesTest.java
+++ /dev/null
@@ -1,310 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2012 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.sam;
-
-import net.sf.picard.io.IoUtil;
-import net.sf.samtools.*;
-import net.sf.samtools.util.TestUtil;
-import net.sf.picard.sam.testers.MarkDuplicatesTester;
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.util.*;
-
-public class MarkDuplicatesTest {
-    private static final File TEST_DATA_DIR = new File("testdata/net/sf/picard/sam/MarkDuplicates");
-
-
-    /**
-     * Test that PG header records are created & chained appropriately (or not created), and that the PG record chains
-     * are as expected.  MarkDuplicates is used both to merge and to mark dupes in this case.
-     * @param suppressPg If true, do not create PG header record.
-     * @param expectedPnVnByReadName For each read, info about the expect chain of PG records.
-     */
-    @Test(dataProvider = "pgRecordChainingTest")
-    public void pgRecordChainingTest(final boolean suppressPg,
-                                     final Map<String, List<ExpectedPnAndVn>> expectedPnVnByReadName) {
-        final File outputDir = IoUtil.createTempDir("MarkDuplicatesTest.", ".tmp");
-        outputDir.deleteOnExit();
-        try {
-            // Run MarkDuplicates, merging the 3 input files, and either enabling or suppressing PG header
-            // record creation according to suppressPg.
-            final MarkDuplicates markDuplicates = new MarkDuplicates();
-            final ArrayList<String> args = new ArrayList<String>();
-            for (int i = 1; i <= 3; ++i) {
-                args.add("INPUT=" + new File(TEST_DATA_DIR, "merge" + i + ".sam").getAbsolutePath());
-            }
-            final File outputSam = new File(outputDir, "markDuplicatesTest.sam");
-            args.add("OUTPUT=" + outputSam.getAbsolutePath());
-            args.add("METRICS_FILE=" + new File(outputDir, "markDuplicatesTest.duplicate_metrics").getAbsolutePath());
-            if (suppressPg) args.add("PROGRAM_RECORD_ID=null");
-
-            // I generally prefer to call doWork rather than invoking the argument parser, but it is necessary
-            // in this case to initialize the command line.
-            // Note that for the unit test, version won't come through because it is obtained through jar
-            // manifest, and unit test doesn't run code from a jar.
-            Assert.assertEquals(markDuplicates.instanceMain(args.toArray(new String[args.size()])), 0);
-
-            // Read the MarkDuplicates output file, and get the PG ID for each read.  In this particular test,
-            // the PG ID should be the same for both ends of a pair.
-            final SAMFileReader reader = new SAMFileReader(outputSam);
-
-            final Map<String, String> pgIdForReadName = new HashMap<String, String>();
-            for (final SAMRecord rec : reader) {
-                final String existingPgId = pgIdForReadName.get(rec.getReadName());
-                final String thisPgId = rec.getStringAttribute(SAMTag.PG.name());
-                if (existingPgId != null) {
-                    Assert.assertEquals(thisPgId, existingPgId);
-                } else {
-                    pgIdForReadName.put(rec.getReadName(), thisPgId);
-                }
-            }
-            final SAMFileHeader header = reader.getFileHeader();
-            reader.close();
-
-            // Confirm that for each read name, the chain of PG records contains exactly the number that is expected,
-            // and that values in the PG chain are as expected.
-            for (final Map.Entry<String, List<ExpectedPnAndVn>> entry : expectedPnVnByReadName.entrySet()) {
-                final String readName = entry.getKey();
-                final List<ExpectedPnAndVn> expectedList = entry.getValue();
-                String pgId = pgIdForReadName.get(readName);
-                for (final ExpectedPnAndVn expected : expectedList) {
-                    final SAMProgramRecord programRecord = header.getProgramRecord(pgId);
-                    if (expected.expectedPn != null) Assert.assertEquals(programRecord.getProgramName(), expected.expectedPn);
-                    if (expected.expectedVn != null) Assert.assertEquals(programRecord.getProgramVersion(), expected.expectedVn);
-                    pgId = programRecord.getPreviousProgramGroupId();
-                }
-                Assert.assertNull(pgId);
-            }
-
-        } finally {
-            TestUtil.recursiveDelete(outputDir);
-        }
-    }
-
-    /**
-     * Represents an expected PN value and VN value for a PG record.  If one of thexe is null, any value is allowed
-     * in the PG record being tested.
-     */
-    private static class ExpectedPnAndVn {
-        final String expectedPn;
-        final String expectedVn;
-
-        private ExpectedPnAndVn(final String expectedPn, final String expectedVn) {
-            this.expectedPn = expectedPn;
-            this.expectedVn = expectedVn;
-        }
-    }
-
-    @DataProvider(name = "pgRecordChainingTest")
-    public Object[][] pgRecordChainingTestDataProvider() {
-        // Two test cases: One in which PG record generation is enabled, the other in which it is turned off.
-        final Map<String, List<ExpectedPnAndVn>> withPgMap = new HashMap<String, List<ExpectedPnAndVn>>();
-        withPgMap.put("1AAXX.1.1", Arrays.asList(new ExpectedPnAndVn("MarkDuplicates", null), new ExpectedPnAndVn("MarkDuplicates", "1"), new ExpectedPnAndVn("bwa", "1")));
-        withPgMap.put("1AAXX.2.1", Arrays.asList(new ExpectedPnAndVn("MarkDuplicates", null), new ExpectedPnAndVn("bwa", "2")));
-        withPgMap.put("1AAXX.3.1", Arrays.asList(new ExpectedPnAndVn("MarkDuplicates", null)));
-
-
-        final Map<String, List<ExpectedPnAndVn>> suppressPgMap = new HashMap<String, List<ExpectedPnAndVn>>();
-        suppressPgMap .put("1AAXX.1.1", Arrays.asList(new ExpectedPnAndVn("MarkDuplicates", "1"), new ExpectedPnAndVn("bwa", "1")));
-        suppressPgMap .put("1AAXX.2.1", Arrays.asList(new ExpectedPnAndVn("bwa", "2")));
-        suppressPgMap .put("1AAXX.3.1", new ArrayList<ExpectedPnAndVn>(0));
-        return new Object[][] {
-                { false, withPgMap},
-                { true, suppressPgMap}
-        };
-    }
-
-
-    @Test
-    public void testSingleUnmappedFragment() {
-        final MarkDuplicatesTester tester = new MarkDuplicatesTester();
-        tester.addUnmappedFragment(-1, 50);
-        tester.runTest();
-    }
-
-    @Test
-    public void testSingleUnmappedPair() {
-        final MarkDuplicatesTester tester = new MarkDuplicatesTester();
-        tester.addUnmappedPair(-1, 50);
-        tester.runTest();
-    }
-
-
-    @Test
-    public void testSingleMappedFragment() {
-        final MarkDuplicatesTester tester = new MarkDuplicatesTester();
-        tester.addMappedFragment(1, 1, false, 50);
-        tester.runTest();
-    }
-
-    @Test
-    public void testSingleMappedPair() {
-        final MarkDuplicatesTester tester = new MarkDuplicatesTester();
-        tester.addMappedPair(1, 1, 100, false, false, 50);
-        tester.runTest();
-    }
-
-    @Test
-    public void testSingleMappedFragmentAndSingleMappedPair() {
-        final MarkDuplicatesTester tester = new MarkDuplicatesTester();
-        tester.addMappedFragment(1, 1, true, 30); // duplicate!!!
-        tester.addMappedPair(1, 1, 100, false, false, 50);
-        tester.runTest();
-    }
-
-    @Test
-    public void testTwoMappedPairs() {
-        final MarkDuplicatesTester tester = new MarkDuplicatesTester();
-        tester.addMappedPair(1, 1, 100, false, false, 50);
-        tester.addMappedPair(1, 1, 100, true, true, 30); // duplicate!!!
-        tester.runTest();
-    }
-
-    @Test
-    public void testThreeMappedPairs() {
-        final MarkDuplicatesTester tester = new MarkDuplicatesTester();
-        tester.addMappedPair(1, 1, 100, false, false, 50);
-        tester.addMappedPair(1, 1, 100, true, true, 30); // duplicate!!!
-        tester.addMappedPair(1, 1, 100, true, true, 30); // duplicate!!!
-        tester.runTest();
-    }
-
-    @Test
-    public void testSingleMappedFragmentAndTwoMappedPairs() {
-        final MarkDuplicatesTester tester = new MarkDuplicatesTester();
-        tester.addMappedFragment(1, 1, true, 30); // duplicate!!!
-        tester.addMappedPair(1, 1, 100, false, false, 50);
-        tester.addMappedPair(1, 1, 100, true, true, 30); // duplicate!!!
-        tester.runTest();
-    }
-
-    @Test
-    public void testTwoMappedPairsMatesSoftClipped() {
-        final MarkDuplicatesTester tester = new MarkDuplicatesTester();
-        tester.addMappedPair(1, 10022, 10051, false, false, "76M", "8S68M", false, true, false, 50);
-        tester.addMappedPair(1, 10022, 10063, false, false, "76M", "5S71M", false, true, false, 50);
-        tester.runTest();
-    }
-
-    @Test
-    public void testTwoMappedPairsWithSoftClipping() {
-        final MarkDuplicatesTester tester = new MarkDuplicatesTester();
-        // NB: no duplicates
-        // 5'1: 2, 5'2:46+73M=118
-        // 5'1: 2, 5'2:51+68M=118
-        tester.addMappedPair(1, 2, 46, false, false, "6S42M28S", "3S73M", false, 50);
-        tester.addMappedPair(1, 2, 51, true, true, "6S42M28S", "8S68M", false, 50);
-        tester.runTest();
-    }
-
-    @Test
-    public void testTwoMappedPairsWithSoftClippingFirstOfPairOnlyNoMateCigar() {
-        final MarkDuplicatesTester tester = new MarkDuplicatesTester();
-        tester.setNoMateCigars(true);
-        // NB: no duplicates
-        // 5'1: 2, 5'2:46+73M=118
-        // 5'1: 2, 5'2:51+68M=118
-        tester.addMappedPair(1, 12, 46, false, false, "6S42M28S", null, true, 50); // only add the first one
-        tester.addMappedPair(1, 12, 51, false, false, "6S42M28S", null, true, 50); // only add the first one
-        tester.runTest();
-    }
-
-    @Test
-    public void testTwoMappedPairsWithSoftClippingBoth() {
-        final MarkDuplicatesTester tester = new MarkDuplicatesTester();
-        tester.addMappedPair(1, 10046, 10002, false, false, "3S73M", "6S42M28S", true, false, false, 50);
-        tester.addMappedPair(1, 10051, 10002, true, true, "8S68M", "6S48M22S", true, false, false, 50);
-        tester.runTest();
-    }
-
-    @Test
-    public void testMatePairFirstUnmapped() {
-        final MarkDuplicatesTester tester = new MarkDuplicatesTester();
-        tester.addMatePair(1, 10049, 10049, false, true, false, false, "11M2I63M", null, false, false, false, 50);
-        tester.runTest();
-    }
-
-    @Test
-    public void testMatePairSecondUnmapped() {
-        final MarkDuplicatesTester tester = new MarkDuplicatesTester();
-        tester.addMatePair(1, 10056, 10056, true, false, false, false, null, "54M22S", false, false, false, 50);
-        tester.runTest();
-    }
-
-    @Test
-    public void testMappedFragmentAndMatePairOneUnmapped() {
-        final MarkDuplicatesTester tester = new MarkDuplicatesTester();
-        tester.addMatePair(1, 10049, 10049, false, true, false, false, "11M2I63M", null, false, false, false, 50);
-        tester.addMappedFragment(1, 10049, true, 30); // duplicate
-        tester.runTest();
-    }
-
-    @Test
-    public void testMappedPairAndMatePairOneUnmapped() {
-        final MarkDuplicatesTester tester = new MarkDuplicatesTester();
-        tester.addMatePair(1, 10040, 10040, false, true, true, false, "76M", null, false, false, false, 30); // first a duplicate,
-        // second end unmapped
-        tester.addMappedPair(1, 10189, 10040, false, false, "41S35M", "65M11S", true, false, false, 50); // mapped OK
-        tester.runTest();
-    }
-
-    @Test
-    public void testTwoMappedPairsWithOppositeOrientations() {
-        final MarkDuplicatesTester tester = new MarkDuplicatesTester();
-        tester.addMappedPair(1, 10182, 10038, false, false, "32S44M", "66M10S", true, false, false, 50); // -/+
-        tester.addMappedPair(1, 10038, 10182, true, true, "70M6S", "32S44M", false, true, false, 50); // +/-, both are duplicates
-        tester.runTest();
-    }
-
-    @Test
-    public void testTwoMappedPairsWithOppositeOrientationsNumberTwo() {
-        final MarkDuplicatesTester tester = new MarkDuplicatesTester();
-        tester.addMappedPair(1, 10038, 10182, false, false, "70M6S", "32S44M", false, true, false, 50); // +/-, both are duplicates
-        tester.addMappedPair(1, 10182, 10038, true, true, "32S44M", "66M10S", true, false, false, 50); // -/+
-        tester.runTest();
-    }
-
-    @Test
-    public void testThreeMappedPairsWithMatchingSecondMate() {
-        final MarkDuplicatesTester tester = new MarkDuplicatesTester();
-        // Read0 and Read2 are duplicates
-        // 10181+35=10216, 10058
-        tester.addMappedPair(1, 10181, 10058, false, false, "41S35M", "47M29S", true, false, false, 50); // -/+
-        // 10181+37=10218, 10058
-        tester.addMappedPair(1, 10181, 10058, false, false, "37S39M", "44M32S", true, false, false, 50); // -/+
-        // 10180+36=10216, 10058
-        tester.addMappedPair(1, 10180, 10058, true, true, "36S40M", "50M26S", true, false, false, 50); // -/+, both are duplicates
-        tester.runTest();
-    }
-
-    @Test
-    public void testMappedPairWithSamePosition() {
-        final MarkDuplicatesTester tester = new MarkDuplicatesTester();
-        tester.addMappedPair(1, 4914, 4914, false, false, "37M39S", "73M3S", false, false, false, 50); // +/+
-        tester.runTest();
-    }
-}
diff --git a/src/tests/java/net/sf/picard/sam/MergeBamAlignmentTest.java b/src/tests/java/net/sf/picard/sam/MergeBamAlignmentTest.java
deleted file mode 100644
index 2f827a8..0000000
--- a/src/tests/java/net/sf/picard/sam/MergeBamAlignmentTest.java
+++ /dev/null
@@ -1,1720 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.sam;
-
-import net.sf.picard.PicardException;
-import net.sf.samtools.BamFileIoUtils;
-import net.sf.samtools.Cigar;
-import net.sf.samtools.CigarElement;
-import net.sf.samtools.CigarOperator;
-import net.sf.samtools.SAMFileHeader;
-import net.sf.samtools.SAMFileReader;
-import net.sf.samtools.SAMFileWriter;
-import net.sf.samtools.SAMFileWriterFactory;
-import net.sf.samtools.SAMProgramRecord;
-import net.sf.samtools.SAMReadGroupRecord;
-import net.sf.samtools.SAMRecord;
-import net.sf.samtools.SAMRecordIterator;
-import net.sf.samtools.SAMSequenceRecord;
-import net.sf.samtools.SAMTag;
-import net.sf.samtools.SamPairUtil;
-import net.sf.samtools.util.CloserUtil;
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- *  Test for the MergeBamAlignment class
- *
- * @author ktibbett at broadinstitute.org
- */
-public class MergeBamAlignmentTest {
-
-    private static final File TEST_DATA_DIR = new File("testdata/net/sf/picard/sam/MergeBamAlignment");
-
-    private static final File unmappedBam = new File("testdata/net/sf/picard/sam/unmapped.sam");
-    private static final File alignedBam = new File("testdata/net/sf/picard/sam/aligned.sam");
-    private static final File oneHalfAlignedBam = new File("testdata/net/sf/picard/sam/onehalfaligned.sam");
-    private static final File otherHalfAlignedBam = new File("testdata/net/sf/picard/sam/otherhalfaligned.sam");
-    private static final File mergingUnmappedBam = new File(TEST_DATA_DIR, "unmapped.sam");
-    private static final File firstReadAlignedBam = new File(TEST_DATA_DIR, "allread1.trimmed.aligned.sam");
-    private static final File secondReadAlignedBam = new File(TEST_DATA_DIR, "allread2.trimmed.aligned.sam");
-    private static final File firstReadAlignedBam_firstHalf = new File(TEST_DATA_DIR, "firsthalf.read1.trimmed.aligned.sam");
-    private static final File firstReadAlignedBam_secondHalf = new File(TEST_DATA_DIR, "secondhalf.read1.trimmed.aligned.sam");
-    private static final File secondReadAlignedBam_firstHalf = new File(TEST_DATA_DIR, "firsthalf.read2.trimmed.aligned.sam");
-    private static final File secondReadAlignedBam_secondHalf = new File(TEST_DATA_DIR, "secondhalf.read2.trimmed.aligned.sam");
-    private static final File supplementalReadAlignedBam = new File(TEST_DATA_DIR, "aligned.supplement.sam");
-    private static final File alignedQuerynameSortedBam =
-            new File("testdata/net/sf/picard/sam/aligned_queryname_sorted.sam");
-    private static final File fasta = new File("testdata/net/sf/picard/sam/merger.fasta");
-    private static final String bigSequenceName = "chr7"; // The longest sequence in merger.fasta
-    private static final File sequenceDict = new File("testdata/net/sf/picard/sam/merger.dict");
-    private static final File badorderUnmappedBam = new File(TEST_DATA_DIR, "unmapped.badorder.sam");
-    private static final File badorderAlignedBam = new File(TEST_DATA_DIR, "aligned.badorder.sam");
-
-    // For EarliestFragment tests, tag placed on the alignments which are expected to be marked as primary.
-    private static final String ONE_OF_THE_BEST_TAG = "YB";
-
-    @Test
-    public void testMergerWithSupplemental() throws Exception {
-        final File outputWithSupplemental = File.createTempFile("mergeWithSupplementalTest", ".sam");
-        System.out.println(outputWithSupplemental.getAbsolutePath());
-        // outputWithSupplemental.deleteOnExit();
-        final MergeBamAlignment merger = new MergeBamAlignment();
-        merger.UNMAPPED_BAM = unmappedBam;
-        merger.ALIGNED_BAM = Arrays.asList(supplementalReadAlignedBam);
-        merger.ALIGNED_READS_ONLY = false;
-        merger.CLIP_ADAPTERS = true;
-        merger.IS_BISULFITE_SEQUENCE = false;
-        merger.MAX_INSERTIONS_OR_DELETIONS = 1;
-        merger.PROGRAM_RECORD_ID = "0";
-        merger.PROGRAM_GROUP_VERSION = "1.0";
-        merger.PROGRAM_GROUP_COMMAND_LINE = "align!";
-        merger.PROGRAM_GROUP_NAME = "myAligner";
-        merger.PAIRED_RUN = true;
-        merger.REFERENCE_SEQUENCE = fasta;
-        merger.OUTPUT = outputWithSupplemental;
-        merger.EXPECTED_ORIENTATIONS=Arrays.asList(SamPairUtil.PairOrientation.FR);
-
-        Assert.assertEquals(merger.doWork(), 0, "Merge did not succeed");
-        final SAMFileReader result = new SAMFileReader(outputWithSupplemental);
-
-        final List<Integer> clipAdapterFlags = new ArrayList<Integer>(Arrays.asList(99, 2147, 147, 2195));
-        final List<Integer> foundClipAdapterFlags = new ArrayList<Integer>();
-
-        for (final SAMRecord sam : result) {
-            if (sam.getReadName().equals("both_reads_align_clip_adapter")) {
-                foundClipAdapterFlags.add(sam.getFlags());
-            }
-
-            // This tests that we clip both (a) when the adapter is marked in the unmapped BAM file and
-            // (b) when the insert size is less than the read length
-            if (sam.getReadName().equals("both_reads_align_clip_marked")) {
-                Assert.assertEquals(sam.getReferenceName(), "chr7");
-                if (sam.getReadNegativeStrandFlag()) {
-                    Assert.assertEquals(sam.getCigarString(), "5S96M", "Incorrect CIGAR string for " + sam.getReadName());
-                } else {
-                    Assert.assertEquals(sam.getCigarString(), "96M5S", "Incorrect CIGAR string for " + sam.getReadName());
-                }
-            }
-            else if (sam.getReadName().equals("both_reads_align_clip_adapter")) {
-                Assert.assertEquals(sam.getReferenceName(), "chr7");
-                if (!sam.getSupplementaryAlignmentFlag()) {
-                    if (sam.getReadNegativeStrandFlag()) Assert.assertEquals(sam.getCigarString(), "5S96M", "Incorrect CIGAR string for " + sam.getReadName());
-                    else Assert.assertEquals(sam.getCigarString(), "96M5S", "Incorrect CIGAR string for " + sam.getReadName());
-                }
-            }
-            // This tests that we DON'T clip when we run off the end if there are equal to or more than
-            // MIN_ADAPTER_BASES hanging off the end
-            else if (sam.getReadName().equals("both_reads_align_min_adapter_bases_exceeded")) {
-                Assert.assertEquals(sam.getReferenceName(), "chr7");
-                Assert.assertTrue(!sam.getCigarString().contains("S"),
-                        "Read was clipped when it should not be.");
-            } else if (sam.getReadName().equals("neither_read_aligns_or_present")) {
-                Assert.assertTrue(sam.getReadUnmappedFlag(), "Read should be unmapped but isn't");
-            }
-            // Two pairs in which only the first read should align
-            else if (sam.getReadName().equals("both_reads_present_only_first_aligns") ||
-                    sam.getReadName().equals("read_2_too_many_gaps")) {
-                if (sam.getFirstOfPairFlag()) {
-                    Assert.assertEquals(sam.getReferenceName(), "chr7", "Read should be mapped but isn't");
-                } else {
-                    Assert.assertTrue(sam.getReadUnmappedFlag(), "Read should not be mapped but is");
-                }
-            } else {
-                throw new Exception("Unexpected read name: " + sam.getReadName());
-            }
-        }
-
-        // Make sure that we have the appropriate primary and supplementary reads in the new file
-        Assert.assertEquals(foundClipAdapterFlags.size(), clipAdapterFlags.size());
-        Collections.sort(clipAdapterFlags);
-        Collections.sort(foundClipAdapterFlags);
-        for (int i = 0; i < clipAdapterFlags.size(); i++) {
-            Assert.assertEquals(clipAdapterFlags.get(i), foundClipAdapterFlags.get(i));
-        }
-
-    }
-
-    @Test
-    public void testMerger() throws Exception {
-        final File output = File.createTempFile("mergeTest", ".sam");
-        output.deleteOnExit();
-
-        MergeBamAlignment merger = new MergeBamAlignment();
-        merger.UNMAPPED_BAM = unmappedBam;
-        merger.ALIGNED_BAM = Arrays.asList(alignedBam);
-        merger.ALIGNED_READS_ONLY = false;
-        merger.CLIP_ADAPTERS = true;
-        merger.IS_BISULFITE_SEQUENCE = false;
-        merger.MAX_INSERTIONS_OR_DELETIONS = 1;
-        merger.PROGRAM_RECORD_ID = "0";
-        merger.PROGRAM_GROUP_VERSION = "1.0";
-        merger.PROGRAM_GROUP_COMMAND_LINE = "align!";
-        merger.PROGRAM_GROUP_NAME = "myAligner";
-        merger.PAIRED_RUN = true;
-        merger.REFERENCE_SEQUENCE = fasta;
-        merger.OUTPUT = output;
-        merger.EXPECTED_ORIENTATIONS=Arrays.asList(SamPairUtil.PairOrientation.FR);
-
-        Assert.assertEquals(merger.doWork(), 0, "Merge did not succeed");
-        SAMFileReader result = new SAMFileReader(output);
-        Assert.assertEquals(result.getFileHeader().getSequenceDictionary().getSequences().size(), 8,
-                "Number of sequences did not match");
-        SAMProgramRecord pg = result.getFileHeader().getProgramRecords().get(0);
-        Assert.assertEquals(pg.getProgramGroupId(), merger.PROGRAM_RECORD_ID);
-        Assert.assertEquals(pg.getProgramVersion(), merger.PROGRAM_GROUP_VERSION);
-        Assert.assertEquals(pg.getCommandLine(), merger.PROGRAM_GROUP_COMMAND_LINE);
-        Assert.assertEquals(pg.getProgramName(), merger.PROGRAM_GROUP_NAME);
-
-        final SAMReadGroupRecord rg = result.getFileHeader().getReadGroups().get(0);
-        Assert.assertEquals(rg.getReadGroupId(), "0");
-        Assert.assertEquals(rg.getSample(), "Hi,Mom!");
-
-        Assert.assertEquals(result.getFileHeader().getSortOrder(), SAMFileHeader.SortOrder.coordinate);
-
-        for (final SAMRecord sam : result) {
-            // This tests that we clip both (a) when the adapter is marked in the unmapped BAM file and
-            // (b) when the insert size is less than the read length
-            if (sam.getReadName().equals("both_reads_align_clip_adapter") ||
-                    sam.getReadName().equals("both_reads_align_clip_marked")) {
-                Assert.assertEquals(sam.getReferenceName(), "chr7");
-                if (sam.getReadNegativeStrandFlag()) {
-                    Assert.assertEquals(sam.getCigarString(), "5S96M", "Incorrect CIGAR string for " +
-                            sam.getReadName());
-                } else {
-                    Assert.assertEquals(sam.getCigarString(), "96M5S", "Incorrect CIGAR string for " +
-                            sam.getReadName());
-                }
-            }
-            // This tests that we DON'T clip when we run off the end if there are equal to or more than
-            // MIN_ADAPTER_BASES hanging off the end
-            else if (sam.getReadName().equals("both_reads_align_min_adapter_bases_exceeded")) {
-                Assert.assertEquals(sam.getReferenceName(), "chr7");
-                Assert.assertTrue(sam.getCigarString().indexOf("S") == -1,
-                        "Read was clipped when it should not be.");
-            } else if (sam.getReadName().equals("neither_read_aligns_or_present")) {
-                Assert.assertTrue(sam.getReadUnmappedFlag(), "Read should be unmapped but isn't");
-            }
-            // Two pairs in which only the first read should align
-            else if (sam.getReadName().equals("both_reads_present_only_first_aligns") ||
-                    sam.getReadName().equals("read_2_too_many_gaps")) {
-                if (sam.getFirstOfPairFlag()) {
-                    Assert.assertEquals(sam.getReferenceName(), "chr7", "Read should be mapped but isn't");
-                } else {
-                    Assert.assertTrue(sam.getReadUnmappedFlag(), "Read should not be mapped but is");
-                }
-            } else {
-                throw new Exception("Unexpected read name: " + sam.getReadName());
-            }
-
-        }
-
-        // Quick test to make sure the program record gets picked up from the file if not specified
-        // on the command line.
-        merger = new MergeBamAlignment();
-        merger.UNMAPPED_BAM = unmappedBam;
-        merger.ALIGNED_BAM = Arrays.asList(alignedBam);
-        merger.ALIGNED_READS_ONLY = false;
-        merger.CLIP_ADAPTERS = true;
-        merger.IS_BISULFITE_SEQUENCE = false;
-        merger.MAX_INSERTIONS_OR_DELETIONS = 1;
-        merger.PAIRED_RUN = true;
-        merger.REFERENCE_SEQUENCE = fasta;
-        merger.OUTPUT = output;
-        merger.EXPECTED_ORIENTATIONS=Arrays.asList(SamPairUtil.PairOrientation.FR);
-
-        Assert.assertEquals(merger.doWork(), 0);
-
-        result = new SAMFileReader(output);
-        pg = result.getFileHeader().getProgramRecords().get(0);
-        Assert.assertEquals(pg.getProgramGroupId(), "1",
-                "Program group ID not picked up correctly from aligned BAM");
-        Assert.assertEquals(pg.getProgramVersion(), "2.0",
-                "Program version not picked up correctly from aligned BAM");
-        Assert.assertNull(pg.getCommandLine(),
-                "Program command line not picked up correctly from aligned BAM");
-        Assert.assertEquals(pg.getProgramName(), "Hey!",
-                "Program name not picked up correctly from aligned BAM");
-
-    }
-
-
-    @Test
-    public void testMergerFromMultipleFiles() throws Exception {
-        final File output = File.createTempFile("mergeTest", ".sam");
-        output.deleteOnExit();
-
-        final MergeBamAlignment merger = new MergeBamAlignment();
-        merger.UNMAPPED_BAM = unmappedBam;
-        merger.ALIGNED_BAM = Arrays.asList(oneHalfAlignedBam, otherHalfAlignedBam);
-        merger.ALIGNED_READS_ONLY = false;
-        merger.CLIP_ADAPTERS = true;
-        merger.IS_BISULFITE_SEQUENCE = false;
-        merger.MAX_INSERTIONS_OR_DELETIONS = 1;
-        merger.PROGRAM_RECORD_ID = "0";
-        merger.PROGRAM_GROUP_VERSION = "1.0";
-        merger.PROGRAM_GROUP_COMMAND_LINE = "align!";
-        merger.PROGRAM_GROUP_NAME = "myAligner";
-        merger.PAIRED_RUN = true;
-        merger.REFERENCE_SEQUENCE = fasta;
-        merger.OUTPUT = output;
-        merger.EXPECTED_ORIENTATIONS=Arrays.asList(SamPairUtil.PairOrientation.FR);
-
-        Assert.assertEquals(merger.doWork(), 0, "Merge did not succeed");
-        final SAMFileReader result = new SAMFileReader(output);
-
-        for (final SAMRecord sam : result) {
-            // This tests that we clip both (a) when the adapter is marked in the unmapped BAM file and
-            // (b) when the insert size is less than the read length
-            if (sam.getReadName().equals("both_reads_align_clip_adapter") ||
-                    sam.getReadName().equals("both_reads_align_clip_marked")) {
-                Assert.assertEquals(sam.getReferenceName(), "chr7");
-                if (sam.getReadNegativeStrandFlag()) {
-                    Assert.assertEquals(sam.getCigarString(), "5S96M", "Incorrect CIGAR string for " +
-                            sam.getReadName());
-                } else {
-                    Assert.assertEquals(sam.getCigarString(), "96M5S", "Incorrect CIGAR string for " +
-                            sam.getReadName());
-                }
-            }
-            // This tests that we DON'T clip when we run off the end if there are equal to or more than
-            // MIN_ADAPTER_BASES hanging off the end
-            else if (sam.getReadName().equals("both_reads_align_min_adapter_bases_exceeded")) {
-                Assert.assertEquals(sam.getReferenceName(), "chr7");
-                Assert.assertTrue(sam.getCigarString().indexOf("S") == -1,
-                        "Read was clipped when it should not be.");
-            } else if (sam.getReadName().equals("neither_read_aligns_or_present")) {
-                Assert.assertTrue(sam.getReadUnmappedFlag(), "Read should be unmapped but isn't");
-            }
-            // Two pairs in which only the first read should align
-            else if (sam.getReadName().equals("both_reads_present_only_first_aligns") ||
-                    sam.getReadName().equals("read_2_too_many_gaps")) {
-                if (sam.getFirstOfPairFlag()) {
-                    Assert.assertEquals(sam.getReferenceName(), "chr7", "Read should be mapped but isn't");
-                } else {
-                    Assert.assertTrue(sam.getReadUnmappedFlag(), "Read should not be mapped but is");
-                }
-            } else {
-                throw new Exception("Unexpected read name: " + sam.getReadName());
-            }
-
-        }
-
-    }
-
-    @Test(dataProvider="data")
-    public void testSortingOnSamAlignmentMerger(final File unmapped, final File aligned, final boolean sorted, final String testName)
-        throws IOException {
-
-        final File target = File.createTempFile("target", "bam");
-        target.deleteOnExit();
-        final SamAlignmentMerger merger = new SamAlignmentMerger(unmapped,  target, fasta, null, true, false,
-                false, Arrays.asList(aligned), 1, null, null, null, null, null, null,
-                Arrays.asList(SamPairUtil.PairOrientation.FR), SAMFileHeader.SortOrder.coordinate,
-                new BestMapqPrimaryAlignmentSelectionStrategy(), false);
-
-        merger.mergeAlignment();
-        Assert.assertEquals(sorted, !merger.getForceSort());
-        final SAMRecordIterator it = new SAMFileReader(target).iterator();
-        int aln = 0;
-        while (it.hasNext()) {
-            final SAMRecord rec = it.next();
-            if (!rec.getReadUnmappedFlag()) {
-                aln++;
-            }
-        }
-        Assert.assertEquals(aln, 6, "Incorrect number of aligned reads in merged BAM file");
-    }
-
-    @DataProvider(name="data")
-    public Object[][] getDataForSortingTest() {
-        return new Object[][] {
-                {unmappedBam, alignedQuerynameSortedBam, true, "Basic test with pre-sorted alignment"},
-                {unmappedBam, alignedBam, false, "Basic test with unsorted alignment"}
-
-        };
-    }
-
-    /**
-     * Minimal test of merging data from separate read 1 and read 2 alignments
-     */
-    @Test(dataProvider="separateTrimmed")
-    public void testMergingFromSeparatedReadTrimmedAlignments(final File unmapped, final List<File> r1Align, final List<File> r2Align, final int r1Trim, final int r2Trim, final String testName) throws Exception {
-         final File output = File.createTempFile("mergeMultipleAlignmentsTest", ".sam");
-         output.deleteOnExit();
-
-         final MergeBamAlignment merger = new MergeBamAlignment();
-         merger.UNMAPPED_BAM = unmapped;
-         merger.ALIGNED_READS_ONLY = false;
-         merger.CLIP_ADAPTERS = true;
-         merger.IS_BISULFITE_SEQUENCE = false;
-         merger.MAX_INSERTIONS_OR_DELETIONS = 1;
-         merger.PROGRAM_RECORD_ID = "0";
-         merger.PROGRAM_GROUP_VERSION = "1.0";
-         merger.PROGRAM_GROUP_COMMAND_LINE = "align!";
-         merger.PROGRAM_GROUP_NAME = "myAligner";
-         merger.PAIRED_RUN = true;
-         merger.REFERENCE_SEQUENCE = fasta;
-         merger.READ1_ALIGNED_BAM = r1Align;
-         merger.READ2_ALIGNED_BAM = r2Align;
-         merger.READ1_TRIM = r1Trim;
-         merger.READ2_TRIM = r2Trim;
-         merger.OUTPUT = output;
-         merger.EXPECTED_ORIENTATIONS=Arrays.asList(SamPairUtil.PairOrientation.FR);
-
-         Assert.assertEquals(merger.doWork(), 0, "Merge did not succeed: " + testName);
-         final SAMFileReader result = new SAMFileReader(output);
-         final SAMProgramRecord pg = result.getFileHeader().getProgramRecords().get(0);
-
-         for (final SAMRecord sam : result) {
-            // Get the alignment record
-            final List<File> rFiles = sam.getFirstOfPairFlag() ? r1Align : r2Align;
-            SAMRecord alignment = null;
-            for (final File f : rFiles) {
-                for (final SAMRecord tmp : new SAMFileReader(f)) {
-                    if (tmp.getReadName().equals(sam.getReadName())) {
-                        alignment = tmp;
-                        break;
-                    }
-                }
-                if (alignment != null) break;
-            }
-
-            final int trim = sam.getFirstOfPairFlag() ? r1Trim : r2Trim;
-            final int notWrittenToFastq = sam.getReadLength() - (trim + alignment.getReadLength());
-            final int beginning = sam.getReadNegativeStrandFlag() ? notWrittenToFastq : trim;
-            final int end = sam.getReadNegativeStrandFlag() ? trim : notWrittenToFastq;
-
-            if (!sam.getReadUnmappedFlag()) {
-                final CigarElement firstMergedCigarElement = sam.getCigar().getCigarElement(0);
-                final CigarElement lastMergedCigarElement = sam.getCigar().getCigarElement(sam.getCigar().getCigarElements().size() - 1);
-                final CigarElement firstAlignedCigarElement = alignment.getCigar().getCigarElement(0);
-                final CigarElement lastAlignedCigarElement = alignment.getCigar().getCigarElement(alignment.getCigar().getCigarElements().size() - 1);
-
-                if (beginning > 0) {
-                    Assert.assertEquals(firstMergedCigarElement.getOperator(), CigarOperator.S, "First element is not a soft clip");
-                    Assert.assertEquals(firstMergedCigarElement.getLength(), beginning + ((firstAlignedCigarElement.getOperator() == CigarOperator.S) ? firstAlignedCigarElement.getLength() : 0));
-                }
-                if (end > 0) {
-                    Assert.assertEquals(lastMergedCigarElement.getOperator(), CigarOperator.S, "Last element is not a soft clip");
-                    Assert.assertEquals(lastMergedCigarElement.getLength(), end + ((lastAlignedCigarElement.getOperator() == CigarOperator.S) ? lastAlignedCigarElement.getLength() : 0));
-                }
-            }
-        }
-
-    }
-
-    @DataProvider(name="separateTrimmed")
-    public Object[][] getDataForMergingTest() {
-        return new Object[][] {
-            // Tests using one file for each read, queryname sorted, trimmed, not all bases written
-            {mergingUnmappedBam, Arrays.asList(firstReadAlignedBam), Arrays.asList(secondReadAlignedBam), 17, 20, "one file per read"},
-            // Tests using multiple files for each read, coordinate sorted, trimmed, not all bases written
-            {mergingUnmappedBam, Arrays.asList(firstReadAlignedBam_firstHalf, firstReadAlignedBam_secondHalf),
-                    Arrays.asList(secondReadAlignedBam_firstHalf, secondReadAlignedBam_secondHalf), 17, 20, "two files per read"}
-        };
-    }
-
-    @Test(expectedExceptions = {IllegalStateException.class, PicardException.class})
-    public void testOldQuerynameSortFails() throws IOException {
-
-        final File merged = File.createTempFile("merged", BamFileIoUtils.BAM_FILE_EXTENSION);
-        merged.deleteOnExit();
-
-        final MergeBamAlignment merger = new MergeBamAlignment();
-        merger.UNMAPPED_BAM = badorderUnmappedBam;
-        merger.ALIGNED_BAM = Arrays.asList(badorderAlignedBam);
-        merger.ALIGNED_READS_ONLY = false;
-        merger.CLIP_ADAPTERS = true;
-        merger.IS_BISULFITE_SEQUENCE = false;
-        merger.MAX_INSERTIONS_OR_DELETIONS = 1;
-        merger.PROGRAM_RECORD_ID = "0";
-        merger.PROGRAM_GROUP_VERSION = "1.0";
-        merger.PROGRAM_GROUP_COMMAND_LINE = "align!";
-        merger.PROGRAM_GROUP_NAME = "myAligner";
-        merger.PAIRED_RUN = true;
-        merger.REFERENCE_SEQUENCE = fasta;
-        merger.OUTPUT = merged;
-        merger.PAIRED_RUN = true;
-        merger.EXPECTED_ORIENTATIONS=Arrays.asList(SamPairUtil.PairOrientation.FR);
-        merger.doWork();
-        Assert.fail("Merger should have failed because unmapped reads are not in queryname order but didn't");
-    }
-
-    @Test
-    public void testMultiHit() throws IOException {
-        final File unmappedSam = new File(TEST_DATA_DIR, "multihit.unmapped.sam");
-        final File alignedSam = new File(TEST_DATA_DIR, "multihit.aligned.sam");
-        final File merged = File.createTempFile("merged", ".sam");
-        merged.deleteOnExit();
-
-        final MergeBamAlignment merger = new MergeBamAlignment();
-        merger.UNMAPPED_BAM = unmappedSam;
-        merger.ALIGNED_BAM = Arrays.asList(alignedSam);
-        merger.REFERENCE_SEQUENCE = fasta;
-        merger.ALIGNED_READS_ONLY = false;
-        merger.PROGRAM_RECORD_ID = "0";
-        merger.PROGRAM_GROUP_VERSION = "1.0";
-        merger.PROGRAM_GROUP_COMMAND_LINE = "align!";
-        merger.PROGRAM_GROUP_NAME = "myAligner";
-        merger.PAIRED_RUN = true;
-        merger.REFERENCE_SEQUENCE = fasta;
-        merger.OUTPUT = merged;
-        merger.PAIRED_RUN = true;
-        merger.doWork();
-
-        // Iterate over the merged output and gather some statistics
-        final Map<String, AlignmentAccumulator> accumulatorMap = new HashMap<String, AlignmentAccumulator>();
-
-        final SAMFileReader reader = new SAMFileReader(merged);
-        for (final SAMRecord rec : reader) {
-            final String readName;
-            if (!rec.getReadPairedFlag()) readName = rec.getReadName();
-            else if (rec.getFirstOfPairFlag()) readName = rec.getReadName() + "/1";
-            else readName = rec.getReadName() + "/2";
-            AlignmentAccumulator acc = accumulatorMap.get(readName);
-            if (acc == null) {
-                acc = new AlignmentAccumulator();
-                accumulatorMap.put(readName, acc);
-            }
-            if (rec.getReadUnmappedFlag()) {
-                Assert.assertFalse(acc.seenUnaligned, readName);
-                acc.seenUnaligned = true;
-            } else {
-                ++acc.numAlignments;
-                if (!rec.getNotPrimaryAlignmentFlag()) {
-                    Assert.assertNull(acc.primaryAlignmentSequence, readName);
-                    acc.primaryAlignmentSequence = rec.getReferenceName();
-                }
-            }
-        }
-
-        // Set up expected results
-        final Map<String, AlignmentAccumulator> expectedMap = new HashMap<String, AlignmentAccumulator>();
-        expectedMap.put("frag_hit", new AlignmentAccumulator(false, 1, "chr1"));
-        expectedMap.put("frag_multihit", new AlignmentAccumulator(false, 3, "chr2"));
-        expectedMap.put("frag_no_hit", new AlignmentAccumulator(true, 0, null));
-        expectedMap.put("pair_both_hit/1", new AlignmentAccumulator(false, 1, "chr7"));
-        expectedMap.put("pair_both_hit/2", new AlignmentAccumulator(false, 1, "chr7"));
-        expectedMap.put("pair_both_multihit/1", new AlignmentAccumulator(false, 3, "chr8"));
-        expectedMap.put("pair_both_multihit/2", new AlignmentAccumulator(false, 3, "chr8"));
-        expectedMap.put("pair_first_hit/1", new AlignmentAccumulator(false, 1, "chr1"));
-        expectedMap.put("pair_first_hit/2", new AlignmentAccumulator(true, 0, null));
-        expectedMap.put("pair_first_multihit/1", new AlignmentAccumulator(false, 3, "chr1"));
-        expectedMap.put("pair_first_multihit/2", new AlignmentAccumulator(true, 0, null));
-        expectedMap.put("pair_no_hit/1", new AlignmentAccumulator(true, 0, null));
-        expectedMap.put("pair_no_hit/2", new AlignmentAccumulator(true, 0, null));
-        expectedMap.put("pair_second_hit/1", new AlignmentAccumulator(true, 0, null));
-        expectedMap.put("pair_second_hit/2", new AlignmentAccumulator(false, 1, "chr1"));
-        expectedMap.put("pair_second_multihit/1", new AlignmentAccumulator(true, 0, null));
-        expectedMap.put("pair_second_multihit/2", new AlignmentAccumulator(false, 3, "chr3"));
-
-        Assert.assertEquals(accumulatorMap.size(), expectedMap.size());
-
-        for (final Map.Entry<String, AlignmentAccumulator> entry : expectedMap.entrySet()) {
-            final AlignmentAccumulator actual = accumulatorMap.get(entry.getKey());
-            Assert.assertEquals(actual, entry.getValue(), entry.getKey());
-        }
-
-        assertSamValid(merged);
-    }
-
-    private void assertSamValid(final File sam) {
-        final ValidateSamFile validator = new ValidateSamFile();
-        validator.INPUT = sam;
-        Assert.assertEquals(validator.doWork(), 0);
-    }
-
-    private static class AlignmentAccumulator {
-        boolean seenUnaligned = false;
-        int numAlignments = 0;
-        String primaryAlignmentSequence = null;
-
-        private AlignmentAccumulator() {}
-
-        private AlignmentAccumulator(final boolean seenUnaligned, final int numAlignments, final String primaryAlignmentSequence) {
-            this.seenUnaligned = seenUnaligned;
-            this.numAlignments = numAlignments;
-            this.primaryAlignmentSequence = primaryAlignmentSequence;
-        }
-
-        public boolean equals(final Object o) {
-            if (this == o) return true;
-            if (o == null || getClass() != o.getClass()) return false;
-
-            final AlignmentAccumulator that = (AlignmentAccumulator) o;
-
-            if (numAlignments != that.numAlignments) return false;
-            if (seenUnaligned != that.seenUnaligned) return false;
-            if (primaryAlignmentSequence != null ? !primaryAlignmentSequence.equals(that.primaryAlignmentSequence) : that.primaryAlignmentSequence != null)
-                return false;
-
-            return true;
-        }
-
-        @Override
-        public int hashCode() {
-            int result = (seenUnaligned ? 1 : 0);
-            result = 31 * result + numAlignments;
-            result = 31 * result + (primaryAlignmentSequence != null ? primaryAlignmentSequence.hashCode() : 0);
-            return result;
-        }
-
-        @Override
-        public String toString() {
-            return "AlignmentAccumulator{" +
-                    "seenUnaligned=" + seenUnaligned +
-                    ", numAlignments=" + numAlignments +
-                    ", primaryAlignmentSequence='" + primaryAlignmentSequence + '\'' +
-                    '}';
-        }
-    }
-
-    /**
-     * Read a single paired-end read from a file, and create one or more aligned records for the read pair based on
-     * the lists, merge with the original paired-end read, and assert expected results.
-     * @param description
-     * @param firstOfPair List that describes the aligned SAMRecords to create for the first end.
-     * @param secondOfPair List that describes the aligned SAMRecords to create for the second end.
-     * @param expectedPrimaryHitIndex Expected value for the HI tag in the primary alignment in the merged output.
-     * @param expectedNumFirst Expected number of first-of-pair SAMRecords in the merged output.
-     * @param expectedNumSecond Expected number of second-of-pair SAMRecords in the merged output.
-     * @param expectedPrimaryMapq Sum of mapqs of both ends of primary alignment in the merged output.
-     * @throws Exception
-     */
-    @Test(dataProvider = "testPairedMultiHitWithFilteringTestCases")
-    public void testPairedMultiHitWithFiltering(final String description, final List<HitSpec> firstOfPair, final List<HitSpec> secondOfPair,
-                                                final Integer expectedPrimaryHitIndex, final int expectedNumFirst,
-                                                final int expectedNumSecond, final int expectedPrimaryMapq) throws Exception {
-
-        // Create the aligned file by copying bases, quals, readname from the unmapped read, and conforming to each HitSpec.
-        final File unmappedSam = new File(TEST_DATA_DIR, "multihit.filter.unmapped.sam");
-        final SAMRecordIterator unmappedSamFileIterator = new SAMFileReader(unmappedSam).iterator();
-        final SAMRecord firstUnmappedRec = unmappedSamFileIterator.next();
-        final SAMRecord secondUnmappedRec = unmappedSamFileIterator.next();
-        unmappedSamFileIterator.close();
-        final File alignedSam = File.createTempFile("aligned.", ".sam");
-        alignedSam.deleteOnExit();
-        final SAMFileHeader alignedHeader = new SAMFileHeader();
-        alignedHeader.setSortOrder(SAMFileHeader.SortOrder.queryname);
-        alignedHeader.setSequenceDictionary(new SAMFileReader(sequenceDict).getFileHeader().getSequenceDictionary());
-        final SAMFileWriter alignedWriter = new SAMFileWriterFactory().makeSAMWriter(alignedHeader, true, alignedSam);
-        for (int i = 0; i < Math.max(firstOfPair.size(), secondOfPair.size()); ++i) {
-            final HitSpec firstHitSpec = firstOfPair.isEmpty()? null: firstOfPair.get(i);
-            final HitSpec secondHitSpec = secondOfPair.isEmpty()? null: secondOfPair.get(i);
-            final SAMRecord first = makeRead(alignedHeader, firstUnmappedRec, firstHitSpec, true, i);
-            final SAMRecord second = makeRead(alignedHeader, secondUnmappedRec, secondHitSpec, false, i);
-            if (first != null && second != null) SamPairUtil.setMateInfo(first, second, alignedHeader);
-            if (first != null) {
-                if (second == null) first.setMateUnmappedFlag(true);
-                alignedWriter.addAlignment(first);
-            }
-            if (second != null) {
-                if (first == null) second.setMateUnmappedFlag(true);
-                alignedWriter.addAlignment(second);
-            }
-        }
-        alignedWriter.close();
-
-        // Merge aligned file with original unmapped file.
-        final File mergedSam = File.createTempFile("merged.", ".sam");
-        mergedSam.deleteOnExit();
-
-        final MergeBamAlignment merger = new MergeBamAlignment();
-        merger.UNMAPPED_BAM = unmappedSam;
-        merger.ALIGNED_BAM = Arrays.asList(alignedSam);
-        merger.REFERENCE_SEQUENCE = fasta;
-        merger.ALIGNED_READS_ONLY = false;
-        merger.PROGRAM_RECORD_ID = "0";
-        merger.PROGRAM_GROUP_VERSION = "1.0";
-        merger.PROGRAM_GROUP_COMMAND_LINE = "align!";
-        merger.PROGRAM_GROUP_NAME = "myAligner";
-        merger.PAIRED_RUN = true;
-        merger.REFERENCE_SEQUENCE = fasta;
-        merger.OUTPUT = mergedSam;
-        merger.PAIRED_RUN = true;
-        merger.doWork();
-
-        assertSamValid(mergedSam);
-
-        // Tally metrics and check for agreement with expected.
-        final SAMFileReader mergedReader = new SAMFileReader(mergedSam);
-        int numFirst = 0;
-        int numSecond = 0;
-        Integer primaryHitIndex = null;
-        int primaryMapq = 0;
-        for (final SAMRecord rec : mergedReader) {
-            if (rec.getFirstOfPairFlag()) ++numFirst;
-            if (rec.getSecondOfPairFlag()) ++numSecond;
-            if (!rec.getNotPrimaryAlignmentFlag()  && !rec.getReadUnmappedFlag()) {
-                final Integer hitIndex = rec.getIntegerAttribute(SAMTag.HI.name());
-                final int newHitIndex = (hitIndex == null? -1: hitIndex);
-                if (primaryHitIndex == null) primaryHitIndex = newHitIndex;
-                else Assert.assertEquals(newHitIndex, primaryHitIndex.intValue());
-                primaryMapq += rec.getMappingQuality();
-            }
-        }
-        Assert.assertEquals(numFirst, expectedNumFirst);
-        Assert.assertEquals(numSecond, expectedNumSecond);
-        Assert.assertEquals(primaryHitIndex, expectedPrimaryHitIndex);
-        Assert.assertEquals(primaryMapq, expectedPrimaryMapq);
-    }
-
-    private SAMRecord makeRead(final SAMFileHeader alignedHeader, final SAMRecord unmappedRec, final HitSpec hitSpec,
-                               final boolean firstOfPair, final int hitIndex) {
-        if (hitSpec == null) return null;
-        final SAMRecord rec = makeRead(alignedHeader, unmappedRec, hitSpec, hitIndex);
-        rec.setReadPairedFlag(true);
-        if (firstOfPair) {
-            rec.setFirstOfPairFlag(true);
-            rec.setAlignmentStart(hitIndex + 1);
-        } else {
-            rec.setSecondOfPairFlag(true);
-            rec.setAlignmentStart(hitIndex + 201);
-        }
-        return rec;
-    }
-
-    private SAMRecord makeRead(final SAMFileHeader alignedHeader, final SAMRecord unmappedRec, final HitSpec hitSpec, final int hitIndex) {
-        final SAMRecord rec = new SAMRecord(alignedHeader);
-        rec.setReadName(unmappedRec.getReadName());
-        rec.setReadBases(unmappedRec.getReadBases());
-        rec.setBaseQualities(unmappedRec.getBaseQualities());
-        rec.setMappingQuality(hitSpec.mapq);
-        if (!hitSpec.primary) rec.setNotPrimaryAlignmentFlag(true);
-        final Cigar cigar = new Cigar();
-        final int readLength = rec.getReadLength();
-        if (hitSpec.filtered) {
-            // Add two insertions so alignment is filtered.
-            cigar.add(new CigarElement(readLength-4, CigarOperator.M));
-            cigar.add(new CigarElement(1, CigarOperator.I));
-            cigar.add(new CigarElement(1, CigarOperator.M));
-            cigar.add(new CigarElement(1, CigarOperator.I));
-            cigar.add(new CigarElement(1, CigarOperator.M));
-        } else {
-            cigar.add(new CigarElement(readLength, CigarOperator.M));
-        }
-        rec.setCigar(cigar);
-
-        rec.setReferenceName(bigSequenceName);
-        rec.setAttribute(SAMTag.HI.name(), hitIndex);
-        rec.setAlignmentStart(hitIndex + 1);
-
-        return rec;
-    }
-
-    class HitSpec {
-        final boolean primary;
-        final boolean filtered;
-        final int mapq;
-
-        HitSpec(final boolean primary, final boolean filtered, final int mapq) {
-            this.primary = primary;
-            this.filtered = filtered;
-            this.mapq = mapq;
-        }
-    }
-
-    @DataProvider(name="testPairedMultiHitWithFilteringTestCases")
-    public Object[][] testPairedMultiHitWithFilteringTestCases() {
-        final ArrayList<Object[]> ret = new ArrayList<Object[]>();
-        List<HitSpec> firstOfPair;
-        List<HitSpec> secondOfPair;
-
-        // One end aligned test cases...
-
-        firstOfPair = new ArrayList<HitSpec>();
-        secondOfPair = Collections.emptyList();
-        firstOfPair.add(new HitSpec(false, true, 10));
-        firstOfPair.add(new HitSpec(true, true, 10));
-        firstOfPair.add(new HitSpec(false, false, 9));
-        ret.add(new Object[]{"Only 1st end has alignments, primary alignment is filtered, one 2ndary is filtered", firstOfPair, secondOfPair, -1, 1, 1, 9});
-
-        secondOfPair = new ArrayList<HitSpec>();
-        firstOfPair = Collections.emptyList();
-        secondOfPair.add(new HitSpec(false, false, 11));
-        secondOfPair.add(new HitSpec(true, true, 10));
-        secondOfPair.add(new HitSpec(false, true, 9));
-        ret.add(new Object[]{"Only 2nd end has alignments, primary alignment is filtered, one 2ndary is filtered", firstOfPair, secondOfPair, -1, 1, 1, 11});
-
-        firstOfPair = new ArrayList<HitSpec>();
-        secondOfPair = Collections.emptyList();
-        firstOfPair.add(new HitSpec(false, true, 10));
-        firstOfPair.add(new HitSpec(true, true, 10));
-        firstOfPair.add(new HitSpec(false, true, 9));
-        ret.add(new Object[]{"Only 1st end has alignments, all are filtered", firstOfPair, secondOfPair, null, 1, 1, 0});
-
-        secondOfPair = new ArrayList<HitSpec>();
-        firstOfPair = Collections.emptyList();
-        secondOfPair.add(new HitSpec(false, true, 10));
-        secondOfPair.add(new HitSpec(true, true, 10));
-        secondOfPair.add(new HitSpec(false, true, 9));
-        ret.add(new Object[]{"Only 2nd end has alignments, all are filtered", firstOfPair, secondOfPair, null, 1, 1, 0});
-
-        // Both ends aligned test cases...
-
-        firstOfPair = new ArrayList<HitSpec>();
-        secondOfPair = new ArrayList<HitSpec>();
-        firstOfPair.add(new HitSpec(false, false, 10));
-        firstOfPair.add(new HitSpec(true, true, 10));
-        firstOfPair.add(new HitSpec(false, false, 9));
-        secondOfPair.add(new HitSpec(false, false, 11));
-        secondOfPair.add(new HitSpec(true, false, 30));
-        secondOfPair.add(new HitSpec(false, false, 9));
-        ret.add(new Object[]{"Both ends aligned, one end of primary filtered", firstOfPair, secondOfPair, -1, 3, 3, 30});
-
-        firstOfPair = new ArrayList<HitSpec>();
-        secondOfPair = new ArrayList<HitSpec>();
-        firstOfPair.add(new HitSpec(false, false, 10));
-        firstOfPair.add(new HitSpec(true, true, 10));
-        firstOfPair.add(new HitSpec(false, true, 9));
-        secondOfPair.add(new HitSpec(false, false, 11));
-        secondOfPair.add(new HitSpec(true, false, 30));
-        secondOfPair.add(new HitSpec(false, false, 9));
-        ret.add(new Object[]{"Both ends aligned, one end of primary filtered, one end of secondary filtered", firstOfPair, secondOfPair, -1, 2, 3, 30});
-
-        firstOfPair = new ArrayList<HitSpec>();
-        secondOfPair = new ArrayList<HitSpec>();
-        firstOfPair.add(new HitSpec(false, false, 9));
-        firstOfPair.add(new HitSpec(true, true, 10));
-        firstOfPair.add(new HitSpec(false, false, 10));
-        secondOfPair.add(new HitSpec(false, false, 9));
-        secondOfPair.add(new HitSpec(true, true, 30));
-        secondOfPair.add(new HitSpec(false, false, 11));
-        ret.add(new Object[]{"Both ends aligned, both ends of primary filtered", firstOfPair, secondOfPair, 1, 2, 2, 21});
-
-        firstOfPair = new ArrayList<HitSpec>();
-        secondOfPair = new ArrayList<HitSpec>();
-        firstOfPair.add(new HitSpec(false, false, 9));
-        firstOfPair.add(new HitSpec(true, true, 10));
-        firstOfPair.add(new HitSpec(false, false, 10));
-        secondOfPair.add(new HitSpec(false, false, 12));
-        secondOfPair.add(new HitSpec(true, true, 30));
-        secondOfPair.add(new HitSpec(false, false, 11));
-        ret.add(new Object[]{"Both ends aligned, both ends of primary filtered, two secondary alignments with identical mapq",
-                firstOfPair, secondOfPair, 1, 2, 2, 21});
-
-        firstOfPair = new ArrayList<HitSpec>();
-        secondOfPair = new ArrayList<HitSpec>();
-        firstOfPair.add(new HitSpec(false, true, 9));
-        firstOfPair.add(new HitSpec(true, true, 10));
-        firstOfPair.add(new HitSpec(false, false, 10));
-        secondOfPair.add(new HitSpec(false, false, 30));
-        secondOfPair.add(new HitSpec(true, true, 30));
-        secondOfPair.add(new HitSpec(false, false, 11));
-        ret.add(new Object[]{"Both ends aligned, both ends of primary filtered, one end of secondary filtered, but with high mapq",
-                firstOfPair, secondOfPair, -1, 2, 2, 30});
-
-        firstOfPair = new ArrayList<HitSpec>();
-        secondOfPair = new ArrayList<HitSpec>();
-        firstOfPair.add(new HitSpec(false, true, 9));
-        firstOfPair.add(new HitSpec(false, false, 10));
-        firstOfPair.add(new HitSpec(true, false, 10));
-        secondOfPair.add(new HitSpec(false, true, 30));
-        secondOfPair.add(new HitSpec(false, false, 11));
-        secondOfPair.add(new HitSpec(true, false, 30));
-        ret.add(new Object[]{"Both ends aligned, secondary filtered on both ends", firstOfPair, secondOfPair, 1, 2, 2, 40});
-
-        firstOfPair = new ArrayList<HitSpec>();
-        secondOfPair = new ArrayList<HitSpec>();
-        firstOfPair.add(new HitSpec(false, false, 9));
-        firstOfPair.add(new HitSpec(false, false, 10));
-        firstOfPair.add(new HitSpec(true, false, 10));
-        secondOfPair.add(new HitSpec(false, true, 30));
-        secondOfPair.add(new HitSpec(false, false, 11));
-        secondOfPair.add(new HitSpec(true, false, 30));
-        ret.add(new Object[]{"Both ends aligned, secondary filtered on second end", firstOfPair, secondOfPair, 2, 3, 2, 40});
-
-        firstOfPair = new ArrayList<HitSpec>();
-        secondOfPair = new ArrayList<HitSpec>();
-        firstOfPair.add(new HitSpec(false, false, 9));
-        firstOfPair.add(new HitSpec(false, true, 10));
-        firstOfPair.add(new HitSpec(true, false, 10));
-        secondOfPair.add(new HitSpec(false, false, 30));
-        secondOfPair.add(new HitSpec(false, false, 11));
-        secondOfPair.add(new HitSpec(true, false, 30));
-        ret.add(new Object[]{"Both ends aligned, secondary filtered on first end", firstOfPair, secondOfPair, 2, 2, 3, 40});
-
-        firstOfPair = new ArrayList<HitSpec>();
-        secondOfPair = new ArrayList<HitSpec>();
-        firstOfPair.add(new HitSpec(false, true, 9));
-        firstOfPair.add(new HitSpec(false, true, 10));
-        firstOfPair.add(new HitSpec(true, true, 10));
-        secondOfPair.add(new HitSpec(false, true, 30));
-        secondOfPair.add(new HitSpec(false, true, 11));
-        secondOfPair.add(new HitSpec(true, true, 30));
-        ret.add(new Object[]{"Both ends aligned, all filtered", firstOfPair, secondOfPair, null, 1, 1, 0});
-
-        return ret.toArray(new Object[0][]);
-    }
-
-
-
-
-    /**
-     * Read a single fragment read from a file, and create one or more aligned records for the read pair based on
-     * the lists, merge with the original read, and assert expected results.
-     * @param description
-     * @param hitSpecs List that describes the aligned SAMRecords to create.
-     * @param expectedPrimaryHitIndex Expected value for the HI tag in the primary alignment in the merged output.
-     * @param expectedNumReads Expected number of SAMRecords in the merged output.
-     * @param expectedPrimaryMapq Mapq of both ends of primary alignment in the merged output.
-     * @throws Exception
-     */
-    @Test(dataProvider = "testFragmentMultiHitWithFilteringTestCases")
-    public void testFragmentMultiHitWithFiltering(final String description, final List<HitSpec> hitSpecs,
-                                                final Integer expectedPrimaryHitIndex, final int expectedNumReads,
-                                                final int expectedPrimaryMapq) throws Exception {
-
-        // Create the aligned file by copying bases, quals, readname from the unmapped read, and conforming to each HitSpec.
-        final File unmappedSam = new File(TEST_DATA_DIR, "multihit.filter.fragment.unmapped.sam");
-        final SAMRecordIterator unmappedSamFileIterator = new SAMFileReader(unmappedSam).iterator();
-        final SAMRecord unmappedRec = unmappedSamFileIterator.next();
-        unmappedSamFileIterator.close();
-        final File alignedSam = File.createTempFile("aligned.", ".sam");
-        alignedSam.deleteOnExit();
-        final SAMFileHeader alignedHeader = new SAMFileHeader();
-        alignedHeader.setSortOrder(SAMFileHeader.SortOrder.queryname);
-        alignedHeader.setSequenceDictionary(new SAMFileReader(sequenceDict).getFileHeader().getSequenceDictionary());
-        final SAMFileWriter alignedWriter = new SAMFileWriterFactory().makeSAMWriter(alignedHeader, true, alignedSam);
-        for (int i = 0; i < hitSpecs.size(); ++i) {
-            final HitSpec hitSpec = hitSpecs.get(i);
-            final SAMRecord mappedRec = makeRead(alignedHeader, unmappedRec, hitSpec, i);
-            if (mappedRec != null) {
-                alignedWriter.addAlignment(mappedRec);
-            }
-        }
-        alignedWriter.close();
-
-        // Merge aligned file with original unmapped file.
-        final File mergedSam = File.createTempFile("merged.", ".sam");
-        mergedSam.deleteOnExit();
-
-        final MergeBamAlignment merger = new MergeBamAlignment();
-        merger.UNMAPPED_BAM = unmappedSam;
-        merger.ALIGNED_BAM = Arrays.asList(alignedSam);
-        merger.REFERENCE_SEQUENCE = fasta;
-        merger.ALIGNED_READS_ONLY = false;
-        merger.PROGRAM_RECORD_ID = "0";
-        merger.PROGRAM_GROUP_VERSION = "1.0";
-        merger.PROGRAM_GROUP_COMMAND_LINE = "align!";
-        merger.PROGRAM_GROUP_NAME = "myAligner";
-        merger.PAIRED_RUN = true;
-        merger.REFERENCE_SEQUENCE = fasta;
-        merger.OUTPUT = mergedSam;
-        merger.PAIRED_RUN = false;
-        merger.doWork();
-
-        assertSamValid(mergedSam);
-
-        // Tally metrics and check for agreement with expected.
-        final SAMFileReader mergedReader = new SAMFileReader(mergedSam);
-        int numReads = 0;
-        Integer primaryHitIndex = null;
-        int primaryMapq = 0;
-        for (final SAMRecord rec : mergedReader) {
-            ++numReads;
-            if (!rec.getNotPrimaryAlignmentFlag()  && !rec.getReadUnmappedFlag()) {
-                final Integer hitIndex = rec.getIntegerAttribute(SAMTag.HI.name());
-                final int newHitIndex = (hitIndex == null? -1: hitIndex);
-                Assert.assertNull(primaryHitIndex);
-                primaryHitIndex = newHitIndex;
-                primaryMapq = rec.getMappingQuality();
-            }
-        }
-        Assert.assertEquals(numReads, expectedNumReads);
-        Assert.assertEquals(primaryHitIndex, expectedPrimaryHitIndex);
-        Assert.assertEquals(primaryMapq, expectedPrimaryMapq);
-    }
-
-    @DataProvider(name="testFragmentMultiHitWithFilteringTestCases")
-    public Object[][] testFragmentMultiHitWithFilteringTestCases() {
-        final ArrayList<Object[]> ret = new ArrayList<Object[]>();
-        List<HitSpec> hitSpecs;
-
-        hitSpecs = new ArrayList<HitSpec>();
-        hitSpecs.add(new HitSpec(false, true, 10));
-        hitSpecs.add(new HitSpec(true, false, 8));
-        hitSpecs.add(new HitSpec(false, false, 9));
-        ret.add(new Object[]{"One secondary filtered", hitSpecs, -1, 2, 8});
-
-        hitSpecs = new ArrayList<HitSpec>();
-        hitSpecs.add(new HitSpec(false, false, 10));
-        hitSpecs.add(new HitSpec(true, true, 8));
-        hitSpecs.add(new HitSpec(false, false, 11));
-        ret.add(new Object[]{"Primary filtered", hitSpecs, -1, 2, 11});
-
-        hitSpecs = new ArrayList<HitSpec>();
-        hitSpecs.add(new HitSpec(false, false, 11));
-        hitSpecs.add(new HitSpec(true, true, 8));
-        hitSpecs.add(new HitSpec(false, false, 11));
-        ret.add(new Object[]{"Primary filtered, two secondaries with identical mapq", hitSpecs, -1, 2, 11});
-
-        hitSpecs = new ArrayList<HitSpec>();
-        hitSpecs.add(new HitSpec(false, true, 10));
-        hitSpecs.add(new HitSpec(true, true, 8));
-        hitSpecs.add(new HitSpec(false, false, 9));
-        ret.add(new Object[]{"Primary and one secondary filtered", hitSpecs, -1, 1, 9});
-
-        hitSpecs = new ArrayList<HitSpec>();
-        hitSpecs.add(new HitSpec(false, true, 10));
-        hitSpecs.add(new HitSpec(true, true, 8));
-        hitSpecs.add(new HitSpec(false, true, 9));
-        ret.add(new Object[]{"All filtered", hitSpecs, null, 1, 0});
-
-        return ret.toArray(new Object[0][]);
-    }
-
-    /**
-     * Confirm that paired reads are rejected by PrimaryAlignmentStrategy.EarliestFragment.
-     */
-    @Test(expectedExceptions = UnsupportedOperationException.class)
-    public void testEarliestFragmentStrategyPaired() throws Exception {
-        final File output = File.createTempFile("mergeTest", ".sam");
-        output.deleteOnExit();
-
-        final File unmappedSam = File.createTempFile("unmapped.", ".sam");
-        unmappedSam.deleteOnExit();
-        final SAMFileWriterFactory factory = new SAMFileWriterFactory();
-        final SAMFileHeader header = new SAMFileHeader();
-        header.setSortOrder(SAMFileHeader.SortOrder.queryname);
-        final String cigar = "16M";
-
-        final SAMRecord firstOfPair = new SAMRecord(header);
-        firstOfPair.setReadName("theRead");
-        firstOfPair.setReadString("ACGTACGTACGTACGT");
-        firstOfPair.setBaseQualityString("5555555555555555");
-        firstOfPair.setReadUnmappedFlag(true);
-        firstOfPair.setReadPairedFlag(true);
-        firstOfPair.setFirstOfPairFlag(true);
-
-        final SAMRecord secondOfPair = new SAMRecord(header);
-        secondOfPair.setReadName("theRead");
-        secondOfPair.setReadString("ACGTACGTACGTACGT");
-        secondOfPair.setBaseQualityString("5555555555555555");
-        secondOfPair.setReadUnmappedFlag(true);
-        secondOfPair.setReadPairedFlag(true);
-        secondOfPair.setSecondOfPairFlag(true);
-        SamPairUtil.setMateInfo(firstOfPair, secondOfPair, header);
-
-        final SAMFileWriter unmappedWriter = factory.makeSAMWriter(header, false, unmappedSam);
-        unmappedWriter.addAlignment(firstOfPair);
-        unmappedWriter.addAlignment(secondOfPair);
-        unmappedWriter.close();
-
-        final File alignedSam = File.createTempFile("aligned.", ".sam");
-        alignedSam.deleteOnExit();
-
-        // Populate the header with SAMSequenceRecords
-        header.getSequenceDictionary().addSequence(new SAMSequenceRecord("chr1", 1000000));
-
-        // Create 2 alignments for each end of pair
-        final SAMFileWriter alignedWriter = factory.makeSAMWriter(header, false, alignedSam);
-        for (int i = 1; i <= 2; ++i) {
-            final SAMRecord firstOfPairAligned = new SAMRecord(header);
-            firstOfPairAligned.setReadName(firstOfPair.getReadName());
-            firstOfPairAligned.setReadBases(firstOfPair.getReadBases());
-            firstOfPairAligned.setBaseQualities(firstOfPair.getBaseQualities());
-            firstOfPairAligned.setReferenceName("chr1");
-            firstOfPairAligned.setAlignmentStart(i);
-            firstOfPairAligned.setCigarString(cigar);
-            firstOfPairAligned.setMappingQuality(100);
-            firstOfPairAligned.setReadPairedFlag(true);
-            firstOfPairAligned.setFirstOfPairFlag(true);
-            firstOfPairAligned.setAttribute(SAMTag.HI.name(), i);
-
-            final SAMRecord secondOfPairAligned = new SAMRecord(header);
-            secondOfPairAligned.setReadName(secondOfPair.getReadName());
-            secondOfPairAligned.setReadBases(secondOfPair.getReadBases());
-            secondOfPairAligned.setBaseQualities(secondOfPair.getBaseQualities());
-            secondOfPairAligned.setReferenceName("chr1");
-            secondOfPairAligned.setAlignmentStart(i + 10);
-            secondOfPairAligned.setCigarString(cigar);
-            secondOfPairAligned.setMappingQuality(100);
-            secondOfPairAligned.setReadPairedFlag(true);
-            secondOfPairAligned.setSecondOfPairFlag(true);
-            secondOfPairAligned.setAttribute(SAMTag.HI.name(), i);
-
-            SamPairUtil.setMateInfo(firstOfPairAligned, secondOfPairAligned, header);
-
-            alignedWriter.addAlignment(firstOfPairAligned);
-            alignedWriter.addAlignment(secondOfPairAligned);
-        }
-        alignedWriter.close();
-
-        final MergeBamAlignment merger = new MergeBamAlignment();
-        merger.UNMAPPED_BAM = unmappedSam;
-        merger.ALIGNED_BAM = Arrays.asList(alignedSam);
-        merger.ALIGNED_READS_ONLY = false;
-        merger.CLIP_ADAPTERS = true;
-        merger.IS_BISULFITE_SEQUENCE = false;
-        merger.MAX_INSERTIONS_OR_DELETIONS = 1;
-        merger.PROGRAM_RECORD_ID = "0";
-        merger.PROGRAM_GROUP_VERSION = "1.0";
-        merger.PROGRAM_GROUP_COMMAND_LINE = "align!";
-        merger.PROGRAM_GROUP_NAME = "myAligner";
-        merger.PAIRED_RUN = true;
-        merger.REFERENCE_SEQUENCE = fasta;
-        merger.OUTPUT = output;
-        merger.EXPECTED_ORIENTATIONS=Arrays.asList(SamPairUtil.PairOrientation.FR);
-        merger.PRIMARY_ALIGNMENT_STRATEGY= MergeBamAlignment.PrimaryAlignmentStrategy.EarliestFragment;
-        merger.doWork();
-        Assert.fail("Exception was not thrown");
-    }
-
-    /**
-     * Various scenarios for EarliestFragmentStrategy.  Confirms that one of the expected ones is selected.
-     * Note that there may be an arbitrary selection due to a tie.
-     */
-    @Test(dataProvider = "testEarliestFragmentStrategyDataProvider")
-    public void testEarliestFragmentStrategy(final String testName, final MultipleAlignmentSpec[] specs) throws IOException {
-
-        final File output = File.createTempFile(testName, ".sam");
-        output.deleteOnExit();
-        final File[] sams = createSamFilesToBeMerged(specs);
-
-        final MergeBamAlignment merger = new MergeBamAlignment();
-        merger.UNMAPPED_BAM = sams[0];
-        merger.ALIGNED_BAM = Arrays.asList(sams[1]);
-        merger.ALIGNED_READS_ONLY = false;
-        merger.CLIP_ADAPTERS = true;
-        merger.IS_BISULFITE_SEQUENCE = false;
-        merger.MAX_INSERTIONS_OR_DELETIONS = 1;
-        merger.PROGRAM_RECORD_ID = "0";
-        merger.PROGRAM_GROUP_VERSION = "1.0";
-        merger.PROGRAM_GROUP_COMMAND_LINE = "align!";
-        merger.PROGRAM_GROUP_NAME = "myAligner";
-        merger.PAIRED_RUN = true;
-        merger.REFERENCE_SEQUENCE = fasta;
-        merger.OUTPUT = output;
-        merger.EXPECTED_ORIENTATIONS=Arrays.asList(SamPairUtil.PairOrientation.FR);
-        merger.PRIMARY_ALIGNMENT_STRATEGY= MergeBamAlignment.PrimaryAlignmentStrategy.EarliestFragment;
-        merger.ATTRIBUTES_TO_RETAIN.add(ONE_OF_THE_BEST_TAG);
-        Assert.assertEquals(merger.doWork(), 0, "Merge did not succeed");
-
-        final SAMFileReader mergedReader = new SAMFileReader(output);
-        boolean seenPrimary = false;
-        for (final SAMRecord rec : mergedReader) {
-            if (!rec.getNotPrimaryAlignmentFlag()) {
-                seenPrimary = true;
-                final Integer oneOfTheBest = rec.getIntegerAttribute(ONE_OF_THE_BEST_TAG);
-                Assert.assertEquals(oneOfTheBest, new Integer(1), "Read not marked as one of the best is primary: " + rec);
-            }
-        }
-        CloserUtil.close(mergedReader);
-        Assert.assertTrue(seenPrimary, "Never saw primary alignment");
-    }
-
-    @DataProvider(name = "testEarliestFragmentStrategyDataProvider")
-    public Object[][] testEarliestFragmentStrategyDataProvider() {
-        return new Object[][] {
-                {"simpleForward", new MultipleAlignmentSpec[]{new MultipleAlignmentSpec("16M", false, 200, true)}},
-                {"simpleReverse", new MultipleAlignmentSpec[]{new MultipleAlignmentSpec("16M", true, 200, true)}},
-                {"2 forward one earlier", new MultipleAlignmentSpec[]{
-                        new MultipleAlignmentSpec("1S15M", false, 200, false),
-                        new MultipleAlignmentSpec("16M", false, 195, true)}},
-                {"forward earlier than reverse", new MultipleAlignmentSpec[]{
-                        new MultipleAlignmentSpec("16M", false, 200, true),
-                        new MultipleAlignmentSpec("15M1S", true, 195, false)}},
-                {"reverse earlier than forward", new MultipleAlignmentSpec[]{
-                        new MultipleAlignmentSpec("2S14M", false, 200, false),
-                        new MultipleAlignmentSpec("15M1S", true, 200, true)}},
-                {"tie resolved via MAPQ", new MultipleAlignmentSpec[]{
-                        new MultipleAlignmentSpec("1S15M", false, 200, false),
-                        new MultipleAlignmentSpec("1S13M1S", false, 205, true),
-                        new MultipleAlignmentSpec("15M1S", true, 200, false),
-                        new MultipleAlignmentSpec("14M2S", true, 195, false)}},
-                {"tie with same MAPQ resolved arbitrarily", new MultipleAlignmentSpec[]{
-                        new MultipleAlignmentSpec("1S15M", false, 200, false),
-                        new MultipleAlignmentSpec("1S13M1S", false, 205, true),
-                        new MultipleAlignmentSpec("15M1S", true, 205, true),
-                        new MultipleAlignmentSpec("14M2S", true, 195, false)}},
-                {"one cigar with deletion and higher MAPQ", new MultipleAlignmentSpec[]{
-                        new MultipleAlignmentSpec("16M", false, 200, false),
-                        new MultipleAlignmentSpec("1D16M", false, 205, true)}},
-                {"one cigar with deletion and lower MAPQ", new MultipleAlignmentSpec[]{
-                        new MultipleAlignmentSpec("16M", false, 205, true),
-                        new MultipleAlignmentSpec("1D16M", false, 200, false)}},
-                {"Insertion makes alignment later", new MultipleAlignmentSpec[]{
-                        new MultipleAlignmentSpec("16M", false, 200, true),
-                        new MultipleAlignmentSpec("1I15M", false, 205, false)}},
-                {"one cigar with deletion and higher MAPQ -- reverse", new MultipleAlignmentSpec[]{
-                        new MultipleAlignmentSpec("16M", true, 200, false),
-                        new MultipleAlignmentSpec("16M1D", true, 205, true)}},
-                {"one cigar with deletion and lower MAPQ -- reverse", new MultipleAlignmentSpec[]{
-                        new MultipleAlignmentSpec("16M", true, 205, true),
-                        new MultipleAlignmentSpec("16M1D", true, 200, false)}},
-                {"Insertion makes alignment later -- reverse", new MultipleAlignmentSpec[]{
-                        new MultipleAlignmentSpec("16M", true, 200, true),
-                        new MultipleAlignmentSpec("15M1I", true, 205, false)}}
-        };
-    }
-
-    /**
-     * @return a 2-element array in which the first element is the unmapped SAM, and the second the mapped SAM.
-     */
-    private File[] createSamFilesToBeMerged(final MultipleAlignmentSpec[] specs) {
-        try {
-            final File unmappedSam = File.createTempFile("unmapped.", ".sam");
-            unmappedSam.deleteOnExit();
-            final SAMFileWriterFactory factory = new SAMFileWriterFactory();
-            final SAMFileHeader header = new SAMFileHeader();
-            header.setSortOrder(SAMFileHeader.SortOrder.queryname);
-            final SAMRecord unmappedRecord = new SAMRecord(header);
-
-            unmappedRecord.setReadName("theRead");
-            unmappedRecord.setReadString("ACGTACGTACGTACGT");
-            unmappedRecord.setBaseQualityString("5555555555555555");
-            unmappedRecord.setReadUnmappedFlag(true);
-
-            final SAMFileWriter unmappedWriter = factory.makeSAMWriter(header, false, unmappedSam);
-            unmappedWriter.addAlignment(unmappedRecord);
-            unmappedWriter.close();
-
-            final File alignedSam = File.createTempFile("aligned.", ".sam");
-            alignedSam.deleteOnExit();
-
-            final String sequence = "chr1";
-            // Populate the header with SAMSequenceRecords
-            header.getSequenceDictionary().addSequence(new SAMSequenceRecord(sequence, 1000000));
-
-            final SAMFileWriter alignedWriter = factory.makeSAMWriter(header, false, alignedSam);
-            for (final MultipleAlignmentSpec spec : specs) {
-                final SAMRecord alignedRecord = new SAMRecord(header);
-                alignedRecord.setReadName(unmappedRecord.getReadName());
-                alignedRecord.setReadBases(unmappedRecord.getReadBases());
-                alignedRecord.setBaseQualities(unmappedRecord.getBaseQualities());
-                alignedRecord.setReferenceName(sequence);
-                alignedRecord.setAlignmentStart(1);
-                alignedRecord.setReadNegativeStrandFlag(spec.reverseStrand);
-                alignedRecord.setCigarString(spec.cigar);
-                alignedRecord.setMappingQuality(spec.mapQ);
-                if (spec.oneOfTheBest) {
-                    alignedRecord.setAttribute(ONE_OF_THE_BEST_TAG, 1);
-                }
-                alignedWriter.addAlignment(alignedRecord);
-            }
-            alignedWriter.close();
-
-            return new File[]{unmappedSam, alignedSam};
-        } catch (IOException e) {
-            throw new PicardException(e.getMessage(), e);
-        }
-    }
-
-    class MultipleAlignmentSpec {
-        final String cigar;
-        final boolean reverseStrand;
-        final int mapQ;
-        final boolean oneOfTheBest;
-
-        MultipleAlignmentSpec(final String cigar, final boolean reverseStrand, final int mapQ, final boolean oneOfTheBest) {
-            this.cigar = cigar;
-            this.reverseStrand = reverseStrand;
-            this.mapQ = mapQ;
-            this.oneOfTheBest = oneOfTheBest;
-        }
-    }
-
-    /**
-     * Test that clipping of FR reads for fragments shorter than read length happens only when it should.
-     */
-    @Test
-    public void testShortFragmentClipping() throws Exception {
-        final File output = File.createTempFile("testShortFragmentClipping", ".sam");
-        output.deleteOnExit();
-        final MergeBamAlignment merger = new MergeBamAlignment();
-        merger.UNMAPPED_BAM = new File(TEST_DATA_DIR, "cliptest.unmapped.sam");
-        merger.ALIGNED_BAM = Arrays.asList(new File(TEST_DATA_DIR, "cliptest.aligned.sam"));
-        merger.ALIGNED_READS_ONLY = false;
-        merger.CLIP_ADAPTERS = true;
-        merger.IS_BISULFITE_SEQUENCE = false;
-        merger.MAX_INSERTIONS_OR_DELETIONS = 1;
-        merger.PROGRAM_RECORD_ID = "0";
-        merger.PROGRAM_GROUP_VERSION = "1.0";
-        merger.PROGRAM_GROUP_COMMAND_LINE = "align!";
-        merger.PROGRAM_GROUP_NAME = "myAligner";
-        merger.PAIRED_RUN = true;
-        merger.REFERENCE_SEQUENCE = new File(TEST_DATA_DIR, "cliptest.fasta");
-        merger.OUTPUT = output;
-        merger.EXPECTED_ORIENTATIONS=Arrays.asList(SamPairUtil.PairOrientation.FR);
-
-        Assert.assertEquals(merger.doWork(), 0, "Merge did not succeed");
-        final SAMFileReader result = new SAMFileReader(output);
-        final Map<String, SAMRecord> firstReadEncountered = new HashMap<String, SAMRecord>();
-
-        for (final SAMRecord rec : result) {
-            final SAMRecord otherEnd = firstReadEncountered.get(rec.getReadName());
-            if (otherEnd == null) {
-                firstReadEncountered.put(rec.getReadName(), rec);
-            } else {
-                final int fragmentStart = Math.min(rec.getAlignmentStart(), otherEnd.getAlignmentStart());
-                final int fragmentEnd = Math.max(rec.getAlignmentEnd(), otherEnd.getAlignmentEnd());
-                final String[] readNameFields = rec.getReadName().split(":");
-                // Read name of each pair includes the expected fragment start and fragment end positions.
-                final int expectedFragmentStart = Integer.parseInt(readNameFields[1]);
-                final int expectedFragmentEnd = Integer.parseInt(readNameFields[2]);
-                Assert.assertEquals(fragmentStart, expectedFragmentStart, rec.getReadName());
-                Assert.assertEquals(fragmentEnd, expectedFragmentEnd, rec.getReadName());
-            }
-        }
-        result.close();
-    }
-
-    @Test(dataProvider="testBestFragmentMapqStrategy")
-    public void testBestFragmentMapqStrategy(final String testName, final int[] firstMapQs, final int[] secondMapQs,
-                                             final int expectedFirstMapq, final int expectedSecondMapq) throws Exception {
-        testBestFragmentMapqStrategy(testName + "includeSecondary", firstMapQs, secondMapQs, true, expectedFirstMapq,
-                expectedSecondMapq);
-        testBestFragmentMapqStrategy(testName + "excludeSecondary", firstMapQs, secondMapQs, false, expectedFirstMapq,
-                expectedSecondMapq);
-    }
-
-    private void testBestFragmentMapqStrategy(final String testName, final int[] firstMapQs, final int[] secondMapQs,
-                                              final boolean includeSecondary, final int expectedFirstMapq,
-                                              final int expectedSecondMapq) throws Exception {
-        final File unmappedSam = File.createTempFile("unmapped.", ".sam");
-        unmappedSam.deleteOnExit();
-        final SAMFileWriterFactory factory = new SAMFileWriterFactory();
-        final SAMFileHeader header = new SAMFileHeader();
-        header.setSortOrder(SAMFileHeader.SortOrder.queryname);
-
-        final String readName = "theRead";
-        final SAMRecord firstUnmappedRead = new SAMRecord(header);
-        firstUnmappedRead.setReadName(readName);
-        firstUnmappedRead.setReadString("ACGTACGTACGTACGT");
-        firstUnmappedRead.setBaseQualityString("5555555555555555");
-        firstUnmappedRead.setReadUnmappedFlag(true);
-        firstUnmappedRead.setMateUnmappedFlag(true);
-        firstUnmappedRead.setReadPairedFlag(true);
-        firstUnmappedRead.setFirstOfPairFlag(true);
-
-        final SAMRecord secondUnmappedRead = new SAMRecord(header);
-        secondUnmappedRead.setReadName(readName);
-        secondUnmappedRead.setReadString("TCGAACGTTCGAACTG");
-        secondUnmappedRead.setBaseQualityString("6666666666666666");
-        secondUnmappedRead.setReadUnmappedFlag(true);
-        secondUnmappedRead.setMateUnmappedFlag(true);
-        secondUnmappedRead.setReadPairedFlag(true);
-        secondUnmappedRead.setSecondOfPairFlag(true);
-
-
-
-        final SAMFileWriter unmappedWriter = factory.makeSAMWriter(header, false, unmappedSam);
-        unmappedWriter.addAlignment(firstUnmappedRead);
-        unmappedWriter.addAlignment(secondUnmappedRead);
-        unmappedWriter.close();
-
-        final File alignedSam = File.createTempFile("aligned.", ".sam");
-        alignedSam.deleteOnExit();
-
-        final String sequence = "chr1";
-        // Populate the header with SAMSequenceRecords
-        header.getSequenceDictionary().addSequence(new SAMSequenceRecord(sequence, 1000000));
-
-        final SAMFileWriter alignedWriter = factory.makeSAMWriter(header, false, alignedSam);
-
-        addAlignmentsForBestFragmentMapqStrategy(alignedWriter, firstUnmappedRead, sequence, firstMapQs);
-        addAlignmentsForBestFragmentMapqStrategy(alignedWriter, secondUnmappedRead, sequence, secondMapQs);
-        alignedWriter.close();
-
-
-        final File output = File.createTempFile("testBestFragmentMapqStrategy." + testName, ".sam");
-        output.deleteOnExit();
-        final MergeBamAlignment merger = new MergeBamAlignment();
-        merger.UNMAPPED_BAM = unmappedSam;
-        merger.ALIGNED_BAM = Arrays.asList(alignedSam);
-        merger.ALIGNED_READS_ONLY = false;
-        merger.CLIP_ADAPTERS = true;
-        merger.IS_BISULFITE_SEQUENCE = false;
-        merger.MAX_INSERTIONS_OR_DELETIONS = 1;
-        merger.PROGRAM_RECORD_ID = "0";
-        merger.PROGRAM_GROUP_VERSION = "1.0";
-        merger.PROGRAM_GROUP_COMMAND_LINE = "align!";
-        merger.PROGRAM_GROUP_NAME = "myAligner";
-        merger.PAIRED_RUN = true;
-        merger.REFERENCE_SEQUENCE = new File(TEST_DATA_DIR, "cliptest.fasta");
-        merger.OUTPUT = output;
-        merger.EXPECTED_ORIENTATIONS=Arrays.asList(SamPairUtil.PairOrientation.FR);
-        merger.PRIMARY_ALIGNMENT_STRATEGY = MergeBamAlignment.PrimaryAlignmentStrategy.BestEndMapq;
-        merger.INCLUDE_SECONDARY_ALIGNMENTS = includeSecondary;
-
-        Assert.assertEquals(merger.doWork(), 0, "Merge did not succeed");
-        final SAMFileReader reader = new SAMFileReader(output);
-
-        int numFirstRecords = 0;
-        int numSecondRecords = 0;
-        int firstPrimaryMapq = -1;
-        int secondPrimaryMapq = -1;
-        for (final SAMRecord rec: reader) {
-            Assert.assertTrue(rec.getReadPairedFlag());
-            if (rec.getFirstOfPairFlag()) ++numFirstRecords;
-            else if (rec.getSecondOfPairFlag()) ++ numSecondRecords;
-            else Assert.fail("unpossible!");
-            if (!rec.getReadUnmappedFlag() && !rec.getNotPrimaryAlignmentFlag()) {
-                if (rec.getFirstOfPairFlag()) {
-                    Assert.assertEquals(firstPrimaryMapq, -1);
-                    firstPrimaryMapq = rec.getMappingQuality();
-                } else {
-                    Assert.assertEquals(secondPrimaryMapq, -1);
-                    secondPrimaryMapq = rec.getMappingQuality();
-                }
-            } else if (rec.getNotPrimaryAlignmentFlag()) {
-                Assert.assertTrue(rec.getMateUnmappedFlag());
-            }
-        }
-        reader.close();
-        Assert.assertEquals(firstPrimaryMapq, expectedFirstMapq);
-        Assert.assertEquals(secondPrimaryMapq, expectedSecondMapq);
-        if (!includeSecondary) {
-            Assert.assertEquals(numFirstRecords, 1);
-            Assert.assertEquals(numSecondRecords, 1);
-        } else {
-            // If no alignments for an end, there will be a single unmapped record
-            Assert.assertEquals(numFirstRecords, Math.max(1, firstMapQs.length));
-            Assert.assertEquals(numSecondRecords, Math.max(1, secondMapQs.length));
-        }
-    }
-
-    private void addAlignmentsForBestFragmentMapqStrategy(
-            final SAMFileWriter writer, final SAMRecord unmappedRecord, final String sequence, final int[] mapqs) {
-        boolean reverse = false;
-        int alignmentStart = 1;
-        for (final int mapq : mapqs) {
-            final SAMRecord alignedRecord = new SAMRecord(writer.getFileHeader());
-            alignedRecord.setReadName(unmappedRecord.getReadName());
-            alignedRecord.setReadBases(unmappedRecord.getReadBases());
-            alignedRecord.setBaseQualities(unmappedRecord.getBaseQualities());
-            alignedRecord.setReferenceName(sequence);
-            alignedRecord.setAlignmentStart(alignmentStart);
-            alignmentStart += 10; // Any old position will do
-            alignedRecord.setReadNegativeStrandFlag(reverse);
-            reverse = !reverse;
-            alignedRecord.setCigarString(unmappedRecord.getReadBases().length + "M");
-            alignedRecord.setMappingQuality(mapq);
-            alignedRecord.setReadPairedFlag(unmappedRecord.getReadPairedFlag());
-            alignedRecord.setFirstOfPairFlag(unmappedRecord.getFirstOfPairFlag());
-            alignedRecord.setSecondOfPairFlag(unmappedRecord.getSecondOfPairFlag());
-            alignedRecord.setMateUnmappedFlag(true);
-            writer.addAlignment(alignedRecord);
-        }
-    }
-
-
-    @DataProvider(name="testBestFragmentMapqStrategy")
-    public Object[][] testBestFragmentMapqStrategyDataProvider() {
-        /**
-         *
-         * @param testName
-         * @param firstMapQs
-         * @param secondMapQs
-         * @param expectedFirstMapq
-         * @param expectedSecondMapq
-         */
-        return new Object[][] {
-                {"singleAlignmentFirstEnd", new int[]{12}, new int[0], 12, -1},
-                {"singleAlignmentSecondEnd", new int[0], new int[]{12}, -1, 12},
-                {"singleAlignmentBothEnd", new int[]{13}, new int[]{12}, 13, 12},
-                {"multipleBothEnds1", new int[]{10, 10, 11, 11, 255, 0}, new int[]{14, 11, 1, 14}, 11, 14},
-                {"multipleBothEnds2", new int[]{255, 0, 255}, new int[]{255, 255}, 255, 255},
-                {"multipleFirstEnd", new int[]{10, 10, 11, 11, 12}, new int[0], 12, -1},
-                {"multipleSecondEnd", new int[0], new int[]{10, 10, 0, 11, 12}, -1, 12},
-                {"multipleFirstEndSingleSecondEnd", new int[]{10, 10, 11, 11, 12}, new int[]{255}, 12, 255},
-                {"singleFirstEndMultipleSecondEnd", new int[]{0}, new int[]{10, 10, 11, 11, 12}, 0, 12},
-        };
-    }
-
-    @Test(dataProvider = "testMostDistantStrategy")
-    public void testMostDistantStrategy(final String testName,
-                                        final MostDistantStrategyAlignmentSpec[] firstEndSpecs,
-                                        final MostDistantStrategyAlignmentSpec[] secondEndSpecs) throws Exception {
-        testMostDistantStrategy(testName +".includeSecondary", true, firstEndSpecs, secondEndSpecs);
-        testMostDistantStrategy(testName +".excludeSecondary", false, firstEndSpecs, secondEndSpecs);
-    }
-
-    public void testMostDistantStrategy(final String testName, final boolean includeSecondary,
-        final MostDistantStrategyAlignmentSpec[] firstEndSpecs,
-        final MostDistantStrategyAlignmentSpec[] secondEndSpecs) throws Exception {
-
-        final File unmappedSam = File.createTempFile("unmapped.", ".sam");
-        unmappedSam.deleteOnExit();
-        final SAMFileWriterFactory factory = new SAMFileWriterFactory();
-        final SAMFileHeader header = new SAMFileHeader();
-        header.setSortOrder(SAMFileHeader.SortOrder.queryname);
-
-        final String readName = "theRead";
-        final SAMRecord firstUnmappedRead = new SAMRecord(header);
-        firstUnmappedRead.setReadName(readName);
-        firstUnmappedRead.setReadString("ACGT");
-        firstUnmappedRead.setBaseQualityString("5555");
-        firstUnmappedRead.setReadUnmappedFlag(true);
-        firstUnmappedRead.setMateUnmappedFlag(true);
-        firstUnmappedRead.setReadPairedFlag(true);
-        firstUnmappedRead.setFirstOfPairFlag(true);
-
-        final SAMRecord secondUnmappedRead = new SAMRecord(header);
-        secondUnmappedRead.setReadName(readName);
-        secondUnmappedRead.setReadString("TCGA");
-        secondUnmappedRead.setBaseQualityString("6666");
-        secondUnmappedRead.setReadUnmappedFlag(true);
-        secondUnmappedRead.setMateUnmappedFlag(true);
-        secondUnmappedRead.setReadPairedFlag(true);
-        secondUnmappedRead.setSecondOfPairFlag(true);
-
-
-
-        final SAMFileWriter unmappedWriter = factory.makeSAMWriter(header, false, unmappedSam);
-        unmappedWriter.addAlignment(firstUnmappedRead);
-        unmappedWriter.addAlignment(secondUnmappedRead);
-        unmappedWriter.close();
-
-        final File alignedSam = File.createTempFile("aligned.", ".sam");
-        alignedSam.deleteOnExit();
-
-        final SAMFileReader dictReader = new SAMFileReader(sequenceDict);
-        header.setSequenceDictionary(dictReader.getFileHeader().getSequenceDictionary());
-        dictReader.close();
-
-        final SAMFileWriter alignedWriter = factory.makeSAMWriter(header, false, alignedSam);
-
-        String expectedFirstPrimarySequence = null;
-        int expectedFirstPrimaryAlignmentStart = -1;
-        String expectedSecondPrimarySequence = null;
-        int expectedSecondPrimaryAlignmentStart = -1;
-
-        // Semi-randomly make the reads align to forward or reverse strand.
-        boolean reverse = false;
-        for (final MostDistantStrategyAlignmentSpec spec: firstEndSpecs) {
-            addAlignmentForMostStrategy(alignedWriter, firstUnmappedRead, spec, reverse);
-            reverse = !reverse;
-            if (spec.expectedPrimary) {
-                expectedFirstPrimarySequence = spec.sequence;
-                expectedFirstPrimaryAlignmentStart = spec.alignmentStart;
-            }
-        }
-        for (final MostDistantStrategyAlignmentSpec spec: secondEndSpecs) {
-            addAlignmentForMostStrategy(alignedWriter, secondUnmappedRead, spec, reverse);
-            reverse = !reverse;
-            if (spec.expectedPrimary) {
-                expectedSecondPrimarySequence = spec.sequence;
-                expectedSecondPrimaryAlignmentStart = spec.alignmentStart;
-            }
-        }
-        alignedWriter.close();
-
-
-        final File output = File.createTempFile("testMostDistantStrategy." + testName, ".sam");
-        output.deleteOnExit();
-        final MergeBamAlignment merger = new MergeBamAlignment();
-        merger.UNMAPPED_BAM = unmappedSam;
-        merger.ALIGNED_BAM = Arrays.asList(alignedSam);
-        merger.ALIGNED_READS_ONLY = false;
-        merger.CLIP_ADAPTERS = true;
-        merger.IS_BISULFITE_SEQUENCE = false;
-        merger.MAX_INSERTIONS_OR_DELETIONS = 1;
-        merger.PROGRAM_RECORD_ID = "0";
-        merger.PROGRAM_GROUP_VERSION = "1.0";
-        merger.PROGRAM_GROUP_COMMAND_LINE = "align!";
-        merger.PROGRAM_GROUP_NAME = "myAligner";
-        merger.PAIRED_RUN = true;
-        merger.REFERENCE_SEQUENCE = fasta;
-        merger.OUTPUT = output;
-        merger.EXPECTED_ORIENTATIONS=Arrays.asList(SamPairUtil.PairOrientation.FR);
-        merger.PRIMARY_ALIGNMENT_STRATEGY = MergeBamAlignment.PrimaryAlignmentStrategy.MostDistant;
-        merger.INCLUDE_SECONDARY_ALIGNMENTS = includeSecondary;
-
-        Assert.assertEquals(merger.doWork(), 0, "Merge did not succeed");
-        final SAMFileReader reader = new SAMFileReader(output);
-        int numFirstRecords = 0;
-        int numSecondRecords = 0;
-        String firstPrimarySequence = null;
-        int firstPrimaryAlignmentStart = -1;
-        String secondPrimarySequence = null;
-        int secondPrimaryAlignmentStart = -1;
-        for (final SAMRecord rec: reader) {
-            Assert.assertTrue(rec.getReadPairedFlag());
-            if (rec.getFirstOfPairFlag()) ++numFirstRecords;
-            else if (rec.getSecondOfPairFlag()) ++ numSecondRecords;
-            else Assert.fail("unpossible!");
-            if (!rec.getReadUnmappedFlag() && !rec.getNotPrimaryAlignmentFlag()) {
-                if (rec.getFirstOfPairFlag()) {
-                    Assert.assertEquals(firstPrimaryAlignmentStart, -1);
-                    firstPrimarySequence = rec.getReferenceName();
-                    firstPrimaryAlignmentStart = rec.getAlignmentStart();
-                } else {
-                    Assert.assertEquals(secondPrimaryAlignmentStart, -1);
-                    secondPrimarySequence = rec.getReferenceName();
-                    secondPrimaryAlignmentStart = rec.getAlignmentStart();
-                }
-            } else if (rec.getNotPrimaryAlignmentFlag()) {
-                Assert.assertTrue(rec.getMateUnmappedFlag());
-            }
-        }
-        reader.close();
-        Assert.assertEquals(firstPrimarySequence, expectedFirstPrimarySequence);
-        Assert.assertEquals(firstPrimaryAlignmentStart, expectedFirstPrimaryAlignmentStart);
-        Assert.assertEquals(secondPrimarySequence, expectedSecondPrimarySequence);
-        Assert.assertEquals(secondPrimaryAlignmentStart, expectedSecondPrimaryAlignmentStart);
-        if (!includeSecondary) {
-            Assert.assertEquals(numFirstRecords, 1);
-            Assert.assertEquals(numSecondRecords, 1);
-        } else {
-            // If no alignments for an end, there will be a single unmapped record
-            Assert.assertEquals(numFirstRecords, Math.max(1, firstEndSpecs.length));
-            Assert.assertEquals(numSecondRecords, Math.max(1, secondEndSpecs.length));
-        }
-    }
-
-    private void addAlignmentForMostStrategy(
-            final SAMFileWriter writer, final SAMRecord unmappedRecord, final MostDistantStrategyAlignmentSpec spec,
-            final boolean reverse) {
-        final SAMRecord alignedRecord = new SAMRecord(writer.getFileHeader());
-        alignedRecord.setReadName(unmappedRecord.getReadName());
-        alignedRecord.setReadBases(unmappedRecord.getReadBases());
-        alignedRecord.setBaseQualities(unmappedRecord.getBaseQualities());
-        alignedRecord.setReferenceName(spec.sequence);
-        alignedRecord.setAlignmentStart(spec.alignmentStart);
-        alignedRecord.setReadNegativeStrandFlag(reverse);
-        alignedRecord.setCigarString(unmappedRecord.getReadBases().length + "M");
-        alignedRecord.setMappingQuality(spec.mapQ);
-        alignedRecord.setReadPairedFlag(unmappedRecord.getReadPairedFlag());
-        alignedRecord.setFirstOfPairFlag(unmappedRecord.getFirstOfPairFlag());
-        alignedRecord.setSecondOfPairFlag(unmappedRecord.getSecondOfPairFlag());
-        alignedRecord.setMateUnmappedFlag(true);
-        writer.addAlignment(alignedRecord);
-    }
-
-    private static class MostDistantStrategyAlignmentSpec {
-        public final boolean expectedPrimary;
-        public final String sequence;
-        public final int alignmentStart;
-        public final int mapQ;
-
-        private MostDistantStrategyAlignmentSpec(final boolean expectedPrimary, final String sequence,
-                                                 final int alignmentStart, final int mapQ) {
-            this.expectedPrimary = expectedPrimary;
-            this.sequence = sequence;
-            this.alignmentStart = alignmentStart;
-            this.mapQ = mapQ;
-        }
-
-        private MostDistantStrategyAlignmentSpec(final boolean expectedPrimary, final String sequence,
-                                                 final int alignmentStart) {
-            this(expectedPrimary, sequence, alignmentStart, 10);
-        }
-    }
-
-    @DataProvider(name="testMostDistantStrategy")
-    public Object[][] testMostDistantStrategyDataProvider() {
-        /**
-         * @param testName
-         * @param firstEndSpecs
-         * @param secondEndSpecs
-         */
-        return new Object[][] {
-                {
-                        // There are two ties: {chr1:1 - chr1:89} and {chr4:2 -chr4:90}
-                        // That are disambiguated by MAPQ.
-                        "multipleAlignmentsBothEnds",
-                        new MostDistantStrategyAlignmentSpec[] {
-                                new MostDistantStrategyAlignmentSpec(false, "chr1", 1, 20),
-                                new MostDistantStrategyAlignmentSpec(false, "chr2", 1, 20),
-                                new MostDistantStrategyAlignmentSpec(false, "chr3", 1, 20),
-                                new MostDistantStrategyAlignmentSpec(true, "chr4", 2, 25),
-                                new MostDistantStrategyAlignmentSpec(false, "chr1", 89, 20),
-                                new MostDistantStrategyAlignmentSpec(false, "chr2", 2, 20),
-                                new MostDistantStrategyAlignmentSpec(false, "chr3", 3, 20),
-                                new MostDistantStrategyAlignmentSpec(false, "chr4", 4, 20),
-                        },
-                        new MostDistantStrategyAlignmentSpec[] {
-                                new MostDistantStrategyAlignmentSpec(false, "chr1", 1, 20),
-                                new MostDistantStrategyAlignmentSpec(false, "chr2", 2, 20),
-                                new MostDistantStrategyAlignmentSpec(false, "chr3", 3, 20),
-                                new MostDistantStrategyAlignmentSpec(true, "chr4", 90, 19),
-                                new MostDistantStrategyAlignmentSpec(false, "chr1", 5, 20),
-                                new MostDistantStrategyAlignmentSpec(false, "chr2", 6, 20),
-                        },
-                },
-                {
-                        "multipleAlignmentsAllChimeric",
-                        new MostDistantStrategyAlignmentSpec[] {
-                                new MostDistantStrategyAlignmentSpec(false, "chr1", 1, 20),
-                                new MostDistantStrategyAlignmentSpec(false, "chr2", 2, 20),
-                                new MostDistantStrategyAlignmentSpec(false, "chr1", 3, 20),
-                                new MostDistantStrategyAlignmentSpec(true, "chr2", 4, 21),
-                                new MostDistantStrategyAlignmentSpec(false, "chr1", 10, 20),
-                                new MostDistantStrategyAlignmentSpec(false, "chr2", 50, 20),
-                                new MostDistantStrategyAlignmentSpec(false, "chr1", 60, 20),
-                                new MostDistantStrategyAlignmentSpec(false, "chr2", 70, 20),
-                        },
-                        new MostDistantStrategyAlignmentSpec[] {
-                                new MostDistantStrategyAlignmentSpec(false, "chr3", 1, 20),
-                                new MostDistantStrategyAlignmentSpec(false, "chr4", 2, 20),
-                                new MostDistantStrategyAlignmentSpec(false, "chr3", 3, 20),
-                                new MostDistantStrategyAlignmentSpec(true, "chr4", 11, 25),
-                                new MostDistantStrategyAlignmentSpec(false, "chr3", 50, 20),
-                                new MostDistantStrategyAlignmentSpec(false, "chr4", 60, 20),
-                        },
-                },
-                {
-                        "multipleAlignmentsFirstEnd",
-                        new MostDistantStrategyAlignmentSpec[] {
-                                new MostDistantStrategyAlignmentSpec(false, "chr1", 10, 20),
-                                new MostDistantStrategyAlignmentSpec(false, "chr2", 10, 20),
-                                new MostDistantStrategyAlignmentSpec(false, "chr3", 10, 20),
-                                new MostDistantStrategyAlignmentSpec(true, "chr4", 20, 25),
-                                new MostDistantStrategyAlignmentSpec(false, "chr1", 80, 20),
-                                new MostDistantStrategyAlignmentSpec(false, "chr2", 20, 20),
-                                new MostDistantStrategyAlignmentSpec(false, "chr3", 30, 20),
-                                new MostDistantStrategyAlignmentSpec(false, "chr4", 40, 20),
-                        },
-                        new MostDistantStrategyAlignmentSpec[0]
-                },
-                {
-                        "multipleAlignmentsSecondEnd",
-                        new MostDistantStrategyAlignmentSpec[0],
-                        new MostDistantStrategyAlignmentSpec[] {
-                                new MostDistantStrategyAlignmentSpec(false, "chr1", 10, 20),
-                                new MostDistantStrategyAlignmentSpec(false, "chr2", 10, 20),
-                                new MostDistantStrategyAlignmentSpec(false, "chr3", 10, 20),
-                                new MostDistantStrategyAlignmentSpec(true, "chr4", 20, 25),
-                                new MostDistantStrategyAlignmentSpec(false, "chr1", 80, 20),
-                                new MostDistantStrategyAlignmentSpec(false, "chr2", 20, 20),
-                                new MostDistantStrategyAlignmentSpec(false, "chr3", 30, 20),
-                                new MostDistantStrategyAlignmentSpec(false, "chr4", 40, 20),
-                        },
-                },
-        };
-    }
-}
diff --git a/src/tests/java/net/sf/picard/sam/MergeSamFilesTest.java b/src/tests/java/net/sf/picard/sam/MergeSamFilesTest.java
deleted file mode 100644
index debdb50..0000000
--- a/src/tests/java/net/sf/picard/sam/MergeSamFilesTest.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.sam;
-
-import net.sf.samtools.BamFileIoUtils;
-import net.sf.samtools.SAMFileHeader;
-import net.sf.samtools.SAMFileReader;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.io.File;
-
-public class MergeSamFilesTest {
-    private static File TEST_DATA_DIR = new File("testdata/net/sf/picard/sam/MergeSamFiles");
-
-    /**
-     * Confirm that unsorted input can result in coordinate sorted output, with index created.
-     */
-    @Test
-    public void unsortedInputSortedOutputTest() throws Exception {
-        File unsortedInputTestDataDir = new File(TEST_DATA_DIR, "unsorted_input");
-        File mergedOutput = File.createTempFile("unsortedInputSortedOutputTest.", BamFileIoUtils.BAM_FILE_EXTENSION);
-        mergedOutput.deleteOnExit();
-        String[] args = {
-                "I=" + new File(unsortedInputTestDataDir, "1.sam").getAbsolutePath(),
-                "I=" + new File(unsortedInputTestDataDir, "2.sam").getAbsolutePath(),
-                "O=" + mergedOutput.getAbsolutePath(),
-                "SO=coordinate"
-        };
-        final int mergeExitStatus = new MergeSamFiles().instanceMain(args);
-        Assert.assertEquals(mergeExitStatus, 0);
-        final SAMFileReader reader = new SAMFileReader(mergedOutput);
-        Assert.assertEquals(reader.getFileHeader().getSortOrder(), SAMFileHeader.SortOrder.coordinate);
-
-        final int validateExitStatus = new ValidateSamFile().instanceMain(new String[] {"I=" + mergedOutput.getAbsolutePath()});
-        Assert.assertEquals(validateExitStatus, 0);
-    }
-}
diff --git a/src/tests/java/net/sf/picard/sam/MergingSamRecordIteratorGroupCollisionTest.java b/src/tests/java/net/sf/picard/sam/MergingSamRecordIteratorGroupCollisionTest.java
deleted file mode 100644
index daf5f6e..0000000
--- a/src/tests/java/net/sf/picard/sam/MergingSamRecordIteratorGroupCollisionTest.java
+++ /dev/null
@@ -1,524 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.sam;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import net.sf.samtools.*;
-
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-/**
- * Tests for MultiIterator relating to group collision.
- *
- * @author Dave Tefft, Andre Mesarovic
- */
-public class MergingSamRecordIteratorGroupCollisionTest {
-
-    private GroupAdapter padapter = new ProgramGroupAdapter();
-    private GroupAdapter radapter = new ReadGroupAdapter();
-
-    @DataProvider(name = "adapters")
-    public Object[][] adapters() {
-        return new Object[][] {
-            { new ProgramGroupAdapter() },
-            { new ReadGroupAdapter() }
-        };
-    }
-
-
-    /** Test for groups with same ID and same attributes */
-    @Test(dataProvider = "adapters")
-    public void testSameIdsSameAttrs(GroupAdapter adapter) {
-        boolean addReadGroup = addReadGroup(adapter);
-
-        final SAMRecordSetBuilder builder1 = new SAMRecordSetBuilder(false, SAMFileHeader.SortOrder.queryname,addReadGroup);
-        final AbstractSAMHeaderRecord group0 = adapter.newGroup("0");
-        adapter.setAttribute(group0,"Hi Mom!");
-        adapter.setBuilderGroup(builder1, group0);
-        builder1.addFrag("read1", 20, 28833, addReadGroup);
-
-        final SAMRecordSetBuilder builder2 = new SAMRecordSetBuilder(false, SAMFileHeader.SortOrder.queryname,addReadGroup);
-        final AbstractSAMHeaderRecord group1 = adapter.newGroup("0");
-        adapter.setAttribute(group1,"Hi Mom!");
-        adapter.setBuilderGroup(builder2, group1);
-        builder2.addFrag("read2", 19, 28833, addReadGroup);
-
-        final List<SAMFileReader> readers = new ArrayList<SAMFileReader>();
-        readers.add(builder1.getSamReader());
-        readers.add(builder2.getSamReader());
-
-        final List<SAMFileHeader> headers = new ArrayList<SAMFileHeader>();
-        headers.add(readers.get(0).getFileHeader());
-        headers.add(readers.get(1).getFileHeader());
-
-        final SamFileHeaderMerger headerMerger = new SamFileHeaderMerger(SAMFileHeader.SortOrder.queryname, headers, false);
-        final List<? extends AbstractSAMHeaderRecord> outputGroups = adapter.getGroups(headerMerger.getMergedHeader());
-        Assert.assertEquals(outputGroups.size(), 1);
-
-        Assert.assertTrue(adapter.equivalent(outputGroups.get(0),group0));
-
-        assertRecords(headerMerger, readers, adapter, addReadGroup, "0", "0") ;
-    }
-
-    /** Test for groups with same ID but different attributes */
-   // @Test(dataProvider = "adapters")
-    public void testSameIdsDifferentAttrs(GroupAdapter adapter) {
-        boolean addReadGroup = addReadGroup(adapter);
-
-        final SAMRecordSetBuilder builder1 = new SAMRecordSetBuilder(false, SAMFileHeader.SortOrder.queryname,addReadGroup);
-        final AbstractSAMHeaderRecord group0 = adapter.newGroup("0");
-        adapter.setAttribute(group0,"Hi Mom!");
-        adapter.setBuilderGroup(builder1, group0);
-        builder1.addFrag("read1", 20, 28833, addReadGroup);
-
-        final SAMRecordSetBuilder builder2 = new SAMRecordSetBuilder(false, SAMFileHeader.SortOrder.queryname,addReadGroup);
-        final AbstractSAMHeaderRecord group1 = adapter.newGroup("0");
-        adapter.setAttribute(group1,"Hi Dad!");
-        adapter.setBuilderGroup(builder2, group1);
-        builder2.addFrag("read2", 19, 28833, addReadGroup);
-
-        final List<SAMFileReader> readers = new ArrayList<SAMFileReader>();
-        readers.add(builder1.getSamReader());
-        readers.add(builder2.getSamReader());
-
-        final List<SAMFileHeader> headers = new ArrayList<SAMFileHeader>();
-        headers.add(readers.get(0).getFileHeader());
-        headers.add(readers.get(1).getFileHeader());
-
-        final SamFileHeaderMerger headerMerger = new SamFileHeaderMerger(SAMFileHeader.SortOrder.queryname, headers, false);
-        final List<? extends AbstractSAMHeaderRecord> outputGroups = adapter.getGroups(headerMerger.getMergedHeader());
-        Assert.assertEquals(outputGroups.size(), 2);
-        Assert.assertTrue(adapter.equivalent(outputGroups.get(0),group0));
-        Assert.assertTrue(adapter.equivalent(outputGroups.get(1),group1));
-
-        assertRecords(headerMerger, readers, adapter, addReadGroup, "0", "0.1") ;
-    }
-
-
-    /** Test for groups with different ID and same attributes */
-   // @Test(dataProvider = "adapters")
-    public void testDifferentIdsSameAttrs(GroupAdapter adapter) {
-        boolean addReadGroup = addReadGroup(adapter);
-        final SAMRecordSetBuilder builder1 = new SAMRecordSetBuilder(false, SAMFileHeader.SortOrder.queryname,addReadGroup);
-        final AbstractSAMHeaderRecord group0 = adapter.newGroup("0");
-        adapter.setAttribute(group0,"Hi Mom!");
-        adapter.setBuilderGroup(builder1, group0);
-        builder1.addFrag("read1", 20, 28833, addReadGroup);
-
-        final SAMRecordSetBuilder builder2 = new SAMRecordSetBuilder(false, SAMFileHeader.SortOrder.queryname,addReadGroup);
-        final AbstractSAMHeaderRecord group1 = adapter.newGroup("55");
-        adapter.setAttribute(group1,"Hi Mom!");
-        adapter.setBuilderGroup(builder2, group1);
-        builder2.addFrag("read2", 19, 28833, addReadGroup);
-
-        final List<SAMFileReader> readers = new ArrayList<SAMFileReader>();
-        readers.add(builder1.getSamReader());
-        readers.add(builder2.getSamReader());
-
-        final List<SAMFileHeader> headers = new ArrayList<SAMFileHeader>();
-        headers.add(readers.get(0).getFileHeader());
-        headers.add(readers.get(1).getFileHeader());
-
-        final SamFileHeaderMerger headerMerger = new SamFileHeaderMerger(SAMFileHeader.SortOrder.queryname, headers, false);
-        final List<? extends AbstractSAMHeaderRecord> outputGroups = adapter.getGroups(headerMerger.getMergedHeader());
-        Assert.assertEquals(outputGroups.size(), 2);
-        Assert.assertTrue(adapter.equivalent(outputGroups.get(0),group0));
-        Assert.assertTrue(adapter.equivalent(outputGroups.get(1),group1));
-
-        assertRecords(headerMerger, readers, adapter, addReadGroup, "0", "55") ;
-    }
-
-
-
-    /** Test for groups with different ID and different attributes */
-    @Test(dataProvider = "adapters")
-    public void testDifferentIdsDifferentAttrs(GroupAdapter adapter) {
-        boolean addReadGroup = addReadGroup(adapter);
-        final SAMRecordSetBuilder builder1 = new SAMRecordSetBuilder(false, SAMFileHeader.SortOrder.queryname,addReadGroup);
-        final AbstractSAMHeaderRecord group0 = adapter.newGroup("0");
-        adapter.setAttribute(group0,"Hi Mom!");
-        adapter.setBuilderGroup(builder1, group0);
-        builder1.addFrag("read1", 20, 28833, addReadGroup);
-
-        final SAMRecordSetBuilder builder2 = new SAMRecordSetBuilder(false, SAMFileHeader.SortOrder.queryname,addReadGroup);
-        final AbstractSAMHeaderRecord group1 = adapter.newGroup("55");
-        adapter.setAttribute(group1,"Hi Dad!");
-        adapter.setBuilderGroup(builder2, group1);
-        builder2.addFrag("read2", 19, 28833, addReadGroup);
-
-        final List<SAMFileReader> readers = new ArrayList<SAMFileReader>();
-        readers.add(builder1.getSamReader());
-        readers.add(builder2.getSamReader());
-
-        final List<SAMFileHeader> headers = new ArrayList<SAMFileHeader>();
-        headers.add(readers.get(0).getFileHeader());
-        headers.add(readers.get(1).getFileHeader());
-
-        final SamFileHeaderMerger headerMerger = new SamFileHeaderMerger(SAMFileHeader.SortOrder.queryname, headers, false);
-        final List<? extends AbstractSAMHeaderRecord> outputGroups = adapter.getGroups(headerMerger.getMergedHeader());
-        Assert.assertEquals(outputGroups.size(), 2);
-        Assert.assertTrue(adapter.equivalent(outputGroups.get(0),group0));
-        Assert.assertTrue(adapter.equivalent(outputGroups.get(1),group1));
-
-        assertRecords(headerMerger, readers, adapter, addReadGroup, "0", "55") ;
-    }
-
-    @Test(dataProvider = "adapters")
-    public void differentIds(GroupAdapter adapter) throws Exception {
-        final String[] groupIds = {"group1", "group2"};
-        final List<? extends AbstractSAMHeaderRecord> groups = adapter.createGroups(groupIds);
-        Assert.assertEquals(groups.size(),2);
-        int i = 0;
-        for (final AbstractSAMHeaderRecord g : groups) {
-            Assert.assertEquals(groupIds[i], adapter.getGroupId(g));
-            i++;
-        }
-    }
-
-    @Test(dataProvider = "adapters")
-    public void sameIds(GroupAdapter adapter) throws Exception {
-        final String[] groupIds = {"group1", "group1"};
-
-        final List<? extends AbstractSAMHeaderRecord> groups = adapter.createGroups(groupIds);
-        Assert.assertEquals(groups.size(),1);
-        AbstractSAMHeaderRecord group = groups.get(0);
-        Assert.assertEquals(adapter.getGroupId(group),"group1");
-    }
-
-    /**
-     * List of program groups from the input files are merged, and renumbered, and SAMRecords
-     * with PG tags get assigned the updated PG ID.
-     * Original ProgramRecord-specific test.
-     */
-    @Test
-    public void testMergingProgramGroups() {
-        final SAMRecordSetBuilder builder1 = new SAMRecordSetBuilder(false, SAMFileHeader.SortOrder.queryname);
-        final SAMProgramRecord program1 = new SAMProgramRecord("0");
-        program1.setCommandLine("Hi, Mom!");
-        builder1.setProgramRecord(program1);
-        builder1.addFrag("read1", 20, 28833, false);
-
-        final SAMRecordSetBuilder builder2 = new SAMRecordSetBuilder(false, SAMFileHeader.SortOrder.queryname);
-        final SAMProgramRecord program2 = new SAMProgramRecord("0");
-        program2.setCommandLine("Hi, Dad!");
-        program2.setProgramVersion("123");
-        builder2.setProgramRecord(program2);
-        builder2.addFrag("read2", 19, 28833, false);
-        // No PG tag on this record
-        builder2.setProgramRecord(null);
-        builder2.addFrag("read3", 19, 28833, false);
-
-        final List<SAMFileReader> readers = new ArrayList<SAMFileReader>();
-        readers.add(builder1.getSamReader());
-        readers.add(builder2.getSamReader());
-
-        final List<SAMFileHeader> headers = new ArrayList<SAMFileHeader>();
-        headers.add(readers.get(0).getFileHeader());
-        headers.add(readers.get(1).getFileHeader());
-
-        final SamFileHeaderMerger headerMerger = new SamFileHeaderMerger(SAMFileHeader.SortOrder.queryname, headers, false);
-
-        final List<SAMProgramRecord> outputProgramGroups = headerMerger.getMergedHeader().getProgramRecords();
-        Assert.assertEquals(outputProgramGroups.size(), 2);
-        Assert.assertTrue(outputProgramGroups.get(0).equivalent(program1));
-        Assert.assertTrue(outputProgramGroups.get(1).equivalent(program2));
-
-        final MergingSamRecordIterator iterator = new MergingSamRecordIterator(headerMerger, readers, false);
-        SAMRecord samRecord = iterator.next();
-        Assert.assertEquals(samRecord.getAttribute(SAMTag.PG.name()), "0");
-        samRecord = iterator.next();
-        Assert.assertEquals(samRecord.getAttribute(SAMTag.PG.name()), "0.1");
-        samRecord = iterator.next();
-        Assert.assertEquals(samRecord.getAttribute(SAMTag.PG.name()), null);
-        Assert.assertFalse(iterator.hasNext());
-    }
-
-    private void assertRecords(SamFileHeaderMerger headerMerger, Collection<SAMFileReader> readers,
-                               GroupAdapter adapter, boolean addReadGroup, String... attrs) {
-        final MergingSamRecordIterator iterator = new MergingSamRecordIterator(headerMerger, readers, addReadGroup);
-        for (int j=0 ; j < attrs.length ; j++) {
-            SAMRecord samRecord = iterator.next();
-            Assert.assertEquals(samRecord.getAttribute(adapter.getTagName()), attrs[j]);
-        }
-        Assert.assertFalse(iterator.hasNext());
-    }
-
-    private boolean addReadGroup(GroupAdapter adapter) {
-        return adapter instanceof ProgramGroupAdapter ;
-    }
-
-    /**
-     * List of program groups from the input files are merged, and renumbered, and SAMRecords
-     * with PG tags get assigned the updated PG ID.
-     * Original ProgramRecord-specific test.
-     */
-    @Test
-    public void testMergingProgramGroupsWithThreeReaders() {
-        final SAMRecordSetBuilder builder1 = new SAMRecordSetBuilder(false, SAMFileHeader.SortOrder.queryname);
-        final SAMProgramRecord program1 = new SAMProgramRecord("0");
-        program1.setCommandLine("Hi, Mom!");
-        program1.setProgramVersion("123");
-        builder1.setProgramRecord(program1);
-        builder1.addFrag("read1", 20, 28833, false);
-
-        final SAMRecordSetBuilder builder2 = new SAMRecordSetBuilder(false, SAMFileHeader.SortOrder.queryname);
-        final SAMProgramRecord program2 = new SAMProgramRecord("0");
-        program2.setCommandLine("Hi, Mom!");
-        program2.setProgramVersion("123");
-        builder2.setProgramRecord(program2);
-        builder2.addFrag("read2", 19, 28833, false);
-
-
-        final SAMRecordSetBuilder builder3 = new SAMRecordSetBuilder(false, SAMFileHeader.SortOrder.queryname);
-        final SAMProgramRecord program3 = new SAMProgramRecord("0");
-        program3.setCommandLine("Hi, Dad!");
-        builder3.setProgramRecord(program3);
-        builder3.addFrag("read3", 19, 28833, false);
-
-
-        final List<SAMFileReader> readers = new ArrayList<SAMFileReader>();
-        readers.add(builder1.getSamReader());
-        readers.add(builder2.getSamReader());
-        readers.add(builder3.getSamReader());
-
-        final List<SAMFileHeader> headers = new ArrayList<SAMFileHeader>();
-        headers.add(readers.get(0).getFileHeader());
-        headers.add(readers.get(1).getFileHeader());
-        headers.add(readers.get(2).getFileHeader());
-
-        final SamFileHeaderMerger headerMerger = new SamFileHeaderMerger(SAMFileHeader.SortOrder.queryname, headers, false);
-        final List<SAMProgramRecord> outputProgramGroups = headerMerger.getMergedHeader().getProgramRecords();
-        Assert.assertEquals(outputProgramGroups.size(), 2);
-        Assert.assertTrue(outputProgramGroups.get(0).equivalent(program1));
-        Assert.assertTrue(outputProgramGroups.get(1).equivalent(program3));
-
-
-        final MergingSamRecordIterator iterator = new MergingSamRecordIterator(headerMerger, readers, false);
-        SAMRecord samRecord = iterator.next();
-        Assert.assertEquals(samRecord.getAttribute(SAMTag.PG.name()), "0");
-        samRecord = iterator.next();
-        Assert.assertEquals(samRecord.getAttribute(SAMTag.PG.name()), "0");
-        samRecord = iterator.next();
-        Assert.assertEquals(samRecord.getAttribute(SAMTag.PG.name()), "0.1");
-        Assert.assertFalse(iterator.hasNext());
-
-    }
-
-    /**
-     * List of program groups from the input files are merged, and renumbered, and SAMRecords
-     * with PG tags get assigned the updated PG ID.
-     * Original ProgramRecord-specific test.
-     */
-    @Test
-    public void testMergingMultipleReadGroups() {
-        final SAMRecordSetBuilder builder1 = new SAMRecordSetBuilder(false, SAMFileHeader.SortOrder.queryname, false);
-        builder1.setReadGroup(createSAMReadGroupRecord("a0"));
-        builder1.setReadGroup(createSAMReadGroupRecord("a1"));
-        builder1.setReadGroup(createSAMReadGroupRecord("a2"));
-        builder1.addFrag("read1", 20, 28833, false);
-
-        final SAMRecordSetBuilder builder2 = new SAMRecordSetBuilder(false, SAMFileHeader.SortOrder.queryname, false);
-        builder2.setReadGroup(createSAMReadGroupRecord("0"));
-        builder2.setReadGroup(createSAMReadGroupRecord("a1"));      //collision 1
-        builder2.setReadGroup(createSAMReadGroupRecord("a2"));      //collision 2
-        builder2.setReadGroup(createSAMReadGroupRecord("a1.1"));    //doesn't collide
-        builder2.setReadGroup(createSAMReadGroupRecord("a2.1"));    //doesn't collide
-        builder2.setReadGroup(createSAMReadGroupRecord("a2.4.9"));  //doesn't collide
-        builder2.setReadGroup(createSAMReadGroupRecord("a2.4"));    //collision
-        builder2.addFrag("read1", 20, 28833, false);
-
-        final List<SAMFileReader> readers = new ArrayList<SAMFileReader>();
-        readers.add(builder1.getSamReader());
-        readers.add(builder2.getSamReader());
-
-        final List<SAMFileHeader> headers = new ArrayList<SAMFileHeader>();
-        headers.add(readers.get(0).getFileHeader());
-        headers.add(readers.get(1).getFileHeader());
-
-        final SamFileHeaderMerger headerMerger = new SamFileHeaderMerger(SAMFileHeader.SortOrder.queryname, headers, false);
-
-        final List<? extends AbstractSAMHeaderRecord> outputGroups = headerMerger.getMergedHeader().getReadGroups();
-       // "0, a0, a1, a1.1, a1.3, a2, a2.1, a2.6
-        //the merged read groups are sorted in order
-        Assert.assertEquals( ((SAMReadGroupRecord) outputGroups.get(0)).getReadGroupId(), "0"); //0
-        Assert.assertEquals( ((SAMReadGroupRecord) outputGroups.get(1)).getReadGroupId(), "a0"); //1
-        Assert.assertEquals( ((SAMReadGroupRecord) outputGroups.get(2)).getReadGroupId(), "a1"); //2
-        Assert.assertEquals( ((SAMReadGroupRecord) outputGroups.get(3)).getReadGroupId(), "a1.1"); //3
-        Assert.assertEquals( ((SAMReadGroupRecord) outputGroups.get(4)).getReadGroupId(), "a1.2"); //4
-        Assert.assertEquals( ((SAMReadGroupRecord) outputGroups.get(5)).getReadGroupId(), "a2");  //5
-        Assert.assertEquals( ((SAMReadGroupRecord) outputGroups.get(6)).getReadGroupId(), "a2.1");
-        Assert.assertEquals( ((SAMReadGroupRecord) outputGroups.get(7)).getReadGroupId(), "a2.4");
-        Assert.assertEquals( ((SAMReadGroupRecord) outputGroups.get(8)).getReadGroupId(), "a2.4.9");
-        Assert.assertEquals( ((SAMReadGroupRecord) outputGroups.get(9)).getReadGroupId(), "a2.4.A");
-        Assert.assertEquals(outputGroups.size(), 10);
-    }
-
-    private SAMReadGroupRecord createSAMReadGroupRecord(String id) {
-        SAMReadGroupRecord readGroupRecord = new SAMReadGroupRecord(id);
-        readGroupRecord.setAttribute(SAMTag.SM.name(), Double.toString( Math.random() ));
-        return readGroupRecord;
-    }
-
-    /** Captures commonality between ProgramRecord and ReadGroup for having one set of tests */
-    abstract class GroupAdapter {
-
-        /** Gets the group's group ID */
-        abstract String getGroupId(AbstractSAMHeaderRecord group) ;
-
-        /** Gets the groups from header */
-        abstract List<? extends AbstractSAMHeaderRecord> getGroups(SAMFileHeader header) ;
-
-        /** Gets the group's 'name' tag  */
-        abstract String getTagName();
-
-        /** Creates groups for specified IDs */
-        abstract List<? extends AbstractSAMHeaderRecord> createGroups(final String[] groupIds) ;
-
-        /** Sets a group-specific attribute - for CL for ProgramRecord CL, for PU for ReadGroup */
-        abstract void setAttribute(AbstractSAMHeaderRecord group, String value) ;
-
-        /** Creates a new group  */
-        abstract AbstractSAMHeaderRecord newGroup(String groupId) ;
-
-        /** Sets the group for the builder   */
-        abstract void setBuilderGroup(SAMRecordSetBuilder builder, AbstractSAMHeaderRecord group) ;
-
-        /** Attributes equivalent */
-        abstract boolean equivalent(AbstractSAMHeaderRecord group1, AbstractSAMHeaderRecord group2) ;
-
-        SAMFileReader newFileReader() {
-            final SAMRecordSetBuilder builder = new SAMRecordSetBuilder();
-            builder.addFrag("read_28833_29006_6945", 20, 28833, false); // ok
-            return builder.getSamReader();
-        }
-    }
-
-    class ProgramGroupAdapter extends GroupAdapter
-    {
-        String getGroupId(AbstractSAMHeaderRecord group) {
-            return ((SAMProgramRecord)group).getProgramGroupId();
-        }
-
-        List<? extends AbstractSAMHeaderRecord> getGroups(SAMFileHeader header) {
-            return header.getProgramRecords() ;
-        }
-
-        String getTagName() {
-           return SAMTag.PG.toString();
-        }
-
-        List<? extends AbstractSAMHeaderRecord> createGroups(final String[] groupIds) {
-            final List<SAMFileReader> readers = new ArrayList<SAMFileReader>();
-            for (final String groupId : groupIds) {
-                final SAMFileReader samReader = newFileReader();
-                final List<SAMProgramRecord> records = new ArrayList<SAMProgramRecord>();
-                final SAMProgramRecord record = new SAMProgramRecord(groupId);
-                records.add(record);
-                samReader.getFileHeader().setProgramRecords(records);
-                readers.add(samReader);
-            }
-
-            final List<SAMFileHeader> headers = new ArrayList<SAMFileHeader>();
-            for (SAMFileReader reader : readers) {
-                headers.add(reader.getFileHeader());
-            }
-            final SamFileHeaderMerger fileHeaderMerger = new SamFileHeaderMerger(SAMFileHeader.SortOrder.coordinate, headers, false);
-            return fileHeaderMerger.getMergedHeader().getProgramRecords();
-            }
-
-        void setAttribute(AbstractSAMHeaderRecord group, String value) {
-           ((SAMProgramRecord)group).setCommandLine(value);
-        }
-
-        AbstractSAMHeaderRecord newGroup(String id) {
-            return new SAMProgramRecord(id);
-        }
-
-        void setBuilderGroup(SAMRecordSetBuilder builder, AbstractSAMHeaderRecord group) {
-            builder.setProgramRecord((SAMProgramRecord)group);
-        }
-
-        boolean equivalent(AbstractSAMHeaderRecord group1, AbstractSAMHeaderRecord group2) {
-            return ((SAMProgramRecord)group1).equivalent((SAMProgramRecord)group2);
-        }
-    }
-
-    class ReadGroupAdapter extends GroupAdapter
-    {
-        String getGroupId(AbstractSAMHeaderRecord group) {
-            return ((SAMReadGroupRecord)group).getReadGroupId();
-        }
-
-        List<? extends AbstractSAMHeaderRecord> getGroups(SAMFileHeader header) {
-            return header.getReadGroups() ;
-        }
-
-        String getTagName() {
-           return SAMTag.RG.toString();
-        }
-
-        List<? extends AbstractSAMHeaderRecord> createGroups(final String[] groupIds) {
-            final List<SAMFileReader> readers = new ArrayList<SAMFileReader>();
-
-            for (final String groupId : groupIds) {
-                final SAMFileReader samReader = newFileReader();
-                final List<SAMReadGroupRecord> records = new ArrayList<SAMReadGroupRecord>();
-                final SAMReadGroupRecord record = new SAMReadGroupRecord(groupId);
-                records.add(record);
-                samReader.getFileHeader().setReadGroups(records);
-                readers.add(samReader);
-            }
-            final List<SAMFileHeader> headers = new ArrayList<SAMFileHeader>();
-            for (SAMFileReader reader : readers) {
-                headers.add(reader.getFileHeader());
-            }
-
-            final SamFileHeaderMerger fileHeaderMerger = new SamFileHeaderMerger(SAMFileHeader.SortOrder.coordinate, headers, false);
-            return fileHeaderMerger.getMergedHeader().getReadGroups();
-        }
-
-        void setAttribute(AbstractSAMHeaderRecord group, String value) {
-           ((SAMReadGroupRecord)group).setPlatformUnit(value);
-        }
-
-        AbstractSAMHeaderRecord newGroup(String id) {
-            SAMReadGroupRecord group = new SAMReadGroupRecord(id);
-            group.setAttribute(SAMTag.SM.name(), id);
-            return group ;
-        }
-
-        void setBuilderGroup(SAMRecordSetBuilder builder, AbstractSAMHeaderRecord group) {
-            builder.setReadGroup((SAMReadGroupRecord)group);
-        }
-
-        boolean equivalent(AbstractSAMHeaderRecord group1, AbstractSAMHeaderRecord group2) {
-            return ((SAMReadGroupRecord)group1).equivalent((SAMReadGroupRecord)group2);
-        }
-    }
-}
diff --git a/src/tests/java/net/sf/picard/sam/MergingSamRecordIteratorTest.java b/src/tests/java/net/sf/picard/sam/MergingSamRecordIteratorTest.java
deleted file mode 100644
index 367921c..0000000
--- a/src/tests/java/net/sf/picard/sam/MergingSamRecordIteratorTest.java
+++ /dev/null
@@ -1,264 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.sam;
-
-import net.sf.picard.PicardException;
-import net.sf.samtools.*;
-import net.sf.samtools.util.SequenceUtil;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.util.*;
-
-/**
- * Tests for MultiIterator
- *
- * @author Dave Tefft
- */
-public class MergingSamRecordIteratorTest {
-
-    @Test
-    public void testVanillaCoordinateMultiIterator() throws Exception {
-        final SAMRecordSetBuilder builder1 = new SAMRecordSetBuilder();
-        builder1.addFrag("read_28833_29006_6945", 20, 28833, false); // ok
-        builder1.addFrag("read_28701_28881_323b", 22, 28834, false); // ok
-
-        final SAMFileReader samReader = builder1.getSamReader();
-        samReader.getFileHeader().setSortOrder(SAMFileHeader.SortOrder.coordinate);
-
-        final SAMRecordSetBuilder builder2 = new SAMRecordSetBuilder();
-        builder2.addFrag("read_28833_29006_6945", 20, 30000, false); // ok
-        builder2.addFrag("read_28701_28881_323b", 22, 28835, false); // ok
-        builder2.addFrag("read_28701_28881_323c", 22, 28835, false); // ok
-
-        final SAMFileReader samReader2 = builder2.getSamReader();
-        samReader2.getFileHeader().setSortOrder(SAMFileHeader.SortOrder.coordinate);
-
-
-        final List<SAMFileReader> readerList = new ArrayList<SAMFileReader>();
-        readerList.add(samReader);
-        readerList.add(samReader2);
-
-        final List<SAMFileHeader> headerList = new ArrayList<SAMFileHeader>();
-        headerList.add(samReader.getFileHeader());
-        headerList.add(samReader2.getFileHeader());
-
-        final SamFileHeaderMerger fileHeaderMerger = new SamFileHeaderMerger(SAMFileHeader.SortOrder.coordinate, headerList, false);
-
-        final MergingSamRecordIterator iterator = new MergingSamRecordIterator(fileHeaderMerger, readerList, false);
-
-
-        int i = 0;
-
-        // This is the correct order for start bases.  The first two are on chr20, the next three on chr22
-        final int[] startBasesInOrder = {28833, 30000, 28834, 28835, 28835};
-
-        while (iterator.hasNext()) {
-            final SAMRecord rec = iterator.next();
-            System.out.println(rec.format());
-            Assert.assertEquals(rec.getAlignmentStart(), startBasesInOrder[i]);
-            i++;
-        }
-        samReader.close();
-    }
-
-    @Test
-    public void testVanillaReadOrderMultiIterator() throws Exception {
-        final SAMRecordSetBuilder builder1 = new SAMRecordSetBuilder(false, SAMFileHeader.SortOrder.queryname);
-        builder1.addFrag("a", 20, 28833, false); // ok
-        builder1.addFrag("e", 19, 28834, false); // ok
-
-        final SAMFileReader samReader = builder1.getSamReader();
-
-        final SAMRecordSetBuilder builder2 = new SAMRecordSetBuilder(false, SAMFileHeader.SortOrder.queryname);
-        builder2.addFrag("b", 20, 30000, false); // ok
-        builder2.addFrag("c", 22, 28835, false); // ok
-        builder2.addFrag("d", 20, 28835, false); // ok
-
-        final SAMFileReader samReader2 = builder2.getSamReader();
-
-
-        final List<SAMFileReader> readerList = new ArrayList<SAMFileReader>();
-        readerList.add(samReader);
-        readerList.add(samReader2);
-
-        final List<SAMFileHeader> headerList = new ArrayList<SAMFileHeader>();
-        headerList.add(samReader.getFileHeader());
-        headerList.add(samReader2.getFileHeader());
-
-        final SamFileHeaderMerger fileHeaderMerger = new SamFileHeaderMerger(SAMFileHeader.SortOrder.queryname, headerList, false);
-
-        final MergingSamRecordIterator iterator = new MergingSamRecordIterator(fileHeaderMerger, readerList, false);
-
-
-        int i = 0;
-
-        // This is the correct order for start bases.  The first two are on chr20, the next three on chr22
-        final String[] orderedReadNames = {"a", "b", "c", "d", "e"};
-
-        while (iterator.hasNext()) {
-            final SAMRecord rec = iterator.next();
-            System.out.println(rec.getReadName());
-            Assert.assertEquals(rec.getReadName(), orderedReadNames[i]);
-            i++;
-        }
-        samReader.close();
-    }
-
-    @Test
-    public void testVanillaUnsortedMultiIterator() throws Exception {
-        final SAMRecordSetBuilder builder1 = new SAMRecordSetBuilder(false, SAMFileHeader.SortOrder.unsorted);
-        builder1.addFrag("b", 20, 28833, false); // ok
-        builder1.addFrag("a", 19, 28834, false); // ok
-
-        final SAMFileReader samReader = builder1.getSamReader();
-
-        final SAMRecordSetBuilder builder2 = new SAMRecordSetBuilder(false, SAMFileHeader.SortOrder.unsorted);
-        builder2.addFrag("d", 20, 30000, false); // ok
-        builder2.addFrag("e", 22, 28835, false); // ok
-        builder2.addFrag("c", 20, 28835, false); // ok
-
-        final SAMFileReader samReader2 = builder2.getSamReader();
-
-
-        final List<SAMFileReader> readerList = new ArrayList<SAMFileReader>();
-        readerList.add(samReader);
-        readerList.add(samReader2);
-
-        final List<SAMFileHeader> headerList = new ArrayList<SAMFileHeader>();
-        headerList.add(samReader.getFileHeader());
-        headerList.add(samReader2.getFileHeader());
-
-        final SamFileHeaderMerger fileHeaderMerger = new SamFileHeaderMerger(SAMFileHeader.SortOrder.unsorted, headerList, false);
-
-        final MergingSamRecordIterator iterator = new MergingSamRecordIterator(fileHeaderMerger, readerList, false);
-
-
-        int i = 0;
-
-        // With unsorted option there is no garantee that order of the names to come back from the iterator
-        final String[] readNames = {"b", "a", "d", "e", "c"};
-
-        while (iterator.hasNext()) {
-            final SAMRecord rec = iterator.next();
-            System.out.println(rec.getReadName());
-            i++;
-        }
-        Assert.assertEquals(i, readNames.length);
-        samReader.close();
-    }
-
-    @Test(expectedExceptions = SequenceUtil.SequenceListsDifferException.class)
-    public void testConflictingHeaders() throws Exception {
-        final SAMRecordSetBuilder builder1 = new SAMRecordSetBuilder();
-        builder1.addFrag("read_28833_29006_6945", 20, 28833, false); // ok
-        builder1.addFrag("read_28701_28881_323b", 22, 28834, false); // ok
-
-        final SAMFileReader samReader = builder1.getSamReader();
-        samReader.getFileHeader().setSortOrder(SAMFileHeader.SortOrder.coordinate);
-
-        final SAMRecordSetBuilder builder2 = new SAMRecordSetBuilder();
-        builder2.addFrag("read_28833_29006_6945", 20, 30000, false); // ok
-        builder2.addFrag("read_28701_28881_323b", 22, 28835, false); // ok
-        builder2.addFrag("read_28701_28881_323c", 22, 28835, false); // ok
-
-        final SAMFileReader samReader2 = builder2.getSamReader();
-        samReader2.getFileHeader().setSortOrder(SAMFileHeader.SortOrder.coordinate);
-
-        //Change one of the header so they are no longer compatible
-        final SAMSequenceRecord sRec = new SAMSequenceRecord("BADSEQ", 0);
-        samReader2.getFileHeader().addSequence(sRec);
-
-
-        final List<SAMFileReader> readerList = new ArrayList<SAMFileReader>();
-        readerList.add(samReader);
-        readerList.add(samReader2);
-
-        final List<SAMFileHeader> headerList = new ArrayList<SAMFileHeader>();
-        headerList.add(samReader.getFileHeader());
-        headerList.add(samReader2.getFileHeader());
-
-        final SamFileHeaderMerger samFileHeaderMerger = new SamFileHeaderMerger(SAMFileHeader.SortOrder.coordinate, headerList, false);
-
-        new MergingSamRecordIterator(samFileHeaderMerger, readerList, false);
-        Assert.fail("This method should throw exception before getting to this point");
-    }
-
-
-    @Test(expectedExceptions = PicardException.class)
-    public void filesNotSortedCorrectly() throws Exception {
-        final SAMRecordSetBuilder builder1 = new SAMRecordSetBuilder(false, SAMFileHeader.SortOrder.coordinate);
-        builder1.addFrag("read_28833_29006_6945", 20, 28833, false); // ok
-        builder1.addFrag("read_28701_28881_323b", 22, 28834, false); // ok
-
-        final SAMFileReader samReader = builder1.getSamReader();
-
-        final SAMRecordSetBuilder builder2 = new SAMRecordSetBuilder(false, SAMFileHeader.SortOrder.unsorted);
-
-        final SAMFileReader samReader2 = builder2.getSamReader();
-
-        builder2.addFrag("read_28701_28881_323b", 22, 28835, false); // ok
-        builder2.addFrag("read_28833_29006_6945", 20, 30000, false); // ok
-        builder2.addFrag("read_28701_28881_323c", 22, 28835, false); // ok
-
-        final List<SAMFileReader> readerList = new ArrayList<SAMFileReader>();
-        readerList.add(samReader);
-        readerList.add(samReader2);
-
-        final List<SAMFileHeader> headerList = new ArrayList<SAMFileHeader>();
-        headerList.add(samReader.getFileHeader());
-        headerList.add(samReader2.getFileHeader());
-
-        final SamFileHeaderMerger fileHeaderMerger = new SamFileHeaderMerger(SAMFileHeader.SortOrder.coordinate, headerList, false);
-
-        new MergingSamRecordIterator(fileHeaderMerger, readerList, false);
-        Assert.fail("This method should throw exception before getting to this point");
-    }
-
-    @Test
-    public void testHeaderCommentMerge() throws Exception {
-        final String[] comments1 = {"@CO\tHi, Mom!", "@CO\tHi, Dad!"};
-        final String[] comments2 = {"@CO\tHello, World!", "@CO\tGoodbye, Cruel World!"};
-        final Set<String> bothComments = new HashSet<String>();
-        bothComments.addAll(Arrays.asList(comments1));
-        bothComments.addAll(Arrays.asList(comments2));
-        final SAMRecordSetBuilder builder1 = new SAMRecordSetBuilder(false, SAMFileHeader.SortOrder.coordinate);
-        SAMFileHeader header = builder1.getHeader();
-        for (final String comment : comments1) {
-            header.addComment(comment);
-        }
-        final SAMRecordSetBuilder builder2 = new SAMRecordSetBuilder(false, SAMFileHeader.SortOrder.coordinate);
-        header = builder2.getHeader();
-        for (final String comment : comments2) {
-            header.addComment(comment);
-        }
-        final SamFileHeaderMerger merger = new SamFileHeaderMerger(SAMFileHeader.SortOrder.coordinate,
-                Arrays.asList(builder1.getSamReader().getFileHeader(), builder2.getSamReader().getFileHeader()), false);
-        final List<String> mergedComments = merger.getMergedHeader().getComments();
-        Assert.assertEquals(mergedComments.size(), bothComments.size());
-        for (final String comment : mergedComments) {
-            Assert.assertTrue(bothComments.contains(comment));
-        }
-    }
-}
diff --git a/src/tests/java/net/sf/picard/sam/ProgramRecordChainingTest.java b/src/tests/java/net/sf/picard/sam/ProgramRecordChainingTest.java
deleted file mode 100644
index ab3820f..0000000
--- a/src/tests/java/net/sf/picard/sam/ProgramRecordChainingTest.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.sam;
-
-import net.sf.samtools.SAMFileHeader;
-import net.sf.samtools.SAMProgramRecord;
-import net.sf.samtools.SAMUtils;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-/**
- * Test for SequenceUtil.chainProgramRecord
- */
-public class ProgramRecordChainingTest {
-
-    @Test
-    public void testChainProgramRecord() {
-        SAMFileHeader header = new SAMFileHeader();
-        SAMProgramRecord first = header.createProgramRecord();
-        SAMUtils.chainSAMProgramRecord(header, first);
-        Assert.assertEquals(header.getProgramRecords().size(), 1);
-        Assert.assertNull(first.getPreviousProgramGroupId());
-
-        SAMProgramRecord second = header.createProgramRecord();
-        SAMUtils.chainSAMProgramRecord(header, second);
-        Assert.assertEquals(header.getProgramRecords().size(), 2);
-        Assert.assertNull(first.getPreviousProgramGroupId());
-        Assert.assertEquals(second.getPreviousProgramGroupId(), first.getProgramGroupId());
-
-        SAMProgramRecord third = new SAMProgramRecord("3");
-        SAMUtils.chainSAMProgramRecord(header, third);
-        header.addProgramRecord(third);
-        Assert.assertEquals(header.getProgramRecords().size(), 3);
-        Assert.assertNull(first.getPreviousProgramGroupId());
-        Assert.assertEquals(second.getPreviousProgramGroupId(), first.getProgramGroupId());
-        Assert.assertEquals(third.getPreviousProgramGroupId(), second.getProgramGroupId());
-
-    }
-}
diff --git a/src/tests/java/net/sf/picard/sam/RevertSamTest.java b/src/tests/java/net/sf/picard/sam/RevertSamTest.java
deleted file mode 100755
index 6629177..0000000
--- a/src/tests/java/net/sf/picard/sam/RevertSamTest.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.sam;
-
-import net.sf.picard.PicardException;
-import net.sf.samtools.*;
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-/**
- * Created by IntelliJ IDEA.
- * User: ktibbett
- * Date: Jul 20, 2010
- * Time: 10:27:58 AM
- * To change this template use File | Settings | File Templates.
- */
-public class RevertSamTest {
-
-    public static final String basicSamToRevert = "testdata/net/sf/picard/sam/revert_sam_basic.sam";
-    public static final String negativeTestSamToRevert = "testdata/net/sf/picard/sam/revert_sam_negative.sam";
-
-    private static final String revertedQualities  =
-        "11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111";
-
-    private static final String unmappedRead = "both_reads_present_only_first_aligns/2";
-
-    @Test(dataProvider="positiveTestData")
-    public void basicPositiveTests(SAMFileHeader.SortOrder so, boolean removeDuplicates, boolean removeAlignmentInfo,
-                                   boolean restoreOriginalQualities, String sample, String library,
-                                   List<String> attributesToClear) throws Exception {
-
-        File output = File.createTempFile("reverted", ".sam");
-        RevertSam reverter = new RevertSam();
-        String args[] = new String[5 + (so != null ? 1 : 0) + attributesToClear.size() + (sample != null ? 1 : 0) + (library != null ? 1 : 0)];
-        int index = 0;
-        args[index++] = "INPUT=" + basicSamToRevert;
-        args[index++] = "OUTPUT=" + output.getAbsolutePath();
-        if (so != null) {
-            args[index++] = "SORT_ORDER=" + so.name();
-        }
-        args[index++] = "REMOVE_DUPLICATE_INFORMATION=" + removeDuplicates;
-        args[index++] = "REMOVE_ALIGNMENT_INFORMATION=" + removeAlignmentInfo;
-        args[index++] = "RESTORE_ORIGINAL_QUALITIES=" + restoreOriginalQualities;
-        if (sample != null) {
-            args[index++] = "SAMPLE_ALIAS=" + sample;
-        }
-        if (library != null) {
-            args[index++] = "LIBRARY_NAME=" + library;
-        }
-        for (String attr : attributesToClear) {
-            args[index++] = "ATTRIBUTE_TO_CLEAR=" + attr;
-        }
-        reverter.instanceMain(args);
-
-        SAMFileReader reader = new SAMFileReader(output);
-        SAMFileHeader header = reader.getFileHeader();
-        Assert.assertEquals(header.getSortOrder(), SAMFileHeader.SortOrder.queryname);
-        Assert.assertEquals(header.getProgramRecords().size(), removeAlignmentInfo ? 0 : 1);
-        for (SAMReadGroupRecord rg : header.getReadGroups()) {
-            if (sample != null) {
-                Assert.assertEquals(rg.getSample(), sample);
-            }
-            else {
-                Assert.assertEquals(rg.getSample(), "Hi,Mom!");
-            }
-            if (library != null) {
-                Assert.assertEquals(rg.getLibrary(), library);
-            }
-            else {
-                Assert.assertEquals(rg.getLibrary(), "my-library");
-            }
-        }
-        SAMRecordIterator it = reader.iterator();
-        while (it.hasNext()) {
-            SAMRecord rec = it.next();
-
-            if (removeDuplicates) {
-                Assert.assertFalse(rec.getDuplicateReadFlag(),
-                    "Duplicates should have been removed: " + rec.getReadName());
-            }
-
-            if (removeAlignmentInfo) {
-                Assert.assertTrue(rec.getReadUnmappedFlag(),
-                     "Alignment info should have been removed: " + rec.getReadName());
-            }
-
-            if (restoreOriginalQualities && !unmappedRead.equals(
-                    rec.getReadName() + "/" + (rec.getFirstOfPairFlag() ? "1" : "2"))) {
-
-                Assert.assertEquals(rec.getBaseQualityString(), revertedQualities);
-            }
-            else {
-                Assert.assertNotSame(rec.getBaseQualityString(), revertedQualities);
-            }
-
-            for (SAMRecord.SAMTagAndValue attr : rec.getAttributes()) {
-                if (removeAlignmentInfo || (!attr.tag.equals("PG") && !attr.tag.equals("NM")
-                    && !attr.tag.equals("MQ"))) {
-                    Assert.assertFalse(reverter.ATTRIBUTE_TO_CLEAR.contains(attr.tag),
-                            attr.tag + " should have been cleared.");
-                }
-            }
-        }
-    }
-
-
-    @DataProvider(name="positiveTestData")
-    public Object[][] getPostitiveTestData() {
-        return new Object[][] {
-                {null, true, true, true, null, null, Collections.EMPTY_LIST},
-                {SAMFileHeader.SortOrder.queryname, true, true, true, "Hey,Dad!", null, Arrays.asList("XT")},
-                {null, false, true, false, "Hey,Dad!", "NewLibraryName", Arrays.asList("XT")},
-                {null, false, false, false, null, null, Collections.EMPTY_LIST}
-        };
-    }
-
-
-    @Test(dataProvider="negativeTestData", expectedExceptions = {PicardException.class})
-    public void basicNegativeTest(String sample, String library) throws Exception {
-
-        File output = File.createTempFile("bad", ".sam");
-        RevertSam reverter = new RevertSam();
-        String args[] = new String[2 + (sample != null ? 1 : 0) + (library != null ? 1 : 0)];
-        int index = 0;
-        args[index++] = "INPUT=" + negativeTestSamToRevert;
-        args[index++] = "OUTPUT=" + output.getAbsolutePath();
-        if (sample != null) {
-            args[index++] = "SAMPLE_ALIAS=" + sample;
-        }
-        if (library != null) {
-            args[index++] = "LIBRARY_NAME=" + library;
-        }
-        reverter.instanceMain(args);
-        Assert.fail("Negative test should have thrown an exception and didn't");
-    }
-
-    @DataProvider(name="negativeTestData")
-    public Object[][] getNegativeTestData() {
-        return new Object[][] {
-                {"NewSample", null},
-                {null, "NewLibrary"},
-                {"NewSample", "NewLibrary"}
-        };
-    }
-}
diff --git a/src/tests/java/net/sf/picard/sam/SamFileHeaderMergerTest.java b/src/tests/java/net/sf/picard/sam/SamFileHeaderMergerTest.java
deleted file mode 100644
index 7ce9f7e..0000000
--- a/src/tests/java/net/sf/picard/sam/SamFileHeaderMergerTest.java
+++ /dev/null
@@ -1,256 +0,0 @@
-/**
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- **/
-
-
-package net.sf.picard.sam;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.BufferedReader;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-import java.util.*;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.io.IoUtil;
-import net.sf.samtools.SAMFileHeader;
-import net.sf.samtools.SAMFileReader;
-import net.sf.samtools.SAMFileWriter;
-import net.sf.samtools.SAMFileWriterFactory;
-import net.sf.samtools.SAMRecord;
-import net.sf.samtools.SAMSequenceRecord;
-import net.sf.samtools.util.SequenceUtil;
-import net.sf.samtools.util.StringUtil;
-
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-
-/**
- * @author aaron
- * @version 1.0
- * @date May 20, 2009
- * <p/>
- * Class SamFileHeaderMergerTest
- * <p/>
- * Tests the ability of the SamFileHeaderMerger class to merge sequence dictionaries.
- */
-public class SamFileHeaderMergerTest {
-
-    private static File TEST_DATA_DIR = new File("testdata/net/sf/picard/sam");
-
-    /** tests that if we've set the merging to false, we get a PicardException for bam's with different dictionaries. */
-    @Test(expectedExceptions = SequenceUtil.SequenceListsDifferException.class)
-    public void testMergedException() {
-        File INPUT[] = {new File(TEST_DATA_DIR, "Chromosome1to10.bam"),
-                        new File(TEST_DATA_DIR, "Chromosome5to9.bam")};
-        final List<SAMFileHeader> headers = new ArrayList<SAMFileHeader>();
-        for (final File inFile : INPUT) {
-            IoUtil.assertFileIsReadable(inFile);
-            final SAMFileReader in = new SAMFileReader(inFile);
-            headers.add(in.getFileHeader());
-        }
-        new SamFileHeaderMerger(SAMFileHeader.SortOrder.unsorted, headers, false);
-    }
-
-    /** Tests that we can successfully merge two files with */
-    @Test
-    public void testMerging() {
-        File INPUT[] = {new File(TEST_DATA_DIR, "Chromosome1to10.bam"),
-                        new File(TEST_DATA_DIR, "Chromosome5to9.bam")};
-        final List<SAMFileReader> readers = new ArrayList<SAMFileReader>();
-        final List<SAMFileHeader> headers = new ArrayList<SAMFileHeader>();
-        for (final File inFile : INPUT) {
-            IoUtil.assertFileIsReadable(inFile);
-            final SAMFileReader in = new SAMFileReader(inFile);
-            // We are now checking for zero-length reads, so suppress complaint about that.
-            in.setValidationStringency(SAMFileReader.ValidationStringency.SILENT);
-            readers.add(in);
-            headers.add(in.getFileHeader());
-        }
-        final MergingSamRecordIterator iterator;
-        final SamFileHeaderMerger headerMerger = new SamFileHeaderMerger(SAMFileHeader.SortOrder.unsorted, headers, true);
-        iterator = new MergingSamRecordIterator(headerMerger, readers, false);
-        headerMerger.getMergedHeader();
-
-        // count the total reads, and record read counts for each sequence
-        Map<Integer, Integer> seqCounts = new HashMap<Integer, Integer>();
-        int totalCount = 0;
-
-        while (iterator.hasNext()) {
-            SAMRecord r = iterator.next();
-            if (seqCounts.containsKey(r.getReferenceIndex())) {
-                seqCounts.put(r.getReferenceIndex(), seqCounts.get(r.getReferenceIndex()) + 1);
-            } else {
-                seqCounts.put(r.getReferenceIndex(), 1);
-            }
-            ++totalCount;
-        }
-        assertEquals(totalCount, 1500);
-        for (Integer i : seqCounts.keySet()) {
-            if (i < 4 || i > 8) {
-                // seqeunce 5 - 9 should have 200 reads (indices 4 - 8)
-                assertEquals(seqCounts.get(i).intValue(), 100);
-            } else {
-                // the others should have 100
-                assertEquals(seqCounts.get(i).intValue(), 200);
-            }
-        }
-    }
-
-    private static final String sq1 = "@SQ\tSN:chr1\tLN:1000\n";
-    private static final String sq2 = "@SQ\tSN:chr2\tLN:1000\n";
-    private static final String sq3 = "@SQ\tSN:chr3\tLN:1000\n";
-    private static final String sq4 = "@SQ\tSN:chr4\tLN:1000\n";
-    private static final String sq5 = "@SQ\tSN:chr5\tLN:1000\n";
-
-    @Test
-    public void testSequenceDictionaryMerge() {
-        final String sd1 = sq1 + sq2 + sq5;
-        final String sd2 = sq2 + sq3 + sq4;
-        SAMFileReader reader1 = new SAMFileReader(new ByteArrayInputStream(StringUtil.stringToBytes(sd1)));
-        SAMFileReader reader2 = new SAMFileReader(new ByteArrayInputStream(StringUtil.stringToBytes(sd2)));
-        final List<SAMFileHeader> inputHeaders = Arrays.asList(reader1.getFileHeader(), reader2.getFileHeader());
-        SamFileHeaderMerger merger = new SamFileHeaderMerger(SAMFileHeader.SortOrder.coordinate, inputHeaders, true);
-        final SAMFileHeader mergedHeader = merger.getMergedHeader();
-        for (final SAMFileHeader inputHeader : inputHeaders) {
-            int prevTargetIndex = -1;
-            for (final SAMSequenceRecord sequenceRecord : inputHeader.getSequenceDictionary().getSequences()) {
-                final int targetIndex = mergedHeader.getSequenceIndex(sequenceRecord.getSequenceName());
-                Assert.assertNotSame(targetIndex, -1);
-                Assert.assertTrue(prevTargetIndex < targetIndex);
-                prevTargetIndex = targetIndex;
-            }
-        }
-    }
-
-    @Test(dataProvider="data")
-    public void testProgramGroupAndReadGroupMerge(File inputFiles[], File expectedOutputFile) throws IOException {
-
-        BufferedReader reader = new BufferedReader( new FileReader(expectedOutputFile) );
-
-        String line;
-        String expected_output = "";
-        while((line = reader.readLine()) != null) {
-            expected_output += line + "\n";
-        }
-
-        final List<SAMFileReader> readers = new ArrayList<SAMFileReader>();
-        final List<SAMFileHeader> headers = new ArrayList<SAMFileHeader>();
-        for (final File inFile : inputFiles) {
-            IoUtil.assertFileIsReadable(inFile);
-            final SAMFileReader in = new SAMFileReader(inFile);
-            // We are now checking for zero-length reads, so suppress complaint about that.
-            in.setValidationStringency(SAMFileReader.ValidationStringency.SILENT);
-            readers.add(in);
-            headers.add(in.getFileHeader());
-        }
-        final MergingSamRecordIterator iterator;
-
-        final SamFileHeaderMerger headerMerger = new SamFileHeaderMerger(SAMFileHeader.SortOrder.coordinate, headers,true);
-        iterator = new MergingSamRecordIterator(headerMerger, readers, false);
-
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        SAMFileWriter writer = new SAMFileWriterFactory().makeSAMWriter(headerMerger.getMergedHeader(), true, baos);
-        while (iterator.hasNext()) {
-            writer.addAlignment(iterator.next());
-        }
-        writer.close();
-
-        String actual_output = StringUtil.bytesToString(baos.toByteArray());
-
-        List<String> actual = Arrays.asList(actual_output.split("\\n"));
-        List<String> expected = Arrays.asList(expected_output.split("\\n"));
-        for (int i = 0; i < expected.size(); i++) {
-            if (expected.get(i).startsWith("@")) {
-                Assert.assertEquals(actual.get(i), expected.get(i));
-            }
-            else
-            {
-                List<String> expectedSamParts = Arrays.asList(expected.get(i).split("\\s*"));
-                List<String> actualSamParts = Arrays.asList(actual.get(i).split("\\s*"));
-                for (String exp : expectedSamParts) {
-                    Assert.assertTrue(actualSamParts.contains(exp));
-                }
-                for (String act : actualSamParts) {
-                    Assert.assertTrue(expectedSamParts.contains(act));
-                }
-            }
-        }
-    }
-
-    @DataProvider(name="data")
-    private Object[][] getProgramGroupAndReadGroupMergeData() {
-
-        return new Object[][] {
-            {
-
-            new File[] {
-                    new File(TEST_DATA_DIR, "MergeSamFiles/case1/chr11sub_file1.sam"),
-                    new File(TEST_DATA_DIR, "MergeSamFiles/case1/chr11sub_file2.sam") },
-            new File(TEST_DATA_DIR, "MergeSamFiles/case1/expected_output.sam")
-            }, {
-                new File[] {
-                        new File(TEST_DATA_DIR, "MergeSamFiles/case2/chr11sub_file1.sam"),
-                        new File(TEST_DATA_DIR, "MergeSamFiles/case2/chr11sub_file2.sam"),
-                        new File(TEST_DATA_DIR, "MergeSamFiles/case2/chr11sub_file3.sam"),
-                        new File(TEST_DATA_DIR, "MergeSamFiles/case2/chr11sub_file4.sam") },
-                new File(TEST_DATA_DIR, "MergeSamFiles/case2/expected_output.sam")
-            }
-        };
-    }
-
-
-    @Test(expectedExceptions = {PicardException.class})
-    public void testUnmergeableSequenceDictionary() {
-        final String sd1 = sq1 + sq2 + sq5;
-        final String sd2 = sq2 + sq3 + sq4 + sq1;
-        SAMFileReader reader1 = new SAMFileReader(new ByteArrayInputStream(StringUtil.stringToBytes(sd1)));
-        SAMFileReader reader2 = new SAMFileReader(new ByteArrayInputStream(StringUtil.stringToBytes(sd2)));
-        final List<SAMFileHeader> inputHeaders = Arrays.asList(reader1.getFileHeader(), reader2.getFileHeader());
-        new SamFileHeaderMerger(SAMFileHeader.SortOrder.coordinate, inputHeaders, true);
-    }
-
-    @DataProvider(name="fourDigitBase36StrPositiveData")
-    public Object[][] positiveFourDigitBase36StrData() {
-        return new Object[][] {
-            {0, "0"},
-            {15, "F"},
-            {36, "10"},
-            {1200000, "PPXC"},
-            {36*36*36*36 - 2, "ZZZY"},
-            {36*36*36*36 - 1, "ZZZZ"},
-        };
-    }
-
-    @Test(dataProvider = "fourDigitBase36StrPositiveData")
-    public void fourDigitBase36StrPositiveTest(final int toConvert, final String expectedValue) {
-        final SamFileHeaderMerger headerMerger = new SamFileHeaderMerger(SAMFileHeader.SortOrder.coordinate, new ArrayList<SAMFileHeader>(),true);
-        Assert.assertEquals(expectedValue, headerMerger.positiveFourDigitBase36Str(toConvert));
-    }
-}
\ No newline at end of file
diff --git a/src/tests/java/net/sf/picard/sam/SamToFastqTest.java b/src/tests/java/net/sf/picard/sam/SamToFastqTest.java
deleted file mode 100644
index 7f052ed..0000000
--- a/src/tests/java/net/sf/picard/sam/SamToFastqTest.java
+++ /dev/null
@@ -1,428 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.sam;
-
-import net.sf.picard.PicardException;
-
-import net.sf.picard.cmdline.Option;
-import net.sf.picard.fastq.FastqReader;
-import net.sf.picard.fastq.FastqRecord;
-import net.sf.picard.io.IoUtil;
-import net.sf.samtools.SAMFileReader;
-import net.sf.samtools.SAMFormatException;
-import net.sf.samtools.SAMRecord;
-import net.sf.samtools.util.IOUtil;
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.*;
-
-/**
- * Tests for SamToFastq
- */
-public class SamToFastqTest {
-    private static final File TEST_DATA_DIR = new File("testdata/net/sf/picard/sam/bam2fastq/paired");
-    private static final String CLIPPING_TEST_DATA = "ok/clipping_test.sam";
-
-    @DataProvider(name = "okFiles")
-    public Object[][] okFiles() {
-        return new Object[][] {
-                {"ok/sorted-pair.sam"}, // 5 sorted pairs (10 records) - mate1, mate2
-                {"ok/sorted-pair-no-rg.sam"}, // 5 sorted pairs (10 records) - mate1, mate2, no read group
-                {"ok/last-pair-mates-flipped.sam" }, // 4 pairs, :05 mate2, mate1
-                {"ok/first-mate-bof-last-mate-eof.sam"}, // :01 mate1, 4 pairs, :01 mate2
-        };
-    }
-
-
-    @DataProvider(name = "badFiles")
-    public Object[][] badFiles() {
-        return new Object[][] {
-            {"bad/unpaired-mate.sam"} // mate1 without its mate2
-        };
-    }
-
-    private void convertFile(String [] args) {
-        SamToFastq samToFq = new SamToFastq();
-        Assert.assertEquals(samToFq.instanceMain(args),0);
-    }
-
-    @Test(dataProvider = "clippingTests")
-    public void testClipping(String clippingAction, String bases1_1, String quals1_1, String bases1_2, String quals1_2,
-                             String bases2_1, String quals2_1, String bases2_2, String quals2_2, String testName) throws IOException {
-        final File samFile = new File(TEST_DATA_DIR, CLIPPING_TEST_DATA) ;
-        final File f1 = File.createTempFile("clippingtest1", "fastq");
-        final File f2 = File.createTempFile("clippingtest2", "fastq");
-        f1.deleteOnExit();
-        f2.deleteOnExit();
-
-        if (clippingAction != null) {
-            convertFile(new String[]{
-                "INPUT="            + samFile.getAbsolutePath(),
-                "FASTQ="            + f1.getAbsolutePath(),
-                "SECOND_END_FASTQ=" + f2.getAbsolutePath(),
-                "CLIPPING_ACTION="  + clippingAction,
-                "CLIPPING_ATTRIBUTE=" + "XT"
-            });
-        } else {
-            convertFile(new String[]{
-                "INPUT="            + samFile.getAbsolutePath(),
-                "FASTQ="            + f1.getAbsolutePath(),
-                "SECOND_END_FASTQ=" + f2.getAbsolutePath(),
-            });
-        }
-
-        Iterator<FastqRecord> it = new FastqReader(f1).iterator();
-        FastqRecord first = it.next();
-        Assert.assertEquals(first.getReadString(), bases1_1, testName);
-        Assert.assertEquals(first.getBaseQualityString(), quals1_1, testName);
-        FastqRecord second = it.next();
-        Assert.assertEquals(second.getReadString(), bases1_2, testName);
-        Assert.assertEquals(second.getBaseQualityString(), quals1_2, testName);
-        it = new FastqReader(f2).iterator();
-        first = it.next();
-        Assert.assertEquals(first.getReadString(), bases2_1, testName);
-        Assert.assertEquals(first.getBaseQualityString(), quals2_1, testName);
-        second = it.next();
-        Assert.assertEquals(second.getReadString(), bases2_2, testName);
-        Assert.assertEquals(second.getBaseQualityString(), quals2_2, testName);
-    }
-
-    @DataProvider(name = "clippingTests")
-    public Object[][] clippingTests() {
-        return new Object[][] {
-            {null, "AAAAAAAAAA", "1111111111", "AAAAAAAAAA", "1111111111", "CCCCCCCCCC", "2222222222", "GGGGGGGGGG", "2222222222", "No clipping test"},
-            {"X",  "AAAAAAA",    "1111111",    "AAAAAA",     "111111",     "CCCCCCCC",   "22222222",   "GGGGGG",     "222222",     "Cut clipped bases test"},
-            {"N",  "AAAAAAANNN", "1111111111", "AAAAAANNNN", "1111111111", "CCCCCCCCNN", "2222222222", "GGGGGGNNNN", "2222222222", "Mask clipped bases test"},
-            {"2",  "AAAAAAAAAA", "1111111###", "AAAAAAAAAA", "111111####", "CCCCCCCCCC", "22222222##", "GGGGGGGGGG", "222222####", "Change clipped qualities test"}
-        };
-    }
-
-    @Test(dataProvider = "okFiles")
-    public void testOkFile(final String samFilename) throws IOException {
-        final File samFile = new File(TEST_DATA_DIR,samFilename);
-        final File pair1File = newTempFastqFile("pair1");
-        final File pair2File = newTempFastqFile("pair2");
-
-        convertFile(new String[]{
-              "INPUT=" + samFile.getAbsolutePath(),
-              "FASTQ=" + pair1File.getAbsolutePath(),
-              "SECOND_END_FASTQ=" + pair2File.getAbsolutePath()
-        });
-
-        // Check that paired fastq files are same size
-        final Set<String> outputHeaderSet1 = createFastqReadHeaderSet(pair1File);
-        final Set<String> outputHeaderSet2 = createFastqReadHeaderSet(pair2File);
-        Assert.assertEquals(outputHeaderSet1.size(), outputHeaderSet2.size());
-
-        // Create map of mate pairs from SAM records
-        final Map<String,MatePair> map = createSamMatePairsMap(samFile) ;
-        Assert.assertEquals(map.size(), outputHeaderSet2.size());
-
-        // Ensure that each mate of each pair in SAM file is in the correct fastq pair file
-        for (final Map.Entry<String,MatePair> entry : map.entrySet() ) {
-            final MatePair mpair = entry.getValue();
-            Assert.assertNotNull(mpair.mate1); // ensure we have two mates
-            Assert.assertNotNull(mpair.mate2);
-            Assert.assertEquals(mpair.mate1.getReadName(),mpair.mate2.getReadName());
-            final String readName = mpair.mate1.getReadName() ;
-            Assert.assertTrue(outputHeaderSet1.contains(readName+"/1")); // ensure mate is in correct file
-            Assert.assertTrue(outputHeaderSet2.contains(readName+"/2"));
-        }
-    }
-
-    @Test(dataProvider =  "okFiles")
-    public void testOkInterleavedFile(final String samFilename) throws IOException {
-        final File samFile = new File(TEST_DATA_DIR,samFilename);
-        final File pairFile = newTempFastqFile("pair");
-
-        convertFile(new String[]{
-                "INPUT=" + samFile.getAbsolutePath(),
-                "FASTQ=" + pairFile.getAbsolutePath(),
-                "INTERLEAVE=true"
-        });
-
-        final Set<String> outputHeaderSet = createFastqReadHeaderSet(pairFile);
-        // Create map of mate pairs from SAM records
-        final Map<String,MatePair> map = createSamMatePairsMap(samFile) ;
-        Assert.assertEquals(map.size() * 2, outputHeaderSet.size());
-
-        // Ensure that each mate of each pair in SAM file is in the correct fastq pair file
-        for (final Map.Entry<String,MatePair> entry : map.entrySet() ) {
-            final MatePair mpair = entry.getValue();
-            Assert.assertNotNull(mpair.mate1); // ensure we have two mates
-            Assert.assertNotNull(mpair.mate2);
-            Assert.assertEquals(mpair.mate1.getReadName(),mpair.mate2.getReadName());
-            final String readName = mpair.mate1.getReadName() ;
-            Assert.assertTrue(outputHeaderSet.contains(readName+"/1")); // ensure mate is in correct file
-            Assert.assertTrue(outputHeaderSet.contains(readName+"/2"));
-        }
-    }
-
-
-    @Test (dataProvider = "badFiles", expectedExceptions= SAMFormatException.class)
-    public void testBadFile(final String samFilename) throws IOException {
-        final File samFile = new File(TEST_DATA_DIR,samFilename);
-        final File pair1 = File.createTempFile("tt-pair1.", ".fastq");
-        final File pair2 = File.createTempFile("tt-pair2.", ".fastq");
-        pair1.deleteOnExit();
-        pair2.deleteOnExit();
-        convertFile(new String[]{
-              "INPUT=" + samFile.getAbsolutePath(),
-              "FASTQ=" + pair1.getAbsolutePath(),
-              "SECOND_END_FASTQ=" + pair2.getAbsolutePath()
-        });
-    }
-
-    @DataProvider(name = "okGroupedFiles")
-    public Object[][] okGroupedFiles() {
-        return new Object[][] {
-            {"ok/grouped-last-pair-mates-flipped.sam", null,  null,  new String[]{"rg1","rg2"}},
-        };
-    }
-
-
-    @DataProvider(name = "badGroupedFiles")
-    public Object[][] badGroupedFiles() {
-        return new Object[][] {
-            {"bad/grouped-unpaired-mate.sam", null,  null,  new String[]{"rg1.fastq","rg2.fastq"}}
-        };
-    }
-
-    @Test(dataProvider = "okGroupedFiles")
-    public void testOkGroupedFiles(final String samFilename, final String fastq, final String secondEndFastq,
-                                   final String [] groupFiles) throws IOException {
-        final File samFile = new File(TEST_DATA_DIR,samFilename);
-        final Map<String, Set<String>> outputSets = new HashMap<String, Set<String>>(groupFiles.length);
-
-        SamToFastq samToFq = new SamToFastq();
-        String tmpDir = IOUtil.getDefaultTmpDir().getAbsolutePath() + "/";
-        String [] args = new String[]{
-              "INPUT=" + samFile.getAbsolutePath(),
-              "OUTPUT_PER_RG=true",
-              "OUTPUT_DIR=" + tmpDir,
-        };
-        samToFq.instanceMain(args);
-
-        File f1;
-        File f2;
-        String fname1;
-        String fname2;
-        String keyName1;
-        String keyName2;
-        Set<String> outputHeaderSet1;
-        Set<String> outputHeaderSet2;
-        for(final String groupPUName : groupFiles)
-        {
-            keyName1 = groupPUName + "_1";
-            keyName2 = groupPUName + "_2";
-            fname1 = tmpDir + "/" + keyName1 + ".fastq";
-            fname2 = tmpDir + "/" + keyName2 + ".fastq";
-            f1 = new File(fname1);
-            f2 = new File(fname2);
-            f1.deleteOnExit();
-            f2.deleteOnExit();
-            IoUtil.assertFileIsReadable(f1);
-            IoUtil.assertFileIsReadable(f2);
-
-            // Check that paired fastq files are same size and store them for later comparison
-            outputHeaderSet1 = createFastqReadHeaderSet(f1);
-            outputHeaderSet2 = createFastqReadHeaderSet(f2);
-            outputSets.put(keyName1 , outputHeaderSet1);
-            outputSets.put(keyName2, outputHeaderSet2);
-            Assert.assertEquals(outputHeaderSet1.size(), outputHeaderSet2.size());
-        }
-
-        // Create map of read groups and mate pairs from SAM records
-        final Map<String, Map<String,MatePair>> map = createPUPairsMap(samFile);
-
-        for(final Map.Entry<String, Map<String, MatePair>> groupEntry : map.entrySet()) {
-            // Ensure that for each group, each mate of each pair in the SAM file is in the correct fastq pair file
-            for (final Map.Entry<String,MatePair> entry : groupEntry.getValue().entrySet() ) {
-                final MatePair mpair = entry.getValue();
-                outputHeaderSet1 = outputSets.get(groupEntry.getKey() + "_1");
-                outputHeaderSet2 = outputSets.get(groupEntry.getKey() + "_2");
-
-                Assert.assertNotNull(mpair.mate1); // ensure we have two mates
-                Assert.assertNotNull(mpair.mate2);
-                Assert.assertEquals(mpair.mate1.getReadName(),mpair.mate2.getReadName());
-                final String readName = mpair.mate1.getReadName() ;
-                Assert.assertTrue(outputHeaderSet1.contains(readName+"/1")); // ensure mate is in correct file
-                Assert.assertTrue(outputHeaderSet2.contains(readName+"/2"));
-            }
-        }
-    }
-
-
-    @Test (dataProvider = "badGroupedFiles", expectedExceptions= PicardException.class)
-    public void testBadGroupedFile(final String samFilename, final String fastq, final String secondEndFastq,
-                                   final String [] groupFiles) throws IOException {
-        final File samFile = new File(TEST_DATA_DIR,samFilename);
-        SamToFastq samToFq = new SamToFastq();
-        final String tmpDir = samToFq.TMP_DIR + "/";
-        final String [] args = new String[]{
-              "INPUT=" + samFile.getAbsolutePath(),
-              "OUTPUT_PER_RG=true",
-              "OUTPUT_DIR=" + tmpDir,
-        };
-        samToFq.instanceMain(args);
-
-        File f1;
-        File f2;
-        String fname1;
-        String fname2;
-        for(final String groupPUName : groupFiles)
-        {
-            fname1 = tmpDir + groupPUName + "_1.fastq";
-            fname2 = tmpDir + groupPUName + "_2.fastq";
-            f1 = new File(fname1);
-            f2 = new File(fname2);
-            f1.deleteOnExit();
-            f1.deleteOnExit();
-        }
-    }
-
-    @Test(dataProvider = "trimmedData")
-    public void testTrimming(final String samFilename, final int read1Trim,
-                             final int read1MaxBases, final int expectedRead1Length, final int read2Trim,
-                             final int read2MaxBases, final int expectedRead2Length) throws IOException {
-
-        final File samFile = new File(TEST_DATA_DIR, samFilename);
-        final File pair1File = newTempFastqFile("pair1");
-        final File pair2File = newTempFastqFile("pair2");
-        pair1File.deleteOnExit();
-        pair2File.deleteOnExit();
-
-        convertFile(new String[]{
-              "INPUT=" + samFile.getAbsolutePath(),
-              "FASTQ=" + pair1File.getAbsolutePath(),
-              "SECOND_END_FASTQ=" + pair2File.getAbsolutePath(),
-              "READ1_TRIM=" + read1Trim,
-              "READ1_MAX_BASES_TO_WRITE=" + read1MaxBases,
-              "READ2_TRIM=" + read2Trim,
-              "READ2_MAX_BASES_TO_WRITE=" + read2MaxBases
-        });
-
-        for (Iterator<FastqRecord> it = new FastqReader(pair1File).iterator(); it.hasNext();) {
-            FastqRecord first = it.next();
-            Assert.assertEquals(first.getReadString().length(), expectedRead1Length, "Incorrect read length");
-            Assert.assertEquals(first.getBaseQualityString().length(), expectedRead1Length, "Incorrect quality string length");
-        }
-        for (Iterator<FastqRecord> it = new FastqReader(pair2File).iterator(); it.hasNext();) {
-            FastqRecord second = it.next();
-            Assert.assertEquals(second.getReadString().length(), expectedRead2Length, "Incorrect read length");
-            Assert.assertEquals(second.getBaseQualityString().length(), expectedRead2Length, "Incorrect quality string length");
-        }
-    }
-
-    @DataProvider(name = "trimmedData")
-    public Object[][] trimmedData() {
-        return new Object[][] {
-            // There are 13 bases in each of these reads
-            {"ok/sorted-pair.sam", 6, 7, 7, 5, 8, 8}, // exact matches for everything
-            {"ok/sorted-pair.sam", 7, 7, 6, 3, 8, 8}  // fewer or more bases
-        };
-    }
-
-    private Set<String> createFastqReadHeaderSet(final File file) {
-        final Set<String> set = new HashSet<String>();
-        final FastqReader freader = new FastqReader(file);
-        while (freader.hasNext()) {
-            final FastqRecord frec = freader.next();
-            set.add(frec.getReadHeader());
-        }
-        return set ;
-    }
-
-    private Map<String,MatePair> createSamMatePairsMap(final File samFile) throws IOException {
-        IoUtil.assertFileIsReadable(samFile);
-        final SAMFileReader reader = new SAMFileReader(IoUtil.openFileForReading(samFile));
-
-        final Map<String,MatePair> map = new LinkedHashMap<String,MatePair>();
-        for (final SAMRecord record : reader ) {
-            MatePair mpair = map.get(record.getReadName());
-            if (mpair == null) {
-                 mpair = new MatePair();
-                 map.put(record.getReadName(), mpair);
-            }
-            mpair.add(record);
-        }
-        reader.close();
-        return map;
-    }
-
-
-    private Map<String, Map<String, MatePair>> createPUPairsMap(final File samFile) throws IOException {
-        IoUtil.assertFileIsReadable(samFile);
-        final SAMFileReader reader = new SAMFileReader(IoUtil.openFileForReading(samFile));
-        final Map<String, Map<String, MatePair>> map = new LinkedHashMap<String, Map<String,MatePair>>();
-
-        Map<String,MatePair> curFileMap;
-        for (final SAMRecord record : reader ) {
-            String platformUnit = record.getReadGroup().getPlatformUnit();
-            curFileMap = map.get(platformUnit);
-            if(curFileMap == null)
-            {
-                curFileMap = new LinkedHashMap<String, MatePair>();
-                map.put(platformUnit, curFileMap);
-            }
-
-            MatePair mpair = curFileMap.get(record.getReadName());
-            if (mpair == null) {
-                 mpair = new MatePair();
-                 curFileMap.put(record.getReadName(), mpair);
-            }
-            mpair.add(record);
-        }
-        reader.close();
-        return map;
-    }
-
-    class MatePair {
-        SAMRecord mate1 ;
-        SAMRecord mate2 ;
-        void add(final SAMRecord record) {
-            if (!record.getReadPairedFlag()) throw new PicardException("Record "+record.getReadName()+" is not paired");
-            if (record.getFirstOfPairFlag()) { 
-                if (mate1 != null) throw new PicardException("Mate 1 already set for record: "+record.getReadName());
-                mate1 = record ;
-            }
-            else if (record.getSecondOfPairFlag()) { 
-                if (mate2 != null) throw new PicardException("Mate 2 already set for record: "+record.getReadName());
-                mate2 = record ;
-            }
-            else throw new PicardException("Neither FirstOfPairFlag or SecondOfPairFlag is set for a paired record");
-        }
-    }
-
-    private File newTempFastqFile(final String filename) throws IOException {
-        if(filename == null) return null;
-        final File file = File.createTempFile(filename,".fastq");
-        file.deleteOnExit();
-        return file; 
-    }
-}
diff --git a/src/tests/java/net/sf/picard/sam/SequenceNameTruncationAndValidationTest.java b/src/tests/java/net/sf/picard/sam/SequenceNameTruncationAndValidationTest.java
deleted file mode 100644
index d4f0a69..0000000
--- a/src/tests/java/net/sf/picard/sam/SequenceNameTruncationAndValidationTest.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.sam;
-
-import net.sf.samtools.*;
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.File;
-
-/**
- * Test new functionality that truncates sequence names at first whitespace in order to deal
- * with older BAMs that had spaces in sequence names.
- * 
- * @author alecw at broadinstitute.org
- */
-public class SequenceNameTruncationAndValidationTest {
-    private static File TEST_DATA_DIR = new File("testdata/net/sf/picard/sam");
-    @Test(expectedExceptions = {SAMException.class}, dataProvider = "badSequenceNames")
-    public void testSequenceRecordThrowsWhenInvalid(final String sequenceName) {
-        new SAMSequenceRecord(sequenceName, 123);
-        Assert.fail("Should not reach here.");
-    }
-    @DataProvider(name="badSequenceNames")
-    public Object[][] badSequenceNames() {
-        return new Object[][] {
-                {" "},
-                {"\t"},
-                {"\n"},
-                {"="},
-                {"Hi, Mom!"}
-        };
-    }
-
-    @Test(dataProvider = "goodSequenceNames")
-    public void testSequenceRecordPositiveTest(final String sequenceName) {
-        new SAMSequenceRecord(sequenceName, 123);
-    }
-    @DataProvider(name="goodSequenceNames")
-    public Object[][] goodSequenceNames() {
-        return new Object[][] {
-                {"Hi, at Mom!"}
-        };
-    }
-
-    @Test(dataProvider = "samFilesWithSpaceInSequenceName")
-    public void testSamSequenceTruncation(final String filename) {
-        final SAMFileReader reader = new SAMFileReader(new File(TEST_DATA_DIR, filename));
-        for (final SAMSequenceRecord sequence : reader.getFileHeader().getSequenceDictionary().getSequences()) {
-            Assert.assertFalse(sequence.getSequenceName().contains(" "), sequence.getSequenceName());
-        }
-        for (final SAMRecord rec: reader) {
-            Assert.assertFalse(rec.getReferenceName().contains(" "));
-        }
-    }
-    @DataProvider(name="samFilesWithSpaceInSequenceName")
-    public Object[][] samFilesWithSpaceInSequenceName() {
-        return new Object[][] {
-                {"sequenceWithSpace.sam"},
-                {"sequenceWithSpace.bam"}
-        };
-    }
-
-    @Test(expectedExceptions = {SAMFormatException.class})
-    public void testBadRname() {
-        final SAMFileReader reader = new SAMFileReader(new File(TEST_DATA_DIR, "readWithBadRname.sam"));
-        for (final SAMRecord rec: reader) {
-        }
-        Assert.fail("Should not reach here.");
-    }
-}
diff --git a/src/tests/java/net/sf/picard/sam/ValidateSamFileTest.java b/src/tests/java/net/sf/picard/sam/ValidateSamFileTest.java
deleted file mode 100644
index 0b3fbd2..0000000
--- a/src/tests/java/net/sf/picard/sam/ValidateSamFileTest.java
+++ /dev/null
@@ -1,452 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.picard.sam;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.metrics.MetricBase;
-import net.sf.picard.metrics.MetricsFile;
-import net.sf.picard.reference.ReferenceSequence;
-import net.sf.picard.reference.ReferenceSequenceFile;
-import net.sf.picard.util.Histogram;
-import net.sf.samtools.*;
-import net.sf.samtools.util.StringUtil;
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.*;
-import java.util.Arrays;
-import java.util.Iterator;
-
-/**
- * Tests almost all error conditions detected by the sam file validator. The
- * conditions not tested are proactively prevented by sam generation code.
- *
- * @author Doug Voet
- */
-public class ValidateSamFileTest {
-    private static final File TEST_DATA_DIR = new File("testdata/net/sf/picard/sam/ValidateSamFileTest");
-
-    @Test
-    public void testValidSamFile() throws Exception {
-        final SAMFileReader.ValidationStringency saveStringency = SAMFileReader.getDefaultValidationStringency();
-        SAMFileReader.setDefaultValidationStringency(SAMFileReader.ValidationStringency.SILENT);
-        try {
-            final SAMFileReader samReader = new SAMFileReader(new File(TEST_DATA_DIR, "valid.sam"));
-            final Histogram<String> results = executeValidation(samReader, null);
-            Assert.assertTrue(results.isEmpty());
-        } finally {
-            SAMFileReader.setDefaultValidationStringency(saveStringency);
-        }
-    }
-
-    @Test
-    public void testSortOrder() throws IOException {
-        Histogram<String> results = executeValidation(new SAMFileReader(new File(TEST_DATA_DIR, "invalid_coord_sort_order.sam")), null);
-        Assert.assertEquals(results.get(SAMValidationError.Type.RECORD_OUT_OF_ORDER.getHistogramString()).getValue(), 1.0);
-        results = executeValidation(new SAMFileReader(new File(TEST_DATA_DIR, "invalid_queryname_sort_order.sam")), null);
-        Assert.assertEquals(results.get(SAMValidationError.Type.RECORD_OUT_OF_ORDER.getHistogramString()).getValue(), 5.0);
-    }
-
-    @Test
-    public void testVerbose() throws IOException {
-        final SAMRecordSetBuilder samBuilder = new SAMRecordSetBuilder();
-
-        for (int i=0; i<20; i++) {
-            samBuilder.addFrag(String.valueOf(i), 1, i, false);
-        }
-        for (final SAMRecord record : samBuilder) {
-            record.setProperPairFlag(true);
-        }
-
-        final StringWriter results = new StringWriter();
-        final SamFileValidator validator = new SamFileValidator(new PrintWriter(results), 8000);
-        validator.setVerbose(true, 10);
-        validator.validateSamFileVerbose(samBuilder.getSamReader(), null);
-
-        final int lineCount = results.toString().split("\n").length;
-        Assert.assertEquals(lineCount, 11);
-    }
-
-    @Test
-    public void testUnpairedRecords() throws IOException {
-        final SAMRecordSetBuilder samBuilder = new SAMRecordSetBuilder();
-
-        for (int i=0; i<6; i++) {
-            samBuilder.addFrag(String.valueOf(i), i, i, false);
-        }
-        final Iterator<SAMRecord> records = samBuilder.iterator();
-        records.next().setProperPairFlag(true);
-        records.next().setMateUnmappedFlag(true);
-        records.next().setMateNegativeStrandFlag(true);
-        records.next().setFirstOfPairFlag(true);
-        records.next().setSecondOfPairFlag(true);
-        records.next().setMateReferenceIndex(1);
-
-        final Histogram<String> results = executeValidation(samBuilder.getSamReader(), null);
-
-        Assert.assertEquals(results.get(SAMValidationError.Type.INVALID_FLAG_PROPER_PAIR.getHistogramString()).getValue(), 1.0);
-        Assert.assertEquals(results.get(SAMValidationError.Type.INVALID_FLAG_MATE_UNMAPPED.getHistogramString()).getValue(), 1.0);
-        Assert.assertEquals(results.get(SAMValidationError.Type.INVALID_FLAG_MATE_NEG_STRAND.getHistogramString()).getValue(), 1.0);
-        Assert.assertEquals(results.get(SAMValidationError.Type.INVALID_FLAG_FIRST_OF_PAIR.getHistogramString()).getValue(), 1.0);
-        Assert.assertEquals(results.get(SAMValidationError.Type.INVALID_FLAG_SECOND_OF_PAIR.getHistogramString()).getValue(), 1.0);
-        Assert.assertEquals(results.get(SAMValidationError.Type.INVALID_MATE_REF_INDEX.getHistogramString()).getValue(), 1.0);
-    }
-
-    @Test
-    public void testPairedRecords() throws IOException {
-        final SAMRecordSetBuilder samBuilder = new SAMRecordSetBuilder();
-
-        for (int i=0; i<5; i++) {
-            samBuilder.addPair(String.valueOf(i), i, i, i+100);
-        }
-        final Iterator<SAMRecord> records = samBuilder.iterator();
-        records.next().setMateReferenceName("*");
-        records.next().setMateAlignmentStart(Integer.MAX_VALUE);
-        records.next().setMateAlignmentStart(records.next().getAlignmentStart()+1);
-        records.next().setMateNegativeStrandFlag(!records.next().getReadNegativeStrandFlag());
-        records.next().setMateReferenceIndex(records.next().getReferenceIndex() + 1);
-        records.next().setMateUnmappedFlag(!records.next().getReadUnmappedFlag());
-
-
-        final Histogram<String> results = executeValidation(samBuilder.getSamReader(), null);
-
-        Assert.assertEquals(results.get(SAMValidationError.Type.INVALID_ALIGNMENT_START.getHistogramString()).getValue(), 3.0);
-        Assert.assertEquals(results.get(SAMValidationError.Type.INVALID_FLAG_MATE_UNMAPPED.getHistogramString()).getValue(), 1.0);
-        Assert.assertEquals(results.get(SAMValidationError.Type.MISMATCH_FLAG_MATE_NEG_STRAND.getHistogramString()).getValue(), 1.0);
-        Assert.assertEquals(results.get(SAMValidationError.Type.MISMATCH_FLAG_MATE_UNMAPPED.getHistogramString()).getValue(), 1.0);
-        Assert.assertEquals(results.get(SAMValidationError.Type.MISMATCH_MATE_ALIGNMENT_START.getHistogramString()).getValue(), 2.0);
-        Assert.assertEquals(results.get(SAMValidationError.Type.MISMATCH_MATE_REF_INDEX.getHistogramString()).getValue(), 2.0);
-    }
-
-    @Test(dataProvider = "missingMateTestCases")
-    public void testMissingMate(final SAMFileHeader.SortOrder sortOrder) throws IOException {
-        final SAMRecordSetBuilder samBuilder = new SAMRecordSetBuilder(true, sortOrder);
-
-        samBuilder.addPair(String.valueOf(1), 1, 1, 101);
-        final Iterator<SAMRecord> records = samBuilder.iterator();
-        records.next();
-        records.remove();
-        final Histogram<String> results = executeValidation(samBuilder.getSamReader(), null);
-
-        Assert.assertEquals(results.get(SAMValidationError.Type.MATE_NOT_FOUND.getHistogramString()).getValue(), 1.0);
-    }
-
-    @DataProvider(name = "missingMateTestCases")
-    public Object[][] missingMateTestCases() {
-        return new Object[][] {
-                {SAMFileHeader.SortOrder.coordinate},
-                {SAMFileHeader.SortOrder.queryname},
-                {SAMFileHeader.SortOrder.unsorted},
-        };
-    }
-
-    @Test
-    public void testUnmappedRecords() throws IOException {
-        final SAMRecordSetBuilder samBuilder = new SAMRecordSetBuilder();
-
-        for (int i=0; i<4; i++) {
-            samBuilder.addUnmappedFragment(String.valueOf(i));
-        }
-        final Iterator<SAMRecord> records = samBuilder.iterator();
-        records.next().setReadNegativeStrandFlag(true);
-        records.next().setNotPrimaryAlignmentFlag(true);
-        records.next().setMappingQuality(10);
-        records.next().setCigarString("36M");
-
-        final Histogram<String> results = executeValidation(samBuilder.getSamReader(), null);
-
-        Assert.assertEquals(results.get(SAMValidationError.Type.INVALID_FLAG_NOT_PRIM_ALIGNMENT.getHistogramString()).getValue(), 1.0);
-        Assert.assertEquals(results.get(SAMValidationError.Type.INVALID_MAPPING_QUALITY.getHistogramString()).getValue(), 1.0);
-    }
-
-    @Test
-    public void testMappedRecords() throws IOException {
-        final SAMRecordSetBuilder samBuilder = new SAMRecordSetBuilder();
-
-        for (int i=0; i<2; i++) {
-            samBuilder.addFrag(String.valueOf(i), i, i, false);
-        }
-        final Iterator<SAMRecord> records = samBuilder.iterator();
-        records.next().setCigarString("25M3S25M");
-        records.next().setReferenceName("*");
-
-        final Histogram<String> results = executeValidation(samBuilder.getSamReader(), null);
-
-        Assert.assertEquals(results.get(SAMValidationError.Type.INVALID_CIGAR.getHistogramString()).getValue(), 1.0);
-        Assert.assertEquals(results.get(SAMValidationError.Type.INVALID_FLAG_READ_UNMAPPED.getHistogramString()).getValue(), 1.0);
-        Assert.assertEquals(results.get(SAMValidationError.Type.MISSING_TAG_NM.getHistogramString()).getValue(), 1.0);
-    }
-
-    @Test
-    public void testNmFlagValidation() throws IOException {
-        final SAMRecordSetBuilder samBuilder = new SAMRecordSetBuilder();
-
-        for (int i=0; i<3; i++) {
-            samBuilder.addFrag(String.valueOf(i), i, i+1, false);
-        }
-        final Iterator<SAMRecord> records = samBuilder.iterator();
-        records.next().setAttribute(ReservedTagConstants.NM, 4);
-
-        // PIC-215: Confirm correct NM value when there is an insertion and a deletion.
-        final SAMRecord recordWithInsert = records.next();
-        final byte[] sequence = recordWithInsert.getReadBases();
-        Arrays.fill(sequence, (byte)'A');
-        recordWithInsert.setReadBases(sequence);
-        recordWithInsert.setCigarString("1D" + Integer.toString(sequence.length-1) + "M1I");
-        recordWithInsert.setAttribute(ReservedTagConstants.NM, 2);
-
-        final Histogram<String> results = executeValidation(samBuilder.getSamReader(), new ReferenceSequenceFile() {
-            private int index=0;
-            public SAMSequenceDictionary getSequenceDictionary() {
-                return null;
-            }
-
-            public ReferenceSequence nextSequence() {
-                final byte[] bases = new byte[10000];
-                Arrays.fill(bases, (byte) 'A');
-                return new ReferenceSequence("foo", index++, bases);
-            }
-
-            public void reset() {
-                this.index = 0;
-            }
-
-            public boolean isIndexed() { return false; }
-
-            public ReferenceSequence getSequence(final String contig) {
-                throw new UnsupportedOperationException();
-            }
-
-            public ReferenceSequence getSubsequenceAt(final String contig, final long start, final long stop) {
-                throw new UnsupportedOperationException();
-            }
-
-            @Override
-            public void close() throws IOException {
-                //no-op
-            }
-        });
-
-        Assert.assertEquals(results.get(SAMValidationError.Type.INVALID_TAG_NM.getHistogramString()).getValue(), 1.0);
-        Assert.assertEquals(results.get(SAMValidationError.Type.MISSING_TAG_NM.getHistogramString()).getValue(), 1.0);
-    }
-
-    @Test(dataProvider = "testMateCigarScenarios")
-    public void testMateCigarScenarios(final String scenario, final String inputFile, final SAMValidationError.Type expectedError)
-            throws Exception {
-        final SAMFileReader reader = new SAMFileReader(new File(TEST_DATA_DIR, inputFile));
-        final Histogram<String> results = executeValidation(reader, null);
-        Assert.assertNotNull(results.get(expectedError.getHistogramString()));
-        Assert.assertEquals(results.get(expectedError.getHistogramString()).getValue(), 1.0);
-    }
-
-
-    @DataProvider(name = "testMateCigarScenarios")
-    public Object[][] testMateCigarScenarios() {
-        return new Object[][] {
-                {"invalid mate cigar", "invalid_mate_cigar_string.sam", SAMValidationError.Type.MISMATCH_MATE_CIGAR_STRING},
-                {"inappropriate mate cigar", "inappropriate_mate_cigar_string.sam", SAMValidationError.Type.MATE_CIGAR_STRING_INVALID_PRESENCE}
-        };
-    }
-
-    @Test(dataProvider = "testTruncatedScenarios")
-    public void testTruncated(final String scenario, final String inputFile, final SAMValidationError.Type expectedError)
-            throws Exception {
-        final SAMFileReader reader = new SAMFileReader(new File(TEST_DATA_DIR, inputFile));
-        final Histogram<String> results = executeValidation(reader, null);
-        Assert.assertNotNull(results.get(expectedError.getHistogramString()));
-        Assert.assertEquals(results.get(expectedError.getHistogramString()).getValue(), 1.0);
-    }
-
-    @DataProvider(name = "testTruncatedScenarios")
-    public Object[][] testTruncatedScenarios() {
-        return new Object[][] {
-                {"truncated bam", "truncated.bam", SAMValidationError.Type.TRUNCATED_FILE},
-                {"truncated quals", "truncated_quals.sam", SAMValidationError.Type.MISMATCH_READ_LENGTH_AND_QUALS_LENGTH},
-                // TODO: Because validation is turned off when parsing, this error is not detectable currently by validator.
-                //{"truncated tag", "truncated_tag.sam", SAMValidationError.Type.TRUNCATED_FILE},
-                // TODO: Currently, this is not considered an error.  Should it be?
-                //{"hanging tab", "hanging_tab.sam", SAMValidationError.Type.TRUNCATED_FILE},
-        };
-    }
-
-    @Test(expectedExceptions = PicardException.class, dataProvider = "testFatalParsingErrors")
-    public void testFatalParsingErrors(final String scenario, final String inputFile) throws Exception {
-        final SAMFileReader reader = new SAMFileReader(new File(TEST_DATA_DIR, inputFile));
-        executeValidation(reader, null);
-        Assert.fail("Exception should have been thrown.");
-    }
-
-    @DataProvider(name = "testFatalParsingErrors")
-    public Object[][] testFatalParsingErrorScenarios() {
-        return new Object[][] {
-                {"missing fields", "missing_fields.sam"},
-                {"zero length read", "zero_length_read.sam"}
-        };
-    }
-
-    @Test
-    public void testHeaderVersionValidation() throws Exception {
-        final String header = "@HD	VN:Hi,Mom!	SO:queryname";
-        final InputStream strm = new ByteArrayInputStream(StringUtil.stringToBytes(header));
-        final SAMFileReader samReader = new SAMFileReader(strm);
-        final Histogram<String> results = executeValidation(samReader, null);
-        Assert.assertEquals(results.get(SAMValidationError.Type.INVALID_VERSION_NUMBER.getHistogramString()).getValue(), 1.0);
-    }
-
-    @Test(enabled=false, description="File is actually valid for Standard quality scores so this test fails with an NPE.")
-    public void testQualityFormatValidation() throws Exception {
-        final SAMFileReader samReader = new SAMFileReader(new File("./testdata/net/sf/picard/util/QualityEncodingDetectorTest/illumina-as-standard.bam"));
-        final Histogram<String> results = executeValidation(samReader, null);
-        final Histogram<String>.Bin bin = results.get(SAMValidationError.Type.INVALID_QUALITY_FORMAT.getHistogramString());
-        final double value = bin.getValue();
-        Assert.assertEquals(value, 1.0);
-    }
-
-    @Test
-    public void testCigarOffEndOfReferenceValidation() throws Exception {
-        final SAMRecordSetBuilder samBuilder = new SAMRecordSetBuilder();
-        samBuilder.addFrag(String.valueOf(0), 0, 1, false);
-        final int contigLength = samBuilder.getHeader().getSequence(0).getSequenceLength();
-        // Should hang off the end.
-        samBuilder.addFrag(String.valueOf(1), 0, contigLength - 1, false);
-        final Histogram<String> results = executeValidation(samBuilder.getSamReader(), null);
-        Assert.assertNotNull(results.get(SAMValidationError.Type.CIGAR_MAPS_OFF_REFERENCE.getHistogramString()));
-        Assert.assertEquals(results.get(SAMValidationError.Type.CIGAR_MAPS_OFF_REFERENCE.getHistogramString()).getValue(), 1.0);
-    }
-
-    @Test(expectedExceptions = SAMFormatException.class)
-    public void testConflictingTags() throws Exception {
-        final String header = "@HD	VN:1.0	SO:queryname	SO:coordinate";
-        final InputStream strm = new ByteArrayInputStream(StringUtil.stringToBytes(header));
-        final SAMFileReader samReader = new SAMFileReader(strm);
-        Assert.fail("Exception should have been thrown.");
-    }
-
-    @Test
-    public void testRedundantTags() throws Exception {
-        final String header = "@HD	VN:1.0	SO:coordinate	SO:coordinate";
-        final InputStream strm = new ByteArrayInputStream(StringUtil.stringToBytes(header));
-        final SAMFileReader samReader = new SAMFileReader(strm);
-        Assert.assertEquals(SAMFileHeader.SortOrder.coordinate, samReader.getFileHeader().getSortOrder());
-    }
-
-    @Test
-    public void testHeaderValidation() throws Exception {
-        final SAMFileReader.ValidationStringency saveStringency = SAMFileReader.getDefaultValidationStringency();
-        SAMFileReader.setDefaultValidationStringency(SAMFileReader.ValidationStringency.SILENT);
-        try {
-            final SAMFileReader samReader = new SAMFileReader(new File(TEST_DATA_DIR, "buggyHeader.sam"));
-            final Histogram<String> results = executeValidation(samReader, null);
-            Assert.assertEquals(results.get(SAMValidationError.Type.UNRECOGNIZED_HEADER_TYPE.getHistogramString()).getValue(), 3.0);
-            Assert.assertEquals(results.get(SAMValidationError.Type.HEADER_TAG_MULTIPLY_DEFINED.getHistogramString()).getValue(), 1.0);
-        } finally {
-            SAMFileReader.setDefaultValidationStringency(saveStringency);
-        }
-    }
-
-    @Test
-    public void testPlatformMissing() throws Exception {
-        final SAMFileReader.ValidationStringency saveStringency = SAMFileReader.getDefaultValidationStringency();
-        SAMFileReader.setDefaultValidationStringency(SAMFileReader.ValidationStringency.SILENT);
-        try {
-            final SAMFileReader samReader = new SAMFileReader(new File(TEST_DATA_DIR, "missing_platform_unit.sam"));
-            final Histogram<String> results = executeValidation(samReader, null);
-            Assert.assertEquals(results.get(SAMValidationError.Type.MISSING_PLATFORM_VALUE.getHistogramString()).getValue(), 1.0);
-        } finally {
-            SAMFileReader.setDefaultValidationStringency(saveStringency);
-        }
-    }
-
-    @Test
-    public void testDuplicateRGIDs() throws Exception {
-        final SAMFileReader.ValidationStringency saveStringency = SAMFileReader.getDefaultValidationStringency();
-        SAMFileReader.setDefaultValidationStringency(SAMFileReader.ValidationStringency.SILENT);
-        try {
-            final SAMFileReader samReader = new SAMFileReader(new File(TEST_DATA_DIR, "duplicate_rg.sam"));
-            final Histogram<String> results = executeValidation(samReader, null);
-            Assert.assertEquals(results.get(SAMValidationError.Type.DUPLICATE_READ_GROUP_ID.getHistogramString()).getValue(), 1.0);
-        } finally {
-            SAMFileReader.setDefaultValidationStringency(saveStringency);
-        }
-    }
-
-    @Test
-    public void testIndexFileValidation() throws Exception {
-        final SAMFileReader.ValidationStringency saveStringency = SAMFileReader.getDefaultValidationStringency();
-        SAMFileReader.setDefaultValidationStringency(SAMFileReader.ValidationStringency.SILENT);
-        try {
-            final SAMFileReader samReader = new SAMFileReader(new File(TEST_DATA_DIR, "bad_index.bam"));
-            samReader.enableIndexCaching(true);
-            final Histogram<String> results = executeValidation(samReader, null);
-            Assert.assertEquals(results.get(SAMValidationError.Type.INVALID_INDEX_FILE_POINTER.getHistogramString()).getValue(), 1.0);
-        } finally {
-            SAMFileReader.setDefaultValidationStringency(saveStringency);
-        }
-    }
-
-    private Histogram<String> executeValidation(final SAMFileReader samReader, final ReferenceSequenceFile reference) throws IOException {
-        final File outFile = File.createTempFile("validation", ".txt");
-        outFile.deleteOnExit();
-        final PrintWriter out = new PrintWriter(outFile);
-        new SamFileValidator(out, 8000).setValidateIndex(true).validateSamFileSummary(samReader, reference);
-        final LineNumberReader reader = new LineNumberReader(new FileReader(outFile));
-        if (reader.readLine().equals("No errors found")) {
-            return new Histogram<String>();
-        }
-        final MetricsFile<MetricBase, String> outputFile = new MetricsFile<MetricBase, String>();
-        outputFile.read(new FileReader(outFile));
-        Assert.assertNotNull(outputFile.getHistogram());
-        return outputFile.getHistogram();
-    }
-
-    @Test(dataProvider = "headerVersions")
-    public void testHeaderVersion(final String version, final boolean expectValid) throws Exception {
-        final File samFile = File.createTempFile("validateHeader.", ".sam");
-        samFile.deleteOnExit();
-        final PrintWriter pw = new PrintWriter(samFile);
-        pw.println("@HD\tVN:" + version);
-        pw.close();
-        final SAMFileReader reader = new SAMFileReader(samFile);
-        final Histogram<String> results = executeValidation(reader, null);
-        if (expectValid) Assert.assertNull(results.get(SAMValidationError.Type.INVALID_VERSION_NUMBER.getHistogramString()));
-        else {
-            Assert.assertNotNull(results.get(SAMValidationError.Type.INVALID_VERSION_NUMBER.getHistogramString()));
-            Assert.assertEquals(results.get(SAMValidationError.Type.INVALID_VERSION_NUMBER.getHistogramString()).getValue(), 1.0);
-        }
-    }
-
-    @DataProvider(name = "headerVersions")
-    public Object[][] testHeaderVersionScenarios() {
-        return new Object[][] {
-                {"1.0", true},
-                {"1.3", true},
-                {"1.4", true},
-                {"1.5", false},
-        };
-    }
-
-}
diff --git a/src/tests/java/net/sf/picard/sam/ViewSamTest.java b/src/tests/java/net/sf/picard/sam/ViewSamTest.java
deleted file mode 100644
index 54d05c8..0000000
--- a/src/tests/java/net/sf/picard/sam/ViewSamTest.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2012 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.sam;
-
-import net.sf.samtools.util.AsciiWriter;
-import net.sf.samtools.util.BufferedLineReader;
-import net.sf.samtools.util.LineReader;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.PrintStream;
-
-public class ViewSamTest {
-    /**
-     * Confirm that ViewSam retains whatever version number was in the input header.
-     */
-    @Test
-    public void testHeaderVersion() throws Exception {
-        final String oldVersionHeader = "@HD\tVN:1.3\tSO:unsorted";
-        final File inputSam = File.createTempFile("ViewSamTest.input.", ".sam");
-        inputSam.deleteOnExit();
-        final AsciiWriter writer = new AsciiWriter(new FileOutputStream(inputSam));
-        writer.write(oldVersionHeader);
-        writer.write("\n");
-        writer.close();
-        final File viewSamOutputFile = File.createTempFile("ViewSamTest.output.", ".sam");
-        viewSamOutputFile.deleteOnExit();
-        final ViewSam viewSam = new ViewSam();
-        viewSam.INPUT = inputSam;
-        final PrintStream viewSamPrintStream = new PrintStream(viewSamOutputFile);
-        Assert.assertEquals(viewSam.writeSamText(viewSamPrintStream), 0);
-        viewSamPrintStream.close();
-        final LineReader viewSamInputReader = new BufferedLineReader(new FileInputStream(viewSamOutputFile));
-        Assert.assertEquals(viewSamInputReader.readLine(), oldVersionHeader);
-    }
-}
diff --git a/src/tests/java/net/sf/picard/sam/testers/CleanSamTester.java b/src/tests/java/net/sf/picard/sam/testers/CleanSamTester.java
deleted file mode 100644
index ee6997a..0000000
--- a/src/tests/java/net/sf/picard/sam/testers/CleanSamTester.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package net.sf.picard.sam.testers;
-
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.sam.CleanSam;
-import net.sf.picard.sam.SamFileValidator;
-import net.sf.picard.sam.testers.SamFileTester;
-import net.sf.samtools.*;
-import net.sf.samtools.util.TestUtil;
-import org.testng.Assert;
-
-import java.io.PrintWriter;
-import java.util.Arrays;
-
-/**
- * This class is the extension of the SamFileTester to test CleanSam with SAM files generated on the fly.
- */
-public class CleanSamTester extends SamFileTester {
-    private final String expectedCigar;
-    private final CleanSam program = new CleanSam();
-
-    public CleanSamTester(final String expectedCigar, final int readLength, final int defaultChromosomeLength) {
-        super(readLength, true, defaultChromosomeLength);
-        this.expectedCigar = expectedCigar;
-    }
-
-
-    protected void test() {
-        try {
-            final SamFileValidator validator = new SamFileValidator(new PrintWriter(System.out), 8000);
-
-            // Validate it has the expected cigar
-            validator.setIgnoreWarnings(true);
-            validator.setVerbose(true, 1000);
-            validator.setErrorsToIgnore(Arrays.asList(SAMValidationError.Type.MISSING_READ_GROUP));
-            SAMFileReader samReader = new SAMFileReader(getOutput());
-            samReader.setValidationStringency(SAMFileReader.ValidationStringency.LENIENT);
-            final SAMRecordIterator iterator = samReader.iterator();
-            while (iterator.hasNext()) {
-                final SAMRecord rec = iterator.next();
-                Assert.assertEquals(rec.getCigarString(), expectedCigar);
-                if (SAMUtils.hasMateCigar(rec)) {
-                    Assert.assertEquals(SAMUtils.getMateCigarString(rec), expectedCigar);
-                }
-            }
-            samReader.close();
-
-            // Run validation on the output file
-            samReader = new SAMFileReader(getOutput());
-            final boolean validated = validator.validateSamFileVerbose(samReader, null);
-            samReader.close();
-            Assert.assertTrue(validated, "ValidateSamFile failed");
-        } finally {
-            TestUtil.recursiveDelete(getOutputDir());
-        }
-    }
-
-    @Override
-    protected CommandLineProgram getProgram() {
-        return program;
-    }
-
-}
diff --git a/src/tests/java/net/sf/picard/sam/testers/MarkDuplicatesTester.java b/src/tests/java/net/sf/picard/sam/testers/MarkDuplicatesTester.java
deleted file mode 100644
index f8ad0a9..0000000
--- a/src/tests/java/net/sf/picard/sam/testers/MarkDuplicatesTester.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package net.sf.picard.sam.testers;
-
-
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.sam.MarkDuplicates;
-import net.sf.picard.sam.testers.SamFileTester;
-import net.sf.samtools.SAMFileReader;
-import net.sf.samtools.SAMRecord;
-import net.sf.samtools.util.TestUtil;
-import org.testng.Assert;
-
-import java.io.File;
-
-/**
- * This class is an extension of SamFileTester used to test MarkDuplicates with SAM files generated on the fly.
- */
-public class MarkDuplicatesTester extends SamFileTester {
-
-    private final MarkDuplicates program = new MarkDuplicates();
-
-    public MarkDuplicatesTester() {
-        super(50, true);
-
-        final File metrics = new File(getOutputDir(), "metrics.txt");
-        addArg("METRICS_FILE=" + metrics);
-    }
-
-    @Override
-    public void test() {
-        try {
-            // Read the output and check the duplicate flag
-            final SAMFileReader reader = new SAMFileReader(getOutput());
-            for (final SAMRecord record : reader) {
-                final String key = samRecordToDuplicatesFlagsKey(record);
-                Assert.assertTrue(this.duplicateFlags.containsKey(key));
-                final boolean value = this.duplicateFlags.get(key);
-                this.duplicateFlags.remove(key);
-                if (value != record.getDuplicateReadFlag()) {
-                    System.err.println("Mismatching read:");
-                    System.err.print(record.getSAMString());
-                }
-                Assert.assertEquals(record.getDuplicateReadFlag(), value);
-            }
-            reader.close();
-        } finally {
-            TestUtil.recursiveDelete(getOutputDir());
-        }
-    }
-
-    @Override
-    protected CommandLineProgram getProgram() {
-        return program;
-    }
-}
-
diff --git a/src/tests/java/net/sf/picard/sam/testers/SamFileTester.java b/src/tests/java/net/sf/picard/sam/testers/SamFileTester.java
deleted file mode 100644
index d92292c..0000000
--- a/src/tests/java/net/sf/picard/sam/testers/SamFileTester.java
+++ /dev/null
@@ -1,224 +0,0 @@
-package net.sf.picard.sam.testers;
-
-import net.sf.picard.cmdline.CommandLineProgram;
-import net.sf.picard.io.IoUtil;
-import net.sf.samtools.SAMRecordSetBuilder;
-import net.sf.samtools.*;
-import org.testng.Assert;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Abstract class for doing basic on the fly SAM file testing.
- */
-public abstract class SamFileTester {
-
-    public static final String TEST_DATA_BASE_DIR = "testdata/net/sf/picard/sam/";
-    private final SAMRecordSetBuilder samRecordSetBuilder;
-    protected final Map<String, Boolean> duplicateFlags = new HashMap<String, Boolean>();
-    private File outputDir;
-    private File output;
-    private int readNameCounter = 0;
-    private boolean noMateCigars = false;
-    private boolean deleteOnExit = true;
-    private final ArrayList<String> args = new ArrayList<String>();
-
-    public SamFileTester(final int readLength, final boolean deleteOnExit, final int defaultChromosomeLength) {
-        this.deleteOnExit = deleteOnExit;
-        this.samRecordSetBuilder = new SAMRecordSetBuilder(true, SAMFileHeader.SortOrder.coordinate, true, defaultChromosomeLength);
-        samRecordSetBuilder.setReadLength(readLength);
-        setOutputDir();
-    }
-
-    public SamFileTester(final int readLength, final boolean deleteOnExit) {
-        this.deleteOnExit = deleteOnExit;
-        this.samRecordSetBuilder = new SAMRecordSetBuilder();
-        samRecordSetBuilder.setReadLength(readLength);
-        setOutputDir();
-    }
-
-    public File getOutput() {
-        return output;
-    }
-
-    public void addArg(final String arg) {
-        args.add(arg);
-    }
-
-    public File getOutputDir() {
-        return outputDir;
-    }
-
-    private void setOutputDir() {
-        this.outputDir = IoUtil.createTempDir(this.getClass().getSimpleName() + ".", ".tmp");
-        if(deleteOnExit){
-            outputDir.deleteOnExit();
-        }
-    }
-
-    public void setNoMateCigars(final boolean value) {
-        this.noMateCigars = value;
-    }
-
-    protected String samRecordToDuplicatesFlagsKey(final SAMRecord record) {
-        String readName = record.getReadName()
-                + "-"
-                + record.getReadPairedFlag()
-                + "-";
-        if (record.getReadPairedFlag()) {
-            readName += record.getFirstOfPairFlag()
-                    + "-"
-                    + record.getSecondOfPairFlag();
-        } else {
-            readName += "false-false";
-        }
-        return readName;
-    }
-    // Below are a bunch of utility methods for adding records to the SAMRecordSetBuilder
-    public void addUnmappedFragment(final int referenceSequenceIndex,
-                                    final int defaultQualityScore) {
-        addFragment(referenceSequenceIndex, -1, true, false, null, null, defaultQualityScore);
-    }
-
-    public void addUnmappedFragment(final int referenceSequenceIndex,
-                                    final String qualityString){
-        addFragment(referenceSequenceIndex, -1, true, false, null, qualityString, -1);
-    }
-
-    public void addUnmappedPair(final int referenceSequenceIndex,
-                                final int defaultQualityScore) {
-        addMatePair(referenceSequenceIndex, -1, -1, true, true, false, false, null, null, false, false, false, defaultQualityScore);
-    }
-
-    public void addMappedFragment(final int referenceSequenceIndex, final int alignmentStart, final boolean isDuplicate,
-                                  final int defaultQualityScore) {
-        addFragment(referenceSequenceIndex, alignmentStart, false, isDuplicate, null, null, defaultQualityScore);
-    }
-
-    public void addMappedFragment(final int referenceSequenceIndex, final int alignmentStart, final boolean isDuplicate, final String cigar,
-                                  final int defaultQualityScore) {
-        addFragment(referenceSequenceIndex, alignmentStart, false, isDuplicate, cigar, null, defaultQualityScore);
-    }
-
-    public void addMappedFragment(final int referenceSequenceIndex, final int alignmentStart, final boolean isDuplicate, final String cigar,
-                                  final String qualityString,
-                                  final int defaultQualityScore) {
-        addFragment(referenceSequenceIndex, alignmentStart, false, isDuplicate, cigar, qualityString, defaultQualityScore);
-    }
-
-    public void addMappedPair(final int referenceSequenceIndex,
-                              final int alignmentStart1,
-                              final int alignmentStart2,
-                              final boolean isDuplicate1,
-                              final boolean isDuplicate2,
-                              final int defaultQualityScore) {
-        addMappedPair(referenceSequenceIndex, alignmentStart1, alignmentStart2, isDuplicate1, isDuplicate2, null, null,
-                false, defaultQualityScore);
-    }
-
-    public void addMappedPair(final int referenceSequenceIndex,
-                              final int alignmentStart1,
-                              final int alignmentStart2,
-                              final boolean isDuplicate1,
-                              final boolean isDuplicate2,
-                              final String cigar1,
-                              final String cigar2,
-                              final boolean firstOnly,
-                              final int defaultQualityScore) {
-        addMappedPair(referenceSequenceIndex, alignmentStart1, alignmentStart2, isDuplicate1, isDuplicate2, cigar1,
-                cigar2, false, true, firstOnly, defaultQualityScore);
-    }
-
-    public void addMappedPair(final int referenceSequenceIndex,
-                              final int alignmentStart1,
-                              final int alignmentStart2,
-                              final boolean isDuplicate1,
-                              final boolean isDuplicate2,
-                              final String cigar1,
-                              final String cigar2,
-                              final boolean strand1,
-                              final boolean strand2,
-                              final boolean firstOnly,
-                              final int defaultQualityScore) {
-        addMatePair(referenceSequenceIndex, alignmentStart1, alignmentStart2, false, false, isDuplicate1, isDuplicate2, cigar1, cigar2,
-                strand1, strand2, firstOnly, defaultQualityScore);
-    }
-
-    private void addFragment(final int referenceSequenceIndex, final int alignmentStart, final boolean recordUnmapped, final boolean isDuplicate, final String cigar,
-                             final String qualityString, final int defaultQualityScore) {
-        final SAMRecord record = samRecordSetBuilder.addFrag("READ" + readNameCounter++, referenceSequenceIndex, alignmentStart, false,
-                recordUnmapped, cigar, qualityString, defaultQualityScore);
-
-        this.duplicateFlags.put(samRecordToDuplicatesFlagsKey(record), isDuplicate);
-    }
-
-    public void addMatePair(final int referenceSequenceIndex,
-                            final int alignmentStart1,
-                            final int alignmentStart2,
-                            final boolean record1Unmapped,
-                            final boolean record2Unmapped,
-                            final boolean isDuplicate1,
-                            final boolean isDuplicate2,
-                            final String cigar1,
-                            final String cigar2,
-                            final boolean strand1,
-                            final boolean strand2,
-                            final boolean firstOnly,
-                            final int defaultQuality) {
-        final List<SAMRecord> samRecordList = samRecordSetBuilder.addPair("READ" + readNameCounter++, referenceSequenceIndex, alignmentStart1, alignmentStart2,
-                record1Unmapped, record2Unmapped, cigar1, cigar2, strand1, strand2, defaultQuality);
-
-        final SAMRecord record1 = samRecordList.get(0);
-        final SAMRecord record2 = samRecordList.get(1);
-
-        if (this.noMateCigars) {
-            record1.setAttribute("MC", null);
-            record2.setAttribute("MC", null);
-        }
-
-        if (firstOnly) {
-            samRecordSetBuilder.getRecords().remove(record2);
-        }
-
-        this.duplicateFlags.put(samRecordToDuplicatesFlagsKey(record1), isDuplicate1);
-        this.duplicateFlags.put(samRecordToDuplicatesFlagsKey(record2), isDuplicate2);
-    }
-
-    protected abstract void test();
-
-    protected abstract CommandLineProgram getProgram();
-
-    /**
-     * Sets up the basic command line arguments for input and output and runs instanceMain.
-     */
-    public void runTest() {
-        if (getProgram() != null) {
-            final File input = createInputFile();
-
-            output = new File(outputDir, "output.sam");
-            args.add("INPUT=" + input.getAbsoluteFile());
-            args.add("OUTPUT=" + output.getAbsoluteFile());
-            Assert.assertEquals(getProgram().instanceMain(args.toArray(new String[args.size()])), 0);
-        }
-        test();
-    }
-
-    private File createInputFile() {
-        // Create the input file
-        final File input = new File(outputDir, "input.sam");
-        final SAMFileWriter writer = new SAMFileWriterFactory().makeSAMOrBAMWriter(samRecordSetBuilder.getHeader(), true, input);
-        for (final SAMRecord record : samRecordSetBuilder.getRecords()) {
-            writer.addAlignment(record);
-        }
-        writer.close();
-        return input;
-    }
-
-    public SAMFileReader getInput(){
-        return samRecordSetBuilder.getSamReader();
-    }
-}
\ No newline at end of file
diff --git a/src/tests/java/net/sf/picard/util/CigarUtilTest.java b/src/tests/java/net/sf/picard/util/CigarUtilTest.java
deleted file mode 100644
index 42bf2d2..0000000
--- a/src/tests/java/net/sf/picard/util/CigarUtilTest.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.util;
-
-import net.sf.samtools.Cigar;
-import net.sf.samtools.CigarElement;
-import net.sf.samtools.TextCigarCodec;
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-/**
- * Basic positive tests for testing cigar string clipping
- *
- * @author Martha Borkan  mborkan at broadinstitute.org
- */
-public class CigarUtilTest {
-
-    TextCigarCodec codec = TextCigarCodec.getSingleton();
-
-   @Test(dataProvider="clipData")
-    public void basicTest(final String testName, final int start, final String inputCigar, final boolean negativeStrand,
-                          final int clipPosition,
-                          final String expectedCigar, final int expectedAdjustedStart) throws IOException {
-      List<CigarElement> cigar =  codec.decode(inputCigar).getCigarElements();
-      if (negativeStrand){
-          List<CigarElement> copiedList = new ArrayList<CigarElement>(cigar);
-          Collections.reverse(copiedList);
-          cigar = copiedList;
-      }
-      List<CigarElement> result = CigarUtil.softClipEndOfRead( clipPosition, cigar);
-       Cigar newCigar = new Cigar(result);
-       Cigar oldCigar = new Cigar(cigar);
-       if (negativeStrand){
-           Collections.reverse(result);
-           newCigar = new Cigar(result);
-           int oldLength = oldCigar.getReferenceLength();
-           int newLength = newCigar.getReferenceLength();
-           int sizeChange = oldLength - newLength;
-           //Assert.assertEquals(sizeChange, numClippedBases + adjustment, testName + " sizeChange == numClippedBases");
-           Assert.assertEquals(start + sizeChange, expectedAdjustedStart, sizeChange + " " +  testName);
-           Assert.assertTrue(sizeChange >= 0, "sizeChange >= 0. " + sizeChange);
-      }
-       Assert.assertEquals (codec.encode(newCigar), expectedCigar, testName);
-       Assert.assertEquals(newCigar.getReadLength(), oldCigar.getReadLength());
-       Assert.assertNull(newCigar.isValid(testName, -1));
-    }
-
-    @DataProvider(name = "clipData")
-    private Object[][] getCigarClippingTestData() {
-        // numClippedBases = (readLength - clipPosition) +1
-        return new Object[][]{
-            {"Test 1:simple + strand", 100, "50M", false, 43, "42M8S", 100},
-            {"Test 1s:+ strand already clipped", 100, "42M8S", false, 43, "42M8S", 100},
-            {"Test 2:simple - strand", 100, "50M", true, 41, "10S40M", 110},
-            {"Test 3:boundary + strand", 100, "42M3D8M", false, 43, "42M8S", 100},
-            {"Test 3s:boundary + strand", 100, "42M3D8S", false, 43, "42M8S", 100},
-            {"Test 3x:stutter + strand", 100, "42M2D1D8M", false, 43, "42M8S", 100},
-            {"Test 3y:stutter + strand", 100, "42M1D2D8M", false, 43, "42M8S", 100},
-            {"Test 3a:boundary + strand", 100, "42M1D8M", false, 43, "42M8S", 100},
-            {"Test 4:boundary - strand", 98, "10M2D40M", true, 41, "10S40M", 110},
-            {"Test 5:deletion + strand", 100, "44M1D6M", false, 43, "42M8S", 110},
-            {"Test 6:deletion - strand", 98, "6M2D44M", true, 41, "10S40M", 110},
-
-            {"Test 7:insertion + strand", 100, "42M3I5M", false, 43, "42M8S", 100},
-            {"Test 8:insertion - strand", 102, "8M2I40M", true, 41, "10S40M", 110},
-            {"Test 9:insertion within + strand", 100, "44M2I4M", false, 43, "42M8S", 100},
-            {"Test 9x:insertion stutter within + strand", 100, "44M2I2I2M", false, 43, "42M8S", 100},
-            {"Test 10:insertion within - strand", 100, "3M3I44M", true, 41, "10S40M", 107},
-            {"Test 11:insertion straddling + strand", 100, "40M4I6M", false, 43, "40M10S", 100},
-            {"Test 11s:insertion straddling + strand", 100, "40M4I6S", false, 43, "40M10S", 100},
-            {"Test 11a:insertion straddling + strand", 100, "40M2I8M", false, 43, "40M10S", 100},
-            {"Test 12:insertion straddling - strand", 104, "4M4I42M", true, 41, "10S40M", 110},
-            {"Test 12a:insertion straddling - strand", 102, "8M2I40M", true, 41, "10S40M", 110},
-
-            {"Test 13:deletion before clip + strand", 100, "10M5D35M", false, 38, "10M5D27M8S", 100},
-            {"Test 14:deletion before clip - strand", 100, "35M5D10M", true, 36, "10S25M5D10M", 110},
-            {"Test 15:insertion before clip + strand", 100, "10M5I35M", false, 43, "10M5I27M8S", 100},
-            {"Test 16:insertion before clip - strand", 100, "16M5I29M", true, 41, "10S6M5I29M", 110},
-
-            {"Test 17:second, earlier clip", 100, "48M2S", false, 43, "42M8S", 100},
-            {"Test 17s:second, earlier clip", 100, "2S48M", true, 43, "8S42M", 106},
-            {"Test 18:second, later clip", 100, "42M8S", false, 48, "42M8S", 100},
-            {"Test 18s:second, later clip", 100, "8S42M", true, 48, "8S42M", 100},
-        };
-    }
-
-    @Test(dataProvider="addData")
-     public void addingSoftClippedBasesTest(final String testName, final String cigar, final boolean negativeStrand,
-                           final int threePrimeEnd, final int fivePrimeEnd, final String expectedCigar) throws IOException {
-
-        Assert.assertEquals(CigarUtil.addSoftClippedBasesToEndsOfCigar(codec.decode(cigar), negativeStrand,
-                threePrimeEnd, fivePrimeEnd).toString(), expectedCigar, testName);
-     }
-
-     @DataProvider(name = "addData")
-     private Object[][] getCigarAddingTestData() {
-         // numClippedBases = (readLength - clipPosition) +1
-         return new Object[][]{
-                 {"Add to 5' end only, +", "36M", false, 0, 5, "5S36M"},
-                 {"Add to 5' end only, -", "30M1I5M", true, 0, 5, "30M1I5M5S"},
-                 {"Add to 3' end only, +", "26M", false, 3, 0, "26M3S"},
-                 {"Add to 3' end only, -", "19M3D7M", true, 3, 0, "3S19M3D7M"},
-                 {"Add to 5' end already soft-clipped, +", "6S20M", false, 0, 5, "11S20M"},
-                 {"Add to 5' end already soft-clipped, -", "28M4S", true, 0, 5, "28M9S"},
-                 {"Add to 3' end already soft-clipped, +", "15M5I10M2S", false, 7, 0, "15M5I10M9S"},
-                 {"Add to 3' end already soft-clipped, -", "2S34M", true, 6, 0, "8S34M"},
-                 {"Add to 5' and 3' ends, no merging, +", "36M", false, 15, 30, "30S36M15S"},
-                 {"Add to 5' and 3' ends, no merging, -", "36M", true, 15, 30, "15S36M30S"},
-                 {"Add to 5' and 3' ends, merging 5' end, +", "5S31M", false, 15, 30, "35S31M15S"},
-                 {"Add to 5' and 3' ends, merging 5' end, -", "31M5S", true, 15, 30, "15S31M35S"},
-                 {"Add to 5' and 3' ends, merging 3' end, +", "20M6S", false, 10, 12, "12S20M16S"},
-                 {"Add to 5' and 3' ends, merging 3' end, -", "6S25M", true, 10, 12, "16S25M12S"},
-                 {"Add to 5' and 3' ends, merging both ends, +", "3S31M2S", false, 10, 15, "18S31M12S"},
-                 {"Add to 5' and 3' ends, merging both ends, -", "2S26M8S", true, 10, 12, "12S26M20S"}
-         };
-     }
-
-}
diff --git a/src/tests/java/net/sf/picard/util/ClippingUtilityTest.java b/src/tests/java/net/sf/picard/util/ClippingUtilityTest.java
deleted file mode 100644
index 2fe7ff9..0000000
--- a/src/tests/java/net/sf/picard/util/ClippingUtilityTest.java
+++ /dev/null
@@ -1,380 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.util;
-
-import net.sf.picard.sam.ReservedTagConstants;
-import net.sf.picard.util.IlluminaUtil.IlluminaAdapterPair;
-import net.sf.samtools.SAMFileHeader;
-import net.sf.samtools.SAMRecord;
-import net.sf.samtools.util.SequenceUtil;
-import net.sf.samtools.util.StringUtil;
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- *
- */
-public class ClippingUtilityTest {
-
-    @Test(dataProvider="clipTestData")
-    public void testBasicClip(final String testName, final String read, final String clip, final int minMatch, final double errRate, final int expected) {
-        final byte[] r = (read == null) ? null : StringUtil.stringToBytes(read);
-        final byte[] c = (clip == null) ? null : StringUtil.stringToBytes(clip);
-
-        final int result = ClippingUtility.findIndexOfClipSequence(r, c, minMatch, errRate);
-        Assert.assertEquals(result, expected, testName);
-
-    }
-
-
-
-    @Test(dataProvider = "clipTestData")
-    public void testSingleEndSamRecordClip(final String testName, final String read, final String clip, final int minMatch,
-                                           final double errRate, final int expected) {
-        if (read == null) return; // Silly case
-
-        final SingleEndAdapter adapter = new SingleEndAdapter(testName, clip);
-
-        for (final boolean reverse : new boolean[]{false, true}) {
-            final SAMRecord rec = new SAMRecord(null);
-            if (reverse) {
-                rec.setReadString(SequenceUtil.reverseComplement(read));
-                rec.setReadNegativeStrandFlag(true);
-            } else {
-                rec.setReadString(read);
-            }
-
-            final AdapterPair matchedAdapter = ClippingUtility.adapterTrimIlluminaSingleRead(rec, minMatch, errRate, adapter);
-            if (expected == -1) {
-                Assert.assertNull(matchedAdapter, testName);
-                Assert.assertNull(rec.getAttribute(ReservedTagConstants.XT), testName);
-            } else {
-                Assert.assertEquals(matchedAdapter, adapter, testName);
-                Assert.assertEquals(rec.getAttribute(ReservedTagConstants.XT), expected + 1, testName);
-
-                // Test that if minMatch is decreased, it still matches
-                for (int i = 1; i < minMatch - 3; ++i) {
-                    Assert.assertEquals(ClippingUtility.adapterTrimIlluminaSingleRead(rec, minMatch - i, errRate, adapter), adapter, testName);
-                }
-
-                // Skip this test for high error rates, because almost anything will match.
-                if (errRate < 0.5) {
-                    // Test that if minMatch is increased, it now fails to match
-                    Assert.assertNull(ClippingUtility.adapterTrimIlluminaSingleRead(rec, minMatch + 1, errRate, adapter), testName);
-
-                    // Test that if errRate is increased, it still matches
-                    Assert.assertNotNull(ClippingUtility.adapterTrimIlluminaSingleRead(rec, minMatch, errRate + 0.1, adapter), testName);
-                }
-
-                // Very low error threshold should cause match failure
-                Assert.assertNull(ClippingUtility.adapterTrimIlluminaSingleRead(rec, minMatch, 0.01, adapter), testName);
-            }
-        }
-
-    }
-
-    @Test(dataProvider="clipPairedTestData")
-    public void testPairedEndClip(final String testName, final String read1, final String read2, final AdapterPair expected) {
-
-        final SAMRecord rec1 = new SAMRecord(new SAMFileHeader());
-        rec1.setReadString(read1);
-        rec1.setFirstOfPairFlag(true);
-        final SAMRecord rec2 = new SAMRecord(new SAMFileHeader());
-        rec2.setReadString(read2);
-        rec2.setSecondOfPairFlag(true);
-
-        final AdapterPair result = ClippingUtility.adapterTrimIlluminaPairedReads(rec1, rec2,
-                IlluminaAdapterPair.INDEXED, IlluminaAdapterPair.PAIRED_END);
-        if (result != null) {
-            Assert.assertEquals(result.getName(), expected.getName(), testName);
-        }
-        else {
-            Assert.assertNull(expected, testName);
-        }
-    }
-
-    @Test
-    public void testOneSidedMatchSupersededByTwoSidedMatch() {
-        final int readLength = 36;
-        final int adapterLength = 30;
-        final String read1 = patchAdapterSubsequenceIntoRead(makeBogusReadString(readLength), IlluminaAdapterPair.SINGLE_END.get3PrimeAdapterInReadOrder(), adapterLength);
-        final String read2 = patchAdapterSubsequenceIntoRead(makeBogusReadString(readLength), IlluminaAdapterPair.SINGLE_END.get5PrimeAdapterInReadOrder(), adapterLength);
-        final SAMRecord rec1 = new SAMRecord(null); rec1.setReadString(read1);
-        final SAMRecord rec2 = new SAMRecord(null); rec2.setReadString(read2);
-        AdapterPair result = ClippingUtility.adapterTrimIlluminaPairedReads(rec1, rec2, adapterLength - 2, 0.1,
-                IlluminaAdapterPair.PAIRED_END, IlluminaAdapterPair.SINGLE_END);
-        Assert.assertEquals(result, IlluminaAdapterPair.SINGLE_END);
-
-        // Confirm that without SINGLE_END, PAIRED_END would one-sided match, if match length is short enough.
-        result = ClippingUtility.adapterTrimIlluminaPairedReads(rec1, rec2, adapterLength/2, 0.1, IlluminaAdapterPair.PAIRED_END);
-        Assert.assertEquals(result, IlluminaAdapterPair.PAIRED_END);
-
-        // However, without shorter match length, one-sided match will fail.
-        Assert.assertNull(ClippingUtility.adapterTrimIlluminaPairedReads(rec1, rec2, adapterLength - 2, 0.1, IlluminaAdapterPair.PAIRED_END));
-    }
-
-    @Test(dataProvider = "testAdapterInAllReadPositionsDataProvider")
-    public void testAdapterInAllReadPositions(final int readLength) {
-        final int minAdapterLength = 6;
-        for (final IlluminaAdapterPair adapterPair : IlluminaAdapterPair.values()) {
-            final AdapterMarker marker = new AdapterMarker(adapterPair);
-            for (int adapterPosition = 0; adapterPosition < readLength; ++adapterPosition) {
-                final SAMRecord rec = createSamRecordWithAdapterSequence(readLength, adapterPair, adapterPosition);
-                final AdapterPair matchedAdapter = ClippingUtility.adapterTrimIlluminaSingleRead(rec, minAdapterLength, 0.1, adapterPair);
-                final Object xt = rec.getAttribute(ReservedTagConstants.XT);
-
-                rec.setAttribute(ReservedTagConstants.XT, null);
-                final AdapterPair truncatedAdapter = marker.adapterTrimIlluminaSingleRead(rec, minAdapterLength, 0.1);
-                final Object xtFromMarker = rec.getAttribute(ReservedTagConstants.XT);
-
-                if (adapterPosition <= readLength - minAdapterLength) {
-                    Assert.assertEquals(matchedAdapter, adapterPair, "Failed at position " + adapterPosition);
-                    Assert.assertEquals((Integer)xt, Integer.valueOf(adapterPosition + 1));
-                    Assert.assertNotNull(truncatedAdapter);
-                    Assert.assertEquals((Integer)xtFromMarker, Integer.valueOf(adapterPosition + 1));
-                } else {
-                    Assert.assertNull(matchedAdapter);
-                    Assert.assertNull(xt);
-                    Assert.assertNull(truncatedAdapter);
-                    Assert.assertNull(xtFromMarker);
-                }
-            }
-        }
-    }
-
-    private SAMRecord createSamRecordWithAdapterSequence(final int readLength, final IlluminaAdapterPair adapterPair, final int adapterPosition) {
-        final String adapterString = adapterPair.get3PrimeAdapterInReadOrder();
-        final int replacementLength = Math.min(adapterString.length(), readLength - adapterPosition);
-        final String adapterSubstring = adapterString.substring(0, replacementLength);
-        final String readBases = replaceSubstring(makeBogusReadString(readLength), adapterSubstring, adapterPosition, adapterSubstring.length());
-        final SAMRecord rec = new SAMRecord(null);
-        rec.setReadString(readBases);
-        return rec;
-    }
-
-    @DataProvider(name="testAdapterInAllReadPositionsDataProvider")
-    public Object[][] testAdapterInAllReadPositionsDataProvider() {
-        return new Object[][]{{100}, {36}};
-    }
-
-    @DataProvider(name="clipTestData")
-    public Object[][] getClipTestData() {
-        final String FORWARD = IlluminaAdapterPair.PAIRED_END.get3PrimeAdapter();
-        final String SE_FORWARD = IlluminaAdapterPair.SINGLE_END.get3PrimeAdapter();
-        final String REVERSE = IlluminaAdapterPair.PAIRED_END.get5PrimeAdapterInReadOrder();
-        return new Object[][] {
-                {"Simple test 1", "AAAAACCCCCAGATCGGAAGAGCA", "AGATCGGAAGAGCG", 14, 0.15, 10},
-                {"Simple test 2", "AAAAACCCCCGGGGGAGATCGGAAGAGCA", "AGATCGGAAGAGCG", 14, 0.15, 15},
-                {"No adapter", "AAAAACCCCCGGGGGTTTTT", "AGATCGGAAGAGCG", 6, 0.15, -1},
-                {"Partial adapter", "AAAAACCCCCTGATCGGAA", "AGATCGGAAGAGCG", 9, 0.15, 10},
-// no longer support clips in middle of read
-//          {"Adapter+Primer", "AAAAACCCCCAGATCGGAAGAGCGGTTCAGCAGGAATGCCGAGACCGATCTCGTATGCCGTCTTCTGCTTG", "AGATCGGAAGAGCG", 6, 0.15, 10},
-                {"No sequence", null, "AGATCGGAAGAGCG", 6, 0.15, -1},
-                {"Read too short", "AGATCGGAAG", "AGATCGGAAGAGCG", 11, 0.15, -1},
-                {"All No Calls", "AAACCCNNNNNNNNNNNNNNNNNNNN", "AGATCGGAAGAGCG", 6, 0.15, -1},
-                {"From Test Data1", "CGGCATTCCTGCTGAACCGAGATCGGAAGAGCGTCGTGTAGGGAAAGGGGGTGGATCTCGGTGGGCGGCGTGTTGT", REVERSE, 57, 0.15, 19},
-                {"From Test Data2a", "CGGAAGAGCGGTTCAGCAGGAATGCCGAGATCCGAA", REVERSE, 9, 0.14, 27},  // XT:i:28
-                {"From Test Data2b", "CGGAAGAGCGGTTCAGCAGGAATGCCGAGATCGGAA", REVERSE, 10, 0.14, -1},  // only matches 9
-                {"From PE Test Data1", "CGGTTCAGCAGGAATGCCGAGATCGGAAGAGCGGGT", FORWARD, 17, 0.14, 19},
-                {"From PE Test Data2", "CGGTTCAGCAGGAATGCCGAGATCGGAAGAGCGGGT", REVERSE, 5, 0.14, -1},
-                new Object[] {"From Test 8-clipped", "TGGGGTGGTTATTGTTGATTTTTGTTTGTGTGTTAGGTTGTTTGTGTTAGTTTTTTATTTTATTTTCGAGATCGAA", FORWARD, 8, 0.14, 68},
-                {"50% can be bad", "AAAAACCCCCAGGTCGGAAGAGCG", "AGATCGGAAGAGCG", 5, 0.5, 18},        // 18?
-
-                {"From 30E54AAXX.5.a", "ATATCTGAAGATCTCGTATGCCGTCTTCTGCTTG", "AGATCGGAAGAGCTCGTATGCCGTCTTCTGCTTG", 34, 0.14, 0},  // 0!? From KT test case
-                {"From 30E54AAXX.5.b", "ATATCTGAAGATCTCGTATGCCGTCTTCTGCTTG", SE_FORWARD, 34, 0.14, 0},  // 1?? From KT test case
-        };
-    }
-
-    @DataProvider(name="clipPairedTestData")
-    public Object[][] getClipPairedTestData() {
-        return new Object[][] {
-                {"Basic positive paired test matching",    "CTACTGGCGCTGAAACTGAGCAGCCAAGCAGATCGG", "GCTTGGCTGCTCAGTTTCAGCGCCAGTAGAGATCGG", IlluminaAdapterPair.INDEXED},
-                // This matches on first end and matches at higher stringency on that one side
-                {"Basic positive first end one-sided test matching", "CTACTGGCGCTGAAAAGATCGGAAGAGCGGTTCAGC", "AAAAAATTTTTTCCCCCCGGGGGGAAAAAATTTTTT", IlluminaAdapterPair.PAIRED_END},
-                // This matches on second end and matches at higher stringency on that one side
-                {"Basic positive second end one-sided test matching", "AAAAAATTTTTTCCCCCCGGGGGGAAAAAATTTTTT", "AAAAAATTTTTTCCCAGATCGGAAGAGCGTCGTGTA", IlluminaAdapterPair.PAIRED_END},
-                // This matches on one side and does not match at higher stringency on that one side
-                {"Basic negative one-sided test matching", "GGCGCTGAAACTACTGGCGCTGAAAAGATCGGAAGA", "AAAAAATTTTTTCCCCCCGGGGGGAAAAAATTTTTT", null},
-                // These match but at different positions.  No clip should be done.
-                {"Mis-match paired test matching",    "CTACTGGCGCTGAAACTGAGCAGCCAAGCAGATCGG", "AGCTTGGCTGCTCAGTTTCAGCGCCAGTAGAGATCG", null},
-        };
-    }
-
-    private static class SingleEndAdapter implements AdapterPair {
-        private final String name;
-        private final String threePrimeAdapter;
-
-        private SingleEndAdapter(final String name, final String threePrimeAdapter) {
-            this.name = name;
-            this.threePrimeAdapter = threePrimeAdapter;
-        }
-
-        @Override
-        public String get3PrimeAdapter() {
-            return threePrimeAdapter;
-        }
-
-        @Override
-        public String get3PrimeAdapterInReadOrder() {
-            return threePrimeAdapter;
-        }
-
-        @Override
-        public byte[] get3PrimeAdapterBytes() {
-            return StringUtil.stringToBytes(threePrimeAdapter);
-        }
-
-        @Override
-        public byte[] get3PrimeAdapterBytesInReadOrder() {
-            return get3PrimeAdapterBytes();
-        }
-
-        @Override
-        public String get5PrimeAdapter() {
-            throw new UnsupportedOperationException();
-        }
-
-        @Override
-        public String get5PrimeAdapterInReadOrder() {
-            throw new UnsupportedOperationException();
-        }
-
-        @Override
-        public byte[] get5PrimeAdapterBytes() {
-            throw new UnsupportedOperationException();
-        }
-
-        @Override
-        public byte[] get5PrimeAdapterBytesInReadOrder() {
-            throw new UnsupportedOperationException();
-        }
-
-        @Override
-        public String getName() {
-            return name;
-        }
-
-    }
-
-    /**
-     * @return A String of given length with 6 As, 6 Cs, 6 Gs, etc. until length is reached.
-     */
-    private static String makeBogusReadString(final int len) {
-        final StringBuilder builder = new StringBuilder(len);
-        final Map<Character, Character> nextChar = new HashMap<Character, Character>();
-        nextChar.put('A', 'C');
-        nextChar.put('C', 'G');
-        nextChar.put('G', 'T');
-        nextChar.put('T', 'A');
-        for (char curChar = 'A'; true; curChar = nextChar.get(curChar)) {
-            for (int i = 0; i < 6; ++i) {
-                if (builder.length() == len) return builder.toString();
-                builder.append(curChar);
-            }
-        }
-    }
-
-    private static String patchAdapterSubsequenceIntoRead(final String read, final String adapter, final int length) {
-        return replaceSubstring(read, adapter.substring(0, length), read.length() - length, read.length());
-    }
-
-    private static String replaceSubstring(final String s, final String replacement, final int position, final int charsToReplace) {
-        final StringBuilder sb = new StringBuilder(s);
-        sb.replace(position, position + charsToReplace, replacement);
-        return sb.toString();
-    }
-
-
-    @Test
-    public void testAdapterTruncation() {
-        final AdapterMarker marker = new AdapterMarker(30,
-                IlluminaUtil.IlluminaAdapterPair.INDEXED,
-                IlluminaUtil.IlluminaAdapterPair.DUAL_INDEXED,
-                IlluminaUtil.IlluminaAdapterPair.NEXTERA_V2,
-                IlluminaUtil.IlluminaAdapterPair.FLUIDIGM);
-        // INDEXED and DUAL_INDEXED should collapse at length 30
-        Assert.assertTrue(marker.getAdapters().length < 4, "Did not collapse: " + marker.getAdapters().length);
-    }
-
-    /**
-     * Confirm that after the requisite number of sightings of adapter, the list is trimmed
-     */
-    @Test(dataProvider = "testAdapterListTruncationDataProvider")
-    public void testAdapterListTruncation(final IlluminaAdapterPair adapterPair) {
-        final int thresholdForTruncatingAdapterList = 20;
-        final int readLength = 100;
-
-        // Throw all the adapter pairs into the marker.  There is some danger in doing this because
-        // IlluminaAdapterPair.ALTERNATIVE_SINGLE_END has 3' that is a substring of some of the others.  In the enum it appears
-        // last so it is tested last.
-        final AdapterMarker marker =
-                new AdapterMarker(IlluminaUtil.IlluminaAdapterPair.values()).
-                        setThresholdForSelectingAdaptersToKeep(thresholdForTruncatingAdapterList);
-        int adapterPosition = 1;
-
-        Assert.assertTrue(adapterPosition + thresholdForTruncatingAdapterList < readLength - ClippingUtility.MIN_MATCH_BASES,
-                "Test is configured improperly -- eventually will not be enough adapter bases in read.");
-
-        int originalNumberOfAdapters = marker.getAdapters().length;
-        for (int i = 0; i < thresholdForTruncatingAdapterList; ++i) {
-
-            // First, a read with no adapter in it.
-            SAMRecord rec = new SAMRecord(null);
-            rec.setReadString(makeBogusReadString(readLength));
-            AdapterPair matchedPair = marker.adapterTrimIlluminaSingleRead(rec);
-            Assert.assertNull(matchedPair);
-            Assert.assertNull(rec.getAttribute(ReservedTagConstants.XT));
-
-            // Adapter list should not be truncated yet
-            Assert.assertEquals(marker.getAdapters().length, originalNumberOfAdapters);
-
-            // Then, a record with some adapter sequence in it.
-            rec = createSamRecordWithAdapterSequence(readLength, adapterPair, adapterPosition);
-            matchedPair = marker.adapterTrimIlluminaSingleRead(rec);
-            Assert.assertNotNull(matchedPair);
-            Assert.assertEquals(rec.getIntegerAttribute(ReservedTagConstants.XT).intValue(), adapterPosition + 1,
-                    rec.getReadString() + " matched " + matchedPair);
-
-            // Put adapter in different place next time.
-            adapterPosition++;
-        }
-
-        Assert.assertEquals(marker.getAdapters().length, 1, "Did not truncate adapter list to 1 element");
-        Assert.assertTrue(marker.getAdapters()[0].getName().contains(adapterPair.getName()),
-                String.format("Expected '%s' to contain '%s'", marker.getAdapters()[0].getName(), adapterPair.getName()));
-    }
-
-    @DataProvider(name="testAdapterListTruncationDataProvider")
-    public Object[][] testAdapterListTruncationDataProvider() {
-        Object[][] ret = new Object[IlluminaAdapterPair.values().length][];
-        for (int i = 0; i < ret.length; ++i) {
-            ret[i] = new Object[]{IlluminaAdapterPair.values()[i]};
-        }
-        return ret;
-    }
-}
diff --git a/src/tests/java/net/sf/picard/util/DelimitedTextFileWithHeaderIteratorTest.java b/src/tests/java/net/sf/picard/util/DelimitedTextFileWithHeaderIteratorTest.java
deleted file mode 100644
index 510ef19..0000000
--- a/src/tests/java/net/sf/picard/util/DelimitedTextFileWithHeaderIteratorTest.java
+++ /dev/null
@@ -1,95 +0,0 @@
-package net.sf.picard.util;
-
-import net.sf.samtools.util.StringUtil;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileWriter;
-
-public class DelimitedTextFileWithHeaderIteratorTest {
-    @Test
-    public void basicParsingTest() throws Exception {
-        final String[][] data = new String[][] {
-                new String[] {"FOO", "BAR", "SPLAT"},
-                new String[] {"1", "2", "3"},
-                new String[] {"a", "b", "c"},
-                new String[] {"foo", "bar", "splat"},
-        };
-
-        final File tmp = File.createTempFile("tabbedTextTest.", ".txt");
-        tmp.deleteOnExit();
-        final BufferedWriter out = new BufferedWriter(new FileWriter(tmp));
-
-        for (final String[] fields : data) {
-            out.write(StringUtil.join("\t", fields));
-            out.newLine();
-        }
-
-        out.close();
-
-        final TabbedInputParser parser = new TabbedInputParser(false, tmp);
-        final DelimitedTextFileWithHeaderIterator fileIterator = new DelimitedTextFileWithHeaderIterator(parser);
-        for (final String col : data[0]) Assert.assertTrue(fileIterator.hasColumn(col));
-
-        int i=1;
-        for (final DelimitedTextFileWithHeaderIterator.Row row : new IterableAdapter<DelimitedTextFileWithHeaderIterator.Row>(fileIterator)) {
-            final String[] expected = data[i++];
-            Assert.assertEquals(row.getFields(), expected);
-            Assert.assertEquals(row.getCurrentLine(), StringUtil.join("\t", expected));
-        }
-
-        Assert.assertEquals(i, data.length);
-    }
-
-    @Test
-    public void parsingWithColumnHeadersTest() throws Exception {
-        final String[] headers = {"STRING", "STRING2", "NUMBER"};
-
-        final String[][] data = new String[][] {
-                headers,
-                new String[] {"1", "2", "3"},
-                new String[] {"a", "b", "2"},
-                new String[] {"foo", "bar", ""},
-        };
-
-
-        final File tmp = File.createTempFile("tabbedTextTest.", ".txt");
-        tmp.deleteOnExit();
-        final BufferedWriter out = new BufferedWriter(new FileWriter(tmp));
-
-        for (final String[] fields : data) {
-            out.write(StringUtil.join("\t", fields));
-            out.newLine();
-        }
-
-        out.close();
-
-        final TabbedInputParser parser = new TabbedInputParser(false, tmp);
-        final DelimitedTextFileWithHeaderIterator fileIterator = new DelimitedTextFileWithHeaderIterator(parser);
-        for (final String col : headers) Assert.assertTrue(fileIterator.hasColumn(col));
-
-        int i=1;
-        for (final DelimitedTextFileWithHeaderIterator.Row row : new IterableAdapter<DelimitedTextFileWithHeaderIterator.Row>(fileIterator)) {
-            final String[] expected = data[i++];
-            final String[] actual = row.getFields();
-            for (int j = 0; j < expected.length; j++) {
-                Assert.assertTrue((expected[j].equals("") && actual[j] == null) || expected[j].equals(actual[j]));
-            }
-            Assert.assertEquals(row.getCurrentLine(), StringUtil.join("\t", expected));
-            try {
-                row.getField(headers[0]);
-                row.getField(headers[1]);
-                row.getIntegerField(headers[2]);
-            }
-            catch(Exception e) {
-                Assert.fail("Failed to parse one of the fields in " + row.getCurrentLine() + ": " + e.getMessage());
-            }
-        }
-
-        Assert.assertEquals(i, data.length);
-    }
-
-
-}
diff --git a/src/tests/java/net/sf/picard/util/FileChannelJDKBugWorkAroundTest.java b/src/tests/java/net/sf/picard/util/FileChannelJDKBugWorkAroundTest.java
deleted file mode 100644
index c2cd971..0000000
--- a/src/tests/java/net/sf/picard/util/FileChannelJDKBugWorkAroundTest.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.util;
-
-import org.testng.annotations.Test;
-
-/**
- * @author alecw at broadinstitute.org
- */
-public class FileChannelJDKBugWorkAroundTest {
-    @Test
-    public void testBasic() {
-        FileChannelJDKBugWorkAround.doBugWorkAround();
-    }
-}
diff --git a/src/tests/java/net/sf/picard/util/HistogramTest.java b/src/tests/java/net/sf/picard/util/HistogramTest.java
deleted file mode 100644
index 7585643..0000000
--- a/src/tests/java/net/sf/picard/util/HistogramTest.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package net.sf.picard.util;
-
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import static java.lang.Math.abs;
-
-/**
- *
- */
-public class HistogramTest {
-
-    @Test(dataProvider = "histogramData")
-    public void testHistogramFunctions(final int[] values, final double mean, final double stdev, final Integer trimByWidth) {
-        final Histogram<Integer> histo = new Histogram<Integer>();
-        for (int value : values) {
-            histo.increment(value);
-        }
-
-        if (trimByWidth != null) histo.trimByWidth(trimByWidth);
-        final double m = histo.getMean();
-        final double sd = histo.getStandardDeviation();
-
-        Assert.assertEquals(round(mean), round(m), "Means are not equal");
-        Assert.assertEquals(round(stdev), round(sd), "Stdevs are not equal");
-    }
-
-    @DataProvider(name = "histogramData")
-    public Object[][] histogramData() {
-        return new Object[][] {
-            new Object[] {new int[] {1,2,3,4,5,6,7,8,9,10} , 5.5d, 3.027650d, null },
-            new Object[] {new int[] {1,2,2,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,6,6,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9}, 6.333333d, 2.236068d, null  },
-            new Object[] {new int[] {-5, -4, -3, -2, -1,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15}, 5d, 6.204837d, null  },
-                new Object[] {new int[] {1,2,3,4,5,6,7,8,9,10, 11, 11, 12, 100, 1000} , 5.5d, 3.027650d, 10 },
-                new Object[] {new int[] {1,2,2,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,6,6,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9, 20, 20, 21, 25, 25}, 6.333333d, 2.236068d, 11  },
-                new Object[] {new int[] {-5, -4, -3, -2, -1,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 101, 102, 103, 200, 2000}, 5d, 6.204837d, 20  }
-        };
-    }
-
-    @Test
-    public void testGeometricMean() {
-        final int[] is = new int[] {4,4,4,4,5,5,5,5,6,6,6,6,6,6,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8};
-        final Histogram<Integer> histo = new Histogram<Integer>();
-        for (final int i : is) histo.increment(i);
-        Assert.assertTrue(abs(histo.getGeometricMean() - 6.216797) < 0.00001);
-    }
-
-    @Test(dataProvider = "medianTestData")
-    public void testMedian(final int [] values, final double median) {
-        final Histogram<Integer> histo = new Histogram<Integer>();
-        for (final int i : values) histo.increment(i);
-        Assert.assertEquals(histo.getMedian(), median);
-    }
-
-    @DataProvider(name = "medianTestData")
-    public Object[][] medianTestData() {
-        return new Object[][] {
-                new Object[] {new int[] {} , 0d},
-                new Object[] {new int[] {999} , 999d},
-                new Object[] {new int[] {1,2,3,4,5,6} , 3.5d},
-                new Object[] {new int[] {5,5,5,5,5,6,6} , 5d},
-                new Object[] {new int[] {5,5,5,5,5,6,6,6,6,6} , 5.5d},
-        };
-    }
-
-    @Test
-    public void testMad() {
-        final int[] is = new int[] {4,4,4,4,5,5,5,5,6,6,6,6,6,6,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8};
-        final Histogram<Integer> histo = new Histogram<Integer>();
-        for (final int i : is) histo.increment(i);
-
-        Assert.assertEquals(7d, histo.getMedian());
-        Assert.assertEquals(1d, histo.getMedianAbsoluteDeviation());
-        Assert.assertTrue(abs(histo.estimateSdViaMad() - 1.4826) < 0.0001);
-    }
-
-
-    private double round(final double in) {
-        long l = (long) (in * 10000);
-        return l / 10000d;
-    }
-
-}
diff --git a/src/tests/java/net/sf/picard/util/IOUtilTest.java b/src/tests/java/net/sf/picard/util/IOUtilTest.java
deleted file mode 100644
index 46fa5b9..0000000
--- a/src/tests/java/net/sf/picard/util/IOUtilTest.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.util;
-
-import net.sf.samtools.util.IOUtil;
-import org.testng.Assert;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.io.IOException;
-
-public class IOUtilTest {
-    private File existingTempFile;
-    private String systemTempDir;
-
-    @BeforeClass
-    public void setUp() throws IOException {
-        existingTempFile = File.createTempFile("FiletypeTest.", ".tmp");
-        existingTempFile.deleteOnExit();
-        systemTempDir = System.getProperty("java.io.tmpdir");
-        final File tmpDir = new File(systemTempDir);
-        if (!tmpDir.isDirectory()) tmpDir.mkdir();
-        if (!tmpDir.isDirectory())
-            throw new RuntimeException("java.io.tmpdir (" + systemTempDir + ") is not a directory");
-    }
-
-    @Test(dataProvider = "fileTypeTestCases")
-    public void testFileType(final String path, boolean expectedIsRegularFile) {
-        final File file = new File(path);
-        Assert.assertEquals(IOUtil.isRegularPath(file), expectedIsRegularFile);
-    }
-
-    @Test(dataProvider = "unixFileTypeTestCases", groups={"unix"})
-    public void testFileTypeUnix(final String path, boolean expectedIsRegularFile) {
-        final File file = new File(path);
-        Assert.assertEquals(IOUtil.isRegularPath(file), expectedIsRegularFile);
-    }
-
-    @DataProvider(name = "fileTypeTestCases")
-    private Object[][] fileTypeTestCases() {
-        return new Object[][] {
-                {existingTempFile.getAbsolutePath(), Boolean.TRUE},
-                {systemTempDir, Boolean.FALSE}
-
-        };
-    }
-
-    @DataProvider(name = "unixFileTypeTestCases")
-    private Object[][] unixFileTypeTestCases() {
-        return new Object[][] {
-                {"/dev/null",   Boolean.FALSE},
-                {"/dev/stdout", Boolean.FALSE},
-                {"/non/existent/file", Boolean.TRUE},
-        };
-    }
-}
diff --git a/src/tests/java/net/sf/picard/util/IlluminaUtilTest.java b/src/tests/java/net/sf/picard/util/IlluminaUtilTest.java
deleted file mode 100644
index 365d696..0000000
--- a/src/tests/java/net/sf/picard/util/IlluminaUtilTest.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package net.sf.picard.util;
-
-import org.testng.annotations.Test;
-import org.testng.annotations.DataProvider;
-import org.testng.Assert;
-
-/**
- * Just some simple tests for the IlluminaUtil.getTileFromReadName() method for now.
- *
- * @author Tim Fennell
- */
-public class IlluminaUtilTest {
-    @Test(dataProvider="readNames") public void testFindTileInReadName(final String readName, final Integer tile) {
-        final Integer otherTile = IlluminaUtil.getTileFromReadName(readName);
-        Assert.assertEquals(otherTile, tile, "Tile numbers do not match for read name: " + readName);
-    }
-
-    @Test public void performanceTestGetTileFromReadName() {
-        final int ITERATIONS = 5000000;
-
-        final long startTime = System.currentTimeMillis();
-        for (int i=0; i<ITERATIONS; ++i) {
-            final Integer tile = IlluminaUtil.getTileFromReadName("300WFAAXX090909:1:1:1024:978#0/1");
-            if (tile == null || tile != 1) throw new RuntimeException("WTF?");
-        }
-        final long endTime = System.currentTimeMillis();
-
-        System.out.println("Time taken: " + (endTime-startTime) + "ms.");
-    }
-
-    @DataProvider(name="readNames")
-    public Object[][] readNames() {
-        return new Object[][] {
-                new Object[] {"300WFAAXX:1:119:1024:978#0/1", 119},
-                new Object[] {"300WFAAXX090909:1:1:1024:978#0/1", 1},
-                new Object[] {"FOO", null},
-                new Object[] {"FOO:BAR_splat", null}
-        };
-    }
-
-    public static final byte [] iToB(int [] intVals) {
-        byte [] byteVals = new byte[intVals.length];
-        for(int i = 0; i < byteVals.length; i++) {
-            byteVals[i] = (byte) intVals[i];
-        }
-        return byteVals;
-    }
-
-    public byte[][] byteBuffersSizeCopy(byte [][] bytes) {
-        byte [][] outBytes = new byte[bytes.length][];
-        for(int i = 0; i < bytes.length; i++) {
-            outBytes[i] = new byte[bytes[i].length];
-        }
-
-        return outBytes;
-    }
-
-    @DataProvider(name = "solexaQualStrToPhreds")
-    public Object [][] solexaQualStrToPhredsToPhreds() {
-        return new Object[][] {
-            new Object[] {
-                "x at Axy" + ((char)156) + ((char) 157) + ((char) 0) + ((char) 1) + "?",
-                new byte[][] {
-                    new byte[]{}, iToB(new int[]{56}),  iToB(new int[]{0, 1, 56, 57, 92, 93}),
-                        iToB(new int[]{-64, -63, -1}), new byte[]{}
-                }
-            },
-            new Object[] {
-                "nNpZo" + ((char)250) + ((char) 255) + ((char) 1) + ((char) 1) + "CCaB",
-                new byte[][] {
-                    iToB(new int[]{46, 14}),  iToB(new int[]{48, 26, 47, -70, -65, -63, -63, 3, 3, 33}), iToB(new int[]{2})
-                }
-            }
-        };
-    }
-
-    /*
-    @Test(dataProvider = "solexaQualStrToPhreds")
-    public void makePhredBinaryFromSolexaQualityAscii_1_3_toArrays(final String solexaQualities, final int offset, final byte [][] expectedBuffers) {
-        byte [][] actualBuffers = byteBuffersSizeCopy(expectedBuffers);
-        IlluminaUtil.makePhredBinaryFromSolexaQualityAscii_1_3(solexaQualities, offset, actualBuffers);
-
-        for(int i = 0; i < expectedBuffers.length; i++) {
-            Assert.assertEquals(expectedBuffers[i], actualBuffers[i]);
-        }
-    }*/
-}
diff --git a/src/tests/java/net/sf/picard/util/IntervalListTest.java b/src/tests/java/net/sf/picard/util/IntervalListTest.java
deleted file mode 100644
index 39f2b39..0000000
--- a/src/tests/java/net/sf/picard/util/IntervalListTest.java
+++ /dev/null
@@ -1,387 +0,0 @@
-package net.sf.picard.util;
-
-import net.sf.samtools.SAMFileHeader;
-import net.sf.samtools.SAMSequenceRecord;
-import net.sf.samtools.util.CollectionUtil;
-import org.testng.Assert;
-import org.testng.annotations.*;
-
-import java.io.File;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * Tests the IntervalList class
- */
-public class IntervalListTest {
-
-
-    final SAMFileHeader fileHeader;
-
-    final IntervalList list1, list2, list3;
-
-    public IntervalListTest() {
-        fileHeader = IntervalList.fromFile(new File("testdata/net/sf/picard/intervallist/IntervalListchr123_empty.interval_list")).getHeader();
-        fileHeader.setSortOrder(SAMFileHeader.SortOrder.unsorted);
-
-        list1 = new IntervalList(fileHeader);
-        list2 = new IntervalList(fileHeader);
-        list3 = new IntervalList(fileHeader);
-
-
-        list1.add(new Interval("1", 1, 100));     //de-facto: 1:1-200 1:202-300     2:100-150 2:200-300
-        list1.add(new Interval("1", 101, 200));
-        list1.add(new Interval("1", 202, 300));
-        list1.add(new Interval("2", 200, 300));
-        list1.add(new Interval("2", 100, 150));
-
-        list2.add(new Interval("1", 50, 150));   //de-facto 1:50-150 1:301-500      2:1-150 2:250-270 2:290-400
-        list2.add(new Interval("1", 301, 500));
-        list2.add(new Interval("2", 1, 150));
-        list2.add(new Interval("2", 250, 270));
-        list2.add(new Interval("2", 290, 400));
-
-        list3.add(new Interval("1", 25, 400));    //de-facto 1:25-400                2:200-600                            3:50-470
-        list3.add(new Interval("2", 200, 600));
-        list3.add(new Interval("3", 50, 470));
-    }
-
-
-    @DataProvider(name = "intersectData")
-    public Object[][] intersectData() {
-        final IntervalList intersect123 = new IntervalList(fileHeader);
-        final IntervalList intersect12 = new IntervalList(fileHeader);
-        final IntervalList intersect13 = new IntervalList(fileHeader);
-        final IntervalList intersect23 = new IntervalList(fileHeader);
-
-        intersect123.add(new Interval("1", 50, 150));
-        intersect123.add(new Interval("2", 250, 270));
-        intersect123.add(new Interval("2", 290, 300));
-
-        intersect12.add(new Interval("1", 50, 150));
-        intersect12.add(new Interval("2", 100, 150));
-        intersect12.add(new Interval("2", 250, 270));
-        intersect12.add(new Interval("2", 290, 300));
-
-        intersect13.add(new Interval("1", 25, 200));
-        intersect13.add(new Interval("1", 202, 300));
-        intersect13.add(new Interval("2", 200, 300));
-
-        intersect23.add(new Interval("1", 50, 150));
-        intersect23.add(new Interval("1", 301, 400));
-        intersect23.add(new Interval("2", 250, 270));
-        intersect23.add(new Interval("2", 290, 400));
-
-
-        return new Object[][]{
-                new Object[]{Arrays.asList(list1, list2, list3), intersect123},
-                new Object[]{Arrays.asList(list1, list2), intersect12},
-                new Object[]{Arrays.asList(list2, list1), intersect12},
-                new Object[]{Arrays.asList(list2, list3), intersect23},
-                new Object[]{Arrays.asList(list3, list2), intersect23},
-                new Object[]{Arrays.asList(list1, list3), intersect13},
-                new Object[]{Arrays.asList(list3, list1), intersect13}
-        };
-    }
-
-    @Test(dataProvider = "intersectData")
-    public void testIntersectIntervalLists(final List<IntervalList> lists, final IntervalList list) {
-        Assert.assertEquals(
-                CollectionUtil.makeCollection(IntervalList.intersection(lists).iterator()),
-                CollectionUtil.makeCollection(list.iterator()));
-    }
-
-    @DataProvider(name = "mergeData")
-    public Object[][] mergeData() {
-        final IntervalList merge123 = new IntervalList(fileHeader);
-        final IntervalList merge12 = new IntervalList(fileHeader);
-        final IntervalList merge23 = new IntervalList(fileHeader);
-        final IntervalList merge13 = new IntervalList(fileHeader);
-
-
-        merge123.add(new Interval("1", 1, 100));     //de-facto: 1:1-200 1:202-300     2:100-150 2:200-300
-        merge123.add(new Interval("1", 101, 200));
-        merge123.add(new Interval("1", 202, 300));
-        merge123.add(new Interval("2", 200, 300));
-        merge123.add(new Interval("2", 100, 150));
-
-        merge123.add(new Interval("1", 50, 150));   //de-facto 1:50-150 1:301-500      2:1-150 2:250-270 2:290-400
-        merge123.add(new Interval("1", 301, 500));
-        merge123.add(new Interval("2", 1, 150));
-        merge123.add(new Interval("2", 250, 270));
-        merge123.add(new Interval("2", 290, 400));
-
-        merge123.add(new Interval("1", 25, 400));    //de-facto 1:25-400                2:200-600                            3:50-470
-        merge123.add(new Interval("2", 200, 600));
-        merge123.add(new Interval("3", 50, 470));
-
-
-        merge12.add(new Interval("1", 1, 100));     //de-facto: 1:1-200 1:202-300     2:100-150 2:200-300
-        merge12.add(new Interval("1", 101, 200));
-        merge12.add(new Interval("1", 202, 300));
-        merge12.add(new Interval("2", 200, 300));
-        merge12.add(new Interval("2", 100, 150));
-
-        merge12.add(new Interval("1", 50, 150));   //de-facto 1:50-150 1:301-500      2:1-150 2:250-270 2:290-400
-        merge12.add(new Interval("1", 301, 500));
-        merge12.add(new Interval("2", 1, 150));
-        merge12.add(new Interval("2", 250, 270));
-        merge12.add(new Interval("2", 290, 400));
-
-        merge23.add(new Interval("1", 50, 150));   //de-facto 1:50-150 1:301-500      2:1-150 2:250-270 2:290-400
-        merge23.add(new Interval("1", 301, 500));
-        merge23.add(new Interval("2", 1, 150));
-        merge23.add(new Interval("2", 250, 270));
-        merge23.add(new Interval("2", 290, 400));
-
-        merge23.add(new Interval("1", 25, 400));    //de-facto 1:25-400                2:200-600                            3:50-470
-        merge23.add(new Interval("2", 200, 600));
-        merge23.add(new Interval("3", 50, 470));
-
-
-        merge13.add(new Interval("1", 1, 100));     //de-facto: 1:1-200 1:202-300     2:100-150 2:200-300
-        merge13.add(new Interval("1", 101, 200));
-        merge13.add(new Interval("1", 202, 300));
-        merge13.add(new Interval("2", 200, 300));
-        merge13.add(new Interval("2", 100, 150));
-
-        merge13.add(new Interval("1", 25, 400));    //de-facto 1:25-400                2:200-600                            3:50-470
-        merge13.add(new Interval("2", 200, 600));
-        merge13.add(new Interval("3", 50, 470));
-
-
-        return new Object[][]{
-                new Object[]{Arrays.asList(list1, list2, list3), merge123},
-                new Object[]{Arrays.asList(list1, list2), merge12},
-                new Object[]{Arrays.asList(list2, list3), merge23},
-                new Object[]{Arrays.asList(list1, list3), merge13}
-
-        };
-    }
-
-
-    @Test(dataProvider = "mergeData")
-    public void testMergeIntervalLists(final List<IntervalList> lists, final IntervalList list) {
-        Assert.assertEquals(
-                CollectionUtil.makeCollection(IntervalList.concatenate(lists).iterator()),
-                CollectionUtil.makeCollection(list.iterator()));
-    }
-
-
-    @DataProvider(name = "unionData")
-    public Object[][] unionData() {
-        final IntervalList union123 = new IntervalList(fileHeader);
-        final IntervalList union12 = new IntervalList(fileHeader);
-        final IntervalList union13 = new IntervalList(fileHeader);
-        final IntervalList union23 = new IntervalList(fileHeader);
-
-        union123.add(new Interval("1", 1, 500));
-        union123.add(new Interval("2", 1, 150));
-        union123.add(new Interval("2", 200, 600));
-        union123.add(new Interval("3", 50, 470));
-
-        union12.add(new Interval("1", 1, 200));
-        union12.add(new Interval("1", 202, 500));
-        union12.add(new Interval("2", 1, 150));
-        union12.add(new Interval("2", 200, 400));
-
-
-        union23.add(new Interval("1", 25, 500));
-        union23.add(new Interval("2", 1, 150));
-        union23.add(new Interval("2", 200, 600));
-        union23.add(new Interval("3", 50, 470));
-
-        union13.add(new Interval("1", 1, 400));
-        union13.add(new Interval("2", 100, 150));
-        union13.add(new Interval("2", 200, 600));
-        union13.add(new Interval("3", 50, 470));
-
-
-        return new Object[][]{
-                new Object[]{Arrays.asList(list1, list2, list3), union123},
-                new Object[]{Arrays.asList(list1, list2), union12},
-                new Object[]{Arrays.asList(list1, list2), union12},
-                new Object[]{Arrays.asList(list2, list3), union23},
-                new Object[]{Arrays.asList(list2, list3), union23},
-                new Object[]{Arrays.asList(list1, list3), union13},
-                new Object[]{Arrays.asList(list1, list3), union13}
-        };
-    }
-
-    @Test(dataProvider = "unionData", enabled = true)
-    public void testUnionIntervalLists(final List<IntervalList> lists, final IntervalList list) {
-        Assert.assertEquals(
-                CollectionUtil.makeCollection(IntervalList.union(lists).iterator()),
-                CollectionUtil.makeCollection(list.iterator()));
-    }
-
-    @DataProvider(name = "invertData")
-    public Object[][] invertData() {
-        final IntervalList invert1 = new IntervalList(fileHeader);
-        final IntervalList invert2 = new IntervalList(fileHeader);
-        final IntervalList invert3 = new IntervalList(fileHeader);
-
-        final IntervalList full = new IntervalList(fileHeader);
-        final IntervalList fullChopped = new IntervalList(fileHeader);
-        final IntervalList empty = new IntervalList(fileHeader);
-
-
-        invert1.add(new Interval("1", 201, 201));
-        invert1.add(new Interval("1", 301, fileHeader.getSequence("1").getSequenceLength()));
-        invert1.add(new Interval("2", 1, 99));
-        invert1.add(new Interval("2", 151, 199));
-        invert1.add(new Interval("2", 301, fileHeader.getSequence("2").getSequenceLength()));
-        invert1.add(new Interval("3", 1, fileHeader.getSequence("3").getSequenceLength()));
-
-        invert2.add(new Interval("1", 1, 49));
-        invert2.add(new Interval("1", 151, 300));
-        invert2.add(new Interval("1", 501, fileHeader.getSequence("1").getSequenceLength()));
-        invert2.add(new Interval("2", 151, 249));
-        invert2.add(new Interval("2", 271, 289));
-        invert2.add(new Interval("2", 401, fileHeader.getSequence("2").getSequenceLength()));
-        invert2.add(new Interval("3", 1, fileHeader.getSequence("3").getSequenceLength()));
-
-        invert3.add(new Interval("1", 1, 24));
-        invert3.add(new Interval("1", 401, fileHeader.getSequence("1").getSequenceLength()));
-        invert3.add(new Interval("2", 1, 199));
-        invert3.add(new Interval("2", 601, fileHeader.getSequence("2").getSequenceLength()));
-        invert3.add(new Interval("3", 1, 49));
-        invert3.add(new Interval("3", 471, fileHeader.getSequence("3").getSequenceLength()));
-
-        for (final SAMSequenceRecord samSequenceRecord : fileHeader.getSequenceDictionary().getSequences()) {
-            full.add(new Interval(samSequenceRecord.getSequenceName(), 1, samSequenceRecord.getSequenceLength()));
-
-            fullChopped.add(new Interval(samSequenceRecord.getSequenceName(), 1, samSequenceRecord.getSequenceLength() / 2));
-            fullChopped.add(new Interval(samSequenceRecord.getSequenceName(), samSequenceRecord.getSequenceLength() / 2 + 1, samSequenceRecord.getSequenceLength()));
-        }
-
-
-        return new Object[][]{
-                new Object[]{list1, invert1},
-                new Object[]{list2, invert2},
-                new Object[]{list3, invert3},
-                new Object[]{full, empty},
-                new Object[]{empty, full},
-                new Object[]{fullChopped, empty}
-        };
-    }
-
-
-    @Test(dataProvider = "invertData")
-    public void testInvertSquared(final IntervalList list, @SuppressWarnings("UnusedParameters") final IntervalList ignored) throws Exception {
-        final IntervalList inverseSquared = IntervalList.invert(IntervalList.invert(list));
-        final IntervalList originalClone = new IntervalList(list.getHeader());
-
-        for (final Interval interval : list) {
-            originalClone.add(interval);
-        }
-
-        Assert.assertEquals(
-                CollectionUtil.makeCollection(inverseSquared.iterator()),
-                CollectionUtil.makeCollection(originalClone.uniqued().iterator()));
-    }
-
-    @Test(dataProvider = "invertData")
-    public void testInvert(final IntervalList list, final IntervalList inverse) throws Exception {
-        Assert.assertEquals(
-                CollectionUtil.makeCollection(IntervalList.invert(list).iterator()),
-                CollectionUtil.makeCollection(inverse.iterator()));
-    }
-
-
-    @DataProvider(name = "subtractData")
-    public Object[][] subtractData() {
-        final IntervalList subtract12_from_3 = new IntervalList(fileHeader);
-        final IntervalList subtract1_from_2 = new IntervalList(fileHeader);
-        final IntervalList subtract2_from_3 = new IntervalList(fileHeader);
-        final IntervalList subtract1_from_3 = new IntervalList(fileHeader);
-        final IntervalList subtract3_from_1 = new IntervalList(fileHeader);
-
-
-        subtract12_from_3.add(new Interval("1", 201, 201));
-        subtract12_from_3.add(new Interval("2", 401, 600));
-        subtract12_from_3.add(new Interval("3", 50, 470));
-
-        subtract1_from_2.add(new Interval("1", 301, 500));
-        subtract1_from_2.add(new Interval("2", 1, 99));
-        subtract1_from_2.add(new Interval("2", 301, 400));
-
-
-        subtract2_from_3.add(new Interval("1", 25, 49));
-        subtract2_from_3.add(new Interval("1", 151, 300));
-        subtract2_from_3.add(new Interval("2", 200, 249));
-        subtract2_from_3.add(new Interval("2", 271, 289));
-        subtract2_from_3.add(new Interval("2", 401, 600));
-        subtract2_from_3.add(new Interval("3", 50, 470));
-
-        subtract1_from_3.add(new Interval("1", 201, 201));
-        subtract1_from_3.add(new Interval("1", 301, 400));
-        subtract1_from_3.add(new Interval("2", 301, 600));
-        subtract1_from_3.add(new Interval("3", 50, 470));
-
-        subtract3_from_1.add(new Interval("1", 1, 49));    //de-facto 1:25-400                2:200-600                            3:50-470
-        subtract3_from_1.add(new Interval("2", 100, 150));
-
-
-        return new Object[][]{
-                new Object[]{CollectionUtil.makeList(list3), CollectionUtil.makeList(list1, list2), subtract12_from_3},
-                new Object[]{CollectionUtil.makeList(list2), CollectionUtil.makeList(list1), subtract1_from_2},
-                new Object[]{CollectionUtil.makeList(list3), CollectionUtil.makeList(list2), subtract2_from_3},
-                new Object[]{CollectionUtil.makeList(list3), CollectionUtil.makeList(list1), subtract1_from_3},
-        };
-    }
-
-
-    @Test(dataProvider = "subtractData")
-    public void testSubtractIntervalLists(final List<IntervalList> fromLists, final List<IntervalList> whatLists, final IntervalList list) {
-        Assert.assertEquals(
-                CollectionUtil.makeCollection(IntervalList.subtract(fromLists, whatLists).iterator()),
-                CollectionUtil.makeCollection(list.iterator()));
-    }
-
-
-    @DataProvider(name = "VCFCompData")
-    public Object[][] VCFCompData() {
-        return new Object[][]{
-                new Object[]{"testdata/net/sf/picard/intervallist/IntervalListFromVCFTest.vcf", "testdata/net/sf/picard/intervallist/IntervalListFromVCFTestComp.interval_list", false},
-                new Object[]{"testdata/net/sf/picard/intervallist/IntervalListFromVCFTest.vcf", "testdata/net/sf/picard/intervallist/IntervalListFromVCFTestCompInverse.interval_list", true},
-                new Object[]{"testdata/net/sf/picard/intervallist/IntervalListFromVCFTestManual.vcf", "testdata/net/sf/picard/intervallist/IntervalListFromVCFTestManualComp.interval_list", false},
-                new Object[]{"testdata/net/sf/picard/intervallist/IntervalListFromVCFTestManual.vcf", "testdata/net/sf/picard/intervallist/IntervalListFromVCFTestCompInverseManual.interval_list", true}
-        };
-    }
-
-
-    @Test(dataProvider = "VCFCompData")
-    public void testFromVCF(final String vcf, final String compInterval, final boolean invertVCF) {
-
-        final File vcfFile = new File(vcf);
-        final File compIntervalFile = new File(compInterval);
-
-        final IntervalList compList = IntervalList.fromFile(compIntervalFile);
-        final IntervalList list = invertVCF ? IntervalList.invert(IntervalList.fromVcf(vcfFile)) : IntervalList.fromVcf(vcfFile);
-
-        compList.getHeader().getSequenceDictionary().assertSameDictionary(list.getHeader().getSequenceDictionary());
-
-        final Collection<Interval> intervals = CollectionUtil.makeCollection(list.iterator());
-        final Collection<Interval> compIntervals = CollectionUtil.makeCollection(compList.iterator());
-
-        //assert that the intervals correspond
-        Assert.assertEquals(intervals, compIntervals);
-
-        final List<String> intervalNames = new LinkedList<String>();
-        final List<String> compIntervalNames = new LinkedList<String>();
-
-        for (final Interval interval : intervals) {
-            intervalNames.add(interval.getName());
-        }
-        for (final Interval interval : compIntervals) {
-            compIntervalNames.add(interval.getName());
-        }
-        //assert that the names match
-        Assert.assertEquals(intervalNames, compIntervalNames);
-
-    }
-
-}
\ No newline at end of file
diff --git a/src/tests/java/net/sf/picard/util/IntervalListToolsTest.java b/src/tests/java/net/sf/picard/util/IntervalListToolsTest.java
deleted file mode 100644
index 7b66603..0000000
--- a/src/tests/java/net/sf/picard/util/IntervalListToolsTest.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.util;
-
-import net.sf.picard.io.IoUtil;
-import net.sf.samtools.util.TestUtil;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.io.FilenameFilter;
-import java.io.IOException;
-import java.text.DecimalFormat;
-import java.util.List;
-import java.util.SortedSet;
-import java.util.TreeSet;
-
-/**
- * Very basic test for scatter functionality in IntervalListTools
- */
-public class IntervalListToolsTest {
-
-    private static final File TEST_DATA_DIR = new File("testdata/net/sf/picard/util/");
-
-    @Test
-    public void testScatter() throws IOException {
-        final File scatterDir = IoUtil.createTempDir("scatter.", ".tmp");
-
-        try {
-            final File listToScatter = new File(TEST_DATA_DIR, "scatterable.interval_list");
-            final IntervalList gold = IntervalList.fromFile(listToScatter);
-            Assert.assertEquals(gold.getUniqueBaseCount(),200, "Wrong unique base count");
-
-            // First test the non-scattering option -- the file that compes out
-            // should be the same as the one that went in.
-            final File singleFileOutput = File.createTempFile("single", "interval_list");
-            singleFileOutput.deleteOnExit();
-
-            int result = new IntervalListTools().instanceMain(new String[] {
-                    "INPUT="  + listToScatter.getAbsolutePath(),
-                    "OUTPUT=" + singleFileOutput.getAbsolutePath() ,
-                    "SCATTER_COUNT=" + 1
-            });
-            Assert.assertEquals(result, 0);
-
-            final IntervalList single = IntervalList.fromFile(singleFileOutput);
-            Assert.assertEquals(gold.size(), single.size());
-            Assert.assertEquals(gold.getUniqueBaseCount(), single.getUniqueBaseCount());
-
-
-            // Next we test scattering.  This should result in the first
-            // scattered file having 2 intervals, the second of which is exactly
-            // one base long.
-            result = new IntervalListTools().instanceMain(new String[] {
-                    "INPUT="  + listToScatter.getAbsolutePath(),
-                    "OUTPUT=" + scatterDir.getAbsolutePath() ,
-                    "SCATTER_COUNT=" + 2
-            });
-            Assert.assertEquals(result, 0);
-            Assert.assertEquals(scatterDir.listFiles(new FilenameFilter() {
-                public boolean accept(File file, String s) {
-                    return s.startsWith("temp_") && s.endsWith("_of_2");
-                }
-            }).length, 2, "Invalid # of scattered subdirectories found");
-            IntervalList lists[] = getIntervalLists(scatterDir, 2);
-            Assert.assertEquals(lists[0].size(), 2);
-            Assert.assertEquals(lists[0].getIntervals().get(1).length(), 1, "Length of split interval list is wrong");
-            Assert.assertEquals(lists[0].getUniqueBaseCount(), 100, "Unique base count in first interval is wrong.");
-            final IntervalList second = IntervalList.fromFile(IntervalListTools.getScatteredFileName(scatterDir, 2, "0001"));
-            Assert.assertEquals(lists[1].getUniqueBaseCount(), 100, "Unique base count in second interval is wrong.");
-
-            // Test for when scattering breaks exactly at the end of an interval
-            result = new IntervalListTools().instanceMain(new String[] {
-                    "INPUT="  + listToScatter.getAbsolutePath(),
-                    "OUTPUT=" + scatterDir.getAbsolutePath() ,
-                    "SCATTER_COUNT=" + 4
-            });
-            Assert.assertEquals(result, 0);
-            Assert.assertEquals(scatterDir.listFiles(new FilenameFilter() {
-                public boolean accept(File file, String s) {
-                    return s.startsWith("temp_") && s.endsWith("_of_4");
-                }
-            }).length, 4, "Invalid # of scattered subdirectories found");
-            lists = getIntervalLists(scatterDir, 4);
-            Assert.assertEquals(lists[0].size(), 1);
-            Assert.assertEquals(lists[1].size(), 2);
-            Assert.assertEquals(lists[2].size(), 2);
-            Assert.assertEquals(lists[3].size(), 1);
-            Assert.assertEquals(lists[3].getIntervals().get(0).getStart(), 30200);
-            Assert.assertEquals(lists[0].getUniqueBaseCount() + lists[1].getUniqueBaseCount() +
-                    lists[2].getUniqueBaseCount() + lists[3].getUniqueBaseCount(), 200);
-
-            // Test for when scattering consumes less than a full interval interval
-            result = new IntervalListTools().instanceMain(new String[] {
-                    "INPUT="  + listToScatter.getAbsolutePath(),
-                    "OUTPUT=" + scatterDir.getAbsolutePath() ,
-                    "SCATTER_COUNT=" + 5
-            });
-            Assert.assertEquals(result, 0);
-            lists = getIntervalLists(scatterDir, 5);
-            Assert.assertEquals(lists[0].size(), 1);
-            Assert.assertEquals(lists[1].size(), 1);
-            Assert.assertEquals(lists[2].size(), 2);
-            Assert.assertEquals(lists[3].size(), 2);
-            Assert.assertEquals(lists[4].size(), 1);
-            Assert.assertEquals(lists[0].getUniqueBaseCount() + lists[1].getUniqueBaseCount() +
-                     lists[2].getUniqueBaseCount() + lists[3].getUniqueBaseCount() +
-                     lists[4].getUniqueBaseCount(), 200);
-
-        }
-        finally {
-            TestUtil.recursiveDelete(scatterDir);
-        }
-
-
-    }
-
-
-    // Gets all the interval lists for a given scatter count in a directory
-    final IntervalList[] getIntervalLists(final File scatterDir, final int scatterCount) {
-        final IntervalList result[] = new IntervalList[scatterCount];
-        final DecimalFormat format = new DecimalFormat("0000");
-        for (int i = 0; i < scatterCount; i++) {
-            result[i] = IntervalList.fromFile(IntervalListTools.getScatteredFileName(scatterDir, scatterCount, format.format(i+1)));
-        }
-        return result;
-    }
-
-    @Test
-    public void testMerges() {
-        SortedSet<Interval> intervals = new TreeSet<Interval>() {{
-            add(new Interval("1", 500, 600, false, "foo"));
-            add(new Interval("1", 550, 650, false, "bar"));
-            add(new Interval("1", 625, 699, false, "splat"));
-        }};
-
-        Interval out = IntervalList.merge(intervals, false);
-        Assert.assertEquals(out.getStart(), 500);
-        Assert.assertEquals(out.getEnd(), 699);
-
-        intervals.add(new Interval("1", 626, 629, false, "whee"));
-        out = IntervalList.merge(intervals, false);
-        Assert.assertEquals(out.getStart(), 500);
-        Assert.assertEquals(out.getEnd(), 699);
-    }
-}
diff --git a/src/tests/java/net/sf/picard/util/IntervalTreeMapTest.java b/src/tests/java/net/sf/picard/util/IntervalTreeMapTest.java
deleted file mode 100644
index 2f2defa..0000000
--- a/src/tests/java/net/sf/picard/util/IntervalTreeMapTest.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.util;
-
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.util.Iterator;
-import java.util.Set;
-
-public class IntervalTreeMapTest {
-    @Test
-    public void testBasic() {
-        IntervalTreeMap<Interval> m=new IntervalTreeMap<Interval>();
-
-        Interval chr1Interval = new Interval("chr1", 1,100);
-        m.put(chr1Interval, chr1Interval);
-        Interval chr2Interval = new Interval("chr2", 1,200);
-        m.put(chr2Interval, chr2Interval);
-
-        final Iterator<Interval> iterator = m.keySet().iterator();
-        Assert.assertEquals(iterator.next(), chr1Interval);
-        Assert.assertEquals(iterator.next(), chr2Interval);
-        Assert.assertFalse(iterator.hasNext());
-    }
-}
diff --git a/src/tests/java/net/sf/picard/util/IntervalTreeTest.java b/src/tests/java/net/sf/picard/util/IntervalTreeTest.java
deleted file mode 100644
index 2fffe2e..0000000
--- a/src/tests/java/net/sf/picard/util/IntervalTreeTest.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.util;
-
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.util.Iterator;
-
-/**
- * @author alecw at broadinstitute.org
- */
-public class IntervalTreeTest {
-    @Test
-    public void testNoMatches()
-    {
-        // Test empty tree
-        final IntervalTree<String> intervalTree = new IntervalTree<String>();
-        Iterator<IntervalTree.Node<String>> results = intervalTree.overlappers(1, 500);
-        Assert.assertEquals(countElements(results), 0, "Testing with no left-hand set failed.");
-
-        // Test no matches at all
-        intervalTree.put(1, 400, "foo");
-        intervalTree.put(600, 800, "foo2");
-        results = intervalTree.overlappers(450, 599);
-        Assert.assertEquals(countElements(results), 0, "Testing with no overlaps at all.");
-
-    }
-
-    private int countElements(final Iterator<IntervalTree.Node<String>> it) {
-        int ret = 0;
-        while (it.hasNext()) {
-            ++ret;
-            it.next();
-        }
-        return ret;
-    }
-
-    @Test
-    public void testMatches()
-    {
-        final IntervalTree<String> intervalTree = new IntervalTree<String>();
-        intervalTree.put(1, 10, "foo1");
-        intervalTree.put(2, 9, "foo2");
-        intervalTree.put(3, 8, "foo3");
-        intervalTree.put(4, 7, "foo4");
-        intervalTree.put(5, 6, "foo5");
-        intervalTree.put(1, 9, "foo6");
-
-        // Single match
-        Assert.assertEquals(countElements(intervalTree.overlappers(10, 10)), 1, "Test single overlap");
-        Assert.assertTrue(iteratorContains(intervalTree.overlappers(10, 10), "foo1"), "Test single overlap for correct overlapee");
-
-        // Multiple matches
-        Assert.assertEquals(countElements(intervalTree.overlappers(7, 8)), 5, "Test multiple overlap");
-        Assert.assertTrue(iteratorContains(intervalTree.overlappers(7, 8), "foo1"), "Test multiple overlap for correct overlapees");
-        Assert.assertTrue(iteratorContains(intervalTree.overlappers(7, 8), "foo2"), "Test multiple overlap for correct overlapees");
-        Assert.assertTrue(iteratorContains(intervalTree.overlappers(7, 8), "foo3"), "Test multiple overlap for correct overlapees");
-        Assert.assertTrue(iteratorContains(intervalTree.overlappers(7, 8), "foo4"), "Test multiple overlap for correct overlapees");
-        Assert.assertTrue(iteratorContains(intervalTree.overlappers(7, 8), "foo6"), "Test multiple overlap for correct overlapees");
-        Assert.assertTrue(!iteratorContains(intervalTree.overlappers(7, 8), "foo5"), "Test multiple overlap for correct overlapees");
-    }
-
-    private boolean iteratorContains(final Iterator<IntervalTree.Node<String>> nodeIterator, final String s) {
-        while (nodeIterator.hasNext()) {
-            if (nodeIterator.next().getValue().equals(s)) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    @Test
-    public void testNearEnds()
-    {
-        final IntervalTree<String> intervalTree = new IntervalTree<String>();
-        intervalTree.put(10, 20, "foo");
-        Assert.assertEquals(countElements(intervalTree.overlappers(10, 10)), 1, "Test overlap (no buffers) at near end exactly");
-        Assert.assertEquals(countElements(intervalTree.overlappers(9, 10)), 1, "Test overlap (no buffers) at near end exactly");
-        Assert.assertEquals(countElements(intervalTree.overlappers(9, 9)), 0, "Test just before overlap (no buffers)");
-        Assert.assertEquals(countElements(intervalTree.overlappers(20, 20)), 1, "Test overlap (no buffers) at far end exactly");
-        Assert.assertEquals(countElements(intervalTree.overlappers(20, 21)), 1, "Test overlap (no buffers) at far end exactly");
-        Assert.assertEquals(countElements(intervalTree.overlappers(21, 21)), 0, "Test just beyond overlap (no buffers)");
-    }
-
-    @Test
-    public void performanceTest()
-    {
-        final IntervalTree<String> intervalTree = new IntervalTree<String>();
-        final long start = System.currentTimeMillis();
-        for (int i = 1; i <= 50000; i++)  intervalTree.put(i, i, "frob");
-        System.out.println("Time to construct a tree with 50000 nodes: " + (System.currentTimeMillis() - start) + " milliseconds" );
-
-        final long end   = System.currentTimeMillis() + 10000;
-        int count = 0;
-        while (System.currentTimeMillis() < end) {
-            intervalTree.overlappers(17000, 17099);
-            ++count;
-        }
-        System.out.println("Queried for the same 100-length mapping " + count + " times in 10 seconds.");
-    }
-
-    @Test
-    public void testHandlingOfDuplicateMappings()
-    {
-        final IntervalTree<String> intervalTree = new IntervalTree<String>();
-        intervalTree.put(1, 10, "foo1");
-        // This call replaces foo1 with foo2
-        Assert.assertEquals(intervalTree.put(1, 10, "foo2"), "foo1");
-        intervalTree.put(2, 8, "foo3");
-
-        Assert.assertEquals(countElements(intervalTree.overlappers(3, 5)), 2);
-        Assert.assertFalse(iteratorContains(intervalTree.overlappers(3, 5), "foo1"));
-        Assert.assertTrue(iteratorContains(intervalTree.overlappers(3, 5), "foo2"));
-        Assert.assertTrue(iteratorContains(intervalTree.overlappers(3, 5), "foo3"));
-    }
-
-    /**
-     * Test of PIC-123
-     */
-    @Test
-    public void testRemove() {
-        int[][] adds = {
-                {46129744, 46129978},
-                {46393843, 46394077},
-                {46260491, 46260725},
-                {46402360, 46402594},
-                {46369255, 46369464},
-                {46293772, 46293981},
-                {46357687, 46357896},
-                {46431752, 46431961},
-                {46429997, 46430206},
-                {46404026, 46404192},
-                {46390511, 46390677},
-                {46090593, 46090759},
-                {46045352, 46045518},
-                {46297633, 46297799},
-                {46124297, 46124463},
-                {46395291, 46395504},
-                {46439072, 46439240},
-                {46400792, 46400959},
-                {46178616, 46178851},
-                {46129747, 46129982},
-                {46396546, 46396781},
-                {46112353, 46112588},
-                {46432996, 46433231},
-                {46399109, 46399344},
-                {46372058, 46372292},
-                {46386826, 46387060},
-                {46381795, 46382029},
-                {46179789, 46180023},
-                {46394409, 46394643},
-                {46376176, 46376429},
-                {46389943, 46390177},
-                {46433654, 46433888},
-                {46379440, 46379674},
-                {46391117, 46391351},
-        };
-        IntervalTree<String> intervalTree = new IntervalTree<String>();
-        for (int[] add : adds) {
-            intervalTree.put(add[0], add[1], "frob");
-        }
-        Assert.assertEquals(intervalTree.remove(46402360, 46402594), "frob");
-        intervalTree.checkMaxEnds();
-    }
-}
diff --git a/src/tests/java/net/sf/picard/util/MathUtilTest.java b/src/tests/java/net/sf/picard/util/MathUtilTest.java
deleted file mode 100644
index ea17612..0000000
--- a/src/tests/java/net/sf/picard/util/MathUtilTest.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package net.sf.picard.util;
-
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.util.Arrays;
-
-/**
- * @author mccowan
- */
-public class MathUtilTest {
-    @Test
-    public void logMathTest() {
-        Assert.assertEquals(MathUtil.LOG_10_MATH.getLogValue(10), 1d, 0.00001d);
-        Assert.assertEquals(MathUtil.LOG_10_MATH.getNonLogValue(1), 10d, 0.00001d);
-        Assert.assertEquals(MathUtil.LOG_10_MATH.mean(5, 5, 5), 5d, 0.00001d);
-        // http://www.wolframalpha.com/input/?i=log10%2810%5E1.23%2B10%5E4.56%2B10%5E99999%29
-        Assert.assertEquals(MathUtil.LOG_10_MATH.sum(1.23, 4.56, 2), 4.5613970317323586660874152202433434022756298235604568d, 0.00001d);
-        // http://www.wolframalpha.com/input/?i=log10%2810%5E1.23+*+10%5E4.56+*+10%5E2%29
-        Assert.assertEquals(MathUtil.LOG_10_MATH.product(1.23, 4.56, 2), 7.7899999999999999999999999999999999999999999999999999d, 0.00001d);
-    }
-
-    @DataProvider
-    public Object[][] seqMethodTestCases() {
-        return new Object[][] {
-                new Object[] {0d, 5d, 1d,     new double[] {0,1,2,3,4,5}},
-                new Object[] {0d, 0.5d, 0.1d, new double[] {0, 0.1, 0.2, 0.3, 0.4, 0.5}},
-                new Object[] {0d, 0.5d, 0.11d,new double[] {0, 0.11, 0.22, 0.33, 0.44}},
-                new Object[] {50d, 55d, 1.25d,new double[] {50, 51.25, 52.5, 53.75, 55}},
-                new Object[] {10d, 0d, 02d,    new double[] {}},
-                new Object[] {10d, 0d, -2d,    new double[] {10, 8, 6, 4, 2, 0}},
-        };
-    }
-
-    @Test(dataProvider="seqMethodTestCases")
-    public void testSeqGeneration(final double from, final double to, final double by, final double[] expected) {
-        final double[] actual = MathUtil.seq(from, to, by);
-        Assert.assertEquals(actual.length, expected.length);
-
-        for (int i=0; i<expected.length; ++i) {
-            Assert.assertTrue(Math.abs(actual[i] - expected[i]) < 0.0000001);
-        }
-    }
-}
diff --git a/src/tests/java/net/sf/picard/util/MergingIteratorTest.java b/src/tests/java/net/sf/picard/util/MergingIteratorTest.java
deleted file mode 100644
index 3c33e33..0000000
--- a/src/tests/java/net/sf/picard/util/MergingIteratorTest.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2012 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.util;
-
-import net.sf.samtools.util.CloseableIterator;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.Queue;
-
-public class MergingIteratorTest {
-
-	private static class QueueBackedIterator<T> implements CloseableIterator<T> {
-
-		private final Iterator<T> backing;
-		QueueBackedIterator(final Queue<T> queue) {
-			this.backing = queue.iterator();
-		}
-
-		@Override
-		public void close() {
-			// no-op
-		}
-
-		@Override
-		public boolean hasNext() {
-			return backing.hasNext();
-		}
-
-		@Override
-		public T next() {
-			return backing.next();
-		}
-
-		@Override
-		public void remove() {
-			backing.remove();
-		}
-	}
-
-	private static final Comparator<Integer> INTEGER_COMPARATOR = new Comparator<Integer>() {
-		@Override
-		public int compare(Integer integer, Integer integer2) {
-			return integer - integer2;
-		}
-	};
-
-	@Test
-	public void testOrderingAndCompleteness() {
-		final Queue<Integer> queueOne = new LinkedList<Integer>();
-		queueOne.add(1);
-		queueOne.add(3);
-		queueOne.add(5);
-
-		final Queue<Integer> queueTwo = new LinkedList<Integer>();
-		queueTwo.add(2);
-		queueTwo.add(4);
-		queueTwo.add(6);
-
-		final Queue<Integer> queueThree = new LinkedList<Integer>();
-		queueThree.add(0);
-		queueThree.add(1);
-
-		final Collection<CloseableIterator<Integer>> iterators = new ArrayList<CloseableIterator<Integer>>(3);
-		Collections.addAll(
-				iterators,
-				new QueueBackedIterator<Integer>(queueOne),
-				new QueueBackedIterator<Integer>(queueTwo),
-				new QueueBackedIterator<Integer>(queueThree));
-
-		final MergingIterator<Integer> mergingIterator = new MergingIterator<Integer>(
-				INTEGER_COMPARATOR,
-				iterators);
-
-		int count = 0;
-		int last = -1;
-		while (mergingIterator.hasNext()) {
-			final Integer integer = mergingIterator.next();
-			count++;
-			if (integer == 1) Assert.assertTrue(integer >= last);
-			else Assert.assertTrue(integer > last);
-			last = integer;
-		}
-
-		Assert.assertEquals(queueOne.size() + queueTwo.size() + queueThree.size(), count);
-	}
-
-	@Test
-	public void testIteratorsOfUnevenLength() {
-		final Queue<Integer> queueOne = new LinkedList<Integer>();
-		queueOne.add(1);
-		queueOne.add(3);
-		queueOne.add(5);
-		queueOne.add(7);
-		queueOne.add(9);
-		queueOne.add(11);
-		queueOne.add(13);
-
-		final Queue<Integer> queueTwo = new LinkedList<Integer>();
-		queueTwo.add(2);
-
-		final Collection<CloseableIterator<Integer>> iterators = new ArrayList<CloseableIterator<Integer>>(3);
-		Collections.addAll(
-				iterators,
-				new QueueBackedIterator<Integer>(queueOne),
-				new QueueBackedIterator<Integer>(queueTwo));
-
-		final MergingIterator<Integer> mergingIterator = new MergingIterator<Integer>(
-				INTEGER_COMPARATOR,
-				iterators);
-
-		int count = 0;
-		int last = -1;
-		while (mergingIterator.hasNext()) {
-			final Integer integer = mergingIterator.next();
-			count++;
-			Assert.assertTrue(integer > last);
-			last = integer;
-		}
-
-		Assert.assertEquals(queueOne.size() + queueTwo.size(), count);
-	}
-
-	@Test(expectedExceptions = IllegalStateException.class)
-	public void testOutOfOrderIterators() {
-		final Queue<Integer> queueOne = new LinkedList<Integer>();
-		queueOne.add(1);
-		queueOne.add(3);
-
-		final Queue<Integer> queueTwo = new LinkedList<Integer>();
-		queueTwo.add(4);
-		queueTwo.add(2);
-
-		final Collection<CloseableIterator<Integer>> iterators = new ArrayList<CloseableIterator<Integer>>(3);
-		Collections.addAll(
-				iterators,
-				new QueueBackedIterator<Integer>(queueOne),
-				new QueueBackedIterator<Integer>(queueTwo));
-
-		final MergingIterator<Integer> mergingIterator = new MergingIterator<Integer>(
-				INTEGER_COMPARATOR,
-				iterators);
-
-		Assert.assertEquals(mergingIterator.next().intValue(), 1);
-		Assert.assertEquals(mergingIterator.next().intValue(), 3);
-		Assert.assertEquals(mergingIterator.next().intValue(), 4);
-		mergingIterator.next(); // fails, because the next element would be "2"
-	}
-}
diff --git a/src/tests/java/net/sf/picard/util/QualityEncodingDetectorTest.java b/src/tests/java/net/sf/picard/util/QualityEncodingDetectorTest.java
deleted file mode 100644
index 2092693..0000000
--- a/src/tests/java/net/sf/picard/util/QualityEncodingDetectorTest.java
+++ /dev/null
@@ -1,109 +0,0 @@
-package net.sf.picard.util;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.fastq.FastqReader;
-import net.sf.samtools.SAMFileReader;
-import net.sf.samtools.SAMRecordSetBuilder;
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.util.Arrays;
-import java.util.List;
-
-public class QualityEncodingDetectorTest {
-
-    private static class Testcase {
-        private final File f;
-        private final FastqQualityFormat q;
-
-        Testcase(final File file, final FastqQualityFormat qualityFormat) {
-            this.f = file;
-            this.q = qualityFormat;
-        }
-    }
-
-    final static List<Testcase> FASTQ_TESTCASES = Arrays.asList(
-            // Need to use full-range quality here, as Solexa and Illumina are near indistinguishable
-            new Testcase(new File("./testdata/net/sf/picard/sam/fastq2bam/fastq-solexa/solexa_full_range_as_solexa.fastq"), FastqQualityFormat.Solexa),
-            new Testcase(new File("./testdata/net/sf/picard/sam/fastq2bam/fastq-illumina/s_1_sequence.txt"), FastqQualityFormat.Illumina),
-            new Testcase(new File("./testdata/net/sf/picard/sam/fastq2bam/fastq-sanger/5k-30BB2AAXX.3.aligned.sam.fastq"), FastqQualityFormat.Standard)
-    );
-    final static List<Testcase> BAM_TESTCASES = Arrays.asList(
-            new Testcase(new File("./testdata/net/sf/picard/sam/unmapped.sam"), FastqQualityFormat.Standard),
-            new Testcase(new File("./testdata/net/sf/samtools/BAMFileIndexTest/index_test.bam"), FastqQualityFormat.Standard),
-            new Testcase(new File("./testdata/net/sf/picard/util/QualityEncodingDetectorTest/solexa-as-standard.bam"), FastqQualityFormat.Solexa),
-            new Testcase(new File("./testdata/net/sf/picard/util/QualityEncodingDetectorTest/illumina-as-standard.bam"), FastqQualityFormat.Illumina)
-
-    );
-
-    Object[][] renderObjectArrayArray(final List<Testcase> testcaseList) {
-        final Object[][] data = new Object[testcaseList.size()][];
-        for (int i = 0; i < data.length; i++) {
-            final Testcase testcase = testcaseList.get(i);
-            data[i] = new Object[]{testcase.f, testcase.q};
-        }
-        return data;
-    }
-
-    @DataProvider(name = "BAM_TESTCASES")
-    Object[][] bamTestcases() {
-        return renderObjectArrayArray(BAM_TESTCASES);
-    }
-
-    @DataProvider(name = "FASTQ_TESTCASES")
-    Object[][] fastqTestcases() {
-        return renderObjectArrayArray(FASTQ_TESTCASES);
-    }
-
-    @Test(dataProvider = "FASTQ_TESTCASES", groups = {"unix"})
-    public void testFastqQualityInference(final File input, final FastqQualityFormat expectedQualityFormat) {
-        final FastqReader reader = new FastqReader(input);
-        Assert.assertEquals(QualityEncodingDetector.detect(reader), expectedQualityFormat);
-        reader.close();
-    }
-
-    @Test(dataProvider = "BAM_TESTCASES", groups = {"unix"})
-    public void testBamQualityInference(final File input, final FastqQualityFormat expectedQualityFormat) {
-        final SAMFileReader reader = new SAMFileReader(input);
-        Assert.assertEquals(QualityEncodingDetector.detect(reader), expectedQualityFormat);
-        reader.close();
-    }
-
-    @Test
-    public void testSmallBamForDetectorFailure() {
-        final SAMRecordSetBuilder samRecordSetBuilder = createSmallUnmappedSam();
-        Assert.assertNotSame(QualityEncodingDetector.detect(samRecordSetBuilder.getSamReader(),
-                null), FastqQualityFormat.Standard);
-    }
-
-    @Test
-    public void testSmallBamWithExpectedQuality() {
-        final SAMRecordSetBuilder samRecordSetBuilder = createSmallUnmappedSam();
-        Assert.assertEquals(QualityEncodingDetector.detect(samRecordSetBuilder.getSamReader(),
-                FastqQualityFormat.Standard), FastqQualityFormat.Standard);
-    }
-
-    @Test (expectedExceptions = PicardException.class)
-    public void testQualitySanity() {
-        final SAMRecordSetBuilder samRecordSetBuilder = createSmallUnmappedSam();
-        QualityEncodingDetector.detect(samRecordSetBuilder.getSamReader(),
-                FastqQualityFormat.Illumina);
-    }
-
-    private SAMRecordSetBuilder createSmallUnmappedSam() {
-        final SAMRecordSetBuilder samRecordSetBuilder = new SAMRecordSetBuilder();
-        samRecordSetBuilder.setReadLength(25);
-        samRecordSetBuilder.addFrag("READ0", -1, -1, false, true, null, "@@@FFFFFHHHHHJIJIIJIIJJJJ", -1);
-        samRecordSetBuilder.addFrag("READ1", -1, -1, false, true, null, "@@@FFFFFHHHHHJIJIIJIIJJJJ", -1);
-        samRecordSetBuilder.addFrag("READ2", -1, -1, false, true, null, "@CCFDFEDHHHFFHIIII at GH<FFH", -1);
-        samRecordSetBuilder.addFrag("READ3", -1, -1, false, true, null, "@@?DFFDFHFFHDHIIHIIEIIJGG", -1);
-        samRecordSetBuilder.addFrag("READ4", -1, -1, false, true, null, "@CCFFDDFHHHHHIIJJHFJJJJJH", -1);
-        samRecordSetBuilder.addFrag("READ5", -1, -1, false, true, null, "BCCFFFFFHHHHHJJJJJIJJJJJJ", -1);
-        samRecordSetBuilder.addFrag("READ6", -1, -1, false, true, null, "@@CDFFFFHHHFHHIJJJJJJJIJJ", -1);
-        samRecordSetBuilder.addFrag("READ7", -1, -1, false, true, null, "CCCFFFFFHHHHHJJJJIJJJJHII", -1);
-        samRecordSetBuilder.addFrag("READ8", -1, -1, false, true, null, "CCCFFFFFHHHHHJJJJJJJJJJJJ", -1);
-        return samRecordSetBuilder;
-    }
-}
diff --git a/src/tests/java/net/sf/picard/util/RExecutorTest.java b/src/tests/java/net/sf/picard/util/RExecutorTest.java
deleted file mode 100755
index 4767a0f..0000000
--- a/src/tests/java/net/sf/picard/util/RExecutorTest.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.util;
-
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-
-
-public class RExecutorTest {
-    @Test
-    public void testPassingRScript() {
-        Assert.assertTrue(
-                RExecutor.executeFromClasspath("passing.R") == 0);
-    }
-
-    @Test
-    public void testFailingRScript() {
-        Assert.assertTrue(
-                RExecutor.executeFromClasspath("failing.R") != 0);
-    }
-
-    @Test(expectedExceptions=IllegalArgumentException.class)
-    public void testRScriptNotFound() {
-        RExecutor.executeFromClasspath("asdlfjasl");
-        Assert.fail();
-    }
-
-}
diff --git a/src/tests/java/net/sf/picard/util/SamLocusIteratorTest.java b/src/tests/java/net/sf/picard/util/SamLocusIteratorTest.java
deleted file mode 100644
index 702aa1e..0000000
--- a/src/tests/java/net/sf/picard/util/SamLocusIteratorTest.java
+++ /dev/null
@@ -1,232 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.util;
-
-import net.sf.samtools.SAMFileReader;
-import net.sf.samtools.util.CoordMath;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.io.ByteArrayInputStream;
-
-/**
- * @author alecw at broadinstitute.org
- */
-public class SamLocusIteratorTest {
-    private SAMFileReader createSamFileReader(final String samExample) {
-        final ByteArrayInputStream inputStream = new ByteArrayInputStream(samExample.getBytes());
-        return new SAMFileReader(inputStream);
-    }
-
-    private SamLocusIterator createSamLocusIterator(final SAMFileReader samReader) {
-        final SamLocusIterator ret = new SamLocusIterator(samReader);
-        ret.setEmitUncoveredLoci(false);
-        return ret;
-    }
-
-    @Test
-    public void testBasicIterator() {
-
-        final String sqHeader = "@HD\tSO:coordinate\tVN:1.0\n at SQ\tSN:chrM\tAS:HG18\tLN:100000\n";
-        final String seq1  = "ACCTACGTTCAATATTACAGGCGAACATACTTACTA";
-        final String qual1 = "++++++++++++++++++++++++++++++++++++"; // phred 10
-        final String s1 = "3851612\t16\tchrM\t165\t255\t36M\t*\t0\t0\t" + seq1 + "\t" + qual1 + "\n";
-        final String exampleSam = sqHeader + s1 + s1;
-
-        final SAMFileReader samReader = createSamFileReader(exampleSam);
-        final SamLocusIterator sli = createSamLocusIterator(samReader);
-
-
-
-        // make sure we accumulated depth of 2 for each position
-        int pos = 165;
-        for (final SamLocusIterator.LocusInfo li : sli) {
-            Assert.assertEquals(pos++, li.getPosition());
-            Assert.assertEquals(2, li.getRecordAndPositions().size());
-        }
-
-    }
-
-    @Test
-    public void testEmitUncoveredLoci() {
-
-        final String sqHeader = "@HD\tSO:coordinate\tVN:1.0\n at SQ\tSN:chrM\tAS:HG18\tLN:100000\n";
-        final String seq1  = "ACCTACGTTCAATATTACAGGCGAACATACTTACTA";
-        final String qual1 = "++++++++++++++++++++++++++++++++++++"; // phred 10
-        final String s1 = "3851612\t16\tchrM\t165\t255\t36M\t*\t0\t0\t" + seq1 + "\t" + qual1 + "\n";
-        final String exampleSam = sqHeader + s1 + s1;
-
-        final SAMFileReader samReader = createSamFileReader(exampleSam);
-        final SamLocusIterator sli = new SamLocusIterator(samReader);
-
-        // make sure we accumulated depth of 2 for each position
-        int pos = 1;
-        final int coveredStart = 165;
-        final int coveredEnd = CoordMath.getEnd(coveredStart, seq1.length());
-        for (final SamLocusIterator.LocusInfo li : sli) {
-            Assert.assertEquals(li.getPosition(), pos++);
-            final int expectedReads;
-            if (li.getPosition() >= coveredStart && li.getPosition() <= coveredEnd) {
-                expectedReads = 2;
-            } else {
-                expectedReads = 0;
-            }
-            Assert.assertEquals(li.getRecordAndPositions().size(), expectedReads);
-        }
-        Assert.assertEquals(pos, 100001);
-
-    }
-
-    @Test
-    public void testQualityFilter() {
-
-        final String sqHeader = "@HD\tSO:coordinate\tVN:1.0\n at SQ\tSN:chrM\tAS:HG18\tLN:100000\n";
-        final String seq1  = "ACCTACGTTCAATATTACAGGCGAACATACTTACTA";
-        final String qual1 = "++++++++++++++++++++++++++++++++++++"; // phred 10
-        final String qual2 = "+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*"; // phred 10,9...
-        final String s1 = "3851612\t16\tchrM\t165\t255\t36M\t*\t0\t0\t" + seq1 + "\t" + qual1 + "\n";
-        final String s2 = "3851612\t16\tchrM\t165\t255\t36M\t*\t0\t0\t" + seq1 + "\t" + qual2 + "\n";
-        final String exampleSam = sqHeader + s1 + s2;
-
-        final SAMFileReader samReader = createSamFileReader(exampleSam);
-        final SamLocusIterator sli = createSamLocusIterator(samReader);
-        sli.setQualityScoreCutoff(10);
-
-
-        // make sure we accumulated depth 2 for even positions, 1 for odd positions
-        int pos = 165;
-        for (final SamLocusIterator.LocusInfo li : sli) {
-            Assert.assertEquals((pos%2==0)?1:2, li.getRecordAndPositions().size());
-            Assert.assertEquals(pos++, li.getPosition());
-        }
-
-    }
-
-    /**
-     * Try all CIGAR operands (except H and P) and confirm that loci produced by SamLocusIterator are as expected.
-     */
-    @Test
-    public void testSimpleGappedAlignment() {
-        final String sqHeader = "@HD\tSO:coordinate\tVN:1.0\n at SQ\tSN:chrM\tAS:HG18\tLN:100000\n";
-        final String seq1  = "ACCTACGTTCAATATTACAGGCGAACATACTTACTA";
-        final String qual1 = "++++++++++++++++++++++++++++++++++++"; // phred 10
-        final String s1 = "3851612\t16\tchrM\t165\t255\t3S3M3N3M3D3M3I18M3S\t*\t0\t0\t" + seq1 + "\t" + qual1 + "\n";
-        final String exampleSam = sqHeader + s1 + s1;
-
-        final SAMFileReader samReader = createSamFileReader(exampleSam);
-        final SamLocusIterator sli = createSamLocusIterator(samReader);
-
-
-
-        // make sure we accumulated depth of 2 for each position
-        final int[] expectedReferencePositions = new int[] {
-                // 3S
-                165, 166, 167, // 3M
-                // 3N
-                171, 172, 173, // 3M
-                // 3D
-                177, 178, 179, // 3M
-                // 3I
-                180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197}; // 18M
-
-        final int[] expectedReadOffsets = new int[] {
-                // 3S
-                3,4,5, // 3M
-                // 3N
-                6, 7, 8, // 3M
-                // 3D
-                9, 10, 11, // 3M
-                // 3I
-                15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32 // 3M
-        };
-        int i = 0;
-        for (final SamLocusIterator.LocusInfo li : sli) {
-            Assert.assertEquals(li.getRecordAndPositions().size(), 2);
-            Assert.assertEquals(li.getPosition(), expectedReferencePositions[i]);
-            Assert.assertEquals(li.getRecordAndPositions().get(0).getOffset(), expectedReadOffsets[i]);
-            Assert.assertEquals(li.getRecordAndPositions().get(1).getOffset(), expectedReadOffsets[i]);
-            ++i;
-        }
-    }
-
-    /**
-     * Test two reads that overlap because one has a deletion in the middle of it.
-     */
-    @Test
-    public void testOverlappingGappedAlignments() {
-        final String sqHeader = "@HD\tSO:coordinate\tVN:1.0\n at SQ\tSN:chrM\tAS:HG18\tLN:100000\n";
-        final String seq1  = "ACCTACGTTCAATATTACAGGCGAACATACTTACTA";
-        final String qual1 = "++++++++++++++++++++++++++++++++++++"; // phred 10
-        // Were it not for the gap, these two reads would not overlap
-        final String s1 = "3851612\t16\tchrM\t165\t255\t18M10D18M\t*\t0\t0\t" + seq1 + "\t" + qual1 + "\n";
-        final String s2 = "3851613\t16\tchrM\t206\t255\t36M\t*\t0\t0\t" + seq1 + "\t" + qual1 + "\n";
-        final String exampleSam = sqHeader + s1 + s2;
-
-        final SAMFileReader samReader = createSamFileReader(exampleSam);
-        final SamLocusIterator sli = createSamLocusIterator(samReader);
-        // 5 base overlap btw the two reads
-        final int numBasesCovered = 36 + 36 - 5;
-        final int[] expectedReferencePositions = new int[numBasesCovered];
-        final int[] expectedDepths = new int[numBasesCovered];
-        final int[][] expectedReadOffsets = new int[numBasesCovered][];
-
-        int i;
-        // First 18 bases are from the first read
-        for (i = 0; i < 18; ++i) {
-            expectedReferencePositions[i] = 165 + i;
-            expectedDepths[i] = 1;
-            expectedReadOffsets[i] = new int[] {i};
-        }
-        // Gap of 10, then 13 bases from the first read
-        for (; i < 36 - 5; ++i) {
-            expectedReferencePositions[i] = 165 + 10 + i;
-            expectedDepths[i] = 1;
-            expectedReadOffsets[i] = new int[] {i};
-        }
-        // Last 5 bases of first read overlap first 5 bases of second read
-        for (; i < 36; ++i) {
-            expectedReferencePositions[i] = 165 + 10 + i;
-            expectedDepths[i] = 2;
-            expectedReadOffsets[i] = new int[] {i, i - 31};
-
-        }
-        // Last 31 bases of 2nd read
-        for (; i < 36 + 36 - 5; ++i) {
-            expectedReferencePositions[i] = 165 + 10 + i;
-            expectedDepths[i] = 1;
-            expectedReadOffsets[i] = new int[] {i - 31};
-        }
-
-        i = 0;
-        for (final SamLocusIterator.LocusInfo li : sli) {
-            Assert.assertEquals(li.getRecordAndPositions().size(), expectedDepths[i]);
-            Assert.assertEquals(li.getPosition(), expectedReferencePositions[i]);
-            Assert.assertEquals(li.getRecordAndPositions().size(), expectedReadOffsets[i].length);
-            for (int j = 0; j < expectedReadOffsets[i].length; ++j) {
-                Assert.assertEquals(li.getRecordAndPositions().get(j).getOffset(), expectedReadOffsets[i][j]);
-            }
-            ++i;
-        }
-    }
-}
diff --git a/src/tests/java/net/sf/picard/util/SolexaQualityConverterTest.java b/src/tests/java/net/sf/picard/util/SolexaQualityConverterTest.java
deleted file mode 100644
index a13dda6..0000000
--- a/src/tests/java/net/sf/picard/util/SolexaQualityConverterTest.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package net.sf.picard.util;
-
-import org.testng.annotations.Test;
-import org.testng.annotations.DataProvider;
-import org.testng.Assert;
-
-import java.util.Arrays;
-
-public class SolexaQualityConverterTest {
-    //declared as a staic variable because we reuse it in IlluminaUtilTest
-    public static Object[][] SOLEXA_QUALS_TO_PHRED_SCORE = new Object[][] {
-                new Object[]{new byte[]{}, new byte[]{}},
-                new Object[]{iToB(new int[]{120}), iToB(new int[]{56})},
-                new Object[]{iToB(new int[]{64, 65, 120, 121}), iToB(new int[]{3, 4, 56, 57})},
-                new Object[]{iToB(new int[]{0, 1, 63}), iToB(new int[]{0, 0, 0})}
-    };
-
-    public static Object[][] SOLEXA_QUALS_TO_PHRED_SCORE_1_3 = new Object[][] {
-                new Object[]{new byte[]{}, new byte[]{}},
-                new Object[]{iToB(new int[]{120}), iToB(new int[]{56})},
-                new Object[]{iToB(new int[]{64, 65, 120, 121, 156, 157}), iToB(new int[]{0, 1, 56, 57, 92, 93})},
-                new Object[]{iToB(new int[]{0, 1, 63}), iToB(new int[]{-64, -63, -1})}
-    };
-
-    public static Object[][] INVALID_SOLEXA_QUALS = new Object[][] {
-                new Object[]{iToB(new int[]{-1}), iToB(new int[]{-65})},
-                new Object[]{iToB(new int[]{-1, -2}), iToB(new int[]{-65, -66})}
-    };
-
-    private static final byte [] iToB(int [] intVals) {
-        byte [] byteVals = new byte[intVals.length];
-        for(int i = 0; i < byteVals.length; i++) {
-            byteVals[i] = (byte) intVals[i];
-        }
-        return byteVals;
-    }
-
-    @DataProvider(name="solexaQualsToPhredScore")
-    public Object[][] solexaQualsToPhredScore() {return SOLEXA_QUALS_TO_PHRED_SCORE;}
-
-    @DataProvider(name="solexaQualsToPhredScore_1_3")
-    public Object[][] solexaQualsToPhredScore_1_3() {return SOLEXA_QUALS_TO_PHRED_SCORE_1_3;}
-
-    @DataProvider(name="invalidSolexaQuals")
-    public Object[][] invalidSolexaQuals() {return INVALID_SOLEXA_QUALS;}
-
-    @Test(dataProvider="solexaQualsToPhredScore")
-    public void solexaQualsToPhredScoreTestArray(byte [] solexaQuals, byte [] phredScores) {
-       byte [] qualsToPhred = Arrays.copyOf(solexaQuals, solexaQuals.length);
-
-       SolexaQualityConverter.getSingleton().convertSolexaQualityCharsToPhredBinary(qualsToPhred);
-       Assert.assertEquals(phredScores, qualsToPhred);
-    }
-
-    @Test(dataProvider="solexaQualsToPhredScore_1_3")
-    public void solexaQualsToPhredScoreTestArray_1_3(byte [] solexaQuals, byte [] phredScores) {
-       byte [] qualsToPhred = Arrays.copyOf(solexaQuals, solexaQuals.length);
-
-       SolexaQualityConverter.getSingleton().convertSolexa_1_3_QualityCharsToPhredBinary(qualsToPhred);
-       Assert.assertEquals(phredScores, qualsToPhred);
-    }
-
-    @Test(dataProvider="invalidSolexaQuals")
-    public void invalidSolexaQualsTestArray(byte [] solexaQuals,  byte [] phredScores) {
-       byte [] qualsToPhred = Arrays.copyOf(solexaQuals, solexaQuals.length);
-
-       SolexaQualityConverter.getSingleton().convertSolexa_1_3_QualityCharsToPhredBinary(qualsToPhred);
-       Assert.assertEquals(phredScores, qualsToPhred);
-    }
-
-    @Test(dataProvider="solexaQualsToPhredScore")
-    public void solexaCharToPhredBinaryTest(final byte [] solexaQuals, byte [] phredScores) {
-       final SolexaQualityConverter solexaConverter = SolexaQualityConverter.getSingleton();
-       for(int i = 0; i < solexaQuals.length; i++) {
-           Assert.assertEquals(phredScores[i], solexaConverter.solexaCharToPhredBinary(solexaQuals[i]));
-       }
-    }
-
-    @Test(dataProvider="invalidSolexaQuals", expectedExceptions = IndexOutOfBoundsException.class)
-    public void invalidSolexaCharToPhredBinaryTest(final byte [] solexaQuals,  byte [] phredScores) {
-       final SolexaQualityConverter solexaConverter = SolexaQualityConverter.getSingleton();
-       for(int i = 0; i < solexaQuals.length; i++) {
-           solexaConverter.solexaCharToPhredBinary(solexaQuals[i]);
-       }
-    }
-}
diff --git a/src/tests/java/net/sf/picard/util/TabbedTextFileWithHeaderParserTest.java b/src/tests/java/net/sf/picard/util/TabbedTextFileWithHeaderParserTest.java
deleted file mode 100644
index 4bc30eb..0000000
--- a/src/tests/java/net/sf/picard/util/TabbedTextFileWithHeaderParserTest.java
+++ /dev/null
@@ -1,95 +0,0 @@
-package net.sf.picard.util;
-
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.util.TabbedTextFileWithHeaderParser.Row;
-import net.sf.samtools.util.StringUtil;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileWriter;
-
-/**
- *
- */
-public class TabbedTextFileWithHeaderParserTest {
-    @Test
-    public void basicParsingTest() throws Exception {
-        final String[][] data = new String[][] {
-                new String[] {"FOO", "BAR", "SPLAT"},
-                new String[] {"1", "2", "3"},
-                new String[] {"a", "b", "c"},
-                new String[] {"foo", "bar", "splat"},
-        };
-
-        final File tmp = File.createTempFile("tabbedTextTest.", ".txt");
-        tmp.deleteOnExit();
-        final BufferedWriter out = new BufferedWriter(new FileWriter(tmp));
-
-        for (final String[] fields : data) {
-            out.write(StringUtil.join("\t", fields));
-            out.newLine();
-        }
-
-        out.close();
-
-        final TabbedTextFileWithHeaderParser parser = new TabbedTextFileWithHeaderParser(tmp);
-        for (final String col : data[0]) Assert.assertTrue(parser.hasColumn(col));
-
-        int i=1;
-        for (final Row row : parser) {
-            final String[] expected = data[i++];
-            Assert.assertEquals(row.getFields(), expected);
-            Assert.assertEquals(row.getCurrentLine(), StringUtil.join("\t", expected));
-        }
-
-        Assert.assertEquals(i, data.length);
-    }
-
-    @Test
-    public void parsingWithColumnHeadersTest() throws Exception {
-        final String[][] data = new String[][] {
-                new String[] {"1", "2", "3"},
-                new String[] {"a", "b", "2"},
-                new String[] {"foo", "bar", ""},
-        };
-
-        final String[] headers = {"STRING", "STRING2", "NUMBER"};
-
-        final File tmp = File.createTempFile("tabbedTextTest.", ".txt");
-        tmp.deleteOnExit();
-        final BufferedWriter out = new BufferedWriter(new FileWriter(tmp));
-
-        for (final String[] fields : data) {
-            out.write(StringUtil.join("\t", fields));
-            out.newLine();
-        }
-
-        out.close();
-
-        final TabbedTextFileWithHeaderParser parser = new TabbedTextFileWithHeaderParser(tmp, headers);
-        for (final String col : headers) Assert.assertTrue(parser.hasColumn(col));
-
-        int i=0;
-        for (final Row row : parser) {
-            final String[] expected = data[i++];
-            final String[] actual = row.getFields();
-            for (int j = 0; j < expected.length; j++) {
-                Assert.assertTrue((expected[j].equals("") && actual[j] == null) || expected[j].equals(actual[j]));
-            }
-            Assert.assertEquals(row.getCurrentLine(), StringUtil.join("\t", expected));
-            try {
-                row.getField(headers[0]);
-                row.getField(headers[1]);
-                row.getIntegerField(headers[2]);
-            }
-            catch(Exception e) {
-                Assert.fail("Failed to parse one of the fields in " + row.getCurrentLine() + ": " + e.getMessage());
-            }
-        }
-
-        Assert.assertEquals(i, data.length);
-    }
-
-}
diff --git a/src/tests/java/net/sf/picard/util/TextFileParsersTest.java b/src/tests/java/net/sf/picard/util/TextFileParsersTest.java
deleted file mode 100644
index bada9d7..0000000
--- a/src/tests/java/net/sf/picard/util/TextFileParsersTest.java
+++ /dev/null
@@ -1,310 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.util;
-
-import net.sf.picard.io.IoUtil;
-import org.testng.annotations.Test;
-import org.testng.annotations.DataProvider;
-import org.testng.Assert;
-
-import java.io.*;
-import java.util.ArrayList;
-import java.util.List;
-
-import net.sf.picard.PicardException;
-
-public class TextFileParsersTest {
-
-    private static final String testFile1 = "testdata/net/sf/picard/util/whitepace_text_file.txt";
-    private static final String testFile2 = "testdata/net/sf/picard/util/all_ones_text_file.txt";
-    private static final String testFile3 = "testdata/net/sf/picard/util/no_grouping_file.txt";
-    private static final String testFile4 = "testdata/net/sf/picard/util/tabbed_text_file.txt";
-    // There is a comment in the file data that should be skipped by the parser, so it is not included below
-    private static final Object[][] testFile1Data = {
-        { "Now", "is", "the", "time" },
-        { "for", "all", "good", "men" },
-        { "to", "come", "to", "the" },
-        { "aid", "of", "their", "country." },
-        { 15.0d, 23, 55, 67.88888}
-    };
-
-    @Test(dataProvider = "basicInputParserData")
-    public void testTextFileParser(Object fileOrStream) throws IOException {
-        FormatUtil format = new FormatUtil();
-
-        List<String> expected = new ArrayList<String>();
-        if (fileOrStream instanceof File) {
-            BufferedReader reader = new BufferedReader(new FileReader((File)fileOrStream));
-            String line = null;
-            while ((line = reader.readLine()) != null)  {
-                if (!line.startsWith("#")) expected.add(line);
-            }
-            reader.close();
-        }
-
-        BasicInputParser parser = fileOrStream instanceof File
-            ? new BasicInputParser(true, (File)fileOrStream )
-            : new BasicInputParser(true, (InputStream)fileOrStream);
-        int index = 0;
-        while (parser.hasNext())
-        {
-            String parts[] = parser.next();
-            if (fileOrStream instanceof File) {
-                // Can't have the parser and the reader workking with an InputStream at the same time
-                // so we only do this test with the file
-                Assert.assertEquals(parser.getCurrentLine(), expected.get(index));
-            }
-            // Line 4 is a comment, so there's a gap in the line numbers
-            Assert.assertEquals(parser.getCurrentLineNumber(), index <= 2 ? index+1 : index+2);
-            Assert.assertEquals(parts.length, 4);
-            if (index < 4) {
-                for (int i = 0; i < parts.length; i++) {
-                    Assert.assertEquals(parts, testFile1Data[index]);
-                }
-            }
-            else {
-                Assert.assertEquals(testFile1Data[index][0], format.parseDouble(parts[0]));
-                Assert.assertEquals(testFile1Data[index][1], format.parseInt(parts[1]));
-                Assert.assertEquals(testFile1Data[index][2], format.parseInt(parts[2]));
-                Assert.assertEquals(testFile1Data[index][3], format.parseDouble(parts[3]));
-            }
-            index++;
-        }
-    }
-
-    @DataProvider(name = "basicInputParserData")
-    private Object[][] getBasicInputParserData()
-    {
-        return new Object[][] {
-                {new File(testFile1)},
-                {IoUtil.openFileForReading(new File(testFile1))}
-        };
-    }
-
-    @Test(dataProvider = "multiFileParsingData")
-    public void testMultiFileParsing(Object fileOrStream1, Object fileOrStream2) throws IOException {
-        FormatUtil format = new FormatUtil();
-
-        List<String> expected = new ArrayList<String>();
-        if (fileOrStream1 instanceof File) {
-            BufferedReader reader = new BufferedReader(new FileReader((File)fileOrStream1));
-            String line = null;
-            while ((line = reader.readLine()) != null)  {
-                if (!line.startsWith("#")) expected.add(line);
-            }
-            reader.close();
-            reader = new BufferedReader(new FileReader((File)fileOrStream2));
-            while ((line = reader.readLine()) != null)  {
-                if (!line.startsWith("#")) expected.add(line);
-            }
-            reader.close();
-        }
-
-        BasicInputParser parser = fileOrStream1 instanceof File
-            ? new BasicInputParser(true, (File)fileOrStream1, (File)fileOrStream2 )
-            : new BasicInputParser(true, (InputStream)fileOrStream1, (InputStream)fileOrStream2);
-        int index = 0;
-        // Line 4 is a comment, so there's a gap in the line numbers
-        int expectedLineNumbers[] = {1,2,3,5,6,1,2,3,5,6};
-        while (parser.hasNext())
-        {
-            String parts[] = parser.next();
-            if (fileOrStream1 instanceof File) {
-                // Can't have the parser and the reader working with an InputStream at the same time
-                // so we only test the files
-                Assert.assertEquals(parser.getCurrentLine(), expected.get(index));
-            }
-            Assert.assertEquals(parser.getCurrentLineNumber(), expectedLineNumbers[index]);
-            Assert.assertEquals(parts.length, 4);
-            int indexIntoTestData = (index<5) ? index : index-5;
-            if (index != 4 && index != 9) {
-                for (int i = 0; i < parts.length; i++) {
-                    Assert.assertEquals(parts, testFile1Data[indexIntoTestData]);
-                }
-            }
-            else {
-                Assert.assertEquals(testFile1Data[indexIntoTestData][0], format.parseDouble(parts[0]));
-                Assert.assertEquals(testFile1Data[indexIntoTestData][1], format.parseInt(parts[1]));
-                Assert.assertEquals(testFile1Data[indexIntoTestData][2], format.parseInt(parts[2]));
-                Assert.assertEquals(testFile1Data[indexIntoTestData][3], format.parseDouble(parts[3]));
-            }
-            index++;
-        }
-    }
-
-    @DataProvider(name = "multiFileParsingData")
-    private Object[][] getMultiFileParsingData()
-    {
-        return new Object[][] {
-                {new File(testFile1), new File(testFile1)},
-                {IoUtil.openFileForReading(new File(testFile1)), IoUtil.openFileForReading(new File(testFile1))}
-        };
-    }
-
-    @Test(dataProvider = "noGroupingData")
-    public void testTextFileParserNoGrouping(Object fileOrStream) {
-        BasicInputParser parser = fileOrStream instanceof File
-            ? new BasicInputParser(true, (File)fileOrStream)
-            : new BasicInputParser(true, (InputStream)fileOrStream);
-        parser.setTreatGroupedDelimitersAsOne(false);
-        while (parser.hasNext()) {
-            String parts[] = parser.next();
-            for (int i = 0; i < parts.length; i++) {
-                if (parts[i] != null) {
-                    Assert.assertEquals(Integer.parseInt(parts[i]), i+1);
-                }
-            }
-        }
-    }
-
-    @DataProvider(name = "noGroupingData")
-    private Object[][] getNoGroupingData()
-    {
-        return new Object[][] {
-                {new File(testFile3)},
-                {IoUtil.openFileForReading(new File(testFile3))}
-        };
-    }
-
-
-    @Test(dataProvider = "leadingWhiteSpaceData")
-    public void testTextFileParserLeadingWhitespace(Object fileOrStream) {
-        BasicInputParser parser = fileOrStream instanceof File
-            ? new BasicInputParser(true, (File)fileOrStream)
-            : new BasicInputParser(true, (InputStream)fileOrStream);
-        while (parser.hasNext())
-        {
-            String parts[] = parser.next();
-            Assert.assertEquals(parts.length, 1);
-            Assert.assertEquals("1", parts[0]);
-        }
-    }
-
-    @DataProvider(name = "leadingWhiteSpaceData")
-    private Object[][] getLeadingWhiteSpaceData()
-    {
-        return new Object[][] {
-                {new File(testFile2)},
-                {IoUtil.openFileForReading(new File(testFile2))}
-        };
-    }
-
-
-    @Test(expectedExceptions= PicardException.class, dataProvider = "tooManyWordsData")
-    public void testTooManyWords(Object fileOrStream) {
-        BasicInputParser parser = fileOrStream instanceof File
-            ? new BasicInputParser(true, 3, (File)fileOrStream)
-            : new BasicInputParser(true, 3, (InputStream)fileOrStream);
-        if (parser.hasNext()) {
-            String parts[] = parser.next();
-        }
-        Assert.fail("Attempt to parse extra-long file should have failed but didn't.");
-    }
-
-    @DataProvider(name = "tooManyWordsData")
-    private Object[][] getTooManyWordsData()
-    {
-        return new Object[][] {
-                {new File(testFile1)},
-                {IoUtil.openFileForReading(new File(testFile1))}
-        };
-    }
-
-    @Test(dataProvider = "tabbedData")
-    public void testTabbedFileParser(Object fileOrStream) {
-        TabbedInputParser parser = fileOrStream instanceof File
-            ? new TabbedInputParser(false, (File)fileOrStream)
-            : new TabbedInputParser(false, (InputStream)fileOrStream);
-        while (parser.hasNext()) {
-            String parts[] = parser.next();
-            for (int i = 0; i < parts.length; i++) {
-                if (parts[i] != null && !parts[i].equals("")) {
-                    Assert.assertEquals(parts[i].trim(), String.valueOf(i+1));
-                }
-            }
-        }
-    }
-
-    @DataProvider(name = "tabbedData")
-    private Object[][] getTabbedData()
-    {
-        return new Object[][] {
-                {new File(testFile4)},
-                {IoUtil.openFileForReading(new File(testFile4))}
-        };
-    }
-
-    @Test(dataProvider="data")
-    public void testWordCountCalculation(String line, boolean groupDelimiters, String name) {
-
-        WordCountTestParser parser = new WordCountTestParser();
-        parser.setDelimiter("\t ");
-        parser.setTreatGroupedDelimitersAsOne(groupDelimiters);
-        parser.calculateWordCount(line.getBytes());
-        Assert.assertEquals(parser.getWordCount(), 3, name);
-    }
-
-    @DataProvider(name = "data")
-    private Object[][] getWordCountCalculationData()
-    {
-        return new Object[][]{
-                {"1\t2\t3", false, "Tabs with all fields filled."},
-                {"1\t2\t", false, "Tabs with no final field."},
-                {"\t2\t3", false, "Tabs with no first field."},
-                {"\t2\t", false, "Tabs with no first or final field."},
-                {"1  2  3", true, "Spaces with all fields filled  (grouping on)."},
-                {"1  2  3  ", true, "Spaces with no final field (grouping on)."},
-                {"   2   3   4", true, "Spaces with no first field (grouping on)."},
-                {" 2 ", false, "Spaces with no first or final field."}
-        };
-    }
-
-    /**
-     * Toy class for testing the word count functionality
-     */
-    private static class WordCountTestParser extends AbstractInputParser {
-
-        private char delimiters[] = null;
-        
-        public WordCountTestParser() {
-        }
-
-        public void setDelimiter(String delim) {
-            delimiters = delim.toCharArray();
-        }
-
-        protected boolean isDelimiter(final byte b) {
-            for (int i = 0; i < delimiters.length; i++) {
-                if (b == delimiters[i]) {
-                    return true;
-                }
-            }
-            return false;
-        }
-
-        protected byte[] readNextLine() {  return new byte[0]; }
-        public String getFileName() { return null; }
-        public void close() {}
-    }
-}
diff --git a/src/tests/java/net/sf/picard/util/UnsignedTypeUtilTest.java b/src/tests/java/net/sf/picard/util/UnsignedTypeUtilTest.java
deleted file mode 100644
index 97f60e5..0000000
--- a/src/tests/java/net/sf/picard/util/UnsignedTypeUtilTest.java
+++ /dev/null
@@ -1,75 +0,0 @@
-package net.sf.picard.util;
-
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-public class UnsignedTypeUtilTest {
-
-    @DataProvider(name="uByteData")
-    public Object [][] uByteData() {
-        return new Object [][]{
-            {(byte)0xFF, 255},
-            {(byte)0xFE, 254},
-            {(byte)0x80, 128},
-            {(byte)0x7F, 127},
-            {(byte)0x70, 112},
-            {(byte)0x02, 2},
-            {(byte)0x01, 1},
-            {(byte)0x00, 0},
-        };
-    }
-
-    @DataProvider(name="uShortData")
-    public Object [][] uShortData() {
-        return new Object [][]{
-                {(short)0xFFFF, 65535},
-                {(short)0xFFFE, 65534},
-                {(short)0x8021, 32801},
-                {(short)0x7FFF, 32767},
-                {(short)0x5545, 21829},
-                {(short)0x0002, 2},
-                {(short)0x0001, 1},
-                {(short)0x0000, 0}
-        };
-    }
-
-    @DataProvider(name="uIntData")
-    public Object [][] uIntData() {
-        return new Object [][]{
-                {0xFFFFFFFF,  4294967295L},
-                {0xFFFFFFFE,  4294967294L},
-                {0x81014000,  2164342784L},
-                {0x7FFFFFFF,  2147483647L},
-                {0x10502100,  273686784L},
-                {0x00000002, 2L},
-                {0x00000001, 1L},
-                {0x00000000, 0L}
-        };
-    }
-
-    /** Convert an unsigned byte to a signed int */
-    @Test(dataProvider="uByteData")
-    public void uByteToIntTest(final byte unsignedByte, final int expectedInt) {
-        Assert.assertEquals(UnsignedTypeUtil.uByteToInt(unsignedByte), expectedInt);
-    }
-
-    /** Convert an unsigned byte to a signed short */
-    @Test(dataProvider="uByteData")
-    public void uByteToShortTest(final byte unsignedByte, final int expectedInt) {
-        final short expectedShort = (short) expectedInt;
-        Assert.assertEquals(UnsignedTypeUtil.uByteToShort(unsignedByte), expectedShort);
-    }
-
-    /** Convert an unsigned short to an Int */
-    @Test(dataProvider="uShortData")
-    public void uShortToIntTest(final short unsignedShort, final int expectedInt) {
-        Assert.assertEquals(UnsignedTypeUtil.uShortToInt(unsignedShort), expectedInt);
-    }
-
-    /** Convert an unsigned int to a long */
-    @Test(dataProvider="uIntData")
-    public void uIntToLongTest(final int unsignedInt, final long expectedLong) {
-        Assert.assertEquals(UnsignedTypeUtil.uIntToLong(unsignedInt), expectedLong);
-    }
-}
diff --git a/src/tests/java/net/sf/picard/vcf/MergeVcfsTest.java b/src/tests/java/net/sf/picard/vcf/MergeVcfsTest.java
deleted file mode 100644
index d4590d0..0000000
--- a/src/tests/java/net/sf/picard/vcf/MergeVcfsTest.java
+++ /dev/null
@@ -1,179 +0,0 @@
-package net.sf.picard.vcf;
-
-import net.sf.samtools.util.CloseableIterator;
-import org.broad.tribble.TribbleException;
-import org.broadinstitute.variant.variantcontext.VariantContext;
-import org.broadinstitute.variant.variantcontext.VariantContextComparator;
-import org.broadinstitute.variant.vcf.VCFFileReader;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Queue;
-
-public class MergeVcfsTest {
-
-	private static final String TEST_DATA_PATH = "testdata/net/sf/picard/vcf/";
-
-	@Test(enabled = false)
-	public void testLong() {
-		final MergeVcfs mergeVcfs = new MergeVcfs();
-		mergeVcfs.OUTPUT = new File("/Users/jrose/development/long-merge-test.vcf.gz");
-		mergeVcfs.CREATE_INDEX = false;
-		mergeVcfs.INPUT = Arrays.asList(
-				new File("/Volumes/Disko Segundo/mergevcfs/t2d_genes_contam_test4_per_sample_plus_five.snps.recalibrated.vcf"),
-				new File("/Volumes/Disko Segundo/mergevcfs/t2d_genes_contam_test4_per_sample_plus_five.indels.filtered.vcf"));
-
-		final int returnCode = mergeVcfs.instanceMain(new String[0]);
-		Assert.assertEquals(returnCode, 0);
-	}
-
-	@Test (expectedExceptions = IllegalArgumentException.class)
-	public void testFailsOnDissimilarContigLists() {
-		final File dissimilarContigs = new File(TEST_DATA_PATH, "CEUTrio-indels-dissimilar-contigs.vcf");
-		final File snpInputFile = new File(TEST_DATA_PATH, "CEUTrio-snps.vcf");
-
-		final MergeVcfs mergeVcfs = new MergeVcfs();
-		mergeVcfs.OUTPUT = new File("/dev/null/blah");
-		mergeVcfs.CREATE_INDEX = false;
-		mergeVcfs.INPUT = Arrays.asList(dissimilarContigs, snpInputFile);
-
-		mergeVcfs.instanceMain(new String[0]);
-	}
-
-	@Test (expectedExceptions = TribbleException.class)
-	public void testFailsOnNoContigList() {
-		final File contiglessIndelFile = new File(TEST_DATA_PATH + "CEUTrio-indels-no-contigs.vcf");
-		final File snpInputFile = new File(TEST_DATA_PATH, "CEUTrio-snps.vcf");
-
-		final MergeVcfs mergeVcfs = new MergeVcfs();
-		mergeVcfs.OUTPUT = new File("/dev/null/blah");
-		mergeVcfs.INPUT = Arrays.asList(contiglessIndelFile, snpInputFile);
-
-		mergeVcfs.instanceMain(new String[0]);
-	}
-
-	@Test (expectedExceptions = IllegalArgumentException.class)
-	public void testFailsOnDissimilarSampleLists() {
-		final File badSampleIndelFile = new File(TEST_DATA_PATH + "CEUTrio-indels-bad-samples.vcf");
-		final File snpInputFile = new File(TEST_DATA_PATH, "CEUTrio-snps.vcf");
-
-		final MergeVcfs mergeVcfs = new MergeVcfs();
-		mergeVcfs.OUTPUT = new File("/dev/null/blah");
-		mergeVcfs.INPUT = Arrays.asList(badSampleIndelFile, snpInputFile);
-
-		mergeVcfs.instanceMain(new String[0]);
-	}
-
-	@Test
-	public void testMergeIndelsSnps() throws IOException {
-		final File indelInputFile = new File(TEST_DATA_PATH + "CEUTrio-indels.vcf");
-		final File snpInputFile = new File(TEST_DATA_PATH + "CEUTrio-snps.vcf");
-		final File output = File.createTempFile("merge-indels-snps-test-output.", ".vcf");
-        output.deleteOnExit();
-
-		final Queue<String> indelContigPositions = loadContigPositions(indelInputFile);
-		final Queue<String> snpContigPositions = loadContigPositions(snpInputFile);
-
-		final MergeVcfs mergeVcfs = new MergeVcfs();
-		mergeVcfs.OUTPUT = output;
-		mergeVcfs.INPUT = Arrays.asList(indelInputFile, snpInputFile);
-
-		final int returnCode = mergeVcfs.instanceMain(new String[0]);
-		Assert.assertEquals(returnCode, 0);
-
-		// Make sure that the order of the output file is identical to the order
-		// of the input files by iterating through the output, making sure that,
-		// if the context is an indel (snp), the next genomic position in the indel
-		// (snp) queue is the same. Also make sure that the context is in the order
-		// specified by the input files.
-		final VCFFileReader outputReader = new VCFFileReader(output);
-		final VariantContextComparator outputComparator = outputReader.getFileHeader().getVCFRecordComparator();
-		VariantContext last = null;
-		final CloseableIterator<VariantContext> iterator = outputReader.iterator();
-		while (iterator.hasNext()) {
-			final VariantContext outputContext = iterator.next();
-			if (outputContext.isIndel()) Assert.assertEquals(getContigPosition(outputContext), indelContigPositions.poll());
-			if (outputContext.isSNP()) Assert.assertEquals(getContigPosition(outputContext), snpContigPositions.poll());
-			if (last != null) Assert.assertTrue(outputComparator.compare(last, outputContext) < 0);
-			last = outputContext;
-		}
-        iterator.close();
-
-		// We should have polled everything off the indel (snp) queues
-		Assert.assertEquals(indelContigPositions.size(), 0);
-		Assert.assertEquals(snpContigPositions.size(), 0);
-
-		output.deleteOnExit();
-	}
-
-	@Test
-	public void testMergeRandomScatter() throws IOException {
-		final File zero = new File(TEST_DATA_PATH, "CEUTrio-random-scatter-0.vcf");
-		final File one = new File(TEST_DATA_PATH, "CEUTrio-random-scatter-1.vcf");
-		final File two = new File(TEST_DATA_PATH, "CEUTrio-random-scatter-2.vcf");
-		final File three = new File(TEST_DATA_PATH, "CEUTrio-random-scatter-3.vcf");
-		final File four = new File(TEST_DATA_PATH, "CEUTrio-random-scatter-4.vcf");
-		final File five = new File(TEST_DATA_PATH, "CEUTrio-random-scatter-5.vcf");
-
-		final List<Queue<String>> positionQueues = new ArrayList<Queue<String>>(6);
-		positionQueues.add(0, loadContigPositions(zero));
-		positionQueues.add(1, loadContigPositions(one));
-		positionQueues.add(2, loadContigPositions(two));
-		positionQueues.add(3, loadContigPositions(three));
-		positionQueues.add(4, loadContigPositions(four));
-		positionQueues.add(5, loadContigPositions(five));
-
-		final File output = File.createTempFile("random-scatter-test-output.", ".vcf");
-		output.deleteOnExit();
-
-		final MergeVcfs mergeVcfs = new MergeVcfs();
-		mergeVcfs.OUTPUT = output;
-		mergeVcfs.INPUT = Arrays.asList(zero, one, two, three, four, five);
-
-		final int returnCode = mergeVcfs.instanceMain(new String[0]);
-		Assert.assertEquals(returnCode, 0);
-
-		final VCFFileReader outputReader = new VCFFileReader(output);
-		final VariantContextComparator outputComparator = outputReader.getFileHeader().getVCFRecordComparator();
-		VariantContext last = null;
-		final CloseableIterator<VariantContext> iterator = outputReader.iterator();
-		while (iterator.hasNext()) {
-			final VariantContext outputContext = iterator.next();
-			final String position = getContigPosition(outputContext);
-			for (final Queue<String> positionQueue : positionQueues) {
-				if (position.equals(positionQueue.peek())) {
-					positionQueue.poll();
-					break;
-				}
-			}
-
-			if (last != null) Assert.assertTrue(outputComparator.compare(last, outputContext) < 0);
-			last = outputContext;
-		}
-        iterator.close();
-
-		for (final Queue<String> positionQueue : positionQueues) {
-			Assert.assertEquals(positionQueue.size(), 0);
-		}
-	}
-
-	static Queue<String> loadContigPositions(final File inputFile) {
-		final VCFFileReader reader = new VCFFileReader(inputFile);
-		final Queue<String> contigPositions = new LinkedList<String>();
-		final CloseableIterator<VariantContext> iterator = reader.iterator();
-		while (iterator.hasNext()) contigPositions.add(getContigPosition(iterator.next()));
-		iterator.close();
-		reader.close();
-		return contigPositions;
-	}
-
-	static String getContigPosition(final VariantContext context) {
-		return context.getChr() + "-" + Integer.toString(context.getStart());
-	}
-}
diff --git a/src/tests/java/net/sf/picard/vcf/SplitVcfsTest.java b/src/tests/java/net/sf/picard/vcf/SplitVcfsTest.java
deleted file mode 100644
index c64c743..0000000
--- a/src/tests/java/net/sf/picard/vcf/SplitVcfsTest.java
+++ /dev/null
@@ -1,105 +0,0 @@
-package net.sf.picard.vcf;
-
-import net.sf.picard.io.IoUtil;
-import net.sf.samtools.util.CloseableIterator;
-import org.broadinstitute.variant.variantcontext.VariantContext;
-import org.broadinstitute.variant.variantcontext.VariantContext.Type;
-import org.broadinstitute.variant.variantcontext.writer.VariantContextWriter;
-import org.broadinstitute.variant.variantcontext.writer.VariantContextWriterBuilder;
-import org.broadinstitute.variant.vcf.VCFFileReader;
-import org.testng.Assert;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Queue;
-
-public class SplitVcfsTest {
-
-	private static final File OUTPUT_DATA_PATH = IoUtil.createTempDir("SplitVcfsTest", null);
-	private static final File TEST_DATA_PATH = new File("testdata/net/sf/picard/vcf/");
-
-	@AfterClass
-	public void teardown() {
-		IoUtil.deleteDirectoryTree(OUTPUT_DATA_PATH);
-	}
-
-	@Test
-	public void testSplit() {
-		final File indelOutputFile = new File(OUTPUT_DATA_PATH, "split-vcfs-test-indels-delete-me.vcf");
-		final File snpOutputFile = new File(OUTPUT_DATA_PATH, "split-vcfs-test-snps-delete-me.vcf");
-		final File input = new File(TEST_DATA_PATH, "CEUTrio-merged-indels-snps.vcf");
-
-		indelOutputFile.deleteOnExit();
-		snpOutputFile.deleteOnExit();
-
-		final SplitVcfs splitVcfs = new SplitVcfs();
-		splitVcfs.SNP_OUTPUT = snpOutputFile;
-		splitVcfs.INDEL_OUTPUT = indelOutputFile;
-		splitVcfs.INPUT = input;
-
-		final int returnCode = splitVcfs.instanceMain(new String[0]);
-		Assert.assertEquals(returnCode, 0);
-
-		final Queue<String> indelContigPositions = MergeVcfsTest.loadContigPositions(indelOutputFile);
-		final Queue<String> snpContigPositions = MergeVcfsTest.loadContigPositions(snpOutputFile);
-
-		final VCFFileReader reader = new VCFFileReader(input);
-		final CloseableIterator<VariantContext> iterator = reader.iterator();
-		while (iterator.hasNext()) {
-			final VariantContext inputContext = iterator.next();
-			if (inputContext.isIndel()) Assert.assertEquals(MergeVcfsTest.getContigPosition(inputContext), indelContigPositions.poll());
-			if (inputContext.isSNP()) Assert.assertEquals(MergeVcfsTest.getContigPosition(inputContext), snpContigPositions.poll());
-		}
-
-		// We should have polled everything off the indel (snp) queues
-		Assert.assertEquals(indelContigPositions.size(), 0);
-		Assert.assertEquals(snpContigPositions.size(), 0);
-	}
-
-	@Test (enabled = false)
-	public void sampleVCF() {
-
-		final int SAMPLE_FREQUENCY = 20000;
-
-		int totalIn = 0;
-		int totalOut = 0;
-		final Map<Type, Integer> inputCounts = new HashMap<Type, Integer>();
-		final Map<Type, Integer> outputCounts = new HashMap<Type, Integer>();
-		final File INPUT = new File("/Volumes/Disko Segundo/splitvcfs/CEUTrio.HiSeq.WGS.b37.snps_and_indels.recalibrated.filtered.phased.CURRENT.vcf.gz");
-		final VCFFileReader reader = new VCFFileReader(INPUT);
-
-		final VariantContextWriter OUTPUT = new VariantContextWriterBuilder()
-                .setOutputFile("/Volumes/shm/CEUTrio-REDUCED.vcf")
-                .clearOptions()
-                .build();
-		OUTPUT.writeHeader(reader.getFileHeader());
-
-		final CloseableIterator<VariantContext> iterator = reader.iterator();
-		while (iterator.hasNext()) {
-			final VariantContext variantContext = iterator.next();
-			totalIn++;
-
-			final Integer inputCount = inputCounts.get(variantContext.getType());
-			if (inputCount == null) inputCounts.put(variantContext.getType(), 1);
-			else inputCounts.put(variantContext.getType(), inputCount + 1);
-
-			if ((totalIn % SAMPLE_FREQUENCY) == 0) {
-				OUTPUT.add(variantContext);
-				totalOut++;
-				final Integer outputCount = outputCounts.get(variantContext.getType());
-				if (outputCount == null) outputCounts.put(variantContext.getType(), 1);
-				else outputCounts.put(variantContext.getType(), outputCount + 1);
-			}
-		}
-
-		reader.close();
-		OUTPUT.close();
-
-		System.out.println("INPUT: " + totalIn + "; OUTPUT: " + totalOut);
-		System.out.println("INPUT: " + inputCounts.toString());
-		System.out.println("OUTPUT: " + outputCounts.toString());
-	}
-}
diff --git a/src/tests/java/net/sf/picard/vcf/VariantContextComparatorTest.java b/src/tests/java/net/sf/picard/vcf/VariantContextComparatorTest.java
deleted file mode 100644
index 18588d3..0000000
--- a/src/tests/java/net/sf/picard/vcf/VariantContextComparatorTest.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2012 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.picard.vcf;
-
-import org.broadinstitute.variant.variantcontext.Allele;
-import org.broadinstitute.variant.variantcontext.VariantContext;
-import org.broadinstitute.variant.variantcontext.VariantContextBuilder;
-import org.broadinstitute.variant.variantcontext.VariantContextComparator;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.LinkedHashSet;
-import java.util.List;
-
-public class VariantContextComparatorTest {
-
-	private static VariantContext buildVariantContext(final String source, final String contig, final long start) {
-		final Collection<Allele> alleles = new ArrayList<Allele>();
-		alleles.add(Allele.create("AAAA", true));
-		alleles.add(Allele.create("AAGG", false));
-		return new VariantContextBuilder(source, contig, start, start + 3, alleles).make();
-	}
-
-	private static List<String> getOrderedContigList(final VariantContext... variantContexts) {
-		final LinkedHashSet<String> contigs = new LinkedHashSet<String>();
-		for (final VariantContext context : variantContexts) {
-			contigs.add(context.getChr());
-		}
-		return new ArrayList<String>(contigs);
-	}
-
-	@Test
-	public void testIdentical() {
-		final VariantContext contextOne = buildVariantContext("source", "one", 100);
-		final List<String> contigs = getOrderedContigList(contextOne);
-		Assert.assertEquals(0, new VariantContextComparator(contigs).compare(contextOne, contextOne));
-	}
-
-	@Test
-	public void testPositions() {
-		final VariantContext contextOne = buildVariantContext("source", "one", 100);
-		final VariantContext contextTwo = buildVariantContext("source", "one", 150);
-		final List<String> contigs = getOrderedContigList(contextOne, contextTwo);
-		Assert.assertTrue(new VariantContextComparator(contigs).compare(contextOne, contextTwo) < 0);
-		Assert.assertTrue(new VariantContextComparator(contigs).compare(contextTwo, contextOne) > 0);
-	}
-
-	@Test
-	public void testContigs() {
-		final VariantContext contextOne = buildVariantContext("source", "one", 100);
-		final VariantContext contextTwo = buildVariantContext("source", "two", 100);
-		final List<String> contigs = getOrderedContigList(contextOne, contextTwo);
-		Assert.assertTrue(new VariantContextComparator(contigs).compare(contextOne, contextTwo) < 0);
-		Assert.assertTrue(new VariantContextComparator(contigs).compare(contextTwo, contextOne) > 0);
-	}
-
-	@Test
-	public void testCombinationOne() {
-		final VariantContext contextOne = buildVariantContext("source", "one", 100);
-		final VariantContext contextTwo = buildVariantContext("source", "two", 150);
-		final List<String> contigs = getOrderedContigList(contextOne, contextTwo);
-		Assert.assertTrue(new VariantContextComparator(contigs).compare(contextOne, contextTwo) < 0);
-		Assert.assertTrue(new VariantContextComparator(contigs).compare(contextTwo, contextOne) > 0);
-	}
-
-	@Test
-	public void testCombinationTwo() {
-		final VariantContext contextOne = buildVariantContext("source", "one", 150);
-		final VariantContext contextTwo = buildVariantContext("source", "two", 100);
-		final List<String> contigs = getOrderedContigList(contextOne, contextTwo);
-		Assert.assertTrue(new VariantContextComparator(contigs).compare(contextOne, contextTwo) < 0);
-		Assert.assertTrue(new VariantContextComparator(contigs).compare(contextTwo, contextOne) > 0);
-	}
-
-	@Test (expectedExceptions = IllegalArgumentException.class)
-	public void testThrowsOnDuplicateContig() {
-		final List<String> contigs = new ArrayList<String>(3);
-		contigs.add("one");
-		contigs.add("two");
-		contigs.add("one");
-
-		new VariantContextComparator(contigs);
-	}
-}
diff --git a/src/tests/java/net/sf/picard/vcf/VcfFormatConverterTest.java b/src/tests/java/net/sf/picard/vcf/VcfFormatConverterTest.java
deleted file mode 100644
index dfa7124..0000000
--- a/src/tests/java/net/sf/picard/vcf/VcfFormatConverterTest.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
-* Copyright (c) 2013 The Broad Institute
-*
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-*
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package net.sf.picard.vcf;
-
-import net.sf.picard.PicardException;
-import org.broad.tribble.Tribble;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.io.IOException;
-
-public class VcfFormatConverterTest {
-    private static final String TEST_DATA_PATH = "testdata/net/sf/picard/vcf/";
-    private static final String TEST_FILE_BASE = "vcfFormatTest";
-
-    private static final String VCF = ".vcf";
-    private static final String VCF_GZ = ".vcf.gz";
-	private static final String BCF = ".bcf";
-
-    private static final File TEST_VCF = new File(TEST_DATA_PATH, TEST_FILE_BASE + VCF);
-    private static final File TEST_BCF = new File(TEST_DATA_PATH, TEST_FILE_BASE + BCF);
-
-    @Test
-    public void testVcfToVcf() {
-        runLikeTest(TEST_VCF, VCF);
-    }
-
-    @Test
-    public void testVcfToBcf() {
-        runBackAndForthTest(TEST_VCF, BCF, VCF);
-    }
-
-    @Test
-    public void testVcfToVcfGz() {
-        runBackAndForthTest(TEST_VCF, VCF_GZ, VCF);
-    }
-
-    @Test
-    public void testBcfToBcf() {
-        runLikeTest(TEST_BCF, BCF);
-    }
-
-    @Test
-    public void testBcfToVcf() {
-        runBackAndForthTest(TEST_BCF, VCF, BCF);
-    }
-
-    private void runLikeTest(final File input, final String format) {
-        final File outputFile = convertFile(input, "likeTest", format);
-        compareFiles(input, outputFile);
-    }
-
-    private void runBackAndForthTest(final File input, final String format, final String originalFormat) {
-        final String tempPrefix = "backAndForth";
-
-        final File backAndForth = convertFile(input, tempPrefix, format);
-        final File backAndForthSeries2 = convertFile(backAndForth, tempPrefix, originalFormat);
-
-        compareFiles(input, backAndForthSeries2);
-    }
-
-    private File convertFile(final File input, final String prefix, final String format) {
-        final File outputFile;
-        try {
-            outputFile = File.createTempFile(prefix, format);
-        } catch (final IOException ioe) {
-            throw new PicardException("Unable to create temp file!");
-        }
-
-        outputFile.deleteOnExit();
-        new File(outputFile.getAbsolutePath() + Tribble.STANDARD_INDEX_EXTENSION).deleteOnExit();
-        final VcfFormatConverter vcfFormatConverter = new VcfFormatConverter();
-        vcfFormatConverter.INPUT = input;
-        vcfFormatConverter.OUTPUT = outputFile;
-        if (VCF_GZ.equals(format)) {
-            vcfFormatConverter.CREATE_INDEX = false;
-        }
-        if (input.getName().endsWith(VCF_GZ)) {
-            vcfFormatConverter.REQUIRE_INDEX = false;
-        }
-
-        Assert.assertEquals(vcfFormatConverter.doWork(), 0);
-        return outputFile;
-    }
-
-    private void compareFiles(final File file1, final File file2) {
-        // Ok, so this isn't exactly comparing md5 checksums or anything, but it should be good enough
-        // for our purposes.
-        Assert.assertTrue(file1.exists());
-        Assert.assertTrue(file2.exists());
-        Assert.assertEquals(file1.length(), file2.length());
-    }
-
-}
diff --git a/src/tests/java/net/sf/samtools/ArrayTagValueTest.java b/src/tests/java/net/sf/samtools/ArrayTagValueTest.java
deleted file mode 100644
index 5af84f5..0000000
--- a/src/tests/java/net/sf/samtools/ArrayTagValueTest.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.sam.SamFormatConverter;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Test 'B' array tag type.
- */
-public class ArrayTagValueTest {
-    private static final File TEST_DATA_DIR = new File("testdata/net/sf/samtools");
-    private static final SortedSet<String> arrayTags = new TreeSet<String>(Arrays.asList(
-            "X0:B:c,0",
-            "X1:B:c,-128,127,-55,3",
-            "X2:B:C,12",
-            "X3:B:C,0,255,129,128,127",
-            "X4:B:s,-23",
-            "X5:B:s,32767,-32768,16384,-16384,0",
-            "X6:B:S,65535",
-            "X7:B:S,0,65535,13,14,15,22",
-            "X8:B:i,0",
-            "X9:B:i,2147483647,-2147483648,49,-1345678",
-            "Y0:B:I,4000000000",
-            "Y1:B:I,0,4294967295,3000000000"
-            ));
-
-    // Floats must be done separately because of ambiguity in string representation.
-    private static final SortedMap<String, String> floatArrayTags = new TreeMap<String, String>();
-    static {
-        floatArrayTags.put("F0", "B:f,0");
-        floatArrayTags.put("F1", "B:f,0,-0,.0,-.0,-0.0,3.4028234663852886E38f,-3.4028234663852886E38f,1.401298464324817E-45f,-1.401298464324817E-45f");
-
-    }
-
-    /**
-     * Convert hand-crafted SAM text to BAM and then back to SAM, in order to test reading and writing of both SAM and BAM.
-     */
-    @Test
-    public void basicTest() throws Exception {
-
-        // Write a SAM file not using SAM-JDK
-        final String inputSamWithNoTags = IoUtil.readFully(new FileInputStream(new File(TEST_DATA_DIR, "array_tags.sam")));
-        final File inputSam = File.createTempFile("arrayTagValueTest.", ".sam");
-        inputSam.deleteOnExit();
-        final FileWriter os = new FileWriter(inputSam);
-        os.write(inputSamWithNoTags);
-        for (final String tag: arrayTags) {
-            os.write("\t");
-            os.write(tag);
-        }
-        for (final Map.Entry<String, String> floatTag: floatArrayTags.entrySet()) {
-            os.write("\t");
-            os.write(floatTag.getKey() + ":" + floatTag.getValue());
-        }
-        os.close();
-
-        // Convert the SAM to BAM, in order to test SAM reading and BAM writing.
-        final File bam = File.createTempFile("arrayTagValueTest.", ".bam");
-        bam.deleteOnExit();
-
-        final String[] samToBamArgs = {"INPUT="+inputSam.getAbsolutePath(),
-                                 "OUTPUT="+bam.getAbsolutePath()};
-        Assert.assertEquals(new SamFormatConverter().instanceMain(samToBamArgs), 0);
-
-        // Convert the BAM to SAM, in order to test BAM reading and SAM writing.
-        final File outputSam = File.createTempFile("arrayTagValueTest.convertedFromBam.", ".sam");
-        outputSam.deleteOnExit();
-        final String[] bamToSamArgs = {"INPUT="+bam.getAbsolutePath(),
-                                 "OUTPUT="+outputSam.getAbsolutePath()};
-        Assert.assertEquals(new SamFormatConverter().instanceMain(bamToSamArgs), 0);
-
-        // Read the SAM file not using SAM-JDK, in order to validate that the tags are as expected.
-        final BufferedReader reader = new BufferedReader(new FileReader(outputSam));
-        // Skip header lines.
-        reader.readLine(); reader.readLine();
-        final String samTextLine = reader.readLine();
-
-        // Get the single SAM record, and pull off the tags.
-        final String[] fields = samTextLine.split("\t");
-        final SortedSet<String> actualTags = new TreeSet<String>();
-        final SortedMap<String, String> actualFloatTags = new TreeMap<String, String>();
-        for (int i = 11; i < fields.length; ++i) {
-            if (fields[i].startsWith("F")) {
-                final String[] tagAndValue = fields[i].split(":", 2);
-                actualFloatTags.put(tagAndValue[0], tagAndValue[1]);
-            } else {
-                actualTags.add(fields[i]);
-            }
-        }
-        Assert.assertEquals(actualTags, arrayTags);
-
-        // Floats must be done separately because of ambiguity in string representation.
-        Assert.assertEquals(actualFloatTags.size(), floatArrayTags.size());
-
-        for (final String tag: floatArrayTags.keySet()) {
-            assertFloatTagValuesEqual(actualFloatTags.get(tag), floatArrayTags.get(tag));
-        }
-    }
-
-    private void assertFloatTagValuesEqual(final String actualFloatStr, final String expectedFloatStr) {
-        final float[] actualFloats = convertFloatStr(actualFloatStr);
-        final float[] expectedFloats = convertFloatStr(expectedFloatStr);
-        Assert.assertTrue(Arrays.equals(actualFloats, expectedFloats));
-    }
-
-    private float[] convertFloatStr(final String floatStr) {
-        final String[] fields = floatStr.split(":")[1].split(",");
-        final float[] ret = new float[fields.length - 1];
-        for (int i = 1; i < fields.length; ++i) {
-            ret[i-1] = Float.parseFloat(fields[i]);
-        }
-        return ret;
-    }
-
-    private static final String HEX_TAG = "X0";
-    private static final String HEX_TAG_STRING = ":H:00ff7FF7";
-    private static final byte[] EXPECTED_HEX_ARRAY = {0, (byte)0xff, 0x7f, (byte)0xf7};
-    /**
-     * Old-style hex arrays (type H) are converted to new-style byte arrays when read.
-     * @throws Exception
-     */
-    @Test
-    public void hexArrayFromSamTest() throws Exception {
-        // Write a SAM file not using SAM-JDK
-        final String inputSamWithNoTags = IoUtil.readFully(new FileInputStream(new File(TEST_DATA_DIR, "array_tags.sam")));
-        final File inputSam = File.createTempFile("arrayTagValueTest.", ".sam");
-        inputSam.deleteOnExit();
-        final FileWriter os = new FileWriter(inputSam);
-        os.write(inputSamWithNoTags);
-        os.write("\t" + HEX_TAG + HEX_TAG_STRING);
-        os.close();
-        final SAMFileReader samReader = new SAMFileReader(inputSam);
-        final SAMRecord samRecord = samReader.iterator().next();
-        Assert.assertTrue(Arrays.equals((byte[])samRecord.getAttribute(HEX_TAG), EXPECTED_HEX_ARRAY));
-        Assert.assertTrue(Arrays.equals(samRecord.getByteArrayAttribute(HEX_TAG), EXPECTED_HEX_ARRAY));
-        Assert.assertTrue(Arrays.equals(samRecord.getSignedByteArrayAttribute(HEX_TAG), EXPECTED_HEX_ARRAY));
-    }
-
-    /**
-     * Old-style hex arrays (type H) are converted to new-style byte arrays when read.  Confirm that a BAM containing
-     * an old-style hex array is converted properly.
-     * @throws Exception
-     */
-    @Test
-    public void hexArrayFromBamTest() throws Exception {
-        final SAMFileReader samReader = new SAMFileReader(new File(TEST_DATA_DIR, "recordWithHexArrayAttribute.bam"));
-        final SAMRecord samRecord = samReader.iterator().next();
-        Assert.assertTrue(Arrays.equals((byte[])samRecord.getAttribute(HEX_TAG), EXPECTED_HEX_ARRAY));
-        Assert.assertTrue(Arrays.equals(samRecord.getByteArrayAttribute(HEX_TAG), EXPECTED_HEX_ARRAY));
-        Assert.assertTrue(Arrays.equals(samRecord.getSignedByteArrayAttribute(HEX_TAG), EXPECTED_HEX_ARRAY));
-    }
-}
diff --git a/src/tests/java/net/sf/samtools/BAMFileIndexTest.java b/src/tests/java/net/sf/samtools/BAMFileIndexTest.java
deleted file mode 100755
index 02741e1..0000000
--- a/src/tests/java/net/sf/samtools/BAMFileIndexTest.java
+++ /dev/null
@@ -1,515 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import net.sf.samtools.util.CloseableIterator;
-import net.sf.samtools.util.StopWatch;
-import net.sf.samtools.util.StringUtil;
-import org.testng.Assert;
-import static org.testng.Assert.*;
-
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.util.*;
-
-/**
- * Test BAM file indexing.
- */
-public class BAMFileIndexTest
-{
-    private final File BAM_FILE = new File("testdata/net/sf/samtools/BAMFileIndexTest/index_test.bam");
-    private final boolean mVerbose = false;
-
-    @Test
-    public void testGetSearchBins()
-        throws Exception {
-        final DiskBasedBAMFileIndex bfi = new DiskBasedBAMFileIndex(new File(BAM_FILE.getPath() + ".bai"),
-                null);    // todo can null be replaced with a Sequence dictionary for the BAM_FILE?
-        final long[] bins = bfi.getSpanOverlapping(1, 0, 0).toCoordinateArray();
-        /***
-        if (bins == null) {
-            System.out.println("Search bins: " + bins);
-            return;
-        }
-        System.out.println("Search bins:");
-        for (int i = 0; i < bins.length; i++) {
-            System.out.println(" " + Long.toHexString(bins[i]));
-        }
-        ***/
-        assertNotNull(bins);
-        assertEquals(bins.length, 2);
-    }
-
-    @Test
-    public void testSpecificQueries()
-        throws Exception {
-        assertEquals(runQueryTest(BAM_FILE, "chrM", 10400, 10600, true), 1);
-        assertEquals(runQueryTest(BAM_FILE, "chrM", 10400, 10600, false), 2);
-    }
-
-    @Test(groups = {"slow"})
-    public void testRandomQueries()
-        throws Exception {
-        runRandomTest(BAM_FILE, 1000, new Random());
-    }
-
-    @Test
-    public void testWholeChromosomes() {
-        checkChromosome("chrM", 23);
-        checkChromosome("chr1", 885);
-        checkChromosome("chr2", 837);
-        /***
-        checkChromosome("chr3", 683);
-        checkChromosome("chr4", 633);
-        checkChromosome("chr5", 611);
-        checkChromosome("chr6", 585);
-        checkChromosome("chr7", 521);
-        checkChromosome("chr8", 507);
-        checkChromosome("chr9", 388);
-        checkChromosome("chr10", 477);
-        checkChromosome("chr11", 467);
-        checkChromosome("chr12", 459);
-        checkChromosome("chr13", 327);
-        checkChromosome("chr14", 310);
-        checkChromosome("chr15", 280);
-        checkChromosome("chr16", 278);
-        checkChromosome("chr17", 269);
-        checkChromosome("chr18", 265);
-        checkChromosome("chr19", 178);
-        checkChromosome("chr20", 228);
-        checkChromosome("chr21", 123);
-        checkChromosome("chr22", 121);
-        checkChromosome("chrX", 237);
-        checkChromosome("chrY", 29);
-        ***/
-    }
-
-    @Test
-    public void testQueryUnmapped() {
-        final StopWatch linearScan = new StopWatch();
-        final StopWatch queryUnmapped = new StopWatch();
-        int unmappedCountFromLinearScan = 0;
-        final File bamFile = BAM_FILE;
-        final SAMFileReader reader = new SAMFileReader(bamFile);
-        linearScan.start();
-        CloseableIterator<SAMRecord> it = reader.iterator();
-        int mappedCount = 0;
-        while (it.hasNext()) {
-            final SAMRecord rec = it.next();
-            if (rec.getReferenceIndex() == SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX) {
-                unmappedCountFromLinearScan = 1;
-                break;
-            }
-            ++mappedCount;
-        }
-        linearScan.stop();
-        System.out.println("Found start of unmapped reads.  Num mapped reads: " + mappedCount);
-        System.out.println("Time so far: " + linearScan.getElapsedTimeSecs());
-        linearScan.start();
-        
-        while (it.hasNext()) {
-            final SAMRecord rec = it.next();
-            Assert.assertEquals(rec.getReferenceIndex().intValue(), SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX);
-            ++unmappedCountFromLinearScan;
-        }
-        it.close();
-        linearScan.stop();
-        queryUnmapped.start();
-        it = reader.queryUnmapped();
-        int unmappedCountFromQueryUnmapped = 0;
-        while (it.hasNext()) {
-            final SAMRecord rec = it.next();
-            Assert.assertEquals(rec.getReferenceIndex().intValue(), SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX);
-            ++unmappedCountFromQueryUnmapped;
-        }
-        it.close();
-        queryUnmapped.stop();
-        System.out.println("Linear scan total time: " + linearScan.getElapsedTimeSecs());
-        System.out.println("queryUnmapped time: " + queryUnmapped.getElapsedTimeSecs());
-        System.out.println("Number of unmapped reads:" + unmappedCountFromQueryUnmapped);
-        Assert.assertEquals(unmappedCountFromQueryUnmapped, unmappedCountFromLinearScan);
-        reader.close();
-    }
-
-    @Test
-    public void testQueryAlignmentStart() {
-        final SAMFileReader reader = new SAMFileReader(BAM_FILE);
-        CloseableIterator<SAMRecord> it = reader.queryAlignmentStart("chr1", 202160268);
-        Assert.assertEquals(countElements(it), 2);
-        it.close();
-        it = reader.queryAlignmentStart("chr1", 201595153);
-        Assert.assertEquals(countElements(it), 1);
-        it.close();
-        // There are records that overlap this position, but none that start here
-        it = reader.queryAlignmentStart("chrM", 10400);
-        Assert.assertEquals(countElements(it), 0);
-        it.close();
-        // One past the last chr1 record
-        it = reader.queryAlignmentStart("chr1", 246817509);
-        Assert.assertEquals(countElements(it), 0);
-        it.close();
-    }
-
-    @Test
-    public void testQueryMate() {
-        final SAMFileReader reader = new SAMFileReader(BAM_FILE);
-
-        // Both ends mapped
-        SAMRecord rec = getSingleRecordStartingAt(reader, "chrM", 1687);
-        SAMRecord mate = reader.queryMate(rec);
-        assertMate(rec, mate);
-        SAMRecord originalRec = reader.queryMate(mate);
-        Assert.assertEquals(originalRec, rec);
-
-        // One end mapped
-        rec = getSingleRecordStartingAt(reader, "chr11", 48720338);
-        mate = reader.queryMate(rec);
-        assertMate(rec, mate);
-        originalRec = reader.queryMate(mate);
-        Assert.assertEquals(originalRec, rec);
-
-        // Both ends mapped
-        final CloseableIterator<SAMRecord> it = reader.queryUnmapped();
-        rec = null;
-        while (it.hasNext()) {
-            final SAMRecord next = it.next();
-            if (next.getReadName().equals("2615")) {
-                rec = next;
-                break;
-            }
-        }
-        it.close();
-        Assert.assertNotNull(rec);
-        mate = reader.queryMate(rec);
-        assertMate(rec, mate);
-        originalRec = reader.queryMate(mate);
-        Assert.assertEquals(originalRec, rec);
-    }
-
-    private void assertMate(final SAMRecord rec, final SAMRecord mate) {
-        Assert.assertNotNull(mate);
-        Assert.assertEquals(mate.getReadName(), rec.getReadName());
-        Assert.assertEquals(mate.getReferenceIndex(), rec.getMateReferenceIndex());
-        if (SAMUtils.getMateCigarString(rec) != null) {
-            Assert.assertEquals(mate.getCigarString(), SAMUtils.getMateCigarString(rec));
-        }
-        Assert.assertEquals(mate.getAlignmentStart(), rec.getMateAlignmentStart());
-        Assert.assertFalse(mate.getFirstOfPairFlag() == rec.getFirstOfPairFlag());
-    }
-
-    /**
-     * Compare the results of a multi-interval query versus the union of the results from each interval done
-     * separately.
-     */
-    @Test(dataProvider = "testMultiIntervalQueryDataProvider")
-    public void testMultiIntervalQuery(final boolean contained) {
-        final List<String> referenceNames = getReferenceNames(BAM_FILE);
-
-        final SAMFileReader.QueryInterval[] intervals = generateRandomIntervals(referenceNames.size(), 1000, new Random());
-        final Set<SAMRecord> multiIntervalRecords = new HashSet<SAMRecord>();
-        final Set<SAMRecord> singleIntervalRecords = new HashSet<SAMRecord>();
-        final SAMFileReader reader = new SAMFileReader(BAM_FILE);
-        for (final SAMFileReader.QueryInterval interval : intervals) {
-            consumeAll(singleIntervalRecords, reader.query(referenceNames.get(interval.referenceIndex), interval.start, interval.end, contained));
-        }
-
-        final SAMFileReader.QueryInterval[] optimizedIntervals = SAMFileReader.QueryInterval.optimizeIntervals(intervals);
-        consumeAll(multiIntervalRecords, reader.query(optimizedIntervals, contained));
-        final Iterator<SAMRecord> singleIntervalRecordIterator = singleIntervalRecords.iterator();
-        boolean failed = false;
-        while (singleIntervalRecordIterator.hasNext()) {
-            final SAMRecord record = singleIntervalRecordIterator.next();
-            if (!multiIntervalRecords.remove(record)) {
-                System.out.println("SingleIntervalQuery found " + record + " but MultiIntervalQuery did not");
-                failed = true;
-            }
-        }
-        for (final SAMRecord record : multiIntervalRecords) {
-            System.out.println("MultiIntervalQuery found " + record + " but SingleIntervalQuery did not");
-            failed = true;
-        }
-        Assert.assertFalse(failed);
-    }
-
-    @DataProvider(name = "testMultiIntervalQueryDataProvider")
-    private Object[][] testMultiIntervalQueryDataProvider() {
-        return new Object[][]{{true}, {false}};
-    }
-
-    @Test
-    public void testUnmappedMateWithCoordinate() throws Exception {
-        // TODO: Use SAMRecordSetBuilder when it is able to create a pair with one end unmapped
-        final String samText = "@HD\tVN:1.0\tSO:coordinate\n" +
-                "@SQ\tSN:chr1\tLN:101\n" +
-                "@SQ\tSN:chr2\tLN:101\n" +
-                "@SQ\tSN:chr3\tLN:101\n" +
-                "@SQ\tSN:chr4\tLN:101\n" +
-                "@SQ\tSN:chr5\tLN:101\n" +
-                "@SQ\tSN:chr6\tLN:101\n" +
-                "@SQ\tSN:chr7\tLN:404\n" +
-                "@SQ\tSN:chr8\tLN:202\n" +
-                "@RG\tID:0\tSM:Hi,Mom!\n" +
-                "@PG\tID:1\tPN:Hey!\tVN:2.0\n" +
-                "one_end_mapped\t73\tchr7\t100\t255\t101M\t*\t0\t0\tCAACAGAAGCNGGNATCTGTGTTTGTGTTTCGGATTTCCTGCTGAANNGNTTNTCGNNTCNNNNNNNNATCCCGATTTCNTTCCGCAGCTNACCTCCCAAN\t)'.*.+2,))&&'&*/)-&*-)&.-)&)&),/-&&..)./.,.).*&&,&.&&-)&&&0*&&&&&&&&/32/,01460&&/6/*0*/2/283//36868/&\tRG:Z:0\n" +
-                "one_end_mapped\t133\tchr7\t100\t0\t*\t=\t100\t0\tNCGCGGCATCNCGATTTCTTTCCGCAGCTAACCTCCCGACAGATCGGCAGCGCGTCGTGTAGGTTATTATGGTACATCTTGTCGTGCGGCNAGAGCATACA\t&/15445666651/566666553+2/14/&/555512+3/)-'/-&-'*+))*''13+3)'//++''/'))/3+&*5++)&'2+&+/*&-&&*)&-./1'1\tRG:Z:0\n";
-        final ByteArrayInputStream bis = new ByteArrayInputStream(StringUtil.stringToBytes(samText));
-        final File bamFile = File.createTempFile("BAMFileIndexTest.", BamFileIoUtils.BAM_FILE_EXTENSION);
-        bamFile.deleteOnExit();
-        final SAMFileReader textReader = new SAMFileReader(bis);
-        SAMFileWriterFactory samFileWriterFactory = new SAMFileWriterFactory();
-        samFileWriterFactory.setCreateIndex(true);
-        final SAMFileWriter writer = samFileWriterFactory.makeBAMWriter(textReader.getFileHeader(), true, bamFile);
-        for (final SAMRecord rec : textReader) {
-            writer.addAlignment(rec);
-        }
-        writer.close();
-        final SAMFileReader bamReader = new SAMFileReader(bamFile);
-        Assert.assertEquals(countElements(bamReader.queryContained("chr7", 100, 100)), 1);
-        Assert.assertEquals(countElements(bamReader.queryOverlapping("chr7", 100, 100)), 2);
-    }
-
-    private <E> void consumeAll(final Collection<E> collection, final CloseableIterator<E> iterator) {
-        while (iterator.hasNext()) {
-            collection.add(iterator.next());
-        }
-        iterator.close();
-    }
-
-    private SAMRecord getSingleRecordStartingAt(final SAMFileReader reader, final String sequence, final int alignmentStart) {
-        final CloseableIterator<SAMRecord> it = reader.queryAlignmentStart(sequence, alignmentStart);
-        Assert.assertTrue(it.hasNext());
-        final SAMRecord rec = it.next();
-        Assert.assertNotNull(rec);
-        Assert.assertFalse(it.hasNext());
-        it.close();
-        return rec;
-    }
-
-    private int countElements(final CloseableIterator<SAMRecord> it) {
-        int num;
-        for (num = 0; it.hasNext(); ++num, it.next()) {
-        }
-        it.close();
-        return num;
-    }
-
-    private void checkChromosome(final String name, final int expectedCount) {
-        int count = runQueryTest(BAM_FILE, name, 0, 0, true);
-        assertEquals(count, expectedCount);
-        count = runQueryTest(BAM_FILE, name, 0, 0, false);
-        assertEquals(count, expectedCount);
-    }
-
-    private void runRandomTest(final File bamFile, final int count, final Random generator) {
-        final List<String> referenceNames = getReferenceNames(bamFile);
-        final SAMFileReader.QueryInterval[] intervals = generateRandomIntervals(referenceNames.size(), count, generator);
-        for (final SAMFileReader.QueryInterval interval : intervals) {
-            final String refName = referenceNames.get(interval.referenceIndex);
-            final int startPos = interval.start;
-            final int endPos = interval.end;
-            System.out.println("Testing query " + refName + ":" + startPos + "-" + endPos + " ...");
-            try {
-                runQueryTest(bamFile, refName, startPos, endPos, true);
-                runQueryTest(bamFile, refName, startPos, endPos, false);
-            } catch (final Throwable exc) {
-                String message = "Query test failed: " + refName + ":" + startPos + "-" + endPos;
-                message += ": " + exc.getMessage();
-                throw new RuntimeException(message, exc);
-            }
-        }
-    }
-
-    private SAMFileReader.QueryInterval[] generateRandomIntervals(final int numReferences, final int count, final Random generator) {
-        final SAMFileReader.QueryInterval[] intervals = new SAMFileReader.QueryInterval[count];
-        final int maxCoordinate = 10000000;
-        for (int i = 0; i < count; i++) {
-            final int referenceIndex = generator.nextInt(numReferences);
-            final int coord1 = generator.nextInt(maxCoordinate+1);
-            final int coord2 = generator.nextInt(maxCoordinate+1);
-            final int startPos = Math.min(coord1, coord2);
-            final int endPos = Math.max(coord1, coord2);
-            intervals[i] = new SAMFileReader.QueryInterval(referenceIndex, startPos, endPos);
-        }
-
-        return intervals;
-    }
-
-    private List<String> getReferenceNames(final File bamFile) {
-        final SAMFileReader reader = new SAMFileReader(bamFile);
-        final List<String> result = new ArrayList<String>();
-        final List<SAMSequenceRecord> seqRecords = reader.getFileHeader().getSequenceDictionary().getSequences();
-        for (final SAMSequenceRecord seqRecord : seqRecords) {
-            if (seqRecord.getSequenceName() != null) {
-                result.add(seqRecord.getSequenceName());
-            }
-        }
-        reader.close();
-        return result;
-    }
-
-    private int runQueryTest(final File bamFile, final String sequence, final int startPos, final int endPos, final boolean contained) {
-        verbose("Testing query " + sequence + ":" + startPos + "-" + endPos + " ...");
-        final SAMFileReader reader1 = new SAMFileReader(bamFile);
-        final SAMFileReader reader2 = new SAMFileReader(bamFile);
-        final Iterator<SAMRecord> iter1 = reader1.query(sequence, startPos, endPos, contained);
-        final Iterator<SAMRecord> iter2 = reader2.iterator();
-        // Compare ordered iterators.
-        // Confirm that iter1 is a subset of iter2 that properly filters.
-        SAMRecord record1 = null;
-        SAMRecord record2 = null;
-        int count1 = 0;
-        int count2 = 0;
-        int beforeCount = 0;
-        int afterCount = 0;
-        while (true) {
-            if (record1 == null && iter1.hasNext()) {
-                record1 = iter1.next();
-                count1++;
-            }
-            if (record2 == null && iter2.hasNext()) {
-                record2 = iter2.next();
-                count2++;
-            }
-            // System.out.println("Iteration:");
-            // System.out.println(" Record1 = " + ((record1 == null) ? "null" : record1.format()));
-            // System.out.println(" Record2 = " + ((record2 == null) ? "null" : record2.format()));
-            if (record1 == null && record2 == null) {
-                break;
-            }
-            if (record1 == null) {
-                checkPassesFilter(false, record2, sequence, startPos, endPos, contained);
-                record2 = null;
-                afterCount++;
-                continue;
-            }
-            assertNotNull(record2);
-            final int ordering = compareCoordinates(record1, record2);
-            if (ordering > 0) {
-                checkPassesFilter(false, record2, sequence, startPos, endPos, contained);
-                record2 = null;
-                beforeCount++;
-                continue;
-            }
-            assertTrue(ordering == 0);
-            checkPassesFilter(true, record1, sequence, startPos, endPos, contained);
-            checkPassesFilter(true, record2, sequence, startPos, endPos, contained);
-            assertEquals(record1.getReadName(), record2.getReadName());
-            assertEquals(record1.getReadString(), record2.getReadString());
-            record1 = null;
-            record2 = null;
-        }
-        reader1.close();
-        reader2.close();
-        verbose("Checked " + count1 + " records against " + count2 + " records.");
-        verbose("Found " + (count2 - beforeCount - afterCount) + " records matching.");
-        verbose("Found " + beforeCount + " records before.");
-        verbose("Found " + afterCount + " records after.");
-        return count1;
-    }
-
-    private void checkPassesFilter(final boolean expected, final SAMRecord record, final String sequence, final int startPos, final int endPos, final boolean contained) {
-        final boolean passes = passesFilter(record, sequence, startPos, endPos, contained);
-        if (passes != expected) {
-            System.out.println("Error: Record erroneously " +
-                               (passes ? "passed" : "failed") +
-                               " filter.");
-            System.out.println(" Record: " + record.format());
-            System.out.println(" Filter: " + sequence + ":" +
-                               startPos + "-" + endPos +
-                               " (" + (contained ? "contained" : "overlapping") + ")");
-            assertEquals(passes, expected);
-        }
-    }
-
-    private boolean passesFilter(final SAMRecord record, final String sequence, final int startPos, final int endPos, final boolean contained) {
-        if (record == null) {
-            return false;
-        }
-        if (!safeEquals(record.getReferenceName(), sequence)) {
-            return false;
-        }
-        final int alignmentStart = record.getAlignmentStart();
-        int alignmentEnd = record.getAlignmentEnd();
-        if (alignmentStart <= 0) {
-            assertTrue(record.getReadUnmappedFlag());
-            return false;
-        }
-        if (alignmentEnd <= 0) {
-            // For indexing-only records, treat as single base alignment.
-            assertTrue(record.getReadUnmappedFlag());
-            alignmentEnd = alignmentStart;
-        }
-        if (contained) {
-            if (startPos != 0 && alignmentStart < startPos) {
-                return false;
-            }
-            if (endPos != 0 && alignmentEnd > endPos) {
-                return false;
-            }
-        } else {
-            if (startPos != 0 && alignmentEnd < startPos) {
-                return false;
-            }
-            if (endPos != 0 && alignmentStart > endPos) {
-                return false;
-            }
-        }
-        return true;
-    }
-
-    private int compareCoordinates(final SAMRecord record1, final SAMRecord record2) {
-        final int seqIndex1 = record1.getReferenceIndex();
-        final int seqIndex2 = record2.getReferenceIndex();
-        if (seqIndex1 == -1) {
-            return ((seqIndex2 == -1) ? 0 : -1);
-        } else if (seqIndex2 == -1) {
-            return 1;
-        }
-        int result = seqIndex1 - seqIndex2;
-        if (result != 0) {
-            return result;
-        }
-        result = record1.getAlignmentStart() - record2.getAlignmentStart();
-        return result;
-    }
-
-    private boolean safeEquals(final Object o1, final Object o2) {
-        if (o1 == o2) {
-            return true;
-        } else if (o1 == null || o2 == null) {
-            return false;
-        } else {
-            return o1.equals(o2);
-        }
-    }
-
-    private void verbose(final String text) {
-        if (mVerbose) {
-            System.out.println("# " + text);
-        }
-    }
-}
diff --git a/src/tests/java/net/sf/samtools/BAMFileWriterTest.java b/src/tests/java/net/sf/samtools/BAMFileWriterTest.java
deleted file mode 100644
index 6458657..0000000
--- a/src/tests/java/net/sf/samtools/BAMFileWriterTest.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import net.sf.samtools.util.CloseableIterator;
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.File;
-
-/**
- * Test that BAM writing doesn't blow up.  For presorted writing, the resulting BAM file is read and contents are
- * compared with the original SAM file. 
- */
-public class BAMFileWriterTest {
-
-    private SAMRecordSetBuilder getSAMReader(final boolean sortForMe, final SAMFileHeader.SortOrder sortOrder) {
-        final SAMRecordSetBuilder ret = new SAMRecordSetBuilder(sortForMe, sortOrder);
-        ret.addPair("readB", 20, 200, 300);
-        ret.addPair("readA", 20, 100, 150);
-        ret.addFrag("readC", 20, 140, true);
-        ret.addFrag("readD", 20, 140, false);
-        return ret;
-    }
-
-    /**
-     * Parse some SAM text into a SAM object, then write as BAM.  If SAM text was presorted, then the BAM file can
-     * be read and compared with the SAM object.
-     * @param samRecordSetBuilder source of input SAMFileReader to be written and compared with
-     * @param sortOrder How the BAM should be written
-     * @param presorted If true, samText is in the order specified by sortOrder
-     */
-    private void testHelper(final SAMRecordSetBuilder samRecordSetBuilder, final SAMFileHeader.SortOrder sortOrder, final boolean presorted) throws Exception {
-        SAMFileReader samReader = samRecordSetBuilder.getSamReader();
-        final File bamFile = File.createTempFile("test.", BamFileIoUtils.BAM_FILE_EXTENSION);
-        bamFile.deleteOnExit();
-        samReader.getFileHeader().setSortOrder(sortOrder);
-        final SAMFileWriter bamWriter = new SAMFileWriterFactory().makeSAMOrBAMWriter(samReader.getFileHeader(), presorted, bamFile);
-        CloseableIterator<SAMRecord> it = samReader.iterator();
-        while (it.hasNext()) {
-            bamWriter.addAlignment(it.next());
-        }
-        bamWriter.close();
-        it.close();
-        samReader.close();
-
-        if (presorted) {
-            // If SAM text input was presorted, then we can compare SAM object to BAM object
-            final SAMFileReader bamReader = new SAMFileReader(bamFile);
-            samReader = samRecordSetBuilder.getSamReader();
-            samReader.getFileHeader().setSortOrder(bamReader.getFileHeader().getSortOrder());
-            Assert.assertEquals(bamReader.getFileHeader(), samReader.getFileHeader());
-            it = samReader.iterator();
-            final CloseableIterator<SAMRecord> bamIt = bamReader.iterator();
-            while (it.hasNext()) {
-                Assert.assertTrue(bamIt.hasNext());
-                final SAMRecord samRecord = it.next();
-                final SAMRecord bamRecord = bamIt.next();
-
-                // SAMRecords don't have this set, so stuff it in there
-                samRecord.setIndexingBin(bamRecord.getIndexingBin());
-
-                // Force reference index attributes to be populated
-                samRecord.getReferenceIndex();
-                bamRecord.getReferenceIndex();
-                samRecord.getMateReferenceIndex();
-                bamRecord.getMateReferenceIndex();
-
-                Assert.assertEquals(bamRecord, samRecord);
-            }
-            Assert.assertFalse(bamIt.hasNext());
-        }
-    }
-
-    @DataProvider(name = "test1")
-    public Object[][] createTestData() {
-        return new Object[][] {
-                {"coordinate sorted", getSAMReader(false, SAMFileHeader.SortOrder.unsorted), SAMFileHeader.SortOrder.coordinate, false},
-                {"query sorted", getSAMReader(false, SAMFileHeader.SortOrder.unsorted), SAMFileHeader.SortOrder.queryname, false},
-                {"unsorted", getSAMReader(false, SAMFileHeader.SortOrder.unsorted), SAMFileHeader.SortOrder.unsorted, false},
-                {"coordinate presorted", getSAMReader(true, SAMFileHeader.SortOrder.coordinate), SAMFileHeader.SortOrder.coordinate, true},
-                {"query presorted", getSAMReader(true, SAMFileHeader.SortOrder.queryname), SAMFileHeader.SortOrder.queryname, true},
-        };
-    }
-
-    @Test(dataProvider = "test1")
-    public void testPositive(final String testName, final SAMRecordSetBuilder samRecordSetBuilder, final SAMFileHeader.SortOrder order, final boolean presorted) throws Exception {
-
-        testHelper(samRecordSetBuilder, order, presorted);
-    }
-
-    @Test(expectedExceptions = IllegalArgumentException.class)
-    public void testNegativePresorted() throws Exception {
-
-        testHelper(getSAMReader(true, SAMFileHeader.SortOrder.coordinate), SAMFileHeader.SortOrder.queryname, true);
-        Assert.fail("Exception should be thrown");
-    }
-}
diff --git a/src/tests/java/net/sf/samtools/BAMIndexWriterTest.java b/src/tests/java/net/sf/samtools/BAMIndexWriterTest.java
deleted file mode 100644
index c5c9cdc..0000000
--- a/src/tests/java/net/sf/samtools/BAMIndexWriterTest.java
+++ /dev/null
@@ -1,216 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import net.sf.picard.io.IoUtil;
-import net.sf.picard.sam.BuildBamIndex;
-import org.testng.annotations.Test;
-import org.testng.annotations.DataProvider;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URL;
-import java.util.Iterator;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertTrue;
-
-/**
- * Test BAM file index creation
- */
-public class BAMIndexWriterTest {
-    // Two input files for basic test
-    private final String BAM_FILE_LOCATION = "testdata/net/sf/samtools/BAMFileIndexTest/index_test.bam";
-    private final String BAI_FILE_LOCATION = "testdata/net/sf/samtools/BAMFileIndexTest/index_test.bam.bai";
-    private final File BAM_FILE = new File(BAM_FILE_LOCATION);
-    private final File BAI_FILE = new File(BAI_FILE_LOCATION);
-
-    private final boolean mVerbose = true;
-
-    @Test(enabled=true)
-    public void testWriteText() throws Exception {
-        // Compare the text form of the c-generated bai file and a java-generated one
-        final File cBaiTxtFile = File.createTempFile("cBai.", ".bai.txt");
-        BAMIndexer.createAndWriteIndex(BAI_FILE, cBaiTxtFile, true);
-        verbose ("Wrote textual C BAM Index file " + cBaiTxtFile);
-
-        final File javaBaiFile = File.createTempFile("javaBai.", "java.bai");
-        final File javaBaiTxtFile = new File(javaBaiFile.getAbsolutePath() + ".txt");
-        final SAMFileReader bam = new SAMFileReader(BAM_FILE);
-        BuildBamIndex.createIndex(bam, javaBaiFile);
-        verbose ("Wrote binary Java BAM Index file " + javaBaiFile);
-        
-        // now, turn the bai file into text
-        BAMIndexer.createAndWriteIndex(javaBaiFile, javaBaiTxtFile, true);
-        // and compare them
-        verbose ("diff " + javaBaiTxtFile + " " + cBaiTxtFile);
-        IoUtil.assertFilesEqual(javaBaiTxtFile, cBaiTxtFile);
-        cBaiTxtFile.deleteOnExit();
-        javaBaiFile.deleteOnExit();
-        javaBaiTxtFile.deleteOnExit();
-    }
-
-    @Test(enabled=true)
-    public void testWriteBinary() throws Exception {
-        // Compare java-generated bai file with c-generated and sorted bai file
-        final File javaBaiFile = File.createTempFile("javaBai.", ".bai");
-        final SAMFileReader bam = new SAMFileReader(BAM_FILE);
-        BuildBamIndex.createIndex(bam, javaBaiFile);
-        verbose ("Wrote binary java BAM Index file " + javaBaiFile);
-                                                    
-        final File cRegeneratedBaiFile = File.createTempFile("cBai.", ".bai");
-        BAMIndexer.createAndWriteIndex(BAI_FILE, cRegeneratedBaiFile, false);
-        verbose ("Wrote sorted C binary BAM Index file " + cRegeneratedBaiFile);
-
-        // Binary compare of javaBaiFile and cRegeneratedBaiFile should be the same
-        verbose ("diff " + javaBaiFile + " " + cRegeneratedBaiFile);
-        IoUtil.assertFilesEqual(javaBaiFile, cRegeneratedBaiFile);
-        javaBaiFile.deleteOnExit();
-        cRegeneratedBaiFile.deleteOnExit();
-
-    }
-
-    @Test(enabled = false, dataProvider = "linearIndexTestData")
-    /** Test linear index at specific references and windows */
-    public void testLinearIndex(String testName, String filepath, int problemReference, int problemWindowStart, int problemWindowEnd, int expectedCount) {
-        final SAMFileReader sfr = new SAMFileReader(new File(filepath));
-        for (int problemWindow = problemWindowStart; problemWindow <= problemWindowEnd; problemWindow++) {
-            int count = countAlignmentsInWindow(problemReference, problemWindow, sfr, expectedCount);
-            if (expectedCount != -1)
-                assertEquals(expectedCount, count);
-        }
-    }
-
-    @DataProvider(name = "linearIndexTestData")
-    public Object[][] getLinearIndexTestData() {
-        // Add data here for test cases, reference, and windows where linear index needs testing
-        return new Object[][]{
-                new Object[]{"index_test", BAM_FILE_LOCATION, 1, 29, 66, -1},  // 29-66
-                new Object[]{"index_test", BAM_FILE_LOCATION, 1, 68, 118, -1},  // 29-66
-
-        };
-    }
-
-    private int countAlignmentsInWindow(int reference, int window, SAMFileReader reader, int expectedCount) {
-        final int SIXTEEN_K = 1 << 14;       // 1 << LinearIndex.BAM_LIDX_SHIFT
-        final int start = window >> 14;             // window * SIXTEEN_K;
-        final int stop = ((window + 1) >> 14) - 1; // (window + 1 * SIXTEEN_K) - 1;
-
-        final String chr = reader.getFileHeader().getSequence(reference).getSequenceName();
-
-        // get records for the entire linear index window
-        SAMRecordIterator iter = reader.queryOverlapping(chr, start, stop);
-        SAMRecord rec;
-        int count = 0;
-        while (iter.hasNext()) {
-            rec = iter.next();
-            count++;
-            if (expectedCount == -1)
-                System.err.println(rec.getReadName());
-        }
-        iter.close();
-        return count;
-    }
-
-
-    @Test(enabled=false, dataProvider = "indexComparisonData")
-    /** Test linear index at all references and windows, comparing with existing index */
-    public void compareLinearIndex(String testName, String bamFile, String bamIndexFile) throws IOException{
-        // compare index generated from bamFile with existing bamIndex file
-        // by testing all the references' windows and comparing the counts
-
-        // 1. generate bai file
-        // 2. count its references
-        // 3. count bamIndex references comparing counts
-
-        // 1. generate bai file
-        File bam = new File(bamFile);
-        assertTrue(bam.exists(), testName + " input bam file doesn't exist: " + bamFile);
-
-        File indexFile1 = createIndexFile(bam);
-        assertTrue(indexFile1.exists(), testName + " generated bam file's index doesn't exist: " + indexFile1);
-
-        // 2. count its references
-        File indexFile2 = new File (bamIndexFile);
-        assertTrue(indexFile2.exists(), testName + " input index file doesn't exist: " + indexFile2);
-
-        final CachingBAMFileIndex existingIndex1 = new CachingBAMFileIndex(indexFile1, null); // todo null sequence dictionary?
-        final CachingBAMFileIndex existingIndex2 = new CachingBAMFileIndex(indexFile2, null);
-        final int n_ref = existingIndex1.getNumberOfReferences();
-        assertEquals(n_ref, existingIndex2.getNumberOfReferences());
-
-        final SAMFileReader reader1 = new SAMFileReader(bam, indexFile1, false);
-        final SAMFileReader reader2 = new SAMFileReader(bam, indexFile2, false );
-
-        System.out.println("Comparing " + n_ref + " references in " + indexFile1 + " and " + indexFile2);
-
-        for (int i = 0; i < n_ref; i++) {
-            final BAMIndexContent content1 = existingIndex1.getQueryResults(i);
-            final BAMIndexContent content2 = existingIndex2.getQueryResults(i);
-            if (content1 == null){
-                assertTrue(content2 == null, "No content for 1st bam index, but content for second at reference" + i);
-                continue;
-            }
-            int[] counts1 = new int[LinearIndex.MAX_LINEAR_INDEX_SIZE];
-            int[] counts2 = new int[LinearIndex.MAX_LINEAR_INDEX_SIZE];
-            LinearIndex li1 = content1.getLinearIndex();
-            LinearIndex li2 = content2.getLinearIndex();
-            // todo not li1 and li2 sizes may differ. Implies 0's in the smaller index windows
-            // 3. count bamIndex references comparing counts
-            int baiSize = Math.max(li1.size(), li2.size());
-            for (int win = 0; win < baiSize; win++) {
-                counts1[win] = countAlignmentsInWindow(i, win, reader1, 0);
-                counts2[win] = countAlignmentsInWindow(i, win, reader2, counts1[win]);
-                assertEquals(counts2[win], counts1[win], "Counts don't match for reference " + i  +
-                        " window " + win );
-            }
-        }
-
-        indexFile1.deleteOnExit();
-
-    }
-
-    @DataProvider(name="indexComparisonData")
-    public Object[][] getIndexComparisonData() {
-        // enter bam file and alternate index file to be tested against generated bam index
-        return new Object[][]{
-           new Object[]{"index_test", BAM_FILE_LOCATION, BAI_FILE_LOCATION} ,
-        };
-    }
-
-    /**  generates the index file using the latest java index generating code  */
-    private File createIndexFile(File bamFile) throws IOException {
-        final File bamIndexFile = File.createTempFile("Bai.", ".bai");
-        final SAMFileReader bam = new SAMFileReader(bamFile);
-        BuildBamIndex.createIndex(bam, bamIndexFile);
-        verbose ("Wrote BAM Index file " + bamIndexFile);
-        return bamIndexFile;
-    }
-
-    private void verbose(final String text) {
-        if (mVerbose) {
-            System.out.println("#BAMIndexWriterTest " + text);
-        }
-    }
-}
diff --git a/src/tests/java/net/sf/samtools/BAMIteratorTest.java b/src/tests/java/net/sf/samtools/BAMIteratorTest.java
deleted file mode 100644
index 9203bee..0000000
--- a/src/tests/java/net/sf/samtools/BAMIteratorTest.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import org.testng.annotations.Test;
-import org.testng.annotations.DataProvider;
-import org.testng.Assert;
-
-import java.io.File;
-
-import net.sf.samtools.util.CloseableIterator;
-
-/**
- * @author alecw at broadinstitute.org
- */
-public class BAMIteratorTest {
-    private static final File TEST_DATA_DIR = new File("testdata/net/sf/samtools");
-
-    @Test(dataProvider = "dataProvider")
-    public void testIterateEmptyBam(final String bam) throws Exception {
-        final SAMFileReader reader = new SAMFileReader(new File(TEST_DATA_DIR, bam));
-        int numRecords = 0;
-        for (final SAMRecord rec : reader) {
-            ++numRecords;
-        }
-        Assert.assertEquals(numRecords, 0);
-    }
-
-    @Test(dataProvider = "dataProvider")
-    public void testQueryUnmappedEmptyBam(final String bam) throws Exception {
-        SAMFileReader reader = new SAMFileReader(new File(TEST_DATA_DIR, bam));
-        CloseableIterator<SAMRecord> it = reader.queryUnmapped();
-        int numRecords = 0;
-        while (it.hasNext()) {
-            it.next();
-            ++numRecords;
-        }
-        Assert.assertEquals(numRecords, 0);
-    }
-
-    @DataProvider(name = "dataProvider")
-    public Object[][] bams() {
-        return new Object[][] {
-                {"empty.bam"},
-                {"empty_no_empty_gzip_block.bam"}
-        };
-    }
-}
diff --git a/src/tests/java/net/sf/samtools/BAMRemoteFileTest.java b/src/tests/java/net/sf/samtools/BAMRemoteFileTest.java
deleted file mode 100644
index 0687c3a..0000000
--- a/src/tests/java/net/sf/samtools/BAMRemoteFileTest.java
+++ /dev/null
@@ -1,316 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import static org.testng.Assert.*;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Random;
-
-/**
- * Test BAM file indexing.
- */
-public class BAMRemoteFileTest {
-    private final File BAM_INDEX_FILE = new File("testdata/net/sf/samtools/BAMFileIndexTest/index_test.bam.bai");
-    private final File BAM_FILE = new File("testdata/net/sf/samtools/BAMFileIndexTest/index_test.bam");
-    private final String BAM_URL_STRING = "http://www.broadinstitute.org/~picard/testdata/index_test.bam";
-    private final URL bamURL;
-
-    private final boolean mVerbose = false;
-
-    public BAMRemoteFileTest() throws Exception {
-        bamURL = new URL(BAM_URL_STRING);
-    }
-
-
-    @Test
-    void testRemoteLocal()
-            throws Exception {
-        runLocalRemoteTest(bamURL, BAM_FILE, "chrM", 10400, 10600, false);
-    }
-
-    @Test
-    public void testSpecificQueries()
-            throws Exception {
-        assertEquals(runQueryTest(bamURL, "chrM", 10400, 10600, true), 1);
-        assertEquals(runQueryTest(bamURL, "chrM", 10400, 10600, false), 2);
-    }
-
-    @Test(enabled = true)
-    public void testRandomQueries()
-            throws Exception {
-        runRandomTest(bamURL, 20, new Random());
-    }
-
-    @Test
-    public void testWholeChromosomes() {
-        checkChromosome("chrM", 23);
-        checkChromosome("chr1", 885);
-        checkChromosome("chr2", 837);
-        /***
-         checkChromosome("chr3", 683);
-         checkChromosome("chr4", 633);
-         checkChromosome("chr5", 611);
-         checkChromosome("chr6", 585);
-         checkChromosome("chr7", 521);
-         checkChromosome("chr8", 507);
-         checkChromosome("chr9", 388);
-         checkChromosome("chr10", 477);
-         checkChromosome("chr11", 467);
-         checkChromosome("chr12", 459);
-         checkChromosome("chr13", 327);
-         checkChromosome("chr14", 310);
-         checkChromosome("chr15", 280);
-         checkChromosome("chr16", 278);
-         checkChromosome("chr17", 269);
-         checkChromosome("chr18", 265);
-         checkChromosome("chr19", 178);
-         checkChromosome("chr20", 228);
-         checkChromosome("chr21", 123);
-         checkChromosome("chr22", 121);
-         checkChromosome("chrX", 237);
-         checkChromosome("chrY", 29);
-         ***/
-    }
-
-
-    private void checkChromosome(final String name, final int expectedCount) {
-        int count = runQueryTest(bamURL, name, 0, 0, true);
-        assertEquals(count, expectedCount);
-        count = runQueryTest(bamURL, name, 0, 0, false);
-        assertEquals(count, expectedCount);
-    }
-
-    private void runRandomTest(final URL bamFile, final int count, final Random generator) throws IOException {
-        final int maxCoordinate = 10000000;
-        final List<String> referenceNames = getReferenceNames(bamFile);
-        for (int i = 0; i < count; i++) {
-            final String refName = referenceNames.get(generator.nextInt(referenceNames.size()));
-            final int coord1 = generator.nextInt(maxCoordinate + 1);
-            final int coord2 = generator.nextInt(maxCoordinate + 1);
-            final int startPos = Math.min(coord1, coord2);
-            final int endPos = Math.max(coord1, coord2);
-            System.out.println("Testing query " + refName + ":" + startPos + "-" + endPos + " ...");
-            try {
-                runQueryTest(bamFile, refName, startPos, endPos, true);
-                runQueryTest(bamFile, refName, startPos, endPos, false);
-            } catch (Throwable exc) {
-                String message = "Query test failed: " + refName + ":" + startPos + "-" + endPos;
-                message += ": " + exc.getMessage();
-                throw new RuntimeException(message, exc);
-            }
-        }
-    }
-
-    private List<String> getReferenceNames(final URL bamFile) throws IOException {
-
-
-        final SAMFileReader reader = new SAMFileReader(bamFile.openStream());
-
-        final List<String> result = new ArrayList<String>();
-        final List<SAMSequenceRecord> seqRecords = reader.getFileHeader().getSequenceDictionary().getSequences();
-        for (final SAMSequenceRecord seqRecord : seqRecords) {
-            if (seqRecord.getSequenceName() != null) {
-                result.add(seqRecord.getSequenceName());
-            }
-        }
-        reader.close();
-        return result;
-    }
-
-    private void runLocalRemoteTest(final URL bamURL, final File bamFile, final String sequence, final int startPos, final int endPos, final boolean contained) {
-        verbose("Testing query " + sequence + ":" + startPos + "-" + endPos + " ...");
-        final SAMFileReader reader1 = new SAMFileReader(bamFile, BAM_INDEX_FILE, false);
-        final SAMFileReader reader2 = new SAMFileReader(bamURL, BAM_INDEX_FILE, false);
-        final Iterator<SAMRecord> iter1 = reader1.query(sequence, startPos, endPos, contained);
-        final Iterator<SAMRecord> iter2 = reader2.query(sequence, startPos, endPos, contained);
-
-        final List<SAMRecord> records1 = new ArrayList<SAMRecord>();
-        final List<SAMRecord> records2 = new ArrayList<SAMRecord>();
-
-        while (iter1.hasNext()) {
-            records1.add(iter1.next());
-        }
-        while (iter2.hasNext()) {
-            records2.add(iter2.next());
-        }
-
-        assertTrue(records1.size() > 0);
-        assertEquals(records1.size(), records2.size());
-        for (int i = 0; i < records1.size(); i++) {
-            //System.out.println(records1.get(i).format());
-            assertEquals(records1.get(i).format(), records2.get(i).format());
-        }
-
-
-    }
-
-    private int runQueryTest(final URL bamURL, final String sequence, final int startPos, final int endPos, final boolean contained) {
-        verbose("Testing query " + sequence + ":" + startPos + "-" + endPos + " ...");
-        final SAMFileReader reader1 = new SAMFileReader(bamURL, BAM_INDEX_FILE, false);
-        final SAMFileReader reader2 = new SAMFileReader(bamURL, BAM_INDEX_FILE, false);
-        final Iterator<SAMRecord> iter1 = reader1.query(sequence, startPos, endPos, contained);
-        final Iterator<SAMRecord> iter2 = reader2.iterator();
-        // Compare ordered iterators.
-        // Confirm that iter1 is a subset of iter2 that properly filters.
-        SAMRecord record1 = null;
-        SAMRecord record2 = null;
-        int count1 = 0;
-        int count2 = 0;
-        int beforeCount = 0;
-        int afterCount = 0;
-        while (true) {
-            if (record1 == null && iter1.hasNext()) {
-                record1 = iter1.next();
-                count1++;
-            }
-            if (record2 == null && iter2.hasNext()) {
-                record2 = iter2.next();
-                count2++;
-            }
-            // System.out.println("Iteration:");
-            // System.out.println(" Record1 = " + ((record1 == null) ? "null" : record1.format()));
-            // System.out.println(" Record2 = " + ((record2 == null) ? "null" : record2.format()));
-            if (record1 == null && record2 == null) {
-                break;
-            }
-            if (record1 == null) {
-                checkPassesFilter(false, record2, sequence, startPos, endPos, contained);
-                record2 = null;
-                afterCount++;
-                continue;
-            }
-            assertNotNull(record2);
-            final int ordering = compareCoordinates(record1, record2);
-            if (ordering > 0) {
-                checkPassesFilter(false, record2, sequence, startPos, endPos, contained);
-                record2 = null;
-                beforeCount++;
-                continue;
-            }
-            assertTrue(ordering == 0);
-            checkPassesFilter(true, record1, sequence, startPos, endPos, contained);
-            checkPassesFilter(true, record2, sequence, startPos, endPos, contained);
-            assertEquals(record1.getReadName(), record2.getReadName());
-            assertEquals(record1.getReadString(), record2.getReadString());
-            record1 = null;
-            record2 = null;
-        }
-        reader1.close();
-        reader2.close();
-        verbose("Checked " + count1 + " records against " + count2 + " records.");
-        verbose("Found " + (count2 - beforeCount - afterCount) + " records matching.");
-        verbose("Found " + beforeCount + " records before.");
-        verbose("Found " + afterCount + " records after.");
-        return count1;
-    }
-
-    private void checkPassesFilter(final boolean expected, final SAMRecord record, final String sequence, final int startPos, final int endPos, final boolean contained) {
-        final boolean passes = passesFilter(record, sequence, startPos, endPos, contained);
-        if (passes != expected) {
-            System.out.println("Error: Record erroneously " +
-                    (passes ? "passed" : "failed") +
-                    " filter.");
-            System.out.println(" Record: " + record.format());
-            System.out.println(" Filter: " + sequence + ":" +
-                    startPos + "-" + endPos +
-                    " (" + (contained ? "contained" : "overlapping") + ")");
-            assertEquals(passes, expected);
-        }
-    }
-
-    private boolean passesFilter(final SAMRecord record, final String sequence, final int startPos, final int endPos, final boolean contained) {
-        if (record == null) {
-            return false;
-        }
-        if (!safeEquals(record.getReferenceName(), sequence)) {
-            return false;
-        }
-        final int alignmentStart = record.getAlignmentStart();
-        int alignmentEnd = record.getAlignmentEnd();
-        if (alignmentStart <= 0) {
-            assertTrue(record.getReadUnmappedFlag());
-            return false;
-        }
-        if (alignmentEnd <= 0) {
-            // For indexing-only records, treat as single base alignment.
-            assertTrue(record.getReadUnmappedFlag());
-            alignmentEnd = alignmentStart;
-        }
-        if (contained) {
-            if (startPos != 0 && alignmentStart < startPos) {
-                return false;
-            }
-            if (endPos != 0 && alignmentEnd > endPos) {
-                return false;
-            }
-        } else {
-            if (startPos != 0 && alignmentEnd < startPos) {
-                return false;
-            }
-            if (endPos != 0 && alignmentStart > endPos) {
-                return false;
-            }
-        }
-        return true;
-    }
-
-    private int compareCoordinates(final SAMRecord record1, final SAMRecord record2) {
-        final int seqIndex1 = record1.getReferenceIndex();
-        final int seqIndex2 = record2.getReferenceIndex();
-        if (seqIndex1 == -1) {
-            return ((seqIndex2 == -1) ? 0 : -1);
-        } else if (seqIndex2 == -1) {
-            return 1;
-        }
-        int result = seqIndex1 - seqIndex2;
-        if (result != 0) {
-            return result;
-        }
-        result = record1.getAlignmentStart() - record2.getAlignmentStart();
-        return result;
-    }
-
-    private boolean safeEquals(final Object o1, final Object o2) {
-        if (o1 == o2) {
-            return true;
-        } else if (o1 == null || o2 == null) {
-            return false;
-        } else {
-            return o1.equals(o2);
-        }
-    }
-
-    private void verbose(final String text) {
-        if (mVerbose) {
-            System.out.println("# " + text);
-        }
-    }
-}
\ No newline at end of file
diff --git a/src/tests/java/net/sf/samtools/BamFileIoUtilsTest.java b/src/tests/java/net/sf/samtools/BamFileIoUtilsTest.java
deleted file mode 100644
index 124155c..0000000
--- a/src/tests/java/net/sf/samtools/BamFileIoUtilsTest.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2014 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.samtools;
-
-import net.sf.picard.PicardException;
-import net.sf.picard.sam.CompareSAMs;
-import net.sf.samtools.BamFileIoUtils;
-import net.sf.samtools.SAMFileHeader;
-import net.sf.samtools.SAMFileReader;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-
-public class BamFileIoUtilsTest {
-    private static final File TEST_DATA_DIR = new File("testdata/net/sf/picard/sam");
-    private static final File HEADER_PROVIDER = new File(TEST_DATA_DIR, "samHeaderProvider.sam");
-    private static final File INPUT_FILE = new File(TEST_DATA_DIR, "aligned_queryname_sorted.bam");
-
-    @Test
-    public void testReheader() throws Exception {
-        final SAMFileHeader samFileHeader = new SAMFileReader(HEADER_PROVIDER).getFileHeader();
-        final File outputFile = createOutputFile();
-        BamFileIoUtils.reheaderBamFile(samFileHeader, INPUT_FILE, outputFile);
-        assertReheader(outputFile, HEADER_PROVIDER);
-    }
-
-    @Test
-    public void testReapplySameHeader() throws Exception {
-        final SAMFileHeader samFileHeader = new SAMFileReader(INPUT_FILE).getFileHeader();
-        final File outputFile = createOutputFile();
-        BamFileIoUtils.reheaderBamFile(samFileHeader, INPUT_FILE, outputFile);
-
-        assertReheader(outputFile, INPUT_FILE);
-        final CompareSAMs compareSAMs = new CompareSAMs();
-        compareSAMs.instanceMain(new String[]{INPUT_FILE.getAbsolutePath(), outputFile.getAbsolutePath()});
-        Assert.assertTrue(compareSAMs.areEqual());
-    }
-
-    @Test(expectedExceptions = SAMException.class)
-    public void mismatchSortOrderTest() throws Exception {
-        final SAMFileHeader samFileHeader = new SAMFileReader(HEADER_PROVIDER).getFileHeader();
-        samFileHeader.setSortOrder(SAMFileHeader.SortOrder.coordinate);
-        BamFileIoUtils.reheaderBamFile(samFileHeader, INPUT_FILE, createOutputFile());
-        throw new IllegalStateException("We shouldn't be here");
-    }
-
-    private void assertReheader(final File outputFile, final File headerProvider) {
-        final SAMFileHeader origHeader = new SAMFileReader(headerProvider).getFileHeader();
-        final SAMFileHeader newHeader = new SAMFileReader(outputFile).getFileHeader();
-        Assert.assertEquals(origHeader, newHeader);
-    }
-
-    private File createOutputFile() throws IOException {
-        return File.createTempFile("reheaderTest.", BamFileIoUtils.BAM_FILE_EXTENSION);
-    }
-
-}
diff --git a/src/tests/java/net/sf/samtools/BinTest.java b/src/tests/java/net/sf/samtools/BinTest.java
deleted file mode 100644
index 3566484..0000000
--- a/src/tests/java/net/sf/samtools/BinTest.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.samtools;
-
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.util.Collections;
-
-public class BinTest {
-    @Test
-    public void testEmptyBin() {
-        // Construct a new empty bin and ensure that the bin list is empty, not null.
-        Bin bin = new Bin(1,4681);
-        Assert.assertEquals(bin.getChunkList(),Collections.<Chunk>emptyList(),"getChunkList() in an empty bin should return an empty list.");
-    }
-}
diff --git a/src/tests/java/net/sf/samtools/ChunkTest.java b/src/tests/java/net/sf/samtools/ChunkTest.java
deleted file mode 100644
index 060d5b3..0000000
--- a/src/tests/java/net/sf/samtools/ChunkTest.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-public class ChunkTest {
-    @Test
-    public void testOverlaps() {
-        // Test completely disjoint offsets.
-        Assert.assertFalse(new Chunk(1,5).overlaps(new Chunk(11,15)),"Test found overlap in non-overlapping offsets");
-        Assert.assertFalse(new Chunk(11,15).overlaps(new Chunk(1,5)),"Test found overlap in non-overlapping offsets");
-
-        // Test adjacent offsets
-        Assert.assertFalse(new Chunk(1,5).overlaps(new Chunk(6,10)),"Test found overlap in adjacent offsets");
-        Assert.assertFalse(new Chunk(6,10).overlaps(new Chunk(1,5)),"Test found overlap in adjacent offsets");
-
-        // Test overlapping offsets
-        Assert.assertTrue(new Chunk(1,5).overlaps(new Chunk(2,6)),"Test returned incorrect value for overlapping offsets");
-        Assert.assertTrue(new Chunk(2,6).overlaps(new Chunk(1,5)),"Test returned incorrect value for overlapping offsets");
-        Assert.assertTrue(new Chunk(1,5).overlaps(new Chunk(2,6)),"Test returned incorrect value for overlapping offsets");
-
-        // Completely disjoint and adjacent blocks
-        Assert.assertFalse(new Chunk(1<<16,2<<16).overlaps(new Chunk(3<<16,4<<16)),"Test found overlap in non-overlapping blocks");
-        Assert.assertFalse(new Chunk(1<<16,2<<16).overlaps(new Chunk(2<<16,3<<16)),"test found overlap in adjacent blocks");
-
-        // True overlaps in the same block
-        Assert.assertTrue(new Chunk(1<<16,2<<16).overlaps(new Chunk(1<<16,2<<16)),"Test failed to find overlap in completely overlapping chunks");
-        Assert.assertTrue(new Chunk(1<<16,2<<16).overlaps(new Chunk(1<<16,1<<16|0xFF00)),"Test failed to find overlap in chunks with head overlapping");
-        Assert.assertTrue(new Chunk(1<<16,2<<16).overlaps(new Chunk(1<<16|0xFF00,2<<16)),"Test failed to find overlap in overlapping chunks");
-        Assert.assertTrue(new Chunk(1<<16,2<<16).overlaps(new Chunk(1<<16|0xFEFF,1<<16|0xFF00)),"Test failed to find overlap in contained chunk");
-        Assert.assertTrue(new Chunk(1<<16|0xFEFF,1<<16|0xFF00).overlaps(new Chunk(1<<16,2<<16)),"Test failed to find overlap in enclosing chunk");
-        Assert.assertTrue(new Chunk(1<<16,1<<16|0xFF00).overlaps(new Chunk(1<<16|0xFEFF,2<<16)),"Test failed to find tail->head overlap");
-        Assert.assertTrue(new Chunk(1<<16|0xFEFF,2<<16).overlaps(new Chunk(1<<16,1<<16|0xFF00)),"Test failed to find head->tail overlap");
-
-        // Test overlaps spanning blocks
-        Assert.assertTrue(new Chunk(1<<16,2<<16).overlaps(new Chunk(1<<16|0xFF00,2<<16|0xFF00)),"Test failed to find overlap spanning blocks");
-    }
-
-    @Test
-    public void testAdjacency() {
-        // Test offset adjacency
-        Assert.assertTrue(new Chunk(1,5).isAdjacentTo(new Chunk(5,9)),"Offsets which should be adjacent are not");
-        Assert.assertTrue(new Chunk(5,9).isAdjacentTo(new Chunk(1,5)),"Offsets which should be adjacent are not");
-
-        // Test block adjacency
-        Assert.assertTrue(new Chunk(1<<16,2<<16).isAdjacentTo(new Chunk(2<<16,3<<16)),"Blocks which should be adjacent are not");
-
-        // Test offset-block adjacency
-        Assert.assertTrue(new Chunk(1<<16,2<<16|0xFF00).isAdjacentTo(new Chunk(2<<16|0xFF00,3<<16)),"Block-offsets which should be adjacent are not");
-
-        // Discontiguous and overlapping blocks
-        Assert.assertFalse(new Chunk(1,5).isAdjacentTo(new Chunk(11,15)),"Disjoint block should not be adjacent");
-        Assert.assertFalse(new Chunk(1,5).isAdjacentTo(new Chunk(2,3)),"Contained offset should not be adjacent");
-    }
-}
diff --git a/src/tests/java/net/sf/samtools/CigarCodecTest.java b/src/tests/java/net/sf/samtools/CigarCodecTest.java
deleted file mode 100644
index fd635a7..0000000
--- a/src/tests/java/net/sf/samtools/CigarCodecTest.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import org.testng.annotations.Test;
-import org.testng.Assert;
-
-import java.util.Arrays;
-
-import net.sf.samtools.Cigar;
-import net.sf.samtools.TextCigarCodec;
-import net.sf.samtools.SAMRecord;
-import net.sf.samtools.BinaryCigarCodec;
-
-public class CigarCodecTest {
-
-    private final BinaryCigarCodec binaryCigarCodec = new BinaryCigarCodec();
-    private final TextCigarCodec textCigarCodec = new TextCigarCodec();
-
-
-    @Test
-    public void testDefault() {
-        final Cigar emptyCigar = new Cigar();
-        Assert.assertEquals(emptyCigar, binaryCigarCodec.decode(new int[0]));
-        final int[] binaryCigar = binaryCigarCodec.encode(emptyCigar);
-        Assert.assertEquals(0, binaryCigar.length);
-        Assert.assertEquals(emptyCigar, textCigarCodec.decode(SAMRecord.NO_ALIGNMENT_CIGAR));
-        Assert.assertEquals(textCigarCodec.encode(emptyCigar), SAMRecord.NO_ALIGNMENT_CIGAR);
-    }
-
-    private static class Cigarette {
-        final int length;
-        final char op;
-
-        private Cigarette(final int length, final char op) {
-            this.length = length;
-            this.op = op;
-        }
-
-        int getBinaryOp() {
-            switch (op) {
-                case 'M': return 0;
-                case 'I': return 1;
-                case 'D': return 2;
-                case 'N': return 3;
-                case 'S': return 4;
-                case 'H': return 5;
-                case 'P': return 6;
-                case '=': return 7;
-                case 'X' : return 8;
-                default: Assert.assertTrue(false);
-            }
-            return -1;
-        }
-    }
-
-    private String makeTextCigar(final Cigarette[] cigarettes) {
-        final StringBuilder sb = new StringBuilder();
-        for (final Cigarette c : cigarettes) {
-            sb.append(Integer.toString(c.length));
-            sb.append(c.op);
-        }
-        return sb.toString();
-    }
-
-    private int[] makeBinaryCigar(final Cigarette[] cigarettes) {
-        final int[] ret = new int[cigarettes.length];
-        for (int i = 0; i < cigarettes.length; ++i) {
-            ret[i] = cigarettes[i].length << 4 | cigarettes[i].getBinaryOp();
-        }
-        return ret;
-    }
-
-    @Test
-    public void testSimple() {
-        final Cigarette[] cigarettes = {
-                new Cigarette(100, 'M'),
-                new Cigarette(200, 'I'),
-                new Cigarette(50, 'D'),
-                new Cigarette(21, 'N'),
-                new Cigarette(12, 'S'),
-                new Cigarette(99, 'H'),
-                new Cigarette(20, 'P'),
-                new Cigarette(2, '='),
-                new Cigarette(2, 'X')
-        };
-        final String textCigar = makeTextCigar(cigarettes);
-        final int[] binaryCigar = makeBinaryCigar(cigarettes);
-        final Cigar fromText = textCigarCodec.decode(textCigar);
-        final Cigar fromBinary = binaryCigarCodec.decode(binaryCigar);
-        Assert.assertEquals(fromText, fromBinary);
-        final String anotherTextCigar = textCigarCodec.encode(fromBinary);
-        final int[] anotherBinaryCigar = binaryCigarCodec.encode(fromText);
-        Assert.assertEquals(anotherTextCigar, textCigar);
-        Assert.assertTrue(Arrays.equals(anotherBinaryCigar, binaryCigar));
-    }
-}
diff --git a/src/tests/java/net/sf/samtools/CigarTest.java b/src/tests/java/net/sf/samtools/CigarTest.java
deleted file mode 100644
index aad9e8a..0000000
--- a/src/tests/java/net/sf/samtools/CigarTest.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.util.List;
-
-/**
- * @author alecw at broadinstitute.org
- */
-public class CigarTest {
-    private final TextCigarCodec codec = TextCigarCodec.getSingleton();
-
-    @Test
-    public void testPositive() {
-        Assert.assertNotNull(codec);
-        Assert.assertNull(codec.decode("").isValid(null, -1));
-        Assert.assertNull(codec.decode("2M1P4M1P2D1P6D").isValid(null, -1));
-        Assert.assertNull(codec.decode("10M5N1I12M").isValid(null, -1));
-        Assert.assertNull(codec.decode("10M1I5N1I12M").isValid(null, -1));
-        Assert.assertNull(codec.decode("9M1D5N1I12M").isValid(null, -1));
-
-        // I followed by D and vice versa is now allowed.
-        Assert.assertNull(codec.decode("1M1I1D1M").isValid(null, -1));
-        Assert.assertNull(codec.decode("1M1D1I1M").isValid(null, -1));
-
-        // Soft-clip inside of hard-clip now allowed.
-        Assert.assertNull(codec.decode("29M1S15H").isValid(null, -1));
-    }
-
-    @Test
-    public void testNegative() {
-        // Cannot have two consecutive insertions
-        List<SAMValidationError> errors = codec.decode("1M1I1I1M").isValid(null, -1);
-        Assert.assertEquals(errors.size(), 1);
-        Assert.assertEquals(errors.get(0).getType(), SAMValidationError.Type.ADJACENT_INDEL_IN_CIGAR);
-
-        // Cannot have two consecutive deletions
-        errors = codec.decode("1M1D1D1M").isValid(null, -1);
-        Assert.assertEquals(errors.size(), 1);
-        Assert.assertEquals(errors.get(0).getType(), SAMValidationError.Type.ADJACENT_INDEL_IN_CIGAR);
-
-        // Soft clip must be at end of read or inside of hard clip
-        errors = codec.decode("1M1D1S1M").isValid(null, -1);
-        Assert.assertEquals(errors.size(), 1);
-        Assert.assertEquals(errors.get(0).getType(), SAMValidationError.Type.INVALID_CIGAR);
-
-        // Soft clip must be at end of read or inside of hard clip
-        errors = codec.decode("1M1D1S1M1H").isValid(null, -1);
-        Assert.assertEquals(errors.size(), 1);
-        Assert.assertEquals(errors.get(0).getType(), SAMValidationError.Type.INVALID_CIGAR);
-
-/*
-        // Zero length for an element not allowed.
-        errors = codec.decode("100M0D10M1D10M").isValid(null, -1);
-        Assert.assertEquals(errors.size(), 1);
-        Assert.assertEquals(errors.get(0).getType(), SAMValidationError.Type.INVALID_CIGAR);
-*/
-    }
-}
diff --git a/src/tests/java/net/sf/samtools/SAMCloneTest.java b/src/tests/java/net/sf/samtools/SAMCloneTest.java
deleted file mode 100644
index 559e2c3..0000000
--- a/src/tests/java/net/sf/samtools/SAMCloneTest.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import org.testng.annotations.Test;
-import org.testng.Assert;
-
-/**
- * @author alecw at broadinstitute.org
- */
-public class SAMCloneTest {
-    private SAMRecordSetBuilder getSAMReader(final boolean sortForMe, final SAMFileHeader.SortOrder sortOrder) {
-        final SAMRecordSetBuilder ret = new SAMRecordSetBuilder(sortForMe, sortOrder);
-        ret.addPair("readB", 20, 200, 300);
-        ret.addPair("readA", 20, 100, 150);
-        ret.addFrag("readC", 20, 140, true);
-        ret.addFrag("readD", 20, 140, false);
-        return ret;
-    }
-
-    @Test
-    public void testBasic() throws Exception {
-        final SAMRecordSetBuilder recordSetBuilder = getSAMReader(true, SAMFileHeader.SortOrder.coordinate);
-        SAMFileReader inputSAM = recordSetBuilder.getSamReader();
-        for (final SAMRecord samRecord : inputSAM) {
-            SAMRecord newRecord = (SAMRecord)samRecord.clone();
-            Assert.assertEquals(newRecord, samRecord);
-        }
-        inputSAM.close();
-    }
-}
diff --git a/src/tests/java/net/sf/samtools/SAMFileReaderTest.java b/src/tests/java/net/sf/samtools/SAMFileReaderTest.java
deleted file mode 100644
index b023bcf..0000000
--- a/src/tests/java/net/sf/samtools/SAMFileReaderTest.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-
-import java.io.File;
-
-public class SAMFileReaderTest {
-    private static final File TEST_DATA_DIR = new File("testdata/net/sf/samtools");
-
-    @Test(dataProvider = "variousFormatReaderTestCases")
-    public void variousFormatReaderTest(final String inputFile) {
-        final File input = new File(TEST_DATA_DIR, inputFile);
-        final SAMFileReader reader = new SAMFileReader(input);
-        for (final SAMRecord rec: reader) {}
-        reader.close();
-    }
-
-    @DataProvider(name = "variousFormatReaderTestCases")
-    public Object[][] variousFormatReaderTestCases() {
-        final Object[][] scenarios = new Object[][] {
-                { "block_compressed.sam.gz"},
-                { "uncompressed.sam"},
-                { "compressed.sam.gz"},
-                { "compressed.bam"},
-        };
-        return scenarios;
-    }
-
-    // Tests for the SAMRecordFactory usage
-    class SAMRecordFactoryTester extends DefaultSAMRecordFactory {
-        int samRecordsCreated;
-        int bamRecordsCreated;
-
-        public SAMRecord createSAMRecord(final SAMFileHeader header) {
-            ++samRecordsCreated;
-            return super.createSAMRecord(header);
-        }
-
-        public BAMRecord createBAMRecord(final SAMFileHeader header, final int referenceSequenceIndex, final int alignmentStart, final short readNameLength, final short mappingQuality, final int indexingBin, final int cigarLen, final int flags, final int readLen, final int mateReferenceSequenceIndex, final int mateAlignmentStart, final int insertSize, final byte[] variableLengthBlock) {
-            ++bamRecordsCreated;
-            return super.createBAMRecord(header, referenceSequenceIndex, alignmentStart, readNameLength, mappingQuality, indexingBin, cigarLen, flags, readLen, mateReferenceSequenceIndex, mateAlignmentStart, insertSize, variableLengthBlock);
-        }
-    }
-
-    @Test(dataProvider = "variousFormatReaderTestCases")
-    public void samRecordFactoryTest(final String inputFile) {
-        final File input = new File(TEST_DATA_DIR, inputFile);
-        final SAMFileReader reader = new SAMFileReader(input);
-        final SAMRecordFactoryTester factory = new SAMRecordFactoryTester();
-        reader.setSAMRecordFactory(factory);
-
-        int i=0;
-        for (final SAMRecord rec: reader) {
-            ++i;
-        }
-        reader.close();
-
-        Assert.assertTrue(i > 0);
-        if (inputFile.endsWith(".sam") || inputFile.endsWith(".sam.gz")) Assert.assertEquals(factory.samRecordsCreated, i);
-        else if (inputFile.endsWith(".bam")) Assert.assertEquals(factory.bamRecordsCreated, i);
-    }
-
-}
diff --git a/src/tests/java/net/sf/samtools/SAMFileWriterFactoryTest.java b/src/tests/java/net/sf/samtools/SAMFileWriterFactoryTest.java
deleted file mode 100644
index 2ea1ffe..0000000
--- a/src/tests/java/net/sf/samtools/SAMFileWriterFactoryTest.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.io.File;
-
-public class SAMFileWriterFactoryTest {
-
-    /** PIC-442Confirm that writing to a special file does not cause exception when writing additional files. */
-    @Test(groups={"unix"})
-    public void specialFileWriterTest() {
-        createSmallBam(new File("/dev/null"));
-    }
-
-    @Test
-    public void ordinaryFileWriterTest() throws Exception {
-        final File outputFile = File.createTempFile("tmp.", BamFileIoUtils.BAM_FILE_EXTENSION);
-        outputFile.delete();
-        outputFile.deleteOnExit();
-        String basename = outputFile.getName();
-        basename = basename.substring(0, basename.lastIndexOf("."));
-        final File indexFile = new File(outputFile.getParent(), basename + BAMIndex.BAMIndexSuffix);
-        indexFile.deleteOnExit();
-        final File md5File = new File(outputFile.getParent(), outputFile.getName() + ".md5");
-        md5File.deleteOnExit();
-        createSmallBam(outputFile);
-        Assert.assertTrue(outputFile.length() > 0);
-        Assert.assertTrue(indexFile.length() > 0);
-        Assert.assertTrue(md5File.length() > 0);
-    }
-
-    private void createSmallBam(final File outputFile) {
-        final SAMFileWriterFactory factory = new SAMFileWriterFactory();
-        factory.setCreateIndex(true);
-        factory.setCreateMd5File(true);
-        final SAMFileHeader header = new SAMFileHeader();
-        // index only created if coordinate sorted
-        header.setSortOrder(SAMFileHeader.SortOrder.coordinate);
-        header.addSequence(new SAMSequenceRecord("chr1", 123));
-        final SAMFileWriter writer = factory.makeBAMWriter(header, false, outputFile);
-        final SAMRecordSetBuilder builder = new SAMRecordSetBuilder();
-        builder.addUnmappedFragment("HiMom!");
-        for (final SAMRecord rec: builder.getRecords()) writer.addAlignment(rec);
-        writer.close();
-    }
-}
diff --git a/src/tests/java/net/sf/samtools/SAMIntegerTagTest.java b/src/tests/java/net/sf/samtools/SAMIntegerTagTest.java
deleted file mode 100644
index 3828ccd..0000000
--- a/src/tests/java/net/sf/samtools/SAMIntegerTagTest.java
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import org.testng.annotations.Test;
-import org.testng.Assert;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * Confirm that integer tag types are stored and retrieved properly.
- *
- * @author alecw at broadinstitute.org
- */
-public class SAMIntegerTagTest {
-    private static final File TEST_DATA_DIR = new File("testdata/net/sf/samtools/SAMIntegerTagTest");
-
-    private static final String BYTE_TAG = "BY";
-    private static final String SHORT_TAG = "SH";
-    private static final String INTEGER_TAG = "IN";
-    private static final String UNSIGNED_INTEGER_TAG = "UI";
-    private static final String STRING_TAG = "ST";
-
-    @Test
-    public void testBAM() throws Exception {
-        final SAMRecord rec = writeAndReadSamRecord("bam");
-        Assert.assertTrue(rec.getAttribute(BYTE_TAG) instanceof Integer);
-        Assert.assertEquals(((Number)rec.getAttribute(BYTE_TAG)).intValue(), 1);
-        Assert.assertTrue(rec.getAttribute(SHORT_TAG) instanceof Integer);
-        Assert.assertEquals(((Number)rec.getAttribute(SHORT_TAG)).intValue(), 1);
-        Assert.assertTrue(rec.getAttribute(INTEGER_TAG) instanceof Integer);
-        Assert.assertEquals(((Number)rec.getAttribute(INTEGER_TAG)).intValue(), 1);
-    }
-
-    @Test
-    public void testSAM() throws Exception {
-        final SAMRecord rec = writeAndReadSamRecord("sam");
-        Assert.assertTrue(rec.getAttribute(BYTE_TAG) instanceof Integer);
-        Assert.assertEquals(((Number)rec.getAttribute(BYTE_TAG)).intValue(), 1);
-        Assert.assertTrue(rec.getAttribute(SHORT_TAG) instanceof Integer);
-        Assert.assertEquals(((Number)rec.getAttribute(SHORT_TAG)).intValue(), 1);
-        Assert.assertTrue(rec.getAttribute(INTEGER_TAG) instanceof Integer);
-        Assert.assertEquals(((Number)rec.getAttribute(INTEGER_TAG)).intValue(), 1);
-    }
-
-    @Test(expectedExceptions = SAMException.class)
-    public void testUnsignedIntegerBAM() throws Exception {
-        SAMRecord rec = createSamRecord();
-        final long val = 1l + Integer.MAX_VALUE;
-        rec.setAttribute(UNSIGNED_INTEGER_TAG, val);
-        Assert.fail("Exception should have been thrown.");
-    }
-
-    /**
-     * Cannot store unsigned int in SAM text format.
-     */
-    @Test(expectedExceptions = SAMException.class)
-    public void testUnsignedIntegerSAM() throws Exception {
-        final SAMRecord rec = createSamRecord();
-        final long val = 1l + Integer.MAX_VALUE;
-        rec.setAttribute(UNSIGNED_INTEGER_TAG, val);
-    }
-
-    @Test
-    public void testGetTypedAttributeMethods() throws Exception {
-        final SAMRecord rec = writeAndReadSamRecord("bam");
-        Assert.assertEquals(rec.getByteAttribute(INTEGER_TAG).intValue(), 1);
-        Assert.assertEquals(rec.getShortAttribute(INTEGER_TAG).intValue(), 1);
-        Assert.assertEquals(rec.getIntegerAttribute(INTEGER_TAG).intValue(), 1);
-    }
-
-    /**
-     * Should be an exception if a typed attribute call is made for the wrong type.
-     */
-    @Test(expectedExceptions = RuntimeException.class)
-    public void testGetTypedAttributeForWrongType() throws Exception {
-        final SAMRecord rec = createSamRecord();
-        rec.setAttribute(STRING_TAG, "Hello, World!");
-        writeAndReadSamRecord("bam", rec);
-        rec.getIntegerAttribute(STRING_TAG);
-        Assert.fail("Exception should have been thrown.");
-    }
-
-    /**
-     * Should be an exception if a typed attribute call is made for a value that cannot
-     * be coerced into the correct type.
-     * This test is a little lame because a RuntimeException could be thrown for some other reason.
-     */
-    @Test(expectedExceptions = RuntimeException.class)
-    public void testGetTypedAttributeOverflow() throws Exception {
-        final SAMRecord rec = createSamRecord();
-        rec.setAttribute(INTEGER_TAG, Integer.MAX_VALUE);
-        writeAndReadSamRecord("bam", rec);
-        rec.getShortAttribute(INTEGER_TAG);
-        Assert.fail("Exception should have been thrown.");
-    }
-
-    /**
-     * Should be an exception if a typed attribute call is made for a value that cannot
-     * be coerced into the correct type.
-     * This test is a little lame because a RuntimeException could be thrown for some other reason.
-     */
-    @Test(expectedExceptions = RuntimeException.class)
-    public void testGetTypedAttributeUnerflow() throws Exception {
-        final SAMRecord rec = createSamRecord();
-        rec.setAttribute(INTEGER_TAG, Integer.MIN_VALUE);
-        writeAndReadSamRecord("bam", rec);
-        rec.getShortAttribute(INTEGER_TAG);
-        Assert.fail("Exception should have been thrown.");
-    }
-
-    /**
-     * Create a SAMRecord with integer tags of various sizes, write to a file, and read it back.
-     * @param format "sam" or "bam".
-     * @return The record after having being read from file.
-     */
-    private SAMRecord writeAndReadSamRecord(final String format) throws IOException {
-        SAMRecord rec = createSamRecord();
-        rec.setAttribute(BYTE_TAG, (byte)1);
-        rec.setAttribute(SHORT_TAG, (short)1);
-        rec.setAttribute(INTEGER_TAG, 1);
-        rec = writeAndReadSamRecord(format, rec);
-        return rec;
-    }
-
-    /**
-     * Write a SAMRecord to a SAM file in the given format, and read it back.
-     * @param format "sam" or "bam".
-     * @param rec The record to write.
-     * @return The same record, after having being written and read back.
-     */
-    private SAMRecord writeAndReadSamRecord(final String format, SAMRecord rec) throws IOException {
-        final File bamFile = File.createTempFile("test.", "." + format);
-        bamFile.deleteOnExit();
-        final SAMFileWriter bamWriter = new SAMFileWriterFactory().makeSAMOrBAMWriter(rec.getHeader(), false, bamFile);
-        bamWriter.addAlignment(rec);
-        bamWriter.close();
-        final SAMFileReader reader = new SAMFileReader(bamFile);
-        rec = reader.iterator().next();
-        reader.close();
-        return rec;
-    }
-
-    private SAMRecord createSamRecord() {
-        final SAMRecordSetBuilder builder = new SAMRecordSetBuilder(false, SAMFileHeader.SortOrder.unsorted);
-        builder.addFrag("readA", 20, 140, false);
-        return builder.iterator().next();
-    }
-
-    @Test(expectedExceptions = {SAMFormatException.class})
-    public void testBadSamStrict() {
-        final SAMFileReader reader = new SAMFileReader(new File(TEST_DATA_DIR, "variousAttributes.sam"));
-        reader.iterator().next();
-        Assert.fail("Should not reach.");
-    }
-
-    @Test(expectedExceptions = {RuntimeException.class})
-    public void testBadBamStrict() {
-        final SAMFileReader reader = new SAMFileReader(new File(TEST_DATA_DIR, "variousAttributes.bam"), true);
-        reader.iterator().next();
-        Assert.fail("Should not reach.");
-
-    }
-
-    @Test
-    public void testBadBamLenient() {
-        final SAMFileReader reader = new SAMFileReader(new File(TEST_DATA_DIR, "variousAttributes.bam"), true);
-        reader.setValidationStringency(SAMFileReader.ValidationStringency.LENIENT);
-        final SAMRecord rec = reader.iterator().next();
-        final Map<String, Number> expectedTags = new HashMap<String, Number>();
-        expectedTags.put("SB", -128);
-        expectedTags.put("UB", 129);
-        expectedTags.put("SS", 32767);
-        expectedTags.put("US", 65535);
-        expectedTags.put("SI", 2147483647);
-        expectedTags.put("I2", -2147483647);
-        expectedTags.put("UI", 4294967295L);
-        for (final Map.Entry<String, Number> entry : expectedTags.entrySet()) {
-            final Object value = rec.getAttribute(entry.getKey());
-            Assert.assertEquals(value, entry.getValue());
-        }
-        reader.close();
-    }
-}
diff --git a/src/tests/java/net/sf/samtools/SAMTextReaderTest.java b/src/tests/java/net/sf/samtools/SAMTextReaderTest.java
deleted file mode 100644
index d709dff..0000000
--- a/src/tests/java/net/sf/samtools/SAMTextReaderTest.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import net.sf.samtools.util.CloseableIterator;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-
-public class SAMTextReaderTest {
-    // Simple input, spot check that parsed correctly, and make sure nothing blows up.
-    @Test
-    public void testBasic() throws Exception {
-        final String seq1 = "AGCTTAGCTAGCTACCTATATCTTGGTCTTGGCCG";
-        final String seq2 = "ACCTATATCTTGGCCTTGGCCGATGCGGCCTTGCA";
-        final String qual1 = "<<<<<<<<<<<<<<<<<<<<<:<9/,&,22;;<<<";
-        final String qual2 = "<<<<<;<<<<7;:<<<6;<<<<<<<<<<<<7<<<<";
-        final String fileFormatVersion = "1.0";
-        final String sequence = "chr20";
-        final int sequenceLength = 62435964;
-        final String charTag = "XC";
-        final char charValue = 'q';
-        final String intTag = "XI";
-        final int intValue = 12345;
-        final String floatTag = "XF";
-        final float floatValue = 1.2345f;
-        final String stringTag = "XS";
-        final String stringValue = "Hi,Mom!";
-        final String samExample = "@HD\tVN:" + fileFormatVersion + "\t" + charTag + ":" + charValue + "\n" +
-                "@SQ\tSN:" + sequence + "\tAS:HG18\tLN:" + sequenceLength + "\t" + intTag + ":" + intValue + "\n" +
-                "@RG\tID:L1\tPU:SC_1_10\tLB:SC_1\tSM:NA12891" + "\t" + floatTag + ":" + floatValue + "\n" +
-                "@RG\tID:L2\tPU:SC_2_12\tLB:SC_2\tSM:NA12891\n" +
-                "@PG\tID:0\tVN:1.0\tCL:yo baby\t" + stringTag + ":" + stringValue + "\n" +
-                "@PG\tID:2\tVN:1.1\tCL:whassup? ? ? ?\n" +
-                "read_28833_29006_6945\t99\tchr20\t28833\t20\t10M1D25M\t=\t28993\t195\t" +
-                seq1.toLowerCase() + "\t" + qual1 + "\t" +
-                "MF:i:130\tNm:i:1\tH0:i:0\tH1:i:0\tRG:Z:L1\n" +
-                "read_28701_28881_323b\t147\tchr20\t28834\t30\t35M\t=\t28701\t-168\t" +
-                seq2 + "\t" + qual2 + "\t" +
-                "MF:i:18\tNm:i:0\tH0:i:1\tH1:i:0\tRG:Z:L2\n";
-
-        final String[] samResults =
-                {"read_28833_29006_6945\t99\tchr20\t28833\t20\t10M1D25M\tchr20\t28993\t195\t" + seq1 + "\t" + qual1 +
-                        "\tH0:i:0\tH1:i:0\tMF:i:130\tRG:Z:L1\tNm:i:1",
-                "read_28701_28881_323b\t147\tchr20\t28834\t30\t35M\tchr20\t28701\t-168\t" + seq2 + "\t" + qual2 +
-                        "\tH0:i:1\tH1:i:0\tMF:i:18\tRG:Z:L2\tNm:i:0"
-        };
-
-        final SAMFileReader samReader = createSamFileReader(samExample);
-        final SAMFileHeader fileHeader = samReader.getFileHeader();
-
-        Assert.assertEquals(fileHeader.getVersion(), fileFormatVersion);
-        Assert.assertEquals(fileHeader.getAttribute(charTag), Character.toString(charValue));
-        final SAMSequenceRecord sequenceRecord = fileHeader.getSequence(sequence);
-        Assert.assertNotNull(sequenceRecord);
-        Assert.assertEquals(sequenceRecord.getSequenceLength(), sequenceLength);
-        Assert.assertEquals(sequenceRecord.getAttribute(intTag), Integer.toString(intValue));
-        Assert.assertEquals(fileHeader.getReadGroup("L1").getAttribute(floatTag), Float.toString(floatValue));
-        Assert.assertEquals(fileHeader.getProgramRecord("0").getAttribute(stringTag), stringValue);
-
-        final CloseableIterator<SAMRecord> iterator = samReader.iterator();
-        int i = 0;
-        while (iterator.hasNext()) {
-            final SAMRecord rec = iterator.next();
-            Assert.assertEquals(rec.format(), samResults[i++]);
-        }
-        iterator.close();
-        iterator.close();
-        samReader.close();        
-    }
-
-    private SAMFileReader createSamFileReader(final String samExample) {
-        final ByteArrayInputStream inputStream = new ByteArrayInputStream(samExample.getBytes());
-        return new SAMFileReader(inputStream);
-    }
-
-    @Test
-    public void testUnmapped() {
-        final String alignmentFromKris =
-          "0\t4\t*\t0\t0\t*\t*\t0\t0\tGCCTCGTAGTGCGCCATCAGTCTATCGATGTCGTTG\t44\"44===;;;;;;;;;::::88844\"4\"\"\"\"\"\"\"\"\n";
-        final SAMFileReader samReader = createSamFileReader(alignmentFromKris);
-        final CloseableIterator<SAMRecord> iterator = samReader.iterator();
-        while (iterator.hasNext()) {
-            iterator.next();
-        }
-        iterator.close();
-
-    }
-
-    /**
-     * Colon separates fields of a text tag, but colon is also valid in a tag value, so assert that works properly.
-     */
-    @Test
-    public void testTagWithColon() {
-        // Create a SAMRecord with a String tag containing a colon
-        final SAMRecordSetBuilder samBuilder = new SAMRecordSetBuilder();
-        samBuilder.addUnmappedFragment("Hi,Mom!");
-        final SAMRecord rec = samBuilder.iterator().next();
-        final String valueWithColons = "A:B::C:::";
-        rec.setAttribute(SAMTag.CQ.name(),  valueWithColons);
-        // Write the record as SAM Text
-        final ByteArrayOutputStream os = new ByteArrayOutputStream();
-        final SAMFileWriter textWriter = new SAMFileWriterFactory().makeSAMWriter(samBuilder.getHeader(),
-                true, os);
-        textWriter.addAlignment(rec);
-        textWriter.close();
-
-        final SAMFileReader reader = new SAMFileReader(new ByteArrayInputStream(os.toByteArray()));
-        final SAMRecord recFromText = reader.iterator().next();
-        Assert.assertEquals(recFromText.getAttribute(SAMTag.CQ.name()), valueWithColons);
-    }
-}
diff --git a/src/tests/java/net/sf/samtools/SAMTextWriterTest.java b/src/tests/java/net/sf/samtools/SAMTextWriterTest.java
deleted file mode 100644
index 23c4564..0000000
--- a/src/tests/java/net/sf/samtools/SAMTextWriterTest.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.HashMap;
-
-public class SAMTextWriterTest {
-
-    private SAMRecordSetBuilder getSAMReader(final boolean sortForMe, final SAMFileHeader.SortOrder sortOrder) {
-        final SAMRecordSetBuilder ret = new SAMRecordSetBuilder(sortForMe, sortOrder);
-        ret.addPair("readB", 20, 200, 300);
-        ret.addPair("readA", 20, 100, 150);
-        ret.addFrag("readC", 20, 140, true);
-        ret.addFrag("readD", 20, 140, false);
-        return ret;
-    }
-
-    @Test
-    public void testBasic() throws Exception {
-        final SAMRecordSetBuilder recordSetBuilder = getSAMReader(true, SAMFileHeader.SortOrder.coordinate);
-        SAMFileReader inputSAM = recordSetBuilder.getSamReader();
-        final File samFile = File.createTempFile("tmp.", ".sam");
-        samFile.deleteOnExit();
-        final Map<String, Object> tagMap = new HashMap<String, Object>();
-        tagMap.put("XC", new Character('q'));
-        tagMap.put("XI", 12345);
-        tagMap.put("XF", 1.2345f);
-        tagMap.put("XS", "Hi,Mom!");
-        for (final Map.Entry<String, Object> entry : tagMap.entrySet()) {
-            inputSAM.getFileHeader().setAttribute(entry.getKey(), entry.getValue().toString());
-        }
-        final SAMFileWriter samWriter = new SAMFileWriterFactory().makeSAMWriter(inputSAM.getFileHeader(), false, samFile);
-        for (final SAMRecord samRecord : inputSAM) {
-            samWriter.addAlignment(samRecord);
-        }
-        samWriter.close();
-
-        // Read it back in and confirm that it matches the input
-        inputSAM = recordSetBuilder.getSamReader();
-        // Stuff in the attributes again since this has been created again.
-        for (final Map.Entry<String, Object> entry : tagMap.entrySet()) {
-            inputSAM.getFileHeader().setAttribute(entry.getKey(), entry.getValue().toString());
-        }
-
-        final SAMFileReader newSAM = new SAMFileReader(samFile);
-        Assert.assertEquals(newSAM.getFileHeader(), inputSAM.getFileHeader());
-        final Iterator<SAMRecord> inputIt = inputSAM.iterator();
-        final Iterator<SAMRecord> newSAMIt = newSAM.iterator();
-        while (inputIt.hasNext()) {
-            Assert.assertTrue(newSAMIt.hasNext());
-            final SAMRecord inputSAMRecord = inputIt.next();
-            final SAMRecord newSAMRecord = newSAMIt.next();
-
-            // Force reference index attributes to be populated
-            inputSAMRecord.getReferenceIndex();
-            newSAMRecord.getReferenceIndex();
-            inputSAMRecord.getMateReferenceIndex();
-            newSAMRecord.getMateReferenceIndex();
-
-            // Force these to be equal
-            newSAMRecord.setIndexingBin(inputSAMRecord.getIndexingBin());
-
-            Assert.assertEquals(newSAMRecord, inputSAMRecord);
-        }
-        Assert.assertFalse(newSAMIt.hasNext());
-    }
-
-}
diff --git a/src/tests/java/net/sf/samtools/SAMUtilsTest.java b/src/tests/java/net/sf/samtools/SAMUtilsTest.java
deleted file mode 100644
index d6fbb6f..0000000
--- a/src/tests/java/net/sf/samtools/SAMUtilsTest.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-public class SAMUtilsTest {
-    @Test
-    public void testCompareMapqs() {
-        Assert.assertEquals(SAMUtils.compareMapqs(0, 0), 0);
-        Assert.assertEquals(SAMUtils.compareMapqs(255, 255), 0);
-        Assert.assertEquals(SAMUtils.compareMapqs(1, 1), 0);
-        Assert.assertTrue(SAMUtils.compareMapqs(0, 255) < 0);
-        Assert.assertTrue(SAMUtils.compareMapqs(0, 1) < 0);
-        Assert.assertTrue(SAMUtils.compareMapqs(255, 1) < 0);
-        Assert.assertTrue(SAMUtils.compareMapqs(1, 2) < 0);
-
-        Assert.assertTrue(SAMUtils.compareMapqs(255, 0) > 0);
-        Assert.assertTrue(SAMUtils.compareMapqs(1, 0) > 0);
-        Assert.assertTrue(SAMUtils.compareMapqs(1, 255) > 0);
-        Assert.assertTrue(SAMUtils.compareMapqs(2, 1) > 0);
-    }
-}
diff --git a/src/tests/java/net/sf/samtools/SamHeaderRecordComparatorTest.java b/src/tests/java/net/sf/samtools/SamHeaderRecordComparatorTest.java
deleted file mode 100644
index 6cb89b8..0000000
--- a/src/tests/java/net/sf/samtools/SamHeaderRecordComparatorTest.java
+++ /dev/null
@@ -1,72 +0,0 @@
-package net.sf.samtools;
-
-/**
- * The MIT License
- * <p/>
- * Copyright (c) 2014 The Broad Institute
- * <p/>
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * <p/>
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * <p/>
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-public class SamHeaderRecordComparatorTest {
-
-	@DataProvider(name="UsualSuspects")
-	public Object[][] createData() {
-		final SAMReadGroupRecord left = new SAMReadGroupRecord("left");
-		left.setPlatformUnit("left.1");
-		left.setLibrary("library");
-
-		final SAMReadGroupRecord right = new SAMReadGroupRecord("right");
-		right.setPlatformUnit("right.1");
-		right.setLibrary("library");
-		right.setDescription("description");
-
-		return new Object[][] {{ left, right }};
-	}
-
-	@Test(dataProvider="UsualSuspects")
-	public void testEqualRecords(final SAMReadGroupRecord left, final SAMReadGroupRecord right) {
-		final SAMHeaderRecordComparator<SAMReadGroupRecord> comparator = new SAMHeaderRecordComparator<SAMReadGroupRecord>(SAMReadGroupRecord.PLATFORM_UNIT_TAG);
-		Assert.assertEquals(0, comparator.compare(left, left)); // see what I did there?
-	}
-
-	@Test(dataProvider="UsualSuspects")
-	public void testUnequalRecords(final SAMReadGroupRecord left, final SAMReadGroupRecord right) {
-		final SAMHeaderRecordComparator<SAMReadGroupRecord> comparator = new SAMHeaderRecordComparator<SAMReadGroupRecord>(SAMReadGroupRecord.PLATFORM_UNIT_TAG);
-		Assert.assertTrue(comparator.compare(left, right) < 0);
-		Assert.assertTrue(comparator.compare(right, left) > 0);
-	}
-
-	@Test(dataProvider="UsualSuspects")
-	public void testNullAttributes(final SAMReadGroupRecord left, final SAMReadGroupRecord right) {
-		final SAMHeaderRecordComparator<SAMReadGroupRecord> comparator = new SAMHeaderRecordComparator<SAMReadGroupRecord>(SAMReadGroupRecord.FLOW_ORDER_TAG);
-		Assert.assertEquals(0, comparator.compare(left, right)); // neither record has this attribute
-	}
-
-	@Test(dataProvider="UsualSuspects")
-	public void testOneNullAttribute(final SAMReadGroupRecord left, final SAMReadGroupRecord right) {
-		final SAMHeaderRecordComparator<SAMReadGroupRecord> comparator = new SAMHeaderRecordComparator<SAMReadGroupRecord>(SAMReadGroupRecord.DESCRIPTION_TAG);
-		Assert.assertTrue(comparator.compare(left, right) < 0);
-		Assert.assertTrue(comparator.compare(right, left) > 0);
-	}
-}
diff --git a/src/tests/java/net/sf/samtools/SamPairUtilTest.java b/src/tests/java/net/sf/samtools/SamPairUtilTest.java
deleted file mode 100644
index 36b1530..0000000
--- a/src/tests/java/net/sf/samtools/SamPairUtilTest.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools;
-
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-public class SamPairUtilTest {
-
-    @Test(dataProvider = "testGetPairOrientation")
-        public void testGetPairOrientation(final String testName,
-                                           final int read1Start, final int read1Length, final boolean read1Reverse,
-                                           final int read2Start, final int read2Length, final boolean read2Reverse,
-                                           final SamPairUtil.PairOrientation expectedOrientation) {
-        final SAMFileHeader header = new SAMFileHeader();
-        header.addSequence(new SAMSequenceRecord("chr1", 100000000));
-        final SAMRecord rec1 = makeSamRecord(header, read1Start, read1Length, read1Reverse, true);
-        final SAMRecord rec2 = makeSamRecord(header, read2Start, read2Length, read2Reverse, false);
-        SamPairUtil.setMateInfo(rec1, rec2, header, true);
-        Assert.assertEquals(SamPairUtil.getPairOrientation(rec1), expectedOrientation, testName + " first end");
-        Assert.assertEquals(SamPairUtil.getPairOrientation(rec2), expectedOrientation, testName + " second end");
-    }
-
-    @Test(dataProvider = "testSetMateInfoMateCigar")
-    public void testSetMateInfoMateCigar(final String testName,
-                                       final int read1Start, final boolean read1Reverse, final String read1Cigar,
-                                       final int read2Start, final boolean read2Reverse, final String read2Cigar) {
-        final SAMFileHeader header = new SAMFileHeader();
-        header.addSequence(new SAMSequenceRecord("chr1", 100000000));
-        final SAMRecord rec1 = makeSamRecord2(header, read1Start, read1Reverse, read1Cigar, true);
-        final SAMRecord rec2 = makeSamRecord2(header, read2Start, read2Reverse, read2Cigar, false);
-        SamPairUtil.setMateInfo(rec1, rec2, header, true);
-        Assert.assertEquals(SAMUtils.getMateCigarString(rec1), rec2.getCigarString(), testName + " first end");
-        Assert.assertEquals(SAMUtils.getMateCigarString(rec2), rec1.getCigarString(), testName + " second end");
-    }
-
-    private SAMRecord makeSamRecord(final SAMFileHeader header, final int alignmentStart, final int readLength,
-                                    final boolean reverse, final boolean firstOfPair) {
-        final SAMRecord rec = new SAMRecord(header);
-        rec.setReferenceIndex(0);
-        final StringBuilder sb = new StringBuilder();
-        final byte[] quals = new byte[readLength];
-        for (int i = 0; i < readLength; ++i) {
-            sb.append("A");
-            quals[i] = 20;
-        }
-        rec.setReadString(sb.toString());
-        rec.setBaseQualities(quals);
-        rec.setAlignmentStart(alignmentStart);
-        rec.setCigarString(readLength + "M");
-        rec.setReadPairedFlag(true);
-        rec.setReadNegativeStrandFlag(reverse);
-        if (firstOfPair) rec.setFirstOfPairFlag(true);
-        else rec.setSecondOfPairFlag(true);
-        return rec;
-    }
-
-    private SAMRecord makeSamRecord2(final SAMFileHeader header, final int alignmentStart, boolean reverse,
-                                     String cigarString, final boolean firstOfPair) {
-        final SAMRecord rec = new SAMRecord(header);
-        final StringBuilder sb = new StringBuilder();
-        final Cigar cigar =  TextCigarCodec.getSingleton().decode(cigarString);
-        final int readLength = cigar.getReadLength();
-        rec.setReferenceIndex(0);
-        final byte[] quals = new byte[readLength];
-        for (int i = 0; i < readLength; ++i) {
-            sb.append("A");
-            quals[i] = 20;
-        }
-        rec.setReadString(sb.toString());
-        rec.setBaseQualities(quals);
-        rec.setAlignmentStart(alignmentStart);
-        rec.setCigar(cigar);
-        rec.setReadPairedFlag(true);
-        rec.setReadNegativeStrandFlag(reverse);
-        if (firstOfPair) rec.setFirstOfPairFlag(true);
-        else rec.setSecondOfPairFlag(true);
-        return rec;
-    }
-
-    @DataProvider(name = "testGetPairOrientation")
-    public Object[][] testGetPairOrientationDataProvider() {
-        /**
-         * @param testName
-         * @param read1Start
-         * @param read1Length
-         * @param read1Reverse
-         * @param read2Start
-         * @param read2Length
-         * @param read2Reverse
-         * @param expectedOrientation
-         */
-        return new Object[][] {
-                {"normal innie", 1, 100, false, 500, 100, true, SamPairUtil.PairOrientation.FR},
-                {"overlapping innie", 1, 100, false, 50, 100, true, SamPairUtil.PairOrientation.FR},
-                {"second end enclosed innie", 1, 100, false, 50, 50, true, SamPairUtil.PairOrientation.FR},
-                {"first end enclosed innie", 1, 50, false, 1, 100, true, SamPairUtil.PairOrientation.FR},
-                {"completely overlapping innie", 1, 100, false, 1, 100, true, SamPairUtil.PairOrientation.FR},
-
-                {"normal outie", 1, 100, true, 500, 100, false, SamPairUtil.PairOrientation.RF},
-                {"nojump outie", 1, 100, true, 101, 100, false, SamPairUtil.PairOrientation.RF},
-
-                {"forward tandem", 1, 100, true, 500, 100, true, SamPairUtil.PairOrientation.TANDEM},
-                {"reverse tandem", 1, 100, false, 500, 100, false, SamPairUtil.PairOrientation.TANDEM},
-                {"overlapping forward tandem", 1, 100, true, 50, 100, true, SamPairUtil.PairOrientation.TANDEM},
-                {"overlapping reverse tandem", 1, 100, false, 50, 100, false, SamPairUtil.PairOrientation.TANDEM},
-                {"second end enclosed forward tandem", 1, 100, true, 50, 50, true, SamPairUtil.PairOrientation.TANDEM},
-                {"second end enclosed reverse tandem", 1, 100, false, 50, 50, false, SamPairUtil.PairOrientation.TANDEM},
-                {"first end enclosed forward tandem", 1, 50, true, 1, 100, true, SamPairUtil.PairOrientation.TANDEM},
-                {"first end enclosed reverse tandem", 1, 50, false, 1, 100, false, SamPairUtil.PairOrientation.TANDEM},
-        };
-    }
-
-    @DataProvider(name = "testSetMateInfoMateCigar")
-    public Object[][] testSetMateInfoMateCigarDataProvider() {
-        /**
-         * @param testName
-         * @param read1Start
-         * @param read1Reverse
-         * @param read1Cigar
-         * @param read2Start
-         * @param read2Reverse
-         * @param read2Cigar
-         */
-        return new Object[][] {
-                {"50M/50M", 1, false, "50M", 500, true, "50M"},
-                {"50M/25M5I20M", 1, false, "50M", 500, true, "25M5I20M"},
-                {"25M5I20M/50M", 1, false, "25M5I20M", 500, true, "50M"},
-                {"50M/25M5D20M", 1, false, "50M", 500, true, "25M5D20M"},
-                {"25M5D20M/50M", 1, false, "25M5D20M", 500, true, "50M"},
-        };
-    }
-}
diff --git a/src/tests/java/net/sf/samtools/SamReaderSortTest.java b/src/tests/java/net/sf/samtools/SamReaderSortTest.java
deleted file mode 100755
index 6766272..0000000
--- a/src/tests/java/net/sf/samtools/SamReaderSortTest.java
+++ /dev/null
@@ -1,104 +0,0 @@
-package net.sf.samtools;
-
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.File;
-
-/**
- * Tests for the implementation of SAMRecordIterator in SAMFileReader
- *
- * @author ktibbett at broadinstitute.org
- */
-public class SamReaderSortTest {
-
-    public static final String COORDINATE_SORTED_FILE = "testdata/net/sf/samtools/coordinate_sorted.sam";
-    public static final String QUERYNAME_SORTED_FILE = "testdata/net/sf/samtools/queryname_sorted.sam";
-    public static final String QUERYNAME_SORTED_NO_HEADER_SORT = "testdata/net/sf/samtools/unsorted.sam";
-
-    @Test(expectedExceptions = IllegalStateException.class)
-    public void testSortsDisagree() throws Exception {
-        SAMRecordIterator it = new SAMFileReader(new File(COORDINATE_SORTED_FILE)).iterator();
-        try {
-            it.assertSorted(SAMFileHeader.SortOrder.queryname);
-            while(it.hasNext()) {
-                it.next();
-            }
-            Assert.fail("Queryname assertion should have failed on coordinate sorted file but didn't");
-        }
-        finally {
-            it.close();
-        }
-    }
-
-    @Test(dataProvider="validSorts")
-    public void testSortAssertionValid(String file, SAMFileHeader.SortOrder order) {
-        SAMRecordIterator it = new SAMFileReader(new File(file)).iterator();
-        try {
-            it.assertSorted(order);
-            while (it.hasNext()) {
-                it.next();
-            }
-        }
-        finally {
-            it.close();
-        }
-    }
-
-    @DataProvider(name="validSorts")
-    public Object[][] getValidSorts() {
-        return new Object[][] {
-            {COORDINATE_SORTED_FILE, SAMFileHeader.SortOrder.coordinate},
-            {QUERYNAME_SORTED_FILE, SAMFileHeader.SortOrder.queryname},
-            {QUERYNAME_SORTED_NO_HEADER_SORT, SAMFileHeader.SortOrder.queryname},
-            {COORDINATE_SORTED_FILE, SAMFileHeader.SortOrder.unsorted}
-        };
-    }
-
-
-    @Test(dataProvider="invalidSorts", expectedExceptions = IllegalStateException.class)
-    public void testSortAssertionFails(String file, SAMFileHeader.SortOrder order) throws Exception {
-        SAMRecordIterator it = new SAMFileReader(new File(file)).iterator();
-        try {
-            it.assertSorted(order);
-            while (it.hasNext()) {
-                it.next();
-            }
-            Assert.fail("Iterated successfully over " + file + " with invalid sort assertion: " + order.name());
-        }
-        finally {
-            it.close();
-        }
-    }
-
-    @DataProvider(name="invalidSorts")
-    public Object[][] getInvalidSorts() {
-        return new Object[][] {
-            {QUERYNAME_SORTED_NO_HEADER_SORT, SAMFileHeader.SortOrder.coordinate}
-        };
-    }
-}
diff --git a/src/tests/java/net/sf/samtools/seekablestream/SeekableBufferedStreamTest.java b/src/tests/java/net/sf/samtools/seekablestream/SeekableBufferedStreamTest.java
deleted file mode 100644
index 6d6c7f1..0000000
--- a/src/tests/java/net/sf/samtools/seekablestream/SeekableBufferedStreamTest.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package net.sf.samtools.seekablestream;
-
-import static org.testng.Assert.assertEquals;
-
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URL;
-
-public class SeekableBufferedStreamTest {
-
-//    private final File BAM_INDEX_FILE = new File("testdata/net/sf/samtools/BAMFileIndexTest/index_test.bam.bai");
-    private final File BAM_FILE = new File("testdata/net/sf/samtools/BAMFileIndexTest/index_test.bam");
-    private final String BAM_URL_STRING = "http://picard.sourceforge.net/testdata/index_test.bam";
-    private static File TestFile = new File("testdata/net/sf/samtools/seekablestream/megabyteZeros.dat");
-
-    /**
-     * Test reading across a buffer boundary (buffer size is 512000).   The test first reads a range of
-     * bytes using an unbuffered stream file stream,  then compares this to results from a buffered http stream.
-     *
-     * @throws IOException
-     */
-    @Test
-    public void testRandomRead() throws IOException {
-
-        int startPosition = 500000;
-        int length = 50000;
-
-        byte[] buffer1 = new byte[length];
-        SeekableStream unBufferedStream = new SeekableFileStream(BAM_FILE);
-        unBufferedStream.seek(startPosition);
-        int bytesRead = unBufferedStream.read(buffer1, 0, length);
-        assertEquals(length, bytesRead);
-
-        byte[] buffer2 = new byte[length];
-        SeekableStream bufferedStream = new SeekableBufferedStream(new SeekableHTTPStream(new URL(BAM_URL_STRING)));
-        bufferedStream.seek(startPosition);
-        bytesRead = bufferedStream.read(buffer2, 0, length);
-        assertEquals(length, bytesRead);
-
-        assertEquals(buffer1, buffer2);
-    }
-
-    /**
-     * Test an attempt to read past the end of the file.  The test file is 594,149 bytes in length.  The test
-     * attempts to read a 1000 byte block starting at position 594000.  A correct result would return 149 bytes.
-     *
-     * @throws IOException
-     */
-    @Test
-    public void testEOF() throws IOException {
-
-        int remainder = 149;
-        long fileLength = BAM_FILE.length();
-        long startPosition = fileLength - remainder;
-        int length = 1000;
-
-
-        byte[] buffer = new byte[length];
-        SeekableStream bufferedStream = new SeekableBufferedStream(new SeekableHTTPStream(new URL(BAM_URL_STRING)));
-        bufferedStream.seek(startPosition);
-        int bytesRead = bufferedStream.read(buffer, 0, length);
-        assertEquals(remainder, bytesRead);
-
-        // Subsequent reads should return -1
-        bytesRead = bufferedStream.read(buffer, 0, length);
-        assertEquals(-1, bytesRead);
-    }
-
-    @Test
-    public void testSkip() throws IOException {
-        final int[] BUFFER_SIZES = new int[]{8, 96, 1024, 8*1024, 16*1024, 96*1024, 48*1024};
-
-        for (final int bufferSize : BUFFER_SIZES) {
-            final SeekableBufferedStream in1 = new SeekableBufferedStream(new SeekableFileStream(BAM_FILE), bufferSize);
-            final SeekableBufferedStream in2 = new SeekableBufferedStream(new SeekableFileStream(BAM_FILE), bufferSize);
-
-            final int SIZE = 10000;
-            final byte[] bytes1 = new byte[SIZE];
-            final byte[] bytes2 = new byte[SIZE];
-
-            reallyRead(bytes1, in1);
-            reallyRead(bytes1, in1);
-            in1.skip(bytes1.length);
-            reallyRead(bytes1, in1);
-
-            reallyRead(bytes2, in2);
-            reallyRead(bytes2, in2);
-            in2.seek(bytes2.length * 3);
-            reallyRead(bytes2, in2);
-
-            in1.close();
-            in2.close();
-
-            Assert.assertEquals(bytes1, bytes2, "Error at buffer size " + bufferSize);
-        }
-    }
-
-    private int reallyRead(final byte[] bytes, final SeekableBufferedStream in) throws IOException {
-        int read = 0, total = 0;
-        do {
-            read = in.read(bytes, total, bytes.length-total);
-            total += read;
-        } while (total != bytes.length && read > 0);
-
-        return total;
-    }
-
-
-    @Test
-    public void testDivisableReads()throws IOException{
-
-        testReadsLength(1);
-        testReadsLength(2);
-        testReadsLength(4);
-        testReadsLength(5);
-        testReadsLength(10);
-        testReadsLength(20);
-        testReadsLength(50);
-        testReadsLength(100);
-
-    }
-
-    private void testReadsLength(final int length) throws IOException {
-
-        final int BUFFERED_STREAM_BUFFER_SIZE = 100;
-        final byte buffer[]=new byte[BUFFERED_STREAM_BUFFER_SIZE*10];
-        final SeekableFileStream fileStream = new SeekableFileStream(TestFile);
-        final SeekableBufferedStream  bufferedStream = new SeekableBufferedStream(fileStream,BUFFERED_STREAM_BUFFER_SIZE);
-
-        for( int i=0; i<10*BUFFERED_STREAM_BUFFER_SIZE/length ; ++i ){
-            assertEquals(bufferedStream.read(buffer, 0, length), length);
-        }
-    }
-
-}
diff --git a/src/tests/java/net/sf/samtools/seekablestream/SeekableFTPStreamTest.java b/src/tests/java/net/sf/samtools/seekablestream/SeekableFTPStreamTest.java
deleted file mode 100644
index dd75033..0000000
--- a/src/tests/java/net/sf/samtools/seekablestream/SeekableFTPStreamTest.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.seekablestream;
-
-import net.sf.samtools.seekablestream.SeekableFTPStream;
-import org.testng.Assert;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import java.io.IOException;
-import java.net.URL;
-
-/**
- * @author Jim Robinson
- * @since 10/3/11
- */
-public class SeekableFTPStreamTest {
-
-
-    static String urlString = "ftp://ftp.broadinstitute.org/pub/igv/TEST/test.txt";
-    static long fileSize = 27;
-    static byte[] expectedBytes = "abcdefghijklmnopqrstuvwxyz\n".getBytes();
-    SeekableFTPStream stream;
-
-    @BeforeMethod
-    public void setUp() throws IOException {
-        stream = new SeekableFTPStream(new URL(urlString));
-
-    }
-
-    @AfterMethod
-    public void tearDown() throws IOException {
-        stream.close();
-    }
-
-    @Test
-    public void testLength() throws Exception {
-        long length = stream.length();
-        Assert.assertEquals(fileSize, length);
-    }
-
-
-    /**
-     * Test a buffered read.  The buffer is much large than the file size,  assert that the desired # of bytes are read
-     *
-     * @throws Exception
-     */
-    @Test
-    public void testBufferedRead() throws Exception {
-
-        byte[] buffer = new byte[64000];
-        int nRead = stream.read(buffer);
-        Assert.assertEquals(fileSize, nRead);
-
-    }
-
-    /**
-     * Test requesting a range that extends beyond the end of the file
-     */
-
-    @Test
-    public void testRange() throws Exception {
-        stream.seek(20);
-        byte[] buffer = new byte[64000];
-        int nRead = stream.read(buffer);
-        Assert.assertEquals(fileSize - 20, nRead);
-
-    }
-
-    /**
-     * Test requesting a range that begins beyond the end of the file
-     */
-
-    @Test
-    public void testBadRange() throws Exception {
-        stream.seek(30);
-        byte[] buffer = new byte[64000];
-        int nRead = stream.read(buffer);
-        Assert.assertEquals(-1, nRead);
-    }
-
-
-}
-
-
diff --git a/src/tests/java/net/sf/samtools/seekablestream/SeekableFileStreamTest.java b/src/tests/java/net/sf/samtools/seekablestream/SeekableFileStreamTest.java
deleted file mode 100644
index 4fdef02..0000000
--- a/src/tests/java/net/sf/samtools/seekablestream/SeekableFileStreamTest.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.seekablestream;
-
-import net.sf.samtools.util.BufferedLineReader;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.io.File;
-
-/**
- * Created by IntelliJ IDEA.
- * User: jrobinso
- * Date: Dec 20, 2009
- * Time: 11:13:19 AM
- * To change this template use File | Settings | File Templates.
- */
-public class SeekableFileStreamTest {
-
-    @Test
-    public void testSeek() throws Exception {
-        String expectedLine = "ccccccccc";
-        File testFile = new File("testdata/tribble/seekTest.txt");
-        SeekableFileStream is = new SeekableFileStream(testFile);
-        is.seek(20);
-        BufferedLineReader reader = new BufferedLineReader(is);
-        String nextLine = reader.readLine();
-        Assert.assertEquals(expectedLine, nextLine);
-        reader.close();
-    }
-}
diff --git a/src/tests/java/net/sf/samtools/seekablestream/SeekableStreamFactoryTest.java b/src/tests/java/net/sf/samtools/seekablestream/SeekableStreamFactoryTest.java
deleted file mode 100644
index 66aeacc..0000000
--- a/src/tests/java/net/sf/samtools/seekablestream/SeekableStreamFactoryTest.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package net.sf.samtools.seekablestream;
-
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-public class SeekableStreamFactoryTest {
-    @Test
-    public void testIsFilePath() throws Exception {
-        Assert.assertEquals(SeekableStreamFactory.isFilePath("x"), true);
-        Assert.assertEquals(SeekableStreamFactory.isFilePath(""), true);
-        Assert.assertEquals(SeekableStreamFactory.isFilePath("http://broadinstitute.org"), false);
-        Assert.assertEquals(SeekableStreamFactory.isFilePath("https://broadinstitute.org"), false);
-        Assert.assertEquals(SeekableStreamFactory.isFilePath("ftp://broadinstitute.org"), false);
-    }
-}
diff --git a/src/tests/java/net/sf/samtools/util/BinaryCodecTest.java b/src/tests/java/net/sf/samtools/util/BinaryCodecTest.java
deleted file mode 100644
index 031e20b..0000000
--- a/src/tests/java/net/sf/samtools/util/BinaryCodecTest.java
+++ /dev/null
@@ -1,270 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.util;
-
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.io.*;
-
-
-/*
-  * The Broad Institute
-  * SOFTWARE COPYRIGHT NOTICE AGREEMENT
-  * This software and its documentation are copyright Jan 9, 2009 by the
-  * Broad Institute/Massachusetts Institute of Technology. All rights are reserved.
-  *
-  * This software is supplied without any warranty or guaranteed support whatsoever. Neither
-  * the Broad Institute nor MIT can be responsible for its use, misuse, or functionality.
-  */
-
-public class BinaryCodecTest {
-
-    @Test
-    public void testReadAndWrite() throws IOException {
-        final byte[] value = new byte[2];
-        value[0] = 1;
-        value[1] = 2;
-        //Writing to file
-        final File outputFile = File.createTempFile("temp", ".bin");
-        final DataOutputStream stream = new DataOutputStream(new FileOutputStream(outputFile));
-        final BinaryCodec codec = new BinaryCodec(stream);
-        codec.writeBytes(value);
-        codec.close();
-
-        //Reading from file
-        final byte[] valuesTwo = new byte[2];
-        valuesTwo[0] = 1;
-        valuesTwo[1] = 2;
-
-        final DataInputStream instream = new DataInputStream(new FileInputStream(outputFile));
-        final BinaryCodec readCodec = new BinaryCodec(instream);
-        final byte[] bytesFromBinaryFile = new byte[2];
-        readCodec.readBytes(bytesFromBinaryFile);
-        Assert.assertEquals(valuesTwo, bytesFromBinaryFile);
-        readCodec.close();
-    }
-
-    @Test
-    public void testReadAndWriteString() throws IOException {
-        final String value = "Test String to Write";
-
-        //Writing to file
-        final File outputFile = File.createTempFile("temp", ".bin");
-        final DataOutputStream stream = new DataOutputStream(new FileOutputStream(outputFile));
-        final BinaryCodec codec = new BinaryCodec(stream);
-        codec.writeString(value, true, false);
-        codec.close();
-
-        //Reading from file
-        final DataInputStream instream = new DataInputStream(new FileInputStream(outputFile));
-        final BinaryCodec readCodec = new BinaryCodec(instream);
-        final int stringLength = readCodec.readInt();
-        Assert.assertEquals(value.length(), stringLength);
-        final String s = readCodec.readString(stringLength);
-        Assert.assertEquals(value, s);
-        readCodec.close();
-    }
-
-    @Test
-    public void testReadAndWriteInt() throws IOException {
-        final int value = 42;
-
-        //Writing to file
-        final File outputFile = File.createTempFile("temp", ".bin");
-        final DataOutputStream stream = new DataOutputStream(new FileOutputStream(outputFile));
-        final BinaryCodec codec = new BinaryCodec(stream);
-        codec.writeInt(value);
-        codec.close();
-
-        //Reading from file
-        final DataInputStream instream = new DataInputStream(new FileInputStream(outputFile));
-        final BinaryCodec readCodec = new BinaryCodec(instream);
-        Assert.assertEquals(value, readCodec.readInt());
-        readCodec.close();
-    }
-
-    @Test
-    public void testReadAndWriteDouble() throws IOException {
-        final double value = 54.4;
-
-        final File outputFile = File.createTempFile("temp", ".bin");
-        final DataOutputStream stream = new DataOutputStream(new FileOutputStream(outputFile));
-        final BinaryCodec codec = new BinaryCodec(stream);
-        codec.writeDouble(value);
-        codec.close();
-
-        //Reading from file
-        final DataInputStream instream = new DataInputStream(new FileInputStream(outputFile));
-        final BinaryCodec readCodec = new BinaryCodec(instream);
-        Assert.assertEquals(value, readCodec.readDouble());
-        readCodec.close();
-    }
-
-    @Test
-    public void testReadAndWriteLong() throws IOException {
-        final long value = 42;
-
-        final File outputFile = File.createTempFile("temp", ".bin");
-        final DataOutputStream stream = new DataOutputStream(new FileOutputStream(outputFile));
-        final BinaryCodec codec = new BinaryCodec(stream);
-        codec.writeLong(value);
-        codec.close();
-
-        //Reading from file
-        final DataInputStream instream = new DataInputStream(new FileInputStream(outputFile));
-        final BinaryCodec readCodec = new BinaryCodec(instream);
-        Assert.assertEquals(value, readCodec.readLong());
-        readCodec.close();
-
-    }
-
-    @Test
-    public void testReadAndWriteFloat()  throws IOException{
-        final float value = 42.5F;
-
-        final File outputFile = File.createTempFile("temp", ".bin");
-        final DataOutputStream stream = new DataOutputStream(new FileOutputStream(outputFile));
-        final BinaryCodec codec = new BinaryCodec(stream);
-        codec.writeFloat(value);
-        codec.close();
-
-        //Reading from file
-        final DataInputStream instream = new DataInputStream(new FileInputStream(outputFile));
-        final BinaryCodec readCodec = new BinaryCodec(instream);
-        Assert.assertEquals(value, readCodec.readFloat());
-        readCodec.close();
-    }
-
-    @Test
-    public void testReadAndWriteBoolean()  throws IOException{
-
-        boolean values[] = {true, false};
-
-        for (boolean value : values) {
-            final File outputFile = File.createTempFile("temp", ".bin");
-            final DataOutputStream stream = new DataOutputStream(new FileOutputStream(outputFile));
-            final BinaryCodec codec = new BinaryCodec(stream);
-            codec.writeBoolean(value);
-            codec.close();
-
-            //Reading from file
-            final DataInputStream instream = new DataInputStream(new FileInputStream(outputFile));
-            final BinaryCodec readCodec = new BinaryCodec(instream);
-            Assert.assertEquals(value, readCodec.readBoolean());
-            readCodec.close();
-        }
-    }
-
-    @Test
-    public void testReadAndWriteMutlitpleData()  throws IOException{
-        final float fValue = 42.5F;
-        final String sValue = "TestString";
-
-        final File outputFile = File.createTempFile("temp", ".bin");
-        final DataOutputStream stream = new DataOutputStream(new FileOutputStream(outputFile));
-        final BinaryCodec codec = new BinaryCodec(stream);
-        codec.writeFloat(fValue);
-        codec.writeString(sValue, true, false);
-        codec.close();
-
-        //Reading from file
-        final DataInputStream instream = new DataInputStream(new FileInputStream(outputFile));
-        final BinaryCodec readCodec = new BinaryCodec(instream);
-        Assert.assertEquals(fValue, readCodec.readFloat());
-        final int stringLength = readCodec.readInt();
-        Assert.assertEquals(sValue, readCodec.readString(stringLength));
-        readCodec.close();
-    }
-
-    @Test
-    public void readPastEndOfFile() throws IOException{
-        final long startTime = System.currentTimeMillis();
-        int i = 0;
-
-        final File outputFile = File.createTempFile("temp", ".bin");
-        final DataOutputStream stream = new DataOutputStream(new FileOutputStream(outputFile));
-        final BinaryCodec codec = new BinaryCodec(stream);
-        while (i<100){
-            codec.writeInt(i);
-            i++;
-        }
-        codec.close();
-
-        final DataInputStream instream = new DataInputStream(new FileInputStream(outputFile));
-        final BinaryCodec readCodec = new BinaryCodec(instream);
-
-        System.out.println((System.currentTimeMillis() - startTime) + "ms to write");
-        int z = 0;
-        boolean reachedStatement = false;
-        while (z<1000) {
-            try {
-                Assert.assertEquals(z, readCodec.readInt());
-            } catch (Exception e) {
-               Assert.assertEquals(RuntimeEOFException.class, e.getClass());
-                reachedStatement = true;
-            }
-            z++;
-        }
-
-        Assert.assertTrue(reachedStatement);
-        readCodec.close();
-    }
-
-    @Test
-    public void timeTest() throws IOException{
-        final long startTime = System.currentTimeMillis();
-        int i = 0;
-
-        final File outputFile = File.createTempFile("temp", ".bin");
-        final DataOutputStream stream = new DataOutputStream(new FileOutputStream(outputFile));
-        final BinaryCodec codec = new BinaryCodec(stream);
-        while (i<100){
-            codec.writeInt(i);
-            i++;
-        }
-        codec.close();
-
-        final DataInputStream instream = new DataInputStream(new FileInputStream(outputFile));
-        final BinaryCodec readCodec = new BinaryCodec(instream);
-
-        System.out.println((System.currentTimeMillis() - startTime) + "ms to write");
-        int z = 0;
-        boolean reachedStatement = false;
-        while (z<1000) {
-            try {
-                Assert.assertEquals(z, readCodec.readInt());
-            } catch (Exception e) {
-               Assert.assertEquals(RuntimeEOFException.class, e.getClass());
-                reachedStatement = true;
-            }
-            z++;
-        }
-
-        Assert.assertTrue(reachedStatement);
-        readCodec.close();
-    }
-
-
-}
diff --git a/src/tests/java/net/sf/samtools/util/BlockCompressedFilePointerUtilTest.java b/src/tests/java/net/sf/samtools/util/BlockCompressedFilePointerUtilTest.java
deleted file mode 100644
index 027722e..0000000
--- a/src/tests/java/net/sf/samtools/util/BlockCompressedFilePointerUtilTest.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2010 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.util;
-
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-import org.testng.Assert;
-
-import java.util.ArrayList;
-import java.util.List;
-
-
-public class BlockCompressedFilePointerUtilTest
-{
-    @Test
-    public void basicTest() 
-    {
-        List<Long> pointers = new ArrayList<Long>();
-        pointers.add(makeFilePointer(0, 0));
-        pointers.add(makeFilePointer(0, BlockCompressedFilePointerUtil.MAX_OFFSET));
-        final long BIG_BLOCK_ADDRESS = 1L << 46;
-        pointers.add(makeFilePointer(BIG_BLOCK_ADDRESS-1, 0));
-        pointers.add(makeFilePointer(BIG_BLOCK_ADDRESS-1, BlockCompressedFilePointerUtil.MAX_OFFSET));
-        pointers.add(makeFilePointer(BIG_BLOCK_ADDRESS, 0));
-        pointers.add(makeFilePointer(BIG_BLOCK_ADDRESS, BlockCompressedFilePointerUtil.MAX_OFFSET));
-        pointers.add(makeFilePointer(BlockCompressedFilePointerUtil.MAX_BLOCK_ADDRESS, 0));
-        pointers.add(makeFilePointer(BlockCompressedFilePointerUtil.MAX_BLOCK_ADDRESS, BlockCompressedFilePointerUtil.MAX_OFFSET));
-        for (int i = 0; i < pointers.size() - 1; ++i) {
-            for (int j = i+1; j < pointers.size(); ++j) {
-                Assert.assertTrue(BlockCompressedFilePointerUtil.compare(pointers.get(i), pointers.get(j)) < 0,
-                        BlockCompressedFilePointerUtil.asString(pointers.get(i)) + " should be < " +
-                                BlockCompressedFilePointerUtil.asString(pointers.get(j)));
-                Assert.assertTrue(BlockCompressedFilePointerUtil.compare(pointers.get(j), pointers.get(i)) > 0,
-                        BlockCompressedFilePointerUtil.asString(pointers.get(j)) + " should be > " +
-                                BlockCompressedFilePointerUtil.asString(pointers.get(i)));
-            }
-        }
-        
-    }
-
-    /**
-     * Create the virtual file pointer, and also assert that is can be converted back into the input parameters.
-     * @param blockAddress
-     * @param blockOffset
-     * @return block compressed file pointer
-     */
-    private long makeFilePointer(long blockAddress, int blockOffset)
-    {
-        final long ret = BlockCompressedFilePointerUtil.makeFilePointer(blockAddress, blockOffset);
-        Assert.assertEquals(BlockCompressedFilePointerUtil.getBlockAddress(ret), blockAddress);
-        Assert.assertEquals(BlockCompressedFilePointerUtil.getBlockOffset(ret), blockOffset);
-        Assert.assertEquals(BlockCompressedFilePointerUtil.compare(ret, ret), 0);
-        return ret;
-    }
-
-    @Test(dataProvider = "badInputs", expectedExceptions = IllegalArgumentException.class)
-    public void negativeTests(long blockAddress, int blockOffset) {
-        BlockCompressedFilePointerUtil.makeFilePointer(blockAddress, blockOffset);
-        Assert.assertFalse(true, "Should not get here.");
-    }
-
-    @DataProvider(name="badInputs")
-    public Object[][]  badInputs() {
-        return new Object[][]{
-                {-1L, 0},
-                {0L, -1},
-                {BlockCompressedFilePointerUtil.MAX_BLOCK_ADDRESS+1, 0},
-                {0L, BlockCompressedFilePointerUtil.MAX_OFFSET+1}
-        };
-    }
-}
-
-/******************************************************************/
-/**************************[END OF BlockCompressedFilePointerUtilTest.java]*************************/
-/******************************************************************/
diff --git a/src/tests/java/net/sf/samtools/util/BlockCompressedOutputStreamTest.java b/src/tests/java/net/sf/samtools/util/BlockCompressedOutputStreamTest.java
deleted file mode 100644
index f4baa14..0000000
--- a/src/tests/java/net/sf/samtools/util/BlockCompressedOutputStreamTest.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.util;
-
-import org.testng.annotations.Test;
-import org.testng.Assert;
-
-import java.io.File;
-import java.io.BufferedReader;
-import java.io.InputStreamReader;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Random;
-
-public class BlockCompressedOutputStreamTest {
-
-    @Test
-    public void testBasic() throws Exception {
-        final File f = File.createTempFile("BCOST.", ".gz");
-        f.deleteOnExit();
-        final List<String> linesWritten = new ArrayList<String>();
-        System.out.println("Creating file " + f);
-        final BlockCompressedOutputStream bcos = new BlockCompressedOutputStream(f);
-        String s = "Hi, Mom!\n";
-        bcos.write(s.getBytes());
-        linesWritten.add(s);
-        s = "Hi, Dad!\n";
-        bcos.write(s.getBytes());
-        linesWritten.add(s);
-        bcos.flush();
-        final StringBuilder sb = new StringBuilder(BlockCompressedStreamConstants.DEFAULT_UNCOMPRESSED_BLOCK_SIZE * 2);
-        s = "1234567890123456789012345678901234567890123456789012345678901234567890\n";
-        while (sb.length() <= BlockCompressedStreamConstants.DEFAULT_UNCOMPRESSED_BLOCK_SIZE) {
-            sb.append(s);
-            linesWritten.add(s);
-        }
-        bcos.write(sb.toString().getBytes());
-        bcos.close();
-        final BlockCompressedInputStream bcis = new BlockCompressedInputStream(f);
-        final BufferedReader reader = new BufferedReader(new InputStreamReader(bcis));
-        String line;
-        for(int i = 0; (line = reader.readLine()) != null; ++i) {
-            Assert.assertEquals(line + "\n", linesWritten.get(i));
-        }
-    }
-
-    @Test
-    public void testOverflow() throws Exception {
-        final File f = File.createTempFile("BCOST.", ".gz");
-        f.deleteOnExit();
-        final List<String> linesWritten = new ArrayList<String>();
-        System.out.println("Creating file " + f);
-        final BlockCompressedOutputStream bcos = new BlockCompressedOutputStream(f);
-        Random r = new Random(15555);
-        final int INPUT_SIZE = 64 * 1024;
-        byte[] input = new byte[INPUT_SIZE];
-        r.nextBytes(input);
-        bcos.write(input);
-        bcos.close();
-
-        final BlockCompressedInputStream bcis = new BlockCompressedInputStream(f);
-        byte[] output = new byte[INPUT_SIZE];
-        int len;
-        int i = 0;
-        while ((len = bcis.read(output, 0, output.length)) != -1) {
-            for (int j = 0; j < len; j++) {
-               Assert.assertEquals(output[j], input[i++]);
-            }
-        }
-        Assert.assertEquals(i, INPUT_SIZE);
-    }
-
-    // PIC-393 exception closing BGZF stream opened to /dev/null
-    // I don't think this will work on Windows, because /dev/null doesn't work
-    @Test(groups = "broken")
-    public void testDevNull() throws Exception {
-        final BlockCompressedOutputStream bcos = new BlockCompressedOutputStream("/dev/null");
-        bcos.write("Hi, Mom!".getBytes());
-        bcos.close();
-    }
-}
diff --git a/src/tests/java/net/sf/samtools/util/BlockCompressedTerminatorTest.java b/src/tests/java/net/sf/samtools/util/BlockCompressedTerminatorTest.java
deleted file mode 100644
index a1c8b15..0000000
--- a/src/tests/java/net/sf/samtools/util/BlockCompressedTerminatorTest.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.util;
-
-import org.testng.annotations.Test;
-import org.testng.Assert;
-
-import java.io.File;
-
-/**
- * @author alecw at broadinstitute.org
- */
-public class BlockCompressedTerminatorTest {
-    private static final File TEST_DATA_DIR = new File("testdata/net/sf/samtools/util");
-
-    @Test
-    public void testFileWithTerminator() throws Exception {
-        final File tmpCompressedFile = File.createTempFile("test.", ".bgzf");
-        tmpCompressedFile.deleteOnExit();
-        final BlockCompressedOutputStream os = new BlockCompressedOutputStream(tmpCompressedFile);
-        os.write("Hi, Mom!\n".getBytes());
-        os.close();
-        Assert.assertEquals(BlockCompressedInputStream.checkTermination(tmpCompressedFile),
-                BlockCompressedInputStream.FileTermination.HAS_TERMINATOR_BLOCK);
-    }
-
-    @Test
-    public void testValidFileWithoutTerminator() throws Exception {
-        Assert.assertEquals(BlockCompressedInputStream.checkTermination(new File(TEST_DATA_DIR, "no_bgzf_terminator.bam")),
-                BlockCompressedInputStream.FileTermination.HAS_HEALTHY_LAST_BLOCK);
-    }
-
-    @Test
-    public void testDefectiveFile() throws Exception {
-        Assert.assertEquals(BlockCompressedInputStream.checkTermination(new File(TEST_DATA_DIR, "defective_bgzf.bam")),
-                BlockCompressedInputStream.FileTermination.DEFECTIVE);
-    }
-}
diff --git a/src/tests/java/net/sf/samtools/util/Iso8601DateTest.java b/src/tests/java/net/sf/samtools/util/Iso8601DateTest.java
deleted file mode 100644
index 1768e70..0000000
--- a/src/tests/java/net/sf/samtools/util/Iso8601DateTest.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.util;
-
-import org.testng.annotations.Test;
-import org.testng.Assert;
-
-import java.util.Date;
-
-/**
- * @author alecw at broadinstitute.org
- */
-public class Iso8601DateTest {
-    @Test
-    public void testBasic() {
-        final String dateStr = "2008-12-15";
-        Iso8601Date first = new Iso8601Date(dateStr);
-        String firstFormatted = first.toString();
-        Iso8601Date second = new Iso8601Date(firstFormatted);
-        Assert.assertEquals(first, second);
-        String secondFormatted = second.toString();
-        Assert.assertEquals(firstFormatted, secondFormatted);
-    }
-
-    @Test
-    public void testMillisecondTruncation() {
-        // Create a Date with milliseconds
-        final Date now = new Date();
-        if (now.getTime() % 1000 == 0) {
-            now.setTime(now.getTime() + 3);
-        }
-        Iso8601Date isoDate = new Iso8601Date(now);
-        Assert.assertEquals(isoDate.getTime() % 1000, 0);
-        Assert.assertEquals(isoDate.getTime() / 1000, now.getTime() / 1000);
-    }
-}
diff --git a/src/tests/java/net/sf/samtools/util/IupacTest.java b/src/tests/java/net/sf/samtools/util/IupacTest.java
deleted file mode 100644
index 6f55560..0000000
--- a/src/tests/java/net/sf/samtools/util/IupacTest.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2011 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.util;
-
-import net.sf.samtools.*;
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.util.Arrays;
-
-public class IupacTest {
-    @Test(dataProvider = "basicDataProvider")
-    public void basic(final String tempFileExtension) throws Exception {
-        final File outputFile = File.createTempFile("iupacTest.", tempFileExtension);
-        outputFile.deleteOnExit();
-        final SAMFileWriter writer = new SAMFileWriterFactory().makeSAMOrBAMWriter(new SAMFileHeader(), false, outputFile);
-        final String bases1 = "=ACMGRSVTWYHKDBNA";
-        final String bases2 = "A=ACMGRSVTWYHKDBN"; // Test both high-order and low-order base encoding.
-        final byte[] quals = new byte[bases1.length()];
-        Arrays.fill(quals, (byte)20);
-        final String[] reads = {bases1,  bases1.toLowerCase(), bases2, bases2.toLowerCase()};
-        for (int i = 0; i < reads.length; ++i) {
-            final SAMRecord rec = new SAMRecord(writer.getFileHeader());
-            rec.setReadName("read" + i);
-            rec.setReadUnmappedFlag(true);
-            rec.setReadString(reads[i]);
-            rec.setBaseQualities(quals);
-            writer.addAlignment(rec);
-        }
-        writer.close();
-        final SAMFileReader reader = new SAMFileReader(outputFile);
-        final SAMRecordIterator it = reader.iterator();
-        for (int i = 0; i < reads.length; ++i) {
-            final SAMRecord rec = it.next();
-            Assert.assertEquals(rec.getReadString(), reads[i].toUpperCase());
-        }
-        reader.close();
-    }
-
-    @DataProvider(name = "basidDataProvider")
-    public Object[][] basicDataProvider() {
-        return new Object[][] {
-                {BamFileIoUtils.BAM_FILE_EXTENSION},
-                {".sam"}
-        };
-    }
-}
diff --git a/src/tests/java/net/sf/samtools/util/RelativeIso8601DateTest.java b/src/tests/java/net/sf/samtools/util/RelativeIso8601DateTest.java
deleted file mode 100644
index f4a91f0..0000000
--- a/src/tests/java/net/sf/samtools/util/RelativeIso8601DateTest.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package net.sf.samtools.util;
-
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
-
-/** @author mccowan */
-
-public class RelativeIso8601DateTest {
-    @Test
-    public void testLazyInstance() {
-        final RelativeIso8601Date lazy = RelativeIso8601Date.generateLazyNowInstance();
-        Assert.assertEquals(lazy.toString(), RelativeIso8601Date.LAZY_NOW_LABEL);
-        Assert.assertEquals(lazy.toString(), RelativeIso8601Date.LAZY_NOW_LABEL);
-        Assert.assertEquals(lazy.toString(), RelativeIso8601Date.LAZY_NOW_LABEL);
-        Assert.assertEquals((double) lazy.getTime(), (double) System.currentTimeMillis(), 2000d); // Up to 2 seconds off; iso truncates milliseconds.
-        // Assert no exception thrown; this should be valid, because toString should now return an iso-looking date.
-        new RelativeIso8601Date(lazy.toString());
-    }
-
-    @Test
-    public void testNonLazyInstance() {
-        // Test both constructor methods
-        final List<RelativeIso8601Date> testDates = Arrays.<RelativeIso8601Date>asList(
-                new RelativeIso8601Date(new Date()),
-                new RelativeIso8601Date(new Iso8601Date(new Date()).toString())
-        );
-
-        for (final RelativeIso8601Date nonLazy : testDates) {
-            Assert.assertFalse(nonLazy.toString().equals(RelativeIso8601Date.LAZY_NOW_LABEL));
-            Assert.assertEquals((double) nonLazy.getTime(), (double) System.currentTimeMillis(), 1d);
-            // Assert no exception thrown; this should be valid, because toString return an iso-looking date.
-            new RelativeIso8601Date(nonLazy.toString());
-        }
-    }
-}
diff --git a/src/tests/java/net/sf/samtools/util/SequenceUtilTest.java b/src/tests/java/net/sf/samtools/util/SequenceUtilTest.java
deleted file mode 100644
index d0c40f8..0000000
--- a/src/tests/java/net/sf/samtools/util/SequenceUtilTest.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.util;
-
-import net.sf.samtools.*;
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-/**
- * @author alecw at broadinstitute.org
- */
-public class SequenceUtilTest {
-    private static final String HEADER = "@HD\tVN:1.0\tSO:unsorted\n";
-    private static final String SEQUENCE_NAME=
-        "@SQ\tSN:phix174.seq\tLN:5386\tUR:/seq/references/PhiX174/v0/PhiX174.fasta\tAS:PhiX174\tM5:3332ed720ac7eaa9b3655c06f6b9e196";
-
-    @Test
-    public void testExactMatch() {
-        final SAMSequenceDictionary sd1 = makeSequenceDictionary(5386, "/seq/references/PhiX174/v0/PhiX174.fasta",
-                "3332ed720ac7eaa9b3655c06f6b9e196");
-        final SAMSequenceDictionary sd2 = makeSequenceDictionary(5386, "/seq/references/PhiX174/v0/PhiX174.fasta",
-                "3332ed720ac7eaa9b3655c06f6b9e196");
-        SequenceUtil.assertSequenceDictionariesEqual(sd1, sd2);
-    }
-
-    @Test(expectedExceptions = SequenceUtil.SequenceListsDifferException.class)
-    public void testMismatch() {
-        final SAMSequenceDictionary sd1 = makeSequenceDictionary(5386, "/seq/references/PhiX174/v0/PhiX174.fasta",
-                "3332ed720ac7eaa9b3655c06f6b9e196");
-        final SAMSequenceDictionary sd2 = makeSequenceDictionary(5386, "/seq/references/PhiX174/v0/PhiX174.fasta",
-                "deadbeef");
-        SequenceUtil.assertSequenceDictionariesEqual(sd1, sd2);
-        Assert.fail();
-    }
-
-    @Test
-    public void testFileColonDifference() {
-        final SAMSequenceDictionary sd1 = makeSequenceDictionary(5386, "/seq/references/PhiX174/v0/PhiX174.fasta",
-                "3332ed720ac7eaa9b3655c06f6b9e196");
-        final SAMSequenceDictionary sd2 = makeSequenceDictionary(5386, "file:/seq/references/PhiX174/v0/PhiX174.fasta",
-                "3332ed720ac7eaa9b3655c06f6b9e196");
-        SequenceUtil.assertSequenceDictionariesEqual(sd1, sd2);
-    }
-
-    @Test
-    public void testURDifferent() {
-        final SAMSequenceDictionary sd1 = makeSequenceDictionary(5386, "/seq/references/PhiX174/v0/PhiX174.fasta",
-                "3332ed720ac7eaa9b3655c06f6b9e196");
-        final SAMSequenceDictionary sd2 = makeSequenceDictionary(5386, "file:/seq/references/PhiX174/v1/PhiX174.fasta",
-                "3332ed720ac7eaa9b3655c06f6b9e196");
-        SequenceUtil.assertSequenceDictionariesEqual(sd1, sd2);
-    }
-
-    private SAMSequenceDictionary makeSequenceDictionary(final int length, final String ur, final String m5) {
-        final String s = HEADER +
-                String.format("@SQ\tSN:phix174.seq\tLN:%d\tUR:%s\tAS:PhiX174\tM5:%s\n", length, ur, m5);
-        return new SAMTextHeaderCodec().decode(new StringLineReader(s), null).getSequenceDictionary();
-    }
-
-    @Test(dataProvider = "makeReferenceFromAlignment")
-    public void testMakeReferenceFromAlignment(final String seq, final String cigar, final String md,
-                                               boolean includeReferenceBasesForDeletions,
-                                               final String expectedReference) {
-        final SAMRecord rec = new SAMRecord(null);
-        rec.setReadName("test");
-        rec.setReadString(seq);
-        rec.setCigarString(cigar);
-        rec.setAttribute(SAMTag.MD.name(), md);
-        final byte[] refBases = SequenceUtil.makeReferenceFromAlignment(rec, includeReferenceBasesForDeletions);
-        Assert.assertEquals(StringUtil.bytesToString(refBases), expectedReference);
-    }
-
-    @DataProvider(name = "makeReferenceFromAlignment")
-    public Object[][] testMakeReferenceFromAlignmentDataProvider() {
-        return new Object[][] {
-               {"ACGTACGTACGT", "12M2H", "4GAAA4", true, "ACGTGAAAACGT"},
-                {"ACGTACGTACGT", "2H12M", "12", false, "ACGTACGTACGT"},
-                {"ACGTACGTACGT", "4M4I4M2H", "8", false, "ACGT----ACGT"},
-                {"ACGTACGTACGT", "2S4M2I4M2S", "8", false, "00GTAC--ACGT00"},
-                {"ACGTACGTACGT", "6M2D6M2H", "4GA^TT0TG4", true, "ACGTGATTTGACGT"},
-                {"ACGTACGTACGT", "6M2D6M2H", "4GA^TT0TG4", false, "ACGTGATGACGT"},
-                // When CIGAR has N, MD will not have skipped bases.
-                {"ACGTACGTACGT", "6M2N6M2H", "4GA0TG4", true, "ACGTGANNTGACGT"},
-                {"ACGTACGTACGT", "6M2N6M2H", "4GA0TG4", false, "ACGTGATGACGT"},
-                {"ACGTACGTACGT", "6M2N6M2H", "4GATG4", true, "ACGTGANNTGACGT"},
-                {"ACGTACGTACGT", "6M2N6M2H", "4GATG4", false, "ACGTGATGACGT"},
-        };
-    }
-
-    @Test(dataProvider = "countInsertedAndDeletedBasesTestCases")
-    public void testCountInsertedAndDeletedBases(final String cigarString, final int insertedBases, final int deletedBases) {
-        final TextCigarCodec codec = new TextCigarCodec();
-        final Cigar cigar = codec.decode(cigarString);
-        Assert.assertEquals(SequenceUtil.countInsertedBases(cigar), insertedBases);
-        Assert.assertEquals(SequenceUtil.countDeletedBases(cigar), deletedBases);
-    }
-
-    @DataProvider(name = "countInsertedAndDeletedBasesTestCases")
-    public Object[][] countInsertedAndDeletedBasesTestCases() {
-        return new Object[][] {
-                {"2H2S32M", 0, 0},
-                {"2H2S32M12I2M2I3M", 14, 0},
-                {"32M2D10M", 0, 2},
-                {"32M2D10M3D1M", 0, 5},
-                {"2H2S32M12I2M3D1M2I3M2D1M", 14, 5}
-        };
-    }
-}
diff --git a/src/tests/java/net/sf/samtools/util/SortingCollectionTest.java b/src/tests/java/net/sf/samtools/util/SortingCollectionTest.java
deleted file mode 100644
index 64ae3d1..0000000
--- a/src/tests/java/net/sf/samtools/util/SortingCollectionTest.java
+++ /dev/null
@@ -1,232 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.util;
-
-import org.testng.Assert;
-import org.testng.annotations.AfterTest;
-import org.testng.annotations.BeforeTest;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.nio.ByteBuffer;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.Iterator;
-import java.util.Random;
-
-public class SortingCollectionTest {
-    // Create a separate directory for files so it is possible to confirm that the directory is emptied
-    private final File tmpDir = new File(System.getProperty("java.io.tmpdir") + "/" + System.getProperty("user.name"), 
-            "SortingCollectionTest");
-    @BeforeTest void setup() {
-        // Clear out any existing files if the directory exists
-        if (tmpDir.exists()) {
-            for (final File f : tmpDir.listFiles()) {
-                f.delete();
-            }
-        }
-        tmpDir.mkdirs();
-    }
-
-    @AfterTest void tearDown() {
-        System.err.println("In SortingCollectionTest.tearDown.  tmpDir: " + tmpDir);
-        for (final File f : tmpDir.listFiles()) {
-            f.delete();
-        }
-        tmpDir.delete();
-    }
-
-    private boolean tmpDirIsEmpty() {
-        System.err.println("In SortingCollectionTest.tmpDirIsEmpty.  tmpDir: " + tmpDir);
-        return tmpDir.listFiles().length == 0;
-    }
-
-    @DataProvider(name = "test1")
-    public Object[][] createTestData() {
-        return new Object[][] {
-                {"empty", 0, 100},
-                {"less than threshold", 100, 200},
-                {"greater than threshold", 550, 100},
-                {"threshold multiple", 600, 100},
-                {"threshold multiple plus one", 101, 100},
-                {"exactly threshold", 100, 100},
-        };
-    }
-
-    /**
-     * Generate some strings, put into SortingCollection, confirm that the right number of
-     * Strings come out, and in the right order.
-     * @param numStringsToGenerate
-     * @param maxRecordsInRam
-     */
-    @Test(dataProvider = "test1")
-    public void testPositive(final String testName, final int numStringsToGenerate, final int maxRecordsInRam) {
-        final String[] strings = new String[numStringsToGenerate];
-        int numStringsGenerated = 0;
-        final SortingCollection<String> sortingCollection = makeSortingCollection(maxRecordsInRam);
-        for (final String s : new RandomStringGenerator(numStringsToGenerate)) {
-            sortingCollection.add(s);
-            strings[numStringsGenerated++] = s;
-        }
-        Arrays.sort(strings, new StringComparator());
-
-        Assert.assertEquals(tmpDirIsEmpty(), numStringsToGenerate <= maxRecordsInRam);
-        sortingCollection.setDestructiveIteration(false);
-        assertIteratorEqualsList(strings, sortingCollection);
-        assertIteratorEqualsList(strings, sortingCollection);
-        
-        sortingCollection.cleanup();
-        Assert.assertEquals(tmpDir.list().length, 0);
-    }
-
-    private void assertIteratorEqualsList(final String[] strings, final SortingCollection<String> sortingCollection) {
-        int i = 0;
-        for (final String s : sortingCollection) {
-            Assert.assertEquals(s, strings[i++]);
-        }
-        Assert.assertEquals(i, strings.length);
-    }
-
-    private SortingCollection<String> makeSortingCollection(final int maxRecordsInRam) {
-        return SortingCollection.newInstance(String.class, new StringCodec(), new StringComparator(),
-                maxRecordsInRam, tmpDir);
-    }
-
-    /**
-     * Generate pseudo-random Strings for testing
-     */
-    static class RandomStringGenerator implements Iterable<String>, Iterator<String> {
-        Random random = new Random(0);
-        int numElementsToGenerate;
-        int numElementsGenerated = 0;
-
-        /**
-         * @param numElementsToGenerate Iteration ends after this many have been generated.
-         */
-        RandomStringGenerator(final int numElementsToGenerate) {
-            this.numElementsToGenerate = numElementsToGenerate;
-        }
-
-        public Iterator<String> iterator() {
-            return this;
-        }
-
-        public boolean hasNext() {
-            return numElementsGenerated < numElementsToGenerate;
-        }
-
-        public String next() {
-            ++numElementsGenerated;
-            return Integer.toString(random.nextInt());
-        }
-
-        public void remove() {
-            throw new UnsupportedOperationException();
-        }
-    }
-
-    static class StringComparator implements Comparator<String> {
-
-        public int compare(final String s, final String s1) {
-            return s.compareTo(s1);
-        }
-    }
-
-    static class StringCodec implements SortingCollection.Codec<String> {
-        ByteBuffer byteBuffer = ByteBuffer.allocate(4);
-        OutputStream os;
-        InputStream is;
-
-        public SortingCollection.Codec<String> clone() {
-            return new StringCodec();
-        }
-
-        /**
-         * Where to write encoded output
-         *
-         * @param os
-         */
-        public void setOutputStream(final OutputStream os) {
-            this.os = os;
-        }
-
-        /**
-         * Where to read encoded input from
-         *
-         * @param is
-         */
-        public void setInputStream(final InputStream is) {
-            this.is = is;
-        }
-
-        /**
-         * Write object to file
-         *
-         * @param val what to write
-         */
-        public void encode(final String val) {
-            try {
-                byteBuffer.clear();
-                byteBuffer.putInt(val.length());
-                os.write(byteBuffer.array());
-                os.write(val.getBytes());
-            } catch (IOException e) {
-                throw new RuntimeIOException(e);
-            }
-        }
-
-        /**
-         * Read the next record from the input stream and convert into a java object.
-         *
-         * @return null if no more records.  Should throw exception if EOF is encountered in the middle of
-         *         a record.
-         */
-        public String decode() {
-            try {
-                byteBuffer.clear();
-                int bytesRead = is.read(byteBuffer.array());
-                if (bytesRead == -1) {
-                    return null;
-                }
-                if (bytesRead != 4) {
-                    throw new RuntimeException("Unexpected EOF in middle of record");
-                }
-                byteBuffer.limit(4);
-                final int length = byteBuffer.getInt();
-                final byte[] buf = new byte[length];
-                bytesRead = is.read(buf);
-                if (bytesRead != length) {
-                    throw new RuntimeException("Unexpected EOF in middle of record");
-                }
-                return new String(buf);
-            } catch (IOException e) {
-                throw new RuntimeIOException(e);
-            }
-        }
-    }
-}
diff --git a/src/tests/java/net/sf/samtools/util/SortingLongCollectionTest.java b/src/tests/java/net/sf/samtools/util/SortingLongCollectionTest.java
deleted file mode 100644
index 7ccaa5c..0000000
--- a/src/tests/java/net/sf/samtools/util/SortingLongCollectionTest.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.util;
-
-import org.testng.annotations.BeforeTest;
-import org.testng.annotations.AfterTest;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-import org.testng.Assert;
-
-import java.io.File;
-import java.util.Arrays;
-import java.util.Random;
-
-/**
- * @author alecw at broadinstitute.org
- */
-public class SortingLongCollectionTest {
-    // Create a separate directory for files so it is possible to confirm that the directory is emptied
-    private final File tmpDir = new File(System.getProperty("java.io.tmpdir") + "/" + System.getProperty("user.name"),
-            "SortingCollectionTest");
-
-    @BeforeTest
-    void setup() {
-        // Clear out any existing files if the directory exists
-        if (tmpDir.exists()) {
-            for (final File f : tmpDir.listFiles()) {
-                f.delete();
-            }
-        }
-        tmpDir.mkdir();
-    }
-
-    @AfterTest
-    void tearDown() {
-        if (!tmpDir.exists()) {
-            // I don't know why it wouldn't exist, but sometimes it doesn't, and it causes the unit test
-            // to fail.  AW 20-May-2009
-            return;
-        }
-        for (final File f : tmpDir.listFiles()) {
-            f.delete();
-        }
-        tmpDir.delete();
-    }
-
-    private boolean tmpDirIsEmpty() {
-        return tmpDir.listFiles().length == 0;
-    }
-
-    @DataProvider(name = "test1")
-    public Object[][] createTestData() {
-        return new Object[][] {
-                {"empty", 0, 100},
-                {"less than threshold", 100, 200},
-                {"greater than threshold", 550, 100},
-                {"threshold multiple", 600, 100},
-                {"threshold multiple plus one", 101, 100},
-                {"exactly threshold", 100, 100},
-        };
-    }
-
-    /**
-     * Generate some values, put into SortingLongCollection, confirm that the right number of
-     * values come out, and in the right order.
-     * @param numValuesToGenerate
-     * @param maxValuesInRam
-     */
-    @Test(dataProvider = "test1")
-    public void testPositive(final String testName, final int numValuesToGenerate, final int maxValuesInRam) {
-        final long[] values = new long[numValuesToGenerate];
-        int numStringsGenerated = 0;
-        final SortingLongCollection sortingCollection = new SortingLongCollection(maxValuesInRam, tmpDir);
-        final Random valueGenerator = new Random(123);
-        for (int i = 0; i < numValuesToGenerate; ++i) {
-            final long value = valueGenerator.nextLong();
-            sortingCollection.add(value);
-            values[numStringsGenerated++] = value;
-        }
-        Arrays.sort(values);
-
-        Assert.assertEquals(tmpDirIsEmpty(), numValuesToGenerate <= maxValuesInRam);
-        assertIteratorEqualsList(values, sortingCollection);
-
-        sortingCollection.cleanup();
-        Assert.assertTrue(tmpDirIsEmpty());
-    }
-
-    private void assertIteratorEqualsList(final long[] values, final SortingLongCollection sortingCollection) {
-        int i = 0;
-        sortingCollection.doneAddingStartIteration();
-        while (sortingCollection.hasNext()) {
-            Assert.assertEquals(sortingCollection.next(), values[i++], "values failed.  i: " + (i-1) + "; values[i]" + values[i-1]);
-        }
-        Assert.assertEquals(i, values.length);
-    }
-}
diff --git a/src/tests/java/net/sf/samtools/util/StringLineReaderTest.java b/src/tests/java/net/sf/samtools/util/StringLineReaderTest.java
deleted file mode 100644
index f4db1d6..0000000
--- a/src/tests/java/net/sf/samtools/util/StringLineReaderTest.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.util;
-
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-public class StringLineReaderTest {
-
-    private static final String[] TERMINATORS = {"\r", "\n", "\r\n"};
-    private static final boolean[] LAST_LINE_TERMINATED = {false, true};
-
-    enum EmptyLineState {
-        FIRST_LINE, LAST_LINE, MIDDLE_LINE, COMPLETELY_EMPTY
-    }
-
-    /**
-     * Test a bunch of combinations instead of writing a method for each.
-     */
-    @Test
-    public void testBasic() {
-        for (final String terminator : TERMINATORS) {
-            for (final boolean lastLineTerminated : LAST_LINE_TERMINATED) {
-                for (final EmptyLineState emptyLineState : EmptyLineState.values()) {
-                    if (emptyLineState == EmptyLineState.COMPLETELY_EMPTY) {
-                        emptyTestHelper(terminator, lastLineTerminated);
-                    } else {
-                        testHelper(terminator, lastLineTerminated, emptyLineState);
-                    }
-                }
-            }
-        }
-    }
-
-    /**
-     * various test cases where there is no input, except perhaps a line terminator
-     * @param terminator what the terminator should be in the input
-     * @param lastLineTerminated does the input have a terminator
-     */
-    private void emptyTestHelper(final String terminator, final boolean lastLineTerminated) {
-        final String input;
-        if (lastLineTerminated) {
-            input = terminator;
-        } else {
-            input = "";
-        }
-        final StringLineReader slr = new StringLineReader(input);
-        final String output = slr.readLine();
-        if (lastLineTerminated) {
-            Assert.assertEquals(output, "");
-        }
-        Assert.assertNull(slr.readLine());
-    }
-
-    /**
-     * Test a variety of test cases in which there is more than one line.
-     * @param terminator to use in the input
-     * @param lastLineTerminated should the input end with a terminator
-     * @param emptyLineState where in the input should an empty line be.
-     */
-    private void testHelper(final String terminator, final boolean lastLineTerminated, final EmptyLineState emptyLineState) {
-        final String[] lines = new String[3];
-        if (emptyLineState == EmptyLineState.FIRST_LINE) {
-            lines[0] = "";
-            lines[1] = "Hi, Mom!";
-            lines[2] = "Hi, Dad?";
-        } else if (emptyLineState == EmptyLineState.LAST_LINE) {
-            lines[0] = "Hi, Dad?";
-            lines[1] = "Hi, Mom!";
-            lines[2] = "";
-        } else  if (emptyLineState == EmptyLineState.MIDDLE_LINE) {
-            lines[0] = "Hi, Dad?";
-            lines[1] = "";
-            lines[2] = "Hi, Mom!";
-        }
-        String input = StringUtil.join(terminator, lines);
-        if (lastLineTerminated) {
-            input = input.concat(terminator);
-        }
-        final StringLineReader slr = new StringLineReader(input);
-        for (int i = 0; i < lines.length - 1; ++i) {
-            final String s = slr.readLine();
-            String expected = lines[i];
-            Assert.assertEquals(s, expected);
-        }
-
-        // Last line may need to be handled specially
-        String s = slr.readLine();
-        if (!lastLineTerminated && emptyLineState == EmptyLineState.LAST_LINE) {
-            Assert.assertNull(s);
-        } else {
-            String expected = lines[lines.length - 1];
-            Assert.assertEquals(s, expected);
-        }
-        s = slr.readLine();
-        Assert.assertNull(s);
-    }
-}
diff --git a/src/tests/java/net/sf/samtools/util/StringUtilTest.java b/src/tests/java/net/sf/samtools/util/StringUtilTest.java
deleted file mode 100644
index dc37f6f..0000000
--- a/src/tests/java/net/sf/samtools/util/StringUtilTest.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2009 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package net.sf.samtools.util;
-
-import org.testng.annotations.Test;
-import org.testng.annotations.DataProvider;
-import org.testng.Assert;
-
-/**
- * @author alecw at broadinstitute.org
- */
-public class StringUtilTest {
-    @Test(dataProvider = "provider")
-    public void testSplit(final String input, final String[] expectedResult, final boolean concatenateExcess) {
-        String[] ret = new String[expectedResult.length];
-        int tokensExpected;
-        for (tokensExpected = 0; tokensExpected < expectedResult.length && expectedResult[tokensExpected] != null;
-             ++tokensExpected) {
-        }
-        final int tokensFound;
-        if (concatenateExcess) {
-            tokensFound = StringUtil.splitConcatenateExcessTokens(input, ret, ':');
-        } else {
-           tokensFound = StringUtil.split(input, ret, ':');
-        }
-        Assert.assertEquals(tokensFound, tokensExpected);
-        Assert.assertEquals(ret, expectedResult);
-    }
-
-    @DataProvider(name="provider")
-    public Object[][] splitScenarios() {
-        return new Object[][] {
-                {"A:BB:C", new String[]{"A", "BB", "C"}, false},
-                {"A:BB:C", new String[]{"A", "BB", "C"}, true},
-                {"A:BB", new String[]{"A", "BB", null}, false},
-                {"A:BB", new String[]{"A", "BB", null}, true},
-                {"A:BB:", new String[]{"A", "BB", null}, false},
-                {"A:BB:", new String[]{"A", "BB", null}, true},
-                {"A:BB:C:DDD", new String[]{"A", "BB", "C"}, false},
-                {"A:BB:C:DDD", new String[]{"A", "BB", "C:DDD"}, true},
-                {"A:", new String[]{"A", null, null}, false},
-                {"A:", new String[]{"A", null, null}, true},
-                {"A", new String[]{"A", null, null}, false},
-                {"A", new String[]{"A", null, null}, true},
-                {"A:BB:C", new String[]{"A", "BB", "C"}, false},
-                {"A:BB:C:", new String[]{"A", "BB", "C:"}, true}, 
-        };
-    }
-}
diff --git a/src/tests/java/org/broad/tribble/AbstractFeatureReaderTest.java b/src/tests/java/org/broad/tribble/AbstractFeatureReaderTest.java
deleted file mode 100644
index 0f409f6..0000000
--- a/src/tests/java/org/broad/tribble/AbstractFeatureReaderTest.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package org.broad.tribble;
-
-import org.broad.tribble.bed.BEDCodec;
-import org.broad.tribble.bed.BEDFeature;
-import org.broad.tribble.readers.LineIterator;
-import org.broadinstitute.variant.VariantBaseTest;
-import org.broadinstitute.variant.variantcontext.VariantContext;
-import org.broadinstitute.variant.vcf.VCFCodec;
-import org.testng.annotations.Test;
-
-import java.io.IOException;
-
-import static org.testng.Assert.*;
-
-/**
- * @author jacob
- * @date 2013-Apr-10
- */
-public class AbstractFeatureReaderTest {
-
-    final static String HTTP_INDEXED_VCF_PATH = "http://www.broadinstitute.org/~picard/testdata/ex2.vcf";
-    final static String LOCAL_MIRROR_HTTP_INDEXED_VCF_PATH = VariantBaseTest.variantTestDataRoot + "ex2.vcf";
-
-    /**
-     * Asserts readability and correctness of VCF over HTTP.  The VCF is indexed and requires and index.
-     */
-    @Test
-    public void testVcfOverHTTP() throws IOException {
-        final VCFCodec codec = new VCFCodec();
-        final AbstractFeatureReader<VariantContext, LineIterator> featureReaderHttp =
-                AbstractFeatureReader.getFeatureReader(HTTP_INDEXED_VCF_PATH, codec, true); // Require an index to
-        final AbstractFeatureReader<VariantContext, LineIterator> featureReaderLocal =
-                AbstractFeatureReader.getFeatureReader(LOCAL_MIRROR_HTTP_INDEXED_VCF_PATH, codec, false);
-        final CloseableTribbleIterator<VariantContext> localIterator = featureReaderLocal.iterator();
-        for (final Feature feat : featureReaderHttp.iterator()) {
-            assertEquals(feat.toString(), localIterator.next().toString());
-        }
-        assertFalse(localIterator.hasNext());
-    }
-
-    @Test
-    public void testLoadBEDFTP() throws Exception {
-        final String path = "ftp://ftp.broadinstitute.org/distribution/igv/TEST/cpgIslands with spaces.hg18.bed";
-        final BEDCodec codec = new BEDCodec();
-        final AbstractFeatureReader<BEDFeature, LineIterator> bfs = AbstractFeatureReader.getFeatureReader(path, codec, false);
-        for (final Feature feat : bfs.iterator()) {
-            assertNotNull(feat);
-        }
-    }
-}
diff --git a/src/tests/java/org/broad/tribble/BinaryFeaturesTest.java b/src/tests/java/org/broad/tribble/BinaryFeaturesTest.java
deleted file mode 100644
index a0235f7..0000000
--- a/src/tests/java/org/broad/tribble/BinaryFeaturesTest.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package org.broad.tribble;
-
-import org.broad.tribble.bed.BEDCodec;
-import org.broad.tribble.example.ExampleBinaryCodec;
-import org.broad.tribble.readers.LineIterator;
-import org.broad.tribble.readers.LineReader;
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Iterator;
-import java.util.List;
-
-
-public class BinaryFeaturesTest {
-    @DataProvider(name = "BinaryFeatureSources")
-    public Object[][] createData1() {
-        return new Object[][] {
-                { new File(TestUtils.DATA_DIR + "test.bed"),  new BEDCodec() },
-                { new File(TestUtils.DATA_DIR + "bed/Unigene.sample.bed"),  new BEDCodec() },
-                { new File(TestUtils.DATA_DIR + "bed/NA12878.deletions.10kbp.het.gq99.hand_curated.hg19_fixed.bed"),  new BEDCodec() },
-        };
-    }
-
-    @Test(enabled = true, dataProvider = "BinaryFeatureSources")
-    public void testBinaryCodec(final File source, final FeatureCodec<Feature, LineIterator> codec) throws IOException {
-        final File tmpFile = File.createTempFile("testBinaryCodec", ".binary.bed");
-        ExampleBinaryCodec.convertToBinaryTest(source, tmpFile, codec);
-        tmpFile.deleteOnExit();
-
-        final FeatureReader<Feature> originalReader = AbstractFeatureReader.getFeatureReader(source.getAbsolutePath(), codec, false);
-        final FeatureReader<Feature> binaryReader = AbstractFeatureReader.getFeatureReader(tmpFile.getAbsolutePath(), new ExampleBinaryCodec(), false);
-
-        // make sure the header is what we expect
-        final List<String> header = (List<String>) binaryReader.getHeader();
-        Assert.assertEquals(header.size(), 1, "We expect exactly one header line");
-        Assert.assertEquals(header.get(0), ExampleBinaryCodec.HEADER_LINE, "Failed to read binary header line");
-
-        final Iterator<Feature> oit = originalReader.iterator();
-        final Iterator<Feature> bit = binaryReader.iterator();
-        while ( oit.hasNext() ) {
-            final Feature of = oit.next();
-
-            Assert.assertTrue(bit.hasNext(), "Original iterator has items, but there's no items left in binary iterator");
-            final Feature bf = bit.next();
-
-            Assert.assertEquals(bf.getChr(), of.getChr(), "Chr not equal between original and binary encoding");
-            Assert.assertEquals(bf.getStart(), of.getStart(), "Start not equal between original and binary encoding");
-            Assert.assertEquals(bf.getEnd(), of.getEnd(), "End not equal between original and binary encoding");
-        }
-        Assert.assertTrue(! bit.hasNext(), "Original iterator is done, but there's still some data in binary iterator");
-
-        originalReader.close();
-        binaryReader.close();
-    }
-}
diff --git a/src/tests/java/org/broad/tribble/FeatureReaderTest.java b/src/tests/java/org/broad/tribble/FeatureReaderTest.java
deleted file mode 100644
index 44b5964..0000000
--- a/src/tests/java/org/broad/tribble/FeatureReaderTest.java
+++ /dev/null
@@ -1,167 +0,0 @@
-package org.broad.tribble;
-
-import net.sf.samtools.seekablestream.SeekableFileStream;
-import net.sf.samtools.util.CloserUtil;
-import org.broad.tribble.bed.BEDCodec;
-import org.broad.tribble.example.ExampleBinaryCodec;
-import org.broad.tribble.index.Block;
-import org.broad.tribble.index.Index;
-import org.broad.tribble.index.IndexFactory;
-import net.sf.samtools.util.LocationAware;
-import org.broad.tribble.util.ParsingUtils;
-import org.testng.Assert;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
-
-
-public class FeatureReaderTest {
-    private final static File asciiBedFile = new File(TestUtils.DATA_DIR + "test.bed");
-    private final static File binaryBedFile = new File(TestUtils.OUTPUT_DIR + "test.binary.bed");
-    private final static File tabixBedFile = new File(TestUtils.DATA_DIR + "test.tabix.bed.gz");
-
-    @BeforeClass
-    public void setup() throws IOException {
-        ExampleBinaryCodec.convertToBinaryTest(asciiBedFile, binaryBedFile, new BEDCodec());
-        binaryBedFile.deleteOnExit();
-    }
-
-    @AfterClass
-    public void tearDown() throws Exception {
-        binaryBedFile.delete();
-    }
-
-    @DataProvider(name = "indexProvider")
-    public Object[][] createData1() {
-        return new Object[][]{
-                {asciiBedFile, IndexFactory.IndexType.LINEAR, new BEDCodec()},
-                {asciiBedFile, IndexFactory.IndexType.INTERVAL_TREE, new BEDCodec()},
-                {tabixBedFile, IndexFactory.IndexType.TABIX, new BEDCodec()},
-                {binaryBedFile, IndexFactory.IndexType.LINEAR, new ExampleBinaryCodec()},
-                {binaryBedFile, IndexFactory.IndexType.INTERVAL_TREE, new ExampleBinaryCodec()},
-        };
-    }
-
-    @Test(dataProvider = "indexProvider")
-    public void testBedQuery(final File featureFile, final IndexFactory.IndexType indexType, final FeatureCodec<Feature, LocationAware> codec) throws IOException {
-        final AbstractFeatureReader<Feature, ?> reader = getReader(featureFile, indexType, codec);
-
-        // Query
-        testQuery(reader, "chr1", 1, 500, 3);
-        testQuery(reader, "chr1", 1, 200, 1);
-        testQuery(reader, "chr1", 1, 201, 2);
-        testQuery(reader, "chr1", 500, 600, 0);
-        testQuery(reader, "chr1", 100000, 100010, 1);
-        testQuery(reader, "chr1", 100000, 100000, 0);
-        testQuery(reader, "chr1", 100001, 100001, 1);
-        testQuery(reader, "chr1", 100005, 100006, 1);
-        testQuery(reader, "chr1", 100009, 100011, 1);
-        testQuery(reader, "chr1", 100010, 100010, 1);
-        testQuery(reader, "chr1", 100011, 100011, 0);
-        testQuery(reader, "chr2", 1, 100, 2);
-        testQuery(reader, "chr2", 1, 10, 1);
-        testQuery(reader, "chr2", 15, 16, 0);
-        testQuery(reader, "chr3", 1, 201, 0);
-
-        // Close reader
-        reader.close();
-    }
-
-    @Test(dataProvider = "indexProvider")
-    public void testLargeNumberOfQueries(final File featureFile, final IndexFactory.IndexType indexType, final FeatureCodec<Feature, LocationAware> codec) throws IOException {
-        final AbstractFeatureReader<Feature, LocationAware> reader = getReader(featureFile, indexType, codec);
-        for (int i = 0; i < 2000; i++) {
-            for (final int start : Arrays.asList(500, 200, 201, 600, 100000)) {
-                for (final String chr : Arrays.asList("chr1", "chr2", "chr3")) {
-                    CloseableTribbleIterator<Feature> iter = null;
-                    try {
-                        iter = reader.query(chr, start, start + 1);
-                        Assert.assertNotNull(iter, "Failed to create non-null iterator");
-                    } finally {
-                        CloserUtil.close(iter);
-                    }
-                }
-            }
-        }
-
-        // Close reader
-        reader.close();
-    }
-
-    private void testQuery(final AbstractFeatureReader<Feature, ?> reader, final String chr, final int start, final int stop, final int expectedNumRecords) throws IOException {
-        final Iterator<Feature> iter = reader.query(chr, start, stop);
-        int count = 0;
-        while (iter.hasNext()) {
-            final Feature f = iter.next();
-            Assert.assertTrue(f.getEnd() >= start && f.getStart() <= stop);
-            count++;
-        }
-        Assert.assertEquals(count, expectedNumRecords);
-    }
-
-    @Test(dataProvider = "indexProvider")
-    public void testBedNames(final File featureFile, final IndexFactory.IndexType indexType, final FeatureCodec<Feature, LocationAware> codec) throws IOException {
-        final AbstractFeatureReader<Feature, ?> reader = getReader(featureFile, indexType, codec);
-        final String[] expectedSequences = {"chr1", "chr2"};
-
-        final List<String> seqNames = reader.getSequenceNames();
-        Assert.assertEquals(seqNames.size(), expectedSequences.length,
-                "Expected sequences " + ParsingUtils.join(",", expectedSequences) + " but saw " + ParsingUtils.join(",", seqNames));
-
-        for (final String s : expectedSequences) {
-            Assert.assertTrue(seqNames.contains(s));
-        }
-    }
-
-    private static <FEATURE extends Feature, SOURCE extends LocationAware> AbstractFeatureReader<FEATURE, SOURCE> getReader(final File featureFile,
-                                                                                                                            final IndexFactory.IndexType indexType,
-                                                                                                                            final FeatureCodec<FEATURE, SOURCE> codec)
-            throws IOException {
-        if (indexType.canCreate()) {
-            // for types we can create make a new index each time
-            final File idxFile = Tribble.indexFile(featureFile);
-
-            // delete an already existing index
-            if (idxFile.exists()) {
-                idxFile.delete();
-            }
-            final Index idx = IndexFactory.createIndex(featureFile, codec, indexType);
-            IndexFactory.writeIndex(idx, idxFile);
-
-            idxFile.deleteOnExit();
-        } // else  let's just hope the index exists, and if so use it
-
-        return AbstractFeatureReader.getFeatureReader(featureFile.getAbsolutePath(), codec);
-    }
-
-    @Test
-    public void testReadingBeyondIntSizedBlock() throws IOException {
-        final Block block = new Block(0, ((long) Integer.MAX_VALUE) * 2);
-        final SeekableFileStream stream = new SeekableFileStream(new File("/dev/zero"));
-        final TribbleIndexedFeatureReader.BlockStreamWrapper blockStreamWrapper = new TribbleIndexedFeatureReader.BlockStreamWrapper(stream, block);
-        final int chunkSize = 100000; // 10 Mb
-        final int chunksToRead = (int) Math.ceil(block.getSize() / (chunkSize * 1.0));
-
-        final byte[] bytes = new byte[chunkSize];
-        long totalRead = 0;
-        for (int chunk = 0; chunk < chunksToRead; chunk++) {
-            //System.out.println("Reading chunk " + chunk + " of " + chunkSize + " total read " + totalRead);
-            final int nRead = blockStreamWrapper.read(bytes);
-            Assert.assertTrue(nRead != -1, "Prematurely got EOF after " + totalRead + " bytes");
-            totalRead += nRead;
-        }
-
-        // /dev/zero doesn't advance file stream on Linux, so reading never terminates
-        // Therefore, we only require a minimum number of bytes
-        Assert.assertTrue(totalRead >= block.getSize(), "Failed to read all bytes from a block with size > 2B = " + block.getSize());
-
-    }
-}
-
diff --git a/src/tests/java/org/broad/tribble/TestUtils.java b/src/tests/java/org/broad/tribble/TestUtils.java
deleted file mode 100644
index ba7b49c..0000000
--- a/src/tests/java/org/broad/tribble/TestUtils.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/** This software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package org.broad.tribble;
-
-
-/**
- * User: jacob
- * Date: 2012-Dec-13
- */
-public class TestUtils {
-    public static String DATA_DIR = "testdata/tribble/";
-    public static String OUTPUT_DIR = DATA_DIR + "tmp/";
-}
diff --git a/src/tests/java/org/broad/tribble/bed/BEDCodecTest.java b/src/tests/java/org/broad/tribble/bed/BEDCodecTest.java
deleted file mode 100644
index 9043b91..0000000
--- a/src/tests/java/org/broad/tribble/bed/BEDCodecTest.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/*
- * Copyright (c) 2010, The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person
- * obtaining a copy of this software and associated documentation
- * files (the "Software"), to deal in the Software without
- * restriction, including without limitation the rights to use,
- * copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following
- * conditions:
- *
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- */
-
-package org.broad.tribble.bed;
-
-import org.broad.tribble.AbstractFeatureReader;
-import org.broad.tribble.Feature;
-import org.broad.tribble.TestUtils;
-import org.broad.tribble.annotation.Strand;
-import org.broad.tribble.bed.FullBEDFeature.Exon;
-import org.broad.tribble.index.IndexFactory;
-import org.broad.tribble.index.linear.LinearIndex;
-import org.broad.tribble.util.LittleEndianOutputStream;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.awt.*;
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.List;
-
-public class BEDCodecTest {
-
-    @Test
-    public void testSimpleDecode() {
-        BEDCodec codec = new BEDCodec();
-
-        BEDFeature feature;
-
-        feature = codec.decode("chr1 1");
-        Assert.assertEquals(feature.getChr(), "chr1");
-        Assert.assertEquals(feature.getStart(), 2);
-        Assert.assertEquals(feature.getEnd(), 2);
-
-        feature = codec.decode("chr1 1 2");
-        Assert.assertEquals(feature.getChr(), "chr1");
-        Assert.assertEquals(feature.getStart(), 2);
-        Assert.assertEquals(feature.getEnd(), 2);
-
-        feature = codec.decode("chr1 1 3");
-        Assert.assertEquals(feature.getChr(), "chr1");
-        Assert.assertEquals(feature.getStart(), 2);
-        Assert.assertEquals(feature.getEnd(), 3);
-    }
-
-    @Test
-    public void testFullDecode() {
-        BEDCodec codec = new BEDCodec();
-
-        FullBEDFeature feature;
-        List<Exon> exons;
-
-        // Borrowed samples from Example: on http://genome.ucsc.edu/FAQ/FAQformat#format1
-
-        feature = (FullBEDFeature) codec.decode("chr22 1000 5000 cloneA 960 + 1000 5000 0 2 567,488, 0,3512");
-        Assert.assertEquals(feature.getChr(), "chr22");
-        Assert.assertEquals(feature.getStart(), 1001);
-        Assert.assertEquals(feature.getEnd(), 5000);
-        Assert.assertEquals(feature.getName(), "cloneA");
-        Assert.assertEquals(feature.getScore(), 960f);
-        Assert.assertEquals(feature.getStrand(), Strand.POSITIVE);
-        Assert.assertEquals(feature.getColor(), new Color(0));
-
-        exons = feature.getExons();
-        Assert.assertEquals(exons.size(), 2);
-
-        Assert.assertEquals(exons.get(0).getNumber(), 1);
-        Assert.assertEquals(exons.get(0).start, 1001);
-        Assert.assertEquals(exons.get(0).end, 1567);
-        Assert.assertEquals(exons.get(0).getCdStart(), 1001);
-        Assert.assertEquals(exons.get(0).getCdEnd(), 1567);
-        Assert.assertEquals(exons.get(0).getCodingLength(), 567);
-
-        Assert.assertEquals(exons.get(1).getNumber(), 2);
-        Assert.assertEquals(exons.get(1).start, 4513);
-        Assert.assertEquals(exons.get(1).end, 5000);
-        Assert.assertEquals(exons.get(1).getCdStart(), 4513);
-        Assert.assertEquals(exons.get(1).getCdEnd(), 5000);
-        Assert.assertEquals(exons.get(1).getCodingLength(), 488);
-
-        feature = (FullBEDFeature) codec.decode("chr22 2000 6000 cloneB 900 - 2000 6000 0 2 433,399, 0,3601");
-        Assert.assertEquals(feature.getChr(), "chr22");
-        Assert.assertEquals(feature.getStart(), 2001);
-        Assert.assertEquals(feature.getEnd(), 6000);
-        Assert.assertEquals(feature.getName(), "cloneB");
-        Assert.assertEquals(feature.getScore(), 900f);
-        Assert.assertEquals(feature.getStrand(), Strand.NEGATIVE);
-        Assert.assertEquals(feature.getColor(), new Color(0));
-
-        exons = feature.getExons();
-        Assert.assertEquals(exons.size(), 2);
-
-        Assert.assertEquals(exons.get(0).getNumber(), 2);
-        Assert.assertEquals(exons.get(0).start, 2001);
-        Assert.assertEquals(exons.get(0).end, 2433);
-        Assert.assertEquals(exons.get(0).getCdStart(), 2001);
-        Assert.assertEquals(exons.get(0).getCdEnd(), 2433);
-        Assert.assertEquals(exons.get(0).getCodingLength(), 433);
-
-        Assert.assertEquals(exons.get(1).getNumber(), 1);
-        Assert.assertEquals(exons.get(1).start, 5602);
-        Assert.assertEquals(exons.get(1).end, 6000);
-        Assert.assertEquals(exons.get(1).getCdStart(), 5602);
-        Assert.assertEquals(exons.get(1).getCdEnd(), 6000);
-        Assert.assertEquals(exons.get(1).getCodingLength(), 399);
-    }
-
-    @Test
-    public void testDecodeBEDFile_good() throws Exception {
-        String filepath = TestUtils.DATA_DIR + "bed/NA12878.deletions.10kbp.het.gq99.hand_curated.hg19_fixed.bed";
-        int expected_lines = 34;
-        /*
-        Line 0:
-        1	25592413	25657872
-        Line 3:
-        1	152555536	152587611
-        Line 28:
-        14	73996607	74025282
-        Remember tribble increments numbers by 1
-         */
-
-        BEDCodec codec = new BEDCodec();
-
-        AbstractFeatureReader reader = AbstractFeatureReader.getFeatureReader(filepath, codec, false);
-
-        Iterable<Feature> iter = reader.iterator();
-        int count = 0;
-        for (Feature feat : iter) {
-            Assert.assertTrue(feat.getChr().length() > 0);
-            Assert.assertTrue(feat.getEnd() >= feat.getStart());
-
-            if (count == 0) {
-                Assert.assertEquals("1", feat.getChr());
-                Assert.assertEquals(25592413 + 1, feat.getStart());
-                Assert.assertEquals(25657872, feat.getEnd());
-            }
-
-            if (count == 3) {
-                Assert.assertEquals("1", feat.getChr());
-                Assert.assertEquals(152555536 + 1, feat.getStart());
-                Assert.assertEquals(152587611, feat.getEnd());
-            }
-
-            if (count == 28) {
-                Assert.assertEquals("14", feat.getChr());
-                Assert.assertEquals(73996607 + 1, feat.getStart());
-                Assert.assertEquals(74025282, feat.getEnd());
-            }
-
-            count += 1;
-        }
-
-        Assert.assertEquals(expected_lines, count);
-
-        reader.close();
-
-    }
-
-    /**
-     * Test reading a BED file which is malformed.
-     *
-     * @throws Exception
-     */
-    @Test(expectedExceptions = RuntimeException.class)
-    public void testDecodeBEDFile_bad() throws Exception {
-        //This file has an extra tab in the second to last line
-        String filepath = TestUtils.DATA_DIR + "bed/NA12878.deletions.10kbp.het.gq99.hand_curated.hg19.bed";
-        //The iterator implementation next() actually performs a get / read_next. The bad line is number 32,
-        //so we actually will only get 31 lines before reading that line.
-        int expected_count = 31;
-        BEDCodec codec = new BEDCodec();
-
-        AbstractFeatureReader reader = AbstractFeatureReader.getFeatureReader(filepath, codec, false);
-
-        Iterable<Feature> iter = reader.iterator();
-        int count = 0;
-        for (Feature feat : iter) {
-            count += 1;
-        }
-        reader.close();
-    }
-
-    private void createIndex(File testFile, File idxFile) throws IOException {
-        // Create an index if missing
-        if (idxFile.exists()) {
-            idxFile.delete();
-        }
-        LinearIndex idx = (LinearIndex) IndexFactory.createLinearIndex(testFile, new BEDCodec());
-
-        LittleEndianOutputStream stream = null;
-        try {
-            stream = new LittleEndianOutputStream(new BufferedOutputStream(new FileOutputStream(idxFile)));
-            idx.write(stream);
-        } finally {
-            if (stream != null) {
-                stream.close();
-            }
-        }
-
-    }
-}
diff --git a/src/tests/java/org/broad/tribble/dbsnp/OldDbSNPCodecTest.java b/src/tests/java/org/broad/tribble/dbsnp/OldDbSNPCodecTest.java
deleted file mode 100644
index a2d189e..0000000
--- a/src/tests/java/org/broad/tribble/dbsnp/OldDbSNPCodecTest.java
+++ /dev/null
@@ -1,121 +0,0 @@
-package org.broad.tribble.dbsnp;
-
-import org.broad.tribble.AbstractFeatureReader;
-import org.broad.tribble.FeatureReader;
-import org.broad.tribble.TestUtils;
-import org.broad.tribble.annotation.Strand;
-import org.broad.tribble.index.Index;
-import org.broad.tribble.index.IndexFactory;
-import org.testng.Assert;
-import org.testng.annotations.BeforeTest;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Iterator;
-
-
-/**
- * @author aaron
- *         <p/>
- *         Class OldDbSNPCodecTest
- *         <p/>
- *         tests out the basics of a dbsnp feature
- */
-public class OldDbSNPCodecTest {
-
-    public static final File testFile = new File(TestUtils.DATA_DIR + "basicDbSNP.dbsnp");
-    public static Index index;
-    private FeatureReader<OldDbSNPFeature> reader;
-
-    // setup a new source before each class
-    @BeforeTest
-    public void beforeTest() {
-        index = IndexFactory.createLinearIndex(testFile, new OldDbSNPCodec());
-        reader = AbstractFeatureReader.getFeatureReader(testFile.getAbsolutePath(), new OldDbSNPCodec(), index);
-
-    }
-
-    @Test
-    public void testReadAllLines() {
-        // Query
-        try {
-            Iterator<OldDbSNPFeature> iter = reader.query("1", 0, 35000000);
-            int count = 0;
-            while (iter.hasNext()) {
-                OldDbSNPFeature feat = iter.next();
-                count++;
-            }
-            Assert.assertEquals(count, 42);
-        } catch (IOException e) {
-            Assert.fail("failed to generate iterator from feature source");
-        }
-    }
-
-    @Test
-    public void testReadAllLinesAlternateQueryString1() {
-        // Query
-        try {
-            Iterator<OldDbSNPFeature> iter = reader.query("1", 433, 1937);
-            int count = 0;
-            while (iter.hasNext()) {
-                OldDbSNPFeature feat = iter.next();
-                count++;
-            }
-            Assert.assertEquals(count, 41);
-        } catch (IOException e) {
-            Assert.fail("failed to generate iterator from feature source");
-        }
-    }
-
-    @Test
-    public void testReadAllLinesAlternateQueryString2() {
-        // Query
-        try {
-            Iterator<OldDbSNPFeature> iter = reader.query("1", 1936, 1937);
-            int count = 0;
-            while (iter.hasNext()) {
-                OldDbSNPFeature feat = iter.next();
-                count++;
-            }
-            Assert.assertEquals(count, 1);
-        } catch (IOException e) {
-            Assert.fail("failed to generate iterator from feature source");
-        }
-    }
-
-    @Test
-    public void testReturnedDBSNPEntry() {
-        // Query
-        try {
-            Iterator<OldDbSNPFeature> iter = reader.query("1", 492, 492);
-            if (!iter.hasNext()) Assert.fail("expected at least one entry");
-
-            // check all the fields from the file
-            OldDbSNPFeature feat = iter.next();
-            Assert.assertTrue(feat.getChr().equals("1"));
-            Assert.assertEquals(feat.getStart(), 492);
-            Assert.assertEquals(feat.getEnd(), 492);
-            Assert.assertTrue(feat.getRsID().equals("rs55998931"));
-            Assert.assertEquals(feat.getScore(), 0);
-            Assert.assertEquals(feat.getStrand(), Strand.POSITIVE);
-            Assert.assertEquals(feat.getNCBIRefBase(), "C");
-            Assert.assertEquals(feat.getUCSCRefBase(), "C");
-            Assert.assertEquals(2, feat.getObserved().length);
-            Assert.assertTrue("C".equals(feat.getObserved()[0]));
-            Assert.assertTrue("T".equals(feat.getObserved()[1]));
-            Assert.assertTrue("genomic".equals(feat.getMolType()));
-            Assert.assertTrue("single".equals(feat.getVariantType()));
-            Assert.assertTrue("unknown".equals(feat.getValidationStatus()));
-            Assert.assertEquals(feat.getAvHet(), 0.0, 0.0001);
-            Assert.assertEquals(feat.getAvHetSE(), 0.0, 0.0001);
-            Assert.assertTrue("unknown".equals(feat.getFunction()));
-            Assert.assertTrue("exact".equals(feat.getLocationType()));
-            Assert.assertEquals(feat.getWeight(), 1);
-
-
-        } catch (IOException e) {
-            Assert.fail("failed to generate iterator from feature source");
-        }
-    }
-}
diff --git a/src/tests/java/org/broad/tribble/gelitext/GeliTextTest.java b/src/tests/java/org/broad/tribble/gelitext/GeliTextTest.java
deleted file mode 100644
index 57effe5..0000000
--- a/src/tests/java/org/broad/tribble/gelitext/GeliTextTest.java
+++ /dev/null
@@ -1,99 +0,0 @@
-package org.broad.tribble.gelitext;
-
-import org.broad.tribble.AbstractFeatureReader;
-import org.broad.tribble.FeatureReader;
-import org.broad.tribble.TestUtils;
-import org.broad.tribble.index.Index;
-import org.broad.tribble.index.IndexFactory;
-import org.testng.Assert;
-import org.testng.annotations.BeforeSuite;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Iterator;
-
-
-/**
- * @author aaron
- *         <p/>
- *         Class GeliTextTest
- *         <p/>
- *         test out the geli text source codec and feature
- */
-public class GeliTextTest {
-    public static final File testFile = new File(TestUtils.DATA_DIR + "testGeliText.txt");
-    public static Index index;
-    private FeatureReader<GeliTextFeature> source;
-
-    // setup a new source before each class
-
-    @BeforeSuite
-    public void beforeTest() {
-        index = IndexFactory.createLinearIndex(testFile, new GeliTextCodec());
-        source = AbstractFeatureReader.getFeatureReader(testFile.getAbsolutePath(), new GeliTextCodec(), index);
-    }
-
-    @Test
-    public void testReadAllLines() {
-        // Query
-        try {
-            Iterator<GeliTextFeature> iter = source.query("22", 14438070, 14592250);
-            int count = 0;
-            while (iter.hasNext()) {
-                GeliTextFeature feat = iter.next();
-                count++;
-            }
-            Assert.assertEquals(count, 50);
-        } catch (IOException e) {
-            Assert.fail("failed to generate iterator from feature source");
-        }
-    }
-
-    @Test
-    public void testGetSubRegion() {
-        // Query
-        try {
-            Iterator<GeliTextFeature> iter = source.query("22", 14438070, 14539060); // should be the first 41 records
-            int count = 0;
-            while (iter.hasNext()) {
-                GeliTextFeature feat = iter.next();
-                count++;
-            }
-            Assert.assertEquals(count, 41);
-        } catch (IOException e) {
-            Assert.fail("failed to generate iterator from feature source");
-        }
-    }
-
-    @Test
-    public void testFirstRecord() {
-        // Query
-        try {
-            Iterator<GeliTextFeature> iter = source.query("22", 14438070, 14592250);
-            int count = 0;
-
-            GeliTextFeature feat = iter.next();
-            // check the first records contents
-            // 22 14438070 A   0 0     GG      33.2618 33.2618 0       0       0       0     0 0       0       33.2618 0       0
-            Assert.assertTrue("22".equals(feat.getChr()));
-            Assert.assertEquals(feat.getStart(), 14438070);
-            Assert.assertEquals('A', feat.getRefBase());
-            Assert.assertEquals(feat.getDepthOfCoverage(), 0.0, 0.0001);
-            Assert.assertEquals(feat.getMaximumMappingQual(), 0.0, 0.0001);
-            Assert.assertTrue(DiploidGenotype.GG.equals(feat.getGenotype()));
-            Assert.assertEquals(feat.getDepthOfCoverage(), 0.0, 0.0001);
-            Assert.assertEquals(feat.getLODBestToReference(), 33.2618, 0.0001);
-            Assert.assertEquals(feat.getLODBestToNext(), 33.2618, 0.0001);
-            for (int x = 0; x < feat.getLikelihoods().length; x++) {
-                if (x == DiploidGenotype.GG.ordinal())
-                    Assert.assertEquals(feat.getLikelihoods()[x], 33.2618, 0.0001);
-                else
-                    Assert.assertEquals(feat.getLikelihoods()[x], 0, 0.0001);
-            }
-
-        } catch (IOException e) {
-            Assert.fail("failed to generate iterator from feature source");
-        }
-    }
-}
diff --git a/src/tests/java/org/broad/tribble/index/IndexFactoryTest.java b/src/tests/java/org/broad/tribble/index/IndexFactoryTest.java
deleted file mode 100644
index 5e81282..0000000
--- a/src/tests/java/org/broad/tribble/index/IndexFactoryTest.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2013 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package org.broad.tribble.index;
-
-import org.broad.tribble.TestUtils;
-import org.broad.tribble.TribbleException;
-import org.broad.tribble.bed.BEDCodec;
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.util.List;
-
-/**
- * User: jacob
- * Date: 2012-Aug-23
- */
-public class IndexFactoryTest {
-
-    final File sortedBedFile = new File(TestUtils.DATA_DIR + "bed/Unigene.sample.bed");
-    final File unsortedBedFile = new File(TestUtils.DATA_DIR + "bed/unsorted.bed");
-    final File discontinuousFile = new File(TestUtils.DATA_DIR + "bed/disconcontigs.bed");
-    final BEDCodec bedCodec = new BEDCodec();
-
-    @Test
-    public void testCreateLinearIndex() throws Exception {
-        Index index = IndexFactory.createLinearIndex(sortedBedFile, bedCodec);
-        String chr = "chr2";
-
-        Assert.assertTrue(index.getSequenceNames().contains(chr));
-        Assert.assertTrue(index.containsChromosome(chr));
-        Assert.assertEquals(1, index.getSequenceNames().size());
-        List<Block> blocks = index.getBlocks(chr, 1, 50);
-        Assert.assertEquals(1, blocks.size());
-
-        Block block = blocks.get(0);
-        Assert.assertEquals(78, block.getSize());
-    }
-
-    @Test(expectedExceptions = TribbleException.MalformedFeatureFile.class, dataProvider = "indexFactoryProvider")
-    public void testCreateIndexUnsorted(IndexFactory.IndexType type) throws Exception{
-        Index index = IndexFactory.createIndex(unsortedBedFile, bedCodec, type);
-    }
-
-    @Test(expectedExceptions = TribbleException.MalformedFeatureFile.class, dataProvider = "indexFactoryProvider")
-    public void testCreateIndexDiscontinuousContigs(IndexFactory.IndexType type) throws Exception{
-        Index index = IndexFactory.createIndex(discontinuousFile, bedCodec, type);
-    }
-
-    @DataProvider(name = "indexFactoryProvider")
-    public Object[][] getIndexFactoryTypes(){
-        return new Object[][] {
-                new Object[] { IndexFactory.IndexType.LINEAR },
-                new Object[] { IndexFactory.IndexType.INTERVAL_TREE }
-        };
-    }
-
-}
diff --git a/src/tests/java/org/broad/tribble/index/IndexTest.java b/src/tests/java/org/broad/tribble/index/IndexTest.java
deleted file mode 100644
index 3ebf232..0000000
--- a/src/tests/java/org/broad/tribble/index/IndexTest.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package org.broad.tribble.index;
-
-import org.broad.tribble.TestUtils;
-import org.broad.tribble.index.linear.LinearIndex;
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-
-public class IndexTest {
-    private final static String CHR = "1";
-    private final static File MassiveIndexFile = new File(TestUtils.DATA_DIR + "Tb.vcf.idx");
-
-    @DataProvider(name = "StartProvider")
-    public Object[][] makeStartProvider() {
-        List<Object[]> tests = new ArrayList<Object[]>();
-
-//        for ( int mid = 0; mid <= end; mid += 1000000 ) {
-//            tests.add(new Object[]{0, mid, mid+1000000, end});
-//        }
-
-        tests.add(new Object[]{1226943, 1226943, 1226943, 2000000});
-
-        return tests.toArray(new Object[][]{});
-    }
-
-    @Test(dataProvider = "StartProvider")
-    public void testMassiveQuery(final int start, final int mid, final int mid2, final int end) throws IOException {
-        LinearIndex index = (LinearIndex)IndexFactory.loadIndex(MassiveIndexFile.getAbsolutePath());
-
-        final List<Block> leftBlocks = index.getBlocks(CHR, start, mid);
-        final List<Block> rightBlocks = index.getBlocks(CHR, mid2, end); // gap must be big to avoid overlaps
-        final List<Block> allBlocks = index.getBlocks(CHR, start, end);
-
-        final long leftSize = leftBlocks.isEmpty() ? 0 : leftBlocks.get(0).getSize();
-        final long rightSize = rightBlocks.isEmpty() ? 0 : rightBlocks.get(0).getSize();
-        final long allSize = allBlocks.isEmpty() ? 0 : allBlocks.get(0).getSize();
-
-        Assert.assertTrue(leftSize >= 0, "Expected leftSize to be positive " + leftSize);
-        Assert.assertTrue(rightSize >= 0, "Expected rightSize to be positive " + rightSize);
-        Assert.assertTrue(allSize >= 0, "Expected allSize to be positive " + allSize);
-
-        Assert.assertTrue(allSize >= Math.max(leftSize,rightSize), "Expected size of joint query " + allSize + " to be at least >= max of left " + leftSize + " and right queries " + rightSize);
-    }
-}
diff --git a/src/tests/java/org/broad/tribble/index/interval/IntervalTreeTest.java b/src/tests/java/org/broad/tribble/index/interval/IntervalTreeTest.java
deleted file mode 100644
index e15ac18..0000000
--- a/src/tests/java/org/broad/tribble/index/interval/IntervalTreeTest.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * Copyright (c) 2007-2010 by The Broad Institute, Inc. and the Massachusetts Institute of Technology.
- * All Rights Reserved.
- *
- * This software is licensed under the terms of the GNU Lesser General Public License (LGPL), Version 2.1 which
- * is available at http://www.opensource.org/licenses/lgpl-2.1.php.
- *
- * THE SOFTWARE IS PROVIDED "AS IS." THE BROAD AND MIT MAKE NO REPRESENTATIONS OR WARRANTIES OF
- * ANY KIND CONCERNING THE SOFTWARE, EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES
- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT
- * OR OTHER DEFECTS, WHETHER OR NOT DISCOVERABLE.  IN NO EVENT SHALL THE BROAD OR MIT, OR THEIR
- * RESPECTIVE TRUSTEES, DIRECTORS, OFFICERS, EMPLOYEES, AND AFFILIATES BE LIABLE FOR ANY DAMAGES OF
- * ANY KIND, INCLUDING, WITHOUT LIMITATION, INCIDENTAL OR CONSEQUENTIAL DAMAGES, ECONOMIC
- * DAMAGES OR INJURY TO PROPERTY AND LOST PROFITS, REGARDLESS OF WHETHER THE BROAD OR MIT SHALL
- * BE ADVISED, SHALL HAVE OTHER REASON TO KNOW, OR IN FACT SHALL KNOW OF THE POSSIBILITY OF THE
- * FOREGOING.
- */
-
-package org.broad.tribble.index.interval;
-
-import org.broad.tribble.AbstractFeatureReader;
-import org.broad.tribble.CloseableTribbleIterator;
-import org.broad.tribble.FeatureReader;
-import org.broad.tribble.TestUtils;
-import org.broad.tribble.bed.BEDCodec;
-import org.broad.tribble.bed.BEDFeature;
-import org.broad.tribble.index.Index;
-import org.broad.tribble.index.IndexFactory;
-import org.testng.Assert;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-/**
- * User: jrobinso
- * Date: Mar 24, 2010
- */
-public class IntervalTreeTest {
-
-    static IntervalTree tree;
-
-    @BeforeClass
-    public static void setupTree() {
-        tree = new IntervalTree();
-        tree.insert(new Interval(0, 3, null));
-        tree.insert(new Interval(5, 8, null));
-        tree.insert(new Interval(6, 10, null));
-        tree.insert(new Interval(8, 9, null));
-        tree.insert(new Interval(15, 23, null));
-        tree.insert(new Interval(16, 21, null));
-        tree.insert(new Interval(17, 19, null));
-        tree.insert(new Interval(19, 20, null));
-        tree.insert(new Interval(25, 30, null));
-        tree.insert(new Interval(26, 27, null));
-    }
-
-    @Test
-    public void testSearch() {
-
-        final Interval queryInterval = new Interval(1, 2);
-        List<Interval> intervals = tree.findOverlapping(queryInterval);
-        Assert.assertNotNull(intervals);
-
-        for (Interval iv : intervals) {
-            Assert.assertTrue(queryInterval.overlaps(iv));
-        }
-    }
-
-    @Test
-    public void testBed() throws Exception {
-        String bedFile = TestUtils.DATA_DIR + "/index/chrY_Y4_small.bed";
-        tree = new IntervalTree();
-        Assert.assertTrue(tree.isValid());
-
-        BufferedReader br = new BufferedReader(new FileReader(bedFile));
-        String nextLine = "";
-        while ((nextLine = br.readLine()) != null) {
-            if (!(nextLine.startsWith("#") || nextLine.startsWith("track"))) {
-                String[] tokens = nextLine.split("\t");
-                if (tokens.length > 2) {
-                    int start = Integer.parseInt(tokens[1]);
-                    int end = Integer.parseInt(tokens[2]);
-                    tree.insert(new Interval(start, end));
-                }
-
-            }
-        }
-
-//        List iv = (List) tree.findOverlapping(new Interval(2770226, 2770300));
-        Interval searchInterval = new Interval(2782632, 2782732);
-        List<Interval> iv = tree.findOverlapping(searchInterval);
-        for (Interval i : iv) {
-            Assert.assertTrue(i.overlaps(searchInterval));
-        }
-
-        br.close();
-
-    }
-
-    @Test
-    /**
-     *
-     * chr2	1	200000000	LONG_FEATURE
-     * ...
-     * chr2	179098961	179380395	Hs.134602
-     * chr2	179209546	179287210	Hs.620337
-     * chr2	179266309	179266748	Hs.609465
-     * chr2	179296428	179300012	Hs.623987
-     * chr2	179302952	179303488	Hs.594545
-
-     */
-    public void testOverlappingFeatures() throws Exception {
-        //chr2:179,222,066-179,262,059<- CONTAINS TTN
-
-        Set<String> names = new HashSet<String>(Arrays.asList("Hs.134602", "Hs.620337", "Hs.609465", "Hs.623987",
-                "Hs.594545", "LONG_FEATURE"));
-
-        String bedFile = TestUtils.DATA_DIR + "/bed/Unigene.sample.bed";
-        String chr = "chr2";
-        int start = 179266309;
-        int end = 179303488 ;
-        int expectedCount = 6;
-
-
-        // Interval tree index
-        int batchSize = 1;
-        Index idx = IndexFactory.createIntervalIndex(new File(bedFile), new BEDCodec(), batchSize);
-
-        FeatureReader<BEDFeature> bfr = AbstractFeatureReader.getFeatureReader(bedFile, new BEDCodec(), idx);
-        CloseableTribbleIterator<BEDFeature>iter = bfr.query(chr, start, end);
-        int countInterval = 0;
-        while (iter.hasNext()) {
-            BEDFeature feature = iter.next();
-            Assert.assertTrue(feature.getEnd() >= start && feature.getStart() <= end);
-            Assert.assertTrue(names.contains(feature.getName()));
-            countInterval++;
-        }
-
-        Assert.assertEquals(countInterval, expectedCount);
-
-
-    }
-
-
-}
-
diff --git a/src/tests/java/org/broad/tribble/index/linear/LinearIndexTest.java b/src/tests/java/org/broad/tribble/index/linear/LinearIndexTest.java
deleted file mode 100644
index 38bdfc0..0000000
--- a/src/tests/java/org/broad/tribble/index/linear/LinearIndexTest.java
+++ /dev/null
@@ -1,243 +0,0 @@
-/*
- * Copyright (c) 2009-2010 by The Broad Institute, Inc.
- * All Rights Reserved.
- *
- * This software is licensed under the terms of the GNU Lesser General Public License (LGPL), Version 2.1 which
- * is available at http://www.opensource.org/licenses/lgpl-2.1.php.
- *
- * THE SOFTWARE IS PROVIDED "AS IS." THE BROAD AND MIT MAKE NO REPRESENTATIONS OR WARRANTIES OF
- * ANY KIND CONCERNING THE SOFTWARE, EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES
- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT
- * OR OTHER DEFECTS, WHETHER OR NOT DISCOVERABLE.  IN NO EVENT SHALL THE BROAD OR MIT, OR THEIR
- * RESPECTIVE TRUSTEES, DIRECTORS, OFFICERS, EMPLOYEES, AND AFFILIATES BE LIABLE FOR ANY DAMAGES OF
- * ANY KIND, INCLUDING, WITHOUT LIMITATION, INCIDENTAL OR CONSEQUENTIAL DAMAGES, ECONOMIC
- * DAMAGES OR INJURY TO PROPERTY AND LOST PROFITS, REGARDLESS OF WHETHER THE BROAD OR MIT SHALL
- * BE ADVISED, SHALL HAVE OTHER REASON TO KNOW, OR IN FACT SHALL KNOW OF THE POSSIBILITY OF THE
- * FOREGOING.
- */
-
-package org.broad.tribble.index.linear;
-
-import org.broad.tribble.AbstractFeatureReader;
-import org.broad.tribble.CloseableTribbleIterator;
-import org.broad.tribble.FeatureReader;
-import org.broad.tribble.TestUtils;
-import org.broad.tribble.bed.BEDCodec;
-import org.broad.tribble.bed.BEDFeature;
-import org.broad.tribble.index.Block;
-import org.broad.tribble.index.Index;
-import org.broad.tribble.index.IndexFactory;
-import org.testng.Assert;
-import org.testng.annotations.BeforeTest;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-public class LinearIndexTest {
-    private static final File RANDOM_FILE = new File("notMeaningful");
-
-    private final static Block CHR1_B1 = new Block(1, 10);
-    private final static Block CHR1_B2 = new Block(10, 20);
-    private final static Block CHR1_B3 = new Block(20, 30);
-    private final static Block CHR2_B1 = new Block(1, 100);
-    private final static Block CHR2_B2 = new Block(100, 200);
-
-    private LinearIndex idx;
-
-    @BeforeTest
-    public void setup() {
-        idx = createTestIndex();
-    }
-
-    // chr1 (0, 10]
-    // chr1 (10, 20]
-    // chr1 (20, 30]
-    // chr2 (0, 100]
-    // chr2 (100, 200]
-    private static LinearIndex createTestIndex() {
-        final LinearIndex.ChrIndex chr1 = new LinearIndex.ChrIndex("chr1", 10);
-        chr1.addBlock(CHR1_B1);
-        chr1.addBlock(CHR1_B2);
-        chr1.addBlock(CHR1_B3);
-        chr1.updateLongestFeature(1);
-
-        final LinearIndex.ChrIndex chr2 = new LinearIndex.ChrIndex("chr2", 100);
-        chr2.addBlock(CHR2_B1);
-        chr2.addBlock(CHR2_B2);
-        chr2.updateLongestFeature(50);
-
-        final List<LinearIndex.ChrIndex> indices = Arrays.asList(chr1, chr2);
-        return new LinearIndex(indices, RANDOM_FILE);
-    }
-
-    @Test()
-    public void testBasicFeatures() {
-        Assert.assertEquals(idx.getChrIndexClass(), LinearIndex.ChrIndex.class);
-        Assert.assertEquals(idx.getType(), LinearIndex.INDEX_TYPE);
-        Assert.assertFalse(idx.hasFileSize());
-        Assert.assertFalse(idx.hasTimestamp());
-        Assert.assertFalse(idx.hasMD5());
-        Assert.assertTrue(idx.isCurrentVersion());
-
-        Assert.assertNotNull(idx.getSequenceNames());
-        Assert.assertEquals(idx.getSequenceNames().size(), 2);
-        Assert.assertTrue(idx.getSequenceNames().contains("chr1"));
-        Assert.assertTrue(idx.getSequenceNames().contains("chr2"));
-        Assert.assertTrue(idx.containsChromosome("chr1"));
-        Assert.assertTrue(idx.containsChromosome("chr2"));
-        Assert.assertFalse(idx.containsChromosome("chr3"));
-
-        Assert.assertEquals(idx.getIndexedFile(), new File(RANDOM_FILE.getAbsolutePath()));
-
-        Assert.assertNotNull(idx.getBlocks("chr1"));
-        Assert.assertEquals(idx.getBlocks("chr1").size(), 3);
-
-        Assert.assertNotNull(idx.getBlocks("chr2"));
-        Assert.assertEquals(idx.getBlocks("chr2").size(), 2);
-    }
-
-    @Test()
-    public void testEquals() {
-        final LinearIndex idx2 = createTestIndex();
-
-        Assert.assertEquals(idx, idx, "Identical indices are equal");
-        Assert.assertTrue(idx.equalsIgnoreProperties(idx), "Identical indices are equalIgnoreTimeStamp");
-        Assert.assertTrue(idx.equalsIgnoreProperties(idx2), "Indices constructed the same are equalIgnoreTimeStamp");
-
-        idx2.setTS(123456789);
-        Assert.assertNotSame(idx, idx2, "Indices with different timestamps are not the same");
-        Assert.assertTrue(idx.equalsIgnoreProperties(idx2), "Indices with different timestamps are equalIgnoreTimeStamp");
-    }
-
-
-    // chr1 (0, 10]
-    // chr1 (10, 20]
-    // chr1 (20, 30]
-    // chr2 (0, 100]
-    // chr2 (100, 200]
-    //@Test()
-    // TODO -- this is not a useful test as written -- the linear index always returns a single block since by
-    // TODO -- definition they are contiguous and can be collapsed to a single block.
-    public void testBasicQuery() {
-        testQuery("chr1", 1, 1, CHR1_B1);
-        testQuery("chr1", 1, 2, CHR1_B1);
-        testQuery("chr1", 1, 9, CHR1_B1);
-        testQuery("chr1", 10, 10, CHR1_B1);
-
-        testQuery("chr1", 10, 11, CHR1_B1, CHR1_B2);
-        testQuery("chr1", 11, 11, CHR1_B2);
-        testQuery("chr1", 11, 12, CHR1_B2);
-        testQuery("chr1", 11, 19, CHR1_B2);
-
-        testQuery("chr1", 10, 19, CHR1_B1, CHR1_B2);
-        testQuery("chr1", 10, 21, CHR1_B1, CHR1_B2, CHR1_B3);
-        testQuery("chr1", 25, 30, CHR1_B3);
-        testQuery("chr1", 35, 40);
-
-        testQuery("chr2", 1, 1, CHR2_B1);
-        testQuery("chr2", 100, 100, CHR2_B1);
-        testQuery("chr2", 125, 125, CHR2_B1, CHR2_B2); // because of the 50 bp events
-        testQuery("chr2", 151, 151, CHR2_B2); // because of the 50 bp events
-        testQuery("chr2", 249, 249, CHR2_B2); // because of the 50 bp events
-        testQuery("chr2", 251, 251); // just escaping the 50 bp longest event
-    }
-
-    private final void testQuery(final String chr, final int start, final int stop, final Block... expectedBlocksArray) {
-        final List<Block> qBlocks = idx.getBlocks(chr, start, stop);
-        final List<Block> eBlocks = Arrays.asList(expectedBlocksArray);
-
-        Assert.assertEquals(qBlocks.size(), eBlocks.size(),
-                String.format("Query %s:%d-%d returned %d blocks but we only expected %d.", chr, start, stop, qBlocks.size(), eBlocks.size()));
-        for (int i = 0; i < qBlocks.size(); i++)
-            Assert.assertEquals(qBlocks.get(i), eBlocks.get(i));
-    }
-
-    File fakeBed = new File(TestUtils.DATA_DIR + "fakeBed.bed");
-
-    @Test
-    public void oneEntryFirstChr() {
-        final BEDCodec code = new BEDCodec();
-        final Index index = IndexFactory.createLinearIndex(fakeBed, code);
-        final AbstractFeatureReader reader = AbstractFeatureReader.getFeatureReader(fakeBed.getAbsolutePath(), code, index);
-
-        try {
-            final CloseableTribbleIterator it = reader.iterator();
-            int count = 0;
-            while (it.hasNext()) {
-                it.next();
-                count++;
-            }
-            Assert.assertEquals(51, count);
-        } catch (final IOException e) {
-            Assert.fail("Unable to get iterator due to " + e.getMessage());
-        }
-    }
-
-
-    @Test
-    /**
-     *
-     * chr2	1	200000000	LONG_FEATURE
-     * ...
-     * chr2	179098961	179380395	Hs.134602
-     * chr2	179209546	179287210	Hs.620337
-     * chr2	179266309	179266748	Hs.609465
-     * chr2	179296428	179300012	Hs.623987
-     * chr2	179302952	179303488	Hs.594545
-
-     */
-    public void testOverlappingFeatures() throws Exception {
-        //chr2:179,222,066-179,262,059<- CONTAINS TTN
-
-        final Set<String> names = new HashSet<String>(Arrays.asList("Hs.134602", "Hs.620337", "Hs.609465", "Hs.623987",
-                "Hs.594545", "LONG_FEATURE"));
-
-        final String bedFile = TestUtils.DATA_DIR + "bed/Unigene.sample.bed";
-        final String chr = "chr2";
-        final int start = 179266309;
-        final int end = 179303488;
-        final int expectedCount = 6;
-
-
-        // Linear binned index
-        LinearIndex.enableAdaptiveIndexing = false;
-        final int binSize = 1000;
-        Index idx = IndexFactory.createLinearIndex(new File(bedFile), new BEDCodec(), binSize);
-
-        FeatureReader<BEDFeature> bfr = AbstractFeatureReader.getFeatureReader(bedFile, new BEDCodec(), idx);
-        CloseableTribbleIterator<BEDFeature> iter = bfr.query(chr, start, end);
-        int countInterval = 0;
-        while (iter.hasNext()) {
-            final BEDFeature feature = iter.next();
-            Assert.assertTrue(feature.getEnd() >= start && feature.getStart() <= end);
-            Assert.assertTrue(names.contains(feature.getName()));
-            countInterval++;
-        }
-
-        Assert.assertEquals(countInterval, expectedCount);
-
-        //Repeat with adaptive indexing
-        LinearIndex.enableAdaptiveIndexing = true;
-        idx = IndexFactory.createLinearIndex(new File(bedFile), new BEDCodec(), binSize);
-
-        bfr = AbstractFeatureReader.getFeatureReader(bedFile, new BEDCodec(), idx);
-        iter = bfr.query(chr, start, end);
-        countInterval = 0;
-        while (iter.hasNext()) {
-            final BEDFeature feature = iter.next();
-            Assert.assertTrue(feature.getEnd() >= start && feature.getStart() <= end);
-            Assert.assertTrue(names.contains(feature.getName()));
-            countInterval++;
-        }
-
-        Assert.assertEquals(countInterval, expectedCount);
-
-
-    }
-
-}
diff --git a/src/tests/java/org/broad/tribble/index/tabix/TabixIndexTest.java b/src/tests/java/org/broad/tribble/index/tabix/TabixIndexTest.java
deleted file mode 100644
index b316aed..0000000
--- a/src/tests/java/org/broad/tribble/index/tabix/TabixIndexTest.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2014 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package org.broad.tribble.index.tabix;
-
-import net.sf.samtools.util.BlockCompressedOutputStream;
-import org.broad.tribble.util.LittleEndianOutputStream;
-import org.broad.tribble.util.TabixUtils;
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.File;
-
-public class TabixIndexTest {
-    private static final File SMALL_TABIX_FILE = new File("testdata/tribble/tabix/trioDup.vcf.gz.tbi");
-    private static final File BIGGER_TABIX_FILE = new File("testdata/tribble/tabix/bigger.vcf.gz.tbi");
-
-    /**
-     * Read an existing index from disk, write it to a temp file, read that in, and assert that both in-memory
-     * representations are identical.  Disk representations may not be identical due to arbitrary bin order and
-     * compression differences.
-     */
-    @Test(dataProvider = "readWriteTestDataProvider")
-    public void readWriteTest(final File tabixFile) throws Exception {
-        final TabixIndex index = new TabixIndex(tabixFile);
-        final File indexFile = File.createTempFile("TabixIndexTest.", TabixUtils.STANDARD_INDEX_EXTENSION);
-        final LittleEndianOutputStream los = new LittleEndianOutputStream(new BlockCompressedOutputStream(indexFile));
-        index.write(los);
-        los.close();
-        final TabixIndex index2 = new TabixIndex(indexFile);
-        Assert.assertEquals(index, index2);
-        // Unfortunately, can't do byte comparison of original file and temp file, because 1) different compression
-        // levels; and more importantly, arbitrary order of bins in bin list.
-    }
-
-    @DataProvider(name = "readWriteTestDataProvider")
-    public Object[][] readWriteTestDataProvider() {
-        return new Object[][] {
-                {SMALL_TABIX_FILE},
-                {BIGGER_TABIX_FILE}
-        };
-    }
-
-}
diff --git a/src/tests/java/org/broad/tribble/readers/AsciiLineReaderTest.java b/src/tests/java/org/broad/tribble/readers/AsciiLineReaderTest.java
deleted file mode 100644
index 52f4543..0000000
--- a/src/tests/java/org/broad/tribble/readers/AsciiLineReaderTest.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package org.broad.tribble.readers;
-
-import org.broad.tribble.TestUtils;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import java.io.FileInputStream;
-import java.io.InputStream;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertTrue;
-
-/**
- * User: jacob
- * Date: 2012/05/09
- */
-public class AsciiLineReaderTest {
-    @BeforeMethod
-    public void setUp() throws Exception {
-
-    }
-
-    @AfterMethod
-    public void tearDown() throws Exception {
-
-    }
-
-    /**
-     * Test that we read the correct number of lines
-     * from a file
-     * @throws Exception
-     */
-    @Test
-    public void testReadLines() throws Exception {
-        String filePath = TestUtils.DATA_DIR + "gwas/smallp.gwas";
-        InputStream is = new FileInputStream(filePath);
-        AsciiLineReader reader = new AsciiLineReader(is);
-        int actualLines = 0;
-        int expectedNumber = 20;
-        String nextLine = "";
-
-        while((nextLine = reader.readLine()) != null && actualLines < (expectedNumber + 5)){
-            actualLines++;
-            //This particular test file has no empty lines
-            assertTrue(nextLine.length() > 0);
-        }
-
-        assertEquals(expectedNumber, actualLines);
-
-    }
-}
diff --git a/src/tests/java/org/broad/tribble/readers/AsynchronousLineReaderTest.java b/src/tests/java/org/broad/tribble/readers/AsynchronousLineReaderTest.java
deleted file mode 100644
index f388aba..0000000
--- a/src/tests/java/org/broad/tribble/readers/AsynchronousLineReaderTest.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package org.broad.tribble.readers;
-
-import org.broad.tribble.TestUtils;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.io.*;
-
-/**
- * @author mccowan
- */
-public class AsynchronousLineReaderTest {
-
-        /**
-         * Test that we read the correct number of lines
-         * from a file
-         * @throws Exception
-         */
-        @Test
-        public void testReadLines() throws Exception {
-            final File filePath = new File(TestUtils.DATA_DIR + "large.txt");
-            final AsynchronousLineReader reader = new AsynchronousLineReader(new InputStreamReader( new FileInputStream(filePath)));
-            final BufferedReader br = new BufferedReader(new InputStreamReader( new FileInputStream(filePath)));
-
-            String nextLine;
-            while((nextLine = br.readLine()) != null){
-                Assert.assertEquals(nextLine, reader.readLine());
-            }
-            Assert.assertNull(reader.readLine());
-        }
-}
diff --git a/src/tests/java/org/broad/tribble/readers/LineReaderUtilTest.java b/src/tests/java/org/broad/tribble/readers/LineReaderUtilTest.java
deleted file mode 100644
index 539cfa9..0000000
--- a/src/tests/java/org/broad/tribble/readers/LineReaderUtilTest.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.broad.tribble.readers;
-
-import org.broad.tribble.TestUtils;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStreamReader;
-
-/**
- * @author mccowan
- */
-public class LineReaderUtilTest {
-    @Test
-    public void testLineReaderIterator() throws Exception {
-        final File filePath = new File(TestUtils.DATA_DIR + "gwas/smallp.gwas");
-        final LineIterator lineIterator = new LineIteratorImpl(LineReaderUtil.fromBufferedStream(new PositionalBufferedStream(new FileInputStream(filePath))));
-        final BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(filePath)));
-
-        while (lineIterator.hasNext()) {
-            Assert.assertEquals(lineIterator.next(), br.readLine());
-        }
-        Assert.assertNull(br.readLine());
-    }
-}
diff --git a/src/tests/java/org/broad/tribble/readers/LongLineBufferedReaderTest.java b/src/tests/java/org/broad/tribble/readers/LongLineBufferedReaderTest.java
deleted file mode 100644
index eaed097..0000000
--- a/src/tests/java/org/broad/tribble/readers/LongLineBufferedReaderTest.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package org.broad.tribble.readers;
-
-import org.broad.tribble.TestUtils;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.io.BufferedReader;
-import java.io.FileInputStream;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-
-/**
- * @author mccowan
- */
-public class LongLineBufferedReaderTest {
-
-    /**
-     * Test that we read the correct number of lines
-     * from a file
-     * @throws Exception
-     */
-    @Test
-    public void testReadLines() throws Exception {
-        String filePath = TestUtils.DATA_DIR + "large.txt";
-        BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(filePath)));
-        LongLineBufferedReader testReader = new LongLineBufferedReader(new InputStreamReader(new FileInputStream(filePath)));
-        String line;
-        while((line = reader.readLine()) != null){
-            Assert.assertEquals(testReader.readLine(), line);
-        }
-        Assert.assertNull(testReader.readLine());
-    }
-}
diff --git a/src/tests/java/org/broad/tribble/readers/PositionalBufferedStreamTest.java b/src/tests/java/org/broad/tribble/readers/PositionalBufferedStreamTest.java
deleted file mode 100644
index 7982932..0000000
--- a/src/tests/java/org/broad/tribble/readers/PositionalBufferedStreamTest.java
+++ /dev/null
@@ -1,121 +0,0 @@
-package org.broad.tribble.readers;
-
-import org.broad.tribble.TestUtils;
-import org.testng.Assert;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-
-/**
- * User: jacob
- * Date: 2012/05/09
- */
-public class PositionalBufferedStreamTest {
-
-    InputStream FileIs;
-    long expectedBytes;
-
-
-    @BeforeMethod
-    public void setUp() throws Exception {
-        File fi =  new File(TestUtils.DATA_DIR + "test.bed");
-        FileIs = new FileInputStream(fi);
-        expectedBytes = fi.length();
-    }
-
-    @AfterMethod
-    public void tearDown() throws Exception {
-        if(FileIs != null){
-            FileIs.close();
-            FileIs = null;
-        }
-    }
-
-    @Test
-    public void testPeek() throws Exception{
-        int trials = 10;
-        PositionalBufferedStream is = new PositionalBufferedStream(FileIs);
-        int bb = is.peek();
-        for(int ii=0; ii < trials; ii++){
-            Assert.assertEquals(is.peek(), bb);
-            Assert.assertEquals(is.getPosition(), 0);
-        }
-
-        while((bb = is.peek()) >= 0){
-            Assert.assertEquals(is.read(), bb);
-        }
-    }
-
-    @Test
-    public void testIsDone() throws Exception{
-        PositionalBufferedStream is = new PositionalBufferedStream(FileIs);
-        while(!is.isDone()){
-            is.read();
-        }
-        Assert.assertTrue(is.isDone());
-        Assert.assertEquals(is.getPosition(), expectedBytes);
-    }
-
-    @Test
-    public void testReadCorrectNumberBytes() throws Exception{
-        int[] bufSizes= new int[]{5, 20, 60, 120, 131, 150, 200, 1000, 10000, 20000, 512000, 2 << 20};
-        for(Integer bufSize: bufSizes){
-            setUp();
-            tstReadCorrectNumberBytes(bufSize);
-            tearDown();
-        }
-    }
-
-    public void tstReadCorrectNumberBytes(int bufferSize) throws Exception{
-        InputStream is = new PositionalBufferedStream(FileIs, bufferSize);
-        long count = 0;
-        while(is.read() >= 0){
-            count++;
-        }
-
-        Assert.assertEquals(count, expectedBytes);
-    }
-
-    @DataProvider(name = "ReadBytesTestData")
-    public Object[][] createReadBytesTestData() {
-        List<Object[]> tests = new ArrayList<Object[]>();
-
-        for ( int byteReadSize : Arrays.asList(5, 10, 100, 255) )
-            for ( int bufSize : Arrays.asList(1, 10, 100, 1000) )
-                tests.add( new Object[]{ (Integer)byteReadSize, (Integer)bufSize });
-
-        return tests.toArray(new Object[][]{});
-    }
-
-    @Test(dataProvider = "ReadBytesTestData")
-    public void testReadBytes(final int byteReadSize, final int bufsize) throws Exception {
-        final byte[] bytes = new byte[255];
-        for ( int i = 0; i < bytes.length; i++ ) bytes[i] = (byte)i;
-        final ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
-
-        final byte[] readBytes = new byte[byteReadSize];
-        final PositionalBufferedStream pbs = new PositionalBufferedStream(bais, bufsize);
-
-        int i = 0;
-        while ( i < 255 ) {
-            final int expectedBytesToRead = Math.min(255 - i, readBytes.length);
-            final int nBytesRead = pbs.read(readBytes);
-            Assert.assertEquals(nBytesRead, expectedBytesToRead, "Didn't read as many bytes as expected from PBS");
-
-            for ( int j = 0; j < nBytesRead; j++ )
-                Assert.assertEquals(readBytes[j], bytes[i+j], "Bytes read not those expected");
-
-            i += nBytesRead;
-        }
-    }
-}
diff --git a/src/tests/java/org/broad/tribble/readers/ReaderTest.java b/src/tests/java/org/broad/tribble/readers/ReaderTest.java
deleted file mode 100644
index 6746698..0000000
--- a/src/tests/java/org/broad/tribble/readers/ReaderTest.java
+++ /dev/null
@@ -1,179 +0,0 @@
-package org.broad.tribble.readers;
-
-
-import org.testng.Assert;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-import java.io.*;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * Tests for streams and readers
- */
-public class ReaderTest {
-    @BeforeClass
-    public void setup() throws IOException {
-    }
-
-    @AfterClass
-    public void teardown() throws Exception {
-
-    }
-
-    @Test
-    public void testMultipleLines() throws IOException {
-        testStream("line 1\nline2\n");
-    }
-
-    @Test
-    public void testSingleLine() throws IOException {
-        testStream("line 1\n");
-    }
-
-    @Test
-    public void testEmpty() throws IOException {
-        testStream("");
-    }
-
-
-    @Test
-    public void testLotsOfLines() throws IOException {
-        final StringBuilder b = new StringBuilder();
-        for ( int i = 0; i < 10000; i++ ) {
-            b.append("line " + i + "\n");
-        }
-        testStream(b.toString());
-    }
-
-    @Test
-    public void testMassiveLines() throws IOException {
-        final StringBuilder b = new StringBuilder();
-        for ( int i = 0; i < 10; i++ ) {
-            for ( int j = 0; j < 1000000; j++) {
-                b.append(i + "." + j);
-            }
-            b.append("\n");
-        }
-        testStream(b.toString());
-    }
-
-    @Test
-    public void testSkip() throws IOException {
-        for ( int skipSizeBase : Arrays.asList(0, 10, 100, 1000, 10000, 1000000)) {
-            for ( int skipSizeAdd = 0; skipSizeAdd < 10; skipSizeAdd ++ ) {
-                final int skipSize = skipSizeBase + skipSizeAdd;
-                final byte[] bytes = new byte[skipSize+2];
-                Arrays.fill(bytes, 0, skipSize, (byte)0);
-                bytes[skipSize] = 1;
-                bytes[skipSize+1] = 2;
-
-                final InputStream is = new ByteArrayInputStream(bytes);
-                final PositionalBufferedStream pbs = new PositionalBufferedStream(is);
-                pbs.skip(skipSize);
-
-                // first value is 1
-                Assert.assertTrue(! pbs.isDone());
-                Assert.assertEquals(pbs.getPosition(), skipSize);
-                Assert.assertEquals(pbs.peek(), 1);
-                Assert.assertEquals(pbs.read(), 1);
-
-                Assert.assertTrue(! pbs.isDone());
-                Assert.assertEquals(pbs.getPosition(), skipSize + 1);
-                Assert.assertEquals(pbs.peek(), 2);
-                Assert.assertEquals(pbs.read(), 2);
-
-                Assert.assertTrue(pbs.isDone());
-            }
-        }
-    }
-
-    private void testStream(final String s) throws IOException {
-        testStream(s.getBytes());
-        testLineReader(s);
-    }
-
-    private void testStream(final byte[] bytes) throws IOException {
-        final InputStream is = new ByteArrayInputStream(bytes);
-        final PositionalBufferedStream pbs = new PositionalBufferedStream(is);
-
-        int bytePos = 0;
-        while ( ! pbs.isDone() ) {
-            Assert.assertTrue(bytePos < bytes.length);
-
-            // test position
-            Assert.assertEquals(pbs.getPosition(), bytePos);
-
-            // test peek
-            final byte atPos = bytes[bytePos];
-            Assert.assertEquals(toByte(pbs.peek()), atPos);
-            // test position
-            Assert.assertEquals(pbs.getPosition(), bytePos);
-
-            // test read
-            Assert.assertEquals(toByte(pbs.read()), atPos);
-            bytePos++;
-            // test position
-            Assert.assertEquals(pbs.getPosition(), bytePos);
-
-            // test repeek
-            if ( bytePos < bytes.length ) {
-                Assert.assertEquals(toByte(pbs.peek()), bytes[bytePos]);
-                // test position
-                Assert.assertEquals(pbs.getPosition(), bytePos);
-            }
-        }
-
-        Assert.assertEquals(bytePos, bytes.length);
-        pbs.close();
-    }
-
-    private void testLineReader(final String lines) throws IOException {
-        // read all of the lines into the
-        final BufferedReader br = new BufferedReader(new StringReader(lines));
-        final List<String> eachLine = new ArrayList<String>();
-        while (true) {
-            final String line = br.readLine();
-            if ( line == null ) break;
-            eachLine.add(line);
-        }
-
-        final byte[] bytes = lines.getBytes();
-        final InputStream is = new ByteArrayInputStream(bytes);
-        final PositionalBufferedStream pbs = new PositionalBufferedStream(is);
-        final LineReader alr = new AsciiLineReader(pbs); // AsciiLineReader must be used here because it does not read ahead.
-
-        int bytePos = 0, linePos = 0;
-        /** 
-         * TODO: Requires revision: we're calling readLine() here, but making assumptions about how the underlying input stream operates.
-         * Specifically, these tests assume the underlying stream only advances exactly the required number of characters to find the
-         * newline, which is not true for most buffered readers.
-         */
-        while ( ! pbs.isDone() ) {
-            Assert.assertTrue(bytePos < bytes.length);
-
-            // test position
-            Assert.assertEquals(pbs.getPosition(), bytePos);
-
-            // test read
-            final String readLine = alr.readLine();
-            Assert.assertEquals(readLine, eachLine.get(linePos));
-            linePos++;
-
-            bytePos += readLine.length() + 1; // 1 for the terminator
-            // test position
-            Assert.assertEquals(pbs.getPosition(), bytePos);
-        }
-
-        Assert.assertEquals(linePos, eachLine.size());
-        Assert.assertEquals(bytePos, bytes.length);
-        pbs.close();
-    }
-
-    private final byte toByte(int i) {
-        return (byte)(i & 0xFF);
-    }
-}
diff --git a/src/tests/java/org/broad/tribble/readers/TabixReaderTest.java b/src/tests/java/org/broad/tribble/readers/TabixReaderTest.java
deleted file mode 100644
index d3d78d6..0000000
--- a/src/tests/java/org/broad/tribble/readers/TabixReaderTest.java
+++ /dev/null
@@ -1,107 +0,0 @@
-package org.broad.tribble.readers;
-
-
-import org.broad.tribble.TestUtils;
-import org.testng.Assert;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.testng.AssertJUnit.assertTrue;
-
-
-/**
- * Created by IntelliJ IDEA.
- * User: jrobinso
- * Date: Jul 6, 2010
- * Time: 8:57:40 PM
- * To change this template use File | Settings | File Templates.
- */
-public class TabixReaderTest {
-
-    static String tabixFile = TestUtils.DATA_DIR + "tabix/trioDup.vcf.gz";
-    static TabixReader tabixReader;
-    static List<String> sequenceNames;
-
-    @BeforeClass
-    public void setup() throws IOException {
-        tabixReader = new TabixReader(tabixFile);
-        sequenceNames = new ArrayList<String>(tabixReader.mChr2tid.keySet());
-    }
-
-    @AfterClass
-    public void teardown() throws Exception {
-        // close?  TabixReader doesn't have a close method!
-    }
-
-    @Test
-    public void testSequenceNames() {
-
-
-        String[] expectedSeqNames = new String[24];
-        for (int i = 1; i < 24; i++) {
-            expectedSeqNames[i - 1] = String.valueOf(i);
-        }
-        expectedSeqNames[22] = "X";
-        expectedSeqNames[23] = "Y";
-        Assert.assertEquals(expectedSeqNames.length, sequenceNames.size());
-
-        for (String s : expectedSeqNames) {
-            Assert.assertTrue(sequenceNames.contains(s));
-        }
-
-
-    }
-
-    /**
-     * Test reading a local tabix file
-     *
-     * @throws java.io.IOException
-     */
-    @Test
-    public void testLocalQuery() throws IOException {
-
-         TabixIteratorLineReader lineReader = new TabixIteratorLineReader(
-                tabixReader.query(tabixReader.mChr2tid.get("4"), 320, 330));
-
-        int nRecords = 0;
-        String nextLine;
-        while ((nextLine = lineReader.readLine()) != null) {
-            assertTrue(nextLine.startsWith("4"));
-            nRecords++;
-        }
-        assertTrue(nRecords > 0);
-
-
-    }
-
-    /**
-     * Test reading a tabix file over http
-     *
-     * @throws java.io.IOException
-     */
-    @Test
-    public void testRemoteQuery() throws IOException {
-
-        String tabixFile = "http://www.broadinstitute.org/igvdata/test/tabix/trioDup.vcf.gz";
-
-        TabixReader tabixReader = new TabixReader(tabixFile);
-
-        TabixIteratorLineReader lineReader = new TabixIteratorLineReader(
-                tabixReader.query(tabixReader.mChr2tid.get("4"), 320, 330));
-
-        int nRecords = 0;
-        String nextLine;
-        while ((nextLine = lineReader.readLine()) != null) {
-            assertTrue(nextLine.startsWith("4"));
-            nRecords++;
-        }
-        assertTrue(nRecords > 0);
-
-
-    }
-}
diff --git a/src/tests/java/org/broad/tribble/util/ParsingUtilsTest.java b/src/tests/java/org/broad/tribble/util/ParsingUtilsTest.java
deleted file mode 100644
index 2948fa0..0000000
--- a/src/tests/java/org/broad/tribble/util/ParsingUtilsTest.java
+++ /dev/null
@@ -1,114 +0,0 @@
-package org.broad.tribble.util;
-
-
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-
-/**
- * Parsing utils tests
- */
-public class ParsingUtilsTest {
-
-    static final String AVAILABLE_FTP_URL = "ftp://ftp.broadinstitute.org/pub/igv/TEST/test.txt";
-    static final String UNAVAILABLE_FTP_URL = "ftp://www.example.com/file.txt";
-
-    static final String AVAILABLE_HTTP_URL = "http://www.google.com";
-    static final String UNAVAILABLE_HTTP_URL = "http://www.unknownhostwhichshouldntexist.com";
-
-    @Test
-    public void testSplit1() {
-        String[] tokens = new String[10];
-        String blankColumnLine = "a\tb\t\td";
-        int nTokens = ParsingUtils.split(blankColumnLine, tokens, '\t');
-        Assert.assertEquals(nTokens,4);
-        Assert.assertEquals(tokens[0],"a");
-        Assert.assertEquals(tokens[1],"b");
-        Assert.assertEquals(tokens[2],"");
-        Assert.assertEquals(tokens[3],"d");
-    }
-
-    @Test
-    public void testSplit2() {
-        String[] tokens = new String[10];
-        String blankColumnLine = "a\tb\t\td\t";
-        int nTokens = ParsingUtils.split(blankColumnLine, tokens, '\t');
-        Assert.assertEquals(nTokens,5);
-        Assert.assertEquals(tokens[0],"a");
-        Assert.assertEquals(tokens[1],"b");
-        Assert.assertEquals(tokens[2],"");
-        Assert.assertEquals(tokens[3],"d");
-        Assert.assertEquals(tokens[4],"");
-    }
-
-    @Test
-    public void testSplitWhitespace1() {
-        String[] tokens = new String[10];
-        String blankColumnLine = "a b\t\td";
-        int nTokens = ParsingUtils.splitWhitespace(blankColumnLine, tokens);
-        Assert.assertEquals(nTokens,4);
-        Assert.assertEquals(tokens[0],"a");
-        Assert.assertEquals(tokens[1],"b");
-        Assert.assertEquals(tokens[2],"");
-        Assert.assertEquals(tokens[3],"d");
-    }
-
-    @Test
-    public void testSplitWhitespace2() {
-        String[] tokens = new String[10];
-        String blankColumnLine = "a b\t\td\t";
-        int nTokens = ParsingUtils.splitWhitespace(blankColumnLine, tokens);
-        Assert.assertEquals(nTokens,5);
-        Assert.assertEquals(tokens[0],"a");
-        Assert.assertEquals(tokens[1],"b");
-        Assert.assertEquals(tokens[2],"");
-        Assert.assertEquals(tokens[3],"d");
-    }
-
-    @Test
-    public void testFTPDoesExist() throws IOException{
-        tstExists(AVAILABLE_FTP_URL, true);
-    }
-
-    @Test
-    public void testFTPNotExist() throws IOException{
-        tstExists(UNAVAILABLE_FTP_URL, false);
-    }
-
-    @Test
-    public void testHTTPDoesExist() throws IOException{
-        tstExists(AVAILABLE_HTTP_URL, true);
-    }
-
-    @Test
-    public void testHTTPNotExist() throws IOException{
-        tstExists(UNAVAILABLE_HTTP_URL, false);
-    }
-
-    private void tstExists(String path, boolean expectExists) throws IOException{
-        boolean exists = ParsingUtils.resourceExists(path);
-        Assert.assertEquals(exists, expectExists);
-    }
-
-    @Test
-    public void testFTPOpenInputStream() throws IOException{
-        tstStream(AVAILABLE_FTP_URL);
-    }
-
-    @Test
-    public void testHTTPOpenInputStream() throws IOException{
-        tstStream(AVAILABLE_HTTP_URL);
-    }
-
-    private void tstStream(String path) throws IOException{
-        InputStream is = ParsingUtils.openInputStream(path);
-        Assert.assertNotNull(is, "InputStream is null for " + path);
-        int b = is.read();
-        Assert.assertNotSame(b, -1);
-    }
-
-
-}
diff --git a/src/tests/java/org/broad/tribble/util/ftp/FTPClientTest.java b/src/tests/java/org/broad/tribble/util/ftp/FTPClientTest.java
deleted file mode 100644
index 3157112..0000000
--- a/src/tests/java/org/broad/tribble/util/ftp/FTPClientTest.java
+++ /dev/null
@@ -1,266 +0,0 @@
-package org.broad.tribble.util.ftp;
-
-import net.sf.samtools.util.ftp.FTPClient;
-import net.sf.samtools.util.ftp.FTPReply;
-import org.testng.Assert;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.UnknownHostException;
-
-
-
-
-/**
-* @author Jim Robinson
-* @since 10/3/11
-*/
-public class FTPClientTest {
-
-    static String host = "ftp.broadinstitute.org";
-    static String file = "/pub/igv/TEST/test.txt";
-    static int fileSize = 27;
-    static byte[] expectedBytes = "abcdefghijklmnopqrstuvwxyz\n".getBytes();
-    FTPClient client;
-
-    @BeforeMethod
-    public void setUp() throws IOException {
-        client = new FTPClient();
-        FTPReply reply = client.connect(host);
-        Assert.assertTrue(reply.isSuccess());
-    }
-
-    @AfterMethod
-    public void tearDown() {
-        System.out.println("Disconnecting");
-        client.disconnect();
-    }
-
-    @Test
-    public void testLogin() throws Exception {
-
-    }
-
-    @Test
-    public void testPasv() throws Exception {
-        try {
-            FTPReply reply = client.login("anonymous", "igv at broadinstitute.org");
-            Assert.assertTrue(reply.isSuccess());
-
-            reply = client.pasv();
-            Assert.assertTrue(reply.isSuccess());
-        } finally {
-            client.closeDataStream();
-        }
-    }
-
-    @Test
-    public void testSize() throws Exception {
-
-        FTPReply reply = client.login("anonymous", "igv at broadinstitute.org");
-        Assert.assertTrue(reply.isSuccess());
-
-        reply = client.binary();
-        Assert.assertTrue(reply.isSuccess());
-
-        reply = client.size(file);
-        String val = reply.getReplyString();
-        int size = Integer.parseInt(val);
-        Assert.assertEquals(fileSize, size);
-    }
-
-
-    @Test
-    public void testDownload() throws Exception {
-        try {
-            FTPReply reply = client.login("anonymous", "igv at broadinstitute.org");
-            Assert.assertTrue(reply.isSuccess());
-
-            reply = client.binary();
-            Assert.assertTrue(reply.isSuccess());
-
-            reply = client.pasv();
-            Assert.assertTrue(reply.isSuccess());
-
-            reply = client.retr(file);
-            Assert.assertTrue(reply.getCode() == 150);
-
-            InputStream is = client.getDataStream();
-            int idx = 0;
-            int b;
-            while ((b = is.read()) >= 0) {
-                Assert.assertEquals(expectedBytes[idx], (byte) b);
-                idx++;
-            }
-
-        } finally {
-            client.closeDataStream();
-            FTPReply reply = client.retr(file);
-            System.out.println(reply.getCode());
-            Assert.assertTrue(reply.isSuccess());
-
-        }
-    }
-
-
-    @Test
-    public void testRest() throws Exception {
-        try {
-            FTPReply reply = client.login("anonymous", "igv at broadinstitute.org");
-            Assert.assertTrue(reply.isSuccess());
-
-            reply = client.binary();
-            Assert.assertTrue(reply.isSuccess());
-
-            reply = client.pasv();
-            Assert.assertTrue(reply.isSuccess());
-
-            final int restPosition = 5;
-            client.setRestPosition(restPosition);
-
-            reply = client.retr(file);
-            Assert.assertTrue(reply.getCode() == 150);
-
-            InputStream is = client.getDataStream();
-            int idx = restPosition;
-            int b;
-            while ((b = is.read()) >= 0) {
-                Assert.assertEquals(expectedBytes[idx], (byte) b);
-                idx++;
-            }
-
-        } finally {
-            client.closeDataStream();
-            FTPReply reply = client.retr(file);
-            System.out.println(reply.getCode());
-            Assert.assertTrue(reply.isSuccess());
-
-        }
-    }
-
-    /**
-     * Test accessing a non-existent file
-     */
-    @Test
-    public void testNonExistentFile() throws Exception {
-
-        String host = "ftp.broadinstitute.org";
-        String file = "/pub/igv/TEST/fileDoesntExist.txt";
-        FTPClient client = new FTPClient();
-
-        FTPReply reply = client.connect(host);
-        Assert.assertTrue(reply.isSuccess());
-
-        reply = client.login("anonymous", "igv at broadinstitute.org");
-        Assert.assertTrue(reply.isSuccess());
-
-        reply = client.binary();
-        Assert.assertTrue(reply.isSuccess());
-
-        reply = client.executeCommand("size " + file);
-        Assert.assertEquals(550, reply.getCode());
-
-        client.disconnect();
-
-    }
-
-        /**
-     * Test accessing a non-existent server
-     */
-    @Test
-    public void testNonExistentServer() throws Exception {
-
-        String host = "ftp.noSuchServer.org";
-        String file = "/pub/igv/TEST/fileDoesntExist.txt";
-        FTPClient client = new FTPClient();
-
-        FTPReply reply = null;
-        try {
-            reply = client.connect(host);
-        } catch (UnknownHostException e) {
-            // This is expected
-        }
-
-
-        client.disconnect();
-
-    }
-
-
-    @Test
-    public void testMultiplePasv() throws Exception {
-
-        try {
-            FTPReply reply = client.login("anonymous", "igv at broadinstitute.org");
-            Assert.assertTrue(reply.isSuccess());
-
-            reply = client.pasv();
-            Assert.assertTrue(reply.isSuccess());
-            client.closeDataStream();
-
-            reply = client.pasv();
-            Assert.assertTrue(reply.isSuccess());
-            client.closeDataStream();
-
-
-        }
-
-        finally {
-
-        }
-    }
-
-
-    @Test
-    public void testMultipleRest() throws Exception {
-        FTPReply reply = client.login("anonymous", "igv at broadinstitute.org");
-        Assert.assertTrue(reply.isSuccess());
-
-        reply = client.binary();
-        Assert.assertTrue(reply.isSuccess());
-
-        restRetr(5, 10);
-        restRetr(2, 10);
-        restRetr(15, 10);
-
-    }
-
-    private void restRetr(int restPosition, int length) throws IOException {
-
-        try {
-
-            if (client.getDataStream() == null) {
-                FTPReply reply = client.pasv();
-                Assert.assertTrue(reply.isSuccess());
-            }
-
-            client.setRestPosition(restPosition);
-
-            FTPReply reply = client.retr(file);
-            //assertTrue(reply.getCode() == 150);
-
-            InputStream is = client.getDataStream();
-
-            byte[] buffer = new byte[length];
-            is.read(buffer);
-
-
-            for (int i = 0; i < length; i++) {
-                System.out.print((char) buffer[i]);
-                Assert.assertEquals(expectedBytes[i + restPosition], buffer[i]);
-            }
-            System.out.println();
-        }
-
-        finally {
-            client.closeDataStream();
-            FTPReply reply = client.getReply();  // <== MUST READ THE REPLY
-            System.out.println(reply.getReplyString());
-
-
-        }
-    }
-}
diff --git a/src/tests/java/org/broad/tribble/util/ftp/FTPUtilsTest.java b/src/tests/java/org/broad/tribble/util/ftp/FTPUtilsTest.java
deleted file mode 100644
index 2dad357..0000000
--- a/src/tests/java/org/broad/tribble/util/ftp/FTPUtilsTest.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package org.broad.tribble.util.ftp;
-
-import net.sf.samtools.util.ftp.FTPUtils;
-import org.testng.annotations.Test;
-
-import java.net.URL;
-
-import static org.testng.Assert.assertFalse;
-import static org.testng.Assert.assertTrue;
-
-/**
-* @author Jim Robinson
-* @since 10/4/11
-*/
-public class FTPUtilsTest {
-
-    @Test
-    public void testResourceAvailable() throws Exception {
-
-        URL goodUrl = new URL("ftp://ftp.broadinstitute.org/pub/igv/TEST/test.txt");
-        assertTrue(FTPUtils.resourceAvailable(goodUrl));
-
-        URL nonExistentURL = new URL("ftp://ftp.broadinstitute.org/pub/igv/TEST/doesntExist");
-        assertFalse(FTPUtils.resourceAvailable(nonExistentURL));
-
-        URL nonExistentServer = new URL("ftp://noSuchServer/pub/igv/TEST/doesntExist");
-        assertFalse(FTPUtils.resourceAvailable(nonExistentServer));
-
-
-    }
-}
diff --git a/src/tests/java/org/broadinstitute/variant/VariantBaseTest.java b/src/tests/java/org/broadinstitute/variant/VariantBaseTest.java
deleted file mode 100644
index 87b4b7d..0000000
--- a/src/tests/java/org/broadinstitute/variant/VariantBaseTest.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant;
-
-import net.sf.samtools.SAMSequenceDictionary;
-import net.sf.samtools.SAMSequenceRecord;
-import org.testng.Assert;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.*;
-
-/**
- * Base class for test classes within org.broadinstitute.variant
- */
-public class VariantBaseTest {
-
-    public static final String variantTestDataRoot = new File("testdata/variant/").getAbsolutePath() + "/";
-
-    /**
-     * Creates a temp file that will be deleted on exit after tests are complete.
-     * @param name Prefix of the file.
-     * @param extension Extension to concat to the end of the file.
-     * @return A file in the temporary directory starting with name, ending with extension, which will be deleted after the program exits.
-     */
-    public static File createTempFile(String name, String extension) {
-        try {
-            File file = File.createTempFile(name, extension);
-            file.deleteOnExit();
-            return file;
-        } catch (IOException ex) {
-            throw new RuntimeException("Cannot create temp file: " + ex.getMessage(), ex);
-        }
-    }
-
-    private static final double DEFAULT_FLOAT_TOLERANCE = 1e-1;
-
-    public static final void assertEqualsDoubleSmart(final Object actual, final Double expected) {
-        Assert.assertTrue(actual instanceof Double, "Not a double");
-        assertEqualsDoubleSmart((double)(Double)actual, (double)expected);
-    }
-
-    public static final void assertEqualsDoubleSmart(final Object actual, final Double expected, final double tolerance) {
-        Assert.assertTrue(actual instanceof Double, "Not a double");
-        assertEqualsDoubleSmart((double)(Double)actual, (double)expected, tolerance);
-    }
-
-    public static final void assertEqualsDoubleSmart(final double actual, final double expected) {
-        assertEqualsDoubleSmart(actual, expected, DEFAULT_FLOAT_TOLERANCE);
-    }
-
-    public static final <T> void assertEqualsSet(final Set<T> actual, final Set<T> expected, final String info) {
-        final Set<T> actualSet = new HashSet<T>(actual);
-        final Set<T> expectedSet = new HashSet<T>(expected);
-        Assert.assertTrue(actualSet.equals(expectedSet), info); // note this is necessary due to testng bug for set comps
-    }
-
-    public static void assertEqualsDoubleSmart(final double actual, final double expected, final double tolerance) {
-        assertEqualsDoubleSmart(actual, expected, tolerance, null);
-    }
-
-    public static void assertEqualsDoubleSmart(final double actual, final double expected, final double tolerance, final String message) {
-        if ( Double.isNaN(expected) ) // NaN == NaN => false unfortunately
-            Assert.assertTrue(Double.isNaN(actual), "expected is nan, actual is not");
-        else if ( Double.isInfinite(expected) ) // NaN == NaN => false unfortunately
-            Assert.assertTrue(Double.isInfinite(actual), "expected is infinite, actual is not");
-        else {
-            final double delta = Math.abs(actual - expected);
-            final double ratio = Math.abs(actual / expected - 1.0);
-            Assert.assertTrue(delta < tolerance || ratio < tolerance, "expected = " + expected + " actual = " + actual
-                    + " not within tolerance " + tolerance
-                    + (message == null ? "" : "message: " + message));
-        }
-    }
-
-    public static SAMSequenceDictionary createArtificialSequenceDictionary() {
-        final int[] contigLengths = { 249250621, 243199373, 198022430, 191154276, 180915260, 171115067, 159138663, 146364022,
-                                      141213431, 135534747, 135006516, 133851895, 115169878, 107349540, 102531392, 90354753,
-                                      81195210, 78077248, 59128983, 63025520, 48129895, 51304566, 155270560, 59373566, 16569 };
-        List<SAMSequenceRecord> contigs = new ArrayList<SAMSequenceRecord>();
-
-        for ( int contig = 1; contig <= 22; contig++ ) {
-            contigs.add(new SAMSequenceRecord(Integer.toString(contig), contigLengths[contig - 1]));
-        }
-
-        int position = 22;
-        for ( String contigName : Arrays.asList("X", "Y", "MT") ) {
-            contigs.add(new SAMSequenceRecord(contigName, contigLengths[position]));
-            position++;
-        }
-
-        return new SAMSequenceDictionary(contigs);
-    }
-
-}
diff --git a/src/tests/java/org/broadinstitute/variant/bcf2/BCF2EncoderDecoderUnitTest.java b/src/tests/java/org/broadinstitute/variant/bcf2/BCF2EncoderDecoderUnitTest.java
deleted file mode 100644
index 76b4f07..0000000
--- a/src/tests/java/org/broadinstitute/variant/bcf2/BCF2EncoderDecoderUnitTest.java
+++ /dev/null
@@ -1,587 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.bcf2;
-
-// the imports for unit testing.
-import org.broadinstitute.variant.VariantBaseTest;
-import org.broadinstitute.variant.variantcontext.writer.BCF2Encoder;
-import org.testng.Assert;
-import org.testng.annotations.BeforeSuite;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-
-public class BCF2EncoderDecoderUnitTest extends VariantBaseTest {
-    private final double FLOAT_TOLERANCE = 1e-6;
-    final List<BCF2TypedValue> primitives = new ArrayList<BCF2TypedValue>();
-    final List<BCF2TypedValue> basicTypes = new ArrayList<BCF2TypedValue>();
-    final List<BCF2TypedValue> forCombinations = new ArrayList<BCF2TypedValue>();
-
-    @BeforeSuite
-    public void before() {
-        basicTypes.add(new BCF2TypedValue(1, BCF2Type.INT8));
-        basicTypes.add(new BCF2TypedValue(1000, BCF2Type.INT16));
-        basicTypes.add(new BCF2TypedValue(1000000, BCF2Type.INT32));
-        basicTypes.add(new BCF2TypedValue(1.2345e6, BCF2Type.FLOAT));
-        basicTypes.add(new BCF2TypedValue("A", BCF2Type.CHAR));
-
-        // small ints
-        primitives.add(new BCF2TypedValue(0, BCF2Type.INT8));
-        primitives.add(new BCF2TypedValue(10, BCF2Type.INT8));
-        primitives.add(new BCF2TypedValue(-1, BCF2Type.INT8));
-        primitives.add(new BCF2TypedValue(100, BCF2Type.INT8));
-        primitives.add(new BCF2TypedValue(-100, BCF2Type.INT8));
-        primitives.add(new BCF2TypedValue(-127, BCF2Type.INT8));    // last value in range
-        primitives.add(new BCF2TypedValue( 127, BCF2Type.INT8));    // last value in range
-
-        // medium ints
-        primitives.add(new BCF2TypedValue(-1000, BCF2Type.INT16));
-        primitives.add(new BCF2TypedValue(1000, BCF2Type.INT16));
-        primitives.add(new BCF2TypedValue(-128, BCF2Type.INT16));    // first value in range
-        primitives.add(new BCF2TypedValue( 128, BCF2Type.INT16));    // first value in range
-        primitives.add(new BCF2TypedValue(-32767, BCF2Type.INT16)); // last value in range
-        primitives.add(new BCF2TypedValue( 32767, BCF2Type.INT16)); // last value in range
-
-        // larger ints
-        primitives.add(new BCF2TypedValue(-32768, BCF2Type.INT32)); // first value in range
-        primitives.add(new BCF2TypedValue( 32768, BCF2Type.INT32)); // first value in range
-        primitives.add(new BCF2TypedValue(-100000, BCF2Type.INT32));
-        primitives.add(new BCF2TypedValue(100000, BCF2Type.INT32));
-        primitives.add(new BCF2TypedValue(-2147483647, BCF2Type.INT32));
-        primitives.add(new BCF2TypedValue(2147483647, BCF2Type.INT32));
-
-        // floats
-        primitives.add(new BCF2TypedValue(0.0, BCF2Type.FLOAT));
-        primitives.add(new BCF2TypedValue(-0.0, BCF2Type.FLOAT));
-        primitives.add(new BCF2TypedValue(1.0, BCF2Type.FLOAT));
-        primitives.add(new BCF2TypedValue(-1.0, BCF2Type.FLOAT));
-        primitives.add(new BCF2TypedValue(1.1, BCF2Type.FLOAT));
-        primitives.add(new BCF2TypedValue(-1.1, BCF2Type.FLOAT));
-        primitives.add(new BCF2TypedValue(5.0 / 3.0, BCF2Type.FLOAT));
-        primitives.add(new BCF2TypedValue(-5.0 / 3.0, BCF2Type.FLOAT));
-        primitives.add(new BCF2TypedValue(1.23e3, BCF2Type.FLOAT));
-        primitives.add(new BCF2TypedValue(1.23e6, BCF2Type.FLOAT));
-        primitives.add(new BCF2TypedValue(1.23e9, BCF2Type.FLOAT));
-        primitives.add(new BCF2TypedValue(1.23e12, BCF2Type.FLOAT));
-        primitives.add(new BCF2TypedValue(1.23e15, BCF2Type.FLOAT));
-        primitives.add(new BCF2TypedValue(-1.23e3, BCF2Type.FLOAT));
-        primitives.add(new BCF2TypedValue(-1.23e6, BCF2Type.FLOAT));
-        primitives.add(new BCF2TypedValue(-1.23e9, BCF2Type.FLOAT));
-        primitives.add(new BCF2TypedValue(-1.23e12, BCF2Type.FLOAT));
-        primitives.add(new BCF2TypedValue(-1.23e15, BCF2Type.FLOAT));
-        primitives.add(new BCF2TypedValue(Float.MIN_VALUE, BCF2Type.FLOAT));
-        primitives.add(new BCF2TypedValue(Float.MAX_VALUE, BCF2Type.FLOAT));
-        primitives.add(new BCF2TypedValue(Double.NEGATIVE_INFINITY, BCF2Type.FLOAT));
-        primitives.add(new BCF2TypedValue(Double.POSITIVE_INFINITY, BCF2Type.FLOAT));
-        primitives.add(new BCF2TypedValue(Double.NaN, BCF2Type.FLOAT));
-
-        // strings
-        //primitives.add(new BCF2TypedValue("", BCFType.CHAR)); <- will be null (which is right)
-        primitives.add(new BCF2TypedValue("S", BCF2Type.CHAR));
-        primitives.add(new BCF2TypedValue("S2", BCF2Type.CHAR));
-        primitives.add(new BCF2TypedValue("12345678910", BCF2Type.CHAR));
-        primitives.add(new BCF2TypedValue("ABCDEFGHIJKLMNOPQRSTUVWXYZ", BCF2Type.CHAR));
-        primitives.add(new BCF2TypedValue("ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ", BCF2Type.CHAR));
-
-        // missing values
-        for ( BCF2Type type : BCF2Type.values() ) {
-            primitives.add(new BCF2TypedValue(null, type));
-        }
-
-        forCombinations.add(new BCF2TypedValue(10, BCF2Type.INT8));
-        forCombinations.add(new BCF2TypedValue(100, BCF2Type.INT8));
-        forCombinations.add(new BCF2TypedValue(-100, BCF2Type.INT8));
-        forCombinations.add(new BCF2TypedValue(-128, BCF2Type.INT16));    // first value in range
-        forCombinations.add(new BCF2TypedValue( 128, BCF2Type.INT16));    // first value in range
-        forCombinations.add(new BCF2TypedValue(-100000, BCF2Type.INT32));
-        forCombinations.add(new BCF2TypedValue(100000, BCF2Type.INT32));
-        forCombinations.add(new BCF2TypedValue(0.0, BCF2Type.FLOAT));
-        forCombinations.add(new BCF2TypedValue(1.23e6, BCF2Type.FLOAT));
-        forCombinations.add(new BCF2TypedValue(-1.23e6, BCF2Type.FLOAT));
-        forCombinations.add(new BCF2TypedValue("S", BCF2Type.CHAR));
-        forCombinations.add(new BCF2TypedValue("ABCDEFGHIJKLMNOPQRSTUVWXYZ", BCF2Type.CHAR));
-        forCombinations.add(new BCF2TypedValue("ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ", BCF2Type.CHAR));
-
-        // missing values
-        for ( BCF2Type type : BCF2Type.values() ) {
-            forCombinations.add(new BCF2TypedValue(null, type));
-        }
-    }
-
-    // --------------------------------------------------------------------------------
-    //
-    // merge case Provider
-    //
-    // --------------------------------------------------------------------------------
-
-    private class BCF2TypedValue {
-        final BCF2Type type;
-        final Object value;
-
-        private BCF2TypedValue(final int value, final BCF2Type type) {
-            this(new Integer(value), type);
-        }
-
-        private BCF2TypedValue(final double value, final BCF2Type type) {
-            this(new Double(value), type);
-        }
-
-        private BCF2TypedValue(final Object value, final BCF2Type type) {
-            this.type = type;
-            this.value = value;
-        }
-
-        public boolean isMissing() { return value == null; }
-
-        @Override
-        public String toString() {
-            return String.format("%s of %s", value, type);
-        }
-    }
-
-    // -----------------------------------------------------------------
-    //
-    // Test encoding of basic types
-    //
-    // -----------------------------------------------------------------
-
-    @DataProvider(name = "BCF2EncodingTestProviderBasicTypes")
-    public Object[][] BCF2EncodingTestProviderBasicTypes() {
-        List<Object[]> tests = new ArrayList<Object[]>();
-        for ( BCF2TypedValue tv : basicTypes )
-            tests.add(new Object[]{Arrays.asList(tv)});
-        return tests.toArray(new Object[][]{});
-    }
-
-    private interface EncodeMe {
-        public void encode(final BCF2Encoder encoder, final BCF2TypedValue tv) throws IOException;
-    }
-
-
-    @Test(dataProvider = "BCF2EncodingTestProviderBasicTypes")
-    public void testBCF2BasicTypesWithStaticCalls(final List<BCF2TypedValue> toEncode) throws IOException {
-        testBCF2BasicTypesWithEncodeMe(toEncode,
-                new EncodeMe() {
-                    @Override
-                    public void encode(final BCF2Encoder encoder, final BCF2TypedValue tv) throws IOException {
-                        switch ( tv.type ) {
-                            case INT8:
-                            case INT16:
-                            case INT32:
-                                encoder.encodeTypedInt((Integer)tv.value, tv.type);
-                                break;
-                            case FLOAT:
-                                encoder.encodeTypedFloat((Double)tv.value);
-                                break;
-                            case CHAR:
-                                encoder.encodeTypedString((String)tv.value);
-                                break;
-                        }
-                    }
-                });
-    }
-
-    @Test(dataProvider = "BCF2EncodingTestProviderBasicTypes")
-    public void testBCF2BasicTypesWithObjectType(final List<BCF2TypedValue> toEncode) throws IOException {
-        testBCF2BasicTypesWithEncodeMe(toEncode,
-                new EncodeMe() {
-                    @Override
-                    public void encode(final BCF2Encoder encoder, final BCF2TypedValue tv) throws IOException {
-                        encoder.encodeTyped(tv.value, tv.type);
-                    }
-                });
-    }
-
-    @Test(dataProvider = "BCF2EncodingTestProviderBasicTypes")
-    public void testBCF2BasicTypesWithObjectNoType(final List<BCF2TypedValue> toEncode) throws IOException {
-        testBCF2BasicTypesWithEncodeMe(toEncode,
-                new EncodeMe() {
-                    @Override
-                    public void encode(final BCF2Encoder encoder, final BCF2TypedValue tv) throws IOException {
-                        encoder.encode(tv.value);
-                    }
-                });
-    }
-
-    public void testBCF2BasicTypesWithEncodeMe(final List<BCF2TypedValue> toEncode, final EncodeMe func) throws IOException {
-        for ( final BCF2TypedValue tv : toEncode ) {
-            BCF2Encoder encoder = new BCF2Encoder();
-            func.encode(encoder, tv);
-
-            BCF2Decoder decoder = new BCF2Decoder(encoder.getRecordBytes());
-            final Object decoded = decoder.decodeTypedValue();
-
-            Assert.assertNotNull(decoded);
-            Assert.assertFalse(decoded instanceof List);
-            myAssertEquals(tv, decoded);
-        }
-    }
-
-    @Test(dataProvider = "BCF2EncodingTestProviderBasicTypes")
-    public void testBCF2EncodingVectors(final List<BCF2TypedValue> toEncode) throws IOException {
-        for ( final BCF2TypedValue tv : toEncode ) {
-            for ( final int length : Arrays.asList(2, 5, 10, 15, 20, 25) ) {
-                BCF2Encoder encoder = new BCF2Encoder();
-                List<Object> expected = Collections.nCopies(length, tv.value);
-                encoder.encodeTyped(expected, tv.type);
-
-                BCF2Decoder decoder = new BCF2Decoder(encoder.getRecordBytes());
-                final Object decoded = decoder.decodeTypedValue();
-
-                Assert.assertTrue(decoded instanceof List);
-                final List<Object> decodedList = (List<Object>)decoded;
-                Assert.assertEquals(decodedList.size(), expected.size());
-                for ( Object decodedValue : decodedList )
-                    myAssertEquals(tv, decodedValue);
-            }
-        }
-    }
-
-    @DataProvider(name = "BCF2EncodingTestProviderSingletons")
-    public Object[][] BCF2EncodingTestProviderSingletons() {
-        List<Object[]> tests = new ArrayList<Object[]>();
-        for ( BCF2TypedValue tv : primitives )
-            tests.add(new Object[]{Arrays.asList(tv)});
-        return tests.toArray(new Object[][]{});
-    }
-
-    @Test(dataProvider = "BCF2EncodingTestProviderSingletons")
-    public void testBCF2EncodingSingletons(final List<BCF2TypedValue> toEncode) throws IOException {
-        final byte[] record = encodeRecord(toEncode);
-        decodeRecord(toEncode, record);
-    }
-
-    // -----------------------------------------------------------------
-    //
-    // Test encoding of vectors
-    //
-    // -----------------------------------------------------------------
-
-    @DataProvider(name = "BCF2EncodingTestProviderSequences")
-    public Object[][] BCF2EncodingTestProviderSequences() {
-        List<Object[]> tests = new ArrayList<Object[]>();
-        for ( BCF2TypedValue tv1 : forCombinations )
-            for ( BCF2TypedValue tv2 : forCombinations )
-                for ( BCF2TypedValue tv3 : forCombinations )
-                    tests.add(new Object[]{Arrays.asList(tv1, tv2, tv3)});
-        return tests.toArray(new Object[][]{});
-    }
-
-    @Test(dataProvider = "BCF2EncodingTestProviderBasicTypes")
-    public void testBCF2EncodingVectorsWithMissing(final List<BCF2TypedValue> toEncode) throws IOException {
-        for ( final BCF2TypedValue tv : toEncode ) {
-            if ( tv.type != BCF2Type.CHAR ) {
-                for ( final int length : Arrays.asList(2, 5, 10, 15, 20, 25) ) {
-                    final byte td = BCF2Utils.encodeTypeDescriptor(1, tv.type);
-
-                    final BCF2Encoder encoder = new BCF2Encoder();
-                    for ( int i = 0; i < length; i++ ) {
-                        encoder.encodeRawValue(i % 2 == 0 ? null : tv.value, tv.type);
-                    }
-
-                    final BCF2Decoder decoder = new BCF2Decoder(encoder.getRecordBytes());
-
-                    for ( int i = 0; i < length; i++ ) {
-                        final Object decoded = decoder.decodeTypedValue(td);
-                        myAssertEquals(i % 2 == 0 ? new BCF2TypedValue(null, tv.type) : tv, decoded);
-                    }
-                }
-            }
-        }
-    }
-
-    @Test(dataProvider = "BCF2EncodingTestProviderSequences", dependsOnMethods = "testBCF2EncodingSingletons")
-    public void testBCF2EncodingTestProviderSequences(final List<BCF2TypedValue> toEncode) throws IOException {
-        final byte[] record = encodeRecord(toEncode);
-        decodeRecord(toEncode, record);
-    }
-
-    // -----------------------------------------------------------------
-    //
-    // Test strings and lists of strings
-    //
-    // -----------------------------------------------------------------
-
-    @DataProvider(name = "ListOfStrings")
-    public Object[][] listOfStringsProvider() {
-        List<Object[]> tests = new ArrayList<Object[]>();
-        tests.add(new Object[]{Arrays.asList("s1", "s2"), ",s1,s2"});
-        tests.add(new Object[]{Arrays.asList("s1", "s2", "s3"), ",s1,s2,s3"});
-        tests.add(new Object[]{Arrays.asList("s1", "s2", "s3", "s4"), ",s1,s2,s3,s4"});
-        return tests.toArray(new Object[][]{});
-    }
-
-    @Test(dataProvider = "ListOfStrings")
-    public void testEncodingListOfString(List<String> strings, String expected) throws IOException {
-        final String collapsed = BCF2Utils.collapseStringList(strings);
-        Assert.assertEquals(collapsed, expected);
-        Assert.assertEquals(BCF2Utils.explodeStringList(collapsed), strings);
-    }
-
-    // -----------------------------------------------------------------
-    //
-    // Tests to determine the best type of arrays of integers
-    //
-    // -----------------------------------------------------------------
-
-    @DataProvider(name = "BestIntTypeTests")
-    public Object[][] BestIntTypeTests() {
-        List<Object[]> tests = new ArrayList<Object[]>();
-        tests.add(new Object[]{Arrays.asList(1), BCF2Type.INT8});
-        tests.add(new Object[]{Arrays.asList(1, 10), BCF2Type.INT8});
-        tests.add(new Object[]{Arrays.asList(1, 10, 100), BCF2Type.INT8});
-        tests.add(new Object[]{Arrays.asList(1, -1), BCF2Type.INT8});
-        tests.add(new Object[]{Arrays.asList(1, 1000), BCF2Type.INT16});
-        tests.add(new Object[]{Arrays.asList(1, 1000, 10), BCF2Type.INT16});
-        tests.add(new Object[]{Arrays.asList(1, 1000, 100), BCF2Type.INT16});
-        tests.add(new Object[]{Arrays.asList(1000), BCF2Type.INT16});
-        tests.add(new Object[]{Arrays.asList(100000), BCF2Type.INT32});
-        tests.add(new Object[]{Arrays.asList(100000, 10), BCF2Type.INT32});
-        tests.add(new Object[]{Arrays.asList(100000, 100), BCF2Type.INT32});
-        tests.add(new Object[]{Arrays.asList(100000, 1, -10), BCF2Type.INT32});
-        tests.add(new Object[]{Arrays.asList(-100000, 1, -10), BCF2Type.INT32});
-        return tests.toArray(new Object[][]{});
-    }
-
-    @Test(dataProvider = "BestIntTypeTests")
-    public void determineBestEncoding(final List<Integer> ints, final BCF2Type expectedType) throws IOException {
-        BCF2Encoder encoder = new BCF2Encoder();
-        Assert.assertEquals(BCF2Utils.determineIntegerType(ints), expectedType);
-        Assert.assertEquals(BCF2Utils.determineIntegerType(toPrimitive(ints.toArray(new Integer[0]))), expectedType);
-    }
-
-    private static int[] toPrimitive ( final Integer[] array ) {
-        if ( array == null ) {
-            return null;
-        }
-        else if ( array.length == 0 ) {
-            return new int[0];
-        }
-
-        final int[] result = new int[array.length];
-        for (int i = 0; i < array.length; i++) {
-            result[i] = array[i].intValue();
-        }
-        return result;
-    }
-
-    // -----------------------------------------------------------------
-    //
-    // Tests managing and skipping multiple blocks
-    //
-    // -----------------------------------------------------------------
-
-    @Test(dataProvider = "BCF2EncodingTestProviderSequences", dependsOnMethods = "testBCF2EncodingTestProviderSequences")
-    public void testReadAndSkipWithMultipleBlocks(final List<BCF2TypedValue> block) throws IOException {
-        testReadAndSkipWithMultipleBlocks(block, forCombinations);
-        testReadAndSkipWithMultipleBlocks(forCombinations, block);
-    }
-
-    public void testReadAndSkipWithMultipleBlocks(final List<BCF2TypedValue> block1, final List<BCF2TypedValue> block2) throws IOException {
-        final byte[] record1 = encodeRecord(block1);
-        final byte[] record2 = encodeRecord(block2);
-
-        // each record is individually good
-        decodeRecord(block1, record1);
-        decodeRecord(block2, record2);
-
-        BCF2Decoder decoder = new BCF2Decoder();
-
-        // test setting
-        decoder.setRecordBytes(record1);
-        decodeRecord(block1, decoder);
-        decoder.setRecordBytes(record2);
-        decodeRecord(block2, decoder);
-
-        // test combining the streams
-        final byte[] combined = combineRecords(record1, record2);
-        final List<BCF2TypedValue> combinedObjects = new ArrayList<BCF2TypedValue>(block1);
-        combinedObjects.addAll(block2);
-
-        // the combined bytes is the same as the combined objects
-        InputStream stream = new ByteArrayInputStream(combined);
-        decoder.readNextBlock(record1.length, stream);
-        decodeRecord(block1, decoder);
-        decoder.readNextBlock(record2.length, stream);
-        decodeRecord(block2, decoder);
-
-        // skipping the first block allows us to read the second block directly
-        stream = new ByteArrayInputStream(combined);
-        decoder.skipNextBlock(record1.length, stream);
-        decoder.readNextBlock(record2.length, stream);
-        decodeRecord(block2, decoder);
-    }
-
-    // -----------------------------------------------------------------
-    //
-    // Test encoding / decoding arrays of ints
-    //
-    // This checks that we can encode and decode correctly with the
-    // low-level decodeIntArray function arrays of values.  This
-    // has to be pretty comprehensive as decodeIntArray is a highly optimized
-    // piece of code with lots of edge cases.  The values we are encoding
-    // don't really matter -- just that the values come back as expected.
-    //
-    // -----------------------------------------------------------------
-
-    @DataProvider(name = "IntArrays")
-    public Object[][] makeIntArrays() {
-        List<Object[]> tests = new ArrayList<Object[]>();
-
-        for ( int nValues : Arrays.asList(0, 1, 2, 5, 10, 100) ) {
-            for ( int nPad : Arrays.asList(0, 1, 2, 5, 10, 100) ) {
-                int nElements = nValues + nPad;
-
-                List<Integer> values = new ArrayList<Integer>(nElements);
-
-                // add nValues from 0 to nValues - 1
-                for ( int i = 0; i < nValues; i++ )
-                    values.add(i);
-
-                // add nPad nulls
-                for ( int i = 0; i < nPad; i++ )
-                    values.add(null);
-
-                tests.add(new Object[]{values});
-            }
-        }
-
-        return tests.toArray(new Object[][]{});
-    }
-
-    @Test(dataProvider = "IntArrays")
-    public void testIntArrays(final List<Integer> ints) throws IOException {
-        final BCF2Encoder encoder = new BCF2Encoder();
-        encoder.encodeTyped(ints, BCF2Type.INT16);
-
-        final BCF2Decoder decoder = new BCF2Decoder(encoder.getRecordBytes());
-
-        final byte typeDescriptor = decoder.readTypeDescriptor();
-
-        // read the int[] with the low-level version
-        final int size = decoder.decodeNumberOfElements(typeDescriptor);
-        final int[] decoded = decoder.decodeIntArray(typeDescriptor, size);
-
-        if ( isMissing(ints) ) {
-            // we expect that the result is null in this case
-            Assert.assertNull(decoded, "Encoded all missing values -- expected null");
-        } else {
-            // we expect at least some values to come back
-            Assert.assertTrue(decoded.length > 0, "Must have at least 1 element for non-null encoded data");
-
-            // check corresponding values
-            for ( int i = 0; i < ints.size(); i++ ) {
-                final Integer expected = ints.get(i);
-
-                if ( expected == null ) {
-                    Assert.assertTrue(decoded.length <= i, "we expect decoded to be truncated for missing values");
-                } else {
-                    Assert.assertTrue(decoded.length > i, "we expected at least " + i + " values in decoded array");
-                    Assert.assertEquals(decoded[i], (int)expected);
-                }
-            }
-        }
-    }
-
-    // -----------------------------------------------------------------
-    //
-    // Helper routines
-    //
-    // -----------------------------------------------------------------
-
-    private final byte[] combineRecords(final byte[] record1, final byte[] record2) throws IOException {
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        baos.write(record1);
-        baos.write(record2);
-        return baos.toByteArray();
-    }
-
-    private final byte[] encodeRecord(final List<BCF2TypedValue> toEncode) throws IOException {
-        BCF2Encoder encoder = new BCF2Encoder();
-
-        for ( final BCF2TypedValue tv : toEncode ) {
-            if ( tv.isMissing() )
-                encoder.encodeTypedMissing(tv.type);
-            else {
-                final BCF2Type encodedType = encoder.encode(tv.value);
-                if ( tv.type != null ) // only if we have an expectation
-                    Assert.assertEquals(encodedType, tv.type);
-            }
-        }
-
-        // check output
-        final byte[] record = encoder.getRecordBytes();
-        Assert.assertNotNull(record);
-        Assert.assertTrue(record.length > 0);
-        return record;
-    }
-
-    private final void decodeRecord(final List<BCF2TypedValue> toEncode, final byte[] record) throws IOException {
-        decodeRecord(toEncode, new BCF2Decoder(record));
-    }
-
-    private final void decodeRecord(final List<BCF2TypedValue> toEncode, final BCF2Decoder decoder) throws IOException {
-        for ( final BCF2TypedValue tv : toEncode ) {
-            Assert.assertFalse(decoder.blockIsFullyDecoded());
-            final Object decoded = decoder.decodeTypedValue();
-
-            myAssertEquals(tv, decoded);
-        }
-
-        Assert.assertTrue(decoder.blockIsFullyDecoded());
-    }
-
-    private final void myAssertEquals(final BCF2TypedValue tv, final Object decoded) {
-        if ( tv.value == null ) { // special needs for instanceof double
-            Assert.assertEquals(decoded, tv.value);
-        } else if ( tv.type == BCF2Type.FLOAT ) { // need tolerance for floats, and they aren't null
-            Assert.assertTrue(decoded instanceof Double);
-
-            final double valueFloat = (Double)tv.value;
-            final double decodedFloat = (Double)decoded;
-
-            VariantBaseTest.assertEqualsDoubleSmart(decodedFloat, valueFloat, FLOAT_TOLERANCE);
-        } else
-            Assert.assertEquals(decoded, tv.value);
-    }
-
-    private final boolean isMissing(final List<Integer> values) {
-        if ( values != null )
-            for ( Integer value : values )
-                if ( value != null )
-                    return false;
-        return true;
-    }
-}
\ No newline at end of file
diff --git a/src/tests/java/org/broadinstitute/variant/bcf2/BCF2UtilsUnitTest.java b/src/tests/java/org/broadinstitute/variant/bcf2/BCF2UtilsUnitTest.java
deleted file mode 100644
index 1e0cf97..0000000
--- a/src/tests/java/org/broadinstitute/variant/bcf2/BCF2UtilsUnitTest.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.bcf2;
-
-import org.broadinstitute.variant.VariantBaseTest;
-import org.broadinstitute.variant.bcf2.BCF2Utils;
-import org.broadinstitute.variant.utils.GeneralUtils;
-import org.broadinstitute.variant.vcf.*;
-
-import java.util.*;
-
-import org.broadinstitute.variant.vcf.VCFSimpleHeaderLine;
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-/**
- * Tests for BCF2Utils
- */
-public final class BCF2UtilsUnitTest extends VariantBaseTest {
-    @DataProvider(name = "CollapseExpandTest")
-    public Object[][] makeCollapseExpandTest() {
-        List<Object[]> tests = new ArrayList<Object[]>();
-        tests.add(new Object[]{Arrays.asList("A"), "A", false});
-        tests.add(new Object[]{Arrays.asList("A", "B"), ",A,B", true});
-        tests.add(new Object[]{Arrays.asList("AB"), "AB", false});
-        tests.add(new Object[]{Arrays.asList("AB", "C"), ",AB,C", true});
-        tests.add(new Object[]{Arrays.asList(), "", false});
-        return tests.toArray(new Object[][]{});
-    }
-
-    @Test(dataProvider = "CollapseExpandTest")
-    public void testCollapseExpandTest(final List<String> in, final String expectedCollapsed, final boolean isCollapsed) {
-        final String actualCollapsed = BCF2Utils.collapseStringList(in);
-        Assert.assertEquals(actualCollapsed, expectedCollapsed);
-        Assert.assertEquals(BCF2Utils.isCollapsedString(actualCollapsed), isCollapsed);
-        if ( isCollapsed )
-            Assert.assertEquals(BCF2Utils.explodeStringList(actualCollapsed), in);
-    }
-
-    @Test
-    public void testCreateDictionary() {
-        final List<VCFHeaderLine> inputLines = new ArrayList<VCFHeaderLine>();
-        int counter = 0;
-        inputLines.add(new VCFFilterHeaderLine(String.valueOf(counter++)));
-        inputLines.add(new VCFFilterHeaderLine(String.valueOf(counter++)));
-        inputLines.add(new VCFContigHeaderLine(Collections.singletonMap("ID", String.valueOf(counter++)), counter));
-        inputLines.add(new VCFContigHeaderLine(Collections.singletonMap("ID", String.valueOf(counter++)), counter));
-        inputLines.add(new VCFInfoHeaderLine(String.valueOf(counter++), VCFHeaderLineCount.UNBOUNDED, VCFHeaderLineType.Integer, "x"));
-        inputLines.add(new VCFInfoHeaderLine(String.valueOf(counter++), VCFHeaderLineCount.UNBOUNDED, VCFHeaderLineType.Integer, "x"));
-        inputLines.add(new VCFHeaderLine("x", "misc"));
-        inputLines.add(new VCFHeaderLine("y", "misc"));
-        inputLines.add(new VCFSimpleHeaderLine("GATKCommandLine","z","misc"));
-        inputLines.add(new VCFFormatHeaderLine(String.valueOf(counter++), VCFHeaderLineCount.UNBOUNDED, VCFHeaderLineType.Integer, "x"));
-        inputLines.add(new VCFFormatHeaderLine(String.valueOf(counter++), VCFHeaderLineCount.UNBOUNDED, VCFHeaderLineType.Integer, "x"));
-        final int inputLineCounter = counter;
-        final VCFHeader inputHeader = new VCFHeader(new LinkedHashSet<VCFHeaderLine>(inputLines));
-        final ArrayList<String> dict = BCF2Utils.makeDictionary(inputHeader);
-        final int dict_size = dict.size();
-        Assert.assertEquals(7,dict_size);
-    }
-
-
-    @DataProvider(name = "HeaderOrderTestProvider")
-    public Object[][] makeHeaderOrderTestProvider() {
-        final List<VCFHeaderLine> inputLines = new ArrayList<VCFHeaderLine>();
-        final List<VCFHeaderLine> extraLines = new ArrayList<VCFHeaderLine>();
-
-        int counter = 0;
-        inputLines.add(new VCFFilterHeaderLine(String.valueOf(counter++)));
-        inputLines.add(new VCFFilterHeaderLine(String.valueOf(counter++)));
-        inputLines.add(new VCFContigHeaderLine(Collections.singletonMap("ID", String.valueOf(counter++)), counter));
-        inputLines.add(new VCFContigHeaderLine(Collections.singletonMap("ID", String.valueOf(counter++)), counter));
-        inputLines.add(new VCFInfoHeaderLine(String.valueOf(counter++), VCFHeaderLineCount.UNBOUNDED, VCFHeaderLineType.Integer, "x"));
-        inputLines.add(new VCFInfoHeaderLine(String.valueOf(counter++), VCFHeaderLineCount.UNBOUNDED, VCFHeaderLineType.Integer, "x"));
-        inputLines.add(new VCFFormatHeaderLine(String.valueOf(counter++), VCFHeaderLineCount.UNBOUNDED, VCFHeaderLineType.Integer, "x"));
-        inputLines.add(new VCFFormatHeaderLine(String.valueOf(counter++), VCFHeaderLineCount.UNBOUNDED, VCFHeaderLineType.Integer, "x"));
-        final int inputLineCounter = counter;
-        final VCFHeader inputHeader = new VCFHeader(new LinkedHashSet<VCFHeaderLine>(inputLines));
-
-        extraLines.add(new VCFFilterHeaderLine(String.valueOf(counter++)));
-        extraLines.add(new VCFContigHeaderLine(Collections.singletonMap("ID", String.valueOf(counter++)), counter));
-        extraLines.add(new VCFInfoHeaderLine(String.valueOf(counter++), VCFHeaderLineCount.UNBOUNDED, VCFHeaderLineType.Integer, "x"));
-        extraLines.add(new VCFFormatHeaderLine(String.valueOf(counter++), VCFHeaderLineCount.UNBOUNDED, VCFHeaderLineType.Integer, "x"));
-        extraLines.add(new VCFHeaderLine("x", "misc"));
-        extraLines.add(new VCFHeaderLine("y", "misc"));
-
-        List<Object[]> tests = new ArrayList<Object[]>();
-        for ( final int extrasToTake : Arrays.asList(0, 1, 2, 3) ) {
-            final List<VCFHeaderLine> empty = Collections.emptyList();
-            final List<List<VCFHeaderLine>> permutations = extrasToTake == 0
-                    ? Collections.singletonList(empty)
-                    : GeneralUtils.makePermutations(extraLines, extrasToTake, false);
-            for ( final List<VCFHeaderLine> permutation : permutations ) {
-                for ( int i = -1; i < inputLines.size(); i++ ) {
-                    final List<VCFHeaderLine> allLines = new ArrayList<VCFHeaderLine>(inputLines);
-                    if ( i >= 0 )
-                        allLines.remove(i);
-                    allLines.addAll(permutation);
-                    final VCFHeader testHeader = new VCFHeader(new LinkedHashSet<VCFHeaderLine>(allLines));
-                    final boolean expectedConsistent = expectedConsistent(testHeader, inputLineCounter);
-                    tests.add(new Object[]{inputHeader, testHeader, expectedConsistent});
-                }
-            }
-        }
-
-        // sample name tests
-        final List<List<String>> sampleNameTests = Arrays.asList(
-                new ArrayList<String>(),
-                Arrays.asList("A"),
-                Arrays.asList("A", "B"),
-                Arrays.asList("A", "B", "C"));
-        for ( final List<String> inSamples : sampleNameTests ) {
-            for ( final List<String> testSamples : sampleNameTests ) {
-                final VCFHeader inputHeaderWithSamples = new VCFHeader(inputHeader.getMetaDataInInputOrder(), inSamples);
-
-                final List<List<String>> permutations = testSamples.isEmpty()
-                        ? Collections.singletonList(testSamples)
-                        : GeneralUtils.makePermutations(testSamples, testSamples.size(), false);
-                for ( final List<String> testSamplesPermutation : permutations ) {
-                    final VCFHeader testHeaderWithSamples = new VCFHeader(inputHeader.getMetaDataInInputOrder(), testSamplesPermutation);
-                    final boolean expectedConsistent = testSamples.equals(inSamples);
-                    tests.add(new Object[]{inputHeaderWithSamples, testHeaderWithSamples, expectedConsistent});
-                }
-            }
-        }
-
-        return tests.toArray(new Object[][]{});
-    }
-
-    private static boolean expectedConsistent(final VCFHeader combinationHeader, final int minCounterForInputLines) {
-        final List<Integer> ids = new ArrayList<Integer>();
-        for ( final VCFHeaderLine line : combinationHeader.getMetaDataInInputOrder() ) {
-            if ( line instanceof VCFIDHeaderLine ) {
-                ids.add(Integer.valueOf(((VCFIDHeaderLine) line).getID()));
-            }
-        }
-
-        // as long as the start contains all of the ids up to minCounterForInputLines in order
-        for ( int i = 0; i < minCounterForInputLines; i++ )
-            if ( i >= ids.size() || ids.get(i) != i )
-                return false;
-
-        return true;
-    }
-
-    //
-    // Test to make sure that we detect correctly the case where we can preserve the genotypes data in a BCF2
-    // even when the header file is slightly different
-    //
-    @Test(dataProvider = "HeaderOrderTestProvider")
-    public void testHeaderOrder(final VCFHeader inputHeader, final VCFHeader testHeader, final boolean expectedConsistent) {
-        final boolean actualOrderConsistency = BCF2Utils.headerLinesAreOrderedConsistently(testHeader, inputHeader);
-        Assert.assertEquals(actualOrderConsistency, expectedConsistent);
-    }
-
-
-
-
-}
diff --git a/src/tests/java/org/broadinstitute/variant/variantcontext/AlleleUnitTest.java b/src/tests/java/org/broadinstitute/variant/variantcontext/AlleleUnitTest.java
deleted file mode 100644
index 7fa652f..0000000
--- a/src/tests/java/org/broadinstitute/variant/variantcontext/AlleleUnitTest.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.variantcontext;
-
-
-// the imports for unit testing.
-
-import org.broadinstitute.variant.VariantBaseTest;
-import org.testng.Assert;
-import org.testng.annotations.BeforeSuite;
-import org.testng.annotations.Test;
-
-//    public Allele(byte[] bases, boolean isRef) {
-//    public Allele(boolean isRef) {
-//    public Allele(String bases, boolean isRef) {
-//    public boolean isReference()        { return isRef; }
-//    public boolean isNonReference()     { return ! isReference(); }
-//    public byte[] getBases() { return bases; }
-//    public boolean equals(Allele other) {
-//    public int length() {
-
-/**
- * Basic unit test for RecalData
- */
-public class AlleleUnitTest extends VariantBaseTest {
-    Allele ARef, A, T, ATIns, ATCIns, NoCall;
-    
-    @BeforeSuite
-    public void before() {
-        A = Allele.create("A");
-        ARef = Allele.create("A", true);
-        T = Allele.create("T");
-
-        ATIns = Allele.create("AT");
-        ATCIns = Allele.create("ATC");
-
-        NoCall = Allele.create(".");
-    }
-
-    @Test
-    public void testCreatingSNPAlleles() {
-        Assert.assertTrue(A.isNonReference());
-        Assert.assertFalse(A.isReference());
-        Assert.assertTrue(A.basesMatch("A"));
-        Assert.assertEquals(A.length(), 1);
-
-        Assert.assertTrue(ARef.isReference());
-        Assert.assertFalse(ARef.isNonReference());
-        Assert.assertTrue(ARef.basesMatch("A"));
-        Assert.assertFalse(ARef.basesMatch("T"));
-
-        Assert.assertTrue(T.isNonReference());
-        Assert.assertFalse(T.isReference());
-        Assert.assertTrue(T.basesMatch("T"));
-        Assert.assertFalse(T.basesMatch("A"));
-    }
-
-    @Test
-    public void testCreatingNoCallAlleles() {
-        Assert.assertTrue(NoCall.isNonReference());
-        Assert.assertFalse(NoCall.isReference());
-        Assert.assertFalse(NoCall.basesMatch("."));
-        Assert.assertEquals(NoCall.length(), 0);
-        Assert.assertTrue(NoCall.isNoCall());
-        Assert.assertFalse(NoCall.isCalled());
-    }
-
-
-    @Test
-    public void testCreatingIndelAlleles() {
-        Assert.assertEquals(ATIns.length(), 2);
-        Assert.assertEquals(ATCIns.length(), 3);
-        Assert.assertEquals(ATIns.getBases(), "AT".getBytes());
-        Assert.assertEquals(ATCIns.getBases(), "ATC".getBytes());
-    }
-
-
-    @Test
-    public void testConstructors1() {
-        Allele a1 = Allele.create("A");
-        Allele a2 = Allele.create("A".getBytes());
-        Allele a3 = Allele.create("A");
-        Allele a4 = Allele.create("A", true);
-
-        Assert.assertTrue(a1.equals(a2));
-        Assert.assertTrue(a1.equals(a3));
-        Assert.assertFalse(a1.equals(a4));
-    }
-
-    @Test
-    public void testInsConstructors() {
-        Allele a1 = Allele.create("AC");
-        Allele a2 = Allele.create("AC".getBytes());
-        Allele a3 = Allele.create("AC");
-        Allele a4 = Allele.create("AC", true);
-
-        Assert.assertTrue(a1.equals(a2));
-        Assert.assertTrue(a1.equals(a3));
-        Assert.assertFalse(a1.equals(a4));
-    }
-
-    @Test
-    public void testEquals() {
-        Assert.assertTrue(ARef.basesMatch(A));
-        Assert.assertFalse(ARef.equals(A));
-        Assert.assertFalse(ARef.equals(ATIns));
-        Assert.assertFalse(ARef.equals(ATCIns));
-
-        Assert.assertTrue(T.basesMatch(T));
-        Assert.assertFalse(T.basesMatch(A));
-        Assert.assertFalse(T.equals(A));
-
-        Assert.assertTrue(ATIns.equals(ATIns));
-        Assert.assertFalse(ATIns.equals(ATCIns));
-        Assert.assertTrue(ATIns.basesMatch("AT"));
-        Assert.assertFalse(ATIns.basesMatch("A"));
-        Assert.assertFalse(ATIns.basesMatch("ATC"));
-
-        Assert.assertTrue(ATIns.basesMatch("AT"));
-        Assert.assertFalse(ATIns.basesMatch("ATC"));
-    }
-
-    @Test (expectedExceptions = IllegalArgumentException.class)
-    public void testBadConstructorArgs1() {
-        byte[] foo = null;
-        Allele.create(foo);
-    }
-
-    @Test (expectedExceptions = IllegalArgumentException.class)
-    public void testBadConstructorArgs2() {
-        Allele.create("x");
-    }
-
-    @Test (expectedExceptions = IllegalArgumentException.class)
-    public void testBadConstructorArgs3() {
-        Allele.create("--");
-    }
-
-    @Test (expectedExceptions = IllegalArgumentException.class)
-    public void testBadConstructorArgs4() {
-        Allele.create("-A");
-    }
-
-    @Test (expectedExceptions = IllegalArgumentException.class)
-    public void testBadConstructorArgs5() {
-        Allele.create("A A");
-    }
-
-    @Test
-    public void testExtend() {
-        Assert.assertEquals("AT", Allele.extend(Allele.create("A"), "T".getBytes()).toString());
-        Assert.assertEquals("ATA", Allele.extend(Allele.create("A"), "TA".getBytes()).toString());
-        Assert.assertEquals("A", Allele.extend(Allele.NO_CALL, "A".getBytes()).toString());
-        Assert.assertEquals("ATCGA", Allele.extend(Allele.create("AT"), "CGA".getBytes()).toString());
-        Assert.assertEquals("ATCGA", Allele.extend(Allele.create("ATC"), "GA".getBytes()).toString());
-    }
-}
\ No newline at end of file
diff --git a/src/tests/java/org/broadinstitute/variant/variantcontext/GenotypeLikelihoodsUnitTest.java b/src/tests/java/org/broadinstitute/variant/variantcontext/GenotypeLikelihoodsUnitTest.java
deleted file mode 100644
index 5621301..0000000
--- a/src/tests/java/org/broadinstitute/variant/variantcontext/GenotypeLikelihoodsUnitTest.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.variantcontext;
-
-
-// the imports for unit testing.
-
-
-import org.broad.tribble.TribbleException;
-import org.broadinstitute.variant.VariantBaseTest;
-import org.broadinstitute.variant.utils.GeneralUtils;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.util.Arrays;
-import java.util.EnumMap;
-import java.util.List;
-
-
-/**
- * Basic unit test for Genotype likelihoods objects
- */
-public class GenotypeLikelihoodsUnitTest extends VariantBaseTest {
-    double [] v = new double[]{-10.5, -1.25, -5.11};
-    final static String vGLString = "-10.50,-1.25,-5.11";
-    final static String vPLString = "93,0,39";
-    double[] triAllelic = new double[]{-4.2,-2.0,-3.0,-1.6,0.0,-4.0}; //AA,AB,AC,BB,BC,CC
-
-    @Test
-    public void testFromVector2() {
-        GenotypeLikelihoods gl = GenotypeLikelihoods.fromLog10Likelihoods(v);
-        assertDoubleArraysAreEqual(gl.getAsVector(), v);
-        Assert.assertEquals(gl.getAsString(), vPLString);
-    }
-
-    @Test
-    public void testFromString1() {
-        GenotypeLikelihoods gl = GenotypeLikelihoods.fromPLField(vPLString);
-        assertDoubleArraysAreEqual(gl.getAsVector(), new double[]{-9.3, 0, -3.9});
-        Assert.assertEquals(gl.getAsString(), vPLString);
-    }
-
-    @Test
-    public void testFromString2() {
-        GenotypeLikelihoods gl = GenotypeLikelihoods.fromGLField(vGLString);
-        assertDoubleArraysAreEqual(gl.getAsVector(), v);
-        Assert.assertEquals(gl.getAsString(), vPLString);
-    }
-
-    @Test (expectedExceptions = TribbleException.class)
-    public void testErrorBadFormat() {
-        GenotypeLikelihoods gl = GenotypeLikelihoods.fromPLField("adf,b,c");
-        gl.getAsVector();
-    }
-
-    @Test
-    public void testGetAsMap(){
-        GenotypeLikelihoods gl = GenotypeLikelihoods.fromLog10Likelihoods(v);
-        //Log scale
-        EnumMap<GenotypeType,Double> glMap = gl.getAsMap(false);
-        Assert.assertEquals(v[GenotypeType.HOM_REF.ordinal()-1],glMap.get(GenotypeType.HOM_REF));
-        Assert.assertEquals(v[GenotypeType.HET.ordinal()-1],glMap.get(GenotypeType.HET));
-        Assert.assertEquals(v[GenotypeType.HOM_VAR.ordinal()-1],glMap.get(GenotypeType.HOM_VAR));
-
-        //Linear scale
-        glMap = gl.getAsMap(true);
-        double [] vl = GeneralUtils.normalizeFromLog10(v);
-        Assert.assertEquals(vl[GenotypeType.HOM_REF.ordinal()-1],glMap.get(GenotypeType.HOM_REF));
-        Assert.assertEquals(vl[GenotypeType.HET.ordinal()-1],glMap.get(GenotypeType.HET));
-        Assert.assertEquals(vl[GenotypeType.HOM_VAR.ordinal()-1],glMap.get(GenotypeType.HOM_VAR));
-
-        //Test missing likelihoods
-        gl = GenotypeLikelihoods.fromPLField(".");
-        glMap = gl.getAsMap(false);
-        Assert.assertNull(glMap);
-
-    }
-
-    @Test
-    public void testCalculateNumLikelihoods() {    
-        
-        for (int nAlleles=2; nAlleles<=5; nAlleles++)
-            // simplest case: diploid
-            Assert.assertEquals(GenotypeLikelihoods.numLikelihoods(nAlleles, 2), nAlleles*(nAlleles+1)/2);
-
-        // some special cases: ploidy = 20, #alleles = 4
-        Assert.assertEquals(GenotypeLikelihoods.numLikelihoods(4, 20), 1771);
-    }
-    
-    @Test
-    public void testGetLog10GQ(){
-        GenotypeLikelihoods gl = GenotypeLikelihoods.fromPLField(vPLString);
-
-        //GQ for the best guess genotype
-        Assert.assertEquals(gl.getLog10GQ(GenotypeType.HET),-3.9);
-
-        double[] test = GeneralUtils.normalizeFromLog10(gl.getAsVector());
-
-        //GQ for the other genotypes
-        Assert.assertEquals(gl.getLog10GQ(GenotypeType.HOM_REF), Math.log10(1.0 - test[GenotypeType.HOM_REF.ordinal()-1]));
-        Assert.assertEquals(gl.getLog10GQ(GenotypeType.HOM_VAR), Math.log10(1.0 - test[GenotypeType.HOM_VAR.ordinal()-1]));
-
-       //Test missing likelihoods
-        gl = GenotypeLikelihoods.fromPLField(".");
-        Assert.assertEquals(gl.getLog10GQ(GenotypeType.HOM_REF),Double.NEGATIVE_INFINITY);
-        Assert.assertEquals(gl.getLog10GQ(GenotypeType.HET),Double.NEGATIVE_INFINITY);
-        Assert.assertEquals(gl.getLog10GQ(GenotypeType.HOM_VAR),Double.NEGATIVE_INFINITY);
-
-    }
-
-    @Test
-    public void testgetQualFromLikelihoods() {
-        double[] likelihoods = new double[]{-1, 0, -2};
-        // qual values we expect for each possible "best" genotype
-        double[] expectedQuals = new double[]{-0.04100161, -1, -0.003930294};
-
-        for ( int i = 0; i < likelihoods.length; i++ ) {
-            Assert.assertEquals(GenotypeLikelihoods.getGQLog10FromLikelihoods(i, likelihoods), expectedQuals[i], 1e-6,
-                    "GQ value for genotype " + i + " was not calculated correctly");
-        }
-    }
-
-    // this test is completely broken, the method is wrong.
-    public void testGetQualFromLikelihoodsMultiAllelicBroken() {
-        GenotypeLikelihoods gl = GenotypeLikelihoods.fromLog10Likelihoods(triAllelic);
-        double actualGQ = gl.getLog10GQ(GenotypeType.HET);
-        double expectedGQ = 1.6;
-        Assert.assertEquals(actualGQ,expectedGQ);
-    }
-
-    public void testGetQualFromLikelihoodsMultiAllelic() {
-        GenotypeLikelihoods gl = GenotypeLikelihoods.fromLog10Likelihoods(triAllelic);
-        Allele ref = Allele.create((byte)'A',true);
-        Allele alt1 = Allele.create((byte)'C');
-        Allele alt2 = Allele.create((byte)'T');
-        List<Allele> allAlleles = Arrays.asList(ref,alt1,alt2);
-        List<Allele> gtAlleles = Arrays.asList(alt1,alt2);
-        GenotypeBuilder gtBuilder = new GenotypeBuilder();
-        gtBuilder.alleles(gtAlleles);
-        double actualGQ = gl.getLog10GQ(gtBuilder.make(),allAlleles);
-        double expectedGQ = 1.6;
-        Assert.assertEquals(actualGQ,expectedGQ);
-    }
-
-    private void assertDoubleArraysAreEqual(double[] v1, double[] v2) {
-        Assert.assertEquals(v1.length, v2.length);
-        for ( int i = 0; i < v1.length; i++ ) {
-            Assert.assertEquals(v1[i], v2[i], 1e-6);
-        }
-    }
-
-    @Test
-    public void testCalculatePLindex(){
-        int counter = 0;
-        for ( int i = 0; i <= 3; i++ ) {
-            for ( int j = i; j <= 3; j++ ) {
-                Assert.assertEquals(GenotypeLikelihoods.calculatePLindex(i, j), GenotypeLikelihoods.PLindexConversion[counter++], "PL index of alleles " + i + "," + j + " was not calculated correctly");
-            }
-        }
-    }
-
-    @Test
-    public void testGetAllelePair(){
-        allelePairTest(0, 0, 0);
-        allelePairTest(1, 0, 1);
-        allelePairTest(2, 1, 1);
-        allelePairTest(3, 0, 2);
-        allelePairTest(4, 1, 2);
-        allelePairTest(5, 2, 2);
-        allelePairTest(6, 0, 3);
-        allelePairTest(7, 1, 3);
-        allelePairTest(8, 2, 3);
-        allelePairTest(9, 3, 3);
-    }
-        
-    private void allelePairTest(int PLindex, int allele1, int allele2) {
-        Assert.assertEquals(GenotypeLikelihoods.getAllelePair(PLindex).alleleIndex1, allele1, "allele index " + allele1 + " from PL index " + PLindex + " was not calculated correctly");
-        Assert.assertEquals(GenotypeLikelihoods.getAllelePair(PLindex).alleleIndex2, allele2, "allele index " + allele2 + " from PL index " + PLindex + " was not calculated correctly");
-    }
-}
\ No newline at end of file
diff --git a/src/tests/java/org/broadinstitute/variant/variantcontext/GenotypeUnitTest.java b/src/tests/java/org/broadinstitute/variant/variantcontext/GenotypeUnitTest.java
deleted file mode 100644
index 8d0d2af..0000000
--- a/src/tests/java/org/broadinstitute/variant/variantcontext/GenotypeUnitTest.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.variantcontext;
-
-
-// the imports for unit testing.
-
-
-import org.broadinstitute.variant.VariantBaseTest;
-import org.testng.Assert;
-import org.testng.annotations.BeforeSuite;
-import org.testng.annotations.Test;
-
-
-public class GenotypeUnitTest extends VariantBaseTest {
-    Allele A, Aref, T;
-
-    @BeforeSuite
-    public void before() {
-        A = Allele.create("A");
-        Aref = Allele.create("A", true);
-        T = Allele.create("T");
-    }
-
-    private static final GenotypeBuilder makeGB() {
-        return new GenotypeBuilder("misc");
-    }
-
-    @Test
-    public void testFilters() {
-        Assert.assertFalse(makeGB().make().isFiltered(), "by default Genotypes must be PASS");
-        Assert.assertNull(makeGB().make().getFilters(), "by default Genotypes must be PASS => getFilters() == null");
-        Assert.assertFalse(makeGB().filter(null).make().isFiltered(), "setting filter == null => Genotypes must be PASS");
-        Assert.assertNull(makeGB().filter(null).make().getFilters(), "Genotypes PASS => getFilters == null");
-        Assert.assertFalse(makeGB().filter("PASS").make().isFiltered(), "setting filter == PASS => Genotypes must be PASS");
-        Assert.assertNull(makeGB().filter("PASS").make().getFilters(), "Genotypes PASS => getFilters == null");
-        Assert.assertTrue(makeGB().filter("x").make().isFiltered(), "setting filter != null => Genotypes must be PASS");
-        Assert.assertEquals(makeGB().filter("x").make().getFilters(), "x", "Should get back the expected filter string");
-        Assert.assertEquals(makeGB().filters("x", "y").make().getFilters(), "x;y", "Multiple filter field values should be joined with ;");
-        Assert.assertEquals(makeGB().filters("x", "y", "z").make().getFilters(), "x;y;z", "Multiple filter field values should be joined with ;");
-        Assert.assertTrue(makeGB().filters("x", "y", "z").make().isFiltered(), "Multiple filter values should be filtered");
-        Assert.assertEquals(makeGB().filter("x;y;z").make().getFilters(), "x;y;z", "Multiple filter field values should be joined with ;");
-    }
-
-//    public Genotype(String sampleName, List<Allele> alleles, double negLog10PError, Set<String> filters, Map<String, ?> attributes, boolean isPhased) {
-//    public Genotype(String sampleName, List<Allele> alleles, double negLog10PError, Set<String> filters, Map<String, ?> attributes, boolean isPhased, double[] log10Likelihoods) {
-//    public Genotype(String sampleName, List<Allele> alleles, double negLog10PError, double[] log10Likelihoods)
-//    public Genotype(String sampleName, List<Allele> alleles, double negLog10PError)
-//    public Genotype(String sampleName, List<Allele> alleles)
-//    public List<Allele> getAlleles()
-//    public List<Allele> getAlleles(Allele allele)
-//    public Allele getAllele(int i)
-//    public boolean isPhased()
-//    public int getPloidy()
-//    public Type getType()
-//    public boolean isHom()
-//    public boolean isHomRef()
-//    public boolean isHomVar()
-//    public boolean isHet()
-//    public boolean isNoCall()
-//    public boolean isCalled()
-//    public boolean isAvailable()
-//    public boolean hasLikelihoods()
-//    public GenotypeLikelihoods getLikelihoods()
-//    public boolean sameGenotype(Genotype other)
-//    public boolean sameGenotype(Genotype other, boolean ignorePhase)
-//    public String getSampleName()
-//    public boolean hasLog10PError()
-//    public double getLog10PError()
-//    public double getPhredScaledQual()
-//    public boolean hasExtendedAttribute(String key)
-//    public Object getExtendedAttribute(String key)
-//    public Object getExtendedAttribute(String key, Object defaultValue)
-//    public String getAttributeAsString(String key, String defaultValue)
-//    public int getAttributeAsInt(String key, int defaultValue)
-//    public double getAttributeAsDouble(String key, double  defaultValue)
-//    public boolean getAttributeAsBoolean(String key, boolean  defaultValue)
-}
diff --git a/src/tests/java/org/broadinstitute/variant/variantcontext/GenotypesContextUnitTest.java b/src/tests/java/org/broadinstitute/variant/variantcontext/GenotypesContextUnitTest.java
deleted file mode 100644
index 180bc76..0000000
--- a/src/tests/java/org/broadinstitute/variant/variantcontext/GenotypesContextUnitTest.java
+++ /dev/null
@@ -1,312 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.variantcontext;
-
-
-// the imports for unit testing.
-
-
-import org.broad.tribble.util.ParsingUtils;
-import org.broadinstitute.variant.VariantBaseTest;
-import org.broadinstitute.variant.utils.GeneralUtils;
-import org.testng.Assert;
-import org.testng.annotations.BeforeSuite;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.util.*;
-
-
-public class GenotypesContextUnitTest extends VariantBaseTest {
-    Allele Aref, C, T;
-    Genotype AA, AT, TT, AC, CT, CC, MISSING;
-    List<Genotype> allGenotypes;
-
-    @BeforeSuite
-    public void before() {
-        C = Allele.create("C");
-        Aref = Allele.create("A", true);
-        T = Allele.create("T");
-        AA = GenotypeBuilder.create("AA", Arrays.asList(Aref, Aref));
-        AT = GenotypeBuilder.create("AT", Arrays.asList(Aref, T));
-        TT = GenotypeBuilder.create("TT", Arrays.asList(T, T));
-        AC = GenotypeBuilder.create("AC", Arrays.asList(Aref, C));
-        CT = GenotypeBuilder.create("CT", Arrays.asList(C, T));
-        CC = GenotypeBuilder.create("CC", Arrays.asList(C, C));
-        MISSING = GenotypeBuilder.create("MISSING", Arrays.asList(C, C));
-
-        allGenotypes = Arrays.asList(AA, AT, TT, AC, CT, CC);
-    }
-
-    // --------------------------------------------------------------------------------
-    //
-    // Provider
-    //
-    // --------------------------------------------------------------------------------
-
-    private interface ContextMaker {
-        public GenotypesContext make(List<Genotype> initialSamples);
-    }
-
-    private ContextMaker baseMaker = new ContextMaker() {
-        @Override
-        public GenotypesContext make(final List<Genotype> initialSamples) {
-            return GenotypesContext.copy(initialSamples);
-        }
-
-        @Override
-        public String toString() {
-            return "GenotypesContext";
-        }
-    };
-
-    private final class lazyMaker implements LazyGenotypesContext.LazyParser, ContextMaker {
-        @Override
-        public LazyGenotypesContext.LazyData parse(final Object data) {
-            GenotypesContext gc = GenotypesContext.copy((List<Genotype>)data);
-            gc.ensureSampleNameMap();
-            gc.ensureSampleOrdering();
-            return new LazyGenotypesContext.LazyData(gc.notToBeDirectlyAccessedGenotypes, gc.sampleNamesInOrder, gc.sampleNameToOffset);
-        }
-
-        @Override
-        public GenotypesContext make(final List<Genotype> initialSamples) {
-            return new LazyGenotypesContext(this, initialSamples, initialSamples.size());
-        }
-
-        @Override
-        public String toString() {
-            return "LazyGenotypesContext";
-        }
-    }
-
-    private Collection<ContextMaker> allMakers = Arrays.asList(baseMaker, new lazyMaker());
-
-    private class GenotypesContextProvider {
-        String name;
-        ContextMaker maker;
-        final List<Genotype> initialSamples;
-
-        private GenotypesContextProvider(ContextMaker maker, List<Genotype> initialSamples) {
-            this.name = String.format("%s with %d samples", maker.toString(), initialSamples.size());
-            this.maker = maker;
-            this.initialSamples = initialSamples;
-        }
-
-        public GenotypesContext makeContext() {
-            return maker.make(initialSamples);
-        }
-    }
-
-    @DataProvider(name = "GenotypesContextProvider")
-    public Object[][] MakeSampleNamesTest() {
-        List<Object[]> tests = new ArrayList<Object[]>();
-
-        for ( ContextMaker maker : allMakers ) {
-            for ( int i = 0; i < allGenotypes.size(); i++ ) {
-                List<Genotype> samples = allGenotypes.subList(0, i);
-                // sorted
-                tests.add(new Object[]{new GenotypesContextProvider(maker, samples)});
-                // unsorted
-                tests.add(new Object[]{new GenotypesContextProvider(maker, GeneralUtils.reverse(samples))});
-            }
-        }
-
-        return tests.toArray(new Object[][]{});
-    }
-
-    private final static void testIterable(Iterable<Genotype> genotypeIterable, Set<String> expectedNames) {
-        int count = 0;
-        for ( final Genotype g : genotypeIterable ) {
-            Assert.assertTrue(expectedNames.contains(g.getSampleName()));
-            count++;
-        }
-        Assert.assertEquals(count, expectedNames.size(), "Iterable returned unexpected number of genotypes");
-    }
-
-    @Test(dataProvider = "GenotypesContextProvider")
-    public void testInitialSamplesAreAsExpected(GenotypesContextProvider cfg) {
-        testGenotypesContextContainsExpectedSamples(cfg.makeContext(), cfg.initialSamples);
-    }
-
-    private final void testGenotypesContextContainsExpectedSamples(GenotypesContext gc, List<Genotype> expectedSamples) {
-        Assert.assertEquals(gc.isEmpty(), expectedSamples.isEmpty());
-        Assert.assertEquals(gc.size(), expectedSamples.size());
-
-        // get(index) is doing the right thing
-        for ( int i = 0; i < expectedSamples.size(); i++ ) {
-            Assert.assertEquals(gc.get(i), expectedSamples.get(i));
-        }
-        Assert.assertFalse(gc.containsSample(MISSING.getSampleName()));
-
-        // we can fetch samples by name
-        final Set<String> genotypeNames = VariantContextUtils.genotypeNames(expectedSamples);
-        for ( final String name : genotypeNames ) {
-            Assert.assertTrue(gc.containsSample(name));
-        }
-        Assert.assertFalse(gc.containsSample(MISSING.getSampleName()));
-
-        // all of the iterators are working
-        testIterable(gc.iterateInSampleNameOrder(), genotypeNames);
-        testIterable(gc, genotypeNames);
-        testIterable(gc.iterateInSampleNameOrder(genotypeNames), genotypeNames);
-        if ( ! genotypeNames.isEmpty() ) {
-            Set<String> first = Collections.singleton(genotypeNames.iterator().next());
-            testIterable(gc.iterateInSampleNameOrder(first), first);
-        }
-
-        // misc. utils are working as expected
-        assertEqualsSet(gc.getSampleNames(), genotypeNames, "gc sample names vs. expected sample names");
-        Assert.assertTrue(ParsingUtils.isSorted(gc.getSampleNamesOrderedByName()));
-        Assert.assertTrue(ParsingUtils.isSorted(gc.iterateInSampleNameOrder()));
-        Assert.assertTrue(gc.containsSamples(genotypeNames));
-
-        final Set<String> withMissing = new HashSet<String>(Arrays.asList(MISSING.getSampleName()));
-        withMissing.addAll(genotypeNames);
-        Assert.assertFalse(gc.containsSamples(withMissing));
-    }
-
-    @Test(enabled = true, dataProvider = "GenotypesContextProvider")
-    public void testImmutable(GenotypesContextProvider cfg) {
-        GenotypesContext gc = cfg.makeContext();
-        Assert.assertEquals(gc.isMutable(), true);
-        gc.immutable();
-        Assert.assertEquals(gc.isMutable(), false);
-    }
-
-    @Test(enabled = true, dataProvider = "GenotypesContextProvider", expectedExceptions = Throwable.class )
-    public void testImmutableCall1(GenotypesContextProvider cfg) {
-        GenotypesContext gc = cfg.makeContext();
-        gc.immutable();
-        gc.add(MISSING);
-    }
-
-    @Test(enabled = true, dataProvider = "GenotypesContextProvider")
-    public void testClear(GenotypesContextProvider cfg) {
-        GenotypesContext gc = cfg.makeContext();
-        gc.clear();
-        testGenotypesContextContainsExpectedSamples(gc, Collections.<Genotype>emptyList());
-    }
-
-    private static final List<Genotype> with(List<Genotype> genotypes, Genotype ... add) {
-        List<Genotype> l = new ArrayList<Genotype>(genotypes);
-        l.addAll(Arrays.asList(add));
-        return l;
-    }
-
-    private static final List<Genotype> without(List<Genotype> genotypes, Genotype ... remove) {
-        List<Genotype> l = new ArrayList<Genotype>(genotypes);
-        l.removeAll(Arrays.asList(remove));
-        return l;
-    }
-
-    @Test(enabled = true, dataProvider = "GenotypesContextProvider")
-    public void testAdds(GenotypesContextProvider cfg) {
-        Genotype add1 = GenotypeBuilder.create("add1", Arrays.asList(Aref, Aref));
-        Genotype add2 = GenotypeBuilder.create("add2", Arrays.asList(Aref, Aref));
-
-        GenotypesContext gc = cfg.makeContext();
-        gc.add(add1);
-        testGenotypesContextContainsExpectedSamples(gc, with(cfg.initialSamples, add1));
-
-        gc = cfg.makeContext();
-        gc.add(add1);
-        gc.add(add2);
-        testGenotypesContextContainsExpectedSamples(gc, with(cfg.initialSamples, add1, add2));
-
-        gc = cfg.makeContext();
-        gc.addAll(Arrays.asList(add1, add2));
-        testGenotypesContextContainsExpectedSamples(gc, with(cfg.initialSamples, add1, add2));
-    }
-
-    @Test(enabled = true, dataProvider = "GenotypesContextProvider")
-    public void testRemoves(GenotypesContextProvider cfg) {
-        Genotype rm1 = AA;
-        Genotype rm2 = AC;
-
-        GenotypesContext gc = cfg.makeContext();
-        if (gc.size() > 1) {
-            Genotype rm = gc.get(0);
-            gc.remove(rm);
-            testGenotypesContextContainsExpectedSamples(gc, without(cfg.initialSamples, rm));
-        }
-
-        gc = cfg.makeContext();
-        gc.remove(rm1);
-        testGenotypesContextContainsExpectedSamples(gc, without(cfg.initialSamples, rm1));
-
-        gc = cfg.makeContext();
-        gc.remove(rm1);
-        gc.remove(rm2);
-        testGenotypesContextContainsExpectedSamples(gc, without(cfg.initialSamples, rm1, rm2));
-
-        gc = cfg.makeContext();
-        gc.removeAll(Arrays.asList(rm1, rm2));
-        testGenotypesContextContainsExpectedSamples(gc, without(cfg.initialSamples, rm1, rm2));
-
-        gc = cfg.makeContext();
-        HashSet<Genotype> expected = new HashSet<Genotype>();
-        if ( gc.contains(rm1) ) expected.add(rm1);
-        if ( gc.contains(rm2) ) expected.add(rm2);
-        gc.retainAll(Arrays.asList(rm1, rm2));
-
-        // ensure that the two lists are the same
-        assertEqualsSet(new HashSet<Genotype>(gc.getGenotypes()), expected, "gc genotypes vs. expected");
-        // because the list order can change, we use the gc's list itself
-        testGenotypesContextContainsExpectedSamples(gc, gc.getGenotypes());
-    }
-
-    @Test(enabled = true, dataProvider = "GenotypesContextProvider")
-    public void testSet(GenotypesContextProvider cfg) {
-        Genotype set = GenotypeBuilder.create("replace", Arrays.asList(Aref, Aref));
-        int n = cfg.makeContext().size();
-        for ( int i = 0; i < n; i++ ) {
-            GenotypesContext gc = cfg.makeContext();
-            Genotype setted = gc.set(i, set);
-            Assert.assertNotNull(setted);
-            ArrayList<Genotype> l = new ArrayList<Genotype>(cfg.initialSamples);
-            l.set(i, set);
-            testGenotypesContextContainsExpectedSamples(gc, l);
-        }
-    }
-
-    @Test(enabled = true, dataProvider = "GenotypesContextProvider")
-    public void testReplace(GenotypesContextProvider cfg) {
-        int n = cfg.makeContext().size();
-        for ( int i = 0; i < n; i++ ) {
-            GenotypesContext gc = cfg.makeContext();
-            Genotype toReplace = gc.get(i);
-            Genotype replacement = GenotypeBuilder.create(toReplace.getSampleName(), Arrays.asList(Aref, Aref));
-            gc.replace(replacement);
-            ArrayList<Genotype> l = new ArrayList<Genotype>(cfg.initialSamples);
-            l.set(i, replacement);
-            Assert.assertEquals(replacement, gc.get(i));
-            testGenotypesContextContainsExpectedSamples(gc, l);
-        }
-    }
-
-    // subset to samples tested in VariantContextUnitTest
-}
diff --git a/src/tests/java/org/broadinstitute/variant/variantcontext/VariantContextTestProvider.java b/src/tests/java/org/broadinstitute/variant/variantcontext/VariantContextTestProvider.java
deleted file mode 100644
index 2ea0bed..0000000
--- a/src/tests/java/org/broadinstitute/variant/variantcontext/VariantContextTestProvider.java
+++ /dev/null
@@ -1,990 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.variantcontext;
-
-import org.broad.tribble.FeatureCodec;
-import org.broad.tribble.FeatureCodecHeader;
-import org.broad.tribble.readers.LineIterator;
-import org.broad.tribble.readers.LineIteratorImpl;
-import org.broad.tribble.readers.LineReaderUtil;
-import org.broad.tribble.readers.PositionalBufferedStream;
-import org.broadinstitute.variant.VariantBaseTest;
-import org.broadinstitute.variant.bcf2.BCF2Codec;
-import org.broadinstitute.variant.utils.GeneralUtils;
-import org.broadinstitute.variant.variantcontext.writer.Options;
-import org.broadinstitute.variant.variantcontext.writer.VariantContextWriter;
-import org.broadinstitute.variant.vcf.*;
-import org.testng.Assert;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Routines for generating all sorts of VCs for testing
- *
- * @author Your Name
- * @since Date created
- */
-public class VariantContextTestProvider {
-    final private static boolean ENABLE_GENOTYPE_TESTS = true;
-    final private static boolean ENABLE_A_AND_G_TESTS = true;
-    final private static boolean ENABLE_VARARRAY_TESTS = true;
-    final private static boolean ENABLE_PLOIDY_TESTS = true;
-    final private static boolean ENABLE_PL_TESTS = true;
-    final private static boolean ENABLE_SYMBOLIC_ALLELE_TESTS = true;
-    final private static boolean ENABLE_SOURCE_VCF_TESTS = true;
-    final private static boolean ENABLE_VARIABLE_LENGTH_GENOTYPE_STRING_TESTS = true;
-    final private static List<Integer> TWENTY_INTS = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20);
-
-    private static VCFHeader syntheticHeader;
-    final static List<VariantContextTestData> TEST_DATAs = new ArrayList<VariantContextTestData>();
-    private static VariantContext ROOT;
-
-    private final static List<File> testSourceVCFs = new ArrayList<File>();
-    static {
-        testSourceVCFs.add(new File(VariantBaseTest.variantTestDataRoot + "ILLUMINA.wex.broad_phase2_baseline.20111114.both.exome.genotypes.1000.vcf"));
-        testSourceVCFs.add(new File(VariantBaseTest.variantTestDataRoot + "ex2.vcf"));
-        testSourceVCFs.add(new File(VariantBaseTest.variantTestDataRoot + "dbsnp_135.b37.1000.vcf"));
-        if ( ENABLE_SYMBOLIC_ALLELE_TESTS ) {
-            testSourceVCFs.add(new File(VariantBaseTest.variantTestDataRoot + "diagnosis_targets_testfile.vcf"));
-            testSourceVCFs.add(new File(VariantBaseTest.variantTestDataRoot + "VQSR.mixedTest.recal"));
-        }
-    }
-
-    public static class VariantContextContainer {
-        private VCFHeader header;
-        private Iterable<VariantContext> vcs;
-
-        public VariantContextContainer( VCFHeader header, Iterable<VariantContext> vcs ) {
-            this.header = header;
-            this.vcs = vcs;
-        }
-
-        public VCFHeader getHeader() {
-            return header;
-        }
-
-        public Iterable<VariantContext> getVCs() {
-            return vcs;
-        }
-    }
-
-    public abstract static class VariantContextIOTest<CODECTYPE> {
-        public String toString() {
-            return "VariantContextIOTest:" + getExtension();
-        }
-        public abstract String getExtension();
-        public abstract CODECTYPE makeCodec();
-        public abstract VariantContextWriter makeWriter(final File outputFile, final EnumSet<Options> baseOptions);
-
-        public abstract VariantContextContainer readAllVCs(final File input) throws IOException;
-        
-        public List<VariantContext> preprocess(final VCFHeader header, List<VariantContext> vcsBeforeIO) {
-            return vcsBeforeIO;
-        }
-
-        public List<VariantContext> postprocess(final VCFHeader header, List<VariantContext> vcsAfterIO) {
-            return vcsAfterIO;
-        }
-    }
-
-    public static class VariantContextTestData {
-        public final VCFHeader header;
-        public List<VariantContext> vcs;
-
-        public VariantContextTestData(final VCFHeader header, final VariantContextBuilder builder) {
-            this(header, Collections.singletonList(builder.fullyDecoded(true).make()));
-        }
-
-        public VariantContextTestData(final VCFHeader header, final List<VariantContext> vcs) {
-            final Set<String> samples = new HashSet<String>();
-            for ( final VariantContext vc : vcs )
-                if ( vc.hasGenotypes() )
-                    samples.addAll(vc.getSampleNames());
-            this.header = samples.isEmpty() ? header : new VCFHeader(header.getMetaDataInSortedOrder(), samples);
-            this.vcs = vcs;
-        }
-
-        public boolean hasGenotypes() {
-            return vcs.get(0).hasGenotypes();
-        }
-
-        public String toString() {
-            StringBuilder b = new StringBuilder();
-            b.append("VariantContextTestData: [");
-            final VariantContext vc = vcs.get(0);
-            final VariantContextBuilder builder = new VariantContextBuilder(vc);
-            builder.noGenotypes();
-            b.append(builder.make().toString());
-            if ( vc.getNSamples() < 5 ) {
-                for ( final Genotype g : vc.getGenotypes() )
-                    b.append(g.toString());
-            } else {
-                b.append(" nGenotypes = ").append(vc.getNSamples());
-            }
-
-            if ( vcs.size() > 1 ) b.append(" ----- with another ").append(vcs.size() - 1).append(" VariantContext records");
-            b.append("]");
-            return b.toString();
-        }
-    }
-
-    private final static VariantContextBuilder builder() {
-        return new VariantContextBuilder(ROOT);
-    }
-
-    private final static void add(VariantContextBuilder builder) {
-        TEST_DATAs.add(new VariantContextTestData(syntheticHeader, builder));
-    }
-
-    public static void initializeTests() throws IOException {
-        createSyntheticHeader();
-        makeSyntheticTests();
-        makeEmpiricalTests();
-    }
-
-    private static void makeEmpiricalTests() throws IOException {
-        if ( ENABLE_SOURCE_VCF_TESTS ) {
-            for ( final File file : testSourceVCFs ) {
-                VCFCodec codec = new VCFCodec();
-                VariantContextContainer x = readAllVCs( file, codec );
-                List<VariantContext> fullyDecoded = new ArrayList<VariantContext>();
-
-                for ( final VariantContext raw : x.getVCs() ) {
-                    if ( raw != null )
-                        fullyDecoded.add(raw.fullyDecode(x.getHeader(), false));
-                }
-
-                TEST_DATAs.add(new VariantContextTestData(x.getHeader(), fullyDecoded));
-            }
-        }
-    }
-
-    private final static void addHeaderLine(final Set<VCFHeaderLine> metaData, final String id, final int count, final VCFHeaderLineType type) {
-        metaData.add(new VCFInfoHeaderLine(id, count, type, "x"));
-        if ( type != VCFHeaderLineType.Flag )
-            metaData.add(new VCFFormatHeaderLine(id, count, type, "x"));
-    }
-
-    private final static void addHeaderLine(final Set<VCFHeaderLine> metaData, final String id, final VCFHeaderLineCount count, final VCFHeaderLineType type) {
-        metaData.add(new VCFInfoHeaderLine(id, count, type, "x"));
-        if ( type != VCFHeaderLineType.Flag )
-            metaData.add(new VCFFormatHeaderLine(id, count, type, "x"));
-    }
-
-    private static void createSyntheticHeader() {
-        Set<VCFHeaderLine> metaData = new TreeSet<VCFHeaderLine>();
-
-        addHeaderLine(metaData, "STRING1", 1, VCFHeaderLineType.String);
-        addHeaderLine(metaData, "END", 1, VCFHeaderLineType.Integer);
-        addHeaderLine(metaData, "STRING3", 3, VCFHeaderLineType.String);
-        addHeaderLine(metaData, "STRING20", 20, VCFHeaderLineType.String);
-        addHeaderLine(metaData, "VAR.INFO.STRING", VCFHeaderLineCount.UNBOUNDED, VCFHeaderLineType.String);
-
-        addHeaderLine(metaData, "GT", 1, VCFHeaderLineType.String);
-        addHeaderLine(metaData, "GQ", 1, VCFHeaderLineType.Integer);
-        addHeaderLine(metaData, "ADA", VCFHeaderLineCount.A, VCFHeaderLineType.Integer);
-        addHeaderLine(metaData, "PL", VCFHeaderLineCount.G, VCFHeaderLineType.Integer);
-        addHeaderLine(metaData, "GS", 2, VCFHeaderLineType.String);
-        addHeaderLine(metaData, "GV", VCFHeaderLineCount.UNBOUNDED, VCFHeaderLineType.String);
-        addHeaderLine(metaData, "FT", 1, VCFHeaderLineType.String);
-
-        // prep the header
-        metaData.add(new VCFContigHeaderLine(Collections.singletonMap("ID", "1"), 0));
-
-        metaData.add(new VCFFilterHeaderLine("FILTER1"));
-        metaData.add(new VCFFilterHeaderLine("FILTER2"));
-
-        addHeaderLine(metaData, "INT1", 1, VCFHeaderLineType.Integer);
-        addHeaderLine(metaData, "INT3", 3, VCFHeaderLineType.Integer);
-        addHeaderLine(metaData, "INT20", 20, VCFHeaderLineType.Integer);
-        addHeaderLine(metaData, "INT.VAR", VCFHeaderLineCount.UNBOUNDED, VCFHeaderLineType.Integer);
-        addHeaderLine(metaData, "FLOAT1", 1, VCFHeaderLineType.Float);
-        addHeaderLine(metaData, "FLOAT3", 3, VCFHeaderLineType.Float);
-        addHeaderLine(metaData, "FLAG", 0, VCFHeaderLineType.Flag);
-
-        syntheticHeader = new VCFHeader(metaData);
-    }
-
-
-    private static void makeSyntheticTests() {
-        VariantContextBuilder rootBuilder = new VariantContextBuilder();
-        rootBuilder.source("test");
-        rootBuilder.loc("1", 10, 10);
-        rootBuilder.alleles("A", "C");
-        rootBuilder.unfiltered();
-        ROOT = rootBuilder.make();
-
-        add(builder());
-        add(builder().alleles("A"));
-        add(builder().alleles("A", "C", "T"));
-        add(builder().alleles("A", "AC"));
-        add(builder().alleles("A", "ACAGT"));
-        add(builder().loc("1", 10, 11).alleles("AC", "A"));
-        add(builder().loc("1", 10, 13).alleles("ACGT", "A"));
-
-        // make sure filters work
-        add(builder().unfiltered());
-        add(builder().passFilters());
-        add(builder().filters("FILTER1"));
-        add(builder().filters("FILTER1", "FILTER2"));
-
-        add(builder().log10PError(VariantContext.NO_LOG10_PERROR));
-        add(builder().log10PError(-1));
-        add(builder().log10PError(-1.234e6));
-
-        add(builder().noID());
-        add(builder().id("rsID12345"));
-
-
-        add(builder().attribute("INT1", 1));
-        add(builder().attribute("INT1", 100));
-        add(builder().attribute("INT1", 1000));
-        add(builder().attribute("INT1", 100000));
-        add(builder().attribute("INT1", null));
-        add(builder().attribute("INT3", Arrays.asList(1, 2, 3)));
-        add(builder().attribute("INT3", Arrays.asList(1000, 2000, 3000)));
-        add(builder().attribute("INT3", Arrays.asList(100000, 200000, 300000)));
-        add(builder().attribute("INT3", null));
-        add(builder().attribute("INT20", TWENTY_INTS));
-
-        add(builder().attribute("FLOAT1", 1.0));
-        add(builder().attribute("FLOAT1", 100.0));
-        add(builder().attribute("FLOAT1", 1000.0));
-        add(builder().attribute("FLOAT1", 100000.0));
-        add(builder().attribute("FLOAT1", null));
-        add(builder().attribute("FLOAT3", Arrays.asList(1.0, 2.0, 3.0)));
-        add(builder().attribute("FLOAT3", Arrays.asList(1000.0, 2000.0, 3000.0)));
-        add(builder().attribute("FLOAT3", Arrays.asList(100000.0, 200000.0, 300000.0)));
-        add(builder().attribute("FLOAT3", null));
-
-        add(builder().attribute("FLAG", true));
-        //add(builder().attribute("FLAG", false)); // NOTE -- VCF doesn't allow false flags
-
-        add(builder().attribute("STRING1", "s1"));
-        add(builder().attribute("STRING1", null));
-        add(builder().attribute("STRING3", Arrays.asList("s1", "s2", "s3")));
-        add(builder().attribute("STRING3", null));
-        add(builder().attribute("STRING20", Arrays.asList("s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "s9", "s10", "s11", "s12", "s13", "s14", "s15", "s16", "s17", "s18", "s19", "s20")));
-
-        add(builder().attribute("VAR.INFO.STRING", "s1"));
-        add(builder().attribute("VAR.INFO.STRING", Arrays.asList("s1", "s2")));
-        add(builder().attribute("VAR.INFO.STRING", Arrays.asList("s1", "s2", "s3")));
-        add(builder().attribute("VAR.INFO.STRING", null));
-
-        if ( ENABLE_GENOTYPE_TESTS ) {
-            addGenotypesToTestData();
-            addComplexGenotypesTest();
-        }
-
-        if ( ENABLE_A_AND_G_TESTS )
-            addGenotypesAndGTests();
-
-        if ( ENABLE_SYMBOLIC_ALLELE_TESTS )
-            addSymbolicAlleleTests();
-    }
-
-    private static void addSymbolicAlleleTests() {
-        // two tests to ensure that the end is computed correctly when there's (and not) an END field present
-        add(builder().alleles("N", "<VQSR>").start(10).stop(11).attribute("END", 11));
-        add(builder().alleles("N", "<VQSR>").start(10).stop(10));
-    }
-
-    private static void addGenotypesToTestData() {
-        final ArrayList<VariantContext> sites = new ArrayList<VariantContext>();
-
-        sites.add(builder().alleles("A").make());
-        sites.add(builder().alleles("A", "C", "T").make());
-        sites.add(builder().alleles("A", "AC").make());
-        sites.add(builder().alleles("A", "ACAGT").make());
-
-        for ( VariantContext site : sites ) {
-            addGenotypes(site);
-        }
-    }
-
-    private static void addGenotypeTests( final VariantContext site, Genotype ... genotypes ) {
-        // for each sites VC, we are going to add create two root genotypes.
-        // The first is the primary, and will be added to each new test
-        // The second is variable.  In some tests it's absent (testing 1 genotype), in others it is duplicated
-        // 1 once, 10, 100, or 1000 times to test scaling
-
-        final VariantContextBuilder builder = new VariantContextBuilder(site);
-
-        // add a single context
-        builder.genotypes(genotypes[0]);
-        add(builder);
-
-        if ( genotypes.length > 1 ) {
-            // add all
-            add(builder.genotypes(Arrays.asList(genotypes)));
-
-            // add all with the last replicated 10x and 100x times
-            for ( int nCopiesOfLast : Arrays.asList(10, 100, 1000) ) {
-                final GenotypesContext gc = new GenotypesContext();
-                final Genotype last = genotypes[genotypes.length-1];
-                for ( int i = 0; i < genotypes.length - 1; i++ )
-                    gc.add(genotypes[i]);
-                for ( int i = 0; i < nCopiesOfLast; i++ )
-                    gc.add(new GenotypeBuilder(last).name("copy" + i).make());
-                add(builder.genotypes(gc));
-            }
-        }
-    }
-
-    private static void addGenotypes( final VariantContext site) {
-        // test ref/ref
-        final Allele ref = site.getReference();
-        final Allele alt1 = site.getNAlleles() > 1 ? site.getAlternateAllele(0) : null;
-        final Genotype homRef = GenotypeBuilder.create("homRef", Arrays.asList(ref, ref));
-        addGenotypeTests(site, homRef);
-
-        if ( alt1 != null ) {
-            final Genotype het = GenotypeBuilder.create("het", Arrays.asList(ref, alt1));
-            final Genotype homVar = GenotypeBuilder.create("homVar", Arrays.asList(alt1, alt1));
-            addGenotypeTests(site, homRef, het);
-            addGenotypeTests(site, homRef, het, homVar);
-
-            // test no GT at all
-            addGenotypeTests(site, new GenotypeBuilder("noGT", new ArrayList<Allele>(0)).attribute("INT1", 10).make());
-
-            final List<Allele> noCall = Arrays.asList(Allele.NO_CALL, Allele.NO_CALL);
-
-            // ploidy
-            if ( ENABLE_PLOIDY_TESTS ) {
-                addGenotypeTests(site,
-                        GenotypeBuilder.create("dip", Arrays.asList(ref, alt1)),
-                        GenotypeBuilder.create("hap", Arrays.asList(ref)));
-
-                addGenotypeTests(site,
-                        GenotypeBuilder.create("noCall", noCall),
-                        GenotypeBuilder.create("dip", Arrays.asList(ref, alt1)),
-                        GenotypeBuilder.create("hap", Arrays.asList(ref)));
-
-                addGenotypeTests(site,
-                        GenotypeBuilder.create("noCall",  noCall),
-                        GenotypeBuilder.create("noCall2", noCall),
-                        GenotypeBuilder.create("dip", Arrays.asList(ref, alt1)),
-                        GenotypeBuilder.create("hap", Arrays.asList(ref)));
-
-                addGenotypeTests(site,
-                        GenotypeBuilder.create("dip", Arrays.asList(ref, alt1)),
-                        GenotypeBuilder.create("tet", Arrays.asList(ref, alt1, alt1)));
-
-                addGenotypeTests(site,
-                        GenotypeBuilder.create("noCall", noCall),
-                        GenotypeBuilder.create("dip", Arrays.asList(ref, alt1)),
-                        GenotypeBuilder.create("tet", Arrays.asList(ref, alt1, alt1)));
-
-                addGenotypeTests(site,
-                        GenotypeBuilder.create("noCall", noCall),
-                        GenotypeBuilder.create("noCall2", noCall),
-                        GenotypeBuilder.create("dip", Arrays.asList(ref, alt1)),
-                        GenotypeBuilder.create("tet", Arrays.asList(ref, alt1, alt1)));
-
-                addGenotypeTests(site,
-                        GenotypeBuilder.create("nocall", noCall),
-                        GenotypeBuilder.create("dip", Arrays.asList(ref, alt1)),
-                        GenotypeBuilder.create("tet", Arrays.asList(ref, alt1, alt1)));
-            }
-
-
-            //
-            //
-            // TESTING PHASE
-            //
-            //
-            final Genotype gUnphased = new GenotypeBuilder("gUnphased", Arrays.asList(ref, alt1)).make();
-            final Genotype gPhased = new GenotypeBuilder("gPhased", Arrays.asList(ref, alt1)).phased(true).make();
-            final Genotype gPhased2 = new GenotypeBuilder("gPhased2", Arrays.asList(alt1, alt1)).phased(true).make();
-            final Genotype gPhased3 = new GenotypeBuilder("gPhased3", Arrays.asList(ref, ref)).phased(true).make();
-            final Genotype haploidNoPhase = new GenotypeBuilder("haploidNoPhase", Arrays.asList(ref)).make();
-            addGenotypeTests(site, gUnphased, gPhased);
-            addGenotypeTests(site, gUnphased, gPhased2);
-            addGenotypeTests(site, gUnphased, gPhased3);
-            addGenotypeTests(site, gPhased, gPhased2);
-            addGenotypeTests(site, gPhased, gPhased3);
-            addGenotypeTests(site, gPhased2, gPhased3);
-            addGenotypeTests(site, haploidNoPhase, gPhased);
-            addGenotypeTests(site, haploidNoPhase, gPhased2);
-            addGenotypeTests(site, haploidNoPhase, gPhased3);
-            addGenotypeTests(site, haploidNoPhase, gPhased, gPhased2);
-            addGenotypeTests(site, haploidNoPhase, gPhased, gPhased3);
-            addGenotypeTests(site, haploidNoPhase, gPhased2, gPhased3);
-            addGenotypeTests(site, haploidNoPhase, gPhased, gPhased2, gPhased3);
-
-            final Genotype gUnphasedTet = new GenotypeBuilder("gUnphasedTet", Arrays.asList(ref, alt1, ref, alt1)).make();
-            final Genotype gPhasedTet = new GenotypeBuilder("gPhasedTet", Arrays.asList(ref, alt1, alt1, alt1)).phased(true).make();
-            addGenotypeTests(site, gUnphasedTet, gPhasedTet);
-        }
-
-        if ( ENABLE_PL_TESTS ) {
-            if ( site.getNAlleles() == 2 ) {
-                // testing PLs
-                addGenotypeTests(site,
-                        GenotypeBuilder.create("g1", Arrays.asList(ref, ref), new double[]{0, -1, -2}),
-                        GenotypeBuilder.create("g2", Arrays.asList(ref, ref), new double[]{0, -2, -3}));
-
-                addGenotypeTests(site,
-                        GenotypeBuilder.create("g1", Arrays.asList(ref, ref), new double[]{-1, 0, -2}),
-                        GenotypeBuilder.create("g2", Arrays.asList(ref, ref), new double[]{0, -2, -3}));
-
-                addGenotypeTests(site,
-                        GenotypeBuilder.create("g1", Arrays.asList(ref, ref), new double[]{-1, 0, -2}),
-                        GenotypeBuilder.create("g2", Arrays.asList(ref, ref), new double[]{0, -2000, -1000}));
-
-                addGenotypeTests(site, // missing PLs
-                        GenotypeBuilder.create("g1", Arrays.asList(ref, ref), new double[]{-1, 0, -2}),
-                        GenotypeBuilder.create("g2", Arrays.asList(ref, ref)));
-            }
-            else if ( site.getNAlleles() == 3 ) {
-                // testing PLs
-                addGenotypeTests(site,
-                        GenotypeBuilder.create("g1", Arrays.asList(ref, ref), new double[]{0, -1, -2, -3, -4, -5}),
-                        GenotypeBuilder.create("g2", Arrays.asList(ref, ref), new double[]{0, -2, -3, -4, -5, -6}));
-            }
-        }
-
-        // test attributes
-        addGenotypeTests(site,
-                attr("g1", ref, "INT1", 1),
-                attr("g2", ref, "INT1", 2));
-        addGenotypeTests(site,
-                attr("g1", ref, "INT1", 1),
-                attr("g2", ref, "INT1"));
-        addGenotypeTests(site,
-                attr("g1", ref, "INT3", 1, 2, 3),
-                attr("g2", ref, "INT3", 4, 5, 6));
-        addGenotypeTests(site,
-                attr("g1", ref, "INT3", 1, 2, 3),
-                attr("g2", ref, "INT3"));
-
-        addGenotypeTests(site,
-                attr("g1", ref, "INT20", TWENTY_INTS),
-                attr("g2", ref, "INT20", TWENTY_INTS));
-
-
-        if (ENABLE_VARARRAY_TESTS) {
-            addGenotypeTests(site,
-                    attr("g1", ref, "INT.VAR", 1, 2, 3),
-                    attr("g2", ref, "INT.VAR", 4, 5),
-                    attr("g3", ref, "INT.VAR", 6));
-            addGenotypeTests(site,
-                    attr("g1", ref, "INT.VAR", 1, 2, 3),
-                    attr("g2", ref, "INT.VAR"),
-                    attr("g3", ref, "INT.VAR", 5));
-        }
-
-        addGenotypeTests(site,
-                attr("g1", ref, "FLOAT1", 1.0),
-                attr("g2", ref, "FLOAT1", 2.0));
-        addGenotypeTests(site,
-                attr("g1", ref, "FLOAT1", 1.0),
-                attr("g2", ref, "FLOAT1"));
-        addGenotypeTests(site,
-                attr("g1", ref, "FLOAT3", 1.0, 2.0, 3.0),
-                attr("g2", ref, "FLOAT3", 4.0, 5.0, 6.0));
-        addGenotypeTests(site,
-                attr("g1", ref, "FLOAT3", 1.0, 2.0, 3.0),
-                attr("g2", ref, "FLOAT3"));
-
-        if (ENABLE_VARIABLE_LENGTH_GENOTYPE_STRING_TESTS) {
-            //
-            //
-            // TESTING MULTIPLE SIZED LISTS IN THE GENOTYPE FIELD
-            //
-            //
-            addGenotypeTests(site,
-                    attr("g1", ref, "GS", Arrays.asList("S1", "S2")),
-                    attr("g2", ref, "GS", Arrays.asList("S3", "S4")));
-
-            addGenotypeTests(site, // g1 is missing the string, and g2 is missing FLOAT1
-                    attr("g1", ref, "FLOAT1", 1.0),
-                    attr("g2", ref, "GS", Arrays.asList("S3", "S4")));
-
-            // variable sized lists
-            addGenotypeTests(site,
-                    attr("g1", ref, "GV", "S1"),
-                    attr("g2", ref, "GV", Arrays.asList("S3", "S4")));
-
-            addGenotypeTests(site,
-                    attr("g1", ref, "GV", Arrays.asList("S1", "S2")),
-                    attr("g2", ref, "GV", Arrays.asList("S3", "S4", "S5")));
-
-            addGenotypeTests(site, // missing value in varlist of string
-                    attr("g1", ref, "FLOAT1", 1.0),
-                    attr("g2", ref, "GV", Arrays.asList("S3", "S4", "S5")));
-        }
-
-        //
-        //
-        // TESTING GENOTYPE FILTERS
-        //
-        //
-        addGenotypeTests(site,
-                new GenotypeBuilder("g1-x", Arrays.asList(ref, ref)).filters("X").make(),
-                new GenotypeBuilder("g2-x", Arrays.asList(ref, ref)).filters("X").make());
-        addGenotypeTests(site,
-                new GenotypeBuilder("g1-unft", Arrays.asList(ref, ref)).unfiltered().make(),
-                new GenotypeBuilder("g2-x", Arrays.asList(ref, ref)).filters("X").make());
-        addGenotypeTests(site,
-                new GenotypeBuilder("g1-unft", Arrays.asList(ref, ref)).unfiltered().make(),
-                new GenotypeBuilder("g2-xy", Arrays.asList(ref, ref)).filters("X", "Y").make());
-        addGenotypeTests(site,
-                new GenotypeBuilder("g1-unft", Arrays.asList(ref, ref)).unfiltered().make(),
-                new GenotypeBuilder("g2-x", Arrays.asList(ref, ref)).filters("X").make(),
-                new GenotypeBuilder("g3-xy", Arrays.asList(ref, ref)).filters("X", "Y").make());
-    }
-
-    private static void addGenotypesAndGTests() {
-//        for ( final int ploidy : Arrays.asList(2)) {
-        for ( final int ploidy : Arrays.asList(1, 2, 3, 4, 5)) {
-            final List<List<String>> alleleCombinations =
-                    Arrays.asList(
-                            Arrays.asList("A"),
-                            Arrays.asList("A", "C"),
-                            Arrays.asList("A", "C", "G"),
-                            Arrays.asList("A", "C", "G", "T"));
-
-            for ( final List<String> alleles : alleleCombinations ) {
-                final VariantContextBuilder vcb = builder().alleles(alleles);
-                final VariantContext site = vcb.make();
-                final int nAlleles = site.getNAlleles();
-                final Allele ref = site.getReference();
-
-                // base genotype is ref/.../ref up to ploidy
-                final List<Allele> baseGenotype = new ArrayList<Allele>(ploidy);
-                for ( int i = 0; i < ploidy; i++) baseGenotype.add(ref);
-                final int nPLs = GenotypeLikelihoods.numLikelihoods(nAlleles, ploidy);
-
-                // ada is 0, 1, ..., nAlleles - 1
-                final List<Integer> ada = new ArrayList<Integer>(nAlleles);
-                for ( int i = 0; i < nAlleles - 1; i++ ) ada.add(i);
-
-                // pl is 0, 1, ..., up to nPLs (complex calc of nAlleles and ploidy)
-                final int[] pl = new int[nPLs];
-                for ( int i = 0; i < pl.length; i++ ) pl[i] = i;
-
-                final GenotypeBuilder gb = new GenotypeBuilder("ADA_PL_SAMPLE");
-                gb.alleles(baseGenotype);
-                gb.PL(pl);
-                gb.attribute("ADA", nAlleles == 2 ? ada.get(0) : ada);
-                vcb.genotypes(gb.make());
-
-                add(vcb);
-            }
-        }
-    }
-
-    private static Genotype attr(final String name, final Allele ref, final String key, final Object ... value) {
-        if ( value.length == 0 )
-            return GenotypeBuilder.create(name, Arrays.asList(ref, ref));
-        else {
-            final Object toAdd = value.length == 1 ? value[0] : Arrays.asList(value);
-            return new GenotypeBuilder(name, Arrays.asList(ref, ref)).attribute(key, toAdd).make();
-        }
-    }
-
-    public static List<VariantContextTestData> generateSiteTests() {
-        return TEST_DATAs;
-    }
-
-    public static void testReaderWriterWithMissingGenotypes(final VariantContextIOTest tester, final VariantContextTestData data) throws IOException {
-        final int nSamples = data.header.getNGenotypeSamples();
-        if ( nSamples > 2 ) {
-            for ( final VariantContext vc : data.vcs )
-                if ( vc.isSymbolic() )
-                    // cannot handle symbolic alleles because they may be weird non-call VCFs
-                    return;
-
-            final File tmpFile = File.createTempFile("testReaderWriter", tester.getExtension());
-            tmpFile.deleteOnExit();
-
-            // write expected to disk
-            final EnumSet<Options> options = EnumSet.of(Options.INDEX_ON_THE_FLY);
-            final VariantContextWriter writer = tester.makeWriter(tmpFile, options);
-
-            final Set<String> samplesInVCF = new HashSet<String>(data.header.getGenotypeSamples());
-            final List<String> missingSamples = Arrays.asList("MISSING1", "MISSING2");
-            final List<String> allSamples = new ArrayList<String>(missingSamples);
-            allSamples.addAll(samplesInVCF);
-
-            final VCFHeader header = new VCFHeader(data.header.getMetaDataInInputOrder(), allSamples);
-            writeVCsToFile(writer, header, data.vcs);
-
-            // ensure writing of expected == actual
-            final VariantContextContainer p = tester.readAllVCs(tmpFile);
-            final Iterable<VariantContext> actual = p.getVCs();
-
-            int i = 0;
-            for ( final VariantContext readVC : actual ) {
-                if ( readVC == null ) continue; // sometimes we read null records...
-                final VariantContext expected = data.vcs.get(i++);
-                for ( final Genotype g : readVC.getGenotypes() ) {
-                    Assert.assertTrue(allSamples.contains(g.getSampleName()));
-                    if ( samplesInVCF.contains(g.getSampleName()) ) {
-                        assertEquals(g, expected.getGenotype(g.getSampleName()));
-                    } else {
-                        // missing
-                        Assert.assertTrue(g.isNoCall());
-                    }
-                }
-            }
-
-        }
-    }
-
-    public static void testReaderWriter(final VariantContextIOTest tester, final VariantContextTestData data) throws IOException {
-        testReaderWriter(tester, data.header, data.vcs, data.vcs, true);
-    }
-
-    public static void testReaderWriter(final VariantContextIOTest tester,
-                                        final VCFHeader header,
-                                        final List<VariantContext> expected,
-                                        final Iterable<VariantContext> vcs,
-                                        final boolean recurse) throws IOException {
-        final File tmpFile = File.createTempFile("testReaderWriter", tester.getExtension());
-        tmpFile.deleteOnExit();
-
-        // write expected to disk
-        final EnumSet<Options> options = EnumSet.of(Options.INDEX_ON_THE_FLY);
-        final VariantContextWriter writer = tester.makeWriter(tmpFile, options);
-        writeVCsToFile(writer, header, vcs);
-
-        // ensure writing of expected == actual
-        final VariantContextContainer p = tester.readAllVCs(tmpFile);
-        final Iterable<VariantContext> actual = p.getVCs();
-        assertEquals(actual, expected);
-
-        if ( recurse ) {
-            // if we are doing a recursive test, grab a fresh iterator over the written values
-            final Iterable<VariantContext> read = tester.readAllVCs(tmpFile).getVCs();
-            testReaderWriter(tester, p.getHeader(), expected, read, false);
-        }
-    }
-
-    private static void writeVCsToFile(final VariantContextWriter writer, final VCFHeader header, final Iterable<VariantContext> vcs) {
-        // write
-        writer.writeHeader(header);
-        for ( VariantContext vc : vcs )
-            if (vc != null)
-                writer.add(vc);
-        writer.close();
-    }
-
-    public static abstract class VCIterable<SOURCE> implements Iterable<VariantContext>, Iterator<VariantContext> {
-        final FeatureCodec<VariantContext, SOURCE> codec;
-        final VCFHeader header;
-
-        public VCIterable(final FeatureCodec<VariantContext, SOURCE> codec, final VCFHeader header) {
-            this.codec = codec;
-            this.header = header;
-        }
-
-        @Override
-        public Iterator<VariantContext> iterator() {
-            return this;
-        }
-
-        @Override
-        public abstract boolean hasNext();
-
-        public abstract SOURCE nextSource();
-        
-        @Override
-        public VariantContext next() {
-            try {
-                final VariantContext vc = codec.decode(nextSource());
-                return vc == null ? null : vc.fullyDecode(header, false);
-            } catch ( IOException e ) {
-                throw new RuntimeException(e);
-            }
-        }
-
-        @Override
-        public void remove() { }
-    }
-
-    public static VariantContextContainer readAllVCs(final File input, final BCF2Codec codec) throws IOException {
-        PositionalBufferedStream headerPbs = new PositionalBufferedStream(new FileInputStream(input));
-        FeatureCodecHeader header = codec.readHeader(headerPbs);
-        headerPbs.close();
-
-        final PositionalBufferedStream pbs = new PositionalBufferedStream(new FileInputStream(input));
-        pbs.skip(header.getHeaderEnd());
-
-        final VCFHeader vcfHeader = (VCFHeader)header.getHeaderValue();
-        return new VariantContextTestProvider.VariantContextContainer(vcfHeader, new VariantContextTestProvider.VCIterable(codec, vcfHeader) {
-            @Override
-            public boolean hasNext() {
-                try {
-                    return !pbs.isDone();
-                } catch (IOException e) {
-                    throw new RuntimeException(e);
-                }
-            }
-
-            @Override
-            public Object nextSource() {
-                return pbs;
-            }
-        });
-    }
-
-    public static VariantContextContainer readAllVCs(final File input, final VCFCodec codec) throws FileNotFoundException {
-        final LineIterator lineIterator = new LineIteratorImpl(LineReaderUtil.fromBufferedStream(new BufferedInputStream(new FileInputStream(input))));
-        final VCFHeader vcfHeader = (VCFHeader) codec.readActualHeader(lineIterator);
-        return new VariantContextTestProvider.VariantContextContainer(vcfHeader, new VariantContextTestProvider.VCIterable<LineIterator>(codec, vcfHeader) {
-            @Override
-            public boolean hasNext() {
-                return lineIterator.hasNext();
-            }
-
-            @Override
-            public LineIterator nextSource() {
-                return lineIterator;
-            }
-        });
-    }
-    
-    public static void assertVCFandBCFFilesAreTheSame(final File vcfFile, final File bcfFile) throws IOException {
-        final VariantContextContainer vcfData = readAllVCs(vcfFile, new VCFCodec());
-        final VariantContextContainer bcfData = readAllVCs(bcfFile, new BCF2Codec());
-        assertEquals(bcfData.getHeader(), vcfData.getHeader());
-        assertEquals(bcfData.getVCs(), vcfData.getVCs());
-    }
-
-    public static void assertEquals(final Iterable<VariantContext> actual, final Iterable<VariantContext> expected) {
-        final Iterator<VariantContext> actualIT = actual.iterator();
-        final Iterator<VariantContext> expectedIT = expected.iterator();
-
-        while ( expectedIT.hasNext() ) {
-            final VariantContext expectedVC = expectedIT.next();
-            if ( expectedVC == null )
-                continue;
-
-            VariantContext actualVC;
-            do {
-                Assert.assertTrue(actualIT.hasNext(), "Too few records found in actual");
-                actualVC = actualIT.next();
-            } while ( actualIT.hasNext() && actualVC == null );
-
-            if ( actualVC == null )
-                Assert.fail("Too few records in actual");
-
-            assertEquals(actualVC, expectedVC);
-        }
-        Assert.assertTrue(! actualIT.hasNext(), "Too many records found in actual");
-    }
-
-    /**
-     * Assert that two variant contexts are actually equal
-     * @param actual
-     * @param expected
-     */
-    public static void assertEquals( final VariantContext actual, final VariantContext expected ) {
-        Assert.assertNotNull(actual, "VariantContext expected not null");
-        Assert.assertEquals(actual.getChr(), expected.getChr(), "chr");
-        Assert.assertEquals(actual.getStart(), expected.getStart(), "start");
-        Assert.assertEquals(actual.getEnd(), expected.getEnd(), "end");
-        Assert.assertEquals(actual.getID(), expected.getID(), "id");
-        Assert.assertEquals(actual.getAlleles(), expected.getAlleles(), "alleles for " + expected + " vs " + actual);
-
-        assertAttributesEquals(actual.getAttributes(), expected.getAttributes());
-        Assert.assertEquals(actual.filtersWereApplied(), expected.filtersWereApplied(), "filtersWereApplied");
-        Assert.assertEquals(actual.isFiltered(), expected.isFiltered(), "isFiltered");
-        VariantBaseTest.assertEqualsSet(actual.getFilters(), expected.getFilters(), "filters");
-        VariantBaseTest.assertEqualsDoubleSmart(actual.getPhredScaledQual(), expected.getPhredScaledQual());
-
-        Assert.assertEquals(actual.hasGenotypes(), expected.hasGenotypes(), "hasGenotypes");
-        if ( expected.hasGenotypes() ) {
-            VariantBaseTest.assertEqualsSet(actual.getSampleNames(), expected.getSampleNames(), "sample names set");
-            Assert.assertEquals(actual.getSampleNamesOrderedByName(), expected.getSampleNamesOrderedByName(), "sample names");
-            final Set<String> samples = expected.getSampleNames();
-            for ( final String sample : samples ) {
-                assertEquals(actual.getGenotype(sample), expected.getGenotype(sample));
-            }
-        }
-    }
-
-    public static void assertEquals(final Genotype actual, final Genotype expected) {
-        Assert.assertEquals(actual.getSampleName(), expected.getSampleName(), "Genotype names");
-        Assert.assertEquals(actual.getAlleles(), expected.getAlleles(), "Genotype alleles");
-        Assert.assertEquals(actual.getGenotypeString(), expected.getGenotypeString(), "Genotype string");
-        Assert.assertEquals(actual.getType(), expected.getType(), "Genotype type");
-
-        // filters are the same
-        Assert.assertEquals(actual.getFilters(), expected.getFilters(), "Genotype fields");
-        Assert.assertEquals(actual.isFiltered(), expected.isFiltered(), "Genotype isFiltered");
-
-        // inline attributes
-        Assert.assertEquals(actual.getDP(), expected.getDP(), "Genotype dp");
-        Assert.assertTrue(Arrays.equals(actual.getAD(), expected.getAD()));
-        Assert.assertEquals(actual.getGQ(), expected.getGQ(), "Genotype gq");
-        Assert.assertEquals(actual.hasPL(), expected.hasPL(), "Genotype hasPL");
-        Assert.assertEquals(actual.hasAD(), expected.hasAD(), "Genotype hasAD");
-        Assert.assertEquals(actual.hasGQ(), expected.hasGQ(), "Genotype hasGQ");
-        Assert.assertEquals(actual.hasDP(), expected.hasDP(), "Genotype hasDP");
-
-        Assert.assertEquals(actual.hasLikelihoods(), expected.hasLikelihoods(), "Genotype haslikelihoods");
-        Assert.assertEquals(actual.getLikelihoodsString(), expected.getLikelihoodsString(), "Genotype getlikelihoodsString");
-        Assert.assertEquals(actual.getLikelihoods(), expected.getLikelihoods(), "Genotype getLikelihoods");
-        Assert.assertTrue(Arrays.equals(actual.getPL(), expected.getPL()));
-
-        Assert.assertEquals(actual.getPhredScaledQual(), expected.getPhredScaledQual(), "Genotype phredScaledQual");
-        assertAttributesEquals(actual.getExtendedAttributes(), expected.getExtendedAttributes());
-        Assert.assertEquals(actual.isPhased(), expected.isPhased(), "Genotype isPhased");
-        Assert.assertEquals(actual.getPloidy(), expected.getPloidy(), "Genotype getPloidy");
-    }
-
-    private static void assertAttributesEquals(final Map<String, Object> actual, Map<String, Object> expected) {
-        final Set<String> expectedKeys = new HashSet<String>(expected.keySet());
-
-        for ( final Map.Entry<String, Object> act : actual.entrySet() ) {
-            final Object actualValue = act.getValue();
-            if ( expected.containsKey(act.getKey()) && expected.get(act.getKey()) != null ) {
-                final Object expectedValue = expected.get(act.getKey());
-                if ( expectedValue instanceof List ) {
-                    final List<Object> expectedList = (List<Object>)expectedValue;
-                    Assert.assertTrue(actualValue instanceof List, act.getKey() + " should be a list but isn't");
-                    final List<Object> actualList = (List<Object>)actualValue;
-                    Assert.assertEquals(actualList.size(), expectedList.size(), act.getKey() + " size");
-                    for ( int i = 0; i < expectedList.size(); i++ )
-                        assertAttributeEquals(act.getKey(), actualList.get(i), expectedList.get(i));
-                } else
-                    assertAttributeEquals(act.getKey(), actualValue, expectedValue);
-            } else {
-                // it's ok to have a binding in x -> null that's absent in y
-                Assert.assertNull(actualValue, act.getKey() + " present in one but not in the other");
-            }
-            expectedKeys.remove(act.getKey());
-        }
-
-        // now expectedKeys contains only the keys found in expected but not in actual,
-        // and they must all be null
-        for ( final String missingExpected : expectedKeys ) {
-            final Object value = expected.get(missingExpected);
-            Assert.assertTrue(isMissing(value), "Attribute " + missingExpected + " missing in one but not in other" );
-        }
-    }
-
-    private static final boolean isMissing(final Object value) {
-        if ( value == null ) return true;
-        else if ( value.equals(VCFConstants.MISSING_VALUE_v4) ) return true;
-        else if ( value instanceof List ) {
-            // handles the case where all elements are null or the list is empty
-            for ( final Object elt : (List)value)
-                if ( elt != null )
-                    return false;
-            return true;
-        } else
-            return false;
-    }
-
-    private static void assertAttributeEquals(final String key, final Object actual, final Object expected) {
-        if ( expected instanceof Double ) {
-            // must be very tolerant because doubles are being rounded to 2 sig figs
-            VariantBaseTest.assertEqualsDoubleSmart(actual, (Double)expected, 1e-2);
-        } else
-            Assert.assertEquals(actual, expected, "Attribute " + key);
-    }
-
-    public static void addComplexGenotypesTest() {
-        final List<Allele> allAlleles = Arrays.asList(
-                Allele.create("A", true),
-                Allele.create("C", false),
-                Allele.create("G", false));
-
-        for ( int nAlleles : Arrays.asList(2, 3) ) {
-            for ( int highestPloidy : Arrays.asList(1, 2, 3) ) {
-                // site alleles
-                final List<Allele> siteAlleles = allAlleles.subList(0, nAlleles);
-
-                // possible alleles for genotypes
-                final List<Allele> possibleGenotypeAlleles = new ArrayList<Allele>(siteAlleles);
-                possibleGenotypeAlleles.add(Allele.NO_CALL);
-
-                // there are n^ploidy possible genotypes
-                final List<List<Allele>> possibleGenotypes = makeAllGenotypes(possibleGenotypeAlleles, highestPloidy);
-                final int nPossibleGenotypes = possibleGenotypes.size();
-
-                VariantContextBuilder vb = new VariantContextBuilder("unittest", "1", 1, 1, siteAlleles);
-
-                // first test -- create n copies of each genotype
-                for ( int i = 0; i < nPossibleGenotypes; i++ ) {
-                    final List<Genotype> samples = new ArrayList<Genotype>(3);
-                    samples.add(GenotypeBuilder.create("sample" + i, possibleGenotypes.get(i)));
-                    add(vb.genotypes(samples));
-                }
-
-                // second test -- create one sample with each genotype
-                {
-                    final List<Genotype> samples = new ArrayList<Genotype>(nPossibleGenotypes);
-                    for ( int i = 0; i < nPossibleGenotypes; i++ ) {
-                        samples.add(GenotypeBuilder.create("sample" + i, possibleGenotypes.get(i)));
-                    }
-                    add(vb.genotypes(samples));
-                }
-
-                // test mixed ploidy
-                for ( int i = 0; i < nPossibleGenotypes; i++ ) {
-                    for ( int ploidy = 1; ploidy < highestPloidy; ploidy++ ) {
-                        final List<Genotype> samples = new ArrayList<Genotype>(highestPloidy);
-                        final List<Allele> genotype = possibleGenotypes.get(i).subList(0, ploidy);
-                        samples.add(GenotypeBuilder.create("sample" + i, genotype));
-                        add(vb.genotypes(samples));
-                    }
-                }
-            }
-        }
-    }
-
-    private static List<List<Allele>> makeAllGenotypes(final List<Allele> alleles, final int highestPloidy) {
-        return GeneralUtils.makePermutations(alleles, highestPloidy, true);
-    }
-
-    public static void assertEquals(final VCFHeader actual, final VCFHeader expected) {
-        Assert.assertEquals(actual.getMetaDataInSortedOrder().size(), expected.getMetaDataInSortedOrder().size(), "No VCF header lines");
-
-        // for some reason set.equals() is returning false but all paired elements are .equals().  Perhaps compare to is busted?
-        //Assert.assertEquals(actual.getMetaDataInInputOrder(), expected.getMetaDataInInputOrder());
-        final List<VCFHeaderLine> actualLines = new ArrayList<VCFHeaderLine>(actual.getMetaDataInSortedOrder());
-        final List<VCFHeaderLine> expectedLines = new ArrayList<VCFHeaderLine>(expected.getMetaDataInSortedOrder());
-        for ( int i = 0; i < actualLines.size(); i++ ) {
-            Assert.assertEquals(actualLines.get(i), expectedLines.get(i), "VCF header lines");
-        }
-    }
-
-    public static void main( String argv[] ) {
-        final File variants1 = new File(argv[0]);
-        final File variants2 = new File(argv[1]);
-        try {
-            VariantContextTestProvider.assertVCFandBCFFilesAreTheSame(variants1, variants2);
-        } catch ( IOException e ) {
-            throw new RuntimeException(e);
-        }
-    }
-}
\ No newline at end of file
diff --git a/src/tests/java/org/broadinstitute/variant/variantcontext/VariantContextUnitTest.java b/src/tests/java/org/broadinstitute/variant/variantcontext/VariantContextUnitTest.java
deleted file mode 100644
index e7c4a93..0000000
--- a/src/tests/java/org/broadinstitute/variant/variantcontext/VariantContextUnitTest.java
+++ /dev/null
@@ -1,980 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.variantcontext;
-
-
-// the imports for unit testing.
-
-import org.broadinstitute.variant.VariantBaseTest;
-import org.testng.annotations.BeforeSuite;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-import org.testng.Assert;
-
-import java.util.*;
-
-
-public class VariantContextUnitTest extends VariantBaseTest {
-    Allele A, Aref, C, T, Tref;
-    Allele del, delRef, ATC, ATCref;
-
-    // A [ref] / T at 10
-    String snpLoc = "chr1";
-    int snpLocStart = 10;
-    int snpLocStop = 10;
-
-    // - / ATC [ref] from 20-22
-    String delLoc = "chr1";
-    int delLocStart = 20;
-    int delLocStop = 22;
-
-    // - [ref] / ATC from 20-20
-    String insLoc = "chr1";
-    int insLocStart = 20;
-    int insLocStop = 20;
-
-    VariantContextBuilder basicBuilder, snpBuilder, insBuilder;
-
-    @BeforeSuite
-    public void before() {
-        del = Allele.create("A");
-        delRef = Allele.create("A", true);
-
-        A = Allele.create("A");
-        C = Allele.create("C");
-        Aref = Allele.create("A", true);
-        T = Allele.create("T");
-        Tref = Allele.create("T", true);
-
-        ATC = Allele.create("ATC");
-        ATCref = Allele.create("ATC", true);
-    }
-
-    @BeforeMethod
-    public void beforeTest() {
-        basicBuilder = new VariantContextBuilder("test", snpLoc,snpLocStart, snpLocStop, Arrays.asList(Aref, T));
-        snpBuilder = new VariantContextBuilder("test", snpLoc,snpLocStart, snpLocStop, Arrays.asList(Aref, T));
-        insBuilder = new VariantContextBuilder("test", insLoc, insLocStart, insLocStop, Arrays.asList(delRef, ATC));
-    }
-
-    @Test
-    public void testDetermineTypes() {
-        Allele ACref = Allele.create("AC", true);
-        Allele AC = Allele.create("AC");
-        Allele AT = Allele.create("AT");
-        Allele C = Allele.create("C");
-        Allele CAT = Allele.create("CAT");
-        Allele TAref = Allele.create("TA", true);
-        Allele TA = Allele.create("TA");
-        Allele TC = Allele.create("TC");
-        Allele symbolic = Allele.create("<FOO>");
-
-        // test REF
-        List<Allele> alleles = Arrays.asList(Tref);
-        VariantContext vc = snpBuilder.alleles(alleles).stop(snpLocStop).make();
-        Assert.assertEquals(vc.getType(), VariantContext.Type.NO_VARIATION);
-
-        // test SNPs
-        alleles = Arrays.asList(Tref, A);
-        vc = snpBuilder.alleles(alleles).stop(snpLocStop).make();
-        Assert.assertEquals(vc.getType(), VariantContext.Type.SNP);
-
-        alleles = Arrays.asList(Tref, A, C);
-        vc = snpBuilder.alleles(alleles).stop(snpLocStop).make();
-        Assert.assertEquals(vc.getType(), VariantContext.Type.SNP);
-
-        // test MNPs
-        alleles = Arrays.asList(ACref, TA);
-        vc = snpBuilder.alleles(alleles).stop(snpLocStop+1).make();
-        Assert.assertEquals(vc.getType(), VariantContext.Type.MNP);
-
-        alleles = Arrays.asList(ATCref, CAT, Allele.create("GGG"));
-        vc = basicBuilder.alleles(alleles).stop(snpLocStop+2).make();
-        Assert.assertEquals(vc.getType(), VariantContext.Type.MNP);
-
-        // test INDELs
-        alleles = Arrays.asList(Aref, ATC);
-        vc = basicBuilder.alleles(alleles).stop(snpLocStop).make();
-        Assert.assertEquals(vc.getType(), VariantContext.Type.INDEL);
-
-        alleles = Arrays.asList(ATCref, A);
-        vc = basicBuilder.alleles(alleles).stop(snpLocStop+2).make();
-        Assert.assertEquals(vc.getType(), VariantContext.Type.INDEL);
-
-        alleles = Arrays.asList(Tref, TA, TC);
-        vc = basicBuilder.alleles(alleles).stop(snpLocStop).make();
-        Assert.assertEquals(vc.getType(), VariantContext.Type.INDEL);
-
-        alleles = Arrays.asList(ATCref, A, AC);
-        vc = basicBuilder.alleles(alleles).stop(snpLocStop+2).make();
-        Assert.assertEquals(vc.getType(), VariantContext.Type.INDEL);
-
-        alleles = Arrays.asList(ATCref, A, Allele.create("ATCTC"));
-        vc = basicBuilder.alleles(alleles).stop(snpLocStop+2).make();
-        Assert.assertEquals(vc.getType(), VariantContext.Type.INDEL);
-
-        // test MIXED
-        alleles = Arrays.asList(TAref, T, TC);
-        vc = basicBuilder.alleles(alleles).stop(snpLocStop+1).make();
-        Assert.assertEquals(vc.getType(), VariantContext.Type.MIXED);
-
-        alleles = Arrays.asList(TAref, T, AC);
-        vc = basicBuilder.alleles(alleles).stop(snpLocStop+1).make();
-        Assert.assertEquals(vc.getType(), VariantContext.Type.MIXED);
-
-        alleles = Arrays.asList(ACref, ATC, AT);
-        vc = basicBuilder.alleles(alleles).stop(snpLocStop+1).make();
-        Assert.assertEquals(vc.getType(), VariantContext.Type.MIXED);
-
-        alleles = Arrays.asList(Aref, T, symbolic);
-        vc = basicBuilder.alleles(alleles).stop(snpLocStop).make();
-        Assert.assertEquals(vc.getType(), VariantContext.Type.MIXED);
-
-        // test SYMBOLIC
-        alleles = Arrays.asList(Tref, symbolic);
-        vc = basicBuilder.alleles(alleles).stop(snpLocStop).make();
-        Assert.assertEquals(vc.getType(), VariantContext.Type.SYMBOLIC);
-    }
-
-    @Test
-    public void testMultipleSNPAlleleOrdering() {
-        final List<Allele> allelesNaturalOrder = Arrays.asList(Aref, C, T);
-        final List<Allele> allelesUnnaturalOrder = Arrays.asList(Aref, T, C);
-        VariantContext naturalVC = snpBuilder.alleles(allelesNaturalOrder).make();
-        VariantContext unnaturalVC = snpBuilder.alleles(allelesUnnaturalOrder).make();
-        Assert.assertEquals(new ArrayList<Allele>(naturalVC.getAlleles()), allelesNaturalOrder);
-        Assert.assertEquals(new ArrayList<Allele>(unnaturalVC.getAlleles()), allelesUnnaturalOrder);
-    }
-
-    @Test
-    public void testCreatingSNPVariantContext() {
-
-        List<Allele> alleles = Arrays.asList(Aref, T);
-        VariantContext vc = snpBuilder.alleles(alleles).make();
-
-        Assert.assertEquals(vc.getChr(), snpLoc);
-        Assert.assertEquals(vc.getStart(), snpLocStart);
-        Assert.assertEquals(vc.getEnd(), snpLocStop);
-        Assert.assertEquals(vc.getType(), VariantContext.Type.SNP);
-        Assert.assertTrue(vc.isSNP());
-        Assert.assertFalse(vc.isIndel());
-        Assert.assertFalse(vc.isSimpleInsertion());
-        Assert.assertFalse(vc.isSimpleDeletion());
-        Assert.assertFalse(vc.isSimpleIndel());
-        Assert.assertFalse(vc.isMixed());
-        Assert.assertTrue(vc.isBiallelic());
-        Assert.assertEquals(vc.getNAlleles(), 2);
-
-        Assert.assertEquals(vc.getReference(), Aref);
-        Assert.assertEquals(vc.getAlleles().size(), 2);
-        Assert.assertEquals(vc.getAlternateAlleles().size(), 1);
-        Assert.assertEquals(vc.getAlternateAllele(0), T);
-
-        Assert.assertFalse(vc.hasGenotypes());
-
-        Assert.assertEquals(vc.getSampleNames().size(), 0);
-    }
-
-    @Test
-    public void testCreatingRefVariantContext() {
-        List<Allele> alleles = Arrays.asList(Aref);
-        VariantContext vc = snpBuilder.alleles(alleles).make();
-
-        Assert.assertEquals(vc.getChr(), snpLoc);
-        Assert.assertEquals(vc.getStart(), snpLocStart);
-        Assert.assertEquals(vc.getEnd(), snpLocStop);
-        Assert.assertEquals(VariantContext.Type.NO_VARIATION, vc.getType());
-        Assert.assertFalse(vc.isSNP());
-        Assert.assertFalse(vc.isIndel());
-        Assert.assertFalse(vc.isSimpleInsertion());
-        Assert.assertFalse(vc.isSimpleDeletion());
-        Assert.assertFalse(vc.isSimpleIndel());
-        Assert.assertFalse(vc.isMixed());
-        Assert.assertFalse(vc.isBiallelic());
-        Assert.assertEquals(vc.getNAlleles(), 1);
-
-        Assert.assertEquals(vc.getReference(), Aref);
-        Assert.assertEquals(vc.getAlleles().size(), 1);
-        Assert.assertEquals(vc.getAlternateAlleles().size(), 0);
-        //Assert.assertEquals(vc.getAlternateAllele(0), T);
-
-        Assert.assertFalse(vc.hasGenotypes());
-        Assert.assertEquals(vc.getSampleNames().size(), 0);
-    }
-
-    @Test
-    public void testCreatingDeletionVariantContext() {
-        List<Allele> alleles = Arrays.asList(ATCref, del);
-        VariantContext vc = new VariantContextBuilder("test", delLoc, delLocStart, delLocStop, alleles).make();
-
-        Assert.assertEquals(vc.getChr(), delLoc);
-        Assert.assertEquals(vc.getStart(), delLocStart);
-        Assert.assertEquals(vc.getEnd(), delLocStop);
-        Assert.assertEquals(vc.getType(), VariantContext.Type.INDEL);
-        Assert.assertFalse(vc.isSNP());
-        Assert.assertTrue(vc.isIndel());
-        Assert.assertFalse(vc.isSimpleInsertion());
-        Assert.assertTrue(vc.isSimpleDeletion());
-        Assert.assertTrue(vc.isSimpleIndel());
-        Assert.assertFalse(vc.isMixed());
-        Assert.assertTrue(vc.isBiallelic());
-        Assert.assertEquals(vc.getNAlleles(), 2);
-
-        Assert.assertEquals(vc.getReference(), ATCref);
-        Assert.assertEquals(vc.getAlleles().size(), 2);
-        Assert.assertEquals(vc.getAlternateAlleles().size(), 1);
-        Assert.assertEquals(vc.getAlternateAllele(0), del);
-
-        Assert.assertFalse(vc.hasGenotypes());
-
-        Assert.assertEquals(vc.getSampleNames().size(), 0);
-    }
-
-    @Test
-    public void testCreatingComplexSubstitutionVariantContext() {
-        List<Allele> alleles = Arrays.asList(Tref, ATC);
-        VariantContext vc = new VariantContextBuilder("test", insLoc, insLocStart, insLocStop, alleles).make();
-
-        Assert.assertEquals(vc.getChr(), insLoc);
-        Assert.assertEquals(vc.getStart(), insLocStart);
-        Assert.assertEquals(vc.getEnd(), insLocStop);
-        Assert.assertEquals(vc.getType(), VariantContext.Type.INDEL);
-        Assert.assertFalse(vc.isSNP());
-        Assert.assertTrue(vc.isIndel());
-        Assert.assertFalse(vc.isSimpleInsertion());
-        Assert.assertFalse(vc.isSimpleDeletion());
-        Assert.assertFalse(vc.isSimpleIndel());
-        Assert.assertFalse(vc.isMixed());
-        Assert.assertTrue(vc.isBiallelic());
-        Assert.assertEquals(vc.getNAlleles(), 2);
-
-        Assert.assertEquals(vc.getReference(), Tref);
-        Assert.assertEquals(vc.getAlleles().size(), 2);
-        Assert.assertEquals(vc.getAlternateAlleles().size(), 1);
-        Assert.assertEquals(vc.getAlternateAllele(0), ATC);
-
-        Assert.assertFalse(vc.hasGenotypes());
-
-        Assert.assertEquals(vc.getSampleNames().size(), 0);
-    }
-
-    @Test
-    public void testMatchingAlleles() {
-        List<Allele> alleles = Arrays.asList(ATCref, del);
-        VariantContext vc = new VariantContextBuilder("test", delLoc, delLocStart, delLocStop, alleles).make();
-        VariantContext vc2 = new VariantContextBuilder("test2", delLoc, delLocStart+12, delLocStop+12, alleles).make();
-
-        Assert.assertTrue(vc.hasSameAllelesAs(vc2));
-        Assert.assertTrue(vc.hasSameAlternateAllelesAs(vc2));
-    }
-
-    @Test
-    public void testCreatingInsertionVariantContext() {
-        List<Allele> alleles = Arrays.asList(delRef, ATC);
-        VariantContext vc = insBuilder.alleles(alleles).make();
-
-        Assert.assertEquals(vc.getChr(), insLoc);
-        Assert.assertEquals(vc.getStart(), insLocStart);
-        Assert.assertEquals(vc.getEnd(), insLocStop);
-        Assert.assertEquals(vc.getType(), VariantContext.Type.INDEL);
-        Assert.assertFalse(vc.isSNP());
-        Assert.assertTrue(vc.isIndel());
-        Assert.assertTrue(vc.isSimpleInsertion());
-        Assert.assertFalse(vc.isSimpleDeletion());
-        Assert.assertTrue(vc.isSimpleIndel());
-        Assert.assertFalse(vc.isMixed());
-        Assert.assertTrue(vc.isBiallelic());
-        Assert.assertEquals(vc.getNAlleles(), 2);
-
-        Assert.assertEquals(vc.getReference(), delRef);
-        Assert.assertEquals(vc.getAlleles().size(), 2);
-        Assert.assertEquals(vc.getAlternateAlleles().size(), 1);
-        Assert.assertEquals(vc.getAlternateAllele(0), ATC);
-        Assert.assertFalse(vc.hasGenotypes());
-
-        Assert.assertEquals(vc.getSampleNames().size(), 0);
-    }
-
-    @Test
-    public void testCreatingPartiallyCalledGenotype() {
-        List<Allele> alleles = Arrays.asList(Aref, C);
-        Genotype g = GenotypeBuilder.create("foo", Arrays.asList(C, Allele.NO_CALL));
-        VariantContext vc = new VariantContextBuilder("test", snpLoc, snpLocStart, snpLocStop, alleles).genotypes(g).make();
-
-        Assert.assertTrue(vc.isSNP());
-        Assert.assertEquals(vc.getNAlleles(), 2);
-        Assert.assertTrue(vc.hasGenotypes());
-        Assert.assertFalse(vc.isMonomorphicInSamples());
-        Assert.assertTrue(vc.isPolymorphicInSamples());
-        Assert.assertEquals(vc.getGenotype("foo"), g);
-        Assert.assertEquals(vc.getCalledChrCount(), 1); // we only have 1 called chromosomes, we exclude the NO_CALL one isn't called
-        Assert.assertEquals(vc.getCalledChrCount(Aref), 0);
-        Assert.assertEquals(vc.getCalledChrCount(C), 1);
-        Assert.assertFalse(vc.getGenotype("foo").isHet());
-        Assert.assertFalse(vc.getGenotype("foo").isHom());
-        Assert.assertFalse(vc.getGenotype("foo").isNoCall());
-        Assert.assertFalse(vc.getGenotype("foo").isHom());
-        Assert.assertTrue(vc.getGenotype("foo").isMixed());
-        Assert.assertEquals(vc.getGenotype("foo").getType(), GenotypeType.MIXED);
-    }
-
-    @Test (expectedExceptions = Exception.class)
-    public void testBadConstructorArgs1() {
-        new VariantContextBuilder("test", insLoc, insLocStart, insLocStop, Arrays.asList(delRef, ATCref)).make();
-    }
-
-    @Test (expectedExceptions = Exception.class)
-    public void testBadConstructorArgs2() {
-        new VariantContextBuilder("test", insLoc, insLocStart, insLocStop, Arrays.asList(delRef, del)).make();
-    }
-
-    @Test (expectedExceptions = Exception.class)
-    public void testBadConstructorArgs3() {
-        new VariantContextBuilder("test", insLoc, insLocStart, insLocStop, Arrays.asList(del)).make();
-    }
-
-    @Test (expectedExceptions = Throwable.class)
-    public void testBadConstructorArgs4() {
-        new VariantContextBuilder("test", insLoc, insLocStart, insLocStop, Collections.<Allele>emptyList()).make();
-    }
-
-    @Test (expectedExceptions = Exception.class)
-    public void testBadConstructorArgsDuplicateAlleles1() {
-        new VariantContextBuilder("test", insLoc, insLocStart, insLocStop, Arrays.asList(Aref, T, T)).make();
-    }
-
-    @Test (expectedExceptions = Exception.class)
-    public void testBadConstructorArgsDuplicateAlleles2() {
-        new VariantContextBuilder("test", insLoc, insLocStart, insLocStop, Arrays.asList(Aref, A)).make();
-    }
-
-    @Test (expectedExceptions = Throwable.class)
-    public void testBadLoc1() {
-        List<Allele> alleles = Arrays.asList(Aref, T, del);
-        new VariantContextBuilder("test", delLoc, delLocStart, delLocStop, alleles).make();
-    }
-
-    @Test (expectedExceptions = Throwable.class)
-    public void testBadID1() {
-        new VariantContextBuilder("test", delLoc, delLocStart, delLocStop, Arrays.asList(Aref, T)).id(null).make();
-    }
-
-    @Test (expectedExceptions = Exception.class)
-    public void testBadID2() {
-        new VariantContextBuilder("test", delLoc, delLocStart, delLocStop, Arrays.asList(Aref, T)).id("").make();
-    }
-
-    @Test (expectedExceptions = Throwable.class)
-    public void testBadPError() {
-        new VariantContextBuilder("test", insLoc, insLocStart, insLocStop, Arrays.asList(delRef, ATCref)).log10PError(0.5).make();
-    }
-
-    @Test
-    public void testAccessingSimpleSNPGenotypes() {
-        List<Allele> alleles = Arrays.asList(Aref, T);
-
-        Genotype g1 = GenotypeBuilder.create("AA", Arrays.asList(Aref, Aref));
-        Genotype g2 = GenotypeBuilder.create("AT", Arrays.asList(Aref, T));
-        Genotype g3 = GenotypeBuilder.create("TT", Arrays.asList(T, T));
-
-        VariantContext vc = new VariantContextBuilder("test", snpLoc, snpLocStart, snpLocStop, alleles)
-                .genotypes(g1, g2, g3).make();
-
-        Assert.assertTrue(vc.hasGenotypes());
-        Assert.assertFalse(vc.isMonomorphicInSamples());
-        Assert.assertTrue(vc.isPolymorphicInSamples());
-        Assert.assertEquals(vc.getSampleNames().size(), 3);
-
-        Assert.assertEquals(vc.getGenotypes().size(), 3);
-        Assert.assertEquals(vc.getGenotypes().get("AA"), g1);
-        Assert.assertEquals(vc.getGenotype("AA"), g1);
-        Assert.assertEquals(vc.getGenotypes().get("AT"), g2);
-        Assert.assertEquals(vc.getGenotype("AT"), g2);
-        Assert.assertEquals(vc.getGenotypes().get("TT"), g3);
-        Assert.assertEquals(vc.getGenotype("TT"), g3);
-
-        Assert.assertTrue(vc.hasGenotype("AA"));
-        Assert.assertTrue(vc.hasGenotype("AT"));
-        Assert.assertTrue(vc.hasGenotype("TT"));
-        Assert.assertFalse(vc.hasGenotype("foo"));
-        Assert.assertFalse(vc.hasGenotype("TTT"));
-        Assert.assertFalse(vc.hasGenotype("at"));
-        Assert.assertFalse(vc.hasGenotype("tt"));
-
-        Assert.assertEquals(vc.getCalledChrCount(), 6);
-        Assert.assertEquals(vc.getCalledChrCount(Aref), 3);
-        Assert.assertEquals(vc.getCalledChrCount(T), 3);
-    }
-
-    @Test
-    public void testAccessingCompleteGenotypes() {
-        List<Allele> alleles = Arrays.asList(Aref, T, ATC);
-
-        Genotype g1 = GenotypeBuilder.create("AA", Arrays.asList(Aref, Aref));
-        Genotype g2 = GenotypeBuilder.create("AT", Arrays.asList(Aref, T));
-        Genotype g3 = GenotypeBuilder.create("TT", Arrays.asList(T, T));
-        Genotype g4 = GenotypeBuilder.create("Td", Arrays.asList(T, ATC));
-        Genotype g5 = GenotypeBuilder.create("dd", Arrays.asList(ATC, ATC));
-        Genotype g6 = GenotypeBuilder.create("..", Arrays.asList(Allele.NO_CALL, Allele.NO_CALL));
-
-        VariantContext vc = new VariantContextBuilder("test", snpLoc, snpLocStart, snpLocStop, alleles)
-                .genotypes(g1, g2, g3, g4, g5, g6).make();
-
-        Assert.assertTrue(vc.hasGenotypes());
-        Assert.assertFalse(vc.isMonomorphicInSamples());
-        Assert.assertTrue(vc.isPolymorphicInSamples());
-        Assert.assertEquals(vc.getGenotypes().size(), 6);
-
-        Assert.assertEquals(3, vc.getGenotypes(Arrays.asList("AA", "Td", "dd")).size());
-
-        Assert.assertEquals(10, vc.getCalledChrCount());
-        Assert.assertEquals(3, vc.getCalledChrCount(Aref));
-        Assert.assertEquals(4, vc.getCalledChrCount(T));
-        Assert.assertEquals(3, vc.getCalledChrCount(ATC));
-        Assert.assertEquals(2, vc.getCalledChrCount(Allele.NO_CALL));
-    }
-
-    @Test
-    public void testAccessingRefGenotypes() {
-        List<Allele> alleles1 = Arrays.asList(Aref, T);
-        List<Allele> alleles2 = Arrays.asList(Aref);
-        List<Allele> alleles3 = Arrays.asList(Aref, T);
-        for ( List<Allele> alleles : Arrays.asList(alleles1, alleles2, alleles3)) {
-            Genotype g1 = GenotypeBuilder.create("AA1", Arrays.asList(Aref, Aref));
-            Genotype g2 = GenotypeBuilder.create("AA2", Arrays.asList(Aref, Aref));
-            Genotype g3 = GenotypeBuilder.create("..", Arrays.asList(Allele.NO_CALL, Allele.NO_CALL));
-            VariantContext vc = new VariantContextBuilder("test", snpLoc, snpLocStart, snpLocStop, alleles)
-                    .genotypes(g1, g2, g3).make();
-
-            Assert.assertTrue(vc.hasGenotypes());
-            Assert.assertTrue(vc.isMonomorphicInSamples());
-            Assert.assertFalse(vc.isPolymorphicInSamples());
-            Assert.assertEquals(vc.getGenotypes().size(), 3);
-
-            Assert.assertEquals(4, vc.getCalledChrCount());
-            Assert.assertEquals(4, vc.getCalledChrCount(Aref));
-            Assert.assertEquals(0, vc.getCalledChrCount(T));
-            Assert.assertEquals(2, vc.getCalledChrCount(Allele.NO_CALL));
-        }
-    }
-
-    @Test
-    public void testFilters() {
-        List<Allele> alleles = Arrays.asList(Aref, T);
-        Genotype g1 = GenotypeBuilder.create("AA", Arrays.asList(Aref, Aref));
-        Genotype g2 = GenotypeBuilder.create("AT", Arrays.asList(Aref, T));
-
-        VariantContext vc = new VariantContextBuilder("test", snpLoc, snpLocStart, snpLocStop, alleles).genotypes(g1, g2).make();
-
-        Assert.assertTrue(vc.isNotFiltered());
-        Assert.assertFalse(vc.isFiltered());
-        Assert.assertEquals(0, vc.getFilters().size());
-        Assert.assertFalse(vc.filtersWereApplied());
-        Assert.assertNull(vc.getFiltersMaybeNull());
-
-        vc = new VariantContextBuilder(vc).filters("BAD_SNP_BAD!").make();
-
-        Assert.assertFalse(vc.isNotFiltered());
-        Assert.assertTrue(vc.isFiltered());
-        Assert.assertEquals(1, vc.getFilters().size());
-        Assert.assertTrue(vc.filtersWereApplied());
-        Assert.assertNotNull(vc.getFiltersMaybeNull());
-
-        Set<String> filters = new HashSet<String>(Arrays.asList("BAD_SNP_BAD!", "REALLY_BAD_SNP", "CHRIST_THIS_IS_TERRIBLE"));
-        vc = new VariantContextBuilder(vc).filters(filters).make();
-
-        Assert.assertFalse(vc.isNotFiltered());
-        Assert.assertTrue(vc.isFiltered());
-        Assert.assertEquals(3, vc.getFilters().size());
-        Assert.assertTrue(vc.filtersWereApplied());
-        Assert.assertNotNull(vc.getFiltersMaybeNull());
-    }
-
-    @Test
-    public void testGetGenotypeCounts() {
-        List<Allele> alleles = Arrays.asList(Aref, T);
-        Genotype g1 = GenotypeBuilder.create("AA", Arrays.asList(Aref, Aref));
-        Genotype g2 = GenotypeBuilder.create("AT", Arrays.asList(Aref, T));
-        Genotype g3 = GenotypeBuilder.create("TT", Arrays.asList(T, T));
-        Genotype g4 = GenotypeBuilder.create("A.", Arrays.asList(Aref, Allele.NO_CALL));
-        Genotype g5 = GenotypeBuilder.create("..", Arrays.asList(Allele.NO_CALL, Allele.NO_CALL));
-
-        // we need to create a new VariantContext each time
-        VariantContext vc = new VariantContextBuilder("foo", snpLoc, snpLocStart, snpLocStop, alleles).genotypes(g1,g2,g3,g4,g5).make();
-        Assert.assertEquals(1, vc.getHetCount());
-        vc = new VariantContextBuilder("foo", snpLoc, snpLocStart, snpLocStop, alleles).genotypes(g1,g2,g3,g4,g5).make();
-        Assert.assertEquals(1, vc.getHomRefCount());
-        vc = new VariantContextBuilder("foo", snpLoc, snpLocStart, snpLocStop, alleles).genotypes(g1,g2,g3,g4,g5).make();
-        Assert.assertEquals(1, vc.getHomVarCount());
-        vc = new VariantContextBuilder("foo", snpLoc, snpLocStart, snpLocStop, alleles).genotypes(g1,g2,g3,g4,g5).make();
-        Assert.assertEquals(1, vc.getMixedCount());
-        vc = new VariantContextBuilder("foo", snpLoc, snpLocStart, snpLocStop, alleles).genotypes(g1,g2,g3,g4,g5).make();
-        Assert.assertEquals(1, vc.getNoCallCount());
-    }
-
-    @Test
-    public void testVCFfromGenotypes() {
-        List<Allele> alleles = Arrays.asList(Aref, C, T);
-        Genotype g1 = GenotypeBuilder.create("AA", Arrays.asList(Aref, Aref));
-        Genotype g2 = GenotypeBuilder.create("AT", Arrays.asList(Aref, T));
-        Genotype g3 = GenotypeBuilder.create("TT", Arrays.asList(T, T));
-        Genotype g4 = GenotypeBuilder.create("..", Arrays.asList(Allele.NO_CALL, Allele.NO_CALL));
-        Genotype g5 = GenotypeBuilder.create("AC", Arrays.asList(Aref, C));
-        VariantContext vc = new VariantContextBuilder("genotypes", snpLoc, snpLocStart, snpLocStop, alleles).genotypes(g1,g2,g3,g4,g5).make();
-
-        VariantContext vc12 = vc.subContextFromSamples(new HashSet<String>(Arrays.asList(g1.getSampleName(), g2.getSampleName())), true);
-        VariantContext vc1 = vc.subContextFromSamples(new HashSet<String>(Arrays.asList(g1.getSampleName())), true);
-        VariantContext vc23 = vc.subContextFromSamples(new HashSet<String>(Arrays.asList(g2.getSampleName(), g3.getSampleName())), true);
-        VariantContext vc4 = vc.subContextFromSamples(new HashSet<String>(Arrays.asList(g4.getSampleName())), true);
-        VariantContext vc14 = vc.subContextFromSamples(new HashSet<String>(Arrays.asList(g1.getSampleName(), g4.getSampleName())), true);
-        VariantContext vc125 = vc.subContextFromSamples(new HashSet<String>(Arrays.asList(g1.getSampleName(), g2.getSampleName(), g5.getSampleName())), true);
-
-        Assert.assertTrue(vc12.isPolymorphicInSamples());
-        Assert.assertTrue(vc23.isPolymorphicInSamples());
-        Assert.assertTrue(vc1.isMonomorphicInSamples());
-        Assert.assertTrue(vc4.isMonomorphicInSamples());
-        Assert.assertTrue(vc14.isMonomorphicInSamples());
-        Assert.assertTrue(vc125.isPolymorphicInSamples());
-
-        Assert.assertTrue(vc12.isSNP());
-        Assert.assertTrue(vc12.isVariant());
-        Assert.assertTrue(vc12.isBiallelic());
-
-        Assert.assertFalse(vc1.isSNP());
-        Assert.assertFalse(vc1.isVariant());
-        Assert.assertFalse(vc1.isBiallelic());
-
-        Assert.assertTrue(vc23.isSNP());
-        Assert.assertTrue(vc23.isVariant());
-        Assert.assertTrue(vc23.isBiallelic());
-
-        Assert.assertFalse(vc4.isSNP());
-        Assert.assertFalse(vc4.isVariant());
-        Assert.assertFalse(vc4.isBiallelic());
-
-        Assert.assertFalse(vc14.isSNP());
-        Assert.assertFalse(vc14.isVariant());
-        Assert.assertFalse(vc14.isBiallelic());
-
-        Assert.assertTrue(vc125.isSNP());
-        Assert.assertTrue(vc125.isVariant());
-        Assert.assertFalse(vc125.isBiallelic());
-
-        Assert.assertEquals(3, vc12.getCalledChrCount(Aref));
-        Assert.assertEquals(1, vc23.getCalledChrCount(Aref));
-        Assert.assertEquals(2, vc1.getCalledChrCount(Aref));
-        Assert.assertEquals(0, vc4.getCalledChrCount(Aref));
-        Assert.assertEquals(2, vc14.getCalledChrCount(Aref));
-        Assert.assertEquals(4, vc125.getCalledChrCount(Aref));
-    }
-
-    public void testGetGenotypeMethods() {
-        Genotype g1 = GenotypeBuilder.create("AA", Arrays.asList(Aref, Aref));
-        Genotype g2 = GenotypeBuilder.create("AT", Arrays.asList(Aref, T));
-        Genotype g3 = GenotypeBuilder.create("TT", Arrays.asList(T, T));
-        GenotypesContext gc = GenotypesContext.create(g1, g2, g3);
-        VariantContext vc = new VariantContextBuilder("genotypes", snpLoc, snpLocStart, snpLocStop, Arrays.asList(Aref, T)).genotypes(gc).make();
-
-        Assert.assertEquals(vc.getGenotype("AA"), g1);
-        Assert.assertEquals(vc.getGenotype("AT"), g2);
-        Assert.assertEquals(vc.getGenotype("TT"), g3);
-        Assert.assertEquals(vc.getGenotype("CC"), null);
-
-        Assert.assertEquals(vc.getGenotypes(), gc);
-        Assert.assertEquals(vc.getGenotypes(Arrays.asList("AA", "AT")), Arrays.asList(g1, g2));
-        Assert.assertEquals(vc.getGenotypes(Arrays.asList("AA", "TT")), Arrays.asList(g1, g3));
-        Assert.assertEquals(vc.getGenotypes(Arrays.asList("AA", "AT", "TT")), Arrays.asList(g1, g2, g3));
-        Assert.assertEquals(vc.getGenotypes(Arrays.asList("AA", "AT", "CC")), Arrays.asList(g1, g2));
-
-        Assert.assertEquals(vc.getGenotype(0), g1);
-        Assert.assertEquals(vc.getGenotype(1), g2);
-        Assert.assertEquals(vc.getGenotype(2), g3);
-    }
-
-    // --------------------------------------------------------------------------------
-    //
-    // Test allele merging
-    //
-    // --------------------------------------------------------------------------------
-
-    private class GetAllelesTest {
-        List<Allele> alleles;
-        String name;
-
-        private GetAllelesTest(String name, Allele... arg) {
-            this.name = name;
-            this.alleles = Arrays.asList(arg);
-        }
-
-        public String toString() {
-            return String.format("%s input=%s", name, alleles);
-        }
-    }
-
-    @DataProvider(name = "getAlleles")
-    public Object[][] mergeAllelesData() {
-        List<Object[]> tests = new ArrayList<Object[]>();
-
-        tests.add(new Object[]{new GetAllelesTest("A*",   Aref)});
-        tests.add(new Object[]{new GetAllelesTest("A*/C", Aref, C)});
-        tests.add(new Object[]{new GetAllelesTest("A*/C/T", Aref, C, T)});
-        tests.add(new Object[]{new GetAllelesTest("A*/T/C", Aref, T, C)});
-        tests.add(new Object[]{new GetAllelesTest("A*/C/T/ATC", Aref, C, T, ATC)});
-        tests.add(new Object[]{new GetAllelesTest("A*/T/C/ATC", Aref, T, C, ATC)});
-        tests.add(new Object[]{new GetAllelesTest("A*/ATC/T/C", Aref, ATC, T, C)});
-
-        return tests.toArray(new Object[][]{});
-    }
-
-    @Test(dataProvider = "getAlleles")
-    public void testMergeAlleles(GetAllelesTest cfg) {
-        final List<Allele> altAlleles = cfg.alleles.subList(1, cfg.alleles.size());
-        final VariantContext vc = new VariantContextBuilder("test", snpLoc, snpLocStart, snpLocStop, cfg.alleles).make();
-
-        Assert.assertEquals(vc.getAlleles(), cfg.alleles, "VC alleles not the same as input alleles");
-        Assert.assertEquals(vc.getNAlleles(), cfg.alleles.size(), "VC getNAlleles not the same as input alleles size");
-        Assert.assertEquals(vc.getAlternateAlleles(), altAlleles, "VC alt alleles not the same as input alt alleles");
-
-
-        for ( int i = 0; i < cfg.alleles.size(); i++ ) {
-            final Allele inputAllele = cfg.alleles.get(i);
-
-            Assert.assertTrue(vc.hasAllele(inputAllele));
-            if ( inputAllele.isReference() ) {
-                final Allele nonRefVersion = Allele.create(inputAllele.getBases(), false);
-                Assert.assertTrue(vc.hasAllele(nonRefVersion, true));
-                Assert.assertFalse(vc.hasAllele(nonRefVersion, false));
-            }
-
-            Assert.assertEquals(inputAllele, vc.getAllele(inputAllele.getBaseString()));
-            Assert.assertEquals(inputAllele, vc.getAllele(inputAllele.getBases()));
-
-            if ( i > 0 ) { // it's an alt allele
-                Assert.assertEquals(inputAllele, vc.getAlternateAllele(i-1));
-            }
-        }
-
-        final Allele missingAllele = Allele.create("AACCGGTT"); // does not exist
-        Assert.assertNull(vc.getAllele(missingAllele.getBases()));
-        Assert.assertFalse(vc.hasAllele(missingAllele));
-        Assert.assertFalse(vc.hasAllele(missingAllele, true));
-    }
-
-    private class SitesAndGenotypesVC {
-        VariantContext vc, copy;
-        String name;
-
-        private SitesAndGenotypesVC(String name, VariantContext original) {
-            this.name = name;
-            this.vc = original;
-            this.copy = new VariantContextBuilder(original).make();
-        }
-
-        public String toString() {
-            return String.format("%s input=%s", name, vc);
-        }
-    }
-
-    @DataProvider(name = "SitesAndGenotypesVC")
-    public Object[][] MakeSitesAndGenotypesVCs() {
-        Genotype g1 = GenotypeBuilder.create("AA", Arrays.asList(Aref, Aref));
-        Genotype g2 = GenotypeBuilder.create("AT", Arrays.asList(Aref, T));
-        Genotype g3 = GenotypeBuilder.create("TT", Arrays.asList(T, T));
-
-        VariantContext sites = new VariantContextBuilder("sites", snpLoc, snpLocStart, snpLocStop, Arrays.asList(Aref, T)).make();
-        VariantContext genotypes = new VariantContextBuilder(sites).source("genotypes").genotypes(g1, g2, g3).make();
-
-        List<Object[]> tests = new ArrayList<Object[]>();
-
-        tests.add(new Object[]{new SitesAndGenotypesVC("sites", sites)});
-        tests.add(new Object[]{new SitesAndGenotypesVC("genotypes", genotypes)});
-
-        return tests.toArray(new Object[][]{});
-    }
-
-    // --------------------------------------------------------------------------------
-    //
-    // Test modifying routines
-    //
-    // --------------------------------------------------------------------------------
-    @Test(dataProvider = "SitesAndGenotypesVC")
-    public void runModifyVCTests(SitesAndGenotypesVC cfg) {
-        VariantContext modified = new VariantContextBuilder(cfg.vc).loc("chr2", 123, 123).make();
-        Assert.assertEquals(modified.getChr(), "chr2");
-        Assert.assertEquals(modified.getStart(), 123);
-        Assert.assertEquals(modified.getEnd(), 123);
-
-        modified = new VariantContextBuilder(cfg.vc).id("newID").make();
-        Assert.assertEquals(modified.getID(), "newID");
-
-        Set<String> newFilters = Collections.singleton("newFilter");
-        modified = new VariantContextBuilder(cfg.vc).filters(newFilters).make();
-        Assert.assertEquals(modified.getFilters(), newFilters);
-
-        // test the behavior when the builder's attribute object is null
-        modified = new VariantContextBuilder(modified).attributes(null).make();
-        Assert.assertTrue(modified.getAttributes().isEmpty());
-        modified = new VariantContextBuilder(modified).attributes(null).rmAttribute("AC").make();
-        Assert.assertTrue(modified.getAttributes().isEmpty());
-        modified = new VariantContextBuilder(modified).attributes(null).attribute("AC", 1).make();
-        Assert.assertEquals(modified.getAttribute("AC"), 1);
-
-        // test the behavior when the builder's attribute object is not initialized
-        modified = new VariantContextBuilder(modified.getSource(), modified.getChr(), modified.getStart(), modified.getEnd(), modified.getAlleles()).attribute("AC", 1).make();
-
-        // test normal attribute modification
-        modified = new VariantContextBuilder(cfg.vc).attribute("AC", 1).make();
-        Assert.assertEquals(modified.getAttribute("AC"), 1);
-        modified = new VariantContextBuilder(modified).attribute("AC", 2).make();
-        Assert.assertEquals(modified.getAttribute("AC"), 2);
-
-        Genotype g1 = GenotypeBuilder.create("AA2", Arrays.asList(Aref, Aref));
-        Genotype g2 = GenotypeBuilder.create("AT2", Arrays.asList(Aref, T));
-        Genotype g3 = GenotypeBuilder.create("TT2", Arrays.asList(T, T));
-        GenotypesContext gc = GenotypesContext.create(g1,g2,g3);
-        modified = new VariantContextBuilder(cfg.vc).genotypes(gc).make();
-        Assert.assertEquals(modified.getGenotypes(), gc);
-        modified = new VariantContextBuilder(cfg.vc).noGenotypes().make();
-        Assert.assertTrue(modified.getGenotypes().isEmpty());
-
-        // test that original hasn't changed
-        Assert.assertEquals(cfg.vc.getChr(), cfg.copy.getChr());
-        Assert.assertEquals(cfg.vc.getStart(), cfg.copy.getStart());
-        Assert.assertEquals(cfg.vc.getEnd(), cfg.copy.getEnd());
-        Assert.assertEquals(cfg.vc.getAlleles(), cfg.copy.getAlleles());
-        Assert.assertEquals(cfg.vc.getAttributes(), cfg.copy.getAttributes());
-        Assert.assertEquals(cfg.vc.getID(), cfg.copy.getID());
-        Assert.assertEquals(cfg.vc.getGenotypes(), cfg.copy.getGenotypes());
-        Assert.assertEquals(cfg.vc.getLog10PError(), cfg.copy.getLog10PError());
-        Assert.assertEquals(cfg.vc.getFilters(), cfg.copy.getFilters());
-    }
-
-    // --------------------------------------------------------------------------------
-    //
-    // Test subcontext
-    //
-    // --------------------------------------------------------------------------------
-    private class SubContextTest {
-        Set<String> samples;
-        boolean updateAlleles;
-
-        private SubContextTest(Collection<String> samples, boolean updateAlleles) {
-            this.samples = new HashSet<String>(samples);
-            this.updateAlleles = updateAlleles;
-        }
-
-        public String toString() {
-            return String.format("%s samples=%s updateAlleles=%b", "SubContextTest", samples, updateAlleles);
-        }
-    }
-
-    @DataProvider(name = "SubContextTest")
-    public Object[][] MakeSubContextTest() {
-        List<Object[]> tests = new ArrayList<Object[]>();
-
-        for ( boolean updateAlleles : Arrays.asList(true, false)) {
-            tests.add(new Object[]{new SubContextTest(Collections.<String>emptySet(), updateAlleles)});
-            tests.add(new Object[]{new SubContextTest(Collections.singleton("MISSING"), updateAlleles)});
-            tests.add(new Object[]{new SubContextTest(Collections.singleton("AA"), updateAlleles)});
-            tests.add(new Object[]{new SubContextTest(Collections.singleton("AT"), updateAlleles)});
-            tests.add(new Object[]{new SubContextTest(Collections.singleton("TT"), updateAlleles)});
-            tests.add(new Object[]{new SubContextTest(Arrays.asList("AA", "AT"), updateAlleles)});
-            tests.add(new Object[]{new SubContextTest(Arrays.asList("AA", "AT", "TT"), updateAlleles)});
-            tests.add(new Object[]{new SubContextTest(Arrays.asList("AA", "AT", "MISSING"), updateAlleles)});
-            tests.add(new Object[]{new SubContextTest(Arrays.asList("AA", "AT", "TT", "MISSING"), updateAlleles)});
-            tests.add(new Object[]{new SubContextTest(Arrays.asList("AA", "AT", "AC"), updateAlleles)});
-        }
-
-        return tests.toArray(new Object[][]{});
-    }
-
-    @Test(dataProvider = "SubContextTest")
-    public void runSubContextTest(SubContextTest cfg) {
-        Genotype g1 = GenotypeBuilder.create("AA", Arrays.asList(Aref, Aref));
-        Genotype g2 = GenotypeBuilder.create("AT", Arrays.asList(Aref, T));
-        Genotype g3 = GenotypeBuilder.create("TT", Arrays.asList(T, T));
-        Genotype g4 = GenotypeBuilder.create("AC", Arrays.asList(Aref, C));
-
-        GenotypesContext gc = GenotypesContext.create(g1, g2, g3, g4);
-        VariantContext vc = new VariantContextBuilder("genotypes", snpLoc, snpLocStart, snpLocStop, Arrays.asList(Aref, C, T)).genotypes(gc).make();
-        VariantContext sub = vc.subContextFromSamples(cfg.samples, cfg.updateAlleles);
-
-        // unchanged attributes should be the same
-        Assert.assertEquals(sub.getChr(), vc.getChr());
-        Assert.assertEquals(sub.getStart(), vc.getStart());
-        Assert.assertEquals(sub.getEnd(), vc.getEnd());
-        Assert.assertEquals(sub.getLog10PError(), vc.getLog10PError());
-        Assert.assertEquals(sub.getFilters(), vc.getFilters());
-        Assert.assertEquals(sub.getID(), vc.getID());
-        Assert.assertEquals(sub.getAttributes(), vc.getAttributes());
-
-        Set<Genotype> expectedGenotypes = new HashSet<Genotype>();
-        if ( cfg.samples.contains(g1.getSampleName()) ) expectedGenotypes.add(g1);
-        if ( cfg.samples.contains(g2.getSampleName()) ) expectedGenotypes.add(g2);
-        if ( cfg.samples.contains(g3.getSampleName()) ) expectedGenotypes.add(g3);
-        if ( cfg.samples.contains(g4.getSampleName()) ) expectedGenotypes.add(g4);
-        GenotypesContext expectedGC = GenotypesContext.copy(expectedGenotypes);
-
-        // these values depend on the results of sub
-        if ( cfg.updateAlleles ) {
-            // do the work to see what alleles should be here, and which not
-            List<Allele> expectedAlleles = new ArrayList<Allele>();
-            expectedAlleles.add(Aref);
-
-            Set<Allele> genotypeAlleles = new HashSet<Allele>();
-            for ( final Genotype g : expectedGC )
-                genotypeAlleles.addAll(g.getAlleles());
-            genotypeAlleles.remove(Aref);
-
-            // ensure original allele order
-            for (Allele allele: vc.getAlleles())
-                if (genotypeAlleles.contains(allele))
-                    expectedAlleles.add(allele);
-
-            Assert.assertEquals(sub.getAlleles(), expectedAlleles);
-        } else {
-            // not updating alleles -- should be the same
-            Assert.assertEquals(sub.getAlleles(), vc.getAlleles());
-        }
-
-        // same sample names => success
-        Assert.assertTrue(sub.getGenotypes().getSampleNames().equals(expectedGC.getSampleNames()));
-    }
-
-    // --------------------------------------------------------------------------------
-    //
-    // Test sample name functions
-    //
-    // --------------------------------------------------------------------------------
-    private class SampleNamesTest {
-        List<String> sampleNames;
-        List<String> sampleNamesInOrder;
-
-        private SampleNamesTest(List<String> sampleNames, List<String> sampleNamesInOrder) {
-            this.sampleNamesInOrder = sampleNamesInOrder;
-            this.sampleNames = sampleNames;
-        }
-
-        public String toString() {
-            return String.format("%s samples=%s order=%s", "SampleNamesTest", sampleNames, sampleNamesInOrder);
-        }
-    }
-
-    @DataProvider(name = "SampleNamesTest")
-    public Object[][] MakeSampleNamesTest() {
-        List<Object[]> tests = new ArrayList<Object[]>();
-
-        tests.add(new Object[]{new SampleNamesTest(Arrays.asList("1"), Arrays.asList("1"))});
-        tests.add(new Object[]{new SampleNamesTest(Arrays.asList("2", "1"), Arrays.asList("1", "2"))});
-        tests.add(new Object[]{new SampleNamesTest(Arrays.asList("1", "2"), Arrays.asList("1", "2"))});
-        tests.add(new Object[]{new SampleNamesTest(Arrays.asList("1", "2", "3"), Arrays.asList("1", "2", "3"))});
-        tests.add(new Object[]{new SampleNamesTest(Arrays.asList("2", "1", "3"), Arrays.asList("1", "2", "3"))});
-        tests.add(new Object[]{new SampleNamesTest(Arrays.asList("2", "3", "1"), Arrays.asList("1", "2", "3"))});
-        tests.add(new Object[]{new SampleNamesTest(Arrays.asList("3", "1", "2"), Arrays.asList("1", "2", "3"))});
-        tests.add(new Object[]{new SampleNamesTest(Arrays.asList("3", "2", "1"), Arrays.asList("1", "2", "3"))});
-        tests.add(new Object[]{new SampleNamesTest(Arrays.asList("NA2", "NA1"), Arrays.asList("NA1", "NA2"))});
-
-        return tests.toArray(new Object[][]{});
-    }
-
-    private final static void assertGenotypesAreInOrder(Iterable<Genotype> gIt, List<String> names) {
-        int i = 0;
-        for ( final Genotype g : gIt ) {
-            Assert.assertEquals(g.getSampleName(), names.get(i), "Unexpected genotype ordering");
-            i++;
-        }
-    }
-
-
-    @Test(dataProvider = "SampleNamesTest")
-    public void runSampleNamesTest(SampleNamesTest cfg) {
-        GenotypesContext gc = GenotypesContext.create(cfg.sampleNames.size());
-        for ( final String name : cfg.sampleNames ) {
-            gc.add(GenotypeBuilder.create(name, Arrays.asList(Aref, T)));
-        }
-
-        VariantContext vc = new VariantContextBuilder("genotypes", snpLoc, snpLocStart, snpLocStop, Arrays.asList(Aref, T)).genotypes(gc).make();
-
-        // same sample names => success
-        Assert.assertTrue(vc.getSampleNames().equals(new HashSet<String>(cfg.sampleNames)), "vc.getSampleNames() = " + vc.getSampleNames());
-        Assert.assertEquals(vc.getSampleNamesOrderedByName(), cfg.sampleNamesInOrder, "vc.getSampleNamesOrderedByName() = " + vc.getSampleNamesOrderedByName());
-
-        assertGenotypesAreInOrder(vc.getGenotypesOrderedByName(), cfg.sampleNamesInOrder);
-        assertGenotypesAreInOrder(vc.getGenotypesOrderedBy(cfg.sampleNames), cfg.sampleNames);
-    }
-
-    @Test
-    public void testGenotypeCounting() {
-        Genotype noCall = GenotypeBuilder.create("nocall", Arrays.asList(Allele.NO_CALL));
-        Genotype mixed  = GenotypeBuilder.create("mixed", Arrays.asList(Aref, Allele.NO_CALL));
-        Genotype homRef = GenotypeBuilder.create("homRef", Arrays.asList(Aref, Aref));
-        Genotype het    = GenotypeBuilder.create("het", Arrays.asList(Aref, T));
-        Genotype homVar = GenotypeBuilder.create("homVar", Arrays.asList(T, T));
-
-        List<Genotype> allGenotypes = Arrays.asList(noCall, mixed, homRef, het, homVar);
-        final int nCycles = allGenotypes.size() * 10;
-
-        for ( int i = 0; i < nCycles; i++ ) {
-            int nNoCall = 0, nNoCallAlleles = 0, nA = 0, nT = 0, nMixed = 0, nHomRef = 0, nHet = 0, nHomVar = 0;
-            int nSamples = 0;
-            GenotypesContext gc = GenotypesContext.create();
-            for ( int j = 0; j < i; j++ ) {
-                nSamples++;
-                Genotype g = allGenotypes.get(j % allGenotypes.size());
-                final String name = String.format("%s_%d%d", g.getSampleName(), i, j);
-                gc.add(GenotypeBuilder.create(name, g.getAlleles()));
-                switch ( g.getType() ) {
-                    case NO_CALL: nNoCall++; nNoCallAlleles++; break;
-                    case HOM_REF: nA += 2; nHomRef++; break;
-                    case HET: nA++; nT++; nHet++; break;
-                    case HOM_VAR: nT += 2; nHomVar++; break;
-                    case MIXED: nA++; nNoCallAlleles++; nMixed++; break;
-                    default: throw new RuntimeException("Unexpected genotype type " + g.getType());
-                }
-
-            }
-
-            VariantContext vc = new VariantContextBuilder("genotypes", snpLoc, snpLocStart, snpLocStop, Arrays.asList(Aref, T)).genotypes(gc).make();
-            Assert.assertEquals(vc.getNSamples(), nSamples);
-            if ( nSamples > 0 ) {
-                Assert.assertEquals(vc.isPolymorphicInSamples(), nT > 0);
-                Assert.assertEquals(vc.isMonomorphicInSamples(), nT == 0);
-            }
-            Assert.assertEquals(vc.getCalledChrCount(), nA + nT);
-
-            Assert.assertEquals(vc.getCalledChrCount(Allele.NO_CALL), nNoCallAlleles);
-            Assert.assertEquals(vc.getCalledChrCount(Aref), nA);
-            Assert.assertEquals(vc.getCalledChrCount(T), nT);
-
-            Assert.assertEquals(vc.getNoCallCount(), nNoCall);
-            Assert.assertEquals(vc.getHomRefCount(), nHomRef);
-            Assert.assertEquals(vc.getHetCount(), nHet);
-            Assert.assertEquals(vc.getHomVarCount(), nHomVar);
-            Assert.assertEquals(vc.getMixedCount(), nMixed);
-        }
-    }
-}
diff --git a/src/tests/java/org/broadinstitute/variant/variantcontext/VariantJEXLContextUnitTest.java b/src/tests/java/org/broadinstitute/variant/variantcontext/VariantJEXLContextUnitTest.java
deleted file mode 100644
index e92df8a..0000000
--- a/src/tests/java/org/broadinstitute/variant/variantcontext/VariantJEXLContextUnitTest.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.variantcontext;
-
-import org.broadinstitute.variant.VariantBaseTest;
-import org.testng.Assert;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-
-
-/**
- * 
- * @author aaron 
- * 
- * Class VariantJEXLContextUnitTest
- *
- * Test out parts of the VariantJEXLContext
- */
-public class VariantJEXLContextUnitTest extends VariantBaseTest {
-
-    private static String expression = "QUAL > 500.0";
-    private static VariantContextUtils.JexlVCMatchExp exp;
-
-    Allele A, Aref, T, Tref;
-
-    Allele ATC, ATCref;
-    // A [ref] / T at 10
-
-    // - / ATC [ref] from 20-23
-
-    @BeforeClass
-    public void beforeClass() {
-        try {
-            exp = new VariantContextUtils.JexlVCMatchExp("name", VariantContextUtils.engine.get().createExpression(expression));
-        } catch (Exception e) {
-            Assert.fail("Unable to create expression" + e.getMessage());
-        }
-    }
-
-    @BeforeMethod
-    public void before() {
-        A = Allele.create("A");
-        Aref = Allele.create("A", true);
-        T = Allele.create("T");
-        Tref = Allele.create("T", true);
-
-        ATC = Allele.create("ATC");
-        ATCref = Allele.create("ATC", true);
-    }
-
-
-    @Test
-    public void testGetValue() {
-        Map<VariantContextUtils.JexlVCMatchExp, Boolean> map = getVarContext();
-
-        // make sure the context has a value
-        Assert.assertTrue(!map.isEmpty());
-        Assert.assertEquals(map.size(), 1);
-
-        // eval our known expression
-        Assert.assertTrue(!map.get(exp));
-    }
-
-    @Test(expectedExceptions=UnsupportedOperationException.class)
-    public void testContainsValue() {
-        Map<VariantContextUtils.JexlVCMatchExp, Boolean> map = getVarContext();
-
-        map.containsValue(exp);
-    }
-
-    @Test(expectedExceptions=UnsupportedOperationException.class)
-    public void testRemove() {
-        Map<VariantContextUtils.JexlVCMatchExp, Boolean> map = getVarContext();
-
-        map.remove(exp);
-    }
-
-    @Test(expectedExceptions=UnsupportedOperationException.class)
-    public void testEntrySet() {
-        Map<VariantContextUtils.JexlVCMatchExp, Boolean> map = getVarContext();
-
-        map.entrySet();
-    }
-
-    @Test(expectedExceptions=UnsupportedOperationException.class)
-    public void testClear() {
-        Map<VariantContextUtils.JexlVCMatchExp, Boolean> map = getVarContext();
-
-        map.clear();
-    }
-
-    /**
-     * helper method
-     * @return a VariantJEXLContext
-     */
-    private JEXLMap getVarContext() {
-        List<Allele> alleles = Arrays.asList(Aref, T);
-
-        VariantContext vc = new VariantContextBuilder("test", "chr1", 10, 10, alleles).make();
-        return new JEXLMap(Arrays.asList(exp),vc);
-    }
-}
diff --git a/src/tests/java/org/broadinstitute/variant/variantcontext/writer/TabixOnTheFlyIndexCreationTest.java b/src/tests/java/org/broadinstitute/variant/variantcontext/writer/TabixOnTheFlyIndexCreationTest.java
deleted file mode 100644
index d51e74f..0000000
--- a/src/tests/java/org/broadinstitute/variant/variantcontext/writer/TabixOnTheFlyIndexCreationTest.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * The MIT License
- *
- * Copyright (c) 2014 The Broad Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-package org.broadinstitute.variant.variantcontext.writer;
-
-import org.broad.tribble.AbstractFeatureReader;
-import org.broad.tribble.CloseableTribbleIterator;
-import org.broad.tribble.FeatureReader;
-import org.broad.tribble.index.tabix.TabixIndex;
-import org.broad.tribble.util.TabixUtils;
-import org.broadinstitute.variant.variantcontext.VariantContext;
-import org.broadinstitute.variant.vcf.VCF3Codec;
-import org.broadinstitute.variant.vcf.VCFHeader;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.util.EnumSet;
-
-public class TabixOnTheFlyIndexCreationTest {
-    private static final File SMALL_VCF = new File("testdata/tribble/tabix/trioDup.vcf.gz");
-    @Test
-    public void simpleTest() throws Exception {
-        final VCF3Codec codec = new VCF3Codec();
-        final FeatureReader<VariantContext> reader = AbstractFeatureReader.getFeatureReader(SMALL_VCF.getAbsolutePath(), codec, false);
-        final VCFHeader headerFromFile = (VCFHeader)reader.getHeader();
-        final File vcf = File.createTempFile("TabixOnTheFlyIndexCreationTest.", ".vcf.gz");
-        final File tabix = new File(vcf.getAbsolutePath() + TabixUtils.STANDARD_INDEX_EXTENSION);
-        vcf.deleteOnExit();
-        tabix.deleteOnExit();
-        final VariantContextWriter vcfWriter = new VariantContextWriterBuilder()
-                .setOutputFile(vcf)
-                .setReferenceDictionary(headerFromFile.getSequenceDictionary())
-                .setOptions(EnumSet.of(Options.INDEX_ON_THE_FLY, Options.ALLOW_MISSING_FIELDS_IN_HEADER))
-                .build();
-        vcfWriter.writeHeader(headerFromFile);
-        final CloseableTribbleIterator<VariantContext> it = reader.iterator();
-        while (it.hasNext()) {
-            vcfWriter.add(it.next());
-        }
-        it.close();
-        vcfWriter.close();
-
-        // Hard to validate, so just confirm that index can be read.
-        new TabixIndex(tabix);
-    }
-}
diff --git a/src/tests/java/org/broadinstitute/variant/variantcontext/writer/VCFWriterUnitTest.java b/src/tests/java/org/broadinstitute/variant/variantcontext/writer/VCFWriterUnitTest.java
deleted file mode 100644
index 86bb738..0000000
--- a/src/tests/java/org/broadinstitute/variant/variantcontext/writer/VCFWriterUnitTest.java
+++ /dev/null
@@ -1,219 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.variantcontext.writer;
-
-import net.sf.samtools.SAMSequenceDictionary;
-import net.sf.samtools.util.TestUtil;
-import org.broad.tribble.AbstractFeatureReader;
-import org.broad.tribble.FeatureReader;
-import org.broad.tribble.Tribble;
-import org.broad.tribble.util.TabixUtils;
-import org.broadinstitute.variant.VariantBaseTest;
-import org.broadinstitute.variant.variantcontext.*;
-import org.broadinstitute.variant.vcf.*;
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.util.*;
-
-/**
- * @author aaron
- *         <p/>
- *         Class VCFWriterUnitTest
- *         <p/>
- *         This class tests out the ability of the VCF writer to correctly write VCF files
- */
-public class VCFWriterUnitTest extends VariantBaseTest {
-    private Set<VCFHeaderLine> metaData;
-    private Set<String> additionalColumns;
-
-    /** test, using the writer and reader, that we can output and input a VCF file without problems */
-    @Test(dataProvider = "vcfExtensionsDataProvider")
-    public void testBasicWriteAndRead(final String extension) throws IOException {
-        final File fakeVCFFile = File.createTempFile("testBasicWriteAndRead.", extension);
-        fakeVCFFile.deleteOnExit();
-        Tribble.indexFile(fakeVCFFile).deleteOnExit();
-        metaData = new HashSet<VCFHeaderLine>();
-        additionalColumns = new HashSet<String>();
-        final SAMSequenceDictionary sequenceDict = createArtificialSequenceDictionary();
-        final VCFHeader header = createFakeHeader(metaData, additionalColumns, sequenceDict);
-        final VariantContextWriter writer = new VariantContextWriterBuilder()
-                .setOutputFile(fakeVCFFile)
-                .setReferenceDictionary(sequenceDict)
-                .setOptions(EnumSet.of(Options.ALLOW_MISSING_FIELDS_IN_HEADER, Options.INDEX_ON_THE_FLY))
-                .build();
-        writer.writeHeader(header);
-        writer.add(createVC(header));
-        writer.add(createVC(header));
-        writer.close();
-        final VCFCodec codec = new VCFCodec();
-        final FeatureReader<VariantContext> reader = AbstractFeatureReader.getFeatureReader(fakeVCFFile.getAbsolutePath(), codec, false);
-        final VCFHeader headerFromFile = (VCFHeader)reader.getHeader();
-
-        int counter = 0;
-
-        // validate what we're reading in
-        validateHeader(headerFromFile, sequenceDict);
-        
-        try {
-            final Iterator<VariantContext> it = reader.iterator();
-            while(it.hasNext()) {
-                it.next();
-                counter++;
-            }
-            Assert.assertEquals(counter, 2);
-        }
-        catch (final IOException e ) {
-            throw new RuntimeException(e.getMessage());
-        }
-
-    }
-
-    /**
-     * create a fake header of known quantity
-     * @param metaData           the header lines
-     * @param additionalColumns  the additional column names
-     * @return a fake VCF header
-     */
-    public static VCFHeader createFakeHeader(final Set<VCFHeaderLine> metaData, final Set<String> additionalColumns,
-                                             final SAMSequenceDictionary sequenceDict) {
-        metaData.add(new VCFHeaderLine(VCFHeaderVersion.VCF4_0.getFormatString(), VCFHeaderVersion.VCF4_0.getVersionString()));
-        metaData.add(new VCFHeaderLine("two", "2"));
-        additionalColumns.add("extra1");
-        additionalColumns.add("extra2");
-        final VCFHeader ret = new VCFHeader(metaData, additionalColumns);
-        ret.setSequenceDictionary(sequenceDict);
-        return ret;
-    }
-
-    /**
-     * create a fake VCF record
-     * @param header the VCF header
-     * @return a VCFRecord
-     */
-    private VariantContext createVC(final VCFHeader header) {
-
-       return createVCGeneral(header,"1",1);
-    }
-
-    private VariantContext createVCGeneral(final VCFHeader header, final String chrom, final int position) {
-        final List<Allele> alleles = new ArrayList<Allele>();
-        final Map<String, Object> attributes = new HashMap<String,Object>();
-        final GenotypesContext genotypes = GenotypesContext.create(header.getGenotypeSamples().size());
-
-        alleles.add(Allele.create("A",true));
-        alleles.add(Allele.create("ACC",false));
-
-        attributes.put("DP","50");
-        for (final String name : header.getGenotypeSamples()) {
-            final Genotype gt = new GenotypeBuilder(name,alleles.subList(1,2)).GQ(0).attribute("BB", "1").phased(true).make();
-            genotypes.add(gt);
-        }
-        return new VariantContextBuilder("RANDOM", chrom, position, position, alleles)
-                .genotypes(genotypes).attributes(attributes).make();
-    }
-
-
-    /**
-     * validate a VCF header
-     * @param header the header to validate
-     */
-    public void validateHeader(final VCFHeader header, final SAMSequenceDictionary sequenceDictionary) {
-        // check the fields
-        int index = 0;
-        for (final VCFHeader.HEADER_FIELDS field : header.getHeaderFields()) {
-            Assert.assertEquals(VCFHeader.HEADER_FIELDS.values()[index], field);
-            index++;
-        }
-        Assert.assertEquals(header.getMetaDataInSortedOrder().size(), metaData.size() + sequenceDictionary.size());
-        index = 0;
-        for (final String key : header.getGenotypeSamples()) {
-            Assert.assertTrue(additionalColumns.contains(key));
-            index++;
-        }
-        Assert.assertEquals(index, additionalColumns.size());
-    }
-
-    @Test(dataProvider = "vcfExtensionsDataProvider")
-    public void TestWritingLargeVCF(final String extension) throws FileNotFoundException, InterruptedException {
-
-        final Set<VCFHeaderLine> metaData = new HashSet<VCFHeaderLine>();
-        final Set<String> Columns = new HashSet<String>();
-        for (int i = 0; i < 123; i++) {
-
-            Columns.add(String.format("SAMPLE_%d", i));
-        }
-
-        final SAMSequenceDictionary dict = createArtificialSequenceDictionary();
-        final VCFHeader header = createFakeHeader(metaData,Columns, dict);
-
-        final File tempDir = TestUtil.getTempDirectory("VCFWriter", "StaleIndex");
-
-        tempDir.deleteOnExit();
-
-        final File vcf = new File(tempDir, "test" + extension);
-        final String indexExtension;
-        if (extension.equals(".vcf.gz")) {
-            indexExtension = TabixUtils.STANDARD_INDEX_EXTENSION;
-        } else {
-            indexExtension = Tribble.STANDARD_INDEX_EXTENSION;
-        }
-        final File vcfIndex = new File(vcf.getAbsolutePath() + indexExtension);
-
-        for(int count=1;count<2; count++){
-            final VariantContextWriter writer =  new VariantContextWriterBuilder()
-                    .setOutputFile(vcf)
-                    .setReferenceDictionary(dict)
-                    .setOptions(EnumSet.of(Options.ALLOW_MISSING_FIELDS_IN_HEADER, Options.INDEX_ON_THE_FLY))
-                    .build();
-            writer.writeHeader(header);
-
-            for (int i = 1; i < 17 ; i++) { // write 17 chromosomes
-                for (int j = 1; j < 10; j++) { //10 records each
-                    writer.add(createVCGeneral(header, String.format("%d", i), j * 100));
-                }
-            }
-            writer.close();
-
-            Assert.assertTrue(vcf.lastModified() <= vcfIndex.lastModified());
-        }
-    }
-
-    @DataProvider(name = "vcfExtensionsDataProvider")
-    public Object[][]vcfExtensionsDataProvider() {
-        return new Object[][] {
-                // TODO: BCF doesn't work because header is not properly constructed.
-                // {".bcf"},
-                {".vcf"},
-                {".vcf.gz"}
-        };
-    }
-}
-
diff --git a/src/tests/java/org/broadinstitute/variant/variantcontext/writer/VariantContextWriterBuilderUnitTest.java b/src/tests/java/org/broadinstitute/variant/variantcontext/writer/VariantContextWriterBuilderUnitTest.java
deleted file mode 100644
index b5e7f1a..0000000
--- a/src/tests/java/org/broadinstitute/variant/variantcontext/writer/VariantContextWriterBuilderUnitTest.java
+++ /dev/null
@@ -1,343 +0,0 @@
-/*
-* Copyright (c) 2014 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.variantcontext.writer;
-
-import java.io.*;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.broad.tribble.Tribble;
-import org.broad.tribble.index.tabix.TabixIndex;
-import org.broad.tribble.util.TabixUtils;
-import org.testng.Assert;
-import org.testng.annotations.BeforeSuite;
-import org.testng.annotations.Test;
-
-import net.sf.samtools.Defaults;
-import net.sf.samtools.SAMSequenceDictionary;
-import net.sf.samtools.util.BlockCompressedOutputStream;
-import org.broad.tribble.AbstractFeatureReader;
-import org.broadinstitute.variant.VariantBaseTest;
-
-public class VariantContextWriterBuilderUnitTest extends VariantBaseTest {
-    private SAMSequenceDictionary dictionary;
-
-    private final File vcf = new File("test.vcf");
-    private final File vcfIdx = new File("test.vcf" + Tribble.STANDARD_INDEX_EXTENSION);
-    private final File vcfMD5 = new File("test.vcf.md5");
-    private final File bcf = new File("test.bcf");
-    private final File bcfIdx = new File("test.bcf" + Tribble.STANDARD_INDEX_EXTENSION);
-    private final File unknown = new File("test.unknown");
-
-    private List<File> blockCompressedVCFs;
-    private List<File> blockCompressedIndices;
-
-    @BeforeSuite
-    public void before() throws IOException {
-        dictionary = createArtificialSequenceDictionary();
-        vcf.deleteOnExit();
-        vcfIdx.deleteOnExit();
-        vcfMD5.deleteOnExit();
-        bcf.deleteOnExit();
-        bcfIdx.deleteOnExit();
-        unknown.deleteOnExit();
-
-        blockCompressedVCFs = new ArrayList<File>();
-        blockCompressedIndices = new ArrayList<File>();
-        for (final String extension : AbstractFeatureReader.BLOCK_COMPRESSED_EXTENSIONS) {
-            final File blockCompressed = new File("test.vcf" + extension);
-            blockCompressed.deleteOnExit();
-            blockCompressedVCFs.add(blockCompressed);
-
-            final File index = new File("test.vcf" + extension + TabixUtils.STANDARD_INDEX_EXTENSION);
-            index.deleteOnExit();
-            blockCompressedIndices.add(index);
-        }
-    }
-
-    @Test
-    public void testSetOutputFile() {
-        final VariantContextWriterBuilder builder = new VariantContextWriterBuilder()
-                .setReferenceDictionary(dictionary);
-
-        VariantContextWriter writer = builder.setOutputFile(vcf.getAbsolutePath()).build();
-        Assert.assertTrue(writer instanceof VCFWriter, "testSetOutputFile VCF String");
-        Assert.assertFalse(((VCFWriter) writer).getOutputStream() instanceof BlockCompressedOutputStream, "testSetOutputFile VCF String was compressed");
-
-        writer = builder.setOutputFile(vcf).build();
-        Assert.assertTrue(writer instanceof VCFWriter, "testSetOutputFile VCF File");
-        Assert.assertFalse(((VCFWriter)writer).getOutputStream() instanceof BlockCompressedOutputStream, "testSetOutputFile VCF File was compressed");
-
-        for (final String extension : AbstractFeatureReader.BLOCK_COMPRESSED_EXTENSIONS) {
-            final String filename = "test.vcf" + extension;
-            final File file = new File(filename);
-            file.deleteOnExit();
-
-            writer = builder.setOutputFile(filename).build();
-            Assert.assertTrue(writer instanceof VCFWriter, "testSetOutputFile " + extension + " String");
-            Assert.assertTrue(((VCFWriter) writer).getOutputStream() instanceof BlockCompressedOutputStream, "testSetOutputFile " + extension + " String was not compressed");
-
-            writer = builder.setOutputFile(file).build();
-            Assert.assertTrue(writer instanceof VCFWriter, "testSetOutputFile " + extension + " File");
-            Assert.assertTrue(((VCFWriter) writer).getOutputStream() instanceof BlockCompressedOutputStream, "testSetOutputFile " + extension + " File was not compressed");
-        }
-
-        writer = builder.setOutputFile(bcf).build();
-        Assert.assertTrue(writer instanceof BCF2Writer, "testSetOutputFile BCF String");
-
-        writer = builder.setOutputFile(bcf.getAbsolutePath()).build();
-        Assert.assertTrue(writer instanceof BCF2Writer, "testSetOutputFile BCF File");
-    }
-
-    @Test
-    public void testSetOutputFileType() {
-        final VariantContextWriterBuilder builder = new VariantContextWriterBuilder()
-                .setReferenceDictionary(dictionary)
-                .setOutputFile(unknown);
-
-        VariantContextWriter writer = builder.setOutputFileType(VariantContextWriterBuilder.OutputType.VCF).build();
-        Assert.assertTrue(writer instanceof VCFWriter, "testSetOutputFileType VCF");
-        Assert.assertFalse(((VCFWriter) writer).getOutputStream() instanceof BlockCompressedOutputStream, "testSetOutputFileType VCF was compressed");
-
-        writer = builder.setOption(Options.FORCE_BCF).build();
-        Assert.assertTrue(writer instanceof BCF2Writer, "testSetOutputFileType FORCE_BCF set -> expected BCF, was VCF");
-
-        // test that FORCE_BCF remains in effect, overriding the explicit setting of VCF
-        writer = builder.setOutputFileType(VariantContextWriterBuilder.OutputType.VCF).build();
-        Assert.assertTrue(writer instanceof BCF2Writer, "testSetOutputFileType FORCE_BCF set 2 -> expected BCF, was VCF");
-
-        writer = builder.unsetOption(Options.FORCE_BCF).build();
-        Assert.assertTrue(writer instanceof VCFWriter, "testSetOutputFileType FORCE_BCF unset -> expected VCF, was BCF");
-        Assert.assertFalse(((VCFWriter) writer).getOutputStream() instanceof BlockCompressedOutputStream, "testSetOutputFileType FORCE_BCF unset was compressed");
-
-        writer = builder.setOutputFileType(VariantContextWriterBuilder.OutputType.BLOCK_COMPRESSED_VCF).build();
-        Assert.assertTrue(writer instanceof VCFWriter, "testSetOutputFile BLOCK_COMPRESSED_VCF");
-        Assert.assertTrue(((VCFWriter) writer).getOutputStream() instanceof BlockCompressedOutputStream, "testSetOutputFileType BLOCK_COMPRESSED_VCF was not compressed");
-
-        writer = builder.setOutputFileType(VariantContextWriterBuilder.OutputType.BCF).build();
-        Assert.assertTrue(writer instanceof BCF2Writer, "testSetOutputFileType BCF");
-    }
-
-    @Test
-    public void testSetOutputStream() {
-        final OutputStream stream = new ByteArrayOutputStream();
-
-        final VariantContextWriterBuilder builder = new VariantContextWriterBuilder()
-                .setReferenceDictionary(dictionary)
-                .unsetOption(Options.INDEX_ON_THE_FLY)
-                .setOutputStream(stream);
-
-        VariantContextWriter writer = builder.build();
-        Assert.assertTrue(writer instanceof VCFWriter, "testSetOutputStream default");
-
-        writer = builder.setOption(Options.FORCE_BCF).build();
-        Assert.assertTrue(writer instanceof BCF2Writer, "testSetOutputStream FORCE_BCF set -> expected BCF stream, was VCF stream");
-
-        // test that FORCE_BCF remains in effect, overriding the explicit setting of VCF
-        writer = builder.setOutputVCFStream(stream).build();
-        Assert.assertTrue(writer instanceof BCF2Writer, "testSetOutputStream FORCE_BCF set 2 -> expected BCF stream, was VCF stream");
-
-        writer = builder.unsetOption(Options.FORCE_BCF).build();
-        Assert.assertTrue(writer instanceof VCFWriter, "testSetOutputStream FORCE_BCF unset -> expected VCF stream, was BCF stream");
-
-        writer = builder.setOutputBCFStream(stream).build();
-        Assert.assertTrue(writer instanceof BCF2Writer, "testSetOutputStream BCF");
-
-        writer = builder.setOutputVCFStream(stream).build();
-        Assert.assertTrue(writer instanceof VCFWriter, "testSetOutputStream VCF");
-    }
-
-    @Test
-    public void testAsync() {
-        final VariantContextWriterBuilder builder = new VariantContextWriterBuilder()
-                .setReferenceDictionary(dictionary)
-                .setOutputFile(vcf);
-
-        VariantContextWriter writer = builder.build();
-        Assert.assertEquals(writer instanceof AsyncVariantContextWriter, Defaults.USE_ASYNC_IO, "testAsync default");
-
-        writer = builder.setOption(Options.USE_ASYNC_IO).build();
-        Assert.assertTrue(writer instanceof AsyncVariantContextWriter, "testAsync option=set");
-
-        writer = builder.unsetOption(Options.USE_ASYNC_IO).build();
-        Assert.assertFalse(writer instanceof AsyncVariantContextWriter, "testAsync option=unset");
-    }
-
-    @Test
-    public void testBuffering() {
-        final VariantContextWriterBuilder builder = new VariantContextWriterBuilder()
-                .setReferenceDictionary(dictionary)
-                .setOutputFile(vcf)
-                .unsetOption(Options.INDEX_ON_THE_FLY);     // so the potential BufferedOutputStream is not wrapped in a PositionalOutputStream
-
-        VariantContextWriter writer = builder.build();
-        Assert.assertTrue(((VCFWriter) writer).getOutputStream() instanceof BufferedOutputStream, "testBuffering was not buffered by default");
-
-        writer = builder.unsetBuffering().build();
-        Assert.assertFalse(((VCFWriter) writer).getOutputStream() instanceof BufferedOutputStream, "testBuffering was buffered when unset");
-
-        writer = builder.setBuffer(8192).build();
-        Assert.assertTrue(((VCFWriter) writer).getOutputStream() instanceof BufferedOutputStream, "testBuffering was not buffered when set");
-    }
-
-    @Test
-    public void testMD5() {
-        final VariantContextWriterBuilder builder = new VariantContextWriterBuilder()
-                .setReferenceDictionary(dictionary)
-                .setOutputFile(vcf);
-
-        VariantContextWriter writer = builder.build();
-        writer.close();
-        Assert.assertEquals(vcfMD5.exists(), Defaults.CREATE_MD5, "MD5 default setting not respected");
-
-        if (vcfMD5.exists())
-            vcfMD5.delete();
-
-        writer = builder.setCreateMD5().build();
-        writer.close();
-        Assert.assertTrue(vcfMD5.exists(), "MD5 not created when requested");
-        vcfMD5.delete();
-
-        writer = builder.unsetCreateMD5().build();
-        writer.close();
-        Assert.assertFalse(vcfMD5.exists(), "MD5 created when not requested");
-
-        writer = builder.setCreateMD5(false).build();
-        writer.close();
-        Assert.assertFalse(vcfMD5.exists(), "MD5 created when not requested via boolean parameter");
-
-        writer = builder.setCreateMD5(true).build();
-        writer.close();
-        Assert.assertTrue(vcfMD5.exists(), "MD5 not created when requested via boolean parameter");
-        vcfMD5.delete();
-
-        for (final File blockCompressed : blockCompressedVCFs) {
-            final File md5 = new File(blockCompressed + ".md5");
-            if (md5.exists())
-                md5.delete();
-            md5.deleteOnExit();
-            writer = builder.setOutputFile(blockCompressed).build();
-            writer.close();
-            Assert.assertTrue(md5.exists(), "MD5 digest not created for " + blockCompressed);
-        }
-    }
-
-    @Test
-    public void testIndexingOnTheFly() {
-        final VariantContextWriterBuilder builder = new VariantContextWriterBuilder()
-                .setReferenceDictionary(dictionary)
-                .setOption(Options.INDEX_ON_THE_FLY);
-
-        if (vcfIdx.exists())
-            vcfIdx.delete();
-        VariantContextWriter writer = builder.setOutputFile(vcf).build();
-        writer.close();
-        Assert.assertTrue(vcfIdx.exists(), String.format("VCF index not created for %s / %s", vcf, vcfIdx));
-
-        if (bcfIdx.exists())
-            bcfIdx.delete();
-        writer = builder.setOutputFile(bcf).build();
-        writer.close();
-        Assert.assertTrue(bcfIdx.exists(), String.format("BCF index not created for %s / %s", bcf, bcfIdx));
-
-        for (int i = 0; i < blockCompressedVCFs.size(); i++) {
-            final File blockCompressed = blockCompressedVCFs.get(i);
-            final File index = blockCompressedIndices.get(i);
-            if (index.exists())
-                index.delete();
-            writer = builder.setOutputFile(blockCompressed).setReferenceDictionary(dictionary).build();
-            writer.close();
-            Assert.assertTrue(index.exists(), String.format("Block-compressed index not created for %s / %s", blockCompressed, index));
-
-            // Tabix does not require a reference dictionary.
-            // Tribble does: see tests testRefDictRequiredForVCFIndexOnTheFly / testRefDictRequiredForBCFIndexOnTheFly
-
-            index.delete();
-            writer = builder.setReferenceDictionary(null).build();
-            writer.close();
-            Assert.assertTrue(index.exists(), String.format("Block-compressed index not created for %s / %s", blockCompressed, index));
-        }
-    }
-
-    @Test(expectedExceptions = IllegalArgumentException.class)
-    public void testInvalidImplicitFileType() {
-        new VariantContextWriterBuilder()
-                .setReferenceDictionary(dictionary)
-                .setOutputFile("test.bam")
-                .build();
-    }
-
-    @Test(expectedExceptions = IllegalArgumentException.class)
-    public void testSetInvalidFileType() {
-        new VariantContextWriterBuilder()
-                .setReferenceDictionary(dictionary)
-                .setOutputFile("test.bam")
-                .setOutputFileType(VariantContextWriterBuilder.OutputType.VCF_STREAM)
-                .build();
-    }
-
-    @Test(expectedExceptions = IllegalArgumentException.class)
-    public void testInvalidSetFileTypeForStream() {
-        new VariantContextWriterBuilder()
-                .setReferenceDictionary(dictionary)
-                .setOutputStream(new ByteArrayOutputStream())
-                .setOutputFileType(VariantContextWriterBuilder.OutputType.VCF)
-                .build();
-    }
-
-    @Test(expectedExceptions = IllegalArgumentException.class)
-    public void testUnsupportedIndexOnTheFlyForStreaming() {
-        new VariantContextWriterBuilder()
-                .setReferenceDictionary(dictionary)
-                .setOutputStream(new ByteArrayOutputStream())
-                .setOption(Options.INDEX_ON_THE_FLY)
-                .build();
-    }
-
-    @Test(expectedExceptions = IllegalArgumentException.class)
-    public void testUnsupportedDefaultIndexOnTheFlyForStreaming() {
-        new VariantContextWriterBuilder()
-                .setReferenceDictionary(dictionary)
-                .setOutputStream(new ByteArrayOutputStream())
-                .build();
-    }
-
-    @Test(expectedExceptions = IllegalArgumentException.class)
-    public void testRefDictRequiredForVCFIndexOnTheFly() {
-        new VariantContextWriterBuilder()
-                .setOutputFile(vcf)
-                .setOption(Options.INDEX_ON_THE_FLY)
-                .build();
-    }
-
-    @Test(expectedExceptions = IllegalArgumentException.class)
-    public void testRefDictRequiredForBCFIndexOnTheFly() {
-        new VariantContextWriterBuilder()
-                .setOutputFile(bcf)
-                .setOption(Options.INDEX_ON_THE_FLY)
-                .build();
-    }
-}
\ No newline at end of file
diff --git a/src/tests/java/org/broadinstitute/variant/variantcontext/writer/VariantContextWritersUnitTest.java b/src/tests/java/org/broadinstitute/variant/variantcontext/writer/VariantContextWritersUnitTest.java
deleted file mode 100644
index 7ee9f9b..0000000
--- a/src/tests/java/org/broadinstitute/variant/variantcontext/writer/VariantContextWritersUnitTest.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.variantcontext.writer;
-
-
-// the imports for unit testing.
-
-
-import net.sf.samtools.SAMSequenceDictionary;
-import org.broadinstitute.variant.VariantBaseTest;
-import org.broadinstitute.variant.bcf2.BCF2Codec;
-import org.broadinstitute.variant.variantcontext.VariantContext;
-import org.broadinstitute.variant.variantcontext.VariantContextTestProvider;
-import org.broadinstitute.variant.vcf.VCFCodec;
-import org.broadinstitute.variant.vcf.VCFHeader;
-import org.testng.annotations.BeforeSuite;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.EnumSet;
-import java.util.List;
-
-
-public class VariantContextWritersUnitTest extends VariantBaseTest {
-    private SAMSequenceDictionary dictionary;
-
-    @BeforeSuite
-    public void before() throws IOException {
-        dictionary = createArtificialSequenceDictionary();
-        VariantContextTestProvider.initializeTests();
-    }
-
-    @DataProvider(name = "VariantContextTest_SingleContexts")
-    public Object[][] SiteVCsTest() {
-        List<Object[]> tests = new ArrayList<Object[]>();
-        for ( VariantContextTestProvider.VariantContextTestData testData : VariantContextTestProvider.generateSiteTests() )
-            tests.add(new Object[]{testData});
-        return tests.toArray(new Object[][]{});
-    }
-
-    // --------------------------------------------------------------------------------
-    //
-    // Test BCF2 reader / writer
-    //
-    // --------------------------------------------------------------------------------
-
-    @Test(dataProvider = "VariantContextTest_SingleContexts")
-    public void testBCF2WriterReader(final VariantContextTestProvider.VariantContextTestData testData) throws IOException {
-        VariantContextTestProvider.testReaderWriter(new BCFIOTester(), testData);
-    }
-
-    @Test(dataProvider = "VariantContextTest_SingleContexts")
-    public void testBCF2WriterReaderMissingGenotypes(final VariantContextTestProvider.VariantContextTestData testData) throws IOException {
-        VariantContextTestProvider.testReaderWriterWithMissingGenotypes(new BCFIOTester(), testData);
-    }
-
-    private class BCFIOTester extends VariantContextTestProvider.VariantContextIOTest<BCF2Codec> {
-        @Override
-        public String getExtension() {
-            return ".bcf";
-        }
-
-        @Override
-        public BCF2Codec makeCodec() {
-            return new BCF2Codec();
-        }
-
-        @Override
-        public VariantContextWriter makeWriter(final File file, final EnumSet<Options> baseOptions) {
-            return new VariantContextWriterBuilder()
-                    .setOutputFile(file)
-                    .setReferenceDictionary(dictionary)
-                    .setOptions(baseOptions)
-                    .build();
-        }
-
-        @Override
-        public VariantContextTestProvider.VariantContextContainer readAllVCs(File input) throws IOException {
-            final BCF2Codec codec = this.makeCodec();
-            return VariantContextTestProvider.readAllVCs(input, codec);
-        }
-    }
-
-    // --------------------------------------------------------------------------------
-    //
-    // Test VCF reader / writer
-    //
-    // --------------------------------------------------------------------------------
-
-    @Test(enabled = true, dataProvider = "VariantContextTest_SingleContexts")
-    public void testVCF4WriterReader(final VariantContextTestProvider.VariantContextTestData testData) throws IOException {
-        VariantContextTestProvider.testReaderWriter(new VCFIOTester(), testData);
-    }
-
-    @Test(enabled = true, dataProvider = "VariantContextTest_SingleContexts")
-    public void testVCF4WriterReaderMissingGenotypes(final VariantContextTestProvider.VariantContextTestData testData) throws IOException {
-        VariantContextTestProvider.testReaderWriterWithMissingGenotypes(new VCFIOTester(), testData);
-    }
-
-    private class VCFIOTester extends VariantContextTestProvider.VariantContextIOTest<VCFCodec> {
-        @Override
-        public String getExtension() {
-            return ".vcf";
-        }
-
-        @Override
-        public List<VariantContext> postprocess(final VCFHeader header, final List<VariantContext> vcsAfterIO) {
-            final List<VariantContext> fullyDecoded = new ArrayList<VariantContext>(vcsAfterIO.size());
-
-            for ( final VariantContext withStrings : vcsAfterIO )
-                fullyDecoded.add(withStrings.fullyDecode(header, false));
-
-            return fullyDecoded;
-        }
-
-        @Override
-        public VCFCodec makeCodec() {
-            return new VCFCodec();
-        }
-
-        @Override
-        public VariantContextWriter makeWriter(final File file, final EnumSet<Options> baseOptions) {
-            return new VariantContextWriterBuilder()
-                    .setOutputFile(file)
-                    .setReferenceDictionary(dictionary)
-                    .setOptions(baseOptions)
-                    .build();
-        }
-
-        @Override
-        public VariantContextTestProvider.VariantContextContainer readAllVCs(File input) throws FileNotFoundException {
-            final VCFCodec codec = this.makeCodec();
-            return VariantContextTestProvider.readAllVCs(input, codec);
-        }
-    }
-}
\ No newline at end of file
diff --git a/src/tests/java/org/broadinstitute/variant/vcf/IndexFactoryUnitTest.java b/src/tests/java/org/broadinstitute/variant/vcf/IndexFactoryUnitTest.java
deleted file mode 100644
index fcf8382..0000000
--- a/src/tests/java/org/broadinstitute/variant/vcf/IndexFactoryUnitTest.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.vcf;
-
-import net.sf.samtools.SAMSequenceDictionary;
-import org.broad.tribble.AbstractFeatureReader;
-import org.broad.tribble.CloseableTribbleIterator;
-import org.broad.tribble.Tribble;
-import org.broad.tribble.index.Index;
-import org.broad.tribble.index.IndexFactory;
-import org.broadinstitute.variant.VariantBaseTest;
-import org.broadinstitute.variant.variantcontext.VariantContext;
-import org.broadinstitute.variant.variantcontext.writer.Options;
-import org.broadinstitute.variant.variantcontext.writer.VariantContextWriter;
-import org.broadinstitute.variant.variantcontext.writer.VariantContextWriterBuilder;
-import org.testng.annotations.BeforeTest;
-import org.testng.annotations.Test;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.EnumSet;
-
-/**
- * tests out the various functions in the index factory class
- */
-public class IndexFactoryUnitTest extends VariantBaseTest {
-
-    File inputFile = new File(variantTestDataRoot + "HiSeq.10000.vcf");
-    File outputFile = createTempFile("onTheFlyOutputTest", ".vcf");
-    File outputFileIndex = Tribble.indexFile(outputFile);
-
-    private SAMSequenceDictionary dict;
-
-    @BeforeTest
-    public void setup() {
-        dict = createArtificialSequenceDictionary();
-    }
-
-    //
-    // test out scoring the indexes
-    //
-    @Test
-    public void testOnTheFlyIndexing1() throws IOException {
-        final Index indexFromInputFile = IndexFactory.createDynamicIndex(inputFile, new VCFCodec());
-        if ( outputFileIndex.exists() ) {
-            System.err.println("Deleting " + outputFileIndex);
-            outputFileIndex.delete();
-        }
-
-        for ( int maxRecords : Arrays.asList(0, 1, 10, 100, 1000, -1)) {
-            final AbstractFeatureReader source = AbstractFeatureReader.getFeatureReader(inputFile.getAbsolutePath(), new VCFCodec(), indexFromInputFile);
-
-            int counter = 0;
-            VariantContextWriter writer = new VariantContextWriterBuilder()
-                    .setOutputFile(outputFile)
-                    .setReferenceDictionary(dict)
-                    .setOptions(EnumSet.of(Options.ALLOW_MISSING_FIELDS_IN_HEADER))
-                    .build();
-            writer.writeHeader((VCFHeader)source.getHeader());
-            CloseableTribbleIterator<VariantContext> it = source.iterator();
-            while (it.hasNext() && (counter++ < maxRecords || maxRecords == -1) ) {
-                VariantContext vc = it.next();
-                writer.add(vc);
-            }
-            writer.close();
-
-            // test that the input index is the same as the one created from the identical input file
-            // test that the dynamic index is the same as the output index, which is equal to the input index
-            //WalkerTest.assertOnDiskIndexEqualToNewlyCreatedIndex(outputFileIndex, "unittest", outputFile);
-        }
-    }
-}
diff --git a/src/tests/java/org/broadinstitute/variant/vcf/VCFCompoundHeaderLineUnitTest.java b/src/tests/java/org/broadinstitute/variant/vcf/VCFCompoundHeaderLineUnitTest.java
deleted file mode 100644
index ef8b960..0000000
--- a/src/tests/java/org/broadinstitute/variant/vcf/VCFCompoundHeaderLineUnitTest.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.vcf;
-
-import org.broadinstitute.variant.VariantBaseTest;
-import org.testng.annotations.Test;
-import org.testng.Assert;
-
-
-/**
- * User: ebanks
- * Date: Apr 2, 2014
- */
-public class VCFCompoundHeaderLineUnitTest extends VariantBaseTest {
-
-    @Test
-    public void supportsVersionFields() {
-	final String line = "<ID=FOO,Number=1,Type=Float,Description=\"foo\",Version=3>";
-	final VCFCompoundHeaderLine headerline = new VCFInfoHeaderLine(line, VCFHeaderVersion.VCF4_2);
-	// if we don't support version fields then we should fail before we ever get here
-	Assert.assertTrue(true);
-    }
-}
diff --git a/src/tests/java/org/broadinstitute/variant/vcf/VCFEncoderTest.java b/src/tests/java/org/broadinstitute/variant/vcf/VCFEncoderTest.java
deleted file mode 100644
index d9fa13e..0000000
--- a/src/tests/java/org/broadinstitute/variant/vcf/VCFEncoderTest.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package org.broadinstitute.variant.vcf;
-
-import org.testng.Assert;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class VCFEncoderTest {
-
-	@DataProvider(name = "VCFWriterDoubleFormatTestData")
-	public Object[][] makeVCFWriterDoubleFormatTestData() {
-		List<Object[]> tests = new ArrayList<Object[]>();
-		tests.add(new Object[]{1.0, "1.00"});
-		tests.add(new Object[]{10.1, "10.10"});
-		tests.add(new Object[]{10.01, "10.01"});
-		tests.add(new Object[]{10.012, "10.01"});
-		tests.add(new Object[]{10.015, "10.02"});
-		tests.add(new Object[]{0.0, "0.00"});
-		tests.add(new Object[]{0.5, "0.500"});
-		tests.add(new Object[]{0.55, "0.550"});
-		tests.add(new Object[]{0.555, "0.555"});
-		tests.add(new Object[]{0.5555, "0.556"});
-		tests.add(new Object[]{0.1, "0.100"});
-		tests.add(new Object[]{0.050, "0.050"});
-		tests.add(new Object[]{0.010, "0.010"});
-		tests.add(new Object[]{0.012, "0.012"});
-		tests.add(new Object[]{0.0012, "1.200e-03"});
-		tests.add(new Object[]{1.2e-4, "1.200e-04"});
-		tests.add(new Object[]{1.21e-4, "1.210e-04"});
-		tests.add(new Object[]{1.212e-5, "1.212e-05"});
-		tests.add(new Object[]{1.2123e-6, "1.212e-06"});
-		tests.add(new Object[]{Double.POSITIVE_INFINITY, "Infinity"});
-		tests.add(new Object[]{Double.NEGATIVE_INFINITY, "-Infinity"});
-		tests.add(new Object[]{Double.NaN, "NaN"});
-		return tests.toArray(new Object[][]{});
-	}
-
-	@Test(dataProvider = "VCFWriterDoubleFormatTestData")
-	public void testVCFWriterDoubleFormatTestData(final double d, final String expected) {
-		Assert.assertEquals(VCFEncoder.formatVCFDouble(d), expected, "Failed to pretty print double in VCFWriter");
-	}
-
-}
diff --git a/src/tests/java/org/broadinstitute/variant/vcf/VCFHeaderUnitTest.java b/src/tests/java/org/broadinstitute/variant/vcf/VCFHeaderUnitTest.java
deleted file mode 100644
index 9417809..0000000
--- a/src/tests/java/org/broadinstitute/variant/vcf/VCFHeaderUnitTest.java
+++ /dev/null
@@ -1,211 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.vcf;
-
-import org.broad.tribble.TribbleException;
-import org.broad.tribble.readers.AsciiLineReader;
-import org.broad.tribble.readers.AsciiLineReaderIterator;
-import org.broad.tribble.readers.LineIteratorImpl;
-import org.broad.tribble.readers.LineReaderUtil;
-import org.broad.tribble.readers.PositionalBufferedStream;
-import org.broadinstitute.variant.VariantBaseTest;
-import org.broadinstitute.variant.variantcontext.VariantContext;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.io.*;
-import java.math.BigInteger;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-
-/**
- * Created by IntelliJ IDEA.
- * User: aaron
- * Date: Jun 30, 2010
- * Time: 3:32:08 PM
- * To change this template use File | Settings | File Templates.
- */
-public class VCFHeaderUnitTest extends VariantBaseTest {
-
-    private VCFHeader createHeader(String headerStr) {
-        VCFCodec codec = new VCFCodec();
-        VCFHeader header = (VCFHeader) codec.readActualHeader(new LineIteratorImpl(LineReaderUtil.fromBufferedStream(new PositionalBufferedStream(new StringBufferInputStream(headerStr)), LineReaderUtil.LineReaderOption.SYNCHRONOUS)));
-        Assert.assertEquals(header.getMetaDataInInputOrder().size(), VCF4headerStringCount);
-        return header;
-    }
-
-    @Test
-    public void testVCF4ToVCF4() {
-        VCFHeader header = createHeader(VCF4headerStrings);
-        checkMD5ofHeaderFile(header, "f05a57053a0c6a5bac15dba566f7f7ff");
-    }
-
-    @Test
-    public void testVCF4ToVCF4_alternate() {
-        VCFHeader header = createHeader(VCF4headerStrings_with_negativeOne);
-        checkMD5ofHeaderFile(header, "b1d71cc94261053131f8d239d65a8c9f");
-    }
-
-    @Test
-    public void testVCFHeaderSampleRenamingSingleSampleVCF() throws Exception {
-        final VCFCodec codec = new VCFCodec();
-        codec.setRemappedSampleName("FOOSAMPLE");
-        final AsciiLineReaderIterator vcfIterator = new AsciiLineReaderIterator(new AsciiLineReader(new FileInputStream(variantTestDataRoot + "HiSeq.10000.vcf")));
-        final VCFHeader header = (VCFHeader)codec.readHeader(vcfIterator).getHeaderValue();
-
-        Assert.assertEquals(header.getNGenotypeSamples(), 1, "Wrong number of samples in remapped header");
-        Assert.assertEquals(header.getGenotypeSamples().get(0), "FOOSAMPLE", "Sample name in remapped header has incorrect value");
-
-        int recordCount = 0;
-        while ( vcfIterator.hasNext() && recordCount < 10) {
-            recordCount++;
-            final VariantContext vcfRecord = codec.decode(vcfIterator.next());
-
-            Assert.assertEquals(vcfRecord.getSampleNames().size(), 1, "Wrong number of samples in vcf record after remapping");
-            Assert.assertEquals(vcfRecord.getSampleNames().iterator().next(), "FOOSAMPLE", "Wrong sample in vcf record after remapping");
-        }
-    }
-
-    @Test(expectedExceptions = TribbleException.class)
-    public void testVCFHeaderSampleRenamingMultiSampleVCF() throws Exception {
-        final VCFCodec codec = new VCFCodec();
-        codec.setRemappedSampleName("FOOSAMPLE");
-        final AsciiLineReaderIterator vcfIterator = new AsciiLineReaderIterator(new AsciiLineReader(new FileInputStream(variantTestDataRoot + "ex2.vcf")));
-        final VCFHeader header = (VCFHeader)codec.readHeader(vcfIterator).getHeaderValue();
-    }
-
-    @Test(expectedExceptions = TribbleException.class)
-    public void testVCFHeaderSampleRenamingSitesOnlyVCF() throws Exception {
-        final VCFCodec codec = new VCFCodec();
-        codec.setRemappedSampleName("FOOSAMPLE");
-        final AsciiLineReaderIterator vcfIterator = new AsciiLineReaderIterator(new AsciiLineReader(new FileInputStream(variantTestDataRoot + "dbsnp_135.b37.1000.vcf")));
-        final VCFHeader header = (VCFHeader)codec.readHeader(vcfIterator).getHeaderValue();
-    }
-
-        /**
-     * a little utility function for all tests to md5sum a file
-     * Shameless taken from:
-     *
-     * http://www.javalobby.org/java/forums/t84420.html
-     *
-     * @param file the file
-     * @return a string
-     */
-    private static String md5SumFile(File file) {
-        MessageDigest digest;
-        try {
-            digest = MessageDigest.getInstance("MD5");
-        } catch (NoSuchAlgorithmException e) {
-            throw new RuntimeException("Unable to find MD5 digest");
-        }
-        InputStream is;
-        try {
-            is = new FileInputStream(file);
-        } catch (FileNotFoundException e) {
-            throw new RuntimeException("Unable to open file " + file);
-        }
-        byte[] buffer = new byte[8192];
-        int read;
-        try {
-            while ((read = is.read(buffer)) > 0) {
-                digest.update(buffer, 0, read);
-            }
-            byte[] md5sum = digest.digest();
-            BigInteger bigInt = new BigInteger(1, md5sum);
-            return bigInt.toString(16);
-
-        }
-        catch (IOException e) {
-            throw new RuntimeException("Unable to process file for MD5", e);
-        }
-        finally {
-            try {
-                is.close();
-            }
-            catch (IOException e) {
-                throw new RuntimeException("Unable to close input stream for MD5 calculation", e);
-            }
-        }
-    }
-
-    private void checkMD5ofHeaderFile(VCFHeader header, String md5sum) {
-        File myTempFile = null;
-        PrintWriter pw = null;
-        try {
-            myTempFile = File.createTempFile("VCFHeader","vcf");
-            myTempFile.deleteOnExit();
-            pw = new PrintWriter(myTempFile);
-        } catch (IOException e) {
-            Assert.fail("Unable to make a temp file!");
-        }
-        for (VCFHeaderLine line : header.getMetaDataInSortedOrder())
-            pw.println(line);
-        pw.close();
-        Assert.assertEquals(md5SumFile(myTempFile), md5sum);
-    }
-
-    public static int VCF4headerStringCount = 16;
-
-    public static String VCF4headerStrings =
-                "##fileformat=VCFv4.0\n"+
-                "##filedate=2010-06-21\n"+
-                "##reference=NCBI36\n"+
-                "##INFO=<ID=GC, Number=0, Type=Flag, Description=\"Overlap with Gencode CCDS coding sequence\">\n"+
-                "##INFO=<ID=DP, Number=1, Type=Integer, Description=\"Total number of reads in haplotype window\">\n"+
-                "##INFO=<ID=AF, Number=A, Type=Float, Description=\"Dindel estimated population allele frequency\">\n"+
-                "##INFO=<ID=CA, Number=1, Type=String, Description=\"Pilot 1 callability mask\">\n"+
-                "##INFO=<ID=HP, Number=1, Type=Integer, Description=\"Reference homopolymer tract length\">\n"+
-                "##INFO=<ID=NS, Number=1, Type=Integer, Description=\"Number of samples with data\">\n"+
-                "##INFO=<ID=DB, Number=0, Type=Flag, Description=\"dbSNP membership build 129 - type match and indel sequence length match within 25 bp\">\n"+
-                "##INFO=<ID=NR, Number=1, Type=Integer, Description=\"Number of reads covering non-ref variant on reverse strand\">\n"+
-                "##INFO=<ID=NF, Number=1, Type=Integer, Description=\"Number of reads covering non-ref variant on forward strand\">\n"+
-                "##FILTER=<ID=NoQCALL, Description=\"Variant called by Dindel but not confirmed by QCALL\">\n"+
-                "##FORMAT=<ID=GT, Number=1, Type=String, Description=\"Genotype\">\n"+
-                "##FORMAT=<ID=HQ, Number=2, Type=Integer, Description=\"Haplotype quality\">\n"+
-                "##FORMAT=<ID=GQ, Number=1, Type=Integer, Description=\"Genotype quality\">\n"+
-                "#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO\n";
-
-
-    public static String VCF4headerStrings_with_negativeOne =
-                "##fileformat=VCFv4.0\n"+
-                "##filedate=2010-06-21\n"+
-                "##reference=NCBI36\n"+
-                "##INFO=<ID=GC, Number=0, Type=Flag, Description=\"Overlap with Gencode CCDS coding sequence\">\n"+
-                "##INFO=<ID=YY, Number=., Type=Integer, Description=\"Some weird value that has lots of parameters\">\n"+
-                "##INFO=<ID=AF, Number=A, Type=Float, Description=\"Dindel estimated population allele frequency\">\n"+
-                "##INFO=<ID=CA, Number=1, Type=String, Description=\"Pilot 1 callability mask\">\n"+
-                "##INFO=<ID=HP, Number=1, Type=Integer, Description=\"Reference homopolymer tract length\">\n"+
-                "##INFO=<ID=NS, Number=1, Type=Integer, Description=\"Number of samples with data\">\n"+
-                "##INFO=<ID=DB, Number=0, Type=Flag, Description=\"dbSNP membership build 129 - type match and indel sequence length match within 25 bp\">\n"+
-                "##INFO=<ID=NR, Number=1, Type=Integer, Description=\"Number of reads covering non-ref variant on reverse strand\">\n"+
-                "##INFO=<ID=NF, Number=1, Type=Integer, Description=\"Number of reads covering non-ref variant on forward strand\">\n"+
-                "##FILTER=<ID=NoQCALL, Description=\"Variant called by Dindel but not confirmed by QCALL\">\n"+
-                "##FORMAT=<ID=GT, Number=1, Type=String, Description=\"Genotype\">\n"+
-                "##FORMAT=<ID=HQ, Number=2, Type=Integer, Description=\"Haplotype quality\">\n"+
-                "##FORMAT=<ID=TT, Number=., Type=Integer, Description=\"Lots of TTs\">\n"+
-                "#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO\n";
-
-}
diff --git a/src/tests/java/org/broadinstitute/variant/vcf/VCFStandardHeaderLinesUnitTest.java b/src/tests/java/org/broadinstitute/variant/vcf/VCFStandardHeaderLinesUnitTest.java
deleted file mode 100644
index 8dcf896..0000000
--- a/src/tests/java/org/broadinstitute/variant/vcf/VCFStandardHeaderLinesUnitTest.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
-* Copyright (c) 2012 The Broad Institute
-* 
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or sell
-* copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-* 
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the Software.
-* 
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package org.broadinstitute.variant.vcf;
-
-import org.broadinstitute.variant.VariantBaseTest;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-import org.testng.Assert;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-/**
- * Created by IntelliJ IDEA.
- * User: aaron
- * Date: Jun 30, 2010
- * Time: 3:32:08 PM
- * To change this template use File | Settings | File Templates.
- */
-public class VCFStandardHeaderLinesUnitTest extends VariantBaseTest {
-    @DataProvider(name = "getStandardLines")
-    public Object[][] makeGetStandardLines() {
-        List<Object[]> tests = new ArrayList<Object[]>();
-
-        // info
-        tests.add(new Object[]{"AC", "info", true});
-        tests.add(new Object[]{"AN", "info", true});
-        tests.add(new Object[]{"AF", "info", true});
-        tests.add(new Object[]{"DP", "info", true});
-        tests.add(new Object[]{"DB", "info", true});
-        tests.add(new Object[]{"END", "info", true});
-
-        // format
-        tests.add(new Object[]{"GT", "format", true});
-        tests.add(new Object[]{"GQ", "format", true});
-        tests.add(new Object[]{"DP", "format", true});
-        tests.add(new Object[]{"AD", "format", true});
-        tests.add(new Object[]{"PL", "format", true});
-
-        tests.add(new Object[]{"NOT_STANDARD", "info", false});
-        tests.add(new Object[]{"NOT_STANDARD", "format", false});
-
-        return tests.toArray(new Object[][]{});
-    }
-
-
-    @Test(dataProvider = "getStandardLines")
-    public void getStandardLines(final String key, final String type, final boolean expectedToBeStandard) {
-        VCFCompoundHeaderLine line = null;
-        if ( type.equals("info") )
-            line = VCFStandardHeaderLines.getInfoLine(key, false);
-        else if ( type.equals("format") )
-            line = VCFStandardHeaderLines.getFormatLine(key, false);
-        else
-            throw new IllegalArgumentException("Unexpected type in getStandardLines " + type);
-
-        if ( expectedToBeStandard ) {
-            Assert.assertNotNull(line);
-            Assert.assertEquals(line.getID(), key);
-        } else
-            Assert.assertNull(line);
-    }
-
-    private class RepairHeaderTest {
-        final VCFCompoundHeaderLine original, expectedResult;
-
-        private RepairHeaderTest(final VCFCompoundHeaderLine original) {
-            this(original, original);
-        }
-
-        private RepairHeaderTest(final VCFCompoundHeaderLine original, final VCFCompoundHeaderLine expectedResult) {
-            this.original = original;
-            this.expectedResult = expectedResult;
-        }
-
-        public String toString() {
-            return "RepairHeaderTest: Original: " + original.toStringEncoding() + "  Expected: " + expectedResult.toStringEncoding();
-        }
-    }
-
-    @DataProvider(name = "RepairHeaderTest")
-    public Object[][] makeRepairHeaderTest() {
-        final VCFInfoHeaderLine standardAC = VCFStandardHeaderLines.getInfoLine("AC");
-        final VCFInfoHeaderLine goodAC = new VCFInfoHeaderLine("AC", VCFHeaderLineCount.A, VCFHeaderLineType.Integer, "x");
-
-        final VCFFormatHeaderLine standardGT = VCFStandardHeaderLines.getFormatLine("GT");
-        final VCFFormatHeaderLine goodGT = new VCFFormatHeaderLine("GT", 1, VCFHeaderLineType.String, "x");
-
-        List<Object[]> tests = new ArrayList<Object[]>();
-
-        tests.add(new Object[]{new RepairHeaderTest( standardGT, standardGT)});
-        tests.add(new Object[]{new RepairHeaderTest( goodGT, goodGT )});
-        tests.add(new Object[]{new RepairHeaderTest( new VCFFormatHeaderLine("GT", 2, VCFHeaderLineType.String, "x"), standardGT)});
-        tests.add(new Object[]{new RepairHeaderTest( new VCFFormatHeaderLine("GT", 1, VCFHeaderLineType.Integer, "x"), standardGT)});
-        tests.add(new Object[]{new RepairHeaderTest( new VCFFormatHeaderLine("GT", 1, VCFHeaderLineType.Float, "x"), standardGT)});
-        tests.add(new Object[]{new RepairHeaderTest( new VCFFormatHeaderLine("GT", VCFHeaderLineCount.UNBOUNDED, VCFHeaderLineType.Float, "x"), standardGT)});
-        tests.add(new Object[]{new RepairHeaderTest( new VCFFormatHeaderLine("GT", VCFHeaderLineCount.G, VCFHeaderLineType.String, "x"), standardGT)});
-        tests.add(new Object[]{new RepairHeaderTest( new VCFFormatHeaderLine("GT", VCFHeaderLineCount.A, VCFHeaderLineType.String, "x"), standardGT)});
-
-        tests.add(new Object[]{new RepairHeaderTest( standardAC, standardAC)});
-        tests.add(new Object[]{new RepairHeaderTest( goodAC, goodAC )});
-        tests.add(new Object[]{new RepairHeaderTest( new VCFInfoHeaderLine("AC", 1, VCFHeaderLineType.Integer, "x"), standardAC)});
-        tests.add(new Object[]{new RepairHeaderTest( new VCFInfoHeaderLine("AC", VCFHeaderLineCount.G, VCFHeaderLineType.Integer, "x"), standardAC)});
-        tests.add(new Object[]{new RepairHeaderTest( new VCFInfoHeaderLine("AC", VCFHeaderLineCount.UNBOUNDED, VCFHeaderLineType.Integer, "x"), standardAC)});
-        tests.add(new Object[]{new RepairHeaderTest( new VCFInfoHeaderLine("AC", 1, VCFHeaderLineType.Float, "x"), standardAC)});
-        tests.add(new Object[]{new RepairHeaderTest( new VCFInfoHeaderLine("AC", 1, VCFHeaderLineType.String, "x"), standardAC)});
-        tests.add(new Object[]{new RepairHeaderTest( new VCFInfoHeaderLine("AC", 0, VCFHeaderLineType.Flag, "x"), standardAC)});
-
-        tests.add(new Object[]{new RepairHeaderTest( new VCFInfoHeaderLine("NON_STANDARD_INFO", 1, VCFHeaderLineType.String, "x"))});
-        tests.add(new Object[]{new RepairHeaderTest( new VCFFormatHeaderLine("NON_STANDARD_FORMAT", 1, VCFHeaderLineType.String, "x"))});
-
-        return tests.toArray(new Object[][]{});
-    }
-
-    @Test(dataProvider = "RepairHeaderTest")
-    public void testRepairHeaderTest(RepairHeaderTest cfg) {
-        final VCFHeader toRepair = new VCFHeader(Collections.singleton((VCFHeaderLine)cfg.original));
-        final VCFHeader repaired = VCFStandardHeaderLines.repairStandardHeaderLines(toRepair);
-
-        VCFCompoundHeaderLine repairedLine = (VCFCompoundHeaderLine)repaired.getFormatHeaderLine(cfg.original.getID());
-        if ( repairedLine == null ) repairedLine = (VCFCompoundHeaderLine)repaired.getInfoHeaderLine(cfg.original.getID());
-
-        Assert.assertNotNull(repairedLine, "Repaired header didn't contain the expected line");
-        Assert.assertEquals(repairedLine.getID(), cfg.expectedResult.getID());
-        Assert.assertEquals(repairedLine.getType(), cfg.expectedResult.getType());
-        Assert.assertEquals(repairedLine.getCountType(), cfg.expectedResult.getCountType());
-        if ( repairedLine.getCountType() == VCFHeaderLineCount.INTEGER )
-            Assert.assertEquals(repairedLine.getCount(), cfg.expectedResult.getCount());
-    }
-}
diff --git a/src/tests/java/picard/analysis/CollectAlignmentSummaryMetricsTest.java b/src/tests/java/picard/analysis/CollectAlignmentSummaryMetricsTest.java
new file mode 100644
index 0000000..c0610d9
--- /dev/null
+++ b/src/tests/java/picard/analysis/CollectAlignmentSummaryMetricsTest.java
@@ -0,0 +1,509 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.analysis;
+
+import htsjdk.samtools.metrics.MetricsFile;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+import picard.cmdline.CommandLineProgramTest;
+
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.text.NumberFormat;
+
+/**
+ * Tests CollectAlignmentSummaryStatistics
+ *
+ * @author Doug Voet (dvoet at broadinstitute dot org)
+ */
+public class CollectAlignmentSummaryMetricsTest extends CommandLineProgramTest {
+    private static final File TEST_DATA_DIR = new File("testdata/picard/sam");
+
+    public String getCommandLineProgramName() {
+        return CollectAlignmentSummaryMetrics.class.getSimpleName();
+    }
+    
+    @Test
+    public void test() throws IOException {
+        final File input = new File(TEST_DATA_DIR, "summary_alignment_stats_test.sam");
+        final File reference = new File(TEST_DATA_DIR, "summary_alignment_stats_test.fasta");
+        final File outfile   = File.createTempFile("alignmentMetrics", ".txt");
+        outfile.deleteOnExit();
+        final String[] args = new String[] {
+                "INPUT="  + input.getAbsolutePath(),
+                "OUTPUT=" + outfile.getAbsolutePath(),
+                "REFERENCE_SEQUENCE=" + reference.getAbsolutePath(),
+        };
+        Assert.assertEquals(runPicardCommandLine(args), 0);
+
+        final MetricsFile<AlignmentSummaryMetrics, Comparable<?>> output = new MetricsFile<AlignmentSummaryMetrics, Comparable<?>>();
+        output.read(new FileReader(outfile));
+        
+        for (final AlignmentSummaryMetrics metrics : output.getMetrics()) {
+            Assert.assertEquals(metrics.MEAN_READ_LENGTH, 101.0);
+            switch (metrics.CATEGORY) {
+            case FIRST_OF_PAIR:
+                Assert.assertEquals(metrics.TOTAL_READS, 9);
+                Assert.assertEquals(metrics.PF_READS, 7);
+                Assert.assertEquals(metrics.PF_NOISE_READS, 1);
+                Assert.assertEquals(metrics.PF_HQ_ALIGNED_READS, 3);
+                Assert.assertEquals(metrics.PF_HQ_ALIGNED_Q20_BASES, 59);
+                Assert.assertEquals(metrics.PF_HQ_MEDIAN_MISMATCHES, 19.0);
+                Assert.assertEquals(metrics.PF_ALIGNED_BASES, 303);
+                Assert.assertEquals(metrics.PF_MISMATCH_RATE, /*58D/303D*/0.191419);
+                Assert.assertEquals(metrics.BAD_CYCLES, 19);
+                break;
+            case SECOND_OF_PAIR:
+                Assert.assertEquals(metrics.TOTAL_READS, 9);
+                Assert.assertEquals(metrics.PF_READS, 9);
+                Assert.assertEquals(metrics.PF_NOISE_READS, 1);
+                Assert.assertEquals(metrics.PF_HQ_ALIGNED_READS, 7);
+                Assert.assertEquals(metrics.PF_HQ_ALIGNED_Q20_BASES, 239);
+                Assert.assertEquals(metrics.PF_HQ_MEDIAN_MISMATCHES, 3.0);
+                Assert.assertEquals(metrics.PF_ALIGNED_BASES, 707);
+                Assert.assertEquals(metrics.PF_MISMATCH_RATE, /*19D/707D*/0.026874);
+                Assert.assertEquals(metrics.BAD_CYCLES, 3);
+                break;
+            case PAIR:
+                Assert.assertEquals(metrics.TOTAL_READS, 18);
+                Assert.assertEquals(metrics.PF_READS, 16);
+                Assert.assertEquals(metrics.PF_NOISE_READS, 2);
+                Assert.assertEquals(metrics.PF_HQ_ALIGNED_READS, 10);
+                Assert.assertEquals(metrics.PF_HQ_ALIGNED_Q20_BASES, 298);
+                Assert.assertEquals(metrics.PF_HQ_MEDIAN_MISMATCHES, 3.0);
+                Assert.assertEquals(metrics.PF_ALIGNED_BASES, 1010);
+                Assert.assertEquals(metrics.PF_MISMATCH_RATE, /*77D/1010D*/0.076238);
+                Assert.assertEquals(metrics.BAD_CYCLES, 22);
+                break;
+            case UNPAIRED:
+            default:
+                Assert.fail("Data does not contain this category: " + metrics.CATEGORY);
+            }
+        }
+    }
+
+    @Test
+    public void testBisulfite() throws IOException {
+        final File input = new File(TEST_DATA_DIR, "summary_alignment_bisulfite_test.sam");
+        final File reference = new File(TEST_DATA_DIR, "summary_alignment_stats_test.fasta");
+        final File outfile   = File.createTempFile("alignmentMetrics", ".txt");
+        outfile.deleteOnExit();
+        final String[] args = new String[] {
+                "INPUT="  + input.getAbsolutePath(),
+                "OUTPUT=" + outfile.getAbsolutePath(),
+                "REFERENCE_SEQUENCE=" + reference.getAbsolutePath(),
+                "IS_BISULFITE_SEQUENCED=true"
+        };
+        Assert.assertEquals(runPicardCommandLine(args), 0);
+
+        final NumberFormat format =  NumberFormat.getInstance();
+        format.setMaximumFractionDigits(4);
+
+        final MetricsFile<AlignmentSummaryMetrics, Comparable<?>> output = new MetricsFile<AlignmentSummaryMetrics, Comparable<?>>();
+        output.read(new FileReader(outfile));
+
+        for (final AlignmentSummaryMetrics metrics : output.getMetrics()) {
+            Assert.assertEquals(metrics.MEAN_READ_LENGTH, 101.0);
+            switch (metrics.CATEGORY) {
+            case FIRST_OF_PAIR:
+                // 19 no-calls, one potentially methylated base, one mismatch at a potentially methylated base
+                Assert.assertEquals(metrics.TOTAL_READS, 1);
+                Assert.assertEquals(metrics.PF_READS, 1);
+                Assert.assertEquals(metrics.PF_HQ_ALIGNED_BASES, 101);
+                Assert.assertEquals(metrics.PF_HQ_MEDIAN_MISMATCHES, 20.0);
+                Assert.assertEquals(metrics.PF_ALIGNED_BASES, 101);
+                Assert.assertEquals(metrics.PF_MISMATCH_RATE, 20D/100D);
+                Assert.assertEquals(metrics.BAD_CYCLES, 20);
+                Assert.assertEquals(format.format(metrics.PF_HQ_ERROR_RATE), format.format(20/(double)100));
+                break;
+            case SECOND_OF_PAIR:
+                // Three no-calls, two potentially methylated bases
+                Assert.assertEquals(metrics.TOTAL_READS, 1);
+                Assert.assertEquals(metrics.PF_READS, 1);
+                Assert.assertEquals(metrics.PF_HQ_ALIGNED_BASES, 101);
+                Assert.assertEquals(metrics.PF_HQ_MEDIAN_MISMATCHES, 3.0);
+                Assert.assertEquals(metrics.PF_ALIGNED_BASES, 101);
+                Assert.assertEquals(metrics.PF_MISMATCH_RATE, /*3D/99D*/0.030303);
+                Assert.assertEquals(metrics.BAD_CYCLES, 3);
+                Assert.assertEquals(format.format(metrics.PF_HQ_ERROR_RATE), format.format(3/(double)99));
+                break;
+            case PAIR:
+                Assert.assertEquals(metrics.TOTAL_READS, 2);
+                Assert.assertEquals(metrics.PF_READS, 2);
+                Assert.assertEquals(metrics.PF_HQ_ALIGNED_BASES, 202);
+                Assert.assertEquals(metrics.PF_HQ_MEDIAN_MISMATCHES, 11.5);
+                Assert.assertEquals(metrics.PF_ALIGNED_BASES, 202);
+                Assert.assertEquals(metrics.PF_MISMATCH_RATE, /*23D/199D*/0.115578);
+                Assert.assertEquals(metrics.BAD_CYCLES, 23);
+                Assert.assertEquals(format.format(metrics.PF_HQ_ERROR_RATE), format.format(23/(double)199));
+                break;
+            case UNPAIRED:
+            default:
+                Assert.fail("Data does not contain this category: " + metrics.CATEGORY);
+            }
+        }
+    }
+
+
+    @Test
+    public void testNoReference() throws IOException {
+        final File input = new File(TEST_DATA_DIR, "summary_alignment_stats_test.sam");
+        final File outfile   = File.createTempFile("alignmentMetrics", ".txt");
+        outfile.deleteOnExit();
+        final String[] args = new String[] {
+                "INPUT="  + input.getAbsolutePath(),
+                "OUTPUT=" + outfile.getAbsolutePath(),
+        };
+        Assert.assertEquals(runPicardCommandLine(args), 0);
+
+        final MetricsFile<AlignmentSummaryMetrics, Comparable<?>> output = new MetricsFile<AlignmentSummaryMetrics, Comparable<?>>();
+        output.read(new FileReader(outfile));
+
+        for (final AlignmentSummaryMetrics metrics : output.getMetrics()) {
+            Assert.assertEquals(metrics.MEAN_READ_LENGTH, 101.0);
+            switch (metrics.CATEGORY) {
+            case FIRST_OF_PAIR:
+                Assert.assertEquals(metrics.TOTAL_READS, 9);
+                Assert.assertEquals(metrics.PF_READS, 7);
+                Assert.assertEquals(metrics.PF_NOISE_READS, 1);
+                Assert.assertEquals(metrics.PF_HQ_ALIGNED_READS, 0);
+                Assert.assertEquals(metrics.PF_HQ_ALIGNED_Q20_BASES, 0);
+                Assert.assertEquals(metrics.PF_HQ_MEDIAN_MISMATCHES, 0.0);
+                Assert.assertEquals(metrics.PF_ALIGNED_BASES, 0);
+                Assert.assertEquals(metrics.PF_MISMATCH_RATE, 0.0);
+                Assert.assertEquals(metrics.BAD_CYCLES, 19);
+                break;
+            case SECOND_OF_PAIR:
+                Assert.assertEquals(metrics.TOTAL_READS, 9);
+                Assert.assertEquals(metrics.PF_READS, 9);
+                Assert.assertEquals(metrics.PF_NOISE_READS, 1);
+                Assert.assertEquals(metrics.PF_HQ_ALIGNED_READS, 0);
+                Assert.assertEquals(metrics.PF_HQ_ALIGNED_Q20_BASES, 0);
+                Assert.assertEquals(metrics.PF_HQ_MEDIAN_MISMATCHES, 0.0);
+                Assert.assertEquals(metrics.PF_ALIGNED_BASES, 0);
+                Assert.assertEquals(metrics.PF_MISMATCH_RATE, 0.0);
+                Assert.assertEquals(metrics.BAD_CYCLES, 3);
+                break;
+            case PAIR:
+                Assert.assertEquals(metrics.TOTAL_READS, 18);
+                Assert.assertEquals(metrics.PF_READS, 16);
+                Assert.assertEquals(metrics.PF_NOISE_READS, 2);
+                Assert.assertEquals(metrics.PF_HQ_ALIGNED_READS, 0);
+                Assert.assertEquals(metrics.PF_HQ_ALIGNED_Q20_BASES, 0);
+                Assert.assertEquals(metrics.PF_HQ_MEDIAN_MISMATCHES, 0.0);
+                Assert.assertEquals(metrics.PF_ALIGNED_BASES, 0);
+                Assert.assertEquals(metrics.PF_MISMATCH_RATE, 0.0);
+                Assert.assertEquals(metrics.BAD_CYCLES, 22);
+                break;
+            case UNPAIRED:
+            default:
+                Assert.fail("Data does not contain this category: " + metrics.CATEGORY);
+            }
+        }
+    }
+
+    @Test
+    public void testZeroLengthReads() throws IOException {
+        final File input = new File(TEST_DATA_DIR, "summary_alignment_stats_test2.sam");
+        final File outfile   = File.createTempFile("alignmentMetrics", ".txt");
+        outfile.deleteOnExit();
+        final String[] args = new String[] {
+                "INPUT="  + input.getAbsolutePath(),
+                "OUTPUT=" + outfile.getAbsolutePath(),
+        };
+        Assert.assertEquals(runPicardCommandLine(args), 0);
+
+        final MetricsFile<AlignmentSummaryMetrics, Comparable<?>> output = new MetricsFile<AlignmentSummaryMetrics, Comparable<?>>();
+        output.read(new FileReader(outfile));
+        for (final AlignmentSummaryMetrics metrics : output.getMetrics()) {
+            // test that it doesn't blow up
+        }
+    }
+
+    @Test
+    public void testMultipleLevelsOfMetrics() throws IOException {
+        final File input = new File(TEST_DATA_DIR, "summary_alignment_stats_test_multiple.sam");
+        final File outfile   = File.createTempFile("alignmentMetrics", ".txt");
+        outfile.deleteOnExit();
+        final String[] args = new String[] {
+                "INPUT="  + input.getAbsolutePath(),
+                "OUTPUT=" + outfile.getAbsolutePath(),
+                "METRIC_ACCUMULATION_LEVEL=ALL_READS",
+                "METRIC_ACCUMULATION_LEVEL=SAMPLE",
+                "METRIC_ACCUMULATION_LEVEL=LIBRARY",
+                "METRIC_ACCUMULATION_LEVEL=READ_GROUP",
+        };
+        Assert.assertEquals(runPicardCommandLine(args), 0);
+
+        final MetricsFile<AlignmentSummaryMetrics, Comparable<?>> output = new MetricsFile<AlignmentSummaryMetrics, Comparable<?>>();
+        output.read(new FileReader(outfile));
+
+        for (final AlignmentSummaryMetrics metrics : output.getMetrics()) {
+            Assert.assertEquals(metrics.MEAN_READ_LENGTH, 101.0);
+            if (metrics.SAMPLE == null) {
+                switch (metrics.CATEGORY) {
+                case FIRST_OF_PAIR:
+                    Assert.assertEquals(metrics.TOTAL_READS, 9);
+                    Assert.assertEquals(metrics.PF_READS, 7);
+                    Assert.assertEquals(metrics.PF_NOISE_READS, 1);
+                    Assert.assertEquals(metrics.PF_HQ_ALIGNED_READS, 0);
+                    Assert.assertEquals(metrics.PF_HQ_ALIGNED_Q20_BASES, 0);
+                    Assert.assertEquals(metrics.PF_HQ_MEDIAN_MISMATCHES, 0.0);
+                    Assert.assertEquals(metrics.PF_ALIGNED_BASES, 0);
+                    Assert.assertEquals(metrics.PF_MISMATCH_RATE, 0.0);
+                    Assert.assertEquals(metrics.BAD_CYCLES, 19);
+                    break;
+                case SECOND_OF_PAIR:
+                    Assert.assertEquals(metrics.TOTAL_READS, 9);
+                    Assert.assertEquals(metrics.PF_READS, 9);
+                    Assert.assertEquals(metrics.PF_NOISE_READS, 1);
+                    Assert.assertEquals(metrics.PF_HQ_ALIGNED_READS, 0);
+                    Assert.assertEquals(metrics.PF_HQ_ALIGNED_Q20_BASES, 0);
+                    Assert.assertEquals(metrics.PF_HQ_MEDIAN_MISMATCHES, 0.0);
+                    Assert.assertEquals(metrics.PF_ALIGNED_BASES, 0);
+                    Assert.assertEquals(metrics.PF_MISMATCH_RATE, 0.0);
+                    Assert.assertEquals(metrics.BAD_CYCLES, 3);
+                    break;
+                case PAIR:
+                    Assert.assertEquals(metrics.TOTAL_READS, 18);
+                    Assert.assertEquals(metrics.PF_READS, 16);
+                    Assert.assertEquals(metrics.PF_NOISE_READS, 2);
+                    Assert.assertEquals(metrics.PF_HQ_ALIGNED_READS, 0);
+                    Assert.assertEquals(metrics.PF_HQ_ALIGNED_Q20_BASES, 0);
+                    Assert.assertEquals(metrics.PF_HQ_MEDIAN_MISMATCHES, 0.0);
+                    Assert.assertEquals(metrics.PF_ALIGNED_BASES, 0);
+                    Assert.assertEquals(metrics.PF_MISMATCH_RATE, 0.0);
+                    Assert.assertEquals(metrics.BAD_CYCLES, 22);
+                    break;
+                case UNPAIRED:
+                default:
+                    Assert.fail("Data does not contain this category: " + metrics.CATEGORY);
+                }
+            }
+            else if (metrics.SAMPLE.equals("Ma")) {
+                // There's only one library and one read group for this sample so the metrics for
+                // every level should be identical
+                switch (metrics.CATEGORY) {
+                    case FIRST_OF_PAIR:
+                        Assert.assertEquals(metrics.TOTAL_READS, 5);
+                        Assert.assertEquals(metrics.PF_READS, 3);
+                        Assert.assertEquals(metrics.PF_NOISE_READS, 1);
+                        Assert.assertEquals(metrics.PF_HQ_ALIGNED_READS, 0);
+                        Assert.assertEquals(metrics.PF_HQ_ALIGNED_Q20_BASES, 0);
+                        Assert.assertEquals(metrics.PF_HQ_MEDIAN_MISMATCHES, 0.0);
+                        Assert.assertEquals(metrics.PF_ALIGNED_BASES, 0);
+                        Assert.assertEquals(metrics.PF_MISMATCH_RATE, 0.0);
+                        Assert.assertEquals(metrics.BAD_CYCLES, 24);
+                        break;
+                    case SECOND_OF_PAIR:
+                        Assert.assertEquals(metrics.TOTAL_READS, 5);
+                        Assert.assertEquals(metrics.PF_READS, 5);
+                        Assert.assertEquals(metrics.PF_NOISE_READS, 0);
+                        Assert.assertEquals(metrics.PF_HQ_ALIGNED_READS, 0);
+                        Assert.assertEquals(metrics.PF_HQ_ALIGNED_Q20_BASES, 0);
+                        Assert.assertEquals(metrics.PF_HQ_MEDIAN_MISMATCHES, 0.0);
+                        Assert.assertEquals(metrics.PF_ALIGNED_BASES, 0);
+                        Assert.assertEquals(metrics.PF_MISMATCH_RATE, 0.0);
+                        Assert.assertEquals(metrics.BAD_CYCLES, 3);
+                        break;
+                    case PAIR:
+                        Assert.assertEquals(metrics.TOTAL_READS, 10);
+                        Assert.assertEquals(metrics.PF_READS, 8);
+                        Assert.assertEquals(metrics.PF_NOISE_READS, 1);
+                        Assert.assertEquals(metrics.PF_HQ_ALIGNED_READS, 0);
+                        Assert.assertEquals(metrics.PF_HQ_ALIGNED_Q20_BASES, 0);
+                        Assert.assertEquals(metrics.PF_HQ_MEDIAN_MISMATCHES, 0.0);
+                        Assert.assertEquals(metrics.PF_ALIGNED_BASES, 0);
+                        Assert.assertEquals(metrics.PF_MISMATCH_RATE, 0.0);
+                        Assert.assertEquals(metrics.BAD_CYCLES, 27);
+                        break;
+                    case UNPAIRED:
+                    default:
+                        Assert.fail("Data does not contain this category: " + metrics.CATEGORY);
+                }
+            }
+            else if (metrics.SAMPLE.equals("Pa")) {
+                // Two libraries and three read groups for this sample
+                if (metrics.LIBRARY == null) {
+                    switch (metrics.CATEGORY) {
+                        case FIRST_OF_PAIR:
+                            Assert.assertEquals(metrics.TOTAL_READS, 4);
+                            Assert.assertEquals(metrics.PF_READS, 4);
+                            Assert.assertEquals(metrics.PF_NOISE_READS, 0);
+                            Assert.assertEquals(metrics.PF_HQ_ALIGNED_READS, 0);
+                            Assert.assertEquals(metrics.PF_HQ_ALIGNED_Q20_BASES, 0);
+                            Assert.assertEquals(metrics.PF_HQ_MEDIAN_MISMATCHES, 0.0);
+                            Assert.assertEquals(metrics.PF_ALIGNED_BASES, 0);
+                            Assert.assertEquals(metrics.PF_MISMATCH_RATE, 0.0);
+                            Assert.assertEquals(metrics.BAD_CYCLES, 19);
+                            break;
+                        case SECOND_OF_PAIR:
+                            Assert.assertEquals(metrics.TOTAL_READS, 4);
+                            Assert.assertEquals(metrics.PF_READS, 4);
+                            Assert.assertEquals(metrics.PF_NOISE_READS, 1);
+                            Assert.assertEquals(metrics.PF_HQ_ALIGNED_READS, 0);
+                            Assert.assertEquals(metrics.PF_HQ_ALIGNED_Q20_BASES, 0);
+                            Assert.assertEquals(metrics.PF_HQ_MEDIAN_MISMATCHES, 0.0);
+                            Assert.assertEquals(metrics.PF_ALIGNED_BASES, 0);
+                            Assert.assertEquals(metrics.PF_MISMATCH_RATE, 0.0);
+                            Assert.assertEquals(metrics.BAD_CYCLES, 3);
+                            break;
+                        case PAIR:
+                            Assert.assertEquals(metrics.TOTAL_READS, 8);
+                            Assert.assertEquals(metrics.PF_READS, 8);
+                            Assert.assertEquals(metrics.PF_NOISE_READS, 1);
+                            Assert.assertEquals(metrics.PF_HQ_ALIGNED_READS, 0);
+                            Assert.assertEquals(metrics.PF_HQ_ALIGNED_Q20_BASES, 0);
+                            Assert.assertEquals(metrics.PF_HQ_MEDIAN_MISMATCHES, 0.0);
+                            Assert.assertEquals(metrics.PF_ALIGNED_BASES, 0);
+                            Assert.assertEquals(metrics.PF_MISMATCH_RATE, 0.0);
+                            Assert.assertEquals(metrics.BAD_CYCLES, 22);
+                            break;
+                        case UNPAIRED:
+                        default:
+                            Assert.fail("Data does not contain this category: " + metrics.CATEGORY);
+                    }
+                }
+                else if (metrics.LIBRARY.equals("lib1")) {
+                    // Only one read group in this library so library and RG metrics should be identical
+                    switch (metrics.CATEGORY) {
+                        case FIRST_OF_PAIR:
+                            Assert.assertEquals(metrics.TOTAL_READS, 2);
+                            Assert.assertEquals(metrics.PF_READS, 2);
+                            Assert.assertEquals(metrics.PF_NOISE_READS, 0);
+                            Assert.assertEquals(metrics.BAD_CYCLES, 19);
+                            break;
+                        case SECOND_OF_PAIR:
+                            Assert.assertEquals(metrics.TOTAL_READS, 2);
+                            Assert.assertEquals(metrics.PF_READS, 2);
+                            Assert.assertEquals(metrics.PF_NOISE_READS, 1);
+                            Assert.assertEquals(metrics.BAD_CYCLES, 3);
+                            break;
+                        case PAIR:
+                            Assert.assertEquals(metrics.TOTAL_READS, 4);
+                            Assert.assertEquals(metrics.PF_READS, 4);
+                            Assert.assertEquals(metrics.PF_NOISE_READS, 1);
+                            Assert.assertEquals(metrics.BAD_CYCLES, 22);
+                            break;
+                        case UNPAIRED:
+                        default:
+                            Assert.fail("Data does not contain this category: " + metrics.CATEGORY);
+                    }
+
+                }
+                else if (metrics.LIBRARY.equals("lib2")) {
+                    if (metrics.READ_GROUP == null) {
+                        switch (metrics.CATEGORY) {
+                            case FIRST_OF_PAIR:
+                                Assert.assertEquals(metrics.TOTAL_READS, 2);
+                                Assert.assertEquals(metrics.PF_READS, 2);
+                                Assert.assertEquals(metrics.PF_NOISE_READS, 0);
+                                Assert.assertEquals(metrics.BAD_CYCLES, 19);
+                                break;
+                            case SECOND_OF_PAIR:
+                                Assert.assertEquals(metrics.TOTAL_READS, 2);
+                                Assert.assertEquals(metrics.PF_READS, 2);
+                                Assert.assertEquals(metrics.PF_NOISE_READS, 0);
+                                Assert.assertEquals(metrics.BAD_CYCLES, 3);
+                                break;
+                            case PAIR:
+                                Assert.assertEquals(metrics.TOTAL_READS, 4);
+                                Assert.assertEquals(metrics.PF_READS, 4);
+                                Assert.assertEquals(metrics.PF_NOISE_READS, 0);
+                                Assert.assertEquals(metrics.BAD_CYCLES, 22);
+                                break;
+                            case UNPAIRED:
+                            default:
+                                Assert.fail("Data does not contain this category: " + metrics.CATEGORY);
+                        }
+                    }
+                    else if (metrics.READ_GROUP.equals("i")) {
+                        switch (metrics.CATEGORY) {
+                            case FIRST_OF_PAIR:
+                                Assert.assertEquals(metrics.TOTAL_READS, 1);
+                                Assert.assertEquals(metrics.PF_READS, 1);
+                                Assert.assertEquals(metrics.PF_NOISE_READS, 0);
+                                Assert.assertEquals(metrics.BAD_CYCLES, 19);
+                                break;
+                            case SECOND_OF_PAIR:
+                                Assert.assertEquals(metrics.TOTAL_READS, 1);
+                                Assert.assertEquals(metrics.PF_READS, 1);
+                                Assert.assertEquals(metrics.PF_NOISE_READS, 0);
+                                Assert.assertEquals(metrics.BAD_CYCLES, 3);
+                                break;
+                            case PAIR:
+                                Assert.assertEquals(metrics.TOTAL_READS, 2);
+                                Assert.assertEquals(metrics.PF_READS, 2);
+                                Assert.assertEquals(metrics.PF_NOISE_READS, 0);
+                                Assert.assertEquals(metrics.BAD_CYCLES, 22);
+                                break;
+                            case UNPAIRED:
+                            default:
+                                Assert.fail("Data does not contain this category: " + metrics.CATEGORY);
+                        }
+                    }
+                    else if (metrics.READ_GROUP.equals("i2")) {
+                        switch (metrics.CATEGORY) {
+                            case FIRST_OF_PAIR:
+                                Assert.assertEquals(metrics.TOTAL_READS, 1);
+                                Assert.assertEquals(metrics.PF_READS, 1);
+                                Assert.assertEquals(metrics.PF_NOISE_READS, 0);
+                                Assert.assertEquals(metrics.BAD_CYCLES, 27);
+                                break;
+                            case SECOND_OF_PAIR:
+                                Assert.assertEquals(metrics.TOTAL_READS, 1);
+                                Assert.assertEquals(metrics.PF_READS, 1);
+                                Assert.assertEquals(metrics.PF_NOISE_READS, 0);
+                                Assert.assertEquals(metrics.BAD_CYCLES, 3);
+                                break;
+                            case PAIR:
+                                Assert.assertEquals(metrics.TOTAL_READS, 2);
+                                Assert.assertEquals(metrics.PF_READS, 2);
+                                Assert.assertEquals(metrics.PF_NOISE_READS, 0);
+                                Assert.assertEquals(metrics.BAD_CYCLES, 30);
+                                break;
+                            case UNPAIRED:
+                            default:
+                                Assert.fail("Data does not contain this category: " + metrics.CATEGORY);
+                        }
+                    }
+                    else {
+                        Assert.fail("Data does not contain this read group: " + metrics.READ_GROUP);
+                    }
+
+                }
+                else {
+                    Assert.fail("Data does not contain this library: " + metrics.LIBRARY);
+                }
+            }
+            else {
+                Assert.fail("Data does not contain this sample: " + metrics.SAMPLE);
+            }
+        }
+
+    }
+
+}
diff --git a/src/tests/java/picard/analysis/CollectGcBiasMetricsTest.java b/src/tests/java/picard/analysis/CollectGcBiasMetricsTest.java
new file mode 100644
index 0000000..33c27a3
--- /dev/null
+++ b/src/tests/java/picard/analysis/CollectGcBiasMetricsTest.java
@@ -0,0 +1,211 @@
+package picard.analysis;
+
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMFileWriter;
+import htsjdk.samtools.SAMFileWriterFactory;
+import htsjdk.samtools.SAMReadGroupRecord;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SAMRecordSetBuilder;
+import htsjdk.samtools.SAMTextHeaderCodec;
+import htsjdk.samtools.metrics.MetricsFile;
+import htsjdk.samtools.util.BufferedLineReader;
+import htsjdk.samtools.util.IOUtil;
+import org.testng.Assert;
+import org.testng.annotations.AfterTest;
+import org.testng.annotations.BeforeTest;
+import org.testng.annotations.Test;
+import picard.cmdline.CommandLineProgramTest;
+import picard.sam.SortSam;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.Random;
+import static org.testng.Assert.assertEquals;
+
+/**
+ * Created by kbergin on 3/26/15 to test GcBias MultiLevel Collector.
+ */
+public class CollectGcBiasMetricsTest extends CommandLineProgramTest {
+    private final static String sample1 = "TestSample1";
+    private final static String sample2 = "TestSample2";
+    private final static String readGroupId1 = "TestReadGroup1";
+    private final static String readGroupId2 = "TestReadGroup2";
+    private final static String readGroupId3 = "TestReadGroup3";
+    private final static String platform = "ILLUMINA";
+    private final static String library1 = "TestLibrary1";
+    private final static String library2 = "TestLibrary2";
+    private final static String library3 = "TestLibrary3";
+
+    private final static File TEST_DIR = new File("testdata/picard/sam/CollectGcBiasMetrics/");
+    private final File dict = new File(TEST_DIR, "Mheader.dict");
+
+    File tempSamFile;
+
+    SAMRecordSetBuilder setBuilder1 = new SAMRecordSetBuilder(true, SAMFileHeader.SortOrder.coordinate);
+    SAMRecordSetBuilder setBuilder2 = new SAMRecordSetBuilder(true, SAMFileHeader.SortOrder.coordinate);
+    SAMRecordSetBuilder setBuilder3 = new SAMRecordSetBuilder(true, SAMFileHeader.SortOrder.coordinate);
+    SAMReadGroupRecord readGroupRecord1 = new SAMReadGroupRecord(readGroupId1);
+    SAMReadGroupRecord readGroupRecord2 = new SAMReadGroupRecord(readGroupId2);
+    SAMReadGroupRecord readGroupRecord3 = new SAMReadGroupRecord(readGroupId3);
+
+    //create a samfile with different samples, read groups and libraries that overlap for testing.
+    @BeforeTest
+    void setupBuilder() throws IOException {
+        final int numReads = 100;
+        final String flowCellBarcode = "TESTBARCODE";
+        final String readName = flowCellBarcode;
+
+        tempSamFile = File.createTempFile("CollectGcBias", ".bam", TEST_DIR);
+        File tempSamFileUnsorted = File.createTempFile("CollectGcBias", ".bam", TEST_DIR);
+        tempSamFileUnsorted.deleteOnExit();
+        tempSamFile.deleteOnExit();
+
+        BufferedLineReader bufferedLineReader = null;
+        try {
+            bufferedLineReader = new BufferedLineReader(new FileInputStream(dict));
+        } catch (FileNotFoundException e) {
+            e.printStackTrace();
+        }
+
+        final SAMTextHeaderCodec codec = new SAMTextHeaderCodec();
+        final SAMFileHeader header = codec.decode(bufferedLineReader, dict.toString());
+        header.setSortOrder(SAMFileHeader.SortOrder.unsorted);
+
+        //build different levels to put into the same bam file for testing multi level collection
+        setup(numReads, readName, 1, readGroupId1, readGroupRecord1, sample1, library1, header, setBuilder1); //Sample 1, Library 1, RG 1
+        setup(numReads, readName, 2, readGroupId2, readGroupRecord2, sample1, library2, header, setBuilder2); //Sample 1, Library 2, RG 2
+        setup(numReads, readName, 3, readGroupId3, readGroupRecord3, sample2, library3, header, setBuilder3); //Sample 2, Library 3, RG 3
+
+        final SAMFileWriter writer = new SAMFileWriterFactory()
+                .setCreateIndex(true).makeBAMWriter(header, false, tempSamFileUnsorted);
+
+        for (final SAMRecord record : setBuilder1) {
+            writer.addAlignment(record);
+        }
+        for (final SAMRecord record : setBuilder2) {
+            writer.addAlignment(record);
+        }
+        for (final SAMRecord record : setBuilder3) {
+            writer.addAlignment(record);
+        }
+        writer.close();
+
+        //sort the temp file
+        final SortSam sorter = new SortSam();
+        final String[] args = new String[]{"INPUT=" + tempSamFileUnsorted.getAbsolutePath(), "OUTPUT=" + tempSamFile.getAbsolutePath(), "SORT_ORDER=coordinate"};
+
+        sorter.instanceMain(args);
+    }
+
+    void setup(final int numReads,
+               final String readName,
+               final int ID,
+               final String readGroupId,
+               final SAMReadGroupRecord readGroupRecord,
+               final String sample,
+               final String library,
+               final SAMFileHeader header,
+               final SAMRecordSetBuilder setBuilder) throws IOException {
+
+        final String separator = ":";
+        readGroupRecord.setSample(sample);
+        readGroupRecord.setPlatform(platform);
+        readGroupRecord.setLibrary(library);
+        readGroupRecord.setPlatformUnit(readGroupId);
+        header.addReadGroup(readGroupRecord);
+        setBuilder.setReadGroup(readGroupRecord);
+        setBuilder.setUseNmFlag(true);
+
+        setBuilder.setHeader(header);
+
+        final int max = 15000;
+        final int min = 1;
+        final Random rg = new Random(5);
+
+        for (int i = 0; i < numReads; i++) {
+            final int start = rg.nextInt(max) + min;
+            final String newReadName = readName + separator + ID + separator + i;
+            setBuilder.addPair(newReadName, 0, start+ID, start+ID+99);
+        }
+    }
+
+    public String getCommandLineProgramName() {
+        return CollectGcBiasMetrics.class.getSimpleName();
+    }
+
+    @Test //test all collection levels
+    public void test() throws IOException{
+        runTest(tempSamFile);
+    }
+
+    public void runTest(final File input) throws IOException {
+        final File outfile = File.createTempFile("test", ".gc_bias_summary_metrics");
+        final File detailsOutfile = File.createTempFile("test", ".gc_bias_detail_metrics");
+        final File pdf = File.createTempFile("test", ".pdf");
+        final String referenceFile = "testdata/picard/quality/chrM.reference.fasta";
+        final int windowSize = 100;
+        final double minGenFraction = 1.0E-5;
+        final boolean biSulfiteSeq = false;
+        final boolean assumeSorted = false;
+        outfile.deleteOnExit();
+        detailsOutfile.deleteOnExit();
+        pdf.deleteOnExit();
+        final String[] args = new String[]{
+                "INPUT=" + input.getAbsolutePath(),
+                "OUTPUT=" + detailsOutfile.getAbsolutePath(),
+                "REFERENCE_SEQUENCE=" + referenceFile,
+                "SUMMARY_OUTPUT=" + outfile.getAbsolutePath(),
+                "CHART_OUTPUT=" + pdf.getAbsolutePath(),
+                "WINDOW_SIZE=" + windowSize,
+                "MINIMUM_GENOME_FRACTION=" + minGenFraction,
+                "IS_BISULFITE_SEQUENCED=" + biSulfiteSeq,
+                "LEVEL=ALL_READS",
+                "LEVEL=SAMPLE",
+                "LEVEL=READ_GROUP",
+                "ASSUME_SORTED=" + assumeSorted
+        };
+        Assert.assertEquals(runPicardCommandLine(args), 0);
+
+        final MetricsFile<GcBiasSummaryMetrics, Comparable<?>> output = new MetricsFile<GcBiasSummaryMetrics, Comparable<?>>();
+        output.read(new FileReader(outfile));
+
+        for (final GcBiasSummaryMetrics metrics : output.getMetrics()) {
+            if (metrics.ACCUMULATION_LEVEL.equals("All Reads")) { //ALL_READS level
+                Assert.assertEquals(metrics.TOTAL_CLUSTERS, 300);
+                Assert.assertEquals(metrics.ALIGNED_READS, 600);
+                Assert.assertEquals(metrics.AT_DROPOUT, 7.234062);
+                Assert.assertEquals(metrics.GC_DROPOUT, 4.086217);
+            } else if (metrics.READ_GROUP != null && metrics.READ_GROUP.equals("TestReadGroup1")) { //Library 1
+                Assert.assertEquals(metrics.TOTAL_CLUSTERS, 100);
+                Assert.assertEquals(metrics.ALIGNED_READS, 200);
+                Assert.assertEquals(metrics.AT_DROPOUT, 9.20674);
+                Assert.assertEquals(metrics.GC_DROPOUT, 3.834244);
+            } else if (metrics.READ_GROUP != null && metrics.READ_GROUP.equals("TestReadGroup2")) {//Library 2
+                Assert.assertEquals(metrics.TOTAL_CLUSTERS, 100);
+                Assert.assertEquals(metrics.ALIGNED_READS, 200);
+                Assert.assertEquals(metrics.AT_DROPOUT, 10.144505);
+                Assert.assertEquals(metrics.GC_DROPOUT, 4.08986);
+            } else if (metrics.READ_GROUP != null && metrics.READ_GROUP.equals("TestReadGroup3")) {//Library 3
+                Assert.assertEquals(metrics.TOTAL_CLUSTERS, 100);
+                Assert.assertEquals(metrics.ALIGNED_READS, 200);
+                Assert.assertEquals(metrics.AT_DROPOUT, 9.229205);
+                Assert.assertEquals(metrics.GC_DROPOUT, 4.977838);
+            } else if (metrics.SAMPLE != null && metrics.SAMPLE.equals("TestSample1")) {//Library 1 and 2
+                Assert.assertEquals(metrics.TOTAL_CLUSTERS, 200);
+                Assert.assertEquals(metrics.ALIGNED_READS, 400);
+                Assert.assertEquals(metrics.AT_DROPOUT, 7.410747);
+                Assert.assertEquals(metrics.GC_DROPOUT, 3.83986);
+            } else if (metrics.SAMPLE != null && metrics.SAMPLE.equals("TestSample2")) {//Library 3
+                Assert.assertEquals(metrics.TOTAL_CLUSTERS, 100);
+                Assert.assertEquals(metrics.ALIGNED_READS, 200);
+                Assert.assertEquals(metrics.AT_DROPOUT, 9.229205);
+                Assert.assertEquals(metrics.GC_DROPOUT, 4.977838);
+            } else {
+                Assert.fail("Unexpected metric: " + metrics);
+            }
+        }
+    }
+}
diff --git a/src/tests/java/picard/analysis/CollectInsertSizeMetricsTest.java b/src/tests/java/picard/analysis/CollectInsertSizeMetricsTest.java
new file mode 100755
index 0000000..37c2d51
--- /dev/null
+++ b/src/tests/java/picard/analysis/CollectInsertSizeMetricsTest.java
@@ -0,0 +1,226 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2010 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.analysis;
+
+import htsjdk.samtools.metrics.MetricsFile;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+import picard.cmdline.CommandLineProgramTest;
+
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+
+/**
+ * Tests multi-level CollectInsertSizeMetrics
+ */
+public class CollectInsertSizeMetricsTest extends CommandLineProgramTest {
+    private static final File TEST_DATA_DIR = new File("testdata/picard/sam/");
+
+    public String getCommandLineProgramName() {
+        return CollectInsertSizeMetrics.class.getSimpleName();
+    }
+
+    @Test
+    public void test() throws IOException {
+        final File input = new File(TEST_DATA_DIR, "insert_size_metrics_test.sam");
+        final File outfile   = File.createTempFile("test", ".insert_size_metrics");
+        final File pdf   = File.createTempFile("test", ".pdf");
+        outfile.deleteOnExit();
+        pdf.deleteOnExit();
+        final String[] args = new String[] {
+                "INPUT="  + input.getAbsolutePath(),
+                "OUTPUT=" + outfile.getAbsolutePath(),
+                "HISTOGRAM_FILE=" + pdf.getAbsolutePath()
+        };
+        Assert.assertEquals(runPicardCommandLine(args), 0);
+
+        final MetricsFile<InsertSizeMetrics, Comparable<?>> output = new MetricsFile<InsertSizeMetrics, Comparable<?>>();
+        output.read(new FileReader(outfile));
+
+        for (final InsertSizeMetrics metrics : output.getMetrics()) {
+            Assert.assertEquals(metrics.PAIR_ORIENTATION.name(), "FR");
+            if (metrics.LIBRARY==null) {  // SAMPLE or ALL_READS level
+                Assert.assertEquals((int)metrics.MEDIAN_INSERT_SIZE, 41);
+                Assert.assertEquals(metrics.MIN_INSERT_SIZE, 36);
+                Assert.assertEquals(metrics.MAX_INSERT_SIZE, 45);
+                Assert.assertEquals(metrics.READ_PAIRS, 13);
+                Assert.assertEquals(metrics.WIDTH_OF_10_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_20_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_30_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_40_PERCENT, 7);
+                Assert.assertEquals(metrics.WIDTH_OF_50_PERCENT, 7);
+                Assert.assertEquals(metrics.WIDTH_OF_60_PERCENT, 7);
+                Assert.assertEquals(metrics.WIDTH_OF_70_PERCENT, 9);
+                Assert.assertEquals(metrics.WIDTH_OF_80_PERCENT, 11);
+                Assert.assertEquals(metrics.WIDTH_OF_90_PERCENT, 11);
+                Assert.assertEquals(metrics.WIDTH_OF_99_PERCENT, 11);
+
+            }
+            else if (metrics.LIBRARY.equals("Solexa-41753")) { // one LIBRARY and one READ_GROUP
+                Assert.assertEquals((int)metrics.MEDIAN_INSERT_SIZE, 44);
+                Assert.assertEquals(metrics.MIN_INSERT_SIZE, 44);
+                Assert.assertEquals(metrics.MAX_INSERT_SIZE, 44);
+                Assert.assertEquals(metrics.READ_PAIRS, 2);
+                Assert.assertEquals(metrics.WIDTH_OF_10_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_20_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_30_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_40_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_50_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_60_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_70_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_80_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_90_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_99_PERCENT, 1);
+
+            }
+            else if (metrics.LIBRARY.equals("Solexa-41748") && metrics.READ_GROUP == null) {
+                Assert.assertEquals((int)metrics.MEDIAN_INSERT_SIZE, 40);
+                Assert.assertEquals(metrics.MIN_INSERT_SIZE, 36);
+                Assert.assertEquals(metrics.MAX_INSERT_SIZE, 45);
+                Assert.assertEquals(metrics.READ_PAIRS, 9);
+                Assert.assertEquals(metrics.WIDTH_OF_10_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_20_PERCENT, 3);
+                Assert.assertEquals(metrics.WIDTH_OF_30_PERCENT, 3);
+                Assert.assertEquals(metrics.WIDTH_OF_40_PERCENT, 3);
+                Assert.assertEquals(metrics.WIDTH_OF_50_PERCENT, 5);
+                Assert.assertEquals(metrics.WIDTH_OF_60_PERCENT, 5);
+                Assert.assertEquals(metrics.WIDTH_OF_70_PERCENT, 9);
+                Assert.assertEquals(metrics.WIDTH_OF_80_PERCENT, 9);
+                Assert.assertEquals(metrics.WIDTH_OF_90_PERCENT, 11);
+                Assert.assertEquals(metrics.WIDTH_OF_99_PERCENT, 11);
+
+            }
+            else if (metrics.LIBRARY.equals("Solexa-41734") && metrics.READ_GROUP == null) {
+                Assert.assertEquals((int)metrics.MEDIAN_INSERT_SIZE, 26);
+                Assert.assertEquals(metrics.MIN_INSERT_SIZE, 36);
+                Assert.assertEquals(metrics.MAX_INSERT_SIZE, 41);
+                Assert.assertEquals(metrics.READ_PAIRS, 9);
+                Assert.assertEquals(metrics.WIDTH_OF_10_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_20_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_30_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_40_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_50_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_60_PERCENT, 11);
+                Assert.assertEquals(metrics.WIDTH_OF_70_PERCENT, 11);
+                Assert.assertEquals(metrics.WIDTH_OF_80_PERCENT, 11);
+                Assert.assertEquals(metrics.WIDTH_OF_90_PERCENT, 11);
+                Assert.assertEquals(metrics.WIDTH_OF_99_PERCENT, 11);
+            }
+            else if (metrics.READ_GROUP.equals("62A79AAXX100907.7")) {
+                Assert.assertEquals((int)metrics.MEDIAN_INSERT_SIZE, 36);
+                Assert.assertEquals(metrics.MIN_INSERT_SIZE, 36);
+                Assert.assertEquals(metrics.MAX_INSERT_SIZE, 41);
+                Assert.assertEquals(metrics.READ_PAIRS, 4);
+                Assert.assertEquals(metrics.WIDTH_OF_10_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_20_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_30_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_40_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_50_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_60_PERCENT, 5);
+                Assert.assertEquals(metrics.WIDTH_OF_70_PERCENT, 5);
+                Assert.assertEquals(metrics.WIDTH_OF_80_PERCENT, 11);
+                Assert.assertEquals(metrics.WIDTH_OF_90_PERCENT, 11);
+                Assert.assertEquals(metrics.WIDTH_OF_99_PERCENT, 11);
+            }
+            else if (metrics.READ_GROUP.equals("62A79AAXX100907.6")) {
+                Assert.assertEquals((int)metrics.MEDIAN_INSERT_SIZE, 41);
+                Assert.assertEquals(metrics.MIN_INSERT_SIZE, 38);
+                Assert.assertEquals(metrics.MAX_INSERT_SIZE, 45);
+                Assert.assertEquals(metrics.READ_PAIRS, 5);
+                Assert.assertEquals(metrics.WIDTH_OF_10_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_20_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_30_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_40_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_50_PERCENT, 3);
+                Assert.assertEquals(metrics.WIDTH_OF_60_PERCENT, 3);
+                Assert.assertEquals(metrics.WIDTH_OF_70_PERCENT, 7);
+                Assert.assertEquals(metrics.WIDTH_OF_80_PERCENT, 7);
+                Assert.assertEquals(metrics.WIDTH_OF_90_PERCENT, 9);
+                Assert.assertEquals(metrics.WIDTH_OF_99_PERCENT, 9);
+            }
+            else if (metrics.READ_GROUP.equals("62A79AAXX100907.5")) {
+                Assert.assertEquals((int)metrics.MEDIAN_INSERT_SIZE, 41);
+                Assert.assertEquals(metrics.MIN_INSERT_SIZE, 41);
+                Assert.assertEquals(metrics.MAX_INSERT_SIZE, 41);
+                Assert.assertEquals(metrics.READ_PAIRS, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_10_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_20_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_30_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_40_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_50_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_60_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_70_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_80_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_90_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_99_PERCENT, 1);
+            }
+            else if (metrics.READ_GROUP.equals("62A79AAXX100907.3")) {
+                Assert.assertEquals((int)metrics.MEDIAN_INSERT_SIZE, 36);
+                Assert.assertEquals(metrics.MIN_INSERT_SIZE, 36);
+                Assert.assertEquals(metrics.MAX_INSERT_SIZE, 36);
+                Assert.assertEquals(metrics.READ_PAIRS, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_10_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_20_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_30_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_40_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_50_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_60_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_70_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_80_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_90_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_99_PERCENT, 1);
+            }
+            else {
+                Assert.fail("Unexpected metric: " + metrics);
+            }
+        }
+    }
+
+    /**
+     * Histogram Width was being incorrectly set causing histograms to be trimmed an removed inappropriately.
+     * See https://github.com/broadinstitute/picard/issues/253
+     * Test to be sure that the right number of histograms are being output.
+     */
+    @Test
+    public void testHistogramWidthIsSetProperly() throws IOException {
+        final File input = new File(TEST_DATA_DIR, "insert_size_metrics_test.sam");
+        final File outfile = File.createTempFile("test", ".insert_size_metrics");
+        final File pdf = File.createTempFile("test", ".pdf");
+        outfile.deleteOnExit();
+        pdf.deleteOnExit();
+        final String[] args = new String[]{
+                "INPUT=" + input.getAbsolutePath(),
+                "OUTPUT=" + outfile.getAbsolutePath(),
+                "HISTOGRAM_FILE=" + pdf.getAbsolutePath(),
+                "LEVEL=null",
+                "LEVEL=READ_GROUP"
+        };
+        Assert.assertEquals(runPicardCommandLine(args), 0);
+        final MetricsFile<InsertSizeMetrics, Comparable<?>> output = new MetricsFile<InsertSizeMetrics, Comparable<?>>();
+        output.read(new FileReader(outfile));
+
+        Assert.assertEquals(output.getAllHistograms().size(), 5);
+    }
+}
diff --git a/src/tests/java/picard/analysis/CollectMultipleMetricsTest.java b/src/tests/java/picard/analysis/CollectMultipleMetricsTest.java
new file mode 100644
index 0000000..8e8c077
--- /dev/null
+++ b/src/tests/java/picard/analysis/CollectMultipleMetricsTest.java
@@ -0,0 +1,415 @@
+package picard.analysis;
+
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMFileWriter;
+import htsjdk.samtools.SAMFileWriterFactory;
+import htsjdk.samtools.SAMReadGroupRecord;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SAMRecordSetBuilder;
+import htsjdk.samtools.SAMTextHeaderCodec;
+import htsjdk.samtools.metrics.MetricsFile;
+import htsjdk.samtools.util.BufferedLineReader;
+import org.testng.Assert;
+import org.testng.annotations.BeforeTest;
+import org.testng.annotations.Test;
+import picard.cmdline.CommandLineProgramTest;
+import picard.sam.SortSam;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.Random;
+
+/**
+ * Tests the two default "programs" that have tests in CollectMultipleMetrics
+ *
+ *
+ * @author Yossi farjoun
+ */
+
+public class CollectMultipleMetricsTest extends CommandLineProgramTest {
+
+    private static final File TEST_DATA_DIR = new File("testdata/picard/sam");
+
+    public String getCommandLineProgramName() {
+        return CollectMultipleMetrics.class.getSimpleName();
+    }
+
+
+    @Test
+    public void testAlignmentSummaryViaMultipleMetrics() throws IOException {
+        final File input = new File(TEST_DATA_DIR, "summary_alignment_stats_test.sam");
+        final File reference = new File(TEST_DATA_DIR, "summary_alignment_stats_test.fasta");
+        final File outfile   = File.createTempFile("alignmentMetrics", ".txt");
+        outfile.deleteOnExit();
+        final String[] args = new String[] {
+                "INPUT="  + input.getAbsolutePath(),
+                "OUTPUT=" + outfile.getAbsolutePath(),
+                "REFERENCE_SEQUENCE=" + reference.getAbsolutePath(),
+                "PROGRAM=null",
+                "PROGRAM="+CollectMultipleMetrics.Program.CollectAlignmentSummaryMetrics.name(),
+                "PROGRAM="+CollectMultipleMetrics.Program.CollectInsertSizeMetrics.name()
+        };
+        Assert.assertEquals(runPicardCommandLine(args), 0);
+
+        final MetricsFile<AlignmentSummaryMetrics, Comparable<?>> output = new MetricsFile<AlignmentSummaryMetrics, Comparable<?>>();
+        output.read(new FileReader(outfile));
+
+        for (final AlignmentSummaryMetrics metrics : output.getMetrics()) {
+            Assert.assertEquals(metrics.MEAN_READ_LENGTH, 101.0);
+            switch (metrics.CATEGORY) {
+                case FIRST_OF_PAIR:
+                    Assert.assertEquals(metrics.TOTAL_READS, 9);
+                    Assert.assertEquals(metrics.PF_READS, 7);
+                    Assert.assertEquals(metrics.PF_NOISE_READS, 1);
+                    Assert.assertEquals(metrics.PF_HQ_ALIGNED_READS, 3);
+                    Assert.assertEquals(metrics.PF_HQ_ALIGNED_Q20_BASES, 59);
+                    Assert.assertEquals(metrics.PF_HQ_MEDIAN_MISMATCHES, 19.0);
+                    Assert.assertEquals(metrics.PF_ALIGNED_BASES, 303);
+                    Assert.assertEquals(metrics.PF_MISMATCH_RATE, /*58D/303D*/0.191419);
+                    Assert.assertEquals(metrics.BAD_CYCLES, 19);
+                    break;
+                case SECOND_OF_PAIR:
+                    Assert.assertEquals(metrics.TOTAL_READS, 9);
+                    Assert.assertEquals(metrics.PF_READS, 9);
+                    Assert.assertEquals(metrics.PF_NOISE_READS, 1);
+                    Assert.assertEquals(metrics.PF_HQ_ALIGNED_READS, 7);
+                    Assert.assertEquals(metrics.PF_HQ_ALIGNED_Q20_BASES, 239);
+                    Assert.assertEquals(metrics.PF_HQ_MEDIAN_MISMATCHES, 3.0);
+                    Assert.assertEquals(metrics.PF_ALIGNED_BASES, 707);
+                    Assert.assertEquals(metrics.PF_MISMATCH_RATE, /*19D/707D*/0.026874);
+                    Assert.assertEquals(metrics.BAD_CYCLES, 3);
+                    break;
+                case PAIR:
+                    Assert.assertEquals(metrics.TOTAL_READS, 18);
+                    Assert.assertEquals(metrics.PF_READS, 16);
+                    Assert.assertEquals(metrics.PF_NOISE_READS, 2);
+                    Assert.assertEquals(metrics.PF_HQ_ALIGNED_READS, 10);
+                    Assert.assertEquals(metrics.PF_HQ_ALIGNED_Q20_BASES, 298);
+                    Assert.assertEquals(metrics.PF_HQ_MEDIAN_MISMATCHES, 3.0);
+                    Assert.assertEquals(metrics.PF_ALIGNED_BASES, 1010);
+                    Assert.assertEquals(metrics.PF_MISMATCH_RATE, /*77D/1010D*/0.076238);
+                    Assert.assertEquals(metrics.BAD_CYCLES, 22);
+                    break;
+                case UNPAIRED:
+                default:
+                    Assert.fail("Data does not contain this category: " + metrics.CATEGORY);
+            }
+        }
+    }
+
+    @Test
+    public void testInsertSize() throws IOException {
+        final File input = new File(TEST_DATA_DIR, "insert_size_metrics_test.sam");
+        final File outfile   = File.createTempFile("test", ".insert_size_metrics");
+        final File reference = new File(TEST_DATA_DIR, "summary_alignment_stats_test.fasta");
+        final File pdf   = File.createTempFile("test", ".pdf");
+        outfile.deleteOnExit();
+        pdf.deleteOnExit();
+        final String[] args = new String[] {
+                "INPUT="  + input.getAbsolutePath(),
+                "OUTPUT=" + outfile.getAbsolutePath(),
+                "REFERENCE_SEQUENCE=" + reference.getAbsolutePath(),
+                "PROGRAM=null",
+                "PROGRAM="+CollectMultipleMetrics.Program.CollectAlignmentSummaryMetrics.name(),
+                "PROGRAM="+CollectMultipleMetrics.Program.CollectInsertSizeMetrics.name()
+        };
+        Assert.assertEquals(runPicardCommandLine(args), 0);
+
+        final MetricsFile<InsertSizeMetrics, Comparable<?>> output = new MetricsFile<InsertSizeMetrics, Comparable<?>>();
+        output.read(new FileReader(outfile));
+
+        for (final InsertSizeMetrics metrics : output.getMetrics()) {
+            Assert.assertEquals(metrics.PAIR_ORIENTATION.name(), "FR");
+            if (metrics.LIBRARY==null) {  // SAMPLE or ALL_READS level
+                Assert.assertEquals((int)metrics.MEDIAN_INSERT_SIZE, 41);
+                Assert.assertEquals(metrics.MIN_INSERT_SIZE, 36);
+                Assert.assertEquals(metrics.MAX_INSERT_SIZE, 45);
+                Assert.assertEquals(metrics.READ_PAIRS, 13);
+                Assert.assertEquals(metrics.WIDTH_OF_10_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_20_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_30_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_40_PERCENT, 7);
+                Assert.assertEquals(metrics.WIDTH_OF_50_PERCENT, 7);
+                Assert.assertEquals(metrics.WIDTH_OF_60_PERCENT, 7);
+                Assert.assertEquals(metrics.WIDTH_OF_70_PERCENT, 9);
+                Assert.assertEquals(metrics.WIDTH_OF_80_PERCENT, 11);
+                Assert.assertEquals(metrics.WIDTH_OF_90_PERCENT, 11);
+                Assert.assertEquals(metrics.WIDTH_OF_99_PERCENT, 11);
+
+            }
+            else if (metrics.LIBRARY.equals("Solexa-41753")) { // one LIBRARY and one READ_GROUP
+                Assert.assertEquals((int)metrics.MEDIAN_INSERT_SIZE, 44);
+                Assert.assertEquals(metrics.MIN_INSERT_SIZE, 44);
+                Assert.assertEquals(metrics.MAX_INSERT_SIZE, 44);
+                Assert.assertEquals(metrics.READ_PAIRS, 2);
+                Assert.assertEquals(metrics.WIDTH_OF_10_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_20_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_30_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_40_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_50_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_60_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_70_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_80_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_90_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_99_PERCENT, 1);
+
+            }
+            else if (metrics.LIBRARY.equals("Solexa-41748") && metrics.READ_GROUP == null) {
+                Assert.assertEquals((int)metrics.MEDIAN_INSERT_SIZE, 40);
+                Assert.assertEquals(metrics.MIN_INSERT_SIZE, 36);
+                Assert.assertEquals(metrics.MAX_INSERT_SIZE, 45);
+                Assert.assertEquals(metrics.READ_PAIRS, 9);
+                Assert.assertEquals(metrics.WIDTH_OF_10_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_20_PERCENT, 3);
+                Assert.assertEquals(metrics.WIDTH_OF_30_PERCENT, 3);
+                Assert.assertEquals(metrics.WIDTH_OF_40_PERCENT, 3);
+                Assert.assertEquals(metrics.WIDTH_OF_50_PERCENT, 5);
+                Assert.assertEquals(metrics.WIDTH_OF_60_PERCENT, 5);
+                Assert.assertEquals(metrics.WIDTH_OF_70_PERCENT, 9);
+                Assert.assertEquals(metrics.WIDTH_OF_80_PERCENT, 9);
+                Assert.assertEquals(metrics.WIDTH_OF_90_PERCENT, 11);
+                Assert.assertEquals(metrics.WIDTH_OF_99_PERCENT, 11);
+
+            }
+            else if (metrics.LIBRARY.equals("Solexa-41734") && metrics.READ_GROUP == null) {
+                Assert.assertEquals((int)metrics.MEDIAN_INSERT_SIZE, 26);
+                Assert.assertEquals(metrics.MIN_INSERT_SIZE, 36);
+                Assert.assertEquals(metrics.MAX_INSERT_SIZE, 41);
+                Assert.assertEquals(metrics.READ_PAIRS, 9);
+                Assert.assertEquals(metrics.WIDTH_OF_10_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_20_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_30_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_40_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_50_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_60_PERCENT, 11);
+                Assert.assertEquals(metrics.WIDTH_OF_70_PERCENT, 11);
+                Assert.assertEquals(metrics.WIDTH_OF_80_PERCENT, 11);
+                Assert.assertEquals(metrics.WIDTH_OF_90_PERCENT, 11);
+                Assert.assertEquals(metrics.WIDTH_OF_99_PERCENT, 11);
+            }
+            else if (metrics.READ_GROUP.equals("62A79AAXX100907.7")) {
+                Assert.assertEquals((int)metrics.MEDIAN_INSERT_SIZE, 36);
+                Assert.assertEquals(metrics.MIN_INSERT_SIZE, 36);
+                Assert.assertEquals(metrics.MAX_INSERT_SIZE, 41);
+                Assert.assertEquals(metrics.READ_PAIRS, 4);
+                Assert.assertEquals(metrics.WIDTH_OF_10_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_20_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_30_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_40_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_50_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_60_PERCENT, 5);
+                Assert.assertEquals(metrics.WIDTH_OF_70_PERCENT, 5);
+                Assert.assertEquals(metrics.WIDTH_OF_80_PERCENT, 11);
+                Assert.assertEquals(metrics.WIDTH_OF_90_PERCENT, 11);
+                Assert.assertEquals(metrics.WIDTH_OF_99_PERCENT, 11);
+            }
+            else if (metrics.READ_GROUP.equals("62A79AAXX100907.6")) {
+                Assert.assertEquals((int)metrics.MEDIAN_INSERT_SIZE, 41);
+                Assert.assertEquals(metrics.MIN_INSERT_SIZE, 38);
+                Assert.assertEquals(metrics.MAX_INSERT_SIZE, 45);
+                Assert.assertEquals(metrics.READ_PAIRS, 5);
+                Assert.assertEquals(metrics.WIDTH_OF_10_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_20_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_30_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_40_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_50_PERCENT, 3);
+                Assert.assertEquals(metrics.WIDTH_OF_60_PERCENT, 3);
+                Assert.assertEquals(metrics.WIDTH_OF_70_PERCENT, 7);
+                Assert.assertEquals(metrics.WIDTH_OF_80_PERCENT, 7);
+                Assert.assertEquals(metrics.WIDTH_OF_90_PERCENT, 9);
+                Assert.assertEquals(metrics.WIDTH_OF_99_PERCENT, 9);
+            }
+            else if (metrics.READ_GROUP.equals("62A79AAXX100907.5")) {
+                Assert.assertEquals((int)metrics.MEDIAN_INSERT_SIZE, 41);
+                Assert.assertEquals(metrics.MIN_INSERT_SIZE, 41);
+                Assert.assertEquals(metrics.MAX_INSERT_SIZE, 41);
+                Assert.assertEquals(metrics.READ_PAIRS, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_10_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_20_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_30_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_40_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_50_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_60_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_70_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_80_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_90_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_99_PERCENT, 1);
+            }
+            else if (metrics.READ_GROUP.equals("62A79AAXX100907.3")) {
+                Assert.assertEquals((int)metrics.MEDIAN_INSERT_SIZE, 36);
+                Assert.assertEquals(metrics.MIN_INSERT_SIZE, 36);
+                Assert.assertEquals(metrics.MAX_INSERT_SIZE, 36);
+                Assert.assertEquals(metrics.READ_PAIRS, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_10_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_20_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_30_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_40_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_50_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_60_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_70_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_80_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_90_PERCENT, 1);
+                Assert.assertEquals(metrics.WIDTH_OF_99_PERCENT, 1);
+            }
+            else {
+                Assert.fail("Unexpected metric: " + metrics);
+            }
+        }
+    }
+    @Test //test all gcBias collection levels
+    public void testGcBiasMetrics() throws IOException{
+        runGcTest(tempSamFile);
+    }
+
+    public void runGcTest(final File input) throws IOException {
+        final File outfile = File.createTempFile("test", ".gc_bias_summary_metrics");
+        final String referenceFile = "testdata/picard/quality/chrM.reference.fasta";
+        outfile.deleteOnExit();
+        final String[] args = new String[]{
+                "INPUT=" + input.getAbsolutePath(),
+                "OUTPUT=" + outfile.getAbsolutePath(),
+                "REFERENCE_SEQUENCE=" + referenceFile,
+                "PROGRAM=null",
+                "PROGRAM="+CollectMultipleMetrics.Program.CollectAlignmentSummaryMetrics.name(),
+                "PROGRAM="+CollectMultipleMetrics.Program.CollectInsertSizeMetrics.name(),
+                "PROGRAM="+CollectMultipleMetrics.Program.CollectGcBiasMetrics.name()
+        };
+        Assert.assertEquals(runPicardCommandLine(args), 0);
+
+        final MetricsFile<GcBiasSummaryMetrics, Comparable<?>> output = new MetricsFile<GcBiasSummaryMetrics, Comparable<?>>();
+        output.read(new FileReader(outfile));
+
+        for (final GcBiasSummaryMetrics metrics : output.getMetrics()) {
+            if (metrics.ACCUMULATION_LEVEL.equals("All Reads")) { //ALL_READS level
+                Assert.assertEquals(metrics.TOTAL_CLUSTERS, 300);
+                Assert.assertEquals(metrics.ALIGNED_READS, 600);
+                Assert.assertEquals(metrics.AT_DROPOUT, 7.234062);
+                Assert.assertEquals(metrics.GC_DROPOUT, 4.086217);
+            } else if (metrics.READ_GROUP != null && metrics.READ_GROUP.equals("TestReadGroup1")) { //Library 1
+                Assert.assertEquals(metrics.TOTAL_CLUSTERS, 100);
+                Assert.assertEquals(metrics.ALIGNED_READS, 200);
+                Assert.assertEquals(metrics.AT_DROPOUT, 9.20674);
+                Assert.assertEquals(metrics.GC_DROPOUT, 3.834244);
+            } else if (metrics.READ_GROUP != null && metrics.READ_GROUP.equals("TestReadGroup2")) {//Library 2
+                Assert.assertEquals(metrics.TOTAL_CLUSTERS, 100);
+                Assert.assertEquals(metrics.ALIGNED_READS, 200);
+                Assert.assertEquals(metrics.AT_DROPOUT, 10.144505);
+                Assert.assertEquals(metrics.GC_DROPOUT, 4.08986);
+            } else if (metrics.READ_GROUP != null && metrics.READ_GROUP.equals("TestReadGroup3")) {//Library 3
+                Assert.assertEquals(metrics.TOTAL_CLUSTERS, 100);
+                Assert.assertEquals(metrics.ALIGNED_READS, 200);
+                Assert.assertEquals(metrics.AT_DROPOUT, 9.229205);
+                Assert.assertEquals(metrics.GC_DROPOUT, 4.977838);
+            } else {
+                Assert.fail("Unexpected metric: " + metrics);
+            }
+        }
+    }
+
+    //gcBias multi level collector test creates a sam file from chrM for testing purposes
+    //more variables needed for gcbias test to create temp sam file
+    private final static String sample1 = "TestSample1";
+    private final static String sample2 = "TestSample2";
+    private final static String readGroupId1 = "TestReadGroup1";
+    private final static String readGroupId2 = "TestReadGroup2";
+    private final static String readGroupId3 = "TestReadGroup3";
+    private final static String platform = "ILLUMINA";
+    private final static String library1 = "TestLibrary1";
+    private final static String library2 = "TestLibrary2";
+    private final static String library3 = "TestLibrary3";
+
+    private final static File TEST_DIR = new File("testdata/picard/sam/CollectGcBiasMetrics/");
+    private final File dict = new File(TEST_DIR, "Mheader.dict");
+
+    private File tempSamFile;
+
+    private final SAMRecordSetBuilder setBuilder1 = new SAMRecordSetBuilder(true, SAMFileHeader.SortOrder.coordinate);
+    private final SAMRecordSetBuilder setBuilder2 = new SAMRecordSetBuilder(true, SAMFileHeader.SortOrder.coordinate);
+    private final SAMRecordSetBuilder setBuilder3 = new SAMRecordSetBuilder(true, SAMFileHeader.SortOrder.coordinate);
+    private final SAMReadGroupRecord readGroupRecord1 = new SAMReadGroupRecord(readGroupId1);
+    private final SAMReadGroupRecord readGroupRecord2 = new SAMReadGroupRecord(readGroupId2);
+    private final SAMReadGroupRecord readGroupRecord3 = new SAMReadGroupRecord(readGroupId3);
+
+    //create a samfile with different samples, read groups and libraries that overlap for testing.
+    @BeforeTest
+    void setupBuilder() throws IOException {
+        final int numReads = 100;
+        final String flowCellBarcode = "TESTBARCODE";
+
+        tempSamFile = File.createTempFile("CollectGcBias", ".bam", TEST_DIR);
+        final File tempSamFileUnsorted = File.createTempFile("CollectGcBias", ".bam", TEST_DIR);
+        tempSamFileUnsorted.deleteOnExit();
+        tempSamFile.deleteOnExit();
+
+        BufferedLineReader bufferedLineReader = null;
+        try {
+            bufferedLineReader = new BufferedLineReader(new FileInputStream(dict));
+        } catch (FileNotFoundException e) {
+            e.printStackTrace();
+        }
+
+        final SAMTextHeaderCodec codec = new SAMTextHeaderCodec();
+        final SAMFileHeader header = codec.decode(bufferedLineReader, dict.toString());
+        header.setSortOrder(SAMFileHeader.SortOrder.unsorted);
+
+        //build different levels to put into the same bam file for testing multi level collection
+        setup(numReads, flowCellBarcode, 1, readGroupId1, readGroupRecord1, sample1, library1, header, setBuilder1); //Sample 1, Library 1, RG 1
+        setup(numReads, flowCellBarcode, 2, readGroupId2, readGroupRecord2, sample1, library2, header, setBuilder2); //Sample 1, Library 2, RG 2
+        setup(numReads, flowCellBarcode, 3, readGroupId3, readGroupRecord3, sample2, library3, header, setBuilder3); //Sample 2, Library 3, RG 3
+
+        final SAMFileWriter writer = new SAMFileWriterFactory()
+                .setCreateIndex(true).makeBAMWriter(header, false, tempSamFileUnsorted);
+
+        for (final SAMRecord record : setBuilder1) {
+            writer.addAlignment(record);
+        }
+        for (final SAMRecord record : setBuilder2) {
+            writer.addAlignment(record);
+        }
+        for (final SAMRecord record : setBuilder3) {
+            writer.addAlignment(record);
+        }
+        writer.close();
+
+        //sort the temp file
+        final SortSam sorter = new SortSam();
+        final String[] args = new String[]{"INPUT=" + tempSamFileUnsorted.getAbsolutePath(), "OUTPUT=" + tempSamFile.getAbsolutePath(), "SORT_ORDER=coordinate"};
+
+        sorter.instanceMain(args);
+    }
+    void setup(final int numReads,
+               final String readName,
+               final int ID,
+               final String readGroupId,
+               final SAMReadGroupRecord readGroupRecord,
+               final String sample,
+               final String library,
+               final SAMFileHeader header,
+               final SAMRecordSetBuilder setBuilder) throws IOException {
+
+        final String separator = ":";
+        readGroupRecord.setSample(sample);
+        readGroupRecord.setPlatform(platform);
+        readGroupRecord.setLibrary(library);
+        readGroupRecord.setPlatformUnit(readGroupId);
+        header.addReadGroup(readGroupRecord);
+        setBuilder.setReadGroup(readGroupRecord);
+        setBuilder.setUseNmFlag(true);
+
+        setBuilder.setHeader(header);
+
+        final int max = 15000;
+        final int min = 1;
+        final Random rg = new Random(5);
+
+        for (int i = 0; i < numReads; i++) {
+            final int start = rg.nextInt(max) + min;
+            final String newReadName = readName + separator + ID + separator + i;
+            setBuilder.addPair(newReadName, 0, start+ID, start+ID+99);
+        }
+    }
+
+}
\ No newline at end of file
diff --git a/src/tests/java/picard/analysis/CollectRnaSeqMetricsTest.java b/src/tests/java/picard/analysis/CollectRnaSeqMetricsTest.java
new file mode 100644
index 0000000..72dba84
--- /dev/null
+++ b/src/tests/java/picard/analysis/CollectRnaSeqMetricsTest.java
@@ -0,0 +1,241 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.analysis;
+
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMFileWriter;
+import htsjdk.samtools.SAMFileWriterFactory;
+import htsjdk.samtools.SAMReadGroupRecord;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SAMRecordSetBuilder;
+import htsjdk.samtools.metrics.MetricsFile;
+import htsjdk.samtools.util.Interval;
+import htsjdk.samtools.util.IntervalList;
+import htsjdk.samtools.util.StringUtil;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+import picard.cmdline.CommandLineProgramTest;
+import picard.annotation.RefFlatReader.RefFlatColumns;
+
+import java.io.File;
+import java.io.FileReader;
+import java.io.PrintStream;
+
+public class CollectRnaSeqMetricsTest extends CommandLineProgramTest {
+    public String getCommandLineProgramName() {
+        return CollectRnaSeqMetrics.class.getSimpleName();
+    }
+
+    @Test
+    public void basic() throws Exception {
+        final String sequence = "chr1";
+        final String ignoredSequence = "chrM";
+
+        // Create some alignments that hit the ribosomal sequence, various parts of the gene, and intergenic.
+        final SAMRecordSetBuilder builder = new SAMRecordSetBuilder(true, SAMFileHeader.SortOrder.coordinate);
+        // Set seed so that strandedness is consistent among runs.
+        builder.setRandomSeed(0);
+        final int sequenceIndex = builder.getHeader().getSequenceIndex(sequence);
+        builder.addPair("pair1", sequenceIndex, 45, 475);
+        builder.addPair("pair2", sequenceIndex, 90, 225);
+        builder.addPair("pair3", sequenceIndex, 120, 600);
+        builder.addFrag("frag1", sequenceIndex, 150, true);
+        builder.addFrag("frag2", sequenceIndex, 450, true);
+        builder.addFrag("frag3", sequenceIndex, 225, false);
+        builder.addPair("rrnaPair", sequenceIndex, 400, 500);
+
+        builder.addFrag("ignoredFrag", builder.getHeader().getSequenceIndex(ignoredSequence), 1, false);
+
+        final File samFile = File.createTempFile("tmp.collectRnaSeqMetrics.", ".sam");
+        final SAMFileWriter samWriter = new SAMFileWriterFactory().makeSAMWriter(builder.getHeader(), false, samFile);
+        for (final SAMRecord rec: builder.getRecords()) samWriter.addAlignment(rec);
+        samWriter.close();
+
+        // Create an interval list with one ribosomal interval.
+        final Interval rRnaInterval = new Interval(sequence, 300, 520, true, "rRNA");
+        final IntervalList rRnaIntervalList = new IntervalList(builder.getHeader());
+        rRnaIntervalList.add(rRnaInterval);
+        final File rRnaIntervalsFile = File.createTempFile("tmp.rRna.", ".interval_list");
+        rRnaIntervalsFile.deleteOnExit();
+        rRnaIntervalList.write(rRnaIntervalsFile);
+
+        // Generate the metrics.
+        final File metricsFile = File.createTempFile("tmp.", ".rna_metrics");
+
+        final String[] args = new String[] {
+                "INPUT=" +               samFile.getAbsolutePath(),
+                "OUTPUT=" +              metricsFile.getAbsolutePath(),
+                "REF_FLAT=" +            getRefFlatFile(sequence).getAbsolutePath(),
+                "RIBOSOMAL_INTERVALS=" + rRnaIntervalsFile.getAbsolutePath(),
+                "STRAND_SPECIFICITY=SECOND_READ_TRANSCRIPTION_STRAND",
+                "IGNORE_SEQUENCE=" +ignoredSequence
+        };
+        Assert.assertEquals(runPicardCommandLine(args), 0);
+
+        final MetricsFile<RnaSeqMetrics, Comparable<?>> output = new MetricsFile<RnaSeqMetrics, Comparable<?>>();
+        output.read(new FileReader(metricsFile));
+
+        final RnaSeqMetrics metrics = output.getMetrics().get(0);
+        Assert.assertEquals(metrics.PF_ALIGNED_BASES, 396);
+        Assert.assertEquals(metrics.PF_BASES, 432);
+        Assert.assertEquals(metrics.RIBOSOMAL_BASES.longValue(), 108L);
+        Assert.assertEquals(metrics.CODING_BASES, 136);
+        Assert.assertEquals(metrics.UTR_BASES, 51);
+        Assert.assertEquals(metrics.INTRONIC_BASES, 50);
+        Assert.assertEquals(metrics.INTERGENIC_BASES, 51);
+        Assert.assertEquals(metrics.CORRECT_STRAND_READS, 3);
+        Assert.assertEquals(metrics.INCORRECT_STRAND_READS, 4);
+        Assert.assertEquals(metrics.IGNORED_READS, 1);
+    }
+
+    @Test
+    public void testMultiLevel() throws Exception {
+        final String sequence = "chr1";
+        final String ignoredSequence = "chrM";
+
+        // Create some alignments that hit the ribosomal sequence, various parts of the gene, and intergenic.
+        final SAMRecordSetBuilder builder = new SAMRecordSetBuilder(true, SAMFileHeader.SortOrder.coordinate, false);
+        // Set seed so that strandedness is consistent among runs.
+        builder.setRandomSeed(0);
+        final int sequenceIndex = builder.getHeader().getSequenceIndex(sequence);
+        final SAMReadGroupRecord rg1 = new SAMReadGroupRecord("2");
+        rg1.setSample("Sample");
+        rg1.setLibrary("foo");
+        builder.setReadGroup(rg1);
+        builder.addPair("pair1", sequenceIndex, 45, 475);
+        builder.addPair("pair2", sequenceIndex, 90, 225);
+        builder.addFrag("frag1", sequenceIndex, 150, true);
+        builder.addFrag("frag2", sequenceIndex, 450, true);
+
+        final SAMReadGroupRecord rg2 = new SAMReadGroupRecord("3");
+        rg2.setSample("Sample");
+        rg2.setLibrary("bar");
+        builder.setReadGroup(rg2);
+        builder.addPair("pair3", sequenceIndex, 120, 600);
+        builder.addFrag("frag3", sequenceIndex, 225, false);
+        builder.addPair("rrnaPair", sequenceIndex, 400, 500);
+
+        builder.addFrag("ignoredFrag", builder.getHeader().getSequenceIndex(ignoredSequence), 1, false);
+
+        final File samFile = File.createTempFile("tmp.collectRnaSeqMetrics.", ".sam");
+        final SAMFileWriter samWriter = new SAMFileWriterFactory().makeSAMWriter(builder.getHeader(), false, samFile);
+        for (final SAMRecord rec: builder.getRecords()) samWriter.addAlignment(rec);
+        samWriter.close();
+
+        // Create an interval list with one ribosomal interval.
+        final Interval rRnaInterval = new Interval(sequence, 300, 520, true, "rRNA");
+        final IntervalList rRnaIntervalList = new IntervalList(builder.getHeader());
+        rRnaIntervalList.add(rRnaInterval);
+        final File rRnaIntervalsFile = File.createTempFile("tmp.rRna.", ".interval_list");
+        rRnaIntervalsFile.deleteOnExit();
+        rRnaIntervalList.write(rRnaIntervalsFile);
+
+        // Generate the metrics.
+        final File metricsFile = File.createTempFile("tmp.", ".rna_metrics");
+
+        final String[] args = new String[] {
+                "INPUT=" +               samFile.getAbsolutePath(),
+                "OUTPUT=" +              metricsFile.getAbsolutePath(),
+                "REF_FLAT=" +            getRefFlatFile(sequence).getAbsolutePath(),
+                "RIBOSOMAL_INTERVALS=" + rRnaIntervalsFile.getAbsolutePath(),
+                "STRAND_SPECIFICITY=SECOND_READ_TRANSCRIPTION_STRAND",
+                "IGNORE_SEQUENCE=" +ignoredSequence,
+                "LEVEL=null",
+                "LEVEL=SAMPLE",
+                "LEVEL=LIBRARY"
+        };
+        Assert.assertEquals(runPicardCommandLine(args), 0);
+
+        final MetricsFile<RnaSeqMetrics, Comparable<?>> output = new MetricsFile<RnaSeqMetrics, Comparable<?>>();
+        output.read(new FileReader(metricsFile));
+
+        for (final RnaSeqMetrics metrics : output.getMetrics()) {
+            if (metrics.LIBRARY == null) {
+                Assert.assertEquals(metrics.PF_ALIGNED_BASES, 396);
+                Assert.assertEquals(metrics.PF_BASES, 432);
+                Assert.assertEquals(metrics.RIBOSOMAL_BASES.longValue(), 108L);
+                Assert.assertEquals(metrics.CODING_BASES, 136);
+                Assert.assertEquals(metrics.UTR_BASES, 51);
+                Assert.assertEquals(metrics.INTRONIC_BASES, 50);
+                Assert.assertEquals(metrics.INTERGENIC_BASES, 51);
+                Assert.assertEquals(metrics.CORRECT_STRAND_READS, 3);
+                Assert.assertEquals(metrics.INCORRECT_STRAND_READS, 4);
+                Assert.assertEquals(metrics.IGNORED_READS, 1);
+            }
+            else if (metrics.LIBRARY.equals("foo")) {
+                Assert.assertEquals(metrics.PF_ALIGNED_BASES, 216);
+                Assert.assertEquals(metrics.PF_BASES, 216);
+                Assert.assertEquals(metrics.RIBOSOMAL_BASES.longValue(), 36L);
+                Assert.assertEquals(metrics.CODING_BASES, 89);
+                Assert.assertEquals(metrics.UTR_BASES, 51);
+                Assert.assertEquals(metrics.INTRONIC_BASES, 25);
+                Assert.assertEquals(metrics.INTERGENIC_BASES, 15);
+                Assert.assertEquals(metrics.CORRECT_STRAND_READS, 3);
+                Assert.assertEquals(metrics.INCORRECT_STRAND_READS, 2);
+                Assert.assertEquals(metrics.IGNORED_READS, 0);
+
+            }
+            else if (metrics.LIBRARY.equals("bar")) {
+                Assert.assertEquals(metrics.PF_ALIGNED_BASES, 180);
+                Assert.assertEquals(metrics.PF_BASES, 216);
+                Assert.assertEquals(metrics.RIBOSOMAL_BASES.longValue(), 72L);
+                Assert.assertEquals(metrics.CODING_BASES, 47);
+                Assert.assertEquals(metrics.UTR_BASES, 0);
+                Assert.assertEquals(metrics.INTRONIC_BASES, 25);
+                Assert.assertEquals(metrics.INTERGENIC_BASES, 36);
+                Assert.assertEquals(metrics.CORRECT_STRAND_READS, 0);
+                Assert.assertEquals(metrics.INCORRECT_STRAND_READS, 2);
+                Assert.assertEquals(metrics.IGNORED_READS, 1);
+
+            }
+        }
+    }
+
+
+    public File getRefFlatFile(String sequence) throws Exception {
+        // Create a refFlat file with a single gene containing two exons, one of which is overlapped by the
+        // ribosomal interval.
+        final String[] refFlatFields = new String[RefFlatColumns.values().length];
+        refFlatFields[RefFlatColumns.GENE_NAME.ordinal()] = "myGene";
+        refFlatFields[RefFlatColumns.TRANSCRIPT_NAME.ordinal()] = "myTranscript";
+        refFlatFields[RefFlatColumns.CHROMOSOME.ordinal()] = sequence;
+        refFlatFields[RefFlatColumns.STRAND.ordinal()] = "+";
+        refFlatFields[RefFlatColumns.TX_START.ordinal()] = "49";
+        refFlatFields[RefFlatColumns.TX_END.ordinal()] = "500";
+        refFlatFields[RefFlatColumns.CDS_START.ordinal()] = "74";
+        refFlatFields[RefFlatColumns.CDS_END.ordinal()] = "400";
+        refFlatFields[RefFlatColumns.EXON_COUNT.ordinal()] = "2";
+        refFlatFields[RefFlatColumns.EXON_STARTS.ordinal()] = "49,249";
+        refFlatFields[RefFlatColumns.EXON_ENDS.ordinal()] = "200,500";
+
+        final File refFlatFile = File.createTempFile("tmp.", ".refFlat");
+        refFlatFile.deleteOnExit();
+        final PrintStream refFlatStream = new PrintStream(refFlatFile);
+        refFlatStream.println(StringUtil.join("\t", refFlatFields));
+        refFlatStream.close();
+
+        return refFlatFile;
+    }
+
+}
diff --git a/src/tests/java/picard/analysis/MultiLevelCollectorTest.java b/src/tests/java/picard/analysis/MultiLevelCollectorTest.java
new file mode 100644
index 0000000..5a3fc3f
--- /dev/null
+++ b/src/tests/java/picard/analysis/MultiLevelCollectorTest.java
@@ -0,0 +1,195 @@
+package picard.analysis;
+
+
+import htsjdk.samtools.SAMReadGroupRecord;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.metrics.MetricsFile;
+import htsjdk.samtools.reference.ReferenceSequence;
+import htsjdk.samtools.util.CloserUtil;
+import org.testng.Assert;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import picard.metrics.MultiLevelCollector;
+import picard.metrics.MultilevelMetrics;
+import picard.metrics.PerUnitMetricCollector;
+
+import java.io.File;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import static htsjdk.samtools.util.CollectionUtil.makeSet;
+
+public class MultiLevelCollectorTest {
+
+    public static File TESTFILE = new File("testdata/picard/sam/summary_alignment_stats_test_multiple.sam");
+
+    public String noneOrStr(final String str) {
+        final String out;
+        if(str == null) {
+            out = "";
+        } else {
+            out = str;
+        }
+        return out;
+    }
+
+    class TestArg {
+        public final SAMRecord samRecord;
+        public final ReferenceSequence refSeq;
+
+        public TestArg(final SAMRecord samRecord, final ReferenceSequence refSeq) {
+            this.samRecord = samRecord;
+            this.refSeq    = refSeq;
+        }
+    }
+
+    /** We will just Tally up the number of times records were added to this metric and change FINISHED
+     * to true when FINISHED is called
+     */
+    class TotalNumberMetric extends MultilevelMetrics {
+        /** The number of these encountered **/
+        public Integer TALLY = 0;
+        public boolean FINISHED = false;
+    }
+
+    class RecordCountMultiLevelCollector extends MultiLevelCollector<TotalNumberMetric, Integer, TestArg> {
+
+        public RecordCountMultiLevelCollector(final Set<MetricAccumulationLevel> accumulationLevels, final List<SAMReadGroupRecord> samRgRecords) {
+            setup(accumulationLevels, samRgRecords);
+        }
+
+        //The number of times records were accepted by a RecordCountPerUnitCollectors (note since the same
+        //samRecord might be aggregated by multiple PerUnit collectors, this may be greater than the number of
+        //records in the file
+        private int numProcessed = 0;
+
+        public int getNumProcessed() {
+            return numProcessed;
+        }
+
+        private final Map<String, TotalNumberMetric> unitsToMetrics = new HashMap<String, TotalNumberMetric>();
+
+        public Map<String, TotalNumberMetric> getUnitsToMetrics() {
+            return unitsToMetrics;
+        }
+
+        @Override
+        protected TestArg makeArg(final SAMRecord samRec, final ReferenceSequence refSeq) {
+            return new TestArg(samRec, refSeq);
+        }
+
+        @Override
+        protected PerUnitMetricCollector<TotalNumberMetric, Integer, TestArg> makeChildCollector(final String sample, final String library, final String readGroup) {
+            return new RecordCountPerUnitCollector(sample, library, readGroup);
+        }
+
+        private class RecordCountPerUnitCollector implements PerUnitMetricCollector<TotalNumberMetric, Integer, TestArg>{
+            private final TotalNumberMetric metric;
+
+            public RecordCountPerUnitCollector(final String sample, final String library, final String readGroup) {
+                metric = new TotalNumberMetric();
+                metric.SAMPLE     = sample;
+                metric.LIBRARY    = library;
+                metric.READ_GROUP = readGroup;
+                unitsToMetrics.put(noneOrStr(sample) + "_" + noneOrStr(library) + "_" + noneOrStr(readGroup), metric);
+            }
+
+            @Override
+            public void acceptRecord(final TestArg args) {
+                numProcessed += 1;
+                metric.TALLY += 1;
+                if(metric.SAMPLE != null) {
+                    Assert.assertEquals(metric.SAMPLE, args.samRecord.getReadGroup().getSample());
+                }
+                if(metric.LIBRARY != null) {
+                    Assert.assertEquals(metric.LIBRARY, args.samRecord.getReadGroup().getLibrary());
+                }
+
+                if(metric.READ_GROUP != null) {
+                    Assert.assertEquals(metric.READ_GROUP, args.samRecord.getReadGroup().getPlatformUnit());
+                }
+            }
+
+            @Override
+            public void finish() {
+                metric.FINISHED = true;
+            }
+
+            @Override
+            public void addMetricsToFile(final MetricsFile<TotalNumberMetric, Integer> totalNumberMetricIntegerMetricsFile) {
+                totalNumberMetricIntegerMetricsFile.addMetric(metric);
+            }
+        }
+    }
+
+    public static final Map<MetricAccumulationLevel, Map<String, Integer>> accumulationLevelToPerUnitReads = new HashMap<MetricAccumulationLevel, Map<String, Integer>>();
+    static {
+        HashMap<String, Integer> curMap = new HashMap<String, Integer>();
+        curMap.put("__", 19);
+        accumulationLevelToPerUnitReads.put(MetricAccumulationLevel.ALL_READS, curMap);
+
+        curMap = new HashMap<String, Integer>();
+        curMap.put("Ma__", 10);
+        curMap.put("Pa__", 9);
+        accumulationLevelToPerUnitReads.put(MetricAccumulationLevel.SAMPLE, curMap);
+
+        curMap = new HashMap<String, Integer>();
+        curMap.put("Ma_whatever_", 10);
+        curMap.put("Pa_lib1_",     4);
+        curMap.put("Pa_lib2_",     5);
+        accumulationLevelToPerUnitReads.put(MetricAccumulationLevel.LIBRARY, curMap);
+
+
+        curMap = new HashMap<String, Integer>();
+        curMap.put("Ma_whatever_me",     10);
+        curMap.put("Pa_lib1_myself", 4);
+        curMap.put("Pa_lib2_i",      3);
+        curMap.put("Pa_lib2_i2",     2);
+        accumulationLevelToPerUnitReads.put(MetricAccumulationLevel.READ_GROUP, curMap);
+    }
+
+    @DataProvider(name = "variedAccumulationLevels")
+    public Object [][] variedAccumulationLevels() {
+        return new Object[][] {
+            {makeSet(MetricAccumulationLevel.ALL_READS)},
+            {makeSet(MetricAccumulationLevel.ALL_READS,    MetricAccumulationLevel.SAMPLE)},
+            {makeSet(MetricAccumulationLevel.SAMPLE,       MetricAccumulationLevel.LIBRARY)},
+            {makeSet(MetricAccumulationLevel.READ_GROUP,   MetricAccumulationLevel.LIBRARY)},
+            {makeSet(MetricAccumulationLevel.SAMPLE,       MetricAccumulationLevel.LIBRARY, MetricAccumulationLevel.READ_GROUP)},
+            {makeSet(MetricAccumulationLevel.SAMPLE,       MetricAccumulationLevel.LIBRARY, MetricAccumulationLevel.READ_GROUP, MetricAccumulationLevel.ALL_READS)},
+        };
+    }
+
+    @Test(dataProvider = "variedAccumulationLevels")
+    public void multilevelCollectorTest(final Set<MetricAccumulationLevel> accumulationLevels) {
+        final SamReader in = SamReaderFactory.makeDefault().open(TESTFILE);
+        final RecordCountMultiLevelCollector collector = new RecordCountMultiLevelCollector(accumulationLevels, in.getFileHeader().getReadGroups());
+
+        for (final SAMRecord rec : in) {
+            collector.acceptRecord(rec, null);
+        }
+
+        collector.finish();
+
+        int totalProcessed = 0;
+        int totalMetrics = 0;
+        for(final MetricAccumulationLevel level : accumulationLevels) {
+            final Map<String, Integer> keyToMetrics = accumulationLevelToPerUnitReads.get(level);
+            for(final Map.Entry<String, Integer> entry : keyToMetrics.entrySet()) {
+                final TotalNumberMetric metric = collector.getUnitsToMetrics().get(entry.getKey());
+                Assert.assertEquals(entry.getValue(), metric.TALLY);
+                Assert.assertTrue(metric.FINISHED);
+                totalProcessed += metric.TALLY;
+                totalMetrics   += 1;
+            }
+        }
+
+        Assert.assertEquals(collector.getUnitsToMetrics().size(), totalMetrics);
+        Assert.assertEquals(totalProcessed, collector.getNumProcessed());
+        CloserUtil.close(in);
+    }
+}
diff --git a/src/tests/java/picard/analysis/artifacts/CollectSequencingArtifactMetricsTest.java b/src/tests/java/picard/analysis/artifacts/CollectSequencingArtifactMetricsTest.java
new file mode 100644
index 0000000..7e10d71
--- /dev/null
+++ b/src/tests/java/picard/analysis/artifacts/CollectSequencingArtifactMetricsTest.java
@@ -0,0 +1,112 @@
+package picard.analysis.artifacts;
+
+import htsjdk.samtools.metrics.MetricsFile;
+import htsjdk.samtools.util.IOUtil;
+import org.testng.Assert;
+import org.testng.annotations.AfterTest;
+import org.testng.annotations.BeforeTest;
+import org.testng.annotations.Test;
+import picard.cmdline.CommandLineProgramTest;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+public class CollectSequencingArtifactMetricsTest extends CommandLineProgramTest {
+
+    private static final File TEST_DIR = new File("testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics");
+    private static final File REFERENCE = new File(TEST_DIR, "test.fasta");
+    private static final File TEST_SAM = new File(TEST_DIR, "test.sam");
+    private static final File DB_SNP = new File(TEST_DIR, "test.dbsnp.vcf");
+    private static final File INTERVALS = new File(TEST_DIR, "test.interval_list");
+    private static final File TEST_CASES = new File(TEST_DIR, "ExpectedMetricsOutput");
+
+    private File globalTempOutputDir;
+
+    @Override
+    public String getCommandLineProgramName() {
+        return CollectSequencingArtifactMetrics.class.getSimpleName();
+    }
+
+    @BeforeTest
+    public void setUp() throws IOException {
+        globalTempOutputDir = IOUtil.createTempDir("artifactMetrics.", ".tmp");
+    }
+
+    @AfterTest
+    public void tearDown() throws IOException {
+        IOUtil.deleteDirectoryTree(globalTempOutputDir);
+    }
+
+    /**
+     * Run the CLP using standard arguments and maybe some additional ones, then compare to the expected results.
+     *
+     * @param testCase name of test case (should match one of the file sets in {@code TEST_CASES}
+     * @param extraArgs extra arguments of the form {@code "KEY1=VALUE1", "KEY2=VALUE2"}, etc. These can override standard args.
+     * @return the base path of the output metrics
+     */
+    private void runAnalysis(final String testCase, final String ... extraArgs) throws IOException {
+        final File actual = new File(globalTempOutputDir, testCase);
+        final File expected = new File(TEST_CASES, testCase);
+
+        final Map<String, String> args = new HashMap<String, String>();
+        args.put("INPUT", TEST_SAM.getAbsolutePath());
+        args.put("OUTPUT", actual.getAbsolutePath());
+        args.put("REFERENCE_SEQUENCE", REFERENCE.getAbsolutePath());
+        args.put("MINIMUM_INSERT_SIZE", "30"); // test data has this insert size
+        args.put("MAXIMUM_INSERT_SIZE", "30"); // test data has this insert size
+        args.put("CONTEXT_SIZE", "0"); // ignore context by default, to cut down on file size
+
+        for (final String extraArg : extraArgs) {
+            final String[] kv = extraArg.split("=");
+            args.put(kv[0], kv[1]);
+        }
+
+        runPicardCommandLine(args);
+        assertAllFilesEqual(expected, actual);
+    }
+
+    private void assertAllFilesEqual(final File expectedBase, final File actualBase) {
+        boolean equal = areMetricsEqual(expectedBase, actualBase, SequencingArtifactMetrics.PRE_ADAPTER_SUMMARY_EXT);
+        equal = equal && areMetricsEqual(expectedBase, actualBase, SequencingArtifactMetrics.PRE_ADAPTER_DETAILS_EXT);
+        equal = equal && areMetricsEqual(expectedBase, actualBase, SequencingArtifactMetrics.BAIT_BIAS_SUMMARY_EXT);
+        equal = equal && areMetricsEqual(expectedBase, actualBase, SequencingArtifactMetrics.BAIT_BIAS_DETAILS_EXT);
+        Assert.assertTrue(equal);
+    }
+
+    private boolean areMetricsEqual(final File expectedBase, final File actualBase, final String extension) {
+        return MetricsFile.areMetricsEqual(new File(expectedBase + extension), new File(actualBase + extension));
+    }
+
+    @Test
+    public void testContext() throws IOException {
+        runAnalysis("with_context", "CONTEXT_SIZE=1");
+    }
+
+    @Test
+    public void testDbSnp() throws IOException {
+        runAnalysis("with_dbsnp", "DB_SNP=" + DB_SNP);
+    }
+
+    @Test
+    public void testIntervalList() throws IOException {
+        runAnalysis("with_intervals", "INTERVALS=" + INTERVALS);
+    }
+
+    @Test
+    public void testNoBqCutoff() throws IOException {
+        runAnalysis("no_bq_cutoff", "MINIMUM_QUALITY_SCORE=0");
+    }
+
+    @Test
+    public void testNoMqCutoff() throws IOException {
+        runAnalysis("no_mq_cutoff", "MINIMUM_MAPPING_QUALITY=0");
+    }
+
+    @Test
+    public void testUnmappedMate() throws IOException {
+        runAnalysis("unmapped_mate", "MINIMUM_INSERT_SIZE=0", "MAXIMUM_INSERT_SIZE=0");
+    }
+
+}
diff --git a/src/tests/java/picard/cmdline/CommandLineParserTest.java b/src/tests/java/picard/cmdline/CommandLineParserTest.java
new file mode 100644
index 0000000..f136d08
--- /dev/null
+++ b/src/tests/java/picard/cmdline/CommandLineParserTest.java
@@ -0,0 +1,980 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.cmdline;
+
+import htsjdk.samtools.util.CollectionUtil;
+import org.testng.Assert;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import picard.cmdline.programgroups.Testing;
+
+import java.io.File;
+import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+public class CommandLineParserTest {
+
+    enum FrobnicationFlavor {
+        FOO, BAR, BAZ
+    }
+
+    @CommandLineProgramProperties(
+            usage = "Usage: frobnicate [options] input-file output-file\n\nRead input-file, frobnicate it, and write frobnicated results to output-file\n",
+            usageShort = "Read input-file, frobnicate it, and write frobnicated results to output-file"
+    )
+    class FrobnicateOptions {
+
+        @PositionalArguments(minElements = 2, maxElements = 2)
+        public List<File> positionalArguments = new ArrayList<File>();
+
+        @Option(shortName = "T", doc = "Frobnication threshold setting.")
+        public Integer FROBNICATION_THRESHOLD = 20;
+
+        @Option
+        public FrobnicationFlavor FROBNICATION_FLAVOR;
+
+        @Option(doc = "Allowed shmiggle types.", minElements = 1, maxElements = 3)
+        public List<String> SHMIGGLE_TYPE = new ArrayList<String>();
+
+        @Option
+        public Boolean TRUTHINESS;
+    }
+
+    @CommandLineProgramProperties(
+            usage = "Usage: frobnicate [options] input-file output-file\n\nRead input-file, frobnicate it, and write frobnicated results to output-file\n",
+            usageShort = "Read input-file, frobnicate it, and write frobnicated results to output-file"
+    )
+    class FrobnicateOptionsWithNullList {
+
+        @PositionalArguments(minElements = 2, maxElements = 2)
+        public List<File> positionalArguments = new ArrayList<File>();
+
+        @Option(shortName = "T", doc = "Frobnication threshold setting.")
+        public Integer FROBNICATION_THRESHOLD = 20;
+
+        @Option
+        public FrobnicationFlavor FROBNICATION_FLAVOR;
+
+        @Option(doc = "Allowed shmiggle types.", minElements = 0, maxElements = 3)
+        public List<String> SHMIGGLE_TYPE = new ArrayList<String>();
+
+        @Option
+        public Boolean TRUTHINESS;
+    }
+
+    @CommandLineProgramProperties(
+            usage = "Usage: framistat [options]\n\nCompute the plebnick of the freebozzle.\n",
+            usageShort = "ompute the plebnick of the freebozzle"
+    )
+    class OptionsWithoutPositional {
+        public static final int DEFAULT_FROBNICATION_THRESHOLD = 20;
+        @Option(shortName = "T", doc = "Frobnication threshold setting.")
+        public Integer FROBNICATION_THRESHOLD = DEFAULT_FROBNICATION_THRESHOLD;
+
+        @Option
+        public FrobnicationFlavor FROBNICATION_FLAVOR;
+
+        @Option(doc = "Allowed shmiggle types.", minElements = 1, maxElements = 3)
+        public List<String> SHMIGGLE_TYPE = new ArrayList<String>();
+
+        @Option
+        public Boolean TRUTHINESS;
+    }
+
+    class OptionsWithCaseClash {
+        @Option
+        public String FROB;
+        @Option
+        public String frob;
+    }
+
+    class MutexOptions {
+        @Option(mutex = {"M", "N", "Y", "Z"})
+        public String A;
+        @Option(mutex = {"M", "N", "Y", "Z"})
+        public String B;
+        @Option(mutex = {"A", "B", "Y", "Z"})
+        public String M;
+        @Option(mutex = {"A", "B", "Y", "Z"})
+        public String N;
+        @Option(mutex = {"A", "B", "M", "N"})
+        public String Y;
+        @Option(mutex = {"A", "B", "M", "N"})
+        public String Z;
+
+    }
+
+
+    @Test
+    public void testUsage() {
+        final FrobnicateOptions fo = new FrobnicateOptions();
+        final CommandLineParser clp = new CommandLineParser(fo);
+        clp.usage(System.out, false);
+    }
+
+    @Test
+    public void testUsageWithDefault() {
+        final FrobnicateOptions fo = new FrobnicateOptions();
+        final CommandLineParser clp = new CommandLineParser(fo);
+        clp.usage(System.out, true);
+    }
+
+    @Test
+    public void testUsageWithoutPositional() {
+        final OptionsWithoutPositional fo = new OptionsWithoutPositional();
+        final CommandLineParser clp = new CommandLineParser(fo);
+        clp.usage(System.out, false);
+    }
+
+    @Test
+    public void testUsageWithoutPositionalWithDefault() {
+        final OptionsWithoutPositional fo = new OptionsWithoutPositional();
+        final CommandLineParser clp = new CommandLineParser(fo);
+        clp.usage(System.out, true);
+    }
+
+    @Test
+    public void testPositive() {
+        final String[] args = {
+                "T=17",
+                "FROBNICATION_FLAVOR=BAR",
+                "TRUTHINESS=False",
+                "SHMIGGLE_TYPE=shmiggle1",
+                "SHMIGGLE_TYPE=shmiggle2",
+                "positional1",
+                "positional2",
+        };
+        final FrobnicateOptions fo = new FrobnicateOptions();
+        final CommandLineParser clp = new CommandLineParser(fo);
+        Assert.assertTrue(clp.parseOptions(System.err, args));
+        Assert.assertEquals(fo.positionalArguments.size(), 2);
+        final File[] expectedPositionalArguments = {new File("positional1"), new File("positional2")};
+        Assert.assertEquals(fo.positionalArguments.toArray(), expectedPositionalArguments);
+        Assert.assertEquals(fo.FROBNICATION_THRESHOLD.intValue(), 17);
+        Assert.assertEquals(fo.FROBNICATION_FLAVOR, FrobnicationFlavor.BAR);
+        Assert.assertEquals(fo.SHMIGGLE_TYPE.size(), 2);
+        final String[] expectedShmiggleTypes = {"shmiggle1", "shmiggle2"};
+        Assert.assertEquals(fo.SHMIGGLE_TYPE.toArray(), expectedShmiggleTypes);
+        Assert.assertFalse(fo.TRUTHINESS);
+    }
+
+    /**
+     * Allow a whitespace btw equal sign and option value.
+     */
+    @Test
+    public void testPositiveWithSpaces() {
+        final String[] args = {
+                "T=", "17",
+                "FROBNICATION_FLAVOR=", "BAR",
+                "TRUTHINESS=", "False",
+                "SHMIGGLE_TYPE=", "shmiggle1",
+                "SHMIGGLE_TYPE=", "shmiggle2",
+                "positional1",
+                "positional2",
+        };
+        final FrobnicateOptions fo = new FrobnicateOptions();
+        final CommandLineParser clp = new CommandLineParser(fo);
+        Assert.assertTrue(clp.parseOptions(System.err, args));
+        Assert.assertEquals(fo.positionalArguments.size(), 2);
+        final File[] expectedPositionalArguments = {new File("positional1"), new File("positional2")};
+        Assert.assertEquals(fo.positionalArguments.toArray(), expectedPositionalArguments);
+        Assert.assertEquals(fo.FROBNICATION_THRESHOLD.intValue(), 17);
+        Assert.assertEquals(fo.FROBNICATION_FLAVOR, FrobnicationFlavor.BAR);
+        Assert.assertEquals(fo.SHMIGGLE_TYPE.size(), 2);
+        final String[] expectedShmiggleTypes = {"shmiggle1", "shmiggle2"};
+        Assert.assertEquals(fo.SHMIGGLE_TYPE.toArray(), expectedShmiggleTypes);
+        Assert.assertFalse(fo.TRUTHINESS);
+    }
+
+    @Test
+    public void testPositiveWithoutPositional() {
+        final String[] args = {
+                "T=17",
+                "FROBNICATION_FLAVOR=BAR",
+                "TRUTHINESS=False",
+                "SHMIGGLE_TYPE=shmiggle1",
+                "SHMIGGLE_TYPE=shmiggle2",
+        };
+        final OptionsWithoutPositional fo = new OptionsWithoutPositional();
+        final CommandLineParser clp = new CommandLineParser(fo);
+        Assert.assertTrue(clp.parseOptions(System.err, args));
+        Assert.assertEquals(fo.FROBNICATION_THRESHOLD.intValue(), 17);
+        Assert.assertEquals(fo.FROBNICATION_FLAVOR, FrobnicationFlavor.BAR);
+        Assert.assertEquals(fo.SHMIGGLE_TYPE.size(), 2);
+        final String[] expectedShmiggleTypes = {"shmiggle1", "shmiggle2"};
+        Assert.assertEquals(fo.SHMIGGLE_TYPE.toArray(), expectedShmiggleTypes);
+        Assert.assertFalse(fo.TRUTHINESS);
+    }
+
+    /**
+     * If last character of command line is the equal sign in an option=value pair,
+     * make sure no crash, and that the value is empty string.
+     */
+    @Test
+    public void testPositiveTerminalEqualSign() {
+        final String[] args = {
+                "T=17",
+                "FROBNICATION_FLAVOR=BAR",
+                "TRUTHINESS=False",
+                "SHMIGGLE_TYPE=shmiggle1",
+                "SHMIGGLE_TYPE=",
+        };
+        final OptionsWithoutPositional fo = new OptionsWithoutPositional();
+        final CommandLineParser clp = new CommandLineParser(fo);
+        Assert.assertTrue(clp.parseOptions(System.err, args));
+        Assert.assertEquals(fo.FROBNICATION_THRESHOLD.intValue(), 17);
+        Assert.assertEquals(fo.FROBNICATION_FLAVOR, FrobnicationFlavor.BAR);
+        Assert.assertEquals(fo.SHMIGGLE_TYPE.size(), 2);
+        final String[] expectedShmiggleTypes = {"shmiggle1", ""};
+        Assert.assertEquals(fo.SHMIGGLE_TYPE.toArray(), expectedShmiggleTypes);
+        Assert.assertFalse(fo.TRUTHINESS);
+    }
+
+    @Test
+    public void testDefault() {
+        final String[] args = {
+                "FROBNICATION_FLAVOR=BAR",
+                "TRUTHINESS=False",
+                "SHMIGGLE_TYPE=shmiggle1",
+                "SHMIGGLE_TYPE=shmiggle2",
+                "positional1",
+                "positional2",
+        };
+        final FrobnicateOptions fo = new FrobnicateOptions();
+        final CommandLineParser clp = new CommandLineParser(fo);
+        Assert.assertTrue(clp.parseOptions(System.err, args));
+        Assert.assertEquals(fo.FROBNICATION_THRESHOLD.intValue(), 20);
+    }
+
+    @Test
+    public void testMissingRequiredArgument() {
+        final String[] args = {
+                "TRUTHINESS=False",
+                "SHMIGGLE_TYPE=shmiggle1",
+                "SHMIGGLE_TYPE=shmiggle2",
+                "positional1",
+                "positional2",
+        };
+        final FrobnicateOptions fo = new FrobnicateOptions();
+        final CommandLineParser clp = new CommandLineParser(fo);
+        Assert.assertFalse(clp.parseOptions(System.err, args));
+    }
+
+    @Test
+    public void testBadValue() {
+        final String[] args = {
+                "FROBNICATION_THRESHOLD=ABC",
+                "FROBNICATION_FLAVOR=BAR",
+                "TRUTHINESS=False",
+                "SHMIGGLE_TYPE=shmiggle1",
+                "SHMIGGLE_TYPE=shmiggle2",
+                "positional1",
+                "positional2",
+        };
+        final FrobnicateOptions fo = new FrobnicateOptions();
+        final CommandLineParser clp = new CommandLineParser(fo);
+        Assert.assertFalse(clp.parseOptions(System.err, args));
+    }
+
+    @Test
+    public void testBadEnumValue() {
+        final String[] args = {
+                "FROBNICATION_FLAVOR=HiMom",
+                "TRUTHINESS=False",
+                "SHMIGGLE_TYPE=shmiggle1",
+                "SHMIGGLE_TYPE=shmiggle2",
+                "positional1",
+                "positional2",
+        };
+        final FrobnicateOptions fo = new FrobnicateOptions();
+        final CommandLineParser clp = new CommandLineParser(fo);
+        Assert.assertFalse(clp.parseOptions(System.err, args));
+    }
+
+    @Test
+    public void testNotEnoughOfListOption() {
+        final String[] args = {
+                "FROBNICATION_FLAVOR=BAR",
+                "TRUTHINESS=False",
+                "positional1",
+                "positional2",
+        };
+        final FrobnicateOptions fo = new FrobnicateOptions();
+        final CommandLineParser clp = new CommandLineParser(fo);
+        Assert.assertFalse(clp.parseOptions(System.err, args));
+    }
+
+    @Test
+    public void testTooManyListOption() {
+        final String[] args = {
+                "FROBNICATION_FLAVOR=BAR",
+                "TRUTHINESS=False",
+                "SHMIGGLE_TYPE=shmiggle1",
+                "SHMIGGLE_TYPE=shmiggle2",
+                "SHMIGGLE_TYPE=shmiggle3",
+                "SHMIGGLE_TYPE=shmiggle4",
+                "positional1",
+                "positional2",
+        };
+        final FrobnicateOptions fo = new FrobnicateOptions();
+        final CommandLineParser clp = new CommandLineParser(fo);
+        Assert.assertFalse(clp.parseOptions(System.err, args));
+    }
+
+    @Test
+    public void testTooManyPositional() {
+        final String[] args = {
+                "FROBNICATION_FLAVOR=BAR",
+                "TRUTHINESS=False",
+                "SHMIGGLE_TYPE=shmiggle1",
+                "SHMIGGLE_TYPE=shmiggle2",
+                "positional1",
+                "positional2",
+                "positional3",
+        };
+        final FrobnicateOptions fo = new FrobnicateOptions();
+        final CommandLineParser clp = new CommandLineParser(fo);
+        Assert.assertFalse(clp.parseOptions(System.err, args));
+    }
+
+    @Test
+    public void testNotEnoughPositional() {
+        final String[] args = {
+                "FROBNICATION_FLAVOR=BAR",
+                "TRUTHINESS=False",
+                "SHMIGGLE_TYPE=shmiggle1",
+                "SHMIGGLE_TYPE=shmiggle2",
+        };
+        final FrobnicateOptions fo = new FrobnicateOptions();
+        final CommandLineParser clp = new CommandLineParser(fo);
+        Assert.assertFalse(clp.parseOptions(System.err, args));
+    }
+
+    @Test
+    public void testUnexpectedPositional() {
+        final String[] args = {
+                "T=17",
+                "FROBNICATION_FLAVOR=BAR",
+                "TRUTHINESS=False",
+                "SHMIGGLE_TYPE=shmiggle1",
+                "SHMIGGLE_TYPE=shmiggle2",
+                "positional"
+        };
+        final OptionsWithoutPositional fo = new OptionsWithoutPositional();
+        final CommandLineParser clp = new CommandLineParser(fo);
+        Assert.assertFalse(clp.parseOptions(System.err, args));
+    }
+
+    @Test(expectedExceptions = CommandLineParserDefinitionException.class)
+    public void testOptionDefinitionCaseClash() {
+        final OptionsWithCaseClash options = new OptionsWithCaseClash();
+        new CommandLineParser(options);
+        Assert.fail("Should not be reached.");
+    }
+
+    @Test
+    public void testOptionUseCaseClash() {
+        final String[] args = {
+                "FROBNICATION_FLAVOR=BAR",
+                "FrOBNICATION_fLAVOR=BAR",
+        };
+        final FrobnicateOptions fo = new FrobnicateOptions();
+        final CommandLineParser clp = new CommandLineParser(fo);
+        Assert.assertFalse(clp.parseOptions(System.err, args));
+    }
+
+    @Test
+    public void testNullValue() {
+        final String[] args = {
+                "FROBNICATION_THRESHOLD=null",
+                "FROBNICATION_FLAVOR=BAR",
+                "TRUTHINESS=False",
+                "SHMIGGLE_TYPE=null",
+                "positional1",
+                "positional2",
+        };
+
+        final FrobnicateOptionsWithNullList fownl = new FrobnicateOptionsWithNullList();
+        fownl.SHMIGGLE_TYPE.add("shmiggle1"); //providing null value should clear this list
+
+        final CommandLineParser clp = new CommandLineParser(fownl);
+        Assert.assertTrue(clp.parseOptions(System.err, args));
+        Assert.assertEquals(fownl.positionalArguments.size(), 2);
+        final File[] expectedPositionalArguments = {new File("positional1"), new File("positional2")};
+        Assert.assertEquals(fownl.positionalArguments.toArray(), expectedPositionalArguments);
+        Assert.assertEquals(fownl.FROBNICATION_THRESHOLD, null); //test null value         
+        Assert.assertEquals(fownl.SHMIGGLE_TYPE.size(), 0); //test null value for list        
+        Assert.assertFalse(fownl.TRUTHINESS);
+
+        //verify that required arg can't be set to null
+        args[2] = "TRUTHINESS=null";
+        final CommandLineParser clp2 = new CommandLineParser(fownl);
+        Assert.assertFalse(clp2.parseOptions(System.err, args));
+
+        //verify that positional arg can't be set to null
+        args[2] = "TRUTHINESS=False";
+        args[4] = "null";
+        final CommandLineParser clp3 = new CommandLineParser(fownl);
+        Assert.assertFalse(clp3.parseOptions(System.err, args));
+
+    }
+
+
+    @Test
+    public void testOptionsFile() throws Exception {
+        final File optionsFile = File.createTempFile("clp.", ".options");
+        optionsFile.deleteOnExit();
+        final PrintWriter writer = new PrintWriter(optionsFile);
+        writer.println("T=18");
+        writer.println("TRUTHINESS=True");
+        writer.println("SHMIGGLE_TYPE=shmiggle0");
+        writer.println("STRANGE_OPTION=shmiggle0");
+        writer.close();
+        final String[] args = {
+                "OPTIONS_FILE=" + optionsFile.getPath(),
+                // Multiple options files are allowed
+                "OPTIONS_FILE=" + optionsFile.getPath(),
+                "T=17",
+                "FROBNICATION_FLAVOR=BAR",
+                "TRUTHINESS=False",
+                "SHMIGGLE_TYPE=shmiggle1",
+                "positional1",
+                "positional2",
+        };
+        final FrobnicateOptions fo = new FrobnicateOptions();
+        final CommandLineParser clp = new CommandLineParser(fo);
+        Assert.assertTrue(clp.parseOptions(System.err, args));
+        Assert.assertEquals(fo.positionalArguments.size(), 2);
+        final File[] expectedPositionalArguments = {new File("positional1"), new File("positional2")};
+        Assert.assertEquals(fo.positionalArguments.toArray(), expectedPositionalArguments);
+        Assert.assertEquals(fo.FROBNICATION_THRESHOLD.intValue(), 17);
+        Assert.assertEquals(fo.FROBNICATION_FLAVOR, FrobnicationFlavor.BAR);
+        Assert.assertEquals(fo.SHMIGGLE_TYPE.size(), 3);
+        final String[] expectedShmiggleTypes = {"shmiggle0", "shmiggle0", "shmiggle1"};
+        Assert.assertEquals(fo.SHMIGGLE_TYPE.toArray(), expectedShmiggleTypes);
+        Assert.assertFalse(fo.TRUTHINESS);
+    }
+
+
+    /**
+     * In an options file, should not be allowed to override an option set on the command line
+     *
+     * @throws Exception
+     */
+    @Test
+    public void testOptionsFileWithDisallowedOverride() throws Exception {
+        final File optionsFile = File.createTempFile("clp.", ".options");
+        optionsFile.deleteOnExit();
+        final PrintWriter writer = new PrintWriter(optionsFile);
+        writer.println("T=18");
+        writer.close();
+        final String[] args = {
+                "T=17",
+                "OPTIONS_FILE=" + optionsFile.getPath()
+        };
+        final FrobnicateOptions fo = new FrobnicateOptions();
+        final CommandLineParser clp = new CommandLineParser(fo);
+        Assert.assertFalse(clp.parseOptions(System.err, args));
+    }
+
+    @DataProvider(name = "mutexScenarios")
+    public Object[][] mutexScenarios() {
+        return new Object[][]{
+                {"pass", new String[]{"A=1", "B=2"}, true},
+                {"no args", new String[0], false},
+                {"1 of group required", new String[]{"A=1"}, false},
+                {"mutex", new String[]{"A=1", "Y=3"}, false},
+                {"mega mutex", new String[]{"A=1", "B=2", "Y=3", "Z=1", "M=2", "N=3"}, false}
+        };
+    }
+
+    @Test(dataProvider = "mutexScenarios")
+    public void testMutex(final String testName, final String[] args, final boolean expected) {
+        final MutexOptions o = new MutexOptions();
+        final CommandLineParser clp = new CommandLineParser(o);
+        Assert.assertEquals(clp.parseOptions(System.err, args), expected);
+    }
+
+    class UninitializedCollectionOptions {
+        @Option
+        public List<String> LIST;
+        @Option
+        public ArrayList<String> ARRAY_LIST;
+        @Option
+        public HashSet<String> HASH_SET;
+        @PositionalArguments
+        public Collection<File> COLLECTION;
+
+    }
+
+    @Test
+    public void testUninitializedCollections() {
+        final UninitializedCollectionOptions o = new UninitializedCollectionOptions();
+        final CommandLineParser clp = new CommandLineParser(o);
+        final String[] args = {"LIST=L1", "LIST=L2", "ARRAY_LIST=S1", "HASH_SET=HS1", "P1", "P2"};
+        Assert.assertTrue(clp.parseOptions(System.err, args));
+        Assert.assertEquals(o.LIST.size(), 2);
+        Assert.assertEquals(o.ARRAY_LIST.size(), 1);
+        Assert.assertEquals(o.HASH_SET.size(), 1);
+        Assert.assertEquals(o.COLLECTION.size(), 2);
+    }
+
+    class UninitializedCollectionThatCannotBeAutoInitializedOptions {
+        @Option
+        public Set<String> SET;
+    }
+
+    @Test(expectedExceptions = CommandLineParserDefinitionException.class)
+    public void testCollectionThatCannotBeAutoInitialized() {
+        final UninitializedCollectionThatCannotBeAutoInitializedOptions o = new UninitializedCollectionThatCannotBeAutoInitializedOptions();
+        new CommandLineParser(o);
+        Assert.fail("Exception should have been thrown");
+    }
+
+    class CollectionWithDefaultValuesOptions {
+        @Option
+        public List<String> LIST = CollectionUtil.makeList("foo", "bar");
+    }
+
+    @Test
+    public void testClearDefaultValuesFromListOption() {
+        final CollectionWithDefaultValuesOptions o = new CollectionWithDefaultValuesOptions();
+        final CommandLineParser clp = new CommandLineParser(o);
+        final String[] args = {"LIST=null"};
+        Assert.assertTrue(clp.parseOptions(System.err, args));
+        Assert.assertEquals(o.LIST.size(), 0);
+    }
+
+    @Test
+    public void testClearDefaultValuesFromListOptionAndAddNew() {
+        final CollectionWithDefaultValuesOptions o = new CollectionWithDefaultValuesOptions();
+        final CommandLineParser clp = new CommandLineParser(o);
+        final String[] args = {"LIST=null", "LIST=baz", "LIST=frob"};
+        Assert.assertTrue(clp.parseOptions(System.err, args));
+        Assert.assertEquals(o.LIST, CollectionUtil.makeList("baz", "frob"));
+    }
+
+    @Test
+    public void testAddToDefaultValuesListOption() {
+        final CollectionWithDefaultValuesOptions o = new CollectionWithDefaultValuesOptions();
+        final CommandLineParser clp = new CommandLineParser(o);
+        final String[] args = {"LIST=baz", "LIST=frob"};
+        Assert.assertTrue(clp.parseOptions(System.err, args));
+        Assert.assertEquals(o.LIST, CollectionUtil.makeList("foo", "bar", "baz", "frob"));
+    }
+
+    @CommandLineProgramProperties(
+            usage = "Class with nested option",
+            usageShort = "Class with nested option"
+    )
+    class OptionsWithNested {
+        @Option
+        public Integer AN_INT;
+        @NestedOptions(doc = "Doc for FROB")
+        public OptionsWithoutPositional FROB = new OptionsWithoutPositional();
+        @NestedOptions
+        public OptionsWithNestedAgain NESTED = new OptionsWithNestedAgain();
+        @Option
+        public String A_STRING;
+    }
+
+    class OptionsWithNestedAgain {
+        @NestedOptions(doc = "Doc for inner FROB")
+        public OptionsWithoutPositional FROB = new OptionsWithoutPositional();
+    }
+
+
+    @Test
+    public void testStaticNestedOptions() {
+        final OptionsWithNested o = new OptionsWithNested();
+        final CommandLineParser clp = new CommandLineParser(o);
+        clp.usage(System.out, false);
+        clp.htmlUsage(System.out, "testStaticNestedOptions", false);
+        final int outerInt = 123;
+        final String outerString = "outerString";
+        final FrobnicationFlavor outerFlavor = FrobnicationFlavor.BAR;
+        final FrobnicationFlavor innerFlavor = FrobnicationFlavor.BAZ;
+        final boolean outerTruthiness = true;
+        final boolean innerTruthiness = false;
+        final int innerThreshold = 10;
+        final String[] outerShmiggle = {"shmiggle1", "shmiggle2"};
+        final String[] innerShmiggle = {"inner1", "inner2", "inner3"};
+
+        final List<String> args = new ArrayList<String>();
+        args.add("AN_INT=" + outerInt);
+        args.add("A_STRING=" + outerString);
+        args.add("frob.truThIness=" + outerTruthiness);
+        args.add("FrOb.FROBNICATION_FLAVOR=" + outerFlavor);
+        for (final String shmiggle : outerShmiggle) {
+            args.add("FROB.SHMIGGLE_TYPE=" + shmiggle);
+        }
+        args.add("NeStEd.Frob.FROBNICATION_THRESHOLD=" + innerThreshold);
+        args.add("NeStEd.Frob.FROBNICATION_FLAVOR=" + innerFlavor);
+        args.add("NeStEd.Frob.truthIness=" + innerTruthiness);
+        for (final String shmiggle : innerShmiggle) {
+            args.add("NESTED.FROB.SHMIGGLE_TYPE=");
+            args.add(shmiggle);
+        }
+        Assert.assertTrue(clp.parseOptions(System.err, args.toArray(new String[args.size()])));
+        System.out.println(clp.getCommandLine());
+        Assert.assertEquals(o.AN_INT.intValue(), outerInt);
+        Assert.assertEquals(o.A_STRING, outerString);
+        Assert.assertEquals(o.FROB.FROBNICATION_FLAVOR, outerFlavor);
+        Assert.assertEquals(o.FROB.FROBNICATION_THRESHOLD.intValue(), OptionsWithoutPositional.DEFAULT_FROBNICATION_THRESHOLD);
+        Assert.assertEquals(o.FROB.SHMIGGLE_TYPE, Arrays.asList(outerShmiggle));
+        Assert.assertEquals(o.FROB.TRUTHINESS.booleanValue(), outerTruthiness);
+        Assert.assertEquals(o.NESTED.FROB.SHMIGGLE_TYPE, Arrays.asList(innerShmiggle));
+        Assert.assertEquals(o.NESTED.FROB.FROBNICATION_THRESHOLD.intValue(), innerThreshold);
+        Assert.assertEquals(o.NESTED.FROB.FROBNICATION_FLAVOR, innerFlavor);
+        Assert.assertEquals(o.NESTED.FROB.TRUTHINESS.booleanValue(), innerTruthiness);
+    }
+
+    @Test
+    void testStaticNestedNegative() {
+        final OptionsWithNested o = new OptionsWithNested();
+        final CommandLineParser clp = new CommandLineParser(o);
+        final int outerInt = 123;
+        final String outerString = "outerString";
+        final FrobnicationFlavor outerFlavor = FrobnicationFlavor.BAR;
+        final boolean outerTruthiness = true;
+        final String[] outerShmiggle = {"shmiggle1", "shmiggle2"};
+
+        final List<String> args = new ArrayList<String>();
+        args.add("AN_INT=" + outerInt);
+        args.add("A_STRING=" + outerString);
+        Assert.assertFalse(clp.parseOptions(System.err, args.toArray(new String[args.size()])));
+        System.out.println(clp.getCommandLine());
+    }
+
+    @CommandLineProgramProperties(
+            usage = "Class with nested options.",
+            usageShort = "Class with nested options",
+            programGroup = Testing.class,
+            omitFromCommandLine = true
+    )
+    class ClpOptionsWithNested extends CommandLineProgram {
+        @Option
+        public Integer AN_INT;
+        @NestedOptions(doc = "This will be ignored")
+        public OptionsWithoutPositional FROB = new OptionsWithoutPositional();
+
+        @Option
+        public String A_STRING;
+
+        private final ClpOptionsWithNestedAgain NESTED = new ClpOptionsWithNestedAgain();
+
+        @Override
+        public Map<String, Object> getNestedOptions() {
+            final Map<String, Object> ret = new LinkedHashMap<String, Object>();
+            ret.put("CLP_NESTED", NESTED);
+            ret.put("FRAB", FROB);
+            return ret;
+        }
+
+        @Override
+        public Map<String, Object> getNestedOptionsForHelp() {
+            final Map<String, Object> ret = new LinkedHashMap<String, Object>();
+            ret.put("CLP_NESTED", NESTED);
+            return ret;
+        }
+
+        @Override
+        protected int doWork() {
+            return 0;
+        }
+    }
+
+    @CommandLineProgramProperties(
+            usage = "Class with nested options again.",
+            usageShort = "Class with nested options again",
+            programGroup = Testing.class,
+            omitFromCommandLine = true
+    )
+    class ClpOptionsWithNestedAgain extends CommandLineProgram {
+        private final OptionsWithoutPositional FROB = new OptionsWithoutPositional();
+
+        @Override
+        public Map<String, Object> getNestedOptions() {
+            final Map<String, Object> ret = new LinkedHashMap<String, Object>();
+            ret.put("FROB_NESTED", FROB);
+            return ret;
+        }
+
+        @Override
+        protected int doWork() {
+            return 0;
+        }
+    }
+
+    @Test
+    public void testDynamicNestedOptions() {
+        final ClpOptionsWithNested o = new ClpOptionsWithNested();
+        final int outerInt = 123;
+        final String outerString = "aString";
+        final int outerThreshold = 456;
+        final FrobnicationFlavor outerFlavor = FrobnicationFlavor.FOO;
+        final List<String> outerShmiggleType = Arrays.asList("shmiggle1");
+        final boolean outerTruthiness = true;
+        final int innerThreshold = -1000;
+        final FrobnicationFlavor innerFlavor = FrobnicationFlavor.BAZ;
+        final List<String> innerShmiggleType = Arrays.asList("innershmiggle1", "skeezwitz");
+        final boolean innerTruthiness = false;
+
+        final List<String> args = new ArrayList<String>();
+        args.add("AN_INT=" + outerInt);
+        args.add("A_STRING=" + outerString);
+        args.add("FRAB.FROBNICATION_THRESHOLD=" + outerThreshold);
+        args.add("FRAB.FROBNICATION_FLAVOR=" + outerFlavor);
+        args.add("FRAB.SHMIGGLE_TYPE=" + outerShmiggleType.get(0));
+        args.add("FRAB.TRUTHINESS=" + outerTruthiness);
+        args.add("CLP_NESTED.FROB_NESTED.FROBNICATION_THRESHOLD=" + innerThreshold);
+        args.add("CLP_NESTED.FROB_NESTED.FROBNICATION_FLAVOR=" + innerFlavor);
+        for (final String ist : innerShmiggleType) {
+            args.add("CLP_NESTED.FROB_NESTED.SHMIGGLE_TYPE=" + ist);
+        }
+        args.add("CLP_NESTED.FROB_NESTED.TRUTHINESS=" + innerTruthiness);
+
+        Assert.assertTrue(o.parseArgs(args.toArray(new String[args.size()])));
+        System.out.println(o.getCommandLine());
+        Assert.assertEquals(o.AN_INT.intValue(), outerInt);
+        Assert.assertEquals(o.A_STRING, outerString);
+        Assert.assertEquals(o.FROB.FROBNICATION_THRESHOLD.intValue(), outerThreshold);
+        Assert.assertEquals(o.FROB.FROBNICATION_FLAVOR, outerFlavor);
+        Assert.assertEquals(o.FROB.SHMIGGLE_TYPE, outerShmiggleType);
+        Assert.assertEquals(o.FROB.TRUTHINESS.booleanValue(), outerTruthiness);
+        Assert.assertEquals(o.NESTED.FROB.FROBNICATION_THRESHOLD.intValue(), innerThreshold);
+        Assert.assertEquals(o.NESTED.FROB.FROBNICATION_FLAVOR, innerFlavor);
+        Assert.assertEquals(o.NESTED.FROB.SHMIGGLE_TYPE, innerShmiggleType);
+        Assert.assertEquals(o.NESTED.FROB.TRUTHINESS.booleanValue(), innerTruthiness);
+        Assert.assertFalse(new ClpOptionsWithNested().parseArgs(new String[]{"-h"}));
+        new CommandLineParser(o).htmlUsage(System.err, o.getClass().getSimpleName(), false);
+    }
+
+    class StaticPropagationParent {
+        @Option
+        public String STRING1 = "String1ParentDefault";
+
+        @Option
+        public String STRING2 = "String2ParentDefault";
+
+        @Option(overridable = true)
+        public String STRING3 = "String3ParentDefault";
+
+        @Option
+        public String STRING4 = "String4ParentDefault";
+
+        @Option
+        public String STRING5;
+
+        @Option
+        public List<String> COLLECTION;
+
+        @NestedOptions
+        public PropagationChild CHILD = new PropagationChild();
+    }
+
+    class PropagationChild {
+        // Parent has default, child does not, should propagate
+        @Option
+        public String STRING1;
+
+        // Parent and child have default, should not propagate
+        @Option
+        public String STRING2 = "String2ChildDefault";
+
+        // Parent has explicitly set value, child has default, should propagate
+        @Option
+        public String STRING3 = "String3ChildDefault";
+
+        // Parent has default, child has explicitly set value, should not propagate
+        @Option
+        public String STRING4;
+
+        // Parent and child have explicitly set value, should not propagate
+        @Option
+        public String STRING5;
+
+        // Parent has explicitly set value, but collection should not propagate
+        @Option
+        public List<String> COLLECTION;
+    }
+
+    @Test
+    public void testStaticPropagation() {
+        final StaticPropagationParent o = new StaticPropagationParent();
+        final CommandLineParser clp = new CommandLineParser(o);
+        clp.usage(System.out, false);
+        clp.htmlUsage(System.out, "testStaticPropagation", false);
+
+        final List<String> args = new ArrayList<String>();
+        args.add("STRING3=String3Parent");
+        args.add("CHILD.STRING4=String4Child");
+        args.add("STRING5=String5Parent");
+        args.add("CHILD.STRING5=String5Child");
+        args.add("COLLECTION=CollectionParent");
+
+        Assert.assertTrue(clp.parseOptions(System.err, args.toArray(new String[args.size()])));
+        System.out.println(clp.getCommandLine());
+
+        Assert.assertEquals(o.CHILD.STRING1, "String1ParentDefault");
+        Assert.assertEquals(o.CHILD.STRING2, "String2ChildDefault");
+        Assert.assertEquals(o.CHILD.STRING3, "String3Parent");
+        Assert.assertEquals(o.CHILD.STRING4, "String4Child");
+        Assert.assertEquals(o.CHILD.STRING5, "String5Child");
+        Assert.assertEquals(o.CHILD.COLLECTION, new ArrayList<String>());
+    }
+
+    @CommandLineProgramProperties(
+            usage = "",
+            usageShort = "",
+            programGroup = Testing.class,
+            omitFromCommandLine = true
+    )
+    class DynamicPropagationParent extends CommandLineProgram {
+        @Option
+        public String STRING1 = "String1ParentDefault";
+
+        @Option
+        public String STRING2 = "String2ParentDefault";
+
+        @Option
+        public String STRING3 = "String3ParentDefault";
+
+        @Option
+        public String STRING4 = "String4ParentDefault";
+
+        @Option
+        public String STRING5;
+
+        @Option
+        public List<String> COLLECTION;
+
+        public PropagationChild CHILD = new PropagationChild();
+
+        @Override
+        protected int doWork() {
+            return 0;
+        }
+
+        @Override
+        public Map<String, Object> getNestedOptions() {
+            final Map<String, Object> ret = new HashMap<String, Object>();
+            ret.put("CHILD", CHILD);
+            return ret;
+        }
+    }
+
+    @Test
+    public void testDynamicPropagation() {
+        final DynamicPropagationParent o = new DynamicPropagationParent();
+
+        final List<String> args = new ArrayList<String>();
+        args.add("STRING3=String3Parent");
+        args.add("CHILD.STRING4=String4Child");
+        args.add("STRING5=String5Parent");
+        args.add("CHILD.STRING5=String5Child");
+        args.add("COLLECTION=CollectionParent");
+
+        Assert.assertTrue(o.parseArgs(args.toArray(new String[args.size()])));
+        System.out.println(o.getCommandLine());
+        Assert.assertFalse(new DynamicPropagationParent().parseArgs(new String[]{"-h"}));
+        new CommandLineParser(o).htmlUsage(System.err, o.getClass().getSimpleName(), false);
+
+        Assert.assertEquals(o.CHILD.STRING1, "String1ParentDefault");
+        Assert.assertEquals(o.CHILD.STRING2, "String2ChildDefault");
+        Assert.assertEquals(o.CHILD.STRING3, "String3Parent");
+        Assert.assertEquals(o.CHILD.STRING4, "String4Child");
+        Assert.assertEquals(o.CHILD.STRING5, "String5Child");
+        Assert.assertEquals(o.CHILD.COLLECTION, new ArrayList<String>());
+    }
+
+    class NegativePropagationParent {
+        @Option
+        public int STRING1 = 1;
+
+        @Option
+        public List<String> COLLECTION;
+
+        @NestedOptions
+        public PropagationChild CHILD = new PropagationChild();
+    }
+
+    /** parent and child option of the same name are not type-compatible. */
+    @Test(expectedExceptions = {IllegalArgumentException.class})
+    public void testStaticPropagationNegative() {
+        final NegativePropagationParent o = new NegativePropagationParent();
+        final CommandLineParser clp = new CommandLineParser(o);
+        clp.usage(System.out, false);
+
+        clp.parseOptions(System.err, new String[0]);
+    }
+
+    class StaticParent {
+
+        @Option
+        public String STRING1 = "String1ParentDefault";
+
+        @Option
+        public String STRING2 = "String2ParentDefault";
+
+        @Option(overridable = true)
+        public String STRING3 = "String3ParentDefault";
+
+        public void doSomething() {
+            System.out.println(STRING3);
+        }
+
+    }
+
+    class OverridePropagation extends StaticParent {
+        @Option
+        public String STRING3 = "String3Overriden";
+    }
+
+    @Test
+    public void testOveriddenOptions() {
+        final OverridePropagation overridden = new OverridePropagation();
+        final CommandLineParser overrideClp = new CommandLineParser(overridden);
+
+        overrideClp.parseOptions(System.err, new String[0]);
+
+        final OverridePropagation props = (OverridePropagation) overrideClp.getCallerOptions();
+        Assert.assertTrue(props.STRING3.equals("String3Overriden"));
+        Assert.assertTrue(((StaticParent) props).STRING3.equals("String3Overriden"));
+
+        overrideClp.parseOptions(System.err, new String[]{"STRING3=String3Supplied"});
+
+        final OverridePropagation propsSet = (OverridePropagation) overrideClp.getCallerOptions();
+        Assert.assertTrue(propsSet.STRING3.equals("String3Supplied"));
+        Assert.assertTrue(((StaticParent) propsSet).STRING3.equals("String3Supplied"));
+    }
+}
diff --git a/src/tests/java/picard/cmdline/CommandLineProgramTest.java b/src/tests/java/picard/cmdline/CommandLineProgramTest.java
new file mode 100644
index 0000000..26dd3f5
--- /dev/null
+++ b/src/tests/java/picard/cmdline/CommandLineProgramTest.java
@@ -0,0 +1,54 @@
+package picard.cmdline;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Utility class for CommandLine Program testing.
+ */
+public abstract class CommandLineProgramTest {
+    public abstract String getCommandLineProgramName();
+
+    /**
+     * For testing support.  Given a name of a Picard CommandLineProgram and it's arguments, builds the arguments appropriate for calling the
+     * program through PicardCommandLine
+     *
+     * @param args
+     * @return String[] of command line arguments
+     */
+    public String[] makePicardCommandLineArgs(final List<String> args) {
+        final String[] picardCommandLineArgs = new String[args.size() + 1];
+        picardCommandLineArgs[0] = getCommandLineProgramName();
+        int i = 1;
+        for (final String arg : args) {
+            picardCommandLineArgs[i++] = arg;
+        }
+        return picardCommandLineArgs;
+    }
+
+    public String[] makePicardCommandLineArgs(final Map<String, String> kwargs) {
+        final List<String> args = new ArrayList<String>();
+        for (final String key : kwargs.keySet()) {
+            args.add(key + "=" + kwargs.get(key));
+        }
+        return makePicardCommandLineArgs(args);
+    }
+
+    public String[] makePicardCommandLineArgs(final String[] args) {
+        return makePicardCommandLineArgs(Arrays.asList(args));
+    }
+
+    public int runPicardCommandLine(final List<String> args) {
+        return new PicardCommandLine().instanceMain(makePicardCommandLineArgs(args));
+    }
+
+    public int runPicardCommandLine(final String[] args) {
+        return new PicardCommandLine().instanceMain(makePicardCommandLineArgs(args));
+    }
+
+    public int runPicardCommandLine(final Map<String, String> kwargs) {
+        return new PicardCommandLine().instanceMain(makePicardCommandLineArgs(kwargs));
+    }
+}
diff --git a/src/tests/java/picard/illumina/CheckIlluminaDirectoryTest.java b/src/tests/java/picard/illumina/CheckIlluminaDirectoryTest.java
new file mode 100644
index 0000000..30f55e9
--- /dev/null
+++ b/src/tests/java/picard/illumina/CheckIlluminaDirectoryTest.java
@@ -0,0 +1,384 @@
+package picard.illumina;
+
+import htsjdk.samtools.SAMException;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.IOUtil;
+import org.testng.Assert;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import picard.cmdline.CommandLineProgramTest;
+import picard.PicardException;
+import picard.cmdline.StandardOptionDefinitions;
+import picard.illumina.parser.IlluminaDataType;
+import picard.illumina.parser.IlluminaFileUtil;
+import picard.illumina.parser.IlluminaFileUtilTest;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.RandomAccessFile;
+import java.nio.ByteOrder;
+import java.nio.MappedByteBuffer;
+import java.nio.channels.FileChannel;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import static htsjdk.samtools.util.CollectionUtil.makeList;
+import static picard.illumina.parser.IlluminaDataType.BaseCalls;
+import static picard.illumina.parser.IlluminaDataType.Position;
+import static picard.illumina.parser.IlluminaFileUtil.SupportedIlluminaFormat;
+import static picard.illumina.parser.IlluminaFileUtil.SupportedIlluminaFormat.*;
+
+public class CheckIlluminaDirectoryTest extends CommandLineProgramTest {
+
+    private File illuminaDir;
+    private File dataDir;
+    private File interopDir;
+    private File intensityDir;
+    private File basecallDir;
+
+    public String getCommandLineProgramName() {
+        return CheckIlluminaDirectory.class.getSimpleName();
+    }
+
+    @BeforeMethod
+    private void setUp() throws Exception {
+        illuminaDir = IOUtil.createTempDir("ift_test", "IlluminaDir");
+
+        interopDir = new File(illuminaDir, "InterOp");
+        if (!interopDir.exists() && !interopDir.mkdir()) {
+            throw new RuntimeException("Couldn't make interop dir " + interopDir.getAbsolutePath());
+        }
+
+        dataDir = new File(illuminaDir, "Data");
+        if (!dataDir.exists() && !dataDir.mkdir()) {
+            throw new RuntimeException("Couldn't make data dir " + dataDir.getAbsolutePath());
+        }
+
+        intensityDir = new File(dataDir, "Intensities");
+        if (!intensityDir.exists() && !intensityDir.mkdir()) {
+            throw new RuntimeException("Couldn't make intensity dir " + intensityDir.getAbsolutePath());
+        }
+
+        basecallDir = new File(intensityDir, "BaseCalls");
+        if (!basecallDir.exists() && !basecallDir.mkdir()) {
+            throw new RuntimeException("Couldn't make basecalls dir " + basecallDir.getAbsolutePath());
+        }
+    }
+
+    @AfterMethod
+    private void tearDown() {
+        IOUtil.deleteDirectoryTree(dataDir);
+        IOUtil.deleteDirectoryTree(basecallDir);
+        IOUtil.deleteDirectoryTree(intensityDir);
+    }
+
+    public void makeFiles(final SupportedIlluminaFormat[] formats, final int lane, final List<Integer> tiles,
+                          final int[] cycles) {
+        for (final IlluminaFileUtil.SupportedIlluminaFormat format : formats) {
+            IlluminaFileUtilTest.makeFiles(format, intensityDir, lane, tiles, cycles);
+        }
+    }
+
+    public String[] makeCheckerArgs(final File basecallDir, final int lane, final String readStructure,
+                                    final IlluminaDataType[] dataTypes, final List<Integer> filterTiles,
+                                    final boolean makeFakeFiles, final boolean createSymLinks) {
+        final String[] dataTypeArgs = new String[dataTypes.length + filterTiles.size() + 5];
+        dataTypeArgs[0] = "B=" + basecallDir;
+        dataTypeArgs[1] = StandardOptionDefinitions.LANE_SHORT_NAME + "=" + lane;
+        dataTypeArgs[2] = "RS=" + readStructure;
+        dataTypeArgs[3] = "F=" + makeFakeFiles;
+        dataTypeArgs[4] = "X=" + createSymLinks;
+
+        for (int i = 0; i < dataTypes.length; i++) {
+            dataTypeArgs[i + 5] = "DT=" + dataTypes[i];
+        }
+
+        if (filterTiles.size() > 0) {
+            final int start = dataTypes.length + 5;
+            for (int i = start; i < dataTypeArgs.length; i++) {
+                dataTypeArgs[i] = "T=" + filterTiles.get(i - start);
+            }
+        }
+        return dataTypeArgs;
+    }
+
+    public File writeTileMetricsOutFile(final Map<Integer, List<Integer>> lanesToTiles) {
+        return writeTileMetricsOutFile(interopDir, (byte) 2, (byte) 10, lanesToTiles);
+    }
+
+    public File writeTileMetricsOutFile(final File interopDir, final byte versionNumber, final byte recordSize,
+                                        final Map<Integer, List<Integer>> lanesToTiles) {
+        final File tileMetricsOut = new File(interopDir, "TileMetricsOut.bin");
+        if (!tileMetricsOut.exists()) {
+            try {
+                if (!tileMetricsOut.createNewFile()) {
+                    throw new PicardException(
+                            "Could not create tileMetricsOut file(" + tileMetricsOut.getAbsolutePath() + ")");
+                }
+            } catch (final IOException e) {
+                throw new PicardException(
+                        "IOException creating tileMetricsOut file (" + tileMetricsOut + ") for writing!", e);
+            }
+        }
+
+        int totalEntries = 0;
+        for (final Map.Entry<Integer, List<Integer>> l2t : lanesToTiles.entrySet()) {
+            totalEntries += l2t.getValue().size();
+        }
+
+        final MappedByteBuffer buf;
+        try {
+            final RandomAccessFile raf = new RandomAccessFile(tileMetricsOut, "rw");
+            final FileChannel channel = raf.getChannel();
+            buf = channel.map(FileChannel.MapMode.READ_WRITE, 0, 2 + 10 * totalEntries);
+            buf.order(ByteOrder.LITTLE_ENDIAN);
+
+            buf.put(versionNumber);
+            buf.put(recordSize);
+
+            for (final int lane : lanesToTiles.keySet()) {
+                for (final int tile : lanesToTiles.get(lane)) {
+                    buf.putShort((short) lane);
+                    buf.putShort((short) tile);
+                    buf.putShort((short) 0);
+                    buf.putFloat(0F);
+                }
+            }
+
+            buf.force();
+            CloserUtil.close(channel);
+            CloserUtil.close(raf);
+        } catch (final IOException e) {
+            throw new PicardException("IOException writing tileMetricsOut file (" + tileMetricsOut + ")", e);
+        }
+
+        return tileMetricsOut;
+    }
+
+    public static Map<Integer, List<Integer>> makeMap(final List<Integer> lanes, final List<List<Integer>> tiles) {
+        final Map<Integer, List<Integer>> map = new HashMap<Integer, List<Integer>>();
+
+        if (lanes.size() != tiles.size()) {
+            throw new IllegalArgumentException("Number of lanes (" + lanes + ") does not equal number of tiles!");
+        }
+
+        for (int i = 0; i < lanes.size(); i++) {
+            map.put(lanes.get(i), tiles.get(i));
+        }
+
+        return map;
+    }
+
+    @DataProvider(name = "positiveTestData")
+    public Object[][] positiveTestData() {
+        return new Object[][]{
+                {
+                        new SupportedIlluminaFormat[]{Bcl, Locs, Pos, Filter},
+                        new IlluminaDataType[]{BaseCalls, IlluminaDataType.QualityScores, IlluminaDataType.Position,
+                                IlluminaDataType.PF},
+                        3, makeList(1101, 1201, 1301, 2101, 2201, 2301), IlluminaFileUtilTest.cycleRange(1, 50),
+                        "25T25T", new ArrayList<Integer>()
+                },
+                {
+                        new SupportedIlluminaFormat[]{Bcl, Locs, Filter},
+                        new IlluminaDataType[]{BaseCalls, IlluminaDataType.QualityScores, IlluminaDataType.Position,
+                                IlluminaDataType.PF},
+                        2, makeList(1101, 1201, 1301, 2101, 2201, 2301), IlluminaFileUtilTest.cycleRange(1, 50),
+                        "8S15T8S", new ArrayList<Integer>()
+                },
+                {
+                        new SupportedIlluminaFormat[]{Bcl, Filter},
+                        new IlluminaDataType[]{BaseCalls, IlluminaDataType.QualityScores, IlluminaDataType.PF},
+                        2, makeList(1101, 1201, 1301, 2101, 2201, 2301), IlluminaFileUtilTest.cycleRange(1, 152),
+                        "68T8B68T", new ArrayList<Integer>()
+                },
+                {
+                        new SupportedIlluminaFormat[]{Bcl, Pos, Filter},
+                        new IlluminaDataType[]{BaseCalls, IlluminaDataType.QualityScores, IlluminaDataType.Position,
+                                IlluminaDataType.PF},
+                        5, makeList(1101, 1201, 1301, 2101, 2201, 2301), IlluminaFileUtilTest.cycleRange(1, 50),
+                        "25T25T", new ArrayList<Integer>()
+                },
+                {
+                        new SupportedIlluminaFormat[]{Bcl, Pos, Filter},
+                        new IlluminaDataType[]{BaseCalls, IlluminaDataType.QualityScores, IlluminaDataType.Position,
+                                IlluminaDataType.PF},
+                        5, makeList(1101, 1201, 1301, 2101, 2201, 2301), IlluminaFileUtilTest.cycleRange(1, 50),
+                        "25T25T", makeList(1301, 2101)
+                }
+        };
+    }
+
+    //Note: The positiveTest and negativeTests don't actually test Qseqs (the Qseq in the first test case above is there to make sure
+    //BCLs are preferred over Qseqs)
+
+    @Test(dataProvider = "positiveTestData")
+    public void positiveTests(final IlluminaFileUtil.SupportedIlluminaFormat[] formats,
+                              final IlluminaDataType[] dataTypes,
+                              final int lane,
+                              final List<Integer> tiles,
+                              final int[] cycles,
+                              final String readStructure,
+                              final List<Integer> filterTiles) {
+        makeFiles(formats, lane, tiles, cycles);
+        writeTileMetricsOutFile(makeMap(makeList(lane - 1, lane + 1, lane),
+                makeList(makeList(1, 2, 3), tiles, tiles)));
+
+        final String[] args = makeCheckerArgs(basecallDir, lane, readStructure, dataTypes, filterTiles, false, false);
+        Assert.assertEquals(runPicardCommandLine(args), 0);
+    }
+
+    @DataProvider(name = "negativeTestData")
+    public Object[][] negativeTestData() {
+        return new Object[][]{
+                { //Completely missing data types
+                        new SupportedIlluminaFormat[]{Bcl, Filter},
+                        new IlluminaDataType[]{BaseCalls, IlluminaDataType.QualityScores, IlluminaDataType.PF,
+                                IlluminaDataType.Position, IlluminaDataType.Barcodes},
+                        new ArrayList<String>(),
+                        new ArrayList<String>(),
+                        2, makeList(1101, 1201, 1301, 2101, 2201, 2301), IlluminaFileUtilTest.cycleRange(1, 152),
+                        "68T8B68T",
+                        2, new ArrayList<Integer>(), true
+                },
+                {
+                        new SupportedIlluminaFormat[]{Bcl, Filter},
+                        new IlluminaDataType[]{BaseCalls, IlluminaDataType.QualityScores, IlluminaDataType.PF},
+                        makeList("BaseCalls/L002/C13.1/s_2_1201.bcl", "BaseCalls/L002/C13.1/s_2_2101.bcl"),
+                        makeList("BaseCalls/L002/s_2_2101.filter"),
+                        2, makeList(1101, 1201, 1301, 2101, 2201, 2301), IlluminaFileUtilTest.cycleRange(1, 20), "13T",
+                        3, new ArrayList<Integer>(), true
+                },
+                {
+                        new SupportedIlluminaFormat[]{Bcl, Filter},
+                        new IlluminaDataType[]{BaseCalls, IlluminaDataType.QualityScores, IlluminaDataType.PF},
+                        new ArrayList<String>(),
+                        new ArrayList<String>(),
+                        5, makeList(1101, 1201, 1301, 2101, 2201, 2301), IlluminaFileUtilTest.cycleRange(1, 152),
+                        "250T",
+                        98, new ArrayList<Integer>(), true
+                },
+                {
+                        new SupportedIlluminaFormat[]{Bcl, Filter},
+                        new IlluminaDataType[]{BaseCalls, IlluminaDataType.QualityScores, IlluminaDataType.PF},
+                        new ArrayList<String>(),
+                        new ArrayList<String>(),
+                        5, makeList(1101, 1201, 1301, 2101, 2201, 2301), IlluminaFileUtilTest.cycleRange(1, 152),
+                        "250T",
+                        98, makeList(1301, 2201), true
+                }
+        };
+    }
+
+    @Test(dataProvider = "negativeTestData")
+    public void negativeTests(final IlluminaFileUtil.SupportedIlluminaFormat[] formats,
+                              final IlluminaDataType[] dataTypes,
+                              final List<String> filesToDelete,
+                              final List<String> filesToEmpty,
+                              final int lane,
+                              final List<Integer> tiles,
+                              final int[] cycles,
+                              final String readStructure,
+                              final int expectedNumErrors,
+                              final List<Integer> filterTiles,
+                              final boolean makeFakeFiles) {
+        makeFiles(formats, lane, tiles, cycles);
+        IlluminaFileUtilTest.deleteRelativeFiles(intensityDir, filesToDelete);
+        IlluminaFileUtilTest.emptyRelativeFiles(intensityDir, filesToEmpty);
+        writeTileMetricsOutFile(makeMap(makeList(lane - 1, lane + 1, lane), makeList(makeList(1, 2, 3), tiles, tiles)));
+
+        final String[] args = makeCheckerArgs(basecallDir, lane, readStructure, dataTypes, filterTiles, makeFakeFiles, false);
+        Assert.assertEquals(runPicardCommandLine(args), expectedNumErrors);
+        //if we previously faked files make sure CheckIlluminaDirectory returns with no failures
+        if (makeFakeFiles) {
+            Assert.assertEquals(runPicardCommandLine(args), 0);
+        }
+    }
+
+    public void writeFileOfSize(final File file, final int size) {
+        try {
+            final BufferedWriter writer = new BufferedWriter(new FileWriter(file));
+            for (int i = 0; i < size; i++) {
+                final int toWrite = Math.min(1000, size);
+                final char[] writeBuffer = new char[toWrite];
+                for (int j = 0; j < writeBuffer.length; j++) {
+                    writeBuffer[j] = (char) (Math.random() * 150);
+                }
+
+                writer.write(writeBuffer);
+            }
+            writer.flush();
+            writer.close();
+        } catch (final Exception exc) {
+            throw new RuntimeException(exc);
+        }
+    }
+
+    @Test
+    public void differentSizedBclTest() {
+        final int lane = 5;
+        final List<Integer> tiles = makeList(1, 2, 3, 4);
+        final int[] cycles = IlluminaFileUtilTest.cycleRange(1, 50);
+        final IlluminaDataType[] dataTypes = new IlluminaDataType[]{BaseCalls, IlluminaDataType.QualityScores};
+
+        makeFiles(new SupportedIlluminaFormat[]{Bcl, Filter}, lane, tiles, cycles);
+        writeTileMetricsOutFile(makeMap(makeList(lane - 1, lane + 1, lane),
+                makeList(makeList(1, 2, 3), tiles, tiles)));
+
+        final File cycleDir = new File(basecallDir, "L005/C9.1");
+        writeFileOfSize(new File(cycleDir, "s_5_3.bcl"), 222);
+
+        final String[] args =
+                makeCheckerArgs(basecallDir, lane, "50T", dataTypes, new ArrayList<Integer>(), false, false);
+        Assert.assertEquals(runPicardCommandLine(args), 1);
+    }
+
+    @Test(expectedExceptions = SAMException.class)
+    public void basedirDoesntExistTest() {
+        final String[] args = makeCheckerArgs(new File("a_made_up_file/in_some_weird_location"), 1, "76T76T",
+                new IlluminaDataType[]{IlluminaDataType.Position},
+                new ArrayList<Integer>(), false, false);
+        runPicardCommandLine(args);
+    }
+
+    @Test
+    public void symlinkLocsTest() {
+        final List<Integer> tileList = makeList(1101, 1102, 1103, 2101, 2102, 2103);
+        final int lane = 5;
+        makeFiles(new SupportedIlluminaFormat[]{Bcl}, lane, tileList, IlluminaFileUtilTest.cycleRange(1, 50));
+        String[] args =
+                makeCheckerArgs(basecallDir, lane, "50T", new IlluminaDataType[]{Position}, new ArrayList<Integer>(),
+                        false,
+                        true);
+        writeTileMetricsOutFile(makeMap(makeList(lane), makeList(tileList)));
+
+        createSingleLocsFile();
+        final File intensityLaneDir = new File(intensityDir, IlluminaFileUtil.longLaneStr(lane));
+        intensityLaneDir.mkdirs();
+        Assert.assertEquals(runPicardCommandLine(args), 0);
+        //now that we have created the loc files lets test to make sure they are there
+        args = makeCheckerArgs(basecallDir, lane, "50T", new IlluminaDataType[]{IlluminaDataType.Position},
+                new ArrayList<Integer>(), false,
+                true);
+
+        Assert.assertEquals(runPicardCommandLine(args), 0);
+    }
+
+    private void createSingleLocsFile() {
+        try {
+            final File singleLocsFile = new File(intensityDir, "s.locs");
+            final FileWriter writer = new FileWriter(singleLocsFile);
+            writer.write("This is a test string.");
+            writer.close();
+        } catch (final IOException e) {
+            e.printStackTrace();
+        }
+
+    }
+}
diff --git a/src/tests/java/picard/illumina/CollectIlluminaBasecallingMetricsTest.java b/src/tests/java/picard/illumina/CollectIlluminaBasecallingMetricsTest.java
new file mode 100644
index 0000000..3f3fc9b
--- /dev/null
+++ b/src/tests/java/picard/illumina/CollectIlluminaBasecallingMetricsTest.java
@@ -0,0 +1,171 @@
+package picard.illumina;
+
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.metrics.MetricsFile;
+import org.testng.Assert;
+import org.testng.annotations.AfterTest;
+import org.testng.annotations.BeforeTest;
+import org.testng.annotations.Test;
+
+import java.io.File;
+import java.io.FileReader;
+import java.util.ArrayList;
+
+public class CollectIlluminaBasecallingMetricsTest {
+    private static final File TEST_DATA_DIR = new File("testdata/picard/illumina/CollectIlluminaBasecallingMetrics");
+
+    private File rootTestDir;
+
+    @BeforeTest
+    private void setUp() throws Exception {
+        rootTestDir = File.createTempFile("cibm.", ".tmp");
+        Assert.assertTrue(rootTestDir.delete());
+        Assert.assertTrue(rootTestDir.mkdir());
+        for (final File source : TEST_DATA_DIR.listFiles()) {
+            if (source.isDirectory() && !source.isHidden()) {
+                IOUtil.copyDirectoryTree(source, new File(rootTestDir.getPath(),source.getName()));
+            }
+        }
+    }
+
+    @AfterTest
+    private void tearDown() {
+        IOUtil.deleteDirectoryTree(rootTestDir);
+    }
+
+    @Test
+    public void testIndexedRunLane1() throws Exception {
+        final MetricsFile<IlluminaBasecallingMetrics, Integer> metricsFile = runIt(1, "25T8B25T","25T8B25T/Data/Intensities/BaseCalls", true);
+        final IlluminaBasecallingMetrics metric1 = metricsFile.getMetrics().get(0);
+        Assert.assertEquals(metric1.LANE, "1");
+        Assert.assertEquals(metric1.MOLECULAR_BARCODE_SEQUENCE_1, "AACAATGG");
+        Assert.assertEquals(metric1.MOLECULAR_BARCODE_NAME, "tagged_117");
+        Assert.assertEquals(metric1.MEAN_CLUSTERS_PER_TILE, 2.0);
+        Assert.assertEquals(metric1.SD_CLUSTERS_PER_TILE, 0.0);
+        Assert.assertEquals(metric1.MEAN_PF_CLUSTERS_PER_TILE, 2.0);
+        Assert.assertEquals(metric1.SD_PF_CLUSTERS_PER_TILE, 0.0);
+        Assert.assertEquals(metric1.MEAN_PCT_PF_CLUSTERS_PER_TILE, 100.0);
+        Assert.assertEquals(metric1.SD_PCT_PF_CLUSTERS_PER_TILE, 0.0);
+        Assert.assertEquals(metric1.TOTAL_CLUSTERS, 2);
+        Assert.assertEquals(metric1.TOTAL_CLUSTERS * 50, metric1.TOTAL_BASES);
+        Assert.assertEquals(metric1.PF_BASES, metric1.TOTAL_BASES * metric1.PF_CLUSTERS / metric1.TOTAL_CLUSTERS);
+
+        final IlluminaBasecallingMetrics metric2 = metricsFile.getMetrics().get(1);
+        Assert.assertEquals(metric2.LANE, "1");
+        Assert.assertEquals(metric2.MOLECULAR_BARCODE_SEQUENCE_1, "AACGCATT");
+        Assert.assertEquals(metric2.MOLECULAR_BARCODE_NAME, "tagged_741");
+        Assert.assertEquals(metric2.MEAN_CLUSTERS_PER_TILE, 3.0);
+        Assert.assertEquals(metric2.SD_CLUSTERS_PER_TILE, 0.0);
+        Assert.assertEquals(metric2.MEAN_PF_CLUSTERS_PER_TILE, 2.0);
+        Assert.assertEquals(metric2.SD_PF_CLUSTERS_PER_TILE, 0.0);
+        Assert.assertEquals(metric2.MEAN_PCT_PF_CLUSTERS_PER_TILE, 66.67);
+        Assert.assertEquals(metric2.SD_PCT_PF_CLUSTERS_PER_TILE, 0.0);
+        Assert.assertEquals(metric2.TOTAL_CLUSTERS, 3);
+        Assert.assertEquals(metric2.TOTAL_CLUSTERS * 50, metric2.TOTAL_BASES);
+        Assert.assertEquals(metric2.PF_BASES, metric2.TOTAL_BASES * metric2.PF_CLUSTERS / metric2.TOTAL_CLUSTERS);
+
+        final IlluminaBasecallingMetrics metric3 = metricsFile.getMetrics().get(2);
+        Assert.assertEquals(metric3.LANE, "1");
+        Assert.assertEquals(metric3.MOLECULAR_BARCODE_SEQUENCE_1, "ACAGGTAT");
+        Assert.assertEquals(metric3.MOLECULAR_BARCODE_NAME, "tagged_375");
+        Assert.assertEquals(metric3.MEAN_CLUSTERS_PER_TILE, 1.0);
+        Assert.assertEquals(metric3.SD_CLUSTERS_PER_TILE, 0.0);
+        Assert.assertEquals(metric3.MEAN_PF_CLUSTERS_PER_TILE, 1.0);
+        Assert.assertEquals(metric3.SD_PF_CLUSTERS_PER_TILE, 0.0);
+        Assert.assertEquals(metric3.MEAN_PCT_PF_CLUSTERS_PER_TILE, 100.0);
+        Assert.assertEquals(metric3.SD_PCT_PF_CLUSTERS_PER_TILE, 0.0);
+        Assert.assertEquals(metric3.TOTAL_CLUSTERS, 1);
+        Assert.assertEquals(metric3.TOTAL_CLUSTERS * 50, metric3.TOTAL_BASES);
+        Assert.assertEquals(metric3.PF_BASES, metric3.TOTAL_BASES * metric3.PF_CLUSTERS / metric3.TOTAL_CLUSTERS);
+
+        final IlluminaBasecallingMetrics metric4 = metricsFile.getMetrics().get(3);
+        Assert.assertEquals(metric4.LANE, "1");
+        Assert.assertEquals(metric4.MOLECULAR_BARCODE_SEQUENCE_1, "ACTAAGAC");
+        Assert.assertEquals(metric4.MOLECULAR_BARCODE_NAME, "tagged_630");
+        Assert.assertEquals(metric4.MEAN_CLUSTERS_PER_TILE, 2.0);
+        Assert.assertEquals(metric4.SD_CLUSTERS_PER_TILE, 0.0);
+        Assert.assertEquals(metric4.MEAN_PF_CLUSTERS_PER_TILE, 1.0);
+        Assert.assertEquals(metric4.SD_PF_CLUSTERS_PER_TILE, 0.0);
+        Assert.assertEquals(metric4.MEAN_PCT_PF_CLUSTERS_PER_TILE, 50.00);
+        Assert.assertEquals(metric4.SD_PCT_PF_CLUSTERS_PER_TILE, 0.0);
+        Assert.assertEquals(metric4.TOTAL_CLUSTERS, 2);
+        Assert.assertEquals(metric4.TOTAL_CLUSTERS * 50, metric4.TOTAL_BASES);
+        Assert.assertEquals(metric4.PF_BASES, metric4.TOTAL_BASES * metric4.PF_CLUSTERS / metric4.TOTAL_CLUSTERS);
+
+        final IlluminaBasecallingMetrics metric5 = metricsFile.getMetrics().get(4);
+        Assert.assertEquals(metric5.LANE, "1");
+        Assert.assertEquals(metric5.MOLECULAR_BARCODE_SEQUENCE_1, "AGCATGGA");
+        Assert.assertEquals(metric5.MOLECULAR_BARCODE_NAME, "tagged_908");
+        Assert.assertEquals(metric5.MEAN_CLUSTERS_PER_TILE, 1.0);
+        Assert.assertEquals(metric5.SD_CLUSTERS_PER_TILE, 0.0);
+        Assert.assertEquals(metric5.MEAN_PF_CLUSTERS_PER_TILE, 1.0);
+        Assert.assertEquals(metric5.SD_PF_CLUSTERS_PER_TILE, 0.0);
+        Assert.assertEquals(metric5.MEAN_PCT_PF_CLUSTERS_PER_TILE, 100.0);
+        Assert.assertEquals(metric5.SD_PCT_PF_CLUSTERS_PER_TILE, 0.0);
+        Assert.assertEquals(metric5.TOTAL_CLUSTERS, 1);
+        Assert.assertEquals(metric5.TOTAL_CLUSTERS * 50, metric5.TOTAL_BASES);
+        Assert.assertEquals(metric5.PF_BASES, metric5.TOTAL_BASES * metric5.PF_CLUSTERS / metric5.TOTAL_CLUSTERS);
+
+        final IlluminaBasecallingMetrics laneMetric = metricsFile.getMetrics().get(34);
+        Assert.assertEquals(laneMetric.LANE, "1");
+        Assert.assertEquals(laneMetric.MOLECULAR_BARCODE_SEQUENCE_1, null);
+        Assert.assertEquals(laneMetric.MOLECULAR_BARCODE_NAME, null);
+        Assert.assertEquals(laneMetric.MEAN_CLUSTERS_PER_TILE, 60.0);
+        Assert.assertEquals(laneMetric.SD_CLUSTERS_PER_TILE, 0.0);
+        Assert.assertEquals(laneMetric.MEAN_PF_CLUSTERS_PER_TILE, 50.0);
+        Assert.assertEquals(laneMetric.SD_PF_CLUSTERS_PER_TILE, 0.0);
+        Assert.assertEquals(laneMetric.MEAN_PCT_PF_CLUSTERS_PER_TILE, 83.33);
+        Assert.assertEquals(laneMetric.SD_PCT_PF_CLUSTERS_PER_TILE, 0.0);
+        Assert.assertEquals(laneMetric.TOTAL_CLUSTERS, 60);
+        Assert.assertEquals(laneMetric.TOTAL_CLUSTERS * 50, laneMetric.TOTAL_BASES);
+        Assert.assertEquals(laneMetric.PF_BASES, laneMetric.TOTAL_BASES * laneMetric.PF_CLUSTERS / laneMetric.TOTAL_CLUSTERS);
+    }
+
+    @Test
+    public void testNonIndexedRunLane1() throws Exception {
+        final MetricsFile<IlluminaBasecallingMetrics, Integer> metricsFile = runIt(1, "125T125T","125T125T/Data/Intensities/BaseCalls",false);
+        final IlluminaBasecallingMetrics laneMetric = metricsFile.getMetrics().get(0);
+
+        Assert.assertEquals(laneMetric.LANE, "1");
+        Assert.assertEquals(laneMetric.MOLECULAR_BARCODE_SEQUENCE_1, null);
+        Assert.assertEquals(laneMetric.MOLECULAR_BARCODE_NAME, null);
+        Assert.assertEquals(laneMetric.MEAN_CLUSTERS_PER_TILE, 2000.0);
+        Assert.assertEquals(laneMetric.SD_CLUSTERS_PER_TILE, 0.0);
+        Assert.assertEquals(laneMetric.MEAN_PF_CLUSTERS_PER_TILE,1863.0);
+        Assert.assertEquals(laneMetric.SD_PF_CLUSTERS_PER_TILE, 0.0);
+        Assert.assertEquals(laneMetric.MEAN_PCT_PF_CLUSTERS_PER_TILE, 93.15);
+        Assert.assertEquals(laneMetric.SD_PCT_PF_CLUSTERS_PER_TILE, 0.0);
+        Assert.assertEquals(laneMetric.TOTAL_BASES, 500000);
+        Assert.assertEquals(laneMetric.TOTAL_READS, 4000);
+        Assert.assertEquals(laneMetric.PF_BASES, 465750);
+        Assert.assertEquals(laneMetric.PF_READS, 3726);
+
+
+        Assert.assertEquals(metricsFile.getMetrics().size(),1);
+    }
+
+    private MetricsFile<IlluminaBasecallingMetrics, Integer> runIt(final int lane, final String readStructure, final String basecallsDirName, final boolean isIndexed) throws Exception {
+        final File metricsFile = File.createTempFile("cibm.", ".metrics");
+        metricsFile.deleteOnExit();
+
+        File basecallsDir = new File(rootTestDir.getPath(),basecallsDirName);
+
+        ArrayList<String> argsList = new ArrayList<String>();
+        argsList.add("BASECALLS_DIR=" + basecallsDir.getPath());
+        argsList.add("LANE=" + lane);
+        argsList.add("OUTPUT=" + metricsFile.getPath());
+
+        if (readStructure != null) argsList.add("READ_STRUCTURE=" + readStructure);
+        if (isIndexed) argsList.add("INPUT=" + new File(basecallsDir.getPath(),"barcodeData." + lane).getPath());
+
+        final String[] args = new String[argsList.size()];
+        argsList.toArray(args);
+
+        Assert.assertEquals(new CollectIlluminaBasecallingMetrics().instanceMain(args),0);
+
+        final MetricsFile<IlluminaBasecallingMetrics,Integer> retval =
+                new MetricsFile<IlluminaBasecallingMetrics,Integer>();
+        retval.read(new FileReader(metricsFile));
+        return retval;
+    }
+}
diff --git a/src/tests/java/picard/illumina/ExtractIlluminaBarcodesTest.java b/src/tests/java/picard/illumina/ExtractIlluminaBarcodesTest.java
new file mode 100644
index 0000000..76ef594
--- /dev/null
+++ b/src/tests/java/picard/illumina/ExtractIlluminaBarcodesTest.java
@@ -0,0 +1,321 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.illumina;
+
+import htsjdk.samtools.metrics.MetricsFile;
+import htsjdk.samtools.util.IOUtil;
+import org.testng.Assert;
+import org.testng.annotations.AfterTest;
+import org.testng.annotations.BeforeTest;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import picard.cmdline.CommandLineProgramTest;
+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 picard.util.BasicInputParser;
+
+import java.io.File;
+import java.io.FileReader;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * @author alecw at broadinstitute.org
+ */
+public class ExtractIlluminaBarcodesTest extends CommandLineProgramTest {
+    private static final File SINGLE_DATA_DIR = new File("testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls");
+    private static final File DUAL_DATA_DIR = new File("testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls");
+    private static final String[] BARCODES = {
+            "CAACTCTC",
+            "CAACTCTG", // This one is artificial -- one edit away from the first one
+            "ACAGGTAT",
+            "GACCGTTG",
+            "ATTATCAA",
+            "TGCTGCTG",
+            "AACAATGG",
+            "TGTAATCA",
+            "GCCGTCGA",
+            "GTCCACAG",
+            "TTGTCTAT",
+            "GTGGAGAC",
+            "TTGCAAAT"
+    };
+
+    private File basecallsDir;
+    private File dual;
+    private File qual;
+
+    public String getCommandLineProgramName() {
+        return ExtractIlluminaBarcodes.class.getSimpleName();
+    }
+
+    @BeforeTest
+    private void setUp() throws Exception {
+        basecallsDir = File.createTempFile("eib.", ".tmp");
+        Assert.assertTrue(basecallsDir.delete());
+        Assert.assertTrue(basecallsDir.mkdir());
+        IOUtil.copyDirectoryTree(SINGLE_DATA_DIR, basecallsDir);
+        dual = File.createTempFile("eib_dual", ".tmp");
+        Assert.assertTrue(dual.delete());
+        Assert.assertTrue(dual.mkdir());
+        IOUtil.copyDirectoryTree(DUAL_DATA_DIR, dual);
+        qual = File.createTempFile("eib_qual", ".tmp");
+        Assert.assertTrue(qual.delete());
+        Assert.assertTrue(qual.mkdir());
+        IOUtil.copyDirectoryTree(DUAL_DATA_DIR, qual);
+    }
+
+    @AfterTest
+    private void tearDown() {
+        IOUtil.deleteDirectoryTree(basecallsDir);
+        IOUtil.deleteDirectoryTree(dual);
+        IOUtil.deleteDirectoryTree(qual);
+    }
+
+    @Test
+    public void testSingleEndWithBarcodeAtStart() throws Exception {
+        final MetricsFile<ExtractIlluminaBarcodes.BarcodeMetric, Integer> metricsFile = runIt(1, "8B25T");
+        Assert.assertEquals(metricsFile.getMetrics().get(11).PERFECT_MATCHES, 1);
+    }
+
+    @Test
+    public void testSingleEndWithBarcodeAtEnd() throws Exception {
+        final MetricsFile<ExtractIlluminaBarcodes.BarcodeMetric, Integer> metricsFile = runIt(1, "25T8B");
+        Assert.assertEquals(metricsFile.getMetrics().get(0).PERFECT_MATCHES, 5);
+    }
+
+    @Test
+    public void testPairedEndWithBarcodeOnFirstEnd() throws Exception {
+        final MetricsFile<ExtractIlluminaBarcodes.BarcodeMetric, Integer> metricsFile = runIt(1, "25T8B25T");
+        Assert.assertEquals(metricsFile.getMetrics().get(0).PERFECT_MATCHES, 5);
+    }
+
+    @Test
+    public void testPairedEndWithBarcodeOnSecondEnd() throws Exception {
+        final MetricsFile<ExtractIlluminaBarcodes.BarcodeMetric, Integer> metricsFile = runIt(1, "25T25T8B");
+        Assert.assertEquals(metricsFile.getMetrics().get(12).PERFECT_MATCHES, 1);
+    }
+
+    @Test
+    public void testNonWritableOutputFile() throws Exception {
+        final File existingFile = new File(basecallsDir, "s_1_1101_barcode.txt.gz");
+        try {
+            existingFile.setReadOnly();
+            final String readStructure = "25T8B25T";
+            final int lane = 1;
+
+            final File metricsFile = File.createTempFile("eib.", ".metrics");
+            metricsFile.deleteOnExit();
+
+            final List<String> args = new ArrayList<String>(Arrays.asList(
+                    "BASECALLS_DIR=" + basecallsDir.getPath(),
+                    "LANE=" + lane,
+                    "READ_STRUCTURE=" + readStructure,
+                    "METRICS_FILE=" + metricsFile.getPath(),
+                    "COMPRESS_OUTPUTS=true"
+            ));
+            for (final String barcode : BARCODES) {
+                args.add("BARCODE=" + barcode);
+            }
+            Assert.assertEquals(runPicardCommandLine(args), 4);
+        }
+        finally {
+            existingFile.setWritable(true);
+        }
+
+    }
+
+    /**
+     * 4 cases tested:
+     * * exact match to ACAGTG
+     * * inexact match within threshold to TGACCA
+     * * inexact match not within threshold to TGACCA
+     * * inexact match where the next match is too close to ACAGTG
+     * @throws Exception
+     */
+    @Test
+    public void testBarcodeMatching() throws Exception {
+        final int lane = 1;
+        final int barcodePosition = 26;
+        final MetricsFile<ExtractIlluminaBarcodes.BarcodeMetric, Integer> metricsFile = runIt(lane, "25T8B25T");
+
+        ExtractIlluminaBarcodes.BarcodeMetric metricOne = null;
+        ExtractIlluminaBarcodes.BarcodeMetric metricTwo = null;
+        ExtractIlluminaBarcodes.BarcodeMetric metricNoMatch = null;
+        for (final ExtractIlluminaBarcodes.BarcodeMetric metric : metricsFile.getMetrics()) {
+            if (metric.BARCODE.equals(BARCODES[0])) {
+                metricOne = metric;
+            } else if (metric.BARCODE.equals(BARCODES[2])) {
+                metricTwo = metric;
+            } else if (metric.BARCODE.equals("NNNNNNNN")) {
+                metricNoMatch = metric;
+            }
+        }
+        Assert.assertEquals(metricOne.PERFECT_MATCHES, 5);
+        Assert.assertEquals(metricOne.ONE_MISMATCH_MATCHES, 0);
+        Assert.assertEquals(metricOne.PF_READS, 3);
+        Assert.assertEquals(metricOne.READS, 5);
+
+        // one inexact match
+        Assert.assertEquals(metricTwo.READS, 4);
+        Assert.assertEquals(metricTwo.ONE_MISMATCH_MATCHES, 0);
+
+        Assert.assertEquals(metricNoMatch.READS, 140);
+        Assert.assertEquals(metricNoMatch.PF_READS, 112);
+
+        // Check the barcode files themselves
+        final File[] barcodeFiles = IOUtil.getFilesMatchingRegexp(basecallsDir, "s_" + lane + "_\\d{4}_barcode.txt");
+        Arrays.sort(barcodeFiles);
+
+        final BasicInputParser barcodeParser = new BasicInputParser(true, barcodeFiles);
+
+        // Exact match
+        String[] illuminaFields = barcodeParser.next();
+        Assert.assertEquals(illuminaFields[1], "Y");
+        Assert.assertEquals(illuminaFields[2], "CAACTCTC");
+
+        // Inexact match
+        illuminaFields = barcodeParser.next();
+        Assert.assertEquals(illuminaFields[1], "Y");
+        Assert.assertEquals(illuminaFields[2], "ACAGGTAT");
+
+        // Too many mismatches
+        illuminaFields = barcodeParser.next();
+        Assert.assertEquals(illuminaFields[1], "N");
+
+        barcodeParser.close();
+
+        // Tack on test of barcode-informed Illumina Basecall parsing
+        final ReadStructure rs = new ReadStructure("25T8B25T");
+        final IlluminaDataProviderFactory factory = new IlluminaDataProviderFactory(basecallsDir, lane, rs,
+                new BclQualityEvaluationStrategy(BclQualityEvaluationStrategy.ILLUMINA_ALLEGED_MINIMUM_QUALITY),
+                IlluminaDataType.BaseCalls, IlluminaDataType.QualityScores, IlluminaDataType.Barcodes);
+        testParsing(factory, rs, metricOne, barcodePosition);
+    }
+
+    @Test
+    public void testDualBarcodes() throws Exception {
+        final File metricsFile = File.createTempFile("dual.", ".metrics");
+        metricsFile.deleteOnExit();
+
+        final String[] args = new String[] {
+                "BASECALLS_DIR=" + dual.getAbsolutePath(),
+                "LANE=" + 1,
+                "METRICS_FILE=" + metricsFile.getPath(),
+                "READ_STRUCTURE=" + "25T8B8B25T",
+                "BARCODE=" + "CAATAGTCCGACTCTC"
+        };
+
+        Assert.assertEquals(runPicardCommandLine(args), 0);
+        final MetricsFile<ExtractIlluminaBarcodes.BarcodeMetric,Integer> result =  new MetricsFile<ExtractIlluminaBarcodes.BarcodeMetric,Integer>();
+        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");
+    }
+
+    /**
+     *  Testing the quality thresholding. Looking at a single barcode (ACAGTG) with a min quality of 25 and no mismatches
+     */
+    @Test(dataProvider = "qualityBarcodeData")
+    public void testQualityBarcodes(final int quality,
+                                    final int maxMismatches, final int perfectMatches, final int oneMismatch,
+                                    final String testName) throws Exception {
+        final File metricsFile = File.createTempFile("qual.", ".metrics");
+        metricsFile.deleteOnExit();
+
+        final String[] args = new String[] {
+                "BASECALLS_DIR=" + qual.getPath(),
+                "LANE=" + 1,
+                "READ_STRUCTURE=25T8B25T",
+                "METRICS_FILE=" + metricsFile.getPath(),
+                "MINIMUM_BASE_QUALITY=" + quality,
+                "MAX_MISMATCHES=" + maxMismatches,
+                "BARCODE=CAATAGTC"
+        };
+
+        Assert.assertEquals(runPicardCommandLine(args), 0);
+        final MetricsFile<ExtractIlluminaBarcodes.BarcodeMetric,Integer> result =  new MetricsFile<ExtractIlluminaBarcodes.BarcodeMetric,Integer>();
+        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 + "'");
+    }
+
+    @DataProvider(name = "qualityBarcodeData")
+    public Object[][] getQualityTestData() {
+        return new Object[][] {
+                {16, 0, 1, 0, "Barcode has good quality, 1 match"},
+                {25, 0, 0, 0, "Barcode has quality failures, no matches"}
+        };
+    }
+
+    private void testParsing(final IlluminaDataProviderFactory factory, final ReadStructure readStructure, final ExtractIlluminaBarcodes.BarcodeMetric metricACAGTG, final int barcodePosition) {
+
+        int numReads = 0;
+
+        final IlluminaDataProvider dataProvider = factory.makeDataProvider();
+        while (dataProvider.hasNext()) {
+            final ClusterData cluster = dataProvider.next();
+
+            if(metricACAGTG.BARCODE.equals(cluster.getMatchedBarcode())) {
+                ++numReads;
+            }
+
+            Assert.assertEquals(cluster.getRead(readStructure.templates.getIndices()[0]).getQualities().length, barcodePosition - 1);
+            Assert.assertEquals(cluster.getRead(readStructure.templates.getIndices()[0]).getBases().length, barcodePosition - 1);
+        }
+        Assert.assertEquals(numReads, metricACAGTG.READS);
+        dataProvider.close();
+    }
+
+    private MetricsFile<ExtractIlluminaBarcodes.BarcodeMetric, Integer> runIt(final int lane, final String readStructure)
+            throws Exception {
+        final File metricsFile = File.createTempFile("eib.", ".metrics");
+        metricsFile.deleteOnExit();
+
+        final List<String> args = new ArrayList<String>(Arrays.asList(
+                "BASECALLS_DIR=" + basecallsDir.getPath(),
+                "LANE=" + lane,
+                "READ_STRUCTURE=" + readStructure,
+                "METRICS_FILE=" + metricsFile.getPath()
+        ));
+        for (final String barcode : BARCODES) {
+            args.add("BARCODE=" + barcode);
+        }
+        return runIt(args, metricsFile);
+    }
+
+    private MetricsFile<ExtractIlluminaBarcodes.BarcodeMetric, Integer> runIt(final List<String> args, final File metricsFile) throws Exception {
+        // Generate _barcode.txt files and metrics file.
+        Assert.assertEquals(runPicardCommandLine(args), 0);
+
+        final MetricsFile<ExtractIlluminaBarcodes.BarcodeMetric,Integer> retval =  new MetricsFile<ExtractIlluminaBarcodes.BarcodeMetric,Integer>();
+        retval.read(new FileReader(metricsFile));
+        return retval;
+    }
+}
diff --git a/src/tests/java/picard/illumina/IlluminaBasecallsToFastqTest.java b/src/tests/java/picard/illumina/IlluminaBasecallsToFastqTest.java
new file mode 100644
index 0000000..953665d
--- /dev/null
+++ b/src/tests/java/picard/illumina/IlluminaBasecallsToFastqTest.java
@@ -0,0 +1,184 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2013 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.illumina;
+
+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.annotations.Test;
+import picard.cmdline.CommandLineProgramTest;
+import picard.illumina.parser.ReadStructure;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+public class IlluminaBasecallsToFastqTest extends CommandLineProgramTest {
+
+    private static final File BASECALLS_DIR = new File("testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls");
+    private static final File DUAL_BASECALLS_DIR = new File("testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls");
+    private static final File TEST_DATA_DIR = new File("testdata/picard/illumina/25T8B25T/fastq");
+    private static final File DUAL_TEST_DATA_DIR = new File("testdata/picard/illumina/25T8B8B25T/fastq");
+
+    public String getCommandLineProgramName() {
+        return IlluminaBasecallsToFastq.class.getSimpleName();
+    }
+
+    @Test
+    public void testNonBarcoded() throws Exception {
+        final String suffix = ".1.fastq";
+        final File outputFastq1 = File.createTempFile("nonBarcoded.", suffix);
+        outputFastq1.deleteOnExit();
+        final String outputPrefix = outputFastq1.getAbsolutePath().substring(0, outputFastq1.getAbsolutePath().length() - suffix.length());
+        final File outputFastq2 = new File(outputPrefix + ".2.fastq");
+        outputFastq2.deleteOnExit();
+        final int lane = 1;
+        runPicardCommandLine(new String[]{
+                "BASECALLS_DIR=" + BASECALLS_DIR,
+                "LANE=" + lane,
+                "READ_STRUCTURE=25T8B25T",
+                "OUTPUT_PREFIX=" + outputPrefix,
+                "RUN_BARCODE=HiMom",
+                "MACHINE_NAME=machine1",
+                "FLOWCELL_BARCODE=abcdeACXX"
+        });
+        IOUtil.assertFilesEqual(outputFastq1, new File(TEST_DATA_DIR, "nonBarcoded.1.fastq"));
+        IOUtil.assertFilesEqual(outputFastq2, new File(TEST_DATA_DIR, "nonBarcoded.2.fastq"));
+    }
+
+    @Test
+    public void testMultiplexWithIlluminaReadNameHeaders() throws Exception {
+        final File outputDir = File.createTempFile("testMultiplexRH.", ".dir");
+        try {
+            outputDir.delete();
+            outputDir.mkdir();
+            outputDir.deleteOnExit();
+
+            final String filePrefix = "testMultiplexRH";
+            final File outputPrefix = new File(outputDir, filePrefix);
+
+            runPicardCommandLine(new String[]{
+                    "BASECALLS_DIR=" + BASECALLS_DIR,
+                    "LANE=" + 1,
+                    "RUN_BARCODE=HiMom",
+                    "READ_STRUCTURE=" + "25T8B25T",
+                    "OUTPUT_PREFIX=" + outputPrefix.getAbsolutePath(),
+                    "MACHINE_NAME=machine1",
+                    "FLOWCELL_BARCODE=abcdeACXX",
+                    "READ_NAME_FORMAT=" + IlluminaBasecallsToFastq.ReadNameFormat.ILLUMINA
+            });
+
+            final String[] filenames = new String[]{
+                filePrefix + ".1.fastq",
+                filePrefix + ".barcode_1.fastq"
+            };
+            for (final String filename : filenames) {
+                IOUtil.assertFilesEqual(new File(outputDir, filename), new File(TEST_DATA_DIR, filename));
+            }
+
+        } finally {
+            TestUtil.recursiveDelete(outputDir);
+        }
+    }
+
+    @Test
+    public void testDeMultiplexed() throws Exception {
+        runStandardTest(1, "multiplexedBarcode.", "mp_barcode.params", 1, "25T8B25T", BASECALLS_DIR, TEST_DATA_DIR);
+    }
+
+    @Test
+    public void testDualBarcodes() throws Exception {
+        runStandardTest(1, "dualBarcode.", "barcode_double.params", 2, "25T8B8B25T", DUAL_BASECALLS_DIR, DUAL_TEST_DATA_DIR);
+    }
+
+    /**
+     * This test utility takes a libraryParamsFile and generates output sam files through IlluminaBasecallsToFastq to compare against
+     * preloaded test data
+     *
+     * @param jobName
+     * @param libraryParamsFile
+     * @param concatNColumnFields
+     * @param readStructureString
+     * @throws Exception
+     */
+    private void runStandardTest(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<File> outputPrefixes = new ArrayList<File>();
+            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();
+
+            runPicardCommandLine(new String[]{
+                    "BASECALLS_DIR=" + baseCallsDir,
+                    "LANE=" + lane,
+                    "RUN_BARCODE=HiMom",
+                    "READ_STRUCTURE=" + readStructureString,
+                    "MULTIPLEX_PARAMS=" + libraryParams,
+                    "MACHINE_NAME=machine1",
+                    "FLOWCELL_BARCODE=abcdeACXX"
+            });
+
+            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";
+                    IOUtil.assertFilesEqual(new File(outputSam.getParentFile(), filename), new File(testDataDir, filename));
+                }
+                for (int i = 1; i <= readStructure.barcodes.length(); ++i) {
+                    final String filename = outputSam.getName() + ".barcode_" + i + ".fastq";
+                    IOUtil.assertFilesEqual(new File(outputSam.getParentFile(), filename), new File(testDataDir, filename));
+                }
+            }
+        } finally {
+            TestUtil.recursiveDelete(outputDir);
+        }
+    }
+}
diff --git a/src/tests/java/picard/illumina/IlluminaBasecallsToSamAdapterClippingTest.java b/src/tests/java/picard/illumina/IlluminaBasecallsToSamAdapterClippingTest.java
new file mode 100644
index 0000000..ac4f64f
--- /dev/null
+++ b/src/tests/java/picard/illumina/IlluminaBasecallsToSamAdapterClippingTest.java
@@ -0,0 +1,98 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.illumina;
+
+import htsjdk.samtools.ReservedTagConstants;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import org.testng.Assert;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import picard.cmdline.CommandLineProgramTest;
+
+import java.io.File;
+
+
+/**
+ * Run IlluminaBasecallsToSam on a sample tests, then sanity-check the generated SAM file
+ */
+public class IlluminaBasecallsToSamAdapterClippingTest extends CommandLineProgramTest {
+
+    private static final File TEST_DATA_DIR = new File("testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls");
+    private static final String ALIAS = "myalias";
+    private static final String RUN_BARCODE = "305PJAAXX080716";
+
+    public String getCommandLineProgramName() {
+        return IlluminaBasecallsToSam.class.getSimpleName();
+    }
+
+    /**
+     * Run IlluminaBasecallsToSam on a few test cases, and verify that results agree with hand-checked expectation.
+     */
+    @Test(dataProvider="data")
+    public void testBasic(final String LANE, final String readStructure) throws Exception {
+        // Create the SAM file from Gerald output
+        final File samFile = File.createTempFile("." + LANE + ".illuminaBasecallsToSam", ".sam");
+        samFile.deleteOnExit();
+        final String[] illuminaArgv = {
+                "BASECALLS_DIR=" + TEST_DATA_DIR,
+                "LANE=" + LANE,
+                "RUN_BARCODE=" + RUN_BARCODE,
+                "READ_STRUCTURE=" + readStructure,
+                "OUTPUT=" + samFile,
+                "ALIAS=" + ALIAS
+        };
+        Assert.assertEquals(runPicardCommandLine(illuminaArgv), 0);
+
+        System.out.println ("Ouput Sam file is in " + samFile.getAbsolutePath());
+
+        // Read the file and confirm it contains what is expected
+        final SamReader samReader = SamReaderFactory.makeDefault().open(samFile);
+
+        // look for clipped adaptor attribute in lane 3 PE (2) and in lane 6 (1) non-PE
+        int count = 0;
+        for (final SAMRecord record : samReader) {
+            if (record.getIntegerAttribute(ReservedTagConstants.XT) != null) {
+                count++;
+                if ((count == 1 || count == 2) && LANE.equals("2")){
+                    Assert.assertEquals (114, (int)record.getIntegerAttribute(ReservedTagConstants.XT));
+                } else if (count == 1 || count == 2 && LANE.equals("1")) {
+                    Assert.assertEquals(68, (int) record.getIntegerAttribute(ReservedTagConstants.XT));
+                }
+            }
+        }
+        samReader.close();
+    }
+
+    @DataProvider(name="data")
+    private Object[][] getIlluminaBasecallsToSamTestData(){
+        return new Object[][] {
+                {"1", "125T125T"},
+                {"2", "125T125T"},
+        };
+    }
+
+
+}
\ No newline at end of file
diff --git a/src/tests/java/picard/illumina/IlluminaBasecallsToSamTest.java b/src/tests/java/picard/illumina/IlluminaBasecallsToSamTest.java
new file mode 100644
index 0000000..c9cc60e
--- /dev/null
+++ b/src/tests/java/picard/illumina/IlluminaBasecallsToSamTest.java
@@ -0,0 +1,168 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.illumina;
+
+import htsjdk.samtools.util.BufferedLineReader;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.LineReader;
+import htsjdk.samtools.util.StringUtil;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+import picard.cmdline.CommandLineProgramTest;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * Run IlluminaBasecallsToSam in various barcode & non-barcode modes
+ *
+ * @author alecw at broadinstitute.org
+ */
+public class IlluminaBasecallsToSamTest extends CommandLineProgramTest {
+
+    private static final File BASECALLS_DIR = new File("testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls");
+    private static final File DUAL_BASECALLS_DIR = new File("testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls");
+    private static final File TEST_DATA_DIR = new File("testdata/picard/illumina/25T8B25T/sams");
+    private static final File DUAL_TEST_DATA_DIR = new File("testdata/picard/illumina/25T8B8B25T/sams");
+
+    public String getCommandLineProgramName() {
+        return IlluminaBasecallsToSam.class.getSimpleName();
+    }
+
+    @Test
+    public void testTileNumberComparator() {
+        Assert.assertTrue(IlluminaBasecallsConverter.TILE_NUMBER_COMPARATOR.compare(100, 10) < 0, "");
+        Assert.assertTrue(IlluminaBasecallsConverter.TILE_NUMBER_COMPARATOR.compare(20, 200) > 0, "");
+        Assert.assertTrue(IlluminaBasecallsConverter.TILE_NUMBER_COMPARATOR.compare(10, 10) == 0, "");
+    }
+
+
+    @Test
+    public void testNonBarcoded() throws Exception {
+        final File outputBam = File.createTempFile("nonBarcoded.", ".sam");
+        outputBam.deleteOnExit();
+        final int lane = 1;
+
+        runPicardCommandLine(new String[]{
+                "BASECALLS_DIR=" + BASECALLS_DIR,
+                "LANE=" + lane,
+                "READ_STRUCTURE=25S8S25T",
+                "OUTPUT=" + outputBam,
+                "RUN_BARCODE=HiMom",
+                "SAMPLE_ALIAS=HiDad",
+                "LIBRARY_NAME=Hello, World"
+        });
+        IOUtil.assertFilesEqual(outputBam, new File(TEST_DATA_DIR, "nonBarcoded.sam"));
+    }
+
+    @Test
+    public void testMultiplexed() throws Exception {
+        runStandardTest(1, "multiplexedBarcode.", "barcode.params", 1, "25T8B25T", BASECALLS_DIR, TEST_DATA_DIR);
+    }
+
+    //Same as testMultiplexed except we use BARCODE_1 instead of BARCODE
+    @Test
+    public void testMultiplexedWithAlternateBarcodeName() throws Exception {
+        runStandardTest(1, "singleBarcodeAltName.", "multiplexed_positive_rgtags.params", 1, "25T8B25T", BASECALLS_DIR, TEST_DATA_DIR);
+    }
+
+    @Test
+    public void testDualBarcodes() throws Exception {
+        runStandardTest(1, "dualBarcode.", "barcode_double.params", 1, "25T8B8B25T", DUAL_BASECALLS_DIR, DUAL_TEST_DATA_DIR);
+    }
+
+    /**
+     * Ensures that a run missing a barcode from the parameters file throws an error.
+     * 
+     * TODO: This testcase isn't broken, but can spawn an issue with FileChannelJDKBugWorkAround since it expects
+     * an exception to be thrown.
+     */
+    @Test(groups={"broken"})
+    public void testCorruptDataReturnCode() throws Exception {
+        boolean exceptionThrown = false;
+        try {
+            runStandardTest(9, "dualBarcode.", "negative_test.params", 2, "30T8B8B", BASECALLS_DIR, TEST_DATA_DIR);
+        } catch (Throwable e) {
+            exceptionThrown = true;
+        } finally {
+            Assert.assertTrue(exceptionThrown);
+        }
+    }
+
+    /**
+     * This test utility takes a libraryParamsFile and generates output sam files through IlluminaBasecallsToSam to compare against
+     * preloaded test data
+     *
+     * @param jobName
+     * @param libraryParamsFile
+     * @param concatNColumnFields
+     * @param readStructure
+     * @throws Exception
+     */
+    private void runStandardTest(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<File> samFiles = new ArrayList<File>();
+        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();
+
+        runPicardCommandLine(new String[]{
+                "BASECALLS_DIR=" + baseCallsDir,
+                "LANE=" + lane,
+                "RUN_BARCODE=HiMom",
+                "READ_STRUCTURE=" + readStructure,
+                "LIBRARY_PARAMS=" + libraryParams
+        });
+
+        for (final File outputSam : samFiles) {
+            IOUtil.assertFilesEqual(outputSam, new File(testDataDir, outputSam.getName()));
+        }
+    }
+}
diff --git a/src/tests/java/picard/illumina/IlluminaLaneMetricsCollectorTest.java b/src/tests/java/picard/illumina/IlluminaLaneMetricsCollectorTest.java
new file mode 100644
index 0000000..a986279
--- /dev/null
+++ b/src/tests/java/picard/illumina/IlluminaLaneMetricsCollectorTest.java
@@ -0,0 +1,76 @@
+package picard.illumina;
+
+import htsjdk.samtools.SAMException;
+import htsjdk.samtools.util.IOUtil;
+import picard.illumina.parser.ReadStructure;
+import org.testng.Assert;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+
+import java.io.File;import java.lang.Exception;import java.lang.Object;import java.lang.String;
+
+/** @author mccowan */
+public class IlluminaLaneMetricsCollectorTest {
+    final static File TEST_DIRECTORY = new File("testdata/picard/illumina/IlluminaLaneMetricsCollectorTest");
+    final static File TILE_RUN_DIRECTORY = new File(TEST_DIRECTORY, "tileRuns");
+
+    private static File buildOutputFile(final File directory, final String prefix, final String extension) {
+        return new File(directory, String.format("%s.%s", prefix, extension));
+    }
+
+    @Test(dataProvider = "testLaneMetrics")
+    public void testWriteLaneMetrics(final String testRun) throws Exception {
+        final CollectIlluminaLaneMetrics clp = new CollectIlluminaLaneMetrics();
+        clp.OUTPUT_DIRECTORY = IOUtil.createTempDir("illuminaLaneMetricsCollectorTest", null);
+        clp.RUN_DIRECTORY = new File(TEST_DIRECTORY, testRun);
+        clp.OUTPUT_PREFIX = "test";
+        clp.READ_STRUCTURE = new ReadStructure("101T8B101T");
+        clp.doWork();
+
+        final File laneMetricsFile = buildOutputFile(clp.OUTPUT_DIRECTORY, clp.OUTPUT_PREFIX, IlluminaLaneMetrics.getExtension());
+        final File canonicalOutputFile = buildOutputFile(TEST_DIRECTORY, testRun, IlluminaLaneMetrics.getExtension());
+
+        IOUtil.assertFilesEqual(canonicalOutputFile, laneMetricsFile);
+
+        IOUtil.deleteDirectoryTree(clp.OUTPUT_DIRECTORY);
+    }
+
+    @DataProvider(name = "testLaneMetrics")
+    public Object[][] testLaneMetricsDataProvider() {
+        return new Object[][] {
+                {"130321_SL-MAK_0035_FC000000000-A306B"},
+                {"130318_SL-HBB_0226_BFCC1WYMACXX"},
+                {"130401_SL-HAC_0022_BH07PBADXX"}
+        };
+    }
+
+    @Test(dataProvider = "testCollectIlluminaLaneMetrics")
+    public void testCollectIlluminaLaneMetrics(final String testRun, final ReadStructure readStructure) throws Exception {
+        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.READ_STRUCTURE = readStructure;
+        clp.doWork();
+
+        final File phasingMetricsPhile = buildOutputFile(clp.OUTPUT_DIRECTORY, clp.OUTPUT_PREFIX, IlluminaPhasingMetrics.getExtension());
+        final File canonicalPhasingPhile = buildOutputFile(runDirectory, testRun, IlluminaPhasingMetrics.getExtension());
+        IOUtil.assertFilesEqual(canonicalPhasingPhile, phasingMetricsPhile);
+
+        final File laneMetricsFile = buildOutputFile(clp.OUTPUT_DIRECTORY, clp.OUTPUT_PREFIX, IlluminaLaneMetrics.getExtension());
+        final File canonicalLaneFile = buildOutputFile(runDirectory, testRun, IlluminaLaneMetrics.getExtension());
+        IOUtil.assertFilesEqual(canonicalLaneFile, laneMetricsFile);
+        IOUtil.deleteDirectoryTree(clp.OUTPUT_DIRECTORY);    }
+
+    @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")}
+        };
+    }
+}
diff --git a/src/tests/java/picard/illumina/ReadStructureTest.java b/src/tests/java/picard/illumina/ReadStructureTest.java
new file mode 100644
index 0000000..2081a4a
--- /dev/null
+++ b/src/tests/java/picard/illumina/ReadStructureTest.java
@@ -0,0 +1,179 @@
+package picard.illumina;
+
+import org.testng.Assert;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import picard.illumina.parser.ReadDescriptor;
+import picard.illumina.parser.ReadStructure;
+import picard.illumina.parser.ReadType;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import static htsjdk.samtools.util.CollectionUtil.makeList;
+import static picard.illumina.parser.ReadType.*;
+
+public class ReadStructureTest {
+
+    //to make construction of lists more intelligible
+    public ReadDescriptor rd(final int length, final ReadType rt) {
+        return new ReadDescriptor(length, rt);
+    }
+
+    //Many of these readStructures would be non-sensical but check different test classes/combinations
+    @DataProvider(name="validReadStructures")
+    public Object[][] validReadStructures() {
+        return new Object[][] {
+            {"2T",                    makeList(rd(2, T)),                 1, 0, 0},
+            {"1234B",                 makeList(rd(1234, B)),              0, 1, 0},
+            {Integer.MAX_VALUE + "S", makeList(rd(Integer.MAX_VALUE, S)), 0, 0, 1},
+
+            {"76T76T", makeList(rd(76, T), rd(76,  T)), 2, 0, 0},
+            {"76T1B",  makeList(rd(76, T), rd(1,   B)), 1, 1, 0},
+            {"76B1T",  makeList(rd(76, B), rd(1,   T)), 1, 1, 0},
+            {"1S1B",   makeList(rd(1,  S), rd(1,   B)), 0, 1, 1},
+            {"1T999S", makeList(rd(1,  T), rd(999, S)), 1, 0, 1},
+
+            {"100T20T100T",  makeList(rd(100, T),  rd(20,  T), rd(100,  T)),    3, 0, 0},
+            {"2S50S10S",     makeList(rd(2,   S),  rd(50,  S), rd(10,   S)),    0, 0, 3},
+            {"10T1B11T",     makeList(rd(10,  T),  rd(1,   B), rd(11,   T)),    2, 1, 0},
+            {"201T13T111B",  makeList(rd(201, T),  rd(13,  T), rd(111,  B)),    2, 1, 0},
+            {"15B1T1T",      makeList(rd(15,  B),  rd(1,   T), rd(1,    T)),    2, 1, 0},
+            {"99B7T6B",      makeList(rd(99,  B),  rd(7,   T), rd(6,    B)),    1, 2, 0},
+            {"631B776S638T", makeList(rd(631, B),  rd(776, S), rd(638,  T)),    1, 1, 1},
+
+
+            {"3T7B60S2T",     makeList(rd(3,  T),    rd(7,  B),   rd(60,   S),    rd(2,  T)),   2, 1, 1},
+            {"20B9S100T1T",   makeList(rd(20, B),    rd(9,  S),   rd(100,  T),    rd(1,  T)),   2, 1, 1},
+            {"33T42B9T81B",   makeList(rd(33, T),    rd(42, B),   rd(9,    T),    rd(81, B)),   2, 2, 0},
+            {"28B56B13T123S", makeList(rd(28, B),    rd(56, B),   rd(13,   T),    rd(123,S)),   1, 2, 1},
+            {"92S8B8B32B",    makeList(rd(92, S),    rd(8,  B),   rd(8,    B),    rd(32, B)),   0, 3, 1},
+
+            {"2S88B7T8S9T9T84B100S2S4B3B", makeList(rd(2,S), rd(88,B), rd(7,T), rd(8,S), rd(9,T), rd(9,T), rd(84,B), rd(100,S), rd(2,S),  rd(4,B), rd(3,B)), 3, 4, 4}
+        };
+    }
+
+    @DataProvider(name="invalidReadStructures")
+    public Object[][] invalidReadStructures() {
+        return new Object[][]{
+                {"",         new ArrayList<ReadDescriptor>()},
+                {"0T",       makeList(rd(0,  T))},
+                {"-1T",      makeList(rd(-1, T))},
+                {"0S" ,      makeList(rd(0,  S))},
+                {"-1B",      makeList(rd(-1, B))},
+                {"8C",       null},
+                {"B5",       null},
+                {"SS",       null},
+                {"75TS",     null},
+                {"8*T",      null},
+                {"-66S1B",   makeList(rd(-66, S), rd(1, B))},
+                {"-0T5B8C",  null},
+                {"77T82B0S", makeList(rd(77, T), rd(82, B), rd(0, S))}
+        };
+    }
+
+    @DataProvider(name="invalidReadStructuresFromList")
+    public Object[][] invalidReadStructuresFromList() {
+        int numTests = 0;
+        for(final Object [] args : invalidReadStructures()) {
+            if(args[1] != null) ++numTests;
+        }
+
+        final Object [][] outObjs = new Object[numTests][2];
+
+        numTests = 0;
+        for(final Object [] args : invalidReadStructures()) {
+            if(args[1] != null) {
+                outObjs[numTests++] = args;
+            }
+        }
+
+        return outObjs;
+    }
+
+    @Test(dataProvider = "validReadStructures")
+    public void testValidStructuresFromString(final String rsString, final List<ReadDescriptor> descriptors, final int numTemplates, final int numBarcodes, final int numSkips) {
+        final ReadStructure readStructure = new ReadStructure(rsString);
+        testReadStructure(readStructure, rsString, descriptors, numTemplates, numBarcodes, numSkips);
+    }
+    
+    @Test(dataProvider = "validReadStructures")
+    public void testValidStructuresFromList(final String rsString, final List<ReadDescriptor> descriptors, final int numTemplates, final int numBarcodes, final int numSkips) {
+        final ReadStructure readStructure = new ReadStructure(descriptors);
+        testReadStructure(readStructure, rsString, descriptors, numTemplates, numBarcodes, numSkips);
+    }
+
+    private void testReadStructure(final ReadStructure readStructure, final String structureString, final List<ReadDescriptor> descriptors, final int numTemplates, final int numBarcodes, final int numSkips) {
+        Assert.assertEquals(readStructure.toString(), structureString);
+
+        int totalCycles = 0;
+
+        int tIndex = 0;
+        int bIndex = 0;
+        int sIndex = 0;
+
+        for(int i = 0; i < descriptors.size(); i++) {
+            Assert.assertEquals(readStructure.descriptors.get(i), descriptors.get(i));
+            switch(readStructure.descriptors.get(i).type) {
+                case T:
+                    Assert.assertEquals(i, readStructure.templates.getIndices()[tIndex++]);
+                    break;
+                case B:
+                    Assert.assertEquals(i, readStructure.barcodes.getIndices()[bIndex++]);
+                    break;
+                case S:
+                    Assert.assertEquals(i, readStructure.skips.getIndices()[sIndex++]);
+                    break;
+                default:
+                    Assert.fail("Unrecognized read type: " + readStructure.descriptors.get(i).type);
+            }
+            totalCycles += readStructure.descriptors.get(i).length;
+        }
+
+        Assert.assertEquals(readStructure.totalCycles,  totalCycles);
+        Assert.assertEquals(readStructure.barcodes.length(),  numBarcodes);
+        Assert.assertEquals(readStructure.templates.length(), numTemplates);
+        Assert.assertEquals(readStructure.skips.length(), numSkips);
+
+    }
+
+    @Test(dataProvider = "invalidReadStructures", expectedExceptions = IllegalArgumentException.class)
+    public void testInvalidReadStructureFromString(final String rsString, final List<ReadDescriptor> descriptors) {
+        final ReadStructure readStructure = new ReadStructure(rsString);
+    }
+
+    @Test(dataProvider = "invalidReadStructuresFromList", expectedExceptions = IllegalArgumentException.class)
+    public void testInvalidReadStructureFromList(final String rsString, final List<ReadDescriptor> descriptors) {
+        final ReadStructure readStructure = new ReadStructure(descriptors);
+    }
+
+    @DataProvider(name="substructuresToReadStructureData")
+    public Object [][] substructureToReadStructureData() {
+        return new Object[][] {
+            {new ReadStructure("10T10T").templates,      "10T10T"  },
+            {new ReadStructure("10T8B10T").nonSkips,     "10T8B10T"},
+            {new ReadStructure("8S10T8B8S10T").nonSkips, "10T8B10T"},
+            {new ReadStructure("10T8S8S10T").skips,      "8S8S"    },
+            {new ReadStructure("8B").barcodes,           "8B"      }
+        };
+    }
+
+    @Test(dataProvider = "substructuresToReadStructureData")
+    public void testSubstructureToReadStructure(final ReadStructure.Substructure substructure, final String outputRs) {
+        Assert.assertEquals(substructure.toReadStructure().toString(), outputRs);
+    }
+
+    @DataProvider(name="substructureToReadStructureNegativeData")
+    public Object[][] substructureToReadStructureNegativeData() {
+        return new Object[][] {
+            {new ReadStructure("10T").barcodes   },
+            {new ReadStructure("10S").nonSkips   },
+            {new ReadStructure("10S8B").templates},
+        };
+    }
+
+    @Test(dataProvider = "substructureToReadStructureNegativeData", expectedExceptions = IllegalArgumentException.class)
+    public void testSubstructureToReadStructure(final ReadStructure.Substructure substructure) {
+        substructure.toReadStructure().toString();
+    }
+}
diff --git a/src/tests/java/picard/illumina/parser/BclParserTest.java b/src/tests/java/picard/illumina/parser/BclParserTest.java
new file mode 100644
index 0000000..cb631ad
--- /dev/null
+++ b/src/tests/java/picard/illumina/parser/BclParserTest.java
@@ -0,0 +1,464 @@
+package picard.illumina.parser;
+
+import htsjdk.samtools.util.IOUtil;
+import org.testng.Assert;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import picard.PicardException;
+import picard.illumina.parser.readers.BclQualityEvaluationStrategy;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+import static picard.illumina.parser.BinTdUtil.*;
+
+public class BclParserTest {
+    public static final File TEST_DATA_DIR = new File("testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001");
+    public static final File MULTI_TILE_DATA_DIR = new File("/seq/tng/jcarey/testdata/NextSeq/Data/Intensities/BaseCalls/L001");
+    public static final String READ_STRUCTURE = "25T8B25T";
+    public static final String READ_STRUCTURE_WSKIPS = "25S8B25S";
+    public static final String READ_STRUCTURE_WSKIPS_PARTIAL = "10T5S10T8B5T20S";
+    public static final String READ_STRUCTURE_WSKIPS_BAD = "10T5S10T2B4S2B5T20S";
+    public static final int[] READ_LENGTHS = new int[]{25, 8, 25};
+    public static final int LANE = 1;
+    public static final IlluminaDataType DATA_TYPES[] = {IlluminaDataType.BaseCalls, IlluminaDataType.QualityScores};
+    public static final int TILE_SIZES = 60;
+
+
+    public static Integer[] boxArr(final int[] ints) {
+        final Integer[] boxArr = new Integer[ints.length];
+        for (int i = 0; i < boxArr.length; i++) {
+            boxArr[i] = ints[i];
+        }
+
+        return boxArr;
+    }
+
+    @DataProvider(name = "tileMaps")
+    public Object[][] getTileMaps() {
+        return new Object[][]{
+                //TILES, NUM_CLUSTER TO BE READ, SEEK AT THIS READ, INDEX TO TILETOSEEK, ORDERED TILE INDEX (FOR OUT OF ORDER TILES)
+                {new int[]{1101, 1201, 2101}, 180, -1, -1, -1},
+                {new int[]{1101, 2101, 1201}, 180, -1, -1, -1},
+                {new int[]{2101, 1201}, 120, -1, -1, -1},
+                {new int[]{1101, 2101}, 120, -1, -1, -1},
+                {new int[]{1101}, 60, -1, -1, -1},
+
+                //Cases with seeking
+                {new int[]{1101, 1201, 2101}, 206, 25, 0, 0},
+                {new int[]{1101, 2101, 1201}, 206, 25, 0, 0},
+                {new int[]{2101, 1201}, 80, 19, 0, 1},
+                {new int[]{1101, 2101}, 156, 35, 0, 0},
+                {new int[]{1101}, 66, 5, 0, 0}
+        };
+    }
+
+    @DataProvider(name = "multiTileMaps")
+    public Object[][] getMultiTileMaps() {
+        return new Object[][]{
+                //TILES, NUM_CLUSTER TO BE READ, SEEK AT THIS READ, INDEX TO TILETOSEEK, ORDERED TILE INDEX (FOR OUT OF ORDER TILES)
+                {new int[]{11101, 11102, 11103}, 341292, -1, -1, -1}
+        };
+    }
+
+
+    public void compareClusterToBclData(final ClusterData cluster, final BclData bclData, final int clusterNum, final int countNum) {
+        final byte[][] bases = bclData.getBases();
+        final byte[][] qualities = bclData.getQualities();
+
+        Assert.assertEquals(bases.length, cluster.getNumReads(), "At cluster num " + clusterNum);
+        Assert.assertEquals(qualities.length, cluster.getNumReads(), "At cluster num " + clusterNum);
+
+        final StringBuilder baseBuilder = new StringBuilder();
+        final StringBuilder qualBuilder = new StringBuilder();
+        final StringBuilder barcode = new StringBuilder();
+        baseBuilder.append("new byte[]{");
+        for (int i = 0; i < bases.length; i++) {
+            final byte[] subBase = bases[i];
+            final byte[] subQual = qualities[i];
+            for (int j = 0; j < subBase.length; j++) {
+                if ((char) subBase[j] == '.') {
+                    baseBuilder.append('P');
+                } else {
+                    baseBuilder.append((char) subBase[j]);
+                }
+                baseBuilder.append(",");
+                qualBuilder.append(subQual[j]);
+                qualBuilder.append(",");
+                if (i == 1) {
+                    if ((char) subBase[j] == '.') {
+                        barcode.append('P');
+                    } else {
+                        barcode.append((char) subBase[j]);
+                    }
+                }
+            }
+        }
+        baseBuilder.deleteCharAt(baseBuilder.length() - 1);
+        qualBuilder.deleteCharAt(qualBuilder.length() - 1);
+        baseBuilder.append("},\n                                new byte[]{");
+        baseBuilder.append(qualBuilder.toString());
+        baseBuilder.append("},\n                                \"");
+        baseBuilder.append(barcode.toString());
+        baseBuilder.append("\"");
+
+        for (int i = 0; i < cluster.getNumReads(); i++) {
+            if (!Arrays.equals(bases[i], cluster.getRead(i).getBases())) {
+                System.out.println(cluster.getLane() + " : " + cluster.getTile() + " : " + clusterNum);
+                System.out.println(baseBuilder.toString());
+            }
+            Assert.assertEquals(bases[i], cluster.getRead(i).getBases(), " Bases differ for read " + i + " at cluster num " + clusterNum + " at cluster count " + countNum);
+            Assert.assertEquals(qualities[i], cluster.getRead(i).getQualities(), " Qualities differ for read " + i + " at cluster num " + clusterNum + " at cluster count " + countNum);
+        }
+    }
+
+    public void fullBclParserTestImpl(final File dir, final String readStructure, final int[] tiles, final int size, final int seekAfter, final int newTileIndex, final int orderedTileIndex,
+                                      final boolean multiTile) {
+        final ReadStructure rs = new ReadStructure(readStructure);
+        final OutputMapping outputMapping = new OutputMapping(rs);
+        final IlluminaFileUtil util = new IlluminaFileUtil(dir.getParentFile(), LANE);
+        final PerTilePerCycleFileUtil bclFileUtil = (PerTilePerCycleFileUtil) util.getUtil(IlluminaFileUtil.SupportedIlluminaFormat.Bcl);
+        final MultiTileBclFileUtil multiTileBclFileUtil = (MultiTileBclFileUtil) util.getUtil(IlluminaFileUtil.SupportedIlluminaFormat.MultiTileBcl);
+
+
+        final List<Integer> tileIntegers = new ArrayList<Integer>();
+        for (final int tile : tiles) {
+            tileIntegers.add(tile);
+        }
+
+        final BclParser bclParser;
+        if(multiTile){
+            final File bci = new File(MULTI_TILE_DATA_DIR, "s_" + LANE + ".bci");
+            bclParser = new MultiTileBclParser(dir, LANE, multiTileBclFileUtil.getFiles(tileIntegers, outputMapping.getOutputCycles()),
+                    outputMapping, true, new BclQualityEvaluationStrategy(BclQualityEvaluationStrategy.ILLUMINA_ALLEGED_MINIMUM_QUALITY),
+                    new TileIndex(bci));
+        }
+        else{
+            bclParser = new BclParser(dir, LANE, bclFileUtil.getFiles(tileIntegers, outputMapping.getOutputCycles()),
+                    outputMapping, new BclQualityEvaluationStrategy(BclQualityEvaluationStrategy.ILLUMINA_ALLEGED_MINIMUM_QUALITY));
+        }
+
+
+        final Map<Integer, ClusterData> testData = BinTdUtil.clusterData(LANE, Arrays.asList(boxArr(tiles)), readStructure, DATA_TYPES);
+
+        int count = 0;
+        int readNum = 0;
+        while (bclParser.hasNext()) {
+            final BclData bclData = bclParser.next();
+            if (testData.containsKey(readNum)) {
+                compareClusterToBclData(testData.get(readNum), bclData, readNum, count);
+            }
+
+            if (count == seekAfter) {
+                bclParser.seekToTile(tiles[newTileIndex]);
+                readNum = (orderedTileIndex * TILE_SIZES);
+            } else {
+                readNum++;
+            }
+            count++;
+        }
+        Assert.assertEquals(count, size);
+        bclParser.close();
+    }
+
+    public static void deleteBclFiles(final File laneDirectory, final String readStructure) {
+        final ReadStructure rs = new ReadStructure(readStructure);
+        int index = 1;
+        for (final ReadDescriptor rd : rs.descriptors) {
+            if (rd.type == ReadType.S) {
+                for (int i = index; i < index + rd.length; i++) {
+                    final File cycleDir = new File(laneDirectory, "C" + i + ".1");
+                    final File[] cycleFiles = cycleDir.listFiles();
+                    for (final File toDelete : cycleFiles) {
+                        if (!toDelete.delete()) {
+                            throw new RuntimeException("Couldn't delete file " + toDelete.getAbsolutePath());
+                        }
+                    }
+                }
+            }
+
+            index += rd.length;
+        }
+    }
+
+    @Test(dataProvider = "tileMaps")
+    public void fullBclParserTest(final int[] tiles, final int size, final int seekAfter, final int newTileIndex, final int orderedTileIndex) {
+        fullBclParserTestImpl(TEST_DATA_DIR, READ_STRUCTURE, tiles, size, seekAfter, newTileIndex, orderedTileIndex, false);
+    }
+
+    //@Test(dataProvider = "multiTileMaps")
+    public void fullMTBclParserTest(final int[] tiles, final int size, final int seekAfter, final int newTileIndex, final int orderedTileIndex) {
+        fullBclParserTestImpl(MULTI_TILE_DATA_DIR, READ_STRUCTURE, tiles, size, seekAfter, newTileIndex, orderedTileIndex, true);
+    }
+
+
+    @Test(dataProvider = "tileMaps")
+    public void fullBclParserTestWSkips(final int[] tiles, final int size, final int seekAfter, final int newTileIndex, final int orderedTileIndex) {
+        fullBclParserTestImpl(TEST_DATA_DIR, READ_STRUCTURE_WSKIPS, tiles, size, seekAfter, newTileIndex, orderedTileIndex, false);
+    }
+
+    @Test(dataProvider = "tileMaps")
+    public void fullBclParserTestWDeletedSkips(final int[] tiles, final int size, final int seekAfter, final int newTileIndex, final int orderedTileIndex) {
+        fullBclParserTestWDeletedSkipsImpl(tiles, size, seekAfter, newTileIndex, orderedTileIndex, READ_STRUCTURE_WSKIPS);
+    }
+
+    @Test(dataProvider = "tileMaps")
+    public void fullBclParserTestWPartiallyDeletedSkips(final int[] tiles, final int size, final int seekAfter, final int newTileIndex, final int orderedTileIndex) {
+        fullBclParserTestWDeletedSkipsImpl(tiles, size, seekAfter, newTileIndex, orderedTileIndex, READ_STRUCTURE_WSKIPS_PARTIAL);
+    }
+
+    @Test(dataProvider = "tileMaps", expectedExceptions = RuntimeException.class)
+    public void fullBclParserTestWBadDeletedSkips(final int[] tiles, final int size, final int seekAfter, final int newTileIndex, final int orderedTileIndex) {
+        fullBclParserTestWDeletedSkipsImpl(tiles, size, seekAfter, newTileIndex, orderedTileIndex, READ_STRUCTURE_WSKIPS_BAD);
+    }
+
+    public void fullBclParserTestWDeletedSkipsImpl(final int[] tiles, final int size, final int seekAfter, final int newTileIndex, final int orderedTileIndex, final String readStructure) {
+        final File basecallDir = IOUtil.createTempDir("bclParserTest", "BaseCalls");
+
+        Exception exc = null;
+        try {
+            final File l001 = new File(basecallDir, "L001");
+            if (!l001.mkdir()) {
+                throw new RuntimeException("Couldn't make lane dir " + l001.getAbsolutePath());
+            }
+
+            copyBcls(TEST_DATA_DIR, l001);
+            deleteBclFiles(l001, readStructure);
+            fullBclParserTestImpl(l001, READ_STRUCTURE_WSKIPS, tiles, size, seekAfter, newTileIndex, orderedTileIndex, false);
+        } catch (final Exception thrExc) {
+            exc = thrExc;
+        } finally {
+            IOUtil.deleteDirectoryTree(basecallDir);
+        }
+        if (exc != null) {
+            if (exc.getClass() == PicardException.class) {
+                throw new PicardException(exc.getMessage());
+            }
+            throw new RuntimeException(exc);
+        }
+    }
+
+    //Custom copy function to avoid copying .svn files etc...
+    public static void copyBcls(final File srcLaneDir, final File dstDir) {
+        final File[] listFiles = srcLaneDir.listFiles();
+
+        for (final File dir : listFiles) {
+            if (dir.isDirectory()) {
+                File cycleDir = null;
+
+                for (final File file : dir.listFiles()) {
+                    if (file.getName().endsWith(".bcl")) {
+                        if (cycleDir == null) {
+                            cycleDir = new File(dstDir, dir.getName());
+                            if (!cycleDir.mkdir()) {
+                                throw new RuntimeException("Couldn't make directory (" + cycleDir.getAbsolutePath() + ")");
+                            }
+                        }
+
+                        IOUtil.copyFile(file, new File(cycleDir, file.getName()));
+                    }
+                }
+            }
+        }
+    }
+
+
+    //Helper byte [] tuple for EAMSS testing
+    class BasesAndQuals {
+        public final byte[] bases;
+        public final byte[] quals;
+        public final byte[] maskedQuals;
+
+        public BasesAndQuals(final byte[] bases, final byte[] quals, final Integer maskStart) {
+            this.bases = bases;
+            this.quals = quals;
+            this.maskedQuals = qualsMaskedFrom(maskStart);
+        }
+
+        private byte[] qualsMaskedFrom(final Integer maskStart) {
+            final byte[] maskedQuals = Arrays.copyOf(quals, quals.length);
+            if (maskStart != null) {
+                for (int i = maskStart; i < maskedQuals.length; i++) {
+                    maskedQuals[i] = BclParser.MASKING_QUALITY;
+                }
+            }
+            return maskedQuals;
+        }
+
+        public String toString() {
+            return "BasesAndQuals( " + basesToString() + ", " + qualsToString(quals) + ", " + qualsToString(maskedQuals) + ")";
+        }
+
+        public String basesToString() {
+            final StringBuilder sb = new StringBuilder(bases.length);
+            for (final byte base : bases) {
+                switch (base) {
+                    case A:
+                        sb.append("A ");
+                        break;
+                    case C:
+                        sb.append("C ");
+                        break;
+                    case G:
+                        sb.append("G ");
+                        break;
+                    case T:
+                        sb.append("T ");
+                        break;
+                    case P:
+                        sb.append(". ");
+                        break;
+
+                    default:
+                        throw new RuntimeException("THIS SHOULD NOT HAPPEN!  Bad byte in bases!");
+                }
+            }
+
+            return sb.toString();
+        }
+
+        public String qualsToString(final byte[] qualsToConvert) {
+
+            final StringBuilder sb = new StringBuilder(bases.length);
+            for (final byte qual : qualsToConvert) {
+                sb.append(String.valueOf((int) qual));
+                sb.append(",");
+            }
+
+            return sb.toString();
+        }
+    }
+
+    @DataProvider(name = "eamssDataNo10GSeries")
+    public Object[][] eamssDataNo10GSeries() {
+
+        return new Object[][]{
+                //Non-masking cases
+
+                //tally very negative, 9G's
+                {new BasesAndQuals(new byte[]{G, G, G, G, G, G, G, G, G},
+                        new byte[]{13, 7, 35, 32, 31, 33, 31, 26, 29},
+                        null)},
+
+                //tally barely negative
+                {new BasesAndQuals(new byte[]{G, G, G, G, G, G, G, G, G},
+                        new byte[]{13, 7, 35, 26, 18, 19, 35, 8, 33},
+                        null)},
+
+                //Reaches 0, A stretch of more than 10 other types of bases
+                {new BasesAndQuals(new byte[]{A, C, C, C, C, C, C, C, C, C, C, C, T, G, G, C, T, A, A},
+                        new byte[]{7, 8, 33, 7, 2, 33, 16, 17, 19, 7, 6, 5, 35, 2, 33, 22, 18, 16, 25},
+                        null)},
+
+                //Stays at 0, Stretches of G's Separated
+                {new BasesAndQuals(new byte[]{T, G, G, G, G, G, G, G, P, P, G, G, G, G, G, G, G, T, A, A, G, G, G},
+                        new byte[]{7, 8, 33, 7, 2, 33, 16, 17, 2, 2, 6, 5, 35, 2, 33, 22, 18, 16, 25, 33, 32, 16, 18},
+                        null)},
+
+                //shorter
+                {new BasesAndQuals(new byte[]{T, A, C},
+                        new byte[]{25, 16, 16},
+                        null)},
+
+                //Longer
+                {new BasesAndQuals(new byte[]{T, A, C, G, G, P, P, T, C, C, C, C, T, T, T, G, G, G, A, T, G, C, A, T, A, C, G, G, P, P, T, C, C, C, C, T, T, T, G, G, G, A, T, G, C, A},
+                        new byte[]{25, 16, 16, 33, 22, 2, 2, 33, 35, 3, 31, 38, 22, 19, 25, 16, 16, 31, 30, 2, 2, 33, 26, 3, 31, 38, 22, 19, 2, 2, 30, 27, 28, 16, 2, 2, 30, 16, 19, 21, 22, 17, 19, 16, 16, 16},
+                        null)},
+
+
+                //Masking-Cases
+
+                //tally very positive, 9Gs                                  X - Mask From here
+                {new BasesAndQuals(new byte[]{G, G, G, G, G, G, G, G, G},
+                        new byte[]{13, 7, 35, 32, 2, 16, 33, 14, 19},
+                        7)},
+
+                //tally barely negative                        X - Mask from here
+                {new BasesAndQuals(new byte[]{G, G, G, G, G, G, G, G, G},
+                        new byte[]{13, 7, 35, 33, 18, 2, 6, 8, 33},
+                        4)},
+                //Reaches 0, A stretch of more than 10 other types of bases                X - Mask From here
+                {new BasesAndQuals(new byte[]{A, C, C, C, C, C, C, C, C, C, C, C, T, G, G, C, T, A, A},
+                        new byte[]{7, 8, 33, 7, 2, 33, 16, 17, 19, 32, 33, 5, 8, 2, 2, 2, 33, 16, 25},
+                        11)},
+                //Stays at 0, Stretches of G's Separated                                                       X- Mask from here
+                {new BasesAndQuals(new byte[]{T, G, G, G, G, G, G, G, P, P, G, G, G, G, G, G, G, T, A, A, G, G, G},
+                        new byte[]{7, 8, 33, 7, 2, 33, 16, 17, 2, 2, 6, 5, 35, 2, 33, 30, 13, 16, 7, 2, 2, 16, 18},
+                        16)},
+                //shorter                       X - Mask from here
+                {new BasesAndQuals(new byte[]{T, A, C},
+                        new byte[]{2, 11, 13},
+                        0)},
+                //Longer                                                                                                                           X- Mask from here
+                {new BasesAndQuals(new byte[]{T, A, C, G, G, P, P, T, C, C, C, C, T, T, T, G, G, G, A, T, G, C, A, T, A, C, G, G, P, P, T, C, C, C, C, T, T, T, G, G, G, A, T, G, C, A},
+                        new byte[]{25, 16, 16, 33, 22, 2, 2, 33, 35, 3, 31, 38, 22, 19, 25, 16, 16, 31, 30, 2, 2, 33, 26, 3, 31, 38, 22, 19, 2, 2, 30, 27, 28, 16, 2, 2, 30, 16, 19, 21, 22, 2, 19, 16, 2, 2},
+                        26)}
+        };
+    }
+
+    /** For more information on EAMSS check BclParser and the large comment above runEamssForReadInPlace * */
+    @DataProvider(name = "eamssDataWithGSeries")
+    public Object[][] eamssTestDat() {
+        return new Object[][]{
+
+                //9 G's followed by tally max                     X - Mask from here
+                {new BasesAndQuals(new byte[]{A, C, G, G, T, G, G, G, G, G, G, G, G, G, A, C, T},
+                        new byte[]{7, 8, 33, 7, 12, 33, 16, 17, 2, 2, 32, 35, 35, 35, 2, 15, 9},
+                        5)},
+                //9 G's surpassed by tally max  X - Mask from here
+                {new BasesAndQuals(new byte[]{A, C, G, G, T, G, G, G, G, G, G, G, G, G, A, C, T},
+                        new byte[]{7, 8, 2, 7, 2, 2, 16, 17, 2, 2, 32, 35, 35, 35, 2, 15, 9},
+                        0)},
+                //10 G's ending before tally max                                                        X - Mask from here
+                {new BasesAndQuals(new byte[]{A, C, G, G, T, G, G, G, G, G, G, G, G, G, A, C, T},
+                        new byte[]{7, 8, 2, 7, 2, 2, 16, 17, 2, 2, 32, 35, 35, 35, 33, 15, 9},
+                        15)},
+                //10 G's ending on tally max                         X - Mask from here Is this wrong?
+                {new BasesAndQuals(new byte[]{A, C, C, G, C, C, G, G, G, G, G, G, G, G, G, G, T, T, A},
+                        new byte[]{33, 31, 29, 32, 28, 27, 30, 18, 18, 18, 18, 19, 19, 19, 33, 18, 9, 9, 19},
+                        6)},
+                //10 G's no masking
+                {new BasesAndQuals(new byte[]{A, C, C, G, C, C, G, G, G, G, G, G, G, G, G, G, T, T, A},
+                        new byte[]{33, 31, 29, 32, 28, 27, 30, 18, 18, 18, 18, 19, 19, 19, 33, 18, 33, 32, 34},
+                        null)},
+                //10 G' with an exception                               X - Mask from here
+                {new BasesAndQuals(new byte[]{A, C, C, G, C, C, G, G, G, G, A, G, G, G, G, G, T, T, A},
+                        new byte[]{33, 31, 29, 32, 28, 27, 30, 18, 18, 18, 18, 19, 19, 19, 33, 18, 9, 9, 19},
+                        6)},
+                //longer than 10 G's                      X - Mask from here
+                {new BasesAndQuals(new byte[]{A, C, G, G, G, C, G, G, G, G, G, G, G, G, G, G, T, T, A},
+                        new byte[]{33, 31, 29, 32, 28, 16, 33, 18, 18, 18, 18, 19, 19, 19, 33, 18, 3, 9, 19},
+                        2)},
+                //longer than 10 G's                                      X - Mask from here
+                {new BasesAndQuals(new byte[]{A, C, G, G, C, C, G, G, G, G, G, G, G, G, G, G, G, G, G},
+                        new byte[]{33, 31, 29, 32, 28, 16, 33, 18, 18, 18, 18, 19, 19, 19, 33, 34, 33, 33, 3},
+                        6)},
+                //longer than 10 G's
+                {new BasesAndQuals(new byte[]{A, C, G, G, C, C, G, G, G, G, G, G, G, G, G, G, G, G, G, T, A, C, T, T, G, G, G, G, G, G, G, G, G, G, G, G, G},
+                        new byte[]{33, 31, 29, 32, 28, 16, 33, 18, 18, 18, 18, 19, 19, 19, 33, 34, 33, 33, 3, 33, 34, 2, 4, 8, 33, 7, 35, 15, 16, 31, 30, 38, 16, 15, 22, 29, 25},
+                        null)}
+        };
+    }
+
+    public void testEamss(final BasesAndQuals bq) {
+        final byte[] bases = Arrays.copyOf(bq.bases, bq.bases.length);
+        final byte[] quals = Arrays.copyOf(bq.quals, bq.quals.length);
+
+        BclParser.runEamssForReadInPlace(bases, quals);
+        Assert.assertEquals(bases, bq.bases);
+        Assert.assertEquals(quals, bq.maskedQuals);
+    }
+
+    @Test(dataProvider = "eamssDataNo10GSeries")
+    public void eamssParsingTestNoGSeries(final BasesAndQuals bq) {
+        testEamss(bq);
+    }
+
+    @Test(dataProvider = "eamssDataWithGSeries")
+    public void eamssParsingTestWithGSeries(final BasesAndQuals bq) {
+        testEamss(bq);
+    }
+}
diff --git a/src/tests/java/picard/illumina/parser/BinTdUtil.java b/src/tests/java/picard/illumina/parser/BinTdUtil.java
new file mode 100644
index 0000000..b2ed224
--- /dev/null
+++ b/src/tests/java/picard/illumina/parser/BinTdUtil.java
@@ -0,0 +1,312 @@
+package picard.illumina.parser;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import static htsjdk.samtools.util.CollectionUtil.makeList;
+
+//Illumina Dir Test Data
+public class BinTdUtil {
+    public static final File IntensitiesDir = new File("testdata/picard/illumina/CompleteIlluminaDir/Intensities/");
+    public static final File basecallDir = new File("testdata/picard/illumina/CompleteIlluminaDir/Intensities/BaseCalls");
+
+    public static final String ltStr(final int lane, final int tile) {
+        return "s_" + lane + "_" + tile;
+    }
+
+    public static final byte A = (byte) 65;
+    public static final byte C = (byte) 67;
+    public static final byte G = (byte) 71;
+    public static final byte T = (byte) 84;
+    public static final byte P = (byte) 46; //dot
+    public static final Map<String, List<ClusterData>> goldData = new HashMap<String, List<ClusterData>>();
+    public static final Map<String, List<Integer>> goldIndices = new HashMap<String, List<Integer>>();
+    public static final Map<String, Integer> goldSizes = new HashMap<String, Integer>();
+
+    static {
+        int lane = 1;
+        int tile = 1101;
+        goldIndices.put(ltStr(lane, tile), makeList(0, 2, 10, 18, 19));
+        goldData.put(ltStr(lane, tile), makeList(
+                        makeCd(lane, tile, 1140, 2120, true,
+                                new byte[]{P, C, C, C, C, A, A, C, A, T, T, C, T, A, A, T, T, A, T, G, C, C, T, C, A, C, A, A, C, T, C, T, C, T, T, T, T, T, T, T, T, T, T, T, T, T, A, A, C, T, T, T, G, C, A, A, A, T},
+                                new byte[]{2, 16, 25, 33, 35, 37, 37, 35, 39, 37, 37, 35, 37, 40, 41, 41, 41, 40, 40, 41, 40, 40, 40, 40, 40, 31, 31, 31, 35, 35, 37, 35, 37, 31, 31, 31, 35, 35, 35, 35, 35, 39, 39, 39, 39, 37, 33, 31, 24, 37, 39, 40, 31, 33, 37, 39, 31, 31},
+                                "CAACTCTC"),
+                        makeCd(lane, tile, 1047, 2122, false,
+                                new byte[]{P,C,T,A,A,P,G,P,A,C,T,P,T,G,P,G,T,G,T,G,C,P,P,P,P,P,P,P,A,P,P,P,P,P,P,T,C,A,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P},
+                                new byte[]{2,15,26,31,31,2,19,2,18,31,31,2,18,31,2,17,27,31,31,31,31,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
+                                null),
+                        makeCd(lane, tile, 1069, 2159, true,
+                                new byte[]{T,C,C,C,T,T,A,C,C,A,T,C,A,A,A,T,C,A,A,T,T,G,P,C,C,G,T,C,C,A,C,A,G,G,A,C,G,T,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P},
+                                new byte[]{34,34,34,37,37,37,37,37,39,39,39,39,39,41,41,41,41,41,41,41,41,41,2,18,32,31,33,33,37,37,37,37,37,27,27,27,31,30,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
+                                "GTCCACAG"),
+                        makeCd(lane, tile, 1175, 2197, true,
+                                new byte[]{C,C,C,C,T,G,A,G,G,A,C,A,C,C,A,T,C,C,C,A,C,T,C,C,A,C,C,A,A,C,A,T,T,A,A,G,A,G,C,T,G,G,G,G,A,A,C,A,T,C,C,A,G,A,A,A,G,G},
+                                new byte[]{34,34,34,37,37,37,37,37,39,39,39,39,39,41,41,41,41,41,41,41,41,41,41,41,41,34,34,34,37,37,37,37,37,33,34,31,37,37,37,37,37,39,39,39,39,39,41,41,41,41,41,41,41,41,41,41,41,41},
+                                "CCAACATT"),
+                        makeCd(lane, tile, 1048, 2197, false,
+                                new byte[]{P,C,T,C,C,P,G,P,T,C,A,P,C,A,P,G,T,G,G,A,G,P,P,P,P,P,P,P,C,P,P,P,P,P,P,G,T,G,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P},
+                                new byte[]{2,15,26,30,31,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
+                                null)
+                )
+        );
+        goldSizes.put(ltStr(lane, tile), 60);
+
+        tile = 1201;
+        goldIndices.put(ltStr(lane, tile), makeList(0, 1, 18, 19));
+        goldData.put(ltStr(lane, tile), makeList(
+                makeCd(lane, tile, 1187, 2100, true,
+                        new byte[]{P,G,C,G,G,T,A,A,T,T,C,C,A,G,C,T,C,C,A,A,T,A,G,C,G,T,A,T,C,T,G,C,C,A,A,A,A,A,A,G,A,G,C,C,C,G,C,A,T,T,G,C,C,G,A,G,A,C},
+                        new byte[]{2,16,25,33,33,17,31,35,39,39,37,39,39,40,40,40,40,39,39,40,40,38,39,38,38,34,34,34,37,37,37,37,37,28,27,28,26,32,32,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
+                        "TATCTGCC"),
+                makeCd(lane, tile, 1045, 2105, false,
+                        new byte[]{P,T,A,A,A,G,A,G,A,A,A,T,C,A,A,G,A,A,T,A,C,T,A,T,T,C,T,G,T,A,A,T,C,P,T,T,T,T,T,T,T,T,T,T,P,P,T,T,T,T,T,T,T,T,T,T,T,T},
+                        new byte[]{2,12,19,31,30,7,31,8,31,31,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,16,16,16,17,31,32,2,2,2,15,26,31,31,31,31,31,31,31,30,2,2,15,25,30,30,30,30,30,30,30,30,28,27},
+                        "CTGTAATC"),
+                makeCd(lane, tile, 1159, 2179, false,
+                        new byte[]{G,T,T,A,G,C,A,C,A,G,A,T,A,T,T,G,G,A,T,G,A,G,T,G,A,A,A,A,A,A,A,A,A,T,T,T,T,T,T,T,T,T,A,T,T,T,T,T,C,T,A,A,A,T,A,C,T,T},
+                        new byte[]{2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,28,28,28,32,32,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
+                        null),
+                makeCd(lane, tile, 1103, 2184, true,
+                        new byte[]{G,T,A,A,G,A,A,C,T,A,C,C,C,T,G,G,G,T,C,C,C,C,G,T,G,T,T,G,T,C,T,A,T,A,G,A,A,G,T,T,T,C,A,G,A,A,T,T,G,T,G,G,C,C,C,C,A,T},
+                        new byte[]{31,31,33,37,37,37,37,37,39,39,39,39,39,41,41,41,41,38,40,41,41,41,41,39,40,31,34,34,37,37,37,37,37,33,31,33,37,37,35,36,37,39,39,39,39,39,41,41,41,38,39,40,41,41,41,41,41,40},
+                        "TTGTCTAT")
+        ));
+        goldSizes.put(ltStr(lane, tile), 60);
+
+        tile = 2101;
+        goldIndices.put(ltStr(lane, tile), makeList(7, 15, 16, 19));
+        goldData.put(ltStr(lane, tile), makeList(
+                makeCd(lane, tile, 1123, 2095, true,
+                        new byte[]{P,T,G,G,A,C,A,A,C,A,T,G,T,T,C,G,A,G,A,G,C,T,A,C,A,C,A,G,C,G,G,T,A,T,C,C,G,C,C,T,C,C,A,G,C,T,T,C,A,G,C,T,T,C,T,C,C,T},
+                        new byte[]{2,16,28,33,33,35,35,35,37,37,37,37,35,38,37,38,40,38,30,37,26,39,39,37,40,31,30,31,35,35,37,31,31,31,31,31,37,35,35,37,37,39,39,39,39,39,41,39,38,38,41,40,41,41,41,36,39,39},
+                        "CAGCGGTA"),
+               makeCd(lane, tile, 1162, 2139, true,
+                       new byte[]{A,G,A,G,G,T,G,A,A,A,T,T,C,T,T,G,G,A,C,C,G,G,C,G,C,T,G,C,T,G,C,T,G,A,T,C,G,T,T,T,A,T,G,G,T,C,G,G,A,A,C,T,A,C,G,A,C,G},
+                       new byte[]{31,31,31,35,35,35,35,35,39,37,39,39,39,35,33,25,36,37,39,39,34,32,38,30,35,34,34,34,37,37,37,37,37,33,34,34,37,37,37,37,37,39,39,39,39,39,40,41,41,41,41,41,41,41,40,41,41,40},
+                       "TGCTGCTG"),
+                makeCd(lane, tile, 1013, 2146, true,
+                        new byte[]{P,A,C,A,C,T,G,C,T,G,C,A,G,A,T,G,A,C,A,A,G,C,A,G,C,C,T,A,T,G,C,G,T,P,P,P,P,C,G,C,T,A,G,A,A,C,C,A,A,C,T,T,A,T,T,C,A,T},
+                        new byte[]{2,19,33,35,37,37,37,37,39,39,39,39,39,41,41,41,41,41,41,41,41,41,41,41,41,34,34,34,37,37,37,37,37,2,2,2,2,17,19,28,30,31,31,30,31,30,31,31,30,31,31,31,31,31,31,30,31,31},
+                        "CTATGCGT"),
+                makeCd(lane, tile, 1245, 2154, true,
+                        new byte[]{T,C,G,T,T,A,A,G,T,A,T,A,T,T,C,T,T,A,G,G,T,A,T,T,T,C,T,G,T,A,A,T,C,A,C,C,A,A,T,C,A,G,T,A,G,C,A,C,C,A,C,T,A,T,A,C,A,C},
+                        new byte[]{34,34,34,37,37,35,37,37,37,39,37,39,39,40,40,41,41,41,41,41,37,41,41,41,40,31,34,34,37,37,37,37,37,34,34,34,37,37,37,37,37,39,39,39,39,39,41,41,41,41,41,41,40,41,41,41,41,41},
+                        "CTGTAATC")
+        ));
+        goldSizes.put(ltStr(lane, tile), 60);
+
+        tile = 11101;
+        goldIndices.put(ltStr(lane, tile), makeList(0, 2, 10, 18, 19));
+        goldData.put(ltStr(lane, tile), makeList(
+                        makeCd(lane, tile, 1140, 2120, true,
+                                new byte[]{P,A,A,C,T,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P},
+                                new byte[]{2,32,32,32,32,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
+                                null),
+                        makeCd(lane, tile, 1047, 2122, false,
+                                new byte[]{P,A,A,G,A,C,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P},
+                                new byte[]{2,32,32,32,27,37,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
+                                null),
+                        makeCd(lane, tile, 1069, 2159, true,
+                                new byte[]{P,C,T,T,G,T,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P},
+                                new byte[]{2,32,32,32,32,37,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
+                                null),
+                        makeCd(lane, tile, 1175, 2197, true,
+                                new byte[]{P,A,A,A,T,T,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P},
+                                new byte[]{2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
+                                null),
+                        makeCd(lane, tile, 1048, 2197, false,
+                                new byte[]{P,A,A,G,A,C,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P},
+                                new byte[]{2,27,22,32,32,37,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
+                                null)
+                )
+        );
+        goldSizes.put(ltStr(lane, tile), 341292);
+
+        tile = 11102;
+        goldIndices.put(ltStr(lane, tile), makeList(0, 2, 10, 18, 19));
+        goldData.put(ltStr(lane, tile), makeList(
+                        makeCd(lane, tile, 1140, 2120, true,
+                                new byte[]{P,A,A,G,A,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P},
+                                new byte[]{2,32,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
+                                null),
+                        makeCd(lane, tile, 1047, 2122, false,
+                                new byte[]{P,G,C,T,T,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P},
+                                new byte[]{2,32,32,32,32,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
+                                null),
+                        makeCd(lane, tile, 1069, 2159, true,
+                                new byte[]{P,G,C,T,T,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P},
+                                new byte[]{2,32,32,32,32,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
+                                null),
+                        makeCd(lane, tile, 1175, 2197, true,
+                                new byte[]{P,G,C,T,T,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P},
+                                new byte[]{2,32,32,32,32,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
+                                null),
+                        makeCd(lane, tile, 1048, 2197, false,
+                                new byte[]{P,G,C,T,T,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P},
+                                new byte[]{2,32,32,32,32,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
+                                null)
+                )
+        );
+        goldSizes.put(ltStr(lane, tile), 366884);
+
+        tile = 11103;
+        goldIndices.put(ltStr(lane, tile), makeList(0, 2, 10, 18, 19));
+        goldData.put(ltStr(lane, tile), makeList(
+                        makeCd(lane, tile, 1140, 2120, true,
+                                new byte[]{P,G,C,T,T,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P},
+                                new byte[]{2,32,32,32,32,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
+                                null),
+                        makeCd(lane, tile, 1047, 2122, false,
+                                new byte[]{P,G,C,T,T,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P},
+                                new byte[]{2,32,32,32,32,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
+                                null),
+                        makeCd(lane, tile, 1069, 2159, true,
+                                new byte[]{P,G,C,T,T,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P},
+                                new byte[]{2,32,32,32,32,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
+                                null),
+                        makeCd(lane, tile, 1175, 2197, true,
+                                new byte[]{P,G,C,T,T,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P},
+                                new byte[]{2,32,32,32,32,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
+                                null),
+                        makeCd(lane, tile, 1048, 2197, false,
+                                new byte[]{P,G,C,T,T,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P},
+                                new byte[]{2,32,32,32,32,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
+                                null)
+                )
+        );
+        goldSizes.put(ltStr(lane, tile), 336434);
+    }
+
+    public static Map<Integer, ClusterData> clusterData(final int lane, final List<Integer> tiles, final String readStructure, final IlluminaDataType... dataTypes) {
+        final List<Integer> sortedTiles = new ArrayList<Integer>(tiles);
+        Collections.sort(sortedTiles);
+
+        final Map<Integer, ClusterData> data = new HashMap<Integer, ClusterData>();
+        int offset = 0;
+        for (final int tile : sortedTiles) {
+            final String key = ltStr(lane, tile);
+            final List<ClusterData> cds = goldData.get(key);
+            final List<Integer> readNos = goldIndices.get(key);
+            final int size = goldSizes.get(key);
+
+            for (int i = 0; i < cds.size(); i++) {
+                data.put(offset + readNos.get(i), selectiveCopyCd(cds.get(i), readStructure, dataTypes));
+            }
+
+            offset += size;
+        }
+        return data;
+    }
+
+    public static ReadData[] copyReadData(final ReadStructure rs, final IlluminaDataType[] dts, final ClusterData toCopy) {
+        boolean doBases = false;
+        boolean doQuals = false;
+
+        for (final IlluminaDataType dt : dts) {
+            switch (dt) {
+                case BaseCalls:
+                    doBases = true;
+                    break;
+
+                case QualityScores:
+                    doQuals = true;
+                    break;
+            }
+        }
+
+        if (!doBases && !doQuals)
+            return null;
+
+        final ReadData rdToCopy = toCopy.getRead(0); //Only gonna be one read in this
+        final ReadData[] rds = new ReadData[rs.nonSkips.length()];
+
+        int index = 0;
+        int baseIndex = 0;
+        for (int i = 0; i < rs.descriptors.size(); i++) {
+            final ReadDescriptor readDesc = rs.descriptors.get(i);
+
+            if (readDesc.type != ReadType.S) {
+                final ReadData curRead = new ReadData(readDesc.type);
+                if (doBases) {
+                    final byte[] bases = Arrays.copyOfRange(rdToCopy.getBases(), baseIndex, baseIndex + readDesc.length);
+                    curRead.setBases(bases);
+                }
+
+                if (doQuals) {
+                    final byte[] quals = Arrays.copyOfRange(rdToCopy.getQualities(), baseIndex, baseIndex + readDesc.length);
+                    curRead.setQualities(quals);
+                }
+
+                rds[index++] = curRead;
+            }
+
+            baseIndex += readDesc.length;
+        }
+
+        return rds;
+    }
+
+    private static FourChannelIntensityData copyIntensities(final FourChannelIntensityData toCopy, final int start, final int length) {
+        final FourChannelIntensityData fcid = new FourChannelIntensityData(length);
+
+        System.arraycopy(toCopy.getA(), start, fcid.getA(), 0, length);
+        System.arraycopy(toCopy.getC(), start, fcid.getC(), 0, length);
+        System.arraycopy(toCopy.getG(), start, fcid.getG(), 0, length);
+        System.arraycopy(toCopy.getT(), start, fcid.getT(), 0, length);
+        return fcid;
+    }
+
+    public static ClusterData selectiveCopyCd(final ClusterData toCopy, final String readStructure, final IlluminaDataType... dataTypes) {
+        final ReadStructure rs = new ReadStructure(readStructure);
+        final ReadData[] rd = copyReadData(rs, dataTypes, toCopy);
+        final ClusterData cd = new ClusterData(rd);
+        cd.setTile(toCopy.getTile());
+        cd.setLane(toCopy.getLane());
+
+        for (final IlluminaDataType idt : dataTypes) {
+            switch (idt) {
+                case Position:
+                    cd.setX(toCopy.getX());
+                    cd.setY(toCopy.getY());
+                    break;
+
+                case PF:
+                    cd.setPf(toCopy.isPf());
+                    break;
+
+                case Barcodes:
+                    cd.setMatchedBarcode(toCopy.getMatchedBarcode());
+                    break;
+
+                default:
+                    break;
+            }
+        }
+
+        return cd;
+    }
+
+    public static ClusterData makeCd(final int lane, final int tile, final int xCoord, final int yCoord, final boolean pf, final byte[] bases, final byte[] qualities, final String matchedBarcode) {
+        final ReadData rd = new ReadData();
+        rd.setBases(Arrays.copyOf(bases, bases.length));
+        rd.setQualities(Arrays.copyOf(qualities, bases.length));
+        rd.setReadType(ReadType.T); //This will be ignored, as the cluster will be chopped up by ReadStructure
+
+        final ClusterData cd = new ClusterData(rd);
+        cd.setLane(lane);
+        cd.setTile(tile);
+        cd.setX(xCoord);
+        cd.setY(yCoord);
+        cd.setPf(pf);
+        cd.setMatchedBarcode(matchedBarcode);
+
+        return cd;
+    }
+
+}
diff --git a/src/tests/java/picard/illumina/parser/CycleIlluminaFileMapTest.java b/src/tests/java/picard/illumina/parser/CycleIlluminaFileMapTest.java
new file mode 100644
index 0000000..0d82a52
--- /dev/null
+++ b/src/tests/java/picard/illumina/parser/CycleIlluminaFileMapTest.java
@@ -0,0 +1,116 @@
+/*
+* The MIT License
+*
+* Copyright (c) 2011 The Broad Institute
+*
+* Permission is hereby granted, free of charge, to any person obtaining a copy
+* of this software and associated documentation files (the "Software"), to deal
+* in the Software without restriction, including without limitation the rights
+* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+* copies of the Software, and to permit persons to whom the Software is
+* furnished to do so, subject to the following conditions:
+*
+* The above copyright notice and this permission notice shall be included in
+* all copies or substantial portions of the Software.
+*
+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+* THE SOFTWARE.
+*/
+package picard.illumina.parser;
+
+import org.testng.annotations.DataProvider;
+
+import java.io.File;
+import java.util.ArrayList;
+
+import static htsjdk.samtools.util.CollectionUtil.makeList;
+
+/**
+* @author jburke at broadinstitute.org
+*/
+public class CycleIlluminaFileMapTest {
+    //TODO: REVAMP THIS
+    private static final File TEST_DATA_DIR = new File("testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001");
+    private static final File ZERO_LENGTH_TEST_DATA_DIR = new File("testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L002");
+    private static final int [] ALL_CYCLES = {1,2,3,4};
+
+    private static String laneToDir(int lane) {
+        String outStr = String.valueOf(lane);
+        while(outStr.length() < 3) {
+            outStr = "0" + outStr;
+        }
+        return "L" + outStr;
+    }
+
+    private static String constructPathString(int lane, int cycle) {
+        return TEST_DATA_DIR + "/" + laneToDir(lane) + "/C" + cycle + ".1";
+    }
+
+    @DataProvider(name = "iteratorTestData")
+    public Object [][] iteratorTestData() {
+        return new Object[][] {
+            new Object[] {
+                TEST_DATA_DIR, 1, 1101, ".bcl",
+                    makeList(new File(TEST_DATA_DIR + "/C1.1", "s_1_1101.bcl"),
+                             new File(TEST_DATA_DIR + "/C2.1", "s_1_1101.bcl"),
+                             new File(TEST_DATA_DIR + "/C3.1", "s_1_1101.bcl"),
+                             new File(TEST_DATA_DIR + "/C4.1", "s_1_1101.bcl")),
+                    ALL_CYCLES
+            },
+            new Object[] {
+                ZERO_LENGTH_TEST_DATA_DIR, 1, 1101, ".bcl", new ArrayList<File>(), new int[]{},
+
+            },
+            new Object[] {
+                TEST_DATA_DIR, 1, 1201, ".bcl", new ArrayList<File>(), new int[]{}
+            },
+
+            new Object[] {
+                TEST_DATA_DIR, 2, 1101, ".bcl", new ArrayList<File>(), new int[]{}
+            },
+        };
+    }
+
+  /*  @Test(dataProvider = "iteratorTestData")
+    public void cycledFilesIteratorTest(final File parentDir, final int lane, final int tile, final String fileType, final List<File> expectedFiles, final int [] cycles) {
+        final CycleFilesIterator toTest = new CycleFilesIterator(parentDir, lane, tile, cycles, fileType);
+        Iterator<File> expectedIter = expectedFiles.iterator();
+        while(expectedIter.hasNext()) {
+            final File currentExpected = expectedIter.next();
+            Assert.assertTrue(toTest.hasNext(), "CycledFileSetIterator is missing file: " + currentExpected.getAbsolutePath());
+            Assert.assertEquals(toTest.next().getAbsolutePath(), currentExpected.getAbsolutePath());
+        }
+        
+        Assert.assertTrue(!toTest.hasNext(), "CycledFilesIterator has extra files!");
+    }
+
+    @Test
+    public void passingAssertCycledIlluminaFileMapTest() {
+        final CycleIlluminaFileMap fileMap = new CycleIlluminaFileMap();
+        fileMap.put(1101, new CycleFilesIterator(TEST_DATA_DIR, 1, 1101, ALL_CYCLES, ".bcl"));
+        fileMap.put(1201, new CycleFilesIterator(TEST_DATA_DIR, 1, 1201, ALL_CYCLES, ".bcl"));
+        fileMap.assertValid(makeList(1101,1201), ALL_CYCLES);
+    }
+
+    @Test(expectedExceptions = PicardException.class)
+    public void tileFailingAssertCycledIlluminaFileMapTest() {
+        final CycleIlluminaFileMap fileMap = new CycleIlluminaFileMap();
+        fileMap.put(1, new CycleFilesIterator(TEST_DATA_DIR, 1, 1, ALL_CYCLES, ".bcl"));
+        fileMap.put(2, new CycleFilesIterator(TEST_DATA_DIR, 1, 2, ALL_CYCLES, ".bcl"));
+        fileMap.assertValid(makeList(1,2,3), ALL_CYCLES);
+    }
+
+    @Test(expectedExceptions = PicardException.class)
+    public void cycleFailingAssertCycledIlluminaFileMapTest() {
+        final CycleIlluminaFileMap fileMap = new CycleIlluminaFileMap();
+        fileMap.put(1, new CycleFilesIterator(TEST_DATA_DIR, 1, 1, ALL_CYCLES, ".bcl"));
+        fileMap.put(2, new CycleFilesIterator(TEST_DATA_DIR, 1, 2, ALL_CYCLES, ".bcl"));
+        fileMap.assertValid(makeList(1,2), new int[]{1,2,3,4,5});
+    }*/
+
+}
diff --git a/src/tests/java/picard/illumina/parser/FilterParserTest.java b/src/tests/java/picard/illumina/parser/FilterParserTest.java
new file mode 100644
index 0000000..79c44f1
--- /dev/null
+++ b/src/tests/java/picard/illumina/parser/FilterParserTest.java
@@ -0,0 +1,171 @@
+package picard.illumina.parser;
+
+import org.testng.Assert;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import picard.PicardException;
+
+import java.io.File;
+import java.lang.reflect.Array;
+import java.util.ArrayList;
+import java.util.List;
+
+public class FilterParserTest {
+    private static final File TestDataDir = new File("testdata/picard/illumina/parserTests");
+    private static final File BaseCallsDir = new File(TestDataDir, "filterParser");
+
+    private static final boolean F = false;
+    private static final boolean T = true;
+    public static final Boolean[] s_1_0001_filter = {F, F, T, F, T, T, F, F, T, F, T, T, F, T, T};
+    public static final Boolean[] s_1_0002_filter = {F, F, F, F, F, T, T, F, F, F, F, T, F, F, F, T, T, T, T, T};
+    public static final Boolean[] s_1_0003_filter = {T, F, F, F, T, T, F, F};
+    public static final Boolean[] s_1_0004_filter = {T, F, F, F, F, T, F, F, F, F, T, F, F, F, F, T, T, F, F, T,
+            T, F, T, F, T, T, F, F, T, T, F, T, T, T, T, F, T, T, T, T,
+            F, T, F, F, F, T, F, T, F, T, T, F, F, T, T, T, F, F, T, T};
+
+    public static final Boolean[] tileToValue(int tile) {
+        switch (tile) {
+            case 1:
+                return s_1_0001_filter;
+            case 2:
+                return s_1_0002_filter;
+            case 3:
+                return s_1_0003_filter;
+            case 4:
+                return s_1_0004_filter;
+        }
+
+        throw new RuntimeException("You shouldn't reach this statement!");
+    }
+
+    public static final Boolean[] allTilesToValues(Integer[] tiles) {
+        Boolean[][] values = new Boolean[tiles.length][];
+        for (int i = 0; i < tiles.length; i++) {
+            values[i] = tileToValue(tiles[i]);
+        }
+
+        return arrayFlatten(values);
+    }
+
+    public static final List<Integer> arrayToList(final Integer[] array) {
+        final List<Integer> list = new ArrayList<Integer>();
+        for (int item : array) {
+            list.add(item);
+        }
+        return list;
+    }
+
+    public static final <T> T[] arrayFlatten(final T[][] arrays) {
+        int total = 0;
+        for (T[] arr : arrays) {
+            total += arr.length;
+        }
+
+        int resultIndex = 0;
+        final T[] result = (T[]) Array.newInstance(arrays[0][0].getClass(), total);
+        for (int i = 0; i < arrays.length; i++) {
+            System.arraycopy(arrays[i], 0, result, resultIndex, arrays[i].length);
+            resultIndex += arrays[i].length;
+        }
+        return result;
+    }
+
+    @DataProvider(name = "passingTiles")
+    public Object[][] passingTiles() {
+        return new Object[][]{
+                {new Integer[]{1}},
+                {new Integer[]{2}},
+                {new Integer[]{4}},
+                {new Integer[]{1, 4}},
+                {new Integer[]{2, 3}},
+                {new Integer[]{1, 2, 3, 4}}
+        };
+    }
+
+    @Test(dataProvider = "passingTiles")
+    public void passingParserTest(Integer[] tiles) {
+        final IlluminaFileUtil fUtil = new IlluminaFileUtil(BaseCallsDir, 1);
+
+        final Boolean[] values = allTilesToValues(tiles);
+        final List<Integer> tileList = arrayToList(tiles);
+
+        final FilterParser fp = new FilterParser(((PerTileFileUtil) fUtil.getUtil(IlluminaFileUtil.SupportedIlluminaFormat.Filter)).getFiles(tileList));
+        fp.verifyData(tileList, null); //filter parser doesn't care about cycle
+
+        for (final boolean expectedValue : values) {
+            Assert.assertTrue(fp.hasNext());
+            Assert.assertEquals(fp.next().isPf(), expectedValue);
+        }
+
+        Assert.assertFalse(fp.hasNext());
+
+        //seek back to the beginning and do it again!
+        fp.seekToTile(tiles[0]);
+        for (final boolean expectedValue : values) {
+            Assert.assertTrue(fp.hasNext());
+            Assert.assertEquals(fp.next().isPf(), expectedValue);
+        }
+
+        Assert.assertFalse(fp.hasNext());
+        fp.close();
+    }
+
+    @DataProvider(name = "seekToTile")
+    public Object[][] seekToTile() {
+        return new Object[][]{
+                //seek after how many, tiles to load, expected values
+                {0, 2, new Integer[]{2}, new Boolean[][]{s_1_0002_filter}},
+                {4, 4, new Integer[]{1, 4}, new Boolean[][]{new Boolean[]{F, F, T, F}, s_1_0004_filter}},
+                {0, 3, new Integer[]{2, 3}, new Boolean[][]{s_1_0003_filter}},
+                {15, 3, new Integer[]{1, 2, 3, 4}, new Boolean[][]{s_1_0001_filter, s_1_0003_filter, s_1_0004_filter}}
+        };
+    }
+
+    @Test(dataProvider = "seekToTile")
+    public void passingSeekingParserTest(int skipBefore, int tileToSkipTo, Integer[] tiles, Boolean[][] expectedValues) {
+        final IlluminaFileUtil fUtil = new IlluminaFileUtil(BaseCallsDir, 1);
+
+        final Boolean[] values = arrayFlatten(expectedValues);
+        final List<Integer> tileList = arrayToList(tiles);
+
+        final FilterParser fp = new FilterParser(((PerTileFileUtil) fUtil.getUtil(IlluminaFileUtil.SupportedIlluminaFormat.Filter)).getFiles(tileList));
+
+        int read = 0;
+        for (final boolean expectedValue : values) {
+            if (read == skipBefore) {
+                fp.seekToTile(tileToSkipTo);
+            }
+
+            Assert.assertTrue(fp.hasNext());
+            Assert.assertEquals(fp.next().isPf(), expectedValue, " Failed on read: " + read);
+            ++read;
+        }
+
+        Assert.assertFalse(fp.hasNext());
+        fp.close();
+    }
+
+    @DataProvider(name = "failingVerifyTiles")
+    public Object[][] failingVerifyTiles() {
+        return new Object[][]{
+                {new Integer[]{1}, new Integer[]{2}},
+                {new Integer[]{2}, new Integer[]{1}},
+                {new Integer[]{4}, new Integer[]{5}},
+                {new Integer[]{1, 4}, new Integer[]{1, 3, 4}},
+                {new Integer[]{2, 3}, new Integer[]{2, 3, 4}},
+                {new Integer[]{1, 2, 3, 4}, new Integer[]{1, 2, 3, 4, 5}},
+                {new Integer[]{2, 3, 4}, new Integer[]{1, 2, 3, 4}}
+        };
+    }
+
+    @Test(dataProvider = "failingVerifyTiles", expectedExceptions = PicardException.class)
+    public void verifyDataTest(final Integer[] initTiles, final Integer[] verifyTiles) {
+        final IlluminaFileUtil fUtil = new IlluminaFileUtil(BaseCallsDir, 1);
+        final List<Integer> initTileList = arrayToList(initTiles);
+        final List<Integer> verifyTileList = arrayToList(verifyTiles);
+
+        final FilterParser fp = new FilterParser(((PerTileFileUtil) fUtil.getUtil(IlluminaFileUtil.SupportedIlluminaFormat.Filter)).getFiles(initTileList));
+        fp.verifyData(verifyTileList, null); //filter parser doesn't care about cycle values
+        fp.close();
+    }
+}
diff --git a/src/tests/java/picard/illumina/parser/IlluminaDataProviderFactoryTest.java b/src/tests/java/picard/illumina/parser/IlluminaDataProviderFactoryTest.java
new file mode 100644
index 0000000..fdf3c8b
--- /dev/null
+++ b/src/tests/java/picard/illumina/parser/IlluminaDataProviderFactoryTest.java
@@ -0,0 +1,16 @@
+package picard.illumina.parser;
+
+
+import picard.illumina.parser.readers.BclQualityEvaluationStrategy;
+
+import java.io.File;
+
+public class IlluminaDataProviderFactoryTest {
+
+    class TestFactory extends IlluminaDataProviderFactory{
+        public TestFactory(final File basecallDirectory, final int lane, final ReadStructure readStructure, final IlluminaDataType... dataTypes) {
+            super(basecallDirectory, lane, readStructure, new BclQualityEvaluationStrategy(BclQualityEvaluationStrategy.ILLUMINA_ALLEGED_MINIMUM_QUALITY), dataTypes);
+        }
+
+    }
+}
diff --git a/src/tests/java/picard/illumina/parser/IlluminaDataProviderTest.java b/src/tests/java/picard/illumina/parser/IlluminaDataProviderTest.java
new file mode 100644
index 0000000..4cbbccb
--- /dev/null
+++ b/src/tests/java/picard/illumina/parser/IlluminaDataProviderTest.java
@@ -0,0 +1,270 @@
+/*
+* The MIT License
+*
+* Copyright (c) 2011 The Broad Institute
+*
+* Permission is hereby granted, free of charge, to any person obtaining a copy
+* of this software and associated documentation files (the "Software"), to deal
+* in the Software without restriction, including without limitation the rights
+* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+* copies of the Software, and to permit persons to whom the Software is
+* furnished to do so, subject to the following conditions:
+*
+* The above copyright notice and this permission notice shall be included in
+* all copies or substantial portions of the Software.
+*
+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+* THE SOFTWARE.
+*/
+package picard.illumina.parser;
+
+import org.testng.Assert;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import picard.PicardException;
+import picard.illumina.parser.readers.BclQualityEvaluationStrategy;
+
+import java.io.File;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+import static htsjdk.samtools.util.CollectionUtil.makeList;
+//import static htsjdk.samtools.util.CollectionUtil.*;
+
+/**
+ * @author jburke at broadinstitute.org
+ */
+
+public class IlluminaDataProviderTest {
+
+    public static final BclQualityEvaluationStrategy bclQualityEvaluationStrategy = new BclQualityEvaluationStrategy(BclQualityEvaluationStrategy.ILLUMINA_ALLEGED_MINIMUM_QUALITY);
+    public static final File BINARY_TD_LOCATION = new File("testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls");
+    private static final IlluminaDataType[] DEFAULT_DATA_TYPES = new IlluminaDataType[]{
+            IlluminaDataType.Position, IlluminaDataType.BaseCalls, IlluminaDataType.QualityScores, IlluminaDataType.PF
+    };
+
+    private void runTest(
+            final String testName, final int size,
+            final Map<Integer, ClusterData> readNoToClusterData,
+            final int seekAfterFirstRead, final int seekTestDataReadOffset,
+            final IlluminaDataProvider dataProvider)
+            throws Exception {
+
+        int count = 0;
+        int readNum = 0;
+        while (dataProvider.hasNext()) {
+            final ClusterData cluster = dataProvider.next();
+            if (readNoToClusterData.containsKey(readNum)) {
+                compareReadData(cluster, readNoToClusterData.get(readNum), testName + " cluster num " + readNum);
+            }
+
+            if (seekAfterFirstRead != 0 && count == 0) {
+                dataProvider.seekToTile(seekAfterFirstRead);
+                readNum += seekTestDataReadOffset;
+            }
+
+            readNum++;
+            count++;
+        }
+        Assert.assertEquals(count, size, testName);
+        dataProvider.close();
+    }
+
+    private IlluminaDataType[] getDataTypes(final IlluminaDataType[] extraDataTypes) {
+        final IlluminaDataType[] dts;
+
+        if (extraDataTypes == null) {
+            dts = DEFAULT_DATA_TYPES;
+        } else {
+            dts = Arrays.copyOf(DEFAULT_DATA_TYPES, DEFAULT_DATA_TYPES.length + extraDataTypes.length);
+            System.arraycopy(extraDataTypes, 0, dts, DEFAULT_DATA_TYPES.length, extraDataTypes.length);
+        }
+        return dts;
+    }
+
+
+    private void compareBasesAndQuals(final ReadData rd1, final ReadData rd2, final String testName) {
+        Assert.assertEquals(rd1.getBases(), rd2.getBases(), testName);
+        Assert.assertEquals(rd1.getQualities(), rd2.getQualities(), testName);
+        Assert.assertEquals(rd1.getReadType(), rd2.getReadType());
+    }
+
+    private void comparePositionalData(final ClusterData cd1, final ClusterData cd2, final String testName) {
+        Assert.assertEquals(cd1.getLane(), cd2.getLane(), testName);
+        Assert.assertEquals(cd1.getTile(), cd2.getTile(), testName);
+        Assert.assertEquals(cd1.getX(), cd2.getX(), testName);
+        Assert.assertEquals(cd1.getY(), cd2.getY(), testName);
+    }
+
+    //Doesn't compare intensities right now -- Do we want too?
+    private void compareReadData(final ClusterData cd1, final ClusterData cd2, final String testName) {
+        comparePositionalData(cd1, cd2, testName);
+        Assert.assertEquals(cd1.getNumReads(), cd2.getNumReads());
+        for (int i = 0; i < cd1.getNumReads(); i++) {
+            compareBasesAndQuals(cd1.getRead(i), cd2.getRead(i), testName);
+        }
+
+        Assert.assertEquals(cd1.getMatchedBarcode(), cd2.getMatchedBarcode(), testName);
+        Assert.assertEquals(cd1.isPf().booleanValue(), cd2.isPf().booleanValue(), testName);
+    }
+
+    public void runBarcodeParsingTest(final IlluminaDataProviderFactory factory) {
+        int total = 0;
+        final IlluminaDataProvider dataProvider = factory.makeDataProvider();
+        while (dataProvider.hasNext()) {
+            final ClusterData cluster = dataProvider.next();
+            final String matchedBarcode = cluster.getMatchedBarcode();
+            if (matchedBarcode != null) {
+                Assert.assertEquals(matchedBarcode, new String(cluster.getRead(1).getBases()));
+            }
+            if(total > 10){
+                break;
+            }
+            total++;
+        }
+        dataProvider.close();
+    }
+
+    @Test
+    public void barcodeParsingTest() {
+        runBarcodeParsingTest(new IlluminaDataProviderFactory(BINARY_TD_LOCATION, 1, new ReadStructure("25T8B25T"), bclQualityEvaluationStrategy, IlluminaDataType.BaseCalls,
+                IlluminaDataType.Barcodes));
+    }
+
+    @DataProvider(name = "binaryData")
+    public Object[][] binaryData() {
+        return new Object[][]{
+                {
+                        "Bustard Parsing Test(25T8B25T) w/Clocs", 1, 180,
+                        makeList(1101, 1201, 2101),
+                        new IlluminaDataType[]{IlluminaDataType.Barcodes},
+                        "25T8B25T",
+                        0, 0,
+                        BINARY_TD_LOCATION
+                },
+                {
+                        "Bustard Parsing Test(25T8S25T) w/Clocs", 1, 180,
+                        makeList(1101, 1201, 2101),
+                        new IlluminaDataType[]{IlluminaDataType.Barcodes},
+                        "25T8S25T",
+                        0, 0,
+                        BINARY_TD_LOCATION
+                },
+                {
+                        "Bustard Parsing Test(25T8S25T) w/Clocs with ending skip", 1, 180,
+                        makeList(1101, 1201, 2101),
+                        new IlluminaDataType[]{IlluminaDataType.Barcodes},
+                        "25T8B1S",
+                        0, 0,
+                        BINARY_TD_LOCATION
+                },
+                {
+                        "Bustard Parsing Test(25S8S25T) w/Clocs", 1, 180,
+                        makeList(1101, 1201, 2101),
+                        new IlluminaDataType[]{IlluminaDataType.Barcodes},
+                        "25S8S25T",
+                        0, 0,
+                        BINARY_TD_LOCATION
+                },
+                {
+                        "Bustard Parsing Test(25T8B25T) w/Clocs And Seeking", 1, 61,
+                        makeList(1101, 1201, 2101),
+                        new IlluminaDataType[]{IlluminaDataType.Barcodes},
+                        "25T8B25T",
+                        2101, 4631,
+                        BINARY_TD_LOCATION
+                }
+        };
+    }
+
+    @Test(dataProvider = "binaryData")
+    public void testIlluminaDataProviderBclMethod(
+            final String testName, final int lane, final int size,
+            final List<Integer> tiles,
+            final IlluminaDataType[] extraDataTypes,
+            final String illuminaConfigStr,
+            final int seekAfterFirstRead, final int seekTestDataReadOffset,
+            final File basecallsDirectory)
+            throws Exception {
+
+        final IlluminaDataType[] dts = getDataTypes(extraDataTypes);
+
+        final Map<Integer, ClusterData> readNoToClusterData = BinTdUtil.clusterData(lane, tiles, illuminaConfigStr, dts);
+        final IlluminaDataProviderFactory factory = new IlluminaDataProviderFactory(basecallsDirectory, lane, new ReadStructure(illuminaConfigStr), bclQualityEvaluationStrategy, dts);
+        final IlluminaDataProvider dataProvider = factory.makeDataProvider();
+
+        runTest(testName, size, readNoToClusterData, seekAfterFirstRead, seekTestDataReadOffset, dataProvider);
+    }
+
+    //Unlike above, the data types here do not have DEFAULT_DATA_TYPES added before creating the dataProvider
+    @DataProvider(name = "badData")
+    public Object[][] badData() {
+        return new Object[][]{
+                {
+                        "Bad Lane(5)", 5, 60,
+                        makeList(1101, 1201, 2101),
+                        new IlluminaDataType[]{IlluminaDataType.Barcodes},
+                        "25T8B25T",
+                        BINARY_TD_LOCATION
+                },
+                {
+                        "Bad Read Structure(25TB25T)", 4, 60,
+                        makeList(1101, 1201, 2101),
+                        DEFAULT_DATA_TYPES,
+                        "25TB25T",
+                        BINARY_TD_LOCATION
+                },
+                {
+                        "Bad Read Structure(25T0B25T)", 4, 60,
+                        makeList(1101, 1201, 2101),
+                        DEFAULT_DATA_TYPES,
+                        "25T0B25T",
+                        BINARY_TD_LOCATION
+                },
+                {
+                        "Bad Read Structure(-225T0B25T)", 4, 60,
+                        makeList(1101, 1201, 2101),
+                        DEFAULT_DATA_TYPES,
+                        "-25T0B25T",
+                        BINARY_TD_LOCATION
+                },
+                {
+                        "Missing Barcodes File", 9, 60,
+                        makeList(1101, 1201, 2101),
+                        new IlluminaDataType[]{IlluminaDataType.Position, IlluminaDataType.Barcodes},
+                        "25T8B25T",
+                        BINARY_TD_LOCATION
+                },
+                {
+                        "Missing Cycle File", 9, 60,
+                        makeList(1101, 1201, 2101),
+                        new IlluminaDataType[]{IlluminaDataType.BaseCalls},
+                        "25T8B25T",
+                        BINARY_TD_LOCATION
+                },
+                {
+                        "Missing Filter File", 9, 60,
+                        makeList(1101, 1201, 2101),
+                        new IlluminaDataType[]{IlluminaDataType.PF, IlluminaDataType.BaseCalls, IlluminaDataType.QualityScores},
+                        "25T8B24T",
+                        BINARY_TD_LOCATION
+                }
+        };
+    }
+
+    @Test(dataProvider = "badData", expectedExceptions = {PicardException.class, IllegalArgumentException.class})
+    public void testIlluminaDataProviderMissingDatas(final int lane,
+                                                     final IlluminaDataType[] actualDts,
+                                                     final String illuminaConfigStr,
+                                                     final File basecallsDirectory)
+            throws Exception {
+        final IlluminaDataProviderFactory factory = new IlluminaDataProviderFactory(basecallsDirectory, lane, new ReadStructure(illuminaConfigStr), bclQualityEvaluationStrategy, actualDts);
+        factory.makeDataProvider();
+    }
+}
diff --git a/src/tests/java/picard/illumina/parser/IlluminaFileUtilTest.java b/src/tests/java/picard/illumina/parser/IlluminaFileUtilTest.java
new file mode 100644
index 0000000..9cf24ff
--- /dev/null
+++ b/src/tests/java/picard/illumina/parser/IlluminaFileUtilTest.java
@@ -0,0 +1,658 @@
+package picard.illumina.parser;
+
+import htsjdk.samtools.util.IOUtil;
+import org.testng.Assert;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import picard.PicardException;
+import picard.illumina.parser.IlluminaFileUtil.SupportedIlluminaFormat;
+
+import java.io.DataOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import static htsjdk.samtools.util.CollectionUtil.makeList;
+
+public class IlluminaFileUtilTest {
+    private static final int DEFAULT_LANE = 7;
+    private static final List<Integer> DEFAULT_TILES = makeList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);
+    private static final List<Integer> DEFAULT_TILE_TEST_SUBSET = makeList(1, 4, 5, 6, 9, 10);
+    private static final int[] DEFAULT_CYCLES = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20};
+    private static final int DEFAULT_LAST_CYCLE = 20;
+
+    // We have data for these that should agree
+    private static final List<SupportedIlluminaFormat> FORMATS_TO_TEST = Arrays.asList(
+            SupportedIlluminaFormat.Bcl,
+            SupportedIlluminaFormat.Locs,
+            SupportedIlluminaFormat.Clocs,
+            SupportedIlluminaFormat.Pos,
+            SupportedIlluminaFormat.Filter,
+            SupportedIlluminaFormat.Barcode);
+
+
+    private File intensityDir;
+    private File basecallDir;
+
+    @BeforeMethod
+    private void setUp() throws Exception {
+        intensityDir = IOUtil.createTempDir("ift_test", "Intensities");
+        basecallDir = new File(intensityDir, "BaseCalls");
+        if (!basecallDir.mkdir()) {
+            throw new RuntimeException("Couldn't make basecalls dir " + basecallDir.getAbsolutePath());
+        }
+    }
+
+    @AfterMethod
+    private void tearDown() {
+        IOUtil.deleteDirectoryTree(intensityDir);
+    }
+
+    @DataProvider(name = "validLanes")
+    public Object[][] validLanes() {
+        return new Object[][]{
+                {0, "s_0_1111.test"},
+                {1, "s_1_23.test"},
+                {10, "s_10_1.test"}
+        };
+    }
+
+    public void regexMatches(final String regex, final String toMatch) {
+        regexMatches(regex, toMatch, true);
+    }
+
+    public void regexMatches(final String regex, final String toMatch, final boolean expectedResult) {
+        final Pattern pt = Pattern.compile(regex);
+        final Matcher ma = pt.matcher(toMatch);
+        Assert.assertEquals(ma.matches(), expectedResult);
+    }
+
+    @Test(dataProvider = "validLanes")
+    public void regexTests(final int lane, final String ltExample) {
+        regexMatches(ParameterizedFileUtil.makeLaneTileRegex(".test", lane), ltExample);
+    }
+
+    @DataProvider(name = "validLanesInvalidRegexes")
+    public Object[][] validLanesInvalidRegexes() {
+        return new Object[][]{
+                {0, "s_-0_111"},
+                {1, "s_1_A3"},
+                {10, "s_-100_1"},
+                {20, "s_21_1"}
+        };
+    }
+
+    @Test(dataProvider = "validLanesInvalidRegexes")
+    public void notMatchingRegexTest(final int lane, final String ltExample) {
+        regexMatches(ParameterizedFileUtil.makeLaneTileRegex(".test", lane) , ltExample, false);
+    }
+
+    @DataProvider(name = "invalidLanes")
+    public Object[][] invalidLanes() {
+        return new Object[][]{
+                {-1000},
+                {-10},
+                {-1}
+        };
+    }
+
+    @Test(dataProvider = "invalidLanes", expectedExceptions = PicardException.class)
+    public void invalidLaneForLTRegex(final int lane) {
+        ParameterizedFileUtil.makeLaneTileRegex(".test", lane);
+    }
+
+    public void assertDefaults(final IlluminaFileUtil fileUtil, final Integer lane, final List<SupportedIlluminaFormat> formatsToTest) {
+        if (lane == null) {
+            Assert.assertEquals(fileUtil.getLane(), DEFAULT_LANE);
+        } else {
+            Assert.assertEquals(new Integer(fileUtil.getLane()), lane);
+        }
+
+        Assert.assertEquals(fileUtil.getUtil(SupportedIlluminaFormat.Barcode).getTiles(), DEFAULT_TILES);
+
+        Assert.assertEquals(fileUtil.getUtil(SupportedIlluminaFormat.Bcl).getTiles(), DEFAULT_TILES);
+
+        Assert.assertEquals(fileUtil.getUtil(SupportedIlluminaFormat.Pos).getTiles(), DEFAULT_TILES);
+
+        Assert.assertEquals(fileUtil.getUtil(SupportedIlluminaFormat.Locs).getTiles(), DEFAULT_TILES);
+
+        Assert.assertEquals(fileUtil.getUtil(SupportedIlluminaFormat.Clocs).getTiles(), DEFAULT_TILES);
+
+        Assert.assertEquals(fileUtil.getUtil(SupportedIlluminaFormat.Filter).getTiles(), DEFAULT_TILES);
+
+        final Set<Integer> detectedCycles = ((PerTilePerCycleFileUtil) fileUtil.getUtil(SupportedIlluminaFormat.Bcl)).getDetectedCycles();
+        Assert.assertEquals(detectedCycles.size(), DEFAULT_CYCLES.length);
+        int i = 0;
+        for(final Integer cycle : detectedCycles){
+            Assert.assertEquals(cycle.intValue(), DEFAULT_CYCLES[i++], "Elements differ at index " + i);
+        }
+
+        Assert.assertEquals(fileUtil.getActualTiles(formatsToTest), DEFAULT_TILES);
+    }
+
+    @Test
+    public void passNewUtilTest() {
+        for (final SupportedIlluminaFormat format : SupportedIlluminaFormat.values()) {
+            makeFiles(format, intensityDir, DEFAULT_LANE, DEFAULT_TILES, DEFAULT_CYCLES);
+            makeFiles(format, intensityDir, DEFAULT_LANE + 1, DEFAULT_TILES, DEFAULT_CYCLES, ".gz");
+            makeFiles(format, intensityDir, DEFAULT_LANE + 2, DEFAULT_TILES, DEFAULT_CYCLES, ".bz2");
+        }
+
+        final Set<SupportedIlluminaFormat> formatsToTest = new HashSet<SupportedIlluminaFormat>();
+        // TODO: I can't be bothered to build files for these.  AW
+        Collections.addAll(formatsToTest, SupportedIlluminaFormat.values());
+        formatsToTest.remove(SupportedIlluminaFormat.MultiTileBcl);
+        formatsToTest.remove(SupportedIlluminaFormat.MultiTileFilter);
+        formatsToTest.remove(SupportedIlluminaFormat.MultiTileLocs);
+        final ArrayList<SupportedIlluminaFormat> formatsList = new ArrayList<SupportedIlluminaFormat>(formatsToTest);
+
+        for (int i = 0; i < 3; i++) {
+            final IlluminaFileUtil fileUtil = new IlluminaFileUtil(new File(intensityDir, "BaseCalls"), DEFAULT_LANE + i);
+            Assert.assertEquals(fileUtil.getActualTiles(formatsList), DEFAULT_TILES);
+            assertDefaults(fileUtil, DEFAULT_LANE + i, formatsList);
+        }
+    }
+
+    @Test
+    public void passingVerifyTest() {
+        for (final SupportedIlluminaFormat format : SupportedIlluminaFormat.values()) {
+            makeFiles(format, intensityDir, DEFAULT_LANE, DEFAULT_TILES, DEFAULT_CYCLES);
+            makeFiles(format, intensityDir, DEFAULT_LANE + 1, DEFAULT_TILES, DEFAULT_CYCLES, ".gz");
+            makeFiles(format, intensityDir, DEFAULT_LANE + 2, DEFAULT_TILES, DEFAULT_CYCLES, ".bz2");
+        }
+
+        for (int i = 0; i < 3; i++) {
+            final IlluminaFileUtil fileUtil = new IlluminaFileUtil(new File(intensityDir, "BaseCalls"), DEFAULT_LANE + i);
+
+
+            for (final SupportedIlluminaFormat format : FORMATS_TO_TEST) {
+                Assert.assertEquals(new ArrayList<String>(), fileUtil.getUtil(format).verify(DEFAULT_TILES, DEFAULT_CYCLES));
+            }
+        }
+    }
+
+    @DataProvider(name = "missingTileFormats")
+    public Object[][] missingTileFormats() {
+        return new Object[][]{
+                {
+                        1,
+                        makeList(SupportedIlluminaFormat.Bcl, SupportedIlluminaFormat.Barcode),
+                        makeList(SupportedIlluminaFormat.Bcl, SupportedIlluminaFormat.Barcode),
+                        makeList("BaseCalls/s_1_0007_barcode.txt.gz"),
+                        ".gz"
+                },
+
+                {
+                        2,
+                        Arrays.asList(SupportedIlluminaFormat.values()),
+                        Arrays.asList(SupportedIlluminaFormat.values()),
+                        makeCycleFileList(new File("BaseCalls"), ".bcl", 2, DEFAULT_CYCLES, 2),
+                        ".gz"
+                },
+                {
+                        3,
+                        Arrays.asList(SupportedIlluminaFormat.values()),
+                        Arrays.asList(SupportedIlluminaFormat.values()),
+                        makeList("BaseCalls/L003/C1.1/s_3_2.bcl"),
+                        ".bz2"
+                },
+                {
+                        4,
+                        Arrays.asList(SupportedIlluminaFormat.values()),
+                        Arrays.asList(SupportedIlluminaFormat.Pos, SupportedIlluminaFormat.Locs),
+                        makeList("s_4_10_pos.txt", "L004/s_4_2.locs"),
+                        null
+                }
+        };
+    }
+
+    public static void emptyRelativeFiles(final File baseFile, final List<String> relativeFilesToDelete) {
+        for (final String relativeFile : relativeFilesToDelete) {
+            final File actualFile = new File(baseFile, relativeFile);
+
+
+            if (!actualFile.exists()) {
+                throw new RuntimeException("Trying to empty a non-existent file" + actualFile.getAbsolutePath());
+            }
+
+            if (actualFile.isDirectory()) {
+                throw new RuntimeException("Trying to empty a directory(" + actualFile.getAbsolutePath() + ")");
+            } else {
+                if (!actualFile.delete()) {
+                    throw new RuntimeException("Couldn't remove previous file when emptying(" + actualFile.getAbsolutePath() + ")");
+                } else {
+                    try {
+                        if (!actualFile.createNewFile()) {
+                            throw new RuntimeException("Couldn't create empty file: " + actualFile.getAbsolutePath() + ")");
+                        }
+                    } catch (final IOException ioe) {
+                        throw new RuntimeException(ioe);
+                    }
+                }
+            }
+            if (!actualFile.exists()) {
+                throw new PicardException("File should exist: " + actualFile);
+            }
+        }
+    }
+
+    public static void deleteRelativeFiles(final File baseFile, final List<String> relativeFilesToDelete) {
+        for (final String relativeFile : relativeFilesToDelete) {
+            final File actualFile = new File(baseFile, relativeFile);
+
+
+            if (!actualFile.exists()) {
+                throw new RuntimeException("Trying to delete a non-existent file" + actualFile.getAbsolutePath());
+            }
+
+            if (actualFile.isDirectory()) {
+                IOUtil.deleteDirectoryTree(actualFile);
+            } else {
+                IOUtil.deleteFiles(actualFile);
+            }
+            if (actualFile.exists()) {
+                throw new RuntimeException("File still exists after calling delete: " + actualFile);
+            }
+        }
+    }
+
+    public final void deleteRelativeFiles(final List<String> relativeFilesToDelete) {
+        deleteRelativeFiles(intensityDir, relativeFilesToDelete);
+    }
+
+    @Test(dataProvider = "missingTileFormats")
+    public void missingTileTest(final int lane,
+                                final List<SupportedIlluminaFormat> formats,
+                                final List<SupportedIlluminaFormat> formatsToGetTiles,
+                                final List<String> relativeFilesToDelete,
+                                final String compression) {
+        for (final SupportedIlluminaFormat format : formats) {
+            makeFiles(format, intensityDir, lane, DEFAULT_TILES, DEFAULT_CYCLES, compression);
+        }
+
+        deleteRelativeFiles(relativeFilesToDelete);
+
+        PicardException pExc = null;
+        try {
+            final IlluminaFileUtil fUtil = new IlluminaFileUtil(new File(intensityDir, "BaseCalls"), lane);
+            fUtil.getActualTiles(formatsToGetTiles);
+        } catch (final PicardException exception) {
+            pExc = exception;
+        }
+
+        Assert.assertNotNull(pExc, "Didn't raise a Picard Exception for missing tile!");
+        Assert.assertTrue(pExc.getMessage().contains("Formats do not have the same number of tiles! "), "Wrong exception thrown for missing tile!");
+    }
+
+    @DataProvider(name = "perTileFileFormats")
+    public Object[][] perTileFileUtils() {
+        return new Object[][]{
+                {SupportedIlluminaFormat.Locs, null, false, laneDir(DEFAULT_LANE)},
+                {SupportedIlluminaFormat.Clocs, null, false, laneDir(DEFAULT_LANE)},
+                {SupportedIlluminaFormat.Pos, ".gz", false, null},
+                {SupportedIlluminaFormat.Pos, null, false, null},
+                {SupportedIlluminaFormat.Filter, null, true, "BaseCalls/" + laneDir(DEFAULT_LANE)},
+                {SupportedIlluminaFormat.Barcode, ".bz2", true, "BaseCalls"}
+        };
+    }
+
+    public File makePerTileFile(final File parentDir, final int lane, final int tile, final String extension, final String compression, final boolean longFormat) {
+        return new File(parentDir, "s_" + lane + "_" + longTile(tile, longFormat) + extension + (compression != null ? compression : ""));
+    }
+
+    public void testDefaultPerTileUtil(final PerTileFileUtil ptfu, final String compression, final boolean longFormat, final File parentDir) {
+        final IlluminaFileMap fm = ptfu.getFiles();
+        final IlluminaFileMap fmWTiles = ptfu.getFiles(DEFAULT_TILES);
+
+        Assert.assertEquals(fm.size(), DEFAULT_TILES.size());
+
+        for (final Integer tile : DEFAULT_TILES) {
+            final File tFile = fm.get(tile);
+            final File tFile2 = fmWTiles.get(tile);
+            Assert.assertEquals(tFile.getAbsolutePath(), tFile2.getAbsolutePath());
+            Assert.assertEquals(tFile, makePerTileFile(parentDir, DEFAULT_LANE, tile, ptfu.extension, compression, longFormat));
+            Assert.assertTrue(tFile.exists());
+            Assert.assertTrue(tFile.length() > 0);
+        }
+
+        final List<Integer> tiles = new ArrayList<Integer>(DEFAULT_TILE_TEST_SUBSET);
+        final IlluminaFileMap subsetMap = ptfu.getFiles(DEFAULT_TILE_TEST_SUBSET);
+        for (final Integer tile : subsetMap.keySet()) {
+            tiles.remove(tile);
+            Assert.assertTrue(DEFAULT_TILE_TEST_SUBSET.contains(tile));
+            final File tFile = subsetMap.get(tile);
+            Assert.assertEquals(tFile, makePerTileFile(parentDir, DEFAULT_LANE, tile, ptfu.extension, compression, longFormat));
+            Assert.assertTrue(tFile.exists());
+            Assert.assertTrue(tFile.length() > 0);
+        }
+
+        Assert.assertTrue(tiles.isEmpty());
+    }
+
+    @Test(dataProvider = "perTileFileFormats")
+    public void perTileFileUtilsTest(final SupportedIlluminaFormat format, final String compression, final boolean longFormat, final String parentDir) {
+        makeFiles(format, intensityDir, DEFAULT_LANE, DEFAULT_TILES, DEFAULT_CYCLES, compression);
+
+        final IlluminaFileUtil fileUtil = new IlluminaFileUtil(basecallDir, DEFAULT_LANE);
+        final PerTileFileUtil ptfu = (PerTileFileUtil) fileUtil.getUtil(format);
+
+        Assert.assertTrue(ptfu.filesAvailable());
+        testDefaultPerTileUtil(ptfu, compression, longFormat, (parentDir == null) ? intensityDir : new File(intensityDir, parentDir));
+
+        final IlluminaFileUtil noFilesFu = new IlluminaFileUtil(basecallDir, DEFAULT_LANE + 20);
+        final PerTileFileUtil noFilesPtfu = (PerTileFileUtil) noFilesFu.getUtil(format);
+        Assert.assertFalse(noFilesPtfu.filesAvailable());
+        Assert.assertTrue(noFilesPtfu.getFiles().isEmpty());
+        Assert.assertTrue(noFilesPtfu.getFiles(DEFAULT_TILES).isEmpty());
+    }
+
+    public File makePerTilePerCycleFilePath(final File parentDir, final int lane, final int tile, final int cycle, final String extension) {
+        return new File(parentDir, "C" + cycle + ".1/s_" + lane + "_" + tile + extension);
+    }
+
+    public void testDefaultPerTilePerCycleUtil(final PerTilePerCycleFileUtil pcfu, final File parentDir, final int[] cycles) {
+        final CycleIlluminaFileMap cfm = pcfu.getFiles(cycles);
+        final CycleIlluminaFileMap cfmWTiles = pcfu.getFiles(DEFAULT_TILES, cycles);
+        final CycleIlluminaFileMap cfmNoCycles;
+        if (Arrays.equals(cycles, DEFAULT_CYCLES)) {
+            cfmNoCycles = pcfu.getFiles();
+        } else {
+            cfmNoCycles = null;
+        }
+
+        Assert.assertEquals(cfm.size(), cycles.length);
+
+        for (final int cycle : cycles) {
+            final IlluminaFileMap tFileIter = cfm.get(cycle);
+            final IlluminaFileMap tFileIter2 = cfmWTiles.get(cycle);
+            final IlluminaFileMap tFileIter3;
+            if (cfmNoCycles != null) {
+                tFileIter3 = cfmNoCycles.get(cycle);
+            } else {
+                tFileIter3 = null;
+            }
+
+            for (final Integer tile : DEFAULT_TILES) {
+                final File tcFile = tFileIter.get(tile);
+                final File tcFile2 = tFileIter2.get(tile);
+
+                Assert.assertEquals(tcFile.getAbsolutePath(), tcFile2.getAbsolutePath());
+                if (tFileIter3 != null) {
+                    final File tfFile3 = tFileIter3.get(tile);
+                    Assert.assertEquals(tcFile.getAbsolutePath(), tfFile3.getAbsolutePath());
+                }
+
+                Assert.assertEquals(tcFile, makePerTilePerCycleFilePath(parentDir, DEFAULT_LANE, tile, cycle, pcfu.extension));
+                Assert.assertTrue(tcFile.exists());
+                Assert.assertTrue(tcFile.length() > 0);
+            }
+        }
+    }
+
+
+    public void testSubsetDefaultPerTilePerCycleUtil(final PerTilePerCycleFileUtil pcfu, final File parentDir, final int[] cycles) {
+        final List<Integer> tiles = new ArrayList<Integer>(DEFAULT_TILE_TEST_SUBSET);
+        final CycleIlluminaFileMap subsetMap = pcfu.getFiles(DEFAULT_TILE_TEST_SUBSET, cycles);
+        final CycleIlluminaFileMap cfmNoCycles;
+        if (Arrays.equals(cycles, DEFAULT_CYCLES)) {
+            cfmNoCycles = pcfu.getFiles(DEFAULT_TILE_TEST_SUBSET);
+        } else {
+            cfmNoCycles = null;
+        }
+
+        for (final int cycle : cycles) {
+            final IlluminaFileMap tFileIter = subsetMap.get(cycle);
+            final IlluminaFileMap tFileIter2;
+            if (cfmNoCycles != null) {
+                tFileIter2 = cfmNoCycles.get(cycle);
+            } else {
+                tFileIter2 = null;
+            }
+
+
+            for (final Integer tile : subsetMap.get(cycle).keySet()) {
+                Assert.assertTrue(DEFAULT_TILE_TEST_SUBSET.contains(tile));
+                tiles.remove(tile);
+                final File tcFile = tFileIter.get(tile);
+                if (tFileIter2 != null) {
+                    Assert.assertEquals(tcFile, tFileIter2.get(tile));
+                }
+                Assert.assertEquals(tcFile, makePerTilePerCycleFilePath(parentDir, DEFAULT_LANE, tile, cycle, pcfu.extension));
+                Assert.assertTrue(tcFile.exists());
+                Assert.assertTrue(tcFile.length() > 0);
+            }
+        }
+
+        Assert.assertTrue(tiles.isEmpty());
+    }
+
+    public static int[] cycleRange(final Range range) {
+        return cycleRange(range.start, range.end);
+    }
+
+    public static int[] cycleRange(final int start, final int end) {
+        final int[] cycles = new int[end - start + 1];
+        for (int i = 0; i < cycles.length; i++) {
+            cycles[i] = start + i;
+        }
+
+        return cycles;
+    }
+
+    public static int[] cycleRange(final int end) {
+        return cycleRange(1, end);
+    }
+
+    @DataProvider(name = "perTilePerCycleFileFormats")
+    public Object[][] perTilePerCycleFileFormats() {
+        return new Object[][]{
+                {SupportedIlluminaFormat.Bcl, "BaseCalls/" + laneDir(DEFAULT_LANE), DEFAULT_CYCLES, false, false},
+                {SupportedIlluminaFormat.Bcl, "BaseCalls/" + laneDir(DEFAULT_LANE), cycleRange(4), true, true},
+        };
+    }
+
+    @Test(dataProvider = "perTilePerCycleFileFormats")
+    public void perTilePerCycleFileUtilsTest(final SupportedIlluminaFormat format, final String parentDir,
+                                             final int[] cycles, final boolean createEarlySkippedCycles,
+                                             final boolean createLateSkippedCycles) {
+        if (createEarlySkippedCycles) {
+            makeFiles(format, intensityDir, DEFAULT_LANE, DEFAULT_TILES, cycleRange(1, cycles[0]), null);
+        }
+
+        makeFiles(format, intensityDir, DEFAULT_LANE, DEFAULT_TILES, cycles, null);
+
+        if (createLateSkippedCycles) {
+            makeFiles(format, intensityDir, DEFAULT_LANE, DEFAULT_TILES, cycleRange(cycles[cycles.length - 1] + 1, DEFAULT_LAST_CYCLE), null);
+        }
+
+        final IlluminaFileUtil fileUtil = new IlluminaFileUtil(basecallDir, DEFAULT_LANE);
+        final PerTilePerCycleFileUtil pcfu = (PerTilePerCycleFileUtil) fileUtil.getUtil(format);
+
+        Assert.assertTrue(pcfu.filesAvailable());
+        testDefaultPerTilePerCycleUtil(pcfu, (parentDir == null) ? intensityDir : new File(intensityDir, parentDir), cycles);
+        testSubsetDefaultPerTilePerCycleUtil(pcfu, (parentDir == null) ? intensityDir : new File(intensityDir, parentDir), cycles);
+
+        final IlluminaFileUtil noFilesFu = new IlluminaFileUtil(basecallDir, DEFAULT_LANE + 20);
+        final PerTilePerCycleFileUtil noFilesPcfu = (PerTilePerCycleFileUtil) noFilesFu.getUtil(format);
+
+        Assert.assertFalse(noFilesPcfu.filesAvailable());
+        Assert.assertTrue(noFilesPcfu.getFiles().isEmpty());
+        Assert.assertTrue(noFilesPcfu.getFiles(DEFAULT_TILES).isEmpty());
+    }
+
+    @DataProvider(name = "missingCycleDataRanges")
+    public Object[][] missingCycleDataRanges() {
+        return new Object[][]{
+                {makeList(new Range(10, 15))},
+                {makeList(new Range(9, 12), new Range(14, 15))}
+        };
+    }
+
+    @Test(expectedExceptions = PicardException.class, dataProvider = "missingCycleDataRanges")
+    public void perTilePerCycleFileUtilsMissingCycleTest(final List<Range> cycleRangesToMake) {
+        final SupportedIlluminaFormat format = SupportedIlluminaFormat.Bcl;
+
+        for (final Range range : cycleRangesToMake) {
+            makeFiles(format, intensityDir, DEFAULT_LANE, DEFAULT_TILES, cycleRange(range), null);
+        }
+
+        final IlluminaFileUtil fileUtil = new IlluminaFileUtil(basecallDir, DEFAULT_LANE);
+        final PerTilePerCycleFileUtil pcfu = (PerTilePerCycleFileUtil) fileUtil.getUtil(format);
+
+        Assert.assertTrue(pcfu.filesAvailable());
+        final int[] cycles = cycleRange(9, 16);
+        final CycleIlluminaFileMap cfm = pcfu.getFiles(cycles);
+        cfm.assertValid(DEFAULT_TILES, cycles);
+    }
+
+
+    public static void makeFiles(final SupportedIlluminaFormat format, final File intensityDir, final int lane,
+                                 final List<Integer> tiles, final int[] cycles) {
+        makeFiles(format, intensityDir, lane, tiles, cycles, null);
+    }
+
+    public static void makeFiles(final SupportedIlluminaFormat format, final File intensityDir, final int lane,
+                                 final List<Integer> tiles, final int[] cycles, final String compression) {
+        String laneDir = String.valueOf(lane);
+        while (laneDir.length() < 3) {
+            laneDir = "0" + laneDir;
+        }
+        laneDir = "L" + laneDir;
+
+
+        final File basecallDir = new File(intensityDir, "BaseCalls");
+        final File basecallLaneDir = new File(basecallDir, laneDir);
+        final File intensityLaneDir = new File(intensityDir, laneDir);
+
+        switch (format) {
+            //per tile formats
+            case Barcode:
+                makePerTileFiles(basecallDir, lane, tiles, maybeAddExt("_barcode.txt", compression), true);
+                break;
+
+            case Pos:
+                makePerTileFiles(intensityDir, lane, tiles, maybeAddExt("_pos.txt", compression), false);
+                break;
+
+            case Locs:
+                makePerTileFiles(intensityLaneDir, lane, tiles, maybeAddExt(".locs", null), false);
+                break;
+
+            case Clocs:
+                makePerTileFiles(intensityLaneDir, lane, tiles, maybeAddExt(".clocs", null), false);
+                break;
+
+            case Filter:
+                makePerTileFiles(basecallLaneDir, lane, tiles, maybeAddExt(".filter", null), true);
+                break;
+
+            //per tile per cycle formats
+            case Bcl:
+                makePerTilePerCycleFiles(basecallLaneDir, lane, tiles, cycles, ".bcl");
+                break;
+        }
+    }
+
+    private static void makePerTileFiles(final File parentDir, final int lane, final List<Integer> tiles, final String ext, final boolean longName) {
+        if (!parentDir.exists()) {
+            if (!parentDir.mkdir()) {
+                throw new RuntimeException("Couldn't create directory " + parentDir.getAbsolutePath());
+            }
+        }
+
+        for (final Integer tile : tiles) {
+            writeNonEmptyFile(new File(parentDir, "s_" + lane + "_" + longTile(tile, longName) + ext));
+        }
+    }
+
+    private static void makePerTilePerCycleFiles(final File parentDir, final int lane, final List<Integer> tiles, final int[] cycles, final String ext) {
+        if (!parentDir.exists()) {
+            if (!parentDir.mkdir()) {
+                throw new RuntimeException("Couldn't create directory " + parentDir.getAbsolutePath());
+            }
+        }
+
+        for (final int cycle : cycles) {
+            final File cycleDir = new File(parentDir, "C" + cycle + ".1");
+            if (!cycleDir.exists()) {
+                if (!cycleDir.mkdir()) {
+                    throw new RuntimeException("Couldn't create directory " + cycleDir.getAbsolutePath());
+                }
+            }
+
+            for (final Integer tile : tiles) {
+                writeNonEmptyFile(new File(cycleDir, "s_" + lane + "_" + tile + ext));
+            }
+        }
+    }
+
+    private static List<String> makeCycleFileList(final File dir, final String ext, final int lane, final int[] cycles, final int... tiles) {
+        return makeCycleFileList(dir, ext, lane, cycles, false, tiles);
+    }
+
+    private static List<String> makeCycleFileList(final File dir, final String ext, final int lane, final int[] cycles, final boolean longFmt, final int... tiles) {
+        final List<String> files = new ArrayList<String>();
+        final File laneDir = new File(dir, laneDir(lane));
+
+        for (final int cycle : cycles) {
+            final File cycleDir = new File(laneDir, "C" + cycle + ".1");
+            for (final Integer tile : tiles) {
+                files.add(cycleDir + "/s_" + lane + "_" + longTile(tile, longFmt) + ext);
+            }
+        }
+
+        return files;
+    }
+
+    private static void writeNonEmptyFile(final File file) {
+        try {
+            final OutputStream outputStream = new DataOutputStream(new FileOutputStream(file));
+            final int expectedLength = 10;
+            outputStream.write(expectedLength);
+            // The negative beginning index is to accommodate the header. Fancy. Ever so fancy.
+            for (int i = -3; i < expectedLength; i++) outputStream.write(0x0);
+            outputStream.close();
+        } catch (final IOException e) {
+            throw new RuntimeException("Exception trying to create non-empty file!", e);
+        }
+    }
+
+    private static String laneDir(final int lane) {
+        String ldir = String.valueOf(lane);
+        while (ldir.length() < 3) {
+            ldir = "0" + ldir;
+        }
+        return "L" + ldir;
+    }
+
+    private static String longTile(final int tile, final boolean makeLong) {
+        if (makeLong) {
+            String lt = String.valueOf(tile);
+            while (lt.length() < 4) {
+                lt = "0" + lt;
+            }
+            return lt;
+        } else {
+            return String.valueOf(tile);
+        }
+    }
+
+    private static String maybeAddExt(final String fileExt, final String compressionExt) {
+        if (compressionExt != null) {
+            return fileExt + compressionExt;
+        } else {
+            return fileExt;
+        }
+    }
+}
diff --git a/src/tests/java/picard/illumina/parser/PerTileParserTest.java b/src/tests/java/picard/illumina/parser/PerTileParserTest.java
new file mode 100644
index 0000000..4f69334
--- /dev/null
+++ b/src/tests/java/picard/illumina/parser/PerTileParserTest.java
@@ -0,0 +1,173 @@
+package picard.illumina.parser;
+
+import htsjdk.samtools.util.CloseableIterator;
+import org.testng.Assert;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import picard.PicardException;
+
+import java.io.File;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import static htsjdk.samtools.util.CollectionUtil.makeList;
+
+public class PerTileParserTest {
+
+    private static final Map<String, List<Integer>> FILE_TO_VALUE = new HashMap<String, List<Integer>>();
+    private static final IlluminaFileMap FILE_MAP = new IlluminaFileMap();
+    static {
+        FILE_MAP.put(1, new File("s_1_1"));
+        FILE_MAP.put(2, new File("s_1_2"));
+        FILE_MAP.put(3, new File("s_1_3"));
+        FILE_MAP.put(4, new File("s_1_4"));
+        FILE_MAP.put(5, new File("s_1_5"));
+        FILE_TO_VALUE.put("s_1_1", makeList(1, 2, 3, 4, 5));
+        FILE_TO_VALUE.put("s_1_2", makeList(6, 7, 8, 9, 10));
+        FILE_TO_VALUE.put("s_1_3", makeList(11, 12, 13, 14, 15));
+        FILE_TO_VALUE.put("s_1_4", makeList(16, 17, 18, 19, 20));
+        FILE_TO_VALUE.put("s_1_5", makeList(21, 22, 23, 24, 25));
+    }
+
+    class DummyDt implements IlluminaData {
+        public DummyDt(final Integer value) {
+            this.value = value;
+        }
+        public final Integer value;
+    }
+
+    class MockPerTileParser extends PerTileParser<DummyDt> {
+
+        public MockPerTileParser(final IlluminaFileMap tilesToFiles) {
+            super(tilesToFiles);
+        }
+
+        @Override
+        protected CloseableIterator<DummyDt> makeTileIterator(final File file) {
+            return new CloseableIterator<DummyDt>() {
+                private final Iterator<Integer> values = FILE_TO_VALUE.get(file.getName()).iterator();
+
+                @Override
+                public void close() {
+
+                }
+
+                @Override
+                public boolean hasNext() {
+                    return values.hasNext();
+                }
+
+                @Override
+                public DummyDt next() {
+                    return new DummyDt(values.next());
+                }
+
+                @Override
+                public void remove() {
+                    throw new UnsupportedOperationException();
+                }
+            };
+        }
+
+        @Override
+        public Set<IlluminaDataType> supportedTypes() {
+            return null;  //To change body of implemented methods use File | Settings | File Templates.
+        }
+    }
+
+    @Test
+    public void basicIterationTest() {
+        final IlluminaFileMap fm = new IlluminaFileMap();
+        fm.put(1, new File("s_1_1"));
+        fm.put(2, new File("s_1_2"));
+        fm.put(3, new File("s_1_3"));
+        fm.put(4, new File("s_1_4"));
+        fm.put(5, new File("s_1_5"));
+
+        final PerTileParser<DummyDt> ddts = new MockPerTileParser(fm);
+
+        for(int i = 0; i < 25; i++) {
+            Assert.assertTrue(ddts.hasNext());
+            Assert.assertEquals(ddts.next().value, new Integer(i+1));
+        }
+
+        Assert.assertFalse(ddts.hasNext());
+    }
+
+    @DataProvider(name="seekingTests")
+    public Object[][] seekingTests() {
+        return new Object[][] {
+            {1,  4, null, null},
+            {15, 1, null, null},
+            {25, 3, null, null},
+            {24, 5, null, null},
+            {1,  3,   10, 1},
+            {1,  3,   15, 2},
+            {12, 2,   15, 4},
+            {6,  3,   12, 5},
+            {14, 5,   25, 2}
+        };
+    }
+
+    @Test(dataProvider = "seekingTests")
+    public void seekToTileTest(Integer firstSeekPos, Integer firstTile, Integer secondSeekPos, Integer secondTile) {
+        final PerTileParser<DummyDt> ddts = new MockPerTileParser(FILE_MAP);
+
+        for(int i = 1; i <= firstSeekPos; i++) {
+            Assert.assertTrue(ddts.hasNext());
+            Assert.assertEquals(ddts.next().value, new Integer(i));
+        }
+
+        ddts.seekToTile(firstTile);
+
+        int start = firstTile * 5 - 4;
+        if(secondSeekPos != null) {
+            for(int i = start; i <= secondSeekPos; i++) {
+                Assert.assertTrue(ddts.hasNext());
+                Assert.assertEquals(ddts.next().value, new Integer(i));
+            }
+            ddts.seekToTile(secondTile);
+            start = secondTile * 5 - 4;
+        }
+
+        for(int i = start; i <= 25; i++) {
+            Assert.assertTrue(ddts.hasNext());
+            Assert.assertEquals(ddts.next().value, new Integer(i));
+        }
+
+        Assert.assertFalse(ddts.hasNext());
+    }
+
+    @DataProvider(name="missingTiles")
+    public Object [][] missingTiles() {
+        return new Object [][] {
+           {-1}, {10}, {Integer.MAX_VALUE}, {Integer.MIN_VALUE}
+        };
+    }
+
+    @Test(expectedExceptions = PicardException.class, dataProvider="missingTiles")
+    public void missingTileTest(final Integer missingTile) {
+        final PerTileParser<DummyDt> ddts = new MockPerTileParser(FILE_MAP);
+        ddts.seekToTile(missingTile);
+    }
+
+    @Test(expectedExceptions = PicardException.class)
+    public void failVerifyTestTooManyTiles() {
+        final PerTileParser<DummyDt> ddts = new MockPerTileParser(FILE_MAP);
+        ddts.verifyData(makeList(1,2,3,4,5,6), null);
+    }
+    @Test(expectedExceptions = PicardException.class)
+    public void failVerifyTestMissingTile() {
+        final PerTileParser<DummyDt> ddts = new MockPerTileParser(FILE_MAP);
+        ddts.verifyData(makeList(1,2,4,5), null);
+    }
+
+    @Test
+    public void passVerifyTest() {
+        final PerTileParser<DummyDt> ddts = new MockPerTileParser(FILE_MAP);
+        ddts.verifyData(makeList(1,2,3,4,5), null);
+    }
+}
diff --git a/src/tests/java/picard/illumina/parser/PerTilePerCycleParserTest.java b/src/tests/java/picard/illumina/parser/PerTilePerCycleParserTest.java
new file mode 100644
index 0000000..25332af
--- /dev/null
+++ b/src/tests/java/picard/illumina/parser/PerTilePerCycleParserTest.java
@@ -0,0 +1,197 @@
+package picard.illumina.parser;
+
+import org.testng.Assert;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.NoSuchElementException;
+import java.util.Set;
+
+import static htsjdk.samtools.util.CollectionUtil.makeList;
+
+public class PerTilePerCycleParserTest {
+    public static final List<Integer> DEFAULT_TILES = makeList(1, 2, 3, 4);
+    public static final int[] DEFAULT_OUTPUT_LENGTHS = new int[]{10, 5, 5};
+    public static final int[] CYCLES = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20};
+    public static final int MAX_CYCLE = 20;
+    public static final OutputMapping OUTPUT_MAPPING = new OutputMapping(new ReadStructure("20T"));
+
+    private class MockCycledIlluminaData implements IlluminaData {
+        private final List<String> values;
+
+        public MockCycledIlluminaData() {
+            this.values = new ArrayList<String>();
+        }
+
+        public void addValue(final String value) {
+            values.add(value);
+        }
+
+        public List<String> getValues() {
+            return values;
+        }
+    }
+
+    class MockPerTileCycleParser extends PerTileCycleParser<MockCycledIlluminaData> {
+        private final int[] expectedOutputLengths;
+
+        public MockPerTileCycleParser(final File directory, final int lane, final CycleIlluminaFileMap tilesToCycleFiles, final OutputMapping outputMapping) {
+            super(directory, lane, tilesToCycleFiles, outputMapping);
+            expectedOutputLengths = outputMapping.getOutputReadLengths();
+            this.initialize();
+        }
+
+        @Override
+        protected CycleFilesParser<MockCycledIlluminaData> makeCycleFileParser(final List<File> files) {
+            return new CycleFilesParser<MockCycledIlluminaData>() {
+                int currentCycle = 0;
+
+                @Override
+                public void close() {
+
+                }
+
+                @Override
+                public MockCycledIlluminaData next() {
+                    final MockCycledIlluminaData ild = new MockCycledIlluminaData();
+                    if (!hasNext()) {
+                        throw new NoSuchElementException();
+                    }
+
+                    ild.addValue(str_del(files.get(currentCycle++)));
+                    return ild;
+                }
+
+                @Override
+                public boolean hasNext() {
+                    return currentCycle < MAX_CYCLE;
+                }
+            };
+        }
+
+        @Override
+        public void initialize() {
+            seekToTile(currentTile);
+        }
+
+        public Set<IlluminaDataType> supportedTypes() {
+            return null;
+        }
+
+        @Override
+        public void close() {
+            //no-op
+        }
+    }
+
+    public List<String> getFileNames(final List<Integer> tiles) {
+        final List<String> fileNames = new ArrayList<String>();
+        for (final Integer tile : tiles) {
+            for (int i = 1; i <= MAX_CYCLE; i++) {
+                fileNames.add(str_del(tile, i));
+            }
+        }
+        return fileNames;
+    }
+
+    public CycleIlluminaFileMap getIlluminaFileMaps(final List<Integer> tiles, final int[] cycles) {
+        final CycleIlluminaFileMap cycleFileMap = new CycleIlluminaFileMap();
+        for (final int cycle : cycles) {
+            final IlluminaFileMap fileMap = new IlluminaFileMap();
+            for (final Integer tile : tiles) {
+                fileMap.put(tile, new File(str_del(tile, cycle)));
+            }
+            cycleFileMap.put(cycle, fileMap);
+        }
+        return cycleFileMap;
+    }
+
+    public static String str_del(final Object... objects) {
+        String out = objects[0].toString();
+        for (int i = 1; i < objects.length; i++) {
+            out += "_" + objects[i];
+        }
+        return out;
+    }
+
+    @Test
+    public void basicIterationTest() {
+        final List<String> expectedValues = getFileNames(DEFAULT_TILES);
+        final PerTileCycleParser<MockCycledIlluminaData> parser = makeParser();
+
+        int index = 0;
+        while (parser.hasNext()) {
+            index = compareValues(parser.next().values, expectedValues, index);
+        }
+
+        Assert.assertEquals(index, expectedValues.size());
+    }
+
+
+    private int compareValues(final List<String> parserValues, final List<String> expectedValues, int index) {
+        for (final String parserValue : parserValues) {
+            Assert.assertTrue(index < expectedValues.size());
+            Assert.assertEquals(parserValue, expectedValues.get(index), "With index " + index);
+            ++index;
+        }
+
+        return index;
+    }
+
+    public PerTileCycleParser<MockCycledIlluminaData> makeParser() {
+        final CycleIlluminaFileMap fileMap = getIlluminaFileMaps(DEFAULT_TILES, CYCLES);
+        return new MockPerTileCycleParser(new File("FakeFile"), 1, fileMap, OUTPUT_MAPPING);
+    }
+
+    @DataProvider(name = "seekingTests")
+    public Object[][] seekingTests() {
+        return new Object[][]{
+                {1, 3, null, null},
+                {22, 1, null, null},
+                {38, 2, null, null},
+                {75, 4, null, null},
+                {1, 3, 70, 1},
+                {1, 3, 45, 2},
+                {12, 2, 59, 4},
+                {45, 3, 70, 3},
+                {14, 1, 5, 2}
+        };
+    }
+
+
+    @Test(dataProvider = "seekingTests")
+    public void seekingIterationTest(final Integer seekPos1, final Integer newTile1, final Integer seekPos2, final Integer newTile2) {
+        final List<String> expectedValues = getFileNames(DEFAULT_TILES);
+        final PerTileCycleParser<MockCycledIlluminaData> parser = makeParser();
+
+        int index = 0;
+        for (int i = 0; i <= seekPos1; i++) {
+            Assert.assertTrue(parser.hasNext());
+            index = compareValues(parser.next().values, expectedValues, index);
+        }
+
+        parser.seekToTile(newTile1);
+
+        index = (newTile1 - 1) * MAX_CYCLE;
+        if (seekPos2 != null) {
+            for (int i = index; i <= seekPos2; i++) {
+                Assert.assertTrue(parser.hasNext());
+                index = compareValues(parser.next().values, expectedValues, index);
+            }
+
+            parser.seekToTile(newTile2);
+            index = (newTile2 - 1) * MAX_CYCLE;
+        }
+
+        for (int i = index; i < MAX_CYCLE * DEFAULT_TILES.size(); i++) {
+            Assert.assertTrue(parser.hasNext());
+            index = compareValues(parser.next().values, expectedValues, index);
+        }
+
+        Assert.assertFalse(parser.hasNext());
+
+    }
+}
diff --git a/src/tests/java/picard/illumina/parser/PosParserTest.java b/src/tests/java/picard/illumina/parser/PosParserTest.java
new file mode 100644
index 0000000..062437e
--- /dev/null
+++ b/src/tests/java/picard/illumina/parser/PosParserTest.java
@@ -0,0 +1,206 @@
+package picard.illumina.parser;
+
+import org.testng.Assert;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import static htsjdk.samtools.util.CollectionUtil.makeList;
+
+public class PosParserTest {
+
+    public static final File TEST_DIR = new File("testdata/picard/illumina/parserTests/posParser");
+    public static final File S_1_1_POS = new File(TEST_DIR, "s_1_1_pos.txt");
+    public static final File S_1_2_POS = new File(TEST_DIR, "s_1_2_pos.txt");
+    public static final File S_1_3_POS = new File(TEST_DIR, "s_1_3_pos.txt");
+    public static final File S_9_3201_POS = new File(TEST_DIR, "s_9_3201_pos.txt");
+    public static final File S_9_3202_POS = new File(TEST_DIR, "s_9_3202_pos.txt");
+
+    static class TestResult {
+        public final int lane;
+        public final int tile;
+        public final float xPos;
+        public final float yPos;
+        public final int xQSeqCoord;
+        public final int yQSeqCoord;
+
+        public TestResult(final int lane, final int tile, final float xPos, final float yPos, final int xQseqCoord, final int yQSeqCoord) {
+            this.lane = lane;
+            this.tile = tile;
+            this.xPos = xPos;
+            this.yPos = yPos;
+            this.xQSeqCoord = xQseqCoord;
+            this.yQSeqCoord = yQSeqCoord;
+        }
+    }
+
+    public static List<TestResult> makeTestResults(final int lane, final int tile, final float [] xyPos, final int [] xyQseq) {
+        final ArrayList<TestResult> results = new ArrayList<TestResult>();
+        for(int i = 0; i < xyPos.length; i+=2) {
+            results.add(new TestResult(lane, tile, xyPos[i], xyPos[i+1], xyQseq[i], xyQseq[i+1]));
+        }
+        return results;
+    }
+
+    public static Map<String, List<TestResult>> TEST_DATA = new HashMap<String, List<TestResult>>();
+    static {
+       float[] pos = {
+               101.35f,      207.8f,
+               102.88f,      209.22f,
+               0.35f,        211.99f,
+               10.11f,       2540.55f,
+               11011.81f,    211
+       };
+
+       int[] qseq = {
+               2014,      3078,
+               2029,      3092,
+               1004,      3120,
+               1101,      26406,
+               111118,    3110
+       };
+       TEST_DATA.put(S_1_1_POS.getName(), makeTestResults(1,1, pos, qseq));
+
+        pos = new float[] {
+                2101.35f,  207.82f,
+                202.88f,  209.222f,
+                2.35f,    211.992f,
+                2.11f,   2540.552f,
+                21011.81f,    2112f
+        };
+
+        qseq = new int[]{
+                22014,     3078,
+                3029,      3092,
+                1024,      3120,
+                1021,      26406,
+                211118,    22120
+        };
+        TEST_DATA.put(S_1_2_POS.getName(), makeTestResults(1,2, pos, qseq));
+
+        pos = new float[] {
+                301.35f,  207.83f,
+                302.88f,  209.23f,
+                0.35f,    911.993f,
+                30.11f,   2540.553f
+        };
+
+        qseq = new int[]{
+                4014,      3078,
+                4029,      3092,
+                1004,      10120,
+                1301,      26406
+        };
+        TEST_DATA.put(S_1_3_POS.getName(), makeTestResults(1,3, pos, qseq));
+
+        pos = new float[] {
+            901.00f,   8011.00f,
+            9.05f,    32.00f,
+            3201.11f, 32001.00f
+        };
+
+        qseq = new int[]{
+            10010, 81110,
+            1091,  1320,
+            33011, 321010
+        };
+        TEST_DATA.put(S_9_3201_POS.getName(), makeTestResults(9,3201, pos, qseq));
+
+        pos = new float[] {
+                3252f,      7785f,
+                97.350f,    0.01f,
+                88.00f,     942.01f,
+                87.85f,     70.01f,
+                32022.000f, 32000.0f
+        };
+
+        qseq = new int[]{
+                33520,  78850,
+                1974,   1000,
+                1880,   10420,
+                1879,   1700,
+                321220, 321000
+        };
+        TEST_DATA.put(S_9_3202_POS.getName(), makeTestResults(9,3202, pos, qseq));
+    }
+
+    public static void compareResults(final TestResult tr, final PositionalData pd, final int index) {
+        Assert.assertEquals(tr.xQSeqCoord, pd.getXCoordinate(), " At index " + index);
+        Assert.assertEquals(tr.yQSeqCoord, pd.getYCoordinate(), " At index " + index);
+    }
+
+    @DataProvider(name = "singleTileData")
+    public Object [][] singleTileData() {
+        return new Object[][]{
+            {1, 1, S_1_1_POS},
+            {1, null, S_1_1_POS},
+            {3202, 3202, S_9_3202_POS},
+            {3202, null, S_9_3202_POS}
+        };
+    }
+
+    @Test(dataProvider = "singleTileData")
+    public void singleTileDataTest(final int tile, final Integer startingTile, final File file) {
+        final IlluminaFileMap fm = new IlluminaFileMap();
+        fm.put(tile, file);
+
+        final PosParser parser = (startingTile == null) ? new PosParser(fm, IlluminaFileUtil.SupportedIlluminaFormat.Pos) :
+                                                          new PosParser(fm, startingTile, IlluminaFileUtil.SupportedIlluminaFormat.Pos);
+        final Iterator<TestResult> expected = TEST_DATA.get(file.getName()).iterator();
+
+        int index = 0;
+        while(expected.hasNext()) {
+            Assert.assertTrue(parser.hasNext());
+            compareResults(expected.next(), parser.next(), index);
+            ++index;
+        }
+
+        Assert.assertFalse(parser.hasNext());
+        parser.close();
+    }
+
+    @DataProvider(name = "multiTileData")
+    public Object [][] multiTileData() {
+        return new Object[][]{
+            {makeList(1,2,3),     null,    makeList(S_1_1_POS, S_1_2_POS, S_1_3_POS)},
+            {makeList(1,2,3),     1,       makeList(S_1_1_POS, S_1_2_POS, S_1_3_POS)},
+            {makeList(1,3),       0,       makeList(S_1_1_POS, S_1_3_POS)},
+            {makeList(3201,3202), null,    makeList(S_9_3201_POS, S_9_3202_POS)},
+            {makeList(3201,3202), 1,       makeList(S_9_3201_POS, S_9_3202_POS)},
+        };
+    }
+
+    @Test(dataProvider = "multiTileData")
+    public void multiTileDataTest(final List<Integer> tiles, final Integer startingTileIndex, final List<File> files) {
+        final IlluminaFileMap fm = new IlluminaFileMap();
+        for(int i = 0; i < tiles.size(); i++) {
+            fm.put(tiles.get(i), files.get(i));
+        }
+
+        final PosParser parser = (startingTileIndex == null) ? new PosParser(fm, IlluminaFileUtil.SupportedIlluminaFormat.Pos) :
+                                                               new PosParser(fm, tiles.get(startingTileIndex), IlluminaFileUtil.SupportedIlluminaFormat.Pos);
+        final List<TestResult> expectedResultsList = new ArrayList<TestResult>();
+        final int t1 = (startingTileIndex != null) ? startingTileIndex : 0;
+        for(int i = t1; i < tiles.size(); i++) {
+            expectedResultsList.addAll(TEST_DATA.get(files.get(i).getName()));
+        }
+
+        final Iterator<TestResult> expected = expectedResultsList.iterator();
+
+        int index = 0;
+        while(expected.hasNext()) {
+            Assert.assertTrue(parser.hasNext());
+            compareResults(expected.next(), parser.next(), index);
+            ++index;
+        }
+
+        Assert.assertFalse(parser.hasNext());
+        parser.close();
+    }
+}
diff --git a/src/tests/java/picard/illumina/parser/fakers/BclFileFakerTest.java b/src/tests/java/picard/illumina/parser/fakers/BclFileFakerTest.java
new file mode 100644
index 0000000..6db620c
--- /dev/null
+++ b/src/tests/java/picard/illumina/parser/fakers/BclFileFakerTest.java
@@ -0,0 +1,59 @@
+package picard.illumina.parser.fakers;
+
+import org.testng.Assert;
+import org.testng.annotations.Test;
+import picard.illumina.parser.readers.BclQualityEvaluationStrategy;
+import picard.illumina.parser.readers.BclReader;
+
+import java.io.File;
+
+/**
+ * The MIT License
+ * <p/>
+ * Copyright (c) 2014 The Broad Institute
+ * <p/>
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ * <p/>
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ * <p/>
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+public class BclFileFakerTest {
+
+    @Test
+    public void testFileLengthMatchesHeaderLength() throws Exception {
+        final File fakeFile = File.createTempFile("BclFileFakerTest", ".bcl");
+        fakeFile.deleteOnExit();
+
+        new BclFileFaker().fakeFile(fakeFile, 100000);
+        // .make() has a number of checks for the file
+        final BclReader bclReader = new BclReader(
+            fakeFile,
+            new BclQualityEvaluationStrategy(BclQualityEvaluationStrategy.ILLUMINA_ALLEGED_MINIMUM_QUALITY), false);
+        Assert.assertEquals(100000, BclReader.getNumberOfClusters(fakeFile));
+        Assert.assertEquals(BclReader.getNumberOfClusters(fakeFile), fakeFile.length() - 4);
+    }
+
+    @Test
+    public void testGZFileIsActuallyGZipped() throws Exception {
+        final File fakeFile = File.createTempFile("BclFileFakerTest", ".bcl.gz");
+        fakeFile.deleteOnExit();
+
+        new BclFileFaker().fakeFile(fakeFile, 100000);
+        new BclReader(
+                fakeFile,
+                new BclQualityEvaluationStrategy(BclQualityEvaluationStrategy.ILLUMINA_ALLEGED_MINIMUM_QUALITY), false);
+    }
+}
diff --git a/src/tests/java/picard/illumina/parser/readers/AbstractIlluminaPositionFileReaderTest.java b/src/tests/java/picard/illumina/parser/readers/AbstractIlluminaPositionFileReaderTest.java
new file mode 100644
index 0000000..417036d
--- /dev/null
+++ b/src/tests/java/picard/illumina/parser/readers/AbstractIlluminaPositionFileReaderTest.java
@@ -0,0 +1,156 @@
+package picard.illumina.parser.readers;
+
+
+import org.testng.Assert;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import picard.PicardException;
+
+import java.io.File;
+
+public class AbstractIlluminaPositionFileReaderTest {
+
+    //Pos values should never be negative
+    private static final float [] X_COORDS = new float[] {
+        0.00f,      0.012f, 0.09f,   1.44f,       23.45f,           155.893f,  588.921f, 801f,    1201.182f, 101.25f,
+        13201.01f,  0.59f,  0.3540f, 9999999.99f, 7989.88999f,      9298.134f, 12.3f,    109.09f, 54.3f,     17.15f
+    };
+
+    private static final int [] X_QSEQ_COORDS = new int [] {
+        1000,   1000, 1001, 1014,      1235,       2559,  6889, 9010, 13012, 2013,
+        133010, 1006, 1004, 100001000, 80899,      93981, 1123, 2091, 1543, 1172
+    };
+
+    private static final float [] Y_COORDS = new float[] {
+        //A note on index 2 -> this number causes truncation of the float, presumably that's fine as
+        //Illumina describes the value as a floating point number
+        679.99f,    32.0145f, 1878854.89f, 0.00f, 23.45f,           9875.64f,  42.42f,  64.01530f, 103.25f, 102.75f,
+        13201.01f,  0.59f,    0.3540f,     0.02f, 9875.66f,         9298.134f, 12.3f,   67.012f,   0.1254f, 19.54f
+    };
+
+    private static final int [] Y_QSEQ_COORDS = new int [] {
+        7800,   1320, 18789548, 1000, 1235,       99756, 1424, 1640, 2033, 2028,
+        133010, 1006, 1004,     1000, 99757,      93981, 1123, 1670, 1001, 1195
+    };
+
+
+    private static class MockPositionFileReader extends AbstractIlluminaPositionFileReader {
+        private final float [] xCoords;
+        private final float [] yCoords;
+        private int currentCluster;
+
+        public MockPositionFileReader(final String fileName, final int lane, final int tile, final float [] xCoords, final float [] yCoords) {
+            super(new File(fileName));
+            this.xCoords = xCoords;
+            this.yCoords = yCoords;
+            currentCluster = 0;
+        }
+
+        public MockPositionFileReader(final int lane, final int tile, final float [] xCoords, final float [] yCoords) {
+            super(new File("s_" + lane + "_" + tile + "_pos.txt.gz"));
+            this.xCoords = xCoords;
+            this.yCoords = yCoords;
+            currentCluster = 0;
+        }
+
+        @Override
+        protected PositionInfo unsafeNextInfo() {
+            PositionInfo pi = new PositionInfo(xCoords[currentCluster], yCoords[currentCluster], getLane(), getTile());
+            ++currentCluster;
+            return pi;
+        }
+
+        @Override
+        protected String makeExceptionMsg() {
+            return "Abstract IlluminaPositionFileReaderTest currentCluster=" + currentCluster;
+        }
+
+        @Override
+        public boolean hasNext() {
+            return currentCluster < xCoords.length;
+        }
+
+        @Override
+        public void close() {
+        }
+    }
+
+    @Test
+    public void validReaderTest() {
+        final int lane = 2;
+        final int tile = 8;
+        final AbstractIlluminaPositionFileReader reader = new MockPositionFileReader(lane, tile, X_COORDS, Y_COORDS);
+
+        int index = 0;
+        while(reader.hasNext()) {
+            AbstractIlluminaPositionFileReader.PositionInfo pi = reader.next();
+            Assert.assertEquals(pi.lane, lane);
+            Assert.assertEquals(pi.tile, tile);
+            Assert.assertEquals(pi.xPos, X_COORDS[index]);
+            Assert.assertEquals(pi.yPos, Y_COORDS[index]);
+            Assert.assertEquals(pi.xQseqCoord, X_QSEQ_COORDS[index]);
+            Assert.assertEquals(pi.yQseqCoord, Y_QSEQ_COORDS[index]);
+            ++index;
+        }
+
+        if(index < X_COORDS.length) {
+            throw new RuntimeException("Elements still remaining in test data!");
+        }
+    }
+
+    @DataProvider(name="invalidPositions")
+    public Object [][] invalidPositions() {
+        return new Object[][] {
+            {new float[]{0f, 5f, -11f},    new float[]{1f, 12f, 13f}},
+            {new float[]{-15.05f},         new float[]{19801f}},
+            {new float[]{10.05f, 3f, 8f}, new float[]{-120899.723f, 4f, 9f}},
+            {new float[]{9.0f, 2.3f, AbstractIlluminaPositionFileReader.MAX_POS + 1}, new float[]{3.2f, 8.1f, 99.1f}},
+            {new float[]{0.01f}, new float[]{AbstractIlluminaPositionFileReader.MAX_POS + 1000}}
+        };
+    }
+
+    @Test(expectedExceptions = IllegalArgumentException.class, dataProvider = "invalidPositions")
+    public void invalidReaderTest(float [] xCoords, float [] yCoords){
+        final int lane = 3;
+        final int tile = 4;
+
+        final AbstractIlluminaPositionFileReader reader = new MockPositionFileReader(lane, tile, xCoords, yCoords);
+        int index = 0;
+        while(reader.hasNext()) {
+            AbstractIlluminaPositionFileReader.PositionInfo pi = reader.next();
+            Assert.assertEquals(pi.lane, lane);
+            Assert.assertEquals(pi.tile, tile);
+            Assert.assertEquals(pi.xPos, xCoords[index]);
+            Assert.assertEquals(pi.yPos, yCoords[index]);
+            ++index;
+        }
+    }
+
+    @DataProvider(name = "invalidFileNames")
+    public Object [][] invalidFileNames() {
+        return new Object[][]{
+            {"whatever.locs"},
+            {"whatever.clocs"},
+            {"whatever.pos"},
+            {"s_1.clocs"},
+            {"s__2.clocs"},
+            {"s_1_4.Notclocs"},
+            {"a_1_4.pos"},
+            {"a_1_4.pos.txt"}
+        };
+    }
+
+    @Test(expectedExceptions = PicardException.class, dataProvider = "invalidFileNames")
+    public void invalidFileNamesTest(final String fileName){
+        final int lane = 3;
+        final int tile = 4;
+
+        final AbstractIlluminaPositionFileReader reader = new MockPositionFileReader(fileName, 0, 0, null, null);
+    }
+
+    @Test(expectedExceptions = UnsupportedOperationException.class)
+    public void iteratorRemoveTest() {
+        final AbstractIlluminaPositionFileReader reader = new MockPositionFileReader("s_1_1_pos.txt", 0, 0, null, null);
+        reader.remove();
+    }
+}
diff --git a/src/tests/java/picard/illumina/parser/readers/BclReaderTest.java b/src/tests/java/picard/illumina/parser/readers/BclReaderTest.java
new file mode 100644
index 0000000..659785e
--- /dev/null
+++ b/src/tests/java/picard/illumina/parser/readers/BclReaderTest.java
@@ -0,0 +1,172 @@
+package picard.illumina.parser.readers;
+
+import org.testng.Assert;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import picard.PicardException;
+import picard.illumina.parser.BclData;
+
+import java.io.File;
+import java.util.Collection;
+import java.util.LinkedList;
+import java.util.concurrent.Callable;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+
+public class BclReaderTest {
+
+    public static final File TestDataDir = new File("testdata/picard/illumina/readerTests");
+    public static final File PASSING_BCL_FILE = new File(TestDataDir, "bcl_passing.bcl");
+    public static final File QUAL_0FAILING_BCL_FILE = new File(TestDataDir, "bcl_failing.bcl");
+    public static final File QUAL_1FAILING_BCL_FILE = new File(TestDataDir, "bcl_failing2.bcl");
+    public static final File FILE_TOO_LONG = new File(TestDataDir, "bcl_tooLong.bcl");
+    public static final File FILE_TOO_SHORT = new File(TestDataDir, "bcl_tooShort.bcl");
+
+    public static final char[] expectedBases = new char[]{
+            'C', 'A', 'A', 'A', 'T', 'C', 'T', 'G', 'T', 'A', 'A', 'G', 'C', 'C', 'A', 'A',
+            'C', 'A', 'C', 'C', 'A', 'A', 'C', 'G', 'A', 'T', 'A', 'C', 'A', 'A', 'C', 'A',
+            'T', 'G', 'C', 'A', 'C', 'A', 'A', 'C', 'G', 'C', 'A', 'A', 'G', 'T', 'G', 'C',
+            'A', 'C', 'G', 'T', 'A', 'C', 'A', 'A', 'C', 'G', 'C', 'A', 'C', 'A', 'T', 'T',
+            'T', 'A', 'A', 'G', 'C', 'G', 'T', 'C', 'A', 'T', 'G', 'A', 'G', 'C', 'T', 'C',
+            'T', 'A', 'C', 'G', 'A', 'A', 'C', 'C', 'C', 'A', 'T', 'A', 'T', 'G', 'G', 'G',
+            'C', 'T', 'G', 'A', 'A', '.', '.', 'G', 'A', 'C', 'C', 'G', 'T', 'A', 'C', 'A',
+            'G', 'T', 'G', 'T', 'A', '.'
+    };
+
+    public static final int[] expectedQuals = new int[]{
+            18, 29, 8, 17, 27, 25, 28, 27, 9, 29, 8, 20, 25, 24, 27, 27,
+            30, 8, 19, 24, 29, 29, 25, 28, 8, 29, 26, 24, 29, 8, 18, 8,
+            29, 28, 26, 29, 25, 8, 26, 25, 28, 25, 8, 28, 28, 27, 29, 26,
+            25, 26, 27, 25, 8, 18, 8, 26, 24, 29, 25, 8, 24, 8, 25, 27,
+            27, 25, 8, 28, 24, 27, 25, 25, 8, 27, 25, 8, 16, 24, 28, 25,
+            28, 8, 24, 27, 25, 8, 20, 29, 24, 27, 28, 8, 23, 10, 23, 11,
+            15, 11, 10, 12, 12, 2, 2, 31, 24, 8, 4, 36, 12, 17, 21, 4,
+            8, 12, 18, 23, 27, 2
+    };
+
+    public byte[] qualsAsBytes() {
+        final byte[] byteVals = new byte[expectedQuals.length];
+        for (int i = 0; i < byteVals.length; i++) {
+            byteVals[i] = (byte) expectedQuals[i];
+        }
+        return byteVals;
+    }
+
+    @Test
+    public void readValidFile() {
+        final BclQualityEvaluationStrategy bclQualityEvaluationStrategy = new BclQualityEvaluationStrategy(BclQualityEvaluationStrategy.ILLUMINA_ALLEGED_MINIMUM_QUALITY);
+        final BclReader reader = new BclReader(PASSING_BCL_FILE, bclQualityEvaluationStrategy, false);
+        final byte[] quals = qualsAsBytes();
+
+        Assert.assertEquals(reader.numClustersPerCycle[0], expectedBases.length);
+
+        int readNum = 0;
+        while (readNum < reader.numClustersPerCycle[0]) {
+            final BclData bv = reader.next();
+            Assert.assertEquals(bv.bases[0][0], expectedBases[readNum], " On num cluster: " + readNum);
+            Assert.assertEquals(bv.qualities[0][0], quals[readNum], " On num cluster: " + readNum);
+            ++readNum;
+        }
+        bclQualityEvaluationStrategy.assertMinimumQualities();
+        reader.close();
+    }
+
+    @DataProvider(name = "failingFiles")
+    public Object[][] failingFiles() {
+        return new Object[][]{
+                {QUAL_0FAILING_BCL_FILE},
+                {QUAL_1FAILING_BCL_FILE},
+                {new File(TestDataDir, "SomeNoneExistentFile.bcl")},
+                {FILE_TOO_LONG},
+                {FILE_TOO_SHORT}
+        };
+    }
+
+    @Test(expectedExceptions = PicardException.class, dataProvider = "failingFiles")
+    public void failingFileTest(final File failingFile) {
+        final BclQualityEvaluationStrategy bclQualityEvaluationStrategy = new BclQualityEvaluationStrategy(BclQualityEvaluationStrategy.ILLUMINA_ALLEGED_MINIMUM_QUALITY);
+        final BclReader reader = new BclReader(failingFile, bclQualityEvaluationStrategy, false);
+        Assert.assertEquals(reader.numClustersPerCycle[0], expectedBases.length);
+        while (reader.hasNext()) {
+            reader.next();
+        }
+        reader.close();
+        bclQualityEvaluationStrategy.assertMinimumQualities();
+    }
+
+    /**
+     * Asserts appropriate functionality of a quality-minimum-customized BLC reader, such that (1) if sub-Q2 qualities are found, the BCL
+     * reader does not throw an exception, (2) sub-minimum calls are set to quality 1 and (3) sub-minimum calls are counted up properly.
+     */
+    @Test
+    public void lowQualityButPassingTest() throws ExecutionException, InterruptedException {
+        final BclQualityEvaluationStrategy bclQualityEvaluationStrategy = new BclQualityEvaluationStrategy(1);
+
+        // Build a list of callables, then submit them and check for errors.
+        final Collection<Callable<Void>> callables = new LinkedList<Callable<Void>>();
+        for (int i = 0; i < 10; i++) {
+            final boolean even_i = i % 2 == 0;
+            callables.add(new Callable<Void>() {
+                @Override
+                public Void call() throws Exception {
+                    final BclReader reader = new BclReader(even_i ? QUAL_1FAILING_BCL_FILE : QUAL_0FAILING_BCL_FILE,
+                            bclQualityEvaluationStrategy, false);
+                    Assert.assertEquals(reader.numClustersPerCycle[0], expectedBases.length);
+                    while (reader.hasNext()) {
+                        reader.next();
+                    }
+                    reader.close();
+                    return null;
+                }
+            });
+        }
+        final ExecutorService executorService = Executors.newFixedThreadPool(callables.size());
+        final Collection<Future<Void>> futures = new LinkedList<Future<Void>>();
+        for (final Callable<Void> callable : callables) {
+            futures.add(executorService.submit(callable));
+        }
+        for (final Future<Void> future : futures) {
+            future.get();
+        }
+        bclQualityEvaluationStrategy.assertMinimumQualities();
+        Assert.assertEquals((int) bclQualityEvaluationStrategy.getPoorQualityFrequencies().get((byte) 0), 25);
+        Assert.assertEquals((int) bclQualityEvaluationStrategy.getPoorQualityFrequencies().get((byte) 1), 25);
+    }
+
+    @Test(expectedExceptions = PicardException.class)
+    public void lowQualityAndFailingTest() throws ExecutionException, InterruptedException {
+        final BclQualityEvaluationStrategy bclQualityEvaluationStrategy = new BclQualityEvaluationStrategy(BclQualityEvaluationStrategy.ILLUMINA_ALLEGED_MINIMUM_QUALITY);
+
+        // Build a list of callables, then submit them and check for errors.
+        final Collection<Callable<Void>> callables = new LinkedList<Callable<Void>>();
+        for (int i = 0; i < 10; i++) {
+            final boolean even_i = i % 2 == 0;
+            callables.add(new Callable<Void>() {
+                @Override
+                public Void call() throws Exception {
+                    final BclReader reader = new BclReader(even_i ? QUAL_1FAILING_BCL_FILE : QUAL_0FAILING_BCL_FILE,
+                            bclQualityEvaluationStrategy, false);
+                    Assert.assertEquals(reader.numClustersPerCycle[0], expectedBases.length);
+                    while (reader.hasNext()) {
+                        reader.next();
+                    }
+                    reader.close();
+                    return null;
+                }
+            });
+        }
+        final ExecutorService executorService = Executors.newFixedThreadPool(callables.size());
+        final Collection<Future<Void>> futures = new LinkedList<Future<Void>>();
+        for (final Callable<Void> callable : callables) {
+            futures.add(executorService.submit(callable));
+        }
+        for (final Future<Void> future : futures) {
+            future.get();
+        }
+        Assert.assertEquals((int) bclQualityEvaluationStrategy.getPoorQualityFrequencies().get((byte) 0), 25);
+        Assert.assertEquals((int) bclQualityEvaluationStrategy.getPoorQualityFrequencies().get((byte) 1), 25);
+        bclQualityEvaluationStrategy.assertMinimumQualities();
+    }
+}
diff --git a/src/tests/java/picard/illumina/parser/readers/ClocsFileReaderTest.java b/src/tests/java/picard/illumina/parser/readers/ClocsFileReaderTest.java
new file mode 100644
index 0000000..1a13c49
--- /dev/null
+++ b/src/tests/java/picard/illumina/parser/readers/ClocsFileReaderTest.java
@@ -0,0 +1,160 @@
+package picard.illumina.parser.readers;
+
+import org.testng.Assert;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+
+import java.io.File;
+
+public class ClocsFileReaderTest {
+
+    private static final File TEST_DIR = new File("testdata/picard/illumina/readerTests");
+    private static final File PASSING_CLOCS_FILE = new File(TEST_DIR, "s_2_1101.clocs");
+
+    public static final int blockSize = 25;
+    public static final File MULTI_BIN_PASSING_CLOCS_FILE = new File(TEST_DIR, "s_3_2102.clocs");
+    public static final File MBCF_W_EMPTY_BINS_AT_START   = new File(TEST_DIR, "s_3_2103.clocs");
+    public static final File MBCF_W_EMPTY_BINS_AT_END     = new File(TEST_DIR, "s_3_2104.clocs");
+    public static final File MBCF_W_EMPTY_BINS_THROUGHOUT = new File(TEST_DIR, "s_3_2105.clocs");
+    public static final int MULTI_BIN_PASSING_CLOCS_TILE = 2102;
+    public static final int MULTI_BIN_PASSING_CLOCS_LANE = 3;
+    public static final int MULTI_BIN_EXPECTED_NUM_VALUES = 271;
+
+    public static final File MBCF_MULTI_ROW_FILE = new File(TEST_DIR, "s_1_2106.clocs");
+
+    public static final float [][] MULTI_BIN_FLOAT_COORD = {
+        {9.7f, 1f},      {16.9f, 1.3f}, {18.5f, 22.6f}, {39.1f, 0.5f}, {46.1f, 1f},
+        {38.4f, 8.4f},   {59.7f, 1.1f}, {89.9f, 0.30f}, {87.1f, 0.6f}, {83.6f, 0.7f},
+        {111.4f, 14.3f}, {109.1f, 15f}, {105.7f, 15f}
+    };
+    public static final int [][] MULTI_BIN_Q_SEQ_COORD = {
+        {1097, 1010}, {1169, 1013}, {1185, 1226}, {1391, 1005}, {1461, 1010},
+        {1384, 1084}, {1597, 1011}, {1899, 1003}, {1871, 1006}, {1836, 1007},
+        {2114, 1143}, {2091, 1150}, {2057, 1150}
+    };
+    public static final int [] MULTI_BIN_INDICES = {
+        0,     1,  34,  39,  40,
+        59,  99, 163, 164, 165,
+        268, 269, 270
+    };
+
+
+    public static final float [][] MULTI_BIN_FLOAT_COORD_MIXED_EMPTY_BINS = {
+            {9.7f, 1f},      {16.9f, 1.3f},  {18.5f, 22.6f},  {89.1f, 0.5f},  {96.1f, 1f},
+            {88.4f, 8.4f},   {109.7f, 1.1f}, {164.9f, 0.30f}, {162.1f, 0.6f}, {158.6f, 0.7f},
+            {186.4f, 14.3f}, {184.1f, 15f},  {180.7f, 15f}
+    };
+    public static final int [][] MULTI_BIN_Q_SEQ_COORD_MIXED_EMPTY_BINS = {
+            {1097, 1010}, {1169, 1013}, {1185, 1226}, {1891, 1005}, {1961, 1010},
+            {1884, 1084}, {2097, 1011}, {2649, 1003}, {2621, 1006}, {2586, 1007},
+            {2864, 1143}, {2841, 1150}, {2807, 1150}
+    };
+
+    //These are all essentially the same file but with 0 or more empty bins spread through them
+    @DataProvider(name = "multiBinPassingClocsFiles")
+    public Object [][] multiBinPassingClocsFiles() {
+        return new Object[][] {
+            {MULTI_BIN_PASSING_CLOCS_FILE, 0, 2102},
+            {MBCF_W_EMPTY_BINS_AT_START,   2, 2103},
+            {MBCF_W_EMPTY_BINS_AT_END,     0, 2104}
+        };
+    }
+
+    @Test(dataProvider = "multiBinPassingClocsFiles")
+    public void multiBinTest(final File multiBinPassingClocsFile, final int binShift, final int tile) {
+        final ClocsFileReader clocsReader = new ClocsFileReader(multiBinPassingClocsFile);
+
+        int tdIndex = 0;
+        int nextIndex = MULTI_BIN_INDICES[tdIndex];
+        for(int i = 0; i < MULTI_BIN_EXPECTED_NUM_VALUES; i++) {
+            Assert.assertTrue(clocsReader.hasNext());
+            final AbstractIlluminaPositionFileReader.PositionInfo piClocs = clocsReader.next();
+
+            if(i == nextIndex) {
+                PosFileReaderTest.comparePositionInfo(piClocs, MULTI_BIN_FLOAT_COORD[tdIndex][0] + binShift * blockSize,       MULTI_BIN_FLOAT_COORD[tdIndex][1],
+                                                               MULTI_BIN_Q_SEQ_COORD[tdIndex][0] + binShift * blockSize * 10,  MULTI_BIN_Q_SEQ_COORD[tdIndex][1],
+                                                               MULTI_BIN_PASSING_CLOCS_LANE, tile,
+                                                               tdIndex);
+                if(tdIndex < MULTI_BIN_INDICES.length-1) {
+                    nextIndex = MULTI_BIN_INDICES[++tdIndex];
+                }
+            }
+        }
+
+        Assert.assertFalse(clocsReader.hasNext());
+    }
+
+    @Test
+    public void multiBinMixedEmptyBinTest() {
+        final ClocsFileReader clocsReader = new ClocsFileReader(MBCF_W_EMPTY_BINS_THROUGHOUT);
+
+        int tdIndex = 0;
+        int nextIndex = MULTI_BIN_INDICES[tdIndex];
+        for(int i = 0; i < MULTI_BIN_EXPECTED_NUM_VALUES; i++) {
+            Assert.assertTrue(clocsReader.hasNext());
+            final AbstractIlluminaPositionFileReader.PositionInfo piClocs = clocsReader.next();
+
+            if(i == nextIndex) {
+                PosFileReaderTest.comparePositionInfo(piClocs, MULTI_BIN_FLOAT_COORD_MIXED_EMPTY_BINS[tdIndex][0],  MULTI_BIN_FLOAT_COORD_MIXED_EMPTY_BINS[tdIndex][1],
+                                                               MULTI_BIN_Q_SEQ_COORD_MIXED_EMPTY_BINS[tdIndex][0],  MULTI_BIN_Q_SEQ_COORD_MIXED_EMPTY_BINS[tdIndex][1],
+                                                               MULTI_BIN_PASSING_CLOCS_LANE, 2105, tdIndex);
+                if(tdIndex < MULTI_BIN_INDICES.length-1) {
+                    nextIndex = MULTI_BIN_INDICES[++tdIndex];
+                }
+            }
+        }
+
+        Assert.assertFalse(clocsReader.hasNext());
+    }
+
+    public static final int [] MULTI_ROW_INDICES = new int[]{
+        1, 10, 200, 2000, 10000, 30000
+    };
+    public static final float [][] MULTI_ROW_FLOAT_COORD = new float[][] {
+            {23.2f,  0.2f},    {16.7f,  5.7f},  {60.9f, 15.0f},
+            {596.2f, 19.6f},   {999.3f, 47.3f}, {1015f, 115.5f}
+    };
+
+    public static final int [][] MULTI_ROW_Q_SEQ_COORD = new int[][] {
+        {1232, 1002},  {1167, 1057 },  {1609, 1150},
+        {6962, 1196},  {10993, 1473}, {11150, 2155}
+    };
+
+    @Test
+    public void multiRowFileTest() {
+        final ClocsFileReader clocsReader = new ClocsFileReader(MBCF_MULTI_ROW_FILE);
+
+        int tdIndex = 0;
+        int nextIndex = MULTI_ROW_INDICES[tdIndex];
+        for(int i = 1; i <= 39891; i++) {
+            Assert.assertTrue(clocsReader.hasNext(), " i == " + i);
+            final AbstractIlluminaPositionFileReader.PositionInfo piClocs = clocsReader.next();
+
+            if(i == nextIndex) {
+                PosFileReaderTest.comparePositionInfo(piClocs, MULTI_ROW_FLOAT_COORD[tdIndex][0], MULTI_ROW_FLOAT_COORD[tdIndex][1],
+                                                               MULTI_ROW_Q_SEQ_COORD[tdIndex][0], MULTI_ROW_Q_SEQ_COORD[tdIndex][1],
+                                                               1, 2106, tdIndex);
+
+                if(tdIndex < MULTI_ROW_INDICES.length-1) {
+                    nextIndex = MULTI_ROW_INDICES[++tdIndex];
+                }
+            }
+        }
+
+        Assert.assertFalse(clocsReader.hasNext());
+
+    }
+
+    @Test
+    public void singleBinTest() {
+        final ClocsFileReader clocsReader = new ClocsFileReader(PASSING_CLOCS_FILE);
+
+        for(int i = 0; i < PosFileReaderTest.PassingPosFloatCoord.length; i++) {
+            Assert.assertTrue(clocsReader.hasNext());
+            final AbstractIlluminaPositionFileReader.PositionInfo piClocs = clocsReader.next();
+            PosFileReaderTest.comparePositionInfo(piClocs, i);
+        }
+
+        Assert.assertFalse(clocsReader.hasNext());
+    }
+}
diff --git a/src/tests/java/picard/illumina/parser/readers/FilterFileReaderTest.java b/src/tests/java/picard/illumina/parser/readers/FilterFileReaderTest.java
new file mode 100644
index 0000000..97c63c3
--- /dev/null
+++ b/src/tests/java/picard/illumina/parser/readers/FilterFileReaderTest.java
@@ -0,0 +1,93 @@
+package picard.illumina.parser.readers;
+
+import htsjdk.samtools.SAMException;
+import org.testng.Assert;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import picard.PicardException;
+import picard.illumina.parser.fakers.FilterFileFaker;
+
+import java.io.File;
+import java.util.NoSuchElementException;
+
+public class FilterFileReaderTest {
+    public static File TEST_DATA_DIR = new File("testdata/picard/illumina/readerTests");
+    public static final File PASSING_FILTER_FILE = new File(TEST_DATA_DIR, "pf_passing.filter");
+
+    public static final boolean [] expectedPfs = {
+            false, false, false, false,     true,  false, false, false,      true,  true,  false, false,   true,  false, true,  false,
+            true,  false, false, true,      true,  true,  true,  false,      true,  true,  false, true,    true,  true,  true,  false,
+            true,  true,  true,  true,      false, true,  false, false,      false, true,  true,  false,   false, true,  false, true,
+            false, true,  true,  true,      false, false, true,  false,      false, false, true,  true,    false, false, false, true
+    };
+
+    @Test
+    public void readValidFile() {
+        final FilterFileReader reader = new FilterFileReader(PASSING_FILTER_FILE);
+        Assert.assertEquals(reader.numClusters, expectedPfs.length);
+        for(int i = 0; i < reader.numClusters; i++) {
+            Assert.assertEquals(reader.hasNext(), true);
+            Assert.assertEquals(reader.next().booleanValue(),    expectedPfs[i]);
+        }
+
+        Assert.assertEquals(false, reader.hasNext());
+    }
+
+    @Test void readFakedFile() throws Exception {
+        final File fakeFile = File.createTempFile("FilterFileFakerTest", ".filter");
+        fakeFile.deleteOnExit();
+
+        new FilterFileFaker().fakeFile(fakeFile, 100);
+        final FilterFileReader reader = new FilterFileReader(fakeFile);
+        Assert.assertEquals(reader.numClusters, 1);         // A faked file has one cluster - with PF = false.
+        Assert.assertTrue(reader.hasNext());
+        Assert.assertFalse(reader.next());
+        Assert.assertFalse(reader.hasNext());
+    }
+
+    @Test(expectedExceptions = NoSuchElementException.class)
+    public void readPastEnd() {
+        final FilterFileReader reader = new FilterFileReader(PASSING_FILTER_FILE);
+        for(int i = 0; i < reader.numClusters; i++) {
+            reader.next();
+        }
+
+        Assert.assertEquals(false, reader.hasNext());
+        reader.next();
+    }
+
+    @DataProvider(name="failingFilesForSAMException")
+    public Object[][] failingFilesForSAMException() {
+        return new Object[][] {
+                {"pf_nonExistentFile.filter"}
+        };
+    }
+
+    @DataProvider(name="failingFilesForPicardException")
+    public Object[][] failingFilesForPicardException() {
+        return new Object[][] {
+            {"pf_failing1.filter"},
+            {"pf_failing2.filter"},
+            {"pf_tooLarge.filter"},
+            {"pf_tooShort.filter"},
+            {"pf_badOpeningBytes.filter"},
+            {"pf_badVersionBytes.filter"}
+        };
+    }
+
+    @Test(dataProvider = "failingFilesForSAMException", expectedExceptions = SAMException.class)
+    public void readInvalidValuesForSAMException(final String failingFile) {
+        final FilterFileReader reader = new FilterFileReader(new File(TEST_DATA_DIR, failingFile));
+        while(reader.hasNext()) {
+            reader.next();
+        }
+    }
+
+    @Test(dataProvider = "failingFilesForPicardException", expectedExceptions = PicardException.class)
+    public void readInvalidValuesForPicardException(final String failingFile) {
+        final FilterFileReader reader = new FilterFileReader(new File(TEST_DATA_DIR, failingFile));
+        while(reader.hasNext()) {
+            reader.next();
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/tests/java/picard/illumina/parser/readers/IlluminaFileUtilTest.java b/src/tests/java/picard/illumina/parser/readers/IlluminaFileUtilTest.java
new file mode 100644
index 0000000..38bacb3
--- /dev/null
+++ b/src/tests/java/picard/illumina/parser/readers/IlluminaFileUtilTest.java
@@ -0,0 +1,11 @@
+package picard.illumina.parser.readers;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: jburke
+ * Date: 12/29/11
+ * Time: 2:42 PM
+ * To change this template use File | Settings | File Templates.
+ */
+public class IlluminaFileUtilTest {
+}
diff --git a/src/tests/java/picard/illumina/parser/readers/LocsFileReaderTest.java b/src/tests/java/picard/illumina/parser/readers/LocsFileReaderTest.java
new file mode 100644
index 0000000..24dfb27
--- /dev/null
+++ b/src/tests/java/picard/illumina/parser/readers/LocsFileReaderTest.java
@@ -0,0 +1,69 @@
+package picard.illumina.parser.readers;
+
+import org.testng.Assert;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import picard.PicardException;
+
+import java.io.File;
+
+public class LocsFileReaderTest {
+    private static final File TestDir = new File("testdata/picard/illumina/readerTests");
+    public  static final File LocsFile = new File(TestDir, "s_1_6.locs");
+    public  static final int ExpectedTile = 6;
+    public  static final int ExpectedLane = 1;
+    public  static final int NumValues = 200;
+    public  static final float [][] FloatCoords = {
+        {1703.0117f, 64.01593f}, {1660.3038f, 64.08882f},  {1769.7501f, 65.12467f}, {1726.6725f, 68.367805f}, {1401.213f,  72.07282f},
+        {1358.2775f, 72.07892f}, {1370.5197f, 77.699715f}, {1661.5403f, 77.70719f}, {1682.0504f, 78.76725f},  {1563.8765f, 79.08009f}
+    };
+    public static final int [][] QSeqCoords = {
+        {18030, 1640}, {17603, 1641}, {18698, 1651}, {18267, 1684}, {15012, 1721},
+        {14583, 1721}, {14705, 1777}, {17615, 1777}, {17821, 1788}, {16639, 1791}
+    };
+    public static final int [] Indices = {
+        0,     1,  19,  59,  100,
+        101,  179, 180, 198, 199
+    };
+
+    @Test
+    public void passingFileTest() {
+        final LocsFileReader reader = new LocsFileReader(LocsFile);
+
+        int tdIndex = 0;
+        int nextIndex = Indices[tdIndex];
+        for(int i = 0; i < NumValues; i++) {
+            Assert.assertTrue(reader.hasNext());
+
+            final AbstractIlluminaPositionFileReader.PositionInfo piLocs = reader.next();
+
+            if(i == nextIndex) {
+                PosFileReaderTest.comparePositionInfo(piLocs, FloatCoords[tdIndex][0], FloatCoords[tdIndex][1],
+                                                              QSeqCoords[tdIndex][0],  QSeqCoords[tdIndex][1],
+                                                              ExpectedLane, ExpectedTile, i);
+
+                if(tdIndex < Indices.length-1) {
+                    nextIndex = Indices[++tdIndex];
+                }
+            }
+        }
+
+        Assert.assertFalse(reader.hasNext());
+    }
+
+    @DataProvider(name = "invalidFiles")
+    public Object[][]invalidFiles() {
+        return new Object[][] {
+            {"s_1_7.locs"},
+            {"s_1_8.locs"},
+            {"s_1_9.locs"},
+            {"s_1_10.locs"},
+            {"s_f2af.locs"}
+        };
+    }
+
+    @Test(expectedExceptions = PicardException.class, dataProvider = "invalidFiles")
+    public void invalidFilesTest(final String fileName) {
+        final LocsFileReader reader = new LocsFileReader(new File(TestDir, fileName));
+    }
+}
diff --git a/src/tests/java/picard/illumina/parser/readers/MMapBackedIteratorFactoryTest.java b/src/tests/java/picard/illumina/parser/readers/MMapBackedIteratorFactoryTest.java
new file mode 100644
index 0000000..b930597
--- /dev/null
+++ b/src/tests/java/picard/illumina/parser/readers/MMapBackedIteratorFactoryTest.java
@@ -0,0 +1,210 @@
+package picard.illumina.parser.readers;
+
+import org.testng.Assert;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import picard.PicardException;
+
+import java.io.File;
+import java.nio.Buffer;
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.nio.IntBuffer;
+import java.util.Iterator;
+
+public class MMapBackedIteratorFactoryTest {
+    public static File TestDataDir = new File("testdata/picard/illumina/readerTests");
+    public static File BinFile     = new File(TestDataDir, "binary_passing.bin");
+
+    public static final int FileLength = 51;
+    //remember that the MMappedBinaryFileReader assumes little endianness
+    public byte[] fileAsBytes(final int start, final int end){
+         final int [] bInts = {
+                         0x31, 0x22, 0x41, 0x01,    0x45, 0x6E, 0x64, 0x4F,
+                         0x66, 0x48, 0x65, 0x61,    0x64, 0x65, 0x72, 0x42,
+                         0x6F, 0x64, 0x79, 0x50,    0x61, 0x72, 0x74, 0x6F,
+                         0x66, 0x54, 0x68, 0x65,    0x46, 0x69, 0x6C, 0x65,
+                         0x37, 0x37, 0x0A, 0x45,    0x6E, 0x64, 0x43, 0x6F,
+                         0x6D, 0x6D, 0x75, 0x6E,    0x69, 0x63, 0x61, 0x74,
+                         0x69, 0x6F, 0x6E
+        };
+
+        final int total = end - start + 1;
+        final byte [] bytes = new byte[total];
+        for(int i = 0; i < total; i++) {
+            bytes[i] = (byte)bInts[start + i];
+        }
+        return bytes;
+    }
+
+    //Note these integers are different from the ones in fileAsBytes->bInts (because we're talking about 4 bytes at a time not one)
+    @DataProvider(name="passing_bin_asTdBuffer")
+    public ByteBuffer headerAsByteBuffer(final int headerSize) {
+        final byte [] bytes = fileAsBytes(0, headerSize-1);
+        final ByteBuffer bb = ByteBuffer.allocate(bytes.length);
+        bb.put(bytes);
+        bb.position(0);
+        bb.order(ByteOrder.LITTLE_ENDIAN);
+        return bb;
+    }
+
+    @DataProvider(name="passing_bin_asTdBuffer")
+    public ByteBuffer fileAsByteBuffer(final int headerSize) {
+        final byte [] bytes = fileAsBytes(headerSize, FileLength-1);
+        final ByteBuffer bb = ByteBuffer.allocate(bytes.length);
+        bb.put(bytes);
+        bb.position(0);
+        bb.order(ByteOrder.LITTLE_ENDIAN);
+        return bb;
+    }
+
+    abstract class FileTestDef<T> {
+        public final int headerSize;
+        public final BinaryFileIterator bbIter;
+        public final int numElements;
+
+        public FileTestDef(final int headerSize, final BinaryFileIterator<T> bbIter) {
+            this.headerSize  = headerSize;
+            this.bbIter = bbIter;
+            this.numElements = fileAsBytes(headerSize, FileLength-1).length / bbIter.getElementSize();
+        }
+
+        public void test() {
+            final ByteBuffer testBuffer = fileAsByteBuffer(headerSize);
+
+
+            if(headerSize > 0) {
+                final ByteBuffer headerBuffer = headerAsByteBuffer(headerSize);
+                testHeaderBytes(headerBuffer, bbIter.getHeaderBytes());
+            }
+
+            bbIter.assertTotalElementsEqual(numElements);
+            final Iterator<T> testIter = getTestIterator(testBuffer);
+
+            while(hasNext(testIter, bbIter)) {
+                Assert.assertEquals(testIter.next(), bbIter.next());
+            }
+        }
+
+        public abstract Iterator<T> getTestIterator(final ByteBuffer byteBuffer);
+
+        public boolean hasNext(final Iterator<T> testIter, final Iterator<T> fileIter) {
+            if(testIter.hasNext() && fileIter.hasNext())
+                return true;
+
+            if(testIter.hasNext()) {
+                throw new PicardException("Test data (testIter) has more iterations while fileIter does not!");
+            }
+
+            if(fileIter.hasNext()) {
+                throw new PicardException("File data (fileIter) has more iterations while testIter does not!");
+            }
+
+            return false;
+        }
+    }
+
+    abstract class NoHeaderTestIter<T> implements Iterator<T> {
+        public final Buffer buf;
+
+        public NoHeaderTestIter(final Buffer buf) {
+            this.buf = buf;
+        }
+
+        public boolean hasNext() {
+            return buf.hasRemaining();
+        }
+
+        public void remove() {
+            throw new UnsupportedOperationException();
+        }
+    }
+
+    @DataProvider(name = "validTestDefs")
+    public Object[][] validTestDefs() {
+        return new Object[][] {
+            {
+                new FileTestDef<Integer>(15, MMapBackedIteratorFactory.getIntegerIterator(15, BinFile)) {
+                    @Override
+                    public Iterator<Integer> getTestIterator(final ByteBuffer byteBuffer) {
+                        final IntBuffer ib = byteBuffer.asIntBuffer();
+                        return new NoHeaderTestIter<Integer>(ib) {
+                            @Override
+                            public Integer next() {
+                                return ib.get();
+                            }
+                        };
+                    }
+                }
+            },
+            {
+                new FileTestDef<Byte>(2, MMapBackedIteratorFactory.getByteIterator(2, BinFile)) {
+                    @Override
+                    public Iterator<Byte> getTestIterator(final ByteBuffer byteBuffer) {
+                        return new NoHeaderTestIter<Byte>(byteBuffer) {
+                            @Override
+                            public Byte next() {
+                                return byteBuffer.get();
+                            }
+                        };
+                    }
+                }
+            },
+            {
+                new FileTestDef<Float>(19, MMapBackedIteratorFactory.getFloatIterator(19, BinFile)) {
+                    @Override
+                    public Iterator<Float> getTestIterator(final ByteBuffer byteBuffer) {
+                        return new NoHeaderTestIter<Float>(byteBuffer) {
+                            @Override
+                            public Float next() {
+                                return byteBuffer.getFloat();
+                            }
+                        };
+                    }
+                }
+            }
+        };
+    }
+
+    @Test(dataProvider="validTestDefs")
+    public void testValidConfigurations(final FileTestDef ftd) {
+        ftd.test();
+    }
+
+    @Test
+    public void onlyHeaderTest() {
+        final BinaryFileIterator<Integer> bbIter = MMapBackedIteratorFactory.getIntegerIterator((int)BinFile.length(), BinFile);
+        Assert.assertEquals(bbIter.getHeaderBytes(), headerAsByteBuffer((int)BinFile.length()));
+        Assert.assertFalse(bbIter.hasNext());
+    }
+
+    @Test(expectedExceptions = PicardException.class)
+    public void tooLargeHeaderTest() {
+        final BinaryFileIterator<Integer> bbIter = MMapBackedIteratorFactory.getIntegerIterator(FileLength + 10, BinFile);
+        bbIter.getHeaderBytes();
+    }
+
+    @Test(expectedExceptions = PicardException.class)
+    public void negativeHeaderTest() {
+        final BinaryFileIterator<Integer> bbIter = MMapBackedIteratorFactory.getIntegerIterator(-1, BinFile);
+        bbIter.getHeaderBytes();
+    }
+
+    @DataProvider(name="invalidFileSizes")
+    public Object [][] invalidFileSizes() {
+        return new Object[][]{
+            {1, 12}, //should result in two left over bytes
+            {3, 11}, //should result in one left over elements
+        };
+    }
+
+    @Test(expectedExceptions = PicardException.class, dataProvider = "invalidFileSizes")
+    public void invalidFileSizeTests(final int headerSize, final int expectedElements) {
+        final BinaryFileIterator<Integer> bbIter = MMapBackedIteratorFactory.getIntegerIterator(headerSize, BinFile);
+        bbIter.assertTotalElementsEqual(expectedElements);
+    }
+
+    public void testHeaderBytes(final ByteBuffer bb1, final ByteBuffer bb2) {
+        Assert.assertTrue(bb1.equals(bb2), "Header bytes are not equal! " + bb1.toString() + "  !=  " + bb2.toString());
+    }
+}
diff --git a/src/tests/java/picard/illumina/parser/readers/PosFileReaderTest.java b/src/tests/java/picard/illumina/parser/readers/PosFileReaderTest.java
new file mode 100644
index 0000000..68c6311
--- /dev/null
+++ b/src/tests/java/picard/illumina/parser/readers/PosFileReaderTest.java
@@ -0,0 +1,91 @@
+package picard.illumina.parser.readers;
+
+import org.testng.Assert;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import picard.PicardException;
+
+import java.io.File;
+
+public class PosFileReaderTest {
+    //need to test for negatives
+    public static final File TestDir = new File("testdata/picard/illumina/readerTests");
+    public static final File InvalidNamePosFile = new File(TestDir, "pos_failing1_pos.txt");
+
+    public static final File PassingPosFile = new File(TestDir, "s_2_1101_pos.txt");
+    public static final int PassingTile = 1101;
+    public static final int PassingLane = 2;
+    public static final float[][] PassingPosFloatCoord = {
+            {17.80f, 0.30f}, {23.70f, 1.70f}, {18.50f, 3.90f}, {22.80f, 4.00f}, {15.90f, 4.20f},
+            {19.10f, 5.60f}, {23.90f, 6.70f}, {16.70f, 7.00f}, {21.50f, 7.10f}, {18.90f, 9.30f},
+            {17.10f, 10.30f}, {19.90f, 10.80f}, {15.90f, 11.90f}, {21.60f, 12.00f}, {24.80f, 12.40f},
+            {17.90f, 14.20f}, {22.00f, 14.50f}, {23.60f, 15.20f}, {20.00f, 15.50f}, {16.30f, 17.30f}
+    };
+    public static final int[][] PassingPosQSeqCoord = {
+            {1178, 1003}, {1237, 1017}, {1185, 1039}, {1228, 1040}, {1159, 1042},
+            {1191, 1056}, {1239, 1067}, {1167, 1070}, {1215, 1071}, {1189, 1093},
+            {1171, 1103}, {1199, 1108}, {1159, 1119}, {1216, 1120}, {1248, 1124},
+            {1179, 1142}, {1220, 1145}, {1236, 1152}, {1200, 1155}, {1163, 1173}
+    };
+
+    @Test
+    public void validPosFileTest() {
+        final PosFileReader pfr = new PosFileReader(PassingPosFile);
+        for (int i = 0; i < PassingPosFloatCoord.length; i++) {
+            Assert.assertTrue(pfr.hasNext());
+            final AbstractIlluminaPositionFileReader.PositionInfo pi = pfr.next();
+            comparePositionInfo(pi, i);
+        }
+        Assert.assertFalse(pfr.hasNext());
+        pfr.close();
+    }
+
+    public static void comparePositionInfo(final AbstractIlluminaPositionFileReader.PositionInfo pi, final int index) {
+        comparePositionInfo(pi, PassingPosFloatCoord[index][0], PassingPosFloatCoord[index][1],
+                PassingPosQSeqCoord[index][0], PassingPosQSeqCoord[index][1],
+                PassingLane, PassingTile, index);
+    }
+
+    public static void comparePositionInfo(final AbstractIlluminaPositionFileReader.PositionInfo pi, final float xPos, final float yPos,
+                                           final int xQSeqCoord, final int yQSeqCoord, final int lane, final int tile, final int index) {
+        Assert.assertEquals(pi.xPos, xPos, "Differs at index: " + index);
+        Assert.assertEquals(pi.yPos, yPos, "Differs at index: " + index);
+        Assert.assertEquals(pi.xQseqCoord, xQSeqCoord, "Differs at index: " + index);
+        Assert.assertEquals(pi.yQseqCoord, yQSeqCoord, "Differs at index: " + index);
+        Assert.assertEquals(pi.lane, lane, "Differs at index: " + index);
+        Assert.assertEquals(pi.tile, tile, "Differs at index: " + index);
+    }
+
+    @Test(expectedExceptions = PicardException.class)
+    public void failingNamePosFileTest() {
+        final PosFileReader pfr = new PosFileReader(InvalidNamePosFile);
+    }
+
+    @DataProvider(name = "invalidDataFiles")
+    public Object[][] invalidDataFiles() {
+        return new Object[][]{
+                {new File(TestDir, "s_1_1101_pos.txt")},
+                {new File(TestDir, "s_1_1102_pos.txt")},
+                {new File(TestDir, "s_1_1103_pos.txt")}
+        };
+    }
+
+    @Test(dataProvider = "invalidDataFiles", expectedExceptions = PicardException.class)
+    public void failingDataPosFileTest(final File file) {
+        final PosFileReader pfr = new PosFileReader(file);
+        try {
+            while (pfr.hasNext()) {
+                pfr.next();
+            }
+        } finally {
+            pfr.close();
+        }
+    }
+
+    @Test
+    public void zeroLengthFileTest() {
+        final PosFileReader pfr = new PosFileReader(new File(TestDir, "s_1_1104_pos.txt"));
+        Assert.assertFalse(pfr.hasNext());
+        pfr.close();
+    }
+}
diff --git a/src/tests/java/picard/metrics/CollectRrbsMetricsTest.java b/src/tests/java/picard/metrics/CollectRrbsMetricsTest.java
new file mode 100644
index 0000000..0f254d1
--- /dev/null
+++ b/src/tests/java/picard/metrics/CollectRrbsMetricsTest.java
@@ -0,0 +1,102 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2013 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.metrics;
+
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.metrics.MetricsFile;
+import org.testng.Assert;
+import org.testng.annotations.AfterTest;
+import org.testng.annotations.BeforeTest;
+import org.testng.annotations.Test;
+import picard.analysis.CollectRrbsMetrics;
+import picard.analysis.RrbsSummaryMetrics;
+
+import java.io.File;
+import java.io.FileReader;
+import java.lang.Exception;import java.lang.Integer;import java.lang.String;import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author jgentry at broadinstitute.org
+ */
+
+public class CollectRrbsMetricsTest {
+	public static final String CHR_M_SAM = "testdata/picard/metrics/chrMReads.sam";
+	public static final String CHR_M_REFERENCE ="testdata/picard/metrics/chrM.reference.fasta";
+
+	private File rootTestDir;
+
+	@BeforeTest
+	private void setUp() throws Exception {
+		rootTestDir = File.createTempFile("crmt.", ".tmp");
+		Assert.assertTrue(rootTestDir.delete());
+		Assert.assertTrue(rootTestDir.mkdir());
+	}
+
+	@AfterTest
+	private void tearDown() {
+		IOUtil.deleteDirectoryTree(rootTestDir);
+	}
+
+	@Test
+	public void chrMReads() throws Exception {
+		final MetricsFile<RrbsSummaryMetrics, ?> metricsFile = getSummaryFile(CHR_M_SAM, CHR_M_REFERENCE, rootTestDir + "/READ_TEST", new ArrayList<String>());
+		final RrbsSummaryMetrics metrics = metricsFile.getMetrics().get(0);
+		Assert.assertEquals(metrics.READS_ALIGNED.intValue(), 5);
+		Assert.assertEquals(metrics.NON_CPG_BASES.intValue(), 15);
+		Assert.assertEquals(metrics.NON_CPG_CONVERTED_BASES.intValue(), 11);
+		Assert.assertEquals(metrics.PCT_NON_CPG_BASES_CONVERTED, 0.733333);
+		Assert.assertEquals(metrics.CPG_BASES_SEEN.intValue(), 5);
+		Assert.assertEquals(metrics.CPG_BASES_CONVERTED.intValue(), 1);
+		Assert.assertEquals(metrics.PCT_CPG_BASES_CONVERTED, 0.2);
+		Assert.assertEquals(metrics.MEAN_CPG_COVERAGE, 1.666667);
+		Assert.assertEquals(metrics.MEDIAN_CPG_COVERAGE.intValue(), 2);
+		Assert.assertEquals(metrics.READS_WITH_NO_CPG.intValue(), 1);
+		Assert.assertEquals(metrics.READS_IGNORED_SHORT.intValue(), 1);
+		Assert.assertEquals(metrics.READS_IGNORED_MISMATCHES.intValue(), 1);
+	}
+
+	private MetricsFile<RrbsSummaryMetrics, ?> getSummaryFile(final String input, final String reference, final String prefix,
+															  final List<String> sequences) throws Exception {
+		final List<String> argList = new ArrayList<String>();
+		argList.add("INPUT=" + input);
+		argList.add("METRICS_FILE_PREFIX=" + prefix);
+		argList.add("REFERENCE=" + reference);
+		for (final String sequence : sequences) {
+			argList.add("SEQUENCE_NAMES=" + sequence);
+		}
+
+		final String[] args = new String[argList.size()];
+		argList.toArray(args);
+
+		Assert.assertEquals(new CollectRrbsMetrics().instanceMain(args), 0);
+
+		final MetricsFile<RrbsSummaryMetrics, ?> retVal = new MetricsFile<RrbsSummaryMetrics, Integer>();
+		retVal.read(new FileReader(prefix + ".rrbs_summary_metrics"));
+		return retVal;
+	}
+
+
+}
diff --git a/src/tests/java/picard/pedigree/PedFileTest.java b/src/tests/java/picard/pedigree/PedFileTest.java
new file mode 100644
index 0000000..b1b1b86
--- /dev/null
+++ b/src/tests/java/picard/pedigree/PedFileTest.java
@@ -0,0 +1,58 @@
+package picard.pedigree;
+
+import org.testng.Assert;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Created by farjoun on 9/19/14.
+ */
+public class PedFileTest {
+
+    @DataProvider()
+    public Object[][] testFromSexMapDataProvider() {
+        return new Object[][]{
+                new Object[]{Arrays.asList(), Arrays.asList()},
+                new Object[]{Arrays.asList("female1", "female2", "female3"), Arrays.asList("male1", "male2", "male3")},
+                new Object[]{Arrays.asList("female1", "female2", "female3"), Arrays.asList()},
+                new Object[]{Arrays.asList("female1"), Arrays.asList("male1", "male2", "male3")},
+        };
+    }
+
+    @Test(dataProvider = "testFromSexMapDataProvider")
+    public void testFromSexMap(final Collection<String> females, final Collection<String> males) throws Exception {
+        final Map<String, Sex> data = new HashMap<String, Sex>();
+        for (final String sample : females) {
+            data.put(sample, Sex.Female);
+        }
+        for (final String sample : males) {
+            data.put(sample, Sex.Male);
+        }
+
+        final PedFile pedFile = PedFile.fromSexMap(data);
+
+        // Check that sizes agree
+        Assert.assertEquals(pedFile.size(), females.size() + males.size());
+
+        // Check that every entry in the PedFile came from one of the two collections
+        for (final Map.Entry<String, PedFile.PedTrio> pedTrioEntry : pedFile.entrySet()) {
+            Assert.assertTrue(females.contains(pedTrioEntry.getValue().getIndividualId()) |
+                    males.contains(pedTrioEntry.getValue().getIndividualId()));
+        }
+        // Check that all the females are there and are listed as female
+        for (final String female : females) {
+            Assert.assertEquals(pedFile.get(female).getSex(), Sex.Female);
+        }
+
+        // Check that all the males are there and are listed as male
+        for (final String male : males) {
+            Assert.assertEquals(pedFile.get(male).getSex(), Sex.Male);
+        }
+
+    }
+}
diff --git a/src/tests/java/picard/sam/AddCommentsToBamTest.java b/src/tests/java/picard/sam/AddCommentsToBamTest.java
new file mode 100644
index 0000000..ca542af
--- /dev/null
+++ b/src/tests/java/picard/sam/AddCommentsToBamTest.java
@@ -0,0 +1,70 @@
+package picard.sam;
+
+import htsjdk.samtools.BamFileIoUtils;
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMTextHeaderCodec;
+import htsjdk.samtools.SamReaderFactory;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+import picard.PicardException;
+import picard.cmdline.CommandLineProgramTest;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.LinkedList;
+import java.util.List;
+
+public class AddCommentsToBamTest extends CommandLineProgramTest {
+    private static final File TEST_DATA_DIR = new File("testdata/picard/sam");
+    private static final File INPUT_FILE = new File(TEST_DATA_DIR, "aligned_queryname_sorted.bam");
+    private static final File SAM_FILE = new File(TEST_DATA_DIR, "summary_alignment_stats_test2.sam");
+
+    private static final String[] commentList = new String[]{"test1", "test2", "test3"};
+
+    public String getCommandLineProgramName() {
+        return AddCommentsToBam.class.getSimpleName();
+    }
+
+    @Test
+    public void testAddCommentsToBam() throws Exception {
+        final File outputFile = File.createTempFile("addCommentsToBamTest.", BamFileIoUtils.BAM_FILE_EXTENSION);
+        runIt(INPUT_FILE, outputFile, commentList);
+
+        final SAMFileHeader newHeader = SamReaderFactory.makeDefault().getFileHeader(outputFile);
+
+        // The original comments are massaged when they're added to the header. Perform the same massaging here,
+        // and then compare the lists
+        final List<String> massagedComments = new LinkedList<String>();
+        for (final String comment : commentList) {
+            massagedComments.add(SAMTextHeaderCodec.COMMENT_PREFIX + comment);
+        }
+
+        Assert.assertEquals(newHeader.getComments(), massagedComments);
+    }
+
+    @Test(expectedExceptions = PicardException.class)
+    public void testUsingSam() throws Exception {
+        final File outputFile = File.createTempFile("addCommentsToBamTest.samFile", BamFileIoUtils.BAM_FILE_EXTENSION);
+        runIt(SAM_FILE, outputFile, commentList);
+        throw new IllegalStateException("We shouldn't be here!");
+    }
+
+    @Test(expectedExceptions = IllegalArgumentException.class)
+    public void testUsingNewlines() throws Exception {
+        final File outputFile = File.createTempFile("addCommentsToBamTest.mewLine", BamFileIoUtils.BAM_FILE_EXTENSION);
+        runIt(SAM_FILE, outputFile, new String[]{"this is\n a crazy\n test"});
+        throw new IllegalStateException("We shouldn't be here!");
+    }
+
+    private void runIt(final File inputFile, final File outputFile, final String[] commentList) {
+        final List<String> args = new ArrayList<String>(Arrays.asList(
+                "INPUT=" + inputFile.getAbsolutePath(),
+                "OUTPUT=" + outputFile.getAbsolutePath()));
+        for (final String comment : commentList) {
+            args.add("COMMENT=" + comment);
+        }
+        runPicardCommandLine(args);
+    }
+
+}
diff --git a/src/tests/java/picard/sam/CleanSamTest.java b/src/tests/java/picard/sam/CleanSamTest.java
new file mode 100644
index 0000000..dfe3f8b
--- /dev/null
+++ b/src/tests/java/picard/sam/CleanSamTest.java
@@ -0,0 +1,107 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.sam;
+
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SAMValidationError;
+import htsjdk.samtools.SamFileValidator;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.ValidationStringency;
+import org.testng.Assert;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import picard.cmdline.CommandLineProgramTest;
+import picard.sam.testers.CleanSamTester;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.Arrays;
+
+public class CleanSamTest extends CommandLineProgramTest {
+    private static final File TEST_DATA_DIR = new File("testdata/picard/sam/CleanSam");
+    private static final String qualityScore = "&/,&-.1/6/&&)&).)/,&0768)&/.,/874,&.4137572)&/&&,&1-&.0/&&*,&&&&&&&&&&18775799,&16:8775-56256/69::;0";
+
+    public String getCommandLineProgramName() {
+        return CleanSam.class.getSimpleName();
+    }
+
+    @Test(dataProvider = "testCleanSamDataProvider")
+    public void testCleanSam(final String samFile, final String expectedCigar) throws IOException {
+        final File cleanedFile = File.createTempFile(samFile + ".", ".sam");
+        cleanedFile.deleteOnExit();
+        final String[] args = new String[]{
+                "INPUT=" + new File(TEST_DATA_DIR, samFile).getAbsolutePath(),
+                "OUTPUT=" + cleanedFile.getAbsolutePath()
+        };
+        Assert.assertEquals(runPicardCommandLine(args), 0);
+
+        final SamFileValidator validator = new SamFileValidator(new PrintWriter(System.out), 8000);
+        validator.setIgnoreWarnings(true);
+        validator.setVerbose(true, 1000);
+        validator.setErrorsToIgnore(Arrays.asList(SAMValidationError.Type.MISSING_READ_GROUP));
+        SamReader samReader = SamReaderFactory.makeDefault().validationStringency(ValidationStringency.LENIENT).open(cleanedFile);
+        final SAMRecord rec = samReader.iterator().next();
+        samReader.close();
+        Assert.assertEquals(rec.getCigarString(), expectedCigar);
+        samReader = SamReaderFactory.makeDefault().validationStringency(ValidationStringency.LENIENT).open(cleanedFile);
+        final boolean validated = validator.validateSamFileVerbose(samReader, null);
+        samReader.close();
+        Assert.assertTrue(validated, "ValidateSamFile failed");
+    }
+
+    @DataProvider(name = "testCleanSamDataProvider")
+    public Object[][] testCleanSamDataProvider() {
+        return new Object[][]{
+                {"simple_fits.sam", "100M"},
+                {"simple_overhang.sam", "99M1S"},
+                {"fits_with_deletion.sam", "91M2D9M"},
+                {"overhang_with_deletion.sam", "91M2D8M1S"},
+                {"trailing_insertion.sam", "99M1I"},
+                {"long_trailing_insertion.sam", "90M10I"},
+        };
+    }
+
+    //identical test case using the SamFileTester to generate that SAM file on the fly
+    @Test(dataProvider = "testCleanSamTesterDataProvider")
+    public void testCleanSamTester(final String originalCigar, final String expectedCigar, final int defaultChromosomeLength, final int alignStart) throws IOException {
+        final CleanSamTester cleanSamTester = new CleanSamTester(expectedCigar, 100, defaultChromosomeLength);
+        // NB: this will add in the mate cigar, when enabled in SamPairUtil, for additional validation
+        cleanSamTester.addMappedPair(0, alignStart, alignStart, false, false, originalCigar, originalCigar, false, 50);
+        cleanSamTester.runTest();
+    }
+
+    @DataProvider(name = "testCleanSamTesterDataProvider")
+    public Object[][] testCleanSamTesterDataProvider() {
+        return new Object[][]{
+                {"100M", "100M", 101, 2}, // simple_filts.sam
+                {"100M", "99M1S", 101, 3}, // simple_overhang.sam
+                {"91M2D9M", "91M2D9M", 102, 1}, // fits_with_deletion.sam
+                {"91M2D9M", "91M2D8M1S", 101, 1}, // overhang_with_deletion.sam
+                {"99M1I", "99M1I", 101, 3}, // trailing_insertion.sam
+                {"90M10I", "90M10I", 101, 3} // long_trailing_insertion.sam
+        };
+    }
+}
diff --git a/src/tests/java/picard/sam/CompareSAMsTest.java b/src/tests/java/picard/sam/CompareSAMsTest.java
new file mode 100644
index 0000000..4a51ae0
--- /dev/null
+++ b/src/tests/java/picard/sam/CompareSAMsTest.java
@@ -0,0 +1,141 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.sam;
+
+import org.testng.Assert;
+import org.testng.annotations.Test;
+import picard.cmdline.CommandLineProgramTest;
+
+import java.io.File;
+
+public class CompareSAMsTest extends CommandLineProgramTest {
+    private static final File TEST_FILES_DIR = new File("testdata/picard/sam/CompareSAMs");
+
+    public String getCommandLineProgramName() {
+        return CompareSAMs.class.getSimpleName();
+    }
+
+    private void testHelper(final String f1, final String f2, final int expectedMatch, final int expectedDiffer,
+                            final int expectedUnmappedBoth,
+                            final int expectedUnmappedLeft, final int expectedUnmappedRight, final int expectedMissingLeft,
+                            final int expectedMissingRight, final boolean areEqual) {
+        final String[] samFiles = {
+                new File(TEST_FILES_DIR, f1).getAbsolutePath(),
+                new File(TEST_FILES_DIR, f2).getAbsolutePath()
+        };
+
+        // TODO - Should switch over to using invocation via new PicardCommandLine() - BUT the test here is accessing class members directly.
+        CompareSAMs compareSAMs = new CompareSAMs();
+        compareSAMs.instanceMain(samFiles);
+        Assert.assertEquals(areEqual, compareSAMs.areEqual());
+        Assert.assertEquals(expectedMatch, compareSAMs.getMappingsMatch());
+        Assert.assertEquals(expectedDiffer, compareSAMs.getMappingsDiffer());
+        Assert.assertEquals(expectedUnmappedBoth, compareSAMs.getUnmappedBoth());
+        Assert.assertEquals(expectedUnmappedLeft, compareSAMs.getUnmappedLeft());
+        Assert.assertEquals(expectedUnmappedRight, compareSAMs.getUnmappedRight());
+        Assert.assertEquals(expectedMissingLeft, compareSAMs.getMissingLeft());
+        Assert.assertEquals(expectedMissingRight, compareSAMs.getMissingRight());
+
+        final String[] samFilesReversed = {
+                new File(TEST_FILES_DIR, f2).getAbsolutePath(),
+                new File(TEST_FILES_DIR, f1).getAbsolutePath()
+        };
+        compareSAMs = new CompareSAMs();
+        compareSAMs.instanceMain(samFilesReversed);
+        Assert.assertEquals(areEqual, compareSAMs.areEqual());
+        Assert.assertEquals(expectedMatch, compareSAMs.getMappingsMatch());
+        Assert.assertEquals(expectedDiffer, compareSAMs.getMappingsDiffer());
+        Assert.assertEquals(expectedUnmappedBoth, compareSAMs.getUnmappedBoth());
+        Assert.assertEquals(expectedUnmappedRight, compareSAMs.getUnmappedLeft());
+        Assert.assertEquals(expectedUnmappedLeft, compareSAMs.getUnmappedRight());
+        Assert.assertEquals(expectedMissingRight, compareSAMs.getMissingLeft());
+        Assert.assertEquals(expectedMissingLeft, compareSAMs.getMissingRight());
+    }
+
+    @Test
+    public void testSortsDifferent() {
+        testHelper("genomic_sorted.sam", "unsorted.sam", 0, 0, 0, 0, 0, 0, 0, false);
+    }
+
+    @Test
+    public void testSequenceDictionariesDifferent1() {
+        testHelper("genomic_sorted.sam", "chr21.sam", 0, 0, 0, 0, 0, 0, 0, false);
+    }
+
+    @Test
+    public void testSequenceDictionariesDifferent2() {
+        testHelper("genomic_sorted.sam", "bigger_seq_dict.sam", 0, 0, 0, 0, 0, 0, 0, false);
+    }
+
+    @Test
+    public void testBiggerSequenceDictionaries() {
+        testHelper("bigger_seq_dict.sam", "bigger_seq_dict.sam", 2, 0, 0, 0, 0, 0, 0, true);
+    }
+
+    @Test
+    public void testIdentical() {
+        testHelper("genomic_sorted.sam", "genomic_sorted.sam", 2, 0, 0, 0, 0, 0, 0, true);
+    }
+
+    @Test
+    public void testHasNonPrimary() {
+        testHelper("genomic_sorted.sam", "has_non_primary.sam", 2, 0, 0, 0, 0, 0, 0, true);
+    }
+
+    @Test
+    public void testMoreOnOneSide() {
+        testHelper("genomic_sorted_5.sam", "genomic_sorted_5_plus.sam", 3, 2, 0, 0, 0, 3, 0, false);
+    }
+
+    @Test
+    public void testGroupWithSameCoordinate() {
+        testHelper("group_same_coord.sam", "group_same_coord_diff_order.sam", 3, 0, 0, 0, 0, 1, 2, false);
+    }
+
+    @Test
+    public void testGroupWithSameCoordinateAndNoMatchInOther() {
+        testHelper("group_same_coord.sam", "diff_coords.sam", 0, 5, 0, 0, 0, 0, 0, false);
+    }
+
+    @Test
+    public void testUnmapped1() {
+        testHelper("genomic_sorted.sam", "unmapped_first.sam", 1, 0, 0, 0, 1, 0, 0, false);
+    }
+
+    @Test
+    public void testUnmapped2() {
+        testHelper("genomic_sorted.sam", "unmapped_second.sam", 1, 0, 0, 0, 1, 0, 0, false);
+    }
+
+    @Test
+    public void testUnmapped3() {
+        testHelper("unmapped_first.sam", "unmapped_second.sam", 0, 0, 0, 1, 1, 0, 0, false);
+    }
+
+    @Test
+    public void testUnmapped4() {
+        testHelper("unmapped_first.sam", "unmapped_first.sam", 1, 0, 1, 0, 0, 0, 0, true);
+    }
+
+}
diff --git a/src/tests/java/picard/sam/CreateSequenceDictionaryTest.java b/src/tests/java/picard/sam/CreateSequenceDictionaryTest.java
new file mode 100644
index 0000000..9b041cc
--- /dev/null
+++ b/src/tests/java/picard/sam/CreateSequenceDictionaryTest.java
@@ -0,0 +1,73 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.sam;
+
+import org.testng.Assert;
+import org.testng.annotations.Test;
+import picard.cmdline.CommandLineProgramTest;
+import picard.PicardException;
+
+import java.io.File;
+
+/**
+ * @author alecw at broadinstitute.org
+ */
+public class CreateSequenceDictionaryTest extends CommandLineProgramTest {
+    public static File TEST_DATA_DIR = new File("testdata/picard/sam");
+    public static File BASIC_FASTA = new File(TEST_DATA_DIR, "basic.fasta");
+    public static File DUPLICATE_FASTA = new File(TEST_DATA_DIR, "duplicate_sequence_names.fasta");
+
+    public String getCommandLineProgramName() {
+        return CreateSequenceDictionary.class.getSimpleName();
+    }
+
+    @Test
+    public void testBasic() throws Exception {
+        final File outputDict = File.createTempFile("CreateSequenceDictionaryTest.", ".dict");
+        outputDict.delete();
+        outputDict.deleteOnExit();
+        final String[] argv = {
+                "REFERENCE=" + BASIC_FASTA,
+                "OUTPUT=" + outputDict,
+                "TRUNCATE_NAMES_AT_WHITESPACE=false"
+        };
+        Assert.assertEquals(runPicardCommandLine(argv), 0);
+    }
+
+    /**
+     * Should throw an exception because with TRUNCATE_NAMES_AT_WHITESPACE, sequence names are not unique.
+     */
+    @Test(expectedExceptions = PicardException.class)
+    public void testNonUniqueSequenceName() throws Exception {
+        final File outputDict = File.createTempFile("CreateSequenceDictionaryTest.", ".dict");
+        outputDict.deleteOnExit();
+        final String[] argv = {
+                "REFERENCE=" + DUPLICATE_FASTA,
+                "OUTPUT=" + outputDict,
+                "TRUNCATE_NAMES_AT_WHITESPACE=true"
+        };
+        Assert.assertEquals(runPicardCommandLine(argv), 0);
+        Assert.fail("Exception should have been thrown.");
+    }
+}
diff --git a/src/tests/java/picard/sam/FastqToSamTest.java b/src/tests/java/picard/sam/FastqToSamTest.java
new file mode 100644
index 0000000..5a387b4
--- /dev/null
+++ b/src/tests/java/picard/sam/FastqToSamTest.java
@@ -0,0 +1,309 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.sam;
+
+import htsjdk.samtools.SAMException;
+import htsjdk.samtools.SAMRecordIterator;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.fastq.FastqReader;
+import htsjdk.samtools.util.FastqQualityFormat;
+import org.testng.Assert;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import picard.cmdline.CommandLineProgramTest;
+import picard.PicardException;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Tests for FastqToBam
+ */
+public class FastqToSamTest extends CommandLineProgramTest {
+    private static final File TEST_DATA_DIR = new File("testdata/picard/sam/fastq2bam");
+
+    public String getCommandLineProgramName() {
+        return FastqToSam.class.getSimpleName();
+    }
+
+    // fastq files with legal values for each fastq version
+    @DataProvider(name = "okVersionFiles")
+    public Object[][] okVersionFiles() {
+        return new Object[][] {
+            {"fastq-sanger/5k-v1-Rhodobacter_LW1.sam.fastq",      FastqQualityFormat.Standard },
+            {"fastq-sanger/5k-30BB2AAXX.3.aligned.sam.fastq",     FastqQualityFormat.Standard },
+            {"fastq-sanger/sanger_full_range_as_sanger-63.fastq", FastqQualityFormat.Standard }, // all sanger chars
+
+            {"fastq-solexa/s_1_sequence.txt", FastqQualityFormat.Solexa},
+            {"fastq-solexa/solexa_full_range_as_solexa.fastq", FastqQualityFormat.Solexa}, // all solexa chars
+
+            {"fastq-illumina/s_1_2_sequence.txt", FastqQualityFormat.Illumina},
+            {"fastq-illumina/s_1_2_sequence.txt", FastqQualityFormat.Illumina},
+            {"fastq-illumina/s_1_sequence.txt", FastqQualityFormat.Illumina},
+        };
+    }
+
+    // Illegal values fastq files for each fastq version
+    @DataProvider(name = "badVersionFiles")
+    public Object[][] badVersionFiles() {
+        return new Object[][] {
+            {"fastq-sanger/sanger_full_range_as_sanger-63.fastq", FastqQualityFormat.Illumina},
+            {"fastq-solexa/s_1_sequence.txt", FastqQualityFormat.Illumina},
+        };
+    }
+
+    // Illegal fastq format, i.e. doesn't contain correct four lines per record
+    @DataProvider(name = "badFormatFiles")
+    public Object[][] badFormatFiles() {
+        return new Object[][] {
+            {"bad-format/bad-qual-header.txt"},
+            {"bad-format/bad-seq-header.txt"},
+            {"bad-format/extra-line.txt"},
+            {"bad-format/too-many-quals.txt"},
+            {"bad-format/1lines.txt"},
+            {"bad-format/2lines.txt"},
+            {"bad-format/3lines.txt"},
+        };
+    }
+
+    // permissive fastq format, i.e. contain blank lines at various places
+    @DataProvider(name = "permissiveFormatFiles")
+    public Object[][] permissiveFormatFiles() {
+        return new Object[][] {
+                {"permissive-format/pair1.txt",          "permissive-format/pair2.txt", FastqQualityFormat.Standard },
+                {"permissive-format/s_1_1_sequence.txt",    "permissive-format/s_1_2_sequence.txt", FastqQualityFormat.Illumina},
+                {"permissive-format/pair1.txt", null, FastqQualityFormat.Standard},
+                {"permissive-format/pair2.txt", null, FastqQualityFormat.Standard},
+                {"permissive-format/s_1_1_sequence.txt", null, FastqQualityFormat.Illumina},
+                {"permissive-format/s_1_2_sequence.txt", null, FastqQualityFormat.Illumina},
+                {"permissive-format/s_1_sequence.txt", null, FastqQualityFormat.Illumina},
+
+        };
+    }
+
+
+    // OK paired fastq files
+    @DataProvider(name = "okPairedFiles")
+    public Object[][] okPairedFiles() {
+        return new Object[][] {
+            {"ok-paired/pair1.txt",          "ok-paired/pair2.txt", FastqQualityFormat.Standard },
+            {"fastq-illumina/s_1_1_sequence.txt", "fastq-illumina/s_1_2_sequence.txt", FastqQualityFormat.Illumina}
+        };
+    }
+
+    // Inconsistent paired fastq files
+    @DataProvider(name = "badPairedFiles")
+    public Object[][] badPairedFiles() {
+        return new Object[][] {
+            {"ok-paired/pair1.txt",          "bad-paired/pair2-one-more-record.txt" },
+            {"bad-paired/pair1-one-more-record.txt", "ok-paired/pair2.txt" },
+            {"ok-paired/pair1.txt",          "bad-paired/pair2-badnum.txt" },
+            {"bad-paired/pair1-badnum.txt",   "ok-paired/pair2.txt" },
+            {"bad-paired/pair1-nonum.txt",    "ok-paired/pair2.txt" },
+            {"bad-paired/pair1-onetoken.txt", "ok-paired/pair2.txt" },
+        };
+    }
+
+    @Test(dataProvider = "permissiveFormatFiles")
+    public void testPermissiveOk(final String filename1, final String filename2, final FastqQualityFormat version) throws IOException {
+        convertFile(filename1, filename2, version, true);
+    }
+
+    @Test(dataProvider = "permissiveFormatFiles",expectedExceptions = SAMException.class)
+    public void testPermissiveFail(final String filename1, final String filename2, final FastqQualityFormat version) throws IOException {
+        convertFile(filename1,filename2,version,false);
+    }
+
+    @Test(dataProvider = "okVersionFiles")
+    public void testFastqVersionOk(final String fastqVersionFilename, final FastqQualityFormat version) throws IOException {
+        convertFile(fastqVersionFilename, version);
+    }
+
+    @Test(dataProvider = "badVersionFiles", expectedExceptions= SAMException.class)
+    public void testFastqVersionBad(final String fastqVersionFilename, final FastqQualityFormat version) throws IOException {
+        convertFile(fastqVersionFilename, version);
+    }
+
+    @Test(dataProvider = "badFormatFiles", expectedExceptions= SAMException.class)
+    public void testBadFile(final String filename) throws IOException {
+        convertFile(filename, null, FastqQualityFormat.Standard);
+    }
+
+    @Test(dataProvider = "badPairedFiles", expectedExceptions= PicardException.class)
+    public void testPairedBad(final String filename1, final String filename2) throws IOException {
+        convertFile(filename1, filename2, FastqQualityFormat.Standard);
+    }
+
+    @Test(dataProvider = "okPairedFiles")
+    public void testPairedOk(final String filename1, final String filename2, final FastqQualityFormat version) throws IOException {
+        convertFile(filename1, filename2, version);
+    }
+
+    private File convertFile(final String filename, final FastqQualityFormat version) throws IOException {
+        return convertFile(filename, null, version);
+    }
+
+    private File convertFile(final String fastqFilename1, final String fastqFilename2, final FastqQualityFormat version) throws IOException{
+        return convertFile(fastqFilename1, fastqFilename2, version,false);
+    }
+
+    private File convertFile(final String fastqFilename1, final String fastqFilename2, final FastqQualityFormat version,final boolean permissiveFormat) throws IOException {
+        return convertFile(fastqFilename1, fastqFilename2, version, permissiveFormat, false);
+    }
+
+    private File convertFile(final String fastqFilename1,
+                             final String fastqFilename2, 
+                             final FastqQualityFormat version,
+                             final boolean permissiveFormat,
+                             final boolean useSequentialFastqs) throws IOException {
+        final File fastq1 = new File(TEST_DATA_DIR, fastqFilename1);
+        final File fastq2 = (fastqFilename2 != null) ? new File(TEST_DATA_DIR, fastqFilename2) : null;
+        final File samFile = newTempSamFile(fastq1.getName());
+
+        final List<String> args =new ArrayList<String>();
+
+        args.add("FASTQ=" + fastq1.getAbsolutePath());
+        args.add("OUTPUT=" + samFile.getAbsolutePath());
+        args.add("QUALITY_FORMAT=" + version);
+        args.add("READ_GROUP_NAME=rg");
+        args.add("SAMPLE_NAME=s1");
+
+        if (fastqFilename2 != null) args.add("FASTQ2=" + fastq2.getAbsolutePath());
+        if (permissiveFormat) args.add("ALLOW_AND_IGNORE_EMPTY_LINES=true");
+        if (useSequentialFastqs) args.add("USE_SEQUENTIAL_FASTQS=true");
+
+        Assert.assertEquals(runPicardCommandLine(args), 0);
+        return samFile ;
+    
+    }
+
+    private static File newTempSamFile(final String filename) throws IOException {
+        final File file = File.createTempFile(filename,".sam");
+        file.deleteOnExit();
+        return file; 
+    }
+
+    private static File newTempFile(final String filename) throws IOException {
+        final File file = File.createTempFile(filename,".tmp");
+        file.deleteOnExit();
+        return file; 
+    }
+
+//  Test for legal syntax for pair read names for FastqToSam.getBaseName()
+//  We create a dummy file to test the getBaseName() method since it expects 
+//  an existing file.
+
+    // TODO - Should switch over to using invocation via new PicardCommandLine() - BUT the tests using this are accessing class members directly.
+    private static final FastqToSam fastqToSam = new FastqToSam();
+    private static FastqReader freader1 ;
+    private static FastqReader freader2 ;
+
+    @BeforeClass
+    public static void beforeClass() throws IOException {
+        final File dummyFile = newTempFile("dummy");
+        freader1 = new FastqReader(dummyFile);
+        freader2 = new FastqReader(dummyFile);
+    }
+
+    @DataProvider(name = "okPairNames")
+    public Object[][] okPairNames() {
+        return new Object[][] {
+            {"aa/1", "aa/2" },
+            {"aa", "aa" },
+            {"aa/bb", "aa/bb" },
+            {"aa/bb/", "aa/bb/" },
+            {"aa/bb/1", "aa/bb/2" },
+            {"aa/bb/cc/dd/ee/ff/1", "aa/bb/cc/dd/ee/ff/2" },
+            {"////1", "////2" },
+            {"/", "/" },
+            {"////", "////" },
+            {"/aa", "/aa" },
+            {"aa/", "aa/" },
+            {"ab/c", "ab/c"}
+        };
+    }
+
+    @DataProvider(name = "badPairNames")
+    public Object[][] badPairNames() {
+        return new Object[][] {
+            {"", "" },
+            {"aa/1", "bb/2" },
+            {"aa"  , "bb" },
+            {"aa/1", "aa" },
+            {"aa",   "aa/2" },
+            {"aa/1", "aa/1" },
+            {"aa/2", "aa/2" },
+        };
+    }
+
+    @Test(dataProvider = "okPairNames")
+    public void readPairNameOk(final String name1, final String name2) throws IOException {
+        fastqToSam.getBaseName(name1, name2, freader1, freader2);
+    }
+
+    @Test(dataProvider = "badPairNames", expectedExceptions= PicardException.class) 
+    public void readPairNameBad(final String name1, final String name2) throws IOException {
+        fastqToSam.getBaseName(name1, name2, freader1, freader2);
+    }
+
+    // TODO: convert other tests to use this too
+    private void convertFileAndVerifyRecordCount(final int expectedCount,
+                       final String fastqFilename1,
+                       final String fastqFilename2,
+                       final FastqQualityFormat version,
+                       final boolean permissiveFormat,
+                       final boolean useSequentialFastqs) throws IOException {
+        final File samFile = convertFile(fastqFilename1, fastqFilename2, version, permissiveFormat, useSequentialFastqs);
+        final SamReader samReader = SamReaderFactory.makeDefault().open(samFile);
+        final SAMRecordIterator iterator = samReader.iterator();
+        int actualCount = 0;
+        while (iterator.hasNext()) {
+            iterator.next();
+            actualCount++;
+        }
+        samReader.close();
+        Assert.assertEquals(actualCount, expectedCount);
+    }
+    
+    @Test
+    public void testSequentialFiles() throws IOException {
+        final String singleEnd = "sequential-files/single_end_R1_001.fastq";
+        final String pairedEnd1 = "sequential-files/paired_end_R1_001.fastq";
+        final String pairedEnd2 = "sequential-files/paired_end_R2_001.fastq";
+        
+        Assert.assertEquals(FastqToSam.getSequentialFileList(new File(TEST_DATA_DIR, "/" + singleEnd)).size(), 2);
+        Assert.assertEquals(FastqToSam.getSequentialFileList(new File(TEST_DATA_DIR, "/" + pairedEnd1)).size(), 2);
+        Assert.assertEquals(FastqToSam.getSequentialFileList(new File(TEST_DATA_DIR, "/" + pairedEnd2)).size(), 2);
+
+        convertFileAndVerifyRecordCount(1, singleEnd, null, FastqQualityFormat.Illumina, true, false);
+        convertFileAndVerifyRecordCount(2, singleEnd, null, FastqQualityFormat.Illumina, true, true);
+        convertFileAndVerifyRecordCount(2, pairedEnd1, pairedEnd2, FastqQualityFormat.Illumina, true, false);
+        convertFileAndVerifyRecordCount(4, pairedEnd1, pairedEnd2, FastqQualityFormat.Illumina, true, true);
+    }
+}
+
diff --git a/src/tests/java/picard/sam/GatherBamFilesTest.java b/src/tests/java/picard/sam/GatherBamFilesTest.java
new file mode 100644
index 0000000..865c74e
--- /dev/null
+++ b/src/tests/java/picard/sam/GatherBamFilesTest.java
@@ -0,0 +1,65 @@
+package picard.sam;
+
+import htsjdk.samtools.BamFileIoUtils;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+import picard.cmdline.CommandLineProgramTest;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+public class GatherBamFilesTest extends CommandLineProgramTest {
+    private static final File TEST_DATA_DIR = new File("testdata/picard/sam/GatherBamFiles");
+    private static final File ORIG_BAM = new File(TEST_DATA_DIR, "orig.bam");
+    private static final List<File> SPLIT_BAMS = Arrays.asList(
+            new File(TEST_DATA_DIR, "indUnknownChrom.bam"),
+            new File(TEST_DATA_DIR, "indchr1.bam"),
+            new File(TEST_DATA_DIR, "indchr2.bam"),
+            new File(TEST_DATA_DIR, "indchr3.bam"),
+            new File(TEST_DATA_DIR, "indchr4.bam"),
+            new File(TEST_DATA_DIR, "indchr5.bam"),
+            new File(TEST_DATA_DIR, "indchr6.bam"),
+            new File(TEST_DATA_DIR, "indchr7.bam"),
+            new File(TEST_DATA_DIR, "indchr8.bam")
+    );
+
+    public String getCommandLineProgramName() {
+        return GatherBamFiles.class.getSimpleName();
+    }
+
+    @Test
+    public void testTheGathering() throws Exception {
+        final File outputFile = File.createTempFile("gatherBamFilesTest.samFile.", BamFileIoUtils.BAM_FILE_EXTENSION);
+        final List<String> args = new ArrayList<String>();
+        for (final File splitBam : SPLIT_BAMS) {
+            args.add("INPUT=" + splitBam.getAbsolutePath());
+        }
+        args.add("OUTPUT=" + outputFile);
+        runPicardCommandLine(args);
+
+        // TODO - Should switch over to using invocation via new PicardCommandLine() - BUT the test here is accessing class members directly.
+        final CompareSAMs compareSAMs = new CompareSAMs();
+        compareSAMs.samFiles = Arrays.asList(ORIG_BAM, outputFile);
+        compareSAMs.doWork();
+        Assert.assertTrue(compareSAMs.areEqual());
+    }
+
+    @Test
+    public void sanityCheckTheGathering() throws Exception {
+        final File outputFile = File.createTempFile("gatherBamFilesTest.samFile.", BamFileIoUtils.BAM_FILE_EXTENSION);
+        final List<String> args = new ArrayList<String>();
+        for (final File splitBam : SPLIT_BAMS) {
+            args.add("INPUT=" + splitBam.getAbsolutePath());
+        }
+        args.add("OUTPUT=" + outputFile);
+        runPicardCommandLine(args);
+
+        // TODO - Should switch over to using invocation via new PicardCommandLine() - BUT the test here is accessing class members directly.
+        final CompareSAMs compareSAMs = new CompareSAMs();
+        compareSAMs.samFiles = Arrays.asList(ORIG_BAM, SPLIT_BAMS.get(0));
+        compareSAMs.doWork();
+        Assert.assertFalse(compareSAMs.areEqual());
+    }
+}
diff --git a/src/tests/java/picard/sam/MergeBamAlignmentTest.java b/src/tests/java/picard/sam/MergeBamAlignmentTest.java
new file mode 100644
index 0000000..8dd4bf3
--- /dev/null
+++ b/src/tests/java/picard/sam/MergeBamAlignmentTest.java
@@ -0,0 +1,1676 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.sam;
+
+import htsjdk.samtools.BamFileIoUtils;
+import htsjdk.samtools.Cigar;
+import htsjdk.samtools.CigarElement;
+import htsjdk.samtools.CigarOperator;
+import htsjdk.samtools.Defaults;
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMFileWriter;
+import htsjdk.samtools.SAMFileWriterFactory;
+import htsjdk.samtools.SAMProgramRecord;
+import htsjdk.samtools.SAMReadGroupRecord;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SAMRecordIterator;
+import htsjdk.samtools.SAMSequenceRecord;
+import htsjdk.samtools.SAMTag;
+import htsjdk.samtools.SamPairUtil;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.util.CloserUtil;
+import org.testng.Assert;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import picard.PicardException;
+import picard.cmdline.CommandLineProgramTest;
+import picard.sam.testers.ValidateSamTester;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ *  Test for the MergeBamAlignment class
+ *
+ * @author ktibbett at broadinstitute.org
+ */
+public class MergeBamAlignmentTest extends CommandLineProgramTest {
+
+    private static final File TEST_DATA_DIR = new File("testdata/picard/sam/MergeBamAlignment");
+
+    private static final File unmappedBam = new File("testdata/picard/sam/unmapped.sam");
+    private static final File alignedBam = new File("testdata/picard/sam/aligned.sam");
+    private static final File oneHalfAlignedBam = new File("testdata/picard/sam/onehalfaligned.sam");
+    private static final File otherHalfAlignedBam = new File("testdata/picard/sam/otherhalfaligned.sam");
+    private static final File mergingUnmappedBam = new File(TEST_DATA_DIR, "unmapped.sam");
+    private static final File firstReadAlignedBam = new File(TEST_DATA_DIR, "allread1.trimmed.aligned.sam");
+    private static final File secondReadAlignedBam = new File(TEST_DATA_DIR, "allread2.trimmed.aligned.sam");
+    private static final File firstReadAlignedBam_firstHalf = new File(TEST_DATA_DIR, "firsthalf.read1.trimmed.aligned.sam");
+    private static final File firstReadAlignedBam_secondHalf = new File(TEST_DATA_DIR, "secondhalf.read1.trimmed.aligned.sam");
+    private static final File secondReadAlignedBam_firstHalf = new File(TEST_DATA_DIR, "firsthalf.read2.trimmed.aligned.sam");
+    private static final File secondReadAlignedBam_secondHalf = new File(TEST_DATA_DIR, "secondhalf.read2.trimmed.aligned.sam");
+    private static final File supplementalReadAlignedBam = new File(TEST_DATA_DIR, "aligned.supplement.sam");
+    private static final File alignedQuerynameSortedBam =
+            new File("testdata/picard/sam/aligned_queryname_sorted.sam");
+    private static final File fasta = new File("testdata/picard/sam/merger.fasta");
+    private static final String bigSequenceName = "chr7"; // The longest sequence in merger.fasta
+    private static final File sequenceDict = new File("testdata/picard/sam/merger.dict");
+    private static final File badorderUnmappedBam = new File(TEST_DATA_DIR, "unmapped.badorder.sam");
+    private static final File badorderAlignedBam = new File(TEST_DATA_DIR, "aligned.badorder.sam");
+
+    // For EarliestFragment tests, tag placed on the alignments which are expected to be marked as primary.
+    private static final String ONE_OF_THE_BEST_TAG = "YB";
+
+    public String getCommandLineProgramName() {
+        return MergeBamAlignment.class.getSimpleName();
+    }
+
+    @Test
+    public void testMergerWithSupplemental() throws Exception {
+        final File outputWithSupplemental = File.createTempFile("mergeWithSupplementalTest", ".sam");
+        System.out.println(outputWithSupplemental.getAbsolutePath());
+        // outputWithSupplemental.deleteOnExit();
+
+        doMergeAlignment(unmappedBam,
+                Collections.singletonList(supplementalReadAlignedBam),
+                null, null, null, null,
+                false, true, false, 1,
+                "0", "1.0", "align!", "myAligner",
+                true, fasta, outputWithSupplemental,
+                SamPairUtil.PairOrientation.FR, null, null, null
+        );
+
+        final SamReader result = SamReaderFactory.makeDefault().open(outputWithSupplemental);
+
+        final List<Integer> clipAdapterFlags = new ArrayList<Integer>(Arrays.asList(99, 2147, 147, 2195));
+        final List<Integer> foundClipAdapterFlags = new ArrayList<Integer>();
+
+        for (final SAMRecord sam : result) {
+            if (sam.getReadName().equals("both_reads_align_clip_adapter")) {
+                foundClipAdapterFlags.add(sam.getFlags());
+            }
+
+            // This tests that we clip both (a) when the adapter is marked in the unmapped BAM file and
+            // (b) when the insert size is less than the read length
+            if (sam.getReadName().equals("both_reads_align_clip_marked")) {
+                Assert.assertEquals(sam.getReferenceName(), "chr7");
+                if (sam.getReadNegativeStrandFlag()) {
+                    Assert.assertEquals(sam.getCigarString(), "5S96M", "Incorrect CIGAR string for " + sam.getReadName());
+                } else {
+                    Assert.assertEquals(sam.getCigarString(), "96M5S", "Incorrect CIGAR string for " + sam.getReadName());
+                }
+            }
+            else if (sam.getReadName().equals("both_reads_align_clip_adapter")) {
+                Assert.assertEquals(sam.getReferenceName(), "chr7");
+                if (!sam.getSupplementaryAlignmentFlag()) {
+                    if (sam.getReadNegativeStrandFlag()) Assert.assertEquals(sam.getCigarString(), "5S96M", "Incorrect CIGAR string for " + sam.getReadName());
+                    else Assert.assertEquals(sam.getCigarString(), "96M5S", "Incorrect CIGAR string for " + sam.getReadName());
+                }
+            }
+            // This tests that we DON'T clip when we run off the end if there are equal to or more than
+            // MIN_ADAPTER_BASES hanging off the end
+            else if (sam.getReadName().equals("both_reads_align_min_adapter_bases_exceeded")) {
+                Assert.assertEquals(sam.getReferenceName(), "chr7");
+                Assert.assertTrue(!sam.getCigarString().contains("S"),
+                        "Read was clipped when it should not be.");
+            } else if (sam.getReadName().equals("neither_read_aligns_or_present")) {
+                Assert.assertTrue(sam.getReadUnmappedFlag(), "Read should be unmapped but isn't");
+            }
+            // Two pairs in which only the first read should align
+            else if (sam.getReadName().equals("both_reads_present_only_first_aligns") ||
+                    sam.getReadName().equals("read_2_too_many_gaps")) {
+                if (sam.getFirstOfPairFlag()) {
+                    Assert.assertEquals(sam.getReferenceName(), "chr7", "Read should be mapped but isn't");
+                } else {
+                    Assert.assertTrue(sam.getReadUnmappedFlag(), "Read should not be mapped but is");
+                }
+            } else {
+                throw new Exception("Unexpected read name: " + sam.getReadName());
+            }
+        }
+
+        // Make sure that we have the appropriate primary and supplementary reads in the new file
+        Assert.assertEquals(foundClipAdapterFlags.size(), clipAdapterFlags.size());
+        Collections.sort(clipAdapterFlags);
+        Collections.sort(foundClipAdapterFlags);
+        for (int i = 0; i < clipAdapterFlags.size(); i++) {
+            Assert.assertEquals(clipAdapterFlags.get(i), foundClipAdapterFlags.get(i));
+        }
+
+    }
+
+    @Test
+    public void testMerger() throws Exception {
+        final File output = File.createTempFile("mergeTest", ".sam");
+        output.deleteOnExit();
+
+        doMergeAlignment(unmappedBam, Collections.singletonList(alignedBam),
+                null, null, null, null,
+                false, true, false, 1,
+                "0", "1.0", "align!", "myAligner",
+                true, fasta, output,
+                SamPairUtil.PairOrientation.FR, null, null, null
+        );
+
+        SamReader result = SamReaderFactory.makeDefault().open(output);
+        Assert.assertEquals(result.getFileHeader().getSequenceDictionary().getSequences().size(), 8,
+                "Number of sequences did not match");
+        SAMProgramRecord pg = result.getFileHeader().getProgramRecords().get(0);
+        Assert.assertEquals(pg.getProgramGroupId(), "0");
+        Assert.assertEquals(pg.getProgramVersion(), "1.0");
+        Assert.assertEquals(pg.getCommandLine(), "align!");
+        Assert.assertEquals(pg.getProgramName(), "myAligner");
+
+        final SAMReadGroupRecord rg = result.getFileHeader().getReadGroups().get(0);
+        Assert.assertEquals(rg.getReadGroupId(), "0");
+        Assert.assertEquals(rg.getSample(), "Hi,Mom!");
+
+        Assert.assertEquals(result.getFileHeader().getSortOrder(), SAMFileHeader.SortOrder.coordinate);
+
+        for (final SAMRecord sam : result) {
+            // This tests that we clip both (a) when the adapter is marked in the unmapped BAM file and
+            // (b) when the insert size is less than the read length
+            if (sam.getReadName().equals("both_reads_align_clip_adapter") ||
+                    sam.getReadName().equals("both_reads_align_clip_marked")) {
+                Assert.assertEquals(sam.getReferenceName(), "chr7");
+                if (sam.getReadNegativeStrandFlag()) {
+                    Assert.assertEquals(sam.getCigarString(), "5S96M", "Incorrect CIGAR string for " +
+                            sam.getReadName());
+                } else {
+                    Assert.assertEquals(sam.getCigarString(), "96M5S", "Incorrect CIGAR string for " +
+                            sam.getReadName());
+                }
+            }
+            // This tests that we DON'T clip when we run off the end if there are equal to or more than
+            // MIN_ADAPTER_BASES hanging off the end
+            else if (sam.getReadName().equals("both_reads_align_min_adapter_bases_exceeded")) {
+                Assert.assertEquals(sam.getReferenceName(), "chr7");
+                Assert.assertTrue(sam.getCigarString().indexOf("S") == -1,
+                        "Read was clipped when it should not be.");
+            } else if (sam.getReadName().equals("neither_read_aligns_or_present")) {
+                Assert.assertTrue(sam.getReadUnmappedFlag(), "Read should be unmapped but isn't");
+            }
+            // Two pairs in which only the first read should align
+            else if (sam.getReadName().equals("both_reads_present_only_first_aligns") ||
+                    sam.getReadName().equals("read_2_too_many_gaps")) {
+                if (sam.getFirstOfPairFlag()) {
+                    Assert.assertEquals(sam.getReferenceName(), "chr7", "Read should be mapped but isn't");
+                } else {
+                    Assert.assertTrue(sam.getReadUnmappedFlag(), "Read should not be mapped but is");
+                }
+            } else {
+                throw new Exception("Unexpected read name: " + sam.getReadName());
+            }
+
+        }
+
+        // Quick test to make sure the program record gets picked up from the file if not specified
+        // on the command line.
+        doMergeAlignment(unmappedBam, Collections.singletonList(alignedBam),
+                null, null, null, null,
+                false, true, false, 1,
+                null, null, null, null,
+                true, fasta, output,
+                SamPairUtil.PairOrientation.FR, null, null, null
+        );
+
+        CloserUtil.close(result);
+
+        result = SamReaderFactory.makeDefault().open(output);
+        pg = result.getFileHeader().getProgramRecords().get(0);
+        Assert.assertEquals(pg.getProgramGroupId(), "1",
+                "Program group ID not picked up correctly from aligned BAM");
+        Assert.assertEquals(pg.getProgramVersion(), "2.0",
+                "Program version not picked up correctly from aligned BAM");
+        Assert.assertNull(pg.getCommandLine(),
+                "Program command line not picked up correctly from aligned BAM");
+        Assert.assertEquals(pg.getProgramName(), "Hey!",
+                "Program name not picked up correctly from aligned BAM");
+
+        CloserUtil.close(result);
+    }
+
+
+    @Test
+    public void testMergerFromMultipleFiles() throws Exception {
+        final File output = File.createTempFile("mergeTest", ".sam");
+        output.deleteOnExit();
+
+        doMergeAlignment(unmappedBam, Arrays.asList(oneHalfAlignedBam, otherHalfAlignedBam),
+                null, null, null, null,
+                false, true, false, 1,
+                "0", "1.0", "align!", "myAligner",
+                true, fasta, output,
+                SamPairUtil.PairOrientation.FR, null, null, null
+        );
+
+        final SamReader result = SamReaderFactory.makeDefault().open(output);
+
+        for (final SAMRecord sam : result) {
+            // This tests that we clip both (a) when the adapter is marked in the unmapped BAM file and
+            // (b) when the insert size is less than the read length
+            if (sam.getReadName().equals("both_reads_align_clip_adapter") ||
+                    sam.getReadName().equals("both_reads_align_clip_marked")) {
+                Assert.assertEquals(sam.getReferenceName(), "chr7");
+                if (sam.getReadNegativeStrandFlag()) {
+                    Assert.assertEquals(sam.getCigarString(), "5S96M", "Incorrect CIGAR string for " +
+                            sam.getReadName());
+                } else {
+                    Assert.assertEquals(sam.getCigarString(), "96M5S", "Incorrect CIGAR string for " +
+                            sam.getReadName());
+                }
+            }
+            // This tests that we DON'T clip when we run off the end if there are equal to or more than
+            // MIN_ADAPTER_BASES hanging off the end
+            else if (sam.getReadName().equals("both_reads_align_min_adapter_bases_exceeded")) {
+                Assert.assertEquals(sam.getReferenceName(), "chr7");
+                Assert.assertTrue(sam.getCigarString().indexOf("S") == -1,
+                        "Read was clipped when it should not be.");
+            } else if (sam.getReadName().equals("neither_read_aligns_or_present")) {
+                Assert.assertTrue(sam.getReadUnmappedFlag(), "Read should be unmapped but isn't");
+            }
+            // Two pairs in which only the first read should align
+            else if (sam.getReadName().equals("both_reads_present_only_first_aligns") ||
+                    sam.getReadName().equals("read_2_too_many_gaps")) {
+                if (sam.getFirstOfPairFlag()) {
+                    Assert.assertEquals(sam.getReferenceName(), "chr7", "Read should be mapped but isn't");
+                } else {
+                    Assert.assertTrue(sam.getReadUnmappedFlag(), "Read should not be mapped but is");
+                }
+            } else {
+                throw new Exception("Unexpected read name: " + sam.getReadName());
+            }
+
+        }
+
+    }
+
+    @Test(dataProvider="data")
+    public void testSortingOnSamAlignmentMerger(final File unmapped, final File aligned, final boolean sorted, final String testName)
+        throws IOException {
+
+        final File target = File.createTempFile("target", "bam");
+        target.deleteOnExit();
+        final SamAlignmentMerger merger = new SamAlignmentMerger(unmapped,  target, fasta, null, true, false,
+                false, Arrays.asList(aligned), 1, null, null, null, null, null, null,
+                Arrays.asList(SamPairUtil.PairOrientation.FR), SAMFileHeader.SortOrder.coordinate,
+                new BestMapqPrimaryAlignmentSelectionStrategy(), false);
+
+        merger.mergeAlignment(Defaults.REFERENCE_FASTA);
+        Assert.assertEquals(sorted, !merger.getForceSort());
+        final SAMRecordIterator it = SamReaderFactory.makeDefault().open(target).iterator();
+        int aln = 0;
+        while (it.hasNext()) {
+            final SAMRecord rec = it.next();
+            if (!rec.getReadUnmappedFlag()) {
+                aln++;
+            }
+        }
+        Assert.assertEquals(aln, 6, "Incorrect number of aligned reads in merged BAM file");
+    }
+
+    @DataProvider(name="data")
+    public Object[][] getDataForSortingTest() {
+        return new Object[][] {
+                {unmappedBam, alignedQuerynameSortedBam, true, "Basic test with pre-sorted alignment"},
+                {unmappedBam, alignedBam, false, "Basic test with unsorted alignment"}
+
+        };
+    }
+
+    /**
+     * Minimal test of merging data from separate read 1 and read 2 alignments
+     */
+    @Test(dataProvider="separateTrimmed")
+    public void testMergingFromSeparatedReadTrimmedAlignments(final File unmapped, final List<File> r1Align, final List<File> r2Align, final int r1Trim, final int r2Trim, final String testName) throws Exception {
+         final File output = File.createTempFile("mergeMultipleAlignmentsTest", ".sam");
+         output.deleteOnExit();
+
+        doMergeAlignment(unmapped, null, r1Align, r2Align, r1Trim, r2Trim,
+                false, true, false, 1,
+                "0", "1.0", "align!", "myAligner",
+                true, fasta, output,
+                SamPairUtil.PairOrientation.FR, null, null, null
+                );
+
+        SamReaderFactory factory = SamReaderFactory.makeDefault();
+        final SamReader result = factory.open(output);
+         for (final SAMRecord sam : result) {
+            // Get the alignment record
+            final List<File> rFiles = sam.getFirstOfPairFlag() ? r1Align : r2Align;
+            SAMRecord alignment = null;
+            for (final File f : rFiles) {
+                for (final SAMRecord tmp : factory.open(f)) {
+                    if (tmp.getReadName().equals(sam.getReadName())) {
+                        alignment = tmp;
+                        break;
+                    }
+                }
+                if (alignment != null) break;
+            }
+
+            final int trim = sam.getFirstOfPairFlag() ? r1Trim : r2Trim;
+            final int notWrittenToFastq = sam.getReadLength() - (trim + alignment.getReadLength());
+            final int beginning = sam.getReadNegativeStrandFlag() ? notWrittenToFastq : trim;
+            final int end = sam.getReadNegativeStrandFlag() ? trim : notWrittenToFastq;
+
+            if (!sam.getReadUnmappedFlag()) {
+                final CigarElement firstMergedCigarElement = sam.getCigar().getCigarElement(0);
+                final CigarElement lastMergedCigarElement = sam.getCigar().getCigarElement(sam.getCigar().getCigarElements().size() - 1);
+                final CigarElement firstAlignedCigarElement = alignment.getCigar().getCigarElement(0);
+                final CigarElement lastAlignedCigarElement = alignment.getCigar().getCigarElement(alignment.getCigar().getCigarElements().size() - 1);
+
+                if (beginning > 0) {
+                    Assert.assertEquals(firstMergedCigarElement.getOperator(), CigarOperator.S, "First element is not a soft clip");
+                    Assert.assertEquals(firstMergedCigarElement.getLength(), beginning + ((firstAlignedCigarElement.getOperator() == CigarOperator.S) ? firstAlignedCigarElement.getLength() : 0));
+                }
+                if (end > 0) {
+                    Assert.assertEquals(lastMergedCigarElement.getOperator(), CigarOperator.S, "Last element is not a soft clip");
+                    Assert.assertEquals(lastMergedCigarElement.getLength(), end + ((lastAlignedCigarElement.getOperator() == CigarOperator.S) ? lastAlignedCigarElement.getLength() : 0));
+                }
+            }
+        }
+
+    }
+
+    @DataProvider(name="separateTrimmed")
+    public Object[][] getDataForMergingTest() {
+        return new Object[][] {
+            // Tests using one file for each read, queryname sorted, trimmed, not all bases written
+            {mergingUnmappedBam, Arrays.asList(firstReadAlignedBam), Arrays.asList(secondReadAlignedBam), 17, 20, "one file per read"},
+            // Tests using multiple files for each read, coordinate sorted, trimmed, not all bases written
+            {mergingUnmappedBam, Arrays.asList(firstReadAlignedBam_firstHalf, firstReadAlignedBam_secondHalf),
+                    Arrays.asList(secondReadAlignedBam_firstHalf, secondReadAlignedBam_secondHalf), 17, 20, "two files per read"}
+        };
+    }
+
+    @Test(expectedExceptions = {IllegalStateException.class, PicardException.class})
+    public void testOldQuerynameSortFails() throws IOException {
+
+        final File merged = File.createTempFile("merged", BamFileIoUtils.BAM_FILE_EXTENSION);
+        merged.deleteOnExit();
+
+        doMergeAlignment(badorderUnmappedBam, Collections.singletonList(badorderAlignedBam),
+                null, null, null, null,
+                false, true, false, 1,
+                "0", "1.0", "align!", "myAligner",
+                true, fasta, merged,
+                SamPairUtil.PairOrientation.FR, null,
+                null, null
+        );
+        Assert.fail("Merger should have failed because unmapped reads are not in queryname order but didn't");
+    }
+
+    @Test
+    public void testMultiHit() throws IOException {
+        final File unmappedSam = new File(TEST_DATA_DIR, "multihit.unmapped.sam");
+        final File alignedSam = new File(TEST_DATA_DIR, "multihit.aligned.sam");
+        final File merged = File.createTempFile("merged", ".sam");
+        merged.deleteOnExit();
+
+        doMergeAlignment(unmappedSam, Collections.singletonList(alignedSam),
+                null, null, null, null,
+                false, true, false, 1,
+                "0", "1.0", "align!", "myAligner",
+                true, fasta, merged,
+                null, null, null, null
+        );
+
+        // Iterate over the merged output and gather some statistics
+        final Map<String, AlignmentAccumulator> accumulatorMap = new HashMap<String, AlignmentAccumulator>();
+
+        final SamReader reader = SamReaderFactory.makeDefault().open(merged);
+        for (final SAMRecord rec : reader) {
+            final String readName;
+            if (!rec.getReadPairedFlag()) readName = rec.getReadName();
+            else if (rec.getFirstOfPairFlag()) readName = rec.getReadName() + "/1";
+            else readName = rec.getReadName() + "/2";
+            AlignmentAccumulator acc = accumulatorMap.get(readName);
+            if (acc == null) {
+                acc = new AlignmentAccumulator();
+                accumulatorMap.put(readName, acc);
+            }
+            if (rec.getReadUnmappedFlag()) {
+                Assert.assertFalse(acc.seenUnaligned, readName);
+                acc.seenUnaligned = true;
+            } else {
+                ++acc.numAlignments;
+                if (!rec.getNotPrimaryAlignmentFlag()) {
+                    Assert.assertNull(acc.primaryAlignmentSequence, readName);
+                    acc.primaryAlignmentSequence = rec.getReferenceName();
+                }
+            }
+        }
+
+        // Set up expected results
+        final Map<String, AlignmentAccumulator> expectedMap = new HashMap<String, AlignmentAccumulator>();
+        expectedMap.put("frag_hit", new AlignmentAccumulator(false, 1, "chr1"));
+        expectedMap.put("frag_multihit", new AlignmentAccumulator(false, 3, "chr2"));
+        expectedMap.put("frag_no_hit", new AlignmentAccumulator(true, 0, null));
+        expectedMap.put("pair_both_hit/1", new AlignmentAccumulator(false, 1, "chr7"));
+        expectedMap.put("pair_both_hit/2", new AlignmentAccumulator(false, 1, "chr7"));
+        expectedMap.put("pair_both_multihit/1", new AlignmentAccumulator(false, 3, "chr8"));
+        expectedMap.put("pair_both_multihit/2", new AlignmentAccumulator(false, 3, "chr8"));
+        expectedMap.put("pair_first_hit/1", new AlignmentAccumulator(false, 1, "chr1"));
+        expectedMap.put("pair_first_hit/2", new AlignmentAccumulator(true, 0, null));
+        expectedMap.put("pair_first_multihit/1", new AlignmentAccumulator(false, 3, "chr1"));
+        expectedMap.put("pair_first_multihit/2", new AlignmentAccumulator(true, 0, null));
+        expectedMap.put("pair_no_hit/1", new AlignmentAccumulator(true, 0, null));
+        expectedMap.put("pair_no_hit/2", new AlignmentAccumulator(true, 0, null));
+        expectedMap.put("pair_second_hit/1", new AlignmentAccumulator(true, 0, null));
+        expectedMap.put("pair_second_hit/2", new AlignmentAccumulator(false, 1, "chr1"));
+        expectedMap.put("pair_second_multihit/1", new AlignmentAccumulator(true, 0, null));
+        expectedMap.put("pair_second_multihit/2", new AlignmentAccumulator(false, 3, "chr3"));
+
+        Assert.assertEquals(accumulatorMap.size(), expectedMap.size());
+
+        for (final Map.Entry<String, AlignmentAccumulator> entry : expectedMap.entrySet()) {
+            final AlignmentAccumulator actual = accumulatorMap.get(entry.getKey());
+            Assert.assertEquals(actual, entry.getValue(), entry.getKey());
+        }
+
+        assertSamValid(merged);
+    }
+
+    private void assertSamValid(final File sam) {
+        new ValidateSamTester().assertSamValid(sam);
+    }
+
+    private static class AlignmentAccumulator {
+        boolean seenUnaligned = false;
+        int numAlignments = 0;
+        String primaryAlignmentSequence = null;
+
+        private AlignmentAccumulator() {}
+
+        private AlignmentAccumulator(final boolean seenUnaligned, final int numAlignments, final String primaryAlignmentSequence) {
+            this.seenUnaligned = seenUnaligned;
+            this.numAlignments = numAlignments;
+            this.primaryAlignmentSequence = primaryAlignmentSequence;
+        }
+
+        public boolean equals(final Object o) {
+            if (this == o) return true;
+            if (o == null || getClass() != o.getClass()) return false;
+
+            final AlignmentAccumulator that = (AlignmentAccumulator) o;
+
+            if (numAlignments != that.numAlignments) return false;
+            if (seenUnaligned != that.seenUnaligned) return false;
+            if (primaryAlignmentSequence != null ? !primaryAlignmentSequence.equals(that.primaryAlignmentSequence) : that.primaryAlignmentSequence != null)
+                return false;
+
+            return true;
+        }
+
+        @Override
+        public int hashCode() {
+            int result = (seenUnaligned ? 1 : 0);
+            result = 31 * result + numAlignments;
+            result = 31 * result + (primaryAlignmentSequence != null ? primaryAlignmentSequence.hashCode() : 0);
+            return result;
+        }
+
+        @Override
+        public String toString() {
+            return "AlignmentAccumulator{" +
+                    "seenUnaligned=" + seenUnaligned +
+                    ", numAlignments=" + numAlignments +
+                    ", primaryAlignmentSequence='" + primaryAlignmentSequence + '\'' +
+                    '}';
+        }
+    }
+
+    /**
+     * Read a single paired-end read from a file, and create one or more aligned records for the read pair based on
+     * the lists, merge with the original paired-end read, and assert expected results.
+     * @param description
+     * @param firstOfPair List that describes the aligned SAMRecords to create for the first end.
+     * @param secondOfPair List that describes the aligned SAMRecords to create for the second end.
+     * @param expectedPrimaryHitIndex Expected value for the HI tag in the primary alignment in the merged output.
+     * @param expectedNumFirst Expected number of first-of-pair SAMRecords in the merged output.
+     * @param expectedNumSecond Expected number of second-of-pair SAMRecords in the merged output.
+     * @param expectedPrimaryMapq Sum of mapqs of both ends of primary alignment in the merged output.
+     * @throws Exception
+     */
+    @Test(dataProvider = "testPairedMultiHitWithFilteringTestCases")
+    public void testPairedMultiHitWithFiltering(final String description, final List<HitSpec> firstOfPair, final List<HitSpec> secondOfPair,
+                                                final Integer expectedPrimaryHitIndex, final int expectedNumFirst,
+                                                final int expectedNumSecond, final int expectedPrimaryMapq) throws Exception {
+
+        // Create the aligned file by copying bases, quals, readname from the unmapped read, and conforming to each HitSpec.
+        final File unmappedSam = new File(TEST_DATA_DIR, "multihit.filter.unmapped.sam");
+        final SAMRecordIterator unmappedSamFileIterator = SamReaderFactory.makeDefault().open(unmappedSam).iterator();
+        final SAMRecord firstUnmappedRec = unmappedSamFileIterator.next();
+        final SAMRecord secondUnmappedRec = unmappedSamFileIterator.next();
+        unmappedSamFileIterator.close();
+        final File alignedSam = File.createTempFile("aligned.", ".sam");
+        alignedSam.deleteOnExit();
+        final SAMFileHeader alignedHeader = new SAMFileHeader();
+        alignedHeader.setSortOrder(SAMFileHeader.SortOrder.queryname);
+        alignedHeader.setSequenceDictionary(SamReaderFactory.makeDefault().getFileHeader(sequenceDict).getSequenceDictionary());
+        final SAMFileWriter alignedWriter = new SAMFileWriterFactory().makeSAMWriter(alignedHeader, true, alignedSam);
+        for (int i = 0; i < Math.max(firstOfPair.size(), secondOfPair.size()); ++i) {
+            final HitSpec firstHitSpec = firstOfPair.isEmpty()? null: firstOfPair.get(i);
+            final HitSpec secondHitSpec = secondOfPair.isEmpty()? null: secondOfPair.get(i);
+            final SAMRecord first = makeRead(alignedHeader, firstUnmappedRec, firstHitSpec, true, i);
+            final SAMRecord second = makeRead(alignedHeader, secondUnmappedRec, secondHitSpec, false, i);
+            if (first != null && second != null) SamPairUtil.setMateInfo(first, second, alignedHeader);
+            if (first != null) {
+                if (second == null) first.setMateUnmappedFlag(true);
+                alignedWriter.addAlignment(first);
+            }
+            if (second != null) {
+                if (first == null) second.setMateUnmappedFlag(true);
+                alignedWriter.addAlignment(second);
+            }
+        }
+        alignedWriter.close();
+
+        // Merge aligned file with original unmapped file.
+        final File mergedSam = File.createTempFile("merged.", ".sam");
+        mergedSam.deleteOnExit();
+
+        doMergeAlignment(unmappedSam, Collections.singletonList(alignedSam),
+                null, null, null, null,
+                false, true, false, 1,
+                "0", "1.0", "align!", "myAligner",
+                true, fasta, mergedSam,
+                null, null, null, null
+        );
+
+        assertSamValid(mergedSam);
+
+        // Tally metrics and check for agreement with expected.
+        final SamReader mergedReader = SamReaderFactory.makeDefault().open(mergedSam);
+        int numFirst = 0;
+        int numSecond = 0;
+        Integer primaryHitIndex = null;
+        int primaryMapq = 0;
+        for (final SAMRecord rec : mergedReader) {
+            if (rec.getFirstOfPairFlag()) ++numFirst;
+            if (rec.getSecondOfPairFlag()) ++numSecond;
+            if (!rec.getNotPrimaryAlignmentFlag()  && !rec.getReadUnmappedFlag()) {
+                final Integer hitIndex = rec.getIntegerAttribute(SAMTag.HI.name());
+                final int newHitIndex = (hitIndex == null? -1: hitIndex);
+                if (primaryHitIndex == null) primaryHitIndex = newHitIndex;
+                else Assert.assertEquals(newHitIndex, primaryHitIndex.intValue());
+                primaryMapq += rec.getMappingQuality();
+            }
+        }
+        Assert.assertEquals(numFirst, expectedNumFirst);
+        Assert.assertEquals(numSecond, expectedNumSecond);
+        Assert.assertEquals(primaryHitIndex, expectedPrimaryHitIndex);
+        Assert.assertEquals(primaryMapq, expectedPrimaryMapq);
+    }
+
+    private SAMRecord makeRead(final SAMFileHeader alignedHeader, final SAMRecord unmappedRec, final HitSpec hitSpec,
+                               final boolean firstOfPair, final int hitIndex) {
+        if (hitSpec == null) return null;
+        final SAMRecord rec = makeRead(alignedHeader, unmappedRec, hitSpec, hitIndex);
+        rec.setReadPairedFlag(true);
+        if (firstOfPair) {
+            rec.setFirstOfPairFlag(true);
+            rec.setAlignmentStart(hitIndex + 1);
+        } else {
+            rec.setSecondOfPairFlag(true);
+            rec.setAlignmentStart(hitIndex + 201);
+        }
+        return rec;
+    }
+
+    private SAMRecord makeRead(final SAMFileHeader alignedHeader, final SAMRecord unmappedRec, final HitSpec hitSpec, final int hitIndex) {
+        final SAMRecord rec = new SAMRecord(alignedHeader);
+        rec.setReadName(unmappedRec.getReadName());
+        rec.setReadBases(unmappedRec.getReadBases());
+        rec.setBaseQualities(unmappedRec.getBaseQualities());
+        rec.setMappingQuality(hitSpec.mapq);
+        if (!hitSpec.primary) rec.setNotPrimaryAlignmentFlag(true);
+        final Cigar cigar = new Cigar();
+        final int readLength = rec.getReadLength();
+        if (hitSpec.filtered) {
+            // Add two insertions so alignment is filtered.
+            cigar.add(new CigarElement(readLength-4, CigarOperator.M));
+            cigar.add(new CigarElement(1, CigarOperator.I));
+            cigar.add(new CigarElement(1, CigarOperator.M));
+            cigar.add(new CigarElement(1, CigarOperator.I));
+            cigar.add(new CigarElement(1, CigarOperator.M));
+        } else {
+            cigar.add(new CigarElement(readLength, CigarOperator.M));
+        }
+        rec.setCigar(cigar);
+
+        rec.setReferenceName(bigSequenceName);
+        rec.setAttribute(SAMTag.HI.name(), hitIndex);
+        rec.setAlignmentStart(hitIndex + 1);
+
+        return rec;
+    }
+
+    class HitSpec {
+        final boolean primary;
+        final boolean filtered;
+        final int mapq;
+
+        HitSpec(final boolean primary, final boolean filtered, final int mapq) {
+            this.primary = primary;
+            this.filtered = filtered;
+            this.mapq = mapq;
+        }
+    }
+
+    @DataProvider(name="testPairedMultiHitWithFilteringTestCases")
+    public Object[][] testPairedMultiHitWithFilteringTestCases() {
+        final ArrayList<Object[]> ret = new ArrayList<Object[]>();
+        List<HitSpec> firstOfPair;
+        List<HitSpec> secondOfPair;
+
+        // One end aligned test cases...
+
+        firstOfPair = new ArrayList<HitSpec>();
+        secondOfPair = Collections.emptyList();
+        firstOfPair.add(new HitSpec(false, true, 10));
+        firstOfPair.add(new HitSpec(true, true, 10));
+        firstOfPair.add(new HitSpec(false, false, 9));
+        ret.add(new Object[]{"Only 1st end has alignments, primary alignment is filtered, one 2ndary is filtered", firstOfPair, secondOfPair, -1, 1, 1, 9});
+
+        secondOfPair = new ArrayList<HitSpec>();
+        firstOfPair = Collections.emptyList();
+        secondOfPair.add(new HitSpec(false, false, 11));
+        secondOfPair.add(new HitSpec(true, true, 10));
+        secondOfPair.add(new HitSpec(false, true, 9));
+        ret.add(new Object[]{"Only 2nd end has alignments, primary alignment is filtered, one 2ndary is filtered", firstOfPair, secondOfPair, -1, 1, 1, 11});
+
+        firstOfPair = new ArrayList<HitSpec>();
+        secondOfPair = Collections.emptyList();
+        firstOfPair.add(new HitSpec(false, true, 10));
+        firstOfPair.add(new HitSpec(true, true, 10));
+        firstOfPair.add(new HitSpec(false, true, 9));
+        ret.add(new Object[]{"Only 1st end has alignments, all are filtered", firstOfPair, secondOfPair, null, 1, 1, 0});
+
+        secondOfPair = new ArrayList<HitSpec>();
+        firstOfPair = Collections.emptyList();
+        secondOfPair.add(new HitSpec(false, true, 10));
+        secondOfPair.add(new HitSpec(true, true, 10));
+        secondOfPair.add(new HitSpec(false, true, 9));
+        ret.add(new Object[]{"Only 2nd end has alignments, all are filtered", firstOfPair, secondOfPair, null, 1, 1, 0});
+
+        // Both ends aligned test cases...
+
+        firstOfPair = new ArrayList<HitSpec>();
+        secondOfPair = new ArrayList<HitSpec>();
+        firstOfPair.add(new HitSpec(false, false, 10));
+        firstOfPair.add(new HitSpec(true, true, 10));
+        firstOfPair.add(new HitSpec(false, false, 9));
+        secondOfPair.add(new HitSpec(false, false, 11));
+        secondOfPair.add(new HitSpec(true, false, 30));
+        secondOfPair.add(new HitSpec(false, false, 9));
+        ret.add(new Object[]{"Both ends aligned, one end of primary filtered", firstOfPair, secondOfPair, -1, 3, 3, 30});
+
+        firstOfPair = new ArrayList<HitSpec>();
+        secondOfPair = new ArrayList<HitSpec>();
+        firstOfPair.add(new HitSpec(false, false, 10));
+        firstOfPair.add(new HitSpec(true, true, 10));
+        firstOfPair.add(new HitSpec(false, true, 9));
+        secondOfPair.add(new HitSpec(false, false, 11));
+        secondOfPair.add(new HitSpec(true, false, 30));
+        secondOfPair.add(new HitSpec(false, false, 9));
+        ret.add(new Object[]{"Both ends aligned, one end of primary filtered, one end of secondary filtered", firstOfPair, secondOfPair, -1, 2, 3, 30});
+
+        firstOfPair = new ArrayList<HitSpec>();
+        secondOfPair = new ArrayList<HitSpec>();
+        firstOfPair.add(new HitSpec(false, false, 9));
+        firstOfPair.add(new HitSpec(true, true, 10));
+        firstOfPair.add(new HitSpec(false, false, 10));
+        secondOfPair.add(new HitSpec(false, false, 9));
+        secondOfPair.add(new HitSpec(true, true, 30));
+        secondOfPair.add(new HitSpec(false, false, 11));
+        ret.add(new Object[]{"Both ends aligned, both ends of primary filtered", firstOfPair, secondOfPair, 1, 2, 2, 21});
+
+        firstOfPair = new ArrayList<HitSpec>();
+        secondOfPair = new ArrayList<HitSpec>();
+        firstOfPair.add(new HitSpec(false, false, 9));
+        firstOfPair.add(new HitSpec(true, true, 10));
+        firstOfPair.add(new HitSpec(false, false, 10));
+        secondOfPair.add(new HitSpec(false, false, 12));
+        secondOfPair.add(new HitSpec(true, true, 30));
+        secondOfPair.add(new HitSpec(false, false, 11));
+        ret.add(new Object[]{"Both ends aligned, both ends of primary filtered, two secondary alignments with identical mapq",
+                firstOfPair, secondOfPair, 1, 2, 2, 21});
+
+        firstOfPair = new ArrayList<HitSpec>();
+        secondOfPair = new ArrayList<HitSpec>();
+        firstOfPair.add(new HitSpec(false, true, 9));
+        firstOfPair.add(new HitSpec(true, true, 10));
+        firstOfPair.add(new HitSpec(false, false, 10));
+        secondOfPair.add(new HitSpec(false, false, 30));
+        secondOfPair.add(new HitSpec(true, true, 30));
+        secondOfPair.add(new HitSpec(false, false, 11));
+        ret.add(new Object[]{"Both ends aligned, both ends of primary filtered, one end of secondary filtered, but with high mapq",
+                firstOfPair, secondOfPair, -1, 2, 2, 30});
+
+        firstOfPair = new ArrayList<HitSpec>();
+        secondOfPair = new ArrayList<HitSpec>();
+        firstOfPair.add(new HitSpec(false, true, 9));
+        firstOfPair.add(new HitSpec(false, false, 10));
+        firstOfPair.add(new HitSpec(true, false, 10));
+        secondOfPair.add(new HitSpec(false, true, 30));
+        secondOfPair.add(new HitSpec(false, false, 11));
+        secondOfPair.add(new HitSpec(true, false, 30));
+        ret.add(new Object[]{"Both ends aligned, secondary filtered on both ends", firstOfPair, secondOfPair, 1, 2, 2, 40});
+
+        firstOfPair = new ArrayList<HitSpec>();
+        secondOfPair = new ArrayList<HitSpec>();
+        firstOfPair.add(new HitSpec(false, false, 9));
+        firstOfPair.add(new HitSpec(false, false, 10));
+        firstOfPair.add(new HitSpec(true, false, 10));
+        secondOfPair.add(new HitSpec(false, true, 30));
+        secondOfPair.add(new HitSpec(false, false, 11));
+        secondOfPair.add(new HitSpec(true, false, 30));
+        ret.add(new Object[]{"Both ends aligned, secondary filtered on second end", firstOfPair, secondOfPair, 2, 3, 2, 40});
+
+        firstOfPair = new ArrayList<HitSpec>();
+        secondOfPair = new ArrayList<HitSpec>();
+        firstOfPair.add(new HitSpec(false, false, 9));
+        firstOfPair.add(new HitSpec(false, true, 10));
+        firstOfPair.add(new HitSpec(true, false, 10));
+        secondOfPair.add(new HitSpec(false, false, 30));
+        secondOfPair.add(new HitSpec(false, false, 11));
+        secondOfPair.add(new HitSpec(true, false, 30));
+        ret.add(new Object[]{"Both ends aligned, secondary filtered on first end", firstOfPair, secondOfPair, 2, 2, 3, 40});
+
+        firstOfPair = new ArrayList<HitSpec>();
+        secondOfPair = new ArrayList<HitSpec>();
+        firstOfPair.add(new HitSpec(false, true, 9));
+        firstOfPair.add(new HitSpec(false, true, 10));
+        firstOfPair.add(new HitSpec(true, true, 10));
+        secondOfPair.add(new HitSpec(false, true, 30));
+        secondOfPair.add(new HitSpec(false, true, 11));
+        secondOfPair.add(new HitSpec(true, true, 30));
+        ret.add(new Object[]{"Both ends aligned, all filtered", firstOfPair, secondOfPair, null, 1, 1, 0});
+
+        return ret.toArray(new Object[0][]);
+    }
+
+
+
+
+    /**
+     * Read a single fragment read from a file, and create one or more aligned records for the read pair based on
+     * the lists, merge with the original read, and assert expected results.
+     * @param description
+     * @param hitSpecs List that describes the aligned SAMRecords to create.
+     * @param expectedPrimaryHitIndex Expected value for the HI tag in the primary alignment in the merged output.
+     * @param expectedNumReads Expected number of SAMRecords in the merged output.
+     * @param expectedPrimaryMapq Mapq of both ends of primary alignment in the merged output.
+     * @throws Exception
+     */
+    @Test(dataProvider = "testFragmentMultiHitWithFilteringTestCases")
+    public void testFragmentMultiHitWithFiltering(final String description, final List<HitSpec> hitSpecs,
+                                                final Integer expectedPrimaryHitIndex, final int expectedNumReads,
+                                                final int expectedPrimaryMapq) throws Exception {
+
+        // Create the aligned file by copying bases, quals, readname from the unmapped read, and conforming to each HitSpec.
+        final File unmappedSam = new File(TEST_DATA_DIR, "multihit.filter.fragment.unmapped.sam");
+        final SAMRecordIterator unmappedSamFileIterator = SamReaderFactory.makeDefault().open(unmappedSam).iterator();
+        final SAMRecord unmappedRec = unmappedSamFileIterator.next();
+        unmappedSamFileIterator.close();
+        final File alignedSam = File.createTempFile("aligned.", ".sam");
+        alignedSam.deleteOnExit();
+        final SAMFileHeader alignedHeader = new SAMFileHeader();
+        alignedHeader.setSortOrder(SAMFileHeader.SortOrder.queryname);
+        alignedHeader.setSequenceDictionary(SamReaderFactory.makeDefault().getFileHeader(sequenceDict).getSequenceDictionary());
+        final SAMFileWriter alignedWriter = new SAMFileWriterFactory().makeSAMWriter(alignedHeader, true, alignedSam);
+        for (int i = 0; i < hitSpecs.size(); ++i) {
+            final HitSpec hitSpec = hitSpecs.get(i);
+            final SAMRecord mappedRec = makeRead(alignedHeader, unmappedRec, hitSpec, i);
+            if (mappedRec != null) {
+                alignedWriter.addAlignment(mappedRec);
+            }
+        }
+        alignedWriter.close();
+
+        // Merge aligned file with original unmapped file.
+        final File mergedSam = File.createTempFile("merged.", ".sam");
+        mergedSam.deleteOnExit();
+
+        doMergeAlignment(unmappedSam, Collections.singletonList(alignedSam),
+                null, null, null, null,
+                false, true, false, 1,
+                "0", "1.0", "align!", "myAligner",
+                false, fasta, mergedSam,
+                null, null, null, null);
+
+        assertSamValid(mergedSam);
+
+        // Tally metrics and check for agreement with expected.
+        final SamReader mergedReader = SamReaderFactory.makeDefault().open(mergedSam);
+        int numReads = 0;
+        Integer primaryHitIndex = null;
+        int primaryMapq = 0;
+        for (final SAMRecord rec : mergedReader) {
+            ++numReads;
+            if (!rec.getNotPrimaryAlignmentFlag()  && !rec.getReadUnmappedFlag()) {
+                final Integer hitIndex = rec.getIntegerAttribute(SAMTag.HI.name());
+                final int newHitIndex = (hitIndex == null? -1: hitIndex);
+                Assert.assertNull(primaryHitIndex);
+                primaryHitIndex = newHitIndex;
+                primaryMapq = rec.getMappingQuality();
+            }
+        }
+        Assert.assertEquals(numReads, expectedNumReads);
+        Assert.assertEquals(primaryHitIndex, expectedPrimaryHitIndex);
+        Assert.assertEquals(primaryMapq, expectedPrimaryMapq);
+    }
+
+    @DataProvider(name="testFragmentMultiHitWithFilteringTestCases")
+    public Object[][] testFragmentMultiHitWithFilteringTestCases() {
+        final ArrayList<Object[]> ret = new ArrayList<Object[]>();
+        List<HitSpec> hitSpecs;
+
+        hitSpecs = new ArrayList<HitSpec>();
+        hitSpecs.add(new HitSpec(false, true, 10));
+        hitSpecs.add(new HitSpec(true, false, 8));
+        hitSpecs.add(new HitSpec(false, false, 9));
+        ret.add(new Object[]{"One secondary filtered", hitSpecs, -1, 2, 8});
+
+        hitSpecs = new ArrayList<HitSpec>();
+        hitSpecs.add(new HitSpec(false, false, 10));
+        hitSpecs.add(new HitSpec(true, true, 8));
+        hitSpecs.add(new HitSpec(false, false, 11));
+        ret.add(new Object[]{"Primary filtered", hitSpecs, -1, 2, 11});
+
+        hitSpecs = new ArrayList<HitSpec>();
+        hitSpecs.add(new HitSpec(false, false, 11));
+        hitSpecs.add(new HitSpec(true, true, 8));
+        hitSpecs.add(new HitSpec(false, false, 11));
+        ret.add(new Object[]{"Primary filtered, two secondaries with identical mapq", hitSpecs, -1, 2, 11});
+
+        hitSpecs = new ArrayList<HitSpec>();
+        hitSpecs.add(new HitSpec(false, true, 10));
+        hitSpecs.add(new HitSpec(true, true, 8));
+        hitSpecs.add(new HitSpec(false, false, 9));
+        ret.add(new Object[]{"Primary and one secondary filtered", hitSpecs, -1, 1, 9});
+
+        hitSpecs = new ArrayList<HitSpec>();
+        hitSpecs.add(new HitSpec(false, true, 10));
+        hitSpecs.add(new HitSpec(true, true, 8));
+        hitSpecs.add(new HitSpec(false, true, 9));
+        ret.add(new Object[]{"All filtered", hitSpecs, null, 1, 0});
+
+        return ret.toArray(new Object[0][]);
+    }
+
+    /**
+     * Confirm that paired reads are rejected by PrimaryAlignmentStrategy.EarliestFragment.
+     */
+    @Test(expectedExceptions = UnsupportedOperationException.class)
+    public void testEarliestFragmentStrategyPaired() throws Exception {
+        final File output = File.createTempFile("mergeTest", ".sam");
+        output.deleteOnExit();
+
+        final File unmappedSam = File.createTempFile("unmapped.", ".sam");
+        unmappedSam.deleteOnExit();
+        final SAMFileWriterFactory factory = new SAMFileWriterFactory();
+        final SAMFileHeader header = new SAMFileHeader();
+        header.setSortOrder(SAMFileHeader.SortOrder.queryname);
+        final String cigar = "16M";
+
+        final SAMRecord firstOfPair = new SAMRecord(header);
+        firstOfPair.setReadName("theRead");
+        firstOfPair.setReadString("ACGTACGTACGTACGT");
+        firstOfPair.setBaseQualityString("5555555555555555");
+        firstOfPair.setReadUnmappedFlag(true);
+        firstOfPair.setReadPairedFlag(true);
+        firstOfPair.setFirstOfPairFlag(true);
+
+        final SAMRecord secondOfPair = new SAMRecord(header);
+        secondOfPair.setReadName("theRead");
+        secondOfPair.setReadString("ACGTACGTACGTACGT");
+        secondOfPair.setBaseQualityString("5555555555555555");
+        secondOfPair.setReadUnmappedFlag(true);
+        secondOfPair.setReadPairedFlag(true);
+        secondOfPair.setSecondOfPairFlag(true);
+        SamPairUtil.setMateInfo(firstOfPair, secondOfPair, header);
+
+        final SAMFileWriter unmappedWriter = factory.makeSAMWriter(header, false, unmappedSam);
+        unmappedWriter.addAlignment(firstOfPair);
+        unmappedWriter.addAlignment(secondOfPair);
+        unmappedWriter.close();
+
+        final File alignedSam = File.createTempFile("aligned.", ".sam");
+        alignedSam.deleteOnExit();
+
+        // Populate the header with SAMSequenceRecords
+        header.getSequenceDictionary().addSequence(new SAMSequenceRecord("chr1", 1000000));
+
+        // Create 2 alignments for each end of pair
+        final SAMFileWriter alignedWriter = factory.makeSAMWriter(header, false, alignedSam);
+        for (int i = 1; i <= 2; ++i) {
+            final SAMRecord firstOfPairAligned = new SAMRecord(header);
+            firstOfPairAligned.setReadName(firstOfPair.getReadName());
+            firstOfPairAligned.setReadBases(firstOfPair.getReadBases());
+            firstOfPairAligned.setBaseQualities(firstOfPair.getBaseQualities());
+            firstOfPairAligned.setReferenceName("chr1");
+            firstOfPairAligned.setAlignmentStart(i);
+            firstOfPairAligned.setCigarString(cigar);
+            firstOfPairAligned.setMappingQuality(100);
+            firstOfPairAligned.setReadPairedFlag(true);
+            firstOfPairAligned.setFirstOfPairFlag(true);
+            firstOfPairAligned.setAttribute(SAMTag.HI.name(), i);
+
+            final SAMRecord secondOfPairAligned = new SAMRecord(header);
+            secondOfPairAligned.setReadName(secondOfPair.getReadName());
+            secondOfPairAligned.setReadBases(secondOfPair.getReadBases());
+            secondOfPairAligned.setBaseQualities(secondOfPair.getBaseQualities());
+            secondOfPairAligned.setReferenceName("chr1");
+            secondOfPairAligned.setAlignmentStart(i + 10);
+            secondOfPairAligned.setCigarString(cigar);
+            secondOfPairAligned.setMappingQuality(100);
+            secondOfPairAligned.setReadPairedFlag(true);
+            secondOfPairAligned.setSecondOfPairFlag(true);
+            secondOfPairAligned.setAttribute(SAMTag.HI.name(), i);
+
+            SamPairUtil.setMateInfo(firstOfPairAligned, secondOfPairAligned, header);
+
+            alignedWriter.addAlignment(firstOfPairAligned);
+            alignedWriter.addAlignment(secondOfPairAligned);
+        }
+        alignedWriter.close();
+
+        doMergeAlignment(unmappedSam, Collections.singletonList(alignedSam),
+                null, null, null, null,
+                false, true, false, 1,
+                "0", "1.0", "align!", "myAligner",
+                true,
+                fasta, output,
+                SamPairUtil.PairOrientation.FR,
+                MergeBamAlignment.PrimaryAlignmentStrategy.EarliestFragment,
+                null, null);
+
+        Assert.fail("Exception was not thrown");
+    }
+
+    /**
+     * Various scenarios for EarliestFragmentStrategy.  Confirms that one of the expected ones is selected.
+     * Note that there may be an arbitrary selection due to a tie.
+     */
+    @Test(dataProvider = "testEarliestFragmentStrategyDataProvider")
+    public void testEarliestFragmentStrategy(final String testName, final MultipleAlignmentSpec[] specs) throws IOException {
+
+        final File output = File.createTempFile(testName, ".sam");
+        output.deleteOnExit();
+        final File[] sams = createSamFilesToBeMerged(specs);
+
+        doMergeAlignment(sams[0], Collections.singletonList(sams[1]),
+                null, null, null, null,
+                false, true, false, 1,
+                "0", "1.0", "align!", "myAligner",
+                true, fasta, output,
+                SamPairUtil.PairOrientation.FR, MergeBamAlignment.PrimaryAlignmentStrategy.EarliestFragment,
+                ONE_OF_THE_BEST_TAG,
+                null
+        );
+
+
+        final SamReader mergedReader = SamReaderFactory.makeDefault().open(output);
+        boolean seenPrimary = false;
+        for (final SAMRecord rec : mergedReader) {
+            if (!rec.getNotPrimaryAlignmentFlag()) {
+                seenPrimary = true;
+                final Integer oneOfTheBest = rec.getIntegerAttribute(ONE_OF_THE_BEST_TAG);
+                Assert.assertEquals(oneOfTheBest, new Integer(1), "Read not marked as one of the best is primary: " + rec);
+            }
+        }
+        CloserUtil.close(mergedReader);
+        Assert.assertTrue(seenPrimary, "Never saw primary alignment");
+    }
+
+    @DataProvider(name = "testEarliestFragmentStrategyDataProvider")
+    public Object[][] testEarliestFragmentStrategyDataProvider() {
+        return new Object[][] {
+                {"simpleForward", new MultipleAlignmentSpec[]{new MultipleAlignmentSpec("16M", false, 200, true)}},
+                {"simpleReverse", new MultipleAlignmentSpec[]{new MultipleAlignmentSpec("16M", true, 200, true)}},
+                {"2 forward one earlier", new MultipleAlignmentSpec[]{
+                        new MultipleAlignmentSpec("1S15M", false, 200, false),
+                        new MultipleAlignmentSpec("16M", false, 195, true)}},
+                {"forward earlier than reverse", new MultipleAlignmentSpec[]{
+                        new MultipleAlignmentSpec("16M", false, 200, true),
+                        new MultipleAlignmentSpec("15M1S", true, 195, false)}},
+                {"reverse earlier than forward", new MultipleAlignmentSpec[]{
+                        new MultipleAlignmentSpec("2S14M", false, 200, false),
+                        new MultipleAlignmentSpec("15M1S", true, 200, true)}},
+                {"tie resolved via MAPQ", new MultipleAlignmentSpec[]{
+                        new MultipleAlignmentSpec("1S15M", false, 200, false),
+                        new MultipleAlignmentSpec("1S13M1S", false, 205, true),
+                        new MultipleAlignmentSpec("15M1S", true, 200, false),
+                        new MultipleAlignmentSpec("14M2S", true, 195, false)}},
+                {"tie with same MAPQ resolved arbitrarily", new MultipleAlignmentSpec[]{
+                        new MultipleAlignmentSpec("1S15M", false, 200, false),
+                        new MultipleAlignmentSpec("1S13M1S", false, 205, true),
+                        new MultipleAlignmentSpec("15M1S", true, 205, true),
+                        new MultipleAlignmentSpec("14M2S", true, 195, false)}},
+                {"one cigar with deletion and higher MAPQ", new MultipleAlignmentSpec[]{
+                        new MultipleAlignmentSpec("16M", false, 200, false),
+                        new MultipleAlignmentSpec("1D16M", false, 205, true)}},
+                {"one cigar with deletion and lower MAPQ", new MultipleAlignmentSpec[]{
+                        new MultipleAlignmentSpec("16M", false, 205, true),
+                        new MultipleAlignmentSpec("1D16M", false, 200, false)}},
+                {"Insertion makes alignment later", new MultipleAlignmentSpec[]{
+                        new MultipleAlignmentSpec("16M", false, 200, true),
+                        new MultipleAlignmentSpec("1I15M", false, 205, false)}},
+                {"one cigar with deletion and higher MAPQ -- reverse", new MultipleAlignmentSpec[]{
+                        new MultipleAlignmentSpec("16M", true, 200, false),
+                        new MultipleAlignmentSpec("16M1D", true, 205, true)}},
+                {"one cigar with deletion and lower MAPQ -- reverse", new MultipleAlignmentSpec[]{
+                        new MultipleAlignmentSpec("16M", true, 205, true),
+                        new MultipleAlignmentSpec("16M1D", true, 200, false)}},
+                {"Insertion makes alignment later -- reverse", new MultipleAlignmentSpec[]{
+                        new MultipleAlignmentSpec("16M", true, 200, true),
+                        new MultipleAlignmentSpec("15M1I", true, 205, false)}}
+        };
+    }
+
+    /**
+     * @return a 2-element array in which the first element is the unmapped SAM, and the second the mapped SAM.
+     */
+    private File[] createSamFilesToBeMerged(final MultipleAlignmentSpec[] specs) {
+        try {
+            final File unmappedSam = File.createTempFile("unmapped.", ".sam");
+            unmappedSam.deleteOnExit();
+            final SAMFileWriterFactory factory = new SAMFileWriterFactory();
+            final SAMFileHeader header = new SAMFileHeader();
+            header.setSortOrder(SAMFileHeader.SortOrder.queryname);
+            final SAMRecord unmappedRecord = new SAMRecord(header);
+
+            unmappedRecord.setReadName("theRead");
+            unmappedRecord.setReadString("ACGTACGTACGTACGT");
+            unmappedRecord.setBaseQualityString("5555555555555555");
+            unmappedRecord.setReadUnmappedFlag(true);
+
+            final SAMFileWriter unmappedWriter = factory.makeSAMWriter(header, false, unmappedSam);
+            unmappedWriter.addAlignment(unmappedRecord);
+            unmappedWriter.close();
+
+            final File alignedSam = File.createTempFile("aligned.", ".sam");
+            alignedSam.deleteOnExit();
+
+            final String sequence = "chr1";
+            // Populate the header with SAMSequenceRecords
+            header.getSequenceDictionary().addSequence(new SAMSequenceRecord(sequence, 1000000));
+
+            final SAMFileWriter alignedWriter = factory.makeSAMWriter(header, false, alignedSam);
+            for (final MultipleAlignmentSpec spec : specs) {
+                final SAMRecord alignedRecord = new SAMRecord(header);
+                alignedRecord.setReadName(unmappedRecord.getReadName());
+                alignedRecord.setReadBases(unmappedRecord.getReadBases());
+                alignedRecord.setBaseQualities(unmappedRecord.getBaseQualities());
+                alignedRecord.setReferenceName(sequence);
+                alignedRecord.setAlignmentStart(1);
+                alignedRecord.setReadNegativeStrandFlag(spec.reverseStrand);
+                alignedRecord.setCigarString(spec.cigar);
+                alignedRecord.setMappingQuality(spec.mapQ);
+                if (spec.oneOfTheBest) {
+                    alignedRecord.setAttribute(ONE_OF_THE_BEST_TAG, 1);
+                }
+                alignedWriter.addAlignment(alignedRecord);
+            }
+            alignedWriter.close();
+
+            return new File[]{unmappedSam, alignedSam};
+        } catch (IOException e) {
+            throw new PicardException(e.getMessage(), e);
+        }
+    }
+
+    class MultipleAlignmentSpec {
+        final String cigar;
+        final boolean reverseStrand;
+        final int mapQ;
+        final boolean oneOfTheBest;
+
+        MultipleAlignmentSpec(final String cigar, final boolean reverseStrand, final int mapQ, final boolean oneOfTheBest) {
+            this.cigar = cigar;
+            this.reverseStrand = reverseStrand;
+            this.mapQ = mapQ;
+            this.oneOfTheBest = oneOfTheBest;
+        }
+    }
+
+    /**
+     * Test that clipping of FR reads for fragments shorter than read length happens only when it should.
+     */
+    @Test
+    public void testShortFragmentClipping() throws Exception {
+        final File output = File.createTempFile("testShortFragmentClipping", ".sam");
+        output.deleteOnExit();
+        doMergeAlignment(new File(TEST_DATA_DIR, "cliptest.unmapped.sam"),
+                Collections.singletonList(new File(TEST_DATA_DIR, "cliptest.aligned.sam")),
+                null, null, null, null,
+                false, true, false, 1,
+                "0", "1.0", "align!", "myAligner",
+                true,
+                new File(TEST_DATA_DIR, "cliptest.fasta"), output,
+                SamPairUtil.PairOrientation.FR, null,
+                null, null);
+
+        final SamReader result = SamReaderFactory.makeDefault().open(output);
+        final Map<String, SAMRecord> firstReadEncountered = new HashMap<String, SAMRecord>();
+
+        for (final SAMRecord rec : result) {
+            final SAMRecord otherEnd = firstReadEncountered.get(rec.getReadName());
+            if (otherEnd == null) {
+                firstReadEncountered.put(rec.getReadName(), rec);
+            } else {
+                final int fragmentStart = Math.min(rec.getAlignmentStart(), otherEnd.getAlignmentStart());
+                final int fragmentEnd = Math.max(rec.getAlignmentEnd(), otherEnd.getAlignmentEnd());
+                final String[] readNameFields = rec.getReadName().split(":");
+                // Read name of each pair includes the expected fragment start and fragment end positions.
+                final int expectedFragmentStart = Integer.parseInt(readNameFields[1]);
+                final int expectedFragmentEnd = Integer.parseInt(readNameFields[2]);
+                Assert.assertEquals(fragmentStart, expectedFragmentStart, rec.getReadName());
+                Assert.assertEquals(fragmentEnd, expectedFragmentEnd, rec.getReadName());
+            }
+        }
+        result.close();
+    }
+
+    @Test(dataProvider="testBestFragmentMapqStrategy")
+    public void testBestFragmentMapqStrategy(final String testName, final int[] firstMapQs, final int[] secondMapQs,
+                                             final int expectedFirstMapq, final int expectedSecondMapq) throws Exception {
+        testBestFragmentMapqStrategy(testName + "includeSecondary", firstMapQs, secondMapQs, true, expectedFirstMapq,
+                expectedSecondMapq);
+        testBestFragmentMapqStrategy(testName + "excludeSecondary", firstMapQs, secondMapQs, false, expectedFirstMapq,
+                expectedSecondMapq);
+    }
+
+    private void testBestFragmentMapqStrategy(final String testName, final int[] firstMapQs, final int[] secondMapQs,
+                                              final boolean includeSecondary, final int expectedFirstMapq,
+                                              final int expectedSecondMapq) throws Exception {
+        final File unmappedSam = File.createTempFile("unmapped.", ".sam");
+        unmappedSam.deleteOnExit();
+        final SAMFileWriterFactory factory = new SAMFileWriterFactory();
+        final SAMFileHeader header = new SAMFileHeader();
+        header.setSortOrder(SAMFileHeader.SortOrder.queryname);
+
+        final String readName = "theRead";
+        final SAMRecord firstUnmappedRead = new SAMRecord(header);
+        firstUnmappedRead.setReadName(readName);
+        firstUnmappedRead.setReadString("ACGTACGTACGTACGT");
+        firstUnmappedRead.setBaseQualityString("5555555555555555");
+        firstUnmappedRead.setReadUnmappedFlag(true);
+        firstUnmappedRead.setMateUnmappedFlag(true);
+        firstUnmappedRead.setReadPairedFlag(true);
+        firstUnmappedRead.setFirstOfPairFlag(true);
+
+        final SAMRecord secondUnmappedRead = new SAMRecord(header);
+        secondUnmappedRead.setReadName(readName);
+        secondUnmappedRead.setReadString("TCGAACGTTCGAACTG");
+        secondUnmappedRead.setBaseQualityString("6666666666666666");
+        secondUnmappedRead.setReadUnmappedFlag(true);
+        secondUnmappedRead.setMateUnmappedFlag(true);
+        secondUnmappedRead.setReadPairedFlag(true);
+        secondUnmappedRead.setSecondOfPairFlag(true);
+
+
+
+        final SAMFileWriter unmappedWriter = factory.makeSAMWriter(header, false, unmappedSam);
+        unmappedWriter.addAlignment(firstUnmappedRead);
+        unmappedWriter.addAlignment(secondUnmappedRead);
+        unmappedWriter.close();
+
+        final File alignedSam = File.createTempFile("aligned.", ".sam");
+        alignedSam.deleteOnExit();
+
+        final String sequence = "chr1";
+        // Populate the header with SAMSequenceRecords
+        header.getSequenceDictionary().addSequence(new SAMSequenceRecord(sequence, 1000000));
+
+        final SAMFileWriter alignedWriter = factory.makeSAMWriter(header, false, alignedSam);
+
+        addAlignmentsForBestFragmentMapqStrategy(alignedWriter, firstUnmappedRead, sequence, firstMapQs);
+        addAlignmentsForBestFragmentMapqStrategy(alignedWriter, secondUnmappedRead, sequence, secondMapQs);
+        alignedWriter.close();
+
+        final File output = File.createTempFile("testBestFragmentMapqStrategy." + testName, ".sam");
+        output.deleteOnExit();
+        doMergeAlignment(unmappedSam, Collections.singletonList(alignedSam),
+                null, null, null, null,
+                false, true, false, 1,
+                "0", "1.0", "align!", "myAligner",
+                true,
+                new File(TEST_DATA_DIR, "cliptest.fasta"), output,
+                SamPairUtil.PairOrientation.FR,
+                MergeBamAlignment.PrimaryAlignmentStrategy.BestEndMapq,
+                null, includeSecondary
+        );
+        final SamReader reader = SamReaderFactory.makeDefault().open(output);
+
+        int numFirstRecords = 0;
+        int numSecondRecords = 0;
+        int firstPrimaryMapq = -1;
+        int secondPrimaryMapq = -1;
+        for (final SAMRecord rec: reader) {
+            Assert.assertTrue(rec.getReadPairedFlag());
+            if (rec.getFirstOfPairFlag()) ++numFirstRecords;
+            else if (rec.getSecondOfPairFlag()) ++ numSecondRecords;
+            else Assert.fail("unpossible!");
+            if (!rec.getReadUnmappedFlag() && !rec.getNotPrimaryAlignmentFlag()) {
+                if (rec.getFirstOfPairFlag()) {
+                    Assert.assertEquals(firstPrimaryMapq, -1);
+                    firstPrimaryMapq = rec.getMappingQuality();
+                } else {
+                    Assert.assertEquals(secondPrimaryMapq, -1);
+                    secondPrimaryMapq = rec.getMappingQuality();
+                }
+            } else if (rec.getNotPrimaryAlignmentFlag()) {
+                Assert.assertTrue(rec.getMateUnmappedFlag());
+            }
+        }
+        reader.close();
+        Assert.assertEquals(firstPrimaryMapq, expectedFirstMapq);
+        Assert.assertEquals(secondPrimaryMapq, expectedSecondMapq);
+        if (!includeSecondary) {
+            Assert.assertEquals(numFirstRecords, 1);
+            Assert.assertEquals(numSecondRecords, 1);
+        } else {
+            // If no alignments for an end, there will be a single unmapped record
+            Assert.assertEquals(numFirstRecords, Math.max(1, firstMapQs.length));
+            Assert.assertEquals(numSecondRecords, Math.max(1, secondMapQs.length));
+        }
+    }
+
+    private void doMergeAlignment(final File unmappedBam, final List<File> alignedBams,
+                                  final List<File> read1AlignedBams, final List<File> read2AlignedBams, final Integer read1Trim, final Integer read2Trim,
+                                  final boolean alignReadsOnly, final boolean clipAdapters, final boolean isBisulfiteSequence, final int maxInsOrDels,
+                                  final String progRecordId, final String progGroupVersion, final String progGroupCommandLine, final String progGroupName,
+                                  final boolean pairedRun, final File refSeq, final File output,
+                                  final SamPairUtil.PairOrientation expectedOrientation, final MergeBamAlignment.PrimaryAlignmentStrategy primaryAlignmentStrategy,
+                                  final String attributesToRetain,
+                                  final Boolean includeSecondary) {
+
+        final List<String> args = new ArrayList<String>(Arrays.asList(
+                "UNMAPPED_BAM=" + unmappedBam.getAbsolutePath(),
+                "ALIGNED_READS_ONLY=" + alignReadsOnly,
+                "CLIP_ADAPTERS=" + clipAdapters,
+                "IS_BISULFITE_SEQUENCE=" + isBisulfiteSequence,
+                "MAX_INSERTIONS_OR_DELETIONS=" + maxInsOrDels));
+        if (alignedBams != null) {
+            for (final File alignedBam : alignedBams) {
+                args.add("ALIGNED_BAM=" + alignedBam.getAbsolutePath());
+            }
+        }
+        if (read1AlignedBams != null) {
+            for (final File alignedBam : read1AlignedBams) {
+                args.add("READ1_ALIGNED_BAM=" + alignedBam.getAbsolutePath());
+            }
+        }
+        if (read2AlignedBams != null) {
+            for (final File alignedBam : read2AlignedBams) {
+                args.add("READ2_ALIGNED_BAM=" + alignedBam.getAbsolutePath());
+            }
+        }
+        if (read1Trim != null) {
+            args.add("READ1_TRIM=" + read1Trim);
+        }
+        if (read2Trim != null) {
+            args.add("READ2_TRIM=" + read2Trim);
+        }
+        if (progRecordId != null) {
+            args.add("PROGRAM_RECORD_ID=" + progRecordId);
+        }
+        if (progGroupVersion != null) {
+            args.add("PROGRAM_GROUP_VERSION=" + progGroupVersion);
+        }
+        if (progGroupCommandLine != null) {
+            args.add("PROGRAM_GROUP_COMMAND_LINE=" + progGroupCommandLine);
+        }
+        if (progGroupName != null) {
+            args.add("PROGRAM_GROUP_NAME=" + progGroupName);
+        }
+        args.add("PAIRED_RUN=" + pairedRun);
+        args.add("REFERENCE_SEQUENCE=" + refSeq.getAbsolutePath());
+        args.add("OUTPUT=" + output.getAbsolutePath());
+
+        if (expectedOrientation != null) {
+            args.add("EXPECTED_ORIENTATIONS=" + expectedOrientation);
+        }
+        if (primaryAlignmentStrategy != null) {
+            args.add("PRIMARY_ALIGNMENT_STRATEGY=" + primaryAlignmentStrategy);
+        }
+        if (attributesToRetain != null) {
+            args.add("ATTRIBUTES_TO_RETAIN=" + attributesToRetain);
+        }
+        if (includeSecondary != null) {
+            args.add("INCLUDE_SECONDARY_ALIGNMENTS=" + includeSecondary);
+        }
+        Assert.assertEquals(runPicardCommandLine(args), 0, "Merge did not succeed");
+    }
+
+    private void addAlignmentsForBestFragmentMapqStrategy(
+            final SAMFileWriter writer, final SAMRecord unmappedRecord, final String sequence, final int[] mapqs) {
+        boolean reverse = false;
+        int alignmentStart = 1;
+        for (final int mapq : mapqs) {
+            final SAMRecord alignedRecord = new SAMRecord(writer.getFileHeader());
+            alignedRecord.setReadName(unmappedRecord.getReadName());
+            alignedRecord.setReadBases(unmappedRecord.getReadBases());
+            alignedRecord.setBaseQualities(unmappedRecord.getBaseQualities());
+            alignedRecord.setReferenceName(sequence);
+            alignedRecord.setAlignmentStart(alignmentStart);
+            alignmentStart += 10; // Any old position will do
+            alignedRecord.setReadNegativeStrandFlag(reverse);
+            reverse = !reverse;
+            alignedRecord.setCigarString(unmappedRecord.getReadBases().length + "M");
+            alignedRecord.setMappingQuality(mapq);
+            alignedRecord.setReadPairedFlag(unmappedRecord.getReadPairedFlag());
+            alignedRecord.setFirstOfPairFlag(unmappedRecord.getFirstOfPairFlag());
+            alignedRecord.setSecondOfPairFlag(unmappedRecord.getSecondOfPairFlag());
+            alignedRecord.setMateUnmappedFlag(true);
+            writer.addAlignment(alignedRecord);
+        }
+    }
+
+
+    @DataProvider(name="testBestFragmentMapqStrategy")
+    public Object[][] testBestFragmentMapqStrategyDataProvider() {
+        /**
+         *
+         * @param testName
+         * @param firstMapQs
+         * @param secondMapQs
+         * @param expectedFirstMapq
+         * @param expectedSecondMapq
+         */
+        return new Object[][] {
+                {"singleAlignmentFirstEnd", new int[]{12}, new int[0], 12, -1},
+                {"singleAlignmentSecondEnd", new int[0], new int[]{12}, -1, 12},
+                {"singleAlignmentBothEnd", new int[]{13}, new int[]{12}, 13, 12},
+                {"multipleBothEnds1", new int[]{10, 10, 11, 11, 255, 0}, new int[]{14, 11, 1, 14}, 11, 14},
+                {"multipleBothEnds2", new int[]{255, 0, 255}, new int[]{255, 255}, 255, 255},
+                {"multipleFirstEnd", new int[]{10, 10, 11, 11, 12}, new int[0], 12, -1},
+                {"multipleSecondEnd", new int[0], new int[]{10, 10, 0, 11, 12}, -1, 12},
+                {"multipleFirstEndSingleSecondEnd", new int[]{10, 10, 11, 11, 12}, new int[]{255}, 12, 255},
+                {"singleFirstEndMultipleSecondEnd", new int[]{0}, new int[]{10, 10, 11, 11, 12}, 0, 12},
+        };
+    }
+
+    @Test(dataProvider = "testMostDistantStrategy")
+    public void testMostDistantStrategy(final String testName,
+                                        final MostDistantStrategyAlignmentSpec[] firstEndSpecs,
+                                        final MostDistantStrategyAlignmentSpec[] secondEndSpecs) throws Exception {
+        testMostDistantStrategy(testName +".includeSecondary", true, firstEndSpecs, secondEndSpecs);
+        testMostDistantStrategy(testName +".excludeSecondary", false, firstEndSpecs, secondEndSpecs);
+    }
+
+    public void testMostDistantStrategy(final String testName, final boolean includeSecondary,
+        final MostDistantStrategyAlignmentSpec[] firstEndSpecs,
+        final MostDistantStrategyAlignmentSpec[] secondEndSpecs) throws Exception {
+
+        final File unmappedSam = File.createTempFile("unmapped.", ".sam");
+        unmappedSam.deleteOnExit();
+        final SAMFileWriterFactory factory = new SAMFileWriterFactory();
+        final SAMFileHeader header = new SAMFileHeader();
+        header.setSortOrder(SAMFileHeader.SortOrder.queryname);
+
+        final String readName = "theRead";
+        final SAMRecord firstUnmappedRead = new SAMRecord(header);
+        firstUnmappedRead.setReadName(readName);
+        firstUnmappedRead.setReadString("ACGT");
+        firstUnmappedRead.setBaseQualityString("5555");
+        firstUnmappedRead.setReadUnmappedFlag(true);
+        firstUnmappedRead.setMateUnmappedFlag(true);
+        firstUnmappedRead.setReadPairedFlag(true);
+        firstUnmappedRead.setFirstOfPairFlag(true);
+
+        final SAMRecord secondUnmappedRead = new SAMRecord(header);
+        secondUnmappedRead.setReadName(readName);
+        secondUnmappedRead.setReadString("TCGA");
+        secondUnmappedRead.setBaseQualityString("6666");
+        secondUnmappedRead.setReadUnmappedFlag(true);
+        secondUnmappedRead.setMateUnmappedFlag(true);
+        secondUnmappedRead.setReadPairedFlag(true);
+        secondUnmappedRead.setSecondOfPairFlag(true);
+
+
+
+        final SAMFileWriter unmappedWriter = factory.makeSAMWriter(header, false, unmappedSam);
+        unmappedWriter.addAlignment(firstUnmappedRead);
+        unmappedWriter.addAlignment(secondUnmappedRead);
+        unmappedWriter.close();
+
+        final File alignedSam = File.createTempFile("aligned.", ".sam");
+        alignedSam.deleteOnExit();
+
+        header.setSequenceDictionary(SamReaderFactory.makeDefault().getFileHeader(sequenceDict).getSequenceDictionary());
+
+
+        final SAMFileWriter alignedWriter = factory.makeSAMWriter(header, false, alignedSam);
+
+        String expectedFirstPrimarySequence = null;
+        int expectedFirstPrimaryAlignmentStart = -1;
+        String expectedSecondPrimarySequence = null;
+        int expectedSecondPrimaryAlignmentStart = -1;
+
+        // Semi-randomly make the reads align to forward or reverse strand.
+        boolean reverse = false;
+        for (final MostDistantStrategyAlignmentSpec spec: firstEndSpecs) {
+            addAlignmentForMostStrategy(alignedWriter, firstUnmappedRead, spec, reverse);
+            reverse = !reverse;
+            if (spec.expectedPrimary) {
+                expectedFirstPrimarySequence = spec.sequence;
+                expectedFirstPrimaryAlignmentStart = spec.alignmentStart;
+            }
+        }
+        for (final MostDistantStrategyAlignmentSpec spec: secondEndSpecs) {
+            addAlignmentForMostStrategy(alignedWriter, secondUnmappedRead, spec, reverse);
+            reverse = !reverse;
+            if (spec.expectedPrimary) {
+                expectedSecondPrimarySequence = spec.sequence;
+                expectedSecondPrimaryAlignmentStart = spec.alignmentStart;
+            }
+        }
+        alignedWriter.close();
+
+
+        final File output = File.createTempFile("testMostDistantStrategy." + testName, ".sam");
+        output.deleteOnExit();
+        doMergeAlignment(unmappedSam, Collections.singletonList(alignedSam),
+                null, null, null, null,
+                false, true, false, 1,
+                "0", "1.0", "align!", "myAligner",
+                true, fasta, output,
+                SamPairUtil.PairOrientation.FR, MergeBamAlignment.PrimaryAlignmentStrategy.MostDistant,
+                null, includeSecondary);
+
+        final SamReader reader = SamReaderFactory.makeDefault().open(output);
+        int numFirstRecords = 0;
+        int numSecondRecords = 0;
+        String firstPrimarySequence = null;
+        int firstPrimaryAlignmentStart = -1;
+        String secondPrimarySequence = null;
+        int secondPrimaryAlignmentStart = -1;
+        for (final SAMRecord rec: reader) {
+            Assert.assertTrue(rec.getReadPairedFlag());
+            if (rec.getFirstOfPairFlag()) ++numFirstRecords;
+            else if (rec.getSecondOfPairFlag()) ++ numSecondRecords;
+            else Assert.fail("unpossible!");
+            if (!rec.getReadUnmappedFlag() && !rec.getNotPrimaryAlignmentFlag()) {
+                if (rec.getFirstOfPairFlag()) {
+                    Assert.assertEquals(firstPrimaryAlignmentStart, -1);
+                    firstPrimarySequence = rec.getReferenceName();
+                    firstPrimaryAlignmentStart = rec.getAlignmentStart();
+                } else {
+                    Assert.assertEquals(secondPrimaryAlignmentStart, -1);
+                    secondPrimarySequence = rec.getReferenceName();
+                    secondPrimaryAlignmentStart = rec.getAlignmentStart();
+                }
+            } else if (rec.getNotPrimaryAlignmentFlag()) {
+                Assert.assertTrue(rec.getMateUnmappedFlag());
+            }
+        }
+        CloserUtil.close(reader);
+        Assert.assertEquals(firstPrimarySequence, expectedFirstPrimarySequence);
+        Assert.assertEquals(firstPrimaryAlignmentStart, expectedFirstPrimaryAlignmentStart);
+        Assert.assertEquals(secondPrimarySequence, expectedSecondPrimarySequence);
+        Assert.assertEquals(secondPrimaryAlignmentStart, expectedSecondPrimaryAlignmentStart);
+        if (!includeSecondary) {
+            Assert.assertEquals(numFirstRecords, 1);
+            Assert.assertEquals(numSecondRecords, 1);
+        } else {
+            // If no alignments for an end, there will be a single unmapped record
+            Assert.assertEquals(numFirstRecords, Math.max(1, firstEndSpecs.length));
+            Assert.assertEquals(numSecondRecords, Math.max(1, secondEndSpecs.length));
+        }
+    }
+
+    private void addAlignmentForMostStrategy(
+            final SAMFileWriter writer, final SAMRecord unmappedRecord, final MostDistantStrategyAlignmentSpec spec,
+            final boolean reverse) {
+        final SAMRecord alignedRecord = new SAMRecord(writer.getFileHeader());
+        alignedRecord.setReadName(unmappedRecord.getReadName());
+        alignedRecord.setReadBases(unmappedRecord.getReadBases());
+        alignedRecord.setBaseQualities(unmappedRecord.getBaseQualities());
+        alignedRecord.setReferenceName(spec.sequence);
+        alignedRecord.setAlignmentStart(spec.alignmentStart);
+        alignedRecord.setReadNegativeStrandFlag(reverse);
+        alignedRecord.setCigarString(unmappedRecord.getReadBases().length + "M");
+        alignedRecord.setMappingQuality(spec.mapQ);
+        alignedRecord.setReadPairedFlag(unmappedRecord.getReadPairedFlag());
+        alignedRecord.setFirstOfPairFlag(unmappedRecord.getFirstOfPairFlag());
+        alignedRecord.setSecondOfPairFlag(unmappedRecord.getSecondOfPairFlag());
+        alignedRecord.setMateUnmappedFlag(true);
+        writer.addAlignment(alignedRecord);
+    }
+
+    private static class MostDistantStrategyAlignmentSpec {
+        public final boolean expectedPrimary;
+        public final String sequence;
+        public final int alignmentStart;
+        public final int mapQ;
+
+        private MostDistantStrategyAlignmentSpec(final boolean expectedPrimary, final String sequence,
+                                                 final int alignmentStart, final int mapQ) {
+            this.expectedPrimary = expectedPrimary;
+            this.sequence = sequence;
+            this.alignmentStart = alignmentStart;
+            this.mapQ = mapQ;
+        }
+
+        private MostDistantStrategyAlignmentSpec(final boolean expectedPrimary, final String sequence,
+                                                 final int alignmentStart) {
+            this(expectedPrimary, sequence, alignmentStart, 10);
+        }
+    }
+
+    @DataProvider(name="testMostDistantStrategy")
+    public Object[][] testMostDistantStrategyDataProvider() {
+        /**
+         * @param testName
+         * @param firstEndSpecs
+         * @param secondEndSpecs
+         */
+        return new Object[][] {
+                {
+                        // There are two ties: {chr1:1 - chr1:89} and {chr4:2 -chr4:90}
+                        // That are disambiguated by MAPQ.
+                        "multipleAlignmentsBothEnds",
+                        new MostDistantStrategyAlignmentSpec[] {
+                                new MostDistantStrategyAlignmentSpec(false, "chr1", 1, 20),
+                                new MostDistantStrategyAlignmentSpec(false, "chr2", 1, 20),
+                                new MostDistantStrategyAlignmentSpec(false, "chr3", 1, 20),
+                                new MostDistantStrategyAlignmentSpec(true, "chr4", 2, 25),
+                                new MostDistantStrategyAlignmentSpec(false, "chr1", 89, 20),
+                                new MostDistantStrategyAlignmentSpec(false, "chr2", 2, 20),
+                                new MostDistantStrategyAlignmentSpec(false, "chr3", 3, 20),
+                                new MostDistantStrategyAlignmentSpec(false, "chr4", 4, 20),
+                        },
+                        new MostDistantStrategyAlignmentSpec[] {
+                                new MostDistantStrategyAlignmentSpec(false, "chr1", 1, 20),
+                                new MostDistantStrategyAlignmentSpec(false, "chr2", 2, 20),
+                                new MostDistantStrategyAlignmentSpec(false, "chr3", 3, 20),
+                                new MostDistantStrategyAlignmentSpec(true, "chr4", 90, 19),
+                                new MostDistantStrategyAlignmentSpec(false, "chr1", 5, 20),
+                                new MostDistantStrategyAlignmentSpec(false, "chr2", 6, 20),
+                        },
+                },
+                {
+                        "multipleAlignmentsAllChimeric",
+                        new MostDistantStrategyAlignmentSpec[] {
+                                new MostDistantStrategyAlignmentSpec(false, "chr1", 1, 20),
+                                new MostDistantStrategyAlignmentSpec(false, "chr2", 2, 20),
+                                new MostDistantStrategyAlignmentSpec(false, "chr1", 3, 20),
+                                new MostDistantStrategyAlignmentSpec(true, "chr2", 4, 21),
+                                new MostDistantStrategyAlignmentSpec(false, "chr1", 10, 20),
+                                new MostDistantStrategyAlignmentSpec(false, "chr2", 50, 20),
+                                new MostDistantStrategyAlignmentSpec(false, "chr1", 60, 20),
+                                new MostDistantStrategyAlignmentSpec(false, "chr2", 70, 20),
+                        },
+                        new MostDistantStrategyAlignmentSpec[] {
+                                new MostDistantStrategyAlignmentSpec(false, "chr3", 1, 20),
+                                new MostDistantStrategyAlignmentSpec(false, "chr4", 2, 20),
+                                new MostDistantStrategyAlignmentSpec(false, "chr3", 3, 20),
+                                new MostDistantStrategyAlignmentSpec(true, "chr4", 11, 25),
+                                new MostDistantStrategyAlignmentSpec(false, "chr3", 50, 20),
+                                new MostDistantStrategyAlignmentSpec(false, "chr4", 60, 20),
+                        },
+                },
+                {
+                        "multipleAlignmentsFirstEnd",
+                        new MostDistantStrategyAlignmentSpec[] {
+                                new MostDistantStrategyAlignmentSpec(false, "chr1", 10, 20),
+                                new MostDistantStrategyAlignmentSpec(false, "chr2", 10, 20),
+                                new MostDistantStrategyAlignmentSpec(false, "chr3", 10, 20),
+                                new MostDistantStrategyAlignmentSpec(true, "chr4", 20, 25),
+                                new MostDistantStrategyAlignmentSpec(false, "chr1", 80, 20),
+                                new MostDistantStrategyAlignmentSpec(false, "chr2", 20, 20),
+                                new MostDistantStrategyAlignmentSpec(false, "chr3", 30, 20),
+                                new MostDistantStrategyAlignmentSpec(false, "chr4", 40, 20),
+                        },
+                        new MostDistantStrategyAlignmentSpec[0]
+                },
+                {
+                        "multipleAlignmentsSecondEnd",
+                        new MostDistantStrategyAlignmentSpec[0],
+                        new MostDistantStrategyAlignmentSpec[] {
+                                new MostDistantStrategyAlignmentSpec(false, "chr1", 10, 20),
+                                new MostDistantStrategyAlignmentSpec(false, "chr2", 10, 20),
+                                new MostDistantStrategyAlignmentSpec(false, "chr3", 10, 20),
+                                new MostDistantStrategyAlignmentSpec(true, "chr4", 20, 25),
+                                new MostDistantStrategyAlignmentSpec(false, "chr1", 80, 20),
+                                new MostDistantStrategyAlignmentSpec(false, "chr2", 20, 20),
+                                new MostDistantStrategyAlignmentSpec(false, "chr3", 30, 20),
+                                new MostDistantStrategyAlignmentSpec(false, "chr4", 40, 20),
+                        },
+                },
+        };
+    }
+}
diff --git a/src/tests/java/picard/sam/MergeSamFilesTest.java b/src/tests/java/picard/sam/MergeSamFilesTest.java
new file mode 100644
index 0000000..1e2c0e4
--- /dev/null
+++ b/src/tests/java/picard/sam/MergeSamFilesTest.java
@@ -0,0 +1,66 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.sam;
+
+import htsjdk.samtools.BamFileIoUtils;
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.util.CloserUtil;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+import picard.cmdline.CommandLineProgramTest;
+import picard.sam.testers.ValidateSamTester;
+
+import java.io.File;
+
+public class MergeSamFilesTest extends CommandLineProgramTest {
+    private static final File TEST_DATA_DIR = new File("testdata/picard/sam/MergeSamFiles");
+
+    public String getCommandLineProgramName() {
+        return MergeSamFiles.class.getSimpleName();
+    }
+    /**
+     * Confirm that unsorted input can result in coordinate sorted output, with index created.
+     */
+    @Test
+    public void unsortedInputSortedOutputTest() throws Exception {
+        final File unsortedInputTestDataDir = new File(TEST_DATA_DIR, "unsorted_input");
+        final File mergedOutput = File.createTempFile("unsortedInputSortedOutputTest.", BamFileIoUtils.BAM_FILE_EXTENSION);
+        mergedOutput.deleteOnExit();
+        final String[] args = {
+                "I=" + new File(unsortedInputTestDataDir, "1.sam").getAbsolutePath(),
+                "I=" + new File(unsortedInputTestDataDir, "2.sam").getAbsolutePath(),
+                "O=" + mergedOutput.getAbsolutePath(),
+                "SO=coordinate"
+        };
+        final int mergeExitStatus = runPicardCommandLine(args);
+        Assert.assertEquals(mergeExitStatus, 0);
+        final SamReader reader = SamReaderFactory.makeDefault().open(mergedOutput);
+        Assert.assertEquals(reader.getFileHeader().getSortOrder(), SAMFileHeader.SortOrder.coordinate);
+
+        new ValidateSamTester().assertSamValid(mergedOutput);
+        CloserUtil.close(reader);
+    }
+}
diff --git a/src/tests/java/picard/sam/PositionBasedDownsampleSamTest.java b/src/tests/java/picard/sam/PositionBasedDownsampleSamTest.java
new file mode 100644
index 0000000..d8f9594
--- /dev/null
+++ b/src/tests/java/picard/sam/PositionBasedDownsampleSamTest.java
@@ -0,0 +1,248 @@
+package picard.sam;
+
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMFileWriter;
+import htsjdk.samtools.SAMFileWriterFactory;
+import htsjdk.samtools.SAMReadGroupRecord;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SAMRecordSetBuilder;
+import htsjdk.samtools.SAMTextHeaderCodec;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.util.BufferedLineReader;
+import htsjdk.samtools.util.IOUtil;
+import org.testng.Assert;
+import org.testng.annotations.AfterTest;
+import org.testng.annotations.BeforeTest;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import picard.PicardException;
+import picard.cmdline.CommandLineProgramTest;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Random;
+
+import static org.testng.Assert.assertEquals;
+
+public class PositionBasedDownsampleSamTest extends CommandLineProgramTest {
+    final static String sample = "TestSample";
+    final static String readGroupId = "TestReadGroup";
+    final static String platform = "ILLUMINA";
+    final static String library = "TestLibrary";
+
+    final static File TEST_DIR = new File("testdata/picard/sam/PositionalDownsampleSam/");
+    final File dict = new File(TEST_DIR, "header.dict");
+
+    File tempDir;
+    File tempSamFile;
+
+    SAMRecordSetBuilder setBuilder = new SAMRecordSetBuilder(true, SAMFileHeader.SortOrder.coordinate);
+    SAMReadGroupRecord readGroupRecord = new SAMReadGroupRecord(readGroupId);
+
+    @Override
+    public String getCommandLineProgramName() {
+        return PositionBasedDownsampleSam.class.getSimpleName();
+    }
+
+    //create a samfile with one tile and randomly placed reads within it.
+    @BeforeTest
+    void setupBuilder() throws IOException {
+        final int numReads = 10000;
+        final String flowCellBarcode = "TESTBARCODE";
+        final int maxX = 10000;
+        final int maxY = 20000;
+        final int minX = 1000;
+        final int minY = 2000;
+
+        final String separator = ":";
+        final int lane = 1;
+        final int tile = 2203;
+
+        //use fixed random seed to eliminate possibility of intermittent failures
+        final Random rg = new Random(31);
+        setBuilder.setReadGroup(readGroupRecord);
+        setBuilder.setUseNmFlag(true);
+
+        for (int i = 0; i < numReads; i++) {
+            final int x = rg.nextInt(maxX) + minX;
+            final int y = rg.nextInt(maxY) + minY;
+
+            final String readName = flowCellBarcode + separator + lane + separator + tile + separator + x + separator + y;
+            setBuilder.addPair(readName, 1, 1, 100);
+        }
+
+        tempDir = IOUtil.createTempDir("pds_test", "PositionalDownsampling");
+        tempSamFile = File.createTempFile("PositionalDownsampleSam", ".bam", tempDir);
+
+        BufferedLineReader bufferedLineReader = null;
+        try {
+            bufferedLineReader = new BufferedLineReader(new FileInputStream(dict));
+        } catch (FileNotFoundException e) {
+            e.printStackTrace();
+        }
+
+        final SAMTextHeaderCodec codec = new SAMTextHeaderCodec();
+        final SAMFileHeader header = codec.decode(bufferedLineReader, dict.toString());
+
+        readGroupRecord.setSample(sample);
+        readGroupRecord.setPlatform(platform);
+        readGroupRecord.setLibrary(library);
+
+        header.setSortOrder(SAMFileHeader.SortOrder.coordinate);
+        header.addReadGroup(readGroupRecord);
+
+        setBuilder.setHeader(header);
+
+        final SAMFileWriter writer = new SAMFileWriterFactory()
+                .setCreateIndex(true).makeBAMWriter(header, false, tempSamFile);
+
+        for (final SAMRecord record : setBuilder) {
+            writer.addAlignment(record);
+        }
+        writer.close();
+    }
+
+    @AfterTest
+    private void tearDown() {
+        IOUtil.deleteDirectoryTree(tempDir);
+    }
+
+    @Test //this is actually a test of SAMRecordSetBuilder
+    public void TestBuilder() {
+        final ValidateSamFile validateSamFile = new ValidateSamFile();
+
+        validateSamFile.INPUT = tempSamFile;
+        assertEquals(validateSamFile.doWork(), 0);
+    }
+
+    @DataProvider(name = "ValidArgumentsTestProvider")
+    public Object[][] ValidArgumentsTestProvider() {
+        final List<Object[]> objects = new ArrayList<Object[]>();
+        for (double i = 0.3; i <= 1; i += .1) {
+            final Object[] array = {i};
+            objects.add(array);
+        }
+        return objects.toArray(new Object[1][]);
+    }
+
+    // test removing some reads from a sparse, single tile bam
+    @Test(dataProvider = "ValidArgumentsTestProvider")
+    public void testDownsampleSingleTile(final double fraction) throws IOException {
+        testDownsampleWorker(tempSamFile, fraction);
+    }
+
+    public void testDownsampleWorker(final File samFile, final double fraction) throws IOException {
+
+        final File downsampled = File.createTempFile("PositionalDownsampleSam", ".bam", tempDir);
+        final String[] args = new String[]{
+                "INPUT=" + samFile.getAbsolutePath(),
+                "OUTPUT=" + downsampled.getAbsolutePath(),
+                "FRACTION=" + fraction,
+                "CREATE_INDEX=true"
+        };
+
+        // make sure results is successful
+        assertEquals(runPicardCommandLine(args), 0);
+
+        // make sure that the resulting BAM is valid.
+        final ValidateSamFile validateSamFile = new ValidateSamFile();
+
+        validateSamFile.INPUT = downsampled;
+        assertEquals(validateSamFile.doWork(), 0);
+
+        //make sure that the total number of record in the resulting file in in the ballpark:
+        assertGreaterThan(countSamTotalRecord(downsampled), fraction * .8 * countSamTotalRecord(samFile));
+        assertLessThan(countSamTotalRecord(downsampled), fraction * 1.2 * countSamTotalRecord(samFile));
+    }
+
+    private long countSamTotalRecord(final File samFile) {
+        final SamReader reader = SamReaderFactory.make().open(samFile);
+        assert reader.hasIndex();
+        long total = 0;
+
+        for (int i = 0; i < reader.getFileHeader().getSequenceDictionary().size(); i++) {
+            total += reader.indexing().getIndex().getMetaData(i).getAlignedRecordCount();
+            total += reader.indexing().getIndex().getMetaData(i).getUnalignedRecordCount();
+        }
+        return total;
+    }
+
+    @DataProvider(name="allowTwiceData")
+    public Object[][] allowTwiceData(){
+        return new Object[][]{{true},{false}};
+    }
+
+    // test that downsampling twice yields an error.
+    @Test(dataProvider = "allowTwiceData")
+    public void TestInvalidTwice(final boolean allowMultiple) throws IOException {
+        final File samFile = tempSamFile;
+        final File downsampled = File.createTempFile("PositionalDownsampleSam", ".bam", tempDir);
+        downsampled.deleteOnExit();
+        final double fraction = .1;
+        downsampled.deleteOnExit();
+        final String[] args1 = new String[]{
+                "INPUT=" + samFile.getAbsolutePath(),
+                "OUTPUT=" + downsampled.getAbsolutePath(),
+                "FRACTION=" + fraction
+        };
+        runPicardCommandLine(args1);
+
+        final File downsampledTwice = File.createTempFile("PositionalDownsampleSam", ".bam", tempDir);
+        downsampledTwice.deleteOnExit();
+
+        final List<String> args2 = new ArrayList<String>();
+
+        args2.add("INPUT=" + downsampled.getAbsolutePath());
+        args2.add("OUTPUT=" + downsampledTwice.getAbsolutePath());
+        args2.add("FRACTION=" + fraction);
+
+        if(allowMultiple) args2.add("ALLOW_MULTIPLE_DOWNSAMPLING_DESPITE_WARNINGS=true");
+
+        //should blow up due to bad inputs
+        if(allowMultiple)
+            runPicardCommandLine(args2);
+        else
+            try {
+                runPicardCommandLine(args2);
+                throw new PicardException("Should have thrown an error!!");
+            } catch (final PicardException ignored){
+
+            }
+    }
+
+    // test that program fails on p<0  or p>1
+    @DataProvider(name = "InvalidArgumentsTestProvider")
+    public Object[][] InvalidArgumentsTestProvider() {
+        return new Object[][]{{-1.0}, {-.00001}, {-5.0}, {1.00001}, {5.0}, {50.0}, {Double.MAX_VALUE}, {Double.POSITIVE_INFINITY}, {Double.NEGATIVE_INFINITY}};
+    }
+
+    @Test(dataProvider = "InvalidArgumentsTestProvider")
+    public void TestInvalidArguments(final double fraction) throws IOException {
+        final File samFile = tempSamFile;
+
+        final File downsampled = File.createTempFile("PositionalDownsampleSam", ".bam", tempDir);
+        downsampled.deleteOnExit();
+        final String[] args = new String[]{
+                "INPUT=" + samFile.getAbsolutePath(),
+                "OUTPUT=" + downsampled.getAbsolutePath(),
+                "FRACTION=" + fraction
+        };
+        //should blow up due to bad inputs
+        assert runPicardCommandLine(args) != 0;
+    }
+
+    // these fit in a TestNG.Utils class, but there isn't one in picard-public...
+    static public void assertGreaterThan(final double lhs, final double rhs) {
+        Assert.assertTrue(lhs > rhs, String.format("Expected inequality is not true: %g > %g", lhs, rhs));
+    }
+
+    static public void assertLessThan(final double lhs, final double rhs) {
+        Assert.assertTrue(lhs < rhs, String.format("Expected inequality is not true: %g < %g", lhs, rhs));
+    }
+
+}
\ No newline at end of file
diff --git a/src/tests/java/picard/sam/RevertSamTest.java b/src/tests/java/picard/sam/RevertSamTest.java
new file mode 100755
index 0000000..e6493fd
--- /dev/null
+++ b/src/tests/java/picard/sam/RevertSamTest.java
@@ -0,0 +1,178 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.sam;
+
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMReadGroupRecord;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.util.CloserUtil;
+import org.testng.Assert;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import picard.PicardException;
+import picard.cmdline.CommandLineProgramTest;
+
+import java.io.File;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: ktibbett
+ * Date: Jul 20, 2010
+ * Time: 10:27:58 AM
+ * To change this template use File | Settings | File Templates.
+ */
+public class RevertSamTest extends CommandLineProgramTest {
+    public static final String basicSamToRevert = "testdata/picard/sam/revert_sam_basic.sam";
+    public static final String negativeTestSamToRevert = "testdata/picard/sam/revert_sam_negative.sam";
+
+    private static final String revertedQualities  =
+        "11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111";
+
+    private static final String unmappedRead = "both_reads_present_only_first_aligns/2";
+
+    public String getCommandLineProgramName() {
+        return RevertSam.class.getSimpleName();
+    }
+
+    @Test(dataProvider="positiveTestData")
+    public void basicPositiveTests(final SAMFileHeader.SortOrder so, final boolean removeDuplicates, final boolean removeAlignmentInfo,
+                                   final boolean restoreOriginalQualities, final String sample, final String library,
+                                   final List<String> attributesToClear) throws Exception {
+
+        final File output = File.createTempFile("reverted", ".sam");
+        final RevertSam reverter = new RevertSam();
+        final String args[] = new String[5 + (so != null ? 1 : 0) + attributesToClear.size() + (sample != null ? 1 : 0) + (library != null ? 1 : 0)];
+        int index = 0;
+        args[index++] = "INPUT=" + basicSamToRevert;
+        args[index++] = "OUTPUT=" + output.getAbsolutePath();
+        if (so != null) {
+            args[index++] = "SORT_ORDER=" + so.name();
+        }
+        args[index++] = "REMOVE_DUPLICATE_INFORMATION=" + removeDuplicates;
+        args[index++] = "REMOVE_ALIGNMENT_INFORMATION=" + removeAlignmentInfo;
+        args[index++] = "RESTORE_ORIGINAL_QUALITIES=" + restoreOriginalQualities;
+        if (sample != null) {
+            args[index++] = "SAMPLE_ALIAS=" + sample;
+        }
+        if (library != null) {
+            args[index++] = "LIBRARY_NAME=" + library;
+        }
+        for (final String attr : attributesToClear) {
+            args[index++] = "ATTRIBUTE_TO_CLEAR=" + attr;
+        }
+        runPicardCommandLine(args);
+
+        final SamReader reader = SamReaderFactory.makeDefault().open(output);
+        final SAMFileHeader header = reader.getFileHeader();
+        Assert.assertEquals(header.getSortOrder(), SAMFileHeader.SortOrder.queryname);
+        Assert.assertEquals(header.getProgramRecords().size(), removeAlignmentInfo ? 0 : 1);
+        for (final SAMReadGroupRecord rg : header.getReadGroups()) {
+            if (sample != null) {
+                Assert.assertEquals(rg.getSample(), sample);
+            }
+            else {
+                Assert.assertEquals(rg.getSample(), "Hi,Mom!");
+            }
+            if (library != null) {
+                Assert.assertEquals(rg.getLibrary(), library);
+            }
+            else {
+                Assert.assertEquals(rg.getLibrary(), "my-library");
+            }
+        }
+        for (final SAMRecord rec : reader) {
+            if (removeDuplicates) {
+                Assert.assertFalse(rec.getDuplicateReadFlag(),
+                        "Duplicates should have been removed: " + rec.getReadName());
+            }
+
+            if (removeAlignmentInfo) {
+                Assert.assertTrue(rec.getReadUnmappedFlag(),
+                        "Alignment info should have been removed: " + rec.getReadName());
+            }
+
+            if (restoreOriginalQualities && !unmappedRead.equals(
+                    rec.getReadName() + "/" + (rec.getFirstOfPairFlag() ? "1" : "2"))) {
+
+                Assert.assertEquals(rec.getBaseQualityString(), revertedQualities);
+            } else {
+                Assert.assertNotSame(rec.getBaseQualityString(), revertedQualities);
+            }
+
+            for (final SAMRecord.SAMTagAndValue attr : rec.getAttributes()) {
+                if (removeAlignmentInfo || (!attr.tag.equals("PG") && !attr.tag.equals("NM")
+                        && !attr.tag.equals("MQ"))) {
+                    Assert.assertFalse(reverter.ATTRIBUTE_TO_CLEAR.contains(attr.tag),
+                            attr.tag + " should have been cleared.");
+                }
+            }
+        }
+        CloserUtil.close(reader);
+    }
+
+
+    @DataProvider(name="positiveTestData")
+    public Object[][] getPostitiveTestData() {
+        return new Object[][] {
+                {null, true, true, true, null, null, Collections.EMPTY_LIST},
+                {SAMFileHeader.SortOrder.queryname, true, true, true, "Hey,Dad!", null, Arrays.asList("XT")},
+                {null, false, true, false, "Hey,Dad!", "NewLibraryName", Arrays.asList("XT")},
+                {null, false, false, false, null, null, Collections.EMPTY_LIST}
+        };
+    }
+
+
+    @Test(dataProvider="negativeTestData", expectedExceptions = {PicardException.class})
+    public void basicNegativeTest(final String sample, final String library) throws Exception {
+
+        final File output = File.createTempFile("bad", ".sam");
+        final RevertSam reverter = new RevertSam();
+        final String args[] = new String[2 + (sample != null ? 1 : 0) + (library != null ? 1 : 0)];
+        int index = 0;
+        args[index++] = "INPUT=" + negativeTestSamToRevert;
+        args[index++] = "OUTPUT=" + output.getAbsolutePath();
+        if (sample != null) {
+            args[index++] = "SAMPLE_ALIAS=" + sample;
+        }
+        if (library != null) {
+            args[index++] = "LIBRARY_NAME=" + library;
+        }
+        runPicardCommandLine(args);
+        Assert.fail("Negative test should have thrown an exception and didn't");
+    }
+
+    @DataProvider(name="negativeTestData")
+    public Object[][] getNegativeTestData() {
+        return new Object[][] {
+                {"NewSample", null},
+                {null, "NewLibrary"},
+                {"NewSample", "NewLibrary"}
+        };
+    }
+}
diff --git a/src/tests/java/picard/sam/SamFileConverterTest.java b/src/tests/java/picard/sam/SamFileConverterTest.java
new file mode 100644
index 0000000..3628047
--- /dev/null
+++ b/src/tests/java/picard/sam/SamFileConverterTest.java
@@ -0,0 +1,100 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.sam;
+
+import org.testng.annotations.Test;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertTrue;
+
+public class SamFileConverterTest {
+
+    private static final File TEST_DATA_DIR = new File("testdata/picard/sam/SamFileConverterTest");
+    private static final File unmappedSam = new File(TEST_DATA_DIR, "unmapped.sam");
+    private static final File unmappedBam = new File(TEST_DATA_DIR, "unmapped.bam");
+    private static final File unmappedCram = new File(TEST_DATA_DIR, "unmapped.cram");
+
+    @Test
+    public void testSAMToBAM() {
+        convertFile(unmappedSam, unmappedBam, ".bam");
+    }
+
+    @Test
+    public void testSAMToCRAM() {
+        convertFile(unmappedSam, unmappedCram, ".cram");
+    }
+
+    @Test
+    public void testBAMToCRAM() {
+        convertFile(unmappedBam, unmappedCram, ".cram");
+    }
+
+    @Test
+    public void testBAMToSAM() {
+        convertFile(unmappedBam, unmappedSam, ".sam");
+    }
+
+    @Test
+    public void testCRAMToBAM() {
+        convertFile(unmappedCram, unmappedBam, ".bam");
+    }
+
+    @Test
+    public void testCRAMToSAM() {
+        convertFile(unmappedCram, unmappedSam, ".sam");
+    }
+
+
+    private void convertFile(final File inputFile, final File fileToCompare, final String extension) {
+        final SamFormatConverter samFormatConverter = new SamFormatConverter();
+        final List<File> samFiles = new ArrayList<File>();
+        final ValidateSamFile validateSamFile = new ValidateSamFile();
+        final CompareSAMs compareSAMs = new CompareSAMs();
+
+        samFormatConverter.INPUT = inputFile;
+        try {
+            samFormatConverter.OUTPUT = File.createTempFile("SamFileConverterTest." + inputFile.getName(), extension);
+        } catch (final IOException e) {
+            e.printStackTrace();
+        }
+        samFormatConverter.doWork();
+
+        validateSamFile.INPUT = samFormatConverter.OUTPUT;
+        assertEquals(validateSamFile.doWork(), 0);
+
+        samFiles.add(samFormatConverter.OUTPUT);
+        samFiles.add(fileToCompare);
+
+        compareSAMs.samFiles = samFiles;
+        compareSAMs.doWork();
+
+        assertTrue(compareSAMs.areEqual());
+    }
+}
diff --git a/src/tests/java/picard/sam/SamToFastqTest.java b/src/tests/java/picard/sam/SamToFastqTest.java
new file mode 100644
index 0000000..ade6447
--- /dev/null
+++ b/src/tests/java/picard/sam/SamToFastqTest.java
@@ -0,0 +1,432 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.sam;
+
+import htsjdk.samtools.SAMException;
+import htsjdk.samtools.SAMFormatException;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.fastq.FastqReader;
+import htsjdk.samtools.fastq.FastqRecord;
+import htsjdk.samtools.util.IOUtil;
+import org.testng.Assert;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import picard.cmdline.CommandLineProgramTest;
+import picard.PicardException;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * Tests for SamToFastq
+ */
+public class SamToFastqTest extends CommandLineProgramTest {
+    private static final File TEST_DATA_DIR = new File("testdata/picard/sam/bam2fastq/paired");
+    private static final String CLIPPING_TEST_DATA = "ok/clipping_test.sam";
+
+    public String getCommandLineProgramName() {
+        return SamToFastq.class.getSimpleName();
+    }
+
+    @DataProvider(name = "okFiles")
+    public Object[][] okFiles() {
+        return new Object[][] {
+                {"ok/sorted-pair.sam"}, // 5 sorted pairs (10 records) - mate1, mate2
+                {"ok/sorted-pair-no-rg.sam"}, // 5 sorted pairs (10 records) - mate1, mate2, no read group
+                {"ok/last-pair-mates-flipped.sam" }, // 4 pairs, :05 mate2, mate1
+                {"ok/first-mate-bof-last-mate-eof.sam"}, // :01 mate1, 4 pairs, :01 mate2
+        };
+    }
+
+
+    @DataProvider(name = "badFiles")
+    public Object[][] badFiles() {
+        return new Object[][] {
+            {"bad/unpaired-mate.sam"} // mate1 without its mate2
+        };
+    }
+
+    private void convertFile(final String [] args) {
+        Assert.assertEquals(runPicardCommandLine(args), 0);
+    }
+
+    @Test(dataProvider = "clippingTests")
+    public void testClipping(final String clippingAction, final String bases1_1, final String quals1_1, final String bases1_2, final String quals1_2,
+                             final String bases2_1, final String quals2_1, final String bases2_2, final String quals2_2, final String testName) throws IOException {
+        final File samFile = new File(TEST_DATA_DIR, CLIPPING_TEST_DATA) ;
+        final File f1 = File.createTempFile("clippingtest1", "fastq");
+        final File f2 = File.createTempFile("clippingtest2", "fastq");
+        f1.deleteOnExit();
+        f2.deleteOnExit();
+
+        if (clippingAction != null) {
+            convertFile(new String[]{
+                "INPUT="            + samFile.getAbsolutePath(),
+                "FASTQ="            + f1.getAbsolutePath(),
+                "SECOND_END_FASTQ=" + f2.getAbsolutePath(),
+                "CLIPPING_ACTION="  + clippingAction,
+                "CLIPPING_ATTRIBUTE=" + "XT"
+            });
+        } else {
+            convertFile(new String[]{
+                "INPUT="            + samFile.getAbsolutePath(),
+                "FASTQ="            + f1.getAbsolutePath(),
+                "SECOND_END_FASTQ=" + f2.getAbsolutePath(),
+            });
+        }
+
+        Iterator<FastqRecord> it = new FastqReader(f1).iterator();
+        FastqRecord first = it.next();
+        Assert.assertEquals(first.getReadString(), bases1_1, testName);
+        Assert.assertEquals(first.getBaseQualityString(), quals1_1, testName);
+        FastqRecord second = it.next();
+        Assert.assertEquals(second.getReadString(), bases1_2, testName);
+        Assert.assertEquals(second.getBaseQualityString(), quals1_2, testName);
+        it = new FastqReader(f2).iterator();
+        first = it.next();
+        Assert.assertEquals(first.getReadString(), bases2_1, testName);
+        Assert.assertEquals(first.getBaseQualityString(), quals2_1, testName);
+        second = it.next();
+        Assert.assertEquals(second.getReadString(), bases2_2, testName);
+        Assert.assertEquals(second.getBaseQualityString(), quals2_2, testName);
+    }
+
+    @DataProvider(name = "clippingTests")
+    public Object[][] clippingTests() {
+        return new Object[][] {
+            {null, "AAAAAAAAAA", "1111111111", "AAAAAAAAAA", "1111111111", "CCCCCCCCCC", "2222222222", "GGGGGGGGGG", "2222222222", "No clipping test"},
+            {"X",  "AAAAAAA",    "1111111",    "AAAAAA",     "111111",     "CCCCCCCC",   "22222222",   "GGGGGG",     "222222",     "Cut clipped bases test"},
+            {"N",  "AAAAAAANNN", "1111111111", "AAAAAANNNN", "1111111111", "CCCCCCCCNN", "2222222222", "GGGGGGNNNN", "2222222222", "Mask clipped bases test"},
+            {"2",  "AAAAAAAAAA", "1111111###", "AAAAAAAAAA", "111111####", "CCCCCCCCCC", "22222222##", "GGGGGGGGGG", "222222####", "Change clipped qualities test"}
+        };
+    }
+
+    @Test(dataProvider = "okFiles")
+    public void testOkFile(final String samFilename) throws IOException {
+        final File samFile = new File(TEST_DATA_DIR,samFilename);
+        final File pair1File = newTempFastqFile("pair1");
+        final File pair2File = newTempFastqFile("pair2");
+
+        convertFile(new String[]{
+              "INPUT=" + samFile.getAbsolutePath(),
+              "FASTQ=" + pair1File.getAbsolutePath(),
+              "SECOND_END_FASTQ=" + pair2File.getAbsolutePath()
+        });
+
+        // Check that paired fastq files are same size
+        final Set<String> outputHeaderSet1 = createFastqReadHeaderSet(pair1File);
+        final Set<String> outputHeaderSet2 = createFastqReadHeaderSet(pair2File);
+        Assert.assertEquals(outputHeaderSet1.size(), outputHeaderSet2.size());
+
+        // Create map of mate pairs from SAM records
+        final Map<String,MatePair> map = createSamMatePairsMap(samFile) ;
+        Assert.assertEquals(map.size(), outputHeaderSet2.size());
+
+        // Ensure that each mate of each pair in SAM file is in the correct fastq pair file
+        for (final Map.Entry<String,MatePair> entry : map.entrySet() ) {
+            final MatePair mpair = entry.getValue();
+            Assert.assertNotNull(mpair.mate1); // ensure we have two mates
+            Assert.assertNotNull(mpair.mate2);
+            Assert.assertEquals(mpair.mate1.getReadName(),mpair.mate2.getReadName());
+            final String readName = mpair.mate1.getReadName() ;
+            Assert.assertTrue(outputHeaderSet1.contains(readName+"/1")); // ensure mate is in correct file
+            Assert.assertTrue(outputHeaderSet2.contains(readName+"/2"));
+        }
+    }
+
+    @Test(dataProvider =  "okFiles")
+    public void testOkInterleavedFile(final String samFilename) throws IOException {
+        final File samFile = new File(TEST_DATA_DIR,samFilename);
+        final File pairFile = newTempFastqFile("pair");
+
+        convertFile(new String[]{
+                "INPUT=" + samFile.getAbsolutePath(),
+                "FASTQ=" + pairFile.getAbsolutePath(),
+                "INTERLEAVE=true"
+        });
+
+        final Set<String> outputHeaderSet = createFastqReadHeaderSet(pairFile);
+        // Create map of mate pairs from SAM records
+        final Map<String,MatePair> map = createSamMatePairsMap(samFile) ;
+        Assert.assertEquals(map.size() * 2, outputHeaderSet.size());
+
+        // Ensure that each mate of each pair in SAM file is in the correct fastq pair file
+        for (final Map.Entry<String,MatePair> entry : map.entrySet() ) {
+            final MatePair mpair = entry.getValue();
+            Assert.assertNotNull(mpair.mate1); // ensure we have two mates
+            Assert.assertNotNull(mpair.mate2);
+            Assert.assertEquals(mpair.mate1.getReadName(),mpair.mate2.getReadName());
+            final String readName = mpair.mate1.getReadName() ;
+            Assert.assertTrue(outputHeaderSet.contains(readName+"/1")); // ensure mate is in correct file
+            Assert.assertTrue(outputHeaderSet.contains(readName+"/2"));
+        }
+    }
+
+
+    @Test (dataProvider = "badFiles", expectedExceptions= SAMFormatException.class)
+    public void testBadFile(final String samFilename) throws IOException {
+        final File samFile = new File(TEST_DATA_DIR,samFilename);
+        final File pair1 = File.createTempFile("tt-pair1.", ".fastq");
+        final File pair2 = File.createTempFile("tt-pair2.", ".fastq");
+        pair1.deleteOnExit();
+        pair2.deleteOnExit();
+        convertFile(new String[]{
+              "INPUT=" + samFile.getAbsolutePath(),
+              "FASTQ=" + pair1.getAbsolutePath(),
+              "SECOND_END_FASTQ=" + pair2.getAbsolutePath()
+        });
+    }
+
+    @DataProvider(name = "okGroupedFiles")
+    public Object[][] okGroupedFiles() {
+        return new Object[][] {
+            {"ok/grouped-last-pair-mates-flipped.sam", null,  null,  new String[]{"rg1","rg2"}},
+        };
+    }
+
+
+    @DataProvider(name = "badGroupedFiles")
+    public Object[][] badGroupedFiles() {
+        return new Object[][] {
+            {"bad/grouped-unpaired-mate.sam", null,  null,  new String[]{"rg1.fastq","rg2.fastq"}}
+        };
+    }
+
+    @Test(dataProvider = "okGroupedFiles")
+    public void testOkGroupedFiles(final String samFilename, final String fastq, final String secondEndFastq,
+                                   final String [] groupFiles) throws IOException {
+        final File samFile = new File(TEST_DATA_DIR,samFilename);
+        final Map<String, Set<String>> outputSets = new HashMap<String, Set<String>>(groupFiles.length);
+
+        final String tmpDir = IOUtil.getDefaultTmpDir().getAbsolutePath() + "/";
+        final String [] args = new String[]{
+              "INPUT=" + samFile.getAbsolutePath(),
+              "OUTPUT_PER_RG=true",
+              "OUTPUT_DIR=" + tmpDir,
+        };
+        runPicardCommandLine(args);
+
+        File f1;
+        File f2;
+        String fname1;
+        String fname2;
+        String keyName1;
+        String keyName2;
+        Set<String> outputHeaderSet1;
+        Set<String> outputHeaderSet2;
+        for(final String groupPUName : groupFiles)
+        {
+            keyName1 = groupPUName + "_1";
+            keyName2 = groupPUName + "_2";
+            fname1 = tmpDir + "/" + keyName1 + ".fastq";
+            fname2 = tmpDir + "/" + keyName2 + ".fastq";
+            f1 = new File(fname1);
+            f2 = new File(fname2);
+            f1.deleteOnExit();
+            f2.deleteOnExit();
+            IOUtil.assertFileIsReadable(f1);
+            IOUtil.assertFileIsReadable(f2);
+
+            // Check that paired fastq files are same size and store them for later comparison
+            outputHeaderSet1 = createFastqReadHeaderSet(f1);
+            outputHeaderSet2 = createFastqReadHeaderSet(f2);
+            outputSets.put(keyName1 , outputHeaderSet1);
+            outputSets.put(keyName2, outputHeaderSet2);
+            Assert.assertEquals(outputHeaderSet1.size(), outputHeaderSet2.size());
+        }
+
+        // Create map of read groups and mate pairs from SAM records
+        final Map<String, Map<String,MatePair>> map = createPUPairsMap(samFile);
+
+        for(final Map.Entry<String, Map<String, MatePair>> groupEntry : map.entrySet()) {
+            // Ensure that for each group, each mate of each pair in the SAM file is in the correct fastq pair file
+            for (final Map.Entry<String,MatePair> entry : groupEntry.getValue().entrySet() ) {
+                final MatePair mpair = entry.getValue();
+                outputHeaderSet1 = outputSets.get(groupEntry.getKey() + "_1");
+                outputHeaderSet2 = outputSets.get(groupEntry.getKey() + "_2");
+
+                Assert.assertNotNull(mpair.mate1); // ensure we have two mates
+                Assert.assertNotNull(mpair.mate2);
+                Assert.assertEquals(mpair.mate1.getReadName(),mpair.mate2.getReadName());
+                final String readName = mpair.mate1.getReadName() ;
+                Assert.assertTrue(outputHeaderSet1.contains(readName+"/1")); // ensure mate is in correct file
+                Assert.assertTrue(outputHeaderSet2.contains(readName+"/2"));
+            }
+        }
+    }
+
+
+    @Test (dataProvider = "badGroupedFiles", expectedExceptions= SAMException.class)
+    public void testBadGroupedFile(final String samFilename, final String fastq, final String secondEndFastq,
+                                   final String [] groupFiles) throws IOException {
+        final File samFile = new File(TEST_DATA_DIR,samFilename);
+        final String tmpDir = IOUtil.getDefaultTmpDir().getAbsolutePath() + "/";
+        final String [] args = new String[]{
+              "INPUT=" + samFile.getAbsolutePath(),
+              "OUTPUT_PER_RG=true",
+              "OUTPUT_DIR=" + tmpDir,
+        };
+        runPicardCommandLine(args);
+
+        File f1;
+        File f2;
+        String fname1;
+        String fname2;
+        for(final String groupPUName : groupFiles)
+        {
+            fname1 = tmpDir + groupPUName + "_1.fastq";
+            fname2 = tmpDir + groupPUName + "_2.fastq";
+            f1 = new File(fname1);
+            f2 = new File(fname2);
+            f1.deleteOnExit();
+            f1.deleteOnExit();
+        }
+    }
+
+    @Test(dataProvider = "trimmedData")
+    public void testTrimming(final String samFilename, final int read1Trim,
+                             final int read1MaxBases, final int expectedRead1Length, final int read2Trim,
+                             final int read2MaxBases, final int expectedRead2Length) throws IOException {
+
+        final File samFile = new File(TEST_DATA_DIR, samFilename);
+        final File pair1File = newTempFastqFile("pair1");
+        final File pair2File = newTempFastqFile("pair2");
+        pair1File.deleteOnExit();
+        pair2File.deleteOnExit();
+
+        convertFile(new String[]{
+              "INPUT=" + samFile.getAbsolutePath(),
+              "FASTQ=" + pair1File.getAbsolutePath(),
+              "SECOND_END_FASTQ=" + pair2File.getAbsolutePath(),
+              "READ1_TRIM=" + read1Trim,
+              "READ1_MAX_BASES_TO_WRITE=" + read1MaxBases,
+              "READ2_TRIM=" + read2Trim,
+              "READ2_MAX_BASES_TO_WRITE=" + read2MaxBases
+        });
+
+        for (final FastqRecord first : new FastqReader(pair1File)) {
+            Assert.assertEquals(first.getReadString().length(), expectedRead1Length, "Incorrect read length");
+            Assert.assertEquals(first.getBaseQualityString().length(), expectedRead1Length, "Incorrect quality string length");
+        }
+        for (final FastqRecord second : new FastqReader(pair2File)) {
+            Assert.assertEquals(second.getReadString().length(), expectedRead2Length, "Incorrect read length");
+            Assert.assertEquals(second.getBaseQualityString().length(), expectedRead2Length, "Incorrect quality string length");
+        }
+    }
+
+    @DataProvider(name = "trimmedData")
+    public Object[][] trimmedData() {
+        return new Object[][] {
+            // There are 13 bases in each of these reads
+            {"ok/sorted-pair.sam", 6, 7, 7, 5, 8, 8}, // exact matches for everything
+            {"ok/sorted-pair.sam", 7, 7, 6, 3, 8, 8}  // fewer or more bases
+        };
+    }
+
+    private Set<String> createFastqReadHeaderSet(final File file) {
+        final Set<String> set = new HashSet<String>();
+        final FastqReader freader = new FastqReader(file);
+        while (freader.hasNext()) {
+            final FastqRecord frec = freader.next();
+            set.add(frec.getReadHeader());
+        }
+        return set ;
+    }
+
+    private Map<String,MatePair> createSamMatePairsMap(final File samFile) throws IOException {
+        IOUtil.assertFileIsReadable(samFile);
+        final SamReader reader = SamReaderFactory.makeDefault().open(samFile);
+
+        final Map<String,MatePair> map = new LinkedHashMap<String,MatePair>();
+        for (final SAMRecord record : reader ) {
+            MatePair mpair = map.get(record.getReadName());
+            if (mpair == null) {
+                 mpair = new MatePair();
+                 map.put(record.getReadName(), mpair);
+            }
+            mpair.add(record);
+        }
+        reader.close();
+        return map;
+    }
+
+
+    private Map<String, Map<String, MatePair>> createPUPairsMap(final File samFile) throws IOException {
+        IOUtil.assertFileIsReadable(samFile);
+        final SamReader reader = SamReaderFactory.makeDefault().open(samFile);
+        final Map<String, Map<String, MatePair>> map = new LinkedHashMap<String, Map<String,MatePair>>();
+
+        Map<String,MatePair> curFileMap;
+        for (final SAMRecord record : reader ) {
+            final String platformUnit = record.getReadGroup().getPlatformUnit();
+            curFileMap = map.get(platformUnit);
+            if(curFileMap == null)
+            {
+                curFileMap = new LinkedHashMap<String, MatePair>();
+                map.put(platformUnit, curFileMap);
+            }
+
+            MatePair mpair = curFileMap.get(record.getReadName());
+            if (mpair == null) {
+                 mpair = new MatePair();
+                 curFileMap.put(record.getReadName(), mpair);
+            }
+            mpair.add(record);
+        }
+        reader.close();
+        return map;
+    }
+
+    class MatePair {
+        SAMRecord mate1 ;
+        SAMRecord mate2 ;
+        void add(final SAMRecord record) {
+            if (!record.getReadPairedFlag()) throw new PicardException("Record "+record.getReadName()+" is not paired");
+            if (record.getFirstOfPairFlag()) { 
+                if (mate1 != null) throw new PicardException("Mate 1 already set for record: "+record.getReadName());
+                mate1 = record ;
+            }
+            else if (record.getSecondOfPairFlag()) { 
+                if (mate2 != null) throw new PicardException("Mate 2 already set for record: "+record.getReadName());
+                mate2 = record ;
+            }
+            else throw new PicardException("Neither FirstOfPairFlag or SecondOfPairFlag is set for a paired record");
+        }
+    }
+
+    private File newTempFastqFile(final String filename) throws IOException {
+        if(filename == null) return null;
+        final File file = File.createTempFile(filename,".fastq");
+        file.deleteOnExit();
+        return file; 
+    }
+}
diff --git a/src/tests/java/picard/sam/SplitSamByLibraryTest.java b/src/tests/java/picard/sam/SplitSamByLibraryTest.java
new file mode 100755
index 0000000..67ec32b
--- /dev/null
+++ b/src/tests/java/picard/sam/SplitSamByLibraryTest.java
@@ -0,0 +1,112 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.sam;
+
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.util.CloserUtil;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+import java.io.File;
+import java.util.Iterator;
+
+/**
+ * Basic positive and negative tests for SplitSamByLibrary command-line program
+ *
+ * @author ktibbett at broadinstitute.org
+ */
+public class SplitSamByLibraryTest {
+
+    @Test
+    public void testNoLibrarySpecified() {
+        SplitSamByLibrary splitter = new SplitSamByLibrary();
+        splitter.INPUT = new File("testdata/picard/sam/invalid_coord_sort_order.sam");
+        Assert.assertEquals(splitter.doWork(), SplitSamByLibrary.NO_LIBRARIES_SPECIFIED_IN_HEADER,
+                "SAM file with no libraries should failed but didn't.");
+
+    }
+
+    @Test
+    public void basicPositiveTest() {
+        SplitSamByLibrary splitter = new SplitSamByLibrary();
+        splitter.INPUT = new File("testdata/picard/sam/split_test.sam");
+        Assert.assertEquals(splitter.doWork(), 0, "SAM file split should have succeeded but didn't.");
+
+        File f = new File("unknown.sam");
+        Assert.assertTrue(f.exists(), "uknown.sam should exist but doesn't");
+        Assert.assertEquals(countReads(f), 2, "unknown.sam has the wrong number of reads");
+        f.delete();
+
+        f = new File("lib-1.sam");
+        Assert.assertTrue(f.exists(), "lib-1.sam should exist but doesn't");
+        Assert.assertEquals(countReads(f), 6, "lib-1.sam has the wrong number of reads");
+        f.delete();
+
+        f = new File("lib-2.sam");
+        Assert.assertFalse(f.exists(), "lib-2.sam should not exist but does");
+        if (f.exists()) f.delete();
+
+        f = new File("lib-3.sam");
+        Assert.assertTrue(f.exists(), "lib-3.sam should exist but doesn't");
+        Assert.assertEquals(countReads(f), 2, "lib-3.sam has the wrong number of reads");
+        f.delete();
+
+    }
+
+    @Test
+    public void testNoUnknownFile() {
+        SplitSamByLibrary splitter = new SplitSamByLibrary();
+        splitter.INPUT = new File("testdata/picard/sam/split_test2.sam");
+        Assert.assertEquals(splitter.doWork(), 0, "SAM file split should have succeeded but didn't.");
+
+        // The unknown file should exist and have two reads
+        File f = new File("unknown.sam");
+        Assert.assertFalse(f.exists(), "uknown.sam should not exist but does");
+        if (f.exists()) f.delete();
+
+        f = new File("lib-1.sam");
+        Assert.assertTrue(f.exists(), "lib-1.sam should exist but doesn't");
+        Assert.assertEquals(countReads(f), 4, "lib-1.sam has the wrong number of reads");
+        f.delete();
+
+        f = new File("lib-3.sam");
+        Assert.assertTrue(f.exists(), "lib-3.sam should exist but doesn't");
+        Assert.assertEquals(countReads(f), 2, "lib-3.sam has the wrong number of reads");
+        f.delete();
+
+    }
+
+    private int countReads(File samFile) {
+        SamReader reader = SamReaderFactory.makeDefault().open(samFile);
+        int count = 0;
+        for (Iterator it = reader.iterator(); it.hasNext(); ) {
+            it.next();
+            count++;
+        }
+        CloserUtil.close(reader);
+        return count;
+
+    }
+}
diff --git a/src/tests/java/picard/sam/ViewSamTest.java b/src/tests/java/picard/sam/ViewSamTest.java
new file mode 100644
index 0000000..5712f4c
--- /dev/null
+++ b/src/tests/java/picard/sam/ViewSamTest.java
@@ -0,0 +1,136 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2012 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.sam;
+
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.util.AsciiWriter;
+import htsjdk.samtools.util.BufferedLineReader;
+import htsjdk.samtools.util.Interval;
+import htsjdk.samtools.util.IntervalList;
+import htsjdk.samtools.util.LineReader;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+import picard.cmdline.CommandLineProgramTest;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.PrintStream;
+import java.util.List;
+
+public class ViewSamTest extends CommandLineProgramTest {
+    @Override
+    public String getCommandLineProgramName() {
+        return ViewSam.class.getSimpleName();
+    }
+
+    /**
+     * Confirm that ViewSam retains whatever version number was in the input header.
+     */
+    @Test
+    public void testHeaderVersion() throws Exception {
+        final String oldVersionHeader = "@HD\tVN:1.3\tSO:unsorted";
+        final File inputSam = File.createTempFile("ViewSamTest.input.", ".sam");
+        inputSam.deleteOnExit();
+        final AsciiWriter writer = new AsciiWriter(new FileOutputStream(inputSam));
+        writer.write(oldVersionHeader);
+        writer.write("\n");
+        writer.close();
+        final File viewSamOutputFile = File.createTempFile("ViewSamTest.output.", ".sam");
+        viewSamOutputFile.deleteOnExit();
+
+        final ViewSam viewSam = new ViewSam();
+        viewSam.INPUT = inputSam.getAbsolutePath();
+
+        // create a print stream to this file
+        final PrintStream viewSamPrintStream = new PrintStream(viewSamOutputFile);
+        // make sure the command line call exited successfully
+        Assert.assertEquals(viewSam.writeSamText(viewSamPrintStream), 0);
+        viewSamPrintStream.close();
+
+        final LineReader viewSamInputReader = new BufferedLineReader(new FileInputStream(viewSamOutputFile));
+        Assert.assertEquals(viewSamInputReader.readLine(), oldVersionHeader);
+    }
+
+    /**
+     * Confirm that ViewSam only outputs records that overlap intervals in a provided interval file.
+     */
+    @Test
+    public void testIntervals() throws Exception {
+        // a SAM file designed to test intervals against
+        final File inputSam = new File("testdata/picard/sam/viewsam_intervals_test.sam");
+        // an interval file containing the intervals to run against the SAM
+        final File inputIntervalsFile = new File("testdata/picard/sam/viewsam_intervals_test.interval_list");
+
+        // create temp output file that ViewSam call get written to
+        final File viewSamOutputFile = File.createTempFile("ViewSamTest.output.", ".sam");
+        viewSamOutputFile.deleteOnExit();
+
+        final ViewSam viewSam = new ViewSam();
+        viewSam.INPUT = inputSam.getAbsolutePath();
+        viewSam.INTERVAL_LIST = inputIntervalsFile;
+
+        // create a print stream to this file
+        final PrintStream viewSamPrintStream = new PrintStream(viewSamOutputFile);
+        // make sure the command line call exited successfully
+        Assert.assertEquals(viewSam.writeSamText(viewSamPrintStream), 0);
+        viewSamPrintStream.close();
+
+        // load the interval file
+        final IntervalList inputIntervalsList = IntervalList.fromFile(inputIntervalsFile);
+        // ViewSam internally utilizes uniqued intervals, so we will compare to the same
+        final List<Interval> intervals = inputIntervalsList.uniqued().getIntervals();
+
+        // make a reader that is not using intervals to load the output file we wrote that
+        // was written by the call to ViewSam with the given interval file.  This will give us
+        // the "filtered" file that we can compare to the intervals and ensure that only
+        // overlapped records were written
+        final SamReader samReader = SamReaderFactory.makeDefault().open(viewSamOutputFile);
+
+        // make sure the intervals file caused at least one match to be found
+        boolean foundMatches = false;
+
+        for (final SAMRecord samRecord : samReader) {
+            // make an interval representing this SAM record
+            final Interval samRecordInterval = new Interval(samRecord.getContig(), samRecord.getStart(), samRecord.getEnd());
+            // go through and look to see whether this SAM interval overlaps a filtering interval
+            boolean samRecordIntervalOverlaps = false;
+            for (final Interval interval : intervals) {
+                if (interval.intersects(samRecordInterval)) {
+                    samRecordIntervalOverlaps = true;
+                    // mark that we have found at least one SAM record that overlaps an interval
+                    foundMatches = true;
+                    break;
+                }
+            }
+            // if this SAM record does not overlap an interval, it should not have been written
+            Assert.assertTrue(samRecordIntervalOverlaps, "SAM record written out was not overlapped by an interval.");
+        }
+
+        // we should have at least one SAM record written to ensure interval filtering worked correctly
+        Assert.assertTrue(foundMatches, "No SAM records overlapped the given intervals.");
+    }
+}
diff --git a/src/tests/java/picard/sam/markduplicates/AbstractMarkDuplicatesCommandLineProgramTest.java b/src/tests/java/picard/sam/markduplicates/AbstractMarkDuplicatesCommandLineProgramTest.java
new file mode 100644
index 0000000..9b5d65d
--- /dev/null
+++ b/src/tests/java/picard/sam/markduplicates/AbstractMarkDuplicatesCommandLineProgramTest.java
@@ -0,0 +1,543 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.sam.markduplicates;
+
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.util.CloseableIterator;
+import htsjdk.samtools.util.CloserUtil;
+import org.testng.annotations.Test;
+
+import java.io.File;
+
+/**
+ * This class defines the individual test cases to run.  The actual running of the test is done
+ * by AbstractMarkDuplicatesCommandLineProgramTester or children thereof (see getTester).
+ */
+public abstract class AbstractMarkDuplicatesCommandLineProgramTest {
+
+    protected abstract AbstractMarkDuplicatesCommandLineProgramTester getTester();
+
+    protected final static int DEFAULT_BASE_QUALITY = 10;
+
+    @Test
+    public void testSingleUnmappedFragment() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.addUnmappedFragment(-1, DEFAULT_BASE_QUALITY);
+        tester.runTest();
+    }
+
+    @Test
+    public void testTwoUnmappedFragments() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.addUnmappedFragment(-1, DEFAULT_BASE_QUALITY);
+        tester.addUnmappedFragment(-1, DEFAULT_BASE_QUALITY);
+        tester.runTest();
+    }
+
+    @Test
+    public void testSingleUnmappedPair() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.addUnmappedPair(-1, DEFAULT_BASE_QUALITY);
+        tester.runTest();
+    }
+
+    @Test
+    public void testSingleMappedFragment() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.addMappedFragment(1, 1, false, DEFAULT_BASE_QUALITY);
+        tester.runTest();
+    }
+
+    @Test
+    public void testTwoMappedFragments() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.addMappedFragment(0, 1, false, DEFAULT_BASE_QUALITY);
+        tester.addMappedFragment(0, 1, true, DEFAULT_BASE_QUALITY); // duplicate!!!
+        tester.runTest();
+    }
+
+    @Test
+    public void testSingleMappedPair() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.addMappedPair(1, 1, 100, false, false, DEFAULT_BASE_QUALITY);
+        tester.runTest();
+    }
+
+    @Test
+    public void testSingleMappedFragmentAndSingleMappedPair() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.addMappedFragment(1, 1, true, DEFAULT_BASE_QUALITY); // duplicate!!!
+        tester.addMappedPair(1, 1, 100, false, false, DEFAULT_BASE_QUALITY);
+        tester.runTest();
+    }
+
+    @Test
+    public void testTwoMappedPairs() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.addMappedPair(1, 1, 100, false, false, DEFAULT_BASE_QUALITY);
+        tester.addMappedPair(1, 1, 100, true, true, DEFAULT_BASE_QUALITY); // duplicate!!!
+        tester.runTest();
+    }
+
+    @Test
+    public void testThreeMappedPairs() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.addMappedPair(1, 1, 100, false, false, DEFAULT_BASE_QUALITY);
+        tester.addMappedPair(1, 1, 100, true, true, DEFAULT_BASE_QUALITY); // duplicate!!!
+        tester.addMappedPair(1, 1, 100, true, true, DEFAULT_BASE_QUALITY); // duplicate!!!
+        tester.runTest();
+    }
+
+    @Test
+    public void testSingleMappedFragmentAndTwoMappedPairs() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.addMappedFragment(1, 1, true, DEFAULT_BASE_QUALITY); // duplicate!!!
+        tester.addMappedPair(1, 1, 100, false, false, DEFAULT_BASE_QUALITY);
+        tester.addMappedPair(1, 1, 100, true, true, DEFAULT_BASE_QUALITY); // duplicate!!!
+        tester.runTest();
+    }
+
+    @Test
+    public void testTwoMappedPairsAndTerminalUnmappedFragment() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.addMappedPair(1, 1, 100, false, false, DEFAULT_BASE_QUALITY);
+        tester.addMappedPair(1, 1, 100, true, true, DEFAULT_BASE_QUALITY); // duplicate!!!
+        tester.addUnmappedFragment(-1, DEFAULT_BASE_QUALITY); // unmapped fragment at end of file
+        tester.runTest();
+    }
+    
+    @Test
+    public void testTwoMappedPairsAndTerminalUnmappedPair() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.addMappedPair(1, 1, 100, false, false, DEFAULT_BASE_QUALITY);
+        tester.addMappedPair(1, 1, 100, true, true, DEFAULT_BASE_QUALITY); // duplicate!!!
+        tester.addUnmappedPair(-1, DEFAULT_BASE_QUALITY); // unmapped pair at end of file
+        tester.runTest();
+    }
+
+    @Test
+    public void testOpticalDuplicateFinding() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+
+        // explicitly creating 1 expected optical duplicate pair
+        tester.setExpectedOpticalDuplicate(1);
+
+        // pass in the read names manually, in order to control duplicates vs optical duplicates
+        tester.addMatePair("READ0:1:1:1:1", 1, 1, 100, false, false, false, false, "50M", "50M", false, true, false,
+                           false, false, DEFAULT_BASE_QUALITY); // non-duplicate mapped pair to start
+        tester.addMatePair("READ1:1:1:1:300", 1, 1, 100, false, false, true, true, "50M", "50M", false, true, false,
+                           false, false, DEFAULT_BASE_QUALITY); // duplicate pair, NOT optical duplicate (delta-Y > 100)
+        tester.addMatePair("READ2:1:1:1:50", 1, 1, 100, false, false, true, true, "50M", "50M", false, true, false,
+                           false, false, DEFAULT_BASE_QUALITY); // duplicate pair, expected optical duplicate (delta-X and delta-Y < 100)
+        tester.runTest();
+    }
+
+    @Test
+    public void testOpticalDuplicateClusterSamePositionNoOpticalDuplicates() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.setExpectedOpticalDuplicate(0);
+        tester.addMatePair("RUNID:7:1203:2886:82292", 1, 485253, 485253, false, false, true, true, "42M59S", "59S42M", false, true, false, false, false, DEFAULT_BASE_QUALITY);
+        tester.addMatePair("RUNID:7:1203:2884:16834", 1, 485253, 485253, false, false, false, false, "59S42M", "42M59S", true, false, false, false, false, DEFAULT_BASE_QUALITY);
+        tester.runTest();
+    }
+    
+    @Test
+    public void testOpticalDuplicateClusterSamePositionNoOpticalDuplicatesWithinPixelDistance() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.setExpectedOpticalDuplicate(0);
+        tester.addMatePair("RUNID:7:1203:2886:16834", 1, 485253, 485253, false, false, true, true, "42M59S", "59S42M", false, true, false, false, false, DEFAULT_BASE_QUALITY);
+        tester.addMatePair("RUNID:7:1203:2884:16835", 1, 485253, 485253, false, false, false, false, "59S42M", "42M59S", true, false, false, false, false, DEFAULT_BASE_QUALITY);
+        tester.runTest();
+    }
+
+    @Test
+    public void testOpticalDuplicateClusterSamePositionOneOpticalDuplicatesWithinPixelDistance() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.setExpectedOpticalDuplicate(1);
+        tester.addMatePair("RUNID:7:1203:2886:16834", 1, 485253, 485253, false, false, true, true, "45M", "45M", false, true, false, false, false, DEFAULT_BASE_QUALITY);
+        tester.addMatePair("RUNID:7:1203:2884:16835", 1, 485253, 485253, false, false, false, false, "45M", "45M", false, true, false, false, false, DEFAULT_BASE_QUALITY);
+        tester.runTest();
+    }
+
+    @Test
+    public void testOpticalDuplicateClusterOneEndSamePositionOneCluster() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.setExpectedOpticalDuplicate(1);
+        tester.addMatePair("RUNID:7:2205:17939:39728", 1, 485328, 485312, false, false, false, false, "55M46S", "30S71M", false, true, false, false, false, DEFAULT_BASE_QUALITY);
+        tester.addMatePair("RUNID:7:2205:17949:39745", 1, 485328, 485328, false, false, true, true, "55M46S", "46S55M", false, true, false, false, false, DEFAULT_BASE_QUALITY);
+        tester.runTest();
+    }
+
+    @Test
+    public void testTwoMappedPairsAndMappedSecondaryFragment() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.addMappedPair(1, 1, 100, false, false, DEFAULT_BASE_QUALITY);
+        tester.addMappedPair(1, 1, 100, true, true, DEFAULT_BASE_QUALITY); // duplicate!!!
+        tester.addMappedFragment(1, 200, false, DEFAULT_BASE_QUALITY, true); // mapped non-primary fragment
+        tester.runTest();
+    }
+
+    @Test
+    public void testMappedFragmentAndMappedPairFirstOfPairNonPrimary() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.addMappedFragment(1, 1, false,DEFAULT_BASE_QUALITY);
+        tester.addMatePair(1, 200, 0, false, true, false, false, "54M22S", null, false, false, true, true, false, DEFAULT_BASE_QUALITY);
+        tester.runTest();
+    }
+
+    @Test
+    public void testTwoMappedPairsMatesSoftClipped() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.addMappedPair(1, 10022, 10051, false, false, "76M", "8S68M", false, true, false, DEFAULT_BASE_QUALITY);
+        tester.addMappedPair(1, 10022, 10063, false, false, "76M", "5S71M", false, true, false, DEFAULT_BASE_QUALITY);
+        tester.runTest();
+    }
+
+    @Test
+    public void testTwoMappedPairsWithSoftClipping() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        // NB: no duplicates
+        // 5'1: 2, 5'2:46+73M=118
+        // 5'1: 2, 5'2:51+68M=118
+        tester.addMappedPair(1, 2, 46, false, false, "6S42M28S", "3S73M", false, DEFAULT_BASE_QUALITY);
+        tester.addMappedPair(1, 2, 51, true, true, "6S42M28S", "8S68M", false, DEFAULT_BASE_QUALITY);
+        tester.runTest();
+    }
+
+    @Test
+    public void testTwoMappedPairsWithSoftClippingFirstOfPairOnlyNoMateCigar() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.setNoMateCigars(true);
+        // NB: no duplicates
+        // 5'1: 2, 5'2:46+73M=118
+        // 5'1: 2, 5'2:51+68M=118
+        tester.addMappedPair(1, 12, 46, false, false, "6S42M28S", null, true, DEFAULT_BASE_QUALITY); // only add the first one
+        tester.addMappedPair(1, 12, 51, false, false, "6S42M28S", null, true, DEFAULT_BASE_QUALITY); // only add the first one
+        tester.runTest();
+    }
+
+    @Test
+    public void testTwoMappedPairsWithSoftClippingBoth() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        // mapped reference length: 73 + 42 = 115
+        tester.addMappedPair(1, 10046, 10002, true, true, "3S73M", "6S42M28S", true, false, false, DEFAULT_BASE_QUALITY);
+        // mapped reference length: 68 + 48 = 116
+        tester.addMappedPair(1, 10051, 10002, false, false, "8S68M", "6S48M22S", true, false, false, DEFAULT_BASE_QUALITY);
+        tester.runTest();
+    }
+    
+    @Test
+    public void testMatePairSecondUnmapped() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.addMatePair(1, 10049, 10049, false, true, false, false, "11M2I63M", null, false, false, false, false, false, DEFAULT_BASE_QUALITY);   // neither are duplicates
+        tester.runTest();
+    }
+
+    @Test
+    public void testMatePairFirstUnmapped() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.addMatePair(1, 10056, 10056, true, false, false, false, null, "54M22S", false, false, false, false, false, DEFAULT_BASE_QUALITY);    // neither are duplicates
+        tester.runTest();
+    }
+
+    @Test
+    public void testMappedFragmentAndMatePairSecondUnmapped() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.addMatePair(1, 10049, 10049, false, true, false, false, "11M2I63M", null, false, false, false, false, false, DEFAULT_BASE_QUALITY);
+        tester.addMappedFragment(1, 10049, true, DEFAULT_BASE_QUALITY); // duplicate
+        tester.runTest();
+    }
+    
+    @Test
+    public void testMappedFragmentAndMatePairFirstUnmapped() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.addMatePair(1, 10049, 10049, true, false, false, false, null, "11M2I63M", false, false, false, false, false, DEFAULT_BASE_QUALITY);
+        tester.addMappedFragment(1, 10049, true, DEFAULT_BASE_QUALITY); // duplicate
+        tester.runTest();
+    }
+
+    @Test
+    public void testMappedPairAndMatePairSecondUnmapped() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.addMatePair(1, 10040, 10040, false, true, true, false, "76M", null, false, false, false, false, false, DEFAULT_BASE_QUALITY); // second a duplicate,
+        // second end unmapped
+        tester.addMappedPair(1, 10189, 10040, false, false, "41S35M", "65M11S", true, false, false, DEFAULT_BASE_QUALITY); // mapped OK
+        tester.runTest();
+    }
+
+    @Test
+    public void testMappedPairAndMatePairFirstUnmapped() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.addMatePair(1, 10040, 10040, true, false, false, true,  null, "76M", false, false, false, false, false, DEFAULT_BASE_QUALITY); // first a duplicate,
+        // first end unmapped
+        tester.addMappedPair(1, 10189, 10040, false, false, "41S35M", "65M11S", true, false, false, DEFAULT_BASE_QUALITY); // mapped OK
+        tester.runTest();
+    }
+
+    // TODO: fails on MarkDuplicatesWithMateCigar
+    @Test
+    public void testMappedPairAndMatePairFirstOppositeStrandSecondUnmapped() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        // first end mapped OK -, second end unmapped
+        tester.addMatePair(1, 484071, 484071, false, true, false, false,  "66S35M", null, true, false, false, false, false, DEFAULT_BASE_QUALITY);
+        // mapped OK +/-
+        tester.addMappedPair(1, 484105, 484075, false, false, "35M66S", "30S71M", false, true, false, DEFAULT_BASE_QUALITY);
+        tester.runTest();
+    }
+
+
+    @Test
+    public void testMappedPairAndMappedFragmentAndMatePairSecondUnmapped() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.addMatePair(1, 10040, 10040, false, true, true, false, "76M", null, false, false, false, false, false, DEFAULT_BASE_QUALITY); // first a duplicate,
+        // second end unmapped
+        tester.addMappedPair(1, 10189, 10040, false, false, "41S35M", "65M11S", true, false, false, DEFAULT_BASE_QUALITY); // mapped OK
+        tester.addMappedFragment(1, 10040, true, DEFAULT_BASE_QUALITY); // duplicate
+        tester.runTest();
+    }
+
+    @Test
+    public void testMappedPairAndMappedFragmentAndMatePairFirstUnmapped() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.addMatePair(1, 10040, 10040, true, false, false, true, null, "76M", false, false, false, false, false, DEFAULT_BASE_QUALITY); // first a duplicate,
+        // first end unmapped
+        tester.addMappedPair(1, 10189, 10040, false, false, "41S35M", "65M11S", true, false, false, DEFAULT_BASE_QUALITY); // mapped OK
+        tester.addMappedFragment(1, 10040, true, DEFAULT_BASE_QUALITY); // duplicate
+        tester.runTest();
+    }
+
+    @Test
+    public void testTwoMappedPairsWithOppositeOrientations() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.addMappedPair(1, 10182, 10038, true, true, "32S44M", "66M10S", true, false, false, DEFAULT_BASE_QUALITY); // -/+
+        tester.addMappedPair(1, 10038, 10182, false, false, "70M6S", "32S44M", false, true, false, DEFAULT_BASE_QUALITY); // +/-, both are duplicates
+        tester.runTest();
+    }
+
+    @Test
+    public void testTwoMappedPairsWithOppositeOrientationsNumberTwo() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.addMappedPair(1, 10038, 10182, false, false, "70M6S", "32S44M", false, true, false, DEFAULT_BASE_QUALITY); // +/-, both are duplicates
+        tester.addMappedPair(1, 10182, 10038, true, true, "32S44M", "66M10S", true, false, false, DEFAULT_BASE_QUALITY); // -/+
+        tester.runTest();
+    }
+    
+    @Test
+    public void testThreeMappedPairsWithMatchingSecondMate() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        // Read0 and Read2 are duplicates
+        // 10181+41=10220, 10058
+        tester.addMappedPair(1, 10181, 10058, false, false, "41S35M", "47M29S", true, false, false, DEFAULT_BASE_QUALITY); // -/+
+        // 10181+37=10216, 10058
+        tester.addMappedPair(1, 10181, 10058, true, true, "37S39M", "44M32S", true, false, false, DEFAULT_BASE_QUALITY); // -/+
+        // 10180+36=10216, 10058
+        tester.addMappedPair(1, 10180, 10058, false, false, "36S40M", "50M26S", true, false, false, DEFAULT_BASE_QUALITY); // -/+, both are duplicates
+        tester.runTest();
+    }
+    
+    @Test
+    public void testMappedPairWithSamePosition() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.addMappedPair(1, 4914, 4914, false, false, "37M39S", "73M3S", false, false, false, DEFAULT_BASE_QUALITY); // +/+
+        tester.runTest();
+    }
+
+    @Test
+    public void testMappedPairWithSamePositionSameCigar() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.addMappedPair(1, 4914, 4914, false, false, "37M39S", "37M39S", false, false, false, DEFAULT_BASE_QUALITY); // +/+
+        tester.runTest();
+    }
+
+    @Test
+    public void testTwoMappedPairWithSamePosition() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.addMappedPair(0, 5604914, 5604914, false, false, "37M39S", "73M3S", false, false, false, DEFAULT_BASE_QUALITY); // +/+
+        tester.addMappedPair(0, 5604914, 5604914, true, true, "37M39S", "73M3S", false, false, false, DEFAULT_BASE_QUALITY); // +/+
+        tester.runTest();
+    }
+
+    @Test
+    public void testTwoMappedPairWithSamePositionDifferentStrands() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.addMappedPair(0, 5604914, 5604914, false, false, "50M", "50M", true, false, false, DEFAULT_BASE_QUALITY); // +/-
+        tester.addMappedPair(0, 5604914, 5604914, true, true, "50M", "50M", false, true, false, DEFAULT_BASE_QUALITY); // -/+
+        tester.runTest();
+    }
+
+    @Test
+    public void testTwoMappedPairWithSamePositionDifferentStrands2() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.addMappedPair(0, 5604914, 5604915, false, false, "50M", "50M", true, false, false, DEFAULT_BASE_QUALITY); // +/-
+        tester.addMappedPair(0, 5604915, 5604914, true, true, "50M", "50M", false, true, false, DEFAULT_BASE_QUALITY); // -/+
+        tester.runTest();
+    }
+
+    @Test
+    public void testMappedPairWithFirstEndSamePositionAndOther() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.addMappedPair(0, 5604914, 5605914, false, false, "37M39S", "73M3S", false, false, false, DEFAULT_BASE_QUALITY); // +/+
+        tester.addMappedPair(0, 5604914, 5604914, false, false, "37M39S", "73M3S", false, false, false, DEFAULT_BASE_QUALITY); // +/+
+        tester.runTest();
+    }
+
+    @Test
+    public void testTwoGroupsOnDifferentChromosomesOfTwoFragments() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.addMappedFragment(0, 1, false, DEFAULT_BASE_QUALITY);
+        tester.addMappedFragment(0, 1, true, DEFAULT_BASE_QUALITY); // duplicate!!!
+        tester.addMappedFragment(1, 1, false, DEFAULT_BASE_QUALITY);
+        tester.addMappedFragment(1, 1, true, DEFAULT_BASE_QUALITY); // duplicate!!!
+        tester.runTest();
+    }
+
+    @Test
+    public void testTwoGroupsOnDifferentChromosomesOfTwoMappedPairs() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.addMappedPair(0, 1, 100, false, false, DEFAULT_BASE_QUALITY);
+        tester.addMappedPair(0, 1, 100, true, true, DEFAULT_BASE_QUALITY); // duplicate!!!
+        tester.addMappedPair(1, 1, 100, false, false, DEFAULT_BASE_QUALITY);
+        tester.addMappedPair(1, 1, 100, true, true, DEFAULT_BASE_QUALITY); // duplicate!!!
+        tester.runTest();
+    }
+
+    @Test
+    public void testTwoGroupsOnDifferentChromosomesOfThreeMappedPairs() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.addMappedPair(0, 1, 100, false, false, DEFAULT_BASE_QUALITY);
+        tester.addMappedPair(0, 1, 100, true, true, DEFAULT_BASE_QUALITY); // duplicate!!!
+        tester.addMappedPair(0, 1, 100, true, true, DEFAULT_BASE_QUALITY); // duplicate!!!
+        tester.addMappedPair(1, 1, 100, false, false, DEFAULT_BASE_QUALITY);
+        tester.addMappedPair(1, 1, 100, true, true, DEFAULT_BASE_QUALITY); // duplicate!!!
+        tester.addMappedPair(1, 1, 100, true, true, DEFAULT_BASE_QUALITY); // duplicate!!!
+        tester.runTest();
+    }
+
+    @Test
+    public void testThreeGroupsOnDifferentChromosomesOfThreeMappedPairs() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.addMappedPair(0, 1, 100, false, false, DEFAULT_BASE_QUALITY);
+        tester.addMappedPair(0, 1, 100, true, true, DEFAULT_BASE_QUALITY); // duplicate!!!
+        tester.addMappedPair(0, 1, 100, true, true, DEFAULT_BASE_QUALITY); // duplicate!!!
+        tester.addMappedPair(1, 1, 100, false, false, DEFAULT_BASE_QUALITY);
+        tester.addMappedPair(1, 1, 100, true, true, DEFAULT_BASE_QUALITY); // duplicate!!!
+        tester.addMappedPair(1, 1, 100, true, true, DEFAULT_BASE_QUALITY); // duplicate!!!
+        tester.addMappedPair(2, 1, 100, false, false , DEFAULT_BASE_QUALITY);
+        tester.addMappedPair(2, 1, 100, true, true, DEFAULT_BASE_QUALITY); // duplicate!!!
+        tester.addMappedPair(2, 1, 100, true, true, DEFAULT_BASE_QUALITY); // duplicate!!!
+        tester.runTest();
+    }
+    
+    @Test
+    public void testBulkFragmentsNoDuplicates() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        for(int position = 1; position <= 10000; position += 1) {
+            tester.addMappedFragment(0, position, false, "100M", DEFAULT_BASE_QUALITY);
+        }
+        tester.runTest();
+    }
+
+    @Test
+    public void testBulkFragmentsWithDuplicates() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        for(int position = 1; position <= 10000; position += 1) {
+            tester.addMappedFragment(0, position, false, "100M", DEFAULT_BASE_QUALITY);
+            tester.addMappedFragment(0, position, true, "100M", DEFAULT_BASE_QUALITY);
+            tester.addMappedFragment(0, position, true, "100M", DEFAULT_BASE_QUALITY);
+            tester.addMappedFragment(0, position, true, "100M", DEFAULT_BASE_QUALITY);
+            tester.addMappedFragment(0, position, true, "100M", DEFAULT_BASE_QUALITY);
+        }
+        tester.runTest();
+    }
+
+    @Test
+    public void testStackOverFlowPairSetSwap() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+
+        final File input = new File("testdata/picard/sam/MarkDuplicates/markDuplicatesWithMateCigar.pairSet.swap.sam");
+        final SamReader reader = SamReaderFactory.makeDefault().open(input);
+        tester.setHeader(reader.getFileHeader());
+        for (final SAMRecord record : reader) {
+            tester.addRecord(record);
+        }
+        CloserUtil.close(reader);
+        tester.setExpectedOpticalDuplicate(1);
+        tester.runTest();
+    }
+    
+    @Test
+    public void testSecondEndIsBeforeFirstInCoordinate() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.addMappedPair(0, 108855339, 108855323, false, false, "33S35M", "17S51M", true, true, false, DEFAULT_BASE_QUALITY); // +/-
+        tester.runTest();
+    }
+
+    @Test
+    public void testPathologicalOrderingAtTheSamePosition() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+
+        tester.setExpectedOpticalDuplicate(1);
+
+        tester.addMatePair("RUNID:3:1:15013:113051", 0, 129384554, 129384554, false, false, false, false, "68M", "68M", false, false, false, false, false, DEFAULT_BASE_QUALITY);
+        tester.addMatePair("RUNID:3:1:15029:113060", 0, 129384554, 129384554, false, false, true, true, "68M", "68M", false, false, false, false, false, DEFAULT_BASE_QUALITY);
+
+        // Create the pathology
+        final CloseableIterator<SAMRecord> iterator = tester.getRecordIterator();
+        final int[] qualityOffset = {20, 30, 10, 40}; // creates an interesting pathological ordering
+        int index = 0;
+        while (iterator.hasNext()) {
+            final SAMRecord record = iterator.next();
+            final byte[] quals = new byte[record.getReadLength()];
+            for (int i = 0; i < record.getReadLength(); i++) {
+                quals[i] = (byte)(qualityOffset[index] + 10);
+            }
+            record.setBaseQualities(quals);
+            index++;
+        }
+        iterator.close();
+
+        // Run the test
+        tester.runTest();
+    }
+
+    @Test
+    public void testDifferentChromosomesInOppositeOrder() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.setExpectedOpticalDuplicate(1);
+        tester.addMatePair("RUNID:6:101:17642:6835", 0, 1, 123989, 18281, false, false, true, true, "37S64M", "52M49S", false, false, false, false, false, DEFAULT_BASE_QUALITY);
+        tester.addMatePair("RUNID:6:101:17616:6888", 1, 0, 18281, 123989, false, false, false, false, "52M49S", "37S64M", false, false, false, false, false, DEFAULT_BASE_QUALITY);
+        tester.runTest();
+    }
+
+    @Test
+    public void testOpticalDuplicateClustersAddingSecondEndFirstSameCoordinate() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.setExpectedOpticalDuplicate(1);
+        tester.addMatePair("RUNID:1:1:15993:13361", 2, 41212324, 41212310, false, false, false, false, "33S35M", "19S49M", true, true, false, false, false, DEFAULT_BASE_QUALITY);
+        tester.addMatePair("RUNID:1:1:16020:13352", 2, 41212324, 41212319, false, false, true, true, "33S35M", "28S40M", true, true, false, false, false, DEFAULT_BASE_QUALITY);
+        tester.runTest();
+    }
+}
diff --git a/src/tests/java/picard/sam/markduplicates/AbstractMarkDuplicatesCommandLineProgramTester.java b/src/tests/java/picard/sam/markduplicates/AbstractMarkDuplicatesCommandLineProgramTester.java
new file mode 100644
index 0000000..cea6fcf
--- /dev/null
+++ b/src/tests/java/picard/sam/markduplicates/AbstractMarkDuplicatesCommandLineProgramTester.java
@@ -0,0 +1,170 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.sam.markduplicates;
+
+import htsjdk.samtools.DuplicateScoringStrategy.ScoringStrategy;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SAMRecordSetBuilder;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.metrics.MetricsFile;
+import htsjdk.samtools.util.CloseableIterator;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.FormatUtil;
+import htsjdk.samtools.util.TestUtil;
+import org.testng.Assert;
+import picard.cmdline.CommandLineProgram;
+import picard.sam.DuplicationMetrics;
+import picard.sam.testers.SamFileTester;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+
+/**
+ * This class is an extension of SamFileTester used to test AbstractMarkDuplicatesCommandLineProgram's with SAM files generated on the fly.
+ * This performs the underlying tests defined by classes such as AbstractMarkDuplicatesCommandLineProgramTest.
+ */
+abstract public class AbstractMarkDuplicatesCommandLineProgramTester extends SamFileTester {
+
+    final private File metricsFile;
+    final DuplicationMetrics expectedMetrics;
+
+    public AbstractMarkDuplicatesCommandLineProgramTester(final ScoringStrategy duplicateScoringStrategy) {
+        super(50, true, SAMRecordSetBuilder.DEFAULT_CHROMOSOME_LENGTH, duplicateScoringStrategy);
+
+        expectedMetrics = new DuplicationMetrics();
+        expectedMetrics.READ_PAIR_OPTICAL_DUPLICATES = 0;
+
+        metricsFile = new File(getOutputDir(), "metrics.txt");
+        addArg("METRICS_FILE=" + metricsFile);
+        addArg("DUPLICATE_SCORING_STRATEGY=" + duplicateScoringStrategy.name());
+    }
+
+
+    public AbstractMarkDuplicatesCommandLineProgramTester() {
+        this(SAMRecordSetBuilder.DEFAULT_DUPLICATE_SCORING_STRATEGY);
+    }
+
+    @Override
+    public String getCommandLineProgramName() { return getProgram().getClass().getSimpleName(); }
+
+    /**
+     * Fill in expected duplication metrics directly from the input records given to this tester
+     */
+    private void updateExpectedDuplicationMetrics() {
+
+        final FormatUtil formatter = new FormatUtil();
+
+        final CloseableIterator<SAMRecord> inputRecordIterator = this.getRecordIterator();
+        while (inputRecordIterator.hasNext()) {
+            final SAMRecord record = inputRecordIterator.next();
+            if (!record.isSecondaryOrSupplementary()) {
+                final String key = samRecordToDuplicatesFlagsKey(record);
+                if (!this.duplicateFlags.containsKey(key)) {
+                    System.err.println("DOES NOT CONTAIN KEY: " + key);
+                }
+                final boolean isDuplicate = this.duplicateFlags.get(key);
+
+                // First bring the simple metricsFile up to date
+                if (record.getReadUnmappedFlag()) {
+                    ++expectedMetrics.UNMAPPED_READS;
+                }
+                else if (!record.getReadPairedFlag() || record.getMateUnmappedFlag()) {
+                    ++expectedMetrics.UNPAIRED_READS_EXAMINED;
+                    if (isDuplicate) ++expectedMetrics.UNPAIRED_READ_DUPLICATES;
+                }
+                else {
+                    ++expectedMetrics.READ_PAIRS_EXAMINED; // will need to be divided by 2 at the end
+                    if (isDuplicate) ++expectedMetrics.READ_PAIR_DUPLICATES; // will need to be divided by 2 at the end
+                }
+            }
+        }
+        expectedMetrics.READ_PAIR_DUPLICATES = expectedMetrics.READ_PAIR_DUPLICATES / 2;
+        expectedMetrics.READ_PAIRS_EXAMINED = expectedMetrics.READ_PAIRS_EXAMINED / 2;
+        expectedMetrics.calculateDerivedMetrics();
+
+        // Have to run this Double value through the same format/parsing operations as during a file write/read
+        expectedMetrics.PERCENT_DUPLICATION = formatter.parseDouble(formatter.format(expectedMetrics.PERCENT_DUPLICATION));
+    }
+
+    public void setExpectedOpticalDuplicate(final int expectedOpticalDuplicatePairs) {
+        expectedMetrics.READ_PAIR_OPTICAL_DUPLICATES = expectedOpticalDuplicatePairs;
+    }
+
+    @Override
+    public void test() {
+        try {
+            updateExpectedDuplicationMetrics();
+
+            // Read the output and check the duplicate flag
+            int outputRecords = 0;
+            final SamReader reader = SamReaderFactory.makeDefault().open(getOutput());
+            for (final SAMRecord record : reader) {
+                outputRecords++;
+                final String key = samRecordToDuplicatesFlagsKey(record);
+                if (!this.duplicateFlags.containsKey(key)) {
+                    System.err.println("DOES NOT CONTAIN KEY: " + key);
+                }
+                Assert.assertTrue(this.duplicateFlags.containsKey(key));
+                final boolean value = this.duplicateFlags.get(key);
+                this.duplicateFlags.remove(key);
+                if (value != record.getDuplicateReadFlag()) {
+                    System.err.println("Mismatching read:");
+                    System.err.print(record.getSAMString());
+                }
+                Assert.assertEquals(record.getDuplicateReadFlag(), value);
+            }
+            CloserUtil.close(reader);
+
+            // Ensure the program output the same number of records as were read in
+            Assert.assertEquals(outputRecords, this.getNumberOfRecords(), ("saw " + outputRecords + " output records, vs. " + this.getNumberOfRecords() + " input records"));
+
+            // Check the values written to metrics.txt against our input expectations
+            final MetricsFile<DuplicationMetrics, Comparable<?>> metricsOutput = new MetricsFile<DuplicationMetrics, Comparable<?>>();
+            try{
+                metricsOutput.read(new FileReader(metricsFile));
+            }
+            catch (final FileNotFoundException ex) {
+                System.err.println("Metrics file not found: " + ex);
+            }
+            // NB: Test writes an initial metrics line with a null entry for LIBRARY and 0 values for all metrics. Why?
+            final DuplicationMetrics observedMetrics = metricsOutput.getMetrics().get(metricsOutput.getMetrics().size() - 1);
+            Assert.assertEquals(observedMetrics.UNPAIRED_READS_EXAMINED, expectedMetrics.UNPAIRED_READS_EXAMINED, "UNPAIRED_READS_EXAMINED does not match expected");
+            Assert.assertEquals(observedMetrics.READ_PAIRS_EXAMINED, expectedMetrics.READ_PAIRS_EXAMINED, "READ_PAIRS_EXAMINED does not match expected");
+            Assert.assertEquals(observedMetrics.UNMAPPED_READS, expectedMetrics.UNMAPPED_READS, "UNMAPPED_READS does not match expected");
+            Assert.assertEquals(observedMetrics.UNPAIRED_READ_DUPLICATES, expectedMetrics.UNPAIRED_READ_DUPLICATES, "UNPAIRED_READ_DUPLICATES does not match expected");
+            Assert.assertEquals(observedMetrics.READ_PAIR_DUPLICATES, expectedMetrics.READ_PAIR_DUPLICATES, "READ_PAIR_DUPLICATES does not match expected");
+            Assert.assertEquals(observedMetrics.READ_PAIR_OPTICAL_DUPLICATES, expectedMetrics.READ_PAIR_OPTICAL_DUPLICATES, "READ_PAIR_OPTICAL_DUPLICATES does not match expected");
+            Assert.assertEquals(observedMetrics.PERCENT_DUPLICATION, expectedMetrics.PERCENT_DUPLICATION, "PERCENT_DUPLICATION does not match expected");
+            Assert.assertEquals(observedMetrics.ESTIMATED_LIBRARY_SIZE, expectedMetrics.ESTIMATED_LIBRARY_SIZE, "ESTIMATED_LIBRARY_SIZE does not match expected");
+        } finally {
+            TestUtil.recursiveDelete(getOutputDir());
+        }
+    }
+
+    abstract protected CommandLineProgram getProgram();
+}
+
diff --git a/src/tests/java/picard/sam/markduplicates/MarkDuplicatesTest.java b/src/tests/java/picard/sam/markduplicates/MarkDuplicatesTest.java
new file mode 100644
index 0000000..351ae1f
--- /dev/null
+++ b/src/tests/java/picard/sam/markduplicates/MarkDuplicatesTest.java
@@ -0,0 +1,208 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.sam.markduplicates;
+
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMProgramRecord;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SAMTag;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.CollectionUtil;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.TestUtil;
+import org.testng.Assert;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * This class defines the individual test cases to run. The actual running of the test is done
+ * by MarkDuplicatesTester (see getTester).
+ */
+public class MarkDuplicatesTest extends AbstractMarkDuplicatesCommandLineProgramTest {
+    protected static String TEST_BASE_NAME = null;
+    protected static File TEST_DATA_DIR = null;
+
+    @BeforeClass
+    public void setUp() {
+        TEST_BASE_NAME = "MarkDuplicates";
+        TEST_DATA_DIR = new File("testdata/picard/sam/MarkDuplicates");
+    }
+
+    protected AbstractMarkDuplicatesCommandLineProgramTester getTester() {
+        return new MarkDuplicatesTester();
+    }
+
+    // NB: this test should return different results than MarkDuplicatesWithMateCigar
+    @Test
+    public void testTwoMappedPairsWithSoftClippingFirstOfPairOnly() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        // NB: no duplicates
+        // 5'1: 2, 5'2:46+73M=118
+        // 5'1: 2, 5'2:51+68M=118
+        tester.addMappedPair(0, 12, 46, false, false, "6S42M28S", "3S73M", true, 50); // only add the first one
+        // NB: this next record should not be a duplicate in MarkDuplicates
+        tester.addMappedPair(0, 12, 51, false, false, "6S42M28S", "8S68M", true, 50); // only add the first one
+        tester.runTest();
+    }
+
+    /**
+     * Test that PG header records are created & chained appropriately (or not created), and that the PG record chains
+     * are as expected.  MarkDuplicates is used both to merge and to mark dupes in this case.
+     * @param suppressPg If true, do not create PG header record.
+     * @param expectedPnVnByReadName For each read, info about the expect chain of PG records.
+     */
+    @Test(dataProvider = "pgRecordChainingTest")
+    public void pgRecordChainingTest(final boolean suppressPg,
+                                     final Map<String, List<ExpectedPnAndVn>> expectedPnVnByReadName) {
+        final File outputDir = IOUtil.createTempDir(TEST_BASE_NAME + ".", ".tmp");
+        outputDir.deleteOnExit();
+        try {
+            // Run MarkDuplicates, merging the 3 input files, and either enabling or suppressing PG header
+            // record creation according to suppressPg.
+            final MarkDuplicates markDuplicates = new MarkDuplicates();
+            final ArrayList<String> args = new ArrayList<String>();
+            for (int i = 1; i <= 3; ++i) {
+                args.add("INPUT=" + new File(TEST_DATA_DIR, "merge" + i + ".sam").getAbsolutePath());
+            }
+            final File outputSam = new File(outputDir, TEST_BASE_NAME + ".sam");
+            args.add("OUTPUT=" + outputSam.getAbsolutePath());
+            args.add("METRICS_FILE=" + new File(outputDir, TEST_BASE_NAME + ".duplicate_metrics").getAbsolutePath());
+            if (suppressPg) args.add("PROGRAM_RECORD_ID=null");
+
+            // I generally prefer to call doWork rather than invoking the argument parser, but it is necessary
+            // in this case to initialize the command line.
+            // Note that for the unit test, version won't come through because it is obtained through jar
+            // manifest, and unit test doesn't run code from a jar.
+            Assert.assertEquals(markDuplicates.instanceMain(args.toArray(new String[args.size()])), 0);
+
+            // Read the MarkDuplicates output file, and get the PG ID for each read.  In this particular test,
+            // the PG ID should be the same for both ends of a pair.
+            final SamReader reader = SamReaderFactory.makeDefault().open(outputSam);
+
+            final Map<String, String> pgIdForReadName = new HashMap<String, String>();
+            for (final SAMRecord rec : reader) {
+                final String existingPgId = pgIdForReadName.get(rec.getReadName());
+                final String thisPgId = rec.getStringAttribute(SAMTag.PG.name());
+                if (existingPgId != null) {
+                    Assert.assertEquals(thisPgId, existingPgId);
+                } else {
+                    pgIdForReadName.put(rec.getReadName(), thisPgId);
+                }
+            }
+            final SAMFileHeader header = reader.getFileHeader();
+            CloserUtil.close(reader);
+
+            // Confirm that for each read name, the chain of PG records contains exactly the number that is expected,
+            // and that values in the PG chain are as expected.
+            for (final Map.Entry<String, List<ExpectedPnAndVn>> entry : expectedPnVnByReadName.entrySet()) {
+                final String readName = entry.getKey();
+                final List<ExpectedPnAndVn> expectedList = entry.getValue();
+                String pgId = pgIdForReadName.get(readName);
+                for (final ExpectedPnAndVn expected : expectedList) {
+                    final SAMProgramRecord programRecord = header.getProgramRecord(pgId);
+                    if (expected.expectedPn != null) Assert.assertEquals(programRecord.getProgramName(), expected.expectedPn);
+                    if (expected.expectedVn != null) Assert.assertEquals(programRecord.getProgramVersion(), expected.expectedVn);
+                    pgId = programRecord.getPreviousProgramGroupId();
+                }
+                Assert.assertNull(pgId);
+            }
+
+        } finally {
+            TestUtil.recursiveDelete(outputDir);
+        }
+    }
+
+    /**
+     * Represents an expected PN value and VN value for a PG record.  If one of thexe is null, any value is allowed
+     * in the PG record being tested.
+     */
+    private static class ExpectedPnAndVn {
+        final String expectedPn;
+        final String expectedVn;
+
+        private ExpectedPnAndVn(final String expectedPn, final String expectedVn) {
+            this.expectedPn = expectedPn;
+            this.expectedVn = expectedVn;
+        }
+    }
+
+    @DataProvider(name = "pgRecordChainingTest")
+    public Object[][] pgRecordChainingTestDataProvider() {
+        // Two test cases: One in which PG record generation is enabled, the other in which it is turned off.
+        final Map<String, List<ExpectedPnAndVn>> withPgMap = new HashMap<String, List<ExpectedPnAndVn>>();
+        withPgMap.put("1AAXX.1.1", Arrays.asList(new ExpectedPnAndVn(TEST_BASE_NAME, null), new ExpectedPnAndVn(TEST_BASE_NAME, "1"), new ExpectedPnAndVn("bwa", "1")));
+        withPgMap.put("1AAXX.2.1", Arrays.asList(new ExpectedPnAndVn(TEST_BASE_NAME, null), new ExpectedPnAndVn("bwa", "2")));
+        withPgMap.put("1AAXX.3.1", Arrays.asList(new ExpectedPnAndVn(TEST_BASE_NAME, null)));
+
+        final Map<String, List<ExpectedPnAndVn>> suppressPgMap = new HashMap<String, List<ExpectedPnAndVn>>();
+        suppressPgMap .put("1AAXX.1.1", Arrays.asList(new ExpectedPnAndVn(TEST_BASE_NAME, "1"), new ExpectedPnAndVn("bwa", "1")));
+        suppressPgMap .put("1AAXX.2.1", Arrays.asList(new ExpectedPnAndVn("bwa", "2")));
+        suppressPgMap .put("1AAXX.3.1", new ArrayList<ExpectedPnAndVn>(0));
+        return new Object[][] {
+                { false, withPgMap},
+                { true, suppressPgMap}
+        };
+    }
+
+    @Test(dataProvider = "testOpticalDuplicateDetectionDataProvider")
+    public void testOpticalDuplicateDetection(final File sam, final long expectedNumOpticalDuplicates) {
+        final File outputDir = IOUtil.createTempDir(TEST_BASE_NAME + ".", ".tmp");
+        outputDir.deleteOnExit();
+        final File outputSam = new File(outputDir, TEST_BASE_NAME + ".sam");
+        outputSam.deleteOnExit();
+        final File metricsFile = new File(outputDir, TEST_BASE_NAME + ".duplicate_metrics");
+        metricsFile.deleteOnExit();
+        // Run MarkDuplicates, merging the 3 input files, and either enabling or suppressing PG header
+        // record creation according to suppressPg.
+        final MarkDuplicates markDuplicates = new MarkDuplicates();
+        markDuplicates.setupOpticalDuplicateFinder();
+        markDuplicates.INPUT = CollectionUtil.makeList(sam.getAbsolutePath());
+        markDuplicates.OUTPUT = outputSam;
+        markDuplicates.METRICS_FILE = metricsFile;
+        markDuplicates.TMP_DIR = CollectionUtil.makeList(outputDir);
+        // Needed to suppress calling CommandLineProgram.getVersion(), which doesn't work for code not in a jar
+        markDuplicates.PROGRAM_RECORD_ID = null;
+        Assert.assertEquals(markDuplicates.doWork(), 0);
+        Assert.assertEquals(markDuplicates.numOpticalDuplicates(), expectedNumOpticalDuplicates);
+    }
+
+    @DataProvider(name="testOpticalDuplicateDetectionDataProvider")
+    public Object[][] testOpticalDuplicateDetectionDataProvider() {
+        return new Object[][] {
+                {new File(TEST_DATA_DIR, "optical_dupes.sam"), 1L},
+                {new File(TEST_DATA_DIR, "optical_dupes_casava.sam"), 1L},
+        };
+    }
+}
diff --git a/src/tests/java/picard/sam/markduplicates/MarkDuplicatesTester.java b/src/tests/java/picard/sam/markduplicates/MarkDuplicatesTester.java
new file mode 100644
index 0000000..67cfc82
--- /dev/null
+++ b/src/tests/java/picard/sam/markduplicates/MarkDuplicatesTester.java
@@ -0,0 +1,42 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.sam.markduplicates;
+
+import htsjdk.samtools.DuplicateScoringStrategy;
+import picard.cmdline.CommandLineProgram;
+
+/**
+ * This class is an extension of AbstractMarkDuplicatesCommandLineProgramTester used to test MarkDuplicates with SAM files generated on the fly.
+ * This performs the underlying tests defined by classes such as see AbstractMarkDuplicatesCommandLineProgramTest and MarkDuplicatesTest.
+ */
+public class MarkDuplicatesTester extends AbstractMarkDuplicatesCommandLineProgramTester {
+
+    public MarkDuplicatesTester() {
+        super(DuplicateScoringStrategy.ScoringStrategy.TOTAL_MAPPED_REFERENCE_LENGTH);
+    }
+
+    @Override
+    protected CommandLineProgram getProgram() { return new MarkDuplicates(); }
+}
diff --git a/src/tests/java/picard/sam/markduplicates/MarkDuplicatesWithMateCigarTest.java b/src/tests/java/picard/sam/markduplicates/MarkDuplicatesWithMateCigarTest.java
new file mode 100644
index 0000000..036a274
--- /dev/null
+++ b/src/tests/java/picard/sam/markduplicates/MarkDuplicatesWithMateCigarTest.java
@@ -0,0 +1,107 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.sam.markduplicates;
+
+import picard.PicardException;
+import org.testng.annotations.Test;
+
+/**
+ * This class defines the individual test cases to run. The actual running of the test is done
+ * by MarkDuplicatesWithMateCigarTester (see getTester).
+ * @author nhomer at broadinstitute.org
+ */
+public class MarkDuplicatesWithMateCigarTest extends AbstractMarkDuplicatesCommandLineProgramTest {
+    protected AbstractMarkDuplicatesCommandLineProgramTester getTester() {
+        return new MarkDuplicatesWithMateCigarTester();
+    }
+
+    // TODO: test program record chaining, including failures. Use MarkDuplicate's facility.
+    // TODO: check if one mate is dup, the other is as well, only if both are mapped
+
+    // NB: this test should return different results than MarkDuplicatesWithMateCigar, as we have the mate cigar
+    @Test
+    public void testTwoMappedPairsWithSoftClippingFirstOfPairOnly() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        // NB: no duplicates
+        // 5'1: 2, 5'2:46+73M=118
+        // 5'1: 2, 5'2:51+68M=118
+        tester.addMappedPair(0, 12, 46, false, false, "6S42M28S", "3S73M", true, 50); // only add the first one
+        // NB: this next record should not be a duplicate in MarkDuplicates, but is here, because have the mate cigar
+        tester.addMappedPair(0, 12, 51, true, true, "6S42M28S", "8S68M", true, 50); // only add the first one
+        tester.runTest();
+    }
+
+    @Test
+    public void testTwoFragmentsLargeSoftClipWithMinimumDistanceOK() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.addArg("MINIMUM_DISTANCE=990");
+        tester.addMappedFragment(0, 1000, false, "100M", DEFAULT_BASE_QUALITY);
+        tester.addMappedFragment(0, 2000, false, "10S100M", DEFAULT_BASE_QUALITY);
+        tester.addMappedFragment(0, 3000, true, "2000S100M", DEFAULT_BASE_QUALITY);
+        tester.runTest();
+    }
+
+    @Test(expectedExceptions = PicardException.class)
+    public void testTwoFragmentsLargeSoftClipWithMinimumDistanceFailure() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.addArg("MINIMUM_DISTANCE=989");
+        tester.addMappedFragment(0, 1000, false, "100M", DEFAULT_BASE_QUALITY);
+        tester.addMappedFragment(0, 2000, false, "10S100M", DEFAULT_BASE_QUALITY);
+        tester.addMappedFragment(0, 3000, true, "2000S100M", DEFAULT_BASE_QUALITY);
+        tester.runTest();
+    }
+
+    @Test(expectedExceptions = PicardException.class)
+    public void testTwoFragmentsLargeSoftClip() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.addMappedFragment(0, 1000, false, "100M", DEFAULT_BASE_QUALITY);
+        tester.addMappedFragment(0, 2000, false, "10S100M", DEFAULT_BASE_QUALITY);
+        tester.addMappedFragment(0, 3000, true, "2000S100M", DEFAULT_BASE_QUALITY);
+        tester.runTest();
+    }
+
+    @Test
+     public void testScoringStrategyForReadNameComparison() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+        tester.addMappedFragment(0, 1, false, DEFAULT_BASE_QUALITY);  // Ref lengths, MapQs equal. First read name in lex order called dup.
+        tester.addMappedFragment(0, 1, true, DEFAULT_BASE_QUALITY);
+        tester.runTest();
+    }
+
+    @Test
+    public void testScoringStrategyForMateReferenceLengthComparison() {
+        final AbstractMarkDuplicatesCommandLineProgramTester tester = getTester();
+
+        // READY pair are both duplicates because (sum of reference length) for both reads is less than for READX
+        // MarkDuplicates and SUM_OF_BASE_QUALITIES scoring strategy would mark READX pair a duplicate, as all reads have equal quals
+        // If this scoring strategy did not account for mate reference length, READX pair would be marked a duplicate
+        tester.addMatePair("READY", 1, 1, 105, false, false, true, true, "50M", "5I45M", false, true, false,
+                false, false, DEFAULT_BASE_QUALITY); // duplicate pair. Both reads should be duplicates!!!
+        tester.addMatePair("READX", 1, 1, 100, false, false, false, false, "50M", "50M", false, true, false,
+                false, false, DEFAULT_BASE_QUALITY);
+
+        tester.runTest();
+    }
+}
diff --git a/src/tests/java/picard/sam/markduplicates/MarkDuplicatesWithMateCigarTester.java b/src/tests/java/picard/sam/markduplicates/MarkDuplicatesWithMateCigarTester.java
new file mode 100644
index 0000000..3e0d992
--- /dev/null
+++ b/src/tests/java/picard/sam/markduplicates/MarkDuplicatesWithMateCigarTester.java
@@ -0,0 +1,46 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.sam.markduplicates;
+
+import htsjdk.samtools.DuplicateScoringStrategy.ScoringStrategy;
+import picard.cmdline.CommandLineProgram;
+
+/**
+ * This class is an extension of AbstractMarkDuplicatesCommandLineProgramTester used to test MarkDuplicatesWithMateCigar with SAM files generated on the fly.
+ * This performs the underlying tests defined by classes such as see AbstractMarkDuplicatesCommandLineProgramTest and MarkDuplicatesWithMateCigarTest.
+ */
+public class MarkDuplicatesWithMateCigarTester extends AbstractMarkDuplicatesCommandLineProgramTester {
+
+    public MarkDuplicatesWithMateCigarTester() {
+        // NB: to be equivalent to MarkDuplicates we need to use SUM_OF_BASE_QUALITIES
+        super(ScoringStrategy.TOTAL_MAPPED_REFERENCE_LENGTH);
+
+        addArg("MAX_RECORDS_IN_RAM=1000");
+        addArg("BLOCK_SIZE=250");
+    }
+
+    @Override
+    protected CommandLineProgram getProgram() { return new MarkDuplicatesWithMateCigar(); }
+}
diff --git a/src/tests/java/picard/sam/markduplicates/SimpleMarkDuplicatesWithMateCigar.java b/src/tests/java/picard/sam/markduplicates/SimpleMarkDuplicatesWithMateCigar.java
new file mode 100644
index 0000000..32de1d6
--- /dev/null
+++ b/src/tests/java/picard/sam/markduplicates/SimpleMarkDuplicatesWithMateCigar.java
@@ -0,0 +1,222 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2015 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.sam.markduplicates;
+
+import htsjdk.samtools.DuplicateSet;
+import htsjdk.samtools.DuplicateSetIterator;
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMFileWriter;
+import htsjdk.samtools.SAMFileWriterFactory;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SAMTag;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.IterableAdapter;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.ProgressLogger;
+import picard.cmdline.CommandLineProgramProperties;
+import picard.cmdline.programgroups.Testing;
+import picard.sam.DuplicationMetrics;
+import picard.sam.markduplicates.util.AbstractMarkDuplicatesCommandLineProgram;
+import picard.sam.markduplicates.util.LibraryIdGenerator;
+import picard.sam.markduplicates.util.ReadEnds;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * This is a simple tool to mark duplicates using the DuplicateSetIterator, DuplicateSet, and SAMRecordDuplicateComparator.
+ * 
+ * Users should continue to use MarkDuplicates in general.  The main motivation of this tool was the fact that 
+ * MarkDuplicates has many, many, many useful test cases, but few unit tests for validating individual duplicate sets. To
+ * test the DuplicateSetIterator, DuplicateSet, and SAMRecordDuplicateComparator, the most expedient method was to write
+ * this tool and make sure it behaves similarly to MarkDuplicates.  Not the best, I know, but good enough.  NH 06/25/2015.
+ *  
+ * 
+ * See MarkDuplicates for more details.
+ *
+ * @author nhomer
+ */
+ at CommandLineProgramProperties(
+        usage = "Examines aligned records in the supplied SAM or BAM file to locate duplicate molecules. " +
+                "All records are then written to the output file with the duplicate records flagged.",
+        usageShort = "Examines aligned records in the supplied SAM or BAM file to locate duplicate molecules.",
+        programGroup = Testing.class
+)
+public class SimpleMarkDuplicatesWithMateCigar extends MarkDuplicates {
+    private final Log log = Log.getInstance(MarkDuplicatesWithMateCigar.class);
+
+    /** Stock main method. */
+    public static void main(final String[] args) {
+        new MarkDuplicatesWithMateCigar().instanceMainWithExit(args);
+    }
+
+    private class ReadEndsForSimpleMarkDuplicatesWithMateCigar extends ReadEnds {
+    }
+    
+    private static boolean isPairedAndBothMapped(final SAMRecord record) {
+        return record.getReadPairedFlag() &&
+                !record.getReadUnmappedFlag() &&
+                !record.getMateUnmappedFlag();
+        
+    }
+
+    /**
+     * Main work method.
+     */
+    protected int doWork() {
+        IOUtil.assertInputsAreValid(INPUT);
+        IOUtil.assertFileIsWritable(OUTPUT);
+        IOUtil.assertFileIsWritable(METRICS_FILE);
+
+        // Open the inputs
+        final SamHeaderAndIterator headerAndIterator = openInputs();
+        final SAMFileHeader header = headerAndIterator.header;
+
+        // Create the output header
+        final SAMFileHeader outputHeader = header.clone();
+        outputHeader.setSortOrder(SAMFileHeader.SortOrder.coordinate);
+        for (final String comment : COMMENT) outputHeader.addComment(comment);
+        
+        // Key: previous PG ID on a SAM Record (or null).  Value: New PG ID to replace it.
+        final Map<String, String> chainedPgIds = getChainedPgIds(outputHeader);
+
+        // Open the output
+        final SAMFileWriter out = new SAMFileWriterFactory().makeSAMOrBAMWriter(outputHeader,
+                false,
+                OUTPUT);
+        
+        final DuplicateSetIterator iterator = new DuplicateSetIterator(headerAndIterator.iterator,
+                headerAndIterator.header);
+        
+        iterator.setScoringStrategy(this.DUPLICATE_SCORING_STRATEGY);
+
+        // progress logger!
+        final ProgressLogger progress = new ProgressLogger(log, (int) 1e6, "Read");
+
+        int numDuplicates = 0;
+        
+        libraryIdGenerator = new LibraryIdGenerator(headerAndIterator.header);
+        
+        for (final DuplicateSet duplicateSet : new IterableAdapter<DuplicateSet>(iterator)) {
+            final SAMRecord representative = duplicateSet.getRepresentative();
+            final boolean doOpticalDuplicateTracking = (this.READ_NAME_REGEX != null) &&
+                    isPairedAndBothMapped(representative) &&
+                    representative.getFirstOfPairFlag();
+            final Set<String> duplicateReadEndsSeen = new HashSet<String>();
+            
+            final List<ReadEnds> duplicateReadEnds = new ArrayList<ReadEnds>();
+            for (final SAMRecord record : duplicateSet.getRecords()) {
+
+                if (!record.isSecondaryOrSupplementary()) {
+                    final String library = LibraryIdGenerator.getLibraryName(header, record);
+                    DuplicationMetrics metrics = libraryIdGenerator.getMetricsByLibrary(library);
+                    if (metrics == null) {
+                        metrics = new DuplicationMetrics();
+                        metrics.LIBRARY = library;
+                        libraryIdGenerator.addMetricsByLibrary(library, metrics);
+                    }
+
+                    // First bring the simple metrics up to date
+                    if (record.getReadUnmappedFlag()) {
+                        ++metrics.UNMAPPED_READS;
+                    } else if (!record.getReadPairedFlag() || record.getMateUnmappedFlag()) {
+                        ++metrics.UNPAIRED_READS_EXAMINED;
+                    } else {
+                        ++metrics.READ_PAIRS_EXAMINED; // will need to be divided by 2 at the end
+                    }
+
+                    if (record.getDuplicateReadFlag()) {
+                        // Update the duplication metrics
+                        if (!record.getReadPairedFlag() || record.getMateUnmappedFlag()) {
+                            ++metrics.UNPAIRED_READ_DUPLICATES;
+                        } else {
+                            ++metrics.READ_PAIR_DUPLICATES;// will need to be divided by 2 at the end
+                        }
+                        numDuplicates++;
+                    }
+                    
+                    // To track optical duplicates, store a set of locations for mapped pairs, first end only.  We care about orientation relative
+                    // to the first end of the pair for optical duplicate tracking, which is more stringent than PCR duplicate tracking.
+                    if (doOpticalDuplicateTracking &&
+                            isPairedAndBothMapped(record) &&
+                            !duplicateReadEndsSeen.contains(record.getReadName())) {
+                        
+                        final ReadEndsForSimpleMarkDuplicatesWithMateCigar readEnd = new ReadEndsForSimpleMarkDuplicatesWithMateCigar();
+                        // set orientation for optical duplicates
+                        if (record.getFirstOfPairFlag()) {
+                            readEnd.orientationForOpticalDuplicates = ReadEnds.getOrientationByte(record.getReadNegativeStrandFlag(), record.getMateNegativeStrandFlag());
+                        } else {
+                            readEnd.orientationForOpticalDuplicates = ReadEnds.getOrientationByte(record.getMateNegativeStrandFlag(), record.getReadNegativeStrandFlag());
+                        }
+                        if (opticalDuplicateFinder.addLocationInformation(record.getReadName(), readEnd)) {
+                            if (null != record.getReadGroup()) {
+                                final short index = libraryIdGenerator.getLibraryId(record);
+                                readEnd.setLibraryId(index);
+                            }
+                        }
+                        duplicateReadEnds.add(readEnd);
+                        duplicateReadEndsSeen.add(record.getReadName());
+                    }
+                }
+
+                if (!this.REMOVE_DUPLICATES || !record.getDuplicateReadFlag()) {
+                    if (PROGRAM_RECORD_ID != null) {
+                        record.setAttribute(SAMTag.PG.name(), chainedPgIds.get(record.getStringAttribute(SAMTag.PG.name())));
+                    }
+                    out.addAlignment(record);
+                    progress.record(record);
+                }
+            }
+
+            // Track the optical duplicates
+            if (this.READ_NAME_REGEX != null && 1 < duplicateReadEnds.size()) {
+                AbstractMarkDuplicatesCommandLineProgram.trackOpticalDuplicates(duplicateReadEnds, opticalDuplicateFinder, libraryIdGenerator);
+            }
+        }
+
+        // remember to close the inputs
+        iterator.close();
+
+        out.close();
+
+        if (this.READ_NAME_REGEX == null) {
+            log.warn("Skipped optical duplicate cluster discovery; library size estimation may be inaccurate!");
+        } else {
+            log.info("Found " + (this.libraryIdGenerator.getNumberOfOpticalDuplicateClusters()) + " optical duplicate clusters.");
+        }
+
+        // Log info
+        log.info("Processed " + progress.getCount() + " records");
+        log.info("Marking " + numDuplicates + " records as duplicates.");
+
+        // Write out the metrics
+        finalizeAndWriteMetrics(libraryIdGenerator);
+
+        return 0;
+    }
+}
\ No newline at end of file
diff --git a/src/tests/java/picard/sam/markduplicates/SimpleMarkDuplicatesWithMateCigarTest.java b/src/tests/java/picard/sam/markduplicates/SimpleMarkDuplicatesWithMateCigarTest.java
new file mode 100644
index 0000000..7a58dca
--- /dev/null
+++ b/src/tests/java/picard/sam/markduplicates/SimpleMarkDuplicatesWithMateCigarTest.java
@@ -0,0 +1,44 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2015 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.sam.markduplicates;
+
+import htsjdk.samtools.SAMException;
+import org.testng.annotations.Test;
+
+/**
+ * @author nhomer
+ */
+public class SimpleMarkDuplicatesWithMateCigarTest extends AbstractMarkDuplicatesCommandLineProgramTest {
+    protected AbstractMarkDuplicatesCommandLineProgramTester getTester() {
+        return new SimpleMarkDuplicatesWithMateCigarTester();
+    }
+
+    /** We require mate cigars for this tool */
+    @Test(expectedExceptions = SAMException.class)
+    @Override
+    public void testTwoMappedPairsWithSoftClippingFirstOfPairOnlyNoMateCigar() {
+        super.testTwoMappedPairsWithSoftClippingFirstOfPairOnlyNoMateCigar();
+    }
+}
diff --git a/src/tests/java/picard/sam/markduplicates/SimpleMarkDuplicatesWithMateCigarTester.java b/src/tests/java/picard/sam/markduplicates/SimpleMarkDuplicatesWithMateCigarTester.java
new file mode 100644
index 0000000..53ef71f
--- /dev/null
+++ b/src/tests/java/picard/sam/markduplicates/SimpleMarkDuplicatesWithMateCigarTester.java
@@ -0,0 +1,45 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2015 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.sam.markduplicates;
+
+import htsjdk.samtools.DuplicateScoringStrategy;
+import picard.cmdline.CommandLineProgram;
+
+/**
+ * @author nhomer
+ */
+public class SimpleMarkDuplicatesWithMateCigarTester extends AbstractMarkDuplicatesCommandLineProgramTester {
+
+    public SimpleMarkDuplicatesWithMateCigarTester() {
+        // NB: to be equivalent to MarkDuplicates we need to use SUM_OF_BASE_QUALITIES
+        super(DuplicateScoringStrategy.ScoringStrategy.TOTAL_MAPPED_REFERENCE_LENGTH);
+
+        addArg("MAX_RECORDS_IN_RAM=1000");
+    }
+
+    @Override
+    protected CommandLineProgram getProgram() { return new SimpleMarkDuplicatesWithMateCigar(); }
+}
+
diff --git a/src/tests/java/picard/sam/markduplicates/util/OpticalDuplicateFinderTest.java b/src/tests/java/picard/sam/markduplicates/util/OpticalDuplicateFinderTest.java
new file mode 100644
index 0000000..4ca3cd9
--- /dev/null
+++ b/src/tests/java/picard/sam/markduplicates/util/OpticalDuplicateFinderTest.java
@@ -0,0 +1,76 @@
+package picard.sam.markduplicates.util;
+
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import org.testng.Assert;
+import picard.sam.util.ReadNameParsingUtils;
+
+/**
+ * Tests for OpticalDuplicateFinder
+ *
+ * @author Nils Homer
+ */
+public class OpticalDuplicateFinderTest {
+
+    /** Tests rapidParseInt for positive and negative numbers, as well as non-digit suffixes */
+    @Test
+    public void testRapidParseInt() {
+        final OpticalDuplicateFinder opticalDuplicateFinder = new OpticalDuplicateFinder();
+        for (int i = -100; i < 100; i++) {
+            Assert.assertEquals(ReadNameParsingUtils.rapidParseInt(Integer.toString(i)), i);
+
+            // trailing characters
+            Assert.assertEquals(ReadNameParsingUtils.rapidParseInt(Integer.toString(i)+"A"), i);
+            Assert.assertEquals(ReadNameParsingUtils.rapidParseInt(Integer.toString(i)+"ACGT"), i);
+            Assert.assertEquals(ReadNameParsingUtils.rapidParseInt(Integer.toString(i)+".1"), i);
+        }
+    }
+
+    /** Helper for testGetRapidDefaultReadNameRegexSplit */
+    private void doTestGetRapidDefaultReadNameRegexSplit(int numFields, final OpticalDuplicateFinder opticalDuplicateFinder) {
+        final int[] inputFields = new int[numFields];
+        final int[] expectedFields = new int[numFields];
+        String readName = "";
+        for (int i = 0; i < inputFields.length; i++) {
+            inputFields[i] = -1;
+            expectedFields[i] = -1;
+            if (0 < i) readName += ":";
+            readName += Integer.toString(i);
+        }
+        if (2 < numFields) expectedFields[2] = 2;
+        if (3 < numFields) expectedFields[3] = 3;
+        if (4 < numFields) expectedFields[4] = 4;
+        Assert.assertEquals(ReadNameParsingUtils.getRapidDefaultReadNameRegexSplit(readName, ':', inputFields), numFields);
+        for (int i = 0; i < inputFields.length; i++) {
+            Assert.assertEquals(inputFields[i], expectedFields[i]);
+        }
+    }
+
+    /** Tests that we split the string early, with the correct # of fields, and modified values */
+    @Test
+    public void testGetRapidDefaultReadNameRegexSplit() {
+        final OpticalDuplicateFinder opticalDuplicateFinder = new OpticalDuplicateFinder();
+        for (int i = 1; i < 10; i++) {
+            doTestGetRapidDefaultReadNameRegexSplit((i <= 5) ? i : 5, opticalDuplicateFinder);
+        }
+    }
+
+    // NB: these tests fails due to overflow in the duplicate finder test.  This has been the behavior previously, so keep it for now.
+    @Test(dataProvider = "testParseReadNameDataProvider", enabled = false)
+    public void testParseReadName(final String readName, final int tile, final int x, final int y) {
+        OpticalDuplicateFinder opticalDuplicateFinder = new OpticalDuplicateFinder();
+        OpticalDuplicateFinder.PhysicalLocation loc = new ReadEndsForMarkDuplicates();
+        Assert.assertTrue(opticalDuplicateFinder.addLocationInformation(readName, loc));
+        Assert.assertEquals(loc.getTile(), tile);
+        Assert.assertEquals(loc.getX(), x);
+        Assert.assertEquals(loc.getY(), y);
+    }
+
+    @DataProvider(name = "testParseReadNameDataProvider")
+    public Object[][] testParseReadNameDataProvider() {
+        return new Object[][]{
+                {"RUNID:7:1203:2886:82292", 1203, 2886, 82292},
+                {"RUNID:7:1203:2884:16834", 1203, 2884, 16834}
+        };
+    }
+}
diff --git a/src/tests/java/picard/sam/testers/CleanSamTester.java b/src/tests/java/picard/sam/testers/CleanSamTester.java
new file mode 100644
index 0000000..4b9e637
--- /dev/null
+++ b/src/tests/java/picard/sam/testers/CleanSamTester.java
@@ -0,0 +1,65 @@
+package picard.sam.testers;
+
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SAMRecordIterator;
+import htsjdk.samtools.SAMUtils;
+import htsjdk.samtools.SAMValidationError;
+import htsjdk.samtools.SamFileValidator;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.SamReaderFactory;
+import htsjdk.samtools.ValidationStringency;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.TestUtil;
+import org.testng.Assert;
+import picard.cmdline.CommandLineProgram;
+import picard.sam.CleanSam;
+
+import java.io.PrintWriter;
+import java.util.Arrays;
+
+/**
+ * This class is the extension of the SamFileTester to test CleanSam with SAM files generated on the fly.
+ */
+public class CleanSamTester extends SamFileTester {
+    private final String expectedCigar;
+
+    @Override
+    public String getCommandLineProgramName() { return CleanSam.class.getSimpleName(); }
+
+    public CleanSamTester(final String expectedCigar, final int readLength, final int defaultChromosomeLength) {
+        super(readLength, true, defaultChromosomeLength);
+        this.expectedCigar = expectedCigar;
+    }
+
+
+    protected void test() {
+        try {
+            final SamFileValidator validator = new SamFileValidator(new PrintWriter(System.out), 8000);
+
+            // Validate it has the expected cigar
+            validator.setIgnoreWarnings(true);
+            validator.setVerbose(true, 1000);
+            validator.setErrorsToIgnore(Arrays.asList(SAMValidationError.Type.MISSING_READ_GROUP));
+            SamReaderFactory factory = SamReaderFactory.makeDefault().validationStringency(ValidationStringency.LENIENT);
+            SamReader samReader = factory.open(getOutput());
+            final SAMRecordIterator iterator = samReader.iterator();
+            while (iterator.hasNext()) {
+                final SAMRecord rec = iterator.next();
+                Assert.assertEquals(rec.getCigarString(), expectedCigar);
+                if (SAMUtils.hasMateCigar(rec)) {
+                    Assert.assertEquals(SAMUtils.getMateCigarString(rec), expectedCigar);
+                }
+            }
+            CloserUtil.close(samReader);
+
+            // Run validation on the output file
+            samReader = factory.open(getOutput());
+            final boolean validated = validator.validateSamFileVerbose(samReader, null);
+            CloserUtil.close(samReader);
+
+            Assert.assertTrue(validated, "ValidateSamFile failed");
+        } finally {
+            TestUtil.recursiveDelete(getOutputDir());
+        }
+    }
+}
diff --git a/src/tests/java/picard/sam/testers/SamFileTester.java b/src/tests/java/picard/sam/testers/SamFileTester.java
new file mode 100644
index 0000000..5a2b1d4
--- /dev/null
+++ b/src/tests/java/picard/sam/testers/SamFileTester.java
@@ -0,0 +1,307 @@
+package picard.sam.testers;
+
+import htsjdk.samtools.DuplicateScoringStrategy.ScoringStrategy;
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMFileWriter;
+import htsjdk.samtools.SAMFileWriterFactory;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.SAMRecordSetBuilder;
+import htsjdk.samtools.SamReader;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.samtools.util.CloseableIterator;
+import org.testng.Assert;
+import picard.cmdline.CommandLineProgramTest;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Abstract class for doing basic on the fly SAM file testing.
+ */
+public abstract class SamFileTester extends CommandLineProgramTest {
+
+    public static final String TEST_DATA_BASE_DIR = "testdata/picard/sam/";
+    private final SAMRecordSetBuilder samRecordSetBuilder;
+    protected final Map<String, Boolean> duplicateFlags = new HashMap<String, Boolean>();
+    private File outputDir;
+    private File output;
+    private int readNameCounter = 0;
+    private boolean noMateCigars = false;
+    private boolean deleteOnExit = true;
+    private final ArrayList<String> args = new ArrayList<String>();
+
+    public SamFileTester(final int readLength, final boolean deleteOnExit, final int defaultChromosomeLength, final ScoringStrategy duplicateScoringStrategy) {
+        this.deleteOnExit = deleteOnExit;
+        this.samRecordSetBuilder = new SAMRecordSetBuilder(true, SAMFileHeader.SortOrder.coordinate, true, defaultChromosomeLength, duplicateScoringStrategy);
+        samRecordSetBuilder.setReadLength(readLength);
+        setOutputDir();
+    }
+
+    public SamFileTester(final int readLength, final boolean deleteOnExit, final int defaultChromosomeLength) {
+        this(readLength, deleteOnExit, defaultChromosomeLength, SAMRecordSetBuilder.DEFAULT_DUPLICATE_SCORING_STRATEGY);
+    }
+
+    public SamFileTester(final int readLength, final boolean deleteOnExit) {
+        this(readLength, deleteOnExit, SAMRecordSetBuilder.DEFAULT_CHROMOSOME_LENGTH);
+    }
+
+    public void setHeader(final SAMFileHeader header) {
+        this.samRecordSetBuilder.setHeader(header);
+    }
+
+    public void addRecord(final SAMRecord record) {
+        this.duplicateFlags.put(samRecordToDuplicatesFlagsKey(record), record.getDuplicateReadFlag());
+        this.samRecordSetBuilder.addRecord(record);
+    }
+
+    public int getNumberOfRecords() {
+        return this.samRecordSetBuilder.size();
+    }
+
+    public CloseableIterator<SAMRecord> getRecordIterator() {
+        return this.samRecordSetBuilder.iterator();
+    }
+
+    public File getOutput() {
+        return output;
+    }
+
+    public void setOutput(final File output) {
+        this.output = output;
+    }
+
+
+    public void addArg(final String arg) {
+        args.add(arg);
+    }
+
+    public ArrayList<String> getArgs() {
+        return args;
+    }
+
+    public File getOutputDir() {
+        return outputDir;
+    }
+
+    private void setOutputDir() {
+        this.outputDir = IOUtil.createTempDir(this.getClass().getSimpleName() + ".", ".tmp");
+        if (deleteOnExit) {
+            outputDir.deleteOnExit();
+        }
+    }
+
+    public void setNoMateCigars(final boolean value) {
+        this.noMateCigars = value;
+    }
+
+    public boolean getDeleteOnExit() {
+        return deleteOnExit;
+    }
+
+    protected String samRecordToDuplicatesFlagsKey(final SAMRecord record) {
+        String readName = record.getReadName()
+                + "-"
+                + record.getReadPairedFlag()
+                + "-";
+        if (record.getReadPairedFlag()) {
+            readName += record.getFirstOfPairFlag()
+                    + "-"
+                    + record.getSecondOfPairFlag();
+        } else {
+            readName += "false-false";
+        }
+        return readName;
+    }
+
+    // Below are a bunch of utility methods for adding records to the SAMRecordSetBuilder
+    public void addUnmappedFragment(final int referenceSequenceIndex,
+                                    final int defaultQualityScore) {
+        addFragment(referenceSequenceIndex, -1, true, false, null, null, defaultQualityScore, false);
+    }
+
+    public void addUnmappedFragment(final int referenceSequenceIndex,
+                                    final String qualityString) {
+        addFragment(referenceSequenceIndex, -1, true, false, null, qualityString, -1, false);
+    }
+
+    public void addUnmappedPair(final int referenceSequenceIndex,
+                                final int defaultQualityScore) {
+        addMatePair(referenceSequenceIndex, -1, -1, true, true, false, false, null, null, false, false, false, false, false, defaultQualityScore);
+    }
+
+    public void addMappedFragment(final int referenceSequenceIndex, final int alignmentStart, final boolean isDuplicate,
+                                  final int defaultQualityScore) {
+        addFragment(referenceSequenceIndex, alignmentStart, false, isDuplicate, null, null, defaultQualityScore, false);
+    }
+
+    public void addMappedFragment(final int referenceSequenceIndex, final int alignmentStart, final boolean isDuplicate,
+                                  final int defaultQualityScore, final boolean isSecondary) {
+        addFragment(referenceSequenceIndex, alignmentStart, false, isDuplicate, null, null, defaultQualityScore, isSecondary);
+    }
+
+    public void addMappedFragment(final int referenceSequenceIndex, final int alignmentStart, final boolean isDuplicate, final String cigar,
+                                  final int defaultQualityScore) {
+        addFragment(referenceSequenceIndex, alignmentStart, false, isDuplicate, cigar, null, defaultQualityScore, false);
+    }
+
+    public void addMappedFragment(final int referenceSequenceIndex, final int alignmentStart, final boolean isDuplicate, final String cigar,
+                                  final String qualityString,
+                                  final int defaultQualityScore) {
+        addFragment(referenceSequenceIndex, alignmentStart, false, isDuplicate, cigar, qualityString, defaultQualityScore, false);
+    }
+
+    public void addMappedPair(final int referenceSequenceIndex,
+                              final int alignmentStart1,
+                              final int alignmentStart2,
+                              final boolean isDuplicate1,
+                              final boolean isDuplicate2,
+                              final int defaultQualityScore) {
+        addMappedPair(referenceSequenceIndex, alignmentStart1, alignmentStart2, isDuplicate1, isDuplicate2, null, null,
+                false, defaultQualityScore);
+    }
+
+    public void addMappedPair(final int referenceSequenceIndex,
+                              final int alignmentStart1,
+                              final int alignmentStart2,
+                              final boolean isDuplicate1,
+                              final boolean isDuplicate2,
+                              final String cigar1,
+                              final String cigar2,
+                              final boolean firstOnly,
+                              final int defaultQualityScore) {
+        addMappedPair(referenceSequenceIndex, alignmentStart1, alignmentStart2, isDuplicate1, isDuplicate2, cigar1,
+                cigar2, false, true, firstOnly, defaultQualityScore);
+    }
+
+    public void addMappedPair(final int referenceSequenceIndex,
+                              final int alignmentStart1,
+                              final int alignmentStart2,
+                              final boolean isDuplicate1,
+                              final boolean isDuplicate2,
+                              final String cigar1,
+                              final String cigar2,
+                              final boolean strand1,
+                              final boolean strand2,
+                              final boolean firstOnly,
+                              final int defaultQualityScore) {
+        addMatePair(referenceSequenceIndex, alignmentStart1, alignmentStart2, false, false, isDuplicate1, isDuplicate2, cigar1, cigar2,
+                strand1, strand2, firstOnly, false, false, defaultQualityScore);
+    }
+
+    public void addMatePair(final int referenceSequenceIndex,
+                              final int alignmentStart1,
+                              final int alignmentStart2,
+                              final boolean record1Unmapped,
+                              final boolean record2Unmapped,
+                              final boolean isDuplicate1,
+                              final boolean isDuplicate2,
+                              final String cigar1,
+                              final String cigar2,
+                              final boolean strand1,
+                              final boolean strand2,
+                              final boolean firstOnly,
+                              final boolean record1NonPrimary,
+                              final boolean record2NonPrimary,
+                              final int defaultQualityScore) {
+        addMatePair("READ" + readNameCounter++, referenceSequenceIndex, alignmentStart1, alignmentStart2, record1Unmapped, record2Unmapped,
+                isDuplicate1, isDuplicate2, cigar1, cigar2, strand1, strand2, firstOnly, record1NonPrimary, record2NonPrimary,
+                defaultQualityScore);
+    }
+
+    private void addFragment(final int referenceSequenceIndex, final int alignmentStart, final boolean recordUnmapped, final boolean isDuplicate, final String cigar,
+                             final String qualityString, final int defaultQualityScore, final boolean isSecondary) {
+        final SAMRecord record = samRecordSetBuilder.addFrag("READ" + readNameCounter++, referenceSequenceIndex, alignmentStart, false,
+                recordUnmapped, cigar, qualityString, defaultQualityScore, isSecondary);
+
+        this.duplicateFlags.put(samRecordToDuplicatesFlagsKey(record), isDuplicate);
+    }
+
+    public void addMatePair(final String readName,
+                            final int referenceSequenceIndex1,
+                            final int referenceSequenceIndex2,
+                            final int alignmentStart1,
+                            final int alignmentStart2,
+                            final boolean record1Unmapped,
+                            final boolean record2Unmapped,
+                            final boolean isDuplicate1,
+                            final boolean isDuplicate2,
+                            final String cigar1,
+                            final String cigar2,
+                            final boolean strand1,
+                            final boolean strand2,
+                            final boolean firstOnly,
+                            final boolean record1NonPrimary,
+                            final boolean record2NonPrimary,
+                            final int defaultQuality) {
+        final List<SAMRecord> samRecordList = samRecordSetBuilder.addPair(readName, referenceSequenceIndex1, referenceSequenceIndex2, alignmentStart1, alignmentStart2,
+                record1Unmapped, record2Unmapped, cigar1, cigar2, strand1, strand2, record1NonPrimary, record2NonPrimary, defaultQuality);
+
+        final SAMRecord record1 = samRecordList.get(0);
+        final SAMRecord record2 = samRecordList.get(1);
+
+        if (this.noMateCigars) {
+            record1.setAttribute("MC", null);
+            record2.setAttribute("MC", null);
+        }
+
+        if (firstOnly) {
+            samRecordSetBuilder.getRecords().remove(record2);
+        }
+
+        this.duplicateFlags.put(samRecordToDuplicatesFlagsKey(record1), isDuplicate1);
+        this.duplicateFlags.put(samRecordToDuplicatesFlagsKey(record2), isDuplicate2);
+    }
+
+    public void addMatePair(final String readName,
+                            final int referenceSequenceIndex,
+                            final int alignmentStart1,
+                            final int alignmentStart2,
+                            final boolean record1Unmapped,
+                            final boolean record2Unmapped,
+                            final boolean isDuplicate1,
+                            final boolean isDuplicate2,
+                            final String cigar1,
+                            final String cigar2,
+                            final boolean strand1,
+                            final boolean strand2,
+                            final boolean firstOnly,
+                            final boolean record1NonPrimary,
+                            final boolean record2NonPrimary,
+                            final int defaultQuality) {
+        addMatePair(readName, referenceSequenceIndex,referenceSequenceIndex, alignmentStart1, alignmentStart2, record1Unmapped, record2Unmapped,
+                isDuplicate1, isDuplicate2, cigar1, cigar2, strand1, strand2, firstOnly, record1NonPrimary, record2NonPrimary, defaultQuality);
+    }
+
+    protected abstract void test();
+
+    /**
+     * Sets up the basic command line arguments for input and output and runs instanceMain.
+     */
+    public void runTest() {
+        final File input = createInputFile();
+
+        output = new File(outputDir, "output.sam");
+        args.add("INPUT=" + input.getAbsoluteFile());
+        args.add("OUTPUT=" + output.getAbsoluteFile());
+        Assert.assertEquals(runPicardCommandLine(args), 0);
+        test();
+    }
+
+    private File createInputFile() {
+        // Create the input file
+        final File input = new File(outputDir, "input.sam");
+        final SAMFileWriter writer = new SAMFileWriterFactory().makeSAMOrBAMWriter(samRecordSetBuilder.getHeader(), true, input);
+        for (final SAMRecord record : samRecordSetBuilder.getRecords()) {
+            writer.addAlignment(record);
+        }
+        writer.close();
+        return input;
+    }
+
+    public SamReader getInput() {
+        return samRecordSetBuilder.getSamReader();
+    }
+}
\ No newline at end of file
diff --git a/src/tests/java/picard/sam/testers/ValidateSamTester.java b/src/tests/java/picard/sam/testers/ValidateSamTester.java
new file mode 100644
index 0000000..abb4369
--- /dev/null
+++ b/src/tests/java/picard/sam/testers/ValidateSamTester.java
@@ -0,0 +1,22 @@
+package picard.sam.testers;
+
+import org.testng.Assert;
+import picard.cmdline.CommandLineProgramTest;
+import picard.sam.ValidateSamFile;
+
+import java.io.File;
+
+/**
+ * Created by ggrant on 6/12/14.
+ */
+public class ValidateSamTester extends CommandLineProgramTest {
+    public String getCommandLineProgramName() {
+        return ValidateSamFile.class.getSimpleName();
+    }
+
+    public void assertSamValid(final File samFile) {
+        final int validateExitStatus = runPicardCommandLine(new String[]{"I=" + samFile.getAbsolutePath()});
+        Assert.assertEquals(validateExitStatus, 0);
+    }
+
+}
diff --git a/src/tests/java/picard/util/BedToIntervalListTest.java b/src/tests/java/picard/util/BedToIntervalListTest.java
new file mode 100644
index 0000000..7a825bf
--- /dev/null
+++ b/src/tests/java/picard/util/BedToIntervalListTest.java
@@ -0,0 +1,103 @@
+package picard.util;
+
+import htsjdk.samtools.SAMException;
+import htsjdk.samtools.util.IOUtil;
+import org.testng.Assert;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import picard.PicardException;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+
+/**
+ * @author nhomer
+ */
+public class BedToIntervalListTest {
+
+    private final String TEST_DATA_DIR = "testdata/picard/util/BedToIntervalListTest";
+
+    private void doTest(final String inputBed, final String header) throws IOException, SAMException {
+        final File outputFile  = File.createTempFile("bed_to_interval_list_test.", ".interval_list");
+        outputFile.deleteOnExit();
+        final BedToIntervalList program = new BedToIntervalList();
+        final File inputBedFile = new File(TEST_DATA_DIR, inputBed);
+        program.INPUT = inputBedFile;
+        program.SEQUENCE_DICTIONARY = new File(TEST_DATA_DIR, header);
+        program.OUTPUT = outputFile;
+        program.doWork();
+
+        // Assert they are equal
+        IOUtil.assertFilesEqual(new File(inputBedFile.getAbsolutePath() + ".interval_list"), outputFile);
+    }
+
+
+    @Test(dataProvider = "testBedToIntervalListDataProvider")
+    public void testBedToIntervalList(final String inputBed) throws IOException {
+        doTest(inputBed, "header.sam");
+    }
+
+    // test a fixed bed file using different dictionaries
+    @Test(dataProvider = "testBedToIntervalListSequenceDictionaryDataProvider")
+    public void testBedToIntervalListSequenceDictionary(final String dictionary) throws IOException {
+        doTest("seq_dict_test.bed", dictionary);
+    }
+
+    // test for back dictionaries - we expect these to throw exceptions
+    @Test(dataProvider = "testBedToIntervalListSequenceDictionaryBadDataProvider",
+          expectedExceptions = {SAMException.class, PicardException.class})
+    public void testBedToIntervalListBadSequenceDictionary(final String dictionary) throws IOException {
+        doTest("seq_dict_test.bed", dictionary);
+    }
+
+    @Test(dataProvider = "testBedToIntervalListOutOfBoundsDataProvider", expectedExceptions = PicardException.class)
+    public void testBedToIntervalListOutOfBounds(final String inputBed) throws IOException {
+        doTest(inputBed, "header.sam");
+    }
+
+    @DataProvider
+    public Object[][] testBedToIntervalListDataProvider() {
+        return new Object[][]{
+                {"simple.bed"},
+                {"overlapping.bed"},
+                {"extended.bed"},
+                {"one_base_interval.bed"},
+                {"zero_base_interval.bed"}
+        };
+    }
+
+    // test for each of the file categories supported by SAMSequenceDictionaryExtractor
+    @DataProvider
+    public Object[][] testBedToIntervalListSequenceDictionaryDataProvider() {
+        return new Object[][]{
+                {"seq_dict_test.dictionary.interval_list"},
+                {"seq_dict_test.dictionary.fasta"},
+                {"seq_dict_test.dictionary.dict"},
+                {"seq_dict_test.dictionary.sam"},
+                {"seq_dict_test.dictionary.vcf"}
+        };
+    }
+
+    @DataProvider
+    public Object[][] testBedToIntervalListSequenceDictionaryBadDataProvider() {
+        return new Object[][]{
+                // a file that does not represent a dictionary
+                {"seq_dict_test.dictionary.bad"},
+                // a file that is a valid dictionary, but missing contigs in the dictionary
+                {"seq_dict_test.dictionary.bad.vcf"}
+        };
+    }
+
+    @DataProvider
+    public Object[][] testBedToIntervalListOutOfBoundsDataProvider() {
+        return new Object[][]{
+                {"end_after_chr.bed"},
+                {"end_before_chr.bed"},
+                {"missing_chr.bed"},
+                {"start_after_chr.bed"},
+                {"start_before_chr.bed"},
+                {"off_by_one_interval.bed"}
+        };
+    }
+}
diff --git a/src/tests/java/picard/util/ClippingUtilityTest.java b/src/tests/java/picard/util/ClippingUtilityTest.java
new file mode 100644
index 0000000..293303d
--- /dev/null
+++ b/src/tests/java/picard/util/ClippingUtilityTest.java
@@ -0,0 +1,380 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.util;
+
+import htsjdk.samtools.ReservedTagConstants;
+import htsjdk.samtools.SAMFileHeader;
+import htsjdk.samtools.SAMRecord;
+import htsjdk.samtools.util.SequenceUtil;
+import htsjdk.samtools.util.StringUtil;
+import org.testng.Assert;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import picard.util.IlluminaUtil.IlluminaAdapterPair;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ *
+ */
+public class ClippingUtilityTest {
+
+    @Test(dataProvider="clipTestData")
+    public void testBasicClip(final String testName, final String read, final String clip, final int minMatch, final double errRate, final int expected) {
+        final byte[] r = (read == null) ? null : StringUtil.stringToBytes(read);
+        final byte[] c = (clip == null) ? null : StringUtil.stringToBytes(clip);
+
+        final int result = ClippingUtility.findIndexOfClipSequence(r, c, minMatch, errRate);
+        Assert.assertEquals(result, expected, testName);
+
+    }
+
+
+
+    @Test(dataProvider = "clipTestData")
+    public void testSingleEndSamRecordClip(final String testName, final String read, final String clip, final int minMatch,
+                                           final double errRate, final int expected) {
+        if (read == null) return; // Silly case
+
+        final SingleEndAdapter adapter = new SingleEndAdapter(testName, clip);
+
+        for (final boolean reverse : new boolean[]{false, true}) {
+            final SAMRecord rec = new SAMRecord(null);
+            if (reverse) {
+                rec.setReadString(SequenceUtil.reverseComplement(read));
+                rec.setReadNegativeStrandFlag(true);
+            } else {
+                rec.setReadString(read);
+            }
+
+            final AdapterPair matchedAdapter = ClippingUtility.adapterTrimIlluminaSingleRead(rec, minMatch, errRate, adapter);
+            if (expected == -1) {
+                Assert.assertNull(matchedAdapter, testName);
+                Assert.assertNull(rec.getAttribute(ReservedTagConstants.XT), testName);
+            } else {
+                Assert.assertEquals(matchedAdapter, adapter, testName);
+                Assert.assertEquals(rec.getAttribute(ReservedTagConstants.XT), expected + 1, testName);
+
+                // Test that if minMatch is decreased, it still matches
+                for (int i = 1; i < minMatch - 3; ++i) {
+                    Assert.assertEquals(ClippingUtility.adapterTrimIlluminaSingleRead(rec, minMatch - i, errRate, adapter), adapter, testName);
+                }
+
+                // Skip this test for high error rates, because almost anything will match.
+                if (errRate < 0.5) {
+                    // Test that if minMatch is increased, it now fails to match
+                    Assert.assertNull(ClippingUtility.adapterTrimIlluminaSingleRead(rec, minMatch + 1, errRate, adapter), testName);
+
+                    // Test that if errRate is increased, it still matches
+                    Assert.assertNotNull(ClippingUtility.adapterTrimIlluminaSingleRead(rec, minMatch, errRate + 0.1, adapter), testName);
+                }
+
+                // Very low error threshold should cause match failure
+                Assert.assertNull(ClippingUtility.adapterTrimIlluminaSingleRead(rec, minMatch, 0.01, adapter), testName);
+            }
+        }
+
+    }
+
+    @Test(dataProvider="clipPairedTestData")
+    public void testPairedEndClip(final String testName, final String read1, final String read2, final AdapterPair expected) {
+
+        final SAMRecord rec1 = new SAMRecord(new SAMFileHeader());
+        rec1.setReadString(read1);
+        rec1.setFirstOfPairFlag(true);
+        final SAMRecord rec2 = new SAMRecord(new SAMFileHeader());
+        rec2.setReadString(read2);
+        rec2.setSecondOfPairFlag(true);
+
+        final AdapterPair result = ClippingUtility.adapterTrimIlluminaPairedReads(rec1, rec2,
+                IlluminaAdapterPair.INDEXED, IlluminaAdapterPair.PAIRED_END);
+        if (result != null) {
+            Assert.assertEquals(result.getName(), expected.getName(), testName);
+        }
+        else {
+            Assert.assertNull(expected, testName);
+        }
+    }
+
+    @Test
+    public void testOneSidedMatchSupersededByTwoSidedMatch() {
+        final int readLength = 36;
+        final int adapterLength = 30;
+        final String read1 = patchAdapterSubsequenceIntoRead(makeBogusReadString(readLength), IlluminaAdapterPair.SINGLE_END.get3PrimeAdapterInReadOrder(), adapterLength);
+        final String read2 = patchAdapterSubsequenceIntoRead(makeBogusReadString(readLength), IlluminaAdapterPair.SINGLE_END.get5PrimeAdapterInReadOrder(), adapterLength);
+        final SAMRecord rec1 = new SAMRecord(null); rec1.setReadString(read1);
+        final SAMRecord rec2 = new SAMRecord(null); rec2.setReadString(read2);
+        AdapterPair result = ClippingUtility.adapterTrimIlluminaPairedReads(rec1, rec2, adapterLength - 2, 0.1,
+                IlluminaAdapterPair.PAIRED_END, IlluminaAdapterPair.SINGLE_END);
+        Assert.assertEquals(result, IlluminaAdapterPair.SINGLE_END);
+
+        // Confirm that without SINGLE_END, PAIRED_END would one-sided match, if match length is short enough.
+        result = ClippingUtility.adapterTrimIlluminaPairedReads(rec1, rec2, adapterLength/2, 0.1, IlluminaAdapterPair.PAIRED_END);
+        Assert.assertEquals(result, IlluminaAdapterPair.PAIRED_END);
+
+        // However, without shorter match length, one-sided match will fail.
+        Assert.assertNull(ClippingUtility.adapterTrimIlluminaPairedReads(rec1, rec2, adapterLength - 2, 0.1, IlluminaAdapterPair.PAIRED_END));
+    }
+
+    @Test(dataProvider = "testAdapterInAllReadPositionsDataProvider")
+    public void testAdapterInAllReadPositions(final int readLength) {
+        final int minAdapterLength = 6;
+        for (final IlluminaAdapterPair adapterPair : IlluminaAdapterPair.values()) {
+            final AdapterMarker marker = new AdapterMarker(adapterPair);
+            for (int adapterPosition = 0; adapterPosition < readLength; ++adapterPosition) {
+                final SAMRecord rec = createSamRecordWithAdapterSequence(readLength, adapterPair, adapterPosition);
+                final AdapterPair matchedAdapter = ClippingUtility.adapterTrimIlluminaSingleRead(rec, minAdapterLength, 0.1, adapterPair);
+                final Object xt = rec.getAttribute(ReservedTagConstants.XT);
+
+                rec.setAttribute(ReservedTagConstants.XT, null);
+                final AdapterPair truncatedAdapter = marker.adapterTrimIlluminaSingleRead(rec, minAdapterLength, 0.1);
+                final Object xtFromMarker = rec.getAttribute(ReservedTagConstants.XT);
+
+                if (adapterPosition <= readLength - minAdapterLength) {
+                    Assert.assertEquals(matchedAdapter, adapterPair, "Failed at position " + adapterPosition);
+                    Assert.assertEquals((Integer)xt, Integer.valueOf(adapterPosition + 1));
+                    Assert.assertNotNull(truncatedAdapter);
+                    Assert.assertEquals((Integer)xtFromMarker, Integer.valueOf(adapterPosition + 1));
+                } else {
+                    Assert.assertNull(matchedAdapter);
+                    Assert.assertNull(xt);
+                    Assert.assertNull(truncatedAdapter);
+                    Assert.assertNull(xtFromMarker);
+                }
+            }
+        }
+    }
+
+    private SAMRecord createSamRecordWithAdapterSequence(final int readLength, final IlluminaAdapterPair adapterPair, final int adapterPosition) {
+        final String adapterString = adapterPair.get3PrimeAdapterInReadOrder();
+        final int replacementLength = Math.min(adapterString.length(), readLength - adapterPosition);
+        final String adapterSubstring = adapterString.substring(0, replacementLength);
+        final String readBases = replaceSubstring(makeBogusReadString(readLength), adapterSubstring, adapterPosition, adapterSubstring.length());
+        final SAMRecord rec = new SAMRecord(null);
+        rec.setReadString(readBases);
+        return rec;
+    }
+
+    @DataProvider(name="testAdapterInAllReadPositionsDataProvider")
+    public Object[][] testAdapterInAllReadPositionsDataProvider() {
+        return new Object[][]{{100}, {36}};
+    }
+
+    @DataProvider(name="clipTestData")
+    public Object[][] getClipTestData() {
+        final String FORWARD = IlluminaAdapterPair.PAIRED_END.get3PrimeAdapter();
+        final String SE_FORWARD = IlluminaAdapterPair.SINGLE_END.get3PrimeAdapter();
+        final String REVERSE = IlluminaAdapterPair.PAIRED_END.get5PrimeAdapterInReadOrder();
+        return new Object[][] {
+                {"Simple test 1", "AAAAACCCCCAGATCGGAAGAGCA", "AGATCGGAAGAGCG", 14, 0.15, 10},
+                {"Simple test 2", "AAAAACCCCCGGGGGAGATCGGAAGAGCA", "AGATCGGAAGAGCG", 14, 0.15, 15},
+                {"No adapter", "AAAAACCCCCGGGGGTTTTT", "AGATCGGAAGAGCG", 6, 0.15, -1},
+                {"Partial adapter", "AAAAACCCCCTGATCGGAA", "AGATCGGAAGAGCG", 9, 0.15, 10},
+// no longer support clips in middle of read
+//          {"Adapter+Primer", "AAAAACCCCCAGATCGGAAGAGCGGTTCAGCAGGAATGCCGAGACCGATCTCGTATGCCGTCTTCTGCTTG", "AGATCGGAAGAGCG", 6, 0.15, 10},
+                {"No sequence", null, "AGATCGGAAGAGCG", 6, 0.15, -1},
+                {"Read too short", "AGATCGGAAG", "AGATCGGAAGAGCG", 11, 0.15, -1},
+                {"All No Calls", "AAACCCNNNNNNNNNNNNNNNNNNNN", "AGATCGGAAGAGCG", 6, 0.15, -1},
+                {"From Test Data1", "CGGCATTCCTGCTGAACCGAGATCGGAAGAGCGTCGTGTAGGGAAAGGGGGTGGATCTCGGTGGGCGGCGTGTTGT", REVERSE, 57, 0.15, 19},
+                {"From Test Data2a", "CGGAAGAGCGGTTCAGCAGGAATGCCGAGATCCGAA", REVERSE, 9, 0.14, 27},  // XT:i:28
+                {"From Test Data2b", "CGGAAGAGCGGTTCAGCAGGAATGCCGAGATCGGAA", REVERSE, 10, 0.14, -1},  // only matches 9
+                {"From PE Test Data1", "CGGTTCAGCAGGAATGCCGAGATCGGAAGAGCGGGT", FORWARD, 17, 0.14, 19},
+                {"From PE Test Data2", "CGGTTCAGCAGGAATGCCGAGATCGGAAGAGCGGGT", REVERSE, 5, 0.14, -1},
+                new Object[] {"From Test 8-clipped", "TGGGGTGGTTATTGTTGATTTTTGTTTGTGTGTTAGGTTGTTTGTGTTAGTTTTTTATTTTATTTTCGAGATCGAA", FORWARD, 8, 0.14, 68},
+                {"50% can be bad", "AAAAACCCCCAGGTCGGAAGAGCG", "AGATCGGAAGAGCG", 5, 0.5, 18},        // 18?
+
+                {"From 30E54AAXX.5.a", "ATATCTGAAGATCTCGTATGCCGTCTTCTGCTTG", "AGATCGGAAGAGCTCGTATGCCGTCTTCTGCTTG", 34, 0.14, 0},  // 0!? From KT test case
+                {"From 30E54AAXX.5.b", "ATATCTGAAGATCTCGTATGCCGTCTTCTGCTTG", SE_FORWARD, 34, 0.14, 0},  // 1?? From KT test case
+        };
+    }
+
+    @DataProvider(name="clipPairedTestData")
+    public Object[][] getClipPairedTestData() {
+        return new Object[][] {
+                {"Basic positive paired test matching",    "CTACTGGCGCTGAAACTGAGCAGCCAAGCAGATCGG", "GCTTGGCTGCTCAGTTTCAGCGCCAGTAGAGATCGG", IlluminaAdapterPair.INDEXED},
+                // This matches on first end and matches at higher stringency on that one side
+                {"Basic positive first end one-sided test matching", "CTACTGGCGCTGAAAAGATCGGAAGAGCGGTTCAGC", "AAAAAATTTTTTCCCCCCGGGGGGAAAAAATTTTTT", IlluminaAdapterPair.PAIRED_END},
+                // This matches on second end and matches at higher stringency on that one side
+                {"Basic positive second end one-sided test matching", "AAAAAATTTTTTCCCCCCGGGGGGAAAAAATTTTTT", "AAAAAATTTTTTCCCAGATCGGAAGAGCGTCGTGTA", IlluminaAdapterPair.PAIRED_END},
+                // This matches on one side and does not match at higher stringency on that one side
+                {"Basic negative one-sided test matching", "GGCGCTGAAACTACTGGCGCTGAAAAGATCGGAAGA", "AAAAAATTTTTTCCCCCCGGGGGGAAAAAATTTTTT", null},
+                // These match but at different positions.  No clip should be done.
+                {"Mis-match paired test matching",    "CTACTGGCGCTGAAACTGAGCAGCCAAGCAGATCGG", "AGCTTGGCTGCTCAGTTTCAGCGCCAGTAGAGATCG", null},
+        };
+    }
+
+    private static class SingleEndAdapter implements AdapterPair {
+        private final String name;
+        private final String threePrimeAdapter;
+
+        private SingleEndAdapter(final String name, final String threePrimeAdapter) {
+            this.name = name;
+            this.threePrimeAdapter = threePrimeAdapter;
+        }
+
+        @Override
+        public String get3PrimeAdapter() {
+            return threePrimeAdapter;
+        }
+
+        @Override
+        public String get3PrimeAdapterInReadOrder() {
+            return threePrimeAdapter;
+        }
+
+        @Override
+        public byte[] get3PrimeAdapterBytes() {
+            return StringUtil.stringToBytes(threePrimeAdapter);
+        }
+
+        @Override
+        public byte[] get3PrimeAdapterBytesInReadOrder() {
+            return get3PrimeAdapterBytes();
+        }
+
+        @Override
+        public String get5PrimeAdapter() {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public String get5PrimeAdapterInReadOrder() {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public byte[] get5PrimeAdapterBytes() {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public byte[] get5PrimeAdapterBytesInReadOrder() {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public String getName() {
+            return name;
+        }
+
+    }
+
+    /**
+     * @return A String of given length with 6 As, 6 Cs, 6 Gs, etc. until length is reached.
+     */
+    private static String makeBogusReadString(final int len) {
+        final StringBuilder builder = new StringBuilder(len);
+        final Map<Character, Character> nextChar = new HashMap<Character, Character>();
+        nextChar.put('A', 'C');
+        nextChar.put('C', 'G');
+        nextChar.put('G', 'T');
+        nextChar.put('T', 'A');
+        for (char curChar = 'A'; true; curChar = nextChar.get(curChar)) {
+            for (int i = 0; i < 6; ++i) {
+                if (builder.length() == len) return builder.toString();
+                builder.append(curChar);
+            }
+        }
+    }
+
+    private static String patchAdapterSubsequenceIntoRead(final String read, final String adapter, final int length) {
+        return replaceSubstring(read, adapter.substring(0, length), read.length() - length, read.length());
+    }
+
+    private static String replaceSubstring(final String s, final String replacement, final int position, final int charsToReplace) {
+        final StringBuilder sb = new StringBuilder(s);
+        sb.replace(position, position + charsToReplace, replacement);
+        return sb.toString();
+    }
+
+
+    @Test
+    public void testAdapterTruncation() {
+        final AdapterMarker marker = new AdapterMarker(30,
+                IlluminaUtil.IlluminaAdapterPair.INDEXED,
+                IlluminaUtil.IlluminaAdapterPair.DUAL_INDEXED,
+                IlluminaUtil.IlluminaAdapterPair.NEXTERA_V2,
+                IlluminaUtil.IlluminaAdapterPair.FLUIDIGM);
+        // INDEXED and DUAL_INDEXED should collapse at length 30
+        Assert.assertTrue(marker.getAdapters().length < 4, "Did not collapse: " + marker.getAdapters().length);
+    }
+
+    /**
+     * Confirm that after the requisite number of sightings of adapter, the list is trimmed
+     */
+    @Test(dataProvider = "testAdapterListTruncationDataProvider")
+    public void testAdapterListTruncation(final IlluminaAdapterPair adapterPair) {
+        final int thresholdForTruncatingAdapterList = 20;
+        final int readLength = 100;
+
+        // Throw all the adapter pairs into the marker.  There is some danger in doing this because
+        // IlluminaAdapterPair.ALTERNATIVE_SINGLE_END has 3' that is a substring of some of the others.  In the enum it appears
+        // last so it is tested last.
+        final AdapterMarker marker =
+                new AdapterMarker(IlluminaUtil.IlluminaAdapterPair.values()).
+                        setThresholdForSelectingAdaptersToKeep(thresholdForTruncatingAdapterList);
+        int adapterPosition = 1;
+
+        Assert.assertTrue(adapterPosition + thresholdForTruncatingAdapterList < readLength - ClippingUtility.MIN_MATCH_BASES,
+                "Test is configured improperly -- eventually will not be enough adapter bases in read.");
+
+        int originalNumberOfAdapters = marker.getAdapters().length;
+        for (int i = 0; i < thresholdForTruncatingAdapterList; ++i) {
+
+            // First, a read with no adapter in it.
+            SAMRecord rec = new SAMRecord(null);
+            rec.setReadString(makeBogusReadString(readLength));
+            AdapterPair matchedPair = marker.adapterTrimIlluminaSingleRead(rec);
+            Assert.assertNull(matchedPair);
+            Assert.assertNull(rec.getAttribute(ReservedTagConstants.XT));
+
+            // Adapter list should not be truncated yet
+            Assert.assertEquals(marker.getAdapters().length, originalNumberOfAdapters);
+
+            // Then, a record with some adapter sequence in it.
+            rec = createSamRecordWithAdapterSequence(readLength, adapterPair, adapterPosition);
+            matchedPair = marker.adapterTrimIlluminaSingleRead(rec);
+            Assert.assertNotNull(matchedPair);
+            Assert.assertEquals(rec.getIntegerAttribute(ReservedTagConstants.XT).intValue(), adapterPosition + 1,
+                    rec.getReadString() + " matched " + matchedPair);
+
+            // Put adapter in different place next time.
+            adapterPosition++;
+        }
+
+        Assert.assertEquals(marker.getAdapters().length, 1, "Did not truncate adapter list to 1 element");
+        Assert.assertTrue(marker.getAdapters()[0].getName().contains(adapterPair.getName()),
+                String.format("Expected '%s' to contain '%s'", marker.getAdapters()[0].getName(), adapterPair.getName()));
+    }
+
+    @DataProvider(name="testAdapterListTruncationDataProvider")
+    public Object[][] testAdapterListTruncationDataProvider() {
+        Object[][] ret = new Object[IlluminaAdapterPair.values().length][];
+        for (int i = 0; i < ret.length; ++i) {
+            ret[i] = new Object[]{IlluminaAdapterPair.values()[i]};
+        }
+        return ret;
+    }
+}
diff --git a/src/tests/java/picard/util/DelimitedTextFileWithHeaderIteratorTest.java b/src/tests/java/picard/util/DelimitedTextFileWithHeaderIteratorTest.java
new file mode 100644
index 0000000..21803e2
--- /dev/null
+++ b/src/tests/java/picard/util/DelimitedTextFileWithHeaderIteratorTest.java
@@ -0,0 +1,96 @@
+package picard.util;
+
+import htsjdk.samtools.util.IterableAdapter;
+import htsjdk.samtools.util.StringUtil;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+
+public class DelimitedTextFileWithHeaderIteratorTest {
+    @Test
+    public void basicParsingTest() throws Exception {
+        final String[][] data = new String[][] {
+                new String[] {"FOO", "BAR", "SPLAT"},
+                new String[] {"1", "2", "3"},
+                new String[] {"a", "b", "c"},
+                new String[] {"foo", "bar", "splat"},
+        };
+
+        final File tmp = File.createTempFile("tabbedTextTest.", ".txt");
+        tmp.deleteOnExit();
+        final BufferedWriter out = new BufferedWriter(new FileWriter(tmp));
+
+        for (final String[] fields : data) {
+            out.write(StringUtil.join("\t", fields));
+            out.newLine();
+        }
+
+        out.close();
+
+        final TabbedInputParser parser = new TabbedInputParser(false, tmp);
+        final DelimitedTextFileWithHeaderIterator fileIterator = new DelimitedTextFileWithHeaderIterator(parser);
+        for (final String col : data[0]) Assert.assertTrue(fileIterator.hasColumn(col));
+
+        int i=1;
+        for (final DelimitedTextFileWithHeaderIterator.Row row : new IterableAdapter<DelimitedTextFileWithHeaderIterator.Row>(fileIterator)) {
+            final String[] expected = data[i++];
+            Assert.assertEquals(row.getFields(), expected);
+            Assert.assertEquals(row.getCurrentLine(), StringUtil.join("\t", expected));
+        }
+
+        Assert.assertEquals(i, data.length);
+    }
+
+    @Test
+    public void parsingWithColumnHeadersTest() throws Exception {
+        final String[] headers = {"STRING", "STRING2", "NUMBER"};
+
+        final String[][] data = new String[][] {
+                headers,
+                new String[] {"1", "2", "3"},
+                new String[] {"a", "b", "2"},
+                new String[] {"foo", "bar", ""},
+        };
+
+
+        final File tmp = File.createTempFile("tabbedTextTest.", ".txt");
+        tmp.deleteOnExit();
+        final BufferedWriter out = new BufferedWriter(new FileWriter(tmp));
+
+        for (final String[] fields : data) {
+            out.write(StringUtil.join("\t", fields));
+            out.newLine();
+        }
+
+        out.close();
+
+        final TabbedInputParser parser = new TabbedInputParser(false, tmp);
+        final DelimitedTextFileWithHeaderIterator fileIterator = new DelimitedTextFileWithHeaderIterator(parser);
+        for (final String col : headers) Assert.assertTrue(fileIterator.hasColumn(col));
+
+        int i=1;
+        for (final DelimitedTextFileWithHeaderIterator.Row row : new IterableAdapter<DelimitedTextFileWithHeaderIterator.Row>(fileIterator)) {
+            final String[] expected = data[i++];
+            final String[] actual = row.getFields();
+            for (int j = 0; j < expected.length; j++) {
+                Assert.assertTrue((expected[j].equals("") && actual[j] == null) || expected[j].equals(actual[j]));
+            }
+            Assert.assertEquals(row.getCurrentLine(), StringUtil.join("\t", expected));
+            try {
+                row.getField(headers[0]);
+                row.getField(headers[1]);
+                row.getIntegerField(headers[2]);
+            }
+            catch(Exception e) {
+                Assert.fail("Failed to parse one of the fields in " + row.getCurrentLine() + ": " + e.getMessage());
+            }
+        }
+
+        Assert.assertEquals(i, data.length);
+    }
+
+
+}
diff --git a/src/tests/java/picard/util/FifoBufferTest.java b/src/tests/java/picard/util/FifoBufferTest.java
new file mode 100644
index 0000000..76adab1
--- /dev/null
+++ b/src/tests/java/picard/util/FifoBufferTest.java
@@ -0,0 +1,74 @@
+package picard.util;
+
+import htsjdk.samtools.util.Md5CalculatingInputStream;
+import htsjdk.samtools.util.Md5CalculatingOutputStream;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+import java.io.BufferedOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.PrintStream;
+import java.util.Random;
+
+/**
+ * Tests for the FifoBuffer class. Generates (deterministically!) random files of certain sizes
+ * and then pipes them through the FifoBuffer class and checks that input and output MD5s match.
+ */
+public class FifoBufferTest {
+
+    /* Simply invokes the real test method many times with different inputs. */
+    @Test public void testFifoBuffer() throws IOException {
+        test(1);
+        test(2);
+        test(3);
+        test(4);
+        test(5);
+        test(6);
+        test(7);
+        test(8);
+        test(9);
+        test(10);
+        test(10.1345);
+        test(150);
+    }
+
+    /**
+     * Writes a file of the given size in megabytes fill with random bytes, initialized using (int) megabytes as the
+     * seed to the random number generator. Then pipes through FifoBuffer and confirms that output == input via md5.
+     */
+    public void test(final double megabytes) throws IOException {
+        final File inputFile  = File.createTempFile("fifo_input.", ".foo");
+
+        // Generate a file with a set number of megabytes of random data
+        final int nBytes = (int) (megabytes * 1024 * 1024);
+        {
+            final Random random = new Random(nBytes);
+            final BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(inputFile));
+            final int bytesPerWrite = 127;
+            final byte[] bytes = new byte[bytesPerWrite];
+            for (int i=0; i<nBytes; i+=bytesPerWrite) {
+                random.nextBytes(bytes);
+                out.write(bytes);
+            }
+            out.close();
+        }
+
+        // Run the input file through the FifoBuffer and back into another file
+        final Md5CalculatingInputStream in   = new Md5CalculatingInputStream(new FileInputStream(inputFile), null);
+        final Md5CalculatingOutputStream out = new Md5CalculatingOutputStream(new FileOutputStream("/dev/null"), null);
+        final PrintStream outStream = new PrintStream(out);
+        final FifoBuffer buffer = new FifoBuffer(in, outStream);
+        buffer.BUFFER_SIZE = 128 * 1024 * 1024;
+        buffer.doWork();
+
+        in.close();
+        out.close();
+        final String inputMd5  = in.md5();
+        final String outputMd5 = out.md5();
+        Assert.assertEquals(outputMd5, inputMd5, "MD5s do not match between input and output.");
+        inputFile.delete();
+    }
+}
diff --git a/src/tests/java/picard/util/FileChannelJDKBugWorkAroundTest.java b/src/tests/java/picard/util/FileChannelJDKBugWorkAroundTest.java
new file mode 100644
index 0000000..b5e1c8d
--- /dev/null
+++ b/src/tests/java/picard/util/FileChannelJDKBugWorkAroundTest.java
@@ -0,0 +1,36 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.util;
+
+import org.testng.annotations.Test;
+
+/**
+ * @author alecw at broadinstitute.org
+ */
+public class FileChannelJDKBugWorkAroundTest {
+    @Test
+    public void testBasic() {
+        FileChannelJDKBugWorkAround.doBugWorkAround();
+    }
+}
diff --git a/src/tests/java/picard/util/IlluminaUtilTest.java b/src/tests/java/picard/util/IlluminaUtilTest.java
new file mode 100644
index 0000000..a369c67
--- /dev/null
+++ b/src/tests/java/picard/util/IlluminaUtilTest.java
@@ -0,0 +1,87 @@
+package picard.util;
+
+import org.testng.Assert;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+
+/**
+ * Just some simple tests for the IlluminaUtil.getTileFromReadName() method for now.
+ *
+ * @author Tim Fennell
+ */
+public class IlluminaUtilTest {
+    @Test(dataProvider="readNames") public void testFindTileInReadName(final String readName, final Integer tile) {
+        final Integer otherTile = IlluminaUtil.getTileFromReadName(readName);
+        Assert.assertEquals(otherTile, tile, "Tile numbers do not match for read name: " + readName);
+    }
+
+    @Test public void performanceTestGetTileFromReadName() {
+        final int ITERATIONS = 5000000;
+
+        final long startTime = System.currentTimeMillis();
+        for (int i=0; i<ITERATIONS; ++i) {
+            final Integer tile = IlluminaUtil.getTileFromReadName("300WFAAXX090909:1:1:1024:978#0/1");
+            if (tile == null || tile != 1) throw new RuntimeException("WTF?");
+        }
+        final long endTime = System.currentTimeMillis();
+
+        System.out.println("Time taken: " + (endTime-startTime) + "ms.");
+    }
+
+    @DataProvider(name="readNames")
+    public Object[][] readNames() {
+        return new Object[][] {
+                new Object[] {"300WFAAXX:1:119:1024:978#0/1", 119},
+                new Object[] {"300WFAAXX090909:1:1:1024:978#0/1", 1},
+                new Object[] {"FOO", null},
+                new Object[] {"FOO:BAR_splat", null}
+        };
+    }
+
+    public static final byte [] iToB(int [] intVals) {
+        byte [] byteVals = new byte[intVals.length];
+        for(int i = 0; i < byteVals.length; i++) {
+            byteVals[i] = (byte) intVals[i];
+        }
+        return byteVals;
+    }
+
+    public byte[][] byteBuffersSizeCopy(byte [][] bytes) {
+        byte [][] outBytes = new byte[bytes.length][];
+        for(int i = 0; i < bytes.length; i++) {
+            outBytes[i] = new byte[bytes[i].length];
+        }
+
+        return outBytes;
+    }
+
+    @DataProvider(name = "solexaQualStrToPhreds")
+    public Object [][] solexaQualStrToPhredsToPhreds() {
+        return new Object[][] {
+            new Object[] {
+                "x at Axy" + ((char)156) + ((char) 157) + ((char) 0) + ((char) 1) + "?",
+                new byte[][] {
+                    new byte[]{}, iToB(new int[]{56}),  iToB(new int[]{0, 1, 56, 57, 92, 93}),
+                        iToB(new int[]{-64, -63, -1}), new byte[]{}
+                }
+            },
+            new Object[] {
+                "nNpZo" + ((char)250) + ((char) 255) + ((char) 1) + ((char) 1) + "CCaB",
+                new byte[][] {
+                    iToB(new int[]{46, 14}),  iToB(new int[]{48, 26, 47, -70, -65, -63, -63, 3, 3, 33}), iToB(new int[]{2})
+                }
+            }
+        };
+    }
+
+    /*
+    @Test(dataProvider = "solexaQualStrToPhreds")
+    public void makePhredBinaryFromSolexaQualityAscii_1_3_toArrays(final String solexaQualities, final int offset, final byte [][] expectedBuffers) {
+        byte [][] actualBuffers = byteBuffersSizeCopy(expectedBuffers);
+        IlluminaUtil.makePhredBinaryFromSolexaQualityAscii_1_3(solexaQualities, offset, actualBuffers);
+
+        for(int i = 0; i < expectedBuffers.length; i++) {
+            Assert.assertEquals(expectedBuffers[i], actualBuffers[i]);
+        }
+    }*/
+}
diff --git a/src/tests/java/picard/util/IntervalListScattererTest.java b/src/tests/java/picard/util/IntervalListScattererTest.java
new file mode 100644
index 0000000..ae106b8
--- /dev/null
+++ b/src/tests/java/picard/util/IntervalListScattererTest.java
@@ -0,0 +1,203 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2010 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.util;
+
+import htsjdk.samtools.util.Interval;
+import htsjdk.samtools.util.IntervalList;
+import org.testng.Assert;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.NoSuchElementException;
+
+/**
+ * Very basic test for scatter functionality in IntervalListTools
+ */
+public class IntervalListScattererTest {
+    private static final IntervalList LIST_TO_SCATTER;
+
+    static {
+        LIST_TO_SCATTER = IntervalList.fromFile(new File("testdata/picard/util/scatterable.interval_list"));
+        Assert.assertEquals(LIST_TO_SCATTER.getUniqueBaseCount(), 200, "Wrong unique base count");
+    }
+
+    private static class Testcase {
+        final IntervalList source;
+        final List<IntervalList> expectedScatter;
+        final int scatterWidth;
+        final IntervalListScatterer.Mode mode;
+
+        @Override
+        public String toString() {
+            return "Testcase{" +
+                    "scatterWidth=" + scatterWidth +
+                    ", mode=" + mode +
+                    '}';
+        }
+
+        private Testcase(final IntervalList source, final int scatterWidth, final IntervalListScatterer.Mode mode, final List<IntervalList> expectedScatter) {
+            this.source = source;
+            this.expectedScatter = expectedScatter;
+            this.scatterWidth = scatterWidth;
+            this.mode = mode;
+        }
+    }
+
+    private static final List<Testcase> testcases = new ArrayList<Testcase>();
+
+    static {
+        testcases.add(new Testcase(
+                LIST_TO_SCATTER, 2, IntervalListScatterer.Mode.INTERVAL_SUBDIVISION,
+                Arrays.asList(
+                        composeIntervalList(LIST_TO_SCATTER, "1",
+                                30000, 30098,
+                                30100, 30100
+                        ),
+                        composeIntervalList(LIST_TO_SCATTER, "1",
+                                30101, 30150,
+                                30200, 30249
+                        )
+                )
+        ));
+        
+        testcases.add(new Testcase(
+                LIST_TO_SCATTER, 4, IntervalListScatterer.Mode.INTERVAL_SUBDIVISION,
+                Arrays.asList(
+                        composeIntervalList(LIST_TO_SCATTER, "1",
+                                30000, 30049
+                        ),
+                        composeIntervalList(LIST_TO_SCATTER, "1",
+                                30050, 30098,
+                                30100, 30100
+                        ),
+                        composeIntervalList(LIST_TO_SCATTER, "1",
+                                30101, 30150
+                        ),
+                        composeIntervalList(LIST_TO_SCATTER, "1",
+                                30200, 30249
+                        )
+                )
+        ));
+
+        testcases.add(new Testcase(
+                LIST_TO_SCATTER, 5, IntervalListScatterer.Mode.INTERVAL_SUBDIVISION,
+                Arrays.asList(
+                        composeIntervalList(LIST_TO_SCATTER, "1",
+                                30000, 30039
+                        ),
+                        composeIntervalList(LIST_TO_SCATTER, "1",
+                                30040, 30079
+                        ),
+                        composeIntervalList(LIST_TO_SCATTER, "1",
+                                30080, 30098,
+                                30100, 30120
+                        ),
+                        composeIntervalList(LIST_TO_SCATTER, "1",
+                                30121, 30150,
+                                30200, 30209
+                        ),
+                        composeIntervalList(LIST_TO_SCATTER, "1",
+                                30210, 30249
+                        )
+                )
+        ));
+
+        testcases.add(new Testcase(
+                LIST_TO_SCATTER, 6, IntervalListScatterer.Mode.BALANCING_WITHOUT_INTERVAL_SUBDIVISION,
+                Arrays.asList(
+                        composeIntervalList(LIST_TO_SCATTER, "1",
+                                30000, 30098
+                        ),
+                        composeIntervalList(LIST_TO_SCATTER, "1",
+                                30100, 30150
+                        ),
+                        composeIntervalList(LIST_TO_SCATTER, "1",
+                                30200, 30249
+                        )
+                )
+        ));
+
+        testcases.add(new Testcase(
+                LIST_TO_SCATTER, 2, IntervalListScatterer.Mode.BALANCING_WITHOUT_INTERVAL_SUBDIVISION,
+                Arrays.asList(
+                        composeIntervalList(LIST_TO_SCATTER, "1",
+                                30000, 30098
+                        ),
+                        composeIntervalList(LIST_TO_SCATTER, "1",
+                                30100, 30150,
+                                30200, 30249
+                        )
+                )
+        ));
+
+        testcases.add(new Testcase(
+                LIST_TO_SCATTER, 1, IntervalListScatterer.Mode.BALANCING_WITHOUT_INTERVAL_SUBDIVISION,
+                Arrays.asList(
+                        composeIntervalList(LIST_TO_SCATTER, "1",
+                                30000, 30098,
+                                30100, 30150,
+                                30200, 30249
+                        )
+                )
+        ));
+    }
+
+    @DataProvider
+    public Object[][] testScatterTestcases() {
+        final Object[][] objects = new Object[testcases.size()][];
+        for (int i = 0; i < objects.length; i++) {
+            objects[i] = new Object[]{testcases.get(i)};
+        }
+        return objects;
+    }
+
+    @Test(dataProvider = "testScatterTestcases")
+    public void testScatter(final Testcase tc) {
+        final IntervalListScatterer scatterer = new IntervalListScatterer(tc.mode);
+        final List<IntervalList> scatter = scatterer.scatter(tc.source, tc.scatterWidth);
+        Assert.assertEquals(scatter, tc.expectedScatter);
+    }
+    
+    private static IntervalList composeIntervalList(final IntervalList source, final String chromosome, final int... segmentsByPair) {
+        final IntervalList intervals = new IntervalList(source.getHeader());
+        for (int i = 0; i < segmentsByPair.length; i += 2) {
+            final Interval parentInterval = lookupIntervalContainingLocus(source, chromosome, segmentsByPair[i]);
+            intervals.add(new Interval("1", segmentsByPair[i], segmentsByPair[i + 1], parentInterval.isNegativeStrand(), parentInterval.getName()));
+        }
+        return intervals;
+    }
+    
+    private static Interval lookupIntervalContainingLocus(final IntervalList source, final String chromosome, final int startIndex) {
+        for (final Interval interval : source) {
+            if (interval.getSequence().equals(chromosome) && startIndex >= interval.getStart() && startIndex <= interval.getEnd()) {
+                return interval;
+            }
+        }
+        throw new NoSuchElementException();
+    }
+}
diff --git a/src/tests/java/picard/util/MathUtilTest.java b/src/tests/java/picard/util/MathUtilTest.java
new file mode 100644
index 0000000..f5b2969
--- /dev/null
+++ b/src/tests/java/picard/util/MathUtilTest.java
@@ -0,0 +1,86 @@
+package picard.util;
+
+import org.testng.Assert;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+
+import static picard.util.MathUtil.divide;
+
+/**
+ * @author mccowan
+ */
+public class MathUtilTest {
+    @Test
+    public void logMathTest() {
+        Assert.assertEquals(MathUtil.LOG_10_MATH.getLogValue(10), 1d, 0.00001d);
+        Assert.assertEquals(MathUtil.LOG_10_MATH.getNonLogValue(1), 10d, 0.00001d);
+        Assert.assertEquals(MathUtil.LOG_10_MATH.mean(5, 5, 5), 5d, 0.00001d);
+        // http://www.wolframalpha.com/input/?i=log10%2810%5E1.23%2B10%5E4.56%2B10%5E99999%29
+        Assert.assertEquals(MathUtil.LOG_10_MATH.sum(1.23, 4.56, 2), 4.5613970317323586660874152202433434022756298235604568d, 0.00001d);
+        // http://www.wolframalpha.com/input/?i=log10%2810%5E1.23+*+10%5E4.56+*+10%5E2%29
+        Assert.assertEquals(MathUtil.LOG_10_MATH.product(1.23, 4.56, 2), 7.7899999999999999999999999999999999999999999999999999d, 0.00001d);
+
+        TestNGUtil.assertEqualDoubleArrays(MathUtil.LOG_10_MATH.getLogValue(new double[]{0.1, 1.0, 10.0}), new double[]{-1.0, 0.0, 1.0}, 0.00001d);
+        TestNGUtil.assertEqualDoubleArrays(MathUtil.LOG_2_MATH.getLogValue(new double[]{0.5, 1.0, 2.0}), new double[]{-1.0, 0.0, 1.0}, 0.00001d);
+    }
+
+    @DataProvider
+    public Object[][] seqMethodTestCases() {
+        return new Object[][] {
+                new Object[] {0d, 5d, 1d,     new double[] {0,1,2,3,4,5}},
+                new Object[] {0d, 0.5d, 0.1d, new double[] {0, 0.1, 0.2, 0.3, 0.4, 0.5}},
+                new Object[] {0d, 0.5d, 0.11d,new double[] {0, 0.11, 0.22, 0.33, 0.44}},
+                new Object[] {50d, 55d, 1.25d,new double[] {50, 51.25, 52.5, 53.75, 55}},
+                new Object[] {10d, 0d, 02d,    new double[] {}},
+                new Object[] {10d, 0d, -2d,    new double[] {10, 8, 6, 4, 2, 0}},
+        };
+    }
+
+    @Test(dataProvider="seqMethodTestCases")
+    public void testSeqGeneration(final double from, final double to, final double by, final double[] expected) {
+        final double[] actual = MathUtil.seq(from, to, by);
+        Assert.assertEquals(actual.length, expected.length);
+
+        for (int i=0; i<expected.length; ++i) {
+            Assert.assertTrue(Math.abs(actual[i] - expected[i]) < 0.0000001);
+        }
+    }
+
+    @DataProvider
+    public Object[][] divideMethodTestCases() {
+        return new Object[][] {
+                new Object[] {new double [] {1, 2, 3, 4}, new double [] {2, 3, 4, -5}, new double[] {.5, 2.0/3, 3.0/4, -4.0/5}},
+                new Object[] {new double [] {100}, new double [] {200}, new double[] {.5}},
+                new Object[] {new double [] {0, 4, -3, 2}, new double [] {200, 30, 32, 12}, new double[] {0, 4.0/30, -3.0/32, 2.0/12}},
+                new Object[] {new double [] {}, new double [] {}, new double[] {}},
+
+        };
+    }
+
+    @Test(dataProvider = "divideMethodTestCases")
+    public void testDivide(final double [] numerators, final double [] denominators, final double [] expected) {
+        assertEquals(divide(numerators, denominators), expected);
+    }
+
+    @DataProvider
+    public Object[][] divideMethodFailTestCases() {
+        return new Object[][] {
+                new Object[] {new double [] { 1, 2, 3, 4}, new double [] {2, 3, 4}},
+                new Object[] {new double [] {100}, new double [] {}},
+        };
+    }
+
+    @Test(dataProvider = "divideMethodFailTestCases",expectedExceptions = RuntimeException.class)
+    public void testDivideFail(final double [] lhs, final double [] rhs){
+        divide(lhs, rhs);
+    }
+
+    //TestNG doesn't have a utility function with this signature....
+    private void assertEquals(final double [] actual, final double [] expected) {
+        Assert.assertEquals(actual.length,expected.length,"Arrays do not have equal lengths");
+
+        for(int i=0;i<actual.length;++i){
+            Assert.assertEquals(actual[i], expected[i],"Array differ at position " +i);
+        }
+    }
+}
diff --git a/src/tests/java/picard/util/MergingIteratorTest.java b/src/tests/java/picard/util/MergingIteratorTest.java
new file mode 100644
index 0000000..9d44dbe
--- /dev/null
+++ b/src/tests/java/picard/util/MergingIteratorTest.java
@@ -0,0 +1,177 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2012 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.util;
+
+import htsjdk.samtools.util.CloseableIterator;
+import htsjdk.samtools.util.MergingIterator;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.Queue;
+
+public class MergingIteratorTest {
+
+	private static class QueueBackedIterator<T> implements CloseableIterator<T> {
+
+		private final Iterator<T> backing;
+		QueueBackedIterator(final Queue<T> queue) {
+			this.backing = queue.iterator();
+		}
+
+		@Override
+		public void close() {
+			// no-op
+		}
+
+		@Override
+		public boolean hasNext() {
+			return backing.hasNext();
+		}
+
+		@Override
+		public T next() {
+			return backing.next();
+		}
+
+		@Override
+		public void remove() {
+			backing.remove();
+		}
+	}
+
+	private static final Comparator<Integer> INTEGER_COMPARATOR = new Comparator<Integer>() {
+		@Override
+		public int compare(Integer integer, Integer integer2) {
+			return integer - integer2;
+		}
+	};
+
+	@Test
+	public void testOrderingAndCompleteness() {
+		final Queue<Integer> queueOne = new LinkedList<Integer>();
+		queueOne.add(1);
+		queueOne.add(3);
+		queueOne.add(5);
+
+		final Queue<Integer> queueTwo = new LinkedList<Integer>();
+		queueTwo.add(2);
+		queueTwo.add(4);
+		queueTwo.add(6);
+
+		final Queue<Integer> queueThree = new LinkedList<Integer>();
+		queueThree.add(0);
+		queueThree.add(1);
+
+		final Collection<CloseableIterator<Integer>> iterators = new ArrayList<CloseableIterator<Integer>>(3);
+		Collections.addAll(
+				iterators,
+				new QueueBackedIterator<Integer>(queueOne),
+				new QueueBackedIterator<Integer>(queueTwo),
+				new QueueBackedIterator<Integer>(queueThree));
+
+		final MergingIterator<Integer> mergingIterator = new MergingIterator<Integer>(
+				INTEGER_COMPARATOR,
+				iterators);
+
+		int count = 0;
+		int last = -1;
+		while (mergingIterator.hasNext()) {
+			final Integer integer = mergingIterator.next();
+			count++;
+			if (integer == 1) Assert.assertTrue(integer >= last);
+			else Assert.assertTrue(integer > last);
+			last = integer;
+		}
+
+		Assert.assertEquals(queueOne.size() + queueTwo.size() + queueThree.size(), count);
+	}
+
+	@Test
+	public void testIteratorsOfUnevenLength() {
+		final Queue<Integer> queueOne = new LinkedList<Integer>();
+		queueOne.add(1);
+		queueOne.add(3);
+		queueOne.add(5);
+		queueOne.add(7);
+		queueOne.add(9);
+		queueOne.add(11);
+		queueOne.add(13);
+
+		final Queue<Integer> queueTwo = new LinkedList<Integer>();
+		queueTwo.add(2);
+
+		final Collection<CloseableIterator<Integer>> iterators = new ArrayList<CloseableIterator<Integer>>(3);
+		Collections.addAll(
+				iterators,
+				new QueueBackedIterator<Integer>(queueOne),
+				new QueueBackedIterator<Integer>(queueTwo));
+
+		final MergingIterator<Integer> mergingIterator = new MergingIterator<Integer>(
+				INTEGER_COMPARATOR,
+				iterators);
+
+		int count = 0;
+		int last = -1;
+		while (mergingIterator.hasNext()) {
+			final Integer integer = mergingIterator.next();
+			count++;
+			Assert.assertTrue(integer > last);
+			last = integer;
+		}
+
+		Assert.assertEquals(queueOne.size() + queueTwo.size(), count);
+	}
+
+	@Test(expectedExceptions = IllegalStateException.class)
+	public void testOutOfOrderIterators() {
+		final Queue<Integer> queueOne = new LinkedList<Integer>();
+		queueOne.add(1);
+		queueOne.add(3);
+
+		final Queue<Integer> queueTwo = new LinkedList<Integer>();
+		queueTwo.add(4);
+		queueTwo.add(2);
+
+		final Collection<CloseableIterator<Integer>> iterators = new ArrayList<CloseableIterator<Integer>>(3);
+		Collections.addAll(
+				iterators,
+				new QueueBackedIterator<Integer>(queueOne),
+				new QueueBackedIterator<Integer>(queueTwo));
+
+		final MergingIterator<Integer> mergingIterator = new MergingIterator<Integer>(
+				INTEGER_COMPARATOR,
+				iterators);
+
+		Assert.assertEquals(mergingIterator.next().intValue(), 1);
+		Assert.assertEquals(mergingIterator.next().intValue(), 3);
+		Assert.assertEquals(mergingIterator.next().intValue(), 4);
+		mergingIterator.next(); // fails, because the next element would be "2"
+	}
+}
diff --git a/src/tests/java/picard/util/RExecutorTest.java b/src/tests/java/picard/util/RExecutorTest.java
new file mode 100755
index 0000000..d51c9d5
--- /dev/null
+++ b/src/tests/java/picard/util/RExecutorTest.java
@@ -0,0 +1,50 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2009 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.util;
+
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+
+
+public class RExecutorTest {
+    @Test
+    public void testPassingRScript() {
+        Assert.assertTrue(
+                RExecutor.executeFromClasspath("passing.R") == 0);
+    }
+
+    @Test
+    public void testFailingRScript() {
+        Assert.assertTrue(
+                RExecutor.executeFromClasspath("failing.R") != 0);
+    }
+
+    @Test(expectedExceptions=IllegalArgumentException.class)
+    public void testRScriptNotFound() {
+        RExecutor.executeFromClasspath("asdlfjasl");
+        Assert.fail();
+    }
+
+}
diff --git a/src/tests/java/picard/util/ScatterIntervalsByNsTest.java b/src/tests/java/picard/util/ScatterIntervalsByNsTest.java
new file mode 100644
index 0000000..39f4201
--- /dev/null
+++ b/src/tests/java/picard/util/ScatterIntervalsByNsTest.java
@@ -0,0 +1,165 @@
+package picard.util;
+
+import htsjdk.samtools.reference.ReferenceSequence;
+import htsjdk.samtools.reference.ReferenceSequenceFile;
+import htsjdk.samtools.util.Interval;
+import htsjdk.samtools.SAMSequenceDictionary;
+import htsjdk.samtools.SAMSequenceRecord;
+import htsjdk.samtools.util.CollectionUtil;
+import org.testng.Assert;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+
+import java.lang.Exception;import java.lang.Object;import java.lang.Override;import java.lang.String;import java.util.List;
+
+/**
+ * Created by farjoun on 3/26/14.
+ */
+public class ScatterIntervalsByNsTest {
+
+    @DataProvider(name = "testSegregate")
+    public Object[][] testSegregate() {
+
+        return new Object[][]{
+                new Object[]{"NNNNNAAAAANNNNNN", 1, CollectionUtil.makeList(
+                        new Interval("fake1", 1, 5),
+                        new Interval("fake1", 6, 10),
+                        new Interval("fake1", 11, 16))},
+
+                new Object[]{"NNNNNAAAAANNNNNN", 5, CollectionUtil.makeList(
+                        new Interval("fake1", 1, 5),
+                        new Interval("fake1", 6, 10),
+                        new Interval("fake1", 11, 16))},
+
+                new Object[]{"NNNNNAAAnANNNNNN", 6, CollectionUtil.makeList(
+                        new Interval("fake1", 1, 5),
+                        new Interval("fake1", 6, 10),
+                        new Interval("fake1", 11, 16))},
+
+                new Object[]{"AnTGCNNNNNACGTCG", 1, CollectionUtil.makeList(
+                        new Interval("fake1", 1, 5),
+                        new Interval("fake1", 6, 10),
+                        new Interval("fake1", 11, 16))},
+
+                new Object[]{"ACTGCNNNNNACGTCG", 4, CollectionUtil.makeList(
+                        new Interval("fake1", 1, 5),
+                        new Interval("fake1", 6, 10),
+                        new Interval("fake1", 11, 16))},
+
+                new Object[]{"ACTGCNNNNNACgctG", 5, CollectionUtil.makeList(
+                        new Interval("fake1", 1, 16))},
+
+                new Object[]{"ACNGCNNNNNACnTNG", 5, CollectionUtil.makeList(
+                        new Interval("fake1", 1, 16))},
+
+                new Object[]{"ACNGCNNNNNACnTNG", 0, CollectionUtil.makeList(
+                        new Interval("fake1", 1, 2),   //acgt
+                        new Interval("fake1", 3, 3),   //N
+                        new Interval("fake1", 4, 5),
+                        new Interval("fake1", 6, 10),  //N
+                        new Interval("fake1", 11, 12),
+                        new Interval("fake1", 13, 13), //N
+                        new Interval("fake1", 14, 14),
+                        new Interval("fake1", 15, 15), //N
+                        new Interval("fake1", 16, 16))},
+
+                new Object[]{"AAAAAAAAAAACnTNG", 0, CollectionUtil.makeList(
+                        new Interval("fake1", 1, 12),
+                        new Interval("fake1", 13, 13), //N
+                        new Interval("fake1", 14, 14),
+                        new Interval("fake1", 15, 15), //N
+                        new Interval("fake1", 16, 16))},
+
+                new Object[]{"AAAAAAAAAAACATNG", 0, CollectionUtil.makeList(
+                        new Interval("fake1", 1, 14),
+                        new Interval("fake1", 15, 15), //N
+                        new Interval("fake1", 16, 16))},
+
+                new Object[]{"ANCNNGCNNNNNACNTNGN", 1, CollectionUtil.makeList(
+                        new Interval("fake1", 1, 3),
+                        new Interval("fake1", 4, 5),
+                        new Interval("fake1", 6, 7),
+                        new Interval("fake1", 8, 12),
+                        new Interval("fake1", 13, 18),
+                        new Interval("fake1", 19, 19)
+
+                )},
+                new Object[]{"ANCNNGCNNNNNACNTNGN", 0, CollectionUtil.makeList(
+                        new Interval("fake1", 1, 1),
+                        new Interval("fake1", 2, 2),
+                        new Interval("fake1", 3, 3),
+                        new Interval("fake1", 4, 5),
+                        new Interval("fake1", 6, 7),
+                        new Interval("fake1", 8, 12),
+                        new Interval("fake1", 13, 14),
+                        new Interval("fake1", 15, 15),
+                        new Interval("fake1", 16, 16),
+                        new Interval("fake1", 17, 17),
+                        new Interval("fake1", 18, 18),
+                        new Interval("fake1", 19, 19)
+                )}
+
+
+        };
+    }
+
+    @Test(dataProvider = "testSegregate")
+    public void testSegregateReference(final String referenceString, final int maxNmerToMerge, final List<Interval> result) throws Exception {
+
+        final SAMSequenceRecord record = new SAMSequenceRecord("fake1", referenceString.length());
+        final SAMSequenceDictionary dictionary = new SAMSequenceDictionary();
+        dictionary.addSequence(record);
+
+        final ReferenceSequenceFile reference = new ReferenceSequenceFile() {
+
+            boolean done = false;
+
+            @Override
+            public SAMSequenceDictionary getSequenceDictionary() {
+                return dictionary;
+            }
+
+            @Override
+            public ReferenceSequence nextSequence() {
+                if (!done) {
+                    done = true;
+                    return getSequence(record.getSequenceName());
+                }
+                return null;
+            }
+
+            @Override
+            public void reset() {
+                done = false;
+            }
+
+            @Override
+            public boolean isIndexed() {
+                return false;
+            }
+
+            @Override
+            public ReferenceSequence getSequence(final String contig) {
+                if (contig.equals(record.getSequenceName())) {
+                    return new ReferenceSequence(record.getSequenceName(), 0, referenceString.getBytes());
+                } else {
+                    return null;
+                }
+            }
+
+            @Override
+            public ReferenceSequence getSubsequenceAt(final String contig, final long start, final long stop) {
+                return null;
+            }
+
+            @Override
+            public String toString() {
+                return null;
+            }
+
+            @Override
+            public void close() {}
+        };
+        Assert.assertEquals(ScatterIntervalsByNs.segregateReference(reference, maxNmerToMerge).getIntervals(), result);
+    }
+}
diff --git a/src/tests/java/picard/util/TabbedTextFileWithHeaderParserTest.java b/src/tests/java/picard/util/TabbedTextFileWithHeaderParserTest.java
new file mode 100644
index 0000000..cff611a
--- /dev/null
+++ b/src/tests/java/picard/util/TabbedTextFileWithHeaderParserTest.java
@@ -0,0 +1,94 @@
+package picard.util;
+
+import htsjdk.samtools.util.StringUtil;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+import picard.util.TabbedTextFileWithHeaderParser.Row;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+
+/**
+ *
+ */
+public class TabbedTextFileWithHeaderParserTest {
+    @Test
+    public void basicParsingTest() throws Exception {
+        final String[][] data = new String[][] {
+                new String[] {"FOO", "BAR", "SPLAT"},
+                new String[] {"1", "2", "3"},
+                new String[] {"a", "b", "c"},
+                new String[] {"foo", "bar", "splat"},
+        };
+
+        final File tmp = File.createTempFile("tabbedTextTest.", ".txt");
+        tmp.deleteOnExit();
+        final BufferedWriter out = new BufferedWriter(new FileWriter(tmp));
+
+        for (final String[] fields : data) {
+            out.write(StringUtil.join("\t", fields));
+            out.newLine();
+        }
+
+        out.close();
+
+        final TabbedTextFileWithHeaderParser parser = new TabbedTextFileWithHeaderParser(tmp);
+        for (final String col : data[0]) Assert.assertTrue(parser.hasColumn(col));
+
+        int i=1;
+        for (final Row row : parser) {
+            final String[] expected = data[i++];
+            Assert.assertEquals(row.getFields(), expected);
+            Assert.assertEquals(row.getCurrentLine(), StringUtil.join("\t", expected));
+        }
+
+        Assert.assertEquals(i, data.length);
+    }
+
+    @Test
+    public void parsingWithColumnHeadersTest() throws Exception {
+        final String[][] data = new String[][] {
+                new String[] {"1", "2", "3"},
+                new String[] {"a", "b", "2"},
+                new String[] {"foo", "bar", ""},
+        };
+
+        final String[] headers = {"STRING", "STRING2", "NUMBER"};
+
+        final File tmp = File.createTempFile("tabbedTextTest.", ".txt");
+        tmp.deleteOnExit();
+        final BufferedWriter out = new BufferedWriter(new FileWriter(tmp));
+
+        for (final String[] fields : data) {
+            out.write(StringUtil.join("\t", fields));
+            out.newLine();
+        }
+
+        out.close();
+
+        final TabbedTextFileWithHeaderParser parser = new TabbedTextFileWithHeaderParser(tmp, headers);
+        for (final String col : headers) Assert.assertTrue(parser.hasColumn(col));
+
+        int i=0;
+        for (final Row row : parser) {
+            final String[] expected = data[i++];
+            final String[] actual = row.getFields();
+            for (int j = 0; j < expected.length; j++) {
+                Assert.assertTrue((expected[j].equals("") && actual[j] == null) || expected[j].equals(actual[j]));
+            }
+            Assert.assertEquals(row.getCurrentLine(), StringUtil.join("\t", expected));
+            try {
+                row.getField(headers[0]);
+                row.getField(headers[1]);
+                row.getIntegerField(headers[2]);
+            }
+            catch(Exception e) {
+                Assert.fail("Failed to parse one of the fields in " + row.getCurrentLine() + ": " + e.getMessage());
+            }
+        }
+
+        Assert.assertEquals(i, data.length);
+    }
+
+}
diff --git a/src/tests/java/picard/util/TextFileParsersTest.java b/src/tests/java/picard/util/TextFileParsersTest.java
new file mode 100644
index 0000000..8da5e6a
--- /dev/null
+++ b/src/tests/java/picard/util/TextFileParsersTest.java
@@ -0,0 +1,314 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2011 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.util;
+
+import htsjdk.samtools.util.FormatUtil;
+import htsjdk.samtools.util.IOUtil;
+import org.testng.Assert;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import picard.PicardException;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+public class TextFileParsersTest {
+
+    private static final String testFile1 = "testdata/picard/util/whitespace_text_file.txt";
+    private static final String testFile2 = "testdata/picard/util/all_ones_text_file.txt";
+    private static final String testFile3 = "testdata/picard/util/no_grouping_file.txt";
+    private static final String testFile4 = "testdata/picard/util/tabbed_text_file.txt";
+    // There is a comment in the file data that should be skipped by the parser, so it is not included below
+    private static final Object[][] testFile1Data = {
+        { "Now", "is", "the", "time" },
+        { "for", "all", "good", "men" },
+        { "to", "come", "to", "the" },
+        { "aid", "of", "their", "country." },
+        { 15.0d, 23, 55, 67.88888}
+    };
+
+    @Test(dataProvider = "basicInputParserData")
+    public void testTextFileParser(Object fileOrStream) throws IOException {
+        FormatUtil format = new FormatUtil();
+
+        List<String> expected = new ArrayList<String>();
+        if (fileOrStream instanceof File) {
+            BufferedReader reader = new BufferedReader(new FileReader((File)fileOrStream));
+            String line = null;
+            while ((line = reader.readLine()) != null)  {
+                if (!line.startsWith("#")) expected.add(line);
+            }
+            reader.close();
+        }
+
+        BasicInputParser parser = fileOrStream instanceof File
+            ? new BasicInputParser(true, (File)fileOrStream )
+            : new BasicInputParser(true, (InputStream)fileOrStream);
+        int index = 0;
+        while (parser.hasNext())
+        {
+            String parts[] = parser.next();
+            if (fileOrStream instanceof File) {
+                // Can't have the parser and the reader workking with an InputStream at the same time
+                // so we only do this test with the file
+                Assert.assertEquals(parser.getCurrentLine(), expected.get(index));
+            }
+            // Line 4 is a comment, so there's a gap in the line numbers
+            Assert.assertEquals(parser.getCurrentLineNumber(), index <= 2 ? index+1 : index+2);
+            Assert.assertEquals(parts.length, 4);
+            if (index < 4) {
+                for (int i = 0; i < parts.length; i++) {
+                    Assert.assertEquals(parts, testFile1Data[index]);
+                }
+            }
+            else {
+                Assert.assertEquals(testFile1Data[index][0], format.parseDouble(parts[0]));
+                Assert.assertEquals(testFile1Data[index][1], format.parseInt(parts[1]));
+                Assert.assertEquals(testFile1Data[index][2], format.parseInt(parts[2]));
+                Assert.assertEquals(testFile1Data[index][3], format.parseDouble(parts[3]));
+            }
+            index++;
+        }
+    }
+
+    @DataProvider(name = "basicInputParserData")
+    private Object[][] getBasicInputParserData()
+    {
+        return new Object[][] {
+                {new File(testFile1)},
+                {IOUtil.openFileForReading(new File(testFile1))}
+        };
+    }
+
+    @Test(dataProvider = "multiFileParsingData")
+    public void testMultiFileParsing(Object fileOrStream1, Object fileOrStream2) throws IOException {
+        FormatUtil format = new FormatUtil();
+
+        List<String> expected = new ArrayList<String>();
+        if (fileOrStream1 instanceof File) {
+            BufferedReader reader = new BufferedReader(new FileReader((File)fileOrStream1));
+            String line = null;
+            while ((line = reader.readLine()) != null)  {
+                if (!line.startsWith("#")) expected.add(line);
+            }
+            reader.close();
+            reader = new BufferedReader(new FileReader((File)fileOrStream2));
+            while ((line = reader.readLine()) != null)  {
+                if (!line.startsWith("#")) expected.add(line);
+            }
+            reader.close();
+        }
+
+        BasicInputParser parser = fileOrStream1 instanceof File
+            ? new BasicInputParser(true, (File)fileOrStream1, (File)fileOrStream2 )
+            : new BasicInputParser(true, (InputStream)fileOrStream1, (InputStream)fileOrStream2);
+        int index = 0;
+        // Line 4 is a comment, so there's a gap in the line numbers
+        int expectedLineNumbers[] = {1,2,3,5,6,1,2,3,5,6};
+        while (parser.hasNext())
+        {
+            String parts[] = parser.next();
+            if (fileOrStream1 instanceof File) {
+                // Can't have the parser and the reader working with an InputStream at the same time
+                // so we only test the files
+                Assert.assertEquals(parser.getCurrentLine(), expected.get(index));
+            }
+            Assert.assertEquals(parser.getCurrentLineNumber(), expectedLineNumbers[index]);
+            Assert.assertEquals(parts.length, 4);
+            int indexIntoTestData = (index<5) ? index : index-5;
+            if (index != 4 && index != 9) {
+                for (int i = 0; i < parts.length; i++) {
+                    Assert.assertEquals(parts, testFile1Data[indexIntoTestData]);
+                }
+            }
+            else {
+                Assert.assertEquals(testFile1Data[indexIntoTestData][0], format.parseDouble(parts[0]));
+                Assert.assertEquals(testFile1Data[indexIntoTestData][1], format.parseInt(parts[1]));
+                Assert.assertEquals(testFile1Data[indexIntoTestData][2], format.parseInt(parts[2]));
+                Assert.assertEquals(testFile1Data[indexIntoTestData][3], format.parseDouble(parts[3]));
+            }
+            index++;
+        }
+    }
+
+    @DataProvider(name = "multiFileParsingData")
+    private Object[][] getMultiFileParsingData()
+    {
+        return new Object[][] {
+                {new File(testFile1), new File(testFile1)},
+                {IOUtil.openFileForReading(new File(testFile1)), IOUtil.openFileForReading(new File(testFile1))}
+        };
+    }
+
+    @Test(dataProvider = "noGroupingData")
+    public void testTextFileParserNoGrouping(Object fileOrStream) {
+        BasicInputParser parser = fileOrStream instanceof File
+            ? new BasicInputParser(true, (File)fileOrStream)
+            : new BasicInputParser(true, (InputStream)fileOrStream);
+        parser.setTreatGroupedDelimitersAsOne(false);
+        while (parser.hasNext()) {
+            String parts[] = parser.next();
+            for (int i = 0; i < parts.length; i++) {
+                if (parts[i] != null) {
+                    Assert.assertEquals(Integer.parseInt(parts[i]), i+1);
+                }
+            }
+        }
+    }
+
+    @DataProvider(name = "noGroupingData")
+    private Object[][] getNoGroupingData()
+    {
+        return new Object[][] {
+                {new File(testFile3)},
+                {IOUtil.openFileForReading(new File(testFile3))}
+        };
+    }
+
+
+    @Test(dataProvider = "leadingWhiteSpaceData")
+    public void testTextFileParserLeadingWhitespace(Object fileOrStream) {
+        BasicInputParser parser = fileOrStream instanceof File
+            ? new BasicInputParser(true, (File)fileOrStream)
+            : new BasicInputParser(true, (InputStream)fileOrStream);
+        while (parser.hasNext())
+        {
+            String parts[] = parser.next();
+            Assert.assertEquals(parts.length, 1);
+            Assert.assertEquals("1", parts[0]);
+        }
+    }
+
+    @DataProvider(name = "leadingWhiteSpaceData")
+    private Object[][] getLeadingWhiteSpaceData()
+    {
+        return new Object[][] {
+                {new File(testFile2)},
+                {IOUtil.openFileForReading(new File(testFile2))}
+        };
+    }
+
+
+    @Test(expectedExceptions= PicardException.class, dataProvider = "tooManyWordsData")
+    public void testTooManyWords(Object fileOrStream) {
+        BasicInputParser parser = fileOrStream instanceof File
+            ? new BasicInputParser(true, 3, (File)fileOrStream)
+            : new BasicInputParser(true, 3, (InputStream)fileOrStream);
+        if (parser.hasNext()) {
+            String parts[] = parser.next();
+        }
+        Assert.fail("Attempt to parse extra-long file should have failed but didn't.");
+    }
+
+    @DataProvider(name = "tooManyWordsData")
+    private Object[][] getTooManyWordsData()
+    {
+        return new Object[][] {
+                {new File(testFile1)},
+                {IOUtil.openFileForReading(new File(testFile1))}
+        };
+    }
+
+    @Test(dataProvider = "tabbedData")
+    public void testTabbedFileParser(Object fileOrStream) {
+        TabbedInputParser parser = fileOrStream instanceof File
+            ? new TabbedInputParser(false, (File)fileOrStream)
+            : new TabbedInputParser(false, (InputStream)fileOrStream);
+        while (parser.hasNext()) {
+            String parts[] = parser.next();
+            for (int i = 0; i < parts.length; i++) {
+                if (parts[i] != null && !parts[i].equals("")) {
+                    Assert.assertEquals(parts[i].trim(), String.valueOf(i+1));
+                }
+            }
+        }
+    }
+
+    @DataProvider(name = "tabbedData")
+    private Object[][] getTabbedData()
+    {
+        return new Object[][] {
+                {new File(testFile4)},
+                {IOUtil.openFileForReading(new File(testFile4))}
+        };
+    }
+
+    @Test(dataProvider="data")
+    public void testWordCountCalculation(String line, boolean groupDelimiters, String name) {
+
+        WordCountTestParser parser = new WordCountTestParser();
+        parser.setDelimiter("\t ");
+        parser.setTreatGroupedDelimitersAsOne(groupDelimiters);
+        parser.calculateWordCount(line.getBytes());
+        Assert.assertEquals(parser.getWordCount(), 3, name);
+    }
+
+    @DataProvider(name = "data")
+    private Object[][] getWordCountCalculationData()
+    {
+        return new Object[][]{
+                {"1\t2\t3", false, "Tabs with all fields filled."},
+                {"1\t2\t", false, "Tabs with no final field."},
+                {"\t2\t3", false, "Tabs with no first field."},
+                {"\t2\t", false, "Tabs with no first or final field."},
+                {"1  2  3", true, "Spaces with all fields filled  (grouping on)."},
+                {"1  2  3  ", true, "Spaces with no final field (grouping on)."},
+                {"   2   3   4", true, "Spaces with no first field (grouping on)."},
+                {" 2 ", false, "Spaces with no first or final field."}
+        };
+    }
+
+    /**
+     * Toy class for testing the word count functionality
+     */
+    private static class WordCountTestParser extends AbstractInputParser {
+
+        private char delimiters[] = null;
+        
+        public WordCountTestParser() {
+        }
+
+        public void setDelimiter(String delim) {
+            delimiters = delim.toCharArray();
+        }
+
+        protected boolean isDelimiter(final byte b) {
+            for (int i = 0; i < delimiters.length; i++) {
+                if (b == delimiters[i]) {
+                    return true;
+                }
+            }
+            return false;
+        }
+
+        protected byte[] readNextLine() {  return new byte[0]; }
+        public String getFileName() { return null; }
+        public void close() {}
+    }
+}
diff --git a/src/tests/java/picard/util/UnsignedTypeUtilTest.java b/src/tests/java/picard/util/UnsignedTypeUtilTest.java
new file mode 100644
index 0000000..6ec16cc
--- /dev/null
+++ b/src/tests/java/picard/util/UnsignedTypeUtilTest.java
@@ -0,0 +1,75 @@
+package picard.util;
+
+import org.testng.Assert;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+
+public class UnsignedTypeUtilTest {
+
+    @DataProvider(name="uByteData")
+    public Object [][] uByteData() {
+        return new Object [][]{
+            {(byte)0xFF, 255},
+            {(byte)0xFE, 254},
+            {(byte)0x80, 128},
+            {(byte)0x7F, 127},
+            {(byte)0x70, 112},
+            {(byte)0x02, 2},
+            {(byte)0x01, 1},
+            {(byte)0x00, 0},
+        };
+    }
+
+    @DataProvider(name="uShortData")
+    public Object [][] uShortData() {
+        return new Object [][]{
+                {(short)0xFFFF, 65535},
+                {(short)0xFFFE, 65534},
+                {(short)0x8021, 32801},
+                {(short)0x7FFF, 32767},
+                {(short)0x5545, 21829},
+                {(short)0x0002, 2},
+                {(short)0x0001, 1},
+                {(short)0x0000, 0}
+        };
+    }
+
+    @DataProvider(name="uIntData")
+    public Object [][] uIntData() {
+        return new Object [][]{
+                {0xFFFFFFFF,  4294967295L},
+                {0xFFFFFFFE,  4294967294L},
+                {0x81014000,  2164342784L},
+                {0x7FFFFFFF,  2147483647L},
+                {0x10502100,  273686784L},
+                {0x00000002, 2L},
+                {0x00000001, 1L},
+                {0x00000000, 0L}
+        };
+    }
+
+    /** Convert an unsigned byte to a signed int */
+    @Test(dataProvider="uByteData")
+    public void uByteToIntTest(final byte unsignedByte, final int expectedInt) {
+        Assert.assertEquals(UnsignedTypeUtil.uByteToInt(unsignedByte), expectedInt);
+    }
+
+    /** Convert an unsigned byte to a signed short */
+    @Test(dataProvider="uByteData")
+    public void uByteToShortTest(final byte unsignedByte, final int expectedInt) {
+        final short expectedShort = (short) expectedInt;
+        Assert.assertEquals(UnsignedTypeUtil.uByteToShort(unsignedByte), expectedShort);
+    }
+
+    /** Convert an unsigned short to an Int */
+    @Test(dataProvider="uShortData")
+    public void uShortToIntTest(final short unsignedShort, final int expectedInt) {
+        Assert.assertEquals(UnsignedTypeUtil.uShortToInt(unsignedShort), expectedInt);
+    }
+
+    /** Convert an unsigned int to a long */
+    @Test(dataProvider="uIntData")
+    public void uIntToLongTest(final int unsignedInt, final long expectedLong) {
+        Assert.assertEquals(UnsignedTypeUtil.uIntToLong(unsignedInt), expectedLong);
+    }
+}
diff --git a/src/tests/java/picard/vcf/AbstractVcfMergingClpTester.java b/src/tests/java/picard/vcf/AbstractVcfMergingClpTester.java
new file mode 100644
index 0000000..b7a5c71
--- /dev/null
+++ b/src/tests/java/picard/vcf/AbstractVcfMergingClpTester.java
@@ -0,0 +1,174 @@
+package picard.vcf;
+
+import htsjdk.samtools.util.CloseableIterator;
+import htsjdk.variant.variantcontext.VariantContext;
+import htsjdk.variant.variantcontext.VariantContextComparator;
+import htsjdk.variant.vcf.VCFFileReader;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+import picard.cmdline.CommandLineProgram;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Queue;
+
+public abstract class AbstractVcfMergingClpTester {
+
+	protected static final String TEST_DATA_PATH = "testdata/picard/vcf/";
+
+    protected abstract CommandLineProgram getProgram();
+
+    protected void runClp(final List<File> inputs, final File output, final int expectedReturnCode) {
+        runClp(inputs, output, Collections.<String>emptyList(), expectedReturnCode);
+    }
+
+    protected void runClp(final List<File> inputs, final File output, final List<String> otherArguments, final int expectedReturnCode) {
+        final ArrayList<String> arguments = new ArrayList<String>();
+        for (final File input : inputs) {
+            arguments.add("INPUT=" + input);
+        }
+        arguments.add("OUTPUT=" + output);
+        for (final String argument : otherArguments) {
+            arguments.add(argument);
+        }
+        Assert.assertEquals(getProgram().instanceMain(arguments.toArray(new String[arguments.size()])), expectedReturnCode);
+    }
+
+	@Test (expectedExceptions = IllegalArgumentException.class)
+	public void testFailsOnDissimilarContigLists() {
+		final File dissimilarContigs = new File(TEST_DATA_PATH, "CEUTrio-indels-dissimilar-contigs.vcf");
+		final File snpInputFile = new File(TEST_DATA_PATH, "CEUTrio-snps.vcf");
+        final File output = new File("/dev/null/blah");
+        final List<String> indexing = Arrays.asList("CREATE_INDEX=false");
+
+        runClp(Arrays.asList(dissimilarContigs, snpInputFile), output, indexing, 0);
+	}
+
+	@Test (expectedExceptions = IllegalArgumentException.class)
+	public void testFailsOnNoContigList() {
+		final File contiglessIndelFile = new File(TEST_DATA_PATH, "CEUTrio-indels-no-contigs.vcf");
+		final File snpInputFile = new File(TEST_DATA_PATH, "CEUTrio-snps.vcf");
+        final File output = new File("/dev/null");
+
+        runClp(Arrays.asList(contiglessIndelFile, snpInputFile), output, 1);
+	}
+
+	@Test (expectedExceptions = IllegalArgumentException.class)
+	public void testFailsOnDissimilarSampleLists() {
+		final File badSampleIndelFile = new File(TEST_DATA_PATH, "CEUTrio-indels-bad-samples.vcf");
+		final File snpInputFile = new File(TEST_DATA_PATH, "CEUTrio-snps.vcf");
+        final File output = new File("/dev/null");
+
+        runClp(Arrays.asList(badSampleIndelFile, snpInputFile), output, 1);
+	}
+
+	@Test
+	public void testMergeIndelsSnps() throws IOException {
+		final File indelInputFile = new File(TEST_DATA_PATH, "CEUTrio-indels.vcf");
+		final File snpInputFile = new File(TEST_DATA_PATH, "CEUTrio-snps.vcf");
+		final File output = File.createTempFile("merge-indels-snps-test-output.", ".vcf");
+        final List<String> indexing = Arrays.asList("CREATE_INDEX=false");
+        output.deleteOnExit();
+
+		final Queue<String> indelContigPositions = loadContigPositions(indelInputFile);
+		final Queue<String> snpContigPositions = loadContigPositions(snpInputFile);
+
+        runClp(Arrays.asList(indelInputFile, snpInputFile), output, indexing, 0);
+        validateSnpAndIndelResults(output, indelContigPositions, snpContigPositions);
+    }
+
+    /**
+     * Make sure that the order of the output file is identical to the order
+     * of the input files by iterating through the output, making sure that,
+     * if the context is an indel (snp), the next genomic position in the indel
+     * (snp) queue is the same. Also make sure that the context is in the order
+     * specified by the input files.
+     */
+    private void validateSnpAndIndelResults(final File output, final Queue<String> indelContigPositions, final Queue<String> snpContigPositions) {
+        final VCFFileReader outputReader = new VCFFileReader(output, false);
+        final VariantContextComparator outputComparator = outputReader.getFileHeader().getVCFRecordComparator();
+        VariantContext last = null;
+        final CloseableIterator<VariantContext> iterator = outputReader.iterator();
+        while (iterator.hasNext()) {
+            final VariantContext outputContext = iterator.next();
+            if (outputContext.isIndel()) Assert.assertEquals(getContigPosition(outputContext), indelContigPositions.poll());
+            if (outputContext.isSNP()) Assert.assertEquals(getContigPosition(outputContext), snpContigPositions.poll());
+            if (last != null) Assert.assertTrue(outputComparator.compare(last, outputContext) <= 0);
+            last = outputContext;
+        }
+        iterator.close();
+
+        // We should have polled everything off the indel (snp) queues
+        Assert.assertEquals(indelContigPositions.size(), 0);
+        Assert.assertEquals(snpContigPositions.size(), 0);
+    }
+
+    @Test
+	public void testMergeRandomScatter() throws IOException {
+		final File zero = new File(TEST_DATA_PATH, "CEUTrio-random-scatter-0.vcf");
+		final File one = new File(TEST_DATA_PATH, "CEUTrio-random-scatter-1.vcf");
+		final File two = new File(TEST_DATA_PATH, "CEUTrio-random-scatter-2.vcf");
+		final File three = new File(TEST_DATA_PATH, "CEUTrio-random-scatter-3.vcf");
+		final File four = new File(TEST_DATA_PATH, "CEUTrio-random-scatter-4.vcf");
+		final File five = new File(TEST_DATA_PATH, "CEUTrio-random-scatter-5.vcf");
+        final List<File> inputs = Arrays.asList(zero, one, two, three, four, five);
+
+		final List<Queue<String>> positionQueues = new ArrayList<Queue<String>>(6);
+		positionQueues.add(0, loadContigPositions(zero));
+		positionQueues.add(1, loadContigPositions(one));
+		positionQueues.add(2, loadContigPositions(two));
+		positionQueues.add(3, loadContigPositions(three));
+		positionQueues.add(4, loadContigPositions(four));
+		positionQueues.add(5, loadContigPositions(five));
+
+        final List<String> indexing = Arrays.asList("CREATE_INDEX=false");
+        final File output = File.createTempFile("random-scatter-test-output.", ".vcf");
+		output.deleteOnExit();
+
+        runClp(inputs, output, indexing, 0);
+        validateResultsForMultipleInputs(output, positionQueues);
+	}
+
+    private void validateResultsForMultipleInputs(final File output, final List<Queue<String>> positionQueues) {
+        final VCFFileReader outputReader = new VCFFileReader(output, false);
+        final VariantContextComparator outputComparator = outputReader.getFileHeader().getVCFRecordComparator();
+        VariantContext last = null;
+        final CloseableIterator<VariantContext> iterator = outputReader.iterator();
+        while (iterator.hasNext()) {
+            final VariantContext outputContext = iterator.next();
+            final String position = getContigPosition(outputContext);
+            for (final Queue<String> positionQueue : positionQueues) {
+                if (position.equals(positionQueue.peek())) {
+                    positionQueue.poll();
+                    break;
+                }
+            }
+            if (last != null) Assert.assertTrue(outputComparator.compare(last, outputContext) <= 0);
+            last = outputContext;
+        }
+        iterator.close();
+
+        for (final Queue<String> positionQueue : positionQueues) {
+            Assert.assertEquals(positionQueue.size(), 0);
+        }
+    }
+
+    static Queue<String> loadContigPositions(final File inputFile) {
+		final VCFFileReader reader = new VCFFileReader(inputFile, false);
+		final Queue<String> contigPositions = new LinkedList<String>();
+		final CloseableIterator<VariantContext> iterator = reader.iterator();
+		while (iterator.hasNext()) contigPositions.add(getContigPosition(iterator.next()));
+		iterator.close();
+		reader.close();
+		return contigPositions;
+	}
+
+	static String getContigPosition(final VariantContext context) {
+		return context.getChr() + "-" + Integer.toString(context.getStart());
+	}
+}
diff --git a/src/tests/java/picard/vcf/CollectVariantCallingMetricsTest.java b/src/tests/java/picard/vcf/CollectVariantCallingMetricsTest.java
new file mode 100644
index 0000000..80feaa8
--- /dev/null
+++ b/src/tests/java/picard/vcf/CollectVariantCallingMetricsTest.java
@@ -0,0 +1,119 @@
+package picard.vcf;
+
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2015 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+import htsjdk.samtools.metrics.MetricsFile;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * Test for CollectVariantCallingMetrics
+ *
+ * @author Joel Thibault (thibault at broadinstitute dot org)
+ */
+public class CollectVariantCallingMetricsTest {
+    private static final File TEST_DATA_DIR = new File("testdata/picard/vcf");
+
+    @Test
+    public void testMetricsTiny() throws IOException {
+        final File dbSnpFile = new File(TEST_DATA_DIR, "mini.dbsnp.vcf");
+        final File vcfFile = new File(TEST_DATA_DIR, "mini.vcf");
+
+        final File outFile = new File(TEST_DATA_DIR, "vcmetrics_tiny");
+        final File summaryFile = new File(TEST_DATA_DIR, "vcmetrics_tiny.variant_calling_summary_metrics");
+        final File detailFile = new File(TEST_DATA_DIR, "vcmetrics_tiny.variant_calling_detail_metrics");
+
+        summaryFile.deleteOnExit();
+        detailFile.deleteOnExit();
+
+        final CollectVariantCallingMetrics program = new CollectVariantCallingMetrics();
+        program.INPUT = vcfFile;
+        program.DBSNP = dbSnpFile;
+        program.OUTPUT = outFile;
+
+        Assert.assertEquals(program.doWork(), 0);
+
+        final MetricsFile<CollectVariantCallingMetrics.VariantCallingSummaryMetrics, Comparable<?>> summary = new MetricsFile<CollectVariantCallingMetrics.VariantCallingSummaryMetrics, Comparable<?>>();
+        summary.read(new FileReader(summaryFile));
+
+        boolean parsedSummary = false;
+        for (final CollectVariantCallingMetrics.VariantCallingSummaryMetrics metrics : summary.getMetrics()) {
+            Assert.assertEquals(metrics.TOTAL_SNPS, 597);
+            Assert.assertEquals(metrics.NOVEL_SNPS, 265);
+            Assert.assertEquals(metrics.NUM_IN_DB_SNP, 332);
+
+            Assert.assertEquals(metrics.PCT_DBSNP, 0.5561140179634094, 0.01);
+            Assert.assertEquals(metrics.DBSNP_TITV, 3.955224, 0.01);
+            Assert.assertEquals(metrics.NOVEL_TITV, 3.206349, 0.01);
+
+            Assert.assertEquals(metrics.TOTAL_INDELS, 29);
+            Assert.assertEquals(metrics.NOVEL_INDELS, 11);
+            Assert.assertEquals(metrics.NUM_IN_DB_SNP_INDELS, 18);
+
+            Assert.assertEquals(metrics.PCT_DBSNP_INDELS, 0.62069, 0.01);
+            Assert.assertEquals(metrics.DBSNP_INS_DEL_RATIO, 0.125, 0.01);
+            Assert.assertEquals(metrics.NOVEL_INS_DEL_RATIO, 0.375, 0.01);
+            Assert.assertEquals(metrics.NUM_SINGLETONS, 245);
+
+            parsedSummary = true;
+        }
+
+        Assert.assertTrue(parsedSummary, "Did not parse summary metrics.");
+
+        final MetricsFile<CollectVariantCallingMetrics.VariantCallingDetailMetrics, Comparable<?>> detail = new MetricsFile<CollectVariantCallingMetrics.VariantCallingDetailMetrics, Comparable<?>>();
+        detail.read(new FileReader(detailFile));
+        final List<CollectVariantCallingMetrics.VariantCallingDetailMetrics> detailMetrics = detail.getMetrics();
+        for (final CollectVariantCallingMetrics.VariantCallingDetailMetrics metrics : detail.getMetrics()) {
+            if (metrics.SAMPLE_ALIAS.equals("HG00160")) {
+                Assert.assertEquals(metrics.HET_HOMVAR_RATIO, 0.72549, 0.0001);
+                Assert.assertEquals(metrics.TOTAL_SNPS, 81);
+                Assert.assertEquals(metrics.NUM_IN_DB_SNP, 44);
+                Assert.assertEquals(metrics.NOVEL_SNPS, 37);
+                Assert.assertEquals(metrics.PCT_DBSNP, 0.543210, 0.01);
+                Assert.assertEquals(metrics.DBSNP_TITV, 6.333333, 0.01);
+                Assert.assertEquals(metrics.NOVEL_TITV, 2.7, 0.01);
+                Assert.assertEquals(metrics.TOTAL_INDELS, 6);
+                Assert.assertEquals(metrics.NOVEL_INDELS, 3);
+                Assert.assertEquals(metrics.NUM_IN_DB_SNP_INDELS, 3);
+                Assert.assertEquals(metrics.PCT_DBSNP_INDELS, 0.5, 0.01);
+                Assert.assertEquals(metrics.DBSNP_INS_DEL_RATIO, 0.0, 0.01);
+                Assert.assertEquals(metrics.NOVEL_INS_DEL_RATIO, 0.0, 0.01);
+                Assert.assertEquals(metrics.TOTAL_MULTIALLELIC_SNPS, 0.0, 0.01);
+                Assert.assertEquals(metrics.NUM_IN_DB_SNP_MULTIALLELIC, 0, 0.01);
+                Assert.assertEquals(metrics.TOTAL_COMPLEX_INDELS, 1.0, 0.01);
+                Assert.assertEquals(metrics.NUM_IN_DB_SNP_COMPLEX_INDELS, 0, 0.01);
+                Assert.assertEquals(metrics.SNP_REFERENCE_BIAS, 0.510204, 0.01);
+                Assert.assertEquals(metrics.NUM_SINGLETONS, 3);
+            }
+        }
+
+        Assert.assertEquals(detailMetrics.size(), 50, "Did not parse the desired number of detail metrics.");
+    }
+}
diff --git a/src/tests/java/picard/vcf/GenotypeConcordanceGA4GHSchemeTest.java b/src/tests/java/picard/vcf/GenotypeConcordanceGA4GHSchemeTest.java
new file mode 100644
index 0000000..fc636de
--- /dev/null
+++ b/src/tests/java/picard/vcf/GenotypeConcordanceGA4GHSchemeTest.java
@@ -0,0 +1,157 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2015 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.vcf;
+
+import htsjdk.samtools.util.FormatUtil;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+import picard.vcf.GenotypeConcordanceStates.TruthAndCallStates;
+import java.io.File;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.List;
+
+/**
+ * Created by kbergin on 6/24/15.
+ */
+public class GenotypeConcordanceGA4GHSchemeTest{
+    private static final File TEST_DATA_PATH = new File("testdata/picard/vcf/");
+    final File ceuTrioSnpsVcf = new File(TEST_DATA_PATH, "CEUTrio-snps.vcf");
+    private final GenotypeConcordanceSchemeFactory schemeFactory = new GenotypeConcordanceSchemeFactory();
+    final GenotypeConcordanceScheme scheme = schemeFactory.getScheme(false);
+    final List<File> intervalList = Collections.singletonList(new File(TEST_DATA_PATH, "IntervalListChr1Small.interval_list"));
+
+    @Test
+    public void testGA4GHScheme() throws Exception {
+
+        final GenotypeConcordanceCounts concordanceCounts = GenotypeConcordanceTest.getGenotypeConcordanceCounts(ceuTrioSnpsVcf, ceuTrioSnpsVcf, "NA12878", false, null);
+        concordanceCounts.validateCountsAgainstScheme(scheme);
+
+        final Map<GenotypeConcordanceStates.TruthAndCallStates, Integer> nonZeroCounts = new HashMap<GenotypeConcordanceStates.TruthAndCallStates, Integer>();
+        nonZeroCounts.put(new TruthAndCallStates(GenotypeConcordanceStates.TruthState.HET_REF_VAR1, GenotypeConcordanceStates.CallState.HET_REF_VAR1), 104);
+        nonZeroCounts.put(new TruthAndCallStates(GenotypeConcordanceStates.TruthState.HOM_VAR1, GenotypeConcordanceStates.CallState.HOM_VAR1), 59);
+        nonZeroCounts.put(new TruthAndCallStates(GenotypeConcordanceStates.TruthState.VC_FILTERED, GenotypeConcordanceStates.CallState.VC_FILTERED), 40);
+
+        GenotypeConcordanceTest.assertNonZeroCountsAgree(concordanceCounts, nonZeroCounts);
+
+        final FormatUtil fmt = new FormatUtil();
+
+        Assert.assertEquals(fmt.format(concordanceCounts.getSensitivity(scheme, GenotypeConcordanceCounts.HET_TRUTH_STATES)), "1");
+        Assert.assertEquals(fmt.format(concordanceCounts.Ppv(scheme, GenotypeConcordanceCounts.HET_CALL_STATES)), "1");
+        Assert.assertEquals(fmt.format(concordanceCounts.getSensitivity(scheme, GenotypeConcordanceCounts.HOM_VAR_TRUTH_STATES)), "1");
+        Assert.assertEquals(fmt.format(concordanceCounts.Ppv(scheme, GenotypeConcordanceCounts.HOM_VAR_CALL_STATES)), "1");
+        Assert.assertEquals(fmt.format(concordanceCounts.getSpecificity(scheme, GenotypeConcordanceCounts.HOM_VAR_TRUTH_STATES)), "?");
+        Assert.assertEquals(fmt.format(concordanceCounts.getSensitivity(scheme, GenotypeConcordanceCounts.VAR_TRUTH_STATES)), "1");
+        Assert.assertEquals(fmt.format(concordanceCounts.Ppv(scheme, GenotypeConcordanceCounts.VAR_CALL_STATES)), "1");
+        Assert.assertEquals(fmt.format(concordanceCounts.getSpecificity(scheme, GenotypeConcordanceCounts.VAR_TRUTH_STATES)), "1");
+        Assert.assertEquals(fmt.format(concordanceCounts.calculateGenotypeConcordance(scheme, true)), "1");
+        Assert.assertEquals(fmt.format(concordanceCounts.calculateNonRefGenotypeConcordance(scheme, true)), "1");
+    }
+
+    @Test
+    public void testGA4GHSchemeDiffSamples() throws Exception {
+
+        final GenotypeConcordanceCounts concordanceCounts = GenotypeConcordanceTest.getGenotypeConcordanceCounts(ceuTrioSnpsVcf, ceuTrioSnpsVcf, "NA12891", false, null);
+        concordanceCounts.validateCountsAgainstScheme(scheme);
+
+        final Map<GenotypeConcordanceStates.TruthAndCallStates, Integer> nonZeroCounts = new HashMap<GenotypeConcordanceStates.TruthAndCallStates, Integer>();
+        nonZeroCounts.put(new TruthAndCallStates(GenotypeConcordanceStates.TruthState.HOM_REF, GenotypeConcordanceStates.CallState.HET_REF_VAR1), 31);
+        nonZeroCounts.put(new TruthAndCallStates(GenotypeConcordanceStates.TruthState.HET_REF_VAR1, GenotypeConcordanceStates.CallState.HOM_REF), 30);
+        nonZeroCounts.put(new TruthAndCallStates(GenotypeConcordanceStates.TruthState.HET_REF_VAR1, GenotypeConcordanceStates.CallState.HET_REF_VAR1), 50);
+        nonZeroCounts.put(new TruthAndCallStates(GenotypeConcordanceStates.TruthState.HET_REF_VAR1, GenotypeConcordanceStates.CallState.HOM_VAR1), 24);
+        nonZeroCounts.put(new TruthAndCallStates(GenotypeConcordanceStates.TruthState.HOM_VAR1, GenotypeConcordanceStates.CallState.HET_REF_VAR1), 18);
+        nonZeroCounts.put(new TruthAndCallStates(GenotypeConcordanceStates.TruthState.HOM_VAR1, GenotypeConcordanceStates.CallState.HOM_VAR1), 41);
+        nonZeroCounts.put(new TruthAndCallStates(GenotypeConcordanceStates.TruthState.VC_FILTERED, GenotypeConcordanceStates.CallState.VC_FILTERED), 49);
+
+        GenotypeConcordanceTest.assertNonZeroCountsAgree(concordanceCounts, nonZeroCounts);
+
+        final FormatUtil fmt = new FormatUtil();
+
+        Assert.assertEquals(fmt.format(concordanceCounts.getSensitivity(scheme, GenotypeConcordanceCounts.HET_TRUTH_STATES)), "0.711538");
+        Assert.assertEquals(fmt.format(concordanceCounts.Ppv(scheme, GenotypeConcordanceCounts.HET_CALL_STATES)), "0.686869");
+        Assert.assertEquals(fmt.format(concordanceCounts.getSensitivity(scheme, GenotypeConcordanceCounts.HOM_VAR_TRUTH_STATES)), "0.766234");
+        Assert.assertEquals(fmt.format(concordanceCounts.Ppv(scheme, GenotypeConcordanceCounts.HOM_VAR_CALL_STATES)), "0.730337");
+        Assert.assertEquals(fmt.format(concordanceCounts.getSpecificity(scheme, GenotypeConcordanceCounts.HOM_VAR_TRUTH_STATES)), "?");
+        Assert.assertEquals(fmt.format(concordanceCounts.getSensitivity(scheme, GenotypeConcordanceCounts.VAR_TRUTH_STATES)), "0.734807");
+        Assert.assertEquals(fmt.format(concordanceCounts.Ppv(scheme, GenotypeConcordanceCounts.VAR_CALL_STATES)), "0.707447");
+        Assert.assertEquals(fmt.format(concordanceCounts.getSpecificity(scheme, GenotypeConcordanceCounts.VAR_TRUTH_STATES)), "0.668675");
+        Assert.assertEquals(fmt.format(concordanceCounts.calculateGenotypeConcordance(scheme, true)), "0.576132");
+        Assert.assertEquals(fmt.format(concordanceCounts.calculateNonRefGenotypeConcordance(scheme, true)), "0.469072");
+    }
+
+    @Test
+    public void testGA4GHSchemeWithIntervals() throws Exception {
+
+        final GenotypeConcordanceCounts concordanceCounts = GenotypeConcordanceTest.getGenotypeConcordanceCounts(ceuTrioSnpsVcf, ceuTrioSnpsVcf, "NA12878", false, intervalList);
+        concordanceCounts.validateCountsAgainstScheme(scheme);
+
+        final Map<GenotypeConcordanceStates.TruthAndCallStates, Integer> nonZeroCounts = new HashMap<GenotypeConcordanceStates.TruthAndCallStates, Integer>();
+        nonZeroCounts.put(new TruthAndCallStates(GenotypeConcordanceStates.TruthState.HET_REF_VAR1, GenotypeConcordanceStates.CallState.HET_REF_VAR1), 1);
+        nonZeroCounts.put(new TruthAndCallStates(GenotypeConcordanceStates.TruthState.VC_FILTERED, GenotypeConcordanceStates.CallState.VC_FILTERED), 2);
+
+        GenotypeConcordanceTest.assertNonZeroCountsAgree(concordanceCounts, nonZeroCounts);
+
+        final FormatUtil fmt = new FormatUtil();
+
+        Assert.assertEquals(fmt.format(concordanceCounts.getSensitivity(scheme, GenotypeConcordanceCounts.HET_TRUTH_STATES)), "1");
+        Assert.assertEquals(fmt.format(concordanceCounts.Ppv(scheme, GenotypeConcordanceCounts.HET_CALL_STATES)), "1");
+        Assert.assertEquals(fmt.format(concordanceCounts.getSensitivity(scheme, GenotypeConcordanceCounts.HOM_VAR_TRUTH_STATES)), "?");
+        Assert.assertEquals(fmt.format(concordanceCounts.Ppv(scheme, GenotypeConcordanceCounts.HOM_VAR_CALL_STATES)), "?");
+        Assert.assertEquals(fmt.format(concordanceCounts.getSpecificity(scheme, GenotypeConcordanceCounts.HOM_VAR_TRUTH_STATES)), "?");
+        Assert.assertEquals(fmt.format(concordanceCounts.getSensitivity(scheme, GenotypeConcordanceCounts.VAR_TRUTH_STATES)), "1");
+        Assert.assertEquals(fmt.format(concordanceCounts.Ppv(scheme, GenotypeConcordanceCounts.VAR_CALL_STATES)), "1");
+        Assert.assertEquals(fmt.format(concordanceCounts.getSpecificity(scheme, GenotypeConcordanceCounts.VAR_TRUTH_STATES)), "1");
+        Assert.assertEquals(fmt.format(concordanceCounts.calculateGenotypeConcordance(scheme, true)), "1");
+        Assert.assertEquals(fmt.format(concordanceCounts.calculateNonRefGenotypeConcordance(scheme, true)), "1");
+    }
+
+    @Test
+    public void testGA4GHSchemeDiffSamplesWithIntervals() throws Exception {
+
+        final GenotypeConcordanceCounts concordanceCounts = GenotypeConcordanceTest.getGenotypeConcordanceCounts(ceuTrioSnpsVcf, ceuTrioSnpsVcf, "NA12891", false, intervalList);
+        concordanceCounts.validateCountsAgainstScheme(scheme);
+
+        final Map<GenotypeConcordanceStates.TruthAndCallStates, Integer> nonZeroCounts = new HashMap<GenotypeConcordanceStates.TruthAndCallStates, Integer>();
+        nonZeroCounts.put(new TruthAndCallStates(GenotypeConcordanceStates.TruthState.HOM_REF, GenotypeConcordanceStates.CallState.HET_REF_VAR1), 1);
+        nonZeroCounts.put(new TruthAndCallStates(GenotypeConcordanceStates.TruthState.HET_REF_VAR1, GenotypeConcordanceStates.CallState.HET_REF_VAR1), 1);
+        nonZeroCounts.put(new TruthAndCallStates(GenotypeConcordanceStates.TruthState.VC_FILTERED, GenotypeConcordanceStates.CallState.VC_FILTERED), 2);
+
+        GenotypeConcordanceTest.assertNonZeroCountsAgree(concordanceCounts, nonZeroCounts);
+
+        final FormatUtil fmt = new FormatUtil();
+
+        Assert.assertEquals(fmt.format(concordanceCounts.getSensitivity(scheme, GenotypeConcordanceCounts.HET_TRUTH_STATES)), "1");
+        Assert.assertEquals(fmt.format(concordanceCounts.Ppv(scheme, GenotypeConcordanceCounts.HET_CALL_STATES)), "0.5");
+        Assert.assertEquals(fmt.format(concordanceCounts.getSensitivity(scheme, GenotypeConcordanceCounts.HOM_VAR_TRUTH_STATES)), "?");
+        Assert.assertEquals(fmt.format(concordanceCounts.Ppv(scheme, GenotypeConcordanceCounts.HOM_VAR_CALL_STATES)), "?");
+        Assert.assertEquals(fmt.format(concordanceCounts.getSpecificity(scheme, GenotypeConcordanceCounts.HOM_VAR_TRUTH_STATES)), "?");
+        Assert.assertEquals(fmt.format(concordanceCounts.getSensitivity(scheme, GenotypeConcordanceCounts.VAR_TRUTH_STATES)), "1");
+        Assert.assertEquals(fmt.format(concordanceCounts.Ppv(scheme, GenotypeConcordanceCounts.VAR_CALL_STATES)), "0.5");
+        Assert.assertEquals(fmt.format(concordanceCounts.getSpecificity(scheme, GenotypeConcordanceCounts.VAR_TRUTH_STATES)), "0.666667");
+        Assert.assertEquals(fmt.format(concordanceCounts.calculateGenotypeConcordance(scheme, true)), "0.75");
+        Assert.assertEquals(fmt.format(concordanceCounts.calculateNonRefGenotypeConcordance(scheme, true)), "0.5");
+    }
+}
\ No newline at end of file
diff --git a/src/tests/java/picard/vcf/GenotypeConcordanceGA4GHSchemeWithMissingTest.java b/src/tests/java/picard/vcf/GenotypeConcordanceGA4GHSchemeWithMissingTest.java
new file mode 100644
index 0000000..d97f4fd
--- /dev/null
+++ b/src/tests/java/picard/vcf/GenotypeConcordanceGA4GHSchemeWithMissingTest.java
@@ -0,0 +1,79 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2015 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.vcf;
+
+import htsjdk.samtools.util.FormatUtil;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+import picard.vcf.GenotypeConcordanceStates.TruthAndCallStates;
+import java.io.File;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.List;
+
+/**
+ * Created by kbergin on 6/24/15.
+ */
+public class GenotypeConcordanceGA4GHSchemeWithMissingTest{
+    private static final File TEST_DATA_PATH = new File("testdata/picard/vcf/");
+    final File ceuTrioSNPSVCF = new File(TEST_DATA_PATH, "CEUTrio-snps.vcf");
+    final File nistTruthVCF = new File(TEST_DATA_PATH, "NIST.selected.vcf");
+    private final GenotypeConcordanceSchemeFactory schemeFactory = new GenotypeConcordanceSchemeFactory();
+    final GenotypeConcordanceScheme scheme = schemeFactory.getScheme(true);
+    final List<File> intervalList = Collections.singletonList(new File(TEST_DATA_PATH, "IntervalList1PerChrom.interval_list"));
+
+    @Test
+    public void testMissingHomRefSchemeWithIntervals() {
+        final GenotypeConcordanceCounts concordanceCounts = GenotypeConcordanceTest.getGenotypeConcordanceCounts(nistTruthVCF, ceuTrioSNPSVCF, "NA12878", true, intervalList);
+        concordanceCounts.validateCountsAgainstScheme(scheme);
+
+        final Map<GenotypeConcordanceStates.TruthAndCallStates, Integer> nonZeroCounts = new HashMap<GenotypeConcordanceStates.TruthAndCallStates, Integer>();
+
+        nonZeroCounts.put(new TruthAndCallStates(GenotypeConcordanceStates.TruthState.MISSING, GenotypeConcordanceStates.CallState.MISSING), 63001594);
+        nonZeroCounts.put(new TruthAndCallStates(GenotypeConcordanceStates.TruthState.MISSING, GenotypeConcordanceStates.CallState.HET_REF_VAR1), 1);
+        nonZeroCounts.put(new TruthAndCallStates(GenotypeConcordanceStates.TruthState.MISSING, GenotypeConcordanceStates.CallState.VC_FILTERED), 2);
+        nonZeroCounts.put(new TruthAndCallStates(GenotypeConcordanceStates.TruthState.HET_REF_VAR1, GenotypeConcordanceStates.CallState.MISSING), 1);
+        nonZeroCounts.put(new TruthAndCallStates(GenotypeConcordanceStates.TruthState.HET_REF_VAR1, GenotypeConcordanceStates.CallState.HET_REF_VAR1), 11);
+        nonZeroCounts.put(new TruthAndCallStates(GenotypeConcordanceStates.TruthState.HOM_VAR1, GenotypeConcordanceStates.CallState.MISSING), 4);
+        nonZeroCounts.put(new TruthAndCallStates(GenotypeConcordanceStates.TruthState.HOM_VAR1, GenotypeConcordanceStates.CallState.HOM_VAR1), 5);
+
+        GenotypeConcordanceTest.assertNonZeroCountsAgree(concordanceCounts, nonZeroCounts);
+
+        final FormatUtil fmt = new FormatUtil();
+
+        Assert.assertEquals(fmt.format(concordanceCounts.getSensitivity(scheme, GenotypeConcordanceCounts.HET_TRUTH_STATES)), "0.916667");
+        Assert.assertEquals(fmt.format(concordanceCounts.Ppv(scheme, GenotypeConcordanceCounts.HET_CALL_STATES)), "0.916667");
+        Assert.assertEquals(fmt.format(concordanceCounts.getSensitivity(scheme, GenotypeConcordanceCounts.HOM_VAR_TRUTH_STATES)), "0.555556");
+        Assert.assertEquals(fmt.format(concordanceCounts.Ppv(scheme, GenotypeConcordanceCounts.HOM_VAR_CALL_STATES)), "1");
+        Assert.assertEquals(fmt.format(concordanceCounts.getSpecificity(scheme, GenotypeConcordanceCounts.HOM_VAR_TRUTH_STATES)), "?");
+        Assert.assertEquals(fmt.format(concordanceCounts.getSensitivity(scheme, GenotypeConcordanceCounts.VAR_TRUTH_STATES)), "0.761905");
+        Assert.assertEquals(fmt.format(concordanceCounts.Ppv(scheme, GenotypeConcordanceCounts.VAR_CALL_STATES)), "0.941176");
+        Assert.assertEquals(fmt.format(concordanceCounts.getSpecificity(scheme, GenotypeConcordanceCounts.VAR_TRUTH_STATES)), "1");
+        Assert.assertEquals(fmt.format(concordanceCounts.calculateGenotypeConcordance(scheme, true)), "1");
+        Assert.assertEquals(fmt.format(concordanceCounts.calculateNonRefGenotypeConcordance(scheme, true)), "0.727273");
+    }
+
+}
diff --git a/src/tests/java/picard/vcf/GenotypeConcordanceTest.java b/src/tests/java/picard/vcf/GenotypeConcordanceTest.java
new file mode 100644
index 0000000..608f0a9
--- /dev/null
+++ b/src/tests/java/picard/vcf/GenotypeConcordanceTest.java
@@ -0,0 +1,495 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2015 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+package picard.vcf;
+
+import htsjdk.samtools.metrics.MetricsFile;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.variant.variantcontext.Allele;
+import htsjdk.variant.variantcontext.Genotype;
+import htsjdk.variant.variantcontext.GenotypeBuilder;
+import htsjdk.variant.variantcontext.VariantContext;
+import htsjdk.variant.variantcontext.VariantContextBuilder;
+import org.testng.Assert;
+import org.testng.annotations.AfterClass;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+import picard.vcf.GenotypeConcordanceStates.CallState;
+import picard.vcf.GenotypeConcordanceStates.TruthAndCallStates;
+import picard.vcf.GenotypeConcordanceStates.TruthState;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+public class GenotypeConcordanceTest {
+
+    private static final File OUTPUT_DATA_PATH = IOUtil.createTempDir("GenotypeConcordanceTest", null);
+    private static final File TEST_DATA_PATH = new File("testdata/picard/vcf/");
+
+    // Test VCFs
+    private final File CEU_TRIOS_SNPS_VCF = new File(TEST_DATA_PATH, "CEUTrio-snps.vcf");
+    private static final File CEU_TRIOS_INDELS_VCF = new File(TEST_DATA_PATH, "CEUTrio-indels.vcf");
+
+    // Test that missing sites flag for new scheme works for NIST data sets
+    private static final File NIST_MISSING_SITES_TRUTH_VCF = new File(TEST_DATA_PATH, "NIST.selected.vcf");
+
+    // Test that we notice a difference on the first line
+    private static final File CEU_TRIOS_SNPS_FIRST_LINE_DIFF_VCF = new File(TEST_DATA_PATH, "CEUTrio-snps_first_line_diff.vcf");
+
+    // Test that we notice a difference on the last line
+    private static final File CEU_TRIOS_SNPS_LAST_LINE_DIFF_VCF = new File(TEST_DATA_PATH, "CEUTrio-snps_last_line_diff.vcf");
+
+    // Test that we notice a deleted line
+    private static final File CEU_TRIOS_SNPS_DEL_LINE_VCF = new File(TEST_DATA_PATH, "CEUTrio-snps_del_line.vcf");
+
+    // Existing/expected base metrics file names
+    private static final String CEU_TRIOS_SNPS_VS_CEU_TRIOS_SNPS_GC = "CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff";
+    private static final String CEU_TRIOS_INDELS_VS_CEU_TRIOS_INDELS_GC = "CEUTrio-indels_vs_CEUTrio-indels_GtConcordanceDiff";
+    private static final String CEU_TRIOS_SNPS_VS_CEU_TRIOS_SNPS_FIRST_LINE_DIFF_GC = "CEUTrio-snps_CEUTrio-snps_first_line_GtConcordanceDiff";
+    private static final String CEU_TRIOS_SNPS_VS_CEU_TRIOS_SNPS_LAST_LINE_DIFF_GC = "CEUTrio-snps_CEUTrio-snps_last_line_GtConcordanceDiff";
+    private static final String CEU_TRIOS_SNPS_VS_CEU_TRIOS_SNPS_DEL_LINE_GC = "CEUTrio-snps_CEUTrio-snps_del_line_GtConcordanceDiff";
+    private static final String CEU_TRIOS_SNPS_VS_CEU_TRIOS_SNPS_GC_ALL_ROWS = "CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff_AllRows";
+    private static final String CEU_TRIOS_SNPS_VS_CEU_TRIOS_SNPS_GC_MIN_GQ = "CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff_MinGq";
+    private static final String CEU_TRIOS_SNPS_VS_CEU_TRIOS_SNPS_GC_MIN_DP = "CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff_MinDp";
+    private static final String NIST_TRUTH_SNPS_VS_CEU_TRIOS_SNPS_GC = "NIST-truth-snps_vs_CEUTrio-snps_GtConcordanceDiff";
+
+    private static final String TRUTH_SAMPLE_NAME = "Foo";
+    private static final String CALL_SAMPLE_NAME = "Foo";
+
+    // A [ref] / T at 10
+    private static final String snpLoc = "chr1";
+    private static final int snpLocStart = 10;
+    private static final int snpLocStop = 10;
+
+    private static final Allele Aref = Allele.create("A", true);
+    private static final Allele C = Allele.create("C");
+    private static final Allele G = Allele.create("G");
+    private static final Allele T = Allele.create("T");
+
+    private static final Allele AA = Allele.create("AA");
+    private static final Allele AAA = Allele.create("AAA");
+    private static final Allele AAAA = Allele.create("AAAA");
+    private static final Allele AAAAA = Allele.create("AAAAA");
+
+    @AfterClass
+    public void tearDown() {
+        IOUtil.deleteDirectoryTree(OUTPUT_DATA_PATH);
+    }
+
+    @DataProvider(name = "genotypeConcordanceTestFileData")
+    public Object[][] getGenotypeConcordanceTestFileData() {
+        return new Object[][]{
+                {CEU_TRIOS_SNPS_VCF, "NA12878", CEU_TRIOS_SNPS_VCF, "NA12878", null, null, false, false, CEU_TRIOS_SNPS_VS_CEU_TRIOS_SNPS_GC},
+                {CEU_TRIOS_INDELS_VCF, "NA12878", CEU_TRIOS_INDELS_VCF, "NA12878", null, null, false, false, CEU_TRIOS_INDELS_VS_CEU_TRIOS_INDELS_GC},
+                {CEU_TRIOS_SNPS_VCF, "NA12878", CEU_TRIOS_SNPS_FIRST_LINE_DIFF_VCF, "NA12878", null, null, false, false, CEU_TRIOS_SNPS_VS_CEU_TRIOS_SNPS_FIRST_LINE_DIFF_GC},
+                {CEU_TRIOS_SNPS_VCF, "NA12878", CEU_TRIOS_SNPS_LAST_LINE_DIFF_VCF, "NA12878", null, null, false, false, CEU_TRIOS_SNPS_VS_CEU_TRIOS_SNPS_LAST_LINE_DIFF_GC},
+                {CEU_TRIOS_SNPS_VCF, "NA12878", CEU_TRIOS_SNPS_DEL_LINE_VCF, "NA12878", null, null, false, false, CEU_TRIOS_SNPS_VS_CEU_TRIOS_SNPS_DEL_LINE_GC},
+                {CEU_TRIOS_SNPS_VCF, "NA12878", CEU_TRIOS_SNPS_VCF, "NA12878", null, null, true, false, CEU_TRIOS_SNPS_VS_CEU_TRIOS_SNPS_GC_ALL_ROWS},
+                {CEU_TRIOS_SNPS_VCF, "NA12878", CEU_TRIOS_SNPS_VCF, "NA12891", 40, null, false, false, CEU_TRIOS_SNPS_VS_CEU_TRIOS_SNPS_GC_MIN_GQ},
+                {CEU_TRIOS_SNPS_VCF, "NA12878", CEU_TRIOS_SNPS_VCF, "NA12891", null, 40, false, false, CEU_TRIOS_SNPS_VS_CEU_TRIOS_SNPS_GC_MIN_DP},
+                {NIST_MISSING_SITES_TRUTH_VCF, "NA12878", CEU_TRIOS_SNPS_VCF, "NA12878", null, null, false, true, NIST_TRUTH_SNPS_VS_CEU_TRIOS_SNPS_GC}
+        };
+    }
+
+    @Test(dataProvider = "genotypeConcordanceTestFileData")
+    public void testGenotypeConcordance(final File vcf1, final String sample1, final File vcf2, final String sample2,
+                                        final Integer minGq, final Integer minDp, final boolean outputAllRows, final boolean missingSitesFlag,
+                                        final String expectedOutputFileBaseName) throws Exception {
+        final File outputBaseFileName = new File(OUTPUT_DATA_PATH, "actualGtConc");
+        final File outputSummaryFile = new File(outputBaseFileName.getAbsolutePath() + GenotypeConcordance.SUMMARY_METRICS_FILE_EXTENSION);
+        final File outputDetailsFile = new File(outputBaseFileName.getAbsolutePath() + GenotypeConcordance.DETAILED_METRICS_FILE_EXTENSION);
+        final File outputContingencyFile = new File(outputBaseFileName.getAbsolutePath() + GenotypeConcordance.CONTINGENCY_METRICS_FILE_EXTENSION);
+        outputSummaryFile.deleteOnExit();
+        outputDetailsFile.deleteOnExit();
+        outputContingencyFile.deleteOnExit();
+
+        final GenotypeConcordance genotypeConcordance = new GenotypeConcordance();
+        genotypeConcordance.TRUTH_VCF = vcf1;
+        genotypeConcordance.TRUTH_SAMPLE = sample1;
+        genotypeConcordance.CALL_VCF = vcf2;
+        genotypeConcordance.CALL_SAMPLE = sample2;
+        if (minGq != null) genotypeConcordance.MIN_GQ = minGq;
+        if (minDp != null) genotypeConcordance.MIN_DP = minDp;
+        genotypeConcordance.OUTPUT_ALL_ROWS = outputAllRows;
+        genotypeConcordance.OUTPUT = outputBaseFileName;
+        genotypeConcordance.MISSING_SITES_HOM_REF = missingSitesFlag;
+        if (missingSitesFlag) genotypeConcordance.INTERVALS = Collections.singletonList(new File(TEST_DATA_PATH, "IntervalList1PerChrom.interval_list"));
+
+        Assert.assertEquals(genotypeConcordance.instanceMain(new String[0]), 0);
+        assertMetricsFileEqual(outputSummaryFile, new File(TEST_DATA_PATH, expectedOutputFileBaseName + GenotypeConcordance.SUMMARY_METRICS_FILE_EXTENSION));
+        assertMetricsFileEqual(outputDetailsFile, new File(TEST_DATA_PATH, expectedOutputFileBaseName + GenotypeConcordance.DETAILED_METRICS_FILE_EXTENSION));
+        assertMetricsFileEqual(outputContingencyFile, new File(TEST_DATA_PATH, expectedOutputFileBaseName + GenotypeConcordance.CONTINGENCY_METRICS_FILE_EXTENSION));
+    }
+
+    private void assertMetricsFileEqual(final File actualMetricsFile, final File expectedMetricsFile) throws FileNotFoundException {
+        // Actual metrics file
+        final MetricsFile<GenotypeConcordanceSummaryMetrics, Comparable<?>> actual = new MetricsFile<GenotypeConcordanceSummaryMetrics, Comparable<?>>();
+        actual.read(new FileReader(actualMetricsFile));
+
+        // Expected metrics file
+        final MetricsFile<GenotypeConcordanceSummaryMetrics, Comparable<?>> expected = new MetricsFile<GenotypeConcordanceSummaryMetrics, Comparable<?>>();
+        expected.read(new FileReader(expectedMetricsFile));
+
+        // Note - cannot use .equals as it calls .areHeadersEqual and they are not since the timestamp (at a minimum is different)
+        Assert.assertTrue(expected.areMetricsEqual(actual));
+        Assert.assertTrue(expected.areHistogramsEqual(actual));
+    }
+
+    public static GenotypeConcordanceCounts getGenotypeConcordanceCounts(final File truthVCF, final File callVCF, final String callSample, final boolean missingSitesFlag, List<File> intervalFiles){
+        //gets the Genotype Concordance Counts for the detail tests for each scheme
+        final File outputBaseFileName = new File(OUTPUT_DATA_PATH, "actualGtConc");
+        final File outputSummaryFile = new File(outputBaseFileName.getAbsolutePath() + GenotypeConcordance.SUMMARY_METRICS_FILE_EXTENSION);
+        final File outputDetailsFile = new File(outputBaseFileName.getAbsolutePath() + GenotypeConcordance.DETAILED_METRICS_FILE_EXTENSION);
+        outputSummaryFile.deleteOnExit();
+        outputDetailsFile.deleteOnExit();
+
+        final GenotypeConcordance genotypeConcordance = new GenotypeConcordance();
+        genotypeConcordance.TRUTH_VCF = truthVCF;
+        genotypeConcordance.TRUTH_SAMPLE = "NA12878";
+        genotypeConcordance.CALL_VCF = callVCF;
+        genotypeConcordance.CALL_SAMPLE = callSample;
+        genotypeConcordance.MISSING_SITES_HOM_REF = missingSitesFlag;
+        genotypeConcordance.INTERVALS = intervalFiles;
+        genotypeConcordance.OUTPUT = outputBaseFileName;
+
+        Assert.assertEquals(genotypeConcordance.instanceMain(new String[0]), 0);
+
+        return genotypeConcordance.getSnpCounter();
+    }
+
+    public static void assertNonZeroCountsAgree(final GenotypeConcordanceCounts counter, final Map<TruthAndCallStates, Integer> expectedCountMap) {
+        for (final TruthState truthState : TruthState.values()) {
+            for (final CallState callState : CallState.values()) {
+                Integer expectedCount = expectedCountMap.get(new TruthAndCallStates(truthState, callState));
+                if (expectedCount == null) expectedCount = 0;
+                Assert.assertEquals(counter.getCount(truthState, callState), expectedCount.intValue());
+            }
+        }
+    }
+
+    @DataProvider(name = "genotypeConcordanceDetermineStateDataProvider")
+    public Object[][] genotypeConcordanceDetermineStateDataProvider() {
+        final Object[][] originalUnitTestData = new Object[][]{
+                {Aref, Aref, TruthState.HOM_REF, Aref, Aref, CallState.HOM_REF},
+
+                {Aref, Aref, TruthState.HOM_REF, Aref, C, CallState.HET_REF_VAR1},
+                {Aref, Aref, TruthState.HOM_REF, Aref, G, CallState.HET_REF_VAR1},
+                {Aref, Aref, TruthState.HOM_REF, Aref, T, CallState.HET_REF_VAR1},
+
+                {Aref, Aref, TruthState.HOM_REF, C, G, CallState.HET_VAR1_VAR2},
+                {Aref, Aref, TruthState.HOM_REF, C, T, CallState.HET_VAR1_VAR2},
+                {Aref, Aref, TruthState.HOM_REF, G, T, CallState.HET_VAR1_VAR2},
+
+                {Aref, Aref, TruthState.HOM_REF, C, C, CallState.HOM_VAR1},
+                {Aref, Aref, TruthState.HOM_REF, G, G, CallState.HOM_VAR1},
+                {Aref, Aref, TruthState.HOM_REF, T, T, CallState.HOM_VAR1},
+
+                //---
+                {Aref, C, TruthState.HET_REF_VAR1, Aref, Aref, CallState.HOM_REF},
+                {Aref, G, TruthState.HET_REF_VAR1, Aref, Aref, CallState.HOM_REF},
+                {Aref, T, TruthState.HET_REF_VAR1, Aref, Aref, CallState.HOM_REF},
+
+                {Aref, C, TruthState.HET_REF_VAR1, Aref, C, CallState.HET_REF_VAR1},
+                {Aref, C, TruthState.HET_REF_VAR1, Aref, G, CallState.HET_REF_VAR2},
+                {Aref, C, TruthState.HET_REF_VAR1, Aref, T, CallState.HET_REF_VAR2},
+                {Aref, G, TruthState.HET_REF_VAR1, Aref, C, CallState.HET_REF_VAR2},
+                {Aref, G, TruthState.HET_REF_VAR1, Aref, G, CallState.HET_REF_VAR1},
+                {Aref, G, TruthState.HET_REF_VAR1, Aref, T, CallState.HET_REF_VAR2},
+                {Aref, T, TruthState.HET_REF_VAR1, Aref, C, CallState.HET_REF_VAR2},
+                {Aref, T, TruthState.HET_REF_VAR1, Aref, G, CallState.HET_REF_VAR2},
+                {Aref, T, TruthState.HET_REF_VAR1, Aref, T, CallState.HET_REF_VAR1},
+
+                {Aref, C, TruthState.HET_REF_VAR1, C, G, CallState.HET_VAR1_VAR2},
+                {Aref, C, TruthState.HET_REF_VAR1, C, T, CallState.HET_VAR1_VAR2},
+                {Aref, C, TruthState.HET_REF_VAR1, G, T, CallState.HET_VAR3_VAR4},  // Why isn't this called HET_VAR2_VAR3???
+                {Aref, G, TruthState.HET_REF_VAR1, C, G, CallState.HET_VAR1_VAR2},
+                {Aref, G, TruthState.HET_REF_VAR1, C, T, CallState.HET_VAR3_VAR4},
+                {Aref, G, TruthState.HET_REF_VAR1, G, T, CallState.HET_VAR1_VAR2},
+                {Aref, T, TruthState.HET_REF_VAR1, C, G, CallState.HET_VAR3_VAR4},
+                {Aref, T, TruthState.HET_REF_VAR1, C, T, CallState.HET_VAR1_VAR2},
+                {Aref, T, TruthState.HET_REF_VAR1, G, T, CallState.HET_VAR1_VAR2},
+
+                {Aref, C, TruthState.HET_REF_VAR1, C, C, CallState.HOM_VAR1},
+                {Aref, C, TruthState.HET_REF_VAR1, G, G, CallState.HOM_VAR2},
+                {Aref, C, TruthState.HET_REF_VAR1, T, T, CallState.HOM_VAR2},
+                {Aref, G, TruthState.HET_REF_VAR1, C, C, CallState.HOM_VAR2},
+                {Aref, G, TruthState.HET_REF_VAR1, G, G, CallState.HOM_VAR1},
+                {Aref, G, TruthState.HET_REF_VAR1, T, T, CallState.HOM_VAR2},
+                {Aref, T, TruthState.HET_REF_VAR1, C, C, CallState.HOM_VAR2},
+                {Aref, T, TruthState.HET_REF_VAR1, G, G, CallState.HOM_VAR2},
+                {Aref, T, TruthState.HET_REF_VAR1, T, T, CallState.HOM_VAR1},
+
+                //---
+                {C, G, TruthState.HET_VAR1_VAR2, Aref, Aref, CallState.HOM_REF},
+                {C, T, TruthState.HET_VAR1_VAR2, Aref, Aref, CallState.HOM_REF},
+                {G, T, TruthState.HET_VAR1_VAR2, Aref, Aref, CallState.HOM_REF},
+
+                {C, G, TruthState.HET_VAR1_VAR2, Aref, C, CallState.HET_REF_VAR1},
+                {C, G, TruthState.HET_VAR1_VAR2, Aref, G, CallState.HET_REF_VAR1},
+                {C, G, TruthState.HET_VAR1_VAR2, Aref, T, CallState.HET_REF_VAR3},
+                {C, T, TruthState.HET_VAR1_VAR2, Aref, C, CallState.HET_REF_VAR1},
+                {C, T, TruthState.HET_VAR1_VAR2, Aref, G, CallState.HET_REF_VAR3},
+                {C, T, TruthState.HET_VAR1_VAR2, Aref, T, CallState.HET_REF_VAR1},
+                {G, T, TruthState.HET_VAR1_VAR2, Aref, C, CallState.HET_REF_VAR3},
+                {G, T, TruthState.HET_VAR1_VAR2, Aref, G, CallState.HET_REF_VAR1},
+                {G, T, TruthState.HET_VAR1_VAR2, Aref, T, CallState.HET_REF_VAR1},
+
+                {C, G, TruthState.HET_VAR1_VAR2, C, C, CallState.HOM_VAR1},
+                {C, G, TruthState.HET_VAR1_VAR2, G, G, CallState.HOM_VAR1},
+                {C, G, TruthState.HET_VAR1_VAR2, T, T, CallState.HOM_VAR3},
+                {C, T, TruthState.HET_VAR1_VAR2, C, C, CallState.HOM_VAR1},
+                {C, T, TruthState.HET_VAR1_VAR2, G, G, CallState.HOM_VAR3},
+                {C, T, TruthState.HET_VAR1_VAR2, T, T, CallState.HOM_VAR1},
+                {G, T, TruthState.HET_VAR1_VAR2, C, C, CallState.HOM_VAR3},
+                {G, T, TruthState.HET_VAR1_VAR2, G, G, CallState.HOM_VAR1},
+                {G, T, TruthState.HET_VAR1_VAR2, T, T, CallState.HOM_VAR1},
+
+                {C, G, TruthState.HET_VAR1_VAR2, C, G, CallState.HET_VAR1_VAR2},
+                {C, G, TruthState.HET_VAR1_VAR2, C, T, CallState.HET_VAR1_VAR3},
+                {C, G, TruthState.HET_VAR1_VAR2, G, T, CallState.HET_VAR1_VAR3},
+                {C, T, TruthState.HET_VAR1_VAR2, C, G, CallState.HET_VAR1_VAR3},
+                {C, T, TruthState.HET_VAR1_VAR2, C, T, CallState.HET_VAR1_VAR2},
+                {C, T, TruthState.HET_VAR1_VAR2, G, T, CallState.HET_VAR1_VAR3},
+                {G, T, TruthState.HET_VAR1_VAR2, C, G, CallState.HET_VAR1_VAR3},
+                {G, T, TruthState.HET_VAR1_VAR2, C, T, CallState.HET_VAR1_VAR3},
+                {G, T, TruthState.HET_VAR1_VAR2, G, T, CallState.HET_VAR1_VAR2},
+
+                //---
+                {C, C, TruthState.HOM_VAR1, Aref, Aref, CallState.HOM_REF},
+                {G, G, TruthState.HOM_VAR1, Aref, Aref, CallState.HOM_REF},
+                {T, T, TruthState.HOM_VAR1, Aref, Aref, CallState.HOM_REF},
+
+                {C, C, TruthState.HOM_VAR1, Aref, C, CallState.HET_REF_VAR1},
+                {C, C, TruthState.HOM_VAR1, Aref, G, CallState.HET_REF_VAR2},
+                {C, C, TruthState.HOM_VAR1, Aref, T, CallState.HET_REF_VAR2},
+                {G, G, TruthState.HOM_VAR1, Aref, C, CallState.HET_REF_VAR2},
+                {G, G, TruthState.HOM_VAR1, Aref, G, CallState.HET_REF_VAR1},
+                {G, G, TruthState.HOM_VAR1, Aref, T, CallState.HET_REF_VAR2},
+                {T, T, TruthState.HOM_VAR1, Aref, C, CallState.HET_REF_VAR2},
+                {T, T, TruthState.HOM_VAR1, Aref, G, CallState.HET_REF_VAR2},
+                {T, T, TruthState.HOM_VAR1, Aref, T, CallState.HET_REF_VAR1},
+
+                {C, C, TruthState.HOM_VAR1, C, C, CallState.HOM_VAR1},
+                {C, C, TruthState.HOM_VAR1, G, G, CallState.HOM_VAR2},
+                {C, C, TruthState.HOM_VAR1, T, T, CallState.HOM_VAR2},
+                {G, G, TruthState.HOM_VAR1, C, C, CallState.HOM_VAR2},
+                {G, G, TruthState.HOM_VAR1, G, G, CallState.HOM_VAR1},
+                {G, G, TruthState.HOM_VAR1, T, T, CallState.HOM_VAR2},
+                {T, T, TruthState.HOM_VAR1, C, C, CallState.HOM_VAR2},
+                {T, T, TruthState.HOM_VAR1, G, G, CallState.HOM_VAR2},
+                {T, T, TruthState.HOM_VAR1, T, T, CallState.HOM_VAR1},
+
+                {C, C, TruthState.HOM_VAR1, C, G, CallState.HET_VAR1_VAR2},
+                {C, C, TruthState.HOM_VAR1, C, T, CallState.HET_VAR1_VAR2},
+                {C, C, TruthState.HOM_VAR1, G, T, CallState.HET_VAR3_VAR4},
+                {G, G, TruthState.HOM_VAR1, C, G, CallState.HET_VAR1_VAR2},
+                {G, G, TruthState.HOM_VAR1, C, T, CallState.HET_VAR3_VAR4},
+                {G, G, TruthState.HOM_VAR1, G, T, CallState.HET_VAR1_VAR2},
+                {T, T, TruthState.HOM_VAR1, C, G, CallState.HET_VAR3_VAR4},
+                {T, T, TruthState.HOM_VAR1, C, T, CallState.HET_VAR1_VAR2},
+                {T, T, TruthState.HOM_VAR1, G, T, CallState.HET_VAR1_VAR2},
+                // Some Indel Cases
+                {AA, AA, TruthState.HOM_VAR1, AAAA, AAAAA, CallState.HET_VAR3_VAR4},
+                {AA, AAA, TruthState.HET_VAR1_VAR2, AAAA, AAAAA, CallState.HET_VAR3_VAR4},
+
+                // Mixed Cases
+                {C, AA, TruthState.IS_MIXED, AAAA, AAAAA, CallState.HET_VAR1_VAR2},
+                {AA, C, TruthState.IS_MIXED, AAAA, AAAAA, CallState.HET_VAR1_VAR2},
+
+                {AA, AA, TruthState.HOM_VAR1, C, AAAAA, CallState.IS_MIXED},
+                {AA, AAA, TruthState.HET_VAR1_VAR2, AAAA, C, CallState.IS_MIXED},
+
+                // No Call cases
+                {Allele.NO_CALL, Aref, TruthState.NO_CALL, Aref, Aref, CallState.HOM_REF},
+                {Aref, Allele.NO_CALL, TruthState.NO_CALL, Aref, Aref, CallState.HOM_REF},
+                {Allele.NO_CALL, Allele.NO_CALL, TruthState.NO_CALL, Aref, Aref, CallState.HOM_REF},
+
+                {Aref, Aref, TruthState.HOM_REF, Allele.NO_CALL, Aref, CallState.NO_CALL},
+                {Aref, Aref, TruthState.HOM_REF, Aref, Allele.NO_CALL, CallState.NO_CALL},
+                {Aref, Aref, TruthState.HOM_REF, Allele.NO_CALL, Allele.NO_CALL, CallState.NO_CALL}
+        };
+        // Rebuild a new set of unit test data with all permutations of alleles.
+        final List<Object[]> allPermutationUnitTestDataList = new ArrayList<Object[]>();
+        for (final Object[] unitTestData : originalUnitTestData) {
+            allPermutationUnitTestDataList.add(unitTestData);
+            final Allele truthAllele1 = (Allele) unitTestData[0];
+            final Allele truthAllele2 = (Allele) unitTestData[1];
+            final TruthState expectedTruthState = (TruthState) unitTestData[2];
+            final Allele callAllele1 = (Allele) unitTestData[3];
+            final Allele callAllele2 = (Allele) unitTestData[4];
+            final CallState expectedCallState = (CallState) unitTestData[5];
+            if (!callAllele1.equals(callAllele2)) {
+                allPermutationUnitTestDataList.add(new Object[]{truthAllele1, truthAllele2, expectedTruthState, callAllele2, callAllele1, expectedCallState});
+            }
+            if (!truthAllele1.equals(truthAllele2)) {
+                allPermutationUnitTestDataList.add(new Object[]{truthAllele2, truthAllele1, expectedTruthState, callAllele1, callAllele2, expectedCallState});
+                if (!callAllele1.equals(callAllele2)) {
+                    allPermutationUnitTestDataList.add(new Object[]{truthAllele2, truthAllele1, expectedTruthState, callAllele2, callAllele1, expectedCallState});
+                }
+            }
+        }
+        Object[][] allPermutationUnitTestData = new Object[allPermutationUnitTestDataList.size()][];
+        allPermutationUnitTestData = allPermutationUnitTestDataList.toArray(allPermutationUnitTestData);
+        return allPermutationUnitTestData;
+    }
+
+
+    @Test(dataProvider = "genotypeConcordanceDetermineStateDataProvider")
+    public void testGenotypeConcordanceDetermineState(final Allele truthAllele1, final Allele truthAllele2, final TruthState expectedTruthState,
+                                                      final Allele callAllele1, final Allele callAllele2, final CallState expectedCallState) throws Exception {
+        final List<Allele> truthAlleles = makeUniqueListOfAlleles(truthAllele1, truthAllele2);
+        final Genotype truthGt = GenotypeBuilder.create(TRUTH_SAMPLE_NAME, Arrays.asList(truthAllele1, truthAllele2));
+
+        final VariantContext truthVariantContext = new VariantContextBuilder("test", snpLoc, snpLocStart, snpLocStop, truthAlleles).genotypes(truthGt).make();
+
+        final List<Allele> callAlleles = makeUniqueListOfAlleles(callAllele1, callAllele2);
+        final Genotype callGt = GenotypeBuilder.create(CALL_SAMPLE_NAME, Arrays.asList(callAllele1, callAllele2));
+        final VariantContext callVariantContext = new VariantContextBuilder("test", snpLoc, snpLocStart, snpLocStop, callAlleles).genotypes(callGt).make();
+
+        testGenotypeConcordanceDetermineState(truthVariantContext, expectedTruthState, callVariantContext, expectedCallState, 0, 0);
+    }
+
+    @Test
+    public void testGenotypeConcordanceDetermineStateNull() throws Exception {
+        final List<Allele> alleles = makeUniqueListOfAlleles(Aref, C);
+        final Genotype gt1 = GenotypeBuilder.create(TRUTH_SAMPLE_NAME, Arrays.asList(Aref, C));
+        final VariantContext vc1 = new VariantContextBuilder("test", snpLoc, snpLocStart, snpLocStop, alleles).genotypes(gt1).make();
+
+        testGenotypeConcordanceDetermineState(null, TruthState.MISSING, null, CallState.MISSING, 0, 0);
+        testGenotypeConcordanceDetermineState(vc1, TruthState.HET_REF_VAR1, null, CallState.MISSING, 0, 0);
+        testGenotypeConcordanceDetermineState(null, TruthState.MISSING, vc1, CallState.HET_REF_VAR1, 0, 0);
+    }
+
+    @Test
+    public void testGenotypeConcordanceDetermineStateFilter() throws Exception {
+        final Set<String> filters = new HashSet<String>(Arrays.asList("BAD!"));
+
+        // Filtering on the variant context
+        final List<Allele> alleles1 = makeUniqueListOfAlleles(Aref, C);
+        final Genotype gt1 = GenotypeBuilder.create(TRUTH_SAMPLE_NAME, Arrays.asList(Aref, C));
+        final VariantContext vcFiltered = new VariantContextBuilder("test", snpLoc, snpLocStart, snpLocStop, alleles1).genotypes(gt1).filters(filters).make();
+
+        final List<Allele> alleles2 = makeUniqueListOfAlleles(Aref, T);
+        final Genotype gt2 = GenotypeBuilder.create(TRUTH_SAMPLE_NAME, Arrays.asList(Aref, T));
+        final VariantContext vcNotFiltered = new VariantContextBuilder("test", snpLoc, snpLocStart, snpLocStop, alleles2).genotypes(gt2).make();
+
+        testGenotypeConcordanceDetermineState(vcFiltered, TruthState.VC_FILTERED, vcNotFiltered, CallState.HET_REF_VAR1, 0, 0);
+        testGenotypeConcordanceDetermineState(vcNotFiltered, TruthState.HET_REF_VAR1, vcFiltered, CallState.VC_FILTERED, 0, 0);
+        testGenotypeConcordanceDetermineState(vcFiltered, TruthState.VC_FILTERED, vcFiltered, CallState.VC_FILTERED, 0, 0);
+
+        // Filtering on the genotype
+        final List<String> gtFilters = new ArrayList<String>(Arrays.asList("WICKED"));
+        final List<Allele> alleles3 = makeUniqueListOfAlleles(Aref, C);
+        final Genotype gt3 = new GenotypeBuilder(TRUTH_SAMPLE_NAME, Arrays.asList(Aref, C)).filters(gtFilters).make();
+        final VariantContext vcGtFiltered = new VariantContextBuilder("test", snpLoc, snpLocStart, snpLocStop, alleles3).genotypes(gt3).make();
+
+        testGenotypeConcordanceDetermineState(vcGtFiltered, TruthState.GT_FILTERED, vcNotFiltered, CallState.HET_REF_VAR1, 0, 0);
+        testGenotypeConcordanceDetermineState(vcNotFiltered, TruthState.HET_REF_VAR1, vcGtFiltered, CallState.GT_FILTERED, 0, 0);
+        testGenotypeConcordanceDetermineState(vcGtFiltered, TruthState.GT_FILTERED, vcGtFiltered, CallState.GT_FILTERED, 0, 0);
+    }
+
+    @Test
+    public void testGenotypeConcordanceDetermineStateDp() throws Exception {
+        final List<Allele> allelesNormal = makeUniqueListOfAlleles(Aref, C);
+        final Genotype gtNormal = GenotypeBuilder.create(TRUTH_SAMPLE_NAME, Arrays.asList(Aref, C));
+        final VariantContext vcNormal = new VariantContextBuilder("test", snpLoc, snpLocStart, snpLocStop, allelesNormal).genotypes(gtNormal).make();
+
+        final List<Allele> allelesLowDp = makeUniqueListOfAlleles(Aref, C);
+        final Genotype gtLowDp = new GenotypeBuilder(TRUTH_SAMPLE_NAME, Arrays.asList(Aref, C)).DP(4).make();
+        final VariantContext vcLowDp = new VariantContextBuilder("test", snpLoc, snpLocStart, snpLocStop, allelesLowDp).genotypes(gtLowDp).make();
+
+        testGenotypeConcordanceDetermineState(vcLowDp, TruthState.LOW_DP, vcNormal, CallState.HET_REF_VAR1, 0, 20);
+        testGenotypeConcordanceDetermineState(vcLowDp, TruthState.HET_REF_VAR1, vcLowDp, CallState.HET_REF_VAR1, 0, 2);
+
+        testGenotypeConcordanceDetermineState(vcNormal, TruthState.HET_REF_VAR1, vcLowDp, CallState.LOW_DP, 0, 20);
+        testGenotypeConcordanceDetermineState(vcNormal, TruthState.HET_REF_VAR1, vcLowDp, CallState.HET_REF_VAR1, 0, 2);
+
+        testGenotypeConcordanceDetermineState(vcLowDp, TruthState.LOW_DP, vcLowDp, CallState.LOW_DP, 0, 20);
+        testGenotypeConcordanceDetermineState(vcLowDp, TruthState.HET_REF_VAR1, vcLowDp, CallState.HET_REF_VAR1, 0, 2);
+    }
+
+    @Test
+    public void testGenotypeConcordanceDetermineStateGq() throws Exception {
+        final List<Allele> allelesNormal = makeUniqueListOfAlleles(Aref, C);
+        final Genotype gtNormal = GenotypeBuilder.create(TRUTH_SAMPLE_NAME, Arrays.asList(Aref, C));
+        final VariantContext vcNormal = new VariantContextBuilder("test", snpLoc, snpLocStart, snpLocStop, allelesNormal).genotypes(gtNormal).make();
+
+        final List<Allele> allelesLowGq = makeUniqueListOfAlleles(Aref, C);
+        final Genotype gtLowGq = new GenotypeBuilder(TRUTH_SAMPLE_NAME, Arrays.asList(Aref, C)).GQ(4).make();
+        final VariantContext vcLowGq = new VariantContextBuilder("test", snpLoc, snpLocStart, snpLocStop, allelesLowGq).genotypes(gtLowGq).make();
+
+        testGenotypeConcordanceDetermineState(vcLowGq, TruthState.LOW_GQ, vcNormal, CallState.HET_REF_VAR1, 20, 0);
+        testGenotypeConcordanceDetermineState(vcLowGq, TruthState.HET_REF_VAR1, vcLowGq, CallState.HET_REF_VAR1, 2, 0);
+
+        testGenotypeConcordanceDetermineState(vcNormal, TruthState.HET_REF_VAR1, vcLowGq, CallState.LOW_GQ, 20, 0);
+        testGenotypeConcordanceDetermineState(vcNormal, TruthState.HET_REF_VAR1, vcLowGq, CallState.HET_REF_VAR1, 2, 0);
+
+        testGenotypeConcordanceDetermineState(vcLowGq, TruthState.LOW_GQ, vcLowGq, CallState.LOW_GQ, 20, 0);
+        testGenotypeConcordanceDetermineState(vcLowGq, TruthState.HET_REF_VAR1, vcLowGq, CallState.HET_REF_VAR1, 2, 0);
+    }
+
+    /**
+     * Test method to determine that the expected truth and call states are returned for a pair of truth and call variant contexts.
+     * @param truthVariantContext
+     * @param expectedTruthState
+     * @param callVariantContext
+     * @param expectedCallState
+     * @param minGq
+     * @param minDp
+     */
+    private void testGenotypeConcordanceDetermineState(final VariantContext truthVariantContext, final TruthState expectedTruthState,
+                                                       final VariantContext callVariantContext, final CallState expectedCallState,
+                                                       final int minGq, final int minDp) {
+        final GenotypeConcordance genotypeConcordance = new GenotypeConcordance();
+        genotypeConcordance.TRUTH_SAMPLE = TRUTH_SAMPLE_NAME;
+        genotypeConcordance.CALL_SAMPLE = CALL_SAMPLE_NAME;
+
+        final TruthAndCallStates truthAndCallStates = genotypeConcordance.determineState(truthVariantContext, TRUTH_SAMPLE_NAME,
+                callVariantContext, CALL_SAMPLE_NAME, minGq, minDp);
+        Assert.assertEquals(truthAndCallStates.truthState, expectedTruthState);
+        Assert.assertEquals(truthAndCallStates.callState, expectedCallState);
+    }
+
+    /**
+     * Simple method to return a list of unique alleles.
+     */
+    private List<Allele> makeUniqueListOfAlleles(final Allele... alleles) {
+        final Set<Allele> uniqueAlleles = new HashSet<Allele>();
+        for (final Allele allele : alleles) {
+            if (!allele.equals(Allele.NO_CALL)) {
+                uniqueAlleles.add(allele);
+            }
+        }
+        if (!uniqueAlleles.contains(Aref)) uniqueAlleles.add(Aref);
+        return new ArrayList<Allele>(uniqueAlleles);
+    }
+}
diff --git a/src/tests/java/picard/vcf/MergeVcfsTest.java b/src/tests/java/picard/vcf/MergeVcfsTest.java
new file mode 100644
index 0000000..f53461a
--- /dev/null
+++ b/src/tests/java/picard/vcf/MergeVcfsTest.java
@@ -0,0 +1,14 @@
+package picard.vcf;
+
+import picard.cmdline.CommandLineProgram;
+
+/**
+ * Created by bradt on 9/3/14.
+ */
+public class MergeVcfsTest extends AbstractVcfMergingClpTester {
+
+    @Override
+    protected CommandLineProgram getProgram() {
+        return new MergeVcfs();
+    }
+}
diff --git a/src/tests/java/picard/vcf/SortVcfsTest.java b/src/tests/java/picard/vcf/SortVcfsTest.java
new file mode 100644
index 0000000..c2836e1
--- /dev/null
+++ b/src/tests/java/picard/vcf/SortVcfsTest.java
@@ -0,0 +1,120 @@
+package picard.vcf;
+
+import htsjdk.samtools.util.CloseableIterator;
+import htsjdk.variant.variantcontext.VariantContext;
+import htsjdk.variant.variantcontext.VariantContextComparator;
+import htsjdk.variant.vcf.VCFFileReader;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+import picard.cmdline.CommandLineProgram;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * Test class for SortVCF. Several tests also conducted by AbstractVcfMergingClpTester
+ *
+ * Created by bradt on 9/3/14.
+ */
+public class SortVcfsTest extends AbstractVcfMergingClpTester {
+
+    @Override
+    protected CommandLineProgram getProgram() {
+        return new SortVcf();
+    }
+
+    @Test
+    public void testPresortedFile() throws IOException {
+        final File snpInputFile = new File(TEST_DATA_PATH, "CEUTrio-snps.vcf");
+        final File output = File.createTempFile("sort-presorted-test-output.", ".vcf");
+        final List<String> indexing = Arrays.asList("CREATE_INDEX=false");
+        output.deleteOnExit();
+
+        final int numberOfVariantContexts = loadContigPositions(snpInputFile).size();
+
+        runClp(Arrays.asList(snpInputFile), output, indexing, 0);
+        validateSortingResults(output, numberOfVariantContexts);
+    }
+
+    @Test
+    public void testSingleScrambledFile() throws IOException {
+        final File snpInputFile = new File(TEST_DATA_PATH, "CEUTrio-snps-scrambled.1.vcf");
+        final File output = File.createTempFile("sort-single-scrambled-test-output.", ".vcf");
+        final List<String> indexing = Arrays.asList("CREATE_INDEX=false");
+        output.deleteOnExit();
+
+        final int numberOfVariantContexts = loadContigPositions(snpInputFile).size();
+
+        runClp(Arrays.asList(snpInputFile), output, indexing, 0);
+        validateSortingResults(output, numberOfVariantContexts);
+    }
+
+    @Test
+    public void testTwoScrambledSnpFiles() throws IOException {
+        final File inputFile1 = new File(TEST_DATA_PATH, "CEUTrio-snps-scrambled.1.vcf");
+        final File inputFile2 = new File(TEST_DATA_PATH, "vcfFormatTest.scrambled.vcf");
+        final File output = File.createTempFile("sort-multiple-scrambled-test-output.", ".vcf");
+        final List<String> indexing = Arrays.asList("CREATE_INDEX=false");
+        output.deleteOnExit();
+
+        final int numberOfVariantContexts = loadContigPositions(inputFile1).size() + loadContigPositions(inputFile2).size();
+
+        runClp(Arrays.asList(inputFile1, inputFile2), output, indexing, 0);
+        validateSortingResults(output, numberOfVariantContexts);
+    }
+
+    @Test
+    public void testScrambledSnpsAndOrderedIndels() throws IOException {
+        final File indelInputFile = new File(TEST_DATA_PATH, "CEUTrio-indels.vcf");
+        final File snpInputFile = new File(TEST_DATA_PATH, "CEUTrio-snps-scrambled.1.vcf");
+        final File output = File.createTempFile("sort-scrambled-indels-snps-test-output.", ".vcf");
+        final List<String> indexing = Arrays.asList("CREATE_INDEX=false");
+        output.deleteOnExit();
+
+        final int numberOfVariantContexts = loadContigPositions(indelInputFile).size() + loadContigPositions(snpInputFile).size();
+
+        runClp(Arrays.asList(indelInputFile, snpInputFile), output, indexing, 0);
+        validateSortingResults(output, numberOfVariantContexts);
+    }
+
+    @Test
+    public void testScrambledSnpsAndScrambledIndels() throws IOException {
+        final File indelInputFile = new File(TEST_DATA_PATH, "CEUTrio-indels-scrambled.1.vcf");
+        final File snpInputFile = new File(TEST_DATA_PATH, "CEUTrio-snps-scrambled.1.vcf");
+        final File output = File.createTempFile("merge-indels-snps-test-output.", ".vcf");
+        final List<String> indexing = Arrays.asList("CREATE_INDEX=false");
+        output.deleteOnExit();
+
+        final int numberOfVariantContexts = loadContigPositions(indelInputFile).size() + loadContigPositions(snpInputFile).size();
+
+        runClp(Arrays.asList(indelInputFile, snpInputFile), output, indexing, 0);
+        validateSortingResults(output, numberOfVariantContexts);
+    }
+
+
+    /**
+     * Checks the ordering and total number of variant context entries in the specified output VCF file.
+     * Does NOT check explicitly that the VC genomic positions match exactly those from the inputs. We assume this behavior from other tests.
+     *
+     * @param output VCF file representing the output of SortVCF
+     * @param expectedVariantContextCount the total number of variant context entries from all input files that were merged/sorted
+     */
+    private void validateSortingResults(final File output, final int expectedVariantContextCount) {
+        final VCFFileReader outputReader = new VCFFileReader(output, false);
+        final VariantContextComparator outputComparator = outputReader.getFileHeader().getVCFRecordComparator();
+        VariantContext last = null;
+        int variantContextCount = 0;
+        final CloseableIterator<VariantContext> iterator = outputReader.iterator();
+        while (iterator.hasNext()) {
+            final VariantContext outputContext = iterator.next();
+            if (last != null) Assert.assertTrue(outputComparator.compare(last, outputContext) <= 0);
+            last = outputContext;
+            variantContextCount++;
+        }
+        iterator.close();
+        Assert.assertEquals(variantContextCount, expectedVariantContextCount);
+    }
+}
diff --git a/src/tests/java/picard/vcf/SplitVcfsTest.java b/src/tests/java/picard/vcf/SplitVcfsTest.java
new file mode 100644
index 0000000..61eaaa4
--- /dev/null
+++ b/src/tests/java/picard/vcf/SplitVcfsTest.java
@@ -0,0 +1,59 @@
+package picard.vcf;
+
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.variant.variantcontext.VariantContext;
+import htsjdk.variant.vcf.VCFFileReader;
+import org.testng.Assert;
+import org.testng.annotations.AfterClass;
+import org.testng.annotations.Test;
+import picard.cmdline.CommandLineProgramTest;
+
+import java.io.File;
+import java.util.Queue;
+
+public class SplitVcfsTest extends CommandLineProgramTest {
+
+	private static final File OUTPUT_DATA_PATH = IOUtil.createTempDir("SplitVcfsTest", null);
+	private static final File TEST_DATA_PATH = new File("testdata/picard/vcf/");
+
+    public String getCommandLineProgramName() {
+        return SplitVcfs.class.getSimpleName();
+    }
+
+	@AfterClass
+	public void teardown() {
+		IOUtil.deleteDirectoryTree(OUTPUT_DATA_PATH);
+	}
+
+	@Test
+	public void testSplit() {
+		final File indelOutputFile = new File(OUTPUT_DATA_PATH, "split-vcfs-test-indels-delete-me.vcf");
+		final File snpOutputFile = new File(OUTPUT_DATA_PATH, "split-vcfs-test-snps-delete-me.vcf");
+		final File input = new File(TEST_DATA_PATH, "CEUTrio-merged-indels-snps.vcf");
+
+		indelOutputFile.deleteOnExit();
+		snpOutputFile.deleteOnExit();
+
+        final String[] args = new String[]{
+                "INPUT=" + input.getAbsolutePath(),
+                "SNP_OUTPUT=" + snpOutputFile.getAbsolutePath(),
+                "INDEL_OUTPUT=" + indelOutputFile.getAbsolutePath()
+        };
+        Assert.assertEquals(runPicardCommandLine(args), 0);
+
+		final Queue<String> indelContigPositions = AbstractVcfMergingClpTester.loadContigPositions(indelOutputFile);
+		final Queue<String> snpContigPositions = AbstractVcfMergingClpTester.loadContigPositions(snpOutputFile);
+
+		final VCFFileReader reader = new VCFFileReader(input);
+        for (final VariantContext inputContext : reader) {
+            if (inputContext.isIndel())
+                Assert.assertEquals(AbstractVcfMergingClpTester.getContigPosition(inputContext), indelContigPositions.poll());
+            if (inputContext.isSNP())
+                Assert.assertEquals(AbstractVcfMergingClpTester.getContigPosition(inputContext), snpContigPositions.poll());
+        }
+
+		// We should have polled everything off the indel (snp) queues
+		Assert.assertEquals(indelContigPositions.size(), 0);
+		Assert.assertEquals(snpContigPositions.size(), 0);
+	}
+}
diff --git a/src/tests/java/picard/vcf/TestFilterVcf.java b/src/tests/java/picard/vcf/TestFilterVcf.java
new file mode 100644
index 0000000..0909807
--- /dev/null
+++ b/src/tests/java/picard/vcf/TestFilterVcf.java
@@ -0,0 +1,142 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.vcf.filter;
+
+import htsjdk.samtools.util.CollectionUtil;
+import htsjdk.samtools.util.ListMap;
+import htsjdk.variant.variantcontext.VariantContext;
+import htsjdk.variant.vcf.VCFFileReader;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+import picard.PicardException;
+
+import java.io.File;
+import java.util.Set;
+import java.util.TreeSet;
+
+/**
+ * Tests for VCF filtration
+ */
+public class TestFilterVcf {
+    private final File INPUT = new File("testdata/picard/vcf/filter/testFiltering.vcf");
+
+    /** Tests that all records get PASS set as their filter when extreme values are used for filtering. */
+    @Test public void testNoFiltering() throws Exception {
+        final File out = testFiltering(INPUT, 0, 0, 0, Double.MAX_VALUE);
+        final VCFFileReader in = new VCFFileReader(out, false);
+        for (final VariantContext ctx : in) {
+            if (!ctx.filtersWereApplied() || ctx.isFiltered()) {
+                Assert.fail("Context should not have been filtered: " + ctx.toString());
+            }
+        }
+    }
+
+    /** Tests that sites with a het allele balance < 0.4 are marked as filtered out. */
+    @Test public void testAbFiltering() throws Exception {
+        final Set<String> fails = CollectionUtil.makeSet("tf2", "rs28566954", "rs28548431");
+        final File out = testFiltering(INPUT, 0.4, 0, 0, Double.MAX_VALUE);
+        final ListMap<String,String> filters = slurpFilters(out);
+        Assert.assertEquals(filters.keySet(), fails, "Failed sites did not match expected set of failed sites.");
+    }
+
+    /** Tests that genotypes with DP < 18 are marked as failed, but not >= 18. */
+    @Test public void testDpFiltering() throws Exception {
+        final Set<String> fails = CollectionUtil.makeSet("rs71509448", "rs71628926", "rs13302979", "rs2710876");
+        final File out = testFiltering(INPUT, 0, 18, 0, Double.MAX_VALUE);
+        final ListMap<String,String> filters = slurpFilters(out);
+        Assert.assertEquals(filters.keySet(), fails, "Failed sites did not match expected set of failed sites.");
+    }
+
+    /** Tests that genotypes with low GQ are filtered appropriately. */
+    @Test public void testGqFiltering() throws Exception {
+        final Set<String> fails = CollectionUtil.makeSet("rs71509448"); // SNP with GQ=21; lowest GQ in file
+
+        {
+            final File out = testFiltering(INPUT, 0, 0, 20, Double.MAX_VALUE);
+            final ListMap<String, String> filters = slurpFilters(out);
+            Assert.assertEquals(filters.size(), 0, "Should not have filtered sites: " + filters);
+        }
+        {
+            final File out = testFiltering(INPUT, 0, 0, 21, Double.MAX_VALUE);
+            final ListMap<String, String> filters = slurpFilters(out);
+            Assert.assertEquals(filters.size(), 0, "Should not have filtered sites: " + filters);
+        }
+        {
+            final File out = testFiltering(INPUT, 0, 0, 22, Double.MAX_VALUE);
+            final ListMap<String, String> filters = slurpFilters(out);
+            Assert.assertEquals(filters.keySet(), fails, "Failed sites did not match expected set of failed sites.");
+        }
+    }
+
+    /** Tests that genotypes with DP < 18 are marked as failed, but not >= 18. */
+    @Test public void testFsFiltering() throws Exception {
+        final Set<String> fails = CollectionUtil.makeSet("rs13303033", "rs28548431", "rs2799066");
+        final File out = testFiltering(INPUT, 0, 0, 0, 5.0d);
+        final ListMap<String,String> filters = slurpFilters(out);
+        Assert.assertEquals(filters.keySet(), fails, "Failed sites did not match expected set of failed sites.");
+    }
+
+    @Test public void testCombinedFiltering() throws Exception {
+        final TreeSet<String> fails = new TreeSet<String>(CollectionUtil.makeSet("rs13302979", "rs13303033", "rs2710876" , "rs2799066" , "rs28548431", "rs28566954", "rs71509448", "rs71628926", "tf2"));
+        final File out = testFiltering(INPUT, 0.4, 18, 22, 5.0d);
+        final ListMap<String,String> filters = slurpFilters(out);
+        Assert.assertEquals(new TreeSet<String>(filters.keySet()), fails, "Failed sites did not match expected set of failed sites.");
+    }
+
+    /** Utility method that takes a a VCF and a set of parameters and filters the VCF. */
+    File testFiltering(final File vcf, final double minAb, final int minDp, final int minGq, final double maxFs) throws Exception {
+        final File out = File.createTempFile("filterVcfTest.", ".vcf.gz");
+        out.deleteOnExit();
+
+        final FilterVcf filterer = new FilterVcf();
+        filterer.CREATE_INDEX = true;
+        filterer.INPUT = vcf;
+        filterer.OUTPUT = out;
+        filterer.MIN_AB = minAb;
+        filterer.MIN_DP = minDp;
+        filterer.MIN_GQ = minGq;
+        filterer.MAX_FS = maxFs;
+
+        final int retval = filterer.doWork();
+        if (retval != 0) {
+            throw new PicardException("Return value non-zero: " + retval);
+        }
+
+        return out;
+    }
+
+    /** Consumes a VCF and returns a ListMap where each they keys are the IDs of filtered out sites and the values are the set of filters. */
+    ListMap<String,String> slurpFilters(final File vcf) {
+        final ListMap<String,String> map = new ListMap<String, String>();
+        final VCFFileReader in = new VCFFileReader(vcf, false);
+        for (final VariantContext ctx : in) {
+            if (ctx.isNotFiltered()) continue;
+            for (final String filter : ctx.getFilters()) {
+                map.add(ctx.getID(), filter);
+            }
+        }
+        in.close();
+        return map;
+    }
+}
diff --git a/src/tests/java/picard/vcf/UpdateVcfSequenceDictionaryTest.java b/src/tests/java/picard/vcf/UpdateVcfSequenceDictionaryTest.java
new file mode 100644
index 0000000..e0c8bed
--- /dev/null
+++ b/src/tests/java/picard/vcf/UpdateVcfSequenceDictionaryTest.java
@@ -0,0 +1,74 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2014 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.vcf;
+
+import htsjdk.samtools.SAMSequenceDictionary;
+import htsjdk.samtools.util.CloserUtil;
+import htsjdk.samtools.util.IOUtil;
+import htsjdk.variant.utils.SAMSequenceDictionaryExtractor;
+import htsjdk.variant.vcf.VCFFileReader;
+import htsjdk.variant.vcf.VCFHeader;
+import org.testng.Assert;
+import org.testng.annotations.AfterClass;
+import org.testng.annotations.Test;
+import picard.PicardException;
+
+import java.io.File;
+
+/**
+ * @author George Grant
+ */
+public class UpdateVcfSequenceDictionaryTest {
+    private static final File TEST_DATA_PATH = new File("testdata/picard/vcf/");
+    private static final File OUTPUT_DATA_PATH = IOUtil.createTempDir("UpdateVcfSequenceDictionaryTest", null);
+
+    @AfterClass
+    public void teardown() {
+        IOUtil.deleteDirectoryTree(OUTPUT_DATA_PATH);
+    }
+
+    @Test
+    public void testUpdateVcfSequenceDictionary() {
+        final File input = new File(TEST_DATA_PATH, "vcfFormatTest.vcf");
+        // vcfFormatTest.bad_dict.vcf is a vcf with two (2) ##contig lines deleted
+        final File samSequenceDictionaryVcf = new File(TEST_DATA_PATH, "vcfFormatTest.bad_dict.vcf");
+        final File outputFile = new File(OUTPUT_DATA_PATH, "updateVcfSequenceDictionaryTest-delete-me.vcf");
+
+        outputFile.deleteOnExit();
+
+        final UpdateVcfSequenceDictionary updateVcfSequenceDictionary = new UpdateVcfSequenceDictionary();
+        updateVcfSequenceDictionary.INPUT = input;
+        updateVcfSequenceDictionary.SEQUENCE_DICTIONARY = samSequenceDictionaryVcf;
+        updateVcfSequenceDictionary.OUTPUT = outputFile;
+
+        Assert.assertEquals(updateVcfSequenceDictionary.instanceMain(new String[0]), 0);
+
+        IOUtil.assertFilesEqual(samSequenceDictionaryVcf, outputFile);
+
+        // A little extra checking.
+        Assert.assertEquals(SAMSequenceDictionaryExtractor.extractDictionary(input).size(), 84);
+        Assert.assertEquals(SAMSequenceDictionaryExtractor.extractDictionary(samSequenceDictionaryVcf).size(), 82);
+        Assert.assertEquals(SAMSequenceDictionaryExtractor.extractDictionary(outputFile).size(), 82);
+    }
+}
diff --git a/src/tests/java/picard/vcf/VariantContextComparatorTest.java b/src/tests/java/picard/vcf/VariantContextComparatorTest.java
new file mode 100644
index 0000000..49cbc5f
--- /dev/null
+++ b/src/tests/java/picard/vcf/VariantContextComparatorTest.java
@@ -0,0 +1,107 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2012 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.vcf;
+
+import htsjdk.variant.variantcontext.Allele;
+import htsjdk.variant.variantcontext.VariantContext;
+import htsjdk.variant.variantcontext.VariantContextBuilder;
+import htsjdk.variant.variantcontext.VariantContextComparator;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.LinkedHashSet;
+import java.util.List;
+
+public class VariantContextComparatorTest {
+
+	private static VariantContext buildVariantContext(final String source, final String contig, final long start) {
+		final Collection<Allele> alleles = new ArrayList<Allele>();
+		alleles.add(Allele.create("AAAA", true));
+		alleles.add(Allele.create("AAGG", false));
+		return new VariantContextBuilder(source, contig, start, start + 3, alleles).make();
+	}
+
+	private static List<String> getOrderedContigList(final VariantContext... variantContexts) {
+		final LinkedHashSet<String> contigs = new LinkedHashSet<String>();
+		for (final VariantContext context : variantContexts) {
+			contigs.add(context.getChr());
+		}
+		return new ArrayList<String>(contigs);
+	}
+
+	@Test
+	public void testIdentical() {
+		final VariantContext contextOne = buildVariantContext("source", "one", 100);
+		final List<String> contigs = getOrderedContigList(contextOne);
+		Assert.assertEquals(0, new VariantContextComparator(contigs).compare(contextOne, contextOne));
+	}
+
+	@Test
+	public void testPositions() {
+		final VariantContext contextOne = buildVariantContext("source", "one", 100);
+		final VariantContext contextTwo = buildVariantContext("source", "one", 150);
+		final List<String> contigs = getOrderedContigList(contextOne, contextTwo);
+		Assert.assertTrue(new VariantContextComparator(contigs).compare(contextOne, contextTwo) < 0);
+		Assert.assertTrue(new VariantContextComparator(contigs).compare(contextTwo, contextOne) > 0);
+	}
+
+	@Test
+	public void testContigs() {
+		final VariantContext contextOne = buildVariantContext("source", "one", 100);
+		final VariantContext contextTwo = buildVariantContext("source", "two", 100);
+		final List<String> contigs = getOrderedContigList(contextOne, contextTwo);
+		Assert.assertTrue(new VariantContextComparator(contigs).compare(contextOne, contextTwo) < 0);
+		Assert.assertTrue(new VariantContextComparator(contigs).compare(contextTwo, contextOne) > 0);
+	}
+
+	@Test
+	public void testCombinationOne() {
+		final VariantContext contextOne = buildVariantContext("source", "one", 100);
+		final VariantContext contextTwo = buildVariantContext("source", "two", 150);
+		final List<String> contigs = getOrderedContigList(contextOne, contextTwo);
+		Assert.assertTrue(new VariantContextComparator(contigs).compare(contextOne, contextTwo) < 0);
+		Assert.assertTrue(new VariantContextComparator(contigs).compare(contextTwo, contextOne) > 0);
+	}
+
+	@Test
+	public void testCombinationTwo() {
+		final VariantContext contextOne = buildVariantContext("source", "one", 150);
+		final VariantContext contextTwo = buildVariantContext("source", "two", 100);
+		final List<String> contigs = getOrderedContigList(contextOne, contextTwo);
+		Assert.assertTrue(new VariantContextComparator(contigs).compare(contextOne, contextTwo) < 0);
+		Assert.assertTrue(new VariantContextComparator(contigs).compare(contextTwo, contextOne) > 0);
+	}
+
+	@Test (expectedExceptions = IllegalArgumentException.class)
+	public void testThrowsOnDuplicateContig() {
+		final List<String> contigs = new ArrayList<String>(3);
+		contigs.add("one");
+		contigs.add("two");
+		contigs.add("one");
+
+		new VariantContextComparator(contigs);
+	}
+}
diff --git a/src/tests/java/picard/vcf/VcfFormatConverterTest.java b/src/tests/java/picard/vcf/VcfFormatConverterTest.java
new file mode 100644
index 0000000..e6b4544
--- /dev/null
+++ b/src/tests/java/picard/vcf/VcfFormatConverterTest.java
@@ -0,0 +1,127 @@
+/*
+* Copyright (c) 2013 The Broad Institute
+*
+* Permission is hereby granted, free of charge, to any person
+* obtaining a copy of this software and associated documentation
+* files (the "Software"), to deal in the Software without
+* restriction, including without limitation the rights to use,
+* copy, modify, merge, publish, distribute, sublicense, and/or sell
+* copies of the Software, and to permit persons to whom the
+* Software is furnished to do so, subject to the following
+* conditions:
+*
+* The above copyright notice and this permission notice shall be
+* included in all copies or substantial portions of the Software.
+*
+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
+* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
+
+package picard.vcf;
+
+import htsjdk.tribble.Tribble;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+import picard.cmdline.CommandLineProgramTest;
+import picard.PicardException;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+public class VcfFormatConverterTest extends CommandLineProgramTest {
+    private static final String TEST_DATA_PATH = "testdata/picard/vcf/";
+    private static final String TEST_FILE_BASE = "vcfFormatTest";
+
+    private static final String VCF = ".vcf";
+    private static final String VCF_GZ = ".vcf.gz";
+	private static final String BCF = ".bcf";
+
+    private static final File TEST_VCF = new File(TEST_DATA_PATH, TEST_FILE_BASE + VCF);
+    private static final File TEST_BCF = new File(TEST_DATA_PATH, TEST_FILE_BASE + BCF);
+
+    public String getCommandLineProgramName() {
+        return VcfFormatConverter.class.getSimpleName();
+    }
+
+    @Test
+    public void testVcfToVcf() {
+        runLikeTest(TEST_VCF, VCF);
+    }
+
+    @Test
+    public void testVcfToBcf() {
+        runBackAndForthTest(TEST_VCF, BCF, VCF);
+    }
+
+    @Test
+    public void testVcfToVcfGz() {
+        runBackAndForthTest(TEST_VCF, VCF_GZ, VCF);
+    }
+
+    @Test
+    public void testBcfToBcf() {
+        runLikeTest(TEST_BCF, BCF);
+    }
+
+    @Test
+    public void testBcfToVcf() {
+        runBackAndForthTest(TEST_BCF, VCF, BCF);
+    }
+
+    private void runLikeTest(final File input, final String format) {
+        final File outputFile = convertFile(input, "likeTest", format);
+        compareFiles(input, outputFile);
+    }
+
+    private void runBackAndForthTest(final File input, final String format, final String originalFormat) {
+        final String tempPrefix = "backAndForth";
+
+        final File backAndForth = convertFile(input, tempPrefix, format);
+        final File backAndForthSeries2 = convertFile(backAndForth, tempPrefix, originalFormat);
+
+        compareFiles(input, backAndForthSeries2);
+    }
+
+    private File convertFile(final File input, final String prefix, final String format) {
+        final File outputFile;
+        try {
+            outputFile = File.createTempFile(prefix, format);
+        } catch (final IOException ioe) {
+            throw new PicardException("Unable to create temp file!");
+        }
+
+        outputFile.deleteOnExit();
+        new File(outputFile.getAbsolutePath() + Tribble.STANDARD_INDEX_EXTENSION).deleteOnExit();
+
+        final List<String> args = new ArrayList<String>(Arrays.asList(
+                    "INPUT=" + input.getAbsolutePath(),
+                    "OUTPUT=" + outputFile.getAbsolutePath()
+        ));
+        if (VCF_GZ.equals(format)) {
+            args.add("CREATE_INDEX=false");
+        }
+        if (input.getName().endsWith(VCF_GZ)) {
+            args.add("REQUIRE_INDEX=false");
+        }
+        Assert.assertEquals(runPicardCommandLine(args), 0);
+        return outputFile;
+    }
+
+    private void compareFiles(final File file1, final File file2) {
+        // Ok, so this isn't exactly comparing md5 checksums or anything, but it should be good enough
+        // for our purposes.
+        Assert.assertTrue(file1.exists());
+        Assert.assertTrue(file2.exists());
+        Assert.assertEquals(file1.length(), file2.length());
+    }
+
+}
diff --git a/src/tests/java/picard/vcf/processor/AccumulatorExecutorTest.java b/src/tests/java/picard/vcf/processor/AccumulatorExecutorTest.java
new file mode 100644
index 0000000..3bc0a6a
--- /dev/null
+++ b/src/tests/java/picard/vcf/processor/AccumulatorExecutorTest.java
@@ -0,0 +1,86 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2015 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.vcf.processor;
+
+import htsjdk.variant.variantcontext.VariantContext;
+import htsjdk.variant.vcf.VCFFileReader;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+import java.io.File;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * @author mccowan
+ */
+public class AccumulatorExecutorTest {
+    final static List<File> TEST_VCFS = Arrays.asList(
+            new File("testdata/picard/vcf/CEUTrio-indels-bad-samples.vcf"),
+            new File("testdata/picard/vcf/CEUTrio-indels-dissimilar-contigs.vcf"),
+            new File("testdata/picard/vcf/CEUTrio-merged-indels-snps.vcf")
+    );
+
+    @Test
+    public void test() throws Exception {
+        // Fist, read variants via a known, functional mechanism
+        final Set<String> actualVariantContextStrings = Collections.synchronizedSet(new HashSet<String>());
+        for (final File testVcf : TEST_VCFS) {
+            for (final VariantContext variantContext : new VCFFileReader(testVcf)) {
+                actualVariantContextStrings.add(variantContext.toString());
+            }
+        }
+
+        // Then ensure for a variety of thread counts that we observe the same variants
+        for (int i = 1; i <= 24; i++) {
+            final Set<String> observedVariantContextStrings = Collections.synchronizedSet(new HashSet<String>());
+            final VariantAccumulatorExecutor executor = new VariantAccumulatorExecutor.MultiThreadedChunkBased(
+                    i,
+                    VariantIteratorProducer.byHundredMegabaseChunks(TEST_VCFS),
+                    new VariantProcessor.AccumulatorGenerator() {
+                        @Override
+                        public VariantProcessor.Accumulator build() {
+                            return new VariantProcessor.Accumulator() {
+                                @Override
+                                public void accumulate(final VariantContext vc) {
+                                    observedVariantContextStrings.add(vc.toString());
+                                }
+
+                                @Override
+                                public Object result() {
+                                    return null;
+                                }
+                            };
+                        }
+                    }
+            );
+            executor.start();
+            executor.awaitCompletion();
+            Assert.assertTrue(actualVariantContextStrings.equals(observedVariantContextStrings));
+        }
+    }
+}
diff --git a/src/tests/java/picard/vcf/processor/ByWholeContigTest.java b/src/tests/java/picard/vcf/processor/ByWholeContigTest.java
new file mode 100644
index 0000000..df10c18
--- /dev/null
+++ b/src/tests/java/picard/vcf/processor/ByWholeContigTest.java
@@ -0,0 +1,46 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2015 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.vcf.processor;
+
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+import java.io.File;
+
+/**
+ * @author mccowan
+ */
+public class ByWholeContigTest {
+    public final static File TEST_VCF = new File("testdata/picard/vcf/CEUTrio-indels-bad-samples.vcf");
+    
+    @Test
+    public void test() throws Exception {
+        final VcfFileSegmentGenerator.ByWholeContig segmenter = VcfFileSegmentGenerator.ByWholeContig.getInstance();
+        int chunkCount = 0;
+        for (final VcfFileSegment variantContextCloseableIterator : segmenter.forVcf(TEST_VCF)) {
+            chunkCount++;
+        }
+        Assert.assertEquals(chunkCount, 84);
+    }
+}
diff --git a/src/tests/java/picard/vcf/processor/ThreadsafeTest.java b/src/tests/java/picard/vcf/processor/ThreadsafeTest.java
new file mode 100644
index 0000000..b6a6cb2
--- /dev/null
+++ b/src/tests/java/picard/vcf/processor/ThreadsafeTest.java
@@ -0,0 +1,96 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2015 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.vcf.processor;
+
+import com.google.common.base.Joiner;
+import htsjdk.samtools.util.CloseableIterator;
+import htsjdk.variant.variantcontext.VariantContext;
+import htsjdk.variant.vcf.VCFFileReader;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+import java.io.File;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * @author mccowan
+ */
+public class ThreadsafeTest {
+    static final int TEN_MILLION = (int) 10e6;
+    static final File VCF_WITH_MULTI_ALLELIC_VARIANT_AT_POSITION_10MILLION = new File("testdata/picard/vcf/chunking/multi_allelic_at_10M.vcf");
+
+    @Test
+    public void ensureUniqueVariantObservationsEspeciallyMultiAllelicOnesThatAppearAtChunkingBoundaries() {
+        final VariantIteratorProducer.Threadsafe iteratorFactory =
+                new VariantIteratorProducer.Threadsafe(
+                        VcfFileSegmentGenerator.byWholeContigSubdividingWithWidth(TEN_MILLION),
+                        Arrays.asList(VCF_WITH_MULTI_ALLELIC_VARIANT_AT_POSITION_10MILLION)
+                );
+        final Set<String> observed = new HashSet<String>();
+        for (final CloseableIterator<VariantContext> i : iteratorFactory.iterators()) {
+            while (i.hasNext()) {
+                final VariantContext next = i.next();
+                Assert.assertTrue(observed.add(next.toString()), "Second observation for " + next.toString());
+            }
+        }
+    }
+
+    /** This test doesn't even test the class, it just makes sure the cornercase test data is really a cornercase */
+    @Test
+    public void ensureTestDataActuallyHasWideVariantAtTenMillion() {
+        final Joiner joiner = Joiner.on(":"); // Cheat: do a string compare
+        final VCFFileReader r = new VCFFileReader(VCF_WITH_MULTI_ALLELIC_VARIANT_AT_POSITION_10MILLION);
+        Assert.assertEquals(
+                joiner.join(r.query("1", TEN_MILLION, TEN_MILLION)),
+                joiner.join(r.query("1", TEN_MILLION + 5, TEN_MILLION + 5))
+        );
+        r.close();
+    }
+    
+    @Test
+    public void ensureSameVariantsReadAsSimpleVcfFileIterator() {
+        final VariantIteratorProducer.Threadsafe iteratorFactory =
+                new VariantIteratorProducer.Threadsafe(
+                        VcfFileSegmentGenerator.byWholeContigSubdividingWithWidth(TEN_MILLION),
+                        Arrays.asList(VCF_WITH_MULTI_ALLELIC_VARIANT_AT_POSITION_10MILLION)
+                );
+        final Set<String> observedVcs = new HashSet<String>();
+        final Set<String> actual = new HashSet<String>();
+        final VCFFileReader actualVcs = new VCFFileReader(VCF_WITH_MULTI_ALLELIC_VARIANT_AT_POSITION_10MILLION);
+        for (final VariantContext actualVc : actualVcs) {
+            actual.add(actualVc.toString());
+        }
+
+        for (final CloseableIterator<VariantContext> i : iteratorFactory.iterators()) {
+            while (i.hasNext()) {
+                observedVcs.add(i.next().toString());
+            }
+        }
+        
+        Assert.assertEquals(actual, observedVcs);
+    }
+
+}
diff --git a/src/tests/java/picard/vcf/processor/VcfFileSegmentGeneratorTest.java b/src/tests/java/picard/vcf/processor/VcfFileSegmentGeneratorTest.java
new file mode 100644
index 0000000..c41eb83
--- /dev/null
+++ b/src/tests/java/picard/vcf/processor/VcfFileSegmentGeneratorTest.java
@@ -0,0 +1,55 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2015 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.vcf.processor;
+
+import com.google.common.collect.Iterables;
+import htsjdk.samtools.util.Interval;
+import htsjdk.samtools.util.Log;
+import htsjdk.samtools.util.OverlapDetector;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+import java.io.File;
+
+/**
+ * @author mccowan
+ */
+public class VcfFileSegmentGeneratorTest {
+    final static Log LOG = Log.getInstance(VcfFileSegmentGeneratorTest.class);
+    
+    final File VCF_WITH_LOGS_OF_GAPS =  new File("testdata/picard/vcf/chunking/multi_allelic_at_10M.vcf");
+    final int TEN_MILLION = (int) 10e6;
+
+    @Test
+    public void ensureOverlapExclusionTest() {
+        final OverlapDetector<Interval> oneTinyIntervalDetector = new OverlapDetector<Interval>(0, 0);
+        final Interval theInterval = new Interval("1", 5, 10);
+        oneTinyIntervalDetector.addLhs(theInterval, theInterval);
+        final VcfFileSegmentGenerator noFilter = VcfFileSegmentGenerator.byWholeContigSubdividingWithWidth(TEN_MILLION);
+        Assert.assertEquals(Iterables.size(noFilter.forVcf(VCF_WITH_LOGS_OF_GAPS)), 382); // The number of subdivisions of 10 million of this vcf
+        
+        final VcfFileSegmentGenerator allFiltered = VcfFileSegmentGenerator.excludingNonOverlaps(noFilter, oneTinyIntervalDetector);
+        Assert.assertEquals(Iterables.size(allFiltered.forVcf(VCF_WITH_LOGS_OF_GAPS)), 1);
+    }
+}
diff --git a/src/tests/java/picard/vcf/processor/WidthLimitingDecoratorTest.java b/src/tests/java/picard/vcf/processor/WidthLimitingDecoratorTest.java
new file mode 100644
index 0000000..ff11fac
--- /dev/null
+++ b/src/tests/java/picard/vcf/processor/WidthLimitingDecoratorTest.java
@@ -0,0 +1,122 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2015 The Broad Institute
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+package picard.vcf.processor;
+
+import com.google.common.collect.ComparisonChain;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Iterators;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * @author mccowan
+ */
+public class WidthLimitingDecoratorTest {
+
+    class Segment extends VcfFileSegment {
+        final int start, stop;
+
+        Segment(final int start, final int stop) {
+            this.start = start;
+            this.stop = stop;
+        }
+
+        @Override
+        public int start() {
+            return start;
+        }
+
+        @Override
+        public int stop() {
+            return stop;
+        }
+
+        @Override
+        public String contig() {
+            return "A";
+        }
+
+        @Override
+        public File vcf() {
+            return new File("B");
+        }
+
+        @Override
+        public String toString() {
+            return "Segment{" +
+                    "start=" + start +
+                    ", stop=" + stop +
+                    ", vcf=" + vcf() + 
+                    ", contig=" + contig() +
+                    '}';
+        }
+    }
+
+
+    @Test
+    public void testForVcf() throws Exception {
+
+        final Segment entireThing = new Segment(1, 9942);
+        final ImmutableList<Segment> expectedSubThings = ImmutableList.of(
+                new Segment(1, 1000),
+                new Segment(1001, 2000),
+                new Segment(2001, 3000),
+                new Segment(3001, 4000),
+                new Segment(4001, 5000),
+                new Segment(5001, 6000),
+                new Segment(6001, 7000),
+                new Segment(7001, 8000),
+                new Segment(8001, 9000),
+                new Segment(9001, 9942)
+        );
+
+        final VcfFileSegmentGenerator.WidthLimitingDecorator strategy = VcfFileSegmentGenerator.WidthLimitingDecorator.wrapping(new VcfFileSegmentGenerator() {
+            @Override
+            public Iterable<VcfFileSegment> forVcf(final File vcf) {
+                return Collections.singleton((VcfFileSegment) entireThing);
+            }
+        }, 1000);
+
+        final List<VcfFileSegment> observed = new ArrayList<VcfFileSegment>();
+        Iterators.addAll(observed, strategy.forVcf(new File("B")).iterator());
+        final Iterator<VcfFileSegment> observedIterator = observed.iterator();
+        for (final VcfFileSegment e : expectedSubThings) {
+            Assert.assertTrue(observedIterator.hasNext());
+            final VcfFileSegment o = observedIterator.next();
+            Assert.assertEquals(ComparisonChain.start()
+                    .compare(o.contig(), e.contig())
+                    .compare(o.start(), e.start())
+                    .compare(o.stop(), e.stop())
+                    .compare(o.vcf(), e.vcf())
+                    .result(), 0, String.format(String.format("observed=%s@%s:%s-%s  expected=%s", o.vcf(), o.contig(), o.start(), 
+                    o.stop(), e.toString())));
+        }
+    }
+}
diff --git a/src/tests/resources/testng.xml b/src/tests/resources/testng.xml
new file mode 100644
index 0000000..469ff0e
--- /dev/null
+++ b/src/tests/resources/testng.xml
@@ -0,0 +1,39 @@
+<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
+
+<suite name="Picard" verbose="2" parallel="methods" thread-count="1" data-provider-thread-count="8">
+    <test name="analysis">
+        <packages>
+            <package name="picard.analysis"/>
+        </packages>
+    </test>
+    <test name="cmdline">
+        <packages>
+            <package name="picard.cmdline"/>
+        </packages>
+    </test>
+    <test name="illumina">
+        <packages>
+            <package name="picard.illumina"/>
+        </packages>
+    </test>
+    <test name="metrics">
+        <packages>
+            <package name="picard.metrics"/>
+        </packages>
+    </test>
+    <test name="pedigree">
+        <packages>
+            <package name="picard.pedigree"/>
+        </packages>
+    </test>
+    <test name="sam">
+        <packages>
+            <package name="picard.sam"/>
+        </packages>
+    </test>
+    <test name="util">
+        <packages>
+            <package name="picard.util"/>
+        </packages>
+    </test>
+</suite>
\ No newline at end of file
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/AACAATGG.1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/AACAATGG.1.fastq
deleted file mode 100644
index 79606c3..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/AACAATGG.1.fastq
+++ /dev/null
@@ -1,16 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1138:2141 1:Y:0:AACAATGG
-NTTACCAAGGTTTTCTGTTTAGTGA
-+
-#1=DDFFFHHFHHJJJIHJIJJJJJ
- at machine1:HiMom:abcdeACXX:1:1101:1206:2126 1:Y:0:AACAATGG
-NATTCTGCCATATTGGTCCGACAGT
-+
-#1=DDFFFHHHHHJJJJJJJJJIJJ
- at machine1:HiMom:abcdeACXX:1:2101:1077:2139 1:Y:0:AACAATGG
-CACAGGCTTCCACGGACTTAACGTC
-+
-CCCFFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1112:2245 1:Y:0:AACAATGG
-TGCCATCTGCTCTGGGAAGCACCAG
-+
-1:=DDDDDFBC:DEFIFFFIEF at BE
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/AACAATGG.2.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/AACAATGG.2.fastq
deleted file mode 100644
index db34739..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/AACAATGG.2.fastq
+++ /dev/null
@@ -1,16 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1138:2141 2:Y:0:AACAATGG
-TCCGATCTGCTTCAGGTCGATCAGA
-+
-CCCFFFFFHGHHHJJIGHIJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1101:1206:2126 2:Y:0:AACAATGG
-ATCTGTCCAGTGGTGCACTGAATGT
-+
-CCCFFFFFHHHHHHIIJJJJIJJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1077:2139 2:Y:0:AACAATGG
-NATTAGTTGGCGGATGAAGCAGATA
-+
-#4=DFFFFHHHHHJJJJJJJJJIJJ
- at machine1:HiMom:abcdeACXX:1:2101:1112:2245 2:Y:0:AACAATGG
-TCGTAGTGTTGTAATTTCGTCTTCT
-+
-?8?DBDDDCCFCAACGGFFCBFFAE
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/AACAATGG.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/AACAATGG.barcode_1.fastq
deleted file mode 100644
index fa6ebcd..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/AACAATGG.barcode_1.fastq
+++ /dev/null
@@ -1,16 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1138:2141 :Y:0:AACAATGG
-AACAATGG
-+
-CCCFFFFF
- at machine1:HiMom:abcdeACXX:1:1101:1206:2126 :Y:0:AACAATGG
-AACAATGG
-+
-CCCFFFFF
- at machine1:HiMom:abcdeACXX:1:2101:1077:2139 :Y:0:AACAATGG
-AACAATGG
-+
-CCCFFFFF
- at machine1:HiMom:abcdeACXX:1:2101:1112:2245 :Y:0:AACAATGG
-AACAATGG
-+
-@@?BBDDD
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/AACGCATT.1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/AACGCATT.1.fastq
deleted file mode 100644
index fb4eb91..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/AACGCATT.1.fastq
+++ /dev/null
@@ -1,28 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1197:2200 1:Y:0:AACGCATT
-GGGCGCCCCGTGAGGACCCAGTCCT
-+
- at C@FFADDFFCFCEHIIJIJJIEFC
- at machine1:HiMom:abcdeACXX:1:1101:1308:2153 1:N:0:AACGCATT
-TTTTGGAAGAGACCTCAATTACTGT
-+
-???DDDDD?:22AE:A2<3,AF?3A
- at machine1:HiMom:abcdeACXX:1:1101:1452:2132 1:Y:0:AACGCATT
-NCGTCCTGGAAAACGGGGCGCGGCT
-+
-#1=BDBDDFHHHHF at FHDHIGIIII
- at machine1:HiMom:abcdeACXX:1:1201:1150:2161 1:Y:0:AACGCATT
-AAGTCACCTAATATCTTTTTTTTTT
-+
-@@<??;?D?CFD,A4CDDHFBIIID
- at machine1:HiMom:abcdeACXX:1:2101:1240:2197 1:N:0:AACGCATT
-ATAAAACATAGCAATATTTTCCTAT
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:2101:1336:2109 1:Y:0:AACGCATT
-NACTATCAGGATCGTGGCTATTTTG
-+
-#1BDDFFFHHHHHJIJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1427:2081 1:Y:0:AACGCATT
-NCGAGTGCCTAGTGGGCCACTTTTG
-+
-#4=DDBDFHHHHFHIJJJJIJJJJI
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/AACGCATT.2.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/AACGCATT.2.fastq
deleted file mode 100644
index fccce0a..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/AACGCATT.2.fastq
+++ /dev/null
@@ -1,28 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1197:2200 2:Y:0:AACGCATT
-ATATTCCACTGGAACCACAGAACCC
-+
-@@@FFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1101:1308:2153 2:N:0:AACGCATT
-TCTGTAAGGTAATCCCCGCATGTGT
-+
-1?1=4===AFFDFFGFDGFB at CFB:
- at machine1:HiMom:abcdeACXX:1:1101:1452:2132 2:Y:0:AACGCATT
-ACAAACCCTTGTGTCGAGGGCTGAC
-+
-CCCFFFFFHHHHHJJJJJJJIJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1150:2161 2:Y:0:AACGCATT
-TTCTCACTACTGTGATTGTGCCACT
-+
- at C@FFFFFGHHHHGIIIICEHCFGH
- at machine1:HiMom:abcdeACXX:1:2101:1240:2197 2:N:0:AACGCATT
-ACTGGAGATCCTTGTTACATGCCCA
-+
-??+++A:DD?:ADEE@::C4:C<E:
- at machine1:HiMom:abcdeACXX:1:2101:1336:2109 2:Y:0:AACGCATT
-AGACCAGAACAGCTCCAGGTGCTCC
-+
-CCCFFFFFHHHHHJJJJJJCGHIJJ
- at machine1:HiMom:abcdeACXX:1:2101:1427:2081 2:Y:0:AACGCATT
-CCGACTTCCATGGCCACCGTCCTGC
-+
-CCCFFFFFHHHHHJJJIIGFIIJJI
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/AACGCATT.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/AACGCATT.barcode_1.fastq
deleted file mode 100644
index ae7cce7..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/AACGCATT.barcode_1.fastq
+++ /dev/null
@@ -1,28 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1197:2200 :Y:0:AACGCATT
-AACGCATT
-+
- at CCFDFFF
- at machine1:HiMom:abcdeACXX:1:1101:1308:2153 :N:0:AACGCATT
-AACGCATT
-+
-:?@B?@DD
- at machine1:HiMom:abcdeACXX:1:1101:1452:2132 :Y:0:AACGCATT
-AACGCATT
-+
- at CCFFFFF
- at machine1:HiMom:abcdeACXX:1:1201:1150:2161 :Y:0:AACGCATT
-AACGCATT
-+
-@@@FDDDD
- at machine1:HiMom:abcdeACXX:1:2101:1240:2197 :N:0:AACGCATT
-AACGCATT
-+
-88+AD@?8
- at machine1:HiMom:abcdeACXX:1:2101:1336:2109 :Y:0:AACGCATT
-AACGCATT
-+
-CCCFFFFF
- at machine1:HiMom:abcdeACXX:1:2101:1427:2081 :Y:0:AACGCATT
-AACGCATT
-+
-CCCFFFFF
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACAGGTAT.1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACAGGTAT.1.fastq
deleted file mode 100644
index 6326fe4..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACAGGTAT.1.fastq
+++ /dev/null
@@ -1,16 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1236:2121 1:Y:0:ACAGGTAT
-NGGTGCTTCATATCCCTCTAGAGGA
-+
-#1=BDDFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1341:2116 1:Y:0:ACAGGTAT
-NAGAAGCCCCAGGAGGAAGACAGTC
-+
-#1=DDFFFHHHHHHHJIIJJJJJGI
- at machine1:HiMom:abcdeACXX:1:2101:1063:2206 1:Y:0:ACAGGTAT
-TCCTATTCGCCTACACAATTCTCCG
-+
-CCCFFFFFHHHHHJJJJJJJHJJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1325:2083 1:Y:0:ACAGGTAT
-NCAGAAGAAAGGGCCTTGTCGGAGG
-+
-#1=DDDDDHHFHDGI at EEHG:?FA8
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACAGGTAT.2.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACAGGTAT.2.fastq
deleted file mode 100644
index e3fc8e5..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACAGGTAT.2.fastq
+++ /dev/null
@@ -1,16 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1236:2121 2:Y:0:ACAGGTAT
-TTGCGCTTACTTTGTAGCCTTCATC
-+
-CCCFFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1341:2116 2:Y:0:ACAGGTAT
-ATAACAGCGAGACTGGCAACTTAAA
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:2101:1063:2206 2:Y:0:ACAGGTAT
-NTGCTAGGATGAGGATGGATAGTAA
-+
-#1=DDDFFHHHHHJHIIJHIIIHHJ
- at machine1:HiMom:abcdeACXX:1:2101:1325:2083 2:Y:0:ACAGGTAT
-TGTGCTCTTCCGATCTGGAGAAAAA
-+
-#########################
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACAGGTAT.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACAGGTAT.barcode_1.fastq
deleted file mode 100644
index e99ec81..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACAGGTAT.barcode_1.fastq
+++ /dev/null
@@ -1,16 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1236:2121 :Y:0:ACAGGTAT
-ACAGGTAT
-+
-CCCFFDDF
- at machine1:HiMom:abcdeACXX:1:1201:1341:2116 :Y:0:ACAGGTAT
-ACAGGTAT
-+
-CCCFFBDD
- at machine1:HiMom:abcdeACXX:1:2101:1063:2206 :Y:0:ACAGGTAT
-ACAGGTAT
-+
-CCCFFDFF
- at machine1:HiMom:abcdeACXX:1:2101:1325:2083 :Y:0:ACAGGTAT
-ACAGGTAT
-+
-@@@BD=DD
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACAGTTGA.1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACAGTTGA.1.fastq
deleted file mode 100644
index 0bf30ad..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACAGTTGA.1.fastq
+++ /dev/null
@@ -1,8 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:2101:1048:2238 1:Y:0:ACAGTTGA
-NCTGCCGTGTCCTGACTTCTGGAAT
-+
-#1:B?ADDACF<DCG;EG<FHH at CE
- at machine1:HiMom:abcdeACXX:1:2101:1216:2193 1:Y:0:ACAGTTGA
-TTTTCTTGGCCTCTGTTTTTTTTTT
-+
-BCCFDFFFHHFFHJIGIJJJJJJJJ
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACAGTTGA.2.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACAGTTGA.2.fastq
deleted file mode 100644
index 06756b0..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACAGTTGA.2.fastq
+++ /dev/null
@@ -1,8 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:2101:1048:2238 2:Y:0:ACAGTTGA
-NGTCACATCGTTGAAGCACTGGATC
-+
-#11ADDDB<CFFHCHGDBHGIIIII
- at machine1:HiMom:abcdeACXX:1:2101:1216:2193 2:Y:0:ACAGTTGA
-AGGCATGACACTGCATTTTAAATAC
-+
-@@@DDDDDHFFHHGGDFHFHIIHGG
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACAGTTGA.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACAGTTGA.barcode_1.fastq
deleted file mode 100644
index 494500e..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACAGTTGA.barcode_1.fastq
+++ /dev/null
@@ -1,8 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:2101:1048:2238 :Y:0:ACAGTTGA
-ACAGTTGA
-+
-?@7DDDDA
- at machine1:HiMom:abcdeACXX:1:2101:1216:2193 :Y:0:ACAGTTGA
-ACAGTTGA
-+
-CCCFFFFF
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACTAAGAC.1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACTAAGAC.1.fastq
deleted file mode 100644
index b707973..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACTAAGAC.1.fastq
+++ /dev/null
@@ -1,16 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1259:2152 1:Y:0:ACTAAGAC
-CACCTATAATCCCAGCTACTCCAGA
-+
-CCCFFFFFHHHHHJJJJJJIJJJIJ
- at machine1:HiMom:abcdeACXX:1:1101:1261:2127 1:N:0:ACTAAGAC
-NTGAAATCTGGATAGGCTGGAGTTA
-+
-#0-@@@###################
- at machine1:HiMom:abcdeACXX:1:2101:1021:2209 1:Y:0:ACTAAGAC
-NGGCCCCACCCTCCTCCAGCACGTC
-+
-#1=DDFFFHHHHHJJJJJJHIIHFH
- at machine1:HiMom:abcdeACXX:1:2101:1262:2128 1:N:0:ACTAAGAC
-AGCAGAAGGGCAAAAGCTGGCTTGA
-+
-9;<@:@###################
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACTAAGAC.2.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACTAAGAC.2.fastq
deleted file mode 100644
index c5caacf..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACTAAGAC.2.fastq
+++ /dev/null
@@ -1,16 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1259:2152 2:Y:0:ACTAAGAC
-ATTTTTATATTTTTTTAGACATAGG
-+
-CCCFFFFFGHHHHJJJJIGIIJJJJ
- at machine1:HiMom:abcdeACXX:1:1101:1261:2127 2:N:0:ACTAAGAC
-TTTTTTTTTTTTTTTTTTTTTTTTT
-+
-CCCFFFFFHGHHHJJIFDDDDDDDD
- at machine1:HiMom:abcdeACXX:1:2101:1021:2209 2:Y:0:ACTAAGAC
-NNGGAAGGCTGCTAGCTGGCCAGAG
-+
-##08@>??@@??@?????????>?@
- at machine1:HiMom:abcdeACXX:1:2101:1262:2128 2:N:0:ACTAAGAC
-TCTTGTGGTAACTTTTCTGACACCT
-+
--(---9@;@?:8>?4:>?@######
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACTAAGAC.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACTAAGAC.barcode_1.fastq
deleted file mode 100644
index 4e1fb6b..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACTAAGAC.barcode_1.fastq
+++ /dev/null
@@ -1,16 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1259:2152 :Y:0:ACTAAGAC
-ACTAAGAC
-+
-CCCFFFFF
- at machine1:HiMom:abcdeACXX:1:1101:1261:2127 :N:0:ACTAAGAC
-ACTAAGAC
-+
->7+ at A7A7
- at machine1:HiMom:abcdeACXX:1:2101:1021:2209 :Y:0:ACTAAGAC
-ACTAAGAC
-+
- at CCDFFFF
- at machine1:HiMom:abcdeACXX:1:2101:1262:2128 :N:0:ACTAAGAC
-ACTAAGAC
-+
-1+8?ADD8
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACTGTATC.1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACTGTATC.1.fastq
deleted file mode 100644
index 97623fe..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACTGTATC.1.fastq
+++ /dev/null
@@ -1,16 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1201:1458:2109 1:Y:0:ACTGTATC
-NGAGACCATAGAGCGGATGCTTTCA
-+
-#1=DDDFFHHGHGIJJIGIIJJJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1105:2131 1:Y:0:ACTGTATC
-TTGGAACACAGCGGGAATCACAGCA
-+
-CCCFFFFFHHHHHJIJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1349:2084 1:Y:0:ACTGTATC
-NCAAGTAGCAGTGTCACGCCTTAGC
-+
-#1=DDBDDADFDDBEH at HC=CEGG@
- at machine1:HiMom:abcdeACXX:1:2101:1365:2094 1:Y:0:ACTGTATC
-NAAGGTGAAGGCCGGCGCGCTCGCC
-+
-#1=BDDDFFHHHHJGGGIGFIHIIJ
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACTGTATC.2.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACTGTATC.2.fastq
deleted file mode 100644
index 1605b41..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACTGTATC.2.fastq
+++ /dev/null
@@ -1,16 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1201:1458:2109 2:Y:0:ACTGTATC
-GATACGAACACACAAGAACTTTTTT
-+
-CCCFFFFFHHHHHJJJJJJJJJJJI
- at machine1:HiMom:abcdeACXX:1:2101:1105:2131 2:Y:0:ACTGTATC
-CAGCAGCAGCAACAGCAGAAACATG
-+
-CCCFFFFFHHHHHJJJJJIJJJJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1349:2084 2:Y:0:ACTGTATC
-AGTCTGAATCATTGGTGTCTGAAGA
-+
-<5;??=>=>>?##############
- at machine1:HiMom:abcdeACXX:1:2101:1365:2094 2:Y:0:ACTGTATC
-GCTCTTCCGATCTTGTGCTCTTCCG
-+
-CCCFFFFDHFHHGJJIIJIJJIHII
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACTGTATC.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACTGTATC.barcode_1.fastq
deleted file mode 100644
index a5cae5c..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACTGTATC.barcode_1.fastq
+++ /dev/null
@@ -1,16 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1201:1458:2109 :Y:0:ACTGTATC
-ACTGTATC
-+
-CCCFFFFF
- at machine1:HiMom:abcdeACXX:1:2101:1105:2131 :Y:0:ACTGTATC
-ACTGTATC
-+
-CCCFFFFF
- at machine1:HiMom:abcdeACXX:1:2101:1349:2084 :Y:0:ACTGTATC
-ACTGTATC
-+
-=;7+22<A
- at machine1:HiMom:abcdeACXX:1:2101:1365:2094 :Y:0:ACTGTATC
-ACTGTACC
-+
-########
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/AGCATGGA.1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/AGCATGGA.1.fastq
deleted file mode 100644
index 27ac39f..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/AGCATGGA.1.fastq
+++ /dev/null
@@ -1,12 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1406:2222 1:Y:0:AGCATGGA
-CTCCCCCCGGGCTGAACCAGGGTAC
-+
-CCCFFDDDDHDFHIIIIIIIII9DG
- at machine1:HiMom:abcdeACXX:1:1201:1291:2158 1:Y:0:AGCATGGA
-AGAAGGGGAAAGCCTTCATCTTGGC
-+
-BCBFFFFFHHHHHJJJJJIIFIJIJ
- at machine1:HiMom:abcdeACXX:1:2101:1370:2116 1:Y:0:AGCATGGA
-NTGGTGGTCCATAGAGATTTGAAAC
-+
-#1:4BD7DACF?FCA:4+<ACHIIH
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/AGCATGGA.2.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/AGCATGGA.2.fastq
deleted file mode 100644
index 308b145..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/AGCATGGA.2.fastq
+++ /dev/null
@@ -1,12 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1406:2222 2:Y:0:AGCATGGA
-GGCTGGACTCCCCTGGTTCTGGGCA
-+
-;?@DDDBD?FHDFGIIIGIGHHIII
- at machine1:HiMom:abcdeACXX:1:1201:1291:2158 2:Y:0:AGCATGGA
-CGTGTGCTCTTCCGATCTGATGGGC
-+
- at CCFFFDD?FHHFGEHHIIDHIIII
- at machine1:HiMom:abcdeACXX:1:2101:1370:2116 2:Y:0:AGCATGGA
-CACCATCTGACATCATGTTTGAAAG
-+
-@@@DFFFDFFHDHIGBHHII<HEDB
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/AGCATGGA.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/AGCATGGA.barcode_1.fastq
deleted file mode 100644
index 83c6cb0..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/AGCATGGA.barcode_1.fastq
+++ /dev/null
@@ -1,12 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1406:2222 :Y:0:AGCATGGA
-AGCATGGA
-+
-C@@DBFEF
- at machine1:HiMom:abcdeACXX:1:1201:1291:2158 :Y:0:AGCATGGA
-AGCATGGA
-+
- at CCFFFFF
- at machine1:HiMom:abcdeACXX:1:2101:1370:2116 :Y:0:AGCATGGA
-AGCATGGA
-+
-?:8A?3:B
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/AGGTAAGG.1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/AGGTAAGG.1.fastq
deleted file mode 100644
index 0c29862..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/AGGTAAGG.1.fastq
+++ /dev/null
@@ -1,16 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1263:2236 1:N:0:AGGTAAGG
-CTTTGAAGACATTGTGAGATCTGTA
-+
-<==A<42 at C+A4A?,2A@=4 at 7A??
- at machine1:HiMom:abcdeACXX:1:2101:1054:2162 1:Y:0:AGGTAAGG
-NCCAGGTGTCTTCCCGGGCCCTGCC
-+
-#1=DDFBDFHHHHJJJJJIJJJJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1163:2203 1:Y:0:AGGTAAGG
-TCTCCATGTGAAACAAGCAAAAAGA
-+
-CCCFFFFFHHHHGJJJIJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1249:2231 1:Y:0:AGGTAAGG
-GTTATTGATAGGATACTGTACAAAC
-+
- at BCFFFFDHHHHFIJJJJJJJJJJJ
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/AGGTAAGG.2.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/AGGTAAGG.2.fastq
deleted file mode 100644
index e6ec62a..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/AGGTAAGG.2.fastq
+++ /dev/null
@@ -1,16 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1263:2236 2:N:0:AGGTAAGG
-AGTTCTTCAGTAATTTTAGTACTGC
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:2101:1054:2162 2:Y:0:AGGTAAGG
-NGGACAGGGAAGGGAAGGAAGGGTG
-+
-#4=DDFDFHHHHHJIJIIDHHGICG
- at machine1:HiMom:abcdeACXX:1:2101:1163:2203 2:Y:0:AGGTAAGG
-TTGGTTCACTTATGTATTTATGAAT
-+
- at CCFDFFFHHHHHJHIIJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1249:2231 2:Y:0:AGGTAAGG
-TCTCTCGGCCTTCCACTCTAGCATA
-+
-@@@FFFFFFHHGHIJJJGJIIJHIJ
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/AGGTAAGG.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/AGGTAAGG.barcode_1.fastq
deleted file mode 100644
index a8d8a51..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/AGGTAAGG.barcode_1.fastq
+++ /dev/null
@@ -1,16 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1263:2236 :N:0:AGGTAAGG
-AGGTAAGG
-+
-########
- at machine1:HiMom:abcdeACXX:1:2101:1054:2162 :Y:0:AGGTAAGG
-AGGTAAGG
-+
-B at BDDFFF
- at machine1:HiMom:abcdeACXX:1:2101:1163:2203 :Y:0:AGGTAAGG
-AGGTAAGG
-+
-CCCFFFFF
- at machine1:HiMom:abcdeACXX:1:2101:1249:2231 :Y:0:AGGTAAGG
-AGGTAAGG
-+
-@@CBDFFF
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/AGGTCGCA.1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/AGGTCGCA.1.fastq
deleted file mode 100644
index b8fd6ca..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/AGGTCGCA.1.fastq
+++ /dev/null
@@ -1,16 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1150:2228 1:Y:0:AGGTCGCA
-GCTACTCAGTAGACAGTCCCACCCT
-+
-@@CADDDDFCFHHIIIIGGIIGGGI
- at machine1:HiMom:abcdeACXX:1:1101:1491:2120 1:Y:0:AGGTCGCA
-NGGCAGGTGCCCCCACTTGACTCTC
-+
-#1?DFFFFGHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1190:2194 1:Y:0:AGGTCGCA
-AACCTGGCGCTAAACCATTCGTAGA
-+
-CCCFFFFFHHHHHJJJJJJJJIJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1188:2195 1:Y:0:AGGTCGCA
-TTAGACCGTCGTGAGACAGGTTAGT
-+
- at CCFFFFFHHHHHJJJJJIIEHIJH
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/AGGTCGCA.2.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/AGGTCGCA.2.fastq
deleted file mode 100644
index b8537f5..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/AGGTCGCA.2.fastq
+++ /dev/null
@@ -1,16 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1150:2228 2:Y:0:AGGTCGCA
-ATGGGAGGCGATTCCTAGGGGGTTG
-+
-8?=DD8;@BH6DHD<FGGGEIGHIG
- at machine1:HiMom:abcdeACXX:1:1101:1491:2120 2:Y:0:AGGTCGCA
-GGCCAGGCTGAACTTCTGAGCTGCT
-+
-CCCFFFFFHHHGHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1190:2194 2:Y:0:AGGTCGCA
-ACAAACCCTTGTGTCGAGGGCTGAC
-+
-CCCFFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1188:2195 2:Y:0:AGGTCGCA
-GCACATACACCAAATGTCTGAACCT
-+
-CCCFFFFFHHHHHJJJHIJJJJJJJ
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/AGGTCGCA.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/AGGTCGCA.barcode_1.fastq
deleted file mode 100644
index 3c18d15..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/AGGTCGCA.barcode_1.fastq
+++ /dev/null
@@ -1,16 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1150:2228 :Y:0:AGGTCGCA
-AGGTCGCA
-+
-@@@DDFFF
- at machine1:HiMom:abcdeACXX:1:1101:1491:2120 :Y:0:AGGTCGCA
-AGGTCGCA
-+
-BCCDFFFF
- at machine1:HiMom:abcdeACXX:1:1201:1190:2194 :Y:0:AGGTCGCA
-AGGTCGCA
-+
-CCCFFFFF
- at machine1:HiMom:abcdeACXX:1:2101:1188:2195 :Y:0:AGGTCGCA
-AGGTCGCA
-+
-BCCDFFFF
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ATTATCAA.1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/ATTATCAA.1.fastq
deleted file mode 100644
index cccbe53..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ATTATCAA.1.fastq
+++ /dev/null
@@ -1,20 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1100:2207 1:Y:0:ATTATCAA
-ACGACAGACGTTCTTTCTTTGCTGC
-+
-CCCFFFFFHHFHHJIJJJJJHIJJH
- at machine1:HiMom:abcdeACXX:1:1101:1157:2135 1:Y:0:ATTATCAA
-NGGACATTGTAATCATTTCTTACAA
-+
-#1=DD?DDHHHHHGGHIIIIIIIII
- at machine1:HiMom:abcdeACXX:1:1101:1269:2170 1:Y:0:ATTATCAA
-ACAGTGTGGGAGGCAGACGAAGAGA
-+
-@@@DDDDDFA:C at EGA?FD<FFHII
- at machine1:HiMom:abcdeACXX:1:1201:1018:2217 1:N:0:ATTATCAA
-NTTTCTCTGGGCGCAAAGATGTTCA
-+
-#07;8=8<<99(:=@@/@7>>6=?>
- at machine1:HiMom:abcdeACXX:1:1201:1118:2198 1:Y:0:ATTATCAA
-CAAGTGTACAGGATTAGACTGGGTT
-+
-BCCFDEBDHHHHHIJJJGIIIJJGH
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ATTATCAA.2.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/ATTATCAA.2.fastq
deleted file mode 100644
index b725e93..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ATTATCAA.2.fastq
+++ /dev/null
@@ -1,20 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1100:2207 2:Y:0:ATTATCAA
-AGGCTNNNNNNNNNNNNGNNNNNNN
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1101:1157:2135 2:Y:0:ATTATCAA
-TTTAAAGTCTTAATCAAAGATGATA
-+
-CCCFFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1101:1269:2170 2:Y:0:ATTATCAA
-TTCCAAGCCTGTGCTTTAAGGAAAA
-+
-@@<ADBDBDF8DDCFH at GIE@@GGH
- at machine1:HiMom:abcdeACXX:1:1201:1018:2217 2:N:0:ATTATCAA
-NNNNNNNNNNNNNNNNNNNNNNNNN
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1201:1118:2198 2:Y:0:ATTATCAA
-AATAAACTTTATTAAAGCAGTTAAA
-+
-C at CFFFFFHDHHHGIIIJJJIJJJJ
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ATTATCAA.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/ATTATCAA.barcode_1.fastq
deleted file mode 100644
index 9d77783..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ATTATCAA.barcode_1.fastq
+++ /dev/null
@@ -1,20 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1100:2207 :Y:0:ATTATCAA
-ATTATCAA
-+
-CCCFFFFF
- at machine1:HiMom:abcdeACXX:1:1101:1157:2135 :Y:0:ATTATCAA
-ATTATCAA
-+
-C at CFFFFF
- at machine1:HiMom:abcdeACXX:1:1101:1269:2170 :Y:0:ATTATCAA
-ATTATCAA
-+
-@@@DDDF?
- at machine1:HiMom:abcdeACXX:1:1201:1018:2217 :N:0:ATTATCAA
-ATTATCAA
-+
-;<;:BBDD
- at machine1:HiMom:abcdeACXX:1:1201:1118:2198 :Y:0:ATTATCAA
-ATTATCAA
-+
-@@@DDBDD
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ATTCCTCT.1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/ATTCCTCT.1.fastq
deleted file mode 100644
index 3ed772b..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ATTCCTCT.1.fastq
+++ /dev/null
@@ -1,16 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1309:2210 1:Y:0:ATTCCTCT
-ACACCAACCACCCAACTATCTATAA
-+
-CCCFFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1018:2133 1:Y:0:ATTCCTCT
-NAAAACTTGAGGATGCTATGCAAGC
-+
-#1:B:ADDDDDDDEEAEBF9FFEBF
- at machine1:HiMom:abcdeACXX:1:1201:1073:2225 1:Y:0:ATTCCTCT
-GGGGCTGAGACCTTTGCTGATGGTG
-+
-@@@FFFFFHHHGHJJJJJIIIGICH
- at machine1:HiMom:abcdeACXX:1:1201:1242:2207 1:Y:0:ATTCCTCT
-ATGGCAAAGTGGTGTCTGAGACCAA
-+
-BCCFFFFFGHHHHHIIIJFHIJJJJ
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ATTCCTCT.2.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/ATTCCTCT.2.fastq
deleted file mode 100644
index 31f3e57..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ATTCCTCT.2.fastq
+++ /dev/null
@@ -1,16 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1309:2210 2:Y:0:ATTCCTCT
-AGTGGGCTAGGGCATTTTTAATCTT
-+
-@@?DFFDFHHHDFHJIJJIJGIIIJ
- at machine1:HiMom:abcdeACXX:1:1201:1018:2133 2:Y:0:ATTCCTCT
-NNNNNNNNNNNNNNNNNNNNNNNNN
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1201:1073:2225 2:Y:0:ATTCCTCT
-CGTGTGCTCTTCCGATCTGGAGGGT
-+
- at BBDFFFFHHHHHJJJJJJJJJJJ:
- at machine1:HiMom:abcdeACXX:1:1201:1242:2207 2:Y:0:ATTCCTCT
-ATCTTTTATTGGCCTCCTGCTCCCC
-+
-CCCFFFFFHHHHHJJJJJJJJJJJJ
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ATTCCTCT.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/ATTCCTCT.barcode_1.fastq
deleted file mode 100644
index bb2bfeb..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ATTCCTCT.barcode_1.fastq
+++ /dev/null
@@ -1,16 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1309:2210 :Y:0:ATTCCTCT
-ATTCCTCT
-+
-?@@ADEEF
- at machine1:HiMom:abcdeACXX:1:1201:1018:2133 :Y:0:ATTCCTCT
-ATTCCTCT
-+
-8??=BBBA
- at machine1:HiMom:abcdeACXX:1:1201:1073:2225 :Y:0:ATTCCTCT
-ATTCCTCT
-+
-B@@BDEFF
- at machine1:HiMom:abcdeACXX:1:1201:1242:2207 :Y:0:ATTCCTCT
-ATTCCTCT
-+
-?BBDDDFF
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CAACTCTC.1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/CAACTCTC.1.fastq
deleted file mode 100644
index 3d04499..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CAACTCTC.1.fastq
+++ /dev/null
@@ -1,20 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1140:2120 1:Y:0:CAACTCTC
-NCCCCAACATTCTAATTATGCCTCA
-+
-#1:BDFFDHFFDFIJJJIIJIIIII
- at machine1:HiMom:abcdeACXX:1:1101:1328:2225 1:Y:0:CAACTCTC
-GAAATGCATCTGTCTTAGAAACTGG
-+
-??@=BDDDFDD<<,<2:C<F:FFEA
- at machine1:HiMom:abcdeACXX:1:1201:1127:2112 1:N:0:CAACTCTC
-NGTCAAGGATGTTCGTCGTGGCAAC
-+
-#1=BDDDDDDDDDID<AE?@<CEEE
- at machine1:HiMom:abcdeACXX:1:1201:1452:2143 1:Y:0:CAACTCTC
-TATCCCCTCTAAGACGGACCTGGGT
-+
-CCCFFFFFHHHHHJJIIIJJJJJJG
- at machine1:HiMom:abcdeACXX:1:1201:1486:2146 1:N:0:CAACTCTC
-GTTCTCTGTCCCCAGGTCCTGTCTC
-+
-===A7<7222<<=C=?+<7>@?ACB
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CAACTCTC.2.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/CAACTCTC.2.fastq
deleted file mode 100644
index 86e9f33..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CAACTCTC.2.fastq
+++ /dev/null
@@ -1,20 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1140:2120 2:Y:0:CAACTCTC
-TTTTTTTTTTTTTAACTTTGCAAAT
-+
-@@@DDDDDHHHHFB at 9FHI@BFH@@
- at machine1:HiMom:abcdeACXX:1:1101:1328:2225 2:Y:0:CAACTCTC
-AGGAAATTAGGACTTACCTGACATA
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1201:1127:2112 2:N:0:CAACTCTC
-TAATCACCTGAGCAGTGAAGCCAGC
-+
-@<@?BDDDHD?FDBHI?AHGGGDFH
- at machine1:HiMom:abcdeACXX:1:1201:1452:2143 2:Y:0:CAACTCTC
-TTTTAGTCTTAGCATTTACTTTCCC
-+
-CCCFFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1486:2146 2:N:0:CAACTCTC
-TTTTTTTTTTTTTTTTTTTTTGGGC
-+
-<<<@??@??@???????########
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CAACTCTC.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/CAACTCTC.barcode_1.fastq
deleted file mode 100644
index e0a8164..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CAACTCTC.barcode_1.fastq
+++ /dev/null
@@ -1,20 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1140:2120 :Y:0:CAACTCTC
-CAACTCTC
-+
-@@@DDFDF
- at machine1:HiMom:abcdeACXX:1:1101:1328:2225 :Y:0:CAACTCTC
-CAACTCTC
-+
-??;=A:B=
- at machine1:HiMom:abcdeACXX:1:1201:1127:2112 :N:0:CAACTCTC
-CAACTCTC
-+
-=??BA?BD
- at machine1:HiMom:abcdeACXX:1:1201:1452:2143 :Y:0:CAACTCTC
-CAACTCTC
-+
-BC at DDFFF
- at machine1:HiMom:abcdeACXX:1:1201:1486:2146 :N:0:CAACTCTC
-CAACTCTC
-+
-?@@1:DBD
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CAATAGTC.1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/CAATAGTC.1.fastq
deleted file mode 100644
index bdf2139..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CAATAGTC.1.fastq
+++ /dev/null
@@ -1,28 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1316:2126 1:Y:0:CAATAGTC
-NAAAAAAAAAAAAAAAAAAAAAAAA
-+
-#1BDFFFFHHHHHJJJJFDDDDDDD
- at machine1:HiMom:abcdeACXX:1:1101:1399:2128 1:Y:0:CAATAGTC
-NTGCCCTTCGTCCTGGGAAACGGGG
-+
-#1BDFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1054:2151 1:Y:0:CAATAGTC
-NTAGTGCTGGGCACTAAGTAATACC
-+
-#4=DDDFFHHHHHJJJJJHIJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1345:2181 1:Y:0:CAATAGTC
-GGATAATCCTATTTATTACCTCAGA
-+
-BBBDDFFFHHHHHJJJJJJJJJIJJ
- at machine1:HiMom:abcdeACXX:1:1201:1392:2184 1:Y:0:CAATAGTC
-TTTCAGATTGGTCATTGTTAGTGTA
-+
-??@BDDDEHBHADHHIIEHDHFHFF
- at machine1:HiMom:abcdeACXX:1:2101:1172:2152 1:N:0:CAATAGTC
-AACACGGACAAAGGAGTCTAACACG
-+
-<<<??8@@#################
- at machine1:HiMom:abcdeACXX:1:2101:1491:2093 1:Y:0:CAATAGTC
-NCTATGCCGATCGGGTGTCCGCACT
-+
-#1=DDDDDHHFHHIIEHHHBGHGII
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CAATAGTC.2.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/CAATAGTC.2.fastq
deleted file mode 100644
index 5029765..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CAATAGTC.2.fastq
+++ /dev/null
@@ -1,28 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1316:2126 2:Y:0:CAATAGTC
-TCTTTTTTTTTTTTTTTTTTTTTTT
-+
-CCCFFFFFHHHHHJJJJHFDDDDDD
- at machine1:HiMom:abcdeACXX:1:1101:1399:2128 2:Y:0:CAATAGTC
-ACAAACCCTTGTGTCGAGGGCTGAC
-+
-CCCFFFFFHHHHHIJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1054:2151 2:Y:0:CAATAGTC
-GTCAGGCACTGAGAATATATGGGTG
-+
-CBCFFFFFHHHHHJJJJJJJJJJEG
- at machine1:HiMom:abcdeACXX:1:1201:1345:2181 2:Y:0:CAATAGTC
-ATACGGATGTGTTTAGGAGTGGGAC
-+
-CCCFFFFFHHHHHIIJJHJFHIJIJ
- at machine1:HiMom:abcdeACXX:1:1201:1392:2184 2:Y:0:CAATAGTC
-ATCTTTATTCATTTGTATGATCTTA
-+
-@@BFFFFFHFFHFHIHIIJIJJJJI
- at machine1:HiMom:abcdeACXX:1:2101:1172:2152 2:N:0:CAATAGTC
-ATCGTTTCTGGGGACTAGTGAGGCG
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:2101:1491:2093 2:Y:0:CAATAGTC
-AGAGACGGGGTCTCGCTATGTTGCC
-+
-BCCDFFFFHHHHHJIIJJJJIJIJJ
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CAATAGTC.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/CAATAGTC.barcode_1.fastq
deleted file mode 100644
index 1d92fa2..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CAATAGTC.barcode_1.fastq
+++ /dev/null
@@ -1,28 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1316:2126 :Y:0:CAATAGTC
-CAATAGAC
-+
-1>>7A###
- at machine1:HiMom:abcdeACXX:1:1101:1399:2128 :Y:0:CAATAGTC
-CAATAGTC
-+
-CCCFFFFF
- at machine1:HiMom:abcdeACXX:1:1201:1054:2151 :Y:0:CAATAGTC
-CAATAGTC
-+
-CCCFFFDF
- at machine1:HiMom:abcdeACXX:1:1201:1345:2181 :Y:0:CAATAGTC
-CAATAGTC
-+
-CCCFFFFF
- at machine1:HiMom:abcdeACXX:1:1201:1392:2184 :Y:0:CAATAGTC
-CAATAGTC
-+
- at CCFFDDE
- at machine1:HiMom:abcdeACXX:1:2101:1172:2152 :N:0:CAATAGTC
-CAATAGTC
-+
-########
- at machine1:HiMom:abcdeACXX:1:2101:1491:2093 :Y:0:CAATAGTC
-CAATAGTC
-+
-@@@FDEBD
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CAGCGGTA.1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/CAGCGGTA.1.fastq
deleted file mode 100644
index 39cb19f..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CAGCGGTA.1.fastq
+++ /dev/null
@@ -1,20 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1420:2213 1:Y:0:CAGCGGTA
-TACCTGGTTGATCCTGCCAGTAGCA
-+
-@@CFFFFDDHHGHJGGHIJJIHGBH
- at machine1:HiMom:abcdeACXX:1:1201:1364:2113 1:Y:0:CAGCGGTA
-NCACTCATTTTCTTATGTGGGATAT
-+
-#1=DDFDFHHHHHIJJIFHIIHHHI
- at machine1:HiMom:abcdeACXX:1:2101:1072:2170 1:Y:0:CAGCGGTA
-ATCACCGCACTCATTTCCCGCTTCC
-+
-CCCFFFFFHHHACEEGHIIBHIIII
- at machine1:HiMom:abcdeACXX:1:2101:1123:2095 1:Y:0:CAGCGGTA
-NTGGACAACATGTTCGAGAGCTACA
-+
-#1=BBDDDFFFFDGFGIG?F;HHFI
- at machine1:HiMom:abcdeACXX:1:2101:1151:2236 1:N:0:CAGCGGTA
-TTAAAGAGGTTCAGGGATGCAGAGT
-+
-#########################
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CAGCGGTA.2.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/CAGCGGTA.2.fastq
deleted file mode 100644
index 3f02733..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CAGCGGTA.2.fastq
+++ /dev/null
@@ -1,20 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1420:2213 2:Y:0:CAGCGGTA
-TTCACTGTACCGGCCGTGCGTACTT
-+
- at CCFFFFDHHHFGIJJJJJJGHIGG
- at machine1:HiMom:abcdeACXX:1:1201:1364:2113 2:Y:0:CAGCGGTA
-TAAAGAGAGCCAGTGGAGTTACGAC
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:2101:1072:2170 2:Y:0:CAGCGGTA
-NGGGGAGACAGAGAGGATCAGAAGT
-+
-#4=BDDFDHHDFHEGFEGGIJIIIG
- at machine1:HiMom:abcdeACXX:1:2101:1123:2095 2:Y:0:CAGCGGTA
-TCCGCCTCCAGCTTCAGCTTCTCCT
-+
-@@@FDDFFHHHHHJHGGJIJJJEHH
- at machine1:HiMom:abcdeACXX:1:2101:1151:2236 2:N:0:CAGCGGTA
-TTTGAAGCCTCTTTATCCTTGGCAT
-+
-#########################
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CAGCGGTA.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/CAGCGGTA.barcode_1.fastq
deleted file mode 100644
index 7d6da72..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CAGCGGTA.barcode_1.fastq
+++ /dev/null
@@ -1,20 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1420:2213 :Y:0:CAGCGGTA
-CAGCGGTA
-+
- at C@FFFDF
- at machine1:HiMom:abcdeACXX:1:1201:1364:2113 :Y:0:CAGCGGTA
-CAGCGGTA
-+
-C at CFFF@D
- at machine1:HiMom:abcdeACXX:1:2101:1072:2170 :Y:0:CAGCGGTA
-CAGCGGTA
-+
-B@@DFDDF
- at machine1:HiMom:abcdeACXX:1:2101:1123:2095 :Y:0:CAGCGGTA
-CAGCGGTA
-+
-@?@DDF@@
- at machine1:HiMom:abcdeACXX:1:2101:1151:2236 :N:0:CAGCGGTA
-TAGCGGTA
-+
-########
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CCAACATT.1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/CCAACATT.1.fastq
deleted file mode 100644
index 8305d35..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CCAACATT.1.fastq
+++ /dev/null
@@ -1,28 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1083:2193 1:Y:0:CCAACATT
-TTCTACCTCACCTTAGGGAGAAGAC
-+
-@@@DDBDDD>F><C<4CG?EHGHIG
- at machine1:HiMom:abcdeACXX:1:1101:1175:2197 1:Y:0:CCAACATT
-CCCCTGAGGACACCATCCCACTCCA
-+
-CCCFFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1138:2227 1:N:0:CCAACATT
-GCTGACACAATCTCTTCCGCCTGGT
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1201:1260:2165 1:Y:0:CCAACATT
-GGACACGGACAGGATTGACAGATTG
-+
-BCBFFFFFHHHHHHIIJHIIIFHIJ
- at machine1:HiMom:abcdeACXX:1:1201:1281:2133 1:Y:0:CCAACATT
-NGGAAATCCAGAAAACATAGAAGAT
-+
-#1=DDFFFHHHHHIJJJJJJJJIJJ
- at machine1:HiMom:abcdeACXX:1:1201:1331:2162 1:Y:0:CCAACATT
-ACGCTCGGCTAATTTTTGTATTTTT
-+
- at CCFFFDFHHHHHIJJJJHIJJJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1186:2093 1:Y:0:CCAACATT
-NCGACCATAAACGATGCCGACCGGC
-+
-#4=DFFFFHHHHHJJJJJJJJJJJJ
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CCAACATT.2.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/CCAACATT.2.fastq
deleted file mode 100644
index ab8867f..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CCAACATT.2.fastq
+++ /dev/null
@@ -1,28 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1083:2193 2:Y:0:CCAACATT
-AGGCTNNNNNNNNNNNNNNNNNNNN
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1101:1175:2197 2:Y:0:CCAACATT
-AAGAGCTGGGGAACATCCAGAAAGG
-+
-BC at FFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1138:2227 2:N:0:CCAACATT
-GACAAATATAGGAAATAGAAGCTAT
-+
-=1=A=AAA,2?4>7C<<4<A+3<AB
- at machine1:HiMom:abcdeACXX:1:1201:1260:2165 2:Y:0:CCAACATT
-ATCTGATCTAAGTTGGGGGACGCCG
-+
-@@@FFDFFHHHHHJJJIJIIIGIJJ
- at machine1:HiMom:abcdeACXX:1:1201:1281:2133 2:Y:0:CCAACATT
-GCAACAAAATTTCATATGACTTAGC
-+
-CCCFFFFFHHHHHJJIIIHICHIIJ
- at machine1:HiMom:abcdeACXX:1:1201:1331:2162 2:Y:0:CCAACATT
-TAATCCCAGTACTTTGGGAGGCCAA
-+
-CCCFFFFFHHHHHJJJJIJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1186:2093 2:Y:0:CCAACATT
-AATGTTGGGAGGACAATGATGGAAA
-+
-#########################
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CCAACATT.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/CCAACATT.barcode_1.fastq
deleted file mode 100644
index 576b369..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CCAACATT.barcode_1.fastq
+++ /dev/null
@@ -1,28 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1083:2193 :Y:0:CCAACATT
-CCAACATT
-+
-?@;DD?BD
- at machine1:HiMom:abcdeACXX:1:1101:1175:2197 :Y:0:CCAACATT
-CCAACATT
-+
-CCCFFFFF
- at machine1:HiMom:abcdeACXX:1:1201:1138:2227 :N:0:CCAACATT
-CCAACATT
-+
-########
- at machine1:HiMom:abcdeACXX:1:1201:1260:2165 :Y:0:CCAACATT
-CCAACATT
-+
-C at CFFFFF
- at machine1:HiMom:abcdeACXX:1:1201:1281:2133 :Y:0:CCAACATT
-CCAACATT
-+
-C at CFFFDF
- at machine1:HiMom:abcdeACXX:1:1201:1331:2162 :Y:0:CCAACATT
-CCAACATT
-+
-CCCFFFFF
- at machine1:HiMom:abcdeACXX:1:2101:1186:2093 :Y:0:CCAACATT
-CCAACATT
-+
-CCCFFFFF
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CCAGCACC.1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/CCAGCACC.1.fastq
deleted file mode 100644
index 1f95caa..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CCAGCACC.1.fastq
+++ /dev/null
@@ -1,12 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1212:2230 1:Y:0:CCAGCACC
-TTTCTATTAGCTCTTAGTAAGATTA
-+
-CCCFFFFFHHHHHJJJIJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1204:2228 1:Y:0:CCAGCACC
-CCGATACGCTGAGTGTGGTTTGCGG
-+
-CCCFFFFFHHHFHEGGHIHIJJJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1100:2085 1:Y:0:CCAGCACC
-NCACATGGATGAGGAGAATGAGGAT
-+
-#1=DDFFFFHHHHJHIGIHHHIJEH
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CCAGCACC.2.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/CCAGCACC.2.fastq
deleted file mode 100644
index d5b31ba..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CCAGCACC.2.fastq
+++ /dev/null
@@ -1,12 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1212:2230 2:Y:0:CCAGCACC
-TTTTAGCTTTATTGGGGAGGGGGTG
-+
-CCCFFFFFHHGHHJJJJGJJJJJDF
- at machine1:HiMom:abcdeACXX:1:1201:1204:2228 2:Y:0:CCAGCACC
-TCTTCTTGTCGATGAGGAACTTGGT
-+
-@?@FFFFFDHHGHJIJJGHIIJJJH
- at machine1:HiMom:abcdeACXX:1:2101:1100:2085 2:Y:0:CCAGCACC
-ATCTTGATCTCCTCCTTCTTGGCCT
-+
-@@@DDDDDHHFHFEIIIIHHBAHBG
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CCAGCACC.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/CCAGCACC.barcode_1.fastq
deleted file mode 100644
index 05832a8..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CCAGCACC.barcode_1.fastq
+++ /dev/null
@@ -1,12 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1212:2230 :Y:0:CCAGCACC
-CCAGCACC
-+
-CCCFFFFF
- at machine1:HiMom:abcdeACXX:1:1201:1204:2228 :Y:0:CCAGCACC
-CCAGCACC
-+
-CCCFFFFF
- at machine1:HiMom:abcdeACXX:1:2101:1100:2085 :Y:0:CCAGCACC
-CCAGCACC
-+
-CCCFFFFF
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CGCCTTCC.1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/CGCCTTCC.1.fastq
deleted file mode 100644
index 96daf32..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CGCCTTCC.1.fastq
+++ /dev/null
@@ -1,8 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1201:1122:2227 1:Y:0:CGCCTTCC
-AGAAGACGAGGCTGAGAGTGACATC
-+
-@@@FFFFFHHHDHJGHGHCHHJJIJ
- at machine1:HiMom:abcdeACXX:1:1201:1160:2109 1:Y:0:CGCCTTCC
-NAGAAGCCTTTGCACCCTGGGAGGA
-+
-#1=DDDFFHHHHHJJJJJJJJIIJJ
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CGCCTTCC.2.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/CGCCTTCC.2.fastq
deleted file mode 100644
index 3c26563..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CGCCTTCC.2.fastq
+++ /dev/null
@@ -1,8 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1201:1122:2227 2:Y:0:CGCCTTCC
-GTCATATAAGGCCCAGTCCAAGGAA
-+
-@@@FFFFFHHHGGIJIGGIJFIJII
- at machine1:HiMom:abcdeACXX:1:1201:1160:2109 2:Y:0:CGCCTTCC
-ACATCCTTCCCATGCCACCAACTCG
-+
-CCCFFFFFGHHHHJJJJJJJJJJJJ
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CGCCTTCC.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/CGCCTTCC.barcode_1.fastq
deleted file mode 100644
index a14ab0c..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CGCCTTCC.barcode_1.fastq
+++ /dev/null
@@ -1,8 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1201:1122:2227 :Y:0:CGCCTTCC
-CGCCTTCC
-+
-@@@DDFFF
- at machine1:HiMom:abcdeACXX:1:1201:1160:2109 :Y:0:CGCCTTCC
-CGCCTTCC
-+
-C at BFFFFF
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CGCTATGT.1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/CGCTATGT.1.fastq
deleted file mode 100644
index 3542f21..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CGCTATGT.1.fastq
+++ /dev/null
@@ -1,20 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1291:2150 1:Y:0:CGCTATGT
-CGTGGGGAACCTGGCGCTAAACCAT
-+
- at BBFFFFFHHHHHJJJJIJJJJJIJ
- at machine1:HiMom:abcdeACXX:1:1101:1314:2233 1:Y:0:CGCTATGT
-GTTTATTGGGGCATTCCTTATCCCA
-+
-@??DDDDBDHF>FCHGGGBFAAED9
- at machine1:HiMom:abcdeACXX:1:1101:1441:2148 1:Y:0:CGCTATGT
-ACTTTCACCGCTACACGACCGGGGG
-+
-CCCFFFFFHGFFHIIFIHJIGGII>
- at machine1:HiMom:abcdeACXX:1:1201:1043:2246 1:Y:0:CGCTATGT
-NTTCTCGGCTGTCATGTGCAACATT
-+
-#1=DDBDFHHHDFFBHGHGHIIJEH
- at machine1:HiMom:abcdeACXX:1:1201:1134:2144 1:Y:0:CGCTATGT
-TGCCAGGAAGTGTTTTTTCTGGGTC
-+
- at CCFFEFFHHFFFGIJJJJJJJJGH
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CGCTATGT.2.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/CGCTATGT.2.fastq
deleted file mode 100644
index 74bd04e..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CGCTATGT.2.fastq
+++ /dev/null
@@ -1,20 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1291:2150 2:Y:0:CGCTATGT
-ACAAACCCTTGTGTCGAGGGCTGAC
-+
-CCCFFFFFHHFHHIJJJIIIGIJIJ
- at machine1:HiMom:abcdeACXX:1:1101:1314:2233 2:Y:0:CGCTATGT
-AGGAAAGTTGGGCTGACCTGACAGA
-+
-@@<DDD;=FBFADBCGDEH?F;FCG
- at machine1:HiMom:abcdeACXX:1:1101:1441:2148 2:Y:0:CGCTATGT
-TTTTGGCTCTAGAGGGGGTAGAGGG
-+
-CCCFFFFFHHDFBHIIJJ1?FGHIJ
- at machine1:HiMom:abcdeACXX:1:1201:1043:2246 2:Y:0:CGCTATGT
-NGCATCATTTCNNGCTTCTCTCTGT
-+
-#0;@@??@=@>##22=;@??><@??
- at machine1:HiMom:abcdeACXX:1:1201:1134:2144 2:Y:0:CGCTATGT
-AGTGTGAGTAATGGTTGAGAGGTGG
-+
-B@?DDDFFFHHGHJHHGFIHHIFGI
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CGCTATGT.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/CGCTATGT.barcode_1.fastq
deleted file mode 100644
index 0a09fe6..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CGCTATGT.barcode_1.fastq
+++ /dev/null
@@ -1,20 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1291:2150 :Y:0:CGCTATGT
-CGCTATGT
-+
-@@@FFFFF
- at machine1:HiMom:abcdeACXX:1:1101:1314:2233 :Y:0:CGCTATGT
-CGCTATGT
-+
-@<@?B@;A
- at machine1:HiMom:abcdeACXX:1:1101:1441:2148 :Y:0:CGCTATGT
-CGCTATGT
-+
-@@BFFDDD
- at machine1:HiMom:abcdeACXX:1:1201:1043:2246 :Y:0:CGCTATGT
-CGCTATGT
-+
-@<?DD:B=
- at machine1:HiMom:abcdeACXX:1:1201:1134:2144 :Y:0:CGCTATGT
-CGCTATGT
-+
-CCCFFFFD
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CTAACTCG.1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/CTAACTCG.1.fastq
deleted file mode 100644
index 75df3c2..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CTAACTCG.1.fastq
+++ /dev/null
@@ -1,16 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1363:2138 1:Y:0:CTAACTCG
-NGTCTGGCCTGCACAGACATCCTAC
-+
-#1=DDFFFHHHHHJJJIJJIJJJIJ
- at machine1:HiMom:abcdeACXX:1:1201:1393:2143 1:Y:0:CTAACTCG
-TGGTTGATCCTGCCAGTAGCATATG
-+
-@@@ADADDFHFFDBHE?G at HIIIEE
- at machine1:HiMom:abcdeACXX:1:2101:1273:2119 1:N:0:CTAACTCG
-NAGATAAGAGTCCACACAGTTGAGT
-+
-#11AAAAA<A?4=C=7?733<ACA3
- at machine1:HiMom:abcdeACXX:1:2101:1414:2098 1:Y:0:CTAACTCG
-NAGGACATCGATAAAGGCGAGGTGT
-+
-#1=DDFFFHHHHHJJJJJJJJJHHG
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CTAACTCG.2.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/CTAACTCG.2.fastq
deleted file mode 100644
index edb09e6..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CTAACTCG.2.fastq
+++ /dev/null
@@ -1,16 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1363:2138 2:Y:0:CTAACTCG
-GTTCTTAAACCTGTTAGAACTTCTG
-+
-C@@FFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1393:2143 2:Y:0:CTAACTCG
-GATAAATGCACGCATCCCCCCCGCG
-+
-C at CFFFFFGGHHHHJJJJJJJJJJI
- at machine1:HiMom:abcdeACXX:1:2101:1273:2119 2:N:0:CTAACTCG
-ATGATGGATCTTCTCTAACTTGTCA
-+
->=><AAAAA+2AA?CB4@@ABB3?A
- at machine1:HiMom:abcdeACXX:1:2101:1414:2098 2:Y:0:CTAACTCG
-TTGGGGCCGGTGCCGTCGGGCCCAA
-+
-CCCFFFFFHHHHGJJIJJJJJJJIJ
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CTAACTCG.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/CTAACTCG.barcode_1.fastq
deleted file mode 100644
index 038b4dc..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CTAACTCG.barcode_1.fastq
+++ /dev/null
@@ -1,16 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1363:2138 :Y:0:CTAACTCG
-CTAACTCG
-+
-CCCFFFFF
- at machine1:HiMom:abcdeACXX:1:1201:1393:2143 :Y:0:CTAACTCG
-CTAACTCG
-+
-@@CFDDFD
- at machine1:HiMom:abcdeACXX:1:2101:1273:2119 :N:0:CTAACTCG
-CTAACTCG
-+
-=++==ADB
- at machine1:HiMom:abcdeACXX:1:2101:1414:2098 :Y:0:CTAACTCG
-CTAACTCG
-+
-CCCFFFFF
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CTATGCGT.1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/CTATGCGT.1.fastq
deleted file mode 100644
index 8f1cd46..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CTATGCGT.1.fastq
+++ /dev/null
@@ -1,28 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1201:1083:2121 1:Y:0:CTATGCGT
-NAGAACTGGCGCTGCGGGATGAACC
-+
-#1=BDFFFHHHHHJJJJJHIJIJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1185:2143 1:Y:0:CTATGCGT
-ATCTGCCTGGTTCGGCCCGCCTGCC
-+
-CCCFFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1219:2115 1:Y:0:CTATGCGT
-NTATAGTGGAGGCCGGAGCAGGAAC
-+
-#1:DABADHHHFHIIIGGHGIIIII
- at machine1:HiMom:abcdeACXX:1:1201:1472:2121 1:N:0:CTATGCGT
-NTAAAGTGTGAACAAGGAAGGTCAT
-+
-#07>@<9=@################
- at machine1:HiMom:abcdeACXX:1:2101:1013:2146 1:Y:0:CTATGCGT
-NACACTGCTGCAGATGACAAGCAGC
-+
-#4BDFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1231:2208 1:Y:0:CTATGCGT
-ACGCCGCAAGTCAGAGCCCCCCAGA
-+
-@@@DDDFFFFB:DBBEBEFDHBDDB
- at machine1:HiMom:abcdeACXX:1:2101:1233:2133 1:N:0:CTATGCGT
-GAGAGAAGCACTCTTGAGCGGGATA
-+
-0;(@((@)2@###############
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CTATGCGT.2.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/CTATGCGT.2.fastq
deleted file mode 100644
index e9bc995..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CTATGCGT.2.fastq
+++ /dev/null
@@ -1,28 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1201:1083:2121 2:Y:0:CTATGCGT
-ACACACAACACCACCGCCCTCCCCC
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1201:1185:2143 2:Y:0:CTATGCGT
-GCTGAAGGCCCGTGGGCCAGAGGTG
-+
- at CCFFFFFHHHHHJJJJJJJJJJHI
- at machine1:HiMom:abcdeACXX:1:1201:1219:2115 2:Y:0:CTATGCGT
-TGGGAGTAGTTCCCTGCTAAGGGAG
-+
-???DBDBDADDDDIEID:AFFD:?8
- at machine1:HiMom:abcdeACXX:1:1201:1472:2121 2:N:0:CTATGCGT
-GTGTGCTCTTCCGATCTGGAGGATG
-+
-=+=??A4A==A at 7A<?#########
- at machine1:HiMom:abcdeACXX:1:2101:1013:2146 2:Y:0:CTATGCGT
-NNNNCGCTAGAACCAACTTATTCAT
-+
-####24=?@@?@?@@?@@@@@@?@@
- at machine1:HiMom:abcdeACXX:1:2101:1231:2208 2:Y:0:CTATGCGT
-AGCCAGTGTTGGTGTGTTGACTGTT
-+
-@@;1ADABCF;BF<AACGCHEBHC<
- at machine1:HiMom:abcdeACXX:1:2101:1233:2133 2:N:0:CTATGCGT
-TTTTTTTTTTTTTTTTTTTTTTTTT
-+
-CCCFFFFFGHHHHJJJFDDDDDDDD
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CTATGCGT.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/CTATGCGT.barcode_1.fastq
deleted file mode 100644
index a776107..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CTATGCGT.barcode_1.fastq
+++ /dev/null
@@ -1,28 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1201:1083:2121 :Y:0:CTATGCGT
-CTATGCGT
-+
-CCCFFFFD
- at machine1:HiMom:abcdeACXX:1:1201:1185:2143 :Y:0:CTATGCGT
-CTATGCGT
-+
-CCCFFFFF
- at machine1:HiMom:abcdeACXX:1:1201:1219:2115 :Y:0:CTATGCGT
-CCATGCGT
-+
-??<DDA?D
- at machine1:HiMom:abcdeACXX:1:1201:1472:2121 :N:0:CTATGCGT
-CTATGCGC
-+
-;?=D####
- at machine1:HiMom:abcdeACXX:1:2101:1013:2146 :Y:0:CTATGCGT
-CTATGCGT
-+
-CCCFFFFF
- at machine1:HiMom:abcdeACXX:1:2101:1231:2208 :Y:0:CTATGCGT
-CTATGCGT
-+
-@<@?D8 at D
- at machine1:HiMom:abcdeACXX:1:2101:1233:2133 :N:0:CTATGCGT
-CTATGCGT
-+
-=??B####
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CTGCGGAT.1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/CTGCGGAT.1.fastq
deleted file mode 100644
index b5fa044..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CTGCGGAT.1.fastq
+++ /dev/null
@@ -1,12 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:2101:1102:2221 1:Y:0:CTGCGGAT
-TTTCATCTTATTTCATTGGTTTATA
-+
-CCCFFFFFHHHHHJIJJJJIJJJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1126:2082 1:Y:0:CTGCGGAT
-NGTTTTAGGGGTGCGCAGGAGTCAA
-+
-#11=A=DD?DF at D@CCGHIEFH at BG
- at machine1:HiMom:abcdeACXX:1:2101:1216:2172 1:Y:0:CTGCGGAT
-TTTCTTCGCAGGATTTTTCTGAGCC
-+
-CCCFFFFFHHHHHJJJJJJJJJJJJ
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CTGCGGAT.2.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/CTGCGGAT.2.fastq
deleted file mode 100644
index 1d02e67..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CTGCGGAT.2.fastq
+++ /dev/null
@@ -1,12 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:2101:1102:2221 2:Y:0:CTGCGGAT
-ATAACTGACTCTACTCAGTAGATTA
-+
-CCCFFFFFHHHHHJJJJJIJJJJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1126:2082 2:Y:0:CTGCGGAT
-TCTCTTTCCACCTTGGTCACCTTCC
-+
- at C@DDDFFHHHHHJEGGIHHIJGIH
- at machine1:HiMom:abcdeACXX:1:2101:1216:2172 2:Y:0:CTGCGGAT
-GGACTTCTAGGGGATTTAGCGGGGT
-+
-CCCFFFFFHHHHHJJJJJJJJJJJD
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CTGCGGAT.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/CTGCGGAT.barcode_1.fastq
deleted file mode 100644
index 6e8722b..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CTGCGGAT.barcode_1.fastq
+++ /dev/null
@@ -1,12 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:2101:1102:2221 :Y:0:CTGCGGAT
-CTGCGGAT
-+
-CCCFFFFF
- at machine1:HiMom:abcdeACXX:1:2101:1126:2082 :Y:0:CTGCGGAT
-CTGCGGAT
-+
-@@@FFFDA
- at machine1:HiMom:abcdeACXX:1:2101:1216:2172 :Y:0:CTGCGGAT
-CAGCGGAT
-+
-C at CFFFFF
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CTGTAATC.1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/CTGTAATC.1.fastq
deleted file mode 100644
index 3e478fc..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CTGTAATC.1.fastq
+++ /dev/null
@@ -1,24 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1403:2194 1:Y:0:CTGTAATC
-CTAAACAGAGAGAAGGTTTCTCTTT
-+
-CCCFFFFFHHHHHJJJFHIJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1045:2105 1:N:0:CTGTAATC
-NTAAAGAGAAATCAAGAATACTATT
-+
-#-4@?(@)@@###############
- at machine1:HiMom:abcdeACXX:1:1201:1483:2126 1:N:0:CTGTAATC
-NTGATAAGGTGTTGCTATGTTACCC
-+
-#1:D?DDDDA??2:<CC4:AEDF>?
- at machine1:HiMom:abcdeACXX:1:2101:1011:2102 1:Y:0:CTGTAATC
-NAAACAAAACTGTAGAACTGTGTAT
-+
-#1=DDFFFHHHHHJJIJJJIHHHJJ
- at machine1:HiMom:abcdeACXX:1:2101:1245:2154 1:Y:0:CTGTAATC
-TCGTTAAGTATATTCTTAGGTATTT
-+
-CCCFFDFFFHFHHIIJJJJJFJJJI
- at machine1:HiMom:abcdeACXX:1:2101:1386:2105 1:Y:0:CTGTAATC
-NTACTAAAGAAAAAGTTGAAGAACT
-+
-#1=DDDFFHHHHHJJGHIJJJJIJJ
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CTGTAATC.2.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/CTGTAATC.2.fastq
deleted file mode 100644
index 8398b40..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CTGTAATC.2.fastq
+++ /dev/null
@@ -1,24 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1403:2194 2:Y:0:CTGTAATC
-ACATGGTGAAACCCTGTCTCTACTA
-+
-CCCFFFDDHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1045:2105 2:N:0:CTGTAATC
-NTTTTTTTTTTNNTTTTTTTTTTTT
-+
-#0;@@@@@@@?##0:????????=<
- at machine1:HiMom:abcdeACXX:1:1201:1483:2126 2:N:0:CTGTAATC
-GCATGCAGCTGGGTGCTGTGATGCA
-+
-@@@DDDBB<DD8F<<CGG?AA?A<F
- at machine1:HiMom:abcdeACXX:1:2101:1011:2102 2:Y:0:CTGTAATC
-NNNNNTCACACATAATTTTAAAATT
-+
-#####22@?@@??@@@@@??@@@@@
- at machine1:HiMom:abcdeACXX:1:2101:1245:2154 2:Y:0:CTGTAATC
-ACCAATCAGTAGCACCACTATACAC
-+
-CCCFFFFFHHHHHJJJJJJIJJJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1386:2105 2:Y:0:CTGTAATC
-AGGAATTATTCTTCTGCCATAAGGT
-+
-B@@DDFFFHGFHHIJJJJJGIGIJH
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CTGTAATC.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/CTGTAATC.barcode_1.fastq
deleted file mode 100644
index 8163888..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CTGTAATC.barcode_1.fastq
+++ /dev/null
@@ -1,24 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1403:2194 :Y:0:CTGTAATC
-CTGTAATC
-+
-CCCFFFFF
- at machine1:HiMom:abcdeACXX:1:1201:1045:2105 :N:0:CTGTAATC
-CTGTAATC
-+
-1112 at A##
- at machine1:HiMom:abcdeACXX:1:1201:1483:2126 :N:0:CTGTAATC
-CTGTAATC
-+
- at C<DD:B?
- at machine1:HiMom:abcdeACXX:1:2101:1011:2102 :Y:0:CTGTAATC
-CTGTAATC
-+
-C at CFFFFF
- at machine1:HiMom:abcdeACXX:1:2101:1245:2154 :Y:0:CTGTAATC
-CTGTAATC
-+
- at CCFFFFF
- at machine1:HiMom:abcdeACXX:1:2101:1386:2105 :Y:0:CTGTAATC
-CTGTAATC
-+
-CCCFFFFF
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GAAGGAAG.1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/GAAGGAAG.1.fastq
deleted file mode 100644
index cb24187..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GAAGGAAG.1.fastq
+++ /dev/null
@@ -1,12 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1338:2175 1:Y:0:GAAGGAAG
-CCCACCTTCCGGCGGCCGAAGACAC
-+
-CCCFFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1028:2202 1:Y:0:GAAGGAAG
-NTCCTGGGAAACGGGGCGCGGCTGG
-+
-#4BDDDFFHHHHHIJIIJJJJJJIJ
- at machine1:HiMom:abcdeACXX:1:2101:1084:2188 1:Y:0:GAAGGAAG
-TTGCTGCATGGGTTAATTGAGAATA
-+
-CCCFFFFFHHHHFHHIIJJIJJJJJ
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GAAGGAAG.2.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/GAAGGAAG.2.fastq
deleted file mode 100644
index 604d638..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GAAGGAAG.2.fastq
+++ /dev/null
@@ -1,12 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1338:2175 2:Y:0:GAAGGAAG
-GCTTGTTGGCTTTAACATCCACAAT
-+
-CCCFFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1028:2202 2:Y:0:GAAGGAAG
-NNAAACNCNTNNNNNNNGGNNTGNN
-+
-##42@?###################
- at machine1:HiMom:abcdeACXX:1:2101:1084:2188 2:Y:0:GAAGGAAG
-TACAAGGTCAAAATCAGCAACAAGT
-+
-CCCFFFFDHHHHHJJJJJJJJJJJJ
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GAAGGAAG.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/GAAGGAAG.barcode_1.fastq
deleted file mode 100644
index 7aad7f6..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GAAGGAAG.barcode_1.fastq
+++ /dev/null
@@ -1,12 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1338:2175 :Y:0:GAAGGAAG
-GAAGGAAG
-+
-CCCFFFFF
- at machine1:HiMom:abcdeACXX:1:1201:1028:2202 :Y:0:GAAGGAAG
-GAAGGAAG
-+
-CCCFFDFF
- at machine1:HiMom:abcdeACXX:1:2101:1084:2188 :Y:0:GAAGGAAG
-GAAGGAAG
-+
- at B@FFFFF
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GACCAGGA.1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/GACCAGGA.1.fastq
deleted file mode 100644
index 2f3cd2a..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GACCAGGA.1.fastq
+++ /dev/null
@@ -1,28 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1089:2172 1:Y:0:GACCAGGA
-TTCCAGCATGCGGTTTAAGTAGGAT
-+
- at CCFDFDBDFBF:<CEBHAFHHICH
- at machine1:HiMom:abcdeACXX:1:1101:1347:2149 1:Y:0:GACCAGGA
-GAGCAGATCGGAAGAGCACAGATCG
-+
-@@@FFDDDHHHHHIJJBGGHJIHEG
- at machine1:HiMom:abcdeACXX:1:1201:1095:2146 1:Y:0:GACCAGGA
-GCTGAGTCATGTAGTAAGCCTGTGC
-+
-BB at FDDDFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1123:2161 1:N:0:GACCAGGA
-CACTAACTCCTGACCTCAAATAATC
-+
-?7?=DD?DD+CDBE>E at EEF@+<CF
- at machine1:HiMom:abcdeACXX:1:1201:1439:2156 1:Y:0:GACCAGGA
-AGCCGCGAGGTGCTGGCGGACTTCC
-+
-:;1BDDDAA88A<?<E1C:D#####
- at machine1:HiMom:abcdeACXX:1:2101:1207:2084 1:N:0:GACCAGGA
-NTAGATGACCAAAACTTGCAGGGCA
-+
-#1:A<?@A+7A=?CBCCBCCBAAAA
- at machine1:HiMom:abcdeACXX:1:2101:1312:2105 1:Y:0:GACCAGGA
-NTTCCCTCAGGATAGCTGGCGCTCT
-+
-#1=DDFFFGHGHHJJJJJJJJJJJJ
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GACCAGGA.2.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/GACCAGGA.2.fastq
deleted file mode 100644
index 759b346..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GACCAGGA.2.fastq
+++ /dev/null
@@ -1,28 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1089:2172 2:Y:0:GACCAGGA
-TCCGGNNNNNNNNNNNNNNNNNNNN
-+
-:<<??####################
- at machine1:HiMom:abcdeACXX:1:1101:1347:2149 2:Y:0:GACCAGGA
-GCTCTTCCGATCTGTGCTCTTCCGA
-+
-CCCFFFFFDFHHFIJDGIGGHGIGH
- at machine1:HiMom:abcdeACXX:1:1201:1095:2146 2:Y:0:GACCAGGA
-ACTGACAACACCAAATGCTGCTAAG
-+
-CCCFFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1123:2161 2:N:0:GACCAGGA
-CGTGTGCTCTTCCGATCTGCATACA
-+
-===AAAA8AAAA<AAA)@CBA9>A#
- at machine1:HiMom:abcdeACXX:1:1201:1439:2156 2:Y:0:GACCAGGA
-GGAGATTATTTGCCTTGAAGTAAGC
-+
--;(22<>>@>8@>8;@#########
- at machine1:HiMom:abcdeACXX:1:2101:1207:2084 2:N:0:GACCAGGA
-TCACCACTCTTCTGGGCATCCCCTG
-+
-@@@DDEDFHHHHHIJIHHGHGGJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1312:2105 2:Y:0:GACCAGGA
-GTTGAGAATAGGTTGAGATCGTTTC
-+
- at CCFFFDFHHFHDHIJJJJJJJIJJ
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GACCAGGA.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/GACCAGGA.barcode_1.fastq
deleted file mode 100644
index 5036139..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GACCAGGA.barcode_1.fastq
+++ /dev/null
@@ -1,28 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1089:2172 :Y:0:GACCAGGA
-GACCAGGA
-+
-?@@FF;=B
- at machine1:HiMom:abcdeACXX:1:1101:1347:2149 :Y:0:GACCAGGA
-GACCAGGA
-+
-CC at DFFFD
- at machine1:HiMom:abcdeACXX:1:1201:1095:2146 :Y:0:GACCAGGA
-GACCAGGA
-+
-CCCFFFFF
- at machine1:HiMom:abcdeACXX:1:1201:1123:2161 :N:0:GACCAGGA
-GACCAGGA
-+
-?;@DFDFF
- at machine1:HiMom:abcdeACXX:1:1201:1439:2156 :Y:0:GACCAGGA
-GACCAGGC
-+
-########
- at machine1:HiMom:abcdeACXX:1:2101:1207:2084 :N:0:GACCAGGA
-GACCAGGA
-+
-@@CDFFFF
- at machine1:HiMom:abcdeACXX:1:2101:1312:2105 :Y:0:GACCAGGA
-GACCAGGA
-+
-CCCFFFFF
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GACCGTTG.1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/GACCGTTG.1.fastq
deleted file mode 100644
index 52b1c2e..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GACCGTTG.1.fastq
+++ /dev/null
@@ -1,16 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1218:2200 1:Y:0:GACCGTTG
-GCACCGGAAGAGCACACAGATCGGA
-+
-CCCFFFFDFHGHHJJIJIJJJJJJI
- at machine1:HiMom:abcdeACXX:1:1101:1257:2223 1:Y:0:GACCGTTG
-TGTATTCGAGAGATCAAAGAGAGAG
-+
-@@=DDBDD?FFHHEIDBDFCEDBAF
- at machine1:HiMom:abcdeACXX:1:1201:1180:2119 1:Y:0:GACCGTTG
-NTGAAAGATTTAGAGAGCTTACAAA
-+
-#1=DDDDDHHHGHJJIIJJJJIJJI
- at machine1:HiMom:abcdeACXX:1:2101:1036:2087 1:Y:0:GACCGTTG
-NTGTAGTTTCTTTAGGCAAATTTGT
-+
-#4=BDDDFHHHHHJJJJJJIIJJJI
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GACCGTTG.2.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/GACCGTTG.2.fastq
deleted file mode 100644
index a634b3b..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GACCGTTG.2.fastq
+++ /dev/null
@@ -1,16 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1218:2200 2:Y:0:GACCGTTG
-GCTCTTCCGATCTATCTGCTCGTCC
-+
-(-(=34???3;@#############
- at machine1:HiMom:abcdeACXX:1:1101:1257:2223 2:Y:0:GACCGTTG
-TGCTCTTCCGATCTTTTAGCAAAGC
-+
-:?@DDBDDHFFHDGIGIIJJJGGGI
- at machine1:HiMom:abcdeACXX:1:1201:1180:2119 2:Y:0:GACCGTTG
-GCTCTAAATTTTGCTTTTCTACAGC
-+
-CCCFFFFFHHHHHJJJJIJIJJIJJ
- at machine1:HiMom:abcdeACXX:1:2101:1036:2087 2:Y:0:GACCGTTG
-NGTCCACTTACGAAGCAAATACTTT
-+
-#4=DDFFFHHHHHJJJJJJJJJJJJ
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GACCGTTG.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/GACCGTTG.barcode_1.fastq
deleted file mode 100644
index 67cede4..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GACCGTTG.barcode_1.fastq
+++ /dev/null
@@ -1,16 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1218:2200 :Y:0:GACCGTTG
-GACCGTTG
-+
- at CCFFDDF
- at machine1:HiMom:abcdeACXX:1:1101:1257:2223 :Y:0:GACCGTTG
-GACCGTTG
-+
-;@@DD=DD
- at machine1:HiMom:abcdeACXX:1:1201:1180:2119 :Y:0:GACCGTTG
-GACCGTTG
-+
-CCCFFDFF
- at machine1:HiMom:abcdeACXX:1:2101:1036:2087 :Y:0:GACCGTTG
-GACCGTTG
-+
-B at CFFDFF
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GACCTAAC.1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/GACCTAAC.1.fastq
deleted file mode 100644
index d7bbf4d..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GACCTAAC.1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1302:2244 1:Y:0:GACCTAAC
-GGAAAAGACGGAAAGGTTCTATCTC
-+
- at C@DFFFDFHHHHJIJHHIJJJJJI
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GACCTAAC.2.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/GACCTAAC.2.fastq
deleted file mode 100644
index 8d08e7e..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GACCTAAC.2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1302:2244 2:Y:0:GACCTAAC
-TGAATACATATAACAAATGCAAAAA
-+
-CCCFFFFFHHHHHJJJJJJJJJJJJ
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GACCTAAC.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/GACCTAAC.barcode_1.fastq
deleted file mode 100644
index 0a1d60f..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GACCTAAC.barcode_1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1302:2244 :Y:0:GACCTAAC
-GACCTAAC
-+
-CCCFFFFF
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GATATCCA.1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/GATATCCA.1.fastq
deleted file mode 100644
index 64c2f2e..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GATATCCA.1.fastq
+++ /dev/null
@@ -1,12 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1460:2176 1:Y:0:GATATCCA
-AGTCCAGGCTGAGCCCAGGGAAGAA
-+
-CCCFFFFFHHHHGJIJJIJJHIJJI
- at machine1:HiMom:abcdeACXX:1:2101:1031:2163 1:Y:0:GATATCCA
-NTTTCCATGGCCGTCACCTTTGGGT
-+
-#4=DDFFFHHHHHJJJJJJJJJJJI
- at machine1:HiMom:abcdeACXX:1:2101:1226:2088 1:Y:0:GATATCCA
-NGATCGGAAGAGCACACGTTTGACT
-+
-#4=DAA=DDFHFHIIBFGHHIG>EG
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GATATCCA.2.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/GATATCCA.2.fastq
deleted file mode 100644
index 32b29ec..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GATATCCA.2.fastq
+++ /dev/null
@@ -1,12 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1460:2176 2:Y:0:GATATCCA
-AGGAAAAAGACACAACAAGTCCAAC
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:2101:1031:2163 2:Y:0:GATATCCA
-NNACATTTGTCACCACTAGCCACCA
-+
-##0<@?@@@@@@@@@@?@@@@@@@?
- at machine1:HiMom:abcdeACXX:1:2101:1226:2088 2:Y:0:GATATCCA
-GCTCTTCCGATCTAGGTAATAGCTA
-+
-==?BDFFFDCDDHFFFAFHDHIJGJ
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GATATCCA.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/GATATCCA.barcode_1.fastq
deleted file mode 100644
index 9ddb963..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GATATCCA.barcode_1.fastq
+++ /dev/null
@@ -1,12 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1460:2176 :Y:0:GATATCCA
-GATATCCA
-+
-CCCFFFFF
- at machine1:HiMom:abcdeACXX:1:2101:1031:2163 :Y:0:GATATCCA
-GATATCCA
-+
-B at BFFFFF
- at machine1:HiMom:abcdeACXX:1:2101:1226:2088 :Y:0:GATATCCA
-GATATCCA
-+
-@@@:DDDD
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GCCGTCGA.1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/GCCGTCGA.1.fastq
deleted file mode 100644
index bc84fb1..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GCCGTCGA.1.fastq
+++ /dev/null
@@ -1,20 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1111:2148 1:Y:0:GCCGTCGA
-GTGGAGACCACCTCCGAGGCCTTGT
-+
-BBCFFFFFHHHHHJJJIJJJJJJJI
- at machine1:HiMom:abcdeACXX:1:1101:1221:2143 1:Y:0:GCCGTCGA
-TTTGGTGGAAATTTTTTGTTATGAT
-+
-CCCFFBDBHFD?FBFHIIGGIC at EF
- at machine1:HiMom:abcdeACXX:1:1101:1327:2200 1:N:0:GCCGTCGA
-AGGGGGATCCGCCGGGGGACCACAA
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:2101:1122:2136 1:Y:0:GCCGTCGA
-GTAGGCGCTCAGCAAATACTTGTCG
-+
-@@@DDDD8?<CACEHHBBHDAAFH@
- at machine1:HiMom:abcdeACXX:1:2101:1459:2083 1:Y:0:GCCGTCGA
-NCACACGCCACACGGAGCACACTTT
-+
-#4=DDFFFHHHHHJJJJJJJJIIJJ
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GCCGTCGA.2.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/GCCGTCGA.2.fastq
deleted file mode 100644
index 37e8e60..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GCCGTCGA.2.fastq
+++ /dev/null
@@ -1,20 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1111:2148 2:Y:0:GCCGTCGA
-GCGAANANNNNNNNNNNGGACGACN
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1101:1221:2143 2:Y:0:GCCGTCGA
-CAATTGAATGTCTGCACAGCCGCTT
-+
-@@@FFFFDHHHHHJJJIIIJGHIJJ
- at machine1:HiMom:abcdeACXX:1:1101:1327:2200 2:N:0:GCCGTCGA
-GTCATCTGGGCTGTCGACAGGTGTC
-+
- at B@FFFFFHHHHGIJJJJJJIFHHI
- at machine1:HiMom:abcdeACXX:1:2101:1122:2136 2:Y:0:GCCGTCGA
-CTTGCCAGCCTGCAGGCCCCGCGGC
-+
-???BBAABDD?DDIID)A:3<EADD
- at machine1:HiMom:abcdeACXX:1:2101:1459:2083 2:Y:0:GCCGTCGA
-ATTTCACCAAAATAATCAGAAGGCC
-+
-CCCFFFFDBHGHHIGGIJFJJGGFH
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GCCGTCGA.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/GCCGTCGA.barcode_1.fastq
deleted file mode 100644
index 4bed826..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GCCGTCGA.barcode_1.fastq
+++ /dev/null
@@ -1,20 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1111:2148 :Y:0:GCCGTCGA
-GCCGTCGA
-+
-CCCFFFFF
- at machine1:HiMom:abcdeACXX:1:1101:1221:2143 :Y:0:GCCGTCGA
-GCCGTCGA
-+
-@@CDDDDF
- at machine1:HiMom:abcdeACXX:1:1101:1327:2200 :N:0:GCCGTCGA
-GCCGTCGA
-+
-BCCFDFFD
- at machine1:HiMom:abcdeACXX:1:2101:1122:2136 :Y:0:GCCGTCGA
-GCCGTCGA
-+
-?@<DDDD?
- at machine1:HiMom:abcdeACXX:1:2101:1459:2083 :Y:0:GCCGTCGA
-GCCGTCGA
-+
-@@CFDDFD
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GCCTAGCC.1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/GCCTAGCC.1.fastq
deleted file mode 100644
index db6ed91..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GCCTAGCC.1.fastq
+++ /dev/null
@@ -1,20 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1165:2239 1:Y:0:GCCTAGCC
-GGCGGAGGCAGCATTTCAGCTGTGA
-+
-CCCFFDFFHHHHHIJJIGHHHJHHF
- at machine1:HiMom:abcdeACXX:1:1101:1290:2225 1:Y:0:GCCTAGCC
-CTTGGGCGCATGGTGAGGGAGGGAG
-+
-@@@FFDDFHDFH??CBEBHHIGDCD
- at machine1:HiMom:abcdeACXX:1:1201:1280:2179 1:Y:0:GCCTAGCC
-TTCAAGGAATCGTCCTGCCTCAGCC
-+
-BCCFFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1300:2137 1:Y:0:GCCTAGCC
-NTGTAATCCCAGCTCTCAGGGAGGC
-+
-#1=ADDDDDDDBBA?@AE?E at FE8;
- at machine1:HiMom:abcdeACXX:1:2101:1023:2237 1:N:0:GCCTAGCC
-NTAAACAGCTTCTGCACAGCCAAAG
-+
-#00@@?>=39>9;<412@?######
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GCCTAGCC.2.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/GCCTAGCC.2.fastq
deleted file mode 100644
index 1fbef6a..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GCCTAGCC.2.fastq
+++ /dev/null
@@ -1,20 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1165:2239 2:Y:0:GCCTAGCC
-ATGGAAGTCGAGACAGAAGTGAGAA
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1101:1290:2225 2:Y:0:GCCTAGCC
-TCAGTTCACTGGCAAAGACAGTCAC
-+
-C@@FBEDDFHFHGIIICEHGDHBHE
- at machine1:HiMom:abcdeACXX:1:1201:1280:2179 2:Y:0:GCCTAGCC
-GAGGACTGCTTGAGTCCAGGAGTTC
-+
-@@BFFDEFGHHHHIFGCHIJJJGGI
- at machine1:HiMom:abcdeACXX:1:1201:1300:2137 2:Y:0:GCCTAGCC
-GCTCTTCCGATCTTTTTTTTAATTT
-+
-@@?DDDDDFDHADEHGIGGED3?FD
- at machine1:HiMom:abcdeACXX:1:2101:1023:2237 2:N:0:GCCTAGCC
-NNTTTGTTTGAGTTCCTTGTAGATT
-+
-##0:=@?>?@???@:>?@??>?;?<
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GCCTAGCC.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/GCCTAGCC.barcode_1.fastq
deleted file mode 100644
index ea0f08d..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GCCTAGCC.barcode_1.fastq
+++ /dev/null
@@ -1,20 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1165:2239 :Y:0:GCCTAGCC
-GCCTAGCC
-+
-B@@DFFFF
- at machine1:HiMom:abcdeACXX:1:1101:1290:2225 :Y:0:GCCTAGCC
-GCCTAGCC
-+
-?<@DFBBD
- at machine1:HiMom:abcdeACXX:1:1201:1280:2179 :Y:0:GCCTAGCC
-GCCTAGCC
-+
-BCCFFFFF
- at machine1:HiMom:abcdeACXX:1:1201:1300:2137 :Y:0:GCCTAGCC
-GCCTAGCC
-+
-8?84B23?
- at machine1:HiMom:abcdeACXX:1:2101:1023:2237 :N:0:GCCTAGCC
-GCCTAGCC
-+
-########
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GTAACATC.1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/GTAACATC.1.fastq
deleted file mode 100644
index 6fed4dd..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GTAACATC.1.fastq
+++ /dev/null
@@ -1,8 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1188:2237 1:Y:0:GTAACATC
-TCCCCCTCCCTTTTGCGCACACACC
-+
-@?@DDADDHDHBDH<EFHIIHG?HF
- at machine1:HiMom:abcdeACXX:1:2101:1208:2231 1:N:0:GTAACATC
-TCACTAAACATCCAAACATCACTTT
-+
-#########################
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GTAACATC.2.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/GTAACATC.2.fastq
deleted file mode 100644
index a082c08..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GTAACATC.2.fastq
+++ /dev/null
@@ -1,8 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1188:2237 2:Y:0:GTAACATC
-GCTTCCTTCAAGACAGAAGTGAGAA
-+
-CCCFFDDEFHHFFE at FDHHAIAFHG
- at machine1:HiMom:abcdeACXX:1:2101:1208:2231 2:N:0:GTAACATC
-CTTTTTTTTTTTTTTTTTTTTTTTT
-+
-CCCFFFFFHHHHHJJJHFDDDDDDD
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GTAACATC.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/GTAACATC.barcode_1.fastq
deleted file mode 100644
index ae2eaa6..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GTAACATC.barcode_1.fastq
+++ /dev/null
@@ -1,8 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1188:2237 :Y:0:GTAACATC
-GTAACATC
-+
-@@?DFFDF
- at machine1:HiMom:abcdeACXX:1:2101:1208:2231 :N:0:GTAACATC
-GTAACATC
-+
-1+:A1A22
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GTCCACAG.1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/GTCCACAG.1.fastq
deleted file mode 100644
index fa99998..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GTCCACAG.1.fastq
+++ /dev/null
@@ -1,8 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1069:2159 1:Y:0:GTCCACAG
-TCCCTTACCATCAAATCAATTGNCC
-+
-CCCFFFFFHHHHHJJJJJJJJJ#3A
- at machine1:HiMom:abcdeACXX:1:1201:1486:2109 1:Y:0:GTCCACAG
-NCACCTCCTAGCCCCTCACTTCTGT
-+
-#1=B;BDDHHHGFIIIIIIIIIGGG
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GTCCACAG.2.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/GTCCACAG.2.fastq
deleted file mode 100644
index 7d3a59e..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GTCCACAG.2.fastq
+++ /dev/null
@@ -1,8 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1069:2159 2:Y:0:GTCCACAG
-GACGTNNNNNNNNNNNNNNNNNNNN
-+
-<<<@?####################
- at machine1:HiMom:abcdeACXX:1:1201:1486:2109 2:Y:0:GTCCACAG
-ACGTGTGCTCTTCCCGATCTGTATA
-+
-CCCFF?DDFBHHHJJIIDHJIJJJH
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GTCCACAG.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/GTCCACAG.barcode_1.fastq
deleted file mode 100644
index 6b60259..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GTCCACAG.barcode_1.fastq
+++ /dev/null
@@ -1,8 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1069:2159 :Y:0:GTCCACAG
-GTCCACAG
-+
- at BBFFFFF
- at machine1:HiMom:abcdeACXX:1:1201:1486:2109 :Y:0:GTCCACAG
-GTCCACAG
-+
-CCCFFFFD
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/N.1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/N.1.fastq
deleted file mode 100644
index dea46f1..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/N.1.fastq
+++ /dev/null
@@ -1,64 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1031:2224 1:N:0:
-NAATANNNNNNNNNNNNTNNNNNNN
-+
-#0;@@####################
- at machine1:HiMom:abcdeACXX:1:1101:1039:2147 1:N:0:
-NCCAANGNNGGNNNNATGTAANNNN
-+
-#4;@@#4##2<####43@@@@####
- at machine1:HiMom:abcdeACXX:1:1101:1046:2175 1:N:0:
-NTGCCNGNGTTNCGNGGTCTTNNNN
-+
-#4;@@####################
- at machine1:HiMom:abcdeACXX:1:1101:1047:2122 1:N:0:
-NCTAANGNACTNTGNGTGTGCNNNN
-+
-#0;@@#4#3@@#3@#2<@@@@####
- at machine1:HiMom:abcdeACXX:1:1101:1048:2197 1:N:0:
-NCTCCNGNTCANCANGTGGAGNNNN
-+
-#0;?@####################
- at machine1:HiMom:abcdeACXX:1:1101:1065:2193 1:Y:0:
-GAAGTACGCCCTGCCCCTGGTTNGC
-+
-?@@DAADAHHFHBEBEGGHG?####
- at machine1:HiMom:abcdeACXX:1:1101:1162:2207 1:N:0:
-ACCTTGAGGAGAACATAAGAGCAAA
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1201:1159:2179 1:N:0:
-GTTAGCACAGATATTGGATGAGTGA
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1201:1414:2174 1:N:0:
-GCCAAAAAAAAGAACCAGCCCAAGG
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:2101:1040:2208 1:N:0:
-NATGCCCACCTCCCTCCTACGCACC
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:2101:1059:2083 1:Y:0:
-NAAGAGGGGTCAAGAGTTAAACTTA
-+
-#1=DDFFFHFHHGIGHGHJJJJJJI
- at machine1:HiMom:abcdeACXX:1:2101:1143:2137 1:Y:0:
-ATGCAGCAGCTGCCACGGAGCACCA
-+
-CC at FFDFDFHFHHGIDHEHIGJJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1151:2182 1:N:0:
-TTGTTTTGGCTTATAATGACAAGAA
-+
-;;8-2).2())(<6=@8;?4??>>?
- at machine1:HiMom:abcdeACXX:1:2101:1215:2110 1:Y:0:
-NAATATAATTTGGAGACCCTTTGTT
-+
-#1=DDDDDEDDDDIDDBB3ABAB##
- at machine1:HiMom:abcdeACXX:1:2101:1285:2105 1:N:0:
-NGCGGGGAGCCGGGCGTGGAATGCG
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:2101:1450:2134 1:Y:0:
-AGCACGCTGCCGCGGGACCTGCCCA
-+
-?@@AD at DDHFH?DGIIIIG at FGFBF
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/N.2.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/N.2.fastq
deleted file mode 100644
index 27efd74..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/N.2.fastq
+++ /dev/null
@@ -1,64 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1031:2224 2:N:0:
-NNNNNNNNNNNNNNNNNNNNNNNNN
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1101:1039:2147 2:N:0:
-NNNNNNNNNNNNNNNNNNNNNNNNN
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1101:1046:2175 2:N:0:
-NNGGANNNNNNNNNNNNNNNNNNNN
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1101:1047:2122 2:N:0:
-NNTCANNNNNNNNNNNNNNNNNNNN
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1101:1048:2197 2:N:0:
-NNGTGNNNNNNNNNNNNNNNNNNNN
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1101:1065:2193 2:Y:0:
-NCTTGNNNNNNNNNNNNNNNNNNNN
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1101:1162:2207 2:N:0:
-TAAAACTGGGGAAGTTAGAGGAATG
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1201:1159:2179 2:N:0:
-TTTTTTTTTATTTTTCTAAATACTT
-+
-===AA####################
- at machine1:HiMom:abcdeACXX:1:1201:1414:2174 2:N:0:
-TTTTTTTTTTTTTTTTTTTTTTTTT
-+
-@;@1BDADF????FFEB>B6=BBBB
- at machine1:HiMom:abcdeACXX:1:2101:1040:2208 2:N:0:
-NCTGATAGTCACTGAAATGAATTCA
-+
-#-0=>(2 at .22@@############
- at machine1:HiMom:abcdeACXX:1:2101:1059:2083 2:Y:0:
-NGAATGTCTTAGAAGGATGCTTCTC
-+
-#1=BDDDEHHGHHJJJJJIJJIIJJ
- at machine1:HiMom:abcdeACXX:1:2101:1143:2137 2:Y:0:
-GCTCTTCAGATCTAGGGGGAACAGC
-+
-@@@DD?=DCAFFFHIIDG:EFHIII
- at machine1:HiMom:abcdeACXX:1:2101:1151:2182 2:N:0:
-TTTTTTTTTTTTTTTTTTTTTTTTA
-+
-9<<?@?@;5=?##############
- at machine1:HiMom:abcdeACXX:1:2101:1215:2110 2:Y:0:
-ATCTTTCCCCCATTAAGAACAGCAA
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:2101:1285:2105 2:N:0:
-TGTCTATATCAACCAACACCTCTTC
-+
--(0(():94:9:???##########
- at machine1:HiMom:abcdeACXX:1:2101:1450:2134 2:Y:0:
-ACAAACCCTTGTGTCGAGGGCTGAC
-+
-CC at FDFDFFDFHFGIIE1CGGHBGE
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/N.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/N.barcode_1.fastq
deleted file mode 100644
index d58da4a..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/N.barcode_1.fastq
+++ /dev/null
@@ -1,64 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1031:2224 :N:0:
-NNNNNNNN
-+
-########
- at machine1:HiMom:abcdeACXX:1:1101:1039:2147 :N:0:
-NNNNNNNN
-+
-########
- at machine1:HiMom:abcdeACXX:1:1101:1046:2175 :N:0:
-NNNNNNNN
-+
-########
- at machine1:HiMom:abcdeACXX:1:1101:1047:2122 :N:0:
-NNNANNNN
-+
-########
- at machine1:HiMom:abcdeACXX:1:1101:1048:2197 :N:0:
-NNNCNNNN
-+
-########
- at machine1:HiMom:abcdeACXX:1:1101:1065:2193 :Y:0:
-GAACGATN
-+
-########
- at machine1:HiMom:abcdeACXX:1:1101:1162:2207 :N:0:
-ACAAAATT
-+
-########
- at machine1:HiMom:abcdeACXX:1:1201:1159:2179 :N:0:
-AAAAAAAA
-+
-########
- at machine1:HiMom:abcdeACXX:1:1201:1414:2174 :N:0:
-AGAAAAGA
-+
-########
- at machine1:HiMom:abcdeACXX:1:2101:1040:2208 :N:0:
-ACGAAATC
-+
-########
- at machine1:HiMom:abcdeACXX:1:2101:1059:2083 :Y:0:
-TACCGTCT
-+
-1:?D####
- at machine1:HiMom:abcdeACXX:1:2101:1143:2137 :Y:0:
-TCCGTCTA
-+
-########
- at machine1:HiMom:abcdeACXX:1:2101:1151:2182 :N:0:
-GAAAAAAA
-+
-########
- at machine1:HiMom:abcdeACXX:1:2101:1215:2110 :Y:0:
-AAAAGAAG
-+
-########
- at machine1:HiMom:abcdeACXX:1:2101:1285:2105 :N:0:
-TATCTCGG
-+
-########
- at machine1:HiMom:abcdeACXX:1:2101:1450:2134 :Y:0:
-ACCAGTTG
-+
- at C@DDDB?
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TAAGCACA.1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/TAAGCACA.1.fastq
deleted file mode 100644
index 1a5e44a..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TAAGCACA.1.fastq
+++ /dev/null
@@ -1,8 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1201:1064:2239 1:Y:0:TAAGCACA
-CATGCAGCGCAAGTAGGTCTACAAG
-+
-@@;DFAFFHHHHAHEGHFDGGFABG
- at machine1:HiMom:abcdeACXX:1:2101:1258:2092 1:Y:0:TAAGCACA
-NCACACACACACTCATTCACAGCTT
-+
-#1=DDDFFHHHFHJJIJGGGIIGIJ
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TAAGCACA.2.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/TAAGCACA.2.fastq
deleted file mode 100644
index 74cfba7..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TAAGCACA.2.fastq
+++ /dev/null
@@ -1,8 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1201:1064:2239 2:Y:0:TAAGCACA
-GGGATGGGAGGGCGATGAGGACTAG
-+
-8?@:DDDACC:FHHGIH<EGDDDFH
- at machine1:HiMom:abcdeACXX:1:2101:1258:2092 2:Y:0:TAAGCACA
-TTAGACAAAACACCAAAATAAAATA
-+
-#########################
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TAAGCACA.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/TAAGCACA.barcode_1.fastq
deleted file mode 100644
index 05f34f1..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TAAGCACA.barcode_1.fastq
+++ /dev/null
@@ -1,8 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1201:1064:2239 :Y:0:TAAGCACA
-TAAGCACA
-+
-@@@FFADB
- at machine1:HiMom:abcdeACXX:1:2101:1258:2092 :Y:0:TAAGCACA
-TAAGCACA
-+
-@@CDDFFF
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TATCCAGG.1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/TATCCAGG.1.fastq
deleted file mode 100644
index 71e3a4a..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TATCCAGG.1.fastq
+++ /dev/null
@@ -1,16 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1071:2233 1:Y:0:TATCCAGG
-TTTGACAGTCTCTGAATGAGAANGG
-+
-CCCFFFFFHHHHHJIIIJJJIJ#4A
- at machine1:HiMom:abcdeACXX:1:1201:1140:2125 1:Y:0:TATCCAGG
-NTTTCAGTTCAGAGAACTGCAGAAT
-+
-#1=DBDFDHHHHGJIJJJJJIIIJI
- at machine1:HiMom:abcdeACXX:1:1201:1236:2187 1:Y:0:TATCCAGG
-TTTAAATGGGTAAGAAGCCCGGCTC
-+
- at BCDDFEFHHDHHJJJJJIJJIJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1133:2239 1:Y:0:TATCCAGG
-AGACAGAAGTACGGGAAGGCGAAGA
-+
-@@@FFFFEHFHHHJJCGDHIIECD@
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TATCCAGG.2.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/TATCCAGG.2.fastq
deleted file mode 100644
index 3751abf..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TATCCAGG.2.fastq
+++ /dev/null
@@ -1,16 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1071:2233 2:Y:0:TATCCAGG
-GTTTGNNNNNNNNNNNNNNNNNNNN
-+
-<<<@@####################
- at machine1:HiMom:abcdeACXX:1:1201:1140:2125 2:Y:0:TATCCAGG
-TTCATAAATTGGTCTTAGATGTTGC
-+
-CC at FFFFFHHHHFGIJIIIJIJIJJ
- at machine1:HiMom:abcdeACXX:1:1201:1236:2187 2:Y:0:TATCCAGG
-CTCCTTAGCGGATTCCGACTTCCAT
-+
-CCCFFFFDHHHHGIJJIGIGIJJGG
- at machine1:HiMom:abcdeACXX:1:2101:1133:2239 2:Y:0:TATCCAGG
-AGCTTTTTGTTTCCTAGCTTGTCTT
-+
-?@?DDFFFHHHHF4ACFHIJHHHGH
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TATCCAGG.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/TATCCAGG.barcode_1.fastq
deleted file mode 100644
index 177b1dd..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TATCCAGG.barcode_1.fastq
+++ /dev/null
@@ -1,16 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1071:2233 :Y:0:TATCCAGG
-TATCCAGG
-+
-CCCFFFFF
- at machine1:HiMom:abcdeACXX:1:1201:1140:2125 :Y:0:TATCCAGG
-TATCCAGG
-+
-CCCFFFFF
- at machine1:HiMom:abcdeACXX:1:1201:1236:2187 :Y:0:TATCCAGG
-TATCCAGG
-+
-@@BFFFFF
- at machine1:HiMom:abcdeACXX:1:2101:1133:2239 :Y:0:TATCCAGG
-TATCCATG
-+
-@@@BDDDF
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TATCTGCC.1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/TATCTGCC.1.fastq
deleted file mode 100644
index 7b209b1..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TATCTGCC.1.fastq
+++ /dev/null
@@ -1,28 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1267:2209 1:Y:0:TATCTGCC
-GAGACGGAGGCCAACGGGGGCCTGG
-+
-@@CFFFFD8FDHFHIGIBG?@BCDG
- at machine1:HiMom:abcdeACXX:1:1101:1353:2226 1:Y:0:TATCTGCC
-TTGCTTGTCTGTAAAGTATTTTATT
-+
- at C@DDFFDHHFHFHHIBGG>IHHII
- at machine1:HiMom:abcdeACXX:1:1101:1435:2194 1:Y:0:TATCTGCC
-GAGAAAGAACATGACTACAGAGATG
-+
-CCCFFFFFHHHHHJJJJJJJJJHJJ
- at machine1:HiMom:abcdeACXX:1:1201:1084:2204 1:Y:0:TATCTGCC
-GGCCCGTGGACGCCGCCGAAGAAGC
-+
-CCCFFFFFHHHHHJJJJJIJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1142:2242 1:Y:0:TATCTGCC
-TGTTGATAGTCCTTCTTATCTTAGT
-+
-???DB?==CC2<AC:CC<CFEF<FF
- at machine1:HiMom:abcdeACXX:1:1201:1187:2100 1:Y:0:TATCTGCC
-NGCGGTAATTCCAGCTCCAATAGCG
-+
-#1:BB2 at DHHFHHIIIIHHIIGHGG
- at machine1:HiMom:abcdeACXX:1:1201:1392:2109 1:Y:0:TATCTGCC
-NCTGAAGAGGCCAAAGCGCCCTCCA
-+
-#1=DDFFFHHHHHJJJJJJJJJJJI
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TATCTGCC.2.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/TATCTGCC.2.fastq
deleted file mode 100644
index 3e6c54a..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TATCTGCC.2.fastq
+++ /dev/null
@@ -1,28 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1267:2209 2:Y:0:TATCTGCC
-GGCAGAGTCTCCAACAGCCCCGTAC
-+
-=;?DDDD?CCFHAIIIGGIIGE at EG
- at machine1:HiMom:abcdeACXX:1:1101:1353:2226 2:Y:0:TATCTGCC
-GTGCTCTTCCGATCTTCAGGTTACC
-+
-BBBFFFFFHHHHHJJJJJJJIJJJJ
- at machine1:HiMom:abcdeACXX:1:1101:1435:2194 2:Y:0:TATCTGCC
-TTTTGTTTTCTTTTACTGAAGTGTA
-+
-CCCFFDFFHHHHHJJJJIHIJHHHJ
- at machine1:HiMom:abcdeACXX:1:1201:1084:2204 2:Y:0:TATCTGCC
-TGGCTCCTCAGGCTCTCATCAGTTG
-+
-CCCFFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1142:2242 2:Y:0:TATCTGCC
-GTAAAATGTAAAATAATAAAAAATG
-+
-?=?DDDD;AF<DF<FFFFIIIFF@<
- at machine1:HiMom:abcdeACXX:1:1201:1187:2100 2:Y:0:TATCTGCC
-AAAAAAGAGCCCGCATTGCCGAGAC
-+
-=<=;AA###################
- at machine1:HiMom:abcdeACXX:1:1201:1392:2109 2:Y:0:TATCTGCC
-GTCAGACAGGGGGATTTGGGCTGTG
-+
-BBCFFFFFHHHHHHJJJHIJIJJJJ
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TATCTGCC.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/TATCTGCC.barcode_1.fastq
deleted file mode 100644
index 4d597f4..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TATCTGCC.barcode_1.fastq
+++ /dev/null
@@ -1,28 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1267:2209 :Y:0:TATCTGCC
-TATCAGCC
-+
-?@@D;ADD
- at machine1:HiMom:abcdeACXX:1:1101:1353:2226 :Y:0:TATCTGCC
-TATCTGCC
-+
- at B@FFEFF
- at machine1:HiMom:abcdeACXX:1:1101:1435:2194 :Y:0:TATCTGCC
-TATCTGCC
-+
-CCCFFFFF
- at machine1:HiMom:abcdeACXX:1:1201:1084:2204 :Y:0:TATCTGCC
-TATCTGCC
-+
-CCCFFFFF
- at machine1:HiMom:abcdeACXX:1:1201:1142:2242 :Y:0:TATCTGCC
-TATCTGCC
-+
-??<D?D83
- at machine1:HiMom:abcdeACXX:1:1201:1187:2100 :Y:0:TATCTGCC
-TATCTGCC
-+
-CCCFFFFF
- at machine1:HiMom:abcdeACXX:1:1201:1392:2109 :Y:0:TATCTGCC
-TATCTGCC
-+
-CCCDF?DD
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TCGCTAGA.1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/TCGCTAGA.1.fastq
deleted file mode 100644
index 4613164..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TCGCTAGA.1.fastq
+++ /dev/null
@@ -1,20 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1143:2192 1:Y:0:TCGCTAGA
-GGAGCGAGTCTGGGTCTCAGCCCCG
-+
-CCCFFFFFHHHHHJGHIIIHJJJJI
- at machine1:HiMom:abcdeACXX:1:1101:1479:2221 1:Y:0:TCGCTAGA
-TGTAAAGTATGCTGGCTCAGTGTAT
-+
-BBBFDFFEHHHHHJJJJJJJIJHJJ
- at machine1:HiMom:abcdeACXX:1:1201:1312:2112 1:Y:0:TCGCTAGA
-NTCCCAGCGAACCCGCGTGCAACCT
-+
-#1=DFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1416:2128 1:Y:0:TCGCTAGA
-NACAGGCGTGGAGGAGGCGGCGGCC
-+
-#4=DDDFFHHHHHJIGJHFHHFFED
- at machine1:HiMom:abcdeACXX:1:2101:1064:2242 1:Y:0:TCGCTAGA
-ATGAACAAAGGAAGAATTATGCACG
-+
-?;?D;DDDF?;:+<<CFFCHE433A
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TCGCTAGA.2.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/TCGCTAGA.2.fastq
deleted file mode 100644
index 9f0f4fc..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TCGCTAGA.2.fastq
+++ /dev/null
@@ -1,20 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1143:2192 2:Y:0:TCGCTAGA
-CGACAAGTCTGGCTTATCACTCATC
-+
-CCCFFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1101:1479:2221 2:Y:0:TCGCTAGA
-GGGGAAATCTATTTTTATGTAAAAA
-+
- at CCFFFFFHHHHHJIGIJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1312:2112 2:Y:0:TCGCTAGA
-ATTTGCAGGAGCCGGCGCAGGTGCA
-+
-CCCFFFFFHHHHHJJJIJJJJGHIJ
- at machine1:HiMom:abcdeACXX:1:1201:1416:2128 2:Y:0:TCGCTAGA
-TTGGTGTGGAGGCGGTGGCGGGATC
-+
-@@@DDDDDHHFHHII:?GGHIIB6?
- at machine1:HiMom:abcdeACXX:1:2101:1064:2242 2:Y:0:TCGCTAGA
-NGGAAAAAGGTTGTCAAGCGTTAAA
-+
-#########################
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TCGCTAGA.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/TCGCTAGA.barcode_1.fastq
deleted file mode 100644
index e148256..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TCGCTAGA.barcode_1.fastq
+++ /dev/null
@@ -1,20 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1143:2192 :Y:0:TCGCTAGA
-TCGCTAGA
-+
-CCCFFFFF
- at machine1:HiMom:abcdeACXX:1:1101:1479:2221 :Y:0:TCGCTAGA
-TCGCTAGA
-+
- at BCFFFFF
- at machine1:HiMom:abcdeACXX:1:1201:1312:2112 :Y:0:TCGCTAGA
-TCGCTAGA
-+
-CCCFFFFF
- at machine1:HiMom:abcdeACXX:1:1201:1416:2128 :Y:0:TCGCTAGA
-TCGCTAGA
-+
-CCCFFFFF
- at machine1:HiMom:abcdeACXX:1:2101:1064:2242 :Y:0:TCGCTAGA
-TCGCTAGA
-+
-;@<:AA at A
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TCTGCAAG.1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/TCTGCAAG.1.fastq
deleted file mode 100644
index a34f51d..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TCTGCAAG.1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1201:1042:2174 1:Y:0:TCTGCAAG
-NGTTGGTGTCTTCATTTTATGTATA
-+
-#1=DDFDFHHHHHJIJJJHIJHIJJ
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TCTGCAAG.2.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/TCTGCAAG.2.fastq
deleted file mode 100644
index 4fda3b0..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TCTGCAAG.2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1201:1042:2174 2:Y:0:TCTGCAAG
-NTCAGGAAGGCNNCAAAAAAAGAAA
-+
-#0;@@@?@?<@##3<@@?@@?????
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TCTGCAAG.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/TCTGCAAG.barcode_1.fastq
deleted file mode 100644
index 5237cc1..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TCTGCAAG.barcode_1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1201:1042:2174 :Y:0:TCTGCAAG
-TCTGCAAG
-+
-CCCFFFFF
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TGCAAGTA.1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/TGCAAGTA.1.fastq
deleted file mode 100644
index 105fefa..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TGCAAGTA.1.fastq
+++ /dev/null
@@ -1,8 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1242:2170 1:Y:0:TGCAAGTA
-ATGGCAGGGCAGAGTTCTGATGAGT
-+
-CCCFFFFFHHGGGIFHEIIGIIII?
- at machine1:HiMom:abcdeACXX:1:2101:1163:2222 1:Y:0:TGCAAGTA
-GAGCAGGCAAGGAGGACTTCTTGTT
-+
-CCCFFFFFGHHHHJJHHIJJJJJIJ
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TGCAAGTA.2.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/TGCAAGTA.2.fastq
deleted file mode 100644
index 4e7ea3b..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TGCAAGTA.2.fastq
+++ /dev/null
@@ -1,8 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1242:2170 2:Y:0:TGCAAGTA
-GGAAGGAAAAGAAGCACAAGTACAT
-+
-@@@DFDFFHHHGHHGIIGJJEHHIG
- at machine1:HiMom:abcdeACXX:1:2101:1163:2222 2:Y:0:TGCAAGTA
-GAGCGATAATGGTTCTTTTCCTCAC
-+
-@@@DFFFFHHHHHJJJJJJJIJJJJ
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TGCAAGTA.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/TGCAAGTA.barcode_1.fastq
deleted file mode 100644
index ffe1705..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TGCAAGTA.barcode_1.fastq
+++ /dev/null
@@ -1,8 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1242:2170 :Y:0:TGCAAGTA
-TGCAAGTA
-+
-@@CFFF?D
- at machine1:HiMom:abcdeACXX:1:2101:1163:2222 :Y:0:TGCAAGTA
-TGCAAGTA
-+
-CCCFFFEF
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TGCTGCTG.1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/TGCTGCTG.1.fastq
deleted file mode 100644
index 8210bc4..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TGCTGCTG.1.fastq
+++ /dev/null
@@ -1,16 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1084:2136 1:Y:0:TGCTGCTG
-NTCTCACTGTGAATTTGTGGTGGGC
-+
-#1=DDFFFHHHHHJJJJGIJIJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1285:2100 1:Y:0:TGCTGCTG
-NAATGACATGTTTAAAGATGGACTC
-+
-#1:BDDFFHHFHHGIJIJIIIIGII
- at machine1:HiMom:abcdeACXX:1:2101:1162:2139 1:Y:0:TGCTGCTG
-AGAGGTGAAATTCTTGGACCGGCGC
-+
-@@@DDDDDHFHHHDB:EFHHCAG?D
- at machine1:HiMom:abcdeACXX:1:2101:1195:2150 1:Y:0:TGCTGCTG
-CCGAGAGAGTGAGAGCGCTCCTGGG
-+
-CCCFFFFFHFHHHJJJJIJJJJIJJ
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TGCTGCTG.2.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/TGCTGCTG.2.fastq
deleted file mode 100644
index 33f1fbc..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TGCTGCTG.2.fastq
+++ /dev/null
@@ -1,16 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1084:2136 2:Y:0:TGCTGCTG
-TTTCTNNNNNNNNNNNNNNNNNNNN
-+
-<<<@@####################
- at machine1:HiMom:abcdeACXX:1:1201:1285:2100 2:Y:0:TGCTGCTG
-GATCTTTTTTGCTTTGTAGTTATAG
-+
-@@@DFFFFHHHHHIIGIABCFFHBF
- at machine1:HiMom:abcdeACXX:1:2101:1162:2139 2:Y:0:TGCTGCTG
-ATCGTTTATGGTCGGAACTACGACG
-+
-BCCFFFFFHHHHHIJJJJJJJIJJI
- at machine1:HiMom:abcdeACXX:1:2101:1195:2150 2:Y:0:TGCTGCTG
-AATTGAACTTCACCACCCAGAGGAA
-+
-CCCFFFFFHHHHHJJJJJJIJJJJJ
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TGCTGCTG.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/TGCTGCTG.barcode_1.fastq
deleted file mode 100644
index af4fe61..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TGCTGCTG.barcode_1.fastq
+++ /dev/null
@@ -1,16 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1084:2136 :Y:0:TGCTGCTG
-TGCTGCTG
-+
-CCCFFFFF
- at machine1:HiMom:abcdeACXX:1:1201:1285:2100 :Y:0:TGCTGCTG
-TGCTGCTG
-+
-@@@FFFFF
- at machine1:HiMom:abcdeACXX:1:2101:1162:2139 :Y:0:TGCTGCTG
-TGCTGCTG
-+
-CCCFFFFF
- at machine1:HiMom:abcdeACXX:1:2101:1195:2150 :Y:0:TGCTGCTG
-TGCTGCTG
-+
-CCCFFFFF
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TGTAACTC.1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/TGTAACTC.1.fastq
deleted file mode 100644
index 4b08426..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TGTAACTC.1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1201:1421:2154 1:Y:0:TGTAACTC
-TGTGTGTGTGGGTGTGTGTATATAT
-+
-?@?DDFFFFFHH at GEFCCCHGIGJI
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TGTAACTC.2.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/TGTAACTC.2.fastq
deleted file mode 100644
index af29dc5..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TGTAACTC.2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1201:1421:2154 2:Y:0:TGTAACTC
-TGTGCTCTTCCGATCTTGTGCTCTT
-+
-BC at DFFFFHHHHHJJJJFHIHHIJJ
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TGTAACTC.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/TGTAACTC.barcode_1.fastq
deleted file mode 100644
index c1a6dc0..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TGTAACTC.barcode_1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1201:1421:2154 :Y:0:TGTAACTC
-TGTAACTC
-+
-@@@FFFFF
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TGTAATCA.1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/TGTAATCA.1.fastq
deleted file mode 100644
index b22ab5d..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TGTAATCA.1.fastq
+++ /dev/null
@@ -1,12 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1419:2119 1:Y:0:TGTAATCA
-NATGACTATGGTAACTGAAAGAAAA
-+
-#1:A1BDADBFFDFIIIEEHECACF
- at machine1:HiMom:abcdeACXX:1:1201:1208:2132 1:Y:0:TGTAATCA
-NCCTCAATGAGCGGCACTATGGGGG
-+
-#1=DDFFFHHHHGJJIJJGHIJGIJ
- at machine1:HiMom:abcdeACXX:1:1201:1344:2147 1:Y:0:TGTAATCA
-TATCCTCCCTACTATGCCTAGAAGG
-+
-=?@DADEFHBHDFG>EFGDHGFGHD
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TGTAATCA.2.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/TGTAATCA.2.fastq
deleted file mode 100644
index 4332332..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TGTAATCA.2.fastq
+++ /dev/null
@@ -1,12 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1419:2119 2:Y:0:TGTAATCA
-ACTTTCCTTTTTTGTTTTACTTTAA
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1201:1208:2132 2:Y:0:TGTAATCA
-CTGTAGAAAGGATGGTCGGGCTCCA
-+
-@@CDFFFFGHFHHJIJJGJIBHJJG
- at machine1:HiMom:abcdeACXX:1:1201:1344:2147 2:Y:0:TGTAATCA
-ACGATTAGTTTTAGCATTGGAGTAG
-+
-@<??DDDDFHHHFGGHHIIIGGAGH
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TGTAATCA.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/TGTAATCA.barcode_1.fastq
deleted file mode 100644
index aba2eaa..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TGTAATCA.barcode_1.fastq
+++ /dev/null
@@ -1,12 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1419:2119 :Y:0:TGTAATCA
-TGTAATCA
-+
-@@@DFDFD
- at machine1:HiMom:abcdeACXX:1:1201:1208:2132 :Y:0:TGTAATCA
-TGTAATCA
-+
-CC at FFFFF
- at machine1:HiMom:abcdeACXX:1:1201:1344:2147 :Y:0:TGTAATCA
-TGTAATCA
-+
-=?1AA:=D
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TTGTCTAT.1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/TTGTCTAT.1.fastq
deleted file mode 100644
index 9c4229b..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TTGTCTAT.1.fastq
+++ /dev/null
@@ -1,16 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1219:2164 1:Y:0:TTGTCTAT
-TCAAGCAGGAGCAGCTAAGTCCTAA
-+
-CCCFFFFFHHHHHJJJJJJHIJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1103:2184 1:Y:0:TTGTCTAT
-GTAAGAACTACCCTGGGTCCCCGTG
-+
-@@BFFFFFHHHHHJJJJGIJJJJHI
- at machine1:HiMom:abcdeACXX:1:1201:1107:2109 1:Y:0:TTGTCTAT
-NGGGAACCTGGCGCTAAACCATTCG
-+
-#1=DFFFFHHHHHJJJJJJJJJIJJ
- at machine1:HiMom:abcdeACXX:1:1201:1252:2141 1:Y:0:TTGTCTAT
-NTTCCCCCCATGTAATTATTGTGAA
-+
-#1=DDFFFHHHHHJJJJJJJJIJJJ
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TTGTCTAT.2.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/TTGTCTAT.2.fastq
deleted file mode 100644
index 1507d9d..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TTGTCTAT.2.fastq
+++ /dev/null
@@ -1,16 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1219:2164 2:Y:0:TTGTCTAT
-ATCTTATCCACTCCTTCCACTTTGG
-+
-CCCFFFFFHHHHHJJIJJJJJJJIJ
- at machine1:HiMom:abcdeACXX:1:1201:1103:2184 2:Y:0:TTGTCTAT
-AGAAGTTTCAGAATTGTGGCCCCAT
-+
-B at BFFDEFHHHHHJJJGHIJJJJJI
- at machine1:HiMom:abcdeACXX:1:1201:1107:2109 2:Y:0:TTGTCTAT
-ACAAACCCTTGTGTCGAGGGCTGAC
-+
-CCCFFFFFHHGHHJJJJIIJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1252:2141 2:Y:0:TTGTCTAT
-AGTTATTTTGCCTATGTCCAACAAG
-+
-BCBFFFFFGHHHHJIJJJJJJJJJJ
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TTGTCTAT.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/TTGTCTAT.barcode_1.fastq
deleted file mode 100644
index f81053d..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TTGTCTAT.barcode_1.fastq
+++ /dev/null
@@ -1,16 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1219:2164 :Y:0:TTGTCTAT
-TTGTCTAT
-+
-CCCFFFFF
- at machine1:HiMom:abcdeACXX:1:1201:1103:2184 :Y:0:TTGTCTAT
-TTGTCTAT
-+
- at CCFFFFF
- at machine1:HiMom:abcdeACXX:1:1201:1107:2109 :Y:0:TTGTCTAT
-TTGTCTAT
-+
-B at CFFFFF
- at machine1:HiMom:abcdeACXX:1:1201:1252:2141 :Y:0:TTGTCTAT
-TTGTCTAT
-+
-CCCFFFFF
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/nonBarcoded.1.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/nonBarcoded.1.fastq
deleted file mode 100644
index 9588f4b..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/nonBarcoded.1.fastq
+++ /dev/null
@@ -1,720 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1031:2224 1:N:0:
-NAATANNNNNNNNNNNNTNNNNNNN
-+
-#0;@@####################
- at machine1:HiMom:abcdeACXX:1:1101:1039:2147 1:N:0:
-NCCAANGNNGGNNNNATGTAANNNN
-+
-#4;@@#4##2<####43@@@@####
- at machine1:HiMom:abcdeACXX:1:1101:1046:2175 1:N:0:
-NTGCCNGNGTTNCGNGGTCTTNNNN
-+
-#4;@@####################
- at machine1:HiMom:abcdeACXX:1:1101:1047:2122 1:N:0:
-NCTAANGNACTNTGNGTGTGCNNNN
-+
-#0;@@#4#3@@#3@#2<@@@@####
- at machine1:HiMom:abcdeACXX:1:1101:1048:2197 1:N:0:
-NCTCCNGNTCANCANGTGGAGNNNN
-+
-#0;?@####################
- at machine1:HiMom:abcdeACXX:1:1101:1065:2193 1:Y:0:
-GAAGTACGCCCTGCCCCTGGTTNGC
-+
-?@@DAADAHHFHBEBEGGHG?####
- at machine1:HiMom:abcdeACXX:1:1101:1069:2159 1:Y:0:
-TCCCTTACCATCAAATCAATTGNCC
-+
-CCCFFFFFHHHHHJJJJJJJJJ#3A
- at machine1:HiMom:abcdeACXX:1:1101:1071:2233 1:Y:0:
-TTTGACAGTCTCTGAATGAGAANGG
-+
-CCCFFFFFHHHHHJIIIJJJIJ#4A
- at machine1:HiMom:abcdeACXX:1:1101:1083:2193 1:Y:0:
-TTCTACCTCACCTTAGGGAGAAGAC
-+
-@@@DDBDDD>F><C<4CG?EHGHIG
- at machine1:HiMom:abcdeACXX:1:1101:1084:2136 1:Y:0:
-NTCTCACTGTGAATTTGTGGTGGGC
-+
-#1=DDFFFHHHHHJJJJGIJIJJJJ
- at machine1:HiMom:abcdeACXX:1:1101:1089:2172 1:Y:0:
-TTCCAGCATGCGGTTTAAGTAGGAT
-+
- at CCFDFDBDFBF:<CEBHAFHHICH
- at machine1:HiMom:abcdeACXX:1:1101:1100:2207 1:Y:0:
-ACGACAGACGTTCTTTCTTTGCTGC
-+
-CCCFFFFFHHFHHJIJJJJJHIJJH
- at machine1:HiMom:abcdeACXX:1:1101:1111:2148 1:Y:0:
-GTGGAGACCACCTCCGAGGCCTTGT
-+
-BBCFFFFFHHHHHJJJIJJJJJJJI
- at machine1:HiMom:abcdeACXX:1:1101:1138:2141 1:Y:0:
-NTTACCAAGGTTTTCTGTTTAGTGA
-+
-#1=DDFFFHHFHHJJJIHJIJJJJJ
- at machine1:HiMom:abcdeACXX:1:1101:1140:2120 1:Y:0:
-NCCCCAACATTCTAATTATGCCTCA
-+
-#1:BDFFDHFFDFIJJJIIJIIIII
- at machine1:HiMom:abcdeACXX:1:1101:1143:2192 1:Y:0:
-GGAGCGAGTCTGGGTCTCAGCCCCG
-+
-CCCFFFFFHHHHHJGHIIIHJJJJI
- at machine1:HiMom:abcdeACXX:1:1101:1150:2228 1:Y:0:
-GCTACTCAGTAGACAGTCCCACCCT
-+
-@@CADDDDFCFHHIIIIGGIIGGGI
- at machine1:HiMom:abcdeACXX:1:1101:1157:2135 1:Y:0:
-NGGACATTGTAATCATTTCTTACAA
-+
-#1=DD?DDHHHHHGGHIIIIIIIII
- at machine1:HiMom:abcdeACXX:1:1101:1162:2207 1:N:0:
-ACCTTGAGGAGAACATAAGAGCAAA
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1101:1165:2239 1:Y:0:
-GGCGGAGGCAGCATTTCAGCTGTGA
-+
-CCCFFDFFHHHHHIJJIGHHHJHHF
- at machine1:HiMom:abcdeACXX:1:1101:1175:2197 1:Y:0:
-CCCCTGAGGACACCATCCCACTCCA
-+
-CCCFFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1101:1188:2237 1:Y:0:
-TCCCCCTCCCTTTTGCGCACACACC
-+
-@?@DDADDHDHBDH<EFHIIHG?HF
- at machine1:HiMom:abcdeACXX:1:1101:1197:2200 1:Y:0:
-GGGCGCCCCGTGAGGACCCAGTCCT
-+
- at C@FFADDFFCFCEHIIJIJJIEFC
- at machine1:HiMom:abcdeACXX:1:1101:1206:2126 1:Y:0:
-NATTCTGCCATATTGGTCCGACAGT
-+
-#1=DDFFFHHHHHJJJJJJJJJIJJ
- at machine1:HiMom:abcdeACXX:1:1101:1212:2230 1:Y:0:
-TTTCTATTAGCTCTTAGTAAGATTA
-+
-CCCFFFFFHHHHHJJJIJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1101:1218:2200 1:Y:0:
-GCACCGGAAGAGCACACAGATCGGA
-+
-CCCFFFFDFHGHHJJIJIJJJJJJI
- at machine1:HiMom:abcdeACXX:1:1101:1219:2164 1:Y:0:
-TCAAGCAGGAGCAGCTAAGTCCTAA
-+
-CCCFFFFFHHHHHJJJJJJHIJJJJ
- at machine1:HiMom:abcdeACXX:1:1101:1221:2143 1:Y:0:
-TTTGGTGGAAATTTTTTGTTATGAT
-+
-CCCFFBDBHFD?FBFHIIGGIC at EF
- at machine1:HiMom:abcdeACXX:1:1101:1236:2121 1:Y:0:
-NGGTGCTTCATATCCCTCTAGAGGA
-+
-#1=BDDFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1101:1242:2170 1:Y:0:
-ATGGCAGGGCAGAGTTCTGATGAGT
-+
-CCCFFFFFHHGGGIFHEIIGIIII?
- at machine1:HiMom:abcdeACXX:1:1101:1257:2223 1:Y:0:
-TGTATTCGAGAGATCAAAGAGAGAG
-+
-@@=DDBDD?FFHHEIDBDFCEDBAF
- at machine1:HiMom:abcdeACXX:1:1101:1259:2152 1:Y:0:
-CACCTATAATCCCAGCTACTCCAGA
-+
-CCCFFFFFHHHHHJJJJJJIJJJIJ
- at machine1:HiMom:abcdeACXX:1:1101:1261:2127 1:N:0:
-NTGAAATCTGGATAGGCTGGAGTTA
-+
-#0-@@@###################
- at machine1:HiMom:abcdeACXX:1:1101:1263:2236 1:N:0:
-CTTTGAAGACATTGTGAGATCTGTA
-+
-<==A<42 at C+A4A?,2A@=4 at 7A??
- at machine1:HiMom:abcdeACXX:1:1101:1267:2209 1:Y:0:
-GAGACGGAGGCCAACGGGGGCCTGG
-+
-@@CFFFFD8FDHFHIGIBG?@BCDG
- at machine1:HiMom:abcdeACXX:1:1101:1269:2170 1:Y:0:
-ACAGTGTGGGAGGCAGACGAAGAGA
-+
-@@@DDDDDFA:C at EGA?FD<FFHII
- at machine1:HiMom:abcdeACXX:1:1101:1290:2225 1:Y:0:
-CTTGGGCGCATGGTGAGGGAGGGAG
-+
-@@@FFDDFHDFH??CBEBHHIGDCD
- at machine1:HiMom:abcdeACXX:1:1101:1291:2150 1:Y:0:
-CGTGGGGAACCTGGCGCTAAACCAT
-+
- at BBFFFFFHHHHHJJJJIJJJJJIJ
- at machine1:HiMom:abcdeACXX:1:1101:1302:2244 1:Y:0:
-GGAAAAGACGGAAAGGTTCTATCTC
-+
- at C@DFFFDFHHHHJIJHHIJJJJJI
- at machine1:HiMom:abcdeACXX:1:1101:1308:2153 1:N:0:
-TTTTGGAAGAGACCTCAATTACTGT
-+
-???DDDDD?:22AE:A2<3,AF?3A
- at machine1:HiMom:abcdeACXX:1:1101:1309:2210 1:Y:0:
-ACACCAACCACCCAACTATCTATAA
-+
-CCCFFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1101:1314:2233 1:Y:0:
-GTTTATTGGGGCATTCCTTATCCCA
-+
-@??DDDDBDHF>FCHGGGBFAAED9
- at machine1:HiMom:abcdeACXX:1:1101:1316:2126 1:Y:0:
-NAAAAAAAAAAAAAAAAAAAAAAAA
-+
-#1BDFFFFHHHHHJJJJFDDDDDDD
- at machine1:HiMom:abcdeACXX:1:1101:1327:2200 1:N:0:
-AGGGGGATCCGCCGGGGGACCACAA
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1101:1328:2225 1:Y:0:
-GAAATGCATCTGTCTTAGAAACTGG
-+
-??@=BDDDFDD<<,<2:C<F:FFEA
- at machine1:HiMom:abcdeACXX:1:1101:1338:2175 1:Y:0:
-CCCACCTTCCGGCGGCCGAAGACAC
-+
-CCCFFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1101:1347:2149 1:Y:0:
-GAGCAGATCGGAAGAGCACAGATCG
-+
-@@@FFDDDHHHHHIJJBGGHJIHEG
- at machine1:HiMom:abcdeACXX:1:1101:1353:2226 1:Y:0:
-TTGCTTGTCTGTAAAGTATTTTATT
-+
- at C@DDFFDHHFHFHHIBGG>IHHII
- at machine1:HiMom:abcdeACXX:1:1101:1363:2138 1:Y:0:
-NGTCTGGCCTGCACAGACATCCTAC
-+
-#1=DDFFFHHHHHJJJIJJIJJJIJ
- at machine1:HiMom:abcdeACXX:1:1101:1399:2128 1:Y:0:
-NTGCCCTTCGTCCTGGGAAACGGGG
-+
-#1BDFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1101:1403:2194 1:Y:0:
-CTAAACAGAGAGAAGGTTTCTCTTT
-+
-CCCFFFFFHHHHHJJJFHIJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1101:1406:2222 1:Y:0:
-CTCCCCCCGGGCTGAACCAGGGTAC
-+
-CCCFFDDDDHDFHIIIIIIIII9DG
- at machine1:HiMom:abcdeACXX:1:1101:1419:2119 1:Y:0:
-NATGACTATGGTAACTGAAAGAAAA
-+
-#1:A1BDADBFFDFIIIEEHECACF
- at machine1:HiMom:abcdeACXX:1:1101:1420:2213 1:Y:0:
-TACCTGGTTGATCCTGCCAGTAGCA
-+
-@@CFFFFDDHHGHJGGHIJJIHGBH
- at machine1:HiMom:abcdeACXX:1:1101:1435:2194 1:Y:0:
-GAGAAAGAACATGACTACAGAGATG
-+
-CCCFFFFFHHHHHJJJJJJJJJHJJ
- at machine1:HiMom:abcdeACXX:1:1101:1441:2148 1:Y:0:
-ACTTTCACCGCTACACGACCGGGGG
-+
-CCCFFFFFHGFFHIIFIHJIGGII>
- at machine1:HiMom:abcdeACXX:1:1101:1452:2132 1:Y:0:
-NCGTCCTGGAAAACGGGGCGCGGCT
-+
-#1=BDBDDFHHHHF at FHDHIGIIII
- at machine1:HiMom:abcdeACXX:1:1101:1460:2176 1:Y:0:
-AGTCCAGGCTGAGCCCAGGGAAGAA
-+
-CCCFFFFFHHHHGJIJJIJJHIJJI
- at machine1:HiMom:abcdeACXX:1:1101:1479:2221 1:Y:0:
-TGTAAAGTATGCTGGCTCAGTGTAT
-+
-BBBFDFFEHHHHHJJJJJJJIJHJJ
- at machine1:HiMom:abcdeACXX:1:1101:1491:2120 1:Y:0:
-NGGCAGGTGCCCCCACTTGACTCTC
-+
-#1?DFFFFGHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1018:2133 1:Y:0:
-NAAAACTTGAGGATGCTATGCAAGC
-+
-#1:B:ADDDDDDDEEAEBF9FFEBF
- at machine1:HiMom:abcdeACXX:1:1201:1018:2217 1:N:0:
-NTTTCTCTGGGCGCAAAGATGTTCA
-+
-#07;8=8<<99(:=@@/@7>>6=?>
- at machine1:HiMom:abcdeACXX:1:1201:1028:2202 1:Y:0:
-NTCCTGGGAAACGGGGCGCGGCTGG
-+
-#4BDDDFFHHHHHIJIIJJJJJJIJ
- at machine1:HiMom:abcdeACXX:1:1201:1042:2174 1:Y:0:
-NGTTGGTGTCTTCATTTTATGTATA
-+
-#1=DDFDFHHHHHJIJJJHIJHIJJ
- at machine1:HiMom:abcdeACXX:1:1201:1043:2246 1:Y:0:
-NTTCTCGGCTGTCATGTGCAACATT
-+
-#1=DDBDFHHHDFFBHGHGHIIJEH
- at machine1:HiMom:abcdeACXX:1:1201:1045:2105 1:N:0:
-NTAAAGAGAAATCAAGAATACTATT
-+
-#-4@?(@)@@###############
- at machine1:HiMom:abcdeACXX:1:1201:1054:2151 1:Y:0:
-NTAGTGCTGGGCACTAAGTAATACC
-+
-#4=DDDFFHHHHHJJJJJHIJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1064:2239 1:Y:0:
-CATGCAGCGCAAGTAGGTCTACAAG
-+
-@@;DFAFFHHHHAHEGHFDGGFABG
- at machine1:HiMom:abcdeACXX:1:1201:1073:2225 1:Y:0:
-GGGGCTGAGACCTTTGCTGATGGTG
-+
-@@@FFFFFHHHGHJJJJJIIIGICH
- at machine1:HiMom:abcdeACXX:1:1201:1083:2121 1:Y:0:
-NAGAACTGGCGCTGCGGGATGAACC
-+
-#1=BDFFFHHHHHJJJJJHIJIJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1084:2204 1:Y:0:
-GGCCCGTGGACGCCGCCGAAGAAGC
-+
-CCCFFFFFHHHHHJJJJJIJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1095:2146 1:Y:0:
-GCTGAGTCATGTAGTAAGCCTGTGC
-+
-BB at FDDDFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1103:2184 1:Y:0:
-GTAAGAACTACCCTGGGTCCCCGTG
-+
-@@BFFFFFHHHHHJJJJGIJJJJHI
- at machine1:HiMom:abcdeACXX:1:1201:1107:2109 1:Y:0:
-NGGGAACCTGGCGCTAAACCATTCG
-+
-#1=DFFFFHHHHHJJJJJJJJJIJJ
- at machine1:HiMom:abcdeACXX:1:1201:1118:2198 1:Y:0:
-CAAGTGTACAGGATTAGACTGGGTT
-+
-BCCFDEBDHHHHHIJJJGIIIJJGH
- at machine1:HiMom:abcdeACXX:1:1201:1122:2227 1:Y:0:
-AGAAGACGAGGCTGAGAGTGACATC
-+
-@@@FFFFFHHHDHJGHGHCHHJJIJ
- at machine1:HiMom:abcdeACXX:1:1201:1123:2161 1:N:0:
-CACTAACTCCTGACCTCAAATAATC
-+
-?7?=DD?DD+CDBE>E at EEF@+<CF
- at machine1:HiMom:abcdeACXX:1:1201:1127:2112 1:N:0:
-NGTCAAGGATGTTCGTCGTGGCAAC
-+
-#1=BDDDDDDDDDID<AE?@<CEEE
- at machine1:HiMom:abcdeACXX:1:1201:1134:2144 1:Y:0:
-TGCCAGGAAGTGTTTTTTCTGGGTC
-+
- at CCFFEFFHHFFFGIJJJJJJJJGH
- at machine1:HiMom:abcdeACXX:1:1201:1138:2227 1:N:0:
-GCTGACACAATCTCTTCCGCCTGGT
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1201:1140:2125 1:Y:0:
-NTTTCAGTTCAGAGAACTGCAGAAT
-+
-#1=DBDFDHHHHGJIJJJJJIIIJI
- at machine1:HiMom:abcdeACXX:1:1201:1142:2242 1:Y:0:
-TGTTGATAGTCCTTCTTATCTTAGT
-+
-???DB?==CC2<AC:CC<CFEF<FF
- at machine1:HiMom:abcdeACXX:1:1201:1150:2161 1:Y:0:
-AAGTCACCTAATATCTTTTTTTTTT
-+
-@@<??;?D?CFD,A4CDDHFBIIID
- at machine1:HiMom:abcdeACXX:1:1201:1159:2179 1:N:0:
-GTTAGCACAGATATTGGATGAGTGA
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1201:1160:2109 1:Y:0:
-NAGAAGCCTTTGCACCCTGGGAGGA
-+
-#1=DDDFFHHHHHJJJJJJJJIIJJ
- at machine1:HiMom:abcdeACXX:1:1201:1180:2119 1:Y:0:
-NTGAAAGATTTAGAGAGCTTACAAA
-+
-#1=DDDDDHHHGHJJIIJJJJIJJI
- at machine1:HiMom:abcdeACXX:1:1201:1185:2143 1:Y:0:
-ATCTGCCTGGTTCGGCCCGCCTGCC
-+
-CCCFFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1187:2100 1:Y:0:
-NGCGGTAATTCCAGCTCCAATAGCG
-+
-#1:BB2 at DHHFHHIIIIHHIIGHGG
- at machine1:HiMom:abcdeACXX:1:1201:1190:2194 1:Y:0:
-AACCTGGCGCTAAACCATTCGTAGA
-+
-CCCFFFFFHHHHHJJJJJJJJIJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1204:2228 1:Y:0:
-CCGATACGCTGAGTGTGGTTTGCGG
-+
-CCCFFFFFHHHFHEGGHIHIJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1208:2132 1:Y:0:
-NCCTCAATGAGCGGCACTATGGGGG
-+
-#1=DDFFFHHHHGJJIJJGHIJGIJ
- at machine1:HiMom:abcdeACXX:1:1201:1219:2115 1:Y:0:
-NTATAGTGGAGGCCGGAGCAGGAAC
-+
-#1:DABADHHHFHIIIGGHGIIIII
- at machine1:HiMom:abcdeACXX:1:1201:1236:2187 1:Y:0:
-TTTAAATGGGTAAGAAGCCCGGCTC
-+
- at BCDDFEFHHDHHJJJJJIJJIJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1242:2207 1:Y:0:
-ATGGCAAAGTGGTGTCTGAGACCAA
-+
-BCCFFFFFGHHHHHIIIJFHIJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1252:2141 1:Y:0:
-NTTCCCCCCATGTAATTATTGTGAA
-+
-#1=DDFFFHHHHHJJJJJJJJIJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1260:2165 1:Y:0:
-GGACACGGACAGGATTGACAGATTG
-+
-BCBFFFFFHHHHHHIIJHIIIFHIJ
- at machine1:HiMom:abcdeACXX:1:1201:1280:2179 1:Y:0:
-TTCAAGGAATCGTCCTGCCTCAGCC
-+
-BCCFFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1281:2133 1:Y:0:
-NGGAAATCCAGAAAACATAGAAGAT
-+
-#1=DDFFFHHHHHIJJJJJJJJIJJ
- at machine1:HiMom:abcdeACXX:1:1201:1285:2100 1:Y:0:
-NAATGACATGTTTAAAGATGGACTC
-+
-#1:BDDFFHHFHHGIJIJIIIIGII
- at machine1:HiMom:abcdeACXX:1:1201:1291:2158 1:Y:0:
-AGAAGGGGAAAGCCTTCATCTTGGC
-+
-BCBFFFFFHHHHHJJJJJIIFIJIJ
- at machine1:HiMom:abcdeACXX:1:1201:1300:2137 1:Y:0:
-NTGTAATCCCAGCTCTCAGGGAGGC
-+
-#1=ADDDDDDDBBA?@AE?E at FE8;
- at machine1:HiMom:abcdeACXX:1:1201:1312:2112 1:Y:0:
-NTCCCAGCGAACCCGCGTGCAACCT
-+
-#1=DFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1331:2162 1:Y:0:
-ACGCTCGGCTAATTTTTGTATTTTT
-+
- at CCFFFDFHHHHHIJJJJHIJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1341:2116 1:Y:0:
-NAGAAGCCCCAGGAGGAAGACAGTC
-+
-#1=DDFFFHHHHHHHJIIJJJJJGI
- at machine1:HiMom:abcdeACXX:1:1201:1344:2147 1:Y:0:
-TATCCTCCCTACTATGCCTAGAAGG
-+
-=?@DADEFHBHDFG>EFGDHGFGHD
- at machine1:HiMom:abcdeACXX:1:1201:1345:2181 1:Y:0:
-GGATAATCCTATTTATTACCTCAGA
-+
-BBBDDFFFHHHHHJJJJJJJJJIJJ
- at machine1:HiMom:abcdeACXX:1:1201:1364:2113 1:Y:0:
-NCACTCATTTTCTTATGTGGGATAT
-+
-#1=DDFDFHHHHHIJJIFHIIHHHI
- at machine1:HiMom:abcdeACXX:1:1201:1392:2109 1:Y:0:
-NCTGAAGAGGCCAAAGCGCCCTCCA
-+
-#1=DDFFFHHHHHJJJJJJJJJJJI
- at machine1:HiMom:abcdeACXX:1:1201:1392:2184 1:Y:0:
-TTTCAGATTGGTCATTGTTAGTGTA
-+
-??@BDDDEHBHADHHIIEHDHFHFF
- at machine1:HiMom:abcdeACXX:1:1201:1393:2143 1:Y:0:
-TGGTTGATCCTGCCAGTAGCATATG
-+
-@@@ADADDFHFFDBHE?G at HIIIEE
- at machine1:HiMom:abcdeACXX:1:1201:1414:2174 1:N:0:
-GCCAAAAAAAAGAACCAGCCCAAGG
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1201:1416:2128 1:Y:0:
-NACAGGCGTGGAGGAGGCGGCGGCC
-+
-#4=DDDFFHHHHHJIGJHFHHFFED
- at machine1:HiMom:abcdeACXX:1:1201:1421:2154 1:Y:0:
-TGTGTGTGTGGGTGTGTGTATATAT
-+
-?@?DDFFFFFHH at GEFCCCHGIGJI
- at machine1:HiMom:abcdeACXX:1:1201:1439:2156 1:Y:0:
-AGCCGCGAGGTGCTGGCGGACTTCC
-+
-:;1BDDDAA88A<?<E1C:D#####
- at machine1:HiMom:abcdeACXX:1:1201:1452:2143 1:Y:0:
-TATCCCCTCTAAGACGGACCTGGGT
-+
-CCCFFFFFHHHHHJJIIIJJJJJJG
- at machine1:HiMom:abcdeACXX:1:1201:1458:2109 1:Y:0:
-NGAGACCATAGAGCGGATGCTTTCA
-+
-#1=DDDFFHHGHGIJJIGIIJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1472:2121 1:N:0:
-NTAAAGTGTGAACAAGGAAGGTCAT
-+
-#07>@<9=@################
- at machine1:HiMom:abcdeACXX:1:1201:1483:2126 1:N:0:
-NTGATAAGGTGTTGCTATGTTACCC
-+
-#1:D?DDDDA??2:<CC4:AEDF>?
- at machine1:HiMom:abcdeACXX:1:1201:1486:2109 1:Y:0:
-NCACCTCCTAGCCCCTCACTTCTGT
-+
-#1=B;BDDHHHGFIIIIIIIIIGGG
- at machine1:HiMom:abcdeACXX:1:1201:1486:2146 1:N:0:
-GTTCTCTGTCCCCAGGTCCTGTCTC
-+
-===A7<7222<<=C=?+<7>@?ACB
- at machine1:HiMom:abcdeACXX:1:2101:1011:2102 1:Y:0:
-NAAACAAAACTGTAGAACTGTGTAT
-+
-#1=DDFFFHHHHHJJIJJJIHHHJJ
- at machine1:HiMom:abcdeACXX:1:2101:1013:2146 1:Y:0:
-NACACTGCTGCAGATGACAAGCAGC
-+
-#4BDFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1021:2209 1:Y:0:
-NGGCCCCACCCTCCTCCAGCACGTC
-+
-#1=DDFFFHHHHHJJJJJJHIIHFH
- at machine1:HiMom:abcdeACXX:1:2101:1023:2237 1:N:0:
-NTAAACAGCTTCTGCACAGCCAAAG
-+
-#00@@?>=39>9;<412@?######
- at machine1:HiMom:abcdeACXX:1:2101:1031:2163 1:Y:0:
-NTTTCCATGGCCGTCACCTTTGGGT
-+
-#4=DDFFFHHHHHJJJJJJJJJJJI
- at machine1:HiMom:abcdeACXX:1:2101:1036:2087 1:Y:0:
-NTGTAGTTTCTTTAGGCAAATTTGT
-+
-#4=BDDDFHHHHHJJJJJJIIJJJI
- at machine1:HiMom:abcdeACXX:1:2101:1040:2208 1:N:0:
-NATGCCCACCTCCCTCCTACGCACC
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:2101:1048:2238 1:Y:0:
-NCTGCCGTGTCCTGACTTCTGGAAT
-+
-#1:B?ADDACF<DCG;EG<FHH at CE
- at machine1:HiMom:abcdeACXX:1:2101:1054:2162 1:Y:0:
-NCCAGGTGTCTTCCCGGGCCCTGCC
-+
-#1=DDFBDFHHHHJJJJJIJJJJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1059:2083 1:Y:0:
-NAAGAGGGGTCAAGAGTTAAACTTA
-+
-#1=DDFFFHFHHGIGHGHJJJJJJI
- at machine1:HiMom:abcdeACXX:1:2101:1063:2206 1:Y:0:
-TCCTATTCGCCTACACAATTCTCCG
-+
-CCCFFFFFHHHHHJJJJJJJHJJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1064:2242 1:Y:0:
-ATGAACAAAGGAAGAATTATGCACG
-+
-?;?D;DDDF?;:+<<CFFCHE433A
- at machine1:HiMom:abcdeACXX:1:2101:1072:2170 1:Y:0:
-ATCACCGCACTCATTTCCCGCTTCC
-+
-CCCFFFFFHHHACEEGHIIBHIIII
- at machine1:HiMom:abcdeACXX:1:2101:1077:2139 1:Y:0:
-CACAGGCTTCCACGGACTTAACGTC
-+
-CCCFFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1084:2188 1:Y:0:
-TTGCTGCATGGGTTAATTGAGAATA
-+
-CCCFFFFFHHHHFHHIIJJIJJJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1100:2085 1:Y:0:
-NCACATGGATGAGGAGAATGAGGAT
-+
-#1=DDFFFFHHHHJHIGIHHHIJEH
- at machine1:HiMom:abcdeACXX:1:2101:1102:2221 1:Y:0:
-TTTCATCTTATTTCATTGGTTTATA
-+
-CCCFFFFFHHHHHJIJJJJIJJJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1105:2131 1:Y:0:
-TTGGAACACAGCGGGAATCACAGCA
-+
-CCCFFFFFHHHHHJIJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1112:2245 1:Y:0:
-TGCCATCTGCTCTGGGAAGCACCAG
-+
-1:=DDDDDFBC:DEFIFFFIEF at BE
- at machine1:HiMom:abcdeACXX:1:2101:1122:2136 1:Y:0:
-GTAGGCGCTCAGCAAATACTTGTCG
-+
-@@@DDDD8?<CACEHHBBHDAAFH@
- at machine1:HiMom:abcdeACXX:1:2101:1123:2095 1:Y:0:
-NTGGACAACATGTTCGAGAGCTACA
-+
-#1=BBDDDFFFFDGFGIG?F;HHFI
- at machine1:HiMom:abcdeACXX:1:2101:1126:2082 1:Y:0:
-NGTTTTAGGGGTGCGCAGGAGTCAA
-+
-#11=A=DD?DF at D@CCGHIEFH at BG
- at machine1:HiMom:abcdeACXX:1:2101:1133:2239 1:Y:0:
-AGACAGAAGTACGGGAAGGCGAAGA
-+
-@@@FFFFEHFHHHJJCGDHIIECD@
- at machine1:HiMom:abcdeACXX:1:2101:1143:2137 1:Y:0:
-ATGCAGCAGCTGCCACGGAGCACCA
-+
-CC at FFDFDFHFHHGIDHEHIGJJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1151:2182 1:N:0:
-TTGTTTTGGCTTATAATGACAAGAA
-+
-;;8-2).2())(<6=@8;?4??>>?
- at machine1:HiMom:abcdeACXX:1:2101:1151:2236 1:N:0:
-TTAAAGAGGTTCAGGGATGCAGAGT
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:2101:1162:2139 1:Y:0:
-AGAGGTGAAATTCTTGGACCGGCGC
-+
-@@@DDDDDHFHHHDB:EFHHCAG?D
- at machine1:HiMom:abcdeACXX:1:2101:1163:2203 1:Y:0:
-TCTCCATGTGAAACAAGCAAAAAGA
-+
-CCCFFFFFHHHHGJJJIJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1163:2222 1:Y:0:
-GAGCAGGCAAGGAGGACTTCTTGTT
-+
-CCCFFFFFGHHHHJJHHIJJJJJIJ
- at machine1:HiMom:abcdeACXX:1:2101:1172:2152 1:N:0:
-AACACGGACAAAGGAGTCTAACACG
-+
-<<<??8@@#################
- at machine1:HiMom:abcdeACXX:1:2101:1186:2093 1:Y:0:
-NCGACCATAAACGATGCCGACCGGC
-+
-#4=DFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1188:2195 1:Y:0:
-TTAGACCGTCGTGAGACAGGTTAGT
-+
- at CCFFFFFHHHHHJJJJJIIEHIJH
- at machine1:HiMom:abcdeACXX:1:2101:1195:2150 1:Y:0:
-CCGAGAGAGTGAGAGCGCTCCTGGG
-+
-CCCFFFFFHFHHHJJJJIJJJJIJJ
- at machine1:HiMom:abcdeACXX:1:2101:1207:2084 1:N:0:
-NTAGATGACCAAAACTTGCAGGGCA
-+
-#1:A<?@A+7A=?CBCCBCCBAAAA
- at machine1:HiMom:abcdeACXX:1:2101:1208:2231 1:N:0:
-TCACTAAACATCCAAACATCACTTT
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:2101:1215:2110 1:Y:0:
-NAATATAATTTGGAGACCCTTTGTT
-+
-#1=DDDDDEDDDDIDDBB3ABAB##
- at machine1:HiMom:abcdeACXX:1:2101:1216:2172 1:Y:0:
-TTTCTTCGCAGGATTTTTCTGAGCC
-+
-CCCFFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1216:2193 1:Y:0:
-TTTTCTTGGCCTCTGTTTTTTTTTT
-+
-BCCFDFFFHHFFHJIGIJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1226:2088 1:Y:0:
-NGATCGGAAGAGCACACGTTTGACT
-+
-#4=DAA=DDFHFHIIBFGHHIG>EG
- at machine1:HiMom:abcdeACXX:1:2101:1231:2208 1:Y:0:
-ACGCCGCAAGTCAGAGCCCCCCAGA
-+
-@@@DDDFFFFB:DBBEBEFDHBDDB
- at machine1:HiMom:abcdeACXX:1:2101:1233:2133 1:N:0:
-GAGAGAAGCACTCTTGAGCGGGATA
-+
-0;(@((@)2@###############
- at machine1:HiMom:abcdeACXX:1:2101:1240:2197 1:N:0:
-ATAAAACATAGCAATATTTTCCTAT
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:2101:1245:2154 1:Y:0:
-TCGTTAAGTATATTCTTAGGTATTT
-+
-CCCFFDFFFHFHHIIJJJJJFJJJI
- at machine1:HiMom:abcdeACXX:1:2101:1249:2231 1:Y:0:
-GTTATTGATAGGATACTGTACAAAC
-+
- at BCFFFFDHHHHFIJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1258:2092 1:Y:0:
-NCACACACACACTCATTCACAGCTT
-+
-#1=DDDFFHHHFHJJIJGGGIIGIJ
- at machine1:HiMom:abcdeACXX:1:2101:1262:2128 1:N:0:
-AGCAGAAGGGCAAAAGCTGGCTTGA
-+
-9;<@:@###################
- at machine1:HiMom:abcdeACXX:1:2101:1273:2119 1:N:0:
-NAGATAAGAGTCCACACAGTTGAGT
-+
-#11AAAAA<A?4=C=7?733<ACA3
- at machine1:HiMom:abcdeACXX:1:2101:1285:2105 1:N:0:
-NGCGGGGAGCCGGGCGTGGAATGCG
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:2101:1312:2105 1:Y:0:
-NTTCCCTCAGGATAGCTGGCGCTCT
-+
-#1=DDFFFGHGHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1325:2083 1:Y:0:
-NCAGAAGAAAGGGCCTTGTCGGAGG
-+
-#1=DDDDDHHFHDGI at EEHG:?FA8
- at machine1:HiMom:abcdeACXX:1:2101:1336:2109 1:Y:0:
-NACTATCAGGATCGTGGCTATTTTG
-+
-#1BDDFFFHHHHHJIJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1349:2084 1:Y:0:
-NCAAGTAGCAGTGTCACGCCTTAGC
-+
-#1=DDBDDADFDDBEH at HC=CEGG@
- at machine1:HiMom:abcdeACXX:1:2101:1365:2094 1:Y:0:
-NAAGGTGAAGGCCGGCGCGCTCGCC
-+
-#1=BDDDFFHHHHJGGGIGFIHIIJ
- at machine1:HiMom:abcdeACXX:1:2101:1370:2116 1:Y:0:
-NTGGTGGTCCATAGAGATTTGAAAC
-+
-#1:4BD7DACF?FCA:4+<ACHIIH
- at machine1:HiMom:abcdeACXX:1:2101:1386:2105 1:Y:0:
-NTACTAAAGAAAAAGTTGAAGAACT
-+
-#1=DDDFFHHHHHJJGHIJJJJIJJ
- at machine1:HiMom:abcdeACXX:1:2101:1414:2098 1:Y:0:
-NAGGACATCGATAAAGGCGAGGTGT
-+
-#1=DDFFFHHHHHJJJJJJJJJHHG
- at machine1:HiMom:abcdeACXX:1:2101:1427:2081 1:Y:0:
-NCGAGTGCCTAGTGGGCCACTTTTG
-+
-#4=DDBDFHHHHFHIJJJJIJJJJI
- at machine1:HiMom:abcdeACXX:1:2101:1450:2134 1:Y:0:
-AGCACGCTGCCGCGGGACCTGCCCA
-+
-?@@AD at DDHFH?DGIIIIG at FGFBF
- at machine1:HiMom:abcdeACXX:1:2101:1459:2083 1:Y:0:
-NCACACGCCACACGGAGCACACTTT
-+
-#4=DDFFFHHHHHJJJJJJJJIIJJ
- at machine1:HiMom:abcdeACXX:1:2101:1491:2093 1:Y:0:
-NCTATGCCGATCGGGTGTCCGCACT
-+
-#1=DDDDDHHFHHIIEHHHBGHGII
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/nonBarcoded.2.fastq b/testdata/net/sf/picard/illumina/25T8B25T/fastq/nonBarcoded.2.fastq
deleted file mode 100644
index 3bb2e7f..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/fastq/nonBarcoded.2.fastq
+++ /dev/null
@@ -1,720 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:1031:2224 2:N:0:
-NNNNNNNNNNNNNNNNNNNNNNNNN
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1101:1039:2147 2:N:0:
-NNNNNNNNNNNNNNNNNNNNNNNNN
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1101:1046:2175 2:N:0:
-NNGGANNNNNNNNNNNNNNNNNNNN
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1101:1047:2122 2:N:0:
-NNTCANNNNNNNNNNNNNNNNNNNN
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1101:1048:2197 2:N:0:
-NNGTGNNNNNNNNNNNNNNNNNNNN
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1101:1065:2193 2:Y:0:
-NCTTGNNNNNNNNNNNNNNNNNNNN
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1101:1069:2159 2:Y:0:
-GACGTNNNNNNNNNNNNNNNNNNNN
-+
-<<<@?####################
- at machine1:HiMom:abcdeACXX:1:1101:1071:2233 2:Y:0:
-GTTTGNNNNNNNNNNNNNNNNNNNN
-+
-<<<@@####################
- at machine1:HiMom:abcdeACXX:1:1101:1083:2193 2:Y:0:
-AGGCTNNNNNNNNNNNNNNNNNNNN
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1101:1084:2136 2:Y:0:
-TTTCTNNNNNNNNNNNNNNNNNNNN
-+
-<<<@@####################
- at machine1:HiMom:abcdeACXX:1:1101:1089:2172 2:Y:0:
-TCCGGNNNNNNNNNNNNNNNNNNNN
-+
-:<<??####################
- at machine1:HiMom:abcdeACXX:1:1101:1100:2207 2:Y:0:
-AGGCTNNNNNNNNNNNNGNNNNNNN
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1101:1111:2148 2:Y:0:
-GCGAANANNNNNNNNNNGGACGACN
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1101:1138:2141 2:Y:0:
-TCCGATCTGCTTCAGGTCGATCAGA
-+
-CCCFFFFFHGHHHJJIGHIJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1101:1140:2120 2:Y:0:
-TTTTTTTTTTTTTAACTTTGCAAAT
-+
-@@@DDDDDHHHHFB at 9FHI@BFH@@
- at machine1:HiMom:abcdeACXX:1:1101:1143:2192 2:Y:0:
-CGACAAGTCTGGCTTATCACTCATC
-+
-CCCFFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1101:1150:2228 2:Y:0:
-ATGGGAGGCGATTCCTAGGGGGTTG
-+
-8?=DD8;@BH6DHD<FGGGEIGHIG
- at machine1:HiMom:abcdeACXX:1:1101:1157:2135 2:Y:0:
-TTTAAAGTCTTAATCAAAGATGATA
-+
-CCCFFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1101:1162:2207 2:N:0:
-TAAAACTGGGGAAGTTAGAGGAATG
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1101:1165:2239 2:Y:0:
-ATGGAAGTCGAGACAGAAGTGAGAA
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1101:1175:2197 2:Y:0:
-AAGAGCTGGGGAACATCCAGAAAGG
-+
-BC at FFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1101:1188:2237 2:Y:0:
-GCTTCCTTCAAGACAGAAGTGAGAA
-+
-CCCFFDDEFHHFFE at FDHHAIAFHG
- at machine1:HiMom:abcdeACXX:1:1101:1197:2200 2:Y:0:
-ATATTCCACTGGAACCACAGAACCC
-+
-@@@FFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1101:1206:2126 2:Y:0:
-ATCTGTCCAGTGGTGCACTGAATGT
-+
-CCCFFFFFHHHHHHIIJJJJIJJJJ
- at machine1:HiMom:abcdeACXX:1:1101:1212:2230 2:Y:0:
-TTTTAGCTTTATTGGGGAGGGGGTG
-+
-CCCFFFFFHHGHHJJJJGJJJJJDF
- at machine1:HiMom:abcdeACXX:1:1101:1218:2200 2:Y:0:
-GCTCTTCCGATCTATCTGCTCGTCC
-+
-(-(=34???3;@#############
- at machine1:HiMom:abcdeACXX:1:1101:1219:2164 2:Y:0:
-ATCTTATCCACTCCTTCCACTTTGG
-+
-CCCFFFFFHHHHHJJIJJJJJJJIJ
- at machine1:HiMom:abcdeACXX:1:1101:1221:2143 2:Y:0:
-CAATTGAATGTCTGCACAGCCGCTT
-+
-@@@FFFFDHHHHHJJJIIIJGHIJJ
- at machine1:HiMom:abcdeACXX:1:1101:1236:2121 2:Y:0:
-TTGCGCTTACTTTGTAGCCTTCATC
-+
-CCCFFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1101:1242:2170 2:Y:0:
-GGAAGGAAAAGAAGCACAAGTACAT
-+
-@@@DFDFFHHHGHHGIIGJJEHHIG
- at machine1:HiMom:abcdeACXX:1:1101:1257:2223 2:Y:0:
-TGCTCTTCCGATCTTTTAGCAAAGC
-+
-:?@DDBDDHFFHDGIGIIJJJGGGI
- at machine1:HiMom:abcdeACXX:1:1101:1259:2152 2:Y:0:
-ATTTTTATATTTTTTTAGACATAGG
-+
-CCCFFFFFGHHHHJJJJIGIIJJJJ
- at machine1:HiMom:abcdeACXX:1:1101:1261:2127 2:N:0:
-TTTTTTTTTTTTTTTTTTTTTTTTT
-+
-CCCFFFFFHGHHHJJIFDDDDDDDD
- at machine1:HiMom:abcdeACXX:1:1101:1263:2236 2:N:0:
-AGTTCTTCAGTAATTTTAGTACTGC
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1101:1267:2209 2:Y:0:
-GGCAGAGTCTCCAACAGCCCCGTAC
-+
-=;?DDDD?CCFHAIIIGGIIGE at EG
- at machine1:HiMom:abcdeACXX:1:1101:1269:2170 2:Y:0:
-TTCCAAGCCTGTGCTTTAAGGAAAA
-+
-@@<ADBDBDF8DDCFH at GIE@@GGH
- at machine1:HiMom:abcdeACXX:1:1101:1290:2225 2:Y:0:
-TCAGTTCACTGGCAAAGACAGTCAC
-+
-C@@FBEDDFHFHGIIICEHGDHBHE
- at machine1:HiMom:abcdeACXX:1:1101:1291:2150 2:Y:0:
-ACAAACCCTTGTGTCGAGGGCTGAC
-+
-CCCFFFFFHHFHHIJJJIIIGIJIJ
- at machine1:HiMom:abcdeACXX:1:1101:1302:2244 2:Y:0:
-TGAATACATATAACAAATGCAAAAA
-+
-CCCFFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1101:1308:2153 2:N:0:
-TCTGTAAGGTAATCCCCGCATGTGT
-+
-1?1=4===AFFDFFGFDGFB at CFB:
- at machine1:HiMom:abcdeACXX:1:1101:1309:2210 2:Y:0:
-AGTGGGCTAGGGCATTTTTAATCTT
-+
-@@?DFFDFHHHDFHJIJJIJGIIIJ
- at machine1:HiMom:abcdeACXX:1:1101:1314:2233 2:Y:0:
-AGGAAAGTTGGGCTGACCTGACAGA
-+
-@@<DDD;=FBFADBCGDEH?F;FCG
- at machine1:HiMom:abcdeACXX:1:1101:1316:2126 2:Y:0:
-TCTTTTTTTTTTTTTTTTTTTTTTT
-+
-CCCFFFFFHHHHHJJJJHFDDDDDD
- at machine1:HiMom:abcdeACXX:1:1101:1327:2200 2:N:0:
-GTCATCTGGGCTGTCGACAGGTGTC
-+
- at B@FFFFFHHHHGIJJJJJJIFHHI
- at machine1:HiMom:abcdeACXX:1:1101:1328:2225 2:Y:0:
-AGGAAATTAGGACTTACCTGACATA
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1101:1338:2175 2:Y:0:
-GCTTGTTGGCTTTAACATCCACAAT
-+
-CCCFFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1101:1347:2149 2:Y:0:
-GCTCTTCCGATCTGTGCTCTTCCGA
-+
-CCCFFFFFDFHHFIJDGIGGHGIGH
- at machine1:HiMom:abcdeACXX:1:1101:1353:2226 2:Y:0:
-GTGCTCTTCCGATCTTCAGGTTACC
-+
-BBBFFFFFHHHHHJJJJJJJIJJJJ
- at machine1:HiMom:abcdeACXX:1:1101:1363:2138 2:Y:0:
-GTTCTTAAACCTGTTAGAACTTCTG
-+
-C@@FFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1101:1399:2128 2:Y:0:
-ACAAACCCTTGTGTCGAGGGCTGAC
-+
-CCCFFFFFHHHHHIJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1101:1403:2194 2:Y:0:
-ACATGGTGAAACCCTGTCTCTACTA
-+
-CCCFFFDDHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1101:1406:2222 2:Y:0:
-GGCTGGACTCCCCTGGTTCTGGGCA
-+
-;?@DDDBD?FHDFGIIIGIGHHIII
- at machine1:HiMom:abcdeACXX:1:1101:1419:2119 2:Y:0:
-ACTTTCCTTTTTTGTTTTACTTTAA
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1101:1420:2213 2:Y:0:
-TTCACTGTACCGGCCGTGCGTACTT
-+
- at CCFFFFDHHHFGIJJJJJJGHIGG
- at machine1:HiMom:abcdeACXX:1:1101:1435:2194 2:Y:0:
-TTTTGTTTTCTTTTACTGAAGTGTA
-+
-CCCFFDFFHHHHHJJJJIHIJHHHJ
- at machine1:HiMom:abcdeACXX:1:1101:1441:2148 2:Y:0:
-TTTTGGCTCTAGAGGGGGTAGAGGG
-+
-CCCFFFFFHHDFBHIIJJ1?FGHIJ
- at machine1:HiMom:abcdeACXX:1:1101:1452:2132 2:Y:0:
-ACAAACCCTTGTGTCGAGGGCTGAC
-+
-CCCFFFFFHHHHHJJJJJJJIJJJJ
- at machine1:HiMom:abcdeACXX:1:1101:1460:2176 2:Y:0:
-AGGAAAAAGACACAACAAGTCCAAC
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1101:1479:2221 2:Y:0:
-GGGGAAATCTATTTTTATGTAAAAA
-+
- at CCFFFFFHHHHHJIGIJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1101:1491:2120 2:Y:0:
-GGCCAGGCTGAACTTCTGAGCTGCT
-+
-CCCFFFFFHHHGHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1018:2133 2:Y:0:
-NNNNNNNNNNNNNNNNNNNNNNNNN
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1201:1018:2217 2:N:0:
-NNNNNNNNNNNNNNNNNNNNNNNNN
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1201:1028:2202 2:Y:0:
-NNAAACNCNTNNNNNNNGGNNTGNN
-+
-##42@?###################
- at machine1:HiMom:abcdeACXX:1:1201:1042:2174 2:Y:0:
-NTCAGGAAGGCNNCAAAAAAAGAAA
-+
-#0;@@@?@?<@##3<@@?@@?????
- at machine1:HiMom:abcdeACXX:1:1201:1043:2246 2:Y:0:
-NGCATCATTTCNNGCTTCTCTCTGT
-+
-#0;@@??@=@>##22=;@??><@??
- at machine1:HiMom:abcdeACXX:1:1201:1045:2105 2:N:0:
-NTTTTTTTTTTNNTTTTTTTTTTTT
-+
-#0;@@@@@@@?##0:????????=<
- at machine1:HiMom:abcdeACXX:1:1201:1054:2151 2:Y:0:
-GTCAGGCACTGAGAATATATGGGTG
-+
-CBCFFFFFHHHHHJJJJJJJJJJEG
- at machine1:HiMom:abcdeACXX:1:1201:1064:2239 2:Y:0:
-GGGATGGGAGGGCGATGAGGACTAG
-+
-8?@:DDDACC:FHHGIH<EGDDDFH
- at machine1:HiMom:abcdeACXX:1:1201:1073:2225 2:Y:0:
-CGTGTGCTCTTCCGATCTGGAGGGT
-+
- at BBDFFFFHHHHHJJJJJJJJJJJ:
- at machine1:HiMom:abcdeACXX:1:1201:1083:2121 2:Y:0:
-ACACACAACACCACCGCCCTCCCCC
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1201:1084:2204 2:Y:0:
-TGGCTCCTCAGGCTCTCATCAGTTG
-+
-CCCFFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1095:2146 2:Y:0:
-ACTGACAACACCAAATGCTGCTAAG
-+
-CCCFFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1103:2184 2:Y:0:
-AGAAGTTTCAGAATTGTGGCCCCAT
-+
-B at BFFDEFHHHHHJJJGHIJJJJJI
- at machine1:HiMom:abcdeACXX:1:1201:1107:2109 2:Y:0:
-ACAAACCCTTGTGTCGAGGGCTGAC
-+
-CCCFFFFFHHGHHJJJJIIJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1118:2198 2:Y:0:
-AATAAACTTTATTAAAGCAGTTAAA
-+
-C at CFFFFFHDHHHGIIIJJJIJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1122:2227 2:Y:0:
-GTCATATAAGGCCCAGTCCAAGGAA
-+
-@@@FFFFFHHHGGIJIGGIJFIJII
- at machine1:HiMom:abcdeACXX:1:1201:1123:2161 2:N:0:
-CGTGTGCTCTTCCGATCTGCATACA
-+
-===AAAA8AAAA<AAA)@CBA9>A#
- at machine1:HiMom:abcdeACXX:1:1201:1127:2112 2:N:0:
-TAATCACCTGAGCAGTGAAGCCAGC
-+
-@<@?BDDDHD?FDBHI?AHGGGDFH
- at machine1:HiMom:abcdeACXX:1:1201:1134:2144 2:Y:0:
-AGTGTGAGTAATGGTTGAGAGGTGG
-+
-B@?DDDFFFHHGHJHHGFIHHIFGI
- at machine1:HiMom:abcdeACXX:1:1201:1138:2227 2:N:0:
-GACAAATATAGGAAATAGAAGCTAT
-+
-=1=A=AAA,2?4>7C<<4<A+3<AB
- at machine1:HiMom:abcdeACXX:1:1201:1140:2125 2:Y:0:
-TTCATAAATTGGTCTTAGATGTTGC
-+
-CC at FFFFFHHHHFGIJIIIJIJIJJ
- at machine1:HiMom:abcdeACXX:1:1201:1142:2242 2:Y:0:
-GTAAAATGTAAAATAATAAAAAATG
-+
-?=?DDDD;AF<DF<FFFFIIIFF@<
- at machine1:HiMom:abcdeACXX:1:1201:1150:2161 2:Y:0:
-TTCTCACTACTGTGATTGTGCCACT
-+
- at C@FFFFFGHHHHGIIIICEHCFGH
- at machine1:HiMom:abcdeACXX:1:1201:1159:2179 2:N:0:
-TTTTTTTTTATTTTTCTAAATACTT
-+
-===AA####################
- at machine1:HiMom:abcdeACXX:1:1201:1160:2109 2:Y:0:
-ACATCCTTCCCATGCCACCAACTCG
-+
-CCCFFFFFGHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1180:2119 2:Y:0:
-GCTCTAAATTTTGCTTTTCTACAGC
-+
-CCCFFFFFHHHHHJJJJIJIJJIJJ
- at machine1:HiMom:abcdeACXX:1:1201:1185:2143 2:Y:0:
-GCTGAAGGCCCGTGGGCCAGAGGTG
-+
- at CCFFFFFHHHHHJJJJJJJJJJHI
- at machine1:HiMom:abcdeACXX:1:1201:1187:2100 2:Y:0:
-AAAAAAGAGCCCGCATTGCCGAGAC
-+
-=<=;AA###################
- at machine1:HiMom:abcdeACXX:1:1201:1190:2194 2:Y:0:
-ACAAACCCTTGTGTCGAGGGCTGAC
-+
-CCCFFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1204:2228 2:Y:0:
-TCTTCTTGTCGATGAGGAACTTGGT
-+
-@?@FFFFFDHHGHJIJJGHIIJJJH
- at machine1:HiMom:abcdeACXX:1:1201:1208:2132 2:Y:0:
-CTGTAGAAAGGATGGTCGGGCTCCA
-+
-@@CDFFFFGHFHHJIJJGJIBHJJG
- at machine1:HiMom:abcdeACXX:1:1201:1219:2115 2:Y:0:
-TGGGAGTAGTTCCCTGCTAAGGGAG
-+
-???DBDBDADDDDIEID:AFFD:?8
- at machine1:HiMom:abcdeACXX:1:1201:1236:2187 2:Y:0:
-CTCCTTAGCGGATTCCGACTTCCAT
-+
-CCCFFFFDHHHHGIJJIGIGIJJGG
- at machine1:HiMom:abcdeACXX:1:1201:1242:2207 2:Y:0:
-ATCTTTTATTGGCCTCCTGCTCCCC
-+
-CCCFFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1252:2141 2:Y:0:
-AGTTATTTTGCCTATGTCCAACAAG
-+
-BCBFFFFFGHHHHJIJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1260:2165 2:Y:0:
-ATCTGATCTAAGTTGGGGGACGCCG
-+
-@@@FFDFFHHHHHJJJIJIIIGIJJ
- at machine1:HiMom:abcdeACXX:1:1201:1280:2179 2:Y:0:
-GAGGACTGCTTGAGTCCAGGAGTTC
-+
-@@BFFDEFGHHHHIFGCHIJJJGGI
- at machine1:HiMom:abcdeACXX:1:1201:1281:2133 2:Y:0:
-GCAACAAAATTTCATATGACTTAGC
-+
-CCCFFFFFHHHHHJJIIIHICHIIJ
- at machine1:HiMom:abcdeACXX:1:1201:1285:2100 2:Y:0:
-GATCTTTTTTGCTTTGTAGTTATAG
-+
-@@@DFFFFHHHHHIIGIABCFFHBF
- at machine1:HiMom:abcdeACXX:1:1201:1291:2158 2:Y:0:
-CGTGTGCTCTTCCGATCTGATGGGC
-+
- at CCFFFDD?FHHFGEHHIIDHIIII
- at machine1:HiMom:abcdeACXX:1:1201:1300:2137 2:Y:0:
-GCTCTTCCGATCTTTTTTTTAATTT
-+
-@@?DDDDDFDHADEHGIGGED3?FD
- at machine1:HiMom:abcdeACXX:1:1201:1312:2112 2:Y:0:
-ATTTGCAGGAGCCGGCGCAGGTGCA
-+
-CCCFFFFFHHHHHJJJIJJJJGHIJ
- at machine1:HiMom:abcdeACXX:1:1201:1331:2162 2:Y:0:
-TAATCCCAGTACTTTGGGAGGCCAA
-+
-CCCFFFFFHHHHHJJJJIJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1341:2116 2:Y:0:
-ATAACAGCGAGACTGGCAACTTAAA
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1201:1344:2147 2:Y:0:
-ACGATTAGTTTTAGCATTGGAGTAG
-+
-@<??DDDDFHHHFGGHHIIIGGAGH
- at machine1:HiMom:abcdeACXX:1:1201:1345:2181 2:Y:0:
-ATACGGATGTGTTTAGGAGTGGGAC
-+
-CCCFFFFFHHHHHIIJJHJFHIJIJ
- at machine1:HiMom:abcdeACXX:1:1201:1364:2113 2:Y:0:
-TAAAGAGAGCCAGTGGAGTTACGAC
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1201:1392:2109 2:Y:0:
-GTCAGACAGGGGGATTTGGGCTGTG
-+
-BBCFFFFFHHHHHHJJJHIJIJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1392:2184 2:Y:0:
-ATCTTTATTCATTTGTATGATCTTA
-+
-@@BFFFFFHFFHFHIHIIJIJJJJI
- at machine1:HiMom:abcdeACXX:1:1201:1393:2143 2:Y:0:
-GATAAATGCACGCATCCCCCCCGCG
-+
-C at CFFFFFGGHHHHJJJJJJJJJJI
- at machine1:HiMom:abcdeACXX:1:1201:1414:2174 2:N:0:
-TTTTTTTTTTTTTTTTTTTTTTTTT
-+
-@;@1BDADF????FFEB>B6=BBBB
- at machine1:HiMom:abcdeACXX:1:1201:1416:2128 2:Y:0:
-TTGGTGTGGAGGCGGTGGCGGGATC
-+
-@@@DDDDDHHFHHII:?GGHIIB6?
- at machine1:HiMom:abcdeACXX:1:1201:1421:2154 2:Y:0:
-TGTGCTCTTCCGATCTTGTGCTCTT
-+
-BC at DFFFFHHHHHJJJJFHIHHIJJ
- at machine1:HiMom:abcdeACXX:1:1201:1439:2156 2:Y:0:
-GGAGATTATTTGCCTTGAAGTAAGC
-+
--;(22<>>@>8@>8;@#########
- at machine1:HiMom:abcdeACXX:1:1201:1452:2143 2:Y:0:
-TTTTAGTCTTAGCATTTACTTTCCC
-+
-CCCFFFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:1201:1458:2109 2:Y:0:
-GATACGAACACACAAGAACTTTTTT
-+
-CCCFFFFFHHHHHJJJJJJJJJJJI
- at machine1:HiMom:abcdeACXX:1:1201:1472:2121 2:N:0:
-GTGTGCTCTTCCGATCTGGAGGATG
-+
-=+=??A4A==A at 7A<?#########
- at machine1:HiMom:abcdeACXX:1:1201:1483:2126 2:N:0:
-GCATGCAGCTGGGTGCTGTGATGCA
-+
-@@@DDDBB<DD8F<<CGG?AA?A<F
- at machine1:HiMom:abcdeACXX:1:1201:1486:2109 2:Y:0:
-ACGTGTGCTCTTCCCGATCTGTATA
-+
-CCCFF?DDFBHHHJJIIDHJIJJJH
- at machine1:HiMom:abcdeACXX:1:1201:1486:2146 2:N:0:
-TTTTTTTTTTTTTTTTTTTTTGGGC
-+
-<<<@??@??@???????########
- at machine1:HiMom:abcdeACXX:1:2101:1011:2102 2:Y:0:
-NNNNNTCACACATAATTTTAAAATT
-+
-#####22@?@@??@@@@@??@@@@@
- at machine1:HiMom:abcdeACXX:1:2101:1013:2146 2:Y:0:
-NNNNCGCTAGAACCAACTTATTCAT
-+
-####24=?@@?@?@@?@@@@@@?@@
- at machine1:HiMom:abcdeACXX:1:2101:1021:2209 2:Y:0:
-NNGGAAGGCTGCTAGCTGGCCAGAG
-+
-##08@>??@@??@?????????>?@
- at machine1:HiMom:abcdeACXX:1:2101:1023:2237 2:N:0:
-NNTTTGTTTGAGTTCCTTGTAGATT
-+
-##0:=@?>?@???@:>?@??>?;?<
- at machine1:HiMom:abcdeACXX:1:2101:1031:2163 2:Y:0:
-NNACATTTGTCACCACTAGCCACCA
-+
-##0<@?@@@@@@@@@@?@@@@@@@?
- at machine1:HiMom:abcdeACXX:1:2101:1036:2087 2:Y:0:
-NGTCCACTTACGAAGCAAATACTTT
-+
-#4=DDFFFHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1040:2208 2:N:0:
-NCTGATAGTCACTGAAATGAATTCA
-+
-#-0=>(2 at .22@@############
- at machine1:HiMom:abcdeACXX:1:2101:1048:2238 2:Y:0:
-NGTCACATCGTTGAAGCACTGGATC
-+
-#11ADDDB<CFFHCHGDBHGIIIII
- at machine1:HiMom:abcdeACXX:1:2101:1054:2162 2:Y:0:
-NGGACAGGGAAGGGAAGGAAGGGTG
-+
-#4=DDFDFHHHHHJIJIIDHHGICG
- at machine1:HiMom:abcdeACXX:1:2101:1059:2083 2:Y:0:
-NGAATGTCTTAGAAGGATGCTTCTC
-+
-#1=BDDDEHHGHHJJJJJIJJIIJJ
- at machine1:HiMom:abcdeACXX:1:2101:1063:2206 2:Y:0:
-NTGCTAGGATGAGGATGGATAGTAA
-+
-#1=DDDFFHHHHHJHIIJHIIIHHJ
- at machine1:HiMom:abcdeACXX:1:2101:1064:2242 2:Y:0:
-NGGAAAAAGGTTGTCAAGCGTTAAA
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:2101:1072:2170 2:Y:0:
-NGGGGAGACAGAGAGGATCAGAAGT
-+
-#4=BDDFDHHDFHEGFEGGIJIIIG
- at machine1:HiMom:abcdeACXX:1:2101:1077:2139 2:Y:0:
-NATTAGTTGGCGGATGAAGCAGATA
-+
-#4=DFFFFHHHHHJJJJJJJJJIJJ
- at machine1:HiMom:abcdeACXX:1:2101:1084:2188 2:Y:0:
-TACAAGGTCAAAATCAGCAACAAGT
-+
-CCCFFFFDHHHHHJJJJJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1100:2085 2:Y:0:
-ATCTTGATCTCCTCCTTCTTGGCCT
-+
-@@@DDDDDHHFHFEIIIIHHBAHBG
- at machine1:HiMom:abcdeACXX:1:2101:1102:2221 2:Y:0:
-ATAACTGACTCTACTCAGTAGATTA
-+
-CCCFFFFFHHHHHJJJJJIJJJJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1105:2131 2:Y:0:
-CAGCAGCAGCAACAGCAGAAACATG
-+
-CCCFFFFFHHHHHJJJJJIJJJJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1112:2245 2:Y:0:
-TCGTAGTGTTGTAATTTCGTCTTCT
-+
-?8?DBDDDCCFCAACGGFFCBFFAE
- at machine1:HiMom:abcdeACXX:1:2101:1122:2136 2:Y:0:
-CTTGCCAGCCTGCAGGCCCCGCGGC
-+
-???BBAABDD?DDIID)A:3<EADD
- at machine1:HiMom:abcdeACXX:1:2101:1123:2095 2:Y:0:
-TCCGCCTCCAGCTTCAGCTTCTCCT
-+
-@@@FDDFFHHHHHJHGGJIJJJEHH
- at machine1:HiMom:abcdeACXX:1:2101:1126:2082 2:Y:0:
-TCTCTTTCCACCTTGGTCACCTTCC
-+
- at C@DDDFFHHHHHJEGGIHHIJGIH
- at machine1:HiMom:abcdeACXX:1:2101:1133:2239 2:Y:0:
-AGCTTTTTGTTTCCTAGCTTGTCTT
-+
-?@?DDFFFHHHHF4ACFHIJHHHGH
- at machine1:HiMom:abcdeACXX:1:2101:1143:2137 2:Y:0:
-GCTCTTCAGATCTAGGGGGAACAGC
-+
-@@@DD?=DCAFFFHIIDG:EFHIII
- at machine1:HiMom:abcdeACXX:1:2101:1151:2182 2:N:0:
-TTTTTTTTTTTTTTTTTTTTTTTTA
-+
-9<<?@?@;5=?##############
- at machine1:HiMom:abcdeACXX:1:2101:1151:2236 2:N:0:
-TTTGAAGCCTCTTTATCCTTGGCAT
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:2101:1162:2139 2:Y:0:
-ATCGTTTATGGTCGGAACTACGACG
-+
-BCCFFFFFHHHHHIJJJJJJJIJJI
- at machine1:HiMom:abcdeACXX:1:2101:1163:2203 2:Y:0:
-TTGGTTCACTTATGTATTTATGAAT
-+
- at CCFDFFFHHHHHJHIIJJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1163:2222 2:Y:0:
-GAGCGATAATGGTTCTTTTCCTCAC
-+
-@@@DFFFFHHHHHJJJJJJJIJJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1172:2152 2:N:0:
-ATCGTTTCTGGGGACTAGTGAGGCG
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:2101:1186:2093 2:Y:0:
-AATGTTGGGAGGACAATGATGGAAA
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:2101:1188:2195 2:Y:0:
-GCACATACACCAAATGTCTGAACCT
-+
-CCCFFFFFHHHHHJJJHIJJJJJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1195:2150 2:Y:0:
-AATTGAACTTCACCACCCAGAGGAA
-+
-CCCFFFFFHHHHHJJJJJJIJJJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1207:2084 2:N:0:
-TCACCACTCTTCTGGGCATCCCCTG
-+
-@@@DDEDFHHHHHIJIHHGHGGJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1208:2231 2:N:0:
-CTTTTTTTTTTTTTTTTTTTTTTTT
-+
-CCCFFFFFHHHHHJJJHFDDDDDDD
- at machine1:HiMom:abcdeACXX:1:2101:1215:2110 2:Y:0:
-ATCTTTCCCCCATTAAGAACAGCAA
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:2101:1216:2172 2:Y:0:
-GGACTTCTAGGGGATTTAGCGGGGT
-+
-CCCFFFFFHHHHHJJJJJJJJJJJD
- at machine1:HiMom:abcdeACXX:1:2101:1216:2193 2:Y:0:
-AGGCATGACACTGCATTTTAAATAC
-+
-@@@DDDDDHFFHHGGDFHFHIIHGG
- at machine1:HiMom:abcdeACXX:1:2101:1226:2088 2:Y:0:
-GCTCTTCCGATCTAGGTAATAGCTA
-+
-==?BDFFFDCDDHFFFAFHDHIJGJ
- at machine1:HiMom:abcdeACXX:1:2101:1231:2208 2:Y:0:
-AGCCAGTGTTGGTGTGTTGACTGTT
-+
-@@;1ADABCF;BF<AACGCHEBHC<
- at machine1:HiMom:abcdeACXX:1:2101:1233:2133 2:N:0:
-TTTTTTTTTTTTTTTTTTTTTTTTT
-+
-CCCFFFFFGHHHHJJJFDDDDDDDD
- at machine1:HiMom:abcdeACXX:1:2101:1240:2197 2:N:0:
-ACTGGAGATCCTTGTTACATGCCCA
-+
-??+++A:DD?:ADEE@::C4:C<E:
- at machine1:HiMom:abcdeACXX:1:2101:1245:2154 2:Y:0:
-ACCAATCAGTAGCACCACTATACAC
-+
-CCCFFFFFHHHHHJJJJJJIJJJJJ
- at machine1:HiMom:abcdeACXX:1:2101:1249:2231 2:Y:0:
-TCTCTCGGCCTTCCACTCTAGCATA
-+
-@@@FFFFFFHHGHIJJJGJIIJHIJ
- at machine1:HiMom:abcdeACXX:1:2101:1258:2092 2:Y:0:
-TTAGACAAAACACCAAAATAAAATA
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:2101:1262:2128 2:N:0:
-TCTTGTGGTAACTTTTCTGACACCT
-+
--(---9@;@?:8>?4:>?@######
- at machine1:HiMom:abcdeACXX:1:2101:1273:2119 2:N:0:
-ATGATGGATCTTCTCTAACTTGTCA
-+
->=><AAAAA+2AA?CB4@@ABB3?A
- at machine1:HiMom:abcdeACXX:1:2101:1285:2105 2:N:0:
-TGTCTATATCAACCAACACCTCTTC
-+
--(0(():94:9:???##########
- at machine1:HiMom:abcdeACXX:1:2101:1312:2105 2:Y:0:
-GTTGAGAATAGGTTGAGATCGTTTC
-+
- at CCFFFDFHHFHDHIJJJJJJJIJJ
- at machine1:HiMom:abcdeACXX:1:2101:1325:2083 2:Y:0:
-TGTGCTCTTCCGATCTGGAGAAAAA
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:2101:1336:2109 2:Y:0:
-AGACCAGAACAGCTCCAGGTGCTCC
-+
-CCCFFFFFHHHHHJJJJJJCGHIJJ
- at machine1:HiMom:abcdeACXX:1:2101:1349:2084 2:Y:0:
-AGTCTGAATCATTGGTGTCTGAAGA
-+
-<5;??=>=>>?##############
- at machine1:HiMom:abcdeACXX:1:2101:1365:2094 2:Y:0:
-GCTCTTCCGATCTTGTGCTCTTCCG
-+
-CCCFFFFDHFHHGJJIIJIJJIHII
- at machine1:HiMom:abcdeACXX:1:2101:1370:2116 2:Y:0:
-CACCATCTGACATCATGTTTGAAAG
-+
-@@@DFFFDFFHDHIGBHHII<HEDB
- at machine1:HiMom:abcdeACXX:1:2101:1386:2105 2:Y:0:
-AGGAATTATTCTTCTGCCATAAGGT
-+
-B@@DDFFFHGFHHIJJJJJGIGIJH
- at machine1:HiMom:abcdeACXX:1:2101:1414:2098 2:Y:0:
-TTGGGGCCGGTGCCGTCGGGCCCAA
-+
-CCCFFFFFHHHHGJJIJJJJJJJIJ
- at machine1:HiMom:abcdeACXX:1:2101:1427:2081 2:Y:0:
-CCGACTTCCATGGCCACCGTCCTGC
-+
-CCCFFFFFHHHHHJJJIIGFIIJJI
- at machine1:HiMom:abcdeACXX:1:2101:1450:2134 2:Y:0:
-ACAAACCCTTGTGTCGAGGGCTGAC
-+
-CC at FDFDFFDFHFGIIE1CGGHBGE
- at machine1:HiMom:abcdeACXX:1:2101:1459:2083 2:Y:0:
-ATTTCACCAAAATAATCAGAAGGCC
-+
-CCCFFFFDBHGHHIGGIJFJJGGFH
- at machine1:HiMom:abcdeACXX:1:2101:1491:2093 2:Y:0:
-AGAGACGGGGTCTCGCTATGTTGCC
-+
-BCCDFFFFHHHHHJIIJJJJIJIJJ
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/AAAAAAAA.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/AAAAAAAA.sam
deleted file mode 100644
index 15e09bc..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/AAAAAAAA.sam
+++ /dev/null
@@ -1,2 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.AAAAAAAA	LB:LN_AAAAAAAA	SM:SA_AAAAAAAA	CN:BI
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/AAAAGAAG.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/AAAAGAAG.sam
deleted file mode 100644
index fd8b3c0..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/AAAAGAAG.sam
+++ /dev/null
@@ -1,2 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.AAAAGAAG	LB:LN_AAAAGAAG	SM:SA_AAAAGAAG	CN:BI
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/AACAATGG.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/AACAATGG.sam
deleted file mode 100644
index d92fa14..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/AACAATGG.sam
+++ /dev/null
@@ -1,10 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.AACAATGG	LB:LN_AACAATGG	SM:SA_AACAATGG	CN:BI
-HiMom:1:1101:1138:2141	77	*	0	0	*	*	0	0	.TTACCAAGGTTTTCTGTTTAGTGA	#1=DDFFFHHFHHJJJIHJIJJJJJ	RG:Z:HiMom.1
-HiMom:1:1101:1138:2141	141	*	0	0	*	*	0	0	TCCGATCTGCTTCAGGTCGATCAGA	CCCFFFFFHGHHHJJIGHIJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1101:1206:2126	77	*	0	0	*	*	0	0	.ATTCTGCCATATTGGTCCGACAGT	#1=DDFFFHHHHHJJJJJJJJJIJJ	RG:Z:HiMom.1
-HiMom:1:1101:1206:2126	141	*	0	0	*	*	0	0	ATCTGTCCAGTGGTGCACTGAATGT	CCCFFFFFHHHHHHIIJJJJIJJJJ	RG:Z:HiMom.1
-HiMom:1:2101:1077:2139	77	*	0	0	*	*	0	0	CACAGGCTTCCACGGACTTAACGTC	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:2101:1077:2139	141	*	0	0	*	*	0	0	.ATTAGTTGGCGGATGAAGCAGATA	#4=DFFFFHHHHHJJJJJJJJJIJJ	RG:Z:HiMom.1
-HiMom:1:2101:1112:2245	77	*	0	0	*	*	0	0	TGCCATCTGCTCTGGGAAGCACCAG	1:=DDDDDFBC:DEFIFFFIEF at BE	RG:Z:HiMom.1
-HiMom:1:2101:1112:2245	141	*	0	0	*	*	0	0	TCGTAGTGTTGTAATTTCGTCTTCT	?8?DBDDDCCFCAACGGFFCBFFAE	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/AACGCATT.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/AACGCATT.sam
deleted file mode 100644
index ed00daa..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/AACGCATT.sam
+++ /dev/null
@@ -1,16 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.AACGCATT	LB:LN_AACGCATT	SM:SA_AACGCATT	CN:BI
-HiMom:1:1101:1197:2200	77	*	0	0	*	*	0	0	GGGCGCCCCGTGAGGACCCAGTCCT	@C at FFADDFFCFCEHIIJIJJIEFC	RG:Z:HiMom.1
-HiMom:1:1101:1197:2200	141	*	0	0	*	*	0	0	ATATTCCACTGGAACCACAGAACCC	@@@FFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1101:1308:2153	589	*	0	0	*	*	0	0	TTTTGGAAGAGACCTCAATTACTGT	???DDDDD?:22AE:A2<3,AF?3A	RG:Z:HiMom.1
-HiMom:1:1101:1308:2153	653	*	0	0	*	*	0	0	TCTGTAAGGTAATCCCCGCATGTGT	1?1=4===AFFDFFGFDGFB at CFB:	RG:Z:HiMom.1
-HiMom:1:1101:1452:2132	77	*	0	0	*	*	0	0	.CGTCCTGGAAAACGGGGCGCGGCT	#1=BDBDDFHHHHF at FHDHIGIIII	RG:Z:HiMom.1
-HiMom:1:1101:1452:2132	141	*	0	0	*	*	0	0	ACAAACCCTTGTGTCGAGGGCTGAC	CCCFFFFFHHHHHJJJJJJJIJJJJ	RG:Z:HiMom.1
-HiMom:1:1201:1150:2161	77	*	0	0	*	*	0	0	AAGTCACCTAATATCTTTTTTTTTT	@@<??;?D?CFD,A4CDDHFBIIID	RG:Z:HiMom.1
-HiMom:1:1201:1150:2161	141	*	0	0	*	*	0	0	TTCTCACTACTGTGATTGTGCCACT	@C at FFFFFGHHHHGIIIICEHCFGH	RG:Z:HiMom.1
-HiMom:1:2101:1240:2197	589	*	0	0	*	*	0	0	ATAAAACATAGCAATATTTTCCTAT	#########################	RG:Z:HiMom.1
-HiMom:1:2101:1240:2197	653	*	0	0	*	*	0	0	ACTGGAGATCCTTGTTACATGCCCA	??+++A:DD?:ADEE@::C4:C<E:	RG:Z:HiMom.1
-HiMom:1:2101:1336:2109	77	*	0	0	*	*	0	0	.ACTATCAGGATCGTGGCTATTTTG	#1BDDFFFHHHHHJIJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:2101:1336:2109	141	*	0	0	*	*	0	0	AGACCAGAACAGCTCCAGGTGCTCC	CCCFFFFFHHHHHJJJJJJCGHIJJ	RG:Z:HiMom.1
-HiMom:1:2101:1427:2081	77	*	0	0	*	*	0	0	.CGAGTGCCTAGTGGGCCACTTTTG	#4=DDBDFHHHHFHIJJJJIJJJJI	RG:Z:HiMom.1
-HiMom:1:2101:1427:2081	141	*	0	0	*	*	0	0	CCGACTTCCATGGCCACCGTCCTGC	CCCFFFFFHHHHHJJJIIGFIIJJI	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/ACAAAATT.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/ACAAAATT.sam
deleted file mode 100644
index 042986f..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/ACAAAATT.sam
+++ /dev/null
@@ -1,2 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.ACAAAATT	LB:LN_ACAAAATT	SM:SA_ACAAAATT	CN:BI
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/ACAGGTAT.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/ACAGGTAT.sam
deleted file mode 100644
index 8d8481d..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/ACAGGTAT.sam
+++ /dev/null
@@ -1,10 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.ACAGGTAT	LB:LN_ACAGGTAT	SM:SA_ACAGGTAT	CN:BI
-HiMom:1:1101:1236:2121	77	*	0	0	*	*	0	0	.GGTGCTTCATATCCCTCTAGAGGA	#1=BDDFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1101:1236:2121	141	*	0	0	*	*	0	0	TTGCGCTTACTTTGTAGCCTTCATC	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1201:1341:2116	77	*	0	0	*	*	0	0	.AGAAGCCCCAGGAGGAAGACAGTC	#1=DDFFFHHHHHHHJIIJJJJJGI	RG:Z:HiMom.1
-HiMom:1:1201:1341:2116	141	*	0	0	*	*	0	0	ATAACAGCGAGACTGGCAACTTAAA	#########################	RG:Z:HiMom.1
-HiMom:1:2101:1063:2206	77	*	0	0	*	*	0	0	TCCTATTCGCCTACACAATTCTCCG	CCCFFFFFHHHHHJJJJJJJHJJJJ	RG:Z:HiMom.1
-HiMom:1:2101:1063:2206	141	*	0	0	*	*	0	0	.TGCTAGGATGAGGATGGATAGTAA	#1=DDDFFHHHHHJHIIJHIIIHHJ	RG:Z:HiMom.1
-HiMom:1:2101:1325:2083	77	*	0	0	*	*	0	0	.CAGAAGAAAGGGCCTTGTCGGAGG	#1=DDDDDHHFHDGI at EEHG:?FA8	RG:Z:HiMom.1
-HiMom:1:2101:1325:2083	141	*	0	0	*	*	0	0	TGTGCTCTTCCGATCTGGAGAAAAA	#########################	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/ACAGTTGA.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/ACAGTTGA.sam
deleted file mode 100644
index 805405f..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/ACAGTTGA.sam
+++ /dev/null
@@ -1,6 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.ACAGTTGA	LB:LN_ACAGTTGA	SM:SA_ACAGTTGA	CN:BI
-HiMom:1:2101:1048:2238	77	*	0	0	*	*	0	0	.CTGCCGTGTCCTGACTTCTGGAAT	#1:B?ADDACF<DCG;EG<FHH at CE	RG:Z:HiMom.1
-HiMom:1:2101:1048:2238	141	*	0	0	*	*	0	0	.GTCACATCGTTGAAGCACTGGATC	#11ADDDB<CFFHCHGDBHGIIIII	RG:Z:HiMom.1
-HiMom:1:2101:1216:2193	77	*	0	0	*	*	0	0	TTTTCTTGGCCTCTGTTTTTTTTTT	BCCFDFFFHHFFHJIGIJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:2101:1216:2193	141	*	0	0	*	*	0	0	AGGCATGACACTGCATTTTAAATAC	@@@DDDDDHFFHHGGDFHFHIIHGG	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/ACCAGTTG.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/ACCAGTTG.sam
deleted file mode 100644
index ff3130b..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/ACCAGTTG.sam
+++ /dev/null
@@ -1,2 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.ACCAGTTG	LB:LN_ACCAGTTG	SM:SA_ACCAGTTG	CN:BI
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/ACGAAATC.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/ACGAAATC.sam
deleted file mode 100644
index a525086..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/ACGAAATC.sam
+++ /dev/null
@@ -1,2 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.ACGAAATC	LB:LN_ACGAAATC	SM:SA_ACGAAATC	CN:BI
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/ACTAAGAC.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/ACTAAGAC.sam
deleted file mode 100644
index 9d4aada..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/ACTAAGAC.sam
+++ /dev/null
@@ -1,10 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.ACTAAGAC	LB:LN_ACTAAGAC	SM:SA_ACTAAGAC	CN:BI
-HiMom:1:1101:1259:2152	77	*	0	0	*	*	0	0	CACCTATAATCCCAGCTACTCCAGA	CCCFFFFFHHHHHJJJJJJIJJJIJ	RG:Z:HiMom.1
-HiMom:1:1101:1259:2152	141	*	0	0	*	*	0	0	ATTTTTATATTTTTTTAGACATAGG	CCCFFFFFGHHHHJJJJIGIIJJJJ	RG:Z:HiMom.1
-HiMom:1:1101:1261:2127	589	*	0	0	*	*	0	0	.TGAAATCTGGATAGGCTGGAGTTA	#0-@@@###################	RG:Z:HiMom.1
-HiMom:1:1101:1261:2127	653	*	0	0	*	*	0	0	TTTTTTTTTTTTTTTTTTTTTTTTT	CCCFFFFFHGHHHJJIFDDDDDDDD	RG:Z:HiMom.1
-HiMom:1:2101:1021:2209	77	*	0	0	*	*	0	0	.GGCCCCACCCTCCTCCAGCACGTC	#1=DDFFFHHHHHJJJJJJHIIHFH	RG:Z:HiMom.1
-HiMom:1:2101:1021:2209	141	*	0	0	*	*	0	0	..GGAAGGCTGCTAGCTGGCCAGAG	##08@>??@@??@?????????>?@	RG:Z:HiMom.1
-HiMom:1:2101:1262:2128	589	*	0	0	*	*	0	0	AGCAGAAGGGCAAAAGCTGGCTTGA	9;<@:@###################	RG:Z:HiMom.1
-HiMom:1:2101:1262:2128	653	*	0	0	*	*	0	0	TCTTGTGGTAACTTTTCTGACACCT	-(---9@;@?:8>?4:>?@######	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/ACTGTACC.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/ACTGTACC.sam
deleted file mode 100644
index 97f5e52..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/ACTGTACC.sam
+++ /dev/null
@@ -1,2 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.ACTGTACC	LB:LN_ACTGTACC	SM:SA_ACTGTACC	CN:BI
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/ACTGTATC.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/ACTGTATC.sam
deleted file mode 100644
index a65e0b6..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/ACTGTATC.sam
+++ /dev/null
@@ -1,10 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.ACTGTATC	LB:LN_ACTGTATC	SM:SA_ACTGTATC	CN:BI
-HiMom:1:1201:1458:2109	77	*	0	0	*	*	0	0	.GAGACCATAGAGCGGATGCTTTCA	#1=DDDFFHHGHGIJJIGIIJJJJJ	RG:Z:HiMom.1
-HiMom:1:1201:1458:2109	141	*	0	0	*	*	0	0	GATACGAACACACAAGAACTTTTTT	CCCFFFFFHHHHHJJJJJJJJJJJI	RG:Z:HiMom.1
-HiMom:1:2101:1105:2131	77	*	0	0	*	*	0	0	TTGGAACACAGCGGGAATCACAGCA	CCCFFFFFHHHHHJIJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:2101:1105:2131	141	*	0	0	*	*	0	0	CAGCAGCAGCAACAGCAGAAACATG	CCCFFFFFHHHHHJJJJJIJJJJJJ	RG:Z:HiMom.1
-HiMom:1:2101:1349:2084	77	*	0	0	*	*	0	0	.CAAGTAGCAGTGTCACGCCTTAGC	#1=DDBDDADFDDBEH at HC=CEGG@	RG:Z:HiMom.1
-HiMom:1:2101:1349:2084	141	*	0	0	*	*	0	0	AGTCTGAATCATTGGTGTCTGAAGA	<5;??=>=>>?##############	RG:Z:HiMom.1
-HiMom:1:2101:1365:2094	77	*	0	0	*	*	0	0	.AAGGTGAAGGCCGGCGCGCTCGCC	#1=BDDDFFHHHHJGGGIGFIHIIJ	RG:Z:HiMom.1
-HiMom:1:2101:1365:2094	141	*	0	0	*	*	0	0	GCTCTTCCGATCTTGTGCTCTTCCG	CCCFFFFDHFHHGJJIIJIJJIHII	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/AGAAAAGA.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/AGAAAAGA.sam
deleted file mode 100644
index 2c9984e..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/AGAAAAGA.sam
+++ /dev/null
@@ -1,2 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.AGAAAAGA	LB:LN_AGAAAAGA	SM:SA_AGAAAAGA	CN:BI
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/AGCATGGA.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/AGCATGGA.sam
deleted file mode 100644
index 3eee1bc..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/AGCATGGA.sam
+++ /dev/null
@@ -1,8 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.AGCATGGA	LB:LN_AGCATGGA	SM:SA_AGCATGGA	CN:BI
-HiMom:1:1101:1406:2222	77	*	0	0	*	*	0	0	CTCCCCCCGGGCTGAACCAGGGTAC	CCCFFDDDDHDFHIIIIIIIII9DG	RG:Z:HiMom.1
-HiMom:1:1101:1406:2222	141	*	0	0	*	*	0	0	GGCTGGACTCCCCTGGTTCTGGGCA	;?@DDDBD?FHDFGIIIGIGHHIII	RG:Z:HiMom.1
-HiMom:1:1201:1291:2158	77	*	0	0	*	*	0	0	AGAAGGGGAAAGCCTTCATCTTGGC	BCBFFFFFHHHHHJJJJJIIFIJIJ	RG:Z:HiMom.1
-HiMom:1:1201:1291:2158	141	*	0	0	*	*	0	0	CGTGTGCTCTTCCGATCTGATGGGC	@CCFFFDD?FHHFGEHHIIDHIIII	RG:Z:HiMom.1
-HiMom:1:2101:1370:2116	77	*	0	0	*	*	0	0	.TGGTGGTCCATAGAGATTTGAAAC	#1:4BD7DACF?FCA:4+<ACHIIH	RG:Z:HiMom.1
-HiMom:1:2101:1370:2116	141	*	0	0	*	*	0	0	CACCATCTGACATCATGTTTGAAAG	@@@DFFFDFFHDHIGBHHII<HEDB	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/AGGTAAGG.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/AGGTAAGG.sam
deleted file mode 100644
index f9c4fae..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/AGGTAAGG.sam
+++ /dev/null
@@ -1,10 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.AGGTAAGG	LB:LN_AGGTAAGG	SM:SA_AGGTAAGG	CN:BI
-HiMom:1:1101:1263:2236	589	*	0	0	*	*	0	0	CTTTGAAGACATTGTGAGATCTGTA	<==A<42 at C+A4A?,2A@=4 at 7A??	RG:Z:HiMom.1
-HiMom:1:1101:1263:2236	653	*	0	0	*	*	0	0	AGTTCTTCAGTAATTTTAGTACTGC	#########################	RG:Z:HiMom.1
-HiMom:1:2101:1054:2162	77	*	0	0	*	*	0	0	.CCAGGTGTCTTCCCGGGCCCTGCC	#1=DDFBDFHHHHJJJJJIJJJJJJ	RG:Z:HiMom.1
-HiMom:1:2101:1054:2162	141	*	0	0	*	*	0	0	.GGACAGGGAAGGGAAGGAAGGGTG	#4=DDFDFHHHHHJIJIIDHHGICG	RG:Z:HiMom.1
-HiMom:1:2101:1163:2203	77	*	0	0	*	*	0	0	TCTCCATGTGAAACAAGCAAAAAGA	CCCFFFFFHHHHGJJJIJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:2101:1163:2203	141	*	0	0	*	*	0	0	TTGGTTCACTTATGTATTTATGAAT	@CCFDFFFHHHHHJHIIJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:2101:1249:2231	77	*	0	0	*	*	0	0	GTTATTGATAGGATACTGTACAAAC	@BCFFFFDHHHHFIJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:2101:1249:2231	141	*	0	0	*	*	0	0	TCTCTCGGCCTTCCACTCTAGCATA	@@@FFFFFFHHGHIJJJGJIIJHIJ	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/AGGTCGCA.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/AGGTCGCA.sam
deleted file mode 100644
index d722d26..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/AGGTCGCA.sam
+++ /dev/null
@@ -1,10 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.AGGTCGCA	LB:LN_AGGTCGCA	SM:SA_AGGTCGCA	CN:BI
-HiMom:1:1101:1150:2228	77	*	0	0	*	*	0	0	GCTACTCAGTAGACAGTCCCACCCT	@@CADDDDFCFHHIIIIGGIIGGGI	RG:Z:HiMom.1
-HiMom:1:1101:1150:2228	141	*	0	0	*	*	0	0	ATGGGAGGCGATTCCTAGGGGGTTG	8?=DD8;@BH6DHD<FGGGEIGHIG	RG:Z:HiMom.1
-HiMom:1:1101:1491:2120	77	*	0	0	*	*	0	0	.GGCAGGTGCCCCCACTTGACTCTC	#1?DFFFFGHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1101:1491:2120	141	*	0	0	*	*	0	0	GGCCAGGCTGAACTTCTGAGCTGCT	CCCFFFFFHHHGHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1201:1190:2194	77	*	0	0	*	*	0	0	AACCTGGCGCTAAACCATTCGTAGA	CCCFFFFFHHHHHJJJJJJJJIJJJ	RG:Z:HiMom.1
-HiMom:1:1201:1190:2194	141	*	0	0	*	*	0	0	ACAAACCCTTGTGTCGAGGGCTGAC	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:2101:1188:2195	77	*	0	0	*	*	0	0	TTAGACCGTCGTGAGACAGGTTAGT	@CCFFFFFHHHHHJJJJJIIEHIJH	RG:Z:HiMom.1
-HiMom:1:2101:1188:2195	141	*	0	0	*	*	0	0	GCACATACACCAAATGTCTGAACCT	CCCFFFFFHHHHHJJJHIJJJJJJJ	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/ATTATCAA.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/ATTATCAA.sam
deleted file mode 100644
index 5dc56b9..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/ATTATCAA.sam
+++ /dev/null
@@ -1,12 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.ATTATCAA	LB:LN_ATTATCAA	SM:SA_ATTATCAA	CN:BI
-HiMom:1:1101:1100:2207	77	*	0	0	*	*	0	0	ACGACAGACGTTCTTTCTTTGCTGC	CCCFFFFFHHFHHJIJJJJJHIJJH	RG:Z:HiMom.1
-HiMom:1:1101:1100:2207	141	*	0	0	*	*	0	0	AGGCT............G.......	#########################	RG:Z:HiMom.1
-HiMom:1:1101:1157:2135	77	*	0	0	*	*	0	0	.GGACATTGTAATCATTTCTTACAA	#1=DD?DDHHHHHGGHIIIIIIIII	RG:Z:HiMom.1
-HiMom:1:1101:1157:2135	141	*	0	0	*	*	0	0	TTTAAAGTCTTAATCAAAGATGATA	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1101:1269:2170	77	*	0	0	*	*	0	0	ACAGTGTGGGAGGCAGACGAAGAGA	@@@DDDDDFA:C at EGA?FD<FFHII	RG:Z:HiMom.1
-HiMom:1:1101:1269:2170	141	*	0	0	*	*	0	0	TTCCAAGCCTGTGCTTTAAGGAAAA	@@<ADBDBDF8DDCFH at GIE@@GGH	RG:Z:HiMom.1
-HiMom:1:1201:1018:2217	589	*	0	0	*	*	0	0	.TTTCTCTGGGCGCAAAGATGTTCA	#07;8=8<<99(:=@@/@7>>6=?>	RG:Z:HiMom.1
-HiMom:1:1201:1018:2217	653	*	0	0	*	*	0	0	.........................	#########################	RG:Z:HiMom.1	XN:i:1
-HiMom:1:1201:1118:2198	77	*	0	0	*	*	0	0	CAAGTGTACAGGATTAGACTGGGTT	BCCFDEBDHHHHHIJJJGIIIJJGH	RG:Z:HiMom.1
-HiMom:1:1201:1118:2198	141	*	0	0	*	*	0	0	AATAAACTTTATTAAAGCAGTTAAA	C at CFFFFFHDHHHGIIIJJJIJJJJ	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/ATTCCTCT.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/ATTCCTCT.sam
deleted file mode 100644
index 95b97b9..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/ATTCCTCT.sam
+++ /dev/null
@@ -1,10 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.ATTCCTCT	LB:LN_ATTCCTCT	SM:SA_ATTCCTCT	CN:BI
-HiMom:1:1101:1309:2210	77	*	0	0	*	*	0	0	ACACCAACCACCCAACTATCTATAA	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1101:1309:2210	141	*	0	0	*	*	0	0	AGTGGGCTAGGGCATTTTTAATCTT	@@?DFFDFHHHDFHJIJJIJGIIIJ	RG:Z:HiMom.1
-HiMom:1:1201:1018:2133	77	*	0	0	*	*	0	0	.AAAACTTGAGGATGCTATGCAAGC	#1:B:ADDDDDDDEEAEBF9FFEBF	RG:Z:HiMom.1
-HiMom:1:1201:1018:2133	141	*	0	0	*	*	0	0	.........................	#########################	RG:Z:HiMom.1	XN:i:1
-HiMom:1:1201:1073:2225	77	*	0	0	*	*	0	0	GGGGCTGAGACCTTTGCTGATGGTG	@@@FFFFFHHHGHJJJJJIIIGICH	RG:Z:HiMom.1
-HiMom:1:1201:1073:2225	141	*	0	0	*	*	0	0	CGTGTGCTCTTCCGATCTGGAGGGT	@BBDFFFFHHHHHJJJJJJJJJJJ:	RG:Z:HiMom.1
-HiMom:1:1201:1242:2207	77	*	0	0	*	*	0	0	ATGGCAAAGTGGTGTCTGAGACCAA	BCCFFFFFGHHHHHIIIJFHIJJJJ	RG:Z:HiMom.1
-HiMom:1:1201:1242:2207	141	*	0	0	*	*	0	0	ATCTTTTATTGGCCTCCTGCTCCCC	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/CAACTCTC.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/CAACTCTC.sam
deleted file mode 100644
index c2a8308..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/CAACTCTC.sam
+++ /dev/null
@@ -1,12 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.CAACTCTC	LB:LN_CAACTCTC	SM:SA_CAACTCTC	CN:BI
-HiMom:1:1101:1140:2120	77	*	0	0	*	*	0	0	.CCCCAACATTCTAATTATGCCTCA	#1:BDFFDHFFDFIJJJIIJIIIII	RG:Z:HiMom.1
-HiMom:1:1101:1140:2120	141	*	0	0	*	*	0	0	TTTTTTTTTTTTTAACTTTGCAAAT	@@@DDDDDHHHHFB at 9FHI@BFH@@	RG:Z:HiMom.1
-HiMom:1:1101:1328:2225	77	*	0	0	*	*	0	0	GAAATGCATCTGTCTTAGAAACTGG	??@=BDDDFDD<<,<2:C<F:FFEA	RG:Z:HiMom.1
-HiMom:1:1101:1328:2225	141	*	0	0	*	*	0	0	AGGAAATTAGGACTTACCTGACATA	#########################	RG:Z:HiMom.1
-HiMom:1:1201:1127:2112	589	*	0	0	*	*	0	0	.GTCAAGGATGTTCGTCGTGGCAAC	#1=BDDDDDDDDDID<AE?@<CEEE	RG:Z:HiMom.1
-HiMom:1:1201:1127:2112	653	*	0	0	*	*	0	0	TAATCACCTGAGCAGTGAAGCCAGC	@<@?BDDDHD?FDBHI?AHGGGDFH	RG:Z:HiMom.1
-HiMom:1:1201:1452:2143	77	*	0	0	*	*	0	0	TATCCCCTCTAAGACGGACCTGGGT	CCCFFFFFHHHHHJJIIIJJJJJJG	RG:Z:HiMom.1
-HiMom:1:1201:1452:2143	141	*	0	0	*	*	0	0	TTTTAGTCTTAGCATTTACTTTCCC	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1201:1486:2146	589	*	0	0	*	*	0	0	GTTCTCTGTCCCCAGGTCCTGTCTC	===A7<7222<<=C=?+<7>@?ACB	RG:Z:HiMom.1
-HiMom:1:1201:1486:2146	653	*	0	0	*	*	0	0	TTTTTTTTTTTTTTTTTTTTTGGGC	<<<@??@??@???????########	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/CAATAGAC.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/CAATAGAC.sam
deleted file mode 100644
index a69b8ed..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/CAATAGAC.sam
+++ /dev/null
@@ -1,2 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.CAATAGAC	LB:LN_CAATAGAC	SM:SA_CAATAGAC	CN:BI
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/CAATAGTC.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/CAATAGTC.sam
deleted file mode 100644
index 31a220d..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/CAATAGTC.sam
+++ /dev/null
@@ -1,16 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.CAATAGTC	LB:LN_CAATAGTC	SM:SA_CAATAGTC	CN:BI
-HiMom:1:1101:1316:2126	77	*	0	0	*	*	0	0	.AAAAAAAAAAAAAAAAAAAAAAAA	#1BDFFFFHHHHHJJJJFDDDDDDD	RG:Z:HiMom.1	XN:i:1
-HiMom:1:1101:1316:2126	141	*	0	0	*	*	0	0	TCTTTTTTTTTTTTTTTTTTTTTTT	CCCFFFFFHHHHHJJJJHFDDDDDD	RG:Z:HiMom.1
-HiMom:1:1101:1399:2128	77	*	0	0	*	*	0	0	.TGCCCTTCGTCCTGGGAAACGGGG	#1BDFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1101:1399:2128	141	*	0	0	*	*	0	0	ACAAACCCTTGTGTCGAGGGCTGAC	CCCFFFFFHHHHHIJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1201:1054:2151	77	*	0	0	*	*	0	0	.TAGTGCTGGGCACTAAGTAATACC	#4=DDDFFHHHHHJJJJJHIJJJJJ	RG:Z:HiMom.1
-HiMom:1:1201:1054:2151	141	*	0	0	*	*	0	0	GTCAGGCACTGAGAATATATGGGTG	CBCFFFFFHHHHHJJJJJJJJJJEG	RG:Z:HiMom.1
-HiMom:1:1201:1345:2181	77	*	0	0	*	*	0	0	GGATAATCCTATTTATTACCTCAGA	BBBDDFFFHHHHHJJJJJJJJJIJJ	RG:Z:HiMom.1
-HiMom:1:1201:1345:2181	141	*	0	0	*	*	0	0	ATACGGATGTGTTTAGGAGTGGGAC	CCCFFFFFHHHHHIIJJHJFHIJIJ	RG:Z:HiMom.1
-HiMom:1:1201:1392:2184	77	*	0	0	*	*	0	0	TTTCAGATTGGTCATTGTTAGTGTA	??@BDDDEHBHADHHIIEHDHFHFF	RG:Z:HiMom.1
-HiMom:1:1201:1392:2184	141	*	0	0	*	*	0	0	ATCTTTATTCATTTGTATGATCTTA	@@BFFFFFHFFHFHIHIIJIJJJJI	RG:Z:HiMom.1
-HiMom:1:2101:1172:2152	589	*	0	0	*	*	0	0	AACACGGACAAAGGAGTCTAACACG	<<<??8@@#################	RG:Z:HiMom.1
-HiMom:1:2101:1172:2152	653	*	0	0	*	*	0	0	ATCGTTTCTGGGGACTAGTGAGGCG	#########################	RG:Z:HiMom.1
-HiMom:1:2101:1491:2093	77	*	0	0	*	*	0	0	.CTATGCCGATCGGGTGTCCGCACT	#1=DDDDDHHFHHIIEHHHBGHGII	RG:Z:HiMom.1
-HiMom:1:2101:1491:2093	141	*	0	0	*	*	0	0	AGAGACGGGGTCTCGCTATGTTGCC	BCCDFFFFHHHHHJIIJJJJIJIJJ	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/CAGCGGAT.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/CAGCGGAT.sam
deleted file mode 100644
index 0065e69..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/CAGCGGAT.sam
+++ /dev/null
@@ -1,2 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.CAGCGGAT	LB:LN_CAGCGGAT	SM:SA_CAGCGGAT	CN:BI
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/CAGCGGTA.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/CAGCGGTA.sam
deleted file mode 100644
index 01b4315..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/CAGCGGTA.sam
+++ /dev/null
@@ -1,12 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.CAGCGGTA	LB:LN_CAGCGGTA	SM:SA_CAGCGGTA	CN:BI
-HiMom:1:1101:1420:2213	77	*	0	0	*	*	0	0	TACCTGGTTGATCCTGCCAGTAGCA	@@CFFFFDDHHGHJGGHIJJIHGBH	RG:Z:HiMom.1
-HiMom:1:1101:1420:2213	141	*	0	0	*	*	0	0	TTCACTGTACCGGCCGTGCGTACTT	@CCFFFFDHHHFGIJJJJJJGHIGG	RG:Z:HiMom.1
-HiMom:1:1201:1364:2113	77	*	0	0	*	*	0	0	.CACTCATTTTCTTATGTGGGATAT	#1=DDFDFHHHHHIJJIFHIIHHHI	RG:Z:HiMom.1
-HiMom:1:1201:1364:2113	141	*	0	0	*	*	0	0	TAAAGAGAGCCAGTGGAGTTACGAC	#########################	RG:Z:HiMom.1
-HiMom:1:2101:1072:2170	77	*	0	0	*	*	0	0	ATCACCGCACTCATTTCCCGCTTCC	CCCFFFFFHHHACEEGHIIBHIIII	RG:Z:HiMom.1
-HiMom:1:2101:1072:2170	141	*	0	0	*	*	0	0	.GGGGAGACAGAGAGGATCAGAAGT	#4=BDDFDHHDFHEGFEGGIJIIIG	RG:Z:HiMom.1
-HiMom:1:2101:1123:2095	77	*	0	0	*	*	0	0	.TGGACAACATGTTCGAGAGCTACA	#1=BBDDDFFFFDGFGIG?F;HHFI	RG:Z:HiMom.1
-HiMom:1:2101:1123:2095	141	*	0	0	*	*	0	0	TCCGCCTCCAGCTTCAGCTTCTCCT	@@@FDDFFHHHHHJHGGJIJJJEHH	RG:Z:HiMom.1
-HiMom:1:2101:1151:2236	589	*	0	0	*	*	0	0	TTAAAGAGGTTCAGGGATGCAGAGT	#########################	RG:Z:HiMom.1
-HiMom:1:2101:1151:2236	653	*	0	0	*	*	0	0	TTTGAAGCCTCTTTATCCTTGGCAT	#########################	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/CCAACATT.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/CCAACATT.sam
deleted file mode 100644
index 5e5edad..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/CCAACATT.sam
+++ /dev/null
@@ -1,16 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.CCAACATT	LB:LN_CCAACATT	SM:SA_CCAACATT	CN:BI
-HiMom:1:1101:1083:2193	77	*	0	0	*	*	0	0	TTCTACCTCACCTTAGGGAGAAGAC	@@@DDBDDD>F><C<4CG?EHGHIG	RG:Z:HiMom.1
-HiMom:1:1101:1083:2193	141	*	0	0	*	*	0	0	AGGCT....................	#########################	RG:Z:HiMom.1
-HiMom:1:1101:1175:2197	77	*	0	0	*	*	0	0	CCCCTGAGGACACCATCCCACTCCA	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1101:1175:2197	141	*	0	0	*	*	0	0	AAGAGCTGGGGAACATCCAGAAAGG	BC at FFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1201:1138:2227	589	*	0	0	*	*	0	0	GCTGACACAATCTCTTCCGCCTGGT	#########################	RG:Z:HiMom.1
-HiMom:1:1201:1138:2227	653	*	0	0	*	*	0	0	GACAAATATAGGAAATAGAAGCTAT	=1=A=AAA,2?4>7C<<4<A+3<AB	RG:Z:HiMom.1
-HiMom:1:1201:1260:2165	77	*	0	0	*	*	0	0	GGACACGGACAGGATTGACAGATTG	BCBFFFFFHHHHHHIIJHIIIFHIJ	RG:Z:HiMom.1
-HiMom:1:1201:1260:2165	141	*	0	0	*	*	0	0	ATCTGATCTAAGTTGGGGGACGCCG	@@@FFDFFHHHHHJJJIJIIIGIJJ	RG:Z:HiMom.1
-HiMom:1:1201:1281:2133	77	*	0	0	*	*	0	0	.GGAAATCCAGAAAACATAGAAGAT	#1=DDFFFHHHHHIJJJJJJJJIJJ	RG:Z:HiMom.1
-HiMom:1:1201:1281:2133	141	*	0	0	*	*	0	0	GCAACAAAATTTCATATGACTTAGC	CCCFFFFFHHHHHJJIIIHICHIIJ	RG:Z:HiMom.1
-HiMom:1:1201:1331:2162	77	*	0	0	*	*	0	0	ACGCTCGGCTAATTTTTGTATTTTT	@CCFFFDFHHHHHIJJJJHIJJJJJ	RG:Z:HiMom.1
-HiMom:1:1201:1331:2162	141	*	0	0	*	*	0	0	TAATCCCAGTACTTTGGGAGGCCAA	CCCFFFFFHHHHHJJJJIJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:2101:1186:2093	77	*	0	0	*	*	0	0	.CGACCATAAACGATGCCGACCGGC	#4=DFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:2101:1186:2093	141	*	0	0	*	*	0	0	AATGTTGGGAGGACAATGATGGAAA	#########################	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/CCAGCACC.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/CCAGCACC.sam
deleted file mode 100644
index f3100fa..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/CCAGCACC.sam
+++ /dev/null
@@ -1,8 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.CCAGCACC	LB:LN_CCAGCACC	SM:SA_CCAGCACC	CN:BI
-HiMom:1:1101:1212:2230	77	*	0	0	*	*	0	0	TTTCTATTAGCTCTTAGTAAGATTA	CCCFFFFFHHHHHJJJIJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1101:1212:2230	141	*	0	0	*	*	0	0	TTTTAGCTTTATTGGGGAGGGGGTG	CCCFFFFFHHGHHJJJJGJJJJJDF	RG:Z:HiMom.1
-HiMom:1:1201:1204:2228	77	*	0	0	*	*	0	0	CCGATACGCTGAGTGTGGTTTGCGG	CCCFFFFFHHHFHEGGHIHIJJJJJ	RG:Z:HiMom.1
-HiMom:1:1201:1204:2228	141	*	0	0	*	*	0	0	TCTTCTTGTCGATGAGGAACTTGGT	@?@FFFFFDHHGHJIJJGHIIJJJH	RG:Z:HiMom.1
-HiMom:1:2101:1100:2085	77	*	0	0	*	*	0	0	.CACATGGATGAGGAGAATGAGGAT	#1=DDFFFFHHHHJHIGIHHHIJEH	RG:Z:HiMom.1
-HiMom:1:2101:1100:2085	141	*	0	0	*	*	0	0	ATCTTGATCTCCTCCTTCTTGGCCT	@@@DDDDDHHFHFEIIIIHHBAHBG	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/CCATGCGT.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/CCATGCGT.sam
deleted file mode 100644
index 2f1cf36..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/CCATGCGT.sam
+++ /dev/null
@@ -1,2 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.CCATGCGT	LB:LN_CCATGCGT	SM:SA_CCATGCGT	CN:BI
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/CGCCTTCC.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/CGCCTTCC.sam
deleted file mode 100644
index 3c3b08b..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/CGCCTTCC.sam
+++ /dev/null
@@ -1,6 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.CGCCTTCC	LB:LN_CGCCTTCC	SM:SA_CGCCTTCC	CN:BI
-HiMom:1:1201:1122:2227	77	*	0	0	*	*	0	0	AGAAGACGAGGCTGAGAGTGACATC	@@@FFFFFHHHDHJGHGHCHHJJIJ	RG:Z:HiMom.1
-HiMom:1:1201:1122:2227	141	*	0	0	*	*	0	0	GTCATATAAGGCCCAGTCCAAGGAA	@@@FFFFFHHHGGIJIGGIJFIJII	RG:Z:HiMom.1
-HiMom:1:1201:1160:2109	77	*	0	0	*	*	0	0	.AGAAGCCTTTGCACCCTGGGAGGA	#1=DDDFFHHHHHJJJJJJJJIIJJ	RG:Z:HiMom.1
-HiMom:1:1201:1160:2109	141	*	0	0	*	*	0	0	ACATCCTTCCCATGCCACCAACTCG	CCCFFFFFGHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/CGCTATGT.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/CGCTATGT.sam
deleted file mode 100644
index 8191da9..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/CGCTATGT.sam
+++ /dev/null
@@ -1,12 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.CGCTATGT	LB:LN_CGCTATGT	SM:SA_CGCTATGT	CN:BI
-HiMom:1:1101:1291:2150	77	*	0	0	*	*	0	0	CGTGGGGAACCTGGCGCTAAACCAT	@BBFFFFFHHHHHJJJJIJJJJJIJ	RG:Z:HiMom.1
-HiMom:1:1101:1291:2150	141	*	0	0	*	*	0	0	ACAAACCCTTGTGTCGAGGGCTGAC	CCCFFFFFHHFHHIJJJIIIGIJIJ	RG:Z:HiMom.1
-HiMom:1:1101:1314:2233	77	*	0	0	*	*	0	0	GTTTATTGGGGCATTCCTTATCCCA	@??DDDDBDHF>FCHGGGBFAAED9	RG:Z:HiMom.1
-HiMom:1:1101:1314:2233	141	*	0	0	*	*	0	0	AGGAAAGTTGGGCTGACCTGACAGA	@@<DDD;=FBFADBCGDEH?F;FCG	RG:Z:HiMom.1
-HiMom:1:1101:1441:2148	77	*	0	0	*	*	0	0	ACTTTCACCGCTACACGACCGGGGG	CCCFFFFFHGFFHIIFIHJIGGII>	RG:Z:HiMom.1
-HiMom:1:1101:1441:2148	141	*	0	0	*	*	0	0	TTTTGGCTCTAGAGGGGGTAGAGGG	CCCFFFFFHHDFBHIIJJ1?FGHIJ	RG:Z:HiMom.1
-HiMom:1:1201:1043:2246	77	*	0	0	*	*	0	0	.TTCTCGGCTGTCATGTGCAACATT	#1=DDBDFHHHDFFBHGHGHIIJEH	RG:Z:HiMom.1
-HiMom:1:1201:1043:2246	141	*	0	0	*	*	0	0	.GCATCATTTC..GCTTCTCTCTGT	#0;@@??@=@>##22=;@??><@??	RG:Z:HiMom.1
-HiMom:1:1201:1134:2144	77	*	0	0	*	*	0	0	TGCCAGGAAGTGTTTTTTCTGGGTC	@CCFFEFFHHFFFGIJJJJJJJJGH	RG:Z:HiMom.1
-HiMom:1:1201:1134:2144	141	*	0	0	*	*	0	0	AGTGTGAGTAATGGTTGAGAGGTGG	B@?DDDFFFHHGHJHHGFIHHIFGI	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/CTAACTCG.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/CTAACTCG.sam
deleted file mode 100644
index 1f8de56..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/CTAACTCG.sam
+++ /dev/null
@@ -1,10 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.CTAACTCG	LB:LN_CTAACTCG	SM:SA_CTAACTCG	CN:BI
-HiMom:1:1101:1363:2138	77	*	0	0	*	*	0	0	.GTCTGGCCTGCACAGACATCCTAC	#1=DDFFFHHHHHJJJIJJIJJJIJ	RG:Z:HiMom.1
-HiMom:1:1101:1363:2138	141	*	0	0	*	*	0	0	GTTCTTAAACCTGTTAGAACTTCTG	C@@FFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1201:1393:2143	77	*	0	0	*	*	0	0	TGGTTGATCCTGCCAGTAGCATATG	@@@ADADDFHFFDBHE?G at HIIIEE	RG:Z:HiMom.1
-HiMom:1:1201:1393:2143	141	*	0	0	*	*	0	0	GATAAATGCACGCATCCCCCCCGCG	C at CFFFFFGGHHHHJJJJJJJJJJI	RG:Z:HiMom.1
-HiMom:1:2101:1273:2119	589	*	0	0	*	*	0	0	.AGATAAGAGTCCACACAGTTGAGT	#11AAAAA<A?4=C=7?733<ACA3	RG:Z:HiMom.1
-HiMom:1:2101:1273:2119	653	*	0	0	*	*	0	0	ATGATGGATCTTCTCTAACTTGTCA	>=><AAAAA+2AA?CB4@@ABB3?A	RG:Z:HiMom.1
-HiMom:1:2101:1414:2098	77	*	0	0	*	*	0	0	.AGGACATCGATAAAGGCGAGGTGT	#1=DDFFFHHHHHJJJJJJJJJHHG	RG:Z:HiMom.1
-HiMom:1:2101:1414:2098	141	*	0	0	*	*	0	0	TTGGGGCCGGTGCCGTCGGGCCCAA	CCCFFFFFHHHHGJJIJJJJJJJIJ	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/CTATGCGC.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/CTATGCGC.sam
deleted file mode 100644
index ee4c13b..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/CTATGCGC.sam
+++ /dev/null
@@ -1,2 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.CTATGCGC	LB:LN_CTATGCGC	SM:SA_CTATGCGC	CN:BI
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/CTATGCGT.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/CTATGCGT.sam
deleted file mode 100644
index cc86630..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/CTATGCGT.sam
+++ /dev/null
@@ -1,16 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.CTATGCGT	LB:LN_CTATGCGT	SM:SA_CTATGCGT	CN:BI
-HiMom:1:1201:1083:2121	77	*	0	0	*	*	0	0	.AGAACTGGCGCTGCGGGATGAACC	#1=BDFFFHHHHHJJJJJHIJIJJJ	RG:Z:HiMom.1
-HiMom:1:1201:1083:2121	141	*	0	0	*	*	0	0	ACACACAACACCACCGCCCTCCCCC	#########################	RG:Z:HiMom.1
-HiMom:1:1201:1185:2143	77	*	0	0	*	*	0	0	ATCTGCCTGGTTCGGCCCGCCTGCC	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1201:1185:2143	141	*	0	0	*	*	0	0	GCTGAAGGCCCGTGGGCCAGAGGTG	@CCFFFFFHHHHHJJJJJJJJJJHI	RG:Z:HiMom.1
-HiMom:1:1201:1219:2115	77	*	0	0	*	*	0	0	.TATAGTGGAGGCCGGAGCAGGAAC	#1:DABADHHHFHIIIGGHGIIIII	RG:Z:HiMom.1
-HiMom:1:1201:1219:2115	141	*	0	0	*	*	0	0	TGGGAGTAGTTCCCTGCTAAGGGAG	???DBDBDADDDDIEID:AFFD:?8	RG:Z:HiMom.1
-HiMom:1:1201:1472:2121	589	*	0	0	*	*	0	0	.TAAAGTGTGAACAAGGAAGGTCAT	#07>@<9=@################	RG:Z:HiMom.1
-HiMom:1:1201:1472:2121	653	*	0	0	*	*	0	0	GTGTGCTCTTCCGATCTGGAGGATG	=+=??A4A==A at 7A<?#########	RG:Z:HiMom.1
-HiMom:1:2101:1013:2146	77	*	0	0	*	*	0	0	.ACACTGCTGCAGATGACAAGCAGC	#4BDFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:2101:1013:2146	141	*	0	0	*	*	0	0	....CGCTAGAACCAACTTATTCAT	####24=?@@?@?@@?@@@@@@?@@	RG:Z:HiMom.1
-HiMom:1:2101:1231:2208	77	*	0	0	*	*	0	0	ACGCCGCAAGTCAGAGCCCCCCAGA	@@@DDDFFFFB:DBBEBEFDHBDDB	RG:Z:HiMom.1
-HiMom:1:2101:1231:2208	141	*	0	0	*	*	0	0	AGCCAGTGTTGGTGTGTTGACTGTT	@@;1ADABCF;BF<AACGCHEBHC<	RG:Z:HiMom.1
-HiMom:1:2101:1233:2133	589	*	0	0	*	*	0	0	GAGAGAAGCACTCTTGAGCGGGATA	0;(@((@)2@###############	RG:Z:HiMom.1
-HiMom:1:2101:1233:2133	653	*	0	0	*	*	0	0	TTTTTTTTTTTTTTTTTTTTTTTTT	CCCFFFFFGHHHHJJJFDDDDDDDD	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/CTGCGGAT.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/CTGCGGAT.sam
deleted file mode 100644
index d518e57..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/CTGCGGAT.sam
+++ /dev/null
@@ -1,8 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.CTGCGGAT	LB:LN_CTGCGGAT	SM:SA_CTGCGGAT	CN:BI
-HiMom:1:2101:1102:2221	77	*	0	0	*	*	0	0	TTTCATCTTATTTCATTGGTTTATA	CCCFFFFFHHHHHJIJJJJIJJJJJ	RG:Z:HiMom.1
-HiMom:1:2101:1102:2221	141	*	0	0	*	*	0	0	ATAACTGACTCTACTCAGTAGATTA	CCCFFFFFHHHHHJJJJJIJJJJJJ	RG:Z:HiMom.1
-HiMom:1:2101:1126:2082	77	*	0	0	*	*	0	0	.GTTTTAGGGGTGCGCAGGAGTCAA	#11=A=DD?DF at D@CCGHIEFH at BG	RG:Z:HiMom.1
-HiMom:1:2101:1126:2082	141	*	0	0	*	*	0	0	TCTCTTTCCACCTTGGTCACCTTCC	@C at DDDFFHHHHHJEGGIHHIJGIH	RG:Z:HiMom.1
-HiMom:1:2101:1216:2172	77	*	0	0	*	*	0	0	TTTCTTCGCAGGATTTTTCTGAGCC	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:2101:1216:2172	141	*	0	0	*	*	0	0	GGACTTCTAGGGGATTTAGCGGGGT	CCCFFFFFHHHHHJJJJJJJJJJJD	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/CTGTAATC.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/CTGTAATC.sam
deleted file mode 100644
index d24cc80..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/CTGTAATC.sam
+++ /dev/null
@@ -1,14 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.CTGTAATC	LB:LN_CTGTAATC	SM:SA_CTGTAATC	CN:BI
-HiMom:1:1101:1403:2194	77	*	0	0	*	*	0	0	CTAAACAGAGAGAAGGTTTCTCTTT	CCCFFFFFHHHHHJJJFHIJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1101:1403:2194	141	*	0	0	*	*	0	0	ACATGGTGAAACCCTGTCTCTACTA	CCCFFFDDHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1201:1045:2105	589	*	0	0	*	*	0	0	.TAAAGAGAAATCAAGAATACTATT	#-4@?(@)@@###############	RG:Z:HiMom.1
-HiMom:1:1201:1045:2105	653	*	0	0	*	*	0	0	.TTTTTTTTTT..TTTTTTTTTTTT	#0;@@@@@@@?##0:????????=<	RG:Z:HiMom.1
-HiMom:1:1201:1483:2126	589	*	0	0	*	*	0	0	.TGATAAGGTGTTGCTATGTTACCC	#1:D?DDDDA??2:<CC4:AEDF>?	RG:Z:HiMom.1
-HiMom:1:1201:1483:2126	653	*	0	0	*	*	0	0	GCATGCAGCTGGGTGCTGTGATGCA	@@@DDDBB<DD8F<<CGG?AA?A<F	RG:Z:HiMom.1
-HiMom:1:2101:1011:2102	77	*	0	0	*	*	0	0	.AAACAAAACTGTAGAACTGTGTAT	#1=DDFFFHHHHHJJIJJJIHHHJJ	RG:Z:HiMom.1
-HiMom:1:2101:1011:2102	141	*	0	0	*	*	0	0	.....TCACACATAATTTTAAAATT	#####22@?@@??@@@@@??@@@@@	RG:Z:HiMom.1
-HiMom:1:2101:1245:2154	77	*	0	0	*	*	0	0	TCGTTAAGTATATTCTTAGGTATTT	CCCFFDFFFHFHHIIJJJJJFJJJI	RG:Z:HiMom.1
-HiMom:1:2101:1245:2154	141	*	0	0	*	*	0	0	ACCAATCAGTAGCACCACTATACAC	CCCFFFFFHHHHHJJJJJJIJJJJJ	RG:Z:HiMom.1
-HiMom:1:2101:1386:2105	77	*	0	0	*	*	0	0	.TACTAAAGAAAAAGTTGAAGAACT	#1=DDDFFHHHHHJJGHIJJJJIJJ	RG:Z:HiMom.1
-HiMom:1:2101:1386:2105	141	*	0	0	*	*	0	0	AGGAATTATTCTTCTGCCATAAGGT	B@@DDFFFHGFHHIJJJJJGIGIJH	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/GAAAAAAA.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/GAAAAAAA.sam
deleted file mode 100644
index a05c01a..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/GAAAAAAA.sam
+++ /dev/null
@@ -1,2 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.GAAAAAAA	LB:LN_GAAAAAAA	SM:SA_GAAAAAAA	CN:BI
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/GAACGAT..sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/GAACGAT..sam
deleted file mode 100644
index 8142ba9..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/GAACGAT..sam
+++ /dev/null
@@ -1,2 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.GAACGAT.	LB:LN_GAACGAT.	SM:SA_GAACGAT.	CN:BI
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/GAAGGAAG.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/GAAGGAAG.sam
deleted file mode 100644
index 5fa6e1f..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/GAAGGAAG.sam
+++ /dev/null
@@ -1,8 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.GAAGGAAG	LB:LN_GAAGGAAG	SM:SA_GAAGGAAG	CN:BI
-HiMom:1:1101:1338:2175	77	*	0	0	*	*	0	0	CCCACCTTCCGGCGGCCGAAGACAC	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1101:1338:2175	141	*	0	0	*	*	0	0	GCTTGTTGGCTTTAACATCCACAAT	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1201:1028:2202	77	*	0	0	*	*	0	0	.TCCTGGGAAACGGGGCGCGGCTGG	#4BDDDFFHHHHHIJIIJJJJJJIJ	RG:Z:HiMom.1
-HiMom:1:1201:1028:2202	141	*	0	0	*	*	0	0	..AAAC.C.T.......GG..TG..	##42@?###################	RG:Z:HiMom.1
-HiMom:1:2101:1084:2188	77	*	0	0	*	*	0	0	TTGCTGCATGGGTTAATTGAGAATA	CCCFFFFFHHHHFHHIIJJIJJJJJ	RG:Z:HiMom.1
-HiMom:1:2101:1084:2188	141	*	0	0	*	*	0	0	TACAAGGTCAAAATCAGCAACAAGT	CCCFFFFDHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/GACCAGGA.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/GACCAGGA.sam
deleted file mode 100644
index 9affca8..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/GACCAGGA.sam
+++ /dev/null
@@ -1,16 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.GACCAGGA	LB:LN_GACCAGGA	SM:SA_GACCAGGA	CN:BI
-HiMom:1:1101:1089:2172	77	*	0	0	*	*	0	0	TTCCAGCATGCGGTTTAAGTAGGAT	@CCFDFDBDFBF:<CEBHAFHHICH	RG:Z:HiMom.1
-HiMom:1:1101:1089:2172	141	*	0	0	*	*	0	0	TCCGG....................	:<<??####################	RG:Z:HiMom.1
-HiMom:1:1101:1347:2149	77	*	0	0	*	*	0	0	GAGCAGATCGGAAGAGCACAGATCG	@@@FFDDDHHHHHIJJBGGHJIHEG	RG:Z:HiMom.1
-HiMom:1:1101:1347:2149	141	*	0	0	*	*	0	0	GCTCTTCCGATCTGTGCTCTTCCGA	CCCFFFFFDFHHFIJDGIGGHGIGH	RG:Z:HiMom.1
-HiMom:1:1201:1095:2146	77	*	0	0	*	*	0	0	GCTGAGTCATGTAGTAAGCCTGTGC	BB at FDDDFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1201:1095:2146	141	*	0	0	*	*	0	0	ACTGACAACACCAAATGCTGCTAAG	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1201:1123:2161	589	*	0	0	*	*	0	0	CACTAACTCCTGACCTCAAATAATC	?7?=DD?DD+CDBE>E at EEF@+<CF	RG:Z:HiMom.1
-HiMom:1:1201:1123:2161	653	*	0	0	*	*	0	0	CGTGTGCTCTTCCGATCTGCATACA	===AAAA8AAAA<AAA)@CBA9>A#	RG:Z:HiMom.1
-HiMom:1:1201:1439:2156	77	*	0	0	*	*	0	0	AGCCGCGAGGTGCTGGCGGACTTCC	:;1BDDDAA88A<?<E1C:D#####	RG:Z:HiMom.1
-HiMom:1:1201:1439:2156	141	*	0	0	*	*	0	0	GGAGATTATTTGCCTTGAAGTAAGC	-;(22<>>@>8@>8;@#########	RG:Z:HiMom.1
-HiMom:1:2101:1207:2084	589	*	0	0	*	*	0	0	.TAGATGACCAAAACTTGCAGGGCA	#1:A<?@A+7A=?CBCCBCCBAAAA	RG:Z:HiMom.1
-HiMom:1:2101:1207:2084	653	*	0	0	*	*	0	0	TCACCACTCTTCTGGGCATCCCCTG	@@@DDEDFHHHHHIJIHHGHGGJJJ	RG:Z:HiMom.1
-HiMom:1:2101:1312:2105	77	*	0	0	*	*	0	0	.TTCCCTCAGGATAGCTGGCGCTCT	#1=DDFFFGHGHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:2101:1312:2105	141	*	0	0	*	*	0	0	GTTGAGAATAGGTTGAGATCGTTTC	@CCFFFDFHHFHDHIJJJJJJJIJJ	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/GACCAGGC.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/GACCAGGC.sam
deleted file mode 100644
index d18d0dc..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/GACCAGGC.sam
+++ /dev/null
@@ -1,2 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.GACCAGGC	LB:LN_GACCAGGC	SM:SA_GACCAGGC	CN:BI
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/GACCGTTG.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/GACCGTTG.sam
deleted file mode 100644
index 126546f..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/GACCGTTG.sam
+++ /dev/null
@@ -1,10 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.GACCGTTG	LB:LN_GACCGTTG	SM:SA_GACCGTTG	CN:BI
-HiMom:1:1101:1218:2200	77	*	0	0	*	*	0	0	GCACCGGAAGAGCACACAGATCGGA	CCCFFFFDFHGHHJJIJIJJJJJJI	RG:Z:HiMom.1
-HiMom:1:1101:1218:2200	141	*	0	0	*	*	0	0	GCTCTTCCGATCTATCTGCTCGTCC	(-(=34???3;@#############	RG:Z:HiMom.1
-HiMom:1:1101:1257:2223	77	*	0	0	*	*	0	0	TGTATTCGAGAGATCAAAGAGAGAG	@@=DDBDD?FFHHEIDBDFCEDBAF	RG:Z:HiMom.1
-HiMom:1:1101:1257:2223	141	*	0	0	*	*	0	0	TGCTCTTCCGATCTTTTAGCAAAGC	:?@DDBDDHFFHDGIGIIJJJGGGI	RG:Z:HiMom.1
-HiMom:1:1201:1180:2119	77	*	0	0	*	*	0	0	.TGAAAGATTTAGAGAGCTTACAAA	#1=DDDDDHHHGHJJIIJJJJIJJI	RG:Z:HiMom.1
-HiMom:1:1201:1180:2119	141	*	0	0	*	*	0	0	GCTCTAAATTTTGCTTTTCTACAGC	CCCFFFFFHHHHHJJJJIJIJJIJJ	RG:Z:HiMom.1
-HiMom:1:2101:1036:2087	77	*	0	0	*	*	0	0	.TGTAGTTTCTTTAGGCAAATTTGT	#4=BDDDFHHHHHJJJJJJIIJJJI	RG:Z:HiMom.1
-HiMom:1:2101:1036:2087	141	*	0	0	*	*	0	0	.GTCCACTTACGAAGCAAATACTTT	#4=DDFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/GACCTAAC.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/GACCTAAC.sam
deleted file mode 100644
index 92d814b..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/GACCTAAC.sam
+++ /dev/null
@@ -1,4 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.GACCTAAC	LB:LN_GACCTAAC	SM:SA_GACCTAAC	CN:BI
-HiMom:1:1101:1302:2244	77	*	0	0	*	*	0	0	GGAAAAGACGGAAAGGTTCTATCTC	@C at DFFFDFHHHHJIJHHIJJJJJI	RG:Z:HiMom.1
-HiMom:1:1101:1302:2244	141	*	0	0	*	*	0	0	TGAATACATATAACAAATGCAAAAA	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/GATATCCA.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/GATATCCA.sam
deleted file mode 100644
index 6c13539..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/GATATCCA.sam
+++ /dev/null
@@ -1,8 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.GATATCCA	LB:LN_GATATCCA	SM:SA_GATATCCA	CN:BI
-HiMom:1:1101:1460:2176	77	*	0	0	*	*	0	0	AGTCCAGGCTGAGCCCAGGGAAGAA	CCCFFFFFHHHHGJIJJIJJHIJJI	RG:Z:HiMom.1
-HiMom:1:1101:1460:2176	141	*	0	0	*	*	0	0	AGGAAAAAGACACAACAAGTCCAAC	#########################	RG:Z:HiMom.1
-HiMom:1:2101:1031:2163	77	*	0	0	*	*	0	0	.TTTCCATGGCCGTCACCTTTGGGT	#4=DDFFFHHHHHJJJJJJJJJJJI	RG:Z:HiMom.1
-HiMom:1:2101:1031:2163	141	*	0	0	*	*	0	0	..ACATTTGTCACCACTAGCCACCA	##0<@?@@@@@@@@@@?@@@@@@@?	RG:Z:HiMom.1
-HiMom:1:2101:1226:2088	77	*	0	0	*	*	0	0	.GATCGGAAGAGCACACGTTTGACT	#4=DAA=DDFHFHIIBFGHHIG>EG	RG:Z:HiMom.1
-HiMom:1:2101:1226:2088	141	*	0	0	*	*	0	0	GCTCTTCCGATCTAGGTAATAGCTA	==?BDFFFDCDDHFFFAFHDHIJGJ	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/GCCGTCGA.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/GCCGTCGA.sam
deleted file mode 100644
index 353c9f2..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/GCCGTCGA.sam
+++ /dev/null
@@ -1,12 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.GCCGTCGA	LB:LN_GCCGTCGA	SM:SA_GCCGTCGA	CN:BI
-HiMom:1:1101:1111:2148	77	*	0	0	*	*	0	0	GTGGAGACCACCTCCGAGGCCTTGT	BBCFFFFFHHHHHJJJIJJJJJJJI	RG:Z:HiMom.1
-HiMom:1:1101:1111:2148	141	*	0	0	*	*	0	0	GCGAA.A..........GGACGAC.	#########################	RG:Z:HiMom.1
-HiMom:1:1101:1221:2143	77	*	0	0	*	*	0	0	TTTGGTGGAAATTTTTTGTTATGAT	CCCFFBDBHFD?FBFHIIGGIC at EF	RG:Z:HiMom.1
-HiMom:1:1101:1221:2143	141	*	0	0	*	*	0	0	CAATTGAATGTCTGCACAGCCGCTT	@@@FFFFDHHHHHJJJIIIJGHIJJ	RG:Z:HiMom.1
-HiMom:1:1101:1327:2200	589	*	0	0	*	*	0	0	AGGGGGATCCGCCGGGGGACCACAA	#########################	RG:Z:HiMom.1
-HiMom:1:1101:1327:2200	653	*	0	0	*	*	0	0	GTCATCTGGGCTGTCGACAGGTGTC	@B at FFFFFHHHHGIJJJJJJIFHHI	RG:Z:HiMom.1
-HiMom:1:2101:1122:2136	77	*	0	0	*	*	0	0	GTAGGCGCTCAGCAAATACTTGTCG	@@@DDDD8?<CACEHHBBHDAAFH@	RG:Z:HiMom.1
-HiMom:1:2101:1122:2136	141	*	0	0	*	*	0	0	CTTGCCAGCCTGCAGGCCCCGCGGC	???BBAABDD?DDIID)A:3<EADD	RG:Z:HiMom.1
-HiMom:1:2101:1459:2083	77	*	0	0	*	*	0	0	.CACACGCCACACGGAGCACACTTT	#4=DDFFFHHHHHJJJJJJJJIIJJ	RG:Z:HiMom.1
-HiMom:1:2101:1459:2083	141	*	0	0	*	*	0	0	ATTTCACCAAAATAATCAGAAGGCC	CCCFFFFDBHGHHIGGIJFJJGGFH	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/GCCTAGCC.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/GCCTAGCC.sam
deleted file mode 100644
index 2f7fbb6..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/GCCTAGCC.sam
+++ /dev/null
@@ -1,12 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.GCCTAGCC	LB:LN_GCCTAGCC	SM:SA_GCCTAGCC	CN:BI
-HiMom:1:1101:1165:2239	77	*	0	0	*	*	0	0	GGCGGAGGCAGCATTTCAGCTGTGA	CCCFFDFFHHHHHIJJIGHHHJHHF	RG:Z:HiMom.1
-HiMom:1:1101:1165:2239	141	*	0	0	*	*	0	0	ATGGAAGTCGAGACAGAAGTGAGAA	#########################	RG:Z:HiMom.1
-HiMom:1:1101:1290:2225	77	*	0	0	*	*	0	0	CTTGGGCGCATGGTGAGGGAGGGAG	@@@FFDDFHDFH??CBEBHHIGDCD	RG:Z:HiMom.1
-HiMom:1:1101:1290:2225	141	*	0	0	*	*	0	0	TCAGTTCACTGGCAAAGACAGTCAC	C@@FBEDDFHFHGIIICEHGDHBHE	RG:Z:HiMom.1
-HiMom:1:1201:1280:2179	77	*	0	0	*	*	0	0	TTCAAGGAATCGTCCTGCCTCAGCC	BCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1201:1280:2179	141	*	0	0	*	*	0	0	GAGGACTGCTTGAGTCCAGGAGTTC	@@BFFDEFGHHHHIFGCHIJJJGGI	RG:Z:HiMom.1
-HiMom:1:1201:1300:2137	77	*	0	0	*	*	0	0	.TGTAATCCCAGCTCTCAGGGAGGC	#1=ADDDDDDDBBA?@AE?E at FE8;	RG:Z:HiMom.1
-HiMom:1:1201:1300:2137	141	*	0	0	*	*	0	0	GCTCTTCCGATCTTTTTTTTAATTT	@@?DDDDDFDHADEHGIGGED3?FD	RG:Z:HiMom.1
-HiMom:1:2101:1023:2237	589	*	0	0	*	*	0	0	.TAAACAGCTTCTGCACAGCCAAAG	#00@@?>=39>9;<412@?######	RG:Z:HiMom.1
-HiMom:1:2101:1023:2237	653	*	0	0	*	*	0	0	..TTTGTTTGAGTTCCTTGTAGATT	##0:=@?>?@???@:>?@??>?;?<	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/GTAACATC.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/GTAACATC.sam
deleted file mode 100644
index 9f8e2fa..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/GTAACATC.sam
+++ /dev/null
@@ -1,6 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.GTAACATC	LB:LN_GTAACATC	SM:SA_GTAACATC	CN:BI
-HiMom:1:1101:1188:2237	77	*	0	0	*	*	0	0	TCCCCCTCCCTTTTGCGCACACACC	@?@DDADDHDHBDH<EFHIIHG?HF	RG:Z:HiMom.1
-HiMom:1:1101:1188:2237	141	*	0	0	*	*	0	0	GCTTCCTTCAAGACAGAAGTGAGAA	CCCFFDDEFHHFFE at FDHHAIAFHG	RG:Z:HiMom.1
-HiMom:1:2101:1208:2231	589	*	0	0	*	*	0	0	TCACTAAACATCCAAACATCACTTT	#########################	RG:Z:HiMom.1
-HiMom:1:2101:1208:2231	653	*	0	0	*	*	0	0	CTTTTTTTTTTTTTTTTTTTTTTTT	CCCFFFFFHHHHHJJJHFDDDDDDD	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/GTCCACAG.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/GTCCACAG.sam
deleted file mode 100644
index 8e0d773..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/GTCCACAG.sam
+++ /dev/null
@@ -1,6 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.GTCCACAG	LB:LN_GTCCACAG	SM:SA_GTCCACAG	CN:BI
-HiMom:1:1101:1069:2159	77	*	0	0	*	*	0	0	TCCCTTACCATCAAATCAATTG.CC	CCCFFFFFHHHHHJJJJJJJJJ#3A	RG:Z:HiMom.1
-HiMom:1:1101:1069:2159	141	*	0	0	*	*	0	0	GACGT....................	<<<@?####################	RG:Z:HiMom.1
-HiMom:1:1201:1486:2109	77	*	0	0	*	*	0	0	.CACCTCCTAGCCCCTCACTTCTGT	#1=B;BDDHHHGFIIIIIIIIIGGG	RG:Z:HiMom.1
-HiMom:1:1201:1486:2109	141	*	0	0	*	*	0	0	ACGTGTGCTCTTCCCGATCTGTATA	CCCFF?DDFBHHHJJIIDHJIJJJH	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/N.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/N.sam
deleted file mode 100644
index c8b3cee..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/N.sam
+++ /dev/null
@@ -1,34 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.N	LB:LN_N	SM:SA_N	CN:BI
-HiMom:1:1101:1031:2224	589	*	0	0	*	*	0	0	.AATA............T.......	#0;@@####################	BC:Z:NNNNNNNN	RG:Z:HiMom.1
-HiMom:1:1101:1031:2224	653	*	0	0	*	*	0	0	.........................	#########################	BC:Z:NNNNNNNN	RG:Z:HiMom.1	XN:i:1
-HiMom:1:1101:1039:2147	589	*	0	0	*	*	0	0	.CCAA.G..GG....ATGTAA....	#4;@@#4##2<####43@@@@####	BC:Z:NNNNNNNN	RG:Z:HiMom.1
-HiMom:1:1101:1039:2147	653	*	0	0	*	*	0	0	.........................	#########################	BC:Z:NNNNNNNN	RG:Z:HiMom.1	XN:i:1
-HiMom:1:1101:1046:2175	589	*	0	0	*	*	0	0	.TGCC.G.GTT.CG.GGTCTT....	#4;@@####################	BC:Z:NNNNNNNN	RG:Z:HiMom.1
-HiMom:1:1101:1046:2175	653	*	0	0	*	*	0	0	..GGA....................	#########################	BC:Z:NNNNNNNN	RG:Z:HiMom.1
-HiMom:1:1101:1047:2122	589	*	0	0	*	*	0	0	.CTAA.G.ACT.TG.GTGTGC....	#0;@@#4#3@@#3@#2<@@@@####	BC:Z:NNNANNNN	RG:Z:HiMom.1
-HiMom:1:1101:1047:2122	653	*	0	0	*	*	0	0	..TCA....................	#########################	BC:Z:NNNANNNN	RG:Z:HiMom.1
-HiMom:1:1101:1048:2197	589	*	0	0	*	*	0	0	.CTCC.G.TCA.CA.GTGGAG....	#0;?@####################	BC:Z:NNNCNNNN	RG:Z:HiMom.1
-HiMom:1:1101:1048:2197	653	*	0	0	*	*	0	0	..GTG....................	#########################	BC:Z:NNNCNNNN	RG:Z:HiMom.1
-HiMom:1:1101:1065:2193	77	*	0	0	*	*	0	0	GAAGTACGCCCTGCCCCTGGTT.GC	?@@DAADAHHFHBEBEGGHG?####	BC:Z:GAACGATN	RG:Z:HiMom.1
-HiMom:1:1101:1065:2193	141	*	0	0	*	*	0	0	.CTTG....................	#########################	BC:Z:GAACGATN	RG:Z:HiMom.1
-HiMom:1:1101:1162:2207	589	*	0	0	*	*	0	0	ACCTTGAGGAGAACATAAGAGCAAA	#########################	BC:Z:ACAAAATT	RG:Z:HiMom.1
-HiMom:1:1101:1162:2207	653	*	0	0	*	*	0	0	TAAAACTGGGGAAGTTAGAGGAATG	#########################	BC:Z:ACAAAATT	RG:Z:HiMom.1
-HiMom:1:1201:1159:2179	589	*	0	0	*	*	0	0	GTTAGCACAGATATTGGATGAGTGA	#########################	BC:Z:AAAAAAAA	RG:Z:HiMom.1
-HiMom:1:1201:1159:2179	653	*	0	0	*	*	0	0	TTTTTTTTTATTTTTCTAAATACTT	===AA####################	BC:Z:AAAAAAAA	RG:Z:HiMom.1
-HiMom:1:1201:1414:2174	589	*	0	0	*	*	0	0	GCCAAAAAAAAGAACCAGCCCAAGG	#########################	BC:Z:AGAAAAGA	RG:Z:HiMom.1
-HiMom:1:1201:1414:2174	653	*	0	0	*	*	0	0	TTTTTTTTTTTTTTTTTTTTTTTTT	@;@1BDADF????FFEB>B6=BBBB	BC:Z:AGAAAAGA	RG:Z:HiMom.1
-HiMom:1:2101:1040:2208	589	*	0	0	*	*	0	0	.ATGCCCACCTCCCTCCTACGCACC	#########################	BC:Z:ACGAAATC	RG:Z:HiMom.1
-HiMom:1:2101:1040:2208	653	*	0	0	*	*	0	0	.CTGATAGTCACTGAAATGAATTCA	#-0=>(2 at .22@@############	BC:Z:ACGAAATC	RG:Z:HiMom.1
-HiMom:1:2101:1059:2083	77	*	0	0	*	*	0	0	.AAGAGGGGTCAAGAGTTAAACTTA	#1=DDFFFHFHHGIGHGHJJJJJJI	BC:Z:TACCGTCT	RG:Z:HiMom.1
-HiMom:1:2101:1059:2083	141	*	0	0	*	*	0	0	.GAATGTCTTAGAAGGATGCTTCTC	#1=BDDDEHHGHHJJJJJIJJIIJJ	BC:Z:TACCGTCT	RG:Z:HiMom.1
-HiMom:1:2101:1143:2137	77	*	0	0	*	*	0	0	ATGCAGCAGCTGCCACGGAGCACCA	CC at FFDFDFHFHHGIDHEHIGJJJJ	BC:Z:TCCGTCTA	RG:Z:HiMom.1
-HiMom:1:2101:1143:2137	141	*	0	0	*	*	0	0	GCTCTTCAGATCTAGGGGGAACAGC	@@@DD?=DCAFFFHIIDG:EFHIII	BC:Z:TCCGTCTA	RG:Z:HiMom.1
-HiMom:1:2101:1151:2182	589	*	0	0	*	*	0	0	TTGTTTTGGCTTATAATGACAAGAA	;;8-2).2())(<6=@8;?4??>>?	BC:Z:GAAAAAAA	RG:Z:HiMom.1
-HiMom:1:2101:1151:2182	653	*	0	0	*	*	0	0	TTTTTTTTTTTTTTTTTTTTTTTTA	9<<?@?@;5=?##############	BC:Z:GAAAAAAA	RG:Z:HiMom.1
-HiMom:1:2101:1215:2110	77	*	0	0	*	*	0	0	.AATATAATTTGGAGACCCTTTGTT	#1=DDDDDEDDDDIDDBB3ABAB##	BC:Z:AAAAGAAG	RG:Z:HiMom.1
-HiMom:1:2101:1215:2110	141	*	0	0	*	*	0	0	ATCTTTCCCCCATTAAGAACAGCAA	#########################	BC:Z:AAAAGAAG	RG:Z:HiMom.1
-HiMom:1:2101:1285:2105	589	*	0	0	*	*	0	0	.GCGGGGAGCCGGGCGTGGAATGCG	#########################	BC:Z:TATCTCGG	RG:Z:HiMom.1
-HiMom:1:2101:1285:2105	653	*	0	0	*	*	0	0	TGTCTATATCAACCAACACCTCTTC	-(0(():94:9:???##########	BC:Z:TATCTCGG	RG:Z:HiMom.1
-HiMom:1:2101:1450:2134	77	*	0	0	*	*	0	0	AGCACGCTGCCGCGGGACCTGCCCA	?@@AD at DDHFH?DGIIIIG at FGFBF	BC:Z:ACCAGTTG	RG:Z:HiMom.1
-HiMom:1:2101:1450:2134	141	*	0	0	*	*	0	0	ACAAACCCTTGTGTCGAGGGCTGAC	CC at FDFDFFDFHFGIIE1CGGHBGE	BC:Z:ACCAGTTG	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/TAAGCACA.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/TAAGCACA.sam
deleted file mode 100644
index 51b342d..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/TAAGCACA.sam
+++ /dev/null
@@ -1,6 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.TAAGCACA	LB:LN_TAAGCACA	SM:SA_TAAGCACA	CN:BI
-HiMom:1:1201:1064:2239	77	*	0	0	*	*	0	0	CATGCAGCGCAAGTAGGTCTACAAG	@@;DFAFFHHHHAHEGHFDGGFABG	RG:Z:HiMom.1
-HiMom:1:1201:1064:2239	141	*	0	0	*	*	0	0	GGGATGGGAGGGCGATGAGGACTAG	8?@:DDDACC:FHHGIH<EGDDDFH	RG:Z:HiMom.1
-HiMom:1:2101:1258:2092	77	*	0	0	*	*	0	0	.CACACACACACTCATTCACAGCTT	#1=DDDFFHHHFHJJIJGGGIIGIJ	RG:Z:HiMom.1
-HiMom:1:2101:1258:2092	141	*	0	0	*	*	0	0	TTAGACAAAACACCAAAATAAAATA	#########################	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/TACCGTCT.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/TACCGTCT.sam
deleted file mode 100644
index ebcf32d..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/TACCGTCT.sam
+++ /dev/null
@@ -1,2 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.TACCGTCT	LB:LN_TACCGTCT	SM:SA_TACCGTCT	CN:BI
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/TAGCGGTA.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/TAGCGGTA.sam
deleted file mode 100644
index 48afb69..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/TAGCGGTA.sam
+++ /dev/null
@@ -1,2 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.TAGCGGTA	LB:LN_TAGCGGTA	SM:SA_TAGCGGTA	CN:BI
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/TATCAGCC.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/TATCAGCC.sam
deleted file mode 100644
index f3eca6c..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/TATCAGCC.sam
+++ /dev/null
@@ -1,2 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.TATCAGCC	LB:LN_TATCAGCC	SM:SA_TATCAGCC	CN:BI
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/TATCCAGG.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/TATCCAGG.sam
deleted file mode 100644
index 958797b..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/TATCCAGG.sam
+++ /dev/null
@@ -1,10 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.TATCCAGG	LB:LN_TATCCAGG	SM:SA_TATCCAGG	CN:BI
-HiMom:1:1101:1071:2233	77	*	0	0	*	*	0	0	TTTGACAGTCTCTGAATGAGAA.GG	CCCFFFFFHHHHHJIIIJJJIJ#4A	RG:Z:HiMom.1
-HiMom:1:1101:1071:2233	141	*	0	0	*	*	0	0	GTTTG....................	<<<@@####################	RG:Z:HiMom.1
-HiMom:1:1201:1140:2125	77	*	0	0	*	*	0	0	.TTTCAGTTCAGAGAACTGCAGAAT	#1=DBDFDHHHHGJIJJJJJIIIJI	RG:Z:HiMom.1
-HiMom:1:1201:1140:2125	141	*	0	0	*	*	0	0	TTCATAAATTGGTCTTAGATGTTGC	CC at FFFFFHHHHFGIJIIIJIJIJJ	RG:Z:HiMom.1
-HiMom:1:1201:1236:2187	77	*	0	0	*	*	0	0	TTTAAATGGGTAAGAAGCCCGGCTC	@BCDDFEFHHDHHJJJJJIJJIJJJ	RG:Z:HiMom.1
-HiMom:1:1201:1236:2187	141	*	0	0	*	*	0	0	CTCCTTAGCGGATTCCGACTTCCAT	CCCFFFFDHHHHGIJJIGIGIJJGG	RG:Z:HiMom.1
-HiMom:1:2101:1133:2239	77	*	0	0	*	*	0	0	AGACAGAAGTACGGGAAGGCGAAGA	@@@FFFFEHFHHHJJCGDHIIECD@	RG:Z:HiMom.1
-HiMom:1:2101:1133:2239	141	*	0	0	*	*	0	0	AGCTTTTTGTTTCCTAGCTTGTCTT	?@?DDFFFHHHHF4ACFHIJHHHGH	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/TATCCATG.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/TATCCATG.sam
deleted file mode 100644
index a005522..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/TATCCATG.sam
+++ /dev/null
@@ -1,2 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.TATCCATG	LB:LN_TATCCATG	SM:SA_TATCCATG	CN:BI
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/TATCTCGG.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/TATCTCGG.sam
deleted file mode 100644
index 7ea4674..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/TATCTCGG.sam
+++ /dev/null
@@ -1,2 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.TATCTCGG	LB:LN_TATCTCGG	SM:SA_TATCTCGG	CN:BI
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/TATCTGCC.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/TATCTGCC.sam
deleted file mode 100644
index 36bd80e..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/TATCTGCC.sam
+++ /dev/null
@@ -1,16 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.TATCTGCC	LB:LN_TATCTGCC	SM:SA_TATCTGCC	CN:BI
-HiMom:1:1101:1267:2209	77	*	0	0	*	*	0	0	GAGACGGAGGCCAACGGGGGCCTGG	@@CFFFFD8FDHFHIGIBG?@BCDG	RG:Z:HiMom.1
-HiMom:1:1101:1267:2209	141	*	0	0	*	*	0	0	GGCAGAGTCTCCAACAGCCCCGTAC	=;?DDDD?CCFHAIIIGGIIGE at EG	RG:Z:HiMom.1
-HiMom:1:1101:1353:2226	77	*	0	0	*	*	0	0	TTGCTTGTCTGTAAAGTATTTTATT	@C at DDFFDHHFHFHHIBGG>IHHII	RG:Z:HiMom.1
-HiMom:1:1101:1353:2226	141	*	0	0	*	*	0	0	GTGCTCTTCCGATCTTCAGGTTACC	BBBFFFFFHHHHHJJJJJJJIJJJJ	RG:Z:HiMom.1
-HiMom:1:1101:1435:2194	77	*	0	0	*	*	0	0	GAGAAAGAACATGACTACAGAGATG	CCCFFFFFHHHHHJJJJJJJJJHJJ	RG:Z:HiMom.1
-HiMom:1:1101:1435:2194	141	*	0	0	*	*	0	0	TTTTGTTTTCTTTTACTGAAGTGTA	CCCFFDFFHHHHHJJJJIHIJHHHJ	RG:Z:HiMom.1
-HiMom:1:1201:1084:2204	77	*	0	0	*	*	0	0	GGCCCGTGGACGCCGCCGAAGAAGC	CCCFFFFFHHHHHJJJJJIJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1201:1084:2204	141	*	0	0	*	*	0	0	TGGCTCCTCAGGCTCTCATCAGTTG	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1201:1142:2242	77	*	0	0	*	*	0	0	TGTTGATAGTCCTTCTTATCTTAGT	???DB?==CC2<AC:CC<CFEF<FF	RG:Z:HiMom.1
-HiMom:1:1201:1142:2242	141	*	0	0	*	*	0	0	GTAAAATGTAAAATAATAAAAAATG	?=?DDDD;AF<DF<FFFFIIIFF@<	RG:Z:HiMom.1
-HiMom:1:1201:1187:2100	77	*	0	0	*	*	0	0	.GCGGTAATTCCAGCTCCAATAGCG	#1:BB2 at DHHFHHIIIIHHIIGHGG	RG:Z:HiMom.1
-HiMom:1:1201:1187:2100	141	*	0	0	*	*	0	0	AAAAAAGAGCCCGCATTGCCGAGAC	=<=;AA###################	RG:Z:HiMom.1
-HiMom:1:1201:1392:2109	77	*	0	0	*	*	0	0	.CTGAAGAGGCCAAAGCGCCCTCCA	#1=DDFFFHHHHHJJJJJJJJJJJI	RG:Z:HiMom.1
-HiMom:1:1201:1392:2109	141	*	0	0	*	*	0	0	GTCAGACAGGGGGATTTGGGCTGTG	BBCFFFFFHHHHHHJJJHIJIJJJJ	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/TCCGTCTA.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/TCCGTCTA.sam
deleted file mode 100644
index 39a9ebc..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/TCCGTCTA.sam
+++ /dev/null
@@ -1,2 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.TCCGTCTA	LB:LN_TCCGTCTA	SM:SA_TCCGTCTA	CN:BI
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/TCGCTAGA.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/TCGCTAGA.sam
deleted file mode 100644
index 6eaddd9..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/TCGCTAGA.sam
+++ /dev/null
@@ -1,12 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.TCGCTAGA	LB:LN_TCGCTAGA	SM:SA_TCGCTAGA	CN:BI
-HiMom:1:1101:1143:2192	77	*	0	0	*	*	0	0	GGAGCGAGTCTGGGTCTCAGCCCCG	CCCFFFFFHHHHHJGHIIIHJJJJI	RG:Z:HiMom.1
-HiMom:1:1101:1143:2192	141	*	0	0	*	*	0	0	CGACAAGTCTGGCTTATCACTCATC	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1101:1479:2221	77	*	0	0	*	*	0	0	TGTAAAGTATGCTGGCTCAGTGTAT	BBBFDFFEHHHHHJJJJJJJIJHJJ	RG:Z:HiMom.1
-HiMom:1:1101:1479:2221	141	*	0	0	*	*	0	0	GGGGAAATCTATTTTTATGTAAAAA	@CCFFFFFHHHHHJIGIJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1201:1312:2112	77	*	0	0	*	*	0	0	.TCCCAGCGAACCCGCGTGCAACCT	#1=DFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1201:1312:2112	141	*	0	0	*	*	0	0	ATTTGCAGGAGCCGGCGCAGGTGCA	CCCFFFFFHHHHHJJJIJJJJGHIJ	RG:Z:HiMom.1
-HiMom:1:1201:1416:2128	77	*	0	0	*	*	0	0	.ACAGGCGTGGAGGAGGCGGCGGCC	#4=DDDFFHHHHHJIGJHFHHFFED	RG:Z:HiMom.1
-HiMom:1:1201:1416:2128	141	*	0	0	*	*	0	0	TTGGTGTGGAGGCGGTGGCGGGATC	@@@DDDDDHHFHHII:?GGHIIB6?	RG:Z:HiMom.1
-HiMom:1:2101:1064:2242	77	*	0	0	*	*	0	0	ATGAACAAAGGAAGAATTATGCACG	?;?D;DDDF?;:+<<CFFCHE433A	RG:Z:HiMom.1
-HiMom:1:2101:1064:2242	141	*	0	0	*	*	0	0	.GGAAAAAGGTTGTCAAGCGTTAAA	#########################	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/TCTGCAAG.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/TCTGCAAG.sam
deleted file mode 100644
index b1a4fda..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/TCTGCAAG.sam
+++ /dev/null
@@ -1,4 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.TCTGCAAG	LB:LN_TCTGCAAG	SM:SA_TCTGCAAG	CN:BI
-HiMom:1:1201:1042:2174	77	*	0	0	*	*	0	0	.GTTGGTGTCTTCATTTTATGTATA	#1=DDFDFHHHHHJIJJJHIJHIJJ	RG:Z:HiMom.1
-HiMom:1:1201:1042:2174	141	*	0	0	*	*	0	0	.TCAGGAAGGC..CAAAAAAAGAAA	#0;@@@?@?<@##3<@@?@@?????	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/TGCAAGTA.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/TGCAAGTA.sam
deleted file mode 100644
index 1e37171..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/TGCAAGTA.sam
+++ /dev/null
@@ -1,6 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.TGCAAGTA	LB:LN_TGCAAGTA	SM:SA_TGCAAGTA	CN:BI
-HiMom:1:1101:1242:2170	77	*	0	0	*	*	0	0	ATGGCAGGGCAGAGTTCTGATGAGT	CCCFFFFFHHGGGIFHEIIGIIII?	RG:Z:HiMom.1
-HiMom:1:1101:1242:2170	141	*	0	0	*	*	0	0	GGAAGGAAAAGAAGCACAAGTACAT	@@@DFDFFHHHGHHGIIGJJEHHIG	RG:Z:HiMom.1
-HiMom:1:2101:1163:2222	77	*	0	0	*	*	0	0	GAGCAGGCAAGGAGGACTTCTTGTT	CCCFFFFFGHHHHJJHHIJJJJJIJ	RG:Z:HiMom.1
-HiMom:1:2101:1163:2222	141	*	0	0	*	*	0	0	GAGCGATAATGGTTCTTTTCCTCAC	@@@DFFFFHHHHHJJJJJJJIJJJJ	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/TGCTGCTG.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/TGCTGCTG.sam
deleted file mode 100644
index 1eb5afe..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/TGCTGCTG.sam
+++ /dev/null
@@ -1,10 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.TGCTGCTG	LB:LN_TGCTGCTG	SM:SA_TGCTGCTG	CN:BI
-HiMom:1:1101:1084:2136	77	*	0	0	*	*	0	0	.TCTCACTGTGAATTTGTGGTGGGC	#1=DDFFFHHHHHJJJJGIJIJJJJ	RG:Z:HiMom.1
-HiMom:1:1101:1084:2136	141	*	0	0	*	*	0	0	TTTCT....................	<<<@@####################	RG:Z:HiMom.1
-HiMom:1:1201:1285:2100	77	*	0	0	*	*	0	0	.AATGACATGTTTAAAGATGGACTC	#1:BDDFFHHFHHGIJIJIIIIGII	RG:Z:HiMom.1
-HiMom:1:1201:1285:2100	141	*	0	0	*	*	0	0	GATCTTTTTTGCTTTGTAGTTATAG	@@@DFFFFHHHHHIIGIABCFFHBF	RG:Z:HiMom.1
-HiMom:1:2101:1162:2139	77	*	0	0	*	*	0	0	AGAGGTGAAATTCTTGGACCGGCGC	@@@DDDDDHFHHHDB:EFHHCAG?D	RG:Z:HiMom.1
-HiMom:1:2101:1162:2139	141	*	0	0	*	*	0	0	ATCGTTTATGGTCGGAACTACGACG	BCCFFFFFHHHHHIJJJJJJJIJJI	RG:Z:HiMom.1
-HiMom:1:2101:1195:2150	77	*	0	0	*	*	0	0	CCGAGAGAGTGAGAGCGCTCCTGGG	CCCFFFFFHFHHHJJJJIJJJJIJJ	RG:Z:HiMom.1
-HiMom:1:2101:1195:2150	141	*	0	0	*	*	0	0	AATTGAACTTCACCACCCAGAGGAA	CCCFFFFFHHHHHJJJJJJIJJJJJ	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/TGTAACTC.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/TGTAACTC.sam
deleted file mode 100644
index 6e11486..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/TGTAACTC.sam
+++ /dev/null
@@ -1,4 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.TGTAACTC	LB:LN_TGTAACTC	SM:SA_TGTAACTC	CN:BI
-HiMom:1:1201:1421:2154	77	*	0	0	*	*	0	0	TGTGTGTGTGGGTGTGTGTATATAT	?@?DDFFFFFHH at GEFCCCHGIGJI	RG:Z:HiMom.1
-HiMom:1:1201:1421:2154	141	*	0	0	*	*	0	0	TGTGCTCTTCCGATCTTGTGCTCTT	BC at DFFFFHHHHHJJJJFHIHHIJJ	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/TGTAATCA.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/TGTAATCA.sam
deleted file mode 100644
index 525a3f0..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/TGTAATCA.sam
+++ /dev/null
@@ -1,8 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.TGTAATCA	LB:LN_TGTAATCA	SM:SA_TGTAATCA	CN:BI
-HiMom:1:1101:1419:2119	77	*	0	0	*	*	0	0	.ATGACTATGGTAACTGAAAGAAAA	#1:A1BDADBFFDFIIIEEHECACF	RG:Z:HiMom.1
-HiMom:1:1101:1419:2119	141	*	0	0	*	*	0	0	ACTTTCCTTTTTTGTTTTACTTTAA	#########################	RG:Z:HiMom.1
-HiMom:1:1201:1208:2132	77	*	0	0	*	*	0	0	.CCTCAATGAGCGGCACTATGGGGG	#1=DDFFFHHHHGJJIJJGHIJGIJ	RG:Z:HiMom.1
-HiMom:1:1201:1208:2132	141	*	0	0	*	*	0	0	CTGTAGAAAGGATGGTCGGGCTCCA	@@CDFFFFGHFHHJIJJGJIBHJJG	RG:Z:HiMom.1
-HiMom:1:1201:1344:2147	77	*	0	0	*	*	0	0	TATCCTCCCTACTATGCCTAGAAGG	=?@DADEFHBHDFG>EFGDHGFGHD	RG:Z:HiMom.1
-HiMom:1:1201:1344:2147	141	*	0	0	*	*	0	0	ACGATTAGTTTTAGCATTGGAGTAG	@<??DDDDFHHHFGGHHIIIGGAGH	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/TTGTCTAT.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/TTGTCTAT.sam
deleted file mode 100644
index 69ec784..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/TTGTCTAT.sam
+++ /dev/null
@@ -1,10 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.TTGTCTAT	LB:LN_TTGTCTAT	SM:SA_TTGTCTAT	CN:BI
-HiMom:1:1101:1219:2164	77	*	0	0	*	*	0	0	TCAAGCAGGAGCAGCTAAGTCCTAA	CCCFFFFFHHHHHJJJJJJHIJJJJ	RG:Z:HiMom.1
-HiMom:1:1101:1219:2164	141	*	0	0	*	*	0	0	ATCTTATCCACTCCTTCCACTTTGG	CCCFFFFFHHHHHJJIJJJJJJJIJ	RG:Z:HiMom.1
-HiMom:1:1201:1103:2184	77	*	0	0	*	*	0	0	GTAAGAACTACCCTGGGTCCCCGTG	@@BFFFFFHHHHHJJJJGIJJJJHI	RG:Z:HiMom.1
-HiMom:1:1201:1103:2184	141	*	0	0	*	*	0	0	AGAAGTTTCAGAATTGTGGCCCCAT	B at BFFDEFHHHHHJJJGHIJJJJJI	RG:Z:HiMom.1
-HiMom:1:1201:1107:2109	77	*	0	0	*	*	0	0	.GGGAACCTGGCGCTAAACCATTCG	#1=DFFFFHHHHHJJJJJJJJJIJJ	RG:Z:HiMom.1
-HiMom:1:1201:1107:2109	141	*	0	0	*	*	0	0	ACAAACCCTTGTGTCGAGGGCTGAC	CCCFFFFFHHGHHJJJJIIJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1201:1252:2141	77	*	0	0	*	*	0	0	.TTCCCCCCATGTAATTATTGTGAA	#1=DDFFFHHHHHJJJJJJJJIJJJ	RG:Z:HiMom.1
-HiMom:1:1201:1252:2141	141	*	0	0	*	*	0	0	AGTTATTTTGCCTATGTCCAACAAG	BCBFFFFFGHHHHJIJJJJJJJJJJ	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/nonBarcoded.sam b/testdata/net/sf/picard/illumina/25T8B25T/sams/nonBarcoded.sam
deleted file mode 100644
index ab6d41f..0000000
--- a/testdata/net/sf/picard/illumina/25T8B25T/sams/nonBarcoded.sam
+++ /dev/null
@@ -1,182 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1	LB:Hello, World	SM:HiDad	CN:BI
-HiMom:1:1101:1031:2224	516	*	0	0	*	*	0	0	.........................	#########################	RG:Z:HiMom.1	XN:i:1
-HiMom:1:1101:1039:2147	516	*	0	0	*	*	0	0	.........................	#########################	RG:Z:HiMom.1	XN:i:1
-HiMom:1:1101:1046:2175	516	*	0	0	*	*	0	0	..GGA....................	#########################	RG:Z:HiMom.1
-HiMom:1:1101:1047:2122	516	*	0	0	*	*	0	0	..TCA....................	#########################	RG:Z:HiMom.1
-HiMom:1:1101:1048:2197	516	*	0	0	*	*	0	0	..GTG....................	#########################	RG:Z:HiMom.1
-HiMom:1:1101:1065:2193	4	*	0	0	*	*	0	0	.CTTG....................	#########################	RG:Z:HiMom.1
-HiMom:1:1101:1069:2159	4	*	0	0	*	*	0	0	GACGT....................	<<<@?####################	RG:Z:HiMom.1
-HiMom:1:1101:1071:2233	4	*	0	0	*	*	0	0	GTTTG....................	<<<@@####################	RG:Z:HiMom.1
-HiMom:1:1101:1083:2193	4	*	0	0	*	*	0	0	AGGCT....................	#########################	RG:Z:HiMom.1
-HiMom:1:1101:1084:2136	4	*	0	0	*	*	0	0	TTTCT....................	<<<@@####################	RG:Z:HiMom.1
-HiMom:1:1101:1089:2172	4	*	0	0	*	*	0	0	TCCGG....................	:<<??####################	RG:Z:HiMom.1
-HiMom:1:1101:1100:2207	4	*	0	0	*	*	0	0	AGGCT............G.......	#########################	RG:Z:HiMom.1
-HiMom:1:1101:1111:2148	4	*	0	0	*	*	0	0	GCGAA.A..........GGACGAC.	#########################	RG:Z:HiMom.1
-HiMom:1:1101:1138:2141	4	*	0	0	*	*	0	0	TCCGATCTGCTTCAGGTCGATCAGA	CCCFFFFFHGHHHJJIGHIJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1101:1140:2120	4	*	0	0	*	*	0	0	TTTTTTTTTTTTTAACTTTGCAAAT	@@@DDDDDHHHHFB at 9FHI@BFH@@	RG:Z:HiMom.1
-HiMom:1:1101:1143:2192	4	*	0	0	*	*	0	0	CGACAAGTCTGGCTTATCACTCATC	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1101:1150:2228	4	*	0	0	*	*	0	0	ATGGGAGGCGATTCCTAGGGGGTTG	8?=DD8;@BH6DHD<FGGGEIGHIG	RG:Z:HiMom.1
-HiMom:1:1101:1157:2135	4	*	0	0	*	*	0	0	TTTAAAGTCTTAATCAAAGATGATA	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1101:1162:2207	516	*	0	0	*	*	0	0	TAAAACTGGGGAAGTTAGAGGAATG	#########################	RG:Z:HiMom.1
-HiMom:1:1101:1165:2239	4	*	0	0	*	*	0	0	ATGGAAGTCGAGACAGAAGTGAGAA	#########################	RG:Z:HiMom.1
-HiMom:1:1101:1175:2197	4	*	0	0	*	*	0	0	AAGAGCTGGGGAACATCCAGAAAGG	BC at FFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1101:1188:2237	4	*	0	0	*	*	0	0	GCTTCCTTCAAGACAGAAGTGAGAA	CCCFFDDEFHHFFE at FDHHAIAFHG	RG:Z:HiMom.1
-HiMom:1:1101:1197:2200	4	*	0	0	*	*	0	0	ATATTCCACTGGAACCACAGAACCC	@@@FFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1101:1206:2126	4	*	0	0	*	*	0	0	ATCTGTCCAGTGGTGCACTGAATGT	CCCFFFFFHHHHHHIIJJJJIJJJJ	RG:Z:HiMom.1
-HiMom:1:1101:1212:2230	4	*	0	0	*	*	0	0	TTTTAGCTTTATTGGGGAGGGGGTG	CCCFFFFFHHGHHJJJJGJJJJJDF	RG:Z:HiMom.1
-HiMom:1:1101:1218:2200	4	*	0	0	*	*	0	0	GCTCTTCCGATCTATCTGCTCGTCC	(-(=34???3;@#############	RG:Z:HiMom.1
-HiMom:1:1101:1219:2164	4	*	0	0	*	*	0	0	ATCTTATCCACTCCTTCCACTTTGG	CCCFFFFFHHHHHJJIJJJJJJJIJ	RG:Z:HiMom.1
-HiMom:1:1101:1221:2143	4	*	0	0	*	*	0	0	CAATTGAATGTCTGCACAGCCGCTT	@@@FFFFDHHHHHJJJIIIJGHIJJ	RG:Z:HiMom.1
-HiMom:1:1101:1236:2121	4	*	0	0	*	*	0	0	TTGCGCTTACTTTGTAGCCTTCATC	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1101:1242:2170	4	*	0	0	*	*	0	0	GGAAGGAAAAGAAGCACAAGTACAT	@@@DFDFFHHHGHHGIIGJJEHHIG	RG:Z:HiMom.1
-HiMom:1:1101:1257:2223	4	*	0	0	*	*	0	0	TGCTCTTCCGATCTTTTAGCAAAGC	:?@DDBDDHFFHDGIGIIJJJGGGI	RG:Z:HiMom.1
-HiMom:1:1101:1259:2152	4	*	0	0	*	*	0	0	ATTTTTATATTTTTTTAGACATAGG	CCCFFFFFGHHHHJJJJIGIIJJJJ	RG:Z:HiMom.1
-HiMom:1:1101:1261:2127	516	*	0	0	*	*	0	0	TTTTTTTTTTTTTTTTTTTTTTTTT	CCCFFFFFHGHHHJJIFDDDDDDDD	RG:Z:HiMom.1
-HiMom:1:1101:1263:2236	516	*	0	0	*	*	0	0	AGTTCTTCAGTAATTTTAGTACTGC	#########################	RG:Z:HiMom.1
-HiMom:1:1101:1267:2209	4	*	0	0	*	*	0	0	GGCAGAGTCTCCAACAGCCCCGTAC	=;?DDDD?CCFHAIIIGGIIGE at EG	RG:Z:HiMom.1
-HiMom:1:1101:1269:2170	4	*	0	0	*	*	0	0	TTCCAAGCCTGTGCTTTAAGGAAAA	@@<ADBDBDF8DDCFH at GIE@@GGH	RG:Z:HiMom.1
-HiMom:1:1101:1290:2225	4	*	0	0	*	*	0	0	TCAGTTCACTGGCAAAGACAGTCAC	C@@FBEDDFHFHGIIICEHGDHBHE	RG:Z:HiMom.1
-HiMom:1:1101:1291:2150	4	*	0	0	*	*	0	0	ACAAACCCTTGTGTCGAGGGCTGAC	CCCFFFFFHHFHHIJJJIIIGIJIJ	RG:Z:HiMom.1
-HiMom:1:1101:1302:2244	4	*	0	0	*	*	0	0	TGAATACATATAACAAATGCAAAAA	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1101:1308:2153	516	*	0	0	*	*	0	0	TCTGTAAGGTAATCCCCGCATGTGT	1?1=4===AFFDFFGFDGFB at CFB:	RG:Z:HiMom.1
-HiMom:1:1101:1309:2210	4	*	0	0	*	*	0	0	AGTGGGCTAGGGCATTTTTAATCTT	@@?DFFDFHHHDFHJIJJIJGIIIJ	RG:Z:HiMom.1
-HiMom:1:1101:1314:2233	4	*	0	0	*	*	0	0	AGGAAAGTTGGGCTGACCTGACAGA	@@<DDD;=FBFADBCGDEH?F;FCG	RG:Z:HiMom.1
-HiMom:1:1101:1316:2126	4	*	0	0	*	*	0	0	TCTTTTTTTTTTTTTTTTTTTTTTT	CCCFFFFFHHHHHJJJJHFDDDDDD	RG:Z:HiMom.1
-HiMom:1:1101:1327:2200	516	*	0	0	*	*	0	0	GTCATCTGGGCTGTCGACAGGTGTC	@B at FFFFFHHHHGIJJJJJJIFHHI	RG:Z:HiMom.1
-HiMom:1:1101:1328:2225	4	*	0	0	*	*	0	0	AGGAAATTAGGACTTACCTGACATA	#########################	RG:Z:HiMom.1
-HiMom:1:1101:1338:2175	4	*	0	0	*	*	0	0	GCTTGTTGGCTTTAACATCCACAAT	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1101:1347:2149	4	*	0	0	*	*	0	0	GCTCTTCCGATCTGTGCTCTTCCGA	CCCFFFFFDFHHFIJDGIGGHGIGH	RG:Z:HiMom.1
-HiMom:1:1101:1353:2226	4	*	0	0	*	*	0	0	GTGCTCTTCCGATCTTCAGGTTACC	BBBFFFFFHHHHHJJJJJJJIJJJJ	RG:Z:HiMom.1
-HiMom:1:1101:1363:2138	4	*	0	0	*	*	0	0	GTTCTTAAACCTGTTAGAACTTCTG	C@@FFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1101:1399:2128	4	*	0	0	*	*	0	0	ACAAACCCTTGTGTCGAGGGCTGAC	CCCFFFFFHHHHHIJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1101:1403:2194	4	*	0	0	*	*	0	0	ACATGGTGAAACCCTGTCTCTACTA	CCCFFFDDHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1101:1406:2222	4	*	0	0	*	*	0	0	GGCTGGACTCCCCTGGTTCTGGGCA	;?@DDDBD?FHDFGIIIGIGHHIII	RG:Z:HiMom.1
-HiMom:1:1101:1419:2119	4	*	0	0	*	*	0	0	ACTTTCCTTTTTTGTTTTACTTTAA	#########################	RG:Z:HiMom.1
-HiMom:1:1101:1420:2213	4	*	0	0	*	*	0	0	TTCACTGTACCGGCCGTGCGTACTT	@CCFFFFDHHHFGIJJJJJJGHIGG	RG:Z:HiMom.1
-HiMom:1:1101:1435:2194	4	*	0	0	*	*	0	0	TTTTGTTTTCTTTTACTGAAGTGTA	CCCFFDFFHHHHHJJJJIHIJHHHJ	RG:Z:HiMom.1
-HiMom:1:1101:1441:2148	4	*	0	0	*	*	0	0	TTTTGGCTCTAGAGGGGGTAGAGGG	CCCFFFFFHHDFBHIIJJ1?FGHIJ	RG:Z:HiMom.1
-HiMom:1:1101:1452:2132	4	*	0	0	*	*	0	0	ACAAACCCTTGTGTCGAGGGCTGAC	CCCFFFFFHHHHHJJJJJJJIJJJJ	RG:Z:HiMom.1
-HiMom:1:1101:1460:2176	4	*	0	0	*	*	0	0	AGGAAAAAGACACAACAAGTCCAAC	#########################	RG:Z:HiMom.1
-HiMom:1:1101:1479:2221	4	*	0	0	*	*	0	0	GGGGAAATCTATTTTTATGTAAAAA	@CCFFFFFHHHHHJIGIJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1101:1491:2120	4	*	0	0	*	*	0	0	GGCCAGGCTGAACTTCTGAGCTGCT	CCCFFFFFHHHGHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1201:1018:2133	4	*	0	0	*	*	0	0	.........................	#########################	RG:Z:HiMom.1	XN:i:1
-HiMom:1:1201:1018:2217	516	*	0	0	*	*	0	0	.........................	#########################	RG:Z:HiMom.1	XN:i:1
-HiMom:1:1201:1028:2202	4	*	0	0	*	*	0	0	..AAAC.C.T.......GG..TG..	##42@?###################	RG:Z:HiMom.1
-HiMom:1:1201:1042:2174	4	*	0	0	*	*	0	0	.TCAGGAAGGC..CAAAAAAAGAAA	#0;@@@?@?<@##3<@@?@@?????	RG:Z:HiMom.1
-HiMom:1:1201:1043:2246	4	*	0	0	*	*	0	0	.GCATCATTTC..GCTTCTCTCTGT	#0;@@??@=@>##22=;@??><@??	RG:Z:HiMom.1
-HiMom:1:1201:1045:2105	516	*	0	0	*	*	0	0	.TTTTTTTTTT..TTTTTTTTTTTT	#0;@@@@@@@?##0:????????=<	RG:Z:HiMom.1
-HiMom:1:1201:1054:2151	4	*	0	0	*	*	0	0	GTCAGGCACTGAGAATATATGGGTG	CBCFFFFFHHHHHJJJJJJJJJJEG	RG:Z:HiMom.1
-HiMom:1:1201:1064:2239	4	*	0	0	*	*	0	0	GGGATGGGAGGGCGATGAGGACTAG	8?@:DDDACC:FHHGIH<EGDDDFH	RG:Z:HiMom.1
-HiMom:1:1201:1073:2225	4	*	0	0	*	*	0	0	CGTGTGCTCTTCCGATCTGGAGGGT	@BBDFFFFHHHHHJJJJJJJJJJJ:	RG:Z:HiMom.1
-HiMom:1:1201:1083:2121	4	*	0	0	*	*	0	0	ACACACAACACCACCGCCCTCCCCC	#########################	RG:Z:HiMom.1
-HiMom:1:1201:1084:2204	4	*	0	0	*	*	0	0	TGGCTCCTCAGGCTCTCATCAGTTG	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1201:1095:2146	4	*	0	0	*	*	0	0	ACTGACAACACCAAATGCTGCTAAG	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1201:1103:2184	4	*	0	0	*	*	0	0	AGAAGTTTCAGAATTGTGGCCCCAT	B at BFFDEFHHHHHJJJGHIJJJJJI	RG:Z:HiMom.1
-HiMom:1:1201:1107:2109	4	*	0	0	*	*	0	0	ACAAACCCTTGTGTCGAGGGCTGAC	CCCFFFFFHHGHHJJJJIIJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1201:1118:2198	4	*	0	0	*	*	0	0	AATAAACTTTATTAAAGCAGTTAAA	C at CFFFFFHDHHHGIIIJJJIJJJJ	RG:Z:HiMom.1
-HiMom:1:1201:1122:2227	4	*	0	0	*	*	0	0	GTCATATAAGGCCCAGTCCAAGGAA	@@@FFFFFHHHGGIJIGGIJFIJII	RG:Z:HiMom.1
-HiMom:1:1201:1123:2161	516	*	0	0	*	*	0	0	CGTGTGCTCTTCCGATCTGCATACA	===AAAA8AAAA<AAA)@CBA9>A#	RG:Z:HiMom.1
-HiMom:1:1201:1127:2112	516	*	0	0	*	*	0	0	TAATCACCTGAGCAGTGAAGCCAGC	@<@?BDDDHD?FDBHI?AHGGGDFH	RG:Z:HiMom.1
-HiMom:1:1201:1134:2144	4	*	0	0	*	*	0	0	AGTGTGAGTAATGGTTGAGAGGTGG	B@?DDDFFFHHGHJHHGFIHHIFGI	RG:Z:HiMom.1
-HiMom:1:1201:1138:2227	516	*	0	0	*	*	0	0	GACAAATATAGGAAATAGAAGCTAT	=1=A=AAA,2?4>7C<<4<A+3<AB	RG:Z:HiMom.1
-HiMom:1:1201:1140:2125	4	*	0	0	*	*	0	0	TTCATAAATTGGTCTTAGATGTTGC	CC at FFFFFHHHHFGIJIIIJIJIJJ	RG:Z:HiMom.1
-HiMom:1:1201:1142:2242	4	*	0	0	*	*	0	0	GTAAAATGTAAAATAATAAAAAATG	?=?DDDD;AF<DF<FFFFIIIFF@<	RG:Z:HiMom.1
-HiMom:1:1201:1150:2161	4	*	0	0	*	*	0	0	TTCTCACTACTGTGATTGTGCCACT	@C at FFFFFGHHHHGIIIICEHCFGH	RG:Z:HiMom.1
-HiMom:1:1201:1159:2179	516	*	0	0	*	*	0	0	TTTTTTTTTATTTTTCTAAATACTT	===AA####################	RG:Z:HiMom.1
-HiMom:1:1201:1160:2109	4	*	0	0	*	*	0	0	ACATCCTTCCCATGCCACCAACTCG	CCCFFFFFGHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1201:1180:2119	4	*	0	0	*	*	0	0	GCTCTAAATTTTGCTTTTCTACAGC	CCCFFFFFHHHHHJJJJIJIJJIJJ	RG:Z:HiMom.1
-HiMom:1:1201:1185:2143	4	*	0	0	*	*	0	0	GCTGAAGGCCCGTGGGCCAGAGGTG	@CCFFFFFHHHHHJJJJJJJJJJHI	RG:Z:HiMom.1
-HiMom:1:1201:1187:2100	4	*	0	0	*	*	0	0	AAAAAAGAGCCCGCATTGCCGAGAC	=<=;AA###################	RG:Z:HiMom.1
-HiMom:1:1201:1190:2194	4	*	0	0	*	*	0	0	ACAAACCCTTGTGTCGAGGGCTGAC	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1201:1204:2228	4	*	0	0	*	*	0	0	TCTTCTTGTCGATGAGGAACTTGGT	@?@FFFFFDHHGHJIJJGHIIJJJH	RG:Z:HiMom.1
-HiMom:1:1201:1208:2132	4	*	0	0	*	*	0	0	CTGTAGAAAGGATGGTCGGGCTCCA	@@CDFFFFGHFHHJIJJGJIBHJJG	RG:Z:HiMom.1
-HiMom:1:1201:1219:2115	4	*	0	0	*	*	0	0	TGGGAGTAGTTCCCTGCTAAGGGAG	???DBDBDADDDDIEID:AFFD:?8	RG:Z:HiMom.1
-HiMom:1:1201:1236:2187	4	*	0	0	*	*	0	0	CTCCTTAGCGGATTCCGACTTCCAT	CCCFFFFDHHHHGIJJIGIGIJJGG	RG:Z:HiMom.1
-HiMom:1:1201:1242:2207	4	*	0	0	*	*	0	0	ATCTTTTATTGGCCTCCTGCTCCCC	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1201:1252:2141	4	*	0	0	*	*	0	0	AGTTATTTTGCCTATGTCCAACAAG	BCBFFFFFGHHHHJIJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1201:1260:2165	4	*	0	0	*	*	0	0	ATCTGATCTAAGTTGGGGGACGCCG	@@@FFDFFHHHHHJJJIJIIIGIJJ	RG:Z:HiMom.1
-HiMom:1:1201:1280:2179	4	*	0	0	*	*	0	0	GAGGACTGCTTGAGTCCAGGAGTTC	@@BFFDEFGHHHHIFGCHIJJJGGI	RG:Z:HiMom.1
-HiMom:1:1201:1281:2133	4	*	0	0	*	*	0	0	GCAACAAAATTTCATATGACTTAGC	CCCFFFFFHHHHHJJIIIHICHIIJ	RG:Z:HiMom.1
-HiMom:1:1201:1285:2100	4	*	0	0	*	*	0	0	GATCTTTTTTGCTTTGTAGTTATAG	@@@DFFFFHHHHHIIGIABCFFHBF	RG:Z:HiMom.1
-HiMom:1:1201:1291:2158	4	*	0	0	*	*	0	0	CGTGTGCTCTTCCGATCTGATGGGC	@CCFFFDD?FHHFGEHHIIDHIIII	RG:Z:HiMom.1
-HiMom:1:1201:1300:2137	4	*	0	0	*	*	0	0	GCTCTTCCGATCTTTTTTTTAATTT	@@?DDDDDFDHADEHGIGGED3?FD	RG:Z:HiMom.1
-HiMom:1:1201:1312:2112	4	*	0	0	*	*	0	0	ATTTGCAGGAGCCGGCGCAGGTGCA	CCCFFFFFHHHHHJJJIJJJJGHIJ	RG:Z:HiMom.1
-HiMom:1:1201:1331:2162	4	*	0	0	*	*	0	0	TAATCCCAGTACTTTGGGAGGCCAA	CCCFFFFFHHHHHJJJJIJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1201:1341:2116	4	*	0	0	*	*	0	0	ATAACAGCGAGACTGGCAACTTAAA	#########################	RG:Z:HiMom.1
-HiMom:1:1201:1344:2147	4	*	0	0	*	*	0	0	ACGATTAGTTTTAGCATTGGAGTAG	@<??DDDDFHHHFGGHHIIIGGAGH	RG:Z:HiMom.1
-HiMom:1:1201:1345:2181	4	*	0	0	*	*	0	0	ATACGGATGTGTTTAGGAGTGGGAC	CCCFFFFFHHHHHIIJJHJFHIJIJ	RG:Z:HiMom.1
-HiMom:1:1201:1364:2113	4	*	0	0	*	*	0	0	TAAAGAGAGCCAGTGGAGTTACGAC	#########################	RG:Z:HiMom.1
-HiMom:1:1201:1392:2109	4	*	0	0	*	*	0	0	GTCAGACAGGGGGATTTGGGCTGTG	BBCFFFFFHHHHHHJJJHIJIJJJJ	RG:Z:HiMom.1
-HiMom:1:1201:1392:2184	4	*	0	0	*	*	0	0	ATCTTTATTCATTTGTATGATCTTA	@@BFFFFFHFFHFHIHIIJIJJJJI	RG:Z:HiMom.1
-HiMom:1:1201:1393:2143	4	*	0	0	*	*	0	0	GATAAATGCACGCATCCCCCCCGCG	C at CFFFFFGGHHHHJJJJJJJJJJI	RG:Z:HiMom.1
-HiMom:1:1201:1414:2174	516	*	0	0	*	*	0	0	TTTTTTTTTTTTTTTTTTTTTTTTT	@;@1BDADF????FFEB>B6=BBBB	RG:Z:HiMom.1
-HiMom:1:1201:1416:2128	4	*	0	0	*	*	0	0	TTGGTGTGGAGGCGGTGGCGGGATC	@@@DDDDDHHFHHII:?GGHIIB6?	RG:Z:HiMom.1
-HiMom:1:1201:1421:2154	4	*	0	0	*	*	0	0	TGTGCTCTTCCGATCTTGTGCTCTT	BC at DFFFFHHHHHJJJJFHIHHIJJ	RG:Z:HiMom.1
-HiMom:1:1201:1439:2156	4	*	0	0	*	*	0	0	GGAGATTATTTGCCTTGAAGTAAGC	-;(22<>>@>8@>8;@#########	RG:Z:HiMom.1
-HiMom:1:1201:1452:2143	4	*	0	0	*	*	0	0	TTTTAGTCTTAGCATTTACTTTCCC	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:1201:1458:2109	4	*	0	0	*	*	0	0	GATACGAACACACAAGAACTTTTTT	CCCFFFFFHHHHHJJJJJJJJJJJI	RG:Z:HiMom.1
-HiMom:1:1201:1472:2121	516	*	0	0	*	*	0	0	GTGTGCTCTTCCGATCTGGAGGATG	=+=??A4A==A at 7A<?#########	RG:Z:HiMom.1
-HiMom:1:1201:1483:2126	516	*	0	0	*	*	0	0	GCATGCAGCTGGGTGCTGTGATGCA	@@@DDDBB<DD8F<<CGG?AA?A<F	RG:Z:HiMom.1
-HiMom:1:1201:1486:2109	4	*	0	0	*	*	0	0	ACGTGTGCTCTTCCCGATCTGTATA	CCCFF?DDFBHHHJJIIDHJIJJJH	RG:Z:HiMom.1
-HiMom:1:1201:1486:2146	516	*	0	0	*	*	0	0	TTTTTTTTTTTTTTTTTTTTTGGGC	<<<@??@??@???????########	RG:Z:HiMom.1
-HiMom:1:2101:1011:2102	4	*	0	0	*	*	0	0	.....TCACACATAATTTTAAAATT	#####22@?@@??@@@@@??@@@@@	RG:Z:HiMom.1
-HiMom:1:2101:1013:2146	4	*	0	0	*	*	0	0	....CGCTAGAACCAACTTATTCAT	####24=?@@?@?@@?@@@@@@?@@	RG:Z:HiMom.1
-HiMom:1:2101:1021:2209	4	*	0	0	*	*	0	0	..GGAAGGCTGCTAGCTGGCCAGAG	##08@>??@@??@?????????>?@	RG:Z:HiMom.1
-HiMom:1:2101:1023:2237	516	*	0	0	*	*	0	0	..TTTGTTTGAGTTCCTTGTAGATT	##0:=@?>?@???@:>?@??>?;?<	RG:Z:HiMom.1
-HiMom:1:2101:1031:2163	4	*	0	0	*	*	0	0	..ACATTTGTCACCACTAGCCACCA	##0<@?@@@@@@@@@@?@@@@@@@?	RG:Z:HiMom.1
-HiMom:1:2101:1036:2087	4	*	0	0	*	*	0	0	.GTCCACTTACGAAGCAAATACTTT	#4=DDFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:2101:1040:2208	516	*	0	0	*	*	0	0	.CTGATAGTCACTGAAATGAATTCA	#-0=>(2 at .22@@############	RG:Z:HiMom.1
-HiMom:1:2101:1048:2238	4	*	0	0	*	*	0	0	.GTCACATCGTTGAAGCACTGGATC	#11ADDDB<CFFHCHGDBHGIIIII	RG:Z:HiMom.1
-HiMom:1:2101:1054:2162	4	*	0	0	*	*	0	0	.GGACAGGGAAGGGAAGGAAGGGTG	#4=DDFDFHHHHHJIJIIDHHGICG	RG:Z:HiMom.1
-HiMom:1:2101:1059:2083	4	*	0	0	*	*	0	0	.GAATGTCTTAGAAGGATGCTTCTC	#1=BDDDEHHGHHJJJJJIJJIIJJ	RG:Z:HiMom.1
-HiMom:1:2101:1063:2206	4	*	0	0	*	*	0	0	.TGCTAGGATGAGGATGGATAGTAA	#1=DDDFFHHHHHJHIIJHIIIHHJ	RG:Z:HiMom.1
-HiMom:1:2101:1064:2242	4	*	0	0	*	*	0	0	.GGAAAAAGGTTGTCAAGCGTTAAA	#########################	RG:Z:HiMom.1
-HiMom:1:2101:1072:2170	4	*	0	0	*	*	0	0	.GGGGAGACAGAGAGGATCAGAAGT	#4=BDDFDHHDFHEGFEGGIJIIIG	RG:Z:HiMom.1
-HiMom:1:2101:1077:2139	4	*	0	0	*	*	0	0	.ATTAGTTGGCGGATGAAGCAGATA	#4=DFFFFHHHHHJJJJJJJJJIJJ	RG:Z:HiMom.1
-HiMom:1:2101:1084:2188	4	*	0	0	*	*	0	0	TACAAGGTCAAAATCAGCAACAAGT	CCCFFFFDHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:2101:1100:2085	4	*	0	0	*	*	0	0	ATCTTGATCTCCTCCTTCTTGGCCT	@@@DDDDDHHFHFEIIIIHHBAHBG	RG:Z:HiMom.1
-HiMom:1:2101:1102:2221	4	*	0	0	*	*	0	0	ATAACTGACTCTACTCAGTAGATTA	CCCFFFFFHHHHHJJJJJIJJJJJJ	RG:Z:HiMom.1
-HiMom:1:2101:1105:2131	4	*	0	0	*	*	0	0	CAGCAGCAGCAACAGCAGAAACATG	CCCFFFFFHHHHHJJJJJIJJJJJJ	RG:Z:HiMom.1
-HiMom:1:2101:1112:2245	4	*	0	0	*	*	0	0	TCGTAGTGTTGTAATTTCGTCTTCT	?8?DBDDDCCFCAACGGFFCBFFAE	RG:Z:HiMom.1
-HiMom:1:2101:1122:2136	4	*	0	0	*	*	0	0	CTTGCCAGCCTGCAGGCCCCGCGGC	???BBAABDD?DDIID)A:3<EADD	RG:Z:HiMom.1
-HiMom:1:2101:1123:2095	4	*	0	0	*	*	0	0	TCCGCCTCCAGCTTCAGCTTCTCCT	@@@FDDFFHHHHHJHGGJIJJJEHH	RG:Z:HiMom.1
-HiMom:1:2101:1126:2082	4	*	0	0	*	*	0	0	TCTCTTTCCACCTTGGTCACCTTCC	@C at DDDFFHHHHHJEGGIHHIJGIH	RG:Z:HiMom.1
-HiMom:1:2101:1133:2239	4	*	0	0	*	*	0	0	AGCTTTTTGTTTCCTAGCTTGTCTT	?@?DDFFFHHHHF4ACFHIJHHHGH	RG:Z:HiMom.1
-HiMom:1:2101:1143:2137	4	*	0	0	*	*	0	0	GCTCTTCAGATCTAGGGGGAACAGC	@@@DD?=DCAFFFHIIDG:EFHIII	RG:Z:HiMom.1
-HiMom:1:2101:1151:2182	516	*	0	0	*	*	0	0	TTTTTTTTTTTTTTTTTTTTTTTTA	9<<?@?@;5=?##############	RG:Z:HiMom.1
-HiMom:1:2101:1151:2236	516	*	0	0	*	*	0	0	TTTGAAGCCTCTTTATCCTTGGCAT	#########################	RG:Z:HiMom.1
-HiMom:1:2101:1162:2139	4	*	0	0	*	*	0	0	ATCGTTTATGGTCGGAACTACGACG	BCCFFFFFHHHHHIJJJJJJJIJJI	RG:Z:HiMom.1
-HiMom:1:2101:1163:2203	4	*	0	0	*	*	0	0	TTGGTTCACTTATGTATTTATGAAT	@CCFDFFFHHHHHJHIIJJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:2101:1163:2222	4	*	0	0	*	*	0	0	GAGCGATAATGGTTCTTTTCCTCAC	@@@DFFFFHHHHHJJJJJJJIJJJJ	RG:Z:HiMom.1
-HiMom:1:2101:1172:2152	516	*	0	0	*	*	0	0	ATCGTTTCTGGGGACTAGTGAGGCG	#########################	RG:Z:HiMom.1
-HiMom:1:2101:1186:2093	4	*	0	0	*	*	0	0	AATGTTGGGAGGACAATGATGGAAA	#########################	RG:Z:HiMom.1
-HiMom:1:2101:1188:2195	4	*	0	0	*	*	0	0	GCACATACACCAAATGTCTGAACCT	CCCFFFFFHHHHHJJJHIJJJJJJJ	RG:Z:HiMom.1
-HiMom:1:2101:1195:2150	4	*	0	0	*	*	0	0	AATTGAACTTCACCACCCAGAGGAA	CCCFFFFFHHHHHJJJJJJIJJJJJ	RG:Z:HiMom.1
-HiMom:1:2101:1207:2084	516	*	0	0	*	*	0	0	TCACCACTCTTCTGGGCATCCCCTG	@@@DDEDFHHHHHIJIHHGHGGJJJ	RG:Z:HiMom.1
-HiMom:1:2101:1208:2231	516	*	0	0	*	*	0	0	CTTTTTTTTTTTTTTTTTTTTTTTT	CCCFFFFFHHHHHJJJHFDDDDDDD	RG:Z:HiMom.1
-HiMom:1:2101:1215:2110	4	*	0	0	*	*	0	0	ATCTTTCCCCCATTAAGAACAGCAA	#########################	RG:Z:HiMom.1
-HiMom:1:2101:1216:2172	4	*	0	0	*	*	0	0	GGACTTCTAGGGGATTTAGCGGGGT	CCCFFFFFHHHHHJJJJJJJJJJJD	RG:Z:HiMom.1
-HiMom:1:2101:1216:2193	4	*	0	0	*	*	0	0	AGGCATGACACTGCATTTTAAATAC	@@@DDDDDHFFHHGGDFHFHIIHGG	RG:Z:HiMom.1
-HiMom:1:2101:1226:2088	4	*	0	0	*	*	0	0	GCTCTTCCGATCTAGGTAATAGCTA	==?BDFFFDCDDHFFFAFHDHIJGJ	RG:Z:HiMom.1
-HiMom:1:2101:1231:2208	4	*	0	0	*	*	0	0	AGCCAGTGTTGGTGTGTTGACTGTT	@@;1ADABCF;BF<AACGCHEBHC<	RG:Z:HiMom.1
-HiMom:1:2101:1233:2133	516	*	0	0	*	*	0	0	TTTTTTTTTTTTTTTTTTTTTTTTT	CCCFFFFFGHHHHJJJFDDDDDDDD	RG:Z:HiMom.1
-HiMom:1:2101:1240:2197	516	*	0	0	*	*	0	0	ACTGGAGATCCTTGTTACATGCCCA	??+++A:DD?:ADEE@::C4:C<E:	RG:Z:HiMom.1
-HiMom:1:2101:1245:2154	4	*	0	0	*	*	0	0	ACCAATCAGTAGCACCACTATACAC	CCCFFFFFHHHHHJJJJJJIJJJJJ	RG:Z:HiMom.1
-HiMom:1:2101:1249:2231	4	*	0	0	*	*	0	0	TCTCTCGGCCTTCCACTCTAGCATA	@@@FFFFFFHHGHIJJJGJIIJHIJ	RG:Z:HiMom.1
-HiMom:1:2101:1258:2092	4	*	0	0	*	*	0	0	TTAGACAAAACACCAAAATAAAATA	#########################	RG:Z:HiMom.1
-HiMom:1:2101:1262:2128	516	*	0	0	*	*	0	0	TCTTGTGGTAACTTTTCTGACACCT	-(---9@;@?:8>?4:>?@######	RG:Z:HiMom.1
-HiMom:1:2101:1273:2119	516	*	0	0	*	*	0	0	ATGATGGATCTTCTCTAACTTGTCA	>=><AAAAA+2AA?CB4@@ABB3?A	RG:Z:HiMom.1
-HiMom:1:2101:1285:2105	516	*	0	0	*	*	0	0	TGTCTATATCAACCAACACCTCTTC	-(0(():94:9:???##########	RG:Z:HiMom.1
-HiMom:1:2101:1312:2105	4	*	0	0	*	*	0	0	GTTGAGAATAGGTTGAGATCGTTTC	@CCFFFDFHHFHDHIJJJJJJJIJJ	RG:Z:HiMom.1
-HiMom:1:2101:1325:2083	4	*	0	0	*	*	0	0	TGTGCTCTTCCGATCTGGAGAAAAA	#########################	RG:Z:HiMom.1
-HiMom:1:2101:1336:2109	4	*	0	0	*	*	0	0	AGACCAGAACAGCTCCAGGTGCTCC	CCCFFFFFHHHHHJJJJJJCGHIJJ	RG:Z:HiMom.1
-HiMom:1:2101:1349:2084	4	*	0	0	*	*	0	0	AGTCTGAATCATTGGTGTCTGAAGA	<5;??=>=>>?##############	RG:Z:HiMom.1
-HiMom:1:2101:1365:2094	4	*	0	0	*	*	0	0	GCTCTTCCGATCTTGTGCTCTTCCG	CCCFFFFDHFHHGJJIIJIJJIHII	RG:Z:HiMom.1
-HiMom:1:2101:1370:2116	4	*	0	0	*	*	0	0	CACCATCTGACATCATGTTTGAAAG	@@@DFFFDFFHDHIGBHHII<HEDB	RG:Z:HiMom.1
-HiMom:1:2101:1386:2105	4	*	0	0	*	*	0	0	AGGAATTATTCTTCTGCCATAAGGT	B@@DDFFFHGFHHIJJJJJGIGIJH	RG:Z:HiMom.1
-HiMom:1:2101:1414:2098	4	*	0	0	*	*	0	0	TTGGGGCCGGTGCCGTCGGGCCCAA	CCCFFFFFHHHHGJJIJJJJJJJIJ	RG:Z:HiMom.1
-HiMom:1:2101:1427:2081	4	*	0	0	*	*	0	0	CCGACTTCCATGGCCACCGTCCTGC	CCCFFFFFHHHHHJJJIIGFIIJJI	RG:Z:HiMom.1
-HiMom:1:2101:1450:2134	4	*	0	0	*	*	0	0	ACAAACCCTTGTGTCGAGGGCTGAC	CC at FDFDFFDFHFGIIE1CGGHBGE	RG:Z:HiMom.1
-HiMom:1:2101:1459:2083	4	*	0	0	*	*	0	0	ATTTCACCAAAATAATCAGAAGGCC	CCCFFFFDBHGHHIGGIJFJJGGFH	RG:Z:HiMom.1
-HiMom:1:2101:1491:2093	4	*	0	0	*	*	0	0	AGAGACGGGGTCTCGCTATGTTGCC	BCCDFFFFHHHHHJIIJJJJIJIJJ	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AACTTGACGCTCTCTT.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AACTTGACGCTCTCTT.1.fastq
deleted file mode 100644
index 5493d14..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AACTTGACGCTCTCTT.1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:14221:1451 1:N:0:AACTTGACGCTCTCTT
-TTTTTTTTTCTTTTACTTTTTTTTT
-+
->1>1>111>0@@31311B21AAA##
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AACTTGACGCTCTCTT.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AACTTGACGCTCTCTT.2.fastq
deleted file mode 100644
index 4aaf72e..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AACTTGACGCTCTCTT.2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:14221:1451 2:N:0:AACTTGACGCTCTCTT
-TTTTTTTTTCTTTTTTTTCCTTTTT
-+
-1111111>>0 at 331B00/011221A
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AACTTGACGCTCTCTT.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AACTTGACGCTCTCTT.barcode_1.fastq
deleted file mode 100644
index 958d0d0..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AACTTGACGCTCTCTT.barcode_1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:14221:1451 :N:0:AACTTGACGCTCTCTT
-AACTTGAC
-+
-11>AA11B
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AACTTGACGCTCTCTT.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AACTTGACGCTCTCTT.barcode_2.fastq
deleted file mode 100644
index 3dc1787..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AACTTGACGCTCTCTT.barcode_2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:14221:1451 :N:0:AACTTGACGCTCTCTT
-GCTCTCTT
-+
-3>>>>DDD
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AAGACACTAGTCACCT.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AAGACACTAGTCACCT.1.fastq
deleted file mode 100644
index 4f2c0e6..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AAGACACTAGTCACCT.1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:15405:1531 1:N:0:AAGACACTAGTCACCT
-TTTCCTTCTTTTTTTTTTTTTTTAT
-+
-11>11331 at 13111000A#######
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AAGACACTAGTCACCT.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AAGACACTAGTCACCT.2.fastq
deleted file mode 100644
index fab9892..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AAGACACTAGTCACCT.2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:15405:1531 2:N:0:AAGACACTAGTCACCT
-TTCTTTTTTCTTTTTCTTTGTTCTT
-+
-11111@@11>1331B11333B03A3
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AAGACACTAGTCACCT.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AAGACACTAGTCACCT.barcode_1.fastq
deleted file mode 100644
index a4d53ff..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AAGACACTAGTCACCT.barcode_1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:15405:1531 :N:0:AAGACACTAGTCACCT
-AAGACACT
-+
-111111>B
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AAGACACTAGTCACCT.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AAGACACTAGTCACCT.barcode_2.fastq
deleted file mode 100644
index 79a9355..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AAGACACTAGTCACCT.barcode_2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:15405:1531 :N:0:AAGACACTAGTCACCT
-AGTCTCCT
-+
-11>11B11
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACAGGTATCACTTCAT.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACAGGTATCACTTCAT.1.fastq
deleted file mode 100644
index aee1f21..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACAGGTATCACTTCAT.1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:14342:1520 1:N:0:ACAGGTATCACTTCAT
-CTTTCTTTTCTCCTTTTTTTCTTTC
-+
-11>>1@@@1313111311AA0BAAA
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACAGGTATCACTTCAT.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACAGGTATCACTTCAT.2.fastq
deleted file mode 100644
index 830665f..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACAGGTATCACTTCAT.2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:14342:1520 2:N:0:ACAGGTATCACTTCAT
-TCGTGTTTTTTCTTTTTGCTTTCCC
-+
-111>1>>>11111331A013A3111
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACAGGTATCACTTCAT.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACAGGTATCACTTCAT.barcode_1.fastq
deleted file mode 100644
index 7910411..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACAGGTATCACTTCAT.barcode_1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:14342:1520 :N:0:ACAGGTATCACTTCAT
-ACAGGTAT
-+
-1>111B1B
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACAGGTATCACTTCAT.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACAGGTATCACTTCAT.barcode_2.fastq
deleted file mode 100644
index 1b9e646..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACAGGTATCACTTCAT.barcode_2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:14342:1520 :N:0:ACAGGTATCACTTCAT
-CACTTCAT
-+
->1>>>B3@
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACAGTTGAATCTTCTC.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACAGTTGAATCTTCTC.1.fastq
deleted file mode 100644
index 67a5f80..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACAGTTGAATCTTCTC.1.fastq
+++ /dev/null
@@ -1,8 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:14133:1507 1:N:0:ACAGTTGAATCTTCTC
-TCCTCTTTGCTTTTTGCTATCACTC
-+
-111>1B1 at 313131111A33A33D1
- at machine1:HiMom:abcdeACXX:1:1101:14753:1450 1:N:0:ACAGTTGAATCTTCTC
-CTTTTTCCTCTTTTTTTCTTTTGTT
-+
-1>>>>@1131B1311100BA31100
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACAGTTGAATCTTCTC.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACAGTTGAATCTTCTC.2.fastq
deleted file mode 100644
index 77ff2e4..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACAGTTGAATCTTCTC.2.fastq
+++ /dev/null
@@ -1,8 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:14133:1507 2:N:0:ACAGTTGAATCTTCTC
-TCCTTTATTATCTTTGTTCCTTTTT
-+
-111>>313 at 333AAA3A1333331A
- at machine1:HiMom:abcdeACXX:1:1101:14753:1450 2:N:0:ACAGTTGAATCTTCTC
-TCCCTTTTTTTTCTTTTCTCTTTTT
-+
-1111>@11@>1001331313331AA
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACAGTTGAATCTTCTC.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACAGTTGAATCTTCTC.barcode_1.fastq
deleted file mode 100644
index ae43ed5..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACAGTTGAATCTTCTC.barcode_1.fastq
+++ /dev/null
@@ -1,8 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:14133:1507 :N:0:ACAGTTGAATCTTCTC
-ACAGTTGA
-+
-1>11>D13
- at machine1:HiMom:abcdeACXX:1:1101:14753:1450 :N:0:ACAGTTGAATCTTCTC
-ACAGTTGA
-+
-1>11>B13
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACAGTTGAATCTTCTC.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACAGTTGAATCTTCTC.barcode_2.fastq
deleted file mode 100644
index 012c966..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACAGTTGAATCTTCTC.barcode_2.fastq
+++ /dev/null
@@ -1,8 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:14133:1507 :N:0:ACAGTTGAATCTTCTC
-ATCTTCTC
-+
-3>AAADDD
- at machine1:HiMom:abcdeACXX:1:1101:14753:1450 :N:0:ACAGTTGAATCTTCTC
-ATCTTCTC
-+
-3>>AAD@@
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACCAACTGCATCACTT.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACCAACTGCATCACTT.1.fastq
deleted file mode 100644
index 99ab52d..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACCAACTGCATCACTT.1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:15221:1507 1:N:0:ACCAACTGCATCACTT
-CTTTTTTCTTTCTTTGTTTTTGTAT
-+
-1>1>1111@@33A3B3311000033
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACCAACTGCATCACTT.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACCAACTGCATCACTT.2.fastq
deleted file mode 100644
index 56e7e51..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACCAACTGCATCACTT.2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:15221:1507 2:N:0:ACCAACTGCATCACTT
-CTCTTTTTTTTCTCTCTTCTTTCCT
-+
-111>13111>0013A11313B321A
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACCAACTGCATCACTT.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACCAACTGCATCACTT.barcode_1.fastq
deleted file mode 100644
index 8ceb5f1..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACCAACTGCATCACTT.barcode_1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:15221:1507 :N:0:ACCAACTGCATCACTT
-ACCAACTG
-+
-3>>33>C4
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACCAACTGCATCACTT.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACCAACTGCATCACTT.barcode_2.fastq
deleted file mode 100644
index 4687cc7..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACCAACTGCATCACTT.barcode_2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:15221:1507 :N:0:ACCAACTGCATCACTT
-CATCACTT
-+
->1>A1BB@
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACTAAGACGTCCTCAT.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACTAAGACGTCCTCAT.1.fastq
deleted file mode 100644
index 0a726e3..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACTAAGACGTCCTCAT.1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:17324:1480 1:N:0:ACTAAGACGTCCTCAT
-TCTCTGTGTTTTTTTTTTTTTTACT
-+
->111>333 at 11111A000///A/1A
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACTAAGACGTCCTCAT.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACTAAGACGTCCTCAT.2.fastq
deleted file mode 100644
index 8e10143..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACTAAGACGTCCTCAT.2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:17324:1480 2:N:0:ACTAAGACGTCCTCAT
-CTTTTTTTTCTTCTCTTTCCTTCCT
-+
-1>>1111>00 at 333133331AA101
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACTAAGACGTCCTCAT.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACTAAGACGTCCTCAT.barcode_1.fastq
deleted file mode 100644
index 941ec7d..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACTAAGACGTCCTCAT.barcode_1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:17324:1480 :N:0:ACTAAGACGTCCTCAT
-ACTAAGAC
-+
-1>>1111B
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACTAAGACGTCCTCAT.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACTAAGACGTCCTCAT.barcode_2.fastq
deleted file mode 100644
index 86ff79a..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACTAAGACGTCCTCAT.barcode_2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:17324:1480 :N:0:ACTAAGACGTCCTCAT
-GTCCTCAT
-+
-1>>>>D1B
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGGTGCGAGACATTAA.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGGTGCGAGACATTAA.1.fastq
deleted file mode 100644
index f0e0379..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGGTGCGAGACATTAA.1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:15634:1526 1:N:0:AGGTGCGAGACATTAA
-TTTTTTTTTTCTTTGGTTATTTTAT
-+
-1>>>>>AA00>11B100A1BBAB2A
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGGTGCGAGACATTAA.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGGTGCGAGACATTAA.2.fastq
deleted file mode 100644
index 54133d1..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGGTGCGAGACATTAA.2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:15634:1526 2:N:0:AGGTGCGAGACATTAA
-CCTCTCTTCTTTTTTTCTCCTTTTT
-+
-111>1>131 at 131110A1B1ABBA1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGGTGCGAGACATTAA.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGGTGCGAGACATTAA.barcode_1.fastq
deleted file mode 100644
index 2271790..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGGTGCGAGACATTAA.barcode_1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:15634:1526 :N:0:AGGTGCGAGACATTAA
-AGGTGCGA
-+
-111>1B11
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGGTGCGAGACATTAA.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGGTGCGAGACATTAA.barcode_2.fastq
deleted file mode 100644
index 4212464..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGGTGCGAGACATTAA.barcode_2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:15634:1526 :N:0:AGGTGCGAGACATTAA
-GACATTAA
-+
-11>1>B13
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGGTTATCTTAGCCAG.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGGTTATCTTAGCCAG.1.fastq
deleted file mode 100644
index ca71c9b..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGGTTATCTTAGCCAG.1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:17862:1503 1:N:0:AGGTTATCTTAGCCAG
-TTTTTTTCCTACTTTGCTTTAGTTT
-+
->1>1>1>1133113A11A1A1133A
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGGTTATCTTAGCCAG.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGGTTATCTTAGCCAG.2.fastq
deleted file mode 100644
index 8a2e6b6..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGGTTATCTTAGCCAG.2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:17862:1503 2:N:0:AGGTTATCTTAGCCAG
-TCTTCCCCTTCTTTATTTATTTGCT
-+
-1>1111111>1 at AA3A3B33AA333
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGGTTATCTTAGCCAG.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGGTTATCTTAGCCAG.barcode_1.fastq
deleted file mode 100644
index 5ac27fb..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGGTTATCTTAGCCAG.barcode_1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:17862:1503 :N:0:AGGTTATCTTAGCCAG
-AGGTTATC
-+
-111>>1DD
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGGTTATCTTAGCCAG.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGGTTATCTTAGCCAG.barcode_2.fastq
deleted file mode 100644
index c62a121..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGGTTATCTTAGCCAG.barcode_2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:17862:1503 :N:0:AGGTTATCTTAGCCAG
-TTAGCCAG
-+
->>11>B11
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGTTGCTTTGACTTGG.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGTTGCTTTGACTTGG.1.fastq
deleted file mode 100644
index 370c768..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGTTGCTTTGACTTGG.1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:14369:1492 1:N:0:AGTTGCTTTGACTTGG
-TTTCTTCTTTCTTTTTGTAAAGTTT
-+
-1>>11333 at B3BB31111333333B
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGTTGCTTTGACTTGG.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGTTGCTTTGACTTGG.2.fastq
deleted file mode 100644
index 0ee84dd..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGTTGCTTTGACTTGG.2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:14369:1492 2:N:0:AGTTGCTTTGACTTGG
-TCCTTCTTTTTCTCTTTTTTTTCTT
-+
-1>11>@1131111AAAAA1100011
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGTTGCTTTGACTTGG.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGTTGCTTTGACTTGG.barcode_1.fastq
deleted file mode 100644
index 84ab91b..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGTTGCTTTGACTTGG.barcode_1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:14369:1492 :N:0:AGTTGCTTTGACTTGG
-AGTTGCTT
-+
-11>>1 at DF
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGTTGCTTTGACTTGG.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGTTGCTTTGACTTGG.barcode_2.fastq
deleted file mode 100644
index 3f2aa6e..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGTTGCTTTGACTTGG.barcode_2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:14369:1492 :N:0:AGTTGCTTTGACTTGG
-TGACTTGG
-+
->33>>B at 4
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ATAGCGTCTTGGTCTG.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ATAGCGTCTTGGTCTG.1.fastq
deleted file mode 100644
index 30ea53a..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ATAGCGTCTTGGTCTG.1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:17049:1423 1:N:0:ATAGCGTCTTGGTCTG
-CTCTTTTCTTTCTTTCTCTTCCTCT
-+
-1>111 at 13@3333A33A3331111A
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ATAGCGTCTTGGTCTG.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ATAGCGTCTTGGTCTG.2.fastq
deleted file mode 100644
index 6bd92e7..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ATAGCGTCTTGGTCTG.2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:17049:1423 2:N:0:ATAGCGTCTTGGTCTG
-TTTTCTCCTCCTCTTCCTCTTTTTT
-+
-1111113111111111111113110
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ATAGCGTCTTGGTCTG.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ATAGCGTCTTGGTCTG.barcode_1.fastq
deleted file mode 100644
index ae3a57f..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ATAGCGTCTTGGTCTG.barcode_1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:17049:1423 :N:0:ATAGCGTCTTGGTCTG
-ATAGCGTC
-+
-1>1111>>
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ATAGCGTCTTGGTCTG.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ATAGCGTCTTGGTCTG.barcode_2.fastq
deleted file mode 100644
index 60138f2..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ATAGCGTCTTGGTCTG.barcode_2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:17049:1423 :N:0:ATAGCGTCTTGGTCTG
-TTGGTCTG
-+
->>11>BB1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAATAGTCCGACTCTC.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAATAGTCCGACTCTC.1.fastq
deleted file mode 100644
index 46a43c6..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAATAGTCCGACTCTC.1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:15479:1337 1:N:0:CAATAGTCCGACTCTC
-CTCTCTTTTTTTTCTTTTTTATTCT
-+
-1111113311110013311001222
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAATAGTCCGACTCTC.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAATAGTCCGACTCTC.2.fastq
deleted file mode 100644
index afaf667..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAATAGTCCGACTCTC.2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:15479:1337 2:N:0:CAATAGTCCGACTCTC
-TTTTCCTTCCTTTCTCTTCCCTCCT
-+
-111111 at 311133133331111111
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAATAGTCCGACTCTC.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAATAGTCCGACTCTC.barcode_1.fastq
deleted file mode 100644
index 6784a4f..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAATAGTCCGACTCTC.barcode_1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:15479:1337 :N:0:CAATAGTCCGACTCTC
-CAATAGTC
-+
->11>11B@
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAATAGTCCGACTCTC.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAATAGTCCGACTCTC.barcode_2.fastq
deleted file mode 100644
index c091895..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAATAGTCCGACTCTC.barcode_2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:15479:1337 :N:0:CAATAGTCCGACTCTC
-CGACTCTC
-+
->111>>@@
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAGCAAGGGCGATATT.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAGCAAGGGCGATATT.1.fastq
deleted file mode 100644
index b4b7b25..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAGCAAGGGCGATATT.1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:17475:1506 1:N:0:CAGCAAGGGCGATATT
-TCTTTTTTTTTCTCTCGTGTGTTGG
-+
->111>B11>0>013310A0A0BB##
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAGCAAGGGCGATATT.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAGCAAGGGCGATATT.2.fastq
deleted file mode 100644
index 32b5754..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAGCAAGGGCGATATT.2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:17475:1506 2:N:0:CAGCAAGGGCGATATT
-CCTTTTTCTTTTCTCTCCTCTTTCC
-+
-11111111 at 33131331111A1331
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAGCAAGGGCGATATT.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAGCAAGGGCGATATT.barcode_1.fastq
deleted file mode 100644
index 5d54f92..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAGCAAGGGCGATATT.barcode_1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:17475:1506 :N:0:CAGCAAGGGCGATATT
-CAGCAAGG
-+
->11>1111
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAGCAAGGGCGATATT.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAGCAAGGGCGATATT.barcode_2.fastq
deleted file mode 100644
index 85e8e4b..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAGCAAGGGCGATATT.barcode_2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:17475:1506 :N:0:CAGCAAGGGCGATATT
-GCGATATT
-+
-1>11>1>B
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAGCGGTAAGTACTGC.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAGCGGTAAGTACTGC.1.fastq
deleted file mode 100644
index bd849a7..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAGCGGTAAGTACTGC.1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:13678:1483 1:N:0:CAGCGGTAAGTACTGC
-TCTTTTCTTTTTTTTTTTCTTTTTT
-+
->1>>>131331111000A01AB###
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAGCGGTAAGTACTGC.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAGCGGTAAGTACTGC.2.fastq
deleted file mode 100644
index 6d2e7f1..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAGCGGTAAGTACTGC.2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:13678:1483 2:N:0:CAGCGGTAAGTACTGC
-TTTTTTTTCTTTCCTCTCTTTTTTT
-+
-11111111013331A##########
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAGCGGTAAGTACTGC.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAGCGGTAAGTACTGC.barcode_1.fastq
deleted file mode 100644
index 37ac86f..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAGCGGTAAGTACTGC.barcode_1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:13678:1483 :N:0:CAGCGGTAAGTACTGC
-CAGCGGTA
-+
->11111>1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAGCGGTAAGTACTGC.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAGCGGTAAGTACTGC.barcode_2.fastq
deleted file mode 100644
index d3894f2..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAGCGGTAAGTACTGC.barcode_2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:13678:1483 :N:0:CAGCGGTAAGTACTGC
-TGTACTGC
-+
-11>11 at 31
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CATGCTTATAGCATTG.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CATGCTTATAGCATTG.1.fastq
deleted file mode 100644
index 364e991..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CATGCTTATAGCATTG.1.fastq
+++ /dev/null
@@ -1,8 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:13947:1464 1:N:0:CATGCTTATAGCATTG
-CTCCTTTTCTTCTTCTTCTCTTTTT
-+
-1>11113 at 313331331331A3311
- at machine1:HiMom:abcdeACXX:1:1101:17987:1524 1:N:0:CATGCTTATAGCATTG
-CCTCTTTTTCTGTTTTTTTTGCTGG
-+
-111>11 at 111133331110001B11
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CATGCTTATAGCATTG.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CATGCTTATAGCATTG.2.fastq
deleted file mode 100644
index b8e9574..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CATGCTTATAGCATTG.2.fastq
+++ /dev/null
@@ -1,8 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:13947:1464 2:N:0:CATGCTTATAGCATTG
-TTTTTTTTTCCCTCCCCTTTCCCTT
-+
-1111111100111000000111111
- at machine1:HiMom:abcdeACXX:1:1101:17987:1524 2:N:0:CATGCTTATAGCATTG
-TCTTCTTTTCTTTCTTCTTTATTTG
-+
-111>13131313A3A33A1A33A33
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CATGCTTATAGCATTG.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CATGCTTATAGCATTG.barcode_1.fastq
deleted file mode 100644
index 5ded8ed..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CATGCTTATAGCATTG.barcode_1.fastq
+++ /dev/null
@@ -1,8 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:13947:1464 :N:0:CATGCTTATAGCATTG
-CATGCTTT
-+
-11>1>B at 3
- at machine1:HiMom:abcdeACXX:1:1101:17987:1524 :N:0:CATGCTTATAGCATTG
-CATGCTTA
-+
-A3>3>DF5
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CATGCTTATAGCATTG.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CATGCTTATAGCATTG.barcode_2.fastq
deleted file mode 100644
index dc13b1d..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CATGCTTATAGCATTG.barcode_2.fastq
+++ /dev/null
@@ -1,8 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:13947:1464 :N:0:CATGCTTATAGCATTG
-TAGCATTG
-+
->11>1 at 31
- at machine1:HiMom:abcdeACXX:1:1101:17987:1524 :N:0:CATGCTTATAGCATTG
-TAGCATTT
-+
->11>13B3
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCAGAGCTCAACTGAT.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCAGAGCTCAACTGAT.1.fastq
deleted file mode 100644
index dcd4ce2..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCAGAGCTCAACTGAT.1.fastq
+++ /dev/null
@@ -1,8 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:16357:1518 1:N:0:CCAGAGCTCAACTGAT
-GTCTTCTGCTTCGCTCACGCTGGGT
-+
-1>>>>3 at 113B311AA1111A0000
- at machine1:HiMom:abcdeACXX:1:1101:17387:1497 1:N:0:CCAGAGCTCAACTGAT
-CCCCTTTTTTGTTGTGCTTTAGCCT
-+
-111>>111111111A01B3311111
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCAGAGCTCAACTGAT.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCAGAGCTCAACTGAT.2.fastq
deleted file mode 100644
index 2e61400..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCAGAGCTCAACTGAT.2.fastq
+++ /dev/null
@@ -1,8 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:16357:1518 2:N:0:CCAGAGCTCAACTGAT
-TCCTTCTCTCTTTTTTTTTAATTCT
-+
->1111111B at BB311AA0001ABAB
- at machine1:HiMom:abcdeACXX:1:1101:17387:1497 2:N:0:CCAGAGCTCAACTGAT
-CTTTTTGTCTTTCTTCCCCCTGCTT
-+
-111>11113@@@3333111AA0011
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCAGAGCTCAACTGAT.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCAGAGCTCAACTGAT.barcode_1.fastq
deleted file mode 100644
index 7336722..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCAGAGCTCAACTGAT.barcode_1.fastq
+++ /dev/null
@@ -1,8 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:16357:1518 :N:0:CCAGAGCTCAACTGAT
-CCAGAGCT
-+
->A3334>D
- at machine1:HiMom:abcdeACXX:1:1101:17387:1497 :N:0:CCAGAGCTCAACTGAT
-CCAGAGCT
-+
->>1111BD
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCAGAGCTCAACTGAT.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCAGAGCTCAACTGAT.barcode_2.fastq
deleted file mode 100644
index b4a32a4..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCAGAGCTCAACTGAT.barcode_2.fastq
+++ /dev/null
@@ -1,8 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:16357:1518 :N:0:CCAGAGCTCAACTGAT
-CAACTGAT
-+
->33AAB4B
- at machine1:HiMom:abcdeACXX:1:1101:17387:1497 :N:0:CCAGAGCTCAACTGAT
-CAACTGAT
-+
->11>>11@
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCCGATTTTCTCTCCC.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCCGATTTTCTCTCCC.1.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCCGATTTTCTCTCCC.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCCGATTTTCTCTCCC.2.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCCGATTTTCTCTCCC.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCCGATTTTCTCTCCC.barcode_1.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCCGATTTTCTCTCCC.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCCGATTTTCTCTCCC.barcode_2.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTATGCCAATTGGCC.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTATGCCAATTGGCC.1.fastq
deleted file mode 100644
index 61981c1..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTATGCCAATTGGCC.1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:17516:1540 1:N:0:CCTATGCCAATTGGCC
-CTTTCGTTTTTCTTTCCTATACATC
-+
-1>>1111B>1>1B3331B3A11333
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTATGCCAATTGGCC.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTATGCCAATTGGCC.2.fastq
deleted file mode 100644
index 2f76d89..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTATGCCAATTGGCC.2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:17516:1540 2:N:0:CCTATGCCAATTGGCC
-TTCTTTTTTTTCCCTTTCCCTTTTC
-+
-1>111 at B@11>0111B11AA1A112
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTATGCCAATTGGCC.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTATGCCAATTGGCC.barcode_1.fastq
deleted file mode 100644
index 267a06e..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTATGCCAATTGGCC.barcode_1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:17516:1540 :N:0:CCTATGCCAATTGGCC
-CCTATGCC
-+
-AAA3>4 at B
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTATGCCAATTGGCC.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTATGCCAATTGGCC.barcode_2.fastq
deleted file mode 100644
index 683c65a..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTATGCCAATTGGCC.barcode_2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:17516:1540 :N:0:CCTATGCCAATTGGCC
-AATTGGCC
-+
-11>>11>1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTATTCTTCGTTTTC.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTATTCTTCGTTTTC.1.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTATTCTTCGTTTTC.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTATTCTTCGTTTTC.2.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTATTCTTCGTTTTC.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTATTCTTCGTTTTC.barcode_1.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTATTCTTCGTTTTC.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTATTCTTCGTTTTC.barcode_2.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTCTTCTCTCGCTTT.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTCTTCTCTCGCTTT.1.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTCTTCTCTCGCTTT.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTCTTCTCTCGCTTT.2.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTCTTCTCTCGCTTT.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTCTTCTCTCGCTTT.barcode_1.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTCTTCTCTCGCTTT.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTCTTCTCTCGCTTT.barcode_2.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTCTTTCTTCTGCTC.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTCTTTCTTCTGCTC.1.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTCTTTCTTCTGCTC.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTCTTTCTTCTGCTC.2.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTCTTTCTTCTGCTC.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTCTTTCTTCTGCTC.barcode_1.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTCTTTCTTCTGCTC.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTCTTTCTTCTGCTC.barcode_2.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTTCGCAGAATCGAC.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTTCGCAGAATCGAC.1.fastq
deleted file mode 100644
index db6d5c0..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTTCGCAGAATCGAC.1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:15248:1531 1:N:0:CCTTCGCAGAATCGAC
-CCCTACCTGTCTGCTATCCATCCCC
-+
-111>11111B1311313A13B111A
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTTCGCAGAATCGAC.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTTCGCAGAATCGAC.2.fastq
deleted file mode 100644
index a021705..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTTCGCAGAATCGAC.2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:15248:1531 2:N:0:CCTTCGCAGAATCGAC
-TTCTCCTTCTATTTCTCTTGTCTTC
-+
-11111@@B@@3333333331A1333
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTTCGCAGAATCGAC.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTTCGCAGAATCGAC.barcode_1.fastq
deleted file mode 100644
index 533b5f3..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTTCGCAGAATCGAC.barcode_1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:15248:1531 :N:0:CCTTCGCAGAATCGAC
-CCTTCGCA
-+
-AAAAA?A3
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTTCGCAGAATCGAC.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTTCGCAGAATCGAC.barcode_2.fastq
deleted file mode 100644
index 5d65d47..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTTCGCAGAATCGAC.barcode_2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:15248:1531 :N:0:CCTTCGCAGAATCGAC
-GAATCGAC
-+
-111>>11>
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTTCTTTTATCATTT.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTTCTTTTATCATTT.1.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTTCTTTTATCATTT.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTTCTTTTATCATTT.2.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTTCTTTTATCATTT.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTTCTTTTATCATTT.barcode_1.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTTCTTTTATCATTT.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CCTTCTTTTATCATTT.barcode_2.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CGCTATGTTTCACCTT.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CGCTATGTTTCACCTT.1.fastq
deleted file mode 100644
index e1d88fa..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CGCTATGTTTCACCTT.1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:17615:1538 1:N:0:CGCTATGTTTCACCTT
-CTTTTTTTTTTTTCCTTTTTTTCTT
-+
->>>>11110000A011AA1A//0A1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CGCTATGTTTCACCTT.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CGCTATGTTTCACCTT.2.fastq
deleted file mode 100644
index feb4ac9..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CGCTATGTTTCACCTT.2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:17615:1538 2:N:0:CGCTATGTTTCACCTT
-TTCTTTCCTTTTCTTTTTTCTGTTT
-+
-11>1133133 at 131331111A3333
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CGCTATGTTTCACCTT.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CGCTATGTTTCACCTT.barcode_1.fastq
deleted file mode 100644
index 8153796..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CGCTATGTTTCACCTT.barcode_1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:17615:1538 :N:0:CGCTATGTTTCACCTT
-CGCTATGT
-+
->11>1>1B
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CGCTATGTTTCACCTT.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CGCTATGTTTCACCTT.barcode_2.fastq
deleted file mode 100644
index 82ee466..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CGCTATGTTTCACCTT.barcode_2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:17615:1538 :N:0:CGCTATGTTTCACCTT
-TTCTCCTT
-+
-1>>11B at 1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CGCTATGTTTCTCCTT.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CGCTATGTTTCTCCTT.1.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CGCTATGTTTCTCCTT.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CGCTATGTTTCTCCTT.2.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CGCTATGTTTCTCCTT.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CGCTATGTTTCTCCTT.barcode_1.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CGCTATGTTTCTCCTT.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CGCTATGTTTCTCCTT.barcode_2.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CTACCAGGTTCTTGGC.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CTACCAGGTTCTTGGC.1.fastq
deleted file mode 100644
index d951b85..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CTACCAGGTTCTTGGC.1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:14790:1540 1:N:0:CTACCAGGTTCTTGGC
-TTCTCTCTTTTCTCTTTCTTGTTGT
-+
-A>1>13113313A3AAAAAB11B1B
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CTACCAGGTTCTTGGC.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CTACCAGGTTCTTGGC.2.fastq
deleted file mode 100644
index ecd158b..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CTACCAGGTTCTTGGC.2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:14790:1540 2:N:0:CTACCAGGTTCTTGGC
-CTCTGTATTTTCCTTTTTCTTCTTT
-+
-11111 at 33@@33133A1BB1A3A1B
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CTACCAGGTTCTTGGC.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CTACCAGGTTCTTGGC.barcode_1.fastq
deleted file mode 100644
index 16c71bb..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CTACCAGGTTCTTGGC.barcode_1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:14790:1540 :N:0:CTACCAGGTTCTTGGC
-CTACCAGG
-+
-A>3AAB43
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CTACCAGGTTCTTGGC.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CTACCAGGTTCTTGGC.barcode_2.fastq
deleted file mode 100644
index c1eaa7c..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CTACCAGGTTCTTGGC.barcode_2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:14790:1540 :N:0:CTACCAGGTTCTTGGC
-TTCTTGGC
-+
-AAAAA5 at 4
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CTCCCTCTTCCTTCTT.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CTCCCTCTTCCTTCTT.1.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CTCCCTCTTCCTTCTT.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CTCCCTCTTCCTTCTT.2.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CTCCCTCTTCCTTCTT.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CTCCCTCTTCCTTCTT.barcode_1.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CTCCCTCTTCCTTCTT.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CTCCCTCTTCCTTCTT.barcode_2.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CTGTAATCCTATTAGC.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CTGTAATCCTATTAGC.1.fastq
deleted file mode 100644
index 2c85fd8..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CTGTAATCCTATTAGC.1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:15029:1349 1:N:0:CTGTAATCCTATTAGC
-CTTCTCCTTTTCTTTTTTTTTTTTT
-+
-1>11111113 at 313A##########
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CTGTAATCCTATTAGC.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CTGTAATCCTATTAGC.2.fastq
deleted file mode 100644
index b08b11e..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CTGTAATCCTATTAGC.2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:15029:1349 2:N:0:CTGTAATCCTATTAGC
-TTTCTTTTTCTTTTTTCTTTCTTTT
-+
-1111>3 at 111133111113333331
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CTGTAATCCTATTAGC.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CTGTAATCCTATTAGC.barcode_1.fastq
deleted file mode 100644
index 8f8ea09..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CTGTAATCCTATTAGC.barcode_1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:15029:1349 :N:0:CTGTAATCCTATTAGC
-CTGTAATC
-+
->>1>13B@
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CTGTAATCCTATTAGC.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CTGTAATCCTATTAGC.barcode_2.fastq
deleted file mode 100644
index bd1085d..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CTGTAATCCTATTAGC.barcode_2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:15029:1349 :N:0:CTGTAATCCTATTAGC
-CTATTAGC
-+
-111>>331
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GACCAGGACCATCACA.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GACCAGGACCATCACA.1.fastq
deleted file mode 100644
index 87fbffe..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GACCAGGACCATCACA.1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:16241:1505 1:N:0:GACCAGGACCATCACA
-CTTCTTTTTTTTCTTCCCTTTGCTC
-+
-11>1113 at 11100A331011A1111
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GACCAGGACCATCACA.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GACCAGGACCATCACA.2.fastq
deleted file mode 100644
index 0d4b943..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GACCAGGACCATCACA.2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:16241:1505 2:N:0:GACCAGGACCATCACA
-CTGTGGTTTTTTTCTTGTCTTTTCC
-+
-111>11111111001A111333AA1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GACCAGGACCATCACA.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GACCAGGACCATCACA.barcode_1.fastq
deleted file mode 100644
index d3688bf..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GACCAGGACCATCACA.barcode_1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:16241:1505 :N:0:GACCAGGACCATCACA
-GACCAGGA
-+
-11>>1111
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GACCAGGACCATCACA.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GACCAGGACCATCACA.barcode_2.fastq
deleted file mode 100644
index e7e1b08..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GACCAGGACCATCACA.barcode_2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:16241:1505 :N:0:GACCAGGACCATCACA
-CCATCACA
-+
-1>1>>1B1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCCGTCGAAGGTACCA.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCCGTCGAAGGTACCA.1.fastq
deleted file mode 100644
index 9f9d53c..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCCGTCGAAGGTACCA.1.fastq
+++ /dev/null
@@ -1,8 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:13789:1486 1:N:0:GCCGTCGAAGGTACCA
-CTTTTTTCTTCCTCTTTCTTTTTCT
-+
-1111111113311AAB33333A10A
- at machine1:HiMom:abcdeACXX:1:1101:14791:1400 1:N:0:GCCGTCGAAGGTACCA
-TTTTTTTCTTTTTCTTTTTTTCTTT
-+
->>1>>111 at 3@@11A3B1BA001A1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCCGTCGAAGGTACCA.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCCGTCGAAGGTACCA.2.fastq
deleted file mode 100644
index 9965eed..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCCGTCGAAGGTACCA.2.fastq
+++ /dev/null
@@ -1,8 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:13789:1486 2:N:0:GCCGTCGAAGGTACCA
-TTTTTCTCTCCTTCTCTTCTCCTTC
-+
-1111111331111111331311111
- at machine1:HiMom:abcdeACXX:1:1101:14791:1400 2:N:0:GCCGTCGAAGGTACCA
-TCCTTTTTCTTTCCTTTTCTTTTTT
-+
-111>131 at 1133313331313311A
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCCGTCGAAGGTACCA.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCCGTCGAAGGTACCA.barcode_1.fastq
deleted file mode 100644
index 0121ed3..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCCGTCGAAGGTACCA.barcode_1.fastq
+++ /dev/null
@@ -1,8 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:13789:1486 :N:0:GCCGTCGAAGGTACCA
-GCCGTCGA
-+
-11>1>>11
- at machine1:HiMom:abcdeACXX:1:1101:14791:1400 :N:0:GCCGTCGAAGGTACCA
-GCCGTCGA
-+
-1>>1>>11
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCCGTCGAAGGTACCA.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCCGTCGAAGGTACCA.barcode_2.fastq
deleted file mode 100644
index c99048d..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCCGTCGAAGGTACCA.barcode_2.fastq
+++ /dev/null
@@ -1,8 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:13789:1486 :N:0:GCCGTCGAAGGTACCA
-TGGTACCC
-+
-111>1B at 1
- at machine1:HiMom:abcdeACXX:1:1101:14791:1400 :N:0:GCCGTCGAAGGTACCA
-AGGTACCC
-+
-111>1 at B1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCCGTCGAAGGTACCC.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCCGTCGAAGGTACCC.1.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCCGTCGAAGGTACCC.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCCGTCGAAGGTACCC.2.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCCGTCGAAGGTACCC.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCCGTCGAAGGTACCC.barcode_1.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCCGTCGAAGGTACCC.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCCGTCGAAGGTACCC.barcode_2.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCCGTCGATGGTACCC.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCCGTCGATGGTACCC.1.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCCGTCGATGGTACCC.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCCGTCGATGGTACCC.2.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCCGTCGATGGTACCC.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCCGTCGATGGTACCC.barcode_1.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCCGTCGATGGTACCC.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCCGTCGATGGTACCC.barcode_2.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCCTAGCCCTTGAATC.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCCTAGCCCTTGAATC.1.fastq
deleted file mode 100644
index ac36e67..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCCTAGCCCTTGAATC.1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:14517:1469 1:N:0:GCCTAGCCCTTGAATC
-TTTCTTTTTTTTCCCTTTCCTCTTT
-+
->111133111>001111111B1111
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCCTAGCCCTTGAATC.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCCTAGCCCTTGAATC.2.fastq
deleted file mode 100644
index 6f4224a..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCCTAGCCCTTGAATC.2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:14517:1469 2:N:0:GCCTAGCCCTTGAATC
-CCTCCTTTTTCTTCTTTTCCTTTTT
-+
-11111113111133AA3A313331A
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCCTAGCCCTTGAATC.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCCTAGCCCTTGAATC.barcode_1.fastq
deleted file mode 100644
index 2dbb4aa..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCCTAGCCCTTGAATC.barcode_1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:14517:1469 :N:0:GCCTAGCCCTTGAATC
-GCCTAGCC
-+
-11>>11 at B
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCCTAGCCCTTGAATC.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCCTAGCCCTTGAATC.barcode_2.fastq
deleted file mode 100644
index 905f5f1..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCCTAGCCCTTGAATC.barcode_2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:14517:1469 :N:0:GCCTAGCCCTTGAATC
-CTTGAATC
-+
-11>111 at 3
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCTATCCACCTCCCCC.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCTATCCACCTCCCCC.1.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCTATCCACCTCCCCC.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCTATCCACCTCCCCC.2.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCTATCCACCTCCCCC.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCTATCCACCTCCCCC.barcode_1.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCTATCCACCTCCCCC.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GCTATCCACCTCCCCC.barcode_2.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GTATAACAAATTCAAC.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GTATAACAAATTCAAC.1.fastq
deleted file mode 100644
index 2bcbb35..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GTATAACAAATTCAAC.1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:14857:1542 1:N:0:GTATAACAAATTCAAC
-TTTTCTCTTTTTGTTTTTTTCTTCT
-+
-1>>>1 at 33B3111ABB11AA01333
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GTATAACAAATTCAAC.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GTATAACAAATTCAAC.2.fastq
deleted file mode 100644
index b99a457..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GTATAACAAATTCAAC.2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:14857:1542 2:N:0:GTATAACAAATTCAAC
-TCTTCCTTTTTTTTTTTTCTTTCTT
-+
-111111133@@110000/AB1122A
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GTATAACAAATTCAAC.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GTATAACAAATTCAAC.barcode_1.fastq
deleted file mode 100644
index a78dd3a..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GTATAACAAATTCAAC.barcode_1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:14857:1542 :N:0:GTATAACAAATTCAAC
-GTATAACA
-+
-1>1>1311
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GTATAACAAATTCAAC.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GTATAACAAATTCAAC.barcode_2.fastq
deleted file mode 100644
index e6580a2..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GTATAACAAATTCAAC.barcode_2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:14857:1542 :N:0:GTATAACAAATTCAAC
-TATTCAAC
-+
-11>>>33@
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GTATAACATATTCAAC.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GTATAACATATTCAAC.1.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GTATAACATATTCAAC.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GTATAACATATTCAAC.2.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GTATAACATATTCAAC.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GTATAACATATTCAAC.barcode_1.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GTATAACATATTCAAC.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GTATAACATATTCAAC.barcode_2.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GTCTGATGGAACTTCG.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GTCTGATGGAACTTCG.1.fastq
deleted file mode 100644
index 2a4f95b..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GTCTGATGGAACTTCG.1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:16578:1461 1:N:0:GTCTGATGGAACTTCG
-TTTTTTCTCTTTTTTTTGTTTCTGC
-+
->1>111113@@31A0A0000B2B21
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GTCTGATGGAACTTCG.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GTCTGATGGAACTTCG.2.fastq
deleted file mode 100644
index dfea9e0..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GTCTGATGGAACTTCG.2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:16578:1461 2:N:0:GTCTGATGGAACTTCG
-CTTTTTCTTTCTTTTTCTCTCTTCT
-+
-111111>133333311113A11313
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GTCTGATGGAACTTCG.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GTCTGATGGAACTTCG.barcode_1.fastq
deleted file mode 100644
index 5ba3fed..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GTCTGATGGAACTTCG.barcode_1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:16578:1461 :N:0:GTCTGATGGAACTTCG
-GTCTGATG
-+
-11>>11B1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GTCTGATGGAACTTCG.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GTCTGATGGAACTTCG.barcode_2.fastq
deleted file mode 100644
index 1bc3bc6..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GTCTGATGGAACTTCG.barcode_2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:16578:1461 :N:0:GTCTGATGGAACTTCG
-GAACTTCG
-+
-111>>3B1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GTCTGATGTCACTTCC.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GTCTGATGTCACTTCC.1.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GTCTGATGTCACTTCC.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GTCTGATGTCACTTCC.2.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GTCTGATGTCACTTCC.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GTCTGATGTCACTTCC.barcode_1.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GTCTGATGTCACTTCC.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/GTCTGATGTCACTTCC.barcode_2.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/NN.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/NN.1.fastq
deleted file mode 100644
index f2b882a..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/NN.1.fastq
+++ /dev/null
@@ -1,76 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:13743:1511 1:N:0:
-TCCTTCTTTTCCCTCCCCTTTCCTT
-+
->11>111@@@3111A111ABA1133
- at machine1:HiMom:abcdeACXX:1:1101:13844:1536 1:N:0:
-TTTCTTTTTTCTTTTCCCTTTATTT
-+
-1111>3311111331311B111333
- at machine1:HiMom:abcdeACXX:1:1101:14281:1532 1:N:0:
-CTTTTTTCCTTTTTTTCTTTTTTCT
-+
-1>>11111133 at 1A00013311A01
- at machine1:HiMom:abcdeACXX:1:1101:14340:1451 1:N:0:
-TTTTTTCCTTCTCCCCTTTTTCCTT
-+
->11111113311111111111013A
- at machine1:HiMom:abcdeACXX:1:1101:14809:1476 1:N:0:
-TTTTTCCCTTTCTCTTTTCTTTTCT
-+
->1>>111111113333313AAA131
- at machine1:HiMom:abcdeACXX:1:1101:14852:1366 1:N:0:
-TTCTCTCCCTCTTTTTTTCTTCTTT
-+
-111>1311111113A1AA0133313
- at machine1:HiMom:abcdeACXX:1:1101:14927:1516 1:N:0:
-CTCCTTTTCTCTTTTCCCCCTGTGC
-+
-11111 at 3131333313111111111
- at machine1:HiMom:abcdeACXX:1:1101:14943:1353 1:N:0:
-TTTTTTTTTCTTTTTTTTTTTTTTT
-+
-1>1>111100 at 33A###########
- at machine1:HiMom:abcdeACXX:1:1101:15334:1365 1:N:0:
-TTTTTTTCTTCTCTTTCTTTTCTTT
-+
-111>111113331333333B13133
- at machine1:HiMom:abcdeACXX:1:1101:15424:1475 1:N:0:
-CTTTTTTCTTTTTCTTTTTTTTTCT
-+
-1>>11 at 1113311113311000001
- at machine1:HiMom:abcdeACXX:1:1101:15736:1478 1:N:0:
-CCTCTCTTTTTTCCTTTCCCTGCCT
-+
-1111111 at 3B1111A33111A1001
- at machine1:HiMom:abcdeACXX:1:1101:15785:1528 1:N:0:
-CTTTTTTTTTTCTCTCTTTTTTTTT
-+
-11>111>100001221B########
- at machine1:HiMom:abcdeACXX:1:1101:15865:1540 1:N:0:
-GCTTTCCTTGTTTTCTGTCCCCTTC
-+
-11111113311BB13A33A111B10
- at machine1:HiMom:abcdeACXX:1:1101:15987:1510 1:N:0:
-CTTTTTTTTTTTCCCTTTTTACCTT
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1101:15998:1432 1:N:0:
-TTCTTCCTCTTCTTCTTCTTCCTTT
-+
-111>131111113133133A31133
- at machine1:HiMom:abcdeACXX:1:1101:16070:1386 1:N:0:
-TTTTTTTTTTTTTTTTCCTTCCTTT
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1101:16085:1467 1:N:0:
-TTTTTTCCTTTTCTTTTCCTCTTCT
-+
-1>>11>113B31313A13131111A
- at machine1:HiMom:abcdeACXX:1:1101:16098:1529 1:N:0:
-TTTTTTTTTTCTCTCCCTTTCTCTT
-+
-1>1>>11100012210001112222
- at machine1:HiMom:abcdeACXX:1:1101:16530:1425 1:N:0:
-TTTTTTTTTTTTTTCTTTTTTTTTT
-+
-1111>>110000A############
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/NN.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/NN.2.fastq
deleted file mode 100644
index 1f892c7..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/NN.2.fastq
+++ /dev/null
@@ -1,76 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:13743:1511 2:N:0:
-CCCCCTTCCCTCTTTTTTCCTTCCC
-+
-1111111111 at 11131100133100
- at machine1:HiMom:abcdeACXX:1:1101:13844:1536 2:N:0:
-TCTTCTTTTTTTTTTTTCTTTTCCT
-+
-111113131111A############
- at machine1:HiMom:abcdeACXX:1:1101:14281:1532 2:N:0:
-TTTCTCTTTTTTTTTCTCCCTTCCT
-+
->111133331111000121001001
- at machine1:HiMom:abcdeACXX:1:1101:14340:1451 2:N:0:
-TCCCTTCCTCCCCTCCTTCTTTTTC
-+
-1111111111111111111113110
- at machine1:HiMom:abcdeACXX:1:1101:14809:1476 2:N:0:
-TCTCTTTTTCTTTTTTCTCCTTTCT
-+
->111133111133111113111313
- at machine1:HiMom:abcdeACXX:1:1101:14852:1366 2:N:0:
-TCCTTTTTCTTTTCTTTTCTTTTCC
-+
-1111131111331313313133131
- at machine1:HiMom:abcdeACXX:1:1101:14927:1516 2:N:0:
-TTCCTCCCCCTCCTCCCCCTCCCTC
-+
-11111111>1111111100000A00
- at machine1:HiMom:abcdeACXX:1:1101:14943:1353 2:N:0:
-CTCCCTTTTTTTTTTCTTCCTCTCT
-+
-1111111111110000112111101
- at machine1:HiMom:abcdeACXX:1:1101:15334:1365 2:N:0:
-TCTCTCTTTCTTCTCTTTTTTTTTT
-+
-1111111333333313331110000
- at machine1:HiMom:abcdeACXX:1:1101:15424:1475 2:N:0:
-TTCCTTCTTTCCTTCTCTCTTTCTT
-+
-1111131113313311131133333
- at machine1:HiMom:abcdeACXX:1:1101:15736:1478 2:N:0:
-CTCTTCCCTTTCCCCCTCTTCTTCT
-+
-111>111111111111A11113A33
- at machine1:HiMom:abcdeACXX:1:1101:15785:1528 2:N:0:
-TCTTCTCTTTCTCTTTTTCTTTTCT
-+
-1111131 at 3@3333331A1133131
- at machine1:HiMom:abcdeACXX:1:1101:15865:1540 2:N:0:
-CTTTTTTATTTTCCTTTTGCATCCT
-+
-11111111333 at 31333B1133301
- at machine1:HiMom:abcdeACXX:1:1101:15987:1510 2:N:0:
-TTCCCCTTCCCTTCTCTTTTCTTCT
-+
-111111>1111 at 1111333131333
- at machine1:HiMom:abcdeACXX:1:1101:15998:1432 2:N:0:
-CTTTTTTTCTTTTCTCCTCCTTTTT
-+
-11111 at 111@3313A31A000131A
- at machine1:HiMom:abcdeACXX:1:1101:16070:1386 2:N:0:
-TTTTTTTTCTCTCTTTTTTTTTTTT
-+
-11111111013311331A#######
- at machine1:HiMom:abcdeACXX:1:1101:16085:1467 2:N:0:
-TTTTTTTTTTTTCCTCTTTTTTTCC
-+
-#########################
- at machine1:HiMom:abcdeACXX:1:1101:16098:1529 2:N:0:
-CCCTCTCCACTTTTCTTTCCTCCCT
-+
-11111>1111111331333131110
- at machine1:HiMom:abcdeACXX:1:1101:16530:1425 2:N:0:
-TTCTTTCCCTTTTCTTTTCCTTCTC
-+
-1111133111111313313133111
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/NN.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/NN.barcode_1.fastq
deleted file mode 100644
index e53e969..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/NN.barcode_1.fastq
+++ /dev/null
@@ -1,76 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:13743:1511 :N:0:
-ATTATCAA
-+
-1>>1>B33
- at machine1:HiMom:abcdeACXX:1:1101:13844:1536 :N:0:
-TCCCCGTT
-+
->1111111
- at machine1:HiMom:abcdeACXX:1:1101:14281:1532 :N:0:
-CCTTCTTT
-+
-111111B3
- at machine1:HiMom:abcdeACXX:1:1101:14340:1451 :N:0:
-TTCCTCCT
-+
-11111111
- at machine1:HiMom:abcdeACXX:1:1101:14809:1476 :N:0:
-GCTATCCA
-+
-1111>>13
- at machine1:HiMom:abcdeACXX:1:1101:14852:1366 :N:0:
-AGGTCGCA
-+
-111>>1>1
- at machine1:HiMom:abcdeACXX:1:1101:14927:1516 :N:0:
-GTCTGATG
-+
-1>>111 at 1
- at machine1:HiMom:abcdeACXX:1:1101:14943:1353 :N:0:
-CTCCCTCT
-+
-11111>11
- at machine1:HiMom:abcdeACXX:1:1101:15334:1365 :N:0:
-TGTATCTC
-+
-11111333
- at machine1:HiMom:abcdeACXX:1:1101:15424:1475 :N:0:
-CCTCTTCT
-+
-11111 at 1B
- at machine1:HiMom:abcdeACXX:1:1101:15736:1478 :N:0:
-ATTGTCTG
-+
-1>>1>BD1
- at machine1:HiMom:abcdeACXX:1:1101:15785:1528 :N:0:
-CCCGATTT
-+
-11111111
- at machine1:HiMom:abcdeACXX:1:1101:15865:1540 :N:0:
-TTCCCCAG
-+
-111>11>1
- at machine1:HiMom:abcdeACXX:1:1101:15987:1510 :N:0:
-CCTCTTTC
-+
-1111>13B
- at machine1:HiMom:abcdeACXX:1:1101:15998:1432 :N:0:
-CATGTTCG
-+
->1>11 at 31
- at machine1:HiMom:abcdeACXX:1:1101:16070:1386 :N:0:
-TGTCGGTT
-+
->1>1111>
- at machine1:HiMom:abcdeACXX:1:1101:16085:1467 :N:0:
-ACCTACTG
-+
-1>>111 at 1
- at machine1:HiMom:abcdeACXX:1:1101:16098:1529 :N:0:
-TTCTCATC
-+
-11>>1331
- at machine1:HiMom:abcdeACXX:1:1101:16530:1425 :N:0:
-CCTATTCT
-+
->1111333
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/NN.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/NN.barcode_2.fastq
deleted file mode 100644
index 73d7126..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/NN.barcode_2.fastq
+++ /dev/null
@@ -1,76 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:13743:1511 :N:0:
-CACCATAC
-+
-11>>111>
- at machine1:HiMom:abcdeACXX:1:1101:13844:1536 :N:0:
-CCAACTTC
-+
->111>B13
- at machine1:HiMom:abcdeACXX:1:1101:14281:1532 :N:0:
-TATCATTT
-+
-111>13B3
- at machine1:HiMom:abcdeACXX:1:1101:14340:1451 :N:0:
-CACCATCC
-+
-11>111B1
- at machine1:HiMom:abcdeACXX:1:1101:14809:1476 :N:0:
-CCTCCCCC
-+
-11>11>11
- at machine1:HiMom:abcdeACXX:1:1101:14852:1366 :N:0:
-TTCCTTTC
-+
-1>>>>B31
- at machine1:HiMom:abcdeACXX:1:1101:14927:1516 :N:0:
-TCACTTCC
-+
-111>>1B1
- at machine1:HiMom:abcdeACXX:1:1101:14943:1353 :N:0:
-TCCTTCTT
-+
-1111>111
- at machine1:HiMom:abcdeACXX:1:1101:15334:1365 :N:0:
-TTACTCTT
-+
-11111131
- at machine1:HiMom:abcdeACXX:1:1101:15424:1475 :N:0:
-CTCGCTTT
-+
-11111111
- at machine1:HiMom:abcdeACXX:1:1101:15736:1478 :N:0:
-GATTCACA
-+
-11>>>313
- at machine1:HiMom:abcdeACXX:1:1101:15785:1528 :N:0:
-TCTCTCCC
-+
-11>11111
- at machine1:HiMom:abcdeACXX:1:1101:15865:1540 :N:0:
-TGCTTTTA
-+
-1>111 at 13
- at machine1:HiMom:abcdeACXX:1:1101:15987:1510 :N:0:
-TTCTGCTC
-+
-11111131
- at machine1:HiMom:abcdeACXX:1:1101:15998:1432 :N:0:
-CGCCTTTT
-+
-111111 at B
- at machine1:HiMom:abcdeACXX:1:1101:16070:1386 :N:0:
-TTTTGCTT
-+
-11>>11 at 1
- at machine1:HiMom:abcdeACXX:1:1101:16085:1467 :N:0:
-CTTCCCTT
-+
-111>1B@@
- at machine1:HiMom:abcdeACXX:1:1101:16098:1529 :N:0:
-TTCCTTCC
-+
-11111311
- at machine1:HiMom:abcdeACXX:1:1101:16530:1425 :N:0:
-TCGTTTTC
-+
-1111>1>@
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TACTTAGCGTCTGCAC.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TACTTAGCGTCTGCAC.1.fastq
deleted file mode 100644
index 77adb41..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TACTTAGCGTCTGCAC.1.fastq
+++ /dev/null
@@ -1,8 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:13898:1519 1:N:0:TACTTAGCGTCTGCAC
-CCTTCTCTACTTTTTTTTCTATTTT
-+
-111>111B31 at 33311A0A1333BA
- at machine1:HiMom:abcdeACXX:1:1101:14983:1536 1:N:0:TACTTAGCGTCTGCAC
-CCTTCTTCTTGTTCCCTCGCCAGGC
-+
-11>>1113 at B11133AA111A0000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TACTTAGCGTCTGCAC.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TACTTAGCGTCTGCAC.2.fastq
deleted file mode 100644
index 5cac4d9..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TACTTAGCGTCTGCAC.2.fastq
+++ /dev/null
@@ -1,8 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:13898:1519 2:N:0:TACTTAGCGTCTGCAC
-TTTTTTCTTTTCTCTTCCTCTTTTC
-+
-11>11111 at 3131A3A111A11313
- at machine1:HiMom:abcdeACXX:1:1101:14983:1536 2:N:0:TACTTAGCGTCTGCAC
-TCCTTATCCTTTTTACTGCCCTGTA
-+
-1111>331@@331A11A311111B3
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TACTTAGCGTCTGCAC.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TACTTAGCGTCTGCAC.barcode_1.fastq
deleted file mode 100644
index bde2930..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TACTTAGCGTCTGCAC.barcode_1.fastq
+++ /dev/null
@@ -1,8 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:13898:1519 :N:0:TACTTAGCGTCTGCAC
-TACTTAGC
-+
-A3>AA55B
- at machine1:HiMom:abcdeACXX:1:1101:14983:1536 :N:0:TACTTAGCGTCTGCAC
-TACTTAGC
-+
-A3AAAB5@
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TACTTAGCGTCTGCAC.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TACTTAGCGTCTGCAC.barcode_2.fastq
deleted file mode 100644
index ae3d55a..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TACTTAGCGTCTGCAC.barcode_2.fastq
+++ /dev/null
@@ -1,8 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:13898:1519 :N:0:TACTTAGCGTCTGCAC
-GTCTGCAC
-+
-1>>>113B
- at machine1:HiMom:abcdeACXX:1:1101:14983:1536 :N:0:TACTTAGCGTCTGCAC
-GTCTGCAC
-+
-1>>>1 at 3C
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TCCCCGTTCCAACTTC.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TCCCCGTTCCAACTTC.1.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TCCCCGTTCCAACTTC.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TCCCCGTTCCAACTTC.2.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TCCCCGTTCCAACTTC.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TCCCCGTTCCAACTTC.barcode_1.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TCCCCGTTCCAACTTC.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TCCCCGTTCCAACTTC.barcode_2.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TCCTTGGTGCTGCACT.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TCCTTGGTGCTGCACT.1.fastq
deleted file mode 100644
index 60a3c0c..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TCCTTGGTGCTGCACT.1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:17106:1463 1:N:0:TCCTTGGTGCTGCACT
-TTTCTTTTTTTTCTTTTCTCTTCCT
-+
-11>113 at 1111>0A3A131333111
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TCCTTGGTGCTGCACT.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TCCTTGGTGCTGCACT.2.fastq
deleted file mode 100644
index 1c953fe..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TCCTTGGTGCTGCACT.2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:17106:1463 2:N:0:TCCTTGGTGCTGCACT
-TTCATTTTCTTCTTTTTCTTCCTCT
-+
-1111133331333131111331111
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TCCTTGGTGCTGCACT.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TCCTTGGTGCTGCACT.barcode_1.fastq
deleted file mode 100644
index 0519c0e..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TCCTTGGTGCTGCACT.barcode_1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:17106:1463 :N:0:TCCTTGGTGCTGCACT
-TCCTTGGT
-+
-1>>>A111
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TCCTTGGTGCTGCACT.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TCCTTGGTGCTGCACT.barcode_2.fastq
deleted file mode 100644
index a127011..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TCCTTGGTGCTGCACT.barcode_2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:17106:1463 :N:0:TCCTTGGTGCTGCACT
-GCTGCACT
-+
-11>111 at 1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TCGCCTTGCCAACGCT.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TCGCCTTGCCAACGCT.1.fastq
deleted file mode 100644
index 1258713..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TCGCCTTGCCAACGCT.1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:15287:1512 1:N:0:TCGCCTTGCCAACGCT
-CCTCCTCCTTTTATTTCTTTTCCCT
-+
-111111>1B131333333331A111
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TCGCCTTGCCAACGCT.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TCGCCTTGCCAACGCT.2.fastq
deleted file mode 100644
index 42bddd1..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TCGCCTTGCCAACGCT.2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:15287:1512 2:N:0:TCGCCTTGCCAACGCT
-CTTTTTTCTTTTTTTCGTCTTTCTT
-+
-1111111113 at 111000000A2221
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TCGCCTTGCCAACGCT.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TCGCCTTGCCAACGCT.barcode_1.fastq
deleted file mode 100644
index 4a06f22..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TCGCCTTGCCAACGCT.barcode_1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:15287:1512 :N:0:TCGCCTTGCCAACGCT
-TCGCCTTG
-+
->A11>>A1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TCGCCTTGCCAACGCT.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TCGCCTTGCCAACGCT.barcode_2.fastq
deleted file mode 100644
index cbe5481..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TCGCCTTGCCAACGCT.barcode_2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:15287:1512 :N:0:TCGCCTTGCCAACGCT
-CCAACGCT
-+
-1>11>1>1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGCAAGTACGAACTTC.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGCAAGTACGAACTTC.1.fastq
deleted file mode 100644
index f4d00bc..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGCAAGTACGAACTTC.1.fastq
+++ /dev/null
@@ -1,8 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:13416:1538 1:N:0:TGCAAGTACGAACTTC
-TTTTGTCTATCACTTTGTTTATTCA
-+
->11>11333333311A13113BBA3
- at machine1:HiMom:abcdeACXX:1:1101:16315:1534 1:N:0:TGCAAGTACGAACTTC
-TTTCTGTTTTATTCTTTTCTTATGT
-+
->1>113333B333333AB31A331D
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGCAAGTACGAACTTC.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGCAAGTACGAACTTC.2.fastq
deleted file mode 100644
index 15e3d34..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGCAAGTACGAACTTC.2.fastq
+++ /dev/null
@@ -1,8 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:13416:1538 2:N:0:TGCAAGTACGAACTTC
-TTTTCTTCCCTTTCTTTCTCTGTTT
-+
-111111331111B133A33333D33
- at machine1:HiMom:abcdeACXX:1:1101:16315:1534 2:N:0:TGCAAGTACGAACTTC
-TTTTTCTCCTCCTTTTTTTGTTCCT
-+
-111111131 at 11A1A111000B333
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGCAAGTACGAACTTC.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGCAAGTACGAACTTC.barcode_1.fastq
deleted file mode 100644
index eb3cc6c..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGCAAGTACGAACTTC.barcode_1.fastq
+++ /dev/null
@@ -1,8 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:13416:1538 :N:0:TGCAAGTACGAACTTC
-TGCAAGTA
-+
->1>111B3
- at machine1:HiMom:abcdeACXX:1:1101:16315:1534 :N:0:TGCAAGTACGAACTTC
-TGCAAGTA
-+
->1>111B3
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGCAAGTACGAACTTC.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGCAAGTACGAACTTC.barcode_2.fastq
deleted file mode 100644
index 3226f6e..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGCAAGTACGAACTTC.barcode_2.fastq
+++ /dev/null
@@ -1,8 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:13416:1538 :N:0:TGCAAGTACGAACTTC
-CGAACTTC
-+
->111>1 at B
- at machine1:HiMom:abcdeACXX:1:1101:16315:1534 :N:0:TGCAAGTACGAACTTC
-CGAACTTC
-+
-1111>>@@
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGCTCGACTTCACAGA.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGCTCGACTTCACAGA.1.fastq
deleted file mode 100644
index 934a92d..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGCTCGACTTCACAGA.1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:15028:1491 1:N:0:TGCTCGACTTCACAGA
-TTTTTTTTTTTTTTTTTTTTTTTTT
-+
->1>>111>>000/A###########
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGCTCGACTTCACAGA.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGCTCGACTTCACAGA.2.fastq
deleted file mode 100644
index 179bc18..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGCTCGACTTCACAGA.2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:15028:1491 2:N:0:TGCTCGACTTCACAGA
-TTCTTTTTTTTCTTTTTTTTTCTCT
-+
-1111131111001331100//0A22
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGCTCGACTTCACAGA.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGCTCGACTTCACAGA.barcode_1.fastq
deleted file mode 100644
index 980ce72..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGCTCGACTTCACAGA.barcode_1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:15028:1491 :N:0:TGCTCGACTTCACAGA
-TGCTCGAC
-+
->11>>11>
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGCTCGACTTCACAGA.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGCTCGACTTCACAGA.barcode_2.fastq
deleted file mode 100644
index 4a925c7..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGCTCGACTTCACAGA.barcode_2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:15028:1491 :N:0:TGCTCGACTTCACAGA
-TTCACAGT
-+
-1>111311
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGCTCGACTTCACAGT.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGCTCGACTTCACAGT.1.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGCTCGACTTCACAGT.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGCTCGACTTCACAGT.2.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGCTCGACTTCACAGT.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGCTCGACTTCACAGT.barcode_1.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGCTCGACTTCACAGT.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGCTCGACTTCACAGT.barcode_2.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGTAATCACCTCTAAC.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGTAATCACCTCTAAC.1.fastq
deleted file mode 100644
index 307c316..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGTAATCACCTCTAAC.1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:15439:1540 1:N:0:TGTAATCACCTCTAAC
-CTTCTTTCATATTCTTAAATTTGCA
-+
-1>>11B333B333ABA331ABA333
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGTAATCACCTCTAAC.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGTAATCACCTCTAAC.2.fastq
deleted file mode 100644
index 788beb6..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGTAATCACCTCTAAC.2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:15439:1540 2:N:0:TGTAATCACCTCTAAC
-TTTTGTTTGAGTGTTATAGAAACAG
-+
-111>11BB111113B3333313110
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGTAATCACCTCTAAC.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGTAATCACCTCTAAC.barcode_1.fastq
deleted file mode 100644
index d1d82fd..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGTAATCACCTCTAAC.barcode_1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:15439:1540 :N:0:TGTAATCACCTCTAAC
-TGTAATCA
-+
-A?A3?FF5
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGTAATCACCTCTAAC.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGTAATCACCTCTAAC.barcode_2.fastq
deleted file mode 100644
index 96c6c7a..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGTAATCACCTCTAAC.barcode_2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:15439:1540 :N:0:TGTAATCACCTCTAAC
-CCTCTAAC
-+
-AAAAA45D
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGTATCTCTTACTCTT.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGTATCTCTTACTCTT.1.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGTATCTCTTACTCTT.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGTATCTCTTACTCTT.2.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGTATCTCTTACTCTT.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGTATCTCTTACTCTT.barcode_1.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGTATCTCTTACTCTT.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGTATCTCTTACTCTT.barcode_2.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGTCGGTTTTTTGCTT.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGTCGGTTTTTTGCTT.1.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGTCGGTTTTTTGCTT.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGTCGGTTTTTTGCTT.2.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGTCGGTTTTTTGCTT.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGTCGGTTTTTTGCTT.barcode_1.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGTCGGTTTTTTGCTT.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGTCGGTTTTTTGCTT.barcode_2.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGTTCCGAAACCTCTT.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGTTCCGAAACCTCTT.1.fastq
deleted file mode 100644
index 721c088..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGTTCCGAAACCTCTT.1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:16256:1385 1:N:0:TGTTCCGAAACCTCTT
-TTTCTCTTTTTTTTTCCTTTTTTTT
-+
->>11>3 at 3@@11AAA01A22AA0/A
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGTTCCGAAACCTCTT.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGTTCCGAAACCTCTT.2.fastq
deleted file mode 100644
index df55ba2..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGTTCCGAAACCTCTT.2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:16256:1385 2:N:0:TGTTCCGAAACCTCTT
-TCTTTTTCTTTTTTCTTTTCTCTTT
-+
-11111111 at 33111113A13A3A33
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGTTCCGAAACCTCTT.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGTTCCGAAACCTCTT.barcode_1.fastq
deleted file mode 100644
index 6e3bf8b..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGTTCCGAAACCTCTT.barcode_1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:16256:1385 :N:0:TGTTCCGAAACCTCTT
-TGTTCCGA
-+
->1>>>B11
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGTTCCGAAACCTCTT.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGTTCCGAAACCTCTT.barcode_2.fastq
deleted file mode 100644
index 455640c..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TGTTCCGAAACCTCTT.barcode_2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:16256:1385 :N:0:TGTTCCGAAACCTCTT
-AACCTCTT
-+
-11>>>>B1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTAATCAGCTGGTATT.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTAATCAGCTGGTATT.1.fastq
deleted file mode 100644
index 1ff4d1e..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTAATCAGCTGGTATT.1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:17703:1479 1:N:0:TTAATCAGCTGGTATT
-TTTTTTTTTTCCTCCTTTTTTTCCT
-+
-111111110001110012A1//01A
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTAATCAGCTGGTATT.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTAATCAGCTGGTATT.2.fastq
deleted file mode 100644
index 5f97d3b..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTAATCAGCTGGTATT.2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:17703:1479 2:N:0:TTAATCAGCTGGTATT
-TCTTTTTTCCTTCTCTTTTTTCTTT
-+
-11111 at 1111331113331100133
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTAATCAGCTGGTATT.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTAATCAGCTGGTATT.barcode_1.fastq
deleted file mode 100644
index 0ab8920..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTAATCAGCTGGTATT.barcode_1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:17703:1479 :N:0:TTAATCAGCTGGTATT
-TTAATCAG
-+
-1>11>D31
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTAATCAGCTGGTATT.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTAATCAGCTGGTATT.barcode_2.fastq
deleted file mode 100644
index 97df4c8..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTAATCAGCTGGTATT.barcode_2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:17703:1479 :N:0:TTAATCAGCTGGTATT
-CTGGTATT
-+
-1111>1B@
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTATATCTTCATGTCT.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTATATCTTCATGTCT.1.fastq
deleted file mode 100644
index 2d8f858..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTATATCTTCATGTCT.1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:16819:1536 1:N:0:TTATATCTTCATGTCT
-TTTTTTTGTTTTGTCCTTTCTTCCT
-+
->1>111>1111>0A3AA33AAB31B
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTATATCTTCATGTCT.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTATATCTTCATGTCT.2.fastq
deleted file mode 100644
index f31ded3..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTATATCTTCATGTCT.2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:16819:1536 2:N:0:TTATATCTTCATGTCT
-TTTTTTTTTCATCCCTCTCTTCCCT
-+
-1>1>>>>>>0333A010A0A2A101
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTATATCTTCATGTCT.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTATATCTTCATGTCT.barcode_1.fastq
deleted file mode 100644
index 1dc9e36..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTATATCTTCATGTCT.barcode_1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:16819:1536 :N:0:TTATATCTTCATGTCT
-TTATATCT
-+
->A1>1BDD
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTATATCTTCATGTCT.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTATATCTTCATGTCT.barcode_2.fastq
deleted file mode 100644
index 29a141d..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTATATCTTCATGTCT.barcode_2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:16819:1536 :N:0:TTATATCTTCATGTCT
-TCATGTCT
-+
->>1>1BB3
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTCCCCAGTGCTTTTA.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTCCCCAGTGCTTTTA.1.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTCCCCAGTGCTTTTA.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTCCCCAGTGCTTTTA.2.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTCCCCAGTGCTTTTA.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTCCCCAGTGCTTTTA.barcode_1.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTCCCCAGTGCTTTTA.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTCCCCAGTGCTTTTA.barcode_2.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTCCTCCTCACCATCC.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTCCTCCTCACCATCC.1.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTCCTCCTCACCATCC.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTCCTCCTCACCATCC.2.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTCCTCCTCACCATCC.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTCCTCCTCACCATCC.barcode_1.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTCCTCCTCACCATCC.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTCCTCCTCACCATCC.barcode_2.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTCTCATCTTCCTTCC.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTCTCATCTTCCTTCC.1.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTCTCATCTTCCTTCC.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTCTCATCTTCCTTCC.2.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTCTCATCTTCCTTCC.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTCTCATCTTCCTTCC.barcode_1.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTCTCATCTTCCTTCC.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTCTCATCTTCCTTCC.barcode_2.fastq
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTGAATAGATATCCGA.1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTGAATAGATATCCGA.1.fastq
deleted file mode 100644
index 704a027..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTGAATAGATATCCGA.1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:16891:1545 1:N:0:TTGAATAGATATCCGA
-CTTTTGCCTGTGTTTTTTCTCTCAT
-+
-1>1>>11111B1BABA11AAA3A13
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTGAATAGATATCCGA.2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTGAATAGATATCCGA.2.fastq
deleted file mode 100644
index 73d7067..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTGAATAGATATCCGA.2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:16891:1545 2:N:0:TTGAATAGATATCCGA
-CTTTTTTCTGACTTTCTTCTAGACT
-+
-11>1>1>>13311A3AB3AB33313
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTGAATAGATATCCGA.barcode_1.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTGAATAGATATCCGA.barcode_1.fastq
deleted file mode 100644
index 01ad3c2..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTGAATAGATATCCGA.barcode_1.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:16891:1545 :N:0:TTGAATAGATATCCGA
-TTGAATAG
-+
->A333B54
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTGAATAGATATCCGA.barcode_2.fastq b/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTGAATAGATATCCGA.barcode_2.fastq
deleted file mode 100644
index b94b113..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/TTGAATAGATATCCGA.barcode_2.fastq
+++ /dev/null
@@ -1,4 +0,0 @@
- at machine1:HiMom:abcdeACXX:1:1101:16891:1545 :N:0:TTGAATAGATATCCGA
-ATATCCGA
-+
-1>>AAD11
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/AACTTGAC.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/AACTTGAC.sam
deleted file mode 100644
index 57e8020..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/AACTTGAC.sam
+++ /dev/null
@@ -1,4 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.AACTTGAC-GCTCTCTT	LB:LN_AACTTGACGCTCTCTT	SM:SA_AACTTGACGCTCTCTT	CN:BI
-HiMom:1:1101:14221:1451	589	*	0	0	*	*	0	0	TTTTTTTTTCTTTTACTTTTTTTTT	>1>1>111>0@@31311B21AAA##	RG:Z:HiMom.1
-HiMom:1:1101:14221:1451	653	*	0	0	*	*	0	0	TTTTTTTTTCTTTTTTTTCCTTTTT	1111111>>0 at 331B00/011221A	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/AAGACACT.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/AAGACACT.sam
deleted file mode 100644
index 75fa9b3..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/AAGACACT.sam
+++ /dev/null
@@ -1,4 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.AAGACACT-AGTCTCCT	LB:LN_AAGACACTAGTCTCCT	SM:SA_AAGACACTAGTCTCCT	CN:BI
-HiMom:1:1101:15405:1531	589	*	0	0	*	*	0	0	TTTCCTTCTTTTTTTTTTTTTTTAT	11>11331 at 13111000A#######	RG:Z:HiMom.1
-HiMom:1:1101:15405:1531	653	*	0	0	*	*	0	0	TTCTTTTTTCTTTTTCTTTGTTCTT	11111@@11>1331B11333B03A3	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/ACAGGTAT.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/ACAGGTAT.sam
deleted file mode 100644
index 80f7080..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/ACAGGTAT.sam
+++ /dev/null
@@ -1,4 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.ACAGGTAT-CACTTCAT	LB:LN_ACAGGTATCACTTCAT	SM:SA_ACAGGTATCACTTCAT	CN:BI
-HiMom:1:1101:14342:1520	589	*	0	0	*	*	0	0	CTTTCTTTTCTCCTTTTTTTCTTTC	11>>1@@@1313111311AA0BAAA	RG:Z:HiMom.1
-HiMom:1:1101:14342:1520	653	*	0	0	*	*	0	0	TCGTGTTTTTTCTTTTTGCTTTCCC	111>1>>>11111331A013A3111	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/ACAGTTGA.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/ACAGTTGA.sam
deleted file mode 100644
index 11cfedc..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/ACAGTTGA.sam
+++ /dev/null
@@ -1,6 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.ACAGTTGA-ATCTTCTC	LB:LN_ACAGTTGAATCTTCTC	SM:SA_ACAGTTGAATCTTCTC	CN:BI
-HiMom:1:1101:14133:1507	589	*	0	0	*	*	0	0	TCCTCTTTGCTTTTTGCTATCACTC	111>1B1 at 313131111A33A33D1	RG:Z:HiMom.1
-HiMom:1:1101:14133:1507	653	*	0	0	*	*	0	0	TCCTTTATTATCTTTGTTCCTTTTT	111>>313 at 333AAA3A1333331A	RG:Z:HiMom.1
-HiMom:1:1101:14753:1450	589	*	0	0	*	*	0	0	CTTTTTCCTCTTTTTTTCTTTTGTT	1>>>>@1131B1311100BA31100	RG:Z:HiMom.1
-HiMom:1:1101:14753:1450	653	*	0	0	*	*	0	0	TCCCTTTTTTTTCTTTTCTCTTTTT	1111>@11@>1001331313331AA	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/ACCAACTG.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/ACCAACTG.sam
deleted file mode 100644
index f3e7c05..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/ACCAACTG.sam
+++ /dev/null
@@ -1,4 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.ACCAACTG-CATCACTT	LB:LN_ACCAACTGCATCACTT	SM:SA_ACCAACTGCATCACTT	CN:BI
-HiMom:1:1101:15221:1507	589	*	0	0	*	*	0	0	CTTTTTTCTTTCTTTGTTTTTGTAT	1>1>1111@@33A3B3311000033	RG:Z:HiMom.1
-HiMom:1:1101:15221:1507	653	*	0	0	*	*	0	0	CTCTTTTTTTTCTCTCTTCTTTCCT	111>13111>0013A11313B321A	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/ACCTACTG.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/ACCTACTG.sam
deleted file mode 100644
index 8ad7c10..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/ACCTACTG.sam
+++ /dev/null
@@ -1,2 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.ACCTACTG-CTTCCCTT	LB:LN_ACCTACTGCTTCCCTT	SM:SA_ACCTACTGCTTCCCTT	CN:BI
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/ACTAAGAC.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/ACTAAGAC.sam
deleted file mode 100644
index 8aa38c5..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/ACTAAGAC.sam
+++ /dev/null
@@ -1,4 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.ACTAAGAC-GTCCTCAT	LB:LN_ACTAAGACGTCCTCAT	SM:SA_ACTAAGACGTCCTCAT	CN:BI
-HiMom:1:1101:17324:1480	589	*	0	0	*	*	0	0	TCTCTGTGTTTTTTTTTTTTTTACT	>111>333 at 11111A000///A/1A	RG:Z:HiMom.1
-HiMom:1:1101:17324:1480	653	*	0	0	*	*	0	0	CTTTTTTTTCTTCTCTTTCCTTCCT	1>>1111>00 at 333133331AA101	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/AGGTCGCA.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/AGGTCGCA.sam
deleted file mode 100644
index 03219df..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/AGGTCGCA.sam
+++ /dev/null
@@ -1,2 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.AGGTCGCA-TTCCTTTC	LB:LN_AGGTCGCATTCCTTTC	SM:SA_AGGTCGCATTCCTTTC	CN:BI
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/AGGTGCGA.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/AGGTGCGA.sam
deleted file mode 100644
index bae890f..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/AGGTGCGA.sam
+++ /dev/null
@@ -1,4 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.AGGTGCGA-GACATTAA	LB:LN_AGGTGCGAGACATTAA	SM:SA_AGGTGCGAGACATTAA	CN:BI
-HiMom:1:1101:15634:1526	589	*	0	0	*	*	0	0	TTTTTTTTTTCTTTGGTTATTTTAT	1>>>>>AA00>11B100A1BBAB2A	RG:Z:HiMom.1
-HiMom:1:1101:15634:1526	653	*	0	0	*	*	0	0	CCTCTCTTCTTTTTTTCTCCTTTTT	111>1>131 at 131110A1B1ABBA1	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/AGGTTATC.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/AGGTTATC.sam
deleted file mode 100644
index cb41e6a..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/AGGTTATC.sam
+++ /dev/null
@@ -1,4 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.AGGTTATC-TTAGCCAG	LB:LN_AGGTTATCTTAGCCAG	SM:SA_AGGTTATCTTAGCCAG	CN:BI
-HiMom:1:1101:17862:1503	589	*	0	0	*	*	0	0	TTTTTTTCCTACTTTGCTTTAGTTT	>1>1>1>1133113A11A1A1133A	RG:Z:HiMom.1
-HiMom:1:1101:17862:1503	653	*	0	0	*	*	0	0	TCTTCCCCTTCTTTATTTATTTGCT	1>1111111>1 at AA3A3B33AA333	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/AGTTGCTT.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/AGTTGCTT.sam
deleted file mode 100644
index 2948939..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/AGTTGCTT.sam
+++ /dev/null
@@ -1,4 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.AGTTGCTT-TGACTTGG	LB:LN_AGTTGCTTTGACTTGG	SM:SA_AGTTGCTTTGACTTGG	CN:BI
-HiMom:1:1101:14369:1492	589	*	0	0	*	*	0	0	TTTCTTCTTTCTTTTTGTAAAGTTT	1>>11333 at B3BB31111333333B	RG:Z:HiMom.1
-HiMom:1:1101:14369:1492	653	*	0	0	*	*	0	0	TCCTTCTTTTTCTCTTTTTTTTCTT	1>11>@1131111AAAAA1100011	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/ATAGCGTC.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/ATAGCGTC.sam
deleted file mode 100644
index efd072d..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/ATAGCGTC.sam
+++ /dev/null
@@ -1,4 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.ATAGCGTC-TTGGTCTG	LB:LN_ATAGCGTCTTGGTCTG	SM:SA_ATAGCGTCTTGGTCTG	CN:BI
-HiMom:1:1101:17049:1423	589	*	0	0	*	*	0	0	CTCTTTTCTTTCTTTCTCTTCCTCT	1>111 at 13@3333A33A3331111A	RG:Z:HiMom.1
-HiMom:1:1101:17049:1423	653	*	0	0	*	*	0	0	TTTTCTCCTCCTCTTCCTCTTTTTT	1111113111111111111113110	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/ATTATCAA.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/ATTATCAA.sam
deleted file mode 100644
index 422b7c7..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/ATTATCAA.sam
+++ /dev/null
@@ -1,2 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.ATTATCAA-CACCATAC	LB:LN_ATTATCAACACCATAC	SM:SA_ATTATCAACACCATAC	CN:BI
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/ATTGTCTG.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/ATTGTCTG.sam
deleted file mode 100644
index fec0fd0..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/ATTGTCTG.sam
+++ /dev/null
@@ -1,2 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.ATTGTCTG-GATTCACA	LB:LN_ATTGTCTGGATTCACA	SM:SA_ATTGTCTGGATTCACA	CN:BI
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CAATAGTC.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CAATAGTC.sam
deleted file mode 100644
index 6fa6e2d..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CAATAGTC.sam
+++ /dev/null
@@ -1,4 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.CAATAGTC-CGACTCTC	LB:LN_CAATAGTCCGACTCTC	SM:SA_CAATAGTCCGACTCTC	CN:BI
-HiMom:1:1101:15479:1337	589	*	0	0	*	*	0	0	CTCTCTTTTTTTTCTTTTTTATTCT	1111113311110013311001222	RG:Z:HiMom.1
-HiMom:1:1101:15479:1337	653	*	0	0	*	*	0	0	TTTTCCTTCCTTTCTCTTCCCTCCT	111111 at 311133133331111111	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CAGCAAGG.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CAGCAAGG.sam
deleted file mode 100644
index 04b4be8..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CAGCAAGG.sam
+++ /dev/null
@@ -1,4 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.CAGCAAGG-GCGATATT	LB:LN_CAGCAAGGGCGATATT	SM:SA_CAGCAAGGGCGATATT	CN:BI
-HiMom:1:1101:17475:1506	589	*	0	0	*	*	0	0	TCTTTTTTTTTCTCTCGTGTGTTGG	>111>B11>0>013310A0A0BB##	RG:Z:HiMom.1
-HiMom:1:1101:17475:1506	653	*	0	0	*	*	0	0	CCTTTTTCTTTTCTCTCCTCTTTCC	11111111 at 33131331111A1331	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CAGCGGTA.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CAGCGGTA.sam
deleted file mode 100644
index 3b2ed89..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CAGCGGTA.sam
+++ /dev/null
@@ -1,4 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.CAGCGGTA-AGTACTGC	LB:LN_CAGCGGTAAGTACTGC	SM:SA_CAGCGGTAAGTACTGC	CN:BI
-HiMom:1:1101:13678:1483	589	*	0	0	*	*	0	0	TCTTTTCTTTTTTTTTTTCTTTTTT	>1>>>131331111000A01AB###	RG:Z:HiMom.1
-HiMom:1:1101:13678:1483	653	*	0	0	*	*	0	0	TTTTTTTTCTTTCCTCTCTTTTTTT	11111111013331A##########	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CATGCTTA.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CATGCTTA.sam
deleted file mode 100644
index e53745f..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CATGCTTA.sam
+++ /dev/null
@@ -1,6 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.CATGCTTA-TAGCATTT	LB:LN_CATGCTTATAGCATTT	SM:SA_CATGCTTATAGCATTT	CN:BI
-HiMom:1:1101:13947:1464	589	*	0	0	*	*	0	0	CTCCTTTTCTTCTTCTTCTCTTTTT	1>11113 at 313331331331A3311	RG:Z:HiMom.1
-HiMom:1:1101:13947:1464	653	*	0	0	*	*	0	0	TTTTTTTTTCCCTCCCCTTTCCCTT	1111111100111000000111111	RG:Z:HiMom.1
-HiMom:1:1101:17987:1524	589	*	0	0	*	*	0	0	CCTCTTTTTCTGTTTTTTTTGCTGG	111>11 at 111133331110001B11	RG:Z:HiMom.1
-HiMom:1:1101:17987:1524	653	*	0	0	*	*	0	0	TCTTCTTTTCTTTCTTCTTTATTTG	111>13131313A3A33A1A33A33	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CATGCTTT.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CATGCTTT.sam
deleted file mode 100644
index bf025ee..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CATGCTTT.sam
+++ /dev/null
@@ -1,2 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.CATGCTTT-TAGCATTG	LB:LN_CATGCTTTTAGCATTG	SM:SA_CATGCTTTTAGCATTG	CN:BI
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CATGTTCG.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CATGTTCG.sam
deleted file mode 100644
index ecd136d..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CATGTTCG.sam
+++ /dev/null
@@ -1,2 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.CATGTTCG-CGCCTTTT	LB:LN_CATGTTCGCGCCTTTT	SM:SA_CATGTTCGCGCCTTTT	CN:BI
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CCAGAGCT.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CCAGAGCT.sam
deleted file mode 100644
index ab66e3a..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CCAGAGCT.sam
+++ /dev/null
@@ -1,6 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.CCAGAGCT-CAACTGAT	LB:LN_CCAGAGCTCAACTGAT	SM:SA_CCAGAGCTCAACTGAT	CN:BI
-HiMom:1:1101:16357:1518	589	*	0	0	*	*	0	0	GTCTTCTGCTTCGCTCACGCTGGGT	1>>>>3 at 113B311AA1111A0000	RG:Z:HiMom.1
-HiMom:1:1101:16357:1518	653	*	0	0	*	*	0	0	TCCTTCTCTCTTTTTTTTTAATTCT	>1111111B at BB311AA0001ABAB	RG:Z:HiMom.1
-HiMom:1:1101:17387:1497	589	*	0	0	*	*	0	0	CCCCTTTTTTGTTGTGCTTTAGCCT	111>>111111111A01B3311111	RG:Z:HiMom.1
-HiMom:1:1101:17387:1497	653	*	0	0	*	*	0	0	CTTTTTGTCTTTCTTCCCCCTGCTT	111>11113@@@3333111AA0011	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CCCGATTT.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CCCGATTT.sam
deleted file mode 100644
index 6245307..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CCCGATTT.sam
+++ /dev/null
@@ -1,2 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.CCCGATTT-TCTCTCCC	LB:LN_CCCGATTTTCTCTCCC	SM:SA_CCCGATTTTCTCTCCC	CN:BI
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CCTATGCC.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CCTATGCC.sam
deleted file mode 100644
index 79bf0d7..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CCTATGCC.sam
+++ /dev/null
@@ -1,4 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.CCTATGCC-AATTGGCC	LB:LN_CCTATGCCAATTGGCC	SM:SA_CCTATGCCAATTGGCC	CN:BI
-HiMom:1:1101:17516:1540	589	*	0	0	*	*	0	0	CTTTCGTTTTTCTTTCCTATACATC	1>>1111B>1>1B3331B3A11333	RG:Z:HiMom.1
-HiMom:1:1101:17516:1540	653	*	0	0	*	*	0	0	TTCTTTTTTTTCCCTTTCCCTTTTC	1>111 at B@11>0111B11AA1A112	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CCTATTCT.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CCTATTCT.sam
deleted file mode 100644
index 0d02f5f..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CCTATTCT.sam
+++ /dev/null
@@ -1,2 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.CCTATTCT-TCGTTTTC	LB:LN_CCTATTCTTCGTTTTC	SM:SA_CCTATTCTTCGTTTTC	CN:BI
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CCTCTTCT.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CCTCTTCT.sam
deleted file mode 100644
index bdf0d9e..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CCTCTTCT.sam
+++ /dev/null
@@ -1,2 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.CCTCTTCT-CTCGCTTT	LB:LN_CCTCTTCTCTCGCTTT	SM:SA_CCTCTTCTCTCGCTTT	CN:BI
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CCTCTTTC.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CCTCTTTC.sam
deleted file mode 100644
index 8024be1..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CCTCTTTC.sam
+++ /dev/null
@@ -1,2 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.CCTCTTTC-TTCTGCTC	LB:LN_CCTCTTTCTTCTGCTC	SM:SA_CCTCTTTCTTCTGCTC	CN:BI
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CCTTCGCA.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CCTTCGCA.sam
deleted file mode 100644
index 95ea56b..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CCTTCGCA.sam
+++ /dev/null
@@ -1,4 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.CCTTCGCA-GAATCGAC	LB:LN_CCTTCGCAGAATCGAC	SM:SA_CCTTCGCAGAATCGAC	CN:BI
-HiMom:1:1101:15248:1531	589	*	0	0	*	*	0	0	CCCTACCTGTCTGCTATCCATCCCC	111>11111B1311313A13B111A	RG:Z:HiMom.1
-HiMom:1:1101:15248:1531	653	*	0	0	*	*	0	0	TTCTCCTTCTATTTCTCTTGTCTTC	11111@@B@@3333333331A1333	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CCTTCTTT.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CCTTCTTT.sam
deleted file mode 100644
index b2904b4..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CCTTCTTT.sam
+++ /dev/null
@@ -1,2 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.CCTTCTTT-TATCATTT	LB:LN_CCTTCTTTTATCATTT	SM:SA_CCTTCTTTTATCATTT	CN:BI
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CGCTATGT.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CGCTATGT.sam
deleted file mode 100644
index af2e6f7..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CGCTATGT.sam
+++ /dev/null
@@ -1,4 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.CGCTATGT-TTCACCTT	LB:LN_CGCTATGTTTCACCTT	SM:SA_CGCTATGTTTCACCTT	CN:BI
-HiMom:1:1101:17615:1538	589	*	0	0	*	*	0	0	CTTTTTTTTTTTTCCTTTTTTTCTT	>>>>11110000A011AA1A//0A1	RG:Z:HiMom.1
-HiMom:1:1101:17615:1538	653	*	0	0	*	*	0	0	TTCTTTCCTTTTCTTTTTTCTGTTT	11>1133133 at 131331111A3333	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CTACCAGG.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CTACCAGG.sam
deleted file mode 100644
index 6297e7e..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CTACCAGG.sam
+++ /dev/null
@@ -1,4 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.CTACCAGG-TTCTTGGC	LB:LN_CTACCAGGTTCTTGGC	SM:SA_CTACCAGGTTCTTGGC	CN:BI
-HiMom:1:1101:14790:1540	589	*	0	0	*	*	0	0	TTCTCTCTTTTCTCTTTCTTGTTGT	A>1>13113313A3AAAAAB11B1B	RG:Z:HiMom.1
-HiMom:1:1101:14790:1540	653	*	0	0	*	*	0	0	CTCTGTATTTTCCTTTTTCTTCTTT	11111 at 33@@33133A1BB1A3A1B	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CTCCCTCT.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CTCCCTCT.sam
deleted file mode 100644
index 26105ec..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CTCCCTCT.sam
+++ /dev/null
@@ -1,2 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.CTCCCTCT-TCCTTCTT	LB:LN_CTCCCTCTTCCTTCTT	SM:SA_CTCCCTCTTCCTTCTT	CN:BI
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CTGTAATC.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CTGTAATC.sam
deleted file mode 100644
index 235ef32..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/CTGTAATC.sam
+++ /dev/null
@@ -1,4 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.CTGTAATC-CTATTAGC	LB:LN_CTGTAATCCTATTAGC	SM:SA_CTGTAATCCTATTAGC	CN:BI
-HiMom:1:1101:15029:1349	589	*	0	0	*	*	0	0	CTTCTCCTTTTCTTTTTTTTTTTTT	1>11111113 at 313A##########	RG:Z:HiMom.1
-HiMom:1:1101:15029:1349	653	*	0	0	*	*	0	0	TTTCTTTTTCTTTTTTCTTTCTTTT	1111>3 at 111133111113333331	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/GACCAGGA.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/GACCAGGA.sam
deleted file mode 100644
index f333f4f..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/GACCAGGA.sam
+++ /dev/null
@@ -1,4 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.GACCAGGA-CCATCACA	LB:LN_GACCAGGACCATCACA	SM:SA_GACCAGGACCATCACA	CN:BI
-HiMom:1:1101:16241:1505	589	*	0	0	*	*	0	0	CTTCTTTTTTTTCTTCCCTTTGCTC	11>1113 at 11100A331011A1111	RG:Z:HiMom.1
-HiMom:1:1101:16241:1505	653	*	0	0	*	*	0	0	CTGTGGTTTTTTTCTTGTCTTTTCC	111>11111111001A111333AA1	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/GCCGTCGA.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/GCCGTCGA.sam
deleted file mode 100644
index 4b1178c..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/GCCGTCGA.sam
+++ /dev/null
@@ -1,6 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.GCCGTCGA-TGGTACCC	LB:LN_GCCGTCGATGGTACCC	SM:SA_GCCGTCGATGGTACCC	CN:BI
-HiMom:1:1101:13789:1486	589	*	0	0	*	*	0	0	CTTTTTTCTTCCTCTTTCTTTTTCT	1111111113311AAB33333A10A	RG:Z:HiMom.1
-HiMom:1:1101:13789:1486	653	*	0	0	*	*	0	0	TTTTTCTCTCCTTCTCTTCTCCTTC	1111111331111111331311111	RG:Z:HiMom.1
-HiMom:1:1101:14791:1400	589	*	0	0	*	*	0	0	TTTTTTTCTTTTTCTTTTTTTCTTT	>>1>>111 at 3@@11A3B1BA001A1	RG:Z:HiMom.1
-HiMom:1:1101:14791:1400	653	*	0	0	*	*	0	0	TCCTTTTTCTTTCCTTTTCTTTTTT	111>131 at 1133313331313311A	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/GCCTAGCC.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/GCCTAGCC.sam
deleted file mode 100644
index 58acb3b..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/GCCTAGCC.sam
+++ /dev/null
@@ -1,4 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.GCCTAGCC-CTTGAATC	LB:LN_GCCTAGCCCTTGAATC	SM:SA_GCCTAGCCCTTGAATC	CN:BI
-HiMom:1:1101:14517:1469	589	*	0	0	*	*	0	0	TTTCTTTTTTTTCCCTTTCCTCTTT	>111133111>001111111B1111	RG:Z:HiMom.1
-HiMom:1:1101:14517:1469	653	*	0	0	*	*	0	0	CCTCCTTTTTCTTCTTTTCCTTTTT	11111113111133AA3A313331A	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/GCTATCCA.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/GCTATCCA.sam
deleted file mode 100644
index efa1bfc..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/GCTATCCA.sam
+++ /dev/null
@@ -1,2 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.GCTATCCA-CCTCCCCC	LB:LN_GCTATCCACCTCCCCC	SM:SA_GCTATCCACCTCCCCC	CN:BI
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/GTATAACA.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/GTATAACA.sam
deleted file mode 100644
index 9b3ff62..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/GTATAACA.sam
+++ /dev/null
@@ -1,4 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.GTATAACA-TATTCAAC	LB:LN_GTATAACATATTCAAC	SM:SA_GTATAACATATTCAAC	CN:BI
-HiMom:1:1101:14857:1542	589	*	0	0	*	*	0	0	TTTTCTCTTTTTGTTTTTTTCTTCT	1>>>1 at 33B3111ABB11AA01333	RG:Z:HiMom.1
-HiMom:1:1101:14857:1542	653	*	0	0	*	*	0	0	TCTTCCTTTTTTTTTTTTCTTTCTT	111111133@@110000/AB1122A	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/GTCTGATG.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/GTCTGATG.sam
deleted file mode 100644
index f45a307..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/GTCTGATG.sam
+++ /dev/null
@@ -1,4 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.GTCTGATG-TCACTTCC	LB:LN_GTCTGATGTCACTTCC	SM:SA_GTCTGATGTCACTTCC	CN:BI
-HiMom:1:1101:16578:1461	589	*	0	0	*	*	0	0	TTTTTTCTCTTTTTTTTGTTTCTGC	>1>111113@@31A0A0000B2B21	RG:Z:HiMom.1
-HiMom:1:1101:16578:1461	653	*	0	0	*	*	0	0	CTTTTTCTTTCTTTTTCTCTCTTCT	111111>133333311113A11313	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/N.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/N.sam
deleted file mode 100644
index 473afc5..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/N.sam
+++ /dev/null
@@ -1,40 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.N-N	LB:LN_N	SM:SA_N	CN:BI
-HiMom:1:1101:13743:1511	589	*	0	0	*	*	0	0	TCCTTCTTTTCCCTCCCCTTTCCTT	>11>111@@@3111A111ABA1133	BC:Z:ATTATCAA-CACCATAC	RG:Z:HiMom.1
-HiMom:1:1101:13743:1511	653	*	0	0	*	*	0	0	CCCCCTTCCCTCTTTTTTCCTTCCC	1111111111 at 11131100133100	BC:Z:ATTATCAA-CACCATAC	RG:Z:HiMom.1
-HiMom:1:1101:13844:1536	589	*	0	0	*	*	0	0	TTTCTTTTTTCTTTTCCCTTTATTT	1111>3311111331311B111333	BC:Z:TCCCCGTT-CCAACTTC	RG:Z:HiMom.1
-HiMom:1:1101:13844:1536	653	*	0	0	*	*	0	0	TCTTCTTTTTTTTTTTTCTTTTCCT	111113131111A############	BC:Z:TCCCCGTT-CCAACTTC	RG:Z:HiMom.1
-HiMom:1:1101:14281:1532	589	*	0	0	*	*	0	0	CTTTTTTCCTTTTTTTCTTTTTTCT	1>>11111133 at 1A00013311A01	BC:Z:CCTTCTTT-TATCATTT	RG:Z:HiMom.1
-HiMom:1:1101:14281:1532	653	*	0	0	*	*	0	0	TTTCTCTTTTTTTTTCTCCCTTCCT	>111133331111000121001001	BC:Z:CCTTCTTT-TATCATTT	RG:Z:HiMom.1
-HiMom:1:1101:14340:1451	589	*	0	0	*	*	0	0	TTTTTTCCTTCTCCCCTTTTTCCTT	>11111113311111111111013A	BC:Z:TTCCTCCT-CACCATCC	RG:Z:HiMom.1
-HiMom:1:1101:14340:1451	653	*	0	0	*	*	0	0	TCCCTTCCTCCCCTCCTTCTTTTTC	1111111111111111111113110	BC:Z:TTCCTCCT-CACCATCC	RG:Z:HiMom.1
-HiMom:1:1101:14809:1476	589	*	0	0	*	*	0	0	TTTTTCCCTTTCTCTTTTCTTTTCT	>1>>111111113333313AAA131	BC:Z:GCTATCCA-CCTCCCCC	RG:Z:HiMom.1
-HiMom:1:1101:14809:1476	653	*	0	0	*	*	0	0	TCTCTTTTTCTTTTTTCTCCTTTCT	>111133111133111113111313	BC:Z:GCTATCCA-CCTCCCCC	RG:Z:HiMom.1
-HiMom:1:1101:14852:1366	589	*	0	0	*	*	0	0	TTCTCTCCCTCTTTTTTTCTTCTTT	111>1311111113A1AA0133313	BC:Z:AGGTCGCA-TTCCTTTC	RG:Z:HiMom.1
-HiMom:1:1101:14852:1366	653	*	0	0	*	*	0	0	TCCTTTTTCTTTTCTTTTCTTTTCC	1111131111331313313133131	BC:Z:AGGTCGCA-TTCCTTTC	RG:Z:HiMom.1
-HiMom:1:1101:14927:1516	589	*	0	0	*	*	0	0	CTCCTTTTCTCTTTTCCCCCTGTGC	11111 at 3131333313111111111	BC:Z:GTCTGATG-TCACTTCC	RG:Z:HiMom.1
-HiMom:1:1101:14927:1516	653	*	0	0	*	*	0	0	TTCCTCCCCCTCCTCCCCCTCCCTC	11111111>1111111100000A00	BC:Z:GTCTGATG-TCACTTCC	RG:Z:HiMom.1
-HiMom:1:1101:14943:1353	589	*	0	0	*	*	0	0	TTTTTTTTTCTTTTTTTTTTTTTTT	1>1>111100 at 33A###########	BC:Z:CTCCCTCT-TCCTTCTT	RG:Z:HiMom.1
-HiMom:1:1101:14943:1353	653	*	0	0	*	*	0	0	CTCCCTTTTTTTTTTCTTCCTCTCT	1111111111110000112111101	BC:Z:CTCCCTCT-TCCTTCTT	RG:Z:HiMom.1
-HiMom:1:1101:15334:1365	589	*	0	0	*	*	0	0	TTTTTTTCTTCTCTTTCTTTTCTTT	111>111113331333333B13133	BC:Z:TGTATCTC-TTACTCTT	RG:Z:HiMom.1
-HiMom:1:1101:15334:1365	653	*	0	0	*	*	0	0	TCTCTCTTTCTTCTCTTTTTTTTTT	1111111333333313331110000	BC:Z:TGTATCTC-TTACTCTT	RG:Z:HiMom.1
-HiMom:1:1101:15424:1475	589	*	0	0	*	*	0	0	CTTTTTTCTTTTTCTTTTTTTTTCT	1>>11 at 1113311113311000001	BC:Z:CCTCTTCT-CTCGCTTT	RG:Z:HiMom.1
-HiMom:1:1101:15424:1475	653	*	0	0	*	*	0	0	TTCCTTCTTTCCTTCTCTCTTTCTT	1111131113313311131133333	BC:Z:CCTCTTCT-CTCGCTTT	RG:Z:HiMom.1
-HiMom:1:1101:15736:1478	589	*	0	0	*	*	0	0	CCTCTCTTTTTTCCTTTCCCTGCCT	1111111 at 3B1111A33111A1001	BC:Z:ATTGTCTG-GATTCACA	RG:Z:HiMom.1
-HiMom:1:1101:15736:1478	653	*	0	0	*	*	0	0	CTCTTCCCTTTCCCCCTCTTCTTCT	111>111111111111A11113A33	BC:Z:ATTGTCTG-GATTCACA	RG:Z:HiMom.1
-HiMom:1:1101:15785:1528	589	*	0	0	*	*	0	0	CTTTTTTTTTTCTCTCTTTTTTTTT	11>111>100001221B########	BC:Z:CCCGATTT-TCTCTCCC	RG:Z:HiMom.1
-HiMom:1:1101:15785:1528	653	*	0	0	*	*	0	0	TCTTCTCTTTCTCTTTTTCTTTTCT	1111131 at 3@3333331A1133131	BC:Z:CCCGATTT-TCTCTCCC	RG:Z:HiMom.1
-HiMom:1:1101:15865:1540	589	*	0	0	*	*	0	0	GCTTTCCTTGTTTTCTGTCCCCTTC	11111113311BB13A33A111B10	BC:Z:TTCCCCAG-TGCTTTTA	RG:Z:HiMom.1
-HiMom:1:1101:15865:1540	653	*	0	0	*	*	0	0	CTTTTTTATTTTCCTTTTGCATCCT	11111111333 at 31333B1133301	BC:Z:TTCCCCAG-TGCTTTTA	RG:Z:HiMom.1
-HiMom:1:1101:15987:1510	589	*	0	0	*	*	0	0	CTTTTTTTTTTTCCCTTTTTACCTT	#########################	BC:Z:CCTCTTTC-TTCTGCTC	RG:Z:HiMom.1
-HiMom:1:1101:15987:1510	653	*	0	0	*	*	0	0	TTCCCCTTCCCTTCTCTTTTCTTCT	111111>1111 at 1111333131333	BC:Z:CCTCTTTC-TTCTGCTC	RG:Z:HiMom.1
-HiMom:1:1101:15998:1432	589	*	0	0	*	*	0	0	TTCTTCCTCTTCTTCTTCTTCCTTT	111>131111113133133A31133	BC:Z:CATGTTCG-CGCCTTTT	RG:Z:HiMom.1
-HiMom:1:1101:15998:1432	653	*	0	0	*	*	0	0	CTTTTTTTCTTTTCTCCTCCTTTTT	11111 at 111@3313A31A000131A	BC:Z:CATGTTCG-CGCCTTTT	RG:Z:HiMom.1
-HiMom:1:1101:16070:1386	589	*	0	0	*	*	0	0	TTTTTTTTTTTTTTTTCCTTCCTTT	#########################	BC:Z:TGTCGGTT-TTTTGCTT	RG:Z:HiMom.1
-HiMom:1:1101:16070:1386	653	*	0	0	*	*	0	0	TTTTTTTTCTCTCTTTTTTTTTTTT	11111111013311331A#######	BC:Z:TGTCGGTT-TTTTGCTT	RG:Z:HiMom.1
-HiMom:1:1101:16085:1467	589	*	0	0	*	*	0	0	TTTTTTCCTTTTCTTTTCCTCTTCT	1>>11>113B31313A13131111A	BC:Z:ACCTACTG-CTTCCCTT	RG:Z:HiMom.1
-HiMom:1:1101:16085:1467	653	*	0	0	*	*	0	0	TTTTTTTTTTTTCCTCTTTTTTTCC	#########################	BC:Z:ACCTACTG-CTTCCCTT	RG:Z:HiMom.1
-HiMom:1:1101:16098:1529	589	*	0	0	*	*	0	0	TTTTTTTTTTCTCTCCCTTTCTCTT	1>1>>11100012210001112222	BC:Z:TTCTCATC-TTCCTTCC	RG:Z:HiMom.1
-HiMom:1:1101:16098:1529	653	*	0	0	*	*	0	0	CCCTCTCCACTTTTCTTTCCTCCCT	11111>1111111331333131110	BC:Z:TTCTCATC-TTCCTTCC	RG:Z:HiMom.1
-HiMom:1:1101:16530:1425	589	*	0	0	*	*	0	0	TTTTTTTTTTTTTTCTTTTTTTTTT	1111>>110000A############	BC:Z:CCTATTCT-TCGTTTTC	RG:Z:HiMom.1
-HiMom:1:1101:16530:1425	653	*	0	0	*	*	0	0	TTCTTTCCCTTTTCTTTTCCTTCTC	1111133111111313313133111	BC:Z:CCTATTCT-TCGTTTTC	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TACTTAGC.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TACTTAGC.sam
deleted file mode 100644
index 20b89bb..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TACTTAGC.sam
+++ /dev/null
@@ -1,6 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.TACTTAGC-GTCTGCAC	LB:LN_TACTTAGCGTCTGCAC	SM:SA_TACTTAGCGTCTGCAC	CN:BI
-HiMom:1:1101:13898:1519	589	*	0	0	*	*	0	0	CCTTCTCTACTTTTTTTTCTATTTT	111>111B31 at 33311A0A1333BA	RG:Z:HiMom.1
-HiMom:1:1101:13898:1519	653	*	0	0	*	*	0	0	TTTTTTCTTTTCTCTTCCTCTTTTC	11>11111 at 3131A3A111A11313	RG:Z:HiMom.1
-HiMom:1:1101:14983:1536	589	*	0	0	*	*	0	0	CCTTCTTCTTGTTCCCTCGCCAGGC	11>>1113 at B11133AA111A0000	RG:Z:HiMom.1
-HiMom:1:1101:14983:1536	653	*	0	0	*	*	0	0	TCCTTATCCTTTTTACTGCCCTGTA	1111>331@@331A11A311111B3	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TCCCCGTT.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TCCCCGTT.sam
deleted file mode 100644
index 44a3c3c..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TCCCCGTT.sam
+++ /dev/null
@@ -1,2 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.TCCCCGTT-CCAACTTC	LB:LN_TCCCCGTTCCAACTTC	SM:SA_TCCCCGTTCCAACTTC	CN:BI
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TCCTTGGT.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TCCTTGGT.sam
deleted file mode 100644
index 84531c8..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TCCTTGGT.sam
+++ /dev/null
@@ -1,4 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.TCCTTGGT-GCTGCACT	LB:LN_TCCTTGGTGCTGCACT	SM:SA_TCCTTGGTGCTGCACT	CN:BI
-HiMom:1:1101:17106:1463	589	*	0	0	*	*	0	0	TTTCTTTTTTTTCTTTTCTCTTCCT	11>113 at 1111>0A3A131333111	RG:Z:HiMom.1
-HiMom:1:1101:17106:1463	653	*	0	0	*	*	0	0	TTCATTTTCTTCTTTTTCTTCCTCT	1111133331333131111331111	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TCGCCTTG.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TCGCCTTG.sam
deleted file mode 100644
index 070cfe7..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TCGCCTTG.sam
+++ /dev/null
@@ -1,4 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.TCGCCTTG-CCAACGCT	LB:LN_TCGCCTTGCCAACGCT	SM:SA_TCGCCTTGCCAACGCT	CN:BI
-HiMom:1:1101:15287:1512	589	*	0	0	*	*	0	0	CCTCCTCCTTTTATTTCTTTTCCCT	111111>1B131333333331A111	RG:Z:HiMom.1
-HiMom:1:1101:15287:1512	653	*	0	0	*	*	0	0	CTTTTTTCTTTTTTTCGTCTTTCTT	1111111113 at 111000000A2221	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TGCAAGTA.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TGCAAGTA.sam
deleted file mode 100644
index 149c745..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TGCAAGTA.sam
+++ /dev/null
@@ -1,6 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.TGCAAGTA-CGAACTTC	LB:LN_TGCAAGTACGAACTTC	SM:SA_TGCAAGTACGAACTTC	CN:BI
-HiMom:1:1101:13416:1538	589	*	0	0	*	*	0	0	TTTTGTCTATCACTTTGTTTATTCA	>11>11333333311A13113BBA3	RG:Z:HiMom.1
-HiMom:1:1101:13416:1538	653	*	0	0	*	*	0	0	TTTTCTTCCCTTTCTTTCTCTGTTT	111111331111B133A33333D33	RG:Z:HiMom.1
-HiMom:1:1101:16315:1534	589	*	0	0	*	*	0	0	TTTCTGTTTTATTCTTTTCTTATGT	>1>113333B333333AB31A331D	RG:Z:HiMom.1
-HiMom:1:1101:16315:1534	653	*	0	0	*	*	0	0	TTTTTCTCCTCCTTTTTTTGTTCCT	111111131 at 11A1A111000B333	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TGCTCGAC.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TGCTCGAC.sam
deleted file mode 100644
index 966ff62..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TGCTCGAC.sam
+++ /dev/null
@@ -1,4 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.TGCTCGAC-TTCACAGT	LB:LN_TGCTCGACTTCACAGT	SM:SA_TGCTCGACTTCACAGT	CN:BI
-HiMom:1:1101:15028:1491	589	*	0	0	*	*	0	0	TTTTTTTTTTTTTTTTTTTTTTTTT	>1>>111>>000/A###########	RG:Z:HiMom.1
-HiMom:1:1101:15028:1491	653	*	0	0	*	*	0	0	TTCTTTTTTTTCTTTTTTTTTCTCT	1111131111001331100//0A22	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TGTAATCA.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TGTAATCA.sam
deleted file mode 100644
index a3ec1f7..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TGTAATCA.sam
+++ /dev/null
@@ -1,4 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.TGTAATCA-CCTCTAAC	LB:LN_TGTAATCACCTCTAAC	SM:SA_TGTAATCACCTCTAAC	CN:BI
-HiMom:1:1101:15439:1540	589	*	0	0	*	*	0	0	CTTCTTTCATATTCTTAAATTTGCA	1>>11B333B333ABA331ABA333	RG:Z:HiMom.1
-HiMom:1:1101:15439:1540	653	*	0	0	*	*	0	0	TTTTGTTTGAGTGTTATAGAAACAG	111>11BB111113B3333313110	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TGTATCTC.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TGTATCTC.sam
deleted file mode 100644
index 696634f..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TGTATCTC.sam
+++ /dev/null
@@ -1,2 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.TGTATCTC-TTACTCTT	LB:LN_TGTATCTCTTACTCTT	SM:SA_TGTATCTCTTACTCTT	CN:BI
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TGTCGGTT.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TGTCGGTT.sam
deleted file mode 100644
index b7b00bc..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TGTCGGTT.sam
+++ /dev/null
@@ -1,2 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.TGTCGGTT-TTTTGCTT	LB:LN_TGTCGGTTTTTTGCTT	SM:SA_TGTCGGTTTTTTGCTT	CN:BI
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TGTTCCGA.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TGTTCCGA.sam
deleted file mode 100644
index fc9e0d9..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TGTTCCGA.sam
+++ /dev/null
@@ -1,4 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.TGTTCCGA-AACCTCTT	LB:LN_TGTTCCGAAACCTCTT	SM:SA_TGTTCCGAAACCTCTT	CN:BI
-HiMom:1:1101:16256:1385	589	*	0	0	*	*	0	0	TTTCTCTTTTTTTTTCCTTTTTTTT	>>11>3 at 3@@11AAA01A22AA0/A	RG:Z:HiMom.1
-HiMom:1:1101:16256:1385	653	*	0	0	*	*	0	0	TCTTTTTCTTTTTTCTTTTCTCTTT	11111111 at 33111113A13A3A33	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TTAATCAG.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TTAATCAG.sam
deleted file mode 100644
index 1d4b2b6..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TTAATCAG.sam
+++ /dev/null
@@ -1,4 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.TTAATCAG-CTGGTATT	LB:LN_TTAATCAGCTGGTATT	SM:SA_TTAATCAGCTGGTATT	CN:BI
-HiMom:1:1101:17703:1479	589	*	0	0	*	*	0	0	TTTTTTTTTTCCTCCTTTTTTTCCT	111111110001110012A1//01A	RG:Z:HiMom.1
-HiMom:1:1101:17703:1479	653	*	0	0	*	*	0	0	TCTTTTTTCCTTCTCTTTTTTCTTT	11111 at 1111331113331100133	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TTATATCT.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TTATATCT.sam
deleted file mode 100644
index 8629fa0..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TTATATCT.sam
+++ /dev/null
@@ -1,4 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.TTATATCT-TCATGTCT	LB:LN_TTATATCTTCATGTCT	SM:SA_TTATATCTTCATGTCT	CN:BI
-HiMom:1:1101:16819:1536	589	*	0	0	*	*	0	0	TTTTTTTGTTTTGTCCTTTCTTCCT	>1>111>1111>0A3AA33AAB31B	RG:Z:HiMom.1
-HiMom:1:1101:16819:1536	653	*	0	0	*	*	0	0	TTTTTTTTTCATCCCTCTCTTCCCT	1>1>>>>>>0333A010A0A2A101	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TTCCCCAG.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TTCCCCAG.sam
deleted file mode 100644
index a651187..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TTCCCCAG.sam
+++ /dev/null
@@ -1,2 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.TTCCCCAG-TGCTTTTA	LB:LN_TTCCCCAGTGCTTTTA	SM:SA_TTCCCCAGTGCTTTTA	CN:BI
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TTCCTCCT.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TTCCTCCT.sam
deleted file mode 100644
index 67c6e54..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TTCCTCCT.sam
+++ /dev/null
@@ -1,2 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.TTCCTCCT-CACCATCC	LB:LN_TTCCTCCTCACCATCC	SM:SA_TTCCTCCTCACCATCC	CN:BI
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TTCTCATC.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TTCTCATC.sam
deleted file mode 100644
index 9294d00..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TTCTCATC.sam
+++ /dev/null
@@ -1,2 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.TTCTCATC-TTCCTTCC	LB:LN_TTCTCATCTTCCTTCC	SM:SA_TTCTCATCTTCCTTCC	CN:BI
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TTGAATAG.sam b/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TTGAATAG.sam
deleted file mode 100644
index ce84c28..0000000
--- a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/TTGAATAG.sam
+++ /dev/null
@@ -1,4 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at RG	ID:HiMom.1	PL:illumina	PU:HiMom.1.TTGAATAG-ATATCCGA	LB:LN_TTGAATAGATATCCGA	SM:SA_TTGAATAGATATCCGA	CN:BI
-HiMom:1:1101:16891:1545	589	*	0	0	*	*	0	0	CTTTTGCCTGTGTTTTTTCTCTCAT	1>1>>11111B1BABA11AAA3A13	RG:Z:HiMom.1
-HiMom:1:1101:16891:1545	653	*	0	0	*	*	0	0	CTTTTTTCTGACTTTCTTCTAGACT	11>1>1>>13311A3AB3AB33313	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/readerTests/s_1_1104_pos.txt b/testdata/net/sf/picard/illumina/readerTests/s_1_1104_pos.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/intervallist/IntervalListFromVCFTest.vcf b/testdata/net/sf/picard/intervallist/IntervalListFromVCFTest.vcf
deleted file mode 100644
index 39bed22..0000000
--- a/testdata/net/sf/picard/intervallist/IntervalListFromVCFTest.vcf
+++ /dev/null
@@ -1,53 +0,0 @@
-##fileformat=VCFv4.1
-##ApplyRecalibration="analysis_type=ApplyRecalibration input_file=[] read_buffer_size=null phone_home=NO_ET gatk_key=/humgen/gsa-hpprojects/GATK/data/gatk_user_keys/gsamembers_broadinstitute.org.key read_filter=[] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta nonDeterministicRandomSeed=false downsampling_type=BY_SAMPLE downsample_to_fraction=null do [...]
-##CombineVariants="analysis_type=CombineVariants input_file=[] read_buffer_size=null phone_home=STANDARD gatk_key=null read_filter=[] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta nonDeterministicRandomSeed=false downsampling_type=BY_SAMPLE downsample_to_fraction=null downsample_to_coverage=1000 baq=OFF baqGapOpenPenalty=40.0 performanceLog=null use [...]
-##FILTER=<ID=LowQual,Description="Low quality">
-##FILTER=<ID=VQSRTrancheINDEL99.00to99.90,Description="Truth sensitivity tranche level for INDEL model at VQS Lod: -4.1718 <= x < -0.8611">
-##FILTER=<ID=VQSRTrancheINDEL99.90to100.00+,Description="Truth sensitivity tranche level for INDEL model at VQS Lod < -727.2136">
-##FILTER=<ID=VQSRTrancheINDEL99.90to100.00,Description="Truth sensitivity tranche level for INDEL model at VQS Lod: -727.2136 <= x < -4.1718">
-##FILTER=<ID=VQSRTrancheSNP99.00to99.90,Description="Truth sensitivity tranche level for SNP model at VQS Lod: -25.4561 <= x < 3.2489">
-##FILTER=<ID=VQSRTrancheSNP99.90to100.00+,Description="Truth sensitivity tranche level for SNP model at VQS Lod < -38672.7015">
-##FILTER=<ID=VQSRTrancheSNP99.90to100.00,Description="Truth sensitivity tranche level for SNP model at VQS Lod: -38672.7015 <= x < -25.4561">
-##FORMAT=<ID=AD,Number=.,Type=Integer,Description="Allelic depths for the ref and alt alleles in the order listed">
-##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth (reads with MQ=255 or with bad mates are filtered)">
-##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
-##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
-##FORMAT=<ID=PL,Number=G,Type=Integer,Description="Normalized, Phred-scaled likelihoods for genotypes as defined in the VCF specification">
-##FORMAT=<ID=TP,Number=1,Type=Integer,Description="Phred score of the genotype combination and phase given that the genotypes are correct">
-##INFO=<ID=AC,Number=A,Type=Integer,Description="Allele count in genotypes, for each ALT allele, in the same order as listed">
-##INFO=<ID=AF,Number=A,Type=Float,Description="Allele Frequency, for each ALT allele, in the same order as listed">
-##INFO=<ID=AN,Number=1,Type=Integer,Description="Total number of alleles in called genotypes">
-##INFO=<ID=BaseQRankSum,Number=1,Type=Float,Description="Z-score from Wilcoxon rank sum test of Alt Vs. Ref base qualities">
-##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP Membership">
-##INFO=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth; some reads may have been filtered">
-##INFO=<ID=DS,Number=0,Type=Flag,Description="Were any of the samples downsampled?">
-##INFO=<ID=Dels,Number=1,Type=Float,Description="Fraction of Reads Containing Spanning Deletions">
-##INFO=<ID=END,Number=1,Type=Integer,Description="Stop position of the interval">
-##INFO=<ID=FS,Number=1,Type=Float,Description="Phred-scaled p-value using Fisher's exact test to detect strand bias">
-##INFO=<ID=HaplotypeScore,Number=1,Type=Float,Description="Consistency of the site with at most two segregating haplotypes">
-##INFO=<ID=InbreedingCoeff,Number=1,Type=Float,Description="Inbreeding coefficient as estimated from the genotype likelihoods per-sample when compared against the Hardy-Weinberg expectation">
-##INFO=<ID=MLEAC,Number=A,Type=Integer,Description="Maximum likelihood expectation (MLE) for the allele counts (not necessarily the same as the AC), for each ALT allele, in the same order as listed">
-##INFO=<ID=MLEAF,Number=A,Type=Float,Description="Maximum likelihood expectation (MLE) for the allele frequency (not necessarily the same as the AF), for each ALT allele, in the same order as listed">
-##INFO=<ID=MQ,Number=1,Type=Float,Description="RMS Mapping Quality">
-##INFO=<ID=MQ0,Number=1,Type=Integer,Description="Total Mapping Quality Zero Reads">
-##INFO=<ID=MQRankSum,Number=1,Type=Float,Description="Z-score From Wilcoxon rank sum test of Alt vs. Ref read mapping qualities">
-##INFO=<ID=QD,Number=1,Type=Float,Description="Variant Confidence/Quality by Depth">
-##INFO=<ID=RPA,Number=.,Type=Integer,Description="Number of times tandem repeat unit is repeated, for each allele (including reference)">
-##INFO=<ID=RU,Number=1,Type=String,Description="Tandem repeat unit (bases)">
-##INFO=<ID=ReadPosRankSum,Number=1,Type=Float,Description="Z-score from Wilcoxon rank sum test of Alt vs. Ref read position bias">
-##INFO=<ID=SB,Number=1,Type=Float,Description="Strand Bias">
-##INFO=<ID=STR,Number=0,Type=Flag,Description="Variant is a short tandem repeat">
-##INFO=<ID=VQSLOD,Number=1,Type=Float,Description="Log odds ratio of being a true variant versus being false under the trained gaussian mixture model">
-##INFO=<ID=culprit,Number=1,Type=String,Description="The annotation which was the worst performing in the Gaussian mixture model, likely the reason why the variant was filtered out">
-##INFO=<ID=set,Number=1,Type=String,Description="Source VCF for the merged record in CombineVariants">
-##PhaseByTransmission="analysis_type=PhaseByTransmission input_file=[] read_buffer_size=null phone_home=STANDARD gatk_key=null read_filter=[] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta nonDeterministicRandomSeed=false downsampling_type=BY_SAMPLE downsample_to_fraction=null downsample_to_coverage=1000 baq=OFF baqGapOpenPenalty=40.0 performanceLog= [...]
-##UnifiedGenotyper="analysis_type=UnifiedGenotyper input_file=[/humgen/gsa-hpprojects/NA12878Collection/bams/CEUTrio.HiSeq.WGS.b37.list] read_buffer_size=null phone_home=NO_ET gatk_key=/humgen/gsa-hpprojects/GATK/data/gatk_user_keys/gsamembers_broadinstitute.org.key read_filter=[] intervals=[/broad/hptmp/ami/tmp/queueScatterGather/.qlog/CEUTrio.indelcall-sg/temp_020_of_300/scatter.intervals] excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_s [...]
-##contig=<ID=1,length=249250621,assembly=b37>
-##contig=<ID=2,length=243199373,assembly=b37>
-##contig=<ID=3,length=198022430,assembly=b37>
-#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	NA12878	NA12891	NA12892
-1	8216712	rs11121115	A	G	1540.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.917;DB;DP=131;Dels=0.00;FS=11.67;HaplotypeScore=3.35;MLEAC=3;MLEAF=0.500;MQ=57.74;MQ0=1;MQRankSum=0.427;QD=11.76;ReadPosRankSum=-2.190e-01;SB=-9.390e+02;VQSLOD=5.53;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:23,28:51:99:681,0,668:127	0/1:16,18:34:99:338,0,244:127	0/1:24,22:46:99:560,0,323:127
-1	17032814	rs2773183	T	C	2828.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.879e+00;DB;DP=322;Dels=0.00;FS=2.43;HaplotypeScore=15.45;MLEAC=3;MLEAF=0.500;MQ=56.86;MQ0=0;MQRankSum=2.92;QD=8.78;ReadPosRankSum=-1.245e+00;SB=-1.943e+03;VQSLOD=-1.421e+00;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:63,59:122:99:1434,0,1831:127	0/1:53,56:109:99:910,0,871:127	0/1:61,30:91:99:523,0,1257:127
-1	17032818	rs2773183	T	C	2828.26	FILTER	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.879e+00;DB;DP=322;Dels=0.00;FS=2.43;HaplotypeScore=15.45;MLEAC=3;MLEAF=0.500;MQ=56.86;MQ0=0;MQRankSum=2.92;QD=8.78;ReadPosRankSum=-1.245e+00;SB=-1.943e+03;VQSLOD=-1.421e+00;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:63,59:122:99:1434,0,1831:127	0/1:53,56:109:99:910,0,871:127	0/1:61,30:91:99:523,0,1257:127
-2	1143476	rs4998209	C	T	1483.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-4.814e+00;DB;DP=189;Dels=0.00;FS=5.61;HaplotypeScore=0.324;MLEAC=2;MLEAF=0.333;MQ=58.36;MQ0=0;MQRankSum=1.58;QD=12.06;ReadPosRankSum=0.326;SB=-9.320e+02;VQSLOD=6.81;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:66,0:66:99:0,178,2264:127	0|1:33,38:71:99:844,0,1024:127	0|1:26,26:52:99:678,0,719:127
-2	9240279	rs56249990	A	G	3978.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=1.70;DB;DP=213;Dels=0.00;FS=7.83;HaplotypeScore=1.19;MLEAC=3;MLEAF=0.500;MQ=59.40;MQ0=0;MQRankSum=0.143;QD=27.25;ReadPosRankSum=-9.700e-02;SB=-1.991e+03;VQSLOD=9.14;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:33,42:75:99:1400,0,1031:127	0|0:67,0:67:99:0,178,2277:127	1|1:0,71:71:99:2578,199,0:127
diff --git a/testdata/net/sf/picard/intervallist/IntervalListFromVCFTestComp.interval_list b/testdata/net/sf/picard/intervallist/IntervalListFromVCFTestComp.interval_list
deleted file mode 100644
index aad2820..0000000
--- a/testdata/net/sf/picard/intervallist/IntervalListFromVCFTestComp.interval_list
+++ /dev/null
@@ -1,7 +0,0 @@
- at SQ	SN:1	LN:249250621
- at SQ	SN:2	LN:243199373
- at SQ	SN:3	LN:198022430
-1	8216712	8216712	+	rs11121115
-1	17032814	17032814	+	rs2773183
-2	1143476	1143476	+	rs4998209
-2	9240279	9240279	+	rs56249990
diff --git a/testdata/net/sf/picard/intervallist/IntervalListFromVCFTestCompInverse.interval_list b/testdata/net/sf/picard/intervallist/IntervalListFromVCFTestCompInverse.interval_list
deleted file mode 100644
index 9bcca99..0000000
--- a/testdata/net/sf/picard/intervallist/IntervalListFromVCFTestCompInverse.interval_list
+++ /dev/null
@@ -1,10 +0,0 @@
- at SQ	SN:1	LN:249250621
- at SQ	SN:2	LN:243199373
- at SQ	SN:3	LN:198022430
-1	1	8216711	+	interval-1
-1	8216713	17032813	+	interval-2
-1	17032815	249250621	+	interval-3
-2	1	1143475	+	interval-4
-2	1143477	9240278	+	interval-5
-2	9240280	243199373	+	interval-6
-3	1	198022430	+	interval-7
diff --git a/testdata/net/sf/picard/intervallist/IntervalListFromVCFTestCompInverseManual.interval_list b/testdata/net/sf/picard/intervallist/IntervalListFromVCFTestCompInverseManual.interval_list
deleted file mode 100644
index de85ca5..0000000
--- a/testdata/net/sf/picard/intervallist/IntervalListFromVCFTestCompInverseManual.interval_list
+++ /dev/null
@@ -1,10 +0,0 @@
- at SQ	SN:1	LN:249250621
- at SQ	SN:2	LN:243199373
- at SQ	SN:3	LN:198022430
-1	1	8216711	+	interval-1
-1	8216715	17032813	+	interval-2
-1	17032815	249250620	+	interval-3
-2	3	1143475	+	interval-4
-2	1143477	9240278	+	interval-5
-2	9240280	243199373	+	interval-6
-3	1	198022430	+	interval-7
diff --git a/testdata/net/sf/picard/intervallist/IntervalListFromVCFTestManual.vcf b/testdata/net/sf/picard/intervallist/IntervalListFromVCFTestManual.vcf
deleted file mode 100644
index f9ec538..0000000
--- a/testdata/net/sf/picard/intervallist/IntervalListFromVCFTestManual.vcf
+++ /dev/null
@@ -1,57 +0,0 @@
-##fileformat=VCFv4.1
-##ApplyRecalibration="analysis_type=ApplyRecalibration input_file=[] read_buffer_size=null phone_home=NO_ET gatk_key=/humgen/gsa-hpprojects/GATK/data/gatk_user_keys/gsamembers_broadinstitute.org.key read_filter=[] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta nonDeterministicRandomSeed=false downsampling_type=BY_SAMPLE downsample_to_fraction=null do [...]
-##CombineVariants="analysis_type=CombineVariants input_file=[] read_buffer_size=null phone_home=STANDARD gatk_key=null read_filter=[] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta nonDeterministicRandomSeed=false downsampling_type=BY_SAMPLE downsample_to_fraction=null downsample_to_coverage=1000 baq=OFF baqGapOpenPenalty=40.0 performanceLog=null use [...]
-##FILTER=<ID=LowQual,Description="Low quality">
-##FILTER=<ID=VQSRTrancheINDEL99.00to99.90,Description="Truth sensitivity tranche level for INDEL model at VQS Lod: -4.1718 <= x < -0.8611">
-##FILTER=<ID=VQSRTrancheINDEL99.90to100.00+,Description="Truth sensitivity tranche level for INDEL model at VQS Lod < -727.2136">
-##FILTER=<ID=VQSRTrancheINDEL99.90to100.00,Description="Truth sensitivity tranche level for INDEL model at VQS Lod: -727.2136 <= x < -4.1718">
-##FILTER=<ID=VQSRTrancheSNP99.00to99.90,Description="Truth sensitivity tranche level for SNP model at VQS Lod: -25.4561 <= x < 3.2489">
-##FILTER=<ID=VQSRTrancheSNP99.90to100.00+,Description="Truth sensitivity tranche level for SNP model at VQS Lod < -38672.7015">
-##FILTER=<ID=VQSRTrancheSNP99.90to100.00,Description="Truth sensitivity tranche level for SNP model at VQS Lod: -38672.7015 <= x < -25.4561">
-##FORMAT=<ID=AD,Number=.,Type=Integer,Description="Allelic depths for the ref and alt alleles in the order listed">
-##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth (reads with MQ=255 or with bad mates are filtered)">
-##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
-##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
-##FORMAT=<ID=PL,Number=G,Type=Integer,Description="Normalized, Phred-scaled likelihoods for genotypes as defined in the VCF specification">
-##FORMAT=<ID=TP,Number=1,Type=Integer,Description="Phred score of the genotype combination and phase given that the genotypes are correct">
-##INFO=<ID=AC,Number=A,Type=Integer,Description="Allele count in genotypes, for each ALT allele, in the same order as listed">
-##INFO=<ID=AF,Number=A,Type=Float,Description="Allele Frequency, for each ALT allele, in the same order as listed">
-##INFO=<ID=AN,Number=1,Type=Integer,Description="Total number of alleles in called genotypes">
-##INFO=<ID=BaseQRankSum,Number=1,Type=Float,Description="Z-score from Wilcoxon rank sum test of Alt Vs. Ref base qualities">
-##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP Membership">
-##INFO=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth; some reads may have been filtered">
-##INFO=<ID=DS,Number=0,Type=Flag,Description="Were any of the samples downsampled?">
-##INFO=<ID=Dels,Number=1,Type=Float,Description="Fraction of Reads Containing Spanning Deletions">
-##INFO=<ID=END,Number=1,Type=Integer,Description="Stop position of the interval">
-##INFO=<ID=FS,Number=1,Type=Float,Description="Phred-scaled p-value using Fisher's exact test to detect strand bias">
-##INFO=<ID=HaplotypeScore,Number=1,Type=Float,Description="Consistency of the site with at most two segregating haplotypes">
-##INFO=<ID=InbreedingCoeff,Number=1,Type=Float,Description="Inbreeding coefficient as estimated from the genotype likelihoods per-sample when compared against the Hardy-Weinberg expectation">
-##INFO=<ID=MLEAC,Number=A,Type=Integer,Description="Maximum likelihood expectation (MLE) for the allele counts (not necessarily the same as the AC), for each ALT allele, in the same order as listed">
-##INFO=<ID=MLEAF,Number=A,Type=Float,Description="Maximum likelihood expectation (MLE) for the allele frequency (not necessarily the same as the AF), for each ALT allele, in the same order as listed">
-##INFO=<ID=MQ,Number=1,Type=Float,Description="RMS Mapping Quality">
-##INFO=<ID=MQ0,Number=1,Type=Integer,Description="Total Mapping Quality Zero Reads">
-##INFO=<ID=MQRankSum,Number=1,Type=Float,Description="Z-score From Wilcoxon rank sum test of Alt vs. Ref read mapping qualities">
-##INFO=<ID=QD,Number=1,Type=Float,Description="Variant Confidence/Quality by Depth">
-##INFO=<ID=RPA,Number=.,Type=Integer,Description="Number of times tandem repeat unit is repeated, for each allele (including reference)">
-##INFO=<ID=RU,Number=1,Type=String,Description="Tandem repeat unit (bases)">
-##INFO=<ID=ReadPosRankSum,Number=1,Type=Float,Description="Z-score from Wilcoxon rank sum test of Alt vs. Ref read position bias">
-##INFO=<ID=SB,Number=1,Type=Float,Description="Strand Bias">
-##INFO=<ID=STR,Number=0,Type=Flag,Description="Variant is a short tandem repeat">
-##INFO=<ID=VQSLOD,Number=1,Type=Float,Description="Log odds ratio of being a true variant versus being false under the trained gaussian mixture model">
-##INFO=<ID=culprit,Number=1,Type=String,Description="The annotation which was the worst performing in the Gaussian mixture model, likely the reason why the variant was filtered out">
-##INFO=<ID=set,Number=1,Type=String,Description="Source VCF for the merged record in CombineVariants">
-##PhaseByTransmission="analysis_type=PhaseByTransmission input_file=[] read_buffer_size=null phone_home=STANDARD gatk_key=null read_filter=[] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta nonDeterministicRandomSeed=false downsampling_type=BY_SAMPLE downsample_to_fraction=null downsample_to_coverage=1000 baq=OFF baqGapOpenPenalty=40.0 performanceLog= [...]
-##UnifiedGenotyper="analysis_type=UnifiedGenotyper input_file=[/humgen/gsa-hpprojects/NA12878Collection/bams/CEUTrio.HiSeq.WGS.b37.list] read_buffer_size=null phone_home=NO_ET gatk_key=/humgen/gsa-hpprojects/GATK/data/gatk_user_keys/gsamembers_broadinstitute.org.key read_filter=[] intervals=[/broad/hptmp/ami/tmp/queueScatterGather/.qlog/CEUTrio.indelcall-sg/temp_020_of_300/scatter.intervals] excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_s [...]
-##contig=<ID=1,length=249250621,assembly=b37>
-##contig=<ID=2,length=243199373,assembly=b37>
-##contig=<ID=3,length=198022430,assembly=b37>
-#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	NA12878	NA12891	NA12892
-1	8216712	rs11121115	A	G	1540.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.917;DB;DP=131;Dels=0.00;FS=11.67;HaplotypeScore=3.35;MLEAC=3;MLEAF=0.500;MQ=57.74;MQ0=1;MQRankSum=0.427;QD=11.76;ReadPosRankSum=-2.190e-01;SB=-9.390e+02;VQSLOD=5.53;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:23,28:51:99:681,0,668:127	0/1:16,18:34:99:338,0,244:127	0/1:24,22:46:99:560,0,323:127
-1	8216713	yossi-1	A	G	1540.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.917;DB;DP=131;Dels=0.00;FS=11.67;HaplotypeScore=3.35;MLEAC=3;MLEAF=0.500;MQ=57.74;MQ0=1;MQRankSum=0.427;QD=11.76;ReadPosRankSum=-2.190e-01;SB=-9.390e+02;VQSLOD=5.53;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:23,28:51:99:681,0,668:127	0/1:16,18:34:99:338,0,244:127	0/1:24,22:46:99:560,0,323:127
-1	8216714	yossi-2	A	G	1540.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.917;DB;DP=131;Dels=0.00;FS=11.67;HaplotypeScore=3.35;MLEAC=3;MLEAF=0.500;MQ=57.74;MQ0=1;MQRankSum=0.427;QD=11.76;ReadPosRankSum=-2.190e-01;SB=-9.390e+02;VQSLOD=5.53;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:23,28:51:99:681,0,668:127	0/1:16,18:34:99:338,0,244:127	0/1:24,22:46:99:560,0,323:127
-1	17032814	rs2773183	T	C	2828.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.879e+00;DB;DP=322;Dels=0.00;FS=2.43;HaplotypeScore=15.45;MLEAC=3;MLEAF=0.500;MQ=56.86;MQ0=0;MQRankSum=2.92;QD=8.78;ReadPosRankSum=-1.245e+00;SB=-1.943e+03;VQSLOD=-1.421e+00;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:63,59:122:99:1434,0,1831:127	0/1:53,56:109:99:910,0,871:127	0/1:61,30:91:99:523,0,1257:127
-1	249250621	yossi-4	T	C	2828.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.879e+00;DB;DP=322;Dels=0.00;FS=2.43;HaplotypeScore=15.45;MLEAC=3;MLEAF=0.500;MQ=56.86;MQ0=0;MQRankSum=2.92;QD=8.78;ReadPosRankSum=-1.245e+00;SB=-1.943e+03;VQSLOD=-1.421e+00;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:63,59:122:99:1434,0,1831:127	0/1:53,56:109:99:910,0,871:127	0/1:61,30:91:99:523,0,1257:127
-2	1	yossi-5	C	T	1483.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-4.814e+00;DB;DP=189;Dels=0.00;FS=5.61;HaplotypeScore=0.324;MLEAC=2;MLEAF=0.333;MQ=58.36;MQ0=0;MQRankSum=1.58;QD=12.06;ReadPosRankSum=0.326;SB=-9.320e+02;VQSLOD=6.81;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:66,0:66:99:0,178,2264:127	0|1:33,38:71:99:844,0,1024:127	0|1:26,26:52:99:678,0,719:127
-2	2	.	C	T	1483.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-4.814e+00;DB;DP=189;Dels=0.00;FS=5.61;HaplotypeScore=0.324;MLEAC=2;MLEAF=0.333;MQ=58.36;MQ0=0;MQRankSum=1.58;QD=12.06;ReadPosRankSum=0.326;SB=-9.320e+02;VQSLOD=6.81;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:66,0:66:99:0,178,2264:127	0|1:33,38:71:99:844,0,1024:127	0|1:26,26:52:99:678,0,719:127
-2	1143476	rs4998209	C	T	1483.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-4.814e+00;DB;DP=189;Dels=0.00;FS=5.61;HaplotypeScore=0.324;MLEAC=2;MLEAF=0.333;MQ=58.36;MQ0=0;MQRankSum=1.58;QD=12.06;ReadPosRankSum=0.326;SB=-9.320e+02;VQSLOD=6.81;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:66,0:66:99:0,178,2264:127	0|1:33,38:71:99:844,0,1024:127	0|1:26,26:52:99:678,0,719:127
-2	9240279	rs56249990	A	G	3978.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=1.70;DB;DP=213;Dels=0.00;FS=7.83;HaplotypeScore=1.19;MLEAC=3;MLEAF=0.500;MQ=59.40;MQ0=0;MQRankSum=0.143;QD=27.25;ReadPosRankSum=-9.700e-02;SB=-1.991e+03;VQSLOD=9.14;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:33,42:75:99:1400,0,1031:127	0|0:67,0:67:99:0,178,2277:127	1|1:0,71:71:99:2578,199,0:127
diff --git a/testdata/net/sf/picard/intervallist/IntervalListFromVCFTestManualComp.interval_list b/testdata/net/sf/picard/intervallist/IntervalListFromVCFTestManualComp.interval_list
deleted file mode 100644
index 6c6b5e0..0000000
--- a/testdata/net/sf/picard/intervallist/IntervalListFromVCFTestManualComp.interval_list
+++ /dev/null
@@ -1,12 +0,0 @@
- at SQ	SN:1	LN:249250621
- at SQ	SN:2	LN:243199373
- at SQ	SN:3	LN:198022430
-1	8216712	8216712	+	rs11121115
-1	8216713	8216713	+	yossi-1
-1	8216714	8216714	+	yossi-2
-1	17032814	17032814	+	rs2773183
-1	249250621	249250621	+	yossi-4
-2	1	1	+	yossi-5
-2	2	2	+	interval-1
-2	1143476	1143476	+	rs4998209
-2	9240279	9240279	+	rs56249990
diff --git a/testdata/net/sf/picard/intervallist/IntervalListchr123_empty.interval_list b/testdata/net/sf/picard/intervallist/IntervalListchr123_empty.interval_list
deleted file mode 100644
index f8fd99b..0000000
--- a/testdata/net/sf/picard/intervallist/IntervalListchr123_empty.interval_list
+++ /dev/null
@@ -1,4 +0,0 @@
- at SQ	SN:1	LN:249250621
- at SQ	SN:2	LN:243199373
- at SQ	SN:3	LN:198022430
-1	1	1	+	test
\ No newline at end of file
diff --git a/testdata/net/sf/picard/io/5newline5.txt b/testdata/net/sf/picard/io/5newline5.txt
deleted file mode 100644
index 53ff652..0000000
--- a/testdata/net/sf/picard/io/5newline5.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-     
-     
\ No newline at end of file
diff --git a/testdata/net/sf/picard/io/empty.txt b/testdata/net/sf/picard/io/empty.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/io/slurptest.txt b/testdata/net/sf/picard/io/slurptest.txt
deleted file mode 100644
index 44718c3..0000000
--- a/testdata/net/sf/picard/io/slurptest.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-bacon   and rice   
-for breakfast  
-wont you join me
\ No newline at end of file
diff --git a/testdata/net/sf/picard/liftover/hg18ToHg19.over.chain b/testdata/net/sf/picard/liftover/hg18ToHg19.over.chain
deleted file mode 100644
index 9f7a0cf..0000000
--- a/testdata/net/sf/picard/liftover/hg18ToHg19.over.chain
+++ /dev/null
@@ -1,30850 +0,0 @@
-chain 21270159960 chr1 247249719 + 0 247199719 chr1 249250621 + 10000 249233096 2
-616	0	137
-166664	50000	50000
-40302	50000	50000
-153649	50000	50000
-1098446	269	272
-773	1	1
-43	1	1
-864369	2	2
-51	0	3
-104	13694	13694
-104	3	0
-51	2	2
-134936	50000	50000
-1161048	60000	150000
-1440092	50000	27273
-7590365	50000	50000
-116914	50088	100088
-237162	50000	50000
-3518496	50000	50000
-12702424	50000	150000
-16145012	1	0
-7772	0	1
-4705841	1	0
-52977198	50000	50000
-157344	50000	21065
-16604841	50000	50000
-189539	50000	150000
-398739	20290000	21050000
-195588	50000	50000
-186739	50000	150000
-175055	50000	50000
-201709	50000	100000
-126477	50000	130183
-381	3	0
-315	2	0
-62	1	1
-73	1	1
-1158	0	1
-314	1	0
-11	1	1
-2849	0	3
-5615	1	1
-37	1	1
-3172	4	6
-190	1	1
-34	1	1
-380	1	0
-2099	0	3
-1135	4	0
-970	5	5
-209	0	1
-460	1	0
-1242	28	28
-574	1	1
-21	1	1
-2268	0	3
-239	1	0
-970	11	11
-2365	1	1
-21	1	1
-384	8	8
-996	0	2
-10383	0	2
-713	1	0
-5188	1	1
-30	1	1
-1233	0	1
-132	1	1
-44	1	1
-2955	0	1
-512	1	1
-39	1	1
-1096	16	0
-743	0	1
-9028	1	0
-2506	6	0
-8446	0	2
-5505	3	0
-7541	0	1
-109864	50000	50000
-78698	50000	50000
-127263	50000	50000
-170669	50000	50000
-38311	100000	100000
-1022394	50000	50000
-281532	50000	294733
-1687	1	1
-39	0	1
-1018	1	1
-26	1	1
-1722	0	2
-158	0	4
-1602	6	0
-1384	0	1
-2066	1	1
-32	3	1
-1556908	50000	150000
-185320	50000	150000
-172789	50000	50000
-220313	50000	50000
-455185	50000	50000
-22047237	0	1
-34365824	50000	150000
-259514	50000	150000
-17265625	50000	50000
-11394365	50000	50000
-13665999	50000	150000
-174886
-
-chain 989083 chr1 247249719 + 2475290 2488984 chr1 249250621 - 246751494 246765188 1383
-13694
-
-chain 5421 chr1 247249719 + 1609759 1609849 chr1 249250621 + 1672838 1672928 2227793
-90
-
-chain 3303 chr1 247249719 + 13192499 13192587 chr1 249250621 - 236203315 236203403 109
-88
-
-chain 467 chr1 247249719 + 142633259 142633287 chr1 249250621 - 128420441 128420469 123
-28
-
-chain 12431961244 chr10 135374737 + 50000 135374737 chr10 135534747 + 60000 135524747 10
-5577107	50006	0
-12337568	50000	50000
-20794160	50000	50000
-286100	2480000	3200000
-191752	50000	50000
-3830277	150000	50000
-952205	150000	100000
-263307	150000	100000
-163231	150000	50000
-989829	150000	100000
-1941874	50000	50000
-211435	50000	50000
-30112515	319974	0
-13249156	10	0
-31058956	50000	50000
-2696597	50000	150000
-4615335	10000	50000
-246123	50000	50000
-1327328	1	1
-47	1	1
-1312	1	0
-56	1	1
-190	1	1
-31	1	1
-20182	0	1
-448068
-
-chain 8134587 chr10 135374737 + 81444609 81551340 chr10 135534747 + 88976631 89083503 218
-369	41	41
-149	6	6
-83	71	71
-548	9	9
-391	9	9
-334	42	42
-81	1	2
-954	1	0
-441	0	4
-922	37	37
-343	253	253
-278	59	58
-404	13	13
-90	39	37
-70	132	123
-145	4	4
-392	9	9
-58	29	29
-166	51	50
-78	14	14
-455	61	65
-243	41	41
-1183	17	17
-163	57	57
-169	51	51
-912	5	5
-667	12	12
-250	20	20
-506	8	8
-292	8	8
-266	17	17
-69	27	27
-131	22	22
-668	46	47
-270	13	13
-128	7	7
-300	48	48
-818	32	32
-667	67	67
-402	24	36
-293	18	18
-423	68	68
-113	9	9
-630	42	42
-269	51	51
-165	0	1
-645	52	52
-76	91	90
-505	13	13
-143	31	31
-319	68	70
-245	126	126
-145	35	37
-90	57	57
-378	41	38
-193	13	13
-333	51	30
-51	6	6
-821	56	56
-547	18	18
-343	9	9
-270	47	47
-706	1	0
-120	21	22
-371	35	35
-530	13	13
-51	36	36
-611	48	48
-587	18	18
-499	9	9
-183	26	26
-847	7	7
-134	5	4
-64	34	34
-120	66	66
-173	147	147
-126	19	16
-53	44	49
-69	1	0
-153	89	90
-81	16	16
-52	32	36
-72	28	28
-86	68	68
-56	51	51
-120	17	17
-181	5	5
-86	17	18
-68	36	36
-356	101	101
-90	3	11
-226	26	28
-70	19	19
-95	9	9
-88	16	16
-272	33	33
-216	71	71
-394	83	83
-853	14	15
-90	23	23
-130	0	3
-52	11	11
-192	49	49
-407	13	13
-122	71	34
-179	28	28
-102	10	10
-299	36	36
-268	4	4
-123	36	36
-112	41	41
-233	77	75
-73	88	92
-519	43	43
-118	101	101
-78	33	43
-117	31	31
-83	37	37
-86	3	0
-468	0	2
-791	55	55
-268	97	97
-111	55	59
-164	38	38
-176	0	3
-116	67	74
-269	0	3
-92	66	67
-205	50	55
-1339	33	34
-86	9	9
-310	34	34
-217	42	42
-194	18	17
-191	4	4
-250	0	3
-148	79	79
-77	3	0
-199	57	57
-200	53	53
-331	52	53
-136	32	42
-69	60	60
-169	0	1
-594	88	88
-174	70	70
-135	48	48
-53	9	9
-862	25	25
-1106	33	33
-974	76	76
-368	17	17
-369	43	43
-263	49	49
-143	8	8
-228	57	57
-74	3	0
-914	2	0
-137	77	74
-243	32	32
-166	53	53
-646	87	87
-71	0	1
-661	45	45
-142	76	76
-851	17	17
-56	60	60
-52	59	58
-80	60	60
-602	13	13
-617	76	78
-51	152	152
-77	38	38
-150	0	4
-386	45	45
-585	40	33
-108	12	12
-219	99	99
-1376	58	58
-517	27	27
-124	20	20
-566	58	58
-235	47	47
-72	26	26
-157	43	43
-208	31	31
-578	122	84
-259	15	15
-1141	119	119
-141	13	13
-817	14	14
-188	0	5
-323	62	75
-447	0	5
-64	161	161
-945	23	23
-66	35	35
-104	125	125
-613	186	184
-102	205	203
-767	27	27
-111	13	13
-107	80	83
-272	0	1
-438	4	4
-127	68	68
-564	44	44
-141	14	14
-137	13	17
-167	18	0
-241	25	25
-586	30	30
-178	44	44
-310	90	87
-1277	35	35
-646	32	32
-704	56	56
-367	93	101
-241	15	14
-340	64	64
-1000	23	26
-163	81	81
-895	12	12
-345	2	0
-117	48	49
-491	32	32
-206	17	17
-439	109	109
-202	6	7
-756	24	24
-380	63	62
-144	48	48
-608	80	80
-154	71	71
-232	16	16
-1809	40	40
-346	53	52
-117	10	0
-383	10	10
-1973	19	19
-879	42	42
-91	50	50
-1147	2	1
-210	68	88
-189	7	7
-595	50	49
-248	104	126
-265	106	106
-167	0	7
-141	93	62
-825	1	0
-348	47	46
-211	3	0
-114	52	56
-66	7	7
-759	48	48
-269	0	1
-106	109	114
-114	38	39
-282	20	20
-504	0	1
-174	14	7
-123	45	46
-82	58	58
-203	12	13
-153	44	44
-121	74	74
-805	43	43
-120	67	68
-171	6	6
-329	20	20
-151	33	33
-71	46	46
-195	25	21
-65	23	42
-96	78	78
-58	0	4
-389	0	3
-214	137	138
-111	2	3
-116	10	10
-128	0	3
-52	8	8
-62	43	43
-142	6	6
-214	0	112
-179	0	1
-234	4	0
-75	116	117
-119	63	67
-286	72	42
-73	150	150
-206	214	220
-73	2	0
-82	48	48
-135	40	67
-115	109	114
-185	49	49
-99	63	63
-52	204	205
-121
-
-chain 2724232 chr10 135374737 + 81309951 81339951 chr10 135534747 + 81320000 81350000 983
-22137	957	957
-46	77	77
-38	83	83
-51	54	54
-984	53	53
-5520
-
-chain 1898345 chr10 135374737 + 81349952 81369946 chr10 135534747 + 81360000 81380000 1327
-15902	21	27
-4071
-
-chain 946327 chr10 135374737 + 81339951 81349952 chr10 135534747 + 81350000 81360000 2894
-6692	1	0
-3308
-
-chain 939763 chr10 135374737 + 81430217 81440202 chr10 135534747 + 81440000 81450000 3159
-163	3	0
-518	0	16
-972	42	43
-5149	0	1
-3138
-
-chain 928169 chr10 135374737 + 81379935 81389948 chr10 135534747 + 81390000 81400000 3587
-1970	7	8
-141	10	0
-413	39	39
-622	4	0
-574	42	42
-2153	0	2
-1520	5	3
-2513
-
-chain 922636 chr10 135374737 + 81300280 81309951 chr10 135534747 + 81310330 81320000 2721
-2989	1	0
-6681
-
-chain 885793 chr10 135374737 + 81369946 81379851 chr10 135534747 + 81380000 81389916 4570
-507	30	32
-880	91	91
-1155	82	82
-784	10	10
-907	16	28
-1265	50	50
-859	0	3
-1375	1	2
-165	27	27
-124	29	29
-275	8	8
-308	6	0
-79	1	0
-871
-
-chain 839370 chr10 135374737 + 81389948 81399836 chr10 135534747 + 81400000 81409799 4960
-446	1	0
-639	0	1
-112	140	59
-198	24	22
-98	162	137
-63	10	10
-97	180	192
-71	31	33
-322	38	38
-431	0	1
-741	45	46
-229	1	3
-186	1	4
-3019	14	14
-131	1	0
-722	16	16
-1530	92	92
-32	2	1
-63
-
-chain 788625 chr10 135374737 + 81241464 81249852 chr10 135534747 + 81251575 81259959 6147
-783	1	0
-883	23	33
-3247	1	0
-143	31	31
-957	15	3
-2304
-
-chain 781678 chr10 135374737 + 81280054 81289770 chr10 135534747 + 81290109 81299824 3334
-65	841	841
-84	228	228
-27	240	240
-1767	0	10
-186	66	54
-976	0	3
-1495	0	7
-899	0	1
-376	7	7
-2156	10	0
-196	50	50
-47
-
-chain 778944 chr10 135374737 + 81250813 81551219 chr10 135534747 - 53516479 54101824 544
-53	63	72
-96	209	213
-193	44	44
-202	331	335
-149	28	28
-100	125	123
-56	238	272
-60	91	93
-123	9	11
-66	147	144
-82	210	211
-77	17	17
-196	31	31
-379	27	27
-954	71	71
-69	4431	3721
-746	66	66
-502	12	12
-282	28	28
-224	59	59
-52	35	35
-448	12	0
-474	42	42
-260	11	11
-83	38	44
-160	152	149
-284	76	76
-110	73	73
-284	9	9
-478	110	110
-95	5	5
-583	122	122
-116	1	1
-67	1	1
-118	1	1
-38	1	1
-566	1	1
-35	1	1
-287	1	0
-481	1	1
-42	1	1
-198	1	1
-22	1	1
-54	1	1
-25	1	1
-50	1	1
-50	1	1
-294	4	0
-158	1	1
-31	1	1
-255	8	8
-291	12	12
-171	2	2
-21	1	1
-685	77	77
-817	20	20
-312	39	39
-181	1	0
-249	50	47
-75	7	7
-86	4	4
-54	8	8
-518	134	134
-376	24	26
-189	17	27
-143	13	13
-93	16	16
-192	24	24
-992	140	132
-828	1	1
-40	1	1
-410	1	1
-25	0	2
-13	1	1
-83	8	8
-143	1	1
-20	1	1
-421	1	1
-49	1	1
-107	1	1
-28	1	1
-77	1	1
-32	0	2
-44	2	2
-348	1	1
-53	0	4
-58	1	1
-97	1	1
-125	56	53
-526	1	1
-46	1	1
-209	9	9
-76	1	1
-37	1	1
-53	1	1
-24	1	1
-141	1	1
-26	1	1
-304	1	1
-60	1	1
-199	1	1
-47	1	1
-92	6	0
-138	64	64
-299	65	65
-186	24	24
-631	84	84
-100	20	20
-108	27	27
-240	8134	8243
-50	47	45
-107	11	11
-750	5	5
-230	25	25
-221	62	62
-106	32	32
-106	52	52
-270	56	56
-166	31	31
-89	77	77
-127	666	662
-56	22	22
-55	95	83
-51	30	30
-77	35	35
-189	16	16
-130	53	53
-131	5	5
-158	140	131
-170	21	21
-55	79	79
-207	200	199
-152	11	11
-105	50	50
-104	34	34
-56	402	402
-69	0	1
-61	150	150
-181	10	10
-130	22	22
-180	5	0
-73	161	161
-77	151	151
-68	128	128
-330	138	126
-116	1211	328
-252	4	4
-102	8	8
-72	23	23
-51	51	51
-608	31808	287592
-56	14	14
-161	9	9
-717	46	50
-77	38	30
-83	51	51
-54	984	987
-53	65700	95386
-47	559	556
-99	119	119
-193	38	38
-164	12	7
-59	38	38
-58	9	5
-57	34	34
-68	30	30
-59	28	28
-51	82	87
-142	7	7
-67	162	152
-248	1	2
-114	34	34
-140	22	22
-58	119	118
-143	50	50
-255	69	65
-53	18	18
-127	11	13
-446	39	39
-134	24	24
-143	42	42
-123	65	65
-57	0	3
-199	73	73
-271	17	17
-113	24	24
-203	40	40
-51	38	38
-119	50	50
-81	60	60
-239	85	70
-79	219	219
-64	149	150
-29	211	211
-91	319	310
-76	40	40
-59	596	591
-34	579	579
-51	90	90
-169	336	329
-146	226	226
-50	480	479
-23	66	66
-95	447	447
-49	298	298
-29	180	180
-45	1186	1169
-53	2222	2217
-11	116	116
-33	313	313
-63	75	75
-14	257	258
-31	122	122
-73	311	316
-238	46	46
-130	81	78
-103	262	266
-56	168	163
-29	861	857
-61	655	666
-18	40	40
-436	1	1
-8	4	0
-35	1	1
-417	21	18
-51	2	0
-54	1	1
-126	10	9
-72	5	5
-377	1	1
-18	2	0
-35	2	2
-78	1	2
-18	2	2
-82	1	0
-99	1	1
-82	0	4
-99	1	1
-50	0	4
-50	7	7
-225	11	11
-135	2	0
-326	26	989
-2646	0	1
-560	10	0
-347	114	114
-284	118541	118621
-43	120	120
-65	1	0
-1	677	677
-33	71	71
-46	404	404
-78	661	663
-137	489	492
-43	854	846
-116	119	119
-63	286	286
-72	73	73
-150	206	206
-17	1	1
-85	1	1
-110	157	157
-48	135	135
-36	0	4
-4	115	115
-73	2	0
-19	1	1
-14	185	185
-49	99	99
-22	1	1
-40	79	80
-177
-
-chain 662550 chr10 135374737 + 81399647 81430169 chr10 135534747 - 46431029 46458544 512
-92	103	101
-125	0	2222
-53	53	50
-58	48	48
-298	191	189
-69	6167	5
-118	101	101
-128	111	111
-207	48	43
-55	175	169
-212	93	89
-159	23	23
-109	34	34
-150	21	20
-258	30	30
-120	51	54
-90	171	171
-268	224	219
-202	62	62
-480	237	237
-394	49	49
-100	28	28
-93	25	25
-52	29	29
-180	45	45
-141	47	47
-56	49	49
-169	39	42
-60	102	113
-53	1	13
-151	105	105
-58	33	30
-88	246	246
-334	116	116
-63	83	84
-268	115	113
-70	43	43
-252	2	1
-62	97	97
-88	6	0
-61	23	23
-84	75	75
-75	2	3
-83	8	8
-53	160	162
-312	153	152
-192	96	98
-122	95	100
-94	793	791
-61	1	5
-154	140	135
-130	32	33
-121	21	21
-82	6	6
-171	34	34
-110	52	49
-129	193	194
-64	26	29
-72	18	18
-286	75	58
-114	6596	7638
-114	284	172
-558	8	9
-111	5	5
-55	2	2
-80	0	1
-27	1	1
-72	1	1
-45	1	1
-516	1	1
-66	1	1
-106	23	42
-64	4	0
-21	1	1
-312	2	2
-30	1	1
-151	20	20
-193	1	1
-38	1	1
-96	6	6
-171	0	3
-27	0	2
-34	2	2
-120	3	3
-39	1	1
-752
-
-chain 650336 chr10 135374737 + 81249915 81259740 chr10 135534747 + 81260018 81269841 3195
-898	53	53
-63	96	96
-209	193	193
-44	202	202
-331	149	149
-28	100	100
-125	56	56
-238	60	60
-91	198	198
-147	82	82
-210	290	290
-31	1360	1360
-71	69	69
-196	1	0
-454	16	15
-3764
-
-chain 462746 chr10 135374737 + 81440202 81450008 chr10 135534747 + 81450000 81459803 2861
-1116	4	4
-801	3	0
-2483	369	369
-41	238	238
-71	1291	1291
-42	2400	2400
-37	343	343
-253	278	278
-36
-
-chain 389885 chr10 135374737 + 81290873 81299672 chr10 135534747 + 81300927 81309722 2802
-25	221	221
-62	106	106
-32	106	106
-52	270	270
-56	166	166
-31	89	89
-77	127	127
-666	133	133
-95	51	51
-30	77	77
-35	335	335
-53	294	294
-103	4	0
-33	246	246
-79	207	207
-200	268	268
-50	104	104
-34	56	56
-402	130	130
-150	601	601
-161	77	77
-151	68	68
-128	330	330
-138	116	116
-1211	512	512
-51
-
-chain 178315 chr10 135374737 + 81400041 81409702 chr10 135534747 + 81410003 81419664 4252
-32	404	404
-191	168	168
-119	193	193
-38	235	235
-38	124	124
-34	68	68
-30	59	59
-28	51	51
-82	216	216
-162	363	363
-34	220	220
-21	9	9
-89	143	143
-50	255	255
-69	995	995
-42	123	123
-65	256	256
-73	628	628
-40	208	208
-50	94	94
-47	239	239
-85	79	79
-219	64	64
-31	147	147
-72	625	625
-40	271	271
-93	754	754
-30	700	700
-66
-
-chain 157388 chr10 135374737 + 81410627 81419292 chr10 135534747 + 81420589 81429247 5183
-66	95	95
-53	1136	1136
-46	81	81
-25	268	268
-38	269	263
-105	58	58
-6	0	1
-27	88	88
-34	53	53
-81	32	32
-46	334	334
-116	63	63
-83	268	266
-115	429	428
-97	262	262
-75	757	757
-75	230	232
-41	343	343
-69	47	47
-78	238	238
-46	130	131
-17	36	34
-28	319	319
-46	56	56
-38	707	707
-52	129	129
-132	125	125
-26	376	376
-75
-
-chain 142913 chr10 135374737 + 81466547 81535718 chr10 135534747 - 46275769 46344990 569
-44	2128	2133
-24	2535	2533
-31	2379	2381
-34	143	143
-43	270	270
-50	1045	1058
-51	494	498
-36	2085	2105
-60	1979	1981
-71	1197	1197
-41	1594	1601
-37	2856	2871
-66	205	205
-50	1339	1339
-33	656	663
-42	805	805
-79	280	275
-56	200	200
-22	18	18
-13	1443	1450
-44	2526	2526
-33	974	974
-75	1489	1489
-47	1658	1653
-53	1652	1653
-41	1071	1071
-59	10705	10669
-57	6434	6441
-25	586	586
-30	178	178
-44	310	310
-74	7	1
-9	1277	1277
-35	5735	5751
-32	2139	2139
-63	3162	3162
-40	346	345
-53	3391	3390
-41	92	92
-50
-
-chain 97392 chr10 135374737 + 81500632 81510012 chr10 135534747 + 81510451 81519840 3573
-60	191	191
-60	1232	1232
-76	51	51
-152	77	77
-38	536	540
-45	585	586
-39	340	340
-99	1376	1373
-58	517	517
-27	710	710
-58	235	235
-47	72	72
-26	157	157
-43	208	208
-31	630	637
-70	1415	1415
-119
-
-chain 87386 chr10 135374737 + 81512081 81517268 chr10 135534747 + 81521923 81527111 3288
-161	1034	1034
-35	104	104
-125	613	613
-186	102	102
-205	767	767
-27	231	232
-80	841	841
-68	564	564
-44
-
-chain 81916 chr10 135374737 + 81260486 81269831 chr10 135534747 + 81270587 81279924 3410
-66	796	796
-28	224	224
-59	52	52
-35	934	925
-42	354	354
-1	0	2
-37	160	160
-121	19	18
-12	284	284
-76	110	110
-73	771	771
-110	683	683
-8	36	35
-78	4099	4100
-77
-
-chain 75208 chr10 135374737 + 81450008 81464865 chr10 135534747 + 81597933 81612795 1746
-23	1356	1354
-29	166	166
-51	547	547
-30	274	278
-40	1364	1363
-57	169	169
-51	3032	3032
-27	1585	1586
-48	818	818
-32	667	667
-67	1160	1160
-68	752	752
-42	269	269
-51	810	813
-52	76	76
-91	661	661
-31	319	319
-42
-
-chain 71596 chr10 135374737 + 81480667 81490183 chr10 135534747 + 81490477 81500000 3725
-36	395	395
-36	536	535
-88	519	519
-43	139	139
-80	78	78
-33	117	134
-31	1468	1468
-55	268	268
-97	111	111
-30	6	0
-19	164	164
-38	292	292
-67	2459	2459
-34	2063	2060
-52	136	136
-26
-
-chain 65913 chr10 135374737 + 81470614 81479436 chr10 135534747 + 81480422 81489246 3085
-36	1955	1955
-26	1450	1450
-97	248	248
-44	223	223
-89	149	149
-32	72	72
-28	86	86
-68	993	993
-49	0	1
-52	319	320
-26	569	569
-33	216	216
-71	1842	1842
-49
-
-chain 63808 chr10 135374737 + 81521220 81529648 chr10 135534747 + 81531068 81539504 3362
-32	704	704
-56	367	367
-93	596	601
-64	1186	1189
-81	1371	1371
-48	1185	1185
-109	1575	1575
-48	608	608
-80	154	154
-71
-
-chain 58084 chr10 135374737 + 81490258 81499708 chr10 135534747 + 81500075 81509527 2957
-60	807	808
-44	174	174
-70	135	135
-48	924	924
-25	2943	2943
-43	263	263
-49	1566	1566
-77	243	243
-32	865	865
-87	732	733
-45	183	183
-35
-
-chain 41373 chr10 135374737 + 81540284 81544136 chr10 135534747 + 81550136 81553982 6087
-47	328	324
-52	832	831
-48	375	375
-79	0	1
-30	114	114
-38	1117	1115
-45	82	82
-58	368	368
-44	121	121
-74
-
-chain 34777 chr10 135374737 + 81464865 81470020 chr10 135534747 + 81474671 81479828 3724
-26	245	245
-34	44	44
-48	145	145
-12	0	2
-23	90	90
-57	378	378
-41	1468	1468
-56	2453	2453
-35
-
-chain 34249 chr10 135374737 + 81270980 81279755 chr10 135534747 + 81281073 81289810 4510
-39	431	431
-50	752	752
-134	2175	2167
-44	3025	2995
-35	14	9
-7	2005	2010
-64
-
-chain 29298 chr10 135374737 + 81537077 81539110 chr10 135534747 + 81546931 81548963 3702
-68	791	797
-50	617	605
-33	0	2
-73	308	311
-93
-
-chain 18939 chr10 135374737 + 81450538 81452241 chr10 135534747 + 81460333 81462036 3255
-39	70	70
-132	1431	1431
-31
-
-chain 6030 chr10 135374737 + 81422413 81430217 chr10 135534747 + 81432363 81440000 5582
-26	7730	7563
-48
-
-chain 5154 chr10 135374737 + 81371363 81371422 chr10 135534747 - 72572913 72572972 4033525
-2	1	1
-56
-
-chain 1569 chr10 135374737 + 81371422 81371454 chrX 155270560 + 63278348 63278380 8657459
-32
-
-chain 1063 chr10 135374737 + 81231366 81231464 chr10 135534747 - 54101945 54102043 901
-98
-
-chain 4275918 chr10_random 113275 + 18676 65432 chr5 180915260 + 138864813 138909803 707
-204	2	0
-4653	4	0
-2427	0	1
-5957	0	1
-1558	1	0
-780	1794	33
-29376
-
-chain 870863 chr10_random 113275 + 9144 18556 chr10 135534747 - 46779061 46789268 4835
-301	2	0
-564	3	0
-802	1	0
-2624	0	112
-142	0	2
-128	100	787
-4745
-
-chain 637317 chr10_random 113275 + 102183 113228 chr10 135534747 + 88758795 88768050 8258
-1205	22	22
-793	0	1
-914	1	1
-9	0	1
-45	0	1
-9	2477	1631
-132	1562	615
-2006	1	1
-36	1	1
-557	24	23
-885	0	2
-194	1	0
-171
-
-chain 383436 chr10_random 113275 + 97894 101991 chr10 135534747 + 88848068 88852165 132306
-2932	0	1
-697	4	3
-464
-
-chain 312568 chr10_random 113275 + 0 3305 chr10 135534747 + 88861095 88864401 225266
-2905	0	1
-400
-
-chain 263395 chr10_random 113275 + 91858 94672 chr10 135534747 + 88776474 88779288 339622
-1683	3	3
-130	11	11
-987
-
-chain 254817 chr10_random 113275 + 83066 85798 chr10 135534747 - 46749813 46752549 368581
-201	0	6
-798	0	1
-403	4	0
-841	14	15
-471
-
-chain 244215 chr10_random 113275 + 5995 97779 chr10 135534747 + 88818267 88897264 4711
-966	0	1
-2072	66256	15486
-2428	10567	42513
-197	0	1
-820	6	6
-18	1	0
-21	0	1
-20	2	1
-1685	0	2
-703	3020	9053
-1156	0	1
-1846
-
-chain 216530 chr10_random 113275 + 72868 75170 chr10 135534747 - 93082016 93084318 524441
-2302
-
-chain 211663 chr10_random 113275 + 85898 88144 chr10 135534747 + 88832831 88835078 546276
-536	0	1
-1710
-
-chain 171789 chr10_random 113275 + 70706 72761 chr10 135534747 - 93140436 93143121 737133
-50	1	1
-68	85	4
-15	15	34
-17	7	53
-13	1	647
-81	1	1
-50	21	21
-1630
-
-chain 129924 chr10_random 113275 + 67807 109229 chr10 135534747 - 46627912 46728083 8515
-467	0	1
-256	0	1
-42	1	1
-1352	0	2
-308	10219	43352
-227	1	1
-22	1	1
-2232	22395	48006
-1581	0	2
-518	1	1
-30	1	0
-197	132	132
-1439
-
-chain 125160 chr10_random 113275 + 4561 5895 chr10 135534747 - 46655374 46656707 1028939
-94	1	0
-1239
-
-chain 104003 chr10_random 113275 + 65554 66651 chr10 135534747 - 93176760 93177857 1232247
-1097
-
-chain 92361 chr10_random 113275 + 66732 67707 chr10 135534747 - 93158718 93159693 1382147
-975
-
-chain 89191 chr10_random 113275 + 3509 4486 chr10 135534747 - 129898314 129899289 1428933
-69	1	1
-35	1	0
-336	1	0
-401	1	1
-44	1	1
-87
-
-chain 29685 chr10_random 113275 + 34270 80352 chr10 135534747 - 46758431 46763489 186939
-210	0	6
-1251	4	4
-73	42015	985
-1249	1	1
-46	1	1
-1232
-
-chain 4572 chr10_random 113275 + 70436 70610 chr10 135534747 - 93144449 93144623 2904410
-51	50	50
-73
-
-chain 3114 chr10_random 113275 + 70610 70643 chr10 135534747 - 93147281 93147314 29780913
-33
-
-chain 12415599352 chr11 134452384 + 50000 134451920 chr11 135006516 + 60000 134946516 11
-1102759	16576	50000
-49571094	207000	307000
-503352	3000000	3100000
-14395596	2605	50000
-488471	34	102
-26	0	176
-30213	141	350
-27914	1	0
-20009	1	0
-19	1	0
-39	1	0
-17	3	1
-10	1	0
-1008	1	0
-95	1	0
-5127	15	0
-302	1	0
-975	0	4
-1548	0	1
-190	20	0
-41	1	0
-29	1	1
-44	0	1
-101	1	0
-25	0	1
-6178	0	1
-1875	21437	52561
-468	1	1
-81	1	1
-2620	1	0
-1640	4	0
-3305	0	1
-3342	1	0
-17899663	12000	50000
-8549206	15562	150000
-38507165	2	0
-1327	174	0
-392	18	0
-48
-
-chain 188276 chr11 134452384 + 69433462 69437111 chr11_gl000202_random 40103 + 7212 10860 1247
-1868	1	0
-1780
-
-chain 38178 chr11 134452384 + 134451288 134452384 chr5 180915260 - 180902450 180903869 1901368
-174	458	926
-1	8	0
-63	136	1
-64	2	0
-190
-
-chain 6040 chr11 134452384 + 134451996 134452128 chr1 249250621 - 249240179 249240388 3449013
-89	36	113
-7
-
-chain 2221 chr11 134452384 + 134452085 134452111 chrY 59373566 + 59362903 59362929 5436109
-26
-
-chain 4284950 chr11_random 215294 + 0 215294 chr11 135006516 - 65191297 65289033 706
-40524	167558	50000
-7212
-
-chain 3340892 chr11_random 215294 + 90524 125679 chr11 135006516 + 69689619 69724695 863
-1003	62	0
-3019	1	0
-695	1	1
-26	1	1
-1133	0	1
-1374	2	2
-20	1	1
-729	11	11
-269	0	1
-1091	14	14
-969	21	21
-532	5	5
-2677	18	0
-21481
-
-chain 3051979 chr11_random 215294 + 175679 208082 chr11_gl000202_random 40103 - 0 32891 790
-17546	11	51
-27	523	35
-32	6	6
-6712	100	1036
-7446
-
-chain 10612 chr11_random 215294 + 193466 193615 chr11_gl000202_random 40103 - 18116 18265 21504297
-59	27	27
-63
-
-chain 5102 chr11_random 215294 + 91527 91580 chr11 135006516 + 69690684 69690737 20979070
-53
-
-chain 12330181372 chr12 132349534 + 16000 132289534 chr12 133851895 + 145739 133779461 12
-7035083	0	4
-544	0	1
-3777	0	1
-3889	73000	52114
-6014	1	0
-6524	168	34
-20974	0	2
-3965	3	0
-444	0	11
-464	1	0
-27577110	1395000	3000000
-38631945	0	1
-14541	0	4
-1703	1	0
-789	250000	12128
-1783	1	0
-1075	0	2
-1042	1	0
-1526	1	1
-27	1	1
-2320	0	1
-166	1	0
-564	0	1
-2856	0	2
-900	0	1
-1387	1	1
-33	1	1
-2139	1	1
-48	1	1
-1305	0	2
-1533	1	2
-879	0	1
-744	26	26
-855	0	4
-1092	6	0
-1114	12	0
-817	1	1
-18	1	0
-217	1	1
-36	1	1
-2002	1	0
-1025	0	1
-450	1	1
-43	1	1
-919	1	0
-18	1	1
-3207	42	42
-1440	0	8
-148	4	0
-3655	2	0
-3403	1	1
-47	1	1
-1524	1	1
-28	1	1
-5561	0	2
-44	0	1
-676	8	8
-810	16	16
-536	2	0
-236	4	0
-167	0	4
-1419	49	53
-4688	1	1
-38	1	1
-18577	5	0
-5284	0	2
-1577	34	34
-4875	1	1
-25	1	1
-4340	0	14
-2663	5	0
-1170	1	0
-4268	0	4
-1036	0	1
-2117	0	8
-5917	1	0
-3239	0	4
-2619	1	1
-21	1	1
-937	1	1
-38	1	1
-2412	0	2
-38	17	0
-2732	0	2
-9314	2	0
-1986	2	2
-16	1	1
-229	1	1
-93	1	1
-895	12	0
-415	1	5
-27	1	1
-78	14	14
-185	8	9
-458	0	2
-89	1	1
-42	1	1
-2034	0	1
-1545	0	2
-280	0	4
-97	14	14
-231	0	2
-2816	5	0
-537	50	50
-1090	1	1
-27	1	1
-25758689	0	1
-6536665	0	1
-377270	57000	96749
-668	1	1
-20	1	0
-3348	1	1
-33	1	1
-648	1	1
-29	1	1
-3732	4	0
-977	46	46
-785	4	0
-34	1	0
-1688	0	10
-4248	1	0
-1167	1	0
-985	9	9
-2897	1	0
-1630	9	0
-1096	0	1
-1356	0	8
-13065723	150011	68363
-799	2	0
-343	0	1
-1771	0	1
-2702	7	6
-1900	1	0
-705	6	0
-303	1	0
-727	1	1
-43	1	0
-3	2	0
-490	1	1
-59	1	1
-226	1	1
-52	3	0
-465	0	8
-194	1	1
-25	1	0
-139	1	1
-15	1	1
-1833	1	0
-81	1	1
-39	1	1
-453	1	0
-719	1	1
-47	1	1
-558	1	0
-838	8	1
-288	10	9
-741	5	2
-465	1	1
-48	1	1
-268	1	1
-26	1	0
-1337	30	48
-84	2	85
-917	1	0
-110	31	31
-1580	1	1
-40	1	1
-683	1	1
-24	1	1
-247	1	1
-36	1	1
-1574	0	1
-10091386	0	3
-296	0	5
-220	45000	100872
-972469
-
-chain 2523 chr12 132349534 + 107924339 107924385 chr20 63025520 - 54448952 54448998 196257
-46
-
-chain 9007877316 chr13 114142980 + 17918000 114127980 chr13 115169878 + 19020000 115109878 14
-26987167	1	0
-40753157	50000	150000
-25443670	400000	150000
-1821999	384108	414007
-369878
-
-chain 17589560 chr13 114142980 + 113473994 113658050 chr13 115169878 - 529930 713796 162
-174857	2	0
-1328	144	0
-1156	1	1
-27	1	1
-2159	2	0
-49	1	1
-175	2	0
-20	4	0
-590	30	0
-163	8	4
-2905	2	0
-430
-
-chain 8677 chr13 114142980 + 113650223 113650314 chr13 115169878 - 706193 706284 25436870
-91
-
-chain 17750502 chr13_random 186858 + 0 186858 chrUn_gl000212 186858 + 0 186858 156
-186858
-
-chain 8359013040 chr14 106368585 + 18070000 106360585 chr14 107349540 + 19000000 107289540 15
-1081285	1	1
-43	1	1
-76	2	0
-437	1	1
-19	1	1
-440	12	13
-59	15	15
-63	12	12
-70	0	1
-734	1	1
-165	1	4
-96	1	1
-46	1	0
-83	1	1
-149	4	4
-164	1	1
-18	1	1
-63	15	16
-359	1	1
-39	1	1
-103	1	1
-76	1	1
-139	1	1
-38	1	1
-344	1	1
-65	0	1
-166	5	5
-88	1	1
-66	0	287
-50	1	1
-317	0	1
-52	1	1
-92	4	0
-651	4	4
-82	1	1
-93	1	1
-64	1	1
-24	1	1
-856	1	1
-35	1	1
-258	1	1
-17	1	1
-478	1	0
-1048	70	70
-1279	1	1
-37	1	1
-1115	3	4
-72	1	1
-126	1	1
-102	1	1
-413	10	10
-132	6	6
-89	0	2
-209	15	4
-77	5	5
-427	1	1
-41	1	1
-949	1	1
-16	1	1
-732	1	1
-44	2	0
-128	0	1
-91	1	1
-180	6	6
-388	6	6
-50	13	12
-275	1	1
-33	1	1
-142	1	1
-61	1	1
-560	1	1
-20	1	1
-1327	6	13
-729	37	37
-284	1	1
-44	1	1
-205	0	4
-40	1	1
-352	10	10
-261	1	1
-39	1	1
-940	12	0
-1677	36	0
-159	1	1
-32	8	1
-818	0	6
-580	1	0
-931	1	0
-276	2	0
-3298	45	45
-169	14	0
-46	1	1
-882	2	0
-94	1	1
-49	1	1
-859	4	0
-45	1	1
-807	16	15
-416	0	3
-3345	15	15
-92	30	29
-80	1	1
-48	1	1
-2459	0	1
-646	1	1
-31	1	1
-392	1	1
-29	54	0
-1875	3	0
-141696	1	1
-32	1	1
-8201115	1	0
-107	1	0
-2137	1	1
-39	1	1
-8848	0	1
-4806	1	0
-2075	1	0
-16619	41	40
-2338	3	0
-11507	8	0
-1352	0	1
-4596	0	1
-2073	2	1
-28	1	1
-2311	1	1
-44	1	1
-10440	0	4
-894	0	1
-1641	0	96
-38	9	0
-20	1	1
-2706	6	0
-351	1	1
-25	1	1
-742	0	1
-1048	2	18
-12085977	0	1
-14871228	3	0
-29067652	1	1
-47	1	1
-20174307	1292	0
-2548043
-
-chain 14855 chr14 106368585 + 19159713 19190443 chr14 107349540 - 87865807 87904514 64
-20	0	6
-50	9933	9915
-37	16916	24930
-30	3690	3692
-25	27	0
-2
-
-chain 6432 chr14 106368585 + 19179765 19190441 chr22 51304566 + 16377620 16388301 97
-45	10604	10609
-27
-
-chain 7700812247 chr15 100338915 + 18260008 100338915 chr15 102531392 + 20000000 102521392 16
-8448	6	2
-4086	1	0
-9569	1	1
-40	0	5
-56	7	1
-872419	40441	40448
-553	4	4
-876	0	1
-38	1	1
-139	1	1
-23	1	1
-1881	1	1
-17	1	0
-499	8	8
-310	2	2
-25	11	5
-46	1	1
-78	1	1
-22	0	3
-181	5	6
-569	11	11
-539	1	1
-23	0	4
-261	1	1
-19	0	2
-776	13	15
-62	13	13
-860	1	0
-719	26	0
-1346	1	1
-134	0	1
-30	1	1
-1070	1	1
-21	1	1
-398	0	1
-177	5	21
-534	4	0
-770	0	6
-17	1	1
-606	1	1
-31	1	1
-1861	1	1
-53	1	1
-2169	3	0
-558	1	0
-18	1	1
-227	2	0
-13	1	1
-329	5	5
-430	1	1
-17	2	0
-620	0	1
-1112	2	0
-641	0	4
-476	1	1
-45	1	1
-1285	0	1
-1139	1	1
-47	1	1
-183	4	0
-1435	20	0
-176	0	1
-219	0	1
-607	1	1
-42	1	1
-371	2	8
-507	2	0
-66	1	0
-41	1	1
-999	4	4
-318	15	15
-1092	1	1
-72	1	1
-808	5	5
-54	2	2
-52	1	1
-40	1	1
-109	3	3
-47	1	1
-1535	14	0
-14012	4	0
-7954	4	1
-1350	1	0
-318	1	1
-25	1	1
-600	0	4
-442	0	1
-1396	1	1
-36	1	1
-1107	0	3
-1441	0	5
-360	1	1
-47	1	1
-228	10	0
-37	1	1
-497	1	1
-37	1	1
-2129	4	0
-1242	2	0
-478	4	0
-708	1	1
-90	1	1
-154	10	10
-1583	1	1
-31	1	1
-1302	0	37
-101	14	14
-1138	1	1
-83	10	0
-11	7	0
-111	1	1
-29	1	1
-2917	1	1
-32	1	1
-1762	1	1
-46	1	1
-449	1	0
-2458	9	1
-869	1	0
-534	1	1
-47	1	1
-309	1	0
-6358	22	0
-564	0	1
-1845	1	0
-660	1	1
-25	1	1
-68	1	0
-182	0	9
-54	3	18
-1519	1	1
-32	1	1
-559	1	1
-30	1	1
-3851	1	0
-265	8	7
-240	4474	0
-428	1	0
-1651	11	10
-297	1	0
-665	21	0
-48	1	1
-1763	2	0
-245	1	1
-39	1	1
-519	1	1
-31	1	1
-2398	0	6
-749	49	1
-2074	4	0
-701	5	5
-337	1	0
-470	1	1
-43	1	1
-1163	3	0
-1342	1	1
-43	1	1
-140	0	1
-83	1	1
-24	1	2
-37	1	1
-723	1	1
-36	1	1
-99	3	0
-27	1	1
-92	1	0
-80	43	43
-1095	0	13
-384	0	2
-292	1	1
-39	1	1
-101	12	12
-576	0	2
-1907	1	1
-19	1	1
-318	1	0
-1973	1	1
-32	1	1
-689	1	1
-49	1	1
-357	8	8
-2081	13	13
-260	15	15
-2295	1	1
-24	1	1
-2558	1	1
-26	1	1
-571	16	23
-323	0	1
-36	0	1
-5353	111	0
-1711	38	70
-272	13	13
-1284	0	1
-1128	4	4
-2189	1	0
-474	2	0
-1284	61	67
-643	1	1
-37	1	1
-381	0	2
-56	1	0
-2591	1	1
-55	1	1
-160	4	4
-116	1	1
-89	2	0
-316	0	1
-785	20	0
-152	1	1
-21	1	1
-600	0	6
-568	1	0
-278	1	1
-29	1	1
-89	0	4
-1737	1	1
-58	1	1
-368	24	24
-2113	20	24
-218	0	2
-18	1	1
-684	4	4
-3200	1	1
-31	1	1
-58	18	18
-164	1	1
-37	1	1
-296	6	6
-431	1	1
-35	1	1
-431	1	1
-45	1	1
-93	1	1
-24	1	1
-216	1	1
-46	1	1
-2773	0	17
-751	2	1
-104	1	1
-59	1	1
-445	1	1
-26	1	1
-356	1	0
-1484	1	2
-436	25	25
-306	1	1
-55	1	1
-230	4	4
-892	1	0
-364	7	7
-796	1	1
-26	1	1
-663	0	2
-80	0	15
-4391	1	0
-133	1	1
-25	0	4
-41	0	2
-164	1	1
-61	4	4
-925	3	0
-1882	13	13
-4513	1	0
-111	1	1
-76	1	1
-202	6	0
-680	0	1
-200	3	0
-429	0	2
-736	1	1
-18	1	1
-1573	0	1
-119	1	1
-245	0	9
-11	1	1
-1656	54	22
-616	2	1
-158	0	1
-587	1	1
-39	4	1
-1053	6	6
-1116	1	1
-34	1	1
-152	10	7
-448	0	1
-269024	100000	863295
-334079	100000	50000
-180553	0	74
-66	73	3
-40	1	0
-28	156	73
-202	1	1
-17	0	1
-156	1	1
-55	1	1
-111	0	1
-144	1	1
-57	0	1
-687074	50000	50000
-120647	0	348
-45586	0	1
-6994	1	0
-3398063	44008	12354
-7672	0	2
-1809	1	0
-428524	101014	10165
-43170	4	4
-1064959	128966	5086
-1021	0	1
-1710	1	0
-931	0	2
-4505	0	1
-686	525	2
-432	33	0
-58	20	20
-12369	1014	0
-6233	0	1
-359485	100000	111749
-33855821	0	239
-2852113	1	0
-7040367	0	1
-2815738	3	1
-7055922	60000	50000
-363827	32	32
-104991	0	1
-203136	0	6050
-2271	47	47
-1424473	60000	50000
-13510190	22012	5553
-9194	0	3
-109	0	4
-40	0	1
-43	0	7
-2352	0	13
-5027	0	2
-534	1	0
-794	0	2
-4233	0	2
-5769	1	0
-381	1	0
-2524	0	2
-547	0	5
-1967	0	1
-1207	105	0
-1027	0	6
-3935380
-
-chain 4143271 chr15 100338915 + 19154641 19368514 chr15 102531392 + 21901264 22115049 110
-40441	8593	8593
-26	89965	89965
-4257	1	1
-30	1	1
-185	16464	16391
-43	29947	29883
-25	1	1
-34	23835	23884
-25
-
-chain 390135 chr15 100338915 + 26478746 26483022 chr15 102531392 + 28681030 28685306 6048
-1039	22	22
-3215
-
-chain 187810 chr15 100338915 + 26483022 26517556 chr15 102531392 - 73809068 73843318 79
-41	12	0
-36	1	1
-490	5	5
-285	1	1
-71	1	1
-215	1	1
-53	0	12
-8114	1	0
-10796	15	15
-2483	0	1
-20	1	1
-2048	8856	8847
-163	792	517
-33
-
-chain 51529 chr15 100338915 + 26530390 26530949 chr15 102531392 + 28731348 28731907 2473877
-450	8	8
-101
-
-chain 17522 chr15 100338915 + 26516748 26516957 chr15 102531392 + 22658399 22658608 1968
-209
-
-chain 14035 chr15 100338915 + 20378176 20378474 chr15 102531392 + 22829101 22829399 772378
-73	69	69
-156
-
-chain 12347 chr15 100338915 + 26530060 26530390 chr15 102531392 + 22671289 22671619 3189077
-244	4	4
-82
-
-chain 5537 chr15 100338915 + 96402403 96402461 chr15 102531392 + 98585049 98585107 22350382
-58
-
-chain 4486 chr15 100338915 + 96402461 96402508 chr15 102531392 + 98585002 98585049 16761199
-47
-
-chain 2874 chr15 100338915 + 26517060 26517091 chr15 102531392 + 28719096 28719127 6634083
-31
-
-chain 2874 chr15 100338915 + 26517029 26517060 chr15 102531392 + 28719096 28719127 6634084
-31
-
-chain 2874 chr15 100338915 + 26516998 26517029 chr15 102531392 + 28719096 28719127 6634085
-31
-
-chain 2874 chr15 100338915 + 26516967 26516998 chr15 102531392 + 28719096 28719127 6634086
-31
-
-chain 2314 chr15 100338915 + 26530003 26530033 chr15 102531392 + 22671232 22671262 5236
-30
-
-chain 12940492 chr15_random 784346 + 189260 358080 chr15 102531392 + 28561246 28726591 233
-2522	0	1
-3762	1	1
-40	1	1
-2427	6472	2
-1744	0	1
-263	0	7
-2963	4	4
-1889	1	0
-2501	0	1
-3377	6	6
-5238	0	1
-1277	5	5
-38	1	1
-8232	12	8
-5507	0	18
-155	1	0
-379	14	14
-363	7	13
-336	1	1
-46	1	1
-218	8	8
-1074	0	4
-101	12	13
-178	1	1
-93	1	1
-156	10	11
-398	0	20
-45	1	1
-255	9	10
-2661	0	1
-17	1	1
-82	1	1
-14	1	1
-227	64	64
-1154	1	0
-493	1	1
-39	1	1
-369	1	0
-21	1	1
-322	2	7
-222	0	2
-171	15	0
-81	1	1
-47	1	1
-159	9	9
-154	1	0
-272	4	4
-26	1	1
-121	8	7
-659	1	0
-440	1	1
-35	1	0
-1419	15	0
-181	0	2
-292	0	15
-1767	1	1
-44	1	1
-59	0	1
-910	0	1
-290	1	0
-288	1	0
-567	2	0
-1088	0	1
-1758	1	0
-72	1	1
-21	1	1
-5748	17	17
-800	0	1
-2037	13	13
-113	5	5
-2832	1	1
-44	1	1
-3581	2	0
-33	1	1
-812	5	5
-33	0	1
-257	17	17
-1932	0	14
-168	0	1
-424	5	0
-24	1	1
-67	14	14
-90	1	5
-124	1	1
-34	1	1
-48	0	9
-460	0	8
-294	7	0
-813	1	3
-240	1	0
-511	0	9
-190	1	0
-267	1	1
-38	1	1
-1082	7	57
-21	15	0
-28	0	1
-5	1	1
-123	0	5
-781	1	1
-21	1	1
-390	1	1
-36	1	1
-287	1	1
-90	0	3
-6	2	2
-189	9	9
-263	2	1
-724	13	14
-308	2	0
-1752	1	1
-114	1	1
-236	4	0
-46	1	1
-72	5	0
-1039	1	1
-25	1	1
-403	1	1
-22	1	1
-231	6	6
-834	15	15
-617	1	1
-53	1	1
-243	1	1
-154	3	5
-571	11	16
-231	1	1
-47	1	1
-910	1	1
-45	1	1
-1510	1	1
-79	1	1
-2053	1	1
-48	1	1
-768	8	8
-546	1	1
-19	1	5702
-784	6	0
-275	20	13
-131	114	114
-363	1	1
-46	1	1
-396	1	1
-39	1	1
-75	15	15
-1875	1	0
-332	1	1
-49	1	1
-265	3	2
-55	1	1
-96	1	1
-136	1	0
-305	8	8
-297	0	2
-255	2	2
-23	1	1
-181	19	6
-151	0	1
-707	667	9324
-284	5	3
-73	1	1
-208	26	25
-34	0	773
-80	20	0
-2003	400	125
-163	2	0
-2630	9	1
-19	1	1
-100	12	0
-2421	0	2
-47	21227	0
-853	1	0
-1238	0	12
-3571	1	1
-20	0	1
-2483	15	15
-8803	287	9594
-5992
-
-chain 8627768 chr15_random 784346 + 422939 629603 chr15 102531392 - 19338638 19927596 385
-168	56	59
-73	4	4
-378	23	23
-868	29	29
-85	1	0
-528	119	5106
-152	31	31
-184	8	7
-322	0	1
-62	46	45
-77	37	46
-80	22	22
-201	45	47
-175	31	33
-1923	82	77
-546	7051	32690
-7810	209	153340
-1308	1	0
-9826	1	0
-1486	1	1
-148	1	0
-76	6	6
-53	36	34
-178	5447	565
-14	14505	121
-72	13	16
-57	1	1
-157	0	2
-11	1	1
-74	1	1
-24	3	3
-220	1	1
-54	1	1
-142	1	1
-82	2	0
-60	4	0
-99	1	1
-106	1	1
-98	1	1
-402	1	1
-79	4	7
-78	1	9
-5	0	1
-31	7	7
-65	1	1
-105	0	1
-22	6	8
-76	10	8
-47	0	1
-39	3	0
-5	1	3
-108	2	2
-61	16307	40121
-676	26	26
-7087	25	25
-20818	7	7
-2750	60358	90388
-69	54	53
-165	166	516
-42	0	42
-81	4	151
-18	0	42
-148	111	112
-73	4	4
-378	23	23
-868	29	29
-85	1	0
-528	8	8
-280	32	34
-426	78	79
-81	648	334
-181	8	7
-485	0	2
-1404	24	24
-101	36	38
-240	8	8
-77	53	54
-347	18	18
-72	9	9
-94	82	82
-384	8	8
-250	108	151474
-1152	0	1
-633	226	12498
-3255	4	0
-58	32	32
-6209	1	1
-30	1	0
-1060	2	0
-3747	4	4
-173	5	5
-2548	0	22
-2275	0	20
-606	41	41
-4653	12	12
-6138	0	1
-148	5	0
-244
-
-chain 3986761 chr15_random 784346 + 0 334816 chr15 102531392 - 78891064 79878228 248
-30328	8040	15984
-3015	1	0
-70	44499	160931
-52	0	5
-1038	1	1
-29	1	1
-1001	0	18
-680	0	329
-181	1	1
-32	1	1
-839	2	0
-440	0	3
-547	1	0
-278	1	0
-410	1	1
-26	3	0
-101	1	1
-24	1	1
-149	0	9
-179	2	1
-29	1	1
-226	3	0
-21	1	1
-473	10	0
-717	2	0
-1044	1	1
-23	1	1
-625	1	1
-41	1	0
-150	1	1
-62	1	1
-145	59	59
-242	12	12
-179	1	1
-64	1	1
-1405	1	1
-35	0	2
-469	5	0
-401	0	1
-25	0	10
-17	1	1
-55	1	1
-165	1	1
-1966	15	23
-839	0	18
-969	1	1
-44	1	1
-1905	1	1
-47	1	1
-1037	128	128
-486	5	0
-1086	2	1
-199	4	4
-59	2	0
-243	84	0
-410	1	1
-39	1	1
-70	0	324
-77	1	187
-42	4	151
-897	135051	676116
-64	54092	52483
-25	1	1
-88	9286	18277
-201	26614	5202
-33	1	0
-1
-
-chain 2185345 chr15_random 784346 + 423107 689458 chr15 102531392 + 82637661 83186296 482
-30	0	5
-26	1346	1346
-29	885	5865
-31	576	577
-46	77	77
-5	0	1
-32	303	304
-45	175	176
-31	1923	1923
-66	1943	144683
-715	0	1
-548	13	13
-1907	1	1
-16	1	1
-66	3	0
-1219	5	1
-1066	34012	198199
-7204	2446	2446
-2762	100	7680
-5162	1	0
-2782	1	1
-26	7	4
-49	1	1
-3627	3	0
-1686	133598	65296
-3109	1	1
-21	1	1
-1430	63	63
-335	3	3
-14	4	0
-203	1	1
-23	5	5
-1262	4	4
-323	1	1
-47	1	1
-417	0	1
-537	19	1
-1913	2	0
-1685	6	0
-1740	1	1
-49	1	1
-120	1	1
-30	0	3
-920	4	0
-479	30	30
-1207	1	1
-182	4	0
-72	3	1
-78	1	1
-150	1	1
-46	1	1
-222	1	1
-24	1	1
-74	1	1
-44	1	1
-391	1	1
-33	1	1
-149	9	8
-56	1	1
-30	1	0
-52	1	1
-298	6	0
-22	1	0
-29	1	1
-393	35	0
-145	36	36
-226	15	15
-185	7	7
-692	1	1
-34	1	1
-1291	0	2
-1824	5	5
-1119	1	1
-49	1	2
-1025	25013	44930
-835	88	11347
-692	0	2
-2551	3	0
-1144	82	77
-1939	26	28
-164	1	1
-44	0	2
-201	1	1
-133	5	14
-77	1	1
-44	1	0
-92	1	0
-293	8	7
-184	31	31
-381	8	8
-384	1	1
-80	1	1
-94	9	9
-57
-
-chain 1845967 chr15_random 784346 + 61569 84889 chr15 102531392 - 73695594 73766494 782
-153	33	33
-49	1	0
-197	15	15
-67	62	62
-241	12	9
-185	41	44
-64	23	23
-559	50	50
-333	46	46
-397	6	6
-141	4	0
-660	50	50
-315	38	38
-282	309	47864
-57	7	7
-85	39	39
-340	62	62
-43	0	1
-77	0	1
-768	0	12
-71	70	69
-102	17	17
-58	45	50
-676	2	0
-430	21	22
-112	0	1
-401	4	0
-617	95	95
-168	50	50
-442	4	0
-91	114	114
-463	0	1
-94	28	28
-1577	16	16
-572	0	1
-1451	55	55
-2327	51	51
-394	1	0
-109	21	24
-660	50	54
-703	1	0
-93	22	22
-94	48	48
-219	46	46
-352	22	22
-150	155	161
-173	19	19
-162	6	12
-1201	48	49
-119	17	17
-435	4	4
-146	38	38
-946	10	10
-98	37	37
-60	47	47
-579
-
-chain 1297748 chr15_random 784346 + 203918 328028 chr15 102531392 - 73698913 73856126 264
-567	109104	118059
-369	106	23997
-700	2	0
-40	0	248
-320	0	33
-130	1	1
-18	1	1
-138	20	20
-1341	8	0
-863	1	1
-48	1	1
-240	1	1
-34	20	0
-3218	1	1
-20	1	1
-2062	46	46
-285	14	14
-937	1	1
-25	3	3
-305	1	1
-42	1	1
-706	2	0
-232	1	1
-67	1	1
-88	4	5
-844	1	1
-82	1	1
-430	0	7
-78	1	1
-458	27	27
-52
-
-chain 898399 chr15_random 784346 + 457589 504019 chr15 102531392 - 19636589 19905366 626
-5344	14	14
-7167	26767	249114
-26	7087	7087
-25
-
-chain 844102 chr15_random 784346 + 95554 784338 chr15 102531392 + 22730405 27183335 411
-59	9906	9932
-128	2128	2090
-42	1792	637909
-89	10	10
-71	198	198
-122	137	141
-341	29	29
-104	103	103
-395	11	14
-667	6	7
-74	7	0
-178	1	5
-203	9	4
-172	55	55
-791	25	25
-714	19	22
-597	133	133
-142	2	0
-252	0	4
-260	67	67
-41	6	0
-860	29	30
-258	93	95
-1793	11	11
-358	71	70
-242	1	1
-20	1	1
-1308	0	3
-468	0	2
-755	1	1
-81	2	2
-72	3	0
-597	4	4
-492	25	7
-1459	10	9
-674	16	16
-711	1	1
-49	1	1
-1525	1	1
-45	1	1
-2919	1	1
-36	1	1
-493	1	1
-21	1	1
-830	16	0
-3	7	0
-644	17	17
-479	0	1
-2343	0	315
-307	8	311
-87	0	3
-330	42	0
-520	7	6
-72	2	1
-745	6	6
-324	6	0
-398	22	22
-118	27	27
-68	600887	3728395
-44872
-
-chain 555121 chr15_random 784346 + 634265 679702 chr15 102531392 + 82723475 82991213 602
-20	1	1
-41	24204	246463
-2085	6	6
-667	14	14
-596	0	24
-1743	415	422
-870	1	0
-3572	1	1
-1152	8	0
-498	0	1
-3239	1	1
-34	1	1
-1283	1	1
-41	1	0
-676	0	2
-2078	0	1
-1283	0	18
-681	1	0
-223
-
-chain 530253 chr15_random 784346 + 409131 430676 chr15 102531392 - 19567939 19581201 1716
-786	8	0
-171	8918	159
-2113	8268	8752
-1281
-
-chain 417534 chr15_random 784346 + 35735 80744 chr15 102531392 + 23413134 23608954 1095
-840	0	54
-916	0	2
-777	3337	13583
-637	50	57
-858	0	4
-779	0	14
-171	1	2
-927	4	0
-1753	2	0
-814	35	35
-1073	14	14
-81	99	101
-66	42	42
-1291	66	66
-240	45	48
-68	36	36
-98	38	38
-1141	5	5
-70	14	15
-150	46	46
-650	13461	153954
-62	1206	1201
-45	3148	3138
-46	6617	6616
-50	2415	2415
-46	615	621
-64
-
-chain 169648 chr15_random 784346 + 417136 418914 chr5 180915260 + 131590649 131592427 748288
-1778
-
-chain 152639 chr15_random 784346 + 200201 201828 chr15 102531392 + 28662778 28664407 841936
-970	0	1
-468	5	6
-184
-
-chain 151945 chr15_random 784346 + 110737 203590 chr15 102531392 - 73700255 73867708 1083
-74	87238	121334
-88	426	14673
-942	2	0
-567	1880	28137
-86	1	1
-62	1	1
-716	14	14
-212	0	1
-468	0	1
-76
-
-chain 142059 chr15_random 784346 + 583198 664057 chr15 102531392 - 16763491 17663089 651
-176	7	7
-242	7	7
-1002	1	1
-61	1	1
-286	10	10
-1697	57790	716388
-17	1	1
-12	3589	70884
-35	145	145
-36	6576	99374
-431	11	1
-19	0	4
-96	2	0
-98	1	1
-62	1	1
-1047	10	15
-223	1	0
-575	2	0
-465	1	0
-8	1	1
-140	1	4
-65	1	1
-381	5111	5164
-145	1	1
-29	1	6
-32	8	2
-199
-
-chain 140486 chr15_random 784346 + 414032 415531 chr5 180915260 + 131627050 131628561 916856
-486	0	13
-290	2	1
-721
-
-chain 136843 chr15_random 784346 + 411466 412886 chr5 180915260 - 49283520 49284940 941594
-1420
-
-chain 113176 chr15_random 784346 + 577887 601700 chr15 102531392 + 85729223 85793813 754
-51	12	12
-630	1	1
-27	5	5
-51	41	41
-249	505	29710
-148	24	24
-110	0	2
-145	12	11
-646	54	53
-291	404	700
-590	7	0
-154	1	1
-36	5	3
-106	1	1
-42	1	1
-517	181	27
-164	18572	30011
-30
-
-chain 110898 chr15_random 784346 + 410214 411366 chr5 180915260 - 49350156 49351308 1158024
-1152
-
-chain 90718 chr15_random 784346 + 415631 422839 chr5 180915260 - 49281425 49321173 523505
-1405	4191	36723
-57	0	4
-785	0	4
-770
-
-chain 87628 chr15_random 784346 + 412986 413908 chr15 102531392 + 82958289 82959211 1453275
-922
-
-chain 78489 chr15_random 784346 + 408080 408895 chr5 180915260 + 131628738 131629553 1616335
-815
-
-chain 75848 chr15_random 784346 + 328894 334289 chr15 102531392 + 28663807 28669202 22165
-415	0	1
-219	14	14
-716	1	1
-62	1	1
-1820	1	0
-432	1	1
-21	1	1
-549	1	1
-42	1	1
-1098
-
-chain 55946 chr15_random 784346 + 579203 582900 chr15 102531392 - 19568187 19572180 874
-256	1085	1091
-54	291	291
-49	100	396
-255	1464	1453
-62	1	6
-80
-
-chain 50039 chr15_random 784346 + 328288 328894 chr15 102531392 - 73792653 73793260 1678654
-449	99	100
-58
-
-chain 41737 chr15_random 784346 + 53223 55079 chr15 102531392 - 79138743 79140590 1899
-987	5	0
-378	4	0
-30	1	1
-324	1	1
-36	1	1
-89
-
-chain 40184 chr15_random 784346 + 35650 52319 chr15 102531392 + 23578289 23604839 1865
-85	6507	16388
-50	5309	5309
-35	1168	1168
-99	66	66
-42	1291	1291
-66	240	240
-45	68	68
-36	98	98
-38	1380	1380
-46
-
-chain 36402 chr15_random 784346 + 63654 139260 chr15 102531392 + 20712328 20743651 996
-46	46877	2371
-29	5894	5886
-28	261	261
-55	0	3
-35	2163	2163
-70	17110	17298
-32	0	42
-10	2220	2218
-27	68	68
-335	31	31
-315
-
-chain 33407 chr15_random 784346 + 63271 84310 chr15 102531392 + 28567817 28636450 784
-50	2730	50298
-39	1361	1355
-70	2485	2497
-95	168	168
-50	618	618
-33	8782	8789
-48	4472	4485
-38
-
-chain 26884 chr15_random 784346 + 71527 84203 chr15 102531392 + 23434933 23447596 1313
-28	3628	3632
-43	3563	3545
-38	1762	1762
-91	1625	1625
-17	1	1
-30	721	722
-38	1054	1054
-37
-
-chain 17994 chr15_random 784346 + 577754 595591 chr15 102531392 + 82746005 82941680 2345
-133	777	777
-41	8083	152910
-1120	114	33023
-47	1	1
-5	265	681
-66	293	293
-111	2277	2277
-32	585	587
-5	0	1
-25	0	1
-6	1	0
-11	3164	2847
-53	540	540
-82
-
-chain 17584 chr15_random 784346 + 334305 334490 chr15 102531392 - 73868107 73868292 12488910
-185
-
-chain 16638 chr15_random 784346 + 334590 334767 chr15 102531392 + 28693782 28693959 13398527
-177
-
-chain 15574 chr15_random 784346 + 203754 203918 chr15 102531392 + 20713399 20713563 2884965
-164
-
-chain 11941 chr15_random 784346 + 112567 138945 chr15 102531392 + 28572611 28599524 1070
-24	791	791
-25	2119	2124
-57	23331	23861
-31
-
-chain 10106 chr15_random 784346 + 307857 307966 chr15 102531392 - 73812018 73812127 6634519
-109
-
-chain 9879 chr15_random 784346 + 198177 198415 chr15 102531392 + 28709863 28710101 596395
-238
-
-chain 5493 chr15_random 784346 + 34234 34291 chrY 59373566 + 27644447 27644504 32044688
-57
-
-chain 4133 chr15_random 784346 + 323293 323339 chr15 102531392 + 22666870 22666916 2166
-46
-
-chain 4016 chr15_random 784346 + 328237 328288 chr15 102531392 + 28668851 28668902 1790991
-51
-
-chain 3958 chr15_random 784346 + 107733 107775 chr15 102531392 - 78958306 78958348 1193
-42
-
-chain 3427 chr15_random 784346 + 198013 198049 chr15 102531392 + 20714128 20714164 4212128
-36
-
-chain 3014 chr15_random 784346 + 591545 685196 chr15 102531392 - 19431434 19585695 819
-47	89045	149655
-87	4422	4422
-50
-
-chain 2874 chr15_random 784346 + 307826 307857 chr15 102531392 - 73812018 73812049 6634520
-31
-
-chain 2855 chr15_random 784346 + 198147 198177 chr15 102531392 + 28831982 28832012 6776371
-30
-
-chain 2097 chr15_random 784346 + 200178 200201 chr15 102531392 - 79852957 79852980 911500
-23
-
-chain 1855 chr15_random 784346 + 307785 307816 chr15 102531392 + 28688468 28688499 5960032
-31
-
-chain 1291 chr15_random 784346 + 110710 110736 chr15 102531392 - 73822377 73822403 1552683
-26
-
-chain 1093 chr15_random 784346 + 687136 688443 chr15 102531392 - 19508634 19509938 742
-25	1251	1248
-31
-
-chain 7474990131 chr16 88827254 + 0 88822254 chr16 90354753 + 60000 90294753 17
-172342	0	1
-112	1	0
-5627	2	1
-8398838	17500	50000
-25336229	100000	150000
-1112651	9800000	11100000
-42003582	20000	50000
-1855370
-
-chain 9963354 chr16_random 105485 + 0 105485 chr16 90354753 + 29712462 29819360 326
-5589	7	8
-6783	0	218
-41	1	3
-38	1	1
-234	9	9
-219	46	0
-15	0	50
-3818	0	1
-1090	1	1
-45	1	1
-308	1	0
-524	0	4
-984	1	1
-24	1	0
-970	0	2
-106	1	1
-25	2	1
-436	0	5
-296	1	1
-23	2	0
-813	0	1
-1173	1	0
-5500	1	0
-1193	16	16
-1329	0	1
-2727	0	1
-3622	0	13
-3844	3	0
-5076	0	1
-4157	2	0
-178	0	2
-126	1	1
-344	5	6
-497	1	0
-620	7	7
-378	0	1
-669	24	25
-211	1	5
-453	0	11
-176	0	1
-486	0	8
-326	1	0
-2143	40	9
-2337	0	1
-866	1	0
-10	2	2
-1366	1	1
-44	1	1
-831	1	1
-45	1	1
-1612	6	5
-3801	0	1
-910	0	2
-486	0	1
-2775	1	0
-1083	1	0
-1793	1	1
-50	0	1
-1339	0	2
-145	17	17
-651	10	10
-1140	0	1
-724	1	1
-39	1	1
-3261	1	0
-1513	0	9
-606	22	0
-2027	27	19
-3470	11	0
-4100	3	0
-2045	0	4
-1047	0	1
-6647	78	1279
-748
-
-chain 7369813928 chr17 78774742 + 0 78653129 chr17 81195210 + 0 81060000 18
-252627	1	1
-24	1	1
-33	0	29
-566	87	0
-116	58	0
-92	29	0
-79	8	37
-485	1	59
-28	1	1
-76	233	1
-27	29	0
-2764	17	20
-2220	18	18
-837	1	1
-39	1	1
-564	1	1
-14	1	1
-2523	39	9
-1824	0	56
-76	29	0
-1681	0	1
-414	0	3
-256	0	68
-119	10	10
-290	0	4
-3193	1	0
-2562	0	4
-1809	3	0
-84	1	1
-62	1	1
-3703	0	27
-2041	16	0
-911	0	2
-696	4	4
-1428	15	15
-290	1	0
-1779	0	1
-60	1	1
-216	0	1
-375	1	1
-41	0	1
-9221	46522	100000
-3080543	0	1
-1208216	0	2
-1370	2	0
-1279	0	4
-322	0	5
-5661	210	0
-307	21	22
-973	8	0
-2901	1	0
-8479	0	1
-4122	7	0
-3187	4	0
-571	0	1
-167	0	1
-10174	7	7
-856	2	1
-1630	1	0
-4258	3	1
-1688	1	0
-264	0	304
-796	1	0
-8494	0	10
-2273	1	0
-8297	1	0
-1500	1	4
-733	2	2
-40	1	0
-4	0	1
-15	19	1
-64	1	253
-22	0	34
-18	1	205
-2070	2	0
-2981	14	13
-1309	0	1
-3991	3	0
-1939	0	3
-887	0	2
-463	18	0
-64	0	3
-2104	0	20
-556	0	4
-121	0	1
-3670	2	0
-4345	0	5394
-5334	0	1
-2505	4	10
-6776	14	11
-9573	0	1
-1136	0	2
-3754	1	0
-4588	1	0
-637	17	17
-1285	8	0
-369	0	1
-2084	1	0
-492	2	0
-517	0	4
-954	0	2
-1517	1	0
-958	9	0
-807	14	14
-357	0	10
-3611	0	2
-3191	0	39
-742	1	0
-646	2	0
-2211	1	0
-14829	1	0
-3465	11	0
-31	0	33
-833	16	16
-1345	0	1
-6443	5	4
-2627353	1	0
-11581979	0	43
-25	0	89
-238783	0	1
-1830653	1	0
-419873	100008	116477
-5587	6	0
-11056	0	2
-3240	1	0
-1237	0	2
-373	1	1
-43	1	1
-558379	100000	3000000
-1823446	0	1
-2728383	0	1
-29	0	1
-138	1	0
-144	6	8
-38	0	2
-7	0	1
-18	1	1
-70935	10	13
-52	28	31
-189	0	1
-41	2	2
-750363	44	44
-4038953	100000	50000
-1524006	1	1
-47	1	1
-231	2	0
-1175	1	0
-555	1	1
-49	1	1
-568	7	0
-605	2	0
-4954	1	1
-18	6	7
-567	0	1
-421	2	0
-943	75	67
-777	0	3
-925	3	0
-5	4	0
-318	1	0
-230	20	13
-244	1	1
-13	0	1
-42	1	1
-220	1	1
-56	1	1
-101	225	0
-1113	1	0
-17	1	1
-2614	4	0
-3186	50	50
-3872	0	2
-617	14	0
-5674	0	2
-1852	1	1
-63	1	1
-56	1	1
-25	1	1
-332	0	6
-423	5	5
-61	4	0
-108	1	1
-46	1	1
-160	2	2
-72	1	1
-162	1	1
-20	1	1
-53	1	1
-63	1	1
-112	1	1
-59	1	1
-5885	2	0
-255	36	36
-6246	1	1
-114	1	1
-255	1	1
-49	1	1
-210	1	1
-138	157793	28603
-927	5	0
-212	7	7
-641	17	17
-1296	46	46
-2513	71	69
-76	1	2
-61	50226	0
-1959	18	18
-2727	22	22
-6616	1	0
-5109	68	86
-2450	7	7
-50	10	0
-3439	0	4
-4179	0	4
-2749	0	1
-1124	8	0
-56	1	1
-1840	14	14
-624	8	0
-1743	4	0
-3689	0	4
-2051	0	1
-751	0	1
-2111	10	11
-3110	1	0
-682	1	0
-2795	5	2
-241	0	1
-165	1	3
-1258	0	1
-1602	5	0
-3715	0	1
-1308	0	1
-2058	1	0
-1624	0	1
-478	4	0
-9	6	0
-35	3	1
-47	0	1
-2425	1	0
-1178	0	4
-33	1	1
-415	5	5
-887	1	3
-946	29	29
-630	15	0
-259	2	0
-78	0	1
-4570	0	1
-322	1	0
-1801	2	0
-836	3	0
-1509	0	1
-1732	0	1
-935	0	6
-1372	1	0
-625	2	12
-5009	1	1
-75	0	1
-20	1	0
-153	20	21
-489	4	326
-1375	1	0
-774	1	1
-16	1	1
-3642	5	0
-497	4	0
-174	9	0
-1317	0	3
-508	0	1
-1126	1	0
-1952	0	2
-565	2	0
-871	0	1
-1460	6	0
-55	0	1
-420	6	0
-57	1	1
-119	1	1
-427	1	0
-459	14	11
-448	0	1
-1275	7	7
-360	1	0
-73	1	1
-48	1	1
-4920	3	0
-713	41	34
-691	1	1
-44	1	1
-1642	9	10
-566	0	1
-173	0	4
-798	0	10
-810	1	0
-78	18	17
-1531	0	2
-1274	1	1
-39	1	1
-53	3	1
-202	0	1
-707	17	17
-1733	0	1
-14053	3	0
-286	3	1
-5600	4	0
-6458	0	1
-4866371	102000	0
-1870113	257	0
-590050	6	18
-2095	12	12
-24846	1	0
-5154	22	22
-1561	0	4
-5946	1	0
-2317	0	4
-1643	1	1
-27	1	1
-1237	1	0
-2698	1	1
-140	1	1
-1689	0	2
-836	29	30
-5333	1	0
-509	1	0
-5216	6	0
-10782	47	47
-1095	13	3
-1039	0	1
-11605	1	0
-22064	0	1
-16612	8	0
-902	1	0
-757	1	0
-619	0	1
-10979	1	1
-18	1	1
-1517	1	0
-4576	1	0
-12559	4	0
-2725	0	1
-5291	2	0
-8706	0	1
-83	1	0
-424	0	7
-72	38	0
-5528	1	0
-23971	1	0
-7855	54	22
-4095	0	1
-803	5	5
-6382	6	0
-3545	0	28
-4265	0	2
-13194	6	6
-6463	1	0
-26075	1	1
-59	1	1
-10791	17	7
-707	0	1
-210	1	0
-1655	0	2
-5301	1	0
-1930	1	0
-14632	2	0
-1043	1	0
-3607	3	0
-312	0	1
-5953	2	0
-170	0	17
-489	0	1
-5260	0	28
-888	10	0
-2461	10	10
-237	2	0
-1716	3	1
-10691	0	4
-3757	1	0
-6173	0	1
-8017	1	2
-3594	0	4
-5439	0	1
-4138	28	57
-6418	0	1
-1267	1	0
-720	0	6
-1083	2	0
-3878	0	1
-3310	23	23
-4349	1	1
-44	1	1
-3135	0	1
-174853	1	2
-2008	7	7
-5657	0	1
-6496	0	3
-89	0	5
-665	0	1
-954	46	46
-375	7	8
-1248	28	28
-2041	0	2
-2753	1	0
-1863	0	3
-3228	1	0
-3575	0	4
-40	1	1
-6488	0	2
-8612	11	11
-3795	0	16
-2105	0	1
-268	1	1
-22	3	0
-7889	4	0
-701	4	0
-2411	28	34
-2943	2	3
-8420	1	0
-926	0	324
-6732	1	0
-543	4	3
-4028	2	0
-51	52	40
-3000	1	0
-530	1	0
-2083	0	2
-1173	0	17
-119	16	16
-2727	1	0
-543	0	1
-783	1	0
-1372	0	4
-8624	20	0
-278	44	44
-4364	51	50
-2856	0	1
-5399	0	1
-1506	1	0
-919	0	6
-7229	10	0
-3225	1	0
-435	1	0
-2814	47	47
-1577	0	132
-9785	0	1
-2035	6	0
-7655	1	0
-198207	0	132
-11704	0	5
-7648	1	0
-9062	4	0
-8778	0	2
-7014	1	0
-1613	0	2
-790	7	5
-7433	1	0
-6482	12	12
-6798	0	1
-1422	1	0
-3454	1	1
-43	1	1
-3097	0	2
-334	0	18
-1444	1	0
-2400	3	0
-3272	0	1
-9106	1	0
-1573	0	1
-4742	1	0
-3366	1	0
-5484	0	1
-2444	0	5
-5448	8	8
-2539	0	1
-1471	0	1
-238	1	1
-16	1	1
-288	5	5
-2995	0	2
-951	1	1
-35	1	1
-279	16	15
-3534	6	0
-3513	0	1
-163	0	1
-6173	0	1
-1074	1	0
-2818	1	0
-2868	0	1
-3796	1	0
-1118	1	167
-1278267	25	25
-10747172	0	217
-3504877	0	1053
-10844	13	11
-18805	1	0
-1960834	126729	50000
-3065	1	0
-3601036	90008	8833
-34292	1	0
-1834	0	44
-3083	1	1
-43	1	1
-789	1	0
-11432680	153000	50000
-1902015	0	4098
-99	0	21
-3183	6	6
-877	1	1
-49	1	1
-296	0	1
-1375	1	1
-21	1	1
-607	5	5
-98	0	22
-6811	1	1
-17	0	11
-3804	1	0
-1356	1	1
-29	1	1
-297	1	0
-9543	0	2
-3130	0	4
-861	0	1
-27346	1	0
-7547	8	6
-2834	0	2
-394	4	0
-6524	1	0
-405	11	8
-1128	7	0
-271	1	1
-21	0	28
-507	6	0
-1211	44	31
-384	0	3
-521	18	18
-395	11	0
-799	1	1
-25	3	2
-51	1	49
-49	1	1
-558	0	1
-351	1	0
-2779	13	13
-114398	65008	82124
-7795	0	1
-18	1	1
-4140	1	0
-28048	1	1
-32	1	1
-4630	1	0
-4573	3	0
-357	2	0
-4812	1	0
-14372	0	3
-203	0	1
-26257	1	0
-2734	0	2
-19262	5	5
-5022	0	1
-25471	0	1
-1114538	0	53
-82	126	0
-1416	16	16
-629	57	0
-463	1	0
-148	1	1
-24	1	1
-2322	1	1
-23	1	0
-725	0	16
-24	16	0
-95	9	9
-1277	0	1
-2498	0	1
-354	49	0
-41	0	50
-17	0	49
-37	0	49
-65	8	152
-906	0	47
-234
-
-chain 3352932 chr17 78774742 + 33364384 33585329 chr17 81195210 - 44852585 44945131 363
-36	7017	7017
-2072	1	1
-16	1	1
-2167	2	0
-2513	1	1
-44	1	1
-1296	17	17
-860	5	0
-1482	0	11
-3433	1	1
-18	1	1
-393	0	3
-198	19	18
-1850	4	5
-267	1	0
-1125	6	7
-1255	1	0
-1502	0	1
-37	0	1
-26	0	1
-302	0	1
-1164	4	2
-1145	8	8
-1170	0	1
-298	1	2
-330	1	0
-2433	13	13
-79	0	2
-5343	1	1
-26	1	1
-994	1	3
-943	0	3
-2485	1	1
-22	1	1
-1574	129212	0
-265	54	54
-5225	26	26
-995	36	36
-240	1	0
-5900	61	61
-112	65	65
-53	14	14
-150	95	95
-160	48	48
-108	70	66
-401	0	6
-354	27	27
-56	65	65
-716	5	3
-1097	4	0
-518	27	27
-944	11	11
-579	37	37
-614	1	0
-2967	12	0
-601	1	10
-1307	35	35
-1719	0	889
-1973	0	3
-709	2	0
-496	5	1
-185	11	11
-98	1	0
-724	3	0
-2103	0	5
-1038	0	1
-257	7	0
-231	1	0
-312	0	2
-423	6	6
-520	10	13
-294	1	0
-17	1	1
-413	4	0
-1698	1	1
-46	1	1
-597	1	1
-21	1	1
-1182	0	2
-50	1	1
-44	0	2
-34	66	3
-3318	3	0
-624	7	0
-507	0	1
-60	1	1
-49	1	1
-332	1	1
-38	1	1
-77	1	1
-19	1	1
-65	1	0
-1174	5	0
-76
-
-chain 1309281 chr17 78774742 + 33410392 33424757 chr17 81195210 + 36336024 36350387 1779
-203	116	116
-6522	2	0
-5195	584	584
-1743
-
-chain 421642 chr17 78774742 + 33424760 33429230 chr17 81195210 - 44789041 44793512 103557
-258	1	0
-320	0	1
-3477	0	1
-414
-
-chain 288364 chr17 78774742 + 33534894 33553104 chr17 81195210 + 60335980 60353933 1564
-39	403	82
-124	31	31
-264	17	18
-283	79	89
-146	36	36
-392	27	27
-75	32	32
-295	106	106
-170	1	0
-69	35	35
-148	57	57
-152	23	23
-96	16	16
-594	57	58
-172	87	87
-108	39	39
-156	68	68
-148	63	63
-54	9	9
-39	289	289
-30	13136	13189
-45
-
-chain 141893 chr17 78774742 + 38701721 38703214 chr17 81195210 + 41346194 41347687 907641
-1493
-
-chain 138910 chr17 78774742 + 59795041 59797994 chr3 198022430 + 46191235 46194190 927459
-65	140	139
-77	32	32
-50	53	53
-51	108	111
-72	86	86
-65	76	76
-109	74	74
-120	2	0
-121	111	111
-69	23	23
-101	39	39
-56	40	40
-294	20	20
-65	100	100
-105	124	124
-147	116	116
-64	108	110
-70
-
-chain 73899 chr17 78774742 + 33536708 33552896 chr17 81195210 + 36333128 36349315 1571
-27	75	75
-32	306	306
-95	240	240
-35	148	148
-57	881	881
-57	172	172
-87	108	108
-39	156	156
-68	148	148
-63	6667	6667
-36	6153	6152
-49	112	112
-64	239	239
-74
-
-chain 29385 chr17 78774742 + 33422514 33422962 chr17 81195210 + 60352539 60352987 2653
-73	72	72
-133	53	53
-117
-
-chain 28843 chr17 78774742 + 33535172 33536316 chr17 81195210 + 34740000 34741144 3516
-164	124	124
-31	564	564
-79	146	146
-36
-
-chain 23419 chr17 78774742 + 40573363 40573608 chr17 81195210 - 37977034 37977279 7093437
-245
-
-chain 22267 chr17 78774742 + 59795106 59797450 chr15 102531392 + 100960318 100962666 927477
-74	509	513
-86	250	250
-74	1061	1061
-100	108	108
-82
-
-chain 19110 chr17 78774742 + 33422430 33422845 chr17 81195210 + 34807497 34807912 5737
-84	73	73
-72	133	133
-53
-
-chain 15302 chr17 78774742 + 59872221 59872543 chrX 155270560 + 133327972 133328295 14745200
-91	145	146
-86
-
-chain 15089 chr17 78774742 + 33553212 33554185 chr17 81195210 + 34758015 34758988 3454
-70	755	755
-27	56	56
-65
-
-chain 12559 chr17 78774742 + 41846587 41875489 chr17 81195210 + 44708735 44737620 783
-44	4372	4365
-43	24396	24386
-47
-
-chain 12028 chr17 78774742 + 253252 253513 chr17 81195210 + 253455 253745 1186280
-87	116	116
-26	30	59
-2
-
-chain 9840 chr17 78774742 + 59850421 59850563 chr12 133851895 - 30785452 30785594 23191844
-56	27	27
-59
-
-chain 8117 chr17 78774742 + 33410595 33410681 chr17 81195210 + 34744635 34744721 10477
-86
-
-chain 7470 chr17 78774742 + 59872141 59872220 chr8 146364022 - 25940938 25941017 21166303
-79
-
-chain 6548 chr17 78774742 + 59823421 59823489 chr9 141213431 + 108396482 108396550 29214974
-68
-
-chain 6212 chr17 78774742 + 33601781 33601849 chr17 81195210 + 34807429 34807497 5781
-68
-
-chain 6147 chr17 78774742 + 33578902 33578968 chr17 81195210 + 34784578 34784649 3380
-29	0	5
-37
-
-chain 5883 chr17 78774742 + 33556525 33558123 chr17 81195210 + 34761324 34762919 3874
-27	1534	1531
-37
-
-chain 5739 chr17 78774742 + 59862459 59862519 chr13 115169878 + 43436593 43436653 31343618
-60
-
-chain 5729 chr17 78774742 + 59852430 59852489 chr7 159138663 - 42785228 42785287 31366016
-59
-
-chain 5493 chr17 78774742 + 254397 254454 chr17 81195210 + 254136 254193 32044913
-57
-
-chain 5493 chr17 78774742 + 254339 254396 chr17 81195210 + 254136 254193 32044914
-57
-
-chain 4633 chr17 78774742 + 59795405 59797489 chr7 159138663 + 22571262 22573349 985966
-53	1992	1995
-39
-
-chain 3684 chr17 78774742 + 59871978 59872017 chr5 180915260 + 67132991 67133030 32368210
-39
-
-chain 3604 chr17 78774742 + 59872312 59872350 chr6 171115067 + 73766967 73767005 18649321
-38
-
-chain 3578 chr17 78774742 + 59797823 59797921 chr9 141213431 - 46000791 46000889 1219359
-98
-
-chain 3496 chr17 78774742 + 59872079 59872141 chrX 155270560 - 52661918 52661980 17303862
-62
-
-chain 3063 chr17 78774742 + 59796390 59796453 chr18 78077248 + 3738092 3738155 1007405
-63
-
-chain 2832 chr17 78774742 + 78651772 78651801 chr17 81195210 + 81058451 81058480 35013371
-29
-
-chain 2507 chr17 78774742 + 254312 254338 chr17 81195210 + 254167 254193 28153285
-26
-
-chain 2327 chr17 78774742 + 253481 253511 chr17 81195210 + 253858 253888 2965414
-30
-
-chain 2229 chr17 78774742 + 59795509 59795562 chr9 141213431 + 99971007 99971060 1163412
-53
-
-chain 2158 chr17 78774742 + 59871912 59871978 chr10 135534747 - 7120285 7120351 17475521
-66
-
-chain 2116 chr17 78774742 + 41755737 41755765 chr17 81195210 - 18330211 18330239 723
-28
-
-chain 2038 chr17 78774742 + 59872018 59872072 chr12 133851895 - 60047857 60047911 21673207
-54
-
-chain 1971 chr17 78774742 + 33410681 33410711 chr17 81195210 + 58084086 58084116 2335
-30
-
-chain 1910 chr17 78774742 + 59797697 59797752 chr7 159138663 - 95523915 95523970 1276958
-55
-
-chain 1797 chr17 78774742 + 59795569 59795617 chr8 146364022 - 39560190 39560238 1234503
-48
-
-chain 1764 chr17 78774742 + 59795840 59795881 chr17 81195210 - 78142303 78142344 1077161
-41
-
-chain 1713 chr17 78774742 + 59797636 59797671 chr10 135534747 - 112842234 112842269 1000659
-35
-
-chain 1680 chr17 78774742 + 59795180 59795214 chr3 198022430 + 108471362 108471396 1315432
-34
-
-chain 1591 chr17 78774742 + 59795881 59795916 chrX 155270560 - 139019545 139019580 1025236
-35
-
-chain 1456 chr17 78774742 + 59796656 59796685 chr6 171115067 + 121488440 121488469 989186
-29
-
-chain 1332 chr17 78774742 + 33532356 33535172 chr17 81195210 + 34572150 34574966 5130
-25	2722	2722
-69
-
-chain 1250 chr17 78774742 + 59795215 59795246 chr11 135006516 - 104930893 104930924 1222490
-31
-
-chain 1089 chr17 78774742 + 59795324 59795355 chrX 155270560 - 141145732 141145763 1311664
-31
-
-chain 1006 chr17 78774742 + 59797671 59797695 chrX 155270560 + 72606434 72606458 1154867
-24
-
-chain 622 chr17 78774742 + 33334125 33344374 chr17 81195210 - 46414201 46424210 397
-69	10130	9890
-50
-
-chain 20335446 chr17_random 2617613 + 224588 1377183 chr17 81195210 - 41910550 46712950 133
-1433	3	0
-976	0	1
-281	0	1
-1231	0	14
-2584	0	15
-2816	1	0
-3815	1	0
-122	1	1
-25	1	1
-335	0	1
-4687	29	0
-68	0	1
-1769	32	0
-616	3	0
-1017	1	1
-35	1	1
-864	17	17
-321	4	4
-47	1	1
-6467	8	10
-746	1	0
-188	30	0
-179	14	14
-120	1	1
-19	1	1
-477	1	1
-25	1	1
-300	5	5
-33	4	4
-968	6	6
-1546	1	1
-39	1	1
-66	1	1
-92	1	1
-349	12	12
-839	3	3
-36	1	1
-654	1	1
-88	1	1
-647	3	0
-993	10	8
-296	0	12
-183	4	4
-385	1	1
-25	1	1
-405	1	1
-29	1	1
-108	1	1
-36	1	1
-57	1	1
-88	2	1
-78	4	4
-39	1	1
-133	1	1
-133	1	1
-162	1	8
-398	14	14
-52	16	16
-122	1	1
-56	1	1
-98	1	1
-25	1	1
-332	1	1
-48	1	1
-83	0	1
-25	1	1
-71	1	1
-71	1	1
-79	4	0
-87	1	1
-207	1	1
-70	1	1
-263	16	16
-143	1	1
-72	1	1
-198	0	1
-1062	104	0
-6	61	0
-278	8	8
-454	49	49
-297	0	1
-1271	1	1
-48	1	1
-85	1	1
-66	1	1
-89	1	0
-327	1	1
-61	1	1
-51	1	1
-25	2	2
-72	1	1
-80	1	1
-132	1	1
-136	4	4
-63	1	1
-47	1	1
-134	1	1
-28	1	1
-1004	1	1
-45	1	1
-2017	1	1
-22	1	1
-778	8	0
-3805	0	4
-3884	1	0
-1082	1	1
-39	1	1
-926	1	0
-12182	105	0
-19079	4	0
-108	0	6
-81968	13	12
-5894	126	0
-5069	696334	2698100
-65	1	1
-31	0	1
-165	15	0
-2504	0	2
-1155	0	10
-463	1	0
-2422	0	1
-90	10	0
-75	0	1
-397	0	1
-64	31	32
-1531	4	0
-2064	0	1
-1305	1	0
-1045	0	1
-1972	0	1
-3554	0	2
-428	1	0
-1541	10	12
-1808	1	0
-1758	0	1
-500	1	0
-737	1	0
-218	0	1
-2132	0	1
-744	0	1
-7456	2	0
-45	0	2
-2311	23	23
-727	0	2
-916	1	0
-360	5	5
-2956	0	1
-3263	3	0
-1460	1	1
-34	1	1
-117	1	0
-1852	10	0
-50	7	7
-3949	42	42
-528	40	40
-736	100	17954
-680	119199	29667
-516	22	22
-2397	100	1694896
-1291	0	4
-232	1	1
-32	1	1
-1529	0	4
-20	2	0
-42	0	2
-94	0	10
-402	1	1
-16	1	1
-1099	1	1
-49	1	1
-2223	32	32
-1530	36	36
-1563	57608	84063
-160	94	94
-164	108	108
-123	61	61
-136	449	449
-3509	28	28
-1092	1	0
-611	1	1
-28	1	1
-2932	1	1
-52	49	45
-64	1	1
-27	1	1
-1320	1074	0
-6819	0	1
-4716
-
-chain 16836081 chr17_random 2617613 + 2022361 2536424 chr17 81195210 + 77630507 81150656 169
-143	0	4
-116	4	4
-74	12	10
-298	1	0
-533	1	0
-340	27	27
-130	16	16
-184	15	14
-699	1	0
-68	1	0
-153	1	0
-1835	1	0
-5	2	0
-95	1	0
-105	6	4
-14	1	0
-10	1	0
-88	1	0
-63	1	0
-27	1	0
-37	1	0
-18	1	0
-75	1	0
-49	2	0
-366	1	0
-206	1	0
-114	1	0
-237	1	0
-265	16	12
-223	1	0
-182	1	0
-26	1	0
-34	1	0
-138	1	0
-170	1	0
-26	1	0
-16	1	0
-53	4	2
-85	1	0
-188	1	0
-107	1	0
-31	1	0
-180	1	0
-4	2	1
-4	1	0
-16	1	0
-21	1	0
-324	1	0
-106	2	0
-46	1	0
-74	1	0
-12	1	0
-557	2	0
-194	5	2
-23	1	0
-67	6	3
-7	1	0
-50	1	0
-143	1	0
-190	1	0
-24	1	0
-310	1	0
-204	1	0
-108	1	0
-15	1	0
-212	1	0
-3	1	0
-57	4	2
-44	1	0
-298	1	0
-38	1	0
-54	1	0
-112	1	0
-20	2	0
-79	1	0
-10	6	3
-12	1	0
-59	1	0
-51	1	0
-234	2	0
-43	1	0
-194	1	0
-5	1	0
-96	9	4
-67	2	0
-270	1	0
-13	1	0
-59	1	0
-54	1	0
-57	1	0
-375	1	0
-50	1	0
-87	1	0
-83	4	2
-234	4	2
-44	1	0
-24	7	4
-25	1	0
-44	1	0
-139	1	0
-201	12	9
-215	1	0
-5	1	0
-30	1	0
-43	1	1
-54	16	13
-210	1	0
-109	2	0
-55	1	0
-14	1	0
-126	1	0
-79	1	0
-326	1	0
-18	1	0
-150	1	0
-13	1	0
-85	1	0
-47	1	0
-16	1	0
-41	1	0
-43	5	3
-56	1	0
-62	1	0
-164	1	0
-108	1	0
-20	2	0
-137	1	0
-214	1	0
-14	1	0
-5	2	0
-60	5	3
-24	1	0
-72	2	0
-25	1	0
-23	1	0
-60	1	0
-53	1	0
-15	1	0
-145	1	0
-337	1	0
-112	1	0
-39	1	0
-234	1	0
-7	2	0
-108	1	0
-19	1	0
-150	1	0
-22	5	3
-221	1	0
-30	1	0
-195	1	0
-126	1	0
-116	1	0
-189	1	0
-231	1	0
-87	2	0
-136	2	0
-69	1	0
-350	1	1
-29	1	0
-76	1	0
-42	1	0
-10	3	1
-63	1	0
-168	1	0
-97	1	0
-11	1	0
-291	1	0
-150	1	0
-10	1	0
-141	15	12
-9	1	0
-35	1	1
-57	1	0
-9	2	0
-211	1	0
-193	1	0
-51	1	0
-337	1	0
-94	1	0
-9	1	0
-58	1	0
-152	1	0
-58	1	0
-127	1	0
-6	1	0
-65	1	0
-379	1	0
-93	1	0
-11	1	0
-106	1	0
-545	1	0
-11	1	0
-66	2	0
-28	1	0
-242	4	2
-32	8	5
-373	10	9
-242	1	0
-207	1	0
-51	1	0
-132	1	0
-118	1	0
-19	2	0
-116	1	0
-16	1	0
-23	1	0
-54	1	0
-67	1	0
-62	1	0
-52	10	7
-15	2	0
-33	1	0
-248	1	1
-27	1	0
-122	1	0
-25	1	0
-55	1	0
-141	1	0
-57	1	0
-45	1	0
-21	1	0
-66	4	2
-23	1	1
-234	1	1
-25	2	2
-56	1	0
-34	1	0
-12	1	0
-11	1	0
-5	1	0
-54	1	0
-16	1	0
-64	1	0
-361	1	1
-24	1	0
-111	1	0
-12	1	0
-74	1	0
-56	1	0
-43	1	0
-21	1	0
-8	1	0
-13	2	0
-34	1	0
-59	1	0
-79	1	0
-159	1	0
-69	2	0
-15	2	0
-8	1	0
-142	19	17
-302	1	0
-49	1	0
-114	1	0
-72	1	0
-38	1	0
-16	1	0
-39	1	0
-106	1	0
-16	3	1
-31	1	0
-5	1	0
-43	1	0
-120	1	0
-16	1	0
-82	1	0
-47	4	1
-10	6	3
-59	1	0
-10	1	0
-258	1	0
-97	14	13
-72	1	0
-126	1	0
-14	1	0
-92	1	0
-406	1	0
-194	1	0
-43	1	0
-30	1	0
-50	1	0
-8	1	0
-161	6	4
-39	1	0
-12	1	1
-60	1	0
-61	1	0
-23	1	0
-13	1	0
-41	2	0
-260	1	0
-144	1	0
-38	1	0
-45	1	0
-17	1	0
-73	1	0
-64	20	13
-25	1	0
-84	1	0
-42	11	6
-180	1	0
-32	2	0
-172	0	1
-65	1	0
-53	1	0
-39	3	1
-203	1	0
-16	3	1
-42	3	2
-27	6	4
-13	1	0
-99	1	0
-34	4	2
-511	1	0
-182	1	0
-230	8	3
-42	1	0
-16	1	1
-270	5	4
-13	1	0
-141	1	0
-100	1	0
-144	1	0
-146	1	0
-356	1	0
-99	1	0
-69	2	0
-146	1	0
-55	18	14
-54	7	4
-18	1	0
-170	2	0
-45	1	0
-13	1	0
-628	1	0
-93	1	0
-46	1	0
-131	1	0
-20	1	0
-98	1	0
-20	1	1
-355	0	2
-88	1	0
-121	1	0
-31	1	0
-27	1	0
-132	1	0
-64	1	0
-43	1	0
-30	1	0
-95	1	0
-22	1	0
-44	6	3
-20	1	0
-138	1	0
-198	1	0
-100	1	0
-163	1	0
-6	1	0
-155	1	0
-79	1	0
-34	1	0
-193	1	0
-159	1	0
-50	5	3
-30	1	0
-9	1	0
-115	1	0
-93	1	0
-54	1	0
-91	1	0
-336	1	0
-134	18	13
-126	1	0
-61	1	0
-133	1	0
-613	4	2
-244	1	0
-586	1	0
-5	1	0
-93	19	16
-148	6	3
-12	2	1
-20	1	1
-138	102	11399
-572	8	6
-529	1	0
-659	1	1
-35	1	0
-191	2	0
-56	1	0
-105	1	0
-18	1	0
-226	1	0
-59	15	16
-275	1	0
-87	1	0
-5	1	0
-85	1	0
-21	1	0
-71	1	0
-507	1	0
-21	3	1
-82	1	0
-32	1	0
-39	1	1
-312	1	0
-263	1	0
-196	5	3
-23	5	3
-275	1	0
-46	2	0
-154	0	6
-229	1	0
-27	1	0
-87	1	0
-5	2	0
-502	1	0
-97	105	101
-162	1	0
-114	1	0
-65	1	1
-43	1	0
-217	1	0
-14	1	0
-172	1	0
-326	1	0
-9	1	0
-446	1	0
-73	1	0
-245	2	0
-114	1	0
-237	1	0
-35	22	13
-318	1	0
-320	1	0
-76	1	1
-54	1	0
-44	1	1
-100	1	0
-30	0	1
-462	1	0
-22	1	1
-72	1	1
-121	1	0
-37	1	0
-22	5	0
-23	1	1
-154	1	0
-63	1	1
-87	1	0
-278	1	0
-36	1	1
-230	1	0
-182	3	1
-51	1	0
-7	1	0
-101	1	0
-39	1	0
-17	1	0
-55	1	0
-13	1	0
-114	1	0
-13	1	0
-24	1	1
-69	10	9
-171	1	0
-60	1	1
-77	1	1
-8	2	1
-25	1	0
-51	1	0
-327	1	0
-105	2	0
-133	0	1
-28	1	0
-67	1	0
-119	4	2
-334	1	0
-37	2	1
-47	1	0
-165	1	0
-29	1	0
-35	1	0
-46	1	0
-9	1	0
-657	1	0
-62	1	0
-171	1	0
-17	1	0
-113	1	0
-15	1	1
-123	1	1
-62	1	0
-4	1	1
-288	21	0
-809	0	1
-22	1	0
-61	1	0
-52	1	0
-25	2	0
-263	3	1
-35	1	0
-192	238701	2061422
-87	1	0
-6	1	0
-1080	1	0
-76	1	0
-1007	1	0
-98	1	0
-35	1	0
-134	1	0
-285	1	0
-33	0	1
-225	1	0
-281	1	0
-108	1	0
-55	1	0
-107	1	0
-202	15	12
-111	1	0
-36	2	0
-25	1	0
-202	1	0
-97	1	0
-143	1	1
-21	1	0
-222	1	0
-41	1	0
-492	0	4
-594	1	0
-181	1	0
-410	1	0
-37	1	0
-13	1	0
-34	1	0
-76	38	37
-204	27	27
-204	40	32
-432	1	0
-143	1	0
-271	1	0
-224	96	91
-385	1	0
-337	1	0
-375	1	0
-139	22	17
-297	1	0
-72	1	0
-5	2	0
-193	1	0
-8	1	0
-28	1	0
-17	1	0
-17	1	0
-445	1	0
-169	1	36
-35	3	1
-425	1	0
-41	1	0
-37	1	0
-79	1	0
-100	1	0
-130	1	0
-419	1	0
-17	1	1
-284	3	1
-56	1	0
-9	2	1
-655	1	0
-158	2	0
-8	1	0
-34	1	1
-519	1	0
-39	1	0
-78	1	0
-216	1	0
-3	1	0
-68	1	0
-56	1	0
-70	1	0
-290	0	4
-46	0	2
-108	0	2
-23	0	114
-830	1	0
-136	76	98
-63	65	64
-380	1	0
-106	1	1
-358	1	0
-64	1	1
-17	1	0
-171	5	3
-27	1	1
-130	13	10
-131	1	0
-415	1	0
-5	1	0
-37	1	0
-29	1	0
-27	1	0
-750	1	0
-249	1	0
-221	1	0
-109	1	0
-50	1	0
-323	1	0
-296	1	0
-383	1	0
-67	1	0
-239	2	0
-248	1	0
-9	1	0
-180	1	0
-241	1	0
-40	3	1
-6	1	0
-19	1	0
-27	1	0
-166	1	0
-80	1	0
-163	1	0
-33	1	0
-9	1	0
-172	1	0
-261	1	0
-200	1	0
-14	6	2
-121	1	0
-37	4	2
-74	1	0
-97	5	3
-10	2	1
-51	1	0
-642	1	0
-317	14	11
-163	3	1
-25	2	0
-875	1	0
-128	1	0
-211	8	4
-409	1	0
-233	1	0
-263	1	0
-12	1	0
-73	1	0
-188	1	0
-96	1	0
-183	1	0
-126	1	0
-235	1	1
-68	0	1
-618	1	0
-13	1	0
-73	1	0
-1315	883	57
-78	2	2
-774	1	0
-21	1	0
-13	1	0
-9	2	0
-168	1	0
-214	1	0
-84	3	1
-645	1	0
-150	1	0
-72	1	0
-8	1	0
-108	1	0
-120	1	0
-1469	1	0
-38	1	0
-697	1	0
-44	1	0
-345	1	0
-126	1	0
-46	1	0
-110	1	0
-972	1	0
-104	23	22
-93	2	2
-38	1	0
-34	3	1
-730	1	0
-151	1	0
-124	1	0
-210	1	0
-60	1	0
-227	1	0
-122	1	0
-225	2	0
-26	1	0
-85	1	0
-84	6	3
-408	1	0
-5	3	1
-18	1	0
-69	1	0
-76	1	0
-122	1	0
-288	1	0
-10	1	0
-55	1	0
-22	2	0
-455	1	0
-246	1	0
-37	1	0
-153	1	0
-27	1	0
-101	1	0
-158	1	0
-107	1	0
-437	1	0
-31	1	0
-149	1	0
-121	1	0
-5	1	0
-175	1	0
-76	1	0
-75	1	0
-26	2	0
-98	1	0
-169	1	0
-82	1	0
-20	1	0
-326	1	0
-274	1	0
-78	1	0
-42	1	0
-64	1	0
-11	7	4
-39	1	0
-91	1	0
-140	1	0
-397	14	12
-500	7	4
-879	5	2
-448	1	0
-42	1	0
-522	1	0
-247	1	0
-484	1	0
-689	1	0
-66	1	0
-198	1	0
-441	1	0
-143	1	0
-35	1	0
-84	1	0
-9	1	0
-445	1	0
-110	1	0
-204	1	0
-31	1	0
-77	1	0
-54	1	0
-213	1	0
-601	1	0
-25	1	0
-239	2	2
-42	1	0
-29	2	0
-15	1	0
-175	1	0
-611	1	0
-418	1	0
-191	1	0
-295	1	0
-30	8	5
-609	1	0
-372	1	0
-154	2	0
-117	1	0
-282	1	0
-360	1	0
-750	1	0
-402	1	0
-45	1	0
-678	1	0
-17	1	0
-117	1	0
-148	1	0
-164	3	1
-51	1	0
-65	1	0
-452	1	0
-1443	1	0
-142	1	0
-509	1	0
-92	10	6
-264	1	0
-69	1	0
-78	1	0
-43	1	0
-164	1	0
-349	1	0
-117	1	0
-373	1	0
-235	1	0
-160	1	0
-8	1	0
-263	1	0
-15	1	0
-23	1	0
-151	1	0
-100	1	0
-204	1	0
-250	1	0
-33	3	1
-272	1	0
-262	1	0
-55	1	0
-519	1	0
-251	1	0
-189	1	0
-459	1	0
-183	1	0
-295	1	0
-552	1	0
-94	16	12
-259	1	0
-30	1	0
-396	1	0
-17	1	0
-72	1	0
-56	1	0
-90	1	0
-106	1	0
-19	2	0
-271	1	0
-448	1	0
-628	497	497
-254	26	26
-391	1	0
-32	1	0
-171	1	0
-126	20	17
-94	1	0
-446	1	0
-30	1	0
-96	1	0
-17	1	0
-159	1	0
-390	1	0
-105	1	0
-94	1	0
-5	2	0
-21	1	0
-22	1	0
-380	1	0
-12	1	0
-211	1	0
-377	1	0
-3	1	0
-63	1	0
-37	2	2
-1596	1	0
-638	1	0
-30	1	0
-665	13	10
-32	1	0
-102	1	0
-361	1	0
-609	1	0
-590	1	0
-1189	29	29
-345	1	0
-732	1	0
-544	1	0
-272	1	0
-725	1	0
-198	1	0
-8	1	0
-275	1	0
-95	1	0
-101	1	0
-626	1	0
-154	1	0
-242	1	0
-937	1	0
-142	1	0
-236	1	0
-456	12	9
-77	1	0
-189	1	0
-172	1	0
-201	1	0
-417	1	0
-179	1	0
-141	1	0
-219	1	0
-164	1	0
-138	1	0
-500	2	0
-263	1	0
-48	1	0
-17	1	0
-91	1	0
-169	1	0
-8	1	0
-185	1	0
-48	1	0
-345	1	0
-546	2	2
-229	2	2
-614	1	0
-73	2	2
-129	1	0
-91	1	0
-287	3	1
-504	2	0
-264	22	22
-508	1	0
-1324	1	0
-1313	1	0
-36	1	0
-346	1	0
-285	5	2
-31	1	0
-6	1	0
-133	1	0
-27	1	0
-101	1	0
-249	1	0
-68	5	3
-34	1	0
-31	1	0
-140	1	0
-350	1	0
-312	1	0
-139	1	0
-66	1	0
-24	1	0
-37	1	0
-16	1	0
-32	1	0
-204	1	0
-21	1	0
-11	1	0
-120	2	0
-161	1	0
-13	1	0
-143	1	0
-46	1	0
-136	3	1
-75	1	0
-176	1	0
-23	1	0
-30	1	0
-34	1	0
-307	1	0
-27	1	0
-261	1	0
-39	1	0
-995	1	0
-556	1	0
-211	1	0
-278	1	0
-850	1	0
-285	1	0
-207	1	0
-154	1	0
-51	1	0
-237	1	0
-204	1	0
-11	1	0
-348	2	0
-41	1	0
-75	2	0
-47	1	0
-49	1	0
-253	1	0
-171	10	6
-106	1	0
-83	1	0
-86	1	0
-30	1	0
-166	1	0
-297	1	0
-480	1	0
-285	1	0
-339	1	0
-30	1	0
-74	1	0
-15	1	0
-310	1	0
-88	1	0
-111	1	0
-104	1	0
-644	1	0
-29	1	0
-413	2	0
-33	3	1
-19	1	0
-321	1	0
-318	1	0
-131	1	0
-111	1	0
-89	1	0
-751	120	120
-314	1	0
-613	2	0
-991	3	1
-44	1	0
-42	1	0
-57	1	0
-102	1	0
-318	1	0
-47	2	0
-186	1	0
-550	1	0
-504	1	0
-76	1	0
-336	1	0
-505	1	0
-34	2	0
-61	1	0
-257	1	0
-439	1	0
-94	1	0
-18	1	0
-6	1	0
-86	1	0
-18	1	0
-179	1	0
-52	1	0
-635	1	0
-535	1	0
-90	1	0
-531	2	0
-59	1	0
-132	1	0
-122	1	0
-17	1	0
-96	1	0
-281	1	0
-145	1	0
-342	1	0
-132	1	0
-95	16	12
-417	1	0
-143	1	0
-135	1	0
-11	1	0
-486	1	0
-224	1	0
-277	1	0
-449	1	0
-321	34	30
-96	1	0
-20	1	0
-358	1	0
-146	1	0
-176	1	0
-37	1	0
-92	1	0
-115	1	0
-245	1	0
-72	1	0
-65	1	0
-108	1	0
-41	13	10
-121	65	54
-54	1	0
-359	1	0
-53	1	0
-55	1	0
-10	1	0
-5	1	0
-6	2	1
-43	1	0
-9	1	0
-223	1	0
-90	1	0
-157	1	0
-686	1	0
-250	1	0
-160	1	0
-264	50363	1224780
-4948	0	1
-1850	60	67
-3859	0	1
-456	4	5
-1605	21	21
-1281	7	13
-5090	456	0
-1543	1	1
-37	1	1
-2825	1	1
-64	1	1
-1075	0	1
-721	0	1
-5566	22	5
-1136	1	0
-2390	0	3
-1347	0	2
-4617
-
-chain 16543266 chr17_random 2617613 + 0 174588 chr17_gl000205_random 174588 + 0 174588 172
-174588
-
-chain 10747371 chr17_random 2617613 + 1609852 1757206 chr17 81195210 - 15050606 15196423 297
-3573	1	0
-1031	1	0
-4890	10	7
-318	0	1
-667	1	0
-168	0	2
-974	2	0
-143	2	0
-208	4	0
-2621	10	10
-634	2	0
-1898	0	2
-99	21	21
-6731	1	1
-49	1	1
-345	2	0
-210	1	1
-1621	1	0
-1077	0	2
-371	6	0
-4548	5769	26131
-1148	0	1
-1283	1	1
-24	1	0
-2931	0	6
-38	22	0
-682	0	1
-1267	0	2
-470	9	19
-2335	0	9
-720	8	0
-2859	26315	4346
-4414	0	1
-777	1	4
-894	4	0
-3207	0	3
-3071	0	1
-1338	1	0
-869	1	0
-2072	0	1
-395	1	0
-1060	8	8
-1138	1	1
-6	2	0
-40	1	1
-473	0	1
-748	2	0
-306	8	0
-81	6	0
-748	4	0
-158	0	22
-6454	0	2
-145	1	1
-49	1	1
-619	0	1
-1579	14	14
-455	1	0
-5224	1	1
-31	1	0
-31	0	57
-3855	0	2
-2164	11	21
-1491	0	4
-213	16	4
-4589	6	6
-1564	0	6
-325	0	1
-2241	0	1
-149	0	1
-4150	0	4
-4768	0	12
-411	0	6
-804	2	0
-124	19	19
-937	2	0
-997	27	29
-685	37	37
-5	2	0
-35	37	48
-29	1	1
-237	2	0
-333	0	1
-1296	31	23
-472	4	0
-34	1	1
-683
-
-chain 7797784 chr17_random 2617613 + 2131554 2212864 chr17_gl000204_random 81310 + 0 81310 420
-81310
-
-chain 5191141 chr17_random 2617613 + 986480 1282720 chr17 81195210 + 34482891 34744119 309
-118	29	29
-73	435	3450
-113	9	9
-74	44	43
-109	53	55
-147	361	38
-603	128	128
-69	8	8
-278	22	22
-1262	20	20
-83	37	44
-478	1	1
-32	1	1
-54	1	1
-81	1	1
-57	0	1
-71	4	4
-83	1	1
-103	1	1
-80	1	1
-15	1	1
-312	15	15
-185	1	1
-24	1	1
-720	1	1
-19	1	1
-185	1	1
-35	1	1
-144	7	7
-238	1	1
-62	3	3
-196	10	10
-123	1	1
-99	1	1
-1997	1	1
-27	1	1
-64	49	45
-19	1	1
-547	1	1
-16	1	1
-796	0	2
-213	0	1
-1353	0	5
-59	1	1
-604	1	0
-1099	28	28
-2219	0	1
-1732	6	6
-115	1	1
-80	1	1
-123	1	1
-106	1	1
-164	1	1
-92	1	1
-160	34984	45270
-79	5	5
-348	149	150
-73	23	23
-322	46	46
-284	35	28
-1307	16	16
-515	89	89
-62	9	9
-203	3	0
-65	10	9
-188	33	32
-342	1	0
-100	0	1
-67	48	52
-69	1	0
-2330	39	42
-356	2	0
-767	5	9
-69	4	0
-373	29	30
-138	1	0
-571	0	1
-273	13	13
-140	25	24
-457	39	39
-204	19	19
-137	49	49
-178	59	59
-220	38	38
-66	23	22
-315	1	0
-399	30	30
-345	62	62
-200	36	36
-1097	33	35
-255	5	0
-61	4	0
-371	48	33
-119	30	30
-52	0	2
-236	0	2
-81	13	13
-168	12	12
-174	0	1
-250	81	81
-185	35	35
-343	27	35
-271	232	235
-79	116	119
-288	61	61
-869	9	8
-282	7	0
-6366	1	0
-2033	112	1128
-417	0	1
-64	145492	5631
-587	0	2
-184	392	14227
-792	0	4
-408	2	1
-1608	0	1
-1287	0	2
-676	1	1
-31	1	1
-112	1	1
-91	1	1
-173	1	0
-42	1	14
-784	11	11
-3219	0	13521
-8127	24	23
-7132	0	12
-9450	0	4
-3351	28	28
-5832	3	0
-100	0	1
-67	0	5
-31	6	5
-10	1	1
-69	2	0
-2314	1	0
-11507	0	1
-742	0	63471
-5695	0	1
-731	1	0
-3536
-
-chain 4342758 chr17_random 2617613 + 615163 663282 chr17 81195210 - 81146986 81195210 699
-117	89	88
-430	1	1
-8	7	3
-19	1	1
-521	14	7
-577	1	0
-4	1	0
-284	1	1
-19	12	6
-55	3	0
-193	1	0
-383	16	13
-508	5	0
-404	6	1
-1326	31	25
-723	84	3
-41	75	0
-21	1	0
-303	27	0
-65	81	27
-94	1	1
-40	1	1
-118	746	87
-30	2	1
-37	1	1
-179	2	0
-43	1	1
-46	27	0
-35	32	0
-278	1	0
-353	8	10
-363	13	1
-106	4	0
-188	34	34
-206	1	0
-3	1	0
-1339	1	0
-632	1	1
-21	0	4
-248	1	0
-655	1	0
-258	1	0
-777	1	0
-1440	16	16
-124	1	1
-36	1	0
-33	1	1
-89	1	0
-165	1	0
-86	1	1
-47	1	1
-319	8	4
-506	4	2
-537	16	12
-2310	1	0
-7	2	0
-922	9	0
-294	1	0
-145	1	0
-1890	2	0
-15	1	0
-38	1	0
-2030	12	6
-1208	2	0
-107	1	0
-438	2	0
-492	2	0
-184	1	0
-42	1	1
-646	1	35
-28	4	4
-62	4	36
-43	0	32
-54	1	1
-8	2	0
-23	1	1
-77	0	32
-34	0	32
-52	1	167
-69	70	6
-61	0	36
-99	0	64
-605	22	22
-133	1	0
-296	1	1
-42	1	0
-361	10	6
-225	14	14
-387	1	97
-405	0	480
-101	1	0
-24	2	2
-339	0	336
-1176	1	0
-192	1	0
-553	1	0
-114	4	1
-544	18	12
-575	3	0
-85	1	0
-934	1	0
-667	13	7
-28	18	12
-770	10	6
-149	1	0
-884	22	20
-214	0	1
-607	1	0
-129	1	0
-14	6	4
-27	6	3
-10	1	0
-4	2	0
-155	39	28
-214	2	0
-43	1	1
-1236	44	27
-1759	2	0
-472	6	2
-342	8	5
-970	6	0
-227	1	0
-691	1	0
-359	2	0
-141	1	0
-5	1	0
-2008	1	0
-302
-
-chain 3923033 chr17_random 2617613 + 864624 922266 chr17 81195210 + 81075742 81117538 762
-924	1	0
-428	1	0
-763	1	0
-19745	32	32
-637	15873	36
-186	1	0
-2389	1	0
-616	1	0
-1932	12	12
-10081	18	18
-2216	1	0
-92	1	0
-271	4	4
-67	5	5
-698	83	82
-473	27	27
-62
-
-chain 3905383 chr17_random 2617613 + 460666 565054 chr17 81195210 + 41343520 41406910 763
-9362	3	1
-1313	0	1
-344	1	0
-2289	0	2
-14919	0	1
-1393	6	4
-1047	1	0
-21	0	1
-31	5511	0
-28	783	8
-978	3	4
-213	0	2
-2198	0	702
-75	4479	3549
-723	0	13
-165	1	1
-19	3	3
-113	0	4
-88	1	1
-41	1	0
-38	7	7
-98	17	17
-152	50743	16221
-115	169	185
-169	0	4
-278	1	1
-48	1	1
-6399
-
-chain 3524656 chr17_random 2617613 + 1876393 1913891 chr17_gl000203_random 37498 + 0 37498 830
-37498
-
-chain 3296870 chr17_random 2617613 + 1963891 2002673 chr17_gl000204_random 81310 + 42877 81310 872
-560	1	0
-101	2	0
-296	42	39
-438	2	0
-256	1	0
-136	1	0
-109	1	0
-101	2	0
-234	64	62
-405	37	35
-61	1	0
-366	5	3
-501	39	37
-142	1	0
-191	27	24
-59	6	4
-53	67	62
-91	1	0
-159	1	0
-74	40	38
-164	1	0
-57	28	26
-75	1	0
-46	1	0
-61	45	43
-117	1	0
-360	45	43
-204	1	0
-180	61	58
-589	1	0
-212	1	0
-88	1	0
-53	1	0
-492	1	0
-75	26	24
-273	1	0
-701	1	0
-444	1	0
-75	1	0
-393	11	9
-105	59	56
-72	42	40
-79	1	0
-79	1	0
-95	153	144
-127	1	0
-85	4	2
-175	3	0
-222	1	0
-121	1	0
-48	1	0
-50	1	0
-61	1	0
-213	1	0
-73	1	0
-180	2	0
-83	1	0
-58	1	0
-192	11	5
-57	140	125
-101	1	0
-91	38	34
-190	1	0
-73	1	0
-116	6	4
-275	16	14
-200	1	0
-201	3	1
-632	1	0
-60	1	0
-198	9	1
-254	2	0
-89	1	0
-60	38	36
-326	32	28
-306	1	0
-55	1	0
-100	18	16
-127	36	32
-67	1	0
-78	1	0
-90	1	0
-63	35	31
-120	150	141
-103	9	7
-406	88	85
-54	15	13
-142	9	7
-112	32	30
-237	1	0
-114	27	18
-157	40	38
-145	1	0
-380	20	18
-73	109	104
-57	1	0
-83	68	65
-567	1	0
-378	0	4
-282	29	27
-725	1	0
-204	1	0
-246	1	0
-295	17	15
-243	1	0
-187	46	44
-56	1	0
-244	1	0
-303	1	0
-121	16	15
-253	1	0
-273	44	44
-427	10	0
-403	2	0
-219	1	0
-151	1	0
-115	14	13
-193	1	0
-63	1	0
-63	38	36
-609	1	0
-81	42	40
-297	1	0
-455	17	14
-278	3	1
-691	1	0
-417	104	101
-57	1	0
-93	5	3
-309	48	47
-303	1	0
-324	1	0
-126	41	37
-138	2	0
-233	1	0
-100	50	47
-86	9	7
-256	1	0
-208	1	0
-486	3	1
-118	1	0
-70	69	64
-455	8	6
-149	1	0
-175	5	2
-115	1	0
-159	1	0
-109	12	9
-135	33	31
-53	1	0
-256	5	3
-82	41	38
-268	70	67
-600	1	0
-128	18	16
-114	1	0
-149	62	58
-99	57	54
-158	42	38
-88	1	0
-75	46	43
-300	50	47
-71	13	11
-118	1	0
-177	1	0
-120	1	0
-275	1	0
-74	13	11
-230	1	0
-117	6	4
-113	39	37
-71	1	0
-597	9	8
-82	10	6
-195	10	8
-361	1	0
-53	1	0
-291	0	1
-149	1	0
-164
-
-chain 2935078 chr17_random 2617613 + 1427191 1457644 chr17 81195210 + 81045288 81075743 955
-1667	2	0
-1156	0	2
-25	0	2
-27603
-
-chain 2199778 chr17_random 2617613 + 671651 748529 chr11 135006516 - 134809692 134880676 533
-53	3	0
-176	68	0
-22	38	1
-38	43	16
-122	41	249
-34	4	16
-5	1	0
-6	1	0
-68	0	37
-1042	1	1
-35	1	1
-27	326	0
-359	1	0
-3	2	0
-176	16	5
-44	5	1
-224	1	0
-432	1	1
-35	1	1
-266	21	16
-109	14	10
-806	0	34
-465	56	0
-57	4	0
-787	1	0
-283	1	1
-27	1	1
-1090	1	1
-81	1	0
-1354	1	0
-40	1	1
-305	1	0
-89	1	1
-63	1	1
-48	1	1
-167	11	11
-83	8	4
-45	5	3
-343	1	1
-47	49	0
-56	0	294
-17	49	0
-79	5	103
-162	49	0
-442	10	10
-438	3	0
-50	1	1
-676	1	1
-39	1	1
-66	1	1
-7	1	0
-35	1	1
-547	7	2
-549	2393	0
-3	2913	0
-65	1	0
-60	1	1
-69	1	1
-42	0	1
-175	5	4
-100	1	0
-402	1	0
-39	1	0
-10	1	0
-10	1	0
-14	1	1
-95	4	2
-120	0	5
-126	1	1
-32	2	1
-72	1	1
-335	1	1
-45	1	0
-403	4	1
-54	1	0
-108	1	0
-289	1	1
-40	1	0
-164	12	12
-169	1	1
-76	1	1
-71	3	3
-34	1	1
-65	72	72
-84	64	1
-55	190	1
-52	1	1
-42	5	5
-138	1	1
-39	1	1
-311	6	7
-300	1	0
-597	17	17
-187	1	1
-32	100	2817
-24	203	202
-36	1	1
-115	4	0
-139	25	24
-1050	1	0
-56	1	0
-90	1	0
-33	1	0
-35	3	0
-114	1	1
-19	1	1
-215	1	0
-431	1	1
-23	1	0
-421	14	11
-292	1	1
-22	1	1
-49	2741	2490
-33	4095	4075
-9	0	3
-18	1474	1474
-3	6	1
-11	3	0
-38	14404	14348
-27	15613	15513
-5	5	5
-21	1	2
-13	19	20
-34	104	104
-44	214	216
-8	3	0
-27	2800	929
-60	1	1
-29	4270	3383
-30	49	0
-26	1	1
-40	2712	2960
-33	1	1
-7
-
-chain 2173268 chr17_random 2617613 + 699498 748919 chr1 249250621 - 248538148 248591008 468
-685	3	3
-36	4	4
-73	9	5
-59	70	63
-42	285	48
-44	1	1
-96	74	80
-321	1	1
-49	1	1
-107	1	1
-47	11	2
-85	3	0
-67	1	0
-179	19	16
-220	9	0
-138	33	33
-136	1	1
-26	1	1
-545	1	0
-8	14	10
-42	1	1
-64	1	1
-28	1	1
-119	1	1
-49	1	1
-54	1	1
-32	1	1
-960	1	1
-41	1	1
-731	16	16
-57	1	1
-19	1	1
-118	1	0
-196	1	1
-50	1	1
-263	1	1
-52	1	1
-171	1	1
-26	1	1
-181	25	16
-51	27	0
-56	1	1
-139	0	4
-33	1	1
-236	1	1
-17	1	1
-192	15	13
-186	1	1
-30	7	7
-280	1	1
-80	1	0
-196	62	54
-290	1	1
-38	1	1
-772	10	10
-123	1	1
-28	1	0
-20	34	22
-81	0	4
-45	1	1
-806	1	1
-31	1	0
-35	1	1
-101	17	15
-89	1	1
-34	1	0
-8	1	1
-290	13	9
-284	1	0
-53	7	0
-26	6	0
-605	4	0
-531	35	35
-704	1	1
-66	1	1
-168	1	1
-34	1	1
-527	1	1
-30	1	1
-249	16	7
-414	1	1
-27	1	1
-344	1	1
-43	1	1
-117	1	1
-30	1	1
-862	0	1
-229	1	1
-48	1	1
-197	14	14
-972	19	31
-924	1	1
-42	1	1
-123	1	1
-56	1	1
-77	1	1
-23	1	1
-119	1	1
-53	18	11
-382	1	1
-17	1	1
-116	5	2
-37	1	1
-38	2	0
-223	1	1
-21	6	1
-583	1	0
-400	0	4
-1574	27	27
-54	4	1
-158	10	7
-336	6	7
-492	1	0
-14	1	1
-843	1	2
-247	1	1
-41	1	1
-50	6	6
-513	17	13
-615	12	12
-585	32	23
-161	6	6
-515	9	5
-43	5	3
-460	5	5
-158	11	11
-252	1	1
-22	3	0
-135	12	12
-556	0	1
-542	3	0
-298	4	1
-24	4	0
-117	9	5
-151	0	1
-291	0	1
-360	15	15
-962	20	17
-231	1	0
-293	1	0
-33	32	0
-40	15	10
-213	23	23
-458	1	1
-51	1	1
-437	1	0
-394	1	1
-25	2	0
-117	10	4
-50	1	1
-40	1	1
-626	8	5
-492	1	0
-383	1	0
-672	1	1
-136	1	1
-203	2	2
-88	1	1
-261	1	1
-45	1	1
-189	15	15
-78	1	1
-49	1	1
-93	1	0
-35	13	10
-21	1	1
-527	99	94
-103	44	44
-79	24	26
-111	39	36
-235	24	27
-117	7	7
-127	222	1777
-58	167	165
-59	75	75
-203	12	12
-55	56	44
-269	34	32
-87	24	24
-250	35	29
-682	91	91
-312	4	3
-583	124	2653
-132	399	398
-134	1	1
-33	1	1
-179	1	1
-27	1	1
-245	4	4
-93	1	1
-940	1	1
-20	1	1
-271	1	1
-16	0	1
-353	24	17
-369	146	0
-83	1	1
-34	1	1
-1103	1	1
-26	1	1
-112	1	0
-3	1	0
-370	32	27
-410	170	174
-51	1	1
-310	42	41
-66	5	2
-319
-
-chain 2047886 chr17_random 2617613 + 532224 554093 chr17 81195210 - 39794017 39815907 1262
-682	50	50
-270	0	4
-316	0	1
-691	1	0
-678	1	2
-601	1	0
-383	1	0
-20	1	1
-1048	2	0
-1884	0	6
-690	0	5
-1205	1	1
-43	0	2
-891	19	19
-1916	7	6
-2354	0	3
-2253	10	0
-2406	0	13
-1972	6	6
-595	0	4
-148	100	100
-356	20	20
-109	4	4
-73	2	0
-59
-
-chain 1863993 chr17_random 2617613 + 1011919 1106715 chr17 81195210 + 34578530 36287451 432
-1027	148	148
-295	18	18
-204	37	37
-144	7	7
-238	38	38
-357	101	101
-125	64	64
-712	21	22
-181	126	1729
-702	0	2
-184	29	30
-236	37	37
-1080	60	65
-606	1	0
-328	63	63
-556	20	20
-94	37	37
-172	0	1
-1430	0	1
-151	53	53
-605	36	36
-292	1	0
-84	17921	60667
-87	11034	74480
-38	804	804
-30	345	345
-62	200	200
-36	1097	1097
-33	696	696
-48	119	119
-30	986	986
-81	185	185
-35	641	641
-232	79	79
-116	288	288
-61	11306	1517682
-155	7	0
-427	5	5
-742	2	0
-85	1	1
-401	1	1
-97	1	1
-566	1	0
-607	1	0
-1318	0	24
-1995	71	3
-34	0	2
-44	1	1
-39	0	1
-3518	0	4
-469	1	0
-294	10	13
-520	6	6
-403	0	3
-331	1	0
-231	7	0
-255	0	1
-3122	0	1
-729	0	1
-117	11	11
-186	4	0
-84	1	0
-412	2	0
-19	1	1
-1642	6	0
-628	1	1
-21	1	1
-377	50	50
-151	0	9
-2370	1	1
-35	1	1
-1328	1	10
-586	14	0
-789	12	13
-1397	0	1
-1521	0	2
-382	0	1
-866	1	1
-20	1	1
-710	2	0
-1259	161	161
-387	28	28
-53	24	24
-3626	1	0
-1718
-
-chain 1732426 chr17_random 2617613 + 2586433 2605017 chr17 81195210 - 39776940 39795500 1439
-1157	1	1
-31	0	5
-2053	8	8
-691	1	1
-30	1	1
-1212	3	0
-3864	1	0
-3	1	0
-56	15	0
-860	1	1
-30	1	1
-6532	4	4
-147	13	13
-1042	17	17
-319	7	0
-181	10	10
-68	42	42
-51	16	14
-115
-
-chain 1719393 chr17_random 2617613 + 1323861 1343929 chr17 81195210 + 45650033 45670000 1446
-76	1	1
-94	1	1
-84	9	9
-70	1	1
-43	1	0
-40	0	2
-126	1	1
-38	1	1
-391	1	1
-43	1	1
-100	0	1
-66	12	12
-65	1	1
-39	2	0
-9	4	0
-25	1	1
-99	1	1
-27	0	4
-362	22	4
-659	2	0
-433	0	20
-16	1	1
-117	1	1
-248	1	1
-200	1	1
-23	1	1
-248	6	0
-120	1	1
-930	1	1
-14	1	1
-76	1	1
-11	1	0
-23	2	0
-23	1	1
-236	1	1
-48	1	1
-108	1	1
-141	7	5
-50	1	1
-27	1	1
-306	0	3
-290	1	1
-20	0	1
-31	1	1
-618	5	6
-350	14	6
-55	0	2
-112	4	0
-50	1	1
-263	1	0
-51	1	1
-527	1	1
-47	1	1
-247	1	1
-34	3	3
-169	0	2
-33	3	0
-165	12	0
-163	1	1
-77	1	0
-56	26	26
-54	6	6
-338	2	0
-185	73	73
-336	0	3
-89	1	1
-19	1	1
-65	18	18
-89	0	1
-178	1	1
-45	1	1
-67	8	0
-347	0	1
-22	1	1
-192	1	1
-73	1	4
-38	0	1
-61	1	1
-164	1	1
-74	3	3
-260	5	0
-89	9	9
-142	1	1
-49	1	1
-71	0	1
-62	1	1
-391	1	1
-78	1	1
-100	1	1
-32	1	1
-155	11	12
-304	8	0
-79	1	1
-115	1	1
-29	1	1
-97	19	0
-168	1	1
-19	4	4
-359	2	0
-18	1	1
-358	1	1
-38	1	1
-83	1	1
-31	1	1
-389	1	1
-32	1	1
-128	1	1
-39	1	1
-54	1	1
-11	2	0
-165	4	0
-34	1	1
-58	1	1
-68	3	0
-230	1	1
-44	1	1
-276	16	16
-170	6	6
-104	1	1
-61	1	1
-107	6	6
-177	1	1
-66	5	0
-60	1	1
-14	1	1
-50	4	4
-15	1	1
-62	1	1
-194	1	1
-72	22	1
-39	1	1
-70	1	1
-42	1	1
-58	1	1
-36	1	1
-329	1	0
-136	1	1
-192	9	10
-682	24	21
-81	0	1
-367	12	12
-81
-
-chain 1570588 chr17_random 2617613 + 1644335 1687876 chr17 81195210 + 66068832 66112387 1087
-1168	16352	16361
-2197	2	0
-1554	1	0
-6339	0	4
-1936	0	7
-2357	2	0
-7231	1	0
-4401
-
-chain 1476469 chr17_random 2617613 + 2303443 2319476 chr17 81195210 + 79885696 79901628 1655
-880	1	0
-298	1	0
-60	43	40
-227	40	38
-326	1	0
-77	1	0
-148	1	0
-199	21	19
-60	1	0
-224	1	0
-173	1	0
-317	88	84
-84	1	0
-96	48	45
-432	1	0
-107	1	0
-505	1	0
-88	1	0
-551	1	0
-107	1	0
-176	1	0
-79	2	0
-127	1	0
-56	1	0
-239	1	0
-218	1	0
-11	1	0
-27	1	0
-256	1	0
-130	1	0
-60	1	0
-586	1	0
-96	1	0
-58	1	0
-80	1	0
-135	1	0
-55	1	0
-219	5	2
-11	4	2
-30	4	1
-368	1	0
-106	1	0
-119	18	13
-146	1	0
-636	1	0
-156	1	0
-541	1	0
-107	1	0
-97	1	0
-61	1	0
-66	1	0
-7	1	0
-238	1	0
-105	1	0
-13	1	0
-667	1	0
-85	1	0
-70	1	0
-642	1	0
-635	1	0
-57	1	0
-249	1	0
-237	1	0
-162	1	0
-166	1	0
-380	1	0
-271	1	0
-215	2	0
-260	1	0
-160	1	0
-62	1	0
-6	1	0
-185	1	0
-48	1	0
-265	5	2
-87	1	0
-186	1	0
-62	1	0
-20	1	0
-135
-
-chain 1260177 chr17_random 2617613 + 853052 928106 chr17 81195210 - 43628 125104 962
-949	1	0
-3976	1	0
-155	1	0
-1382	1	0
-174	1	0
-249	1	0
-3481	16	14
-138	196	313
-72	88	86
-491	22816	3210
-803	32	32
-116	1	0
-346	10	9
-779	1	0
-620	1	0
-336	1	0
-2035	1	0
-1010	1	0
-1029	22	20
-97	39	114
-77	79	0
-5135	26	26
-535	1	0
-2026	21	19
-206	2	0
-254	19578	45525
-174	1	1
-34	1	1
-97	25	25
-137	6	5
-2443	14	9
-445	1	0
-116	1	0
-2150
-
-chain 1227372 chr17_random 2617613 + 986700 1051441 chr17 81195210 + 34570816 36317431 617
-294	0	3023
-141	196	196
-44	109	109
-53	147	147
-19	33	32
-101	42	42
-166	603	602
-128	1742	1742
-37	15134	15157
-88	7169	151654
-89	3878	5468
-37	1080	1080
-60	1668	1668
-37	1753	1753
-53	605	605
-36	506	39138
-695	47	47
-375	59	59
-312	20	20
-185	37	37
-144	7	7
-238	38	38
-357	101	101
-125	64	64
-712	185	184
-2677	120	1494235
-1055	15	15
-700	4	4
-1174	24	24
-888	9	3
-1590	0	3
-913	18	20
-1011	1	1
-26	1	1
-2545	1	1
-35	1	1
-1283	87	87
-45	432	432
-149	418	418
-46	284	284
-2	3	3
-30	1838	1839
-89	540	540
-32	511	512
-48	2400	2403
-39	3223	3228
-39	360	360
-49	178	178
-59
-
-chain 1028733 chr17_random 2617613 + 2262901 2274699 chr17 81195210 - 1281214 1293541 2373
-276	161	161
-1171	1	0
-181	1	0
-943	1	0
-423	1	0
-384	47	47
-111	466	1042
-106	31	31
-75	4	4
-63	20	16
-142	1	0
-59	1	0
-607	1	0
-135	1	0
-31	1	0
-82	1	0
-266	1	0
-76	1	0
-5	4	2
-41	1	0
-52	1	0
-985	1	0
-87	1	0
-4	1	0
-114	1	0
-175	1	0
-30	1	0
-140	2	0
-22	1	0
-130	1	0
-239	1	0
-766	1	0
-203	1	0
-68	2	0
-252	1	0
-300	4	2
-377	1	0
-735	1	0
-279	5	2
-91	1	0
-66	1	0
-159	1	0
-7	1	0
-562
-
-chain 931587 chr17_random 2617613 + 978106 1010959 chr17 81195210 + 36277154 36406169 991
-1048	10	12
-382	0	1
-199	22	22
-381	8	8
-56	66	66
-80	176	176
-73	27	27
-90	32	32
-166	31	209
-634	0	4
-1199	65	65
-56	27	27
-255	27	27
-50	1	7
-422	5	5
-61	4	0
-80	311	311
-40	144	144
-53	3450	47979
-41	18030	69497
-201	21	0
-219	1	0
-310	0	1
-3136	0	1
-510	50	52
-321	3	0
-279
-
-chain 813092 chr17_random 2617613 + 1807252 1826317 chr17 81195210 + 22246129 22262163 2589
-338	20	20
-223	15	15
-164	162	162
-54	59	60
-73	230	230
-52	48	48
-50	66	66
-54	49	49
-257	14	14
-103	22	22
-96	5	5
-357	121	121
-100	88	88
-108	94	94
-490	34	34
-81	27	27
-54	82	82
-80	138	138
-128	12	12
-262	24	21
-199	35	35
-263	80	80
-84	52	52
-185	16	16
-75	113	113
-160	99	99
-70	27	27
-84	49	49
-59	25	25
-133	30	30
-64	45	45
-304	25	25
-986	74	74
-160	13	13
-209	22	22
-54	43	43
-61	156	156
-54	6	6
-77	5	5
-86	85	85
-117	48	165
-381	74	74
-262	32	32
-165	71	71
-57	95	95
-89	31	31
-114	140	140
-117	216	216
-77	5	5
-52	442	441
-185	60	60
-363	22	22
-179	11	11
-259	197	197
-118	35	35
-108	60	60
-61	61	61
-137	50	50
-53	56	56
-269	161	161
-106	103	105
-56	8	8
-368	41	41
-47	3145	0
-401	42	42
-90	23	23
-151	73	73
-81	148	146
-351
-
-chain 788653 chr17_random 2617613 + 1298766 1307227 chr17 81195210 - 44798207 44806654 6145
-463	1	0
-2422	0	1
-90	14	0
-75	0	1
-397	0	1
-64	1	1
-30	0	1
-202	1	0
-1329	2	0
-1396	1	0
-668	0	1
-280	45	45
-980
-
-chain 597412 chr17_random 2617613 + 807879 2303216 chr17 81195210 - 0 1281216 430
-180	1676	138
-25553	1	0
-149	14	14
-1938	1	0
-350	32	32
-1230	1	0
-3	1	0
-6237	1	0
-45	2	2
-6514	1	0
-228	662945	0
-7897	0	1
-2396	1	0
-1101	17	0
-41	1	1
-355	0	52
-50	18	1
-41	0	68
-84	34	0
-4918	0	1
-717	0	1
-313	1	1
-42	1	1
-73	29	31
-205	58	0
-414	1	1
-64	1	1
-959	1	1
-17	1	1
-2276	1	0
-739	0	1
-418	11	49
-1541	0	1
-3494	7	13
-1281	21	21
-1738	1	191
-26	0	38
-40	0	77
-67	5	5
-11	1	75
-55	2266	0
-112	47	9
-78	38	0
-24	1	1
-80	5	5
-551	0	5
-87	1	1
-35	1	1
-54	119	195
-74	1	1
-957	15	15
-64	1277	306
-91	1	1
-35	1	1
-820	48	67
-330	0	1
-2794	1	0
-1127	1	1
-19	0	5
-1483	715858	1169096
-78	1	0
-529	1	0
-25	1	0
-200	1	0
-643	2	0
-450	2	0
-211	1	0
-380	2	2
-180	2	1
-32	1	0
-246	1	0
-61	1	0
-5	1	0
-351	1	0
-37	1	0
-304	1	0
-18	1	0
-109	1	0
-16	1	0
-200	1	0
-105	1	0
-37	1	0
-376	1	0
-108	1	0
-91	1	0
-394	1	0
-20	1	0
-1014	32	30
-21	2	1
-34	1	0
-230	26	26
-941	1	0
-188	1	0
-610	1	0
-555	1	0
-303	1	0
-509	157	157
-169	22	22
-101	1	0
-501	1	0
-140	1	0
-78	2	1
-22	1	0
-39	6	5
-62	94	94
-593	114	111
-260	120	120
-362	1	0
-697	0	1
-123	28	28
-402	36	36
-904	1	0
-50	1	0
-379	1	0
-256	25	25
-23	17	17
-53	27	27
-556	1	0
-409	1	0
-106	1	0
-276	24	24
-35	2	0
-252	32	32
-213	4	4
-70	2	0
-27	4	2
-82	1	0
-17	1	0
-639	1	0
-172	11	7
-10	1	0
-76	1	0
-1582	1	0
-275	1	0
-21	1	0
-17	4	2
-66	1	0
-1653	1	0
-19	3	3
-139	179	179
-76	2	2
-60	1	0
-226	1	0
-538	1	0
-346	4	4
-42	25	25
-1319	1	0
-261	1	0
-512	1	0
-69	1	0
-480	2	0
-388	8	7
-305	5	5
-64	2	2
-846
-
-chain 590397 chr17_random 2617613 + 1317586 1323861 chr17 81195210 - 44817018 44823295 6400
-2259	1	0
-955	0	1
-2132	0	1
-744	0	1
-184
-
-chain 365975 chr17_random 2617613 + 1296053 1313819 chr17 81195210 + 45621804 45639993 6832
-81	12	44
-148	0	6
-401	61	62
-589	32	30
-259	39	57
-53	103	103
-231	127	131
-59	7954	7632
-45	980	978
-16	142	143
-82	46	46
-363	247	934
-159	50	48
-341	33	34
-57	16	16
-304	65	65
-69	9	9
-136	66	66
-138	57	57
-70	10	10
-70	123	120
-143	52	52
-152	15	19
-320	53	52
-121	0	1
-161	98	108
-97	59	59
-205	127	125
-55	11	11
-56	30	30
-88	43	43
-512	45	43
-125	143	136
-165	48	48
-56	24	24
-161	114	115
-364	40	40
-240
-
-chain 323854 chr17_random 2617613 + 753664 757726 chr11 135006516 + 51394886 51398944 206195
-84	571	570
-807	3	1
-2082	1	0
-514
-
-chain 193433 chr17_random 2617613 + 495545 497612 chr17 81195210 + 41377728 41379794 617459
-55	1	0
-1306	28	28
-677
-
-chain 170984 chr17_random 2617613 + 1315777 1317585 chr17 81195210 - 44815210 44817018 741311
-1808
-
-chain 158566 chr17_random 2617613 + 1808012 1818883 chr17 81195210 + 22251644 22262630 5258
-162	209	210
-87	88	88
-32	270	270
-48	855	855
-36	185	185
-88	888	888
-37	888	888
-35	263	263
-80	85	85
-51	276	276
-47	20	20
-46	329	329
-27	350	350
-4	5	5
-21	413	412
-25	986	986
-74	458	458
-43	137	137
-80	228	228
-85	546	663
-9	10	10
-55	262	262
-32	293	293
-68	116	116
-25	120	120
-109	148	148
-60	1	1
-67	6	4
-74	1	1
-7	134	134
-220	1	1
-65	1	1
-91	1	1
-62	186	186
-60
-
-chain 150869 chr17_random 2617613 + 749022 751008 chr11 135006516 + 51475668 51477652 852441
-306	379	377
-1301
-
-chain 148651 chr17_random 2617613 + 808184 809735 chr17 81195210 + 81137722 81139272 865111
-940	1	0
-610
-
-chain 145464 chr17_random 2617613 + 1314230 1315767 chr17 81195210 - 44813661 44815198 885049
-1537
-
-chain 120518 chr17_random 2617613 + 1343929 1345208 chr17 81195210 - 44843364 44844643 723183
-1279
-
-chain 116919 chr17_random 2617613 + 1353036 1364922 chr17 81195210 - 44845210 44857111 1380
-449	299	299
-31	164	164
-55	373	373
-449	9718	9733
-348
-
-chain 115845 chr17_random 2617613 + 508518 509981 chr17 81195210 - 39794017 39795500 1110103
-682	50	50
-270	0	4
-177	169	185
-115
-
-chain 114042 chr17_random 2617613 + 516500 517961 chr17 81195210 - 39794017 39795500 1127130
-682	50	50
-210	5	6
-54	0	6
-175	170	185
-115
-
-chain 113591 chr17_random 2617613 + 521388 522849 chr17 81195210 - 39794017 39795500 1131524
-58	0	1
-623	50	50
-210	5	6
-54	0	6
-175	171	185
-115
-
-chain 112548 chr17_random 2617613 + 503499 505329 chr17 81195210 - 39794017 39795500 1141710
-27	370	0
-655	50	50
-210	5	6
-54	0	7
-174	170	185
-115
-
-chain 92910 chr17_random 2617613 + 1642194 1643169 chr17 81195210 - 1314977 1315952 1374174
-975
-
-chain 86438 chr17_random 2617613 + 1345275 1346182 chr17 81195210 - 44844700 44845607 1472746
-907
-
-chain 80313 chr17_random 2617613 + 2609695 2610598 chr17 81195210 - 39794017 39794920 1580802
-682	50	50
-171
-
-chain 78741 chr17_random 2617613 + 1643269 1644095 chr17 81195210 + 79874782 79875608 1611354
-826
-
-chain 75472 chr17_random 2617613 + 1310578 1313579 chr17 81195210 - 44810007 44813007 188419
-53	282	282
-98	97	97
-59	205	205
-127	122	122
-30	88	88
-43	512	512
-45	125	125
-72	1	0
-70	165	165
-48	241	241
-114	364	364
-40
-
-chain 74354 chr17_random 2617613 + 1547620 1548395 chr8 146364022 - 2302524 2303299 1703290
-775
-
-chain 61189 chr17_random 2617613 + 1546707 1547351 chr8 146364022 + 144057273 144057917 2067192
-644
-
-chain 59362 chr17_random 2617613 + 751149 753548 chr1 249250621 - 248579195 248581575 182656
-35	2	1
-152	1	0
-15	1	0
-107	3	2
-74	1	0
-10	1	0
-19	1	0
-57	1	1
-48	3	1
-6	1	0
-107	12	330
-61	1	1
-51	357	35
-388	110	110
-84	38	38
-62	227	223
-116	106	105
-141
-
-chain 56858 chr17_random 2617613 + 1298104 1298766 chr17 81195210 - 44797535 44798197 1968612
-85	59	59
-518
-
-chain 56536 chr17_random 2617613 + 501286 502149 chr17 81195210 - 39794614 39795500 2243684
-85	50	50
-210	5	6
-54	0	7
-174	170	185
-115
-
-chain 55411 chr17_random 2617613 + 688273 689806 chr7 159138663 - 159114165 159114723 7844
-88	175	0
-148	458	0
-103	231	3
-111	117	3
-102
-
-chain 52941 chr17_random 2617613 + 1822234 1824166 chr17 81195210 - 58941545 58943477 1155
-887	1	1
-77	1	1
-300	1	1
-20	9	9
-133	1	1
-23	1	1
-59	1	1
-158	1	1
-91	1	1
-54	1	1
-112
-
-chain 52559 chr17_random 2617613 + 983839 1162005 chr17 81195210 - 44845659 46605886 726
-299	65	65
-117	68	68
-1986	9723	54270
-49	72036	1500609
-1027	6412	6412
-71	13528	13528
-50	11447	11447
-132	60546	169487
-42	528	528
-40
-
-chain 51097 chr17_random 2617613 + 1023443 1026449 chr17 81195210 + 34744258 34747264 8774
-47	375	375
-59	517	517
-37	389	389
-38	357	357
-101	125	125
-64	712	712
-185
-
-chain 49537 chr17_random 2617613 + 686221 687340 chr7 159138663 - 159114165 159114714 2581538
-393	570	0
-156
-
-chain 49422 chr17_random 2617613 + 2502237 2515076 chr17_gl000206_random 41001 + 6806 19645 760
-60	12323	12323
-456
-
-chain 46461 chr17_random 2617613 + 530697 531391 chr17 81195210 + 41399710 41400427 2769983
-115	170	185
-151	0	7
-77	5	6
-176
-
-chain 44819 chr17_random 2617613 + 1346282 1352646 chr17 81195210 + 36399842 36406169 117269
-158	113	113
-546	19	0
-337	0	1
-343	21	0
-219	1	0
-310	0	1
-3136	0	1
-510	1	1
-49	0	2
-321	1	0
-279
-
-chain 42351 chr17_random 2617613 + 1308282 1310091 chr17 81195210 - 44807710 44809519 659295
-50	341	341
-33	377	377
-65	214	214
-66	138	138
-57	150	150
-123	143	143
-52
-
-chain 41114 chr17_random 2617613 + 1307243 1308123 chr17 81195210 - 44806671 44807550 1295496
-142	82	82
-46	363	362
-247
-
-chain 38415 chr17_random 2617613 + 980212 983216 chr17 81195210 - 46382593 46436652 7347
-66	80	80
-176	73	73
-27	90	90
-32	166	166
-31	1833	52888
-65	56	56
-27	255	255
-27
-
-chain 37708 chr17_random 2617613 + 1313819 1314225 chr17 81195210 - 44813251 44813657 3332998
-406
-
-chain 34385 chr17_random 2617613 + 689365 745709 chr16 90354753 + 90179685 90235100 655
-111	4456	3661
-64	55	55
-25	28	28
-47	0	945
-90	45591	45393
-56	269	269
-34	5469	4540
-13	2	2
-32	0	48
-2
-
-chain 29758 chr17_random 2617613 + 1820296 1826385 chr17 81195210 + 22249775 22252718 80336
-37	643	643
-77	136	133
-51	3143	0
-44	74	74
-224	80	80
-64	79	79
-9	741	741
-39	82	82
-59	25	25
-56	358	358
-68
-
-chain 29219 chr17_random 2617613 + 1551349 1551651 chr17 81195210 + 81144397 81144699 5017519
-302
-
-chain 28762 chr17_random 2617613 + 686677 687796 chr7 159138663 - 159114165 159114714 2625478
-282	456	0
-111	3	3
-57	114	0
-96
-
-chain 26027 chr17_random 2617613 + 1296695 1298103 chr17 81195210 - 44796117 44797535 630440
-61	589	589
-32	259	269
-39	53	53
-103	231	231
-41
-
-chain 25589 chr17_random 2617613 + 1810180 1822057 chr17 81195210 + 22246679 22258671 5893
-31	6949	7063
-28	2666	2666
-60	580	580
-49	73	73
-37	1172	1173
-232
-
-chain 22463 chr17_random 2617613 + 503557 503790 chr17 81195210 - 39794076 39794309 8690008
-233
-
-chain 21299 chr17_random 2617613 + 1013035 1014722 chr17 81195210 + 34795732 34797419 1064
-59	517	517
-37	389	389
-38	357	357
-101	125	125
-64
-
-chain 20434 chr17_random 2617613 + 685587 686087 chr7 159138663 - 159114215 159114487 2822651
-209	248	20
-43
-
-chain 19692 chr17_random 2617613 + 2611651 2612116 chr17 81195210 - 39813091 39813524 10717347
-67	163	137
-78	68	62
-89
-
-chain 19589 chr17_random 2617613 + 2616810 2617276 chr17 81195210 + 41381686 41382119 10803726
-89	68	62
-77	165	138
-67
-
-chain 17762 chr17_random 2617613 + 852036 852257 chr5 180915260 - 51646 51969 938
-13	1	1
-60	1	1
-29	1	1
-13	0	102
-103
-
-chain 17600 chr17_random 2617613 + 1364922 1365125 chr17 81195210 - 46397651 46397854 1833
-172	1	1
-30
-
-chain 17149 chr17_random 2617613 + 1514626 1514877 chr1 249250621 + 547399 547650 3354419
-131	1	3
-101	2	0
-16
-
-chain 16567 chr17_random 2617613 + 2610699 2610873 chr17 81195210 - 39795026 39795200 13468304
-174
-
-chain 16365 chr17_random 2617613 + 1812948 1813633 chr17 81195210 + 22258959 22259644 44227
-99	181	181
-49	59	59
-25	227	227
-45
-
-chain 16348 chr17_random 2617613 + 525487 525673 chr11 135006516 + 62609095 62609281 13688187
-75	4	4
-107
-
-chain 14733 chr17_random 2617613 + 2605728 2605963 chr17 81195210 - 39813295 39813524 15353144
-78	68	62
-89
-
-chain 14711 chr17_random 2617613 + 556093 556262 chr11 135006516 - 72397235 72397404 15378622
-107	4	4
-58
-
-chain 14711 chr17_random 2617613 + 527846 528015 chr11 135006516 - 72397235 72397404 15378623
-107	4	4
-58
-
-chain 14711 chr17_random 2617613 + 512402 512571 chr11 135006516 - 72397235 72397404 15378624
-107	4	4
-58
-
-chain 14711 chr17_random 2617613 + 510910 511079 chr11 135006516 - 72397235 72397404 15378625
-107	4	4
-58
-
-chain 14711 chr17_random 2617613 + 494247 494416 chr11 135006516 - 72397235 72397404 15378626
-107	4	4
-58
-
-chain 14711 chr17_random 2617613 + 492878 493047 chr11 135006516 - 72397235 72397404 15378627
-107	4	4
-58
-
-chain 14711 chr17_random 2617613 + 519356 519525 chr11 135006516 + 62609112 62609281 15378630
-58	4	4
-107
-
-chain 14711 chr17_random 2617613 + 514467 514636 chr11 135006516 + 62609112 62609281 15378631
-58	4	4
-107
-
-chain 14711 chr17_random 2617613 + 492408 492577 chr11 135006516 + 62609112 62609281 15378632
-58	4	4
-107
-
-chain 13395 chr17_random 2617613 + 685879 686024 chr7 159138663 - 159114165 159114310 16961745
-145
-
-chain 12350 chr17_random 2617613 + 554102 554230 chr17 81195210 + 41401065 41401193 18472361
-128
-
-chain 11140 chr17_random 2617613 + 2611055 2611170 chr17 81195210 - 39795385 39795500 20498301
-115
-
-chain 11115 chr17_random 2617613 + 1365516 1365648 chr17 81195210 - 46613257 46613389 1914
-132
-
-chain 10814 chr17_random 2617613 + 689806 689963 chr7 159138663 - 159114495 159114652 3160720
-43	20	20
-94
-
-chain 10716 chr17_random 2617613 + 690046 690160 chr11 135006516 - 134823089 134823203 21297817
-114
-
-chain 10594 chr17_random 2617613 + 686107 686221 chr11 135006516 - 134823089 134823203 21541329
-114
-
-chain 10432 chr17_random 2617613 + 752965 753084 chr3 198022430 + 197944313 197944432 1419040
-26	27	27
-66
-
-chain 10233 chr17_random 2617613 + 751962 752152 chr1 249250621 - 25108929 25109119 2449036
-190
-
-chain 10215 chr17_random 2617613 + 298300 298405 chr17 81195210 - 41991981 41992086 2272776
-105
-
-chain 10088 chr17_random 2617613 + 2614941 2615048 chr11 135006516 - 72397235 72397342 22628945
-107
-
-chain 9967 chr17_random 2617613 + 687027 687133 chr7 159138663 - 159114173 159114279 19905170
-106
-
-chain 9953 chr17_random 2617613 + 1352829 1353036 chr17 81195210 - 44845003 44845210 3604154
-38	53	53
-37	50	50
-29
-
-chain 9937 chr17_random 2617613 + 2607755 2608553 chr17 81195210 + 41464708 41466209 22969163
-59	661	1364
-78
-
-chain 9782 chr17_random 2617613 + 685310 686656 chr7 159138663 - 159114165 159114714 2594423
-225	1079	282
-42
-
-chain 9490 chr17_random 2617613 + 268561 268666 chr17 81195210 + 39296306 39296411 8067183
-50	6	6
-49
-
-chain 9384 chr17_random 2617613 + 1808529 1810797 chr17 81195210 + 22256920 22261566 263516
-29	104	104
-28	50	50
-48	1976	4354
-33
-
-chain 9278 chr17_random 2617613 + 1333217 1333901 chr17 81195210 - 44832655 44833339 2515
-26	585	585
-73
-
-chain 9162 chr17_random 2617613 + 1819790 1824781 chr17 81195210 + 22261160 22263006 131478
-64	322	322
-59	818	816
-30	3642	499
-56
-
-chain 8930 chr17_random 2617613 + 507298 507390 chr17 81195210 + 41466131 41466223 25058540
-92
-
-chain 8739 chr17_random 2617613 + 1294354 1363161 chr17 81195210 - 46388680 46446941 1280
-36	59095	48559
-76	160	160
-63	250	250
-52	124	124
-61	4094	4092
-28	4719	4711
-49
-
-chain 7495 chr17_random 2617613 + 1514877 1514981 chr17 81195210 - 42613 42717 4053350
-104
-
-chain 7310 chr17_random 2617613 + 1352662 1353007 chr17 81195210 - 20840434 20840778 292042
-167	38	37
-53	37	37
-50
-
-chain 6706 chr17_random 2617613 + 687825 687939 chr7 159138663 - 159114173 159114287 10506562
-114
-
-chain 6456 chr17_random 2617613 + 673480 673547 chr11 135006516 - 134811854 134811921 22781013
-67
-
-chain 5049 chr17_random 2617613 + 752664 753185 chr1 249250621 - 248584104 248584621 921258
-110	84	84
-38	62	62
-7	119	119
-72	7	3
-22
-
-chain 5012 chr17_random 2617613 + 557502 557555 chr17 81195210 + 41382227 41382280 33565948
-53
-
-chain 4802 chr17_random 2617613 + 1345218 1345268 chr17 81195210 - 44844643 44844693 34312672
-50
-
-chain 4547 chr17_random 2617613 + 688053 688156 chr7 159138663 - 159114401 159114504 10358404
-103
-
-chain 4503 chr17_random 2617613 + 690214 690262 chr7 159138663 - 159114675 159114723 34814023
-48
-
-chain 4408 chr17_random 2617613 + 1808470 1808528 chr17 81195210 + 22261618 22261676 11976838
-58
-
-chain 4236 chr17_random 2617613 + 269418 269467 chr17 81195210 - 41933979 41934028 1349427
-49
-
-chain 3906 chr17_random 2617613 + 1365126 1365187 chr17 81195210 - 23109543 23109604 10221956
-61
-
-chain 3852 chr17_random 2617613 + 685196 685310 chr7 159138663 - 159114165 159114279 3139829
-114
-
-chain 3804 chr17_random 2617613 + 676798 676843 chr11 135006516 - 134814627 134814666 26257176
-33	6	0
-6
-
-chain 3734 chr17_random 2617613 + 1819749 1824493 chr17 81195210 + 22251604 22253205 550639
-41	1133	1133
-53	3451	308
-4	6	6
-56
-
-chain 3666 chr17_random 2617613 + 689649 689704 chr3 198022430 + 197891166 197891221 670
-55
-
-chain 3459 chr17_random 2617613 + 687133 687184 chr7 159138663 - 159114165 159114216 4526522
-51
-
-chain 3336 chr17_random 2617613 + 1365188 1365250 chr17 81195210 - 20853025 20853087 9938797
-62
-
-chain 3079 chr17_random 2617613 + 681792 681827 chr11 135006516 - 134820249 134820284 24010224
-35
-
-chain 2916 chr17_random 2617613 + 690160 690191 chr7 159138663 - 159114621 159114652 25187800
-31
-
-chain 2901 chr17_random 2617613 + 1010962 1011819 chr17 81195210 - 44844823 44845680 205824
-857
-
-chain 2668 chr17_random 2617613 + 837741 837773 chr8 146364022 + 31195 31227 1221
-32
-
-chain 2659 chr17_random 2617613 + 747955 747987 chr5 180915260 + 180755757 180755789 880
-32
-
-chain 2649 chr17_random 2617613 + 622962 622989 chr17 81195210 - 81153206 81153233 29165068
-27
-
-chain 2631 chr17_random 2617613 + 1252044 1252072 chr17 81195210 + 34548405 34548433 469
-28
-
-chain 2530 chr17_random 2617613 + 1100849 1100878 chr17 81195210 - 46384734 46384763 4689
-29
-
-chain 2422 chr17_random 2617613 + 621448 621568 chr17 81195210 - 81152835 81152952 7235512
-27	65	62
-28
-
-chain 2158 chr17_random 2617613 + 688361 688384 chr16 90354753 + 90179770 90179793 21906636
-23
-
-chain 2073 chr17_random 2617613 + 690420 690442 chr7 159138663 - 159114653 159114675 31315602
-22
-
-chain 1877 chr17_random 2617613 + 1533316 1533338 chr17_gl000206_random 41001 - 16469 16491 815
-22
-
-chain 1804 chr17_random 2617613 + 687361 687825 chr7 159138663 - 159114165 159114515 2659234
-54	381	267
-29
-
-chain 1771 chr17_random 2617613 + 742259 742283 chr1 249250621 - 248585388 248585412 123201
-24
-
-chain 1698 chr17_random 2617613 + 268509 268561 chr17 81195210 - 41933055 41933107 4387515
-52
-
-chain 1694 chr17_random 2617613 + 747513 747535 chr1 249250621 - 249115973 249115995 773
-22
-
-chain 1343 chr17_random 2617613 + 555358 555450 chr17 81195210 - 39728987 39729079 19263806
-92
-
-chain 1343 chr17_random 2617613 + 511667 511759 chr17 81195210 - 39728987 39729079 19263807
-92
-
-chain 1343 chr17_random 2617613 + 526316 526408 chr17 81195210 + 41466131 41466223 19263808
-92
-
-chain 1343 chr17_random 2617613 + 520168 520260 chr17 81195210 + 41466131 41466223 19263809
-92
-
-chain 1129 chr17_random 2617613 + 1019025 1019068 chr17 81195210 + 60348267 60348310 2834
-43
-
-chain 1082 chr17_random 2617613 + 686959 687027 chr7 159138663 - 159114561 159114629 2979122
-68
-
-chain 594 chr17_random 2617613 + 1548943 1548990 chr17_gl000206_random 41001 - 30268 30353 3713456
-4	9	47
-34
-
-chain 7055976638 chr18 76117153 + 0 76117153 chr18 78077248 + 10000 78016181 19
-15400898	1363998	3100000
-28218587	15	15
-5329636	47000	150000
-3667309	0	18
-16406890	28008	50000
-3388467	22000	50000
-2103304	3	0
-136125	7	9
-647	0	1
-1543	0	1
-25	0	1
-6	2	7
-19	0	2
-10	4	7
-9	2	4
-656	0	1
-358	0	1
-1625
-
-chain 404699 chr18_random 4262 + 0 4262 chr18_gl000207_random 4262 + 0 4262 116011
-4262
-
-chain 5307789368 chr19 63811651 + 11000 63806651 chr19 59128983 + 60000 59114839 21
-7286004	5000	50000
-1291194	5000	50000
-11767057	0	69160
-4058367	8000000	3100000
-20129228	0	2
-701	3	0
-347	1	1
-31	1	1
-1833	3	0
-1984	1	1
-47	1	1
-190	1	1
-34	1	1
-889	0	2
-1413	0	7
-2680	0	4
-375	0	1
-328	0	4
-15	0	1
-69	1	0
-3881	1	1
-36	0	12
-296	0	14
-1480	0	1
-233	1	1
-45	1	1
-1049	0	1
-1766	44	7
-220	3	0
-536	0	7
-352	8	8
-3603	1	1
-17	3	0
-697	1	0
-269	3	0
-974	6	5
-96	0	10
-1096	10	10
-1177	14	12
-110	3	3
-1028	12	9
-1090	1	0
-173	0	16
-1066	4	0
-4779	1	1
-42	1	1
-722	1	0
-548	2	2
-44	1	1
-424	54	54
-61	1	1
-59	1	1
-2086	0	15
-1500	1	0
-1754	2	0
-11209362
-
-chain 15150451 chr19_random 301858 + 142689 301858 chr19_gl000209_random 159169 + 0 159169 196
-159169
-
-chain 8748871 chr19_random 301858 + 0 92689 chr19_gl000208_random 92689 + 0 92689 377
-92689
-
-chain 14432273 chr1_random 1663265 + 444114 915337 chr1 249250621 - 104328377 105379619 206
-1802	63331	510
-7296	6958	14784
-7961	0	2
-631	19782	48350
-2466	1	1
-72	1	1
-281	2	2
-18	1	1
-2234	1	1
-23	2	1
-1869	0	2
-890	0	1
-2816	0	3
-59	12	12
-1298	1	1
-11	1	1
-294	214294	820733
-136815
-
-chain 10693564 chr1_random 1663265 + 965337 1079393 chr1 249250621 + 199645090 199759149 300
-3537	0	2
-1755	1	1
-38	1	1
-15918	1	0
-2372	0	1
-1251	34	34
-7007	1	6
-3552	1	1
-44	1	1
-799	1	1
-42	1	1
-3907	2	0
-1780	1	1
-49	1	1
-1586	2	0
-197	1	1
-37	1	1
-292	1	1
-47	1	1
-927	0	2
-549	1	1
-27	1	1
-595	1	1
-18	1	1
-291	0	2
-6685	1	0
-2369	1	0
-6503	13	13
-639	1	1
-70	1	1
-477	1	0
-1001	0	2
-1967	2	0
-3454	1	1
-26	1	1
-3144	0	4
-89	1	0
-6546	14	15
-6194	1	0
-5390	13	13
-196	1	0
-7401	1	9
-1242	1	0
-1702	1	0
-477	1	1
-61	0	1
-1487	1	0
-1276	1	0
-1950	9	0
-4681	0	2
-1332	1	0
-956
-
-chain 10110185 chr1_random 1663265 + 1464329 1570762 chr1_gl000191_random 106433 + 0 106433 317
-106433
-
-chain 6680210 chr1_random 1663265 + 198768 359123 chr1 249250621 + 1257620 1436018 467
-467	0	1
-41	0	1
-10	4	4
-930	2	3
-122	3	4
-138	66071	6986
-47	0	1
-945	0	1
-279	1	2
-508	0	1
-482	0	1
-1285	1	1
-40	1	1
-199	0	1
-207	1	1
-29	1	1
-1021	0	1
-1168	0	2
-388	0	1
-69	15	17
-195	4	4
-52	1	1
-9	1	3
-23	0	1
-284	0	1
-1485	15	16
-138	9	9
-27	44	5
-35	46	46
-97	0	1
-5	0	1
-734	0	3
-257	1	1
-18	1	1
-442	0	2
-51	4	0
-424	0	1
-134	1	1
-39	0	1
-22	1	1
-564	15	17
-469	0	3
-39	0	1
-22	2	2
-1076	0	1
-210	14	14
-166	0	1
-3264	1	0
-111	0	1
-309	19898	50666
-91	0	1
-116	0	1
-56	0	1
-152	0	1
-46	0	1
-51	0	1
-63	0	2
-420	4	5
-697	0	1
-2269	7	0
-48	1	1
-4086	0	2
-317	0	1
-49	0	1
-1795	0	1
-1147	1	1
-39	1	1
-1378	0	17
-477	2	0
-4457	1	1
-105	0	1
-1003	0	1
-232	1	2
-147	277	46717
-169	0	1
-37	1	1
-227	0	2
-651	1	0
-1805	1	1
-45	1	1
-498	1	0
-233	1	1
-29	1	1
-231	12	20
-2015	0	1
-20	1	1
-653	0	1
-12	0	1
-17	1	1
-139	0	1
-10	0	1
-22	0	1
-37	16	19
-38	0	5
-54	0	1
-437	0	1
-539	2	0
-1067	0	1
-1042	1	0
-2434	10	0
-256	133	0
-839	0	1
-267	0	1
-640	1	1
-35	1	1
-1351	15	15
-1316	1	1
-31	0	1
-1986	5	5
-1179	0	1
-3153	1	0
-1165	0	1
-22	0	1
-56	1	1
-27	1	1
-77	0	1
-81	15	17
-111	1	1
-44	0	1
-2254	1	0
-320	1	0
-2368	0	1
-26	0	1
-407	5	6
-2982	0	4
-852	0	5
-703	1	0
-191	2	3
-73	5	5
-72
-
-chain 4901563 chr1_random 1663265 + 676697 728522 chr1 249250621 - 205721991 205773795 637
-1664	1	0
-299	1	0
-1113	4	0
-100	1	0
-1522	1	1
-46	1	1
-83	1	1
-30	1	1
-62	1	1
-46	1	1
-1990	1	1
-41	1	1
-1403	0	4
-1148	0	5
-10134	1	1
-21	1	1
-1479	1	0
-1499	9	9
-3057	0	2
-137	6	0
-1251	2	0
-21	1	1
-897	5	4
-2851	1	0
-399	0	2
-624	6	5
-440	1	0
-5	1	0
-2953	1	0
-480	9	0
-2793	36	35
-6791	1	0
-4870	1	0
-1478
-
-chain 4504833 chr1_random 1663265 + 1205412 1353281 chr1 249250621 - 133273039 133340206 679
-3980	0	1
-79	1	1
-34	1	1
-916	4	6
-1818	34	28
-51	21	16
-5	1	0
-5	1	0
-4	1	0
-11	1	0
-28	1	0
-8	1	0
-8	1	0
-1366	1	1
-38	0	1
-7507	0	1
-3084	2	0
-2569	1	0
-20	1	0
-8	1	0
-10	21	16
-51	10	10
-3979	6	5
-2086	1	0
-5466	0	1
-27	1	1
-1117	1	0
-66	1	0
-23	1	0
-2070	0	1
-67	1	0
-2611	1	0
-9	1	0
-23	23	18
-577	97925	17254
-5929	0	1
-1948	1	0
-72	0	1
-1365	60	62
-706
-
-chain 3984524 chr1_random 1663265 + 1620762 1663230 chrX 155270560 - 27920664 27963158 751
-107	0	1
-696	27	12
-658	0	12
-1440	0	2
-671	0	2
-506	0	3
-806	0	1
-4759	0	12
-131	1	0
-848	1	0
-213	0	8
-2046	1	0
-4979	0	1
-2482	1	0
-1502	1	0
-3474	0	4
-782	0	1
-12366	1	0
-3969
-
-chain 2698055 chr1_random 1663265 + 6164 122978 chr1 249250621 - 139553697 139584554 1020
-486	1	1
-19	9	9
-297	1	1
-73	1	1
-341	1	0
-105	1	0
-286	47997	0
-689	1	1
-48	1	1
-53	0	2
-1870	1	1
-39	1	1
-1682	0	39
-470	8	9
-691	1	0
-370	1	1
-24	1	1
-356	0	1
-1496	9599	84
-28	0	1
-7	4	0
-131	0	1
-66	932	181
-88	9	11
-10	7	0
-10	8	5
-5	0	3
-76	27759	26
-44	3	0
-26	0	2
-6	1	1
-59	3	1
-121	2	4
-4990	1	0
-672	0	1
-1487	1	1
-39	1	1
-1691	0	1
-36	10	10
-3503	1	1
-46	1	1
-4128	0	1
-1818	0	5
-1107	16	16
-841
-
-chain 2474973 chr1_random 1663265 + 1129393 1155387 chr1 249250621 + 229232478 229258468 1104
-3505	1	1
-44	1	1
-5232	4	0
-17207
-
-chain 2468882 chr1_random 1663265 + 1280682 1387454 chr1 249250621 - 133163307 133238928 735
-149	0	1
-7073	122	124
-1799	1	1
-43	1	1
-5594	24	23
-60	12182	28596
-3279	1	0
-571	21	21
-1080	1	0
-10	0	2
-1138	1	0
-3484	1	0
-1689	0	8
-810	42350	1
-1088	1	1
-21	1	0
-78	30	29
-746	0	2
-2729	1	0
-2088	0	3
-1949	966	174
-31	9	0
-12	16	16
-29	0	4
-13	100	98
-53	1884	0
-16	1	0
-5	0	1
-18	3916	1388
-1729	0	1
-1373	1	0
-102	1	0
-21	1	0
-4	1	0
-7	1	0
-38	2	0
-48	1	0
-525	5	4
-645	5	5
-1189	1	0
-1911	4	0
-69	8	8
-24	5	4
-284	1	0
-1481
-
-chain 2064841 chr1_random 1663265 + 247141 392880 chr1 249250621 - 247850669 247948213 608
-351	1	0
-965	0	1
-35	0	1
-248	0	1
-122	0	1
-1194	11	11
-580	3	5
-969	0	1
-425	5	5
-25	1	1
-586	1	1
-77	1	1
-1895	1	1
-37	1	2
-253	0	1
-560	1	1
-62	1	1
-74	1	1
-27	1	1
-90	31631	11346
-887	0	40
-759	32	0
-2596	0	1
-308	1	0
-37	0	1
-40	0	1
-346	17	19
-89	2	2
-34	1	2
-44	0	2
-35	0	1
-20	0	1
-260	0	1
-3009	1	1
-30	0	1
-5	10	12
-104	1	1
-48	0	1
-67	13	15
-1226	0	1
-111	7	7
-31	0	1
-47	1	3
-13	3	5
-38	7	10
-7	0	2
-48	0	1
-110	1	0
-623	0	2
-241	1	1
-47	1	1
-1601	0	1
-582	13	21
-1128	2	0
-348	4	4
-28	22	23
-481	0	2
-30	1	1
-628	0	1
-96	0	1
-30	0	1
-78	17	173
-64	55865	28961
-69	13	14
-498	0	1
-1593	0	4
-183	26	27
-337	1	0
-1433	0	1
-6191	0	2
-2435	0	1
-3451	540	0
-83	695	0
-1318	5	5
-21	1	1
-526	0	1
-833	0	1
-144	0	1
-427	8	8
-235	1	2
-297	1	1
-34	0	1
-250	0	3
-1007	0	1
-1403	1	1
-37	1	1
-355	1	1
-6	0	2
-94	1	1
-278	2	2
-5	0	1
-20	1	1
-667	24	24
-1858	10	12
-146	8	7
-2002	0	1
-284	0	1
-1233	0	1
-840	11	0
-914	2	0
-122	1	1
-26	0	2
-118
-
-chain 1850028 chr1_random 1663265 + 76914 101906 chr1 249250621 - 139621990 139717568 1363
-3916	0	1
-77	20	20
-26	0	856
-764	17	16
-12	1	0
-295	1	0
-2648	2870	23264
-250	997	50331
-2203	0	5
-797	1	0
-2197	1	1
-117	7	8
-429	1	0
-7345
-
-chain 1707631 chr1_random 1663265 + 501749 626697 chr1 249250621 + 144188000 145316961 852
-223	42	42
-236	22	22
-242	91	103
-199	8	8
-102	112	112
-50	126	126
-290	32	32
-213	45	45
-125	1	1
-56	1	1
-82	1	1
-27	13	13
-71	5	5
-493	3	3
-15	1	1
-248	1	1
-44	1	1
-65	1	1
-52	1	1
-169	1	1
-82	1	1
-292	1	1
-83	0	1580
-458	1	1
-16	1	1
-478	5	5
-568	23	17
-634	1	1
-46	1	1
-50	14	14
-864	31	61
-55	23320	364967
-85	1	1
-107	1	1
-376	1	1
-20	0	1
-195	10	10
-150	1	1
-35	1	1
-274	5	5
-143	1	0
-862	7	0
-20	1	0
-504	1	1
-25	1	1
-238	1	1
-36	1	1
-139	0	1
-25	1	1
-157	8	8
-60	16	16
-59	17	17
-285	0	1
-120	1	1
-69	1	1
-509	1	1
-59	1	1
-162	0	322
-70	5	5
-2169	1	1
-31	1	1
-224	1	1
-36	1	1
-76	1	0
-5	5	0
-109	6	6
-139	5	3
-65	0	20
-360	47	48
-86	18	17
-149	44	44
-76	54	55
-196	38	38
-139	139	6280
-107	1	1
-95	0	1
-46	1	1
-91	1	1
-18	1	1
-62	11	11
-511	0	1
-106	1	0
-505	0	2
-443	9	9
-519	112	112
-396	1	1
-26	1	1
-225	1	1
-57	1	1
-502	1	0
-485	1	1
-105	0	2
-146	1	1
-41	1	1
-203	1	1
-45	1	1
-62	5	5
-850	1	1
-55	2	2
-215	1	1
-45	1	1
-474	0	3
-19	1	1
-2337	1	1
-34	1	1
-148	1	0
-159	1	1
-32	1	1
-64	0	4
-849	1	1
-34	1	1
-126	38816	272842
-32	0	140
-3176	18	17
-6689	1	0
-274	0	1
-1449	0	1
-1312	1	0
-1861	8888	417910
-92	172	6531
-148	0	2
-213	1	1
-30	1	1
-227	1	1
-62	6	0
-276	1	1
-35	1	1
-94	14	14
-325	5	5
-118	1	1
-81	1	1
-234	4	0
-15	1	1
-243	1	1
-39	1	1
-117	1	1
-35	1	1
-83	1	1
-64	5	5
-55	13	13
-61	11	11
-175	1	1
-27	1	1
-134	1	1
-60	1	1
-64	1	1
-87	1	1
-615	1	1
-22	1	1
-201	5	5
-48	1	1
-117	1	1
-23	3	3
-319	6	6
-156	0	1
-25	1	1
-215	13	13
-97	14	14
-113	0	3
-35	1	1
-65	15	15
-480	0	1
-636	1	1
-107	1	1
-753	1	1
-43	1	1
-861	17	16
-470	1	1
-38	1	1
-579	1	1
-25	1	1
-224	1	1
-71	1	1
-266	36	36
-167	88	88
-400	53	53
-131	6	5
-220	22	19
-317	23	23
-109	95	101
-73	0	4726
-208	28	28
-293
-
-chain 1680348 chr1_random 1663265 + 1245440 1263421 chr1 249250621 + 116101959 116120000 1475
-441	0	14
-728	0	2
-1146	2	0
-1829	6	6
-93	3	2
-2916	0	6
-2013	0	47
-369	1	1
-27	9	0
-37	1	1
-200	1	0
-2285	0	2
-3527	1	1
-24	0	1
-1001	0	1
-1195	1	1
-39	1	1
-85
-
-chain 1335863 chr1_random 1663265 + 231796 246037 chr4 191154276 - 30408128 30422371 1784
-3391	6	6
-562	7	7
-5976	2	3
-4144	10	11
-143
-
-chain 1170727 chr1_random 1663265 + 577933 590476 chr1 249250621 + 144898104 144910646 2036
-1896	48	48
-2779	1	0
-7128	45	45
-646
-
-chain 1143882 chr1_random 1663265 + 1330802 1343100 chr1 249250621 - 133251270 133263558 2093
-1050	1	1
-51	1	1
-237	1	1
-35	1	1
-514	16	12
-76	9	1
-1642	12	12
-53	0	1
-3766	0	1
-40	1	1
-1513	0	1
-195	11	11
-135	26	26
-2627	1	0
-284
-
-chain 988809 chr1_random 1663265 + 564355 574807 chr1 249250621 - 104390169 104400621 2516
-59	1	2
-5994	1	1
-45	1	1
-3985	3	3
-42	1	0
-320
-
-chain 957971 chr1_random 1663265 + 256162 266426 chr1 249250621 + 1291904 1302191 2686
-83	0	1
-585	0	1
-1018	0	1
-18	1	1
-59	16	16
-1569	0	1
-69	1	0
-35	0	1
-36	1	1
-176	0	1
-48	0	1
-56	2	3
-41	0	1
-160	17	1
-461	13	21
-174	0	4
-517	7	7
-141	4	4
-89	0	1
-1155	1	0
-370	7	7
-143	1	0
-1019	22	22
-1177	0	1
-607	0	16
-86	0	3
-279
-
-chain 895962 chr1_random 1663265 + 196343 223209 chr1 249250621 - 247894293 247990621 2587
-108	25	24
-131	0	1
-299	0	1
-137	44	45
-51	0	1
-572	0	1
-406	36	37
-508	2162	63455
-80	5	8
-86	0	1
-61	0	1
-31	1	0
-165	14	15
-78	75	78
-234	0	1
-152	13	15
-849	0	1
-1798	12505	20653
-3495	0	1
-43	0	1
-1944	1	1
-26	1	1
-169	0	1
-365	0	1
-196
-
-chain 884318 chr1_random 1663265 + 4444 145186 chr1 249250621 + 109546538 109651856 1047
-123	47	1183
-818	1	1
-75	1	0
-22	1	1
-455	18927	20784
-855	1	0
-74	12001	11300
-2581	2	2
-31	0	1
-81	1	0
-24	1	1
-123	1	0
-147	0	1
-45	0	1
-26	0	1
-9	1	0
-12	2330	786
-22	41	53
-127	1706	714
-3729	74524	39329
-68	5	7
-3088	2	2
-15	5	6
-14	0	2
-657	1	1
-37	1	1
-2140	1	0
-3034	1	0
-42	1	1
-446	0	1
-55	2	2
-30	1	1
-391	1	1
-35	1	1
-982	3	0
-123	1	1
-28	0	4
-1503	1	0
-1159	0	3
-1464	0	1
-838	1	1
-47	1	3
-162	1	0
-139	1	1
-10	0	1
-2424	6	6
-448	1	0
-846	5	0
-1509
-
-chain 739113 chr1_random 1663265 + 68329 76740 chr1 249250621 + 109654512 109662863 6250
-254	1	0
-27	1	1
-746	1	0
-315	19	19
-163	42	2
-51	3	1
-44	1	1
-592	0	1
-216	1	1
-34	1	1
-2323	10	0
-10	236	236
-125	1	0
-806	213	213
-828	6	0
-82	6	6
-1253
-
-chain 688441 chr1_random 1663265 + 605533 614556 chr1 249250621 + 144612760 144812114 1498
-76	1	1
-70	1	1
-73	4	2
-40	0	2
-159	1	1
-56	2	0
-911	1	1
-63	1	1
-84	9	1
-149	1	1
-21	1	0
-606	1	1
-21	3	3
-132	12	10
-368	1	1
-26	1	1
-50	1	1
-65	1	1
-57	1	1
-44	1	1
-279	0	1
-34	0	4
-7	1	1
-308	0	32
-331	1	1
-84	1	1
-286	1	1
-35	1	1
-59	8	8
-146	1	1
-237	1	1
-52	1	1
-35	2	0
-40	1	1
-53	3	3
-103	1	1
-397	1	1
-59	1	0
-33	1	1
-587	11	11
-219	10	10
-71	5	5
-62	1	1
-38	1	1
-240	1	1
-70	1	1
-85	12	12
-86	413	190724
-207	1	0
-825	186	186
-172
-
-chain 590572 chr1_random 1663265 + 516651 523401 chr1 249250621 - 104651805 104658532 8996
-157	1	1
-17	1	1
-395	1	1
-65	1	1
-187	0	9
-21	1	1
-62	16	16
-110	2	0
-205	1	0
-43	1	1
-248	1	1
-59	4	2
-725	1	1
-49	1	1
-455	1	1
-106	1	1
-450	1	1
-133	0	2
-383	1	1
-37	1	1
-178	4	4
-70	1	1
-85	2	2
-43	1	1
-56	1	1
-22	24	0
-30	1	1
-64	1	1
-21	1	1
-198	1	1
-67	1	1
-58	1	0
-79	7	6
-74	1	1
-79	1	0
-26	1	1
-202	15	15
-352	2	2
-16	1	1
-51	22	19
-574	0	1
-87	1	1
-46	1	1
-88	1	1
-27	1	1
-120
-
-chain 526301 chr1_random 1663265 + 1264935 1361969 chr1 249250621 + 116056429 116101915 1232
-69	0	1
-30	1	1
-2663	2	0
-4185	1	0
-229	1	0
-25	1	1
-1104	1	0
-604	4	0
-1264	1	0
-2613	1	1
-21	1	0
-12	1	13
-2785	72844	21309
-397	19	2
-2203	1	1
-31	1	1
-658	1	1
-27	1	1
-923	9	9
-168	1	1
-46	0	2
-2502	43	43
-879	17	17
-644
-
-chain 506365 chr1_random 1663265 + 1399143 1404500 chr1 249250621 - 133194419 133199775 28136
-3175	1	0
-1447	0	1
-512	1	0
-221
-
-chain 482769 chr1_random 1663265 + 211415 216543 chr1 249250621 - 247889067 247894197 45886
-70	2	3
-905	2	3
-1091	1	1
-23	1	1
-302	15	14
-393	1	1
-24	1	1
-1961	0	1
-336
-
-chain 474976 chr1_random 1663265 + 1295676 1399043 chr1 249250621 + 115999419 116093083 1267
-571	10	10
-627	7	6
-46	1	1
-3095	0	1
-960	0	1
-608	11	10
-426	39	35
-2035	1	1
-23	1	1
-1866	17	18
-79	1	1
-1530	63368	32589
-866	110	110
-100	53	53
-1884	40	40
-3775	15606	36683
-2322	14	14
-145	49	49
-296	96	96
-297	0	2
-465	58	58
-262	22	22
-182	0	1
-638	1	0
-764
-
-chain 456897 chr1_random 1663265 + 1317 37745 chr1 249250621 + 109592282 109609521 6704
-1178	0	1
-16	1	0
-10	0	1
-4	1	1
-245	7763	188
-27	1	1
-1155	1	1
-91	4156	3450
-1810	51	51
-50	9	10
-567	3839	4491
-37	6346	0
-128	0	2
-29	50	48
-45	1519	155
-6	2	0
-9	10	6
-246	1806	0
-18	1	0
-5	2068	31
-2018	2	2
-20	3	3
-833	1	0
-101	1	0
-149
-
-chain 426748 chr1_random 1663265 + 63710 68210 chr1 249250621 - 139547929 139552428 99412
-1542	1	0
-2957
-
-chain 353264 chr1_random 1663265 + 462791 467071 chr1 249250621 + 144608404 144612698 156569
-71	50	50
-33	29	29
-226	10	10
-526	66	67
-55	50	50
-414	5	5
-57	46	58
-57	12	12
-254	1	1
-25	1	1
-52	13	13
-638	16	16
-579	1	1
-60	1	1
-178	1	1
-79	1	0
-35	0	3
-111	1	1
-43	1	1
-264	1	0
-119	1	1
-15	0	1
-76	1	0
-5
-
-chain 327229 chr1_random 1663265 + 1409275 1412904 chr1 249250621 + 115977641 115981270 200837
-2640	156	155
-473	0	1
-360
-
-chain 312923 chr1_random 1663265 + 1319916 1393318 chr1 249250621 + 115926067 115986980 1722
-1418	1	0
-1389	1	0
-1620	0	1
-374	1	0
-1361	0	1
-1994	1	0
-827	0	6
-1784	56909	44431
-253	1	0
-12	2	0
-8	24	14
-5344	2	0
-76
-
-chain 244562 chr1_random 1663265 + 478502 503782 chr1 249250621 - 100680024 100953393 1328
-106	13	13
-478	55	55
-310	1	1
-23	1	1
-376	1	1
-61	1	1
-1100	10	10
-810	5	0
-53	1	1
-119	1	1
-44	1	0
-94	100	32051
-60	5	5
-744	1	1
-87	1	1
-44	2	0
-53	11	5
-584	2	2
-30	0	17
-73	1	1
-49	1	1
-456	8	8
-796	19	19
-166	1	1
-42	1	1
-105	1	1
-38	1	1
-55	1	1
-80	1	1
-293	2	2
-19	1	1
-550	5637	9366
-68	24	22
-103	1	1
-35	0	1
-102	1	1
-39	6	0
-388	9	9
-21	1	1
-338	27	27
-500	4	0
-117	5	5
-271	1	1
-38	1	1
-273	3	3
-16	3	3
-80	1	1
-63	1	1
-130	1	1
-18	1	1
-204	1	1
-45	1	1
-141	1	1
-112	1	1
-75	1	0
-75	4	4
-83	2	0
-854	5	5
-104	0	4
-12	1	1
-351	1	1
-40	1	1
-102	4779	217183
-40	502	502
-31	0	12
-58	311	311
-110	52	52
-78	1	1
-46	535	535
-45
-
-chain 239113 chr1_random 1663265 + 455713 471283 chr1 249250621 + 144877306 144889304 5703
-73	1	0
-944	0	1
-2741	1	1
-77	1770	1206
-12	1449	338
-10	71	1301
-14	10	145
-26	4281	1018
-2672	0	1
-1418
-
-chain 228041 chr1_random 1663265 + 450807 453388 chr1_gl000192_random 547496 + 525635 528523 474030
-521	25	26
-256	4	316
-195	1	0
-183	4	0
-249	48	48
-915	19	18
-161
-
-chain 219405 chr1_random 1663265 + 8071 23476 chr1 249250621 + 109602419 109665881 23204
-1669	2217	48069
-1950	5	1
-213	6609	8813
-681	1	0
-580	0	1
-296	37	38
-248	0	4
-301	31	31
-143	38	38
-386
-
-chain 219231 chr1_random 1663265 + 32127 34517 chr1 249250621 - 139682423 139684814 491274
-85	27	27
-14	0	1
-204	5	5
-63	24	24
-1968
-
-chain 210320 chr1_random 1663265 + 459650 474308 chr1_gl000192_random 547496 + 522489 531711 22108
-267	0	10
-1175	5	1
-48	0	2
-16	3	3
-119	0	12
-37	12	12
-1340	8711	3256
-34	0	2
-58	1	0
-38	1	0
-351	5	5
-486	17	15
-158	81	81
-76	1	1
-36	1	1
-69	12	13
-1500
-
-chain 207966 chr1_random 1663265 + 29704 55292 chr1 249250621 + 109529352 109557857 7568
-742	273	273
-560	0	1
-232	17541	20458
-729	2	2
-97	3	3
-89	1	1
-68	0	1
-28	1	1
-2575	2	0
-59	1	1
-2585
-
-chain 202325 chr1_random 1663265 + 27243 45056 chr1 249250621 - 139669260 139678536 8944
-1432	157	157
-50	45	45
-677	2608	49
-27	8791	867
-266	9	9
-169	1	1
-62	1	1
-67	7	5
-28	1	1
-1619	22	22
-41	127	127
-21	1	1
-40	2	1
-32	1	1
-362	0	1949
-1147
-
-chain 199687 chr1_random 1663265 + 18553 20627 chr1 249250621 + 109595202 109597276 600797
-2074
-
-chain 171508 chr1_random 1663265 + 447628 491985 chr1 249250621 + 148535207 148566609 6481
-121	14	14
-517	0	4
-507	1	0
-74	1	1
-41	0	1
-61	4541	11291
-1073	1	0
-718	70	44
-66	31371	11607
-690	1	1
-115	1	1
-61	1	1
-70	1	1
-57	0	4
-54	1	1
-41	2	6
-28	5	77
-73	1	1
-34	5	5
-887	1	0
-427	1	1
-7	0	5
-40	1	1
-59	1	1
-47	1	1
-121	9	9
-57	2	0
-362	1	1
-48	4	4
-429	1	1
-28	1	1
-160	1	1
-92	5	0
-15	0	5
-15	1	1
-139	5	5
-37	1	1
-87	1	1
-40	1	1
-253	1	1
-35	1	1
-197	1	1
-69	1	1
-114	1	1
-79	1	1
-51
-
-chain 170629 chr1_random 1663265 + 474420 479154 chr1 249250621 - 104365477 104643040 2652
-3982	697	273526
-55
-
-chain 143194 chr1_random 1663265 + 449166 450695 chr1 249250621 - 104373413 104374943 899312
-167	0	1
-362	11	11
-989
-
-chain 141808 chr1_random 1663265 + 195186 230464 chr1 249250621 + 1361949 1390000 8100
-66	0	1
-865	27548	20313
-75	1	1
-163	2	2
-2267	0	2
-1549	0	2
-37	1	1
-597	1	1
-28	1	1
-269	14	19
-59	1	1
-20	1	1
-734	2	0
-977
-
-chain 137395 chr1_random 1663265 + 446016 447466 chr1 249250621 + 144922370 144923820 937713
-1450
-
-chain 120082 chr1_random 1663265 + 1413004 1414278 chr1 249250621 + 115908963 115910237 1071399
-1274
-
-chain 110577 chr1_random 1663265 + 0 1193 chr5 180915260 + 33390295 33391489 1161255
-153	0	1
-942	4	4
-94
-
-chain 101176 chr1_random 1663265 + 442945 444014 chr1 249250621 - 104338746 104339815 1265508
-1069
-
-chain 61431 chr1_random 1663265 + 9891 10535 chr1 249250621 + 109697165 109697809 2020878
-644
-
-chain 48091 chr1_random 1663265 + 497444 501649 chr1 249250621 + 144842054 144846259 8551
-4205
-
-chain 31572 chr1_random 1663265 + 576223 577747 chr4 191154276 + 100714665 100716180 4375428
-114	20	20
-105	460	462
-56	375	378
-65	263	249
-66
-
-chain 28915 chr1_random 1663265 + 230464 231387 chr1 249250621 + 1420670 1421247 4712368
-191	574	228
-67	38	38
-53
-
-chain 27385 chr1_random 1663265 + 205390 205833 chr1 249250621 - 247799065 247799507 5896168
-141	86	86
-106	47	46
-63
-
-chain 25670 chr1_random 1663265 + 87811 88395 chr7 159138663 - 51241913 51242744 3648322
-121	405	652
-58
-
-chain 21035 chr1_random 1663265 + 376636 377171 chr1 249250621 - 247932544 247932844 3872256
-107	118	0
-61	93	15
-49	39	0
-68
-
-chain 18694 chr1_random 1663265 + 540390 626404 chr1 249250621 + 148529505 148589817 1111
-44	254	254
-43	76	73
-54	196	196
-37	240	6477
-31	4	4
-4	2528	2531
-8	1	1
-42	1	1
-60	70185	38258
-94	10137	10136
-31	1	1
-3	167	167
-88	400	400
-52	829	828
-33	10	0
-52	281	281
-28
-
-chain 18305 chr1_random 1663265 + 612752 613165 chr1 249250621 + 146400208 146400621 434456
-18	31	31
-215	97	97
-52
-
-chain 18205 chr1_random 1663265 + 210123 210768 chr1 249250621 + 1400633 1401273 11939617
-55	410	403
-82	10	12
-88
-
-chain 16211 chr1_random 1663265 + 84691 84862 chr5 180915260 + 68593902 68594073 10696361
-171
-
-chain 14543 chr1_random 1663265 + 375983 376437 chr1 249250621 - 247932585 247932921 12601411
-13	231	153
-56	101	61
-53
-
-chain 11766 chr1_random 1663265 + 209234 209374 chr6 171115067 + 48765751 48765891 19406706
-84	4	4
-52
-
-chain 10899 chr1_random 1663265 + 1264583 1264729 chr4 191154276 - 96228610 96228756 20935897
-69	19	19
-58
-
-chain 9779 chr1_random 1663265 + 575439 575892 chr5 180915260 - 127861600 127862049 19918678
-60	389	385
-4
-
-chain 9449 chr1_random 1663265 + 206282 206576 chr1 249250621 - 247814999 247815293 24134146
-64	179	179
-51
-
-chain 9080 chr1_random 1663265 + 376922 377270 chr1 249250621 - 247932789 247932982 12922008
-42	39	0
-12	156	79
-8	39	0
-52
-
-chain 7488 chr1_random 1663265 + 375996 376227 chr1 249250621 - 247932827 247932944 24096271
-39	178	64
-14
-
-chain 7272 chr1_random 1663265 + 492183 493450 chr1_gl000192_random 547496 + 517200 518462 5534
-104	1136	1131
-27
-
-chain 7258 chr1_random 1663265 + 576783 577499 chr14 107349540 - 76512188 76512903 4928952
-56	262	262
-101	216	215
-81
-
-chain 7167 chr1_random 1663265 + 376446 376521 chr1 249250621 - 247932507 247932582 27908410
-75
-
-chain 6857 chr1_random 1663265 + 87342 87413 chr4 191154276 - 48731804 48731875 28524152
-71
-
-chain 6426 chr1_random 1663265 + 508964 509092 chr1 249250621 + 144828390 144828518 146082
-13	51	51
-64
-
-chain 6204 chr1_random 1663265 + 211009 211075 chr1 249250621 + 1467491 1467557 30075428
-66
-
-chain 6008 chr1_random 1663265 + 376783 376999 chr1 249250621 - 247932727 247932982 14593768
-49	132	171
-35
-
-chain 5855 chr1_random 1663265 + 576112 576191 chr20 63025520 + 560198 560277 14627950
-79
-
-chain 5539 chr1_random 1663265 + 247082 247140 chr16 90354753 - 36623787 36623845 31913042
-58
-
-chain 5517 chr1_random 1663265 + 575499 575571 chr1 249250621 - 135388947 135389019 22575370
-19	14	14
-39
-
-chain 5153 chr1_random 1663265 + 463736 463802 chr1 249250621 - 100897669 100897735 496173
-66
-
-chain 4331 chr1_random 1663265 + 576997 577043 chr4 191154276 + 125192159 125192205 31588172
-46
-
-chain 4269 chr1_random 1663265 + 508977 509028 chr1 249250621 - 101245694 101245744 11082093
-11	1	0
-24	1	1
-14
-
-chain 3392 chr1_random 1663265 + 1264741 1264777 chr1 249250621 + 103601716 103601752 22855599
-36
-
-chain 2584 chr1_random 1663265 + 472532 472613 chr1 249250621 - 104701386 104701467 60543
-81
-
-chain 2530 chr1_random 1663265 + 576576 576677 chr2 243199373 + 18874674 18874775 4960893
-101
-
-chain 2443 chr1_random 1663265 + 508878 508906 chr1 249250621 + 145358788 145358816 8460
-28
-
-chain 2298 chr1_random 1663265 + 376035 376059 chr1 249250621 - 247932520 247932544 25650669
-24
-
-chain 2200 chr1_random 1663265 + 377179 377218 chr1 249250621 - 247932814 247932853 18046603
-39
-
-chain 2078 chr1_random 1663265 + 576191 576213 chr2 243199373 - 87184513 87184535 19810119
-22
-
-chain 1902 chr1_random 1663265 + 462945 462974 chr1 249250621 + 146388727 146388756 1440299
-29
-
-chain 1597 chr1_random 1663265 + 87932 87955 chr1 249250621 + 203810737 203810760 8954286
-23
-
-chain 1582 chr1_random 1663265 + 576728 576783 chr12 133851895 + 80469819 80469874 8882774
-55
-
-chain 1575 chr1_random 1663265 + 377270 377295 chr1 249250621 - 247932789 247932814 25950613
-25
-
-chain 1557 chr1_random 1663265 + 376743 376767 chr1 249250621 - 247932958 247932982 25686497
-24
-
-chain 1423 chr1_random 1663265 + 577528 577578 chr3 198022430 + 24122600 24122650 5633229
-50
-
-chain 1401 chr1_random 1663265 + 208964 209027 chr19 59128983 + 53692979 53693042 24768107
-63
-
-chain 1269 chr1_random 1663265 + 577058 577101 chrX 155270560 - 54470903 54470946 5438939
-43
-
-chain 1137 chr1_random 1663265 + 88481 88531 chrX 155270560 - 107394638 107394688 10193603
-50
-
-chain 1096 chr1_random 1663265 + 88429 88481 chr1 249250621 - 213837318 213837370 14790649
-52
-
-chain 963 chr1_random 1663265 + 575892 575970 chr1 249250621 - 198864223 198864301 11419759
-78
-
-chain 917 chr1_random 1663265 + 455298 455327 chr1_gl000192_random 547496 - 58673 58702 411262
-29
-
-chain 870 chr1_random 1663265 + 577218 577269 chr6 171115067 - 89553434 89553485 24911812
-51
-
-chain 794 chr1_random 1663265 + 88312 88337 chr4 191154276 + 171087862 171087887 6635553
-25
-
-chain 649 chr1_random 1663265 + 576545 576576 chr15 102531392 - 5321440 5321471 7251364
-31
-
-chain 622 chr1_random 1663265 + 576462 576495 chr11 135006516 + 114505284 114505317 6564387
-33
-
-chain 546 chr1_random 1663265 + 88531 88556 chr6 171115067 + 144792007 144792032 10415340
-25
-
-chain 398 chr1_random 1663265 + 575763 575814 chr14 107349540 + 34662629 34662680 24063646
-51
-
-chain 22466167312 chr2 242951149 + 0 242751149 chr2 243199373 + 10000 243102476 1
-1201236	1	0
-2057	1	1
-26	1	1
-4043	0	22
-82	101	7
-33	0	74
-36	13	1
-67	0	48
-152	0	418
-50	2	0
-6	6	0
-76	74	0
-20	6	0
-22	118	0
-374	0	2446
-836	0	2310
-21	0	2444
-21507	1	1
-50	0	4
-2041	4	0
-9052	0	2
-81	8	0
-10	42	0
-1078	1	0
-4122	0	1
-1608	1	28
-4029	9	0
-967	1000	4547
-414	0	27
-2237132	1	0
-2458	17	17
-3915	47	47
-633	0	4
-3531	14	14
-3954	50000	51129
-1426129	100025	160449
-11087286	3	0
-773	50000	103977
-1576	1	0
-240	1	0
-318	0	2
-258	16	0
-2848	10	10
-1404	1	1
-27	1	1
-703	0	13
-375	1	0
-4783388	25000	35000
-848	2	0
-1225	2	0
-391	0	1
-3445	24	24
-184	1	1
-28	1	1
-49	4	0
-4514	9	0
-9628	9	1
-1483	7	7
-1990	1	0
-1949	0	1
-2716230	0	1
-46732767	9	5
-9477928	3	0
-7520813	0	72396
-1900436	150000	294073
-17672	0	1
-5792	0	1
-9019	266	0
-2942	1	0
-9388	0	2
-37826	0	4
-23440	4	0
-290929	1000000	1273578
-731068	3000000	3000000
-2558421	1	0
-1196	0	10
-686	1	0
-26	3	0
-15	1	1
-2309	1	0
-1332	23	22
-344	1	0
-1645	4	4
-6564	0	1
-6329	0	1
-769	1	0
-873	0	7
-1299	1	0
-8250	15	15
-4291	12548	10626
-1054	0	103
-84	218	0
-5897	1	1
-33	1	1
-9905	37	51
-1645	113	113
-1597	4	4
-61	1	1
-866	0	13
-2830	0	3
-2819	2	0
-156	436	88
-100	54	0
-4753	8	0
-4903	6	6
-3847	2	0
-108126	145	0
-3542	0	1
-10276	1	0
-402	1	1
-47	1	1
-63	0	2
-583	1	1
-34	1	1
-8975	46	0
-378	1	1
-70	1	1
-2476	102	0
-1754	1	0
-8426	1	0
-11986570	142000	151150
-14207	1	1
-49	1	1
-1784	12	0
-406	0	1
-1874	1	1
-33	1	1
-4795	0	2
-3686	1	1
-15	1	1
-164	0	2
-7287	5	5
-702023	150000	72796
-69	0	1
-1598	1	0
-1340	1	0
-1030	4	0
-1166	10	10
-629	27	27
-5750	1	1
-34	1	1
-3283	4	2
-496	21	1
-25	1	9
-41	1	1
-329	4	4
-9955	41	41
-10953	1	2
-1417	44	0
-911	0	17
-18270	0	1
-178429	281526	0
-34455	406	0
-58863	2	1
-1843	2	0
-14994	1	0
-12992	0	2
-2571146	0	1
-35688061	100000	108224
-29671719	0	1
-39665349	0	1
-14876089	20000	64197
-401	3	0
-1831	1	1
-61	1	1
-654	1	11
-138	28	0
-105	1	1
-25	4	0
-73	9	9
-3247	0	2
-1355	0	1
-816	21	25
-526	1	1
-60	1	1
-773	0	1
-1494	0	1
-448	44	44
-1191	0	1
-21	1	1
-596	0	1
-1582	0	1
-425	3	0
-1141	8	0
-136	744	80
-18	1	0
-4	1	0
-8	4	2
-32	1	0
-71	0	1
-385747	1	1
-110	1	1
-51	7	7
-54	15205	15205
-54	7	7
-51	1	1
-110	1	1
-5198249	1	0
-108	0	40
-65	0	80
-100	2	82
-442	1	1
-35	1	1
-119	129	9
-33	40	0
-42	1	1
-86	40	0
-1330	1	0
-1194	2	0
-11	1	1
-1773	5	0
-1623	1	1
-25	1	1
-2422	1	1
-20	1	0
-2315	1	0
-31	1	1
-1508	3	0
-50	4	0
-970	6	6
-7234	0	4
-1228	0	1
-1233	1	8
-744	16	16
-3447	1	1
-41	1	1
-3297	2	0
-1714	0	2
-2299	0	2
-2143	1	1
-18	1	1
-917	0	1
-1082	1	1
-49	1	1
-9098	4	0
-5529	1	0
-3266	8	0
-894	0	6
-3536	0	2
-4179	13	18
-1785	1	0
-1675	6	0
-1216	33000	32348
-287	109	573
-12548	30000	30000
-952154	25000	41011
-1914	0	1
-225	1	1
-57	1	1
-2910	1	0
-471	0	1
-1956	1	1
-43	1	1
-1000	92	0
-2854	0	3
-1837	0	306
-1007	0	30
-206	35	32
-217	17	17
-1525	0	8
-413	1	1
-32	2	2
-1573	12	12
-2258676
-
-chain 1437141 chr2 242951149 + 234136066 234151271 chr2 243199373 - 8712841 8728046 1459
-15205
-
-chain 1229376 chr2 242951149 + 110524471 111016063 chr2 243199373 - 132402743 134718956 53
-41	12371	12350
-33	0	23
-11	197610	197512
-5295	5	5
-190	69	19
-2195	1	0
-285	34	34
-1682	1	0
-182	11	6
-291	0	1
-1506	15	16
-146	5	5
-2050	51	51
-186	8	7
-68	7	6
-41	1	0
-306	0	1
-1545	1	0
-1334	25	24
-543	0	2
-224	17	21
-615	1	0
-208	2	0
-158	27	21
-3320	0	1
-576	0	2
-4562	0	6
-1023	0	1
-977	0	1
-3904	1	0
-827	415	28
-1508	14	13
-9571	36	36
-1393	1	1
-42	1	1
-2205	0	2
-5258	36	0
-42	2	0
-4437	2	0
-3357	1	0
-6289	0	9
-1996	1	0
-3228	0	1
-202	0	1
-2743	7	0
-24	0	5
-549	3	1
-942	0	6
-1815	8	0
-874	0	3
-4737	0	2
-852	14	18
-518	14	14
-4377	1	1
-49	1	1
-3270	1	0
-753	0	4
-240	1	0
-2391	0	1
-4745	4	0
-5752	0	2
-880	0	1
-397	1	0
-1407	0	3
-120	1	1
-89	1	1
-7011	3	0
-188	8	8
-834	5	0
-94	18	18
-3711	150112	1975291
-345	52	52
-100	8	8
-52	6	6
-650	6	6
-273	91	95
-88	90	90
-331	116	116
-66	35	35
-145	13	15
-95	6	6
-301	43	47
-444	12	12
-645	116	119
-215	31	31
-748	58	57
-212	71	71
-420	38	38
-190	4	4
-51	32	32
-65	32	32
-182	69	69
-161	17	17
-74	36	36
-170	25	25
-124	19	15
-230
-
-chain 33206 chr2 242951149 + 111008548 111015495 chr2 243199373 + 113147044 113153995 310
-112	345	345
-52	1095	1095
-15	0	4
-76	88	88
-90	331	331
-116	66	66
-35	560	560
-43	1101	1101
-116	215	215
-31	748	748
-58	212	212
-71	420	420
-38	245	245
-32	65	65
-32	182	182
-69	252	252
-36
-
-chain 15095 chr2 242951149 + 97284299 97473552 chr2 243199373 - 145080546 145267103 122
-48	13638	11732
-218	15837	15837
-37	1645	1645
-113	8336	8336
-436	100	100
-54	121645	121635
-3	25	0
-101	26915	26159
-9	0	1
-93
-
-chain 10366 chr2 242951149 + 110742577 110753868 chr2 243199373 + 113162562 113173850 1257
-34	5889	5884
-51	5290	5292
-27
-
-chain 3994 chr2 242951149 + 111050518 111050561 chr2 243199373 - 132647167 132647210 483
-43
-
-chain 3626 chr2 242951149 + 1208025 1208063 chr2 243199373 + 1217618 1217656 30090800
-38
-
-chain 3098 chr2 242951149 + 110780566 110780602 chr2 243199373 + 100698198 100698234 394442
-36
-
-chain 2548 chr2 242951149 + 89594034 89594300 chr2 243199373 - 153635204 153635700 103
-90	9	107
-22	9	0
-32	3	0
-5	0	125
-21	15	30
-5	1	0
-25	0	5
-29
-
-chain 2507 chr2 242951149 + 1207989 1208025 chr2 243199373 + 1217656 1217692 7254147
-36
-
-chain 2306 chr2 242951149 + 97446409 97446434 chr2 243199373 + 98080299 98080324 1844703
-25
-
-chain 5644665978 chr20 62435964 + 8000 62435964 chr20 63025520 + 60000 62965520 20
-26259569	1765661	3100000
-234339	1000000	150000
-4004088	0	1
-6459	0	244
-37810	0	2
-1044573	20000	50000
-9411883	2	8
-362	0	1
-11607353	0	1
-1301304	1	0
-31033	0	9
-1154	0	2
-1088	1	1
-29	1	1
-2509	0	2
-407	1	0
-40	1	1
-3787164	27050	50000
-71932	110000	50000
-694117	0	1
-1008033
-
-chain 3228730713 chr21 46944323 + 9719767 46944323 chr21 48129895 + 10697896 48119895 23
-490233	3050000	3150000
-19828060	0	1
-8789369	1199	50000
-243783	1500	1500
-1381822	1359	50000
-3437231
-
-chain 42537850 chr21_random 1679693 + 281005 1255172 chr21 48129895 + 9411193 10647896 88
-184355	50000	489372
-131056	458754	281918
-150002
-
-chain 21600281 chr21_random 1679693 + 876305 1679693 chr21 48129895 - 37585054 38304458 99
-178865	280890	346005
-315	2	2
-38	1	1
-261	1	1
-24	1	1
-157	0	325
-16	1	1
-85	1	1
-66	1	1
-330	11	11
-235	1	1
-51	1	1
-405	1	1
-26	1	1
-130	5	5
-80	1	1
-91	1	1
-20	1	1
-244	0	1
-478	1	1
-5	1	0
-13	0	1
-49	1	1
-197	10	10
-158	1	1
-57	0	1
-829	1	1
-60	1	1
-51	0	1
-584	1	0
-21	2	0
-151	20	20
-316	1	1
-16	1	1
-100	7	7
-102	1	1
-49	1	1
-125	1	0
-102	13	13
-153	20	20
-199	1	0
-35	1	1
-367	1	1
-51	1	1
-344	1	1
-101	1	1
-243	1	1
-27	1	1
-338	0	4
-166	15	15
-73	1	1
-44	1	1
-282	4	4
-67	1	1
-54	1	1
-216	1	1
-48	1	1
-76	1	1
-70	1	1
-392	1	1
-44	1	1
-65	8	9
-362	0	4
-34	1	1
-68	1	1
-57	1	0
-120	1	1
-374	1	1
-21	1	1
-121	1	1
-34	1	1
-80	1	0
-64	2	0
-162	8	8
-184	1	1
-34	1	1
-658	2	2
-52	0	4
-297	1	0
-136	1	1
-20	1	1
-905	0	1
-250	7	8
-138	0	3
-104	1	0
-42	1	1
-539	0	1
-43	4	0
-633	0	20
-353	17	17
-969	4	0
-39	3	3
-210	3	1
-188	7	7
-459	2	2
-25	1	1
-207	1	1
-55	1	1
-375	1	1
-66	1	1
-599	0	2
-395	1	1
-33	1	1
-73	1	1
-35	2	0
-275	9999	10000
-353	1	1
-26	1	1
-423	1	1
-32	1	1
-86	7	7
-197	1	1
-44	1	1
-96	1	1
-77	7	0
-247	0	2
-77	1	1
-425	13	1
-32	1	1
-65	1	1
-217	3	2
-115	1	1
-33	1	1
-268	1	0
-959	1	1
-63	1	1
-93	5	5
-185	1	1
-31	1	1
-944	12	12
-413	1	1
-92	1	1
-276	1	1
-35	1	1
-500	1	1
-31	149436	9
-158069
-
-chain 14432948 chr21_random 1679693 + 78709 231005 chr21 48129895 + 9882623 10034920 205
-77296	0	1
-75000
-
-chain 7807601 chr21_random 1679693 + 1362161 1471624 chr1 249250621 - 105758025 105867745 293
-77	11427	11419
-174	5	5
-857	64	64
-2170	0	2
-621	1	1
-26	1	1
-4365	0	1
-155	0	1
-452	0	4
-941	0	4
-403	1	1
-45	1	1
-534	86	86
-2198	0	1
-303	2	0
-5470	6	6
-845	1	1
-45	1	1
-221	6	0
-321	1	1
-44	1	1
-354	1	0
-374	131	130
-577	6	5
-263	17	16
-207	0	2
-1746	14	14
-3223	1	1
-46	4	4
-1479	1	1
-46	1	1
-383	0	3
-44	1	1
-2724	67	67
-47	145	145
-350	116	116
-138	0	1
-1	65	65
-796	17	17
-645	1	0
-24	1	1
-1318	1	0
-687	1	1
-41	1	1
-2292	1	1
-37	1	1
-589	1	1
-37	1	0
-670	13	13
-357	4	0
-2667	3	0
-1941	1	1
-31	1	1
-1538	54	54
-64	166	166
-120	226	226
-46	14	0
-14	155	155
-92	54	54
-26	55	55
-98	131	131
-36	1	1
-76	391	391
-44	294	294
-37	813	813
-35	219	219
-898	1	1
-19	1	1
-213	12	12
-1926	1	1
-21	1	1
-4561	1	1
-28	1	1
-8361	1	1
-43	1	1
-429	211	492
-3095	0	1
-3873	1	1
-43	5	5
-3785	171	171
-65	122	122
-70	116	116
-29	459	459
-36	352	352
-39	93	93
-39	190	190
-41	1783	1784
-35	509	509
-27	394	394
-57	834	834
-58	10	10
-17	758	760
-41	0	4
-82	194	194
-60	543	543
-31	58	58
-46	607	607
-34	98	98
-31	1	1
-38	563	562
-135	1980	1976
-48	370	370
-42	515	515
-49	456	456
-3137	0	1
-2483	1	0
-357	1	1
-49	1	1
-1181	1	0
-885	1	0
-86
-
-chain 3630496 chr21_random 1679693 + 696416 1463441 chr21 48129895 + 9645548 10215976 235
-129889	481231	310631
-225	46	51
-383	6	6
-73	18	18
-200	18	39
-236	63	68
-123	340	365
-57	300	259
-51	138	138
-71	55	55
-60	152	152
-51	100	103
-61	358	357
-85	1906	236
-88	157	153
-56	39	39
-73	20146	20047
-67	1	0
-57	154	154
-59	940	953
-61	205	205
-60	46	46
-122	149	149
-53	64	56
-210	16	16
-209	1	0
-214	29	29
-71	69616	76139
-67	47	47
-145	350	354
-116	139	135
-65	13718	10425
-54	64	64
-166	120	120
-225	75	75
-74	14	13
-67	92	92
-54	26	26
-55	98	98
-127	117	117
-173	16	15
-202	44	44
-198	21	17
-75	37	37
-442	18	18
-353	35	35
-219	27532	0
-105	0	3
-66	65	65
-122	70	70
-116	29	29
-459	36	36
-278	17	17
-57	39	40
-93	39	39
-190	41	41
-285	16	20
-859	22	37
-176	4	4
-183	32	32
-206	35	36
-509	27	27
-394	57	56
-116	5	5
-596	1	0
-116	85	85
-54	0	1
-119	0	2
-585	124	127
-74	10	11
-109	60	60
-82	22	22
-439	31	31
-58	46	46
-106	21	22
-186	15	14
-279	34	34
-98	70	67
-166	1	0
-396	135	135
-1551	12	12
-90	0	3
-69	4	4
-48	3	0
-203	48	48
-370	42	42
-139	14	53
-362	49	49
-456
-
-chain 2630212 chr21_random 1679693 + 936 28709 chr21 48129895 + 44682664 44710462 1048
-3985	6	7
-8941	0	30
-3327	1	1
-74	1	1
-859	22	22
-89	70	70
-489	14	3
-11	2	1
-10	10	0
-10	0	1
-31	1	27
-556	3	0
-128	0	1
-358	1	1
-45	1	1
-1712	8	0
-6545	32	31
-431
-
-chain 517534 chr21_random 1679693 + 1332563 1373665 chr4_gl000194_random 191469 - 21469 62943 261
-130	2	2
-53	1	1
-139	1	1
-60	1	1
-321	125	125
-72	1	1
-81	59	59
-248	22	23
-250	13	13
-407	61	61
-205	60	60
-46	122	122
-149	53	53
-14	0	8
-50	650	650
-29	19697	20073
-100	1	4
-106	2	2
-158	1	1
-89	1	1
-10	1	1
-65	1	1
-48	1	1
-156	1	1
-61	1	1
-156	1	1
-81	1	1
-522	16	16
-377	22	22
-358	1	1
-17	1	1
-141	1	0
-29	0	1
-16	1	1
-105	1	1
-49	2	1
-63	1	1
-32	1	0
-7	1	1
-349	1	2
-102	1	1
-146	1	0
-93	3	0
-149	1	1
-86	1	1
-220	1	1
-111	1	1
-195	19	19
-108	1	1
-79	6	1
-98	0	1
-29	2	2
-98	1	1
-125	1	1
-196	1	1
-52	1	1
-767	1	1
-68	3	3
-70	1	1
-66	1	1
-331	1	1
-22	1	1
-60	77	77
-437	1	1
-61	1	1
-134	1	1
-48	4	2
-26	0	2
-79	1	1
-16	1	1
-77	1	1
-24	1	1
-176	1	1
-33	1	1
-61	0	4
-141	1	1
-17	1	1
-232	1	1
-42	1	1
-439	2	1
-31	1	1
-55	1	0
-181	1	1
-77	4	4
-145	4	5
-22	1	1
-159	1	6
-53	1	1
-63	1	1
-67	6	6
-71	1	1
-25	1	1
-103	6	6
-303	6513	6492
-211	1	1
-87	1	1
-170	2	2
-36	0	6
-361	1	1
-58	1	1
-292	10	10
-201	1	1
-35
-
-chain 353583 chr21_random 1679693 + 1323386 1332563 chrUn_gl000218 161147 - 0 9198 304
-693	1	1
-28	4	0
-425	51	51
-874	2	4
-421	1	1
-23	1	1
-299	2	1
-20	3	3
-88	1	1
-35	1	1
-283	4	4
-42	4	4
-719	14	14
-181	1	1
-41	1	1
-1010	1	1
-59	1	1
-478	1	1
-45	1	0
-78	1	1
-315	1	1
-22	1	1
-342	1	1
-27	1	1
-716	0	25
-83	1	1
-44	1	1
-218	6	6
-142	1	1
-178	1	1
-220	1	1
-35	1	1
-55	1	1
-44	1	1
-143	1	1
-80	1	1
-85	1	1
-46	1	1
-169	1	1
-56	1	1
-94	1	1
-51	1	1
-48
-
-chain 153763 chr21_random 1679693 + 1307498 1317523 chr1 249250621 + 142541121 142549427 248494
-38	225	225
-46	934	934
-63	240	230
-50	653	627
-57	559	562
-4	186	183
-51	101	101
-16	235	235
-70	1848	174
-58	193	194
-3	255	257
-97	40	40
-164	35	35
-167	27	27
-82	213	218
-106	172	171
-55	274	274
-125	214	209
-158	123	124
-94	169	169
-69	430	425
-66	871	864
-95	213	213
-81
-
-chain 88175 chr21_random 1679693 + 0 28278 chr21_gl000210_random 27682 - 0 27251 1050
-107	675	0
-154	27310	26958
-32
-
-chain 46308 chr21_random 1679693 + 1305249 1307368 chr21 48129895 - 38147885 38150014 728191
-46	171	171
-69	165	166
-32	292	292
-34	184	184
-26	73	73
-23	117	117
-57	54	54
-7	16	25
-68	78	78
-23	242	242
-53	230	230
-59
-
-chain 40072 chr21_random 1679693 + 1311066 1311528 chr3 198022430 + 38430454 38430916 3283349
-95	1	1
-47	1	1
-177	1	1
-41	1	1
-98
-
-chain 25551 chr21_random 1679693 + 1316263 1317134 chr21 48129895 + 10022171 10023044 3443865
-97	94	94
-87	148	147
-94	340	343
-11
-
-chain 20886 chr21_random 1679693 + 1305172 1307309 chrY 59373566 - 45989384 45991522 2022
-77	46	46
-64	50	50
-57	69	70
-165	32	32
-86	11	11
-195	34	34
-184	122	122
-117	57	57
-54	91	91
-50	51	51
-242	61	61
-68	9	9
-145
-
-chain 10360 chr21_random 1679693 + 1384481 1394861 chr21 48129895 - 38158677 38169079 831
-56	10224	10246
-100
-
-chain 9106 chr21_random 1679693 + 1316541 1317639 chr2 243199373 + 56015784 56016880 4408555
-45	37	37
-66	97	95
-66	672	672
-115
-
-chain 7814 chr21_random 1679693 + 1312477 1312593 chr8 146364022 + 34952530 34952621 21041862
-26	37	12
-53
-
-chain 6987 chr21_random 1679693 + 1305359 1306761 chr1 249250621 - 105769657 105771059 738748
-38	5	5
-7	1324	1324
-28
-
-chain 3478 chr21_random 1679693 + 1309705 1309742 chrX 155270560 - 92499801 92499838 30075241
-37
-
-chain 2939 chr21_random 1679693 + 1312274 1312311 chr1 249250621 - 217601682 217601719 16037052
-37
-
-chain 2906 chr21_random 1679693 + 1394861 1394892 chrUn_gl000247 36422 - 2105 2136 848
-31
-
-chain 2805 chr21_random 1679693 + 1309675 1309705 chr4 191154276 - 16268024 16268054 28769751
-30
-
-chain 2788 chr21_random 1679693 + 1374701 1374765 chr4_gl000194_random 191469 - 63980 64044 1175
-9	36	36
-19
-
-chain 2571 chr21_random 1679693 + 1317411 1317442 chr20 63025520 - 39738360 39738391 24462467
-31
-
-chain 2324 chr21_random 1679693 + 1311588 1311646 chr2 243199373 + 3637936 3637994 8156424
-58
-
-chain 1980 chr21_random 1679693 + 1440240 1440313 chr1 249250621 + 142677559 142677632 922
-73
-
-chain 1679 chr21_random 1679693 + 1316387 1316422 chr13 115169878 + 41439086 41439121 11997585
-35
-
-chain 1437 chr21_random 1679693 + 1316422 1316454 chr3 198022430 + 119282439 119282471 8460363
-32
-
-chain 1151 chr21_random 1679693 + 1312216 1312274 chr13 115169878 + 46060123 46060181 10002138
-58
-
-chain 1007 chr21_random 1679693 + 1312144 1312195 chr17 81195210 + 33522637 33522688 8813060
-51
-
-chain 810 chr21_random 1679693 + 1306268 1306301 chr4 191154276 - 63157613 63157646 21715000
-33
-
-chain 762 chr21_random 1679693 + 1312422 1312477 chr7 159138663 + 153013126 153013181 10840208
-55
-
-chain 732 chr21_random 1679693 + 1312000 1312066 chr7 159138663 - 102920653 102920719 25474729
-66
-
-chain 561 chr21_random 1679693 + 18264 18311 chr21 48129895 + 44700101 44700148 25859698
-47
-
-chain 3320960322 chr22 49691432 + 14430000 49591432 chr22 51304566 + 16050000 51244566 22
-647850	150000	150000
-3661581	50000	100000
-15278435	0	18
-293	0	36
-1410	1	1
-46	1	1
-6626947	2	4
-1759	1	1
-43	1	1
-1367363	12000	10615
-7856	4	0
-809336	0	20
-6307	20	0
-6702	50000	2669
-4247727	10618	0
-1558	0	2719
-35231	0	131
-12647	4	0
-45594	85	9
-19562	0	506
-165501	5	7
-1103946	16700	60575
-644	0	2
-319796	1600	1155
-17927	19763	15469
-464566
-
-chain 6025887 chr22_h2_hap1 63661 + 0 63661 chr22 51304566 + 42594964 42658568 527
-748	1	0
-260	4	0
-675	1	0
-4844	0	2
-10592	8	0
-3276	29	0
-2384	10	0
-2795	0	2
-464	1	0
-3865	1	0
-1777	1	0
-1286	0	2
-875	1	0
-2336	1	0
-4337	1	0
-2724	0	3
-1087	6	0
-7154	0	1
-1045	2	0
-11070
-
-chain 15737781 chr22_random 257318 + 90752 257318 chrUn_gl000211 166566 + 0 166566 187
-166566
-
-chain 3641362 chr22_random 257318 + 7 38789 chr11 135006516 - 18284691 18323344 804
-2900	3	1
-66	1	1
-55	1	1
-3449	0	1
-1785	1	1
-37	1	1
-178	1	0
-852	0	1
-2329	2	0
-4939	1	0
-1557	1	1
-30	1	1
-1005	1	0
-622	16	0
-39	0	1
-42	0	22
-755	1	1
-30	1	1
-952	1	1
-26	1	1
-141	18	17
-1110	2	0
-1529	1	1
-22	1	1
-399	1	1
-33	1	1
-1369	20	30
-3959	0	4
-1144	1	0
-1032	27	25
-8	23	0
-56	24	0
-51	0	9
-11	1	57
-34	4	4
-7	134	0
-296	26	0
-25	1	1
-2452	0	5
-19	1	1
-231	1	0
-327	1	0
-962	1	1
-22	1	1
-1571
-
-chain 109494 chr22_random 257318 + 39517 40750 chr22 51304566 - 30977735 30979001 1172425
-166	5	5
-133	3	3
-48	1	1
-297	0	33
-234	1	1
-58	4	4
-283
-
-chain 19094 chr22_random 257318 + 39007 39213 chr22 51304566 - 29625864 29626070 11204980
-206
-
-chain 8587 chr22_random 257318 + 39415 39517 chr22 51304566 - 29782769 29782871 2027258
-50	48	48
-4
-
-chain 3763 chr22_random 257318 + 39465 39513 chr22 51304566 - 30978529 30978577 2726523
-48
-
-chain 17719073 chr2_random 185571 + 0 185498 chr2 243199373 + 242522204 242710000 158
-43034	21	22
-16724	1	0
-52199	0	669
-3059	0	4
-14500	1	0
-409	1	1
-22	1	1
-2039	1	0
-809	0	1
-2041	0	4
-2258	6	6
-4179	12	13
-1973	1	1
-21	1	1
-1855	1	1
-37	2	2
-4315	0	1
-1584	14	0
-281	0	2
-78	1	1
-1497	9	0
-237	2	1
-826	4	0
-21273	4	0
-6716	0	1650
-3449
-
-chain 18404389309 chr3 199501827 + 35000 199446827 chr3 198022430 + 60000 197962430 3
-13552792	1	0
-585083	1	0
-2092	74	72
-31067262	1	0
-90	0	1
-5628461	15	0
-788	0	1
-3676	2	0
-35	1	1
-4682	0	1
-1295	5	0
-437	42	53
-326	2	0
-3309	1	1
-40	1	1
-998	3	0
-3584	0	5
-930	7	5
-845	1	1
-28	1	2
-303	1	0
-509	5	0
-2291	6	6
-2789	0	1
-2541	9692	9690
-949	4	4
-35	1	1
-2874	1	0
-6717	1	0
-2823	0	1
-704	4	0
-5142	0	1
-2490	10	10
-162	7	7
-6308	15	0
-15177535	260003	152352
-2532	0	1
-24209179	4400000	3000000
-60453438	4	0
-40076811	20000	20999
-8195	1	1
-44	1	1
-1408	1	1
-33	1	1
-172	4	3
-25	1	1
-538	13	13
-173	1	1
-27	1	1
-636	1	1
-28	1	1
-470	3	3
-112	1	1
-375	1	1
-26	0	26
-106	0	78
-72	9	6
-12	3	29
-79	5	262
-56	1	1
-20	1	1
-815	43	43
-457	1	1
-49	0	18
-509	3	4
-23	1	1
-391	1	1
-44	1	1
-1270	4	0
-40	1	1
-264	27	31
-2416	2	0
-4377	13	13
-736	1	1
-47	1	1
-1416	1	1
-20	1	1
-1020	1	1
-25	1	1
-482	0	5
-716	0	1
-1697	1	1
-29	1	1
-1270261	27000	23108
-40930	0	1
-17455	1	1
-28	4	4
-45	491	0
-1669	58	0
-18	3	61
-54863	16	53
-7653	6	0
-3	99	0
-170	30	0
-25	0	30
-210	0	45
-359	0	915
-5980	256	640
-1363	1	1
-37	1	1
-7958	1	0
-372	1	0
-2442058
-
-chain 572461 chr3 199501827 + 50900356 50910048 chr3 198022430 - 147087402 147097092 2111
-52	1	6
-5886	1	0
-2586	6	0
-1160
-
-chain 14997 chr3 199501827 + 196923229 196923617 chr3 198022430 + 195437554 195437811 3659243
-77	131	0
-180
-
-chain 6146 chr3 199501827 + 196987930 196988205 chr3 198022430 + 195502296 195502751 2529960
-74	171	141
-23	2	212
-5
-
-chain 4201 chr3 199501827 + 196923126 196923228 chr3 198022430 + 195438036 195438138 6236935
-102
-
-chain 2082 chr3 199501827 + 196994845 196994975 chr3 198022430 + 195509346 195509572 2249717
-55	18	114
-57
-
-chain 20970321 chr3_random 749256 + 196010 556188 chr3 198022430 - 121623404 130096441 129
-131258	0	1
-41217	50000	8162858
-137703
-
-chain 13779918 chr3_random 749256 + 0 146010 chr3 198022430 - 77602115 77748060 219
-64144	1	0
-1191	0	1
-633	0	1
-4651	29	21
-5147	0	1
-947	14	0
-64	56	0
-55	0	2
-2421	0	15
-741	9	0
-371	6	4
-554	1	0
-5424	0	1
-4074	1	1
-44	1	1
-3065	0	1
-2772	1	1
-36	1	1
-15950	1	0
-2351	0	2
-5999	1	0
-17825	0	13
-74	1	1
-367	1	1
-47	1	1
-2084	2	0
-288	0	3
-744	1	0
-131	0	1
-465	1	1
-29	1	1
-659	10	0
-830	0	3
-262	3	0
-1428
-
-chain 13528802 chr3_random 749256 + 606188 749256 chr3 198022430 + 46352896 46495976 221
-8517	0	10
-20860	0	6
-16120	0	1
-4148	7	6
-745	7	6
-517	6	0
-907	5	5
-1382	4	0
-2730	0	1
-1143	36	36
-457	13	17
-1748	1	1
-48	1	1
-954	0	2
-767	1	4
-7353	0	8
-4950	0	12
-13338	0	1
-4685	1	1
-21	1	1
-1414	3	0
-4158	23	23
-5081	0	1
-14097	1	1
-49	1	1
-770	16	16
-424	1	1
-17	1	1
-244	1	1
-23	1	1
-1462	12	0
-2048	14	0
-4573	1	0
-3856	2	0
-754	0	8
-7304	1	0
-5243
-
-chain 17653370240 chr4 191273063 + 0 191263063 chr4 191154276 + 10000 191029082 4
-1413146	51000	71672
-5369	5	6
-65	1	1
-67	1	1
-425	1	1
-32	1	1
-175	1	1
-34	1	1
-5092	1	1
-46	1	1
-1396	15	15
-1446	0	1
-5135	1	0
-586	1	1
-38	1	1
-10	0	21
-1587	0	6
-205	0	3
-97	6	0
-177	0	9
-4059	1	1
-71	1	1
-1413	83	1
-51	7	7
-105	7	7
-67	41	0
-67	42	1
-55	41	0
-25	41	0
-3244	558	0
-64	93	0
-93	558	0
-907	0	2
-1101	55	0
-3473	15	15
-1167	3	0
-25	0	29
-135	29	0
-5074	1	1
-42	1	1
-1825	14	14
-1992	0	3
-23	1	1
-4171	6	6
-796	0	165
-196	0	99
-87	0	33
-190	6	8
-107	2	2
-21	0	2
-62	1	68
-32	14	15
-81	18	18
-55	0	100
-17	1	1
-222	2	169
-51	0	35
-3289	18	18
-298	0	1
-373	0	1
-2965	1	1
-28	0	23
-1704	0	38
-114	0	38
-53	7	44
-119	77	0
-269	1	1
-70	1	1
-2000	23	33
-2400	1	1
-94	1	1
-6002	18	18
-776	1	0
-369	16	16
-418	51	0
-53	1	27
-2181	1	4
-57	1	1
-1973	10	0
-4184	11	11
-1594	0	18
-2038	0	109
-4332	0	7
-49	0	4
-1465	3	1
-4156	2	0
-5455	3	2
-129	4	4
-9082	0	1
-786	20	20
-1506	0	1
-252	8	7
-17512	50	1
-56	1	0
-2474	69	52
-69	0	30
-60	16	0
-19	15	0
-40	1	1
-138	16	0
-74	5	51
-3386	0	1
-968	0	4
-1624	11	11
-1065	0	3
-2935	8	0
-2312	0	181
-2300	1	0
-1641	6	1
-1955	0	1
-68	1	1
-347	1	1
-40	1	1
-1553	6	0
-678	16	16
-92	0	33
-390	4	0
-1147	0	1
-1948	4	4
-4296	18	18
-955	1	1
-47	1	1
-1555	1	0
-2251535	81122	0
-145	1	1
-48	1	1
-718	1	0
-2789	1	1
-27	1	1
-1601	4	0
-1048	39	39
-820	0	2
-20	6	0
-28	2	0
-76	12	18
-28	1	0
-11	9	3
-1772	0	6
-22	1	1
-946	1	1
-24	1	1
-1245	1	0
-3231	1	1
-41	1	1
-1652	20	20
-11270	3	0
-2704	1	1
-41	1	1
-1812	5	6
-1477	0	11
-3790	4	0
-2187	1	1
-48	1	1
-1704	1	1
-73	1	1
-2265	1	1
-10	1	1
-553	1	1
-49	1	1
-67	1	1
-33	1	1
-3932	5	0
-18	1	0
-780	0	1
-1260	0	1
-4203	0	25
-863	14	14
-7114	1	1
-70	1	1
-169	0	1
-43	1	1
-145	1	1
-39	0	3
-8	1	1
-753	0	1
-2255	1	1
-21	1	1
-1605	1	1
-19	2	1
-392	1	1
-29	1	0
-3673	1	0
-145	14	14
-39	0	1
-1246	0	1
-2302	1	0
-1554	9	9
-4537	0	1
-1064	2	0
-2051	1	0
-1130	0	2
-164	1	0
-1972	0	1
-18	3	3
-2597	1	1
-46	3	3
-196	1	1
-17	1	1
-60	4	4
-187	4	4
-46	1	1
-692	1	0
-3920	3	3
-15	1	1
-486	14	14
-1709	8	0
-169	1	0
-597	1	1
-18	0	7
-3423937	0	1
-1295496	1	1
-26	1	1
-760	150000	591802
-22468468	1	1
-27	1	1
-2592	0	2
-33	1	1
-2065	3	0
-1050	11	11
-1046	3	9
-52	11	11
-3200	1	0
-906	1	0
-1644	6	0
-1180	0	1
-475	0	5
-2556	26	22
-351	0	1
-1716	71000	36200
-976586	59000	26528
-7701	0	4
-9296	0	1
-1862	1	0
-3316	7	3
-1131	0	1
-1795	1	0
-569	1	0
-2895	44	44
-458	3	0
-5371	1	0
-6774	0	2
-2504	0	2
-1247	1	1
-45	1	1
-2415	17	17
-8215	1	1
-18	1	1
-272	10	10
-420	1	1
-34	1	1
-7961	4	0
-1973	1	1
-45	1	0
-529	1	0
-603	0	1
-18	1	1
-621	4	12
-67	2	0
-18	34	0
-516	0	1
-1400	38	41
-3786	0	1
-228	3	0
-1026	1	1
-49	1	1
-3336	0	3
-951	1	1
-77	2	1
-441	1	2
-1833	9	9
-301	5	5
-2787	17	17
-1747	1	0
-3040	2	9
-81	10	10
-86	2	0
-7354949	20000	1606
-1681	16	30
-13957	0	8
-1947	0	3
-1255	1	1
-38	0	1
-1788	12	17
-1045	6	0
-1327	0	1
-5775	1	1
-18	1	1
-1933	1	0
-1716	13	13
-255	1	0
-124	0	3
-792	0	5
-1521	1	1
-64	1	1
-9005617	150000	150000
-171176	3000000	3000000
-7074452	53320	65431
-1937	0	1
-2845	2	0
-1387	0	1
-114	1	0
-2382	0	4
-68	6	6
-60	4	0
-20	0	1
-93	0	51
-9781584	351994	0
-1909446	184275	0
-3919546	13	13
-435	23	23
-838	0	1
-807	6	6
-74	1	1
-43	1	1
-652	30000	29839
-13847966	0	1
-14069801	2	0
-8504	0	1
-32266	8	0
-12729	0	2
-35327	12	14
-1503	1	0
-1334	1	0
-759	0	1
-7479	34	34
-2523	7	1
-9912	18	17
-2523	1	0
-1321	0	1
-3684	18	18
-5282	2	0
-5505	20	20
-9694	6	6
-22003	9	0
-578	0	1
-5166	2	0
-92208	2	5
-8	1	0
-5	0	2
-113	4	0
-845	6	7
-2247	3	1
-3770	0	1
-5719	0	2
-2511	0	1
-1557	0	1
-5812	0	1
-3607	0	1
-7405	1	0
-11075	0	1
-2794	1	0
-2340	1	0
-429	0	1
-522	2	0
-2397	5	0
-371	11	0
-1376	1	0
-2416	8	0
-210	1	1
-20	1	1
-5104	1	1
-20	1	1
-525	2	0
-836	0	1
-2094	1	0
-2213	3	0
-327	9	6
-2593	1	1
-57	1	1
-1618	0	1
-1400	4	0
-254	0	2
-93	10	0
-754	0	6
-193	0	1
-2378	0	1
-1753	3	0
-1903	0	4
-29	1	1
-1136	14	14
-2452	4	0
-3622	31	3
-456	14	14
-1076	7	8
-68	1	1
-20	1	1
-145	1	1
-68	1	0
-12	0	1
-10	0	1
-11	1	0
-35	1	0
-5	0	1
-11	1	2
-32	6	7
-35	1	0
-8722	1	0
-888	0	4
-456	3	0
-45	0	1
-151	13	13
-756	0	1
-203	8	7
-140	1	1
-20	1	1
-308	5	0
-1020	0	1
-1258	0	1
-160	0	2
-1411	1	1
-22	1	1
-1180	12	12
-4521	0	2
-1155	27	0
-4954	3	0
-1392	1	1
-47	1	1
-3854	2	1
-130	1	0
-2633	2	0
-3053	12	13
-2308	0	1
-1747	0	45
-732	2	0
-1336	9	11
-3898	0	6
-437	1	0
-981	0	1
-1326	0	1
-382	4	0
-1081	10	0
-81	1	1
-142	0	2
-5452	29	29
-495	1	1
-26	1	1
-485	0	1
-525	0	4
-36	0	6
-3945	347	0
-1034	1	1
-27	1	1
-60	2	0
-2581	3	0
-3880	0	4
-1792	0	1
-20	1	1
-356	1	0
-4244	5	5
-36	1	1
-2232	2	2
-42	1	1
-4462	0	2
-1611	1	0
-1290	0	2
-110	1	0
-1466	0	1
-357	3	0
-850	12	0
-13547766	0	1
-3724943	2	0
-46473408	0	1
-1696	1	1
-28	1	1
-1629	0	4
-666	4	0
-13464	30000	12874
-8520008	2	0
-1107	1	1
-15	1	1
-1892	0	4
-6798	0	2
-1793	1	1
-25	0	3
-422	389	0
-786	2	0
-545	0	2
-54	1	0
-143	1	1
-39	1	1
-89	1	1
-29	1	0
-171	1	1
-46	1	0
-192	1	1
-33	1	1
-2580	0	1
-107	1	1
-29	1	1
-218	1	0
-175	6	5
-1407	1	1
-52	1	1
-8851	1	0
-14427	4	0
-1737	22	0
-5806	1	0
-1115	1	1
-29	0	2
-3395	0	1
-3164	0	2
-522	1	0
-24	1	1
-658	4	0
-5724	9	9
-1209	0	1
-5380	1	0
-97	1	0
-854	4	0
-78	5	11
-2728	6	7
-3754	17	13
-1363	1	0
-1025	1	0
-1811	0	1
-7507	0	4
-1184	3	0
-763	1	0
-797	3	0
-293	2	0
-2488	0	1
-335	0	1
-9959	1	0
-3255	1	0
-1322	0	1
-8118	2	0
-2908	49	49
-369	2	0
-632	1	0
-63	0	5
-3008	0	1
-9582	0	1
-14742673	0	3013
-39686
-
-chain 945825 chr4 191273063 + 69381892 69391896 chr4 191154276 + 69230000 69240000 2911
-2225	1	0
-4917	1	0
-2807	2	0
-51
-
-chain 941684 chr4 191273063 + 69471941 69481941 chr4 191154276 + 69320000 69330000 3076
-3521	0	1
-4784	1	0
-1694
-
-chain 941274 chr4 191273063 + 69614595 69624595 chr4 191154276 + 69580000 69590000 3093
-10000
-
-chain 940419 chr4 191273063 + 69564606 69574607 chr4 191154276 + 69530000 69540000 3129
-3216	5	5
-134	0	1
-5676	2	0
-968
-
-chain 939146 chr4 191273063 + 69534617 69544617 chr4 191154276 + 69500000 69510000 3182
-387	6	6
-9607
-
-chain 939091 chr4 191273063 + 69481941 69491934 chr4 191154276 + 69330000 69340000 3184
-8138	0	4
-1546	0	3
-309
-
-chain 938726 chr4 191273063 + 69461942 69471941 chr4 191154276 + 69310000 69320000 3193
-130	0	1
-9869
-
-chain 936769 chr4 191273063 + 69604595 69614595 chr4 191154276 + 69570000 69580000 3285
-2900	25	25
-7075
-
-chain 936653 chr4 191273063 + 69421914 69431904 chr4 191154276 + 69270000 69280000 3293
-6388	14	14
-338	29	29
-266	0	1
-2309	1	3
-55	1	0
-83	0	8
-506
-
-chain 936357 chr4 191273063 + 69391896 69401898 chr4 191154276 + 69240000 69250000 3304
-2367	1	0
-2329	0	1
-795	23	23
-2819	2	0
-1666
-
-chain 935200 chr4 191273063 + 69441943 69451948 chr4 191154276 + 69290000 69300000 3343
-1203	4	0
-488	57	57
-7133	2	1
-310	1	0
-551	0	1
-256
-
-chain 934799 chr4 191273063 + 69544617 69554606 chr4 191154276 + 69510000 69520000 3366
-1296	39	39
-1112	1	0
-204	1	0
-2340	0	12
-1710	0	1
-3286
-
-chain 933839 chr4 191273063 + 69584607 69594595 chr4 191154276 + 69550000 69560000 3402
-417	3	0
-966	1	0
-2053	0	1
-1784	5	8
-284	0	12
-4475
-
-chain 932655 chr4 191273063 + 69594595 69604545 chr4 191154276 + 69560000 69569950 3440
-8695	26	26
-1229
-
-chain 930772 chr4 191273063 + 69451948 69461942 chr4 191154276 + 69300000 69310000 3507
-1068	0	1
-1437	25	27
-806	0	4
-5337	50	50
-300	1	0
-970
-
-chain 928519 chr4 191273063 + 69411919 69421914 chr4 191154276 + 69260000 69270000 3571
-62	32	32
-801	11	11
-3595	38	38
-941	54	59
-4461
-
-chain 928371 chr4 191273063 + 69511937 69521941 chr4 191154276 + 69360000 69370000 3579
-6433	60	60
-335	10	6
-239	10	10
-2917
-
-chain 925594 chr4 191273063 + 69554606 69564602 chr4 191154276 + 69520000 69529997 3671
-2109	0	1
-4421	81	81
-1599	22	22
-1764
-
-chain 922960 chr4 191273063 + 69501928 69511937 chr4 191154276 + 69350000 69360000 3756
-714	8	8
-423	18	18
-882	33	33
-952	22	22
-607	1	0
-196	64	64
-495	3	0
-2055	2	0
-548	3	0
-2983
-
-chain 915200 chr4 191273063 + 69491934 69501928 chr4 191154276 + 69340000 69350000 3933
-1036	10	10
-2821	5	0
-53	40	40
-209	3	0
-3718	11	0
-421	0	23
-332	11	11
-292	0	2
-432	23	23
-159	20	20
-115	20	20
-263
-
-chain 911203 chr4 191273063 + 69431904 69441943 chr4 191154276 + 69280000 69290000 4026
-364	6	5
-212	4	0
-2445	40	15
-377	30	30
-1126	60	60
-262	8	6
-3222	145	138
-1738
-
-chain 903419 chr4 191273063 + 69401898 69411919 chr4 191154276 + 69250000 69260000 4208
-1051	52	52
-1007	0	1
-319	27	26
-154	98	97
-145	40	40
-512	23	0
-355	5	5
-126	19	19
-128	49	49
-67	0	1
-3337	0	2
-1729	5	5
-773
-
-chain 895926 chr4 191273063 + 69574644 69584607 chr4 191154276 + 69540037 69550000 4357
-3368	220	220
-1524	84	84
-1558	19	19
-889	41	41
-1592	43	43
-625
-
-chain 866339 chr4 191273063 + 69524748 69534617 chr4 191154276 + 69490119 69500000 4930
-190	50	50
-59	111	111
-51	7	7
-78	59	59
-58	121	121
-57	39	39
-70	0	1
-1558	108	108
-737	24	24
-3582	0	1
-84	0	10
-2826
-
-chain 659008 chr4 191273063 + 71711854 71718864 chr4 191154276 + 71492990 71500000 7936
-7010
-
-chain 608986 chr4 191273063 + 69375441 69381892 chr4 191154276 + 69223549 69230000 8701
-135	1	0
-2166	0	1
-4149
-
-chain 248590 chr4 191273063 + 69521941 69527313 chr4 191154276 + 69370000 69375377 111030
-2807	190	190
-50	59	59
-111	136	136
-59	58	58
-121	57	57
-39	1628	1633
-57
-
-chain 214386 chr4 191273063 + 71534589 71536854 chr4 191154276 + 71500000 71502265 534073
-2265
-
-chain 96900 chr4 191273063 + 3963456 3964475 chr4 191154276 + 3912520 3913539 1319679
-1019
-
-chain 52181 chr4 191273063 + 69624595 69625143 chr4 191154276 + 69590000 69590548 2441389
-548
-
-chain 20814 chr4 191273063 + 1495708 1495926 chr4 191154276 + 1526075 1526293 9826122
-218
-
-chain 8858 chr4 191273063 + 1496845 1496937 chr4 191154276 + 1526189 1526281 25171661
-92
-
-chain 8858 chr4 191273063 + 1496752 1496844 chr4 191154276 + 1526189 1526281 25171662
-92
-
-chain 8858 chr4 191273063 + 1496566 1496658 chr4 191154276 + 1526189 1526281 25171663
-92
-
-chain 7802 chr4 191273063 + 1492030 1492276 chr4 191154276 + 1522531 1522736 2805154
-25	83	42
-23	15	15
-4	55	55
-41
-
-chain 7606 chr4 191273063 + 69578098 69578232 chr12 133851895 + 88986938 88987072 9526361
-134
-
-chain 7510 chr4 191273063 + 1496208 1496286 chr4 191154276 + 1526203 1526281 25171660
-78
-
-chain 7439 chr4 191273063 + 1527942 1528019 chr4 191154276 + 1557568 1557645 18158883
-77
-
-chain 7376 chr4 191273063 + 1496452 1496529 chr4 191154276 + 1526075 1526152 27495831
-77
-
-chain 6986 chr4 191273063 + 59479326 59479400 chr7 159138663 + 119297971 119298045 28268313
-74
-
-chain 6131 chr4 191273063 + 1496080 1496144 chr4 191154276 + 1526075 1526139 27495827
-64
-
-chain 5599 chr4 191273063 + 1495650 1495708 chr4 191154276 + 1526203 1526261 27226300
-58
-
-chain 5460 chr4 191273063 + 1496658 1496715 chr4 191154276 + 1526095 1526152 27495830
-57
-
-chain 4356 chr4 191273063 + 1498960 1499009 chr4 191154276 + 1528103 1528152 18458745
-49
-
-chain 4121 chr4 191273063 + 69578012 69578069 chr3 198022430 - 95182224 95182281 17792812
-57
-
-chain 3000 chr4 191273063 + 1495929 1496022 chr4 191154276 + 1526110 1526203 11256589
-93
-
-chain 2961 chr4 191273063 + 69443663 69443695 chr4 191154276 - 68628109 68628141 14494983
-32
-
-chain 2485 chr4 191273063 + 1503833 1503862 chr4 191154276 + 1532970 1532999 23156792
-29
-
-chain 2401 chr4 191273063 + 1492301 1492331 chr4 191154276 + 1522679 1522709 5335388
-30
-
-chain 2012 chr4 191273063 + 1496731 1496752 chr4 191154276 + 1526075 1526096 27495829
-21
-
-chain 1744 chr4 191273063 + 1597414 1597448 chr4 191154276 + 1627062 1627096 3575887
-34
-
-chain 1461 chr4 191273063 + 69579763 69579840 chr5 180915260 + 121968423 121968500 3935628
-77
-
-chain 1332 chr4 191273063 + 69545913 69545943 chr11 135006516 - 130984886 130984916 21069914
-30
-
-chain 909 chr4 191273063 + 69582306 69582346 chr3 198022430 - 10790236 10790276 7796945
-40
-
-chain 18169122 chr4_random 842648 + 440032 631501 chr4_gl000194_random 191469 + 0 191469 150
-191469
-
-chain 18001815 chr4_random 842648 + 0 189789 chr4_gl000193_random 189789 + 0 189789 151
-189789
-
-chain 15268007 chr4_random 842648 + 681501 842648 chrUn_gl000218 161147 + 0 161147 194
-161147
-
-chain 9245037 chr4_random 842648 + 239789 336038 chr4 191154276 + 8829368 8925617 353
-96249
-
-chain 137712 chr4_random 842648 + 388580 390032 chr4 191154276 + 9620000 9621452 935614
-1452
-
-chain 10386 chr4_random 842648 + 388312 388420 chr11 135006516 - 91778086 91778194 21974850
-108
-
-chain 3377 chr4_random 842648 + 388277 388312 chr11 135006516 - 84847900 84847935 23649965
-35
-
-chain 2456 chr4_random 842648 + 388184 388235 chrX 155270560 - 93144339 93144390 24160146
-51
-
-chain 16791974256 chr5 180857866 + 63000 180837866 chr5 180915260 + 10000 180905260 5
-17520657	24032	50000
-1688	3435	1
-37	1399	0
-27	2	1
-8	1	1
-3983	3434	0
-103	1	1
-32	1	1
-67	1	1
-35	1	1
-752	1669	0
-43	1	1
-1207	0	1
-46	0	1
-5	0	1
-19	1	1
-70	3434	0
-962	16	16
-1905	44	44
-85	41	41
-332	49	49
-1675	23	23
-1185	11	11
-124	35	35
-713	105	105
-408	4	4
-113	16	16
-1835	1	2
-26	7	8
-18	2730	25
-3103	1	0
-7858	718	10488
-307	1	636
-7461	0	1
-23772	51	0
-4031	0	1
-20571	0	1
-9135	0	2
-6885	2	3
-110	3	0
-816	2	3
-2295	0	34
-3936	28	28
-3536	0	2
-2917	0	1
-652	1	1
-37	1	1
-657	1	1
-22	1	1
-419	3	4
-3580	1	1
-29	1	1
-274	11	35
-835	3036	0
-1907	1	0
-10504	30	28
-784	0	6
-127	10	0
-668	1	1
-28	1	1
-2467	4	0
-179	0	2
-1650	1	1
-39	1	1
-2433	1	0
-720	1	1
-40	1	1
-772	1	1
-32	1	1
-353	1	1
-17	1	1
-1776	0	1
-6082	3	0
-2669	12	10
-2857	1	1
-35	1	1
-722	60	60
-200	1	1
-240	1	1
-4048	1	1
-49	1	1
-702	1	1
-33	1	1
-2927	1	2
-1487	17	0
-276	16	16
-1039	1	1
-35	1	1
-2068	1	1
-40	1	1
-828	1	1
-36	2	0
-317	8	0
-893	1	1
-33	1	0
-8143	0	4
-28632199	3000000	3000000
-12470071	0	1
-29760415	40000	50000
-5878002	23000	20845
-4521	1	0
-676	6	6
-5928	0	1
-372	1	1
-47	1	1
-6801	3	2
-639	0	1
-871	3	4
-11530	0	4
-22966	0	1
-15447	0	1
-53856	0	2
-15988	0	2
-906887	10	11
-40152817	5000	52715
-3521239	0	1
-1604	10	0
-12778810	4100	51715
-15152692	27	0
-1852096	1	0
-8710030
-
-chain 924655 chr5 180857866 + 17585088 17611949 chr5 180915260 - 163333152 163394435 1227
-14	409	52001
-494	3435	1
-24	1	1
-1487	10	10
-682	13	13
-132	3449	15
-306	1	1
-74	1	1
-967	3434	0
-1285	3434	0
-68	4569	1135
-2087	50	50
-435
-
-chain 315813 chr5 180857866 + 17584685 17618655 chr5 180915260 + 17581691 17599590 1580
-403	14	14
-237	1475	75
-628	25	25
-51	89	89
-304	24	24
-70	33	33
-37	698	698
-667	3506	72
-1354	96	96
-75	4	4
-752	1710	41
-450	382	382
-51	14129	7264
-237	12	12
-614	37	37
-134	16	16
-422	31	31
-796	4345	1642
-62
-
-chain 312488 chr5 180857866 + 17597387 17639380 chr5 180915260 + 17580657 17599710 1454
-373	70	70
-1245	2263	863
-1184	3434	0
-1733	3775	2106
-50	9111	2246
-1078	993	993
-1363	8015	1147
-44	85	85
-41	332	332
-49	6299	3596
-341	45	44
-70
-
-chain 265075 chr5 180857866 + 17745718 17748537 chr5 180915260 + 17713035 17715853 333767
-1906	1	0
-912
-
-chain 207388 chr5 180857866 + 17584033 17596937 chr5 180915260 + 17583073 17597745 2201
-51	557	557
-14	17	17
-13	654	654
-172	494	494
-219	23	23
-567	4975	6743
-176	6	6
-865	14	14
-96	1354	1354
-26	2261	2261
-350
-
-chain 193008 chr5 180857866 + 17583668 17629078 chr5 180915260 + 17580674 17599710 1465
-356	84	84
-533	3434	0
-698	5562	728
-51	4689	1255
-946	4787	1353
-543	8	8
-167	12743	7643
-324	5466	2032
-306	3553	850
-1045	45	44
-70
-
-chain 130263 chr5 180857866 + 17639380 17641654 chr5 180915260 + 17592112 17594386 19200
-936	23	23
-116	16	16
-1183
-
-chain 123401 chr5 180857866 + 17602522 17620625 chr5 180915260 + 17589594 17593961 2306
-159	16	16
-1763	19	19
-54	14448	712
-1644
-
-chain 53192 chr5 180857866 + 17626966 17629142 chr5 180915260 + 17590000 17592176 2614
-952	1045	1045
-45	70	70
-64
-
-chain 42492 chr5 180857866 + 17625757 17626966 chr5 180915260 - 163394507 163395716 9006
-1209
-
-chain 23743 chr5 180857866 + 17605548 17605956 chr5 180915260 + 17596054 17596462 38000
-290	9	9
-109
-
-chain 20601 chr5 180857866 + 17748538 17748754 chr5 180915260 + 17712817 17713033 9842237
-216
-
-chain 11635 chr5 180857866 + 17618762 17618981 chr5 180915260 + 17595532 17595751 149283
-219
-
-chain 9108 chr5 180857866 + 17618655 17618762 chr5 180915260 + 17583355 17583462 1340460
-107
-
-chain 7916 chr5 180857866 + 17587442 17604673 chr5 180915260 - 163387098 163397461 2244
-25	61	61
-79	398	398
-33	16608	9740
-27
-
-chain 7204 chr5 180857866 + 17604533 17604646 chr5 180915260 + 17599204 17599317 3499
-113
-
-chain 4292 chr5 180857866 + 17639265 17639310 chr5 180915260 + 17595431 17595476 67944
-45
-
-chain 2558 chr5 180857866 + 17604673 17604706 chr5 180915260 + 17591745 17591778 3790746
-33
-
-chain 2511 chr5 180857866 + 170275712 170275739 chr5 180915260 + 170343161 170343188 11152528
-27
-
-chain 2447 chr5 180857866 + 17635643 17636496 chr5 180915260 - 163394091 163394944 8841
-35	713	713
-105
-
-chain 2252 chr5 180857866 + 17601306 17601338 chr5 180915260 + 17595246 17595278 11344
-32
-
-chain 2027 chr5 180857866 + 17785693 17785748 chr18 78077248 - 45596607 45596662 524022
-55
-
-chain 1518 chr5 180857866 + 17629142 17629191 chr5 180915260 - 163394458 163394507 205933
-49
-
-chain 1109 chr5 180857866 + 17613421 17613452 chr5 180915260 - 163395907 163395938 8647
-31
-
-chain 143977943 chr5_h2_hap1 1794870 + 0 1794870 chr5 180915260 + 68505249 71134051 52
-5440	1	0
-1785	0	1
-12373	0	2
-7216	0	1
-714	2	0
-4360	0	1
-11179	1	0
-2027	1	0
-6969	0	2
-3779	1	0
-634	4	3
-1384	0	9
-378	0	2
-1153	3	0
-1246	0	6
-1427	0	2
-608	1	1
-23	1	1
-1981	44	44
-3998	1	1
-33	5	0
-148	1	1
-18	1	0
-331	2	0
-162	1	0
-333	0	1
-644	1	0
-2053	1	0
-1896	0	1
-2096	1	1
-32	1	1
-265	0	14
-1061	0	1
-7303	6	6
-1313	1	0
-3225	0	2
-65	1	1
-220	1	1
-1422	0	1
-248	1	1
-21	2	0
-641	0	1
-163	3	0
-522	1	0
-1685	0	1
-299	1	1
-16	1	0
-3259	1	0
-6492	9	9
-700	0	2
-379	1	0
-186	0	16
-21	0	27
-242	21	19
-156	0	3
-2040	1	0
-7852	0	2
-1267	0	4
-8016	0	1
-2057	85	0
-449	0	1
-2797	0	1
-3858	0	1
-2129	1	0
-234	1	1
-28	1	1
-2923	0	3
-4346	1	0
-2467	1	0
-11093	1	0
-3932	0	3
-2223	1	1
-22	0	1
-25	0	6
-1909	2	0
-1136	1	0
-658	2	0
-32	8	0
-9	2	0
-14	15	11
-22	14	0
-20	51	1
-34	2	0
-43	0	2
-38	127	19
-15	14	0
-41	0	5
-9200	1	0
-2655	1	0
-38	1	1
-237	1	1
-28	1	1
-1065	1	0
-2979	3	0
-13	1	1
-653	4	0
-1950	1	0
-2320	2	0
-817	3	0
-524	8	0
-417	1	0
-873	1	0
-352	1	0
-152	2	0
-651	1	0
-285	1	0
-1830	0	1
-1271	0	1
-957	0	1
-1506	2	0
-2454	4	0
-6	4	0
-300	1	1
-68	1	1
-1648	0	1
-10725	10	10
-1308	2	1
-48	1	1
-1242	15	0
-1869	1	0
-26	0	452
-1178	0	3
-43	0	4
-3567	0	1
-2289	0	1
-695	0	6
-721	13	14
-192	0	2
-1190	1	1
-36	1	1
-451	0	1
-4137	1	0
-809	23	0
-1624	0	4
-453	4	0
-983	0	1
-188	0	5
-489	0	1
-299	11	11
-1923	1	0
-168	0	1
-891	1	1
-54	0	1
-908	0	28
-1224	2	0
-175	0	1
-459	2	0
-119	133	153
-50	13	13
-4001	0	1
-4764	3	0
-90	1	1
-117	92	0
-325	0	27
-19	1	1
-92	1	67
-21	1	28
-15	1	28
-9013	0	1
-1376	0	1
-674	10	0
-87	0	1
-1317	43	35
-260	1	0
-1518	11	12
-232	0	1
-1093	0	1
-737	0	2
-176	10	10
-664	1	1
-33	1	1
-2816	3	0
-4679	0	2
-3212	0	2
-2383	14	16
-3049	0	1
-146	1	0
-721	1	1
-35	1	1
-2260	2	0
-1228	0	1
-682	1	0
-8927	1	0
-795	2	0
-5278	0	2
-5578	13	0
-3665	20	0
-1852	9	0
-4564	1	1
-20	4	0
-111	1	1
-1065	37	37
-2979	1	0
-820	0	1
-9147	0	1
-411	0	1
-745	2	0
-144	3	3
-27	2	0
-734	1	1
-38	1	1
-105	0	4
-554	1	0
-35	1	1
-226	2	0
-254	1	1
-39	1	1
-3302	0	2
-16	1	1
-1276	1	1
-57	1	1
-122	5	0
-178	0	1
-29	1	1
-89	1	1
-32	1	1
-1743	1	0
-294	1	1
-27	1	1
-1925	1	1
-48	1	1
-116	1	1
-20	1	1
-163	4	4
-821	4	3
-46	1	1
-247	1	1
-27	2	2
-613	1	1
-44	1	1
-181	9	7
-1220	1	1
-53	0	3
-596	1	0
-1052	12	12
-130	1	0
-1524	0	1
-1878	1	4
-76	0	1
-6	0	5
-895	0	1
-290	9	5
-783	1	1
-45	1	1
-1910	1	1
-48	1	1
-409	1	1
-30	1	1
-158	2	0
-69	6	0
-428	1	1
-136	1	1
-418	44	44
-767	35	27
-711	1	1
-28	1	1
-1137	1	0
-585	1	0
-433	13	0
-3034	1	0
-961	0	3
-950	1	1
-15	1	1
-948	0	5
-153	21	20
-181	38	38
-765	8	10
-207	13	15
-3092	4	0
-202	5	5
-1406	0	5
-205	1	1
-44	1	1
-2719	1	1
-36	1	1
-1050	0	9
-108	0	2
-1177	4	0
-115	1	1
-2051	15	0
-520	8	8
-1072	0	1
-595	2	0
-4576	73	73
-6176	1	0
-1299	1	1
-29	1	0
-496	0	4
-379	2024	0
-7	3663	0
-82	4	0
-79	6	1
-556	11	0
-598	9	9
-138	77	73
-1651	3	9
-3302	0	8
-429	1	0
-163	0	3
-60	3	0
-132	1	1
-23	1	0
-1660	1	16
-2124	0	1
-1601	9	0
-35	525	6
-38	1	1
-235	1	30
-497	1	1
-37	1	0
-79	0	1
-1239	1	1
-31	1	1
-135	1	0
-5	2	0
-669	0	1
-1158	1595	0
-21	3	0
-5	126998	500121
-730	31	27
-278	0	2
-352	0	12
-363	13	21
-366	1	0
-378	3	0
-61	1	0
-105	17	68
-1480	32	32
-640	1	1
-52	1	1
-482	1	0
-638	1	1
-20	1	0
-21	1	1
-326	1	1
-37	1	1
-995	0	7
-1685	0	1
-1607	9	8
-633	1	1
-37	1	1
-697	6	6
-1363	8	8
-234	1	1
-44	1	1
-3022	5	6
-96	12	11
-674	4	0
-768	0	1
-169	3	0
-2083	0	1
-1098	20	20
-5586	1	0
-174	28	13
-366	2	0
-202	1	1
-69	1	1
-682	5	5
-3457	1	0
-232	1	0
-305	10	0
-1770	40	40
-349	38	38
-401	0	1
-441	7	3
-547	11	10
-210	4	0
-779	4	0
-193	4	0
-576	0	4
-514	48	48
-789	23	16
-2496	25	25
-874	25	11
-2776	19	19
-2824	4	0
-440	0	2
-876	14	14
-1198	39	39
-521	6	0
-126	40	40
-315	29	29
-616	94	99
-285	35	35
-175	12	12
-320	17	1
-3339	0	1
-260	49	49
-109	11	11
-586	0	1
-133	19	13
-8202	0	1
-307	0	1
-1366	1	0
-1073	9	12
-1385	0	1
-321	106	108
-1101	28	28
-483	42	42
-1752	58	58
-166	37	36
-748	16	16
-52	1	0
-1679	0	2
-455	9	17
-484	1	10
-74	33	33
-155	0	1
-62	0	8
-424	23	23
-491	8	9
-450	0	2
-63	1	0
-410	5	0
-1131	165	170
-254	39	39
-1162	0	272664
-1919	1	1
-82	1	1
-740	4	4
-261	1	1
-83	1	1
-52	1	1
-49	1	1
-231	6	6
-244	1	1
-21	1	1
-52	44	44
-114	20	20
-87	32	32
-149	0	6
-202	50	50
-115	44	44
-114	65	65
-50	111	111
-61	52	52
-101	42	45
-250	15	15
-208	1	0
-2259	3	0
-239	64	66
-168	10	10
-2393	1	1
-38	1	1
-674	1	1
-29	1	1
-469	22	25
-827	1	0
-1679	0	1
-463	9	13
-232	1	0
-248	1	5
-325	0	7
-1389	0	4
-63	1	0
-410	6	0
-685	3	0
-35	1	1
-407	166	168
-253	39	39
-71	0	4
-1288	35	35
-1697	32	32
-243	22	22
-395	51	51
-259	49	49
-108	6	6
-54	168	168
-464	45	45
-81	20	20
-84	21	21
-240	25	25
-584	0	810
-126	4	4
-42	6	6
-101	0	3
-41	1	1
-473	1	0
-373	1	1
-41	1	1
-614	1	1
-41	1	18042
-857	50	50
-279	2	0
-246	67	69
-160	10	10
-199	0	1
-154	1	0
-276	28	28
-124	29	28
-105	7	7
-355	1	1
-45	1	1
-299	1	1
-25	1	1
-283	30	35
-594	2	0
-1401	1	1
-46	1	1
-123	4	0
-830	1	0
-100	1	1
-61	1	1
-737	2	7
-285	1	1
-58	1	1
-143	18	0
-19	1	1
-575	1	1
-91	1	1
-318	2	0
-4090	4	0
-702	0	1
-2007	0	2
-901	0	1
-79	9	9
-31	3	3
-1203	1	0
-16	1	1
-574	1	1
-28	1	1
-346	6	0
-25	1	3
-22	2	0
-34	4	0
-7	1	0
-20	18	22
-511	0	5
-5088	0	1
-1065	0	4
-51	2	0
-2714	25	25
-81	8	8
-56	788	18
-22	1	1
-4702	0	1
-536	6	6
-3900	1	0
-1063	0	8
-4095	1	0
-1841	1	3
-1015	0	1
-2808	1	1
-17	1	1
-340	1	1
-39	1	1
-1548	1	1
-73	1	1
-291	1	0
-236	72	43
-104	0	1
-1843	4	0
-80	15	15
-1140	29	1
-45	1	1
-1245	3	0
-194	1	0
-816	11	1
-25	1	11
-47	1	1
-508	0	1
-255	1	1
-24	1	0
-319	13	13
-1846	397	398
-803	0	37
-509	0	12
-130	0	4
-609	0	3
-6495	1251	1253
-1091	11	11
-384	2	0
-1657	31	30
-109	31	31
-2815	63	63
-85	0	13
-589	48	48
-194	25	25
-1068	16	16
-209	2	0
-215	47	47
-1775	127	77
-533	188	0
-1164	1	0
-1863	1	1
-29	1	1
-1993	1	1
-19	1	1
-782	2	0
-3224	2	0
-22	1	11
-473	332	0
-604	1	1
-28	1	1
-223	1	1
-28	1	1
-2870	0	1
-38	1	1
-313	1	0
-768	0	1
-1039	9	9
-886	0	4
-243	0	1
-172	17	17
-2721	1	1
-71	0	1
-607	105	117
-54	46	44
-2057	1	1
-32	1	1
-452	1	1
-49	1	1
-169	322	6
-26	1	0
-567	3	0
-2324	1	0
-825	4	0
-1251	4	4
-2651	0	4
-703	14	19
-10731	13	0
-741	2	0
-1659	0	12
-7683	0	6
-838	1	0
-2905	12	326
-1714	1	0
-1172	90	100
-619	2	0
-263	0	59
-730	1	0
-56	4	0
-1746	17	17
-377	1	1
-27	4	0
-836	1	1
-67	1	1
-1022	0	1
-1096	1	1
-40	0	1
-8	1	1
-1864	1	0
-56	5	1
-6	0	10
-114	1	1
-34	1	1
-631	19	19
-139	13	13
-1330	1	11
-22	2	0
-2846	1	0
-358	0	2
-798	11	11
-3004	1	1
-30	1	1
-2032	1	16
-752	16	0
-40	0	6
-3211	0	1
-965	0	14
-2978	1	1
-29	1	1
-138	0	2
-1646	2	0
-375	1	1
-31	1	1
-6235	0	2
-2598	0	3
-592	0	4
-135	0	12
-3892	1	0
-840	0	12
-5528	9	5
-5400	0	1
-181	0	1
-836	0	3
-3087	1	1
-46	1	1
-2796	11	9
-6282	1	1
-25	1	1
-2009	1	1
-56	0	2
-209	15	15
-2433	1	1
-50	1	1
-366	1	0
-3233	0	1
-5144	0	2
-811	53	22
-23	1	0
-6	1	3
-43	0	2
-13	2	0
-5	0	14
-634	8	8
-1663	10	12
-433	1	1
-43	1	1
-397	2	0
-638	1	1
-42	1	1
-285	1	1
-28	1	1
-516	1288	2
-424	4	0
-660	1	1
-49	1	1
-816	0	12
-1015	1	1
-47	1	1
-988	0	3
-1000	14	32
-330	1	1
-38	1	1
-124	7	2
-43	1	1
-693	1	1
-61	1	1
-94	0	1
-963	1	1
-46	1	1
-1393	0	2
-139	2	0
-113	1	1
-20	1	1
-323	6	0
-34	0	1
-978	1	1
-38	1	1
-105	1	1
-18	1	2
-43	1	1
-381	0	1
-811	15	8
-2537	0	2436
-2642	1	1
-42	4	0
-92	10	10
-1363	1	1
-37	1	1
-252	5	0
-165	1	1
-329	1	1
-77	1	1
-705	0	6
-258	6	6
-155	0	1
-57	2	0
-1380	5	0
-348	2	0
-489	9	5
-448	1	0
-1681	0	1
-835	29	25
-1359	36	36
-223	0	1
-399	15	15
-466	4	4
-75	10559	200741
-1150	1	0
-682	12	15
-802	53	53
-535	1	0
-65	62	63
-497	30	1
-1458	1	0
-683	0	1
-1449	1	0
-977	15	0
-1636	0	4
-216	3	0
-587	0	10
-4302	1	1
-28	1	1
-733	0	4
-138	9	9
-595	0	11
-249	1	1
-65	1	1
-242	1	6
-74	0	4
-87	6	5694
-363	4	0
-513	0	1
-29	1	1
-1297	0	1
-415	1	3
-1947	0	2
-978	0	1
-3121	1	1
-17	1	1
-872	1	1
-31	1	1
-602	8	8
-238	1	1
-36	1	1
-930	1	1
-36	1	1
-1073	22	0
-494	0	1
-66	1	5
-60	1	1
-15	1	1
-452	1	0
-1587	0	7
-1465	1	1
-27	1	1
-76	1	1
-44	1	1
-143	16	14
-323	23	23
-685	1	1
-15	1	1
-136	6	0
-400	0	2
-109	3	0
-50	1	1
-18	1	1
-985	1	1
-38	1	1
-1034	12	12
-247	1	1
-91	2	1
-1383	1	1
-44	1	1
-164	15	16
-292	1	1
-47	1	1
-73	1	1
-43	1	1
-203	1	0
-420	1	1
-37	1	1
-449	0	2
-25	0	4
-415	4	6
-155	1	1
-26	1	1
-199	1	1
-41	0	32
-20	1	1
-68	1	1
-28	1	1
-2097	13	15
-207	8	10
-984	21	20
-134	5	0
-967	10	10
-956	3	0
-4424	5	6
-595	0	1
-1140	1	1
-28	1	1
-733	7	16
-1218	149	149
-429	0	4
-59	0	2
-2568	1	1
-45	1	1
-784	5	8
-289	1	0
-877	5	0
-34	1	0
-68	4	1
-735	1	1
-35	1	1
-1094	4	4
-1519	5	6
-138	12	12
-1044	0	1
-91	80	80
-369	1	1
-53	2	0
-63	1	1
-1220	7	9
-181	1	1
-44	1	1
-134	0	3
-476	2	2
-27	1	1
-205	1	1
-88	2	2
-822	4	4
-163	22	22
-116	1	1
-48	1	1
-3849	1	1
-21	1	1
-120	1	1
-32	1	1
-89	1	1
-29	1	0
-178	3	6
-1452	19	17
-5455	1	0
-10333	1	0
-784	0	1
-55	8	0
-468	0	1
-539	12	0
-98	1	1
-24	1	1
-77	1	1
-81	1	1
-4604	17	19
-7803	7	7
-807	0	1
-2260	7	5
-980	0	1
-2105	0	1
-4083	0	1
-836	0	2
-5612	1	0
-519	0	1
-1334	0	1
-2401	0	9
-1823	1	0
-159	0	2
-484	2	0
-14815	1	1
-36	1	1
-2512	4	0
-58	3	0
-3277	1	0
-559	0	1
-4024	1	0
-4383	22	13
-4131	1	1
-35	1	1
-290	1	1
-29	3	0
-533	1	0
-305	0	1
-2608	0	1
-443	3	1
-2322	0	20
-514	1	1
-46	1	1
-791	19	30
-3206	3	0
-6272	0	2
-1789	8	0
-291	39	39
-521	6	0
-126	40	40
-315	29	29
-616	94	99
-206	114	109
-506	0	14
-2370	0	2
-4709	1	1
-36	1	1
-5588	0	11
-299	1	0
-1366	1	0
-1644	1	1
-28	1	0
-4859	16	21
-1992	0	10
-505	0	1
-448	8	12
-721	40973	60417
-3484	1	1
-40	1	1
-2152	0	2
-5298	39	40
-141	25	25
-427	0	11
-1543	1	0
-3707	0	1
-1056	292	8656
-1768	2	0
-717	1	0
-14041	0	1
-4167	0	2
-7403	5	0
-7673	0	1
-3630	67	67
-74	129	129
-226	1	0
-1720	138	136
-1185	1	0
-878	46874	0
-862	1	1
-31	1	1
-9409	1	1
-37	1	1
-2231	0	2
-1682	0	1
-13767	0	1
-9473	0	1
-7168	2	0
-12384	1	0
-1188	0	4
-2044	1	0
-3076	1	0
-796	0	1
-5477	0	2
-5780	1	0
-6338	1	0
-2680	0	4
-2033	0	1
-9452	0	12
-402983
-
-chain 13752336 chr5_h2_hap1 1794870 + 324513 1282806 chr5 180915260 - 110525721 111977366 61
-37	39926	39909
-44	767	767
-34	9178	9179
-38	20004	20004
-27	1	1
-44	8383	8384
-1071	3	3
-511	0	1
-439	7	7
-3663	1483	1482
-77	11199	11214
-525	4132	4132
-704	1	0
-729	3	0
-158	29	29
-653	0	3
-154	0	2
-7041	8	0
-2068	0	7
-166	1	0
-812	6	7
-25	1	1
-1423	0	8
-438	0	1
-4783	0	1
-31	1	1
-1269	1	0
-926	3	0
-2542	2	0
-112	1	1
-2183	1	1
-59	1	1
-1605	2	2
-4515	0	1
-4368	1	0
-382	0	34
-60	1	1
-86	0	1
-552	6	6
-892	1	1
-33	1	1
-6705	0	1
-934	0	2
-8985	2	1
-445	6	0
-6283	0	1
-456	0	1
-1101	0	5
-696	0	1
-2973	6	0
-158	0	3
-449	0	3
-657	12	12
-151	0	1
-406	1	1
-55	1	1
-163	1	1
-72	1	1
-1955	1	0
-713	0	1
-3050	1	1
-35	1	1
-3127	1	0
-233	1	0
-1343	17	7
-1250	3	0
-322	1	0
-2081	0	1
-2413	5	0
-818	0	1
-18	1	1
-268	0	1
-271	1	1
-35	1	0
-586	2	0
-1192	0	1
-494	2	0
-4657	1	1
-30	5	0
-2172	0	334
-1981	5	0
-33	321	0
-2633	2	0
-142	1	0
-1597	7	0
-248	1	0
-317	1	1
-21	1	1
-441	0	1
-600	6	4
-35	1	1
-1593	2	6
-9303	1	0
-2781	0	2
-6052	0	4
-771	1	0
-1500	14	0
-1544	730	730
-31	3419	3419
-30	30394	30395
-40	349	349
-38	3691	3690
-48	3308	3306
-25	874	880
-25	8151	8151
-39	653	653
-40	315	315
-29	616	616
-94	285	285
-35	4123	4120
-49	13570	13573
-58	30899	10440
-165	1652	1655
-35	1697	1697
-32	660	660
-51	259	259
-49	168	168
-168	464	464
-45	446	446
-25	3886	3879
-67	800	800
-28	124	124
-29	1123	1123
-30	24987	23723
-2	1	1
-21	146	146
-2	1	1
-785	22543	22552
-67	3192	3170
-28	5357	5348
-397	8546	8565
-1251	3145	3145
-31	110	110
-29	2816	2816
-63	674	688
-48	195	195
-23	1511	1509
-47	1810	1786
-37	14	0
-41	533	533
-182	1	16
-5	20555	20281
-49	1	21
-55	54	52
-46	2763	2762
-37	5	2
-280	124045	123118
-495	0	1
-703	3	0
-87	27183	48462
-36	1182	1182
-389	16	16
-257	1	0
-118	3	3
-547	1	1
-25	1	1
-126	0	2
-3598	810	0
-148	0	6
-483	1	1
-34	1	1
-266	6	6
-350	2	2
-30	1	1
-297	4	4
-666	1	1
-89	1	1
-52	15	15
-2220	2647	2651
-53	53651	53634
-149	9850	9843
-39	1	1
-39	116984	481498
-39	653	653
-40	315	315
-29	616	616
-94	206	206
-114	65101	68610
-358	27	27
-588	11156	11155
-25	56460	137674
-105	1	0
-2251	13	13
-319	25	26
-826	25	25
-370	7	7
-439	0	1
-192	7	1
-250	0	13
-1302	1	8
-866	91	94
-91	14	14
-501	1	0
-1238	1	0
-113	475	60006
-212	8	10
-907	0	4
-350	1	0
-486	9	17
-448	0	2
-515	0	10
-788	13213	230
-199	16	16
-645	0	2
-112	37	25
-634
-
-chain 283844 chr5_h2_hap1 1794870 + 1261701 1280951 chr5 180915260 + 69698102 69815360 1487
-91	6326	96869
-318	0	10
-505	0	1
-204	64	64
-440	1	0
-235	0	1
-1269	0	1
-945	1	0
-670	242	551
-75	3	0
-1233	50	50
-199	4900	12045
-409	59	59
-310	37	40
-664
-
-chain 206667 chr5_h2_hap1 1794870 + 1287039 1295912 chr17 81195210 + 76583705 76597262 568754
-558	4	0
-365	2	2
-40	0	1
-253	1	1
-31	1	1
-522	6316	11003
-780
-
-chain 184822 chr5_h2_hap1 1794870 + 1284679 1286632 chr17 81195210 - 4506444 4508397 671275
-1953
-
-chain 128717 chr5_h2_hap1 1794870 + 1283006 1284382 chr5 180915260 + 70517839 70519212 1000883
-791	20	17
-565
-
-chain 128621 chr5_h2_hap1 1794870 + 1291852 1293214 chr17 81195210 + 76573863 76575225 1001637
-1362
-
-chain 122147 chr5_h2_hap1 1794870 + 627399 939358 chr5 180915260 - 110828619 111993762 93
-42	1752	1753
-58	6978	6974
-165	255	254
-37	4915	4915
-44	4384	4378
-64	19819	875253
-39	1	1
-9	264030	261784
-58	0	6
-56	6	6
-105	3	3
-98	1	1
-483	7968	7968
-62	497	497
-30
-
-chain 118081 chr5_h2_hap1 1794870 + 1290357 1291631 chr4 191154276 - 20442500 20443774 1089300
-230	18	18
-1026
-
-chain 112391 chr5_h2_hap1 1794870 + 1288972 1290160 chr17 81195210 - 4580707 4581894 1143267
-1134	1	0
-53
-
-chain 92982 chr5_h2_hap1 1794870 + 1293593 1294614 chr4 191154276 + 170627590 170628611 1373141
-72	1	1
-129	1	1
-818
-
-chain 75482 chr5_h2_hap1 1794870 + 1274745 1276419 chr5 180915260 - 111410923 111412615 820
-271	0	10
-350	0	6
-499	9	9
-444	0	2
-101
-
-chain 68300 chr5_h2_hap1 1794870 + 1276804 1279228 chr5 180915260 - 110416917 110419341 216
-2424
-
-chain 29652 chr5_h2_hap1 1794870 + 524804 525112 chr3 198022430 + 8519605 8519913 4781887
-308
-
-chain 29428 chr5_h2_hap1 1794870 + 756919 757240 chr2 243199373 + 16251117 16251431 4913030
-177	7	0
-137
-
-chain 27649 chr5_h2_hap1 1794870 + 641866 1186473 chr5 180915260 + 68929706 69564604 89
-32	351	351
-50	115	115
-44	114	114
-65	50	50
-111	61	61
-52	101	101
-42	14056	14883
-33	529303	618767
-27
-
-chain 20581 chr5_h2_hap1 1794870 + 1249367 1254462 chr5 180915260 - 111122604 111127700 1762
-2153	24	24
-85	8	8
-1086	0	1
-1739
-
-chain 5516 chr5_h2_hap1 1794870 + 253548 253608 chr5 180915260 + 68759177 68759237 7759123
-60
-
-chain 5218 chr5_h2_hap1 1794870 + 1244675 1244945 chr5 180915260 - 159621198 159621468 493
-30	1	1
-36	122	122
-81
-
-chain 4702 chr5_h2_hap1 1794870 + 1279881 1280287 chr5 180915260 + 70518261 70518663 9283
-59	311	307
-36
-
-chain 4436 chr5_h2_hap1 1794870 + 1274323 1274373 chr5 180915260 + 70526833 70526883 9273
-50
-
-chain 4277 chr5_h2_hap1 1794870 + 625682 625728 chr5 180915260 - 111701952 111701998 814
-46
-
-chain 3978 chr5_h2_hap1 1794870 + 1276419 1276466 chr5 180915260 + 70082181 70082228 137301
-47
-
-chain 3805 chr5_h2_hap1 1794870 + 1244816 1244863 chr5 180915260 + 69926901 69926948 475
-47
-
-chain 2924 chr5_h2_hap1 1794870 + 253608 253640 chr5 180915260 + 68759034 68759066 4803455
-32
-
-chain 943 chr5_h2_hap1 1794870 + 1282135 1282172 chr5 180915260 - 111121871 111121900 54522
-21	8	0
-8
-
-chain 692 chr5_h2_hap1 1794870 + 1276691 1276804 chr5 180915260 + 21496928 21497041 821
-113
-
-chain 13519395 chr5_random 143687 + 0 143687 chr5 180915260 + 180261930 180405660 222
-5859	0	4
-460	1	1
-23	0	2
-42	1	3
-42	1	1
-1633	55	55
-2271	0	10
-1279	2	0
-761	2	0
-25	1	1
-150	13	13
-4989	0	1
-1174	1	1
-23	1	1
-495	16	16
-2709	1	4
-349	0	4
-466	0	1
-292	2	0
-184	0	5
-621	13	13
-1788	2	0
-21	1	1
-731	12	12
-149	0	3
-5100	1	0
-1059	0	3
-1724	2	0
-4111	1	0
-890	4	4
-47	1	1
-1137	0	1
-147	17	19
-72	1	1
-22	1	1
-365	1	1
-19	2	2
-1360	0	1
-1476	1	1
-43	1	1
-1141	1	0
-2615	18	18
-4308	0	4
-135	0	2
-1484	8	6
-7384	0	11
-284	1	1
-69	1	1
-232	6	0
-1064	0	2
-4530	0	1
-4542	6	6
-10543	1	0
-4051	2	0
-11340	5	6
-4936	1	0
-12029	3	3
-43	1	1
-2955	27	27
-775	0	10
-822	1	0
-2057	1	0
-733	0	1
-4016	0	1
-4514	1	1
-49	1	1
-4484	1	0
-784	1	1
-25	1	1
-5707	2	0
-1274	1	0
-289	1	1
-34	1	0
-80
-
-chain 15799018021 chr6 170899992 + 5000 170896992 chr6 171115067 + 60000 171055067 6
-1297281	0	1
-7806978	162987	0
-4013144	0	9
-261	15	13
-18786172	17	17
-439	16	16
-59	4	5
-32202	17	17
-439	16	16
-59	5	4
-15403	0	1
-13914166	0	4
-115	1	1
-17	1	1
-415	0	12
-105	3	6
-12160281	50000	50000
-642507	3050000	3100000
-248423	50000	50000
-2918791	0	1238
-9427508	4	4
-162	12	12
-2193	22	22
-293	1	1
-30	1	1
-845	0	1
-45	1	1
-9769	0	2
-6058	1	1
-24	1	1
-2223	1	1
-24	1	1
-182	12	12
-284	1	1
-20	1	1
-970	1	1
-64	36	7
-575	43	43
-389	1	1
-27	1	1
-3279	1	1
-44	1	0
-3012	0	1
-545	17	17
-2562	1	0
-251	1	0
-943	0	8
-29	1	1
-566	0	6
-1483	0	2
-1960	0	1
-4564	1	1
-25	1	1
-832	1	0
-801	8	8
-1131	1	1
-58	1	5
-6177	1	0
-3712	0	1
-2185	1	1
-35	1	1
-710	2	2
-78	1	1
-2201	1	1
-30	1	1
-283	1	1
-30	1	1
-448	0	1
-75012	0	8
-2508457	0	1
-4641788	5	5
-37	1	1
-8503609	2	0
-5363169	200000	150000
-6040303	1	1
-36	0	1
-2020	1	1
-46	1	1
-1559	1	1
-72	1	1
-1098	1	1
-29	1	1
-264	7	7
-580	1	0
-30	1	1
-536	1	1
-41	1	1
-5663	0	1
-423	0	2
-372	1	1
-18	1	1
-9612	0	1
-1414	0	1
-176	2	0
-2742	0	1
-1968	1	0
-754	0	1
-4237	1	0
-2388	1	1
-31	0	1
-3385	1	0
-2004	0	8
-3395	3	0
-32	1	1
-4109	1	0
-1055	0	20
-1611	0	1
-17198424	26	17
-7835	1	0
-11119	1	1
-5197	0	11
-4791	1486	66479
-6787989	1	0
-149	0	4
-947	0	4
-244	1	0
-28418215	1	1
-21	0	1
-3116903	50000	171704
-1939305	1	1
-19	2	0
-8192274	4	4
-122	2	0
-1127	0	1
-1104	1	102
-18	0	29
-40	0	3
-22	1	4
-50	0	26
-56	18125	195105
-950946	1	157
-51	1	1
-104	0	255
-610	0	408
-104	0	105
-1285158	150028	50028
-725067
-
-chain 8374990 chr6 170899992 + 9109557 9199728 chr6 171115067 + 9164559 9254607 394
-3887	2	0
-1509	45	45
-888	7	8
-372	0	1
-4746	3	0
-1114	31	31
-140	35	35
-2111	13	13
-445	248	137
-1437	38	38
-55	25	25
-739	19	19
-2479	70	58
-1297	0	4
-7065	24	24
-542	31	31
-531	22	22
-824	0	1
-2286	40	39
-1209	48	48
-1435	6	0
-4096	4	0
-495	41	42
-6884	0	1
-3177	0	1
-2843	0	1
-904	5	5
-830	18	18
-1997	0	1
-942	4	0
-122	33	33
-1012	0	10
-3751	0	1
-5959	49	49
-4503	0	20
-7514	8	8
-4012	15	15
-673	16	0
-83	4	0
-424	3	0
-3932
-
-chain 892181 chr6 170899992 + 9258019 9267980 chr6 171115067 + 9150000 9160000 4430
-970	53	55
-802	16	17
-389	27	27
-73	5	4
-118	9	5
-615	0	2
-69	17	15
-578	0	1
-114	22	22
-888	130	130
-252	3	9
-564	0	1
-211	5	0
-90	4	0
-1846	21	21
-1832	0	42
-238
-
-chain 763150 chr6 170899992 + 9249728 9258019 chr6 171115067 + 9141295 9150000 6494
-566	0	1
-140	8	0
-205	47	47
-145	18	12
-46	1	0
-3841	0	56
-172	0	372
-444	18	18
-2447	20	20
-173
-
-chain 369937 chr6 170899992 + 9267980 9272102 chr6 171115067 + 9160000 9164126 144773
-1134	49	45
-1420	38	38
-203	0	4
-144	0	3
-115	54	55
-965
-
-chain 4624 chr6 170899992 + 9129966 9130015 chr6 171115067 + 165872977 165873026 28640892
-49
-
-chain 1407 chr6 170899992 + 74606704 74606747 chrX 155270560 + 149588561 149588604 701656
-6	11	11
-26
-
-chain 414456960 chr6_cox_hap1 4731698 + 0 4731698 chr6 171115067 + 28541283 33351542 27
-3409	1	0
-3526	0	1
-2940	0	4
-981	0	1
-4053	0	2
-1433	0	1
-3153	2	0
-369	0	1
-1090	0	1
-884	1	4
-363	1	0
-1969	0	1
-994	5	0
-58	1	1
-131	1	0
-4080	1	0
-680	0	1
-978	0	1
-1062	1	0
-2669	19	19
-7247	1	2
-1704	0	4
-1513	0	2
-49	2	0
-2160	0	5
-672	1	1
-38	1	1
-1384	1	0
-1685	1	1
-30	1	1
-2421	1	1
-42	1	1
-830	1	1
-41	1	1
-1630	0	1
-7458	1	0
-691	0	1
-525	0	1
-79	1	1
-29	1	1
-2055	1	1
-16	0	24
-1867	5	7
-786	0	2
-280	0	1
-227	2	0
-6678	1	0
-4401	1	0
-210	1	0
-3193	2	0
-3619	0	1
-2414	0	2
-5387	0	3
-2927	0	1
-3304	0	1
-440	0	5
-415	0	9
-3597	1	1
-48	1	1
-3412	1	1
-46	1	1
-3604	4	4
-1063	1	1
-36	1	1
-3511	6	6
-2797	32	41
-393	0	1
-477	1	1
-37	1	1
-2459	2	0
-517	0	12
-318	0	1
-1010	7	6
-2103	0	1
-5171	0	8
-1483	1	0
-3813	888	0
-4675	0	2
-5620	1	0
-2017	1	0
-3363	0	5
-1197	0	3
-3208	1	0
-1928	1	0
-174	6	0
-780	1	3
-443	14	0
-3079	0	5
-1993	0	3
-1089	1	1
-58	1	1
-80	0	8
-256	2	0
-2473	37	43
-752	0	2
-33	0	2
-825	0	1
-787	1	1
-37	1	1
-1168	16	0
-377	5	1
-27	1	1
-2161	2	0
-636	25	25
-1663	1	0
-1757	6	6
-205	4	0
-203	7	7
-107	1	1
-28	1	1
-100	4	4
-258	5	0
-659	1	0
-3805	5	8
-1486	4	4
-213	39	43
-4429	0	2
-1199	13	13
-5803	12	0
-2987	0	1
-813	0	17
-920	2	0
-3820	1	3
-130	21	9
-1913	0	14
-1800	0	1
-1255	2	0
-1466	4	0
-747	0	1
-124	2	0
-2108	1	0
-169	0	26
-593	1	0
-632	5	0
-2711	0	4
-1042	0	1
-34	1	1
-1025	2	0
-27	4	18
-81	1	33
-33	0	1
-6	0	76
-3950	1	0
-86	1	1
-12	1	1
-2947	0	1
-1160	1	0
-2046	3	0
-720	1	0
-1341	1	0
-10205	0	5
-1265	1	0
-10	1	1
-1278	5	6
-399	0	32
-96	16	18
-605	4	0
-1072	12	12
-950	11	7
-5128	9	10
-2711	1	0
-676	0	1
-2904	1	1
-30	1	1
-851	0	1
-1410	0	1
-394	1	1
-57	1	1
-1561	0	2
-11062	1	1
-58	1	1
-3238	1	1
-42	1	1
-269	1	0
-284	3	3
-24	1	0
-2796	0	5
-2451	28	0
-2251	1	1
-32	1	0
-10	0	4
-24	1	1
-694	0	2
-3475	0	1
-2008	1	1
-49	1	1
-475	1	1
-28	1	1
-259	160	0
-1858	1	0
-1621	3	0
-1791	1	0
-316	0	2
-1169	0	1
-2549	1	0
-2941	1	1
-34	1	1
-243	9	0
-5157	0	2
-1748	0	8
-472	4	0
-2470	0	4
-402	1	0
-643	2	0
-748	0	2
-859	1	0
-409	2	0
-267	0	2
-322	0	4
-155	1	0
-9957	0	4
-1440	4	4
-127	1	0
-1085	1	0
-131	1	0
-767	1	0
-1160	21	21
-1294	1	0
-712	1	0
-1819	2	1
-464	1	0
-6944	0	4261
-55	0	7
-1235	0	3
-702	0	24
-2847	0	1
-2428	3	0
-7517	0	1
-3204	1	0
-611	1	0
-7104	1	0
-4959	14	14
-2827	1	0
-9421	82	25
-4428	8	0
-5987	41	41
-2108	0	2
-344	1	0
-4216	1	0
-810	0	5
-4443	1	0
-10291	10	0
-7265	5	0
-7041	1	0
-6007	1	0
-8185	4	0
-4961	0	3
-13564	0	1
-1475	0	2
-105	0	10
-10104	2	0
-3073	1	0
-3715	8	0
-2246	24	24
-11461	0	2
-837	61	1
-7660	39	39
-1705	0	1
-6068	7	0
-916	0	4
-569	1	1
-72	1	1
-2260	0	2
-7036	4	0
-3591	0	3
-713	4	0
-7058	11	11
-3319	0	2
-8475	0	1
-1324	0	2
-5438	5	0
-156	1	1
-44	0	1
-21501	7	7
-3359	16	16
-2138	0	5
-4406	11	11
-1525	1	1
-28	1	1
-2159	16	0
-48	4	0
-3030	0	1
-5717	10	0
-6594	2	0
-648	31	31
-1275	1	0
-4	1	0
-3599	1	0
-7515	4	0
-979	0	2
-1990	0	10
-123	1	1
-27	1	1
-1255	0	2
-2769	5	5
-727	1	1
-26	3	3
-785	0	1
-8871	29	29
-15459	1	0
-5978	5	5
-66	1	1
-46	1	1
-18539	1	0
-7732	2	0
-652	0	1
-861	0	1
-10658	17	17
-1313	0	1
-3515	3	0
-19	18	0
-539	0	1
-655	2	0
-10586	2	0
-2385	0	1
-7589	1	0
-29834	1	1
-27	1	1
-1216	1	0
-1323	1	0
-673	0	3
-20031	0	3
-2841	13	0
-1841	4	0
-6446	1	0
-11727	0	1
-8427	17	17
-2864	0	143
-4107	0	8
-748	0	2
-3417	1	1
-32	1	1
-18799	0	2
-21810	1	1
-34	1	1
-2784	2	0
-7864	2	0
-4498	0	1
-49089	1	1
-32	1	1
-509	1	1
-37	1	1
-5371	22	16
-389	1	1
-21	1	1
-806	1	0
-1638	6	6
-228	1	1
-45	1	1
-2068	6	3
-441	1	0
-2338	1	0
-1948	1	1
-26	1	1
-214	0	1
-6118	1	1
-31	1	1
-2382	5	5
-4335	1	1
-39	1	1
-4561	1	1
-38	1	1
-2199	1	1
-49	1	1
-243	19	6
-2779	1	1
-37	2	0
-24	1	1
-1966	3	0
-233	1	1
-29	1	1
-13756	0	4
-3956	4	1
-33765	46	46
-12758	1	0
-18985	0	8
-1384	3	1
-85	1	0
-3539	1	1
-32	1	1
-145	1	0
-1245	2	0
-1736	80	80
-1607	1	5
-712	10	11
-502	0	1
-3670	1	0
-740	0	1
-1693	0	1
-6497	0	2
-2898	1	3
-141	0	1
-1108	0	2
-1448	1	0
-1340	0	1
-7616	74	66
-2882	1	2
-30	8	0
-896	21	3
-395	1	1
-37	3	0
-23	1	2
-1210	18	0
-65	1	1
-20	1	1
-791	0	4
-389	1	0
-809	1	1
-55	0	7
-428	1	1
-17	1	1
-239	1	1
-20	1	1
-69	1	1
-37	1	1
-955	1	0
-839	0	1
-165	1	0
-3867	0	5
-70	1	1
-27	1	1
-899	1	2
-107	1	0
-1457	1	0
-763	12	5
-35	1	1
-1417	10	10
-121	1	1
-38	0	3
-377	1	0
-325	2	2
-178	1	0
-11	4	0
-297	0	24
-337	11	0
-134	1	1
-694	3	0
-72	1	1
-144	1	1
-96	1	1
-199	2	0
-1011	1	0
-107	1	1
-1280	1	1
-73	1	1
-84	25	25
-287	1	1
-26	1	1
-139	1	1
-41	1	1
-440	4	0
-130	12	12
-435	21	0
-85	1	1
-28	1	1
-73	1	1
-61	1	1
-53	5	1
-70	1	2
-52	2	0
-157	30	30
-554	2	2
-128	1	5
-68	1	1
-44	1	1
-125	0	1
-57	1	1
-308	0	7
-15	1	1
-725	9	0
-60	1	1
-180	1	1
-55	1	1
-61	1	1
-23	1	0
-5	1	2
-88	1	1
-56	1	1
-433	2	0
-84	68	68
-182	12	12
-216	1	1
-94	1	1
-561	1	1
-16	1	1
-113	1	1
-86	1	1
-148	2	0
-75	2	0
-77	1	21
-209	3	8
-374	1	0
-173	4	3
-201	1	1
-42	1	1
-56	1	1
-115	1	0
-327	1	1
-54	5	5
-929	1	1
-21	1	1
-97	1	1
-28	0	3
-830	0	2
-68	1	1
-525	0	1
-2081	1	1
-41	1	1
-165	3	3
-46	1	0
-378	1	1
-49	1	1
-352	0	1
-142	1	1
-30	1	1
-95	1	1
-45	1	1
-227	1	1
-53	1	1
-130	1	1
-18	1	1
-138	1	1
-90	1	1
-129	41	41
-50	1	1
-79	1	1
-117	1	1
-31	1	1
-240	5	5
-57	1	1
-152	1	1
-30	1	1
-177	5	5
-321	1	1
-63	1	1
-504	18	18
-662	1	1
-74	1	1
-248	1	1
-34	1	1
-1507	0	10
-1051	0	2611
-560	3	3
-23	1	1
-1631	0	15
-78	4	0
-160	0	21
-3764	0	4
-1358	0	1
-1773	1	1
-43	1	1
-1263	1	1
-39	1	1
-183	0	16
-4097	10	0
-1261	1	1
-20	1	1
-137	1	0
-2351	1	1
-43	1	1
-1010	0	4
-536	1	1
-38	1	1
-381	0	1
-888	19	19
-1521	1	1
-27	1	1
-161	1	1
-46	1	1
-2659	2	0
-533	10	0
-441	1	12
-1684	1	1
-26	3	4
-879	16	16
-514	0	2
-58	1	1
-117	1	1
-24	1	1
-207	1	0
-38	1	1
-730	1	1
-39	1	1
-429	10	10
-134	0	4
-37	1	1
-144	8	8
-1036	2	0
-262	2	2
-38	0	1
-70	18	18
-84	11	13
-317	0	3
-1256	0	2
-332	1	1
-21	1	1
-193	8	28
-30	1	1
-79	1	1
-29	1	1
-536	1	0
-611	1	1
-25	1	1
-399	4	4
-118	0	32
-23	1	1
-116	1	1
-30	1	1
-503	1	1
-22	0	3
-136	1	1
-48	1	1
-330	9	9
-1108	1	1
-98	1	1
-582	0	4
-711	7	7
-89	1	0
-293	7	6
-159	1	1
-24	1	1
-167	6	6
-171	17	17
-681	1	1
-43	1	1
-538	1	1
-44	1	1
-537	16	16
-180	6	6
-778	2	2
-44	1	1
-168	0	7
-211	1	1
-42	1	1
-1253	1	1
-29	1	1
-320	1	1
-36	2	2
-55	1	2
-460	1	1
-35	1	1
-553	8	8
-386	1	1
-26	1	1
-540	1	1
-31	1	1
-65	0	1
-625	12	12
-313	0	1
-52	1	1
-22	1	1
-583	1	1
-49	1	1
-678	37	37
-784	3	0
-770	1	1
-87	11	0
-1129	1	1
-36	1	1
-553	8	8
-997	16	15
-157	1	1
-31	2	2
-204	18	19
-487	1	1
-29	1	1
-374	1	1
-67	1	1
-720	13	13
-266	10	10
-330	16	14
-413	1	1
-44	1	1
-78	6	6
-181	2	2
-36	1	1
-397	1	1
-20	1	1
-311	1	1
-48	2	2
-1298	11	11
-437	4	4
-35	1	1
-194	10	10
-310	1	1
-51	1	1
-136	1	1
-49	1	1
-521	1	1
-23	1	1
-220	1	1
-71	1	1
-1046	15	15
-216	1	1
-21	1	1
-51	1	1
-49	1	1
-527	17	17
-340	12	11
-1025	1	0
-2572	1	1
-29	1	1
-397	2	5
-668	13	13
-541	1	1
-59	0	2
-6	1	1
-122	14	14
-51	1	1
-46	1	1
-72	5	5
-352	0	21
-136	1	1
-12	1	1
-66	16	16
-456	37	34
-371	7	7
-48	1	1
-194	10	10
-108	1	1
-60	1	1
-122	0	1
-48	1	1
-238	1	1
-32	0	1
-100	1	0
-72	1	0
-390	1	1
-38	1	1
-144	1	1
-27	0	4
-184	21	228
-49	1	1
-608	0	1
-152	1	1
-31	1	1
-281	8	8
-337	1	1
-45	1	1
-222	1	1
-20	1	1
-380	1	0
-44	1	1
-368	1	1
-72	1	1
-502	36	18
-63	1	1
-43	0	4
-136	1	1
-42	1	1
-80	4	4
-35	1	0
-89	1	1
-24	0	5
-829	13	13
-102	14	0
-233	1	1
-42	0	3
-85	0	1
-400	1	1
-40	1	1
-538	25	25
-174	1	1
-20	1	1
-705	1	1
-26	2	2
-614	1	1
-44	1	1
-509	1	1
-32	1	1
-224	1	1
-42	1	1
-747	5	5
-804	1	1
-29	1	1
-166	1	1
-43	1	1
-233	1	1
-44	1	1
-620	8	8
-133	1	1
-31	1	1
-165	1	1
-29	1	1
-1249	1	1
-26	4	0
-56	1	1
-67	1	1
-716	1	1
-46	0	1
-16	1	1
-174	1	1
-96	1	1
-141	1	1
-39	0	4
-263	1	1
-18	1	1
-259	4	4
-38	1	1
-104	1	1
-40	1	0
-248	1	1
-18	1	1
-238	1	1
-32	1	1
-70	0	2
-16	1	1
-818	1	1
-22	4	4
-1641	1	1
-46	1	1
-53	1	0
-38	1	1
-373	1	1
-60	1	1
-1149	0	2
-19	1	1
-1653	4	4
-42	1	1
-218	12	12
-363	1	1
-24	1	1
-457	10	10
-414	13	13
-825	1	1
-41	1	1
-492	0	8
-1370	1	1
-18	1	1
-808	2	2
-335	6	4
-880	1	1
-35	1	1
-236	1	1
-67	1	1
-298	0	1
-147	4	4
-322	11	11
-613	1	1
-62	1	1
-340	1	1
-22	1	1
-1057	1	1
-57	1	1
-358	1	1
-128	1	1
-146	10	10
-490	1	1
-20	1	1
-62	1	1
-88	1	1
-293	1	1
-28	1	0
-20	1	1
-83	0	1
-90	1	1
-312	1	1
-44	1	1
-1213	1	1
-51	1	1
-467	1	1
-39	1	1
-122	14	0
-35	1	1
-485	14	14
-110	13	0
-127	1	1
-7150	9	13
-3278	0	2
-28	1	1
-2211	1	0
-1325	18	18
-1304	3727	0
-299	0	248
-2603	2	0
-160	1	1
-34	1	1
-631	1	1
-40	1	3
-38	1	1
-332	17	17
-231	14	14
-202	1	1
-199	1	1
-71	1	1
-42	1	0
-53	11	10
-82	34	34
-135	1	1
-50	3	0
-32	1	1
-194	1	1
-45	1	1
-143	1	1
-78	1	1
-193	6	0
-40	1	1
-432	1	1
-17	1	1
-429	3	6
-58	1	1
-85	1	1
-62	1	1
-85	1	1
-57	1	1
-51	2	2
-278	1	1
-49	1	1
-77	11	11
-120	0	4
-139	1	1
-30	2	2
-205	4	4
-131	1	1
-22	1	1
-251	1	1
-34	1	1
-175	1	1
-36	1	1
-239	1	1
-32	5	5
-63	1	1
-27	1	1
-78	1	1
-19	1	1
-209	1	1
-143	1	13
-176	0	1
-7	0	8
-375	0	1
-62	1	1
-129	2	2
-135	1	1
-88	8	0
-90	6	8
-796	2	0
-1219	1	1
-34	1	1
-833	1	1
-46	1	1
-74	1	1
-45	1	1
-95	1	1
-29	1	1
-298	0	3
-47	1	1
-311	1	1
-58	1	1
-349	15	15
-208	1	1
-37	3	0
-413	11	11
-54	1	1
-97	1	1
-137	0	2
-95	1	1
-257	3	0
-35	1	1
-66	1	1
-47	1	1
-104	7	7
-220	17	17
-228	4	4
-432	1	1
-34	3	3
-175	4	4
-26	1	2
-116	7	7
-60	13	13
-137	1	1
-44	1	1
-744	1	1
-29	1	1
-148	0	5
-30	1	1
-387	1	1
-22	1	1
-309	1	1
-82	1	1
-52	1	1
-32	1	1
-121	1	1
-37	1	1
-396	3	2
-324	1	1
-92	1	1
-51	9	9
-71	7	7
-24	1	1
-115	1	1
-101	1	1
-799	12	12
-197	1	1
-146	1	1
-103	1	1
-134	1	1
-16	1	1
-378	1	1
-85	1	1
-134	1	1
-25	1	1
-54	3	3
-55	1	1
-67	1	1
-22	1	1
-54	13	13
-55	11	11
-120	1	1
-23	1	1
-51	1	1
-22	1	1
-369	1	1
-273	1	1
-119	6	6
-229	34511	40178
-78	1	1
-22	1	1
-180	1	1
-33	1	2
-26	6	6
-474	1	1
-36	1	1
-151	1	1
-29	1	1
-120	1	1
-23	1	1
-865	1	1
-39	1	1
-330	1	1
-24	1	1
-197	1	1
-69	1	1
-116	3	0
-161	1	1
-38	1	1
-753	1	1
-57	3	3
-145	1	1
-121	1	1
-300	1	1
-147	1	1
-379	1	1
-55	2	2
-65	1	1
-32	1	1
-1008	1	1
-24	1	1
-159	18	18
-659	1	1
-76	0	2
-77	1	3
-65	1	1
-84	1	0
-119	1	1
-15	1	1
-247	4	0
-372	1	0
-1633	1	1
-16	1	1
-221	9772	11561
-315	1	1
-53	1	1
-67	1	1
-91	1	0
-23	1	0
-27	2	2
-66	2	2
-80	0	41
-12	1	1
-158	1	0
-92	2	0
-254	1	1
-43	1	1
-846	6	149
-84	1	1
-29	3	3
-315	17	17
-482	1	1
-29	3	3
-278	1	1
-73	1	1
-2767	1	1
-34	1	1
-192	1	1
-33	1	0
-168	6	0
-276	10	10
-344	1	1
-49	1	1
-109	1	1
-35	3	3
-561	24	27
-923	1	1
-102	1	1
-75	14	14
-266	1	1
-80	2	2
-185	1	0
-1035	1	1
-23	1	1
-417	10	10
-97	1	1
-94	1	1
-492	1	1
-37	5	5
-1429	1	1
-19	1	1
-839	1	1
-96	1	1
-1279	4	0
-683	1	1
-49	1	1
-514	1	1
-28	4	4
-2302	1	1
-42	1	1
-537	2	21
-1555	1	1
-42	0	1
-14	4	4
-86	1	1
-62	1	1
-515	5	1
-330	0	1
-159	0	22
-3841	1	0
-5065	12	12
-97	0	3
-772	1	1
-21	2	1
-1058	0	2
-349	2	0
-1080	6	0
-11	1	3
-53	0	2
-14	1	1
-1035	1	1
-85	1	1
-69	1	1
-27	1	1
-547	7	7
-195	1	1
-41	1	1
-395	1	1
-35	1	1
-73	0	1
-71	1	1
-557	3	3
-30	1	1
-66	49	49
-1310	0	2
-26	2	0
-10	1	15
-36	1	1
-196	1	1
-40	1	1
-141	1	1
-76	1	1
-1480	1	3
-347	1	1
-26	1	1
-231	1	1
-82	3	3
-69	3	0
-441	16	16
-147	1	1
-21	1	1
-3565	0	3
-877	2	0
-1036	1	1
-47	2	1
-3761	12	0
-5345	1	0
-11541	1	0
-1843	0	4
-1157	16	16
-7354	19	0
-736	0	1
-8058	1	0
-4449	21	21
-649	1	0
-2913	0	1
-381	331	0
-6066	0	1
-1968	7	0
-3198	1	0
-667	1	0
-3870	0	1
-36	13	0
-1894	1	1
-40	0	4
-1137	6	0
-211	2	0
-345	1	0
-592	4	4
-1043	4	0
-686	14	0
-1032	0	1
-9035	0	4
-167	0	2
-19472	35	35
-4457	0	3
-1470	0	1
-289	3	0
-3780	41	41
-522	1	0
-2026	8	0
-430	0	1
-631	1	1
-21	1	1
-479	0	1
-697	4	0
-1779	1	1
-27	1	1
-196	4	0
-58	8	0
-2881	1	1
-39	1	1
-120	44	45
-538	1	0
-393	6	6
-3090	1	1
-43	1	1
-1246	1	0
-294	1	1
-27	1	1
-374	3	3
-144	1	1
-190	1	6
-750	1	0
-695	2	0
-1003	11	0
-1185	8	8
-763	0	4
-2737	11	11
-453	1	0
-536	1	1
-43	1	1
-57	1	0
-21	7	0
-3892	0	1
-3177	0	1
-8990	0	2
-2303	1	0
-2850	4	0
-1273	0	2
-5863	1	0
-9593	1	1
-81	1	1
-2777	0	2
-4564	34	34
-674	0	8
-11548	2	0
-6086	0	1
-109	1	1
-2286	0	1
-997	0	18
-3344	1	1
-40	1	1
-842	28	24
-1584	1	0
-1582	0	1
-1670	3	25
-17	0	4
-16	2	0
-6	12	0
-49	1	1
-538	1	1
-26	1	1
-5879	2	4
-2513	0	1
-346	8	8
-222	16	16
-103	1	0
-198	1	3
-539	1	1
-47	1	1
-1154	0	1
-3737	1	2
-370	2	0
-1178	1	1
-78	1	1
-47	0	1
-518	6	0
-646	13	13
-469	1	0
-1072	1	4
-858	1	0
-3674	1	0
-282	1	0
-597	0	6
-505	4	4
-183	1	1
-43	1	1
-1294	1	1
-40	1	1
-572	0	4
-464	0	4
-757	40	40
-1089	2	0
-548	1	0
-1300	0	3
-1839	2	0
-189	1	1
-49	1	1
-1253	1	1
-43	1	0
-498	1	1
-45	4	0
-3538	0	1
-1989	14	14
-1332	2	0
-3586	1	0
-989	1	2
-447	0	4
-40	1	1
-2445	16	17
-291	1	3
-7	1	0
-11	0	1
-41	1	1
-94	1	1
-49	1	1
-1515	6	0
-603	13	13
-163	1	1
-45	1	1
-2050	11	11
-1126	1	1
-16	1	1
-391	1	1
-19	0	1
-932	1	0
-42	1	1
-751	1	0
-287	1	1
-42	1	1
-464	0	4
-4069	5	5
-153	1	0
-514	2	0
-1093	1	1
-41	1	1
-1746	4	4
-1351	1	1
-38	1	1
-682	12	12
-519	0	72
-168	18	18
-146	7	7
-293	1	1
-61	0	1
-43	1	1
-236	1	0
-35	1	1
-152	14	14
-776	0	4
-809	4	0
-155	1	1
-44	1	1
-1068	1	1
-93	1	1
-209	15	15
-1331	0	3
-3912	0	1
-6624	0	4
-375	0	1
-7255	5	0
-419	2	0
-293	1	0
-10397	5	24
-11095	0	1
-1770	4	0
-374	0	4
-7714	1	0
-1229	7	6
-3055	1	0
-5818	1	0
-2415	11	9
-2056	0	1
-955	4	0
-3907	0	2
-16936	0	1
-1044	1	0
-2392	0	1
-158	2	1
-199	0	1
-75	6	6
-2094	8	0
-649	2	0
-373	75	75
-2253	1	0
-15	1	0
-1995	0	2
-818	4	0
-676	0	1
-3171	8	0
-170	0	3
-459	1	1
-37	1	1
-336	1	0
-206	1	1
-26	1	1
-224	15	15
-308	2	1
-82	1	1
-23	1	1
-562	1	1
-80	1	1
-241	0	8
-1530	1	1
-20	1	1
-1372	1	1
-44	1	1
-427	1	1
-20	1	1
-651	105	81
-221	1	1
-45	1	1
-1747	1	1
-27	1	1
-179	1	1
-70	1	1
-173	1	1
-84	0	36
-1864	1	1
-41	1	1
-44	9	0
-1028	1	0
-85	1	1
-21	1	1
-475	0	2
-256	1	1
-31	1	1
-653	1	1
-18	1	1
-62	1	1
-19	1	1
-997	1	1
-22	1	1
-326	1	0
-505	5	4
-386	0	7
-466	13	13
-870	11	12
-134	15	15
-248	0	2
-2281	1	1
-79	1	1
-56	9	6
-498	100	100
-802	1	0
-290	1	1
-38	1	1
-185	1	1
-61	1	1
-944	1	1
-22	1	1
-835	1	1
-66	1	1
-890	0	1
-3503	6	6
-231	0	1
-2136	1	0
-999	1	0
-5220	3	4
-830	1	1
-24	1	1
-1209	1	1
-38	1	1
-7077	1	0
-2939	1	0
-3959	0	2
-3746	0	2
-1011	1	1
-34	1	1
-7443	0	1
-688	2	0
-574	1	1
-29	1	1
-1785	2	0
-16	20	0
-4073	2	0
-136	1	1
-77	1	1
-528	27	0
-253	0	1
-204	1	0
-129	2	0
-811	1	1
-38	1	1
-2347	52	0
-4634	1	0
-856	14	14
-1052	1	1
-28	1	1
-1255	1	1
-36	1	1
-97	0	1
-58	1	1
-1708	1	1
-48	1	1
-958	13	0
-3371	1	1
-37	1	1
-4267	0	15
-1059	0	1
-272	0	20
-168	2	0
-26	4	32
-4090	0	2
-3269	1	1
-17	1	2
-1378	1	0
-1443	0	1
-6206	1	0
-2318	0	1
-7695	2	0
-396	22	12
-918	0	1
-1818	0	1
-28	1	1
-492	1	1
-33	1	1
-326	1	1
-80	1	1
-288	8	17
-2671	0	1
-1099	0	1
-144	1	1
-29	0	1
-2098	0	2
-24	4	0
-1207	4	4
-45	1	1
-757	0	5
-1926	1	1
-40	1	1
-2657	0	1
-414	1	0
-61	0	1
-235	0	2
-2087	0	1
-713	0	4
-58	1	0
-1041	3	0
-36	1	1
-377	1	1
-17	1	1
-948	1	1
-41	1	1
-458	1	1
-21	1	1
-1055	0	1
-8189	4	5
-36	1	1
-102	2	0
-14	1	1
-682	0	6
-147	0	1
-750	0	3
-40	1	1
-2428	0	1
-750	2	0
-473	0	2
-2032	1	0
-3841	1	0
-560	1	0
-1108	1	0
-8087	1	0
-11881	1	1
-30	1	1
-4383	2	0
-6883	49	49
-3146	0	1
-906	2	0
-887	1	1
-80	1	1
-2210	1	0
-905	0	1
-1037	1	0
-5866	0	2
-18	1	1
-582	0	5
-2828	1	0
-847	1	0
-1996	4	0
-3170	1	0
-1751	0	1
-910	2	0
-691	0	1
-32873	0	1
-1722	0	1
-17559	16	24
-1369	29	0
-494	2	0
-4432	0	1
-23680	26	26
-10911	0	1
-920	0	1
-4586	0	2
-2232	1	0
-5718	0	1
-12415	1	1
-51	0	1
-7997	0	2
-1700	1	0
-2697	1	0
-2561	2	0
-1544	0	6
-1613	3	7
-37	9	1
-2113	1	0
-7174	0	34
-7914	1	1
-35	1	1
-5308	1	0
-2303	2	1
-423	7	7
-590	1	0
-24	1	1
-165	6	0
-2848	13	13
-64	0	1
-28	1	1
-723	0	4
-2868	0	1
-731	1	1
-60	1	1
-1012	3	0
-490	29	29
-1225	1	1
-78	1	1
-61	1	0
-2362	11	11
-399	1	0
-1494	16	16
-128	24	24
-530	1	1
-35	1	1
-5276	1	0
-415	0	1
-580	1	2
-1450	22	23
-816	1	0
-1953	1	0
-881	10	1
-885	8	14
-183	14	14
-1139	25	25
-155	1	1
-94	1	1
-419	3	3
-26	1	1
-56	1	0
-69	1	0
-117	1	1
-120	1	1
-42	1	1
-825	0	2
-108	1	1
-24	1	1
-956	3	0
-664	1	1
-41	1	1
-716	4	0
-1731	8	8
-4228	0	1
-5694	3	0
-4493	0	1
-2656	1	0
-3029	4	0
-5688	1	0
-170	2	0
-5972	0	2
-840	0	2
-55	1	1
-28	1	1
-2954	0	1
-4343	6	0
-1663	4	0
-150	1	0
-3128	1	0
-1449	3	0
-1534	1	0
-489	1	0
-431	0	4
-299	2	0
-5082	9	0
-413	0	1
-989	0	2
-4941	0	1
-6655	1	0
-349	8	7
-762	1	1
-29	0	3
-1434	0	1
-1267	0	1
-587	1	1
-22	0	1
-894	28	0
-1343	2	0
-2256	0	1
-4332	0	4
-22	1	1
-12415	12	10
-10485	0	1
-1429	0	12
-625	1	7
-1224	0	10
-1680	4	0
-5169	14	14
-3878	0	8
-2544	0	140
-9238	0	1
-1575	0	3
-1775	1	1
-31	1	1
-1200	1	0
-32	0	3
-797	0	8
-35	0	2
-599	1	1
-22	1	1
-5338	2	0
-1998	0	5
-146	0	4
-12031	0	1
-1993	0	1
-706	2	0
-2735	0	1
-3859	0	4
-4845	0	2
-268	2	0
-827	4	4
-1063	6	6
-7834	2	0
-3195	0	1
-4012	10	0
-6429	0	2
-308	0	1
-808	1	0
-17	8	0
-5472	19	2
-2436	0	14
-820	9	9
-2643	1	1
-32	1	1
-1189	1	0
-5710	0	3
-308	1	0
-4930	0	1
-4308	1	0
-946	82	0
-1790	0	2
-1218	25	0
-52	0	1
-1271	1	1
-33	1	1
-4760	1	0
-4924	0	1
-4817	4	4
-39	1	0
-1116	3715	901
-205	1	0
-1591	5	2
-138	2	2
-16	1	1
-802	0	89
-1600	0	6
-2175	0	5
-606	14	14
-519	1	0
-540	1	1
-40	1	1
-568	2	0
-458	1	1
-41	1	1
-1106	24	62
-818	1	1
-42	1	1
-2266	1	0
-14059	0	4
-5030	1	0
-12630	0	3
-84	9	9
-129	13	18
-564	10	15
-154	1	0
-438	10	10
-38	0	5
-98	11	9
-2034	1	1
-25	1	1
-73	10	10
-70	5	5
-132	1	1
-52	1	1
-599	1	1
-46	1	1
-279	1	1
-18	1	1
-239	3	0
-383	6	0
-224	0	1
-321	15	0
-1783	1	1
-18	3	0
-108	1	1
-60	1	1
-405	16	16
-60	1	1
-16	1	1
-970	1	1
-24	1	1
-424	3	0
-41	1	1
-57	8	8
-285	2	0
-672	1	1
-44	1	4
-103	0	1
-148	1	1
-49	3	0
-146	5	11
-91	1	1
-79	1	1
-94	1	1
-101	1	1
-88	16	16
-117	1	1
-15	1	1
-58	1	1
-93	1	1
-466	1	1
-44	1	1
-160	1	1
-23	1	1
-481	14	14
-181	4	4
-72	1	1
-25	1	1
-82	7	12
-4	0	1
-11	1	4
-20	0	5
-92	1	1
-56	10	0
-80	1	1
-141	2	0
-60	1	1
-372	0	2
-784	1	1
-85	1	1
-109	1	1
-16	1	1
-57	1	1
-92	3	1
-23	1	0
-26	1	1
-74	1	1
-33	1	1
-176	1	1
-25	2	2
-193	1	1
-35	0	1
-383	0	5
-249	1	1
-69	1	1
-98	1	1
-70	1	1
-55	1	1
-143	1	1
-438	1	1
-64	1	1
-53	4	0
-127	3	0
-75	5	5
-45	1	1
-197	1	1
-27	1	1
-116	13	13
-218	15	20
-1107	16	19
-73	1	1
-101	1	1
-123	1	1
-60	1	1
-994	1	1
-43	0	1
-18	1	1
-1215	18	18
-340	1	1
-34	1	1
-1350	16	16
-1417	1	1
-29	1	1
-475	1	1
-48	1	1
-198	10	10
-87	1	1
-18	1	1
-171	7	7
-427	1	1
-21	1	1
-2011	0	3
-17	1	1
-1412	1	1
-24	1	1
-214	8	4
-228	1	1
-34	1	1
-410	16	16
-185	1	1
-24	1	0
-164	0	1
-222	1	1
-25	1	1
-297	10	10
-1171	1	0
-569	19	19
-2755	1	0
-11	1	1
-2502	1	1
-23	1	1
-44	12	0
-2856	0	1
-148	1	1
-36	1	1
-993	2	0
-1251	2	0
-6619	14	14
-1014	4	0
-134	2	9
-818	1	0
-61	1	7
-563	46	0
-78	5	5
-1677	1	1
-49	1	1
-399	1	1
-32	1	1
-790	27	27
-104	1	1
-75	1	1
-1638	1	1
-16	1	1
-92	1	1
-44	1	1
-276	0	13
-1020	1	1
-35	1	1
-389	14	14
-256	1	0
-38	1	3
-631	1	1
-40	1	1
-2356	85	83
-1300	0	5
-511	0	2
-605	1	1
-17	1	1
-880	12	0
-1689	4	0
-2492	1	1
-39	1	1
-641	16	16
-682	0	5
-669	1	1
-25	1	1
-1926	1	1
-39	4	3
-1037	1	1
-40	2	0
-890	6	0
-41	2	0
-498	3	0
-321	0	1
-281	3	0
-450	1	1
-34	1	1
-498	1	1
-28	2	1
-280	0	2
-648	1	1
-47	1	1
-1002	4	0
-120	1	1
-1538	0	1
-75	1	1
-37	1	1
-510	91	91
-60	18	18
-2075	1	1
-19	1	1
-2429	1	1
-21	1	1
-107	1	0
-2786	0	2
-31	5	5
-1973	12	0
-3118	1	0
-246	0	1
-33	1	1
-6752	1	0
-822	2	9
-606	1	1
-18	1	1
-3920	1	1
-37	0	2
-4497	10	13
-301	20	20
-2130	1	1
-16	3	0
-1843	0	4
-3780	3	0
-850	0	1
-2774	0	3
-2065	0	1
-20	1	1
-1400	1	0
-3243	0	15
-1336	5	0
-448	49	49
-121	7	7
-1507	8	7
-422	1	0
-2184	0	1
-304	0	2
-19	0	1
-101	1	1
-417	3	3
-22	1	1
-672	4	4
-31	1	1
-150	1	1
-38	1	1
-161	5	0
-17	1	1
-72	1	0
-106	1	1
-463	1	1
-94	1	1
-138	3	4
-185	1	1
-29	1	1
-220	15	15
-167	1	1
-32	1	1
-93	1	3
-217	1	1
-23	1	1
-137	9	9
-62	0	3
-353	1	1
-27	1	1
-117	9	9
-421	1	1
-47	1	1
-124	0	1
-997	6	0
-54	5	5
-764	1	1
-45	1	1
-1431	7	7
-387	6	6
-1103	0	36
-767	1	1
-31	1	3
-208	5	5
-1610	1	1
-23	1	1
-779	0	8
-324	0	2
-45	1	1
-264	0	3
-45	1	1
-250	1	1
-18	1	1
-517	33	0
-117	1	1
-42	1	1
-550	1	1
-20	1	1
-671	1	1
-68	1	1
-89	1	1
-104	1	1
-172	0	1
-124	0	1
-522	0	1500
-466	5	5
-32	1	0
-171	1	1
-19	1	1
-67	1	1
-22	1	1
-654	1	1
-25	1	1
-68	1	1
-21	4	0
-1588	1	1
-66	1	1
-401	0	1
-186	1	1
-21	1	1
-168	0	1
-686	3	0
-19	1	1
-127	1	1
-29	1	1
-234	1	1
-30	1	1
-141	0	2
-33	1	1
-673	1	1
-89	1	1
-161	16	16
-504	20149	20139
-1269	1	1
-40	1	1
-327	1	1
-24	1	1
-172	2	2
-27	11	15
-381	10	11
-376	1	1
-45	1	1
-121	1	1
-62	1	1
-289	1	1
-26	1	1
-191	1	1
-20	11	11
-425	1	1
-37	1	1
-296	1	1
-149	1	1
-284	1	1
-37	1	1
-705	1	12
-106	12	12
-306	1	1
-24	1	1
-1299	1	1
-47	1	1
-2026	1	1
-20	1	1
-133	1	0
-9803	0	4
-15871	3	0
-2464	1	1
-24	1	1
-879	1	1
-73	1	1
-89	1	1
-42	1	1
-108	1	1
-43	0	1
-26	1	1
-511	5	6
-605	19531	20105
-55	1	1
-37	0	2
-89	1	1
-51	1	1
-85	1	1
-78	1	1
-173	1	1
-51	1	1
-90	3	3
-95	1	1
-32	1	1
-53	1	1
-231	1	0
-82	2	0
-27	0	1
-44	1	0
-96	10	7
-132	1	1
-233	1	1
-257	1	1
-56	5	5
-237	1	1
-141	1	1
-92	1	1
-154	7	7
-3208	1	1
-33	1	1
-671	1	1
-21	1	1
-955	0	3
-130	1	1
-26	1	1
-288	8	8
-218	0	3
-1076	8	0
-609	10041	10021
-240	2	2
-66	1	1
-228	1	1
-23	1	1
-1612	1	1
-21	1	1
-261	1	1
-99	1	1
-128	1	1
-15	1	1
-77	9	9
-618	8	8
-84	4	6
-438	1	1
-140	1	1
-158	4	3
-277	12	12
-165	4	4
-36	1	1
-253	1	1
-59	1	1
-910	0	1
-915	4	5
-276	15	15
-682	1	1
-28	1	1
-1483	13	13
-203	1	0
-52	1	1
-48	1	1
-229	12	12
-68	15	15
-83	1	1
-39	1	1
-194	1	1
-24	1	1
-251	8	8
-619	0	4
-15	1	1
-690	1	1
-28	1	1
-54	0	1
-463	1	1
-30	1	1
-449	1	1
-54	1	1
-58	5	5
-979	1	0
-318	1	1
-28	1	1
-898	10	10
-100	1	1
-22	1	1
-446	1	1
-74	1	1
-273	1	1
-19	1	1
-333	1	1
-44	1	1
-220	1	1
-56	2	0
-209	1	1
-70	1	1
-223	0	20
-220	1	1
-31	1	1
-56	1	1
-111	1	1
-220	1	1
-89	1	1
-119	1	1
-113	2	0
-195	1	1
-46	1	1
-184	1	1
-60	0	4
-76	0	4
-53	3	1
-43	1	1
-153	1	1
-53	1	1
-195	6	0
-60	1	1
-278	1	0
-42	1	1
-124	10014	10005
-302	1	1
-24	1	1
-135	20	19
-55	1	1
-40	1	1
-175	1	1
-46	1	1
-52	1	1
-19	1	1
-277	1	1
-88	1	1
-172	1	1
-26	1	1
-129	1	1
-35	1	1
-55	9	9
-318	3	3
-46	1	1
-101	8	8
-4653	1	1
-38	1	1
-817	2	0
-256	1	1
-27	1	1
-339	1	1
-48	1	1
-54	10	10
-1393	3	0
-1491	2	0
-1983	16	0
-167	0	4
-3886	7	8
-535	1	1
-16	1	1
-1555	3	0
-3131	1	1
-17	1	1
-4196	1	0
-14974	0	1
-3514	0	4
-29	1	1
-123	0	2
-51	33	0
-121	0	133
-80	1	10
-26	60	4
-52	13	0
-20	0	2
-19	2	0
-22	4	156
-57	156	3
-61	0	2
-29	20	0
-42	11	0
-21	2	0
-50	4	6
-31	1	3
-23	1	53
-25	0	32
-66	1	55
-11	0	2
-13	0	41
-68	1	42
-23	1	3
-12	2	0
-17	1	29
-51	17	13
-18	2	0
-28	2	0
-26	2	0
-158	1	25
-102	0	82
-99	280	0
-53	21	0
-5064	0	2
-7569	2	0
-2189	0	1
-85	1	1
-31	0	4
-399	14	14
-408	0	1
-681	0	5
-184	1	1
-20	1	1
-64	1	1
-29	1	0
-9	2	0
-442	4	0
-342	1	1
-24	1	1
-131	1	1
-198	1	1
-370	0	1
-34	1	1
-447	21	20
-259	1	1
-23	0	1
-121	2	0
-2257	1	1
-22	1	1
-811	1	1
-27	1	1
-95	18	18
-631	0	5
-843	0	2889
-55	0	88
-1189	0	2
-2274	1	0
-752	4	0
-164	1	1
-55	1	1
-1033	10	10
-683	1	1
-57	1	1
-3578	1	1
-34	1	1
-1446	1	0
-460	1	1
-31	0	1
-6	1	1
-163	1	1
-22	1	1
-81	1	1
-27	1	1
-548	1	1
-61	1	1
-1169	1	1
-41	1	1
-1568	14	14
-4889	1	1
-62	1	1
-530	17	17
-394	1	1
-40	7	0
-57	12	12
-69	2	2
-39	1	1
-70	1	1
-22	0	3
-2307	1	1
-30	1	1
-411	1	1
-104	1	1
-375	26	27
-1218	1	1
-35	1	1
-85	1	1
-20	6	0
-687	1	1
-34	1	1
-268	13	13
-74	1	1
-47	2	0
-69	1	1
-49	1	1
-73	1	1
-48	1	1
-218	1	1
-42	1	1
-197	1	1
-41	1	1
-313	1	1
-40	1	1
-476	1	1
-29	1	1
-185	1	1
-35	1	1
-594	1	1
-24	1	1
-220	26	0
-245	0	1
-261	13	13
-89	1	1
-90	1	1
-224	1	1
-201	1	1
-306	1	1
-29	5	5
-121	1	1
-31	1	1
-109	1	1
-25	1	1
-168	1	1
-19	1	1
-93	12	11
-132	1	0
-113	1	1
-30	1	1
-56	9	9
-300	1	1
-50	2	2
-96	1	1
-43	1	1
-76	1	1
-44	1	1
-197	1	1
-91	7	1
-119	0	9
-392	5	5
-89	1	1
-428	11	11
-260	1	1
-23	1	0
-10	1	1
-70	1	1
-65	2	0
-16	0	19
-28	1	1
-208	1	1
-70	1	1
-149	0	3
-51	29	29
-163	1	1
-55	1	1
-63	17	17
-1208	1	1
-98	1	1
-162	1	1
-45	1	1
-148	14	14
-51	5	5
-209	4	4
-1242	1	1
-42	5	0
-87	1	1
-522	0	3
-305	0	1
-1379	0	2
-390	0	15
-72	1	1
-16	1	1
-270	1	0
-280	7	7
-2763	20	20
-674	10	10
-1375	14	0
-327	2	0
-107	1	1
-629	16	16
-54	4	4
-680	16	16
-395	1	1
-42	1	1
-1763	1	1
-46	1	1
-282	1	1
-39	1	1
-860	1	1
-26	1	1
-745	0	2
-2081	2	0
-817	4	4
-202	1	1
-48	1	1
-168	1	1
-53	1	1
-379	10	10
-1178	14	14
-132	5	0
-555	1	1
-65	1	1
-550	1	1
-21	1	1
-462	1	1
-43	1	1
-121	1	1
-48	0	3
-15	1	5
-1404	0	1
-450	4	0
-626	1	0
-304	1	1
-39	1	1
-564	1	1
-45	1	1
-303	2	0
-409	1	1
-18	1	0
-858	2	0
-2168	0	1
-54	1	1
-20	1	1
-524	0	1
-410	10	10
-106	1	14
-2419	18	14
-64	1	1
-31	1	1
-185	0	5
-1646	1	1
-20	1	1
-227	1	1
-37	1	1
-500	1	0
-136	3	4
-8239	1	1
-23	1	1
-1114	0	2
-688	0	1
-901	18	18
-4781	0	4
-815	0	1
-5069	0	5
-415	0	2
-352	0	1
-1085	11	11
-1099	0	1
-991	0	1
-845	1	1
-32	0	2
-5751	0	3
-1553	1	1
-60	1	1
-278	0	1
-30	1	1
-1855	0	2
-958	0	1
-66	0	16
-2109	0	2
-1265	0	1
-17312	0	4
-1875	0	1
-2157	1	0
-915	0	6
-4940	1	0
-2649	0	1
-3331	2	0
-2276	14	0
-3128	0	4
-3496	1	0
-966	0	1
-3597	1	0
-1647	0	3
-1182	1	0
-654	0	3
-2049	1	0
-6838	1	1
-39	1	1
-186	1	0
-2718	1	1
-30	1	1
-160	11	11
-4954	0	1
-420	1	1
-123	1	1
-156	0	4
-219	4	0
-195	1	0
-4402	2	0
-4295	1	0
-4207	20	20
-468	0	1
-30	1	1
-6025	1	0
-4179	1	0
-19834	0	1
-11605	0	1
-4121	2	0
-2863	0	2
-4890	1	0
-5576	0	6
-4104	4	0
-19858	4	0
-1616	0	3
-1647	4	1
-36	0	12
-2213	0	14
-414	0	1
-458	20	20
-2860	0	3
-678	3	4
-292	2	0
-1922	0	1
-913	0	1
-2720	1	0
-1111	3	0
-2589	0	8
-9425	1	0
-1403	0	2
-1964	0	12
-4433	0	1
-1569	0	1
-7209	1	1
-41	1	1
-2257	1	0
-3001	0	1
-1845	1	0
-1593	0	1
-497	0	2
-6109	0	1
-2019	2	0
-921	0	1
-241	1	0
-5473	1	0
-2213	2	0
-1974	8	0
-4952	0	1
-6146	2	0
-953	1	0
-4141	0	1
-4244	5	0
-152	0	2
-209	0	1
-2400	0	10
-785	2	0
-1733	0	1
-554	1	0
-128	0	2
-3051	0	1
-8577	0	1
-1503	0	1
-1705	0	3
-2052	17	17
-998	177	0
-2804	1	0
-1925	1	0
-9215	0	1
-971	8	0
-36021	1	0
-8016	29	27
-3890	0	1
-67913	1	1
-18	1	6368
-73	1	32739
-14676	1	1
-19	1	1
-22867	1	1
-20	1	1
-5638	5	0
-47	12	0
-11313	0	1
-1769	0	1
-8355	0	3
-4114	0	2
-1403	1	0
-5140	0	1
-490	0	1
-219	1	0
-3483	1	0
-8939	1	1
-44	1	1
-10813	0	2
-7480	2	0
-617	1	0
-1464	0	1
-500	0	2
-1466	1	0
-527	5	0
-3593	0	1
-374	0	1
-2946	22	22
-698	0	1
-2149	1	0
-311	2	0
-6570	1	0
-962	1	0
-23	1	1
-2647	4	0
-588	1	1
-21	1	1
-3256	28	20
-870	0	1
-644	1	0
-602	2	1
-3730	1	1
-45	1	1
-12848	7	7
-7306	0	3
-6647	45	45
-1365	1	1
-63	1	1
-4166	1	0
-1887	10	0
-2949	1	1
-31	0	1
-669	1	0
-2190	2	0
-2081	0	2
-373	0	6
-421	4	4
-1460	0	1
-1699	0	8
-2882	2	0
-147	0	1
-1656	1	1
-27	1	1
-1828	0	2
-4066	35	38
-361	17	17
-1254	6	0
-1643	0	2
-2542	0	1
-848	2	1
-2117	0	2
-119	1	1
-44	1	1
-1104	0	1
-415	0	12
-634	18	1
-377	6	7
-227	6	0
-449	13	13
-895	0	17
-457	18	18
-663	0	3
-382	1	1
-26	1	1
-135	0	1
-105	1	1
-25	1	1
-620	2	0
-290	5	5
-375	1	1
-30	0	4
-98	1	0
-20	17	4
-3824	28	0
-39	4	0
-28	4	0
-44	4	0
-1898	9	9
-221	0	2
-10522	30	0
-783	1	1
-59	1	1
-94	1	1
-21	1	1
-491	1	1
-49	1	1
-289	2	0
-120	0	1
-37	1	1
-112	1	1
-21	1	1
-183	16	16
-73	2	0
-1007	1	1
-38	0	1
-79	1	1
-48	1	1
-561	1	1
-29	1	1
-145	5	5
-576	12	12
-834	1	0
-846	5	7
-34	1	1
-417	10	11
-55	1	1
-40	1	1
-110	1	1
-47	1	1
-351	1	1
-69	1	1
-53	1	1
-91	1	1
-260	1	1
-36	0	1
-604	1	0
-169	0	1
-2118	1	1
-34	1	1
-147	1	1
-213	1	1
-67	1	1
-31	1	1
-566	1	0
-17	1	1
-763	1	1
-34	1	1
-671	5	0
-41	2	2
-98	0	1
-449	0	2
-61	1	1
-38	1	1
-202	1	1
-44	1	1
-190	1	0
-46	4	4
-51	0	4
-476	1	1
-17	1	1
-212	1	1
-26	1	1
-485	1	1
-25	1	1
-263	1	1
-26	1	1
-1327	4	0
-44	1	0
-2397	1	1
-44	1	1
-4146	14	14
-901	0	1
-1769	14	14
-1721	1	0
-1125	1	0
-254	1	0
-427	0	1
-30	1	1
-111	0	2
-52	0	8
-528	44	0
-969	1	1
-10	1	0
-28	1	1
-140	1	1
-43	1	1
-1989	2	1
-598	1	1
-87	0	4
-124	1	0
-4840	1	1
-28	7	4
-505	0	2
-24	1	1
-5134	4	0
-543	1	0
-18	1	1
-97	1	1
-29	1	3
-101	6	0
-148	13	7
-1346	0	1
-128	7	0
-49	0	1
-876	2	0
-286	5	5
-184	0	1
-84	5	5
-365	9	9
-981	1	1
-11	1	1
-734	4	0
-563	4	0
-244	9	9
-379	1	1
-17	1	1
-49	2	0
-95	1	1
-30	1	1
-147	1	1
-37	0	6
-340	1	2
-58	1	1
-332	0	2
-233	6	9
-156	0	1
-26	1	1
-439	4	0
-34	0	2
-508	5	0
-96	1	1
-34	1	1
-1267	63	63
-590	1	1
-24	4	5
-1055	13	13
-135	0	1
-194	1	1
-61	1	1
-384	6	6
-2756	1	1
-19	1	1
-99	15	15
-1754	2	3
-2238	1	1
-31	1	1
-3002	4	0
-2156	15	15
-855	14	13
-442	5	5
-2022	6	6
-506	0	2
-1110	0	1
-2578	0	2
-4864	1	1
-36	1	0
-3187	1	1
-16	1	1
-184	1	1
-18	1	1
-1636	0	7
-23	1	1
-527	1	1
-39	1	1
-653	3	0
-227	1	1
-18	1	1
-102	7	7
-109	0	323
-91	1	0
-124	0	15
-621	0	4
-553	12	12
-463	1	1
-40	1	1
-372	1	1
-25	1	1
-188	12	12
-357	0	1
-250	0	5
-4193	0	4
-967	1	1
-76	1	1
-3236	4	4
-529	7	7
-246	4	0
-160	1	1
-34	0	3
-1469	0	2
-499	1	0
-937	1	1
-45	1	1
-356	71	65
-2127	0	1
-491	1	0
-80	1	1
-72	2	0
-255	6	6
-728	14	11
-702	3	0
-290	0	2
-210	19	1
-473	1	1
-42	4	0
-219	0	1
-348	1	1
-83	1	1
-851	0	16
-72	13	0
-246	1	1
-47	4	0
-410	1	0
-93	0	12
-225	0	16
-428	1	0
-4	6	0
-324	0	1
-3060	0	16
-1305	1	1
-29	1	1
-3094	0	7
-600	0	2
-5495	1	1
-47	1	1
-1247	49	55
-4351	1	1
-15	1	1
-2011	6	14
-8378	2	0
-295	0	17
-4583	1	0
-4132	0	4
-924	4	3
-1751	0	2
-1060	12	12
-380	0	2
-425	8	0
-84	0	1
-244	1	1
-28	1	1
-221	4	0
-348	1	1
-37	11	11
-50	1	1
-180	1	1
-348	1	1
-20	1	1
-1714	1	1
-79	1	1
-729	1	1
-44	1	0
-78	1	1
-112	1	1
-23	1	1
-55	9	9
-1044	1	1
-27	1	1
-494	1	1
-32	1	1
-237	1	1
-27	1	1
-1422	4	4
-413	7	1
-710	8	0
-185	0	2
-966	1	0
-13	15	1
-251	1	1
-47	1	1
-285	1	1
-103	1	1
-977	1	1
-41	1	0
-97	1	1
-131	1	0
-307	1	1
-47	1	1
-1070	1	1
-69	1	1
-382	0	1
-167	1	1
-35	1	1
-161	1	1
-30	1	1
-1068	18	0
-1173	1	1
-32	1	1
-59	1	1
-12	1	0
-18	1	1
-55	0	22
-72	1	1
-2806	1	1
-15	1	1
-1395	1	0
-157	13	0
-536	8	8
-101	1	1
-21	1	1
-147	8	8
-638	1	1
-18	1	1
-183	15	15
-990	0	12
-21	1	1
-145	0	1
-332	1	1
-31	1	1
-231	22	5
-39	1	1
-414	9	9
-93	1	1
-63	1	1
-739	0	2
-632	1	1
-74	1	1
-138	5	5
-128	0	1
-294	1	1
-45	1	1
-679	6	6
-1756	0	34
-560	27	27
-1608	5	0
-219	1	1
-134	0	3
-81	1	1
-82	0	1
-357	1	1
-28	1	1
-670	7	9
-270	0	1
-891	13	33
-257	4	0
-80	0	4
-130	2	0
-2504	42	42
-1226	1	1
-44	1	1
-2256	0	1
-80	12	0
-5544	1	0
-428	13	13
-77	4	4
-63	1	1
-64	13	19
-178	10023	10000
-157	3	3
-109	1	1
-180	1	1
-56	1	1
-169	1	0
-93	1	1
-33	2	2
-72	1	1
-30	1	1
-267	25	25
-65	1	1
-19	2	0
-108	27	27
-218	1	1
-37	1	1
-477	11	11
-93	1	1
-30	7	5
-242	0	1
-171	1	1
-29	1	1
-218	0	9
-241	1	1
-55	4	4
-88	1	1
-99	1	1
-57	0	1
-523	12	16
-399	1	1
-50	1	1
-389	1	1
-71	4	4
-173	12	12
-92	1	1
-20	1	1
-132	0	5
-15	1	1
-75	1	1
-26	5	5
-119	11	11
-542	1	1
-23	2	2
-254	1	1
-34	1	1
-172	1	1
-45	1	1
-95	11	11
-127	23	23
-64	1	1
-95	1	1
-390	1	1
-52	1	1
-170	1	1
-16	5	0
-30	1	1
-599	1	1
-119	1	1
-85	1	1
-75	1	1
-286	4	4
-61	1	1
-286	9	9
-429	1	1
-21	1	1
-53	1	1
-44	1	1
-77	165084	190027
-5156	0	1
-1680	1	1
-88	1	1
-4502	0	1
-46	1	1
-800	4	4
-23	1	1
-1305	2	0
-136	0	1
-4941	0	1
-547	0	1
-70	8	8
-293	1	1
-35	1	1
-1165	4	0
-6662	1	1
-121	1	1
-92	0	8
-214	1	1
-35	1	1
-108	1	0
-1063	0	1
-1017	1	1
-20	0	6
-1725	0	1
-150	5	5
-33	1	0
-12	1	1
-349	1	1
-24	0	1
-1562	1	1
-31	1	1
-2513	0	1
-73	36	36
-305	1	1
-27	1	1
-543	1	1
-47	4	28
-4874	0	3
-599	10	10
-137	1	0
-7	0	4
-54	1	1
-2497	1	1
-166	1	1
-637	3	3
-46	1	1
-74	4	4
-414	1	1
-48	1	1
-75	4	4
-153	0	26
-93	1	1
-39	1	0
-58	1	1
-51	1	1
-145	9	9
-29	1	1
-55	1	1
-427	1	0
-141	1	1
-87	1	1
-20	1	1
-89	3	3
-141	18	5
-48	1	1
-87	14	14
-173	1	1
-68	1	1
-54	1	1
-51	4	0
-22	1	0
-52	1	1
-171	1	1
-109	3	1
-6	0	2
-205	1	1
-54	10064	10083
-76	3	1
-197	15	15
-77	1	1
-70	1	1
-178	1	1
-60	1	1
-210	1	1
-28	1	1
-62	1	1
-33	1	1
-70	0	1
-202	1	1
-60	1	1
-106	2	0
-176	1	1
-79	0	1
-50	1	1
-50	3	3
-207	1	1
-272	5	5
-243	1	1
-84	1	1
-98	1	1
-50	5	5
-77	1	1
-74	1	1
-20	0	1
-143	1	1
-45	0	1
-4	1	1
-1088	1	1
-35	1	1
-320	1	1
-22	1	1
-275	1	1
-47	1	1
-370	19	19
-119	1	6
-51	1	1
-21	1	1
-244	0	1
-345	1	1
-24	1	1
-181	1	1
-61	3	3
-542	1	1
-16	1	1
-312	1	0
-353	4	3
-279	323	0
-86	1	1
-49	1	1
-342	1	1
-44	0	2
-222	1	1
-37	1	1
-588	8	8
-593	47	47
-359	1	1
-25	1	1
-2054	1	0
-2510	1	0
-5040	11	12
-1489	9	9
-3292	1	0
-1449	1	1
-21	1	1
-6768	1	0
-706	2	0
-7107	1	1
-38	1	1
-1163	1	1
-35	1	1
-435	1	1
-60	1	1
-325	0	1
-254	1	1
-43	1	1
-210	1	1
-7	1	0
-47	1	1
-130	4	4
-34	1	1
-208	1	1
-39	2	2
-526	1	1
-36	1	1
-99	9	7
-20	1	1
-73	1	1
-62	1	1
-425	1	1
-43	1	1
-811	1	1
-38	1	1
-362	1	1
-49	1	1
-109	1	1
-19	1	1
-79	1	1
-29	0	1
-26	1	1
-252	1	1
-75	1	1
-441	1	1
-66	1	1
-389	13	13
-67	7	7
-1185	0	311
-64	6	6
-389	31	31
-247	1	1
-38	1	1
-79	1	0
-553	1	1
-30	1	1
-433	1	1
-16	3	0
-1133	12	12
-262	5	5
-276	1	0
-960	14	14
-272	1	1
-41	1	1
-196	1	0
-1424	18	19
-314	1	1
-22	1	1
-345	1	1
-23	3	0
-245	1	1
-78	1	1
-77	1	1
-779	1	1
-32	1	1
-247	1	1
-48	1	1
-778	2	0
-226	1	1
-61	1	1
-867	0	1
-53	1	1
-397	1	1
-12	4	0
-46	1	1
-602	1	1
-35	1	1
-422	1	1
-49	1	1
-789	1	1
-37	1	1
-268	0	2
-589	8	8
-366	12	20
-1651	2	7
-19	1	1
-417	1	1
-37	1	1
-812	1	1
-33	3	0
-1351	18	18
-2186	1	1
-86	1	1
-1433	1	1
-39	1	1
-83	0	1
-238	0	1
-171	1	1
-7	2	1
-67	1	1
-596	1	1
-29	1	1
-144	4	6
-417	1	0
-88	1	1
-24	1	1
-390	18	18
-496	14	21
-145	1	1
-46	1	1
-310	1	1
-35	1	1
-214	1	1
-38	1	1
-206	1	1
-37	1	0
-240	1	1
-32	1	1
-469	1	1
-32	1	1
-208	1	1
-21	1	1
-343	1	1
-17	1	1
-88	1	1
-58	6	0
-169	1	1
-22	1	1
-162	0	1
-196	0	2
-500	6	5
-108	1	1
-40	2	0
-50	1	1
-111	1	0
-21	0	1066
-175	5	5
-155	1	1
-44	1	1
-11005	0	1
-6280	1	1
-48	1	1
-1173	1	1
-19	1	1
-2664	0	1
-351	1	0
-1059	14	14
-593	0	1
-869	16	16
-23065	2	0
-2197	0	1
-949	0	1
-15048	0	1
-606	1	0
-7820	0	4
-14669	1	0
-14708	0	1
-16326	0	1
-304	18	18
-388	2	0
-194	1	1
-49	1	1
-262	0	1
-92	1	1
-10677	2	0
-4856	3	0
-7447	6	6
-421	1	0
-884	6	0
-17	1	0
-3075	1	0
-1610	12	12
-13049	3	1
-3762	2	0
-601	2	0
-2461	0	2
-5154	1	0
-1604	0	16
-3338	26	26
-225	0	1
-1488	1	0
-1196	0	2
-683	0	1
-1218	1	0
-221	1	1
-22	1	1
-296	4	4
-1456	23	41
-880	1	12
-2490	1	0
-151	1	1
-33	1	1
-2809	4	4
-3645	1	1
-17	1	1
-3496	2	0
-154	1	1
-29	1	1
-158	0	1
-5981	1	1
-32	1	1
-1041	0	2
-174	9	0
-1383	0	1
-389	1	2
-1570	2	0
-3993	4	0
-4576	87	87
-142	8	8
-2203	20	24
-2009	1	1
-39	1	1
-489	1	1
-17	1	1
-628	1	1
-124	1	1
-1607	1	1
-23	1	1
-1021	0	8
-1249	0	20
-46	0	32
-46	6	0
-24	0	10
-7679	1	1
-44	1	1
-580	1	1
-28	1	1
-264	1	1
-65	0	1
-15	1	1
-1513	28	28
-830	19	19
-57	1	1
-21	1	1
-231	1	1
-94	1	1
-105	1	1
-208	5	5
-124	1	1
-112	3	3
-207	1	1
-38	1	1
-244	1	1
-60	1	1
-98	1	1
-50	1	1
-256	29	29
-157	1	1
-33	1	1
-143	1	1
-59	1	1
-51	1	1
-45	1	0
-73	1	1
-81	1	1
-270	1	1
-272	1	1
-232	1	1
-94	1	1
-3189	0	176
-834	0	35
-303	0	51
-321	1	0
-17170	0	1
-321	1	1
-25	1	1
-679	1	1
-33	1	1
-990	11	11
-131	8	8
-79	9	9
-1284	9945	10022
-2039	8	23
-491	1	1
-32	1	1
-85	1	1
-41	1	1
-480	1	1
-74	2	2
-1108	59	0
-70	10	10
-325	11	11
-879	1	1
-34	1	1
-524	1	1
-25	1	1
-202	17	17
-1154	1	1
-26	1	1
-89	17	17
-87	1	1
-39	1	1
-950	1	1
-15	2	2
-51	1	1
-81	1	1
-180	1	0
-187	1	1
-37	1	1
-467	1	1
-19	1	1
-755	0	2
-81	3	1
-16	1	1
-67	6	6
-84	1	1
-37	2	0
-31	0	28
-15	0	37
-266	14	14
-372	1	1
-68	1	1
-462	1	1
-46	1	1
-563	19	0
-217	9	9
-363	1	1
-22	1	1
-884	1	1
-40	1	1
-179	1	1
-42	1	1
-94	6	6
-922	1	1
-30	1	1
-481	0	3
-7925	15	11
-333	5	0
-1235	6	6
-355	1	1
-27	1	1
-515	1	0
-1077	11	0
-1521	1	0
-38	1	1
-119	1	1
-58	1	1
-63	4	3
-385	1	1
-49	1	1
-77	44	46
-87	11	11
-190	2	2
-45	1	1
-373	1	1
-47	1	1
-77	10	10
-186	1	1
-24	1	1
-1140	1	0
-214	1	1
-34	1	1
-89	1	1
-36	1	1
-288	0	1
-544	0	331
-320	1	0
-199	1	1
-16	1	1
-112	1	1
-29	1	1
-783	0	3
-311	1	1
-38	1	1
-59	1	1
-68	1	1
-52	1	1
-98	1	1
-166	7	7
-698	1	1
-68	1	1
-165	0	1
-114	1	1
-92	0	1
-14	1	1
-215	1	1
-81	1	1
-792	1	1
-31	1	1
-54	1	1
-44	1	1
-179	1	1
-26	1	1
-200	1	1
-30	1	1
-639	7	7
-505	40	42
-549	12	0
-19	1	1
-2184	1	0
-840	1	1
-69	1	1
-966	21	21
-33	12	0
-56	1	1
-94	1	1
-237	11	9
-189	1	1
-47	1	1
-318	3	0
-80	1	1
-94	5	1
-32	1	1
-126	16	16
-83	1	1
-47	1	1
-104	6	5
-56	1	1
-68	1	1
-417	12	13
-636	0	2
-30	1	1
-694	0	4
-95	1	1
-28	1	1
-1358	1	1
-19	1	1
-68	1	1
-97	1	1
-155	15	15
-323	1	7
-158	2	0
-42	6	0
-59	1	1
-314	14	14
-94	1	1
-64	1	1
-637	1	1
-21	1	1
-144	2	1
-229	11	5
-410	1	1
-96	1	1
-272	1	1
-22	1	1
-118	1	1
-44	1	1
-96	1	1
-48	1	1
-414	22	22
-373	13	13
-554	1	1
-87	10	0
-313	1	1
-37	1	1
-122	17	18
-179	1	1
-40	1	1
-591	8	8
-129	1	0
-70	1	1
-71	1	0
-73	10	6
-12	1	1
-203	0	6
-24	2	0
-45	4	0
-46	1	1
-186	9	9
-87	1	1
-28	1	1
-3625	0	1
-71	1	1
-126	1	1
-34	1	1
-532	0	2
-696	2	0
-555	1	7
-287	1	1
-30	0	3
-946	0	1
-88	1	1
-60	12	0
-12546	1	1
-37	1	0
-2071	0	1
-1253	9	9
-2003	0	1
-24677	0	2
-6212	1	1
-26	1	1
-816	0	4
-13602	18	15
-2375	2	0
-1957	2	0
-2394	6	0
-1561	0	1
-2805	4	0
-12333	8	0
-835	0	1
-426	0	27
-12156	0	18
-6903	2	0
-21807	3	0
-1588	1	0
-2605	1	1
-23	1	1
-11252	8	0
-298	6	7
-946	2	0
-232	0	1
-501	1	0
-4748	0	4
-770	0	7
-914	0	1
-295	1	0
-214	3	0
-121	0	1
-784	0	1
-2512	0	1
-4476	3	0
-926	0	1
-189	2	0
-3543	2	0
-893	1	1
-46	1	1
-1296	0	1
-153	0	1
-336	5	0
-228	1	1
-45	1	1
-207	3	0
-322	0	1
-658	1	0
-1516	3	0
-1025	0	13
-1518	0	1
-591	10	10
-3384	0	2
-182	12	0
-328	1	0
-301	0	1
-994	1	1
-18	0	6
-1743	0	1
-2350	22	23
-1548	0	7
-1976	1	0
-199	0	1
-5922	12	12
-873	0	3
-3080	12	8
-322	1	0
-490	1	0
-3602	1	0
-482	1	0
-3178	1	0
-5157	0	10
-753	0	1
-885	20	0
-1746	10	0
-4045	6	1
-3520	5	13
-2048	0	1
-3529
-
-chain 323865 chr6_cox_hap1 4731698 + 1267152 1270823 chr12 133851895 - 763369 785145 206180
-2772	0	815
-201	0	17291
-643	1	0
-54
-
-chain 65284 chr6_cox_hap1 4731698 + 2460102 2460796 chr6 171115067 - 140105134 140105832 1936071
-178	0	4
-516
-
-chain 59092 chr6_cox_hap1 4731698 + 4004481 4005101 chr4 191154276 + 48364786 48365406 2142970
-620
-
-chain 52987 chr6_cox_hap1 4731698 + 2674042 2675969 chr3 198022430 - 151830192 151832103 2402006
-102	557	556
-77	395	393
-169	221	221
-81	15	15
-81	35	35
-55	44	31
-95
-
-chain 40067 chr6_cox_hap1 4731698 + 3843208 3843655 chr1 249250621 - 189436883 189437330 3283815
-379	3	3
-65
-
-chain 34258 chr6_cox_hap1 4731698 + 2746095 2746514 chrX 155270560 - 17905933 17906346 3956727
-73	15	15
-155	1	1
-20	6	0
-17	1	1
-131
-
-chain 30865 chr6_cox_hap1 4731698 + 3996373 3996892 chr6 171115067 + 32713281 32713770 4500603
-73	89	59
-184	77	77
-96
-
-chain 30808 chr6_cox_hap1 4731698 + 1446736 1447059 chr11 135006516 - 73898390 73898713 4511271
-323
-
-chain 29563 chr6_cox_hap1 4731698 + 4089902 4090211 chr1 249250621 - 75305559 75305868 4853755
-309
-
-chain 29490 chr6_cox_hap1 4731698 + 3888227 3888535 chr20 63025520 - 21266962 21267270 4884719
-308
-
-chain 23990 chr6_cox_hap1 4731698 + 1313393 1314169 chr7 159138663 - 51241795 51242737 7706852
-178	101	101
-72	385	551
-40
-
-chain 19279 chr6_cox_hap1 4731698 + 2759716 2759948 chr5 180915260 + 25289600 25289832 11061062
-91	17	17
-124
-
-chain 18106 chr6_cox_hap1 4731698 + 3844292 3845362 chr7 159138663 + 50640514 50641583 3599691
-33	446	444
-74	250	251
-5	55	55
-48	69	69
-90
-
-chain 17763 chr6_cox_hap1 4731698 + 3840247 3840451 chr6 171115067 - 2083149 2083361 12325354
-52	0	8
-26	2	2
-124
-
-chain 17263 chr6_cox_hap1 4731698 + 3890221 3890428 chr4 191154276 + 3927369 3927573 12785973
-50	3	0
-26	4	4
-124
-
-chain 16283 chr6_cox_hap1 4731698 + 3267732 3267909 chr2 243199373 + 128545205 128545381 580296
-28	2	1
-147
-
-chain 16000 chr6_cox_hap1 4731698 + 3842640 3845155 chr5 180915260 - 144997615 145000132 3598025
-127	1430	1431
-95	205	207
-98	29	29
-57	419	418
-55
-
-chain 15874 chr6_cox_hap1 4731698 + 2744265 2744697 chr6 171115067 + 31304784 31305225 14156555
-58	158	158
-72	76	85
-68
-
-chain 15671 chr6_cox_hap1 4731698 + 1306242 1307477 chr6 171115067 - 139875690 139876935 14366990
-56	408	416
-54	620	622
-97
-
-chain 15351 chr6_cox_hap1 4731698 + 2791400 2791601 chr11 135006516 + 74748600 74748801 14697621
-99	26	26
-76
-
-chain 14920 chr6_cox_hap1 4731698 + 2791114 2791352 chr12 133851895 + 56894984 56895263 15150280
-65	69	110
-104
-
-chain 14203 chr6_cox_hap1 4731698 + 4000567 4000717 chr6 171115067 - 148948255 148948405 15963295
-150
-
-chain 14065 chr6_cox_hap1 4731698 + 3901987 3902139 chr6 171115067 - 138602057 138602209 16122340
-152
-
-chain 13939 chr6_cox_hap1 4731698 + 2790912 2791061 chr15 102531392 - 60147333 60147482 16276423
-149
-
-chain 13590 chr6_cox_hap1 4731698 + 4000399 4000543 chr2 243199373 + 178345068 178345212 16711221
-144
-
-chain 13240 chr6_cox_hap1 4731698 + 3909742 3911000 chr6 171115067 + 32548108 32549235 17164167
-52	422	421
-78	652	522
-54
-
-chain 12556 chr6_cox_hap1 4731698 + 1348680 1348819 chr2 243199373 - 184149574 184149713 18162971
-139
-
-chain 12225 chr6_cox_hap1 4731698 + 3890501 3890631 chr13 115169878 - 44980182 44980312 18662730
-130
-
-chain 12178 chr6_cox_hap1 4731698 + 3972449 3972615 chr14 107349540 - 58393926 58394091 18734378
-55	26	25
-85
-
-chain 12008 chr6_cox_hap1 4731698 + 3896810 3896939 chr8 146364022 + 49154427 49154556 18990652
-129
-
-chain 11746 chr6_cox_hap1 4731698 + 1299553 1299701 chr7 159138663 - 7702899 7703047 19437477
-54	14	14
-80
-
-chain 11718 chr6_cox_hap1 4731698 + 299537 299697 chr13 115169878 + 54026210 54026329 7331663
-62	41	0
-40	13	13
-4
-
-chain 11503 chr6_cox_hap1 4731698 + 3894886 3895312 chr11 135006516 - 111045874 111046295 19852909
-57	287	282
-82
-
-chain 11377 chr6_cox_hap1 4731698 + 3840583 3840825 chr11 135006516 + 57049649 57049891 20071170
-62	107	107
-73
-
-chain 10960 chr6_cox_hap1 4731698 + 3841022 3841165 chr12 133851895 - 49356794 49356937 20822626
-50	15	15
-78
-
-chain 10867 chr6_cox_hap1 4731698 + 2681465 2681622 chr6 171115067 - 132617434 132617597 20998653
-55	29	35
-73
-
-chain 10738 chr6_cox_hap1 4731698 + 3896518 3896639 chr10 135534747 + 59600699 59600817 21255898
-61	3	0
-57
-
-chain 10496 chr6_cox_hap1 4731698 + 3892569 3892679 chr1 249250621 - 174039531 174039641 21744607
-110
-
-chain 10328 chr6_cox_hap1 4731698 + 3840451 3840892 chr4 191154276 - 114078209 114078650 18698120
-15	372	372
-54
-
-chain 9881 chr6_cox_hap1 4731698 + 2734004 2734554 chr6 171115067 + 31205448 31206008 23100546
-72	423	433
-55
-
-chain 9755 chr6_cox_hap1 4731698 + 4021493 4021793 chr6 171115067 + 162490109 162490409 23390927
-65	181	181
-54
-
-chain 9560 chr6_cox_hap1 4731698 + 1301303 1301404 chr6 171115067 - 141323187 141323288 23857061
-101
-
-chain 9455 chr6_cox_hap1 4731698 + 3891953 3892158 chr6 171115067 + 32468923 32469135 24116909
-54	91	98
-60
-
-chain 9090 chr6_cox_hap1 4731698 + 2680711 2680821 chr3 198022430 - 94212956 94213066 24807216
-53	4	4
-53
-
-chain 7297 chr6_cox_hap1 4731698 + 3844000 3844124 chr8 146364022 + 96809146 96809270 3974525
-124
-
-chain 7162 chr6_cox_hap1 4731698 + 2675969 2676329 chr17 81195210 - 22005566 22005927 2836104
-7	302	303
-51
-
-chain 7031 chr6_cox_hap1 4731698 + 2673410 2673921 chr5 180915260 + 106108094 106108601 3265511
-58	376	372
-77
-
-chain 6840 chr6_cox_hap1 4731698 + 3971466 3971538 chr11 135006516 + 40011829 40011901 28544257
-72
-
-chain 6473 chr6_cox_hap1 4731698 + 3890669 3890742 chr1 249250621 - 102907635 102907704 21815173
-11	4	0
-58
-
-chain 6422 chr6_cox_hap1 4731698 + 4013834 4013902 chr6 171115067 + 32728707 32728775 29535230
-68
-
-chain 5921 chr6_cox_hap1 4731698 + 2681183 2681245 chr4 191154276 - 94306644 94306706 30842389
-62
-
-chain 5676 chr6_cox_hap1 4731698 + 2671999 2672059 chr3 198022430 + 95260601 95260661 31509897
-60
-
-chain 5595 chr6_cox_hap1 4731698 + 3972615 3972674 chr14 107349540 - 80191032 80191091 27115653
-59
-
-chain 5576 chr6_cox_hap1 4731698 + 1302171 1302230 chr18 78077248 - 3698437 3698496 31796878
-59
-
-chain 5517 chr6_cox_hap1 4731698 + 3842389 3842453 chr20 63025520 - 5368566 5368630 20848663
-64
-
-chain 5458 chr6_cox_hap1 4731698 + 3985007 3985065 chr2 243199373 + 112827415 112827473 32167738
-58
-
-chain 5421 chr6_cox_hap1 4731698 + 2677334 2677391 chr19 59128983 - 38462903 38462960 32247802
-57
-
-chain 5403 chr6_cox_hap1 4731698 + 3897499 3897556 chr12 133851895 + 59864980 59865037 32286341
-57
-
-chain 5339 chr6_cox_hap1 4731698 + 4081817 4081873 chr17 81195210 + 16805661 16805717 32499905
-56
-
-chain 5266 chr6_cox_hap1 4731698 + 4021149 4021204 chr3 198022430 + 6923000 6923055 32744278
-55
-
-chain 5103 chr6_cox_hap1 4731698 + 2743431 2743485 chr3 198022430 + 27241143 27241197 33231446
-54
-
-chain 5094 chr6_cox_hap1 4731698 + 3984745 3984799 chr6 171115067 + 67966752 67966806 33279729
-54
-
-chain 5089 chr6_cox_hap1 4731698 + 2674314 2675775 chr1 249250621 + 7474130 7475590 2473669
-98	975	974
-58	295	295
-35
-
-chain 5076 chr6_cox_hap1 4731698 + 1300901 1300955 chr11 135006516 + 101518151 101518205 33343005
-54
-
-chain 5067 chr6_cox_hap1 4731698 + 2741303 2741357 chr19 59128983 - 37393851 37393905 33368570
-54
-
-chain 5058 chr6_cox_hap1 4731698 + 3967166 3967220 chr1 249250621 - 172942963 172943017 33379585
-54
-
-chain 5020 chr6_cox_hap1 4731698 + 1345886 1345938 chr6 171115067 + 29692684 29692736 33527644
-52
-
-chain 4959 chr6_cox_hap1 4731698 + 3892516 3892569 chr18 78077248 + 5090594 5090647 22176918
-53
-
-chain 4957 chr6_cox_hap1 4731698 + 2678048 2678100 chr9 141213431 - 31846047 31846099 33735026
-52
-
-chain 4957 chr6_cox_hap1 4731698 + 3946024 3946076 chr6 171115067 + 32439356 32439408 33735182
-52
-
-chain 4930 chr6_cox_hap1 4731698 + 3894496 3894548 chrX 155270560 - 4541772 4541824 33815607
-52
-
-chain 4914 chr6_cox_hap1 4731698 + 2673741 2673793 chrX 155270560 + 7935883 7935935 17711968
-52
-
-chain 4885 chr6_cox_hap1 4731698 + 2740950 2741002 chr5 180915260 - 163072859 163072911 33995114
-52
-
-chain 4884 chr6_cox_hap1 4731698 + 2760326 2760379 chr7 159138663 + 8699184 8699237 23141527
-53
-
-chain 4821 chr6_cox_hap1 4731698 + 3935381 3935432 chr6 171115067 - 11031703 11031754 34213824
-51
-
-chain 4685 chr6_cox_hap1 4731698 + 3915703 3915753 chr12 133851895 + 112261417 112261467 34690968
-50
-
-chain 4613 chr6_cox_hap1 4731698 + 2844682 2846505 chr13 115169878 - 41386504 41386960 3856143
-33	479	279
-7	46	0
-24	11	0
-33	1097	0
-24	13	0
-56
-
-chain 4221 chr6_cox_hap1 4731698 + 2437589 2437671 chr14 107349540 + 75461679 75461839 4623812
-28	0	78
-54
-
-chain 4202 chr6_cox_hap1 4731698 + 2673968 2674023 chr3 198022430 + 156309398 156309453 19139889
-55
-
-chain 4186 chr6_cox_hap1 4731698 + 3955813 3955860 chr5 180915260 - 113986983 113987030 34971958
-47
-
-chain 4136 chr6_cox_hap1 4731698 + 2672610 2672662 chr13 115169878 + 42049101 42049153 23521137
-52
-
-chain 3978 chr6_cox_hap1 4731698 + 2673481 2673609 chrX 155270560 - 130914483 130914611 4485241
-128
-
-chain 3891 chr6_cox_hap1 4731698 + 2760039 2760115 chr16 90354753 - 58442153 58442229 17002345
-76
-
-chain 3877 chr6_cox_hap1 4731698 + 2672485 2672526 chr15 102531392 + 40275232 40275273 21164310
-41
-
-chain 3776 chr6_cox_hap1 4731698 + 2759549 2759589 chr1 249250621 - 143888892 143888932 33598889
-40
-
-chain 3639 chr6_cox_hap1 4731698 + 3890631 3890669 chr3 198022430 + 101411146 101411184 20382394
-38
-
-chain 3574 chr6_cox_hap1 4731698 + 2673146 2673184 chr3 198022430 - 173409162 173409200 29596627
-38
-
-chain 3573 chr6_cox_hap1 4731698 + 2790788 2791088 chr16 90354753 + 31183111 31183406 18086604
-58	215	210
-27
-
-chain 3489 chr6_cox_hap1 4731698 + 3842885 3842952 chrX 155270560 - 48144545 48144612 19043441
-67
-
-chain 3394 chr6_cox_hap1 4731698 + 3896482 3896518 chrX 155270560 - 4545757 4545793 28280414
-36
-
-chain 3393 chr6_cox_hap1 4731698 + 3840688 3840752 chr8 146364022 + 7016797 7016861 21522443
-64
-
-chain 3345 chr6_cox_hap1 4731698 + 1313572 1313633 chrX 155270560 - 101738888 101738949 11083842
-61
-
-chain 3209 chr6_cox_hap1 4731698 + 3842526 3842560 chr4 191154276 + 80147803 80147837 32673071
-34
-
-chain 3189 chr6_cox_hap1 4731698 + 2790872 2790912 chr11 135006516 - 131957088 131957128 22905486
-40
-
-chain 3053 chr6_cox_hap1 4731698 + 4021558 4021590 chr2 243199373 + 38182694 38182726 24706669
-32
-
-chain 3045 chr6_cox_hap1 4731698 + 2677533 2677565 chr11 135006516 - 20509488 20509520 33762261
-32
-
-chain 3033 chr6_cox_hap1 4731698 + 3842991 3843062 chr1 249250621 - 90164672 90164743 11203780
-71
-
-chain 2997 chr6_cox_hap1 4731698 + 2759644 2759694 chr16 90354753 + 47212776 47212826 11278440
-50
-
-chain 2984 chr6_cox_hap1 4731698 + 3842575 3842625 chrX 155270560 + 76422698 76422748 20248077
-50
-
-chain 2960 chr6_cox_hap1 4731698 + 3896779 3896810 chr21 48129895 + 18677639 18677670 32477029
-31
-
-chain 2845 chr6_cox_hap1 4731698 + 2673184 2673214 chr3 198022430 - 156603737 156603767 26791325
-30
-
-chain 2761 chr6_cox_hap1 4731698 + 3844406 3844465 chr6 171115067 + 18547856 18547915 4276868
-59
-
-chain 2745 chr6_cox_hap1 4731698 + 3842326 3844197 chr11 135006516 - 48638733 48640605 3968835
-61	675	676
-53	1015	1015
-67
-
-chain 2739 chr6_cox_hap1 4731698 + 2673924 2673968 chr8 146364022 + 90457478 90457522 20607564
-44
-
-chain 2729 chr6_cox_hap1 4731698 + 1302230 1302259 chr14 107349540 + 79349511 79349540 33029767
-29
-
-chain 2723 chr6_cox_hap1 4731698 + 2673793 2673825 chr5 180915260 - 70673106 70673138 18877917
-32
-
-chain 2561 chr6_cox_hap1 4731698 + 299599 299640 chr6 171115067 + 20244702 20244743 12574490
-41
-
-chain 2518 chr6_cox_hap1 4731698 + 4021649 4021704 chr16 90354753 - 20685134 20685189 24272036
-55
-
-chain 2470 chr6_cox_hap1 4731698 + 2745980 2746030 chr1 249250621 + 111776293 111776343 7607561
-50
-
-chain 2373 chr6_cox_hap1 4731698 + 2760156 2760181 chr17 81195210 - 66761411 66761436 17362234
-25
-
-chain 2319 chr6_cox_hap1 4731698 + 2900811 2900837 chr6 171115067 + 31357660 31357686 3303778
-26
-
-chain 2312 chr6_cox_hap1 4731698 + 2759490 2759549 chr4 191154276 + 98204882 98204941 18366184
-59
-
-chain 2209 chr6_cox_hap1 4731698 + 3843799 3843896 chr12 133851895 + 60159606 60159703 5400255
-97
-
-chain 2146 chr6_cox_hap1 4731698 + 1299766 1299827 chr12 133851895 + 105697047 105697108 23835468
-61
-
-chain 2140 chr6_cox_hap1 4731698 + 3840491 3840558 chr6 171115067 - 96829007 96829074 20827044
-67
-
-chain 2000 chr6_cox_hap1 4731698 + 1313744 1313777 chr4 191154276 + 153686345 153686378 8134925
-33
-
-chain 1995 chr6_cox_hap1 4731698 + 3842817 3842864 chr4 191154276 - 47817470 47817517 17212566
-47
-
-chain 1991 chr6_cox_hap1 4731698 + 2845315 2845345 chr4 191154276 - 30046978 30047008 15284842
-30
-
-chain 1990 chr6_cox_hap1 4731698 + 4008195 4011710 chr6 171115067 + 32722816 32726965 28700009
-61	2506	2690
-85	515	965
-52	103	103
-193
-
-chain 1943 chr6_cox_hap1 4731698 + 3844851 3845272 chr11 135006516 + 83226111 83226530 3906185
-58	323	321
-40
-
-chain 1927 chr6_cox_hap1 4731698 + 2759609 2759644 chr7 159138663 - 110094552 110094587 24531071
-35
-
-chain 1727 chr6_cox_hap1 4731698 + 2674522 2674583 chr20 63025520 - 53185733 53185794 4777998
-61
-
-chain 1671 chr6_cox_hap1 4731698 + 3843897 3843947 chr9 141213431 + 78317603 78317653 4355881
-50
-
-chain 1637 chr6_cox_hap1 4731698 + 2760272 2760326 chr2 243199373 + 119859185 119859239 11695157
-54
-
-chain 1632 chr6_cox_hap1 4731698 + 2673214 2673313 chr4 191154276 - 69486891 69486990 2834158
-99
-
-chain 1628 chr6_cox_hap1 4731698 + 3842952 3842991 chr2 243199373 - 116273698 116273737 14990340
-39
-
-chain 1584 chr6_cox_hap1 4731698 + 1313851 1313915 chr1 249250621 - 24961912 24961976 17607390
-64
-
-chain 1548 chr6_cox_hap1 4731698 + 2672923 2673038 chr2 243199373 - 193655574 193655689 3516324
-115
-
-chain 1509 chr6_cox_hap1 4731698 + 2674838 2674895 chr5 180915260 + 165569524 165569581 2491813
-57
-
-chain 1508 chr6_cox_hap1 4731698 + 2675985 2676708 chr6 171115067 - 141365359 141366083 3289535
-50	615	616
-58
-
-chain 1507 chr6_cox_hap1 4731698 + 2673661 2673741 chr4 191154276 + 138835824 138835904 16168846
-80
-
-chain 1489 chr6_cox_hap1 4731698 + 2845209 2846585 chrX 155270560 - 102215688 102216455 6549884
-27	1297	452
-2	0	236
-50
-
-chain 1467 chr6_cox_hap1 4731698 + 2760221 2760272 chr7 159138663 + 122232756 122232807 13147168
-51
-
-chain 1456 chr6_cox_hap1 4731698 + 3844931 3844983 chr14 107349540 + 48881293 48881345 9320615
-52
-
-chain 1452 chr6_cox_hap1 4731698 + 2673321 2674838 chrX 155270560 - 1098426 1099942 3000529
-51	1428	1427
-38
-
-chain 1354 chr6_cox_hap1 4731698 + 1313967 1314021 chr4 191154276 + 544307 544361 14282164
-54
-
-chain 1310 chr6_cox_hap1 4731698 + 3843714 3843782 chrX 155270560 + 17249549 17249617 3972308
-68
-
-chain 1307 chr6_cox_hap1 4731698 + 1498573 1498607 chr5 180915260 - 156542608 156542642 2089959
-34
-
-chain 1294 chr6_cox_hap1 4731698 + 2760418 2760473 chr4 191154276 + 147516497 147516552 12285122
-55
-
-chain 1278 chr6_cox_hap1 4731698 + 3845015 3845082 chr15 102531392 + 92125438 92125505 4023305
-67
-
-chain 1247 chr6_cox_hap1 4731698 + 3844702 3844748 chr2 243199373 - 7511493 7511539 13743690
-46
-
-chain 1194 chr6_cox_hap1 4731698 + 2676043 2676103 chr1 249250621 + 94380187 94380247 20995710
-60
-
-chain 1160 chr6_cox_hap1 4731698 + 2676209 2676237 chrX 155270560 + 56836392 56836420 21177535
-28
-
-chain 1125 chr6_cox_hap1 4731698 + 3890818 3890886 chr8 146364022 - 86779351 86779419 20749389
-68
-
-chain 1106 chr6_cox_hap1 4731698 + 2760181 2760221 chr9 141213431 + 74027839 74027879 13331514
-40
-
-chain 1039 chr6_cox_hap1 4731698 + 2674441 2674507 chr3 198022430 - 71498815 71498881 4421669
-66
-
-chain 1033 chr6_cox_hap1 4731698 + 2676372 2676431 chr5 180915260 - 20894072 20894131 3124143
-59
-
-chain 1014 chr6_cox_hap1 4731698 + 2759961 2759990 chr10 135534747 + 69125589 69125618 23828230
-29
-
-chain 1005 chr6_cox_hap1 4731698 + 2760005 2760039 chr10 135534747 + 5299750 5299784 23898321
-34
-
-chain 982 chr6_cox_hap1 4731698 + 2759426 2759479 chr13 115169878 + 111326976 111327029 14386536
-53
-
-chain 977 chr6_cox_hap1 4731698 + 3845410 3845467 chrX 155270560 - 144584413 144584470 4043690
-57
-
-chain 963 chr6_cox_hap1 4731698 + 2674253 2676589 chr9 141213431 - 119032541 119034846 4479982
-47	2231	2200
-58
-
-chain 919 chr6_cox_hap1 4731698 + 2677255 2677315 chr4 191154276 + 45112377 45112437 22402156
-60
-
-chain 883 chr6_cox_hap1 4731698 + 3843656 3843714 chr18 78077248 + 28929278 28929336 6530663
-58
-
-chain 881 chr6_cox_hap1 4731698 + 2675038 2675098 chr5 180915260 - 79225133 79225193 14536118
-60
-
-chain 858 chr6_cox_hap1 4731698 + 2676338 2676372 chr7 159138663 - 148564023 148564057 6699557
-34
-
-chain 857 chr6_cox_hap1 4731698 + 2676103 2677646 chr4 191154276 + 171430336 171431860 18546235
-50	1412	1393
-81
-
-chain 838 chr6_cox_hap1 4731698 + 3843947 3843980 chr18 78077248 - 28720814 28720847 7914761
-33
-
-chain 819 chr6_cox_hap1 4731698 + 2673062 2673118 chr2 243199373 + 149156283 149156339 14209631
-56
-
-chain 796 chr6_cox_hap1 4731698 + 1314021 1314060 chrX 155270560 - 10752795 10752834 16687246
-39
-
-chain 747 chr6_cox_hap1 4731698 + 1314275 1314339 chr12 133851895 + 57178267 57178331 20664563
-64
-
-chain 731 chr6_cox_hap1 4731698 + 1638596 1638636 chr15 102531392 + 55738847 55738887 18753864
-40
-
-chain 704 chr6_cox_hap1 4731698 + 3842767 3842817 chr9 141213431 + 32212289 32212339 4117535
-50
-
-chain 701 chr6_cox_hap1 4731698 + 2674653 2674701 chr16 90354753 - 23821388 23821436 3556080
-48
-
-chain 679 chr6_cox_hap1 4731698 + 1313640 1313672 chr21 48129895 - 2887431 2887463 13569070
-32
-
-chain 672 chr6_cox_hap1 4731698 + 3844325 3844357 chr10 135534747 - 103351577 103351609 5595826
-32
-
-chain 661 chr6_cox_hap1 4731698 + 2676159 2676209 chr9 141213431 + 85388422 85388472 5334226
-50
-
-chain 661 chr6_cox_hap1 4731698 + 3844987 3845015 chr2 243199373 + 98215178 98215206 5611311
-28
-
-chain 650 chr6_cox_hap1 4731698 + 2672375 2672435 chr7 159138663 - 140047518 140047578 22707410
-60
-
-chain 643 chr6_cox_hap1 4731698 + 2677085 2677144 chr6 171115067 + 74793831 74793890 5895430
-59
-
-chain 604 chr6_cox_hap1 4731698 + 1314169 1314195 chrX 155270560 - 101522169 101522195 11588450
-26
-
-chain 595 chr6_cox_hap1 4731698 + 2675343 2675387 chr12 133851895 - 110550302 110550346 3606052
-44
-
-chain 571 chr6_cox_hap1 4731698 + 2672827 2672901 chr3 198022430 + 50956018 50956092 15278850
-74
-
-chain 525 chr6_cox_hap1 4731698 + 3902955 3903021 chr6 171115067 + 32474022 32474088 26162225
-66
-
-chain 485 chr6_cox_hap1 4731698 + 2671938 2671998 chr1 249250621 - 193322919 193322979 8312425
-60
-
-chain 412 chr6_cox_hap1 4731698 + 2672740 2672827 chr8 146364022 - 113140827 113140914 13566503
-87
-
-chain 395 chr6_cox_hap1 4731698 + 2846505 2846533 chrX 155270560 - 102216470 102216498 6380381
-28
-
-chain 395 chr6_cox_hap1 4731698 + 2675098 2675125 chr12 133851895 + 9999203 9999230 23891782
-27
-
-chain 347 chr6_cox_hap1 4731698 + 2671704 2671754 chr15 102531392 - 65978487 65978537 12839282
-50
-
-chain 251 chr6_cox_hap1 4731698 + 2671761 2671812 chr9 141213431 + 17677697 17677748 27279073
-51
-
-chain 184 chr6_cox_hap1 4731698 + 2672526 2672587 chrX 155270560 - 91681431 91681492 16167874
-61
-
-chain 369716150 chr6_qbl_hap2 4565931 + 0 4565931 chr6 171115067 + 28742641 33379750 32
-2350	0	1
-1750	0	2
-3815	1	0
-9743	0	2
-3960	0	4
-2109	0	2
-33	2	0
-9000	0	2
-16647	0	2
-38786	1	0
-80529	0	1
-14475	0	1
-6819	1	0
-6845	1	3
-6188	0	1
-6397	0	1
-345	1	0
-68374	2	0
-39133	39	39
-7774	7	0
-1489	1	1
-72	1	1
-2260	0	2
-10629	0	1
-1249	1	1
-195	1	1
-18132	0	1
-1324	0	2
-5438	5	0
-2061	1	0
-3982	6	6
-1725	0	1
-3153	1	0
-18	1	0
-18	1	0
-2026	1	0
-4175	10	10
-4235	18	18
-493	9	9
-4767	7	7
-1225	1	0
-8	1	1
-151	1	2
-5079	1	1
-28	1	1
-281	11	11
-1178	0	4
-685	8	0
-48	4	0
-1701	1	1
-43	5	5
-862	18	18
-58	1	1
-66	1	1
-420	1	1
-44	1	1
-680	4	4
-1675	1	1
-83	1	1
-3082	4	0
-5467	1	1
-27	0	1
-1099	16	0
-627	51	51
-1278	6	1
-129	1	1
-25	1	1
-1397	15	15
-810	1	1
-27	1	1
-1192	2	0
-7515	4	0
-979	0	3
-3406	0	2
-2340	1	1
-20	1	1
-1139	1	1
-26	1	1
-787	0	1
-1416	3	1
-22815	4	4
-126	1	0
-38	1	1
-140	1	0
-999	0	17
-56	0	15
-11759	161391	161513
-11155	0	2
-5376	0	1
-19253	1	0
-4212	1	1
-3671	1	0
-21	0	6
-4451	1	0
-27910	1	0
-9946	0	1
-11233	1	1
-32	1	1
-2238	1	1
-20	1	1
-3659	22	16
-1218	1	0
-1638	6	6
-228	1	1
-45	1	1
-2048	0	3
-461	1	0
-20759	1	0
-3778	2	1
-1268	1	0
-1511	1	1
-42	2	0
-24	1	1
-4119	22	0
-1757	1	0
-1527	1	1
-29	1	1
-1886	1	0
-10628	12	0
-46568	1	0
-18985	0	10
-1825	3	4
-5288	0	9
-1071	50	50
-1607	1	5
-722	0	1
-502	0	1
-1025	0	1
-134	14	0
-4944	0	1
-319	1	0
-6178	0	1
-2898	0	2
-143	0	1
-1775	1	0
-2123	0	1
-2715	1	0
-4901	70	66
-2884	1	0
-1362	1	0
-1233	0	8
-2134	0	1
-1042	0	1
-163	1	1
-45	1	1
-50	2	0
-64	1	1
-48	1	1
-380	0	1
-30	1	0
-30	1	1
-61	1	1
-22	1	1
-368	4	4
-319	5	7
-310	1	1
-37	3	1
-162	1	1
-194	2	0
-36	1	1
-242	9	9
-1932	1	1
-16	1	1
-528	1	1
-20	1	1
-509	0	5
-76	1	1
-21	1	1
-439	15	15
-2779	1	0
-1597	24	28
-59	12	12
-307	1	0
-516	1	0
-286	11	33
-339	5	0
-570	1	1
-37	1	1
-220	1	0
-72	1	1
-144	1	1
-48	1	1
-247	2	0
-174	9	10
-816	1	0
-940	1	1
-45	1	1
-91	3	3
-71	1	1
-291	14	14
-100	1	1
-23	1	1
-452	3	3
-85	1	1
-65	1	1
-77	1	1
-252	0	1
-129	15	15
-432	10	0
-85	1	1
-28	1	1
-189	2	1
-71	1	1
-52	8	0
-810	2	2
-63	1	1
-378	1	1
-26	1	1
-187	31	36
-966	1	1
-25	1	1
-91	12	12
-125	1	1
-38	1	1
-433	2	0
-596	1	1
-48	1	1
-465	4	4
-64	1	1
-20	1	1
-525	5	5
-237	3	8
-183	11	0
-364	4	3
-201	1	1
-42	1	1
-56	1	1
-115	1	0
-67	16	16
-244	1	1
-54	5	5
-929	1	1
-21	1	1
-126	0	3
-830	1	11
-59	1	1
-537	0	2
-24	1	1
-745	15	15
-810	1	0
-425	1	1
-89	1	1
-592	1	1
-49	1	1
-352	0	1
-142	1	1
-30	1	1
-95	1	1
-45	1	1
-227	1	1
-53	1	1
-130	1	1
-18	1	1
-138	1	1
-90	1	1
-129	41	41
-50	1	1
-79	1	1
-117	1	1
-31	1	1
-155	155	0
-34	1	1
-50	5	5
-57	1	1
-152	1	1
-30	1	1
-177	5	5
-345	1	1
-39	1	1
-504	18	18
-596	12	12
-54	1	1
-158	1	1
-164	1	1
-34	1	1
-626	15	15
-866	0	10
-1051	0	2611
-680	0	1
-1537	0	18
-75	1	0
-147	52	1
-119	0	12
-23	1	1
-1927	13	13
-1702	2	0
-3694	1	1
-18	1	1
-958	43	47
-246	2	0
-146	1	1
-49	1	1
-410	1	0
-667	1	1
-38	1	1
-362	7	1
-159	2	0
-515	2	0
-1026	1	1
-29	1	1
-249	0	6
-129	1	1
-33	4	0
-10	1	5
-1236	1	1
-20	1	1
-138	10	9
-448	0	3
-660	1	1
-28	1	1
-83	1	1
-51	1	1
-2659	1	1
-38	1	1
-424	0	1
-70	1	1
-820	1	1
-26	1	1
-1472	1	1
-21	1	1
-491	5	5
-2372	2	0
-533	6	0
-441	1	7
-1689	1	1
-26	3	4
-879	16	16
-514	0	2
-58	1	1
-350	1	0
-769	1	1
-39	1	1
-429	10	10
-134	0	4
-37	1	1
-144	8	8
-668	1	1
-22	1	1
-344	2	0
-262	2	2
-38	0	1
-70	18	18
-84	11	13
-198	0	1
-32	1	1
-74	11	15
-1255	0	2
-332	1	1
-21	1	1
-193	8	24
-34	1	1
-79	1	1
-29	1	1
-536	1	0
-308	0	1
-850	0	32
-23	1	1
-651	1	1
-22	0	3
-136	1	1
-48	1	1
-330	9	9
-1108	1	1
-98	1	1
-582	0	2
-713	7	7
-89	1	0
-293	9	8
-125	1	1
-31	1	1
-192	6	6
-171	17	17
-681	1	1
-43	1	1
-514	1	1
-68	1	1
-537	1	1
-35	1	1
-159	6	6
-778	2	2
-44	1	1
-168	0	7
-211	1	1
-42	1	1
-1253	1	1
-29	1	1
-320	1	1
-36	2	2
-55	1	2
-108	1	1
-33	1	1
-317	1	1
-35	1	1
-553	8	8
-386	1	1
-26	1	1
-540	1	1
-31	1	1
-65	0	1
-625	12	12
-313	0	1
-52	1	1
-22	1	1
-583	1	1
-49	1	1
-678	37	37
-784	3	0
-838	1	1
-19	12	0
-1129	1	1
-36	1	1
-553	8	8
-109	1	1
-45	1	1
-841	16	15
-157	1	1
-31	2	2
-204	18	19
-487	1	1
-29	1	1
-374	1	1
-67	1	1
-720	13	13
-266	10	10
-330	16	14
-413	1	1
-44	1	1
-78	6	6
-181	2	2
-36	1	1
-397	1	1
-20	1	1
-311	1	1
-48	2	2
-1298	11	11
-186	1	1
-33	1	1
-216	4	4
-35	1	1
-194	10	10
-310	1	1
-51	1	1
-136	1	1
-49	1	1
-521	1	1
-23	1	1
-242	1	1
-49	1	1
-600	1	1
-31	1	1
-413	15	15
-290	1	1
-49	1	1
-527	17	17
-340	12	11
-1025	1	0
-2572	1	1
-29	1	1
-397	2	5
-668	13	13
-541	1	1
-59	0	2
-6	1	1
-122	14	14
-51	1	1
-46	1	1
-72	5	5
-110	1	1
-76	1	1
-164	0	21
-136	1	1
-12	1	1
-66	16	16
-456	37	34
-371	7	7
-48	1	1
-194	10	10
-108	1	1
-60	1	1
-122	0	1
-48	1	1
-238	1	1
-32	0	1
-100	1	0
-72	1	0
-390	1	1
-38	1	1
-144	1	1
-27	0	4
-184	21	228
-49	1	1
-608	0	1
-152	1	1
-31	1	1
-281	8	8
-337	1	1
-45	1	1
-222	1	1
-54	1	1
-346	1	0
-44	1	1
-368	1	1
-72	1	1
-502	36	18
-63	1	1
-43	0	4
-136	1	1
-42	1	1
-80	4	4
-35	1	0
-89	1	1
-24	0	5
-829	13	13
-73	1	1
-28	14	0
-233	1	1
-42	0	3
-85	0	1
-400	1	1
-40	1	1
-538	25	25
-174	1	1
-20	1	1
-705	1	1
-26	2	2
-614	1	1
-44	1	1
-793	1	1
-16	1	1
-747	5	5
-804	1	1
-29	1	1
-166	1	1
-43	1	1
-233	1	1
-44	1	1
-507	0	3
-110	8	8
-133	1	1
-31	1	1
-165	1	1
-29	1	1
-1249	1	1
-26	4	0
-56	1	1
-67	1	1
-716	1	1
-46	0	1
-16	1	1
-174	1	1
-96	1	1
-141	1	1
-39	0	4
-263	1	1
-18	1	1
-259	4	4
-38	1	1
-104	1	1
-40	1	0
-248	1	1
-18	1	1
-238	1	1
-32	1	1
-70	0	2
-16	1	1
-818	1	1
-22	4	4
-492	4	4
-1145	1	1
-46	1	1
-53	1	0
-38	1	1
-373	1	1
-60	1	1
-1149	0	1
-20	1	1
-1294	1	1
-41	1	1
-316	4	4
-42	1	1
-218	12	12
-363	1	1
-24	1	1
-457	10	10
-414	13	13
-825	1	1
-41	1	1
-492	0	4
-1374	1	1
-18	1	1
-808	2	2
-335	6	4
-880	1	1
-35	1	1
-236	1	1
-67	1	1
-298	0	1
-147	4	4
-322	11	11
-613	1	1
-62	1	1
-340	1	1
-22	1	1
-1057	1	1
-57	1	1
-358	1	1
-128	1	1
-146	10	10
-490	1	1
-20	1	1
-62	1	1
-88	1	1
-293	1	1
-28	1	0
-20	1	1
-83	0	1
-90	1	1
-312	1	1
-44	1	1
-1213	1	1
-51	1	1
-467	1	1
-39	1	1
-122	14	0
-35	1	1
-485	14	14
-110	12	0
-127	1	1
-5450	0	5
-1699	9	9
-3278	0	2
-28	1	1
-2211	2	0
-521	1	1
-18	1	1
-784	18	18
-1603	0	248
-4769	47	47
-4486	4	4
-103	0	2
-88	1	1
-95	1	1
-2174	1	1
-22	0	1
-1244	7	7
-922	2	0
-1507	1	1
-44	1	1
-208	6	1
-1946	2	2
-85	0	1
-133	1	1
-666	1	0
-52	1	1
-29	1	1
-148	0	5
-30	1	1
-790	14	14
-52	1	1
-32	1	1
-121	1	1
-37	1	1
-396	3	2
-324	1	1
-152	1	1
-71	4	4
-27	1	1
-115	1	1
-101	1	1
-423	10	10
-294	1	1
-101	1	0
-4	0	1
-174	1	1
-146	1	1
-103	1	1
-134	1	1
-16	1	1
-378	1	1
-85	1	1
-134	1	1
-25	1	1
-54	3	3
-55	1	1
-67	1	1
-22	1	1
-54	13	13
-55	11	11
-120	1	1
-23	1	1
-51	1	1
-22	1	1
-364	1	1
-278	1	1
-354	34448	40149
-311	1	1
-33	1	2
-26	6	6
-474	1	1
-36	1	1
-151	1	1
-29	1	1
-120	1	1
-23	1	1
-865	1	1
-39	1	1
-553	1	1
-69	1	1
-116	1	0
-1618	9	9
-820	11	11
-173	0	8
-405	9	9
-196	1	1
-26	1	1
-173	1	1
-27	5	1
-42	1	1
-676	17	19
-77	1	3
-65	16	16
-69	1	0
-277	1	1
-44	1	1
-72	0	3
-70	1	1
-54	1	1
-240	1	0
-31	1	1
-1192	18	19
-454	28	28
-373	1	1
-46	1	1
-1565	1	1
-53	2	2
-543	1	1
-38	1	1
-985	1	1
-27	0	1
-8	1	1
-158	0	38
-656	1	1
-104	1	1
-771	1	1
-21	1	1
-398	1	1
-16	1	2
-163	4	3
-94	1	1
-44	1	1
-172	1	0
-122	5	5
-193	16	16
-535	2	2
-17	1	0
-93	1	1
-580	1	1
-91	1	1
-141	1	1
-79	1	1
-80	13	13
-165	1	1
-129	1	1
-114	1	1
-30	1	1
-83	1	1
-35	1	1
-126	16	16
-270	0	1
-111	9	9
-151	1	1
-118	1	1
-253	1	1
-45	18468	20220
-102	1	1
-20	1	1
-111	1	1
-97	1	0
-86	1	1
-70	0	4
-69	1	1
-52	0	1
-219	3	3
-76	1	5
-209	4	4
-22	1	1
-61	1	1
-91	1	1
-194	0	21
-15	0	1
-229	1	1
-185	0	1
-113	5	5
-45	1	1
-53	1	1
-37	1	1
-157	1	1
-279	1	1
-233	1	1
-19	0	8
-67	2	0
-41	1	1
-102	12	12
-275	14	14
-70	1	1
-82	2	2
-224	5	1
-490	0	22
-3841	1	0
-3216	1	1
-42	1	1
-1914	0	3
-616	11	12
-144	1	1
-21	2	1
-775	1	1
-50	1	1
-50	2	2
-96	2	2
-1522	4	0
-58	0	2
-1099	1	1
-42	1	1
-3502	0	6
-255	1	1
-40	1	1
-150	0	4
-18	1	1
-589	1	1
-37	1	1
-539	5	5
-354	1	3
-128	1	1
-58	1	1
-159	1	1
-5	2	0
-21	1	1
-231	1	1
-82	3	3
-69	3	0
-549	1	1
-69	1	1
-74	9	9
-126	1	1
-47	1	1
-614	9	9
-138	1	1
-29	1	1
-681	1	1
-49	1	1
-67	1	1
-19	4	9
-234	1	1
-93	1	1
-60	4	4
-96	4	4
-76	1	1
-169	1	1
-418	1	1
-130	1	1
-44	1	1
-69	1	1
-80	1	1
-76	1	1
-41	1	1
-129	6	11
-363	1	1
-42	1	1
-295	1	1
-43	1	1
-83	6	0
-52	0	2
-1228	1	1
-34	1	1
-3527	20	0
-1768	2	1
-2467	0	2
-101	10	0
-129	1	1
-37	1	1
-121	1	1
-25	1	1
-161	1	0
-97	1	1
-124	1	0
-178	1	1
-34	1	1
-54	1	1
-38	1	2
-634	83	83
-874	1	1
-40	1	1
-59	0	1
-59	4	4
-316	1	1
-178	1	1
-103	1	1
-61	1	1
-220	1	1
-61	1	1
-296	1	1
-33	1	1
-185	12	12
-269	1	1
-84	1	1
-864	15	15
-241	1	0
-79	3	3
-161	1	1
-48	1	1
-539	1	1
-44	1	1
-357	1	1
-37	1	1
-436	1	1
-59	1	1
-71	1	1
-261	1	1
-289	1	1
-47	1	1
-95	12	12
-97	4	4
-27	1	1
-100	1	1
-16	1	1
-101	1	1
-33	1	2
-481	1	1
-42	1	1
-206	7	7
-56	12	12
-179	10	10
-80	1	1
-41	1	1
-251	1	1
-306	1	1
-80	2	0
-4	94	0
-433	1	1
-23	1	1
-107	1	0
-265	1	1
-49	1	1
-282	72	72
-838	7	7
-60	1	0
-108	1	1
-24	1	1
-134	1	1
-32	1	0
-158	0	2
-1040	1	1
-42	1	1
-737	1	0
-790	1	1
-9	2	1
-11	1	1
-129	1	1
-23	1	1
-894	1	1
-43	3	3
-854	1	1
-23	0	1
-23	2	0
-26	1	1
-395	0	15
-403	5	5
-14	1	1
-2454	1	1
-76	1	1
-170	1	1
-18	1	1
-574	4	0
-291	1	1
-47	1	1
-786	19	0
-88	10	11
-48	1	1
-58	1	1
-28	1	1
-500	0	2
-1280	1	1
-28	1	1
-975	1	0
-3231	1	0
-865	1	1
-39	1	1
-1561	109	100
-1037	0	1
-510	1	1
-49	1	1
-1253	1	1
-19	1	1
-1078	3	0
-221	1	1
-21	1	0
-899	0	4
-466	1	1
-38	1	1
-297	0	3
-730	19	6
-1043	1	1
-49	1	1
-273	0	1
-708	1	0
-364	14	13
-58	1	1
-74	1	1
-614	60	60
-1889	4	0
-531	1	1
-19	1	1
-1944	5	0
-163	6	7
-1206	0	2
-718	1	1
-41	7	0
-1795	13	13
-1390	1	0
-2933	0	16
-540	1	1
-14	1	1
-167	1	0
-897	17	4
-1208	1	0
-1307	1	1
-20	1	1
-540	0	10
-203	2	0
-44	1	1
-298	1	0
-87	11	10
-491	14	8
-991	1	1
-74	6	0
-179	1	1
-34	1	1
-448	10	0
-1688	1	1
-38	21	0
-173	1	1
-49	2	1
-2161	30	30
-203	1	0
-89	1	0
-492	1	1
-30	1	1
-1212	3	0
-990	1	1
-38	1	1
-780	1	0
-191	1	1
-47	6	6
-393	1	1
-41	1	1
-259	1	0
-941	1	1
-20	1	1
-185	0	6
-165	0	16
-420	3	1
-130	1	1
-31	1	1
-253	18	18
-720	16	18
-1257	3	0
-986	0	4
-3311	1	1
-26	1	1
-556	0	4
-120	0	1
-1273	1	1
-20	1	1
-338	8	8
-3965	0	3
-15	1	1
-2531	17	17
-3334	5	5
-121	13	13
-161	1	1
-45	1	1
-94	14	14
-63	9	10
-2108	1	1
-34	1	1
-1436	1	1
-47	1	1
-273	7	0
-153	0	5
-283	12	12
-619	1	1
-36	0	4
-225	1	1
-23	1	1
-553	5	0
-2334	1	1
-49	1	1
-350	1	1
-31	1	1
-1012	2	2
-422	1	1
-46	1	1
-91	4	19
-468	0	1
-46	1	1
-1491	0	4
-426	0	1
-1144	1	2
-1131	1	1
-20	1	1
-1533	16	0
-3103	44	45
-4016	12	12
-346	0	1
-943	1	0
-524	1	1
-20	1	1
-151	3	3
-144	1	1
-189	1	7
-750	1	0
-695	1	0
-1003	0	2
-7819	1	1
-78	1	1
-1811	0	1
-3177	0	1
-8990	0	1
-2268	1	1
-35	0	10
-8205	1	0
-3193	1	1
-76	1	1
-10955	0	1
-22875	0	20
-2417	1	0
-998	0	13
-4236	8	0
-4845	0	2
-64	40	34
-10941	1	1
-40	1	1
-4759	0	6
-12084	0	3
-3052	0	4
-2989	1	0
-13523	1	3
-16170	1	0
-11761	0	3
-3912	3	0
-6620	0	7
-7633	3	0
-419	2	0
-10690	5	24
-10798	0	1
-296	0	1
-1770	4	0
-374	0	4
-230	16	16
-7468	1	0
-1229	1	0
-3061	1	0
-5818	1	0
-2415	12	9
-2056	0	1
-955	4	0
-20022	0	1
-4418	2	1
-2375	0	4
-2086	1	1
-32	1	1
-1225	1	0
-857	2	0
-1154	0	1
-4667	1	0
-170	0	3
-2376	0	1
-2799	10	10
-1512	4	0
-68	9	1
-2170	1	1
-47	1	1
-318	2	0
-19	0	6
-14527	1	1
-33	1	1
-3080	1	1
-23	1	1
-1645	6	6
-231	0	1
-2136	2	0
-6222	0	1
-830	1	1
-24	1	1
-8326	1	0
-2939	1	0
-3959	0	2
-3746	0	2
-1011	1	1
-34	1	1
-7443	0	1
-688	2	0
-574	1	1
-29	1	1
-1799	13	1
-4074	2	0
-136	1	1
-77	1	1
-528	19	0
-253	0	1
-204	1	0
-129	2	0
-811	1	1
-38	1	1
-2347	52	0
-4634	1	0
-856	14	14
-193	0	4
-855	1	1
-28	1	1
-1255	1	1
-36	1	1
-97	0	1
-58	1	1
-1708	1	1
-48	1	1
-958	15	0
-3371	1	1
-37	1	1
-4267	0	13
-1061	0	1
-272	0	26
-8	1	15
-25	0	2
-112	2	0
-26	4	32
-4090	0	1
-3270	1	1
-17	1	1
-2822	0	1
-6206	1	0
-2318	0	2
-1504	0	1
-6189	3	0
-396	22	12
-918	0	1
-2340	1	1
-33	1	1
-326	1	1
-80	1	1
-205	3	2
-81	8	17
-2671	0	1
-1099	0	1
-144	1	1
-29	0	1
-2097	0	3
-24	3	0
-1207	4	4
-45	1	1
-757	0	5
-1926	1	1
-40	1	1
-2657	0	1
-414	1	0
-61	0	1
-235	0	2
-2087	0	1
-713	0	4
-58	3	0
-1027	3	0
-428	1	1
-17	1	1
-948	1	1
-41	1	1
-458	1	1
-21	1	1
-1055	0	1
-6611	0	3
-1575	4	5
-36	1	1
-99	2	0
-700	0	2
-151	0	1
-467	11	11
-272	0	3
-40	1	1
-2428	0	1
-750	2	0
-473	0	2
-421	1	1
-34	1	1
-1575	1	0
-3841	1	0
-560	1	0
-1108	1	0
-8087	1	0
-11881	1	1
-30	1	1
-4383	2	0
-6883	49	49
-3146	0	1
-906	3	0
-887	1	1
-80	1	1
-3115	0	1
-1037	1	0
-5866	0	2
-18	1	1
-582	0	5
-2828	1	0
-847	1	0
-1996	3	0
-3170	1	0
-1751	0	1
-910	3	0
-691	0	1
-5793	0	1
-26407	1	0
-672	0	1
-19269	29	35
-1371	29	0
-494	2	0
-20417	1	0
-18633	0	1
-601	1	0
-319	0	1
-6820	1	0
-5718	0	2
-17894	1	0
-4272	1	0
-4967	3	1
-290	1	0
-2447	1	0
-740	1	9
-9299	0	18
-7427	1	0
-8151	2	1
-673	1	0
-3453	0	1
-149	0	1
-611	0	4
-4662	0	4
-1752	1	1
-78	1	1
-1581	0	1
-1092	2	0
-159	1	0
-4480	0	2
-4019	0	1
-1451	22	23
-816	1	0
-8701	1	1
-23	1	1
-1796	2	0
-5015	6	1
-1383	8	0
-2368	1	1
-31	1	0
-1883	3	0
-335	0	1
-4157	0	1
-561	4	0
-1538	1	1
-61	0	1
-159	0	2
-3362	4	0
-3333	1	1
-46	1	1
-2307	1	0
-170	1	0
-5972	0	2
-840	0	2
-55	1	1
-28	1	1
-1154	0	2
-650	0	4
-30	0	4
-1100	10	11
-4343	6	0
-1663	4	0
-150	1	0
-3128	1	0
-1449	1	0
-2023	0	1
-428	3	6
-299	2	0
-427	7	7
-1914	14	14
-1273	7	7
-1444	72	0
-423	0	4
-954	1	0
-2467	1	0
-190	8	8
-2034	3	1
-6396	1	1
-34	1	1
-485	1	0
-348	7	0
-770	1	1
-29	0	13
-65	1	1
-1358	0	1
-302	0	1
-659	12	12
-293	0	1
-610	0	1
-906	12	0
-1331	0	6
-1786	0	1
-463	0	1
-4305	0	4
-1041	1	0
-11424	3	1
-13797	0	8
-166	0	1
-1510	5	0
-9069	0	8
-25	1	1
-332	5	3
-76	0	1
-1306	1	1
-46	1	1
-134	19	23
-1467	1	1
-32	1	1
-449	17	0
-367	9	9
-3525	12	10
-91	3	0
-1430	1	1
-24	1	1
-1156	9	13
-843	1	1
-28	1	1
-515	0	17
-1559	0	4
-1045	9	9
-1953	1	0
-31	1	1
-843	0	1
-2174	1	0
-3788	1	0
-2001	0	1
-2400	0	1
-1614	1	0
-8167	0	1
-2700	2	0
-2735	0	1
-8508	1	1
-57	1	1
-141	0	3
-448	1	1
-22	1	1
-2215	1	1
-32	1	1
-1714	32	32
-667	14	14
-142	1	0
-789	1	1
-45	1	1
-84	1	1
-95	1	1
-465	1	1
-45	6	4
-541	1	1
-42	1	1
-1339	5	6
-391	1	1
-20	0	1
-251	1	1
-22	1	1
-561	0	2
-78	3	0
-1718	1	1
-12	1	1
-1042	1	1
-38	1	1
-301	14	0
-222	10	10
-436	10	10
-556	55	55
-953	1	1
-17	1	1
-1752	20	0
-1561	135	0
-58	0	45
-245	101	11
-46	90	0
-150	0	270
-54	180	0
-2130	12	12
-1630	1	1
-26	1	1
-189	0	14
-296	2	0
-809	2	0
-17	20	0
-665	0	40
-236	1	1
-44	1	1
-352	1	1
-25	1	1
-554	6	6
-850	1	1
-33	1	1
-809	3	13
-1832	7	9
-468	1	1
-21	1	1
-951	1	1
-22	1	1
-219	17	18
-733	0	14
-215	2	2
-36	1	1
-301	1	1
-22	1	1
-241	1	1
-52	0	1
-47	1	1
-72	1	1
-109	1	1
-129	1	1
-28	1	1
-174	8	8
-683	3	0
-1190	285	0
-48	1	1
-1330	12	0
-557	17	17
-932	3	1
-27	1	1
-166	1	1
-19	1	1
-406	1	1
-48	3	3
-137	1	0
-161	6	6
-884	2	0
-58	1	1
-107	1	1
-150	14	14
-522	1	1
-28	1	1
-945	4	4
-34	1	1
-472	0	2
-203	0	1
-281	1	1
-46	1	1
-1130	1	0
-232	17	17
-510	1	1
-33	1	1
-62	10	10
-1501	1	1
-20	1	1
-573	1	1
-29	1	1
-928	0	3
-304	1	1
-41	1	1
-160	1	1
-58	1	1
-656	1	1
-40	4	0
-108	6	6
-321	1	1
-14	0	16
-91	1	1
-184	1	1
-43	8	3
-180	1	1
-68	1	1
-144	1	1
-27	1	0
-17	1	1
-212	0	1
-212	1	1
-34	1	1
-115	1	1
-41	1	1
-407	10	10
-200	1	1
-44	2	0
-187	2	0
-146	1	1
-17	1	1
-122	4	4
-73	1	0
-56	1	1
-155	1	17
-80	15	15
-458	1	1
-16	3	3
-343	1	1
-111	1	1
-160	55	55
-157	12	12
-346	0	2
-382	4	0
-35	1	1
-937	0	1
-246	25	0
-52	0	1
-419	0	1
-165	1	0
-75	24	3
-297	1	1
-38	1	1
-5066	1	0
-4922	7	9
-2488	14	14
-2241	1	1
-67	4	4
-39	1	0
-547	1	1
-43	1	1
-524	3715	901
-1796	4	2
-138	2	2
-16	1	1
-415	1	1
-18	1	1
-367	0	89
-1600	0	6
-2175	0	5
-606	14	14
-519	1	0
-540	1	1
-40	1	1
-568	2	0
-165	1	2
-31	1	1
-259	1	1
-41	1	1
-452	31	31
-623	40	62
-818	1	1
-42	1	1
-565	1	1
-44	1	1
-571	10	8
-61	1	1
-28	1	1
-233	2	0
-33	28	0
-53	1	1
-37	1	1
-75	0	396
-156	1	0
-473	0	4
-421	1	1
-35	1	1
-2132	1	1
-80	0	2
-544	9	9
-152	2	1
-33	1	1
-2932	1	1
-44	0	1
-164	22	0
-149	1	0
-534	1	1
-36	1	1
-113	1	1
-15	1	1
-661	1	1
-48	1	1
-1987	1	0
-34	1	1
-444	1	1
-45	1	1
-65	1	1
-67	1	1
-210	1	1
-68	1	1
-55	1	1
-47	1	1
-169	1	1
-64	1	1
-109	0	6
-77	2	32
-6	0	5
-67	0	1
-7	16	0
-51	12	0
-36	0	12
-700	1	1
-33	1	0
-49	0	2
-450	0	1
-98	4	0
-489	32	0
-63	5	1
-78	7	7
-538	17	17
-1269	1	0
-841	1	1
-43	1	1
-2004	1	1
-41	1	1
-86	0	4
-5	1	0
-36	1	1
-573	2	1
-297	1	0
-85	1	1
-30	1	1
-1041	1	0
-12	1	1
-392	33	12
-515	5	6
-583	1	1
-33	1	1
-616	16	16
-1052	0	11
-39	1	1
-184	1	1
-67	1	1
-102	7	7
-58	0	1
-307	1	1
-56	0	3
-930	21	19
-1264	0	1
-832	1	1
-28	1	1
-272	1	1
-82	1	1
-56	1	0
-976	6	6
-2015	0	3
-84	9	9
-130	13	17
-564	10	15
-154	1	0
-438	10	10
-38	0	5
-2141	1	1
-25	1	1
-73	10	10
-70	5	5
-132	1	1
-52	1	1
-599	1	1
-46	1	1
-279	1	1
-18	1	1
-239	2	0
-383	6	0
-224	0	1
-321	3	0
-8	16	0
-1775	1	1
-18	2	0
-575	16	16
-60	1	1
-16	1	1
-1247	2	0
-173	3	0
-41	1	1
-57	8	8
-285	2	0
-672	1	1
-44	1	1
-106	0	1
-148	1	1
-49	3	0
-146	5	11
-91	1	1
-79	1	1
-94	1	1
-101	1	1
-88	16	16
-117	1	1
-15	1	1
-58	1	1
-93	1	1
-140	1	0
-326	1	1
-44	1	1
-160	1	1
-23	1	1
-481	14	14
-181	4	4
-72	1	1
-25	1	1
-88	1	3
-36	0	12
-92	1	1
-56	10	0
-13	0	1
-66	1	1
-141	2	0
-65	1	1
-367	0	2
-610	1	1
-22	1	1
-150	1	1
-85	1	1
-109	1	1
-167	3	1
-23	1	0
-26	1	1
-74	1	1
-33	1	1
-176	1	1
-25	2	2
-193	1	1
-35	0	1
-383	0	5
-249	1	1
-69	1	1
-98	1	1
-62	1	1
-62	1	2
-74	0	1
-68	1	1
-438	1	1
-64	1	1
-47	0	8
-125	3	0
-75	5	5
-45	1	1
-197	1	1
-27	1	1
-116	13	13
-218	15	20
-1107	16	19
-73	1	1
-25	1	1
-199	1	1
-60	1	1
-994	1	1
-43	0	1
-18	1	1
-1215	18	18
-340	1	1
-34	1	1
-1350	16	16
-1726	4	4
-193	1	1
-48	1	1
-295	1	1
-18	1	1
-411	19	19
-175	1	1
-49	1	1
-146	1	1
-61	1	1
-116	1	1
-41	1	1
-137	1	1
-30	1	1
-158	9	9
-136	10	13
-349	8	8
-468	1	1
-44	1	1
-862	17	17
-813	1	1
-24	1	1
-214	10	4
-228	1	1
-34	1	1
-101	12	12
-242	1	1
-69	1	1
-185	1	1
-24	1	0
-164	0	1
-222	1	1
-25	1	1
-297	10	10
-1171	1	0
-182	1	1
-35	1	1
-350	19	19
-1966	1	1
-24	1	1
-548	7	7
-208	13	12
-298	1	1
-65	1	1
-193	2	2
-28	1	1
-125	4	4
-95	7	7
-566	1	1
-40	1	1
-118	0	1
-318	1	0
-374	1	1
-58	1	1
-143	1	1
-74	1	1
-53	21	0
-81	1	1
-45	1	1
-138	15	16
-180	1	1
-62	1	1
-661	1	1
-48	1	1
-1463	1	0
-156	0	1
-148	1	1
-19	1	0
-17	1	1
-1927	4	0
-1469	14	14
-466	0	1
-3098	0	1
-1141	2	3
-743	14	14
-79	1	1
-22	1	1
-362	0	1
-682	16	9
-275	0	4
-539	1	0
-61	0	7
-331	0	4
-130	1	1
-31	0	3
-1554	1	1
-43	1	1
-224	1	1
-49	1	1
-159	3	0
-1064	27	27
-104	1	1
-21	1	1
-222	2	2
-49	1	1
-1397	1	1
-37	1	1
-414	0	2
-695	1	1
-31	1	1
-742	1	1
-21	1	1
-230	3	2
-42	1	1
-68	1	1
-37	1	1
-703	0	3
-2216	84	83
-1430	1	1
-23	1	1
-1867	13	0
-35	1	1
-137	16	16
-1500	4	0
-4546	1	1
-25	1	1
-358	19	19
-1549	1	1
-39	4	3
-1037	1	1
-40	2	0
-890	6	0
-41	2	0
-498	3	0
-321	0	1
-281	3	0
-414	1	1
-70	1	1
-284	1	0
-214	1	1
-28	1	1
-280	1	0
-650	1	1
-47	1	1
-1030	1	1
-91	1	1
-6520	5	5
-462	1	0
-2864	0	3
-1930	0	4
-2915	1	1
-20	1	1
-413	1	0
-1844	11	11
-133	0	6
-569	10	10
-110	12	12
-184	0	3
-228	1	1
-43	2	2
-51	14	13
-1499	1	0
-12	1	1
-378	1	1
-49	1	1
-424	1	0
-1069	1	1
-142	0	1
-821	2	9
-311	1	6
-247	1	1
-86	1	1
-1850	1	1
-26	1	1
-498	1	1
-34	1	1
-688	5	9
-44	1	1
-369	1	1
-69	1	1
-156	2	0
-83	1	1
-128	1	1
-50	9	9
-249	1	1
-70	0	1
-624	2	0
-74	2	1
-300	1	1
-26	1	1
-240	4	0
-1705	1	1
-52	1	1
-231	29	24
-378	2	0
-236	1	1
-76	1	1
-116	9	12
-301	20	20
-59	0	6
-43	1	1
-384	15	15
-1414	5	0
-225	0	2
-1234	1	0
-29	1	1
-235	10	10
-227	1	1
-77	4	0
-43	5	9
-485	7	7
-380	10	0
-46	1	0
-90	1	1
-161	1	1
-401	1	1
-58	1	1
-2127	3	0
-186	20	20
-323	5	5
-47	1	1
-236	1	1
-31	0	2
-1568	1	1
-136	0	1
-202	0	3
-77	1	1
-44	1	1
-411	12	11
-317	0	2
-599	1	1
-37	1	1
-391	1	0
-273	1	0
-744	0	4
-703	1	1
-20	1	1
-198	3	0
-158	19	15
-27	12	0
-282	1	1
-32	4	0
-740	1	0
-327	1	1
-105	1	1
-146	16	16
-101	1	0
-21	1	1
-232	1	1
-33	2	0
-12	1	1
-189	1	1
-30	2	2
-544	1	1
-153	1	1
-586	5	0
-1351	21	0
-446	49	49
-121	7	7
-1147	12	12
-777	1	0
-701	1	1
-29	2	2
-154	12	12
-191	1	1
-55	1	1
-113	0	1142
-87	0	2
-15	0	1
-525	1	1
-22	1	1
-355	10	10
-50	0	8
-252	1	1
-31	1	1
-354	6	5
-148	15	15
-407	1	1
-42	1	1
-275	0	1
-737	5	9
-1432	1	1
-39	1	1
-84	0	2
-77	7	7
-514	20	20
-385	7	1
-815	1	1
-45	1	1
-487	1	1
-66	1	1
-2379	0	24
-779	1	1
-18	1	0
-2653	4	0
-34	1	1
-191	1	1
-35	1	1
-1174	12	0
-2497	1	1
-24	0	1500
-447	8	0
-3268	1	0
-946	1	0
-2223	20044	20060
-119	1	1
-71	0	3
-53	0	5
-40	1	1
-309	1	1
-57	1	1
-101	1	1
-47	2	2
-67	1	1
-47	1	1
-74	0	1
-28	1	1
-167	1	1
-33	1	1
-543	1	1
-27	11	34
-33	1	1
-149	7	7
-61	1	1
-120	1	1
-366	1	1
-55	1	1
-121	1	1
-62	1	1
-78	1	1
-48	1	1
-161	1	1
-26	1	1
-191	1	1
-20	11	11
-550	1	1
-76	1	0
-20	1	1
-112	1	1
-149	1	1
-284	1	1
-37	1	1
-705	1	12
-106	12	12
-83	1	1
-46	1	1
-1500	1	1
-81	1	1
-210	1	1
-26	1	1
-713	1	1
-48	1	1
-723	0	3
-196	6	6
-62	2	2
-32	1	1
-606	1	2
-357	1	1
-38	292	0
-589	1	1
-30	1	1
-714	8	8
-639	1	1
-20	1	1
-1068	0	1
-571	1	1
-49	1	1
-436	0	1
-609	0	2
-30	1	1
-66	0	1
-349	11	11
-65	1	1
-40	1	1
-717	0	3
-299	1	1
-29	1	1
-724	1	0
-275	1	1
-33	1	1
-318	0	3
-279	1	1
-28	1	1
-389	1	0
-548	0	8
-330	1	1
-47	1	1
-170	1	1
-47	1	1
-519	14	14
-841	24	24
-732	1	1
-29	3	3
-688	2	2
-23	0	1
-94	14	14
-726	13	13
-508	0	12
-21	6	0
-69	1	1
-37	1	1
-590	1	1
-59	1	1
-89	11	11
-164	1	1
-58	1	1
-1709	18	18
-520	1	1
-27	1	1
-683	10	10
-814	1	1
-26	1	1
-350	1	1
-39	1	1
-132	6	6
-439	10092	10075
-78	15	15
-3352	1	1
-23	1	1
-873	4	4
-887	1	0
-1827	1	0
-216	6	6
-805	2	0
-874	0	8
-2266	1	1
-47	1	1
-761	0	4
-86	1	1
-19	1	1
-1794	9	9
-271	0	1
-2266	1	1
-34	1	1
-916	0	1
-21	1	1
-108	21	21
-141	1	1
-27	1	1
-406	3	0
-3950	1	1
-38	1	1
-128	2	2
-56	1	1
-72	0	1
-96	1	1
-22	1	1
-169	7	7
-511	1	1
-38	1	1
-1070	1	1
-90	1	1
-50	1	1
-41	1	0
-30	1	1
-659	12	12
-701	1	1
-33	1	1
-569	15	15
-70	1	1
-38	1	1
-955	0	3
-130	1	1
-63	1	1
-251	8	8
-191	1	1
-26	0	3
-187	1	0
-916	5	1
-70	13	13
-498	20061	20021
-160	1	1
-76	1	1
-95	1	1
-76	1	1
-275	1	0
-101	1	1
-79	1	1
-100	7	7
-159	1	1
-75	0	8
-87	1	1
-76	1	1
-44	1	1
-71	32	32
-89	11	12
-196	1	1
-55	0	2
-61	1	1
-83	0	1
-944	1	1
-126	1	1
-81	6	6
-41	3	0
-641	1	1
-92	1	0
-113	1	1
-39	1	1
-671	1	1
-28	1	1
-123	1	1
-59	1	1
-210	1	1
-17	1	1
-168	15	14
-494	1	0
-22	1	1
-484	18	18
-376	1	1
-114	2	0
-67	1	1
-10	1	1
-109	1	1
-165	1	1
-149	6	6
-234	1	1
-19	5	5
-64	1	1
-111	1	1
-220	1	1
-89	1	1
-119	1	1
-113	2	0
-168	1	1
-73	1	1
-194	1	1
-50	0	4
-37	1	1
-95	3	1
-43	1	1
-153	1	1
-83	1	1
-55	1	1
-39	1	1
-70	7	0
-59	7	7
-75	1	1
-84	2	2
-110	1	0
-42	1	1
-129	9978	10000
-438	1	1
-43	1	0
-55	1	1
-40	1	1
-175	1	1
-46	1	1
-52	1	1
-19	1	1
-277	1	1
-60	1	1
-98	1	1
-24	1	1
-333	4	4
-1047	2	0
-4080	1	1
-38	1	1
-837	0	64
-172	1	1
-55	1	1
-1818	2	0
-1143	13	13
-335	1	0
-1944	5	0
-39	6	0
-4057	3	8
-9465	5	4
-301	19	1
-191	84	0
-427	1	1
-29	0	4
-157	4	5
-296	21	18
-158	2	2
-36	1	1
-539	13	13
-399	1	1
-46	1	1
-348	1	1
-49	1	1
-268	1	0
-66	0	4
-178	2	2
-107	1	1
-133	5	5
-355	1	1
-30	1	1
-346	1	1
-29	1	1
-161	1	1
-38	1	1
-121	4	4
-55	8	8
-67	7	7
-318	17	17
-259	1	1
-94	1	1
-80	1	1
-35	1	1
-260	1	1
-81	1	1
-106	1	1
-58	1	2
-301	3	0
-2052	1	1
-40	1	1
-174	20	22
-574	0	2
-414	1	0
-234	0	1
-425	51224	51060
-1568	14	14
-11956	0	1
-2667	0	2
-884	1	1
-19	1	1
-676	1	1
-63	1	1
-3138	0	3
-3038	5	2
-132	10	6
-136	18	13
-363	1	1
-89	1	1
-382	1	1
-29	1	1
-58	8	7
-297	4	0
-66	1	1
-93	2	0
-145	1	1
-31	5	5
-576	1	1
-89	1	1
-1256	0	12
-67	1	1
-193	2	2
-23	1	1
-51	1	0
-727	1	0
-1148	12	12
-837	1	1
-77	1	1
-941	10	10
-776	19	19
-300	1	1
-24	1	1
-256	1	7
-93	1	1
-224	2	0
-138	1	1
-563	1	1
-104	4	4
-2898	1	1
-46	1	1
-282	1	1
-39	1	1
-204	2	2
-22	1	1
-469	1	1
-20	1	1
-140	1	1
-26	1	1
-745	0	2
-539	0	6
-1536	1	0
-817	4	4
-202	1	1
-48	1	1
-168	1	1
-53	1	1
-379	10	10
-1178	14	14
-132	5	0
-555	1	1
-42	1	1
-573	1	1
-21	1	1
-462	1	1
-43	1	1
-121	1	1
-48	0	3
-15	1	5
-1404	0	1
-934	1	1
-49	1	1
-1350	1	0
-384	1	1
-24	1	1
-4169	0	15
-244	10	10
-2167	18	14
-64	1	1
-31	1	1
-185	0	4
-1647	1	1
-20	1	1
-227	1	1
-37	1	1
-636	3	4
-5590	1	1
-39	1	1
-461	0	2
-2145	1	1
-23	1	1
-1114	0	2
-688	0	1
-901	18	18
-4781	0	4
-815	0	1
-5027	42	47
-415	0	1
-2743	1	1
-78	1	1
-390	1	0
-328	0	1
-878	0	1
-5752	0	2
-1554	1	1
-60	1	1
-278	0	1
-19	1	1
-1164	11	11
-691	0	2
-960	1	0
-62	0	20
-2108	0	2
-1265	0	1
-1642	2	0
-3584	2	0
-12086	2	0
-3766	0	2
-1209	1	7
-3466	1	0
-1448	1	0
-1943	0	1
-698	0	8
-1166	135	135
-2030	2	0
-540	1	0
-1736	14	0
-3128	0	2
-4464	0	1
-3597	1	0
-378	1	0
-1269	0	3
-1182	1	0
-654	0	3
-2049	1	0
-6838	1	1
-69	0	3
-154	1	0
-2718	1	1
-30	1	1
-160	11	11
-4954	0	1
-420	1	1
-123	1	1
-156	0	4
-219	4	0
-195	1	0
-4402	3	0
-3045	0	1
-1249	1	0
-3522	0	10
-675	20	20
-117	8	0
-346	0	1
-8538	5	0
-455	1	0
-119	0	1
-355	48	48
-724	1	0
-9254	22	22
-1672	1	0
-833	0	1
-4251	1	0
-8	1	1
-2079	0	1
-1735	8	12
-1612	0	1
-1373	5	0
-8585	7	0
-64	1	1
-3799	1	0
-258	2	0
-899	1	0
-1362	8	9
-593	0	2
-3351	2	0
-618	0	4
-905	2	15
-2797	1	0
-2776	2	0
-4110	0	6
-4466	18	18
-1783	9	9
-475	0	4
-134	1	0
-12963	8	0
-1616	0	2
-1685	2	0
-2225	2	0
-428	0	1
-458	20	20
-2860	0	3
-677	4	6
-325	11	1
-1887	0	1
-913	0	1
-997	5	5
-2814	17	15
-1389	1	0
-1200	0	4
-2495	1	0
-3921	26431	26426
-2419	0	1
-6110	0	1
-1370	0	1
-3085	1	0
-3568	1	1
-24	0	9
-597	1	0
-2642	1	0
-1545	10	0
-4952	0	1
-6146	2	0
-1452	1	0
-2967	1	0
-4920	5	0
-147	4	5
-850	1	0
-1875	1	0
-695	3	1
-1719	0	1
-259	0	1
-294	1	0
-128	0	2
-3051	0	1
-908	0	4
-3399	0	1
-4673	1	0
-3179	1	0
-411	1	1
-44	1	1
-174	1	0
-1047	17	17
-998	178	0
-671	0	40
-2093	1	0
-313	0	1
-7581	1	0
-3245	1	0
-972	0	4
-4085	2	0
-346	1	1
-45	1	1
-368	1	0
-26	1	1
-8444	0	1
-17044	1	0
-2795	2	0
-2860	1	0
-622	0	1
-167	0	5
-1968	0	2
-259	2	0
-4992	29	27
-170	1	0
-3528	0	1
-191	1	2
-117	2	0
-2275	1	0
-12676	1	1
-20	1	1
-9972	1	0
-13955	0	5
-19867	1	0
-9612	1	0
-14233	0	32737
-6316	1	1
-19	1	1
-970	8	8
-2685	16	16
-18093	0	1
-6799	0	16
-3350	0	1
-7574	0	12
-2132	0	1
-7228	52793	52800
-1955	22	22
-698	0	1
-2149	1	0
-6880	0	2
-960	0	1
-23	1	1
-2646	2	0
-3867	5	0
-26077	0	3
-3174	1	0
-8183	0	1
-2817	10	0
-5841	1	0
-2081	0	1
-374	0	2
-3589	0	4
-10625	28	28
-3275	3	0
-773	7	7
-175	1	1
-79	1	1
-400	12	12
-1096	0	4
-717	7	7
-52	1	1
-68	5	1
-2117	0	3
-130	14	14
-1124	0	3
-413	0	4
-643	3	0
-58	1	1
-127	1	1
-196	0	2
-226	3	0
-136	3	4
-293	1	1
-25	0	3
-63	1	1
-417	0	2
-412	0	16
-737	4	0
-402	2	0
-654	1	1
-42	1	1
-75	1	1
-64	1	1
-2980	4	0
-576	0	1
-29	2	2
-715	1	1
-36	1	1
-511	38	38
-218	4	40
-44	1	5
-43	49	5
-709	21	21
-1147	9	9
-22	1	1
-195	7	4
-659	3	0
-27	1	1
-637	1	1
-42	1	1
-531	1	1
-67	1	1
-39	1	0
-717	11	11
-53	1	1
-61	1	1
-1535	1	1
-89	0	1
-49	1	0
-102	1	1
-67	1	1
-76	1	1
-129	1	1
-85	1	1
-607	10	0
-12	137	1
-41	1	1
-1043	1	1
-22	1	1
-203	3	0
-480	14	21
-91	23	23
-1345	2	1
-435	15	17
-1188	30	0
-1778	1	0
-120	0	3
-3797	1	0
-3211	0	1
-2456	4	0
-954	0	4
-1847	0	1
-5929	20	20
-984	14	0
-2112	1	0
-2013	1	0
-1770	14	14
-3100	1	0
-1160	16	0
-733	7	7
-238	3	2
-2203	2	1
-5654	1	1
-28	5	10
-482	0	1
-2970	0	4
-2892	0	1
-251	1	7
-1346	1	0
-877	0	4
-3583	0	1
-1178	0	1
-1293	0	2
-491	2	0
-6803	1	1
-22	1	1
-2218	1	1
-44	1	1
-4780	4	0
-3026	14	13
-442	5	5
-2022	6	6
-506	2	0
-8557	1	1
-36	1	0
-1575	1	0
-1329	1	1
-35	1	0
-247	1	1
-16	1	1
-184	1	1
-18	1	1
-1636	0	7
-23	1	1
-527	1	1
-39	1	1
-653	3	0
-227	1	1
-18	1	1
-218	0	323
-91	1	0
-124	0	15
-621	0	2
-555	8	8
-467	1	1
-40	1	1
-372	1	1
-25	1	1
-188	12	12
-357	0	2
-2389	1	1
-22	1	1
-2579	0	5
-461	1	1
-36	1	1
-1584	1	1
-26	1	0
-429	1	0
-33	1	1
-1071	0	4
-1068	9	0
-1472	0	2
-1839	94	92
-337	1	1
-46	1	1
-416	1	1
-42	1	1
-1255	0	2
-628	17	15
-587	15	15
-398	3	0
-623	1	1
-78	0	3
-287	10	0
-191	0	2
-493	1	1
-42	4	0
-219	0	1
-408	1	1
-23	1	1
-283	1	1
-21	1	1
-633	2	0
-241	6	6
-457	1	0
-330	0	16
-428	1	0
-4	6	0
-324	0	1
-3060	0	2
-9953	0	1
-1899	0	6
-6431	0	1
-8674	0	4
-4595	11	0
-5064	2	0
-2813	12	12
-1391	5	0
-3690	1	1
-64	1	1
-2635	1	1
-49	1	1
-69	1	1
-15	1	1
-605	4	4
-400	8	0
-735	0	20
-3074	2	0
-1879	0	1
-572	0	8
-576	1	1
-42	1	1
-265	24	0
-209	11	11
-953	1	1
-42	0	5
-58	1	0
-95	1	0
-1121	1	1
-17	1	1
-751	0	1
-24	1	1
-351	1	1
-43	3	3
-565	1	1
-15	1	1
-271	1	0
-323	1	1
-23	1	1
-221	7	7
-705	9	0
-631	2	0
-64	1	1
-1577	1	1
-21	0	1
-371	7	21
-160	0	1
-283	1	1
-48	1	1
-227	1	1
-40	0	1
-1359	0	2
-836	13	13
-722	7	7
-1153	1	1
-93	1	1
-797	14	14
-433	8	0
-108	11	11
-140	1	1
-40	1	1
-470	1	1
-42	1	1
-1106	0	1
-85	4	4
-129	1	1
-123	1	0
-95	1	1
-104	6	1
-641	1	1
-77	1	1
-57	1	1
-62	1	1
-473	2	0
-262	6	0
-45	1	1
-63	2	0
-39	1	1
-267	0	1
-197	2	104
-189	107	3
-112	0	4
-108	5	0
-563	14	14
-324	1	0
-205	1	1
-17	1	1
-495	0	1
-201	4	0
-14	1	1
-667	42	42
-178	1	1
-58	1	1
-133	1	1
-24	1	1
-91	24	24
-342	1	1
-32	1	1
-121	1	1
-62	1	1
-2371	2	0
-164	8	1
-655	1	1
-30	1	1
-271	1	1
-47	1	1
-609	1	0
-1780	2	0
-742	1	1
-40	1	1
-2014	1	0
-1741	3	0
-3833	0	1
-14622	161198	190000
-5156	0	1
-1680	1	1
-88	1	1
-4502	0	1
-46	1	1
-800	4	4
-23	1	1
-1305	2	0
-136	0	1
-4941	0	1
-547	0	1
-70	8	8
-293	1	1
-35	1	1
-1165	4	0
-6662	1	1
-46	1	1
-167	0	8
-214	1	1
-35	1	1
-108	1	0
-1063	0	1
-1017	1	1
-20	0	6
-1725	0	1
-150	5	5
-33	1	0
-12	1	1
-349	1	1
-24	0	1
-1562	1	1
-31	1	1
-2513	0	1
-73	36	36
-305	1	1
-27	1	1
-543	1	1
-47	4	28
-5476	10	10
-531	1	1
-37	1	1
-776	1	1
-44	2	2
-115	22	20
-181	1	1
-125	3	3
-466	1	1
-76	1	1
-144	5	5
-32	1	1
-225	1	1
-41	1	1
-707	24	24
-66	4	4
-414	1	1
-42	1	1
-81	1	1
-63	1	1
-76	28	46
-187	1	1
-97	1	1
-99	9	9
-85	14	14
-81	6	6
-62	1	1
-109	4	5
-150	1	0
-44	4	4
-93	11	11
-188	3	3
-73	1	1
-52	1	1
-19	13	0
-48	1	1
-62	0	7
-205	1	1
-68	9	9
-99	4	0
-21	1	0
-52	1	1
-171	1	1
-109	3	1
-6	0	2
-190	1	1
-69	10078	10069
-90	3	1
-197	1	1
-157	0	6
-137	1	1
-101	2	2
-233	6	6
-62	1	1
-104	0	1
-143	1	1
-119	1	1
-106	2	0
-176	1	1
-79	0	1
-50	1	1
-50	3	3
-179	1	1
-159	1	1
-36	1	1
-107	1	1
-176	1	1
-154	0	5
-91	1	1
-54	1	1
-77	1	1
-238	2	2
-50	1	1
-1421	1	1
-23	1	1
-216	1	1
-122	1	1
-86	1	1
-41	3	1
-336	7	7
-41	9	0
-107	1	1
-90	1	3
-6	1	0
-84	1	1
-213	1	1
-26	1	1
-138	1	1
-25	1	1
-206	1	1
-36	3	3
-37	7	0
-500	1	1
-52	1	1
-52	1	1
-48	1	1
-395	1	1
-66	6	6
-72	1	0
-69	1	1
-100	10	10
-160	1	0
-64	7	7
-89	1	1
-123	1	1
-128	1	1
-36	1	1
-231	1	1
-61	1	1
-564	8	8
-593	47	47
-163	1	0
-196	8	8
-174	5	5
-37	1	1
-67	0	1
-192	1	1
-60	3	0
-19	1	1
-1149	1	1
-18	1	1
-77	1	1
-32	2	0
-32	1	1
-136	1	1
-78	2	0
-162	4	0
-41	1	1
-351	13	13
-1634	2	0
-229	8	8
-57	13	2
-410	1	1
-76	1	1
-180	1	1
-92	1	1
-270	1	1
-40	1	1
-92	1	1
-53	1	1
-227	1	1
-42	1	1
-357	4	4
-23	1	1
-94	1	0
-200	6	0
-201	7	7
-70	5	13
-57	4	0
-35	1	1
-206	1	1
-76	2	2
-651	1	1
-68	4	0
-73	1	1
-49	4	0
-37	1	1
-145	2	2
-78	2	2
-108	12	12
-52	1	1
-35	1	1
-242	1	3
-76	2	2
-50	12	12
-70	1	1
-33	0	2
-57	1	1
-64	15	15
-168	1	1
-22	1	1
-63	36	37
-73	0	2
-64	1	1
-177	2	0
-19	4	0
-55	1	0
-33	1	1
-51	1	1
-122	1	1
-296	1	1
-85	1	1
-109	1	1
-64	1	1
-155	1	1
-58	0	2
-72	1	1
-25	1	1
-128	1	1
-45	2	0
-444	1	1
-25	1	1
-64	1	1
-21	1	1
-368	15	15
-734	2	0
-701	15	15
-71	1	1
-41	1	1
-77	1	1
-56	1	1
-478	2	0
-714	8	7
-95	2	2
-50	4	3
-1129	1	1
-34	1	1
-1715	1	1
-87	1	1
-692	1	1
-47	0	1
-75	1	1
-541	12	12
-1602	10	10
-1265	1	1
-46	1	1
-298	1	1
-22	1	1
-186	1	1
-34	1	1
-202	1	1
-61	1	0
-185	1	1
-24	1	0
-98	0	2
-258	8	14
-967	1	1
-15	1	1
-625	1	0
-1362	0	4
-23365	4	0
-246	26975	26986
-3307	0	1
-13671	3	3
-52	1	1
-1308	2	0
-942	0	1
-17790	1	0
-4586	0	1
-949	0	2
-15047	0	1
-606	2	0
-7820	0	4
-22313	16	0
-10539	8	0
-4836	0	1
-8320	18	18
-388	2	0
-194	1	1
-49	1	1
-320	1	1
-34	1	1
-6813	0	1
-8719	3	0
-7037	1	0
-721	0	1
-999	6	0
-17	1	0
-3075	5	0
-593	13	11
-1006	12	12
-3487	1	0
-9535	0	4
-23	0	2
-23	2	0
-513	0	3
-377	1	0
-2627	0	2
-16	0	1
-211	18	18
-571	2	0
-7617	0	1
-1607	1	0
-69	1	1
-66	1	1
-275	1	1
-67	7	0
-25	1	1
-1206	1	0
-136	8	7
-612	1	1
-61	1	1
-740	0	2
-78	26	26
-129	15	15
-69	12	16
-1483	13	28
-1062	1	0
-108	4	0
-685	0	2
-1566	1	0
-192	4	4
-1452	9	45
-1514	1	1
-46	1	1
-1969	0	1
-35	1	1
-1094	1	0
-618	1	1
-43	1	1
-6580	1	0
-1636	5	0
-6325	1	1
-32	1	1
-1041	0	2
-174	9	0
-11983	18	18
-142	8	8
-2203	10	8
-2025	1	1
-39	1	1
-907	4	4
-225	1	1
-124	1	1
-3928	0	22
-38	2	0
-44	18	0
-46	0	6
-61	0	1
-3653	6	0
-34	1	1
-4559	1	1
-28	1	1
-283	5	5
-1572	28	28
-351	1	1
-34	1	1
-443	19	19
-57	1	1
-21	1	1
-231	1	1
-94	1	1
-105	1	1
-208	5	5
-124	1	1
-112	3	3
-207	1	1
-38	1	1
-244	1	1
-60	1	1
-98	1	1
-50	1	1
-256	5	5
-23	1	1
-157	1	1
-33	1	1
-143	1	1
-59	1	1
-51	1	1
-45	1	0
-73	1	1
-81	1	1
-339	1	1
-56	0	5
-142	1	1
-232	1	1
-43	1	1
-332	1	1
-47	1	1
-479	1	0
-137	0	3
-1456	10	13
-63	1	1
-37	1	1
-261	0	2
-109	1	1
-50	1	1
-56	129	1
-88	1	0
-44	1	1
-54	1	1
-56	1	50
-58	50	1
-54	277	1
-44	1	1
-297	0	39
-142	1	1
-85	1	1
-124	16	16
-58	3	15
-677	1	0
-1333	2	0
-13591	6	0
-989	1	1
-107	1	1
-678	1	1
-31	1	1
-2571	5	5
-56	2	2
-39	1	1
-3986	0	4
-18351	32	30
-10811	1	1
-25	0	1
-417	1	1
-40	1	1
-159	4	4
-37	4	4
-179	1	1
-51	1	1
-103	2	0
-108	1	1
-79	1	1
-25	1	1
-58	1	1
-12	1	1
-275	14	0
-80	1	1
-83	1	1
-24	1	1
-59	1	0
-91	1	1
-65	1	1
-67	1	1
-136	4	0
-68	8	0
-331	5	0
-40	1	1
-110	10	6
-64	1	1
-368	1	1
-22	1	1
-509	1	1
-89	1	1
-926	1	0
-959	1	1
-44	1	1
-72	11	0
-47	1	1
-361	1	1
-37	1	1
-2204	2	2
-45	1	1
-1117	18	18
-141	1	1
-47	1	1
-148	1	1
-75	1	1
-104	1	0
-205	3	2
-249	1	1
-146	1	1
-94	1	1
-34	1	1
-700	0	331
-21	1	1
-73	1	1
-49	1	1
-356	1	1
-16	1	1
-112	1	1
-36	9	0
-515	1	1
-27	2	2
-192	1	1
-53	0	14
-82	1	1
-302	1	1
-68	1	1
-52	12	12
-52	1	1
-34	1	1
-166	7	7
-384	1	1
-31	1	1
-281	1	1
-57	1	1
-176	0	1
-1625	1	1
-26	1	1
-369	1	1
-21	1	1
-86	1	1
-134	1	1
-215	1	1
-214	15	1
-50	2	2
-26	1	1
-78	0	19
-64	1	1
-118	53	53
-433	1	1
-76	0	1
-6	12	0
-52	1	1
-108	1	1
-87	1	1
-62	1	1
-26	1	1
-291	2	1
-143	1	1
-29	1	1
-56	12	12
-230	1	1
-153	4	4
-87	32	32
-584	12	12
-227	1	0
-1931	4	0
-836	1	1
-68	1	1
-205	24	19
-816	1	2
-1932	0	7
-1732	13	0
-257	4	0
-1423	1	0
-129	6	0
-1505	1	1
-42	0	1
-373	13	13
-565	1	1
-76	1	0
-1881	0	4
-68	4	0
-43	0	4
-2201	8	8
-3726	3	0
-339	15	11
-249	1	1
-35	1	1
-250	1	1
-38	1	1
-359	11	12
-109	1	1
-43	18	0
-822	1	1
-53	1	1
-325	15	15
-123	1	1
-42	6	6
-240	1	1
-44	1	1
-438	7	7
-142	2	0
-1004	0	1
-9275	1	1
-37	1	0
-2071	0	1
-1253	9	9
-9137	0	1
-12513	2	1
-11243	1	1
-26	1	1
-816	4	0
-15996	2	0
-1594	1	0
-363	5	0
-6757	47	41
-2700	1	0
-841	0	1
-1807	0	2
-2565	11	0
-2089	0	2
-477	1	0
-657	0	1
-776	0	20
-365	82	49
-779	0	1
-401	25	63
-441	0	2
-1152	0	2
-1315	1	0
-5352	6	8
-902	0	1
-2154	1	1
-36	1	1
-109	0	1
-668	6	0
-1923	0	1
-91	3	2
-3560	1	0
-1235	1	0
-139	26	0
-7381	1	0
-155	0	14
-2393	1	1
-33	1	1
-507	4	0
-1337	0	1
-9954	3	0
-1588	1	0
-2605	1	1
-23	1	1
-3000	0	3
-8249	8	0
-912	0	1
-338	2	0
-734	1	0
-4332	1	0
-416	0	4
-1691	0	1
-295	1	0
-214	2	0
-121	0	1
-784	0	1
-2512	0	1
-4465	12	11
-926	1	0
-190	1	0
-5780	0	1
-490	5	0
-228	1	1
-45	1	1
-207	3	0
-322	0	1
-633	1	1
-24	1	0
-1516	5	0
-1025	0	13
-1518	0	1
-591	10	10
-1061	1	0
-1371	1	1
-22	1	1
-928	0	2
-182	8	0
-328	1	0
-301	0	1
-994	1	1
-18	0	6
-1743	0	1
-2350	22	23
-1548	0	2
-1498	8	6
-7484	0	3
-2988	7	7
-93	2	0
-322	1	0
-280	1	1
-49	1	1
-2114	16	17
-617	0	1
-1012	0	1
-495	1	0
-29	1	1
-3134	1	0
-1837	0	4
-4079	0	1
-905	8	0
-5764	0	1
-3493	0	20
-1174	0	1
-900	0	1
-1006	1	0
-1699	0	1
-1682	1	0
-688	1	1
-21	1	1
-3349	0	1
-384	3	1
-3616	3	0
-748	0	1
-3001	0	10
-541	1	0
-286	1	1
-22	0	1
-250	1	1
-27	1	1
-898	1	0
-1161	0	2
-2067	0	1
-8000	0	12
-857	29	0
-1399
-
-chain 72788 chr6_qbl_hap2 4565931 + 3808375 3809175 chr11 135006516 + 118201008 118201901 1739030
-615	13	107
-119	2	1
-51
-
-chain 65509 chr6_qbl_hap2 4565931 + 2258974 2259668 chr6 171115067 - 140105134 140105832 1929446
-178	0	4
-516
-
-chain 50097 chr6_qbl_hap2 4565931 + 2471491 2473781 chr6 171115067 + 44553942 44556234 2550079
-125	147	147
-81	297	298
-77	380	378
-160	345	343
-82	181	182
-60	299	303
-56
-
-chain 30865 chr6_qbl_hap2 4565931 + 3800272 3800791 chr6 171115067 + 32713281 32713770 4500604
-73	89	59
-184	77	77
-96
-
-chain 26769 chr6_qbl_hap2 4565931 + 2218659 2218944 chr1 249250621 - 83463584 83463869 6084938
-285
-
-chain 25453 chr6_qbl_hap2 4565931 + 1111775 1112573 chr8 146364022 + 94982474 94983353 6804147
-181	108	108
-72	385	466
-52
-
-chain 18586 chr6_qbl_hap2 4565931 + 2472758 2473366 chr3 198022430 - 151831455 151832050 2830221
-34	221	221
-81	91	91
-5	35	35
-55	44	31
-42
-
-chain 18520 chr6_qbl_hap2 4565931 + 2558133 2558568 chr13 115169878 - 5075411 5075846 11677159
-71	220	220
-144
-
-chain 17263 chr6_qbl_hap2 4565931 + 3694162 3694369 chr4 191154276 + 3927369 3927573 12785974
-50	3	0
-26	4	4
-124
-
-chain 16745 chr6_qbl_hap2 4565931 + 2589692 2589893 chr11 135006516 + 74748600 74748801 13289219
-113	12	12
-76
-
-chain 15761 chr6_qbl_hap2 4565931 + 3069257 3069435 chr19 59128983 - 18504215 18504393 607285
-59	1	1
-45	1	1
-72
-
-chain 15688 chr6_qbl_hap2 4565931 + 3804298 3804527 chr11 135006516 - 109492289 109492518 14350697
-129	50	50
-50
-
-chain 14458 chr6_qbl_hap2 4565931 + 3751685 3752808 chr6 171115067 + 32441118 32442245 15662572
-59	270	268
-88	656	662
-50
-
-chain 14065 chr6_qbl_hap2 4565931 + 3705931 3706083 chr6 171115067 - 138602057 138602209 16122341
-152
-
-chain 13955 chr6_qbl_hap2 4565931 + 2589304 2589471 chr9 141213431 - 10269188 10269355 16251226
-93	11	11
-63
-
-chain 13115 chr6_qbl_hap2 4565931 + 937718 937855 chr7 159138663 + 102343613 102343750 17340123
-137
-
-chain 12452 chr6_qbl_hap2 4565931 + 4213437 4214179 chr12 133851895 + 124586233 124586652 1913233
-57	408	105
-14	32	63
-45	0	78
-44	129	0
-13
-
-chain 12361 chr6_qbl_hap2 4565931 + 1150685 1150815 chr1 249250621 + 48985442 48985572 18455294
-130
-
-chain 12272 chr6_qbl_hap2 4565931 + 2479004 2479160 chrX 155270560 + 155194421 155194569 18587559
-71	1	1
-25	8	0
-51
-
-chain 12201 chr6_qbl_hap2 4565931 + 1105096 1105867 chr6 171115067 - 139876162 139876935 18699321
-54	620	622
-97
-
-chain 12178 chr6_qbl_hap2 4565931 + 3776349 3776515 chr14 107349540 - 58393926 58394091 18734379
-55	26	25
-85
-
-chain 12008 chr6_qbl_hap2 4565931 + 3700751 3700880 chr8 146364022 + 49154427 49154556 18990653
-129
-
-chain 11752 chr6_qbl_hap2 4565931 + 3745259 3747655 chr6 171115067 + 32491461 32493852 19428924
-56	676	682
-61	1516	1505
-87
-
-chain 11746 chr6_qbl_hap2 4565931 + 1097944 1098092 chr7 159138663 - 7702899 7703047 19437479
-54	14	14
-80
-
-chain 11503 chr6_qbl_hap2 4565931 + 3698827 3699253 chr11 135006516 - 111045874 111046295 19852910
-57	287	282
-82
-
-chain 10738 chr6_qbl_hap2 4565931 + 3700459 3700580 chr10 135534747 + 59600699 59600817 21255899
-61	3	0
-57
-
-chain 10686 chr6_qbl_hap2 4565931 + 2478152 2478673 chr18 78077248 + 11342173 11342695 21355061
-80	388	389
-53
-
-chain 10496 chr6_qbl_hap2 4565931 + 3696510 3696620 chr1 249250621 - 174039531 174039641 21744609
-110
-
-chain 10342 chr6_qbl_hap2 4565931 + 3714159 3714889 chr6 171115067 + 32548581 32549235 22073729
-78	598	522
-54
-
-chain 9560 chr6_qbl_hap2 4565931 + 1152614 1152715 chr6 171115067 - 141323187 141323288 23857063
-101
-
-chain 9560 chr6_qbl_hap2 4565931 + 1099695 1099796 chr6 171115067 - 141323187 141323288 23857064
-101
-
-chain 9385 chr6_qbl_hap2 4565931 + 3825573 3825778 chr16 90354753 - 20685009 20685189 24272037
-58	92	67
-55
-
-chain 9214 chr6_qbl_hap2 4565931 + 1102327 1102424 chr6 171115067 + 29758158 29758255 24607529
-97
-
-chain 9048 chr6_qbl_hap2 4565931 + 3694493 3695083 chr16 90354753 - 14504923 14505798 16016601
-79	460	745
-51
-
-chain 8993 chr6_qbl_hap2 4565931 + 2558568 2558745 chr2 243199373 + 116390976 116391155 17783325
-1	102	104
-74
-
-chain 8702 chr6_qbl_hap2 4565931 + 3686082 3686238 chr6 171115067 + 32439449 32439606 25393693
-54	51	52
-51
-
-chain 8427 chr6_qbl_hap2 4565931 + 3804527 3804616 chr6 171115067 - 148948316 148948405 15963296
-89
-
-chain 7704 chr6_qbl_hap2 4565931 + 3688237 3688318 chr6 171115067 + 32557831 32557912 26927503
-81
-
-chain 6794 chr6_qbl_hap2 4565931 + 3775350 3775421 chr3 198022430 - 94748615 94748686 28659148
-71
-
-chain 6473 chr6_qbl_hap2 4565931 + 3694610 3694683 chr1 249250621 - 102907635 102907704 21815174
-11	4	0
-58
-
-chain 6457 chr6_qbl_hap2 4565931 + 1158502 1158569 chr6 171115067 + 30228837 30228904 29438118
-67
-
-chain 6422 chr6_qbl_hap2 4565931 + 3817908 3817976 chr6 171115067 + 32728707 32728775 29535243
-68
-
-chain 6368 chr6_qbl_hap2 4565931 + 2478912 2479004 chr6 171115067 - 132617434 132617532 20998654
-55	29	35
-8
-
-chain 5830 chr6_qbl_hap2 4565931 + 1098157 1098218 chr7 159138663 - 104622057 104622118 31091038
-61
-
-chain 5757 chr6_qbl_hap2 4565931 + 3825218 3825278 chr14 107349540 - 70017731 70017791 31292281
-60
-
-chain 5558 chr6_qbl_hap2 4565931 + 2472407 2472466 chr15 102531392 + 37673660 37673719 31870719
-59
-
-chain 5479 chr6_qbl_hap2 4565931 + 1111956 1112025 chr9 141213431 - 103321949 103322018 11235972
-69
-
-chain 5339 chr6_qbl_hap2 4565931 + 3885926 3885982 chrX 155270560 + 55718242 55718298 32499987
-56
-
-chain 5185 chr6_qbl_hap2 4565931 + 3788909 3788964 chr14 107349540 + 22827226 22827281 32987373
-55
-
-chain 5179 chr6_qbl_hap2 4565931 + 1150896 1150960 chr19 59128983 - 37357346 37357410 20742827
-53	10	10
-1
-
-chain 5176 chr6_qbl_hap2 4565931 + 1100596 1100651 chr14 107349540 + 79349485 79349540 33029769
-55
-
-chain 5058 chr6_qbl_hap2 4565931 + 3771065 3771119 chr1 249250621 - 172942963 172943017 33379587
-54
-
-chain 5039 chr6_qbl_hap2 4565931 + 2475495 2475548 chr7 159138663 - 94193358 94193411 33438564
-53
-
-chain 5038 chr6_qbl_hap2 4565931 + 1148806 1148858 chr6 171115067 + 29856463 29856515 33456716
-52
-
-chain 4959 chr6_qbl_hap2 4565931 + 3696457 3696510 chr18 78077248 + 5090594 5090647 22176919
-53
-
-chain 4949 chr6_qbl_hap2 4565931 + 3825516 3825569 chrX 155270560 - 91231208 91231261 33742123
-53
-
-chain 4829 chr6_qbl_hap2 4565931 + 1159026 1159076 chr6 171115067 + 30459319 30459369 34177698
-50
-
-chain 4685 chr6_qbl_hap2 4565931 + 3719592 3719642 chr12 133851895 + 112261417 112261467 34690970
-50
-
-chain 4391 chr6_qbl_hap2 4565931 + 4214058 4214103 chrX 155270560 - 99494613 99494658 30227326
-45
-
-chain 4348 chr6_qbl_hap2 4565931 + 3739277 3739323 chr7 159138663 - 76863668 76863714 34891433
-46
-
-chain 4338 chr6_qbl_hap2 4565931 + 2201356 2201401 chr6 171115067 + 30954494 30954539 34909104
-45
-
-chain 4061 chr6_qbl_hap2 4565931 + 2201872 2201914 chr6 171115067 + 30955145 30955187 31149648
-42
-
-chain 4003 chr6_qbl_hap2 4565931 + 2470663 2474155 chr12 133851895 + 104783555 104787047 2981748
-99	961	960
-40	481	480
-76	473	472
-44	1256	1259
-62
-
-chain 3775 chr6_qbl_hap2 4565931 + 2471376 2471416 chr10 135534747 - 90944157 90944197 25967017
-40
-
-chain 3639 chr6_qbl_hap2 4565931 + 3694572 3694610 chr3 198022430 + 101411146 101411184 20382400
-38
-
-chain 3574 chr6_qbl_hap2 4565931 + 2470595 2470633 chr3 198022430 - 173409162 173409200 29596632
-38
-
-chain 3494 chr6_qbl_hap2 4565931 + 3700422 3700459 chrX 155270560 + 104134375 104134412 29536090
-37
-
-chain 3491 chr6_qbl_hap2 4565931 + 2471293 2472133 chr8 146364022 - 12751685 12752521 3617865
-79	701	697
-60
-
-chain 3436 chr6_qbl_hap2 4565931 + 2471844 2473225 chr1 249250621 + 7474211 7475590 2872741
-34	959	957
-58	295	295
-35
-
-chain 3220 chr6_qbl_hap2 4565931 + 3776529 3776563 chr12 133851895 + 85826623 85826657 35349035
-34
-
-chain 3148 chr6_qbl_hap2 4565931 + 3825631 3825664 chr2 243199373 + 38182693 38182726 24706670
-33
-
-chain 2975 chr6_qbl_hap2 4565931 + 2478232 2478268 chr3 198022430 - 94213030 94213066 24807218
-36
-
-chain 2972 chr6_qbl_hap2 4565931 + 1105868 1105908 chr6 171115067 + 30459045 30459085 20759384
-40
-
-chain 2845 chr6_qbl_hap2 4565931 + 2470633 2470663 chr3 198022430 - 156603737 156603767 26791326
-30
-
-chain 2838 chr6_qbl_hap2 4565931 + 2474990 2475020 chr4 191154276 + 92075174 92075204 21730347
-30
-
-chain 2761 chr6_qbl_hap2 4565931 + 3804625 3804685 chr4 191154276 + 37278694 37278754 22658556
-60
-
-chain 2671 chr6_qbl_hap2 4565931 + 2478852 2478911 chr9 141213431 - 60456470 60456529 21094091
-59
-
-chain 2604 chr6_qbl_hap2 4565931 + 1151032 1151059 chr17 81195210 + 6784720 6784747 30920849
-27
-
-chain 2579 chr6_qbl_hap2 4565931 + 3700720 3700751 chr21 48129895 + 18677639 18677670 26190064
-31
-
-chain 2574 chr6_qbl_hap2 4565931 + 1150960 1151032 chrX 155270560 + 72544773 72544845 18935818
-72
-
-chain 2481 chr6_qbl_hap2 4565931 + 3804442 3804477 chr3 198022430 - 58737971 58738006 17138123
-35
-
-chain 2394 chr6_qbl_hap2 4565931 + 2478673 2478698 chr11 135006516 - 67345781 67345806 29321362
-25
-
-chain 2363 chr6_qbl_hap2 4565931 + 2473435 2473485 chr3 198022430 - 59783725 59783775 3613581
-50
-
-chain 2322 chr6_qbl_hap2 4565931 + 2470859 2470989 chr15 102531392 - 72822940 72823070 3150079
-130
-
-chain 2266 chr6_qbl_hap2 4565931 + 2470989 2471957 chr9 141213431 - 114376815 114377769 4168715
-45	845	831
-78
-
-chain 2263 chr6_qbl_hap2 4565931 + 2471123 2471268 chr12 133851895 + 84401354 84401499 4041581
-145
-
-chain 2209 chr6_qbl_hap2 4565931 + 2470765 2470818 chr3 198022430 + 182918728 182918781 9563966
-53
-
-chain 2087 chr6_qbl_hap2 4565931 + 2558317 2558369 chrX 155270560 - 89201309 89201361 22578016
-52
-
-chain 2078 chr6_qbl_hap2 4565931 + 1112026 1112064 chr3 198022430 + 120909358 120909396 13027265
-38
-
-chain 2035 chr6_qbl_hap2 4565931 + 2557888 2557938 chr16 90354753 + 47212776 47212826 17692575
-50
-
-chain 1978 chr6_qbl_hap2 4565931 + 4213820 4213948 chr15 102531392 - 61555806 61555934 2051418
-28	68	68
-32
-
-chain 1899 chr6_qbl_hap2 4565931 + 2558399 2558424 chrX 155270560 + 94068150 94068175 17734181
-25
-
-chain 1860 chr6_qbl_hap2 4565931 + 1112180 1112230 chr8 146364022 + 68079613 68079663 13479327
-50
-
-chain 1860 chr6_qbl_hap2 4565931 + 3812269 3815784 chr6 171115067 + 32722816 32726965 29521084
-61	2506	2690
-85	515	965
-52	103	103
-193
-
-chain 1828 chr6_qbl_hap2 4565931 + 2473656 2473684 chr14 107349540 - 54723100 54723128 20222699
-28
-
-chain 1658 chr6_qbl_hap2 4565931 + 1112136 1112169 chr4 191154276 + 153686345 153686378 11053932
-33
-
-chain 1514 chr6_qbl_hap2 4565931 + 1112233 1112291 chr13 115169878 - 5205835 5205893 10260311
-58
-
-chain 1396 chr6_qbl_hap2 4565931 + 2473606 2473656 chr1 249250621 + 83820278 83820328 4577579
-50
-
-chain 1388 chr6_qbl_hap2 4565931 + 4214123 4214166 chr19 59128983 - 43654778 43654821 2801865
-43
-
-chain 1329 chr6_qbl_hap2 4565931 + 2557727 2557778 chr7 159138663 - 55106997 55107048 20610784
-51
-
-chain 1304 chr6_qbl_hap2 4565931 + 4213365 4213389 chr1 249250621 + 182710286 182710310 2078906
-24
-
-chain 1296 chr6_qbl_hap2 4565931 + 4213389 4213424 chr8 146364022 + 99694 99728 9829550
-12	1	0
-22
-
-chain 1233 chr6_qbl_hap2 4565931 + 2558102 2558133 chr5 180915260 + 67992831 67992862 12309329
-31
-
-chain 1171 chr6_qbl_hap2 4565931 + 2473569 2473606 chrX 155270560 - 90928252 90928289 23413190
-37
-
-chain 1170 chr6_qbl_hap2 4565931 + 2471983 2472043 chr9 141213431 + 232427 232487 4190853
-60
-
-chain 1144 chr6_qbl_hap2 4565931 + 2469449 2469508 chr2 243199373 + 81796678 81796737 21594602
-59
-
-chain 1125 chr6_qbl_hap2 4565931 + 3694759 3694827 chr8 146364022 - 86779351 86779419 20749390
-68
-
-chain 1106 chr6_qbl_hap2 4565931 + 1112362 1112413 chr1 249250621 - 17660691 17660742 13643228
-51
-
-chain 1071 chr6_qbl_hap2 4565931 + 2470508 2470575 chr12 133851895 + 78891507 78891574 9444392
-67
-
-chain 1040 chr6_qbl_hap2 4565931 + 2470400 2470457 chr5 180915260 - 146134722 146134779 6672758
-57
-
-chain 1023 chr6_qbl_hap2 4565931 + 2471416 2471471 chr2 243199373 + 162554783 162554838 24613681
-55
-
-chain 935 chr6_qbl_hap2 4565931 + 2558067 2558102 chr4 191154276 + 31205 31240 16972854
-35
-
-chain 919 chr6_qbl_hap2 4565931 + 2474702 2474762 chr4 191154276 + 45112377 45112437 22402157
-60
-
-chain 902 chr6_qbl_hap2 4565931 + 2474552 2474612 chr5 180915260 - 23766246 23766306 4704228
-60
-
-chain 884 chr6_qbl_hap2 4565931 + 2473696 2473725 chr1 249250621 - 199045131 199045160 12500824
-29
-
-chain 825 chr6_qbl_hap2 4565931 + 1112413 1112452 chr1 249250621 - 184583816 184583855 16072417
-39
-
-chain 801 chr6_qbl_hap2 4565931 + 2470111 2470156 chr1 249250621 - 71436588 71436633 19248116
-45
-
-chain 789 chr6_qbl_hap2 4565931 + 3698600 3699777 chr19 59128983 + 8446620 8447803 26630175
-58	1059	1065
-60
-
-chain 788 chr6_qbl_hap2 4565931 + 2470239 2470322 chr6 171115067 + 137168270 137168353 4512040
-83
-
-chain 740 chr6_qbl_hap2 4565931 + 1112667 1112731 chr12 133851895 + 57178267 57178331 20850792
-64
-
-chain 718 chr6_qbl_hap2 4565931 + 2474782 2474837 chr9 141213431 - 49469911 49469966 23568604
-55
-
-chain 694 chr6_qbl_hap2 4565931 + 2469923 2469992 chrX 155270560 - 140437581 140437650 5405913
-69
-
-chain 584 chr6_qbl_hap2 4565931 + 2474349 2474405 chr15 102531392 + 67105223 67105279 15249534
-56
-
-chain 562 chr6_qbl_hap2 4565931 + 2557778 2557819 chrX 155270560 + 91975692 91975733 21019876
-41
-
-chain 562 chr6_qbl_hap2 4565931 + 2469824 2469884 chr2 243199373 - 169790362 169790422 25410177
-60
-
-chain 552 chr6_qbl_hap2 4565931 + 2237356 2237383 chr17 81195210 - 14890828 14890855 11066346
-27
-
-chain 523 chr6_qbl_hap2 4565931 + 2470057 2470111 chr13 115169878 + 42049099 42049153 16964924
-54
-
-chain 489 chr6_qbl_hap2 4565931 + 2469992 2470048 chr14 107349540 + 79003493 79003549 5260265
-56
-
-chain 481 chr6_qbl_hap2 4565931 + 2470189 2470239 chr8 146364022 + 50441810 50441860 5267091
-50
-
-chain 481 chr6_qbl_hap2 4565931 + 2469386 2469447 chr1 249250621 - 193322918 193322979 8728434
-61
-
-chain 455 chr6_qbl_hap2 4565931 + 2472488 2472547 chr6 171115067 - 85200236 85200295 17778688
-59
-
-chain 445 chr6_qbl_hap2 4565931 + 2469210 2469265 chrX 155270560 - 127487766 127487821 16318369
-55
-
-chain 358 chr6_qbl_hap2 4565931 + 2475020 2475084 chr4 191154276 + 74158363 74158427 16300933
-64
-
-chain 347 chr6_qbl_hap2 4565931 + 2469153 2469203 chr15 102531392 - 65978487 65978537 12839283
-50
-
-chain 246 chr6_qbl_hap2 4565931 + 3697415 3697467 chr12 133851895 - 104314075 104314127 28162397
-52
-
-chain 47340388 chr6_random 1875562 + 1357431 1875562 chr6 171115067 + 157393490 158069469 78
-906	2	2
-193	1	0
-29	1	0
-8	10	8
-11	2	1
-842	41	40
-754	2304	72101
-91082	5628	50000
-31833	338	50000
-42477	272	0
-39	168	66
-53	1	1
-15	1	103
-64	2	172
-23	1	103
-14474	4	0
-30198	0	8
-1391	2	0
-1319	4	0
-142	0	3
-3412	9	7
-372	1	1
-22	1	1
-5871	0	1
-237	26	25
-3020	1	1
-83	1	1
-141	7	7
-201	2	1
-403	1	0
-3638	1	0
-20	1	0
-552	32	32
-1386	0	1
-4174	1	1
-37	1	1
-3912	5	5
-4160	2	0
-6561	0	1
-3879	0	1
-8665	0	1
-2170	0	3
-895	1	0
-1812	0	1
-36	0	4
-133	1	0
-165	0	9
-427	0	1
-917	1	0
-3166	0	1
-16647	1	0
-6161	10	10
-833	4	0
-1934	1	1
-56	1	1
-2622	9	9
-749	1	0
-482	0	2
-344	1	1
-32	1	1
-868	2	0
-444	0	3
-1096	12	0
-709	0	1
-113	1	1
-35	1	1
-2349	20	0
-175	0	1
-1675	0	2
-1206	0	3
-345	0	5
-4695	1	0
-6715	1	1
-35	1	1
-2131	0	1
-4220	8	0
-2065	1	0
-1986	0	1
-484	0	1
-1543	4	4
-52	22	0
-5090	0	1
-2768	9	2
-12577	0	5
-13727	9	9
-51	4	4
-26	2	3
-11	0	1
-735	1	1
-35	0	1
-12	1	1
-2616	1	0
-327	1	1
-35	1	1
-345	0	20
-50	98	187
-975	1	0
-7329	0	1
-3241	0	35
-583	5	5
-278	1	1
-40	1	1
-123	12	12
-1208	17	0
-477	0	1
-163	1	1
-28	1	1
-3307	1	0
-66	1	1
-25	4	0
-2459	0	1
-1326	1	0
-700	1	0
-2316	6067	13
-725	3	0
-42	1	1
-8162	0	2
-2147	0	2
-79	1	1
-25	1	1
-313	1	0
-2194	1	0
-709	1	1
-33	1	1
-934	4	4
-543	1	1
-37	1	1
-2581	1	0
-606	1	0
-666	1	1
-34	2	2
-250	9	8
-652	1	0
-2306	22	0
-38	0	24
-946	1	0
-3766	1	1
-57	1	1
-3591	2	0
-128	1	1
-1414	7	1
-435	1	1
-29	1	0
-529	0	1
-3649	1	1
-32	0	1
-9760	0	18
-6470	1	1
-49	1	1
-488	0	1
-304	2	0
-1780	0	5
-2759	1	0
-48	1	1
-380	1	1
-33	1	1
-5102	1	1
-33	1	1
-192	0	1
-1103	1	1
-29	1	1
-12912	0	1
-9445	2	0
-2949	1	1
-28	1	1
-826	1	1
-19	1	1
-404	1	1
-49	1	1
-1408	8	0
-1625	10	0
-2962	0	1
-1824
-
-chain 37689909 chr6_random 1875562 + 884671 1286589 chr5 180915260 - 167715260 168127349 92
-6889	0	1
-34829	1	0
-4156	0	2
-4477	0	8
-7827	0	415
-37	9	9
-207	0	1
-272	7	7
-7925	1	0
-75982	0	1
-11336	0	1
-4233	14	14
-362	10	10
-4607	4	0
-1310	0	3
-1741	4	0
-499	1	1
-69	1	1
-509	15	15
-166	12	8
-145	0	2
-66	1	1
-16	1	1
-325	1	1
-31	1	1
-804	1	1
-109	1	1
-1071	0	106
-73	38	121
-1998	1	1
-37	1	1
-500	0	5
-625	3	0
-2354	1	1
-42	1	1
-1652	0	1
-92	1	1
-68	1	1
-1023	1	1
-16	1	1
-849	2	1
-28	1	1
-1793	4	2
-850	26	26
-251	0	2
-794	1	1
-26	1	1
-798	1	1
-80	1	1
-211	20	12
-153	1	3
-373	6	6
-231	0	4
-302	1	1
-26	1	1
-305	0	4
-3735	1	0
-342	0	2
-2211	0	1
-1969	2	0
-2834	0	10
-1054	0	14
-2176	0	2
-10517	0	2
-3071	6	0
-5697	21	21
-2458	0	5
-1335	3	0
-411	1	5
-2718	10	11
-3652	1	0
-785	1	0
-777	1	0
-2088	0	1
-24	1	1
-1005	16	16
-5426	18	0
-378	1	0
-19	1	1
-5303	0	14
-19	18	0
-2125	1	0
-936	0	5
-29	1	1
-893	19	19
-312	0	2
-32151	1	0
-14548	1	0
-109	0	1
-1481	1	0
-6537	0	2
-3390	1	0
-7479	6	0
-29963	4	0
-3972	9	5
-1637	0	9
-7977	1	0
-1973	0	3
-1212	0	5
-372	29	19
-1216	0	50
-628	0	4
-8388	0	1
-1429	1	0
-3029	2	4
-785	1	0
-291	10	9516
-1642	0	1
-5042	1	0
-1117	1	0
-1558	8	7
-1475	4	0
-1859	0	1
-9528	0	1
-877
-
-chain 31999718 chr6_random 1875562 + 165017 507468 chr6 171115067 - 55532370 55875067 101
-42954	0	1
-24905	1	0
-579	0	6
-612	0	1
-1128	0	2
-5541	1	1
-30	1	1
-2064	1	0
-505	0	1
-1974	0	1
-5299	1	1
-16	1	1
-368	1	1
-28	1	1
-7024	1	0
-19574	8	9
-6646	4	0
-6060	0	1
-2290	0	1
-22638	6	58
-1402	0	1
-502	0	1
-218	0	1
-5768	0	1
-178	0	3
-659	1	1
-33	0	8
-92	4	0
-693	0	2
-1190	0	3
-375	5	0
-422	3	0
-2215	1	0
-7271	1	1
-33	1	1
-817	1	1
-67	1	1
-2442	1	1
-62	16	0
-165	1	0
-1535	1	1
-32	1	1
-596	4	4
-627	1	1
-22	1	2
-201	5	5
-35	1	1
-232	5	0
-651	4	4
-26	1	1
-105	1	1
-45	1	1
-325	1	1
-34	1	1
-265	1	1
-91	2	0
-1383	1	1
-35	1	1
-1469	19	19
-295	0	1
-644	0	1
-3324	1	1
-44	1	1
-1797	1	5
-21	2	0
-10	11	1
-58	2	0
-61	1	9
-715	0	1
-388	1	1
-47	1	1
-774	1	0
-571	0	3
-2308	0	1
-103	15	15
-1339	1	1
-19	1	1
-348	0	1
-372	1	1
-31	0	1
-4	4	0
-14	1	5
-14	1	25
-4634	1	1
-16	2	2
-305	27	24
-2252	10	217
-1695	0	2
-2541	0	7
-741	2	0
-1401	0	2
-202	2	13
-3853	1	0
-3037	36	0
-18	2	0
-25	94	0
-14	0	4
-487	0	1
-5889	0	1
-572	1	1
-17	1	1
-806	1	1
-24	1	1
-723	0	2
-1640	1	0
-2023	1	1
-21	1	1
-192	15	1
-994	0	106
-1362	2	0
-324	1	1
-19	1	1
-683	1	1
-39	1	0
-771	1	0
-1211	13	0
-1728	1	1
-23	1	1
-911	0	2
-1042	6	6
-206	5	0
-17	1	1
-3351	14	19
-783	1	1
-48	1	1
-673	0	4
-137	1	1
-23	1	0
-1357	4	0
-254	0	1
-1408	0	7
-564	1	1
-49	1	1
-319	13	13
-721	12	12
-821	2	0
-912	4	4
-47	1	1
-148	1	1
-61	1	1
-267	1	1
-46	1	1
-421	1	1
-36	1	1
-577	1	1
-35	1	1
-122	1	1
-95	1	1
-241	1	1
-40	1	1
-585	10	1
-1286	0	1
-97	2	0
-22	1	1
-969	0	1
-1448	14	20
-2000	1	0
-1448	0	1
-2390	1	1
-18	5	5
-1421	1	0
-412	0	1
-1867	2	1
-179	3	0
-852	1	0
-1426	20	18
-151	1	1
-26	1	1
-581	1	1
-86	2	1
-2659	1	0
-12163	2	0
-1149	13	13
-818	16	16
-113	1	1
-51	1	1
-343	1	1
-91	0	4
-7	2	0
-8	0	2
-914	1	1
-28	1	1
-670	1	0
-151	7	7
-1887	18	18
-119	0	5
-2395	2	0
-4395	0	6
-380	6	1
-423	17	17
-531	1	0
-23	0	6
-592	1	1
-23	1	0
-844	4	0
-1497	6	0
-407	17	17
-341	19	17
-1020	0	6
-178	1	0
-1233	0	1
-1861	0	1
-2007	2	0
-6480	1	1
-36	1	1
-6817	17	20
-3356	7	5
-1788	1	1
-83	0	1
-7678	18	18
-2095	1	1
-19	1	1
-4934
-
-chain 25195472 chr6_random 1875562 + 615192 884135 chr6 171115067 + 167833423 168297434 120
-2006	1	0
-2654	1	1
-28	1	1
-3139	1	1
-85	1	1
-690	0	1
-639	0	2
-1589	4	4
-122	2	0
-1127	0	1
-1104	1	102
-18	0	29
-40	0	3
-22	1	4
-50	0	26
-56	124	195105
-10440	18	25
-3042	0	24
-72	0	8
-206	4	0
-146	4	0
-2483	0	4
-702	0	1
-1035	0	8
-85	3	1
-2710	1	1
-84	1	1
-3774	1	1
-58	1	1
-20613	15	53
-14	32	0
-52	0	4
-1883	4	0
-52	3	0
-44036	171	0
-2224	2	2
-57	1	1
-7263	0	64
-5311	0	2
-24677	8	8
-1972	1	0
-3543	2	2
-46	1	0
-11768	1	0
-494	47	19
-36447	1	1
-67	1	1
-11347	8	0
-4230	1	3
-591	5	5
-1020	0	8
-680	1	1
-60	1	1
-4536	0	1
-1417	0	2
-2471	1	1
-22	1	1
-6781	0	5
-4943	5	0
-1067	2	0
-2588	2	0
-523	34	35
-9266	0	2
-3897	0	2
-1404	0	1
-3120	0	1
-2566	1	0
-1825	0	8
-5342
-
-chain 9830417 chr6_random 1875562 + 510011 615192 chr5 180915260 - 108917398 109022458 335
-331	57	57
-1247	1	0
-4094	15	15
-6775	12	0
-6148	1	0
-30	1	1
-251	0	1
-26	26	1
-238	1	1
-29	1	1
-148	1	1
-41	1	1
-5831	6	7
-2439	1	0
-4247	12	42
-2333	1	9
-3039	5	0
-476	2	2
-4359	0	1
-1237	11	11
-1223	12	0
-2800	2	0
-2660	0	1
-4531	1	1
-24	1	1
-7407	0	1
-395	2	0
-1841	391	0
-410	50	26
-321	1	1
-27	1	1
-226	9	9
-157	6	6
-80	1	1
-70	1	1
-5158	10	10
-1385	4	0
-991	0	2
-48	1	1
-1083	0	2
-751	0	1
-4266	1	1
-48	1	1
-1557	0	304
-1552	1	1
-21	1	1
-2652	1	0
-598	0	8
-115	15	16
-1277	1	1
-38	1	1
-898	1	1
-27	1	1
-699	0	1
-34	1	1
-279	4	0
-12	1	1
-2863	1	1
-25	1	1
-2484	12	15
-1447	1	0
-8689
-
-chain 8736931 chr6_random 1875562 + 25094 155092 chr6 171115067 - 3172994 3267843 378
-3079	5	5
-1125	2	0
-1270	7	14
-1955	1	1
-47	1	1
-4538	38	38
-1300	25	26
-67	7	8
-176	3	0
-1132	3	0
-906	103	48
-5311	0	16
-133	1	0
-94	153	987
-142	13	13
-2453	2	0
-238	2	0
-960	13	13
-4697	1	1
-26	1	1
-3575	36650	734
-4434	0	1
-5190	138	107
-33	1	1
-5998	4	0
-1660	1	0
-4740	1	1
-29	1	1
-7196	0	12
-17519	30	29
-12768
-
-chain 553807 chr6_random 1875562 + 1768811 1774813 chr4 191154276 - 111879139 111885141 10762
-1294	2	2
-109	1	1
-242	1	1
-106	1	1
-2122	1	1
-17	1	1
-200	1	1
-40	1	1
-1071	1	1
-24	1	1
-284	1	1
-77	1	1
-403
-
-chain 255982 chr6_random 1875562 + 1456339 1459136 chr6 171115067 + 157377507 157380303 364419
-1101	4	4
-21	1	0
-70	43	44
-1490	1	0
-66
-
-chain 238316 chr6_random 1875562 + 1453720 1456237 chr6 171115067 - 13762873 13765390 431401
-2517
-
-chain 190390 chr6_random 1875562 + 1355230 1357270 chr6 171115067 - 13765611 13767650 644275
-875	0	1
-30	1	0
-7	0	1
-32	2	0
-1093
-
-chain 147846 chr6_random 1875562 + 163259 164828 chr10 135534747 - 86648034 86649603 870502
-1569
-
-chain 66179 chr6_random 1875562 + 509035 509994 chr6 171115067 - 55868072 55869030 1909901
-52	241	240
-666
-
-chain 39557 chr6_random 1875562 + 507468 508471 chr14 107349540 - 76514262 76515265 2447482
-67	13	13
-252	48	48
-70	43	43
-73	340	340
-97
-
-chain 15445 chr6_random 1875562 + 574580 574743 chr6 171115067 + 168277787 168277950 14597733
-163
-
-chain 11899 chr6_random 1875562 + 508034 508258 chr7 159138663 - 61729371 61729595 2527246
-50	119	119
-55
-
-chain 6795 chr6_random 1875562 + 508264 508336 chr5 180915260 + 74550099 74550171 28643390
-72
-
-chain 5830 chr6_random 1875562 + 884328 884389 chr6 171115067 - 37135398 37135459 31091070
-61
-
-chain 5767 chr6_random 1875562 + 508601 508846 chr8 146364022 + 54253304 54253548 3655159
-50	103	102
-92
-
-chain 4821 chr6_random 1875562 + 16131 16182 chr10 135534747 - 59552661 59552712 34213212
-51
-
-chain 3598 chr6_random 1875562 + 720272 720329 chr6 171115067 + 168133749 168133806 2857460
-57
-
-chain 3185 chr6_random 1875562 + 1768774 1768810 chr2 243199373 + 130168617 130168653 16948
-36
-
-chain 2982 chr6_random 1875562 + 508896 508970 chr12 133851895 - 4327021 4327095 12758815
-74
-
-chain 2685 chr6_random 1875562 + 509240 510388 chr3 198022430 - 97729559 97730704 3388749
-33	1069	1066
-46
-
-chain 2530 chr6_random 1875562 + 720329 720365 chr6 171115067 + 168133920 168133956 3810246
-36
-
-chain 2208 chr6_random 1875562 + 720386 720422 chr6 171115067 + 168133692 168133728 3917950
-36
-
-chain 1957 chr6_random 1875562 + 507800 507848 chr1 249250621 - 36684504 36684552 2679811
-48
-
-chain 1423 chr6_random 1875562 + 508846 508894 chr2 243199373 - 143356177 143356225 7803118
-48
-
-chain 1172 chr6_random 1875562 + 508537 508601 chrX 155270560 + 123719418 123719482 4007841
-64
-
-chain 1047 chr6_random 1875562 + 509273 509328 chr20 63025520 + 3479096 3479151 2808508
-55
-
-chain 560 chr6_random 1875562 + 508669 508719 chr5 180915260 - 128392227 128392277 20287927
-50
-
-chain 14618906734 chr7 158821424 + 102995 158821424 chr7 159138663 + 10238 159128663 7
-973	5	0
-3912	0	2
-1234	4	0
-51	0	6
-70	1	1
-24	1	0
-143	8	0
-16	170	1
-47	1	1
-243	0	6
-913	3	0
-2538	980	0
-63	1610	0
-1362	0	1
-2104	0	456
-1158	0	1
-791	1	1
-49	0	1
-4175	8	0
-17	1	1
-4845	12	0
-2509	0	1
-1697	6	6
-192827	150000	278557
-5682472	0	1
-42007910	40000	35970
-4371	7	16
-17699	0	4
-5249	4	0
-2088410	1	1
-47	1	1
-4565	0	1
-7116	0	1
-2706	40000	43050
-6577293	50000	13552
-1052855	3000000	3000000
-256182	50000	416507
-190137	50000	50000
-5722629	24	25
-239	1	1
-59	2	2
-138	1	1
-34	1	1
-206	1	3
-18	1	0
-410	1	1
-72	1	1
-199	1	1
-62	5	5
-120	1	0
-468	1	1
-32	1	1
-264	1	1
-23	1	1
-1459	4	4
-107	1	1
-42	1	0
-14	1	1
-201	1	1
-46	1	1
-268	20	20
-303	2	1
-866	0	4
-76	3	3
-63	1	1
-74	1	0
-25	1	1
-66	1	1
-34	0	2
-180	35	36
-93	1	1
-41	1	1
-70	1	1
-49	1	1
-63	1	1
-57	1	1
-383	1	1
-133	1	1
-87	1	1
-38	4	4
-50	0	1
-46	5	6
-136	11	11
-200	1	1
-63	4	0
-6	9	0
-263	1	1
-32	3	3
-152	16	16
-567	1	0
-322	3	0
-1258	0	1
-505	4	0
-1141	11	10
-537	12	12
-1418	1	1
-47	0	1
-164	7	7
-90	5	0
-156	1	1
-20	1	1
-380	3	3
-41	3	0
-5	2	2
-921	1	1
-34	1	1
-1607	2	2
-73	66	0
-46	14	0
-168	1	1
-53	1	1
-3195	1	1
-23	1	1
-2115	0	14
-9872	1	0
-1204	13	13
-416	1	0
-2311	319	0
-6906	0	10
-184	24	0
-2933	4	0
-1392	0	12
-1856	5	0
-3439	0	1
-469	3	0
-771	15	12
-497	1	1
-65	1	1
-1210	0	2
-4131	10	10
-1198	1	0
-718	1	1
-21	1	1
-3668	1	0
-874	1	1
-25	1	1
-2444	0	1
-1867	1	1
-29	1	1
-1660	0	1
-1232	0	6
-784	1	0
-705	0	3
-3577	1	0
-365	1	0
-3389	8	4
-2652	0	3
-664	0	1
-169	1	0
-8	1	1
-138	0	1
-8037	0	56
-112	196	0
-495	0	35
-3028	1	1
-40	1	1
-1068	4	0
-631	0	33
-29	2	0
-86	9	1
-3081	2	0
-806	0	1
-21	1	1
-3901	26	27
-843	0	1
-6916420	250000	50000
-25789103	0	51216
-1399994	1	0
-3623	0	212
-38	1	1
-210	1	0
-5	1	0
-6	1	0
-18	1	0
-1321	16	0
-2187	1	0
-145	0	1
-1388	7	7
-2240	14	14
-771	1	1
-34	1	1
-92	1	1
-39	1	1
-505	1	0
-66	1	1
-49	1	1
-159	1	0
-78	3	0
-15	2	0
-7	1	0
-28	1	0
-27	468	5
-2022	1	0
-1796	7	7
-61	1	1
-20	1	1
-4560	3	0
-157730	1	0
-194	14	14
-650	0	12
-717	26	26
-819	0	5
-278	60	32
-69	0	5
-1345	8	0
-652	84	0
-118	0	4
-498	0	1
-3187	1	1
-43	1	1
-1476	0	3
-2101	5	0
-788	6	6
-872	0	6
-893	3	0
-155	33	33
-4610	5	7
-521	10	0
-2773	40	40
-627	43	43
-1424	0	1
-2554	8	8
-44	0	7
-615	1	1
-32	3	0
-2693	0	1
-1029	0	2
-151	0	1
-1753	0	21
-370	2	3
-969	0	1
-452	1	0
-3035	1	1
-40	1	1
-704	0	2
-2472	0	6
-238	1	0
-1442	1	1
-37	5	5
-126	0	1
-795	0	1
-1191	1	0
-171	17	16
-724	6	5
-2988	40	42
-359	2	0
-199	19	19
-1969	1	0
-251	0	1
-729	0	1
-992	27	27
-205	4	0
-3209	0	2
-1006	8	10
-1571	10	10
-756	0	1
-36	1	1
-433	0	1
-672	0	3
-4430	157	0
-5606	5	1
-17	1	1
-942	10	9
-3433	2	1
-24	1	1
-4262	13	0
-661	2	0
-167	8	0
-3474	6	11
-217	0	2
-778	34	34
-158	0	1
-1167	0	1
-684	0	1
-878	39	39
-2012	0	1
-345	52	52
-640	0	2
-27874045	0	136705
-2519	0	2
-1000	8	0
-14695	1	0
-4456	1	0
-2977	1	0
-9065130	25000	29055
-2369	1	0
-12174	18	20
-877	0	4
-5247	0	12
-3483	2	0
-6766	0	1
-2469878	0	1
-734	2	2
-99	0	1
-2471	1	1
-11	1	1
-758	8	0
-2234	13	14
-8394	1	0
-47	1	1
-903	0	1
-5537	0	1
-269	1	0
-7114	1	1
-30	1	1
-2412	0	1
-2442	21	21
-91	1	1
-37	1	1
-96	1	1
-22	1	1
-246	1	1
-23	1	1
-254	12	12
-569	1	1
-27	1	1
-1624	1	0
-112	3	3
-45	1	1
-384	13	13
-70	1	0
-658	1	1
-20	1	1
-176	1	0
-307	19	19
-428	1	1
-19	1	1
-87	1	1
-30	1	1
-140	1	0
-292	2	0
-1492	1	0
-302	0	2
-364	1	1
-35	1	1
-1956	0	1
-728	12	12
-6522	2	2
-1531	1	0
-488	1	0
-2056	18	8
-1286	1	1
-27	1	1
-731	1	0
-1423	0	7
-2010	1	1
-19	1	1
-6423	0	4
-57	1	1
-4505	13	0
-933	0	12
-1250	0	1
-1313	1	0
-2610	0	1
-2398	0	1
-453	1	0
-346	1	1
-12	1	1
-83	25	25
-83	12	12
-277	0	1
-45	1	0
-811	2	0
-164	0	1
-104	0	1
-32	1	1
-1386	0	14
-306	1	1
-43	1	1
-2765	0	1
-1819	0	1
-1480	1	1
-24	1	1
-276	0	1
-21	0	1
-119	2	0
-12	26	0
-541	1	1
-63	1	1
-180	0	1
-2456	1	0
-1055	1	0
-1166	2	0
-784	0	4
-170	1	0
-939	6	0
-5597	15	15
-1253	0	1
-3336	0	18
-1851	9	0
-45	1	1
-657	38	38
-4099	0	1
-1387	2	0
-1460	1	0
-204	0	5
-1506	0	1
-2621	1	0
-6620	0	1
-34	1	1
-249	1	0
-1440	0	10
-245	0	1
-368	1	9
-257	4	0
-1589	6	0
-1543	0	1
-4189	120	0
-354	312446	278046
-3734	24	25
-3097	1	0
-8	1	1
-4861	0	4
-5649	1	0
-2011	0	1
-4344	24	24
-10546	42	1467
-20955	0	1
-2075	2	1
-5546	1	0
-2168	4	0
-1266	1	0
-4124	1	1
-46	1	1
-54	1	1
-43	15	0
-780	1	1
-25	1	1
-497	0	1
-46	1	1
-810	0	1
-5701	0	1
-6998	0	1
-2002	0	3
-7160	1	1
-24	1	1
-479	2	0
-1872	0	1
-1192	1	0
-371	2	0
-31	1	1
-572	16	16
-1725	16	16
-588	1	1
-90	1	1
-2483	3	19
-187	0	1
-20	1	1
-3673	1	1
-27	4	0
-3021	1	0
-1323	19	6
-498	13	13
-1618	2	0
-5282	0	1
-719	0	8
-2994	1	0
-2822	0	2
-1396	1	1
-48	1	1
-8723	5	0
-291	1	1
-25	1	1
-116	0	1
-2809	1	1
-27	1	1
-224	1	1
-48	1	1
-292	0	2
-400	0	1
-754	1	1
-19	1	1
-4225	1	1
-28	1	1
-801	1	0
-671	1	1
-17	1	1
-390	1	1
-28	1	1
-84	7	7
-568	1	1
-56	1	1
-499	7	8
-266	1	1
-31	1	1
-518	18	18
-164	1	1
-50	1	1
-162	1	1
-60	1	1
-702	1	1
-28	1	1
-146	18	17
-517	1	1
-24	1	1
-686	12	12
-101	1	1
-22	5	5
-107	5	5
-277	9	9
-272	1	1
-48	1	1
-77	1	1
-67	1	1
-1548	1	1
-40	1	1
-763	1	1
-42	1	1
-541	8	8
-88	1	1
-77	1	1
-233	11	11
-311	1	1
-22	1	1
-147	1	8
-504	1	1
-26	1	1
-987	20433	0
-3090	1	0
-405	5	5
-1811	1	0
-1174	0	1
-70	1	1
-1100	10143	18
-2722	0	1
-2957	1	1
-32	1	1
-9585	0	1
-1350	0	1
-473	0	1
-675	0	1
-1435	0	1
-805423	0	79189
-10872737	100000	100000
-721570	1	1
-19	1	1
-816	1	1
-44	1	1
-572	8	6
-2021	0	4
-1001	2	0
-3757	1	0
-5942	2	2
-70	1	1
-100	7	7
-395	80000	17188
-1010	1	1
-45	1	1
-1486	18	18
-173	1	17
-15	1	17
-158	0	192
-33	0	368
-50	50	2
-40	1	1
-95	4	52
-60	39	8
-15	16	0
-92	16	0
-1589	0	1
-897	13	13
-28	3	3
-2454	1	1
-44	1	1
-301	0	468
-2030	1	1
-45	1	1
-1277	8	0
-1716	1	0
-1579	11	15
-2439	36	0
-39	37	1
-349	21	92
-2096	13	11
-192	1	1
-48	1	1
-130	1	1
-22	1	1
-970	1	1
-23	4	0
-64	0	14
-129	17	11
-154	13	14
-53	15	5
-48	1	1
-47	0	2
-114	18	16
-363	1	1
-43	1	1
-559	1	1
-32	1	1
-3980007
-
-chain 16701236 chr7 158821424 + 141723881 141902219 chr7 159138663 - 16862466 17040468 171
-1662	1	1
-69	1	1
-887	1	1
-16	1	1
-115	339	1
-1512	0	1
-3597	0	1
-309	2	0
-34	1	1
-623	0	2
-1746	2	0
-816	4	0
-7868	1	0
-22	0	4
-593	0	1
-2757	0	1
-1147	7	7
-134	1	1
-42	1	1
-669	1	1
-25	1	1
-539	1	1
-49	1	1
-1387	1	1
-53	0	1
-19	1	1
-878	1	1
-27	1	1
-9739	1	1
-15	1	1
-2064	0	1
-1069	1	1
-31	1	1
-612	0	1
-21	1	1
-821	2	0
-1002	2	0
-3478	4	0
-1394	1	1
-25	1	0
-60	1	0
-4	1	0
-10	1	0
-23	0	1
-12	0	1
-2396	1	1
-25	1	1
-401	0	2
-1918	0	2
-43	1	1
-806	1	1
-36	1	1
-126	1	1
-53	1	1
-411	5	5
-524	13	13
-2896	1	1
-62	1	1
-4194	2	0
-8269	2	0
-368	11	10
-546	1	0
-1040	2	0
-45	1	1
-234	1	1
-29	1	1
-1218	16	16
-206	11	11
-584	13	13
-334	4	4
-167	3	3
-31	1	1
-973	9	9
-142	81	81
-58	1	0
-74	1	0
-1707	19	19
-2413	1	1
-57	1	1
-160	1	1
-23	1	1
-2380	0	1
-5561	0	4
-2790	14	14
-76	3	0
-1823	1	1
-11	0	9
-6	2	0
-5	3	0
-9	5	0
-28	1	1
-727	1	1
-37	1	1
-2678	0	3
-1497	1	0
-3414	1	0
-1171	6	6
-4018	7	7
-269	1	1
-36	1	1
-366	1	1
-22	1	1
-916	0	9
-2431	1	1
-68	1	1
-855	4	4
-1052	2	2
-81	0	2
-45	7	7
-648	1	1
-27	1	1
-402	1	0
-791	1	1
-41	1	1
-1041	20	20
-1094	1	1
-29	4	0
-364	1	1
-40	0	1
-22	0	1
-124	0	1
-205	0	1
-720	0	1
-59	1	1
-1063	2	0
-112	2	0
-3106	15	15
-2542	1	1
-64	1	1
-3052	1	1
-73	1	1
-3722	1	1
-31	1	1
-3476	1	0
-229	1	1
-40	1	1
-1321	0	5
-1845	1	0
-558	5	5
-3811	19	19
-125	1	1
-25	1	1
-3387	1	0
-1781	4	4
-2191	0	1
-1201	0	1
-260	1	1
-17	7	7
-137	0	1
-38	1	1
-732	0	1
-1626	1	0
-1987	2	0
-45	1	1
-763	0	1
-1978	0	1
-135	1	0
-6209	1	0
-24	1	1
-4867	0	1
-171	0	1
-6299
-
-chain 6490016 chr7 158821424 + 34000 116005 chr16 90354753 - 90001 171511 354
-591	11	11
-383	0	4
-1364	1	0
-430	12	13
-1431	1	1
-21	1	1
-490	12	12
-509	1	1
-97	1	1
-604	2	0
-1188	1	3
-665	1	1
-22	6	0
-499	1	1
-19	1	1
-402	1	1
-51	1	1
-1193	0	4
-245	1	0
-688	0	1
-975	2	0
-463	0	23
-73	24	0
-32	7	0
-165	1	0
-1593	1	1
-20	1	1
-1203	1	1
-31	1	1
-740	2	0
-47	1	1
-485	1	1
-63	1	1
-381	5	0
-28	1	1
-254	1	1
-22	1	1
-306	0	1
-34	1	1
-283	0	2
-627	10	10
-74	1	1
-50	1	1
-1053	0	1
-54	1	1
-77	1	1
-210	1	1
-70	0	3
-1957	0	4
-2154	1	1
-69	1	1
-147	67	67
-69	1	1
-74	1	1
-242	1	1
-41	1	1
-63	5	5
-155	3	1
-101	1	1
-53	1	1
-877	1	1
-21	1	1
-60	1	1
-49	1	1
-167	1	1
-21	1	1
-623	15	15
-202	0	97
-86	0	49
-9	2	2
-84	5	248
-56	1	98
-40	0	1
-48	1	0
-87	1	1
-55	99	1
-50	50	0
-23	1	1
-81	0	194
-78	1	1
-55	3	3
-53	6	344
-15	1	1
-262	1	1
-80	1	1
-455	1	1
-108	3	3
-431	1	1
-101	1	1
-158	1	0
-9	1	1
-323	3	0
-85	1	1
-19	1	1
-345	32	0
-24	1	1
-342	1	1
-65	1	1
-90	8	8
-545	1	1
-130	2	2
-87	4	3
-62	3	3
-34	2	2
-77	1	1
-47	1	1
-61	1	1
-27	1	1
-224	7	7
-117	2	0
-17	1	1
-242	1	1
-34	1	1
-107	1	1
-36	1	1
-100	15	15
-154	0	8
-13	1	0
-34	5	5
-100	27	27
-263	11	11
-116	1	1
-41	1	1
-117	1	1
-49	1	1
-116	2	0
-70	1	1
-174	1	1
-125	1	1
-70	1	1
-30	1	1
-74	1	1
-32	1	1
-337	1	1
-49	1	1
-2127	1	1
-35	1	1
-538	1	1
-32	1	1
-744	10	10
-471	53	17
-2001	7	7
-453	1	0
-2656	0	1
-1785	1	0
-1454	1	1
-33	1	1
-419	1	1
-49	1	1
-4610	1	1
-36	1	1
-905	1	1
-13	0	2
-5128	17	17
-519	0	3
-613	7	0
-660	0	4
-2632	1	2
-278	21	21
-969	1	0
-2852	14	14
-149	1	1
-21	1	1
-198	1	1
-29	1	1
-801	6442	6416
-125	6	0
-39	3745	3755
-814	162	1
-4	63	63
-74	63	0
-47	1056	13
-370
-
-chain 227647 chr7 158821424 + 141707499 141716076 chr7 159138663 + 142043811 142047809 475649
-53	484	465
-55	51	51
-78	242	220
-60	274	271
-51	13	13
-51	37	37
-229	4	4
-228	16	16
-108	47	47
-50	4583	49
-498	131	130
-945	36	36
-253
-
-chain 87685 chr7 158821424 + 58756 115635 chr3 198022430 - 71488 126874 406
-67	3328	3375
-28	1	1
-29	2	2
-39	50	50
-7	2	2
-41	2708	1663
-32	2831	2828
-27	46647	46820
-96	378	0
-152	47	12
-72	252	0
-43
-
-chain 48969 chr7 158821424 + 142175391 142175904 chr7 159138663 + 142475439 142475952 2613549
-513
-
-chain 47803 chr7 158821424 + 141911444 141913842 chr7 159138663 - 17029555 17031946 2683091
-78	139	139
-57	226	225
-124	92	92
-56	135	135
-72	193	193
-53	23	23
-133	958	952
-59
-
-chain 43189 chr7 158821424 + 142199519 142199970 chr7 159138663 + 142498738 142499189 3009311
-451
-
-chain 30396 chr7 158821424 + 67364377 67364696 chr15 102531392 - 56463077 56463396 4465114
-319
-
-chain 30094 chr7 158821424 + 141700053 141707301 chr7 159138663 + 142042846 142043613 4669748
-89	15	15
-68	6585	104
-66	129	129
-62	35	35
-199
-
-chain 30060 chr7 158821424 + 141963578 141964737 chr11 135006516 + 33264685 33266127 4680203
-91	398	397
-87	228	512
-77	163	163
-115
-
-chain 28591 chr7 158821424 + 141910578 141910878 chr7 159138663 - 17028690 17028990 5361712
-300
-
-chain 21822 chr7 158821424 + 141716123 141716468 chr7 159138663 + 142047850 142048195 9124304
-170	99	99
-76
-
-chain 20144 chr7 158821424 + 142166403 142167075 chr9 141213431 + 33792981 33793662 10344618
-82	380	389
-66	18	18
-51	19	19
-56
-
-chain 16654 chr7 158821424 + 101805867 101806156 chr7 159138663 - 92369277 92369565 11127744
-33	12	11
-63	91	91
-90
-
-chain 14923 chr7 158821424 + 102039289 102039446 chr7 159138663 + 102153090 102153247 2823
-157
-
-chain 10542 chr7 158821424 + 115456 115592 chr16 90354753 - 170836 170972 2672410
-136
-
-chain 10012 chr7 158821424 + 114469 115025 chr9 141213431 - 90660 90901 550
-63	395	80
-98
-
-chain 9195 chr7 158821424 + 141943788 141943884 chr7 159138663 - 16914722 16914818 24637833
-96
-
-chain 8667 chr7 158821424 + 142177809 142178136 chr7 159138663 + 142477851 142478180 25450135
-54	219	221
-54
-
-chain 7349 chr7 158821424 + 142180607 142180684 chr7 159138663 + 142480664 142480741 27551182
-77
-
-chain 7340 chr7 158821424 + 142180197 142180274 chr7 159138663 + 142480253 142480330 27565643
-77
-
-chain 6886 chr7 158821424 + 141960844 141960917 chr8 146364022 - 77913390 77913463 28463282
-73
-
-chain 6730 chr7 158821424 + 102059075 102062034 chr7 159138663 + 102172727 102175692 3338
-34	2887	2893
-38
-
-chain 6431 chr7 158821424 + 142166514 142166582 chr7 159138663 + 142454997 142455065 29498865
-68
-
-chain 6414 chr7 158821424 + 114166 115456 chr9 141213431 - 90644 91234 1816570
-68	791	378
-44	328	41
-59
-
-chain 6276 chr7 158821424 + 142176939 142177005 chr7 159138663 + 142476982 142477048 29891950
-66
-
-chain 6166 chr7 158821424 + 142179945 142180009 chr7 159138663 + 142480002 142480066 30171758
-64
-
-chain 5761 chr7 158821424 + 141963726 141963989 chr14 107349540 - 25420241 25420503 6848073
-68	130	129
-65
-
-chain 5666 chr7 158821424 + 142179798 142179857 chr7 159138663 + 142479855 142479914 31548103
-59
-
-chain 5608 chr7 158821424 + 101977370 101977454 chr7 159138663 + 44036096 44036185 7960
-10	0	5
-74
-
-chain 5430 chr7 158821424 + 142178562 142178619 chr7 159138663 + 142478613 142478670 32231795
-57
-
-chain 5139 chr7 158821424 + 142176520 142176574 chr7 159138663 + 142476565 142476619 33117712
-54
-
-chain 5020 chr7 158821424 + 141966623 141966675 chr12 133851895 + 53762512 53762564 33527602
-52
-
-chain 4939 chr7 158821424 + 142176195 142176247 chr7 159138663 + 142476241 142476293 33775264
-52
-
-chain 4778 chr7 158821424 + 73598 73651 chr5 180915260 - 172444 172497 587
-53
-
-chain 4039 chr7 158821424 + 101996220 101996263 chr7 159138663 + 102308194 102308237 1871
-43
-
-chain 3908 chr7 158821424 + 142167123 142167183 chr7 159138663 + 142455620 142455680 17639294
-60
-
-chain 3217 chr7 158821424 + 141963833 141963883 chr6 171115067 - 41704900 41704950 22743877
-50
-
-chain 2759 chr7 158821424 + 67423135 67423165 chr7 159138663 + 67785172 67785202 11329361
-30
-
-chain 2575 chr7 158821424 + 67423107 67423135 chr7 159138663 + 67785172 67785200 11329362
-28
-
-chain 2575 chr7 158821424 + 67423079 67423107 chr7 159138663 + 67785172 67785200 11329363
-28
-
-chain 2575 chr7 158821424 + 67423051 67423079 chr7 159138663 + 67785172 67785200 11329364
-28
-
-chain 2575 chr7 158821424 + 67423023 67423051 chr7 159138663 + 67785172 67785200 11329365
-28
-
-chain 2575 chr7 158821424 + 67422995 67423023 chr7 159138663 + 67785172 67785200 11329366
-28
-
-chain 2457 chr7 158821424 + 114257 114311 chr16 90354753 - 170806 170860 17475755
-54
-
-chain 2391 chr7 158821424 + 67422969 67422995 chr7 159138663 + 67785202 67785228 13667102
-26
-
-chain 2359 chr7 158821424 + 101974113 101974139 chr7 159138663 + 102286210 102286236 158723
-26
-
-chain 1502 chr7 158821424 + 141709533 141709580 chr7 159138663 + 142013474 142013521 12917072
-47
-
-chain 721 chr7 158821424 + 141963699 141963726 chr17 81195210 + 19853796 19853823 7983736
-27
-
-chain 615 chr7 158821424 + 141964154 141964190 chr19 59128983 - 28688778 28688814 21921932
-36
-
-chain 362 chr7 158821424 + 101987601 101987634 chr7 159138663 - 57149003 57149036 1101
-33
-
-chain 17312866 chr7_random 549659 + 162804 345700 chr7_gl000195_random 182896 + 0 182896 164
-182896
-
-chain 10142542 chr7_random 549659 + 0 112804 chr7 159138663 + 158928464 159038297 315
-4073	0	1
-5056	1	0
-1766	1	1
-63	5	5
-2422	1	0
-1297	1	0
-1967	196	0
-230	28	0
-2331	5	0
-47	1	1
-345	1	0
-41	1	1
-807	1	1
-31	1	1
-238	3	0
-100	1	0
-281	1	1
-43	1	1
-359	27	26
-59	1	1
-43	1	1
-1385	1	0
-161	1	0
-45	1	1
-1693	1	0
-93	1	0
-5	1	0
-805	0	3
-649	0	49
-1400	1	1
-4	1	0
-28	0	1
-7	0	1
-157	1	1
-117	0	31
-166	13	12
-138	1	0
-556	1	1
-46	1	1
-204	1	1
-21	1	1
-511	2	0
-390	1	1
-29	1	1
-60	1	1
-68	0	3
-27	1	1
-71	0	1
-37	5	0
-18	0	6
-56	3	3
-89	2	0
-103	6	15
-43	5	0
-7	0	11
-55	0	4
-456	46	45
-1286	1	1
-46	1	0
-36	2	0
-57	1	0
-396	1	1
-38	1	1
-298	1	1
-16	1	1
-602	224	0
-82	1	56
-1115	1	74
-17	3	3
-88	1	74
-98	158	12
-90	3	3
-70	3	3
-117	1	1
-43	1	1
-53	1	1
-21	1	1
-53	229	10
-120	81	8
-59	8	10
-411	1	0
-47	1	1
-723	0	9
-8142	6	6
-1297	1	1
-22	0	1
-7799	12	11
-1878	1	0
-70	5	5
-592	1	1
-28	1	1
-2251	1	0
-1474	1	0
-1975	0	1
-2577	0	1
-612	15	15
-93	1	0
-3	1	0
-149	1	0
-61	3	3
-34	1	0
-11	2101	0
-63	73	3
-67	106	1
-57	83	13
-60	70	0
-79	561	1
-321	70	0
-262	0	35
-83	183	8
-2406	0	549
-85	32	0
-27	0	26
-72	0	35
-22	3	0
-24	0	93
-74	2	0
-17	28	0
-63	1	0
-6	1	0
-1451	44	4
-23	1	1
-38	0	40
-80	1	121
-34	1	1
-58	0	82
-839	1	0
-31	1	1
-2861	0	4
-1376	1	1
-20	0	1
-78	2	0
-24	2	2
-2760	3	1
-585	8	0
-761	1	0
-6449	4	1
-259	1	1
-22	1	1
-717	0	1
-887	7	8
-2174	3	0
-970	1	0
-1768	12	0
-4378	0	1
-5	0	1
-13	1	0
-1637	5	10
-312	0	1
-2167	11	0
-164	10	10
-1517	1	1
-42	0	3
-698	0	4
-90	1	1
-20	1	1
-167	1	1
-16	1	1
-860	0	1
-1719
-
-chain 9633059 chr7_random 549659 + 402818 549659 chr7 159138663 + 514489 666751 345
-3766	22099	5004
-26	4	4
-11014	7	5
-17	1	0
-8	21	0
-3389	1	1
-54	1	1
-55	1	1
-66	1	1
-165	1	1
-38	1	1
-52	22350	21842
-816	4	4
-10432	15	15
-20532	1	1
-29	9	9
-13871	157	23205
-37837
-
-chain 2073422 chr7_random 549659 + 444161 465736 chr7 159138663 - 158510053 158531628 1246
-21575
-
-chain 1225579 chr7_random 549659 + 415456 428202 chr7 159138663 + 537499 550245 1943
-12746
-
-chain 745495 chr7_random 549659 + 406711 414469 chr7 159138663 - 158580384 158588142 6708
-215	11	11
-2423	4	4
-5105
-
-chain 224185 chr7_random 549659 + 399770 402202 chr7 159138663 + 518876 521308 490490
-367	50	50
-1609	1	1
-53	3	3
-304	1	1
-44
-
-chain 25943 chr7_random 549659 + 67571 70764 chr7 159138663 + 158995434 158996421 1881723
-67	73	3
-55	13	153
-17	71	0
-159	183	8
-119	21	21
-154	1960	0
-64	35	0
-105	35	0
-62
-
-chain 21070 chr7_random 549659 + 68795 70055 chr7 159138663 + 158995572 158996097 2684005
-86	98	63
-43	35	0
-76	455	0
-18	248	38
-61	57	57
-83
-
-chain 19298 chr7_random 549659 + 67796 68209 chr7 159138663 + 158995799 158996246 2040899
-35	195	229
-183
-
-chain 8295 chr7_random 549659 + 70341 70449 chr7 159138663 + 158996348 158996421 13908836
-11	35	0
-62
-
-chain 8007 chr7_random 549659 + 70264 70825 chr7 159138663 + 158995746 158996237 2373081
-77	186	46
-35	218	288
-45
-
-chain 7010 chr7_random 549659 + 69669 69742 chr7 159138663 + 158996026 158996099 13809421
-73
-
-chain 6757 chr7_random 549659 + 71674 71744 chr7 159138663 + 158996246 158996316 26425870
-70
-
-chain 6582 chr7_random 549659 + 16740 16849 chr7 159138663 + 158945342 158945395 9902405
-48	56	0
-5
-
-chain 5793 chr7_random 549659 + 36845 36905 chr7 159138663 + 158964922 158964982 31172491
-60
-
-chain 5504 chr7_random 549659 + 68645 69446 chr7 159138663 + 158995947 158996153 2767372
-68	176	1
-63	420	0
-74
-
-chain 5075 chr7_random 549659 + 34499 34552 chr7 159138663 + 158962931 158962984 33354772
-53
-
-chain 4386 chr7_random 549659 + 36139 36193 chr7 159138663 + 158964435 158964489 9901820
-54
-
-chain 4359 chr7_random 549659 + 69809 69854 chr7 159138663 + 158996061 158996106 24027999
-45
-
-chain 3345 chr7_random 549659 + 71561 71653 chr7 159138663 + 158995923 158996015 5823696
-92
-
-chain 3242 chr7_random 549659 + 36212 36249 chr7 159138663 + 158964435 158964472 7647561
-37
-
-chain 3169 chr7_random 549659 + 68713 69336 chr7 159138663 + 158995385 158995658 13517397
-46	500	150
-77
-
-chain 2856 chr7_random 549659 + 36091 36138 chr7 159138663 + 158964168 158964215 3415068
-47
-
-chain 2508 chr7_random 549659 + 74235 74267 chr7 159138663 + 158999705 158999737 11181217
-32
-
-chain 2422 chr7_random 549659 + 16701 16740 chr7 159138663 + 158944995 158945034 20425801
-39
-
-chain 2296 chr7_random 549659 + 76078 76102 chr7 159138663 + 159001472 159001496 26237556
-24
-
-chain 1888 chr7_random 549659 + 68772 68795 chr7 159138663 + 158995829 158995852 23967691
-23
-
-chain 1646 chr7_random 549659 + 16653 16684 chr7 159138663 + 158945171 158945202 6593972
-31
-
-chain 1510 chr7_random 549659 + 34573 34664 chr7 159138663 + 158962893 158962984 9181320
-91
-
-chain 1319 chr7_random 549659 + 70142 70185 chr7 159138663 + 158996289 158996332 23051286
-43
-
-chain 1065 chr7_random 549659 + 69520 69582 chr7 159138663 + 158996297 158996359 18766264
-62
-
-chain 13483752813 chr8 146274826 + 0 146274826 chr8 146364022 + 10000 146304022 9
-930417	1	1243
-52	10	10
-44	0	972
-100	0	54
-162	0	324
-409	0	1
-2323216	1	0
-3352649	2	0
-854996	100000	50000
-3399023	1	1
-46	1	1
-13965	1	1
-30	1	1
-121189	1	1
-35	1	1
-283700	0	1
-719291	100016	93054
-1155	0	2
-755	26	26
-980	21	21
-1479	54	54
-3597	1	0
-1937	19	19
-322	1	0
-1758	2	0
-1141	0	1
-956	48	48
-739	21	21
-1005	0	1
-543	1734	1734
-5338	15	15
-1029	1	1
-28	1	1
-305	57	57
-164	27	27
-5130707	0	1
-1288	0	1
-446	1	1
-80	1	1
-2123	4	4
-2514	3	0
-545	9	0
-527	1	1
-18	1	1
-256	9	9
-79	1	1
-40	1	1
-148	0	2
-2231	0	27
-958	1	1
-20	1	1
-2487	1	1
-113	1	1
-73	13	13
-365	10	10
-151	1	1
-32	3	0
-26	1	1
-1480	1	1
-29	1	1
-621	1	1
-28	1	1
-701	9	9
-362	1	1
-19	1	1
-691	1	1
-44	6	0
-47	1	1
-513	12	11
-382	1	1
-22	1	1
-111	1	1
-36	1	1
-337	1	1
-42	1	1
-602	2	0
-36	1	1
-475	1	1
-23	0	1
-32	4	3
-65	1	1
-59	1	1
-688	1	1
-22	1	1
-1473	1	1
-36	1	1
-372	1	1
-16	6	6
-1605	1	1
-38	1	1
-816	1	1
-17	1	0
-374	1	1
-17	1	1
-48	1	0
-82	1	1
-45	1	1
-263	1	1
-23	1	1
-204	1	1
-39	1	1
-2341	0	1
-2989	9	11
-811	8	8
-741	0	2
-337	1	1
-25	4	4
-763	1	1
-19	1	1
-343	1	1
-31	1	1
-1953	1	1
-74	1	1
-67	1	1
-18	4	4
-73	1	1
-31	1	1
-114	11	1
-87	1	1
-65	1	1
-125	9	9
-378	49	48
-90	1	1
-99	1	0
-173	13	7
-696	0	1
-6184	13	13
-830	13	13
-128	1	1
-37	1	1
-136	1	0
-66	5	6
-870	1	0
-4877	0	1
-585	3	7
-1728	1	0
-33	1	1
-465	1	1
-68	1	1
-581	6	0
-2088	1	0
-304	0	1
-2674	1	1
-28	1	0
-54	8	8
-846	0	1
-1409	16	16
-559	0	1
-407	0	5
-11	5	1
-29	1	1
-4051	1	1
-10	0	1
-43	1	1
-385	1	1
-35	1	1
-101	11	11
-602	1	0
-491	14	16
-1366	19	19
-321	1	1
-49	1	1
-546	1	1
-25	1	1
-2568	1	1
-51	4	0
-119	1	1
-39	0	1
-1040	0	1
-1682	0	4
-39	8	0
-862	1	1
-17	1	1
-587	1	1
-21	1	1
-904	0	1
-261	0	1
-1151	0	2
-2325	5	5
-5415	0	3
-1545	1	0
-428	4	4
-1950	2	0
-1073	0	1
-3653	0	86
-1283	1	1
-79	1	1
-6656	12	12
-1550	0	18
-5832	1	0
-4835	10	10
-1719	1	1
-84	1	1
-848	0	2
-236	1	1
-42	1	1
-1272	12	0
-49	1	1
-820	1	1
-22	1	0
-58	0	22
-510	8	8
-983	6	0
-539	14	14
-863	0	2
-27	1	1
-204	14	14
-163	4	4
-290	1	1
-59	1	1
-842	0	2
-2044	1	1
-90	0	1
-3434	0	3
-356	0	1
-873	0	1
-864	25	1
-630	12	7
-62	10	10
-156	11	11
-1364	19	19
-156	4	4
-244	4	18
-505	1	0
-109	1	1
-230	1	1
-107	4	3
-150	1	1
-83	5	5
-70	1	1
-33	1	0
-142	1	1
-626	5	6
-274	10	10
-128	1	1
-35	1	1
-216	1	1
-44	1	1
-312	1	1
-16	1	1
-1496	8	7
-451	0	1
-855	1	1
-20	1	1
-350	1	1
-62	1	1
-617	10	10
-845	1	1
-58	1	1
-2189	1	1
-147	1	1
-475	1	1
-27	1	1
-278	1	1
-17	1	1
-994	1	1
-40	1	1
-219	5	5
-26	1	1
-900	1	1
-29	1	0
-26	1	1
-484	15	16
-61	9	9
-114	21	26
-801	1	1
-33	1	1
-560	1	1
-37	1	1
-80	14	14
-211	1	1
-43	1	1
-156	1	1
-20	1	1
-685	1	1
-18	1	1
-48	4	0
-711	1	1
-38	1	1
-402	7	7
-1045	1	1
-37	1	1
-4035	9	9
-247	4	0
-4146274	17400	5734
-330366	0	1
-2346742	0	55
-413177	3	0
-450	1	0
-9436	3	1
-7044	4	0
-2886	1	0
-635	1	0
-16567	1	0
-6926	29	28
-9249	1	0
-14916	8	0
-12872	2	0
-3330	2	0
-2673376	2	0
-2603	1	1
-78	1	1
-2170491	7	7
-29817	66108	2485
-6473782	5	5
-39	1	1
-9574	0	2
-5879	1	1
-29	1	1
-6139	1	0
-2354	1	1
-28	1	1
-91	88	87
-142	16	15
-54	1	1
-22	3	3
-1479	4	4
-221	4	4
-132	1	0
-574	11	11
-23	1	0
-604	1	1
-44	1	1
-899	1	0
-70	1	0
-10	1	0
-13561	1	1
-44	1	1
-4476	4	4
-799	26	25
-1466	18	18
-17897	4	0
-1667	1	0
-4250	1	1
-44	1	3
-14	1	1
-4956	1	1
-18	1	0
-39	3	2
-4990	1	1
-47	13	13
-69	4	0
-9729	1	0
-355	0	1
-2186	1	1
-37	1	1
-6111	3	3
-100	4	4
-68	1	1
-43	1	1
-1126	5	7
-5520	8	8
-2316	1	1
-181	6	6
-50	1	1
-29	1	0
-83	1	1
-1073	245	639
-150	1	1
-25272	0	1
-2132	0	4
-2522	1	1
-48	1	1
-1498528	0	1
-6044582	3000008	3000000
-1291113	60074	16691
-3837	3	0
-811	1	0
-2567	1	0
-7375465	11	11
-42062	1	0
-19604621	1	0
-10692667	1	0
-110	0	1
-3577	0	3
-907	1	1
-18	1	1
-897	1	1
-64	535	251
-21	0	1
-140	0	1
-70	1	0
-77	9	10
-149	4	0
-5	1	5
-68	1	0
-142	5	5
-57	14	14
-43	1	1
-31034	124100	99683
-2301	0	2
-44	2	0
-568015	87325	183549
-330	5	5
-114	0	3088
-1776	0	3085
-949	0	4
-514	37	37
-963	15	14
-1351	71	71
-56	15	15
-405	713	713
-651	1	1
-41	1	1
-837	1	0
-658	0	1
-794	0	1
-73	1	1
-30	1	1
-817	51	51
-566	72	72
-195	0	12193
-1599	0	3085
-217	43	43
-247	29	29
-4148	1	0
-158	266	266
-696	20	20
-58	69	69
-100	13	13
-326	137	137
-151	35	35
-1804	151	151
-1341	289	289
-154	23	23
-1932	17	17
-111	47	47
-128	16	16
-78	30	30
-1022	6	10
-78	1	0
-342	31	31
-86	23	23
-1601	41	41
-144	49	49
-170	10	10
-398	23	23
-419	20	20
-955	55	55
-1139	11	11
-1925	0	276
-223	58	58
-702	25	25
-1030	23	23
-363	164	164
-653	16	16
-78	13	13
-1035	0	4
-514	37	37
-1069	10	10
-321	15	15
-603	68	68
-789	20	20
-56	25	25
-1007	5	5
-1198	24	24
-689	3	0
-743	32	32
-817	43	43
-574	11	11
-123	19	19
-618	28	28
-1270	15	15
-289	29	29
-106	11	11
-1395	46	46
-850	4	4
-777	62	62
-86	36	36
-374	97	97
-2072	31	31
-195	56	56
-379	80	80
-64	11	11
-191	18	18
-1051	13	13
-52	163	169
-1297	1	1
-25	1	1
-3451	0	188
-3097	0	9
-2715	1	0
-11829	0	3
-6001	28	0
-10728	0	1
-3770769	1	0
-62	1	0
-22	1	0
-827	1	0
-1485	1	0
-242	0	1
-7142	1	0
-4029	3	3
-69	1	1
-15865	1	0
-83463	4	0
-5976	9	0
-2661	1	0
-1483	1	0
-15868	4	0
-17798	1	0
-2649	1	0
-3627	1	0
-4789	1	0
-9541	1	0
-6844	1	0
-3187	2	0
-411	14	0
-3056	4	0
-19776	3	0
-29085	0	1
-745	2	0
-11453	2	0
-16739	1	0
-14697	1	0
-8539	1	0
-25514443	1	0
-17680	0	1
-55359	0	1
-58	57	59
-1515	1	0
-1111	1	0
-5736	6	6
-66213	1	0
-68	1	1
-24	6	7
-43	1	1
-33414	7	7
-22	1	1
-19312	0	1
-8588	1	1
-31	1	1
-15969	1	1
-32	1	1
-27034	1	1
-42	1	1
-3352	0	1
-15009	1	0
-20433	18	18
-32141	9	8
-116	41	41
-4920	1	0
-33364	1	0
-11160	15	17
-28423	1	0
-43835	1	1
-24	4	2
-269244	4	4
-37	1	1
-17193	4	3
-53	12	11
-23	2	1
-7	1	1
-37978	9	9
-37743	1	1
-35	3	3
-26636	1	1
-17	1	1
-8728292	1	0
-16734742	0	71275
-27	1	1
-657033	0	2
-2911	0	2
-1941	1	1
-35	1	1
-835	1	1
-116	1	1
-399	1	1
-101	1	0
-194	1	2
-450	1	0
-825	1	1
-73	1	1
-156	1	1
-58	1	1
-50	5	5
-153	11	11
-189	5	5
-233	1	1
-83	1	1
-642	0	1
-1380	1	1
-17	1	1
-315	1	1
-26	1	1
-786	0	901
-76	1	1
-45	1	1
-535	1	1
-34	1	1
-2007	7	7
-159	1	1
-26	1	1
-6362	13	13
-504325	100008	25635
-420771	0	232
-287680	0	104
-73	0	364
-181	0	55
-95	1	1
-46	1	1
-4002	1	1
-24	1	1
-183	49	0
-72	1	2
-8	1	0
-39	688	1
-306	0	50
-1939	0	1
-615	684	0
-254	0	1
-572035	7362	108542
-480202	1	0
-11866	6	6
-26917	0	1
-6097	15	15
-3074	0	1
-12292	0	1
-2209	0	1
-7358	0	1
-321393
-
-chain 161719 chr8 146274826 + 12213564 12217654 chr8 146364022 + 11922619 11926713 3890
-48	2333	2337
-1544	26	26
-139
-
-chain 94297 chr8 146274826 + 86864948 86909782 chr8 146364022 + 86767902 86816113 712
-43	4583	4586
-51	23	23
-69	22	22
-81	3466	3466
-114	1460	1461
-170	2237	2237
-47	3442	3445
-24	161	161
-49	1995	1995
-32	5554	5830
-116	4	4
-12	2309	5394
-37	2018	2018
-68	865	865
-25	3669	3669
-32	817	817
-42	1346	1346
-28	1574	1574
-29	1512	1515
-46	1652	1652
-41	2665	2665
-30	2224	2230
-50
-
-chain 49697 chr8 146274826 + 86036864 86037399 chr8 146364022 + 85964814 85965349 932809
-535
-
-chain 26725 chr8 146274826 + 86857851 86907733 chr8 146364022 + 86754632 86786590 1026
-491	49362	31438
-29
-
-chain 24621 chr8 146274826 + 145396034 145396288 chr8 146364022 + 145493131 145493385 2960834
-254
-
-chain 18039 chr8 146274826 + 144819613 144819801 chr8 146364022 + 144748845 144749033 12082915
-188
-
-chain 14890 chr8 146274826 + 86857082 86862299 chr8 146364022 - 59611598 59616815 1124
-71	476	476
-222	4397	4397
-51
-
-chain 13243 chr8 146274826 + 144819801 144819938 chr8 146364022 + 144748593 144748730 12136518
-137
-
-chain 9530 chr8 146274826 + 144823061 144823289 chr8 146364022 + 144751680 144751756 18947814
-3	152	0
-73
-
-chain 9463 chr8 146274826 + 144819938 144820036 chr8 146364022 + 144748632 144748730 13619337
-98
-
-chain 8087 chr8 146274826 + 86874741 86874834 chr8 146364022 + 86817360 86817453 1088
-93
-
-chain 7965 chr8 146274826 + 86865238 86879045 chr8 146364022 + 86780387 86797281 766
-29	7982	7984
-37	5729	8814
-30
-
-chain 7439 chr8 146274826 + 12201270 12203830 chr8 146364022 + 11910337 11912897 3584
-26	2480	2480
-54
-
-chain 6315 chr8 146274826 + 86909619 86909690 chr8 146364022 + 86556151 86556222 765064
-71
-
-chain 6303 chr8 146274826 + 144823559 144823625 chr8 146364022 + 144751722 144751788 29838951
-66
-
-chain 5756 chr8 146274826 + 86854716 86862896 chr8 146364022 + 86782059 86817706 1940
-37	8112	35579
-31
-
-chain 5521 chr8 146274826 + 144823643 144823701 chr8 146364022 + 144751730 144751788 31959915
-58
-
-chain 5339 chr8 146274826 + 144823077 144823133 chr8 146364022 + 144751620 144751676 32492605
-56
-
-chain 4702 chr8 146274826 + 144819343 144819392 chr8 146364022 + 144748967 144749016 12082914
-49
-
-chain 4684 chr8 146274826 + 144823154 144823323 chr8 146364022 + 144751621 144751752 19314390
-33	102	64
-34
-
-chain 4385 chr8 146274826 + 144820066 144820134 chr8 146364022 + 144748613 144748681 20813384
-68
-
-chain 3959 chr8 146274826 + 144820160 144820201 chr8 146364022 + 144748560 144748601 13619336
-41
-
-chain 3959 chr8 146274826 + 144819572 144819613 chr8 146364022 + 144748560 144748601 13619338
-41
-
-chain 3270 chr8 146274826 + 86905368 86905406 chr8 146364022 - 59611399 59611437 120315
-38
-
-chain 3190 chr8 146274826 + 144819513 144819546 chr8 146364022 + 144748697 144748730 12136519
-33
-
-chain 2525 chr8 146274826 + 144823339 144823377 chr8 146364022 + 144751692 144751730 23202086
-38
-
-chain 2511 chr8 146274826 + 144819546 144819572 chr8 146364022 + 144748632 144748658 13619339
-26
-
-chain 2509 chr8 146274826 + 144820134 144820160 chr8 146364022 + 144748632 144748658 22535050
-26
-
-chain 2395 chr8 146274826 + 144820036 144820061 chr8 146364022 + 144748974 144748999 15328526
-25
-
-chain 2146 chr8 146274826 + 86862896 86862937 chr8 146364022 - 59626667 59626708 2042
-38	1	1
-2
-
-chain 2013 chr8 146274826 + 12224371 12224395 chr8 146364022 + 11933433 11933457 5802
-24
-
-chain 928 chr8 146274826 + 86871422 86871445 chr8 146364022 + 86566156 86566179 4371
-23
-
-chain 19961283 chr8_random 943810 + 732172 943810 chr5 180915260 + 69954173 70165811 138
-211638
-
-chain 4772201 chr8_random 943810 + 62854 113804 chr8 146364022 + 16274686 16325603 650
-4146	9	9
-1642	5	9
-541	4	0
-1197	1	1
-27	1	1
-2498	0	1
-20171	4	0
-2761	3	0
-1978	0	1
-628	10	0
-5533	3	0
-2428	24	0
-47	5	9
-197	11	11
-687	0	2
-642	1	1
-17	1	1
-2228	0	4
-1978	1	0
-1521
-
-chain 4401722 chr8_random 943810 + 396973 443039 chr8 146364022 - 801667 847519 685
-2079	1	0
-22818	62	9
-50	57	0
-25	0	8
-40	91	0
-5953	32	0
-1937	0	2
-803	13	14
-786	0	5
-3908	2	0
-783	0	1
-854	1	0
-142	1	0
-1521	1	0
-114	0	1
-498	4	4
-591	2	0
-2750	0	9
-147
-
-chain 3680035 chr8_random 943810 + 643258 682172 chr8_gl000196_random 38914 + 0 38914 797
-38914
-
-chain 3554032 chr8_random 943810 + 493047 530222 chr8_gl000197_random 37175 + 0 37175 825
-37175
-
-chain 1222443 chr8_random 943810 + 0 12854 chr8 146364022 - 108556772 108569616 1946
-5765	0	1
-2843	2	0
-279	0	1
-299	1	0
-1113	9	0
-2543
-
-chain 995258 chr8_random 943810 + 250482 297042 chr8 146364022 + 46838897 46856230 2491
-52	5	5
-72	1882	0
-246	1888	0
-158	79	78
-59	82	81
-53	46	46
-76	18	18
-100	1942	59
-231	1	0
-84	1	0
-49	23	22
-65	25	25
-312	49	47
-118	1	0
-169	645	640
-71	18	18
-202	15	15
-74	114	112
-65	1444	30
-86	2249	34
-216	9	8
-173	33	30
-63	81	79
-265	87	84
-103	11	10
-122	1	1
-47	1	1
-165	858	0
-14	1027	0
-88	1879	0
-148	7	6
-166	1	0
-288	1888	1
-62	1	1
-90	1	0
-35	1890	1
-280	3	3
-23	1	0
-109	1	1
-283	4	4
-88	1	1
-67	1	1
-23	1	1
-109	680	0
-89	1876	0
-41	1	0
-45	1898	0
-107	18	18
-18	1	0
-28	1	1
-50	1	0
-35	1	1
-50	7	4
-54	1	0
-37	1	1
-298	11	10
-94	1	0
-17	1	0
-36	1	0
-55	1	0
-12	1	1
-148	1	1
-79	11	9
-78	1	1
-140	5	4
-54	3	0
-97	1	0
-138	6	4
-73	1	0
-59	19	19
-207	1	1
-45	1	1
-76	1	0
-8	3	1
-60	2	2
-56	1	1
-70	1	0
-45	1	1
-136	131	128
-86	17	16
-75	7	7
-53	483	144
-75	26	26
-230	135	132
-110	15	15
-61	25	23
-76	43	42
-120	1	0
-78	1735	1728
-192	42	41
-61	82	82
-190	37	37
-90	1911	30
-168	56	56
-56	10	10
-83	26	26
-230	1927	49
-224	1937	52
-244	41	41
-125	36	36
-96	26	26
-83	81	78
-272	2019	139
-59	236	231
-103	71	70
-183	31	31
-58	119	117
-131	1	0
-167	25	25
-72	97	96
-91	6	6
-75	10	9
-219
-
-chain 895028 chr8_random 943810 + 298039 346176 chr8 146364022 - 99507152 99525054 4376
-63	126	463
-229	1883	1
-104	25	25
-58	6	6
-155	36	35
-84	10	10
-88	23	23
-53	1	0
-164	5	5
-68	56	55
-231	24	24
-149	409	408
-53	1	0
-69	1	0
-134	6	6
-201	318	315
-27	1885	0
-105	1	0
-82	82	82
-144	27	27
-56	238	235
-130	24	23
-109	1	0
-77	2	1
-100	31	30
-102	14	14
-63	11	10
-108	91	91
-72	94	93
-169	149	148
-198	238	234
-86	2	0
-169	3	1
-72	11	11
-66	1	0
-247	18	17
-392	540	533
-186	7	7
-121	1	0
-254	1977	89
-53	7	7
-193	483	475
-93	50	47
-198	28	28
-76	1883	8
-61	130	129
-123	29	29
-112	201	199
-138	12	11
-21	1873	0
-107	33	33
-53	1880	1
-118	40	38
-141	1943	53
-168	137	134
-81	16	16
-115	2216	0
-103	32	29
-71	128	127
-104	54	53
-121	128	127
-66	99	96
-80	75	74
-128	1924	40
-53	2	1
-288	1910	24
-53	1907	23
-56	40	40
-72	111	111
-62	127	127
-122	65	65
-80	210	206
-115	0	1
-146	5663	0
-183	40	40
-53	34	33
-229	28	28
-92	83	83
-234	1983	101
-57	1885	0
-44	11	11
-62	1	0
-69	28	28
-126	1	0
-148	147	144
-58	14	12
-53	1	0
-66	1	0
-105	34	33
-71	39	38
-69	17	17
-56	6	5
-79	48	46
-53	6	6
-57	38	35
-77	78	75
-111	649	644
-110	45	43
-235
-
-chain 604051 chr8_random 943810 + 178170 281976 chr8 146364022 + 46838954 46856867 5476
-212	1875	0
-272	566	562
-114	1	0
-143	1	0
-55	74	74
-65	25	25
-63	62	62
-61	31	31
-102	23	23
-215	1	0
-63	67	68
-68	373	34
-158	64	63
-53	46	46
-105	67	67
-55	2294	38
-202	15	15
-63	51	51
-246	23	23
-71	1	0
-271	103	102
-427	6	5
-51	25	22
-54	1878	0
-36	10	10
-122	26	26
-134	1886	0
-121	93	92
-51	1	2
-246	54742	0
-134	1884	0
-129	33	31
-147	39	38
-116	65	61
-66	43	41
-62	1982	95
-213	196	193
-339	260	254
-187	89	88
-10	2292	403
-57	5123	1343
-293	24	22
-61	1	0
-73	7	7
-53	1877	144
-91	4270	499
-59	2463	581
-37	339	671
-59	342	0
-110	266	261
-150	6	6
-92	244	241
-51	62	62
-51	3119	1229
-91	761	80
-60	48	47
-137	1876	0
-136	12	10
-131	12	11
-290	1	0
-45	4005	2083
-59	88	424
-59
-
-chain 496223 chr8_random 943810 + 580222 593236 chr8 146364022 - 59615387 59795086 34662
-2144	4634	17818
-237	1	1
-31	1	1
-194	35	40
-1575	162	153603
-534	0	55
-995	64	64
-1343	58	58
-112	1	1
-38	1	1
-70	1	1
-41	1	1
-81	1	1
-34	1	1
-624
-
-chain 279595 chr8_random 943810 + 199376 329223 chr8 146364022 - 99506514 99525054 6095
-67	50	47
-55	631	967
-63	1082	0
-177	61	58
-147	6	6
-143	1	0
-42	1882	0
-74	31	30
-83	23	23
-13	1879	0
-204	5	5
-58	69	69
-227	1933	51
-152	123	122
-83	1	0
-118	72	72
-159	17	17
-119	34	34
-230	36	36
-134	1929	32
-189	3017	0
-24	83	83
-121	1	0
-49	5680	1
-325	136	129
-277	30	30
-335	1436	53
-51	63	62
-99	867	859
-154	860	855
-269	32	31
-112	1	0
-50	1877	0
-99	58	58
-108	1	0
-96	2221	0
-37	1546	0
-136	2648	89
-52	7	8
-278	1	0
-202	139	136
-145	65	63
-51	44	42
-62	143	139
-61	156	155
-243	214	215
-20	1872	0
-194	74	75
-337	25	25
-145	15	15
-71	65	65
-84	1878	0
-60	1	0
-244	227	225
-226	53	53
-62	42	41
-66	63	61
-120	35	34
-64	56110	1
-98	41	40
-53	2795	914
-65	10	10
-57	8290	755
-67	63	61
-66	17	16
-53	1	0
-58	36	36
-92	3924	162
-40	61	61
-58	4119	368
-133	2082	185
-58	42	42
-167	2235	21
-50	4401	627
-71	40	39
-147	360	353
-60	174	173
-446
-
-chain 208078 chr8_random 943810 + 170910 242131 chr8 146364022 - 99506628 99524507 6380
-55	632	967
-69	73	73
-115	28	28
-146	4836	20
-75	1	0
-54	58	58
-87	10	10
-294	22105	209
-184	59	59
-53	209	208
-64	1388	305
-56	340	338
-60	50	50
-134	32	32
-108	2	0
-106	83	82
-108	1884	0
-62	68	68
-216	1	0
-55	20	20
-107	3862	104
-61	311	311
-29	2182	2154
-53	1	0
-93	1388	251
-108	3	2
-129	159	158
-109	1	0
-31	114	113
-51	60	60
-78	14	14
-99	14	13
-152	64	62
-60	13	12
-120	98	98
-138	115	114
-56	6	4
-26	438	436
-213	183	182
-53	1	0
-81	2318	428
-71	25	25
-145	15	15
-71	65	65
-109	1956	43
-69	112	108
-33	397	392
-58	1466	80
-62	46	46
-401	64	64
-45	51	51
-56	1	0
-6	99	99
-54	146	144
-187	67	67
-166	52	49
-51	9	8
-63	11	10
-61	186	186
-68	38	38
-168	105	102
-125	3	2
-113	17	17
-186	2	0
-3	6394	747
-113	762	83
-102	4015	254
-238	102	101
-91	6	6
-85	1999	129
-12	9	9
-44	2322	442
-90	319	318
-42
-
-chain 110041 chr8_random 943810 + 584910 586860 chr8 146364022 - 59525621 59532924 58275
-151	1	1
-64	1	1
-158	1	1
-137	0	5353
-14	3	3
-73	8	8
-52	11	11
-57	9	9
-54	15	15
-289	15	15
-837
-
-chain 81230 chr8_random 943810 + 228410 243660 chr8 146364022 - 99515272 99524158 121868
-53	818	813
-113	55	55
-76	1036	1025
-78	1	0
-115	1280	591
-98	36	34
-79	25	25
-73	189	188
-120	2622	738
-79	145	145
-8	21	19
-36	157	155
-27	18	14
-98	82	81
-130	280	280
-78	83	83
-21	20	20
-27	51	51
-134	238	238
-10	39	39
-53	216	215
-252	5175	1418
-73	6	6
-146	231	228
-111	1	0
-201	35	35
-101
-
-chain 78595 chr8_random 943810 + 271315 287023 chr8 146364022 + 46844767 46855610 13381
-177	7	6
-61	49	46
-54	86	84
-62	24	23
-151	92	91
-73	109	107
-108	1	0
-51	8	6
-97	2409	1723
-29	1995	118
-92	64	63
-24	701	695
-42	7	7
-53	90	89
-54	403	392
-25	6360	4099
-70	192	192
-26	77	76
-63	336	336
-129	125	126
-143	878	869
-27	23	23
-61
-
-chain 70241 chr8_random 943810 + 583972 584708 chr8 146364022 - 2327498 2328234 1800744
-736
-
-chain 67060 chr8_random 943810 + 583131 583834 chr8 146364022 + 144032710 144033413 1885205
-703
-
-chain 60161 chr8_random 943810 + 163863 193392 chr8 146364022 + 46840361 46854926 51951
-69	30	30
-79	155	153
-22	224	224
-36	635	633
-54	78	77
-53	1660	61
-55	408	405
-36	32	32
-40	163	161
-29	96	89
-5	85	85
-4	108	106
-193	10362	0
-211	23	23
-164	214	212
-108	41	40
-217	35	35
-85	25	25
-266	2366	490
-48	600	260
-32	3507	4987
-74	590	587
-105	2319	2307
-66	2880	990
-102	1	0
-89	507	168
-143
-
-chain 59106 chr8_random 943810 + 169718 174718 chr8 146364022 - 99507650 99524666 884317
-69	73	73
-53	107	105
-145	323	5927
-57	45	43
-58	51	49
-65	130	129
-16	74	74
-175	49	49
-53	423	422
-53	2360	8782
-34	55	55
-95	1	0
-28	1	0
-2	113	113
-292
-
-chain 53138 chr8_random 943810 + 171392 346403 chr8 146364022 - 102525263 102570806 8603
-57	57	57
-79	626	627
-64	1139	91
-72	32	32
-61	1	0
-192	55	53
-253	233	231
-113	1894	10
-151	18218	118
-161	39	39
-89	168	167
-68	174	168
-68	7236	473
-76	2229	347
-40	124	120
-50	21	21
-55	1906	29
-98	2	0
-51	3928	158
-113	3230	214
-58	5760	82
-62	113	112
-39	7442	4152
-122	13	12
-149	90	90
-56	48	47
-71	400	397
-133	1910	21
-97	23	23
-92	2561	0
-54	15	13
-67	70	69
-90	95	94
-59	72	72
-139	45	45
-101	71659	2394
-62	72	72
-84	1	0
-9	2000	117
-95	39	39
-65	70	68
-87	2031	150
-103	1949	61
-106	17	17
-136	75	74
-53	5662	38
-58	1936	41
-42	168	168
-108	95	95
-66	243	241
-50	5018	908
-53	4282	513
-74	1906	30
-83	2078	26035
-107	1947	59
-57	500	483
-160	1936	53
-185	1897	12
-119	3972	202
-29	14	14
-79	61	61
-44
-
-chain 52733 chr8_random 943810 + 164218 295513 chr8 146364022 + 43821028 43838759 7574
-63	20	20
-141	36	36
-153	32	31
-103	40	40
-53	86	85
-99	1658	59
-83	265	263
-110	21	21
-51	29	27
-160	108	108
-51	1	0
-49	1	0
-61	130	123
-85	12281	44
-69	272	272
-118	62	62
-75	7995	1645
-102	45	45
-59	32	32
-14	328	328
-126	2372	483
-86	58668	153
-40	4323	551
-31	1938	56
-58	2392	511
-58	234	222
-51	1403	0
-51	91	91
-50	218	218
-83	67	66
-75	77	77
-110	391	53
-2	2678	792
-147	104	101
-59	1917	33
-92	1958	75
-54	5899	1442
-11	105	104
-132	1	0
-50	2212	332
-66	5506	1369
-60	189	189
-173	223	221
-222	1874	0
-87	23	23
-54	108	108
-109	29	28
-94	64	63
-70	91	86
-97	164	161
-112	123	123
-78	1942	66
-145	118	118
-69	1917	31
-51	10	10
-113	235	231
-193	327	327
-41	392	391
-51	363	361
-123	1977	94
-57
-
-chain 48120 chr8_random 943810 + 172087 205615 chr8 146364022 - 99508140 99525054 275640
-50	1136	89
-81	56	55
-4	1876	5603
-199	577	570
-71	144	141
-39	17920	1690
-56	276	276
-117	289	289
-64	172	170
-10	18	18
-76	284	279
-308	237	229
-64	1904	0
-33	2094	204
-40	43	43
-63	3	2
-59	12	12
-306	15	15
-33	1146	61
-49	757	4487
-37	62	62
-83	46	46
-112	178	174
-95	1	0
-29	1956	73
-248
-
-chain 37837 chr8_random 943810 + 253130 272078 chr8 146364022 + 46839659 46847391 87472
-42	44	44
-61	2771	880
-109	37	36
-171	1	0
-120	209	204
-98	56	55
-61	10	9
-23	187	186
-75	18	18
-17	5316	1682
-9	145	143
-53	1	0
-29	137	137
-73	132	128
-65	14	14
-79	6214	2430
-95	70	70
-83	2232	342
-91
-
-chain 33662 chr8_random 943810 + 209837 215530 chr8 146364022 - 99514311 99520696 710844
-71	67	65
-87	1	0
-118	10	8
-19	543	533
-53	11	11
-89	4	2
-68	143	138
-148	1307	167
-110	627	624
-30	2103	3960
-84
-
-chain 32940 chr8_random 943810 + 226035 229035 chr8 146364022 - 102534454 102537445 203694
-68	23	23
-49	847	842
-50	91	91
-134	57	57
-61	1290	1287
-37	113	113
-86	41	40
-53
-
-chain 31024 chr8_random 943810 + 206449 211988 chr8 146364022 - 99514678 99520173 701886
-8	43	43
-64	6	5
-58	14	12
-82	340	0
-49	416	749
-81	59	59
-117	75	75
-207	1422	3285
-36	2428	531
-34
-
-chain 29825 chr8_random 943810 + 245532 246838 chr8 146364022 + 46839602 46840894 3893579
-57	560	553
-119	226	222
-5	184	184
-21	75	72
-59
-
-chain 28513 chr8_random 943810 + 169082 170209 chr8 146364022 - 99514495 99515614 2995290
-72	337	330
-70	17	17
-84	143	144
-53	81	80
-64	162	161
-44
-
-chain 28403 chr8_random 943810 + 244271 247583 chr8 146364022 + 46840215 46841632 1514192
-150	21	21
-65	247	246
-61	60	60
-144	37	36
-68	1	0
-56	146	144
-158	1945	55
-153
-
-chain 27366 chr8_random 943810 + 305024 329400 chr8 146364022 - 99508828 99514021 185326
-30	144	144
-27	1950	69
-57	1	0
-69	4733	954
-80	7	7
-60	2015	139
-144	51	51
-17	50	48
-20	2199	324
-179	83	83
-149	1	0
-45	50	50
-29	198	197
-38	56	56
-36	163	162
-27	2035	153
-71	157	157
-56	6099	109
-62	47	47
-93	104	100
-75	1	0
-39	342	0
-49	1641	94
-81	539	539
-177
-
-chain 25161 chr8_random 943810 + 165410 166073 chr8 146364022 + 46840031 46840686 5084847
-51	107	104
-69	107	106
-77	51	48
-53	79	78
-69
-
-chain 23498 chr8_random 943810 + 275598 276538 chr8 146364022 + 46848347 46849285 1106774
-150	39	39
-58	1	0
-156	159	160
-43	237	235
-97
-
-chain 22556 chr8_random 943810 + 221873 233787 chr8 146364022 - 102535430 102541485 264178
-56	92	91
-134	1524	140
-26	9348	4879
-77	298	294
-159	126	126
-55	8	7
-11
-
-chain 21554 chr8_random 943810 + 211856 229563 chr8 146364022 - 102534119 102541711 230838
-98	1283	144
-76	1760	1749
-25	1	0
-80	1889	12
-87	80	79
-50	14	14
-51	55	50
-59	207	201
-52	31	30
-212	2303	390
-120	3503	2102
-43	5590	1830
-38
-
-chain 21378 chr8_random 943810 + 315539 346866 chr8 146364022 - 99515536 99522005 182294
-65	7	7
-59	1872	0
-52	1	0
-110	59	59
-145	1929	47
-157	4107	0
-50	19	19
-76	11	11
-9	218	215
-20	69	68
-27	104	104
-38	3941	169
-93	9868	446
-40	53	53
-33	350	349
-83	1915	34
-228	2	1
-71	4993	3080
-80	103	101
-58	162	162
-50
-
-chain 20133 chr8_random 943810 + 187153 190961 chr8 146364022 + 46839718 46841635 711123
-27	2490	610
-70	193	186
-75	6	6
-22	81	81
-48	1	0
-41	200	200
-10	13	12
-78	103	101
-193	10	10
-147
-
-chain 19851 chr8_random 943810 + 184692 274845 chr8 146364022 + 46839508 46849467 34309
-59	20	20
-103	2903	645
-204	29	27
-122	5	4
-251	1	1
-19	1	1
-370	102	102
-45	59	59
-32	2407	520
-35	53082	226
-207	6009	346
-163	6	4
-101	79	79
-50	419	416
-33	1900	15
-227	6	6
-48	1	0
-53	22	21
-65	58	57
-59	43	42
-133	81	80
-20	44	42
-50	14	12
-53	37	36
-104	2375	490
-62	1340	1334
-14	1	0
-183	3854	228
-49	6055	405
-35	6036	1578
-80	25	25
-89	8	7
-13
-
-chain 19146 chr8_random 943810 + 175023 175290 chr8 146364022 - 99508150 99508416 4025470
-88	58	57
-65	25	25
-31
-
-chain 17870 chr8_random 943810 + 167013 193249 chr8 146364022 + 46840039 46851047 112211
-37	407	404
-31	233	231
-41	10382	13
-26	802	800
-40	282	279
-41	6132	1660
-77	3954	2070
-28	510	4239
-81	90	89
-50	30	30
-120	2083	201
-60	192	191
-51	338	0
-118
-
-chain 17758 chr8_random 943810 + 265412 266607 chr8 146364022 + 43830436 43831619 676151
-58	100	98
-16	14	14
-59	946	936
-2
-
-chain 17102 chr8_random 943810 + 196211 212812 chr8 146364022 - 102534634 102539542 315778
-4	176	169
-110	677	661
-101	229	222
-63	12	11
-71	2311	416
-66	5	5
-3	2545	1456
-25	7	5
-52	21	20
-3	9994	1320
-61	8	7
-57
-
-chain 16958 chr8_random 943810 + 303736 319647 chr8 146364022 - 99509421 99514022 288375
-62	1	0
-115	55	55
-12	6716	1059
-173	60	58
-5	238	238
-27	142	138
-80	1	0
-32	1181	1170
-56	95	93
-15	6818	1186
-27
-
-chain 16519 chr8_random 943810 + 191041 191237 chr8 146364022 + 46841712 46841907 5194781
-138	7	6
-51
-
-chain 16395 chr8_random 943810 + 250196 250458 chr8 146364022 + 46842349 46842610 5706058
-109	63	63
-38	1	0
-51
-
-chain 16284 chr8_random 943810 + 248826 295566 chr8 146364022 + 43821313 43835075 8983
-38	3114	1217
-58	3878	108
-134	2320	436
-35	2074	180
-90	6230	729
-53	51	51
-165	2138	257
-18	1	0
-14	9087	4604
-68	26	23
-70	26	25
-165	4726	2469
-31	113	113
-45	6358	726
-53	323	321
-29	3160	1272
-53	1943	60
-1	1	0
-51
-
-chain 16072 chr8_random 943810 + 313809 340982 chr8 146364022 - 102527896 102533983 267291
-28	5309	1547
-73	15383	1858
-110	23	22
-51	120	119
-75	171	167
-144	2405	509
-56	2087	199
-104	240	238
-93	367	364
-59	113	109
-162
-
-chain 15849 chr8_random 943810 + 261982 295288 chr8 146364022 + 43821759 43829198 76114
-110	412	75
-52	237	234
-137	1904	21
-61	17	17
-88	8048	505
-97	1212	533
-118	1	0
-62	80	80
-12	643	644
-105	9123	1231
-153	113	112
-50	1019	1018
-55	3899	142
-89	478	475
-43	4836	1068
-52
-
-chain 15670 chr8_random 943810 + 194296 345941 chr8 146364022 - 102525263 102540770 8834
-113	3789	1
-79	5134	279
-81	25039	3655
-36	72	71
-66	2073	189
-82	66	62
-87	280	277
-20	23	23
-59	87	84
-72	49	48
-51	7	7
-82	1014	334
-62	79983	3178
-76	18	17
-68	2382	504
-43	42	41
-108	10477	733
-134	2033	147
-59	5650	11
-88	3846	65
-64	297	293
-50	3779	12
-69	123	122
-120	121	120
-68	15	15
-57	136	135
-139	239	237
-72	1	0
-63	4	3
-53	59	59
-8	490	488
-28	84	81
-35	298	293
-34	805	799
-67	1	0
-53	69	67
-100	14	14
-81	134	132
-53	38	38
-39	110	109
-45
-
-chain 14986 chr8_random 943810 + 225882 226349 chr8 146364022 - 99518359 99518822 2174986
-18	53	51
-56	166	164
-73	33	33
-68
-
-chain 14834 chr8_random 943810 + 243014 243551 chr8 146364022 - 99519780 99520313 2299338
-16	162	159
-19	313	312
-27
-
-chain 14491 chr8_random 943810 + 298927 299279 chr8 146364022 - 102541139 102541484 3650546
-95	253	246
-4
-
-chain 13927 chr8_random 943810 + 330425 330634 chr8 146364022 - 99513165 99513373 16289681
-108	47	46
-54
-
-chain 13708 chr8_random 943810 + 204114 204446 chr8 146364022 - 99514221 99514551 7956244
-38	2	1
-51	137	136
-104
-
-chain 13201 chr8_random 943810 + 267894 296641 chr8 146364022 + 46841376 46846486 149880
-47	8325	118
-153	12619	975
-124	10	10
-59	1933	45
-415	178	178
-62	103	99
-67	193	193
-45	34	34
-4	542	542
-26	2853	963
-60	194	194
-31	632	628
-38
-
-chain 12234 chr8_random 943810 + 261803 269960 chr8 146364022 + 46841266 46843423 172872
-35	2890	667
-1	24	24
-60	15	15
-6	166	166
-32	2034	149
-193	134	132
-81	69	68
-116	2096	211
-21	87	83
-97
-
-chain 10617 chr8_random 943810 + 337138 337293 chr8 146364022 - 99523571 99523724 21494273
-69	29	27
-57
-
-chain 10554 chr8_random 943810 + 261774 276161 chr8 146364022 + 46850579 46856384 287750
-26	3379	1156
-30	20	20
-51	4844	1067
-12	16	15
-65	51	50
-53	361	357
-85	102	101
-13	51	51
-26	87	87
-46	4988	2413
-81
-
-chain 10039 chr8_random 943810 + 325665 325968 chr8 146364022 - 99512180 99512483 3203386
-32	146	146
-51	12	12
-62
-
-chain 9889 chr8_random 943810 + 299929 343052 chr8 146364022 - 99507161 99512618 194143
-54	125	463
-172	6011	368
-29	4240	471
-68	8003	490
-69	47	47
-10	133	133
-55	45	44
-46	4488	379
-66	1908	22
-82	7833	307
-63	2043	161
-90	115	115
-101	1	0
-97	2144	241
-32	4543	773
-83	294	293
-33
-
-chain 9887 chr8_random 943810 + 315022 315154 chr8 146364022 - 99513153 99513284 7544872
-79	1	0
-52
-
-chain 9860 chr8_random 943810 + 311200 311307 chr8 146364022 - 99513093 99513199 8991129
-52	1	0
-54
-
-chain 9817 chr8_random 943810 + 331048 331155 chr8 146364022 - 99513786 99513892 13428201
-64	1	0
-42
-
-chain 9446 chr8_random 943810 + 266857 296082 chr8 146364022 + 43794817 43828117 103381
-44	9743	27369
-146	121	120
-47	983	976
-79	10221	2331
-165	112	112
-51	81	80
-39	1877	0
-66	2043	157
-36	3318	1429
-53
-
-chain 9082 chr8_random 943810 + 283227 283503 chr8 146364022 + 46855567 46855841 3572014
-72	39	38
-7	101	100
-57
-
-chain 9078 chr8_random 943810 + 266179 266275 chr8 146364022 + 46841541 46841637 24832874
-96
-
-chain 9056 chr8_random 943810 + 234327 343102 chr8 146364022 - 102532678 102541696 177988
-49	2060	180
-83	4311	566
-60	72559	3258
-278	110	111
-124	380	378
-51	246	244
-21	14	13
-37	2147	273
-83	195	193
-50	29	28
-5	2000	121
-73	4435	328
-132	3864	97
-47	5706	63
-45	54	54
-151	1883	5
-99	3796	15
-99	63	61
-64	1	0
-58	1881	0
-137	76	74
-53	53	48
-27	312	310
-85	17	16
-19	140	140
-52	244	244
-62	105	104
-50
-
-chain 8907 chr8_random 943810 + 174718 174972 chr8 146364022 - 99514987 99515577 3222521
-12	195	531
-47
-
-chain 8843 chr8_random 943810 + 329461 329557 chr8 146364022 - 99512211 99512306 12312646
-78	1	0
-17
-
-chain 8728 chr8_random 943810 + 244822 248433 chr8 146364022 + 46838897 46840609 1548241
-52	2949	1051
-100	1	0
-231	55	55
-65	34	34
-124
-
-chain 8619 chr8_random 943810 + 294534 295111 chr8 146364022 + 46855606 46856180 1696895
-31	25	25
-71	52	51
-46	97	97
-58	132	130
-65
-
-chain 8428 chr8_random 943810 + 281982 282213 chr8 146364022 + 46854328 46854560 448042
-60	97	98
-56	17	17
-1
-
-chain 8419 chr8_random 943810 + 261190 261281 chr8 146364022 + 43820969 43821060 10860311
-91
-
-chain 8395 chr8_random 943810 + 294914 295046 chr8 146364022 + 46848509 46848640 12873675
-58	69	68
-5
-
-chain 8358 chr8_random 943810 + 183391 183662 chr8 146364022 + 46851295 46851565 1204104
-177	39	38
-55
-
-chain 8235 chr8_random 943810 + 303417 303563 chr8 146364022 - 99516580 99516725 5721277
-92	1	0
-53
-
-chain 8187 chr8_random 943810 + 330253 330340 chr8 146364022 - 99512994 99513081 26147162
-87
-
-chain 7754 chr8_random 943810 + 175981 176066 chr8 146364022 - 99524049 99524133 15930227
-61	1	0
-23
-
-chain 7677 chr8_random 943810 + 237294 312035 chr8 146364022 - 99517817 99525125 210590
-33	254	254
-156	1	0
-142	25	25
-70	127	127
-226	1925	53
-62	55	55
-112	29	28
-91	36	36
-139	46	43
-7	796	791
-54	65384	1748
-45	3060	1165
-46	839	833
-119	535	529
-77	214	206
-36
-
-chain 7632 chr8_random 943810 + 192816 192897 chr8 146364022 + 46850614 46850695 27043702
-81
-
-chain 7605 chr8_random 943810 + 285785 290878 chr8 146364022 + 46850643 46851974 486318
-50	2571	689
-13	4	4
-73	73	73
-25	2038	160
-132	56	54
-58
-
-chain 7406 chr8_random 943810 + 221929 222203 chr8 146364022 - 99519540 99519813 598559
-62	1	0
-29	134	134
-48
-
-chain 7383 chr8_random 943810 + 294257 294361 chr8 146364022 + 43837510 43837614 4128881
-70	9	9
-25
-
-chain 7298 chr8_random 943810 + 168270 168367 chr8 146364022 + 46839414 46839508 6543284
-4	56	53
-37
-
-chain 7295 chr8_random 943810 + 336620 336697 chr8 146364022 - 99513722 99513799 27625946
-77
-
-chain 7211 chr8_random 943810 + 261472 261549 chr8 146364022 + 46839068 46839145 24666501
-77
-
-chain 7186 chr8_random 943810 + 330047 330123 chr8 146364022 - 99512791 99512867 27853996
-76
-
-chain 7178 chr8_random 943810 + 316571 316677 chr8 146364022 - 102541857 102541963 5712191
-106
-
-chain 7102 chr8_random 943810 + 318170 320971 chr8 146364022 - 99520028 99520932 765669
-72	19	19
-135	121	121
-72	13	12
-29	2280	384
-60
-
-chain 7077 chr8_random 943810 + 192950 193025 chr8 146364022 + 46850748 46850823 28082919
-75
-
-chain 7057 chr8_random 943810 + 203108 206189 chr8 146364022 - 99515093 99516287 1156085
-30	91	89
-53	2333	448
-35	503	503
-36
-
-chain 6980 chr8_random 943810 + 332337 335152 chr8 146364022 - 99522544 99523471 1124480
-50	412	409
-6	79	79
-50	126	126
-65	1978	93
-49
-
-chain 6922 chr8_random 943810 + 183305 183378 chr8 146364022 + 46840000 46840073 28376594
-73
-
-chain 6904 chr8_random 943810 + 266355 266429 chr8 146364022 + 46841714 46841788 28413782
-74
-
-chain 6731 chr8_random 943810 + 303313 303384 chr8 146364022 - 99509001 99509072 28774708
-71
-
-chain 6664 chr8_random 943810 + 303981 314057 chr8 146364022 - 99517140 99519668 641395
-51	3	2
-55	1	0
-72	170	168
-30	7422	1761
-7	12	11
-54	1882	0
-68	153	153
-96
-
-chain 6603 chr8_random 943810 + 322619 327380 chr8 146364022 - 99513231 99513884 1344743
-127	337	0
-120	9	8
-78	1963	78
-31	1885	0
-211
-
-chain 6584 chr8_random 943810 + 197737 202982 chr8 146364022 - 102536127 102540259 775939
-91	1155	1137
-22	12	11
-57	3876	2782
-32
-
-chain 6449 chr8_random 943810 + 218412 233428 chr8 146364022 - 99516080 99519573 697985
-27	8506	1438
-73	54	54
-91	295	295
-235	28	28
-6	100	100
-56	5516	1061
-29
-
-chain 6331 chr8_random 943810 + 327023 327090 chr8 146364022 - 99511661 99511728 29751334
-67
-
-chain 6250 chr8_random 943810 + 208146 208242 chr8 146364022 - 99508890 99508983 12204367
-15	70	67
-11
-
-chain 6212 chr8_random 943810 + 207786 207861 chr8 146364022 - 99514136 99514211 3829743
-75
-
-chain 6150 chr8_random 943810 + 203513 205795 chr8 146364022 - 102537045 102537445 1909663
-16	3	2
-125	118	117
-8	1955	75
-57
-
-chain 6094 chr8_random 943810 + 299279 299402 chr8 146364022 - 99508718 99508841 2977078
-68	21	21
-34
-
-chain 6085 chr8_random 943810 + 250101 250166 chr8 146364022 + 46842254 46842319 30387783
-65
-
-chain 6067 chr8_random 943810 + 293889 294038 chr8 146364022 + 46845620 46845767 4301892
-66	21	19
-62
-
-chain 6049 chr8_random 943810 + 230044 230135 chr8 146364022 - 102569888 102569979 10345810
-91
-
-chain 5962 chr8_random 943810 + 207380 207446 chr8 146364022 - 99509995 99510061 8394857
-66
-
-chain 5949 chr8_random 943810 + 272784 272847 chr8 146364022 + 46853694 46853757 30762472
-63
-
-chain 5823 chr8_random 943810 + 299452 300023 chr8 146364022 - 99514497 99515068 1422380
-470	61	61
-40
-
-chain 5814 chr8_random 943810 + 289476 289952 chr8 146364022 + 46839369 46839842 2257769
-77	110	110
-124	92	90
-42	1	0
-30
-
-chain 5753 chr8_random 943810 + 192024 192086 chr8 146364022 + 46838954 46839016 21955899
-62
-
-chain 5749 chr8_random 943810 + 233271 233333 chr8 146364022 - 102570546 102570608 31315232
-62
-
-chain 5681 chr8_random 943810 + 341821 341883 chr8 146364022 - 99511396 99511458 7040566
-62
-
-chain 5649 chr8_random 943810 + 174777 174837 chr8 146364022 - 99507908 99507968 31588023
-60
-
-chain 5623 chr8_random 943810 + 175706 175950 chr8 146364022 - 102534119 102534360 3287579
-59	23	22
-63	22	20
-77
-
-chain 5394 chr8_random 943810 + 322313 322370 chr8 146364022 - 99511057 99511114 32316179
-57
-
-chain 5303 chr8_random 943810 + 187437 187493 chr8 146364022 + 46840000 46840056 32583273
-56
-
-chain 5285 chr8_random 943810 + 290446 290502 chr8 146364022 + 43794807 43794863 32673339
-56
-
-chain 5276 chr8_random 943810 + 336755 336811 chr8 146364022 - 99513853 99513909 32693850
-56
-
-chain 5265 chr8_random 943810 + 208344 208568 chr8 146364022 - 99514691 99514915 3842595
-38	152	152
-34
-
-chain 5263 chr8_random 943810 + 587464 592229 chr8 146364022 + 86573610 86746488 37343
-35	3283	168311
-47	1343	1343
-20	1	3086
-36
-
-chain 5194 chr8_random 943810 + 184072 184128 chr8 146364022 + 46838897 46838953 32965865
-56
-
-chain 5184 chr8_random 943810 + 329855 329911 chr8 146364022 - 99512600 99512656 19420929
-56
-
-chain 5176 chr8_random 943810 + 177599 177656 chr8 146364022 - 99506628 99506685 33029925
-57
-
-chain 5155 chr8_random 943810 + 281730 289038 chr8 146364022 + 46843205 46844537 960143
-32	6927	953
-200	103	101
-46
-
-chain 5093 chr8_random 943810 + 184617 184671 chr8 146364022 + 43793908 43793962 23494272
-54
-
-chain 5050 chr8_random 943810 + 326962 327016 chr8 146364022 - 102542496 102542550 23236949
-54
-
-chain 5030 chr8_random 943810 + 212164 212217 chr8 146364022 - 99524079 99524132 33461083
-53
-
-chain 5021 chr8_random 943810 + 265903 265956 chr8 146364022 + 46841267 46841320 33516233
-53
-
-chain 5010 chr8_random 943810 + 325697 333370 chr8 146364022 - 99519686 99521704 323579
-146	5416	1638
-176	1905	28
-30
-
-chain 4963 chr8_random 943810 + 195042 195095 chr8 146364022 - 99525006 99525059 2910708
-53
-
-chain 4923 chr8_random 943810 + 294759 294811 chr8 146364022 + 46846486 46846538 24481170
-52
-
-chain 4775 chr8_random 943810 + 300049 300108 chr8 146364022 - 99511357 99511416 2287019
-59
-
-chain 4729 chr8_random 943810 + 323590 341586 chr8 146364022 - 99508256 99511164 508733
-81	188	186
-45	5653	0
-76	6291	651
-50	2125	222
-31	36	36
-21	50	50
-1	57	52
-62	3121	1237
-18	5	4
-85
-
-chain 4516 chr8_random 943810 + 291820 291870 chr8 146364022 + 46839826 46839876 19135311
-50
-
-chain 4460 chr8_random 943810 + 340307 340812 chr8 146364022 - 99522970 99523472 2799007
-59	396	393
-50
-
-chain 4363 chr8_random 943810 + 169662 169718 chr8 146364022 - 99524410 99524466 15024078
-25	20	20
-11
-
-chain 4245 chr8_random 943810 + 323934 340633 chr8 146364022 - 102539490 102542980 824111
-57	5415	1637
-55	4265	507
-46	6509	840
-13	129	125
-132	10	10
-68
-
-chain 4191 chr8_random 943810 + 346770 346816 chr8 146364022 - 99523777 99523823 32415009
-46
-
-chain 4157 chr8_random 943810 + 182640 182685 chr8 146364022 + 46841541 46841586 34989719
-45
-
-chain 4075 chr8_random 943810 + 287206 294116 chr8 146364022 + 46853923 46857394 507901
-58	44	43
-3	6754	3316
-51
-
-chain 4035 chr8_random 943810 + 210210 231774 chr8 146364022 - 99509073 99511132 504053
-68	1	0
-87	1	0
-47	151	148
-33	3084	58
-60	3981	215
-31	2075	179
-62	11852	1040
-31
-
-chain 3902 chr8_random 943810 + 322746 322788 chr8 146364022 - 99511490 99511532 25070576
-42
-
-chain 3842 chr8_random 943810 + 326212 339029 chr8 146364022 - 99518333 99519833 259270
-47	312	308
-17	60	57
-117	12236	926
-28
-
-chain 3793 chr8_random 943810 + 191943 191984 chr8 146364022 + 43793349 43793390 19585042
-41
-
-chain 3728 chr8_random 943810 + 267941 270995 chr8 146364022 + 46845159 46846318 991534
-57	2323	433
-41	406	402
-51	140	139
-36
-
-chain 3715 chr8_random 943810 + 252408 255104 chr8 146364022 + 46840810 46841615 879027
-44	1	0
-30	2575	685
-46
-
-chain 3689 chr8_random 943810 + 281829 281916 chr8 146364022 + 46850779 46850864 2001274
-26	3	1
-58
-
-chain 3667 chr8_random 943810 + 254324 254368 chr8 146364022 + 46840842 46840884 6647423
-30	11	9
-3
-
-chain 3646 chr8_random 943810 + 267998 268037 chr8 146364022 + 46850823 46850862 21797624
-39
-
-chain 3562 chr8_random 943810 + 168212 168270 chr8 146364022 + 43793831 43793889 3070871
-58
-
-chain 3504 chr8_random 943810 + 293480 293517 chr8 146364022 + 46839611 46839648 25642059
-37
-
-chain 3471 chr8_random 943810 + 337522 337596 chr8 146364022 - 99523948 99524022 18137430
-74
-
-chain 3448 chr8_random 943810 + 276204 276644 chr8 146364022 + 46854559 46854996 1897606
-49	365	362
-26
-
-chain 3411 chr8_random 943810 + 253189 255402 chr8 146364022 + 46850929 46853124 621337
-27	1269	1253
-37	776	774
-2	49	49
-53
-
-chain 3373 chr8_random 943810 + 338130 338166 chr8 146364022 - 99513335 99513371 20995505
-36
-
-chain 3359 chr8_random 943810 + 165298 184945 chr8 146364022 + 43823972 43836890 282023
-56	2595	8459
-64	12771	2404
-3	8	8
-69	4024	1798
-57
-
-chain 3297 chr8_random 943810 + 194502 225687 chr8 146364022 - 102525468 102530377 366001
-70	4347	545
-64	92	91
-87	8182	1452
-36	9798	1128
-56	8421	1348
-32
-
-chain 3286 chr8_random 943810 + 278118 290566 chr8 146364022 + 43833036 43837583 504233
-53	11	9
-65	12260	4361
-59
-
-chain 3257 chr8_random 943810 + 218922 219219 chr8 146364022 - 99516581 99516875 4722847
-56	32	30
-58	32	31
-119
-
-chain 3241 chr8_random 943810 + 233589 233706 chr8 146364022 - 102539417 102539534 832166
-52	16	16
-49
-
-chain 3212 chr8_random 943810 + 266430 268559 chr8 146364022 + 46841788 46842035 1348744
-53	1890	10
-128	11	9
-47
-
-chain 3157 chr8_random 943810 + 327996 328036 chr8 146364022 - 99512626 99512665 16621225
-16	15	14
-9
-
-chain 3082 chr8_random 943810 + 310645 310683 chr8 146364022 - 99512541 99512579 16551162
-38
-
-chain 3062 chr8_random 943810 + 163933 165245 chr8 146364022 + 46851641 46852949 942341
-29	1223	1219
-60
-
-chain 3030 chr8_random 943810 + 262108 262298 chr8 146364022 + 43831228 43834818 1405601
-67	13	3413
-110
-
-chain 2982 chr8_random 943810 + 183568 183600 chr8 146364022 + 46840262 46840294 9991965
-32
-
-chain 2745 chr8_random 943810 + 335974 336003 chr8 146364022 - 99513082 99513111 33185960
-29
-
-chain 2672 chr8_random 943810 + 298503 298547 chr8 146364022 - 99522900 99522944 24221385
-44
-
-chain 2671 chr8_random 943810 + 332183 346560 chr8 146364022 - 102528996 102533910 187401
-51	6123	457
-105	6796	3008
-38	249	246
-57	891	885
-67
-
-chain 2639 chr8_random 943810 + 219413 219441 chr8 146364022 - 99507721 99507749 35294427
-28
-
-chain 2612 chr8_random 943810 + 200816 200846 chr8 146364022 - 99525102 99525132 4075609
-30
-
-chain 2604 chr8_random 943810 + 240329 240369 chr8 146364022 - 99522715 99522755 8959532
-40
-
-chain 2556 chr8_random 943810 + 216929 216957 chr8 146364022 - 99514612 99514640 10325210
-28
-
-chain 2552 chr8_random 943810 + 191384 191411 chr8 146364022 + 46840185 46840212 15340406
-27
-
-chain 2552 chr8_random 943810 + 304972 304999 chr8 146364022 - 99516251 99516278 22571486
-27
-
-chain 2523 chr8_random 943810 + 327142 327169 chr8 146364022 - 99524856 99524883 11689776
-27
-
-chain 2451 chr8_random 943810 + 317909 318170 chr8 146364022 - 99521638 99521896 1452880
-31	226	223
-4
-
-chain 2447 chr8_random 943810 + 313295 313321 chr8 146364022 - 99513300 99513326 34910154
-26
-
-chain 2433 chr8_random 943810 + 230135 233158 chr8 146364022 - 99507638 99508095 1270471
-81	73	73
-21	37	37
-40	18	18
-82	2643	77
-28
-
-chain 2394 chr8_random 943810 + 309803 310102 chr8 146364022 - 102570308 102570605 11245020
-97	185	183
-17
-
-chain 2370 chr8_random 943810 + 237880 237905 chr8 146364022 - 99520270 99520295 11943708
-25
-
-chain 2370 chr8_random 943810 + 302899 302924 chr8 146364022 - 99512327 99512352 35222469
-25
-
-chain 2330 chr8_random 943810 + 274710 274735 chr8 146364022 + 46843727 46843752 26272760
-25
-
-chain 2188 chr8_random 943810 + 303139 303300 chr8 146364022 - 99512566 99512727 1325340
-161
-
-chain 2164 chr8_random 943810 + 254246 254269 chr8 146364022 + 46840765 46840788 24904248
-23
-
-chain 2146 chr8_random 943810 + 166073 166100 chr8 146364022 + 43793293 43793320 16498497
-27
-
-chain 2129 chr8_random 943810 + 171463 171506 chr8 146364022 - 99524332 99524375 3948851
-43
-
-chain 2094 chr8_random 943810 + 256486 256530 chr8 146364022 + 46856070 46856114 4878843
-44
-
-chain 2067 chr8_random 943810 + 182380 182437 chr8 146364022 + 46850625 46850682 3805032
-57
-
-chain 2054 chr8_random 943810 + 318711 318733 chr8 146364022 - 99511225 99511247 10715405
-22
-
-chain 1964 chr8_random 943810 + 202805 202867 chr8 146364022 - 99509184 99509246 3143072
-62
-
-chain 1962 chr8_random 943810 + 187357 187601 chr8 146364022 + 46841788 46842031 9057308
-62	87	86
-95
-
-chain 1941 chr8_random 943810 + 278085 278118 chr8 146364022 + 46854559 46854592 1239137
-33
-
-chain 1922 chr8_random 943810 + 294361 294534 chr8 146364022 + 46849827 46850000 1057760
-173
-
-chain 1907 chr8_random 943810 + 166115 166177 chr8 146364022 + 46850070 46850132 2756260
-62
-
-chain 1904 chr8_random 943810 + 294565 294590 chr8 146364022 + 46846293 46846318 7797359
-25
-
-chain 1899 chr8_random 943810 + 239038 239062 chr8 146364022 - 99519559 99519583 3632092
-24
-
-chain 1874 chr8_random 943810 + 311858 316542 chr8 146364022 - 99523087 99524010 1127459
-40	4555	794
-89
-
-chain 1842 chr8_random 943810 + 208242 208344 chr8 146364022 - 99510852 99510954 1122309
-102
-
-chain 1826 chr8_random 943810 + 333370 333404 chr8 146364022 - 102528310 102528344 12860155
-34
-
-chain 1699 chr8_random 943810 + 189740 189801 chr8 146364022 + 43830083 43830143 11700756
-13	1	0
-47
-
-chain 1671 chr8_random 943810 + 586860 586891 chr8 146364022 - 59596972 59597003 79385
-31
-
-chain 1671 chr8_random 943810 + 582366 582405 chr8 146364022 + 86778164 86778203 135745
-39
-
-chain 1614 chr8_random 943810 + 174855 174917 chr8 146364022 - 102535142 102535204 7562660
-62
-
-chain 1604 chr8_random 943810 + 210485 210541 chr8 146364022 - 99516819 99516875 24689779
-56
-
-chain 1577 chr8_random 943810 + 165529 165568 chr8 146364022 + 43833540 43833579 5487018
-39
-
-chain 1529 chr8_random 943810 + 199844 199893 chr8 146364022 - 99524132 99524181 16599934
-49
-
-chain 1430 chr8_random 943810 + 204007 204051 chr8 146364022 - 102535667 102535711 2444362
-44
-
-chain 1384 chr8_random 943810 + 331973 334317 chr8 146364022 - 99510969 99511436 2459541
-88	2124	247
-132
-
-chain 1361 chr8_random 943810 + 178432 178456 chr8 146364022 + 43821398 43821422 13532386
-24
-
-chain 1349 chr8_random 943810 + 282101 282136 chr8 146364022 + 43834762 43834797 3301014
-35
-
-chain 1325 chr8_random 943810 + 330748 334904 chr8 146364022 - 99513486 99513886 3761248
-39	3999	243
-118
-
-chain 1299 chr8_random 943810 + 216700 216875 chr8 146364022 - 99512515 99512690 2121346
-175
-
-chain 1278 chr8_random 943810 + 275077 288204 chr8 146364022 + 46842223 46845574 199410
-48	13052	3276
-27
-
-chain 1258 chr8_random 943810 + 272883 272996 chr8 146364022 + 43835974 43836087 2232086
-113
-
-chain 1256 chr8_random 943810 + 324880 325008 chr8 146364022 - 99513272 99513400 5381670
-128
-
-chain 1237 chr8_random 943810 + 196535 196612 chr8 146364022 - 99507792 99507869 15310375
-77
-
-chain 1235 chr8_random 943810 + 284286 284429 chr8 146364022 + 46839806 46839949 2930992
-143
-
-chain 1191 chr8_random 943810 + 293574 293786 chr8 146364022 + 46839704 46839915 1788603
-62	1	0
-149
-
-chain 1161 chr8_random 943810 + 294116 294212 chr8 146364022 + 43829899 43829995 1318655
-4	39	39
-53
-
-chain 1160 chr8_random 943810 + 183897 184027 chr8 146364022 + 43793197 43793327 2884372
-130
-
-chain 1130 chr8_random 943810 + 241032 308421 chr8 146364022 - 102539359 102541234 585349
-125	60736	871
-57	75	74
-53	2150	266
-105	4036	272
-52
-
-chain 1119 chr8_random 943810 + 229190 229281 chr8 146364022 - 99508572 99508663 1537143
-73	17	17
-1
-
-chain 1018 chr8_random 943810 + 315759 315867 chr8 146364022 - 102570622 102570730 1907772
-108
-
-chain 1013 chr8_random 943810 + 274298 274330 chr8 146364022 + 46839580 46839612 3252033
-32
-
-chain 968 chr8_random 943810 + 209695 209807 chr8 146364022 - 102537590 102537702 976902
-112
-
-chain 955 chr8_random 943810 + 319692 319755 chr8 146364022 - 102541225 102541288 3356813
-63
-
-chain 920 chr8_random 943810 + 258623 258775 chr8 146364022 + 46839508 46839659 980562
-59	25	24
-68
-
-chain 912 chr8_random 943810 + 192332 192490 chr8 146364022 + 46839260 46839417 3759652
-73	1	0
-84
-
-chain 891 chr8_random 943810 + 282553 282623 chr8 146364022 + 46843688 46843758 5243973
-70
-
-chain 873 chr8_random 943810 + 329911 329999 chr8 146364022 - 99523866 99523954 8492095
-88
-
-chain 847 chr8_random 943810 + 202393 202429 chr8 146364022 - 99516251 99516287 1768031
-36
-
-chain 808 chr8_random 943810 + 208103 208146 chr8 146364022 - 99506642 99506685 12166401
-43
-
-chain 772 chr8_random 943810 + 215530 215581 chr8 146364022 - 102536642 102536693 4621463
-51
-
-chain 770 chr8_random 943810 + 298794 298927 chr8 146364022 - 102529795 102529928 1833110
-38	53	53
-42
-
-chain 762 chr8_random 943810 + 250305 250368 chr8 146364022 + 43793197 43793260 2202736
-63
-
-chain 756 chr8_random 943810 + 175550 175595 chr8 146364022 - 102569149 102569194 15473865
-45
-
-chain 725 chr8_random 943810 + 227416 227458 chr8 146364022 - 102569147 102569189 2128584
-42
-
-chain 715 chr8_random 943810 + 237975 238010 chr8 146364022 - 99524101 99524136 9984625
-35
-
-chain 713 chr8_random 943810 + 336818 336983 chr8 146364022 - 102542943 102543107 12287033
-51	32	31
-82
-
-chain 659 chr8_random 943810 + 178382 178432 chr8 146364022 + 43825088 43825138 1126561
-50
-
-chain 630 chr8_random 943810 + 343296 343350 chr8 146364022 - 102532544 102532598 1087222
-54
-
-chain 622 chr8_random 943810 + 284683 284767 chr8 146364022 + 46845804 46845888 4299331
-84
-
-chain 618 chr8_random 943810 + 240201 240253 chr8 146364022 - 99520719 99520771 5790991
-52
-
-chain 609 chr8_random 943810 + 323290 333340 chr8 146364022 - 99511696 99512332 2037608
-32	1962	77
-33	7985	456
-38
-
-chain 511 chr8_random 943810 + 216312 216456 chr8 146364022 - 99508390 99508534 2116227
-83	23	23
-38
-
-chain 484 chr8_random 943810 + 208068 208103 chr8 146364022 - 102535970 102536005 2214348
-35
-
-chain 473 chr8_random 943810 + 323389 323449 chr8 146364022 - 102540821 102540881 1734527
-60
-
-chain 468 chr8_random 943810 + 200282 202177 chr8 146364022 - 99515228 99517906 493558
-37	1827	2610
-31
-
-chain 468 chr8_random 943810 + 309496 309560 chr8 146364022 - 99509535 99509598 902510
-13	1	0
-50
-
-chain 464 chr8_random 943810 + 238361 238411 chr8 146364022 - 102570011 102570061 2549299
-50
-
-chain 406 chr8_random 943810 + 336390 336452 chr8 146364022 - 99513496 99513558 3227798
-62
-
-chain 400 chr8_random 943810 + 198171 198198 chr8 146364022 - 99524348 99524375 19170252
-27
-
-chain 389 chr8_random 943810 + 239467 298039 chr8 146364022 - 99516251 99516834 914933
-36	19	19
-76	58363	374
-78
-
-chain 383 chr8_random 943810 + 268230 268298 chr8 146364022 + 43829500 43829568 7647204
-68
-
-chain 371 chr8_random 943810 + 289553 289594 chr8 146364022 + 43829105 43829146 1419836
-41
-
-chain 325 chr8_random 943810 + 171359 194889 chr8 146364022 - 102534570 102537063 1177879
-33	23458	2421
-39
-
-chain 321 chr8_random 943810 + 245198 245253 chr8 146364022 + 46850481 46850536 16403329
-55
-
-chain 316 chr8_random 943810 + 336558 336619 chr8 146364022 - 99513661 99513722 9588463
-61
-
-chain 316 chr8_random 943810 + 215939 215982 chr8 146364022 - 102570362 102570405 11794790
-43
-
-chain 307 chr8_random 943810 + 268331 268373 chr8 146364022 + 46843677 46843719 14936951
-42
-
-chain 302 chr8_random 943810 + 246654 246683 chr8 146364022 + 46846317 46846346 2597963
-29
-
-chain 277 chr8_random 943810 + 330681 336249 chr8 146364022 - 99513081 99513355 13257215
-37	5476	182
-55
-
-chain 224 chr8_random 943810 + 233016 233053 chr8 146364022 - 102535110 102535147 5909193
-37
-
-chain 219 chr8_random 943810 + 216875 216929 chr8 146364022 - 99508952 99509006 1250703
-54
-
-chain 217 chr8_random 943810 + 192086 192136 chr8 146364022 + 43793491 43793541 12267504
-50
-
-chain 176 chr8_random 943810 + 230251 230289 chr8 146364022 - 99522702 99522740 26486914
-38
-
-chain 171 chr8_random 943810 + 301863 301893 chr8 146364022 - 99524375 99524405 2607431
-30
-
-chain 128 chr8_random 943810 + 303580 303689 chr8 146364022 - 102542031 102542140 1606173
-109
-
-chain 117 chr8_random 943810 + 213542 213590 chr8 146364022 - 102569848 102569896 24793283
-48
-
-chain 107 chr8_random 943810 + 265719 265758 chr8 146364022 + 43793691 43793730 32387625
-39
-
-chain 103 chr8_random 943810 + 302985 303114 chr8 146364022 - 99516149 99516278 2070053
-129
-
-chain 102 chr8_random 943810 + 266041 266087 chr8 146364022 + 43794012 43794058 15664471
-46
-
-chain 87 chr8_random 943810 + 266314 266347 chr8 146364022 + 46839806 46839839 33038660
-33
-
-chain 11336435868 chr9 140273252 + 0 140273252 chr9 141213431 + 10000 141153431 13
-189075	1	1
-14	2	2
-39464594	50000	50000
-261110	50000	50000
-208233	50000	50000
-142805	50000	50000
-464507	50000	50000
-152873	50000	50000
-172579	50000	50000
-799200	0	4
-398958	50000	50000
-549743	50000	100000
-632871	50000	50000
-680077	50000	50000
-181647	50000	50000
-291910	50000	100000
-465318	50000	50000
-350909	50000	50000
-194609	50000	100000
-370335	0	176
-128583	50000	100000
-157546	18100000	18150000
-450681	50000	50000
-223855	50000	50000
-162441	50000	50000
-159539	50000	50000
-199148	50000	50000
-194491	50000	100000
-158462	50000	150000
-471702	50000	150000
-376183	50000	150000
-174765	50000	150000
-289439	50000	50000
-682157	50000	50000
-158187	50000	100000
-187806	50000	50000
-178933	50000	100000
-21507948	50000	100000
-85380	50000	150000
-834971	1	0
-39559293	100000	150000
-3818133	200000	50000
-2075804	30000	50000
-1936434
-
-chain 19053295 chr9_random 1146434 + 140076 853151 chr9 141213431 + 43822338 44639038 145
-1110	1	1
-47	1	0
-215	1	0
-468	9	9
-1934	0	1
-953	14319	26012
-970	11	11
-117	1	1
-57	1	1
-127	0	1
-1035	1	1
-123	1	1
-1418	29455	36221
-965	1	1
-33	5	5
-816	1	1
-38	1	1
-87	8	8
-588	6	6
-286	13	13
-967	6	6
-911	125	14857
-67	1	1
-18	1	1
-472	11	11
-269	7	0
-869	1	1
-23	1	1
-240	1	0
-456	1	1
-96	1	1
-247	22	22
-225	1	1
-13	0	4
-40	1	1
-211	13	29
-582	1	1
-22	4	0
-453	1	1
-37	1	1
-251	11	11
-87	1	1
-49	1	1
-95	11	11
-149	1	1
-31	1	1
-205	5	0
-1090	5	5
-89	1	1
-74	14	14
-83	1	1
-51	1	1
-594	1	3
-462	85	85
-635	50621	3293
-88	0	1
-148	18	18
-428	2	0
-5	2	0
-19	0	1
-43	1	1
-529	1	6
-77	1	1
-31	1	1
-39	0	5
-124	15	15
-51	1	1
-80	1	1
-103	1	1
-77	1	1
-147	1	1
-72	1	1
-95	10	10
-657	1	1
-57	1	1
-69	1	1
-32	1	1
-587	4	4
-298	14	14
-1505	10	8
-560	0	4
-171	1	1
-44	1	1
-211	1	1
-22	1	1
-649	1	1
-42	0	2
-96	8	8
-45	1	0
-195	402195	519766
-38949	0	176
-45847	1	0
-46124	1	0
-3889	0	1
-52224
-
-chain 10363290 chr9_random 1146434 + 903151 1075657 chr9_gl000199_random 169874 + 0 130000 308
-35955	882	0
-20	1020	0
-32	3062	0
-106	14	15
-100	9	7
-334	16	18
-121	1	0
-84	3469	73
-179	1193	0
-255	3064	0
-235	844	167
-325	2720	0
-211	25	25
-216	3639	67
-100	681	1
-58	5271	0
-71	36	36
-155	11817	855
-1017	1	0
-10599	1	1
-42	0	1
-8519	112	112
-9882	0	680
-263	8	8
-56	30	30
-206	865	183
-1131	1	0
-12309	16295	0
-37	2637	0
-463	15	15
-739	1	1
-64	1	1
-2323	1	0
-743	202	202
-245	2	0
-10307	33	32
-8496	15	15
-1065	3	3
-49	1	1
-67	1	1
-24	1	1
-150	15	15
-81	1112	7412
-104	5	5
-160	48	48
-156	31	31
-109	29	29
-32	0	337
-118	36	36
-108	21	21
-69	163	165
-105	29	29
-255	32	32
-176	46	46
-97	54	54
-158	110	5213
-54	5	5
-61	1	0
-12	66	578
-49	0	1
-256	0	1
-5	1	0
-110	0	507
-39	59	227
-44	1	0
-5	1	2
-13	268	611
-32	340	0
-2169	5	5
-109
-
-chain 8496666 chr9_random 1146434 + 526031 616031 chr9_gl000198_random 90085 + 0 90000 391
-90000
-
-chain 3482851 chr9_random 1146434 + 0 36148 chr9_gl000201_random 36148 + 0 36148 837
-36148
-
-chain 3114479 chr9_random 1146434 + 350153 383343 chr7 159138663 + 58020084 58054331 923
-5741	0	1
-5176	1	1
-36	1	1
-8401	0	3
-180	1	0
-1283	1	371
-2015	11	695
-10343
-
-chain 2652717 chr9_random 1146434 + 939453 971857 chr9_gl000199_random 169874 + 50544 169869 966
-78	104	103
-57	43	43
-41	0	1193
-212	20	20
-112	51	51
-93	1	0
-763	32	32
-929	0	85729
-2133	785	785
-1551	1	1
-38	0	1
-29	1	1
-1849	179	179
-1081	14	14
-98	255	255
-3064	235	235
-844	325	325
-2000	1	1
-55	1	1
-663	211	211
-25	216	216
-3639	100	100
-681	58	58
-5271	71	71
-36	155	155
-4203
-
-chain 864673 chr9_random 1146434 + 1126594 1146123 chr9 141213431 - 1097613 1113419 4959
-1953	6	5
-978	2409	6373
-1991	1	1
-30	1	1
-1102	7741	55
-57	1	1
-3259
-
-chain 850211 chr9_random 1146434 + 1025598 1042157 chr9_gl000199_random 169874 + 85137 125159 1202
-223	15	15
-69	106	782
-56	4	4
-103	0	1190
-57	51	51
-154	11	11
-103	0	1190
-303	94	5704
-122	20	700
-283	11	11
-564	0	6798
-68	31	31
-85	0	1
-80	48	48
-422	49	50
-604	27	3091
-147	0	4594
-563	468	470
-104	1	1
-65	1	1
-786	1	1
-26	4	4
-3436	346	0
-2356	158	158
-2985	37	37
-170	167	170
-910	11	11
-54
-
-chain 769263 chr9_random 1146434 + 86461 232520 chr9 141213431 + 40031497 40507253 306
-1287	1	1
-39	9090	8469
-1482	3	0
-72	22972	39210
-845	1	5
-1628	100	33581
-19	1	1
-708	1	1
-40	1	1
-1672	2596	163229
-3012	1	1
-27	1	0
-759	0	1
-98	72164	49914
-85	17764	159979
-3474	1	1
-50	1	1
-6064
-
-chain 759449 chr9_random 1146434 + 205961 214049 chr9 141213431 + 40301888 40309971 6546
-2149	0	1
-2715	38	32
-3186
-
-chain 584316 chr9_random 1146434 + 1135427 1141773 chr9 141213431 + 140095418 140108346 9081
-578	0	1
-958	0	1
-3002	120	6700
-1688
-
-chain 406492 chr9_random 1146434 + 174973 187473 chr9 141213431 - 97329171 97382324 1352
-1045	1	0
-610	3	3
-25	1	1
-707	0	1
-949	1	0
-476	1	1
-37	0	2
-115	22	0
-99	2	0
-19	0	1
-85	84	84
-391	0	2
-2020	102	40820
-178	0	5
-70	1	1
-108	1	0
-1683	56	22
-203	4	0
-53	0	3
-1920	1	0
-25	15	0
-171	0	4
-991	1	0
-102	1	1
-39	1	0
-81
-
-chain 392431 chr9_random 1146434 + 102229 150933 chr9 141213431 - 100800050 101111299 1649
-1200	31	31
-61	100	87
-1550	13066	115954
-174	1	7
-2845	28138	189099
-40	1462	165
-36
-
-chain 384690 chr9_random 1146434 + 98535 256322 chr9 141213431 - 100787713 101169878 613
-1160	1	0
-743	100	2055
-1590	33793	2374
-3943	1	0
-110	10986	2654
-28	3892	11
-65	38	37
-101	8010	603
-1627	0	1
-4154	127	18597
-1903	17	17
-1098	1	0
-907	16	6
-635	1	0
-110	11	10
-1170	39276	55950
-254	1	1
-16	1	1
-222	1	1
-23	0	3
-11	1	1
-963	0	1
-1311	1	1
-22	1	1
-1083	0	2
-4770	9790	219711
-142	1	1
-35	1	1
-191	1	1
-48	1	1
-4295	1	0
-1323	1	1
-26	1	0
-2991	1	0
-1653	100	28511
-184	1	1
-25	1	1
-2332	2	0
-2424	1	1
-18	1	1
-1612	0	2
-1973	2	0
-4314
-
-chain 222862 chr9_random 1146434 + 974475 976909 chr9_gl000199_random 169874 - 29206 35723 496317
-103	0	512
-103	0	2379
-1951	0	1192
-277
-
-chain 216950 chr9_random 1146434 + 179171 191499 chr9 141213431 - 75591738 75613431 4354
-84	8327	17685
-315	1	1
-43	1	1
-565	1	1
-45	1	1
-144	1	1
-47	3	3
-216	4	8
-856	15	15
-173	1	1
-23	0	1
-306	1	1
-34	1	2
-855	1	1
-41	1	1
-59	0	1
-60	1	1
-46	1	1
-55
-
-chain 213582 chr9_random 1146434 + 1129631 1131840 chr9 141213431 - 1091833 1094042 537694
-2209
-
-chain 165378 chr9_random 1146434 + 971957 973731 chrX 155270560 + 21244335 21246110 770883
-1088	0	1
-111	1	1
-46	3	3
-525
-
-chain 132596 chr9_random 1146434 + 92033 271291 chr9 141213431 - 75460140 75627580 890
-687	15	5
-714	42447	12782
-26	11947	6649
-27	11	12
-38	1490	2
-104	2	0
-98	117515	142147
-548	14	14
-760	1	1
-15	5	5
-244	0	8
-225	1	1
-25	1	1
-184	1	1
-24	1	1
-112	1	1
-49	1	1
-657	0	4
-26	1	1
-142	1	1
-117	1	1
-521	1	1
-30	1	1
-427
-
-chain 126182 chr9_random 1146434 + 264182 265594 chr9 141213431 + 41417376 41418784 8289
-408	11	11
-453	3	0
-470	1	0
-66
-
-chain 121265 chr9_random 1146434 + 153981 183865 chr9 141213431 + 40369543 40485128 5651
-820	1	0
-80	65	65
-38	101	101
-1814	1	1
-19	1	1
-2113	24775	110477
-56
-
-chain 112452 chr9_random 1146434 + 977951 979143 chr9 141213431 + 41554070 41555262 1142654
-1192
-
-chain 111666 chr9_random 1146434 + 115028 116206 chr9 141213431 + 38976673 38977851 1144814
-1178
-
-chain 91839 chr9_random 1146434 + 95026 96000 chr9 141213431 - 97340505 97341479 1389514
-974
-
-chain 86695 chr9_random 1146434 + 89274 94894 chr9 141213431 + 40421854 40482922 755289
-656	0	1
-294	1	0
-357	1	1
-58	1	1
-181	2726	58174
-1345
-
-chain 85848 chr9_random 1146434 + 116324 118085 chr9 141213431 + 40126032 40127795 187229
-1300	0	2
-247	1	1
-31	1	1
-181
-
-chain 83527 chr9_random 1146434 + 105271 111078 chr9 141213431 + 43838264 43842306 8535
-1025	1	1
-44	1	1
-374	2077	318
-609	3	0
-643	18	19
-121	15	16
-135	5	0
-736
-
-chain 82351 chr9_random 1146434 + 265594 267154 chr9 141213431 - 97363431 97364991 1727
-341	2	2
-20	1	1
-738	1	1
-34	1	1
-206	1	1
-40	1	1
-174
-
-chain 74906 chr9_random 1146434 + 107880 108681 chr9 141213431 + 40288016 40288817 1344818
-46	1	0
-553	0	1
-201
-
-chain 73427 chr9_random 1146434 + 106816 115028 chr9 141213431 - 93902441 93905998 1707
-229	0	1
-500	19	19
-145	5760	1098
-49	0	1
-9	0	1
-188	1	1
-43	1	1
-243	1	1
-41	1	1
-206	1	1
-25	1	1
-443	0	1
-171	0	3
-135
-
-chain 72594 chr9_random 1146434 + 977068 977842 chr9 141213431 - 99740263 99741035 1743552
-651	1	0
-45	1	0
-76
-
-chain 68316 chr9_random 1146434 + 87923 91873 chr9 141213431 - 101134923 101183249 1049825
-372	0	1
-115	1	1
-37	1	1
-725	1749	46124
-950
-
-chain 61838 chr9_random 1146434 + 1042331 1042988 chr9_gl000199_random 169874 - 40496 41153 2045151
-657
-
-chain 55013 chr9_random 1146434 + 1075993 1076574 chr2 243199373 - 242829160 242829741 2308873
-581
-
-chain 54512 chr9_random 1146434 + 144930 149178 chr9 141213431 - 75605255 75609502 8620
-250	1	1
-26	1	1
-262	14	19
-1397	10	9
-876	1	0
-98	79	75
-65	1	1
-772	1	1
-31	1	1
-235	1	1
-74	1	1
-51
-
-chain 52053 chr9_random 1146434 + 149316 153855 chr9 141213431 + 40375457 40380000 99648
-79	244	244
-76	2437	2440
-75	10	10
-247	0	1
-19	1304	1304
-48
-
-chain 51431 chr9_random 1146434 + 126523 128919 chr9 141213431 - 101152632 101155028 6098
-2396
-
-chain 48062 chr9_random 1146434 + 390785 391322 chr5 180915260 - 163073999 163074536 2667488
-241	1	1
-201	3	3
-91
-
-chain 43629 chr9_random 1146434 + 1073062 1075987 chr9_gl000199_random 169874 + 35053 37976 298767
-312	2456	2456
-1	2	0
-78	21	21
-55
-
-chain 37453 chr9_random 1146434 + 1024767 1030521 chr9_gl000199_random 169874 + 88172 123905 8301
-52	0	3738
-40	1994	12406
-94	1068	11110
-31	165	2038
-48	1933	5847
-329
-
-chain 33524 chr9_random 1146434 + 133017 135796 chr9 141213431 + 39163384 39166153 115831
-53	1	1
-307	5	4
-44	1	1
-406	1	1
-21	5	0
-43	1	1
-177	1	1
-25	1	0
-31	1	1
-137	5	5
-20	1	1
-52	1	1
-27	1	1
-233	1	1
-20	1	1
-394	3	0
-363	1	1
-24	1	1
-370
-
-chain 29196 chr9_random 1146434 + 343146 344485 chr3 198022430 + 156000638 156001989 5034584
-50	1	0
-56	1	1
-104	128	140
-64	838	839
-97
-
-chain 28265 chr9_random 1146434 + 96095 96747 chr9 141213431 - 93903474 93904131 1828707
-74	0	10
-511	4	0
-47	1	0
-15
-
-chain 26156 chr9_random 1146434 + 111189 113362 chr9 141213431 - 102220148 102222323 47568
-1400	0	1
-94	5	6
-674
-
-chain 25868 chr9_random 1146434 + 149715 153807 chr9 141213431 - 93950637 93954729 91748
-181	1	1
-57	1	1
-353	15	15
-330	1	0
-22	1	1
-220	93	93
-114	0	17
-104	9	9
-290	2	0
-293	1	1
-20	1	1
-328	351	343
-127	1	1
-76	1	1
-331	4	0
-52	1	1
-17	1	1
-106	5	0
-146	1	1
-38	0	3
-7	1	0
-116	3	3
-16	1	1
-168	0	1
-85
-
-chain 25003 chr9_random 1146434 + 1069304 1075830 chr9_gl000199_random 169874 + 56286 59580 21268
-305	7	7
-77	487	487
-25	288	288
-36	198	198
-163	105	105
-29	463	463
-46	1256	67
-82	36	36
-95	32	32
-28	2595	552
-103	9	9
-61
-
-chain 23281 chr9_random 1146434 + 1028681 1035309 chr9_gl000199_random 169874 + 97567 114227 7110
-30	1360	6799
-121	342	0
-5	4424	9363
-103	237	233
-6
-
-chain 21805 chr9_random 1146434 + 1135081 1135321 chr9 141213431 + 140101239 140101479 9135145
-197	1	1
-42
-
-chain 21533 chr9_random 1146434 + 1010735 1043373 chr9_gl000199_random 169874 + 61213 69988 6310
-337	14018	4703
-439	42	42
-27	307	307
-106	220	220
-51	16938	2390
-153
-
-chain 19014 chr9_random 1146434 + 335566 335883 chr16 90354753 - 56512811 56513131 11268597
-170	97	100
-50
-
-chain 18803 chr9_random 1146434 + 86148 86348 chr9 141213431 - 100705477 100705677 11441237
-200
-
-chain 13349 chr9_random 1146434 + 1068589 1070018 chr9_gl000199_random 169874 + 79052 79803 7749
-23	14	14
-253	37	37
-60	717	39
-8	269	269
-48
-
-chain 13149 chr9_random 1146434 + 410938 411078 chr8 146364022 + 38639711 38639851 17290853
-140
-
-chain 12972 chr9_random 1146434 + 332343 332481 chr7 159138663 + 61759398 61759536 17535033
-138
-
-chain 12821 chr9_random 1146434 + 388858 389014 chr15 102531392 + 80798356 80798512 17757829
-81	12	12
-63
-
-chain 11442 chr9_random 1146434 + 388166 388417 chr12 133851895 + 34836761 34837526 19956621
-81	109	623
-61
-
-chain 11149 chr9_random 1146434 + 343358 343713 chr3 198022430 - 62479553 62479920 5356830
-1	103	115
-24	134	134
-93
-
-chain 11085 chr9_random 1146434 + 468603 468722 chr9 141213431 + 42720405 42720524 20596057
-119
-
-chain 9550 chr9_random 1146434 + 389696 390760 chrX 155270560 + 61752907 61753125 23891795
-65	939	93
-60
-
-chain 9178 chr9_random 1146434 + 345818 345932 chr16 90354753 + 32819577 32819691 24666411
-52	7	7
-55
-
-chain 9128 chr9_random 1146434 + 321692 322933 chr7 159138663 + 61799163 61799701 24755828
-61	1115	412
-65
-
-chain 9086 chr9_random 1146434 + 338884 339289 chr16 90354753 + 32789437 32789842 24819157
-53	289	289
-63
-
-chain 9023 chr9_random 1146434 + 387021 388166 chr7 159138663 + 61404533 61405164 23790101
-52	1085	571
-8
-
-chain 7872 chr9_random 1146434 + 1069035 1072121 chr9_gl000199_random 169874 + 119465 157584 536281
-72	46	46
-97	2835	37868
-36
-
-chain 7579 chr9_random 1146434 + 402601 403961 chr3 198022430 - 107545066 107546932 27123369
-31	1026	0
-52	201	1733
-50
-
-chain 7458 chr9_random 1146434 + 343360 343449 chr6 171115067 + 69499143 69499232 6836024
-89
-
-chain 6713 chr9_random 1146434 + 425056 425127 chr16 90354753 + 46455806 46455877 28826250
-71
-
-chain 6541 chr9_random 1146434 + 468921 468991 chr7 159138663 + 61361207 61361277 29216706
-70
-
-chain 6486 chr9_random 1146434 + 330636 330705 chr10 135534747 + 42383267 42383336 29375264
-69
-
-chain 6456 chr9_random 1146434 + 411427 412083 chr11 135006516 + 48877623 48879132 29439180
-48	554	1407
-54
-
-chain 6295 chr9_random 1146434 + 404771 404838 chr8 146364022 + 43770407 43770474 29850106
-67
-
-chain 6049 chr9_random 1146434 + 414120 414184 chr7 159138663 - 101095351 101095415 30492982
-64
-
-chain 6040 chr9_random 1146434 + 465963 466027 chr6 171115067 + 83274875 83274939 30512451
-64
-
-chain 5969 chr9_random 1146434 + 389015 389089 chrY 59373566 - 43064540 43064609 20514560
-61	5	0
-8
-
-chain 5636 chr9_random 1146434 + 406636 407740 chr8 146364022 + 43770397 43770476 31630565
-28	1025	0
-51
-
-chain 5631 chr9_random 1146434 + 426803 426863 chr10 135534747 + 42387748 42387808 31636152
-60
-
-chain 5540 chr9_random 1146434 + 419067 419126 chr7 159138663 + 61079182 61079241 31906304
-59
-
-chain 5476 chr9_random 1146434 + 398987 399045 chr12 133851895 + 34839855 34839913 32105830
-58
-
-chain 5376 chr9_random 1146434 + 415322 415379 chr11 135006516 - 86268315 86268372 32415872
-57
-
-chain 5358 chr9_random 1146434 + 413960 414017 chrY 59373566 - 49305277 49305334 32458256
-57
-
-chain 5349 chr9_random 1146434 + 411179 411236 chr7 159138663 + 91218545 91218602 32466470
-57
-
-chain 5349 chr9_random 1146434 + 417041 417098 chr11 135006516 - 84295010 84295067 32466776
-57
-
-chain 5305 chr9_random 1146434 + 979284 979471 chr9_gl000199_random 169874 + 100510 100697 1541
-187
-
-chain 5294 chr9_random 1146434 + 393589 393645 chr19_gl000208_random 92689 - 78786 78842 32648958
-56
-
-chain 5285 chr9_random 1146434 + 407829 407885 chr16 90354753 + 34022252 34022308 32672407
-56
-
-chain 5248 chr9_random 1146434 + 345095 345150 chr3 198022430 + 72765342 72765397 32777800
-55
-
-chain 5194 chr9_random 1146434 + 325928 325983 chr16 90354753 + 46454212 46454267 32965981
-55
-
-chain 5076 chr9_random 1146434 + 385523 385577 chr9 141213431 - 74211269 74211323 33342253
-54
-
-chain 5012 chr9_random 1146434 + 398477 398530 chr3 198022430 - 107545544 107545597 33565319
-53
-
-chain 4985 chr9_random 1146434 + 417987 418040 chr8 146364022 + 43776134 43776187 33649135
-53
-
-chain 4821 chr9_random 1146434 + 397137 397188 chrX 155270560 + 61817502 61817553 34214385
-51
-
-chain 4794 chr9_random 1146434 + 414576 414627 chr11 135006516 + 50778923 50778974 34325073
-51
-
-chain 4794 chr9_random 1146434 + 397714 397765 chr19_gl000208_random 92689 - 71810 71861 34325191
-51
-
-chain 4730 chr9_random 1146434 + 411917 411967 chr21 48129895 - 33764186 33764236 34527656
-50
-
-chain 4709 chr9_random 1146434 + 107713 107880 chr9 141213431 + 40326898 40327067 460940
-64	0	2
-103
-
-chain 4703 chr9_random 1146434 + 396620 396670 chr11 135006516 + 50701175 50701225 34648839
-50
-
-chain 4594 chr9_random 1146434 + 460317 460366 chr1 249250621 + 72586197 72586246 34758860
-49
-
-chain 4154 chr9_random 1146434 + 389765 389825 chrX 155270560 + 61859291 61859351 24051909
-60
-
-chain 4125 chr9_random 1146434 + 1047887 1048034 chr9_gl000199_random 169874 + 145761 145908 266403
-21	18	18
-108
-
-chain 4032 chr9_random 1146434 + 1010207 1010501 chr9_gl000199_random 169874 + 46738 47032 105345
-133	51	51
-110
-
-chain 3744 chr9_random 1146434 + 974418 974475 chr9_gl000199_random 169874 - 111819 111876 792102
-57
-
-chain 3426 chr9_random 1146434 + 939387 939437 chr9_gl000199_random 169874 + 161370 161420 23133078
-50
-
-chain 3397 chr9_random 1146434 + 1069115 1069304 chr9_gl000199_random 169874 + 57287 57476 721888
-38	97	97
-54
-
-chain 3297 chr9_random 1146434 + 1037665 1037723 chr9_gl000199_random 169874 + 108413 108471 1099981
-5	32	32
-21
-
-chain 2900 chr9_random 1146434 + 210827 210859 chr9 141213431 + 43889710 43889742 6957
-32
-
-chain 2688 chr9_random 1146434 + 1042157 1042279 chr9_gl000199_random 169874 + 112227 112349 8300
-65	9	9
-48
-
-chain 2652 chr9_random 1146434 + 999650 1043482 chr9_gl000199_random 169874 + 41812 46278 8409
-112	43376	4009
-54	0	1
-28	153	153
-109
-
-chain 2438 chr9_random 1146434 + 1025529 1025571 chr9_gl000199_random 169874 + 134052 134094 269933
-42
-
-chain 2404 chr9_random 1146434 + 153855 153881 chr9 141213431 + 40071265 40071291 103174
-26
-
-chain 2298 chr9_random 1146434 + 1010672 1010735 chr9_gl000199_random 169874 + 66766 66829 8935
-63
-
-chain 2164 chr9_random 1146434 + 1010368 1010391 chr9 141213431 - 71502272 71502295 32168220
-23
-
-chain 2160 chr9_random 1146434 + 388789 388840 chr7 159138663 - 101569537 101569588 23945255
-51
-
-chain 2026 chr9_random 1146434 + 343746 343819 chr10 135534747 + 18324071 18324144 14357746
-73
-
-chain 1834 chr9_random 1146434 + 1010501 1010672 chr9_gl000199_random 169874 + 60299 60470 7461
-171
-
-chain 1808 chr9_random 1146434 + 391322 391360 chr7 159138663 - 47529927 47529965 6263864
-38
-
-chain 1777 chr9_random 1146434 + 343550 344817 chr22 51304566 + 35077657 35078810 5733588
-48	1167	1053
-52
-
-chain 1529 chr9_random 1146434 + 263922 264091 chr9 141213431 + 65673675 65673833 515
-62	10	0
-17	1	0
-14	2	2
-63
-
-chain 1325 chr9_random 1146434 + 1037723 1037780 chr9_gl000199_random 169874 + 96057 96114 245438
-57
-
-chain 1237 chr9_random 1146434 + 1024624 1024767 chr9_gl000199_random 169874 + 49580 49723 8604
-143
-
-chain 1217 chr9_random 1146434 + 1071842 1072151 chr9_gl000199_random 169874 + 48108 48417 165690
-30	6	6
-74	169	169
-30
-
-chain 897 chr9_random 1146434 + 1035274 1035303 chr9_gl000199_random 169874 + 108574 108603 711169
-29
-
-chain 881 chr9_random 1146434 + 345308 345393 chrX 155270560 - 77826120 77826205 8910963
-85
-
-chain 812 chr9_random 1146434 + 344331 344387 chr9 141213431 + 18649465 18649521 20542621
-56
-
-chain 538 chr9_random 1146434 + 1029334 1029359 chr9_gl000199_random 169874 + 75943 75968 9317
-25
-
-chain 480 chr9_random 1146434 + 344828 344880 chr4 191154276 - 62643619 62643671 15050009
-52
-
-chain 461 chr9_random 1146434 + 96747 96777 chr9 141213431 + 38980922 38980952 1279
-30
-
-chain 364 chr9_random 1146434 + 1025018 1025062 chr9_gl000199_random 169874 + 64308 64352 115390
-44
-
-chain 296 chr9_random 1146434 + 1009971 1010001 chr9_gl000199_random 169874 + 44634 44664 18919
-30
-
-chain 288 chr9_random 1146434 + 974120 974172 chr9_gl000199_random 169874 + 44920 44972 1936043
-52
-
-chain 260 chr9_random 1146434 + 394227 394279 chr11 135006516 + 50701175 50701227 28339537
-52
-
-chain 210 chr9_random 1146434 + 1025062 1025090 chr9_gl000199_random 169874 + 71670 71699 216729
-6	0	1
-22
-
-chain 209 chr9_random 1146434 + 388033 388083 chr11 135006516 - 84294197 84294247 27927923
-50
-
-chain 152 chr9_random 1146434 + 393023 393074 chr20 63025520 + 26259164 26259215 28112557
-51
-
-chain 86 chr9_random 1146434 + 405210 405252 chr3 198022430 - 107550280 107550322 32195393
-42
-
-chain 79 chr9_random 1146434 + 392892 392941 chr11 135006516 + 50661000 50661049 27948217
-49
-
-chain 1574309 chrM 16571 + 0 16571 chrM 16571 + 0 16571 1567
-16571
-
-chain 14267288654 chrX 154913754 + 0 154913754 chrX 155270560 + 60000 155260560 8
-34821	50000	50000
-86563	30000	50000
-766173	50000	50000
-36556	50000	50000
-80121	90000	50000
-754004	100000	50000
-5505644	0	50000
-3064785	0	50079
-26309510	25000	50000
-201175	0	8
-7417	2	0
-53136	0	8
-3076	12	0
-21092	2	0
-60831	0	2
-57728	20	0
-54336	1	0
-31676	4	0
-9986	0	4
-12109	4	0
-11227342	2000	0
-354815	50000	50000
-77401	1	1
-17	1	1
-94	3	0
-266	10	10
-113	1	1
-21	1	1
-5401	5	0
-4970	2	0
-33	6	0
-3221	1	5
-6456	0	1
-1476	5	5
-2100	1	1
-40	1	1
-1316	1	0
-2446	0	1
-1589	17	15
-11171	0	1
-2639	0	1
-5190	4	0
-78	0	8
-5087	1	0
-2663	0	1
-9149	8	7
-1851	1	0
-9081	1	0
-7249	0	25
-199	2	0
-12	2	0
-16	0	209
-37	0	20
-2536	1	0
-1394	6	0
-12550	42	0
-821	0	4
-30579	0	1
-3710	0	4
-3638	0	1
-11945	1	0
-20204	1	0
-4171	0	8
-5680	0	1
-23827	2	0
-54817	1	0
-657	1	0
-342931	180000	50000
-2052068	1	27
-5375	0	2
-46	2	0
-6489	1	0
-7175	0	2
-1239	0	2
-4302	4	0
-27253	1	0
-4244	2	0
-717	2	0
-261	6	0
-26074	0	1
-236464	50000	50000
-6136098	3000000	3100000
-13518993	0	1
-449	0	1
-4533	0	4
-757	0	1
-1102	25	26
-107	0	2
-3470	1	0
-1108	0	1
-4775	0	1
-8628	1	1
-46	1	1
-1072	1	1
-44	1	1
-292	5	4
-9091	4	4
-2218	4	4
-705	1	5
-452	1	0
-88	32	32
-212	1	0
-1801	1	7
-3960	0	1
-2007	0	1
-1979	38	38
-1320	0	1
-2093	0	1
-403	0	310
-6134	1	1
-36	1	1
-1697	0	1
-97	0	13
-7624	1	1
-19	1	1
-6933	0	1
-779	7	7
-721	1	1
-43	1	1
-1626	1	0
-6146	2	0
-150	1	1
-47	1	1
-2172	2	0
-398	1	1
-31	1	1
-1149	2	2
-183	16	16
-1663	1	1
-18	1	1
-2105	10	11
-1409	1	1
-33	1	1
-1753	0	1
-408	1	0
-1916	0	1
-477	37	37
-1415	12	0
-3799	17	17
-2921	1	0
-1811	33	33
-2753	2	0
-486	0	6
-1388	1	1
-44	1	1
-186	1	1
-46	1	1
-3037	1	0
-2301	3	0
-3876	1	1
-22	1	1
-1724	0	1
-3733	0	1
-627	0	1
-250	1	0
-194	1	1
-26	1	1
-20797	10	10
-2445	1	0
-1733	0	2
-1001	12	0
-4394	9	9
-4052	10	9
-670	1	1
-97	6	0
-25	1486	1188
-10	3	2
-28	41	41
-28	2	3
-10	126	1058
-11	1051	417
-25	0	6
-18	1	1
-62	17	17
-77	0	1
-1009	41	41
-3899	10	10
-4690	0	1
-7343	1	0
-1248	1	0
-1259	1	0
-1345	0	4
-1534	1	0
-3797	16	16
-807	1	0
-2427	1	0
-48	0	1
-287	1	0
-611353	0	1
-1041	6	0
-371	0	1
-227	0	1
-2806	1	0
-36	1	1
-234	1	1
-23	1	1
-584	1	0
-22241	1	1
-65	1	1
-4605	0	1
-2326	0	20
-2130	0	1
-6170	9	13
-10665	0	1
-14631	1	0
-5359	4	0
-4004	1	0
-3182	11	0
-3897	14	16
-2551	1	0
-1824	1	0
-5274	1	1
-41	1	1
-4309	0	1
-3827	0	1
-4594	0	1
-65	1	1
-1170	1	1
-42	4	4
-214	0	1
-5228	0	1
-553	1	0
-5528	7	7
-735	14	14
-2861	1	0
-156	0	2
-6183	42	42
-2595	1	1
-41	1	1
-472	1	1
-65	0	1
-8	1	1
-1162	1	0
-565	1	1
-48	1	1
-536	2	1
-766	0	2
-4520	0	1
-1574	1	0
-503	0	1
-2558	0	1
-250061	7	7
-9650	18	18
-3208	1	1
-25	0	1
-744	2	0
-2994	1	1
-33	1	1
-1331	1	0
-2042	6	17
-1292	1	1
-35	1	1
-2485	1	1
-35	1	1
-17284	1	0
-7	7	1
-670	0	4
-429	0	1
-4736	1	0
-3849	0	1
-6745	16	16
-2344	1	1
-41	1	1
-4459	9	9
-3449	0	1
-3876	1	1
-75	1	1
-1429	7	7
-11126	26	26
-781	1	1
-28	1	1
-409	12	13
-1223	12	12
-5354	0	1
-1255	0	6
-851	65	65
-126	1	1
-47	5	5
-5931	4	0
-420	0	1
-2949	0	6
-193	324	324
-6740	1	3
-1074	1	0
-2465	1	1
-40	1	1
-640	2	0
-550	1	1
-32	1	1
-4096	1	1
-29	1	1
-949	6	6
-6258	1	0
-3957	1	0
-19608	1	1
-48	1	1
-234	0	1
-13246	13	13
-4651	321	0
-2617	1	0
-4553	0	3
-491	0	6
-7496	1	1
-9	0	10
-77	0	4
-3314	1	1
-32	1	1
-5217	1	0
-1500	17	17
-2023	1	0
-2425	0	18
-3110	8	8
-3248	1	0
-1946	1	1
-48	1	1
-9620	0	2
-31242	20000	50000
-36075685	3	0
-36004	1	1
-27	1	1
-5196	0	1
-293	0	2
-13307	0	3
-2420	6	0
-1863	0	2
-2911	0	1
-3233	2	0
-66	1	0
-2376	10	0
-4893	1	0
-745	1	0
-3897	0	13
-3835	1	1
-55	1	1
-538	1	1
-48	4	1
-20	0	2
-279	0	2
-33	1	1
-48	1	0
-387	8	8
-692	0	1
-375	3	0
-383	1	1
-18	1	1
-1289	1	1
-29	1	1
-12332	0	331
-856	4	0
-48	0	4
-8716	0	5
-130	2	0
-3001	0	1
-1332	8	5
-23273	0	1
-30174	27	39
-337	0	3
-2838	1	0
-1614	0	9
-313	0	1
-83	4	0
-172	1	1
-25	1	1
-4912	0	39
-1863	0	1
-2931	1	0
-3134	0	3
-390880	0	1
-7199	1	0
-305	2	0
-1811	2	0
-5449	0	3
-7443	0	2
-2171	1	1
-27	1	1
-2668	0	2
-2180	0	1
-1170	0	9
-1450	16	16
-3080	1	0
-920	18	18
-10219	1	0
-678	1	1
-28	1	1
-698	1	0
-112	1	0
-1831	3	0
-14327	2	0
-2087	10	10
-150	0	3
-380	1	1
-28	1	1
-1265	19	21
-7184	3	2
-4225	9	14
-1002	0	1
-3855	4	0
-2534	1	1
-30	1	1
-794	1	0
-25	1	1
-76140	70000	50000
-1432750	4799	0
-8	2973	0
-681864	20000	50000
-4278742	0	56347
-12021233	9	9
-1775	1	0
-1468	1	1
-51	16	14
-6	0	1
-6	0	1
-11	4	5
-7	0	1
-4	0	1
-75	1	2
-26	1	0
-16	0	1
-9	0	1
-19	0	2
-22	1	0
-9	0	1
-5	1	3
-14	6	7
-38	1	0
-26	1	1
-62	0	1
-38	1	1
-1687	0	1
-54	0	1
-8528	0	1
-2722	0	1
-6240	0	1
-33	0	1
-121285	1	0
-6	0	1
-35	1	0
-1381	0	1
-5368	1	0
-3079	0	1
-10863441	0	4
-1799	1	1
-24	1	1
-334	1	0
-4960	17	0
-1160	1	1
-34	1	1
-6153	3	0
-1346	4	0
-103	4	0
-2835	12	12
-304	0	16
-719	0	1
-3286	1	0
-10182	0	9
-804	1	1
-28	1	1
-749	0	1
-3387	1	1
-47	1	1
-482	0	1
-455	15	15
-719	1	1
-18	1	1
-2074	0	1
-1348	0	4
-3928	1	1
-18	1	1
-907	0	1
-2972	2	0
-115	1	1
-37	1	1
-4428	1	0
-1120	1	0
-4055	5	0
-2753	18	18
-158	3	0
-3590	1	1
-47	1	1
-62	1	0
-947	1	1
-45	1	1
-1639	1	1
-32	1	1
-1076	0	1
-3996	4	0
-7965	1	0
-1733	1	0
-1451	0	2
-617	1	0
-4375	0	1
-2194	64	63
-301	1	1
-27	1	1
-6661	1	1
-79	1	1
-1495	1	0
-499	1	1
-37	2	2
-968	1	0
-34	1	1
-6337	1	1
-18	1	1
-8162	1	1
-22	5	0
-9274	1	0
-6017	5	5
-3872	8	0
-5421	1	0
-532	6	7
-5673	0	4
-1542	4	0
-890	3	1
-2561	1	0
-1692	1	0
-1142	1	1
-32	1	1
-503	2	1
-123	1	1
-75	1	1
-2322	1	0
-201	1	0
-40	3	3
-149	3	0
-1441	1	1
-40	1	1
-159	2	0
-1278	1	1
-33	1	1
-221	0	1
-31	1	1
-161	9	10
-1890	0	1
-132	1	1
-37	1	1
-514	17	23
-1373	4	0
-907	1	1
-15	1	1
-714	1	1
-18	0	1
-10	1	1
-55	1	1
-24	1	1
-1038	2	0
-95	1	5
-1094	1	1
-170	1	1
-844	0	3
-369	1	1
-39	1	1
-650	1	1
-41	1	1
-176	12	12
-688	1	0
-7640	4	0
-2650	1	1
-28	0	4
-44	1	1
-728	8	0
-2196	0	1
-13466	0	1
-3510	0	2
-2147	1	1
-44	0	3
-1320	11	11
-210	0	4
-105	1	0
-3239	0	1
-1496	142	153
-2391	1	1
-39	0	2
-438	4	0
-2272	8	0
-6865	0	3
-7183	0	1
-5104	0	3
-182	1	0
-3131	1	1
-31	1	0
-14	1	1
-59	1	0
-373	1	1
-42	1	1
-235	13	13
-1608	0	5
-152	1	1
-106	1	1
-783	34	34
-1633	1	1
-29	3	0
-821	1	1
-24	1	1
-1178	1	1
-33	1	1
-328	1	1
-27	1	1
-5682	16	13
-146398	30000	50000
-59809	0	2
-3389	1	1
-37	1	1
-11606	0	1
-1597	0	1
-618	1	1
-47	1	1
-2698	0	1
-826	5	5
-33	0	2
-2560	0	14
-98	0	3
-1287	0	1
-7600	0	1
-9894	0	8
-7160	0	1
-32	1	1
-1698	0	1
-754	2	0
-6787	0	1
-584	0	2
-1107	1	1
-40	1	1
-365	1	1
-35	1	1
-399	0	8
-11444	0	1
-1973	0	1
-1200	0	1
-716	1	1
-25	1	1
-1570	0	2
-433	2	0
-905	0	2
-94	1	1
-28	1	1
-2490	18	18
-5054	9	1
-2184	0	2
-2955	23	21
-431	49	49
-314	1	0
-1563	1	1
-20	1	1
-1632	11	0
-1671	2	0
-1527	0	1
-676	1	1
-29	1	1
-1245	1	1
-34	0	1
-1203	22	30
-1934	1	0
-3421	0	2
-17	1	1
-774	0	30
-97	6	6
-59	12	26
-840	1	1
-19	1	1
-2036	27	53
-683	30	30
-401	0	1
-25	1	1
-381	16	0
-159	1	1
-17	1	1
-1150	0	4
-700	1	0
-29	0	2
-409	1	1
-49	1	1
-1240	1	1
-37	3	3
-2248	0	1
-1828	0	1
-1997	1	5
-4640	4	4
-4555	2	0
-150	52	0
-618	2	2
-16	1	1
-83	0	22
-56	1	57
-2531	8	0
-4250	17	17
-2203	4	0
-1665	10	0
-415	0	2
-393	0	1
-15728	1	0
-158	0	4
-82	0	14
-543	1	1
-42	1	1
-3261	18	18
-139	1	1
-37	1	1
-410	1	1
-18	1	1
-5405	0	1
-1104	1	1
-53	1	1
-392	1	1
-55	3	3
-3352	0	9
-692	106	52
-27	4	0
-13	1	3
-14	88	0
-61	2	0
-8931	0	1
-6692	2	1
-253	19	19
-869	2	0
-196	0	2
-389	1	1
-30	1	1
-949	1	0
-6057	3	0
-4741	0	1
-7689	0	2
-2046	18	18
-215	1	0
-46885	0	2
-24138	0	2
-4037	0	1
-4047693	0	1
-9545	2	0
-11590	0	4
-1698	3	1
-18923	0	4
-1806	1	1
-44	1	1
-2581	2	0
-10620	1	0
-3804	1	0
-339	2	0
-476	1	0
-5861	5	8
-109	14	0
-901	1	1
-19	1	1
-45	0	2
-1736	0	1
-6625	0	2
-7812	0	4
-7678	0	2
-5086	3	8
-4170	1	0
-1671	0	6
-6333	16	0
-902	1	1
-44	1	1
-384	6	0
-23181	4	4
-214	0	2
-8958	4	0
-220	1	1
-49	1	1
-2783	1	0
-2641	1	0
-136	20	20
-1279	1	0
-3924	6	6
-13054	0	6
-8954	13	0
-4128	0	2
-2269	0	1
-16258	2	0
-30076	1	1
-49	1	1
-102	0	1
-8824	27	27
-1730	1	1
-47	1	1
-3339	1	0
-132	16	0
-81	0	16
-89	0	6
-6369	0	1
-541	0	1
-6288	4	0
-3814	0	2
-7260	1	0
-802	0	68
-1166	1	0
-2230	0	1
-1109	1	0
-1106	0	2
-12396	1	0
-26207	1	1
-21	1	1
-4087	16	0
-1323	7	7
-525	1	0
-4198	1	0
-4682	13	13
-890	2	0
-816	2	0
-1961	4	0
-24586	1	1
-19	1	1
-4403	0	1
-1342	0	1
-57	11	12
-2229	30	31
-1979	35	0
-10541	1	0
-9725	6	0
-2536	1	2
-20	1	1
-1541	12	0
-1130	1	1
-34	1	1
-927	1	0
-4003	1	0
-966	0	1
-149	1	0
-842	0	8
-4326	1	1
-25	1	1
-569	6	7
-664	2	2
-5695	0	1
-3074	1	0
-1539	9	3
-634	1	1
-39	1	1
-8610	1	1
-11	0	1
-345	43	43
-372	0	2
-4311	6	0
-3122	2	0
-369	0	1
-9963	10	10
-2191	1	1
-23	1	1
-1060	1	1
-19	1	1
-240	12	12
-1748	1	1
-45	1	1
-1040	1	1
-31	1	1
-7446	1	1
-25	1	1
-8379	7	7
-7325	0	3
-357	1	0
-1313	1	0
-11624	0	4
-5865	0	1
-9750	0	1
-3540	16	0
-5671	13	13
-2885	4	0
-8179	0	1
-753	1	0
-2289	49	49
-1979	2	0
-1318	0	1
-957	1	0
-825	12	12
-1110	16	0
-3735	17	17
-9997	223	53
-149	22	24
-636	1	1
-22	0	1
-42	1	1
-1634	4	4
-3380	3	0
-979	0	2
-3429	1	0
-7138	14	0
-1727	1	1
-38	1	0
-88	0	1
-630	20	20
-476	0	5
-21	0	1
-94	0	1
-42	1	0
-17	0	1
-27	0	1
-172	1	1
-37	1	1
-191	1	1
-66	1	1
-630	0	1
-261	1	1
-28	1	1
-1282	17	18
-429	0	1
-1588	1	1
-20	1	1
-1416	1	1
-33	1	1
-529	0	1
-25	0	1
-1863	0	4
-1651	1	1
-28	1	1
-11815	0	1
-26	0	1
-19	1	1
-3105	0	1
-700	0	1
-150	0	1
-68	0	1
-1420	0	6
-568	14	16
-2415	0	1
-41	1	1
-415	1	1
-33	1	1
-4521	1	1
-33	1	1
-307	1	0
-176	1	0
-3790	1	1
-86	1	1
-67	1	1
-65	0	1
-7439	1	1
-18	1	1
-16805	0	1
-1764	1	0
-3104	35	35
-3845	0	1
-3384	0	2
-17	0	18
-156	1	1
-30	1	1
-165	0	2
-1087	1	0
-953	1	0
-483	0	1
-632	1	0
-652	1	0
-8563	9	7
-1860	1	0
-398	1	0
-2219	1	1
-53	1	1
-756	1	1
-66	1	1
-69	1	1
-48	1	1
-63	1	1
-28	3	0
-1057	3	0
-63	0	3
-55	1	1
-74	3	2
-159	0	3
-92	1	1
-29	1	1
-58	3	0
-1210	9	9
-54	1	1
-27	1	1
-1374	0	2
-1775	17	2
-764	14	14
-331	16	16
-2291	3	4
-1687	1	1
-26	1	1
-2469	1	0
-3243	0	1
-3636	1	1
-24	1	1
-615	1	0
-2566	0	1
-275	5	0
-695	7	0
-9686	32	32
-3416	0	1
-1452	4	0
-214	13	13
-49	0	124
-1393	9	9
-5812	1	1
-24	1	1
-5703	0	1
-4006	1	0
-1462	3	0
-5199	2	0
-1554	0	2
-715	10	12
-1966	0	2
-2801	0	16
-618	0	1
-413	18	0
-730	1	1
-31	1	1
-4372	5	0
-10789	1	0
-2399	1	0
-6750	0	2
-1363	6	0
-6736	2	0
-4457	0	4
-7867	1	0
-3495	2	1
-7584	0	1
-2652	1	0
-1771	0	1
-14808	41015	41008
-19235	0	1
-9638	0	1
-2994	0	1
-469	3	1
-499	0	1
-12074	13	13
-2807	10	11
-715	0	2
-1627	6	6
-5099	1	0
-488	1	5
-975	0	2
-1761	0	1
-1794	5	0
-8254	3	3
-18	1	1
-3737	9	9
-1442	13	13
-212	0	10
-7712	1	1
-44	1	1
-4480	40	40
-1751	1	0
-1316	1	1
-49	1	1
-9050	4	0
-143	0	2
-2813	13	13
-1286	2857	49999
-75638	40000	50000
-1583473	0	2
-1564099	1	97463
-2933461
-
-chain 1621142 chrX 154913754 + 148570601 148611616 chrX 155270560 - 6466757 6507765 175
-13140	0	1
-20345	6	0
-3704	1	0
-1517	1	0
-2301
-
-chain 259772 chrX 154913754 + 75282398 75286444 chrX 155270560 - 79901776 79905823 6183
-1486	41	41
-41	40	40
-126	11	11
-1051	1209	1210
-41
-
-chain 192506 chrX 154913754 + 114908114 114911060 chrX 155270560 + 114997023 115000000 3054
-63	528	528
-60	0	16
-630	28	44
-689	16	16
-436	1	0
-495
-
-chain 188216 chrX 154913754 + 114908656 114914454 chrX 155270560 + 115000574 115005488 36116
-49	2721	1850
-47	8	8
-197	704	696
-2	16	0
-1155	42	43
-455	2	12
-400
-
-chain 119665 chrX 154913754 + 114906873 114908114 chrX 155270560 + 115003848 115005094 1024208
-1216	0	5
-25
-
-chain 29390 chrX 154913754 + 76491035 76491342 chr1 249250621 - 136684922 136685229 4932608
-307
-
-chain 25643 chrX 154913754 + 114911150 114911426 chrX 155270560 + 115005157 115005433 246321
-276
-
-chain 19821 chrX 154913754 + 114908177 114911739 chrX 155270560 + 114982173 114982762 1997
-479	3022	49
-61
-
-chain 15998 chrX 154913754 + 114911743 114912382 chrX 155270560 + 114967843 114968482 6239
-639
-
-chain 9708 chrX 154913754 + 148714470 148714905 chr5 180915260 - 8837105 8837560 23506322
-56	313	333
-66
-
-chain 9294 chrX 154913754 + 114906712 114906808 chrX 155270560 + 115005518 115005614 24447825
-96
-
-chain 6266 chrX 154913754 + 114906808 114906873 chrX 155270560 + 114962882 114962947 1027613
-65
-
-chain 6215 chrX 154913754 + 76426104 76426191 chrX 155270560 + 29934095 29934182 9535161
-87
-
-chain 5894 chrX 154913754 + 143027611 143027675 chr2 243199373 - 154977524 154977591 249
-15	0	3
-49
-
-chain 3277 chrX 154913754 + 76426069 76426104 chr1 249250621 - 60612464 60612499 19993171
-35
-
-chain 2407 chrX 154913754 + 148714814 148714839 chr2 243199373 + 100113459 100113484 27784968
-25
-
-chain 1984 chrX 154913754 + 76426191 76426234 chr8 146364022 - 27059036 27059079 21505033
-43
-
-chain 1549 chrX 154913754 + 114911087 114911150 chrX 155270560 + 114976136 114976199 336010
-63
-
-chain 1443 chrX 154913754 + 114913555 114913597 chrX 155270560 + 114984570 114984612 98822
-42
-
-chain 1245 chrX 154913754 + 148714288 148714366 chr4 191154276 - 133575330 133575408 22672116
-78
-
-chain 1030 chrX 154913754 + 114911060 114911082 chrX 155270560 + 114988042 114988064 7002
-22
-
-chain 733 chrX 154913754 + 148715982 148716070 chrX 155270560 - 110405878 110405966 21525610
-88
-
-chain 469 chrX 154913754 + 76426248 76426375 chr8 146364022 - 18567958 18568085 6841016
-127
-
-chain 293 chrX 154913754 + 148716634 148716684 chr2 243199373 - 107635751 107635801 26436223
-50
-
-chain 50554324 chrX_random 1719168 + 610279 1452044 chrX 155270560 + 76412035 77367385 75
-7124	5	6
-4742	1	1
-31	1	1
-1606	21	28
-3800	1	1
-23	1	1
-6209	1	1
-4	1	0
-22	1	0
-13	1	0
-1193	1	1
-32	1	1
-2218	0	1
-7608	6	1
-670	0	2
-1396	0	2
-1207	20	20
-5098	1	0
-1294	1	0
-119	0	1
-6626	16	16
-8221	1	0
-3722	4	0
-169	0	4
-1754	11	13
-58	0	1
-239	1	1
-75	1	1
-910	0	1
-518	7	7
-6771	0	1
-4354	26	26
-781	1	1
-28	1	1
-406	16	16
-4353	1	0
-22	100	24
-930	1	0
-33	1	1
-1226	0	1
-1278	660	1078
-3884	2	2
-22	1	1
-2022	4	0
-2593	1	0
-777	0	3
-4596	153	64
-2593	1	10
-1074	1	0
-3147	1	0
-2227	1	0
-9697	1	0
-3957	1	0
-3098	0	186786
-22519	1	0
-204	1	0
-22	1	0
-63	17	18
-9565	0	6
-6660	129	0
-58	1	0
-17671	100	83
-39	1	1
-9798	2	1
-5	0	1
-19	100	237
-1127	0	1
-4928	133	164
-8370	115	394
-3028	259	91
-9555	100	1670
-18018	6	0
-3818	1	0
-72	1	0
-15	1	0
-11	1	0
-4	1	0
-10	100	30
-18171	0	1
-18316	0	28
-22590	0	1
-2592	2	0
-8265	0	2
-4335	4	3
-14218	100	218
-8896	0	2
-5422	18	17
-1347	4	4
-83	166	0
-5120	101	153
-3114	126	148
-4567	1	0
-2511	0	1
-1289	2	0
-3129	124	175
-5332	1	0
-20	1	0
-15993	0	4
-9940	115	1562
-10856	1	1
-18	0	1
-2379	1	1
-32	74	72
-41	1	1
-3148	155	3622
-2876	621	0
-31	1	1
-2212	81729	108028
-557	0	1
-4283	1	0
-148	0	457
-722	1	1
-49	113	176
-33	2	2
-2654	1	0
-25	188	415
-1394	12	0
-5398	0	1
-28	100	19
-5509	151745	28754
-87	102	102
-66	5	5
-53	70	72
-56	201	601
-7819	256	150
-16	0	1
-6	0	1
-8001	4	0
-8135	0	1
-528	12	0
-797	100	193
-2857	496	0
-5822	153	0
-8578	1	0
-10594	1	0
-6352	3	3
-35	6	7
-50	55655	72028
-890	0	1
-72	0	1
-2125	1	1
-64	1	0
-15	1	0
-5	22	19
-12	129	67
-11	1	0
-8	0	1
-4	1	0
-16	2	2
-3637	1	1
-36	1	0
-28	1	0
-942	0	1
-231	1	1
-109	101	336
-18	11	294
-14959	0	2
-22656	3	1
-1280
-
-chain 6857177 chrX_random 1719168 + 1212241 1285856 chrX 155270560 + 76337041 76411192 460
-53	4	4
-3247	0	6
-51	2	0
-2014	2	0
-45	4	0
-20	4	0
-48	1	0
-5158	1	1
-29	1	1
-394	16	13
-1410	1	0
-12	1	0
-14	1	0
-7	1	0
-5	1	0
-13	1	0
-36	106	188
-1195	0	31
-133	0	4
-28	1	1
-1388	1	1
-18	1	1
-2790	0	1
-767	4	4
-49	0	1
-10	110	385
-52	0	1
-56	0	1
-4004	182	11
-23	1	1
-767	1	1
-66	1	1
-3217	2	0
-25	1	1
-4309	1	0
-26	0	1
-820	2	2
-4450	0	1
-1391	1	1
-33	0	1
-31	0	8
-3634	1	0
-1669	111	432
-10524	1	2
-8620	1	0
-2158	1	0
-1513	7	7
-4600	4	4
-2111
-
-chain 5479158 chrX_random 1719168 + 19684 169644 chrX 155270560 + 3753512 3953553 578
-1162	21228	9243
-742	1	0
-2200	7659	14347
-948	1	0
-4152	211	33421
-819	48	49
-92	22	22
-544	44	42
-175	0	1
-63	102	104
-246	37	37
-203	6	5
-279	27	27
-206	54	54
-394	39	40
-260	2	0
-311	16	16
-208	57	57
-349	6	6
-262	134	134
-481	0	6
-56	1	1
-868	0	5
-1387	18095	3193
-790	8	6
-1718	0	2
-3436	13	13
-241	40033	77157
-63	10	10
-425	63	0
-38963
-
-chain 5155611 chrX_random 1719168 + 1349115 1404263 chrX 155270560 - 77841540 77897663 609
-4514	1	1
-4	1	0
-15	0	1
-1714	142	0
-26953	1	1
-31	100	192
-4795	129	41
-2612	4	0
-3389	4	0
-5037	1	1
-22	101	1223
-13	9	8
-34	2	2
-5520
-
-chain 4548442 chrX_random 1719168 + 595876 1601165 chrX 155270560 - 77827311 79038577 141
-3039	114	45
-9150	2	0
-1995	422998	109473
-19795	1	0
-23	1	0
-12	111	343
-20	5	4
-13	1	1
-2240	1980	60
-2381	1	3
-44	1	0
-37	0	1
-24	100	79
-2445	100	136
-5050	0	1
-8804	4	0
-4444	704	262
-34	2	2
-12610	100	395
-4803	1	1
-22	1	1
-4171	128	46
-569	0	1
-2902	29308	112180
-236	1	0
-659	1	0
-711	1	0
-104	0	6764
-3212	4	2485
-1198	1	0
-8224	110	1
-4	0	1
-8	0	1
-21	0	1
-23	4	4
-5939	0	1
-182	101	1162
-2127	1	0
-28	100	77
-5048	2	0
-2345	1	0
-3616	100	211
-11	10	11
-1378	0	44
-1405	0	1
-1238	0	1
-575	0	20
-9423	100	122
-20	1	1
-7723	0	1
-431	0	1
-181	2	0
-5386	16	0
-866	105	61
-1365	0	1
-11613	318206	1966
-13	1	2
-40	1	1
-781	0	2
-5976	121	213
-3371	0	1
-693	1	0
-169	2337	746790
-586	1	0
-2072	1	1
-34	1	1
-58	13	13
-211	1	1
-28	1	1
-332	1	1
-31	1	1
-179	11	0
-2785	0	5
-1418	1	0
-12774	0	1
-3561	1	0
-4305	1	1
-120	1	1
-377	1	1
-68	1	1
-208	9	9
-998	15	15
-2146	0	1
-693	101	90
-36	1	1
-1743	1	1
-18	1	1
-2412	15	15
-1943	29	30
-3136	0	3
-12327	3	4
-2517
-
-chain 4126434 chrX_random 1719168 + 1485975 1530227 chrX 155270560 + 76291305 76335950 725
-1188	0	2
-717	1	1
-34	1	1
-1032	1	1
-42	1	1
-974	1	0
-5479	16	16
-2476	1	1
-35	1	1
-1212	3	0
-152	1	1
-46	1	1
-77	7	6
-912	1	1
-38	1	1
-4230	17	17
-617	146	545
-27	3	3
-374	1	1
-18	1	1
-3639	1	1
-122	1	1
-435	4	4
-1916	16	16
-2739	1	0
-622	16	16
-6383	2	0
-2520	35	35
-5915
-
-chain 3853214 chrX_random 1719168 + 170863 1715347 chrX 155270560 - 151357158 154150181 220
-101	0	61
-11	0	2
-38	0	155
-54	0	1
-34100	0	1
-12001	158233	27287
-105	0	1
-847	4191	3311
-101	25049	633
-4294	18781	8391
-120	26	27
-1173	0	1
-2374	87	87
-206	41	40
-40	7493	0
-1552	0	1
-194	0	1
-6613	4	3
-492	13807	11516
-2651	0	2
-1724	0	2
-2453	0	1
-3866	165	10497
-2912	8	0
-2305	93	94
-6287	1	0
-3225	7	7
-393	1	1
-18	1	1
-298	495	25877
-271	0	138
-31886	6	0
-14613	3	0
-9199	1105799	2318225
-448	0	73
-215	36	2
-248	14	15
-1012	1	0
-110	1	1
-211	15	16
-87	3	0
-268	10	6
-108	12	12
-74	1	1
-27	1	1
-178	1	1
-18	1	1
-1429	0	10
-168	1	1
-36	1	1
-64	1	1
-62	0	1
-129	2	0
-80	13	10
-11	3	0
-19	823	1702
-36	1	0
-605	17	17
-193	1	0
-215	12	13
-271	1	1
-18	1	1
-91	1	0
-178	4	4
-39	1	1
-233	1	1
-31	1	1
-500	1	1
-68	1	1
-325	9	9
-244	0	1
-843	1	1
-46	1	1
-202	0	1
-957	0	1
-150	1	1
-81	1	0
-6	1	1
-303	8540	16182
-59	4	0
-415	4	7
-127	38	38
-333	0	44
-16	0	252
-226	27	26
-64	4	0
-91	0	4
-56	32	32
-977	0	16
-701	1	1
-29	1	1
-1743	1	0
-676	0	2
-2780	0	16
-85	0	11
-22	1	1
-952	3	0
-470	1	0
-840	4	0
-146	0	4
-131	0	34
-39	4	0
-99	1	1
-26	0	4
-80	1	1
-1476	0	13
-977	0	2
-480	0	800
-1133	4	5
-532	1	1
-37	1	1
-207	0	117633
-2070	1	1
-30	2	0
-524	2	0
-484	0	1
-446	1	0
-1642	2	0
-63	1	1
-43	1	1
-148	12	12
-2115	0	1
-116	1	1
-182	10	10
-88	1	1
-65	0	320
-107	0	2
-2083	295	0
-1170	10932	59997
-1792	0	1
-292	6	7
-677	8	11
-1932
-
-chain 2670012 chrX_random 1719168 + 22277 129533 chrX 155270560 - 151420019 151525192 697
-318	0	8
-1212	7792	0
-1334	4590	634
-3132	4549	4298
-403	12	12
-889	7	7
-393	20	20
-2070	17932	14002
-179	0	1
-1042	0	1
-4330	476	475
-66	0	1
-1653	797	0
-2278	8	0
-5943	18846	26826
-69	77	81
-86	822	824
-287	1	0
-7796	1771	9789
-1118	1349	0
-2572	2	0
-4177	1	0
-2904	5	0
-881	1	1
-56	6	0
-590	1	1
-23	1	1
-262	6	6
-349	1	1
-55	1	1
-208	16	16
-311	0	2
-260	1	0
-34	5	5
-394	54	54
-206	27	27
-199
-
-chain 2529127 chrX_random 1719168 + 1458959 1485875 chrX 155270560 + 77160344 77187173 1079
-634	0	1
-9184	1	0
-59	1	0
-14	100	16
-21	1	0
-53	2	2
-11087	2	0
-2487	0	2
-2602	1	0
-667
-
-chain 902700 chrX_random 1719168 + 269161 291745 chrY 59373566 - 58967799 59197152 4215
-4053	3	0
-293	1	1
-26	0	1
-791	0	165863
-51	243	5
-66	134	1
-42	388	5
-141	0	15
-35	2	2
-42	361	0
-256	1	0
-341	3	36
-453	301	1
-147	0	1
-278	4	4
-15	0	3
-29	1	1
-122	2	0
-148	430	0
-222	151	0
-55	0	2
-149	1	0
-687	6309	50121
-61	1	1
-43	1	1
-408	80	0
-147	11	11
-228	1	1
-48	2	2
-1372	1	1
-31	1	1
-75	1	1
-28	97	0
-263	0	1
-495	98	1
-51	1	33
-52	1	1
-51	33	1
-226	1	1
-20	4	0
-211	340	0
-179	1	0
-10	1	1
-236	341	1
-555
-
-chain 569801 chrX_random 1719168 + 1106858 1112877 chrX 155270560 - 78234537 78240560 9279
-4787	0	4
-1232
-
-chain 569444 chrX_random 1719168 + 1452563 1458801 chrX 155270560 - 78136578 78142679 9342
-609	3	13
-1692	0	8
-1539	155	0
-30	3	3
-254	9	9
-1944
-
-chain 534458 chrX_random 1719168 + 90245 170863 chrX 155270560 - 151402385 151465977 943
-12303	69	69
-77	86	86
-822	66146	49119
-57	3	4
-1055
-
-chain 494413 chrX_random 1719168 + 391508 439759 chrX 155270560 - 151446976 151536655 1213
-50	57	60
-3938	36909	78166
-87	206	206
-41	40	40
-6143	240	408
-340	6	6
-194
-
-chain 379298 chrX_random 1719168 + 415243 419212 chrX 155270560 - 151507548 151511517 135808
-663	12	12
-3294
-
-chain 372919 chrX_random 1719168 + 1663885 1667930 chrX 155270560 - 153907181 153911269 141765
-802	0	3
-83	1	1
-47	1	1
-767	17	17
-1585	0	73
-215	36	2
-248	14	15
-229
-
-chain 274258 chrX_random 1719168 + 1667930 1671196 chrX 155270560 - 154066175 154070218 305212
-2034	1	281
-24	1	1
-190	0	200
-632	326	623
-58
-
-chain 267510 chrX_random 1719168 + 422339 428025 chrX 155270560 - 151460048 151465730 1055
-1034	4	3
-2317	3	0
-2328
-
-chain 266050 chrX_random 1719168 + 27992 75212 chrX 155270560 - 151430977 151495459 1091
-2648	315	25719
-644	9056	5097
-1296	30530	26348
-164	1	0
-310	1720	1720
-536
-
-chain 247472 chrX_random 1719168 + 49544 52383 chrX 155270560 + 3800594 3803433 7089
-2766	6	6
-67
-
-chain 247318 chrX_random 1719168 + 58807 462399 chrX 155270560 + 3743706 3828677 987
-48	658	658
-44	238	238
-102	246	246
-37	488	488
-27	206	206
-54	394	394
-39	797	797
-57	617	617
-134	287931	26427
-60	1338	0
-1419	8746	13247
-2214	50	50
-51	31242	578
-263	4	4
-5180	1349	0
-1121	24105	7962
-467	20820	8687
-32	2	2
-3992	2	0
-898	48	49
-92	22	22
-544	44	42
-175	0	1
-63	102	104
-246	37	37
-203	6	5
-279	27	27
-206	54	54
-394	39	40
-260	2	0
-311	16	16
-208	57	57
-349	6	6
-262	25	25
-590	57	63
-881	1017	1022
-1498
-
-chain 203629 chrX_random 1719168 + 419791 421950 chrX 155270560 - 151464996 151467156 582605
-2107	0	1
-52
-
-chain 199106 chrX_random 1719168 + 1699808 1701947 chrX 155270560 - 153935858 153937997 603481
-61	1	1
-57	1	1
-1588	4	4
-59	7	7
-361
-
-chain 199089 chrX_random 1719168 + 378452 380544 chrX 155270560 + 3796616 3798707 602253
-1586	1	0
-505
-
-chain 187776 chrX_random 1719168 + 376353 378301 chrX 155270560 + 3798256 3800203 654951
-729	1	0
-1218
-
-chain 174234 chrX_random 1719168 + 1285969 1288372 chrX 155270560 + 77019422 77021825 343560
-1763	87	87
-102	124	124
-70	56	56
-201
-
-chain 157788 chrX_random 1719168 + 111815 113457 chrX 155270560 + 3753462 3755104 810742
-1642
-
-chain 154415 chrX_random 1719168 + 1055747 1057376 chrX 155270560 + 77369279 77370908 822932
-1629
-
-chain 134293 chrX_random 1719168 + 1708912 1710376 chrX 155270560 + 1185231 1187137 959481
-129	1	1
-82	1	1
-350	2	297
-68	0	147
-831
-
-chain 132265 chrX_random 1719168 + 403961 405553 chrX 155270560 - 151477034 151478628 31377
-436	0	2
-1156
-
-chain 90853 chrX_random 1719168 + 1707707 1708693 chrX 155270560 + 1353464 1354449 1404000
-164	1	0
-46	1	1
-620	1	1
-37	1	1
-115
-
-chain 74037 chrX_random 1719168 + 267762 268693 chrY 59373566 - 59139189 59140054 1710353
-79	97	0
-220	1	0
-317	27	60
-128	1	0
-61
-
-chain 63811 chrX_random 1719168 + 410390 415127 chrX 155270560 + 3822705 3827447 11885
-2487	0	6
-1981	48	47
-221
-
-chain 61116 chrX_random 1719168 + 346359 347004 chrX 155270560 + 3777922 3778567 2069731
-645
-
-chain 55813 chrX_random 1719168 + 2787 3496 chrX 155270560 - 151499719 151505905 2274078
-50	6	6
-412	0	5477
-241
-
-chain 38577 chrX_random 1719168 + 1651263 1651671 chrX 155270560 - 153943757 153944164 3434500
-271	1	0
-136
-
-chain 34659 chrX_random 1719168 + 1707297 1707664 chrX 155270560 + 1118849 1119216 3901406
-367
-
-chain 33830 chrX_random 1719168 + 267400 267758 chrX 155270560 - 154819600 154819959 4017435
-54	0	1
-304
-
-chain 33594 chrX_random 1719168 + 347004 347356 chrX 155270560 - 151523309 151523661 4010211
-352
-
-chain 33500 chrX_random 1719168 + 290273 291150 chrX 155270560 - 155043354 155044230 1935940
-149	427	427
-91	1	0
-137	17	17
-55
-
-chain 33229 chrX_random 1719168 + 1452213 1452563 chrX 155270560 - 78136229 78136579 3954656
-350
-
-chain 31748 chrX_random 1719168 + 1656832 1657169 chrX 155270560 - 154080972 154081310 4345014
-118	0	1
-219
-
-chain 31047 chrX_random 1719168 + 364702 460901 chrX 155270560 + 3752840 3788747 1318
-48	54	53
-80	31133	470
-26	58237	28604
-46	660	660
-40	242	241
-78	0	2
-22	248	248
-33	492	491
-25	208	208
-52	400	400
-34	798	798
-56	1232	1232
-21	1	1
-34	882	887
-1017
-
-chain 26366 chrX_random 1719168 + 1717468 1717765 chrX 155270560 - 154599490 154599787 6355797
-65	8	8
-224
-
-chain 20775 chrX_random 1719168 + 1657225 1657446 chrY 59373566 + 1138227 1138450 9855403
-101	0	2
-120
-
-chain 20767 chrX_random 1719168 + 4453 4700 chrX 155270560 - 151332163 151332410 9860775
-174	10	10
-63
-
-chain 20271 chrX_random 1719168 + 1698243 1698467 chrX 155270560 - 154161726 154161950 2868
-224
-
-chain 20189 chrX_random 1719168 + 22064 22277 chrX 155270560 + 3752676 3752889 10232162
-213
-
-chain 20092 chrX_random 1719168 + 410218 414905 chrX 155270560 + 3784106 3788794 77876
-172	4468	4469
-47
-
-chain 19894 chrX_random 1719168 + 365127 367414 chrX 155270560 + 3744796 3747084 92469
-246	37	37
-203	5	6
-279	27	27
-206	54	54
-394	41	39
-260	0	2
-535
-
-chain 19881 chrX_random 1719168 + 217168 217385 chrX 155270560 + 3913712 3913929 10410664
-217
-
-chain 19372 chrX_random 1719168 + 1704190 1704597 chr2 243199373 + 106598364 106598785 10983407
-91	100	114
-81	74	74
-61
-
-chain 17351 chrX_random 1719168 + 365104 366619 chrX 155270560 + 3783188 3784703 560009
-23	246	246
-37	487	487
-27	206	206
-54	394	394
-41
-
-chain 16176 chrX_random 1719168 + 3557 21469 chrX 155270560 + 3768043 3793719 20345
-896	16406	24170
-326	33	33
-130	29	29
-92
-
-chain 15865 chrX_random 1719168 + 276938 277188 chrY 59373566 - 59140528 59140772 2014767
-82	6	0
-162
-
-chain 15331 chrX_random 1719168 + 367414 367617 chrX 155270560 + 3823924 3824127 647220
-203
-
-chain 13713 chrX_random 1719168 + 489399 489544 chrX 155270560 + 3712149 3712294 16431967
-145
-
-chain 12918 chrX_random 1719168 + 274951 275159 chrY 59373566 - 59139058 59139278 8720139
-52	0	12
-156
-
-chain 12632 chrX_random 1719168 + 1705530 1705970 chrX 155270560 + 145057484 145057926 18056495
-78	288	290
-74
-
-chain 12447 chrX_random 1719168 + 1030429 1030575 chr5 180915260 - 168461964 168462110 18325086
-146
-
-chain 12016 chrX_random 1719168 + 1317064 1317191 chrX 155270560 + 77214259 77214386 18979178
-127
-
-chain 11687 chrX_random 1719168 + 278072 278210 chrX 155270560 - 154988343 154988492 4329206
-112	25	36
-1
-
-chain 11514 chrX_random 1719168 + 278210 278346 chrY 59373566 - 59141204 59141340 4138572
-136
-
-chain 10224 chrX_random 1719168 + 1704620 1704728 chr19 59128983 - 37939031 37939139 22329028
-108
-
-chain 10213 chrX_random 1719168 + 277934 278654 chrY 59373566 - 59141065 59141499 2702219
-138	514	228
-68
-
-chain 9983 chrX_random 1719168 + 290082 290229 chrX 155270560 - 155043503 155043650 2501552
-48	40	40
-59
-
-chain 9686 chrX_random 1719168 + 1671544 1671645 chrX 155270560 + 1359785 1359886 23561825
-101
-
-chain 8627 chrX_random 1719168 + 274506 274913 chrX 155270560 - 154985996 154986278 9490470
-54	20	20
-32	0	8
-10	242	109
-49
-
-chain 7400 chrX_random 1719168 + 1030281 1030397 chr9 141213431 + 129760930 129761046 27439238
-59	26	26
-31
-
-chain 7194 chrX_random 1719168 + 274704 274779 chrY 59373566 - 59139208 59139283 27842833
-75
-
-chain 7041 chrX_random 1719168 + 129047 129334 chrX 155270560 - 151486292 151486579 1717
-54	206	206
-27
-
-chain 6777 chrX_random 1719168 + 275159 275252 chrX 155270560 - 154986140 154986238 15049098
-1	37	42
-55
-
-chain 6125 chrX_random 1719168 + 479075 479168 chrX 155270560 - 151461082 151461175 898
-93
-
-chain 5720 chrX_random 1719168 + 1705205 1705283 chr3 198022430 - 36255828 36255906 21764861
-52	21	21
-5
-
-chain 5699 chrX_random 1719168 + 57777 57859 chrX 155270560 + 3747892 3747974 156364
-82
-
-chain 5684 chrX_random 1719168 + 275730 275789 chrX 155270560 - 154985991 154986050 31480070
-59
-
-chain 5671 chrX_random 1719168 + 278678 278737 chrX 155270560 - 154987944 154988003 7684992
-59
-
-chain 5648 chrX_random 1719168 + 288487 288546 chrY 59373566 - 59194675 59194734 31602153
-59
-
-chain 5292 chrX_random 1719168 + 1698467 1698538 chrX 155270560 - 154160180 154160251 1242775
-71
-
-chain 4986 chrX_random 1719168 + 1705613 1705672 chr7 159138663 + 43857891 43857950 19004666
-59
-
-chain 4456 chrX_random 1719168 + 1030620 1030666 chrX 155270560 + 76367481 76367527 34837220
-46
-
-chain 4200 chrX_random 1719168 + 65786 66804 chrX 155270560 + 3789104 3790122 1705
-1018
-
-chain 4147 chrX_random 1719168 + 1704281 1704341 chr4 191154276 - 52750556 52750615 11058024
-1	2	1
-57
-
-chain 4142 chrX_random 1719168 + 276887 276938 chrY 59373566 - 59140619 59140670 3855343
-51
-
-chain 3859 chrX_random 1719168 + 291150 291190 chrY 59373566 - 59196218 59196258 16097861
-40
-
-chain 3722 chrX_random 1719168 + 1703633 1706063 chr17 81195210 - 47362086 47364493 15646977
-109	441	439
-7	1805	1784
-68
-
-chain 3009 chrX_random 1719168 + 1705804 1705856 chrX 155270560 + 62632912 62632964 24180689
-52
-
-chain 2509 chrX_random 1719168 + 1708877 1708912 chrX 155270560 + 1109247 1109282 2078841
-35
-
-chain 2078 chrX_random 1719168 + 1706063 1706085 chr1 249250621 + 114909259 114909281 21967653
-22
-
-chain 1700 chrX_random 1719168 + 274379 274412 chrY 59373566 - 59139235 59139268 19436247
-33
-
-chain 990 chrX_random 1719168 + 1705283 1705342 chrX 155270560 + 119232530 119232589 19658805
-59
-
-chain 463 chrX_random 1719168 + 1703519 1703583 chrX 155270560 + 65440530 65440594 26501250
-64
-
-chain 2373402471 chrY 57772954 + 0 27228749 chrY 59373566 + 10000 28819361 24
-34821	50000	50000
-86563	30000	50000
-766173	50000	50000
-36556	50000	50000
-80121	90000	50000
-754004	100000	50000
-6846717	50000	50000
-276367	600000	50000
-813231	500000	3000000
-39401	400000	50000
-554624	100000	50000
-535761	1	0
-32919	1	0
-10	1	1
-12811	5	0
-18899	1	1
-121	5	4
-230478	1	0
-750	24	24
-14340	1	1
-43	1	1
-2095	1	0
-14635	9	0
-2781	1	0
-45022	6	5
-7151	1	0
-9343	0	628
-5417477	0	50006
-2175794	0	50000
-1481749	50000	50000
-4867933
-
-chain 46617811 chrY 57772954 + 57228749 57772954 chrY 59373566 + 58819361 59363566 80
-98295	50000	50000
-395910
-
diff --git a/testdata/net/sf/picard/reference/Homo_sapiens_assembly18.fasta.fai b/testdata/net/sf/picard/reference/Homo_sapiens_assembly18.fasta.fai
deleted file mode 100644
index aa00476..0000000
--- a/testdata/net/sf/picard/reference/Homo_sapiens_assembly18.fasta.fai
+++ /dev/null
@@ -1,45 +0,0 @@
-chrM	16571	6	50	51
-chr1	247249719	16915	50	51
-chr2	242951149	252211635	50	51
-chr3	199501827	500021813	50	51
-chr4	191273063	703513683	50	51
-chr5	180857866	898612214	50	51
-chr6	170899992	1083087244	50	51
-chr7	158821424	1257405242	50	51
-chr8	146274826	1419403101	50	51
-chr9	140273252	1568603430	50	51
-chr10	135374737	1711682155	50	51
-chr11	134452384	1849764394	50	51
-chr12	132349534	1986905833	50	51
-chr13	114142980	2121902365	50	51
-chr14	106368585	2238328212	50	51
-chr15	100338915	2346824176	50	51
-chr16	88827254	2449169877	50	51
-chr17	78774742	2539773684	50	51
-chr18	76117153	2620123928	50	51
-chr19	63811651	2697763432	50	51
-chr20	62435964	2762851324	50	51
-chr21	46944323	2826536015	50	51
-chr22	49691432	2874419232	50	51
-chrX	154913754	2925104499	50	51
-chrY	57772954	3083116535	50	51
-chr1_random	1663265	3142044962	50	51
-chr2_random	185571	3143741506	50	51
-chr3_random	749256	3143930802	50	51
-chr4_random	842648	3144695057	50	51
-chr5_random	143687	3145554571	50	51
-chr6_random	1875562	3145701145	50	51
-chr7_random	549659	3147614232	50	51
-chr8_random	943810	3148174898	50	51
-chr9_random	1146434	3149137598	50	51
-chr10_random	113275	3150306975	50	51
-chr11_random	215294	3150422530	50	51
-chr13_random	186858	3150642144	50	51
-chr15_random	784346	3150832754	50	51
-chr16_random	105485	3151632801	50	51
-chr17_random	2617613	3151740410	50	51
-chr18_random	4262	3154410390	50	51
-chr19_random	301858	3154414752	50	51
-chr21_random	1679693	3154722662	50	51
-chr22_random	257318	3156435963	50	51
-chrX_random	1719168	3156698441	50	51
diff --git a/testdata/net/sf/picard/reference/Homo_sapiens_assembly18.trimmed.dict b/testdata/net/sf/picard/reference/Homo_sapiens_assembly18.trimmed.dict
deleted file mode 100644
index 8dd3e5b..0000000
--- a/testdata/net/sf/picard/reference/Homo_sapiens_assembly18.trimmed.dict
+++ /dev/null
@@ -1,3 +0,0 @@
- at HD	VN:1.0	SO:unsorted
- at SQ	SN:chrM	LN:16571	UR:file:/Users/mhanna/src/Sting/Homo_sapiens_assembly18.trimmed.fasta	M5:d2ed829b8a1628d16cbeee88e88e39eb
- at SQ	SN:chr20	LN:1000000	UR:file:/Users/mhanna/src/Sting/Homo_sapiens_assembly18.trimmed.fasta	M5:b4eac854d70893986ac578c53c2324f1
diff --git a/testdata/net/sf/picard/reference/Homo_sapiens_assembly18.trimmed.fasta b/testdata/net/sf/picard/reference/Homo_sapiens_assembly18.trimmed.fasta
deleted file mode 100644
index 9b75d10..0000000
--- a/testdata/net/sf/picard/reference/Homo_sapiens_assembly18.trimmed.fasta
+++ /dev/null
@@ -1,16946 +0,0 @@
->chrM
-GATCACAGGTCTATCACCCTATTAACCACTCACGGGAGCTCTCCATGCATTTGGTATTTT
-CGTCTGGGGGGTGTGCACGCGATAGCATTGCGAGACGCTGGAGCCGGAGCACCCTATGTC
-GCAGTATCTGTCTTTGATTCCTGCCTCATTCTATTATTTATCGCACCTACGTTCAATATT
-ACAGGCGAACATACCTACTAAAGTGTGTTAATTAATTAATGCTTGTAGGACATAATAATA
-ACAATTGAATGTCTGCACAGCCGCTTTCCACACAGACATCATAACAAAAAATTTCCACCA
-AACCCCCCCCTCCCCCCGCTTCTGGCCACAGCACTTAAACACATCTCTGCCAAACCCCAA
-AAACAAAGAACCCTAACACCAGCCTAACCAGATTTCAAATTTTATCTTTAGGCGGTATGC
-ACTTTTAACAGTCACCCCCCAACTAACACATTATTTTCCCCTCCCACTCCCATACTACTA
-ATCTCATCAATACAACCCCCGCCCATCCTACCCAGCACACACACACCGCTGCTAACCCCA
-TACCCCGAACCAACCAAACCCCAAAGACACCCCCCACAGTTTATGTAGCTTACCTCCTCA
-AAGCAATACACTGAAAATGTTTAGACGGGCTCACATCACCCCATAAACAAATAGGTTTGG
-TCCTAGCCTTTCTATTAGCTCTTAGTAAGATTACACATGCAAGCATCCCCGTTCCAGTGA
-GTTCACCCTCTAAATCACCACGATCAAAAGGGACAAGCATCAAGCACGCAGCAATGCAGC
-TCAAAACGCTTAGCCTAGCCACACCCCCACGGGAAACAGCAGTGATTAACCTTTAGCAAT
-AAACGAAAGTTTAACTAAGCTATACTAACCCCAGGGTTGGTCAATTTCGTGCCAGCCACC
-GCGGTCACACGATTAACCCAAGTCAATAGAAGCCGGCGTAAAGAGTGTTTTAGATCACCC
-CCTCCCCAATAAAGCTAAAACTCACCTGAGTTGTAAAAAACTCCAGTTGACACAAAATAG
-ACTACGAAAGTGGCTTTAACATATCTGAACACACAATAGCTAAGACCCAAACTGGGATTA
-GATACCCCACTATGCTTAGCCCTAAACCTCAACAGTTAAATCAACAAAACTGCTCGCCAG
-AACACTACGAGCCACAGCTTAAAACTCAAAGGACCTGGCGGTGCTTCATATCCCTCTAGA
-GGAGCCTGTTCTGTAATCGATAAACCCCGATCAACCTCACCACCTCTTGCTCAGCCTATA
-TACCGCCATCTTCAGCAAACCCTGATGAAGGCTACAAAGTAAGCGCAAGTACCCACGTAA
-AGACGTTAGGTCAAGGTGTAGCCCATGAGGTGGCAAGAAATGGGCTACATTTTCTACCCC
-AGAAAACTACGATAGCCCTTATGAAACTTAAGGGTCGAAGGTGGATTTAGCAGTAAACTG
-AGAGTAGAGTGCTTAGTTGAACAGGGCCCTGAAGCGCGTACACACCGCCCGTCACCCTCC
-TCAAGTATACTTCAAAGGACATTTAACTAAAACCCCTACGCATTTATATAGAGGAGACAA
-GTCGTAACATGGTAAGTGTACTGGAAAGTGCACTTGGACGAACCAGAGTGTAGCTTAACA
-CAAAGCACCCAACTTACACTTAGGAGATTTCAACTTAACTTGACCGCTCTGAGCTAAACC
-TAGCCCCAAACCCACTCCACCTTACTACCAGACAACCTTAGCCAAACCATTTACCCAAAT
-AAAGTATAGGCGATAGAAATTGAAACCTGGCGCAATAGATATAGTACCGCAAGGGAAAGA
-TGAAAAATTATAACCAAGCATAATATAGCAAGGACTAACCCCTATACCTTCTGCATAATG
-AATTAACTAGAAATAACTTTGCAAGGAGAGCCAAAGCTAAGACCCCCGAAACCAGACGAG
-CTACCTAAGAACAGCTAAAAGAGCACACCCGTCTATGTAGCAAAATAGTGGGAAGATTTA
-TAGGTAGAGGCGACAAACCTACCGAGCCTGGTGATAGCTGGTTGTCCAAGATAGAATCTT
-AGTTCAACTTTAAATTTGCCCACAGAACCCTCTAAATCCCCTTGTAAATTTAACTGTTAG
-TCCAAAGAGGAACAGCTCTTTGGACACTAGGAAAAAACCTTGTAGAGAGAGTAAAAAATT
-TAACACCCATAGTAGGCCTAAAAGCAGCCACCAATTAAGAAAGCGTTCAAGCTCAACACC
-CACTACCTAAAAAATCCCAAACATATAACTGAACTCCTCACACCCAATTGGACCAATCTA
-TCACCCTATAGAAGAACTAATGTTAGTATAAGTAACATGAAAACATTCTCCTCCGCATAA
-GCCTGCGTCAGATCAAAACACTGAACTGACAATTAACAGCCCAATATCTACAATCAACCA
-ACAAGTCATTATTACCCTCACTGTCAACCCAACACAGGCATGCTCATAAGGAAAGGTTAA
-AAAAAGTAAAAGGAACTCGGCAAACCTTACCCCGCCTGTTTACCAAAAACATCACCTCTA
-GCATCACCAGTATTAGAGGCACCGCCTGCCCAGTGACACATGTTTAACGGCCGCGGTACC
-CTAACCGTGCAaaggtagcataatcacttgttccttaaatagggacctgtatgaatggct
-ccacgagggttcagctgtctcttacttttaaccagtgaaattgacctgcccgtgaagagg
-cgggcatgacacagcaagacgagaagaccctatggagctttaatttaTTAATGCAAACAG
-TACCTAACAAACCCACAGGTCCTAAACTACCAAACCTGCATTAAAAATTTCGGTTGGGGC
-GACCTCGGAGCAGAACCCAACCTCCGAGCAGTACATGCTAAGACTTCACCAGTCAAAGCG
-AACTACTATACTCAATTGATCCAATAACTTGACCAACGGAACAAGTTACCCTAGGGATAA
-CAGCGCAATCCTATTCTAGAGTCCATATCAACAATAGGGTTTACGACCTCGATGTTGGAT
-CAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCT
-ACGTGATCTGAGTTCAGACCGGAGTAATCCAGGTCGGTTTCTATCTACTTCAAATTCCTC
-CCTGTACGAAAGGACAAGAGAAATAAGGCCTACTTCACAAAGCGCCTTCCCCCGTAAATG
-ATATCATCTCAACTTAGTATTATACCCACACCCACCCAAGAACAGGGTTTgttaagatgg
-cagagcccggtaatcgcataaaacttaaaactttacagtcagaggttcaattcctcttct
-taacaacaTACCCATGGCCAACCTCCTACTCCTCATTGTACCCATTCTAATCGCAATGGC
-ATTCCTAATGCTTACCGAACGAAAAATTCTAGGCTATATACAACTACGCAAAGGCCCCAA
-CGTTGTAGGCCCCTACGGGCTACTACAACCCTTCGCTGACGCCATAAAACTCTTCACCAA
-AGAGCCCCTAAAACCCGCCACATCTACCATCACCCTCTACATCACCGCCCCGACCTTAGC
-TCTCACCATCGCTCTTCTACTATGAACCCCCCTCCCCATACCCAACCCCCTGGTCAACCT
-CAACCTAGGCCTCCTATTTATTCTAGCCACCTCTAGCCTAGCCGTTTACTCAATCCTCTG
-ATCAGGGTGAGCATCAAACTCAAACTACGCCCTGATCGGCGCACTGCGAGCAGTAGCCCA
-AACAATCTCATATGAAGTCACCCTAGCCATCATTCTACTATCAACATTACTAATAAGTGG
-CTCCTTTAACCTCTCCACCCTTATCACAACACAAGAACACCTCTGATTACTCCTGCCATC
-ATGACCCTTGGCCATAATATGATTTATCTCCACACTAGCAGAGACCAACCGAACCCCCTT
-CGACCTTGCCGAAGGGGAGTCCGAACTAGTCTCAGGCTTCAACATCGAATACGCCGCAGG
-CCCCTTCGCCCTATTCTTCATAGCCGAATACACAAACATTATTATAATAAACACCCTCAC
-CACTACAATCTTCCTAGGAACAACATATGACGCACTCTCCCCTGAACTCTACACAACATA
-TTTTGTCACCAAGACCCTACTTCTAACCTCCCTGTTCTTATGAATTCGAACAGCATACCC
-CCGATTCCGCTACGACCAACTCATACACCTCCTATGAAAAAACTTCCTACCACTCACCCT
-AGCATTACTTATATGATATGTCTCCATACCCATTACAATCTCCAGCATTCCCCCTCAAAC
-CTAAGAAATATGTCTGATAAAAGAGTTACTTTGATAGAGTAAATAATAGGAGCTTAAACC
-CCCTTATTTctaggactatgagaatcgaacccatccctgagaatccaaaattctccgtgc
-cacctatcacaccccatcctaAAGTAAGGTCAGCTAAATAAGCTATCGGGCCCATACCCC
-GAAAATGTTGGTTATACCCTTCCCGTACTAATTAATCCCCTGGCCCAACCCGTCATCTAC
-TCTACCATCTTTGCAGGCACACTCATCACAGCGCTAAGCTCGCACTGATTTTTTACCTGA
-GTAGGCCTAGAAATAAACATGCTAGCTTTTATTCCAGTTCTAACCAAAAAAATAAACCCT
-CGTTCCACAGAAGCTGCCATCAAGTATTTCCTCACGCAAGCAACCGCATCCATAATCCTT
-CTAATAGCTATCCTCTTCAACAATATACTCTCCGGACAATGAACCATAACCAATACTACC
-AATCAATACTCATCATTAATAATCATAATGGCTATAGCAATAAAACTAGGAATAGCCCCC
-TTTCACTTCTGAGTCCCAGAGGTTACCCAAGGCACCCCTCTGACATCCGGCCTGCTTCTT
-CTCACATGACAAAAACTAGCCCCCATCTCAATCATATACCAAATCTCTCCCTCACTAAAC
-GTAAGCCTTCTCCTCACTCTCTCAATCTTATCCATCATAGCAGGCAGTTGAGGTGGATTA
-AACCAAACCCAGCTACGCAAAATCTTAGCATACTCCTCAATTACCCACATAGGATGAATA
-ATAGCAGTTCTACCGTACAACCCTAACATAACCATTCTTAATTTAACTATTTATATTATC
-CTAACTACTACCGCATTCCTACTACTCAACTTAAACTCCAGCACCACGACCCTACTACTA
-TCTCGCACCTGAAACAAGCTAACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCC
-CTAGGAGGCCTGCCCCCGCTAACCGGCTTTTTGCCCAAATGGGCCATTATCGAAGAATTC
-ACAAAAAACAATAGCCTCATCATCCCCACCATCATAGCCACCATCACCCTCCTTAACCTC
-TACTTCTACCTACGCCTAATCTACTCCACCTCAATCACACTACTCCCCATATCTAACAAC
-GTAAAAATAAAATGACAGTTTGAACATACAAAACCCACCCCATTCCTCCCCACACTCATC
-GCCCTTACCACGCTACTCCTACCTATCTCCCCTTTTATACTAATAATCTTATAGAAATTT
-AGGTTAAATACAGACCAAGAGCCTTCAAAGCCCTCAGTAAGTTGCAATACTTAATTTCTG
-CAACAGCTAAGGACTGCAAAACCCCACTCTGCATCAACTGAACGCAAATCAGCCACTTTA
-ATTAAGCTAAGCCCTTACTAGACCAATGGGACTTAAACCCACAAACACTTAGTTAACAGC
-TAAGCACCCTAATCAACTGGCTTCAATCTACTTCTCCCGCCGCCGGGAAAAAAGGCGGGA
-GAAGCCCCGGCAGGTTTGAAGCTGCTTCTTCGAATTTGCAATTCAATATGAAAATCACCT
-CGGAGCTGGTAAAAAGAGGCCTAACCCCTGTCTTTAGATTTACAGTCCAATGCTTCACTC
-AGCCATTTTACCTCACCCCCACTGATGTTCGCCGACCGTTGACTATTCTCTACAAACCAC
-AAAGACATTGGAACACTATACCTATTATTCGGCGCATGAGCTGGAGTCCTAGGCACAGCT
-CTAAGCCTCCTTATTCGAGCCGAGCTGGGCCAGCCAGGCAACCTTCTAGGTAACGACCAC
-ATCTACAACGTTATCGTCACAGCCCATGCATTTGTAATAATCTTCTTCATAGTAATACCC
-ATCATAATCGGAGGCTTTGGCAACTGACTAGTTCCCCTAATAATCGGTGCCCCCGATATG
-GCGTTTCCCCGCATAAACAACATAAGCTTCTGACTCTTACCTCCCTCTCTCCTACTCCTG
-CTCGCATCTGCTATAGTGGAGGCCGGAGCAGGAACAGGTTGAACAGTCTACCCTCCCTTA
-GCAGGGAACTACTCCCACCCTGGAGCCTCCGTAGACCTAACCATCTTCTCCTTACACCTA
-GCAGGTGTCTCCTCTATCTTAGGGGCCATCAATTTCATCACAACAATTATCAATATAAAA
-CCCCCTGCCATAACCCAATACCAAACGCCCCTCTTCGTCTGATCCGTCCTAATCACAGCA
-GTCCTACTTCTCCTATCTCTCCCAGTCCTAGCTGCTGGCATCACTATACTACTAACAGAC
-CGCAACCTCAACACCACCTTCTTCGACCCCGCCGGAGGAGGAGACCCCATTCTATACCAA
-CACCTATTCTGATTTTTCGGTCACCCTGAAGTTTATATTCTTATCCTACCAGGCTTCGGA
-ATAATCTCCCATATTGTAACTTACTACTCCGGAAAAAAAGAACCATTTGGATACATAGGT
-ATGGTCTGAGCTATGATATCAATTGGCTTCCTAGGGTTTATCGTGTGAGCACACCATATA
-TTTACAGTAGGAATAGACGTAGACACACGAGCATATTTCACCTCCGCTACCATAATCATC
-GCTATCCCCACCGGCGTCAAAGTATTTAGCTGACTCGCCACACTCCACGGAAGCAATATG
-AAATGATCTGCTGCAGTGCTCTGAGCCCTAGGATTCATCTTTCTTTTCACCGTAGGTGGC
-CTGACTGGCATTGTATTAGCAAACTCATCACTAGACATCGTACTACACGACACGTACTAC
-GTTGTAGCTCACTTCCACTATGTCCTATCAATAGGAGCTGTATTTGCCATCATAGGAGGC
-TTCATTCACTGATTTCCCCTATTCTCAGGCTACACCCTAGACCAAACCTACGCCAAAATC
-CATTTCACTATCATATTCATCGGCGTAAATCTAACTTTCTTCCCACAACACTTTCTCGGC
-CTATCCGGAATGCCCCGACGTTACTCGGACTACCCCGATGCATACACCACATGAAACATC
-CTATCATCTGTAGGCTCATTCATTTCTCTAACAGCAGTAATATTAATAATTTTCATGATT
-TGAGAAGCCTTCGCTTCGAAGCGAAAAGTCCTAATAGTAGAAGAACCCTCCATAAACCTG
-GAGTGACTATATGGATGCCCCCCACCCTACCACACATTCGAAGAACCCGTATACATAAAA
-TCTAGACAaaaaaggaaggaatcgaaccccccaaagctggtttcaagccaaccccatggc
-ctccatgactttttcAAAAAGGTATTAGAAAAACCATTTCATAACTTTGTCAAAGTTAAA
-TTATAGGCTAAATCCTATATATCTTAATGGCACATGCAGCGCAAGTAGGTCTACAAGACG
-CTACTTCCCCTATCATAGAAGAGCTTATCACCTTTCATGATCACGCCCTCATAATCATTT
-TCCTTATCTGCTTCCTAGTCCTGTATGCCCTTTTCCTAACACTCACAACAAAACTAACTA
-ATACTAACATCTCAGACGCTCAGGAAATAGAAACCGTCTGAACTATCCTGCCCGCCATCA
-TCCTAGTCCTCATCGCCCTCCCATCCCTACGCATCCTTTACATAACAGACGAGGTCAACG
-ATCCCTCCCTTACCATCAAATCAATTGGCCACCAATGGTACTGAACCTACGAGTACACCG
-ACTACGGCGGACTAATCTTCAACTCCTACATACTTCCCCCATTATTCCTAGAACCAGGCG
-ACCTGCGACTCCTTGACGTTGACAATCGAGTAGTACTCCCGATTGAAGCCCCCATTCGTA
-TAATAATTACATCACAAGACGTCTTGCACTCATGAGCTGTCCCCACATTAGGCTTAAAAA
-CAGATGCAATTCCCGGACGTCTAAACCAAACCACTTTCACCGCTACACGACCGGGGGTAT
-ACTACGGTCAATGCTCTGAAATCTGTGGAGCAAACCACAGTTTCATGCCCATCGTCCTAG
-AATTAATTCCCCTAAAAATCTTTGAAATAGGGCCCGTATTTACCCTATAGCACCCCCTCT
-ACCCCCTCTAGAGCCCACTGTAAAGCTAACTTAGCATTAACCTTTTAAGTTAAAGATTAA
-GAGAACCAACACCTCTTTACAGTGAAATGCCCCAACTAAATACTACCGTATGGCCCACCA
-TAATTACCCCCATACTCCTTACACTATTCCTCATCACCCAACTAAAAATATTAAACACAA
-ACTACCACCTACCTCCCTCACCAAAGCCCATAAAAATAAAAAATTATAACAAACCCTGAG
-AACCAAAATGAACGAAAATCTGTTCGCTTCATTCATTGCCCCCACAATCCTAGGCCTACC
-CGCCGCAGTACTGATCATTCTATTTCCCCCTCTATTGATCCCCACCTCCAAATATCTCAT
-CAACAACCGACTAATCACCACCCAACAATGACTAATCAAACTAACCTCAAAACAAATGAT
-AGCCATACACAACACTAAAGGACGAACCTGATCTCTTATACTAGTATCCTTAATCATTTT
-TATTGCCACAACTAACCTCCTCGGACTCCTGCCTCACTCATTTACACCAACCACCCAACT
-ATCTATAAACCTAGCCATGGCCATCCCCTTATGAGCGGGCGCAGTGATTATAGGCTTTCG
-CTCTAAGATTAAAAATGCCCTAGCCCACTTCTTACCACAAGGCACACCTACACCCCTTAT
-CCCCATACTAGTTATTATCGAAACCATCAGCCTACTCATTCAACCAATAGCCCTGGCCGT
-ACGCCTAACCGCTAACATTACTGCAGGCCACCTACTCATGCACCTAATTGGAAGCGCCAC
-CCTAGCAATATCAACCATTAACCTTCCCTCTACACTTATCATCTTCACAATTCTAATTCT
-ACTGACTATCCTAGAAATCGCTGTCGCCTTAATCCAAGCCTACGTTTTCACACTTCTAGT
-AAGCCTCTACCTGCACGACAACACATAATGACCCACCAATCACATGCCTATCATATAGTA
-AAACCCAGCCCATGACCCCTAACAGGGGCCCTCTCAGCCCTCCTAATGACCTCCGGCCTA
-GCCATGTGATTTCACTTCCACTCCATAACGCTCCTCATACTAGGCCTACTAACCAACACA
-CTAACCATATACCAATGGTGGCGCGATGTAACACGAGAAAGCACATACCAAGGCCACCAC
-ACACCACCTGTCCAAAAAGGCCTTCGATACGGGATAATCCTATTTATTACCTCAGAAGTT
-TTTTTCTTCGCAGGATTTTTCTGAGCCTTTTACCACTCCAGCCTAGCCCCTACCCCCCAA
-CTAGGAGGGCACTGGCCCCCAACAGGCATCACCCCGCTAAATCCCCTAGAAGTCCCACTC
-CTAAACACATCCGTATTACTCGCATCAGGAGTATCAATCACCTGAGCTCACCATAGTCTA
-ATAGAAAACAACCGAAACCAAATAATTCAAGCACTGCTTATTACAATTTTACTGGGTCTC
-TATTTTACCCTCCTACAAGCCTCAGAGTACTTCGAGTCTCCCTTCACCATTTCCGACGGC
-ATCTACGGCTCAACATTTTTTGTAGCCACAGGCTTCCACGGACTTCACGTCATTATTGGC
-TCAACTTTCCTCACTATCTGCTTCATCCGCCAACTAATATTTCACTTTACATCCAAACAT
-CACTTTGGCTTCGAAGCCGCCGCCTGATACTGGCATTTTGTAGATGTGGTTTGACTATTT
-CTGTATGTCTCCATCTATTGATGAGGGTCTTACTCTTTTAGTATAAATAGTACCGTTAAC
-TTCCAATTAACTAGTTTTGACAACATTCAAAAAAGAGTAATAAACTTCGCCTTAATTTTA
-ATAATCAACACCCTCCTAGCCTTACTACTAATAATTATTACATTTTGACTACCACAACTC
-AACGGCTACATAGAAAAATCCACCCCTTACGAGTGCGGCTTCGACCCTATATCCCCCGCC
-CGCGTCCCTTTCTCCATAAAATTCTTCTTAGTAGCTATTACCTTCTTATTATTTGATCTA
-GAAATTGCCCTCCTTTTACCCCTACCATGAGCCCTACAAACAACTAACCTGCCACTAATA
-GTTATGTCATCCCTCTTATTAATCATCATCCTAGCCCTAAGTCTGGCCTATGAGTGACTA
-CAAAAAGGATTAGACTGAGCCGAATTGGTATATAGTTTAAACAAAACGAATGATTTCGAC
-TCATTAAATTATGATAATCATATTTACCAAATGCCCCTCATTTACATAAATATTATACTA
-GCATTTACCATCTCACTTCTAGGAATACTAGTATATCGCTCACACCTCATATCCTCCCTA
-CTATGCCTAGAAGGAATAATACTATCGCTGTTCATTATAGCTACTCTCATAACCCTCAAC
-ACCCACTCCCTCTTAGCCAATATTGTGCCTATTGCCATACTAGTCTTTGCCGCCTGCGAA
-GCAGCGGTGGGCCTAGCCCTACTAGTCTCAATCTCCAACACATATGGCCTAGACTACGTA
-CATAACCTAAACCTACTCCAATGCTAAAACTAATCGTCCCAACAATTATATTACTACCAC
-TGACATGACTTTCCAAAAAGCACATAATTTGAATCAACACAACCACCCACAGCCTAATTA
-TTAGCATCATCCCCCTACTATTTTTTAACCAAATCAACAACAACCTATTTAGCTGTTCCC
-CAACCTTTTCCTCCGACCCCCTAACAACCCCCCTCCTAATACTAACTACCTGACTCCTAC
-CCCTCACAATCATGGCAAGCCAACGCCACTTATCCAGCGAACCACTATCACGAAAAAAAC
-TCTACCTCTCTATACTAATCTCCCTACAAATCTCCTTAATTATAACATTCACAGCCACAG
-AACTAATCATATTTTATATCTTCTTCGAAACCACACTTATCCCCACCTTGGCTATCATCA
-CCCGATGAGGCAACCAGCCAGAACGCCTGAACGCAGGCACATACTTCCTATTCTACACCC
-TAGTAGGCTCCCTTCCCCTACTCATCGCACTAATTTACACTCACAACACCCTAGGCTCAC
-TAAACATTCTACTACTCACTCTCACTGCCCAAGAACTATCAAACTCCTGAGCCAACAACT
-TAATATGACTAGCTTACACAATAGCTTTTATAGTAAAGATACCTCTTTACGGACTCCACT
-TATGACTCCCTAAAGCCCATGTCGAAGCCCCCATCGCTGGGTCAATAGTACTTGCCGCAG
-TACTCTTAAAACTAGGCGGCTATGGTATAATACGCCTCACACTCATTCTCAACCCCCTGA
-CAAAACACATAGCCTACCCCTTCCTTGTACTATCCCTATGAGGCATAATTATAACAAGCT
-CCATCTGCCTACGACAAACAGACCTAAAATCGCTCATTGCATACTCTTCAATCAGCCACA
-TAGCCCTCGTAGTAACAGCCATTCTCATCCAAACCCCCTGAAGCTTCACCGGCGCAGTCA
-TTCTCATAATCGCCCACGGACTCACATCCTCATTACTATTCTGCCTAGCAAACTCAAACT
-ACGAACGCACTCACAGTCGCATCATAATCCTCTCTCAAGGACTTCAAACTCTACTCCCAC
-TAATAGCTTTTTGATGACTTCTAGCAAGCCTCGCTAACCTCGCCTTACCCCCCACTATTA
-ACCTACTGGGAGAACTCTCTGTGCTAGTAACCACGTTCTCCTGATCAAATATCACTCTCC
-TACTTACAGGACTCAACATACTAGTCACAGCCCTATACTCCCTCTACATATTTACCACAA
-CACAATGGGGCTCACTCACCCACCACATTAACAACATAAAACCCTCATTCACACGAGAAA
-ACACCCTCATGTTCATACACCTATCCCCCATTCTCCTCCTATCCCTCAACCCCGACATCA
-TTACCGGGTTTTCCTCTTGTAAATATAGTTTAACCAAAACATCAGATTGTGAATCTGACA
-ACAGAGGCTTACGACCCCTTATTTACCGAGAAAGCTCACAAGAACTGCTAACTCATGCCC
-CCATGTCTAACAACATGGCTTTCTCAACTTTTAAAGGATAACAGCTATCCATTGGTCTTA
-GGCCCCAAAAATTTTGGTGCAACTCCAAATAAAAGTAATAACCATGCACACTACTATAAC
-CACCCTAACCCTGACTTCCCTAATTCCCCCCATCCTTACCACCCTCGTTAACCCTAACAA
-AAAAAACTCATACCCCCATTATGTAAAATCCATTGTCGCATCCACCTTTATTATCAGTCT
-CTTCCCCACAACAATATTCATGTGCCTAGACCAAGAAGTTATTATCTCGAACTGACACTG
-AGCCACAACCCAAACAACCCAGCTCTCCCTAAGCTTCAAACTAGACTACTTCTCCATAAT
-ATTCATCCCTGTAGCATTGTTCGTTACATGGTCCATCATAGAATTCTCACTGTGATATAT
-AAACTCAGACCCAAACATTAATCAGTTCTTCAAATATCTACTCATTTTCCTAATTACCAT
-ACTAATCTTAGTTACCGCTAACAACCTATTCCAACTGTTCATCGGCTGAGAGGGCGTAGG
-AATTATATCCTTCTTGCTCATCAGTTGATGATACGCCCGAGCAGATGCCAACACAGCAGC
-CATTCAAGCAGTCCTATACAACCGTATCGGCGATATCGGTTTCATCCTCGCCTTAGCATG
-ATTTATCCTACACTCCAACTCATGAGACCCACAACAAATAGCCCTTCTAAACGCTAATCC
-AAGCCTCACCCCACTACTAGGCCTCCTCCTAGCAGCAGCAGGCAAATCAGCCCAATTAGG
-TCTCCACCCCTGACTCCCCTCAGCCATAGAAGGCCCCACCCCAGTCTCAGCCCTACTCCA
-CTCAAGCACTATAGTTGTAGCAGGAATCTTCTTACTCATCCGCTTCCACCCCCTAGCAGA
-AAATAGCCCACTAATCCAAACTCTAACACTATGCTTAGGCGCTATCACCACTCTGTTCGC
-AGCAGTCTGCGCCCTTACACAAAATGACATCAAAAAAATCGTAGCCTTCTCCACTTCAAG
-TCAACTAGGACTCATAATAGTTACAATCGGCATCAACCAACCACACCTAGCATTCCTGCA
-CATCTGTACCCACGCCTTCTTCAAAGCCATACTATTTATGTGCTCCGGGTCCATCATCCA
-CAACCTTAACAATGAACAAGATATTCGAAAAATAGGAGGACTACTCAAAACCATACCTCT
-CACTTCAACCTCCCTCACCATTGGCAGCCTAGCATTAGCAGGAATACCTTTCCTCACAGG
-TTTCTACTCCAAAGACCACATCATCGAAACCGCAAACATATCATACACAAACGCCTGAGC
-CCTATCTATTACTCTCATCGCTACCTCCCTGACAAGCGCCTATAGCACTCGAATAATTCT
-TCTCACCCTAACAGGTCAACCTCGCTTCCCCACCCTTACTAACATTAACGAAAATAACCC
-CACCCTACTAAACCCCATTAAACGCCTGGCAGCCGGAAGCCTATTCGCAGGATTTCTCAT
-TACTAACAACATTTCCCCCGCATCCCCCTTCCAAACAACAATCCCCCTCTACCTAAAACT
-CACAGCCCTCGCTGTCACTTTCCTAGGACTTCTAACAGCCCTAGACCTCAACTACCTAAC
-CAACAAACTTAAAATAAAATCCCCACTATGCACATTTTATTTCTCCAACATACTCGGATT
-CTACCCTAGCATCACACACCGCACAATCCCCTATCTAGGCCTTCTTACGAGCCAAAACCT
-GCCCCTACTCCTCCTAGACCTAACCTGACTAGAAAAGCTATTACCTAAAACAATTTCACA
-GCACCAAATCTCCACCTCCATCATCACCTCAACCCAAAAAGGCATAATTAAACTTTACTT
-CCTCTCTTTCTTCTTCCCACTCATCCTAACCCTACTCCTAATCACATAACCTATTCCCCC
-GAGCAATCTCAATTACAATATATACACCAACAAACAATGTTCAACCAGTAACCACTACTA
-ATCAACGCCCATAATCATACAAAGCCCCCGCACCAATAGGATCCTCCCGAATCAACCCTG
-ACCCCTCTCCTTCATAAATTATTCAGCTTCCTACACTATTAAAGTTTACCACAACCACCA
-CCCCATCATACTCTTTCACCCACAGCACCAATCCTACCTCCATCGCTAACCCCACTAAAA
-CACTCACCAAGACCTCAACCCCTGACCCCCATGCCTCAGGATACTCCTCAATAGCCATCG
-CTGTAGTATATCCAAAGACAACCATCATTCCCCCTAAATAAATTAAAAAAACTATTAAAC
-CCATATAACCTCCCCCAAAATTCAGAATAATAACACACCCGACCACACCGCTAACAATCA
-GTACTAAACCCCCATAAATAGGAGAAGGCTTAGAAGAAAACCCCACAAACCCCATTACTA
-AACCCACACTCAACAGAAACAAAGCATACATCATTATTCTCGCACGGACTACAACCACGA
-CCAATGATATGAAAAACCATCGTTGTATTTCAACTACAAGAACACCAATGACCCCAATAC
-GCAAAATTAACCCCCTAATAAAATTAATTAACCACTCATTCATCGACCTCCCCACCCCAT
-CCAACATCTCCGCATGATGAAACTTCGGCTCACTCCTTGGCGCCTGCCTGATCCTCCAAA
-TCACCACAGGACTATTCCTAGCCATACACTACTCACCAGACGCCTCAACCGCCTTTTCAT
-CAATCGCCCACATCACTCGAGACGTAAATTATGGCTGAATCATCCGCTACCTTCACGCCA
-ATGGCGCCTCAATATTCTTTATCTGCCTCTTCCTACACATCGGGCGAGGCCTATATTACG
-GATCATTTCTCTACTCAGAAACCTGAAACATCGGCATTATCCTCCTGCTTGCAACTATAG
-CAACAGCCTTCATAGGCTATGTCCTCCCGTGAGGCCAAATATCATTCTGAGGGGCCACAG
-TAATTACAAACTTACTATCCGCCATCCCATACATTGGGACAGACCTAGTTCAATGAATCT
-GAGGAGGCTACTCAGTAGACAGTCCCACCCTCACACGATTCTTTACCTTTCACTTCATCT
-TACCCTTCATTATTGCAGCCCTAGCAGCACTCCACCTCCTATTCTTGCACGAAACGGGAT
-CAAACAACCCCCTAGGAATCACCTCCCATTCCGATAAAATCACCTTCCACCCTTACTACA
-CAATCAAAGACGCCCTCGGCTTACTTCTCTTCCTTCTCTCCTTAATGACATTAACACTAT
-TCTCACCAGACCTCCTAGGCGACCCAGACAATTATACCCTAGCCAACCCCTTAAACACCC
-CTCCCCACATCAAGCCCGAATGATATTTCCTATTCGCCTACACAATTCTCCGATCCGTCC
-CTAACAAACTAGGAGGCGTCCTTGCCCTATTACTATCCATCCTCATCCTAGCAATAATCC
-CCATCCTCCATATATCCAAACAACAAAGCATAATATTTCGCCCACTAAGCCAATCACTTT
-ATTGACTCCTAGCCGCAGACCTCCTCATTCTAACCTGAATCGGAGGACAACCAGTAAGCT
-ACCCTTTTACCATCATTGGACAAGTAGCATCCGTACTATACTTCACAACAATCCTAATCC
-TAATACCAACTATCTCCCTAATTGAAAACAAAATACTCAAATGGGCCTGTCCTTGTAGTA
-TAAACTAATACACCAGTCTTGTAAACCGGAGACGAAAACCTTTTTCCAAGGACAAATCAG
-AGAAAAAGTCTTTAACTCCACCATTAGCACCCAAAGCTAAGATTCTAATTTAAACTATTC
-TCTGTTCTTTCATGGGGAAGCAGATTTGGGTACCACCCAAGTATTGACTCACCCATCAAC
-AACCGCTATGTATTTCGTACATTACTGCCAGCCACCATGAATATTGTACGGTACCATAAA
-TACTTGACCACCTGTAGTACATAAAAACCCAACCCACATCAAACCCCCCCCCCCCATGCT
-TACAAGCAAGTACAGCAATCAACCTTCAACTATCACACATCAACTGCAACTCCAAAGCCA
-CCCCTCACCCACTAGGATACCAACAAACCTACCCACCCTTAACAGTACATAGTACATAAA
-GTCATTTACCGTACATAGCACATTACAGTCAAATCCCTTCTCGTCCCCATGGATGACCCC
-CCTCAGATAGGGGTCCCTTGACCACCATCCTCCGTGAAATCAATATCCCGCACAAGAGTG
-CTACTCTCCTCGCTCCGGGCCCATAACACTTGGGGGTAGCTAAAGTGAACTGTATCCGAC
-ATCTGGTTCCTACTTCAGGGCCATAAAGCCTAAATAGCCCACACGTTCCCCTTAAATAAG
-ACATCACGATG
->chr20
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNGATCCAgaggtggaagaggaaggaagcttggaaccctata
-gagttgctgagtgccaggaccagatcctggccctaaacaggtggtaaggaaggagagagt
-gaaggaactgccaggtgacacactcccaccatggacctctgggatcctagctttaagaga
-tcccatcacccacatgaacgtttgaattgacagggggagctgcctggagagtaggcagat
-gcagagctcaagcctgtgcagagcccaggttttgtgagtgggacagttgcagcaaaacac
-aaccataggtgcccatccaccaaggcaggctctccatcttgctcagagtggctctagccc
-ttgctgactgctgggcagggagagagcagagctaacttcctcatgggacctgggtgtgtc
-tgatctgtgcacaccactatccaaccgatcccgaggctccaccctggccactcttgtgtg
-cacacagcacagcctctactgctacacctgagtactttgccagtggcctggaagcacttt
-gtcccccctggcacaaatggtgctggaccacgaggggccagagaacaaagccttgggcgt
-ggtcccaactcccaaatgtttgaacacacaagttggaatattgggctgagatctgtggcc
-agggcctgagtaggggagaagctcccactctcagaacactgagaaaagtgaggcatgggt
-ttctgggctggtacaggagctcgatgtgcttctctctacaagactggtgagggaaaggtg
-taacctgtttgtcagccacaacatcttcctaagggagccttgtgtccgggaaaaactgac
-agaccagtgatctgggtgcagaaggcttgagacaaaactagctggttgggccagctatgg
-ggcaaatgctggaaagaaacctggtcagggagcctgagctgagtggtccccacagtcatc
-tgcttggcaagaaaccctaggtcgcaggtgctagaccagctgcacacccacagcaacact
-gccatgcccaggatcctctgcccttgatcctgaatcaacagaccacttgcagatatactt
-cacagcccacgctgactctgccaagcacagacaaccactgggccccaggggagctgcagg
-tctcctggtcacctaatcttttttttttttatactttaagttttggggtacatgtgcaca
-acgtgcaggttacatatgtatacatgtgccatgttcatgtgctgcacccattaactcgtc
-atttaacattaggtatatctcctaatgctatccctcccccctccccccaccccacaacag
-gccctggtgccatggaatactatgcagccataaaaaatgatgagttcatgccctttgcag
-ggacatggatgaagctggaaaccatcattctcagcaaactatcaaactatcacaaggaca
-aaaaaccaaacactgcatgttttcactcataggtgggaattgaataatgagaacacatgg
-acacaggaaggggaacatcacacatcgggacctaatcttaagctaagtgtggctaagagc
-ctatctgctggcctttactattaagcactgcccactggattgcagcctgaattacaccgc
-caaacaaatactgtttcagcatacattaccagtgaaacccaatgcaggaacatagtcaaa
-aataaacacctggcatagagacttggccctctgaaaacacccagaaaaaagccagctata
-ttcaacatacatcactgtcaaaatatcaaggaaaatgaagaagaataaaacaaaaagtca
-aaaccaaatgataggaacttcaaaaagataaagtaacaccagctgtcttagatgagaaag
-aatcagcacacattcttgcaattcaaaaagtcagaatgtctccttacctccaaacaatca
-tactagctctcatcagattgaaatggctgaaatgacagacatagaattcatgatctggaa
-ggtaaggaagctcaagaacattcaggagaaagttgaaacccagtccaaggaagccagtaa
-agcaatccaagagtacagagataacatagccattttaagaaagaaccaaaagaaacttct
-gcaattgacaaattcattataggaattttgtaatacattcagaagcattaacaacagaat
-agatcaagttgaggaaagaatctcagagctcaaagatcagtcctttgaatcaacacagtc
-agacaaaactaaagaaaaaaatttaaaaataaaacctctaaaaaaatatggaattatgta
-aagataccaaacttacaacttatgggcattcctgaaagaggagaaagaataagtaacttg
-gaaaacatatttgaggatagtccatgaaaatttccccaatctccctagagaggctgacat
-gcaaattcaagaaatgcaaataacccctgtgagataactacaagataactatccccaaga
-cacatagtcataagattctccaaggtcaacgtgaaagaaaaaaatcttaagggcagctag
-agaaaagcctgaggtcacttatgaagggaagctcatcagactaacagcagacttctcagc
-agaaaccttacaaaccaagcaagattaggggcctatttttagcatccttaaagaaaagaa
-atttcagtgaagaattccatatcctgcaaaactaagcttcataaaagaaggagaaatagg
-ctgggcatggtggctcacacctgtaataccagcattttgggaggctcaggcaggaggatt
-gcttgagctcaagagtttgagaccagcctgggcaacatggcaaaaccctgtctcttctaa
-aaatacaaaaattacctgggcAAGACTCCATCACAAACAAACTAACAAACCAAAActatc
-aggtactatgctcactacctgggtgacaaaatcatttttacaccaaacccagtgacaagc
-aatttacccatgtaacaaacctgcatgtgtatcccctgaacctaaaataaaagttaaaaa
-aaaaagaaCTTTCATCAACatttcttgcagtgaaggtatgttagtgatgaacattctctg
-cttttattgcctgaaaatatctttattttgtattcatatttgacatatattctcactggg
-cataaaaattctaaattacaagtttttccccttttttgtattaaaaatttcattccaata
-tcttTCATATTGCCTTATTTGTAATGATGCCTTCTATCCTTCTTATCTTTGTTCCATTTA
-TAAGAAGTGTTCCCCAACCCCAGACTGATTAAAACCATTTTTTTAATTAAAAAAGCAAAA
-GAAAGAAACATTTTTATCTGAAGCTGTCTCAGACTCAGACACCACCCAATCTTCAGATTT
-CAAATAGCTTATACTCAAACATTTGGTAATATCAGCCCCTTAATGGTCTTCCTGGAGGGC
-AGATGCATTCTAGAGATGAGAACACGATCATGATTACGAATGCTACCACCACTACGAACG
-CACAAAAGTCACTGGTGTGATCCTTTCTCAGAACACTGTGGTAACTTCTGGACATTCTCT
-GCTGTTATCATTGCTTCTTCCTTCTGGGTTTTTTTCCCCCTTATATGGGCAGATAATTTT
-CTCCATTGGAATGAAAAAGTCTTGCTTCATGCTCTTtaactgtgtgaccttgggcgtatt
-actttactttggggcaaaccattttccttcttgaggaccaaatgtgctcttttataaaac
-gagcagttagaattagattgtctctctggacacggcttatgttgacaacctggatcacAT
-TAGAGGATCAcactgagacctttatgtcggcctcagttcctccatctgtaaagtagaggt
-tgggcttagattatAGATGATAAAGACACCAACTTTCctggaaaggattctggaaaggat
-tctgAACTTAGGCTCAGCCTCAGTAAGAAGGAGTTCTGTGATTAAACAGGGATGCCCACA
-CATCAGCAACAGAAATGGGCAGGTCAACCATGTATGCTGTGCCTCAGTGAAGATTTTATG
-CTATGCTGTGCATTTGATATCCATTCTCTATATTTGATATCCAATCTAAGATTATCTAGA
-AGGTCCTTTCCAAGACACTGATGAGATACATCTGTATAAATATATAACTCAGGATGAAAG
-CAACTTTTAACATTTAGCGTGTGCCTCTGCCTCTGATCTGATTACAGCCCACAGAGAAAT
-ATAAACAATACACAATACAGGCTAATGAAGAAGGGTGATAAGAtttttttttttttttga
-gacggaatttcactcttgtcacccaggctggagtgcaatggtgcaatcttggctcactgc
-aaccttcgcctcccggttcaagcgattctcctgcctcagcctcctgagtagatgggattg
-gaggtgcccaccaccacgcccggctaatttttgtattttttagtagagacagggtttcac
-catgttgtccacgctggtctcgaactcctgacctcaggtgatccgccagcctcagcctcc
-caaagtgctaggattacaggtgtgagccactgcaaccggccAAGGGTGATAAGattttaa
-aaatttatttaaaataCAGAAATTTCAAAAAGAGAGAAGTGCAGTGATAGCAAAATTGAT
-GCAAACTGTGCAAGCATGAAATCTATTTTATAGCTGAATCTACTTTTCTTGGTCCCAAGA
-TTCTATTTCCATTGGTTTTCAAATAGTTAATTCTATTGTTTTTTCAGGGAGATTACTAAA
-ATCACTAATAATTATTTTCCTACTGACACAAAATCTAAAAAGCACCATATAGACCTTCTC
-TCTCCATCTCCCCTTATCCTTATGTCACCTTACCCTACCCCAATACTCCAATGGCAGAGT
-ATCTACCCATGGCAGAGTAGAGAATATGTACACTAACAAAACCAGATGCACAGAGGTGGG
-GTATCCATCTCTGACTTGGCTGAGCTAGTCTAAGGAAGGAAGGCTCTGTGGCCATTGTCC
-TTGGAAGTCATTCTCACAGGTTGGTGGTATTCTCAAGTAGGTGGTGCTTGAGTGGCCCAA
-GAGCACCCACATGCTGCTATGCATTTTTCTGACAACCTCTTTATGATCTCTGACTTTGGC
-AGATCATCTTGCATCTCTCAATTGGAGAGTCACTTTTCTTATCTCCACAGAAAATTCTTA
-ATCAAGCTCCTGGTTTTCCTTTATAGCTTCTACTTTTTAAACTCACTTCTCCAACTTCAC
-CGCTACATCTCTGACAGATGAGAACATTAGAGATTCCCTGTTTTTCAAAAACAAAACAAA
-ACTCAGCAAAACTATAAATATACTAAGGGTAAGTCTGTATTATCTCCTGCCAAAATACAC
-CACCCTGCATTTTTTTAAATttttatcttttgtaggtacatagtaggtgtctatatttgt
-ggggtacatgagatgttttgatacaagcatgcaatgcataataaccacatcatggaaaat
-ggggtatccatcccctcaagcatttatcctttgtgttacaaattatctaattatacttta
-ttattttaaaatgtacaattaaattatttttgactatagtcacctcgttatgctattaaa
-taccaggtcttattcattctttctaactattttttgtacccagtaaccatcctcaccttc
-ccacacacgcccaccacctttcccagcctctgataaccatccttctactctctatctccc
-ttgaattcagtagttttgatttttagatttcacaaataagtgagaacatgcaatatttgt
-ctttatgttcctggcttatttcacttagcataatggcctccagttccatccatgttattg
-caaatgacagcatctctttcttttttatggctgaataatactccactgtgtataagttcc
-acattttctttatccactcatttgttgattgacacttacgttgcttctaaatcttggcta
-ttgtgaatagtgctgcaacaagcacaggtgtgcagatatctattcaatattcttatttcc
-ttttggaggggagtgtgtacctagcagtgggattgctggattgtatggtaactctatttt
-cagtttttttaggaacctccaaactgttctccatagtggttgtactatcttacgttcaca
-ccagtagcatacaagggtttccctttctccaaatccttgccagcatttgctattgcctgt
-cttttggataaaagccattttaactggagtgagatgatattccattgtagcttgattttc
-atttctctgatgatcagtgattttgagcaccttttcatctgcctgtttgccatttgtatg
-tcttcttttgagaatatctattcagatactttgcccatttttaagttggatcattagatt
-tttttcctatagaattgtttgagctctttgtatttcctgttattaatcccttgtcagaag
-ggtcgtttgcaaatattttctcccattctgtgggttgtcttttcactttgttgattgtgt
-gctttgctgtgcagaagctttttaacttgatgtgatcccatttgtccatttttgcttcga
-ttgcctttgtttgtgggttgctactcaagaaatttttgtccaaacatcctggagagattc
-cccagtttcttatagtagtttcatagtttgagatcttagctttaagtctttaatccattt
-gacttaatgttttgtatatggtgaaagacaggggtctagtttcattattctgcatatgga
-tatccagttttcccagcaccattttttaaagagactgtttttcccccaaagtatgttctt
-ggcaactttgtcaaaaatgagtttactgtagatgtgtggacttgtttctgtgttctctat
-tcttttccattgctctatgtgtctgtttttatactagtaccatgctgttttggttactat
-agctttgtagtataatttgaagtgaggtaatgtgattcctctagttttgttctttttgct
-taggatggctttggccatcctgcatttttAAcccttttcccattttcacccagaatactc
-gctggtggcacttgcagctgcagggtttaccctgagataactttgccacaaaatatctcg
-cctttattattattttcacatcgttctaatatatcgactttgaaaacacaaatcatcatt
-ctatttatagcatcttgttgttagcagtggtatttccatttacaaaatatagaaattctt
-gatcgctgaaaatgtcaaattctagaaagcatagcattcccatgttaacattgttctcaa
-acagttttgggccaaagagtcatttaatgaatccggttttttccaaaatagatgattctg
-attattcagatgattctgatgttagttctgtttaaaaataattccaagaacagtttgtat
-attttattttcacactgaacatcagtcagcctccagagcatgttaatgtaaaattaaatg
-aacatgggcagtgagctgcagttttttttctaaacagTGCAGCTGTTTAGAAAATTTTTT
-TAAAATTTTCCTGATTTCCTTGGTATTAAACATATGTGGGAGAAATACAGCTCAGCAAAC
-TCTTCCAGGAGATAAAATGCTGATCACTCCTACTGGGCAATTTCACAAATGTCTCCTATA
-TTTTTCTCCTTTGGTAGTGGGGATGGGGGGCATAATGTTACATTGGGCctctctcctctc
-tctctttctctctccctctcCTTTTAAAATGTTTCCTCTCTCTCAATATTTCATTTCTTA
-TTTGTATTTCTGAATGAGGGAAAAGAGTTGATGGGACAGCGGAACGGGAAAAAGAAGAGC
-ACCAATAAAACCTGTTTTCCTGTTTTCACTATTTTCATTCCAAATTCCTTCTGTCTCATA
-ATTGATGGAATCTTATGAACTTATTAGTTAAAAAGTGTCTTTCTTGTTTCACAGGAATTC
-ATATCGGGGTGATCACTCAGAAGAAAAGGTGAATACCGGATGTTGTAAGCTATTGAACTG
-CCACAAGTGATATCTTTACACACCATTCTGCTGTCATTGGGTATGTACAAAGTGCTGCAT
-ACAGACAGAGGAGAAGGACAATTGAGCCCATCTAAAGTTAACAAAAACTTCCTCTTGGGG
-CTGTTTCTTTCCATCAGACCTTACAGTTCTACGGGATAATAGCTTATCTCATAAGGCCTC
-AGCTTTCTTTAATAATTTCTAGAAGCAGACGTTATTGTGTCATGCACACTCAGTGTTGCA
-AATTAATGGTCTGGTGATCTGGGTGGCATGGCATTTTCCCCTTCTCTGGTTCATCACCCA
-TGATAGACCAGTAAAGGTGACCACTTAAATTCCTTGCTGTGCAGTGTTCTGTATTCCTCA
-GGACACAGAGCTTCCTCTCTCCCAGGAGCCATGAATATCCTGATGCTGACCTTCATTATC
-TGTGGGTTGCTAACTCGGGTGACCAAAGGTAATGGAACCCTATAAAGCAGAGATGATGAC
-TAGGATGAGTTGTTGCCCTTGGGCTCCCCTGGTATCATGATGGGAAGAGAGGGAATCTGC
-AGGAAAAATCTGGGCCAACAAAGAGCAGCAGAATGCTCTTATTTTGGCAGCTCCATGCCC
-CTAGTCTCTGAGAATCTTTCTGTTAGGGGCATCTAGCAAGCTGGGATGTCCTCTGAGGCA
-TTTCTCCAAAGACAAGAATTTCCTTAATGCTCTGAGCCACCCTATCTGTCTCTCTACATA
-ACTATCCAATGTTAGTTCAGCCTCACTTCACTTCCATTTCGATTATTCTGTTGTATCTAT
-TTCATTGTTGTGTCCTATTAGTTCTCCTACCATCTTGAATTCTTCTTTGCCCGGAGGGTA
-CCTTCAGAGGGAGGCCCTCACTTTCATGTTCTTAGATATGGTGAACAAGTCCATTGACAG
-TTTGTAGATTCTGTAGCACTATCATATGGAAGAGACAATATATATGTTTGGGGTAGAAGT
-GGAAATAAGTGGAGTGAAGACAGGATAGACAGACTAGTGACCAATGGGGAGCTTCTAATT
-TTAGATGAATAGGAACAGTCTGTTTCCACTATTTAATAATGCTACTTTTGAAAATTGTTA
-ACTTTTTATTAAAAAATAATACTTGCAATTGACTTATGTATCAAGCAATCGATGGATTTA
-TAGGGTTTAAGGAAAAGAAAAATGTTTGTCTGTCCAAGAATACCAGTTCTTCAGTCTTCC
-CCTTCAGAATCAATCAATGTTACCAATTTCTTATATATCCTAGCAAATACAAATATATTT
-ATATTTGCATGTGTATACCTTTTAGATTTTTAAAAAATGCAATTGCAAATGCACCATGTG
-AATTGTTCTGCAATGTACTAGCAATATATTAGAGACATCTTATCCATACATAAACCTAGT
-TCATTATTTTTAATCGATAAGTAAAACTTTGAGGAGGAGCAGATGAATTGCCTCACATTA
-ATTACTCCGCTACTGATGAAAAATAGGTCTTTAATTATCAAAAACAATTCAGCAAGAAAA
-ATTTGTAAACAAATGTATGTCTTTTCATTTATGACTGGACACGTGGacacacacacacac
-acacacacacacacagtcaaaccacctaccagaaaagctgaactattcttctctcctatc
-accagttgcaagagtgtcagcttcccacaccctcatcagtcctttttgttttttctacta
-cattcagttttctactacattcagttttacagtctaatatgtgaaaatgatgtcctgatg
-tttgaattcatgacactttagttataaatgagtttgaacatccagtccattagatttcta
-aactttcttAATTATCTTTATATACTAAGAAATTTGGCTTTTGTTAAATTTGGAGGTGTT
-ATATGTTGCCTAGAAAGATGCTATTCATGTCTATTAAATGGTTATAACTGTGCCTATGAT
-CTGTTATGTCTTGATTCACATGTTGATGTAATGTGAGTTACAGAATTAATATCTACATTC
-ATTTCTGATTATAAACTGCTGTATTTGTTGAAAATTTGGAAATTTTGAAATTGTAAAGAA
-GTAAAAAAATTGTAAAGAAGTTAAAAGAGACAAAATATTTTTGATCTATTGTTCTTCCTC
-AGTTTTCTTATTTGAATAAAAATGTATAGCATACTTATAAATTTTCTATTATACTATTAG
-TATTTTCCCATTTACTATTTTCAAAAACTGTATTTCCAATGACTGTATAAATTTTATAGA
-ATGGATACTGTTTAAATTACTTAGCCAAATTGTTTTTGCATAAATAAGTGCATTTACATT
-TTATAGACAAGGATGGCTAGTATAACCTTTCTTATACATAAATCATTCAGCATAAAATTC
-CTGGAGATGTACTTTTTTCTGTCTGCTTCATGTGTTATCAATTTTTGAATACTTGCCAAG
-TCCtaaaaatgaaatattatatataaatatttaatttttatttatGTCTGTGAGTAATGG
-GGAAGTCGAACTTCAAATACATGCTTAATGTATATTTAACTTTTCTACAAATTGTCTATG
-TCTCTCTTTCTCTTTTATTTTGGAGAGGTAGTTTTCATTTCTTTTGATTTAGAGATTTTC
-ATTTTTGTGTTCTCTTATAGGTTTTGTTTTGAAATTTAGCTATTTAGTCTCTCTGGGCTT
-TATATTATGTGTTTTCAAGTGAGATAGCACCTGATGGCTTGTGAAGCAACTTTTTACCAA
-GCCAAGCTATCAGTGGACTGGTATCCATAGATATATtttaagttgatgctagctgattat
-atatctggtatgttttagaaagaactccacacatgggataatgttttggctagatggctc
-cCCTACTTAGAAACATACAATTGCTAGTCATATTTCTAATTTTAGGATTTCGAGATACTG
-GTGATGAAGATCACATGTCCTAACAACATAATAGTTCCAGACTGAAGTTCTTTGAAAAAA
-ATGACTGTTGTCACTTTAGAAAAAAAAAATTATGAATTATTCCcaattgccatcattcta
-ctgctaaaaccaaattcttggaattatctatgatttttctatatcctatgacactcatat
-ctatcaggaagtctattacatctgcctgcaaattatatccagaatgcaattattctcgcc
-acctccattgctgccactctgattctagtcaccatcatctctcacctgtgttattgccat
-agcttcctcatgagatctgtccttctgctcttccctgccaccatcttgtgaagacacata
-gtgcatgatccgcttacactggaagtcagatcatgtacttttgctcaaaactctgctatg
-gccccctctatactcagagcggtaacaagagtccatacagtggctcacctggccctgcag
-gatctggcccttatgacctctctcacctcatctcctactattatagtccttgttcactcc
-actacagccacacaagccccagtgctcttccccaaacatatcagacttactcaacccata
-gagctttgtttgtttcctctgcctagaatgtacttgcctcagatactggtgtgactaatt
-cctttacctccttcaagctgtttaatcatcaccttgttacacaggcttgtgcaactcctg
-tttatgaatcttctattacccttaaatctattctcccttctttctgcaaaccatttgtca
-ccttttcatctacaaaataatgtacttttttattAAGGTAAAATATACATTTAAAAATTA
-CCATCCTTACCATGTTTTTACCATatttttatgtatacctgatggctgtttgtatgtctt
-ctgttgagaaatgtctattcaaatcttttgcctgttttaaaatcagattatttgtttttg
-tttgctatggagttttttgagctccttatattaatatactttttgttgttaattcctcgt
-cagatggatagcttgcaaatattttctcctactctgtgggctacatcttcactttgttga
-ttatttcctttgctgtgcacaagctttttagtttgatgtaatcctaattgcctatttttg
-ctttggttgcccgtgcttttgaggtcttacccaagaaatctttgccaagaccaacgtcct
-gaagtgtttccctaatgtttttttcaggtagttccatagtttcaggtcttagatttaagt
-ctgtaaAACCATACAGTCTAGCAGGGAGTGCatttactttttattatctgtctccctctg
-ctagaaagtcagctccatgtgatttttgtctgtttagttcacagatgtacctcaagggcc
-caggatagtgcctgtgccatagtaggggcccaaaactttgatgactgtgtgaCTATAGCC
-TAATTTAAGAATGGAGGGGATAATTTAAAAGCAGTAGGAAGGAATGTAAGTGAGAAACAA
-TTTTGAAGAATAATTGACAGAACAAGGCGATTCAAAGACAAAGGAGAAGAAGAGAGCCAA
-GATGACATATTTCAAGTATGGATAATGCTGGAGGAAAAAAATTAAGATATAAATCTTTGT
-AGATGTGAGGAACGAAGAAGCAAGGTTAGAGTCTGTCTTGCACAAAAGAAGTGGAAGGTC
-TAGACTTGAAACTTATAGAAAATTCCACGAAGTACAAAGTAAAATCGAGCCAGTAAAATA
-ACAAAGATAGAATAAATGACTCTAGAGGAGTGAAGGTAGAATAAATAATTGGTGAAGCTG
-GACTAGAGCCAACATTTCCCAGAGGATAAAATATAAACCAAATTATTGTGAGCCTAatat
-atacatacatacatacatctatatatgttttatatatatTATCACATTAAGTTCAAATAA
-GGTTGTTTAGAAAATTActtgctcttctgcacatataccaggcttcctcctccatagagc
-cttatctctagctgcttcctctgcctagaatacacttATCTAGGTACTCCTTGGGCAATT
-GTCTTGAGAAAGATGATCATGCCGTTTACTgcttgataaatgaacatacaatgcagcaca
-ctagtttccctttagatttatatcctcacccctcaaatgagtagtcacactgcttggaaa
-tcctactgcatttctcttgtaaatgaaccttccttcttttttttttttttttgagacaga
-gtctttctctgtcaccaggctggactgcagtggcccaatctcggctcattgcaaccgcca
-actccctggttcaagtgattctcctgcctcagcctcccgagtagctgggatcacaggcat
-gtgccaccacatccagctaatttttatatttttagtagagacaggttttcaccaggttgg
-ccaggatggtctcgatctcctgaccctgtgatccaccctcctcggcttcccaaagtgctg
-ggattacaggtttgtaccaccacacccagccatcttccctcttttttagacaactatttt
-gtcctgacctttatttgtcttttattttcctgctcctctcctctacatggctctccccct
-cagtttatcccatgccccatttatttaaacaattcaaataggaagttttcactcatttcc
-tctgtcccctttgccataaatggagaaacgtgtcttctccatctaaagatcagtctgctc
-tgtgtgaatttgtgactatgcccttctgtcatctcatcaccctattctatattaatctct
-ccttttctgcttttttttttttttttttgagatggagtcttgctcttgttgcccaggctg
-gaatgcagtggcacaatcttggcttactgcaaccttcgcctcccaggttcaagtgattct
-cctgcctcagcatcctgagtagctgggactacaggtgctcgccaccatgcccagctaatt
-tttgtattttttagtagagacagggtttcaccatggccaggctggtctcgaactcctgaa
-ctcaggtgatctgcccgcctcgatctcccaaagtgctgggattacatgtgtgagccactg
-cgcccagactgcttgtctcttttctcattgcttgcaagcaccatttggtatttctcgttc
-ttcaaaacaaacctgaaagctttcccttaaccttacattgctctctaacaagttatttat
-ttctctgcttttctttggatctaaacttcttaagagtttcatctacaggtcctgcattca
-cttctctctcattcacattttgaccaactgcaatttggtttcttttttcataccactcgg
-aagctgctctcctcagtatgaagttaccttcatactactaaaagcatggacattttcctg
-ccttcatcatttttttttaacctctcagcagtatttgactacaaaatgaccactctgtcc
-tttaagaaacagtctcctctcctgCTTAATGTAGTCACATCTGATACAACTTTCCCCATA
-ACCTTTTATGCATTTTCTGTTTTCATGCATATCAGCCCAACTTGCAATTGTCAGTATCTC
-CAGTCTTTCAACAACTGCTTGTGAAATACCCCTGTACAGGGCAATCCAGAAATGCCAGAA
-AATTATCAGCTGTCTCTGGATCATCTGTCAACTATGGGGGAAGCTGGATAAATAGTCCAG
-GTCCTTTGAGCCTCATGTAGAATAACTTTGAGGCTTGGTAATATTTTTTTTTTCCTGTGG
-TAATTCCCTTATTTGCAGTTCAAGGCTATTATGGGAAGAAAACATAAATGGATGTTAGTT
-CTTCAAGGTTTTTACTGTAACTGTGCACCCTTTCATTCTTCAAGGTTTTTCTGTAACACT
-GCACCTTCAGGACCTGATGCCCAATTAAACATTTTTTTAAGTTTTTTGGTTTTTTTTTAA
-TAAAAACTAAATGCTATTTTTTCttctacttttagttgatgtgtaataattgttcatatt
-tagaagatgcagagtgatattttgatacatgtatacaatgtgtaatgatcaaatcagggt
-aattagcatatctatcacctcaaacatttgtcatttttttatattgggaacattcagaat
-cgtctcttctagctatttgaaaatatacagtaaatgattgttaactaccgtcaccctaca
-gtgctatagaacagtggaccccttttggcaccagggaccagttttgtggaagacagtttt
-ttcgacgaggtgaaggtggtggtggggatggtttcaggatgaaactgttccacctcaggt
-catcaggcattagagtctcacaaggaacacacatcctagatccctcacatgcacagttca
-caatagggttcatgctcctatgagactctaatgccttggctgatctgacaagagatggag
-ctcaggtggtgatgcttgcacacctgctgttcaccttttgctgtgcagcctggttcctaa
-caggccatggaccagtacccattggctgcccaggggttggggacccctgctataggatgc
-tggaactttttcctcctatctaggtgtaattttctatctgttaaccaacctctctctatc
-ctcctttcccttcccagcctctagtaatcattattctacagtctacttctatgaactcaa
-cttttttagctcctgcttatgaatgaaaacatgtggtatttatctttttgtgtctatttc
-acataacggaatgtaacatgtcccccaggctcatccatgAGTCTGAGGCTTATTTGTAGC
-CTGGCTGCTGGGCTTCCCTGTGGGATTGTCCTCTGAGCAAACAGAACACAGCCATCCTGC
-TGGCCAGCAGTTGATAGATGATCTCATGATAATAACAGGTTATAACTCACCTTTTCTTGG
-ATTTCTTGCTTTCCTGATTTCTACATTTCTCCACTGATTTTTTTTAAGGAGGAATTGTCT
-CTCAACTAAACTATTATATTCAAATCTTTGCTGGAGCTCTGCTCTGCTGGGGGTCTGCTT
-TAAGACTCTAGAGTCTTattctcctgttttgatctgacttatcttattggtccttttaag
-tcgtttcctcttatctgatctcttatctcttaatattgaaactcactagaatttaattct
-agtcctctttttttctcatattattccaacccaccatggtttaccaatttctgtacttta
-aatgctatccataagcaatcacatttattgatttgcatatgtcgaaccaaccttgcattc
-caaggataaaggctacttgatcgtagtggataagctttttgatgtgctgctggattcagt
-ttgctactattttgttcaggatttttgcactgatgttcatcaaggatactggcctgaaat
-tttttttttcttgtgtctctgctaggttttggtctcaggatgatgctggcctcatagaat
-aagttaaagcggagtcctgccttctcaattttgggtgaatagtttcagtaggaatgatac
-cagctcttctttgtatatctggtagaattcagctgtgaatccatctggtcctgggctttt
-CATTTTCATCCTTTCTTTCTAGGTTTCGTATCAGTCTCAGTATGctctctctctctccgt
-ccctctctttttctacatttctccttttctcCATACAACTTCTTTGATGGCACATAGCAC
-AATTTTAATATACACTTTTTGTTCTCCTGTTTGTCTCTTACAATGGCTTTTTGTATTTGA
-CATCATATTAGTCTAGATGTCAGTCAGTGTAAATTTTTGAATGAATGAAAAGTTGTTATG
-TTGATGCCAGAGTTAAAAATTTGACCTATATTTTATTCTCTACAGGTAGCTTTGAACCCC
-AAAAATGTTGGAAGAATAATGTAGGACATTGCAGAAGACGATGTTTAGATACTGAAAGGT
-ACATACTTCTTTGTAGGAACAAGCTATCATGCTGCATTTCTATAATATCACATGAATATA
-CTCGACGACCAGCATTTCCTGTGATTCACCTAGAGGATATAACATTGGATTATAGTGATG
-TGGACTCTTTTACTGGTTCCCCAGTATCTATGTTGAATGATCTGATAACATTTGACACAA
-CTAAATTTGGAGAAACCATGACACCTGAGACCAATACTCCTGAGACTACTATGCCACCAT
-CTGAGGCCACTACTCCCGAGACTACTATGCCACCATCTGAGACTGCTACTTCCGAGACTA
-TGCCACCACCTTCTCAGACAGCTCTTACTCATAATTAATTAACATTTACTTCTGGTATGG
-AACAACTAGAAATACTGCTGGAAATAATATCCAAAGAGCTGATTCTACCAATCCAATTTC
-ACCAGGAAAATTCCATCAGGGATTGGATGACCATGGGGATGGACATAATTGCTACTACCA
-ACACAACAGCCAAGAGAGTTGCCTTACAATTAGAAATGTGTAGACAGAAATGTATAGAAG
-ATACAAGGATTCTCTTAATTGGACTTAAATTCTTTATCTGTCTTCCTCCGATGTACTCAA
-ATATATGAGCTAATTTTTGTCTTAAGTGAACATTTGTATATCTATGTATTTTTCCATGCC
-AAAAACAAAAACGAAGACCATTGTTTGGAGCTGCCTCTTATGACTAAGACAAGAATTTTT
-ACTTTAACAGTGCCTGGCCCACTACTATCGTATATAGGAGAACATATAAAAGCATATAGA
-AAGTTCCAGATGAATGTTCCCTTCTCTACCCTCCACCTTTTATTGTAAGTTCTGACCCTA
-AATACTTTTCTGTGTCATGACGTCAAATTTTGTTTAAGGTTCTAGCTGGTAACTAACAGA
-GTCAGAAGCTAATTCTTTCATTCAACACAAGCACTGATCTAACTGGATAGAGATAAAAGT
-GGGACTTGCCTTGAGAGTACATCATATTAAATTAAAAGCTGCATCTCAAATTCTACTTAT
-CTTTCCAATCTTCTTTCCACTTAGAATTCCAACTTCCAAGTATGGCAGCCTCATAACATG
-CCTCTTCAGGTCTCTGTGTTGTCCATGAATGTTAGTTGTGTGCAGTGTTTCTATGCTTTG
-TATGGCTGTACGCATGTGACTGCTGTTTGTATGGCAACAGGTGGGTCAGTAAGTGTCTTC
-TATGATACTACAGAGAAGCGGTTATTAACTATAAAGTTGATTAGGttttttttttttttt
-gagacagagtctagctctgtcgcccaagctggagtgcagtggcatgatctcggctcactg
-caagctctgcctcctgggttaacgccattctcctgcctcaggctcccgagtaactgggac
-tacaggcacccactaccacacctggctaattttttgtatttttagtagagaggggtttca
-ccatgttagccaggatggtctcgatctcctaacctcatgatccatccgccttggcctccc
-aaaatgctgggattacaggtgtgagctactgtgcccggctGATTAttattttttttaagt
-tccaggatagaagtgtagaacatgtaggtttgttacataggtatacatgtgccatgatgg
-tttgctgcacctatcaacgcatcatctaggttttaagtcccgcatgcattagctatttgt
-cttaatgctctgcctccccttccccacacaccctgactggcccccatgtgtcacgttccc
-ctccctgtgtccatgtgttcttattgttcaattcccacttatgagtgagaacacgtggtg
-tttggttttctgttcctgtgttagtttactgaagatgatggcttcgagcttcatccatgt
-ccctgcaaagagcatgatctcattcctttttatggctgcatagtattccatggtgtatat
-gtaccacattttctttatgcagtctatcattgatgggcatttgggttggttccatgtctt
-tgctattgtaaatagtgctgcagtaaacatacgtgtgcatgtgtctttataatagaatga
-tttatattcctttggatatatacccagtaatgggattgctgggtcaaatggtatttctgg
-ttctacatccttgaggaatcgccacactgtcttccacaatggttgaactaatttacattc
-ccaccaacagtgtaaaagtattcttatttctccacagccttgccagcatctattgtttct
-tgactttttaataattgccattctgactggcatgagatagtatctcattgtggttttgat
-ttgcatttctctaatgatcagtgatgttgagcttcctttcatacgtttgttggctgcata
-aatgtcttcttttgagaagtgtctgttcatatcctttgcccactttttgatgtttttttt
-ttcttgtaaatttaagttcttgtagattctggatattagacctttgttagctgggtagat
-tgcaaagcgttcctcccattctgtaggctgcatgttcaccctgatgatagttttttttgc
-tgtgcagaagctctttcatttaattagatcccatttgacaattttggcttttgttgcaat
-tgcttttggtattttcttcatgaagtctttgcccatgcctatgtcctaaatggtattgcc
-taggttttcttctagggtttttatggttttgggtattacatttaagtctttaatccatct
-tgagttaatttttgtataaggtgtaaagaaggggtcccgattcagttttctccatatggc
-tagccagttttctcagcaccatttattaaatatggatcaaattcacacataacactatta
-accttaaatgtaaatgggctaaatgccccaattaaaagacacagactggcaaattggata
-gagtcaagacccattggtgtgctgtattcaggagacccatcacacatgcaaagacacaca
-taggctcaaaataaagggatggaggaaaatttaccaagcagatagaaagaacaaaatagc
-aggggttgcaatcccagtctctgacaaaacagactttaaaccaacaaagatcaaaaaaga
-caagagcattacataacggtaaagtgatcaattcaacaactagagctaactatcctaata
-tatatgcacccaatacaggagcactcagattcataaaacaagttcttagaggcctacaaa
-gagacttagactcccacacaataatagttggagactttaacactcagtgtcaatattaga
-cagatcaatgagacagaaaattaacaaggatattgaggacttgaactcagctctggatca
-agtggacctaatagacatctacagaactctccaccccaaatcaacagaatgtacattcgt
-ctcagtgccacatgacacttattctaaaatcgaccacataattggaagtaaaacactcct
-caggaaatgcaaaagaactgaTTAGTTATTAATAAATTGGGCTGAGGCTTGGGCGCTACT
-GAAAGCCACAATATCAGATGCCAGAATGTCTCAAAATCAAAAAGGTTTTTTCCTCTAATT
-ATTTTTTATGTGATCCAAGCCAAGCTGCCAGTGACTATGGCTGTAGTTTGGATGTTGACC
-ATCAGACCACTGACCTTTCAGTAGACCTCATATTCTAATAGGTCTTAGACCACCAGTtag
-ggtgtccatcattcagatttgattgggactgaggggcttcccagaacatgggaattagag
-agctaaaatcaagaaaatccagagtaaattgggacaagttgatcaccctCACTTCAGTGT
-ACTTCTGTCTAGCAAGCTATTTTTCCATTTTTCATGGCTATACCTCATCACATAGGTCAT
-ACATTGGCTTTTCACAGAATCAGTCTAGGGTGCTCTTTTTCCATATTTTTGCCTCAACTG
-TCATTTCCTGAAACACACTCCTTGAGCATGCAGAACACCTTCCATTCTACTTTGTATTAT
-TTTCTTCCCATCATTTGAACTCTGAAATCATTTTGAGTATTTACTCTCTCTCTGATTTTT
-TTTACTAACTTATGGCCTAACACCCCTGCTATAATGTACATATAGTCCTCATCTCTTGgt
-cttgttgacctatgtgatccaaactgcaagaacagtgcgtcacacatgagaaatgctcaa
-taaaaatttgAGAACAAATTATTCAGGCAGTTATCTTAATATATATGAGAAGGTTATATA
-ATATAAAAcagtagtcttcaaactgcaatactggttacaaaaagatttttcaagctatac
-atattgatagtttaaaggaataaaatttcagaccctcaagttccaaatttcttatgatgt
-tttggagcattcttaacaggctcttcttttataactccaatttctcaattttccttctcc
-cactctgaaaagaaaacttacctctcacccaccctttatctgacaatcatggattgccct
-gagtgaacaaacctccagtggacaattgaaatactagtgctggTattcagaaagtgaata
-atcatagactttgaataaaaatcctttggaaataaaagtgtttttaatttttttgtttac
-aaaagcaatgatggggtgtcaatcaagttgatggttaatattaaatagatctttgaagat
-aaactttaataatagcctactatgaaattttttagcatatcacttggaagaggttaaaag
-aactgtgtaaacattagagtcttatgttcaaagagatttcacaataagctacaatgtatg
-tctatgttttgtcacagagaaatgtgatagaatgattaataaaagacttgcaaacacaaa
-aatatagtacattaggatcaaattttgcagagaagtttgaataaaaactaaagttttaaa
-aagaaaaaagatacaatgttcccaattgctaaaaaagagcttctttgcatatttattaaa
-tgaattattgtgattagcaaattgtcatgcattcatattccattggatgtatttagtatt
-tagttgttacatgtcaatatttgtaatatgctattagttatctttttatgattaaaattt
-aagatgaaatagtttatttcccaattttaaattgtattgggaaaatacacactttATTTT
-TATACCTAGCATAGACTTTTTGTTCCTTCTAATTGGAAAAAGGCTTTGCAATTTGCAATT
-GGTATATGTGTGACTTCTAGAAATGTGGTGTTCTttttttgttttttgtttttttgtttt
-ttttgagatggagtctcactctgtcgcccaggctggagtgcagtggcgccatctcggctc
-actgcaagctctgcctcccgggttcacgccattctcctgcctcagcctccctagcagctg
-ggactacaggagcacgccgccatgcccggctaatttttgtatttttagtagagacggggt
-ttcaccctgttagccaggatggtctagatctcctgacctcgtgatccgcccaccttggcc
-tcccaaagtgctgggattacaggtgtgagccaccgcgcccggccCAGGAATGCTCTTAAC
-CACTTCATCAAGCATCAAGGTTGGCACTGTCTAGATGTTGGTTTTGATTGCCAACCTACA
-AAAGAAAAGGGAAATTATAAAAGAGAAAATTAACAAGTGAGTACAGTTTCAAAATCTGTC
-CTGCAAATGTGTTTTAAACCAAAGAAATCATCTTTGGCATGGGCTATTTGCTTTATAGTC
-ATTCAGAATTGCTTGGTCTCTGTCTCCTGAAGACTGTGGCTAGGATTATTCCTGATGAAT
-GAGAAAGTTACCATAAATCAAAAATAAAATGAATAGAAAACTTAACAGTTGACTCTCAGA
-AGAAGGTATCTTCCCTCACTTTGCACTGGTtatatatatatatatacacacacatacata
-taATTGTATAATATGTATTAttttataaattgatttagaaggtacaagtgttgttttctt
-atatgcatatattacatagtggtgaagtctgggcttttagtttagccatcacccaaatag
-tgtacattgtacccattaagtaatttctcatttcttagcccccttctacccttccaagtt
-tccagtgtctattacccactccttatgtccatgtgtatacttagtttccacttgtgagaa
-catgtagtatttgactttctgtttctgagttatttcacttcagataatgAAAACATTCAC
-TTCAGATAATGAAAACACACTTTTCAAAATTCAAAGAGGTTTGAAAAGCTCATGGCCTAA
-TACCCCCACTATAAATTTTATTTTTAAACTGTTCATACTCCTAGAATGAACAGAGGCTTC
-AAACACTATCTGGTATAAACTGATGATGATTCTTCTACTACTGTGATCATTCTGTTTTTC
-TATGATTCCTGGATTTTCCTTTTCCATGAATGTGGGCTTTGCAGCATAACTTCTAGTTTG
-TTTATATCATTGCCCTTTAGGATCTCCTGTAGGCTCAGTAATCTATCACTTCCCTATATG
-GGACTGACCTCCAAATTACTGACTTTATATGTTCTCTCTCTCTCTCTCTCtgtgtgtgtg
-tgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtTTAGTATTTGCATTTTG
-CCACATTCTTATATAGTTTCCAGCTCAAGTCTGAAATTCTCTACCtctttatctatgctg
-tccatattaggtatatgatttgataagttagacatgtgacatatatttcccccattctct
-gggttgttttttcattatatcaatggtgtcttttgaagtagagcagtttttaattttgat
-gaagttctcttttttaaaaacacttttctttttggtgtcatatctaagaaatcattccct
-aatttaaggtcataaaggcttattcttgtgttttcttctaagggttttagctttcacatt
-tagctgtacgatcctttttaatttaatttttttgtatgatgtaaggtaggggtccaaatt
-cattcttttgcatgtggctctccagtttctccaacactatttgataaaaagactatttac
-ccactgaattgtctggacacccttatagaaaatcaattaataataaatgtGataatttgg
-gcagatctttggagagaaagcaccaagagtggatggagaggcaacactgacaccaaagct
-gaagagagaggaagctggaatctctgcatgaggtgcctgaacattagggctagttcctga
-ccctgagtggctcctggggaaggggtaagtaaggggactaaggaacatcccgcttttgcc
-atggacctctgggatcatagctacagggtaccccatgtccctcatggatttgtaggctag
-cagggagcaggcagagacagggcttcagccagtgtgaagcccaggagcttttgtgcatgg
-ggcagctctggcagcgcatgaccgcaggtgcccatccccaagggctccccatcttcttct
-gagaggctgtagccccagctgactgctggacctggagagagtggcgccagctttgccatg
-ggactggggtgcatctgttctgcaggctctcctgcctgccagcccctcccatggcccctg
-cctagccaccctgcaggagcatgagcacagcacagcctccaccactaagccggagtgctt
-tgctccacctgagtacattcccagtaacctgggagcacttcagatccctcagtgcagctg
-gagcttgaccccaagccacagatcatccccgtgccccagggctgcagcacacagcttggg
-agcatgcagctgagatctgtggctgacaggcaagtagaggagaggcccccaatatcagaa
-cataaagggggcaagatgtgtgggttcatgggccagcttgggagcaaggtgtgcctccct
-ctgcagggttggtctggaaagggtgtggcccatctccctgccatggcctctgcccaagga
-agccccacagcctggaacacctaacgaaacacagaaatgatgccagtgatcagggtgggg
-tccctaaaggcccaagagcagatctggtgaggagttttctctcccactccactcaccata
-gaacatgcctgcaaatggaaggacatgcaaaagagctgagtaacagcctatgtaccagtc
-actacttaagcatcaatgactagatctcagccccaactacagcaccaaaaatgattctgc
-taatatacacccctgtgaaaccaagtgcaagactttgcccatacataaagatcctgtaca
-gagccacggacctctgaaaacatccagaaatgaactcaactgactatattcaacttacac
-cacatttaaaagaaaaccagcccccctcccaccagaagagaaagaatcaatgcaagaacc
-ccagcagttcaaaaagccagggtgtccccttacctcaaaatcagcccactatctccccag
-cagtggtccttaaccagactgaaatgacagacatagaattcagaatccaaatggcaagaa
-gctcattgagatttaggagaaagttaaaatccaatccaaggaatccagtaaaatgattca
-agagctgaaagatgaaatagccattttaagaaggaaccaaactaaacttctagaactgaa
-aaatttgctacaataatttcataatatgacagtataacagtattaacagaatagaccaag
-ctgaggaaagaatctcagagctcaaaggctggtccttcaaatgaacaaagtcagaaagaa
-aaaatctttaaaactgaacaaaaccaccaagaaatatgagattatgtacagaaacaaaac
-ttctgacacactagcattcccgagaggagggaaagagagtgaacagcttggaaaatatat
-ttgaggatatactccatgaaaatttccctaatctcactagagaggttgacatgcaaattc
-aagaaatacagagaaccccagctagataaaatacaacatgaccatcccaagaaacatagt
-catcagatttgccaaggtcagcatgaaggaaaaaaaatcttaaagccagctagaaagaag
-ggtcatgtcatatgtaaagagaaccccatcaggctaacaccagacctctcagcagaaacc
-tgacaaaccagaagagattaggggcctttttcagaatccttaaagaaaagaaattctaac
-caagaatttcaaatcccatcaaactaagcttaataaacaaagaggaaataaaatatttct
-cagacaagcaaatgctgaggaaattcatcacaaccagatatgcctccttacaagagattc
-ttaagggagctctaaacctacaatcaaaagaacaacacctgctacaaaaaaaaaaaaaaa
-aacatacttatgcacataaagacactataaagcaactacactatcaagtctacataataa
-ccagctaacaacacaatgacaggataaaaatctcgcatatcaatactaaccatgaatgta
-aatggactaaacaacccacttaaaggacacagtgtagcaagattgataaaaagacaagac
-ccaactatctgctgtctttaagagacctacctcacatgtaactacacccacaggctcaga
-gtaaagggataaagaaagatctgtcacacaaatggaaaacaaaaaagagcatgagttgtt
-attcttatatcagataaaacagactttaaatcaacaactatgaagagggacaaagaaggg
-cattacataataataaaggatacaattcagtgagaagacttaactgttgggcctggagag
-agtgggaccacctttgccatgggactggggtgcatctgttctgcaggccctcctacctgt
-agcccctccgaaggcccctgcctagccaccctgcagaagcatgtgcacagtgcagcctcc
-actgccaagcctgagtgctttgctccacctgaatatgtttatattctaaacatatatgtt
-cccaacattgaggcacccagattcataaaacaagttcttcttaacctataaaaagatgta
-gatagccatgcaataatagtgggagacttcaacaccctactgagagtgttagacaaatca
-ctgaggcagaaaattaaccaaaaaatcctggacttcaactcaacgtttgaccaactagac
-ctaacagacacctacaaaatattccacccaacaacaacagaatataacttccttcttctc
-tttggcacgtggaacatattccaagattgaccacatgctcagtcataaagcaagtctcaa
-taaatttaaaaaagtcatgctgagcccattctcaggccacagtttaataaaaatagaaat
-gaatatcaagaagatctcttaaaattacacaaatacatagaaatgctcctgatacctggg
-taaacatcaaattacagcagaaaattaaaaaattatctgaattttttattaaaataggga
-cacaatttaccgaaatatctgtgatacagccaaagcagtgttaagggaaatttatagtgc
-taaacgtcatcatcaagaagttagaaagatctcagattaaccatcaaagtttgcacctag
-aactagaaagaaaagaacaaaccaaccccaaagctagcagaagaaaaaaaaattactaaa
-attagaaaagaactgaaaaaaattgagatgcaaaattccatagaaaggaccaataaagcc
-aaaaggtggttttttgaaagaataaaaaaggttgatagactgctagctacataaccatga
-agaaaaaagaagaccaaaataaatacaataaaaaatgaagaagatgacattacaatgaat
-cccacagaaatacaaaagatactcagagatcattttgaacaactctatgcacacaaattg
-gaaaatctagaggaaatggataaattcctggaaatataaaacctcccaatattaaagcca
-aaggaacatgaaaacctgaacaatcaataaacaagttcctaaactgaatcaataataaaa
-acctaccagcccaaaaaaaccctggaagagatggattcacagcctaattctaccagacat
-aaaaagaactggtatcaattctactgaaactattccaaaaaaatctaggaggagaggctc
-ttccctaactcagtctatgaagccagcatcagccagataccaaaatctgtcagagacaca
-aataaagaaaacctcagaccaatatccctgattaacatagatgcaaaaattttcaacaaa
-atactaggaaaccaatcccagcaacagatcaaaaaattaatacatcagaatcaagtaggc
-tttattcctgggatgcaaggctggctcaatatatgcaaatcaataaatgtgattcaccac
-ataatcagaattaaaagcaaaaaaatatgatcatctcaatagatgcagaaaaggatttga
-aaacaatccaacgcaccttaatgataaaaacccacaacagactaggcactgaaggaacat
-accgtaaaataatgagccatctatgacaaacccatagccacgatcattctgaactggtaa
-aagccggaaccattccctttcagaactgcaacaagacaaggatgcccactctcaccatgc
-ctattcaacatagtactggaagtgctactagagcaatcaggcaagaaaaagaaataaaag
-gcatccaaataggaaaagaagaagtcaaactatccctcattgctgatgatatgattctac
-acctggaaaaccccaaatactctggcaagaggcttataatactgatgaacaacttctgta
-aagtctcaggatacaatatcaatgtcaatgtacatttctatacacaataaccttcaacct
-gagagtccaatcaagaacacaatcccatttataatagccataaaaaatgaaaatccctag
-gaatacagctaaccaaggaagtgaaaggtctccacaaggagaactacaaaatacttctgc
-aagaaatcagagatgacacaaataaatataaacaattccatactcatatatcaaaaagat
-caatgtcatttaaatggctatacattccaaagcaatctacagattcaatgctatttctat
-caaactacaaaaactgcttttcacagaattataaaaaaactattctacaattcatatgga
-atccaaaaagtacccaaatcaccaaagcaatcctaagcaaaaggaacaaagccagaggca
-tcacattatctgacttcaaactatattataaacccacagtaaccaaaacagctgatactg
-gtacaaaaataaacatatcactaatggaacagaatagacaacccagaaatgaagccacac
-acctacagacatctgatctttgataaagacaacaaaaataagcacagggaaaagaccccc
-tattcaataaacggtgcttgggtagctggctaaccatatgcagaagaatgaaagtggacc
-cctgcccttcaccatatataaaaattaactccacaaggattaaatatttaaatgtaagat
-cttaaactataagaatcctggaagaaaacctggaaatacccttctcaacatccacgttgg
-taaagaattcttggctaagtctccaaaagcaattgcaacaaaaacaaaaattggcaagtg
-ggacctaattaaactaaagagcttctacacagcaaaagaaactctcaacagagtaaacag
-acaacctacagaatgggagaaaatattcgcaaactatacatccaataaaggtctaatatc
-cagaatctataaggaaattaattcaataagcaaaaaaaaatcccattaaaaatgggcaaa
-agttataaacagacacttctcaaaagacatacaagtggccaaaaaacatgaagaattctc
-atcatcactaatcatcaaagaaaggcaaatcaaagcaattagataccatctcataccagt
-cagaatggccattattcaaaagtcaaataatagcagaagctagtgaagctgtagagaaaa
-ggaaacacatacactcttggtgggaacaaaaactagttctgccagtttggaaagcagttt
-ggagatttcttaaggaacttaaaaatagagctaccatttgacccagaaatctcattagtg
-ggtatctatgcaaaagaaaacaaatcattctaccaaaaagacacatgcagccctatgttc
-atcgcagcactattcccaatagtaaagacatgaaatcaacctatgtgctcatcaatcatc
-aatggtggattggataaagacaatgtgttacatattcaacatgaaatactatgcatccat
-aaaaaagaatgaaatcatgttttctgcagcaacatggatgcagctggagaccataattct
-aagcaaattaatgcaggaacagaaaaccaaatactgtatgttctcacttataagtaggag
-caaaacattgtgtagtcatcaacataaagaaggaaacaatagacaatgtggattactaga
-gggaggagggaggaaggggggcatgggctgataaactaactattgggtactatgctcact
-acccaagtgaaaggaaacataacccaaacgacagcatcacacaatatacccatgtaacaa
-acctgtacttgtatcccatgtatctaaaataaaagttgaagttataaagaaaaataagtg
-ttagagtttatttcttggctcacaattctactccattgttatatatgtttaGCTGTACTG
-Aggggtctccaagatcaccctcaagtttgatgactcactagaaaaactcaccagacctat
-aaaaacgattatactcatggttacagcttaatacagttaggagatacagattaaagtcag
-caaaggtaaaaggtgcacagagtgatgcctaggaaaaaacaggtatgagctttcagttgt
-actcttcctccagaatcacacgaatagaactcaattcttccaaccataaggtatgacaat
-aagtgcaaaatggtgccagccattttcagtgggagtcaatcacataagcatgaagcatcc
-ccaagactgaatttagctactcaatcttcagcccctaaccttaggagtcaagctaatacc
-gcttggcctgaagccccagtcatagaaaaaaatatatgatttattcaccataaatcacat
-tgttagcataaactatttggcatgggccaagtctcaggtatacaaagacactttatcagg
-caggataattaaagggctcagagattatctgccaggacctttgaaatatgcagggttagg
-acaaccccaaatcttctgagttaaccctttattacacaGTCCACCCCATACCCCTTAGCC
-TAGGCTGTCTTTCAGCAAAACAATTCTATATTTCTGAGCATCTACATTTAGTATAGCATT
-TATATAACAGATCTAGAAATAGTATCAGTATGAAGAAAGATCTCTAGTTATAGTAGATAA
-AATATAGCAGTGGAAGGCCCAGCATACCATGGTTGTGCTATGCTCAAAAACATTTGGAGG
-AGCTAGTGTGGGGTAGGGATAAAGATTTTAAAAACAACTAATCTATCTCATAAAGCCATT
-ACATACATTTTCATATTTTTGTACTGATTTGTTACTTGTTTCTCCCCTTGATCTACCACT
-TTAATCTTACAGCTGCAGAATTATTTAGCCTAGAAATTAGTTTATGGTTAACTAAATCCA
-ATTCTTCCTTAGGCTAGTCATTTTCCATTGGTAATACATCCTGAGGAGGCTTAACTCAAT
-CTCTCAATACATTTGATCATCAGTATCAGTACCATCCTATGACTTATTTAATAAGGTGGC
-TGAATCTTACCAACAATAATAGTGTCACACTGTATAGCAATATAGTCATGGAACAATTTA
-GTTTCATTCATAGAACAAATTAGTAAGGCTTACGTAAGTTTTGCTATGCCTTCCCAACAG
-AAACAGTCCTTGCTTATATACAAGATATACTTATGGACAAGCATTGTTATAATTGTTAGA
-ATGATTTGATTATTTCTGGCTTCCATGTCAACGGAGGACAAAGACAGCCACCCCGTTTTA
-GTTTTCAAGCTTGGACAGAGACTGGTTTCCATTGTGTGATTTTCTACAGCAGGACCTCCC
-CACCCTCCTATGGGAGGTCACAGGTGATATTCAGATAGCTTCAGTCCCTACTAACTGTAC
-TGCAGAATATGTCTTATTCTGAAGCTCTAATGGGGCAAGAATAATTTGTAGTGCATCAAT
-GCACATTTACAAATGCCCTGAGAGGTCTTTCATAAGTTTGAAGGCCCATGAGATTCCCAT
-AAGTGTGTCCCTTTTTCCTCAGCAACTAGGATGTAGTGCTATTTCCCCATGGTTACTTTG
-ACCTTCATCTGTAATTAAAACAGTCAAAAGGCACTGTTGGGTCAGGGTACAAGCCCTTTC
-CCAACGTTGGATCTTAGCATTATCTAGCATTATTTTTGAGTCTACTTGTTTCATTTTAAT
-AAAGCCTCATCACTTTCTCAGGATGACCCTCATCTTTTGCCTTCCTCCTAGAAAAGAATT
-CTCTCCAATCTGCTCATTTTAGTTCAGTAATATTTCCTCTAGACTTCACTAAAAGGGAAT
-TCAGCTTGTCCCATGATGCCTGAACTGACACCTAATGCCCCTAAAAAGTCTGTTTTATGC
-ACAAATGTAGTTTAATTCACCATGCATGTTGTTGGCATTGTATACTTATGGCCCAAGTGC
-AGTTAGCATATGTGGTTTTTACCCCAAAATGCGGGTTCTTCATATATAGATTAGATGAAT
-TGTAGTCAAACTAGATCTAATTTAGTTTTTAGTATGTTTTAATGCCTTTCATAATCTTTT
-TTGTCTCAGGGTGGGGCCATTACCCCAGGGGAATTCAAGTCACCGTGTAATGGCTACTGC
-TTTAATCCCATCATGTATTAATTGCCATTCTCTCttttttcaactttcattttagattca
-ggggatacatgtgcaagtttgttacctgggtatattgcatgatgctgaggtttgggatat
-gaatgattttgtcacacaggtctgagcatagtacccagtagttagtttatcaaaccttgt
-ccaccgcctacccagtagtacccagtgtctattgttttcatctttatgtccatcagtact
-caatgttcagcctccacttacaacatatggtgtttggttttctgttcctgtgttaattca
-cttagtattacaacatccagctgcatccatgttgctgcaaagagcataatttcattcttt
-attatggctgcatagtatttgatggtgtatatataacacattgtctttatccaatccacc
-atagatgggcatgtaggttgatttcatgtctttgctattgtgaatagtgctgtgatgagc
-tataactgcatctgtcattttggtggaatgatttgttttcttttgcatagatacccagta
-atgagattgctgggttgaatggtagctctatcattaagttccttaagaaatctccaaact
-gctttcaaactggctgaactaatttacattcccaccaagagtgtaaaaatgttcagtttt
-ctctgcaacctcaccaacatctgtttatttgtttttcatgtttgagtaatagtcattctg
-actgttgtgaaatggtatccagtcatggttttgatttgcattgctctgatgattagtgat
-gatgagcatttttttcatatgtttgttgagcacttatatgtcttcctttgagaagtgtct
-gtttgtgtcctttgcccattttttccatgagtttttttttcttattgaattgtttaattg
-ccttatagattctggatattagatctttgttggatgcatagtctgtaaatattttcttcc
-attctataggttatctgtttactctgttgagagttttgtggtgcagaagtttaattaagt
-cccactttccaatttttggtttttgtttttttcaattgcttttgagaacttagtcataaa
-ttattttccaaggtgatgttgagaatggtgttttctaggttttcttctaggattcttttt
-tctttcttttttttttttttttttttttttgagatggagtctcactctgttgcccaggct
-ggagtgcagtggcgtgatcttagatcactgcaacctccacctcctgggttcaagctgttc
-tcctgcctcaacctcctgagtagctgggattactggtgcatgccaccacacctggctaat
-ttttgtatttttactggagaccagatttcaccatgttggtcaggctggtctcaaactcct
-gacctcatgatccgcccacctcagcctcccaaagtgctgggattacaggtgtgagccgct
-gcgcccagctcttctaggattcttaaagttttggatcttacatttaaatctctaatcgaa
-cttgagtcaatttttatacatggtgaagggcaggggtccatttcattcttctgcatatgg
-ctagccagctatccaagcaccattactgaattattgaatagaattattgaatagggagtc
-ctttctccatgataatttttgttgtctttgttgaagatcaaatggctgcaggtttgtggc
-tttatttccaggttctccattctgttccattggtttatgagtctgtttttgtaccagtat
-catgctgttttggttactgttggcttatagtttgaagttaggtcatgtgatgcctccagc
-tttgttccttttgcttaagtttgctttgactattggggctcttttttggtttcatatgaa
-ttgtagaatagattttctaattctgtgaaaaatgataatggcagtttgatagaaatagtg
-ttgaatctatagactgcattgggcagtttggccatttaaatgatattgattcttccaatc
-catgagcatgggatattttttcatttgcttatattatttattatttcttttagcagtgtt
-ttgtagttctcccggtagaaatctttcacctccttggctaaatatttgcaatgtatttta
-tttttcatgtggctgtcatgaatgggattgtgttttgagactttgctgaagttgtttatt
-aaatctggaagtcttttggtggaatcattagggttttctaggcgcatagaatcacattgt
-cagcttagagagctaatttgactttctcttttcctatttagacaccttttatttccttgt
-cttgcctgattgtttgggctaggatctccaattctaacagctttcagtggagtctaggtt
-tttctaaatataagattatgctgtctgtaaacagggataatttttttcttttactgttaa
-ttttcagagttttatattttatttattatgtgtagtctgcaaatacattctgtaaggtta
-ttgcttgtctttttattttcttaacagggtcttttgcagagcaaattttaagactttgat
-gaagttaaatttgtcaattactttttatggattgggctttttgtgtcatgtctaaaacct
-cataaccaagcattaagctccatagattttctcctatgttttcttttaaaagctttatgg
-ttttacatcttacatgtgattctatgaccaattttgagggcttttttttcatgtatgtgg
-ggtgtttaggtaagttaattttttttaacctgtggatatgcaactgttccatcacctata
-tttaaaaagattattcttccttcatttaattggttttatatctttgtaaaaaaaatcaat
-tggctatactagtatggttctacttccggattctgtattcttttccattcatgtatgtgt
-ccattcctctgctaatacaaatcttggttactgaagctatacaacaactttcataattgg
-gtagaattaatttctccgactttattctattttttcaagattgactaatccattctagct
-attttgcctttccatataaattacagaataatctgtgtatatttagaaatatcttgatgg
-cagtttcaagatggctgactagaagcagctagcgtgtgctactctcacggagaggaaaca
-aagtagcgagtaaatagtggcttttcaagtggatcgtctgggagaccacatcaggattca
-ccaaggaagtgagggaatcctcagagagcagagagtgaagcctggcagcagccgctcacc
-cgggaccagtgtggagcaagagaaattccctaacatggggaaagggtgagtaagtgagag
-tcctcaggggatccacatggatctttgcaatcctgtgcacaggagaaccccttggcccct
-ataggcctctagatcgacacaacatcctggagtttgtgtagacgcactgctaagggccat
-gtggagccccacaggccctggatccctgatcaacctggtgccagctgccatagccctgat
-aggggctgcagtcatggtgctgaggagtggtcagactgccctgctcctcctcaccaggca
-aggctcggctttggcttccagtgcaacagtctgcctccacctgaactctgcatgtgggca
-cactctacactcccctgggaaccactcagatggcggattgtgtgactcccattcccctgc
-tgctccgagccaggcaaggctagctggtttgggcttcaacacagcacctctgcccctacc
-tgaacactgtagtgggttgcagctttccattcccctggggcaaaactcacagaggtaaca
-gatAATGCCTGGCACCTTTGTGTGTTGCTAATAGTGAAGTTCAACATTATTGGATAGGAG
-GGAGGTGCAAGCATGCCAGGCATTCCACAGCTTCCAGTCTCCATTGCCCCAGCTAAGGGA
-TGGCATGCTCTCCAGTTAAAGGCCCACAGCACAACTGTCCTGCCCCTGCCTGAACATTTC
-ACCTGCGACCCAGAGCCTTTCCGAAAACCCACCCACCACAGGCCTGTGATATTCTTCTGG
-GTTCCCACCACCCAAGAATCCCACcttcccctgcctgagagtttggctggtgacccaggg
-accagcctgaaccccacccccaccccattacagtcagcacctgaaatctgggatagataa
-ccccagtccagccccttcagggccatgcacactgtccagcaggccttctggaggcctgtc
-agctgagaaactatcaatacccttccagtgctgttggcacctgaccaatttcctcagggc
-ctgaggttgggcctacccaaccagcaaacaccaccatgaccaacaccgacctgcacggac
-cCAAAGGTGGAGACCTTCCTTCTCAAAAAGCAGCAGTAATGCCCCATCATagaataagtg
-agccttaaagctatctgtatcaggttgagtgatgaggttataccctgaacaactctcatg
-gagaatcataaaacaagtgttccctgtggccctcaaccacattgcagtccagagatagac
-tatagtgtgcatctgaactaggagtcatgagccctgaaacagggtgtgataaggaaacag
-atcacatttctacctacctaggatggggagctggtgcagtcttctcgcccacaagcccct
-acagagacctcagtgcaggagttgctcccagccacgctcatcagagctggtgcctgtgct
-tgccattggtatactaatgggcaagccaggggcaccagctcttctcagctctgtcccacc
-atccccacagaacaagaagctcagtacatcaggcacccccactgtccagcccttcacctg
-aaacaactgagagcccctaatagtaaaaaaagatcagatctatacccatctgtttatggg
-acagctggctgttacttgcaaatgtcatctaccagtctataggtcaaactggacagccca
-tcaaaaaacctgctggtagaagtgtgtaggactatagaaacaaagccaaaagccctaccc
-aacacaatcccctccagataagaaggaactagtataagaattctgctgtcatgaaaaatc
-tgaatgtgtgacaccaacaaggttcactctagctctccaggagtggtcctagccaaaata
-gaagctgagagatgacagatggagaattcaaagcatagattgcaggaaaattctttgaga
-ttcaagataaggttgaaaatcaacacaaagaaacctgtaaagcaatccagagaataaagg
-aagaggtaaactcttaaaaataaatctatcagagctactgaaagtgaaaaactcacttaa
-gacattccgaaattcaatgaaaagttttatcaatagactagatgtagcagaagaaagaat
-ttcagagcttgaagatcagtctttcaaactaacccagtcagacaaaataaagaaaaagtt
-attttgaaaaatgaaccaaatcttcaagaaatatgggattatgtaaagtgaccaaaccta
-tgaattactggcattctcaagagagaaagaggaaaaagtaaacaacctagaaagcatatt
-tgagggaataattcaagaaaatttcctttatcttgctagagaggtagacatccagataca
-ataaattcacagaacacctgcaagatgctatacaaagtgaacatcatcaagacatagggt
-catcagacagtctaaggtcaattctaaagaaaaaatcttgaaggcagcctagagaaaagt
-gtcagatgagttacaaaggtgagcccatctggctaacagcagacttatcagcagaaaccc
-tacaatcccaaagagactgggggcctatttaaagaattctcaaagaaaagaaactccaag
-caagaatttcataccctgccaaactaagctttataagtgaaggagaaataagatcttttt
-cagacaagcaatcactaaggcaatttattgccactagaccagccttacaagagatcctta
-agggagttggagttctaaacataaagatggaagaacaatatctgccaccacaaaaccaca
-cctaagtacatagcacatagaccctttaaagctattacacaataggaactataaagcaac
-cagcttacaatttcatgacaggatcaaaatctcacatatcaatattaaccttgaatgtaa
-atggtcttaacaccccacttaaaggcacagagtggcaagttggatcataaaataagaccc
-atccatctgttgtgttcaagagacccatctcacatgtaatgacTACTACACTAATTTTAT
-CGGGTTTTTTTCCCCATTGCTTATAAGTTTCATTTTATGGTATGTTATTTTGATTGTATG
-CCAAACATTGGGTAAATGGGTTTTGGAGACTCCAAGTGATGTTATCTTCAAACATAAAAG
-GTCCTCCCTTTCTCCAGATAGCAAAGAGATAAGGACATGACTAATTCAATATAACAAGGC
-ATTAAGCTGGTTCAGGGCTGGGTTTCAGTATTAGTAATGATTCCAACCACATCTAGTTTG
-GTCCTGTTTCTCAGGAATAGCCCTCCAGGCTTTTTCTTCAGGGTCTGTTTGGTCTCAGTA
-TCTTCAGCCCAAAAAAACAATGAGGGAATTCTAGCTCTGTTCTTTATGGTTTTCAAACAT
-TGCTCTTCAGCCTCCTGATTCAGGCACTTCTGTAATGTCTCAAGGGGGAGACTATCTGTG
-TGCTTGAGGTAGGCTCCATATCACTATCATATCTGTTTCCTAAGCACTACAAGAGTACAA
-GAAATCTCTTACTGCCTTTCGGAAGTTTCAGCTGAGCTTTCCAACCTCTCACAAAGCTCT
-ACTTTTCCAATGCTCCATTGGGGGGACTAAAATTTGGGGCACCTGAAATTCCAATTTGTA
-ATTCCTAGAATCTCTGCTACTTCTGCTGATTCAATTACCTCCCAGAAAGCCTTTCTTTCT
-GGGCCAAGCCTGATTTCCCGTCTGTCCCAAACTGACAAAGGCACCCATGGGGGAAATGGC
-TGGCAATTATTGACCTACTCCAGAAACAGAAAGCCTGTTCTGTTCTCTCTTTAGAATATC
-AACTCTTCTAGTACCAGTAATTTCTCTGGTTCTCTAATGCCTTGGaaatattattttaat
-aaaaatCAAGCTTTTCTAGGTTTTGTATCAAAGGCATTGCTTTTCTGTGATTTACTGATT
-TCTCCCCAAGAACAGAACTTCTCAGgcccatttaatcttaacttaattgctgttatgttt
-ggctttaaattggccattgtttaacgtgatttacattttcctgagttttctatatttctc
-ttttttctcctttcttttaatctttctgtataaaccagatgttctttaattccattttcc
-tccccactagtttttaatgtattctccttttctattcatcatcactctagaaatgaagac
-atacattcttaacctatcaatatctaatattaaccaaaaatgtgtatttctcctcagaca
-atgcatggaatacaactccatttcacctgcctccagtttatattctattgctttatttta
-ctttcatataatactaagacaatattattgcatgcgtgacaattataggtagttctattt
-tctgggtgactccaacaagttatcattataaagtaacccattttcctctaagataatttt
-tgccttaaatactattttgttcaatactaagaagtaagataacttccttttgttggtatt
-tgcatgttaagtttttttcccatatttccactttcaatcttctccgtatcttgtttttac
-atttatctgttgtaaatagcatctaatttttcatccagtctagcaactagagttaatcca
-taaatttaccaatctctgaataatatatggaacatagaccactttaattctatttaacgc
-tcccaattgattctattttcagaattttgatatttaattatgtttttaatcttataaaac
-atctttatttaattctGCCAGTTTAATCCACTtttatccctttttttgttgcttcttcat
-cacatactttccatgtgtggtcatttttttaaactaaagaacatcctttagaatttcctt
-tcatgagatctgctatctctatctgaaaaggttgtatttatattttcttcttaaaatatt
-tttgtggatatggatttctaggatgacatttactttgaaaaatacgttgaagagctcagt
-ccattggattatggcttctattgtttgtggtgaaaaatcacctgtcagtgtaacaattac
-tctatcaaaagtatggtttctgtttttccctctgactgtttcccacttttctctttgtcA
-TTTTATCTAGATGACAATTCTTATTTATTTTCTAGAATAGTATTTCTTAGATTATTTCTG
-AAAAAAAAGAAGATTTATTATCTTTTCAAATTTATGTAGCtttttgtaattctttttctt
-taattttctttctccttctctttgaaaatcttattaatcagatattggctctcctggatt
-gacactctgtgtcttatatattttgctcatactttccacttgtttttagacttcaaagat
-tttctcactttatcttcaaatgtgcctgctaaacaatcatttttctaatttccaaaagtt
-tactacttctccttacatagcatgatattattgctttatggatggaataCACTCTTGAAA
-CTCCAGCCCCTAAATAATAGTTATTCTAATGTGCCTTTCTTCATTTATTTTCAGTCATGT
-TAAAGATTTTCTCAAATAGATAGCCAGCCTAGATTGTTTATTCATATTTTACATATATAC
-TGAGCCATTTTATGTGTGCAAACTTGTCCACAGCTTTTGTTTTAAAATGCTTGaactgtg
-aagatagaaaagacatgtttgctggaatgcataatactgaagtttacttctcatagtctt
-tctttagaagttatcgcctaggcagaaaaagaaagtaactaaaaaaaaagaaaacacaat
-ttccaggtatatctgtgccaactcaggtgactagtaaaacaaaattctaagatgacatct
-gtatagcctacataggaagcaaccagttcacattatagaaggaagaatgaatgttccagA
-GACAAAATATAGTTACAATACACCCTCATCTATTGTAGTAAAAAAAAAAAAAAGCTGAAG
-TCTAAATTACACAAATGTAGCAGCATAATACTATTAAATAATAAGTAATTTAATATTCTA
-TTTCATGGCATTATTTTACAGGAGCACTATTTGATCATCTTCTCTTTATCACACATACTT
-CTTCCATTTATCTTACAGTATCTTTACATAAACACTAAAATAGTTATACTCAGATTGTAC
-ACTTTTGAAGGGAGTTAGCCTATTTGTGTCAATTATTTACTAAAACAAAGCTAAATAACA
-GCAACAAAAAAGCCTTGTTGGAACAGGGACCAGGGGAATGATCAGAGCAATAAGTAGCTT
-GCATGAAAATATTATTAACTCTGAATACTTTCTCATTAACATTAACAGTGTGTCCTGCCT
-GTATATTTAATCCATTTAGAATTAAACTATTAATATATTGTGTCCTAGGATGGCAGAGTT
-ATTAAGCAGCCCCTGTATGCTCCAGGGGATATAGGTTGATATTCTTCAGCTGTCAAAATT
-CTTCAGCTGTCAAAATTCTTCAGCTGACTTAAATCAGCAGTAGTGGCGTTTATCACCAGT
-CAACAAAGTTCTTCTATCCTTCACTTCTTTAGCCTACTCATCTAATGGATGTTGGCACGA
-ACATGAAGTTTCTCTCCTAAATATCTATGATGTTCCACAAATCATGGGATATGCCTGCAG
-GCTGCCAGCACAATCAGATCTTCATGTTCCAAGAAAGGGATCATTAGTTTGGCCCTGCAA
-GATGTGCCACCTTTCTTGGAGAACTGAGTGTGCCACATGCAATCTGCTGAGGCATGAACG
-TGCTCTTGGCATTTCTGTTTATTTGCTCCTTATTACACTATATTGTGTCAGAATGATGGT
-TTGGGTTCAACAGTATGCTCACGTAAGCCACTATTCCAAACTTCCTAAACGCACAGTTGT
-GGAATGTGACACAATTGTTGGCAATGATATTTAAACAGGATATGTGTTTTTGGTGGGGTC
-TCTGGGAAAAATTACTAAAGGGAGGGGTGGAGTGATCCAAATATTCAAGTGGTAGACACC
-CACTTGACTTTGGccttccacttcctcctgtttggaatatggtcataatgctggaggtaa
-tgctgccatctataacaatgaagcaaaaacactggataacagtatgtgaacagaagagta
-gagggtgactagcatggtgaagctgttatataatttctggactTTATGTTATGTAAGAAA
-AATAAAACCTGAATTTGTAATAAATGAACAAAATGCCTTTTTCATGTTTTTCTGTTTCAT
-ATTACAGCCTATTATACTTTCTAACTGGCACATCATGGATTATAGATAGAATGTGATTTA
-GGATTAAACTCTCTTAAGTTTAAAATGTGTAGTTTTCTTCTCTCTTGTTCATTCTCTTAC
-TGCCTCCAGTTCATTTCAGAGCATATGAAAAGAGACAATAAGGGACTTTTAGCTGGAAGT
-TTACACTACATTACTGAGTAGGAGGAAAGTAGCTTAATAGTTCTATAAAGAGTATCATTA
-CAATTTTAAAAATAAACAAAAACATAAATTATATACCTGTAGTCTATCCTGAAAATATTT
-CCTGAAGTCACAGATTTGGAGTATTGTCAACTTGTGCAtaaacttcatgagaccatggac
-tattgtttttctcactgctttattcctagctccttgatcagaacaggcagagagaagatg
-cacaataaatgaataaatataataaatgaatGTATCCTTTATTACCTACGCAAACACATG
-CACACAAACACATCTATGAAGTTTTACATGATAGTATAAACACTGCTTTGGTGGAGGAAG
-TTACTGATTTTCTTTTAGCTTGTTTTCCACTTTATTTTTCTTTACCAAATAAGTTTCACT
-TTTGCTATTAGAATATAATAAATAACAGAAACCACAAGAACAAAGTAGCAGCTGAAAAAA
-AGAAATGGAAAATTCTTAATTCATATATGATTGCCTCTGTGAAACAAtgaaaagtggtca
-tccaatttcagtttgaacacttTTTTCCTCATAAAGTCATCCTATACCTTTACTCAAATT
-TAGTTTTAGGTGCATTAGGAGTTAAAAATAAAACATAAACCCATTTAAGAACCAAGAGAA
-TTAGTAAGGTAAATTACTTTGGTAAAATGCCCAAGTTCCAGGCTCTGCTGAAGAGAAATT
-ATTGATTCAACCTTAAAATatttgaagtctctggtaaggtgactttagctaaagctgcaa
-ccagctcaactacaaatcagactgactcactactctagcaacttgacagaagaacaatac
-tagacagaatattaattaccttttggaggtaattatttattgaaaactctactgaacttc
-tatatgtctggcataaaataaaggttatgacatatttttaaaaagaaagaagacataact
-cattgtccagagaggaaatgatcaacacccagccaatggaattatcaaccagaaactcaa
-agtaactctgatagaaatatgctagagaatatagtgggaaaataaacagtactggtgttt
-actgataaaatagagaattttatctatgagccaaaacaaagtaatacaaattaaaaattc
-aatatcagaaatggataattcattcaatgggctgaacagcagactgggagaagcaaagaa
-aacaatcacttcacttgaaactcaaatgaacatttgaatagaaatttcccaaatgaacac
-aaacacaaaaaagtaaagaaaaattgaatacaacatcagagagatgtgagatattatcaa
-ataattcaacatggatttaattggctcccaagaagaagggaaggagagaatgaagcagaa
-gaaataagagctaatagcctcctacatagcaaaattgatccaagaacttcagcaaggtct
-aattaggacaaattcaaagaaaatttctagacatagtggatttcaaactgctgaaaatca
-aagacagagaacaaatcttaaaagtagccagagaaaaaggacatgttatctaggaaggaa
-caatgacacaaatGATGCTGAGCTATTTCCAGAAAAATAAAAACAGCgggtgacatcagc
-aagatggcagaataggaagtcccagatctcatttccacatggaaacaccagtttaacaat
-agatgaacaaaaatatctttattagaattccagaaGAGAAggaaagaaattcaaagattt
-ctcataagaaacttcgaagggcaggaggaagtggcacaatatttttaaagtgcttcaata
-gtaagtctcaatccagatatctatgtccaagaaaatatccttcaagaataaggaccaaat
-aaacacattctcaaatgaaggaaaactgaaaaaaaaagggggggtcactagtaggtatac
-ctaaaagaacagctaaaggaagtcctccacagtgaaagaaattatttttttttttttttg
-agaaaggagtcttggaacataaggaaaaaagaagagagaaaacaaaaacatcagaaatgc
-aataaactttttacctactttttagttttctaaattatttttgacagtaacagcaaaaat
-tatccctctatagtgattctcagcataggtagaaaaaatatttaagtcaatgatattaga
-aatggggggttatcatagagatataaagggagataaaatctttatctgatgtggttaaat
-gatgtaccagtagactgtaataagttatggatatataatgtagcacagacaacaatcact
-acaaaagctatacaaagagatacacttgaaaacactatagatgaatgaaaatggaattct
-aaattatggaaaaatatctcacaaaatggcaggaaaaataagacaaagaagcaaaaagga
-aacaaaaacaaaatgaaagatttaagcattaatatatcaataatttaattaaatttaaat
-gatctaaacacacaaatttaaagatgaatattggcaaagtatgtttttagatgacccagt
-aatatgctatatacaagaaactcacatcaaatataatgatataaataggttataagtaaa
-agaatggaaaaagatataccatacaaatattaataaaaagtttgcaggagtgactatatt
-aatgtcagataaagtagacttcagaacatcaaaaaaattaggatgattttttgtcacctt
-tacatagtgacaaaaggtccaatacaccaaaaagatgtggcaaacttaaatttgtgtgct
-ccaaaacacaaagctgcaaaatatgtgaagcaataacagagagttaaaagagagaaataa
-gcaaaaacacagtcgggatatcaccacccacttctttccagaattgatagaacaacaaga
-aagaaaatcagcaacagcaatagaagagctcaacaacattaactacaggatccacgtggc
-atttaaggagcatttccactcaactagagcagagtaaatattcctttcgagctcagagag
-tgtatactaagatagactatatcctaggcaaaaaaaaaaagaagaagaagaaaaaaggat
-attcaactaattaaaaagaatttaaactgcacaaagtttattctctatatgattgacaca
-gtgaaatcaaactaggaatcaataccagaaataaaacacaaaaatctccaaacacctgga
-aattacacaacatgcttccaagtcaaagagaagtctcaataagaataaaatatacataga
-attaaataaaaatgaacatataacatattcataatttgtgctaaagcagtgccaagagag
-aaatttagaacaacaaatgcttatattacaaaagaagaaaaatgtcaaatcaataatctt
-agctctcacctgaattagaaaaataagagcaaattaaatgcaaagtaagcagaagaaaga
-acataataaagataacagcacaaatcaatgaaattggaaacagaaaaacaatagagaaaa
-tcagtgaaatgaaaagctgcttctttgaaaagatcaataacattgacacacttttagcaa
-gactgacaaagaaagacacaaatttccagcatgcggaataaaacaaagaatatcactaaa
-gaccctatggaaataaaaatgataataagggaatacgataacctttttttttttttttga
-gacagagtcttcctctattgcccaggctggagtgcagtggcacaatctcagctcactgca
-acctctgcctcctgggttcaagagattctcctgcctcggcctcccaagtagctgggacta
-caggcatgggccaccatgcccagccagtttttgtatttttagtagagatggggtttcacc
-acactggccaggctggtctcgaactcctgacctcatgatctgctcgcctgggcctcccaa
-agtgctgggattacaggcatgagccaccgcgcccagccaactaactctctatacattgat
-ttacttttttattttaaaatatccttgcattcccagtagaaaccctagttggtAAAAAAa
-aattattgtttgtaaacccttcttctttgatgttacgcatctacagctaaagatttcccc
-ttaagcaaggcaggagctgcatttcacactttataaaatgttgtattttactatcttgcc
-gttcaaaatacatattaattattcctataattttatctttaacacatggcttttacataa
-ttttaaatagtactttttaaattttaaattaaattttaaatacttttaaataataaaagt
-atgctagttaatttcaaaatattatgtttcttaacatcttatttttattggtttccaact
-taatactgatgtttttctagatatcacatttttaattgattgctattttgcaattatttc
-tgcaatattttagtgttttgacatttatagggacttctttaaagaatcaacactgtccat
-ctcagtgagcattccatgtgcatgtgaaaaaaaaacgggtattctgtaattattggaggt
-agtgttctatacatgttaattggattgaggtggttattcagatttgctacattctttttt
-ttttttttcgagacagagtcttgctctgtcaccaaccaggctggagtgcagtggcacgat
-cttgggtcactgcaacctccacctcccgggttcaagtgattcccttgcattagcctcccg
-agtagctgggactacaggtgcgcgccaccatgcccggctaattttttgtattttagtaga
-gacgggatttcaccatgttggccaggctggtcttgaactcctgacctcgtgatctgcctg
-cctcggcctcccaaagtgctgggattacaggcatgagccaccacgcctggccatttgcta
-cattcttactaaatgtttggtctagttatgctatcaataaccaacagtgaatgataaaat
-ttccaactgattgaagatttttctgttttcaagttacttttgtccatctttacttcatgt
-atttttaagttatattattagatacatcatgtctttctaatgaattgaccctttcatcat
-tatgaaatggccttcattatctctagtaaatactgcttgccttggagtcaaatacatcag
-atattaatataatcacTCCACAATTAACAAAGCCATCAAAAGTAGCTTGTATATCCAACT
-TATTCTCTGTATCGATTTCTTTCACTTTTGGCCTGAAAAATCTTTACTCactgaaaagca
-aagaatataaagaaaaaaaaaaggtaaagaatccaaggactgtgggaaaactgcaaaagg
-tgtaacctacatgtaatgggaataccagaaggagaagaaagagaaaggaacagaaaaaaa
-tatttaaaacaacaattgaaaatcttcagtgggagtataattagttcaaccattgtggaa
-gacagtgtggtgattcctcaaggatctagaaccagaaatacctttgacccagcaatctta
-ttactgggtatatacccaaagaattataaattgttctactataaagacacatgcacacat
-atgtttactgcagcactatttacaatagcaaagacttggaaccaacccaaatgcccacca
-atgatagattggataaagaaaatgtggcacatatacaccatggaatactatgcattcata
-aaaaagaatgagttcatgtcctttgcagagacatggatgaagctggaaaccatcattctc
-agcaaactaacacaggaacagaaaaccaaacaccgcatgttctcactcataagtgggagt
-tgaacaatgagaacacatggacacagggaagggaatgtaacacactggggcctgccaggg
-gtgggggggcaatgagaaagcattaggacaaataatgcacgtggggcttaaaacctagat
-ggcaggtttataggtgcagcaaaccaccatggcacatgcatacctatgtaacaaacctgc
-acgttctgcacatgtatcccagaacttaaagtaaaataaaaagaaagaaaaaaaaacttg
-agtaaaatgaaaaagaaaaagaaaattttccccaaattaatatcaaacatcaaaccacag
-atccaagaagctcagagaatactaagtaggataaatgcaaaaaaaaaaaaaaaaaaaacc
-taatcatgtcatattcaagctccatgaaacaaaatataaagaaagaatcctgaaagaaga
-caaaggaaaaaaTCTTATcataataatagtgctcatttctccaacaagacataacaatcc
-ttaatgtgtatgtgtctaaaaacagagtcaaaCAATgttttgatttgcatttccctgttg
-actagtgatactgagcatttttccatgtatatgttgaccatttgcatgtcttttgagaat
-gtctatttttgttctttgctcatttttcaaggatatcatttgtttttgtttctgtttttt
-ttgctttcagttgagtcccttgtttattctagtttgatacagtcccatttgtctgttctt
-ggttttgttgcctgtgcttttaaggtcttaaaatatttgcctagaccaaagtcctggagt
-gtttcccctatgtcttcttctagtagttttatggttttgggtcttaggtttaagtctcta
-atctattttgagttgacttttgtatatgatgatagataggggtctagtttcatttttctg
-catataaatatccagttcccagcaccatttattgaagagtgtgtcctttccccagtggat
-gttcttggtgcctttgttgaaaatcagttggctgtaaatatgtgaatttatttctggatt
-ctttattctgttccattgatctatatgttcatttttataccaacaccatattgttttgct
-ataagtactatagccttgtaatatattatgaaggcaggtagtgtgatgccacaaactttg
-ttcttttgtctcagaattgctttggctattttggctcttttttggtttcatacacatttt
-aggattgatttttctatttatgtggaaaatgtcattggtattttgataagaattgaattg
-aatctgtagattgttttaggaaatatggtcattttaacaaaattgattgttccttttcat
-gagcatgggaggcatttccatttgtttgtgtcgtcttccattcctttcatccgtgtcttg
-gggtattccttgttgacatctttctcctccttggttaaatttattcttaggtattttttg
-tagctattgtaaatggaattgccttcttgatttcttttttggctagttcattattggcat
-ataaaaatgctactgattttttagcattgattttgcattctgcaactttactgaatttgt
-ttatcaattctaagaggtttttggtggagtcgttaggtttctttaaataaaattatgtca
-tctgcaaagagggataagttagtttcctgtttcccatttagatactgtttatttcttttt
-ttgtctaattgctctatctagcacttccagtactatgttgaatgggaatgatgaaagtgg
-acatcttcttgtcttattccagttcttaaaggaaaggcGACTCTTgggggaggagccaag
-atggccgaataggaacagctccggtctacagctcccagcgtgagcagaagacggcgattt
-ctgcatttccatctgaggtaccgggttcatctcactagggagtgccagacagtgggcgca
-ggccagtgggtgcgcgcaccggcaccgtgcgcgagccgaagcagggcgaggcattgcctc
-acctgggaagcgcaaggggtcagggtgttccctttccgagtcaaagaaagaggtgacgga
-cacacctggaaaatcgggtcactcccacccgaatattgcgcttttcagaccggcttaaaa
-aacggcgcaccacgagactatatcccgcacctggctcggagggtcctacgcccacggaat
-ctcgctgattgctagcacagcagtctgagatcaaactgcaaggcggcagcgaggctgggg
-gaggggcgcccgccattgcccaggcttgcttaggtaaacaaagcagccgggaagctcgaa
-ctgggtggagcccaccacagctcaaggaggcctgcctgcctctgtaggctccacctctgg
-gggcagggcacagacaaacaaaaagacagcagtaacctctgcagacttaaatgtccctgt
-ctgacagctttgaagagagcagtggttctcccagcacgcagctggagatctgagaatggg
-cagactgcctcctcaggtgggtccctgacccctgacccccgagcagcctaactgggaggc
-accccccagcaggggcacactgacacctcacacggcagggtattccaacagacctgcagc
-tgagggtgctgtctgttagaaggaaaactaacaaacagaaaggacatccacaccgaaaac
-ccatctgtacatcaccatcatcaaagaccaaaagtagataaaaccacaaagatggggaaa
-aaacagaacagaaaaacgggaaactctaaaacgcagagcgcctctcctcctccaaaggaa
-cgcagttcctcaccagcaacggaacaaagctggatggagaatgactttgacgagctgaga
-gaagaaggcttcagatgatcaaattactctgagctatgggaggacattcaaaccaaaggc
-aaagaagttgaaaactttgaaaaaaatttagaagaatgtataactagaataaccaataca
-gagaagtgcttaaaggagctgatggagctgaaaaccaaggctcgagaactacgtgaagaa
-tgcagaagcctcaggagccaatgcgatcaactggaagaaagggtatcagcaatggaagat
-gaaatgaatgaaatgaagcgagaagggaagtttagagaaaaaagaataaaaagaaatgag
-caaagcctccaagaaatatgggactatgtgaaaagaccaaatctacgtctgattggtgta
-cctgaaagtgatgcggagaatggaaccaagttggaaaacactctacaggatattatccag
-gagaacttccccaatctagcaaggcaggccaacgttcagattcaggaaatacagagaacg
-ccacaaagatactcctcgagaagagcaactcaaagacacataattgtcagattcaccaaa
-gttgaaatgaaggaaaaaatgttaagggcagccagagagaaaggtcgggttaccctcaaa
-gggaagcccatcagactaacagcggatctctcggcagaaaccctacaaaccagaagagag
-tgggggccaatattcaacattcttaaagaaaagaattttcaacccagaatttcatatcca
-gccaaactaagcttcataagtgaaggagaaataaaatactttacagacaagcaaatgctg
-agagattttgtcaccaccaggcctgccctaaaagagctcctgaaggaagcgctaaacatg
-gaaaggaacaactggtaccagccgctgcaaaatcatgccaaaatgtaaagaccatcgaga
-ctaggaagaaactgcatcaactaacgagcaaaatcaccagctaacatcataatgacagga
-tcaaattcacacataacaatattaactttaaatgttaatggactaaattctccaattaaa
-agacacagactggcaagttggataaagagtcaagacccatcagtgtgctgtattcaggaa
-acccatgtcacgtgcagagacacacataggctcaaaataaaaggatggaggaagatctac
-caagcaaatggaaaacaaaaaaaggcaggggttgcaatcctagtctctgataaaacagac
-tttaaaccaacaaagatcaaaagagacaaaggcggccattacataatggtaaagggatca
-attcaacaagaggagctaactatcctaaatatatatgcacccaatacaggagcacccaga
-ttcataaagcaagtcctgagtgacctacaaagagacttagactcccacacattaataatg
-ggagactttaacaccccactgtcaacattagacagatcaacaagacagaaagtcaacaag
-gatacccaggaattgaactcagctctgcaccaagtggacctaatagacatctacagaact
-ctccaccccaaatcaacagaatatacatttttttcagcaccacacaacacctattccaaa
-attgaccacatagttggaagtaaagctctcctcagcaaatgtaaaagaacagaaattata
-acaaactatctctcagaccacagtgcaatcaaactagaactcagaattaagaatctcact
-caaagccactcaactacatggaaactgaacaacctgctcctgaatgactactgggtacat
-aaggaaatgaaggcagaaataaagatgttctttgaaaccaacaagaacaaagacacaaca
-taccagaatctctgggacgcattcaaagcagtgtgtagagggaaatttatagcactaaat
-gcccacaagacaaagcaggaaagatccaaaattgacaccctaacatcacaattaaaagaa
-ctagaaaagcaagagcaaacacattcaaaagctagcagaaggcaagaaataactaaaatc
-agagcagaactgaaggaactagagacacaaaaacccttcaaaaaatcaatgaatccagga
-gctggttttttgaaaggaccaacaaaattgatagaccgctagcaagactaataaagaaaa
-aaagagagaagaatcaaatagacacaataaaaaatgataaaggggatatcaccactgatc
-ccacagaaatacaaactaccatcagagaatactacaaacacctctacgcaaataaactag
-aaaatctagaagaaatggatacattcctcgacacatacactctgccaagactaaaccagg
-aagaagttgaatctctgaatagaccaataacaggagctgaaattgtggcaataatcaata
-gtttaccaaccaaaaagagtccaggaccagatggattcacagccgaattctaccagaggt
-acaaggaggaactggtaccattccttctgaaactattccaatcaatagaaaaagagggaa
-tcctccctaactcattttatgaggccagcatcattctgataccaaagccgggcagagaca
-caaccaaaaaagagaattttagaccaatatccttgatgaacattgatgcaaaaatcctca
-ataaaatactggcaaaccgaatccagcagcacatcaaaaagcttatccaccatgatcaag
-tgggcttcatccctgggatgcaaggctggttcaatatacacaaatcaataaatgtaatcc
-cgcatataaacagagccaaagacaaaaaccacatgattatctcaatagatgcagaaaaag
-cctttgacaaaattcaacaacccttcatgctaaaaactctcaataaattaggtattgatg
-ggacgtatttcaaaataataagagctatctatgacaaacccacagccaatatcatactga
-atgggcaaaaactggaagcattccctttgaaaactggcacaagacagggatgccctctct
-caccactcctattcaacatagtgttggaagttctggccagggcaatcaggcaggagaagg
-aaataaagggtattcaattaggaaaagaggaagtcaaattgtccctgtttgcagacgaca
-tgattgtttatctagaaaaccccatcgtctcagcccaaaatctccttaagctgataagca
-acttcagcaaagtctcaggatacaaaatcaatgtacaaaaatcacaagcattcttataca
-ccaacaacagacaaacagagagccaaatcatgagtgaactaccattcacaattgcttcaa
-agagaataaaatacctaggaatccaacttacaagggatgtgaaggacctcttcaaggaga
-actacaaaccactgctcaaggaaataaaagaggatacaaacaaatggaagaacattccat
-gctcatgggtaggaagaatcaatatcgtgaaaatggccatactgcccaaggtaatttaca
-gattcaatgccatccccatcaagctaccaatgactttcttcacagaattggaaaaaacta
-ctttaaagttcatatggaaccaaaaaagagcccgcatcgccaagtcaatcttaagccaaa
-agaacaaagctggaggcatcacactacctgacttcaaactatactacaaggctacagtaa
-ccaaaacagcatggtactggtaccaaaacagagatgtagatcaatggaacagaacagagc
-cctcagaaataacgcccatacctacaactatctgatctttgacaaacctgagaaaaacaa
-gcaatggggaaaggattccctatttaataaatggtgctgggaaaactggtagccatatgt
-agaaagctgaaactggatcccttccttacaccttatacaaaaatcaattcaagatggatt
-aaagatttaaacgttagacctaaaaccataaaaaccctagaagaaaacctaggcattacc
-attcaggacataggcgtgggcaaggacttcatgtccaaaacaccaaaagcaatggcaaca
-aaagacaaaattgacaaatgggatctaattaaactaaagagcttctgcacagcaaaagaa
-actaccatcagagtgaacaggcaacctacaacatgggagaaaattttcgcaacctactca
-tctgacaaagggctaatatccagaatctacaatgaactcaaacaaatttacaagaaaaaa
-acaaacaaccccatcaaaaagtgggcgaaggacatgaacagacacttctcaaaagaagac
-atttatgcagccaaaaaacacatgaaaaaatgctcatcatcactggccatcagagaaatg
-caaatcaaaaccacaatgagatatcatctcacaccagttagaatggcaatcattaaaaag
-tcaggaaacaacaggtgctggagaggatgtggagaaataggaacacttttacactgttgg
-tgggactgtaaactagttcaaccattgtggaagtcagtgtggcgattcctcagggatcta
-gaactagaaataccatttgacccagccatcctattactgggtatatacccaaatgactat
-aaatcatgctgctataaagacacatgcacatgtatgtttattgcggcattattcacaata
-gcaaagacttggaaccaacccaaatgtccaacaataatagactggattaagaaaatgtgg
-cacatatacaccatggaatactatgcagccataaaaaatgatgagttcatgtcctttgta
-gggacatggatgaaactggaaatcatcattctcagtaaactatcgcaagaacaaaaaacc
-aaacaccgcatattctcactcataggtgggaattgaacaatgagatcacatggacacatg
-aaggggaatatcacactctggggactgtggtggggtgtggggaggggggagggatagcac
-tgggagatatacctaaggctagatgacgagttagtgggtgcagcgcaccagcatggcaca
-tgtatacatatgtaactaacctgcacaatgtgcacatgtaccctaaaacttaaagtataa
-taaaaaataaataaataaataaataaataaaaaaggaaaggctttcagcttttcttcatt
-caatatgatgttagctgtgtgtttgtcacatatatgacctttatttattttatttatttt
-atttttttgagacggagttttgctcttgttgcccagggtgtagtgcagtggcacgacctc
-agctcactgcaacctctgccttctagtttcaagtgagtctcctgcctcagcctctcgagt
-agctgggattacaggggcccaccaccacacctggctaattttttttgtatttttagtaga
-gacagggtttcatcatgttggtcaggctggtctcgaactcctgacctcgtgatccgcctg
-cctcagcctcccaaagcgctgggattacaggcgtgagccactgcgcctggccatatgacc
-tttattatgttgaggtatgttccttctgtgcctagtttgttgagtttttaatcatgaagt
-ggtgttgaattttatcaaatgccttttcctgcatctattgagatggtcatattgtttatg
-tccttcattttgttgatgtgtcatgtttatcaactggcatatgttgaatcatttttgctt
-ctctgggataaatgccatttgattatgatatattacctttttgatgtgctgttggatttg
-acttgctagtattttgttcaggatttctgcaggatttcatcagggatattggcctgtagc
-ttctttcgttttgttgtgttcttgtcaggttttggtatctgagtaatgctggcctttaga
-atgctatagggagaattccttcttcaattttttggaacagtttgaggaggattcatgtta
-gttatttatacatttggtagaacttggtaaaccagtgaatccttctgatcctgggctttt
-cttcagagattttttattacgaattcaatcttatcacacattattggtctgttcaggatt
-tctgtttctttttgatttaatgttggtggctggtatgtgtgtgggaatttaccttttccc
-ctagattttcctgtcagtgtatacttgttcataatagtctctgatgatcttttgtattct
-gtgatatcatgtgtgatgtctccttttttcttttctgattttaacacacaaaagtataaa
-tcactggtacagcaaatgcataaatgaggaaaagacccaaatgttaccactacagaaaac
-cactaaaccataattataaataagagagaaaaaaaaggctatacaaaacaaccaaaaact
-aattaccaaaacgacaagaaaaagtcctcatatataaatagtaagtttgactgttaagtg
-gattaaatattccacttaaaacatataggctgtctgaatgaattttttaaaaaagtgacc
-cagtaatgtaatgcctacaagaaactcacttcaactgttaagacacatagactgataata
-aagggatagaaaaagatatctcatgcacacagaaaccaaaagcgagcaAAGAGACGATGG
-CAGTACGTTCAGGTAGgagataagcttccatgacctcagctgccaccattccccacaatg
-ccccagctacccaagagaccctgagcccactcaactagtacattacttgtacaagtagta
-cgttactactatagctggcatttgagagagccactacagtaaagctatttgcaaccaagg
-aaatcataaaaagtctacataactcctcgacacgcccatcagggctaatgattgtggttg
-ccattgggaaacctgagggcaagcctgccccatcgagctgtgcccaactttgcccccact
-ttggggctgagaatggagcccatgccactgtgcattccacagacagaccatttcctgaga
-caatactgtttctcccagtaaacaaagatcaaatataaactccctgctatcaccgcatcc
-agctcttaactgcaagtgccacctactggcctggaggtcaaactgcacaacccgatagaa
-gtgttgacataagcgtacagtgctcgagaaaaagataagcgtctcaggacctctgccact
-caagatctgcaggagactgtgagcctcatcacatgcctagtacatcactactacaactgg
-catttgagaaagtcaccgcatgaaggctatttataaccaaggaattcatacagagTATAT
-GCCATTCTCCCCATCATTACCACAAgtgctggtgtttgtgcctgccaatgagctatttga
-aggaaagtttgacagtttagctccacccagctttatcctccccttaggggctgagcaggg
-agctcaggccagtgtatattccatagactgtcccttgcctgaggcaacagagagcttctc
-cccgtaaacaaagatcaagcatacacccacctgcttctgcccagattttattcataagca
-ccacatagtagcctggaggtctaactacacaacccagtaaaaaactggcttacacaagtg
-cacagcacggggaaacaagttaagcttcctaagacttctgcactctagccctgcaggagg
-cagtgagcctagcccagcacatcactactacaaccagcatttgagaaagccaccacacaa
-aggctatctataatcaagaaactcatacagactctttgccactgaaagcacccagaacca
-aggccaaataaccctacacaatgtatattataatcacatcctcaagggggaaaaagtcct
-gaccaaatgaaagtaaatttaaaaataagaacagatagttgatccaaatgagaaggaacc
-caagaaacaattctggaagtataaaaaaaagagtgttacaacaccccaaaggattgcact
-aactcttccacaatgaaccctaaccaaaatgaaatctttgaaataccaaagaattcaaaa
-tattaattttaaagaatctcagtaaggtccaagagaaagtaaaaaatcaatacaaatcag
-aaatataactcaggatatgaatgaaaaatctactaaagagatggattttttaaaatagtt
-tttttgttgtttgtttgtttgtttgttgttgttgttgttgttgttgttgagatggagtct
-tgttctgttgcccaagccagagtgcagtggtgcgatctcggctcactgcaaactctgcct
-ccagggttcaagtgattctcctgcctcagcctactgagtagctggaattacaggtgtgtg
-ccactacgcccagataatttttttttttatttttagtagagacaaggtttcaccctgttg
-gccaggctggttttgaactcctgacctcaagtgatctgcccaccttggcctcccaaaatg
-ctgggattacaggtgtgagcccactgtgcccagcctaaatagttttttcaaatgaacttc
-tgtaattgaaaaattcatttaagaaattacaaaatatagttgaaagctctaacaatagac
-taaaccaagcagaagaaagaggttcagaacttgaagacaagtctcttatgaattaaccca
-gtcagacaaaaataaagaaaaaaattttaaaaatgaacagagctttcaagaagtatgaga
-ttatgtaaagtaactgaacctatgagtcacaggtattcctgaggaaaaagaaaaagtgag
-aagtttggaaaaactatttgaggaagtaattggggaaaacctctttagtcttgctagaga
-tttagacatctaaatgaaagaggctcaaagaatgccaggaagatacattgcaagacagac
-ttcatcaagatatgtagtcatcagactatctaaagtcaacatgaaggaaaaaaattctaa
-aatcagcaagagaaaagcatacagtcatctataaaggaaatcccatcagaataacaatgg
-gcttctcagcagaaaccttacaagccagaagagattggatctaatttttggacttcttaa
-agaaaaaaaaacctgtcaaacacgaatgttatgccctgctaaactaagcatcataaatga
-aggggaaataaagtcaagtctttcctgacaagcaaatgctaagataattcatcatcacta
-aaccagtcctataagaaatgctcaaaagaattgtaaaagtcaaaattaaagttcaatact
-caccatcataaatacacacaaaagtacaaaactcacaggttttataaaacaattgagact
-acagagcaactaggtaaaaaattaacattacaacaggaacaaaacctcatatatcaatat
-taactttgaataaaaagggattaaattcccccacttaagagatatagattggcagaacag
-atttaaaaacatgaactaactatatgctgtttacaagaaactcattaataaagacatgag
-ttcaggtaaaggggtggaaaaagatgttctacgcaaacagaaaccaaatgagagaaggag
-tagctatacttatatcagataaagcacactttaaatcaacaacagtaaaataaaacaaag
-gaggtcatcatacaatgataaaaagatcaattcagcaagaagatataaccatcctactaa
-atacatatgcacctaacacaagactacccagattcataaaacaaatactactagacctaa
-gagggatgagaaattacctaattggtacaatgtacaatattctgatgatggttacactaa
-aagcccatactttactgctactcaatatatccatgtaacaaatctgcgcttgtacttcta
-aatctataaaaaAATTAAAATTTAACAAAAGTAAATAAAACACatagctaaaactaaaaa
-agcaaaaacaaaaactatgctaagtattggtaaagatgtggggaaaaaagtaaactctca
-aatattgctagtgggagtataaattgttttccactttggaaaacaatttggtaatttcGt
-ttttttttttttcttttctcttttttttttttttttttttGCATGCCAGAAAAAAATATT
-TACAGTAACTATGGAACACAAAGGTTTATTACATCCATAATTAACATGGAACATTTACTT
-ATCAGTTTGACAAGGACAACACTGAGACCTCTTAGGACAGAGAGAAAGGGCAATTTTCAA
-AGGAAAAAAGCATAGTATATGCATATttaataagtaaaacatacacataccctgtgactc
-agccattgtacatctagctgtttatccaagagaaatgacagcatatggctacacaaagag
-ttgcacacaaattttcaatggcagttttatttgtaatagctaacatctgaaaacaatcat
-aatgttcattagggggtaaatggataaatgatcatatatgcataaaaagtaatacaagca
-ataaaaaggaatgaactattggtacacgaaacatatatgattcaaaataattgccttgga
-tggaaaaagacaagcggaaaagtatacatgctatattacttcatttatgtaatattcaag
-agaatgccaagaaagctacaagaacaaatagcaggtcagtcgttgcctgggtatcatgga
-ggtagagggagggaagggaagaggaaagagtggatgccaaagaggaatgagaaacatttt
-gagagtgaaggatatatacattatgttgattaaggtaatggtttcaccagtgcatctttt
-gccaagttcatcaaattatacactctaaataatgcagtttaatgtacatcaattatatct
-caataaTTTGGAATGAAAAAAAAAAACTCCTCACAAAGAACAAAACCTCTAGGACCTGAT
-AGCTTTCAGTCACAATATAGTCAGGCACTCAAAAAAAAACTTTAACACAATAAAATTCTC
-TTTGAATGCCACCTTAAACTCAATCCCATCCAGAGAAAACAACTTTTATTAGAATGACAT
-GTGATTTGCATTTTTAGTTCATGCATTTACTTATATACACATAAATATAGCTTTTTCACA
-TAAATTAGAATCATTGCTATGCATGTTGTTCTAAAATGTTGCTTTTTCACTCAAAAAATG
-TTTAGTAAGATAAAATCTGCTGCACTCTTTTTAACAGAAGCACAGAATTAAATCATATGG
-ATGCACTTCGTTTTATGCTACTCTACAGAGTGACAAGACTTCTTTGTGCATTTATCTTTG
-AGCACTTATTTATTTCTTTGTAAAAGGCTTTCTAAATTTCCAGATCATCAACAAAGCATT
-AATTTGGTCAGTTAAAAAACAATTGCTTATATCCTTCTCTGAAAAGAATGATGTACAGAA
-AAGAATTATATATATATATGAATAATACATCATAAGTGTTCAGAAAGACATTGTATTTTA
-GGTGGAGAGACAGGCAGGTGACCAGACTGCTACATGCAGTAAGATGAACCCTGATAGAAC
-TAACACTGGAGGCTGTGAAAAAACTGCTAGGAGCACCCAGCCTTGGTAGAGCAGCATAAT
-TTCTTCCTGTAATTCTTTCTCTCCAAATTGCCATACACTTCAGCAGAGTTTGCAACTTCT
-CTTCTAAGTCTTTATCCTTCCCCCAAGGCATGCCTAGCACAGGACTCTTGAACAGTGATG
-CCTCAATTAGAGTTGCTAGCCAATAGATTGAAGCTATGTTGGCACAATATCCTACATCCT
-CCCGATCTACTGGCTGAGCCCAACCCCACCTAAGAAGGACAATAAAGATCTGTGTTCAGA
-GTCATACTGAATAGAGACTTCTGGACTCTATAGAACCCACTGCCTCCTGATGAAGTCCCT
-ACTGTTCACCCTTGCAGTTTTTATGCTCCTGGCCCAATTGGTCTCAGGTAAACAGAATCT
-TGGGGAAGAAGAAACACTGGCCTGGAACAGGGTCCTGCACATGGAGTCCCTGTTTCTAAG
-TGGTCTGTGGAAATGGGGTCTGGCTTCTCACTGGGAGCAGGGCTGAGATTTGTCCTACTT
-CTTCAGACCACCTCTGTTCTAAGAAACTTGAAGGCTCTCAGGATAGAGCAGGATCTGTGA
-TCGGAGCTGGGGAGGAGGGTAAGGCAAATCCCATACAGTTGCCTCCAAAGGTAGAAATGA
-TCTTGAAATCCCAAACTTCTATCCTGTCACTTCGGGTCAGTCCAGTCAAGCCCTGCCTCA
-TTTCACTTTTGTTTTTTTTGCTGCCGATATTCCCTCCTGAGGTAACAATTATATAATATT
-ACTTCCCCCAGTTTTCTTGGTCTTACAGAGAGGTCTCTGATTTTTTGTTTGTTTGTTTGT
-TCTTGGATGTGGTTAACAGAACAGGAAAGGCTGTTTCTATATATGTATAGGACTGTAAAA
-TGGAAAATGAAAAAAAAAATTCTGTGTGGGAACTATTGGAAGTCTATATCAGATTTCAGC
-TCTGTTTGTGTAAGCATTTCTTATTTTTAATTTATTCTGTAGCTTATATTTACAAAACCA
-AGACAAGAACACTGAAAGTTATTTAGAAATAAATTGGCCACATTTCATCACTGCTTGCAT
-TTTTTCACTTGTAACCAactgatatatgagcttataacctgctttatttttttacctacg
-attctatcaggaaaattttcacaggtcttgaatattccttgaaaatacaatttgcagtag
-atgcttataattctgtcatatttttgtaccaatattaacttggaaagtccttaattgtgt
-gtcatttggattattttttctaatgtgtgagtactgtaaataacattgtacaaccttatt
-aatatatcattgtgagattctctgtttgtataggtaaattttagaagttccattgcttgg
-tacaagggtattatttcttctaagttaactggcacatattgccaaTGGTTACTATTGGAG
-TATTTGTATTTTTAACATTTGTATTTCATATTTCTTGCAAATATTTTCAAACATATTGGT
-TGCTTCTAAAATGCATTATTTATTTGAGACACATAATTTTCATTTTCATGTCAAATCTAT
-TGGTGTTTTCTTTGCATTCTTCCACTAACTTAGTAAGTCCTTCTCCGTGTTGAGAACAGT
-TATTCACCTATGATTTTGTTTTTTACACCGGACTCAATCCCACCTTTTTACATAAGGCAC
-AATGAAATAAACTAATATTCTTTAGTATAATTTCCTAATGGGTTATATAATAACTCCATA
-GCCCGCCTCTAGAGATAGTAGTTTATATTCCCTAATTTGCAGAAATGTTCAAATTGATAG
-TGGATAAGAGGAAATTATAATGCTCTCATGGTTGTCTCAAAAGATGTTTCAGGCCTATTG
-CATCCTTGAAATTCTATGAGTTTAAATTGCCTGATTTCTCCCTCTGTCTCTGGAACATTA
-GTGACATACATCGACATACATCACATACTTGTATGTTGTCCTTTTTCTACACTTTGTGTG
-TGTGTATATATATTCTAACATATACATATATATAATGTTAAAAACTCAATCATCAGAGGA
-GGATTAAACAGCTGATAAGGGATAATAGTAGTGGTAATAGCATTCAAAAACGTTTGCTCT
-GTTCACTTACTGTCAAttacctcatatttctttcatttattgtacttatcacaatctgta
-gttattttgtttattcatttacttgtttattttctttctccccctctccaatgtaaggtc
-ctcaaatcatgtctttctgttcattgttttattccctgcatcttgcagaattcttgacat
-ggtaggcactcatcatatacttgttgattaagtACAGTAATGAGTTAAGCAAGGTAAGAA
-AGAGCTCCAGCGTCACTCTAGGGCCTCTATGTGTTAAACCATGTGATGAGATATTTTCAT
-ATGTATATAATATGTACACATATATAGGCAAACCCTGCAGAATGTCTCCCTAATGAATAT
-ATTCCTAATGGAATGGCTTTTTTTATTCTCAAAATTTTGTAAAATGTACTTATATCTCAA
-TATCATATAGGTATATAGGTATAGATGAAAATTTTTTATTTATCTTTCCATAACTTGACA
-TGACATTTTTAACCAGATAATATGTAAGATAAGCCTAGAGTTATCTTCTAAATATAATTT
-TTAGGATCTCAGAAACATGTAAGGGACATTTTGAAAATCTCACCAATTGGCAACAAAAGC
-CATATGTGTTTCAGTAATGGTGAGAAAGATGACAGCAATTATTTTAGCATTTCTTATTTT
-TGAAATGATAGTTTTTACTTCTGTTTAGGTGTTTGTGTTTTAGCTACATTTTAGGAAATT
-GCTTGGGGATTTTGTGTTCATGTATAACAACATGCTATATATTTTCCCATTTAAAATCAT
-GGGGAATTGGCCCCTGGTAAGTGTTTGTATACAGAATTCTGATTTCAGAAATGAGAATCT
-CATACATATCTAAAGAATTCTATGTGTGTTTATAAAATTTCACTTAATCCTCAAAGTAGG
-TATTTATGATTAGGAAAAACATGCTAAAGCAACTGGAAAGGCACTTGAATAAACAGTGCT
-CAAAAACTATTGCTATTTTTTATCCTCCTGTGATAAATACTTAGGCTTAATAATCTATAT
-AATTCCTTTATTCAGGTAATTGGTATGTGAAAAAGTGTCTAAACGACGTTGGAATTTGCA
-AGAAGAAGTGCAAACCTGAAGAGATGCATGTAAAGAATGGTTGGGCAATGTGCGGCAAAC
-AAAGGGACTGCTGTGTTCCAGCTGACAGACGTGCTAATTATCCTGTTTTCTGTGTCCAGA
-CAAAGACTACAAGAATTTcaacagtaacagcaacaacagcaacaacaacTTTGATGATGA
-CTACTGCTTCGATGTCTTCGATGGCTCCTACCCCCGTTTCTCCCACTGGTTGAACATTCC
-AGCCTCTGTCTCCTGCTCTAGGATCCCCGACTCATTAAAGCAAAGAGGCTTATTCTGGTG
-TCAGTTTTCTCTCTACAGCCCCCTTCCCACTTTCCCTCCATTCAACAGTGTCTGGAAGGG
-CACCACAATTTCACTGCACTCGCATTTCTATGGTAGAAATGCAAATAAGATAGGGGCCAG
-GAACAAGGGAGGGTTAGTCCAAAACACCCACTCAGGAATGATAGATAGTAGCAATGTCCT
-CCTTGAAGACAGTTCTAGGCCCACAGCTTGCCATAGCAATTATCAtcaaacttcatgtac
-atcagaaacacctggagagatggctaaagcacagatttctagggctcacttttagtttcc
-aattctgcaggggagcttgagaatttgcactgctcacaagttcccaggtgatgctagggc
-tgctggtccaggcaccacactgtgagaacAATTAGCTTATAATATGAAAGGATTGAAAGC
-CGACTGTGAATGTGATTTTCTACAGATTGAAGGCTGCATTTCCTATGTAGTTTTGGAGTA
-GATAGTAATACAAAatcatcctacagaatcctccgacaacaacctgagaatgtaggtatt
-ataacctcactttagagaataggaaactTGATTTCTAAGCATTAGAAGACTGGGACAGAC
-TAAATTGACTACTGAGAACATTCTGTCACTGCACCATGAGGTTGCCCAATTTTCTTCTCA
-CCCTGGAAATCCTCATTCATAGCTTCCAACTTAAATATGATGAAAGGGAGATCAAGAGCT
-CTATAATGTGTCCTGAATGTTAGGACAGGCACTCATCCCAAGCAATAGAATGTTTTCCGT
-ACATTACATTACATTGATGCTCTGCCTGCACCAATAAGAGAATATGACTGGGTGTATCAT
-AGTCATCCATCCATGCCTCAGGCCCACTTCCCTGATAGTTGGACAGGGAGAATAGGGAAT
-GCAGATGCCTTCGCTTTCTGGACACTTACAGTAGCTGTGTTTGTCTTTGTCATCTCAGTT
-TGCTCACTTATGAAATGCTAGCGTTTTACTCAGTATCTTTCTCCCCACCCCTGTCATAGT
-ACATCTTTCTGATTCTGAAGATATAAGATTGGCTTATGTTTTGTGGGGTCAACTTCACCT
-TTGACCCCATAAGATCCTAGAGATTTAATGTAGATATATAAAAGTTGGAGAAAACATTGG
-TGGAAGGGTTTTCTCCACTATAGACACAAATCCATGAGTGTCATCACAGACTCCTTTTCC
-TTCTTCACTTGATTCCAGTGAAGATCCATGTTCAttctaccacctccaatatgtaccatg
-acctctatctccagctgctgctaggatgattgcaatagccttcccattgattgccctgca
-ttcctttcacactcacgcctaactatcctccacaatgagagccagaatcatttttctgaa
-acacagatctaatcattagactcccctctggcatcttttcccatagcatcctaagacaac
-tcttcagagcagccttcatcactcttggcattcagaacctgccttgcgtttccagtttta
-cctccaaagcactgtcacagggcatcttgctatcccaccaacatacctcttcgtgattgg
-tttgaactcactggattgcttctggttttgagtttttgtacatacttttctgtctCCATT
-TATAACTGCCTGGAAAAAAATCTTTATTTTCTTCTGGAGGACTTTGATAACCACACTGTT
-CTACCCACAATAGAACTACTGCCACCATTTGTGCTCCACTGTTATGACTTACCCAGAATT
-TTAAGTCATCATGTCACATGCCTCACTCTGAATATCTGCTTATGTCTTCTCCCCTACTGG
-ACTTTGAAATTTTATTTAGGAACAGGAACCATCTTATCTTCTCTTTCTCCTACCATCCCC
-TAACAAGATTCTATATTAATTCTTGTTGAATAAGTAAGAGGGATTCTCGAAGGCCAGAAA
-GATCTTTGGATGTTACTGAAATCTCATTTTTATTTATTTTAGATCTTCTCCAGGAAACAG
-GCTTCTGTCTCCTTTAGAAGACATATCTATGATCTATGTCATTACATAGTAGAGGAGTTT
-TGAGAGGTGGCTTGTCCCATGTGGTAGGACATCATTGCCTCTTACACCCATGCTTATCTT
-TGCAGGCAGAACTCATGAACTCACACAAGAAGGTGGGCAGATGGAAGCAAGTTACTTCAg
-cagaggagaatagtaggaaaaaaacataactttagagctggatgtatctgaggtcattca
-tgatcccaccatatatccactcttggaccacagacaaatgatttcccatcttcgagcctg
-ttactgaatttgaagaacagagaaaatactcactcccactcaaggtactttgagggttgc
-cagagtaatctattaaaatgttaatcataTCATAGGGATTCAGCTGTAACAGGTTGTTCC
-CTGGATAAGAAACAGTACAGCACATTTCCCCAGGGCCCTGCCCACTGGGCCTTGGCTGTC
-TTGCCTGAGTATGGGTGATTATAGCCTATGTTTCACCTGGGGGAAGACGCATTAGGCTGA
-GAAGAGTGTAACAGAGTTGAGGGTCATGGGATCTCTTTGAACAGCCAGATGAGATTTTAA
-AGGTTCTAGTAGAACTTGCTGTGCTTACTTTTCAATAATCACCTTGATCACTACCTTGGA
-AACATCTTAGAGCTATTATCACATTGATTCTAGACGATGAATATAATCTCAGTGCTGCAG
-CCTGAAACATTGTCCTCCTGTCCTCTTGCCTTATATCTCATCCGTCCTTCACGCAGTGCT
-GGAACTTAGGTGGCAAATATTCTTTTCCCACTTTGGAGTTGACTAATGGCATTAGGAGGC
-CAAGGGAAAAGGAATCTTTATGGTGAGAGAAACTGCAATGTGCCAAGCACATTAATACAC
-AATTTCTTAAACAAAAGCATTGTATGATAATtatgacaacatgattaaagctgaggaacc
-tggagtaaaatgtatctagggttacatctaggtttgttccttactacttttactcatcat
-gtggtctctatatcaatttcttcatttgcaagacaggtataatcatgcatctacctctta
-gaatcactctaaaaattaaaatagataaggcatataggtcaccgtgatctctagcaccaa
-tgaaattctaagaaatgtagatttTAAAAGGCATATGAGATATAGGTTATTCTGGTTTAA
-AATATGAAACGTTTAAAAAATAAAATATGTAAGTCCTGAGTTTCCGGGAGAAAAAGGGTC
-TTGCACAAGAACAACCATATTTGGGAGGCAATTTTACCTGTTCTCAAGGCCGCATCTCTA
-CCCCATCTCATGCGAATCCTGACCCATATTTGGGAGGCAATTTTACCTGTTCTCAAGGCC
-GCATCTCTACCCCATCTCATGCGAATCCTGACCCATATTTGGGAGGCAATTTTACCTGTT
-CTCAAGGCCGCATCTCTACCCCATCTCATGCGAATCCTGACGACGTCCTCAAAGCTGAAT
-AAATTTTTGCCTTAAATAAATTAAACGAGATTTAGATTTCACCAGTCACTGATACTCAAT
-CCCAATTGGATATTCATTCAAAAGTCTGACTTCTCTCCTGAGGTGAGAGTAAGATTCCTG
-GGCACTTTTTCATAATACTTACCTTAACCTAGCTAAACACAATGGACACTCTTCTTTGAG
-gtgtcagtggaaattaagaggagagtctgaactcttacctcccacatggggcttgcagac
-aggtgaagatggcgctcctcccctttgttggtaatggagacctagaagaaaggctgggca
-tccagctcccacgcagtcatatgaagcagcccagagcaacattccccttcactgcctgtg
-cggtggcagtagagacctagcAGTAGAGACCTAGCTGGGAGTCAGATCTCCCATCCCTCA
-ACCAGTGGTAGTGATTGGCCTGGGgaggaatcccttccctgctggtgccatgtcagtgaa
-aactgaggggagactgaaattgcccttccttccaatagtataaaaggcctgaagcagact
-tcccttcccagccagtacattaccattgaagaccaaggggtggtctcaacttcaatccct
-aGGGAGCCGTGGCTGGCATCAACCCTCCTTCCAGTCAGTGAGGATAGAGGATAGGAGGGT
-GCTGGAAAATAGGTGTCTTTAAAACTGAATAATGTTGTTTTTACCACAATTTTAAAAACT
-GAATAAGAAGACATGGCAGACCCCTGAAACTGGATAACTACACACGGAACTAACCAGAAT
-TAACATGCAGAAGGTTTGAGAATAGAACTGCAGTGGGGAATACCACCTAGATTTTTAaaa
-taacaacttgtatatatttaaggatatatgcaatatgatgttttgatatacatagacata
-gtaaaatgattgctataatcaaattaacatatccttctcttcacatagttatcatttttt
-gaggagacagcacctgaaatccatcttcttagcaaatttctagtatacaacaccatatta
-ttaactagagtccccatactgccctttagctctctagactttatcctacacaacttcaac
-tttgtacccttcgacgagcatccccccatttcctccaccacccgccccacccctgataat
-cactggtctacactcttctatgtatttgaatttttaaattccatgtataagtgagatcat
-gctgtactttttttctgtgtctgtcttatttcacttagcataatgtcctctgggttcatc
-catgttgttctgaatggcaagctctcctttgtcaaggctgaataatatgccattgtatat
-atatacaatttatttagtgtgttcatctatcgatgtcgatagatgataatgtcttcatct
-atcagcttaggttgatttcatatcttggctattgtgaataatgctgagcacagatatctc
-tacatggtgccgatttcatttctttttggtatataccaagacgagggattgatggctcat
-atactagttctgtttttatttttttgagaagcctccatactgttttacatcattgttgta
-ctaatttacatttccaccaacagtgcgcaaaagttccctttacattctcaccaatacttg
-tgatctcttgtctttgtgataatagtcatcctaacaagtgtgaagtgatttctcattgtg
-cttttgatttgcatttccctgatgattagtgatgttgagcacctttccatacacttgtta
-gccacttttatttcttctccagaaatatttctgttcatgtctttgcccaattttcaagtg
-ggctctttgttttttgctactgagttgtgtatgtttcttatatgttttttatattaacct
-tatgtgatatatggtgggcaagtattttcctcccatcccataaactgccttctcactctg
-ttgactgtttcctttgctgtgcaAcaaatgatcttcaatgataatacaaagaatatgcaa
-tacagaaatgatagtcacttcaacagatggtgttgggaaaactggatttccacaggcaga
-acaaatgaaatggatccttatcttacaccacacacacacacacaaactcaaaatggattt
-aaagacttaaatgtgagcctggcaaacttaaaactcctaaaataaaacagaagggaatat
-ctttatgactttggtctaggcaacagttgcttgaatatgacatcaaaaccacaagcaaca
-aaagcaaaaatatattagtgggactatggatacatttgaaacaaactacaaactagtaaa
-atctcagcaaagaaatagaagatataggccaggcacggtggctcacgcctgtaatcccag
-cattttgggaggccgaagagggcggatcacgaggtcaggagatcgagaccatcctggcta
-acatgataaaaccccgtctctactaaaaaaaaaaatacaaaaaattagtggggcatggtg
-acaggcacctgtagtcccagctgcttgggaggttgaggcaggaggatggcgtgaacctgg
-caggcggaggttacagtgagccaagatcatgccactgcactccagcctgggtgacagagc
-gagactccatctcaaaaaaagaaaaacagaaaaaagaaaaagaaatagaagatatgaaaa
-taatcaaatggaaattataaatttatgaaatgtaatcaaagtaaaaaagaaaaagtcact
-gtataggctcaatagtagatggaacatgacagaggaaaaaataagacagatctatagaat
-tacccaatctaaaaacagagaaaaatagactgataaaaatgaacagagccacagatacct
-gtgggacataaaaagatctaatgttcatgtcatcagagtcctcaaggagagggagagtgt
-ggaactgaaaaaaatatttgaaggaataatgcctgaaaaatatcccaagtgtggcagaat
-acatacatctgtaattcaagatcttgaattaacccaaaacaagataaacccaaagaaatc
-catgccaagataaagtataatcaaactaaaactaatagctagagacagaaaaaaatcaag
-cgagcattcagaaacaatacaccacccatggtaaaacaatggtttgattgatgggatttg
-tcatctgaaaccatggaagcaaaaaagaaatgtcatcacatgtttcaaatgccaaaataa
-agaactatcaaatccaaatcctatatctagcaaaaaaaaaaaaaaaaaagttctctagga
-ataaacagggaaagaaaaacattctcaaacaagaaactattaagggaatttgtcactagc
-agccctatcctaaaaatatagtcaaagaaagttctctaaaccaaaatgataaccgggggc
-ttggaacttcagaaaggaagaagtcgaagtcaatagaatgggtaaaatgggaggtgaata
-taatagactatgcttttttttttgctttattttttttttatgctttcttttcttgagata
-gtgtctggctctgtcgcccggacaggagtgcagtggtacaatctcagctcactgcagcct
-cgacctcctgggatcaaaggatcttccctcctgagcccagtgagtagctgggaccacagg
-agccggctaatttttatatttttttgtagagacagggtttcactgtgttgcccaggctgg
-tctcgaactcttagactcaagcaatctgctgcctcggcctcccaaagtgagactatcttt
-ttattaaagagttttgaaatcatgtttggtagattgaagcaaaaattgtaacattgtctg
-atgtggttctaaatagatgtagaggaagtacttaaacattataagctgggtaaggcaaag
-aaatttaaagtgaggtaagtttttatacttcattcaaacttgtaaaactttgacaccgta
-gactgtgataagttaggtacagcaaccactaaaaaaaataaataaatacaataagaaatt
-atagctaaattatagtggaattctaaGgaacaaatagaaaacaaaatataaaatggtaac
-ttaatccctaacatgtatcaaaaagataccccatacaaatattaatcataagaaagtagg
-aatggctatattaacatcagttaaagcagacttcagagcaaaacaaattatcaaggacag
-agagggaaattatataatgccaaaagggtcaatcaaccaagaagacatggcagccctgat
-cgtccacaaactgaaaaccagagtttcaaaatacctgaagcaaaaactgataaaactaag
-aggagaaataaatttacaatatcaggccaggcgtggtgactcatccctgtaattccagca
-ctttgggaggctgaggcaggcaaatcacttgagcttgggagtttgagatcacctgaggca
-acatagtgagacccccctctctataaaagatacaaaaactaaggtgtggtggcccacgcc
-tgttgtcccagctactcaggaggctgacatggaaggcttgagcccaggacatcgaggctg
-ccgtgagctgtgcactccagcctgggtgacagagcgagaccccgtctcaaaaaaaaaaaa
-aaaaaaaaaattacaatatcaacttcaacagttgatagataggacaactagacataaaat
-ccacaagggtgtagaagaatttaaaaataccacaaagcaacaggatctaatagacattta
-taaaacatttcatccaacaacaatggaatacactccttggtgtttatgccaaggaaatga
-aagtgtttttctccacaactcccgggcaggaatatcaatggtagtgttatttataatagc
-ccaaaagagtaaacaaccaaaacgtcattcaacaggtgaatgactaacatagggtggtac
-atccatacaatggaatacttctcagcagtaaaaaaaaaaaaaaaaatgaattattgatac
-atgcaacagcttatatagattataagagcattatgctgagtgatgaaaaaagacaaaggg
-tcacatagtgtgtgactatattcacataacattgtctaaaaattatgaaatgtagaacaa
-attagtgctttccaggggttatgaatagtcaggagagggagggaaatatgccagtaagac
-aataagagagggagatcttttcataatgaataattctgtattttgatttgttgatggtta
-aatgaatctaAGAAGGATCTGATAATCTAGTATTAGACGCATAGTACAGTAGTGAACTTT
-CAGCCTCTAGAGAagtgctctccaatagaagtaactaaaaagatggaaatgttctaaatc
-tgtactatacaatatgttagccactggtcatgtggttgtaaagcacttgatatgtgCTCT
-ATAATattttgagcaagtttcttatgttttctgtgcctttgagtttctcatttgtagaat
-ggagataataatatctacctcaaagtgttgctgtaaaggtaaatgagtttatgtatgtaa
-gacaccgacaggagtgccagcacatagaaagtgttatacaagggttagccattTGTTATT
-GTCATTGTTGTGTTTTGTTCTCTTTCTAATGTCTGGACCTTCAAAtgattcagactcatg
-ggaccatacttcattctgtttttataactttaacctgtaagattctcattttaattggaa
-tttcatatttaggaattcttgggtgccttggatatatgaagaaaagattcacatctgctt
-ccactaaacaactagcgaattaacaactgagatttcttataattaaattatttacttgat
-ttttttaatccatataaatagcttgaacttaggttgaaacccatgagaatttgtggctac
-agttcatagggttaatatttaccttctccatccagagccaaggttaaTGCTGACAAAATA
-CAATCTAATACAGATTAATCTGTGTGTGTGTGTATGTATACACTCGTGTCAGAGAGAGAG
-ATTTCATTCTTCCTTAGGCTGAGATTGTTGCCTTTGAATCTCAGGTTTATATAAGGGTAT
-CAATTATATGTCTTCCCTAGGACTAGATCTTAGCTTTATACATCTCACATAGCCATCAAA
-ATAATGTTCAACTTATCTTTCAGGGTTTGCAATCTTAGTTTTTGGCCTGTGCAGATTCCT
-TTCATTTTTGACGGTTTCTCAATGCAGTAATTTCCTTTTTACATTTACCCAACTTTTTTG
-GTTATTTTCACCAGATACATTGTTCAATATATCTATTCTACTATATTCTATTAATAACAG
-TCTACTATATATGTGTCTTATTGTCTAatattgctgaaatctttttttaatccaataatg
-aatctctgtcatctaatcagtgagtttaagccatgtgaatgtattataactactgatcta
-ttaggacttttttctgccCTCCAGTTGTGACTTATCTATTCCTCATTTTTTTTAGTTTCT
-GTTGGATGGATCATATGTTCTTCTGCTAATATGaatattataattttatttttatttgtt
-ttattaaaaatttGTCCTTGCTCTTAGGACCCATTCCTATCCTTATATTTATTATTACTA
-ATTTAACATCCAGCTTCAGAAATACAACTTTAATAGGAAGGCTTTTTGTATTTCTCCTGA
-CTGCTCAGACTTAGGGTCTTTATTTGATGCTCCACCACCAAGTCACCTATAAGGAAAGTT
-TGCATTCACAGGAAGACTATAAATAATAAAACCAATCCCTTGACTAGGACTTAAACCATG
-TAAAAGCTGGTGGCAAAAGTAAAGGGAGGTGACCCTTGAGACCTCTGAGGTAACTGCTCT
-TAAATTTACATTTGCCTCTAAAAAGGATTTCTTATATGTCAACATCTCTCTGTTTAAACA
-TATTCTTGTGTAAAACCACTACGTGACCTGAATAATGGCCATAGGGCTCATCTCTAAGCC
-AACTGGCTTATTTATTTAATGCATCTCAGTGGTTAACAGGGTTGAAATTTTTTGAAAACT
-GCAATCAATGATCAAAGAATGATCTAGGTAAACATCGATTCCTTGTGGCAACATTTTAAT
-ATTTTCAAAGACAAGGTACAACTGGTAGAAAAAAAATACCCTCATGCATCTTTttcttct
-aattgtggtaaaatatatgacataacattggccattttagccatttttCCttttattttt
-agttgacacataattgtacttatttataggatacaaagtgatatttcaatacatgcatat
-aatgtgtaatgatcaaaccagggtaattagcatatccgtcacctcaaacatttatcattt
-gtattgggaacattcaaaatcctctcttctagccttttaaaagtatacaataaattgtag
-ttaaccatattcaccttacagtgctacaacaccagaagtcattcctcctatctataattt
-tgcatccattagccaatctctctccatcctcccctctccctaatcattaccagcctctaa
-tattaatatctgcaacactactctctacttccatgtgctcaacttttttagctcccatat
-ataaataggaacatgtggtaatctttctgtgcctgacatttcacataacataatgtcctc
-caggctatccatgttgttgcaaaggacagaatttcattatttttatgggtgaatagtatt
-ccattgtgtGTGTGTGTGTATATATATATATATATATTCCATTGTGTGTTATGTATGTAT
-AGTATTCCATTGTGTGCatatatatgtatatatgtgtgtacatatatatatacataatat
-atattcttctgcacatggaaatccagtttctccagcatgatttattgaagagggtatcct
-ttccccagtgtatgttcttggtgcttttataaaaaatcaggtgacCTCAGATCAGACCCA
-ACTACATCATACCTTCTTTCGAAATGTGCAAGAAACCTACTAGAAATTCTTATTGTTAGA
-GTTTCAGATTTATGTCCTGGTTTATACTGCCACATTCATTCTTGGAGGTGAGTACATTTC
-GATCTTGGTCCGGCTGCGCAGAGAGTCAAAGCAGGAAAATCACAGATTCTTCCCAGCAGT
-CTACAGCCTACACAGCGGCATTTGGTGCGATGGGATGGAACATGCTGTATCTCTATTCCA
-TGTGGGGGTAAAGTGGGTGGCCTGAAATTTCCTGTGTCTGCCTGCATGATGCAAAGCTCA
-CAGTTCAGAAGCTTAAGGACACACTTCATATCATCCCATCTGTTCTGGTTCAGTGCATAA
-GAATCTAAGTCTCTGAGGAAGGTAGCATAGTGTGCAGTTCACTGGACCAAAAGCTTTGGC
-TGCACCTCTTCTGGAAAGCCTGGCCATGGGGCTCTTCATGATCATTGCAATTCTGCTGTT
-CCAGAAACCCACAGGTAAACCAAACCAGAAGCTCACTCAAATCAACAGTGGGATGGAGCA
-TTTTCAGGAGCCAAAGGGAACTTCATAATCCACACTAAAGGGAAATAGAGCCCCCAAAGA
-TGGCTAAAGTTTATCCAACATCATCAGAAATTTCCTCTTTCTGGAGCCTTATTCCATGTT
-ACTATCCTTAAAGAGGAGTACTCACTGAGCTAAAAAGAGGTCATAATTTCTTCTGGGAAA
-GATGTGTTGTTATAGAAAGGAATGATGCCAATATCTAGGGATACCTTTATGTCTTTGGAT
-ATGGTTTTTACTCTGATGCTCAGCTATATTTCCTTTTACTCAAATATATATAtgtgtgtg
-tgtgtgtgtgtgtgtgtgtgtgtgCATGAatagaggaagaagcaaattttggagttaggt
-ttaagaaacatgccttcaatatctactagtttgtcaactttaagtagtgaagactctagg
-agcctcagtttcctcatctatggagataatgacacctggttaacaggggttttattaaat
-gatataacctatgtgaagcttggcacatactgagaactcaaaaatTAGAGTTTCCTTTCC
-TCTTTCAAAACCAGATTTCTTACATGTGTCCCTTATTATAAGAATAGTAATGGCCTATTC
-CTGACCCTCTACATTCCTAAGACCCAATAGACTACTACCTTACTGGATAACATGAAAGTC
-ATTCTTGACCCTGATAGTGGGTTTGAACTCAGGAGAACAGTTTGATTCAGACATAAACAC
-ATAGTAACAATACATTGTTCTCTGGGCATCAGAGGAGGTGCAGTAGAAGGTAGTGCTCTG
-GGAGCATTCAGGATGCAGGCAGATTTGCTGAGGTTCCTATGTAGAGCATAGTTCCATAGC
-CTAGAATCAAGGGTTCAGCTCCTTTATTTTCTCAGATAAGATCTTATGTTCTTGGCAGAG
-TCTATCAGATGTTAAGGGAGGCCTAAAACCTCACAGGACCTAAATATAAGTGATCCAGTT
-AAATACAAACACTGAGGTTGACCTTGTCGGAAAATCCTCTTCAGAATATATGAGGGTCTG
-CCTTGTGGATACCCCATACCCCTAATTCCTACAAGCCTCCTCTGTCTTCCCCAAAACCAA
-CGTGCCTTCAGTCTCAAACACTGATATTGTTCTATTGCTCCTTTCTGTGTATAGTAACCG
-AACAACTTAAGAAGTGCTGGAATAACTATGTACAAGGACATTGCAGGAAAATCTGCAGAG
-TAAATGAAGTGCCTGAGGCACTATGTGAAAATGGGAGATACTGTTGCCTCAATATCAAGG
-AACTGGAAGCATGTAAAAAAATTACAAAGCCACCTCGTCCAAAGCCAGCAACACTTGCAC
-TGACTCTTCAAGACTATGTTACAATAATAGAAAATTTCCCAAGCCTGAAGACACAGTCTA
-CATAAATCAAATACAATTTCGTTTTCACTTGCTTCTCAACCTAGTCTAATAAACTAAGGT
-GATGAGATATACATCTTCTTCCTTTTGGTTTCTTGATCCTTAAAATGACCTTCGAGCATA
-TTCTAATAAAGTGCATTGCCAGTTTTCTGTCTCATTTTGTTCTTTAACCAGGGGTTGAAC
-ACTCATTATATACTAGGTAATGAATTGATAAGAACTCAGAACCTCTCCTTGAAAAGGGGA
-TATGACAAGTACACTAAAAAAAAAAAGTCCTATAGTGTGGAAGTCTGGAATAAGAAACTC
-AGAAACACTGACATGTAATTTAGGAGAGGGAAAGGTGAAGCAAATATTCAGGGGAAATTC
-ATGAGTAAGTTTAGGAATAAAGCAGTGTCTTGTAGTAAATAAGTAAATAGTAAAGCAGTA
-AATAAGTAGGATTTCCATGGATGAGGTTTGGTAGGGAAGGCAATTTGAGTGAACAGAATG
-GGAGGAAATTGGAAAAGACAGAACATTTCAAGACACTATACATGCACTTTGTTTGGATGA
-AGAACAGAGCACTCAAAGTTGAACTATGGGGGAAGTCTGATTTCCTAAGCTCCTGTGTAC
-CAGCAGTGAACTGGGAAGACGGAGATAAATAAGATTCCACTGTTGTGGAGCTCAACAGTG
-GAGCTCAACGCTTCCTCTATGAAGTGGAGAAGACCTAAGTAAATAACTCCAACACAAAAG
-TTTTTAGGTTTTTGCTttgttgttgttgttgttgttgatgtGTTCATCTTTTTTGTTATT
-GGGGCCCTGTGGAGTTTAGGGGAAATGTAAAAGATCTAGGAATTGGTCCAAATTGTAGTG
-CTTTCATTGTCTTGATATGCAAGAAGAATAATCCATGTACATACTCTGCTGAATTCTTAA
-AGATGTACCTTCTGAATATGATTAACATGGAAAGTTTCTTCTTCAACTACATTTCAAAGT
-CATTTGCTAGTTTTGTTTCTTATATCATTTCACCATAACAATTACAAGCATTTTAAAGAT
-TTAGTTCATCCACTATAACATTTACCACTAATGTGTGGCATGTGTTCTCTTAATCTCTCT
-CTTTCTGGTGttctagggctggtatagggagcacctaaaacaagcctaaaatatcttgtg
-gtgccagaaagtaagcaattgcttaataatcaaaggatagggtctgcaaacacggacaat
-ttgacttcctcttttcctaattgaataccctttatttccttctcctgcctgattgccctg
-gcgagaacttccaacactatgttgaataggagtggtgagagagggcatccctgtcttgtg
-ccagttttcaaagggaatgcttccagtttttgcccattcagtatgatactggctgtgggt
-ttgtcatagatagctcttattattttgaaatacgtcccatcaatacctaatttattgaga
-gtttttagcatgaagggttgttgaattttgtcaaaggctttttctgcatctattgagata
-atcatgtggtttttgtctttggctctgtttatatgctgcattacatttattgatttgcgt
-atattgaaccagccttgcatcccagggatgaagcccacttgatcatggtggataagcttt
-ttgatgtgctgctggattcggtttgccagtattttattgaggatttttgcatcaatgttc
-atcaaggatattggtctaaaattctctttttcggttgtgtctctgcccggctttggtatc
-agaatgatgctggcctcataaaatgagttagggaggattccctctttttctattgattgg
-aatagtttcagaaggaatggtaccagttcctccttgtacctctggtagaattcggctgtg
-aatccatctagtcctggactctttttggttggtaagctattgattattgccacaatttca
-gatcctgttattggtctattcagagatgcaacttcttcctagtttagtcttgggagagtg
-tatgtgtcgaggaatttatccatttcttctagattttctagtttatttgtgtagaggtgt
-ttgtagtattctctgatggtagtttgtatttctgtgggatcggtggtgatatccccttta
-ttgtatatgtagaaaaccccattgtctcagcccaaaatctccttaagctgataagcaact
-ttagcaaagtctcaggatacaaaatcaatttaccaaaatcataagcattcttatacacca
-acaacagacaaacagagagccaaatcatgagtgaactaccattcacaattgcttcaaaga
-gaataaaatacctaggaatccaacttgcaagggatgtgaaggacctcttcaaggagaact
-acaaaccactgctcaaggaagtaaaagaggatacaaacaaatggaagaacattccatgct
-catgggtaggaagaatcaatatcgtgaaaatcgccatactgcccaaggtaatttacagat
-tcaatgccatccccatcaagctaccaatgcctttcttcacagaattggaaaaaaactact
-ttaaagttcatatggaaccaaaaaagagcccgcatcgccaagtcaatcttaagccaaaag
-aacaaagctggaggcatcacactacctgacttcaaactctactacaaggctacagtaacc
-aaaacagcatggtactagtaccaaaacagagatgtagatcaatggaacagaacagagccc
-tcagaaataacgccgcatatctacaactatctgatctttgacaaacctgagaaaaacaag
-caatggggaaaggattccctatttaataaatggtgctgggaaaactggtagccatatgta
-gaaagctgaaactggatcccttccttacaccttatacaaaaatcaattcaagatggatta
-aagacttaaacgttagacctaaaaccataaaaaccctagaagaaaacctaggcattacca
-ttcaggacataggcatgggcaaggacttcatgtctaaaacaccaaaagcaatggcaacaa
-aagacaaaattgacaaatgggatctaattaaactaaagagcttctgcacagcaaaagaaa
-ctaccatcagagtgaacaggcaacctacaaaatgcgagaaaattttcgcaacctactcat
-ctgacaaagggttaatatccagaatctacaatgaactcaaacaaatttacaagaaaaaaa
-caaacaaccccatcaaaaagtgggtgaaggacatgaacagacacttctcaaaagaagaca
-tttatgcaaccaaaaaacacatgaaaaaatgctcatcatcactggccatcagagaaatgc
-aaatcaaaaccacaatgagatatcatctcacaccagttagaatggcaatcattaaaaagt
-caggaaacaacaggtgctggagaggatgtggagaaataggaacacttttacactgttggt
-gggactgtaaactagttcaaccattgtggaagtcagtgtggcgattcctcagggatctag
-aactagaaataccatttgacccagccatcccattactgggtatatacccaaatgactata
-aatcatgctgctataaagacacatgcacacgtatgtttattgcggcattattcacaatag
-caaagacttggaactaacccaaatgtccaacaataatagactggattaagaaaatgtggc
-acatatacaccatggaatactatgcagccataaaaaatgatgagttcatgtcctttgtag
-ggacatggatgaaataggaaatcatcattctcagtaaactatcgcaagaacaaaaaacca
-aacaccgcatatcctcactcataggtgggaattgaacgagatcacatggacacaggaagg
-ggaatatcacactctggggactgttgtggggtggggggaggggggagggatagcactggg
-agatatacctaaggctagatgacgagttagtgggtgcagcacaccaacatggcacatgta
-tacatatgtaactcacctgcacaatgtgcacatgtaccctaaaacttaaagtatttaaaa
-aaaaaaaaaaggatagggtcatattaaaagaacacaggagtcggtctaaaagagcttcaa
-atgaccaaagctgcgacaatttgagcaataaaataaataagatagcattggattataata
-caacatataataaatatctatgagtccatgatgatatgaataaataattgaataaattgg
-aaaattggtgagaacagatgtgccatatagaataattcccaataattcatacagatactc
-cctgctgaagaaggtggagcttgacctccctctcccttgagcatgggctgtatttagcta
-cttgtttccaaagagaagtgtgtggaaaggagttaaaaaataatttcacctggataaacc
-tgataaggtcatgtttcagattttatggagaaatcatattgataacatgaacctgtgata
-tgatctgatgagaatggcacttcacttctgttttcttcctcccaaaaccctgcgacccaa
-gacaaacaatgaaaaacatcagaaaaactcaaattcagtggcattctaaacaatatttga
-ccagtatttctaaaaactgtcaaatttatcaaaaaggaagaaattctgagccacagtcaa
-agaccagagaagcctaaagagacaggacaactaaaggtaatgtggtatcctggatggact
-cttggaacaggaaaagaacattaaggaaaaactagtggtgataatagtaataataataag
-tgtagagtcatttagtagcaatgtatttagctgtgatggctgcattgtggtaatataaga
-tgttaacaatagcagaaactgggtgaatatttgggagctctctgtattatctttgcaaca
-tttctataaatctaaaactattctaaaactgaaaatgtatttAAATTTTAGAAAACTGAC
-CACAAAATCAATTTGGCACATTCCTTTTCTTCTTATTTACGAAAGAGCTTCTCatttctt
-cattgaatgcttggtagaatctaatggtaaattcaactggaacggaactctttacaggaa
-gtattgttatagattaagtttattgcaggttaaaaggcaattcagttttctatgccttct
-agtcaactgttgtatttggcatatatacttttcccatgttctaagatttttatacttgct
-atcctaaaactcttgtaatatcttctttttatcttattaatgcctgtaagatatgtaatg
-acaccttctttttcatttttgacatctattatttgttttattttctcttttttcttgata
-agtctcacattcacttattaatttgatttatctttacagaaaacaaattttcttcattaa
-ttttAGTTTAGTTTCCATTTCTTAGACtgtgacttgcattgcccaattgaaagtgattga
-aagtgacaggttcacttccaagtggaaacttaagagccagtgtgtccatgtgcagtggct
-cacacctgtaatctcagcactttgggatgctgaggcgggcagatcacctgaggtcaggag
-tttgagaccagcctggccatggtggtgaagccctgtctctactaaaaacacaaaaattag
-ccaggcatggtggcagggcctgtaatcccagctatttgggaggctaaggaaggagaatca
-cttgagcccagaaggcggaggttgcaatgagctgagatcatgcctctgcactctagccta
-ggtgacagagccagactctttctcaaaagaaaaaaaaaaagagccagtgtgcagtttaac
-cgtctctcatctctctgccaaggtgattgtggaagcactgttgacatagagcctctgtca
-gcctgaagccccgagtgaccatgaaagcagggtcattcttttgacctaaaatagacatct
-agcactgccagaaataaccttttgggaagttactctatgagagctgaggtttgtttttta
-ttTTGttttatatatattttttaaatCAGGAATAACTTAGACCAGGGTGAACAAACTACT
-GCTGTCAGGGCAAATCCAGCCCATAGCCTGCTTTTGGAAATAAATTTGTATTAGAacaca
-cacacacacacacacacacacacacacacacacacatacacacatacacacaAATATATC
-TTCACTAATGTTCTTTTTTTCTTGTTTTTCAAAAACTtttacataccataaaattcacct
-gttttaagtgcacaatttagtgTCATTTCTATTTTTTATTTTCGgtatgcttttcttttt
-gtaactttgttaggtgcatgtttatctttataaaagaaaagccttccttcttttcaaata
-tgagagtttaaagttgtaagtttctctctatacacagcctgagcaccatcccacaaattt
-tcaatatagagtatgttcattgttacattataaaccttctcatttctcttAAACCATGAG
-CATATAAATAACATATAGATTATATAAAGACTATGGATACAAATGTTAATCATGCAATTT
-TGTCAACTAGTTATAATTACATATACAGTAACATTACTTTGGTGATATGTAAACCAAAAT
-GTAAACAAAACTTGAAAGCAAACAGAAAATATCATATGCAAAAACTTGTACACACTTGTT
-CTTCATACAGTTTGTTTTCAAATATGATCTTCTATCTTGTTATAGGTTTTCTATGGCTTT
-AAACTGACATTTATTTTTCATTTATATTGTCCTCTGTTATGATTCTTCCAGTCCTGAACT
-TCCTGCATCAGTAATTTTTAAAGATATTTTTGGTTTACAGAAGTTTACCAATTATTACCA
-TAATTTATCATCAATTTATTAACTCTCACCATCATTTCAAAAGTGAAAGAAATTTCACTA
-CCTAAAAATATGTATGTATGACATTTTAGAAGAAAACAGACTTTTAACTAAATGCATTCA
-TGTCTCTTAAAATTTAGTTCTATCATTTTAATTTTTTTCATTTTATTACAGACCAGTTTA
-AACTTTGTCAGAACCCCATTAGGGCCCATGTATCCATTTAACAACAAAATTCTGTAATTC
-TTAAATTCTCAAATTCATAATTTATATAACCACTGATACCCAATTGGTAGTAGTCTTCTG
-AGGAATGTTTCTATTCCATTATTCCTTGTCTTCTCTAATCACTCTCTGAATCTAAACTTC
-TCTTTAGTTTTTTTTCCCTATAATTAGATGTTGAGGTGTTTGGCTTACTTATCTTCTTTA
-TTAGAATAAATAATATGTATCCCATCCCTAATGATTAGCACTTTGTCAATTTTTATATGT
-TTATGACAGGTGGACTCACTCTTATTCTAAACTCTGATATTAGTGATATCCAATGCCCCA
-TTCAGAGACCATTAAATTAAAAATGCACTTATTACTTCTGGGACTTTCTAGACAATTTCC
-TTCATCTTTAAAAGATCTGGGACAAACACCACAAGCTTTGTCCCACATGAAAGTTCTCTG
-CCCAAGTAATGAAGCATCTAAAAATGCTAGTAaagatattagattttaatataacacatc
-aataattatatttaatataaatgatctaaatcaggggtccccaccccccaggccatggac
-cggtataggtttgtggcctgttaggaactgggccacagagcaggaggtgagcagcagtgg
-gagtgagcattaccacctgagctctgcctcctgtcagatcagctgtggcattagattctc
-ataggagtttgaaccttattgtgaactgcacatgcaaaggatctttgcgtgctccttatg
-agaatctaatgcctgatgatccaaagtggaacagtttcatcctgaaaccatcttcccatc
-cctgccagtttatggaaaaattgactgcattaaaccggtccctggtgccaaaaaggctgg
-ggaccactgatctaaatacaccaataaaaagaaaaagattgtaagattggattttaaaag
-acctgactctatactgaccacaaaaaaAAACCCTCACTTTATTCTTTattgcatatattt
-atggtgtacaacatgatgttttgatacatgttgtgaaatggttaatatagtcaggcaaat
-caacacgttcatcatctcacatagtttccctttgtgtgtgtgtcgcaagagcacactact
-tttttaacaaaaattccaagtaaaatataatattatcatagacctcacgttgtacattag
-acctctagacttttttaatcttacgtatctgcaattttttatcctttgacctacatctct
-ccatttccttcccctccaaccacacccctggtaacgaccacattattctctatctccttg
-tattcagctttccttttttttcttttaagattccatgtataagtgaaatagtgcagtatt
-tttctttctgtgtcagtttatttcatttagcataatgttcttcatgttcattcatgcctt
-ggcaaatggcaggatctcctttttgaagagtaaataatattccattgtgtgtgtgtgtca
-cagtttatccattcatctatcaacagttcacttgtttcaaaattttgactattgtgaata
-atgctgcaataaatatgaaagtacagatacctctatgaagttaagtggtgatttcatttc
-atttttttttttaaagacagggtgtcacagtgttactctgtagcccaggctggaatgcag
-tggtgcaatcatagctcactgtaaatctcaaactcctaggctcaaggaatcctgcctcag
-tctcctgagtagctgggactacagacacacaccatgcttagtcaatgttttttaggtaca
-gggtcttgctgtgtagcccaggctgggctcaaagtcctgacctcaagcaatcctcctgct
-ttgacttcccaaattaccgggattacaagcatgaaccacctcactcagcctggtagttct
-atttctaattcctttagaagccttcatactgactccacaatggctacatctgtctacatt
-cccaccaagaatgtacaaaggttcccttttctccacaccctcattaacaattgttatatc
-ttgtctttttggtaatagttatactaacaggcatgaggtgatgtctcattgtggttttga
-tttacatttccctaatgattagtgattttgagccccttttcacatacttcttggccattg
-ttatgtcttctttggagaaatgtcttttcaagtctttgtccatttttttaattgggtttg
-gtttttttttactgctactgagctgtatgagttctttatatattttatatattaatccct
-tatcagatatatttaatataaaGACAAAGAAAAGCTATAAGACTTTATATCTTAAaaagc
-tggagtggctatattaatattgaacaaaatagatttcaaaacaagaaatactaccaggga
-tcaagacgcacagaaagaagtcaattcaccatgaaaatataacaatactaaatgtgcatg
-caactaacaatagaacttcaaaataaaagcttgtagaactaaaaaagagaaatagagaaa
-tcttcacctacaactggagatttTTAgactgacattagcaagatggcagaataggaggtt
-ccaagcatccctcctctcaacagaaaattcaactggcagatatccatgacaagagcactt
-tggtaaaaatcccaaaacttggaaataagccaaagacacccatgttgaccacagaactga
-ataaaaaccacattagaagggggaagagaaaaggtctcactttgaccaggccacccctcc
-tccactccctcgcccaagttggcacaccactatgcagacaggattgccctaggcctacag
-tttctccagtgggaaaagaaaactaaagatgaacattcagcttccttagccattcctgga
-atattctcagaaagcccatttcagtctcagttcacagggaaagcaggggataacggtgtg
-gttagatcacctgggttcagatagaaaaaaagaaaagggggcattgctcacagtgaccag
-tatgaagatactgttggtagctctgtgtcactgccagcagaggtaccagccaacagcata
-agccacctgcaaagccaagctggtcactcccagaagcacagtggaaatttccatctggct
-tgagtccctagatggccagcctccacagccagcctcaaatccctccccaaggccccacgc
-agaaatggagatacctgcaacaaagcatttcaaacaaaagaaacaactgagacttgtgcc
-ccagggcatttaaacagtggctcagactcaaagctcactcaaggagggagatgcccacca
-cagcacctttcagcaaagcccagaggctggactagccacacccagaagtataaatggtgg
-ctcacctcagcctcaaagcccaccccaagtctctgcctaggcaagggggcaagcctcaac
-catgcatttcaacaaagcatagcagctggtcccaactaccctgaacaaaacctatctaac
-ctcaggacccaaacagtggtagtgcccggccGGGGAAAATACCATGTCTGTTAAGGGTTC
-TTACCATGATTTTAAAAAAGAAAGaaaacctatacacagacattcccaacagctttattc
-ataattgccagaaattgaatacaatctgaatatccttcactgtgtggcttttaaaaaatc
-gcatttatagtacatccatagcatggaatattacttagcaataaaaagaaacaaagtatt
-catacaagttggagggatcttcaaggaacactaagagtaaaaatgccaatttaaaaagat
-tacatatctatgattccatttatatggcattcttgaaatgacaaaattatagagctagag
-aacagattcctgtttacccagggttagggaaggagggagaaggctctcactggaaaaggg
-tagcacaaggagtctatgtgataaactgttttgtgtcttgactgtaatggtggtcacaaa
-aatcaaagcatgtcataaaattgtgtaaaactaaatacatacctacatgcacacacacaa
-acaaatgactacatacatgtaaaactgatgacatctgattaagaccaatggagtatatca
-atgtcaatttcctgattatagttaaacaagatgtaaccattggagggaaaaggtatatgg
-gatttctctgcatgtaggtaagtctaaacatatctcaaaatTATTTTAAATGTCAACTTT
-TAGGAACAGCTGATATTTTCTCTGTATTTATCCTAAATCACTAAGGCTTTCACAAGATCT
-CTGCTCCAAAGACCACCATATTTCTTTTTAAATGACATATCTATTGTGAAATGCATTTAT
-GATAGTCAGTATTCTCATGCTGTGGAAATATACTTTAAAAAGAATATAGTCTTTATCCTA
-TACTGAAGCTCTTGTCCCATCCTGTCCTTTTCAAACACTCAGCAGTTCAATTGAGCTTTA
-CAACTTCCATGCACTTCACAAAAAGAAATAAAATAGTGGAGGCTACGCTGATCTCAGCTG
-GTTTTCATATATTTGGGGGTCAGAtggctatagactgatataagctagcctctgctggga
-caactgggttcttctccaaaatgtctctcttgtccttcctgcagactagactggtcttgt
-tcacctgactgaggcagggttccaatggagaaggcaaaggcacacaggccttttgaggca
-taggcttggaaatagcacaatttcatttgtgccatattctCTCTTTTTATGACTTTATTA
-TTTGAATTTGTATATTGCACAAGACTTCCTATTGTTCAGATTTCATTTGCTTTCTTTCTC
-TTGTATTTTAACATCCTTCACAATTCTCACATCATTATTAAAAGTTGCACTTAACCTAGT
-AATAGATAAGCATTAGCTGAAATTAGTAATTGCTTAACTTCTATCCTACACTACTTTATC
-ACATACTAGTGTGTCATGTTTCATAGTATAGGAACAAAGTAATCTTGCACGATGATATCT
-CTGATGCATACCACTATATTTTTGCTCATGGAATGACAGCAAAATTAATTTTTCTGCTGC
-CAAACTAATATTCAGCCAATCTTTTATTCATCAAATCTAACTACTTAGACCAGGGGCAGT
-TTCCTTTAGAGTTAGACTGTAATTTGTGTACTAATTTTTTTTTGGTTTTTTGTTTGTTTG
-CTTGTTTTGCTAAGGGAAAAATTTATTTTCCTGATGTAtttattattttttagcttttat
-tttagttttagttttaggaatacatgtgcaagtttgttatataggtaaattgcatgtcat
-gggtgtttggtgttcacattcttttgtcagccagataaCCATATTCTCTCTTTTAACGCC
-TATTTaaaattatatatttttaagctatacaatgtgatgttttgatatacatatgcatAT
-TTAAGCTATACAATGTCATGTTTTGTTGTACATATGCATATTTAAGCTATACAATGTCAT
-GTTTTGATGTACATATGCatatttaagctatacaatgtcatgttttgatgtacatatgca
-tcttgaaatgaatactatagtcaggctaattaacatatcagtctcttcacgtagttacca
-ttgtgtgtgtgacaagaatgcttaagatctactctgatagtaaatttcaactatataata
-cagtattatCTCTTTTTTAttttttacttttatttgtttatttttttgagacagagtctc
-tctgtgtctcccaggctggagtgcggtggcgccatctcggctcactgcaagctctggctc
-ccaggttcacgccattctcctgcctcagcctcctgagcagctgggactacaggtgcccac
-caccacgcctggctagtttttttgtatttttagtagagacggggtttcactgtgttagcc
-aggatggtctcgatctcctgacctcgtgatccgcccacctcggcctcccaaagtgctggg
-attacaggcgtgagccaccacgcccagcctttatttatttatttattttgagatagagtc
-tcgctctgtggcccaggctggagtgcagtggcagcatctcagctcactgaaatctctgcc
-tcccaggttcaagcaattctcctgcctcaacctcccaagtagctgggactacaggcaccc
-tccaccacacccagctaatttttttatttttcatagagacggggttttgccatgtcggcc
-aggctggtcttgaactcctgacctgaagtgatccacctgcctcggcctcccaaagtgctg
-ggattacaggcatgtgccaccatgcctggctGatttttgtatttttagtagagacggggt
-ttcaccatgttggacaggctggtctcgaactcctgacctcaagtgatctgcttgcctcag
-cctcccaaagtcctgggattacaggcgtgaaccactgcttccggccacagtattatcaac
-tgaggtccccatgctgtgcattagatctcaaaaacttaatcatcctacaatactggaacg
-tactctttgaccaacatcttttgattctgccaccattgcttctgataatcactattctct
-ctccttctatgaatttgacttttcaagattctacatgtaagtgatatcatgcagtatttt
-tcttcctgtgcctggcttattttacttagtataatgtcctccaggttcatgcacattgca
-caaacgacaggatttctttgttttaagactgaataatatttcatATtggatacaacctaa
-gtgttcaacagatgaatggataaacaaattgtggtatatacCACCTGTTCTCCCTTGTAA
-GTGGAAGCTAAAtgtcaggcctctgagccgaagctaagccatcacatcccttgtgacctg
-cacctatacgcctacatggcctgaagtaactgaagaatcacaaaagaagtgaaaatggcc
-tgttcttgccttaactgatgacattccaccacaaaagaagtgaaaatggctggtccttgc
-cttaactgatgacattaccttgtgaaatcccttttcctggctcatcttggctcaaaaagc
-tcccccactgagcaccttgtgacccccactcctgcctgccagagaacaactcccctttga
-ctgtaattttcctttacctacccaaatcttataaaacggccccacctctatctcccttca
-ctgactctgttttcggactcagcctgcctgcacccaggtgaaataaacagccttgttgct
-cacacaaagcctgtttggtggtctcttcacacggacgcgagtgaAATtttggtgccgtga
-ctcggatcaggggacctcccttgagagatcaatcccctgtcctcctgctctttgctccct
-gagaaagatccacctacgacctcaggtcctcagactgaccagcccaaggaacatgacacc
-aattttaaatcaggtaagcggcctttttgtactctcttcttcaatctcactatccctcaa
-cctctttctcctttcaatcttggcgccacacttcaatctctcccttctcttaatttcagt
-tcctttccttttctcctagggacaggagacgcattttatccgtgaacccaaaactccggc
-gtgggtcacggactcagcaaggcagacttcccttggtgtttaatcattgcgggaatgcct
-ctctgaatattcacccacatttcagaggtgtctgaccacatggggacgcctgccttggtc
-cttcacccttagcagcaagtaccgcttttctagggagcaaacaccccccaccccttctct
-ccatgtctctactctctcttttctctgggcttgcctccttcactatgggcagccttccac
-cctccattcctccttcttctcccttagcctgtgttttcaagaacttaaaacctcttcaac
-tcacacctgacctaaacctaaatgccttattttcttctacaatgccgcttgacctcagta
-caaactcgacagtggttccaaatagccagaaaacagcacttttggtttttccatcctaca
-agatctagataattcttttcataaaataggcaaacggtcggaggtgtttgacatccaggc
-attcttttacacattgttccctccctagtctctgttcccaatgtgtctcgtcccacatcc
-tccttctttccctcccacctgtcctctcagtcccaatcccaagcattgctgagtctttct
-aatcttcgttttctgcagacccctctgacctcttacctcctccccaggctgctcctcgcc
-aggccgagccaggtcccaattcttcctcagcctctgctcctccaccctataatcctttta
-tcacctcccctcctcacacctgctagccctaccccacttgcccagcaatttcctcttaaa
-aaggtggttggagctaaaggcatagtcatggttaatgctcctttttctctatccgaactc
-tcccaaaatcagttagcgtttaggttctttttcatcaaatatgaaaaacccagcccagtt
-catggctcattcggcagcaaccctgagatgctttacagccctagaccctaaaaggtcaaa
-aggccgtcttatcctcaatatacattttattgcccaatctgccccgacattaaataaaac
-tccaaaaagtaaattccagccctcaaaccccacaacaggacttaattaacctcgccttca
-aggtgtacaataatagagtagaggcagccaagtagcaatgtatttctgagttgcaattcc
-ttgcctccactgtgagacaatccccagccacatctccagcacacaagaactccaaacgcc
-tgaaccgcagctgccaggagttcctccagaacctcctcccccaaagtccgtccccttctt
-aatcaatacggaagctacccactccacattaccttcttttcaagggcttgtttcccttgc
-ctccataactgttgtaggtattgacggccaggcttctaaacctcttaaaaactccccaac
-tctggtgccaacttagacaacattcttttatgcactcttttttagttatgcccatctgcc
-gaattctcttattaggccaagatattttaagtaaattatctgcttccctgactgttcctg
-gactacagccacacctcattgctgcccttttccccagttcaaagcctccttcgcatcctc
-ctctcatatccccccaccttacccacaagtataagatacctctactccctccttggtgac
-tgatcatgcaccccttaccatcccattaaaacctaatcacccttaccccattcaatgcca
-atatcccatcccacagcacgctttaaaaagattaaagcctgttatcacttgcctgttaca
-gcatggccttttaaagcctataaactctccttacaattcccccattttacctgtcctaaa
-accggacaaggcttacaggttagttcaggatctgcaccttatccaccaaattattttgcc
-tatccaccccgtggtgccaaacccatatactctcctatcctcaatacctccctccacaac
-ccattattctgttctggatctcaaacatgctttctttactattcctttgcaccctacatc
-ccagcctctcttcgctttcacttggactgaccctgacacccattaggctcagcaaattac
-ctgggctgtactgccgcaagccttcacagacagcccccattacttcagtcaagcccaaat
-ttcatcctcatctgttacccatctcggcataattctcataaaaacacaggtgctctccct
-gctgatcgtgtccgactaatctcccaaaccccaatcccttctacaaaacaacaactccct
-tccttctaggcatggttagtgcagtcagaattcttacacaagagccaggaacatgccctg
-tagcctttctgtccaaacaacttgaccttactcttttagcctggctctcatgtctgcgtg
-cagcggctgccgccgccctaatacttttagaggccctcaaaatcacaaactatgctcaac
-tcactctctacagttctcataacttccaaaatctattttcttcctcatacctgacacata
-tactttctgctccccagctccttcagctgtactcactcttttttgagtctcccacaatta
-cccttgttcctggctcagacttcaatccggcctcccacgttattctggataccacacctg
-accctcatgactgtatctctctgatccacctgacgtacaccgcatttcccccattatttc
-cctcttccctgttcctcaccctgatcacatttagtttattgatggcagttccactaggcc
-taatcgctacacaccagcaaaggcaggctatgctatAGtacaagccaccagcccacctct
-tagaacctctcatttcctttccatcatggaaatctgtcctcaaggaaataacttctcagt
-gttccatctgctattctactactcctcagggattattcaggccccctcccttccctacac
-atcaagctcagggattttcccctgcccaggactggcaactcttaactccctcttagagtg
-gatagatgctctttgctggcaggggaccctccaatcttttcaccctgatgaagttctatt
-ctttacttttatactcactcttattctcattcccattcttatgccaccctctacctctcc
-ccagctatctccaccacactatcaaccttacccattctctcctagccgtttctaatccct
-ccttagtgaacaaccgctggctttgcatttccctttcttccagcacctacacagttgtcc
-ccaccttacatgcagactaggcaacatctcctatctccttacacctccaaacttccttta
-acagccctcacctttaccctcctgaagaactcatttactttctagacaggtccagcaaca
-cctcctgagacatctcacatcagcaagctgccgccctcctccgcacttaattaaaaaacc
-tttctccttatatcaactctactcccccaatatttggacctctcacaacacaaactacta
-ttcctgtggccgctcctttatgtatctctcggcaaagacccactggaattcccctaggta
-acctttcaccttctcgatgttcctttattcttcatctccaaagcccaactacacacatca
-ctgaaacaataggagccttccagctacatattacagacaagccctctatcaatactggca
-aacttaaaaacattagctgtaattattgcttaggaagacacttaccctgtatttcactcc
-atctttggctgccttccccttgctcatcagactctcctcccaggccctcttcttgtttac
-ttatacccagccctgtaaataacagtgaaagtttgcttgtagacacttgacgttttctca
-tacaccatgaaaatcaaacctccccctctatgcagttaccccatcagtccccattacaac
-ctctgatggctgccaccccagctggatccctaagagtctaggtacaagacactcctttca
-gcattccttctcatctttttactttgcatctccggttttgcctcacacaaggtctcttct
-tcctctgtggatcctctacctacatgtgtctacctgctaattggacaggcacatgcacac
-tagttttccttactcccaaaattcaatttgcaaatgggaccgaagagctccctgttcccc
-tcacgacactgacacgacaaaaaagagttattccactaattcccttgcttgtcggtttag
-gactttctgcctccactattgctctcagtactagaatagcaggcatttcaacctctgtca
-cgaccttccatagcctgtctaatgacttctctgctagcaccacagacatatcacaaactt
-tatcagtcctccaggcccaagttgactctttagctgcagttgtcctccaaaaccaccgag
-gccttgacttactcactgctgaaaaaggaggactctgtatattcttaaatgaagagtgtt
-gtttttatgtaaatcaatctggcctggtatatgacaacataaaaaaactcaagaatagag
-cccaaaaacttgccagccaagcaagtaattacactgaacccccttgggcactctctaatt
-agacgtcctgggtcctcccaattcttagtcctttaatacctatttttctccttcttttat
-tcagaccttgtatcttccatttagtttctcagttcatccaaaaccgtatccaggccctca
-ccaatcattctatacgacaaatgtttcttctaacaaccccacaatatcaccccttaccac
-aaaatcttccttcagctcaatctctcccactctaggttccatgacccaatcctgctcaaa
-gcagccctgagaaacatcacccattatctctccatgccagccccccaccaaaaatatttt
-tttcgctgccccaacacttcaatactattttatgttatttttcttattaatataagaagg
-caggaatgtcagacctctgagccgaagctaaaccatcgcatcccctgtgacctgcatgta
-tatgcccagatggcctgaagtaactgaagaatcaccaaagaagtgaaagtggcctgttaa
-tgccttaactgatgacattccaccacaaaagaagtgaaaatggctggtccttgccttaac
-tgatgacattaccttgtgaaatcctttctcctggctcatcctggctcaaaaagctccccc
-actgagcaccttgtgacccccactcctgcctgccagagaacaactcccctttgactgtaa
-ttttcctttacctacccaaatcttataaaatggccccacccctatctcccttcactgact
-ctcttttcggactcagcccgcctgcacccaggtgaaatagccttgttgctcacacaaagc
-ctgtttggtggtctcttcacatggatgtgagtgaAATTaatattaggtacacacagacat
-aaagatgggaaaaatagacagtgaagattttaaaggggataaggaagggagaggagcaaa
-tgttgaaaaactatctattctgtactatgtttgctacttgggtgacagggtcattagaag
-cccaaacctcagcatcacacaataagcccatgtaacaaatctgtacatttatcccctgaa
-tctaGATTTTAAAATAAggctgggtgtggtggctcacacctgtaatccaaacactttggg
-aggctgaggcaggaggattgcttgagcccaggagttcaagaccagcctgggcaacataga
-ccttgtctctacaaaaaataaacaaaatcagcaaaatgtggaggtgcgcctgtagtccca
-gctgctcaggagactgaggcaggaagattacttgagcccaggagctcaaggttgcagtga
-gctgagatcgtgccactgtactccagcctaggctaccaagtgagattttgtctcaaagaa
-aataagataaaaTTTTTTCTTACATTGTGATATATATGCACAATGGaattttcaaatata
-tagtatattatcactaactgtagccaccatgatgtaaatagagctcttgaattttttttt
-tcttcttttgaaaacagagttttgctcttgttgctctggccagagtccaatggtgcgatc
-ttggctcattgcaacctctgcctccccagttcaagtgattctcctgtctcagcctcccaa
-gtagctgggattacaggcacatgccaccacgcctggctaatttttgcatttttagtcaag
-gcggggtttcaccatgttggccagactggtcccaaactcctgacctcaggtgatctgcct
-gcctcagtgtcccaaagtgctaggattataagcatgagccaccgtgcctgaactctcttg
-agcttatttttcctgtctaagtgatttccccacccctagcctctgataactaccatttta
-ctctttgtttctatgaattcaacttttttacactctacatagaagtgagatcatgtcttt
-ctgtgcctggtttatttcatttagcttactgtcctccaggttcatccatgttgttgcaaa
-tgacagaatttacttcttttttaaagctgaaaagtattccattgtgattatgtaccacca
-ttttctttattaattcatctattaatgggcacttaagttgattccatgccttggttattg
-tgaataatgctgaaattaacatgaaagtgcagatatcttttcaacatgctgattttattt
-ccattagctatatacccagtaatgggattgctggatcatatagtagttttcattttaatt
-ttttaaggaacttccatacagttttccataatagctatactaatttttattcccaccaac
-agtgtgcaagggttcccatttctccacatcctttccaacacttattctctttcatagtat
-attttgaagtcaggtagtgtgatgccttcagctttgttctttttgctcaagattgttttg
-gctattcaaaatcttttgtggttcaatccaaattttaagatttttttctgtttcagtaaa
-aaatgtctttggaattttgatagggattgcattaaatctatagaccactttgggtactac
-agatattttaacaatattaattttttactttcatgaacatgggatatctttccatctgtg
-tcttcttcaatttcttccatcaaagttttatacattttagtgtagaggccttttacctct
-ttgttaaatttattcctaagtatttttgtagctattgtaaaaggatcatttacttgattc
-acttctcaggtgttcttgttagtattcagaaaagctgctgatttttgtatgttgaattta
-tatcctgccactttactgaattcatttattagttctaatagttatttggcaaagtcttca
-ggattttctgtatatacgattatgtcatctgcaaaaagaaacaatttcacttcttccttc
-ccattttaatgctctttttattgcattttcttgcctaattaatctggctagaatttccag
-tactacattgatagaagtggcaaaagtgggcattattttgttctttatcttaaagaaaaa
-gcttttgactgttcaccattgagtatgatgttaaatggggcttgtcatatatgatcttta
-ttgtgttgagatcattctttctgtatctaatttgttgagttttatcacaaaaggacgctg
-aatgttgtcaagtgttttttctgcatctgttgagatgatcatatggtttttacccatcac
-tctgttaatgtagataaatctcacttgatcatggtgaataatccatttaaagtattgttg
-aattcaatttgctagtattttcttgaggtttttgtatctctgttctagggacatcgacct
-ataacttttttttcttgtatgcccttgctctggctttattataagggtactgctACccca
-gcatgatttccaaatggctatgaaccagtgactgctgtgtacaaccaacttttcctcctt
-tcaaatgggagtgttgtggttatAACATTATAAAACAAATCTTGCAAagttagatagaag
-gcatcagttctagtgtttgatagcacagcagagtggctattgttaacaacaatttattgt
-atatttcaaaatagctaaaagagaagttttgaaatgttcccaacacaaagaaaggacaaa
-tgtccaaggtgctggatatcctaaataatctgacttgattattacacattatatgcatgt
-atcaaaatatcacatgtgcccagaaatatgtacaaatactatgtatcaataaaaaaGttt
-ttaaaaaataaatattacatataatatatgaattatataataaaactagaatataatata
-aaaaggaaaaaatatatgtaaaataaatCTTCATaataaaataaaataaaataaTTTGAA
-AGAGTCTATGAATAAGATTTTGGAGACTACTCTAAGACAGATGCAAGAGCAGGTACCAAT
-AATTCTGTCTGTACCAAAAGAGTGAATAATAAAAATATACAATTTCAACTTAATTTTGCA
-TAAAAAAAAGTGAACAAATAAACATGCATCTAACAATACTGACCACATCCACGTCTTCTA
-TGAGTATGGAGGGGATAAAAGAATAAAAGAAAAAAGTCAAAGCGAAGATTAGATCCCCCC
-AGTCAGAGCAGAATTCAAGGGTTAATTTATCTGTTCAATTAAGTATATCCCTCACCCCCA
-ACTCAGAAGACACTTCTCTGATTTATCTGACACTAAGCCAAAATGGATTCTCTTATCTAA
-TTTATCAGTAGAATCATATAGAGTAGAGGACACATGTAGATTAAAGACAGTGAGCCAGAC
-CCATCTTCACTGTCACAGTGACAGAATGGACCCTCCTTTAAAATACCCCTGGTGACATTG
-TAATGAAAGACTAAAAAAGAAAGGGGCTTATAAAGTGCTGCAGTGAAAAAAAGGGCTTCT
-TATGTGAGCCTTACTTTTAAAGTTCCCTAAGAATTAGGTTGAAAAAGGTCATACATTGAC
-TTTCATAGTGCTGAAATCATCAACAAAAATTTCTAAAATTCTGCAAAGTCCAGTCACTGT
-TACCTGTGCACTTCTCCAGAATTTTCAAAAGCCAAACTACTAAAAGGAAGGTTCTTGTAT
-GCTCTTGAAACTTTAATATATCCAGCTAAATATTTTTCTCCTTCCTCCCCCTGAAACAAG
-GTGGTGAGCTGCTCATGGAGTAATAAGGTTCATTGATTTCTTTATCTCACATGAGTAAAT
-ATTAGCTCTACAAAAGTTATTTATGACCAGTGCCTTAAATTAAGCAGCATCAACAAATGT
-CACCACAAAATTTCTCTTCTGTTCATCTGGACAGCATTTTCTACCATCATGACCTACTAC
-AATTTCATCTATCTCATGAGGAGCTTCTTAAGTACGTCCCCCTCATTTATAAGACTTTAA
-ATTTCATACTGAAACAAATGATATGCAATGCTTTTAGAGATCTTAAGATAATCTTTGTCT
-AAAAATTCTGTCAACTAGATGTTCAAATTGCTACTGAAAATGGAGATGGAACACATACAT
-TAAATGATTCAAATGATATATCGGAATTACCAGTAGCTGTCATGTTTGCCCATCAGATCT
-GCCCTCAAAAAAGTGTTATGAAAATATTCAAACATTTTTTCTCCCTCTAACTAATTCCTA
-GCTGTTAGCAGAACCCTCTGTacacacacacacacacacacGGCATTCAGATCTAATTAG
-ACAAAAGAAATTTCATTTGTGAAACAGGAGAAATACCTGAAATTCTGTGAAATATTGTCT
-CGCATAGAAAATGGAGTTGttacaagccaggagagattgggtgcctattttcaaccttct
-taaagacaagaaattccaaccaagaatttcatatcctgtcaaattaagattaataaatga
-aagagaaataaaatcttttccagacactccagtactaagagaaatccttattattaaagg
-cagtcttacaagagacccttcagggagttctaaatatggaaacaaaggaacgatatttgc
-atttacaaaaacatacttaagtacgtggcccacagaccctaataagcaaccacacaatag
-aaactacaaagcaaccagctaacaactccatgataggatcaaaacctcacatattaacat
-taaccttgaatatgaacactctaaatgctccacttaagaggcacagagtagcaagttgga
-aaagaaaagaaaagaaaagaaaagaaaactcatctgtctgcagtcttcaagagaccaata
-tcacatatatgacacccataggctcaaagtaaatggttggagaaagatctaccacataaa
-caaaaaacagaaaaagaggaggggtcattattcttagataaaacaaactttaaaccaaca
-actacttagaaagataaaaaagggcattacgtgacaataaagggttaaattcaataagaa
-gacttaactatcctaaatatatatgcacccaatattggagcatctagattcattaaaaaa
-actacttctagacctatgaaaagacttagccacatgattatattgggggacttcaacacc
-ccactgacagcattagatagatgattgaggcagaaaactaacaaagaaatcctggactta
-aacttgacacttgaccaattcaacttaatagacatctacagaatattccatccatcaacc
-acagaatatatattcttcacatctgcacatggaacagactccaagattgaccacatgcta
-ggccatggaataactatcaacaaattcaaaataccaaaataatgccaaccaaactctcag
-accacactggaaaaaaatagaaatcaataccaagaaccttcaaaaccacacaattacatg
-aaaattaaacaacttgctcctaaaccacttttggataaacaacaaaatgaaggcagaaat
-ttaaaaattcattgaaataaatgaaaacagagacatagcataccaaaatatctgggatgc
-agtgaaaacagtgttagaaagaaagtttatagcactaaacactgaccttgaaaagctaga
-aagatctcaaattaatgatattacgtcacacctacaggaactagaaaaacagaaacaaac
-taaccaccaagctagcagaagaaaaaaaataactaaaatcagtgtagaactgaatgaaat
-tgaggctcaaaaatccatacaaagacacagtgacattacaagtttgtttttttaagggat
-aaacgagatcaatagaccactattttttgttagtagattaacaaaagaagtgagaagatc
-caaataagcacaaatagaaacaacaaaagtgacattacaacagatcccacagaaatatga
-aagagactattatgagcacctctatgcacacaaactagaaaatctagaggaagtggataa
-attcctggaaacatacaatctcccaagattaaaccagaaagaaactgaaaccctgaacag
-accaataacaggttccaaaattgagtcatcaattaaaaacctattaactaaaaaaggccc
-tgaaccagatggattcacagcccaattttactagacataccaattctactaaaactattt
-caaaaaagcaagaagaaagatacctccctaactcattctacaaagtaggcatcaccctgg
-taccaaaacctggcaaagacacaacaaaaaaagaaaactacaggccaatatccctgatga
-aaaaaatgcagaaatccttaagaaatactagcaaactgaatcaaagaatactaaaaaaag
-acagttaattcgccatgagcaaacagacctccctcttgggatgcaaggttggttcaacat
-atgcaaatgaacaagtgtgattcaccatataaacagaattaaaaacaaaaaccatatgat
-catctcaataaatgcagcaaaccttttgataaacccaacatcccttcatttaaaaacccc
-tcaacaaactaggcatcgtaggagcatactcaaaaataataagagcccctatgacaaacc
-cacagccagcatcatgctgaatgggcaaaaactgaaagcatttcccttgagaactgggaa
-tgctttctggaacattccagttttctggaacattcccaggaatgcccactctcaccactc
-agattcagcctattactggaagtgcttgccagagcaatcaggcaagaggaagaaataaaa
-ggcatccaaataggaaaagaagaagtcaagctatctttcttcattgacagcagattatat
-gcctagaaaaccttaaagcctccaccaaaagactcctggaactgataaacgacttcagta
-aagtgtcaggatacaaaagtcaaagtataaaaattaacagcatttctatacaccaataat
-gttcaagctgagagtcaaatcaagaatgcaatcccattttcaataaccacacactcaaaa
-aaaaagcctaggatttttttctaactaagaaggtgaaagatctcttcagattcagggaga
-attataaaacattgctttaaaaaattatagatgtcacaagcaaatggaaaaacattccat
-gcccatgggttggaaaaatcaatatcatttcaacagtcattctgcccaaagcaatctaca
-gattcaatgttattcctatcaaactaccaaagccatttttcacagaattagaaacaacta
-tcctgagttcttatggagccaaaaaaagagcctgaataggcaaaacaattctaagcaaaa
-agaacaaagccagaggcatctaattacccatctcaaactacacgataaggttacagtaac
-tgaaacagcataatactgatacaaaaacagacatatagaccactggaacagaataaagaa
-tccaaaaataaagctgcatgcctacagccatctgatctttgacaaagtcaacaaaaatac
-gcaatgggaaaagggctccttattcaataaatggtgctgggatagctggcaagccacata
-tagaagaataaaactggacccctcctctcaccatataaaaaattaactcaagctggatta
-aagatagaaatgtaagaactcaaattacaagaatcctagaagacaacctagaaacaccat
-tctggacataggtcttgggaaataatttatgactaagtcctcaaatcaattgcaacaaaa
-acaaaaattgacaagtgggacctagttaaactaaagagcttctgcacagcaaaagaaact
-atcaacagagtaaaaagacaacatacaatggtagaaaatatcacaaactatgcctctgac
-aaaggtctaatatcaagcatctataaggaacttaattcaacaagcaaaaagaaaatagcc
-ccattaaaaagtgcgcacaagacatgaacagacacctctaaaaagaacacgtacaagtgg
-gcaacaaatatatgaaaaaatgttcagcatcactgaacaccagagcaatgcaaatcaaaa
-tcacaatgagataacctctttacaccacttagagtagctattactaaaaaatcaaaaaac
-aacagatgctggcaaggccgcagagaaaagggaatgcttatacactgttagtggaaatgt
-aaatttgttcagccactatggaaagatgtttggagacttctcaaagaacttaaaacataa
-ttaccattcaactcagcaatcccattactgggtatatatccaaaagaaaataaattgttc
-taccaaaaagatgtatgcacgtgtatgttgatcgcagcactattcataatagcaaagaca
-tggaatcaacctaggttcccatcaacagtggattggataaagaaaacgtggtacatatac
-acaatggaataccatgctgccataaaaaaataaaattacctcttttgcagcaacatggat
-gcagctggaggccattatcctaagcgaattaacacaggaataggaaacctaataccatat
-gttctcactaataagtgggagctaaacattgggtacacattgacataacgatgggaacaa
-tagacactggggactaatagaagagggaaggaggagaggagaaagggttgaaaaactaac
-tgttgggtactatattcaggacctgagtgatgggatcagttgtaccccaaacctcaacaa
-cacacagtacaccaatgtaacaaatctgcacatgtacccctgaggctaaaataaaagttg
-aaaTTATTTTCTTAAAAATGGAAAGGCTAAATTCCACCTCTACCAATATGTTTACTTAAT
-TTTTATATCCCCCATCTTACTGGTATAAAACCAGGAACATGGCAACCATTCATTTATGTT
-TGAAGTGTTCAAAAAATGAGTGACTACATCAATAAATGTACTCAGAGGAAAGCACAGGAC
-TTTATTATGTGGGGAATCAAGTTCACAGAAGGAAGCAGATGAATCTTTTGCTGCAGGCTG
-CTGGATTAGGCAGCACTTTTTATTTAGGAAGAGTGGAGACCAGCGAGACAAGGGCTAGAT
-TTAGGATTAGACTGTGAAAATGGTGATGGTGGGTAAGATGATGTAATCCTGCAGCACACT
-CAGCTTCTCACCAGAATGTTGATGTGGCTTCTTAAATGACACATGTTTTTTCTCTTCTTC
-ATCATTAGCACAACATAATTTCCCACTTAGACATCCTATTTCATATCTTTCTCCTACCTT
-GCATTTCTTCCTGCAATAGCCTGTTACTTTATTGAAGCATTTTTTGAGTCTTGCCCCGTC
-TGTGCATAGGAAACAACATTGAACCAAGGTTAGTGCGTAAGGAAGAGCAGAAGAGGTAGG
-TATGTGGTTCCCCACAAGTCATGGCCTCCTATGGTCCCAAGTGAACATTATGCTGATAAA
-AGGAAACTCAGAGGCCCCTCCTTGAAAAATATCCCAAATTAAGGACATTCAAAAGCCCAG
-GCTCTCAGCCAATGTCCAGTTGCCTCTGAGAACATTAGAACTGATATGACAAAAGAGAAG
-AGAGAACTCAATTCCTGGTTATCAACCAGAGCCAAGTCCCACCCCTAGGACCATGGCAAA
-GCTGACTCTCTCCACCAAGCTCCAAAGTCAGCACTCTCTCAGCTCCATCTCAGTCTCATG
-TCCCCAGAGACGGCTAACATGTCACCATGTGCACAAGACATGTCACCATTGGCACAACTC
-AGCCAAAGCAACTTTTGAAAGAACATCACAAACAAGACTTTTTAACTTAATTCGGTTTCA
-CACTCACTGATATGGGCAACAGAAATCTCCCTTTGACAAGATCTCATGGGTCTCAGCAAC
-AGGTGCTATTGAGAACTCCTTCCCTTAACCTGGCTCCTCCTGTCTGTCACTCATCACACT
-CCCCTTGATCTCAGATAAATGTGTTGCCCAGGGATCAAATTCAATTCCATGAATTTGGCT
-CTAGAGAGCTACATTGTCACCTTCTCAGAGTAATGCACTGAAATTCTAAGTCTCTTGTTT
-CTAATCCTTATTTGCCCCTCTACCCAAAATTTGAACAAGCCCAAAGAATAAGGTTGGAGA
-AGAGAGACATACTCTCCCTATCCTAAACTTCAGAATCAGGGAACATCTTTGAGGGTTAGA
-GGAGTATATTTTGGGGCCATAAAAATACAATATGCCTTCTTCCTAGCAAGAGAGAAGGTA
-ACTCTCACTGACAGGGCTTCTACGATGAACTTTgtgcttcgtgcttgtaagttcatgtaa
-cctgtacatcaaatagaatcatgaaatatagtaattatactccttcacagatgagaaaat
-tgagattaaaaggaaataatgtgcttaattcatacaacccgtcaatgatgaagacatatt
-ttaacctcacattgacatgactccaaaatgtgtgctattttaattactgtTGTAGTACAG
-GCTGAAAATGAATTTGAATGGAAAAGGGAATGGCCAGGCTCTCAGGTGAAAACTGTGTCC
-AGCATTATAAAGATAATTCTAGATGATGAGTTCATGGATACTTTTGAAAAGGACTCCTGA
-GAGTCCACTATAGCCCTGACCTCCTCTTACCTCCTTGGGTGCCTCTCTTCTAAGGCATAG
-ACTCAAGTCAGGCAACCAGGAGAATGGGTACTTTTTTATGATTTTGGCCAAATATAAATA
-ATCTTGAAAGTCCTGTTCCCACTCTTACAAATAGTAATATCTCTTAGGATGTTATAGTAC
-ATTTGGACAAGTTACCTGTGAGTACCTCAAACAGCAGAATAATGAGAACCAGAAACAGCT
-TCATATTTACAGACTTCCCAAGAGAAAGAGGCAGCAGAACTTTGTCCAGTGGTCTGTGTG
-CCACAGGTCTTTAAAGATGATCCAGAGTTTTGAGAGCTATCAGCGCTCGGAGCTCTCATT
-TTAACCCACACAGACAGAGAGGAATTCCAAGTCCACCCCCGTAACACACACACCTACATC
-CCCAAATATGGAGCTCACAGTCCCAGAATGTTCCACCATATCATCCCTCCTCCCCCTTCC
-TCAGGATATGCGCCCCTAGAGAGCAGGAACTATGACTTTCCGTCTGAGCTTCCAACCCAT
-TTGGGTCAAGGTTGGTTGGTCGTGGGCCTTGGGTTGTGTGGGATAATCCTGTCTTATTCC
-TATTGTTCCAATGTTCCATCCGGCTACTGCTGCCTCTAACAAAACTAACCCAGTTTGGAA
-GATAAATTAAGTCATTAGTCGACACAGAAGCATATTCAACAATAATTTTTTTAATGTATA
-AAGCTTCCAGATAGTCATTCTAGGAGTAAGATTGCTTTTAGGTTTGGCTAGATAAATTGA
-TATTATTTGAGAGTTTCCCATAAAGACTTGTCCATCTAGTAGAGCAAAATTCAACAACTG
-AAAGTTTTCAAAAGATCAAATCTCCTTAGCACAGCACTCAACTTATTATAAACTGGTCTC
-TGCTCTCCTCTCTTGGGACATTTTATGGAACCATCTATGTTTCTCCCAAACTAGTGGGTA
-CACCTTCCTGAACTTTTACTTCCTTAATCTGTTTCTTTTCACATTTAAATCCCTCCTTAC
-AGATTATATTACACTCCCCATCCCCTCCATATAATTGGTGCTAGTGAACTCCTGGTTTTC
-CTTCAAAACCAAGTTCAATCATCTCTATATAAGTGAAAGTTTCCCTGACCCAACTAAACA
-GAGCTGCAAACTCTCTTCTTCGCACCATCACTGTATTTGTACATATTTTTGTTGATGGTC
-ACACTATGTCATGTTCCAATTATTTGTTTATCTGCAATAGTCTGCAGACCCATAAAGGGC
-AGGTCTCTGGTCTTATTAGACTTGGAGttctttttctttttttttttttttttgcagttg
-caagatttaatagagtgaaaatggagctcccatacaaagggaggggacccaaagaggtta
-gccgttgccggctcgaatgcctgggtttatatcccaatcattgtccctcctgctgtgctc
-tcaggcaatagatgattggctatttctttacctcctgtttttgcctaattaccattttag
-tgagctctctttcctacctgattggtcacatgtgagctaagttgcaagccccgtgtttaa
-aggtggatgcggtcaccttcccagctaggcttagggattcttagtcggcctaggaaatcc
-agctagccctgtctctcagtaccccctctcaacaggaaaacccaagtgctgttggggagg
-ttggccgacgaccgctctaactgcttcctcctgaattggggcatagtaggggttgtgcag
-ttgagatttcctcaggaggggtgccttcgatgtcattaacattggagcatgggctagcag
-gccggtccaatggtccacggtagctcttagtcatggacggcatctgtggctccatttgaa
-gaatgatttgtagttttacagctttgattctggaaaagacaaacttaacaaggaggttaa
-agatacagggattgaaatgtatggcctgcagtgcaggggattatttctttggcacacttt
-acaggccctgactatctatttgatagttttgaaaaggcctggtccagtaaataataattt
-agccatctgatagttgctatcaatgcctaagtgaaaggtttggtaaagggttttaagtaa
-tttcaattggttagctgcaggcaaaagtattttttcttctttggtggctagccatcctga
-ggggaggaaagtatgtcctcttgaggttctccattctatttcttctgctgagtactgggg
-cttggtttcctggagggggttaccccacactaggggtccttctataagcatttctaatgg
-agggtcctgtcttgtggctcttttggcttcaacatctgcttggcagttcccttctacttc
-cctttccttttttttttttttttttatgaccccggcagtgtaagactgccacctctttag
-gtttctgtacagccaataataatatcctaatggcttcttgatgtttgataggtgttccct
-tggaagttaggaattccctttctctccatattgctgcatgggcatggagaactaggtaag
-catacttagagcctgtatatatatttaccctttttccttctcctaattctagtgccctag
-tgagggctattagttctgccagctgaacactagttcctggagtgaggggattactttcaa
-gtattccattatcactgaccactgcataccccacttttcgaagtcctttttctacaaagg
-aacttccatcagtacataaggtgaggtcaggatcagtcaagggaacctctaaaggatccc
-cttgagcagcgtaggtttgaacaattacttgctgacagttatgttctatcttttctttat
-tgtctggaagaaatgtggctgggttaagagttgcacaagtgcacagtcgcagcactggcc
-cttcaagtaatagagcctgatatttaagtaaatggttgtctgacagccacaagtctcctt
-tagcagtgagtatgccattcacatcatgagatgtccacacagtaagatctcttccctgta
-ttagtttaactgcttcagatactaagactactactgctgccactacccgtaaacaatgag
-gccaaccctttgccattacatcgatttccttacttaggtatgccacgggttacaagctca
-tccctcagacctgtgtaaggactcctagagctattcctgtttttttctgtgacttataaa
-gaaaagtcttgcccctttgacaagcttaacactggggcttgggttagggccttctttagg
-gcctggaaagctgcttctgcttcaggtatccatcttactaatgggtatttgctttctgag
-tttccttaattgtgtatataatggtctggctatttcgccatacctgggaatccatattct
-gcagaaacctgttacgccaaggaagcttttagttgctttagggttttgggatgaggatca
-gccagtataggctggatatgttcctcactgagggccctggtgcctttggataatttgagc
-cctaagtatttaacctgctgtgagcagagctgagcctttggtttggaaaccttatagcca
-caggtggcgaggaaatttaagagtgcttgggtggcttgattgcacaaggtttctgaacgg
-gcagctaaaattaaatcatccatgtaccaaaggacaagagtgtccaggtatgagaactgg
-ctcaagtcttaggctaatgcctggccaaatagatgggggttatccctgaacccttggggt
-aaaacagtccgggtgagttgagatgttgggttcgaaggatcttcaaaggtaaacaagaat
-tgaaggtcaggatgtacagggatgcagaaaaaggcatccttaatgtccaggactataaac
-cactctgcttcctctggtgtttgggaaagcagagtatacgggttaggtataggtgggtat
-ggagcgacaatggcctcattgataatcctgagatcttgcactaacctccactgtccgctg
-agtttctgtactcctaaaattggagtattgcaggggctattgcatggttttactaggcct
-tgggcttttaggtccttaaaaatattttagagtccttgttgggccttgggtgtaaggggg
-tactgcctttggtagggaaaggaggtgaaatcctttagtttaactcaaacagaatgggca
-ttctttgctcgtccatgttgtccttctgttgcccagacttcaggattaattccttcctca
-agcagggggacaataaacgggtgttctttctcctatgttcaggtgtataatggcccctgc
-tttcgctagaatgtctctccctaacaagggagtggggctttcaggcataattagaaaagc
-atgtgaaaagtataaagttccccagtcacaacttagtggctgggagaagtatctagtgac
-tggctgtcctaggaccccttggatagtgacagatctggaggacagttgtccgggacagga
-cagtaagactgagaaggctgcgccagtgtccaggagacagttagcctcctggctctcaat
-ggtcaagcatacccgggactctgtgagggtgatggcatgggctggagcttgccctgggca
-ccctcagtccttctgctggatcatctggttagtggcttctgactcagaggaccttcgtcc
-cctggggcagtgggccttccagtgattcccttgacataaggggcatggatgagagggtgg
-cttatttctacttggacaatcttttttaaagtgtccttgtagaccgcactggaagcaagc
-cctattaggcattcgatttgcccagtttttcccttttccaaagcctccTCGACTAGGAGT
-TCTTAACTCATAGCACAAAATTCATGCTATATGCTCAATACATAATCACTGAATGGCTGA
-AAAGTACTGAACAAATTACTGCTAGATAAAATACTCCAACACAGCAATAAAGTTAATTAT
-GGCATTTCCTTTAAAAATGCTGTTTACCACTTTTTGCAATTTCTAGGCACCTAATTATAG
-TAATGAGGTCCCATCTAATCCAAATATCTTTCTGTGACAGTATCTGGAAGAATGTTGGAA
-TTTCTGAAAGCTGTAGAAGTAGCCGTTGATGATTAAACTCTTATCACAACATAGTCAGGG
-AAAGAGTAAGGTTAGGAATTAGTATTGTATATAGCTTACTATGGATACCAGTAACCAGAG
-CCCTTATCCCCCTCAGTTAGTAGCTGTATACCTTGTAATCCTGGAGTGGCACAGAAAATA
-AAGATTGGTGAGGCTTACAGAATCTCATCAAATCATATTTATCATATGAAGACAGCTAAG
-TTAATGGGTGCAGGAAATTTAGCCGCACGAAGATCAGATGTGTGAATATTTATTAAGGGC
-TAGGTGCagtggctgggattacaggcgtgcaccatcatgcccagctaatttttgtatttt
-tagtagagatggggtttcaccacgttggccagtctggtcttgaactcctgacctcaggag
-atccacccacctcaacctcccaaagtgctgggattacaggcatgagccaccacgcctggc
-tTGTTtttttgtttttgtttttgttttAATTTTCTAAGTCTTTCTTGCTGAGGGTCTGTG
-GATCAAGGAAATACTTATTCAAAAAACAGGTATTAAGTTCCTGTTAATAAATACAAGAAG
-AAAAGTGCTAACTGAATCACCTGTGGGTTTAAAGACCACCATCAAAGCTACAATTTTGGA
-GGACAGCCAACTGCTCCCTTGTTCTGTAATTCAATTTTACTCATTGCTGTAAGGGAGTTG
-GTTCCATTTCTAAATAAATTAAACAGAGATAACCCAAGGATTAGATGAATATAAGTCCAG
-CTATGCAGGAAATCGTTTGCCACCTTAGTGCACAATAAGAACTAAGAAGTTGGACTCCAG
-ATTAGTGTATGGGATTTCTTTTAGCTTTTTCTAACTAGAATCAAGAAAGATGAGATATTT
-GACTGTTCTAAACCTTTACTTCAGCCAAGTATGGTGCTCTGGAAGCTTCTCAACCCCACT
-CCCACTGCCTCCATGTTCAAGACCATCAAATAAGAGGGAATTTCCTCTCCAAGTAGATGT
-CCATCTTCTACAACATTTTTTCCTACGTCTGATAGATACACTCTAGCAGAACTCCAGTAG
-CATATTTCACCCAGGATACAAAGGTGTATTTGTCAGCACCAGTCCTGCTGATGTTTTTCC
-TCAAATTCTGCATTGTTTCTTTCCAAATCTCAAAACCTCCCAGAaaatccttcttgtctt
-ttaaggctcagataaaaataagacctcctctgtgatgtcttcctaactcctctgatagac
-ttgattaattactattttgaacccccacagctctttccATTTGTATTTGTAACACTAATC
-CCATTCgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtctgtgtatgAAttttt
-ttagcttttattttaggttcaggagaacatgtgcaggttagtcacataggtaaattgtat
-gtcacagggatttggtgtacaggttatttcatcacccaggtaataagcatagtacctgat
-aggtagtttgttgattcccaccctcctcctacctcaagtaggccccggtgtttgtttcct
-tttttgtgtccaggtggactcaatgtttagctcccattataagtgagaacacgtggtatt
-tggttttctgttcctgtgttaactcacttgggatacaggcctccagctccatccatgtcc
-ctgcaaaaaacatgatttcattttttatggctgtgtagtattcgatggtgtatatgtacc
-atattttatttatccagtgtaccattgatgggcatttaggttgattccgtgtctttgcca
-ttgtgaatagtgctgcaatgaacatacacgtgcatgtgtctttatggtggaatgatttat
-attcctttggctatatacccaataatggaattgctgggtcgtatggtaattctgttttaa
-gttctttgagaaattgccaaactgttttccacaatggctgaactaatttacactcccacc
-agcagtctaaaagcattcccttttctccacaacctcgccagcatctgttattttttcact
-ttttaataatagctattctgactggtgtgagatagtatctcattgtggttttgatttgca
-tttctctaatgataagtgatgttgatctttttttttctttcaaatgcttcttagccgagt
-atatatcttgttttgaaaagcgttccccattgcttgtttttgtcaggtttgtcaaagatc
-acatagttgtaggtgtacagtcttatttctgggatctctattctgttccactgatctatg
-tgtctgttcttgtaccagtgtcatgctgttttggttactgtggccctgtagtacagtttg
-aagttgggtagtgtggtgtctccaactttgttctttttgcttagaattgccttggttatt
-caggctcctttttggttccatataaattttaacatagatttttctacttctgcaaagaat
-gtcagtggtagttaaatgggaatagcattgagtctataaattgctttgggcagtatggcc
-attttagtgatattgattcttcctaccaatgagcatggaatgttttttcatttgtttgtg
-tcatctctggtttctttgagcagcactttttagttccccttgtaggtagaaatctttcac
-ttcccttgtaagctgtattcctatgtattttattctttttgtggcaattgtgactgggag
-ttccttcatgatttggctcttgtgttgaaggttataggtgtataagaatgctagtgattt
-ttgcacattgattttgtatcctgcgactttgctgaagttgtttatcagattaagaagttg
-cctagccatgtgcagaaaattgaaactggaccccttcattacaccatataatacaaaaat
-taactcgagatggattaaagacttaaatgtaaaacccaaaagtataaaaaacctggaaga
-caacctagataataccattcaggacacaggcacgggcgaagattttagggtaaagatgcc
-aaaagcaattgcaacaaaagcaaaaatggacaaatgggatctaattaaactaaagagctt
-ttgcacagcaaaagaaactatcaacagagtaaacagacaacctacaggatgggagaaaat
-ttttgcaaattatgcatccaacaaaggtctaactaatatccagcatctataaggaactta
-aacaaatttacaataaaaacaaacaaccccattaaaaagtaggcaaagaaaacatgaacg
-gacacttctcaaaaaaagacatacatgcagccaacagtcatatgaaaaaaagctcaacat
-cactgaccattagagaaatgtgaattaaaaccacaatgagataccatctcccaccagtca
-gaatggctattaccaaaaagtcaaaaataacagatgctggccaggtacagtggctaacac
-ctgtaatcccaccactttgggaggcctaggcaggcagatgacctgaggtcaggagtttga
-taccagcctggccaacatggcgagaccccgtctctactaaaaatacaaaaattaatcagt
-catggtggtgggcacctgtaatcccagctacttaggaggctgaggcaggagaatcactgg
-aacccaggaggcggaggttgcagtgagccaaggctgcaccattgcactccagcctgggca
-acaagagcgaaactcccatctcaaaaaaataaataaataaaaataacagatgctggcaag
-gttgtgaagaaaaaaggaatgcttatacactattggtgtaaattagttcaatcattgtgg
-aagacagtgtggaaactcctaaagacctaaagacagaactaccatttgacccagcaatcc
-cattactgggtctatacccaaaagaatataaatcattccattataaagacacatacatgc
-ccatgttcattgcagcattatttacaataacaaagacttggaatcaattcaagtgcctgt
-caataatagactggataaagaaaatgtggtaaatatatgtcatggaatactatgcagcca
-caaaaaagaatgagatcacgtcctttgcagggacatgaatggagctggaagctattatcc
-ttagcaaactagcacaggaatagaaaaccaaataccacatgttctcatttacaagtggga
-gctaacttatgggaacacacagaaacacagaggggaaaaaccacacactggggcctcttg
-gagggtggagggtggggggagggagagaagcagaaaaaataactaatagacactaggctt
-aatatctgggtgatgaggggcgggcacagtggctcatgcctgtaatcccagaactttgga
-aggctgaagcaggcagatcgcttgaggtcaggagttcgagaccagcctggccaatatggt
-gaaacctcatctctactaaaaatacaaaaattagccaagtgtggtggcatgtgcctgtaa
-tcccagcttctcgggaggctgaggcacaagaatcacttaaaccagggaggtggaatttgc
-catgagccaagatggcgccactgcactccagcctgggtgacagaacaagactctgtctca
-aaaaataataataataataaatctgagtgatgaaataacctgtacaaccaacccccatgt
-cacacatttacctatgtaacaaacctgtaccccctgcacacataacctttgatcttaaaa
-taaaagtgaaaaaaaAAAGTGTCTGTTCATGATCTTTGCCtttttttttttttttttttt
-tttgacagagttttgctcttgttgcccagcctggaatgcaatggcatgatcttggctaac
-tgcaacctccacctcctggattcaagcaattctcctgcctcagcctcccaaatacctggg
-attacaggtgcccaccaccTCAAAGtaaatttctttgagtttcctcaacacagctattgt
-gaattatctgtcagaaaagtcacatatctctgtctctctggaatggcccctcctgcctta
-tttagtccatttggtgaggtcatattttcctggatggtgttgatgctagtagatgttctt
-cagtgtctgggcattgaagagtagggtatttattgcagccttcactgtctgagcttgttt
-gtacctgtccttcttgggaagtctttccgaatattcaaaaggtcttgagtgttgtgatct
-aagctatatctgctttagggggtaccccaaacccagtaatactgtggttcttgcagactc
-ttagagataccaccttgatggtcttagacaagatctgagaaaattctctggattaccagg
-cagaggttcttgttctcttcccttgctttctcccaaacaaacggagtcagtctctctctc
-tctctctcttttctgagctacctaaagctgaggatggagtgacataagcatccctgtggc
-caccaacactatgactgcactgggtcagacctgaagccagcacagccctaggtctcaccc
-aaggcctgctgcaaccactccctggctacttctcaaggccctgaggctctacaatcagca
-agtggcgaagccagccaggactgtgtccttcctttcagatcataaaggtaccccaggccc
-aggatggatacagaggttcccatggggactccgagactagagtaacaaaccttagaaatc
-tacctggtgttctattgtactgcagctgagcttgtactcaaaccacaagactcagtcctc
-cccactcttccctctcctttccaaaagcagaggagccttacttcgtggccaccaaaacca
-caggccacaaggaatactgccaggctactgctgatgttccctttaagccccaagggttct
-tacgtcagcttgtggtgaatgctgcctggcctgggactaatccttcaagaaggtaggctc
-ccctctggcccatgacaggtccagaaatattcaagagtcaagtcctagaatcgaggaccc
-caagagcccacctgatgctctacctccttgtggccaagctggtacctaaggtgtaagaca
-aagttcccttcattttttctctgcttttctcaagcagaaggagttctgccctatagccac
-cacagatggggatgtgttgagtgtcacctgaagccagaaagtctcatgggttcacccaag
-gccatcagtgtggaacctggttatcactgctggttattcagggcacaagggctctttagt
-tagcaggtgattaatgctgccaggactgggtccttcccttcaaggcagtgggttcccttc
-tggcccagggtgtgtctagagatgtttttcaggagctacgtcctggaagagggtctgtca
-actatctggtgcctgatcctgctgtggctgagctggtatccaagatgcaagacaatgttc
-ttcctactcttctctctcttctcctcaagtggaaggaaatggtctcttttggagctatga
-gttgcgcagcctggggttaggggaggatgatgttagaactcccttagctgccctagctac
-tgttttagtaggtcatgtgccccccagtccactgtctctaggcccagttcagcactagga
-cttgcctaagagttgcagtccttggggtttagactgcctttcaagtttgcttagagaccc
-aaagcccacagtggaaagctttgcatgtattcaagttccgaccactgagatcagcaattc
-ccctctggttagggctggtttaaatgcttcctctgtgggtgggcctcagctgcatttggt
-ccagttttcctttctgctctaactgggcagcactgagttcactgcctcacaattgccgag
-ttttccatccctcctccagcacccagagattatctttgcatgctgctaccgacagggcag
-tgggagtggggagtgcagggtggcagctgtgattgaggactgtgttttctatttcttcag
-tgcctcattcagtggtaggaactaaaatcaagtgctatgattcttattcttatgaaggtg
-ttttttgtgtagatagttgttaaattggtgcctttgcataggggagggaggacgatcagc
-ggagccttccattcaggcatcttgctctgcctcctttttccataaataatttttgggagt
-ctagtatgttccaggaactctttcaggtcctgaaaattagacatgcattcatggagcata
-cattcaaaagtgggaagcagataaaaaatcatatgaataaatatatagtatgtcagatgg
-tgacagggctctggagcaaaagaagatatagaaagaagatgacaaggccaggcacggtgg
-ctcacacctgtaatcccagcactttgggaggctgaggcgggcggatcacctgaggtcagt
-agtccaaggccagcctggccaacatggcgaaacaaaatacaaaaattatccaggaatgat
-ggcgggtccctgtaatcctggctacacaggaggctgaggtggaagaatcacttgaaccca
-gaggtggaagttgcagtgagccaagatcatgccattgcactccagcctaggcaaaagagg
-gagactccatctcaaaaaaaaaaaaaaaaaaaagtgctgagcaaaaaagagtacagtttt
-aaatgaggtatctgtgaaaagactccttgaggcagtgacatttcaggaaggatgtaaaag
-ttatctggggcaagagagtgtcaggcaatgagaagagcaagtgcaaaggccctgaggtgg
-gaccatgcccagtgtgttcaagaagtagcaagaagaccacatggataatgtgaagcaatg
-aggaaagagaaaaaggggattatatcagaaaagtaatgggggtgcacatttggggttaca
-ataaagaattagacttttcctctaagatggaggttattggacagtgctgacatgatctga
-tgtattttcaaaagatgcctctggcttctgtggtcaaaacagattgagagggagggaaag
-tataaaagtggaaaacctgttgcatgggcattacaaaatctaagtgacagctaatagggc
-ttagatagagagcatcagagaagagggtgggaaatggtcagactcttacatacctattga
-aaatacagtcactcgtagattgaagagaaaggaagaagtcaagataacatcacagtttta
-gtctgagtaactgaaagaatgaagttgtcactgacagagatggatataacaggagaaagt
-tcagattggtctttttgcttgagggaggataaaaacctttgtttgggatacgtttgcttt
-ggagtgctatagacatctaagtggaattgtcttgtaaacaggagagatttttaagccatg
-agactgaatgggattgtcaaggctatgactgcagaaaagagcctaatgcctgagacctag
-aactccccaatgttgatgaataagaagcagcaaaggacactgagaaggttcattccagtg
-aggtcggaggaaaaccaagagaacatgatgctctgggagcttaattaaattaagttcatc
-aaggaggataaagcaccaaatgctgctgatacatcaagatgaggcatgagaattgatcag
-tggCCTACCAGAATCCCAGCTCCAtgacctcttaccagatgccaagtagatgacaaatgc
-atttcaaatgcattgcttactttaatcatcacaagaacactatgaagcagaaattaatat
-acctcaatttttaaaactggaaaactacaatttagggagctaataatgtgcccaatgtca
-cacagccaataaggaattaactgggatcaacacaggtctgcatgaacctaaaattaaagg
-ccttagccactatgctaagctgcctctcCAGCTGCCTTCCATGGGTCAATTCTAGGGAGA
-CTGAAGACAAAGTATTCAAATAAAAGATGTTGCTTTATTCAAAAAATGTATTGGCCATGT
-GCTTGGCTGGACATTCTTCCATGACCTACTCCTTTATACTCTATTCATCACTTACAGGGC
-AGCCTGTTTTAAGAGAATTCATATTTCTTATTTCTGAAGATGACATTATTACATCCTGGA
-AGAAATATTGATTGCCCATTTCAGTATATTCCTAAGTCTTTTTGTTCCTCTGTGTCAATT
-Ctttttcttttattattatactttaagttctagggtacatgtgcacaaagtgcaggtttg
-ttacataggtatgcatgtgccatgttggtgtgctgcacccgttaactcatcgtttacatt
-aagtatttctcctaatgttatccctcccccctcccaccaccccacaacaggtcccggtgt
-gtgatgttccccacctgtgtccaagtgttttcattgtttaattcccacctatgagtgaga
-acatgcagtgtttggttttctgtccttgcgataatttgctcagaatgatggtttccagcg
-tcatccatgtccctacaaaggacatgaactcatccttttttatggttgcatagtattcca
-tagtgtatatgtgctacattttcttaatccagtctatcattgatggacatttgggttggt
-tcgaggaagtcaaattgtccctgtttgcagatgacatgattgtatatttagaaaacccca
-tcatctcagcccaaaacctccttaagctaaccaacttcagcaaagtctcaggaaacaaaa
-tcaatgtgcaaaaatcacaagcattcctatataccagtaacaaacagagagccaaatcat
-gagtgaactctcattcacaattgcttcaaagagaataaaatacctaggaattcaacttac
-aagggatatgaaggacctcttcaaggagaactacaaaccactgctcaacgaaataaaaga
-ggacacaaacaaatggaagaacgttccatgctcatggataggaagaatcaatatcgtgaa
-aatggccatactgcccaaggtaatttatagattcaatgccatccccatcaagctagcaat
-gactttcttcacagaattggaaaaaactactttaaagttcatatggaaccaaaaaagagc
-ccgcatcgccaagtcaatcctaagccaaaagaaaaaagctggaggcgtcaATTCTTTAAT
-GTCAAGCAGCCTTTATGCAATCTTGGATTGGGCACAAGAAGCACACAATCTCCTCATTTT
-CAAAGCCCTTCATGGCTAAGCAATAGAGTTCCTCTTGAGTAGGCTGGAACAGATAATGAA
-ATGTTGCTTTTTAGATGTGGTCAGTTAAAAATAAAATCACCTATCAACATTTGTTACTGT
-ACCTCCAGCTGTGATCAATAGTACAAATTGCTTTTAATATCTTACTTATAAATAGACTTT
-AAGTATGTTTCATTTCTGAGAAATGTTCTCTGAATTCTACTTAAGATGTTATCTTTCCAA
-ACTGCTGGACGGGCTGAATCCAGGCAAGAAATGGGATTGCAAATTCCCTTGCACGAAGAC
-TTGATGGGTGAGTCAAAGCAAGATTCCCTTGCCATTCTTTGTTTAGAGGTGAGAGGAAGG
-TTAACTAGCATTTTATGCTATAAAAATCAGACACAAAGATAAGCAAAAAGAATACAACAG
-AAGCCACTCATTATTTCAGCTCTCTGTTAACACTTTGATGTTCACTTCTAAATATGCTTC
-CTCAAAGTAATTTCTTTTCACAACTGGGTAGGAGATAAGATAAAGCAAAGTGAGCTTGCT
-TGCTTTTCATCCACTCAGTTAAAAACAGTCTTCCAGTTGACACTCCCTGATACATGCACA
-CTCAGGCACACACAAAAGTCTGCACTCATCCATTAACCTCAAGAAAGAGACCTGTTGACA
-AAATAGACATACACCAGTTCAGAGGAACCTATGTCACCTGTCCCTAGTAATCTACTTTTA
-AGCCTAAATATATCAACAGTCAATTTCAGGAAAATTAACATTAAAAAAATTTAGATGAAC
-AATAGGAATGAATGAACTTAAAGGAAAAGAAGCTAATATCAAGGACAGAAGATAATTATT
-TAAAATGATGAGTGACAAACTTGACTAAAATGCACAACCTCTTCATAACAAAAAGCATGC
-AGGAGAAGGTACAAGTCAGCACAAGgttaaaagacaatcagagtagaacaaaaattctat
-gtgcatgataccacaaaaagattgctatccataatctatatgaagaataactacaaatca
-ataagaaaatgacaaatgacccagaggaaaataggcaaaCAATAGTATAGCAGCAAAACA
-TTGTAAGCACTCGTTTCAGAAGGTTGATATAGATTCAGAAATATGATATTCCCTTTAAGA
-GAATCTGCTTTTAATCCATAAATTGTCTTACAAACTAGTTTTATTAGTTTAATATTAAAG
-GAcccattagtgggtatatatccagaggaatataaatcattgtattataaagacacacac
-ctgaaaatgttcattgcagtactattcacaatagcaaagacaaggaatcaacctaaataa
-ccatcaatgacaggttggataaagaaaatgtggtatgtatacaccatggaatactgtgta
-gccataaaaaagaacaagatcgcatcttttgtgggaatatggatggaactgcagaccatt
-atccttagcaaactaacgcaggaacagaaagccaaataccacatgctgtcacttataaat
-gagagctaaatgatgagaactcgtgaacacaaagacgggaacaagagacactggggtatc
-cttgagggtggagggcgggaggagggagaggagcagaaaagacaacaaacctctgtgaca
-caagttttcctatgtaaccaaccttcttatgtcctcccaaacctaaaacaaaagttaaaa
-aaaaaAAAAAGACCCAATTGGAGTTGCAATTTGCTCTTTCCCATTCTACTGCATTTCTGA
-AACCCAAAGTGTACAAAGAATGTGTCTTATGTTTTATGAAATGTACATTTGGGCCCCCAT
-TTTTTTATTTGTATAACAATTGTAAAACACTATCTAAAGGCATAAAATGGCTAGGATGAG
-AATTACTATTGGTTCATAATTATATTTGCTTAATTACTGAAGATGTAACTGTACTCGCTT
-TAAGTATGCCATTTGACTATTGCCCTTCTTTTTGTCCAGAGCCATCAAAAGATTAAAGTA
-TTTGAAATGAATAATGTAATGGTTTTGTCTTCCTGCTACAGTGTGTTTCAGGTTATTTTC
-TAAAATCATAATGAACCCTGTTTTTTTGTTGTTTTTATTATTTTTTGATAAGTAAATAAT
-GCCACGATTGGTAGATCTAAAACTGAAGAAGGAGACCCTATGGCCTCAATCCAGAATGCC
-ATAGCATGCTAAAATGAGAACTTCCTCCAGGTGTGTATGTGTGTGTTCAGGGCCACCTAT
-GTATGCCCGATACGTCCAGTCTTCGTTGATGAAAATTGTTAGAGGTCAGTATTACAGAAG
-ATAAAACAGAAAGGCCATATGTTAATAATGAGAAATAAGTGGTTAATTCATAATTAGTGA
-ATCTGGTTTCAGCACTTTGGCCTTCGAGGTGGTCAAAACAGGTCTCCAATATGAACTAAG
-GATTGAAAAGattaaaattatttttttaacaaaaattaaGCTCAAAGAGTCTTGGATGCT
-TCAGATTGACTCTGCTTCTGGCATAACTTGAATAGAAAATCATATAAGGGTCTATGATGG
-GCACCATGCCCAGAGCTAGTTGGTTTAAATGTCATTCTATTTTGGACCCTAAAGATAAAC
-ATGGCCTACTGTGATTCCGTCCTGCGTGGCTGTTCTCTGGAGCAGTAGTCATTAATCTTT
-GCCTGCCTTCTCTCCCACCTAGGTGTGTGCCACCACCCCATGGTGACATGAGCTTCatta
-attaaaaaaaaaaaaaaCtttttctctcttttcttaatagaaatgaccttggaaaatttc
-tattggtctgtcttcaagttcatttctctttccatatcatatctacatggctgttaagtc
-caaagtttattatttaaataaataaataaaattgataaaactctagccagttgatcaaga
-aaaaagagacaattaccaaattttcaatatcaggtataaaaagaggacatcattacatta
-aaagttttgtgagagatgattctatatgccaaaatttttgacaacctatatgaaatggat
-aagtttcttaaaagatacaaattaccaaaactgacctaagaggaaacataaagtttaaac
-gatgctgtatcaattggagaaattgaatccatagtttagtcttctcacaaagaaactttc
-atgccttgatggcttcactggtgaagtataccaagaaataataatggcaattctacacta
-actctttcagaaaataaaggaggagacacttctcaaatcattcttcgaggccaatattac
-cttggttccaaaaatatgcaaagatatcacaagaaaagagaactatgagccaatatcctc
-atgaacataatttcagaaatctataataaaatattagcaaattgaatgcggtgaagaata
-gaaaggatcatagaacaggacaatatgatgtttatccccagaatgcaaagttgatgtaac
-atcaaaaaatgaatcaacgtaattcaccatattgatggactaaaggggaaaaacatatga
-ttatttcaataaatgcaagaaaagcatttgacaaaattcaaagccctttaaaaaaaactc
-atcaaactaggagagatggtaacttcaagctgaataatgctagctacaaaaaagtaacta
-cagataacatcacctttaacttagaaggctcatgtctttctactttaattaggaacaaat
-ggtaagttgaccacaaccacttttacttaacgtcatactgaaggtcttagctactccaaa
-aaggctagaaataggaataaaatgcatgcatttagaaaaggaagatacagcagattctat
-ttttagtttttaatttttataggtacatagtagatgtatacatttatggggtacaaagtt
-attttgatacaggcatacaatgtgtaataatcatattagggtaaatggggtatccatcac
-ctcaaacatttatcttttctttgtgttatcaacattctaattatactcttttagttatat
-ttaaatgtagaataaattaattttgactgtagtcaccctgttgtgctattgaatactaca
-ttttattcattctgtcttactatattttcatacccattgaccatcccctcctcccagacc
-cccctactacccttcccagactctgatcatcatcattctactttccgtcttcatgagctc
-aattagtaaaactttccttttttgcagataacatgatcatgtacataggaaaccctaaag
-aatccttggaaaagctattacatctaataaatgaatttagcaaagttttgaatgaaagtc
-tgtatacaaaaatatatatgtgcatattttagcaaaaaattagaaaaagaaattttgaca
-aaaactaccctttccataatagcatcaaaaatgaaatatttaggGGCCGGGCATGATGGC
-TCACCAATCTTGTACCCCAACAACCAGAATGATTATTTTTTATAGTTTTATGTATAGTCT
-ATTTTGGTTTTAAAATGGCAAAATACTATATGATTTTATATAAAAACTAAACTAACTTAG
-AAGTATGCAGTAAGAACGTGAAGGTCAAACACGCTGTCCATAACACTTAGGAAAATGAGA
-TCAACAGTAAATAGAAGACTGGTTACTCATCCTACAAGAAATGGTGATGAATAGGCCTGC
-AAAATATCCTGTAACTCCTCTAGAGGGTGCTCACTAGCAGGACATTCACATGCTACTCCA
-TGTGATGTTAGATTATTGTAAAGCATTATGTTCCTATAAAGGGTGGCGTGACAGTCCATT
-ACCAAGCACGAGACCCTCTGCTGATCTGTCCTAACAAGTGGAATTATGATATGCAGCAAC
-ACAGGAACCAGGCTTACGCTAGCCACATTGCAGAGAGACATTGCCAGAATCTCACTTGTA
-GAGGCCACCATCATATACATCAGTAAGCCTCTCTCCCTGGATCCACATCTCCCTCTATAA
-GGAGCCCTGTTAACCCCATCATTTAAGGGCTTCATACATTTGCCTTATATTTCTCTCATA
-AACAAATCAATGAGTTCCAGACTTTTGGTACAAATGTATGAAGACAGAAGAAATCATATT
-TCAGtcttaaaagcctaatcccagaagtgacacccatcacttcacattccattgccaaga
-gcaaatcacatgaccacacagatgcaaggggaatgagacattggcaaccacttcccagtg
-aCCATTATATATTATAGAAGGGGGGCATGCATGTAAGAGGAAAGTTGGTCTTCTCTGACA
-GAGACGTAGAATTCTACAAACATAGGGGAGGACGTTAAAAGGTGCTGAGCAGATAAAGGT
-CAAATGTCTGTTACAGAAGGACACAGGCACCAAAAGATAAAGagatactcctcaatttat
-gagggagttatgtcccaataaactcaccataaattgaaaatatcatacgtcaaaacttca
-tttaatacaactaacctacctaacatcatagcttagccaagcctgccttaaatgtgctca
-gaatatttatttgagcacatagttgggcaaaatcatctaataaaaagactattttataat
-aaagggttgaatatttcctgtaatttattgaatactgtattgaaagtgaaagatggaatg
-gttgtatgggtacttgaagtatggtttctactgaatgcatatggctttcacaccatcgta
-gagtcaagaaatcatgtcaaccatcataaataggggactatctgTATGACAGTAAAAACC
-ATTTTGTTACACAAATAGCAATCATCAAAAAAGAAAACACAGCAATTTCTGTTGCATATA
-TCCAAGCATTCAACAACAAAAGACCTTTCATTTTAATCAtttttttaagacacacggtct
-gactctgttgcccaggctggagtgcaatggtacaatcatagctaactgcagccccgacct
-cctgagctcaagcgatcctcctgcctcagtctcttgagtagctgggactacaggtgcgca
-tcactatgcctggctagttttttctagaggcagagtcttgctatgttcctcagactggtc
-tcaaactcttggcctcaagtgatcctcccaccttggcttcccaaagtgctagaattacag
-aggtgagccacagcacctggccAAGAATAGACATTTTATATCAAAGTAATTCAAGTATCT
-ATATGAACAAGTAATCGTGCAACTAGGTAATCAGGGCTTTGACCAATTTTGAATTACACA
-ATTAAAGTGCTAATATGTATTGTATTATACTGTATTTGCTGTAGCAATGCAAAAACTTCA
-TTGTTCTTTGTCCCCAAATACAACTGTCACTTATATTTCACTGTTTATGCTGCTAGTACA
-TAGCTTTATAAATTAATCTATCTTGTTTCTGACACTTATACATATTTCATCCTCTGGGGA
-CCTGGAGGAGCATATTCTTTGCCCCACCTCACAATTACCTATGCATATTTCTCAGTAACA
-GGCATAAGGCACGCTGCACAATCTTAGCTGATGAGATAAGAAGTCTCTCCTAAGGCTTTA
-CTCGCTGGACCATGGCAGAAATGTGGACAAGAGTGGTTGCAGAACATGCTGTGCCTGGGG
-CAAGGACCCTCTAATAGAACTAGAAGAGATAAGTCACAGGTACAAGGAGTGTGCAATCGG
-TCTGTTCAGCCACAGTTGCTATTAGAGGCCCCTGAAGAATTTGTTGTACTTTCCACGCTA
-GGCTACCTCGATCACAGAAATCAGCCTAGAGTCATATAACCCAAAGGGGGAGCTGACATT
-GCTGCTAAGCCCTCCTCCTGAGGGCCTTTTATCATCTCGTCCTGTAACCTACCTTTGCCA
-AGACAATTCCTTCAATCTTTGCTTTGTTTCAGGGAACAGTAATCCTACTAAGACTCTAAC
-AGTAGGGACGAGAGAAAGGGATGGAACAAAGGAGTGAGGCAAGGAGGCATCAGATGAAAG
-TGAGCTAATAATCTGTTGGCACCCATCACAtgctgagtacttccacttacattatcacac
-ttaagatgcacaatactttgggcatgatgtcactgccagcaaatctgaaattaggaaact
-caggcccagaagatatgaagtgacttttccggggtatcattaatgcaccagcagtgtaag
-ctaaattgaatccattctgcctgacaccaaaatcgtattcctttcCTTCCCTCCCACAAT
-TGTTTCCATTGGTGTATAAAACCTCTAAAGATCAAGATGTGGCTTCCTTCTTTAAAGAAA
-TAAAGCTGAGGCTAGGTAGTGACAGGTGGGGGCAAGTATGACCATCTATGAATGTTAAAT
-CTCACCCTCAATCCCACCTTGTAGTTTACCATCTATAGACTTGGCCTTCTTTAGATGAAG
-CAGTGTTGTAGGGgcctttctcaactggtgttcctcattcgaaccacagaacacagaaaa
-tgacttaggtgactattttcccaattcttccaaagatgatacatatgaataccattctag
-gtgcttagaagaaaggttaatccaaacacaatggatgtgtttggttgttaggatttaatt
-tgcttgcagaaacccaattgagacatgctgGTAGGGAATCTCTAACATTGGTCCACTGTA
-GAAGACAGAGGAGACGATCAATTTATTTTGTCTATCAACCTGCAGAAATAAAGAGTTTTG
-GTGGAACTGTAGGTAGAGAAAGAAGGAGGTACCTTCCCATGGCCTTGATGAGCCTGAGTC
-TTTCTAAATGCCAGGAAGGAAAACTACTCAAATTAGCTGTAACAGGGAGTTATCACAACA
-ATTTTTATTCTCTTGGGAAGTGCTAAAACAAATATATATGGAAATCTTACAGCCAACAGA
-AACGAatttcccactgctttcctccctcccaaactttcccactgtccctaattgaaaccc
-cattggaaggtaactaaatcctgtacaaccagaatctcctcatctaacttttcatttctc
-cctgtgttaaattaatcctgtttctccctcatggattcaccatcaacttgtactctcaag
-ctgatgctgttcattttcccacttttcatgactcaaggccaaaaggttggtatggcagct
-tcctcccttcccaatgttattttgaaaacattgcttctgtagtgtaaaatccccaactag
-tcaagactcaagtcagctcttttcaatgcctcttcaaccatctttattgttatattttaa
-aaagcagccccccatttattgaggactttggcactttgtttagaatgtatctattctgat
-tattgcctttattattggtgacttcagcatccatatggaaacactatccagttctacaaa
-tgttcagttatttgtcctccttaatgtcaataatttacctgctattctactcctgatttc
-tggccatagagctgtccacgtcatcatcaatgaccactccacacatgaactctgaactcc
-taccaccttctctgatcacacccaggcaccttttcagctccctcattttattatagaaca
-tgcatccgccagacgcttcctccttcacttttctattttttttttttttttttttttttg
-agatggagtcttgctctgtcgcccaggctggagtgcagtggctcgatctcggctcactgc
-aagctccacctcccgggttcacgccattctcctgcctcagtctcccaagtagctgggact
-acaggtgcccaccaccacgtctggctaatttttttgtatttttagtagagatggggattc
-accgtgttagccaggatggtctcgatctcctgactttgtgatccacccgcctcagcctcc
-caaagcctccttcacttttctttattagcctcaaccccatgattcaccactccaagtact
-cccttgccagcatcctcaaatcccaataccatttttaaaattttttaaagaatttctgca
-cccacctgtgtgaaaagttcaacccccagatccttttaactgtttgtcttctccacagac
-aaattcaggctgatgagcagtgctggaaaaagtgcacagctgcgcagattagtggcacct
-gcattcatgatctccagttttcacaaagccctcaGCAGCAGCCACTTGGTTCCCTGTGTG
-CAGCGTTCAGTGGAaaactccatgagggcaagaacaatatctgcttttactcattatttt
-aacccacttgaatgttaagctccatgatgacagggactttctgcggtatagattattacc
-ggcccctaagacagtttctggcacataatagacgctcaataaatactcagtgaaggaata
-aaATAAATAGGAGGTTAAAATTAAGTGATCAACAGTAGTCCAGGGTATTAAAGagactcc
-ccttaaaagctgcaattaagcagagtcatgagaggtgagtaggagctagcctgagaggaa
-atggaaaagacagtattaaaggcaggttgaacagcGCCTCTGTGATCCCTCCCTCATGCT
-TTACACACAATCGTTCTGAGTATTCTGTACTCAAAGCCCTTCCATTCTCTCCAGTTCCAC
-TGCCGCTCCTATGCACCCTCAGATGCAGCCTCTGTATTTCAGCCAGAATGGTAGCTCTAA
-AAGGTAATTCTGCTCATTATTTTCAGCTTCTATTTGGAACTCCTCTCAGAGCTCTCTAAA
-TTTCCTCAAGATATCTATCAGTTAAATGTGTTCACCcagtggtcttccatgtggtttgta
-tatgccaaggtatccccaaaaccctttgaaggagtctgcaaggtcaaaattattttcata
-acaatatttttaaaataactagtttcataataatattttgccttttcacaaaattgacat
-tggctctgaaaatgcaaactgaagcagataaaatagctagtgcctcaccacaaatcaaag
-caggggcacaagtctataattagaagttggattctttatcaccaagcacttgtaattttt
-ttaaatgccactcttaagaatatacttgacaaagtataaaaatttttaattttattgaat
-cccttgagtaGATTTTGTTCTAAGgttaaagtaaattaaagtggaaaccaggcctggaga
-atccatgagcagacaaggcctcttaagtgctcataacttttcttgatttgcaaacgtaag
-caaaacttaattggagctatttcttgtaaatgcctatattaaagaaaaatagaacttaat
-ctcaaccaatcaaaagcagctaactaactcgtaattatataagaaggtacttcccagcag
-gatagaccaaataagacaaaatttgtaactataaccaatcaaatattttatttgtattat
-ttccacacttactgcataaaagcgtgttccttacCACttttttttttttcttgagacagg
-gcctcactctttcacccaggctggagtgcagcggcatggtaatggctcattgcagcctcg
-aactccggggctcaagcaatcctcccacctcagccttctgagtagctgggaccacaggca
-cccaccatcatgcctggctaatAtttttttttttttttttgagatggagtctggctttgt
-cacccaggctggagtgcagtggcgcaatctcggctcattgcaagctccacctcctgggtt
-catgccattctcctgcctcagcctcccgagtagctgggactacaggcacccgccactacg
-cccatgcccggctaatttttttttcttttttttcttttttggtagagagaagggtgtcac
-catgttgctcaggctggtttcaaactcctaggctcaagcaatcctcccaccttggcctcc
-caaggtgctgggattactggcaggagccaccatgtccagctTccttaccacttcttaagt
-gaagaccccgaaccacttctggtttggagttgcccaattcatgcattgctgtttgctcaa
-ataaactcttttaaaaatttttattatgcctcagtttaccttttGACACTatgttctgag
-taatacaaggaaaagtacatataaagcacttctgcagtataacaagctatgatggttgtc
-gccagaaaaatcacttaaataactatttggattttaaactgaactaggcacttttttatg
-aaacatcatttttatttgaaagaatgatggaaaaagtatggttattcagacttacatact
-tggcagaaattttctcaaaaattaacaaagtgaacttgtcatttcaaagaaaatagctag
-caatattagttaccaatctattcttataatgtgtggctgacaacaagaagtgaagtcact
-gctccctttccttgaacctgggaagatctttgtaaccaacctgaccagtacaatgcagtg
-gaagaaatatcaggtgatttccaaggcagaacagcttctgactggccctctgtctccagc
-caccatgttagaaggaagttcaggccacatggagacagcaaggcctctagctcacagtca
-gcatcaactgccagacatgtaagtgaatgggcctccagatgattccagtccccagtcttt
-gaggcttcccagctgacgtcactgacattaccatgcagagacaagccatctctgctaagc
-cttaatttttaacccatagagaccatgaaagaataacaaatgatgattgttttgaagcca
-ctacattttggggtaattcattatgcagcaatgggtaaGTAATCCTGGCATCACATGTTT
-TTCAAGAATGGGAATATGTCTTTTTCTTCCTGTCTTTCATGTCTAAGCCCTCTATCAGTG
-GTGCTTGTTGTGTGGAGTTTGGAGCCCAGGAGTAGTCAGAAAAGACTTTGATGACACAGG
-GTTGCTTGTAGAACATCTAATATGAGCAACTCCTACCTTGTGCTCACTGACCAGGCCCAC
-AGAAAAGTCAACAAGGGCAAAAGTTCTTTGCCTCACAGCACAGAACTGCTCCTTCCTCTC
-TGGTGCCTCTCCAACCACAAAATTCCTTGTCCCTGTCTTTGCCAGTCTCATGTTAAGAAA
-CCCCATAGACCCAGGTATTCTCCAATCTTGATGATAGAAGGGGAAACTGAGGAAGAGGTC
-CAGCTCACAACATTCTTACCAGCCCAGGGGGAAGGCCAAGATCTCCACAGAGTCATAAAC
-TCTAGGCCAAGACTATGCCTCTCCCAGGAATATCCAAGTTGGATATACCATATATTTTAT
-GCAgataaaatagctagtgccttaccacaaatcaaagcaggggcacaaatctgtaactag
-aagttggattctttatcaccaagcacttgtaattttttaaaatgccacttttaagaatat
-acttgacaaagtataaaaattattaattttattgaatcccttgagtaGATTTTGTTCTAA
-Ggttaaagtaaattaaagtggaaaccaggcctggagaatccatgaaaagacaaggcctct
-taagtgaTAAAACCTGTATTATTCCTACAGAGTCTCCTCTAATGTCAGCAACTGTCCTGG
-TGTCTCAACCTGTCTTTACCACCTTGATTTAGCCATCATGAAAGATCAGCCAACTCTATG
-TTATTGTATTTTTATTTCCATCTCTACTTTTTATTACAACAAAGGTCCTACTTCGTTGAA
-TTTTCCCTTGCTTTTAAAAAAACGGAAGGTCTTTAACTTGTTCTGAAGAAACCTCCTGTG
-AATTTCAAAAGGGCTCCCTATCTGTTGCATGTGGGGAAGGGCCACGCACATCCACATTCC
-CTTCGTTCCAGGGCACTGGATTTTCAAATATTGAGTTCTTGCTGTCTTCAGTCTTTGAAT
-AAAGCTCACGTGGACAACTATGAAGTTTAAAAGCATAGGTTGAGTTTGGGGTATAGTCAT
-GAGAATAGAGAGGAAAGAGCAGAAGTACAGCTCATTGCAGAGGACAAGCATCATGATATT
-CAGAACATTTGATATGGAGTGATATGGGGTAAGAGTGAGCTGGGTTTTATTCTGGGAAAT
-CACCCAGccctgaaaaagctatttatattcttttgttcactttccttatctgtaacacag
-agaccgttatgccaggtttcctagctactttagttgttgtgaagCAGCATATTATAAATA
-TCATAAAAGATTATCCAGTgctaggtgccatggtgcacagctgtaatcccagctacttgg
-gaggcagagtcaggaggatcacttaagcccaagagttcaaggctgtactgcactgtgttc
-acacctgtgaatagccactgcactccaacctgagcaacacagtgCCTCTTAAATAtgtat
-atgtatatatatatatatgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtATAT
-ATATATATATATACTCTTTTAAATTTACTCTGTTTTAAATATTTTGAGGCAGAAGCAAGA
-CGTTTTGATACAGAAAGCCAGCAGGTTGCTGAATTACAAGACTGAAGCTGAGGAAACTGT
-GTTTATCAATAGAGATGCACCGCTCATTCTTATAGAGGGAAGAtacaaagtaactctatt
-aagtcaagaatttctatatgttttatttactgcaatatcctcagtacatagacagcagtt
-gacatatagtattgatcatagtatctaatgttcaatagatatctgctgaatgaactgaaA
-AATTAATAATGTTGAGCAATAACAGGTAATCACTGTAAGATAACATTCTGAGGAGACTAA
-AATTTGAAGAATGCCTACAAGAGAGGGAGATGCAAAGGGAAAACATATCCTAAAAAATGA
-AATGAAATTATCCTTAAGAGAAAAAAGAAACACCAGTATGATCAAAGATTGCAAGAGGTA
-GAAGACAAAACTGCATAAAGTAAAACAAAATGCTGAACTCTTGAAATGCAAAAATCCAAA
-AATCCTGTTGCCTGTtttttttttgtttgtttgtttgttttttttgagatagagtttcac
-tcttgttgcccaggctgaagtgcaatggcaccatctcggctcactgcaacctccacctcc
-ttggttcaagtgattctcctgcttcagcctcccaagtagctgggattacaggcgcccacc
-accatgcccagctaattttttgtatttttagtagagacgggtttcatcatgttggccagg
-ctggtctcgaactcctgacctcaggtgatccacccatcttggcctcccaaagtgctggga
-ttacaggcatgagccactgcactcggctGTATTTTTTTTTTTCACTTATTTAGAAGGCTG
-ATTTATTATCACCTCCTGCCAGTCACGGGAATGAGACAGAATCACCTTGAGAGTATCTAC
-AGGGAGAATCTGGAGTCCAAATCCCTTCTTAATCAAGAAATGCTCTTTAATCAACTCCCT
-ATATATAGGGAGGTTGATGCTGGGACAAGAGGGGCTGAATAACTTGGGGTTCTAGTCTTG
-GATATGGAATGGGGGCAAGTGTGTACAATCTCTTTGATTTTCCCCAGGGCTTCCATCAAT
-ATTCCAAAAGACTAGAAATTCTGGACAGCAGCTTTTCCCTTCTCTCCCTTTCACACTTCA
-GTGACTTCTGTCTTCATCTTAAGACACTAATCTACACCCAATTTTCTCTCCTTCCTTTTT
-GCAGGAATGCTATTCATTCAAAAATGCTGGGATGAAAGAGCAAACTTGCAAGGATATCTG
-CTACAATAATTAAAGAGAAATAGATGCCTATAATTAAAAACATTGCTGCTTGTCTCTGAA
-ATTATTTGAACACTGTATACATCATAATGTACATAATCAGTTTCCATCTGATATCCCAGA
-CATCTAATCCTGGAAACAACGTCTAATATCTCTACCCCAAAGCAATAGAATTAGAGCTGG
-AAGGGGCAGGTAAGCAACAGTGTGGACCTTTctcagcagcagtgaacttggggtgctcac
-aacctgtgcaaaaccagctgtggtggctaaggattgcctatgtcacctctcccccaactc
-taggcaatgcagcttggggatagactccttccacttgggggaagaagagggaagagtaca
-gagggctttgccttgcaacttgggtaccagctcagccacagtaaagtaaagtatcAAAAG
-TTacccagcatggtgccagctgtggtggccactggacttgcccttcccccaactccaagc
-agcctggcacagagagagagactccttttgtttgggggtaaatgagggaagagaagaaga
-aactctgcctggtaacccagggaatttggccaaatttaaaccccagcccactaaggtggt
-tcctctaggactcagcgagagttgcagtgtttctgagcttagggcaccctctagtgctga
-tatagtttcaataatcacaggctcaaatcacaacactcaatctccttcaaatacctgaaa
-agccttcccaagaaggatgggtgcaaacaagcccagattgtgaaggctacaatatgtatc
-taactcttcaatgcccagacatcaacaaccatcttcaagagttaagaacatccagggaaa
-tatgacctcatcaaatgaactaaataaggcatcagtgaccaatctgagaatgatggagat
-atgtgactttttagacaaataattcaaaatagctgtcttgatgaagctcaacaaacttca
-agacaacacagagaaagaattcagaattacatcagagaagtttcacaaagaaattgaagt
-aatttctaaaaaatcaagcagaaattctggcactgaaaagtttgattgtcaaagtgaaaa
-atgcataagagtctttcaacggcagaattgatcaagcagaaggaactggtgagaactggc
-tatccaaatatacacgaagccaaaaaaagaattaaaaaagaataaagtatgcctacaaaa
-tgtagaaaatagtctcaaaagggtaaatccaagagttattggtcttaaagaggatgtaga
-gggagagaaaagggtaaatagagagatcttttcctcagcacatggaacattttgagagat
-cagggtagaaaggtcagagaaataaaaacaaacaaccttccaaacctcaagaaagatata
-aacatccaggtacaaaaaggtcaaaaaacaccaagcagattcaacccaaataagactacc
-tcaaggcttataataatcaaactttcaaagatcaaagataaagaaaggatcctaaaagca
-ccaagagaaaagaggcaaataacatataaaggaactccaatacatctagcagcagacttt
-tcaacagcaactttacaggccaggagggagtgggaaaacatatgaaaactgctgaaggaa
-aaccaaccttcaacctagaatattatctccagcaaaattatcctctaaacatgaaggaaa
-aatagtctcccagacaaacaaaagctgaggaatttcatcaataccagatctgtcttacaa
-gaaatgcccatgggagttctccaacctgaaataaaaggacattaactaacaacaagaaat
-cgtctgaaggtataaactcactggtgatagtaagtacacagacaaatacaaataccctaa
-cactgtaattctggcatatgaaccgttcatatctttagtagaaagactaaaagacaaacc
-aatcaaaaataataatgacaacaactttttaagagattgtataaaaagatacagagacaa
-taaaaatcaaaaagagtgtagagtgtagagtggttgtctctttgcttgttagtctgtttt
-tcttttctttttaatcaggattaagttgtcatcagtttaaaataagtggttataagatgt
-tatttgcaagcttcatggtaagtacaaaacaaaaacctgtaacaaatatgcaagaaatta
-aaacatactaccacacaaagtcaactttacacaaagaaagatggaaggaagggagggagg
-gagggagggagcagggaagggaaggaagggagggaagggagggaatggagggaaggagga
-aaggagggaaggagtgagggagggagggaaggagtgagggagggagggaaggagagagga
-gaaaaggagggagagaggagaaaaggagggagagaggagggagggaggaaagggagggaa
-ggagggaggaagggagggaaggaaggaaggagggaaggaaggaaggaaggaaggaaggaa
-ggaaggaaggaaggaaggaaggaaaaagaggaccgatgaagcaaccagaagataaatttt
-taaatggcagttgtaagtccttatctattaataagaacattgaatgtaaatggactgaag
-tctccaatcaaaagacatagagtggttgaatggataaaagagcaagacccaactacatgc
-tgcctatgagaaactcacttcacctataaagaaactcatagactgaatataaaggaatga
-aaaaagaaattctatgcaaatagaaaccaaaaaagaagttattatacttatatcagataa
-aaatatctttcaagacaaaactgtaaaaagagacgaaggtcgttgtttaataataaagga
-gtcaatttttgcaagaggatataacaattataaatatatatgcacccaacactagggaac
-acagatatataaagcaaaaattattagttctaaagagagaggtagaccccaaaacaataa
-tagttagggacactaacaccccactttcagcattggacagatcatcaagacataaaatcc
-acaaagaaatatcagacttagtctgcactataaaccaaatggacctaacagacatttata
-gaacatttcatccaacagccatggaatacacattattttcctcaccatatgaacattctc
-aaagataaaccacttgttaggccacaaaacaggtctcaaaagaatctaaataattaaaac
-catatcaagtatcttttatgaccacagtggaataaaagtagaaatcaataacaagaggaa
-ctttgaacactatacaaacacatggaaattaaaaaacataatcctgaatgaccgttgggt
-cattgaagaaattaagacagaaattttaaaatttcttgaaacaaatgaaaatggaaatac
-aacattccaaaacctatgggatacagcaaaagcagtactaagagggaattttatagcaat
-aaatgtgtatatcaaaaaagtagaaaaaatgatcaataaagcagtctCAGTATCAAAAAT
-TATGCCATATGTCATTCCCTTCCCCAATATAGAAATTATTTAGAAATCAATAAcaaaaag
-ttcaagaaaatgtatattatgaaaaaaatcatgtaagaatttcaaaatgttttgcaccaa
-aataaactaatactaactggttataaaatgtttgaacaagatctagtttcagacactaaa
-aaagataagacatcagtctgaaaagagcccctatcagagcaacatgaattctgctaaaat
-tgaagcaagaacaaacatcaaatgtacagtgaagcttgggtagaagaatgatgaaatcat
-tgatgctttacaaaaagtctatgggacgatgccccaaggaagtcagcagtttgcaaatgg
-ataactcattttaataagggatgagataatattgaagatgaagccaccagcagcagacca
-cccacatcagtttgggaggaaaaaattaatcttgttcatgccccagttgaaaaggactga
-taattaacagtaaaaacaattgtcaacatcatagacttctcagttggttcagttaatgga
-aatctgactaaaaaattaaagaagaacaaactttccacttgatgggcgccaaaaccattg
-tgccaaaatcagctacaaacaagagcacagctttcaatgaaactttaaacaagtgggatc
-aagatcctgaagcatttattcaaagcactgtaacaaaagttggaatctggctttaccagt
-atgaccctgaagacaaagcaaaatcaaagcaaagagatggaagtgatccagtccaagcaa
-aagctgaccagttaagaacaaaagtcatgtcaacaatttttgggggtgcacaaggcattt
-tgcttgttgactttctggagggccaaagaacaataacatctgcttattatgagagtgttt
-tgagaaagttagccaaagctttagctgaaaaatacccaggaaaacttcaccagagagtcc
-ttctccaacatgacaatgctcctgctcattcccctagtcaaacaagggcaatttttcaag
-cgttttgatggaaagtcattaggcatccacattgccatcctgacatggctccttttgact
-tctttttatctcctaatcttaaaaaaaaatctttaaaggacaccaatttttcttcagtta
-ataatgtaaaagaacactgatgtggttaaattcccaggaagctcagtccttcagggatag
-actaagtggctggtaccattgcttacaaaagtgtcttgaacttgatggagcttatgttga
-gaaataaagtttatatctttatatttttatattttaatgtcatcttccacaaactgtttg
-aagttccctcataactaaaatgtccccacatgctcagataagaaacacatttctcaacca
-atgtttctcagatattaaagtacatacaaatcacctgaggatcttcctaatacgcagatt
-ttgattgactcattctgagatgaattgaaatcctgcatttctgacaagctctccggaagt
-gttgatgcttctggtctttccaccacactgtgaatagcaaggttcaaactaattcatatg
-tcagaaaagatgacacagtggaaattgaagtgtttatttttaagtgaatgattatgataa
-caaaacactgcaaataaaaacttatgaagtccagctaaagctgcatataaagggaaaatt
-agagtcttacccacttggttatactgaagaaaagctgaaaatgtatgagataacaacaca
-aataataagttagaaaacaataacagaataaaatgaaattttattcaaagaagttcaaag
-aaaggaagataaagctgagaggagaaaataattaaatattttttaattttcataatattt
-aaaataaaatataattaaataaaaatcaaacatagaatcaacaaaaccaaaagctgattt
-tgaaaagaccaattaattaattcactataggaataacaaagaaaaaattgaaaacacatt
-acccatatgaagaataaaacacgtagccatcactacaaactctatagatagtaaagagat
-caaaggacatattgtgagtgaccttatgccaaaaatgaaatttagaagaaataaacatta
-cttgatgtgacccaagaagaaattgaaaatttgacagttctaaattgttagggaaattaa
-atctTAAATCTTTAAACTCAGTTGAGTTTTTCTGCTACATTCCAATGTCTGATCCCTAGC
-TCTATGGGTTTCAACAGACAGTTGTAGAAGCAGCAGAAAAATATCCTTGCTCTTATATTA
-CAGCTACCGTGGTGTGTTCTTGAAGTCCAGCATGTCTAATCATGGGATCCTGTCACCCTA
-CTTTCCTGACTATGAAAGAACTAGCAGATTCTCTGCTGGGCCAGTTTGTTGGAATGTTCT
-GGAAGTCATTCTGGGAGACCAAGCCCACAGTCAGCTTCTGTAGAGAGTTTATAAGCACAT
-AATTCTGAGTATTAAAAATATTTCTGTTGAAAATAGCTAGTGTTTTTCATTTCCCAACTG
-ATACACATAAATGCAACACTTTGCACATGTGAATAATTTGTCTTTTTACAAAATTATGCT
-ACACTGTTGATAGATTCATTCCATATATACATGCAACATACTTAATTTTTCATAACTTTC
-CAATTCTTATTAACTCAACTTTTTGTTCCATAATAACTGTGCTTCTCTTTGTACCAGTAC
-TTTCCATATTCTTATTGCTTTGGGACTAGCAAGACACAATGAGGTGAATAATGTTATTTC
-AATGCATCTTAAAACACCAGAAACCAATTAATATGCGATATTCAGGATTAACTGATTCCA
-AAGGGCTGTTAATTCCATCTCTTGATATTGACAAGTAGTAAGTAAATATGCCTAAGCTTG
-ATTATTTTTGTTCATAGAAGTAAAATATACATTTCATAAAGTGAAAGTTCATAAGATTTG
-CTTTTATTGTTTTAAAAAATAACAGTTAATTTAAACAAAACTGAGGAGTCATTGGATACT
-ATAGTAGCTAATGAAATCCTAAGAAGACATGAATTTCAGGAAGGCGAGGAACCAGGGAAA
-CTCTTGAAACTTGAACAATTAATAATATTCAGAGCCAATGAGCTTCAATATCTGAGTTTC
-TTAGGAAATGTCCCAAATTAGCAGGGGAAAGCATCTGATTGGTAGGCTTGGTTCTATTGT
-TACACCTGGATCAATCAGCTACGACCAAGGAATCTGAGCAGTACACTATAAAAATTGCTG
-CTTTTaattatttcaaccattgtggaagatagtgtggcaatccctcaaaaacctaaagtc
-agaaataccatttgacctagcaatcctattactgggtatatgcccaaaggaatataaatg
-gttctattataaagacacatgcatgcatatgttcactgcagcgctattcacaataacaaa
-gacatagaatcaacccaaatgcccatcatttggccatttggataaagaatggataaagaa
-aatgtggtacatatataccacggaatactatgcagccataaaaaagaatgagatcgtgtc
-ctttgcagggacatggatggagctggaggccattatccttagcaaatgaaggcagaaaca
-gaaaaccaaatactgcatgttctcacttataggtgggagcaaaatgatgagaacacatgg
-acacacagaggggaacaacacacactggagcttactggagagtggaaggtgggaggaggg
-agaggatgaggaaaaataactaatggacactaggcttaatagctgggtgatgaaataatc
-tatacaaccaacccccatgacacacattacctatgtaacaaaccagcacatcctgcacat
-atacccgcgaagttaaaaaagttTTTTTTTAGTTGCTACTTTAAAAGGATGTGGGAATCA
-TTGTAAACTCAAAAGTTAAAGATGTGCCAAGAGCTGTCTCCCACGAACTTGTTTAACAAA
-CGTACTGACTTTGTATGTTGATCCAATACCCATGCTGGCCACTGGACATACCAGTACAAA
-CAAGGCAGAATCTTCACTCTCCTCTAGCTCTTCTAATTCTCATGCACTAAGTGCCAACCT
-TAGCATAACTGGGCTGACAATCAGTGAATCAAATATCTAACTCTTATCCTACTCCAACGT
-TAAGAAAGAGACATGCgactgggtgcggtggctcatgcctggaaccccagcactttggga
-ggccaaggtgggcggatcacttgaggtcaggagtttgagaccagcctggccaacatggtg
-aaaccccgtctctactgaaaatacaaaagttagctgggcatggtggtgcatgcctgtagt
-cccagatactctacttgggaggctgaggcaggaggattgcctgaacctgggaggcggagg
-ttgcagtgagtcgagatcacgccactgcactccagcctgggcaacagagtgagactccat
-ctcaaaaaagcaaaaGAGAGACACATGCAAAGGGCTTGCTCTTTCTTTCTCATCTTACCT
-ATCTTATGTTTTCCTCCAGGATCAAGAGCAAGGAATTTGTTGCATAGAGGTGTTCAAGAA
-AGGGTGTTTTCAAACAGAGTCAGAAAAAACACAACTATACTGCGAGCAGCATACAAACCT
-GCTTTGGCTGCACTTCACTGCTCATGGCATAAGGCCACGAAGAGGCCAATAAAGGCTGGA
-GCTCAGGAGCATCAACCCAGATTCAAGGCTTCCTCTCTGGCACCCAACCATGAAGCTCCT
-TTTTCCTATCTTTGCCAGCCTCATGCTACAGTACCAGGTGAACACAGGTAATGTGGATTC
-CCAAGTTTAAGATGGGTAGATGAGAGGAACCAAGGATTTGGCTGCCCATGACAATGGAAA
-CCCAAAGAGAGGAGACTGAAAGATTAGCTGTTCAAAAAGATGGCTAAAGAGCTTACCTAT
-TGTATCAGTCATGCACTGATACATTCTCATAGGCCCCAACTGCCAGATTGTGTCCAGTGG
-AAACACCCAGGAAGCTACAGAGAAAGCAGGGTATTTTTTGTCTATTCAGAAACTATCCAA
-AATATAATGCTGCCTTCCTGCCCTGTATATGTCTATCATGCTAAGACTAAGCCCAGGTCT
-ACCTCCTTTTAGCTCTATTTCTATCTTAAAAGCCCTTTTTTTTTAAAAAaagtcctgggg
-tacttgtgcaggatgtgcggtttgttacataggtaaatgtgtgtcatggttatttgctgc
-acctaccaacccatcgcccaggtattaagcccaggatgcattagctatttttcctgatgc
-tctccctccacccaacaggccccagtgtgtgttgttccccttcctgtgAAACCACCTCTT
-GAAGCAAAGTTTCCTATCAGTTTGTGCTTGGTGTAGAAAGGAGGAAGTTCTTCCCTCATG
-CTCAAAAAAAAACCCTTTCAAGATCAAGTAAACAGGCCTGTGTTCTCCATCTTGAATTCT
-TTCAGGTTTTCCAGAGCCTTTATCGCTTCTCTCAGACTTTGTCTTCCTGAAAACCCCCAA
-ACTACCATAAGGGCATCTAGGAATGCATTATAGCAAAAGGCTAAGCCAGGGGATTAACCA
-TTGTTTTTGGAAAAGAAAGGAGAAGCACTGAGATTTGTTTCAGAATACAAGAATCATCCA
-GCTATTTGAAAAAATTAGCAAAGGGTTTCGGGGCAGGGAAAGTGGAAGTGTCAAAGATGC
-TTCTAATGTTTTTATCTTCTAATGTTTTTATCTTGGGACCCTAGGAAAAGGGTAGTACCA
-TAAGCAAGTAtggctgtgtcatcttgggtaaagtcacttaaccactttgaacttcaattt
-cacatgagtataatggggttaatcaatgcAGCTGATTCCAATATAAGAATTTTTCTGTTT
-CCCGTTTGATGAGAAAACAATGTGGAAATGTATGCAAATATGCTTTGAAAATTAGCAGAT
-GCTACATAAATCTCTTGTAATTTAGGGAAAATCATTGGGTTATTAAGATGAACAAGGGAG
-AAAAGCTTTCTTGATTCAGAAAAAAGAAACACGAGACATTAGGATGGAAAAGTCATTCAG
-CAGATAAAGATAAGGTACTAAGCCGAGCAGGAAATTTAGAATTATAGATAACAATACAGA
-AGTTACCTTGGTGGATATGAGGTTAAGGCTAGGATAATGAATGAGACTTCTGAGAGATAG
-AGTGTCCAAAGAGGCTAGAAGAGATAGAACACCATGCTTCAGGAATCACAGATCTAGTGA
-TTGTTGAGAAGAGAGAAGTCATGGGCTACTGAGTTTGGTGAAAAGATAAGACTCCTGAAA
-ATTCTATTGATTCTCTTTTGAACTTCTTTCTTAAATTAGTTTTATGATGGACTTGGCTCT
-CATTGGTATTTCCCAAGATTATGGAGATGGGATAGTGATGTCTGACAAGTACCTAAGATG
-CTAAGTTGAAGGTCTAAAATTCCATCCTAAAAGCAAATAATTACTCTATCATCTACGTGC
-CCTTTGCTTCTTAAAGTTACTCAAGGAAGGCAGACTAAACAGGAAATTTACTTTGGATTC
-AAGAGGGGCATAGAGACGCTCTCAGCCTGCCCATTTGCCTTCATCAACATTCCTAAACAC
-TGGGCTTAAAATGTAGTATGAGTAAACTCTCTCTTAGTCTATCCATCTCCCACTAGCAGT
-TTTAACATCATCTCTAGTTATTAACCTTGGCTCAATGGCTTTCTCTTTTTTTATACAGAA
-TTTATTGGCTTGAGACGCTGTTTAATGGGTTTGGGGAGATGCAGGGATCACTGCAATGTG
-GATGAAAAAGAGATACAGAAATGCAAGATGAAAAAATGTTGTGTTGGACCAAAAGTGGTT
-AAATTGATTAAAAACTACCTGCAATATGGAACACCAAATGTACTTAATGAAGACGTCCAA
-GAAATGCTAAAACCTGCCAAGAATTCTAGTGCTGTGATACAAAGAAAACATATTTTATCT
-GTTCTCCCCCAAATCAAAAGCACTAGCTTTTTTGCTAATACCAACTTTGTCATCATTCCA
-AATGCCACCCCTATGAACTCTGCCACCATCAGCACTATGACCCCAGGACAGATCACATAC
-ACTGCTACTTCTACCAAGAGTAACACCAAAGAAAGCAGAGATTCTGCCACTGCCTCGCCA
-CCACCAGCACCACCTCCACCAAACATACTGCCAACACCATCACTGGAGCTAGAGGAAGCA
-GAAGAGCAGTAATGTGGATCTTTCCCTTAAAACTCCAAGTTCCTCTCTATTTTTGCTATC
-TATAAAATGACATAGAACTGTTTCCTCTGTCATCAGTCATTCAATAAACACTGTTTGAGC
-ACCTACAGTTTATGTAATATTATCATTCTCACAAGAGCCTCACAGAGGGGGTAGAGCTAG
-GGAGGGATGGAATTGTTTAAGTTTAGATGCCCAGGAGAAAGTAAGCCTCAGGAGGGTGAC
-TACAGCATCGAGTTTGTCCCAAGCATGGCCTAGATTAGGCCTCTGTAGCAAGCATTTATG
-TCTCTCATATGGTGTGTTTTTCCTGGAGCAACAGTAAGGAAAGCATCAGGAGATGTATTT
-TCTTTTCTCATGTATTTGGGAGGAAAGGCCCAAATGCAAAATAGAATATGTAGGAATCag
-aaaaaggttaaattaattgtaataatatatttttgtttcgttttgttttgagacggagtc
-tcactcagttgcccaggctggagtgcagtggtgtgatctcagctcactgcaactccacct
-cccgggttcaagcaattctcctgcctcagcctcctgagtaaccgagattacaggcgcaca
-ccaccacacccagctaatttttgtatttttagtagagacggggtttcaccatgttggtca
-ggctggtctcgaactcctgacctcgtgatccgcctgcctcggtctcccaaaatgctggga
-ttacaggcatgagccaccacacccaaccaataatgtgttttattgaatgcaatatatcca
-aaacatgatcatgttgacatgtaatcaatgtaaaaattatttatgagagagtttaccttt
-tttggactacatctttgaaatctcatatgtgtaattacacatagagcacatttctattca
-tactagccacatctcaagtgctcatagtcatatatgaatagaggatttcatagcatattg
-aacagcAACAAGGCTAGAGAGTTTTAGGGCACAAGTAATTATAGTGACTCTTAGGCATAG
-GGGATGCCCCTAATCCAGAGGAGACAGGCATATTTCTGAGGGCtgtggcatataatttaa
-gagtatagaaattcaggtctgatatgcccggactagcatcctagattctggcacttttta
-gctgtgtggtcttgaacaaatcatttatccacacataagcatcagtttatttattcataa
-aatggagatGTGAACATTATATTATATCCCAGAAATCAGCAATCTCAGATCACTCTTCCT
-CTTATTGCCCAAATTACAATGGCACAGCCACCTATTCTAGttttttaatagctttattga
-agcataattgatatacagagaattgaacatatttaatgtgaataatggcatgagtttggg
-catatgcaaaatcctgtgatactatcaccacaatcaaggtgatagacgtatacatcacct
-cccaaagtAacatgaccatatttgtagaaaaccctgaaaacttcacgaacacacacacaa
-aaatgtagaactaagaaatagattcaaaaaagtcaacatacaaatatcagtggcatttct
-atacacttaacaatgaaccattccaaaagaaaatcaaggaaacaatctatttacaaaagc
-aacaaaaagaataacataggaataaacttaaccaaagaagtgaaagaggtacattaaaaa
-cttaaaaatattgatgaaaaaatcaaaggaaacacaaataaatggaaagatattccatgt
-ttaggtattgaaagacttaacattgttaaactgttcattctgtctaaagcaatctacaga
-tataatacatctccccccttccaaatcccaatggcattttttaaagaaatggaaaaaaca
-atcctaaaattcacagggtaccataaaagacccagaatagcaaaatcaatcttgagtaaa
-aagaacaaagctgaaggcatcacactttcttatttcaaaatatattacaaaggtatagta
-attaggccaggcgcagggactcacgcctgtaatccagcactttgggaggccgaggcgggc
-ggatcatgaggtcaggatatcgagaccatcctggctaacacggtgaaacctcgtctctac
-taaaaacacaaaaaacaaaaaatagccgggcgtggtggcgggcgcctgtagtcccagcta
-cttgggaggctgaggcaggagaatggcgcgaacccgggaggcggagcttgcagtgagccg
-agattgggccactgcactccagcctgggcgacagagccagactctgtttcagaaaaataa
-ataaataaataaataaataaataaataaataaataatggtgttgggaaaactggctaccc
-acatgcagaagaatgaaattggatccttatctcaccccatataaaagaaatcaactcaaa
-acggattaacgacttaaacataagacctaaaactgtaaaactactagaagaaaacacagt
-actgttctgtatttaagctccatgacatcgttctgggcaatgatttcttgcatatgaccc
-caaagcacaggcaacaaaagtgaaaataggtaactgCATCCAGATTTTTTAACATATTCT
-TCTCTGCTACATATCACCTACCTCCATTCAAAGGTCACCTTTCCCCATCCTACTCATTTT
-TTAATACAGTGTCACTCTAAGAAAGACAAAGATTTTTCATGATGCCCCACAGTGATTCTA
-GAATATAACTAAAAAATATTTTCCTGGAAGTTTTTGCACAACAGAAAGGAGTTGCAATAC
-AAAGCATAAGTTTAACACCTGCTAGATATGTGTTCTCTGAGGAACCCCAAGCCTACCTGA
-TGGGTGTCAGATTCTCTCCCTGCTACAGCTATTTGTCAAACTCTTGAAAGTCCAGCTTTC
-CTTCCCATGGAAGGAAAATTCCCACGGAATGCTCTCTTCCGTGTTTACCCACAGAAAGGA
-GAGAAAGGTTCTTTCTCACACAAGTCTAAGGCCTTCCTCTAAGTCACCTTTTCCTATCAT
-AGAACTCACCCAGCACTTCTCAGGATAAATGATACTGCAGAATATGAGTTTGCTTCAGGG
-AAATCCCATACCCACTGTGAAAAATATGGTAACTctccaatatcagttctccccctttgc
-taagtaatagaaccctccaaatattaggttgacacaaagccgaccagagaaaaggctgaa
-tttcccaTCTAGAACTGGTCATTCTTCAATTCAGACCAGCCATAACTGGACACTTTTGCA
-AATATTCATTAATAGTCTTGGTGAAAACCTCAGATTTCCATTTTGCCAAAGTTTCCAAAG
-GAAAAGAGGGCCTTTTTCTAAGCCCTGAGAGCCCCACAGTGACAGTAAGTTCTCCCTTGG
-AATTCACCCTGGCATACCTCGGTGCTACCCCAGATCCTTTCCCTCAGGGGCTATGAGATT
-AGGTTTCATggccgaatgtgacggttcatgcctttaatcccaacactttgggaggccgag
-gcaggaggatggcttgagcccaggagtttgagaccagtctgggcaacatcatgagactct
-gtctatgtaaaaaataaaaattaaccaggtgtcatggtacataactccagtccctgctac
-tgtggggcaggggctgtgggggctgaggagggaggattgcttgagcccagaaggttgagg
-ctgcagtgagctgtggtcgtaccactgcactccagcctgggcaacagagcaagaccctgc
-cttttaaagaaaaagagaaaGGAggttgggcatggtggctcatgcctataatcccaccac
-tttgggaggccgaggcaggtggatcacctgaggtcaggagttcgagaccagactggacaa
-catggtgaaaccccatttctactaaaaatacataaattagctgggtgtggtggcgggcac
-atgtaatcccagctactcaggaggctgaggcaggagaattgcttgaacctgggaggcgaa
-ggttgcagtgagtcgagattgtgccactgcactccagcctgggtgacaaaagcaaaactc
-catctctaaataaataaataaaaataaaaaaGAGAGAGAGTGAGATTAGGACTCACCCTG
-GCCATCCCAGGTCCTGCCACTCCAGGTCCTGCCACTCAGGGACTGTGTGACTCTATATTT
-TTTTTAACTTCTCAGGCCAATATTAGAACCCAATCTGATCAAATTAGAAACCTATGAACA
-TTCCACTTACTAGCAGTGCATTCATGGAGCACTTCACAGGGAGTCACCAAAGTATCAATC
-AATCAATAAACTACTACCCTACCCTGAACTAttaggttggtgcaaagtaattgcagtttt
-tgcattgttggaatttgctgtttgatattagaatgcgttcttaaataaatgtggttatgt
-tacactttttttttttttttttttgagatggagtttcgctcttgttgcccaggctggagt
-gcaatggtgtgatcttggctcaccgtaacctcctcctcccgggttcaagctattctcctg
-cctcagcctccctagaagctgggattacaggcctgtgccaccatgactgactaattttgt
-atttttagtagagacggggtttctccatgttgatcaggctggtctctaactcctgacctc
-aggtgatgcacccgcctcagcctcccaaagtgctgggattacaggcatgagtcactgctc
-ccggcctatacatcattttaataggcatttctcactttatgttttttgataatgacttat
-tacttgctgttgattttatgtttattttagactatggaaatgatgtcagacaaaaagaaa
-attcaagcgattttcttattcaagttcaaaatgggtcgtaaagcagcagagacaacttgc
-aacatcgactgcgcatctggtccaggaactgctaacgaacgtacagtgcagtcgtggttc
-aaaaagttttgcaaaggagaggagaacctcgaagatgaggaatgtagtggccggccgttg
-gaagttgacaaccaccaattgagagcaatcattgaagctgatcctcttacaactatacaa
-gaagttgctgaagaactcaaccttgaccattctatggtcgtttggcatttgaagcaaatt
-ggaaagatgaaaaagctcgataagtgggtgcctcatgagctgagcaaaaatcaaatcatc
-attttgaagtgtcgtcatctcttattctacgcaacaatgaaccatttctcaattggattg
-ggacatggcaatgaaaagtgtattgtatgtgacaacctgctacaagcagctcagtggttg
-gaccaggaagctgcaaagcacttctcaaagccaaatttgcaccaaaaaaaaaggtcatgg
-tcactgtttggcactgtgatccactacagctttctgaatcccagcgaaaccattacctct
-gataagcatgctcagaaaatgagatggaaatgagatgcaccgaaaactgcaatgcctgca
-gccggcactggtcaacagaaagggcccagttctttacgacaaggcctgacctcatgttgc
-acaaccgacacttcaaaagttgaatgaattgggctacgaagttttgcctcatctgccata
-ttcacctgacctctcgccgatcgactaccacttcttccaactttttgcagggaaaatgtt
-tccacaatcagcaggatgccgaaaatgcttccaagggtttgttgaatcccaaagcacaga
-tttttacactacaggaataaacaaatttattcctcattggcaaaaatgtgttgattgtaa
-tggttcctaatttgagtaatcaagatgtgtttgagcctagttatagtgatttaaaattca
-cggtctgaaatcgcaattacttttgcaccaacctaaTATGTATGCAGGTGAATTCTGTCT
-GTCTTTGCTAAGCAGTGAGGTGATCCCGTGCTTAATGATGTTACTGCAAGCATGACAGCG
-GATAGAAGCGGGGAGGGCCAGTGATGAAGATAACTATTAGAGAGGGCATCCCAGTTGATT
-AGAAGCCCATCCCTAACTAACTACATCACTTCTAAAGGCCTGATTTCCAGTCCAGAACTA
-CTTTGAAAATGTTGTTTATGAACTCAAATTGTTAGTTGTAAAAATTATGAAATGAAAGAC
-TATTATGAGCATATATAAAATAAATTAGCCAGTAAATAACCTAAGATGATGAAGAAAAGA
-GCACTAAATAAAACCATAAATAAAAAGTTGGGAGCTTGGTAATGTCCAGAAAAAAATATA
-TATTTACTGTAACAAAGCAAAGGCCTTTTGTTAGTACATGAGACTCAGAATGCCTTAAGG
-AATGTGCTGGGCTCTAGAGGGCAGGGCAGGCACACAGCAGCTGGCACTGTTTGTCCAGAC
-TCCTGCCTGGACAAGTTGAATTAGAAAAATCCAAGCAAGAAACAGTGTCACTACTGGCTT
-CCCTGCTCTCTACTCATCTGCTCAGAGAGCTGCATGCTAGTTTGGCCTGTCCTGCACCCG
-TAGAGGACAATAGGTTATCTACATCCTTCACCACTAAGTGAGCCAatgggctgaactgtg
-ttcccctcaaaattcatatgctaaagccataacccacaatgtcactgtatttggaggtaa
-agcctttaaagaggtaattaaggttaaaagaggtcatatgagcaggatcctatccaacat
-aattggtatctttgcgagaagaggaaaagataccaaggatatgcatacacaaagaaaagg
-tcatgttagggcacagcaagaggtcagccatctgcaagccaaggaaggaggtctcaggag
-aaaccaaacctgccagcaccttgatcttggacttctcgtcttcaggactgagagaaaatg
-agtatctgctgtttaagccacacaggctgtggtattctgcgatagcagccctagactaat
-acaGGCCATAAAAAAGATAATATCCTTTCTTCCTTCTTTCTGAGCTCTGGGTAAATGGAG
-GTCAGATAAAgccaggtgtgatggcacatgcctgtattacccgctactcaggaggctgag
-acaggaggattgcttgagcccagtagttctaggctgtagtacactgtgattatacctgtg
-aatagccattgcactccagcctgggcaacatagtgagaccctgtcccctccccaaccaaa
-aaaaaaaaaagaaaGGAGGAGGGGGAGGAATGAGGTAGGAACAATAGGAACAACAGATGC
-tttttttttttttttttttttgagacagagttttgctcttttcacccaggctggagtgca
-atggcgtaatctcggctcactgcagcctccgcctcccaggttcaaacgattctcctgctt
-cagcctcccgagtagccaggattacaggcacccaccaccatgcctgactgatttttgtat
-ttttagtagagatggggtttcaccatgttggccaggctggtctcaaacacctgacatcag
-gtgatccacctgcctcagccttccaaagtgctgggattacaggcgcgagccaccgtgccc
-ggccAACAGATGCCTCTTAAAACACCCTGAGCCTCTGCCTTTATTCTAAATTTGTCAGTC
-ACAGGCCCGGGAGAAAGCTGAGCAACTTCAATAGGATTTTTAACTCAAATCTAAGACAGA
-AGTTTATATAAAGTTGTAGTCAGACTCGGCTGTGTTCAGAAAGTATATTTCTTCCATTGC
-TCAGCAATTATTTATTAGCATCTATTCTGGTCTCTGGGCAAACATTAAGGACTAAGAAAT
-GAATGAACTCTAATCATTTTCATTCTTTAAAAATTGTGCAGCCAAGAAAGAGAAATAAAT
-AGGCAAATGACCACATAACAGCAAGACATGTATAGTGAAAGTCATGCTCACTGCAATAAA
-AAGAACCTCTAGCTCTGAGTGAGGAAGGGGGAGTGGGTGCTGAGGTTGTGGGAAAGAGGA
-AGCGTGGGTAGAGTGAGGCAGACTGCTGTGGAGTGGAGCTGTGGGAGTGGCTTAGAGCTT
-GCAGGAGTAAGGGAATGAGGTGAGAGTGGAGGAACGGCAGAGTGCATATTCTCAGTTGCC
-AGAGATTCTGGGCAGCTTCTTTCGATCTTTGAGGATTTGGGCAGGAAAGGGTGAGAAAGG
-CCCATCTAACAATCCTGCGCTTCATAATCCCCTGAATCCTTGAAATTATTACTAAAGCTT
-AATGCTGGGAAAGATCTCTGATTCCCCTGAATCTGATTTGGCAAGCCAATCAATCATTTG
-TGTTAATTGGGAAAGAAATCAAATATTTCTGTGTGAATATACTCATCTCAAAACATTTTC
-AAGATAAAGTGTTTTACAAACTATGCTTCTGAGTCAATAGGATTCAGCTGTTTCGTTTTC
-ATTTCAGCAACTTAGAGGAAGTTTATCTTCAGAAAAAATTGCTATAAGAcacttcctata
-agccagccctgtgccaaattatttacatgaatcaccttctctagtctttaaacagcccta
-ttatgaatggacaattatctcaatttgacagatgatgaaactgaggcttgaagagattaa
-gttacctaagatcacacaATATGCCTCCAAAATTCGAAGAGGGCCGAAGGTTGTAATTGT
-GCAAGAAGAAGCAAATTTTCTATCTCTTTGAACCATAGACTGTGGATCCACTGCAACCTT
-GCTGAAATGGAAGTCTTTGTTGTTTCATGGGGGTTTTGCTGAATCTTCTGGCTTGTAGCA
-AGAAACTACTTTATCTTCACCAGATCTTATCAGCACATTGTATACCTGTGTGATACTCTG
-TGTGCTAATAAAATTATCAAGCTTCCTGTGGGTCCAAATTATGGCAAAAACGTAAGACAA
-AATGAtaatcccagcactttgggaggccgaggtgggtggaacacaaggtcaggagttcaa
-gaccagcctggccaacatggtgagacccccgtctctactaaaaatacaaaaattagctag
-gtgtggtggtgcgcacctgtagtcccagctactcaggaggttgaggcaggagaatcgctt
-gaacatgggaggcggaggttgcagtgagctgagatcacaccactgcactctagcctgggt
-gacagagctagactccatctcaaaagaaaaaaaaaaagaaaaaGCACACGACTAGTTATC
-ATAGATACTGTTGGCTACTGTTTCCTCTCTGTTGTGTGGGTCTGAGCAAAGAGAGGGAAT
-GGGATGCACCGTGCTTTCAGCTCTCTATAGTCTCTTCTGGATTTCAGTGTTTCAGCACAG
-CCCTAAAAACTACCACATGATTATGCCCCACGTAACAGTCAGATCACCTTGTCTCTAGAG
-AGACCACGCATCCATAACGAAGAACCTCTTATAACCATGGGTTCCACATCTTTACGGCTT
-AATCACTGATGCTCTCAGTGAACCTGAAAATTGATCCTGCTGAACAAGATCAATAAACAG
-AGTTTTGATTCAAAGGCAGCCCAATGAGTTAATAAGTGCTCCATGACAATGCCAAAGAGG
-ATTAAGGAAAGAATAGCAACCTGGAGGAAGATGTATAGAAAAGCAGAccaggtgcggtgg
-catgcgcctgtagtcccagctacccaggaggctgaggcaggtgaatcatttgaacctggg
-aggtggaagttacagtgagccgagatcacgccactgcactccagcctgggagacaaaacg
-agactctgtcaaaaacaacaacaaaaaaaaaCCAATATTAATAATGCAAATATTTGAGtt
-acagggcatttttaagagccagatacagtactgggaaccttgagtatattatctcattta
-gtccttaaaacaaccccatagactttatataaataatacaactgaaagtttaacttaagt
-tgctgaagttcacagataagcagtagaatcaggattggaacccatgtctcatcatatcag
-agaccctacgcttaagtgctatgctTCCTTGACTCTCACTGGCAACAGCTTTGGTGCATG
-TACCTAATGCCAGTTATATCATAAAGGATCTACATGGATAAGCTTATTTCATACTCTTAG
-AAATGGTTTGGAAGAggccaggcgtggcggctcacacctgtaatcccagcactttgggag
-gcctaggcaggcagatcacgaggtcaggagatcgagaccatcctggctaacatggtgaaa
-ccccatctctactaaaaatacaaaaaattagccaggcatggtggcatgcacctgtaatcc
-cagctactcaggaggctgaggcaggagaattgcttgaacctgagaagcagaggttgcagt
-gagccaagatcacgccactgcactccagcctgggtgacagagtgagacttcgtctcaaaa
-aaaaaaaaaaaaGTTTGGAAGAAGCTATAGAAGTCTCGATATTACTGGTGACCCAGTATA
-AGGAGGAGTGGTGAATATCCCTATTCTAAAGGATTTCCTAATCCTGAAGGATTTGGACAG
-CTCCTGCAATTGCCAAATGTAAGCGGCCTGAAAAGTTCACACTTAGATTATTGCCTTTAT
-TTTTGGCTCCCACACTGTAAAAGAAATTAGAATTAGAGCACAGATACAAAAGCTATGATA
-ATGAAAGTCCTAAAAAAAATTCCATTAAGAAACACACACATATAAGTCAGAAATTCATTG
-GGAATACCTTTGCATTTTAAGAGATGAGAAGGAAAGAGTTAACAGTAGTCCTGAAATCAA
-TTCTCTCCCTTTAACAGGAGATACTTCTGGCAGGAAAGAAAAAAAAAAAAAAAAAACTTG
-ACTCTGACTCTGTCAGATCTCCTTATAACATGCTAATAAGAGACCTTCTGGTAAATATGC
-TAATGATATTCACTAGCAGAGGGGTCTTTATGTAGCAGAATGCATCTGCTCAGTCCTCAA
-TTGCTTCTGGTAAACAAACTTAGAGTCTATGAATTTACAGGGCATGGCTCCTTGAAAAAT
-GTCATGTGTTTGTAATGCTAAGTAATTGCCAGAGAATAAAATGGAGATGTTTCTAGCTAA
-AATAGCCCCTTTGGGTAGCTGATGGGCACCCATGCATCACAGACATCACTTAGAGATCTT
-TCATGTTAAACCTATCCCATGGCTTATTTTCATGAGGCAAGAAAGGACCTGGGAAGTGGT
-GTGGACATCCCAGACTTTTGCATTTTTACCTGCTTCGTAATTACCCGTATCCTTGAAATT
-ATTACTAAAGCTTAATGCTGGGAAAGATCTCTGATTCCCCTGATTCTGATTTGGCAAGCC
-AATCAATCTTTTGTATTAATCAGGAAAGAAAGCCAATATTTCTATATGAATATACTCATC
-TCAAAACTTTTCAGAAAAGATATTTTCCATACATGGAAATAGCTTAATTAACtttttctg
-attatgaggttacttatagtcattttgaacactcagacaaaacagaaaactttatggaag
-ataaaataagaataacaaaatctttcccaaagagaaagaccattaaatttttgtatatat
-ccttccagagaatacacaaattatatgtatatatattttacatgtatacatatataacaa
-agactagcttatactacccacgctttcctgtcatttttcttttctacctaagatatcact
-gacagtcttttatataataaggatagtcctcaattatcatcattgtttaaatggaattct
-aatgtgttaagtgccataaattagcagattctctattgatagacatttagcttacttttc
-acattctcactatgagtaatgctAAGAAGGCAATATAGTTCTTGCACCTTCATGAACATA
-TTCTTTTATGCTATGTGCATTATTTTGGGTCAAAGGGCAAGCAGAGTTTCATTTAATTTT
-GTTTTAGACATGGGCTATATATTGACAAATTGCCCTCCCAGGAACAGTACACAGTTTTTC
-TTATGTTGCCTCACCCATGCCAGCAGTAGCTAGAAAATGCATTTCCAAAGACTGGTGCTA
-ATTTTCTGTGCATTCTGTGAGTGCTCAGTCAATTTAAGCAATAACCACTTAGAGTAACAA
-AATCTATTCACCCTAATAGCAGAGATTTCTACTTCATCCCTGGCTCACTGCCCAACTTTT
-GATCTCATCTAAGGCCAATAAATGTAGCTCCAGACAAGTGACACAGGTAGCTCTGTCCCC
-ATCCAATCTACCCAGCTACTTCTCTTAAGGCACGTTCTGATCCTTCAAGCATGAAGTTCT
-TGCCTCTGGCTTTTGTTTCTCTCTTGTTTCTGGCTTCAGTGACCTTGAGTACCCTGGAAT
-CTTCCATATTGAGAAAGAAATGATAGAGGGGAGGGGACATGGAAAAAAGAATTAAATATA
-TCTATTTTTAAAAAGAAAGAAAATTTTAGAATGGACATGTCTagaaggaggaggaaacag
-aggagggggacaggtataaaaactggacttctctgaatatactctgctttgaaggtttga
-ctttggaatcatctacatattttatctaatacaagaatatcgaaacttaaatggcaatcc
-caaaaatctaaaaggaatagaaatcaaattagcctctgtaataaatgggttgtataacca
-cacaaaggACTATTTGAAATGACTTTCAAAGAGTAATTTGAGAATACTTCCTTATTGGAA
-TATAACCTAAAAACAGAAGAATTGCAAACTGTTTTCAATGTTTTCAGTAATCATATTGAG
-ACTTTAATACATATATTGTGGGATAAAGGAAATGAATGTTGGTGTCACTGATAGAGATAA
-GAAATAAAAGTTCAGGTAAAAATTCTGTAAATCCTAAATTTGAATTGGAATTTTATATTT
-TATTTTTaaaatacctttttctacccccatccactgaaaagccctagaaatattggccaa
-cctagtagaaatgatttccctctcacccgggatattatctctaaatataatttaccaaag
-tcttattgaagaaattgctgtttctgagcttgaagcaactatacaaatgtacctggaaga
-ttttaccatactggaaaaaagcagcttgacaaagactactgaagtcatgtcaaaaaaaac
-aaagaagtcaacttgaaggggctttctcttggcaaagatgggaaaatgtgaaccttgata
-aaaaataattgcatgcattattcacagtaaccaagatatgtaatccacctaggtgtctat
-ggatggataaatatataaagaaaatgtgatatacacaatgaaatattattcagcctttaa
-aaagaaagaaatcctgccatttgtgacaacacagatgaacctggaggacattatgctaag
-tgaaataagccagacacaggcagacaaatactgaatgatctcacctatgtgtggaatctt
-aaaatgtcaaactcatggacacagagagtaggatggtggttaccaagggagttgagggaa
-atgaagaagtactagtcaaagggtacaaagtttccgttatgcagggtgaataagttcggg
-agcttactgcatagcacagtgactacagttaataatactgtgttgtatacttgaaatttg
-ctaagagtagatcttaaatattgttaccacagaaaaaaatggtgactatgagaggtgatg
-aatatgttaattagcttgatagtggtaatcatgtcacaatgtatatgtctatcaaaacat
-cacattgtacgtcttaaatatgtacaattattatttgtcaattatacctcaataaagctg
-gaaacataaaaataaaataactacaattaattgaaacatatcaaacatgtccaaaactga
-taaagaaaggtaaagaatttggcctggcacagcggctcacacctgcaatctcagcagttt
-gggatgccaaggcaggcggatcacctgaggtcaggagtttgagaccagcctggccaatat
-agcaaaaccccatctctactaaaaatacaaaaattagctaggcgtggtagcgggcatctg
-tagttccagctactactcaggaggctgagatagagaatcacttgaacccagaggtggagg
-ttgcagtgagccgagatcacgccactatactccagcctgggtgacaaagtgagactctgt
-ctcaaaaaaaaaaaaaaaagaaagaaagaaaagtgaagaatttatcctggcttttctgta
-aaaactgcacctcagaagaaccaaattattgataaggaattttgctctttagaaatattt
-ccagctaataaatgaaggaataatagcattgagacaaatcgccattttgtaatctcaggt
-gaatttacggatctaggcaatgatcattaatggctgagaaaatcacaacaaaaagaacaa
-ttagacatttgtgcctcctgatagaagtatacaatatcaccttcaaagctattttgccaa
-aaaagaaaaaaaaaatcaacccaaatctaatcaaggctcccactctaactcccaagctct
-aggatataccaaggacaaaggaagatcatgaaataccaccatggggattcaatcagcaaa
-ttcTGAAATGCAACATTATCCTTCACCCTGCTTGGCCTAAAAGTACAAAATAACACGAGG
-AAAAATTAGTTTCCAGAGCCTGTTATATTTTGAAAAATCATCAGAAAACTGAGAATCAAG
-GATAGAATTTCTAGAAAGTTCCTTCCCCTAAAGCTTTCACACTTGCCTCAGTGTATATAT
-GTGGCTATACCACTGACAGGCCGCCAGTCATTAAATTCAAGCTCCAAGAGACAAACTCTT
-GAAAAAAAGGCAGCCTAGGAGAAAGCAACATGATTTTTCACATATTTTAACTTGGTTTTT
-CTCATAAAATGGTTTCTGAATGTTTCTTAGCTTTCAATGGGCAATAAATAACTTTTAGGG
-AAATAGATGTGAGCCAATCTGAGGAAGTATTTGAGATGAAGAGAAGGCTTTGCTGTCTAT
-GAGGAGTGCATTAGAATAGAATCGCTCCAGGAAAAGGTCACCTGTGTTGATTGCCTTTAT
-GAGGTGACATTTAAATAAAAGTACTCGTTCAGTTTTCATTGAAAAACATTAAAAGACATC
-TCCAAAAATTTTTTTGGGAATGTGAGAAACTCTGCTGCACAAATGATCATGTTTTGTCAA
-ATAAGATGAAAAGAAAAAAAACACACACAAAAATgaaaaaacagatggaggggtaacata
-aattaagaaactcagaagacacatctacaaattacaatttatggatcatatttgaatgct
-gattctaaaaatttgaaaaaatatgcatttgagaaaatgaatgctgacttcatagtttat
-aatatgaagTCatattataaaatataataagaatgaaatattaataatttatCAGGTATG
-ATAATGGTTTTAAGGATGTGttttttgtttgtttgttttttgagacagagtctcattctg
-ttgcccaggctagactgcagtggcgcgatctcggctcactgcaacctctgcctcttgggt
-tcaagcgattctcatgcctcagcctctcgagtagctgggattacaggcatgcaccaccat
-acctggctgatttttgtatttttttattagtagagatgggcttttgccatgttggccagg
-ctggtctggaacttctggcctcagttgatccacctgcctcggcctcccaaagtgctagga
-ttataggcatgagccaccacgcccagccTAAGAATGTGTTTTTTaactgtatatatttaa
-ggtgtgcaacatgatgtgtgtatgtatatatatatatatatatatatatatatagagaga
-gagagagagagagagagagagaaataatttctgtggtcatgcaaattaacatatccatca
-tctcacagctacaatttttgtgtatgtgtggcaagagcacctaaaatctactcttagcaa
-aaatcctgaatacaatacgatattattaactattgtacattagacctctagacttgtttc
-tcttacatatctgcaactttgtgtcctttgacctacatttccccatttcctacccctcca
-ccacaccccagtaataaccactttattctctatctctgcattcaactttgttttttctag
-tttttaaactctgcatataagtgagatcatgcagaatttctctttctgtgtctggtttat
-ttcacttagtacaatgtcctccagattcactcacgttgccccatatggcagaatctcctt
-cttttttaaggctgaaaaatattccattgtatatataccatagtttctttgcccatttat
-ccttcaatgaatacttcagttgtttccacacctcggctattgtgaataatgctacaatga
-acgtaggagtacagatattttatgaggtgatgatttcacttcctctaggtatatacccag
-aggaggaattgctgggtcctatggtagtgctatttttaatttatttaggaaccttcatac
-tgttttccttaatggctccactaatctacattcccaccaaaagagtatacaggttccttA
-AGGGTGTATTTTTCAAAAGGGTCGCCGagagatacctattaaaatatatacaagagaaat
-cttataatatcagggatttgcttcaaaggaggggaaatccaagaaggggaaagtaaattg
-ggttatataagaaacaagattggccatgagttaatgttgaatttggatgatgaatacatg
-ggggctcattatattattgcttgacttttacacacatttaaattgttcAATAGTAtgtat
-tagtccattctcacactatataaagacatacctgaaattgggtactttataaaggaaaga
-ggtttaattgtctcacagttctgcagggctgtagaggcctcaggaaacttacaatcatgg
-tggaaggggaagcaaacacatccttcttcacatggtggcagcaagaaaaaatgcagcaca
-aaagggggaaaagccccttataaaaccatcagatcttgtgagaactcacacactatcacg
-agaacaggatggggaaaccactccgtgattcaattatctccacctggtccctcccacaaa
-acgtggggattatgggaactacaattcaagatgagatttcggtggtgacgcagcaaaatc
-atatcaAGTAATAAGCTGAAAATACCCTTTATATAAATAATGATAACACTGCATGGAAAT
-AAAGAAAAATCTTTAGGATGCAGCCTAACTGGTATTTACGATTTTTTAAACCCTGGATTA
-AACGCATCTTTTTATAAATGGAAATAATTAATGAAGAACTGAGATGGAATCAAAATAGCA
-AATCATGcacacacacacacacacacaAATTCTGTTTAGAGAACTAAAACAATATGTCAG
-AAACGTTGAAGAGTTCATGtgcatcagttagttcctgccatgtaacaaaccacaccaaaa
-tttagtagcttaaagcaaaatcatttatgtatgtcataattctatgagttacaaattgag
-gctgggctcagctgagaggttcttctcttcacttttgggctcatgcatgtgaggattaat
-gggagctggcaggtctagggtggactccactggaatagtctgtctctgttccaaaaggtt
-agctgaagcttgttttcctggcaacagagcagagttctgagagagcgtgagtatgcaagg
-cctcttgaggcccaagcctaggttcagaacaggaatcacttctgatatactctattggcc
-aaagttagtcccaagtccagatccagGCTTGCTCAAAACAGTGGCCCATCTCTCTGGCCC
-CAATCTCCATAGTTCTGGTAAACaaaaaaaaaagaaaaagaaaaagaaaaagaaagaaag
-gaaggaaggaaggaaggaaggaaggaaggaaggaaggaaggaaggaaggCTGAGATAACA
-TTGGGTTTTTCCAATGATAAAACCTAGAATTAATGAAGAGCTAAAATTAGTAAATTTTCA
-AAAATAcaaaacacataaaatgtaaaactgctgaaaagataagaagaaatgaataaatct
-ataattaagacggaaatctttaataggccataggcctcaggagtcctcaaagtaaacaaa
-aaatgcacaagcatgcttatcttaaaggattaaataggtatttttaaaatattgatttaa
-tacacatgtagaactattaagtaacaaaatagatacatacaattttaaagcatagctaaa
-aaatggctaaaaattgattattataatacatgtgtatttcaaatattccaaaagaagtca
-gtccactcatataaactaaccacaatataacaacattagaacttccaaaaaaggtatgtg
-tatatgaggtggggttttttcaaccttctaaataattgtgggttaaaaaaacataaaaac
-tacaagattttggaaatgaatcaaaatgagagttctacatataaaatcttcatgaaaatg
-gttaaagtggaaattagatgaaagatttaaaggcatttactagaaaacaagaaaTTTTAC
-ATTTTTAAATTAAAAGCTAATTAAACTCAAAGTTAAATTTAGTTAATTAAACTCAAAAAG
-CTAACAGACCTGAACTTGCTCAGCAGCCTTACCTAAGAATCATCTATTTTACCGATCTTT
-TCAAAGAAATGTTTTGTTTTTATTGATCAATGCCTCCatatttttgaaatttttatagtt
-ttcatttattatattgacaaatttttttaaattattaatGTGGCGCTGGCAATACACTTG
-TGAAGCATTTAGTTATTTATCCTTAAAATATATTAGTACTTggcggagtgcagtggctca
-cgcctgtaatcccagcactttgggaggctgaggtgggcaggtcacaaggtcaagagatgg
-agaccatcctggccaacatggcgaaaccccgcctctactaaaaatacaaaaaatagctgg
-gcgtggtagtacacacctataatcccagctactcaggaggctgaagcaggagaatcactt
-gaacctgggaggcggaggttgtagtgagccaagattgggccactgcactccagcctggat
-gacagagcaagaccctgtctcaaaaaaaaaaaaaaaTTAATCCATGTGCACAAAGAGGCA
-TAATCAGAAATAATCATTTCCAATTTTggctgggcgcagtggctcatgcctgtaatccca
-gcaatttgggaggctgaggcgggtgaatcacctgaggtcaggagttcgagaccagcctgg
-ccaacatggtgaaaccccgtctctacttaaaataccaaaactagcctggagtggtggtag
-gcacctgtaatcccagctactcggggggctaaggcaggagaattgcttgaacctgggagg
-tggaggttgcagtgagccgagatggtgctatcacactccagcctggggaacaagagtgag
-atgtcatctcaaaaaaaaaaaaaTCATTTTTATTTTGTTTTTAAAAAGAAAAAATGggcc
-gggcgcggtggctcatgcctgtaatcccagcactttgggaggccaaggcgggtggattac
-ctgaggtcaggagttcaagaccagcctggccaacatggtgaaaccacgcctctactaaaa
-atacaaaaattagccagaagtagtggcacgtgtctgtaatcccagctactcaggaggctg
-aagcaggagaatcgcttgaacctgggaagcagagtttccagtgagccgagattatgccat
-tgcactccagcctgggtgacagagcaagactccatctcataaaaaaaaaaaaaggaaaaa
-TTGGAAAAATAAAGTACATGCAGTTTATTTGACAGAGGGATGTTTAACTGAACCACACTA
-CATCCATATATATGAAGTTATGCAGCAATAGAAAAGAATAATGGACATTTATATTTTTAG
-ATATAAAAAGAGCTGTTGAACCTATCATTGAAATTTTAAAAGGAAGCTGAAGAACAAGTA
-CAGTGTAATAAATTATTTGTTTTTtacaatttaattatagagtaaatgtgatctttcttg
-gtatatagttctatagattttaataaatatttggattcatgtaaccaccaccacaaatag
-gacacacaacagtttcatcaccctaagaaaagttcccggatgctcacccctctgtagcca
-aaccgtcaccccacccataatccctggcaaccactgatctattttccatcactataattt
-tgccttttccaagaatgtgacataaatggaatcatgtagtatttaacgttttgagaccag
-cttctctcagcatgtgatatggtatgtacctgtgtctccacctaaatctcacgttgaatt
-gtaatccccgatgttggaggtagagcctagtgagaggcgattggatcatggggacagatt
-tctcatgaatggttcggtatcatccccttggtactgtcctaaggatagtgagtgagttct
-gcagagacctggtttaagcgtggagcacctccccactctcttgctcctgctctggctatg
-ccatgtgcctgctcacccttaaccttccaccatgattgtaagtttcccgaagcctccccg
-gaagccaagcagatgccagcatcatgcttcctatatagcctgctgaacagtgagacaact
-aaacctcttttttttttagcaaatgacccagtcccaggtatatctctataacaatgtgag
-aacgacctagtaacagcatgtctttgagattcatccaagtttctaccagtatcaataact
-cattcctttttactgctgagtatgattgtattctatggatgtggtacatctgtttatcca
-ttcattcattgaagggcatttgggttgttttcagcttttggctatcacaaataaagtttc
-taagatggccaggcatgatggctcacgtctctaaccccaacactttgggaggctgagatg
-ggcgttgaggtcaagagtttgggaccagcctggccaacatggtgaaaccctgtctctact
-aaaaatacaaaaattagctaggtgtggtggcacacacctgtaatcccagctactcaggag
-gctgaggcaggagaatcacttgaacctgggaggtggaggttgcagtgagccaagattaca
-ccactgcactccagcctaggcaatagagagagactctgtctcaaaaacaaataaataaat
-aaataaagttgatatgagcagtttttacagatgtttgtgtgaccgtaagttttcgtttca
-ctagggtaaataccaggttcaggattgctaggtcctgaggtacgtgtatgtttacctttc
-aaataaactgacaaaccattttctagagtgactgcaatttccagttgttctgcaacctca
-ccagcaattggtgttgtcagaaactttttattttcataattcttatcaatgtgCACAATT
-GTTTTTAAAATTCACAGAATTAAAGGAAAATATATTGTGCACTATTTGTGTAATTaaagc
-aaaacacaaacacataaacggaagacaaaaataagaaactaattcaagaaactaaagaaa
-gaaaaacaaaaTTAACTTTTTAAAATTAGAATAAAGGCATATATATGTAATAGGGATAGT
-TTGAAACACTCCCAAACATCTGCTCTGAGCCAACAACAATCGGATAGCgtgagggcagat
-acaaattaaatatgagacttaactctccccgttaaaaataaggaaagagacttacccaac
-acccctcccccccgcccttctctttctctgtctctttgaaatgtatgtaaatctttttaa
-aatgtaaataggcctctagccagttttacaacccaggaatatctttgtcaaatacctagg
-agccatctctttgaaatgtaagcatccagaaaggtagtgctcctatctctgaatttatat
-gagtgggtaggtctctaactttggcaagttccttgcttcaagttgcaaagccacttcctg
-tcacaaggatgtgagaattttgtttttcctttggttaaagccaaccagcgaacacagatg
-gccactccaattatcaggtgaatctaggatgaactatgtgtatgtcaaatggtacttcta
-agttctcctatttgagaaccagttattgtttgtcttgagagcatatctgtaatgggtttt
-atcttcttcaggatataaacaagtaggatttctttctgtctttgcaaactctttgtgaat
-tgcctgtgatgtgtctcacattctggttcaatgcttattcaatggcaattgttttctttc
-tcttctacctttgtggagaggttttctaggttgagagaagattttgtttttaattatatt
-tcccccacaATAGCAAACACATCCCCAACcacatacacacacacacacacacacacacac
-acacacacacacaacaggtaattagacaggcctgagcagggcaggagagggctcttcccc
-cacccactacgaatgtcagtgatggttccaaaattatcacattgcctctctaaaagtgat
-aaattggGCAgcgcagtggctcatgcctgtaatcccagcactttgggaggctgaggtgga
-cagatcacttgaggtctggagttcaaaaccagcctggccaacatggtgaaaccccatctc
-tactaaaaatacaaaaaatagctgagcatggtagtggacacctgtaatcccagctactca
-ggaggctgaggcaggagaatcgcttgaacccagaaggttcaggtttcagcgagccaacat
-tgccccactgcactccagcctgggcaacagagtgagactccatctcaaaataaataaata
-aataaaataagtgagaacatatggtacttatctttctgtgtctgacttgcttcacttaag
-ataatggcctccagttatatccatgttgctgcaaaagacatgatttttgtggagggattg
-tattccattgtatatatagaccataatttctttatccaatcatctgttgatggacactca
-gttgattccatacctttgccatcatgaatcatgttgtaataaacatacaagtgcaggtat
-cttttgatgtgattatttcttttcctttgggtagatacctagtagtgggattgctggatc
-aaaAtggcaggtgcctgtaatcccagctactccagagactgaggcaggggaatcgcttga
-aactgggaggtggaggtttcagtgagccaagatcatcccactgcactccagcctgggtga
-cagagcaagactctgtctcaagaaaaaaaaaaaaaTgctgtgtgattacccttatatggg
-tttcctggatgagccatttgttaaattaatttttgttggaaatttccccgcagagctgtt
-gcacattgtggggggttaatccccagacactcccatgaggccccagtcacccaggggtgc
-ctttggctgggaggagcaagtgccctttctcctaggagctgaaaaactcagtctcttatt
-tatctatgaaaacaacagttcagtttctcacataaatgtgtacagataaaccgaatttag
-acagattttaggagaaaaagcaattgagaattccttttagaatgcatctcccaactagaa
-ttaggatccttaaacaaccacttcttaggagaaaaccagctcagaataaatcaaggacca
-tcaaccaaagggaggtctggggctcaggaggacttaccagttccaccagaggagaagctc
-gaagcttcaatgggcccctgctggcaccttagctctggttttgggcaactcctttagggt
-cctgagtcttccctgaggcctcacgtgtttgggcaccaaattattgttgacgaaaagagc
-caaactctgtaaaatattttaagagatttattctgagccaaatatgagtgaccatggccc
-gtgacacagccctcaggaagtcctgagaacatgtgcccaaggtggtcggggtgcagcttg
-gttttgtgtattttaggaaggcatgaaacatcaatcaaatacatttaagaaacacactgg
-ttacttggaagtccccgcggggctgggggcgggtatcaatggaaaggaatgttcaggtta
-acataaaggattgtggagaccaagttttattgtgaaaagaaatctctcagatagcagact
-tcagagagagagcagattgtaaaatgtttcttatcagacctaaaagggtgcctggctctt
-agttgattatctcctggatctggaaaggaaggggaaaaagggggtgggtgggtgtggggg
-tatagaatgtggatctttttccaccaaagattttgtaaggcaatttcaaagtatggcaag
-gcaatatattttgtgataaaacattgtgattttttttttttttttgtgagacagagtctc
-actaggtcccccaggctggagtgcagtggcgccatctcagctcactgcaaccttcgcctc
-ccgggttcacgccattcttctgcctcagcctcccgagtagctgggactacaggcgcccgc
-caccacgcccggctaactttttgtatttttactagagacagggttttactgtgttagcca
-ggatggtctcgatctcctgacctcatggtccgcccgcctcagcctcccaaagtgctggga
-ttacaggcgtgagccactgcacctggccaaaacattgtgattttcttccttgttatgcca
-gagtcagattgaaaagtaagtcacaatatacagggtcaaataaaacccatcttgtaagaa
-tttatggtttgtagggcataactccctagaccccttaggtaggaatttgggcaagataaa
-aaatcagagtttagtcctcaattccttaagataaatctctttctctatatatatctctct
-ctatctcatatctccatcctattctctggaaaactctgactaatgcaAGAAATTAAAGAG
-ACAAAACACATAATACAATATCTtaaacaacaaaatactattcagccataaaaaagaatg
-aaatcctgtcattcatggcaacatggatgagctagagcagtggtccccaacctttttggc
-accaggcactggtatagtggaagacaatttttccatggtcggaagggggtgggaggatgg
-ttttgggaagaaactgttccatctcagaccatcaggcagtagttagattctcataaggag
-tgtgcaacctggatcccttgcatgcgcagttcataatagggtttgtgcttccatgagaat
-ctaatgcttctgcacatctgacaggagatggagctccggggtaatgctcacctgccactc
-acctcttgctgtgctcccagttcctaacaggccatggtccccataccaatctatagccca
-ggggttggggacccctggcctagaggacattatgttaagtgaaataagtcaggcacagaa
-acataaatgctgcacattctcacttatatgtgggaactaaaaaagttgagcttacaggcc
-cggctcggtggctcacacctgtaatcccaacattttgagaggccaaggcgggtggatcac
-ctgaggccaggagtttgagaccagcctggccaacatggtgaaatcccatctctactaaaa
-atacaaaaattagccgggtgtggtggcgggtgcctgtaatcccagctgctcaggaggctg
-aggcaggagaatcgcttgaacctgggagacagagttgcagtgcaccaagattgcaccact
-gcactccagcctgggagacagggtgagactccatctcaaaaaaaaaaaaaaaagttgagc
-tttcagaagtagagagtaaaataatgtagcaggtagaagaggatacggagaggttggttt
-taacaaatacaaaatcacagctagataggaggaataagttctagggttccatagctctgt
-agggtgactgtagccaacaatcacttattgcatattttcaaatagctagaagagaggatt
-ttgaatgttctcgcacaaagaaatgagaaatgtttgaggtaccctgatttgatcattaca
-cattgtgtacacgtattgaaatatcactctgtatcccataaatatgtataattattatgt
-caattaaaaataaaattttaatttaaaaatacattttaaaaatCAATACAATATCTGACC
-TGACACTGCAATCTCAACTCAAGGAGGAAATGAAtgctgtaaaaggcattattaggtcaa
-ttggcaaattggaatacagatatatatatatatatatatatatatatggatagatgatag
-actagataaaagtggtgtccatttaaatttatggagttagtaactatactgtcatacagg
-agaatatccctattcttaggaaatacacactgaattatttgggagtaaaaggccacgata
-atataaggccatgaacatataacttatgctcaatagattcaaagaagaaaatatacaaat
-atagagagactaatatagATATATATATATCCATAGATAGAGAGAGGTGGGGCAAATGCT
-AAAGCAAGAAAGATAAAATGTCAACAATAGGCAAATCTCAGGGGAGCTGGGGAAAAGGTA
-TCGTACAATTTGTATTTTGCAGCCGGTATGttttaaattatttttaaatgaaaagatttt
-ttaatGGGTTGAGGAAATTGGAGTGACTTATATTTATGACATCCAATGGACTGTGCATGC
-TGTATGGAAACAAGGAGAAAATAAATGTCATCATTGCTTAACAAGTGAAGGGTAAAAAGA
-CAATTAACTCACTGAAGACTACGCACAGAAACACAAAAGCCTTTGCTTCTGTGGTTATAG
-GTTTACCAAAGGCACAAAGGGATTTGTATTTATTTTAGGATTATAATTTACATCACTTAG
-TTGGAAAAATTACAGATTTTAAGATATTTTTACAAATCTGAGTGACTGTAAAGACTGCTA
-AAGTCTTGGGACATATTCTTACCAAGTCCCAGATCttttgttttgttttgttttgtGCCT
-GAAATCAAACCAGGTTTTTTAGACCAGGAAAACGTGAGAAGCTAGAGCTGCTCTACTCAG
-TTGGCCCAAACCAGGACTCCGGAGATTATTCCCTTATACAGCAGGCACCACATTAGAGAA
-AGGATTCTGGAAAAGTGAGCTGGAACAGAAAAGAACTGTCTCAATGGGAAACAGACTCCA
-AAGGACGCTATTGGGGGGAGGAAAACACAAAATATTTCTTGAGAAGAATGTGGAAATGGC
-AAAGTCTCTAGCCTCCAGAAACCTTAAACTCTAGGGAAAGAAAGCAAAAATTTAGAGGTA
-AGAGTGTTCATATTAAAATTCAAACAATAAGTAGTTTTTCTATAAACTCTCTTTTTTTCT
-AATCATGAAAGTACACATAATCATTCTCTCCAAACTCAGACATTTtagacagatagatag
-atagatgacagatagatagatagatagatagatagatagatagatagatagataCacatg
-catacatactacatacatatatacctacataTGTTGGCACATAGATGTTCCTTTACCACA
-GATTAAGTTATTCTAGATGCATATCTTGTAGCCTACATTTTTATACATTTTcatcatttt
-aataactgcatactgctctattatattctgtattttctatattagattagatccatgttt
-tatcaccatttaggtagcttttggttttctgttactgtaatgttgagataaacgtcttta
-tgtacttgttcaattattcccattaaacaaaagcccaaggtacaaagtttctgagtaaaa
-aaataggcacattttaaggcttctgatatatattgccaaattgtgctacaaaagaaaaac
-tgtaccaattaacactcccagcaacaacgccaagagaatgctagtttccccacatctcac
-caacactgtctaGAACGCATAGTTTTAGAGATGAACGCTGGGAACCGACGCACTGTTTGC
-TCTACCTCTCCCCCTCCTAACAGTCTAGAACACAGGCGCTCAATAAATCAATCCAGGCTC
-CAGTCCAGTAGACATTCTGATCTAATCTGACTGCTCTGGGTAACAGAAAAGTCTCCCTTG
-GTTCACTGCCCAGTATCCTGGCATCATGTGGATCCTATAAAGGCAGTAGCTCCAAGCACA
-TTACAGAGGGACCCAACTCCATTAAACCACCACCAGCTCCCCAAGCCACCCCTTCAGCCA
-TGAAGTTCCTGCTCCTGGTCTTGGCAGCCCTCGGATTCCTGACCCAGGTGATCCCAGGTA
-AACTGGATAAATAGGAGGAAAGGAAAACTGGGAACGAGGAACACTAGCATATCTGGTTGC
-TCTGGTGATAGATGAGCCAGGTTGGGTGGAGGCAGGGCTCACCCCACTGAGTTCCAGTCT
-AAGGTAGAGATCTCCTAACAACCACCACTAGCCTTGATATCCCACACCCAAACACCACCC
-TATATAACCTTTACAAAAATTTGTTTTCTATTCTAAAATGATAGTCACCCTCAACCTAAA
-CCAAAATATCTTCTTTCACTTTATGTGAGCTCCTTATATCTAACCTCCTAAGACACACTG
-AAGGCTTCTGTCATCACCATGTGCATCCATTGAGATCAGCCCGGGTTGGAGCTCAAAGGA
-GATTTTGAGCCTAGAAGGAAGAGATTGAGGTTCCCATCCCTATGCTCAACAGACAGCTGG
-CAGGTGGGGGATGGAAGCAGACCTCTTAGAGGGCTAGTTCCCACAGGATGGTAAGCAATG
-GGTTCAGCTCAAACCCTGGGGCTAGGAGATAATGCAGGGTCagaaagagagagagacaga
-cacacagagagcagggagagagagagaTCAGAGGAGGGCCAGGCAACGGATGTGAAGAAA
-GCCAAAGAGGCTTGAGGGTGCTCCGAAGAGGCCCCTGCTGTGAGCCAATGGCAGACACAG
-AGCACTGAGGCAAACAGATTTCAGCAGATGGTGAAATGGTGCACAGCACTGGGTGAATGC
-AAAAATGCCCTGTCACTGGCAACCGTTATTTTCTTTTTAATGATTTTGGAGAAAGATTTG
-ACTCCTCCCACTTTGCCCCAGGTTGACTCATATTTACAGTTTTAGAGTCTATGAAAACAA
-GTAAGGTAGAAACACCTTAAAAGGGAGCCTGTGGGGTGAGTGAGACTAGCCCCATTTCTC
-CCTTTTGAGTATCCAAGCTCCTCCCTGACCGTGAAGACCAGGCTCCCCACCCCTGTTTTT
-ACCCATACATCCTATTCTGTAGTATCAAATTTAGCAAAAAGCTTCAAAGATGCAGATACT
-GGCAAAGAAGAAGAGCTCGTCAGACAGAGTTCCCCAAGGCCATCAATCCAGGAAGATTTT
-TGTCTCCTCATCACTGGCTTTCCCAAGTCTCATTTGCACAACATCCTAAGGATACACCTC
-AGAACAAAAAGCCAAACACTCCCATCTGGCGCTGACGCTTTAGTAGCCCTGTGCTGCTTC
-TAACCATGACTTCTCTGTCTTGTCCTCTCCCATACAGCCAGTGCAGGTGGGTCAAAATGT
-GTGAGTAACACCCCAGGATACTGCAGGACATGTTGCCACTGGGGGGAGACAGCATTGTTC
-ATGTGCAACGCTTCCAGAAAATGCTGCATCAGCTACTCCTTCCTGCCGAAGCCTGACCTA
-CCACAGCTCATCGGTAACCACTGGCAATCAAGGAGAAGAAACACACAAAGGAAAGACAAG
-AAGCAACAAACGACCGTAACATCATAATAACCACTGCTATCGCCTCCACCAACTCAGAGA
-AATATCATTTCCACAGTTCCAATTCCTCCTACATTGCTGAGTACTAGCCAAGGCTCCTCT
-TTATGGGGCAGATATCTATAGCCAACCCCAAAACTTCTGTCTTCTATCATTCTGTCATTC
-ATCTAGTAACTAATTTGGAGTTTGTATCTATCTTACGAGAACAATCATCATGCAGATTCG
-TCCACAGGGGATCtgtcagtttgggtcctccaaatgaaaaatgtcaagacagaattggac
-atgcaaaagattgactgggagaacacacctctgatggacaaaggtgagacagagcagcca
-caggcagggagagccttcagactgcaacgctggcctgatacgtgtcaaaggagagaggga
-tagaggaggattgaatagaaggagactaagactgcagctctaagaaagtctcagccaaac
-agatggggaggcccaaagcaaggcttgcccctcagaggagctcacgcagggcaggaatag
-ccaggttctcatatcccaggggttcagactttggctgagaacagcccctggagaacatgg
-ggtgactgctaccataggtctggaagtatgaggctgtccaccaactatccccttgaagca
-agttctcttgaaaggaaatctaaacagtgcacccccatggctgccacGGAGTATAAGGAG
-GGAGAGAAAGGAGCTGAAAGTCTAGGTTTGGCCAGCTAGGTAGACTGACTTGTGAGGTAT
-TTATTTATTCATTTGAGTAACAAAGCAGACAGAATACATAGCCACCATTGGTAGTACACC
-CCAAAAGCAAGGATGGCATGATGCTGGTGACTCAAACGTGCCTACTCATGGTGTCAAATT
-GGCATAATCCTCTTGGGAAGCTGTGTGGAAATAAGCACAGAGAAGCAGAACTCTAATTGC
-TTAATCCACTAAACATTACTTCTGGGAATTGGCTCATCATAAATTATCCAAGAGAAGCAC
-AAAGTTATGGGCACAAAGGTTTTCCATATAATATTATTTAAAATGCTGAGAAAATGAAAA
-AATCTAAATGGTGAAATATATACTAATGCCATCTATAAATACAAACAAATAGAATGTTTA
-TAGAATAATGGAACATAATAACATTATTCAAAATTGCATTTATGCTATAGTTGTCAAAAT
-TGTCTCCTTATATGATACAAAACTCATGAAAATTATGACTTTTTTGTTTGGTTGGAAAGC
-AGAATTATGCATAAATTTCCTCTTACAGTTCGATGCCCATTAGTTTTATATAACATTTAT
-TTGACACGTACTGACTTCTATCTGAGAAGAACAAACCAAAACACTCAGGCCTAAATAATT
-AAAAACGGTCCTAAAAACTAGCAAAccagataagaaaagatgttaatgcccattccctaa
-cttatgtcttagaccaaaattaattctagatggttttaaaatgacagtgtaaaagtaaag
-tattaaaagattgtgtggtcaaatattcaatttaagagcaaggaaattcttataaatata
-acaatagaggcagaactcatgtaagaataaattgattaggtggtattaaatattaagttc
-ttatgtatgtcaaaagatatcattttgaaattcatccatcttattgggtattgcaggagt
-tcattcctttttgtttataaatactcttccgtcatatgaatagtattcatttgtatactg
-gtttgttgatggacatttgggttgttcccagtttatggctattacaaataaagcttctat
-gaacatttatgtacaaatctttgtatggatgtatgctttcatttccctaaggtaaatacc
-taggagtagaacgtctgaatcatatggtaggtgaatgtttagcttttttgtttgtttgtt
-tgtttgtttgtttgtttgtttgttttttgagatagagtttcgctcttgttgcccgggctg
-gagtgcaatggtgcgatctcagctcactgcaacctccgcctcctgggttcaagcaattgt
-ccttcctcggcctcctgagtagctgggattacaggcacgcaccaccccccgaccccggct
-aatttttgtatttttagtagagacggggtttctccatgttggtcaggctggcctcgaact
-cctgacctcaggtgatccgcccgccttggcctcccaaaatgctgagattacaggcatgag
-aatgtttagcttttaaaggaaatacaaaattgttttccaaaatggttgtgccagtggatg
-tgcccatcagcaggatgtgaaagttccagccgttcctcatcctcaccagcatgtgatatg
-gtcagtcttttgcattttcatcattctaatagatgtgtagtggtatttcattatgctttc
-aatttgcatttttttaataactagttatcaaaaaagtatattctgtatgattctatttac
-ataaagttcttTAAATTCTTTTAAAATTGCATAcaattatttaaaatagaaagtaagaat
-ctaacgacagaaagcagatcactggttgtcaggggatgtgaaaggtgcatggagagggct
-gaaagaatgtaaagggacctgaggacactttgaggggtgatcagtcaagacacattcata
-ggccgggcgcggtggctcatgcctgtaatcccagcactttgggaggccgaggcaggtgga
-tcacgaggtcaggagatcaagaccatcctggctaacacggtgaaaccccgtctctactaa
-atatgcaaaaaattagccgggtgtggtggtgggcgcctgtattcctagctactcgggagg
-ctgaggcaggagaatggcgtgaacccaggaggtggagcttgcagtgagccaagatcgcgc
-cactgcactccagcctgggcgacagggcgagactgtctcaaaaaaaaaaaaaaaaaaaga
-tacattcataatcttgattgaggtaatggcttaatgggggtgtacataagtcaaaaaatt
-acaaaatggtaaactttaaatgtgttcagtttattgtatgtcaatttaaacttccaaaaa
-aGCtattattttaataaaataaataaatCTCACAGTGAAACAGAAATATTAAAGTATCAT
-AAATAGTTTAAAGACGTATGACAAACTGAGACATGTGATGAAGTATCGATACCAATAAAA
-TATAACAAGTTAACATGAAGcaacagggaaaacatgaaacccctagcagaaaatgaaaaa
-gtaacatgaactagctttttaactctataaacggcctgaaaaatgggaaaaaatctgtgt
-gactgtgatcaaataaatgcagattaaaactacaatgagatcttgttttttacctatcgg
-attgtcagagaattaacaaacccaagtctgacaaggcataaatagaaataagtctcatca
-tcagatgctccggtttataactaaatatgtccattctggaagacatttatctatacagct
-ttcaaaacccttaaaaatgttcatgttctgtggctcagagactctacttttagggatata
-ttctggggaaataattagagttcatatcaaaaagattaatgtatatacagcacaatcata
-gcagcatagtttaaagtagtgaagaggcagtggggtaagatggctgaacagaagcctcca
-ctgatcatcctccccactagaacaccaaatttgacaactatctacacaaaaaagcacctt
-cataagaataaaaaatgaggtgagtgatcacagtacctagctttaacttcatatcaccta
-aagaggcactgagaaggtaggaaagacagtcctgaattgctgacaccgcctctccccagt
-cctcaggcagcagctgtgtggtgtgcagagacaatatgtgtacttgcaggagggagagca
-cagtgattgtgggatttcacattggaactcagtgctgctagcaccaggcagaacccagca
-ggtgcctaaaagggatcatttagaccatccctagccagggggacatcacccatcccagag
-gtcggaactccagtttccgcaagcctcaccaccgtgggctaaagagctctggggtcctaa
-ataaacttgaaaggccgtataggccacaagaactgcaattcctaggcaactgctagtgct
-gtgctgggctcagaggcagtagatttagggaccactcaacctagtgagacaccagctggg
-gtgtgtgtgtgtgtgtgtgtgtgtgcgtgtgtgtgtgtgtgtgtgattctcgtgcctcag
-cctcccaagtagctggtgatggcagtggcagcccatctggagtggacgctgccatcaagc
-cagctgcagcagggagggacagctggggctgcacattccacagagctgcagagctgggga
-caatgagagccccacaccttccaagctggtgcagcaggagctccccaggtgcaactgcag
-ccactcaagtcacggctgtgaaccccggcctccctgtgttcttgtgggtgctgggagcag
-gcaggggtcctgcacttttgggtgcagctgcaggcgcccaaaccatggctgcggaaccag
-acatctctacactcttgagggtcagggaagtccccactgccctcacaagcttagaagtgc
-ctgctcccacagcctggcgcctccctgctgtcggtgcccgctctaatcttggagcaaagt
-tgaggccaagcccaggtgctgtcatagcctgttgggtgtgcacacgcttggggcagtgct
-gacataccagccccctgccgcctcggacccctacagacctcgggtgctgacgagcatagg
-aggaaagccgaggtggggctgagggcagctcggcacctacagcctgggtgccatgaatgg
-cagtaggagTCTTCTCAGTTCTGTCTCCCTCCCTTCAGTGTGGATGAAGGGGTAGAAATG
-AGGTACAGCATCCTGTCTTTCCCAGGGGTCGTGTTGCATCCTTTAATAGTTTACCACTGA
-CAGCACTACCAACGATTTGGGGATTGTGTCTCGAGGAAGCAATTGACCTAAATTTCATGT
-ATCAATGAAACTGTTTTTCCTTATGGttttaattatttatttattttataaaataaaata
-aataGGCTTTTAATATATAATGAAAGCCTTTTAATGTTAACATGCAAGGACTGAAAGAAT
-ACCTGTTGGACTGCAAGATGGCTGCTCCCTCTACCCTCAGCTTCAACTGGCCTGTCAGCC
-AAGCTTTGATTTCCTAGGCAGAATATAAAAGAATTCCTCTCTGTGGTGGTCCAGGAGACC
-AAGGGAATTTGGGGAGGTGATAGAACTGCACCCTGATCATGCTGGTGGTGAAAACTCGTG
-CAACCGTACACCCAAATGTCATCTTTTTTACTGTATGTTAATTTTAGAAATCAGAAAGTA
-AAAGATGCAATCACAAAAATATCATTTGGTAGGACAAACTTATTCAGTATATGAAGATAA
-TAGAGAACTTTTATACAAAAGTGGCTCTTACaaaatattaatataaaatattaaaatata
-aattCTCAAGAGCTATAACTTAAACTTCTATGTTAATTTAGGTAAGCAATTCTCCTATGA
-AAAGACTTAACGAATTCTTTCCTTTTCTTTTCCTCTTGTCTTTTCATTTTGCTGCAAGGA
-GCAGCCTTAAAGCTGACTGAAACAGTTATTGTGACCAGCATGTAATGCTTGAAAAGATGA
-AAATCCAGCTTTAAATATGCTCAATCTCAATAACttttttggtttttttttttttttttt
-tttttgagacggagtcttgccttgtcacccaggctggagtgcaatggcacgatctcggtt
-cactgcaactttcgactcccagattcaaatgattctcctgcctcagcctcttgagtagct
-gggattacaggcaccggccaccatgcccagctattgtttgtatttttagtagagatgggg
-tttcaccatgttggcaaggctggtctcgaactcctgacctcattatctgccgccttggcc
-tcccaaagtactgggattacaggtgtgagccaccgcgcctggccTCAATAACTTTTTAAT
-AGGTATATGCTTAGTTTATTCATGTTTCTTTGCTAGTTTTTTTTCCCTGCAAAGAAGAAG
-AAGAAAAATAATTTTAAATCTTATTTGAAGGATGATTGTACACTGTGTTATTGGCCTTGG
-AAAGGAGAGAAGGAGGAAAAGGAGTAGGAAAAGGGAAAATATCTTAAGAGGTTGTACTGT
-TAATCTACTTCCAGGCAGATTTTAACCACTAAAGCTAAAATGCTATTATGAAATTGAATA
-TTTCAATTGAATATTGAAAATGGTATAATGATgccgggtacggtggctcatgcctgtaat
-ggtagcactttgggaggccaaggtgggtgcatcacttgaggtcaggagttcgagactagc
-ctggccaacatggtgaaactctacctctactaaaaataccaaaaaaatagccggaaattg
-cttgaacctgagaggcagaggttgcaatgagctgagatcatgccactgcacttcagcctg
-ggcaagagagcaagactccatcttaaataaataaataaataaatgaaAATGGTATAGtgg
-cttgaagatgcaggggcccatgaggaagaacatggatggcccctagaagctgaaagcagc
-ccccaggtggcagccagcaaggaagtggggtcttcaattctacacgtgcaaggaactgaa
-ttctatcaacaacctgaatgagcttggaagctgattcttccccagaagccgcagataaga
-gctcagccTGCTAGGGGCTTGAGAAAGGGGAAAGTGACTTTAAAAATGTAACTCGAGGGA
-GTTCCAAAAGGCTAAGCGATTCGGTGAATCTAATAAACATGTTAAAATGCATAAAGTTCG
-GGTGTGGGGGAAAGGGAAGGGAGAGCATTAGGACAAATAGgttcttttctgagttctggc
-caggaggcttcttgatcagttcaaattgttacaaagttcagctggaggtttccttctccc
-tgtggccgctctgggcctctggcagccctcctcaaggagcaatccgtttccttcagaggg
-tctgtgggttctcctggcttccctaatgcgttcctgcagtccttctgaagcaaaacttaa
-tgatgcgagcctccacacgctgctctgaccgtccgagtgggagctgcaatctagtcctgc
-ctcccgtctgtcatgatcccTGGTGGTTTTTGACTACagctcaattgttttagattccat
-gtgtaagtgagaacatgaagtatttgtctttctgtgtttgactcatttcacctagcagaa
-tgtGTaataaacattaacaaaatgaatgtgtaaaatcaggtagtgatcacagctacaaag
-aaaataaaacagagtgatagatggaaagtgatggggaggaagaacctggttagaaatggt
-ggtcaggcaggacctctctaagaagggaaaagagctgtgactgcacgataagccggccac
-gtgaagaccttgaggacaacatgcaaagctgatgacccaccggccctgcaaagaccgggc
-gggagataagcttggctggcgcgaagaaagaaggctggagggagtagaaatggggacagg
-agctgaacgctgggagagggggctcaaagCCAGCTCGCGTAGGCAGGGACTGGGCACTCG
-CAATGCGCGCAGAACAAAGGCCTCTCTCTCTCTTTCGCCACACTAAGGGCCAACATGGTC
-ATCTCCAGGTGCGGATTCTGCCGTAAAATGCGCCCCTGGCGACTCACGACCAGGACGCAT
-TCCGCACCGCTCCCCCACGCCCCGCAGCCCGCCCTCGAGGCTGATTGATTTGTGCCAGTC
-TCTACCGCCATCTGCCGGCAGCACTCGGTACACCCGCGCCCTGGAGGTCGCACGCGCTGG
-CCAAACGGGCGCACCAGACACTTTTcagggccctgccaaagacctcccaatgtctactgg
-cgtcccagacacaagagatccaggccaagactcacacttcacaagatacacagacacggg
-ccttagggaacaggaaattccatgaaacttccatttacccaattagccggactcactgag
-ccccagaatagggttttcaaccaactcctactaaaattAAAAAGTAATGTGTGGtataga
-ttggaataatagacattggaggctacaaacgatgggaggcggagaggggtgagggttgaa
-aaattacctattgggtgcaacattcactatccgggtaatggggcactagaagcccactcc
-accactatgcaatatatgtatttgtaccccgtaaatctataaaaataaaaaCTACATTAA
-AAATAATAATAATGTCTGGTCATCTAAATAGTACCTCTACAGCTTATTAAGTGCTCTGGA
-GACGTCCCAGTTGCCTGTCCTTCCCATTAAAGGTGATATCCAGTGCTGATTTCCCCTTCA
-ACCTCGGGTTCCCATAAACCTCTTCTTTCTCACTCCTGCTGCCCTCCGGTACTCCAATAA
-AGAATGATAGATGggccgggagcagtggctcacgcctgtaatcccagcactttgggaggc
-caaggcggatggatcacctgaggtcaggagttggagaccagcctggtcaacatggtgaaa
-ccccgtttctactaaaatacaaaaattagctgggcatggtggcgggcctcagtaatccca
-gctactcaggaggctgaggcaggagaatcgcttgaacccgggggcagaagttgcagtgag
-cagagattgtgccactgcactccaacctgggcgacagagcaagactccgtctcaaaaaag
-aaaaaaagaaaagaaaCAGTCCCAGTATGCATCCATGTGCATGTGCATGCAGGTGTATCT
-GCCTGTGAGAGCTGCGCACGCGGCTCTGAGTACCTGGGAAGACACCCATGTACAGATGCT
-GTACATGTGCGGGGTCACTCTCTGGCGCATTCGGAGGCATGAGGGCTACGTGCAATGCGA
-GGGAACCTATGTCCAGGCTTCCTTTCTTGGTTTTCCTCCTCTGAACTCATGCATCCCTTC
-ACAAACagtccagctcctggctaaaaacctatgtgtgatttttcagcccaaacacaggca
-atgacaggttttacctggcaggcctcacagctgagtcgtgcacagctgatgcgttgcagt
-ctttaaagacagttgcagacacagactcaggcctcctggacagtcgacctctcacacaca
-tctccgctcccaacccaagtcttcattcagacacgtcttcattgcagtggggtaggcctt
-cggccaggacctccttatcttggggagtggagaatccttgaagacactttcctccatgct
-gactcagaagttttcccactctcccttccccaccccatccctggcccccaggtccgtaca
-acttcaggagcctttttgttggaagcttttctgcagtgagaccaaccccacacctgtgct
-catccacccgaccccagttggcatcattctatgaggaaattagaacaggtggatctgtgt
-tctacaaaataaaacaaaccaggttctctggtttagcctctttcttgtactgtaataata
-agagatttggggcttggctattacttgctttgactttttttgttttgagacagggtttcg
-ctctgtcacccaggctggagtgcagtggtgcgatctcggctcactgcaacctccgcctcc
-tgggctcaagcaatcctcccacctcagtctccctagtagctaggactacaggtgcacacc
-atcatgcccagctaatttttatattttttatagagatggggtttcaccatgttgtccagt
-ctggtctcaaattcctgagatcaagcaacccactggcctcagcctcccaaagtgtgagga
-ttacaggcctgagccaccatgccgggccatcattaatcagctactccagcacttagcagt
-tcagctctctcctgctcagctgagctcctgaTTGTACAGTGGTTAAGAGCAAActgcctc
-tgccacttagtaacctggtgacttgaaaaatcactttgccttttcatcctttggtttctt
-catctgtaaaatgaaaataacaataaacaatacctacttcacagggtggttgttgtgagg
-gtgtagtgagttgatgtatgtaaagcATAACGTAGGTTCCATTGAAGTGTTTGCTATTGT
-GTTCAACAGGGTCCATTTCTGCTTGGAGATCCACATGGCTCTGGGGAGTACCTGTTGGCT
-CAGCCTAGGTCACGTGTTCCACCTTAACCatcccttccctgctccaaggtagagcccgtg
-acctgaactaaaccagcaggcacgctccacctccaacaccggctcaaggtgggcgtgtaa
-tataagctggttcaattagaatgaatcttttttttttttttttaaagacggagtctcatc
-ccccatcacccagactggagagcagtggcacaatctcagctcactgcaacctctgcctcc
-caggttcaagcaattatcctgcttcagcctcctgagtagctgggattacaggtgcctgct
-gccacgcccagctcatttttgtatttttagtagacacagggtgttgccatgttggccagg
-atggtctcgaactcctgacctcaagtgatccacccacctcggcctcccaaagtgctagga
-ttacaggcgtgaaccactgtgcccagcccaattacagtgaatcttaatacactggctgaa
-aattctgggacacagccagtctctctctttccaacaggacatgtacaaggacctgtacaa
-ccctgggagatgctggcatattggggccacaagcagtgctgacctgaagaaaagggcaac
-acctcagaaaacaaagtagataaatagaaaccaagtccttggtgccatcacttgatttct
-ggacaaagcctcacctaagctatttattgacctgagcccttcatagtttaggccaatGTG
-ATTTGGTTGTTTTGTTACCTGTAACCAAGTATCTTAACACAAAGTGGATCTGTGAGTGAC
-CAGAGCCTCTTGGGGGTTGTAGCAATCTAGTAgttggcccagaaaggccaactctgagat
-ggagtgtagggtgcagaatgttgagtaatgagtgctcttggaatcaacaactgaggaaga
-cagaaatatgcaggattgggcacagggagaagttcagctgcagtgcaggcccaagggtag
-ttgcagctgagccttcaggaagttctggagccagagtagcccttctgagttgttccaagC
-ACTGAAGGCCTAGCAAGTTCCAGGGGTATTAAAATCAATAAGCCTGTCAGCCCCGACAAT
-GCCCTCAATAGGTCTGGGCACAGATTGGAGAGAAGCTGGGCTCCCACTGCACCAGGAGGG
-AGTGGCCCAGAGCCACTGAGCCATGGAGACTCAGGCAGGGGGTTGCTCCAGCACTTCTTC
-TGGAGAAGTTTTGAGCCCCAGATGCAGTTAGCACAGTTGCCCGCCCCTTATCATAAGACG
-AAGTCCGTTCCCACCACATCTTCTGCAAGACCTAGCTGGGGACCCCGAGACACTGGCAAA
-AAAGCAAATGTAAATCCAGCTTTATTGGTAAAAAAGGAATAGCAGATTTAATCAGAAATT
-CCCACCTGGCCCAGCAGCACCAACCAGAAAGAAGGGAAGAAGAGAGGAAAAAACCACAgg
-aagaaagaaaggagggagggagggagaggaggaaggaaggaggagggaagggaagggggg
-aagaagggagggagggagggagggaaagaaagagggaggaagggCAGAGGGAGCAGGGAG
-ACTGTAGATCAGGGTCTGAATGGAGATCCGGTCCTGGAAGTAAATGATCCAAGGCTCCAG
-GTGCTGGGAAGAGAGCAGGAGGGGAGGGCGGCCCATGGCACTGCCATCTAGAAGGGTAGT
-GGCTCTTCCACAGGAATGTTGAGGATGACATCCATGTCTGGGGTGCACCTGGTGGGAGGC
-AGCACAGAAGGCCATGAGAGACCAGAGGTGGCGGTGTGGGAGCACCCACTCAGAGGAGCC
-CTGCTCTTTAGAACTCTGGTACGTACTTGGGTTGGGGGGCAATCCCAAAATACAATCTGT
-GATCTATCTGTGACCTCAAAGCCCAACTGTGcatacacaagcatacacacacacacacac
-acacacacacacacacacacatacacacacaTCAAAAATGGAAAAGAAATGAGTTTGGCA
-GGACAAATGTTCCCCTGACAAGTCTGAGGTCAAGAGGGAGCAGGAACTCAGCTCTGAAAT
-GCTGAGGGCCCTCAAGATgatcactggctttggagtgaggatgacaggtttgataacttt
-gacctgtgtcaccttgagcaagctatttctactctcccagcctcactccttcagttgGCA
-CTTAAGTGAAAAGCACTCATTAAGTCCCAGACCCCAAGtgagcctcagtttcctcatctg
-tcaaatgggtttaatattctaacctcagtcattggtggaaagattaaatgagaccatgcc
-agcaggtaataagtgctcagtaaatgacaggcaTTATTATTTCCATGAAAGTAGCAAGAG
-AGATGGATTCCCATCAGCAATATATTCCCCATTGCAGGGACCAGCACAAATATTTAAGAG
-GCTGAAGGATTACATTCTGTTTCACTCTCTTTTCTCTCTTCCAAGGAGACCATCCTCTCT
-CATGGTTTCAATAATCTGCTGATACACATGAAGTATTTAGGCAGGAAATGTCAGGATACT
-TGCAATTTACAAATACTATTAAAAAAATGAACatgaaaccaacatagaaaaaaaaaaaat
-ttctaaatctagatgggcaaaactggctattcattatatcattctctcttctttatattt
-gaaatttttcataataatagtaaaaaaaaaaaGTTcatctctatgctggcaacacctaaa
-tttctacttccagccaatatctgtcctctgaggtctacactcatcttgtcaattgcccac
-ccaatgactccaccttggcacctcatataaatcaaacttactgtccaagtcaactgtatg
-gtttttgttttgttttgttttgtttgagacatggtctcactcggtcacccaggctggaat
-gcagtggtgcaatcacagctcactgcagcctggaactcctcaatcgatcctcctgcctcc
-caaatagctgggaccacaggcacgtgccaccacatctggctaattttttaattttttgta
-gagatggaggtctcactatgttgtccccctggtctcgaactcccagcctcaagcgatcct
-tcttcctcatcctcctaaagcactgggattacaggtgtgagccaccatgcctgcctccaa
-ataaactttttgactgtgcctacatacacatccctcaccccgccccagccttcccaatct
-ctgcatttgacatcaccaccaccccattataaaagtcaggaacccaggggttattcttga
-tacctccctttcctgtacttcccaagtcatgcaagtccttcttactttcctaaatatttc
-tccaatctatctatttctcccatttcttctgccacactcttggccaggccacttcccatg
-ttcccctggacaactgccctcacacccactagaattccagctgccattctggctccttgc
-caatctcatccccatgctcttttcttttcttttaagaaagagtcttgctctattaagcag
-gctggaaggcagtagcaccatcttggctcactacaacctctgtctctagggctcaagcaa
-tcctcctgccttagccttcactgcagctgggactacaggcgcacgccaccacgcctggct
-aacttttgtattttttgtagagatggggtttcaccatgttgcccaagctggtcttgaact
-cctgggctcaagcaatcctcccaccttggcctcccaaaacgctgagattacaggcatgag
-ccaccacacccagcccaccatgctcttttcaaactgacttttttggaatacaaatctgat
-catgtggcttaagatcctttgcttctgggatcaggcagaacatctgggcctacagggcac
-tgcatggaggtccctaggggctgagttgccctgctcccttcccgccactctccctgtcac
-tctgcattccaaccactctggcctcactcagctccgtgtcaatgccaagttccttccaac
-catagctccttcacaGCTCAAGGCTCAACATGTGGTtggttcatagagcagtaacataag
-catcaccgggtagcttcttagaaatgcagaatcAggctgggcatggtggttcacacctgt
-aatcccagcactttgggaggccaaggcaggcagatcacttgaggtcaggagtttgagacc
-agcctggccaacatggcaaaaccccgtttctactaaaaaacataaaaattagccaggcat
-ggtggtgcacacctgtaatcccagctactcgggaggctgagacaagagaatcacttgaac
-ccaggaggcggaggttgcagtgagctgagatggtgccagtgcactccagcctgggagaca
-gagctagactctgtctcaagaagaaggaaggaagaaaggaaggaagggagggagggaggg
-agggagggagggagggaggggaaagaaagaaagaaggaagaaagaaaaagaaagaaaaga
-gaaagacagagagagaaagaaagaaagaaaaagaaaagagagaaaggaaggaatgaagga
-aggaaagaaagaaaagaaaagaaaaaagaaatgtagattcatgagccccactgagaccta
-ctgacttggaatctgctttttaacgcgatctccaggtgtttcctgggcatgttccagttg
-gagaggcTCTGCTTAACAGTGTGCCATTTCTACTTTTTAGGAGGGAAAATGTGCTTCCTT
-GCTCCTGGTGTTCCCTTCCACGTGGAAGGGCATCCATGAGTGTATTGCTCCTGGCCTCTC
-TCTGCCCCCTTAAATTCTGCTTTTGGAAAGGGGGTATGACCACCAGAATGGTGAGTGTGA
-GGAGAGGAAGGGGACACAGGGAGCCCAGTCCCTTTCTCTCTCAGCAGCAAGAAACCCGAA
-AGGACTCCACTCTTCTCTGCCCCAAGGCCTGGCTCCACGTGGGTCCAGCTCCACCATGAT
-CGGGTGGTTCAATTTGCCTAATTCTGGGTTCACTATTCAGAGGCCAACACAGTCTCTAAA
-ATCAGCTTTACCAGAATAAAGGTGATAACCTGGCCCACATGCACCTTACCCCTTTCAGTC
-TCATTCACTGTGTTCAGAGTTCAGGTAAAGACAAGTGACTATTTATTACGTCCCCCGGAG
-ACCCTGGCAccaccgcctagaattgctcttccttcagctcccccatcagtctctttcacc
-tagtgaatttctatgcatccttcaagcctcagttcaaatgtcacatcctcaggaaaacct
-tccttgactgcccagacTTGCTGTCCTAACAGTTGCtttcttttttcttttttttttaat
-taaaaaaaaatttttttttagatggagtctcgctctgtcacccagactggaatgcagtgg
-cacaatctcggctgaccgcaacctccgccttccaggttcaagcaattctctgcctcagcc
-tcccgagtagctgggattacaggcacccgccaccatgcccagctagtttttgtattttta
-gtagagacagggtttcatcatcttggccaggctggtcttgaactcctgacctcgtgatcc
-accggccttggcctcccaaattgctgggattacaggcgtgagccactgcacccagctCCT
-AAGAGTCACTTTTGCAGTGGCATGTACTCTACTCAGCAGCTCTGGGCTCTGCTGCAACTC
-CACATTTATTTGTGGCTCATTATCGACTCATGTCCAGTTCCCTCTTTAGTTCCATGAGGG
-CGGGACCAAGGACTGTTCTCATTCACATGGTGCCTGGCATTCAGAGGCACTTCATAAATC
-CAATAGTATTTTGTTTTGGGGGCGGGGGGCGGTTTagaaatagaagaaaaggaagaaatg
-gcgataggagaggagaaggaaggaaaacgacaggagggagagacagatgaagaagaaaaa
-TTAAAGAATTTGCAAATGCTAGGCTCTGCCACACATGGTCCTGTGGTGTCATCAAGGAGA
-GGTAAGCCTGGGGGACCCCCAACCCAACCGCAGAGGGCTTGCCCCAAGGAAGGGCAGGCA
-AAGAATTGGTTTCTGGGGCCCAGAAACCTGCCAAGTGAACAGGACAGACTTCTCTCCTTG
-TAGAGTGTCTTCCAGGCTATTCTTCCCTGAAGCCAACCACCCCACTCAACTCTGCCTTCC
-TCAAAAACCCAGAAGTGGAAGGCTGTACCCACTTGGTTGACAcatgggatctgggaacta
-gaagggcccttagagattacaccacccagcctgctgtgtacagatgggaattggaggcct
-ttgcagagatgggaaaggtcacatctgcccctggtcagtggcagatccaaggtggaaacc
-caggaccgcccctccctccctgtacagggttctgccatccacACCAGGCTGCCTTCCCCA
-AGAACAGAGAGCCTCCGTGAGCTCAGAGTGTGACTGGTTTAAGAGGCAGTGGCAAAAAGA
-TCACATACTTGGGTCTCCGAAGCAGAACATCCTCAAATATGACCTCTCGGGGTTCCCGGG
-TCTGGGCTTGGAGCTCTTCCACCTCGGCCCTTAATACAGGCATGTTCTCCTCAAACTGGT
-CAATAATCTGAGAGGAAAGGCACAGCAGGGGAGAAGGGAGAGGCAAATGGCCCCCAACCA
-AAGGGAGAAAGGCCAAAATGAACGAGGAGCAAAGCTATCTGGGGAAATGGTATGGGTTCT
-GTCACTGGGACTTGCTGGACTCCAGGGAGGGGACTTCCCCATGCAAGGTGCGGCTGGCTT
-CCAAGTTAGTGACAATATTCAGTGGTGCTGAAACAGGTGAGGGATCATGGAGAATGGAGA
-CAGGTTACAAAGTGGCGGGGAATGCTCAATCATGGGAATGAATGGAGGCTGGCAGAGATA
-GTGAAGGGCATACACATTAAAAACCAGTGAAGAGGCAAGATAATGAAAATTAATTCAAGA
-AGGCAGTGATGGTGAAGTTCATTAACACTGATAATGGGTGGTGGGCAGTAACAAGAATCA
-AGGGGTAAAGATGCACGGTGGTTAATGGCTGAATAGGTGATGTTTGGTGATGGTTGTAAA
-TGGGTCATTAGCCAGCATTGCTGGCTAATGAGGCAAGGCCTAGGTCAGTGCCAATCGCCT
-TCCCAGATGAAAGACAAGTGACAGTAATGGCACCGGCAAGGAGGGAGGCCAACACCAGAG
-TCAGAGACCTCCTGAGCGCCAGATCAGGAGAAGCCTGACTCATTCCCACAGGCCGTGGGG
-ACTGCCCATCCACTGCTTCCCTACAGGGACCACCACCTTCCTTGCCCACGCACTTCTCTG
-AACCTTTGCATGCATTTCAGGAAGTCCTGGCTTTCCCACATCTTCTGTAGGAGAGCCTCT
-TCATAGGGACGCTGGGTTTCCTGTGGAGGAAGAAGAGGTCTGGCCCCCAGGTGCCTCTTC
-CTGGGCAGCAGAACATGGTAGAGACCGATGGGGCTGCAGTGGGCCTGGAGGCAGAGGATG
-GGGAAGAGGGCGGGGTGGGGGTGAGACCTGGATCCCCGCTCCCACACAGCAACTGGCTAC
-TCACCGCCACCACAGAACTCAGAATTTTTTTCTTCTTCTTCTGAATCTTGTCAGACAAGG
-ATTCCAGGACCTTTCTGCGCATCTCACCGAGGTCATCCAGCTCATCCTGGGAGCCAGCAG
-AAGGGTGTTGGTCACCAGTCCTGCCTCCCACACAGTCTGGTGGGAGAGGGGCAGGGGCTC
-CCCTACCTGCTGGCTGTCCTTAACCTGCTGCAGCTGGCGCATAAGAGTGGAGATCTGGAC
-AGACTTGATGGAATACTCATGGTCCATGTAAGTGCTCAGGAAGTTCACTTCCTCCTGGGT
-CTTCTCAATCTTGGCATTCAGCTGCTCTGCCTGCTGCTCAAGATCTGGGGAGGGGTTAGG
-GAGGTCAGCAGGGACAGGAGGCAAGACCTTCCCTCAAGCACCTGGGCCCCAGGAGGCCCA
-GGAGGCAAGGTCTCCTTGGCCAGTAACTGGGGTCTGGGCTGAGGTGAGCTCACACAGGGC
-TGGGAGGTGGTTAAAAGTTAAGGCTCTAGACGGTTTTCCACCCCTGCAGGAGAAGAGGCA
-ATgctgggtaggaaaaaggaagggaattggtgcatgatccctagactagtccccactctg
-ccactgacttgccgggtggctctcgccaagactgtccctctccagacttcagtctcctca
-GAGACACACTCAAGGAAGTGAGACCAGGCAGATGGGGTGACAGTGGCTCCCAAGACACAA
-CCCATGGCAGGATTAAGACAAAGTCTATCCTGTCTTCCTCCAGAGAGACCCCCAATGTCT
-GGGGTTGACTGATCCACCACCCCTCTGCTCAGCAGGTGTGTAGTCTGCTCAGGGAAAAGG
-AACCACAGGCCAGGCAGGAtggaagccaggagacccaggttctagcccagccactgactc
-ccagaaggaccttggCAGGAAACAgagccaggctaggattggattctggctcctagctat
-ataaccttccacaagctactgcacctctcttagcctcggtttcctcatctgtaaaatggg
-aggacagcttccctgcctccaagtagttgcaatgactgagtgtgtgcctgtaaCAATGCA
-GACATTGGTAGAGACCCAGATACGGGGCCTGGAAAGAGCTAAGTGTTGGGTAACTATGCT
-ATTCGCTCTGTATCTTAGCATTCCCATCTGCCAAGAAGAGAGCCAATGGGGCTGAGGGTT
-TCTGAATGGCAAGTACAAGGTGAATGCTCTGCTGCTGACCTCCCCAAGGTGCCAGGGGGG
-AGGGTCAAGGAATTTGCCAGGGATTCTTACAGCTCATCTTGCATTTCTTCTTTTCTTCCC
-ACTCCTGAAGCTCAGATTTCAATTGCTGCAGCCTCTTCTTGTTTGAGTACTCCAAGATGT
-CGATGATGGTCTGCGGGAGGGGTGGAGTCAACTCACCCACAGGCTCTGCTGGCTCTCAGA
-GGCGGCCACCCAGCACTTCCTCAGAGGAGTCCCCAGTCCCAACCTCACTCCCAGAAACCT
-GACCAGAGGCTaatcgggacagtaacagtgtccacccatagggttgttgtaaggactata
-taaagacatacagatcgcttGCTATTACACGTAGAGGTGTTTGCAAATGCTGTTGGTGGT
-AGCAGCGACCTCTGTCGCACCGGTACAGTATGTGCCCGGTGAACCCCCTCTGGGACGGGT
-GCTATGGTGCCGCATTTCACAGAGCTCGGGGAGGCAAAGTTAACTAAAAGTCTCCCGGCC
-AGTGAGTGCTGGCGCGCTGGGATGAAACCCATCTCGGTCCTCTTGCAAAGCCCAGGTGAG
-GGGAGTGAAGGGTGAAGAAATGCGTCTTCCAGGTGGAGGAAGCACCACGTGCAGTGGGCG
-GGGAAAGGCAGGAGAGGGCGCGCGAGTGCGcggagggagggcgggacggagggagggagg
-gcgggacggagggagggagggagggacggagggcgggacggcgggagggcgggacggagg
-gacggagggagggcgggacggagggcgggagggcgggacggagggagggagggagggagg
-gacggagggcgggacggagggacggagggagggagggagggacggaggttgggacggagg
-gacggagggCGGGCGGATGCCGCGGGTCTCACCGCCAGGGTGTCCTGCTGCTGCAGCAGG
-GCCCGCACGTGCAGGGTCGTGCTGTTCTCCATCTCCTGGATGGTCTCGATCAGCTCCCGG
-TTGAGCTTGCTGAGGAAGTTCTCACGGCTTCGGAGCTCTCGCAGAGCGGCCCTCCCGCTC
-CTGAGCGAGGTCTGCGGGCGGAGGGAAGAGCAGAGAGGCGGCGCTGCGCCCTGCCCGGCC
-TGAGCCCCCGAAAGCCCGTGGAcccgccgccccggccccgccagacgcccgcccccgTGC
-GGCCTCCTGCTGGTAAACGCGGCCCAAGCTGGGCGGTTCCCCATTGTCTGCGCCGCCCGG
-GAGCTCCGGGACtctcatccgttcggaaacgcacgtgtacccatcatctcacatccctga
-ggtgcgggtgcatctacagttggtggcgtgtcaccaactaatcaacaaatatattattag
-tgggtaaataaagatgtgccttcatatcaatggcttctcagaatcaatgaaatatagAAA
-TAATAGTAAGggccgggcggggtggctcacgtctataatcccagcactttgggaggccaa
-ggtgggccgatcacgaggtcaagagttcgagaccagcctgaccaacatggtgaaaccccg
-tctccactaaaaatacaaaaattagccgagcgtggtggcgcgtgcctgtaatgccagcta
-ctggggaggctgaggcaggagaatcgcttgaacctgggaggcggaggttgcagtgagcga
-gatggcgccactgctctccagcctgggcgacagaggaagattccTGTCCCaataataata
-ataataataaACGCCCCAGGTAGGTTAAGAAGGTGGCAGAGCGACCGCCATGTCTGGAGG
-AGAAGCAGGGGAGGCAAAATGGATGATAAACGTCAGCATTTCCGGGCAGGCCGCGGAGTC
-AATGAGTACTCTCATTTCACACAACAGCCCCCAGTGGAACAAGgagggtctgagggttaa
-gtgactcgcctaaggttacacccagcaggtgcataaaaccTACAGTAACAACAACAACAA
-CAATTGTACTTCCCTAAGGTTACACCCAGCAGGTGCATAAAACCTACAGTAACAATAACA
-ACAACAATTGTACTCCCCTAAGGTTACACCCAGCAGGTGCATAAAACCTACAGTAACAAT
-AACAACAACAATTGTACTCCCCTAAGGTTACACCCAGCAGGTGCATAAAACCTACAGTaa
-caataacaacaacaattgctgagggccctctacatgccaggccaggtgctgtgccttgct
-ctgcaggtggcacatggtatctgttcaccctccaacagctttatgtttactaactctatt
-ttgctgataaatggaggctcagagagtttaatgacttgcccagtgtcacacagtcaagaa
-gtggcagggctggaactggaaagccagacttctgaatcccaatgtctgtctttccgttat
-gctaAAACAAGAACTGAGTAGCCTTAAAACTGCAAGGCATGGCTGAACCAcgtagtgact
-aagacttggatgttgaacctagacacaccttggttcaaatcccagctcagccacttacca
-tctaagagaatctgggcaagttagttaatgtctcagagcctccttatactcattctaaag
-gtaaggaaactagtatctgttttagagaactgccgtaaaatataaatgagATTggacagg
-tgcggtgactcacgcctgtaatcccaacactttgcgaggcccagatgggaggatcactca
-aggccaggagttcaagaccagcctgggcaacatagtgagacctcatttctacaaaaagta
-aacaaaattcgctgggtgtggtggtgtacacctacagtcctagctactcaggagtctgag
-gtgggaggaatgtttgagcccagaagatcgaggctgcagtaagtcaagattatgccacca
-cactccagcccgggtaacacagcaagaacttgtctctaaaagtaaataaataaataaata
-aataCAATTTTaaaaaattaaaatgttcgctgggcatggtggtgtgcacctatagtccta
-gctacttgggaggctgaggcaggaggatctcttgagcccaggagtttacggctgcagtga
-gctatgattatgccatttcactttagcctgggtgacagagcaagaccctgtctttaaaTT
-CACAATCAAGCCACTTAGTGAGAGTGCACTCATGTGCACTCAGTGAACAATAGCTGATAC
-TACTGTCTCTGGCTCTAACCCTCTACCCCTGCCATAAATATTTGCTCTTTCATTTGTTCC
-TGTACTTCCTCATTTCTCCGTCCTTTACTAAAAACGACCCCTTCCTAGCCCTCAGCTCCT
-TTATTTCTCATATaacagtaatcatgctgatgtgctgagtgcttgccatgtggctgatac
-tgtactaagcacttcatgcgcactgcagcacatcaccctcacagcaagactaagagatgg
-gcactattattaggccaactttataaaagtggacagcagtcgggcacagtggttcacacc
-tgtaatcccagcactttggaagagcaaggtggaaggactacttgagcccaggagttagag
-ccctgggcaacaaagggagatcccatctctacgaaaattagctgggcatgatagtgcatg
-tctatagtcccaactactccgagaggctgaggtgggaggatcacctgggctcggaaggtc
-caggctgcagtgagccatgatcatgccactgcgctccagcctggatgacacagcgagacc
-ctgtctcaatcagtcaatgtggacagcaaggattaaattcagtaacttattcaaggtcac
-acatagcagagctgTCATCCTTGAAGTCTTGCCTCCTAGCCACTCCACTACCTTGTCTCC
-ACATCTCCAGACCAAAATACCCAGAAGTATCTTGTGAAAAATGTTATTCTCCAAGTCCTG
-GGCCCACTGAAACAGCAGCACTAGggtttcagttcaaatgtcacccaccttagcagcctc
-tcgttagcacctaaacaattactgccacactctcctccgtgcctccagccccctaacctt
-attcttaggcttctctttagctcttatcatcatttcaaatatctttctcttgttgattgt
-cagtctcccccatccaatagaatggaagtcccctaagatcagaggtcacattactggtga
-accctcatactcagaatagaacctggcacatggtaggtgctcaatcaatatttgttgatt
-cattaaatgaatGAAAGATTGCAAGAGACAGTATTAAGAACTGGACtggttaggagcaca
-agttttagagccaaattgtccacgttcAGCTTCTACATCAATCAAAAACACCTAAACCCC
-TCTAAAGTTAGGATAAAAATAACAGAAATggctggaagcggtggctcacacctataatcc
-cagcactttgggaggccaaggcgggcagatcacctaaggtcaggagttggagaccagcct
-ggccaatatggtgaaaccccatctctactaacaatacaaaaaattagctgggcgtggtgg
-tgggcgcctgtaatcccaggtactcaggaggctgaggcaggagactcactcaaacctggg
-aggtggaggttgcagtgacctgagatcttgccactgcactccagcctgggtgacggagtg
-aaactctgtctcaaaaaaaaaTTTTTTTAAAAACTAAGAGAAATATGAGTTCCTCCTTTA
-AGAATACTGGGCTACCTCTAAACCATTTTGCAAGATAAAAGGTTAAAGGGGAAAAAAAGG
-TTTCAAAGCAAATTATATTTTCCCTTGTTCTTTATATAGTAGTCATTGTTCATTGAGCTA
-TTAAAAATTTTCTTGAAGAATTATTCTATAGTATTTTGTAGTCTTTATAATACTTAGTAT
-TTTACTTTCTGCTATGTATGCTAAGGACTTGTCTTCCTTTAGGCATTTCAAATACTTTGA
-GACATTGTTCAGATAATTACAGAAGCCATAAAACAATGTATAGCGAGGAAATTAATTACC
-TACAATTGTAGCGATTGATGTGAAAATTTTCATTGTCAGTTTCTAAGGCTTGCTTCAAAG
-TACACTGTAAGAAAATTTAATTTACTGGAAttttttttttttgagatgaagtctcactct
-gtctcccaggctggagtgcagtggcaccatctcagctcactgcaacctctgcctcccagg
-ttcaagccggtctcctgcctcagcctcccgagtagctgggactacaggtgcgtgctacca
-cacccagctaatttttgtagtttgagtagaaacggggtttcaccacgttggccaggctgg
-tctcgaactcctgacgtcaaatgatccacccacctagacctcccaaagtgctgggattat
-aggcatgagccaccacacccggccAAGTTGCTGCAAATTTTAAGATAAATAAGCCACTAG
-ATCGTGTTCCTAATGCAACAAAATAACAAGCAATTCTGATTATTTCTTGAGTCTTAAACA
-GAACAGCAAACGCTTTGTTTAActggctttgacccctgatcctgccatttcctggctgtg
-tgacctggtgcatgtcatttatctccctgcgcctcagtttcccggtttgtaaaataggaa
-caaggataagcgtgctcacacagttcctgtgaggaagaaatgagtcaagtctggcaccca
-caaagttctcagcacatgtttgctacaGCCATCATCCCCGTCCCTGTCCTGGGCCCAGTG
-TCCAGGGAAGATGTGCCTCATACCTTCATTAACCAGATTTTGGCATGCATCTTCCCAGGG
-TCCAACTTCCGCCTTCTATGTAGTTCTCTTGGATTCTTCGGCTGGCAGCTTGTCACCACC
-GTAGTGGGCTTGAAGTGAAACACTAGGGGTAGACAGGAAAGGACAGGGAGAGAGTGAGGG
-TCCCGGAAGGCCTGAGGCCAGGTTCCCGGGAGTGCACCATTAATGAGAGGAGGGCCAGAC
-CCCAGCTCCACCCTCTGACTGCCTTATAATGTGACACTAGACCGAGGGTGAAATTCACAC
-CCTTCACTAAGCTCCCAGGACAGACTCTGGGCCTCAATATGAGGGAGGGACAAGCCCAGG
-TGAAAGCAGTAACTATGGACATGGACAGAGGGGAGGGCAGGGCAGCCAGGAACCCCGCTC
-TCAAATGTCCAGTCAGAAAGAGAGTCGGGAACTCCCACTCCTTGTGTCTTTCCAGTAGCT
-ACTgcagcacaggacagcagaaagaccagagtctggcaggcctgaatccaaatccctgct
-gtcccaccaacctggctgGCAGAAGGCCTGatggggtaggggttaagagcaagaactaat
-gagccagacagtccaagtttaaatccaggctctTggccaggcatggcggctcacgcctgt
-aatctcaacactttgggaggccaaggcgggcggatcacctgtggtcaacagttcaagatc
-agcctggccaacatggtgaaaccctgtctctattaaaaatacaaaaaatgagatggacat
-gatgatgggcgcctgtaatcccagctacttgggaggctgaggcaagagaatcgtttgaac
-tcgggaggcggaggttgcagtggtgcgagatcccgccactgcactccagcctgggtgaca
-gagactctatctcaaaaaatatatataatcataaaaataaatttttaaaaattccaggtt
-ctgccttctactagctgcgtgaccttgagcaagtcaaatgacctctgtgtccctccattc
-gtccacctataaaatgggaataatcatcacgcccacctcatagagtcttcctgaagatga
-aagaagttactataccttaaaggtgtttggaatagtgcctgatgcatattcagtgctgga
-tacacattaccagttgttactCTTACTTCTAGTGACCTGAGAAGTGGGACCACAACACCA
-GACGAAGGCACAGCAGCCACGCAAAACTCCAACTGGCTGTCTCTGAAACACTCTAAGGGC
-TGTGGTTCTGCCAGATAAGAGTACAGGCATTTGGGGGGCATATTCTCAGAATCCCTGTTT
-CCTCTCTGCCTGTCGTGCAATGACATGGGACAAATCGCCCAGGTGGATCCAGCTGTACTC
-TCAGTCCTCACCAAAATCCCTGCTTCAGGTACAACCCAGCTCATCTGGGAGAGATACTAA
-TCTCTTTAATAGATCAATGTCCTTCATCCTGAGAAATGCTGGCATTAACTATGGAGATGA
-TTAAGTAAATTAATTTTGTGTTTAATTTATAAATTACCTGTATATATCCGGTTTTTAGTT
-GTATTGTATAAGAGATAGAATGATTAATAGGTTAATCTTGTGATTCTAATTTTAAAAGTG
-TAAGTGGGATTTTGATTTAGATTTAAGTTGAAAGGTTTAATACACTCTTATTAGCTCCgt
-tgcccaggctggtgttcaatggcgagatctcggctcactgctacttctgcctcccagatt
-caagcaattctcctgcctcagcctcctgaatagctgggataacaggtgcccgccaccaca
-cccagctaattttttaatttttagtagagatgcggttttgccatgttggccaggctggtc
-ctgacctcaggggatccacctgcctcagcctcccaaagtgctgggattacaggtgtgagc
-caccgcgcccggccAGATTACCCATATTTAGAAGTTTAAGTATTAGATATACAAGAATTA
-TGTAAATACCCAATGGTTTTTGTTAATCAGACAAGTGAACCATTTGAAAATGAAAATGAA
-TACGTTAAAATTTAAGATGTGGCTTAAAAGGTTTAGGAGAATTTAATTAACCAAGTTCCA
-AAACCCCCTTACAAGTGTTTATAAAAATTGTAAGATTCTTAAGTTGAATTTAAATGCTTA
-AGGAAGATTTGCAGTTTTAATAATGAGGATTTATTTTCATTATTGGTAGTAGCCCTAATT
-TATCtttttttaaattaaatcttttattacaagatagttcagattcacaagcagttttaa
-gaaataatacggagGggctggccgtggtggctcacgcctgtaatcccagcactttgggag
-gctgaggcatgtggatcacctgaggttaggagttcaagatcagcctggcgaacatggtga
-aaccccatctctactaaaaatacaaaatttagccaggtgtggtggtgcacgcctgtaatc
-ccagctacttgggaggctgaggcaggggaatcgcttgaacccgggagttggaggttacag
-tgagctgagatcacaccactgtactccagcctgggtaagagagacagagagagagagaga
-ctctgtctgaaaaaaaggaaaggaaaggagaggagaggagaggggaggggaagggagggg
-agaggaAAAGGAAAAGAAAAAGAAAAAGAaaaagaaaggaaagaaaaggaaacagaggta
-gtctatgtaccctttacccagtttctcccagtggcaacatcctgcaaaagtacggtacaa
-tatcacaaccaggatattgacattaagatgagcaagatataggactttcccataaccaca
-aggatcctgcctgtcgccttctacaaccacacccacttccctccccttaccaccctcctc
-acaactctgtccctaacccctgcaatcactaatctgctctccatttctataattttgtga
-tccccagaaggttatataaatggaatcatccagtatgtaactgtggggattggctttttt
-ttacttggcataattctctggagattcatccaagttgttgaatatatcaatagttctttc
-ctgtttatcgctgtatagttttccacggtggggatacaccataggttgtttaaacattca
-cccactgagggacttcaaggttgtttccagttttgaggaattatgaacgaggctgctatg
-aacattcacatactggcttttgtgtgaatataagttttcatttctctggaataaatgccc
-aagagtaaaactgctgggtcggattactaggaagtgcatgtttcatgttgttagaaatgg
-ccacacttgtttccagagaggctgcatcattttaccttcccaccagcaattgcgcacaat
-ctgacgtctcctctttgctagcatttggtgttatcactatttttttattttagccatttc
-gataggtgtgcagtgatatctcactgtggcttaatttgcattgccccaatggctaatgat
-gttgaacatctttttaatgtgcttatctgacatctgtatatctgctttggtgaaatgtct
-cttcatgtctttttcccattgcctaactgaattgtctgtttcactgttgagtttttactg
-ttactgatatattctacatagtagtcctttgtcagatacatggtttgcaaatattttctc
-caagtctatagcttgtcttttcatcctcctaaaaaggtctttcataaggccaggtgcagt
-ggctctcacctataatcccagcactttgggaggctgaggcgggcagattacttgaggtca
-caagttcgagaccagcctgtctctactaaaaatacaaaaattagccaggcatggtggcac
-acgccttcagtcccagctactcgggaggctaaggcaggagaatcgcttgaacccgggaga
-cagagtttgcagtgagctgagatcgcaccactgcaccctggcctgagcaacaaagcgaga
-ctccttctcaaaaaaaaaaaaaaaaaaaaaagtctttcacagaacaaaatttttaatttt
-gatgcagtccaattcatctatttttcttttatgggtcaagcttttggtgtgatacctaag
-aactcttcacttggccctaggccccaaagatttttctctcctgttttcttctaaaagttt
-ttcagtttcacattttacatttaatttctattttattttatctttgagctaatttttata
-ttcgttgttaaatcatttctttctttttctttttctttttttttttttttttttttttgc
-ctatgggtgtccaattgctccagcgccacccatggaaaaggctttcttcctccactgaat
-tgtttttccactttctgaaaaacccattgggaatattggtatggatttattccCTTTTCC
-TCACTGGGAAGTGTTGGCAGTGTCCAGCAGGTAGCTGATCCTTCATTCCCTGCTTGGTGG
-TGCTGATTccccaactgggatagtgctggcagggatgagtggggaggtcatcttctaacc
-cccacctggcagaagacagtgctctgactctctctctagggtagtgtcaacagagtctag
-cagtgacaagatttcatgaagtgtcatgaggtgggactcatcacctctgggcttcactcc
-cctcccccagcctacctatgtcagtagagcctggtgggagcctgagcctctatccccacc
-cagcatcagtgaggtAAAATAAGGTAGTGAGATGCAGGGCAACTTGGCATTCTACTCTCC
-CATCTCCTTTCTGTGTTTCAGTGTTGCCCACAGGGGAGCTGATCTAACATTACTTACTCA
-GAGGCAATGAGGTGGTATGAGTGATTTTATACATAGAtgtatacataagtatgctagatt
-gtctatgaagttcatttcaggataccaaagaaatattacaaaatatttgttattaattct
-cacaacaatcctaggtggtattagtgtccccatttcacaaatgagaaaaccaaggctcag
-agagatgaatgatttttccaagtgagtaaatggcagagccaaaatctgaccccatgtctg
-cctgagcctgacccaaggccTCGGAACTCCCCTGTAAAGCATGATAATGAtgtggcagag
-tttattctacgatttcaccaaaccttgttttcttttcctcctggaaaaacagatggacta
-catttcccaccttcccttgtggttagcagaggtcatgtggctaaattatggcccctgaaa
-catgagtaggagtaacatttgtcacttcaaatctggaccccccccaaaaaaaatgcccac
-ataattgtccatgttcttgttctctctcttccctctatgccagctggatgcaaaagtatc
-cagcagaagacttcaagaccttacaaaatatcagacccacaaggtcaaaggaacctggat
-ccctgaatgaccatgtggaacagaatccctccttcctcagatccacaaatgtactgtggc
-ataaatgagatataaacttctatatcaatacttgcaatttgggcattgtttattacatca
-gttagcctaccctaaTATAAGTGGTGTCACCAAGAGCCAAAAGCAGCCACTCTATCCTGT
-CTCCAACCCCCACACCAGCTCCCAGGTGCCTCCGCCCACCTGGTTGGACCCTAGTCAAAG
-TCTTCATTTTGCTTGTATGAAGGCTGTTGGCTTGTTGGACTGGAGGCAGAGTAGATGGCT
-TGGTTTCCTGCTTGGACTGCTGCCATGGAACATAATCCTACAAAATATACAATCagtcac
-atagcaccatgagtttatatcccagctctacccttttcagatatctgtgaccccaagcaa
-gtgacttgacctctcctgagcctcaatcttctcatctgtaaagtggatctaataataaaa
-cctacttctgtggattggcgcaagaattctgagagatatttatgaagcatgtggtaagtg
-ctccataaatgttagctatcactTTTTTAAATCAGCCAGCCAGAATTTACTAAGCACATC
-CAGGCTGTGAGGTGCTAAGAACTGTGAGAAACAGAAGGCATGGAAAAGACGCAGACATCC
-ACCCTCAGGAAACCAGAGCAGCAATCAGATGAATAAGAGAGCAGCATAATATACCCTTAC
-ATTCTGATAAGACAGTGagaggagaaaaatgaggttctgaggcttgctctgggtcccaca
-gcaaagtgtgacccggctgggactggaattcgggtctccagcctATATCCGCGGAGCAGT
-CACGACCGTGAGAGTGGAGAGCAGGTGGACTGCAGGGCCAGCGAGCCTCCCACCCCAGCC
-CTAGTCCCCCAAGACTCACCGGAACCTGGAACTCCTGGACTATGGAGTGAGTCCCAGAGT
-GCTTGGGTCTGGAAAGAGTTGGGAAGGGAAAGAACTTCCATTATCCCCAGCCCAAGGGGC
-AGCAAGCAGCAATTCGAAACAGGATTGGAGTCTCGAACCAGAAACTGCAGTTTACCGGGG
-ACAATAGCCCCGCGGGAGTGGGGCGGGGCCAAGGAGATGTGGGCGGGGAGAGGACGGGGG
-TCAGAAGACCGAGGGCGACCTCGAGGCGAGGGCGGGACAGCGGCGGGGTGTGAAGTACGC
-ATGCGTATTCCGCCTTTCTTCCAAtttttttttttttttttttttACCTACTTTTGTAAG
-ACATGCGCCATTGGGGAAAATGGAAGAGAAGTTGCGAGTCTGTGAGACCCTGATCTTCTG
-GTATAACTACTCGGCTTTTCCAACTTCCTTGTCTCAGTGTAGATCGCGCGGTAACCCAGG
-CCACTCAGAAGTCCCGAGACCCGATGCTTTCGCCAGCGTCTCGGTCTCCAAGGAAACGCG
-ACGCCGCCTACCGAGCGCCTAAAGGGACTAACCTCTCAAGGCAAAATCTAGTTCGGCCCG
-CTTTTCAATTTTCAAAttcccttcagtttgctctgcccataatcctaaaatatgatatca
-tatttctccactctcatcaaacttccaccatttccttcgccatcttcactcttggctaat
-gagtttgcttccaattttactaagaaaattgtgggaatcagtaaacccacaagttcatgg
-catcatttactcgcctacttgcctccctcccgtaactacgtataaactgcctactaagac
-caattcctacatttatgcaccgaatcctatcctctcacgttttctcaaagatattggccg
-agcagttctccccgttttttcctcctcttttctctctcctttgtatcatcagtataccaa
-cgtatttttaaatttcttctatttaaaaagattgtccacagccggacacggtggctcatg
-catataagcatgagagcactttgggaggccagaggtgggaagatcgcttgagccagaaag
-gtccagtctgcagtgagccacgatccagccactgcattccagcctggttgacagagcaag
-accctatctctaaataaataaacaaaccacttcccctccagccagctcccatttctgctt
-cattttaaagcaaaactcctagagaggtttgcctactctgtttcccatttttttccctcc
-tctcaatcaggctttcactccccactgaaactgccctcgtcaacatcattggtgacctcc
-actttgctaaaccccatggtcacttctaggtcctccctttatttggcctgtctgcagcat
-ttgacacaacagatcactccctcccctgaaacactttcttaacttagtatccaggaaacc
-actcttgagttgcttcctgcctccttttcagtctcctttgctggttcctcctcttctccc
-tttatcattgtagtatcccaggactcagtcccagccccctcccttccagtctcatggttt
-tgaataccatccgtacccagatgcctctcagactcacgtctccatcctccccctgaattc
-cagccatgtacatccaactgcctgcttgggccccttataagcaactctaatgtgcaatat
-ttttccagaaacatttttcccgaacttaaaatagggcatctctcttcttggaatcatcct
-taactcatctcttatcccacatccatcagcagatcctgttgcaataacttcaacgtatat
-ctggaataggaccacACATACACACACACACACCCCTCTTTCCTTTTGTACCCCAACTAA
-AGTACTAGTTCCCACCCTTGCCCTACACCAATTCTCTCTCTACACACCAGATTTGCTAGA
-TAGAGCACGGATTTAAAAGAGAATTCCAGTTTAAAAGATAATTGGGCGGGAGCAATAATT
-TTAAATCACTTAAACTTCAATAGGGGAACATTGCTATAGAATACCATGTCAGAGCTCCCA
-ACCTTTTCTGCCTCTTAAAAATCACAGGAGAATGTGTTTAAATGCACTGTGGTAAATAGA
-AGCAGCTGCTAGGATAAAAAGCAATTAGCCCAGGTACTCTGGCTATTCAGGCCCCTCCTG
-GCTGACCCTAGAGCTGAGGGAATCACTGTGTTGGGTACCCTCATTTGCAGAGCACACCAT
-ATGACAGCACTCTTGCTGGGCAACTCTGTACCAGGAAACCATTAAAAAGTAAAAGATAAA
-ggccgggcacggtggctcacgcctgtaatctcagcactttgggaggccgaggcagatgga
-tcacctgaggtcagaagttcgagaccagcctggccaacatgatgaaaccccatctctact
-aaaaatacaaaataggattagccaggcgtggtggcgggtgcctgtaatcccagctacttg
-ggaggctgaggcaggagaattacttgaagcagggaggctgatgttgcagtgagccaagat
-cacgccactgcactccaacctggacaacaataatgaaactccatctcaaaaaaaaaaaaa
-agtaaaaGATAGGAATACAtgacagatccaggtagtgacttactcaacagccattcctcc
-ccatcatcgcaactattggatcctgatcttgtccatgtatgcacttgccttaatggaggc
-aggccccaggtccagccctagtcctagtcccagctccaatagtcatgactgtctgaggct
-ggacttggtgagccaatttccctttccagttagaggtctagtcatagatacatgatgaaa
-gtctggctaagaagacaggatgagaaatctactcaaaggcttttgggaaaggttttcatc
-acacttttaaaaaaaggcattgcagaaaaacattccttcatctgctggtagacattgtca
-tatctgtgtgggattcctggaatcgcggaactgtgaggggagttggccaaagaggatata
-cagtgaatggtagagaggaaaatgtaaaaaccttcttccttgatagcactgttgagccat
-taaattaaccaaccctagcctggcacaatagtatgtgcctgtaataccagctacttggga
-agctgacgcaggagcatcgcttgaggccaggcatttgagatcagtctgggcaacatagtg
-agaccacatctcagaaaaaaaaaattttgttttaattagccagatgtgatgatgtgcacc
-tgtagtctcagctacttgggaggctgtggtgggaggattgcttgagcccatgagtttgag
-actgcagtgagctatgattgtgccactgcacgccagtctgggcaacagagtaagattctg
-tctctaaaagaaattaattaattaaattaacctttcacctatctagaaaatacttgagat
-taaataagaaatcacattactgggtgagcaaatttgagttgagttttctggtacttgcag
-accaaaagcattttactgaACCCTACGTCtggaggaacaacaagatagaaggaacctggg
-tgggtccctgacaaccttgcaggagaaagtcacctacctgtccttactgcctgccaaatt
-ccgagctgcttcatcaaagagaaataaacctccaccttgtctgagaccctgtatttgaga
-gtccctttgttacagtagcttaacctgtaccttgattaatacaAAGAAGAGCTTGGCCAC
-TGTCAGACAGCCTTCCTCATCAGACATGCTGACCCAGCATGGACACCCACTGAGAGCTGC
-CTGTGCCCCACATCTCAGGTACTTAACCAGTAATATTACTGCCTCCCACTTCAAtttttt
-tttgtttttgagacagagtttcgctcttgttgcccagactggagtgcaatggcatgatct
-tggctcaccacaacctctgcctcccgggttcaagtgattctcctgcctcagcctctcgag
-tagctgggactacaggcatgcgccaccacaaccggctaattttgtatttttagttgagac
-ggggtttctctatgttgctcaagctggtctcgaactcctaacttcaggtgacccgcccgc
-cttggcctcccaaagtgctgggattacaggtgtgagccaccgcacctggccCCACTTCAA
-ATTTTTAAAAAAAATACATAAAAACATTTGCAAAAATGCTGCCATCTTAATCAAAGCCAA
-AACACACTTGAGGGGCCACTGACAATCACCTGTAACAAAGCTGTTGGAACTGGGATTGAA
-TCAGATGGGGTCCATTTGCACTTACACCTGTTCAGGTGGCATTTCTGTGTTCACGAACAC
-CTGATGGAACTTCCTGCCCCCAGGATAGGTGGGCAAGATGAGCTGGCCTTTCCTCCCTGC
-ACATGTGAGGTGATAAATGTGATAGAGGGCCTCTCAGGCCTGCTTGGCTCCAGGCTCAGC
-AATGGCAACCTGGGCTCTGATTCCATCAACATCTTGCTGAGAGGTGGACTAGGCTGAGCA
-GGCAGTCTCGGGCTTCCATCCATGTCATTTGATGTGCTGGCTTTGTGGCAAATGTGCACA
-GCATCCTAAACCCACAATCCCTACTGTTGTCACTGGGTAAGATGCCGTGGTTCTTGTGGA
-GACACCTGCTATACTCGACATAACAAGATCCTAGACATTCCTTCTTATCATCTGCACAGC
-CCTCCAGAGCTGCTCTCTCCATACGGCCTCAGTGCCCATCCGGACTGCTCTCCTTGCAGG
-GTACCTGCCTGGCCCCTGTAGCTCCTGATGTAATAATCTCTGCAAAATTTGACCTGGAAA
-AAATGAAACTGACCAAAAGGATGGCCCTACACATACCAATGAAATTGTACAACAGAAGAA
-GATATGATTAGCAAAATTGGACATGGAGCCAGAACCTAATCCACAAGTCAAATATTTTCA
-AAATACAGACAGATGCCTTTAAAGTCCAACACAAAACAAAAATGCTCAAAATACGTTGat
-tatatgagagttcctgactagtgcagtaagacaagaaaaagtataagatttgaaaaaaga
-gacaaaaccttcattattcacagacgatatgattggcaatacagaaaagtaaagagattc
-caaaaaccactggaaattttttaaggtttcaactttgttgccagatatggggtcagtaca
-caaaattcaatcgtgtttcctctaacggacaccaacaaaccatatgtaacttctgattta
-caataatttcacttacaatagcagtcaaaccacgtggtactttggaataaatccccaaaa
-gtatgtaagacctttatgaagaaaactataatattttattgaaattcataaaataaggcc
-taaataagtgagaaatcaagtggggtcattgatggaaagactccgtgttataaagtggta
-attctgtacaaatgcagtgcaacgccaattaagatctcatagtttcctggaacttagtag
-gcaggttgtgaaatttatatggaggttccaaatatagctgagaccatcttaaagaagacg
-aaAGAGAGAGAAGAATGtttcccataaaagaagaaactggagttcagatttctctttgga
-aactgaaagatccccccacagtggaccctcacttctggagaggaatattcagctacagtt
-gactagcagttgccccttcagatagaatattcgatctccagttcacccagtatatcttct
-acttaaggcacctgcctgacccttgcagatatttgattatgtgaTAGTTACCTGGAGTGA
-GGGCTTAAGATAAGAGGAATGGAAGAGATTGTTTAAAATACATCTATTGTTTGGTTGTGT
-AAGTATTCTCCTCATGGTGAAACTTGACCAGGCAAGTAGAAAGAATAACAGAGAAGTATG
-TGAATCTAagacattgatgtttctggtaatggtgaagttccgagtatgatcacgggaatg
-cgtggctgagaagggataaaggaaatggtgcctgaggatataaagtgagaggactggaaa
-gTGCAAACGGCCCAAGTCAGTGGCTCCCCTGAGACCAATACCAGCAGTTGGGATGAAGGG
-AATCTGCCTGTTAACAAGGTTTCCTAGGATCTGATGCACAGTTCTTGATCCACGGCGTCA
-GAAATAAAGTGGTTAAATAAATATAAGCTACCggccgggcgcggtggctcacgcctgtaa
-ccccagcactttgggaggccgaggcgggcgatcacgaggtcaggagatcgagaccatcct
-ggctaacacggtgaaatcccgtctctactaaaaatacaaaaaattagccaggcgtggtgg
-cgggcgcctgtagtcccagctactcaggaggccgaggcaggagaatggcgtgaacccggg
-aggcggagcctgcagtgagccgagattgagccactgcactccagcctgggcgacagacca
-agagtccgtctcaaaaaagaaagaaagaaagaaaTATAAGCTACCTATACGTGGGGCTGC
-CTATTAACTCCGCcaagtgacttaactcctgcctctttatctgtaaaatgggcataatta
-cagcattgtttttggaagattccatgtaataaagtctgaagtgtgcttaacacagtactg
-ggaacttaagcagcactcaCACTTCATCCTAAATACGACGAAAGTCTTTTCAAAAAAATA
-AAAATTAATGCAATATGACTTACTTGGAAATGTATCAAAAAATAAAGACCGATGAATGGA
-TCGAGGCGTAGTGTGACAGAGTAAAATTTTAATGATAAAAAGTTAATGGTAAAATGTTCA
-CTGTAAAACTTTCAACTTTTCTTCTTGAAAACGTGCATAATCCGACGTGGGAAAAAAAAT
-AACGCATTGCAGTCAGTTCTGGGGAAACGGAAAGCTAAGTTTTAATTTTGCTATTGCTTT
-TGCTTTTTTAACAGAAAAGGTACAAAAAAGAAAAAATGGGAGAGATGTTGCCGAACTCCG
-TCCCGCCTGTGGGCTGTGGGCCGTTAGCAAAGCTGCTAGCATGAAATCGTCGAGCACCGC
-TTGCGAAACGCCAAATCCTCGAGAGCGAGGCCGGAGGCTGCCAAACCCGCGCTGGGGAAA
-GGGCCGCCTCCGGGCGCCCCATCCCGCTGCGGACGGAGGTGAGGTTGGAGCGAGCGCTGG
-CGGAAGAGAGGCTCAGCGCAGGGGGCGCAGAGCCGGCGCTGGCCAATATGCGCCGCATGT
-GATACCTTTGAGGGCGCGGCGGGGGAGGGTAGCGTCAAATTTCAAAAAAAAAAAAAAACC
-AAACCCACACAgccccggcgggcgggcgcgcgcgATGGGCGCCCTTTGGCTGCGGGAGCG
-AGTGGAGGATGCTGGGAAGGAGGTAAAATGGCCACCGGCGGCGGCGCGGAGGAAGAGAGG
-AAACGGGGGCGGCCGCAGCTTCTgccccccgcgcggcccgcggcccggggcgAGGAGGCC
-GACGGCGGCCGCGAGAAGATGGGCTGGGCCCAGGTGGTGAAGAATCTAGCCGAGAAGAAG
-GGCGAATTCCGCGAGCCGCGGCCGCCGCGGCGGGAGGAGGAAAGCGGCGGCGGTGGAGGG
-AgcgccgggctcggcggccccgcgggcctggcggcgccggACCTCGGCGACTTCCCACCG
-GCTGGCCGCGGGGATCCGAAGGGCCGTCGGAGAGATCCGGCCGGCGAGGCGGTGGACCCC
-CGCAAAAAGAAGGGCGCTGCGGAGGCGGGCAGGAGGAAGAAGGCCGAGGCGGCGGCGGCC
-GCCATGGCGACCCCGGCCAGGCCCGGCGAGGCCGAGGACGCGGCCGAGCGGCCCCTCCAG
-GATGAgccggcggcggcggcggcaggcccgggcAAGGGTCGCTTCCTCGTCCGCATCTGT
-TTCCAGGGAGACGAGGGCGCCTGCCCGACCCGGGACTTCGTGGTAGGAGCGCTTATCCTG
-CGCTCCATCGGCATGGACCCGAGCGACATCTACGCGGTCATCCAGATCCCGGGCAGCCGC
-GAATTCGACGTGAGCTTCCGCTCAGCGGAGAAGCTGGCCCTGTTCCTACGCGTCTACGAG
-GAGAAGCGGGAGCAGGAGGACTGCTGGGAGAACTTTGTGGTGCTGGGGCGGAGCAAGTCC
-AGCTTGAAGACGCTCTTCATCCTCTTCCGGAACGAGACGGTGGACGTGGAGGACATTGTG
-ACTTGGCTCAAGCGCCACTGCGACGTGCTGGCCGTGCCGGTGAAAGTGACCGACAGGTTT
-GGGATCTGGACCGGGGAGTACAAATGCGAGATCGAGCTGCGCCAGGGGGAGGGCGGGGTC
-AGGCACTTGCCAGGGGCCTTCTTCCTGGGGGCCGAGAGGGGCTACAGCTGGTACAAGGGG
-CAGCCCAAGACATGCTTTAAATGTGGTTCCCGGACCCACATGAGCGGCAGCTGCACGCAG
-GACAGGTGCTTCAGGTGCGGGGAGGAGGGGCACCTGAGCCCTTACTGCCGGAAGGGCATC
-GTGTGCAACCTCTGTGGCAAGCGAGGACACGCCTTTGCCCAGTGTCCCAAAGCAGTGCAC
-AATTCCGTGGCAGCTCAGCTAACCGGCGTGGCCGGGCACTAAACACCCGCCTGCCTGCCA
-GGGTGAACACACAGCCAGCTTATCCCTCTTAAGTGCCAAAACTTTTTTTTAAACCATTTT
-TTATCGTTTTTGAAGGAGATCTTTTTAAAACCTACAAGAGACATCTCTCTATGCCTTCTT
-AAACCGAGTTTACTCCATTTCAGCCTGTTCTGAATTGGTGACTCTGTCACCAATAACGAC
-TGCGGAGAACTGTAGCGTGCAGATGTGTTGCCCCTCCCTTTTAAAATTTTATTTTCGTTT
-TTCTATTGGGTATTTGTTTTGTTTCTTGTACTTTTTCTCTCTCTCCTTGCCCCCCTCCCG
-CCCTCCCCGCCCCATACCTTTTCTTCCCCTGGATTTTCACCCTTTGGGctgccttgctca
-tctttatgccccagcactaggtacggggcccaacacgtggtaggcactccatcagtgttt
-gctgaatTGAAAACATTGTTGACTGTGGCTTCTATCAGAGTGTCTACCTTTTGCAGCTCT
-TCCCCTCCCTCATTTAATTTGCTGCTTTTAATCTACGTGGTCTGAGAATTTGTGAAACCA
-GTGTTGTTAGAAGTGTATATAATCTGAATCAATAAGCTCTGAATGGTGGCCAAGGGCCTC
-TCTTATGGCACAAAGATGCATGGACTTCATGACAGCTCTTTTGGTGGCTCAGAAGCCATT
-TTTTATAgaatcatggaatctagaatattcctgctggaaagaacctgagagttggtttgg
-accaattccctggttttccagcagatgaaacaggcccaaagaggttaaatgactgggtga
-aaatcacatagctgtctggtgccagagccagcctatagtagagtcccctgaccccaagcc
-cggtgctcattccactACCTCTCACACTTCACAACAATTTCCTCAACACTTGAGGGCCCA
-GAAAGTCTGATCTCTCCAGAATGATCAGCCCAGAGGAATGCTGAGAAATCACCTGGAGGA
-GGGAGCAGAAAGAGAAGGTTTTTAAGGAGGGGCTTCTGAATACTTGGGAGATACGGAACG
-GACCAAGGACCACACTCCAGGGTGCATTCGTTGCTCCCTGGGGCACCACTTCTGGATTAC
-AGTGTGCCAGGTCCTTTGGAGGCCCTACCCCTTCCCCATTCATTGCCACCAGTGAGAAAT
-GGGGGTGCCCCTGTGTAAAGAAACCTACCAAAGGTTTACATTTGCACCTTAGCCTCAATA
-GCTACGAACCCTAGAGAAGCAGCTAGCTGGAGCTCATGTGCAACTCCTGATTCTCAGGAG
-AAAGATGGATTTTAACCCAAAATTATGAGTGAGCTGTTAACTCTAAAATGTACTTGGGAG
-ATAGGCCAAGCGAGAGGTCATGGGCCAACTAAGTGTTATCCAGTAGAAAAGACAGTACAC
-TGCTTTTCTTTTAGTGTTTGCTTTTCCTTTGCTATATGTTTTGCTATTTCCTTGTGGCTT
-AGAATGTAAAATTGATTGTTAAAAGTTTTGTTCTGAATAAATATTTATCTTTTGTATTGC
-TAAAACTGGTGCACTATTTCCTTTCAAAGTGTTAGATGCACAGTTACCCAGCTCCAGACC
-GTATTTCAATCCCACTTCCCCTACACTCCATTTGTTTACCTTGCTAAATACATTTCCCAC
-CCCTGCAGGCAACACTTAGCACCTACTACGTTGTGCCGGTCCCTTTGCATCACAATCAGC
-ACACTGTTAAAACGGGTTTTaagtcctaacacagttccaataaatcagaatcactgttag
-aggaagtgaaacattttagttaatcatcctcaagcaattctgatgggcagccaggtttga
-gaCCAGAGTATAAGATGTGTGAGCTGAAccctgccctcagggagattacagacctgtggg
-aaagagagGTGGTTTGCCAGCTTCCTCGTCTTTCTGTTACTGTAAGCGCGCGCTGTGGAT
-GGGATGCAAAATATTCTTGGGTTCTGGGAAAATGCCATTTCTTCCAGCTGTTGAAAAAGC
-GGGATCCAGGGAGCTGACTTCTCCAAGTTAGCCCCCACTGGAGACTGGGCCTGCAGGCAG
-AATAGGGTCAAGGTCCCTGGACTTCAGGTCCAATACCCTGCAGACCCCAGATACAACTCT
-CTGAAGGATTTTCCAGCTGGTGATGCTAGGATGATCTGATCCTGAGAGTTAAACGTTCCC
-AGTATATTGACTCTGACTCAGTGATTTGAGGATATTTCCAGAGCTGATCTGGAGTTGGGA
-CCTGGTAGGCTCTTGGGAATCCTGTCTTTCAGAGCCAGTTCAACCCCTCTCCTTGTCTCC
-CAAAGCAAGCAGACTCTCCCCTCCCTCCCATCCCTCTTTCCCGTCTTTGCCAGCGGTTTC
-CCTCCCTCTCACAGAGCTGGAGGCCAGGGGCCAGGAGAAAGCCTGCATTCACCATACTCT
-CCACTCCGTTCCTCAAAGCAGGCACTGTGCCAGGGAGCCTCCTTGAAGGAACCTTCCCTC
-TCCTGGCCCCATCCCCCCACTCTCCAGGAGGGAGGAGAGGAAGAAACTGTTTCCCTGCCC
-ATCCCCCACAGGATCTGCTTCAAGGCCTCCTGCCTGGTGGCCCAGGGACAGCCAGGGGCT
-GGAGCTGAACAAACCTCCCCCAGCTTCCTTTCCTGATCAAGCAGCCCTCAAATTACAATT
-CTTCACTGTTTTTGGGCTCCTGGAAAGTGTGCAGAGATGCCCGGACTGAGGCTGGTTGAC
-TAGGGGACATTGattcattccacttcaacaaatacggagggcattagagctgggccccat
-gcaaggccctctgcataggctgccttgaacaagacagTGCACTTGCAATGGAAGGTACAG
-ATAAGTAACAGTAGGCAATGTTTACAATCATATATTTAACAAtttttttttgagacagag
-tctcactctgttgcccaggctggagtgcagtggcatgatcttggctcactgcaacctcca
-cctcccggattcaagcgattcatgtgcctgagccttccaagtagctgggattacaggcac
-gtgccaccacgcccggctaatttttgtatttttagtggagatggggtttcagcatgttgg
-ccaggctggtctcgaactcctgacctcaggtgatccacctgcctcagcctctgaaagtgc
-tgggattacaggcgtgagacaccgcacccagccAACATTTGTCCTGTatagaattgtctg
-aagtaaaggtttccctagaagagaaaacgtcctgactgaaacctgcaagatgagtaagaa
-ccaggctaagagtgaagagacagccaagcagcagaaatagcagatgtagaggcctggagg
-ccagagagcacacagcgtgttcggactggccaagagtcaggggaagatgtggctgggaga
-aaacgccgagaagagGTGTCACAGGGCTTACCAGCCATATTTAAAAACGTGGATTTTGTC
-CTCAGAGCCTCCAATCAGGCCTCCTCCATTCCattcattctttcaacacatgcctgttaa
-gcgccaactctataggggccttttctaagcgatggaacacagcatggagcaggataatca
-agtccctgaagctcagattctagagtcacacaagtacataattacagacgatgatgcact
-aaaagaaacatacagggtgagatccctgtttaacaagcaaagctgatccagtcttaagga
-tcagagaaaatgtttgaactgagatggaaaagacataaaaggagttaatcgagagatggg
-gctggggattaagggatggcaagggtattaacctaggcaagagggatagcaagtaaaaca
-accctatagtgggaggaggcatgaccacttctagagacTAAATGAATCAGTCTAAGTTTA
-GAAACAGAAACCACTCTTGCTGTTGAAGAAAATGCTGGTCCCTGGGCTGGGTATTAGGAA
-TGACTCCTAGAACACCATAGAACTGCCAGGGGAGTTACTACCTCTCACAGTCAGAAAGAC
-AGAAGCCAGGAGGCCACCACTGGAAAGGCTGAGCATGAGGACACAATGGTGAAGCTGCCA
-CCCAAAGACAGGATCCTGGGATCAGAAAGTCACTGCCAATGCCACTGGCAGGACAGTGAA
-ATGCCAAGTCCTTTCCCTGCCTCTACAAAGCCAGGGACTGTGCACTACTGTCTCCGCAAC
-CATTTACAGGTAAAAACAGCCCAAACTGTCTGGCTTACTTATGCCTCCCTTCCATCTTTT
-ATGCAAATACATCTAAGTGCTAGAGCCCTAGCTGCAAGGGAGTTGGGAGATGTTTTAGCT
-TTCCAGCATCCGCAACATAGGAAGGCACATAGAATGGGGATGGGTGCTGTCTGTCAAAAG
-ACAATATCCAGCACAAAAAATGTGACTGCAGTGCAGAGAAGAGGAGCTCGTGGGagcatc
-tggtaggccatgttaagaatgtgggtctaagaacgatgtgccattgaaggacttgcaagc
-aagagagtaacatgattagattggttatgttttacaagcatcattcaggatagttggtgg
-agactgggtcagaggagagcccaaggggaaatacagtatagttcacccaggtctctcgag
-agatgaggacatcttaggcatggaaggcggagatgtacagagagaaacagccgagtaaag
-aaatctttcagagtttaagtcaacaagatttggagctatatttgacatgggctgggagaa
-agttaagtaccaaggatgttgcccaggtttctagcttctgcagttggatggatggtgggg
-cttttccctgagatgcgaaacagaagagaaaatccaagtttagggtgaagggcttgaatt
-tgattttggatatattgagtttaaggtctccgtagaggatatctaagaggagatgtggag
-taggcggttggatacacacagatcttacattcctaggagaattctggccctgagaaataa
-acacaggagttgtacagcTgtggctttcaaactgttttaccacatcccacagtaagatat
-atattttacattgcagccatcatacatatgcatgtgtgtatttatatctaaatctgaaat
-aagcttcctcaaacaatatttgccctgtgcatgatgcaccttgacactttctattccatt
-gcttcatccttttgtcaatgcttatatgacgtgttaaactgatttcacactctcctaatg
-gTCAAGAGAGAAAGCAGAAGGAAAGATTATACCAACTAAGATTGTGCCTCAAGCAACTTT
-GACACAGTTTTCCCTGATGgaaaaggagatggtgaaaaactaataagggacagccagaaa
-gggagaaggaaaaccagaacgtgcagaaacacataaaccaagggaggacatttcaggtgg
-taggggttaacaattgtgtcaagggctgcaagaaatcaagtaaaatcagctctaagaaat
-gtcaattgAggccgggcgcggtggctcatgcctgaaatcccagcactttgggaggccgag
-gcgggcggatcatgaggtcaggagattgagaccatcctggctaacacagtgaaaccccgt
-ctctactaaaaatacaaaaaattagttgggcgtggtggcgggcgcctgtaatcccagcta
-ctcgggaggctgaggcaggagaatggcgtgaacccaggaggcggagcttgcagtgagctg
-agattgagccactgcactccagcctgggcgacagagcgagacgccgtcaaaaaaaaaaaa
-aaaaTgtcaattgagatcagaactgaagagtgccctaggattgagtagtgtggaggttat
-caataagggccttttagaggaaagtgatgggggcagaTTAAGGAGCAAATGATCTTTCTA
-AGATGTCAATCTGGCACGCTGACCATTTTATTCCCATGTCACGTCCTCTGGGACTCCCTT
-GTGCACTTGGAACCCAGCCTGGTACCCGATCCCTTTCACAAGAGGCTCCTGGACTCCTTT
-CCAACCTTACTCTCAGCCAGATTGCCCATTACATCCCTTTATGTCAACTCCAGTTACGGC
-TGACAAACAGCAACCAGAAAGAATTTTGGAGTATGGAGTGGTACAAGACCAAGCTAAGGg
-gccaggtgcaatggttcatgcctgtaatcctagcactttgggaggcctaggcaagtggat
-cgcttgaggtcaggagttcgagaccagcctggccaacatggtgaaatcctgtctctacta
-aaaatacaaaaaaaaatagccatgtatggtggcatgcacctgtagtcccagctactcagg
-aggctgaggcaggagaactgcttgaacctggTGATACAGGAAGGGAAGTGCTGGGAAGGG
-AAGGGCACAGTCCCTTTAAATGACATGGAAGGGAGAAagggcgtggtccctggctagggc
-tccaccccagcctgtgcccatggacctaggtgaggacaggcatttttgttttcctgccca
-aatgttgcatttcccaagaccaccctggccggccacgcccccatcctgtgcctataaaaa
-ccctagcaggcagacacacaggtaactggacggctagaggagcacatcagtggaggaaca
-cacaagcggctggacgtcgagaggaacgcaccgacaggcactgacaaaccagcacaccac
-aggccatcgaccaacagaactatgcagagtttggctggggcagtcggaggggagcctggg
-ccactgaacagtccaactccaggggaaaaccttctcactccatccccttctggcttcctc
-catctgctgagagatacctccactcaataaaaccttgcactaattcttcaagcccaggtg
-tgatccaattcttctggtacaccaaggcaagaacccaggatacagaaagccctctgtcct
-tgcaacaaggtagagtgtctaattgagctggttaacacaagccacctatagatggcaaaa
-ctaagagcatacggtagcataagcccattggggcttcaggagctgtaaacatccaccact
-agacactcgtggggtcggagccccacaacctgcccatctgtatgctcccctagaggtttg
-agcagcgggacactgaagaagtgagccactccccttgtcacacgccctgggacggggaca
-agggaacttttcccgtttcaGTgggaggcagaggttgcagtgagccgagattgtgccaca
-ctgcactctagcctgggcaacagagcgagactccatctctaaataaataaataaaaGGAC
-CAAGCTAAGGGTGAGGAGACGTCAGATCATGCTGAGTTGAGGGTGGGGGCGCCACAGGAG
-TGCACCAAACGTGTACAAAGGCACTGATACATACAGCCCCATTTGCTGGCTTGTCAATGT
-GACTAAGATTTGGGGTAGGACATAGTAAAAGAAAATAAACACAGATATATTATGGAAAAG
-AATGTAAACTTTGCAGAGTTTTAAATAAAATATGACtttttttttttttgaggcagggtc
-tcactttgttaaccaggctggagtgcagtggctcactgcgtggctcgctacagcctacaa
-ctcctgggctcaagcaatacttctgccccagcctcctgtgtaactgagactacaggcaca
-caccaccacacccagctaatttttTCTttctttctttttttttttttttttttttttgag
-acggagtctcactctgttgcccaggctggagtgcagtggcacaatctcggctcactgcaa
-cctctgcctcccgggttcactgtggatatatcccctcccgggatatatccatcactgtgc
-ctggcacagctgcagcctcccaagtagctgggactacaggcacccgccaccacgcccggc
-taattttttgtatttttagtagagatggggtttcaccgcattagccaggatggtctcaat
-ctcctgacctcgtgatccgcctgcctcggcctcccaaagtgctgggattacaggcgtgag
-ccaccactcccagcctctctctttctttctcctctttcttctctttctttcttttctttt
-tcttttcttttctttcttccttccttcctcctttccttcctttccttccctttctctctc
-tccttccttctttccttccttccttccttcttctttctttctctttcttttctttcttca
-gggtctcaatatgttggccaggctggtcttgaactcctgccctcaagtgatccttccacc
-ttggcttctcagagtggtaggattacaggtgtaagccaccacacccagcccaagaaagat
-tttattttatttttttatacagacagggtcttgctatgttgcccaggctagactcaaact
-cctggacaacatagcaatcttcctgcctcagcctcccTAGTAGCCAGGTGTGCACGGAAC
-AAATTAtatgtattaatatggaacaatctctaagacacattattaaatgaaaaaaagcaa
-gatatggtatcctacagtttacattttttaatgttggaataaatacatacataccctcag
-caccataggaaagattttaaaaaagaaaaaatatatatacatatgcttatttttgtacaa
-atatgtaacactggaaggatattaatgaaattcgtaatttgtaACTTTGGAGAACTGGAT
-ATTTGGGGTTTGGGATAAAAGGAAAGTTTATTTTCCACTGTGTATCCCTGCTTTTAAAAA
-AATATTTCATCTATTATCTCTAACAACAACAAAAACAACTTTTAACAACAAAAATAAATG
-CAAAACACAAGACTTCAACGAAATTCCTATAGACTTTAGAGAGACAGGAGTCCATCTCCT
-CTATCTTTAAAAGTAAAggccgggcttagtggctcatgcctgtaattccaacactttggg
-aagccaaggcaggaggactgcttgagcccaggagtttgaggccagctgaggcaacacagg
-gatatcctgtctctacaaaaaaaaaacaaatcgttgggtgtggtggtacatgcctgtggt
-cccagctacttgggaggctgaaacaggaggatcacttgaggttgaggctgcagtgagccg
-tgatggcaccactgcactccagcctgggccgcagagtgagaccctgtctctaaaaataaa
-ataaaataaaataaaaataaaaAATAAGAACTTTGATGGAAGAGTTTAAGAAATTCTATA
-GCAGACAACACATTGGTCTCCCTGCTTCCAGGCTCCCTCTCCTTCCAACCATGGAATCCA
-CCCCAAAACAAAACTTGATCACATTTCTCCCCCGCTTAAAGAACTTCAAAGATTTTGCGT
-CCTCCCTGGTGTTCACCAGGGCCTGCCTGACCAGCCCTGCCTCCTCTGGGCCTCCTCTCT
-TGTCGGGCCTCCCCCTCTTACCCTGGCTTGGCTTCCCcttctgctccagctggtcattcc
-tggaagcagatctcttcctcccctacccatggttaatccttacctgcctggggcactcag
-ctctaatgctgcttcctaactagagcctaccctaacatcctgtatcagaccctcttacac
-cgtccgttacctccctggcctctccttcagcagttactcgggtgcaatgatatacttatt
-tgtgccatggtttgattgatatctgcctctgcctctccactttgagctccctgagggcag
-gaaccagtctcttttggctcacggttatagcttgagcaattagcactatgcctggcacag
-agtaaagcctaataaatatttattgcatgcatgaTCTAGAATCACTTGGCTGAGGTTACA
-GATTAAGACACGTGTCTACTTGTCCTTCTTTAATATACTTAACATACCTTAGCACTCTGT
-CATTGACACATACTGAACAAGGGCTTATTCATTCATCTTTTAAAAGCTAACTCACTCTTT
-TAGTTTTCCCACCTTTGATAAGGGAGGATAGGACCTGGGAGGTCAGGCCCTCGGTTTACT
-AGCTCATCCTCCTCTATTTCTCTGAGAGCATAAAATCACTGGAAGTCAGCCAGCATGCCC
-CATGGCACTGTGAGGCACAGGGGAGAAGCACCAGGCTCCTGGATTCTGAATGCGTGGCTT
-TGAAGCCTGGCAAGAGTGGCCCCTTCCCTGAGTCCCCCACCAcccctccccttggggcga
-ggattctgcaggcatgagaagtgcccacccagagtctgtgcctatgccttctagaacacg
-ctctgatacccgataattcccttccaaaatgtcactaagttaattcacagggctctttgt
-gggcctcatccctggcttcatctcacctgagggcaaactatactgcctgatgcacatctt
-atagacctgagccttgggcctcaagatagctgtttgcaggtgacagctaggtgttgaccc
-atgcatgctagctccatcactgatgggatgagaggtagctggataagggatggatacagg
-ttccaggggacaggtctccttgggcctacacattctggcacataactccaagggtcttag
-aattctaatttgaacatggccttccaggttgttagaggatatatccatcaaggaagaaaa
-cagaacatatttcatttaacacttgctggactgttgtataatttctaactatagagacat
-atggtatatgggcctccaactctactcttgttctgagccccacaaatgCCCATTtggttc
-tgtcatttctttgcatagacaagctacataacctctctgaacttcagtttcctgagcagg
-aaaatgggtctatggtaataactacattatcagggctggtgagaaaatgaaataaaataa
-tccatgtcaagggcttgagaagaatgccCTCTGGCTGTCGTCTCCTATGACTTCCTGTAT
-GATCTCCAAACTGCTCTCTTTGCAGGGTTTCAACACGGCTGCTCCCTCCTGCCTCCTTAC
-CCACAGCCAATAACCTCCCCATTCTCTCCACCTAGTCAAATCCCACCGTCTTCAATTGTG
-ataatagctggttgattgcacgtttactacgtttcaggcattgtattaagaactttccat
-gcattaactcagttctgacaccaactcgatgaagcaggcactgtttattattccccaaac
-acaaagacacagggatctggagactggaagcactggcggctgcaagtggcagggctggcg
-gggtgtgaagccggagaggagtctttctgcagTCAGGCCTCCCAAATCCCGGGATGGAAT
-CAAGGAGCCTTTGGCTGTCCCACCCCTCCTCCTCCAAGCCCCCAAATCCAAGTCTGTTAT
-ATCCCGTCAGCTCTGCGGGCCTGCCTGTGACTTTCAGCCCAAGGGGGCGGGCACTTCGTG
-TCACGCCACGTTGTCCACATCATCGAccctccctccccttctccccttccttccttccct
-ccctctcttcctcccATTGAGTGCCAGTTCTGTGCCAAGCTTTGCTGTTCAAAATGTTAC
-GAGTGGAGAAGTCAGGGAAGGATGGAATTATAGGTGTTTCTTCTTCATACCTTTCTGTTT
-GGCTGATTTTTTTTCAAATGAGCACGCAGGCCCGGTTCCTCAAACCCACTTCCAATGTGG
-CATTGCTGGGTTGGTTTGGTCCAAGGAAAGCCCTGTCTCCTTAACTCCCAGCCCCCACGC
-CTCCTCCGCCGGCCCCCAAATCCAGGCCGCCCTGCCCCCTCCGGAAAGGGGAGTTGGGGG
-CGAGCGCCGAAATCTGAGTGGCTCTTTCAAGCCTCCGTTGCCATAGAAACCGGCCGCACA
-GGCCGATGCTGTCCATTACACCATCCTCTAGCCTCGCAGCCAATGGACTCCGAGCTCCAT
-CGCCAGAGGCCCCGCCCCCCAGCTCTGGGGAGTCCACCAATCAGCAGGTCCCGTGACTTA
-GAGCCCTGCCCTCGGCCCAGGGACACCACCAATGCGCTTCGACCCTGCCCTCCTTCTCTT
-CGGTGTAACAAGAAGACTCGatatttttttttttttttttaGGAATTCTCCAGATCAGAA
-GGAATTGGCAGTAAGGCCTCTGTCAGCTGCACCCTGAATAATCTTTGGCTGCTATTTTAT
-TTAAGGAGAGCAAAACTGTTTCAATTACGCAACAATATATACCATTCTCTACTAAAACAA
-TTTTAGGAAATGAAAATGTAGGCAATGGGATGATATAGTCTGCTCTATATGAATGTCTTT
-CATTATAGGTATTTTAATTTAACTTAAAATGATCAAGGAACTAGTCATCTTTCCTTTGTA
-TTTCAAATGCATACAAAATTAAAGATACCGAGTTTTTTGATGCAGAGTTCATGAGACATT
-GACTTAATTAGTTGGTAGGCAACTTTTACTGAACCATCTAATTCCTGGTTCAGAACATTA
-CAACTGGAGGATAAATGAATATTTCTCTTAATCCATGGAAGAAATTCTGTTTTTGAGGCG
-GGCTGCGTAAATGGCTCTGACACTCTGGAGTCTAAATAAACCAAATGTGTTTTTAAAACC
-CGTTTGCCATTACAAaaaaaaaacttcaattttttagaacacttttagatttacagaaaa
-attgtgaatataaagttcccgtctaccccagccacccaCCCTGtttctttcattattatt
-attattattgagacagggtcccgctctttcacccaggctggagtgcagtggcgcgatctc
-ggctcactgcaacctccgcctcccaggctcaggcgatcctcccacctcagcctcccaagt
-agcagagactacaggggcatgccaccaagcccagctgatttttgcatttttcatagagat
-gaagtctcgccatgttgctcaggctggtgtttctgctattaacatcacatatggtattgc
-agacgcatggtatatttgttccaattaataaaccaataatgatacattatttattaatta
-gagttcacagtttattcagatttccttcgtttttacccaacgttctttttctactccatc
-tttttctactccaggatccatccagcatgcctcatcgcactagctgtcgtgtctctctgg
-gctcctcttggctggggcggtttctcaCATAGCAACATGACatcactgttggtgctgcgt
-caggtttctctactggaaagtcagtcttcttttgccccttttcatactgtactctttgga
-aggaagtcactatgctcgggccacacttaagtgaggagttatgctctatctccttaaggt
-tggaatagctacatagattatttgggatttttctacactgaagatttgtctcatttattc
-agtaatttatttatatcagtatggattcacagataattatttaatactttaggttataat
-ccaatactatttgattttgttgctcaagttgttccagctttggcttttgggagctctttc
-ggttggctcccgtctccctttgacacacccctatttttgtggggttttctcgttgccgtc
-aagcacttccttactttctggcactacaagatgcctcaggctcatctttcgtatttcctg
-ccccagtcctcaaatcagccatttcgcaagagctttgattgtttcggagaagggtattta
-ttagaaaccaagaactgggcgctaggtgcactcattgctactagggtgtcatttattTcc
-ttcctccctccctccctccctcccttcctttttgagacagagtctcactccatcacccac
-actggagtgcaCACTCATGGCTACAGCCACGTAGCCATGGTAATGAAGCCATAACCTCAC
-GAAGCTTCCAGTTTACACAATTAGAGGGTTAATTACCAAGTTGCCCAGCACTCTGCAGTG
-TGCTgtgtaggcaatgcgggggtaaattatctgaagagaatttaaagacaataaAAactg
-cagcctagacctcctgggctcaagtgatcctccctccttagcctcctgagtagctaggac
-cacaggtgtgtgccaccacactcagctaattttaattttcaatttttttttttgtagaga
-taaggtcttgccatgttgcccagactgatacaactcccggcctcaagccatcctcctgcc
-ttggcctcccaaagtgttgggattacaggcgtgagccaccacacctggccTtggggtatc
-atttcttttaagccttctcaactgacagaacaaagaaatatatctgtatataccaatgtg
-tatatatatacacacatatctatatttccatttgtaaccatctgtatatatattaagcta
-aacatgagttcctgtttatatttaccacttgaatccagggatcatttggcttgcttcctg
-cttgcttatctctaaattcccactccaataacgggaaacctggttcccatcatccacatc
-caccatccatttacttaattgttcaagtccagtatacatgtgtaggattatcaaaattgt
-taacccatacccctgtgggaaactttatcaagtagagtacattcttctgaacactttctt
-ttgcctttagtgttccagcagactccacttgtttcttttttctttttctttttttttttt
-ttttgagacagagcctcactctgttgcccaggttggagtgctggagtgcagcggggccat
-cacagctcacagcagccttgacttcccagtcttaagtgatcctcctgcctcagcctccca
-agtagctgggactacaggcatgcgccactacacccatctaattttttaaaatttttgtag
-agatgggatctcactatgttgcctaggcttgtctccaactcctgggctccagtgatcctc
-ccgcctcagcctcccaaagtcctgggattaaaggcatgagccaccacgcctggcccactc
-atttctaaagttacttaggtcagcacgttttcctctatcctcttcatgaggtcatttcac
-acatttgtaatacggtgaagatgtttgtcatattctgcatgacattttggaattatctaa
-atgtcctaagtgatttttttaactttgcatgcattaaggttcactttttgtgctattaag
-tttaatggatatcaaccaatgcacagtcatatacccacatttcttcaccctaaaaaaccc
-cctgtgctcacttattgaaccctctccccgccaaacactggcaaccacacatccgtttac
-tgtatctatggttttgcctttttgtgccattattaaaaaaaagaaagacgcacaatattt
-ttgttgttgctcttgtcacAGCTGCCacccattgaatccttactatgtcccaggtccaga
-attacactgtcccattttgaagatgaggaaacagatgcaaatgagttgaagtactcccta
-gagactcataacaataagcaaagtttgacttcTATGATTAACTTCTGAGTCACCTCTGGG
-AATATTTGTAATATGTCTAATAGCCACACttcttttgtttgttttgatacaggggtcttg
-ctgttgcctaggctggagtacagtggctactcacaggtgcaatcatagggcactacagcc
-ttgaactcctgggctcaagcaatcctcctgcctcaacctcaaaagtggctgggactacaa
-tgtgtgccactgtgcccagcTATattagccacatttcaagtactcaatagccgctgtgca
-gtttatactattatattggTTTCTGAGttttgtttttgagactgcgtcttgctctgtcac
-caggctggagtgcaatggcacaatctcggctcactgcaacctccaccacctgggttcaag
-cgattctcctgcctcagcctcccaaatagctgagactacaggtacgtatcaccaagacca
-gctaacttttgtatttttagtagagacatggtttcaccatgttggccaggatggtctcga
-tctcttgacctcgtgatctgcccgcctcggcctcccaaagtgttgggattacaggtgtga
-gccaccgtgcctagctATATTGTTTTTTAAAAGATCTCTTATTATTTAGTGAAAAGAAAG
-GAcctgtagtctcagttactcaggaggctgaggtgggaagatcatttgagccccagagtt
-tgaggtagcagtgagctatgatgatgccactgcactccagcctgggcaacagagggagat
-gccatctcacacacatacaaaagaaaagagaCCTTGTAATGCACACACTATCATAATCTC
-TGAtttttctttttttttttttttttttgagacactgtcttgctctgttgcccaggctgg
-agtgcagtggggtgatcactgctcactgcagcctcaacctcctgggctcaagtgatcctc
-ccacctcagcctccccagtggttgggaccacaaatgtgcaccaccacaactggtaaattt
-tttatttattgtagagatgtgggtctcaatattttgcccaggctggtctcaaactcctag
-gctcaagctagcctcccaaagtgctgggattataggtatgagccactgGCTttttttgtt
-tgtttgtttgtttttgtttttgatatggagttttgctcttgttgcccaggctggagtgca
-atggcgctatcttggctcactgcaacctctgcctcccaggttcaagtaattctcctccct
-cagccttctgagtagctgggattacaggcatgcgccaacacctccagttaattttgtatt
-tttagtagagacggggtttctccatgttggtcagactggtctcaaactcctgaccgcagg
-tgatctgcctgcctcagcctccaaaagtgctgggattacaggtgcgagccactgcccctg
-gccTGACTTTTTTAAAATCAGGAAATTTAGATGAATCAAAAAAGAAATTACCTTGTCCCT
-ATTGTTCTCTTCTCATTATGAATGTCTTTGAGGACCATGCCAGTTGGCAAATAGGTATTT
-TGGAGCTAGACACAGTTAGGGTGAGTGGAGTAACACGACAGTACCTACAACAGCCACACC
-CACACCTGAGTTGGCTTCATCCTGCCTTCAGGTATCATTAAGAATAGGtattattattat
-tattattattattattattttgagaccgagtctcactctgtcgcccaggctggagtgcag
-tggcacaatctccgctcattgcaacctctgcctcccaggttcaagcgattctcctgcctc
-agccttctgggactacaggcccgtgccaccacgcccggctaattttttgtatttttagta
-gagatgggtttcatcgtgttagccaggatggtttccatctcctgacctcatgatcctcct
-gcctcagccttccaaagtgctgggattacagatgtgagccaccacacctggccATATATA
-TAtttttttctttgagacagttccactctgtcacccaggctggagtgcagtggtgtgatc
-atggctcactgcagcctggaactcccaggctcaagagatcctcctgactcagtctcccaa
-gtaactaggactataggcacacaccaccaggcccagttaatttttctatttttagagacg
-gggtctcactatgttgcccagactcgtctcgaactcctgggctcaagcaatccttccaac
-ctctacttcccaaagtgttgggattgtaggcatgagacaccacatctggcctataatgga
-atattatttggcaataaaaaggaagttctgatacatgctacaacatagatgaacctagaa
-atcatgatgctaagtgaaagaagccaggcacaaaaggccacatgttgtatgattctcttt
-acatgaactgtccagaagagacaaatccatggatacagaagcagattaatggtggcctag
-ggctggggattagagggaaggcagagcagatgggagagtgactgctaatgagtactgatg
-ctaatggtttcttttggggatgatgaaaatagtctaaaatccattgtggcaacagttaca
-caactctgtgaatgcactgaaagccactgaattgtaaactataaatgactgaatagtgtg
-gtatgtgaattacatctcaacaaagctgttTTTTTTTTTTTTTAATGTTCTGGAAGAATC
-AGGATAGACATTACCTCAGGTGAAGGAAGGCAGGAGATGGGATGGTAAAGGAATTCATTG
-GGGAAAACAGGTTATCAATGTTCCAGTTCTTGTGTCAGATTGCTGACTCCACAGATTTTT
-ATTATGTTATGTAAAAATAAATACACACAGggccaggcatggtggctcacacctgtatcc
-cagcactttgggaggctgtggtgggaaaatcgcttgagcccaggagttcaagaccagcct
-aggaaacatagtgagaacctgcctctacaaaaaaaatttttcgaaattagccagccatgg
-tggcatgcatctgtagtcctaactacttgggaggctgaggcaggaggatcacttgggccc
-agaagttccaggatgcagtgagctatgatcgcaccactgtactccagcccaggcaacaga
-gcaagaccaggtctctaaaaaaaaCCCACACAAGCATAAAGTGAGGGAATCACAGGCAAC
-AATGAGAATGTGTCGCAGATGAAGCGATTCTGTATACCTGAGACAGAGGGAGATGAACGG
-GAAACGGCAGagagtggtcaggacagtcctctctggggagcccgtttgagccgaagctag
-gatgagtagatgctccagcccatgtggggatgggggtgaaaagagttccagacaaaggag
-acagcatgaatgagggccctgaggtaggcccaagcctgttgtgtttgggggacagccagT
-TTAAATGTCTGTTCTGTTATATTGTGGAGTCTCTGTGtatgaatttttcctaaagaaata
-acagacaggccgggtgcagtggctcacgcctgtcatcccagcacttcgggaggctgaggc
-aggcagatcatgaggtcaggagatcgagaccatcctggccaacatggtgaaaccccatct
-ctattaaaaatacaggtcgggcacggtggctcacgcctgtaatcccagcactttgggagg
-ccaaggcaggcagatcacaaggtgaggagatcgagaccatcctggctaacacggtgaaaa
-cccagctctactaaaaatacaaaaaaaaaaaaattagccgggcatggtggcgggcgcctg
-tagtcccagctactcgggaggctgagacaggagaatggtgtgaacccgggaggcagagct
-tgcagtgagccgacatcaagccactgcactccagcctgggtgacaaagcgagaatccgtc
-tcaaaaaaaaataaaaattagctgggtgtggtagcgcacacttgtaatcccagctactca
-ggaggctgaggaaagagaatcgcttgaacccaggaggtggagattacagtgagccaagat
-tgcgccactgcactccagcctggcgacagagcgagactccatctctaaataaataagtgg
-ccaaaaacatacatacaaaggtgttcactgccatattgtttataatagcaaaaaggggta
-aaacaatcaaaatgtctttcaagaaggaactgattcactttgggaggccgaggtgggcag
-atcacctgaggtcaggagttcgagaccagcctgaccaacatggtgaaaccccatctctaa
-taagaacacaaaattagccaggcgtggtgatgcacgcctgtaattccagctacttggaag
-gctgaggcagcagagtcatttgaacccaggaggcagagtttgcagtaatccgagatcacg
-ccattgcactccagcccaggcaaaaagagtgaaactccgtctctaaaaaaaaaagaactg
-attaaatgaattacaatataCTCGGCAGACCTGGACGAGAACCTACGCACTACATGGAAA
-GAGAAAAGAGATGTGAAAAAAGCAGGTTACTAGAAATTACATATAGTAACATTCCACTTG
-TGTAAAAAAAACTATGTGTGCATGTGATTATAAGCATTTAAGTTTCTGGATggccaggtg
-aagtggctcatgcctgtaatcccagcactttgggaggccaaggtgggcagaccgcttaag
-cccaggaatttgagaccagctcgggcaacgtggcaaaactcagtctctataaaaaataca
-aaaaattagccctgtgtggtggtacgcgtctgtagtcccagctacctgggacactgacgt
-gggaagatcacttgagcccaagaggttgaggctgcagtgagctgtgattgcgccactgca
-ccccatcctgggtgacagggagagaccttgtcgaaaaaaaaaaaaggccgggcacggtgg
-ctcacgcttataatcccagcactttaggaggccaaggcgggcagatcacaaggtcaggag
-ttccagaccagcctggccgatatggcgaaaccccgtctctattaaaaatacaaaaattag
-tcgggcgcagtggtgggcggctgtagtcccagctacttgggaggctgaggcaggagaatc
-gcttgaacgtgggaggcagaggttgcggtgagccaggatcgcgtcactgcactccagcct
-gggcaacagagtgagactccgtcccgtctcaaaaaaaaaaaaTTCTGGAAAATTACATTA
-AAATTTAAAATTTACTCATTATAATGCCATTTTTCTAGATTACAGGAGACGTTCACTTTT
-CGCCTTATATAATTCAGTATAAggccgggcgcagtggctcatgcctgtaatcccaaaact
-ttgggaggccgaggcgggcggatcacttgaggtcaggaattcgaggccagcctgaccaac
-atggcgaaactccgtctctactaaaaatacaaaaattagccaggcgtggtggcacgcacc
-tgtagttccagctactcaggaggctgaggcaggagaatcgcttgaacctgggaggaggaa
-gttgcagtgagctgagatcacgccactgcactccagcctggtgacagagcgagactccac
-acacacacacacacacacacacacacacacacaaacacaaacacCATATATATACATATA
-TAACTTTTGTAATAATAAAAAACATACTTCTACTTAAAGAGAATATCAATAAGCCCTAAA
-GTTTTTCATAGTGAAAGCCCTTCAAAATTGCTTGACAAATAAATTCTAAGTATACTAACT
-ATGGGAAAAATGTATGCTTGCGAAGACTTTGTTAGACACATTTTCTTAAATGCTGAAGCT
-ATAATTTAAAAATGAAGATTTCAGGAGACAAAATAAAGTCAGCTGGATAAAAAATGTGCA
-GAGAGAAAAAATATACCAAAATGTTAAGAGTGAGTGTCTCggccgggcgcagtggctcat
-gcctgtaatcccggcactttgggaggctgatgcgggcggatcacggggtcaagagtttga
-gatcagccggccaacatagtgaaaccccgtctctactaaaaatacaaaaattagccgggc
-atggtgatgcatgcctgtagtcccagccacttgggaggcttagggaggagaatcacttga
-acccgggaggcagaggttgtggtgagctgagatcgtgccactgcccttcagcctgggcaa
-cagagcaggactctgtctcaaaaaaaaaaaaagaGTGGGTGTCTCTTGGCACTGAGACAA
-TGAATCCCAACAAATTCCCAACAAATGATATTTTTTCCTTAAATTTCAGAATTTTTGAAG
-TTTTACACAATGAATATTTTGTGATCTGAAAATTTTTTCTTCCCCTCCTCTTCCAATTCA
-ACAGCTGAATAATAATCTtgtgttcattgtctgctactgcttaagacattctttccagac
-ttagaggcttaacaaagcaaacagctaccatctcacagtttctgtgggtcatgaatccac
-gcagagtttagttgcatggttctggctcagggtcattcacgaggttgcagttgagatgct
-ggtcagggctgcagtcatctgaagacttgactggggctggaggatctgattccaggatgg
-atcgatcactcagatggctgttggaagtaggtctcagttccttgttggtgttggcaggag
-gcttcagtttctcaccacgtagagctttccacagggctgcttgagtgccctcgcatgaca
-gctgacttctcccagaataaatgatacaaaataagacagccaggaggaaaacatagagct
-ttctatgtccaatcttagatatcacaaaccatcacttctgccatattctattagttagag
-gcaagttcacacttaactgggaaggggaggaggaattaggctcttccttttgaaggaagg
-aacattaaagaatttgtgaaGggccgggcgcagtggctcatgcctgtaatcccagcactt
-tgggaggctgaggggggcggatcatgaggtcaggagattgagaccatcctggctaaaacg
-gtgaaaccctgtctctactaaaaaaatacaacaaaaattagcagggcgtggtggcaggcg
-cctgtagtcccagctactggggaggctgaggcaggagaatggcgtgaacccgggaggcgg
-agcttgcagtgagccgagatggcgccaccgcactccagcctgggtgacagagcaagactc
-catctcaaaaagaaaaaaaaaaaaagaaTTTGTGAACATGTTTTTGAAACACAAGAAAAT
-ttccagctgatctttccccccaaatttccctcctccaatccaactacaacacatgaaact
-ccttaatcttgctgaagcgtacctctgatcatgtcatcctgcaataaaaaaactgtccct
-ggctccccacaacccagggaactccataacttggcttctgaggaccaactaccgtattgc
-ccttcagctccagctcaacataaacgcatcgtattcctcatgtacactcccccatctctg
-gtcttggcacctatccatgccctctcaatacctcgtcccagtctccttcccatctccagt
-cccttgcacttgctgtttcctctgcctggaatgttttacatggatggttcttcgtcatct
-tgagatctaaactctcccccatctctatcatcccccgtcccagtcactcactctctcatt
-accttgttttcttttcattgtcgtttgagacagggtctcactctgtcccacaggctgggg
-tgcagtggtacgatcacagctcactgcagcctcaacttcccgggctcaaacgatcttcct
-gcctcagcctcccaagtagctaggactaaaggcacaggccatcacacctggctgttttgt
-attttttgtagagacaggcttttgccatgttgcctaggctggtcttgaacttctaggctc
-aagcatctgcccacctcagcctctcaaagcgctgggatttcagatgtgagccaccttgcc
-cagcccctccctcccttctttccatcacccagtctggggtgcagtggcaccatcatagct
-cactacagcctcaaaatctctggcttaagcgttttcccacctcagcctccccagaagctg
-agatgacaggtgcttgctaccatgcccggctaatttttgaatttttgtggaggtgggatt
-tctctatgttacccaggctggtctgaaactcctgggctcaagcgattctcccgccttggc
-atcccaaagtgcagggattacaggcgtgaaccaccacacccagcccagctttattttctt
-tatagcagtcacaactatctgaaattatcttatttgtttacctgctcttttctgttgccc
-tcacttgctccttaagaacagggacctctgtcttggtcactgctgtaacccagtagcccc
-agttccaagttcactgcctggtgcacagtaggtggccaataaattgttgaattaaATGTC
-CTCTCTTCCAGGGAGTTGTTTTAGAAAGAATCACACACTGCATAAATGTCTGTTGAGGAA
-GAAAATGAAAAAAACAAAAGTGAAGACATTATCTTCTCGGCTGAACTTCCCACACCATCT
-TCTCTGTCATTAATAAGTCCTGGTGTCTACACTGGGGAAGGCAGTCCAAGGTTCTTCCAG
-GGCCTAGGTTCAGCCAGACTTTAACCATCTCTAGCTCCTCAGAGTCCGTCAAAGGGCCTA
-AGGAATGGTAAGTATTAATAATGtttgtttatgtatttatttatttatttattttgagat
-aaagtctctgtctcccaggccggagtgcagaggtacaatcattacaacttccacctttcc
-ggctcaagcaatcctcctgcctcagcctgccaagtagctaggactacaggcaggcaccac
-cctgcccagctaatttttgtacttttttttgtagagtaagggtttcaccatgttgcccag
-gctggtcttgaactcctggccttaagtgatctgcctgcctcagcctcccaaagtgctaag
-actacagctgtgaaccactgtgcAGGGTCAAATGTTTATTAATGGATGCATGCATGGATG
-GAAGAAGGAAAGGAGGCAGGTGTGAATAATGAATGCAGCATTTTCACTGCTGAGAATAAA
-GAGTGAAATCCTGGTCCAAATCAGTTTGGCAGTGAGTAAGGTTAGGAACTATTCACATAC
-ATTGGAATAATAATAGCAGCAGCAGCTACAGGGTCAGAGACAGATCTTTGAGAGGCCATA
-AGCATTGAAAAGATTGTGGTACCTATCACACACCGTCTAAAATAAAACAAATATTTTATT
-TATGGGAAAAGTGTTAAGGTGTTGATAATTCCAAGAAAGCTTTTATTTGTCCTACAATCA
-TTACTTTGATACCTTTTCTGAAATCCTAGAGCTGTCCCCACTCTGCCCATTTTTTTTTCT
-CATTATGGTGATGTCTCTGGGTTGCTGGTGACCTGCGTAACTATTGGGAAATCTAGTTTC
-TCAAAACttttagtttttttttagacagggtctcactctgtcactcaggctggagtgcag
-cggctcactgcaacatccgcctcctaggttcaagcgattctcatacctcagtctcctgag
-tagctgggattacaggtacgcgtcaccaagcctgactcattattttgtacttttagtaga
-gacaaggtttcaccatatcggccaggcggatctcgaacttctgacctcaaatgatccgcc
-cgccttggcttcccaaagtgctgggattacaggtgtgagccaccgcgtccCGTCTATCAT
-AAGTtttattgaacattgcctaggtatcaggatgtgtttacatgcattatctcatttaat
-ctgtaaaaccaccatgtgagggagaaactgaattatccccattttcaggataaggaaaag
-gaggGACTGGGAATGTGAACTCAGGAAGTGTGACTCCATCGGGTAGACTGCTCAGGCTGC
-AGATGTAAAGGTTTTACACGTAGGCTTTTCCAGATCTCAGCTTCTGAAAGGCGGAGGGAC
-CGTTTGGACGGGAGCAGGGCCTCCTCTTCCAAGCACCCTGTGCCTTTAAGAGTCGCCCCC
-TCCCTCCAGGGATGCTCCAATTTCTTTCTCCCCACCACCCCCACCCCGCCCCCCGCGCCG
-CGGAGCCGCACCTCGGTCCTTCCTCCCCGCCCCACACCCTCAAGCTCGGCTCTTGGCCTT
-CGCTCGTCCAGAAGTGGGTGAGCTGTACCGCCAGAGGCGCATTCTCCTAGCCCCAAACCA
-TGCCCGCTACGCCCCAGCGGAATGCCACCTTAAAGACCCTAATCCGGGCACCTCCCAGCT
-CCTGCTTCCCAAGGGCGAGGCCTCAGCGCCCCCTCCCATCGCCCATGCTCACGACGCCGT
-GAAGGTGACCTCCCCCAGGGGCGGCACACGCCCAGTGGTGCCCGAACTGGCTCACACGTG
-GTGAGCCGGGAGCGCGCGGCCCCTCCCCGCCACGCGCCTCGTGCCGGCCACCCGGCCACG
-CCCCCAGGACTGGCTCCGCCCCGTGCCCCTGCACGCTTCTCCAGGCTTGGGTGGGGCGAC
-GCGCCCAAGTCGGGCACCGGGCAGGCTACGGGGTGGGGTAGGACCTGGGAATGGCGCACC
-CACGCATCCTCGAATGTCGCCTGCGGTTTGTGAAAAGCGGGAAGTCCGCCCAGCTCAGGA
-CCTTTGGCTGGCAGGCGAGGTGCCCCGCGGCCCTTGGTGCTGAGCAGGGGAGAGACAGCT
-GGGACCGCGAGCCTGGGAATCGAATCCTAGTCTGCGTGTCCTCGGTGCTTCCTATTTGGA
-AACTGGGCATCATATTATCATATTCCCTTCTCCCTCCGGATTCTTATGGAGCTTCGAACG
-AGATTAAATATACATATATATGAGAAAGGGATTTGTTCACTAGGTCCAAAAGCATTTGCT
-GGTCCCATATGTGGTCGGACCCTGTGTGTAGTAGGCGGGGGGCAACATCTACGACAACCT
-GAGTTCGTCCCCTTAAGAAGCTTTCCTGAGTCTTGGGCCCCCCAAATTCTCTTCTGGGAT
-GGTCCGAAAAGACGTCCCTGAAAGAGGAAAGGGCGGAAATCCTACCTGACGGCAGGTGTC
-TCGGAATGAGCTAAAATTTAAAAGGCAACGCGGGGCAGGGACAAGCGTCCAGCGTCAGAT
-GGAAGCAGGCTCGCGTCCCCTACCCTTCCTCCAACCCCTAACCTAAGAAAAGAAACCGAT
-CTCGCCGGTCTCCCCCAATCCTAGCCGCGAGACCGCCCAGCCCCGCAGCCCGAGCCCCGC
-CCCGCTCCGGCGGCCAGCGATTGGGAGATGCAAATACCGGCTTCTCTGCCCAGCAACGGG
-TGACGCGGCGCCCGAGCGCGAGGCGGGGCCCGGCCGCAGCCCAAGCGGGCACCTCGGTGT
-TTACAcggggcggccccgcgcgcgccgcagcggcccgcagacggcgagggggaggggtgg
-tgcgcgcgccggcggggccgcgcggggAGAAAGACACTGAAAGGCGTcggcggccgggcg
-gggagcggcgcgcgcgggccgcggcggAGCCAGAGGCTGCAGGAAGAGCCCGCGGGGGCC
-CGGAGGGTGCGATTCCTCGGCCCCCGCAAAACAATGTGTGTTGTGAGCCAGGACGCAACT
-TGCCGGAGGCGGCGGGGGCGCGCCGAGCCCGCCTGAGACCGCGCTGACCTTCTCCCCCCG
-CCGTCCGTTGGGCCCGAGCGCCCAGCTCCTCGCTCCCCAGTTcgcgggggccgggccgag
-ccgcggggcggggccgccccTCCGTCGCCGCTGCCTCCTCCCCCACCCCCAGCCGCGGAG
-GATGCGGACGGCCCCCGGCGGCGTCTAGCGGCCCCGGGCCCAGGCGCGATGGTGCAGCAG
-CGGGGCGCGAGGGCCAAGCGGGAcggcgggccgccgcccccgggacccgggccggccgag
-gagggggcgcgcgagcccggcTGGTGCAAGACCCCGAGCGGCCACATCAAGAGGCCGATG
-AACGCATTCATGGTGTGGTCGCAGCACGAACGGCGGAAGATCATGGACCAGTGGCCCGAC
-ATGCACAACGCCGAGATCTCCAAGCGCCTGGGCCGCCGCTGGCAGCTGCTGCAGGACTCG
-GAGAAGATCCCGTTCGTGCGGGAGGCGGAGCGGCTGCGGCTCAAGCACATGGCGGATTAC
-CCGGACTACAAGTACCGGCCGCGCAAAAAGAGCAAgggggcgcccgccaaggcgcggccc
-cgcccccccggTGGTAGCGGTGGCGGCAGCCGGCTCAAGCCCGGGCCGCAGCTGCCTGGC
-CGCGGGGGCCGCCGAGCAGCGGGAGGGCCTTTggggggcggggcggcggcgcccgAGGAC
-GACGATGAAGACGACGACGAGGAGCTGCTGGAAGTGCGCCTGGTCGAGACCCCGGGGCGG
-GAGCTGTGGAGGATGGTCCCGGCGGGACGGGCCGCTCGGGGACAAGCGGAGCGCGCCCAA
-GGGCCGTCGGGCGAgggggcggccgccgccgccgccgccTCCCCGACACCGTCggaggac
-gaggagccggaggaagaggaggaggaggCGGCAGCGGCTGAGGAAGGTGAAGAGGAGACG
-GTGGCGTCGGGGGAGGAGTCGCTGGGCTTTCTGTCCAGGCTGCCCCCTGGCCCGGCCGGC
-CTGGACTGCAGCGCCCTGGATCGCGACCCGGACCTGCAGCCTCCCTCGGGCACGTCGCAC
-TTCGAGTTCCCGGACTACTGCACCCCCGAGGTTACCGAGATGATCGCGGGGGACTGGCGC
-CCGTCTAGCATCGCAGACCTGGTTTTCACCTACTGAGCCCACCGTCAGCGGGGCGCGCAC
-GCCCCCAAACCAGCTGTTTACATACAGGAATCAGGTATTGGGGCCCCTCGGAGGCCGAGG
-CTGGCACCCCATCTCCCGCGCAGCCTGCCCCCTCCTGGACGTGCCCATCCCCCCTCAGAT
-CCAGACATGCCCCTCCCCCGCAGACACACCCCAAGGCAGCCCAACCCCCACCCCTTCCCC
-GACACCCAAGCCCCTCCCCACGTCGCCCCCTCCTGCACAGCCACCAGCAGCCAGCCCCCT
-CCGATACACCTCCCGTCCTCTCCTACAGACCTGCACCCCTCCCCCCTTTTGCACACGCCC
-CTCCTCGTGGCCGGAGGACCCGCCCCCTCCTTTGCTCCGGAATCTCTCCTCCCTCGCCCG
-GCCCGCCTTCTCTGGGTTAGGGGGGCGATGCGGCCGGGTGGCAACGCACGCGCCTCCTGC
-GCCCCTCCCTTCCCTGGGGGGAGGGGCGCACCCCTTTTATCCCCGGAGCGCTAGGGCCCG
-CCCCTCCGCTGGGGCCCACCCCCTTCGTGCGCATGCTTAATGCTTCTGGGGAGGAGGGGG
-CTGGTCCCAGCGGAGCCGCACTCTTCGCCCGCTCCGGGCAAAAGCGGGGGCGAGTGTAGA
-GCGATCCTGGGAAATCCTTTGATCCGGGAGCCCTAGGTTTCCTCTCCAGCCAACGGGGCG
-TCGCTGCCTTAATGGGAGGAGCACTCGGAAGGGTTGGTTTGGGCCTGAAACTCTCCCAAG
-TGGCATAGCCCCTTTTCCGGTATGGGGTCTCCTACACCCACGCGCACCACCTCTCCGGTC
-GCGTGGCTGCCTCTACAGCCTACCTATACGTCCCTTTTTCCCCCCAACTGGGAATTGAGA
-GGTAAGGTCTTTCTCTGGAAATCCAGCAGTAGAGGAAGGGACCACCCAAGAAAACTAAAA
-ACCAAGGCACCTTACCAGTCTGTCTGGGGACAGGATCCCTGCTGCACCTTCCCCACCCCC
-TCCTGGGAAGTGCCCCCTCACCTCAGGGCACCCGCAACCTGGGCTCCTCCCTGAGCGCAC
-CGGCCCTTCCTGTCACCCAGGTCCACCCTCAGTACTCAAGCTGCAGTATACAGCGGGAAA
-AACTGAGGCACTTTGGTGCTAGGGGTTTGGGACTGAGGCGTGGAGAGCAGATGTGATGGC
-AGGAAGACTCTCGCTTTTAAACATCTGGTTTGGGAGAGACCATCGACTTGGCCAGTGAGA
-CTGAGAATGGATTCCGAGTAGTGATGGGCCGTTTGCACCTCGGTTTTTCCACGTGAGAAA
-TGGGGAGAACGCTGCTGTTAGGAGGAAGTTGTGTCCAGTTCAGGGTGCCCTCGGGAGCCC
-TGTCCCTGTTGCTGTGGCCCCTCTCACGCCGCCATCTCTCTGCCCCGCCCCGCCCCTCCG
-GCCTCCCCACACCCCCCTTGCCCTCACTACCTGTATCTCACCGGCGTGTGTTCACCCTCC
-CGGGTGGCTCACACACTCTCATTCACACACACAAATCTCAGGAACAAACGGTCCCAGAGT
-CCTCCGGACCCCTGCCCAGGGTCTCTGCAGGTCTCTGCCCCACGCGTTCCCGTCGCTGAC
-AAAGCCACCAGCTGCCTCCTTTAAGCTTGGTGCTCCGGCTCTGGGCCTTTCTTGCGCTCT
-AttttttttttttttttttttAAGAAAAACAACAACAACAAAAAAAGACAATGAAAAAAA
-AAACGTCATGTGAGTGAAGAGATGTCACTGTCTGTGGTCTTGGAGAACTAGTCTCGTAGC
-TGAGGGGTGGGGTCCCTCTGTCTGGGGCACTGGCACCCACAGCAGGACTCCGCCAGTCTG
-ATGCCAGGACTGAATAAAGTGTATTTGCCCCGACCTTGCCCTGTGGTTCTGCATGTCTGT
-GCTCTTCCTCAACCCTCCCTAAACAGTTTGCCAGATTCAAGTCCGTGTGATTTGGGCCCG
-AGCTGGGTGTCCCAGGGCAAGCCACCTTGCCTGTCTAGGCCTCTATGTCAGGACTCCCTG
-GCCTTCATGaagaatagcaaactcatccctgtagggaccaggcaggtaacatagacgagt
-gactctgggtggacagtggtgtcatgacccacttcaaggggcctacctcctgccagttgt
-gaccctgtgggaatgcagtccacagtggccaggtggccagatttttcaagaaaagctgga
-tggatgtttctgagtcatcttaatttcaaaatgagactcatattttaaaatttctgtggg
-ccaaatgaaacaagtatgcaggcaggtctggtccgagggGGCTGGCTTGGCCATGCCTTT
-CTGTGCCTTTAATGAGgactaagaagcaagattgggccacactgtctggactcaaagccc
-agctccaccactgagcacccgtgtgactctttccatatgtataacgtggggataataata
-atagctgcttcacaggatGAAATGAAGTTTGAGGTGAGAAGCATTCACCATGGTGCCCAT
-CGTGTTACTCCATTGTCAGAGGAGGAAACGGGGTCAGGCAGGAAAGCAACTTAAAGGAGG
-GCCTGCAAGCAGCCAGGGTCAGAGACAGGGCTTGGTTCTGCTTCCTGGTGAAGCATGGCT
-TCGGGGTGCTGCCTCTCCCTCCCTGTTTGAATCTGCAGATTGTGTTAGGCCCCCAGCTGA
-GGGCCTGGAGTGGTGGGATTGGTCCCAGTGCCTGGCGCACATTGGCCTGCAGAGTAGATT
-AACTGAATGACCAAAGAGCAACAGAAGTCTAGTGATTCTTGTCTTTGAGGTTCTGACTGG
-TGTTTTACAACTGAGTCCAAGGCTTTTCCCTCCTTTGTCCCTCTGACACCCCTCCCCCTA
-ATTCTCATCTGTCAGATCCAGTGTATTCCTAAGCTGGGACAAAGCCTCTGTTTTCCCAGT
-AGGAGCCAGGGCTGAGTGTGGAAATTACAGTGACTGCTTCTTCTCAGCTTCTCTGGTTGA
-AAGCAAGCTGGCGAAGTAAGAGGAGGTAGAGTTGAGAAGGTGTGGAAGATAGGGACAGCT
-GCCCCCAGAACTCCCTTCAAGGGAGGACTTccccagctatgggaagtgccatcagggtgg
-ccgcagctgcagagagccacttcacctgagaccacgcccttcctggggcagcctgtatct
-ggtgtctgagtgaggcatggtataaacacctggtcatttcaatccaacatgggacggaca
-ctgacagacagtactcccagcaggcccaggccagccagggcttcgtcaggcctgcagcac
-aatttgacttcctatgcccaggcctgcttcctcttcttcctcttcttttcacaggtgctt
-attcctaataaacatcttgcaacccaaactcagtctcattgtctgtttctagagaaaccc
-agtctacaacaGAGGGTTCAAGAGACTGGACAAAGGGAATTGGGTCAGTGGCCCAGCAAC
-TGCAGCTAGGCCGGTCGGATGTATCCTAATGTCAAGAGTCTGTTCACCGATGCCATCAGC
-ACCAAACTAGGGGCTGCACACTTTCCTAGTCTGCACACCAGTCACGTCAATTAGAGACTC
-CAGCCTCAGCCCGAAGGCCTTCCAGGGCCCCCTGCTGATGCCATTCTCACTGCCAGTCCG
-TCCCCTGGTAAAAGCAGGTGGGAGGGAGGTCGTCATCTGAGTTTGTCTTACAGAATAGCC
-TGGAATGGGGTGCACGGTAAAATGCCTGACCGGAGATAATGCTAGAgctgtggaaccttg
-ggcaagcctcttcccctttgtgggcTGTACTGGGAGTCGGTAATAGGACTAGAAGAGGGA
-CCATCTCATTTTGGTTCCTTCCATTTCAGATGCTGACCTGAAAGGTCGGGGAGACAGCTC
-CTTATGGGGTCTCTGGGGCCACCTAGTGGCTAAGAGGAGTAGAACCAAGGTTCTGTGCAG
-TTGGGAGGTGGGAGTCGGGGTGTGTCCCAGGCCAAGGAACTGAGTCCCACTCGAGTCTCA
-CTCCATTCATGCATTGACTCATTGCTGGGTCATGCCCCTTGCCTGGGTGGTGTGAGCCAC
-CCTGCTTCCAAGGCTTTCAAAACACCATACGCTGAtgtattgtttctcatctattgctgc
-gtaacaaattgccacaagcttagcagtgtaaaacaacatgcatttgttatttcagtctcc
-atgcatcaggagtccagcatgccttagctgggtctctgctcaggatctcacaaggcagca
-gctggggtgctggtggcccgcattccttcttggagctcagcagccttttccaagctctca
-cggtagtgggcagaattcagttctttgtgcttataggacagagatccctgttctattgct
-ggctgtcagttagtaccactcttgattactacaagctgctcagtttcttgccacatggcc
-cccacagggcctccccagccttctcacaatattgcaacttattttgtcaaggccagagga
-gaatttttctgctgcttggagtcacttggctcagggaaggtttaagctctcttttaaaag
-cctctcctggctgggcatggtgtgttcatgcctgtaatcccagcactttgggaggccaag
-gtgggtggatcacctgaggtcagcagttcgagaccagcctggccaaatggtgaaacccct
-tctctactaaaaatacaaaaattagcctggcgtggtggcagtcgcctgtaatcccagcta
-cttgggaggctgaggcaggagaatcactcgaacctgggaggcggaggttgcagtgagcca
-agaccaagccactgcacttcagcctgggcgacagagcaagactctgtctcaaaaaaaaaa
-aaagaaaaaaaaggaaaaagagagagagaaaaaaaaagccttccctaattaggtcagact
-cacccaggaaaatctcctttttgattaggcatcaactaatgtgggattttatatctgcaa
-aaaatcccttcacctttgcagtatattgtagccttataagagtgacagctgtcatactag
-atttgcccacactcaaaagggaggaggctgtctagggcagctacaccagagactgggaat
-cttgggggccatcttagaattctgcttatcacacacctgtaatcccagcacttcgggagg
-ccaaggtgggaggatttcttgagtccaggagttcaagaccaacctggccaacatagcaag
-acctaatctctagtaaagttttttttaaaaaaattagccaggcacggtggtacacacctg
-tagtctcagctacttgggaagctgaagtaTCATAgctgagaattctcaggtctacatctc
-catcccagacatgactagactagctgccttcttgtcatctccactgatatatctaattgg
-cacctcaaactggacatgccaaaaaatgaactgtttccacagtgctcccaagcctgcttc
-cacagaccacatctgcacagctgatgtgaaatgaaaggctaaagcctctcagttatcctt
-gatgcctcttttcctcccagcgccatctcccttataccctgttggctctaccttcaaaat
-atgccctgtgtcttgtcacttctcacatcttccatggcctctgggtccaggatataaggg
-catacgaagggctccttgcgttttcctttgccccactcatagtcttattgtccacacagc
-agccggagtgatctggttaaactgtaaatcccagcacaccctgccactgttcaaaattct
-ccaaagactctcattcagtagaagccagagtcctcagcatggcctgcaaagccccataag
-aagtagcctgtggctcagcctcggcttcatcttctactttttctgtttctcacatgccca
-gtcacactggtcttgctgttcctcaaaagtgccaatcacacttccgcctgaaggcttttg
-cacatgcttttccctctgcttaagatacccttcctccggctgggcgaggtggctcacgct
-tctaatcctagcactttgggaggtccaggtgggtggatcacctgaagtcaggagttcgag
-accagcctggccaacatggcgaaaccccttctctactaaaaatacaaaattagctgggcg
-tggtgacacatgcctgcagtcccagttactcaggaggctgagacaggagaatcacttgaa
-tccaggaagcagaggctgcagtgagctgagatcgcatcactgcactccagcctgggcaag
-acaaagcgagacttcacctcaaaaaacaaacaaaaaaatacccttcctccagatagccac
-atgtcttacttccttcaggtctcagctcccagggcgccctagagtaggcacagggagtac
-ctcacagtgtcctccctgaccatccatataaagtaacatcctccataaactatcctgtta
-ctttgctttatttttctgaatagcatttatcactatctggcatttatcacctgtagtttt
-tactttttgtctctctctctctaatttgtatgtaagcttcataaggaaggaatgactctg
-GACTGGACTCCATGCCTCAGCACATTCACCCACCCATTCAACAAACATTCTTAAGGGTCT
-Aggctgggcatggtggctcatgcctgtaatcccagcactatgggaggccgaggtgggagg
-atcacttgaagccaggagtttgagaccagcctgggcaaggaaacaagaccctgcctctaa
-aaaatacaatttaaaaaagtatccaggcacagtggcgtgagcctatagtcccagctactc
-gggaggctgagctgggaagatctcttgtgcccaggagttcaaggctgcagtgagccatgg
-tcatgccactacactccagcctgggtgacagagttagaccctgcctgtaaaaaaaaaaaG
-GTGGGGGGCAGGGTGGGgaaggtttgccttgaccaggccgcgtgctaggtgccgggcata
-caaaagtgaaaaacgtgatttgtcctcagtgagctcacaggtctgaggagacacataaac
-ccaggaatggaaatgctttgctggcgatggacagtgagtctgggagaacattgaggagat
-gtttaacccagacaatggagtggggtgtggtcaggtcattccctggaggaggtgatgttt
-aagctgtggcatgaaacctcagtaggatgtgatgaccttagaacatggctacacgttctt
-tgacattcctcctttaaattaccttccctttgaatctgggctgggccttcatgatccatt
-tgtaaccaacaggacacagcagacatggtgctgcaggatttccaaggctaagtcacgctg
-aaccgccatgttgaaaggccaacagccaagactgccatgtggagaagcagcccgggccac
-gtgggaagaccatgtgtaggtagctgctccagttgacagctgagcccaggcaccagactt
-atgagttgagaagcttccaggggattccagcccctcataattcaactcactcccagctgt
-tggagggccttcccagcagaggcccagccatcacagagcagagacaagccatcccttcta
-tatcctgtctgaattcctgacccagagtccacgaacataatgagatggcagttgtccaca
-ctattaggttttggggcagtttgttatgaaggaataactggaacaataggataaggaaga
-gtgaggtgaaggaaaggactttacagatgccagcaacagtacatgggaagacctggtaag
-agtggctgacacagaagctaaccagcttgcggggaaggtgtggagagaggagggtgacag
-gcaagagtgagaaggaCCTTGAAGGTATTTGGACTTTATCCCGAGTCTTCACACTGCAGC
-CCAAGGGGTCAAGGAGTCtttttttttgtatggtaaacatggggtcttgctatgttgccc
-aggctggtcacaaactcctggcctccagagatcctcctgccttggcctcctaaagtgctg
-aaattacaggtgtgagacactgtgcccagccTCCAAGGGGtcttctcttttttttgagac
-cgcgtctcgctctattgcccaggctggagtgcaatggcgcaatctcagctcactgcaatc
-tccgcctcctaggttcaagcgattctcctgcctcagcctcctgagtagctgggactacag
-gcatatgccaccacacctggataatttttgtatttttagtagagacagggttttaccatg
-ttggtcaggctggtcttgaactccttacctcatatgatctgcccacctcatcctcccaaa
-gtgctgggattacaggcgtgagccaccatgcccagccGGggtcctttgaaaacacaaacc
-tgaccactgctgtaaacctttcgatggccccttactaccctcaggataaaCTCTTGAAAT
-TCAAGGCATTTTGCAGTTGACTCCCTCACTCTTTTATAGATTTATCTTCGGTCACTTTAT
-CCTCAGCTACGCCAGGCCACTCTCCAGTGACAATGCTTCCCGCCTCACCCATGCTATTTA
-TCTTTGCTCATGTGGAGGAATTAgtgggactttgggctaatcaccttgcctttcgaggcc
-tcagtttccccatctgtatgattaggtggttggactagaagtttttgttttgttttgttt
-ttgtttttgtttttttgagaccgagtttcactctgtcgcccaggctggagtgcagtgctg
-tgatctcggctcactgcaacctctgcctcccgggttcaagtgatttttctgcctcagcct
-cccaagtgactgggattacaggcatgcaccaccaggcccaggtaatttttttgcattttt
-agtagaaacagggtttcaccatgttggccaggctggtcttgaactcctgacctcaagtga
-tccacctgcctcggcctctcaaagtgctgggattacaggtgtgagccacgacacccagcc
-ttagatgtctcttaagagcatatctagcctggcattctaggagtctatgaAAAGGAGGGA
-GAAAGGTGTCTGTAGCCAAACCTGCCTGTCTGGCTTCTTCTAGGTTGCCTAGCAATGGAT
-GCCAACCCTCTCCCCCATCCTTGGGGGTTTCTTAGCAACCCAGTTTCTCACCCTCTGCTG
-TTTTCAGGGTTTCCTTTTAACTAAATGTCAAGTTTTGCTCTTTCTCCTCCAGAAAACCTG
-AGGCCAAGGGTCTCTGTGTAGAGCTGGATACAACCCAGAATACACAGAGACCTGGGTTTG
-AGGTCAGTGGAGGATTTGCTGTGTGACTTGGAGGTCTTTGACCTCTCTGGCTTTCATTTC
-AGACTGTGATTCCCTGTCATATGCTCCTCAGAGttcttcttcttttcttcttcttcttct
-ttcctcttcttcttcttcttcttcttcttcttcttcttcttcttcttcttcttcttcttc
-ttcttcttctcttcttctttcttcttcttcttctttcttttcttcttcttcctcttcctc
-ttcttcttcttcttcttctcctcctcctcctcctcctcctcctcctccttctccttcctt
-ctttcttcttcttcttcttcttttgttttttgagacctagtctcactctgtcgcccaggc
-tggagtgcagtggggcgatcccggctcactgcaacctccgcctccctggtacaagcagtt
-ctcctgcctcagcctcccaagtagctgggattacaggtgcacgccaccatgcccagctaa
-ttttgtatttttagtagacacagggtttcactatgttagccaggctgatctcgaactccc
-aaactttgggattacaagcatgagccactgtgcccagccTGttcttttctattttttgag
-atggagtctcactctgtcacttaggctggagtacagtggcacaatctcagctcactgcaa
-catccacctcccaagttcaaacgatttttctgcctcagccaccaaagtaagctgggatta
-taggtgaacaccaccacaccgggctaattttttgtattatttggtagagacgggttttca
-ccgtgttacccaggctggtctcagactcctgacctcaagtgatccgccagcatcagcctc
-ccaaagtgctgggattacaggcatgagccactgtgcccagccctctgtattgttctgatt
-ttagtatatgtgtgctgaaatgagcacTTCCCTCTTCTCTTGTATGCGTTTGGTTTGACT
-ACCAAATTTattcacttttgcaataaaccgtcactgagcacctactatgttccaggcact
-gtcttaaggactggggattcgtcagtgaataaagcagacatagtcccttccctcacagag
-cttatactctagtagatggaaacgtataatgaataaacagataagtgcacataatgatat
-catgcagtgaAGGGGACAAAGTGTAAGGAAGGGCTACTATTTTAGATGAGGAGGTTGTAT
-CAGTCAAGATGGGCTAGGGaagtcagagatggttgggaagaaaaagcctggcttccccct
-ttctccctccaacttcctgtgggtgcctcaccttgggtgacctcagctagaggccagctg
-acaaaggaggctgagtagcttccaggggtcagctctgcaaagcaggaaagagcaaggaat
-ccactggaagcaagaaggcCCAAAAGTACCTTGGGAGGTACGCCGCTTTTTCAGCTCACT
-CACTGCCTGTAAACTGTCAGGGACCCTAGGATCATTAAAAAATATTTTGAGggccgggcg
-tggtggctcacgcctgtaatcccagcactttgggaggctgaggtgggtggatcacttgag
-gtcgggagatcgagaccagcctgaccaacatggagaaaccccatctctactaaaaataca
-aaattagccaggcgtggtggtgtgtgcctgtaatcccagctactcgggaggctgaggcag
-gagaatcacttgaacccaggagacagaggttgcagtgagctgagatcacaccattgcact
-ccaccctgggcaacaggagcgaaactctgtctcTCTCTCTCTCTCTCTCTCTATCTATAT
-ATATATAGATAGAGAGAGAGAGAGAGAgtagtaaaatacagatagcataacatttaccat
-cttaaccatctttaggtgtacaactcactggatattaagtatagtcacattgttgtgcaa
-ccatcaccatcatccatcttgagaactcttcatcgtgcaaaactgaagttctggatccac
-tatgcactaactctccatttccccctccccctagctcttagcaaccaccattctgctttc
-tatatgtatgaatttgactatggtatatgtctcatataagcagaatcatacagtgtttac
-ttttcgtgactggtctatttcacttcacatcatgtcctcaaggtttatccattgcagcat
-gtatcagaatttccttctttttaaagctgagtaatattctattgcatgtgtatatcacat
-cttgcttatccattcatctgttgatagacacttgggttgcttccaccttttagctattga
-gaataatgttgctatgaaaatgggtttggaaatttctcttcaagatacactgctttcagt
-tcttttttttttctctctgagacagtctcactctattgcccaggctggagtgcagtggca
-caatctccgctcactgcaacctccacttcctgggtccaagcaattctcctgcctcagcct
-cccgagtagctgggattacaggctcacaccaccgcacctgatgtgtgtgtgtgtgtgtgt
-gtgtgtgtgtgtgtgtgtctgtgtgtgtttagtagggatgaggctttgccatgtttgtca
-ggctgctctcaaattcctgatctcaggtgatccgcctgcctttgcctcccaaagtgctgg
-gattacaggagtgagccaccacccctggcttcagttctttggggtatataactagaagta
-aaattgccagatcatgtggtaattctatttttactttttcaaggaatcactatgtgtttt
-ccatagcatctgcaccatttttcattgttatcaacaattcacagggttccagtttccccc
-tatccttgccaaaacttgttattctgttttgttttatggtagtcatcctaatgggtatga
-agtgACTAGGATCATTTTGAGACCCAAACAGTCACAGGCTTTTTTGTTGTtgttgcccag
-gctggagtgcagtggtgcaatcatagttgaccgcagcctcaacctccttgggctcaggtg
-aacctcccacctcaggctcccaaggagctgggactacaggcacacaccaccacatccagc
-taatttttgtgtattttgtagagacagggttttgccatgttgaccaggctagtcttgaat
-tcctgggctcaagcaatccacctgcctccagcctcccaaagtgctaggattataggcACC
-CAGCTTCATAGGctttttagcccaggcttgtgatttctttgtcagtataattctctgaaa
-aacttaggtttctggcagggggcagtggctcacgcctgtaatcccagcactttgggaggc
-cgaggcggacggatcacctaaggttagaagttcgacaccagcctgaccaacagggtgaaa
-ccccatctctaccaaatacaaaaaattagccaggcatggtagcatatgcctgtaatccca
-gctacttgggaggcggaagcaggagaatcacttgaacccaggaggtggaggttgcagtga
-gccaagattgtgccattgcactctagcctgggcaacaagagtgaaactccatctcaaaaa
-aaatcttaggtttcttatcgatttgactgtagttaatggtactaaaaccatacccacaat
-acttttcaatataTTGTCCTCAAGTCTGCTTTTTCCCTTTGCTTTCTATCCTAAAGCTGT
-CACTCTCAATGTAATGGCAATTAGCAAGAATAACAGGTGGCAGAGTTGCACCTCTAAAGT
-GATCTTGGCTCTGAGAGTTTTTACAGGACATTTTTCACTCAAAGCCTTTTAAAAATCCAA
-TCTCATACTTTAGTTGATTCTAGCCTTGAAGTACTTTAATTGATAAAAAAGAAAGTTCAT
-AAGGTCATTGGGAAGATTAATTATCCCAGCATATAGTAAATGCTCTATAAATGATACCCA
-TCTTTGTCACttttttttttttttttgagacggagtctcactctgtcgccaggctggagt
-ggcacaatcttgtattactgcaacctccgcctcctgggttcaagcaattctcctgcctca
-gcctcccaagcgagtagctgggactacaggcagcatgctgccactcccggctaatttttt
-ttttttttttttttcagtagagctggggtttcaccatattttctttctttctttctttct
-tttctttctttctttctttctctttcttttcttttcttttctttttctttctttcttttc
-ttctcagagtctctctctgtcacccaggctggagtgcagtggcatgatcttggctcactg
-caacctctacttcaagtgattctcctgcctcagcctcaagagtagctgggactacaggca
-tgtaccaccatgtccagataatttttgtatttttagtagagacagagtttcaccacgttg
-gccaggctggtctcaaactcctgacctcaagtgatccacccacctcagcctcccaaagtg
-ctgggatcacaggtgtgagccaccatgcctggACAAATTTTCCTATTTCTTAATAGATAA
-TCCATCTTGTTTTTCTCAAAAGTAGACAGTTTATCAGGTGTCGTGTCTCTCACCTTCCCA
-CCCTACTCACCTATAAACTAATATAACAATAACAGTaacaataaccataatttgctgagt
-tctaattttgttccaggtactttggataagtgtcttatatgcacatctcatttcactctt
-tcaacccctctgagaggcaagtacttaaattatcttcattttacagtcagggaaactgag
-gcacagagtgtttaaatcatgtaagcagtaagtagtggagctaagattcaaacgcagatc
-tgctggactccagagttcAACTTACAGACACTACATTGTGGCTCTTCTTGGTGGCCCCCT
-CCCCTCCTCCCCAGGCTCTCAGAGGATACAGGATCCCTCCTTTGCTAGTCAAGGCCAGCC
-CATCCCCCTGTATATTTGACTTCATCTCTTCCCACTGCCCCAGGATTTCATCCACCCCTG
-CTCTGATATCAGGGGCCCCCTCCCCTTCTGTCCATGGTGTGGGGCTTTTTGCACTTcaca
-cacacacacacacaggtgcacatacatacacacCCCTTCTCCAAACCACTCCACAAAGGG
-CCCCTGCCTCCTCActttcttgccttccacatcacaccctaaattctcctggccaaggtt
-cccactgacctccttgttgccaaacctaagtcctgttgtcccgctgtgtgtctcttatgc
-acttggcaaggctgagcaggtccttcttggaaatgtgtttctttggtttctatgacacAA
-TGCACCCCCACTCCAAAACACACATACACACATCCCAGATTCTTGCCCCCACCCACCACC
-ACCCGCTATCTCTCTAGATGCTTCTGTGGTTCTTTCTCCTCCTCTGACCTCTTCAAATGT
-AGtatggtggttttaaaacatgtccataatttttttttttttttttgagatagagtctca
-ctttgttgcccgagctggatacagtggtgcgatcaggtgcgtgccaccatgctcagctaa
-ttttttttaacttttaagttttttggagagataggggctccctgtgttgaccaagctggt
-ctcgagctcctgggctcaagcgatcctcccatcttggcctcccaaagtgctaggattaca
-gacttcagccatcgtgcccaaccatgtctataaattctttaagactcctcccactgagta
-acagagtctgtttcttccccttgaatctgagccaaacttagtgactcagactacagtaga
-aatgattctatggtgacttgtgaggctgggtcataaaggcaatgtggcctgactcatggg
-agtcctgagctacagtgtaagaggtgtcaacactctcagctgccatgctgtgaggaagcc
-caactggctcatgcagagagacaacatggagaggccttgaggctatatgaagagagatgc
-ttggccagctcccagctgctccagctccccagtgctccggcttccactgtaaccacaaaa
-gagacaccaaggcagaaccacccagatgagcccttcccaaattcctgacccacagaaatt
-gtgaaagatgataaaaatcattggatttggagtggtctgttatgcagccatagacagcca
-aACAGAGGCAtcttaatctgcttgggctactataacaatttagcatggagcaggtggctt
-gacaacacacatttattcctcaggtctgcagggtgaagagtctaagatcaaggtgctggc
-aaattccattctgctggcaaccaagggcctgacttctggtgtacagacgaccatcctatt
-gtagccccaaatggcacagagaagaagcaagctctcaagtctcctcttatcaggctgtaa
-tccctcccaaaggcccacttccaaataacatcaccttaggacttcaacatatgaatatga
-gggagatacaaacattcagtctgcagcaGAGGGCTTCGTTAGAGCTCTGACCTGAGCACG
-CTTCATCTCAATGTCAttgtttttgccagctctacatccactgccctttttttttttttt
-tttttttttttttttttttgagacagagtctcactcttatcacccaggctacggtgcagt
-ggcacgatcttggctcactgcaacctccgcctcccagcttcaagtgattctcctgcctca
-gcctccggagtagctgggactacaggtgcatgccaccacacccggctgatttttgtattt
-ttagtagagacagggtttcaccatgttggtcaggctggtctcaaactcctgaccttgtga
-tccacctgcctcagcctcccaaagtgctgggattacaggcatgagccactgggcctggcc
-ccactgccctttcttacagtaacagtatttcaatttccctttagggaagctcttcaagca
-ggttctcagtccaagaggtttctctgggttaagcactgccagccacccaaagggtgagca
-agtaaccagccaatcagagacactccagtgggttcagtaaatgacatattatctaactgg
-ggtgaggggaatcaacatcagggcttttcctgagactataaggagaaacagattcttttc
-ccagcagttaaatttgaagtctgtggccattttgctaccatatagggaaaatctgcctga
-cattgaagccaacacagatgagggaagagccaagagataaagagaaagatcctgagcatc
-tggatacagccatgcctgaagccagtatcccttgacttctcaattatgtgagcctttata
-ttccctttgtttaaagccagttcaagttTAAAACTGCCATTTCCAGTGAGAACAATTCCC
-TATGTTGTATCTAAGGCCAAGACCTTGCCCCTGACTCTAGGCCAGAATGTCCTGTACAGT
-GCCATTCAACTCTGCCAAAAGCAAAGGGCATCAACTTCTCCACAACCTGGCTTTCCCTCA
-TCTATTTTACATCTCTGTTAATGGGAGCATCACCCACCTGACCTATAAACATAAAAGTCA
-GCCTCTATCctctctgtctctctccctctctctgtctctctctctctctctcAATCCCTG
-TCACTTCCCTTACTTCTTAGTAACCAAGTTCTGCCAACTTAACTTTATGGACATTTTTCA
-CACCTGCACCCTCCTTTCCATTTTTCCTGCCCACTCCAATTCTTCATCATTTCTCACCTA
-AATTTTTACAAAATCAATAGATAACTAACATAGAGGTGTATAGTAAAAAGTGAATTTCgg
-ccgggcacagtggctcatgcctgtaatcccagcactttgggaggccgaggcaggcagatc
-atgaggtcaggagatagagaccatcctggccaacatggtgaaacctcatctgtactaaaa
-atacaaaaaaaaattagctgggcatggtggcatgtgcttgtagtcccagctactggggag
-gctgaggcaggagaatcgcttgaacccgggaggcggaggttgcagtgagctgagatcgca
-ccactgccctccagcctggtgacagagcgagactccatctcaaaaaaaaaaaaaaaaaGT
-GAATTTCATTCCCACCCTTGCCATCAGTTACCCTCCCCCAAGGCATCTACTGTTACCTCT
-TTCTTGTCTATTTTCCCAGAAGTTCTCTATATGTGCCATCTTTTTGAGAATTTcaaatgg
-aggcatactatcaagacttttcagaacactgcatccttcttcacttgaagtgtgattaat
-ataaataattatagactaatttcttctttctaatggatgcatagtattccacaaagacat
-ataatgtacataactcgtcttccattgatggatatttaagtggtgtcccagttatctgtt
-agcacagaacaaaaccccccaaacctagtggtataacacaataaccacttgaatatgctt
-gtgggttctgtgtgtcaggaattcaggcaggacacagtgaggccagcttgtttctactct
-gcaatgtttgagtcttcagctaggaagatttgaagatttgaaggctgaagctgattcaaa
-tggctggccactggaatcatcttgttcttccccttccccttcgccttctacagtgcaatg
-gcatgatgtcggctcactgcaacctctgcctcccgggttcaagcaattctcctgcctcat
-cctccctagtagctgggattacaggtgcacgccaccatgcccggctatttttgtattttt
-agtagagacggggttttgccatgtggccaggctggtctcgaactcctgaactcagggtat
-ccacccgccttggcctcccaaagtgctgggattacaggtgtgagccaccgtgcctggcct
-catctggttcttcttcactcacttcttttatgcttgaactgggatgactcaaagctaagc
-ttagctgggactgtggtgccttcatgtgtcctctcctgatggtcttggcatcctgacagc
-atggcagcctctaagcagacatggagccctaggtaggcatggtgcctcaggctccaagag
-ctagagttctagcagaagttgcctgtacttttatgtctggaccttagaagtcagagtgtt
-acttccaccgtactccattggttgaagcagtcatcagctcacccaagattcagagagggt
-acaaggatcccacctctctacagaggagtgctaaagaatttgtagctatattttaaaacc
-accacaggttgtttccaatctgtagctattcctgtagttcattttacaggctaacatctc
-ttgaatgtcttcatttctctgcaccaggccaagacactgtcatctctgatctctttgctg
-atctcttgctgtcactcttgtgctcaacatgctgttctcttgacagcagccagaggtctt
-ttcagaatgaaaatcagatcacatcccacccctcttcataacccttccatggctccccac
-tacccttgggctgaagctcaaactccttaccttggcttatgaggccccacaaggtctcac
-ttctgcctgcctctccaatgccatctcctgtcacCATTTGGGGCCTTTAGTTTTGAGCTG
-CAAGAGTTCCTCCCATcacacacacacacatacacacacacacacacacttaaatgagta
-agtaaatagaacatacaaaacgcttaaacactttgcacatagtgagcataataagtttgc
-tactattATTAGACTGTCttcagtaaatatttactgggctgcctactcagtgccaagcac
-tatgggaggctcacagatacaacacgaacaagaAATATGTGGCCTTggccagacgcggtg
-gctcacgcttacaatcccagcactttgggaggccgaggcaggtggatcacttgagctcag
-gagttcaagaccagcctgggcatcatggcaaaaccctgtctctattaaaaatacaaaaaa
-ttagctaggcatggtagtgcgtgcctgtagtcccagctcctcaggcgactgaggtgggag
-gatcacctgagccttgggagatcgaggctgcagtgagccgtgatcatgccaccgcactcc
-agcctggacaacagagtgagacgctgtctcaaaaaaataaaaattaaaaaaaaagaaaaa
-GAAAAACTAAAAAGGAAGATGTGGCCCTATCTTGccgagctcattcttctgtgtgtcccc
-agcccctagcacaaggagaaacagaatagatgctcaaGACACAAAGGCATGTCTGTGCAA
-GGGTGCTTGAtgacggttggaggggcacaatgactttcccaagatcacacagcaaatgtg
-ggacaaaatcaagGCTGACAGCTCATGACAGGGTGGGAGGCAGATGCAGCTGCCTGGCAC
-AGGCTGGCTCTCCAGGGAGATGGGCAGTGGGCACGCATTGCCCAGGGCAGAACTGGGGCT
-AGGGGAGGAAACAACAAGGGAGGCTGTCATTAGCTCCTTCCAAAGTGGAGGTCACTTCTC
-TCCCAACCCCGAGTCCTCCACCCAAACTCCCTTCTCAAGGTACAAGGGCTGATCCCGTAC
-CAGGGATGGGTAGGGACTCAAAGAGGAAAAGAGGATGAAAAGAGGATGGGGACTGAGTGA
-GATGTGAGGACTCCAGAGGGATTAGCGGCTCTCAAGGCAAGTGGGAGGGGACTTCCCGGT
-AGGAGCCCGGAGACAGATGGGAGCCTGTGAAGAGGGCGGGGGCCCGGCGAGGAGAAGCGG
-TTTCTACGCTGGGGTGGGGCTCCATGAGGGGGATGGAGACCTGGAAAAGGGACTGACGGT
-GCAGCGAGGAGAGGAAGGCTCGGTTAAGGGATGGGTCTTCCACGGGAGGGGTGGGGAACT
-GCGGGAGTGACGGCAGCTTCGGTGAGGAGTCTGAGGGGCTGCGTGAGGGGCTGGGGCCCA
-GGGAGTCCGAGGGGTCTCTGTGAGGGCGCTGGGGTGTCCGAGCGAGCAGGGAACTCTGGA
-AGGGGACAGGAGCCGGGGGAGCTGCAGGCGGCCGCCGTCTGCAGAGCCAGGCCCTGAggc
-gggccggcgccccctcccccgccccgAACTGCGGCGCAGGCGCGAACCGGACCCGCCTTT
-GCTCGGCGGAGACAGCAGGCAGAGAGGTGAGCTTAGCCCTGCCCCACGCGCGGCCAGGCC
-CCAGCCCCAGCCCCTGGAGAACCCCCGCGCTCTGCCCGCATCCTCAGCCCGGGCCGTGTC
-CCGCCAGGGCCGGGACCTTTGCGCCTGAGCCTCGGCTTTGGGAGGTGGGGGTCCCAGGGA
-AGCAGCAGGGGCGGGAGACAGAAACAGCCCCATCGCCCCTCGACGCCTCAGGGTTGATAG
-GCTGGGTAGAGGCTTCAAAGGACACCCCCACCCCCGCCAACACTTCAAAAACCCATTCCT
-ACCCCTCTCTGCCTCAGTTTCTCTCTAGGGAAAAGGACGCAGTTGGTGTGGAGCAGGGCA
-TCGGTGGTCCTGTCAGGAAGAGTGGCGCGGGTGCCGGTGGGGAAGGGAGGCGGGAAATGG
-CCTGATTTCCCCGGCCGACACCCCCTACCCATCCCCCCCGGGAGGGCGCCCCTTCTCCCC
-CGCCCGGGCAGCGCTGGACGCTGTAGTGGGCGAGTCTGAGGGTCTGGGAAGGACACAACT
-GAATGAGGCTGTGCAGAGGCGACAGATTCCGTCCATCTTCGGGCCCTGGCTTCCGTCACT
-TCCGCCCGTGCCTGCCGCCCCTCGCCTCCTCCCTCCGCCGCAGTCTCCCCACGTCGGACA
-GCGCAGCCCCCTCCGCCTCCCGCTCCCCTCCCACCGAGCTCCTCCCGGCTCCCGGGCTGG
-GGACGCCTCCCTAGCGGTTCCCATGGCAACCCTCGTCCCGGGTGCCTgcgccccgccccc
-cgcccgccAGACCTACTCCGTGCAGCCCTGAAACGCCAGGCGGAGGGGCCAGGCCGAGCG
-GGAGGCAGCGTCAAGGTCACCTTCCCTCTCCAGTAGCAGCAGGACTGAGTGATTCCATCT
-ATTTGGAGTCGCGGAAGCGGTGAATTGGAGGGGAGGAGCTGACCCAGGTCAACAGCCCCG
-AAGCCCCCTCCACACCTCCTCACCTGTGGCCTTGAACAGTGGTCTCCGCACGGAGGCTCC
-TACCGTCCCCCAGGCCCCATTTCTTCTCCCCACCCGGGCCTCCCCAGCGCCTCGCCGGGG
-CGGGTACCGCGCTGGCCGCACCCTCCGCACAGCCCGCCCCGCCCGCCTCCTCCGGCGAGC
-CCTCCTCTCCAGACCTCTCGCCCTCCTCCTCCGACGGTCCTTCGCTTTCAGTCTCTGCCT
-TTTCCCGTTCTCTGTCGTGGCTTTTGTTGTTGTTGTTTTTCCTCCTTTCCTTCCCCGCTC
-TTCTTTTCCCTGAATTGTAAGTGAGGAGGGTGTACAGCCACTATTTATGGACAGGCTTTC
-TTGACAGCAATCTTGTGTGCCGTGTGACTCCAAGCAGAACCTCCAACCgtgtgtgtgtgt
-gtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtCGTACCTATCTGGGTATGTCTCTGTATG
-CTTTGTGAGTATGTCTGTGTGTTTCTCTGTGCTGTTTCGGTGAGTTTCTCTATGCAGGGA
-TTTGAGGACCACATCTGATTGGAAGTGAGGGGCAGCTGTCAGGACCTTTATCTTACCCTT
-TGGAACAAGCACATTGTTTCATTTTGCAGGAGGCTGCTAATTAAGGCTGAGGGCCATCAT
-GGAGACTGGGGTAGAAGCCCAGTCCTCCCCCAACACCTCCTGGCTTTGGTTCGGGCCAAA
-CCTGTATATGGATATACAAGTACCTTCCATTCCCAAGATCCGTGTCCACTTTTGTGGAAA
-AAAAAAAAAAGGTTATTTGATAGGTTTCTCTGGAAATCTAACAGCCCTTAAGCCTAAGAG
-TCTTTAATCCTGAGGGACCCTGACTTTCACTTCCAATGGAGTCAAAATTCATTGGAATCT
-GGAGGCTTTCAGGGGCAGTCCTGGGGAGGACCTTTTTATAGCCTTGCAGCTTGGGAACTC
-CAGCCCAAGTGTCAGCCATGACAATTACCCCCAGGAGGGGGTCTGAAGGGGAGCGGAGGG
-TGAGGCTCTCTCATTCCAGATATGGAGACTAAAAAGTTCAAGATGGAAGTAATAGCAAAA
-AAATTACAGTACTAATCACAACAGCTACCATTTCTCAGCATTAGAcacagtaactgtatg
-aaagaagtatgattattaggtctgttttacagatgaggaaactgagacccagaaaggtgg
-aagcacttgtctaaggtcacgcctccaggaagcagtgtgtccacgactccagtccaagtg
-gtcaggctccagagcccacagtcccaggtactGGGTGGCCTCCAGAGTAAACATGCAcat
-ttattgacacctccaattgccaggcactgggctaaggccttcagtgcattggctcattCG
-CAGTGTGCTTTGGGAAGGACAGGCTGGGATTCCAAAAGGCCAGACTGTGCTATGCGTGTA
-GGGTGTCTCGAGTGGGAGGAGAAGCGGGTGGGGCACAAAGATTTAGGGGGCTTATGAAGG
-TCACCATGAGCAGCTCCCACTAATCCCTCCCTCCGTCAGCTGCACCTTACCTGCTCCCCA
-GGGGTCCATGATGCCGAGCTGCAATCGTTCCTGCAGCTGCAGCCGCGGCCCCAGCGTGGA
-GGATGGCAAGTGGTATGGGGTCCGCTCCTACCTGCACCTCTTCTATGAGGACTGTGCAGG
-CACTGCTCTCAGCGACGACCCTGAGGGACCTCCGGTCCTGTGCCCCCGCCGGCCCTGGCC
-CTCACTGTGTTGGAAGGTAAGGCCAGATGAGCACCTCCCATGATTCCTCTGCCTTGATGG
-AGGAAATGAGTCTGAATTTGAGGCTCAGAGGAAAAAAGAAGAGATAGCgtagtagttagg
-agtcttgcacagtcaagcaacagaaaacccaattcaaatgggtttaaataatgaagggag
-ccttcattgTATTTGTATTTACAtacaaattatttacataattatttacatatttattGT
-ATGTAAATAATggtggctcatgcctgtaatcccagcactttgggaggctgaggtgggcag
-atcacctgaggtctggagttcaacacctgctctgtcagcatggcgaaaccctttctctac
-taaaaatacaaaaatggaccgggtgcggtagttcacgcctgtaatcccagcactttggta
-ggcggaggctgaggctggtggatctcgaggtcaggagttggagaccagcctggccaacat
-agtgaaaccctgtctgtactaaaaatacaaaaattagctgggtgtggtggcgggcgcctg
-taatcccggctactcgggaggctgaggcaggagaatcacttgaaaccaaaaggtggaggt
-tgcagtgagctgagatcaatccattgcactccagcctgggtgaaagagcgaaactccctc
-taaaaaaaaaaaaaaaaaaaaatgagccgggcgtggtggcaggcgcctgtaatcccagtt
-acttaggaggctgaggcaggagaattgcttgaacccaggaggcagaggttgcagtgagcc
-aagtttgcaccattgcactccagctgggcgacagaacaagactctgtctcaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaagaaaaaaGAAGGGAAAATGTTGCTCATTTTTTAGAAGAGA
-CCCAAGGTCCAAGGTTGCATACTTTCAGGCAAAGTTTGATCCAGCAGTTCAACCCTTTAT
-ACCAAGGACTTTGCAAGTTTTCTTAGTCTTCAGCCTCCTCATGGTGCCCCTACCCTGGTA
-GCCTGTTAGCTTCAGACTCTCCCCACATGTTCCCCAAATGGCCACTACTGTGTGGACTCT
-CAGGTCTTCACTCCACACCATCTAAGGGAAGTCAGCATTTCCTGTGGTATTTCCTTCAGA
-AAAGAAAATAgcctgtaatcccatcattttgggaggccaaggtgggtggatcacctgagg
-tcaggagttcgagaccagcttagccaacgtggtgaaacctcatctctactagaaatacaa
-aaattagctgggtgtggtgatgggcgcctataatcccagctactctggaggctgaggcag
-gataatcactagaacccgggagacagcagttgcagtgagcagagatcgtgccgttgcact
-ccagcctgcacaacaagagtgaaactctgtcttaaaaaaacaaacaaacaaaaaaTGGCC
-ACAGGTACtggcttacacctgtaatcccagcactttgagaggctgaagcaggaggattgc
-ttgagcccaggaattcaagatcagcctgggcaacatagtgagacttcatctctactaaaa
-ataaaaaattagctggatgtagtggcgcgggcctgtgatgcctactactcaagaggctga
-gccaggaggatcgtttgagcccaggaggttgaagctgcagtgagccatgattgtgccact
-gcactccagcctgggcaacagagtgagactctgtcaagaaaagaaaagagagaagaaagg
-aagaGAGAAAGCAAAATAGTAAgatattaaaaacatgttaccatttaccttagcaccaaa
-gaagagagaaatacttaggtgtaaatctaacaaaatatctgtaatatgagaagaactaca
-aaactcaaaagatatcaaataactaaataaatggagaaatagttcatattcgtggattgg
-aatagtcaagatgttagttcttcccaacctgatctttgattcaatgcaatgccaatcaaa
-accccagcacgttattttgtggacgtcaaAATGTCACCTCCTCAGGGAGGAGATCCCTGG
-ACTGAGTCGGGTCCCTTGCTTTACTCTGGGCAAACTCTGTGCCCATTCATTCTTCAATAC
-ACTTACCACTTTGCACACTTGTAGTTTATATGGAGAGGTAAAAGATTCAGAAATTTAAAA
-ATCATTTATAagaaacaatgcttttaattcccagaagtcctgacaagcattgtgttggct
-ctcattgggtcacttgccagccttgaactaattactatggttaagagatggactatgctg
-actggcAGGAAGTGAGGTTCATCTCACTTAAATCTTACTGTGGTTTCTCAATGGTAGACT
-GGAGTACCTTGCCAGGGCAGAGAAAAAATGTGAAGAATTGATGTCTTTAACAGCCAAGGA
-GACTAGTCGGCCAGGGTGCACCAATGGGTCAAGGTGTAGAGGTGGCAATGAGCTGAGTGC
-CTGCTATGGGCATAGCTCTTTGCTAAATATTCTCGGGAGACTGAGGCAGAGGGTCCCTTC
-TTTTGCTTTCAAAGGACTTCACTCTAGTGAGGAGGTAAGGTGCCAACCTCTGCAGAGAGG
-CCAACTTACATAACTTCAGGTCAGGTCTGTAGGGAACACCAGGAGAGGAAATGATCAAGG
-AAGACTTCCAAGGAAAGGTTAGTGTGTATTTaaaatttttaagcatcttcttattgcgag
-gcactgtgctaggctcttgggaacacagaatttaagacatgaggtccctgtcttcgagga
-actcTTTTAGCTGTGGTTTatttaatcattcagcaaacatttattcagcctttgctctgt
-gccggcacgtgctaggcacagaagactcctagtgagccaaaacaggcacagtctgctctc
-atggagctctcagtactgcgggagaggcagacgtcacttacatagcaaccaaaatacatg
-tccaagtgtgcacaatggtaagtgtattgaagaatgaatgggcacagtttgcccagagta
-aagcaagagacctgactcagtccaggggtcttctccctgaggaggtgaggtttgagatga
-gatctgatggtgcataggagttaacccaacagagacaggaaggtagaaaggATAAAGAGA
-TGAGTTGGGATGGAGGGAAACACAGGGTTGGCCGGAGAAACCCACTGCTAGGTGGGAGCT
-GGGAAGGAAATTAAGAGGCCTCAGGATTCCAAATAAAACATGACAGTTTATGCCTCCTGT
-CAGTTAGACCCCAGCAAGTGTGTTCTGTGATTCCCATCTCCTGAGGATGGATCAAGGGGT
-TACCCTTAAGTCTGGTGAGGATCCAAGGTGATCCCTTGGCCAGGGGCCCCTGGCTGACCC
-TGACTGCTTCCTGGTCTGTCTGCTTCTCCCTAGATCAGCCTGTCCTCGGGGACCCTGCTT
-CTGCTGCTGGGTGTGGCGGCTCTGACCACTGGCTATGCAGTGCCCCCCAAGCTGGAGGGC
-ATCGGTGAGGGTGAGTTCCTGGTGTTGGATCAGCGGGCAGCCGACTACAACCAGGCCCTG
-GGCACCTGTCGCCTGGCAGGCACAGCGCTCTGTGTGGCAGCTGGAGTTCTGCTCGCCATC
-TGCCTCTTCTGGGCCATGATAGGCTGGCTGAGCCAGGACACCAAGGCAGAGCCCTTGGAC
-CCCGAAGCCGACAGCCACGTGGAGGTCTTCGGGGATGAGCCAGAGCAGCAGTTGTCACCC
-ATTTTCCGCAATGCCAGTGGCCAGTCATGGTTCTCGCCACCCGCCAGCCCCTTTGGGCAA
-TCTTCTGTGCAGACTATCCAGCCCAAGAGGGACTCCTGAGCTGCCCACATGGCCTAAGAT
-GTGGGTCCTGGATCCTTCCCCCCTTCTCACCATAACCCCCTCTCAGTGTTTCCCCAACTT
-CTCCCTTTTAGCAGGGTCCCTTTAGAGCCCAACTCCAGGTCAAATCTGGAGCTCAAATCC
-CAGTGCTCCCTCCCCAGGAGTGGGGCCCCAACTCTTCCAAGATACCAGCATTCCTCAAGT
-CCTCCCAAAACTTCCTACCCACACCCTCTTCCCAAGGCCCTCAGGGGCAGAAAACATCTC
-CTTCAACCCGTCCCCACTCCTTCCTctgcatgaccttgggcaaacccttgccctttcaag
-ccatcagctcctgcctctctgccatgagggctttggatcagatTCCTCTTCTCGCCAGGA
-TGAGGACACGCACTGCCCTCCATAGACACAGATGAAGGGGTGGGGGTCATTCAGCTCGAA
-TGGGTCCCAGATGCTCACTTGGCCTTTCCCTGCAGGATGAGTGAAGACGTTTGCCTCTCA
-CAGTGTGTCTtctacctgcattttggcatcagagccccccagcccacccaccacaggcaa
-ttactagccctagttgataggtgaggtgggtgaagaaggctggaggtgacatgtccgagg
-tcacacaacaaagcagcatgcaggaactagaaacacatcttcagcctccTCCTGGGCCAG
-CTCTTGTGCTACAGGTGGGGCGGAGCCAGCCCCTCACCTTCCTGGTTCCCTGAGGGTCCT
-CAGGGTGGAGGACAGGTTTGGCCCAGAAAGACTAGCCAGAGGCCTGATGGTCCCAGGTGG
-CTCTGGATATACTTTGGATATGGATTTAAATGGTCTCTAAGAGCCGGGGGTAGGGGGCAG
-GAAAAGTGGGTTGTCTTTGCCCCTCAAAGTCCACCTACCTAGAAACCAAGCCCACGGTCT
-TGGCCGTGACCCTGATAATAAATGGGCTCTCTCAGAGGCGCCAGCCCCTCCCTCCCCAGC
-CGGAGGCGTCATCTCTCTTCTGTACCACTAGAGGGAGCTCTGATGCAGCTGGAGAGCAGC
-GCTCAAGGCTCTCGCCCCTCCCCTCCCTAACCCTTACCTTCAGTCTCCACCAGCCTGAAG
-GGCCTCCTAGGGGATCCTCAGGCGGCCCCCACCAGGGCACACCCTACTGTCCTTGTGCCT
-CACGCCCCCTCCTCATCCTGCACCCCTTCCATCCCACCTTCCCTTTCAATAAACAGCTGG
-GATGGATACTGACTTTGTTTCCTTTCTCCCTGGCCACTGGGGCGTGGGGAGGAGAAAGAC
-ACAGACTCAGgagcacctactgtgtgctgggcacgacccattatttctcattcgctcctc
-aggataacctgttgagaaaggaattattgtcttcttttttttttttttaagatgttgtct
-cgctctgtcgcccaggctggaatgcagtggggcgatcttggctcactgcaacctctgcct
-cctgggttcaaccaattctcctgcctcagcctcccaagtagctgatattacaggtgcacg
-ccaccacgcctggctaatttttgtatttatagtggagacggggttttaccatgttggcca
-ggctggtcttgaactcctgacctcaaatgatccgcctgcctcggcctcccaaagtgctgg
-gattaccgggtgagccaccttacccagacttattgtcttcattttacagatgcggtaact
-gatgatcagagaggtgagtgatttATTTTTTAtttttatttttaattcttttttattttt
-ttcgagacggagtctggctctgtcacccaggctggagtgcagtggcacgagctcagctca
-ctgcaagctccgcctcccgggttcatgccagtctcctgcctcagcctcccaagtagctgg
-gactatgagtagctgggactacaggtgcctgccaacacacccagctaattttttgtattt
-ttagtagagacagagtttcaccatgttagccagcatggtctcaaatctcctgacctcgtg
-atccgcccgcctcggcctcccaaagtgctgggattacaggcgtgagccaccgcgcccggc
-cTATTTTTAATtctttttatttcagtagcctttggggtcaaagtgggttttggttacatg
-aattagttctatagtgattctgagattttagtacacctatcacctgagcagtgtatactg
-tacccaatacgcagttttttatccctcatcccctcccaacctccctggactcagtcccca
-aagttcgttatatcactctgtatgcctatgcatcctcatagcttagcttccgcttatata
-agtgagaacctaccgtatctggatttccgttcctgagttacttcacttaggataatggcc
-tccagctccacccaagtcctgcaGTGGATTTAAATGCTCAGCCTAGGGCCTGGAGGGGTG
-GCTGggccaggcgaggtggctcacgcctgtaatcccaggactttgggaggccgaggtggg
-tggatcacctgaggtcaggagttcaagaccagcctggccaacatggtaaaaccccataac
-tactaaaaatacaaaaattagctgagcatggtggtgcatgcctgtaatcccagctactcg
-ggagactgaggcaggagaattgcttgaacccgggtggtggaggttgcagtgaaccaagtt
-cacaccattgcactccagcctgggcaacagagcaagcctctgtctcaaaaaaaaaaaaaa
-aaaGTGCTTAGCCTGATTGGCCTATTGCCTGAGTGTGGAGCTCCTGTCTTTGGGTGGGAA
-GGAGATTTCTCAGCCACCTTGAGAACACACTTCCTCTAGTTCTGAAAGGAATGTGAGGGC
-CAGGGTGTGGGAGAGGGGGCTGAAGCCAAAGGTAAGATCTTTTCCAGGCCTGGaagagta
-attaaccccttttggcactcaccaggggctgggccttgttcttagtgccttacagaattc
-gggaattcatttaaccaggacgacaacctctgaggtggcggctattattctcaaacctag
-tttttcctaaactccaggcttgcgttcccatctgcattcacctggatgttgaatttaaac
-tcaactatctcaaactgttctccttgttaccacccctccctgaccaaacctgcctctact
-atgctgcccacgtcttagagagtagcgtccccattcttctggctgctccagccaaaacct
-cctctctttcctcacaccctgtatccaatccatcagcaagtcctgtcaactcaaccttgg
-aaatatatcctgtacccaactacacctcgacatccccgtggctgattccatggtctgaac
-caccagcgaccagcgcctcgatctggatcattgcaccagcttcccccggtctcctggctt
-ctgagttttgaaccccaccctactccacgccttgactccccaagtctaattactacacag
-tagccagacagatcttgttagaacataaactaggtcatgttcctcctccgctccaaacct
-tcccatggctcccacctaactcagagtagccaaaaccctccctgtggcctccaaggccct
-acacaatttgctgatttccactccccccgcactttcctctgtaaccccaactcccaccac
-tctccaggttcctgtgtcctctccagccaggatcctgactcagggcctttgcctcactgt
-tccctctgctggggtactcctccccagttgacgacatgggcagttccttcaagtcgttgc
-tcaaacatcaccttctcagcaaggccttccctgagcagcctattagaattgcaACCAggc
-caggcgcagtggctcaagccagtaatcccagcactttgggaggccgaagcaggtggatct
-cctaaggttgggagttcgagaccagcctgaccaacatggagaaaccccgtctctactaaa
-aatacaaaatcacccaggcatggtggcacatgcctgtaatcccagctactcgggaggctg
-aggcaggagaatcacttgaacctgggaggcggagattgtggtgagctgagatcgcaccat
-tgcactccagcctgggcaacaagagcgaaaccccatctcaaaaacaggaaaaacaaaaaa
-caaaaaaaTGCAACCATGCCggccaggtggagtggctcacacctgtaatcccagcacttt
-gggaggccaacgtgggcagatcacctgaggtcaggagttggagaccagcctgggcaacat
-ggtgaaaccctatctctactgaaaatacaaaaattacccaggcatggtggcacgtgtctg
-taatcccagctacttgagaggctgaggcatgacaatcacttgaactcgggaggtggaggt
-tgcagtgagccaagatcgcgccattgcattccagcttgggcgacagagcgaaactccatc
-tcaaaaaaataaaaggaaGCTAACACAGAGTATAAATGGTGCAggcagtttgacaatatc
-aaaatagaaaatacacatgccctttgatttctccctcttatgcaggtggatctatagatt
-caactctacatgttggaacactatagtattatttgtaattaaagcatttggaaacaacct
-aaatgctcatggtaggggactattaataaaatacggtaAggctgagtgcagtggctcacg
-cctgtcatcccagtactttgggaggccaacgcaggaggatcacttgaggccaggagttca
-agaccaacctgggcaacatagggcaacatagcaaggccccatctctacaaaaaattaaaa
-attagctgggcatggtggcacacgcctgtagtctcagctattaatatttgggaggctgag
-gcaggaggatcacaccactgcactttagcctgaatactgagtaacaaagcaaaaccctgt
-ctctcttaaaaaaaaaaTTGGGGGGAAGGACAAGTCTTttttcttttcttttcttttctt
-ttctttttttttttttttttgagatggaatttcactcttgttgcccaggctggagtgcaa
-tggtgtgatctcggctcacggcaacctccgcctcctgggttcaagcaattctgcttcagc
-ctcccgagtggctgggattatagtcatgcgccaccacacctggctaattttgtattttag
-gtagagacggggtttctccatgttggtcaggctggtcttgaactcccaactcctggcctc
-ggcctcccaaagtgctgggattagaggtgtgagccaccgtgcccagccAGGacaagtctt
-cttacagaagaattccaattagtaaatgtagaaggattgagagaaattgaaaaatcatca
-ttagaacaccggaataataattgctgcaggcaacatctaccaatgaacaataaaatgagt
-gggtgaaactttaaggagaaacaaggttttttttttagaaacgggatcttactacattgt
-ccaggctggtctggaactcctaggctcaatgggatcctcccacctcatgctccccagtag
-ctgctactacaggcacataccaccccaccaggcttgaaacaaaatatttgcatagcctca
-aagtatctatccccaaatatgtattaattagtatggtggttttaacatatgcatacatgt
-tctttgatgctctgccatctaggaaatggagcttaatttttctcctcttgagtgtgggct
-ggactcagcaacttgcttctaacaagtagaatgtggaaaggcaaaaacagtgacttcaca
-gtggaaaaatctggcagacaccaccttaaccaaatgaaggctggcaccaccagtcaaaag
-tcttgttgatatcacagcctctgaaatgatgtggtgagaagggcacttggcctgagtggc
-attcttcccccaaatccgtaacgtcagcctaatcatgagaagacccattctacaaaagat
-ctgaccagcactcttcaaatgtgtccaggtcacgaaagacaaggaaaggacaagaaacgg
-tctcaggttggaggagactaaggagacgtggctgaaggatacacaggatctccctgtact
-gtccatgtaactcttcaataaatctacaattatttcaaaatagcaaaaaatacgattGCT
-ggccgggcacagtggctcacgcttgtaatcccagcactttgggaggccaagaagggcaga
-ttacttgaggtcaggagtttgagatcagcctggccaacatggtgaaaccctgtctctact
-aaaaatgcaaaaattagctgggcgtggtggcatgtgtctgtaattccagctgctcgagta
-gctgaggcaggagaatggcgtgaacccgggaggcggagcttgcagtgagccgagattgcg
-ccactgcactcccgcctgggccacagagcgagactccgtctcaaaaaaaaaaaaaaaaaa
-aTTACTGTGGTCAAGATGGAATAACAGGGATCTGGTTTAACACACCCCAAAAAGGACCTA
-AGAAAGGACCATTCCCTCTCCTCTCTGAGGTGGGAAGATCTGGGAAGGAGAGGAGGCTGA
-CCAGTGGGGTCTACCTTCTGCTCCACCCCTCTTCTATCCAAGAGTCTGAGCACCCAACCC
-CCACACCACCCTGGAGGCTCCCGCCCTCGTGCTGAGTCTGGCATGCCCTCCCCATCCCTA
-CTGGCCCAGGGGACTAGGTTAGCTCAGAGAAGCCCTTCTAACTCACCCACAACTGGACCA
-AAGAAGGATTGATCTGGGGCCACTGCCTGGTCCCTGGGAGCACTGTGCTAGGGCAGGGGG
-CTGAGATGCCCCAGGGTAAGAGACAGAACAGTGAtttttttttttctaagacagagtttc
-gctcttattgcccaggctggagtgcaatgcgcgatcttggctcaccgcaatctccgcctc
-ccaggttcgagcgattctcctgcctcagcctcccgagtagctgggattacaggcatgtgt
-caccacgccccccggctaattttgtacttttagtagacacagggcttctccatgttggtc
-aggctagtctcaaactcctgacctcaggtgatcctcccaccttggcctcccaaagtgctg
-ggattacaggcatgtgccaccgcacccggccAAAAACAGTGATATTCATATAGATGGGGG
-AGGGATTAATGGGGGTGGAGTGAGAGAGAGCCTGCTGGAGCAGTCCGAAAGGCAGGCATT
-CCTTCTGTTCAGCAACATTCCTGCCCCCACAATCTCCTCCCACAACTTATATCTAGTgca
-ggctgagagtgaatctgtctgccagtgttcaagccactgtgtgaacctgagtttcttaac
-cgttctgagtgtcaggagtttttttcatctccaaaataggagcaacaaggataccaatcc
-cttgagattgtatgaagcttaatgcacttaacacagcacctggcacgtagacatgctccc
-taaatgccagctgttattatGAAAGAGAGAAGTCTGAGGTTCAGAACTAGCAGGCAACAC
-ATAATCtataatgatggatggctcagacagggtcctgtcctatagggactcacagtctag
-tggaaaggacagtcctgtggacagcaaatggcaaTATACCTGGGTAAGTACTGTAATAGA
-ATAACAAAGTAATATCCTATCACGGGGCAGTCACGGGGGCAGTGAGAGACAagcgcttgt
-ccatgccaggctctgtactcagtccatcacatacattaggtcttgcagtcctcataccac
-cataaggtggttaccattatctccaattcacagaaaagcaaacagtatggagtgtttaag
-cgtcctgtccgagatggcatagctagtggagctgaaatttgaacccaagtaatccaggtc
-cagaatGCCCCGGATGCAGAAATGACCACACAGATTCTACCAATGAACTAACCTGATAAG
-GTTGGAGGTCATACTCATAACCCCTCACACAGGTCCACACAGACACAGGCAAGCACACCC
-ATGTCTATTCAGATACACACCAATTCCTGTCTATGACGAGCGCTCAGAAAATCCTCCACA
-ACACCACACCAGGAATGATGTGCATTTTGAGAAAAAAAAAAATCAGCTCTGAAGACCTCA
-CAGACACATGCAGTGAAATGTAAATGGAGGGACCCACCCAAGTTCTTGAATAGCACATTA
-CATGCCTGGATGCACATCAGCGGGCATGTAAATGATGACGAGGAGGTCTGCAGACACTGA
-CACGCTGCATTTGCACTCACTCTGCTACTGAATTTTTTAGCagctacatttactgagcac
-ctactgtatgtaaggAAAGATAAAGCagccgggagctgtggctcacgcctgtaatctcag
-cgctttgggaggccaaggcaggtggatcacctgagctcaggagaccagcctggccaacat
-ggtaaaaccttgtctctactaaaaataatacaaaaattagctgagtgtggtggcatgcac
-ctgtaatcccagctactcaggaggctgaggcaggagaatcgcttgaacccaggaggtgga
-ggttgcagtgagccaagatcacgccattgcactccagcctgggtgacagaatgaaactct
-gtctcaaagaaaaaaaaaaaaaaaagtaaaaaagataaagctcagagaagtgaagtggct
-tgcccaaagtcaaatggctgagattcaaaccctggccctataatattaggcaacggtgtc
-tccctccaccactgtgcAGATGCATCCATGAGTGAAGAGATGTGCTATGGCTGGATTCCC
-TCATTGACATTCCCTGTGACCTTGGACATGGCATGGCCTTGTCTGGCCCACATTCTCATG
-TTGAGTCCATTCACAGGTGTGCTCCATGGATGTGCATGGATGGGACCGGCAACCCTGGCC
-TTGCTCTGAGTCTCAGCTTGGCTTGGTGTCACCAGGGCTGTGAGCTTCCAATCCCAGCCT
-TGCCATGTCCCAGAGCACATGGCTCAAAACCAAGCTCTGGGCATCAGGCCAGCAGGGCCC
-CTGTGATGGAAGAACTGACAGGATTTCATAAGCATCCGGCCCGGGACACGTGGTCAGGGC
-AGGGAGAAGGGAGATAAACAGGATGTCCACCAGGGTGTGCACCTGGGCAGGGTCCATGGA
-CCAGGTGTGGCAGGGGAAGAGCTGTCAGGACTTGGCATCTGATGGGCACTCAGCAGATAT
-AGGCTGTGTGAGGGGAGGAGTTTGTGGGGAGGCAGGGCTGCAGCTTTGCTTCCATCCTGG
-AGGCCAGGAATGAGGGAGTAAGTGAGCCATTGACTCaatgaatgaatgaatgagcgagtg
-agtgaaggaaggaaggggtaagtaaataagtgaagaatgGAATGGGGGAGGGAGTGAatt
-tatttatttatttatttatttattttgagacagggtcttgctctgttgcccaggctggag
-tgcagtctcagctcactgcaacctctacctctcaggctcaagggattctcccacctcagc
-ccccagcatagctgggactacaggcgcatgccgccacatcccgctaatttttgtattttc
-tgtagagatggggtttcgctatgtcggccaggctggtctcaaactcctgggctcaagcga
-tctgcctgcctcagcctctgcagtgctgagattacaggtgtgagccaccgtgcTGAGCTG
-TGAatttattttttacacaaatctgagtgctcactctgtgctggccctggacgggtctct
-gtggatgtctggtgagcaggatggacacagcccggtcattgcaacgctaaaagCTTGAAT
-GACACCAGTCAGGCTGGGGAACTGGGAGGGCCCTTGACATGCAGAGTGACTCAGCCAGTG
-TGAGCAGGGGTTGTCAGCATGCCTAGGGGAGCAAGAGACTGTGAGAGAtgtgtgtgtata
-cttgtgtgcctgtgtgtgtccgtgtgtacacatgtgtgcgCCGACACAGCCAGGTGTTGG
-CCAATGCAGGTGTGGTGTCCTCAAGAGCACAGTGCATCCTGATTCTTCACCCTCCCAGGC
-CTCCCCTGCCCCTGTTGTGTGCCAGCTGGGCCTGCCCCATGTTATGCCTGACGCCCACGC
-AAAAGCTGCTTCTTCCAGTCACAGGACAAAGGCATCCTCAGCCCAGACCCTGTACCCCAG
-GGGTAAAGACCTCTCAGACCCCTAGTGCTCCTCAGCATGGACCTCTCCACCAGGAGCCTC
-AGAGTTGTGAGAAGCACAGGCACCCAAAGCCCACCGCCCTGTGTCCATGTGCATGGAGTG
-TGCCCAGGTACACGCAAGGGCTGGAGATGCCCCAGGGCGGTCCAGACAGACGTGCAGATG
-ACACATTGGCCACTGAGTTTCCACAGACACTGAGCTAAGTGCTTTCGAGACACActgggt
-gaccttaggcgtatcaccctctctgagcctcagtttctaatctaaaagtagggtaattat
-actcacttccagtcttgttagaataactcaatgCATGATCAGCTCAACACATCATGATTA
-TTTTTCCTGAGTTCCTGCCTTCCCAGCTATATTGTCTATTCCTCAACAGTACCCACTGAG
-TCTTATATCCCCGTTTCTCCTATGATACTCCATTACACAGGACTCAAATAACTACCTGCT
-CTAAGAATTGCTGAGTGACATGTAGTCCTCATAAATAGCAATAATAGTCACTAACATTTA
-TATAACaacaagagccagcaattttgattttttattgtgtcaggcattgtgctgaacact
-ttacattccttcattcatttgacaaacattcactgaacacctggtaggtgctgggctctg
-tgctagacctgcagatgcagcatctctgccctcaaggttcttacattctgatggggaaga
-agagacagacaaaagacagtttggcggggcacagtggctcacgcctgtaatcccagcact
-ttggtaagccgaggcaggcagatcacttgaggtcaggagtttgagaccagcctggtcaac
-atggtgaaacccctgtctctactgaaaaaatacaaaaattagccaagtgtggaggtaggc
-atctgtaatcccagctactcgggaggctgaggcacaagaatgacttgaacctagaaggtg
-gaggttgtagtgagcagagatcgagccactgcactccagcctgggcgacagagcgagatt
-cagcctcaaaaaaaaaaaaaagataatttaatacataaatgggataatttcaaaccttga
-caagtgctacaaataaaataaggaagagttatggattagagacaaactgcagggattagg
-tggggcatgatgcttgatgagtgatcagggagggcctctctgaggagcaaatatttgatc
-tgagacctgaagaagaaggaagagcctggaaagatacaggaaaagttccaggcagatggc
-atagcaagggcaaaggccctggggcaggaagaacttggtaggttcgaggactaggagaaa
-gggaccatagctggagGATGATTCAGCAAACCTGGCAGGTCTGTCCTGGATGACTCAGCA
-AGCCTTGCAGGTCTGTTCTGGTTTCAGAACCCAGGCATTTTGTCCTTCACTCCAGGCTGC
-CTCAGAGACATGCATCCCTGCCATACACAACAATGTGTGCACGCTGGCACACATGCACAT
-GCATGCACACACACACTCTGCATGCTGACACACAACTAAGGGCCGGACCAGCCATGATAG
-TCTAAGACACTAACATTTTTCTCTAGTGTCTTGTGGGGCCAAGTAGAAGGGCCAGATGTC
-ACCTTTGCCCAGCCTTCCAGAAGTTCTGGGCCAAAGAAAGATTAAATGGCAGGAAGAGAA
-AAATGGCTTAATAAGGAGGTGACGGGGAACTCGGGTGGCCTGTGGGGGTGCGGAGATGGG
-GGGAGATGATAGAGATGTGAGAGCCCATGGGCACATCCCCTCTGGGGAAGTGAGGGAGCA
-CCGAGAACAGAGAAGCAGAGGGAGTGGAGACGGTTCTCAGAAGCACAGGGCCTCCACACT
-CACCACAGCCCCTACTCAGCCGACATGCCTTGCTTCCTCTCACCTCCCCTGGTTCACCTC
-AGAGATGGGACACTCATTGCCCACCAGGGCAGCCTGGGTGGTGCCAACTGTGAGAGAGCT
-CCCCTTCCACATCTGCCTTTGTGGCTGTAAAATGTGGAAAGaataagagaaatacctatg
-aaatctgcaggaagatactttcttttttttttttttttttttttgagatggagtttagtt
-cttgtcgcccaggctggagtgcagtggagcgatctcagctcactgcaacctccgcctccc
-aggttcaagcaattctcctgcctcagtctcccgagtagctgggattacaggtgctcgcca
-tcacacccagctaatttttttgtatttttagtagagatggggtttcgccatgttgggcaa
-gctggtctcgaactcctaacctcaggtgatccacccacctcagcctcccaaaggaggctg
-ggattacatttttctaaatcagttcggtaaaaatcaaaaattttgagaacacctggtgtt
-gtagttctgggaagcaggtactcacatgctttgctggcaggaggtagattgataacaatc
-tctatagaggaggagccagagatctctcttaaaagtgcaaatgcacaaacttttgactta
-gaaattctgcttctgggCAGGGCGCGGTGGCTCACGCCTGTGATCCCTGCCTCCCaggcc
-aaggttgcagtgagctgagatcgcaccattgcactccagcctgggcaacaagagcgaaac
-tctgtctcaaaaaagaaagaaagaaagaaagaaaaattctacttctaggaaattagctca
-gaacttctctccacacccccatgtatgaacactgcagcattttttgttatagcaaaagac
-tggaaataattaactgttcattgacaagggatggtttaaataaaccagtacattcctaac
-catggaataggaccaagctgtaaaaactgaccaggcaggtctttctggactgacacggaa
-gagtccccaagataaattgttaaataggaaggaaaaaggcaatctgaaggacatggagtg
-tgctcccatctgtgtaaaaaagtgacaaTAAATCCTCATATTTTATGTCTTGAAGGAAAC
-ACGAGAAAATGGCTTGACCCCAGGAAGATGAACTAGGAGCTGGGGATAGGAGTGGGAGGG
-AGACTTCTCAAGTATTACTCTTCTGTGCCTTTGAATTTTGAGCTAAAATATTTAaataaa
-atattaatataattaatataatacaattaataattaatattgaataaaataaaatatCTA
-AAAATCTGCTCCccgggtgcggtggcccacgcctataatcccagcactttgggaggccaa
-ggctggtggatcacctgaggtcgagagttagagaccagcctgaccaacatggagaaaccc
-cggctctactaaaaatacaaaataattagccgggagaggtggcgcatgcttgtaatccca
-gctactcagcaggctgaggcagaagaatcgcttgaacccggaagacggaggttgcagtga
-gccaagatcgcaccattgcactccagcctgggcaacagaagcaaaactccgtctccaaaa
-acaaacaaaaaaacaaaacaaacaaacaaacaaaacCACAACTGTCTGCTCAAAAGTGCC
-ATCCTCCTACACACTCCTTGCCCTCAGCTAAGTTCTGTCCCCATGGAACTCTCCCTGGAA
-GAGACAATCTGTCTCCCAAGAGAgcaggcctatgtgtgagtcctggttccatcactgacc
-ctaagtgtgacctcaggcaagacactCCCACCCCTGACTTGTACTAGACAGTTCTCCCCA
-GCACTGACATTCTGTCTCTCCTGCTGGAGGGGCAGGAGGGCAGGCACAGTGTCTTCTTGC
-TCTGTGATTCATTCAGTTCACTTAAACTGAGTTACCTACTCCAGGCCAGAGTTTGGGTTC
-ATCCATTTCTTGCCCTCCATGCCCACCCCAGGGTCTGGCATGGGAGTTGGTACCCTATAG
-GAGTTCTGAACAGACTCAGCTTACGGATGAGGAACAGACGGTGGGTCAGATGCGCGGTAA
-GGAGGGTCAGGTACACGGCCCATGGGATCGAATAGATTCATGGGTGGGtctttaagacaa
-ccgccttcactcaatcctaagccctccccacagctaccaccctattttttctcccctttg
-cagaaaagggctttgagaaaattgtctatcctcgctgtttttaattagtcttctctctct
-ctctccctctgagacaggatctgctctctcacccaagctggagtgcagtggcgtgatcat
-ggctcactgcagcctcaacctcctgggctcaaacgatcttcccacctcagcctcctgagt
-agctgggactacaggtgtgcactaccatgcctggctaatttttgtattttttgtagagac
-tgggttttgccatgttgcccaggctggttttgaactcccaggctcaagtgatccatccac
-ctcagcctcccaaagtgctgggactgcaggtgtgagccaccacacctggccctcttgtct
-cttaagtccatttaatcatgcttctacctgtcacttccctagttgaaactgctcttgtca
-atttcaacacattgctaaatccaatgtgttcagttctcattcttcatctttttttttttt
-tttttttgagacagagtcttgctctgtcacccaggctggaatacagtggcacgatcttgg
-cccactgcaacctctgcctcctgggttcaagcgattctcctgcctcagcctcccgagtag
-ttgggactacaggcacaagccaccaaacccagctaatttttgtatttttagttgagacgg
-catttcaccatgttggccaggatggtctcaatctcttgacctcgtgatccgcccaccttg
-gcctccaaaagtgctgggattacaggtgtgagccaccgcacccggcccattcttcatctt
-cttaactgatcaacagtttgacacagctgaccactccctgctctttgatgtacttctttt
-cacttggtggccaggcctccactctctgctggttttcctccttctcaggctccctgcttc
-tcccattcctgttggagcagtgaggacttggtccctggagctctcatccagtctcacgtc
-tatgactcccaacactgtatcctcagcccagacctctcccctgaactccagcccatacat
-tcaaatacctacctgatgtctctttgaggatgtcaaaagacatgacagactccacagaac
-caaagctgaacctgggcttcccccaaacacctcgctccatgtcatttgatggcagttcca
-tacctgtcaccgttcaggccaagaaaccttggaagcaccttgacacctccttttccctca
-aactccacatctagaccatcagcaatcctgttggctccacctttaaaatatacccagaat
-ccagtcacagctcacctctagcatggccactgccctgctctgagccactggagtttaaga
-gaattattgcaacacctgctcccttgtcttcctgtccttgcctcattcagtctattccaa
-gtacagatccctaaatgattttattttaaaagtaagtcaaggctgggcatggtagctcat
-gcctgtaatcctagcgcttgaggaggccgaggaaggaggatcacttgggtgtaggagttt
-gagacccacctgggcaatgtggcaaaaccctgtctgtacttaaaaaaaagaaaaaaaATg
-gctgggcatggtggctcaccctgtaatcttagcactttgggaggctgaggcgggtgaatc
-acctgaggtcaggagttcgagaccagcctggccaacatgatgaaaccccatctctactaa
-aaatacaaaaattagccgggcaaggtgatgcacgcctgtagtcccagctactcaggaggc
-taaggaagaagaatcactggaacccaggaggtggaggttgcagtgagccaagatcgcgcc
-actgcactccagcctgcatgacaggagcgagactccatctcaaaaaaaaaaaaaaaaaaa
-aaaaggtaagtgagatcacttccctcctctccttaaaccctcccctgcctccccatgact
-cctcagcgtcctttcaaaggcctccaaagctccagattatctgaaccccctttacctctc
-tgacctcatctcccaccgcctccctgtcactggctgcactccagccacattgaccttctc
-cgatggcacaccagtcagctagtcagcttccttttggagcttttgcatgagctgttcctc
-ttcctgaagaatttgcccttcggatagtctcagggcatccactgaacactccactcaata
-cagccactgcctgcccacccaacactcctcatctctgtacttactctttttttcccttgc
-attcgtcaccccctaacatgtgctacaatgtacttattatggtaattatttcttgcatgt
-ttctttctttttttttttgagacagggtctcactctgttgcccagtctggagtgcagcag
-catgatctcagctcactgaaatcttggcctacctggctcaggccatcctccctcctctgc
-ctcctgagtagctgggactacaggcactcaccaccatgcctggctagttgttgtactttt
-ttgtagagatgaggtttcaccatgttgcctaagctagtctaaaactcctaggctcaagtg
-atcctcccgcctcagcctcccgaagtactgggattgcgggtgtgagccgctgtgcctggc
-tgcacttttccttctaatggaatgtaagcgccacttttgtctgttattttcactgtagta
-tccctagcctttggaatgttgcctggcaagtagtaggtactcagtaaatatttgttgaag
-aaacggatGATTCTATAAATAGCATGGATTGATATGGGAAAGCTATGTAGGTGGATGGAT
-GGATGCTTGTCGGATGGAGGGTAGATGAAAGAACAGCGAGAAATTCGAATGGCTAGATGG
-TGGGGATGCATTATAAAATAATAATTCATAGATGGAAAAGGAATGAATAGATGGGTGGAG
-GGATttaatctcttcaactactatttactgaccacttgccgtgtgccaggcactgtatga
-ggtgctagagacactggtgagccacacaggcaaggtgcctgtcctaagggagcctgtagt
-tcagtgggtgaggcagacactaaacaaataacaaatacatacataattccaattatagtt
-aagtgttctggtggaaaagaaCAGGATGCTCTGGGAGAGAATAATATGGATAAGTGATGG
-AAAAATGGACAATAAATGGGTAGATGGAGATGGATAGGATCGGGGTTATTTGCCTTAAAG
-GGCCTGGCTTCAGGACTGGAGCTGCTTTACCTTAAAGGGCCTGTCGGACCACATGTACCA
-TCCCACATCCCAGACCAGCTCTGCACTCAGAGACTGTCCCTCTCTCCCTGCCCTGACTCA
-GCACCTGCCTGGCCTATCCCCAGTGGTCCTGCCTGACTCTACCTCCAGCTCCCACCCTGC
-TGAGTCACAGTCAGGCTGGTCAGGGGGCTGTCCCATGTTCAGTCCAGCCCCTCAGCCTTC
-CTCGACCTGGGGGGGTATGGGGAGCAGCCCAGAGGGGAGGGGAGCAGGTGCCAAGCTCTT
-GATTCCTGTGCCTGAGCACTGCCCTGTTGAGACCAGAGAGAGAATCTATGGCTAGGGTAT
-CTGGGGCTACAGTTGGGGTTTATCTGGGGCCTGGGGTCACACATGATGGATTAGAGCTAA
-ATCTATCTCCAGGGTTATAACTCAATCAGGAGCTAGAATTCAAATTCAGTTTATGGATCA
-TGTGGGGAAAAAGTGACCAAGACACCGTTCAGTTTGGGACCTGTGTCGGCGTTAGCTGTG
-GCTACGGCCCAGGGCTTAGTGATCACAGGTCAGACCATGTTCAAGGTTTCAGGCCAGAGT
-GCAGTTGAAGTGCAAAGTCAGGCAATAGGGTTCACCCTAGGACCACAGTCAAGGATCTGG
-GTCAGTTAGTGTCCAGGGCACTGGCCTTGTCTCCTCTTCTTTGGGAGAGAAGCCAGGTGG
-ATGAGTTGGATCTAAATGTCCTGAGGAGCAACTTCCAGCTCAAGTTCCTTCACCCAGGCG
-GCCTAAGCCCTCTCAGCACTGGCCCCAAAGCCTTCCTTCATCCCTCAACTTCCTCCATCA
-CTCCCTGACAGCCTGGCCTTGCTCAGTGTCCCTCGCAAGGCTGAACAGTCCTCATTCTGG
-CACCTCAGGGGACAGGGTAGGGGTGGGGACTATGGGACAGGGCTCAGTGCTGGACCCAGG
-AGGGCGCCTTGCGCAAGGTTTTCTGATGCAACTGGCTGAGTGCTTCAGCATTCCACCCCC
-ACCCCCCAAGCTTTTCTCAGAAAGGCAAGGCCTGGGCAGTTATCCAGACTGAACATATAA
-TCCCCTTCCTTCTCTGGCCTTTGATGGCTTCAGGACCTGCAGGCAAaaggaaggcaggaa
-ggcaggcaggaaggaaggaaggTCAGGTGACTCAGCAATGCGTCCAGCACTGGGAGCTGG
-CAGATCTGGGGCTCCCTCATCCTCCAGCTGAGAGGCGAGAAAGAGAATCAGGATCCCTGG
-AAGTTTGGAGATCCTAACCCCTTATACATACAAAGCAGCAATTATGTGCCTAAGCCCAGG
-GAGAGACCTGTAGCTGCCCAAGGTCAGAGGCAAGGTCAGAACCAGACCAGCTGTCTTCAG
-CCCATGGCTATGATCTAGCTATTTCCACTACACAGAAAGAGAGAACCCTTCACCCTTGAG
-GAGGACACGGGACTTCCCCAGGAACCTCCCGTCAATCCTGTTGAGGCTCCTGAAATGgtg
-gaatgacgtggactttggaaccacgcagacctgggtttaaatcccaggccaggcacggtg
-gctcatgactgtaatcccaacactttgggaggctgaggcaggcagatcacttgtggtcag
-gagtttgagaccagcctggccaacatggtaaaaccccatctctactaaaaatacaaaaac
-tagccaggcgtggtggcacacgcctgtaatcccagctactcaggaggcagaagcgtgaga
-atcgcttgaacccgggaggcggaggttgcagtgggctgagatcatgccaccgcactccta
-ggtgagagtgagactccgtctcaaaaagccacactggctagctgtgtaacgctgggcagg
-ttactttcactctttgacactggatttgctcacttgcaaagtgggcgtaaatgcatcctt
-agctcacagggctgtggtgaggctgacatgaggaagcactggaaggcacagcttagGCTC
-CACATGGGCCACTCTCAGGAAGTGTGTCCCCACCTCCCCCTTTATCCTCAGCTCTCACTG
-GGTGTGTTTGCTGGGGAAGGAGGTGCAGCAGCCCTGGGGCCTTGGAaataataatagcca
-ctcaccctccagtgcttaccatgtgctgggaactctcctaagcgtgaacttaacctgtat
-tagcccatttaaccctcCATTTAATCCAATAACAGTTCCCAGgccaggcatggtggtgca
-tgcccatagtcccagctactcaggaagctgaggcgggagtatcgcttgagcctgggaggt
-tgaggctacagtgagtcatgatcaccctactgcactgcagcctgggcaacagagtgagat
-cttctctcaaaagaaaagaaaagaaaagaGggaaggaaggaaggaagggagggaggGAAA
-TCCCAATGACAATAAGCAGTTcaataaccctacaggaaaacactgtcatcaatcccactt
-tatagatagggctgtgggtctgagtagctaagtgactttgtccaagacagtggacaagag
-accacacggattttgagccaggccagctggctctgaatcccactgtctcctccctcctta
-aactagtgatgtcactgctctgagccctggtttcctcatctgtctccagggataaaaata
-gcagcttcatggggaagtttgaggatgacacaagatgacgtaagggaggtccccacacag
-ggctccacccacagGCATGAGAAGAGCCTTTCTCAGGAAGAATCCCAGGCCGCCCCTGGG
-GCAACCGCCGGGCTGGCCTTCCTGCCTCTCCTTAGGCCCAGCCTAGCGTGATCTGGATGG
-TGAGAGATTTCTGCAAAGCCCCCAGGGGCCTCCAGAGAAGGGAGGTGCCCGGTCTCCTAG
-ATAAGGGCTCCCAGAGAGGATCACAGCCCTGGAGTTGCCATTCTTGAATCACCCACTGTC
-TTCCCCAAGTTGATTGGTCTGAATCCATGTACTTATTTTTTAtattagttccataatgtc
-ttccttccaaccagctcatcttttacttatttatttatttatttattttatttatttttt
-tatacagagtcttgctctgtcacccaggctgaagtgcagtggtatgatctcggctcacgg
-caatctctgcctcctgggttcaagcgactctcatgcctcagcctcccaagtagctgggac
-tacaggtgcatgccaccacgtccagctaatttttgtatttttagcggagataggtttttg
-ccatgttggccaggctggtctcaaactcctgacctcaggtgatccactcacctctgcctc
-ccaaagtgctgggattacaagcatggaccactgtgcttgaccacaaccacctcattttaa
-aaaacttatctaaatttatttaacatggaaattttaaatcactgacctcaaatagaaaac
-tactatgatttgccataaagaagaggtaagcatacaattacatacaaaaaaagcagaacc
-aggttattccattccagctaaatcctgtttcttgctgaaggctccaagctgaactctgct
-gtctcattcttaacaagagaggtgttaaaaacatagaagctgtgaggccgggcacggtgg
-ctcatgcctgtaatcccagcactttgggaggccgagcgagtggatcacgaggtcaggaga
-tcgagaccatcctggctagcacggtgaaaccccgtctctactaaaaacaataacaacaac
-aacaacaatcagccgggcgtggtggcgggcgcctgtagtcccagctgcttgggaggctga
-ggcaggagaatcgcttgaacccgggaggcagagattgcagtgagctgagatcataccact
-gcatttcagcctgggtgacagagcaagagcaagactccgtctcaaaaacaaacaaaacaa
-caacaacaaaaaaaaaaaccatacaagctgttggccgggcgcggtggctcacacctgtaa
-tcccagcactctgggaggccaaggtgggtggatcacgtggtcaggagatcaagaccatcc
-tggccaacatggtgaaaccctgtctctagcaaaaatacaaaaattagctgggtgtggtgg
-cacacgcccatattcccagctactggggaggctgaggcaggaggatggcgtgaacccggg
-aggcggagcttgcagtgagctgagatcacgccagtgcactctagcctgggtgacagagcg
-agactccgtctcaaagaaaaagaaaaaaaaaaaaagaagctgttaaatgagactttctcc
-ctgagtctttggagaaacagcaagaaaactgaaagggtttaagtgtatcacaattatgat
-tcaaagttatgtcatacggtatctggagaccctaaaaccctctggcactcagccattgtt
-gtacatggtatatttcagaaaacactgACCTCACTGacctactccaactttctcttctta
-ttttacagataagaaatttgaagcccccgcaaagggaggtgacttgtccacaatctcaca
-ggctcagtggcttcagccagacttggaacgcaACCAGAAGTTCTAAGGCATCATGTCACT
-TTTGTGGGGGAAATGTATGAAGATGAAAAGTTTCAAGGACACCTATGGTGGAATTTTAGG
-CATATGGCAATCACTAGGGACACCCATGTGGAAGGAAAGGAGGCAGGCATGGCTCATGTC
-ATTGCTGTGGGCCCCACATCAGTGCTGGGGGTCAGAGACGGAACTCATCAGAACTATAGC
-AAAGAggccgggcacagtggctcacgcctataatcccagcagtttaggaggccaaggtgg
-gcggatcatttaaggtcaggagttcgagaccagcgtggccaacttggtgaaaccccgtct
-ctactaaaaatacaaaaacattagccaggtgtggtagtccacacctgtaatgccagctac
-tcagggagctgaggcaggagaattgcttgaacccgggaggcagaggttgcagtgagccaa
-gatcacatgccacttccctccagcctgggcagcagagcgagacactgcctcaaaaaaaca
-aacaaacaaacaaaaaaCCAAACCTATAGGAAAGAGAAAAGCAGCCTTCTGGGCTCAGAA
-ATCTGAGTAGAAAGATGTTCTGAGCCTGGAGAAAGAAATTCATAAAAGCCTGACTCTCTC
-TCCAGAAAAGAGTACATTTCTGCATTTAATTTTGGGAGGTTGGTCACCATTCTTTTCCTC
-GCTTCTAAATAAATGCTTATATAGCATTTAtattccagtcactttacaaatattgtcatt
-taattctcatgcaaaccaacgaggtaggaactattgttatccccattttacagatgggga
-aactgaagtacaaagagctgaagtaacttttccaaaatAGATGTGGTTTTGAACCCAAGA
-AATGTGATACAACTATGACATGAGGCAGTCCCAATGcattgaatccttatgactgcaatg
-caagggaggtataattaactgcattttatagatgcagaaactgaggcttgaggctatttg
-gtgtttctggtgtagatctaggagccaaactccagcctacctagactctttgcctctgct
-gtacccctggaccatgTGTTAGGAATTCTTGGTACAGGGTGGTAGTGCTCAATATGGTAG
-TGgttttagtctgttttctgttgcttataacagaatgtctgaaactgaacaattttgaaa
-gaaaaggaatttattccttacagctatggaggataggaagtccaagattgagggggcact
-tctggtgagggccttattcctggtctctgaagtgtctggaggtggcacagggtatagcgt
-ggagaggggactgggcatgctgacatgctatgctttggtctctcttcctcttcttataaa
-gccaccagttctcctcctgtgaaaacccacaaatccattaatccatgagtgggttagtcc
-attcataagggcagaggcttcatgatccaatcacttcttaaaagtcccaaccgctcagta
-ctgccacattgggggattaagtttccagcacatgacatttgggggacacatttaaaccat
-agcagtagccatttgccacatgtggttattgagcacttcaagtatggctaatgtggctag
-tgtgactgagaattttttattttattgaatattttaatttttttttttttttttgagatg
-gagtctcactctgtcgcccaggtcagagtgcagtgtcatgatctcggctcactgcaacct
-ccgcctcccggggtcaagtgattctcctgcctcaacatcccgagtagctgggattacagg
-tgtgtgccaccatgcccggcaaatttttgtatttttagtagagacagggtttcactgtgt
-tagccaggacgatcttgatcttctgacctcatgatccacccacctccgcctcccaaagtg
-ctgggattacaggcatgagccactgcgcccagcctcacattatatttctattggaacaca
-gaaTGGTCTAGAGAATTGGGATTTGACAAACCCAGCTGTGACAAGTCACCAAAATTTGGG
-GGCCATACCCAGGGTGCCGTTCCTGTCACGATACCCATAGGTCCATGTGGAGGCTGCAGG
-GATACAAAGCTCGTGAAATATCCCAGGATGgcatgggcactggagtcagctgccccaagt
-tcaaatctgaaatcagtctttttgttttttttttttttttgagatgcagtttcactcttg
-ttgcccaagctggaatgcagtggcgcaattggctcactgcaacctccgcctcctgggttc
-aagcgattctcctgtctcagcctcccgagtagctgggattacaggtacatgccatcacgc
-ccggctaaatttttgtattcttagcagaaaccgggtttcaccaccttagccaggctggtc
-tccatctcctgacttcaggtgatccgcctgcctcagcctcccaaagtgttgggattacag
-gcgtgagccaccgcgcccagcctgaaatcagtcttatacgaccagctgggtggtcttggg
-taggtcccttaccttaactcttcttgtctgcagaatggaggtgacttactgtttttctct
-gtctccctttcacatctttgcactcttcaccccttctcttccctcagcttttagtttaaa
-catcacctttctgataagccctgctgaaaatggccaccctcagtcatgacggagaacaag
-tctttcctattttattcaagaaaatgcatgatgcaatctattttaaatgatcatggtttt
-aattttattttcctgataatggtctatctctccactgatttataagatttgtaagagcag
-gggtggatcattctggtcactgctgagtccccagcatttagaacaggggctgacacaGCA
-CAAAACAACGTTAGTTGGGAATGTACAAGCAAACCCAGCACACCTTCAGAGGGGTGCTCA
-GGAAACAGCCCTCCCAcctttcttcacccctcacagctgtgggatcttcctaaccatttc
-ggtgtcccaggatagaggatgagtttattcacccctccccagcaggggagttgccaggat
-taaatgagatCCCAGAATGCCCTGGTATACCCTGAAGGCTCTGGGACACAGGTGAGCTGG
-TCCCCAGGGATTTGGAAACAGGAAAACAAATATGACTCCACCCTGCCTCCCATCCAGCCT
-CTGCCTAGAGGAGTTATtttattttattttactttttttttttttttgagacggagtctt
-gctctgtcgcccaggctggagtgcaatggcgcaatctcagctcattgcaactcctgcctc
-ctgggttcaagcgattctcctgcctcagcctcccgagtagctgggactacaggtgtgttt
-tttgtatttttagtaattttttgtacttttagtagaaacgggtttcaccgtgttagccag
-gatggtcttgatctcccgacctcgtgatccacctgcctcagcctcccaaagtgctgggat
-tacaggcataagccaccacgcccagccTCTAGAGGAGttattttacttacttacttattt
-atttattacacaggatctcactctgtcacccaacctggagtgcagtggcacaatcacgtt
-tcactgtaacctgaactcctgggctcaagtgatcctcctacctcagcttcctaagtagct
-gggaccacaagctcgtaccaccatgcccgctatctttttctctttgtaaagacagggtct
-tactatgtcatccaggctgttctcaaactcctggcctcaagcaatcctcccgtcttggcc
-tcccaaagtgctaggattacagacatgagccagctcacccagctGAGGAGTTATTTTTTG
-ACACTGGTGAATTCAGATCAAAAGGGATTTCTAAGAAAGGTGCTGGACCCAggccgggcg
-cggtggctcatgcctgtaatctcagcactttgggaggccgaggcaggtggattatctgag
-gtcaggagttcgagaccagcctgaccaacatggagaaaccctgtctctactaaaaataca
-aaattagccaggcatagtagcgcatgcctgtaatcccagctacttgggaggctgaggcag
-gagaatcgcttgaacccgggaggtggaggttgcagtgagccgagatcgtgccatcgcact
-caatcctgggcaacgagtgaaactctgcctcaaaaaaagaaaaaaaaagaaaGGTGCTGG
-ACGCCTAGGACGCAGAGGGGTGTTTCACCCCAAATCAAGTAGCACCAAGCCCTCCCAGGC
-CTTGGGTGCAAGCATATTAAAGGCCTCTTTCCCTCTCTGTCTCCATTGTTTACACTCCac
-tgagcatccgcaatgtgccacacactgttctaagcgtcttacacatattaaattatttaa
-tcctcacaacaactttatgaagtgagcgcaattatgagcccattttatggagcaggaagt
-tgaggcagggttttaggtagcttttctggggtagcactgtgggttggagcggaggtggag
-tgcactcttaggccagctggctctaggggctcttcaccactaggccgcactgCCTCTAGC
-AAAGGGACGCGGGGAAGCTCAGCAGACCTTAGGCCTCCCAAGGGCGCCACGGTGGTTCCT
-TTGAGCCCAGAGTCAGCTCTTAAGTCCATAGGCCTTCCTGAAGCTTCTGAACCACTTGCC
-CATAGCTGGGCCTCAGGCTGGCTCTCAGTAGAATGTGGAGAATGGAGATTCCCGCATGTC
-CACTTCTCCTAAAGGTTTTATAAGGCAGTGCTGGGAATGTGCTTTATAAAAAAGGGGAAG
-CACCCCGACAACAGTCACTGTTTGctcttttaagcaccatcctgagaaggaggaatgttc
-ttcccatttcataggtggggaaaccgaggctcagaagagcaaatttttggccgggcgcgg
-tggctcacgcctgtaatcccagcactttgggaggccgaggcgggtggatcacgaggtcag
-gagatcgagaccatcctggctaacaaggtgaaaccccgtctctactaaaaatacaaaaaa
-ttagccgggcgtggtgcgggcgcctgtagtcccagctactcgggaggctgaggcaggaga
-atggcgtgaacccgggaggcggagcttgcagtgagccgagatcgcgccaccgccctccag
-cctgggcgacagagcaagactctgtctcaaaaaaaaaaaaaaaaagagcaaatttttttt
-ccaaggtgatagggagagtccgtggctgaTGTCTGCACTGACCAGACGCCCCTAGGGGGC
-CAGCGAGGGCGGGTCCCAGGTGCAGCGGATGCAGAGGAGAGAggcccgggcgcggcgcgg
-gggATGGTGCGATCCCGGGCCCGAGGGCATCAGACGGCGGCTGATTAGCTCCGGTTTGCA
-TCACCCGGACCGGGGGATTAGCTCCGGTTTGCATCACCCGGACCGGGGGATTAGCTCCGG
-TTTGCATCACCCGGACCGGGGGCCGGGCGCGCACGAGACTCGCAGCGGAAGTGGAGGCGG
-CTCCGCGCGCGTCCGCTGCTAGGACCCGGGCAGGGCTGGAGCTGGGCTGGGATCCCGAGC
-TCGGCAGCAGCGCAGCGGGCCGGCCCACCTGCTGGTGCCCTGGAGGCTCTGAgccccggc
-ggcgcccgggcccACGCGGAACGACGGGGCGAGGTACTCGGCGGGGTGCGGCCTGCGGAC
-TcgcccggaggccggggggcgggagggggcggccggggAAGGGGGCGCCGGAAGCCTCTG
-GGCGTCTGCGTGTTGCCGCGTGTTACACGCACGCACGCCCCTTACACACCTTTTCACAGA
-CCCCGCCGTCGGGGCGCGGCCAGGTCAGATCCCTTTTGATCCGGGCCTGGGCTGAGTGCT
-CCCCCCGGGCTTCAGGTGACGCGGCCCCGCGGAGCGTGGGGTCGCCCGAGTTGGGCTGGG
-GAAGCCAGGGACGGAGGTGTCCGGCCGTCACCCCTAGAGGAGGGCGTGCGGGGGTCTGTT
-TTGCGTGAGTGCGGGATAGGGGAGTCGTGTGGTGCGGTGAGGGGCTTGTGGGGGGCACTG
-GAGGACTCTGGGGGTGGCGGGGGATCCGAGGGGGTCCTCGTGAACCCGCAGGGGAGAGTC
-CTGGGTGAGGGTGGGTCCCGAGCACCTGTGTCTCAGGAGATGGTGAGAGCTGTCTGGAGG
-GCTGGGCACTTGGTGGCAGGGGTTGGCGGTGCAGGGGACACCGCCGGGACAGGGCTGGGG
-TGCCCTGGAGCGGGGGAGCCGAGGGAGTGGGAGCGGGGGCGCAGCGCGCGATCTCTGGCC
-CGGCAGGGCCGCTGGTTCTCCCCAGTGCGCGGCTCCGGGTTTGCAGGTGGACGGTGCGCG
-CGTGTCTGCGGTGTGTGCTGTGCCTGCAGACCGGGGAGGGCGGGGGACGACAGCCACCTC
-CTTCCCTCTGCCTCACCCCCCTCCTGTCCCAGGGCCGCGCTTCAATTTCCGCTGAAACTT
-CTGACTCGGACACCCGCCGCCTTTCGCTTGGGCTCCCACGGGAGGGGCCTGGCTGCGGGG
-GGCGGGGCGGGGTGGGGGTGCGGCCTTGCTCGGGTAGACCATGGGTGTGACAGCTGGGAG
-GGCtgtgtgtgtgtgtgtgtgtgtgtgtgtgcgtgCGCGCGCGCGCTTGCGCTTGATGTA
-ACCCGCCCTCATTTCCCTGGGTCCCGAGTGTGGCAGGGAACAGCAAGAGGTAGATATTAG
-GGGCTGCTTTCATTCCACATCACAGATTCTATTCTGCAGTGTGGTCTGCAAAATGCCTTG
-CCCAAGATGTATAGACTCAGTTACCGCATCTGTCCCCATCTGGGTGGAGCTTATCCCAGG
-CCCCAACAGGCTCTGAGGGATGGCCGGGGCCAAGGCAGCCTGGACTACTGATGTGGCACA
-GGCCAGAGGGACTCCAGGCAGTCTCCTGCTGCACAGGGCACAAAGCATGTGCACAGCCAG
-GTATCATCCTGCGTGACTCAGAACAGCCTTGAGATGTAAGGAGTGTCATCCCAGCCTCGA
-ACCTGGGGAGCTTTCTAAGACTCCCAAGGATGGTACTTATGCATCTTGCTGTGAAGAATA
-ACAGGATGAGTGCtaataatgaccatttcctgacacctacctggcaacaggtccataagc
-tctacatgcttcatttgtgttttcatttcatcatcacgaaaaacctgtaagctttgcatc
-ctgttcccactttacaggaactgaggctcagaaagcttgaggaacttgaccaggggtacc
-ccccagctagaaagggtttgagacaggattagaacccaggaatatctgactacagccact
-ccttactgcaTTCTTACCAAGCCAAAGTCATGACCTTTCACTCATGTGGGGAGGCCTTCC
-CTTCCAAGGCAGCTCTTCCATTTGGGAGCAGCGTACTTGGAGAGGTGGGCCTCTGTCTGG
-TAACTGACTCATGTTGCCTTGTTAATCCTGCCTTGAACTGTTGGGAAGGTCTTTAACCAG
-GCTGAGGTCTCTCGCACCAATGCCCATACCTGGGCATGCACCTCCTTGGAATGGAGTTTA
-AGTGGGTGGGCAGATGGGTTCTAGAGAGAACCCGTCTGCCCTGACCATGCCCTACTGCCC
-TCTCCTTCAGCCACCACACACACAGTCACACAGCTGCGTGAATGGTGgctttcctttcac
-ttaacagttcactctggagatccttccaattaccctataaagagcatcctcaacctttta
-aatggctgcacattgttccgttgtgtggatgaagtataatttatgtaaccagccctgtaa
-ttatagacagccaattatttctgtcaaaagggctgcaggaataactgtgtatttgcatgc
-ttacacacacacacctctacagaataaattcttagcaatgggattaattgctgaatcaaa
-gctcacacgcttttcatcgttgtttttgttttgttttgttttgctttgttttgagacagt
-ctcactttgttgcacaggctagagttcctgaccatggctcactgaagcctttaccttctg
-ggctcaagtgattcccctacttcaacctcctgcatggctgggactacagctgtgtgccat
-catgaccagataattttttttttcttagggacagggtctcgctacgttgcctaggctggt
-cttgaactcctgggctcaagtgatcttcctgcttcagcctcccaaagtactgggattaca
-ggcatgaagcactgcacccagcctgtttttcattttgatattgtcaaaatgcactcctca
-gaggtggtaccttttatcctcccactagcactgtCTTCATTGTTAGTGGCTGCACTGCCA
-CTATTCCACAGTATAAACCCACTTTTCATGACACTGCCAAGACATAAGGGTCTGAAATAC
-TTAACAGTTTTCTTCCACAGTCCCCAAAATACAGGCTtctcccccagctcaggacatgaa
-gccatcatccctcctcattgcaggagccaaaggctggacctcacctcgattccaccctct
-ccttcacccctcacatccaatccatccagtccatccagtctgccactgagtcctcttgat
-cttcctcctatgagcccttaacttcgcgtctccatctagcaccccctagtccaggtcacc
-ttctcctgcctggactcgtgcttgtgtgggcctcctagctagtctcactgccccgtcttg
-tactttcaaatccaccctaaaagcatgatgttcccctgctgaaatccttcagtggctccc
-cactgcctttggataattccaaatcctattgtgtgttaattaggattaggctcagctgta
-atatagaaacagccacttaatagctaaaatgaaatagacgtttttttcttctttttctct
-ttttttgagacagagtcttgctctgtccccaggctggagtgcagtggcgagatctcagct
-cactacaacctctgcctcccaggctcaagtgattctcctgcctcagcctcccgagtagct
-gggactacaggcatgcaccaccatgcccacctaatttttgtatgtttagtagagatgggg
-tttcaccatgttggccaagatggtctcgatctcctgaccttgtgatctgcctgcctcggc
-ctcccaaagtgctgggattacaggcatgagccactgcgcccagccttcaatagatgttta
-tttctctcctgtgtaaaaaacctggaggtctggcctgacaactccatgtgtcagggacct
-aggctcctctcttgctctactgtatgtggtacttctgaagccaaggtagatgctggagct
-ccagcagttaggtccacattccagcatacaggaaaggaggaaatgaggaagttgggccct
-ccctttaagaacactgtcctgggcattgtacacaacacttccacttgtgtcctactagcc
-atatgctgatacaaggatacaagggagacaggaaatgcagtttattctaggtgtccttgt
-gctcagctgaaaatctcaggttctaatcctatgtaaggaggggagacctgaaactgggga
-ccactaaccacctctgccatatgatgctcgtagagcccttcacaatagggcctctactaa
-cctcaccttatttttatttatttatttatttttgagacggagtttcactcttgtcgccca
-ggccggagtgcaatgacactatctcagctcaccgcaacctttgcctcctgggttcaagca
-actctcctgcctcagactcctgagtagctgggattacaggcgtgtgccaccacgcccggc
-taatttttgtagttttagtagagacggggtttcaccatgttggtcaggctggtctcaaac
-tcctgacctcaggtgacctgcctgcctcggcctcccaaagtgctgggattacaggtgtga
-gccaccacgcccggcctattttttttttttttttaacttttcacttttttttgcagtcac
-gctcattctccaccgtgttcttggggaacatgcagcatgttcttttgcctcTTCCCTCAC
-CCCAGAACAGGggttactggacagcggcatcaacttcacctgggaactggatagaaatgc
-agattcagaccttctgaatgagctactttgggagtagggcccagcaatgtatgttgaaac
-aggcctccagatgatctcaatgcttgctcaagtttgagaaccactgAACCGCAGTATGAC
-TCTCCGTGTCAcctggctaactctgcctcactttcaggtctcagtgtagacaccacctct
-tctaggaagacctctcttgacccaccagcccaggagagaggcctctctgggttcctagag
-gcccatgcttctctgTATAGTAGGGCTGATCACACTGTATGTGAtttttttttttttttt
-tgagagagtctttactctgtcaccaggctggagtgcagtggcacaaacatggctcactga
-agcctcaacctcccaggctcaagcaatcttcccacctcagcctcccaagtagctgggact
-acaggcatccaccaccacacccagctaattaaaaaaaaatttttttttgtagagacaggg
-tctcactatgttgcccaagctggtcttgaacttttgggttcaagcagtcttcccaccatg
-gccttccaaagtgctaggattacaggtgtgggccactgcacctagccTTGGACGTGATTT
-TATTACTCATCTGCCCTCCAAATTGACTGGAAGATCCTGACGGCAAGACTGCTGTCTAAC
-CTACTTCTCTTCCTAGCACCCAGTGTTAAGTGAATGAACAAGATCATATCTCTCATCTGT
-GAATGTACGAGAGCCATGGATTATGAGATTAGTTGATTTTCTTAACTATAATTTTTAGAA
-ACAAGCTGTGTTTTTAAGCAGGTATTTATTTCCTTAAATGTACATTTCTGATTACAAAAT
-ACttttttttgagacagagtcttgctctgtcacccaggctggagtgtagtggcacaatct
-cggctcattacaacctctgcctcctgggttcaagcgattctcctgcctcagccttcccag
-tagctgggattacaggtatgcaccaccacgcccggctaattttttttttctcccgtgacg
-gagtcttgttctgttggccaggctgaagtgcagtggtgtgatctcagctcactgcaacct
-ccacctcccgggttcaagtgattctcctgtctcagcctcccaagtagctgggattacagg
-cccacgccaccacgcctggctaatttttctatttttagtagagatggggtttcaccatgt
-tggccaggctggtctcaaactcctgacctcatgatccaccaccttggcctcccaaagtgc
-tgccgtgggctgcactttggcattgccttggtcacgtgctgctacctgggattacaggca
-taagccactgcgcctggcctaatttttgtattttttagtagagacagggtttcaccatgt
-tggccaggctggtcttgaactcccagcctcatgattcgcccaccttggcctcccaaagtg
-ctgggattacaggcgtgagccaccacgcctggccAGGAAATACATTTACATGGCTCAAAT
-TCAAAACTATAAAAGTCggccaaacatggtgactcacatctgtaatcctaacactttggg
-aggctgaggcaggaggattgcttgagctcaggtgagaccagcctaggcaatgtagggaga
-cccccatctctacaaagaataaaaaaaaattagtcaggcatcatagtgcacacctgtagt
-cccagctacttgggaggctgaggtggaagaatcacctgaaccctgaggtcgaggctgcaa
-gtgaactgtaatAGTAAGAGTCTCCTCCTAATCTTGTGCATCCTTTCAGAGAGAGAGATG
-atagatattcaaacaaatacatacatatatataacatatttatatatattctttttaaca
-taaaagtatagccaggtgtggtggttcactactagagtcccagctacttaggaagctgag
-gtgggaggttcacttgaggccacgagtttgagaccagcgtgggcaacatctcttggggaa
-aaaaaaaaaaaaacccaccataaaagcattctataacacgtaattctgtgtttgtctttc
-ttctcttaatacatcttggagatcagtacgcatcagtatatagagagcttccttgtcctt
-tttcagggctgtgtagtattctgctgtatggctataccatgatgttttcactagctttct
-actgcctgacatttgggatatttcctgcttttgctattggacacaaggctctgatgaaca
-gcctttactatatttaatttttttgtgagaagtttaactggaagataaattcccagaagt
-ggggcacccagttaaggatatgtgactttgtcattttaacacacactgccagatcacccc
-ctataaatgttgtgccacgtatcctcccaccagcaGGGGAAAGGAGGGGCCACCAAGCAG
-TCTCACTTTAGTGCTTTTCTCTCCTTTTTACCAGATGCGAGCCACCCCTCTGGCTGCTCC
-TGCGGGTTCCCTGTCCAGGAAGAAGCGGTTGGAGTTGGATGACAACTTAGATACCGAGCG
-TCCCGTCCAGAAACGAGCTCGAAGTGGGCCCCAGCCCAGACTGCCCCCCTGCCTGTTGCC
-CCTGAGCCCACCTACTGCTCCAGATCGTGCAACTGCTGTGGCCACTGCCTCCCGTCTTGG
-GCCCTATGTCCTCCTGGAGCCCGAGGAGGGCGGGCGGGCCTACCAGGCCCTGCACTGCCC
-TACAGGCACTGAGTATACCTGCAAGGTACGTGCCCATGGGCGGCTGTCCCCCAGCACCAC
-AGGAGGCCTGGGAAGGAGGCCTCCAAAGGATTGCCAGGGTGCAGAGGGGTCCTTATGTTC
-ATTCATTCTTGTGTTTGTTTAGTGGGGAAGCATCCAGGGAGCCCCTGCTGGACTGATACT
-AGAGAGGTAAACCAGAGGTCGTCCCAGTCCTGGGGGAGTTCACAGCTTAGGCCCTACAGT
-GTGATAAATGCTGCAGGGGTAGAACTTAGGGATCATGGGCGCAGAAaaggccgagcagaa
-gttagccaggtagaagtgggagatgggagttgcaggcagggggaacagctgttcaaaggc
-ctagaaaagtgaggggatagcactttagagaatgaaaaggacttctctgtggccagagtg
-gagaggatgtgcagaaaggggcaggagatgaagGTTGGCAGCAGCTGGTCATGAAGGTGT
-TAACAAGGGGCCTCCACTGGGCTGTGCGGAGCTACTGAAGATGTTTGCACAAGAGAAGGG
-TAGGGCATGGTAGACATCAAAACTCCTgggacctcggaggtgatcgagcctaacctgggg
-ccattttacagataggaagactgagatgaagacaggagaagggccatgcgtgaagtcaca
-tagcACTGGGCCTGGCTCCTGGGGTAAACTAAGGGGTAGAAAAGTCTGAGGATTCCTGGC
-AGAAACCAGGAAATGGACAGGGTCAAGGCCCCTGAGGGTCAGCCCATGCAGGACACTGAC
-AAGTGACAGTCCAAGAAGACAGAGATGAGAATAAAAAGTGTAACAAtaggtattcactgt
-gcaccaggtactatgatgattgcttagtgtgcacaatctcttttaatcttgacacaacca
-atgaggtggtttctatcattgtgccccttttatagatagaggacactgagactcagaaag
-ccatggttacttgccacatgacagagccaggtggtatcagagctgggattgggcccagga
-ggctgagcccagagagtcctgtgcccGTGCTAGGATAAGCGTTTCACACAATCAGGGCAG
-GCTGCCCTGGCAGGCAAGCATAAGGAAGATAAGGGGGACCTGGAAACCCAAGGGAGAGTA
-GCGGGGGCCTGGGTCCCTTGGGAATGCACAGAGAAGCAGAAGGACTTAAGCCTCCTCCTG
-GGGCAGCAGCAGAGCTTTGCTCTGTTGACGGAGATGCAGTGAACAGCGGGGCAGATCCAG
-ACAGGGTCCAGCCCCTAGCTTCACCTGGCCTCTTGTGCACAGATCTCCAGCGCCCTTACC
-AGGTGCCCTAAGGAGCCCAGAACTCTGGGTCCCCTTCCTGCAGCATCACAGGCTCTTTTC
-CACTCCCGCTGGGGAGGTGAGTCCATGATAAGAGGAATAACCCAAGCAGGCTCAGGAGAG
-AAGCGCCATGCGTTCACAGGGCCCTGATTCTCAAGAAACATTTGGGAAAATCCACTGGAA
-CATACTCACCCCTATGCCAATGTGCACCATGGGTGCTGAATGGTCATTTCCACACTTCCT
-CAGCTTTTCTGGTCAGTGTGTAGAAAGATCAAAATCTTGTCTTTGTAAATGATCAACTTa
-ttcattaattcaacacaacttcattgagcacccgtatttgccatgtaccatgctgtggtt
-aaaaaacaaagttctgttctcatcaagctgacgttctagtgggagatacagacactaaac
-aagcgaataagtaaaatacgtgtcaggtggccgggcgcggtggctcacacctgtaatccc
-agcactttgggaggccgaggtaggcagatcacctgaagtcaggagttcgagactatcctg
-gccaacatggtgaaaccttgtttctattaaaaatacaaaaaattagccgggcatggtggc
-aggggcctgtaatcccagctactcgagaggctgaggcaggagaatctcttgaacctggga
-ggtggaggttgcagtgagccgagatcacaccactgcactccagcctgggcaacaagagca
-aaactccgtctcaaaaaaacaaaaaacaaacaggaaaaCCCTTATTCCAGCATCTTTCTT
-GGTTCCTTTGCAATGCTTATCAGCATTTGTCAATATTTGGTTTCTGGGCATGTTTGCATG
-GCCTCCCAGTGGGCACCGGAGAGCAGAGCCCATGGCTGTCAGTCTAGCTGGACATGTGGC
-TGGCCCGTGCAGGCCCAGGGCCAGCATACTGAATGAATGAAAGCGTGGGTGGGCAAAGAG
-GACGGGAGCTGTGACGGTGATGAGCATCAGGTGCCTTCTGCATCATCCGCCCTTCCGGAT
-TCCTCCTGCTTTGTGGGTTATTTTTCTGTTTGGGTGACCTGTTACTTTTCAGTTATCCGA
-TGTTTGAGGCCAtatagcgtagcagttaagagcacagacaaaaggccgggtgcagtggct
-cacacctgtaatcccagccctttggaaggctgaggcgggaggatcacctgaggtcaggag
-ttcgagaccagcttagccaacatgatgaaaccccatctctactaaaaatacaaaaattag
-ctaggtgcggtggcacatgcctgtaatcccagctacactgggggctgaagcgggagaatc
-acttgaatccaggaggcggagtttgcagtgagctgagattgcgccagtgtgctccagcct
-gggtgacagagcgagactccgtctcaaaaaaaaaaaaaaaaaaaaaaagcacagacagtg
-gagtgcatacgtgcaaatctcagccgtgctgtttgctggctgtgtggcctctcagcttcg
-ttaaccgtaaaatggagcaagtcatcctaccttataggaccatggtcagggctgagtgac
-tcggtcagtgaagcgcttggtgcgatgcctagcacatggtagtgtctaataGGTCAGCTG
-TGACTGTTTGCAATGCCAGCCTCAGCTCCCGGGAGTCCCCAGCTGTGCTAACACCATGCT
-CTGCCCACAGGTGTACCCCGTCCAGGAAGCCCTGGCCGTGCTGGAGCCCTATGCGCGGCT
-GCCCCCGCACAAGCATGTGGCTCGGCCCACTGAGGTCCTGGCTGGTACCCAGCTCCTCTA
-CGCCTTTTTCACTCGGACCCATGGGGACATGCACAGCCTGGTGCGAAGCCGCCACCGTAT
-CCCTGAGCCTGAGGCTGCCGTGCTCTTCCGCCAGATGGCCACCGCCCTGGCGCACTGTCA
-CCAGCACGGTCTGGTCCTGCGTGATCTCAAGCTGTGTCGCTTTGTCTTCGCTGACCGTGA
-GAGGTGAGTGTGGTCTCAGAGACCCCAGCCACAGACACACCCAGGGGGTGGGCCATGATG
-GAGAGAAACCGAGGCCCAGGAAGGCAAGGTAACTTAGGCAAGAAGTGGGAGAAACTGAAG
-TAACCAGCAGCCCCTGTTTAGTTCCCTGAGAAGAGTTGACTCAggccaggtgcagtggct
-cacgcctttaatcccagcactttgggaggccgaggtgggtgaatcacttgaagtcaggag
-ttcgagaccagcctggccaacatggtgaaactccgtctctactaaaaatacaaaaattag
-cctagtgtggtggcgcacacctgtaatcccagctactctgaaggctgaggcaggagaact
-gcttgaacctgggaggcggaagttgcagtgagccaagatcacgccactgcactccagcct
-cggcaacagagtgagattccatctcaaaaaaaaaaaaaagaGTTGACTCAGTCCTCTTGG
-GAGCCCCTTGGGATTCTGGGATGGAGCACTGAGATGTGAAAGTCATAGTAGCCGACAGTG
-ACGAAAGCATCGCCACATTATCTAACGTGGTCttccatccttacaaacacgaggcaggta
-ctgttattatccccatatgatcaaggaaactgaggcccagagagctcaagtaacttgccc
-aagatcccatagcagaataaatggtagagctgggatttgaacctagatctgactccagag
-cctgggtcttaaTTCAATCTGAGCTTGAGAGGCAGGGGcctggctgggcttaccaactga
-ctttgggtgacctagtgtctctgagcctcagtttctccgttggtaaggaaaagggctgga
-ttGTTAGGGTGTTTTCAGGATTCCAAGACCACAGCCAAAATAGGGTCTGAGGTTCCCCAC
-ACGGGAACGTTTTCTGTGAAACTGAGAATTAGCACTTTTTGGTTAAAAGAATCTTCCTTC
-TCTAGGTTGGGATGCTAAGAAtttttttttttttaattgagacagagtctcactctgtca
-cccaggctggaatgcaatggcgcgatcttggctcactgcaacctctgctgcctgggttca
-agtgatacgcctgcctcagcctcccgaatagctgggactacaggcatgcgccaccatgcc
-tggctcattttttctatgtttagtagaaacggggttttgccatgttggccaggctggtct
-tgaactcttgaccttaggtgatccgcctgcctcggcctcccaaagtgctgggattacagg
-tgtgaggtactgcacccagccTAGACGCTAAGAAAAATTTTTAAAAGATAATTCTGGGGA
-GAAGGGCAGAGAGACTCGCCTCCTGTTCCCTCTCCAGATTCCTGGGGGCAGTCAAGATGT
-GTCAGGGAGTGCACTAAGCTGCCAGTTACACAGGAGTTTTCTGTGGAGAAAGGAGTGTGA
-CCCCATGGCATTTTAAAAAACtttttatcttgaaataattttagacttttagaaaaccta
-caaaaatagttcaaagagtttctgcatatcctttaaccagtgctctccaatgttaacacc
-tgacgtagctatggtacaattacccaaactattaactaagccacagattgattcccactt
-cccgagtttcccactaacaccccttgctgtgcaggatccagtgaggatcccaatttagtc
-atcagtggtttccttggtctcttccaatctgagacagttcctcagtctttccctgtcttt
-gaagacccatgaccttgacacttttttttttttgagacagggtctcactctgtcacccag
-gctggagtgcagtggtgtgatcacagctcactgcagcctcaacctcccgggctcaagtga
-tcctcccacctcagcctcctgagtagttggttctacaggtgtgtgccaccccacctggct
-aattgagatggggtcttgctatgttgcccaggctggtctcagactcctgagctcaagcaa
-tctgcctgcctcagcctcccaaaatcctgggattataggcgtgagccactgctcctggcc
-ataaccttgagacttttgaagagtactgatcagttactttgtatgtccctcaatttggat
-ttgattgatgttttctcacagttagattgcagttatgtatttttggcaagaacaacacag
-aatcgataggcccctctccacatcatatcaagagatacttgagctgatagtcattcctat
-gtcgtgaccttgatcacttggttagggcaggacctaccaggtttctctactgtaaggtcc
-taatttaccctttgtaattgacaaataccttgggggaggtaagctaggcatataaatatc
-ctgtttttcctcaactttcacccactaattttagcagccatccatcttgcctatagcagt
-tattattgtggtgcttgcctaagtctaattttctttttcttttttttctttctttctttt
-ttttttttttttgagacagagtctcgctctgttgcccaggttggagtgcagtggcacgat
-ctcggctcactgcaacctccacctcccgggttcaagtgattctcgtgcctcagcctcttg
-agcagctgggattacaggcacacaccaccacacttggctaatttttgtatttttagtaga
-gatggggttttgccatgttggccaggctggtctcgaaatccgcctgccttggcctcccaa
-agtgctgggattataggcatgggccgctgcgcccagccCCCAAGGCTGATTTTCTGTTAA
-TATTTCCTTCTACATTTTATATTAGAACAAGCATGCCTTTTTTAAAGAAGTAACATTTAT
-AATGATGTTTAAGCTAGTACATAACTTCAAACACATTTTAGGCTTAGGGTAGATACAACT
-ACCCCGGACCTCCTGGAGGAGACAGCGTGCTTCCTGCTCTTTTCAAGAAGTCACTTgatg
-gcccacacctgttatcccagtgcttcgggaagccaaagtaggaggactgcttgagcccag
-gagttcgaggccagcctaggcaacacagaaaaccccatctgtacaaaaaatttataaaaa
-ttagccaggtgtggtgatgcacacctgtgatcccagctacttgggaggctgaggcaggag
-gattgcttgagcccagaagtttgaggctgcagtgaactaggattgcaccactgcactcca
-gcctgggtggcagagtgagaccctatctctaaagaaaaaaaagaaaaaaaaaaagaaaaA
-TCACATGagagtcattggtagaagagggaccgtgagttagatagacctgtgtttaaatcc
-tgggttctgcttcttacctgctttttggccctgagcaaatgacttcacctgcctgagcct
-ttgtttcttcatctgtaaaatgggctaataatgctgacACCCCTTGTCCCCCAATACTGT
-GATTCATAGGATTGGTCAGTATTTGTGAAATGCCACTGGACACCCAGGAAGTAATGCCAT
-AAAGAAGAAACTAATAGCAGTGGTAATAGAATGATTACTATTAAAGTCATCTTTGAGTGC
-TCAGTGGAAGTTGTTTAAAGTAGAAATTGCAAATGGCAGGACACACtttttttttttttt
-tgagacagggtctcactctgtcacccaggccggagtgcagtggcgcgatctcagctcact
-gcaaccgccacctcctgggctcaagtcatatccttctgcctcagcctcccaagtagctgg
-gactacaggtgcgaatcaccatgcctgctaattttcgtattttttgtagagataggtttt
-taccgtgttgcccaggctggtcttgaactcctgaactcaagtgatccccctacctcggcc
-tcccaaagtgctaggattaccggcatgagccaccgcgcccagccTTACACACTTTTTTTT
-TTGCCCTGCTTACCTGTTTGTGTTTTTTATATAAACTGGTTGCCAATATTTTTTAAATGG
-GGACCTTTTCATTAAAATACAATTCCTGGCTTCTCTTGGGGAAAACAATGGGAATGTGGG
-GCCATCTTGGGAACTGCGAGGGTGGGTCACAGCACTGGCTCTGAGTATCTGCCAGCCAGC
-GTTCCCATCCCAGGCCCATGCtctacagctgtaaaatggtgtcttccttgcaggctgtag
-cctagatagaatgaggtgagccaggtaatgagctgggtcaagggccaggaacacagcagg
-cacttggtaaaCCCTAGAATGCGTTGTGTACCCTTTTTAGGTAGCGCTTGTGCTGAGATG
-TCAGGCACACTTCCTGTTTCTCTCATCTTATTACCTGCCTGGACCCTAAGTTTGTAGCTG
-GTTTAAGAGAGGCTTAACCCTCTCAGCCCCATCAGCCCCCTCCCCAAGGGACTCTGTTGA
-AAAATGTATTCCTTTCAgaattttagtttaaatttaattgctctgtggccttaaatgact
-taacctctctgagcctgggcttgggtatctgtaaaacaggATCAGACATCACAGGACTGG
-CTTGTGTCTGTCAAAGGCCAGCAGGCACTTGGAAAGTGGGTGCCACAAGGGTGATAGCAT
-GGGGTGGTGGCATGGGGGTTCTGGGTAGGACCTGACCCTTCTGTTTCTCCCCATGTCCCA
-GGAAGAAGCTGGTGCTGGAGAACCTGGAGGACTCCTGCGTGCTGACTGGGCCAGATGATT
-CCCTGTGGGACAAGCACGCGTGCCCAGCCTACGTGGGACCTGAGATACTCAGCTCACGGG
-CCTCATACTCGGGCAAGGCAGCCGATGTCTGGAGCCTGGGCGTGGCGCTCTTCACCATGC
-TGGCCGGCCACTACCCCTTCCAGGACTCGGAGCCTGTCCTGCTCTTCGGCAAGATCCGCC
-GCGGGGCCTACGCCTTGCCTGCAGGCCTCTCGGCCCCTGCCCGCTGTCTGGTTCGCTGCC
-TCCTTCGTCGGGAGCCAGCTGAACGGCTCACAGCCACAGGCATCCTCCTGCACCCCTGGC
-TGCGACAGGACCCGATGCCCTTAGCCCCAACCCGATCCCATCTCTGGGAGGCTGCCCAGG
-TGGTCCCTGATGGACTGGGGCTGGACGAAGCCAGGGAAGAGGAGGGAGACAGAGAAGTGG
-TTCTGTATGGCTAGGACCACCCTACTACACGCTCAGCTGCCAACAGTGGATTGAGTTTGG
-GGGTAGCTCCAAGCCTTCTCCTGCCTCTGAACTGAGCCAAACCTTCAGTGCCTTCCAGAA
-GGGAGAAAGGCAGAAGCCTGTGTGGAGTGTGCTGTGTACACATCTGCtttgttccacaca
-catgcagttcctgcttgggtgcttatcaggtgccaagccctgttctcggtgctgggagta
-cagcagtgagcaaaggagacaatattccctgctcacagagatgacaAACTGGCATCCTTG
-AGCTGACAACACTTTTCCATGACCATAGGTCACTGTCTACACTGGGTACACTTTGTACCA
-GTGTCGGCCTCCACTGATGCTGGTGCTCAGGCACCTCTGTCCAAGGACAATCCCTTTCAC
-AAACAAACCAGCTGCCTTTGTATCTTGTACCTTTTCAGAGAAAGGGAGGTATCCCTGTGC
-CAAAGGCTCCAGGCCTCTCCCCTGCAACTCAGGACCCAAGCCCAGCTCACTCTGGGAACT
-GTGTTCCCAGCATCTCTGTCCTCTTGATTAAGAGATTCTCCTTCCAGGCCTAAGCCTGGG
-ATTTGGGCCAGAGATAAGAATCCAAACTATGAGGCTAGTTCTTGTCTAACTCAAGACTGT
-TCTGGAATGAGGGTCCAGGCCTGTCAACCATGGGGCTTCTGACCTGAGCACCAAGGTTGA
-GGGACAGGATTAGGCAGGGTCTGTCCTGTGGCCACCTGGAAAGTCCCAGGTGGGACTCTT
-CTGGGGACACTTGGGGTCCACAATCCCAGGTCCATACTCTAGGTTTTGGATACCATGAGT
-ATGTATGTTTACCTGTGCCTAATAAAGGAGAATTATGAAATAATTTTATTTTTCTCTGCA
-ATTTCTTCCATCCTTTCCAACGATCTCTTACCAGTTTTTCCTGCCTTCAAAACTGGCCCC
-CATGGTGAAAGGCCGTAGAGTTGTGTCTTAACCTGGGCTGAGTGGTTTGTGAGAACAGAT
-TACCTGGAGCCCAGTGGGTCTTCCTGCACTCCTTCTGTTTCTTCTGGCAGCAGCAGTGTC
-TCTATTAGGGTACTTTCTGAGTCaaaatggcttcaacaagatggaaatatgtttcacaca
-aaacaagaagtcagcagatagggtgggcttcagtgctggtccattcaactcccaaagctg
-cgcacagggaccccggctctccaggctccttctgtctctTGGCTGTATTGTCTCGAGACT
-GCTGGCCCAATGGCTACAGCAGGTGTCACATTAAAGAGGTCCATGACCAGAGGAAGAAGC
-CAGGGGTCATTGtagtacctgagaactcagaactctggagtcaggctgcctggaattaaa
-tcctggctccagcactcaatagctgtttgacccttggcaagtttcttaaccactctatgc
-ctcagattcttcatctgtgaaatgggggacaatgatagtacctaacttatgagaactaaa
-tgacttattttgtataaagcaattagaacaagcagcgcctggcataataagcccacaata
-aaagttACTCCCggctgggcacggtggctcacgcctgtaatcccagcactttgggaggcc
-gaggtgggcagatcacaaggtcaggagttcaagaccaacctgaccaacatggtgaaaccc
-cgtctctactaaaaatacaaaaatttttagtagagacggggcgtggtggtgcgtgcctgt
-agtcccagctactcgggaggctgaggcaggagaattgcttgaacccgggaggtggacgtt
-gcagtgagccaagatcccgccactgcactcagcctgggcaagagagcgagactccgtctc
-gaaaaaaaaaaaaaTGGTGCTCCCACATTTCTTTCTTGGGATGGAGGaagctttcccaga
-agcgctcctgaccgactttcccacacatctcactggtcagaactgcatcacttgccgttt
-ctgaccaatcaccagcTTACATTCATGGGGCACGTGCTTACACTAACCATGGCACTCCTC
-GAGCTAAGTGGAGCTCATGCGTCATATGGAGGGGTAGTGACTCCTGAGCAAAACCAGGTT
-CAAAGAGGGAGGGGATCGTAGGGAAAAGAATGTGCGGAAGTgcggaggcccagccaacag
-cctgctaactgcagatactcgagagcggccaccctagatcatctgacccaggctggccca
-cgctagaattgcccagtgacccgcaaggtcatgagctaattgagctaaataaaatcattg
-tgtttttttgtttgtttgttttgtttttgttgttttgttttttgagacagagtctcactc
-tgtcacccaggctggagtgcagtggtgcgatcttggctcactgcaacctctgcctcccgg
-gttttcaaacgattcttctgcttctgcctcagcctcccgagtagctgggattacaggcac
-gcgccactacacccggctaatttttatatttttagtagagacgggggtttcgccatgttg
-gccaggctggtctccaactcctgacctcaggtgataggcccacctcggccacccaaagtg
-ctggtattacaggcgtgagccgccgcacccggccaatcattgtggttttaagtcactaag
-tttgaggctattttgttttacagcaaaagctaactgatgcaGACAGGGACAAGTCAGTCT
-CATCTCTGTGCACCCAGCATTGCCCAGAACAGGGCCTAGTTGTGTCTAGGGTCTCATGGG
-GCAGCCCCTGACCTCTATCTTGCCCCTCCCAGCTTCCAACAGACCCTGTCCCAGCTCCCT
-CCAAGCTGAGTGTTGGCCTGATACCTACCAGTGGAGCGAGGGGAACACGAGGACTGCCAA
-GGGcaggtaccgtgccaacccttcactccattccacaaagagactcatttactcctcatg
-acaatccagtgaggcagatgttcctgtcactttacagataagacaaatgagctttagaga
-gagcagaagactcatccaagacctcacaacAGAGAAAAAGACTCCTCTGGTTTTTGCCTT
-GGAGCAGGAACTTTTGACAAGGCTGCGCAGATGCAGCCACATGAAAACCGCCCATTAAAA
-ATGTAATATCggcccggagcgggggctcacgcctgtaatcccagcactttgggaggccga
-ggcaggcagatcacttgaggtcaggagttgaagaccagcctggccaacatggtgaaaccc
-cgtctctactaaaaatacaaaaaatagccaggcgtggtggcatgggcctgtaatcccagc
-tactcgggaggctgaggcaggagaatcacttgaacccaggaggcagagattgcagtgagt
-caagattgcaccactgcactccagcctgagcgacagagcaagactctgtctcaaaataat
-aataaaaTGTAATATTCACTCTTATCAAATAATGGATGTCACCACACCCCGACCCTAATT
-AGTGAGGACTTTCATGTTCTACTTGTCTTCATTTAATCATCATTGTATAAGAGTTTTACA
-ATATCAAATTAGTAGATGTATATTACTGAAAGGGAAGGACTGTTAGAAATTTACTTGAGG
-AATGTCTGCCACTGGGGGCTGAACACAAAAGATCCTATTGTGACCTGCCAGATTATTCat
-tcacttagcaattcaacaaccatcgctgaatgcctactataggccaggtgccatgcaaga
-cagatgtgctcccaccctcaagggttcacagtctaatagaggagagagatgttaaacaga
-taactgtacagatggcaTAGCTAATTATATTCGTGGAAGTTCGTTGTGGCAAAGACAGGC
-ATCTCAATATTTCAGGAGCTCCCctatattttctagcctcccttacagtcacatgactag
-ttctgaccagtggggtgtgtgtaggagtgGCAGGCTGAAGCAATGGAGAGCTGGTGAGCC
-TCATCCCTCTCTTCCCCTGCCACAGCCACCTTGCGCCCACAAGTtcccttagctacaagc
-tggaggagagccaccagatccaccttagatttcactgagcaagaaataaagcttcttgtg
-ttaagtctttcagatttggagtttgtctggtagatagtgttaattaccatgactaaGGAA
-AATTTGCCATTAGTGAAGGGAGGAAAAATATTCTCCACCAGTAACAAGGCCATGTCAGTC
-TGCTGCATTATAAACCCCAAACAGtagtttatgatcctctgggctggcaatttgggctga
-attcagctgggtcactcctgcagctgcaggcagcaagcagctcgaatgtctaccttgcca
-ggaaggctcttctctgctccacatggcctcgtcctccaataggcatagcctactccttcc
-tatggtggtctcagggtttcagaaagcaacaagagaggacaaattccagtgttcaagctg
-cactagtgtcaaagcatatcaaatagcatgtcaaattccacatcaaattcaggatgcagg
-caaattgattctttctcttgatgggaagagctgaaaaTAATGTGTGGTCTTGTTTTTCAA
-TGTAcagtggtcccatttatccaggggggatacattccaagacccccagtggatgcctga
-aaccacagatagtacagaattctgtatataccatgttttttactatacatacatacctac
-gataaggtttaatttgtaaattaaactcttacaaattaagagttaacaacagctgggcac
-agtggctcacgcctgtaatcccagcactttgggaggccgaggtgggcggatcacgaggtc
-aagagatcgagaccatcatgaccaacatggtgaaactccgtctctactaaaaatacaaaa
-attatctgggtgtagtggcgcatgcctgtaatcccagctacttgggaggctgaggcagga
-gaatcatttgaacccgggaggcggaggttgcagtgagctgagatcgcgccactgcactcc
-agcctggtgacagagcgagactccacctcaaaaaaaaaaaaaaaacaaaaaaaacaaaca
-gttaacaataaatagaacagttataacagtatgttgtaataaaagttatgcgaatgtggt
-ctctccctcaaaatgtcctattgtactgtactcacccttcttgtgatgatgggagataat
-aaaatgcctacatgatgagatgaaggtaaatgaatgacatgggcattgtgatctagcgtt
-agactactactcacctgatgatacgtcagaaggagaatcatctcctttgggtgatccagg
-atcatgaagccgtgacaatgtccatgattggatgtcaggagcagatgatgttaatgatta
-accgtgggtaatgtctacaatatggatacagtgcaaaagggatgattcacatcctacgtg
-gaatagtgcaggattgcatgagatttcatcatgtggttggctgcaggtaactgacattgc
-agaaagcaaaaccacagatcatgggggTGGGGGTGGGGAACTACTGTACAACATGAGATA
-TATTTGATCAAATAAGATGAGGTGCACCTAAAACTTTCCCTACAGGTTGTATGCCCCTGA
-GTAAATTGCTTGGTGTCTCTGGATCTCCAGCTGTTCCCCTTCTCTCTGCATGGCTAAGCC
-CTGTCCGTCACTTGGGGCTGGACCTAGAGCCCTGCCTGGCCACTAAGCCCTCAGAACAGG
-GTTTCTTTTTTAAAAAAGACAGGGTcgggaggtggaggttgcaatgagccaaggtcgcac
-cattgcactccagcctgggtgacaagagtgaaactccatctcaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaagacagggtctcactctgtcacccaggctggagtacagtggt
-gtgatcatggctcgctgcagccttgaacacctgggctcaagctgtcccccaacctcagct
-tcctgagtagctgggagtgccaccacgcctagctagttttttaaaaaattgttttgtaga
-gacaggggcctcactattttgcccaggctggtcttgaatgcctggcctcaaatgatcctc
-ctgccttggcctcccaaagcactggggttacaggtatgaccacTACCCACAACCAGAACA
-Tttctcaaatgtgattggttgatctcctgcatccatccctggggtgcttgtttaaaatgc
-agagccctggatcctcccccaacctagagagtcagaacatctgggcttctgcatcttaac
-aagctccctgggtgatgctgctgggcctccaagttggagaacctctgTATTTGAAGAAAT
-CCGGACTCCTTGGGGACTCAAATCTTATTTCAGCTCTTCTCTGGACTAGTTTGACTTTAG
-CCTTGGTGTAAAATGGGTATACATTTTACACGCCTGTGACGCCAGGATGCGCTCACAGGG
-GAGGGAGGGCTTTATCAGAGGTCAGAATCTAAGCCACCACTACAGTTGTACTAGATCCAA
-GGAGAAAGACTCCCAGGCCTCATttcctcatcgttctctcttctcttacctggctttatg
-gttcttcatagcactgagcaccaccaggcagtgtattttatgttttttttgagctttata
-atgccagggactatgttttgtttataactgttcacccagttcctagaacagtgcctggta
-cacaggagtgctcaataaatgtttgtggaatgactgaatAAAAGTTGTTCCTGTACAGAT
-TCCACCTGCCTAGAGCAAAGCCAGGACACTGATTGGGAtgaacacatagcacatgccaga
-catggctttgagtgctttacctggatcatctcactttatatgtgacagccaaatggtccc
-cagtgaccttcaccagctgctattcacgcctttgtacagtttcctcccatcctaagctgg
-gctgaccagtgtaatgaatacaatattgtgaaatgagaaagtatgacttttaagattagg
-tcataaaatatgttatggcttctgccttgctcttctggatcatctgctctggggacagcc
-agctgccatgttgcgaggacactcaattacccctgtggaaacttacatgtggtgaggatc
-gtaggcattctgcaaataaccagcaccacccaggcacataaaagagctttcttgagtcaa
-tcctccagccccagtcaagccttcagatgactgcagccccagccgacatcttaactacaa
-cctcatgagtgaccctgagccagaaccatctatgtagctgctccccagttcctaacccac
-agaaactatgtgatagcatacatgttgattgcttttttaagcaattaattttgggaaatt
-tgccacatatcaataattaataacttgtacagattctcacaacagcctatgtgggaggag
-ccatcataattaccattgaacagagaaagaaactgaggcccagatagggggaatctttgt
-ccagggtcacacagatagtgaactgtagcactgagattggaacccaagtttgaatgacta
-gagtcTACCCACTGAGGTGAAGGTGTTCAAGTTGAATGCCAGCTCTTCCCCTGAAGGGCC
-AAGGCTGAGACCAGAAAACCTGAAACAATATAGCTGCACCCaatataaatatatgcaggt
-aactcagggctgatggtacatgaccataataaatcagcagggtcatcaggagaaaacaag
-acaacaggagcgaaaacagatagaaacaaatatgcccagagtttgtatatcagtattatc
-agacgcagattataaaacaaaatgttggccgggcacgggggctcatgcctgtaatcccag
-cactttgggaggccaaggcgcatggatcacctgaggtcaagagttcaagaccagcctgac
-caacatggggaaaccccgtctcaaataaaaatacaaaaaaattagctgggcctggtggca
-ggctcctgtaatcccaggtacttcaggaggctgaggtaggagaatcgcttgtacccggga
-gggagaggttgcagtgagctgagatcgcaccatctcactccagcctgggcaacaagagcg
-aaactctgtctaaaaaaaaaaaaagtttactgcgtttaaataaataaataacctagaaac
-attgccaaagtatagaaaattatatcacatgacaacaaattttaaaataacctaacagaa
-cttctaaaataaaataatacaataatcaaaatttttaggccaggcacagtggctcacacc
-tgtaatcccagcactttgggaagccgaagtgggtggatcacttgaggtcaggagttcgag
-accagcctggccaacatggtgaaaccctgtctctactaaaaatacaaaaaattagccagg
-agtggtggcagacacctgtaatcccagctactcaggaggctgaggcaggagaatcacctg
-aacccgggaggcagaggttgcagtgagctaagatcgtgccatttgcactccagcctgggc
-aacaagagtgaaactctgtcacacacacacacacacacacacacacacacaaattaaatt
-taaaagatgggctaaacagcaaactagatatggctaaagagggaattagtgagacagaaa
-tcagaCaccaatcacagattcaagaaactccataaattttacacatagacacatcatagt
-aaaagtgcaaaaagccaaagattttttttaaaaaactcttaaaagcactcagaggaaaag
-aatcagagattctaaaaacaaaaaacaaaACAAAACAAAAAAACCCCAAAACAACAACAA
-CAaaaaacaaacaaaaaaccagtactacaacatggataaacctcaaaaacgttatgtcaa
-gaaaaaccccaaagttatgccaagtgaaagaagccagtcacaaaggttcacatattgtca
-aaatctaattttctttttgagacagggtctcactctgtcacccaggctggagtgcagtgg
-gacgatcactgctctacaggtgcacgccatcacactcggctaatttttgtattttttgta
-gagatggggtttcaccatgttgcccaggctggtcttgaattcctgggctcaagcgatcca
-cctggcttggcctccccaagtgctgggattactggcatgagccactgtggcccatcagta
-agatctaatttctataaaatatcaagaagaggaaagtctatagagacataaagtatatta
-gtgctgtcagttggaggatgggaaacagggaatgtctgctaatgagtacaggtctatttt
-ggggtgataagaatgttctttctttctttttttttttttggtctgagacagagtctcgct
-ctatcacgcaggctggagtacaacggtgcgatctcagctcactgcaacctctgcctccca
-ggttcaagccattctcatgcctcaggctctgcagtagctaggattacagatgtccgccac
-cacacctggctaatttttgtatttttagtagagacagggtttcaccatgttggccaggct
-ggtctcgaactcctgacctcaagtgatccgcccacctcggcctctcaaagtgctgggatt
-gtaggtgtgagccaccatgctcagccaaaaatgtcctaaaatttgattgtgatgatgggt
-gtacaattctgtaaatgttactaaaaactattgaattgtatattttaggtgggtggattt
-tatggcatataaattatatctcaataaagctgtttataaaaaGAACAGCAGTTAGATTGA
-CAGGTGATGATATCTCAATAAAGCTGTTTATAAAAAGAACAGCAGTTAGATTGACAGGTG
-ATGATATCTCAACAGCAACCATTtcccagcattttgggaggccgaggtgggcagatcatt
-tgagcccaggagttcaagaccagcctgggcaacatgaccaaaccctgtctctacaaaaat
-tagccagctgtggtggcacgtgcccgtggtttgcagctactcgggaagctgagcccagga
-gttggaggctgtagtgagccatgatcacgccactgcactccagcctgggcaacaagagtg
-aaactccatctcaaaaaaaaaaaaaaaaaaaaaaaaGGCTtccccaggccattcaaatgt
-acagccaaagttaagaaacattgtctaaagggatgtgtttccggcaaaagaaaaattatc
-ccagatgaaggtctgaggttcattccttcattcaacatatggagcctccattatgtgttt
-ggaactgttctagacaccaggaacacagcagtgagcaaaacaaaccaaagtccctgccct
-ctaggagaggaaaacagacccagaataacataaataagtaaaacatgctccgttagacag
-taatagatgctgagaagaaaaaatgaagccaggaaagcggatgtgaaatgctggatacgt
-gtgtctgtgaaatttcagatggagtaactagggaagatttttgggtaaagaccaaaataa
-agggaaggagggagccatgcagacgtttgggttatggcaggtgcaaaggccttagggcgg
-gagtgtgtctgacttactccaggacccagcaggtcaatgggacttgagtggaatgaggca
-ggggcagggcagtcagctacgaagacagagatcgggaggcaatttgcgagccctgggaca
-gatctcggattttgctttaagtgagatgggagtacttgggtcggggagtggcatgggttt
-gatttacattttaacaggactctccggcagctaggtggaaatggacggtagggggcaaaa
-agagaagcaaggaggcccaggaggaggctggttcaagacccctgagatgatggagcactg
-atggagctggagcgggatggggccggaggaggtgagggatgagattctgcaagtggagcc
-cgcaggatctgctgatcgatgggacgaggaacgggagaaaaaTTAAAGCGGCGCATGAGG
-CAGACGAATGCAAACTTCACCAATAGCTCAACGAAAAGACAGACGGTGACCGCTgagagg
-cagcgtcggatctgggtaagggcgggttcctgagcctgccaggcctggattcaaacctcg
-gctgagtggccttggacaggtcatcaacaaacagagccttcgtttattcatgtgcaaacg
-gggccaaggaccgggcctgccccgaggtatgcctgaggcttgggtgagCAGGCGCCGGGC
-TCGCAGGGCGCGCTCCTAACCCGTCCCCAGCGGCTCGACGCTGTGGATCCCGCCGCCCTC
-CAGCCCCGGCTCCGGCGCCGACTCCTGCTCAGgctcctgctcctgcccccggccccgccc
-ccggccccggccccggcccccggcccaccccggccccgcccccagcccccggcccccccg
-gccccgcccccggccccgccccggccccgCCCACCCCGCCTGCGGCCCAGCTCCTTCCCG
-CGGCTCTGCGATGCGGCCCGCAGGGTGACCCGGGCGGGAGTCCGGGGACCCGCGATCAGC
-CCCGGAGGACGGGGTGGGGTCGCCCCAAACAGGAGCGCCGGGACCGCTGGGACCCCGCAC
-TCGGCGTCCGCCGCCGCCGGGTAGCCGGGCAGTGGAGGTCCCGGATGAGGCGACAATTTT
-TCCGGCCCCCCCTCCCAGTCCCGCCCCACTTCCGGGGCCGCCACTTTCACTTTCTCTTCC
-GCCGAAGCCGCTCCCCTTGCGAAGAACTGGGGCCTCCCGGGAGGAGAGAGGGCTTTGCCT
-TGAAACCCGGGACGCCAGGGGCGCTCCCGCAAGTGGGGGTCCTCCGGGACTTGGAACGCC
-CCGGCTGGGTGGTGTCCGGGCGTCCTTTCCCCGCTTCTTCCCACCTCGGCTGGTCCCGTT
-TCCTCCTGCGCCCAGTGCGGACCTGTCTCGGCGCCCGCTGCCCTCTCACCGCCCCACGCA
-GGATCCCGGCCTGGTCACCGGGCAGTGTGATGCTTCCCGACTGCCGCGGGGACAGCGAGG
-CACACACAGGGCTTGGGCCGCGCCGGAGGCCACACGGCCTGGCTGAGTTGCTCCTGGTCT
-CCCGCCTCTCCCAGGCGACCCGGAGGTAGCATTTCCCAGGAGGCACGGTCCCCCCCAGGG
-GGATGGGCACAGCCACGCCAGATGGACGAGAAGACCAAGAAAGGTGGGCACAGGCTGGAG
-GTGGCTGGGGAACTTCCGGTGGGAAGTGGGCCCCGCAGGACCTGGCCTTGCCCCTGGCCA
-GAAGGGCCTTGGAGAGGGGGCTTTAGCCTGCCCTCCCTCTACCCTCCTCCCCATCAGTTT
-CCTCCTTTGGTACCTGCTGGCTTCCAGAGCCATCTTGGGGCCCTGAGAACTCCTTGGGCT
-GGCTCTGTGCTGAGATGGGGCTAGGGGACTCGCAGAGGACACAGGGCATTGAACTTGGAG
-ACCTCCTGGGCTGGTGGGAGACAGACGTCAGTTGACCTGAGAAGCAGGGGTACTTGCCTC
-TTCTCTTGTCCCCTGCACCTAGGGttgtagaacggaagtcagtcactgccttgctggaaa
-ccctcccatgcccctctgtgttctccaaacaaaacccagaggccctgggtggcccacagg
-atatctgtcctcagtcaccccgccatgctcactctactggagccccactggcttccttcg
-gttctcatccaaccattttttggccaaggcccttactcttccttccacctggaccactct
-tccccactggagcttgacacgtgcagcttctcctccttcaggtcttagcttcagtgttac
-cccctcccagaggcctcccctggtctccttaacctgtttatttccctgccagcaaggatc
-gcaatctgactttttttttttttcttgttaaacttgttcattgtctccccactgggcagg
-gagatccataaggagaggggccctgtttataaatctctgtgggattccagttcctgggac
-agtgggtggcacacagtagaagctcaataactgcttgttggataaatgaatAGAAATATG
-AGGGACCCTGGGAATGGGAAGGACAAACAACCAAATGAGCCTAGTGTGAGGAGGAGTGgg
-gaatattagagaacccctcccggagaaagggacttttagtctgggtgctgaaggatacgt
-aggagttcaccaggaagacagagaaagCAGCACACACAAAGGATCGCCTCCTTTCCTACC
-CCATTACTCTCAGCTCCTGAAAATAAACCCTGTGCTAACTGGCTCCTGCTGTACTGGCTT
-TCAGCAGAGGAAATGGCCCTGAGCCTCACCCGAGCAGTGGCGGGCGGGGATGAACAGGTG
-GCAATGAAGTGTGCCATCTGGCTGGCAGAGCAACGGGTGCCCCTGAGTGTGCAACTGAAG
-CCTGAGGTCTCCCCAACGCAGGACATCAGGTGAGGAGTGCATGGCTGGCCTGAACCCAAG
-GGACAGCAGGACAGGATATTCTTGCCTGTAGAACAGTTCTTCCtaatggcacgttctggc
-ttcaggaggcctggcttctaaccctagttatgtcattaatcaactgtgaaatacagagca
-ggtcacttcacctctcagtgtgtcctcattttaaaaatcagaccgtaacagtagctatct
-catagggttgttaggaggTGTACTGTATTAGGATGTTAGGCCTTATACAACAGAAGAAAA
-CGGAACAGTGacgtaaacaaatttgatggcagggagtccagatagggaggttctgctccc
-gacagtcctcagaggctcatattgtttctctcaccattctgccattcattcccagattcc
-tcatggtgcaaaatggccattccagctccatccagccatcacatcacaggaggaagggaa
-gaaagacacccctccacactcttctaaagagcatagctcaaaaattgtacacacttcttc
-cgttaattcctgtggaccagaactgattcccacagctacagttcagcttgaggggagact
-gtatagccaagatattcagctagaattcaggggttcgcttggtaagggaagggaagagaa
-tggatactgTCGGTCTGTGCTCCAGgagacttaaactcaatgctgaaacactttgcacaa
-tgcctggcgtgttatgcactcaataaTAAACATTAGTGTCTATCGTTATTTTTTGACTGC
-TTTTTCATTACTGGATAGTAAGGCAATAGTTTTATGGTTTCTGATTTTTGGTTCTCTTGG
-TGGGTCCCATTTGGTTTttcttaaaacagttttatttatttatttatccttacagttcga
-ccatttaaagtatacagttcaatggcttttagtatattcaaggttgtgcaaccattgcca
-caatcaattttagaacattttcatcatcctgtaaagaaacctggtactcattagcagcca
-gtcctcatctctctaccttttccctaactccccaaccttaggcaaccactaatctacttt
-ttatctctagggatctaccttctggaaattccatataagttgaatcatgcaatatgtggc
-cttttgtatctggcttctttcacttaggatcgttttcgagattcatccatgttgtagcat
-gtctaacaacttcattcccctttttttttttgacatggggtctcttgtctaggttgaagt
-gcagtggtgccatcatcgctcactacagcctcaacttcctggattcaagcagtcctcctg
-ccttggcctcccaggtagctgggactactggcatgtaccaccacacccggctaatttttt
-ttttctttgagatgggagtctcactctgtcccccaggctggagtgcagtggcgcgatctc
-agctcactgcaagctccacctcccaggttcacgccattctcctgcctcagcttcccgagt
-agctgggactacaggcgcccgccaccacgcccagctaattttttgtatttttagtagaga
-cggggtttcgccgtgttaaccaggatggtctccatctcctgacctcgtgatccgcccgcc
-tatgcctcccaatgtgctgggactacaggcgtgagccaccacacccagccacacctggct
-aatttttagaaagtctgtagagataaggtcttgctttgttgtctgggctggtcttgaact
-tctggcttaagcagtcttcccacctcagcctctcaaagtgctgggattacaggtgtgagc
-caccatgcccaaccagaactttattcctttttattgccaaataataatctattgtataga
-catatctcattatctttactcattaaatcagttgatggacatttgggtgtttctattttt
-tggctattataaacaatgctgccgtgaacatttgtgtccaactttttgtgtggacacgtt
-ttcatttctcttggatacacactagcagtggaattgctgggtcatacagtaactctatgt
-tactttttgaagaaatgccagacagttttccaaagtggctgcaccattttacattcccac
-cagcatatatgagggttctagtttctccacatcatctctaatacttgttgttgtttatct
-ttttgattatagccatcctagtaagtttgaagaggtatctcactgtggttttgatttgca
-atttcctaaccatttgatgacaaatgatgttaagcatcttttcatgcacatattttcttt
-ggaggtttgcctattcaggtcttttgcccattttaaaattgggtttatcttttttttttt
-ttgagatggagtctcgctctgtcacccaagcaggagtgcaatggtgcaatctcggctcac
-tgcaacctccgcctcccaggttcaagtgattctcctgccccagcctcctgagtagctgga
-ttacaggtgcccaccactacactggctaatttttgtatttttagtagagacgggtcttac
-catgttggccaggctggtcttgaactcctgacctcaggtgatccacccaccttggccttt
-ccaaagtgttgggattacaggcatgagccactgcacccggctgggtttatgtttttatat
-tgagttgtaggagtactttattcattttagctagaagtactttattcattttagcttatc
-agctacatgatttgcaaaaattttctctcattctgtggattgtcttctcactttgttgat
-ggtatcctttgaaccacaaaagttttaaattttgatgatgtccagttagtctatgtttta
-ttttgttgtttgtgcttttggtgtcatatctaagaaatcgttgcctcatccaaggtcatg
-aagatttacctctatattttcttctaaagattttatggttttagctcttacatttaggtc
-tttggtccattttgatttaatttttatataaggtgtgaggtaagggtccagcttcattct
-tttgcacgtggatattgagttgtgccggcactatttgttaaggctgttttcctctgttta
-atcatcttaaccctttttggaaattaattgaccataaatgtgagtgcttatttctggact
-ctcatttctataccattgaactataatatatatctgcccttacgccagtaccacactaat
-tactatagcttcatagtatttgaaatcaggaaatacaagttctccaacttttgttctttt
-tcaatattgttttggttattgcaagtctcttgaatttccatataaattttacgatcagct
-tgtctgtttctgcaaaaaaaaaacaacaacaactgggaattttggtagggatttcattga
-atctgtagatcattggccacttgattttaaacaaaatattgagatatctacttcttgaaA
-TGATTGCttgagacagtacctgtgtactccttgctatgaaaaatgaggaagttaacatac
-tcatcttccacctttccttttccttactttttttgttGAAGTATCATTGTGGACACTTTC
-CCAGTTGACTTCCACTTGATCCCCTGAATTAACTAACTGGCACTGGCGTTTCCTTTGTAA
-AATGTACAATGTCAGCCACCATCTtgctactaaagtgtggcctgtggaccacaacatggg
-gggaatctcaggtctcacctcagacttgctgggtcagaacctgagttttgagaggctcTG
-GGCAACCGGCACCTCTCAGACCTGCTGTTGGGTTCTCATCGATGGACCCGATGCTTCCTA
-GCAAATGATACCTGTTGTATGTGTTATTGGTAATAACATAGTTTACTTAGCTATTACATT
-AATTAATAAAACATGAGCGCTGAAAGAGTTGTTTCTGTGAAAATAAGCTGATTGCTTTAA
-AAAGATAAGAGACAAATCACCAAAAAAAAAAAAAAAAAAGATTAACACTTTTGGGTGAGA
-CAGTAGTAAGGAAATACAGTAAAAATCCAGAAGGGCTCTGTGCTCTGATGCTTCAGGAGT
-GTGTCTAAGTTCTTGCTCGCTTTAAAGAAGCTGCTACTAGAAATTATAGATCATGATTAT
-CGATGTGGTTCATACAAAAAAAAAAAAGAAAAATCCCTGGGAAACTCCAATGAGCAGGTA
-TAAACTCACgctgggcatggcggctcagcactttggaaggctcaggcaggagaatggctt
-gaactcgagtttaagaccagcctgggcaacatagtgagaccttgtctctgcaaaaaataa
-aaaaaattagccaggctgggtggcacacacctgtagtcccagctatttgagaggctgaga
-tgagaggattattagaccctgggtggttgaggttgcagtgagccatgatcatgcctgagt
-gacaaggtgaaaccctgtctcaaagaaagaaagagagaaaaGCCATTGGCTGTACACCTA
-GAGACTGGCCAGTGAATATGCATTTATAGTATGTAAGTTAAAATTAAGTGTTTAAGCTTT
-GTCTGCAGCTGTTTTTGTGATTCTCTGCTGTTCACCAGCGATCCTGATGTCACATTGGAT
-GAGAGAGCTCCAGCTGTATTTTTTTGTTGATAGTGTTAAGATTATAGCTTTAAAAAATTT
-TGTTTTCTAACATAATTAAGGCCTTTATGCTTTGCCTCTAGGTTGATTCTAAAAGTGTAA
-CACTACTAGAAAGGATTTATAGTATTTTGATTATGGAAATATTATTCACTATAGAATAAC
-TAGTGCAGTTGAAACCATATGCACTTTTATGTTTCAAAACCCTTATTGCTGGAAGAACAT
-TTTGGGGTTAAGATCCAGTCCTTTTCATTTTTTACTTTTCTTCTATTCTCCTGTATCAGA
-CTCATCTATTTTTGTTTTTCAAGAACTTTTCACGTGGAAAATGTggtaaacttttagagt
-ctttgcatgtttaaaaatttctatattttgctctgtcaattcattgatagttgactgggt
-attcaaattgtttacctgaagaattttgagagcattttctggactgcttttaaataaatt
-tcagatattattttatccttaaatactttagtatgtgtcttcaaaaaattaggacttggc
-ggggcacgatggatgatgcttgtaatcctagcactttgggaggctgaggcaggtggactg
-cttgaacccatgagttcaaaaccagcctgggcaacatagtgaaaccttgtctctacaaaa
-cattagctaggcatggtggtgcgcccatctagtcccagctacccaggaggctgaggtggg
-agggtcacctcagtccaggagattgaagctgcagtgagccaagatcatgccactacactc
-catcctgggtgacagaagtgagaccctgtctcaaaaaaaacaaaaacaaacaaaacccct
-caatactattatcacaccttagaaaaggaataagaattccttaaaatccgctaatgccct
-gtttatattcacattttcctatttcattagtgctttttacaattggtttcttcaaatcag
-gagccaaacaagatctacatgtagcatttcttactatgtcttaagtcccttttactctcc
-tctatttttatgccactagttttttttttaagaaacctggtcttttgacctctagaattt
-tccccatattctggatctatccattacctcttcatggtatgtattagaccactctagcat
-tgctacaaagaaatatctgagactgggtaatttgtaaagaaaagaggtttaattgactca
-gttctgcaggtggtgtaggaagcatggtcctgacatttgcttggcttctggggaggcctc
-agtgaacttttactgaagcgggagcaggcacttcacatggtgagagagggagcaagagag
-agagttggtggggaggtgccacactttacaacagccagatctcacgaggactcactatgg
-cgagaagtcactacagtgagcgcagcaccaggctgtgagggagctgcccctatgacccaa
-acacctcccaccaggcctcaccttcaacactgaggattacagttcaaggtaagatttggg
-cagggacaaatacccagactatcatggtgtcatttactatctcccgtttttcctgtaact
-ggtagttagagataaagtttcaattagtcagCAGTCACtttttttttttttttttttgag
-acagagtttcactctgttgcccaggctggagtgcggtggcgcaatcttggctcactgcac
-ggtccgcctcccgggttcacaccattctcctgcctcaatctcctgagtagctgggactac
-aggcgcccgccaccgtgcctggctaatttttttttttgtatttttagtagagacgggttt
-tcaccgtgttagccaggatggtctcgatctcctgacctcgtgatccacccacctcggcct
-cccaaagtgctgggattCAGCAGTCacttttaatgtgcaggaactcttcctcattttttg
-gttgcttcatgcctttccttgctttctgaatgcagtgttttcccaaatctctctgaaggt
-actagttagacttcactgttgcttattgttccataccctaaatgatctctgtttcctttg
-gggtcggttctgttttttcatcttttcatgcttttgattttccaaacatgttggaggatc
-ctcaAGAAAGTTAAAACCACTTTCTCTGGAATAATACCATGTAGATTTAAATCCTGCCTC
-Tggctgaacacagtggcttactcctgtaatcccacttcgggaggccaaggcaggaggatc
-acttgaggccaagagttcaagaccagctttggcaacatagtgagaccctgtctctacaaa
-aacttaaaaaattagccaggcatggtggcatgagcctgtggtcccagctacttgggaggc
-tgagatgggaagagcccaggaggttgatactgcagtgagccaaggtagcactactgcact
-ccagcctgggccacagaaagagagcctgtgtcttaaaaTTAAATCAAGACATACAAATga
-atcctgcctctaacagttattagttgcttagtttggcagagtcactggaacctatctgtg
-cctcacatttttatctgtaaaacagggatacagcagtacctgtctgatgggttggttgag
-aggattaaatgagttaatacacatgaagtgcattaaatagtcttagcacgtagttaacaa
-caacttctggtggttTCACTAAGgagcaggggagagaagacagaagaggttggagaggtc
-agggaggtgccagatcatggaggccctcgtgtgctgccacgagttgattctaagagtagc
-gtggagccattggagggGCCTAACTGGTGGGTTCTAATAAAGGAAGAAGCATGGGTGGGG
-CCTACCCCAGACTGGGGTTtgtgtgtgtgtgtgtgtgtgtgtgtgtgCATGGCCATGTGC
-CTGTGTGCAAATATGTACATGTCTGTAGCCGGTGGCTGAGGCTGGACCCCTGGCCAGAGC
-CCATGCTGAGCCCCTGCTGTTCTCTGCAGGCTGTGGGTGAGCGTGGAGGATGCTCAGATG
-CACACCGTCACCATCTGGCTCACAGTGCGCCCTGATATGACAGTGGCGTCTCTCAAGGAC
-ATGGTGAGTGAGGAGGCGGAGGGCGACACTGGGGTGAAGGctctccctttcactcctgct
-tcctctctctcctctggccctcccttcccactctccctctctttgccccCACCAGGTTTT
-TCTGGACTATGGCTTCCCACCAGTCTTGCAGCAGTGGGTGATTGGGCAGCGGCTGGCACG
-AGACCAGGAGACCCTGCACTCCCATGGGGTGCGGCAGAATGGGGACAGTGCCTACCTCTA
-TCTGCTGTCAGCCCGCAACACCTCCCTCAACCCTCAGGAGCTGCAGCGGGAGCGGCAGCT
-GCGGATGCTGGAAGGTGAGGCTCTGCCCTGAGCACCGCCGGACCCAGCGGGGGCCCTGGA
-CTCACTTGAGGGCATAGGGCAAGCAGGGGCAGAGCCCCTGGGTTTTTAGTCAGGGACTCA
-CCCAGAGGACCCTATCCAAGTGGGGAAGAGAGGACCTAAGACACATGGGAGGGAGCATTT
-CAGGGACCCATCATGAGAACAGCTGGCACGGGGAGGGGTGGACTCCGtccaggctccggc
-attcccagctgtgtgaccttgggcaaggttgctcctatctgctgcccagtttgctaaaat
-cataaattgggtatgacagtgatCGTGATAACTAGTGTTTATTCTTAAtttttaacttct
-gaaatgtttcagacctacagaaaagttgctaaattttacaaagtagtacataaagaattc
-ccatgtacctttcatgtgggttttaccacatgtgctttctttttttttttgagacggagt
-ctcgctctgtcgcccaggctggagtgcagtggcacaatctcggctcactgcaagctccga
-ctcccgggttcacgccattctcctgcctcagcctccggagtagctgggactacaggcgcc
-cgccaccacgcccggctaattttttatatttttagtagagacggggtttcaccgtgttag
-ccaggatggtctcgatctcctgactttgtgatccgcccgcctcggcctcccaaagtgctg
-ggattacaggcgtgagccaccacgcccaacccacatttgctttcttttatcattctcttt
-ctatataaaattattttttttctgaaccattttgagagtaagttgcagacatgatgtctc
-tttcccctaaataattcagtgtgcatttccttgaaaagaaaggtcattttcttacattac
-tgggtataacaatccaactcaggaaactaacgctgatacagtactggtatccagtctaca
-gatcttactcagattttaccagttgtcccactattgtcatttatagcaaaagacttggca
-ttctgctgtcatgtctcagtccctttcaaagagtccaggccagtttcttttttttggcgg
-gggttgggggctgatgtttcctccggagtggatcaagtcactgttttggcaggaccgcct
-cagcggtgctcttgggtccctcttggtgcatccttcaggaggcacGGAAGGGCTGGTGTT
-GTGCTGGGTTTTGAAGCTCAAAGGACATAGAAGCATTTATCGGTGGAATAGGGACCCTGA
-CCCTGGGGGAGCCAGGATGCCCACTTGGCCAGATGGAAGCTGGAGGTACCCCCAGGGAGG
-AGGGAGAGGATAGGGGGAGGGTCTGCCTGGCTGGCTCAGGGAGACCCACCCCCATGGGTG
-TGGACCAAGTGGGCCGCGTGGAACCACCACCCTTTAACCCTCCTCCACAGATCTGGGCTT
-CAAGGACCTCACGCTGCAGCCGCGGGGCCCTCTGGAGCCAGGCCCCCCAAAGCCCGGGGT
-CCCCCAGGAACCCGGACGGGGGCAGCCAGATGCAGTGCCTGAGCCCCCACCGGTAAGCTG
-TCCTTGGCCTCAGTATCCTCTTCTGTGCCCCTCCCTTGCCTCACCCTGCCCAGTCGGGCT
-CACAGCACCCTCTGCTCCCAGGTGGGCTGGCAGTGCCCCGGGTGCACCTTCATCAACAAG
-CCCACGCGGCCTGGCTGTGAGATGTGCTGCCGGGCGCGCCCCGAGGCCTACCAGGTCCCC
-GCCTCATACCAGCCCGACGAGGAGGAGCGAGCGCGCCTGGCGGGCGAGGAGGAGGCGCTG
-CGTCAGTACCAGCAGGTGGGCGGGAAAGTCCCTGGACAGACACCTGCAGACCGCACGGGG
-GAGGTGTAGGCCAGGAAGGGAGACACCTGCGCACTGCCGCGCCTCTCCGTTACTGCCTTG
-CCCCTCCCAACCATGCTGCTGGCAGTGACCCTGCACCTGGCTGTGACCCTGCACCTGGCT
-GTGACCTGCCCTCTCTCAAAGGTCACCCTGTGGCTGAGACCCGCTCCCTGGCTGTGGCGC
-ACATCCAGGTTCACATGCCCCACTCCCACGTGGGCTGTGGCTCCATCCCCAGCTTTGACA
-CACCACACGAGTATGGCTGGCCATGACCCCAGCACCCTAGCCATGACCCCAGCACCCTAG
-CCATGACCACACCTCAGCTCGGACCTCACCCCCACCCGTCTGTGACCTAAGCCTGCTCCA
-CCTCGCCGTGACCTCACCCTGGACTCTCCTACTCCTGACCTCTTCCCTCTCGGGCTGGGC
-CCACCCCTGACTTCCTGAGAGCCTGGCCTGGACCCTCGCTGCGCCCTAGGGGGATGACCC
-CCGACCCCGGTCCTACGCCTTAGCCCTACCCCGCCCCCATCGTGACACACGCACTAATGA
-CACAGACATTGATCCCCGAGTGCTCCCCATTCTGATCTCACCCCTGGCCCCACCTGCATT
-CCCCTTGGACCCGGTGCTGCCCCTGGCCACCCCACTCCTGTTCCCGTCTCAGCTCCTCGG
-CTTCGTCACTTCCCCACCCCTGACGTTGAGTGGCTCCACCAGCCCTGGCCCGGGCCCTGC
-CCTGCTACCTGACTCACCACTCAGACCCCGGCCCCCTTCCTTACCTTGCTGCCATTGCTG
-TCTCACCTGGCGCCTTCCGTGGCTACCTGGCCGGCCTCCCCTCCCTTGGCTTCCCCACCT
-CCACCTGGCCTCACTCCCAGCCCCGCCCCTCCCAACCTGCCTGCTCCTGcccatccccca
-ccccccaccccccatcccccagccccacccccatcccccacccccgtcccccatccccca
-tccctacTGGCTCCCAGCTTTGCCTGTGGCTGGTCTGACCCAGCCCTGACCACGCCCCCT
-GGCCCTTCCCCCTTCGGGGTCTGACCCGCCCCCGAGGCCCTGACCCGCCCCGTGGCCCCG
-CCCCGTGTGCCCAGCGGAAGCAGCAGCAGCAGGAGGGGAACTACCTGCAGCACGTCCAGC
-TGGACCAGAGGAGCCTGGTGCTGAACACGGAGCCCGCCGAGTGCCCCGTGTGCTACTCGG
-TGCTGGCGCCCGGCGAGGCCGTGGTGCTGCGTGAGTGTCTGCACACCTTCTGCAGGTGCG
-GCCCCCAGTCCCACCCCCGGCAATGCAGCTtaatcaaagccgccaattacgcagggctgg
-acgtgggtggggccctgtgctctgatacctcattggacgcccgcgaaaacctacgaggta
-ggctccgtctccccatgttgcggacgaggaacctgagggaaagagaggcccagcgcctta
-ccccaggcccacggctcatgagagaagcagcctagacgtgagcgcaggCGTGGGGGGAGA
-CTCCCTTCCCCTCTACCTTTCGCCGCCCGGGCTCCTGCAGCCACGCTGCTCTCAGCCTCG
-CTGTGGGCATCTGCCAGTTTCTGAGTCTCCTGTCATGGCCCCCCCACCCCTGAATGTGGG
-GAACACAGACCCGCTCACCACAGCGGACCCTTGTGGAGCCGCCCCTGGGTGacaggctcc
-gtgcctgcctcctgcagcttacattccagcagagaggctgatgagaatcggataatcgct
-ggttgatgtctttgtgaattgtgtcaaatgctacatacagtacattaagagacaacagga
-gtccttcccagagagggtggtctggaagcttccaaggaggtagccccagagcagggaccg
-gaaggcctgctgtaggtgtggggtgtgggcctggcctgttggaggagactgaggaggtct
-cttggtggctggagcagagggatgaagggggtaatcagagcaggatagagaggtgttggg
-tacgtgagcagcagtgaggagttgggatttgttctgggtaggatgggagtcactggggag
-acatggctgctgttctgagatagactctaggggccagatggatgcagggagcccagcgag
-gaggctcctggagtcacccaggtgggggatgtggggcctggaccagagaatcagagcggc
-agtatggaggcagggtggagGCCTTGGTGATGGGTTGGTGAGAGGGATGGGAAGGAAGGA
-GATATTGAGGAGAAGTCCACCTGGGGTGACTGAGTGAGGCCCCTGGGGTCAGGCCTTGCC
-ATGTGAGGGATGGAGTCCCCAGTGAAGGGGGTTCCTATGATCCTAACTCTTTTCCCCTCC
-CCTCCCCTAGGGAGTGCCTGCAGGGCACCATCCGCAACAGCCAGGAGGCGGAGGTCTCCT
-GCCCCTTCATTGACAACACCTACTCGTGCTCGGGCAAGCTGCTGGAGAGGGAGATCAAGG
-CGGTAAGGCCTCAGGGTGGGAGACATACCCCAAGTCCCAACTCCTAAGGAACTGGGCCCT
-GAGCAGGCAGCAGACATCtttcttttctttcttttttttttttggagatggggtctcact
-atgttgtccaagctggtctcaaactcctgggcttaagcgatcattcatcctcagcccccc
-agaCATTTTTCAAGAGCTTTGTCCATGTGGGGTGTTGAGACCCCAAGCAGAAAAAGAATT
-GAGGGGAGTAGCTAGTCAAGAAACCACATCTATGAAGGAaggacagcagagttgttaaga
-atcagggactcggctgggcgtggcagctcacacctgtaatcccagcactttgggaggatg
-aagtgggcagattgcttgaacccatgagttccagaccaacctgggcaacatggcaaaaaa
-tattcaaaaaatagccaggcgcgggggcatgcgcctgtagtcctagctacttgggtgggg
-tctgggatgagtgggctgaggtgggaggattgcttgagcctaggaagtaaggttgcagtg
-agctgtgattgtgccactgcactccagcctgggcaacagagtgagaccttgcctcaaaaa
-aagaaaaaaaaaattagtcagggaactctggagcctggtggcctgggtgtgtgaccacaa
-gtcagatatttaacctctctatgcctctatctcatctctgttagagtcagagttacagct
-tctatttccaggattgcaaagattacagtagaggatatgtgtatagaattcatagtagta
-cATccaggcgcagtggctcattcctgtaatcccagcgctttgggaggccaaggcgggtgg
-atcacctgaggtcgggaattcgagatcagcctgactaacatggagaaaccccatctctac
-taaaaatagaaaattagccgggtgtggtggcgcatgcctgtaatcccagctactcaggag
-gctgaggcaggggaatcgcttgaaccccggaggcggaggttgtggtgaactgagatcgcg
-ccattgcactccagcctgggcaaccagagcgaaactccgtctgaaaaTATATATATATAT
-ATTTAGAGTAGTGCTTGTCACATAGTAAGCCTTtgttgttgttagcgcttactgtgtaac
-aaatcactgcaggctcaaaacaacagtcatttattcagctcataaatctgcaagttagga
-cagttggccctctgtatctgtgggtaccacactggagaattcagcaacggtggatagaac
-atattcttacaaaaaaaattacaataaaaaacaaatttaaaaaacaatacagcataaact
-atttgtataacatttatgttatattaggtattataaataatctacagatgatttaaagtg
-tatgggaggatgttggtaggttgtatgcaaatactgcactattttatataaggggtttga
-gcatccatggatttgggtatctgcaggggtcttggaaccaattctctggataccgaggga
-tgactataatttgggctggacttacctggatggttcttctggtctgggcagggcctcgct
-gatttcacctgggcctggctggtgggtcagccgcggtggcctggtttataatggtctcat
-ctgtgatgactgggatgactggggcctccttccacttcaatgtctcacccaccagcaggc
-tgcccgggccttctcatgtcatggtggtctcaaggttccaagagcagccatggggagccc
-cagtgcatgtgtactttctaagtctgctcatttctcacttgacactgtcccattggccaa
-agcaagtcccatgctcaagcacagagtccattgggaagggaccacccaaaagtgtggaat
-cggggagacagaaacaaattggagtcaccaCTCCGCCAGTCTGTCACAGCGTTATGTGTG
-TCTGCATACGTGTGTGCTTGCCGCTGGCGCTCTTCATGAATTCGTTAGCAGGTTctctgc
-ctggctgctggtgatctcgagcaagttgtttcccttctgtgggactccatttccttatct
-gaaaagtggacagttgggcttgatTCATGGTTTTCAAACTGCTGGGAAATGACCTTCCCA
-GACTTGGGCACTGTGGGTTCCCAGGCCAAAACATGGCAGCCGAGGCCCAAATGGGAGATC
-CCCACAAAACACATACACAGACCTCCTCTTTATTTCTGTCCCCCCTGCCTCTCTCCTATG
-CCCCTATTTCTCCTGAGAATGCTCCCAACTTCACCAAGTGTTTATGGAGCCCAAGAGGTT
-CTGCCCCTGGGGAAAAGGGGGAGGCAGAAGAGGTAGAACTTTGGGAGTTCACAGCTCTGA
-TATCAGGAGCAGCCCCATTTTTCTCTGTTGTCTCTGGGTGGTTGCTGAGGCTCCTTCGCT
-CTGGCCTGGAGAGACCTCATGACCAGTCATTCCATATGTCCCCAGCACCCATAGCCATTT
-GCTTAGAGGTTTCCCTGTGGAGTCCACCCCAGCCAAGGGGCATTATGCTGGGGCCAGGTT
-CATGCCAAAGGGCTGCATGAACTTCCCTGGAGCCCACTGGAGTTGATGTGAGTCTCAGAA
-AATGGTCAAGTGTGACAGAGAGAAGGAGGCAGGGATCAGCCAAGTAATGTAGTGGAGGTT
-GTTTTTACAAAAACAGAAAAATATGCCTCACCACATAGAACCAGAGCAGAAATCAGAGAG
-AAAATCACCCACAAACCCAGGAAATCCTCCAATTGCATTTTATCTTATTTCCTTCAGTAT
-CTCTGGGCAAAttttttttttttttcctttttgagatgaagtctcactctgtcatccagg
-ctggagtgcaatggcgcgatctcagcccactgcaagctccgcctcccgggttcacgccat
-tctcctgcctcagcctcccaagtagctgggactagaggcgcacaccgccatgcccagcta
-atttttgtattttcagtacagacgagttttcaccatgttggccaggctggtcttgaactc
-ctgacctcaggtgatccacccacctcggcctcccaaagtgctaggattacaggcgtgagc
-caccgtgcccagccAGATATGATTTTTTAAGTCAACtttacttaagtatactttgcacac
-aataaaatgtactcattgtaagtatgcagtcaggtaaattttaacaaatgtaactctcgt
-aaccaccaaccactgttacatataacatAGGCATGATTTCTGCCTCATTGTAACCAGCAT
-GGATACAATCGCTTTAGCTTTTGTTATTTTGCTATAGAATTTTTCTAAAGATTATTACAA
-ATCTCAATAGCACATATACTGTTTATACCTCTTAGTTCTAGTTTCTCAGTTTGTAATACT
-CCTTCAAGGAATGTTTTGCATGGTGTAttcttttttttttttttttttgagacgaagtct
-cactctgttgcctaagctggagtacattggtgtgatcttggctcactgcaacctccacct
-cccgggttcaaacgattctcctgcctcagcctcccgagtagctgggactacaggcagatg
-ccaccacacccagctaatttttgtatttttagtagagatggggtttcactatgttggcca
-agctagtcttaaactcctgacctcgtgatgcgcccgcctcggcctcccagagtgttcaga
-ttacaggcgtgatccatcattcctggctGGTGCATCTTATATattattttcttgggataa
-agttaaagaagtgggatgggtaccaaagggtcagaaaagtttgggatggttgaaacgtta
-ttgccacattgctttctcagtgctacgtactagcttactagtttgtttaatttttatttt
-ttatttttgcgggtacatagttggtgtatatatttctggggtacatgaaatactttgata
-caggcatgcaatgcgtaataatcacatcatggagaatggggaatccatcccctcaagcat
-ttatcctttgtgttacagacaatccagttaacctctcttagttattataaaatgtacaat
-taaattattggctacagtctgttgtgctatcaaatactaggtcttactctatttttttgt
-accaatttgccatccccactcccctgccacgcctcactaccctttgcagcctctggtaag
-catccttttactgtctgtcctcattagttcagttgtttcgatttttagcacctgcaaata
-agtgagaacatgtaatgtttgtttgtctgtgcctggcttatttcatttaacataatgacc
-tccagttcttccatgttgctgtaaatggcaggattgcattcttttttgtggccgaatagt
-actccattgtatatatgtgccacgttttctttataggatactagtttaatcatgtctttc
-ccaacattgcttattatttATGTTCttttctttattgtgagaaaatagacataacattta
-ccattttaaccagtttttagtatacagttcagtggcattaagtacattcacactgttgtg
-caaccatcaccaccatccacctccagaacttttAGAAATTCCCCCCACTTTCTTTCACTT
-TCTTTTTACTTTTCTTTTCCttttttttttttttttttttttttttttagctaggatttc
-attctgtcacccaggttggagtgcagtgcatcagtcatggctcactgcatccttgacctt
-ctgggctcaagcgatcctcacaacccagcctcccaagcagctgggactacaggtgtgagc
-accacacctggttattttattttttaaaaaaattttttggtagagatgaggtctcactgt
-atttctcaggctggtctgaaactcttggcctcaaggaatcctcctgccttgactgacctc
-ccaaagtgctgggattacaagtgtaagccaccacacctggccTAAAATCCACTCTTTGAA
-TGGAGTTTTTCAACACTATGAGGATTACATGAAGAAAAGAGCCTGGGGCTGGGTTGGAGT
-TTCTGGGCTGGGGGCTTTCTGGAGGGTATTTAGTGGTCAAGGGTCATATGTCAGGTGTTC
-TGAATCCTGAGCAGCAAGGACATGGTGTGTTGGCAGCTCCTGACCCCTGAGGATTACCAG
-CGATTTCTAGACCTGGGCATCTCCATTGCTGAAAACCGCAGTGCCTTCAGCTACCATTGC
-AAGACCCCAGATTGCAAGGGATGGTGCTTCTTTGAGGATGATGTCAATGAGTTCACCTGC
-CCTGTGTGTTTCCACGTCAACTGCCTGCTCTGCAAGGTGGGGCCTGCAGGGACTCCCCCC
-ACCTAGTCACTGTCATCTTGCCTGGAGCTCACCACACTGCAGTGCGTGTTCTCCTGGGAA
-GGGAGCTGTGACACTGGCCTGCTGGTCATGACTTAGAGCTACATGTCAGTGGGAGAGTGT
-GGCTTGAGCCTGAACTGagccctggccccacagacggagtcccagccccagccccagatg
-gagcctcaaacctaggcagccctggttcacaatggagccccgaccctgggccagtctgac
-cccagtcacagactgaatcccagtcccacattgagccctgatcccatccAAGTCCATAGA
-CTTGGCCTCTGACCAAACCTGACCCTGCACTTGTCACTTAAGGTGGTCCCATATTCAGCT
-CAGACCCTGAACCGAGCTCTGACCCTGGCTTCTGACTGAATCTGTGACAGACTAAGGCCT
-GACCCTGGCCCTATACCACGTCTCCACCCGTGTCCTCAACTGAGTGCTGACCCCAAACCT
-AGACAGCCCTACCTGATCCTTCCCCCAGGCCTGTCCCCGCCGCTTCATCTCAAAAGTTGA
-AGGTGAGGAGCCGGTAAACAGGTCTGGAGCCTGGTCTCAGACTCAGCCTGAGCAAGCTCA
-GTCTGGGGTCATTGGGCCTGTAACCCCGGGCAGGCCCTTGTTAGGGATGCAGGGTCTCAC
-CCTAGGGGTATAAGGGATTTCTGTGCCCATCAGAACTTaaataagctgggtgtggcagca
-catgtcagtggtcccagctactcaggaggctgaggtaTATTTTGCTGTTAGCATAtgtga
-tgaccttgacttcacctccctggcgccaatatcctcttctgtaaaatgGCTTATGCATTA
-CAAAGTGAGGTCCTGCCAGTGACTACACCTAGAGGCATTAAGTGCCTTTGTGGACTCCTG
-CCCTGCACCTCACCTCTCCCAGCTTCTTAACCCCCTGAGGAACCTTCTTACCTTGAGTCC
-CTCACCCGCTACAGGCCATCCATGAGCAGATGAACTGCAAGGAGTATCAGGAGGACCTGG
-CCCTGCGGGCTCAGAACGATGTGGCTGCCCGGCAGACGACAGAGATGCTGAAGGTGAGGC
-TGGGACAGGGCCGAGGCCTAGGGATTTTAAGTTCTGGGATCCAGGTGGGGGCTGGGGGCT
-TCCCAGTAAGGGCTGTGCTCACACATCCCTGGAGGCTCTGACCTCCCTTCTGGCTGTCAC
-TCCCATCCGGAGGTGGGACTTAGGCCGAATGGTCATGTCAGGAAGAGCGTCTGGGTGGAG
-GGTGGAGACCACAGGAATGAAGAGGGGGTTGCTGGATGGAGCCTGGCCTGGCAGAGCCAC
-ACAGGAGAGACTCCACAGCTCTAGAGGGTCACCACCTTCTCCCTGCCATGGGGAGGGGCC
-AGGCTGGGTGACTGCCCCAGCCCCGCCCCAGGGCCAGCACCTGCCCCACTCCAGGTGATG
-CTGCAGCAGGGCGAGGCCATGCGCTGCCCCCAGTGCCAGATCGTGGTACAGAAGAAGGAC
-GGCTGCGACTGGATCCGCTGCACCGTCTGCCACACCGAGATCTGCTGGGTCACCAAGGGC
-CCACGCTGGGGCCCTGGGGTGAGTCTTTGCTCGTGGTGGTGTGGAGAGGGTGCCCTTGTG
-GGCTTTGCCTTAGAGGagggctgggaaaactacagcccatgggccatatccaacccagca
-cctgaatttgtacagctcccgaggtaagaatttttttttttttttttgaaacggagtttc
-actcttgttgcccaggctggagtgcaatagcacaatctcagctcactgcaacctctgcct
-tccgggttcaagcaattctcctgcctcagcctcccaagtagctgggattacaggcatgcg
-ccaccacgcccggctagttttgtatttttaggagagacggggtttctccatgttggtcag
-actggtctcaaattcccgaccgcaggtgatccacctgcctcggcctcccaaagtgctagg
-attacaggcgtgagccaccgggccgcaagaatgttctttacatctttaaatggttgaaaa
-aataccagaagatgactattttgtgacgtgaaaattacatgaaatccacgtttcagtgtc
-cgtaggtaaagtgctttggagcacagccgtgttcattcattcacatgttggctgtggttg
-cttttacactacagaggcagaggccgtatggctgcccggcccaaaatgactggccctttg
-cagaaaaggtttgcccactcctgCCCtagaggacagcaagtaaaggttcgatctggagtc
-agaggtggattggcccctggctctggcacatactgactgtgtgattaggctgcctgccac
-tcacctctgtcagccccatttcctctgtgaaatggagatgatagctgggcttatctcagg
-cttgttgtcagaatcaagtggaaaaattgcaagagaagtgcttagagagcctgtcacttg
-gtgagcacccttgcagatggtagctgtcgttattAGGGGTGTGCTCTGGAATTGGGGGCC
-TGTTGCTACGTTCAGGTAGACTTTCAGACAGGTGGAGGCAGAGGAAACTGCCCTCTCGCA
-TGCTGACATGTCTAGAATATGCAGAGTGGTCAGATCCTCTCCCTGGCCTGTTCCCGGATC
-TAGGCGTGGGTAGACTGAGTGCTGTGGGAGCCCAGAAAAGGCCTCAGTGACTCTCCATCA
-GGTAGCTGAGGCTGACCAGGCCATTCTTGCAGGAGGACCTGCAGAGGCAAAGGCCCGGGG
-TGGGAGAGCGCTCGGCTGTGGGGGCAGTCTCTGCACTGCGCTGACATTCTCTTCTCTTCC
-TCCCATCCTCTAGGGCCCAGGAGACACCAGCGGGGGCTGCCGCTGCAGGGTAAATGGGAT
-TCCTTGCCACCCAAGCTGTCAGAACTGCCACTGAGCTAAAGATGGTGGGGCCACATGCTG
-ACCCAGCCCCACATCCACATTCTGTTAGAATGTAGCTCAGGGAGCTTCGTGGACGGCCTT
-GCTTGCTGTAGCGTTGTAGGGGCCCTGCCTGCACTGCGGTTGTCCACGGTCACATCTGCC
-CCAGTGCCTTTGTCCTTCCCTTGGGGCTTGCCGGCCAGACTTCTCTCCCCTGCGGCTCCC
-ACCTCTGCCTGACCCCAGCCTTAAACATAGCCCCTGGCCAGAGGCCTTGCTGGGTGGAGC
-CTCTGTGTGACTCCATACTCCTCCCACCACAACACTCATCTGTCAAACACCAAGCACTCT
-CAGCCTCCCCGCCTTCAGCTGTCAGCTTTCTGGGGCTAACTTCTCTGCCTTTGTGGTTGG
-AGGCCTGAGGCCTCTTGGAACTCTTGCTAACCTGTTCAGAGCCAGGAAGGAGACTGCACA
-GTTTTGAAAGCACAGCCCGTCAGGTCCGGCTCTGCGTCTCCCTCTCTGCAGCCTGTGTAA
-GCTATTATAATTAAAATGGTTTTCCGGGAAGGGATGAGTGTGATGTCCTTGAGAGGAAAT
-GAATGTCCTGGCCTGGGACTCTACACACAGGCAGGATCCTGAGGTCTCTGGGAACTGCAT
-CAGAAAGTTGACTTGTCAGTCCATCTGTGGTAGAATGAGGCTGTGACTGAGCACTGGGAC
-CTTTCTACCAGATGTGGACCCCATGCCCAGCCTCAGGGGCAAGGATGCTCTTGGGTCACC
-GTCAGCCAGGACAGGTGGAGTGTGCAGTGTGTCAAGTCTGCAGAGAAGGATGGGCTTAGG
-GGCGGGAGGGGAAGTCTTGCCACTCCTGCTCCCTTTTGACCTCTCAGCAGGCATCTAGGG
-TTGGCAGGTAGATAGTTCAAGAAGGAACGAAGCTGCTGCAGTTGAGGGGTGGGGTTGTCC
-ATCCTATTTTCTCGTCTCAAGCAAGATGGCACAGTATCGATTCAGCAGTATTTACTAGAA
-CCCACTCTGTGCTGGTCGGAGGTTACTAAGACAGGGTCCTGGGATGTTCATTCTCTAAGT
-CTTTCCTCCGCTCTGTGACCCACCCTCCTTCCCCTTTTGAGATCTGGTATTTGATGCCCA
-ACACATTGTCCACGCTGTGACGTGACCATCATCATAGCAGGCAGAGGGCGCCTCTGCTGC
-TGAAGGCCTGTGATTTTGTGGGGAAGGGCCTGTTCTAGCAACTGGAAAGGCACTGCCACC
-TGCCGTTGGATGCCAGGACTCAAGAGCTGGCCCCAGTCACTGTGCGCAGAGCTGTCTGAG
-AATGTGTGAGTGGACTGGGTCCTTCGGCACTGCCTGCATTGGCTCAGGGCAGTCAACCGT
-CGCAGAGGATGAGGGGCACACTCAGGCAGCCTCCCCGGCCCTGGAGGCAGAAAGGCCCAG
-GCAGAACCACTGACTGGGAGGAAACAGAAAAAGCAGAGGAGAGCCAGGCTGCAGGCGTGT
-GGATGGGACCAGCTCAGGCAGACGCTGTCTCATACCCACTCTCCCCTCTCTTGCCAGGGC
-CTGGCCTGGTGTCTCTCAGGAGCCTGGGCATGAGACAAAAGCAGAGATTGTTCTCTTGTG
-GTACCACAGGCTGTAACCAgtccacccagtgttgttttagaaatttaaatcggttgccca
-tctttttaaattggcaacatcgtttaccacattaaaatctagatgccctgcttctcttga
-aaatgtcaaagcttggtaatgccaggtcctcacttctacctggggggaatggagtcacag
-agatgtcaaatctcttcatggggtgtacaccctccagtttgccacagtcctcaccACCCC
-AGGACTCACGCCGAGGCCTTTCCAGTGCCCTTGCACCATCCTTTTTCTCGTAAGAGGAAG
-ATGAAGTGGGGCTCTACGCGCGGCGTATCACAGGTGAGGGCGAGACCAGCAGAGAGGGCT
-GTGCTGGCTGTGGCTTTGCTCGGCCTGCCCCATCCATGCTGCAGTGGTGCGGAGGAGCAG
-GGAGCTGTGTAGGGCCAACCCCGGTTCCTGCCTCAGCTCCACCCGCCTTGCACCTGCAAG
-TGAAAGGTCTTAAGACGAGCAGGCCCAGGGCACCCTCTACTGCAGGGTCAGGTGGAGGTG
-CCTCCACCTCCCAAGGCTCACCCATGCCAGGGGCCCAGAACTTGAGAGGCCAGCACCAAC
-TCTCCAGGGCCGAACGAAAACCAAACCCCAGGGCTTTGGACTCAAACCATCGAGAGGAAG
-CAGCAAGAGGTCCCAAAGGTACTTGAGTGACACAATGATCATCATTCTCTCCTCAGGGGC
-AGGACAGGGGCAGGGGAAGGTGAGTGGAAGCCCATTGCTCAGATAAAGAGCAGCTGCCAC
-GGAGGGTAGCCCGTCGGCCTATGCCGGCGCTCACTGGTGTCTTCCTCTAGTGCTTGGGGC
-TGGCATGGAATCTGCTCAAATGCAGGCAGCTGAAGGTGAGCCCGCAGCCTGGTGATCCCA
-AGTGCCAACCATGAGGAAGTCTGGAGAAAAGACCAGGGAGCAGGGGCCCTCGTGAGGAGC
-AGGAATTGGCAGCAGGGGCCACCAGCAGAACACCAGAGGGGACAGTGGCAGGGGGAGGAA
-GATACAGCCAGGCTGGGTCTCAGCCCCAGCTGAGGGTCTCACCTCTTAGCTGGTGAAGGC
-TCCGGCCTGTTCCTGCTTTCGGTCACCACTTCATCCCTGGGTGATCGTGGGCCCGGTGCA
-GGGCTGGCTACAAGTGTTTGTTGATTGGTAACTGCTCATGAAAATGGCAACAGCACTAGC
-ACAGCTTCACAAATAGAAACACATTTCACCAACACCCTTGCAGGAAGCCCTCCAGGAGGG
-CCAAGACCATCCCTGCTTTACTGTTATGGACGTGAGCCTCCGAGAGGCAGTGACTTAGAT
-GCTCACCCAGCCAGGAAGGAAGGAACACACTCGACCCTCAGTCTAAGACCCCATCAGGCC
-ACTAATAATTCTCCCTCCAAACCCAGCTCAGGTCAAGGCCTATCTTCACCCCCAAATCAT
-CCCTAAGGCAGCCTCAACTCTCCACAGCACTACAGCCATCCTGCCCGGCCCCAGTGCTCC
-ACAGACCCTAAACCCGAGCCCTCCCGGGCTTTGTTGGCCCCAAACCACCTACACTTGTTA
-CGTGTTATTTTTACACTGGCGTTTCCCCTCAGCCTTGCATACTGTGTGGTGTTGTCTGAC
-ACCACTTTTCCAGCTCtctgacaccaactggggctagtgtcaggttccacagattaaagg
-gctcagtcccacacttccgatggagtcacagatggggtgcccaggctacccacacttcct
-gggctacccacacttcctgggctacccacacttcctggccaactacacattcaggggttc
-ccatgactccaccccctcaggttcaataatttgcctgagtgactcagaactgaagatcac
-cctgccctgacgcttcctggtgtggtgtcctcaaggatgcagtgtgggcaggaacagcca
-cgcttgagatgaacagggttagggatgggagCGACTGGCAGCCACTGCAATCTCAAGTTT
-TGGGGttttttttgttttttttttgagacggagttttgctctgttgcccaggctggagtg
-caggggtgcagtcttggctcactgcaacctccgcctcccaagttcaagtaattctcctgc
-ctcagcctcccgagtagctgggattacaggcacccgccatcatgcccggctaatttttgt
-attttagtagagacggggtttcaccatgttggccaggctggtctcgaactcctgacctca
-ggtgatccacctgcctcggcctcccaaagtgctggaattataggcgtgagccaccgcgcc
-cagccCTGAATCTCAAGTTTGTAAAGTGCTCCACCTCTGTCACTCCAACTCCCAGGAGTC
-ACTGCTtgggattgaaagtttccgccctcgaatcacctggtctttctggtgcaggagcaa
-ccccgaggcaatctaggggccctgctctaacgaattcattagcatgaactcaaatgggct
-ggaaaggggttatgaataacaaaagacactcaccactcacgaaattccaagggttgtagg
-agacccgtgttaggaacccaggagaaagaccaaatatttcttagtatcccacaCATACCC
-TTCCTTTAGTTCTCCAATTATCATAATTCTATTCATCCTTCACATTCCACCCTCACCTTC
-TATGAAAGTGCCCTGAATTTGCTGCAGGATAGATTGCTCCTGGAGTGCAGCTCTGGTGTG
-AGCTTTCAGAGGCAGCGCAGTGCCCTGGGCAGCCTGCGTAATCCACGACTGTCAGATCAA
-AGGGCAGTGTGACCCTGGCCCACAGTGGCAGGAGCTGAGTGCCACTGGCTTGGCCCCGGG
-AACCTGCGCATCTCCCCTCTGAGCCAAGGAAACAAACAACACAGACAACAGTGTCTCCCC
-GATGGCCCCATCCCCAGGGTGGAGGCCCTGCACCGGGCACTGCTCTGCGCGCGCGCTCCC
-CAGCAGCCAGCAGTGTCTGGAGGATACTGGAAAGCTTGGCAAGAGTAGGCTGAGCAGCTC
-CTCTGTGGACAGAAAGGGCATGTGGAGAAGCGGCACATCAAGCTCTGGTTAGGATCCAAA
-ACCAAATGCCAGCTCCTAGGATCCCCAGACCAGGGTGTGAAACACACCAAGAGCACCCCA
-GACCCGCACCAGTTGTGTCGACTGTGACAGTACCCAGAGTGGAAAAAACATGAActcaaa
-ctgtgttttcctccactgctctctcaataccaacagacatctgtggccaaatgtgttggg
-gatttctcccctgacaccaagcaagcaagcaattctgcagcctacatcagctgggtatcc
-tccaattcaattcagtgctcaccctacctatagtatctggaaatggaatccacaggttca
-aggctctgtcccacaagaccgccgcctctgccacaacattggactgaccaccctctttgg
-gtggcatgatttgccaagagtggctcacagaactcagggaaacttatgtttaccagttta
-ttacaaacattattagaaaaggatacaaataagtaaacagccagatgaagatacacacag
-ggtgaggtctggacgggtcctgggcaaatgctggagcttctgtccccatggagtgggggt
-gcgccaccctcttggcacatggacaagttctcgttcccctccctccacatgttcagctct
-tcagaagctcccgtgttcctgggccttttatggagacgtcattggataggcatggctgaa
-gcatggcagctgtgttgagatgaaactggacaaaaagcataaggtctaaacccagcaagg
-cctgtctgtccagatgcttcttggcctctctgtgcagcgttcctccttccgggtatgggg
-cagcaccctctctggaatgagggtcttatgagctacagtcagattaaagtctggtgttga
-gcaagtgaaatggggcaggagaaggtcacagacagagattccgttttctgaggcctgcag
-tgtcccaacattataacaaagggttatgggagtgatgaaccaggaactgtggacaaaaac
-atctacacacgtataaaatatcacaGTGCCCTGGGCTGCAGCTGGAGTGTGTGGGTCATA
-ATtcttgcagatgaaacagaaacagcaagactgtaggtactgcccaaggtctcctagcca
-gtcaaggctgaccaggagtcCACAGACCATGGCACAGTTCTGGGCCTGACATGGAAGGTG
-GGAGCATCCAGATCAGAGACCATTCCCACTGAGCGGTGGCCAAGGACGGAATGACAGAAG
-AGGTGATTAGTAACCACATATGGCTGTTTATTTGATACAGGGCTCTGTACAAAATATTTA
-CACATATTCTTTACAGAATAAGTAAACCACCTGAAGGTAATTAGATAATGCTTTCTTCTC
-AATGACAGGGAGAATCCTGGTGTCAGCAAAGTTAGAAAACAGATAAACATTCTCCTTCCG
-AGGCCACAACTCAAGCAAATGCCACTTGCTTCCTAGGATCTGAAAAGCTGTGGCCTTGGG
-ACCCTGGTCACATGCACCTCCTTTCCTCAACCCCATCAATTCCTTCAGTATTTACAAACA
-GGCTTGAGTACTTGTGGAAGGAGGGGCAGCTGGTGCCGCCCACTGAGAGGATGACAAGAG
-GGCCAGCTTGCTTTGGGAGAGCACTGGGAATATCTGCCGCATCATCACCTCTGGAAGAAT
-TTCCTTTGCCCTGATGAATACACCACTGTCTAAATTAATCCATCGACATCACACTTACCC
-CACAGTGGGGCTCCTGAGCCATGGACAATGATCCATCCCTTTGAGCTTTTTTTGGTTTTA
-AAGTGCGTAGTGGTggctgggcgtggtggctcacacctgtaatcccagcactttgggagg
-acgagacgggcagatcacctgaggtcaggagttcgagaccagcctggccaacgtggcgaa
-accccatctctactaaaaatacaaaaattagtcaggcgtggtagcaggtgcctgtagtcc
-cagctactcgggaggctgaggcagcgagaattgcctgaacttgggaggcggaggttgcag
-tgagctgagactgcaccactgcactccagcctgggcaacagagtgagactccatctcaga
-aaaaagaaaataataataaaataaaTAAAAATAAAGTGCTTAGTGTAACTCAGCGGACAG
-GGCTCCCAGCTGCTCTGGCACGTGGGACACCCTCCACCCTGCACACAACAGGCATGCAAA
-GAGGACTGGATATGGTGGGGTAGAGTGCTTCTGGTGTGTTCACTTTAAGAAAACATCTGC
-CAAGAGAGAAGAGTGCCCAGGAAAGACCAGGAAAATACAAGTACATGGCTGCTTCATACC
-ATATACCCCAATTCTTTAAAGCAGCAAAAGGCACTTTTTTTTTCAGGCCAGAGTGAATCT
-AAAACAAACCTGGCTTTGCTTACAGGGAAGCTGTCCCAGAAGGACTGAGTGATGCCTCTT
-GTTCCCTAAGGTCTGGAGAGTCTTTGCAAGTTTCCAACGACATTTCCAACCAGGTGGGAG
-AGACCAGCAGTTGACGAGTCAAGTCAGACCCAAAAAACGACGCCAAGGTAGTGAGTGGGT
-GCCTATTTGGGAGTAGGATGATTTGAGGAAAACAGGAAGAAAAACCGGTCAGAAAGTGGC
-ACTTTGGAAGTGGAAAGCTGTTTGCAAATAGCAACTCTGGCTAAAGCGAAAATGTTAATC
-AAGTAGAAAGTAAAATTCAGGATCTTAGAAGCTCATCCTTCTGATGAGAACTATTTTTTT
-TTCCGTGAAGGAACTATTATTACTTTAAAAGTGAGGGTAATTTACATATGGGGTGTATAT
-ATTCTAAAAATAGTAATAAAAGTACCTTTTATAAGCAATGTTGTGTGGCTTGTAGAAGAA
-AGCAGGGAGGAAAAAAAGGCAGGCAAAACTAGTCTAGGTCTAGGCCCTAAAAATGAGCTT
-CCTTCCCACTTGACTGGAAACGCCCATGTGATTTCTAGGCTGAAAATAGGTAGGATTTAA
-CGAGTAACCTAGTTCCCTTCTGTCTCTGATTTCTGATCAGCTGATGGAGCTGCTAGTAAG
-AGGGGCCGATCATGCTCCCAGACGAGTCCTTTGGCCTCTTGCTCTCCATCCCAAGCCTGA
-CTCCTTCAGCAGCAGCCCCCTCCTTCTGTGTCCATCTGATGCAGGCAAGCAGGAGCAGTA
-AGAGGGCATCCCATGTTCCAGTTCACCTTCTATGGGGTGACTAGGAGGTTCCCGGTAACT
-AGGGCAGCCCAGGCCCAGCAGGTTGCAAAAGCAGCTGCAAGCTTCAGAAACCCACTTCCT
-CCAACACCAGGGAGGTGGCAGAGAGCCCATCCAAAAGCCCACTGGGAGAGGCATAAGATT
-CTGTGCCAGGCCCCCAGGTCCCCTCTGTGTCAGGTAGGCTCTGCTACTGGCCTCTGAAGT
-AAAGGCAAACACAAACGGGCAGGGCAGGGTGGCAGGAATAAAAAACTCTGGACAGAAACC
-CTTTTAATAAAGGAAATTCCACCCCTCCCAATCCTTCCATGGAAGGGTGAGACCTTAATG
-TGATGTAAGAGGAAGGTCTTCTCTGGCTTTCAGGGAAACAGCTGCAGCTGAAACTTAGGG
-GCCCATTCCAGGGCACTTTTCACCACAGCCAGTGCAGCCGCTCCAAGTGCCACTGTCAGC
-CCCATCACTGCCAATTTCACAAAGCGGTTGGTCCTTGGCTTGGTCAGGACATCTTTTGTT
-CGATCTTCAGGCCGCAGAAGTCCCCGAAACCGCTGCCGCAGCACCATATCAGGCCTCTGC
-TGGGCTGATGCCAGCTCAAAGTCTTTGAAAGTAGAGGCTGCCGTCCTGCAGGGGAAAGAG
-ACGGAAGGAAGGAAGTGGTATGAAAGAGGAGGAGGAAAGCAAAACTACACCACATAGGCT
-GCGGGCAGAGCCTTTCATTGCTGGGAAAGCTCTTTATGATAAAGACCCATATGTCTACAG
-TGGGGATTCCACTGGCCTAAGCTCAGATCTCTGGAAACATGCCCCAACCCTATCCCACCA
-GACACAAACCTTCCCTCGCTTCTGCTCATTTACAGCCACCCCCATTCAACCAGTGTCCCA
-GCCTTGCTCACCTCTCAGCTTGCTGTTGGGCAGCGGCCTCCCGAGCAAGTTCGGATGGGG
-GAAACTGAACAAAAAGGTCTCCTGCTCTGCTGATCAGTGTCTCATAGGGCAAGTCCTGAG
-GGATCTGGGACAACAGGTGGTGGACCGAGGCCATGTCACAGTCACAGTCCAGGACTTCCT
-GCTCGCGATACAACACAATCTGTGGGGAGGTAGTAAAGCCTTGCAGTCAGAGGCCAGACA
-CACAGGGCCTGGGCCACCTGCACTCCATTATCCTTGCAGATGAATTTAAACTGGTAACAG
-ACAGGACTCAGCCCAAATGTTGAGCAAACTCTTGTATCCATCAAGGAAGTAATAACATAT
-ATACGCTCAGTGCTACTCCTACTCTCTGGCCCTTCCTGCAAACTTCCACCACATGACATG
-AAAGGCTGACCAGTTACAATCTAAGTCCTTCGGGCATGCTGGGCTGCTCAGGTGTCCCTT
-TAAGTCTTGAAAGAAATGAAGGAGATTCTTTTAGGAGAAAGTAGGAGAATTATTGGGAGA
-TTCCTGGAGCTCCAGCATAGAAGAAATGGTTCAAAACAGTAGAAAGAACAGTCTTGCTCC
-CTTTAAGCATCTTCCTTCTGACTGTTGGTCCACAAATCCACAGATGCTCAAGGGACCAGT
-GGTCATTGAAGGACTTCCCTGAATTCCCATCTCCACCCCATCCCTCAAGACCCTTCTACT
-AACTGAAGCCCCTACCCTCCACCGCAAGCCGCCTCCCTTGTCTGTCATGACACCAGATCT
-CTTCTTTTCTTAAATCTGGAGTTGACAGCTTACGCTACTATTTCCCTAATTGTGTTCATC
-AGCTGAACATATATTCCAGACAATGTCAACAGGAACCCTGACAattcacaatgcagatta
-gcattttaaaggttcagaagtgtcatgcagcaaaaaaaatctgattttgtttatacccag
-catttcccaacttactATTTTTTGTGTGTGACACCCCCATTAATACTGCACAGAATGGTG
-TCCAGGGACACCAGCCTGGGAAGTGCTGTCTTTTGCATCTTTCCATAATCCCCAGGTTTC
-CCTTCAGGGAAAATGACCACAGTGGGATGGGTGATGGTGAACCCAGCTGCTGGCTCGTGG
-CCTGTACCTACCACGGCTGCAAAGTAAATCGGCATCAGTGGGTGGCAGGCCAGGAAGAAG
-TCATATAACCGCACGACGTGCCTGAAGTCAGACAGGACATGCCCAAACCAGGTGATGAGC
-CAGCTGAGGGCAAAGATGGTCCCTACCTCAGCACTAGAAACAAAGGAAAGGCAGGTGTCA
-GGTCCTGTGGGCCATCCCTTCCCTCTCTCTGGGCCTTATAGCGCTGGTGAGAAGGAAGCA
-TTTAGGAATAAGATTTCTGGAAAATTCAGTTACCTAGGAATTCAGCATCTTCTCCTTACA
-AAATATTTAATACAAAGTCTTTAAGGTGTACCACAACACTAACACCACAACAGGGTCCTG
-GCTGCTTTATCTCACTGGGTGCTCGCCTACTGGCCAACAAATGTCAACTACAGGAACGAG
-AAGCAGTTGTTTTCAGAGAACTACGCCATGATTCTCCTTCTGACTAAGTCTTACCCTTCT
-GGGGGGCACAGGTACATATTCCCAAGCCTGAAAACATGACTGCATTAATTTTTCTGTTAA
-CATGAGACAACTGAAATATCTTAAGATGTAGCTgccagacacggtgagtcacgcctataa
-tctcagcactttgggaggccaaagcgggcggatcacctgacatcgggagctcgagaccag
-cctgaccaacatggagaaaccctgtctctactaaaaatacaaaattagccgagcgtggtg
-gcgcatgcctgtaatcccagctacttgaggctgaggcagaagaatcgcttgaacccggaa
-gatagaggttgcagtgagccaagatcatgccattgcactccagcctgggcaacaagagaa
-aatactccatctcaaaaaaaaagaaGGCATAGCCATTACCttttaaaaaattttaaaaaa
-aGAGGCATTGGCCAAGAACACATTTCCAACTAAACAGAGAAGAAACAAAACATCACATGG
-GATTTGCAAAAAAATATTTCTTCTCTTTGGTACTTGGGAAATAAAACAACCCATTGTTGG
-CCTTCCCCTTCTCGCCACTGGATCCCACAGGACTTTGTGTTTCTCTTGTGGCAATAACCT
-CAACATCTTACCTTGGCATACATACCTTATCCACCTCTCCCCACTAGATGTAAACTCAAG
-GGATGGGCTATGTCCCCCAAAGAGCACAGTCCCCAAAAATGCTCCAAGAACTGAATTACC
-CAGATTGCTGGTGACTGGAACAACTGGGGAGAACTTAACAAATCCACCCAAGACAATGAG
-GAAACTGCGCTCGGCTTGTGAGGAGTGTTTCAGGTGTGGGGGGGTGTGGGCGTGTGTATG
-CATGCACACAGAAATGCAGACACATATGTACCTCTGCATGAAGTCATGGAGCTCTGGATT
-CACCTGGTCAATGATGGGCATCAGATAGTTTAATATATGCTTGGTGTTGTCCATTGTTGG
-ATCCATAAAATCCCTGGAGGGAGACAATTCAATAAGCCTGGTTACCAAACACTTAGATCA
-GGGCTCAGGGTGGCGAGGGCTCAAACTCCTAAAAAAGCTGACCAGAAAACAGGCCAGTGA
-GTTATCCCCAGGACGGCTGAGGAGTGATGCCCGTCGTCTTGTGTTCCTCTCTACTGGTAC
-CTGAGGTGGTGGGTAGATAATTTTTCTACCAGGGATGTTGCCAGCCTCTCGCCTACCACC
-AGCAGAAATGTGACCACAATGTCATGGTAGCCCTGGTAGTAGTGCAGCTGAGGGTTGCGC
-TCCAAGATGAGGAGGATGATGTCAATCAGTTCTTCCTGGAGCCCTTCTCTCTGTTCCTCT
-GGCATGCCTGGGGACAGGAACAGAGATGCCTTTGAACATACCAAGCAGCCTAGTTAACAA
-GGAGGTCGAAGAAGGCCAGCAATGAATTTTCAGAGAAAAAAGGAAAATGAATTACAAATA
-ATTTGGCAACGCATATCAAGATCCACTGTTGATACCACCTGGCATACAGGAAAAGGCAGC
-TGCtagctttccagtaggggaagctgcagatgccaccctaaccaagttgctgcagttaat
-actgctgggacacagtatttaactgcagaatttcaactatgggagccacagacggcctct
-gcctcccgaggtgatgcactgacagagctcagcatcatgtctgcaggatttctatcaaca
-gcgcacagacctcaatctcacaatgaagaaatacccaatatccccaaaggaagagaaatt
-taactctcatacaatacaaaggaactgttccagattaaaaatggctaaagatataggaca
-acagcatgagaaacgcataaatctatatttccttttccagtgaagcacattactcgaaga
-aatggtgaaatgtgaataaaatctgtggattaattagttaactatttttcagtgttgtta
-ctgatgttgctcagtgtactgtgattacatgagagccttatatttaggaaatatgtcctg
-aaacacttggggtaaaaagatgtcatgtttgcaacttactcttaaatagttcagagaaaa
-agtgtatgtctatgtgtaaagcgaaggaaagacagaaagcagctaaaaaagcaaatgtag
-gccaggcgcggtggctcacgcctgtaatcccagcactttgggaggcagaggcaggtggat
-cacgaggtcaggagatcgagaccatcctggctaatatggtgaaaaaccccgtctctaata
-aaaaatacaaaaaattagctgggcgtggtggcaggcgcctgtagtcccagctacttggga
-ggctgaggcaggagaatggcatgaacccaggaaccagagcttgcagtgagctgagatcgt
-gccactgcactgcagcccgggcgagagagcaagactccgtctccaagaaaaaaaaagcaa
-atgtagtaaaatgtgaaaacaaaaggaaatctgggtaaaaggtatctggggaattctttg
-tcctatttttacaacctttcagtaagtatgaaattatataaaaataaaaaAATTTTAAAG
-TTACACGGTCCCCTTTAAACCAAAGCAAACGTTACAGGAAAAACTGATCCTCTTGATCCA
-AAGATGTATTATAGCTGGAAATAGGGAAGCCTGTCTCAGGAGTTCTTTCAGGGAGTTCTT
-TTACTGCTGGAGCTAGTGCTGCCAGCAGTAAAAATGCCTTGGCCTTATGAGCCAGGTTAG
-AAGAATGGCACATGCACAGCTTCTCCACACCATTAGCTTTCAGTTACAAACACATACTCA
-GAGAGAGAAAGCAGCTAATGTAAGGGCCCAAACTAAACCGGACAAAGGATTGCAGGTAAG
-AGCAAAACTCACCTCTTGCCCATATTTACCCCACCCCTTCTCAAATAAAAAGCATACCCT
-AAAAGATAAATAAGGAAACGAAGCAAACCCAGGGCTGCTGATAGGTGAAGCAGTGAAAGG
-AGTGAGAGTAAAAATTAAACCCTGTGTGAATTTTCAGCAGAAAAGCAGTGAGCCAAGCCC
-AGAAGACCATGAATGGAAAAAGAATATGAAGCCACACTGTAAGTTCAGCCTACAGAAAGC
-GTATCACAGATATTACATCAATGGAAGAGGAATAAAGGGTTCAGAGGGAAAACAGGTTAC
-CTAGGAAAAAATGGGggtggctcttgcctgtaatcccagcactttgggaggctgaggtac
-gtgcatcacctgaggtcaggagttcgagagcagcctggccaacatggtgaaaccccatct
-ctattaaaaacacacacacacaaaattagctgggcgtggtggcgggcacctgtaatccca
-gctacttgggaggctgaggcaggagaactgcctgaacctgggaggcggaggttgtagtga
-gctgagacagtgccattgcactccagcctgcaacaagagtgaaactctgtctttaaaaaa
-aaaaaaaaaaGGGAGGCATCTGTCCTATATGATCTCATCCAAACCAGCAGGCTAGGAAAA
-GGGAATGGACCGTGGGCATGTGCTTTTATCAAAACCACGCTGGCAGGCTACTGCTACCTG
-GGTATTGCAAGAATCTGTCCAGGGAGCAAGAATGCCAGCAGGAAAGCAGCCCCTTCAACA
-ACAAAAGCCAGGCCAGAGCACAGTGCAGAAGAGGGAGGCAGCCAGCTTAGAGGCTCCTGT
-TCCCTTTAGCAATTCTCCTCTCTTCATGACCTAAAGGTGGAGTTGCCAGAGGAAGAAAAA
-TAGGTCATCCATGTGAGGTTTGTTGCCCAGTTCCCTTCACTGTGAAAATTGAGACAACGG
-TCCTTCTTTTCTTTCTTCCTGAAATAAAGAGGTAATTTTAGGAATACATTCTTTtttgtt
-tgtttgttttgtttttatttatttatttttttatctattGCTGCTTAATTTGTTAATTAA
-GGAATATACTCTTACACAAACAGGGAATGGCCTCTCTTCCCTCTAAGGAATCTTACATAT
-GTATGCGCAAGGTACCATCGTTTTTAAACCTAATTAAGATATTACTCATTCTTGTTGGTG
-CCCAATTCCACACCAATCTGCTCTTTAATGCCAGACTGATGGCTCTAACAATCCTTATTA
-ACTCCTTTTTGTGGCTTCAAGGAAAAACAAAAACCTCTTCTCTCATTCACCACCTCTAGG
-CCAGGAGAAATTATTTTTGGTTCAGGCTTTCACAGTGGGGGTCTGAAAGTGACCAGTCAA
-GAAAAGGATGACTCAGCAAAAGGAGAGCTCTGAAGGTCCCTGAGGCGGCAGGGTCCAGCA
-TATTAGGTCACATGGTATGACCTGGAACAGATACAGTCTTTCCAAATGTGGCAGGACCGG
-GAGAGCTTCTCACCAGGAGGGAACCGCCGCAATGACCGCCGGACGTCCAGCAACACTTGT
-TGGTAGTCCTTGCTCATCTGCCGTAGGTTCTTCCCTATTGAAGGAAAAGGCACGTTATTG
-CAGGAATGCCTGAGAAGCCAGACCAGAAGCAAAACATTCTGGGATGACACAAAAGGCCTA
-GAGGGCACATGTCAGCTTCTCCTGAAGAGGATGATATGACTCAAGATACAACATTTGGCA
-GGGAATCCCTAGTTTGGTTCCAAACATTATGTTTCCTGCAAGTCACAATGACCCTAAGAG
-AAGGGAGCACAGACTGCCCAGGAGACAATACAGCAGGGTGGGAAGGAGAGCAAAGACGTA
-AGGAGGCCAGGCGCCTCGTGCAGAAGGCCACTGTGCATCACTGGGAACTGCTCTGAATTT
-CAAAGTCCACAGCTACAAAATGAGGATATTCCAAGGATCAAATAAAATCATGAATGTGGG
-AACAACAGACCACTGAAAAAAACCCTAACGCCTATAAAGTTGTGGGAGCACTAAGCTGTT
-TAGAAAGGTATATTGAGACTCACATAAAGAACCACCTAACAACTCTTGACCCAGCAATTC
-TAAAACTAAAGAGCTGCAAAGAGGAGACAGTCCTTGTGTTCAGCTGCTAAGTCCAATACA
-GCATGAAAGGAGGCAGTCTCTAGCCATTATACATATAACAAGTGTACATTTCCTCCAACC
-AAACCAAGTGCTGTATAATAAGCGTACATTTCTCTCACAACCCAAATCCAAAGCTAGTAA
-GGCTGGGCAACACTTCCTCACACGTAGGCTTCACGGTATAAAAAGATGAGGGAAGTTTGG
-AACCTGATAGAAGAACATCATCTCAGGATTCAGGGTGTGAACATGGCACTGCCTTAGCCT
-TCCAACAAAAAGCTGACTGCTCTGAAGCAGCCAATTCCAAGGATAATAACAAGTGGCAAC
-TCAACACCTACTGGGTGACATCATGACGCTGTGAACTTTTTGGTGGCAGAAGTCCTGTTT
-CAATCATCTCCAGTACCTGGCAATCATAGCACAACTAATATTTGCCAACTGAAAGAATCC
-TCAGCACTTGGCATTTTGCCATGATGGCAGGAAAGCTACAAGGTGAGTGCACTGAGTGAA
-TGAGCAGCAGAGTGGATTCACTGTTCTACAGGACTTTTACTATTTTGAACTTCATTCCAA
-GGAACTCTTTTCACCACATGGGCCTTGCACATTAGTTAGGTAACTCTTTTCACAGAATTA
-CAGGATTTTAGAACTCCAAAGGATTTCAGTATTTCCCAATAAAAAGAGGGTGttttcttt
-ttttttgagtatctcactctgtcgcccaggctggagtatactggcgcaatctcggctcat
-tgcaacttccgcctcctcggttcaagcgattctcctgcctcagcttccctagtagctgga
-attacaggtgtgtgccaccatactcagctaatttttgtatttttagtagagatggggttt
-caccatgttggccgggctggtctcgaactcctgacctcaagtgattcacctgcctcagcc
-tcccaaaatgctaggattacaggcgtgagccactgtgcccggACAAAAGAGGGTGTTTTT
-GTGTGTGTTTAAttttactttacttttagagattggatcttgccatgttgcccaggctgg
-cctcaaactcctgggctcaagtaatcctgcctcatcctcccaagcagctaagactacagc
-cgtgcaccaccatgtctggctagtttttaaatttttgtagagacagggtttcgcaatgtt
-gcccatgctggcctcaaacttccagtctcaagtgaccctcctgcctcagcctccgaaagt
-gctggaattacaggtgtgagtcacctcgcccagccACAAAATACGCAttttttttttttt
-tttttttttttgagacggagtctcactctgtcacccaggctggaggacagtggtgcaatc
-tctgctcactgcaacctccaccttccaggttcaagcaattctctgctgcagcctcctgcg
-tagctgggattacaggcacctgccaccatacctggctaatgttcgtattttttttttttt
-tttttagtagagatggggtttcaccatcttggccaggctggtcttgaacttctgacctca
-agatccacctgcctcagcctcccaaagtgctgggattacaggcgtgagccaccacacccg
-gccCAAAATATGCATTTTTAAAAAACACTTGCCAAGCAAGTATGCAGAACAAAGCATATG
-CATTTTTAATAAATTCACTTGCCTAGCCAATATTTTAATCCCTAATAAAAAAAGAACTTG
-Cctgggcgtggtagctcatgcctgtaatcccagcactttgggaggccgaagcaggctgat
-cacttgaggtcaggaattcgagaccagcctggtcaacatggcaaaaccccatctctacta
-aaaatacaaaaattagccaggcatggtagcgcatgtctgtaatcccagctactaggaagg
-ctgaggcaggaaaattgcttgaacccagggggcagaggttgcagtgagctgagattgtgc
-caccgcactccagcctgggtgacagagcaagactccgtctcaaaaataaataaaataaaa
-acaagtaaaaaaaGAACTCATTCCACTTTTGAATAAAATTCTACTTATCGGTTTGGCCTT
-ATTTTCAGAGTGGGCCCAAGCATTTCCCAAAACACCCTAGATTTATTCATATACCCTTGG
-TTTGAAAGGACCATAAAAATTAAAGATCCTGGAATTCTTTTCCCCCTGTCTCCTAGATAA
-GCTCCCCTCACAGCCTCCCCCACTCCCCTTACCTGATATAGGAGGTGGGTCATTGGCATT
-GACATTGAGGAGCTTGGGCCACACTTTTCGTCTGATCTCATCAGTCAGGAGCCCTCCTTC
-ACTGATAGCCATGCGTCTAAGGGCAGCCACATCAGTGGGATCACTGTTCAGAGCCTGGTG
-TATCTCTGCCACTTTCTTTTTCCTTTTGGCGTTAAAGTCTGAAGATAAGGATAGGGAAGA
-ATTAGGCGCACATTCAGCACGTGCATATTTTCTGCCTAGGACTCAAGCTCCTTTTTGATA
-TGAGGTACAGGTAAGTATCTCCTCTTAGCTCTAAGACTGCCTGCTGGCATAAAGTCTCAC
-AGCCAGATGCACTATTCATTTCGGGCCCAGTCTACTGGACCTCATGGTGGGAGGCTTGGA
-GAGCCCACTATAAAACAGATTTTAAATCACCGATTTTTAAAAAGATAGTCTCTTTTTATA
-GGTCTGAACCAAAAATCATAGGCACAGACTGGAAATAATTATTAGTTGTTGTTGTTTTTA
-AGAGACAGTGTCggctgggtgtggtggctcatgcctgtaatcccagcactttgggaggcc
-gaggtgggcggatcacaagttcaggaattcgagaccagcctggccaatatggtgaacccc
-cgtctctcctaaaaatacaaaaattagctgggcatcgtggtgctcgcctgtagtcccagc
-tactcaggaggctgaggcagaagaatcacttaaacctgggaggcggaggttgcagtgagc
-cgagatcgtgccactgcactccagccaggatgacagagcgagactccgtcttgaaaaaaa
-aaaaaaaaaagagacattgtctctctaagttgcccaggctggcctcaaactcctaggcaa
-aaccgatcctcccacctcagccttccaaacagctgggactacaggtgcatgccaccatgc
-ctggTCCAGAAATAATTACACGTACttttttttttttttttttttgagacggagtctcgg
-tctgtagcccaggctggagtgcagtggcgcaatctcagctcactgcaacctccgcctccc
-gggtcccggttcaagcaattctgcctcagcctcccaagtagctgggatttcaggcacgca
-ccaccatgcccagctatatttttgtatttttagcagagatagcgttcacaacgttggcca
-gggtggtcatgaactcctgacgtcgtgatcctcctgcctcggtctcccaaagtgctagga
-ttacaggtgtgagccaccacgcccagccTATATGTACttttttttttttttttttgagaa
-ggactcttgctctgtcgccaggctggagtgcagtggcacgatctcggctcactgcaacct
-ctgcctcccgggttcaagtgattctcctgtctcagcctcccaaTACATTaaaaaaaaaaa
-aaaaaaaaaGGTAAGTGAggctgggcacggtggctcatgcctgtaatcccagcactttgg
-gaggccgaagtgggcagataatgaggtcaggagttcgagaccagcctggccaacatggca
-aaacctcatctctactaaaaatacaaaaattagccaggcgtggtggcatgcacctgtaat
-cccagctactcgggaggctgaggcaggagagtcgcttgaaacccaggaggctgaagttgc
-agtgagccaagatcgtgccactgcactccagcctgggcgacaaagtgagactccgtctca
-aaaaaaatgataagtgaaaaaagaaaTGTGttaaaatcagacagatcttggttcaaatcc
-tggctctgccacttatctgatccataatcttggacagatgacttccctgctctgggcctc
-TGGACTGACACCCTCTTGTCAGGATAGTTACCATGGTACACAGTAGATACTTACTAAATA
-TTAGCTCCCCTCCTCACTCTGAAACAACATGTATTTTACAAATCAACCTACAGATATTTA
-ATTAGTACGTAATATGCAAAGCACTAAGGAGATATACTGTGTAAGTAACAAGCAAGGAAT
-TACAACTATAATAAACGCTCAGTAAATTCAGGCATATCTAGCAGTTAGTGTCAATGTTTT
-CATACAAGAATGTCCATTCTTAATTCCCAAACTTCACAGAGCATATACATCTCTTACTGT
-AACAATTTTTTCCTGTTGTTTAAATAGGAAAAATGCATGTCACCAAAACTCGATACTACA
-TTGAAAACATAACCACATGAAAAGGTCTCCTGTTACACGCTACTACAACTGGTAAAAACA
-TTAGAATCACATAGAGAtttttttttttttttgagatggagtctcactgtcgcccaggct
-ggagtgtaatggcgcgatctcagctcactgcaacctccctgtcccaggttcaagtgattt
-tcctgcctcagcctcctgagtagctgggattacaggcatgcaccaccacgctttgctaat
-ttttttttttttttagacagggtttcaccatgttggccaggctggtctcgaactcctgac
-ctcaagtgatccacctgcctcagcctcccaaagtgctgagattacaagcgtgagccacca
-cgcctggccAACACAGAGATGTTTTCAAAACCAGTGTCAAAGGGTACTTGGGTTTCCAGT
-GTGGCTGGTGACACTGCCACCAGACACTGCCACAGAGAGGCTGTGACACTGCATACAAAG
-GAACTGTTTCTTAAAAACCATAGTAAGTAATGTTTTAAGCATCTTACATCCTTATGTGAT
-AGTCTGTTATTCATAGACATTTTGCCATGTTTAAATTACTTTTTAGgactggtccctgag
-tggtgctatttacaactcattgattacaatcagttagatttctttgttccttttccacgc
-ccactgcttcacttgactagccttCAAATAAATAAATAAATAACTTTTTTGGGAAATTGG
-TTGGGAATTTGTGGTTAGTAGCTATCATATCATTTTTCTATGTGAAATAACAGAGTATTG
-CTTTTTGGCCTTTGGCTGAGATCAGGGGAGATAAAGGAGTAAAAGGCTCTGAAAGTTTGC
-ATGCAGAATGTCTGCTTTTAGGGATGGCTTGTGGAAGTTAAATGGATGATGCCTGTATTT
-CAGTTCTTTCTAGTTGCCAGTACCATTGAGAAAATATGTCAAAAACACAAGAAATGTTAC
-ACAAGACAACACCAAACGTCACAAGGCAGTAGACTATAATTGTCAAAAAAGGTGCATGCA
-GACAATAATGGCCAAGAGCTCAAAGAGACTGCAGTGGGTCAGGGCCAAGCTAACCTGAGA
-AGTGTACCTTAAAAAGGAAGAGGAGCAAAACTCTCTTGACATGCTTAATTGTGATGTTTA
-ATGAACATCCTTGCAGTGTAAGACGACCTTTTTAAAATACATTCTTggccggggacggtg
-gctcacgtctgtaatcccagcactttgggaggccaaggcaggcagatcacctgaggtcag
-gagttcgagaccagcctggccaacatggtgaaaccctgtctctactttaaaaatacaaaa
-aactagccgggcatggtggcaggcgcttgtggtcccagctactcaggaggctgaggcagg
-agaatcgcttgaacctgcaaggtggaggttatagtgagccgagatagcgtcactgcactc
-tagcctggacgtcagagcaagactctgtctcaaaagaaaaataaataaataaataaatTC
-TCTCGGCTTCAGACCTACCTATCTTTGGTGTCTCAAGTTAAACCCAAAGCAGCACCCATC
-ACATCTGCCTTTTCTTTACTTTTGTCTCCTATTGCTTCCAGATACCTTCTTCCTTTTCCT
-GCAAAGCCCATTCTGCTGGAGTGGAAAAGTCCAATGCCttgatgccagggtcttgttcag
-tcactcaagatggagtgtagtggcacagtcatggctcactgcagcctcaaccATATATAT
-ATAGTTTAAATAAATCAATAAACCAATAAATTCTCTCTTAATGATGGTTTGAGCCTCACC
-ACTTGATTAGGACAATCAGCATAACCTGTAGAATCTTATTTGGAATTGAATTCTGTATTG
-TAATTTTGTTCCTGTTCATTTTTAAATTTTATTTTTCTTTCACTGTAAAGATGATACTCT
-GCTTTAAATGTTAAAAGTGTACAAGCAAAAggccgggcacagtggttcacacctgtaatc
-ccagcactttgggaggctgaggcaggcagatcacgaggtcaggtgttcgagaccagcctg
-accaacatgaggaaaccccgtctctactaaaaatacaaaagttagcctggcctggtggcg
-cacgcctgtaatcccagctactcatgaggctgaaagaggagaattgcttgaaccccggtg
-gcagaggctggagtgagccaagatcgcacaactgcactccagcctgggcgcgacatagcg
-agactccatctcaaaaacaaacaaacaaaaaaaaGTGTACAAGTTAAGGAagccaggtac
-aatggctcacacctgtaatcccagtgctgtggagggccaaggtgtgagaatcacttgagt
-ccacaaaatcgagaacagcctgggcaacaaagtgagaccctgtctctacaaaaagtacga
-aaagttagccaggcatggtggtcccagctactcaggaggctggggcgagaggatcacttg
-agcccaggagtataaggctgtggtgagctatgatagcaccactgcacttcagcctaggtg
-acagagcaataccctatTATCAAGGCACTGGACTTTTCCACTCCAGCAGAATTCTAAATT
-TTATTTAAACTATGTAGTATATATTAGGTGCAAGGCACCAGAGTTCATGTGAAGTGGAAG
-ATATCACCAGAAGGTAGGGCAGATTTTAGAAATAACTAACAGAAGGTACATTAGGTTTTA
-GAAGGGACACCAAGCATCTTCCCCAGCAATGTTCTAGTCTGAGGAAAAGGAGGAAGGTGT
-CCTGGTGACCTGTCTCTAAAAACAAAAACAAggctgggcacggtggttcatgcctgtgat
-cccagcattttgggaggccgaggcgggcagaccacctgagattgcgagtttgagaccagc
-ctgaccaacacggagaaaccccatctctactaaaaatacaaaattagccgggcgtggtgg
-cacaggccggtaatgccagctactcaggaggctgaagcagaatcgcttgaacccaggggg
-cggagattgaggtaagctgagattgcagatcgcgccattgcactccagcctgggcaacaa
-gagcgaaactccgtttcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCAggctgg
-gcgcagtggctcacgcctgtaatcctcgcactttgggaggccgaagtgggcagatcatct
-gaggtcaggagttcgagaccagcctgaccaacatggagaaaccccgtctctactaaaaat
-acaaaaaattagccgggcgtggcggcgcatgcctgtaatcccagctactcgggaggctga
-ggcaggagaattgcttgaacctgggaggcagaggttgcagtgagccgagatcatgctata
-tgccactgcactctagcctgggcgacaagagcgaaactccgtctcaaaaacaacaacaac
-aaCGACAGCAACCACGGAcggtggctcgtgcctgtaatccagcatttttttttttttttt
-tttttttgagacggagtctcgccctattgcccagactggagtgcagaggcgcaatctcgg
-cttactgcaacctccacctcccaggttcaagtgattctcctgcctcagtctcctgagtag
-ctgggattacgggcacgtgccaccatgcctggctaatttttttttttgtatttttagtag
-agacagggtttcaccatgttggtcaggctagtctcaaactcctgacctcgtgacccgcca
-gtctcagcctcccaaagtactgagattacaggcgtgagccaccacacctggcctatccca
-gcactttgggaggccgaggtggatggatcactgaggtcaggagattgagacgagcctggc
-caacatggtgaaactccatctctattaaaaatacaataattaggccaggtgcggtggctc
-acgcctgcaattccagcagtttgggaggccgaggtgggcagatcatgaggtcaggagatc
-gagaccatcttggctaacacggtgaaaccctgtctttactaaaaaaatacaaaaaaatta
-gccaggcgtggtggcgggcgcctgtagtcccagctactcgagaggctgaggcaggagaat
-gaggtgaacctgggaggcggagcttgcagtgagctgagatcacaccactgcactctagcc
-tgggtgacaagttctgtctcaaaaaaaaaaaaaaaaggcagaaagaaCATGGATTCACCT
-GCTTATACAAGAAAAAAGGAAAAAAAAAAGTGTACGAGTTGCCTTGTTACAATAAAACTA
-AATGTGTATACACACAAAGGAAATGGAGGACATTCAGGGGCTGGGATGAAGGGTACAGAA
-GAAAGGCCAGGAGATACGGCCCTTCCATTTGACAGTAAATAGACTAATTAAAAAATATTT
-ATGTAGTATATATTAGGTGCAAGGCACCAGAGTTCATTTGAAGTGGAAGATATCACCAGA
-AGGTAGGGCAGATTTTAGAAATAACTAACAGAAGGTACATTAGGTTTTAGAAGGGACACC
-AAGCATCTTCCCCAGCAATGTTCTAGTCTGAGACCATTGTGAGTCTACAAACTGTTTCTA
-TGACAAAGCTGTACattattattattattattattattttatttttattttttgagacag
-agtcttgctttgtctcccaggctggagtgcagtgaagcaatcttggctcactggaacctc
-tgtctcttgggttcaaaccattctcgggcctcagcctcccaggtagccaggattacaggc
-gcatgctgccaccacacctagctaattttttgtatttttagtagagacagggtttcacca
-tgccaggctggtctcgaactcctgacctgaagtgatctgcctgcctcaggctcccaaagt
-gctgggattataggcatgagccatcaggtctggccCATTATTAACATAAATTAAAGTTGG
-TACTAATAAGTCACAGGTGAGCTACCTATGAGACCTGAAACGTAAAACCCACATAAACAG
-AGGCACTAGCTGGTTTGGAGCCATGTGCAATTGGAAGTGCGACAGAAAGATAATAGGAGT
-AACTTTTCACCTCGGTAAACCTGTCCTCCTGGCTTGACTGCTGTTTCCTGGTAACCTAGt
-agggtgaccatttgtcctcatctgtctgagatcttcctggtttatacctagagtcctggc
-acaattgttcacagcaaaccctttctgctccctgtattctcaaatatgtcccagtttgga
-agccaaattaaatggttaccTACCTAGAAATCATTAAAAATAAAACCCCTTCTGGGcaca
-cctataatcccagtactttgggaggccaaggtgggcagattacctgaagtcaggagatcg
-agaccagcctgaccaacatggtgaaaccctgtctctactaaaaatataaaaattagccgg
-gtgtggtggtgcacgcttgtagtcccatctactcaggaggatgaggcaggagaatcgctt
-gaacccgggaggcggaggttacagtgtgccgagatcatgccactgtactccagactgggc
-aacagagtgacactctgtctcataaaataaataaataaaaaataaaataaaATAggccag
-gcgtggtggctcatgcctgtaatcccagcactttgggaagtcgaggcgagcggatcacct
-gaggtcaggcgttcgagaccagcctgaccaacatggcgaaaccccgtctccactaaaaat
-acaaaattagccaggcgtggtggcaggtgcctgtaatcctagttacttgggaggctgagg
-caggagaatcacttgaacccaagaggcggaggttacagtgagctgagatcacgccactgc
-actccagcctgggcaacgagagcaaaactccgtctcaaaaaaataaacaaaataaaaata
-aaaaTATAATAAAATAAAAACCACTGCCGGGCATGGTTTTTAGTCCAGACgtggctcatg
-cttataatcccagcactttaggaagccgacgtgggcagattgcttgaccccaggatttgg
-agagcaaccagcctgcacaacatggcaaaaccttgtctctacaaaaaataggtgggcgtg
-acggcgtgcacctgtaattccagctgcttaggaggcagaggcgggttgtagtgaggcatg
-attgtgccactgcactccagcctgggtgatagagtaagactctgtctcaaaaacaaaaaa
-aaaTCTCCAATTTCTTCTGTCAGCATAACACCTAGTCAATTGTTCATGAGATGTGTCAAG
-CTCTTGACTCAGGTGTGTCCTttcatccattcatccattcatccattcatccGCCTGCCC
-ATTTGtccagtcattcatcagtctgtcacttaatgggtgtctacttgtactaagcactgt
-actggggataaaaagatgaattactccctcccagcccttgaagggctcacagtagggaca
-caaacaattattatatataatagaatctgagggattatgaaaatccagaggaaagaatga
-ctttttttcttcttctttttttttgagacggagttacgctctttgttgcccaggctggag
-cgcagtgttgcgatctcagctcactgcaacctccacctcctgggtttgagcagttctcct
-gcctcagcctcccgagtagctgggattacaggcattcaccaccacgcctggctaattttt
-tgtatttttagtggagacggggttttgccatgttggccaggctggtcttgaaatcctgat
-ctcaggtgatctgcctgcctcggcctcccaaagtgctgggattacaggagtgagccacca
-cacctggccaagaatgactacttctaaagcagtcaggaaaggcttcaccaagaatatatt
-ctggatccttcttttaattttttttttttttttttttgagacagagtttcactcttgttg
-cccaggatggagtgcaacggcacgatctcagctcaccgcaacctccacctcccaggttca
-agcaattctcctgcctcagcctcccgagtagctgggattacaggcatgcaccaccatgcc
-tggctaattttgtatttttagtagagacagggtttttccatgttggtcaggctggtctcg
-aactccccacctcaggtgatccgcccaccttggcctcccaaagtgctaggattacaggca
-tgagccaccgcatctggccCttctttttaatttttatttatttatttagacagggtctca
-ctctgttgccttggctggagtgcagtggcacaatcatagctcactgcagcctcaacctct
-agggctcaagcgatccttccacctcagccttctatgccaccatgcctaattttaaaaaaa
-ttttttgtagaggtggggtctcattatgttgcccagactgatcttgaactcctgggctca
-agcaatcctcttgcctcaacctcccaaagtgctaggatcgcagatgtgagccaccacact
-gggctctggtacgttcttaaagaaaattttgccacagggaagagtgtgttaaggggaaag
-tactccaggcagaagagttatgtgcaaagaccttgtcacatgaaagaaacaccatgtcca
-ggaaacaaagagttctatgaagctgaagtgccaggtaaagggagagAACAGAAGCAGGTA
-GCACCGCAGTAAAAGAGGCTGGGCTGGATTCATCCCGCAAAGGAGTCTGGGTTTATCCTG
-TACTCAGGAGGAAGACAGGGAGGGATTTTACTTTGGGCCTGAGGGCCATCCTTTGGAAGA
-CCAGGCTGTACGTTTTCAAGAGGGGTCAAAAACATGCAGGAAACAGAGAAGCCTTTTTAT
-ATAACATCGGTGGAGGCAAACCATGAGAAGAATTTAATTTCCAACAAAGAGAAAAAACCT
-AACATATTTAATTTTTTTTTAACTTGGGAGTACCCCTGCACTTTCCACACATCACAAATT
-GACAGCACTTGAGTGGCAATACTGAATACTGCTTGAGGGAAGCTGATATTCAGAAGTCTT
-GTTAACCTATTTGCTAAGAGTATGATAATTTTTCTTCAGTTTGTTTAGACATACATCCAC
-CCCATCTCTCTTTCTAAATAAGCTATTCGGCAATCTGGGAGAAAGGAAATCTTGTATCTT
-GGGGAAAAAAACCACTATGCAGTCAACTGAATTTCCATGAGGTTTTGGCAAACCATTTGC
-CAGAATGTTACTTAATTCTGAACTCAAATCCTCAAATCATACCTCCCATAACTCATTTCT
-CTTAAGACTCTGTTCCAAttttttttttttttttagagacagggtcttactctgtcaccc
-aggctggagaatagtggcacgatcatggctcactgcagcctcaaccttctgggctcaagt
-gatcctcctgccttagcctcccaggtagctgggaccacagacaagctccactggcccagc
-taatttttgcgtatatatattttgtagagaaaaaaagtgttgcccaggctgatctcaaac
-tcctgggctctagtgatccacccacctcgacctcccaaagtgctgggattacaggcgttg
-agccaccatacctggccTCCAATTCTACTTTTAATCCTGCATTTCAAAATTTACTTACTA
-TTTCAAAATTTTTGGCACTCTGTGGGAACGCAACAAATACGTGCAGAATATAGTAAGTGA
-TTTAGTTTAGTTATTGTTCCTCTGGAAAAAACTGGCTTGCAGTAAATGACATTATTTTTC
-CCATACTGTTAAGGTGATGCTCACTGCAGAACTCTCTAAACAGATCTGCAGACTCTTTGG
-CCTGTTTCTAACACTACCGGTGTTTCCCAGAGGAGGATGCTGTCCCAACGTGGATTTCGG
-CTGCTGTTTTTTTCAGGCCCCAACACCACCCTCCTCAACCCCACAGCCTAGTGATTAAAT
-GTCAGTGGCAGATGGAGAAAGCACTCCCACGTGTGCCACTCTGACAAATACTTTATTCCA
-ACTAAATGTATAGGCTCTCACTGTGACATAAAAAGGGAAGAGGAAACAGAAAATTCAAGT
-GAGCTAAAGATGTATGAATTACAGAGTGAGATCAACTGCTAGACGACACAGGGAGGGAGT
-TAGCAGCGTCTCCACTGAAAGACAAATTCACAGACATCCTGTTTATTTCCGAAAGAGAAA
-CATCATAGAGCTATTCTTGGGATGTTCAGGAAAAGATTAAAATAAATGCCTATTATCTAT
-TGTATTTCGAGATAAACTTTATAGATTTAGAGCAGGACACACATTTCTGGACTTGAGAAC
-GCTGTATCTGGCTTGGAATAAAAGCCCACATTTCATCTAGAGGTAGAATGTATGTCATTC
-TAATCTCCCTCAATCCTTTCTTCTCCAATTTCTTTATTGCCCCACTTACAAGATAGTGCA
-CTATTATTCCAAAGCTGATACCTTCCAAATTCCTTTATAGTAGAGGTCTTGGCTATCATA
-ACCATGATGGAACGAATGACCGTCCTACAGCTGGCTGCAAAATATAAGACTGCTATAAAT
-AAATCCCTGATGCCTGAAAAGTAATTCATTCAACAAAGGAAGATAGGTATGACTTTGGCC
-TACTCTTCATTAGAACGCTTATTtttatttatttatttatttatttataaagagggcaaa
-gcagactttatttgaggggcaccacagcaataggtatagcaacaactgcaacagggtttt
-gtagtcagggagggagatcagactcaactccCTAAAATGCTAATTTTAACAATGGGACAC
-TTCATCTGAACTGTGGTTCTTAATGGTTCAGATAAAGATGACACAACCCACTATTGGCTT
-AAACTTCTCCCAACTCTGGCTACAGAATCCAGGTAAAGATTTCTGCCCCCTCAGAGTAAT
-AGGCATGTCCAAAATCACCTGGATTAGGGCACTTAATACACTGGGAAGGGACGATAACAA
-CTAAAGATGACCACTATCCATGCCTCCTCTAAAAGTTTTTTCATATATTTTTTCATATCA
-CCAAAACAAATACTAACTTGGATCAACTAATTTATATAATGGAATCTCGTGTGAGCGTAC
-AAAATTCCATACTGATTATTTGGTTTAAGCCTGCATTATCATAAAGGCTTTACAGTCTTT
-AAACTGAAATTAAGCTCAAATTAAGAAATGCTAGTCTTAAAACAATGGAAGGGGGGGGCC
-GTTTTGTGTGGAGGGAGGGAGACAGACATACCCCTACACCCACCCACAACTACTGATATT
-GACATTGGAAATTAACTTGAAAATTTATgcctgtagtcccagctactcaggaggctgagg
-tgggaggagcacttaagtccaggagttgggagatgacagtgagctttgactgtgacactg
-cactccaacccgggtgacagggcaagatcccatctctcaaaaaaaaaaaaaaaaaaTGCT
-TTAACTCCACGTCTGTACCAGAAGACCACAGCAGGAGAGGAAAACCTTATTTCAGTCTGG
-GTAAGAGTTCTATTAAACACAAAATAAAACAAACTAGCCTCTGTTTCTGGAGGTCTTCAT
-TAGTAGTTTCTACAAAACAGTATCCAAATTAGCAAAGATTCTGTTAACTACCTGGAAAAA
-GCAGGTACCAAGAAAGAATGTTTCACTACAATGGAAAAAAACAGTCTAGTAAGTAAACCA
-ATCTGACTATAAACGCTACAAAAGAGGGATTCTAGCATTAGTAACTTTGCCAACAATACT
-CTGATATGATTAAAAAACAAAACAATAACAAAAACAAAAAACCTCATCTTTAAATTTGTC
-CCATTCATCCAGAGAAGCAAAATCAAGGAAACTAGAGGGGGTAAAGTCTTGCAACAGATA
-CACAGCTGCACTGCCAACAGGTCACAAGACCCATGCTGCCTAGGGCATTGACTGTTATGC
-CATGAGGACAGACATCACACAAACACCAGTAATTAAAGGGTTACGGTGCCAAAGGGTTCA
-GAGCTCCACTTCCATTCAGTATCAGAACATAAGAAAAAGGGAAAAACAGAAAATGAGCCC
-aaataaaatataaaataaaatataGATACCAGGAGCTTCCTCAAAATATGTGGGTTGTAT
-TAATAACGTGTTTGGCTCTGTTACGGGCACCATCCATCAGAGGACTGGAAATAGGGAAAG
-TCACCTTAGTCTTCCTCAAGGAAAAAAGATTATTTAACTTGGTTCACGGTGTACATTCAT
-AATTTTAACTGTCATGTATTTATTGAATGAAAAACATTTGAGAACATCATGTGCAACAAA
-AACATGATTTCACAGAAATTGTCCAAACTAAAAGAGTATAAAAATAGAAGCGCTTTTTAT
-ACAAttatttacttattattattattgagatagggtctccatctgtcacccaggccggag
-tgcagtggcgcaatcatagagtagcctctaagtcctgggctcaagcgatcctcctgcctc
-agcctccagagtcgttgggatcacaggctcgagcctccacacccgactaacttttaaaaa
-ctttttgtagagatgaggcctcgctgtgtttcccagcctgatctcgaaatcctggcctca
-atcgatcctccaaccatggcctcccaaagcgctgggattacaggcgcgagccatggtgcc
-cggccGCTTTTACACAATTGAATAACATTAAAATAGGTGGCAGAAGACagacagaaagtc
-gattcgtggttgccaggcgtcgtgaataccggggaacgcggagtgcctattaatgggtaa
-gggtttcgttttggaatcagacagcggcgatggctgcacaactttgtgaattttctaaga
-atcactgaactgtgcaccttaaaggaagaactgtgtggtaattacatcGGCGGTACGCGG
-GCAGCGCGTCAATCAAGCCGGCGACGGTGAATGCAGTTCGGGAGAGCTGATACCCCTCGG
-GGAGGCGGCTCCGGGAGCCTGCGGACGTGGCGGACGCCTGGGACGGGGTGGGCCTGGCCT
-CCGCGCTCGAGGAGTCCCAGTCCTCTCCAGATGGAAGAAAGCCGGGGCGCGAAGCCGCCG
-CCCGCTCTTCTGCCTGGGGACGCGACTCTGCCGCCAGGCTCCCTCGGGTCAGCTCGGCAC
-CCGCCCGAGCCCCCCCAGTTCCAGGCCCTCTCCTCATCAGACGTGCCCTGGGCCCTCAGC
-CTGTTCCTCTCGccgcccggaaccccgcagcagccccgggtccccagcccgcgcccctcc
-ggcgccgcctccgccagctgcccctgccccccgggccgccctcgcaggccgctcccggcg
-ccccggtcggcttccgtacctgccttctccgcgccgccgtcccAGTGGCCGGAGGTGGGG
-CCGTCGCCCTGCGCACTCCGGAGGGCCATgccccggggccccgggcccccACCCGAGCCC
-CGGCTGGTGGCGGAGCCGGGAGAAGACGCGGCTCCGACCGCGGGACGTAGCACCCGCTCG
-GCATCGGCAGGCTCCCCTCCGTCGGCCAgcggcgcgcaggcgcgcaggcgccccgctggc
-cccgccccgcgccggcACGTGACCCTGCGCTACGCCCGGCCGGCGGCGGGGGAGGCTGCG
-GAAAGAGCGCGGTGAGCGCTCTGAGGAGTTGGCTTCGTCTGCGCTGTAGACTCTACGGTG
-TAGAgtgtggcgctcttgagcgagtgtgctcgagaccagctgtcgtttcctttgcttctt
-tcatctgtaaaatagtattgatgataataaaaatattgaactcacaaggttattgagagt
-gtttagaacatcaccaagcatatagtaaatactccacaattatGACCAATTTTTGCTTAC
-CAAGGATTATTTTTTTACCTCCTGTCTCGTCTCCCCACACGAACTCCTGTCATCAGTTCT
-TGGGTACTTGGGGATCTAGCAGGTTCATGTCAtacgggtccgcaggttatgcactgcaca
-aggcctgggagcgccatttacgtagacgttcacgtgaaccgtgcccccttaagttgtgcG
-AAATAGTGGCCACTCATCTAAAGCAGCGctctggcttatcaggtctgatttccttctcgt
-cttcagtgatattcctttctttccaattagacatccattcccttggttatatccctgata
-ttgtgattgtggcctcccgaatttctagtgctaggtcttcatgctgaagttcccataatt
-ccagttgcttgatgactctcttccacctcccacccccaaccacaacagttctttattatc
-ctgagacctccagcccatGAaactcctgacctcgtgatccgcccgcctcagcctctcaaa
-gtgctgggattacaggcgtgagccaccgcgcacagcCAAGTTTTACAGTTCTATTCATAA
-ATCTAGTAAATTATATCAGTTATTTGGTCCCATTAATAAACTAAGCTAATTAAAATCCTT
-TGAACATTTGAAACTGCATTTATAAATTCAATTCGTTTTTCTAAGTATCACAGGTTTCTA
-ACAAAGCCTTTCAAGTCCTTGTGTAATTCTTGTAAATGTAATACATTTATAAGAATACTG
-AGTCATGAGTGCTTTCAAATGTGTCAATACAAACGAGATTTCATCTTAAAATCAAAAGTC
-TAAATCTATTCAAATACATATTTGTAATTAGTACAAGAATAATCTGTTAGAATTCTCAAA
-Attatcttttttttttttttgagacagagtctcactctatcacccagactggagtgcaat
-agcgatcatagctcactgcagcctcaagctcctgggctcaagctagcctcctgttgcagc
-ctcccgagtagctgagactgtaggtacacactaccatgcctggctagtttttttagtttt
-tatagagggggtggggaatctccctatgttgcccaggccggtctcaaactgccttcgcct
-cccaaagctctgggattacaggcgtgaatcacagtgccAAGCTCTTGAAATTATCTTGAA
-CATTATAGGAATTTAAAGTATCACATTTACACAGATGCCTTAATGCAAAATTATTAATAC
-TAGAAGTTTGAAAACATTTCTAGTCTTTGTTCTAAATCATCTGTGAggctcatgcctgta
-atcccagcactttgggaggtgaagggctgcagatcacttgaggtcaggagttcaagacca
-gcctcaccaacatggtgaaaccccatctctactaaaaatacaaaaattagctgggcatgg
-tggtgcctgcctgtaatcccagctacttgggaggctgaggcaggagaattgcttgaacct
-gggaggcagaggttgcagtgagccaagattgcgccactgcactccagcctaagagacgga
-gtgagactccatctcaaaaaataaataaataaaatgaaataaaTCATCATTGAGGTTAAA
-AGATGCTTAGTGCCCACTGAAGGAAGATTTAAGTCATCCCAGTTTAAGAGTAACGTGCTC
-AAGCAATTTGAGATATTTATTCCCTTCTCAGTTTACTGCGCTGGTCATCCAGCCAGCTGG
-ATTCTTGCTTTTGGTAGTGATGGAACAGTGACCCCCACCCCATTCCCACCACCACAACTC
-TAGGACTAAACAGTTGTGTGGTCGTTGTGAAGCTTGGGCcagaatttactttcaaaaaat
-gtcccgcttcatgtataatataaagaccttacaataaattcccatttcttccctcctgtt
-cttcttgctgttgtcctacattttactttttaaaatcccttccttctcttgctttctccc
-ctctacccaccaaccacttgcaaacaaccactgatctacatcctgtcactatagattggt
-tttcattttctggaattttttatggacggaatcatatagtatgtagtcttttttgtctgg
-cttcttttactcagcgtaattattttataagcaatcatgttgcattaatcaatagttcat
-ttgtttttgttgttaagtagaatttcatcttagaaatataccacgattcattttatcaGT
-ATTTTAAATTTTTGCATGTGCTGCAAGTACACAATTCATTGCTAATATGCTTGCCTTAGA
-CCAGGCGGTTAGCAAAAAAGATGGTCTGCCCAcctgcaagccaaaaccactctactgcct
-gattttgcacggctcatgaactaagaatggcttttaccttgataaatgttgaaaaatcac
-aacttaattgtagcacattaaaactatatggaatttaaatctcagtgtccataaaccttt
-actgaaacagagtcacgctcattcatttacctactgtctatggctgttttcatgctgcaa
-cggtagagttcagtggttgcaacagagatatggcctacaaaacctaaaatatttattatc
-tgctcctttatgtatttatttattttatgtgtgtatgtatgtatgtatttttttgagatg
-gagtttcactcttgttgcccaggctggagtgcaatggcgcaatcgcagctcactgcaacc
-tccgcctcccaggtccacgtgattctcctgcctcagcctcccgagtagctgggattagcc
-cgccaccatgcctggctaatttttttgtatttttagtagagacggggttttgccatgttg
-gtcaggctggtctcaaactcccgacctcaggtgatccgcccgcctcagcctcccaaagtg
-cctgggattacaggcatgagccaccgcacccggccTATCTGCTCCTTTATAGAAAAAGAT
-Tggcaggacgtggtggctcacacctgtaatcccagcactttgggaggccgaggcaggcag
-attacatgaggccaggagttcgagaccagcttggccaaagtggtgaaaccccgtctttac
-taaacatacaaaaattagccaggcatagtggcacaggtctgtaatcccagctactcagga
-ggctgaggcaggagaatcacttgaacccaggaggcggagactgcagtgagccgagatcac
-accattgcactccagcctgggtgacagagtgagactccacataaaaaaaaaaaaaaaaaa
-aaaaaaGTTTTGTGACCCTCTAttgtagagatggaggtattggggctgttgcccaggctg
-gccttcaactcctggcctcaagggatcctcctgcttcagcctcccaaaaatgatgggatt
-tcaagtttgagccccatgcccagctCACTTCAGTTATTTCTAAGGTAATTTAAaaaagat
-tttaattgtacttaccttcattcaatttccagtgctcttaatttcattgtgtagacccag
-gtttttttctggtatcatattccttttgcctgaaaaacttcctttagtatcttgtagaag
-gagcaatgaattccgtttttctttatctgaaacagggtttatttctcctttattttgaaa
-gacactttcatttgggtataggattccggaattttgggtgagcagtttttgtgtgtgtat
-gtgtttttcccctatcagcatcagcaataaggtcactccattggcttctagcttgcatag
-tttctgacgtctccataattcttagcttcctctgtatgcaatgtcttctttttccttgct
-gcctttaagattttcttttgttttagcatttcgagtatatctaattttatatgtgtgtgt
-gtatatatatatatatatatatatatatatatatatatatgagtttattctgcatgttct
-ctgagcttcttggattttgtggtttgctctgtccttaatgttgaaaagttctcagccttt
-aattcttcaaatgtttcttttcctgttctctctcctttcttctgggaatctaactataat
-atgtttgagtgtttgatattgtcccacaactcttggatgttctcttttgacggttttttt
-tcccttcaccctttttccccagtgtttcagtttgaataatttctcttgacctatctttga
-gttcattcattctctccttggctgtgtcaaatccactgacgagctccatgaggcactctt
-catctctgcatctctgttagtgtgtttcttttttttttttttttttgagacagagtctcg
-ctctgtcctccaggcgtgcagtggcgcaatctcggctcactgcaagctctgcctcccggg
-ttcacaccattctcctgcctcagcctcctgagtaggtgggactacaggctcccgccacca
-tgcccggctgattttttgtatttttagtagagacggggtttcaccgcgttagccaggatg
-gtctcaatctcctgacctcgtgatctgcccgcctcggcctcccaaagtgctggaattaca
-ggcgtgagccaccgcacctggccattagtgtgtttcttattttgaccagttccatttggt
-tctcatagcttccatctctctactgagattgcacttttgatcttgcatattgtctacttt
-tactgttagaccttttaccatattagttatttgaaattctgtatcacatagctctgacat
-ctgtgtttggttctgaagattgctttgtctcttgggagtatgtcatttatctcttgcttc
-ataagtgttggtgaaagttggacatcttgtgtaggatagtagaggcccagggaaatgggt
-tttgtgtagaaatgggcacacttttccttctgttaggtctttagcgtgggggtttgaatt
-aacctagttaggagttgTGATAggctgggtgggtggctcatgcctgtattcccagcactt
-tgggaggccaaggcaggaagattgcttgaacacaggagtttgagatcagcctggacaaca
-tagtgaaaccccatctctacaaaaaaaataaaaattatctaggcatttttggtgcatgcc
-tgttgtcctagctactgggaaggcttgccgagtctgtcctgcagactctgcccaagcgac
-ggatgaaaggagtactcagatacagatatccagtgaaagagcaggataggggactgccag
-cactaggggccgaagagaattagcagttcccctaagccggcagccctcgcatttgtttgg
-tacagatttaatgacaaaggcttggagcaaacacaatttgtgggtaataaacattgttga
-ccccccgagtagagagcagtcctgcatgcaaatgattaaaggttggtttctggagacagg
-agtagacaaatttatctagataagtttctttacattcccttgttatctgccctttgctct
-caggctccagatgagacaatttggctgccttcagccataatttccttccaaagcttttgt
-aaaacctcctggcctttcaagaaggtttgtgtctttactataatttctcccaccaccctg
-accaatctcctacatctcccccttttctgttttttgcatcagcttttgttaattgaagag
-tacagatgtgcagcaacaggtttttcaggtgtagtggtcactgcttgtatttcggctttg
-catcctagaattagtaaataacataagataaacgtgaatataatcagtaacattcttttc
-caatcaaggagtgacatgtagtgttacttgccacctcagttcagtgtgtgcccttactaa
-ggaaccccactgggggtatgttaaccccttccagccaagcagttacgttattagaggctg
-ggaagggggtgtccacccaggtaatagggtggaagaaaagcagatttagaagatgggccc
-aatagagtgtagcaggtactggttgcaggcagagtgagggaattaaacaaggttaataaa
-gcatagtaaggaataaattatctggagtgaatggtgtttgtgtccagagcaggattcgtt
-cagcctcctgagttgtcttcttcagcatcccccaggtaatgtctggggcttgtgtcgtct
-gaggaagctgcatcatccagggctgtgggtcctgcagggacatttccttcatttctggta
-ccaggttgggtcctagccacaccatgttaaggtttgatgcgttgtgctggaatccaaaga
-ggacctgaggtgatgtgaacacaaccatatcctcttccccatgttggcaactcatttgga
-ccacaccatacattactgtttacatctttccataaaactgtgggttttatgtcttgagag
-gttttagcaaagtgcttttctatagctgattgaaatttatcatttaaatttaagaaatta
-agggtaaataaggcttttgctagtagtgttgcagggtccttactcatactcccccttttt
-tgttttttgagcatatttttaagagtggacacgttctactatggcctgtccttgggggtt
-atacgggatgcctgtggaatgctggatgttccacgtgtgacaaaattgttgaaattgtga
-gctggcatgagccagaccattatcagttttaatttttgtgggccgccccataaatgcaaa
-agttaagagaagagtttaataacatatcaggtggactttccaggaagagcattgtgctaa
-ttaggtgagaataggtatcaatggatacttgtacatatcttagttttccaaattcaggga
-cgtgagtaacatctgtttgccataactgattaggttctagtcctctagggttaacgcctg
-ttgaaggaggggacatgcctgtgagctggcaatccgggcattgcaggataatttgtttag
-ctagtctttgggtaagttgaaattgttcagttaagttccttcaattttggtggaaaaatt
-gacgcaactgcatggcttggtgaagcagtgacatcataacttgcaggtctgcttgttcat
-tgccataagccagtgggccaggcagtgagctgtgggctcgaatatgtgtgataaaaatag
-gatgtgtacgttgatccagcaattgctgaagttgaagaaaaagtgcacacagggtgagct
-tgagagtggacttaatgagggctgttttaaggttttgcaataaataaacagagtaagcag
-agtcactaatattgataggcagagtggaaaagttctccaggggcaatattaaggctccaa
-cctcagctctctgagtgctagtaaatccagaatgagtgaggaaattatgcagtctccacc
-aaacaggcgcttttctgtttttaccagagccatcagtaaaaagtgttaaagtgttggggt
-atgggggagtgaactacttttgtaggcacaactacaggagtacgagataagaactgaatt
-acgttgtcagcaggaagggcatgctctatatggcctgtgtaatcagagattgctatctga
-agatctagagataggggcaatactgatccaaattgccttttactcaaaggaattcttatg
-acatcataacctagcaactgattgcactatctgcggcctgtatagatgactttactaact
-agctggatataggaagatagtgttttagtctcggtatgtgagcaaaaaacccattctagg
-aagcgtagtcctggggtcatctctcctattaatactgttggggaatgtttagtaggaaaa
-acaaacaattgaactgactatcggggtgtctatgtgatatagttgcctctgagaaatagc
-ttgctctatttcctcaatttccctttttgctgcaggagtcaaatacctgggagagtctag
-ggctgtattgccctttaggatagaaaacagttttgtaacttatcagtagttatgcccaac
-gtggggtgaagtcaattaatattgcccagtaacttttgataatcatttaaggtgtgtaaa
-tcgctagtatttaaccttttgaggtcttactgaccagaagttagtatgtatccaagatat
-ttccaattgtactttttcaggtgctatgattaaacctcttaactgtgtattctttatgac
-agaggcatataaacttaaaagcactggctctgttggggctgctaggaaaatatcatccat
-aaaatgaataatcttgcaactaggaaattcttttctactggggagcaaagcctgatttac
-atgatactgacacatggtaggactgaacagcatcccttgaggaagtactttccaatgaaa
-tcagcgagctggcctctcattactgataactggtattgtaaatgccaatttttctctgtc
-ctgttctacaaggggaatagtataaaagcagtcctttaagtcaataatgactataggcca
-atcttgaggaatcgcctcaaaggggaagggaggtcccgttgaaggggccccataggttgc
-aaattagcattgatagcctgtaagtcatgcaaaagtctccatttgccagaccttttggga
-atgatgaaaatgggcgaattccaagggctgtttgacagttctatatggccagcttttaat
-tgttcttccactaattcatgggctttttgtaatttctctctctttaaaggctactgtttt
-acccaaataggattttgagagagccatgtcaggggtaggggaggaataacagtggccatt
-attagaaaggtttgctgttcacacaatttatcaaattctgccctccagaggaggtactga
-ctggcctttaaagttgttttagctagcactgaccagtcccatggggtgatatggaagttg
-tctgctatggtttcaattattccttttgtaaatgggctagtggctccgtttaatgctttt
-tcttaccactttataagcgtcaaaagaagttgtctgctatggcttcaattattcctttca
-taaatgggctagcagctccattttctttaacgtttttttcttatctctttataagcgtca
-aaagaaatgggttcatatacctgatcgccttgtcgatcttgcattactgggcaggctaag
-agctccccttctgatgccgcttggctaagacagggtcccaaagctgtagtgtatcccttg
-tctttttccaatttattggaggagggggctcaggcaaaacctctgtttcctctttgttat
-ttttgcctgttaatggctgggctgagggagaaggaggagacggtagggtaggtgacggtt
-ccatctcccttacttttttaggcttttctgtgtagagtgggaccaaagcagtcctaacta
-aagcccataacgttaaagatgttactgagacccattgcccttgctcatgatgttaaaatt
-tcttcccagagctctacgtctagtgtaccttcttccgagagccatgggttatgggaaaca
-acagtttgcattaggtcccataattgagcctgtctgaggctctgctaactttcagcattt
-gttttactacttttatatactgttgctgttgagctgacaactgttgtcccatgatgacaa
-ctgtcatcccatgatgatcgtccctagcttgagcaattcctttgaacttggaaatgctga
-acaggcaccaatgacttactgactgcgcagtctcttcaccttcattttcgagggttccgt
-cgtgatctgttgcagcattcctcacacagggaatcacctgccgagtctgtcccacagact
-ttggccgagtgacagatgaaaggagtactcagacacagatattcagtgagagagcaggct
-aggggactgccagcactaggggccgaagagagttagcagtccccttaagctggtggccct
-cacatttatttagcacaaatttaatgacaaaggcttggagcaaacacaatttgtgggcaa
-taaacattgtcaacatcccaagtagacagcagtcctgtgtgtgaatgatcaaaggttggt
-ttctggacacaggaataaacaaatttatctaggtaagttcctatacaactcccctgttat
-ctgccctttgctctcaggcttcagataagaatttggctgccttcagccataatttctttc
-tgaagcttttgcaaaacctctcggccttccaagaaggtttgtgtctttcctataatttct
-cccaccaccctgaccaatctcctacaAaggctgaagcaggaggattgcttgagcccagga
-gtttgaggctgcagtgagctgcgatcacaccactgcacttcagcctgggcaacagagcaa
-gaccttgtctctaaaaagtaaataaaaaaaagagttgggctaggtttgaggtttattgtt
-gctatggttacccccaatgcagcagcttccagttcctccaatgacaccttggactgaggg
-tgcaggctggcctgccagagggattttctccttccatgtgtgctccctgctcagctttag
-gtcctccctttgtgaccctcagaaagggtcttcttcccatactcttgtctctctcctgta
-acatttttacttctaactcaaggcttgtcagcttaccattggcaggtgggggaggaggga
-attctctgttctgatcaagtctcagtctctgtcaggccctttgtgtctctgattttgggg
-ttatgtcctccttagtgctcctgttcctcccccAGTTCTGGGCCCAGTGTGTATTCCTGC
-CCCTGCCCAGGGAAAGTTTTGTTTTGTTCCTGTTTCATTCCCCCAGATGCAAGGGAGCTT
-CATCCAAGGGGGTGACAGGATTTGGTGTCCTTCCCTCCACAGACTAAGGCTTTTGTCCGG
-TAGGGGATACAGGGAAGGGTCTGGGTGGAGCACTGTGATCCTTTCACAGTAGCTGCCATT
-GTCTTCTTCCAGATCTTGAGACATTTTATTAAAACTTTCTCCAATCTTCTGTGTGCTCCC
-AGTGGGGTTCATGGTGAAAAACGCTGAAAAGGGTAAAGACTACTGCAGTCTCCATGACCC
-AGTCCCTCACCAGTGTCCACTTGTGTTTACCAGGTAACCAGTGCCCATGTCATCTCTTCC
-ATTTTGTGCCTGTCTCTCCTTAGATTTGAAGCCAGTTGATTGTCTTCTGATCTCAGCTCT
-CCAGAAGACCTTTTCCAGAAGACCTCTCCCTGTGTATCCACTTCTAAACCAGTCACAACT
-GCCCGAGTCTCACAGCAGCATGGTGGATATCCCGCTGTCCCTCAAACTGGGGCTCTGTCA
-ACAAAGAGGAAGGGAGGAATGACTCCCTTGGGAGGAGACAACAACATTGCAAGTGATCTa
-gtctttgaaaggcttttaagcaagggactgagataaaatttatttattatttttaagaga
-gaggttctcactctgtcagccaggtctcactgagagcaatgtgatcatagctcactgcag
-cctccaactcctgggctcaacgtatcctcccacccagcctccccagtagctagcactata
-gtcacacaccaccacactagttaatgttttcattttttgtagaacagaggactcgctgtg
-ttacccaggcctcaagtgatcatcgggccttggcctcccaaaatgctggggttatagata
-tgagtcactgtgcctggactagaatatttatttttgaaagatctttggttgcaggtgtca
-gatgaatcaggaattgagacgagatgggaaggcatcaagaccagttatctgctatgatac
-tccaagcaagagaggatggtggctgggatgaggaatttggcaacgggaatgggaggaagt
-ggatgcattcaagataaatATCCATTTATTAAAAGTAGTTGCTTTTTCACCAGAGTAATA
-CATAAATATAGTTTTAAAAGTAAATACTGCTACTATCTTAACAATAATTTAAAAAatctc
-aaaataacatgcaactgtttgatttttcagttttaggcattagttccccttataaatgat
-gagagtttagagcttagaccgcttgtcctgttaccaacaccaccacacatgccagcattt
-cccatcactcctctttccattgtcatcatactgtaatcctggttagaccagtattcagtg
-tttccattatgactacgtaaattctaatcacagctgaaccagcagtatgatatttagttt
-tccctcctttcataacttttcccattcctgctgagttaatacttttttggcttgtcttac
-tctgctcagttttcATTTTGTAAActtttaaacatttgaactctagcaaatatactgaga
-agtgccccaaacgtaaatggagagtttaacaaataattatagagcaaatacaacatttag
-gtaccaccccaataaacacaacaccgaggacccccagaagcaccctgtgtATAGTGGAAT
-GTTGTGTTGTTTCTGGCCATGGAGTCTCAAAGACTGATTCTCAATTTTTGTTGCTTGAAA
-ACAAGTAAACAAGTATTCTCagccgggcacggtggctcacgcctataatctcagcacttt
-tggaggccgaggcaggcagattacttgatgtcaggagttccagaccagcctggccaacat
-ggtgaaaccctgttgttttgtaaaaatacaaaaactatctgggtgtggtggcatgtgcct
-ataatcccaactacttgggaggctgaggcaggagaatcgcttgaacctgggaggtggagg
-ttgcagtgggctgagatcatgccaccgcactccagcctgggtgacagagttaagactctg
-actcaaaaaaaaaaaaaaaaaGTTGGTGTAATCCTTTCCACACACACATATATATATACA
-TAGATGTTATATGTGGTTGCCTTCTGTTCCTACTGATATATATGAATAGTATGGCTGATT
-GCATTATTGGTTTGTTTCTTCATTCCCCTGTAATAAGACTAAACatacacaccctttgcc
-atataacctcataaagttttcccaacacaggctctatgcttccctactgcactgatgttg
-ggcttggctatgtgatttgctttcgccaatgggatgatggtgcttgtgacacagcagagg
-cttgaaatgtgcttgtgtgattccatttggtctcttCTAAGTTTCTGTGATTCATGAGAA
-GAGCACGCCCTGAGTAGCTGCTGCAACTTCTGCCACATTGGGCAAACCTGAATCCAATTC
-ACATGGAGGTGTCCAGCCCAGCCGACCCACAACCTGAAAAACAGCTGCTTGGGCTGAACT
-TGATCTAGATCAGCTGAACTACATACAGTTGCCTTAGAAATTTGTGAGACTAAGACTAGA
-CAGAGAACAAAAGCAAAAGAAAGAAAAAATTTGTCTGCAATGACTGGCTAGGAACCTGGA
-CAGATTCCTGGCAACATAGCTGTGCAAAAGCAGCCCCACAAGCAAAATTGAGCCAGGAGA
-CAGGGTTCTGATCCCAGGCATGGGCCTTGGCAGCTGAAACTTGTTAGGCTGGGCCTCTCC
-CTCGCCAGTTCAGGCAGCCCCTCCTCTGAGGCCTCATGGACCATTCTCTCTTCTCCAAGA
-CTTCAAGATTCCTTCCTAGTGAGtttttcttttttacttttagatggagtctggctctgt
-cacccaggctggagtacactgacgtgatctcagctcactgtaaccgccacctcccaggct
-caagcaattctcctgcctcagcctcccaagtagctgggactgcaggcacacgtcaccaag
-cccagctaatttttgtattttttagtagaaacagggtgtcaccatgttgttcagtctggt
-ttcaaactcctgacctcaggtgatccactcgccttggtctcccaaagtgttggattacag
-gcgtgagccaccatgcccggcACCTAGTGAGtttttctgttacttttttttttggaggcg
-gggtctccctatgttgcacaggctggagtgcagtggtgaaatcatggctcactgcagcct
-caacctcctgggctcaattgattcctccatctcagcctcccaagtagctgggactacagg
-catgcaccaccatgcccagctaatctgtgtattttttgtagagagggtttcatcatgttt
-cccagaccggccttgaattcctgagctcaagtgagtcgcccgcctccacctctcaaagtg
-ctgagattacaggtgtgagccactgcacccagccTGTTAAATCTTTTTTTCAATTAATAA
-CAACttcttttacagacagggtctcactctgttgctcagtctggggtgcagtggcactat
-catagctcactgcagccttgaacccctgggctcaagtgatcctcctgcctcagcctccag
-agtagctagcactacaggcatgtgccaccacatccagctaatttttaattttggtagaga
-cagggtctccctatgttgcccaggctggtctccaactcgtggcctcaagcaatcctcctg
-cctcagcctcccaaagagctgagattacaggcatgagccaccacgcccagctTCTGTGAC
-TTTAAAAAAATCtttttagacagggtcttgctctgtcacttgggcttgagtactgtggca
-caatcacacctcactgcagccttgacttcttgggctcaggcaattaattctcgtcctttg
-gcctccccagtagctaggacacaggcgcacaccaccacactcagctaatctattttttgt
-agaggtgggttttcgccatgttgtccaggctggtctgggactcccggctcccaaagtgtt
-ccAACCACAGGTGTGTGGGCCTTCCGTGGTATCTTAACCTCATCACCCAGAGGCAACAAC
-AGCTAGTATTCTTCTAGTTTTTACCACCCCCACCACCTCAATCCTGCCCCTGTAGCCTTT
-CCAAGTGCCACAGCATTGTTTCAGTTTCTATCTTAGAAAGCCCGGGAGTCTGTGTCCTAT
-CTCCCTGGGGGCATTCAAACCCTAGTCCATAGCCTGAGGCCCACCTATACCCAGACCCAG
-TGTCTTGGAAGCACTGACTTTAATACCCACTTAggctgggcgcagtggctcacgcctgta
-atcccaccactttgggaggcttgggcgggcggatcacctgaggtcgggagttcgagacca
-gcctgaccaacatggagaaaccccgtctctactaaaaatacaaaattagctgggcgtggt
-ggtgcatgtaatcccaTGCCTGTCTCAaaaacaaaacaaacaaacaaaacaaaacaaaac
-aaaaAAACCCCAGTTACATTCAGGATGAATTCTGCCTTCCTTTTTGCCACCTTGGGATTT
-CCATTTCTTTCTCTGAAATAGGCATTTGCATTTTTCCTAGGATTTTTTTTTTAAAACAGT
-TGGAATTATCCCATATACACAATTTTTTCACTTTTCTAATTAACATACATTTCCCCATGG
-Gcttgtgtctcacctctcaatccccagtgtatagcaaagaccaggctcaggggcacttac
-aaatgtttgttgaaACCAAAGACATCCTATATTACAGAAATGAACTTTGGAAAGACCAGT
-CAGCGTGGGTGGGTGAGGAATGCCAGAGACGGGAGAACAAAATGAGGTATACCGTCAGGT
-TTGAAGGGTTGAGGGTTATGGAGGGTTCTTCATAGGAAGTTCACCATGGAGTTCTTGGAA
-CTGTTCAACACACAGAAGCAAGGTCCTCTCCTTCTAGGTATGGCTAGAAATGTTTATCAA
-TAGCTGAGACTCTGATTCCCAGGGTGGGATCAGGAAGCCAGCCCCAGCTGCTGCAGCATT
-TTTTTCCCTTTTTCTCATTACAGGAGCCAAGAAAACTGTCAAAGCAGATGATGCAAGAGT
-GAAGCTGACTCAGAAATACTCAATCCCCCCAGGAACTTCTCTAAGAAATGGACTGACCAT
-CCTGTAAGCTTCCATCTGGAGGTACCTGGGGAAGGGCTTCTCACATTGAGGCCAATAAGA
-ATCCCTAGTGggccaggtgtggtggctcatgcctctaatctcagcactttgggaggccaa
-ggcgggtagactgttgagctcaggagttcaagaccagcctgggcaacacggcaaaacttc
-atctctaccaaaaaaaaaaaaaaaaaaattagccaagcatgatggctcgtgcctgtagtc
-cctggaaggctgagttgggaggatcacctgagcctgggaggttgaggctgcagtgagctg
-tgatggcgctactgcactctagcctgggtaacagagcaagacccgtatcaaaaaacaaaa
-caaacaaaaaaCTTCTAGTGAGTAGAGCGACAGGGAGACAAATCCAGTTTGTAATTTGCT
-ACAGTGCAAAATATCTGGCTTTCCATAGAGGGAGTGGGAACAAGGCAATGCTGGCCTTCA
-TTCAATCAGAAACTTGACTTGTACCCGTTGAAAACCTGTCATGTTTAATGCTTGGATATT
-TTTTCTTCTAGTAaagacactttactgccacctgctggaaaagagtcagaaattttccaa
-atgcaaacatctatggcctccctataatgtagcatccttttactgtacatagtctgcaca
-actgtacaATTTAGAAGAGAAACCAACATTTGGTGTAACTCTACCATATACCAGGCATCT
-GTCATAGAATCTGAACAACCGCTCTATGAAATCAGTACTTATACCCCAATTTAACAGATA
-GGAAATATTGGGacctctggggaagggaggaagaagagggtatcaccaaaaaagggcaaa
-aagggggcttggtctgtattggcaatggaaattcaacttgggtggtaggattatggatgt
-gttacagctttctttataattTGGTACATGCCTAAAATGTTTTACAATAACAATTTAAAT
-CACCTGTGAAGAAAAGATTCAGAGAGGTTAACTGATCAAAAAAATCACACTGCCAGACAG
-AACTCTGTTAGAGGTAGACCACTTGCAGTAACATTACATTGCTTCTCTAATGGTTAAATT
-TAGCACAGAATCAAAGGAGAGCTATAAAGTCTAGGAAGTACTTATTTACATAGGATTGAG
-TCCAGAACATCTTGTGACACCATCTACATATGTTTTACTTGGAGAATAGTCTGAATTTCG
-TATTAcacgttgagcatttctaatttgaaaatacaaaatcctcaaaaatctgaaattttt
-taagcatcaacatgatgcctaaagtaaatgctatttggaatatttcaaatttcagattag
-gaatattgaactggtatgtattccgcaaatattccaaaaatccaaaaaaattcaaaacac
-ttctggtcccaaccattttggataggggatattcaacctATATTACACACAGGTAATACA
-GCAGGGGAAAAGCAGGGAGACTGCAGCATCTAAGTCTACTAAATTGGCCAGGATCATTCC
-TTAGTCTTCAGATACCTATTTATCAGGGTCTCATTAAATAAAGTTACTTGTCATGTTAGT
-TCAGTCTGGCCTGTGGCTTGTAATTATAGCTGCAAACTCAAGGGCAAAGTTCTTAGGATT
-TTGAGATGCTCTTTATGCAACAATACTTCCATTTACTTtgtgtgtgtgtgtgtgtgtgtg
-tgggtgggtgggtgtgtgtgtgtAGGGAGAGAAAGGGGGCAATGGAGTGGAGagtggaac
-tacaatttattaagcacctattattacaagccaagtagggtgttaaatattttcctcgtg
-ccattccattcaatactcTTCGATCCTGAGGGAAAACGAACCCACTTAAAAAAAAAAACA
-AAAGGTTTTAATGAGGATTGCATAAGACATGCAAGGTCACCAGGGAGTTTACATGCAAGT
-GGGGAGATACAAAATAATACAACAAAAGTTCAGGTGTTCTGAGGAAAAAGAAGGGCAAGG
-GTAAGTGATGACAGTGGGGGAAGTCGGATTCAGGATAAACCAATTTTAGACTCATTTTTT
-GAGGAAGGAACTGAGCATGACCTTACCACACAGCCTTTTTAGTTAAGTGTTTCTTTAACT
-AGGAAAAGGCCCTGGGAAGACAGGCTCTCTACTATGCAAACCCAATTCCAGTCTTGGGAG
-AGAATTTGCTGGTGGGACAAAATCAGGTTTTTCAAGAGATGCTTAAATGGTCAATTCTAA
-TTATAACCATACTTGTCAAAAGGTGAAGCAAAGATGAAAGTTAAAAACTAAGAAGAAATT
-AAAATTCCCAAATCTGTCAACCAATCTCTAATTTTCTCTGCTACTTTAGGACTATAGTAA
-TTAGCCATACCCTGAGGATCTACTTTACAAGATATATTCCTCTGACAGTCCCACTCTAAC
-AATTTAATCTATCTTATGTAAGCTGGACAGGCATTTCAAGTACAAGAAACAGAATTCAAA
-ACGTGAAAACGGAGCCATCTATCACACACGGTGTCGGTTGGAGAAGCATATTGCTCAGGC
-TGCAGGGACATTTCatttatttaaatgtttttattaaaaaaaattaaaGACCTTCATGGC
-ACAACTTCTTCCCAGCACAGTTATGGTTTAGTCATACCAATTACAATACAATTACAACCA
-ATAAAGCAAGGTGGGGAGGGCCTTCTGGCTTCAAACTTAAAAAAAAGCAGAGGAAGAGGG
-GAGGGACCACTTCAAACAAAGTTTAAAAATACTTTAAAAAATCTTTCAGAGTAATTGCCA
-ACATAACCTTTCATGTTGGCCATTCCATTTCCTGCCATCTAAGCAATGCAGACACAGGTA
-GTGCTGAGAAATAGTGTCCCAATACAAGGTATACAGATGAGGTAATTTACAACAACACGT
-AAGTTGTTACTCTGTAAACCCTTGCCTCCCCCCCACCCCCCACCCAATTGGGTCTTTTTT
-TTTTTTCTCTCTCTCCATGCTTCTGCAGTGACTCTTAAGTAGCATTTTTAAAAACTTCTA
-TTTATTTTAAAAGGCTCTTGGGTGGCACCTCAGAGTCCTCTGCATTCACCTTCGGTTTAT
-TCCAAGGTCTGATGGGTGTAAGGAGGTCCAGCTGTCTGCAGCTCTCCGCATCAGCCTAAG
-CTACACCTCAATTTCCGAGCTACAAGGATAGGGTATGAAGTCTTGATTTACAACCCTCTC
-CCCACCTCAAAAGAAAGAACTCATTAGTTATAAGTGTCCTGTTCAAATCACAATCCAGTG
-CAAACATAATCACAAATTGCATCTCTGGCACATCTGGTGCTTTTAGCTTCTGCACAAATT
-CAACATGGTAACCCTCACAGCATTCTAGGGCATAAAAGGGTCAAGTACAATAAATATCCA
-CTGTAAGTGGTCATAAGGAAGAAAATCACCCTGCCACACAGTCAGAATGTTTTCCCTTCA
-GCTCTCCCTACCGTTGAGAAGCGCTATAAAAGGAGGCTTTAGCGTCCTCTAAAGTTTACC
-ATTATATTCACTAAAGCCACCACCTTGATAAAGTTACTAAAGCCAAGATGGGTTACAAAG
-TTAGATAAGTTCATTAAATTCAACTCCCCAAACAATTACGTTTATCTATGATGCCTAGGC
-GAGAAAGGCCTGTGAATCTATAAGGTAGGAGAATGGGGAACTAAGATTTTAGGCCTTAAA
-ATATGTTGGAAGAATTTTTCCTAGTTCCCACAAGCAGCTACTGTAATGAAATAACAGGAG
-AAAATACAGAGCTGATGGTTTTGCTATTGTGCTTAAAAAACTAGGCTTCCTCAGTGAAGC
-ACCTGATAAACTTAGGTGGTTGGATTACAGTGGAAAGTCCACTTTACACACACACACAAA
-CACACAAAAACTGGCGACTTTTTCCATCCCCAATCCCTGCACTGCTGAGACACAAAATGA
-GTTTTATGGCAAAGGATCCTTAATCCCCAGAGACGCTTTGGCTTGTGGTGCTTTTTTTTT
-AAGGCCTCTCTGCTCTGCCCGGTACCATGGGTCGAACGAGGGGTGTATAAAATGGGGGCC
-TTGGGAAGCCTCCACGGTACAGGGCTGCAGGCCCCTCAGATGTGAACATGAGACACCCAC
-CCAGCAAGACCTTTACACAGGGAACTTAAATCTAACCTTGATAAATAAAACCAAACGTTT
-ATTTACACCAAAGAATTCCAACACTGGATCTTTCACATATGAAGGACAAAGTATTATATA
-TATACACACAGCAAGGGGTGGCGGGGCTGTAACAAGAGAGTTTATAGTTTTCCCACAATT
-ACAGGTCTACCATTTCAGCTTCAATGGAGATAGTGGCTCTGCTCCTACCTCTCAAGATAC
-ATTTACAAGACTGAGGAGCAGGTCTTCTCACTGGATGGCATGTGAGGGAAGGGGACGGTC
-GGAGGAAAAGAAGGTAGAAAGCTTAAAATGGAAGTCAGTGTGGCCACATCTCCCATTAGC
-TCTAGCATGAAACCTGTACAGACAATGTTTGTTTCTTTTGTAAAAAGCAGTAAGTTATGC
-CCAGTAACTAAATGAATTCAAAATGGCCAAGACAAAGAAAACTAAGAAAGATTTTGCCTT
-CCCTCTCCTACCAGCTATGGAGCACAGCATGTTGGGAGATGAACAGGGAAAAGACCAAGG
-TAAGGAGCCTGGGAGGGAAGGTATCAACATTTTAAACTGAACTAAAAATAAAAGTATAAA
-TGAGTTGGATTTAGGGTTAGATCAGTAAGACATGATTCTTACTGAACAGAAGTTTTTAGT
-ATCTGTCTGCATTTTGGGTAGATTTTCAACATCTTGATGTAACTAAGACACACTTCCACA
-AGAGCCACTAGGATAACCCCACTGAAGCGCTTATGGAGTAAAGTGATGTAAGCGACCAGC
-AAGCAGTCCACTGCTCCTATAGATTGGGtcctcccttccttctttccttccttcctttct
-tcctgcctcccCTGAGAAGCTACATTTTTGTAATCTCTGGAGAAGAGCACGAGATACCAA
-CCCCCTAAAGTGTGGGACGGTGGAGGAACAATGGTGGGAATGGGAAGAAGTCTCCACCTA
-AATGCAGCAGCCGGGATTGAGGCTGGTTTATCTTTGTTCTTTTGTGATGAGGAACTAAAT
-TTGGGAGGGGAGAAAAAAAAATTTGTCCATGAAATATTCCACCTGCAGGTAATTTTTCAG
-GGAATCCCCTGAGTTATGAAAAGTTCGAGTTAAAAAAAAAAAGAAAAAAGAAAATCAGCC
-TATTATAATTTTTTTTTTATGACTGAACTACTATAAATCCACAAGCAACGGTTCAGACAC
-GGTGCTTCTGAAGTGTTTCACCCCTCCCCGCCAGGCGCAAGCTGCATCAAGGAGAGGGTG
-GACTCCCCCACCTCTGCTCAGGCATCAGGAGACAGATAGGGCCGTTACTGCTGAGCGCCA
-GCGGCAGCTGGAACAGGCATCCCAAGGGGGTTGGCAGCAGCAATCACTGGTGAGCCTGCC
-AGAGGTCCAAGGGGTGAAGGGGTTGGCACTGAAGAAATCCCTGAAAGAAAAGAGCTGTCA
-GTGAGCCAAAGACACCAACCATGGCAATCTTACCAGTTTCTCATAGCACTCACTGCAAAA
-GGAACACAATAATTCTTTACTGAAGACTTCCTCTTAGCTGGATTtttacatatacttcaa
-gtctgaccctcacaaattcaagttaaagtggcaagtcctaatcaatttaagagacaggta
-aagaaatctaggcttggacaatttaaggagtttgtccaaagtacacgattaagcaagtgg
-caaccatggttggattctaacccaggcctgtctagGGCAGAGATGTCCACCCTGGTGACc
-agtagccaaccacatgtggctgctgagcacttgaaatatggctagtgcaactgaggaact
-acattttaaattttattcaattgtaattaaatagcctcacgtggctagtcactaccatac
-tgaacagcacaTGACTGCAGTCAAAGCTCATGTGCTCTTACACCATGCTGTCTTGATAGC
-TGGCAGCTTTCAAAATTACTGAAAGTCAATTTGAATGGGGAAAGAGCATTTTCTAAGATA
-AAATTGTGTTTTGGAATTTATTTCCATTTGATTTCTTCCACCTCTCTAATCATGTTTTtg
-tgtgtgtgtgtgtgtgtgtgtgtgtgtgtACACACAGGTAATACATTCACATGGTTCAAA
-ATACAAAAGGTTCAAAAAAGTATACAAAggccaggtgcagtgtctcacgcctgtaatgcc
-agcactttgggaggccaagttgggcggatcacctgaggtcaggagttcaagaccagcctg
-gccaacatggtgaaaccccatctctactaaaaatacaaaaattagctgggcgtcatggcg
-ggcgcctgtagtcccagctacctgggaggttgaggtgggagaatcgcttgaacccgggag
-gcggaggctgcagcagctgagattgtgccactgcactccagccttggccacagagcaaga
-ccttgtctccaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatatata
-tatatatatatatatatatatGAGAACATTATTATACATTCTTCTCCACTCCTCTTAGAC
-ATGGCTCTGCATCTCACtttttcttttgagacagagtctcactctcacccaggctggagg
-gcaacggtgcgatctcggctcactgcaacctctgcctcccaagttcaagcgattatcttg
-ccttagcctccaagtagctgggattaaaggcgccgccgccacgcccagctaattttttgt
-atttccagtagagacagggtttcgccatgctggccaggctggtctcgaactcctgacctc
-aagtgacccacccgcctcagcctcccaaagtgctgggattacaggcatgagccactgcac
-ctggccctgcatcttgcgttttaaatttcacattattatattggagttggagatctaaca
-gaacatgaaactcttattctactggctgcaccacattccattaaatggatataccataac
-tgatttaaccagtttcctactgatagctattctcaatgttttgttattacaaataaggct
-acaagtaagtttggatatacattactctgtacagaggtaggatactcaaggggtaaattc
-tagaagGCAGTTAGTTCTTTTCTTAAAAAAGAGGAGGGCAACAGCAATTATTTGAGGATA
-TGTAAGTAAATGCCTTCACTACCAGATATGCACCCACTTGGATGTTGCCTATATGTATAA
-TTCTTATGCTATGTGCCTGTAGTTCCTTTGGAATAACTGGGTACTCTATAAAAATTCACT
-GTGCGTCACAATGATCCAATAATGGAAAACCATTTTACTTATGTTTTTACAACTGATAGG
-CACTCTATAGTTGCTCTGGCACATGTCACGGAACTGTCCTTGTACACATACACACCTATG
-TATAAACCCCACCTCTATACCCCATTTCTTAACATTGTTTCTAAGGGCCATGTAACTACT
-GTCATTTCAAACTATAAGATGAAATGGTGTATTTTTCCTTTTCATGGCTTGGCACTTTCA
-AGCCCCTATGCCAAAAATTTTCAGCCAGGAATGCTGAGATTCTAGCCTAGAAGGGGATAC
-CCTACTCAAGACAGTATCACTAAAGTATACCAAATGTCAAGCATGCTGAAACCTGGTTAA
-AAAAAAGTCACAAGGCCACCAGTACGGAGAAGAGAAGGTATACAAGAAATCAGACCACAA
-AGCTAAGAACAGTAATTGACTTCCACATTTTTTTAAAGAAAATTTACCAATGAACTGACC
-TGACATCATATTGGCGCTGCTGACGGGCGTACTGCCCCCTGGCATGCTAGATGAACCCAT
-TCGAGCCTGGTCCTTCACAACAGTGTCTAGAAAAGAGACAAAAAGGCTAGGTTCTGTTTT
-GCTTGAAAGATTAAACTAATGGTCTGGAAGCCTGAAAGCAGCCAGCTTCATTCTTTGCAA
-TTTATATATACTCTACATTATTCCCCAAAGAACTTAAGGTGGCAATTGCCTTCACCATGA
-ATTAGACAAGTGGTAAAAAGCAGAAATAGCTTTCCTATCAAACTGTGGTAAAAGCTAACC
-TTTCAATCAAATGGTAGAAAGATGAGGTAATTATTTATAGCAGAGCGAATTTAATGAAGC
-CCTGGTCCTGTTGAGGTTTAATGGAGACAAGACACTGTAACTCGGCAAAGACGGTAATAT
-ATTACCAGTGTGTCCACAGCCCAGTACCAAGTAGGCCAAAGCTATAGGTCCATGTAGCTT
-AGGGCTATGACCACATTCTCTATCCCAATCAGCCTATCTATCTGCTTCAGGTATTGGGCA
-AAAGTATAAATGATTCAGTACAAAACCATCACACCGAAGGAAAAATGTCATGTTGCAGCT
-AACATCACAGTGCAGATGGGGTGGGTCTCAGTGGTATTTTCACTTAGGATGGCACAGGTG
-GCTATACTCACAAATCTAAGTCAAGGTGTTCATACAATTTTAAGATTTGTAAGCCTCATT
-AGCTCTTTCCAACGAATGATTACTAGGGACAGGAAAGATACAGGGCTGTGTATTCTAATT
-CAACCATTCCAGACTGAGGCACTGAGAAGTGTCATCCTCACAGTATGAAAAGAGTTTATT
-TAGGAATGCTCTTGTGTCATGTATTCTGTTACAGAAGaattcttccagtaattctgcaat
-gtagttgccatcactatccccactggaagaatctgaggctcagtgtgggtgaattaactt
-TGCAGCAAGCTGACAGGAGCTGGGATTACGACTCTGTTCTATAGGACTCTGCGCCTGCAC
-AAACTCTGTGGGCTAGATATCTGGACTCACAGAAATAGGGGTGCTCCATTGCCTCTCTTG
-CAGTAAGCCGTGACTGGTGGTCATATCGCAGCAGTTTGTCCAGGAAATCCAAGGCCTCAG
-GGCTGACAAGGTGCTGATTTTCACTGTGGACAAAGCGTTCCCATCGCTTTCGAGAGTGTC
-TGCAGGACCAAAAGAGGGCATGAGAAATGGGCCACGTGGGCACAGAAGCCCAACATTTCA
-TTCCTACATTTTTCTTAGTGGCTAACAGCCCAGACAAAAGCAAAGAGGGATCCAAACTCA
-AGAGGGTAGTCTTGCACCGCTCTGCCACTGAGTGGGACAACAAAGCTAACTGGAGACTGG
-AAACAACATAGCTAGAGTGAAAAAAGACATCTGAGTCCTCTCAATTTTAAGAAACATAAT
-TCAGGTTACTTGACAGGACGTGACCGCTTCTGTGTAGCAAGGAGGGTCAGGTGGCTGAGC
-TCACCAGGCCTATTTCCCATCCCCACACATATTCCTGGCATCTCTGCCAATTGGCCAGCA
-AAAGCCTTTGCATCAGGAAAGTCCATCTCCTCCTGTTGAGTGGTTAAGTGTATAAGTACT
-ATATCTAGTCACTACTGTTAAGAGTCGGTTGTCTGCATATAGCCtttttttttttttttt
-tggagacagggtctcactctgttgcccagactggagcgcagccacatgttcattgctctc
-tgtagcattccctcctgggctcaagggaagctcctgcctcagcttcctagtagtctggac
-tactgccacacatcaccatgcatggagtcgagggtctcattatgttgtccaggctggtct
-ccaactcctgggctcaagtgatcctcctaaagttctgggattacagatatgagccaccgt
-gcccagccTGCACATCAGTCTTAAAGCATGCATTTTCTACTTCAATTTCTTTCTCTTGGA
-GAGAGGTTTTTCACTTAAAGAAGCAAGGTAAATTTTGATTTTTGCCTCAACTGTAACCCT
-TCTACTAGAATCTACATTCATTTTGTAGGAATCCTCTAGCTATAACCCCTCCATCAGACT
-CCTGTAAGTTAATTTGAATAAAGGGCCATTCAATCCAATGCCTTTATCAGAGGCCTGCTC
-AATGCAGCATCCTGTGGCACTGGACCACTGACATCCTGACAGTGCTGGCAAAGAAAACAT
-AACTATTTTGAAGATCCTAAGTGCCAGTTCACTCTCAAAGTGCTTAAGCCACAGATGCAC
-ATATTTTGTTTCATGACTTACCTGCCCAAGATATCATTGAAACGTGGATCTAATTCAATG
-TTGTATTTGTCAATATAGTCATATAAATCTTCTGTCCCCAGAACCTTGGCTATCCTCACC
-AACTAGTATTAAAGAAAGACAAAAACCCATATCACAAGCATATTATATTAACAAATCAAC
-AATTAACAATGATTGAATTTACATAAACGGGTCATCATGTCTACAGGTATGAATGCTACC
-TCCTAACAGTTTAGACTTCAACTCAATGTGATAGTGTTAGAAAAAGCAAACTACTTTATA
-AACTGGTTTCTTCCTCTTGAAATGtcaccctggtgaacccttatttttctcccctcaaaa
-cccaattgaagatgtcacttcttttgggaagctcccattgcacactcaaactactcacca
-ctactgccttttgtgccttgtccacatttctactctgaagttatgactgtaacctatttt
-gttgtatgtttgactcccttacaagatcagctatgaactatctgaggggaagaaaactat
-tctttcttttttctgtattcctcagtactgcatgcacttgatacagagTTATTGACTTTA
-ATGGAATTCAGGTTGTATTCTTTGACTCATTAAAATTGGACATGGTGCTCAAAGGGAACA
-AGACAATGGTACCTTCCACAAGGTCCTAGAATCATTCCAGGTTCTTGTGAATGAAAGAGC
-CCTTTGATCTTCAAGGGGGAAGTGGAGTTAGTTTAAGAAACATCTGTAACTCAACCCATA
-TAAAGAGCCAAAAGGATCACAGAAATACCACATATGGGCTCACATATTGGAGAAAACACC
-ATATTGGAGATAAGGGTTTATTAGGAGAATTCTAAGGTAATGTCCTATTTTAAAAATCTG
-GATGACAATTTATATGTATTCTTCACAATAAAATAAGCAATGCAAATGACAAAGACTAGG
-GGGGAATGTCTGATTTCAAAAGGCTAAGCTGGTAGCTCCCGAAACATCAATCTAAGGATC
-AATATCGGGGTGGCTGAATAAACAGTGAACTGAAAGTTACAGGCAGTGCTGGCTATCATT
-GCATTAGGCCAGTACATTTTTCAATGGGTATAACATATATTACCTGATCATAATTGTCAT
-GTCCATGGAAAAATGGCTCCTTCCGAAAGATCATACTTGCCAGCATACAACCCAAACTCC
-ACATATCCAAACTATAATCGTACATCTGCATAAAAGTAAACTCACTGTTATTATCTGTGA
-ATCCTCAGGCTTGTCACTTCaaaataaaaaattaatttttaaaattaaaaaaaaatCACT
-CCACTGACTCAAAATCAAAACACTAATAACATCTTCATATAtttctttttagtctttctt
-ttttttttttttggagacagagtctcactctgctgcccatgctggagtgcagtggcgcaa
-tcttggctcaccacaacctccgcctcccgggttcaagcaattctcctgcctcagcctcct
-gactagctgggactacaggcgcgtgccaccatgcctggctaattttgtatttttagtaga
-gacggggtttcactacgttggccagtggtctcaaactcctgacctcatgatctgctcgcc
-tcaggttcccaaagtgctaggattacaggcatgacccaccgtgcctggctAGttttttct
-tttttttttttttttagttttttttttagttttttcttttATGCATCTTTCACTCGGTTT
-TAAAACAAtttttactttttttttttttttttgagacagagtcttgctctgtcgcccagg
-ctgcaggggtgtgatcttggctcattgcaactcagcttcccaggttcaagcaattctctg
-cctcagcctcctgagtagctgggattacaagcgcccaccaccgcgcctggctaatttttt
-tgtatttttagtagagacagggtttcaccatcttggccaggctggtcttgagctcctgac
-cttgtgatccacttgccttggcctttccaagtgctgggattataggcgtgagccactgtg
-cctggctCttttttttttttttttaaagacacagggtcttgctctgttgcccaggctgga
-gtgtagtggcgtgatcatagctcactgcagcctccaactcctgggcttaggcctcctgag
-taggtaggattacaggcatacaccactatgctcagctaatATACATACTATTTTGAATTG
-TTTTCTTCACTTACATGAAAAAAAAAAAAAAAAAACCTCCAAATTGTTAGCCCATGGAGA
-CCATCTAATGTGTATCATTAGTATTTTATTACATAAATGTTTCAGAATTCAATCTTTAAT
-TTTCCTATAATAGGACAGTGTTCTGTTTTTCACAATTATTAGTAATACTGTAAAAACTAT
-TTTTATGCATAAAATGCTTTTTGAACTCAGGGCTATAGCCTTAAGACCCCAAGAAAGAAA
-TTCCTACAAGAACAAAAAGTCTGAAACTTTTAAAATCAACTGATAATAACCTGGAAAGAC
-TGGGCATAAAAGATACTCCCAAGAAAACTTCAGATTTTTAAACACTTGGCAAATCTATTA
-TTAATTTGGTTCCTTTCTCCTTTTTCTGTGAGGAGAAAGAAGGCTTTTTGGGGGAGCTGG
-GGAGAAGACCTTTTTATTTAGTATACAATTCAGAAGAACAAGAAAACATTCTTGAATTTA
-CTCTGAAGATTGGTTAAACTTAGTTACAGGATgggcatggtggctcatgcctgtaatctc
-agcactttggggagccaaggtgtgaggatgggttgtgcccaggagtttgagatcagcctg
-ggcaacatagtgagactttctctctacacacaaaaaaattaaaaattagctgggtgtggt
-agtgcacgcctgtagtcccagctactcaggaggctaagctggaaggatcacttgagccca
-gaagttcggggctgcagtcagctatgatcatggcattgcactccagcctgggcaacagag
-caaaaccctgcctcagaaaacaaacaaaaggccgggcgtggtggctcacgagggcaggag
-atcgagaccatcctggctaacacagtgaaacccagtctctactaaaaatacaagaaaaat
-tagctggggtggtggtgggtgcctgtagtcccagctacttgggaggctgaggcaggagaa
-aggtgtgaacctgggaggcggagcttgcagtgagccgagatcatgccactgcactgcagc
-ctgggcgacagagtgagactccgtctcaaaacaaaaacaaaaacaaaaacaaaaCAGCTT
-ACAATTCAAAACAGTTCTGGAACTGCTGATTATAGAACATATCTTTGGCTACTTTCCCTC
-AAGTCAGGATCAAATGCAAACCTATTCATATTCTACCGACATTATGACAATAAAAGTAAT
-GTAAGTCATGGTACATGAATTAAGGTGATTTATATTTTACATTTCATATAAAAAGGACAG
-CTGTGAATGTGCATTAAGTGGCCTACCTAAATGCACAAAATGATACTTTTTTTTTTTTGG
-TAAATTATGTGCGAAATAAACACAGGATCAAAACTGTGCCTGCCCTTCTGTTCTTACCTG
-ATAGTCTACAAGTAGCTCAGGACCTTTGAAGTATCGGGAAGCAACTCGGACATTATATTC
-TTGGCCAGGATGATAAAACTCAGCCAAACCCCAGTCTATTAGTCGTAGCTGAAAAAGAAT
-AAACCATGAGCAATCTTATCTTTCTCTAAGCTACCCACACTGTGCCATTAGCATACTCTT
-GAtaaaatataccagacacgtcactctttactgaaacccctccactgactacttatagcc
-tttagaatgaaaataaaacttcttagcttgacaaacctctttctccatgattttgttccT
-GGAAGACACAATCTCACCTGTGCTTTTACAAATTTCTTAAACTGCTCAATGACTAAAATG
-TCCCTACTACCCAGCCTATAATCCTATTGGTAAGCATTTCCTTAACTTTTGGAATATTTA
-AGTCAGCTTCTCAATGAAGTCTGATCATTGCCTTCAGCCCCCTGAATTTTAGATATATTT
-CTTTAACAGAACCTAAACTCTTTATGTTTTCTACCTTtctttttcaatatggacgacaag
-ctccttaggggtagggactgttttattcacctttgtaattttcagaattcaacataatgc
-ctggtatacaggagaaaaatgaataaatatttgctggatagatgaaATAACAGAAAAGTC
-ATACAATACAGCTTTTACCAAAATGCATCCTAAACATGGAAAAAGGGGTAAGAGGCAAGC
-TTATCTGCCCACTGTGCATAGCATGACCATGATCTGAAGTGCCAGCAGTAGGCCCTGAGG
-AAAAACATCGGACTGCTCTGGCACTAAGTTTACTGCCTGTATCTcaaaactaaacctttg
-attactccctgcaaaagcacctccactcagtctccccctgttcggttaaaggtgatactc
-atcctgtcatacaagccaaaacttaagattcaccctggattcttgattccctcagacctc
-acatttaatctgtcaaaaaattctgaaggttctatcatattgtgaccattatcatcacct
-ccactgccactgccccgatccaagccaccaccacctcttgtttgatatattgccatagcc
-ccttctcctaactggtctcactgctttcactcttgccctctagtctaAACAGtttaataa
-atactaaatagtttaatagttattttaaaaataattaaatatttaaaaataaatataaaC
-AGCTTTTTAAAAGGATTGTTCAGGTTGCTATGGAGAGattatagattcacaggaaattgc
-caaagtagtagagattctctgcaccctttacccagtttcccctaatagtaacatcttaca
-taactacagtacaatatcaaaatcaagaaactgacactggcacaattcagaaagatctta
-ttcaggtttcaccagttttacatgcacgcatgtgtttgtgtgtgtgtttctatgcaattt
-catcacatatgtaagttgatataatctcctcaacaagatatagaactgttccatcaccac
-acacatgtcctgtgtgttagcccaacccctggcaacccctctgctctttatctctatcat
-tttgagaatgctacaaaaatggagtcattggcatataactttttttgagactgccttttt
-tcactaagcatgagatccatccaagttgttgcatgtgtcatacttctttcctttttattg
-ctgagaaatactacttcataataatattatatggtatggatatgccagtttgtttaacca
-ttccctcattgaagggcacttttccccatttttttttttttttttttttgagacgcagtc
-tcgctctgtcacccaggctggagcacagtggcacgatctcggctcactgcaacctccgcc
-tccggggttcaagcaattctcctgcctcagcctcctgagtagctgggattacaggtgcat
-gccaccaggcccggctaatttttgtatttttttagtagagacagggtttcaccatgttgg
-ccaggctggtcttgaactcctgaactcgtcatctgcctgccttggcctcccaaaatgatt
-acaggtgtgagccactgcacccagcttttccccccaattttaagctattacaaatatagt
-tgcattcatatataggcttttgtgtggacctaagattttgttgctctgagataaatgcca
-ctgcaggattgtatggtaagcatatgtttagcttttcaagaaaccaaccaactataaaac
-aatagttaagcattttccaaaatgccaaactttgcattcctaccagcaatgtatgagaga
-tcaagtttcttcacatttttgccagcacttggtaccatcactattttttattttagctgt
-tctaataaatgtgtagtTAActtttaaatttcaagtgagaacatgctaaagcttagaata
-tgcaaaagctctctatcttcagagaaaaggcctaacaatgaccaataaggttttacatga
-tttggttttacctctttgatttcatttcctccttctttccccgcattcattctgtcccag
-ctttatccttgctgctgctcttccaacatgccaaacatatccttacctgaagggcttttg
-tacttgctatttactctgccttgggacatgtttcttcataagactgcatggctgggtccc
-tcccagtgctctctaaaatgtcacctttccaatgaaaccttcccttataactggtttaaa
-actgcaaataccctcttgccattccctattcgttttttcttctacatcaaaataactttc
-tatcccaccagcctccctaaatgtagctcctaaaagacaagcatttattgtatgttgagt
-tcacttacatatccccagccctagggtggtgcctctgacatggtgtgtgtctaaaagtaa
-ttcagttgcataaataaatCACCTGCCTCCCCAGAGACCACAACAGGCAAGTCATCACAG
-CTTGTCACCTTAAAAAACTGAAATGCTAAAGCATGTGGCCATTACAGCTCTCATGTAAAA
-GCATTTGCAGACAACAGGGCCCTTATGACATCCAATAAACAGAAACAGCATTTTCTGTAT
-ATCTCGTCCACTTAACTGTGCAcatttaattctcacgaatacctagtcgcctgcagggct
-attattacccacactgtacacgtaagaaaaagaaggcaaatggagagaaagtagtttCTC
-AGGAAACCAGTTACTCAATAAATAAGGCGAGAAGCCACGTTTCCGGGCTTAGAAGATGAA
-CATTTTGCCCACTTTACTCATGTTTCCTTCTTGGGAATATTCTTAGGAATATAAATAATG
-GTTCAAACATGTTGACTTGTAAATTCGTAcattcattcaccaaatatttctcaactgccg
-aataggtactagggcctgtgacaacacaagggataaagtgttgaaGATGGGCAATTAGCT
-ACATCATGTAGATAAATAACACTTGTCAGCCTATCACTTTACCTTTCTGTGCTCATGATC
-AATCATGACATTATGGGGCTTGACATCTCTGTGCATAATTCCCATGCTGTGACAATAATC
-CAGGGCCTGTGGGATGAACGGGTCAGAAAGGAGTTAGCCTGAATAATACGTAAGAGTCCT
-TTACTTTTCCCTCCATGTAAATTTTCCTTTTAGCCTCACAATACCCCTGGGATTCAAGCT
-GAGGACACAGTCACTTCCACAGCAATGCTTCAGAGACTTGTTCATGATCTCACAGTCAAG
-CAAACTCAGCTCTCTGAGCTTAGAGATCTTTTTCTGACACAGTTGTTTCAACATGTTTTC
-TGTCCTAAAAGACCCAAAGTATACCCAAATTGCACCACTTCAAATTTTTCTGTCTTGTCC
-AGATCCTAGATTATTTCCACAGACCCCTCAAAGAAAGAAAACAGATCTTTACTACAAACC
-TCTTATTCTAAGAACAGTAATTCTTTAGCCATTAAGAGTCTGTAAcagaggttggcagac
-cacaggccaaatttggcctgatgtctgcttttgtaaataatgttttattgcaacatagcc
-atgcctatttgtttgcatattgtttatggttgctcttgtgcaacaacagcagacttgaat
-agtgtgacaaacactacatggcccacaaagcctaaaatatttactatttggccctttaaa
-gaagtttgccaatgcctgATTTAGGTCATCAAATCCAATCTGAAATGTTTCCAACCTCAA
-ACTAAAGGGAACTGAGTAGTATAATCTTTGGGGTTTGTTAATCCCAGCCTTTCAGTCAGC
-CGACGTTGTTGGCCAAATTCTTGTCCTTCCTGAAGGGCAACTTGGGTTCCTACAGTTCCC
-AGGGCTGGGCAATCATATCTGTAACTTTCTAAAGCCTTGCTTGCCACAAACTGCATGAGC
-CAATGGAAAGATCAAGTATCTCTGCTGGCACAATCTCCTCAGGGGATTTCTAAGGCTCCA
-ACAGCAGGCTTTATGTCAACTCTTGTTTAGTAAGAAAGCTTAGCCAACTTTTAGCAATTC
-TCTCTTCTAGGAAGCTGATCTTGTGGCTACTGGGAACAAGATATTTGGTGACCCCACTTT
-AGAAATGTAAGTAAATTTTCAATTAGCATCTATAAGCAGAAATTTACACAATCCTTAGGA
-CAATTACCCTTTGAGAACTGAGTTAAAGTTTACTGTTTTATTTGCTGACTCTTAAGTGAG
-ATAAAGTATACCAGAAGCTAGCACGTCAGGTGTTTTCACGAGTTTTGAAAATTTAATATT
-AACTTACATAGGGGCCACAGAAATTACAAATATTTGTTAAGGGGTCAGTCCCAGCTATCT
-TACAAATACCCTTTTTCAAATTGTTCTAAATTATACTCCCACTAGACCCCATTCCATAAC
-CCTTAGCACAAGGGTTCTGATACTATTATTATTAAtttttatttatttatgtatttagag
-acagggtcttactctgtgctactgcactccagcctgtgcaacaatcatagctcactgctg
-cctcaaattcctgagatcctcctgtcacagcctcccaagtagctggaattacaagcataa
-gccaccatacccagctaatttttaaattttttgtagagacagggtctcactatgttgctc
-aggctggtcttgatctcctggcctcaagcaatcctcctgccttggcctcccaagtagctg
-ggacttacaggtgcacaccaccatgcccagGTAATTAAACAAtttttttttgtagagatg
-gggatctcactatgtcacccaggctggtcttttgatctcctggcctcaagcaatcctcct
-gcctcagccttccaaagtgctgggattacaggtatgaTACTATTAACTTATTAAAAACTT
-ATATAGAGGTCCCTTCTTTCAACATACTTTACAAAGTTAATCTGCTGGCTTTTCTACCAT
-CAATTGACTATTTAACAAAAAGAAGACCAATTTAAAAAATATTTAGTATTCAAGGTTCAC
-TTACCTTCAGAATCTCATACATGTAAAATCGAATATCATAGTCTGTTAACGTCTGGTACA
-ATTGCTGTTAAAGACAAATGTTTGAGCCATGAAATAATGCTGACAGAAAGGCATTTTTCA
-CCCTCACTCACAGTAATTCAAACCAAGACTTGGCTCATTTACCGTTGTTCCAAGATCTGT
-CCATTCACTGCCCTCTATTTCTCCAACATTACATTAACTTTAAAGAGATACTTTGGGTCT
-TCAACTCTTAAAAATGAAGAATTACTTAAACATATATTGCGGAAGCTATAATCCACTGTC
-AGAAACATACTGATCTAGATACGTTAATATGCACTGACACCCACCTATAATTTAGTTTGC
-TTTTCATGTATCTTCAGACCTTCTCAAAAGAGGCATTTTGGCAAATATACTGCCTCCTTA
-GTAGGGAACTAACTCATCTTTGCCTTACATAGTTGGCCCTGCAGATCACCAGTGGGTATG
-CAGATGGCATGATACCAAACCTGTTGAGTCAATTTAACAAAACTATTCTTGTTCCAATTG
-GAAAGTAAACTCTGAACAACTGTTATGTATCCTTTCCAGTTTCCAAAGAGTTGCAGAATG
-TTTTTTACATGGACATATCttttttttttttttttttttttgagacagggtcctcactct
-gctgcccaggctggagtgccgtgctgcaatcataactcactgcaacctcaaactcctggg
-ctcaagcgatcctcctacctcagcttccccagtagctaggactacaggcgaaagccacca
-tgcccagcCACAGGTACGTCTCTTTAATGGTTAGCAACGTCTTCTGACAAAGTTTTTCTT
-GAAATTATCATTCTGACTCTAAAGCAGTTCCTCTTCCTTTCTCCCTATCTCTGCAACAGA
-ATTCACTAATTTATTAATATATAACATTCTGGATACTGGACTGGTGGAAAGGCAAATCGA
-AGATTTTTACTTTTACTCCAAAAGAGTAGCTATATTCTTCTGTAAAATTGGAACTGTGTG
-AAATAAGTAGGCCACTGGATAGACTGGAATTCTGAGATATCTCTTATAGAGGTTTGTGTT
-ATGGCAGAATTTGACATTATCCTTCCTCGATCCCTGCCTTTTAAGATCTATAGCCCACAG
-TTTATGAGGAATCCTAAGAAATAAGCAGTCCCTACTTTTATACATACAATATATTTCTTC
-CTGAACACTATTGTTTAAAGCGAATTGCCATATGGCCAGATCCTAAGTGAACGTGTGTTA
-CTGCCTTCATTAGGTTGGACATCAGCAGAAACTGTCAACTAAGTAGTGAGAAGTCAATGT
-GTTGGTCATTAAAAAGAACATTAAACAAATGGGCAAAATATCAAGATGCAGAAAGTGGGC
-ACTGCTTATATAGGAGTTCTTCTATCTTAAAATTTGCACTGTAAGGATGAAAAGCTTTTT
-AAAAACAAATGCGAAGCAAGCTCTTCTAACAGCATCATCCCCAAAGGCTATGTGGTCTAA
-AAACCCACTAGCCCGAAACAGTTGGTTATATATTATACCTTGAAGTCTGTGTTGTTTACG
-TGTTCAAAAACCAAGGCGGGGGTTCGTGACTAGGGGAAAAGAACAAAAACAAAAACACAC
-ATTAGCAATAGCCCTGACAGCTTTAATGGGGACAATGTTTGCGGATGCTGCGTGGTGAAA
-TTTGGCAGTCCTCGCCTCAGTAGTAAGAAACCCTCTATTGCTACAAGCCCTCCCCGCTCT
-GATCATCACCGCACTTAGGTCATTTTTGGGATGGATTTCAAACAGAAGACATGGAGCTGA
-AGTCTCACCAGGCTCTAGGCAGCCCGACAATGCGCCCATCGCCCATCGGCATCGGACCTG
-AGTTTGCAAAATGGATTAACACATTTCAGTTTCCAGTGCTATCAGTCTCTTAGCCTAGAA
-GAATAAGAAATAGTCTGTGGGTGGAGGTCTCTTTGAAAGAAAGACCCAAGCTAGTTAAAT
-GGTATATCTGATTAAGCACTTTCAAAGCAGGACTTAATGATGAGGGTTGGGGGAGGGAAC
-AAAAAGAGGCCAGTTGTGCTCCAGGTCAAACACCATCTCAGCTCTGGCGGGCCTTGCTAA
-CACCTACTATACTCACCACAGGGTCTTTTACAATGTCTGCCAGTGTGATGATGTTGGGAC
-CTCCTCTCAAATTCTCCAAAATCTTTATTTCACGCTTAATTTTCTTCTTTTTTACTGGCT
-GAAAGGGGAAAAGTACATCAGCaaaaaaaaaaaaaaaaaattttttCAGAGTATTTCAAC
-ACGTAGTGTAATACATAAATGATAAATGGCTTACTtatgagcacaccttgaaggaagaaa
-atgtgtcacattcgtctctgaatccttctcctagcactgtgccaggtattctgcaggtac
-ttacaaatgttgaattgaaagaaAAAAAGATTTCTATTCCAAAGACCAGACACTTCTGCA
-GAATTAGCATTTCAATCATCAGTCTTGATGTTAATGTTTTAAAACATGTTAAACATGTTA
-ATGTCTTAAAACCTTACAAAGTAGCAATTTAAATCGTTAGTAATACTAAAGTATATCAAA
-CTTTTTATCAATTAGGATGAAACATGGGCCCTTTCCATTTCTTCCTCTAATTAGGGCCAA
-CAACAAGGATGGCCAAAACATCTTTGTgtagcacaaccctgagggtaaagggtgagtctt
-ggagtcacaatgcccaatgtgaaacctacctttactacctgctggctgttaatggcaaac
-tacataacctctctaagcctttcattaagtgtaaaatgagtaacaagagtacccatctca
-taagattgttgcaagaatcaaatgaggtaTTCGAAAGATTTCGGAATATGGCTGAAACAT
-AACATAATAATAACTGTCTAGCCTGATCACCAATGCTCtttttttttttttttttttttt
-gagacagagtcttgctctgtcacccaggctggagtgcagtggtgcaatcttggctcactg
-caacctccgcctcctgggttcacgccattctcttgcctcagcctcccgagtagctgggac
-tacaggcacccgccaccaggccaggctaatttttgtatttttagtagagacggggtttca
-ccgtgttagccaggatggtctcgatctcctgacctcgtgatctgcctgcctcggcctccc
-aaagtgcCAATACTCTTATAAATGAACCCCTCCATTCTAAAGAGTATTCTGCAGAGCATA
-TCTTAAACATTCCTTTGTCCTTACCCATTCTTTCCACATCTGTTCTAGTATGGAATCCTT
-TTCATTTTTTTCTGAGGAGGGCCTTGGTCCCACTGCACCTCCTTTATAAAGCCttttttt
-ttttttgagacagagtcttgctctgtcgcccaggctggagtgtagtagcatgatctcagc
-tcactgcaacttccgcctcccgggttcaagcaattctcctgcctcagcctcccgagtagc
-tgggattacaggcgccagccaccatgcccagctaatttttgtatttttagtagagacagg
-gtttcatcatgttggtcaggatcgtctcgaactcctgacctcatgatccgcctgccttgg
-ccttccaaagtgctgggattataggcatgagccactgtgcctggGCTTATATTATAAAGC
-CTTCTCCTGAATAGTCTAAAAcagtgctggcccaaaggaaatataatacaaaccacatgt
-gtaattttaaatgtgttagtagccacatcaagaaaattttaaaaaggacaaaattaatgt
-actttattaatctaaaatcttaacatataaatcaatataaaaattattaatctattttac
-ctttttttgtattaaacccttgaaatctaatgtattttactcttacagcatatctcaatt
-cagcccagccatatttcaagtgcttaacagcctcatgtggcctgcgtgcctgctgtactg
-gactgtgcagGTCTTTTCCTAGGGTGTTGGTCACCTCAGACTAGATGCACTGCATATAAC
-TCTTAGAAGTTAAGTACATCTCATCTCTTCATTAACAAGATTGgtggttactaaagtttg
-atgaccaacaatcacctggatttttttaatatacagactcacagaacccaccaagattca
-ctaaatcaaaatcttgagagggaaacgggggatttatttttagatactttccaggctgat
-GATCCAGGTCCAGAAACTACCAAATAATACTATAAATTCTTTTAACTTTGTCTTAAGCCT
-CAAGCACATGATAGCAGAAAGCAAGCAGATTTTGGAAACATTGACAGTTCTCAAAACCTG
-GCTTTGTGGTTGTGCAGTGTTCAGAAAAGCATTTAAATGTTTCTCACTGCTGAAAGGGAC
-TATACTCGCCTGTTAGTGATTTACATACCACAGTTAGAACAGGTCCAATGCAAAGTGGTA
-CCCAATAAACAGAAGCTATTTTACTAATGACTTCCATGTAGTCCATTGAATTCAACCCAC
-GACCTCTTACCCAATACAATATCTACCTAAGAAACAAGATAATATAAGTCTTCTCTTCCT
-GCTTCAACTATTCAGATCTTTATAAACTGTTATATTATCTGGGAGATCTTTCCACCCTGC
-AGAGACTAACCCAACAACTTACCTCCTGTTTTCCATTAACCCAACTGCTGGTTTTTTAGT
-GGAAAAAAAAAGCTTCTGGTTGACAAAACTACTCTACAGAATGCTTCAAATCTATAAACT
-TAAAAAGCTGGTTTGTGACAGACCAGGCAGCTGACTCAGGCCCGAATTTAATGCGATCAA
-TGCAACTTTTGTCTTATTAAATAGGGGAGATTAAAAATTTTAAATATGGTTTACAAAGGA
-AATTCATCTATACTTACACCACCTACCCACAGTTACAGTAAAATATACAATACAGTTAGA
-AAGACTGAGCTGAAAAAAATCTTTCTAAATCACCCTTCATTCAAAATCATCAAGGGCTCA
-CAATTACCTAGAAGAGATAGTCATATAATTTTAAGACTGCAAGGAAATGCAGAGATTATT
-TTTTCCAGGCCTTCGCCAACTTAATCTCTCTTTCCAAGTTCAACTCCTATGTATGGTCAC
-ATAACATCTTTCACATGAAATATTTCTCTCACTTTTCCCTCCTCCTCTTTTCTTATCTTG
-GTGCACTCTACAGCCTGCTTCCCTTCACCACTTCCACCCAACACCTATCCAAATCCTCCT
-CCCATTCAGCCTGAAGACAGCTCCTGGGAGCTTTTCCTAACTACTACCCTCTTCTGAACT
-GTAGACCCACTATGCATGCTTTTCATGTGGCTCTAAATAATAATATATCACCTCATTCTA
-TCATATACCTTTCCATATGAATATCACCATACAATCACAAAGAACTCCAGTCTCCAACGT
-ATGTATATATACACACAATTTTGTGTTTGATCCtttttgttttttgagacagggtctcat
-tctcatcgcccaggctggagtgcagtggtttgatcatagatccgtgcaaccttcaacttc
-caggctcaagcgatcctcccactttagcccctcgaggacctgcgactaaaggcacatgcc
-accatgctcagccaaCATTCTTTTTAATAGATGGATAAACATGTCCTAGGTTAAAAGGAC
-TACTATGGCTAGTCACCCACATGTTTTGATTTCCAACCTAGTTCTCTTTCTACATATTTC
-AAGACAGATATAAATACTTAAACTCTCTGGTTCTCAAAGGGCATGTgaagcaccccagca
-atgcacaggaatactgtggaacactttacatttttgaggaagacacatcaacccatcgtt
-gaatctgccagacactgggtgcactgccagcttgaggtggttcgtagtttcaacattaga
-ttgtgttacactcctcgtgatggattgtgttatactcctcgcgatggcatatttttgtga
-agctgggtttgcagtagttgctgtggtaaaaagcaagtactgcacaaaaatcaatgacag
-gaaatgagggtggtggtgtccaaccaatgacaacatttgaaaagctatgcagcaacaggt
-ctacataacccaacagtaacaaattatagttatataagaacaaatttaacttttttcttt
-taatttatgtgaataactttttaaatggctaccaagttgctaagatataaatacttagcg
-ggcaggcgcagtggctcacgcctgtaatcccagcactttgggaggccgaggcgggcggat
-cacctgaggtcaggagtttgagaccagcctgaccaatatggtgaaaccccgtctctatta
-aaattacaaaaattagccgggcattgctggcgtgcatctgtagtcccagctacttgggag
-gctaaggcaggagaatcgcttgaacccaggaggcggaggttgcagtgagccgagatcgcg
-ccactgcactccagcctgggcgacagagcgagactccttctcaaaacaaaaacaaaaaca
-ataaaaaaaacaaaacttacttagctatttggaccttgctacttaatacagagaactatg
-aggtatttcttgacttaggagtaccgtgaaaaattaaagacagtataagtgttataaatt
-gagaaagtttggaaacttctACTTTTCAGTGTCAAATATGAAAAAGTTCCTGTGGTAAGG
-AACTATATGCTAAGTTCCCAATATATGACAGTGCACAGCATAGTTATAACTAAATTAAAA
-GTTGTATATTGGTCTCCCAGAGGCCAAATCtggcctgtgcattgtttttttaaaatcttg
-agccaacacttaaaagtcaggaaaattcatatacaaatataaatttctggcttttatttg
-caaaacagagtatcaagcaacaatggacttgcattactgcagggcaatcatcagcttcag
-ctgagaagcagctaactccttttgaagaggcatgtgtttcccagtttgtttcagtcccta
-ccactcacatcacCTAAGCAAGGGCAATTACACCCGACTAGCTGCACTAATATCATCTGT
-CTGTCCCCCTCGAGTCCTGTGACTCCTCATCTTTACAAAGTAGAGGCAATGATTTATTTA
-TTGAAAACAAAAGCCTCATTATATAATGAAAAGTAAAGGAAATAAGTATTAGgcaataac
-tgggagagaagagactgtacctttgctcccttactctgccacaacctagctatatgagtc
-aactcaaatcacttctcttgcttcagtttcccgatctgtcaaataagcagaacttgttct
-attgagttcataggatACAATAAAATTTTATTTATTTGCTTTGGCACCAAAAACCTTTTA
-AATGCTGTTTTAAAAAAGTCTTCAAAACTACTTTTAAAAATCTATATTCCAAATACCTCT
-GAAATTATCTCTTGTACTCACCTTGAGAATTTTAACAACAACTTTTTCATTATTTGTGAT
-GTTGATGGCTTCAAATACTTCACTGTATTTACCTCGGCCTAATTTTCGAACCAGCTGGTA
-GTCATCTTGATTTCTGTGGACACAAACAAAATGACTTATAAACGGTCAAATTATCAGCAT
-CAATTCAAATTACAGGAATCTATTACCAGCAGCTGTAATAGAAATAAGAAGTATTTCAAA
-CAATTCCCAAATAGGtttttttttttttttttttttttttggagatggagtctcactctg
-tcgcccaggctagagtgcagtggcgcgatctctgctgactgccagctccacctcccgggt
-tcacaccattctcctgcctcagcctcccgagcagctgggaccacaggcgcctgccaccat
-gcccggctaattttttgaatttttagtagagacggcgggtcctcaccgtgttaaccagga
-tggtctcgatctcctgacctcgtgattcgtccgcctcggcctcccaaagtgctgggatta
-caggcgtgagccaccgcgcctggccCATTGtattttttttttttttaaattaGGCCAATT
-AAAATACGTGTGTTTCAAATCCTAGAATTAGAAAAACTTATACCTTTCAATTATTCTTTC
-TAATCCCAAACTGTTTACATCTTTATTGGCACATGACATGGAGCTGGCTTGTATTAAGGT
-TTGTTCTAAATACGTTTGTCTCCAACAAGAGACAGCTTTCCCCAAGAGAATAAttttttt
-ttttttttttttttttgagacggagtcttgctctgtcgcccaggctggagtgcagtggcg
-tgatctcggctcgctgcaagccccgcctcccaggttcacgccattctcctgcctcagcct
-cccctagtagctgggactacaggcgcccaccaccacgcccggctaatttttttgtatttt
-tagtaaagacggggtttcaccgtgttagccaggatggtctcgatctcctgaccttgtgat
-ccgcccgccttggcctcccaaagtgctgggattacaggcgtgagccaccgcacccggccG
-GAGAATAATTTTTATATATTCTTGTCCCTTAGTGCTTGGTCCAGTGTTGGCACTTAGCAG
-GAACTAAAAACATTTTGCAAGACTGTTTCAATCTAGCCACACTTTGGCAGCAGCTGATTT
-TTAACAGGCCTCTTTGAAGGTAAATGGCTTTCAAATGTATAGGCTTAATCTATTTGCCCT
-CCAGGGCAAGCTCTGGGGATAGTCCATGCGTAGTACGAAGCACATTATAGATTGTAAACT
-ATAATCAGCGATCCCCTCCTCTACATATACCCATATTCTGTGACCAATAAGCAACATCAG
-AGGTAATAAACAGAGGTAGAATAAGGGAAATGCCAACATTTTCCTCCTGCCCCTGCCTGC
-TTCCAATGTAGAGCGCTTTGCTCTGAAGAATGACAAACACAGTTCCAATAAGGCCTAAAT
-TCTATCCTACTGGATAGAATCCTCTGGACCTACTAAGTATCCAATATGAACCAAATCAAC
-CACCTCAACCATTCATTTTCCTCAAGTAGCTAAAAAGAAAGTGAATGAAAAGACAAAAGG
-TACTAAAAACAATGGACAACATAATAATCATGGCAGGTGTAGGGGAAGAATGCTCCTACT
-TCTGGTTGAGTTCTCTTCCTATGGGAGGGCATACAAAACAAATGCCAGCAAGCAAACAGA
-ACCATGCCAAAAGCCCAAAAGGGCTCTTTAGTGCCATTTAAGCAGAACCAAGTGCAAAGC
-ACTCAATTTGAAGATAGCGGCTGAAATTCCTATAGTAAACACAGTGTCACCTAGAGTCCA
-AAGCCTGTGACATAAGAGGAGAATTGTTAGATTATCAGTAATAACAACATTTATTGGTAC
-TAAACCACACTGGCATTTAATGGTGTCTTTACAGCATACAGTGCCTCTGTATTCAGAGGC
-AATGTATTTACTGTTAAGAATCATGGCATACTCaaattagctgggtagggtggaaggtgc
-ctgtaatcccagctactcgagaggctgaggtgggagaatcacgtgaacccaggaggcgga
-ggctgcagtgagccgagatcacaccactgcactgcagccagggcaacagagcaagactcA
-TTTCCACACACACACATACACAAATTCATGGCATACTCAAGATTAAAAATACGCCCTATG
-ACAATTTAGGGAAGCCATCCACTAACCACTTACAGGTTACAGAAATCACATGCAGTCAGA
-TATAAAATACAGCATACAGGAGCTGTAGCTTTAGTTTTCAAATTGCTTTCTTTTGCACTT
-GAATGTCAAAATGCTTTTATCACAAAAGTATGATCTGAACAATTAAATGTCTACCACATT
-GGGACAGGAAATGCAAACATCCAAATGAGTCTGCACAGAGAATTAGGAGGGCAAACACAG
-CTGTTCAGGCAGACTACAACTGTTCAAGATAGAATTTGGGCTGAATTCCATGCTAAGACA
-TGCCTAGTCTCAGGATAAGGGCAAATGTTTAAGAATTTAATTGTTTCTCATCAGAAAGAA
-GTTACCTCTTTGGAGAACTGTTTCGTCCTCCTGTATTAACACGAAACAACATTCTCTACC
-TCAAAAATACTTTATATAAGACTTTGGTGTTTTCAAAGTCTCTCAAGTATCACTTCTCAC
-TGATCTGCAATGCCCTTGGCTTGATAAGCAAGCTGATAGGTAACTTTTTGTTGCCAGGTG
-CCCATACAGAATACCgtcatgcgttatttaatgacattctgagaaatgtgttaaacatca
-gagtgtttacacaaacctacatggtatggcatattacatacctagggtatggcctacggc
-tcctaggatacaaatgtgtaccgtaataaatactttaggcaattgtaacacaatggtatt
-tgtgtatctaaacgtagaaaaggtaatgaatgcactgttgatgttacgatgacatcacta
-ggccacagacatttttcagctctcttataatcttatggaaccactgtcctacatgtggtc
-tgtcattaattcaaactttgttatgtggtgcacgactgCATATACATCATAGAAAAGGAT
-AAGAAACTAAAATGATTTTTAAATGGTAAGCCCATTAAAATTGTTCACTTGCCAAAGCAA
-CTCTGCTTCCTCACTGCAAAACCAAATTTTCAGCTCAAAAGAAAACACAAATTGGGCTTT
-GATCCTGAGGTATACACATACAGAGTCACGGAGGTTTTCTGACAAAAACTACTCAACAGA
-TCCACAAGATTCAGCCCTTTGAGTGAGTATAATGAAGTCAACAAAAACAATTACCCCCAT
-TCCACCACATGTGACTCGTAATCCCAGTATTCTCGAGGTCTGTGTGTATTAACATCTGTG
-TAAACTCTGGCCCTGCTTGGCACGGGTCCCGACATGTCAGACAGGTTGGCGGACAAAGCT
-GGACTTGATGTTTGGAGATCTGGCAGTCACTGTGTTCAGAAGCAGCTGGGGGTAAGACCT
-TGTTTCAGACCTGTTTTCTTCAAACTGCAGAAACAAAATGCACAAAGTCCAAGGAATCAT
-TTACAGAAGGTATATGGGAAGGAAATAATCTTACAAATAATAATGGCCTGAAATATACCT
-CTGGCTCTCCTACCTACAGCCAATAAATATAGCTCAACTGTGTTAACCAGTGCTTCCTAT
-AACATGAGAAGAAAAATCCCAAGAAATACAGTAAACTGATATTTGCTTTAATCATATTTT
-GCCAAATATCCTGTTACCTCTGCAGGCAAAATTTGAATGATTTTTGTAAGACAGCCTGGA
-AGAGAAAAATGGCATTGAGGATAGATACATCAGCATTACCACTAGTTATATATTCTACAA
-AAGGTATTGGCAAGAAAAATACTTTCTTTTCAGCAGCTTTCTGTAACTTAAGTAGGGGTG
-CTAAAAGGTTCTAGAATGGCGGCAAAGCTAAGAGTACAACTTGCCATTCTGACTCATATT
-TGATGAAACCAGGAAGAGAATAAAGGCTTGTTCTCATACATCAAAGCTCCATGTCATCTT
-ATACCAATCCAAATCTTTTGGGGGAACCTTAAGGTAATAATCAGTAGAACCTTGATCACC
-ATTTGAAAGACACACTTGGTTTCATTAAATTTAAAAACAGAAATCAGTAATATTCTCTTT
-ATATTTAATACAGGAGCTTAAAAACTGGTATAAAACAGTAATACAGATTAGCTGAGCTAA
-TGCAAAATTTGACACCGGGGGAAAATAAGTAAGATGTTAGAAATATGCTATCAAATCAGG
-TTCCTTTCCAATGATGTCTTCCCTATCTCCTACAGCATGTGCTGATTCCCCTCATTATGC
-ATTTAGATGAAATTGTATTGAGTCTCCAGATTGTGATAACGTGAGAAGGATATAACACGT
-ATGCAAGTCTCCTGGCTGAGACAGCATAACTTCAATTTGTATGTGTGTATGTGttttaag
-acagggtcttattccactgcccagactggaatgcagtggtgtgatcatggctcactgaag
-cctcaacttcctggactccggtgattctttcacctcagcctcccaggtagctgagactac
-aggcacgcaccaccaccctcagctaattttctgtattttcagtagagacggtgtttcacc
-atgttgcccaggctggtcttgaactcccaggctcaagcaatcctcccacctcagcctccc
-aaagtgctgagatcacagatgtgagccaccgcacccagccATAACTTCAATTCAATTACC
-AGGAAACATTCAGAAAAAGAGGAAGTGTCTATTTAAAAAGGGGGAAGGGGTACTATACTT
-CTAAAACATGTCCACAGCATAAAAGACAAATGGAGGCTAAAGAGACATTGCATAAATGCA
-ATACTCTAGACTGTATCCCATACTGCAGGAGGTGGAGGGGGAtgctataaaaaacaatat
-cgacagaactggaattcagagggtattaaattattgtatcaatgtaaatttgtgaagttg
-gtacataatcacaatagttaagagaatatacctattcttttttttttttttttgagatgg
-agtttcgctcttgttgctcaggctggagtgcaatggcgtgatcttggctcaccacaacct
-ctgccgcctcccaggttcatgtgattctcctgcctcagcctcccgagtagctgggattac
-aggcatgcgccaccatgcctggctaattttgtatttttagtagagatagggtttctctat
-gttggtcaggctggtctcaaactcccgacctcaggtgatccgccctcctcggcctcccaa
-agtgctaggattacaggcgtgagccacctcgcccagcccaagaatatgtctattgttaag
-aaattttcctgaagtaattagaagtaaacagccatgatgcatataatctaccctaaaatg
-attcaggaaaaaaatgtgcccacacgtttacatgtgtatatatatagcacacatgactgc
-acactcacaaatgataaaacaagctgggtaaaatattacaataggtaaacgtgcgtaaag
-ggaatagagatgccctttgtactatttttatttactttttgttgaaatcttcttatttga
-aacaaggtctccctctgtaggccaggctagagtacagtggtctgatcacagctcactgca
-gccttgacctcccaggctcaatcaatcctcccacctctgcctcccaagtagttgggacca
-caggcgtgggctaccacagctggctaattaaataaattttttttttgtaaagatggggtt
-tccctatgttgcccaggctggtctcaaactcctgggttcaagtgatgctcccaccacagc
-ctcccaaagtactgtgattataggagtgatccaccatacccagctTGTTGAAACACtttt
-ttaaattgtggtaaaatatacataacataaactttatggccaggcacagtggctcacttt
-gggaggcttaagagggtggatcgcttgaacccaggagttcgcaaccagtctgggcaacat
-ggtaaaaccccatctctactgaaaatacaaaaaattagccaggtgtgatggtgtctgcct
-gcagtcccagctacttgggaggctgaggcaggagaatcaccagagaccaggaagtcgagg
-ctacagtgagctgtgattgcaccactgcactccagcctgggtgacaggagagagacctca
-tctaaaaaaaataaaaactgccattttatccacatttaaacctaaagctcagttgcatta
-agtatattcacattcttgtgcagtaatcaccagatcatccatttctacaaatttttacca
-tcccaaatgaaaactatgtatccactaaacactaattttccctcccccaactctttgcaa
-ccactattctattttctgcctgagctggctattctaggaacctcatataagtggaatcag
-acaatatttgtcctttgttttgtttatttaatttagcataatgtcttcaaggctgatcca
-tgttgtagcatgtgttagaattccaatccttttaaaggctgaatgatattgcactgtgta
-tatatatacacacacacacacacacacacacacaccacattttgcttatccatttatctg
-ctgatggacacttgagttgcttccacagcttggctattgtaaataatgctgctatgaaca
-taggtgtacaaacatctgtttgagacctcgctttcaaatcttttatgtatatatccagaa
-gtggaactgctgaaccatgtagtaattctatgttaattttttgaagaaccagcatattgt
-ttcaacaagctgggcacggtggctcactcctatacagcaactgtatcattttacactccc
-aggaacagtgcaaaggctacaacttctctacatccttactaacacttgttattttctgtt
-ttttGCTTGtttttatagagacaggggtcttgcttatgcccaggctggtcttgagctcct
-ggcctcaagggatcctcccacctcggcctcccaaagtgctCTCAAAATAGACTGTGCCTG
-GCCTATTTTTTGGTTTTCTTTTCTTCTTCTTCTTttttttttttcagtaacagccctcct
-aatgagtatgaagttgtatctcattgactgtgattttaatttgcatttccctaatgatta
-atgatgttgagcatctttttacatgcttattggccatttgtatatttgttttggagaatg
-tctattcaaagctgttgtccattttttgattgggttgttttgtttgttGACGATGCATTT
-GTTAACTATACTGTTTTTTTGTTGCTTACAAGCTGCTCATCTTTCCAAGGTAAGCTGTAA
-CTTAGCTACCACACCCAAAGAGAAGCCAGAAGAGATACCTCCTTATGCCCATGGTGTCGG
-CAGCTAAAGGCTTTCAGAAGAATAGCAAGACTGGGATGGAGATTAATTCTCTATTCCTTA
-ACCGTGACAAACACAATTAATGACATTCCACTCCAAATATATGAGATCAAAAGATTCACA
-TGCTGACTTATGAATTCTCCCACCCAAAAAACTGCTGTAACTTGCCTCTGTTCAACTCAA
-ACCTTCTGAGGTTCCATAAATGTACTAAATGACCAGAAAACAACAAAGTAATTCAAGTAC
-CAAAAGTCTTTAAAATTATTTCTATTTCTTTGATTTTGTAAAACCTGGGTGACATTAATC
-TATCTTCACTTAATATCAGTTAAAACTGTAAACGCACACACACACAAACACATCAAACAT
-GCAAAAACCAGATGTTTTCTTGTAATTTTTCTTCTTCCCAAAGAAATAAGGTCATCTATG
-TTGTAGGATTGGTGACTCTGTGACTACTATGCCTGCCTTGACAGCAATGAAAGACACTAG
-GAAAACCGTAGAGAAAGGTGTAGGTGTGAATATGGCCAAAATAGTAGAAACAGCAGCATG
-AACCCAACAGAAATGCTGTCCCCAGAAATTTATTACTTTTAATATACTAAACTTTTAAAT
-TCTCAGCCTCTCCTCTGACAGGAAACAGTATCTTTCTCTACATAACCTTTACAGCCACTT
-TACTCTTCTGGTTAACATTTTATACGTGTAAGACAGCCTTCGTCTGTGGATCTCAAAGCC
-CTTTTCCTATGCTTAAAAGTGATCTCTCTGTTGGGCTTTTCCCAGCTTTGGTTCATCACT
-TATAAAACCTGTCTAACTGTGCTTGCAGACTGAAGGGAAGATGAAGTGAGATGATCTTCC
-AGAAAGGGCTTAGAAACATGAAATGCATGTAAATTTGTATTAAGTAATTACTATCCCCTA
-GCTCCTTAGTGAAAGCTAATAAGCAGAAACCTATCTTTACAGGCTGGAACCTTCATTCTT
-TAAAATACAAAAATTATAGTAGCCGTGGTTAATTCCCGGCCACTGAGGGCTAACTCCCAA
-GTATACATGACATTACAAAATGAGTCCTCATTTCTCCCTGGAAACCATCTGACATATGGA
-GAATAGCCAACTCCTATTACTAGTCATGTACATTCTCATCACCCAGTCTTCTTCTGCTGT
-TTCAAGGCCCTGGCATCCTCTGTGAGGAGTGGGAAAAGACTAATAACTAATGAAACTCTT
-GAGATTCTCCAGTACTTGTCTGAATGACCCTTGAAGCTTTGGGGCTCATCAACTGGGACC
-TAATTTATGAACTAGCAGATCTGATTCTCCACTGGGAAGACAACAAGCTAACTATTTTTG
-CAGTACCCCCAAAGAGGTGCTTCACCTTACTGTCACGCATACCAAATAATCTGCTTATAG
-TAAGAAAGGTATTCACATGAATTTCAAATGGCTGGCCTTCATTAATTATACGGGAAAATA
-AAACAGAGGATTCTTCAACTGTGACTCTGTAATCTCAGATAGATAAAAGGGTACTAAGAG
-ATTGGGGGTTAAGGGATGGTGATAAAAAGGGGATGTGAagcccagtgtggtggctcatac
-ctataatcccagcactctggcaggatcacttgagcccaggagtttgagaccaccctgggc
-aacacagcgagacctcctctctacaaataacataaaaatgagctgggtgtagtggagtac
-aactgtggtcccaggtacttggtaggctgagatggaaggatcacttgagcctgggaggtc
-aaggttgcagtgagccatgatctcaccactgcactccaacctgggtgacagagcaagacc
-ctgtctcaaaaacaaacaaacaaacaaacaaaaaacaaaAACAAGAGGGGATGTGAAAAG
-ACAGAAAAGGGAGGTCAAAGACCAAATATTATCATTATTATTTTTTTGAGACAGgagaca
-gggtcttgcgctgtcacccaggctggagtgcagtggtgcaatctcgctcggctcactgaa
-acctccacctcatctcctgggcttgagcaatcctcccacctcagcctcctgagtagttgg
-gactatagctatgcgccatcaggcccagctaatatttgtattttttgtagagacaaggtt
-ttgtcatgatgcccaggctggtctcaaactcctggactcaagtgatccaccagcctcagc
-ctcccgaagtgctgagattacaggtgtgagccaccatgcccaaccAAGATAAACATTATC
-TTATTTAGAAATAGTATTTCACTTATACCTCTGCAAATGCATATGTATATCACATGTAAG
-CTAACAGGAAGAAAACACACAGCCTACATTTCTCAATTTTTGGTTTGATTCTTCCCTACA
-TTCCTGATTTTGTCCATCCCTTAAATAGAtaaccatctactatgaaaaagtactatccta
-ggccttaggaatataagtgagcaaggcagaACAGGGGTGAGACAAgtatgccattgaaga
-ttttacctatggactaagggtaacagaaattcattgaaaagttttaagcagaaaagtgac
-ccatacatattgtttttaaaatttttactctggctgagtgtgggacaggacttagggaga
-aggctgttaacagtagcacacgtgagagaaatgatgacctaaggtggtggcatgtggaga
-tcagtggactaatatgaggaacaaaatttatggtgtaaaatcaatagctctgagtgaact
-ggaaaatgctgtatgaagtgggaggtgactcttggatttcttgcttgacagactgttggt
-gccattcatggagataagagtgcacaagataggttttggacttaaggttaaaatggcttt
-gaatcattcaaacgaagattctgaataggcagttagatattacaagtctggaactaagag
-tttctcagctttaagtatctaactcttccaacaactctacgaggcaagcattagtttctc
-taatctacaaataagaacagcctaagttcagtagcttgaccaagaatatccaatacagtt
-acagctgggattcaaagacagtgagttggcctccaaggttcaagtcttctcactCCTACA
-GAACACAATCACTTTCTACTGCACATTCACACACACACACACCAGTCTTCAAATCTTAAT
-ttctcaattggaccctaagttctacaaagttaagaaccatgtttaatttacctttttaat
-ttatagtacctagcctaaggcttgcattttgtagcacgttcagtaaacactatttggtga
-tcaaattaatCTTGGTTTATTTTTTAAAAATGAAATGAAAATGAAGTTGCATCCAAAGTA
-TAGGGTGTTCCTAAATACTTCAGGTCATCTGGTACGCAACTAGGAGAACTGGAAAACCAA
-GTCAAAGGTTCTTGAGTAATTGTTCCCTTCCCTCTCTCTCTTTCCCAATACTACAGCTTC
-TATTAAATCACAGGACTACAACTAGGATTTGTCTTTTTCCCCTCGATAATTCAAATTAAG
-AGAATACTGAAGAAACTTGATTTTACCAATTTTTATAGCAGCTTATTTGGAAGATGGAAA
-AAGTGCCTGAGTCCTAGATATTTGGAAGATCAATTCTCCTCTCCACTGTTCATAATACTA
-GTATATCTTAAGGCAATCTAACAAAATGCACTGCCTTTCTTATTAAGTTCCATTTTAAAT
-TGTCTTACTTAGTGCTTACTGTTCTCATGTAATTGCATAAAAGGAGGTGTAACTTTAGTG
-GCTAACCATTTCAGACCACTACATCTACCTTAACACCGTCAGAATGACTTTGAAGACATG
-GCTAGGTCTTGTATGCTCAACGTTTAGCCTAACAGAAGCCAATTAATCAGCTACGAAAAA
-AGTATCATGTCAATGAATTTTTCCCGACTGAAGTAAGATCACATCGAAGCCAACTGCATG
-GGTCTGCATGACCTATTCTTTAATAAAGTATAAGTAAATAAAAAGAAAATGCCATTAAAC
-CATAAGGAAAAATTGTCCATTGCCAAAATCATAAGTTTACTGATATACACTGAATACAGC
-AGAATTAATTTCAATAAAAACTCCTCTTGCCCTTAGCTAGTCCCTCCTTCTAATCTCTTA
-TGTTCAGTTGTTATTTTTCAATTTGGCAACTAAAAAGAAAACTAGAGGCTTAGTAACAGT
-CCAATACCAGAAAACTATACAAACAAGTTTGCTTAGTCATTTCTGCTAATGTATTTTTAT
-TGATGAATTTCCTAGTATCAGAAATGGAAAAGATCATTCTAGAACTTTAAGTCAATTTTT
-GAACTGTAATATAATTAGTTCTTTTTAACCCTAATGTTTATTAGTCTCCATCTTAAAAGG
-AAAAAAAAAATCTCCTTCTCATCCCTAAATGAACCATAGCAAATGAACAAGATCTCATCA
-TCATCCCGACAGGACAAAGATTTCTATAGCAAAGAATGAGGAATGTGCTTAGATTGCACT
-GACTGCATGGTTTAGGACTGCTTGTTTAGAGGAAAAGCAGCTATACAGGAAGACACCTTT
-TATGCACTGCTGCAGAGAATGAACTCTTTTTCCAAGCAATCAGGCAACATAAACTGGTAA
-GAGACAAACAAGACTTGTGGAACTCAGCGAGACCTTAAATATGTATACTTTTCTACCTTG
-CTACAGAAGCAAAGAGAAAAATTCAGTCAAACTTGCCCATTTCCCTTTACAAAAGGGGCA
-CTGATTAGAAGGCCAACTTAATACAAAAAAGCACAAGTAGCTAATGTTACCTGAATTACT
-TATTTCAAATGTCCATACTTAACCTTAATTTCTTTCTTCCTTTCCAATCAAGAGCAGAAT
-GCTCATACATCAAGcatttactgaacgtttactatgtaccaggaaatgtgtgcctgactg
-ccagaaaggcattctttctcttggtcctGGAGAAAGTATCTCTGCCCTCAGACAAAGAAA
-ACAGACCATTACAATCTCAAGTGATCAGTGCTTGAAACAATTAAGTCATGGTGGTGTACA
-GACGTTGAAGGGTATTTAAACTATCACCAACCCAtcattcattcaacaaatatttatgga
-gtacctaAAATGGGGAAAAACTGTAAGAGAAAAAAAAAACTGCACTTAAAGTACGCACAG
-GAATTATTCAGATGGAAAACATTAAAACAAGAAATTGCAAAGCGTAACACTTTAAAGCAA
-GTTAAGAATTTTAAAGACCTATAATTTTGCACCCTAAAATGACCAAAGGCTGGCACATTT
-TGTTATCTTCTATAAGAAACACATCATTGGATGCCACATGCAACGTGGCATCAGGTGTAA
-AAAAGCACCTGATGTGCTTTTTTTGCACATCAGGTCAGCAACCTTTTTATATCTGATTTG
-GAGACTATTAGTTTACTCGACTGTTACCATTTTGTGCTTAAAACAAACAGTATCATTAAT
-TCACAAGCTTTGGAATTCTTTCTCTTTATTTTCTTTTCTCTACTTCCAACACTAATCAGT
-TCCTtgttgcccaagctggagtgcagtggcacaatcgtagctcactgccacttcaaattc
-ctgggctcaagtaatcctcccacctcagcctcccaagtaactgaggctacaggcatgtgt
-caccacacctggcCCACTCATCTTTAAATAAGACAGAGAAGTAATTATAGCCAAAAGGGA
-ATAGAAAATGCAAACCCAGAGATATAAGCAAGCAAGGAAGCCTGGAAAGCCTTTGTTGAT
-CCTGAAAATTAGAATTTTGTTCTCACATAAACCAAAGCCCAGGGCTCTCACAAGACAAAA
-AGTCTAATAGGAGGCCCTCTTCATAAGGTGGGACTTCAGAGGCATACTTCCTAATGGTGA
-GAGTGACTAGGGAGTGGAAGATCCAGGGAGGAATTAAAGCCCTACTGAAGGGAATATCAT
-ATCTTAAGCTTGTTTTAAGGTGGTCTCTGGATTAGTGCCCATGCATACCTGATATAAGCA
-AGCTCTCCATGGAGGAAAGTACCTTACTGTGGGCCTCAAATGATCACTACAAATATCTAt
-ttttatttttattattttttatttttttgagacagagtctcgctctgtcacccaggctgg
-agtacagtggcctgatctcagctcactgcaagctctgcttcctgggttcacgccattctc
-ctgcctcagcctcccgagtagctgggactacaggagtccgccaccacgcccggctaattt
-tttttttttttttttttttaagtaaagacggggtttcaccgtgttagccaggacggtctc
-gatctcctgacctcgtgatccacccgccttggcctcccaaagtgctgggattacaggtgt
-gagccaccgcacccagccAATTATTTATTTTTAAATACAATGTCCTAGCAGATCTCAAAA
-AACAAGAGGAAAAATATAGTGAAATCGTTGGATATACttttttttttttttttttttgcc
-acaaagtcttgttctgccacccaggttagagtgcagtggcacgatctcagttcattgcaa
-cctctgcctcccaggttcaagtgattctcctgcctcagcctccagagtagctgggactac
-aggtgcatgccaccatgcccggctaatttttgtatttttagtagtgagggggttttgcca
-tgttttggccaggctggtcttgaacttctgacctcaagtgacccgcccatcttggcctcc
-caaagtgctgtgattataggcgtaagccaccgtgcccagccAGTTTGATATACTTTTAAT
-TGGTACTAGCAGAAAAGAGAATGGGATAAAGGCAGTAACTGAAGACAGTTGAAAATATCC
-CAGAAGCAATCAGACACAATCAAATTCCAGAAGCAAACAATTTccaaacaagatcaataa
-aaagaaatccaaaaccaaacatataattacaaaatagcaggaaaaaacaaagatgagttg
-ggtgtaatggcacaggcctatagtcccagctatttgggaggctgatacaggaagattgct
-tgtgcccaggagttggaggccagcctgggcaaaacagcaagaccttgtctcaaacaaaaa
-caaaaaactaaagacaagcaagtacagaaaaaggcagattatattcaaagagcaacatta
-gaacagctgatttttcaaaaccaacaatgaagccaagtagtttaatacctgcagtgtgct
-gaaaaaaataaatagccgccaaattaaaattctgttatcaagcaaatgtctctaaagaaa
-aaagaaaaataatcccattttggaaggtctgagttgaaagaaaaaataaagagcaaaaaa
-gaggaaaatttacagacagctccaaacaaacactgattatacaaaagaataacaatacct
-tgaggagctttaaaacatagaatacataacaataaaaacacagtgtattgaggagatttc
-aaagtattctttctaaaggtcttttattatatgaaaagaagataaaattataatatcagg
-ttttgctaagttatagctgcaagtcacaagatgtatgacaactaattacagaataaaaat
-agcatatatttccaaaccagaaagagggaaaagtaaaatcataaaaagaatccaaaagaa
-tgttaagaagggagaagaaaaaaatctagaacataagaagcataggggaagaaagttgaa
-ttggaatatgattaattatattaaatataagtggaataaattatccaggtaaaagacaaa
-gactatcatatcagactggattaaaaaagaaatccaaatgaaccagaataatccaaacaa
-ttctgaaaaataataaagctggaagaattatactaactgatcttaaacttattacaaagc
-tatagttgtcaaaacagtgtattggcaaaaggataatacatagatcaagggaacagaata
-aagagtacagaaatacactcacacaaacaaggccaattaatttttgacaaaggtacaaag
-gcagttcaatggagaaaggacatatatacatatatatataaatatattatgtattttttt
-cgagatagggtctgcctctggtgcccacgctggagtgcaggggcatgatctcaactcact
-gcaacctccgcctcctgggttcaagtgattctcctgcctcagcctccaaagtagctagga
-ccacaggagtgtgtcactatgccctgctaatttttgtatttttagtagagacagggtttc
-accatattgcctaggctggtctcaaatttctgagctcaactgatccacctgccttggcct
-cccaaagtgctgggattacaggcataataatcttttctataaattgttttggaagacttg
-gagatcaatatgcaaaatcataaactttaatctaaatctcacactttatataaagataat
-tcataatgaatcacagatatcaatgtaaaacttgggtcagatgcggtggctcatgactgt
-ataatcccaggctgggtgacaaggcaagactctacctctgggggggaaaaaaaaagatat
-aaatgtaaaattatcaaaccttcttgcaaccaggggttaggcagagtttgaagacatgac
-actaaaagcatgggctgtaaaactgataaactgaacttcatcaacgttaaaatatttctg
-ctctgtgaaagacactattaagaaaataagccagacacaagaagaatgtatttgcaaatc
-acaaatcgaataaagaacttgtatctgtaacattaaaaaactcaataagaaaacagctca
-atttaaaaatgggcaaaagacgtgaacatacacaccacaaaagaagatatacacataagt
-atatgaaaagatacacaacactgccagacagcagggaaaatgaaattaaatcatacaact
-accactacagatttattaaaatggctaaaatttaaaaaaacagaaaacaaaactatacca
-aaagctggtgtggatgcagagtaacagtaactaatacattcctggtaggaatgcaaaatg
-gttttggaaaacagtttggcagtttcttatagagttaaacatgtacttaagcatacaacc
-agcattcccactcctaggtatttactcaagagaaacggaaacccgtatctacacaaaaac
-ttatacacaaacatttaaggcagctttattcataattgtgaaaaaacagaaacaaccaag
-gtgtccaacagttacatgaacaaacaaatggtttgccatgtgatgcttagcaataaaaag
-gaacaaattactgatttgtgcaacaaaatggatgaatcGtttttctttttttggtagaga
-cagggtctcgctttgttgcccaggctggtctcaaacgtctagcctcaagtaatcctttgg
-cttcagtctcccaaagtgctaggattacaggtgtgagctgctacacctgaccaacatggt
-gaatcttaaaagtgaagaagccagaaacaaaagcctacatattgtatacttccatttata
-tcaggggtccccaatccccgggccatgggcctgtaccagttcatggcctgttaggaacca
-ggctacacagcaggaggtgagcagcgggagtcactcgcattactgcccgagctctgcctc
-ctgtcccatcagcaacagcattagattctcataggagaaccctattgtgaactgcacatg
-tgaggaatctaggAGGTGGAGCTCAATTTTTCTCCTTTAAGGAAAGGAAATAAGTAAGCA
-TGGAAAGAGAGCCTAAATTTCTCCCTTTCCATGCTTATTCATTACAAGGGTATTCCTAAG
-TCCAATGGGCTtggaaagggagaaatagcaactctacagtagaaaaacctggcagacttt
-actgaaatatcactagtgttaagtcactttgacatcatatgcccctgatataatgtgatg
-agaagggcacttcacctctgtggtagtcttctcaaaaatccataaccacaatttaatctt
-gagaaaacatcaaacctgtattgaaggacattctataacatacatcaccagtcttcttca
-aaagtttccaagtaatgaaaattaaagacagactaagaagcttcacagactggaggatac
-taaggagacatgatgactaaattaatgtggtatcctggactggctccttgaacagaaaaa
-ggatacaactggtaaaatccaaacaaagcctgtagtttagttaatagtattataccgatg
-ttaatttcttaattattttatttatttatttatttttagagatggggtctcactttgtca
-cccaggctggagtgcaatggtgtgatcctagctctcccagttcacagcagcctcaaactc
-ctgggctcaagcgatcctcctgccccagcctcctaagtagctaggactacaggcacatgc
-caccatgcccacctaacttctgagaaccaggttggtctcaaacgcctggcctcaagcaat
-cctccccaccacggcctccagagttactgggataacaggtgtgagccaccatgactggcc
-cagtttcttagtgttgatgacatatcacggttatggcaagatgtgaacattaggatatac
-tgagggaagcatatatggagattctatctgtaacttctgtaaacctaaaattttcaacat
-tacaagttAAATACTGCCAATATTTAACTTGAAATGCTAAAGAGGATGAGAtgctagaga
-agatgaggaaaaactgaaactcatacattgctagtgtgaacgcaaaatagtactgtatag
-ccattctagaaaacagtttggcaacttctttataaataagttaaatgtacatttttcata
-tgacccagcaatccaactcacagttatttaccctagaaaaatgaaaacttaggtccacaa
-aagcctataatgttatgttcacagcaactgtattcataatcaccaaagaatgaaaaccaa
-aatgtccttcaaggagtgaatggataaaaataactatagtctatccataaatggaatact
-actcagtaataaaaaggaactaaccatttacacacacaataactttgatgaatctcagag
-gcagtatgctgaatgaaataagccagtctcaaaatattacataatgtttgatttcattta
-tatgacattcacgaaaagataaaactgtagtgaggttgggcacggtggctcacgcctgta
-atcccagcactttgggaggccgaagcggatggatcacaaggtcaggagatcgagaccatc
-ctggctaacacggtgaaaccccgtctctactaaaaatataaaaaattagccgggagcggt
-ggtgggcgcctgtagtcccaactactcgggaggctgagcttgcagtgagctgagatcacg
-ccaatgcactccagcctgggcgacagagcaagactccatctcaaaaaaaaaaaaaaaaaa
-aaaaactgtagtaactcagaacagaacagtggttgctagagattaggggtgggaggctag
-gtatgttaccaagggtaacatgcagaaggtgatataactattctatgtcccagttgtgat
-ggtagttacttgaatctatgtatgtattaaaattcatagaacagtatacacaaaaaggag
-tcaattttactgtgtattaatttaaaaaaaaATTTAAAAAAAGGAAAAAAATTCTATCAC
-ATGCTGTCTAAAAGAGATACATCTAggccgggtgcagctgctcacgcctgtaatcccagc
-actttgggaggctgaggtgggcagatcacctgaggtcaggagctcaaaaccaccctggcc
-agtacagtgaaacccatctctactaaaaatacaaaaatgagctgggtgtggtggtgcgtg
-cctgtagtcccagctgctcttagaggctgaggcaggggaatcgcttgaaactctcgagag
-gcgaaggttgtagcaagataacgccattgcattccagcctgggagacagagggaggctcc
-ttctcaaaaaaaaaaaaaaaaaaaTTAATAAACAAATAAATAAAAGAGATACATCTaggc
-caggtgtggtggctcacttgaggtcaggagtttgagaccagcctggccaacacagcgaaa
-cctcatctctacttaaaaacaacaacaacaacaaaacacaaaaattagctgggtgtggtg
-gcgggtgcctataatcccagctactcaggaggctgaggctggagaatcgcttgaacctag
-gaggtggaggttgcagtgggcactccagcatgggtgacggagactccatctcaaaaaaaa
-aaaaaaaaaaaaaaGAGATACATCTAAAACATGGGGTATATATTATAtacacgatgtata
-catgcactgaaacatcacaatatatcccataaatatgtacaattatgtatcaattagaaa
-tTAAGAGCTGGGCACAGCTCAGGGGtccctgcactttgggagactgaagaggaaagatgg
-cttgaggctgagttcgtgaccagcctgggcaacacagcaagactaccatctctacagaaa
-aatttaaaagttagctaagtatggtgcatgcacctgtgtcctagctactcagaaggctga
-agtgatcatgtgaacctaggagtttgaggcttcagtgagctatgatcacagtgttgcact
-ccaacctggctgacagacactctgcctcaaaaTCAATCAATCaataaattttaaataaaa
-aaaaaCATAGGCTATAGAGAGTTTGTTCataaaaatacgatatttcaaaacgtgggatac
-aattaaagcaggacttagaaatttataaacttaggccaggtgtggttgctcatgcctgta
-atcccagcactttgggaggctgaggtgagtggattacttgaatctaggagttcgagacca
-gcctgggcaacatggcgagacctcgcctctataaaaataaaaattTTAAAAATCggctgg
-gcgcagtggctcacgcctgtaatcccagcactgtgggaggctgaggcgggcggatcacga
-ggtcagaagatcgagaccaccctggctaacatggtgaaaccccgtctctactaaaaatac
-aaaaattagctgggcatggtggcgggcgcctgtaatcccagctactcaggaggctgaggc
-aagagaatggcgtgaacccgggaggcagagcttgcagtgagccgagatcgtgccactgca
-ctccagcctgggcgacagagcgagactccatctcaaaaaaaaaaaaaaaaagaaaaaaaa
-aaTAATAATAATTAggctgtgcacagtggctaatgcctgtaatcccaacactttgggagg
-ctgaggccaaggtgtgaggattgcttgagctcaggagtttggagaccagcctaggcaaca
-tagtgagaccctgtctctatttttttaacttaaaactattaaaaaaaaaaaaaaaaaaaa
-aaagccaggtgtggtggcatgcacctgtggtccaactattcaggagtctgagatgggagg
-aacacttgagcctaggaggtggaggctgcagtgagctgtgattatgccactgcactctag
-cctgggcgacatagcaaggccctgattcgaaaataaaaaTTCATAAACTTGAACttagaa
-aagcaaactaaaaattaagaacttacacatatctcaataaatttgaaaacagaagcccag
-agaaactagaaggaaaaaaacgggaaaagcagcaatcaaagaaatatgaaacaaagaGGA
-TCCACAATACCAATTGAGTCTTTAAAAATGCTCGTgctgagcccgtggctcatgcctgta
-atcccaacactttgaaaggccaaggcaaaggattgtctgagtccaggagtttgagatcag
-cctgggcaacagagtgcaacccccaatctctacaaaaataatttaaaaattaggccaggc
-atggtggctcatgactgtaatcccaatacttaggaaggctgaagcgggaagactgcttga
-gcccaggagtttgagaccagcctgggcaatacagtgagactccatctcaaaaaaattgtt
-tttaataataaaaacaatggaaaaaattagctgagtcccagctactcaggaggctaaggc
-aggaagatcacttgagcccaggagtttgaggctgcagtgagctatgatcatgtcactgca
-ctctagccagggcgacagagaaagaccctgcctcTGCAGGTGGGGGGGAAGAAATTAAAA
-ATGTAAGTGTGCTTGATTTAAGAAAAAAAAAAAGAAGggccaggtgtgatggctcatacc
-tgtaatcccagcactttgggaggctgaagcaggcggatcacaaggtcaggagctcgagac
-cagtctggccaatatggtgaaaccccatctctactaaaaatataaaaaattagctgggtg
-tggtgccacacgcctgtagtcccagcaggaggataaggcaggagaatcgcttgaacccgg
-gaggcggcagaggttgcagtgagctgagatcatgccactgcactccagcctggcgacagt
-gagactctgtctcaaaaaaagaaagaaagaatgagagagagagagagaaagagagagaga
-cagacagagagagagagagagagagagagagagagagagagagagagaATGAATATTAGG
-GTAAATGTCCAATATCAAGAATGGAAATGAGGGAGTGAGGGATGAATTAGGGTAAATGTc
-cagtatcaagaatggaaatgatacatcactacagatcctacagatggtaaaaagataaga
-caatatcacgaacaactttgtgcccacaaacttgaaattcccagaagaaaaataatttat
-caaaactgatacaagaTCCCAGTCTGATTCTCAGGGAGAAAAAACAAAAACTGACACAAA
-AAATGAAAACCATAAATAGTCCCATAACCAATAAATTCAATCAGTATTGTTTCAACCTGT
-TCTATTCTAATGTCTTTGAACTGCACAGATTAACATTTTCAAAACATTTGTTTAAACTGA
-CTGAACTTGCTTCCCACTCCTCTCCAGGTCTCTGTGCTTTTATACATTGATTATGCCTTC
-CAATAGTGCTTGCTAGGGGAAATCCTACTCACCCTTCAAGAATCAGCAAACTTTACATCC
-ACTATGAAGCACACTATGAAGCATTCCCATCTTTCTCCAAAACAGGCCAAGTACCTCTTC
-TACAGGGCCAAAGCAACCCCATATACTCTCTGACATTGTCACACTGAATGTGTTTTGTTT
-ACATACACCTCTCTCCTCAGATTATGAATTCAAGTACTTGGACTTTGATTTATTTCTCTT
-GGTGGATGCCCCGTgtttcaccacactgcccaggctggtctcaaactcctgacctcaggt
-gatccaactgtttcagcctcccaaagtgctagggttacaggcatgagccactgtgcccgg
-ccTGTGGTTTTTAAAATGCTCCTCAGTCTTACCTATAAATGTTATTGCATCCATCCTTTT
-TAAACCAGGGGAAAAAGGTTTCCTACTATCACTTACCAAAGAGATGTGAAACTAGTCAGT
-ATGGGTGAATGATGTTTCTTGGAGATTTTATGAGGTTCCACGCTGCATGATTTACCATGT
-GATGAGCACACTGCTTGACAAGCCTTGATAGAGCTACAAAAACAGTTCAGTACTCCGTTA
-CTGAAAGGATCTTGGATTTAAAAGACATCATAAGGTTGCAGAAAGAATAAGTACACTAGA
-ACCACTACAACCTACATCTGATGTTGGATATGTTATTTAACCTACCTGATTAAAGTGAGA
-AAACTGCAGAATATAAGGATTATCACCCTTCCCCCACTCCCTTCTTTACTGCCATGGTGG
-CAGGTTACATAGCAGACAACCATCATCTCCGCAGGTGATCAATAACCAACAGCTAATAAG
-GTAGGTTGTCCTAAAACTGACAAAAATAGAATAGGCTGGAAGTAAGGGCAGTAAAAACTG
-GTTGCCTTTCAATTCTGAAGATATTATGTGAATGCCTATGTCAGTCACTGATTCTTGGGA
-TTTATCAtttttgtgtgtgtaacagggtcttgctctgtcacccagggtgggtgactgcag
-ccttgacctcccaggctcaagcaatcctcctccttcagcttccttagtagctgggaccat
-aggcatacactactgtcccctgctaattaaattttttcttttttttctttctttcttttg
-tttttttttctgagatgtcttttgtttttgttctgaggtcttgttatgttacccaggctg
-gtctggaagtcctaagctcaagcaatcctcctaccttggcctcccaacgtgctgggatta
-taggcatgagccaccatgcccagccAGATTTATCACTGTTAAACCAGCAAGTCCATGACC
-TAAGTAATGTCTTTCTCATTTTACAGAAGGCAAAACTGCATAACCTTCCCAATGTCAGAG
-GTAGTGATTGGAAAACATTCGTCTAGATTCACAGCCTATTCTTCTGTTCTACAGCAAGGG
-ACTGTAAACTGGTGACCACAAACACAGCCAACCCCCATACccatggtttcagttacccgc
-agtcaactgcagtctgaaaatattaaatggaaaattccagaaataaataagtcataagtt
-ttattttccatgtttgtttttagagacgaggattcactcagtcacccaggctggagtgca
-gtggtgcaaccgtagctcactgtagcagcctctacctcccatctcagcctcccttgtagc
-tgggaccacgggcatgcaccaccactcctggctattttttttttttttttgtaaagaagg
-tttctcactatgttgcccgggctagtcttgaactcctgggctcaagcaatcctcccgcct
-taccctcccaaagtgctgggattacaggcatgagccattgcacccagccatgttttaaat
-tgtacatggttctgagtaatgtgatgaaatcttgcaccatctagtaccatccagccctgg
-atgtgaatcatccctttgtccagctgtatatgccacctgctcattagtcacttggtagcc
-ttcttggttacttgaatgttgcagtattgcagtgcttgtcttcaagttacccttatttta
-cttaagaaatgccccaaagtgcaagagtagcgatgctgagaatctggaaatgccaatgtg
-aagctgtaaagtgcttcctttaagtaaaaaggtaaaagttcttgacttaatatggaaaaa
-aaaatcatatgtggaaattgctaagatctatggtaagaacaaatcttctatcagtgataa
-tgtgaagagggaaaaataaattcacatttgttttgctgttgtacctcaaactgcaaaagt
-tatgaccgcagtatgtgataaatgcttagttaaaatggaaaaggcattaaatttgtgggt
-agaagacatcaacagaaaactgtgttccaactgatgataatcaggtttggtattatctgt
-ggtttcaggcatccactggggatcttggaatatatttcccacagatggctgggaacagga
-ctactCTGTGTGTATATCTCCTATTTGGCTCACATATTACTTTTAAAAattgagataaaa
-tccatgtaacataaaactcatcattttagggtacaatcagtaccctaaaatggtgtgttt
-tcgtatattcacaatgctgtggaaccatcaccactatctgattccagaacacttcatcgc
-cccaaaaagaaacccagtacctcagaggattaactcccaatagcctcttcctacaatcct
-ctggcaaccaataatctgctttctgtcttcatgtatttgcctattatggacatttcacat
-aaatggaatcatgcaatatgtggcctcttccacttagcaaaatgtctacaagtttatcca
-cgttgttgcaagtatcagtaattcatttccttttacagctgaattcactgtataaataca
-tcacattctggttgtccattcactgacagatatttggactgtctccactttttggctact
-atgaaataatgtcgctaggtgcatatgtgtacaagtttttCACtttttttcctttttttt
-tttttttttagagtcaggaccttgctctgtcacccaggctggagtgcaatggcatgatca
-tagttcacttcactgcagcctcacactcctgagctcaagtgatcctcctacctcagtctt
-ccaagtagctgggactatgggtgtgcgccaccacgcccagttaattttctgcatttttag
-tagagacagggtttcgccatgttgcccaggctggtctcgaactcctggattcaagcgatc
-atcccatcttagccttccaaagtgttgggactacagtatgagccacagtgcccagccTTC
-ACACTGTTTTTAAAAAGTAAATCAGGggccaggcatagtggctcacacctgtaaccccac
-cagtttgggaggctgaggcaggcggattacctgaggtcaggagttcatgacagccttggc
-caacatgatgaaaccccatttgtactaaaaatacaaaattagccaggtgtggtggtgggc
-acctgtaatctcagctacttgggagcctgagacaggagaatcacttgaacctgggaggca
-gaggttacagtgagctgagatcgcgccattgcactccagcctgggtgaaaagagtgaaat
-tccgtctcaaaaaacaaaagaaaaGGTATTAAGGTGAATTATGTATTAAAATTTTTCACA
-ATTAATATTTTTCAAAGTGACAGTTACCAAAATTAAAAAAAAATTTAACTTTCTATTTCT
-TAAAAGAAATAAAGCAGGAGGGAGGGCAGGTAGGTCTGTCTGTCTGGTAACAATGACTCT
-TCATTCCTGCACTGACAAAAACCTGCTGGATATGCTAAGCTGTGACTGTCCAACAACTGG
-CTCTTTTAACAGACACCCAATGGAGATACCACACGTAAACCTGGACAACTCTTCATTTAC
-CTTATTGACTCGACTCCTGAAGGCATTTGAGCAATCAATCCCTGGTTTATACTAAATATA
-TAAATTTACAAATAATAAGATGGGGGAACTCTTATTTAGACTACACAAATTTTGGAACTG
-AAAATGCAGCTCAACAATGAGATCAGTGGCCATGAACTCTCTGGTAAATGTATATAAAGC
-AGCATGTACATGTACATTTTTTTTTGAAGAAAAAAATTATTACAGGCTCAGGAAATCTGT
-AAACTCCAGCAAAATTAATAATTCCTGAGTTAGACAAACAGAAACTCATCTAAGAAGGCT
-AACTTGGTGATTTACATAAATATTAAAAAATTAAACTGCTCAAACTAAGTATATGCCATT
-CTTTCCTGAAGGAAGACAAGAAGACAATGTATCCTAGGCTTCAGAGTATGAGACCCAAGC
-TTGATGAATGATTAACAAAATGTCAGCCTCAGAAAAGATACAGTAGCATTCAGAGTTAGT
-CAGGTAGAGATAACAGTTTTACAAAAGGGAACTTTACTTCTGCCTCACATTACTGCTTAG
-AAAATAAGAACTTGAATTTCTTCACTACTGTCCAACCTTAAATTGTTCACAGTCTTGTAT
-TTTAAAGCATATCCTTTGAATCATGTGTCCAAAGAGAATTACTTGTGGGTCAGAGAGGTA
-CCTTAAAATGGCTTTAAAAACTTAAAACCAAGATTATTTTCAGATTGTTTACCCCCTTGA
-ATCTTAAAACTGTTCAGATATCCAATTACTGAGCTTTCTAAATTAGTGCTCCCAGTTTTT
-CTAAACTTTTAACtttttttttttttgagatggagtctcgctctgtcgccaggcctggag
-tgcagtggcacgctctcggcttactgcaacctccgcctcctgggttcaagcgattccccc
-gcctcagcctcctgagtatctggactacaggcaagcgccaccatgcccggctaatttttt
-tttttttttttttttgtattttagtagagacagggtttcaccatgttggccaggatggtc
-ttgaactcctgatcttgtgatctgcccgcctcggcctcccaaagtgctgggattacaggt
-gtgagccactgctcccagtcTTTTTTACAGTCAAGACAGAAAATAATATTTGTATGGCAC
-AATGGGGTAAATGATCAAGACTGCTCTGGATCTGAGGTCATTAGTTTGGATGCTGTATCC
-AAACTATATTCTGCATGAATGGCCAGAGGTGTGAGGGGACCAGTATCTCAACACATCTGT
-AACGCACCCTAACACAATACACTGGTTGAGAAATTCTAGTTTAAATAACTTGTGGAGATC
-ACGACCTGAATAGTCAAAATCCATGCAGCAGGTTGAGAAAACTATTTCACAATTCCTCTT
-ATTTCAAGAGATACGCAATCACCTTTTGCAGCTTTCAAGTATAGACCAGATGTACTAACA
-GGCAACCATTTCGTCTGGAAGATCATCTATTTGGAGGTCACTGACACAAAAAAACAAAAA
-CAACAAAGACAAAACAAGCCTCCTTACCCTAGCTCAGAAGGATAAGCCAAAAGAAAACAG
-GTTAACGGTAAAAATGTATGATTAAATGAAGTTATTGTTTTTTTTCCTCCACTTCATATT
-GATTCTCTTTTCCCATGTCAATTTAAGGTGGTAACCATGGCCAACAACATTCTCTCTCAC
-CTATCATACTAATGCCATATAAGTAGTAGTGTTTTTGTTTTTTCAAGTGGGGAAATATAT
-ACAGCTCAAAAAAACAAAAAAATATCTAGCAACTAACTCCTTGGCAGTTCCCTTGACTCT
-CTGACCTTTAAGTCCCAAGGTTCTAAGTATACAATGAATAAGAAAACTACCTGTTCAAAC
-CCAACAGAATATGTTTTTTTCTGGTTTGATTAAGGCTTCGAATTTGGAACATAAATACTC
-TCAGTAATACTTAGTAATTCATGAAGTTACTGCTTGTGTAAACTTGCAGAATATTTAACT
-TTAGGAGATTATAAATCCTAACATGCCCCTAGGGGCCTTCTGCTTTTATTCCTACATACA
-AAACATACAACATGTTTGTTTTTAAAAACAATGCACATAGgccaggtgtggtggcacaca
-cctgtagtcccagctacttgggaggctgaggcagaagcatcacttgaacccaggaggcag
-aggttgcaatgagccgagatcatgtcactgcactccagcctgggtgacagagcgagacgc
-tgtctcaaaataaaTACATACATACATACAAAAAAATTAAACCAATACACGGAAGTATTA
-CTTCCATAAAACAAACCAGGAAGTACAGTAAAACAGAAAACATTAGCATTTGGGCCTTTT
-GTGTGAATTACATTTCTCCACCTTCAACCCAGAAAAGGGATCTGAGTGTCAATGTGACAT
-AAATGACATAGCAACAGTGTGAGGTCTCCCAATGAAGGGAGGTATTAGAAGAAAATCCAA
-GCAGTTTGATTTGGATTAATAGTTCTACCCCAAACACCTAAGAGAAATCGGAATTCCAGT
-ACTGTCTCTTACAATATAGTCATCATCTATACACCTTTTTACCACGCCATATAAGCAAAA
-TAAAGTCACAATGTGAAACTTTACTCCACTGGCTATTACCCTCTGGAACCAAAAGATGGA
-AAACTTCATTTGGGATATACAGTAATCTAAAGAAAAATTCAGCACTTATGAATGTAATAA
-CTACTGTTACCATTTGAATGCCTCTTACAAACCAGGCACAGTATCAGATGCAtattctga
-ttttagaaataaacagattcagaggttaaataatctgccaaaaacaacaggattactaag
-tggtggaagccagatctgtttaggatccaaagcctaaataggttcttttcactAAATTTA
-ATACTATTTCCTTAGTTCTCCAAACTGATTTATTAACAGCCTATCCAAAACACTATAATA
-AAATGAACTGCTTTAAATTTGGAGGCAAGGTAGGGGTGGGATACTGAGTTTCAATAATCA
-GGTTTCTTCATTATTCTTTTACCTGAATGGGCTGGCCACCAGGCCACAATTGTATAAAAA
-TCAGATTTTAAATGATGGAAAAGCTTTTCTGTGTGGCTACTGAAGGGAGAAAGGAAGACA
-ACTGAGACATGCCCCACCTTGCTGGCTGGGGGCTGGTGACATCTGTGGGCCTCAGTGTTG
-GACTCCAGATGCAACAAAGCCTAAAGTTTTGAATATGTATGAAGGTCAATGTGATGTTTT
-CCAAAAACAGTCATAAAAGATGGCTGTGAAAAACCCCCTAGTATAACAACTGTATGTAAC
-AAGAGCATATAGGTAGCTGCAGATGAATGCTCAGGTCCTTAGCTGTGGTGTTTAAAAATT
-CTTCAGACCAggctgggtgcagtggctcacacctgcaatcccagcactttgggaggccga
-gatgggtggattgcctgagctcaggtgttagagaccagcctgggaaacacagtgaaaccc
-catctctactaaaatacaaaaaaaaaaaaaagccaggcgtggcagcgtgcgcctgtagtc
-ccagctacttgggaggctgaggcaggagaattgcttgaacccgggaggtggaggttgcag
-tgagccaaggtcgtgccactgcactccagcctggcaacagagtgagatgctatctcccaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTTTCTTCGGACCAgtgtggtggctcatgag
-tgtaatctcagcactttgggaggctgagttaagaggactgcttgagcccaggagtttgag
-accagcctgggcaacatggtgagaccttgtctctacaaaaaaAATTaacaactacccaca
-aagaaaaccctagctcaagatggcttcactggAAGGAAAAATGAACTGGTCAGGAAGACA
-GACAAATAGAAGCAAATAATGAAAGCATTTTATTTGACATTGATAACCTTCTCACAATAA
-ATTATGTGGCAAAATACATGCTTGAATACTTAATTGCTAGGCAATAGTCTATTTTCATTT
-TTTCACAAAAGGTAGACAACTCCAAAGCAGATGGCCATTTGTAGCCATTCTATATAATCA
-TAAATACACAAAACACTggccgggcgcggtggctcacgcctgtaaccccagcactttggg
-aggctgaggcgggtggatcacctgaggtcaggagtttgaggccagcgtggccaacatggc
-gacaccccgcctctactaaaaatacaaaaattagcccggtggggtggcatgcacctgtaa
-tcccagttacttaggaggctgagagaggagaatcacttgaacccaggaggcagagattgc
-gccactgcactccagcttgggcgacagagcaagactccatctcaaaaaaaaaaaaaaaaa
-aaGTTTTAAAGTGCCGATAAATACAAGTTCCTGGTCTGCCTACAGTTTATCACTTAATAA
-TACAAAGCAAACAAGAAAGCAAGTTAGTGGATTACCTGAGAGAGCAAGACATAGAGAAGA
-TGTTAATGCAGGGAGCTGGCCTTCTCCAAACATATCCCTAACACACAATATTCAAGCAAT
-TCCCAAACTGTGATCAGAGAACCACTGGGAGTAAGACCTCTGATCTATATTTACAAGTCT
-ATAGGTGAGCAAAGGTAGACCTTTTCCTGAGTCTGAGATGGGAATATTACCTTCTCTATC
-TAGAAGCAAAAGAATCCTAGACTCACCAGGACTAGGTAATAGACACTGTACACGAGTAAT
-TGAGGTAATCTACACTGGGCGTGACTTACATACTGATCCACCCCTAGGCAGCAATTCATA
-CCTCACCCACCCAACAGGCTACATTAGAAACAAGGAAGTACAGGTCAAAAGTCTCATTAA
-AAAAATAAGAACTCTTGGCAGCAGAAAATGAAAATAAAGAATGAAGAATGACAGCACTGG
-CAATAAACACATTCTTTTCTCCGAAAGGGAAGGGAAAGAACTAATGTTGGGCACCCACAT
-GCCAGACATTTTATCAATTTTCTCCTTTAATCCTCAATAATCCTGAGATAATACTAGCTA
-GTACTCTAGTTAttaatcctcacaaaaatcctgaggtaggtactactaattcccatgtta
-caggtgaagaaaccaaaagttagtaagttgcccaaggtAGttgttatccgaactgtagag
-acaagaactcccagacttgaagaggttaagtaaacttccccaaactcaAAGTGGGAGTTC
-TTTCCCACTAACCTATTGCCTTCCCCTCCCTACCCGCAATCTCAATTAATTCTCTATTCT
-ACCCCCTTCTCATTTCTGCAGCTGTTTCAAAAACTACACCTAAGATACAAAGCAAATAGG
-AGTTATTATAAGAAAACACCTCCAAAATCTACTAAGTTGTGGTATGATATGCCTGTTATC
-AGAAAACGTCACTCAATTTTGAGCTTGGAGGGCAGTGACAGTTTGGAGATCTTtagcaca
-acgcctgccagaaacgtggcaggcgctcaggatctgctgaatgaaCAACATCTTCTGAGT
-GGTTATGAATTCAATAACCCAAAATGACCATCTCGTATTTCTGGATATGACATGATACCA
-TTTTTTGGAAAATAATTTACCCATTCATTTTAAACAGGGTAGCTTTCTTAAAATTTATAG
-AACATTGATGAGATAGCTAAACTGAGAAATGCCCATTAAAGCATTAGTCATAACTTCAGG
-AAAATTTCAAATGTTCACTTTTCCAAGCAAATTAAAATGTTTCAGCTAATAAAAACCTGT
-CAGAAAAACCCACAAGACAAGAAAGTATAAAAAGAAAAGAGCAGCCAATATAAGGGCATT
-TAAGATGTCACACATAAAAAATTATAAAACATTAATCTAACTTGTACCTTGGTATTTAAC
-CCTAAAACTGTCACCTCAGATAACACAATATTTTCTATGCAAGAAAACATTATCACCACG
-AATGTAAAGAAGCTTGCCGACCATAGCAACTGTTGCTACGTAGGGTTTTTTAATGTCTAA
-GACTGAAAGACAGAATTTGTAGAAACCAGTTAAAATGCCACTCTTAGCAGTATCTTGTGA
-TACTGTGAATGCTTTCACCTTAAACTTTTTAAAAGACTCAATCTTTGACTTCTACATGTG
-AAAAAAAAAAAGTACATCTGGGAGCACTCAACGTAAGAAAACTACCAATTGTCTATAACC
-CAATGAAAATACATCCTTTGTTACAATGACAGCAGCTACTTTTCCTTAATAATCCTAGAG
-GAATTTCTTCATTTGAAAAGCTGGCTGGCCTAGATTTCTCTATAAACTAAATGACATGCT
-ACTTTCGAAATTATCCATTTCAGAAGTTCAAAGAAATTCAGGTATAAGAACACATTAATA
-CTCTCATGAAACAAACCTTATCCAGGTTACCCACGAATTGTGACAGATCAAAACCCAGTT
-TCTCATTTCAAATCAAGTATCACATTATTTATTACCTTAAAATACTAAGCCCTTACCTAA
-TTCAATGGCAAATCATATTGGTTTTCAGTTTCTGAACTTGTACAAATCATACTGTAATAT
-TTATGCAAAAGTTGTCATATAGTTGAATATTATAGACAGTTAACATCttttttttttttt
-tttgagacggagtcttgctctgtcccccaggctggagtgcagtggcgtgatcttgactca
-ctgcaaccaacctccgtctcccaggttcaagtgattctcagcctcctgagtagctgggac
-cacaggcacgcacctccacactcagctaattttagtagagatggggttttaccatgttgg
-ccaggctggtcttgtcctgacctcaagtcatctgcccacctcggcctctcaaagaactgg
-gattacaggtgtgagccaccatgcccggccAACAGTAGAAAAGGGTACTCAGGGAACATA
-GTTCAAAAGTCATGATTCTCTATTGGCTGGACCAGGATTCTAGACTAGCTCTAGGGCTGA
-GATATCTTAGTAGACCAGTTAACATTCATGTGGCCCAATTTCCCTTACTCTAAACCCAAA
-GTCAAACATAACCTCTAAAGTCTTTCATACCCTGAAATGCTAATCTTGTAATCATCTTTC
-TATTCAGGTAATAACTCAAAAGAAATGGTCTCACTTCCTTCATCCTCTGACTAAAGTTTA
-GTTAGTCCATATTTTATGAATCCAATTAATAGGATACTTTAAAGAACAAAAAGAAAAGAC
-TTTTCTTAAAAGCTAGAAACTCCATTCTGTAGTGATGATTCCCAGATCTGACTCTTAAAC
-TCAACAACCTCAACAGACAATGACAGGGAGAAAAGATCTTACAAGTTTGAGCTGAGCTGG
-GGTGGGGTGGGAGGTGTGAGAGAACAGAGAGACAGTTACAAATTCACAAAAATGTATCAC
-CCATTTCCATCTCCTCTAAAAAAATATGAAATAAGCCTTAAAAGGCTGTCATAGAAACCC
-ATTATTAAGCCAATAAAAACTAATGAAGAAATTATGTCATTTATCCAAGATATGGAAGAA
-CCACCTATTTACAGAAATCCTACCAATGTCCTAGACCTTCAGAAACTACATCTCACTAAG
-CTGACCATCAAGCCCCTTCAAACTGCATCTAAGGACAATAATAATATTCAAACATCAAGA
-AACAGGCACAGGTTCCACTCAACACCATTATTCCGTGGAGTCTTCCAGGACTAAATTGTT
-TTATAGAATCTTTGCTATCTTTGTTCTCTAGAAAATGATATCCCAAAGACTCTAAAATAA
-AACCAGCAAAACCCCtgtatttgttttccattgtgtcataacaaattatcacaaacaaaa
-caacacaaatggattatcttacagaagtcagtgggcttgactgggtctcacaagggctaa
-atgagggtatccagtgggtgggttccctgctggaaactctggggaaaatttgcttccaca
-ttcattcaagctattggctgaatttagttccttgcagctgtaggactgagttcccacttc
-cttgctggttgtcagctgggactggcctttcctactagaggctgcctgcattccccgtct
-cacactttcaatctggtcccctccagtaacggcaggctgagtccttctcatgcttcaaat
-ttgacttccccttctgcctcatctctgacaccagccagaaaaagttctctgcttttaagt
-gcttatgtgagtagaataaacccacccagaaaatccaagataatctacctaagatcctta
-actttaattaaatctacttaacatattcatgttccagggtttatagtatggaaatcgtag
-gggagccattctgcttaccgcagtctgccttctggtttccaaggattcatctctctctca
-aatgcaaaatacatccatcccatcccaaggtcccaaaggtttcccatctaaagcttatca
-tttcagaagtcccaaatctcattcatctattcaggtgtggatgaggttctggggacaaaa
-cagtaagtccaattcctggggcacaattcctaaagaaacaagttctctactcccaacata
-ccactgtgagacatgtagagaataacagttagacattccagttcaaatgggcaaaatgta
-aaagaaaacagagcctccggtccaaagcagtttcaaaatctagggaatctccattccatt
-tcaaagcctgggaaaaatcctctccagcttttagctccacccctctgggctctcctatct
-ccgtctgagtcaccctgattcttttatgaaaagcaacacattcacatgtgagtagtttta
-tcagcctgcttcctatcagtagaatttggggggtccaacagccctattactttctgtctc
-tttcaatccaaactagaactgtttatgttggcataaaattctcaagaacctaatgggctg
-tggaagtattccacatgggtccactccattaaagttcacattcacaaataaaccaggctg
-cacatttaatactttgcttggaaatctcagctaaatatacaagttcatcacttgcaaatt
-tggctttccatataaccataggatacaattctgctaaacttagttgctactatgtaacaa
-ggatcccctttctgccagtttccaataagaaagacctcacttctgtctgggccctcacta
-gcagagtcattaacatccatattgctactaaaagtatgtccTAGGCCttttcttttttga
-cagggtctcactctgccacccaggctggagtgcagtggtgccattaccgctcactgcagc
-cttgacttcctgggctcaagcgatcctcctgTGTtccaggccttttctatcatgcccctc
-aaaacaattctaacctttatctactgccactttcatttttaggtaatagtaccccactcc
-tggtaccaaaatctatactagtgttctactgctgccataacaaattaccacaaatgtagt
-agctaaaaataacacaaatttgttatctcacagttattgtaggtcagaagttgggtgggc
-ttggctagctaggtcttttgcttagggtctcacgaggccaaaaatcaaggtgtctcaagg
-ttgcattccttggtggaaactgggaaattcacttccaagctcaatcaggttgttgaccaa
-attcaggttccttctggttgcacaactgaggtccccatttctttctggttgtcagccagg
-gactggtctttgccactagaggctgcccacattccttctgataaactttccatgtggtcc
-tctctagcaaaggcaaatggagtccttctcatgcttcaaatctctgatttccttttctgc
-ccatttctctgatcccagttggagaaagttctctgcttttaaggacttaagtgactagat
-tcggcccacccagaaaatccaggataatttttctattttaagattcttaaccttaattac
-acctgccaagttccttttgccatgtaacacaggatagctacagattctggggatcaaggt
-atggcaccttgggaagagggagatgtaattctgcctactacaAATCCAAGTCCTATGGAA
-GGGTTTAAACTCACTTCCTAAAGAAAATCATCCCTTTCTTTAACAGAGTGTGAAGTAAAG
-ATGTATATATTTTACTTATGTGAAGTAAAGTATATATACATACATACATATGTCTTTACT
-TATGTGACACAAAGATGTATGTTCAGAGATAGAGACAATAGTAAAAACAAGGACTCACTC
-TGGATGAGTGAGTAGGAAAAGGACGCGCAGTATGGAAAAGGAGTTGCCACCTGTTTCATC
-CTCAAATTGCAAGGCACTTCACCCATAACTACTTAGAAACTAACCCATGCTCCTCCTTAA
-ATGTGTATTTCTCTTCTCTGTATTCCACAAAGGAGTACATAACTAGGCTTTTTTTTATTT
-TTAAAGAAAAGTCACCTCACGGGGACCTAACTGTATAATCAGTTGATTAATCAATCTAAG
-CAAATTTCCAATCTTGCATTCTTTCTTCAAGTCATACACCCTCCCGCAATAGCAAACCAA
-AGCCAAGTATTTCAAAGTCACAGAAGGACAAAAACATGCCCTGCTAAGACTGCAGGTGAA
-CTTTTGAGAATACCACGGAGGAGAACTAGTATTGGTACTGGACTTTCAGCCCCAGGTCCA
-CCAAGCCAGTAAAGCCAAATGACTTACAACAAAACCCTACAACAACTACAAAGATACTAC
-TCTAAAGCCCTGTCTACAGTCAAATTCTTGACTATAAATTTTACTTAGAACAGAAGAGCC
-CCAAATATACCAGCTAGTCCCTTTACAGTGACAGGTAAAAGCTACTTACTAcacttacta
-cctgccagacactgtagtaagcacttgacacaaattgtcttatttactcttctccgtaaa
-ctcacaagctagaaaataccatcatcccccttttacagacgggaaaactgaggcttagag
-agtttaggtcacacagctaagtagcaatggccctgatatttgagaacctaggcagtctgg
-tttttaaccactgggcctacactgCACTCCTCAGATGGAATGAAGTCTCCAATTCTTGGA
-AAAATCTTCCCTTCTTAGttttcttttttctttttgaggcggagtctcgctctgtcgccc
-aggctggagtgcagtggcggatctcagctcactgccacctccgcctcccaggttcaagcg
-attctcctgccttagcctcccgagtagctgggattacaggcgcgcgccaccaagcccggc
-tgatatttgcatttttagtacagacggggtttcaccgtgttggtcaggctggtctcgaac
-tcctgacctcgtgatccacccgcctcggcctcccagagtgctgggattacaggcgtgagc
-cacacgcccggccTCTCTTCTTAGTTTTCATTTCCTCTCCCCATGTCCCATTCTCGTAGA
-ATTAAACAGCTGAAAAGTAATCAAGTCTTCCCAAATAATTTGCCACCTTCTTTTCAAAAC
-TCTTTCCTCCACACAAAGCAATAGCCAAGATGCAACTTCTCCTGACCCTGACTCTGCTTC
-CCCAAAACAAACTACAGAAGCTCCACCCATCACCTGCTTAATCTAGCAATGTTCCAACAC
-TGCAAAAAACACACAACGAAAAACAAAATTGAAAAGTCCTACTCTTTCAAAAGGTCACCA
-ACATATGTATACCCTTAGCCAAGCTTTCTCTCCATACCTCTTTTTCTATCCAGGCTCCTA
-ACTAGTCCTTAACTCCAACTCCAGACGTTCTGCCCCACGTCTTGGTCCCTTCCCCCTTTC
-GCCCCAGCAACCCCGCCTGGGGTTCTCTCCACCTCGCACCCACTCTGCAGGTGGGAAGCT
-CAGCCCCGCCCAGAGGGACCCTAAGAAGGCCCCTACTCCAGCTGCCCAGTTTCGCGGGAG
-GGTTCACTGCACACTACCCAGCAGGCACCACTCCCTCCGCACCCTCCCCCAGCACCCCCC
-TGCGGCCCCACCCCTCAAGTTCCCTTCCCCCTCTGACGACCCCCTCCTCCAAGTTGTCCC
-CTAGTCCCCACCCAGTTCAGTCCTCTCCTCTGCAATAAGCTGGACTCCGGCAGCCGGTTC
-CCACCCTCACATCGGCCTCTGCCCCCAAACCTCGCCCTCCGCCCTGAGGGGTGGCCCCTG
-GGCCTCCCCGATGGGCTGCAGGGGCCTCGCTTGGTTTATGTGTGAAGGTGGGGGCAGGGG
-AAGGCGACGGGCCGCTCAGGAGTCTGCTGGAAGCGTGAGGGTCGGCCGCGCTCCGCTGCC
-CTATCCTGGGCCCACCCCACCCGCCAACGACCTCGCCTGGCTGCTCCCTAGGTACCTGTG
-GTGGAAGCGGCAGCGGCGGCGGCCGCTCTCCCCTCTGCTCACACAGACAATATGGCGGCG
-ATGGAGGAGGAGACACACGGCTCGGCCGCCAGCCGCAGGGACCAGAGCGAGGCTGCAGCC
-GCTGCTGCCGGAAGCGGAAACCCCCTCCTACCAGGAGGCGGGGCGAGACAGCTTCCGACT
-CCGCCCCCAGAGGAATCTCTCTGAATGCGGCCATGCTGGGATGTCCTATTGTAACCTTAG
-GGATTCAGTTCTGGCCTAGGGTGCAAAATGGAAGGAATCCCCAACGCAAAGCAGAATAAG
-GAGACTTGCAATAGTTAAGCGCATTTTATTTCAATAGTGTTAACAAGTGACAACAGAGAG
-AACACGAACCTCCCATTAGGTGAACAGTTGGTTTGACCCAAGTTAAGATGGCGGTACCCA
-GGTTTCCCACACTTCACCCAGCTGGCCCCCCTTTCTTGAAAAGAACCATGCGCGACCTGC
-AGAGCTGTAGAGCCAAGCATTCTGGGAGCTGAAGTCTCTTTTGCTCTGACCCCTCGTTTT
-AAATTAGGGTTTCAGCAACACTTTCTATTCAAACTTGGAGTTCGGAAGAAGTGAATGAAA
-GTTGGACCCTAGGAAGGGCATGGCGCAGGAGTCTGAGAAGTGAGGATACTAGCTCTCAAG
-AGACCAAGGCCCAATTCCTTCCTCCTACAGGAGTCCTGCCAAGAGCTGTGCGTCCAAAAT
-ACAGTGTTTTTTTTTCCTtctatctgcctcccacccctgctctccttgcccgagctacct
-ccccaaaacagccacaaagcactttctaccatgcagagctcatcatggtctccctatggt
-caaaaatctcccatggacctctttatgcaccaaagatagcccaaactcttcacttgacat
-tcagagtcctccataatttggccaaaccctcctttccagcctcctattctgccactctct
-tctcaaattccggaagattccacccacaagactgcaaacaattcctggaacttagctgtg
-ttgcctccctccctttacactggcagttacttctCTTACTGTCACCTCATGGACTGGATA
-ATTTCTGTATGCCGATTGAACTAAttcagggatcctttcctctaggggtctcctctctgt
-ttaactccctccaacccagacactatcagtcagtaacctgaggacctcagtctgtctcct
-ccatcagactgggagcccccagtggacagggctccatctgATGATCAACCTCTCCTTTGC
-AGGCCCTGATAAAAGCTGAAGCGTCTAAGAGTTGCTGAAAGGAGTTCAAGTATTAGTCTC
-ACCTCTGGTGGGACAGAGGTGTGAGCACTGGAACGAGGGTGAGGAGGCCAGGTTCTTTCA
-GTACCAACCATTATCCCTAACTGTCTCAGAATAGCTGGTTGTCTCAGGAATGGGCCTCTC
-CACCCTCCACAGCCCTGCCTTCACAGTTTGTCAGCTGACTAGCACCTCTGCTCCCAAAGA
-GGCACCTCTTCCCCATGTGGGGTTAGGGCTGGTGGTGGCTGCAGACTTATAGTGATGGCC
-TCAGGGAGGTGGCTGTGGCCTTCTCTGGACCTCATCTGCTAGACAGCTTGTGACATCTGA
-TCCCAATTGCCTGGGAACCCACAACAGTTTTTCTCTCAGTGTCCTGTAActgggcctcaa
-tttccccacttgtggactgaggaggttatacaagataatcccaaagtttctGGGAAGCCA
-TCTTCCAGGAAATGATACCCTTCTACCTACCTCTCGAACGTATCTTTTTGGCTCTTGTGG
-CTTTGTTTTTCCCAACTGTATTCAcatttgtttaactcacaacaattcatcatttgctat
-gagccagacactgtgctaggtactggggatgtgttatgaggaagacatacaccagttgct
-cactggtggagcttaccttctaaagtgagaagcaagtaatgcacaggtaaacaaatgcat
-aaacaaagtaatttcaggtagcaataagtgctacgaaaggaaaagataagtagctgtgaa
-gtatagagctttagcttgagtggttcagaaggtccctttgagaaggaaacagtaagtgca
-aacgtcccaaggcaggaaagagcatcacaagtttgaagaaggaggccatggtggctgaag
-cactgcaaataaagggaagaagaggaagaaatatggtgggagaggtgggcagggcattca
-ggtcatgataaggaagctgggttttcatctgagtgtagtgaggaTATTTCCCATTGCTTA
-GCCTTCATGCCTTTCCAATCTCAGCCTCTCTCACAGCATTAGTTCTTCATTCTTCTTCCT
-AGTTCTGGCCTCTATCCATGACTTCATTCAGAGGGCTCACCTGGGCACACATATACAACC
-CTCATACTCATGCAGGACATAATTGAAACCCAACTCCTGCCGTCTACTACGCCAGCCTCA
-TGTAGGTCTCCGGTCTCAAGAGGCTTCCCATCCCAAGTGTTCACCTAGTTGTAGACTTAA
-CATTTATCCTTAACTCTTACTGTCTCTGATCCCCCACATCACACCTCTCAGGCTAGTCTT
-TCTGCAAACAACAGCAGCAGAAGCAAGAGTTAAGATGTTGAGAGTACTTgcactgtgcca
-cacactgaatgttcatcatctcacttaatcctcatgtcaacctgatgaggtagaaaccaa
-aagtatctcaccgtacagatgaggagactcaggttcacagagatcacaggccatgcccaa
-ggtcacatgccggagatggagcttgcatttcaacctgggccATTAGAGTGActctctctc
-tctctctctcttttgagacaggatcttgctctgttgtccaggctggagtgcagtggcatg
-atcacagctcattataaccttgaactcctgtgcttaagcgatcctcccaccttagcctcc
-tgagtagctaggactacagacatgcaccaccatgcctggctcatttttaatttagtagta
-ttattattactattattattattgtacagatggggtcttgctatgttgccagggctggtc
-ttgaactcctaggctcaagcagttcccctgccttggcctcccaaagtgctagaattacag
-gcAAAAGTTTTAATCATGCACTAAGAACCTAAGtgtatttgctttctattgctgcttaac
-aaaatcaccccacaatatagtggcttaaaacaacaatattttatgtttgtgtggattggc
-agtttggacatgtctcagccaggacagctcttttctgctccaagtggtctttcctggctt
-actcttacgtttgctgtcagtgaacaggccagcaaactggttagaactccatggcctcat
-tcacatgtctggcagttggttggggttgttggcttgagtgccttggttctcctccatgtt
-gcttcttcagtaagctaactcaggcttacttacatgacggcccccagaagaaagaaaaca
-aaagcagcaagatctcttcagatctaggcttagaaatgatatagcatcattttcactgta
-ttatatcgatcaaaggcagtcatatggccagctcagattcaaggagagtagaaatagatt
-ccatctcttcatgagaaaaacatcaaatcatactgcaaggagtcatgtgtataaggaggg
-tggaattgttgtggccacctttgcaaacattatatcacaTAAGTAATCGTAGGCATggaa
-ctggttaaagaaattatggtacagccagacatggggctattcacagcaatgagaactaac
-atttttgagcacttaatatgtgtcagacactgtacaagatgctttacatctattaactca
-tttaatcctcacaacagctctctgtggccagtacatttttaatccccattttagagatta
-agaacaccaagtctcagagaggttaaacaactagtccaatgtcacacagcaagtgacaaa
-gccATTGAAAAGAATGAAGACAGTATTATGTCCTGACATAGAAATCTGGCCCTGACATTC
-TGTTATACGATACAAAGCAAGAGACAAACAGTAGTTTGATCAGAAAACATTTAAAAAGCA
-CATTTAAATAATTAGGAGATGTGTGTCttttttttttctgagatggagtttcactcttgt
-tgcccagggtggagtccaatgatgccatcttggctcactgcaacctccgccttctgggtt
-caagcgattctcctgcctcaacctcccgagtagctgggattacaggtgcccaccatgccc
-agctaatttttgtatttttagtagagatgggatttcaccatgttggccaggctggtcttg
-aactcctgacctcaggtgattgcctgtcttggcctcccaaagtcctgggattacaggcat
-gagccactgcgttcagctGGAGATGTATGTCTTATAAAAATTAGTAGAATAAAAATTTTT
-ATGTCTTATAAAAATTAGTAggccgggcgcggtggctgatgcctgtaatcccagcacttt
-gggaggccaaggcgggtggatcacaaggtcaggagatcgagaccaccctggctaacacgg
-tgaaaacttgtctctactaaaaatacaaaaattagccgggcatggtggtgggtgcctgta
-gtcccagctactcaggaggctgaggcaggagaatggcgtgaacccgggaggcagagcttg
-cagtgagctgagattgcaccactgcactccagcctgggcaacagagcgcgactctgtctc
-aaaaaaaataaataaatacaataaaTTAGTAGATCTATATGTCTTATAGTTTTAGATAAA
-TTCAGGAAGAATTTACTACAAACTATTAATGGAGCTTATCTTTGAAGAGGAGAAAAGGAG
-AAAACTTTTATTTAAACACCTCTGTTTGTGTTGCTTGAATAttttttttttttttttttt
-ttttttgagacagattcttgctctgttgcccaggctgaagtgcagtggcaatggtcacag
-cttgctgcagcctcaacctccagggctcaagtagtccttgcacctcagtctcccaagtag
-ttgagaccacaagtgtgtgccatcatgcctggctaatttatttttatgttttgtagagat
-agggtctccccatgctggccatgctggtcacaaactcctgggttcaagtgatcctcccgc
-cttggcctcgcaaagtgctggaattacaggcACAAAGCCTGGCCTTCTTTGAATTTTTTT
-ATAGCAATCATAAATTTTTATTTCAATACCTTATAAAGAAGAAAATGCTTTTAAAATGTC
-CTTCAACTTGGCTCCCACCTATGTCtttttctatttggttttatttttattgttttttgt
-tttcttttttgATACCACCCCAGCCCAACCCCTTATCAATTCTGACCCGAAGTTTTGTGG
-CTACCTTGAGGGCCCCTCCTCTCTCCCTCTGTAGTTCATCCTGCCTGCTGCTGGGGGAAA
-GCTCATTAACCATCATGTTCCATTTTTGTCTAAGAGTTTTCAATGGTATTGCATTGTCTA
-CACAGAAAGTCCAAACCCTTTGGCCTTGTACATTGGGTGTTTGTAAGTTTGACTCCAact
-tggttggattccagctctgtcacttactagcagcatatagttggataagttattagatct
-ctctgagcctcaatttccacatctttttttaaaaaaatgaaagAAAAgaccaggtgtggt
-ggctcatgcctgtaattccagcactttgggaggctgaggtgggtggatcacctgaggtca
-ggagtttgagaccagcctggccaacacagagaaaccctgtctctagtaaaaatacaaaaa
-ttagccgggcatggtggcacatggctgtaatcccagctactcgggaggctgaggcaggga
-gaattgcttgaacctggaaagtggaggttgcagtgagccgagattgtgccactgcactcc
-agctgagtgacagagcaaaactctgtctcaaaggaaagaaagaaagaaataaagaaagaa
-agaaagaaagaaagaaagaaaaaggaagagagagagagaaagaaaaagagaaaagaaaga
-aaAGGATATAGCATTACATATTTTGTGGCAAATTAGATTACTGTTCAGTGACTGTTCACT
-TTCTCACCCAGCCAGGGGCAATTAAtattttcctgccccattaatattaggcttggccat
-atggtttgctttggctagtggaatatacatatcagttacaatgtgcaaattccagcctag
-gccttaagaggtctCTCTTGTTTTCAATTGGCTGTCTTAGAATTTTCACCTCTTCCTTGA
-AGGGCGAGCTGTCATTGGTGCCTTACATCTTTTGAAACAGACTTCCAATCAAGGCTGTAG
-TAGGCAAGTCTGAGATAAGAATAGTTCTTTACTCTTTAGTTTTAGTTTGCattaattaaa
-ttataatttataGTTTTTCGTGAACTCCATATTTTTGAATGAGCGGAAGCTAAAGAGGTG
-GGAAGAGAATGCTCTGTCTCAATTTGGGAAAGCAGTAGCTTCTGTCCAATCCTCCAGCAT
-CAAACAGGCTAGTCCTAGAAGAATAAAGGACACACATAGTAGATCTGAAATTGAGTCAAC
-CCCAGCAGAACCCAGCCAAGATCAGCCAAACCCAAATGACTACATATGAGAGAGGGAGAA
-ATCAATGTTTGCTTCTGTCAGCACAGAGTCTTGGGGCAGTTTGATATGCAACATTATTat
-aggaatagccaactaacagattcacatcatagggcttttttcagggttaaataaatgaat
-acaggaaacgccttaaaaatacactggcatatagcaagggtgtaatgcatgagaactact
-attATtgggggtgcaactgtgaacaaaacaagcccctgttctcaaggatcttatgttctg
-cggagagatgtatggaatggcagctggtgatgagtgttatggaagaaaataaagcaggga
-aggagagggagtgctgaggtaaaatttcaaatgtgatcatcaacaaaacttcaacggaag
-gtgaaacttgaccaaatccaagaggaagtgaggcggggagccagaaagtatgtgggagaa
-gattgtcccaagcagagagaattcggatgggcaaagaccgtgaagtaggctcatgcctgg
-tgaatttcaggaatggtcagtagatagggcagctgagccgagggagtgGCTGATCTCGTC
-TCGGCTCTGCTGGGGTTGACTCAAATTCAGGTCTACTGCATGTGTCTTTTGTTCTTCTGG
-GACCAGCCTGTTTGATGCAGGAGGTTTGGACAGAAGggggacaatgtctcagaggttcac
-aaggtactggattgtgcacagccatgtagggctatcgtgaggacttgcttctgctctgaa
-tgaggtggggagctatgggagggttttgaccaggtggagagcaggctctgctatgcattt
-ttataggatttgtccagctgctaagtgtggactagatggaccgggaatgagggctgaagc
-agggagaaaagataagaagctactaccacaagccagacaagagatggtgttgctttgaac
-caaagttggactccgaggttcttttcaaagtaaaatcaaaagaatttactgataggtgtg
-gtatggggtgtttgaggaaaaaaagaattgaggatgactccaaggcttctggcctgagga
-actgaaagaaggaatttgccagtaactgagatgaagaaggctatagaagagaacttcttg
-gggcagggggagaaagagaggaggaattagcagttccatttgcgacttgttaaatttaag
-tgagctatgagacttccaagtgcagatgactaatcagaagttagatgtatgaatctgagc
-ccaggagagaggtccaagctggagacgtaatttttgggagttactatgtactaaattttg
-tcctccccaaatttatatattgaaaccctaacacccaatgtgacactatttggagacagg
-gtctttaaaggaggttaaaagagatcatagagtgggccctaattcaacaggactattgtc
-cttacaggaagatgagatatcagagctcattctctccccatgcaggtgctcagaggaaat
-gctgtgtgaggacacagcaagaaggcagccatttacaagccaggcagagagccttcacca
-gaaaccctccctgacagcaccttgatctcagatttccagcctctcagtgagaggctgaac
-tgtgagaaaataaatttctgttgtttaatcctctcagtctgtggcattttgttatggtag
-tttgagcagactactactgagtcatcaacagagaaatggtttttaaagccatgaggggcc
-aggcatggtggctcacacctgtaatcccagcactttgggaggctgaggtaggcagatcac
-ttgaagtcaggagtctgagaccagcctggccaacatggtaaaaccccgtctctattaaaa
-atacaaaaattagctgggtgtggcggtgtgtgcctgtaatcccagctacccaggaggctg
-aggcaggagaattgcttgaacccgggaggcggaggttgcagtgagctgagatcgagccac
-tgcactccagcctgggcgacaaggaagaaactgtctcaaaaataaataaataagtaaata
-gccataaggctgggtgaaattgcccagggaatgagtgtagacagagaaggaggaccaagg
-actgcgccctggggcatccaacagtaagagacaagcaaccagcaaaggagcctgagaagg
-agcagccagtggggtaagtgtcctggggaccaagtgaaaaacgtgtttcatggaaggagt
-gttgatcccctgatcccctgtgtcagatgctgctgaggggtcagaaaagaaaagaacaaa
-gagctgatttacaaagtggaggacattgttttgacaggagagagtgtaggtaggttggtg
-ggaacaaaagtctgattggagtgggattaagagagaataggagaaaatataaatatagac
-aTagaaaggaaggaaaaaaggaaggaaggaaggaaggagggCTCtttttttttttttctt
-tttgagatgggttctcactctgtcgcccaggttggagtgcagtggtgtgatctcagctca
-ctgcaacctccgcctcccaggttcaagcgattctcctgcctcagcctcccgagtagctgg
-gattacaggtgcgtgccaccacgtctggctaatttttgtatttttagtagagatggggtt
-ttgccatgttggccaggctagtctcaaactcctgacatcaggtgatctgcctgcctcagc
-ctcccaaagtgctgggattagaggtgtgagccaccacacctggccTggagagctcttttt
-aagagtagaaagctgggccaggcgcagtggctcatgcctgtaatcccagcactttgggag
-gccgaggcaggcggatcacctgagatcaggagtttgagaccagccgggccaacatggtga
-aacccagtctctactaaaaatacaaaaagttagccaggtgtggtggtgcatgcctgtaat
-cccagctcctcaggagactgagctaggacaattgcttgaacctgggaggtggaggttgca
-gtgagctgagatagtgccattgcactccagcccgggcaatgagagtgaaactctgtctca
-aaaaaaaaaaaaaaaaaaagtaggaagcaaatgactaaatgtagaagaataggagttggc
-aaccaccataggagacaatcattaatggacactgcagtagtggattaaagtttgatgaga
-aatagggcatttgcacagtctgagaatatctccccccaagatacttattaattacaaagg
-gtaaaatagtaactttacatggagaaacacagccaacaccacttgaccaagtgataaagt
-gaacatcaccagtagcagggcaaattgacatcatgtggcttccgggatgatgcactgagt
-gggacgtcgcgtcacgtcagtgatatttctgccaaagaggcataattgactcatgaggaa
-gcattagaaaagcccaaagtggccaggcacagtgactcacacctgtaatcccagcacttt
-gggaggctgaggtgggcagatcacgaggtcaggagttcgagacaagcctgaccaacatgg
-tgaaaccctgtttctactaaaaatacaaaaattagctgggcatggtggcgtgcgcctgta
-gtcccaactactcaggaggctgaggcaagaaaatcgcttgaacccaggaggcagaggttg
-cagtgagccgagattgcaccactgcactctagcctgggcaacagagcaagactccgtcta
-aaaaaaaaaaaatgtccaaagtgaggatatctttgcaagagaaccttactctttaaaaat
-gttgaagtggtaaaagacaaaggaagactgaggaatagttttagatgaaggagaataaag
-taattacaactactgaatgcaatgtgagatcctagattaagaaaaaatcattttcactta
-ctacaaaatatattaactagatgagtggtgaaatttgaataagatctgtagattagataa
-tggttttgcatcagtgtaaaacgtcccgattttggttattataagagaatgtccttcctt
-ttaggaaatgtgtactggtttttaggcctgtaacttaccataaaagagttcagggttgga
-ggaaagaaaaataaatgataaagcaaagatggtaaaatctgggtaatgggtatttggcta
-ttctgtttttgtttttgagacagggtctcactctgttacccaggctggagtgcagtggtg
-tgatcatagctcactgcagcctcaacctcccaggctcaagcaatgctcccacctcaacct
-cctgagtagctgggaccacagttgcgcaccaccacacctgactcatttttaaatattttt
-tagagatggggtctccctgtgttgcccaggctggtctcaaattctaggctcaagcaatcc
-tcccatctcagccttccaaaatgctgagattttaggtgttagccattgtggctggtgaga
-tttgagtgttctttgtactactttgtaacttttctgtaagtgacattatgtcaaaataaa
-TTCTAACaagagagaatagaaggaaaggaagtagagacatggaggcagtgagtccaggta
-actttttgaggagttttgctatagaactgaggacaggtggcaggtggagagcaaaatggg
-gtcaagataagttgttcaaaggcagaaattgtagcatgtttttatgctgatgagagagat
-tcagtagattggaaaaaaaagtaataatgcagacagagagagagaagagagtggctagaa
-tggtgtctctggagagaaggatgggatctagtatacaaatgggggctttgaccttggagc
-acagatggctcatccatggtcacagaagggagggcagagtatttgggtaccagattggta
-ggtaggtagctgtgcagtggaaatgtgtggaaatgctttctgattgctaccattttccct
-gtgaaataggaagcaaggtccttggctaagagtgagaatgggggagaaggtgatggaggt
-ttgaaaagataggaaggaagtgtgtagggaaaatgaatggatctactgtgattgtcaggc
-agaacaaaagacaccactgaagctatcatcattcaagtaaagtgaggccagtctacatgg
-tggtgtgtttttctccagccacattccactgcagggggacaaacacagagggatgtggag
-ttggcaccaactaacaggtgtttagtcagagagggtcagggggatcttgggagtatgcag
-cacagtggggataaagttatatcatggctgtaatccacaaagaaggaagtgaggacaagg
-aaacaccaaggttcagagaggtttagtgacttacccaagcttgcacagctagtgaataat
-gagttggtctctgcatccaggcagtgtggctcaaagcttattctctcaccaacccagtat
-acacaggctgtccccagggtgtagcatagcatttggcacatgtagCCTCTGCTAACAAGT
-GAATTAAATTGTACCTGGGGTTCTCTCTGCCTTTCATTCTATGCCTCCGAAGAATACTaa
-ataaaataaaataaaacaacaacaacataaaaACCTAGCTTCTTCCTTGCCTTCAAGCTG
-TCTTTGATGTCTTAGTGTGCACGATGAAGGAGATGTACCATCAGTCTCCTTTGGGTGGCC
-ATTGGTTCATGCCTGCAGTCTGGCTttcagcaggtcattctcagcacatactctggggca
-gacactttctcaggttctcagtacacagcgggaaacaagtcagtattcctggcctggtgg
-agctcagtcaagtggggagaagataagcagacaaatctagcattgcaaactgggattatc
-gccaggagagacaagtgggcggggtatgagagtgcatgagagtaaagccgacctagtgga
-gggcgggaagaagagtttacccaaggaaggtcaggaggggtggcccatggggctgactga
-agaggagaaacagcatgggcaaaggtcctaagataggaacatgcctgttaatggcatatc
-aaggaggccaatgtggtccagacgtatatggagagggtggagggtgggagggaacatagt
-gggaaatgagatgggagaggttggcaggatccactacaccctgtagaggaatctgattta
-agaacaatagggtttaagcaggggaatgatttcgtaaggttttacatttatcagccaggt
-gcggtggctcacgcctgtagtcccagcactttggaaggctgagatgggcggattgcttga
-gctcaggagttcaacatggggaaaccccatctgtaaaaaaatatacaaaaattaggctgg
-gcgtggtggctcatgcctgtaatcccagcactttgggaggctgaggagggcagattatga
-ggtcaggagatggagaccatcctggctagtagtgaaacccctggctagatggtgaaaccc
-catctctactaaaaatacagaaaaattagccgggcgtggtggcaggcgcctgtagtccca
-gctactcgggaggctgaggcaggagaatggtgtgaactgggagatggaacttgaagtgag
-ctgagatcatgccactgcactccagcctgggtgacagagcgagactccgtctcaaaaaaa
-aaaaaatatatatatatatatataaaatacaaaaattagcagggcgtggcatcatgcacc
-tgtattcccagctacttgggggctgaggcaggaggattgcatgaacccaaggagttgagg
-ctgcagtgagccgagatcaccccactgtgctctagcctcaatgacaaagtgagatcctgt
-ctcaacaacaacaaaaaaaattttttttatttataaaagacctctttggctgctgggcca
-ggagcagggaggacaggaggcaggggtaggagtggaggtgtgggaggagaggaagcagga
-gaggagtggaggtgtgggggcaggggaggcagtgggtgggccaggagagaggtgatgtgg
-catgggctaagatggaagcagtgcagataaagagaggtggattgacttgggacatatttt
-ggagctggagttcacCACAGGGAAACTGAGGCCCAGTGCTTCCAAGGATAGCGCTCCAGC
-TCTCCCAGCCCAATGGAAGCTTTTAGATACTTCTGCACTGTGGGGGTCACTTGTGGGTGG
-TTGCATTGGGGGACGAGTGGCCAGGACAGGTGACCTCTGACTTTTGTCTGGTGATGCGTG
-AGTCTCAGATTGGGCTTTGAAGGAGCCATGGGTACCTTGCTGGGCAGGTGGAGCATGTCC
-TTAGAGGATCATCCCACCATCCTCACgtaaccctgcaggtctcttctctctgagtcatag
-ttctcacacttgtaacatgaagagggacagtacccacttAGGCGACATCACCCCCTTCTT
-ACAGATGAGACAACTAggccaggtacagtagctcatgcctgtaatcccagcactgtggga
-ggctgaggcaggcagatcgcttgagcccacacatttgagaccagcctgggcaacatggca
-aaactctgaatctacagaaaatacaaagattagctgtgtgtggtggcatgcgcctgtagt
-cccagctacttgggagactgaggtaggaggatcacttgagcccaggaggtggaggttaca
-gtgagctgagatccaccactatactccagcctgggagacagattgagactttgtctcaaa
-aaacaaaaacaaaaacaaaaCCACCACCACCACCACAACAAAAAAACCCAAAAGAAAaca
-gatgagacaactgagcctcagtgaagggaagtggctctttagggtcatacaggagtaaag
-acacagccaagactagcacccaggctagagcctgggctgttgacctttctgcttcatcat
-ttgccTCCCATACCTTTCCTGGGCTCGTCAGTCCTGGGGATGCTCAACTCACCCAACACT
-GTGTTTCAAGCCCAGGGAATCCAGGATCGGTtagttcagtggttaggggtatgggctgct
-tggattctatttccagcgccaccaaggggccttattctgtctgaaccttggttttctcct
-ctgcaaaatggggctaacagtgcatacccttgtagcactgttacaaggtaggggaactgt
-acagatgtaaTGATTTGTGTATGTGAGTCATTTACAAGCCTTTGGAGTGGCTGGCACCCA
-TCATTGTTTGCTGTTGCTGTGATTATCATGCCATTGGACTgtggcttgaaaccctacagg
-cccaaggctccctttaatagtagttataatgcttcttttctaaaataaaatacatgaata
-acataacctgctgacgcacataattttttttttttgagaccgagtctcactctgtcatcc
-aggctggagtgcagcggcacaatctcggctcactgcaacctccgcctcctgggttcaagt
-gattatcctgcctcagcctcccgaataggtaagattacaggcgcatgccaccatgcccag
-ctaatttttgtatttttagtagagacagggtttcaccatgttggccaggatggtctcgat
-ctcttgacctcgtgatccttccgccttggcctcccaaagtgctgggattacaggagtgag
-ccaccgcgcccggccatgcatagttttaaacataaataatgtcctagttgtaatttaaaa
-gaaaataaagtgaaaataatttagaataaattaatatgtaaatgttccaggacaatgtgt
-agaaaccatcacaaagtagttgggtgggctctgctctgggtggaatcattgagaatctgc
-aggctgaattggtaacgccgcactggcggcacatgcactgtgactgcatggctgtgatag
-tctgaaatgtgagcagtctaggtaaagttctgaaccaaacacaatccattctgttcccaa
-tcgctacagactaaatgtttgtctcccccaaaatcttacgtcaaagcctaatccccagcg
-tgatggtattaggagatggggccttttggaggtgattaggttatgagtgcagagccctca
-tgagtgggattagtgcccttataaaagaggccccagagagctctgctgccccttctacca
-tgtgaggacacggtgagaagccatctatgaaccaggaagcggtcttcaccagacatggaa
-tctgccagctcctggatgttggacttgccaggcttcggatctgtaagaaataaatttctg
-ttgcttataagccaccagtctgtgtaatttgttacagtggcctgaactgactaagacacc
-aatttatgtgaaggttgctttcctggcagagtcgctgttattaaaaccaagcaaaCACac
-attgtactggaaaaggcaaaactatagagacaatgaaaagatcagtggttgccagggctc
-aggggaggggagagagggatgcacaggtggagcacagggcatttttagggcaggggacct
-cttctgtatgatgctgtaatggtagataaaggatgtatgtacttgtcaaaacccagcatg
-ggccgggcgcggtggctcacgcctgtaatcccagcactttgggaggccgaggcgggcgga
-ttgcctgagctcaggagtttgcaaccagcctggcgctacagaaatcctgcttcaaatcca
-gaaaccccgtctctactaaaaaacacagaaaattagctgcgcgtggcggcatgtgcctgt
-agtcccagctactcgggaggctgaggcaggagaatttcttgaacccgggaggtggagggt
-gcagtgagccgagatcgtgccactgcactccagcctgggtgacagagcgagactctgtct
-caaaaacaaaaaacaagcaaacaaaaaaacaaaaaaaaacaaaaaatccccagcatggta
-gaactgtgcaacacaaagagtgaactgtaaggtaactgtggatttcagttaataattgtg
-tgtcaaaattggtttatcaattgtaacagatgcaccatgcatttgcactaatgcaaaatg
-ttaataacaggagaaactgcatgtttggagaaggagtacaagggaactgtctatgatttc
-tgtgtcatttttctttttcttttctgagagagggtcttgctctgtcccccaggctaaagt
-acagtggcacgattagagtccactgcagcctcaaactcctaggttcaagcaatcctttag
-cctcagcctcccaagtagctaggaccacacacatgtgccaccatgctagggaaattaaaa
-aaaaaaattgtggagacaggttcttgctatcttgctcaggctggtctcaaactcttggcc
-tcaagcaatctccccatctcggcctcccaaagcactgggattacaggcgtgagccagtgt
-gcccagtctctgcacagttttgctctaagtctaaaacttctctaaaaaagtagtctatta
-aACATAAAAAACAAAATGAAAACCCCCacacattgtgtttatatgtaaaatagaattcgg
-tccttggctcagataattaaaaacaaggtttttacctacactaattaccaaagggagatt
-tgaaaatcatgACTTGAGATGCACTGCAGGATGTCTGCACCCTTGCTCCCCTCCTGCATG
-GCCGGGGCACCCCCTGGTCACTGGGAACTCTCCAACACTCTTGGTGACATTGCCCCCTTG
-AGGATCTCTGCACTGGATCTTTGCTCCCTCTCCTGCAGAACCCACAACTGCTGACTTACT
-GATCTTGGGTGATGTCTGATTAAAAAGTCTCCCCAGGCTTAGGAAACTCAAGGTGCCACT
-GTGGACACAGCTCCCACATTTCAGCTTccagaaatcctgcttcaaatccagatcccagca
-ctccctcattatgtggacttgaatgagtcacatcaatttattgagcttcagtttccccat
-tgatgggaaaaagggtgattgataatacctgccatactttatattcataatgaatataat
-gagtatattcattaactcagtaaatatatattgaacacctactgtctgtgctgagaattc
-aacagcgagcagaacaaacatctctgccttattggagcttatggtctcgtgatggggaca
-gacaaaaatcaaacaaatatatgagataatgtcagtgataaataaaaataaggcagagtc
-acagatggaaagagggtagggcaagggatccttggtaagtgtcgtcctggatggcttccc
-agaggagatggcatttgaacagggctgggaatgaagtgaaggaacgtgccacgaaagtct
-cagggcgaagaggcaacagcaaacaccaaaaccctgaggtgggaatgtgcttggtgaatt
-cgagaaacagcaaggaggccagtgaggccggtggggagtaagagggaagagaaagtgagg
-acagagagatctggagaagccagactctgtaAGGAATTGGGGGTTTATCCCAAGTGCAGC
-AGGGAGAAAACTTGAAGAGTTATTTACTGGGGAAGGCTTCCTGTGTTGTGTGCCCTTGCA
-GGTGAGAAAAGGTGATGAGCCCACTCTAAAGCCAACTCTATGGCCCATGACCGTGGTCTG
-GGACACTTTGAGCAGAAAGCGTCCTGTTCTCCTTGGAGTCAAAGGATTGGTGACAGTGTC
-TGCCATGCTGTAGTTTCCACAAAATACCACCAGGTGACGACTCTGGGTCACGCTTCTAAC
-TTGTGGGTTCTTGATTcctggagggcttttgctaaaacacagactgctcctggccccagc
-cttccaaagcgctggattacaggtgtgagccaccacacctggccTGACAGCCATGTTTTT
-AGCTTTTAAAAGCAAAACTTTGGCATTAGCACTATctctgtgagaggggccgatcattcc
-tgttttccagatgggtctatgaggctcagagaggagaaatcattgtctccatgagcaaaa
-gtgataaaactggcactcggcccccatgtctgcctgacttcaaggcccccaatccttcAG
-GGATGCCACACccatgtgcccagtgaggctctgggaattttaaaaactcatccaatttaa
-tccttacaactgaacaaatcccatgcaacgttaatgtctccattttagagatgagaaaac
-tgaggactagaactgagaaataagtcacctgatgtcgctgagctGTTCTAAGGCTGACAT
-catgcattttggagtcagagagacctgaatctcaactctagctcacactctccctagcta
-tgttcacctgatttctctgagccacagtttaagatgggaataagagcccctcctgcttgg
-tagctgtTGGTAATATTTATGAACAAATCTAGGCCTGGGGCCTCTTAGGCTTACAGTGGC
-ACCAGCCTCTTCTGTTCTGGAATCAGGAGGGAAAGTGATTGACCCGGCATTGGCCATCCC
-TGGCCTGGCTGGGATCAGAAGGGTCCTGGAAGGATAGGCAGTACCCGGCAAAGACTGGGG
-AGGGAGCTTGCTTAGCAGAGGTGTGAGGGACCTCACAGGAGTCCCCACAGGGTGTCCAGG
-TAGGCATAGGTATGGACGGCTGGACAGGGACTCCAGTTGGCCAACCAAGAACAGGGATAG
-AGCTTGGGCTTTGGGGTCAGGCAGCTTGAAGctctgggttccagctcccagatctgtaaa
-gtggaacagtaatgactcttccctgttttggattattgagaggaCCCCGGGGAACAGTGG
-GCTCAGCTGGAGGGATGACATTCTAAAGTGTTCTCTGGGACCTTAACCCCAGTCTCACAG
-GAGATGGGCCTTTGACTGTGGCCTTTCTGAAACCTGAGAATGTTAATGGTCACATAACGT
-TAGTAACAGTGATGGCAGATAACATCTGTCATGGATTAGAGGCCACTGGGAGGTTCTCCC
-TCACAGTTCTGGGTTCTTTGGATCAGAAACATGGCACAAACACACAGCCAAGGGTGGTTT
-AGGGCCTTGCAACTTACAAAGTCCTTCCATAGCATTGCACTGCACCCTGTGTTAAGATAA
-ATTCTCCAAGCTTTaagcactctgctaagtgcttgacaggccttattttattcttccaaa
-acactttgaagtgggtgttgccttgacccccattcttcagctgaggaaatgggaggcata
-gtgaggtcaagtgacttgcctaaggctactcagctggaacgtagagcgcctcatcccatg
-cttgactctgaGTAGAGCAAGGGTTGCACAGCAAGTCAGAGGCTGAGAGGGCCTTGGAAG
-GACCCGAGGCTCCCCTAGCCACTCCTGCCTGGCACCGATTCCTCCAATCCCACCTGGAAG
-TGGCTGGAAGTGAGAGGGAGAGGCGGTAGGGGTGCTGAGCCTGAAGGGAGGTTTCAGGAC
-TCAGGCTAGGAAGGCAGAGAAGGAGAGGAGGGACGGAAGTGCCCCTTCCCCCTAGAGCCA
-CTGAGGGGAGAGATAAAGGCATGAGGAGATGTAGCTGGGGCCAAGACAAGGAGGAAGAGA
-AGAGCTCAGGAGCTAGAAGGAACAACTATCTGGGGAGGAAGCCCCGTTCCAAGAGAGAAG
-GCCAGGGATGGGAAGGGGTGGGCCAGGCCCTTGGGCTGGGGTCCTGGGTCCCAGTTTTAG
-CAGGTAGCAAGACCCCGAACTGGATAGAGGGTTGCCTTCAGTAGATACCCTATCATTCCT
-GTGTTATGAGAGGTTGGGGCCACTTGAGGTGAGCCCAGGATTCAGCCTTCGAGGCTCAAC
-ACACTTGAGTCCAGCTGAATGACAGAATGAGCCATAGGACACTGTCCCAGGCCTGACttc
-cttccttcaacaaatatctatggaggattcaccaagggccaggctgggctcccagcagga
-aacaaagtccctctgaagagagactaacaccttcgttaaggagcccccaatctcatagga
-gagatggacaaaaagcagaaaatgaattggtatccagtatcacttttggctgtaaaggtg
-atcaggggaaaatgaatggattggagtctacctattttgtgatggcggtcagggagggcc
-cctctgagaaggtgtcatctgcacagaggcctgaaggagatgaggcagtagctatgaatc
-tgggggaagagcatttcaggcaagcgcaaaggccagggcaaaggccttgaggcaagaaga
-tgctgctgtggaggaaggagggcaccaagcaaggaggccagtgtggctgctggtgagaga
-taagagagtgaaggaagatgagggtagagtccggggggcagatcacatagggcctcaaag
-gccactctatggattttagctgcatctcatgtgacatggacattgaaggaTTTTTATGTG
-TGTGTGTTTGTTTGTTTGTTTGTTTttgagagggattctcgctctgtcacccaggctgga
-gtgcagtggcacatctcggctcactgcaacctccacctcccacattcaagcgattctctt
-gcctcagcctcccaagtagctgggattacaggtgtgtaccaccacgcttggctaattttt
-gtatttttagtagagacagggtttcaccatgttggccaagctggtcttgaactcctgacc
-tcaactgatccacctgcctcggcctcccaaagtgctgggactacaggtgtaggccactgt
-ggcctgtgacattggaaggttttgagcagaggtatgtgttgtgacctgactcaggtttta
-ccagaatccccctgagagatgttctggccaccactgaagaagactggagggtagagcagg
-caagggctgatgcagggagcccagtgaggaggctGGTCAATGAGCACAGCAGTTTGGCCA
-ACGATCTGGGGTGCTAAATATCAACAGAAACAAAaatatttattgcatgctttctgtggg
-tcacaaactattctaagtggttgcttgacatggaatgcttttaatcttcagtacagattt
-taggtagatcatatttttgtACATTTATGTCTATTTGTCTCTGGACTGATTtttttttaa
-ttgagatgaaattcacataatataaatcaaccatttgaaagtatacatctcagcggcatt
-tagtatattcacgacattgtacagccacacttctgtctagttccaaaatattttcaacac
-cccccccaaagaaactttgtacccatcaaagatagatgatatttttatcctaattttaca
-gatgaacaagcagaggcgtggacaagcagagtcacgtgccccaggtcacacagccaggaa
-atggaacaagctggCCACAGGTGTTGGGAGGAACATGTTGACAAGCTGCCCAGGATGGCC
-TGGAGGCCCCTTCGGGGTCCCCCAGGTAATAGCACCAAACTGCCttttatttttatttat
-ttattttgagacagaattttgttcttgtcacccaggttggagtgcaatagtgcaatcttg
-gctcactgcaacctccgcctcccgggttcaagtgattctcctgcctcagcctcccaagta
-gctgggattacaggcatgtgccaccatgcctggctaattttttgtatttagtaaagacag
-ggtttcatcacgttggtcaggctggtctcgaactcctgacctcaggtaatccaccgcctc
-tgcctgccaaagtgctgggattacaggcgtgaaccatcatgtccagccCAAATTGCCTTT
-TAAGAAGGGCATGTCagccgggcgcggtggcttacacctgtaatcccagcattttgggag
-gctgaggcgggcggatcacctgacgtggtgagtttgagaccagcctgaacaacatggaga
-aacccgtctctactgaaaatacaagattagccgggcatggtggtttatgcctgtaatccc
-agctacttgggaggctgaggcaagagaatcacttgaacctgggaggtggaggaggttgcg
-gtgagccgagatcacgccattgcactccagtctgggcaacaagagtgaaacaatgtctca
-aaaaaaataaaaataaaaataaaaataaaaataaaaaAAAGAAGGACATGTCCTCACTTC
-TGGGCTTTTGTTTTGTGGAAGGGGTGGGATACATTTGAGGCCAGAAAACAGAAAGCACTG
-GGAAGGCTGAACAGTGGCCCCTGCACCCTCTCTcaggatggtgcacagaggagaatgggg
-actctggagccaggctgttgagttcaattcccttctcccacctttcttccatgttgtgaa
-gttgggataataagagcaccaatctcatcagtgttgggggaaagtgaatttcccatcagt
-agagctcagcactgcccgtagtatttgctcaatcaaCAGCAGCCTGCATTCTCTTTGCTG
-CCCTCTCCACTCCAGGAAATAAGTTAAGCAGGTACCTAAATGCAATCTCAGTGTTGGGCC
-TCGTAAAACATCTGGGACAAGACATCCTCCATTACCAGAAAAAATGCAGTCATAAAAATC
-TCAAGGTTGACAGGATAGTGCCCAtttttatttatttattattattattattattttgag
-agaaagcctcactctgtggcccaggctggaatgcagtggcacgatcttggctcactgcaa
-cctccacctcccaggttcaagcgattctcctggctcagcctcccgagtagctgggattac
-aggcacctgccaccacgcctggctaatttttgtatttttaggagagacagggtttcacta
-tgttggccaggctggtctcgagctcctgacctctagtgatctgcccgcctcggccaccca
-aagtgctgggattatagatgtgagccaccgcacccggccCTGATACCCATTTTTAAAAAT
-CACATACAATCAAAATTCAGGATATAATTTACATAAAAACAAAAGCACTCATTTTGTCCA
-TCCCTTGCTTTGGGTTTATCTACCGGTCTTGTTGACTCCATTGCTAATATACATCCAGGT
-CCCATCCCATCTTCCCAACCTTTCCCAGTCTTTCATCCTTCAGCTGCACCTCTATGGCAA
-GGAGCCACCTCATGAACATCAGTTTCAGACTTGACAGCTGATGGCCGGGGGTGCAcatgg
-gcttgtggagacacggtcagggagccctgggtctacacctgagtctgcctgggccgctgt
-ccgttgtgtaatcttcatcaggccacatcctctctctgagtctcagttttcttttcctta
-aattggagatgaaaaagtctgtctcacttggcagtcaagaaggtccaacaggataaCTTC
-ATCCATGGTGAGAGAGTGGAGGAGAGGCCCCCAGGAGGAGGCAGGGATCTCATTCTGCGG
-GTACTGTACTTGGTTCTGGGAGTGGGATGGCAGACAAGCGTGTCACTGTCTTTGTTCTCA
-GAGCTTTGGTTGTGGAACGGGAATGGGAAGGTAAGGGAGGGTACCCCTGGCAGGGGCACA
-GCATAAACCAGGGTGTGGAGATGGGATGGCGAGGCAGGACTGCCCCAGAACTCTGTCCCC
-AGGGGCTGGCAGTGCTGAGAGGGACAGAGGGAGAAGCGATTGTTTATTCTCAGCCTCAGG
-AGGACGCAGGAGAATCTCAGGCATCAAATTTAGTGCAGCACACCTGCCTAGGCAAAACTG
-GACAGCTCCACCTCAACTTTGTAGAGGGGCAGAGAAAGCTGTGGGGAACCACCTTCCTGC
-TCTTGTCATGAAGTCCTCCTCAACTGGAAGCCCAAGCTTCAGGCCAGGAACTTCCCCAGC
-AGAGGCAGCCTTCCCCAGGGGGCCAAGACCTTGGCAGAATGTCTGGGGTGCTCATGGCAG
-CGCCTCTCACCTGGCCCCTGCCAAATCAGTTTCTGCTTGGCCTCTGCAGGATCTGACCTC
-GTTGAGTCCCCAGGGCCCAGTTCTCTGCCTCTGAGGCTAAAAGTGAGATCGTTTCCTGGT
-TGAGGAGTGACTAAAAGACTTCTGTGTgtagagactgggttttgctgtgttggccaggct
-ggtctcgaactcctgaccccaagtgattcaccTTAAGGTGAATGTGTGGCTGTGTACGCG
-CACGTGCAGAGCAGAACCATCACTCTGCTTGGGCTAGGCAGCTGGACTAATCGTCCATTT
-CCCCCCGCCCGGAGGCCTCTTCCAGGCCCCCAGCTGCCCTGATGGGCCAGGTCAGCCCCC
-CCCACAGGAGCCCCCAGCCGCTCCCCATTCGGCTTTCCTTGTATTGTGCGCTGCCTGGTT
-TCTCGAGGAAATGGGGCGGCTGCTGGGTGCGGGGGCGGCCGCCAGCAGCCCCACCCCCTT
-CCCCCCATTGTCACTCCTGGCTTCTGCCCCTAGCCCCTGCTGCTGACACTAAAAATAGAC
-CTGTTCACAGGGAGACGGCCCCACCCCTGAGCGGGGCCCCAGGCTCAGTGTCAGGTTGGG
-TTTGCCAAGACAGAGCTGCCCTGGGGACTGAGGTGGCTCAGCTGAAAGACCGGGGTCGAA
-ACACGTTAGGgctgtgtgaccttaggtccccttttctcctctctgagcctcaatttcctc
-acctttaaaatggggtaaggctacctacctgctaaggttgctCTTGACAATGAACAGAAG
-CTGGGTGAGTCACAAGCGCACTTCGTTCTCGTCCTGCCCGTGGTTTGGTGCTGCCTGAGC
-GGCTTGAGAACCTGGAGGACAGATGGCATAACACACGCCTTCATCTTCAATCTGCCTTGA
-ATGATTGCCAAGGACTTCCAAATCCCCCTAAACAGAGGAGCTGGAAGAGCCCACTTGGGA
-ATCCAAAAGTGTCCGCAGCTCTGCTGTGTGAGCCCGGGTAGGTGCCTCCTCTCTGGCATC
-CATGagctcacacgtgaagtatgcagccaggctgggactcgaacctgtgtctgcagcctc
-tgaagactgttttttccgctttaaggggctgcctcCATGCTGATGACTCCAAGGACTTCC
-TGGCTGGGATAACCCTGCCTTTTCGTCTACAAACACATGATTCATGGTGAAGGAAGATGC
-TGGGCGGTGGGCATGGAAGCCTGAGCTGGGGGCTGGGTAGTTCCCCTTGAGCCCATGCAG
-ATGGGCAGCTGTCCTCAGATGCCACCCGCAGCCATTGGGTTGGGCCCTGCAAAGGAGATA
-CTGGCATGTGTCTGTCTACCAGGCTCTTTTTTGTTGTTGTTCCTTTGTCCTTTTTTTTAA
-ACCATGGAATATTTCAAATATGGGTCTTTCATATACATTCAAAACCTTGAACTCTTAGAA
-TTACTTTTGTCACAGTTGCAATTTTTTTTTAAAtttttatttcatttgtctatttatttt
-ttgagacggagtctcgctctgttacccaggttagagtgcagtgacctgatcttggctcac
-tgcaaccttcgcctcccaggttcaagcaattctcctgcctcagccttccaagtagctggg
-attacaggcacgcaccaccatgcccagctaatttttgtatttttagtagagacagggttt
-taccatgttggccaggctggtcttgaactcctaacctcaggtgatcggtccaccttggcc
-tcccaaagcgctgggattacaggtgtgagccagcgtgcctggccTGCAATTTGATATATG
-TCTATGTAATTACCTATCTCCCATTAATCCTGGGCCCTAGAACAGGGACTGAGACTTTAT
-TATTAATCCATGTATTCCCCCCCAAAACAAATACAGTACTGTTATTCTCCCACACAGACC
-CTGAGAGCAAGCAGACTTGTCTCTATTGTTTGTGTTTTGGGATTTGTGGGGACACCTTGT
-GACCCAGTTTTGTTGTAAATCTTGTCCATGGGGTTTTGGTTTTGCTACCTAATTGCTTTG
-CCAATTTTTATGTGGGGATTTAGAAAGATTTAAAAGCTGAGTTTTCCACTGCAGACATAC
-CCATATTCCCGAATCTTGACTCTTTCTAAATACATATGTACATGAGAAAAAAAAAATCAG
-CACTCAAGGTATTCAGTGACAGGTTTCTCTCAGAACCTGGAAATGCTGGAAATGACCACT
-GTTGCTTAGTCGGGGCTCCtttctttcttttttttttttttttgaggcagagtcttgctc
-tgtcgcctaggctggagcgcagtggcgcaatcttggctcactgcaacctctgcctcccgg
-gttcaaggaattctgcccaagcctcctgagtagctgggattacaggtgcatgccatgact
-cccggctaattttcgtatttttagtagagatggtgtttcaccatgttggccaggctggtc
-tcgaactcctgacctagtgatctgcccacctcggcctcccaaagtgctgggattacaggc
-gtgagccaccgcacccagccTGAGGCTCCTTTCTTATATTTTATGTGTATCAAGCAAACT
-TAGGTACCTGGTCTAGTTCTTACACAAAGAGTGTACTTCCCCACTTAAAAACGGCTACAT
-TGggctgggtgtggtggctcatgcctgtaatcccagcattttgggaggctgaggcgggtg
-gatcatttgaggtcagaagttcgagaccagcctggccaacatggtgaaaccctatctcta
-ctaaaaatacaaaaacattagcccggtgtggtggcagatgcctgtaatcccagctactct
-ggaggctgaggtgagagagtctctcgaacccaggaagcggaggttgcagtaagctgagat
-cacagcactgcactccagcctgggtgacagagcaagactctatctcaaataaataaataa
-ataaataaataaataaataaaataaaATGGCTACATTAAAAGTAggatttttagcttttg
-ttccatagacctcttcggcatatggtgaagtggggatggaccccttctcaaaatgtggtt
-tttttttaattagtctttttttttttttttttcaatagaggtggcgtctgactatgatgc
-ctagcctggtctccaactcctgggctcaagtgatcctcctgccttagccttccagacagc
-agggattacaggcatgagctactgcacctggatttttttttaatgttttataaatgcata
-aaataaaatgcacgatattacaaaggaaaccaattatactgaaatgctattactgcaata
-taaacaagggtttgtgatgcagtgatgaggtgaacttctttattagtacattaaataaca
-agatggggaagcaggttgcaggtcaccatgaacgtaaacaatatgtaatgttatctgcaa
-ccactgtgatatgaaatgaaagtatctttgacttctgttgtaacagtcactgctaaccct
-accatgcttcttgatccacattcatacttgaaggaaatgctgcatttcaattagaggtta
-gtgaatataaagttattttttcccacctaagttcatgaagtttctgagttctagatcagg
-taaagaacccctgCTAAAAATTGTGGCTGTCCCTCACTTGATTCAACCAGTCTCTTATTG
-AAAAGTCACCCCacctcagcatttcttcaaatctcatccttatgcagttggggaaactga
-ggcccaggctggagaacaaacttgggtcattctgccctggggggattgcagaatccagtg
-tcctgattcccggctcaggttattttccagctcctcccctaccagGCGGGTGGCAGGGAC
-CCCCCCTCGGCCCCACCTCCCTGCTCGCCAGGAGCAGCTGGCGTCCTGTCCCGAGAGTGA
-CCCAGCCCCGCCCCGCCCTCGCCCCACCCTGGCCGGCCAGCTGTGGATGTGACAGGAGGC
-TTGGCTCTGGCTCACTCCGGCACATTCCTGGCCCAGCCACTGTTTTCCTCTTCTTCTTTT
-TTTTTTTGGTGGTGACTTTTTCTCCCATACCCCTCCCACTCCTTTTCCTCAAAAATGCTG
-TGTCTTTCCCCAGAGGGTCCCTCTGGGCGGCTCCGGGAGGGAAATGTGGCCTGGATTTCC
-TGGAACGCGTGGAGCTGGAGTCTCAGCGCTGGGAGGAGGGAAGCTGTTGGCAGCAGGGCA
-CCCCCCCAACATAACTGGGCCTCCCTGGAGAAAGAGGGTGAGCGGAGCCTCAATATTCCC
-TTTGCACTGGGCCCTCTGAGCAGTGGCACCCGCAGCTGCAGCGAGTGGGCTGCTGCCTCG
-GGGATAGTGAGACGCCTCTAGGAAACCGCGgctctgtgatcttggggaagctgggcattc
-tctctgagcttgggtttccttgctccttagaactgaggatgtgatctggatctgccacag
-ctggtgggacagtccagtgaggcgatggctgtaCATGGTCCCTTTCCAAACAGGGAACAA
-GAAGCGAGGTGTTGGGGGCATCTGGGGATGCAGGTTTGGGGGCTGCATTTGGGGCAGCAG
-GGGTGGAACAGAGAATTTCCATCCTTCCTTCTTACCTTCATTCATTCATGAGACAAACGT
-GTATCAGACAATTACCATTGTGCCTCTCGGGGCTCacaataagagacaagtaaatgtctc
-ctgtaggggcaggtgcagatgagtgctctaagaaaaagtgaagcagggtGCAGGGATAGA
-GTTTCTGAGGGTGCTGGGGGGAGCTGCTCTGCTGGGGCACCACATGAGCccaggcagagg
-gagcagtgggtgctgaaggctctgaggtgggagcaagcaaggaagggaagagaaggcaag
-gtttgtgtggagtgggggagacagcagagagggctgtggggacttctgggtgaggcgagg
-actttggctcgattcatgggaagctacgaagggctttgagcctgcagtgacacagtctgT
-AAAGGACCCACGGGGCTCTACAGGAGGTgcgcacgtggaggagtgacttggaggccaagc
-agctggggtcctggcttcagctcctccctggctctgtgagcgtggacaggatgcttctcc
-ttgagcctcattttcctcctcagtagagtgggctcatggagctctgaagactaagaggaa
-gggTCATCAAAGTGATGACCCTTTGCCATCACTTTGCCTGTGAGCTACAGGTCTCTATAA
-GTGGGAGCTGTTTTTTTCTATGAGCCTCTGAGGATTGGAGCCACTTGCTTAGGGGGAGGC
-TTTGGGGACAGAGCCAAAGGCTGGTTCCGAGCCCAGGTAGAGCAGTGGCTGCTCAGATTT
-TGGGGACATGTGGTGTCATGATCTGGGAGGGGGATATTCTTGAGTTGTCTGCAGCCCTTT
-TCCCCTTATGGGTACGTGGCTGGATTTAGGGAACCCTAGGGCAAGGGAAGAAGGGCTAGG
-AGCTGCCCCTGAGATCTGTGAGATGGGAGGTGGCCGGGTGTTCAGAGGTTCTCTGAGGTT
-GCAGAATGCCCTGTCAACCACTCTCCCATACCCAGAGGGGGCTGGACGCATCCCTCTCtc
-ccttgtcctcagtctcgattttctcatctgtgaggtgggcacaacaagtcctaatcctgg
-cagTGATAGGAACGTTTGGGGAAGCAGTGATTTGTCATGCATGATGCGGTCGGACAGGAC
-CCTGCCCTTAAGAAGGAGGGAGCCCACCTGCCCAGGCACTGTGCTGAGCTTCTGTGCATT
-AGCTGAAAGTGGACAGGATGACGTCACTTCACTGGAACTTTCTGTGGCTTCTCTTTGCTC
-TCCTATGGAGGTTCCATGGGAGGTAGGAGCTGGGGGCTAAccctgcataccttataaacc
-tcaactctcacatcctcctggctttctgtgtccaggttcacaggcctcctgaatctccct
-ccttaatgcccacgttgttctggcctctgagacattgtgttactccctgaattccttcct
-cttgccctagtaaactctccctccctgctcagctcagtttaactatctcttcctagagga
-agcccaccctgtcctgtagactaggctgagtctcacattgcggcatcttaaggtgctgcc
-tcctctcctggtaacacctgtcgctgttgtaatttcacaggtgttgctgcaattacctgg
-ttgctgactctccccacattaggactgtgtgttccatgagggcagggacgttttctcgat
-cacagccatatccccaacagtaatagcaaattgcagatgctcaataaatgctttctggat
-aaatggaGGGGTGAaatcattttgacaatcagaagaagaaggtgccccccttttacagat
-aaggaaccaaaggtacagagagattaagtaacatgccccgaggtcacacagccagaatca
-gatggTGTCTGTCTGGGAATGTGTCCCTGCAAGCCAGGCCTAGAAGGTGGGCAGATGGGG
-TTACGCAGAGAGGAGCTAGGACCATCTGGATAAGGGAGGGTTGTGGGGGCAAGCCCCACC
-CATCCTTGTTTTCTCCATTCGAATAGTGGTTTGTGGCTGTTTTCCTCAAGGGCGACTCAG
-GTGACCTTCAGGTTGGGGCCTCCTGGGTCCCAGGGGCCTGCTGGGTGGAGGGCCCGGTCT
-GGCTGGGCTGCTTTTCTCGCCCCTTTGCCGGCCCGCTGGCTTCACGCACAGATTACAACT
-TCCCCTCTTCGGCCGTCTTACGCAGGCCACCTCCGGCTCGCCATTGTCTCATTGTTTGCT
-GAGGGAAGCTCCAGGAGGAAATCAACCTGCTGCTCACCCCAAGCAGGGAGTTTCACCCCC
-AGCCCCCACCCAGGGAATGCCTGGGGGGAGGGCAGGAGGGGTGGGGGCAGGTAGCAGGCa
-atgcaacaggcagccttgaagggagtgagctccctggccgggaagtatgcaagcagaagc
-tacatTCACAGCACCTATTTACTAGGTCCTCTCCCAGGCTGCACGTCAGGCAGCTGGAGA
-CACAGATGCTAGAAAAGGGTCTTGTCCTTAAAGACCCTGTAGCCTAGAAGAGATGCTGGG
-CAGGGCCTCAAAGCCAAATGCCTTAGGGGCCAGACAGGTGACAGAAATCTGTAGGCCTGC
-GAGCAATGCTGAGTGGTCGGGACGTTAAATGAAAACTATGGTGCGAAGGAAGGCTTTTAG
-ATTCCAATTTTATTTTAACATGTTGCTAATCAAACAAATGAGTCCTCCAGCCTGATGTAG
-ACTGCGGAACCCCAGCCTAGCCCTTTAGAAAGGAATTCTTGTTCTGGGGTGAAATTGGAT
-CAATAGTTATTGGTGTCTGCCCCTATGCCTTTAGCTATAGCTGTGATGGGCAGTTCCCAG
-CACACTGACAGCATCCCTTTTCAAACACCCAGCAGTCATTTGGCTTCTCTGAAGACTTGG
-GAACTCTCTCAGGGACCTGGgaggagttgatgccactaggggcacccctcagtcaatggg
-gaatgggagttagtgggtaaatgccccatcctcttatccattggaagttcctggtcactc
-aaaggtctgcagtgagttgggggcactggttgcccatactggaaactggctcaataactc
-actttttatccgtttcccctcttcgctgtcactctcccagatccctctggcttcctgggc
-taccggctcccaaattcttgtctcaggctctgcttttaggggaacccaaactaaaacaGT
-CTCTAATATTCTTTCCAAATAGCTTATGATTGTACACTTAGGTGATTCTAATATCCAATG
-ACTTTAACTCTGTGATTATAAGTTTTCATAAGTAAACCCAACTGTGATTCCAGAATGATG
-TCATTCTAATATGGCCGAGATACACCTATCAGAACTGGAATGCTCCATTTTGTACAACTG
-AATTTTGCTTCTCTTGAGCTCCTATTTTTTTTTTCCGATGCCAGAAAATGCAAACTTCAA
-AAAAATCTAGACAAAAACCAATTATTTCAGATTTGAACTCAGTTGGGTGAATCAAGCTTT
-CCCTGGCATCCCTTTTTTCCCGGATTCATTTAAGTCCTGGAAGGGTAGAGGCATCTTGGC
-ATTGGTTGAGGGAAGAAGGGGTCTGTGACTGGTGTTTCTCAAGCTATACCAACCCATCTG
-GCTCTCCAGCATGCTTCTGCCCCCTTGGCATTCACTGGAGATGACCCACTCATGTTGATG
-CTTTGATCTCTAGGGTCAAAGAAGCATAGCTTTCTCCTCCTGGACCATACACTGTAAGAG
-TCACGTCCACTCCATTCAGTCATCTGAAAAGATGTGTTCACTTTTTACACCTCACAAGGC
-CCTGTATACAAACTCGtcattcaatcaaatgtacttgctgagtatccggcatgtgttggc
-attgagccaggcactgaggatacaaagatgaaaagacaggtccctttcctcaagtcattt
-gcaagccaaataatgtataaatattttcaacttacatattgtgatgtccattatgaagga
-accaaatagggtaggcagagaaagcctctttgaagagctgtcattggagccaaagtctaa
-agtcaggggaagccacaaaaaggtttagcaagaaagaCATGTCTGATTATATCTGTAACT
-GTAAAACATTTTCtttttctctttctttcttttattattattttttggagacagggtctc
-actttgtcacacaggccagagggcactggtgcgattttggttcactgcagcctcaaccta
-cggggctcaagcgatctccttcctcagccccccaagtagctgggattctaggcacatgcc
-accatgcccagttaatttttttgtattttttgtagagatagggtttcaccatgttgccca
-ggctggtctcgaactcctgagctcaagtgatatgcccaccttggcctgccaaagcattag
-gattagaggtgtgagccatcacgtttggccGGTAACTGTAAAACTTTTTGTAATACTGAA
-GGCATCTCCTGCATTTTTTCATACATTTTACTTTTCCCCTATTTATTGGTGGCCTCCATC
-ACCTTAGAGATTCACGTCTCAAAGGACAAGAGTCATGGAAATTTAGTCAAAGCCCTGAGT
-AATTTGAGAGTGTACAATTTATGCCATAAATAATAGATTGAGAAGAATAGATGAGTCAAA
-TTGGTTTTCCTCTTTAGGAAACGAGATAAAGATTATCGGGAGGTGGGGAGAAGGGAAGtg
-tagcagagatgtccagctgtcatgcaattacccgacttccccttcttctatagctgcaga
-tggccatgtatctacactgcatttcgctgtctcccttgcagtttaggcgtggccacgtga
-ccaggctctggcaaaggatatgtgaaccgaatggtgtgtgcaacttctgggtcatgcatt
-gaaagaaaaaaaggggcatcctcttcccacacctcttcttcccttcctgccagctagaat
-ttggcatggtggcaggagcagtagcagccgtcttagaccacaagactgaagccacacgtt
-gaggatgtcagaacaacaaaatggaaggatcccaggtatctgacgtcatgggactcatag
-cggcctagactgcttgccccctactggttagtgagagagaaatcaaTAGCTGAGTTAGCA
-TCCCAAGTAATACAGAGGGTCAGAAATATAGGAAATTagcctgttgctgtggctcacgcc
-tctaatccctgcactttgggaggctgagttgggcagatcacttgaggtcaggttttgaga
-ccagcctggccaacatggtgaaaccctgtctctactaaaaatacaaaaactagctgcggc
-atggtaggacatgtgcctgtaatcccagctactcaggaggctgaggctggagaattgctt
-gaacccgggaggcagaggttgcagtgagctgagattgtgccactgcactccagcatgggt
-gacagagcaaggctctgtctcaaaaaaaaaaaaaaaaagaaaggaaagaaaTATAGGAAA
-TTAGTGTGCATAGACACTGGTGTAACCCTGAAAAAAGAATAGAAACTTCGTGTGGTCTTG
-AGGGGTCTAAGGTCTGGGCCCAGAGCCTTAATTCTGGGTAGAACCCAAGGAAGCCATGAA
-CCTAACTGCCTGAGTGTGTGTGCAGGCACCTGGAGCAGGACACTTCAGGGGAAGGGAGGT
-GAACTGAGGGGAAAAAGCAAAAGAAGACACCCAGAATTGACCAAGATTAAGTTTCTCCTA
-CCTAGTGGAATGGAGGCTATTTATTTTGGGTGTGAGCTGAGAGTTGTACCTGCTTCCCAT
-TTTATTATTATTGTATTATTATTCCTGGATCCCAGCCCAGCAGTTAACAGGAACCTGAGT
-GGAGGCTGAGTTTTATCAATAAATTTTTGCTGAGCACCAaggcccaggctcaggtcccag
-cctagctccctacttgctgggtggccttgagcatgttacttctcttttctgagccttggt
-gatctcattgggaacataaaggggttgaactccaggatgctcaaggtggctctttttgca
-ttgatgtcctgtggttttTCTCTGGGTCTGGCAATGAGGGCAGTTCAGGAAAAGTGTGAT
-AAAATAGCTCTACTTTAGTTCATAGAGGGACAAGACACAGTCACATGGGcacacatgtac
-acacacacacacacacacacacacacacacaAATGTGATTAACCAAACATCATGGTAGCC
-AAGAAGATATGTAGCATTAAGGTTTagaatacaggctttgaagtcaaacagaccagagtt
-aacaacctcattttgtttttattTTCTTTTTTAAAAtttttttaaaattatactttaagt
-tctagggtacatgtgcacaacgtgcaggtttgttacatatgtatacatgtgccatgttgg
-tgtgctgcacccattaactggacatttacattaggtatatctgctaatgctatccctccc
-tcctccccttaccccacaacaggccccggtgtgtgatgttccccttcctgtgtccaagtg
-ttctcattgttcagttcccacctatgagtgagaacatgcggtgtttggttttttgtcctt
-gcgatagtttgctgagaatgatggcttccagcttcatccatgtctctacaaaggacatga
-acacatccttttttatggctgcatagtattccatggtgtatatgtgccacattttcttaa
-tccagtctatcaatgatggacatttgggttgcttccaagtctttgctattgtgaatagcg
-ccgcaataaacatacatgtgcatgtgtctttatagcagcatgatttataatcctttgggt
-atatacccagtaatgggatggctgggtcaaatggtatttctagttctagatccctgagga
-attgccacactgtcttccacaatggttgaactagtttacagtcccaccaacagtgtaaaa
-gcattcctttctccacatcctctctagcacctgttgtttcctgactttttaacgatcgcc
-attcttactggtgtgagatggtatctcattgtggttttgatttgcatttctctgatggcc
-agtgatgatgagcattttttcatatgtctgttggctgcataaatgtcttcttttgagaag
-tgtctgttcatatccttcgcccacttgttgatggggttgtttgtttttttcttgtaaatt
-tgtttgagttctttgtagattctggatattagccctttgtcagatgagtagattgcaaaa
-attttctcccattctgtaggttgcctgtttactctgatggtagtttcttttgctgtgcag
-aagctctttagtttaattagatcccatttgtcaattttggcttttgttgccattgctttt
-agtgttttagtcatgaagtccttgcccatgcctatgtcctgaatggcattgcctaggttt
-tcttctagggtttttatggttttaggtctaacatttaagtctttaatccatcttgagtta
-atttttgtattaggtgtaaggaagggatccagtttcagctttctacatatggctagccag
-ttttcccagcaccatttgctaaatagggaatcctttccccatttcttgtttttgtcaggt
-ttgtcaaagatcaggtggAGCaaccccattttcatcactaactagctggtgaccttggat
-aagtcactttatttctctgagtcttgggtttctcccatttaaaaggaggatgataatacc
-tatatttagggctttcatgtaataaaataaggtaatttatgtgcagctccaagatcacgc
-tgggcacgttacagatactcagtaaatggtggttattCTGATGAGGATTGTGAGCCATGG
-TGAGAATCAAGTGAAAGGTGGAGAAGGGCAGAGCTGGTGGGTCTTGAGTATGGACTAGGA
-AGATCCATGAAGTCCAGGGTGTAGGGAGGCTCTTGGAGAAGGCAGGACATGAGCAGTGCA
-GGGATGTGTAAAAGCGTGACCAGATGGGATGAAATACCCTTTTAGGAGAAGGAGAAAATA
-GACCCAGAAGCGAGGTAGAGCCAGGcttgagaaaattacttcctctttctgagccttatt
-tttcctcttggtaaagcgagtgtaacaatatctgccttgcaatgttgttatagcgattat
-tgagatgttagaagtcaagctcccattaagatgcctggctcatgtaaggcatcaaatatt
-agtttcattCCTTTCCCAAGAGAGGGTACTCACAAAATATCATCAGGGCTAgtaacacag
-aggataaatatttgaggggatggatacctcattctccatgatgtgattatgtcacattgc
-atacctatatcaaaacatctcatgtaccccataaatatatacaccgaatatgtaccccaa
-aaattaaaaATAAACAATTTTTAAAAAAATCCCCCAAAACAAAAACAAATGAACAAACAA
-AGACAAAATGTCAGGGCTAGAGTGACCCTCAACGCCTTTCTATGGTAACATACACATCTA
-TTCATGAACTGTTCACACAtcattcatcaatctatacagctatcacttatgcatttttca
-tatatccattcaaacaccaacaattcattcatcacccattgttcattcatctagccaaaa
-gtccattcatccttcactcaccatctatccttatccatcatcatgcattcatcagcaacc
-ttccatctgtctacctatcatctattctatattcatccttcatcaatctatttcatatcc
-atacacccattcagccagctactcaagcagccatcattctttcatctgtctatccattta
-tcatttatccatcatccacctatccacctgccattagttagccatcaccatctctcatga
-atttatttgttcctcaactatccattcttcatgcatctatccatctatttatcactcaat
-gatccatccatccattatttcattcatCATTTATGCACCCACCATTTTTCACGCATGAAA
-TATTCATCCAAAATCTATTCTTCATTTCTTCATAGCTATCATTTACAAGCCAAACATCAA
-CCCACCAATTTACTCTTCCTCCCTTCCTCTTCCATGCATCATCCATCCTTCATTCACTCT
-TTCACTAAACATCTGTCATCTATTAGCCATGCCTATCATCATCTATGTATCTTCCATCGA
-CATAACCACCTACGATCTATGTAATTTCATCATCCATCTGTATATGTTTatccagtcatt
-cattcatttatgtttcatcttccatattgcctgtcaggtaacatacaccagagatacaga
-ctaaataagctacaacctgtcctccagttgttcagagtctagtggagaaagataaataag
-cctatgatagctgctgtaccagaggaatgactgtaccaagcaccccaggggagaccacac
-aggagagagccacagactctgagggaactggggaaggactcacaaaggaggtggcagttc
-attaaactgggtctcgaagaatgattagaagGTCCACTGttttttttttttttttttttt
-ttttgagacagagtctcactctgtcccccaggctggagtgcagtggcatgatcgtggctc
-actgcaacctctgccttccaggttcaagcaattctcgtgcctcagcctcccgagtagcta
-ggactacaggtgcccgccaccaggcctggctaattttttgtatttttagtagagatgggg
-ttttaccgtgttggccaggctggtctcgaactcctgacctcaagtgatctgctcctgacc
-tcaagtgatctgcgcgacttggcctcccaaagtgctgggattacaggcgtgagtgagcca
-ctgtgcccagccCAAAGGTCCCCTGGTATttttatggggggaaatgagtcctaagagggg
-aagtgactgtgcataatcatactaagagttaattaacaggacagagacttgtaaccaagt
-ctctagcctactatactagttctgtttccactTCTTATGGGAAACAGTAAGTTACTCAAG
-GGAAGACAAGTAAGCAAAGAAAACCTGCCTCGAAGCACCAGAAGGCTGCTGTTTTAGGAT
-CTGGTTGTAGATGGGGTGGAGAAGGGGATTTTCCTAGACCTCAGCTTCTCATTCAGGGAG
-AGGTAACAGCAGAAGCCCCAGGAATATTTGACAAAGGGCAGGAAAGAAGGAGGAGGAGAG
-ACAGAGCACAGTGAGGTGAGGAGAAAAACAggtcaggcacagtggggctcatacctgtaa
-tcccagtgttttgagagatcgaggtgggaggatcacttgaggccaggacttggagaccag
-cctgggaaactccatctctaccaaaaaaaattaaccgggtgtggtagcatgtgcctgtag
-tcctggctgaggcaggaggatccccttgagcccaggagtttgaggctggctgcagtgagc
-taagatcgtgcctctgcactccagcctgggtgacagagcgagcccctgcttcaaaaggaa
-ataatataataataaaaaaaCCCCACCTACTATTTTCTTGTTACCTTTACTTGGGTAATT
-AATAATAATATTGTTACTGCTTggcacggtggcttatgccagcaatcccagcactttggg
-aggccgaggtgggtgggtcatttgaggtcgggagtttgagaccagcctggccaacatggt
-gaaaccgtctctactaaaaatatgcaaattaaccaggtatggttacacatgcctgtagtc
-ctagctacttgggaggctgaggcaggagaatcacttgaatccaggaggtggaggttgcag
-cgagccgagatcatgccattgcactccagcctgggcaacagagcgagagtccatgtcaaa
-aataaaaataataataaTGTTGTTAATATTCTAGCagccatgttttattgagcacagact
-acgtgctgaacagtgtgctatagatttttcatgcatcataccattttatacctcaccctc
-agcagccccaagaagcagttattactcttgtccccattttgtgaatgaggaaactaagtt
-cctgagaaggtaagctaggatttaaatatggtctgtgtgactacaaattccatgtccttt
-ccactcctctttgctgcctctctCATCGTTCTTTGGGTATGGTATATAATAAGTGACTCA
-GACATACATGTGCATTCACTAAGATATATGCTTCATTTTACTGGAGATTTTCTCTGTATC
-CTCAGACTCTGAAATAGTGGACATAGTAGGAAAGAAAAAATTTGTTGAATTTTCATAGCT
-ATCATTTACAAGCCAAACATCAACCCACCAAGAAATATCTTCTATTTCTTGTTGAATTAT
-CTTGCAAAGAAAATGGATAATCAATTAGAATATAGGGTATACAGGTTTGTCTATTCTGAC
-ACAAGTCCAAAGttttttgttttttttttttgagataagagtcttgctctgttgcccagg
-ctggagtgagtgcaatggcacgatcttggctcactgcaacctccgcctcccaggttcaag
-cgattctcctgcctcagcctctcaagtagctgggattacagctgcctgccaccatgccag
-ctattgtttttttgtatttttagtagagatggggtttcaccatattggccaggctggtct
-cgcacttctgacctcaagtgatctgcttgccttggcctcccaaagtgctgggattacaga
-cgtgagccaccgtgcctggGCAAATCTGAAGTATTAATAGCATAAAGATATAATTATTTT
-TCTCCCAGGTCCAGGAGTAGgctgggcatggtagctcatgcctgtggtcccggctacaca
-ggaggctgaggtgggcggattgcttgagctcaggagttcgaggttgcagtgagctatgat
-tgtgctgctgcactccagcctgggtgacagagggagatgctatctcaaaataataataat
-aataaTCCAGGacaagcttgtttgggtcccaggcttcttctgtcatgcagctctgccacc
-cccagggtgttgccctagtccccgtggtctcagatgccacccacatatctacaccacagg
-cagtaggcagtggaaaaggcatgaggcaactatgacttgcaggttgctctccccacttct
-gttcacctaccactggtcagaatttagtcatgtgatagtaaccagctgcaagggaggctg
-ggcaatgtagtctttattctgagaggctatgtgttcaggtaaaagtgagaggttttattt
-ccacaggagaaggggaaaatgggtatgaggggcaagtaggggtctctgGCGTAGATGAGA
-AGAAGATGTATGGACACCAATATTCTCTATCATGTGAAGACTCCTAGGGTCAcatatcat
-ctctcccattagacagcaagctccctgagggcagggggctagattaatcaccctggtgtc
-cctgaaagcttctagctcagACTTAAGGAAGAAGACTTTTTCAGTCCCGGATAGAGGTCT
-AATGATCTGATGGAACCAGAGCAAGTAGGTTAGAGGCCTTTTGCCTGGTGACGACCAAAG
-TGGAGAGGCCAGGCGTCTGGGAGGCGGCCAGCAACAGTAGAGAGAGACGCAGGAAAGCGA
-CTTGCAAGGGGGCTGGAGTGGGTGAAAGGTCAGAGGAGAGTCTGGAAAGGAGGATGCAGT
-GTTGCAGGGCGGGCAGAGCTGGGGGAAGGAGGGGATAATTTAGTAATCACAGCTCTTCCC
-TCAATAGAATGCTCAAGGGCTCACAAAGCATCTTGGCCTCCATGTTCTCACTGGTGAGGA
-TAGATGGTACATGAAGTTAGGTGGCAGATGGGGGGGTGCTTCGGATTGCCACCAGCCCAT
-TCCTATCTAGAGAACTGTCACTGGTttccttcttcgtttcccatgtgcttcctttctcct
-tccctgtctcccttccttcttccttccttgatttctctcttcttcctCTGTATGTGTGGa
-tatacacatgtataacacacacacacacatagacatacatatatatgtatatctgaatgt
-atgtctctgtatgtacagatatacacatatacatatatgtatatgtgcatacacatatGT
-GATGACCAAAGTGGAGAGGGCTAAAAGATGAGGCCAGGTGTCTGGGAGGCAGCCAGCAAC
-AGTAGAGAGAGACGCAGGAAAGCGACTTGCAAGGGGACTGGAATGGGTGAAAGGTCAGAA
-AAGAAgtgtgtatatgtgtgtatgtatatgtgtgtatatgtatatgtacatatatgtgtg
-tacatatgtatgtgtgtgtgtgtgtgtgtgtatgtataatcacctactatgtgccaggag
-gtattgtgaaagttattgagaaacacactggtgagcaaaccagacaagatccttgccctc
-atggagcttatgcttaagagagagagatattacacaaataaatgcacaaatagctccata
-accgttaaatgtgaccaacgactagcgctatgcagaagtgcagaatgctgtgagaGCATA
-TTCGTTGTGTATTCCAGCATTTATTAAACAAATATTTAATAAAGCAAATTATATGTATTA
-GAGAtttgcttttttttttttttttttttgagatggagtcttgctctgttgcccaggctg
-gagtgcagtggcacgatcttggctcactgcaacctctgctgcccaggttcaagcgattct
-cctgcctcagcctcccgagtacctgggattacaggtatgtgccaccacgtctggctaatt
-cttgttttttagtagagacggggtttcagcatcttggccaggctggtcttgaactcctga
-cttcgtgatccacctgtcttggcctcccaaagtgctgggattataggcatgagccactgc
-gcctggccTAGAgataatttttagaaaggaataaaatcacgctcttgttcaaatataaaa
-tgaacatgtgtcaaagattttatttaactcattaatttatgaggtaaccaataaggtgtt
-aaaaaatagttcaaaggagaatccaaagagaagaggcatacataggtaatgaggattgct
-tacattaatttgctaaagatgcaaaactgttttcttccaagagtactggggggaatgaat
-tgcatctttattattattattttgagacagggtctctctctgttgccaaagggctagaat
-gcagtggtatgatcatggctcactgcagcctcaacctcctgggctcaagcgatcctccca
-cctcagcctcctgagtagttgggactatagacaagtgatatgtgacaccttgctagctaa
-tttttaaataattttttgtagagatggggtttctctctgttgcccaggctggtctcaaac
-tcctgggctcaagtgttcctgccacaggctcccaaagtgctgggattacaggcgcgagcc
-accgcatctggcctcaactgcatcttgagcagaagaaatttgtttgcatctctgtgacga
-gaattgtttttattatcatcaatcttgttacaacatattgaagtgtacgctagctcaaaa
-atgtgaaatgcgtcggcaaccatagaatcagctaacctgaaatgatgtaaagacaattca
-taCCATTCTGGAGGACTTCCAGTAATCTTTGTGGACTTTTTTTTTTCAGCTTCAAAGTAT
-TTTACAGTTTTTcctgatgtgagtcagatcggtactagatactaataatacagaggtaaa
-ccatacagacacaatttctccctcaaggaCAATATTCCCTTATGTTCTAACTGGGGTGGA
-GAGCCGGGGAACAGTTTTTGGAAGCCAAACTGAGTCTTTGCCATTTATAcagtcatatgt
-taattaacaacaggaatatgttctgagaaatgtgtcgtcaggtgatttcattcttgtgca
-aacgtagaatgtactgtcacaattctagatggtacaacctactaggcacctagtctctat
-tctataacctatttcttctaggttacaaatttgtacctcatgttactgtactgaatattg
-taggcaattgtaacacaatggtaagtatttttgtatctaagcatagataaatatagaaaa
-gatacagaaaaaatatgtagaaaagattttttttaaaaaagacacacttgtatctttact
-gtgaatggagcttgcaggactggaagttactcttggtgagttaggaagtggtgactggat
-gtgaaagtctaggacattactgcacactactgtagactttataaacactgtacacttagg
-ctatactaaatttatttttaaaatttgtttctttcttcaatagttaactttagcttactg
-taactgttttgttctataaacaaaaaaattttaaaaacactttttgtattattttgtaat
-aacacttagcttaaaataggaacacattgtacagctgtataaaaacattttctttcttta
-tatccttattctataagcctttttctacttttaaatgttttttccttaaattttgttgtt
-gttgttgttaaaaactaagacacaaacacacacattagcttcagcctacacaaggtcagg
-atcatcaatatcactgtcttccacctccacgtttcgttccactggaaggttttcagggca
-gtaacacctgtggggctatcatatcctgtgacaacaataccttcttttgaatacctcctg
-aaaaacctacctgaggctgttttacagttaacttatttttttttaataagtagaaggagc
-acactgtaaaataacaattaaaaagtatagtaaacatgtaaatcaataagttgtttattg
-tcattatcaagtattatgtactgaacattttttttttttttttttgagatggagtttcgc
-tctggttgcccaggctggagtgcaatggcacaatcttggctcactgcaacttctgtctcc
-caggttcaagcgattcttccgcctcagcctccggagtagctgggattacaggcatgcacc
-accacgccgggctaattttgtatttttagtagagatgggCACACCAactaaagaacatca
-aagcccagagcgagaaccttcctccctttcccattttccttcaacttgttattaaggaga
-aagtctctgttcaatgctggtgtgtttttaacacctctcttaacacttacttcccttttt
-aacagagaataggcctccagagcctttggcaggccaccggatctggctagaatgtgatga
-cattgttttgttttcattgtacttatttttatggctaccttctatttatggcacgagata
-ctggttttccatttagggagggccctaaactttccttttgacataatatatttatgtttt
-tagaagaaggaccatttaaagaaaaaatattatgtaatattaattacataatatttgcag
-cacaggtggtactgagacagggaaaaaattataaagaggtatgtaaTGTGCTGAAAAGGA
-GGACATGCTTCTCAGGCTAATGCCTCtcccagcccctacttaacagaagggaccactgag
-gcacagagaggagaagggactttgtcaaggtcacacTGATGATGTGGACTAAGAACTGAC
-AGCCTCTTGATAGCCCTGTGGTGGGGGATATCTTGTGTCAGATGGGGAGGGCAGAGGTCA
-GGGACTGTGTGCAGCCCCATTGGTCAGTCCAGTGCACTGATCCGCTAGTCAGACAGAGTC
-CTCCAAGGTTGACCAAGTCATGGACTGAAGGCAAAAAGGACCGGGGGACCTGGAGGGGAG
-GAGAGAAGAATGCTGGTGTTTATCACGCACTAACTATGCTAGATGCTCGGGTGCCGGACG
-TCACCCCTAGGGAATTCACAAATTTGGGGGCAGACACGTCCTACAAAAATAACTCAAGTT
-TCTGGCGAAAGTGTGGTAAGTGTTCCAGCAGAGGCCTCTCtagtgacatctaggtttttg
-tctgctcactggtcatttccccatattcttttgggaaaccacctcttcaccactcttgat
-tcttgtagctcagaccaggcaaaccccacacccacttcagaggtgggcacatgaccagac
-ctggccaattagaacactttatccctcttgccacagagactggcacatggttgggcgcgt
-gacccaaggcaggccagagggggccttccccaggaatttgctggaactactggagaaaaa
-tcccacttcatagggtttttaaaatggatacactgtaagccagagttgctggcagctatc
-tttgccaccaaaagagagaggttctctgaaaatgaagctgacaggaaagcagggatgaca
-gatggagagacagctagagtcctaatgctactgtatggtcacctcctggacccagccgtg
-aaatcagtgaccctgaacACAGTTCTATTTTGCTTTGTTACCCAGGCTGGAGCtttttat
-ttttgtaattaaattaaattaaattaaattttaatttttagagacaaggtctcgctttat
-cacctagactggagtgcgtggtgcaatcacagctcactgcagaatcagcctcctaggctc
-aagtgatcctcctgcctcagcctcccatgtagttgggactacagttgtgtgccaccacgt
-ctggctaatttttaatttttattattatttaatttaatttttaatttttattttttgtag
-acatgtggtctcactatgttacccaggctggtcttgaactcctggcctcaagtgatcctc
-ctacctttatctcccaaagttctgggattccaggtgtgagccattgtgcctggctCGttt
-ttatttttatagagatggggtctctctatgttgcccaggcttgaactcGGTTCTAGAAGG
-CAATAacacacacacacacacacacacacacatacaTAtttgcattagccactttgagat
-gggtttctgtctcttaaaaccaaaaagagacctgtctaatTCCAGGCAGAAACAATATCA
-TGGGAATGTTGGCAAGGGAGAGGGATTGGAGTGTGTGTAAAGATTTATCTGGGAGTCCTT
-CCTCGTGGAGGTAGGTTTTGAGCAGGGTTTTGAGAAATGGAGAGGATTTTGATATATAAA
-GAAGGTGAAGAAACAGTATTTCCAGGGAGGGGAACATCCTGGGCAAAGGCTTGGTGGTGG
-AAGAGGGCAGGGAAGTGGCGCCGTCCAGTGTGATTGGAGAGAGGATGGGGATAGAGAGGA
-GGTGGGAGAAGAGCTGGCAAGAAGGGATGTGCCCTAATCGTGCAGAGATCCAGTCTGCTC
-CTTCACCTGCATCCTCCTCCTCTGGAGGCGTGCCCTTCATCAGttaattcatccacagcc
-atttactgaacaccagcatgcgtcaggcactgtcaaagggctggcgagagagctgtgggc
-cacaccaccaagtccctgccctcttgtagcttcttttgtaggtgaaggacacaggtggta
-aacatgagcaagaaataaacaagtatcatagtgtcagggagcagtaactgttatctagaa
-aaattaagacgagtaaagggaatacagactagtggagaggTGTTTGGGAtgaaaacggat
-aatactgatggttgaccgacatcgtgagtgcactcaatgccactgaactggtaaaatggt
-taaaatgataaattttacattaggtatttttctgttctttatattatgtacattttacca
-caataaaaaaCAGGATTggcagaggggtgctattttagctagggtggtcagggcatgtct
-ctctaaggaggtgtcgtttgaacagaatggaggggaattagcaagccttgaagagattgg
-ggggaaggtattctgggtggagggaattgccaggacagatcctgtggggccagagtcggc
-ctggtgtgttctaaggacagcaagtgggcccctgtggctggagcccagagagcaaaggga
-gagggggaggaagatgagtacagggatcagcaggggcttgtatgccaggagagaactttg
-gatttggttgtatgagtgatgggaagccatcggagggctgagcagggaagggatatgaat
-cagagtttctgttCAATTCTCCCTCTGCCCACACTCAGTCCTGCTCTTAATCAGGTTGGT
-AATCTTGCCTCTGCTTCTGACTATCTCTCTCTCCTGGCTGCTACCCTCTTCTGCACATCT
-TCATGACCACTATCTTGCTGAGGTCATCttttttttttttttttgagacagagtctcact
-ctgtctcccagctgaagtgcagtggcacaatctcggctcgctacagcctctgcctcctgg
-gttcaagtcattctcatgcctcagcctcccgagtagctgggattcaggcgagcaccacca
-tacccagttaatttttgtatttgtagtaacgatggggttttgccatgttggccaggctgg
-tcttgaacacctggcctcaagtgatccacccaccttggcctcccaaagtgctgggattac
-aggtgtgaaccaccacacccagAGAGGTCATTGTTTTTATATGGCTGACCCAAATGGCCT
-CCAACTGGCCTCCCTGCCTCCTGCCGACCCAGCCTCCACCAGTCATCAGGGTCTCTTTCT
-ACCCGCAGCTCTGACCAGCCCTTGCCTTGGTGAGAGCCACAGCCTCCCAACTTCCAGTCC
-AGCCCCATCTATCTTCTTTTCTCCTCACCCCAAAGCCCACACTTAGTCACTCAGAGCCTC
-CATGGGGTTCCCCTGCTGCCTGCCGTAGGCTTGCCCTCCTCAAGGCTGGTGTATGGCTCT
-CTGCTCTACTCGGGTTCCTTTTCACCTAGACAGCCCCCTCCCATCCTTCAACAGCCTCCC
-AGCATCACTCCTCTGTGAAGCCTTCCTTGGCTGTCCCACCCGCAGGCTGGCTTAGCTAGC
-TCCTCTTCAGTGCTCCCTAAACCACTCACATCTTCCACTTTCAGAGCCCCGAGCATGTGG
-CATGCAAAGCACATTggtttggtttggttttgtacaaacctttccctttcctcagctccc
-tgaaccccccagttccctgttcatagtatgttcgcaacaaatgtttattgaataaatgaa
-tGAGTTTGGAATTTATCTTGCAGAAACAATACTCCCACCACCACTACCAGCACCTCCACC
-AACGAAaataatatccaacccaagttgatgacttgctatgcatcgggcactgtgctacac
-acttccaaatctggatctgatttctatttcataatattaggaggaaatcactgtgttagc
-cccactttagagatgagaaaactgaggcatggtgaaattaatcaattttcctaaggctac
-ataactcagaagcaggagagccgacagtccaaAGTGTGCAGCCCAAAGCCGTGGGCACCG
-CATGCAGCTGGAGGAGGTGTCTTGGCATTACTGCATCCACGGACGGGGTTTCCAGGAGTC
-CTGGAGTTCCATATGAAGATTGATTGTCCATGAACTTTTTGGGCATGGGGGCAGGTCCAT
-TACTTGTAttttttttttttttgacagggtcttgctttgttacccaggctggagtgcagt
-ggtatggtcatagctcactgcagcctccatctcctgggttcgagagatcctctcacctca
-gcttcccaagtagctgggaccacaggcatgcatcaccatgtctgcattatatatatatat
-atatatttttttttttttttaagagatggtgtctccctgtgttgtgcaggctggtctcga
-actcctgtgctcaagtgatcctcctgccttggcctcccaaagtgttgggagtacaggtgt
-gggccatcgtgcccagccGTGATCCATTACtttttttttttttttttttgagacggagtc
-atgctctatcacccaggctggagtgtagtagtgagatctcggctcactgcaacttctgcc
-tcctgggttcaagcgattcttctgcctcagcctcctgagtagctgggattacaggtgtgt
-gctacctcgcttgactaatttttgtttttttagtagagacagggtttcaccatgttgacc
-aggctggtctcgaactcctgacctcaagtgatccgcccacctcggcctcccaaagtgctg
-agattataggtgtgggccaccgcacccggctGGTCCATTACTTTTACCAGGGTCTTAGAG
-GGGCTCTTGATAATTCCTATATTTAAGATGCTCCTCTGCACATAAGGGGGAAAGATGGAG
-AGTTTTCGAGTATTGGACTGTTGCGGTTCAACCTATGCTTTAGAGAGATCACGTTggcta
-tccattgcagtgtaatgcagggagaagagattggaaatatccctaagattcaccaagagt
-ggatgtgttaatcatatcatggtacctccttccacagaagggaataatacgcagccataa
-agatgaatgaggagtctctttatgtaccaatgtgaaatgattcctaagatatttatgtca
-gagagagagagacagggtCTgggtctcactctgtctcccagactggagtgcagtagtgtg
-atctcggttcactacagcctccatctctgggggctcaagagatcctctcgcctcagcctc
-ctcagtagctaggactacaggcttgcaccaccacgcttggctaattaaaataaaattttt
-ttttggagagactaggtctcactatattgcccaggctggtctcaaacttctgggccaaag
-agattctcgcacctcagccttccaaagtgctgggattacaggcgtgagctaccctgcctg
-gccTtccaagacatagtttaagtaaatacagcaaggtgcaggccagcatgtataattagc
-ttctatgtatgttttttaggaagggaggggttaagattatagatctagatgtgcttctat
-atgcataaaaaaTCTTTGGCAATATTCACTGTTAAATAGTCAGTGGAAACcctacctcat
-agggtttttatgagggttacatgagttaatattagataattgcttagaagagtacctggc
-acacattaagcactacagaagattttatttaataAAATAAAAAAGAgtggcgggcgcctg
-tagtcccggttacttgggaggctgaggcaggggaatggcgtgaacccgggaggcggagct
-tgcagtgagatgagatcgcgccactgcactccagcctgggcgacagtgtgagactctgtc
-tcaaaaaaaaaaaaaaaaaaaaaaGAGGGTCCCTTAGGGGATGGAGACCAGGTGACTAAG
-GGGCAGGGAGAGAGACTTATTTTTCATCTGAGGCCTTAGACGCCTTTTGAATTTGGTACC
-ATGGGTAAAttttttttatttttatttattaatttatttttgagacagagtctcactctg
-tcacccaggctggagtgcagtggcacgatctcggctcactgcaacctccacctcccgggt
-tcaagtgattctcctgcctcagcctccctcgtagctgggattacagttgtgcgccaccac
-acctggctaatttttgtatttttagtagagttggattttcgccatgttggccagcctggt
-ctcgaactcttgacatcagatgatctgcctgcctcagccttccaaagtgctacgatgaca
-ggcgtgagccaccacgcccggccTATTTTTTTGAAGTTGAAATTCAGTGTATCTTggcca
-ggcgtggtggctcatgctgtaaccctagcactttgggaagctgaggcaggtggattgctt
-gagctcaggagtttgagagcagcctgggcaacatagtgagaccctatctctcaaaaaaat
-gcaaaaattagctgggtgtagtggcgtgcacctgtagtcccagctacttggggggctgag
-gtgggaggattgcttgagcccaggaggcataggttgcagtgagccgagctcacaccactg
-cactccagcctggacgacggtgagaccctgtctcaaaaaagaaaacaaaaaacaaaaaac
-aaaaaaaaaaaaAGAGAAAGAAAGAAATTCAGCATATCTAGATAGCTAAGAGATCATCTG
-AGGGGGTCAGGGCCTGGAAGGAGATCCCACCCAGAATCCCCGGGAATTCGCTGTAATTGG
-TCAAAGGCCACATTGTGTAGTGTGAGAAATCAGGACGTGAGGAAAAGGCGGACAGGAGAC
-ACCAAAACACCCACGCCCCAGGGCCCACTATAAAAAGCACATTTAAAAACACCAGACTGG
-AAAAGTTttattattattattattattTTTTAAATAGCAAAAGCGAGTCCCCCCAGGAGG
-CGCACTGCAGCTGCGGCTGTGGCGGTTCCCAGGTGATGTCAGTCCTGGCCAGGCGCCAGT
-CCCGGCCCCTTGGAGACGGTCTTGGTGGGTTCAGCTTGACTGTTTTTCCTTCCTGAGACT
-TGAGGACACCTTCCTGTCTCAAAGAAGGAAGCCTTTCCAGGGCTTTCTGAAAGCCAGGGG
-CAGGGGAGGCGGTGGGCCTGGGCTGCAAGGGCAGAGAGAGGCAGGGAAGGTGGGTGGGGG
-TGGGGAGGAGCGGGGGCTGCCTCTGGGAGGAGAGTGAGGGTGGAGAGAGCAGAAGACAAG
-CCTGGCTCCTGGGTGGCTCTTTAGCCCTCCCACCCGGGGGCGCGAGGGGGTCTGCTTCTT
-GGGAATCCAAGGCCCGCCTCCCTGGCCCCATTGCTTCTCAGCCCTGGCTGCTTCCTGGGG
-AGGCCCCTGGGTGGGGTGAGGTTGTGGGGTGAGAGAGGTTCCCACAGAGTTCCCAGTTGG
-TCAGTGTCTTTTCTCCCTCCCTGAGCCCTGGGCCCACCCTTTCTTCTCTATGGTTAAAGG
-CTCTTTGCCAATATCTTCCAggccaagcgcggtggctcacgcctgtaatcccagcacttc
-gggaggctgcagcaggcagatctcctgaggtcagaagtttgaggccagcctggtcaatat
-ggtgaaaccctgtctctactaaaaatacaaaaattagccaggtgtggtggcacgctcctg
-aatcccagctactctggaggccgaggcaggagaatcgcttgaacctgggagacggaggtt
-gcagtgagtcgaatcatgccactgcactccagcctgggtgatggagcgagactctgtctg
-aaaacaaaaacaaaaacaaaaacaaaacaaaacaaaacaaaacaCCCAAGATTCTGCCAA
-TATCTTCCAAACTGGGTTTTCTGCAGATGGGACGATCCAcagagctgggtttgaggtcca
-actctgcactcctagccgtgcgacctcaggctggtcactgcttttctttgagtgccacct
-ctgaaatggattaggttggccttacagggtggttatgcagagtgagtgagacaGAACAAT
-GCCTCTTGGTCCTTCCCGAGTATCTGCTAGGCACCCACAACGCGCCGGTGCCACCAGGCG
-CTCGGGATGCTCAGCATTTGGCACAGAGGcagcagagcagggaggtgaagagagtgggct
-ctggacccagcctcagtccacatcccggttctgtcctttgatggccgtgtgaggatagtg
-acagcctgtctcactgggtcgtagaggagtaaatgagttacaggccgtggaacagtgcct
-ggcactgaggcggtgctaggtaagtgtttgcttttattTTCGACTTCTGTCCAACCAGCC
-TTCTGTTGCTTTGACAGCTTCATGGGGCTGCTCTGGGCACTCAAAGGAGATATGTTGGGG
-ATTCAGGGGTTGTGTTTAGGGGAGACCCAGGTCCTGCAGGTGCCCCATCATTCATACTGA
-TGCAGGGGTGGCCTGGAAGCTGCAGAACCATTCACACTCGGCAAAGCCTTCTCTCACCTT
-GGAAGCATCATTCCTAATGACGACACAGGTCTCCCAGCCATGCGTTCCCACATAACTTAG
-AAGCACCCATCCCatttttattatttgctcagagcctgctttttcagtaggccgtaaact
-ccatgaggtcaggtactacatctggcttattctctgatcatccctagagccttgtgtggt
-tcatggagaagttcaaaacatgtttgttgaCGGACTTACTGACTGACAAAGTCTGCCAGC
-CTTATGTTGGTCTACAATGTTACACTCTATCCCATGCCTCCTGCTGAGTTTTACCCTCCT
-GCTGTGATGCAGGCTGTGGGAtctggagctagaccccctcagttggaatcctggctgtgc
-cattgcctagctgggtgcccttgggcttggttttctagtctgtgaaatggggatagcaac
-agtacctacctatgtggcttgttgcaagtgaggccatctctgtatgtcactcagagaagt
-gccttggattagtcagTTCCATCAACATCAGGACTAGGCACGCACCTGGTGAGGTCATGT
-GGGGGtggtggttgagagcccagtggggctctgcagctagaacatctgattcaaatccac
-cagccactgtgtcaccttggccaagttctttaacctccttgtgcctccgtttcctcatct
-ataaaatggagcaataataatacatatctaaccagcttttgagcaagctgtatgtatgta
-tgtatttatttatttagagacggggtcttactctattgcccaggctggagtgcagtggtg
-caatctcggctcactgcaacctccaactcctgggttgaagggattttcctgcctcggcct
-cctgagtagctgggattacaggcacgcaccaccatgcccagctaatttttgtatttttag
-cagagatggggtttggccatgttggccaggctggtcttgaactcctggcctcaagtgatc
-tgccctcctccgccttccaaagcactgtgattacaggcatgagccactgccccccgcgaa
-gctgtatttattttatgtaaagtgcatagcctaggcctgacacgtagtaggtcctcaaaa
-gagtcaggcatttttCCAAGCCATTCAGAAAAAAACAACTCCTAGATTTTATCAGCCTTC
-CCTCCCACAAGGCCAGTGTGTCCCAGCTGACAAAGTTGCTGGCCGTGCTGACGtgaggaa
-aagcaagggccagagagggccagacgcctaccctgggtcacacaggagcagtggccaacc
-tagaataggctaggtcttctgtctcgcagcctgtTCATCCTGAGTGCCTCCCTGGTTTCC
-AGGCCCTGCTGGCCTGCCCTCTGACCCTAGCCCCCTGGGAGCTCTATCCCAGGCCCATGG
-GGTCTGCAAATCTGGTCTGGATTAGACACGCTGAGAAGCAAACGCCAGCCCCCCCAGCCG
-GCTGCCCAGTGGGACCTGTGCTCACAGCTGCTGAGGCTCATAGGGACATAAATCATGGTG
-GCAGGAGACTCGGGGGATGGGACCACCTTAGCCTCCTAAGGGGCACAGGGGCCTGAGAGT
-CACGAGCAGAGGCACCTGGGTCTGCTGGGGATATTTTCCATCGTCTGTTGGACAAGCTAA
-AGCCAGGGTGCATCAGAGGGGGCCAGGACACCATTTGGCAGCCCTCGCATCACAGTAGGC
-CAAGATCCCAACTTCTTTTTAACttttcattttgcaatcatttacaacatgcagaaaagt
-gacaaaagtggtgcagagaactcccatataccctgtactcagattcaccacattttaagt
-ttgtcatatttactctatccttttctctcacacatatattatttctcttctgaaccattt
-gagagagcacgttacctacatcatacttctccttaatagtacttcaggatgtattttttt
-ttttttttttgagacggagtctcactctgtcacccaggctggagtgcaatggtgcgatct
-tggctcactgcaacctctgcctcccgggttcgagcagttctcctgcctcagcctcccgag
-tagctgggattacaggcgcctgccaccacagggtttcaccatgttggccaggctggtctc
-gaactcctgacctcaggtgatgcgcccacctcggcctcccaaagtgctgggattacaagc
-tgagccaccacgcccggcctaggatgtaattcttaagcacaaggatatcctctgacacaa
-tcagggtgctgttagcaaatacagaaaatttaactttgatgcaataccttaatctattgt
-tcatatcccaattttgtgtgaccatgtctcaaaaaaaaaaattgtcaactctaccaagaa
-ggtcccctgtcacattttcccctctgcagtacaggatccagttcaaagtcatgtatcgca
-tttacctgttcaggtctATACTTGATATCACAACTACACGAGGTAAAATATACAGTCGTA
-AGAGACACAGATGGGGTTGAACAAAGACATCCAACTTCATATGTACGTCCCATGAACCAA
-TGTTTCTATAAATCCTCTAATTATATGGTGTTCCACAATAATGCATCACGCTCCTGACTG
-TGTGGAGGTAGTTAAGAGTTAACTTGCCAggccaggcacagtggctcacacctgtaatcc
-cagcactttgggaggctgaggctggaggattgcttgagcccaggaatttgagactagcct
-gggcaacatggcgaaaccccctcaaaataaaaaattagctgggcatcatggtgcacacct
-gtagtcccagctactcaggaggctgaggcgctaggactacctgactccaggaggtggagg
-ctgcagtgagccatgatcgtgccacctgcactccagcctgggtgacagggtgtaaccgtg
-tctcaaagaaaaaaaaaaGTTAACTTACCAAATATGCCATAGTCTTCAGCACTCTCTTTT
-TGTAGTGCTTCATTTTTTAACCTAATAAAAGCCTCATAAAATGGGAGTGGCCTGGGACAA
-TGAGGGGAACCTGAAGTGCTGtgggtgcaagaggtcctgtgttctcagccctgctcagct
-ccagatgctgtgcaaccgtggcccatcaccgctcctctctgagcttcaggttGCCATGGG
-TGACCTCTGAGGCCTTCCTGCTCATAACTGTGGAGTCAGAGAAAACAGCCCTgcatggca
-aggagggagatttgtgttcttggtgtcccaacagggccaaggacctgctggggaacccca
-ggcaggttgccctctgtcttgtctcactttcttcattgtgaaatgaTGAACTCTGAGATT
-ATTCTTGTGCTGCTGCTTCATGTGTCAAGACTTGCAGGGAGAGTGTAACCCTTTGGGGTC
-CAAGGTGGCCTGGCTGAGTCGGTCATTCCAACCCCTTCAGTCCTGGATTTCTTCTCCCTG
-AGCAGCTTTACTCCTGTGGCCTCAAGTTGGCCTGGAGAAGCTTGGCTGGGCTGGACCATC
-CCGGAGGCGACAGGCATGCTGGGGGAGCGGACAATGTTACAAAATGTTCCCCAGAGGAGC
-TGCCTATATATGCAGACCACACCTGTGCTTCTCCCCGGTCACGTGTGTGGGCTGACCTTG
-CAGCTCACAAAGGCTCATGGGCATtaactgtccattaccaggaagatagcaagctgcaaa
-atatgcataatggagcactatgcagctatgaaaaggtgtgaaacagctctgtaagcaacc
-aagggtctccaagaagtacagttaagaaaaaaaaatccagtgcagagaggagtgtgtgaa
-atgctaccacttgtgtggaaaaacaatatctatgtaatttgcctatatatgcagaCCATC
-TCTGCCGGAATCCATAGGATCCTGGTTACCTTAACATAGCAATTGCCTCTGGGGACTGGA
-GCTGGTGGCTGGGAGAGAAGGAGACTTATTGTCAGTTTATTCTTTTTTGTGTCTCATTCA
-AAGGAAAGAACCGGTATGTGTAGATGTGcaagaggggctggctcctgggaagctgctaat
-tgcatttcttgatctccatgctgggtgtacaggtgtgctcagcttgtgaaaatccattga
-gctgtacccttacaccctgtgcactttcctgaatgtgtcttatacttccataaaaagtgt
-aaaCTTggccgggcgcagtaactcatgcctgtaatcccagcactttgggaggccaacatg
-ggtgggtcacctgaggtcaggagttcgagaccagccttgccaacatggtgaaaccccgtc
-tttactaaaaatacaaaaattagccaggcgtggtggtgcacgtctgtactcccagctact
-caggaggctgaggcaggagaatcgcttgaacccgggaggtggaggttgcagtgagccaag
-atcacgccactgcactccaacctgggtgacagagtgagatccatcttaaaaaaaaaaaaa
-aaGCGTAAACTTAGCATGGTTTAAATGATTTGTTAAGCGTATGTGTGCTAGTTTAACAAA
-AACGCTGCAGagctgggcgcagtggctcatgcctataatcccagcactttgggaggctga
-ggtggatcgcttgagcccaggagctggagaccagcctgcataacatagtaagaacctgtc
-tctacaaaataaacaaataaataaaattagccaggcctggtggtgtatgcccgtatttcc
-agctactccgcaggctgaggtgggaggatcacttgaggacaggaggttaagcctgcagcg
-agctatgactgtgccactgcactccagcctgggtgacagagtgagaccctatctcaaaca
-aaacaacaaaaaaTACTCGGTGGGATTATCGTCTTCACTGTGGCTGTCTCTGGGATAAGT
-GATATTTCTAGAGTCTTATAGCATTTTGAATTTGTTTTACAATGAAAGCACAGGCAGAGA
-AACCTATAAATATTTTTTCAGAAACAGTTATCAGTATAGAAGCTTTTTTGGAAGGACACT
-CAGGAAGCTGCCTCTGGGGAGGGGCCTGAGGAGGTCTGTACTTTTCACTGCATACCATTT
-GATACAACTTGGATTACTTACCAGTGCATACAGGGTCTATTAAAAACTATCTCACAAAGC
-AAAACAAATACTTATCTTTCTGTTCTAGCTGCTCTTACTAGTTAGAGACTGAGCCAGGga
-ggcccagaggggtcaagcaacatctctggggtcacccagcaaatctggtggcggagtggg
-cctccagccagagcacccaagtgtctgctctgcccccactcccaggcttcctgccattga
-caaggccacagtccttttcCTGTGGCTTTGCCAGAGGCTGGCTGTACCTGGGAGGGTAGG
-CGCAGGGGGAGCAATGTGCTTTCCTAATCAGCTCCCAAAGGGGGAAGCACAGCCACGCTG
-GGACACAGGATAAGCACGACCAGTGTTCCTGAAACAGCGGGGAAGTGAGGTAGAGGGTGC
-TTGGAAAGCTCTCCTGGGTGGGGGACCCCGGCCCCCTGGGGCCCTCCTTCCTCTACTTCT
-TACACCAAAGGAATTAAGCATGGTAATTTCATGGCCTGCTCCAGCCTAGGGACTGGCAAT
-TCCAcaactcccttgatctccctgggcctcggttttcatctgtgaggaagaccaggttgg
-tcgggctcattcctgtggcatctggcacagtgcctgccacacagagggtattgacaatct
-gtttgtcaaTTTGCAAAATCGGAGCCACAATTCAGGCTCAGATGGTCAAACGCAGGGGAG
-TGGGGTAGAGGCAGAACAGAGGGGATACGAACGTGGACTCTGGGGCCAGAGTGCAGTCAG
-TAAACATGAAATAgatcacttgagctcaggagtttgagaccagcctgggcaacatagtga
-gaccctgtctctaaaaaaataaaaataaaaGTGTTTGTTAAATAAATAAACTGTTGAAAT
-AGGCATATGAATGTACCTTGCTGAGGAGAGGGTGGCTGCCTGGCTGCCCTGGCCTTTCCC
-TGGCTCTCCCACCCTCGGGCCTCTCGAGCTTCTCTGATCCTGACCTCACAGGGACACAGC
-CCCAGCCCGAGAGCCAAGAACTCCTAGCTGCACTGATCAGCTGACGCATCGCTGTCTCTG
-CTGGGTCTGCAGTGGGGAAGACACCAGCTCTCACCTCCCAGGGCTCCTGGGAGTGTAATT
-GGGGTAACAGGTGCTGGCTTTCCACTTGGGGCATCTCCAGGGCAAGGAAGGAGCTGCTCT
-GGGCTTCAAAGGTGGACGGACCTCAGGGTGTCACCCTGCCACGTGCCTCTGGGTGTCATC
-GGTCTTCTAAAGCATTTCAGCTAACACAGGGGTAAGAATATTCCCCTTTAGCATGCACTC
-ATTTGCACTTGTGGAAAACCACATGGCTTGTTGGTGATCGcatcaaagagggatgggtta
-aaggatggcatgttcacaaaatggaataataagcagctcaggaagaaatgaaataccctt
-taggtactgacttgggatgataccaagctagattaaggaaaaaaagaaggagccaaaagt
-gtgtacgatgtgctgtcatttgtgtaTTTGCCTGATCATTCATAGTGAATGGGACATCAC
-AGGAAACTGGTGCCCTAGGCTGCTTGCAGAGAGGAGAGCTGGTGGCTGGAGGACAGGGGC
-ACGGAGACTTTTCAACACATACCCTCTGGTACCTTCTGAGTTTTGAACCATGTGAATGAA
-ATGAACACAGGCCTTATTCAAAAATAAGTAAAATTAAGATTTCTTTACCAACCATATCAG
-ACACCTAACAGTTGTTAAGAACATCTGATAAACAGCAGACTGAGGAAAGTTTGGTTATGG
-CGCCCGGAGAGGGGGCTCTGCCTGCCTTCCCCCGCCCCACCCCCACCCTTCCAGGGCTCA
-GGGCAGCCCCCAGAACATCTGTGCCTCTCTCTAGGTCCAGGGGAGGGCCCACCTCTGACC
-TCCGATGTCCACGGGACTCTCCTCAGCTCAGAACGACGTCTTTTATTTAAAAATAGCTTT
-TATTTTAAACTCACCAATTCTCTCTcacacacactcacactcacgcacagatacacacac
-acCCTGTCACCAACAGTCTTTGTTTTTCCAAAAGTTCTGCCTTGTCTCTGACCAGCCAGA
-GCTGGGCAGGCTGAATGGATCCTCACAGCTCTCCAGGATCGGGTGGAGATGTCCCGAGGG
-CCCTGCCCAGAGTGTCCCGGAACAGGCCATGGTCCCCCGGTCCCTACACAAAGAAGGGGT
-GGGCTTGGCTCCTGGGGTCTTCTTCCCTGTCCAGCCAGTGGCTGGCTCCTGGCCTCCTTC
-TCCAGGGTCCAGGCTCATCTCCGTGGCCCTCGAAGGGGGGCCACCCCCCTCACCTTCAAG
-CAGCTGCCCCCCAGGTCACGACGGCCACCCTGCAGAGGGGGAGAAAGAGTATAAAGAGGT
-TCGATTAGGCCAGTGTGaacactggaactaacctctgtatccctcaagagggatcctgat
-caataaatcacagttcagccacacgatcaagttctctgcaacagaaagcagaagaaaccc
-tttctggactgatacagactgctgccaaatgacaatgtttagggacaaaagcaaggggca
-gGCTGAATGCGCCTGTGTGCTGTGATTGCTGGGGAGAAGCACACACGGGAAATTGTGAGT
-GGGTTTCTTCAGAGAGGAATTTGATGATGGAGAGAGGATGGGAGGGAGGCTCTCTCATGC
-TATACTGttttttgagatggagtcttgctctgttgccaggctggaatgcagtggcacaat
-ctcagctcactgcaacctctgcctcccgggttcaagtgattctcctgcctcatcctcccg
-agtagcggggactacaggggcccaccgccacacccggctaatttttgtattCACGCTATA
-CTTTTTTACCTTTTCTACTTCTTTCCCATATGATCTGTTGCTTAAAAAAAATCCAATATA
-TTTTAAAGCATAATATTTTACACGGGCAAAACAAGCACACCCCACAGTGGTCCTCCCCCT
-GCCTGACTGCATGCCTAGCGGCTCACTCGTCCACCTTTAAAAGGGGACTCGGTTTCTGGC
-CTCCTTGACTTCCCTCAGGGCGTCCCCTTTCCCAGGAATGTGCTCTCAGGTCTTGTCTCC
-CTGGAAAGGTTTCTCTGTTCCTGAAATTGCCTAGCACTTCCTGCCTTTCTGGGGACATTC
-CATGGGGATGAATCTCAGAAGGACAAGGCAGGGTCTCTCCTTTGTCTCCCCATCTGGACT
-GGGATCTCAGGGAGTGGTAGGGAAAAGGAGTTCTTCACTCTGTGGTCCCATTTCCAGCCT
-GGGCTCTCTTGGCCCAGGACCTGACTTGGAGCAGGCACCAATCAAGGCCGCCTGAATTAA
-GTGGCAGCCATTGGAAGATGGGCTAATGGCGGCAGTCCCTGAAACCATCAGTCCTTACAG
-GGGCTGTCTCTACCAGCTCTTCTCATTGATATTTTCAGACTGGACACATGGGtttcatcc
-tcaccgtaagccagagaggtcacagatgttaaagcaccccctcttttgaggcctccagcc
-actgaatgactggcccagaggcacccagccagttgtaaaagagctgggctagaaatctat
-gttgtccaacaatctgtcctgtttccaGGACATGATAGTGTCTGAAATCCCACTGTAAAT
-GCTCATCACCCTGAGCCTGGCTAGATGATGGAGGAACAGGCAGCTTTCTCAGCCCACTTA
-GAGAAACAGCTGACCATCTGGGAGCTCTGTCCCCTGCCCCCTCCACCCCCAGGTCCAGGT
-TGGGGCAGATCCATCCAGATGCGAGCCCAGCCTCCCTCGAGGCTCTTGCAGCCCAGGGAC
-AGCATGTTCACTCACAGGCAGGGCTATTTTGAGGGCTGAGGCCACAGTCCCAGCAGAGCC
-TGGGGCTTGGGCTTCTCAGACAAACTCTGGCAGGAGTGGCTGAGAAGGGCAGATAGGGGA
-GGGGGTGCAATATTAAGGTTGAATTAGAAAACTGGCCTTCCTCTCTTTTACTCTGTAAGT
-GCTCAGGGACAGGGAGAGCCGCCCCCTCCCACCCCAAGTCTGGAGGTCAGCTGGAGACCT
-AGGGTCCCAGAAGAATGCTGGGACTGttcacctccctgaacctcagtttcttcatctatg
-aaatggggacaaaatgattttacttgccatctcaaggtGCAGTCGAATGTGAATGCAGCT
-GTGTAAGCTGCTAAGTGTACTTAGAAGAGGTCTTGACggccgggtatggtggcttatgcc
-tgtaatcccagcacttttgggaggccgaggcaggcggatcacctgaggccaggagttcga
-gaccagcctggccaacatggcaaaaccccgtctctactaaaaatacaaaaaattagccag
-gtgtggtggctggcacctgtaatcccagctacttgggaggctggggcaggagaactgctt
-gaacccgggaggcggaggctgcagtgagttgagatcgtgccactgtactccagcctgggc
-gacagagcgagactccatcgcaaaaaaaaaaaaaaaaaaGTCCTGACAAGACCCCAGTTT
-GTTTGTCCCTTAGGAACTCAGCACCAAGGGTCTTCGGGAagcaccatggttaggagttag
-gctcaagtgagacagacctaggcttcgatccctactttgccaagggccaactactggacc
-tcaggcaagtgatttcatctcactgagcctcagtttcccccccgtaaaggggaattactt
-tacaggatcacacaagctaatctaggtaaagccttggcacagtgttgggaacaaagtaaa
-tgttcaataaatgttcataagtattattatCAGCATCATCTATGGACAGTGCCTCCTGGT
-CCCAGCTACCCTCTGGGTATACCAACAGGGGAGAGCCTTACAAGATGATCCTGTCCAATC
-CTCACCCCCAGGTGACAAAGGGAAAACAGGGCAGAGACAAGAACCCCCTTTCCACCTCCC
-ACGTGCTAATTCTACCACAGAGGGCCACACCTAACCCCTCCTTCAACAGAAAGATGCTAC
-AGGAAACTGTTTCCACGGCAACCCCAACTCCAGACTGGCCAGGATGGGAGGGAGGTGGTG
-GCTCAGGGTAAAGGAACGGGGTCTTGGGTCTTAAAGCTCTTCTGGCCCACAAAGCTCAGA
-AGGGAGCAAGAGCTCCCCAAGCCAGCCAGTTTTCTTCCAGCAGAGTCTTCAAGGGGCCAT
-AGCTGGCCAGGATTGCCCCTCTCGCCTATTCCCAGAGGAGACCGTGGGGTTGAGAGCATG
-GTTTCTACAGCCAAATTTGGCTGAGTTCTTGGTCCCATAGACAGATCCCAGGGAAGCGGC
-CAGGCCCAGGGGAGGCCCCTGTGAGCTGTGGGACAGGCCTGAGACCTGCAGAGAAGTCCC
-CCAGCCTGCTTGCTATGGGGGTGGACACATGACAGTTACAGGGACTTCCCTCTGTAACCT
-ATCCCACGTCCCaaccaggcaggcctgagtttgaatcctggttccatcactgactgtgtg
-tctctgcgccactggcagcacctctaagcaagtggggataaccacagcgcctcattcctg
-gctgttgcaggattttaatgataaatcataaagagcgcttagcacagATCAGTGCTCATG
-AAGGCTGCTGTCACTGCTGTTATTGGCCATTGTGCTCCCCCTCTGCACTCCTGCCACTTT
-TAACCTCTTCCCTCTTCCTTCTCTAGGCCTGAGCTCTTGCTGTATGCCCCAATCCTAGAA
-CACCCTTTCCTACCCCTTCATCGGCCTGCCCCTGTTCTAAAGCATCCTTCAGAAATGAGA
-CACAGAAACCCTGTCAGCACTCACCCTGGGTTGGAGGCTTTCTCTGGGCTCTGAGAATCC
-CTTTGTGCTTCCCCTCCCCCACCATCAGACCACAGCATCCTCATCTTCATCTCCCTGCCC
-TGACCCTGGGGCTGTACTGTCAGGTCCTGACTGGTGGAAGGGTGGGGACCTACAACCTGC
-TTCTCTGGGGTTCTCAGAGCCAACAGAAGGCAGCTGTTGGGTAGCTAAGGGTTGCTAACT
-GGAATGAATGGGTGAAAGGCAGTCAGGGAGTATCCCTGAGAGCCCCTTCAGGCCCTCCCA
-TCCCAGGAAGCCTTAAAGGCCCACTCCTGGCTTCTCAGCCCAGCCTGGGGCACTGACAGG
-GGCCCACAGCTGGGAGCAGCAGGGACCCTGGAGAGGGCACAAGCCTGAGGCTAAGAAGAC
-CGACGATTCAGGGCAACTGAGGCAGCCAAGTGTTGAGCAACCAGGCTGGATATCTGATGA
-GCCAGACAGAGGGTGGTCTCAGGCCAAGATGCAGAGGCCTCCGCAGAACAGGGTGGAGCA
-AGGGACCAACGGCAGCTGTGAGAACCAAACAGCAGGGAGTCAGGGGCCTAACTCCAATTC
-CCCATGCCCTTCCACTTGGCCACCAAAAGTCAGTACTCTCTCAGCCTCAGTTTCCCCGGA
-TGTAAATGGTAGCTGCTGGAATACAAGTTGTTAGACAGGCTTCTTTACTGTAGGAAAAGC
-CCAGGCCAGAAAGGCACACGGTCGGGGGATGAAGCAGGTTCCTTGGAGCCTGGGCAAGGT
-TTCAGCCAAGAGGCCACCTCTGCTGCCACACAGCCCCCGCCCACCCCTACCAGCCTGATC
-CACTTTCTTGCCCAGGACACATTGCAGGAGCTGCACACCAGCTCCCTCCAGCTGACCCAA
-GAGTGCCCTCTCCCAACACCACGTCCTTTTGGGGGCTGGGGACTCTCAGAGGGCCCCTTC
-TTCACTCCTACTGCTCATCCGCTGGGTACCTCAGGCTCTCGGTTGGCGGTTTGTGGCCTC
-CTTTCTTCTCAGTCTCCTGCTCTTGGGTTAGATCTTAGGACAGGGGACAATTATTTCAAG
-GTGGGGGCAACACACACCGGGCAAGCCCAGGGCCAGCGCCCCGGcttcccagctgagtaa
-atgtgggcaggtgatcccatctctgatgctcagatcctcatcaggataaaatgggcagaa
-aaactacctgcctgaagggattcttgtgaaggcaaaaaagtggatgtggagcgcatcggc
-acagaggaagactccataaaagatgggtctttgttACTCAGTCCTCATGCCGTCTTCCCA
-GCAGGAAGGAAGTTCCAGCACACCTTTCGTTGGAGGGGATATCCCACACTGAGCAGTTAA
-ATCAGACCCGAACTCTGGGTTTTCCCGCATCCTTCTGTTTGGGGGCCTGGGCATTAAGTC
-AGTGGTTCTGGGCTTGGGGTGCCGCACCCAGCACGAATTCCACGTCGCTTCCCCCTGGCC
-TCGTTGGGGACCCCTGCACCTCTCCGGTTCCCGCAGAGGCGCTGCCCCCCGCCTACCCCG
-ACCTGGCGGCCGCAGCGAGGGACGCAGCACACTCACCCCCTTGCGCTGGTTGCTGAGGCA
-GAAGGTGCAGATGGAgcgcggctggcggccgccgtcggcggcggcggggacggcgcccTT
-GGCACTGCCCGCGGCACGGAAGCACGGCTGCCCGTCGTCGGCCGAGTCGCCCAGCAGCAG
-CACGTTGGCCAGGTGCGCGATGTAGCTGGACGCCAGGCGCACGGTCTCGATCTTGGACAG
-CTTGCGGTCCACCGGCTCGGTGGGGATGAGCGTGCGCAGCGCCGTGAAGGCCGTGTTCAC
-GCTCTGAGTGCGGTCCCGCTCCCGCGCGTTGgccgcctgccgctgtcgcaccaccaccac
-ggggcccgcgccgccgccgccgcccgcccgccgcccgcccccggggcccgggccgcgccg
-cgccgcctccgggccctcgcagcagccgAACGACTGGTCCGACGCGTCGCTCTCGCTGCG
-GTTCTCCTCGTCCTCGCTCAGCAGCCGCACGTCCGGGTACAGCACGTGCGCGCCGACGGG
-CCGCAGCAGCGCGAACGCCATGGGCGCCGGCCGCGTCCCTCCGTGCGCCGCGTCCCAGCG
-TcggccgcgccccgccgtgcgctcccgcgcgctcccacggccccgccggcccccgccTTA
-TAGGCGAGGGAGGGGCCAATGGCAAggccgccccggccgggggcggagggctccgcccgg
-ccAATGGGGAGGCGTCCGCCCGGCCAATGGGGAGGCGTCCGCCGCGCCCTGGCCAATGGC
-GACGCTCCCACCGCCTCCGTCCCCCAGGTTGAAAGCGGCCCGGGAGCCGGCGGCCCACCC
-CGAAGGCCCCCGTTCCCGGCTGGCTAGCCCGGCAGATGCTGGAGGTCTGGGAGGGTCGGC
-CGGggtgggcccagatccgaactttttgtctccagcctggaccacctgggagacgcgggc
-agatccctttctcctctctgggcctcagtttcctcgttcggaaCGTTCAGATTGCAGAGA
-AACAGCTAGTGTCTGCCTGCCCTCCAATTCTAATCCTgtagttctgcagctttcacgtgc
-gtaagaactggggaaggggcttttgctattacagagtcccaaattgctcccattctgatt
-gagcagttctggaacgggcccaggaacctacattttgtaacaagccattggtgatagtgg
-tggtgtccgtggagaacacttggagaaAAGCTATAATCTTTCCAAATGAGGATTCGACAG
-TGTCTTGTCCCTGAAGACAAACTTAAAAAGAAGAAGAAAAAAAAAAGCAAAACAAAACCA
-CAATACACAAACACCAGTAGTTCGttcgttttttcaacaaatattcgttgggtccctact
-atgtgtcagacatggttttaggtctgaggatacagccattaacaaaataaattcttcacc
-ctcacggaactgacgttttggttaaggaACTACTGTGTACCAGACTCGGTGCTATATACT
-CTATTGCGCCCAGCTGAGGCTGCAGGATGGCAGCCCTGAGTTACAGGTCAGAGAGCTCCG
-GCCTTCAGTCGTACAGGTGGGAGTGGCGGCGCTAGCTCCAGCCTGTCCGGTTTCACTACC
-TCTTGGAATCCTACCACCACCATCCCATCACACACACACGGGCTATCTTTCCTCAATGCC
-TGCTTGCCTTCTAGAAACCTTAGATTGTTCAGCCTGACGTGTCCTCTTCAGAGAATTGCT
-GAGCCAAAGGTGGTTGCCGGGGTCTCGATCTCACTCGTGCCTGCTGCTCAGCTCTCTCCA
-GGCACTAGCTAAACCAGCATCCACTTGGCCTTGAAAATAAGCCCGAGTGGCAGCCGGTGT
-AGCAGACAGAGCGCAGGGAGTGGAGTTGAAAGGCTTCTAGGTGCATTTTGGCTCCTCTGG
-GCGTCTGTTTTCCTGACGATGCCTGCAGCTCTGCCATGCTGTGCTTTCCTGGCTTCCCTG
-ATCCAGGCCAGAATTAGGGGAAGAAGAGGGAGCGAGGGATTTCCCATGACTGCCGGGGGA
-GGAGCCCCTTAGGACCCAGGGTCTGCGGGAGAGTCTGTTCCCACACCTGGATCCCCCCAC
-CGCCAGCATTTGACCGTGACCCCAGCCAGGCTGGGCTTTGGGGAGGAGGGAAACAGCCAG
-CATGGGCCCCCTCCCCGCAGGGCTGGTCCCACACACAGCCCCAGACCAGGCTGCTGCTTC
-CTGAGCCGATGAATTATTACCGGGAGATTTCCTTCCCTGTCTGCGCCTCCTCACAGGGGC
-TCCCAGCTCACTTCACTTTCGCTTTCTCCCCCTTCTCCCCCTCCTCTCTGCTTCTGACCC
-TCAGGCAGCTTGAAATTCCTCTGTCCAGCCCCCTCCCAATTCCACCTCCAACTGGAGATG
-CCAACCAAGGCGTGAACTGGGCCCGGAAGGCGAAGAGGGGCTTGCCTTGTAGGCTCATTC
-ATTTATTTGCTCCTTAGGCATATTTTGACACTTGGGACCCTGGGAGTAGAAGAAAACCAT
-GAATGAGACTGAGACAGGCCTTCTGCAGCCGAGAGGGGAAGGCGAGCTGTAAACAAAGGA
-TTTCAAGACAATGTGGTAGGAGCAAGCCAGGGTCTGGTATCAGAGAGACCCAGTTCCGGT
-TCCAAGGTTAGCTGcttcccagagtctcagttgcctgctctgaaaatgagataataatag
-tacccattcccagggctggtgatggttccatgagtttgtgccagtagagctgggcttggc
-acacaggagtgctcagtaCCTGAGAGGAGTTTGTGCTACTGTTTTTAGGGGCTGGCCCCA
-GCCAACTGCCTGGGAAAGGGCTGAGCAGCATTGACTTTTCTAGGTCTTGTCCCTGGGAGT
-GCGGAGGGGACTCCTACCACATTCTCAGCTCACCTACACAGGGgacctcagcttccccca
-ttctctgtccctcactctgctccagccacactggcctccccactaaatctggagcccact
-tcttcctggcccccctggcccctgatagtctcatagtttgttcactcatttccttcaaat
-cttcactcaaatcttatctcagggaggcccttcctgaccaccagcactaacagtaatggc
-ttctccaacctgccagcacccccagctctccctttccccttatcctgctttatttctttt
-tatagcatttgtcactgactttcattcattcacttattcattctacaaatattaactgag
-cacctgctatgtgctaggcacagttctgggtactgcggatacagcagtagaGacattaca
-tatttatttgtctaccacctgtctccctccactagagtataagctccatggggcaggtac
-tttgtgtattttgctcatctcacttccttcccaacacaaccttctgaggtaggtattgtc
-attattcccattttacagatgaagatacggaggttcaaagaggggaaagtgacttgcccg
-aggtcacacggtgggccaatgtgggagctgagattggtctgactccaaagccattgctcc
-ttccctaaccacatggcttctGAGGCAGCCTAGAGGCCTGTGAGGGCTGAGTAGGAGTCT
-GCCAGGTAAGAGGAGACAGGTGTCACAGGCTGAGAGGGTAGAGGCTGGTCCCTGCCTCCC
-TGACCATGGGCACCCTTCACTTCTACAAAAAGCATTTGTTTCTCAGAGGCACCTGCTGTG
-CACAACTCTGAGCCTGTGCTCCAGCTGTCCTTCCTGCTTGGAATGCTGCCCCTTTGGGTC
-TGACCAGACATCCCTAGTCCTCTGCCAGTGTTCAGAGTAGCAGATGGTGAAGGCCTCTTT
-GCCACTTTTTGCCAACCTTGCTGCAAAGTCTTGTTGTGTTCATCACACCATATTTTGACT
-TTTCTCCCTTCATCCCTGATTCTCACTTCCATTTCCCTCCCCTAACAGGGCACCCACTCC
-CATATCTTTGACGCATGCCTTTGGATATATGTGTGTCTTTATAAAATGTGCATGGCGTTG
-ATTTGTGTGTGGAGGTTTTTAATGTATATAAATAGTGGTTTCAATAGATCTGTGTCATAG
-GCTATTTTGTTTCCTCGACACTGCTCTGTGtgctgagtccagctcaagtcccttggttcc
-cactgctgctaagcatgcacggtgtgcgtgtgccaccatgcctccttttcccaccgcttt
-agtgatggatgctggctacctccagttcccacctccccaagcaaagctgtgatggacttg
-cagtgtgtgactctcatggactcccgtgtgtatttctctgggatgtacactcgggggcag
-gatccctggggtggagagaatacatacagttactgcactctatgacggctgcctcagtct
-acatgcccagcagcagggcatgagggaccactttctccacatgcaccctagcacttggaa
-ttatctgACTTCCCAATGATGGAGATATGGGTTGTTTTCCATCTCCTTGTGCTTGCCTCC
-ATCACGGTGTGGGCAATAATGAATACTTGTTgcactttgggtggccgaggcgggtggatc
-attgaggtcaggagtctgagaccatcctggccaacatggagaaaccccgtctctagtgaa
-aatacaaaaattagccaggcgtggtggtgtacctgtaatcccagctactcaggaggctga
-gtcaggagaatcgcttgaacctgggaggcagaggttgcagtgagccgagatcgcgccact
-gcactccagcctgggtgacagagcaagactccAtctctctctctctctctctctctctat
-atatatatatatatatatacatatatatatgtatatatatgtatatatatgtgtatatat
-gtgtatatatatgtatatatgtgtatatatatatgtatatatatatataATGAATACTTG
-TTGAACAAATGAATGAAAAGGCTAATACACAGCCTCCCACACCTACCTTGTACCAAACCT
-CAGTCTAGAAGGTGGCGGTATATGTGTGTATGTTTGTGTGTAGAGAGGGGAATATAAGAC
-AAAGTCTTATGCCTCAACCTGCTTAGAGAAAAAGACTaatgacagttagcatttattgag
-ggcttactttgtgtcaagaattCATAGGTGTATATTCACAACCTTAACTTCAGTGAGACA
-AGTAAAATGCATTTCTCTCTCATTCAAGGCCTTTGGAGGTAGGGCTGCTCTGGCATTCCA
-CAGtgtggtcgccagcttccaagattgccagcaatgatccttgcctcctagtattcatct
-gcgtgtgtagaaccctcccccattgaatcagatttgactcatgtgaccaaaagaatatga
-cagaagtgacggtatgtgacttctgaatgtagctcataaaggcattgagctcctgccttg
-ttctcttgagtcatttactctggggacagcagccaccatgccatgaggacactcaagccg
-tctgtggagagagaccaaggtccctagcctacagccatcaccaatttgccagccaagtga
-gtgagcctccttggatgtggatcctgaattcctgacctgcaggacctgtgaaaaagaaga
-aagataatacagaaagacaaagaaaaaagataataaataattattggctgggcgcagtgg
-ctcacacctgtaatcccaggacttcacaaggctgaggccaaaggatcgtttgaggccagg
-agtttgagaccagcctgggtaacatagtgagaccctgtctctaaaagaaaaaaaaggaaa
-agaaatttgctggatgctctggtgcatgcctgtgttcccagctactctggaggctgaggc
-aggagggtcgcttgagcccaggagtttgaggctgcagtgagccatgatcacaccactgca
-ctccagcctgggcaacagagcaagaccttgtctctaaaaacacaaaaattatcaatgttg
-taatcccgtaagtttagggtgttttgttatgcaacattagataactaaaacaGATGGTgc
-cggggacccaggctctgtctatctttttactgcaccatacatagctttcacttcctagtt
-ctcttacagagccacatggccacaggagccattctatctgcattccaactggcaaaaagg
-agaaagaggcagaaggaagagcatgctttaatctgtagaacaccaacctcactccgttca
-catcccgttggcaagatcttgtcatttgaccatacttaactgaaaaggaggctgagtata
-tagtcttttgcaggtaggtgtccgtgtgtgcagctgaacactgggtttctgttagtgagg
-aagaagggaagaatggctattgaaaacaactaacCATAGGTGTTATATACCATAGGTGTT
-AACTCTGGAGATAATAATGTCACAtggttaagtttgcacatttgggagcctgactgcctg
-gtttcagttctcagttaggccacttaccagatgtgtgatcttgggaaatttaccaaactt
-ttctgggcctcagtttcctcatctgtaaacagggctcacagtaaagcctgcctcataggg
-ttgttatgaggattaaatgagtcaatgtatgtagcgtttataacagtcctggcacatggt
-atgtgctGTGTGTTAGCTGTTTTCATTATATAATCCTTACAAGGGttttttttttttttt
-gacagagtttcacaattattgcccaggctggagtgcaatggtgcgatcgcagctcactgc
-aacctctgcctcccaggaggattctcctgcctcagcttcccatgtagctgggattacagg
-catgcaccagcatgcctggctgattttgtatttttagtagagactgggtttcaccacatt
-ggtcaggctggtcttgaactcctgacctcaagtgatccaccctctttggcctcgtaaagt
-gctgggattacaggcatgagccaccgcgcctggccACAAGGGGTTTTCTTAAGTTCTCAC
-AACCAGCAAGTGATGGAAGCAGAATTTGGCCCAAAAGCATTTTTTTCCACTTGCGTCATC
-CCATAGAAATTCGTAGAGTGCAAGATCAAGAcccagatcagtacaccgcacataatacgc
-atccagaaatatctgtcgaatgagtgagtTAAATAAACACGTAAACTGTCCTTACATAGA
-GATGCTAGGTTTTGTTTGGTTTTGTTTTATGTTCAGTTAATGAGAATGCTCCATTGACCC
-CATCTGGTTCCTCTAGTATGGGGCTGATGCCCTTGATACCATGCTAGAACTCAGTCCCTC
-CAGGGTCCCTCCAAGCCATCATTTTTAAGGGTGAATTCCTGGGAACACTTGTTCTTGCGG
-ATGCTCAGGATTCCATGATTTTTTttaaaaaaagtcagagaagctgcattttatatcccc
-ctcctagcgacctgcaacaacattagcatgttaaagagtcggagaaatcctgcaacaaaa
-aagcttgttgggcttcatttcaatctgcattttgttttcttatttttttgagacgaggtc
-ttactctgttgcccaggctggagtatagtgatgcaatcatggttcactgcagcctcgacc
-tcccaggctcaagcaatcctcccacctcagcctcccaaataactaggactacaggcatgt
-gacaaacccagttaatttttaatttttttgtagagatttaatttttttttttgtaggcaa
-ctatgttgcctaagctagtctctaattcctggactcaagcaatccttctgccttggcctc
-ccaaagtgctgagattacaaacatgagctaccgtgcctggtctcaatctgcattttctga
-gcttatttTAGGCTTACTTGATTAAAGACTCACTTCCTGCCCCCAACACCAGACACCTAA
-TAGAGAATACAGTTTAGCAGACATTTCTCCGGGCTGTTGCCACTGACATCTACCTCAGTG
-TGAGTGGGTATCCATTCTTTCTAGACAGCATGTTTGATAGGAGTGAAGTGGAAGTGAGCA
-GGTGGGTGCTGGTTACCAGGAAGAGACAGGGTAAGAGAGGGAACATACAGGCATATGTCC
-GAGCCCCACTTTCTAAGGGACATAAAAATATCATTGAAAATATAATAGGTGGAGAAAAGT
-GTATTTCGTGGTACTTCTTTCAGGGAAAATGCAATGTAAATTGAaataataatattattg
-aggggtaacaatatgccaggcactctgctaggaacttatttaatcctcacagcagtctca
-tgagctaagtactattaatattcccgttctataggtgagtagactaaagagcagaaaggt
-taagtaatttgcttaaggtcacatagctagggagtggacaggaattcTTTGATAAGTTGC
-TTGTGGTGAGGATAACAAGGGAAGACCCTCCCCCGGGGTAGTTTAAGCTCAGATGCTCAC
-AAAACTCTGCTCCAGGGAGAGTGAGCCTACTTGGTTGAAGAGCACTGATTTTGTTGAGTA
-GAGGATGCAAGTTTGGGCCAGAGTGGAATTGTTCAAGAATAGAGAGGAGGTTGGTGCTGC
-CATGGGTGCCCTCCTTCAGCTCCATCGCTTTAAGGAAAGGATGAGCTCATGTTTAAAGAC
-TTTTAAGTTGAAGGCAGTGCTAAATAATTTAGTGTGGTCAGGTACCCACCTGACTCAGGT
-TGACCCTGACACCAGTGCCAGGTGTGGCAGAATCACCAAAATGGTGTGGAAGATCAAGAT
-AATGCTAAAtgaaactaccatttaagtctgctttgaaaactcaaggagtttggagctcag
-agttgccaagaacaagttggaatggcctgaggctgccatgctatgaggaagcccaggcca
-catggagaggccacatgcttttgactggtcgttctggtctttcaattctcccagctccag
-gaacagacacatgagtgaagaggctttcatacaattccagccccagttatcgagtctttg
-ccattgaagcctcagacatcatggacagtgacaagtcttcactgctctacccattctgaa
-tcctgaactacagaatccgtgagcataaggaaatgcttaagacaccaaattgtggggtaa
-tttgTCACACAGCAACACTAATTGTGACTGTAGCTCACTAAAATGCCTCCCAAATATTAT
-CTTCACAACTAAAAGCACCAAAAAACCTGAAAGTAcagttgaatttcatgatttgctata
-attatattctagaaagtcactgcaaacactgaattagcaaatactgaaccactgctccta
-ggagaaatacaggcttaggttcctgtgaaccattctgttcccaacatgttcatcaactca
-tcaatacttaagcttgttttatgcatgtttctgttgaaagacaccatgtttaatacatat
-tgttgattcactcacattgcactcatggccaacagcactgtaactcacgcctgaatgaag
-cttatctaactcacatgatcttctctgtaaggcacatcaaagccttctggtgcttaggaa
-cattagacagcacctcagcaccatgcccggggccattgtcaacagtacaatcaccagcgg
-aagacacaaaaatttgtaaaatgtggcactgaatagactgaaaaggacagttgtttacag
-tgtgagagctgaaagaagaaggcagcgtgtcactttgtatgatctcacctggaaacatgc
-atcaagtgactcaaaaaaaattttttttttcgagacagggtctcactctgttgccaggct
-ggagtgcagtggtgggatctctgctcactgcaacctccgcctcccgggttcaagcagttc
-tcctgcctcagcctcccaagtagctgggactacaggcacacgccaccacacctggctgat
-ttttgtatttttagtagagacagggtttcaccatgttggccaggatggtctcaatcgctt
-gaccttgttatctgcccacctcggcctcccaaagtgctaggattacaggcgtgagccact
-gcgcccaactggcaactcaaatttttcatgactcctcaagtatccatcaatgaccatgag
-agctccagcgagtgttgattttgaggttacaaatttagtgagtagatgaatccacgactc
-cacaatcagtgactaataagaattgactgCATTATTTAATAAGTTCAGGGCTTGCCGTCG
-TGATTCACAATTGGAGAAAGCGAGGCATGGAGCAAGTCCAGGGGTGTTCCAAAAGGCCTC
-ACTTTTCTCCTTTGCAAACTGTGGCTGATGAGGGCCATCCTGCGGGGTTTGTGGAGAGAA
-GGGATAGTAACAACAGCTGCATTGTATGGTGCTAtgtgctgcacactttgcacacctgat
-catttaatactcacaatgatccctagcagatggatcctattaccaagttcattttacaga
-tgaggaagcttagacccagcaaggttaaggggctgtgctcaaggtcttaccttctaggag
-aggcagagctggatctgaagccatttctgttctcagcccctgctGTGTGCTTTCCTACCA
-TCCTCTCCAGACTCGCCCTGAGCCCAAGTTGCtgaggcatgtggcacggtgcctggcaca
-cagtaggctcacagtagtggctgctttGATGATGACCATAAACTGGGATCTGGGGTCCTT
-GAGATGATTCTACCAAGGGGACCCGGGGGAAGCTGAGCCCTGGGGCAAAGTGGGGGCCAG
-CACAGGAGCTGCTGGGGAAGGAACAGAGCCTGTGCGGTGGGAAGATAGGACATGGAGCAA
-AGAGGATCTTGAATCAGACCCCGTGGTCCCCTCCTACAGAGGGTTAAAGCAAGCCAGCCT
-CCTTCCGGCTGAGCGGAAATCAGATTTTGAGAGCTGAGCAGGGCTCTGGAGGGATGTTTT
-TCTTCTCCATTTGTCTGCTTGTGGCTGGCCCATAAAATCCACCGGAACTCCATGCTGGAC
-TGAGGAATTCCTGCTGAACAGGGACATGGAGAACGCAGGCTGGGAGGGGGCATAGTGTGG
-ATCCTTATCAGAGCAGAGACCACCCCATCTTCAAGGCCCCACCTCCAGGTTGGGTGATCC
-CCTCTGGAGGCCTCATAGGATTCCTGGGTAAGGGGAGGGACCAGGATCGACAGGGTGGGG
-GAAAGTCCAAGGAACAAGTGATACCCCCTCCCACCTTTTCAAAGTGAACTTGTGGGGTGA
-GGAATGAGAGGAGACAGGGAGGGTCAGGCTGTGGCAGGTCAGTGAAGTGtgatgcaggtt
-ccaccttctacgctgtgtgacattgggcaagtctctgcccgtttcctcatcattgcaacc
-agggggctggagctagatgaccaccatgtgtaattttctaatcagagctgacagtctgag
-gctctTTCTGTCTAGTTTGCACCTTGCATGCATGTCCTCCCCTGAAGGCAGTGCAattat
-tataacccctattttaaaggtaaataaaccaaggctcactgaggcaaggtgacctgagca
-attttgcccttgaagggctgggacaggatgcaaacctagacaattggtgccagaattcat
-ctctcaagcattcgctctcctgCCTCCCAACACGAGTTTCTACttctctttgccctggga
-tgacctctcctttgtctcttggcttgatgacctcatttttaaagattcggctcatgcatc
-acctcccccaagaagcctgtcctgactaactaagctcggttggggctcctctctgtctgc
-tcatgcctctgggaagtagctgtctcttttggtcactgggctgtgagccctggatgagca
-gagccacttctcattccttcctgtgcctcctgcatcAGCCAACATAAAAAGCTTTCAATT
-TTCCTTGAAGATTCTAAGTGCTTGTGGTGGTTTTAGAACATGGCTGCCTTAAGAAGTGGG
-GTCCATTggtagctcatgcctgtaatcccagcactttgggaggctgaggcaggaggattg
-cttgagcccaggaagctgaggccagcctgggcaacacagcaaaatcccgtctctacaaaa
-aatacaaaaattagccagatgtggcagcatgtgcctgtgggctcagccccttgggaggct
-gtggcaggaggatcacctgaacctggggaggtcaaggctgctgtgagctgtgattgcacc
-accgcactccagcctgggtgatagagggagaccctgtctcaaaaaaaaaatggggtttat
-gtctcctcctcttgagtctgggtgggctcgtaacagctttaaccaatagaatatgtcaga
-agtgactctgcgactactgagactgttcactggcactctgtttttggagccctgagctgc
-cgtagaagatgttcaaatactctgggactaccatgctgtggggtcacatgtaggccctcc
-tagtcttcaagtcatcctggtctggggactccagatgattccagttcttagttgtttcat
-atccagcctttgagtcctcccggctgaggaccaagacaccacggagcaaaaacaagccat
-ccccaccactcctggcccgaattcctaagcataataaaatggtggctgcttaaagccacg
-gagttttggggtagtttgttacacagaggtggtaacgggaacaGtgcgaccaccctgggc
-atgtcaccttcctctctggccagccagaaggtgcagcagccacaaagctctctgcctcct
-cccttccctcagcggtgtgctgctgacacagcagtcagagatgccccataaatgcttcaa
-acagaccatgtccctcctttgctcaaaaccgtctgttggctcccagctcactcagaggaa
-atgccagattcttaccatggcccacgggccctacatgatgggacccctctccagcccatg
-gcctctctgtcctgtctcccaccctctcccttctccagccacaccacctccttgctactc
-cttgaacaccacatacgccctgtctcagggcctttgcgcttgccaaggacagtgctccat
-tgcctggaacattctttctccaggtgttgcttggttcagtccctcatcttgttcatgtcc
-ctgctcagatgtcatcttctcagtgaggccctctcttcctactcccaaaccccttgactt
-gctctattttcctctcgccatggcccttagaactacctaacacactatgcactttactta
-ttgtgtttccccgcccaccccgtccaccctagaatgtcaataccacagggcaggaatctt
-ggttattctttaatgtctccccagtgcctgtaagagtacccaacactcacagtggtttgc
-tgaatgaatgaatGAATGAGCTGTAGGAGCCCAGAAGGGGTTCGTTGCCTTCCCTAGGAC
-TATGTATGTGGGGAAGCAGAGTGGGTGAGGAAAGGGCAGGATTGGAGTGACTGGGTTGAG
-CCAGTGTGGCCAGGGCTGGAGGACATTTCTTGGAAGTGACAACTCACTGCCCAGCTGGGG
-AATCCTGAGGATGGGAGAGTGCAGGGCAAGCCTTTGAAGATGCAAACATGGGTCGTCTCC
-GGGGCCTCCCTCCTTCCTGGTCTTGTGTGTCTCCGGCCCTGCCAGTAAACAGGATCTCTG
-GGCAACTGCCTGAGAACCCTGCCCAGTGCCCCAGAGGCCCTGACGTGCTCCTTCCTGAGC
-TATAAATCAGGTACCTTCCAGCTGTGTGACATCCTGGATTTGATGGGGAAGGCAGAGCAG
-ACAGATTTGTTGCAAAGAGCTGTGCActgcaccttgatttccttgttagcaaaataggaa
-ggataggagcgttgacttcaagctgtggctgtgaaatcgagtgagataatgcatgaaaTT
-CCTCTGTAAACAGAGATGCTTCAAGGACGCATTAGTGGGTGGAGGCACAGGgagcaaatc
-ccaactctgccgctgagctctgtgtcttcacctgtaaaatggggttaatgtgaatcacta
-acttcctagggctattgagggattcaaaaatggagagaaaagtcttagtacccaatgaac
-gtgcaatagatattagctgttattaATGGTAACTATTACCATAATGATAAAGAATCAGAT
-GTTATTGATAAGCCATTTGGGAGACCGAGAGTCTCAGTTCATACCCCAGAGGGGACCATG
-GACTTGGCACAGCACGATTTCAACCCTGTGCCTTTTGTGTATATTTCAATCTGGTCAGAG
-ACTATCTCCCACTCACAGGCCACCTCCTCCCCCTACCCCCAGAAAGGCTATACTTGTGAG
-CACACCACTTCCCTAAAATATGCCACAAGAGTCGACATCTagccaggcacagtggctcat
-gtctataatcccagcaatttgggaggccaaggtaggaggatagcttgaatccaggagttc
-gagaccagcctgggcaagatggtgaaaccatctctactaaataattttttaaaaattagc
-tgggtgtggtagtgtgcacctgtagtcccagctacttgggaggctaaagtgggaggattg
-cttgagcccagaaattcaaggctgcagtgagctgtggttgtaccattccacttcagcctg
-ggcaacagggcaagaccttgtctctaaaaaaatttaaaacaaacaaacaaacaaagaATA
-AATATCTAGCCTTGAAGCCAGCCTTGGGGGTGGGGTGGGAGGAGGACTATTTGTGtgcag
-gagttcaaacccaggccccatcactccccagatgtggaaacttagacatgttatttaatt
-gtcctatgcctcagttccctcaactgaaaaagagaataataatagtacccatctcttcta
-gttgcattgaggactgaatgagttaaAAAGTACCcaacacaccatatgagataatgctat
-tttcattctaccaatgggtaaactgaggctcagctaggagaaagaacttggttcaagCTA
-TCAGTCGTGTTGTTTATTGGCCCTAAGTTGTGACGAGTTTCATTATACCATTAGAAGCCC
-CCGAACAGTGAACTCATTGTTTGTGAGGTATCTCTATCTCTTAGTGATTTTTTAGTTAAA
-TGAGAGTCCATGCTAATCATTTATAAAAAATGGATAAGATAAAAACTTAACATTGAAACA
-TCCATGGGCTTCTTTCCATAAGAAATGGAGAAACTCTTGCTCCTAGTATTAAAAGGTCGT
-GGGTTCCAGTTTGAGATGCACCAAGCAAGGTAATAGGAAGTCCTTGAAGGTTCTTGAGCA
-GGGGGAAGCATGAACTTAAAGCATATGAACCATGTGTTTGGGTCAATTCAagttactgag
-acttagacattgctggtgggatgcaaattgctacaatctctgtggagggtgattgagttc
-cacaaatatttaagataaatgtaagagctcctaccAAAtgccaggtgctgttcaggtgct
-aaggatttgcagcaaataaatccaaccaagtccctctgcctggtgcttattttctggaga
-ggagacacacaatgaatgaatatacaacttagtatagcgtgCACTGGGGAAAGAAATAAG
-AGCATTTCTACAATAATGTTTACTGCAGTGTGAAGGGGGATCTGAAGAGGCTGGACAGAG
-CCAAGTATGGGTGAAGATGTGGAGATAGCGCTGGGGGTGTGTGGACTGGAGCTGCCATCT
-GGAGAGCAATCTGTCCAGTTAAATCTGTACATTGggtgcataaattatggccaccaatta
-tttgacattcctcccatctagatgtaggtctatgtatctgctctctgaatctgggctggc
-ctctgactgctttgacaaacaactatggtggaagtgatgatgtgtcagtttccaggccta
-ggctttaaaagattggcagcttctacttcctctttcttggaacaattacttgaggggaag
-ccagctgccatgaagaactccagccaccccaagactgccattctgtgaggaagtcccgcg
-aacaatggaaagaagtcctctaggatgagacaccatgtgatggagagagaggccaggaac
-atcaaggctgtagacatgagtgaagatgccatcttgaaagggaacctccagccgtagctg
-tttcagttgataccacaaggttcagaaaggagccacccagctgagtccttcctaaattcc
-tgactcacaaagtaatgaacaaagtggttgctttaagcctctaagttgagggtagtttat
-tgtagtgcaaaagataaccagaataGATatatccgatgacccagcaattatactcctggc
-tatatgtccagacaaaatTCTCTTATCAGCCCATAGAGGATATGGCCATATTGTTGTGGC
-AACAGAGAGTTAGAGGCCACTCAGGTATCCATTACTGGGGTGGTAGAAAGGAATACATGG
-TAGGTGCAAAGAGCTCTAGGCAGCAATCAGAAGTCACAGGTGAAGCCACACATACAAGTC
-TGTTATGTTCTACGTGAAGACTTATACACCACAGAATGCACAAAGAACCCATCAGAATCT
-ATGGAGGTGCAGAAAATATGAAGGGGAAATGGGATAAAAAGGAATAACTAGAGAGAGAGA
-AACAAAACCAAACAAAGGAGGGTGCACAGGGGTAAGTTATGATAATCTGCCATGAATTGA
-GGTCTTATTAAACTCAACGCTCTACATTTAAAATCTAAAAAgtaataacaaaggccaaca
-aaattaatgtgtgtgaatagggggttggttaaataaattgtagcacatccacatgaggga
-gtactgtaaagccataaaaaagagtggcagagcttgctatgtactaacatgtaagagtcc
-caaagtatgtcgaaaaggctataagaagggtattgaaaaggatgcataataggcttccat
-ttgGGGGGAGATACCAGTGTGTGTGGTTGTGGATATGTTTATAGACAAATGGTATATCTG
-TGGAAGGATGCTCCTGGGGAAAAGAGCCAGATGTCAGGGGAGAGGGGTGGATGGCACTTC
-AGAAGAGCAGGCACCCAGGAGCTGTGTTCAGAGAAGGAATTGCCACTAACACTGGGACCA
-CCTCCTCCAGGCCAGGATCACGCCAGGTGTGGGGGCTCAGAGTGGGCAGAGAGCCTCTGC
-TGCTTCCAAGATGCCCAGGGTCCTGACTGTGTCCATGATGCAACCTCAGCCAACAAGTTG
-GTTGGGCACTGCCCACTGCTGTGCCCTCATCAGCCACTGTCCTCACTTCATTGCCACTCA
-CCATCACCACTCTCCTTCATTCTGCCTGAAACACTCCTCCCCACTGCCCGTCTCCCTCTG
-TTACTTAATACTCAAACTAGTACAGAGAATAACAGAATAAAATCCCATGTACTCACTGCT
-CAGTTTAAGGAATAATACttttcttttcttttttgagatgaagtctcgctctgttgccca
-ggctggggtgcagcagcgtgatctcagctcactgcaacctccgcctcccagattcaagtg
-attcttctgcctcagcctcctgagtagctgggattacagggatacgccaccacacctggc
-taatttttgtatttttagtagagatgggatttcaccaagttggtcaggctggtctcaaac
-tcctgacctcgtgatctgcctgccccggcctcccaaaatgctgggattacaggcatgagc
-cactgcgcctggccTAAAACTTTTCAAAAAGAATTGAGAGTGAAtggttttaaatatgtc
-cacaaattcttggacactcctctcttcaaaaagtagagttacattctccttacctttgag
-tatgggctgagctcagcaactcatgtctaatgaagaggatgtggtgaatgaggatgggtc
-acaaaagggatacaacttctgcttaattgtccatctgtccgtctatctctccatgctcac
-ttttggaatccagccaccatgttgtgatagaacccaagatgcatgggcgggcccacatgg
-agaggaactgaggccctctcccctcttcccagtccctgatcaacaaccatcacaaatttg
-ctagccacccagatgaaccccctttggcttggcagcaaattctccagcttaccctccaac
-tccccaacccgataggccttcagatgactgcaggcccagctgacagctgaatttagcttc
-ctgaggaccagaaccacccagctaaaccatgcccatattcctgccttcagaaactgtgag
-atataaaaaatgactgttagtactttgaaaacattatgttttgggatgatttctaatgca
-ggatcgattgctaatacaGAGGGTCCCTGGTATCCCTCCCCACCATCCCCATCCACCCTC
-TTAGAAGCCACAATCCTGATGTTTATTATTTCCATGAATGTTTTACCTTTTACTACATAT
-AATAAATCCTTACCCAATACATAGGACTATAtttccttcttttttaaagaattttttctt
-tttgagatggagttttgctcttgttgctcaggctggggtgcaatggcgcgatctcggctc
-actgcaacctccgcttctcgagttcaagcgtcattctTAAAAATGtatagaagtgcatat
-atattgtatggattctgtgcatcctacctcgcatgctcttttccttgcacagtgtgcatt
-ggcgacccatctgcattgaggcaggcagctgccattcgttggcactgctgggcattcttc
-ccttatatgaatatgttaataccacgatatagtatctgaagtccatgttgatgaacattt
-ggatggtttttattttttgctattacaaacaacagcgctggtaacatccACTTGCCCTCT
-TCCCTCTTTCACATGGCACCTTCTTGTTCTTGGAGGTCTCAGCTCTAACAATGTAACCCC
-ACCAACCCCCCGCTCCAGCTAATGGGTTCTCTGTCCCCACATGTGCCTCCCAAGCTGGCT
-TTTGATGGTGctccctctgtttttccttctggcatctactccgtgtggtcaacattcagt
-tatcttttcctgtctggagctagagggtaagccccatgaaggcaggcagagtagtgggtt
-tttttccccagtcccctccatccctgatgctttgcacagggcctggcacacagtaggttc
-gcaagaaaaattgttggatcaggaatgGCTGAGAATTAGcttcctctctttgggcttcag
-ttttcccatctgcacagtgaaaactttagataatttcGGGGTGATTTTAGGTTTAGCCTT
-TGAGAGGTGCCTCAGTGGCCGCCACAAAATATCGGAAGACCCCAACTTTCAGCAGAGCTG
-GCCTTGTTTCCCTTGTGTCTTAGATTGGTCTCTATGGCAGATTATGTTTAAAaagaatag
-ccaccatttattgagcgctcactacgtgataggcatgctgtcagctggcagatgcatttc
-ctcattttggccactcattaaccctcagaagtagcactgttactatgctctttataaaga
-ggggtaaactgaggcaaagagaggtgaagtcacttgtcagaggactagcaaaggagggag
-ctgggatttgtagcacaagagactatcagagcccattcgccaaccctggtgcagccctgc
-cccactgGTACCACAGCTTTAAAGAAGTGGGGTGGGAGGCAGAGGAGGAGGACGGTGAAG
-GACAAGGGTGAAGAGAAATGTTTGGATAAGTTTGACAGCCACTCTTCTGAAGGGCTTTGC
-CAGCCGCAGCATTCGGGTGTCCCTAGTCACGGGGGCTCCGTCACTTCCCTATCCCCCTGT
-TTCCCGGCCCTGATgggtcttgctctgtcacccaggaggctggagtgcagtggcgtgatc
-acagctcactgcagcctggaactcccgggctcaagtgatgttccccatcagccttcctag
-tagctgcgactacaggcgtgcaccaccatgcccagctaagttttaaatgtttatatagac
-acagggtctcactatgttgcccaggctggtctcgaactcctggcctaaagcaatcctcct
-gtcttggcctctcagagcactgggattaaagtgtgagccactgtgcctggctGAGattta
-ttgatcacatagatacctatattattctaagtgtttttcaagtgacaactcatttaatct
-tcataactgtcctgtgacgtagatagtatcagttttatcagtattttatggagattaagt
-aacagaagcacagaaaggtcaagtaacttgcacagagtcacacagctggtaagatgtgga
-cccagctttgaatccaggcagtccagctccagaatccttgtgcttcacATCACCACACGC
-TGCCTTCACCATCACGTGTCAGTTCCACACAAGTGGATGCCCACAATGGTTGGGAGTAAG
-GGGAAAAGGAGTAGGGCTTGAGGAAAAAATAAAAGTGAAGCGTGTGATGATAATGAGCTA
-TGCTTGAGAAATGGGATTAACTCAGCTCTCTGTACTTGATAGAaaaaagaaggagaagga
-ggagaggaaagaagaagaaggaaaTATTTAACTGGACTCTCCGGGGCTTAATTATAACAA
-CTGTCTGGCACCTAAGGTCCTTCCCTAGCTGGGcttgctgcttctctaatctcatttccc
-tacgtttctcacggtgctccagtcactccaggccacacctgatcccagaaacctacttgt
-tcctactttgagcctttgcttgtgctgtttcttccattaagggtgccctttttgccaggt
-gcagtggctcatgcctataatcccagcactttgggaggccgaggtgggacaatcacctga
-ggtcaggagttcgagaccagcctggccaacatggtgaaaccccgtctctactaaaaacac
-aaaagttagccaggcgtggtggcaggtgcttgtaatcccaactacttgggcggctgaggt
-gggaggatcgcttgaacctgggaggcagaggttgcaatgagctgagatcatgtcgctaca
-ctccagcctgggcaacagagctagagactccgtcacaaaaaaaaaaaaaaaaaaaaaaaa
-agagtgctcctttccccattttaggaactcctacacatccatcaaaacctggcctaaagg
-ccctctcctcaatggaaccttttccagcctttcacttcttggggttcccacagcccttta
-catgtctctattctggttggctcacctgctagccagtgagctcctggaggacagggatgg
-gtctggctcatctctttaaccgccatgctgagcccagagcctggtaaatggtgggtgctc
-tataaGCTCGTGCCCAGTCACTCACCTTTACAGCTCcagtgtctggctgacagtgggtgc
-tcagtacatgtggttggacagatcaatGAGTGAATATTTGACGGAAGGGTGAATAATGAC
-ATCAAGGCTGCATTCCAATAACAGCACAATCCCAGTGCTGAGAAAACAATTCACAGCCCT
-GGATTCATATCATGGAATTCTGATTCCTAGGCCCCTTTGTTCCCAGAGCTATCCGATGAT
-GCTGAAGAAGAGTCCCTGGGCATCATCTGTTccagctgtgtgaccttgagcaagttgttt
-aaccaccttgtgccccaagattctcatctgcataaagaagagaaatagctacaccttcct
-catgggctagttacaaggatgaaatttgatcatatgtgccaagcacttaacacaacacat
-gaacatCACGGCATTGGCATGTCAGCTATGCCAATGACTCTATTTATACCTGAAttttta
-tttgaaataatttcagacttacagaaagtttgcaataataatacaaagaattcctacata
-ccatcacccagattccttaaatgttaacattttgcattctttgctttttcattctctctc
-agcatatatttttgtccagtgcctgaattgttggaaataagttgcagacatgttgactct
-ttacctctaagttaattatcccatgtatatttctaaaaacaagaatattctcttacaaaa
-tcgcaggacagatagaaaaatcaggacactgatacaatgctattgtctatcttatagacc
-tattgaaattttttcagttctactaatgtcctttgtagcaaataaacaaaaagatttcta
-cccccccaccccacccactcagtaaccagtccaggacacatgttgtatttaatgtttatg
-tctctttagtcttctttttagtcttatctggagcagtttcttttttttgagacagagtct
-tgctctgttgcccaggctggagtgcagtggtgccacctcggctcactgcaacctctgtct
-cccaggttgaagtgattctcctgcctcagtctcccgagtagcaggaattacaggcgcctg
-ccaccacgttcagctaatttttgtatttttttagttttaccacgttgaccaggttggtct
-cgaattcctggcctcaagtgatccacctgcctcggcctcccgaagtgctgggattacagg
-cgtgagccactgtacccagcgtggaacagtttctttggcttttatggctgacattatttg
-aagagtttaggccagttttttgttttgttttgttttggtttTTGAagatggagtttcact
-cttattgcccaggctggagtgcaatggcaccatcttggctcactgcaacctccgcctctg
-ggttcaagcgattctcctgcctcagcctcctgagtagctaggattacaggcgctcgccac
-tatgcctggctaattttttgtatttttagtagagacagggtttcaccatgttggccaggc
-tggtctcgaactcctgatctcaggtgatccatctgcctcggcctctcaaagtgctgggat
-tacaggtgtaagccactgtgcccagcctggaacagtttctttgacttttatgatcaacat
-tatttgaaaagtttagaccagttgttttgcagattgtccctctgtttggatttttgtgtt
-atttctttatgcttggattcagatcaggcacttgtggcaagaacaccgcatcagtgacgc
-tttgtccttcacagtgcgtcccatcagggggcccatgatgcctgccgacttgccccacta
-ttagcaatgttcactgtgatcatttggtgaaggtggtgtctgccagttttccctactgta
-aagttaccatttttctctttgtaattaacgaataccttataggaagatacactgatacta
-tgtaaatattctgtttctctttatatttcctgcccatatatttcctagcaggatgatcta
-ttttgcaatagatgcaattattatttgatAAAGGAATACATAAACATGGACCAATATTCC
-AACAGTATAAAAGAGTGTAAGGCAAATctcccacccactccgtccccagccaccccgatc
-ctctccccaagccatccctagtctcactgtttcttgtgtccttccagaaatgttctatgc
-atagacaagcgaatccactcatccatcttcttctcgagttatgtgcatgcagaaggtagc
-taaatagacacatgatctgcatcttgttttatttcatttaatattttggagaccatttca
-tatttgaacacaaagaGAGATCTCTTGCTGATTTTAGAAACTTATGTCCATCTGAGGTGC
-AATCCCAGGGtagtcaatctctttcaggttcacaaataaggaagctgagactcagagtgg
-ggaagggacaggtcccaatgtcagaggcaaaacagacTTGGAAACCAGCCTGGAACCCCT
-GAATAAGAGAGTTGACAGGTCTTACTATTGGGGAACCAGTCCTTCCAAGGGCCTTTTCAA
-CAAAATGCCAGACCCAGGCTCATGCCCCCGTTCTCAGCCTGGCTTCTCCCTCCTTCCCCC
-CTCCTCCCCTGGGTCCCTTCTTAACTCTCGTTAGGGACTCCCCTCCAGCTCCCTGCTGGG
-CCAGGCCTTGGGAGCCCCATTGATCCTCTGACAGCCCAAGACAGATTGGTGGGGAGTGTG
-TATTCAGGTGCAGGCGCCAGCACATGGAGGCCAGATGAGAATGGGGTGGAGGGGGTCAGG
-GGCCTGCTGGGGTGGGGGGATTGAGGATTGAGGAAGGCCAGGATAGTGCATCCCACAGAC
-ACCTGCCTCCCCTCTTTCTCCCCCACCAATTCCTGCCCTTCTTGGGGCTTCTGTTCCTCC
-CGCCTCCTCTTGCCAGGCGTGGGCAGGCCAGAGGGGCTGGGGCAGGGCCTGGGAGGCCTG
-GGggtgtagcagagagaagtcgggatggggagtgagccttgcttggtttgatctcagctc
-aggccctcttgtgagactcaggcagatgacatctcttgagcctccgtctcctcggggcaa
-taagaaggaaataaACTTCATACAGCGTCCAGCAGCCAGTGAGGCATGGCCAGTAAAGGT
-CTCCATGTCCTTCATTGGCCTCTTAAGGCTCCCACTGCATTGTTCCTGTCTGATTATGGA
-AGCCCCCAAGCCAAGGCGGCCCCTCGGCTCTGCCTGCGGAAAGTTTTCCCTTCACCTGCG
-CAGACCAGGCCGATGTGGCCTCCAGAATGGAGGGGTCAGCCTAGGTTGCCTGTGACAACT
-CTGAAAGGCCTTAGGAGGCACAGCATCTCAAGTGCACACCCGAGTATGGCGTGATCTGCA
-AGGGGAATAGGGGCTGGGGGGAGACATAGGCTTTGAAGATGAATCAGGCTGGAGCAGGGT
-GGAAGTGGGCTCAGGGAGATGGAGCAGGAGGGGTTGGTCAGGGAAGAGGGAGCTCAAGGG
-AGGAGACATAAGCGCAGAGAGTGAGATAGATAGGGACCCAGCAGCAAGTGGGCTCAGAGA
-GGGGCTGTGGTGCAGAGAGAATGAGACTCAGATGGGGGCTGTAGACTCAGAGAGAGAGAT
-GGGGACAAAAGGGGAGTGGGGGCTCAGGCAAAGGGATGAAGGCAGAGATGGGAAAATTGG
-GAGGGAGGGGAGCATCCGTTTTGGGAGGGAAGTGTCAGTTTTGAGCACACACAGTCCTCT
-GCAGCTTGAGGAGGAGGAAGGCTGGGTCTGTGGAGGGTGGGGAGCGGGTGGCACCAGAAC
-AAAGCCCCGGGGGTAGCAGCCTGGGCCCTGCAGCTCCTTCGCAGCTGACAGTCCCTGAGC
-TAATTACCATTAATGAGCAGCTGGGCCCAGTTTCCCGGGATTTGCATTCACTGTGCTAGT
-CAGCGCCACTGTGGATGGAAGCCAGCGCCAGCCTTCTGGGGTGGGGGTGACTCAGGGAGC
-CGAGGTAAGATCGCTGGCTTCATGTGGGGCTGAAGAAGGTGTGGCTTTGCCTTTCCTGCA
-GGTTAGGAGATGGCCGAGGTACAATCGTGCCTGGAGGCAGGGCACTGGCATCATCCACCT
-GTCCTCAGCCAGGGCCGGGGTAAGGGTCTTGGGGAAGGAACAGGTCTTGTGGCCCTCAGA
-AGCCCTCAGACATTTGGTTGCAGGGGCCCTCAGATTGTGCAGCCAGCTGTCCACTGCGGA
-GTTGAGGGAATAGACCACAGAGGAGCAACGTGCTGCTCAAACTCATACCAAGACAGCATT
-GCTCGTTAAGCGTGCCtgtgtcagacgctgtccaaagcactttactgaatcttcactacc
-aaccccatgtggtggctgttattagcaatcccattttacagatgaggaaactgaggcaca
-gagcggtcacacagccagggaccagcagggctggcatttgagcccagtcctcctgactGA
-TCCCTGCTGGGCAATAGGGCTGAGGAGCTCTCAGACCTGGGTTTTCCCTTGTGATGGGGG
-CTAACAGTGCCTCTCTCCCCCTAATTCCACTCTCTGCAGGGATGCCGGTATGTTTGGTGC
-CCCTGGCAGGGTTGGGAGGTGAGACTTAAGTACAAATAAATAAACAGGGAGCAGATGGTT
-GTGGGGGGAGTGGTGGTGCTGGGAGGGATAGGGCCAGGGCCTCCCACTTCTCCTTGGGAA
-AACATTTCTGGGCTGGAGCAAATGGATTCCAGACTCAGGACCTGGGAGCCCCTTCCCCAG
-GCCTGCCCTCCTGCCTGCTGGCCTCAGACCTGGCCCAGCCCTTGGgagaaatggtgggct
-ggggtcccgagtcttgggttctgcccatccctcatttctctctcttcttcctgtgtggcc
-ttgagcaagtccctttacctttctgtgcctctatttcctcatctgtcaaatgagtggaag
-gagaatgaactttatcaagtttctgttcaagggccacctcccctgggaagcctttcttga
-ttgctccaggcAGCTTCTGTTAGAGCAACAGCCTCGAGTATCAAGGAGAACATAGGTATT
-TGTGTTTTTCATTTCACAACAatccattcaacagatactttctcagggtcacctatgtgc
-ctggcacgatgccaCACTCCAGGCTGACTCGTAGTTTTTCTCTGTAGCTCcagtgctggc
-ccagagtagccactaataaacatgtgtcatgtgcatgaatGATGAGTGGGTGACTGAAAG
-GGAGCATGAGGAGCTGcagtgtttcccaaacgtggtacttgtatcttgggggtgggagtg
-gggagtggataaaagatgatacgggtgaacagcaacaagttattaaataacaataaatca
-acagtgaaaaagttattcctttttcattacctcccagtccttcttacaggccaaggagaa
-ggtctccgatgatgccaggaacgtgtttctagcacctgtggatctctctttctctctctc
-tctcccccaactcccgcaaaacccaccccaagaaggctggtcttgggctcagagcttcta
-cagacaacactatctagaatttgagaatgttgtttggtttccattttattcattttggtc
-agttaccttttatttgtgacaagggattttgatttttcctttgtTTGGACATGGCCAGTG
-GGAGTTGGAAGTGTTTGGCACTTTCTGATGAAGTGATCAGGACCAgggtggggaagaggg
-ctcgactgaaaaggggcacgagagcacttgtggggtgatggaaatgttctgtgttttgct
-tgtggtcgtagttacatggctgtgtacatttttcaaaatgcattgcacgataacacttaa
-aataggtgcattttattgtatgtaaattatacctcaaAGTTGATTTAGAAACACATATTG
-AGggctgggaatggtggcttacgcctgcaatcctagcactttgggaggccaaggtgggtg
-gatcacctgatgtcgggagttcgagaacagcctggccaacttagcaaaaccctatcttta
-ctaaaaatacaaaaaaattagccgggcgtggtggtgcatgcctgtaaccctggctactca
-ggaggccgaggcatgagaattcttgaatctgggagacagaggttgcagtgagctgagatt
-gcactactgcaccccagagcgagactctgtctcaaaaccaccaccaccaccagcaccacc
-accagcaccaccaccaccaccaccaccagcacATGTTGAGGatattaagtagataataat
-acagatggcatgtaggtgtggccaaagtcatgaaggtTGCCCACCACACGGTAAACTTTG
-TAGTCagtgaataaatggatagataggagatagaatggaggaatgcatgaatgggtaaat
-gagcaagcgaatgaatACCTATCTCatccattctacacagccccagcacattgggaggtt
-gtcctatctcaacttgcatagctcctagaatgggggaactcactaccttatgacatagcc
-ctttccacatctgaaccactaggagtgtgtaaaagacattttctcatattaagtttatct
-ttctggagatcctgtgctctctggggccccacagacacatctgcttccctgtctggggac
-agcccaaacacttgCCCTCCCCAGGCTGCCCTTCTCTGGGCCCTTCTGCCCAGATGCTTG
-GCTGCTGTGCCCACCaggtcctgcttgcacagagcttatatcctagtgggcggcaggaca
-aagaacaagcacacaggcacacaaacacaatgattccatgctatgaaggaaatgcagagt
-gagactgttgggaagagcatggcggggtgtggagaggcaaggggagtctctctaggaagg
-taatatttgagctgggacctgaagaatgcaacaaagccagaagaacaagagaaagggcat
-tccagatagaggcaagagcaagtgcaagagccctgagatcacagagcaattggaaactag
-gaagcagccagcctggctggaCATGGACATTTTGGGTATTGATGGTGAAGAGCCTGGAAT
-TGTTTTCTAAATTTGATCTCCAAACACTTTTAAGCAAGAGGTGATATGATATGACATATT
-TTAGCAGACAATGAATATTTCCTGAATTAAAATTGAAGACCCTTCTAGTTCCAATAGTTC
-CATGCTTCCCAAAGTGATACTGAAATGACTTCAGGAGAGAACAggctgggcgtggtagct
-cacatctgtaatcccaacgctttgggagggtaaggcaggaggattgctcgaggccaggag
-ttcaagaccagcattggcaacatagtgagatccccatctctacagaaataaaaataaaaa
-taaaaaaattaaggccgggcacagtggctcaagcctgtaatcccagcactttggaaggcc
-aaggtgggtggatcatgaggtcaggagttcgagaccagtctggccaacatggtgaaaccc
-catctctactaaaaatacaaaaaatttagctgggcatgttggcgtgtgcctgtaatccca
-actacttaggaggctgaggcaggagaatcacttgaacctgaaaggtggaggttgcagtga
-accgagatcacaccactgcactccagcctgggcgacagaatgagactctgttaaaaaaaa
-aaaaaaaaaaaagctggacatgatggaacatacctgtggtcctagctactcagggggctg
-aggcaggaggatcacatgagcccaggaggtcaaggctgcatgagctgtgatcttactact
-ccacctcagcctaggtgacacagccagaccttgcctcaaaaaaaaTTTTTTTTTAAAAGA
-AAAGAGACAATCATGtgatggttgccagaatggcctccagagagggcctccctaggctga
-atcctggctctgcctcatccttgccgtatgactctgggccaaggaccttgcctctttgag
-cctcagtttttacatctgcaaagtgggggtcataattgtccctgtcttattggcttgttg
-tgaggattaaatgactttatattggagaacagggcccagcatgtcaaaagtactTTCTGT
-TTGTTAAATACAATGAAAAAGGGTGAGGACATGCAGAAGCAAGATTAATCCTTTTTCAAT
-CTCTTCCAGTCCTGATTCCTGCAAGGAGAGTCAGGGTTGGTGGGGATGTGTATCTCTAAC
-ACCAGCCCAATCTGGAGGAAGTTAGTAACAAGGTTATATTTATGTTGTTTATATTTACAG
-CTACCTTTATTTGTGCCACATGATACAAtttttttttttttttgagatggagtctcactg
-tctccaggctggagggcaatggcacaatcttggctcactgaaacctccacctcctgggtt
-caagcagttctcctgcctcagccacccgagcagctgggattatgggtgctcatcaccatg
-cccggcttattctgtagttttagaagagacggggtttcaccgtgttggccaggctggtct
-tgaactcctgacctcaggtgatccacccatctcagcctcccaaagtgctgggattacagg
-cgtgagccaccgcgtctggccCAAATTTTCCATCTACCCTGGCTATTTCAAGTTTCCTTA
-TTTTTTTTTTTTAAAGTAAAACAAAAGCAAATAGATTTAGAAATTCAAGGGCCATGGTCC
-CTGAGGTAATGGCAAGCCCTCCTGTCCCAAATGGCCCAAATTGTGCAGGTGGTCATTGAG
-CCATTGATGGGACTTTAGGAAGCATGGttttatttttatttttattttttagatggagtc
-tcgctctgttgcccaagctggagtgcaatggtgcaatcttggctcactgcaaccttcacc
-tcctgggttcaagcaattctcctgcctcagcctcccaagtagctgggattacaggcgccc
-gccaccactcccggctgatttttgtatttttagtagagatgggatttcaccatcttggcc
-aagctggtcttgaactcctgaccttgtgatccacctgtcttggcctcccaaagtggtggg
-attacaggcatgagccaccgcgccccgccCAGAAACCTGTTTCTAAGCTCAGCACAGGGA
-ATAGCTCCTTTTTCAAGTTATGTCCTGATCCGGATCACTTCTTTCTACCCGTGTGCAATC
-CACCAAGCATCACCTGGGGCTCTGGTGACAGCAGCATCCCCTTCACCTTCTTTCTCTTCC
-TGCTCCACTCGGCAGCCAGagccagaccatgtccttcctctgctcaaagcctcacaaggc
-tcccagctcacttggagaaaaagccgaagtcctcacccagctatgaggcccctcccaagc
-tgatgaccctcacccctcctcacccctccagcctcgtcacctgcccagccacagcccttc
-tcccacctccactgaccccaccacactggcctccttgctgcttcttgaacactcactctg
-tgcaggctccagctcaggacttttgcatatgctgttccctctgcctggaacacatccctc
-tgacacccacagggcatttttcctctcattgcccaggtcaatgccccctctcagagaggc
-ccatccaccttacctaaatatttcctagctcattcttcctccctcccctgcttttccctc
-agagcatatatcactaccagacatcacattttacctttgatacatatgttgtgtgtgtca
-tcgcctgtctcccagagtggacttcaagaggacagaagtttgcgtctgttttgtactctg
-atggctccagtgcctggaatggtacTGATTTGCAGAATGAATGTCCAGGGGTGTGTGTGA
-AGGGTGGAGGGCAGTCACTCCCAGCCCTGCCCAGCCTCACTGTGGCCCCTCAGTCCCCTC
-TCCGGATATAGCTTTTCTCTCTGCCTGCCCCACCCTCTGACCCTCAAGGGCAGGCCAGGG
-CAGCAAGCTTGTCCCTTAGGAGGGAGGTTTCCAGCTGCAGGGCAGACCTTCCTCCTATAC
-CTCCATCCCAGGTAAGCCCAACTGGAGCTGCCCTCTCGTGGAGGGTACTCCAAGGATGAA
-GGGCCTTAGGGGAAGAGCCACCCTGAATGTCTCTGGGCAGCCAGGAACCTGCTCACAGCC
-TCCGCGACCTCATCGGGAAAGAGGCAAGACTCATGAGAGTGAATGGcccacggggagtta
-ctatgcttgtccccttttacagatgagaaaactgaggctcagagaggtgaaTCTGTCTCT
-AGGGCAGCTGGAgcctctgtcccctcctctgtaaaatgaggagaataactcctccctcct
-aaggttaccttgaggattaaatgagctaaataaagcctttaaacacagagctgtgtctgg
-cacataggaggtgctcaataaatgttgggtactcttGTTgttctgacaggtgaactaact
-ttccaaggtctcacagttagtaagtaacacaaacaaattcaaacccagatctgtctgaat
-ctaaagTGATTCCCAGAGGgggggcagtggctcacaccagcactttgggaggtcgaggca
-ggaggatcacttgtgcccaggggttcgggactagcctgggcaacgtgacaagacattgtt
-tgtctccgcaaaaaacttacaaaattagccaggcatggtggtacgtgcctgtggtcccag
-ttacttgggaggctgaggctggaggatggtttgagcctgggagttggagactgcaatgag
-ctgtgatcacaccactgcactccatcctgggtcagagagctagacctggtttcgaaaaaa
-agtcaaataaataaagaaaGTGACTCCTGTGCacaaccacaaaataataacaataacagc
-gacgacaacagcaacaacaCCTCCGAGCAGTAACAGCATTTTCCACTGCAGACGGCGGCG
-CTGAGGGTACAGGGATAAGATCATCCGGTGACAGGGATCATCATCCCTGCCTGGCATAGA
-AACCCGGACATCGGACCCTGCCCTCCCGCTGCTTCCGCAGGGACAGGGGGCAGCCAGCAG
-AGCCTCCCTCTGGGGGTGCCCCCCAATCTGGTTGCCTGGGACGGGGGCCCAGCGGGGGTG
-GAGTTGCCTGGGGGGGGGGCCCAGCGGGGGTGGAGTTGCCTGGGGGGGGAGGCCCAGCGG
-GGGTGGAGTTGCCTGGGGGGGGGAGGCCCAGCGGGGGTGGAGTTGCCTGGGGGGGGGTGC
-CCAGCGGGGGTGGAGTTGCCTGGGGGGGGCCCAGCGGGGGTGGAGTTGCCTGTGGGGGGA
-GGCCCAGCGggggtggagttgcctggggggggcccagcgggggtggggttgcctgggggg
-ggaggcccagcgggggtggagttgcctgggggggggaggcccagcgggggtggagttgcc
-tgggggggggtgcccagcgggggtggagttgcctggggggggcccagcgggggtggagtt
-gcctgtggtggggggccagcgggggtgaagttgcctggggggggccagcgggggtggagt
-tgcctgggggggggccagcgggggtggagttgcctgtgggggggggccagcgggggtgga
-gttgcctggggggggccagcgggggtggagttgcctggggggggCCAGCGGGGGTGGAGC
-ACCCTGGACGGCCCCGCGGAGCCCCCTGCGGGAGGCGAGGGCGGCCCTCGGGCTCTGGAA
-GGGGCCGCGCGGCCTGGAAGACATTACACGGCTGTCGGGCGGGGGGCGGCGCTCGCAGTT
-CCGGAGGGGGGTCCCGGCGGCGGACGCGCGGGGTGAGGGGACCGCCCGGCCACAGAGCGC
-GCTTTGTTCTGCGCCGCCCCCGGGAGCTGGAACCAATGGATTGGCGGCAGCTGAGGTCAT
-CTGTCAGGCGGAGCCGGGGGGTCAGGCCCGGGGAAGGGGCCGCGAGGGAGGGCGGCGCGC
-GTGGGCCGGCGGGGTGCGGGTGGacgagccgggggccctgcggcaggtggctacgctgct
-tcggtcctcagtttacccgtctgtccaacaggaaagatcatttctgccctgtccacctct
-gggggctaatgtgagagttaaaGTAGGGGAGCTACAGTGATGATGATGATGACGACGGAG
-GATGACAGCCTTCCCCTAATCGCAGTCTCTACTTCGGGTACCATAGAAGTGCTAAGTCAG
-GGGCTGGACGCAAATGTGCTTTGTAGCCTATAGTGCGTGCCTGTGTGGGAAGCGGGATGG
-ATGTTTCACCCCACCCTCTTTCAGCCCAGGGAAGTCAGTGGCTCCCCCTGATTGCCTGCC
-TTGACCCTGGGTGCCAGGCTTGGTCTGCCTTCTCCAGGGGTGATAGGTGCAGCTGCCCAA
-GCCTGAGCCCAGGAACCCATTGCAGCCTGTCCTTGGAGCCTTCTGGTCCAGGGTAGGGCG
-GGACTGGAGTGACCCAGATAGGTGGGGTTTTTTTTTCTGACTGGGGGTAGGTCAGGGTCT
-CAAGGCTCTCCTTTGCCTCCTACAAAAGGACAGCCCTttctttcatcaattcactcattc
-attcattcaCACTGCCACCTGCCTGTGCCTCACAGTTCCCATCCATGAGATAATGAGGCT
-TCTAAACATTTGATACAGGGTCCCCCAGGGAAGGAGATCATCAAATACAGGGAGGCCCAG
-AAACGGCCCAAAATGCGTGTGTGTGTATTTTTGGGGAAAGGACTCATGGCTTTCTTGTGT
-TCTCAACCACGTTCATGATCCcaaacaaggctaagaagtactggttggagtgcagggaag
-gcaaataggctcccaaactccaccggagagggtggcacttggaacaaccactttggagag
-caatttgccagggtcttagaagatggaaatgggcgtatgcatcagccaggcagctccact
-cctgggtatacagttgaaagaGCAGGGTGATGGCGGGGGCCGTTCGCAGCCGCAAATAAC
-TGTAAGCCCCCATGCTTCCATGAACATGATCACGACTAACAAACGGCTACATTCACAGCC
-TGGAACACCACGCAGCGGTGAAAAAGAATGAGATAGACTCAGCTGGAatttattcatttg
-acagatattgattaacactactatcttttaggcactgttcttagcactgaacctacagtg
-ataaacaagacagattgagtcctgccttaagaacgtacatttggccaggcacggtggctc
-acacctgtaatcccagcactttgggaggccaatatgggaggactgcttgaggccgggagt
-tgaaaatcagcctgataaacattgtgagacctcatctctacaaaagaaaaataaaaaatt
-agctgggtgtggtgacacacacctgtaatcccagctactcaggaggctaagtgggaggat
-tgcttgaacccagaagttggaggctgcagtgagccacgatggtgccactgcatactccag
-cctgggtggtagagcaagatcctgtcttaaaaaaaaaaacaaaaaaagcagacacagaag
-aaaatttgggagagtgtgacaaatgccatgaagaaaataaaactggataaagggacggaa
-tgatgggggagggggctgttttagacgctatggttgggaaggcccctgaagaagtgacat
-ttgggcacagaccagaatgagggagactgggagacaggcacgCACGAATGGGATGGACGG
-CTGGGGCACAGTGCCAAGGGAGAAAAGCAATCCACAAAACAGCGCAAAAAAAGAAAACAT
-TTTTTACTTAAACGCACATTCATTACTATTAAATTAGATAAGAGTCTGGGAGGCTCTATG
-CCAAATTCATAAAGGTAACTGTCCCAAGAGGGCAAAGGAATAATCAGGACTAGGTTTTGT
-GGTGGGCTTCCGCTTGCCTCTAATACtttaaatttctaatatttaattatttaacatttt
-aatattttaatGTTTAAACGGTAAATATggctgaatgcagtggctcatgcctgtaatatc
-atactttgggaggccaaggcgggaggatcacttgaggccaggagttggagaccaaccacc
-ccaggcaacagagcaagacctggtctctataaaacgttaaaaacaaaattagctgggtgt
-ggtggtgcctgtagtcctagctactcgggaggctgaggcaggaggatggcttgagcccag
-gagtttgaggttgcagtgagctataatcagaacattgcgtgccagctttggtaacagagc
-aaaaccccatcacaaacaaacgaacaaaCACATTTTAAAAAGTAAATATACTTATATAAA
-ACTTGTGAAATggctgggcatggtggctcacacctgtaatcccagtgcctcgggaggccg
-aggcggacagatcacctgaggccaagagttcaaggtcagcctggccaacatggtgaaacc
-ccatttctactaaaacaacaacaaCAAAAAGCCTTGTGAAATGAAAACAAAAAAAAAAAA
-AAAAAGGAAATTTAAATCTACCACGGTCAAGTGGGTGGGTTCCAGGGCGGTGAAGGCACA
-TACTGCCTTTCACTGGAGCCAAGTTCCTGGGGGCAGAGGTTTTTTTGGGGAGGGACACTG
-TAGGTCATGGtagcccagccagtaggagcccagaagcttcttggaggaggtaccaccttt
-gctgagcctgaGATTCTCTGGCCCAGCACCCCCAGTATAGACAGGAATGGGTAGACATGT
-GCGCAAGGTTACAGAACAAGAGCTGATAAATAGAACCTGAACTCCAGACTCATCCCGGCT
-GAACCCGGGTTAACTATCCCGCCTCTTTCAGCCCTGCGCGTGCATCCAGCCCCTTCCCAC
-AGCTGTAGCTCTTGCAGGCCAGAGGGACGGCCCTGCCGCGGGGGCCGGAGAGCAGCGCCA
-CCTGCTGCTGTAAGAGGGAAACGCAACTTCCGGCTACCAGCAGGTTACACCCTTTAAAAC
-CCAGCTCCTCTTCCTTAAATGATCAAGCAGTACCCCTCTACTCCGAATCTGTTCTGCACC
-TCCTTCGCAGTGCCTGGCAGGGCCCTTAGCGCTGTCTGGTTGGGTCTTCTCTGCAAGAAG
-GAAAAGTTGTTTCAGGAGGGGGCGACCATCTTCACTCTCATTCCAGCCCAGCGGGCACAG
-GAGGAGTTTACTCACAGAAGACAGGGGcacctcaccttcgctacaaaccttaggggtaca
-caatccatttgacagcctggaagaagtccccagggaagggacagaaccgcccaaggtcac
-acagttaatgagtagacaagctgggGGGAATGAGTAGACTCATTCCACTGGGGATGGAAG
-TGGGGAAGTCACCGTATTTGAAAATAACTGACGCAGTTATTagcagctcttagcatgtgg
-tccctgaacagcagcatcagcaacatctgggaacttgttagaaaagcaaattatcaggcc
-ctgccccaactcgcctcaatcagaaactctggggggccgggggcagtggccatgtctgta
-atcccagcactttgggaagctgaggcgggagaatcgcttgtgcccaggagtttaggacca
-gcccagagaacacagcaaaaccctgtctctacaaaaaaatgagaagggcgcacctgtagt
-cccagctactcaggaggttgacgtgggaggatcacttaagccccgggaggtcaaggctgc
-agtgagtcatgatcgtgccactgcactccagcctgggtgacagggcatgaccctgtctca
-aaaaaaaaagaaagtgggggtggggcccagcaatctggtatttagcaaacAAGCTTGAGA
-CCCTGAACCATTGGTCTAAAGGAATTGCACACCCCCCCTTTTTTTTTTTAAAttaaataa
-acttttattttggaatgatactagatttacagagaagttgcagagatagtacaaagagtt
-cctgtatacccttcacccagcctaccccaaggtcaacatcttacatcaccatggtacatc
-tgtcaaaaccaagagactgaaattggtatattaactaaaattcagacttttttcagattt
-ccaattttcccactaatgtcctgtttttgttccaagacccaatccaggatgccacattgc
-actGAAGACACTCTCCCTTTTCAATTCTATTACTGGTCACCTCAGTCAACTTTCCCGGGG
-AAAGAGAATGCATGGGAAAAGCTCTTGTCCTTATTATTGAACTGGAGAAACTGAGGCTTA
-AAAGTGCCGAGTGACCAAGTTCCCTTAGAGGGCAGTGAGAACAAGGCCTGCCTTACTCTG
-TTCCCTTTCCCCAGGGACTCTTGGTTTTCAGAAGCCCCTCTGGAATGTCCTACCTGGCCT
-AACCCCATACCAGCAGTGCAGACAAGGAGGCACTCCTACTACAGTGGGTCCAGCCCATGG
-AGAGACTCACTTCCTGCCCCAACACCTCTTCCCCTAGACCCTGAGGGCCAGGACAATGTC
-TTAGTGCCTTCCAACTTGGCAGAGTGAGGCCCCATGAGACAGAGAGAAAGGGGGAAGAGG
-GAAATACCTTTATCCAAATAAATACCCATCCAAAATTATTTGTGATAGGTGAAAAATGGC
-CACAAGCTctttgtggttcccctcatcaagacatgtagtctgtttctcatcccttgaatc
-tgggtaaagccttgtgatttgctctgaccaaaagaacttagcagaagtgacactgtccta
-gtcccagttccaggccaagaactcaagaagtctttcagcttctactctcactctctttgg
-aatcctgaagccatcatgtgaataagcctgagctagcctgctggagaggccacatggagg
-agaaccaagcaattccagccaacagcctgtcacctgccaggcaagtgagtaaggctatcc
-tagaccatccaggcccagctgaggtaacagctgaccttagctccatgagggatcccaggt
-gtgagcagcagaactgccctgttgagcccagcccaaattgccaacccataggattgtggg
-aaaatacagggtttgtttctagctgccaagtttggggatggtttgttacacagcaaaagc
-taactggtacaCAattctgcatttctctcttggtaatgggatcccagttttattgcagga
-ggcagtgtgccagtctcagtagatggaacacgattggtctattcagccatgacaattctg
-ttccctgctgtcttagctttgtttgcagctagaggtgcaatggtagctggctcgggccaa
-gggcatctaagtgaagatatgcagagggagagagcaggaaacagacttctgacgaggttt
-tactttctgatagaaggtgacgggtccagctagtttggcccttcctcttcctccacccct
-ccttccttgaacgcagacatgattcttggggatacagcagccatcttgggaccatgaagt
-aacgagcactgagattaaggcaaaaggatccaagacgtgacccctaccttcgtggagttg
-ttgaaccaataccattagccacccatctccagaatccatgctatgtggaaaaacaatctt
-ctgtttgtttaaaccactgcaatcaaggttttcctttccttgcagctgaatgtagtccAT
-ATAAGAGGTTACATAGACAAAAATGCAGAGGGATCCTTGTCCTTGGGAATTTGGAGCCGG
-CAGCACGTGgctcttcaagcccatctctgttctccttctcggtaatgcttcaagggtaag
-gccatgatcctattgtcacagaggtgggaactggggctcccacactgtacagtgagtcca
-aggccttgtagctggtgagaggggtgcccagagtcagacccTCTCGCCAGGTGCAAAGAG
-AATGCACCCCTGCTATCCCTTCTGCATGGCCCAGCCTGCTGGAGGCCAGGTGTGTCTTCT
-GGGCTCTTGAAGGTGGCAGCAGGTGCCAAGGAGGCTGCTACTGCAAGTCTGGTGTGGATG
-CTCCCAGGTACACCCTTAGGTCTGAGAGAGTGGACTGGACAAGCTTGGCGGGGATGGTCT
-CTCGCTGCAGTTGCTGGTAGGCCGCGTAGCGGTGGCAGCCCCCAAAGGAGTAGAAGTAGT
-CACCTCCCTGGGCCCCTTTGATCCAGAGGACATCGATGGGGGGCACGCTGTCTGGGTCCT
-CCTGGGGAGAAGAGGCACAGAGTCAATGGACATGGTACAAGGCTTGAGAGTTTGTAAAGC
-AGACTTTGTCCACTTGTGCTGAGCTCCTTATAAGGTGATCACACTGGACTACTGTGAGAG
-ACAACTGTTAATTATCAGGAATTTTGTGAGCTGTTCgacatcaccttgtagcttgaaaat
-cagccatgggagagtatttacaccagagaaatggacagatgctacaaatcagggatttct
-cccacacatgtatcagcacaccacATGCACactatccagctggccctgttgtagaccctg
-ggaatacggtacagctggaatgtgactgaatcaggccctggcttcaaggggctccagtct
-agtggggcagatggaacaagaagtaaatattagagtgacaaatgctataatgacaataac
-acaggtgacaggacagagatgggGTCCACGAGGCCTCTCTGAGGTAAGAATGAAGCAGAG
-TACTTGGAAAGATAGAGAAGTGGggccgggcacggtggctcatgcctgtaatcccagaac
-tttgggaggccgaggcgggtggatcacctgaggtcaggagtttgagaccagcctggccaa
-aatggcacaaccctgtctctactaaaaatacaaaaattagctgggcatggtggtgtatgc
-ctgtaatcacagttactcaggaggctgaggcaggagaatcacttgaacccaggaggcgga
-ggttgcagtgagctgagatcgcaccattgcactccagcctcggcgatggaacgagaatcc
-atctcaaaaaaaaaaaaaaaagagagaaGTGGAATAGTTTCGATTAAgagctcaactgcc
-tgggttcaaatctagctctgctgcttaacagctatgtgatcttgggcaattcatcttttt
-gtgcctcagttgccccatctatcaaattggatggagataacagatccatctcatagaatt
-tttgggttaaatgggttaatatatataaagcacttcaaaccatgcttggcacacggaaag
-tgctcagtaatgtatgctgtgtatGACCTgagggaagaacgttccatgcaaagggaacag
-caaacgcaaaggacttgaaaccagagcacgttcactgtgtaggaggcacagcaaggagtt
-cactagagtggactccagggctccaggaatggtcagaaaggccagcaggagccagatggt
-gcaggtctgcttctgagagcagtgggtgggccctggagtgttggcaacaggggagggtga
-catgatctgatgcatgttctagaaagttgtcacaggagaacagacttggcagggtggaca
-gggcacagggctggaaggcagaggggaggcctctgcaggtattcagcagaagatgctggt
-ctggatgatggtgtggtggggacagggagaggtagacaggtttgggacacatttacgggg
-caggcccaaggggtctggcagaaggggtgaatccaagggcaagagaaaagggagaatcta
-agttgacttcctgttaggggcccacacagccaggtggagagtaggtcatcctctaaacag
-ggaaagtctggggcaggacgggtgcagggtagagCACTCTGGGGAGACCCCATTAAGTGT
-GAGCGGCGTGGAAGGCCTCCTGCTGCTGGTCCACGGGTTCTCTCTCATGATTCCACAAAT
-GATTATTCAgcagtaaggtgcagcagtcacaagcctgagctctggaacctggcacacctg
-actttggatctcagctcctctccacagcagctggggcacacagccctctgaacaccattc
-ctcacctgtaaactgggaataaaacatcctagagggctgctgatgaagagtcagtgagct
-gatgcCTACCGGGCATTAGTGGAGCACTAAGGAGGGCAGCCGTGCCAGGCAGGCCTTGTG
-CCGGGTACTGGAGGCACGATGGTGgatggccagaatgatggctcccaaagatgtccacgc
-ccgaatgcttctgaatgtgttaccttacatgggagaagggacttggcagacagaattaag
-gtaaggatcctgagatgcggaaattatccaaggttatctagatgggtcgaatgccattat
-cagggtccttaaaactggaagaggaagtagaggaagaggtcagagtgatgcgatgtgaga
-aggccttggcctgatgttgctggctttgaagacagaggaagaggccataagccaagcagt
-gtgggtggcgtctggaagctgggaaaggcgaggaaatggattctcccctagagcctacag
-aaagtagtgcagccctgcttggtgttagcccagtaagacccattttggacttctgaccat
-aaataaacctgtgttgttttaagccatcaactttgtggtaacttacagtggccccagaaa
-actaatacaGGTGTATGTAAGCAAAGGCAGAGCTGGTTCTGGCCCTCAGAGCCTACGGTT
-CTAGCACGGAAGGCAGGTGTCTAGACAGGACGTTAAAAGCCAGTGGGctgtaatcccagc
-actttgggaggccgaggtgggcagatcgcttgaggtctggagtttcagaccagcctggcc
-aacagggtgaaaccccatctctactaaaaatacaaaaattagccaggcgtggtggtgggc
-gcctgtaatcccagctacttgggaggctgaggcaggagaatggcttgaacccgggaggcg
-gaggttgcagtgagccaagatcgtgccactgcactccagccagggtgacagacccagaca
-acgtcttaaaaaaaaaaaaaaaaaGCCAGTGAGATCAGAGCTATGCAGGTGGGCACACAG
-GTGGCTGCAGGCCCACAGAAGCTCCTAACCCGGTAGGGATGGTCAGGGAAGATCCTGACA
-CTGAGACAGGAAGACCGAGAAAGAGTGAGAAACGACAAGGCAGAGATAGAAGAGGTTCTC
-AACGGGAGAAAAAGCCCAGTGGTGGGACAGGGCATGCATGGCAGATCCCTTCCCATCTCA
-gccaggcgccgtgctactattgtggcaacagataagatgggacgaggtcctcgcccttgt
-ggagtgcacgtgaggtcaggaagacagaaaataaaatgcaacacaaatagatgtataata
-taatttctggtggacataagtggtatcctgaaaaacatctcgggctaaggggagagctag
-agaggccagtgactctgaccaagggtgatcaaggaggcagagagctgaaccaggcagggg
-agcaggccctgtggttgtctggggaagtggctccaggcagtgaggacactagtgtaaaTA
-CTAGGACTGAAAGTTATCGGGGGTGGCTGTAGAGGTGCTGGGTGGGGCTTAGGGATCTCA
-TGTGCTCACCTTCCAAGGGTCGGGGGAAGGGGACACAACGTTATGTAGGCCTAACCTGAC
-ACCTGTTCTTGCGGGGCCCCCAAGTTCCTGCCAGAATCACTCCGGTATTCTTAACACCCT
-TCCTCAGTGGTGGAGCTGACCCTTGACCTCTCCCACTTCCCATTCAGACAAGGGCCTCCC
-AGCAGATATGACACACCTAGTCCCACTGTCACTGACTGTCACAGCCATGAGAGCCCACGG
-CTTATCTCCGGgtagtgcggtggccatgtgctgggcagtggggcccaggctgcctgggtg
-tgaattccagccgtgtcactttttaagcgcctgatcttagtcaagccgctgaaatcttcc
-ctgcctcagttctcgtctgcaaaagagccactatctacctcctagggttggcataggaaa
-ctgagggacttcctgcagttcctggaccactgcaagcactAGCGTTATAAGCGTTATCAT
-CACTactttaattatctcgcccaattccctccttgctcaagtgaggaaacagaggcccag
-agaggcccagctacttgctcaaggtcacacagcagaggctgagctccggctgggcccgga
-accagtccgtctcgcgtccaTCGCAGCGACCTCCCTCCTCCGGCAACCTCCCTCCTCCGA
-AGCCCTCCCTCCGGTTGGCTGGACTCCCCGAGGCCTCACCCGGATCGTGTCCACGAGGCT
-CTGCACCTTGGCGGGGTCCAACACGGACGGCAGCGGCCGGATGAGCACGCTCAGCGGCAC
-GTTGTGCACCGCGGCGATGCGGCCCGAGTGGATGCTgccgccctgcgcgccgccgctcgg
-cccgggcccctcgggcgccccccgacccgcgccggcccTGCCCAGCGTTCCTCCTGCACG
-CAGCCCCATCGTCGCCGCCGCCGCGGGACTCGCCGCCTCCCCCCGGCCTTAACTCCGGCC
-GGGCCATACCATTccgcgcggccgggggggggggcccgTGCCAGGGCAGCGCGCGTTTCT
-CCCCCGACCCCGCCGCGGTCCGGCCTCGACCCCGCGGTCCCCAGCCCGACTCCGGCTCCG
-CTCGCCAGGTGCCGCCAGACTCGCGCGGGGCTCAGGCTCTCCACCGGGGGGCGCCTCTCG
-CCTCCCCTGCGCCGCGCGGCGTCCGGGGAGTGGAAACGCCCGGGCGGGCTGACTCAGGGT
-GAGTTTGCAGGTCGCGGGGCGGGAGGGGCGCGGGTGACGCACCGGCCGGGCCGACTTAgg
-ccgcgggggcgggggcgggggAGAGCGCGGCGGACCTGCCCAGCCAGGGTGAGTCGGCAA
-AGCCCGCGGTGCGCTGCTGCCCCGCTGCTGGGGTTCCTAGCCAGCGAGGTTATGATCCCC
-ACCAGCGGTTCCACTTCCAGTCTGGCGCCGGCtgtgtctggagtcgttccgaacattttg
-cacgtgtattaacgtatctgaacctcaaaacaaccctgcaaggaaggtatgactgttatt
-cccattttacagaagaggagactgagacacaggtttaagtgatgtacccaagatcacgga
-actagtaagtggccgaatccgcgttcaaatccagacggtctggctccagagtccgccttc
-tACCCCACCGTTGGCTGCCTTGGTTCAGCAACAGTGACTGTCACACGGAGCCCTCAGGAG
-TCGCGCTGACAATGGGTGGGCCCTGCCTTCAAGTTCCACACTGTCTGTTTGTGTCATTAC
-AACACTACTGGAAGTAGGTGCAGTTATAGACCCGCTGTTCAAGGTCAGCTGAAATGAAAG
-TCAGGTCACACGAGTCCAAACTGTGGGGCCACTTAACCACCAACTCCAAGCAGGAAGGTG
-GACGATCCCAGACTCGGTCGAAGACAAGCATGTCTGGTTTGCTTGTCTTCCTTCTCAACC
-TGAATGGCACGAACATGGAGAAATGCATACTTACCCTGCCAGCTGGAGAAAACTGGAGAC
-GAAGGAGGGAGCCAGGAGTTTCTACTTTGccttccaccagttgctgacactttctgaacc
-ccgtctgtaaaatgaagtcatgctgcccatcactcaaagttgtgtgaattgagagagtgc
-tcatagtgctctgtgaattgcataacaTCCATTTTGCTGTTGAAGATCATTTATTTTGGG
-TTCTTAGTCTCTCACAAAACCTTAGAACACTGACACCAAGACTCCAGCCTTTCCCTTTCG
-AAACATAATTCCCGTGCGCACCTAAATGATACTTTATTTCAAGAAGTAGAACTGACACCC
-ACACCTCAGCCCCAGAATTATTCAGAATTAGAGAATTTCATCAAGAGGGAAGTTATCCCT
-TCTAAAACATCTTCCTCATTACAGGAAGTAAGAATGGCAGGATAACAGTTTCTAGAGTGG
-AAAAGTGGAGCTCTGGCCTGATTCTATCATCATGGTGTACCCAGGGAGGCCTCATTTCCT
-GGTATCAAATTCTCTGTGTTAAGATATCTATGGcccaattcaaaatggcttaagcaataa
-gaaggtttgttttctcacataataaaatgtttggaggtaggtatgtccaaggttggtaaa
-gaggcagttgaacaatgtgaccaaagactccagttctggctgggcccggtggctcacacc
-tgtaatcccagcactttggaaggctgaggcaggcgaatcacttgaggccaggagttcgag
-accagcctagccaacatagtgaaaccctgtctctaccaaaagtacaaaaattaggcaggc
-atggtggcgcgcgcctgtagtcccagttactccagaggctgagacaggagaattgcttga
-aaccgagaggcagaggttgcagtgagctgagatcatgccgttgcactacagcctgggtga
-gagagtgagactctctcagaaaaaaaagaccctggttctgtctatccttttgtgccatca
-tccttggtgttctgttatcctgcggtgtgcccctcatggtcccaagatggctactgtagc
-tcaaaacatcacatcattacatgcgaatgtccacaagtggaagttaggacatcccttcga
-gcctctttttaagagtgaagaaaccttcccTGGCTGGATGCAGTGGctcacaccttctga
-ccttccactcctcaagccccggagtcaactctagtcacactggcctccttgctgtgcctc
-ttccacagcgaatgtgtcctggcctcagaccctttacatttgctgttccctgtgcatgga
-acgctcttccctcaggtCATACatagcatacattactgagtgctctccatgtgcccagca
-tggtttgatgcgctttacatatattaactcatggaacctaacagctttatgagacgagtc
-tgttatctccatccccatttgatagatggggCATCCCTGTGGGAGCTCTGCCCATTCCAG
-AGGTGCCAGGCCATTCACTAATGGGGGCAGGAGCCGGTGAGTAAATGCCAGTCTTGTGCT
-GTCACAGGTGGACGATTCAGAGAGGTGTTCTAGACCATTCAGATCTTTCTGGAACCTTCT
-CAGAGACCAGAAGTACTCAGCCCTATTGCTACAACTGACTTCACTAACACACCctctgtc
-ccattcctcccaccccttacttctgcttccagggatcacctcccacataaacgacttaca
-ctcaagtctcagacttgctatcagggaaccaaaactaaaacaAAAGGGAAACTTGATACT
-GGGTCATCCCCTATAGTTCTGTACCTtgcctgggttaaaattgcactattttattagatg
-tgtgaccttgggccagtcacctgtctgtgcctgtttcctaatctgtaaaacggacataat
-gtcacctaattcacaggggtgttggaagagtgaagagagatggtgttaggtgaggtcctt
-aaaacagtgcacaacgcattataagtgctcaataaatgtttgctgttTGATTGCATTTTA
-AATTGTAACAGAGCTTGAACGTCTCTCCGTGTCTTCACTTTCAGACTAGGCTTGAtgtat
-tagtcaagacttttgtttgcaagtgacagaaagccaaagtgaattagcttaatgaaaatg
-gggatgcttggctattcccgtgactgaGGTGAAGCGGAGCCTCAGGGGAAAGTAAGTTGA
-GAGATTTCTTTTCTCTGCCCTCACTCAGCAGAGGGATTATCTCTACATGTCAGGAACATG
-ACTGTCAACAGCgatgatatttggctttaaataagggaaacctgacaacagagacttcat
-acaacttaaagtgtttcctctttaaaaaaaaaaacagtcgaggtaggaagtccatggctg
-ggatggctgctccatggtcactagtggcataggccctttctatcttgccgctccatcatt
-ttccagcagagttttcattctcagggtcacctcctattcaggattgctgctgaagtgcca
-gccgtctcatccaaattccaccctggaaagaggtggagaaatggaaaggcaaaggatatg
-acccctccccttttgaggatgctatctcagaagttttgtataacacttccccttgcatgt
-cattgactagaaattggtcacacggccacccctggctgcaagggcagctggatatgttgt
-cttcatccgtagcggtaatgtgctgagctaaaactggagttctcttactaaggaagaata
-gagattgataagtagctagcaatcggggccacaGCTCTCAAGTTACAGGCCTTATGGCAC
-AGAGACAGGGAGAGAGAGAAAATTTCCAAGTTCTAGTCAGATGCCTACATATGGACAAGC
-CAGCTATGGCATTGGGGGACACAGACTTTCTTAAAAGCATAAGCCACCATTATTTATTAT
-AATGACTTAAAGGTAAGGAGttcatttaaagataattactggtcacctgctattggctag
-gctagacccaggggatttagtgatcagcaaaaagacactaccaatctctgcattatgagg
-cttacagtgtagtggaggattcagataatgaccaaataatcacactggttaatggaaagt
-atacattggtagtgggtgctgcaaaagaaTGGCATGTGGTTCTGAGGAAGtgttttagtc
-ctttttggctgccatagcaataccatagactgggtggtttataaacaacagaactttgtc
-tcttacagttttaggggctgagaaatccaagatcaaggtgACtttgtatctccccaacat
-tcatatgttgaaatcccaacctccaggtgatggtgttgggaggtgggcctttgggaagtg
-attatgtcacggggttcatgggggtagagccctcatgaatgagattagtgtcctttttct
-ttcttttgagacagggtctcactttgtcacccaggctggagtgcagtagaactgtaaaga
-aaacttctaatttttaaaatcaggaacctgataataactaaggaatcctgaacagagtgt
-tggtagaaatacagatgaaaaaggccatttggatgaggaaatgaggaagatattattgga
-caatggaaaaaaggccatgttgttataaaatggcaaagaacttggctgaattatgtccac
-gttctagtgttttataggaggtagaacttgtgagcaatgaaacggaatatttagctaaag
-ctatttctaagcaaagtgttgaagctgtggcttggctcctcctgactgcttatagtaaaa
-tagaagcagaaagaaatgagttaaagatgtgacttttaagcgaataggaagcaaaacgta
-aagatttgaaaaattttcagcctatccatattgcaaagaatgagaaagaatgtttgggag
-aaaacaccaTAGTCTCCATAAGGAGACTGTAATGGTGATGAACGTAATCAGCCatcccag
-caggaaaactgccgtcttgaattgaaggggaaggagatgggaagggatgaggaaggaAAG
-CTGTCTGACTTCTTGGATTTTTCAGGACAAGACCAGAGTGCAAactcttcaagacaaggg
-aagaatgaccctgaaggcaattcagagatcatcaaggctatctcCTTGCTTTCAAAAGTC
-GGGAGCATTGCCTTGCATTCAGCAGGTTAGAGGGCCTCTGTCCAAAGCCATGGAGGAAGA
-GCTGCCCAGAGCTGTTGGTGTGGGGCTACCCAGAGCCCTGGGAACATGACTTCTGCGGGA
-TAGAGCTGGAGGGACAGGACCACCACCCCAGAGGGTACAGAGGGTGGGACCACCACCATT
-GTGGATCTGGAAGGCTGcctcagtgggcctggaagcagagcatttaatgaactaaaaatg
-atttttcttgagccttaagatctcatggagtttgccttgtagtttggatgtaatttggat
-ctgctattcctttcttctttcctatttctcccttttggaatggtctatcctatgcctgtc
-tcaccattgtattttggaagcagataacttgcttgatttcacaggctcaccgctggagaa
-caatttgccccaggatgcatcacaccttgagtctcagccatatctgacttagatgacact
-tagataataaaactttggattttagacttcagagttaatgctggaatgagttaaggcttt
-tggggctgttggaatgtaaggaatgaatgtattttgcatgtgagaaggatgtgaatttgg
-cggggGATGGGGACGGAGGCAGAAtgctatagactgaatgtttgtgttcctccaaaattc
-atgttaaaatcctaacccccagtatgatggtattaggaggtgggcttttgggaggCACGT
-TAAGGCCAGTTCATTTCATGGTCACAAGATGACATGCTTTTCTGTTCACACTGGAGGGGA
-AGAGGAACTGGACTTCCTTTCCTCTTAAGAAAAAGGAagcagcaaagttttccataccct
-tccagcaaccctctccttaagtctcattggccagaattgggtcatgtgcccatttctgaa
-cGATGGGAGATGTTAGTATTAGACCAGTAAAGACTACCTCTTAAGCTGATGTTCAGTCCC
-CAGATTGCGTGGTTGCTAATCCAGGAGAGAGGGGTGGGGTGGAATGGTTATTGGACCCAC
-ATAACTGGGCTGGATATGGCTGATGGAGACCCAGCATTCTTTCCCACCTCCCTCTAGGGT
-GCCTTCTAGATTGCCTAGTTGGAGAGTTAAAAACTCTATTTCTCAGATCTCTTTGCAGCA
-AAGATACTAACAGGGAATTAAGTTCTACCAGTTAGATGTACTTTCATGAGACATGGATGG
-CAGAGGTGGGCCGGGGCCATCTTCCATCTTTTGACTCTTGCTACTGTCAAGATTGTCTTG
-GAGGTGTTAAGATTTTCTGTAGCAGTGTTCCAGCATTGTGCCACCAGCACAGTGGGAGAC
-AGGAGATAGTTATAGAGGCAGTGGCAAGGGCCTGCTGATCCCTGGCTTGCACCTATGATG
-CGGTGTTCTGTATCTCAATAGTTCCAGGGCACCTTATTGACCACCACCAACCCCCACTCC
-GCACCCTCTCCCACCACTGACTGTGGAAGAGGCAGGTGCTGTCTCAGTGGCAGCAGTTCT
-GCAGTGGGGTTCTGGGGTCCAGCAGATGGCTCACTTCAGCCCTTACACAAATTTTGTCAG
-CAGCCAATTATTGAAGTATTAAATCCTTTCTCCTTCAAAGGAATTTAATACTTGTTTATA
-AAATCCTGTCTAGAGTGGTTTCTGTTCCTGGCACCTAAAACAAACATAATGGATCCAACA
-GCCAGTCACGGGCAGTGTATGTGGGTGGTTAAGGGATGCAGCAGATGCCTGGGTTTCTCA
-AAACCCCACTGGcgaggcgggcagatcacttgaggcaaggagttcgagaccagcctggcc
-aacatggcaaaaacctgtctctactaaaaatacaaaaattggctggacgcgggggctcac
-gcctgtaatcccagaacttggagaggccgaggcgcgcggatcacaaggtcaagagatcga
-gacaatcctggccaacatggtgaaaccctgtctctaccaaaaatagaaaaattagctggg
-catggtggcacatgcctgtagtcccagctacttgggaggctgaggcaggagaattgcctg
-aacccaggaggcggaggttgcagtgagccaagctcacaccactgcagcctggcaaggcag
-cgagactccatctcaaaaaaaaaaaaaaaaaaccaaaaacaaattagccgggcgtggtgg
-cacatgcctgtaattccagctacttgggaggctgaggcaggagaactgcttgaacccaga
-aggcagaagttgcagtgagctgagattgcgtcactgcactccagcctgggtgacacagca
-agactctgtctcaaaaaaaaaaacaacaagaaaCCACTGGAGATTTTGCAGAGTTGTGGG
-GAGGTTCCCACAACTGCTGCTGTCAAAAACAGCTAGCACATTGCTCAGGATGCAGCTGCT
-TGTCCAGAGGGGTGTGAAGGGAAGGCGGACAGGCACCAGGGAGGCAGTCTACAAACTGAG
-TGCACTGCTTACACAGGAGGAAACTGACAAAGAGGCCCCAGAGGAGGCAGATTCTAGCCT
-GCAGCTTCCCCATCCCTCAAAGCATGCAGGTTATGCTTCTTGGTAAGTCTGAGTTGAGGG
-TAGGTGGCAGGGGTTGGTGGTCCCCAGTGAAGTTTTTAGTAAGGTGAGACAGATTTGTAT
-CTTGAAGGATCACTAAGGCAGCTATCGAGGATGATGGATTGGTTGCcttgaacacttttg
-gtgacaggcagctcagaagctctaggggcaagtcactgtttttggacaactttccagctg
-agccaaagtcaacctttttgcctgcttccactcactgaATATGTGACCATATATGACTAG
-GCAGAGCAGTAGGGGGTGAACTGGGGAAGATTATAGGGGTTGTAAACTGGCTGTCAACAG
-ACACATGTGGACCACAGTTTTAACTGTTTGGTGGGTGTAGTTAATTTGAATCCTATTTCT
-CTAAGGTGAGACACTCTTTCCAATTAGTCACAGGCTTCACCTTCCCTAATGTCTTAAGGC
-AACTGGCTTCACTCACATGTTATTAATCTGGTTTTTAAACCCTTATTTGAGGAGTATTAA
-GGATTGAGGATGCCTGAGAACTTGTAAATGCCAAGGGACCCTTGGGGCTGTGTGACCCTT
-GGTGGCAGCTACAGGCTGGTCAGGCTACAGAGAGGAAAATGGAGTGGAAAAGTAGTATCT
-CTCAGATGCCCTCCCCTTCGTCTCATTCCCCCCCTTCATCCCCACCCCTTGCTCCAATCA
-GAAGGTCTAGAGGCGATGGTGAGTGGCCAAAGTCCCTTTAATATCCCTGAATTGCGTTAC
-AAGTAATACTGCTGGAGGTGGGGAAGGGATGGGGGTTTGGGGGTGAGTTGGGATAGGACG
-GAGGAGGAGCGCCAAGCGCTCATACAAAATATGGCCAAAAGGCTTAGCATGCATGGAAAA
-TTATTGCTGTCAGAAGTTGCTATTTACAGGGTCAACGCCTCCATAATTGCTTCTGCTACC
-CCTCTCCCTCCCACCATCCCTGCAGCCTCCCTTCCCGCTGGGCCTGGAGCTGAGCAAAGG
-CCCATTCACCCCTCTGGAGCCCTAGGGAAGTGCCCCTGCTGCAGGGGTGCCTCCAGTCTC
-CCCCCTCTTTTGTGGCTAAGAGGAGGGGAGAGGAGGATCTGAGAGTCCAGGACTCCTGCC
-CCCAAGCTGGCTGCAGAGCAATGGGGCAGAGGCGTGTGCTTAAAGCGGAGGGGGCCAGGG
-CCCGTGCGCGTGGAGGTGTGTGCTTCGGTCCTCGCCCGGGCATGCAAAAGCGCAGCGGAG
-GAGGTAGTGGCGGCCAACGGGCGGGTGGCTGGCAGCCCGGCCCCTCTGTCCGGGAGAGTT
-GCATAGACATGGCCGGGAGAGAGCGCCCCTCCCGGGGAGCAGGCCAGAGGCCCCAGCGGG
-TCCGGGGCTCAGTCGGTCCCTGGAACCTGGGGTCCCTCGGGAAGAAGAATAAACAGGAAA
-CAAATCGAAGAGGCTCCTCTCTCCGGGCCGCCTGGAGTGGCAGGGGAAGGTTCAGGAAGG
-TGGGGACCTGCCCCACGCCTGGACCTCCTGATGCTCCCTCACCCCCCCAGTTGAGGGTCA
-GCAAGCTGCCCCCCCATTCTCGAGTCCCCTTCCTTAGCGAGTGCAGGCTCTGAAGAGGGT
-GGGTTTCTCCCGAGACGCGGGGGTGTGTGTGGTGGGGGCAGCCCTCTGTGGCCTGTGCTG
-TCCCTCTCCTTGCCTGGCTTCCTGACCTCCCAGTCCAGCTGGGGAAGCCAGACGGTCCCT
-GGGTGAGGCCAAGAGATtaaatagaataataaatagataaataaataaatacacaaataa
-ataaCTGGAAGGACCCAGCCGGATGGGGGAAGGGCATTGGCGAGGTGCTCCAGACCTCCC
-CCCAACAAGTAAGGAAGGGGATCTGTGGCCCTGGGGATGGGGGAAAGTGCTCAGAGAATC
-TGGGGGTAGGGCAGCTCCAGACTGTGGAAGCCCAGGTTGTGCCGGGGTGAGAGAGGGGTT
-ACATTAGGGGGCAGGGCCCTGAAGTGCCCCTCAAGCCCCCTCCAGGTTAGGTAGACTCAG
-AGGGGTGAGAGCTGCTAGAGAGGTGAGGGCAGCTGGAGCTGGGGCTGGGAGTGGGTGATG
-AGATCCCCATGGACTGAAGACAGTAGGAACTGTGTGTGGGAGTGGGGTGTGGGGGTGTGT
-GTGTGTGTGAATGGCCAGACCTAAGGCCTGAGCATGGATGGGATCAGGGACAGATCGGAG
-ACTTCAAGAAGGGTGAAGATTAGATCCCCAGATGGACACACTCTGGGAGATTCAGCAGAG
-GCCAGAGGGATGGTCTGGGGTTGGACTGTGGTCTCAGGGCGGCAGGGCCTGCGTCCAGGT
-GTGGATGGGGAAACTGAGGCAGGTATGGGCGTCAAGGGTATAGGTTTGCGGCTTTCATTG
-GGGGCTCCAGTAGAGGAATGGTCAGAGAGATTCAGCTGAGAAGCGAGAGAAAAGATCTAG
-AAGTTAGAAGAGCAGCGCGGGGTCTGGGAGGGAGAAATTTCCGGCTCTGGGGCGCGGGAG
-AGGTGCGGACCTGGTGCCTGAGTTGGGAGCCTTGAAGGCGCGGACAGGGGGGTCAAGGTC
-CGAGGGATGGCCGGAAAGGATGAAGTGGGTCGGGGGACGCTGGGGAAGACGGTGTGGAAG
-TGAGTCGTGGGTTTGGGGGTTGGGGAGAAAAGTTCCGGGCCGGGCCGGGGGTCCCCACGA
-GAGGGTCATGGGCAGGGAAACGCAGCCGGGGCTGGGCGAGGGCGCTGCGGGCGCAGGTAG
-GGGGCCCGGGGCGCGTGGAGAGCGAGTTCCGGGCGCGAGGGCGAGGCGGAAGGCTCAGCT
-GGCCGGGCCGGCGGGGGTCGGCGGGGGTGGCTCGGCCGCCTTGGCGCAGGCCGCCTCGCA
-GTGCTTGTGGAGGTAGGACTTGAGCGCGAAGCTCTTGTCGCACTGGCGGCAGCGGTAGTG
-CTTGAAGGCCGAGTGCGTCTGCATGTGCGCGCGCAGGTTGGAGCGGTCGGCGAAGGCCTT
-GCCGCAGTGCGCGCAGCCGAACGGCTTTTCGCCGGTGTGCGAGCGCATGTGACCCTGCAG
-CAGCCAGGGCCGCGAGAAGGCCTTGCCGCAGACGCCGCACTTGTGGCGCAGGTTGTGCGT
-GAGCAGGTGCATGGCGAGCGCGGGCATGGACACGTAGGCCTTGCCGCACGTCGGGCATTT
-GCGCGCCAGCTGGCTGTCCAGGCTGCGGTGCGTCTGCTTGTGGCGGCTCAGGTTCGACGA
-CGTGGCGTAGGTCTTGCCGCACTCGGCGCACGCGTGCCGGTGcccgccgcccgcctgcgc
-ccccgcgcgccccgcgcgccccccggcgccccccgcgtctcccgagccccccgcgtcccc
-gccgcccccgccccgccgccgccGCGAGCGCCCGTCCGAGATGAAGAAGGCGTCCATGGA
-GTAGCTGTCGGTCACTGCCGCCTCCCCTCGGAAGTAGCGCGCCGACAGGCTCGACTGCGG
-GCTTTCGGGGTCGCTGTACTCCTCCGGCGCCGCCGGCGGGTACGCGGGCTCGGCCGGGGC
-CAGCTCCAGGCCCGGCTTCTGGTCCGCATCGTAGCTGCTCGGGGGCAGGCGGTGCGGGGC
-GTACCCTGGAGGGGGCGAGAAGTGGAGGGGCGGTGAGAGGAGGCGCCGAAGAGGGTTTCC
-CGCTTTGAGCGCGTCACCCTTTGCGCCTTCCAGCTTGGCGCCCCTGTGGCAGCTCCGACA
-GTGGTGGTCTCCGACCTGCACCTCAGCTCTTCCTGTCAGGCAGCCTGGGTTCAATTCCTT
-CCTCCATCGACGGCAGTGCAAATAGCCGCCACCCCAACCCACGGAGCATGGGGCCAGCAC
-GGTtgtacagagcgtaccttcactatccagtgctcacaaccgcggagtgatggtcttata
-atacccacgctacaggtagagaaactgaggcgcagagagatgcagcagtctaaccttaca
-gtcaggaagtgatggagcccttgccagtgtgaccctgaagcccatgctgtctctattcca
-acaacatgctgccGTTGCAGCCCTGtaacttctctggatctcagttttctcatctgcaaa
-atggagcttgtgattggacacctccttccagggtcgttggaaggactgagtaaagtgacg
-ataataagcgtgtgttaagctcttactgtttgccagactctgcctcggtgctttacgcat
-gttaactctaatcgtcacagacccaaggaagtcggcactattgtaatccccatttgatgt
-gtaaggaaatgaacaaagGTGGGGGAGCATACAGTAATTGCTATATAAATGTTAGCTATT
-ATAATTATGCTTTTTACTTGCTTGGAGATAGTTTCctcccccaccacactgtgagctccc
-catggttggatctgtgtgcccagcacatgcctggctcaaagtaggtgtgcgatgaataga
-tgttgcatgaaggaatCACAATCCAGTTAGACCCACCTGCCAGGGTTGCTGAAGCATTTA
-ACAGGGGTCAAGTGTGTGGCATGTAATAGGTGCTACAGAAAGGGGACTTCCTCGCACCTG
-CTCCCAAGCCTGCTCTAGAAGTCGTCGGAAGTCCGCAGTGAGAATTCCCCTCCCCCTCCT
-CCTCCCACTTAGCTGGAGTTGGACCAGGAATCCTGTCTGCCAAGGGTTTGAGTGATTGGT
-GGGTGGGCAGGCTGGGGTCTCCCTGGGGATTCCGTAGGGGATTCTCATGGGCAGGGGCCA
-TTCTGATTTGCCTCTGCCTCCCATGGCCTAGGCTGGTCCTAGCACCTTCCCTGAGACCCT
-GGGGGCTGGGCTCCCTGGAGAGTTTCTGGCAGACAAACTTTTCATCCTGGCACTTGATGG
-GCAAGTGATTCCATTGTTCTGTGATTCCACAGAACAATGAAGGTTAGGTCCGTTTGGGAG
-GTTTCCCACCTGGGGAGTGGGATTTGACCTTCTCCTGGTGACCCCTGAGACCTGTAACCA
-CTCCTCCTTCCCTCCTCCCCTAGCCTCCTTCACTGAAGTGAGCAGGTGGAGGAGGGTTTT
-GTAAGGGGAAACAGGGTTCAAGATGTTCAGACTTTTAGCTGGGTACTCTGGTCAGCTTTC
-GTTTCCCACACAGCCTGGCTGATTCAGCctccaggcctttgcctctcatctggagtttgg
-gatggacacagggtgaagtctgtgtgcccctgaaggcaagggtgtgcccttatttttacc
-tctgtcccttcagcagccagcacagggccctctgcacacagaagtcattgtggattatgg
-aagtggatgaCTCGGAAGCGGGGGGCTCTGTGGTTGGATGTAAAGGGGGATAGTGATAGT
-GGCAATTTTTTAATCTGGGGAGAGGAGATGCCCAGCCTCTCCGCACCCTATGTCTCCCGT
-CCCATCTGCCTGTGGTCTGGAGGTCCCCCTGCTTCCCACTCCGGGAACCAGGCCTGGTAC
-TCAGGTCCCAGAACATTCAGGAGTGTTGTTTCAGACTGAGTTAAATACCCGTCAGGCACT
-CCCAGACCCCCCTCCTTCTCCTTCTGTATTTCCTCACGTTGTAATTCCTGGTGATGataa
-taatagctaatattcactgagcacttactgtgtgcaccaggctctgtgctaagtgcttcg
-ctcccatcatctcactgaatcatcacaaaactactctcatcacagataaggaaactgagg
-gacagtgtggtgatggcacttgctccaggggtggagcaaggattggaatccactgccCCC
-TTGgtttcccacatactgggaggtcctccaggagggggctgtggctgagctgttcacctc
-ccattcccagggccctagctagtgggcacttaataagtatttgtggaatgagtgaTGATG
-ATTTGCGAGGCCAGCCTCACTCCCCAGCCTAGCAGGACCTGGTATAGACAGTCCTGTTCA
-CCTGGTCTCAGGGCAGGTCTGCATCTCATGTGTCTGGGGCCATGGAAGGGGAAGGGTGGT
-TTGGTTCTCCAACACAGATTCCAGCTGAGTGCCTTTGGGTGGGTTGTGCTTCAGGTCCTT
-TTTTTTTAAAATGGGATTTATCTGGAGGGGTGACTGATCACGTAACCAGTGCTTTGAGTT
-CTATTATTAAaggatgacatattggataagagtaaaactttggtgccagacggcctggat
-tgttttggctctaccattcccagcagtgtgaccttggccaaacgatttggcctctgtgtg
-actcTACCGTTTCAGTAAGGGGTCTGCCAGTAAACAGTATATAAACAaatgataaccagc
-actctcagagcactcctgtgtcaggcactcttacaagggctttccacacatgaaagcatt
-ctacccccatgacacacaaggtggtaggtacccttttatagaagaggaaaccaaggcaca
-aggaagctaagtaacaagcctaagattgtgcagctgataagttagagccaggattccagc
-tcagTGGCTGGCACATTTTAAATCCACCACGCATGTTGGCTGTTATTATGAACAATAATA
-ACAATCTCCCCAGATGGGTTTCTGTGCTGCAGCTTTCTTGGCATCTGCCCCAACACATCG
-TGCTGCTCCTCTCTGGGCCTCTGTTTCCTCACCCGGGATGTGTAATTTCTATTTCACGTT
-CTGATGGGAAAATATCTGGTGCATAGTAGGAGCTCCATCAGTGAACCAGAGCGTTCTCCA
-TGAGGTGCTCTGCCCATGGCGCCCTCTGCTGGTGGCCCTCAGCGCTGTTGACTTTCCTCC
-TGTTGCAAGGGGCTCTTTATGAAGAAATAGGGGTGCCTTCAACAAAGGCTGCTCATTTGC
-CTAGGGAGGGCTGCAGAAGTGTCTTCAGGATAGGAATTGTGAGCCCAGACCAGACACCCA
-GTCAGTGGATTTTGGCATGGGTTGAGAGCATCCTGTGAGAGTTTGTGTGGTCATGTTAGG
-AGGAGGTGGTTctaacttgctttgtgactgtggccaggttgcttaacctttctgggcgga
-atctatacatgacaaagatggactggaatggtctaaagaccctttctgcATCATGGCTGA
-ATCAGTCCCTCCATGATGCTCTTTGTCCCCTCCACTCCCAGCTCCTCCAATTCCACCCCG
-TTTTCCTCAGATTCACAGACATCTCCctaggcaaccttgggcaagttacttaacatcttt
-ctgccacacctgtataagggagttcataataaggctgaataaatgaatgcatgtaaagtg
-cttaggacaatgcctgacacataatagctgccctcttgagctgttattattGTTACTGGT
-AGTATTCCTGTGTTTCCTGGTGATATATCCTTCTAATCTGCCAGAGAGTAGGAGATACAC
-ATGGGTGTCTTAGGCTgctgtgtgaccttgagcaaaccacctcacctctctgagcctcaA
-CCCTGGAGACTCCTTTAGGACACTAAAAGCCATACTTTAACCTAATGCATGGAACCCAGA
-CAGGTACCTTCCTCTGCCCTAAGAGTGACTATAGAAGGCTGAGATACCTATCCTGCAACT
-GACAGGGTGAGACAGGACTCTTGTTTGGGTTCCCAcagagatagggatgagctgggattc
-agagaaaagagaatctcaggtgagatctctcatcctagcccttgaattcaggccgtagcc
-atgtgaccttgggtaagtcgcataacttatctgggctcaaatcctccatttgaggaatgt
-ggaccagaggcacccctgtcatgtagggatatggggaggGCCCAGAAATACTTTGGAGAT
-GTGCACATGTCACCTGGAAATGACTTTGGTTTTCCCTGCCCAAGAGTCTTGATATTTTAG
-ACTGAAGGTCCAGAATCTGTCTTTTTAAAAATCGGTACTCAAAGGAGTGGTGAAAGGGAA
-ATTTATGAGAACTAAGGTGCTGGGCCCTCTGCAGACACTGTCTCATTTAGCTGCCTGACC
-CCCTGCGGGGATGGAGGGGGATGTGTAACAAATACTGCTACTGCTACTGCTGGTGCTTCC
-AACTAGCACCAGCCTCCCTGTGAGCCAGACATTGCCCTGTGCCCAgaggcccagagaggg
-gagaggatttgcccaaggtcactgagagggaggcggcaggtttgaaaccctccaaggcct
-gtgttttttccaaaacaccaGAGAGGGCATGGAGACTTGCTGGGGAAGAGATCTTCAATT
-GGTAGGGGAAGGGGTGGTGCGTTTCCTCAAACACTCCCTAGTTAGCCTGTGGTGGGGTGG
-GTGGGGGCACGGGGTGGTGGGGGCATGGAGAAGCTGTTGTGGAAAATGCTTCAGCCTCTT
-GTAAGTATTTGTAAATCATACTTAATaacagtaatgcctatcacttactgagcacttact
-tggtgcaaggcatcctgctaaatgctttgtgcacattagctcatgtctaaggtcacttcc
-ctccatgcccttgttctgcagaagctgaagcccagacaaaggccttgacccacctcaggt
-cacaaaacaagttctcatcagagctgggttggcctccttttctttcctttttttcagtcc
-aggactcctttccccagtctctcccagACTCCCAAGGTGCCAAACTTTCTCCAGGGAATT
-CCTAGCCTCAGCCTCACCTCTCTGTCCTAAAATGGGCAGAAAAAGACAGGGGCCTGGTGG
-GGGGCCAGCTTCCCCGGCGGCCCACTTTCCTGAGGAGGGCTGGGCCCTGCTGGGTGGTAG
-GGGCTGGAGGAGCTGCTGTATGGGTATATTTAGAGCTGCTTCTTGCTGTGCCAGGGCCTC
-GGGCCTCGAGAATCAGCTCCAGCCAGCTGAGCAGAAAGCCAGGTCTGTCAGCAGCAAAGC
-GGGATAAAAATAGTTTCTCCTGTCTGCTCACAGAGCTGGGCAAAGGGGCTGGGTACCTCC
-CCCTCCCCTTATTATAGCATCTTTGTTAGCGGTTCCCTGGGCACTGGACCAGAAATGACA
-CCCACCTCCTCCAAAGGCCTGGCAGCTGGTACATCTGCCCACGGGGAGGAGGTCCCTGTG
-CCCAAATGAGCAGGGGACAGAGTGAGGTCTGGCCCAACATGACCAACGCTGCATGGCTTG
-GGGCTGATGCCCACTGACCCAGGCCCAAGGAACTTTGAGAGAATTTCAAGGCTTTTCCCC
-ACCACCCCCATCTCTTGGAATTCCCCACATTCTGGTCTTTCCTGACTGTGACCCAATTCC
-TGTGGCCTACAGGGAGGTCCAGAGCTCTGCAGGAATCAATAGGAAAGATTTTTCAGGGGG
-GTATGGAGATGAGAGTGAGTGGCTCAGGGTCTTCATTTGCCCAGCCTGGGTTCGTAGAGT
-TGCCTCCTGCTCCCTCGGGGGGGATCTCCAGTGGGCCCTTTCTGGGCCTCGTTCCGGAGA
-CTGGGTGTGTTGTGCAGTGCTCCACCTCTTCCCCCGGCCTCCTACTTTCTGCTCTGCCGC
-CTCTCTCTCTAGAAGGGTGCACTCAGAGGGCCCATTCCAAACCCCTCCCTATCCAAAGGC
-TGGCCTGGCAGTAGACGCTTCACTTCAGGGGAGTCCACAGCTGGGAAAGAGACCAAGAGG
-CCCGAGGGACCCCATCTCTCCCGGCAGAGGGCCTCCAGGCTGTGGGGGCCCCTAAAACCT
-GTGGATGTAGCACCCACTAGGGAGGTGTGACAGGGTGCACCGTTTATGCTCTtgtgactt
-tgggcaagtcacggcctctctgtgacctcagttttgcctctgtaggttggagtgaatCCT
-CCCCTGCCCCCCGCTGCCCTTTGCCCACTGTGGATTTGTGTGGCCAGAGAGTGCCTTTGG
-GATGTGTAGATTGCTGTACTGACATAAGGGACTTGGTGTACTCTCTGGCCCTCCTTCAGC
-AATCAAAGACTGAGACTATCTAAAGTGTGGAAGCTCAGCTCAGGACCCTCACGTCCCTCT
-CGTAACCCCAGGCTTTAGAGGAAATCAGGGGTTCCCAGATTCCATATCTCACATGGGCCT
-CATCATTCCACACTTCCACTGAGCCCTGTTAATTCACAGGAATATTAGATTTCTGGGTCC
-Ctagaaggtcaaagctgaaagagatcatattcaaccgtttgatattatgaaaggaaaaca
-gaggctgggaggagaggggagactaggccaaggccacacagaaggctaatggtgagtcta
-agacttgaactcagCCCAGCCTTGAGAGCGGATCTGGACAATGACCTTGGACTGGAAACT
-GGGCCTGAATCTTGATTCTGGACCCAGCACTTTGCCCTGGACCTGTTCATAGGTATTGAA
-ATTTGAAATTGGACATGGATTTGTCCTGGATAGCAGACCTGGACCTATAACCTCAGACAC
-TGACCTTGGACCTAGTCCTTGGACCTGGTCCTATACCTGAAGTTTGACGTAGGCATTGGA
-CTTGGACCTCAGATCTGTACTTGGATGTTGGACTGAATGTTGGACCTTGACCTAGACTTT
-GAACCTGGGCCTCTGACATGTCTTTAACCTGGACCTTGGACCTGGACCAAGGCCAAGTTA
-CCAGGGAAAGGGGTGGTTAGAGAAGACTCAGATGGGTCTGCTGTGTGTCCATGGGCACCT
-CCCCAGCCTTCTCTGTGCTTGCTCTTCCAAAAGACTGGGGAAGCCCTTTTGCATTGCTGC
-TCCCCAGAGGAGCTTTCTGAGGTGTGGAATGGATGTGTGGCAGCTGGGGACATTGGGCCG
-GGCTCCCGGGCTTGGCCTGGAGCGACTACCCGGCACCATCAGAGGGAGTGAGAGGAAGTG
-GGCGCTGGTTTAATGTGGTCAGCTAGATAAGCCCATGGGTAGAAGTAGGAGAGTTTCCTC
-AGCTTGCTGGGGGAGGCTTAATGTAGCTGCAGAGGGCAGACAACTGTGTTATTGGATTGG
-CATTGATCCCTCATCTGCCTGGGTTGGATGCACTCTGAGAGGGCAGGAGGGCAGGACAGG
-GCGGGGATGCAGAGGAAGGGGGGCCTGGCTCCAAGCTGGGGTTCGGAGTTAAGGTGGAGG
-GGAGGCAGACACTCCAGAAGATATTCTTGGCAGGGGCCCACAGAGACCACTGACATGCAT
-GTGGGTGGGCCACCTTCTTTGGGGTGGCTGAGAGTCCCAGTATCCTTCAGATGGGGGCCC
-CGGTCTGTGGGGAGGGCCTGGTGGAGTTGGAGGGTGAGGTTAGCAGAGGGTTAGGATGAT
-GTAAGTTGGCATCTCCCAGAAAGACTGAGTCTGTGCTCAGAATCACCCAGGGGAGAAGAG
-GGGAAGGGAAAGCAGTGGAGGAGCAAGAGAGGCATCTTACTTGAGGGGACAATGAAATTA
-GATCTATTCCCACTTATCAGGGAGCTCTGCAGAGAGACCTGGTGCTTTCTTCATTTGAGG
-GGCTCCCCTTCCCTGTTTAGGAGTTCTGTGGGCTTGGGGGGACCCTGGAGCACAGACAGA
-CTTGCTGCACCCTCTGTTCTGCCTGGCGGTAGAGGCTGAAAGGGAGTAGGAAGGCAAAGA
-AGAGCATTGCTCgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgcgcgcgtgcgtgt
-gtgtgtatgGAGGAGGAGCAGGAGTCCTCCAGGAATTCTCCAGCATTCTCAGGCATTCCC
-AGAGCTGGGGTACACCTCTTTAATTTGGGGTTCTGCATCTTTATCAGCTAGGAGCTTGTG
-GTTTCTCTGACCTCCACATTCACAGGCTCCCCCAACCCCTGCTCCCCCGACCCAGGTTTC
-CCTCCCGCCAGCCTCATCCTGACCCTGCAGCCCGAGCTGCAGGAATGGCTTGTAAGAAGA
-TCTTTCTAATAACTGGAACTATCTCCAGCCCCAGGCCTCCcccgccctccctccctccct
-ctctccttccctccctcccttgcttctcctccctccctctcctcatcttccccccctccT
-CTCTTTCTCCTTGTTTACCCAGCACACTTACACACGCTGAGAGAGAAAAACGTCGGCTCA
-GCAATTTTTCACACTTCCCTCAAATGCTCAGCAAGGTTATTTCCGGCAGAGCGGAGACAA
-CGGGCCACCAGGAGCCGGCGGGCTCTCAGCAGACCCCCAGCACCCTCCACCCGCCCAGGG
-AATAAGGGATCCCTCACTGCCCAGTCTGGCCGCACCCCAGGGAGGGAAGAGGCCCCTGAA
-AACAAGACAAGGCAGACTTTGTATTTCCCAGTCATACCTAGGCTTGGTCTCTGGCACTGA
-CCGTCCACTGCAGACACTGCCAAGGTGGCCAGGCCAGGGTGCCTGTCCTCACTATGGGGT
-AGCCTACAGAGACCAAAGCCAAGAAAAGTGCCCGATCCCAGAAATGCCGCTACCCTCAGC
-CAGGTGGCGTATGTTCAGTGGAGCCCTAAGGAAACCCTGACAGTGGCCTCCCAGCATCCT
-GTTAGACCCCTGTGCAGGCATCTCCAGTGCCTGACATTCCATAGTTGACCTtcacagaag
-ctgagcttgtcaaagttggaaggatgcttagtttatgccatcaaaactctttcactgctg
-gggaggctgaggaccagagaagggaaggcacttgcccaaggtcacacagcatgtgagaga
-tctagagcccaggcctccaaatttcaggccaggtttctggctatcagcacagccTCAGGA
-TTCCTGAGAGGTGAGGGAGTTGGTCTGGAGACCCATGGGGAAGGGGACAAAGACAGAGGT
-GGTTCTAGGGTGTTAAACCCGGTGGAACCTCTGCAGAAACACCCTGCTGGTGGCTCTGCA
-CCCGCCCTGCTTCCCACTATTCACTCAGGGGCTCCTTTCAAAGCTTTTTTTTGGACTGAA
-TTCAAGGCAAGGCATTCTCTTGCCTCCCTCCTGAGGAACAGCCTGCAGTTTTGGCTGTGC
-ATGGGAAATTCTCTGGGCTTCTCTGGGTTTCCTCAGCTGGCCTGGGGACAGGACCAACGG
-GGCTTCAGGGGGTGGAATCCCAGAGCTTTGTGTCAGTGTCAGTCCCTTAAGAGATCCATA
-TCCCAAGCTTGCAGATATTTCAGTTTCTACCAGCTTTGAGCGCACACTCTCCAGCTTTGG
-CATGGCCCCAGGTCCACCCTCTGTCCTGCCAGCCCTCAGCCCTGCTCAGCCATGTCCCTG
-GGCTTCTGACCTCCACCTCAAGAGGCCCTGTGATCAAGAAAAGAGGACAGTAGAATAAGG
-GACATGTGGGCAGAGGAGAAGGGGTTTCTGTTAAGGGTCTGGGGGATGCCAGTGGATGAG
-GGGCTGTAGCTGTATCCCTGATCACTCTGTAACTTCTTTGACCTTGATGAGGTCACAAAG
-CCCTTTGCCCAGCACTCTCTCTCTCTCTACCTGGTGTGGCAGAGTGATGGAATGTGGGTG
-AAGTGCTTGGAAATCCCAGAGGTGGAAGCCCCCATCCTCCCAGGCTCCTGTCTTTGCCAT
-CTCAGTTCCCCCCTCATCCTCAGTCCTTTCTTTTCTCctctctcaatctccctctttctc
-tctctctctttccccacccccatctctctctctctctctctctcacacacacacacacac
-acacacacacacacacacacacacaACCCAAAGCTGCCACATGTGATGTCAGATCTCTCA
-CTACCAAAGGGACACCTCCTCTTCAGACACCTGCCCTGGTGGGGGCCATCAGGGGAGAAC
-CCCTTTGTGATCCCCTTGGTGGAGGATGGGATCCACAGAAGCAGTCTCCACTTTCCCCTG
-CCTTCCAGAGATCACCCCCTTCTGCACCTGAATGACTTCTCTTGTTCCTCAAACCCTTGT
-CCCTGCAGGAACTTGTTCTGAGAAGAGATGGAgtgtgtgtgtgtgtgtgtgtgtgtgtgt
-gtgtgtgtgtgtgtgtatgtgtAGTGAGGAGGGGGCTTACGAGGAGCAGCAGGGTTGGTT
-CTGGAGGGGGTTGAGAAGCTGGGGATGGGGAAGGAGTGCAATCCAGGGGACCAGGAGCCA
-CTTTGGGGGAACCCCTCCCAGAAATCCTCTCTTTCTTGCAGTCCCCAGGACAGGCCCAGC
-CTTTGGCAGGCATGTGGCTGAGGGTAACAAAAGAGTTATTGAGAGAGGGGGTCTGAGAGC
-ACTTGTGTGACATCGGCAGGGGAGCAGGTTTGAAGGGAGGGAGGGCGCCCCCAGCCACCC
-CCAGGGAACCAACCCTGTCTCTCCAGGGACTGAACATCCAGGGCTCTTTACCTTCCCCCT
-TCCCGGGCAGCCAGCTTCTCTTCCTCAACGGGGGAGAGGGAACCCTCAAAGTGCCTTGTG
-CCTCAGTGCCCAGCGCTGGCCTTTCACGAGCAGCCCCGTCTGTGTTCTCTTGCCACCCCC
-TCACTCTAGCCCTATTTGAGGGCCACAACTTTCAAAGTCCCGGCTGGCGCGTGGCTGCGG
-GATGGGCCGACCCCGCGACTTTCCCTTTGTACGACCTAGCCCCTGCCCCGCCCGCACGGC
-CCTTGGAAAGCCCGGGAGGAGCCCACGGCCAGAGAGATCTCCTCCCGGGGGTTTCCTGTC
-GCACGCGCCCCTCCTCGTGGCCCAAGCTGGGGAGGGCCCCAGCTCCCCTCGCCTCTTCTC
-CCAACCCCCCGCCCCCGCCGGGTCCCACTCACCGTTGTCCCCGGGAGGCCCCCGGGCGCC
-AGGCAGCACGTAGGCTGTCTCCAAGGGGTGGTAGGTGGGGGCCGGCACCCCGCTGCACTG
-GAAGCCGTCCCCTTTGATCTTCTTTACCAGGAAGGAgcgcggcatggcgcggccggcgcg
-gggctcggtgcggggaggcggccggccgggcgcgATCGGCTGTGTCCGCGCGGGTTTTCA
-GCACTGGACAGCTCCCAGCGGGCTGGAGCGCGGGAGGCCGCTCGGAGCCGGCACCGGTGG
-CGGCGGCCCCGGCTCGGGCTCGGGCTTGGCGGCGGCGGCGCGCAGACAGGGGATCGCGGG
-AGCTGCGCTCAGCACTCCGGCTGCCGGCTTTATATGGGACGCAGGCTGGAGATCAGGTGG
-TCCCCTAGCAATGGAACCGCTCGGCGCTCTAATCCATCAAATGTCCCCCAGGACAATCGC
-TCCGCACACGTTCCCCTGAACCGGCGGCGGTGGGGGCAGGCCCGGAGCaggcaggagggg
-agaaagtgagggcgagaaaggcgcagagacagagagggacggagaaaggggagtgagggg
-ggcggggagaagaagagagactcggagaaagacagagacatacagggaaagagagacgca
-cacgctgagagaggtagaaatagaagcagagagaccaagataaggacaaaaagacacaag
-agagaaacagagagagaagaaagacagagaTGGAGAGAAGTAGCAACACACACACACCCA
-CGGGAGGAAAAGAGAAATCCAGGCACACAAAAAGGAAACCCCCCCAGGGATGCAAAGAAA
-GGGAAAGAAAAGTGCAAAAGAGAGGGGGAAGCCGAGGGGAACGGAGGGAAAGCGGTCCCG
-AGCAGGCGGGGTTCAGGCACATGGGGCCGCAGGGAAGGGGATGCAGAGGAAAGAGTGCGC
-ACTGGCCAGCGGCCACCCTCCCGCCTCCAGTCCTCTCCCTCTCCCCCAGTTCTGAAGTGG
-CCAGGGTGGACGCTCAGCTTTCACTAGAGTAAGTCTCCCCTCCCCCCTGCTCGGGCTCCC
-ACTGGAGCCCCCTGTTGGGTTTGGGGTTCAACTTTCTTCTTCCAGAACTGGTGGGGGGAG
-CAAGTCCCCCACGCCGATGCCTGGCCTTGCTCGGTTGGTCCTGTTCCGGTGCCTAGCTCA
-GGCGGGCGCTGCAAGAGGAAGTGAAAATCGTCCAGTAATTAATTTTCCTGCTGCCGGGGG
-GTGGTGGTTTTGACACATCCGAGGCAGTGTCTTTCCCTGAAGCGGGGAGCAGACAATAGA
-GACACGTGGACTgggaagggagaggggggaagggagggggagcgggGCTCCTGCTGGAAC
-TCTTTGCAGGTCAGCTCCTTTGTCTCTAAAAGGATCTGAGCAGACCCGCCACCCCCAGTC
-CGACCCAAACCTGGGGGAGCCCCCATATCTTGGCAGGACCAAGGAGCAGGAGAGCTCAGC
-CCCCTGCCCAGAGGGTGCTGGGCAAAGCCCCATGGTGGCGGACCTGCTTTAGCAAGTGTG
-GGATGGCCAGTGCACAAGAGTCCCAGAATCAGACTCTAGGAATTCCAGGCTCTCGCTGTC
-AATGGAATTCTGGTTATGAGATGCAAGGCTGGTGGAGTGGGGATGTCCTTTTGGGACTGG
-GTCATCCAATACCAGTTTGCAGGCTAAGACCTAGAGAGGGCTTGGAGGTGCTTGAGGTCA
-TGCAGTGAGTCAGCAGCAATTGCCAGAGACCTCAGTGGCCTCTGGGCACCACTGAATCAG
-GGCCTATCATGGTCCTTGAGGTGTAGCCCAGAAGTCTCAGAATAAAACTGGGGCCCCTcg
-tggtggttcaagcctgtaatcccagcattttgggaggctgaggcaggaggatcacttgag
-gtcaggagtttgagaccagcctgggcaacatagtgagaccttgtctctacaaatagttaa
-aaaaaaaaaaaaaattagccaggtgtggtggtgcacacatgtggccttagctacttggga
-ggatgtggtgggaggatcgcttgggcctgggagttcgaggctgcagtgagctgtaatggc
-accactgcgctccagcctggatgaaagagcgagaccctatctccaaaataataataataa
-taataataaGTTAGAGTTTCCAATGCAGGATCTGTTGGCCTTGAATATTTTCAAAAGACA
-TAAAGATGCAAGGATGTGGAAGCAGAAGGTTTGCCATTGAATTTGCCCTGTATGGTTTTA
-GATTGTTTTCCCTGACCGAAATAAGGAATTAAGGCAGTTTACTCCCTATATATAAACATT
-GAAAAACATTGCAGGTCCAAAACAATGGGGGCCCCTGATCTTGCCAAGGCCCTGCATGGT
-CTAGAGGTCCCCCACCATCTTTCCTGTTGCATTGCCTCATATCTTGCCCATGGGAAtttt
-ttttttttttgagatggagtttcgctctcgttgtccaggctggagtgcaatggcgcgatc
-acagcccactgcaacctccgcctcccaggttcaagtgattctcctgtctcagcctcctga
-atagctgggattacagggtgcgccaccatgcctggctaattttttgtctttttatcagag
-acggggtttcaccatgttgcccaTGGGACTTTTTTAAACCTCTGTCACTGAGAGTTGAAG
-TGACCACACCCTTGACTCATGGCACGcccatgcattctctgctccagccataggtgccta
-ctggtgctttgggcttgcagctctcttgacctgtataccatttccactgcccagagtcct
-tccctgcacttcaccctaggaaacccctacttgttctcaagactcagccgaggggtcact
-tcctccaggaggtgtccctgacttccatcattgcagactgggccaactcacccactggtc
-cctgagcttcatgaggacaaagactctgtcccatgtatggcttaacacACTCTTAACAGT
-GTGCATGAGGGTCttctagctcccctacttattagccataggtccttggacaagttactc
-aaccgctctgtgcctcaatttccccacttataaaatgggaataataattgtcactaccta
-agtgttgttgggagtgttagaagagttactacatataaagggcttggaatggtgactggc
-atatggtaggagttcaatGCTTGAGGGTTCTATATATGCAGTTTTGCCTGTAGCATGCAG
-CGCTCATTTGTTACATGTTAGTGGGATTctgtggaatgagtggtgaactaggcatctctg
-gtccctgctttcttgcagctgatcttgcagctgtccattcattgagtggatggacaccaa
-gcaagaaaatccttaaatcaacaatatattttcagatagttgaccagtgctgtgaggaac
-ataaaacagggtgagatgatggagagtgatggtgcctttaggcagggtgaccagcaaggg
-tctcctgggagaggtggcatgtgcacctagacttgagccagccatggaaggagcccagga
-aagagtgctccagccagaggcttcacaagttcaaaggctctgaggcaggaatgagcttga
-gcagctgaggacagcaagaaggGAAGGAAGATGAGTTCAACATGTTAGCAGGGCCAGACC
-CAGAGATTACTCCATAAATCCCAaatgaatgagtgaatgaaagaatgaatgaTTGTAGGG
-GTGAGATTCAGCCTATAACTATAGCTTACAACTGTGACTAAGTAGACCTATTGGTTGGAG
-AATAACTTTTCACTGTTTACATAGAGGAAGTTGCTTATTTGTTCAGTCATTGACAATTGT
-GGTATAGCCATATTTTTTAGTTTGTGCTGGGTACTTGGATCTCTGTCCTCTAGGGGTGCC
-TAGTTCACTGTGGGTAAATAAGGCAAGTGGGTGTCATCTAGCTCACCTCCACCTGCCTGA
-TGGTTCTACCTCTCCAACCTCACATCTAAGAGATGGCAAAACGGATCCCAGAGTCCTTAA
-AAAGGAATATAGGTCACAGCAACTTTTGACAGAGCTGGGACTGGACTGTTCTCACTGGGC
-AAGATAGTGATCCACCCCTTAACTGATCAAAGGAAGCCCCACAGAAATGGTGTATTAATA
-GGTCCTGCAGCCCACTAGTGTCGGGTTGAGGATAGAACCCCAGGTCTCTGACCACAGGTT
-GGAAGGTGGTGTGGGTGCATTTAGCATATGAGAAGAAGCCTTGAGCCCTGAAGATGAGGT
-TCCAAAATACCTTCAGAGGGGAGGAGGCCTTAAGTATGGATGAAATACACAATGGCCAGC
-AGAATTTCATCACTAGGACACCAGGAAGGGCCTTCTGTCCCCCAAACCTCCCCCCACCCC
-AGCTTACTGGTTTcaggaagttcactgtggggaattaatttctctaagtcacatgaaata
-aggaaataacttttattcccaaggatgttcgctgcagcatcagagatggtaataaaaacc
-ctgggttggagaaagcaaggagagggttgtgaagaagacgttcactccatgtagtattct
-gcagccattaaaaattctcatttggggagaaaagctcataaaatgtgttaagtgaggggt
-gcagaatacagaaacctctcacagcacgttcacaaccatgaaccaaaacaaaaataaaca
-cacacAAAAGAGTGAAATAAGGGTCTGGAACTATGGGGTTTCCCTCTCCCTTCTTTTTGT
-GTTTTCCAAAAAGATCATAAAATATTTCAGTTCagccaggtgcagtggctcacgcctgta
-atcccagtactttgggaggctgaggcgggtggatcacgaggtcaagagattgagaccatc
-ctggccaacattgtgaaaccccatctctactaaaaatacaaaaattagttgggcatggtg
-gcgcgcgactgtagtgtcagctactagggaggctgaggcaggagaatctcttgaacccag
-gaggtggaagttgcagtgagctgagatcgcgccactgcactccagccttgtgacagagca
-agactccatctcaggaaaaaaaaaaTAGTTCAACAAATATTTATCTTGAGCACTTGCTAA
-CTGTCACTTACTTCCAAATAGAAGAAATGCTGAAGTTTAGTAAACCATGTCAGGATATTC
-ACTATTCATTCTTCTGACTTTTGGGAAGTTGGCATTGTGAATTTCCCCAGTGGCAATAAT
-AATTATTAGTACATCGCCAGCAACATTACAGAGCCACCCCACAGGCCTGGCAGTGTGCTA
-AGCACTTTCCCTTTGAAGAAGGTGACCTTgcctggggctttagattgagggatttggagt
-cagcctattttcagtttaaattcctgctctgccatttcccgactgtgtaattctctgtgc
-ctccattttctcatctgtaaaatgggtgtataaattgggcctgtctcacaaggttgcagt
-gaggattaaatgataatataggcatcaagtgcttagagcagtgcctggcacacaataact
-tgataaatgttgacagttgctatttacatatcctcacttatctaagccttaccatggcct
-catgggagaaggtgctgttattGAAATGACTGGTTCATGGCTACATAGTCACTGTACAGA
-GGAGCTAAAGAGTGTCCCATGTCTTCATGGCCTACTGCCTTCCTGCCCAGGAGCCCCAGG
-TCTTGGCATAATAGGTCTAGCTGGCTGCAGGCTTAGCCCTCTCTGGCCTACCTCGTCTGC
-TCTGGCATCTTCCATATTTCAACTGTGCCCTGCCCATCAGGAAGAAGGGCAGTTCCCAGG
-GTCTAGGTGTGAGTCTCAGGGCTGTGTGACCCTAGGTGGCTGGCAGAGCCACCCTGGGCC
-TCACCCTGCACATCCATAAAGAGGGGTTGGGGCATCCTATGATTCACTGGCTTCACTCTA
-TGGGGTCAGgaaggagcactgacctgggagtcaggagcccagttccagccctgcttctgc
-tccctttgccctcccctttgggccccagctttcttgtctgtcaaatgggaatgggacaag
-atggtccctgagctgctgtccagACCCGGTAATGGAATTCTGTATGAATTCCAAGGAGGA
-GAGTAGCCACAAATGCATCCGCTCCACGCTGATGGGGCTCTCTCTCCGGTAAGCTTCACT
-TACTCTGCCATTTCTCCAGTGTATTTTATCAGACCCACCTCCTCTGAGCCAAAGAAAAGA
-GGGTAGGAGCAGGATGAAACAAACTCACAGCTCTGTTCATTCAGGCTCATCACAGAGATG
-ACTTGCCCAAGGGCATGTGGCAGGTCCTCTGAAATTTGAGGAAGGCTGTGTTTTCTTTtg
-tgtcactttggtcctccgggaagcagatgtgaaaatggaggtgtaagtgtaagagattta
-ttgagaaaacaccgtgagaaatggaggagagccttcagagagggatgcaggtctgatact
-gtgaaaggagaggtggaataaagaaagattggggaagaggagcctcaggccatggtgcag
-gtctaaggaagtcctagccaacccaacagggagctcctgtgcaaagatttcctgtagagg
-agtcccgtgctcgacagaagggcagaccctagtttcccaccatgctcagtcatcagccgg
-cctgtcctggaagagtggctgtgctgacaactatggcagattgcaaaggtgttgcagctg
-gaggctctcagtgactgtagtccagagaagatctgagtggcacctccctaaggctgccac
-aTGTTTTTCTTTATTCATTtaatagacacttacagaactctgggccatgtgccagttact
-gatctatgcactttacaaatattaccttagttaatccttaccctcgccttttgagacaga
-tggtatttttagccccattttatagagggagaaactgagcacaaagaggttaagtaagtt
-gcccaaggtttcacagccagtaggtgataagccacaaatccaacccaggcaagctgcttg
-gaggctctgctctgaccactccaccacactgCCTCCTCTCCAGCTGCAAATGCCTTGGTG
-GCAATTTCTGGGACCATTTCCATTTTCATTTTTCATTGGCTCAGGACCTCACAGCCTTAA
-CAGGAAGGGGCCTACTGTGGTGGCTGGGGGCATAGCAGGGTCCCAGCTCCCCCTGAAGCT
-TCTAccttgctccctcaaagacttccacctcaaagcctttgcatatattgttcccactgc
-ccagagcactcttccacccccttccttgcctaggtaacccctcctcCCATCGCTCCCTTG
-CCTGACCCCAGGATCTAGCCCAGGATAGGGGTGATATGTAGTGGAAAGGAGCTagttgac
-atttattgagcacttattatgtgctaggagccaagtccagccctttacatagattgcctc
-acttaaccatcataacaacctgtgagtgtggcccatggctatccccattttacagatgag
-gaaaccaaggctcacagatgcaaggtgacttgcccaaggagacccagctaggaatcagtg
-gtgtcagtatttaaaccaggctgcctggctacaaagtcctgatcttAAACCATGAGTCCT
-TCCCTCTAAGAGGGCAAAAGATACCAATGCTAGGGTGGGTAGGTGAGGGCCCTCCAAAGA
-ATGTCCCTCCCCTtccccctgccagggctgacagctccttgagtgggattccggatctgc
-tccattcattgccgcacctccatcgtctacccagagccgggtaaatagtaagtgctcagt
-aaatacatcaattgaatgaataaaCTAATGAGTGAAAAACCTTCTTGCGACCCGCAGTCA
-CCTTGGTCCCCTTTGACCAGAGCCAGGTTGACGTGTCAACCGTCAAGATATCCCTCTGTT
-TTGGGTGATAATTAGATTTCTATCTTGACTGTTACAGACATTGGTATTCCTCCATTAAAA
-TGTCTTTCTTTCAggccaggtccggtggctcacgcctgtaatcccaacactctggggggc
-cgaggcgggtggatcacctgagttcaggagttcgagaccagactggccaacatggtgaaa
-ccctgtctctactaaaaatacaaaaatcagctgggcatgatggggcgtgcctgtgatccc
-agctactcaggaggctgaggcatgagaatcgcttgaacctgggaggaggaggttgcagtg
-agccaagactgcgccactgcactccagcctaggtgatggagtgagactctgtcttaaaaa
-aaaaaaaaaaagaaagaaagaaaaGAAAAAAAGTCTTTCTTTCAAAGTTGGAGACATCCC
-TAAACATTCTAACTCCTGTCCCTGACAAGGTCCCATCTTAAGCAGGTCTCTGAAACCTCT
-GGAAGAAGGAATTGGCTATCAGGAGTCTGATCACCAGGCTGCCTGCGGGGTCAGGGTATT
-TGGGGTGGGCCTCTGGCATGGTTTAGCGGTGGGCTGGCCAAAAGCCCCTAGACAAGAGCC
-CACCATTCAAGCAAGTGGGATAACTCAGCGTTTGGGCCTGGGTCACCCTGAGCCAAGttt
-tattttttatttttattttgtagaggtagggtcttgctctcatccaggctgtagtgcagt
-gttgtgatcatggcttatggcagccttgaactcctggggtcaagtgatcctcctccctca
-gcctcctgagcagctgggactacaggtgcatgccaccatgccctggctaatttttaaact
-ctttgtagagatgggattttgctatacttcccagactggtctcaaactcttggcctcaag
-tgatcctcacgcctcggcctcctaaagtgctgggattatagatgtgagccactgtacctg
-gctgagccaaattttaatcctggctctgcctcttcaagctggttggccctgggcaagtta
-ctttgcctctttgcagctctatttcatctctgtaaacagaggccagtgggagcacctgct
-aagtagggctgtAGGGGGCTTCATGTATAGTCAGCCCTTGGTAAGTGGGAGCTCTActtg
-aagggcctttgagataacagcattgtctcctccccacccccatttgacagttgtggaacc
-tgaggcatgggacagggaaatgctttccctggaacattcaggctccctgccaagtcagga
-tgggcttcctcactccaaggtggcctctctTGCCTCCCTCTCTTCCCCACCAGCCGAGCT
-CAGAACCATGCCTGGGAGATGCTGAGGTGGCAATGGAGCTGCAGAGTTGGCATTTCCAGG
-CTCCCAGGACTCCTGGCACAGAGGAATCAACCCCTCTCAGCAGCCCCGGCTCTGCCTCCT
-GCTCCCTGCCTCTGCTCATATACCAGCTGGGACTCATCAGCTTCTAGAGAAAGCCAGGAG
-GTGGCCCAGGTGCATGGAGGCAGGGGGCTGTCAATATTGACCTGTGCTTGACCGCAGACT
-TTGCCAGTGGACAGGTTGCTAAGGAGTCAGAATGTCCACATGCCCCTAGTGCTCATCTTC
-CTAGCCTCCCATCTCACCTAGCTGCAGAGGGGGAGGGGgagcacaagagttgaaagcgtg
-gatgatctgggttcacttcggctgcttaccaacaagttacccagcctggggaagtttccc
-atcctctttttatctcagtttcttcaactgttacatgaggatgttgatactaatggctta
-tcttgaagggcagatggaagatgagtgaggtgtttgcacacagccagtgctcaataatat
-tggccattgttAATTCTGAGGCTATCCTCTTACAGTGACCTCTTGGGCCTTTCAGCCCCA
-AGGAGCCTCTCCTCTCTCTGACTCCTGTGGCTCTGTCAAGATCCTGCAATGAAATTCTTC
-TGGAACCCTATCCAGATGGTGAACTCTTCAAGGGCGGGGACCCCATACAGGTGCCCCATT
-ATAGGCCTGGTACACAACAGGTGCTCATGAAAAGGCCTGCTTGGCTGTGATACtacatga
-acttacagaaccctcacaactacttttggaggcatatgacatgattatccccttttataa
-aaagggggacagtgggtaacatcgaggtgaagaaattgcccaagcagctgggcgcgatgg
-ctcacgcctatagtcccaacactttgggaggctgaggtgggtggatcatttgaggccagg
-agttcaaggccagcctggccaacatggcgaaaccccatctctgctacaaatacaaataca
-aataataataataataataataataataataataataataataataatagccaggcatgc
-tggcatgcacctgtaatcccagctactgaggctgaggcatgagaatcatttgaaccggga
-ggcagaggtaagagggagccaagatcgggccactgcattccatcctgggtgacagagtaa
-gactctgtctcaagaaacaaacaaacaacaaacaaacaacaacaacaaagaaaaagaaag
-aaaaaaattgcccaggggctcacagctataaatctgcagatacttattgtgacctgccat
-gtgccagacactgtgctaagagctggggacacagcaatgaacaagacagagacctgctct
-catgtggcttacatcctgctgagccaagagtaggtagatatgccaatgtcctgtcataga
-aagcaccaggcagggaaatgggcaaagacagagagaggtggaggccgggcgcggtggctc
-acgcctgtaatcccagcactttgggaggccgaggcgggcggatcacgaggtcaggagatt
-gagaccatcctggctaacacggtgaaaccccgtctctactaaaaatacaaaaaatcagcc
-gggcgtggtagcaggcgcctgtaatctcagctactcgggaggctgaggcaggagaatggc
-gtgaacccgggaggcggagcttgcagtgagccgagatcgcgccactgcactccagcctgg
-gcgacagagatagactccatctcaaaaaaaaaaaaaaaaagagaggtggagcgagagcca
-ttttagatagggtagtcaaggaagacctctctgaggaggtgacttttgtgtagagtccag
-aatgCAGCAAGTGCTGGGTGAAGCCTCAGGAAATCTGCTTTAGCATTGCTGTGGCAGATT
-CAGGGTGGAATCCAGGAGATCCCAGGACTGGTGGTGCCTAGAGCCCAGTTGGCTAGATCA
-ACTTCAGTGTGGATAAATGACTCCCCTGCCCCCGCGAACTTACCTTCCTGGAGCAGTTAA
-AAGAACGgggcacatgacctagattctctgagcttcacttttctcatctgtaaaatgggg
-attgaaaagcatagcttacaattctgagagctgagttgattaacagagatggtccatgta
-aaatgctgggctcagagctgggcTGACCAGATTCACCTAGTCCTTGGTGGCTGGAGTGGG
-CAGGTGACCTTCCTTTTGGCCGTCCAGCACCCTCCAACTCCTTGCTTCTGAGACCTCACC
-TCCCACTCATGGTATCATTGCTGGCCTTCCCAGCCCCGTCTTGGCCAGGGGGCAGTCAAG
-TGACCCAGATTAGCCTCGTGccattctgttgagggtgtggtggttgctacattgagtgtc
-cagaggtagcaaggactaaagtcctggtgtcagcatccagcgttggtgtcagcagcacga
-gctctgtcttggggacccgtggtgtcagcagtgaagtctccctcaggccagggctttggt
-ctgatttgagggcttttttcttttctggatatgaagcctgtaagccttctgaccctcctg
-gagatcctTCAGGCACGTCTGCAGCCATGGGTCCTGGATGATTTAGCAGCTCACGCCATT
-GTCTGGAAACTCCACTGGTACTATTTTTCTCATGTTCAGCTCTCTGTGCACAGACTCCAT
-CCTTCTGGCCCAGATGGCCCCTTGGGGATATGCACATACCAAGTTCTTTCCACTGTCCTC
-ACTTtgagggcaggggcctgggttgttcatttttgtgtccccagatcctagcacagagcg
-gctcagaggaaaggctcaatgcatgtccatggtgtcaacaaatCAGTGGcacaggataca
-gtttccacacatctccccatcctggttgcttccccgaaccattttccagtctgtcagtgt
-tcttctgaatatacaggatccagaactgagcacaaaactccagaaataggtgaatggagc
-tgagcagaatgaaactgtcacctcccttaccgtagataccggacttctaattacatgacc
-agacatttaataagcttgttttgTTTCCCTGGGTGGCATATATCAAGCTACTAGCAAGCG
-TTTTGTTTTCATGGTCCTCTACCCACATATTGTTGCAAAACCTCACTTTACTGCCCTTCT
-CCCTTAATTTCACGCTTATAATAGTATTGCCCCTCTCTCACTTCCcaggaatgccaagtc
-gattacagctcaagagcccaatcttgactggtccgtagcctggaacatggtgctgagata
-gatgctgtaactgagtttgggctcactgagaaagactgctgcaattgattaacgatgtct
-gccaAGCTGTGTAAAGTGAAGTAATGTCATTCCCTATCACAAGtcctaacctggggtcca
-tggaaagaatttagttggtctgtcattaacttggatagggaaagtattacatctttaatt
-tcattaacctctatctgaaacttatcattccttcaattatgaatgcaggcaacagaccac
-agtggtattagcaggacctgtgactttgtcaccaatagaaatcacagattttttaaaatg
-acattacagacgttccgcatatcttgaaatataatttacatgcactgtgacttggaaatg
-ataagttattTGCTAAGTactcatttacttactcacatttgtttagcgcctagtcaatag
-cctggtgacgtgccaggacctgggctgggtgctataggcaaaaggcagatgcgtaaggct
-cagtccttccctcaaaagagaaaagcagacagtgacaatggaaaggcttgatgctttgat
-gggggaagtacctgaggcccccaacccagcccagagggatcagggaaggcttcccagagg
-aagtggcctctcagatgagtaggaagtaaccagacccctgagtgctgagaaaaagtgttc
-agggagcagaaacagcatgagtaacgaagctaggaaagaaagagGACACAGGGCTTACAA
-AGTATTCCATGGCGGGGATGGGGAGGGGAGGAGAGAAGCGGGGAGATGGCTGGGGGGGTC
-AGGCAGGCCCCTGGAAGTCATGCTTGGCGGTACCCTGGTCGTGGGGGGGAAGGGGTGCTG
-GCGCTTGCTGCCCCATCTGTCTCAGTGGCATTGAGCTGTGACTTCAGTGGCCTGGGGAAG
-TTCAAGGTCACCTCTGGGGTGGAGGAGGTGGAGACATCTCACCAGGGCTGGCAAAGGCCA
-ACTGGGAAGCTGGGGCCGATACCTGCCCCTCACGGCAGCCACCACAAGGGGCCTTCTGCT
-CCGAAGGCCCAAGCACGCCCTGTTCCTTTATTTATGGGCCGTGTGAGCAATTTGCTGCTT
-GCTGGCCGGCTGGCTGGGTGTGCGATGCGGGGATTACTCACGCCCCAGTTGTGGTCCGGC
-CTCTGCAGGCTGCGGGGTAGTGAGTGAGGTAATTAAGTGTAAAAGATGGAGCAGGCAGGG
-GAGGGCTGAGGGCGGTGAGCAGTCACTGGTTCTTTTCAGGAGCAGGGGAGTGAGATAATG
-TAGGATAATAGCCTAGCCAAACCCTGCCCAGGCAGCCCGGCCTGTGCTGAGAGGTGCCCC
-CCAAACGGCCAAGACAATTCAGCCTTTTCAGGGAAAATGGGGGGGCTTGGGCAGGGCCTG
-GCTCCCAGGGACAGCTGTATGGAAATGACAGCTCCTCTCCTTCGTCCTGTCCTGTGTTGG
-CTCAGGGTAGGGGCAAGTGTAAGTGTCTTCAGCTGGGGATGAGGCCAGGGCAGGGGGCAG
-TAGATGGGACCAGGAAAGCTGGTGGGTGAGAGGAGGGATCCATGCGGGGCTGGGAGACTG
-ACCTGTGTATGTGGCACAGgcacagtggttcgtggcagcagactccagggcctgactcac
-ctggtggaaactgtggtgtggctttggctagctgtgtgacatcagcctagttgtggtcct
-tctctgagcctcaggactctcatctgtcaaatggggctgtcaaacaattcctacttcccg
-ggggtgtttggagaatGGTTCGTAGCGCCTGATGCACAGGGGCTACGAAATGCTTGACAT
-GGTGAAGTCCAGAATCAGAGTGCATTAGTCattcactcattcagtggataaatgtttatt
-gagtgcctaccatgttctaatggttcctgggaaagcagcagtgactagaacagagtccct
-ttcctcttggagatgacattctaagaggggagacagaccattaatcgtgaaacacataaG
-CATAAAAGGTCATAccagcaatcccacttctgaaaacttattctatagacatgtttgcat
-acatgtggaatgaatgcattcatggttatttattgcaattttgtttggcatagcaaaatc
-ttagtaatgatctaaatgcctgttacacatgggctgactgaagtatggaatattatatag
-ccattaaaaagggtgagaccatttctatTTCTgtttatttttatttactttttttagaga
-tgggatctcactatgttgaccaggctggtcttaaactcgtcactggtgaGACCATTTCTT
-ATGTACTGATATAGAAAGCTCCCTAAGATGTTTTGACAAATAAGAAAAGGAATGTGAAGG
-ATAGTTTCTGTAAAAGAGGAGACAATTTGAAAAATGTATTTCTATTAGCTTGTGTATATA
-TGAAACTAATAATAGTTGTTACCCAAGGAGAGGAGTAGGGTTGGAATGAGAGACAGGAAG
-GGGAGAGTTTCACTGTATACTTTTCTATAACTTTTATTTTTGTATGAAGTGAATGTATTA
-CTAGTTCAAAAAAGAGAAAATAAATATTCAGCTTCCTCTTTCCTCCTTTCCTTCCTCAGC
-ATTTGTTGGAGGTAGCTGTTGAGATTTGGGACTAAGCAACAAAGGCAGCTGAGTGAGGTG
-GTGGCTCAGTGTGCCTGGggattgaacaaacaggttcatatatcaaggataatgagagcc
-aggttgctcagcatcagagaagggaattacaagtatgaaaacaggaaaggctagaaagaa
-ccctgtggtgttagattggagttagaggaatcagtgtaaactcatagcttttgatatata
-tagttacataagcatgcatgcaagtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtg
-tgtgtgtgtgatgcatatgtgcatttcccagttctgtccaaaaagacagcaataatcaat
-acaccatgtagccacgaatacacctaacacctagatcttgggttttaaatactattctcc
-actgaaaggaactggggcttgggaaaatagtagatttgagggctggagcaggaaaagtgc
-cctgtgcctggtaccatggtacatgaaacatctagctgtgccatatgataggcaagtgct
-caagtaatgctgaggacatgtcaaaagaccaaggtgccaacttaaagggactcccaatgg
-ccaaatctgggacaacttgagtatcaaaataatgacagtaacagattataagccatgaaa
-tataaatagtcctgatatacagacacatacacgtattacatacacacatacatacataca
-cacatgtgcagaaagagaaagctctttcttacactagaatgcccaataataggtgtggaa
-ggaaggatgcaactagtatggtaataattgattcaaacaagaagcattactagatgctaa
-aactaaagccattgtgtgaaaatttgttgaggagtaggatatttacatagtcttaaagag
-tctttccacaagatacaatacctgcaaaaggaaggagagtgactttatagcgaagaaaca
-tggcagagactatcttagtcgagtgatcaaaggctgcatcactgttactggacaaactga
-catgaggctcctgatgggatgcacagggaagagtgaaaaatcacttctgtgatgttcctg
-ccagagatgcaaaactgaaatctaatcacgaggagccgtcacataaacccaatttgagga
-accttctacaaaacaactggcctgtaacctgggtaagtatcaaggtaatgaaaggcaaag
-aaaaactgagggaccgtcacagattagaggagactaaagagataagacaatgaaatacaa
-tgagtaattctggatggatctttttgtttattataaaggacattattattgagacaatgg
-acaatatttgactgggctctgaagattggatggtagtaatatatcaatgtcaatttcctg
-attttgatgattttattgtggttatgtaggagaatatacttgcttttaggaaatgtacac
-taaagtattccaggataacagggaatcaaattgacaatttactctcaaacaattcaaaga
-aaatctctctatatataaatctctaagagagaatgataaagcaaatatgtttaaatgtca
-atatttggggattctgggtaaacaatatatgagaattctttgtacaatgtttgcaactct
-tctgtaggtttaacattattttacaataaaGTTATTTACATGAAACTGaaaccatatgat
-gtcaagtaatgataagtgatatatagaaaaatcaagtgggcagaggaacagaaaatgagg
-gggtggtgctattctagatggtatggtccaggcaggcctctctaggggaggacctttgag
-cagagacctagtgggagggagggagtagctccatggatacttggggagagtctcaaaggc
-cgagggacccatctgagaaaaggcccagagtgggaccagcttggcctgtgtattagtgtc
-tattgctatgtaacaaatcatcaccaacttagtggcttcaaacaacagccatttagctca
-cagttctgtaagtcatcgtctggcacagagcaactgagttctttgctcaggatattacaa
-ggtagaaaccaaggtgtaggttgggcttagttcttatgtgaaggctctggggaaaaaatc
-cacttccaatttcattcttttcttttcttttttttctttttctttttttttttGTGCAGT
-TGCagagaggaaaggaggaaatttttcgatagaaaaatcttggagatcctgttgctgtca
-cccatcgggctgttggaagctggggttagtccagaagtcttcaggtaatgccagggtgtt
-gccctggccaggaactctcagttgcctctgaacttcttccagccccacatgatggctaag
-ctctccatgaaaggagaccagttggaaacaaagccaacattcccagcaccctgagggcac
-tgaaggattggctaagttctccccggcaagcctgttccctgagaaaatggaggacagagt
-ccttaaaatgaaagagctggggtctgtgcctatactcactctttcaatgaatctacgtcg
-gatcccaggcaggcccccacaatgaagtggtgttgttcaactgaggtaatacccaaggtt
-cgttgtctcatggccacagaaaactaggactcggacacaccagagtgaggttaagagcag
-aagtttaataggcaaaagaaagagaaaagctctctctgttgcagagagaggggtcctggc
-gaaaatgggttgcccccaagttcattcttgttgttcgcaatgttcagcgtcttgcggttg
-tgggactgaccgtaacagacgatttttttgttggctagaagccacctgcattccttgatg
-tgtggcccctccatcttcaagtgagcaatggtgttttgaatcctccttatgcttcatgtc
-tttgacttcctcttctgtgaccaaccgggaaaaactcactgctttaaaagggctcttagg
-attagatcaggtactgtgttagttcacttttgcattgctataaagaaatacctgaggctg
-ggtgatttataaagaaaagtggtttaattggctcatggctctgcaggctgtaccagcata
-gctctagcatctgcttctggtgaggcctcgggaagcttctaatcatggtagaaggtgaag
-ggagagcaagtggtgtcacatggtgagagccagagcaagagagagaaggggagggtgcca
-gattcttttattttttatttttgttttttgagacagagtcttgctctgttgcccaggctg
-gagtgcagtggcatgatctcggctcactgcaacctccacctctcgggttcaagtgactcc
-catgcctcagcctcctgagcagctgggactacaggtgcacgccaccatgcccagctaatt
-tttttgcatttttgttagagatggagttttgccatgttgctcaggctggtctcgaactcc
-tgaactcaggcaatctgcccaccttggcctcccaaagtgctgggaattcaggcatgagac
-atggcgcctggccccagactcttttgaacaagcagatctgtgaactaaccgggtgagaac
-tcacttattaccaaggggatggtggtaaaccattcatgaggaatccgccccggtgatcca
-atacctcccgccaggcccacctccgacactgggaatcacatttcaacgtgagatttcaga
-agacacacatccaaaccgtatcaagcatacccagagattttccgtatcttaaggccattt
-atgccaaataacataagctgatcacaagagtaaacgccaccatattcacagcgcagggta
-ttttacaggacatgtacacaggatggggaggactgggctgaaatcctggaggccatctta
-gaatctgcctatcataGTtgccggggttgagaaacaagaaagccagtgtggctggagcac
-agtgaacaagggggtgcagggaggagagacagcagagTATCACAGGTGGAGAGACACATA
-TATACCACCTAGCCTGATGGGAGGCTGAAGGCCTGAAAGTCACCTTGTGCAATTTTGGTT
-CCTGAGGAAGGGGAGGGTCATGCGAGTTCCTCCATGGATTCACTTGCACTAAAAAGCACC
-CCTGGGGTGGGACCCAGTCGATGATGGAAGTCAATGGAATGCGTGTTGAAGAGTAGCCCT
-TGGAGAACCAGTGGGCTGCTGGGCATAGGTGATAAGTTCTGCTCTGTGCATTTGGCCCAG
-TAGGCACAATGCCAAGAAGCCATGGGCTCGTCAAGGATCCATGGAGAAGTCTGAAATCTA
-AAAAAGCTGGCTGGAAAAATATTTTAAAACTTTCCAAACTTGAAAGACTTAGTGAAGTGC
-CTACCAAGTAGCATTGTGTCAATGGGTCATGAGCAACGCCCAAGTCTCCTAATAGTTACA
-TATGCGTTCTATGTGATGTGACTGCATTTTGTTTCCATTTTAACATTATTGTATTTATTT
-TTTCGTAGTATCATGTGCAATGTACAAATAAAAAGGAACAAAAGGAGATGCCCTGAAAAG
-CAAGTCTCTCTCCCACCTCTGACCCCCAGCCACGCACCCTCTCCCCACTGAGGCGTttcc
-tgtactcaaaggtattttgtgcacatgctaatgaacatgtatatatacacctgactcctc
-cccttttcacaatggtggctgttctgcctgctttttttcttttttcttggcagtacatct
-tggagatgtttcctattggctcatgtggagctgcccattcttttgtacagcagcagagca
-gtctgttatttggatgaactgtcatttattaactagACATGCCCACAACCCTGCCACCTC
-TTTTCCTAACACACTGGGCAGTCTTGGCCTCTCCCAGGCTCCCTGGGAGGGTCACTACTT
-TCACAAAGATGATGCCCACTTCTGCCcatggaatctggcttgcccagtgactacctgaca
-gggttgagtgacaccacccagaagtgcaaagAAGGCAGTAAAGAAGAAAGAAGAATTTAT
-TAGGTGCCCGAGGAAGGGCTcaatcctgccagtctaaacattgttgtacatacctcctga
-tatgtttttctagaatgtctccaggaagggattgctgggaataagtgcaaaataatgccc
-aattgttctccagagtggttgtacaactgactcccttatcaccagtgtcaaggagtcctt
-gttccacataattgatcacatttggacttgtctagctttttaagttttgccaattgagta
-gacaggaaatgagcttttaatttggatttctctaattactcagaggttgagcatcttttc
-aaatgtttgttggctattcatgttttcgcttctctatgtctgtccaaatctttagtccat
-ttttctttttgattgtttgtccttgtcttattgaattgtaggggttctttatatatttgg
-gtgctaatctttgtcagttaaattgttacggacatcttctagcttgtgacttgtctttcc
-acttttaaaaaatggtgaactttgatgaacggtatcggttgtaatgtaactaatttatta
-atatatgcctttatggtttgtcctttctgtttcttgcttcaggaatcctttccaacccaa
-agccatCCCCATGtttctatgatgcacatgtatatatattatttatttatttattttttg
-agatggagtctcgttttgtcccccaggctggagtgcagtggcgcaatctcggctcactgc
-aagctccgcctcctgggttcacgccattctcctgcctcagcctccggagtagctgggact
-acaggcgcccgctaccatgcccggctattttttttgtattttttagtagagacagggttt
-caccatgttagccaggatggtctcgatctcctgacctcatgatctgcccacctcggcctc
-ccaaagttctgggattacaggcgtgagccaccacgcctggcacatgtatatatatatttt
-aaaaagatcatatgtgcatcctgttttgtagctacttttccacttacctaacatgaagga
-acattttttccatgtttaaatagtctacaacatctttggtaaatggttgcatagttttcc
-attgtatggaatatacagtctttatttactgaatcccctgtgatgaacatttaagttgct
-ttcagctttcatatgatcaataatgctgccaagaatatcctgaagctgttggggtccaca
-ttcatgatcatttctcttagataaagtcatagaaatgaaattgcccatagaatttaaggc
-ttcggatacatttgaccaaatttgccagaGGATCCACTTTTGATTCCTTTCCAAGAAGCA
-ATATGCCATTGTGTTCAATTGCCCTTCCCAAGAGTCTGGAATCAGCAAAGTAGGGGTCCT
-GGAGATGATGTTTTGAACTGGAGCTGTTAGCAGGCATGTTCTGTTGTGTGCAGAAATAGT
-TACTGTAGCAGTTAAAGATTTTCCCTGTCCTCTTCCTTCCTACCCTCTCCTGACTCCTGA
-CAGGTAAGATGCCATTATTAGTACTATTAAGAGAAAAGAGCCAAGAAATTAGGCCTGCTT
-TGGTAATGATTCTTGGCTAATTAATTGCATTTCCAATGGCCATAAGCTCCTGCTTCAACC
-AGCACCTCTATGTGTTGAAGGCAAGAAAAGGGGTCCACTACAGCTGCTACCTCCTGGGCT
-GGGCACATAACATTCTCATAAAAATGTTTGTCCAGTCAATGAAGGATTTCGGtttttttt
-aagagacagggtctcattctgttgcccaggctggagtgcagtgtcacgatcacggctcac
-gcagtcttgacctcctgggctcaaatgatcctcccacctcagcctcaaatgatcctccca
-cctcagcctcccgagtagctcggaccacgggcacatgccaccatgcctggctgatttttg
-tattttttgtagagatggggtttcgccatgttgatgaggctggtctcgaactcctggctc
-aagcaatccacgtgcctcggctttccaaaaagattacaggcatgagctaccgtgctcCCG
-GTCAGGAATCTTTTAAAAGTCTCCTGGGTTGTCTTGGATGAGAAAAATAAAAAGAAGTCT
-CCCAGAGAACTTGAAAGCCTTAGATCAGGATTCCCTTCCTTCAGAGGGGTAAGAGGTGGG
-TGCCAAGCATTTAATTCTTAAGCATTTATTTTAGCAAATATCAACATGTATAGTAATTGA
-TACTtttatagtaattgatattaattttcatgtatggcagcacaaagtttcccattagcg
-tgaactggctttttgtttttttaaatgaggctatttaaagaaaaatattaagtaaattgg
-tggaagatagcctgcagatgggggtggggaggaggtggtgtgattccgcccaaacttcga
-gaaacactgCTTCGGTGGAAACCGCTCCGTGAGGAAGGCCTTAAGCCAGGGCTGGGTTGG
-GTCAGGAGAAAGCAGGGCCTTGGGATTCCAGGCGGAGGGCACTGGGAGGCTCTGGAGGGT
-GCAGTGAGGCTGCCACAGTCAAAGGCCGGGCGGCTGGGAGGGGCTTTCGGAGCTCTTCCT
-GGTATTTAAATCATATTTAGGGATTATAAAGTGTGATCCTTCTCATTGTGtcatttgaca
-ctcacagcaactttgtggagtttcaggcaataaggagattgccttgtcagtttacagaag
-gaaacggaggcagagagagacgcagcaatttgcccagggtctcaggtgagtaaaaggcCT
-CAGTGGTGGGTGTGGGCAGCATGGCTGGAAGAAGCGGAATTTGGTGTGGAATTTGTGGAG
-ATGTGTCAGGAGTTGCACCTCTGGGACTAGGGCACTCACAGCCCTCTCCTAATAACaata
-acaaccaccattagcatttatggagtgctcgctgcgggctggctctgtgctgagcaactc
-tggctgtctcactgcacactttacactaacgcaatgggaggggaggtgtcattatccccC
-AGAAAGTGTCAAGGGCAGGAGTTATTGATTCATGgtgtctgctcttgtagaaatttgaat
-tccagtaagggagaggggagccagaaaataaccacgggaagacatcaatgaatgagataa
-tttcacataacgataaatgccagggagaaaaaacccacagggcaatgtgatatggcctct
-ggaggtggagaaggaactgctccagatgaggccatccgtgaaggcttctctgaggaggtg
-acattagagcCAGAGCCAGTAACGTCTGGACTTGAACCTGGGCTTGCGGCATGGGAGAGT
-CCTGCATCTGACTCCAAACTTCCCCTCCTCTGTCTCCTGTGGATCACAGAATGCTTTTGC
-CAGAGACTCAATCCCTTGTTAAGAATCATGGAGTTggccgggcacggtggttcatgcctg
-taatcctagcactttgggaggctgcggcgggtggatcacttgaggtcaggagttcaaaac
-cagcctggccaacatggtgaaaccccgtctctactaaaaatacaaaaaattagcagggca
-tgatggtgcgagcctgtaatcccagctgctcaggaggctgaggcaggagaattgcttgaa
-cctgggaggtggaggttgcagtgagccgagatcccaccactgcactccagcctgggtgac
-agagctagactctgtctcaaaaaaaaaaaaaaaaaaaaaaaaTCATGGAGTCCTGGCTTA
-GGGAACGGAGTGTCCAGGAACTAGGGATGAAAGGATGGTAAGATATCCAAGCTGGAGAGA
-CCTCACCTGTGGTGCTGCCTTGTCCAACTCCAGGAGCTTCATGCACTTGCCGACAGTGGA
-GTTATGCCACGTTAGGGGTCACTCTAGATGATTCCCCTGGCCAAAGGGAAACCAAGTCCC
-AGAGACGAGATGGGTCCTGCCAAAGGCTGTAGCTTACAGCTGTGCAAGTTGTGCTGGGCT
-CCAGGGAGCCCAACTGGAGGCTAAGGGGATgccttgcatcccaccagggggctgcaccag
-gaagaaagggtacctgtttctaattcacacaaaggaatgctatgggctaggggtggccct
-gAGCCTCGTGGAGGATGGGGGCAGAGGTGAGATCCCCACATCGTTGTGCCATCCTTTTTC
-CCACCTCTCCTGCTTCCTGCTTTGTTCCTGCCAGTCCCTGGAGGGCAGGCGGGTGAGCAT
-CTTCACCATTGAGGGATGCCCCCTCCTTAATTGTGGCAAGGGGGGCCCTTTGCAGCCCAG
-TGCAGGCCTTATGGGACAGTGAAGAGGAAAAGAAGCAAGCTGGCCAGGATTCCCTGGGGT
-TTTTGTGGAGCTGACAGGCTGAGGAGTGGTTGGTTCCGGGGGCGGGGGTGGCCCAGAAGT
-GCCTTATCTCCTCTGGGCCAGTGTCAGCTCCTGTCCCCAGCCTGCAGCACAGGCTGGAGC
-TGCCAGCCTGGGGACTGCAGCAAATTTGCATTTATATTGGAGACTTCTGTTTCCAGGGCT
-TGGGGGGAGGAGGGGTGGCCACCACCATCAGCTGAGCAGAGATGCAGGAGAGGAGGGGCC
-TGCAGCCCTGTCCTGCCAGGGGCACAGGAAGTGGCCGATGGGCCCAGTCTGCCTGGCTGA
-GGGAACAGTGGCACAGAAGGTTCTCTGGGCACGCGGCCGGCCCCGACAGCCTGCCTGTCC
-ACCCTCCCAGACGCTCGCCAACATCAGCTGGGAGTTGGCTCTGCCCCCAGGCCTGGGAGA
-AAGGTCAGAGGCCGGTGCCAGCAAGGGACTAAGCAAGGCCAAAGCACTCCTGTGACAGGG
-TGCAACTGCGTGTCACCCGGTCTCAGCCCCACAAAATTGTAAATTGttttagccaagaaa
-acggaggctcagaggggcttagccattagctcaaggtgatccagctTATCATCCATGCCC
-CATGAGCCTCCCAGGAACACCCGGGATACTCACACACCCTGGATGCCATCTATACTTAGG
-GGACAAAGAGGAGTTGACACCCCTTTTCCAGCTAAGTTCTGGAGGGTCAAGGGAAGTTAT
-TGCAGGCTCGTGACACTGTTAGGGCTGGTTTTGTGACAGCTTAGGAATCATGTTTCTTTC
-TCtcttttctttcttttttttttttttttttagagacagtctcactcagctgcccaggct
-gaagtgtagtgcagtcatggctcactgcagcctcagcctcccgggcttaagagatcctcc
-cacctcagcctcctgagtagctgggaccacaggagcatgccaccatgcctggctaatttt
-ttaattttttattattagtagagactgggtctcgctctattgcccaggctggactggaac
-tcctggcctcaagggatcctctcgtcttggcctcccaaagtgctggTGTAAGTCATGGCT
-CCTGGCCTCATGTTTCGTTTTATGGTGAAATCCATAAAATGGGTTTTTTTAGGGCCAGGT
-TCAGGCCAGGTTTCCCCTTGTCTTTGGAGAATGTAGCTTCTCCCATCTGTGAGGTTCCAT
-GTGaagaaggaatggaaggaaggagagaagacaagaagggaaggaggggggacaggagga
-gggagaaatagggagtgaagTATAGAATAAATAAATAGAAGAGGGGggccgggcatggtg
-gctcatgcctgtaatcccagcacttcgggaggccaaggtgggcggttcacctgaggtcgg
-gaccagcccgaccaacatggagaaaccctgtctctactaaaagtacaaaattagccaggt
-gtggtggtgcatgcctgtaatcccagttactctggaggctgaggcaggagaatcgcttga
-actcgggaggcggaggttgctctccagcctgggcaacaagaatgaaactctgtctcaatc
-aatcaatcaatcaatcaGTAGAAGAGGGGATAgaaggaaggagtggaaggagggaaggaa
-gggagAGGGAGTAGATGAGAAGAGAAGATAGAGTCATCCTGCACCCCGCCCCCCAGGTGT
-GCTTGTTGCTGCTGGAAGTGCCCCCTCTGTGCCCTTTCCCTGGCTGTTGTATGGAATGGT
-GGTCCTCTCCCCATCCTCCTCACCCTACAGCTGAGACCTCCTGACCTCCAGTAGCAGGTG
-AGCCCTGCTCCAGGTGGGGGACCAGTGACAAGCTGGTTGGGGCTCCAGGAAGCAGAAGTT
-GGGGCCCTGTTGTGATCCCTGGGCTTTATTTCCATCCTCAGGGCTCAGCTGCCTCTGGAG
-GGGGCTCTGCCTTGCTCTTTGGGTTCTCTCCACACACTCCCTCCCCCACTCTTCCAGACG
-GAGGTCTTGGCCCCATTCCCCCAGCCTGTGGCTGTAGGCTTGCAGCTGACAAACCTCCTG
-GTCCTGGCTCTCCGTCCAGCAGAACAAGCCCTCCCTGTCTGTCACCAAACAGTCAGGACG
-GCCTGTTCCACCTGGCAGGCTGGACTATTGCCcagcttagtcttgggaagtgaggaccag
-ggctgacaacccactgcctgagttcaaatctttgctgtgcctctttctggctgtgtggcc
-ttgggcaagacccgttacctctctgagcttctggcttctcatccgtcaatgggcataatg
-ttaggatctgcctcttggattactgtatgaatgatacgagatcgttcatggaaagtgctt
-ggcttggtgcctggcacCAAGACATTTCAGCTTATATTATCCTAGCTGTATCCTTCAGTG
-TCTGTCTGGCCTAGGTGGGATGTCAGGTTCCAGGGACCTGTCCCCATGCTTCCTCCATTA
-ACCCCTTTATGACTAGTGTCACCTGATATGACTATTTCAACACACATAGGATTGAACCCT
-GGTACTATTATACCATTACTACTTCTCCTAGTTGTTGTATAAGTGCTTATGGGATCAGGC
-ACTGTTCAAGCCAttttaaaatatgactccacattcctttaaattcctctaatcaagaag
-tggggcctatgtcccctctcttgattgctcccaggaataaaatatggttagaaatgacca
-tgctggctgcgtgcggtggctcacgcctgtaatcccagcactttgggaggctgaggtggg
-cggaccacccgagggcaggagtttgagaccagcctggccaaccaacatggtgaaacccca
-tctctactaaaaatacaaaaaaattagccgggcgtggtagctgtaatcccagctactcgg
-gaggctgaggcgggagaatcacttgaacccgggaggcagaggttgcagtcagcctagatc
-gtgccactgcactctagcctgggcaacagagtaagactccttctcaaaataaataaataa
-ataaataaTAAAAAAAAtgaccatgccacttctgcttgagtctctggggacactcactct
-tggaactgttggaacccagcctgcatgctaggaggaagcccaggacccacggagaggcca
-ggtgtggatgttctggcctgcagtctccactgtgccactcctaactgccacacatgtgag
-gggaagacaattctagatgattctagtcccctgccttcaactcttttcagctgaggcccc
-agatactgtagaacagaaggaagccacccccatgtgctctgtctgaatctgtgagcataa
-gaaaatggttaacagtactacacgttggggttgttatgccacagtaaatcaccagaaTCC
-Ctgtgctgactcatttaagcttcacaacttaggaagtagctgttcttatcatctccattt
-catagatgaggaaattaagacccaaaatgctttagcaagctacctgagtccacagatctt
-ctaagaggaagagctgggattcgtgcccaTGGGTTTGAGCATTGAAGAATCAAGCAGGGC
-CCATGTCCTACAGGGCCTAGTGGGCCACATAGGTGACTGGATGTCATCTTGAGGGCCTTG
-GAGGGCTGTGGGAAGACACTGATGTGTGGAATTCACGAGGTCGGGAGAGGGCACTAAGAA
-GCTTGCTTAGGTGCAACGTGGAGGGTGGGTGAGAAGGGGCTGGAAGTGGCCCACGAGGAT
-GGACAGTGCCACCCTGCCATGGTCCACCATCCTCTCCATGTCCTGCTCCTCAAAGTTACG
-AGGGCAGCAGCAGGAGGCCTGGTCTCAGGCCCTAATGAGCTCTGCACCTATCAGAGCTTG
-GCCTAGCCGGAGATCCCAGCCAATTCCTTTGGGCTGACTTAGGCTGTGCCCTTGGACGGA
-CAGAGCTGGGCAGTCAGGGCTGGGAGCCTGACAGTGTGAACAGGAAGTTGACGGCCCAGG
-AGCATCCTCTGTTCCCTGCACATCAAGGTGGGCCACATAGCTCCAAGATCATCTGTGCCA
-ACtggatctactgggtttggagttggctgagagtggaagggagcccacaagaagagtgac
-ctaaagaggacagacactgatttctttttcttattaccaatctggaagcaggcagtcccg
-ggctggtataatggctctttgatcctcagggacccagactccttctatcttgttgttcca
-ccctcaacacttcatagtccaaggtggccgctcattctctggccatcatgtccacattcc
-agccagagggaaagaggaagaggcaaagaatgctctggtctctttaaggacccctcaccc
-ccaccgctcagaagttgtactcggtactccgtttacctcttcatggcaggaatgcagaca
-catggccacccctaactgcaagagaggctgggaagcgtggtctctgttctgccatccatt
-cacccagctaTATCGGTGGGGAGGGGGTTCTCATACTGCGGGACATGGCAAATCGCTTGG
-AATGCCAGCCACACCTGGCACCTGGAagccagagtgagtgttttgaaacttgaatcattt
-aacttcgttgcttaaaatgatcctgtagcactcactgctcccatgataaaggccaaatcc
-tcatctgacccccagggctgcctgatctcaccgtggctcacctctccagcctcatgccct
-ggttcccccagccccatcctccccaactcaccctaacATTGAAATTAAACCATGCCCACT
-CCATCCTCACCTTGGGTCTCCCTTTGTGCTCTGATATTTGGGTTCTCTTCATGCCACAGC
-TCCACCCAATGTGTGCTCTGCTTCCTTAGCTGTAAAAGGAGCTCCCCATAGTACCCACTG
-GGCACATAATAGGGTCACTTGCTTGGGTACAACGTGGCGGGTGGGTGAGAAGGGGATGGA
-AGTGGTCCACAAATAATGATTTGGGAGAACACAAATAATCAGACATAAAGAGCCACAGAG
-GCACTTACTGACTCTAAGGACTGTGGTTATAAAGCCCCTGCAATGTGCCAGGTTGGTACT
-ATGGGGAGCTCCTTTTATAGATAAGGAAACAGTGCATGCTGGGCGGAGCTGTGGTGTGAG
-GTCCTGCTGCACTGCCTTGCTGATGAGAAAAAACACTTATGGGCAGAGCGCTTTACACTG
-AGCAACTCTGTGCCTGCCTTTGTCTCAGGCAGTCCTCTAGCCATTGTGCCCCCCCCtttt
-tttttctgagatggagttttgctcttattgcccaggctggagtgcaatcgtgcaatcttg
-gctcaccgcactctccacctcccaggttcaagtgattctcctgcctcagcctcccaagta
-gctgggattacaggcatgcaccatgacacctggctaattttgggtttttattagagacgg
-agtttctccatgttggtcaggctggtctcgaactcctgacctcaggtgatccacccactt
-cggcttcccaaagtgctgggattacaggtatgagccaccacacctggccCactgtgcccc
-ttttgcacatgaggaaatgggagagggactgtgattctgtaaggtcatatagccaggtag
-tagccatgccttgactggaacccagctctgcctgccccttccctgctggcagttgcatca
-cctgccttctctgGGGAGTGAATGAGGACAAGCCAcacttgaccttccatggtcctgtag
-cagagattttaaagtccagcttttagagaggaacgtgaaagcccagagaggaaggaactt
-gcccttggtcctatactccatcaagcacaatgctgggaagggactcaggtctcctgactc
-ccagtccagagctcttgcacactttgctccttcatgcaacaaatatttattgagcatcta
-ctgtgtaccagcacagtgctagcccttgagaacacagcagcaaacacaacagacacaaaa
-ccctggccctgtggagtggacattccagggctgggtggaggagTGGGAGACCAATACGGA
-CCAAGTAAGTCAGCTGCAGCACTGTCTTTCCTCTTATTTATTTCCGGAAACAAATAATTA
-TGGAGAACTTTATTGCTataagacagacatggtcctgactctcctacagtgagaatatag
-tgttggagacaggcactcaatgagagacacataaataagcaaagttcagattgtgatcat
-agctgagaagaaaacaaggttgaagtgctagagagtaatggggatgcggtactggtagtt
-aacttcagatggggtggccaggaaaagcctctccaggaagtgactcttgagctgagaccc
-aaagcatgcaatggggcccaacagtgttccaggtggagggaacagcaagtgccagggtgc
-agaagtaggacagagcttggtgggagaaaggaacagagagaaggccaaggtggctggagc
-agggcgagagggggaggttggcaagagggagggggctggagaAAGTCCAGAGTGTCGTGG
-ATAGACACTGAATAAAGAGAAGGGATGACTAGCCCCCTACAGTTCACCCCTGGGTGGGGG
-TTGGGTAGTCGTCTTTGCATCTGATAATTTCCCAGCTAGACCCCCAAGGGGTGGGGGCCA
-AACACCTGCTGGCCTGGCACTGCCTGTCTCTGCAGAGATAAAGTTCCCTGCCCCCCGTTC
-ACCAGGACCCCGCTCTGTGGTGCCTCCACCTGCACAGTCAGGCAGGGCATTGTGTGTTCC
-GGCCGGCACACCTGGCATTCACCAGCCTGCTGGTTGCCTGATTTAGGGGCTCATCCTGCC
-TGGCTCAGGGGTCTGTTCCCTGGAGTCTACCAGCTGGGACTAGGCTGGCTGAGGAGGAAG
-ACACAGGCGCTGGTGGTGGCCACAAAGAAGGCACCCTTTACCGTTGCACGCCCATTGGAC
-CATGTTTGAAACCCCAGGCCTCCCTTTTCCAGCCATCCTTCCCTGGGTGGCAGAGTCTGG
-GCTTGGGCAGAAAGGTTCAAGGGGCAGTTTCACTgctgtgcttagaaattttctctccct
-ctctgggcctgtttcctcatctgtgcaacggaagggttgacctggataaactcATGGTGT
-Agactctagagccagactgcctgggtttgaacctttaccacgtagtgaccatatgaattt
-agctaagttactcaacctttcgttctcagtttacctacatgtaaaatggaggtacaataa
-taacacctatttcaagggctgcgggaggattaagtgaattatatatgtctggtgcttcaa
-acagtgcctgctctatggtaagtgctatatattttaactctgatcattattATTAACGTC
-TTTGGAAAACATTGCACTGGAAAGACTCAGTGGAGAAATCTGAGTTCATTTGTTTGCAAA
-CTTTTTGGTCTTTGTTTTTAACAGAGAAGCTCTGCATTGGTCAGGAGAAATTTTACTCAG
-AGCCCCAGCTGTTAGCAGGGGATTGAAGGGGGGCGCCTGCCCCACCTGCTTCCCCGTCTC
-TGTGTCTGCAGCCCCCAAGAGGCCTActggagcataacttgaaaatccctgctcagttta
-tctccttcagctcacagtcagggaaactgagactcagagaggagcagggatctgcccagt
-gagtggcccagcctagactagaacccagatctcctATTTTTCTCAATACAAGACAAGGGG
-CAGGGGCTAAGAGAGAAGCTAAGACCAGAAGCCTCTTAGGGGACTGGGTGCATTGTGTCG
-TCAAGTCATTAGCATGCAAATGATATGCAAATGAATGCAAAACAGCATGTTTTATGCTAA
-TTTGCAGAGTCGAGAGCGACGACATTTTTGGTAATAGGGCGGCAGTCCTGGTCCCTGGGC
-ATTGCCGAACACGCGTCCTTTTTTTCTTTTCTTCTTTCATTATTATGATCGGGCCCATAA
-ATCTTGGTTTGGCTGTGACTCCGCCCCTTCTTGCTTGAAAGCCTGGCTCCTATCATTCTC
-AAGGGCTCCCTTGCCAGTCCTCTGGTCCGGCCTGGGCCCAGGGACAGGCCTGAGCAGTGG
-GTCAGAGAACCAGGACTCAGGAGCCACCAGTCAGAGCTAGAGGGTGACCCCAGCTCTGGC
-CTGGAAGCCACTTCTGAAGGAGGGGACCGTGGCACTTCCTCTGAGCTCCCACAGCCACTG
-TGGCTTCTGTGCCATTGTCTGTTTGGGGCTGGCTTGCTCCTTTTCTTGTCAGGGCGCCCA
-GTACCTGGAACACAGGTTCAGGATGTGTTTGGTGTTTGAAGACTGAATCCATATATGGAG
-AGCTGGTGgtgtaccctagtgatgagcctgcagtctctgaaaacatgcagcttgagttaa
-aaccctggcaccactactttctGAGAAAATAGTAGTATGTACTCACAGCTAACCttttgt
-ttttgttttgttttgagacagggtctcattctgtggctcaggcatgagtgtagtggcatg
-attgcagctcactgcagcctcagccttctgggctcaatccatcctcccacctcagcctcc
-tgagtagctggcactacaggtgcacactgctaccatgcccagctaatttttttttttttt
-tttttttgtagagatggggtcttgccatgttgtccaggcaggtctcgaactcctgggctc
-aagccatccttctgcctcggcctaccaaagtgcagggattacaggtaagagccatcacac
-caggccCATAGCTAattgagcacctaccatgttccagggctctgctttgtaattgttgtg
-aacgctgtcactgataagagtatcctagaaggtgagtatcgttatcattgctctcatttt
-acagagagggttaaatgatttgcctgaggtcacacTCCCCAGGGTAATGGTAAAGGGGTA
-TTTATATTTACTAAGGATGAGTGCTTCATCAGGCAGGGGCCTTTAAGGCACTCAGCAAAG
-CTTCTGTCACAGGGTACCAGGGTCTCCACCTGTGCTATCAAGCCACTCTTTtgacaatgt
-taaactttacctgagccctgtgctcctgaaaaacagcgatggtccagaaatccccccaac
-tttttgttttctgaagtctccctaccttttctgttcagggaaatggcttagcaaaacgag
-ccacccttccccatatgactcagataagacgtagtcccctctttctagtgtatcctgtaa
-gactggaggatgactcccttgctggcctgtgatctttccccttttgctggaacctgctga
-caaggccaaggccaaggaccctcccacttcccattctttgtctcatggttgattagctga
-gatgagaactgtgtgtcctctctgaaactagctagacacagagatgaacatttcctcttc
-aatggactgatggagatatcccctatttgtaagacaatccccactttaaatccctcctgc
-tgtaacctgtctcctcacccctacaaaagtcaaaggcaaatccatcctgtccagacactc
-tgattttgggatctgggatgctctccctgttgcaatagcatgaataataccatcaacccc
-aattcttccgtgtattttgtctttGACCCTTTCCACCGTGCTGTTTTCCACCTAAggctc
-tgagctaggtaagagccctgtgaccttggagtacttctcgggcttctctgtaccttaggt
-ttaaaacggatgcgcacaggcgttatgtcctcaggttgtgagataaaaggagacgacgcc
-agggaaacgctcggtcgcttggcactgtgcccagcagcgtgagtgctccagaaatgtcaa
-ccattgtGAGTCCAGGAGAGGAGAGTGGCGCTCAGAGAGGGAACGGGACCTGCCGGGAGA
-CTCACAGCGGGAGGAAGGGGGAGTAGGGCGCACGTCTGGTGACCTCCGCCCCCAGCTGTG
-GGAGTGTGCCCTGTGACCCCCTCATCCTGCCTTTGGATCACGAGCTGGGGTCGGGGGAGG
-GGATGGTGGGGGGGACACTGCTCGGTCCTCCACTCCGTGTGCCCTGTGACCCCCTCATCC
-TGCCTTTGGATCACGAGCTGGGGTCGGGGGAGGGGATGGTGGGGGGGACACTGCTCGGTC
-CTCCGCTCCCCTCCGCCCGCCTTTGATTGTGGTGAGCAGCGAGTCGCGGAGCAAATTAAC
-TTTTCGCACACTTCATTATGCGCCGTCCCGCGTcccccggggccgaggcccgcgcccccg
-ccccgcgccgACAACTTGATTGGGCAATTAATCTTCGCGCCCCCCACACCCCCTCCCGGC
-CCCGGGCCTTTGTGCGCCCGAGCGTGGGCCGTgggcgccccccgggccgcccggTCTGCT
-GGCGCAGATAAGGCGCCCCTCGCCGCGCGGCCCCGCCTTTGTCAGGGCGCCCGCAGGCCC
-GGCCGCCGCGCTGCCGTCTCGCACCCCATCCGCGCGCCCCCGCCCCTTGGCTCGGTCCAT
-CTGTTTGAGCTTCACAATCCTCCAGCGGCCGGGGGCTGGGGGCGGGGTCTCGCTCTTGGG
-CAGGCAGCCAGCACCCCCTCCCCCCGGCCCCCCCACCCAGCCCCCAGACACGCGCGCGCA
-CGCCCACTCGCACGCGGGGCCGCCCTGTCAAGCAGTGCGGTATTAATTAAGAAGGTGGGG
-GGGAAGCACAGCAGCAGTTTGAAGAATTGTGGGGCGGAGGGTTCCCAGCGGTGTCCAGAA
-AAGAGGGGGACCCTGCCACCCATCTCGTACCGCAGGTGCTTAACGCCTGGTTATTGGCTT
-GGGGATCTACAGGCTCCCATGGCTGGGGGTGGGGGTTAGGGGAGGTGGGAGGTGGGAGGG
-AGAGGCCTGGGAATTTGCCTGACAGTGTCTCTTTGTGCATTTTTCTGGGGTTTTGCCAGC
-AGTTGACCCAGCCTCAGAAAGGTAGCCTGTGATTCAGGTAGTGTTGAAAACCAGAGGCCC
-AAAGGCAGGATAAATCTGGGCCTATTTTAGAGGCCAATAGCGTGGTGGTTCAGAAAGGGG
-TTCCAACAGTTCTCCCTACTCGCCGTTGAGGATTTGCGTCAGGTAACCACCCTGCGCCCG
-GGGCGGTGGAGGTGATGGGCTGAGACCGTGTTGGCGCAGTGCTGGGTACACGGTGAGTGC
-TCACAAGTGCTGGTTCTTGCTGTTTTCTGTGATTTTCCTTGGAGGGGCACAGGGAAAACC
-AAAAATGGCTGGTGCTGGAAAGAGGCCCTTGAGTTTCATCTCACAGCTGGCGGTAGGGTG
-AAGCTTGGCAAAAAACCTGTGGTCTGTGCTGAGCTTGGGGCTGGgtgtgtgtgtgtgtgt
-gtgtgtgtCTATGGTCTTTGAGAAGTGTCTTCATCAGCATATGACTTGTGTGAGTTTTTG
-GGTAGAGAAGGCACAGCCTTCACTAGTTTCTACAAGAAGGGTGTGATCCAGTGTGCGAAG
-AATCCCTGTGTGCAGGGCTGGGAAATCAGCTTCATCTCTTCCATCCAAGAACAGCATGGC
-TGGCACGCTTATTGTGTGCGGAGTCCACGGTAGCGTCCCTAGGTGCTAGGGACAACCGTG
-AGCAGAGCAGAGTTCTTGGCTGCCTTCACAGACTCGCAGTCTCCTTCGGAAGATGAATGA
-GAAATAAAATAAACATGTAAGACATGAGGTAGGTCACTAGGTGACATGAGCTTTAGATAA
-AAACAAAGCAGGGCACCTGATTAGGAGGGTGGGCCCTACTTGCCAGACCCCTACCCTCAT
-CCCCAATACAGTGTGTATCATTGCCTGGGCAGGAAAGGGCCACACTCCTGGGTCTAGGGA
-ACTAGGTCCCTAAGTAGCCTCATGTCCCCACCCACTAGGACCCAGCCTCCAGCCAGTTCT
-GTTGCATGGGGCAGGGTCCCTGGGAAGATGGGCAGGCCTCAGACTGCTGCAACCTCTGCC
-CCTAGCCCTGAGGTGGTGGCAGTAGTGTTTCCCTCTGATAATGACATACTCCAGTCTTGC
-ATGACCACGATGCCTCATGAGCCCACAGTCCAGAAGGGGCCTGGTGAGCAGGAGCTGAAT
-TAAAATGGAAAATACGGCCTCCCTTCCCCCCTTCCTGTTCCTCCCCACTTACTCCCTTCA
-TTCCTGCTGCTCCTGAAGCCATGGGTGAATAGTTTCTCAGTCTCTTTGCCTTGCTGAGCT
-GGGTTAGTTGGGTTAGCAGGATGGACATCTCCTTATGGATACTAGAGTTAGGAGACACCC
-AGAACCAGCAGGTGGGATTTTAGAAAGTGCTGTTTGGCTCTGACCAACCCCTACTCCCAC
-CCCATGCATAGCAGGGTTAGTTTCCTCATCAACTCTGGTCTCTGATTCTGATGTTCTGCC
-CCTAAGCATCCTACATTCTAACATTGTATTCTTCTGACTTTTTAGAATTTTCCCATCCTA
-TGCATCTTACACGAATATGGTGAAGTTCTGATTTCCGCCCTTATGTTCTAGATTGAGTCT
-TCAGTATTAATTTTGTTGGGGTCTACCCATTCAAATAACAATAGAGAAAGACTATGTGCA
-GAGTCACATAATACTAGTCATGATAGTAGCAATTAACATCCTTTTGACCTTGGTTTTATT
-TAACAGTTTTTTTTTTTGAGAATTTTCTAAGCGCCAGACACCATTCTAGACATTATACaa
-ataaatagataaaaatgaataaataaataaatGTTATTTTAGAAGGTGCAATTGAAATTG
-AGAGTCAAGGCAGGACTCACTAAGAAAGTGACAATattttctttctgctttcagttatgg
-agatttgaaatctcagttgataaggtggatttatttctccttgcaggtcattcacttttt
-ccttcatgtattttgaatctctgctattgggggcataaatatttagaattgttatatgct
-catgattaactgaccttttttttttttttttagatggagagtcttgctctgtcgcccagg
-ctggagtgcagtggcgcaatctcgactcactgcaacctccgcctcctgggctcaagagat
-tctctggcctcagcctcctgagtagctgggattacgggtgtgcaccaccacgcccagtta
-atatttgtatttttagtagagatggggtttcaccatgttggtcaggctggtctcaaactc
-ctgaccttgtgatccacctgccttggcttcccaaagtgctgggattacaggcgtgagcca
-ccgcacccagccttgacctttttaatcattataaaatgaccttatctttcctggtaatat
-tctttgctctgaaacaaacattgtctgatatgaaactagctactcctccagtgttatttt
-gattactgttactttccatctttgtacttttaacttgtgtgtttacacttaaggtgtgcc
-gttttgaaggttgggtcttattttttttttttaaaaaaaacaatatttgggtcttatttt
-tttaaaaaaatccaatctaacaatctctgctttttaattgagggtatttagaccatttac
-atttgatgtgatcattgacgtggttagatttaagtctatcatcttgctatttgttttatt
-tttgtcccatctgttctttgcttcctttttcttctttttctgtcttcttttgtataagct
-cagttttttttactatttcattttaactcctccttttttattatatcgttttaccttctc
-tgttggtttattaactgtaatgttttgtttgttatcttagtagttacattaggccttata
-agcctgggtacggtggctcacacctgtaatcccagcactttgggaggctgaggtgggcgg
-atcacctgaggtcaggagtttgagaccagcttgccaatatagtgaacccctgtctctact
-aaaaatacaaaaattagccaggcatggtggtgcatgcttacagtcccagctactcgggag
-gctgaggcaggagaattgcttgaacctgggaggcagaggttgcagtgagctgagatagca
-ctactacactccagcctgggtgacagagcaagactcaaaaagaaaatcatgtaatagtat
-actttcatttccttcctggccttcttgctgttgttgtcatacatacatatgtgtgacaga
-ctccacaaaatgttattatttttgtttaaatgctaagttatctttttttaaattaaataa
-tcagaaaagattttatatatttaactcatgtagttaacacttctggtgacctccattccc
-ttatgtagatccagatttccatctggtatcattttccttctgcctgaaggatttccttta
-tcacttcttgcagtgcagatctgttggtgacaaatgcattcagcttttgtatgtctgaaa
-tcatctttatttcatcttcatttttaaaagatattttaactgggtatagaattctagatc
-ggcaggttttttctttcattagcttaaaagatgttgttgcttcactattttcttccttaa
-attgtgtccaacaagaaatctgccattatccttatctttgtttctctatactttacaagg
-cttttctttctctgactgtttttaatatttatctgtttgtcactggttttgagcaattcg
-ttcatggtgggtaatttccttcctgtttcttgtgcttgaggttcgttaagcttcttggat
-ctgtgagtttatagtttatatcagatatgaaatattctcagccattaattttctatttcc
-tctcctttggggacttcaaagacacatatattaggcttcttgaagttgttccatagctcc
-taatactcttggttttttggattctttctttttctctgagtcgtcgattttgggtagttt
-ctattgctacatcttaaaattctctaatcttttcttctgtcacatcagcatatttttcat
-ttcagacatgtagttatcatttctagaagttcagtttgggtcattttatatcttccaagt
-ctctccttaacctttgaacatgcagaccatgaaatacaatttgaatacttattttaatgc
-tcttatctcctacttctgtatcagttctgggtcagtttcaattgattgattattattctt
-gtatgggccatgttttcttgcttatttacgtgcatggtaaactttggatgccaggcattg
-tgaacattacccttgttgggtgctgtacacttttatatttctataaatctccttcagttt
-tgctctaagatgcaattaagttacttggaaacagttttatccttcctagtcttgctttta
-taatttgttgagtgggtccagagcagtgctatctgttgagggctaattatataccactgt
-tgagaaaagaccttcctgagcactctacccagtaccccagaaattatgagggttttttct
-gtttattaatatttctggttttgtgtgagtgctgagcactgttctctaatcttatcagat
-gattttcacccctacttcagtgtagttttatcatacaaaagcaccaaccagtactcagtc
-taatactcaagggggactttcttcatatctctggaatagtctctctgtgcaactctttcc
-tcccaatactgtgtcctgcaaactctgccctctttgtccttcctggactctcaactctat
-ttccttaactcaggaagcctcctgggtgctgcctgggttcctcctccctgcactaggttc
-tgaaaactctctccaagcggcaaactgaggccatgatagggttcatcttatttcccactt
-ctcagggatcatgatcctttattgcctgttgcctagagtcttaaaaattacagtttcatg
-tattttgcctggtttggtttgtttgtttgattgtttcaagcaggagagtaaattcagttt
-ctgatactccatcttgggtggaagcagaTAtgagaaggtgacatttgaacacaaacttga
-aggagttgatggagtgaaccaagaggatatgggagtggggagaggaaggagattctaggc
-agtgtgaacagcaagtacaatggtctcctgcgtgtatagctgagagtgcgggtagtgtgt
-ttgaggaaggaagggagcacgtatggctggagcagagagttatgtggggaaagtggggag
-agggagggatgaggtgtcagcttgtgtaggaccttgcaggccatggagaggattttggct
-tttacaccaaatgaaatgggagccatgggaggattttgagcagagggaggacatctttta
-caggatctctgaatcgattggattaactgaaagggataagagggcaagagagaaagccag
-agacttgctgggaaccagtgcactaagccaggtgaatgctagtgactcagacACATGAAA
-GGACACACTACCAagggggtgaataactaggagcggggatgaaggaggcttctggggtgc
-tgtcggtgtcttgtatcttgatctgagggaggttacatcatctgctcactgtgtgaagat
-tcattgagctggatgtacacgtctaaattgtgTTCACAATTGAATTGAATACATGAATAT
-ATTACTATATAAATATACTATATACATATAAAACTTAGAAAACAAAGTAgggagatgaag
-gtggcttggactagactgttatcagtggaggtgggaagaactgtatgcattctagatctc
-ttttatatgtagatccaataagatttgcaaacagatctaatgttagatgtgaagacagag
-aatagtccaggataatgtcaagttctctggctgagctacagcaaagactgaggacctgct
-gtgtaccagagcttgggctaagctctattaacttctttaatcttcatgacaattctagga
-agtaagtCTGGCAAGAGCTGCTTctgaggtttttgtggggctactgggagcctttccacc
-agaagtgtagtttgtgtgatggattccagaggtagtggtggccacctttgcctccatgag
-gttacaggctgcctgagagtgaggcctacaagaaagaaatcaaagccatgatagagagag
-agacaggatcctcacagtaacatgtcagcacctggattcagccataacagaagccagtgc
-cctgggcttctcagttatataaattaataattacttttttttttatttctttcacttcta
-actgaagagtccagactgatacaACTTCTTCATATGTGTCCCCTGTCTGCACCATCCAAT
-GGACCATCAACAGCAGCTACATCCTCTCCTTACCGTTGCTTGCTTGCtttttttgagaca
-aggtctctttctgttgatcagactggagtgcagtggcataatcacagctcactgcagcct
-tgacctcttgggctcaagcagtccttctgcctcagcctcctaagtagctgggtctatagg
-tgcttgccatcatgcccagctatttttttttttttcatagagacagggtctcactatgct
-gtctaggctggtcttgaactcctggactcaagaaatcttcctgccttggcctcccaaagt
-agtgggattacaggcgtgagccaccgtgtttggccGTCCTTACCATTTCTAATGCCTGCT
-CTGCACTTTCTCTCTCTGGACCTTTGCTCCTACAGGTCCTCCTTTCCAGAATGCCTTTCC
-TCCCTTACCTTCTGCCCTCACATCAAAACCAGCCCCCTACTCAAAGCCATCCTAACTCCA
-CCAGCTGAAGGATGGAGCTGGCAGAGTGCTTAGATATCAATCCATTTTACAGATGGGAAT
-ACCAAGGTCACTGTGAGACAGGGCAGATTTGTGGTCAGGACTCCCGCGTTCTGACTCTCT
-GAGACTCTTTCCATGATCCTCCAGGACAGCCTTTTCTGTGCCCTCCCTTGCGTGGGGTTG
-AACAGTACTTTTCACAACAATTTACActctcccataccccaacccttgcacgtgctgttt
-cctcagtctgggatgccctattccattctgtccttccggaaagggtgccacttgaacttg
-gagattcaactcaaggatcagacttccagaagccttctctttttcccagggtggctctgt
-gtcctgcctggtactcccACAGCTGCCTCTGGTACCTCCATGAACCCATTTATCCATTTG
-TTTTTTAGGTGTCTGTTTCTTGTTTGCCTCACCTGTTAGGTAGGGGAACTGAGGCAGACC
-TCCTGGCCAAAGAAGGCTCCCAACTGATGTTTGTGAATCAACATAGAGTGAGAAAGAGCC
-CCGTGGAGTGGGGCGGGGGgtggagagccagcgctgggcgtggaggcaggacgcctgggc
-tccagtccagccaccaccactctagtgtgtggcctcatgcaagtcatgtcctctccttga
-gcctcaggcttttttggcagtaaaaagggcagaacatcatagtagttaatacctcaggca
-gcctggatttgaatcttggctgtgtgactttaggcagtttactccagctctctgtgcctg
-tttcctcatttgcaaaatgggggcaataaacatatctgcatcatagggtatttgtgagca
-ttaaatgagttaatgtttacaaagctttcaaaccatgcttgcttggcacatcataTAAGC
-ATCCCAGAGTGAGAACCATTAAACAAAAGAAACCCTTCCCTTCCTGAGAGGAGAGGAGAG
-CTTGACAAACTCTAAAGTGGCGTGTGAGTGAACTATGGTCACTctcagggggtaagctgc
-ctggaaaaggctgactctgacactgactagtgtgtgtctttggagaaatcatgtcacctc
-tctgggactcagcttccccatctatcaaatggaggagttggtctagcgcagttggagtta
-aagtgctttgtctctttgagttttatgtccatgtcagtagagtgggctgagagctgcatg
-tctgtcatgcgctcctggtgagaatgaaatacgatgatgggccggacgcggtggctcatg
-cctgtaatcccagcactttgggaggctgaggcgggtggatcacttgaggtcaggagttcg
-tgaccagcctggccaacatggtgaaaccctgtctctactaaaaatacaaaaattagccgg
-gtgtggtggcgggcgcctgtaatcccagctacttgggaggctgaggcaggagaatcgctt
-gaacccgggaggtggaggttgcagtggaaccaggattgagccactgcactccagcctggg
-caaaaaagtgagactctgtctcaaaacaaataaataaaataaaaaatataataataaata
-aataaatacaatgatgtctggagcacttgccagtcatgcctgccacatagcaagtaatcT
-GTCATAACTGTCACTGTTATTCTGGCCCTGACATTCCAGGGTTCCTTGAGGTGGGGCAGG
-ATGAGGGATGGGCTGGGCATCATGAAGGAAGGTGCTGATGTATCACCTACTGACAGTTTA
-GAAAAGGGAAGGCAGCCATGTGACCCACAGGCAGTGTCCCCCTGCCTGAGCCTTATTTGC
-AGGGCTGTGGCATCGGTGAGCAGGACAGGGACCACCACGCCCACTAGAGAAAGAAGCACG
-TGCTGCTTTTGTGAGTTCACAAAGGTCTTGGTTTTCCAGGGCCAACAGTGTCCCCGCCAC
-ACGTGACCACCTCAGAACCATCACCTGCCACCTGCCAGGGCCTGGGAGTTGGAATCTGAG
-Gtggaaggagagagcaggggccaactcctggctgctcccctctcttggtatgtgaccctg
-ggcaagcctctgcacctctgtcccctttgtcctctcttgtcacataatgaggttttgagt
-gtcttagatagggaggatgtcTCCCTATCTAAGGATAGGATAGGATagaaatggccaggc
-cctggtgcctctgctagctcagtctggctgggacgacctgggaagaacatggcctcagtt
-ccaaagccaaggcggctcctgggggagctgcagctggaggctgtcagcttgctgccctcc
-ttgctgctgaaggacaagctttttcttgaagataggatggataggatgtctcctatccat
-caGGAGATGCGATTATTGGCCTAGACTGGGCAGGGTCTCCACCTGGGCGACGGGTTGGGA
-GGCGGAAGTGAAGCTGGTGGCATGAACCATTCTCAGTGACCTTTCACCAGGGTGAGTGGG
-AAGTAGTTGGGAGCATCGAGGCCTCACTCTCCATCCTGAAGATGGAGCACAGACTGGCTG
-GCTGAGGCCGGGAGCTCATCACGGGATGGAGACAGATTGGCAGACAAAGAGGAGGCGGGC
-GGTTGGGGCTGGGTGCCCCTGGGGAGGAAGGCGGGGAGAGAGCGTAGGAGCAGGAGGAAA
-GAAGGCTGGGCTTATGTGCAGCCTCACAGACTGGGCCTGCAGAGTCTCCAGCTGGAGGTT
-GGGACTGGACCTTCCTCCTGAATGGGCAGGGAGGGAGGCTTGTTGGCCTAGCCCTCGGGG
-TTCTTGAAATAAATGAGGGAGGGCCTTGGGGGGTGGTAAATTGCTGAGGCTGTGATAAAC
-ATTCTCCCCTTCCCACAAAacacacacaggcacgtgtgcgtgcatacacatacacacaca
-cacCCTGGCCACACTGCTGTGCATATCTTACTGATTGTTGTCCTCTGTGAcagcagttct
-ccaagttgagtgcattggaaggatcagttaaaatgcagatttccaggcatttccatctct
-aaatgtagggtgtggcctgagaatgtgtatgtcttacaggatcctggttgatgctgatgc
-tgggggttctgggacacactttgagaaccactgCTCCATTGAGCAGCCtttcagtttggg
-tgcccctcggtgctggtgctgggagagagttaggagggcaagggggttagtgagggctgc
-tacctgtgaaacacaaagcaggagggaatggaattggccaggagagcctcagaccacagc
-ccgggcctgcagagtcaccctctaggggtctctggagtaaagattatccacagagaagcc
-ccacatggggcagaaatggccaggccctggtgcctctgctagctcagtctggctgggacg
-acctgggaagaacatggcctcagttccaaagccaaggcggctcctggaggagctgcagct
-ggaggctgtcaccttgctgccctccttgctgctgaaggacaagctttttcttgaagagag
-aCTGTGTCCCATCCACAACTGCCCCAGgcatctaccacatgccaggctctgtgcagagtg
-tttacctggatgaatgcagtttcagatcagagcaacctggccaagcaaatataatcgtcc
-ccatctaatagatggggaaaatgagggattaagtcatctgcccaGTGGTGGAGTCAAGAT
-TTATCCCCTCTTGTGCCTTAGcactcatccctgtcagcttccctgggtggtgaagaacat
-tagctccttttacacctgaggaatctgaggtgtggagaggtcagtgacttgcggtagagg
-tgggtagaggatccgggattccaaccctgctcatgccCCTCTTTTTAAATTTCAAGATGC
-TGTCCCTTGAGTACTTCTAGGGGGATGTAATGGCAGAAACTTGGGGCTGGAAGAAGCctc
-cctggcatttgacaggtgggtacactgaggcccagggaggcaaTCAGCCGTGCCTCAGTG
-CCTCTCTCTGCCCTGAAGGGGCTCCCTGTTGTGTGTGGGGTATAACCCCCCCGTAATTCA
-TGCATTCAGCACACACTGGTGGGCACCCATTGTGGGTCAGTCCCCCAAGCCAGAGTACTG
-TTGGTGAGTGGGAAGGCAGACGTGGGTGCAGAGGGTCTGTGCAGTGATTGGGGATGCACT
-GGGGATTGGAGGGGGCAGTTGACATGTGTGGGGTGCATGCAGGGAGGCTTCCTGGAGGAG
-ATAGTCTGAGAGAGGAGGAGGTGAGAAGGGTACTCAAGGATGAGAAAAGAACAGAAACAA
-AGGCTTGGAGGTGGGGGAAGTGATATTGCCTTTAGGAAATTGATAGAAAATCTGTAGCTG
-AGATAGTGTGGGGAAGGTATGGCCAGAAATGAGGTGGAAAGTGGAAGCTTGGCCTGGGGA
-AGTGGTGGAAAGCTCTGGACTTGAACCATGACCCTGGTTCTGTTCAAGGCAGGGCTACTC
-TCTGCAGGGCTCTGAATTCTCCAGATTTCCCTCTTACCTTTCCGAACTTCCTGCGGTGGC
-CAACCCCTAAAATAGCCCCCAGTAATCTTTGAGTCCTAAtaaccagtaggattttgtgga
-aatgacagagtgtgacttccaaggctggatcatagagtgtgttgcagcttctgccttggt
-ctctgggtttgatccccccggagaagccagctgccgggctgtgaagtcactcaagcagcc
-tgcagaaaggccacatggagagaaactgaggtcctgcctgcagccagcatggacttgcta
-gtcatatgactgagccaccttggaagtggatcctccagccccaggcaagccttcagatga
-cagcagcccagaatcacctagccaggcctgttctatattcctgacccagagaaactgaga
-cacactaaatgatcattgtgttgtacgtcactaagttttggggtcatttgccgtgcagca
-tcagataaTGAGGGCTTCTCTGTGCCCTTTCTTGGCTTCTTCTGTTGCTTCAGCTGCCAT
-CTGATGAAAGTCTGATGAAAACCAAAGGCCCTCCTCCAGAAAAGTTCAGGTACACCCAGA
-AAGAAATGGGGGTGCAATTTCAAAGGGATCACAGGCCATCTAAAACTAAACCTCAGACCT
-TCAGATCCCGGCCCCCAGTGGACATGGAACCTGAGTGAGGAATGAACAGTGTCTCAGTTG
-CTGAGCTGTGGGACATGGTGGCTGCTGCGGGGTCTTCAGCTTGGTCATGGCAGGGTGCCC
-ATGGCCTACATTCCTTTCTCCTCCTCTTCTCTGTGTCCTTGGCAGGCTGCCCCTGCAGAG
-GAGGACCGTGGGTGCCCAGACTGAGTAGGTAAGTTTAGCTCTAAGAGAACAGGTTGAGAG
-AGCCCATCGGTTGTGTACAGGCAACTTCTCAGCCAAGCTCTGCCAGTTGCTGGTGTTCAT
-ACTTGGCTGATGTCTCCACTTCAATACAGAGCCTGCAGGGGATGCAGGCTGTGAATGCAG
-TCCCTGGAACCAGACTGTGGGCTCagccatgagacctgggggatgtacttcaccttcctg
-acttgggcttttcaacttggaattggaggccagaagtccaccctgaagcgtggctgtggg
-gTGGAAACAGGCCCTCCAGCAGGGCAACAGCAGGGGCTCCTTGCCTGGCAGCCCCTCCGG
-TTCTTCAGCCCTTAGCCTCCCCTCTCTGGCTGTGGTCAGTGGCTGGCTCACCAGCCCCTC
-TTATGGCAGTCACTGCTCCAGAGTGCCAGGATTTCCCAGTATGGTGGCCAGGGCTGTCCG
-GAGCCCAGCACGCAGCTCAGGAAGCAGCTCAATGCAGGTGGGACGTCAGTGGGAGCAGAG
-GGCAGCCTCCCTCCCCAGACCCCTGAGGATGAGTCTGTCTCCCTCCTTGGTGCTAActtc
-tctctccttcttacatctccacttctttcttcttcctttatcttctctacctccttctct
-cttctaccttttcccttcttttccgctttttccttttttcatcttcattcttctcttttc
-tttcgtctttctcttcccctttcctcctctctttgtctagtccttcttccccctcacctc
-tccttttcctcctcttcCGTTTcataatgattaagagtatggcttctgatgtcagcctcc
-ctgggttcgaatccctgctgtgccacacactggctgcgtggcgttgggcaagccacttaa
-tttctctgtgctttggcttcctgagctgtacagtgggatgctaacagtgtctctcttgaa
-gggtGCCATGGGTGCCAGGTGAGCGTTAGCTGCTTATCATTCGTGTTCCTTCCTCCCCTC
-CTCTTCTTCTCCTCCTGGTCTTAGAAGTCTGTCTCCCTCCCTCTCTCCAAGCCCTGTGAC
-TCGCCTCTTACGTCTCTCTGCCCAGCATCTTGGGCCTGTCTCTGGCCCCTGCCCTGCTGC
-TTCATCCTCTCACTGCACGCACAGGAAGGAGAGCCCAGGCCTGGGGCCAGGTTGCCCCAT
-GAACAGTTGCTGAGCCAGGTGGCTGGAGCTCTTCCCTGGGGCCCCGCCCACGATGAGTTC
-AGGAGCTGCCTTTGTGCACCCGTGACAGCCTCTCCTGGCGCCTCATTTGGCAGAGCTGTG
-CATCTGGCCCAGTTACTGTGGTAGCCTTGGAAGGCAGAGTGCTCTGGGGCTTCCTTGTCA
-TCTACCTGCGTGACCCTGCATGAAGGGTATGCCCAGCCCTCAGCTGGACTGCCAGCCCCA
-CAGGCACCCTTGGTGCCCACCACACAGCAGGAGCTCATCCACAGATGGGCACAAATAGTG
-ATACCAGACAGTGCCTCtgagtccttgctgtgctaggcactgttctaagtgcaaattccg
-ttcatcttcacagcaacccttgcagtgggggctgttaaccccattttagagatgagcaaa
-ctgaaacacagaaaagcataggaaattgcccaaagttgaatgaatgaatgaatgaatACA
-ATGACAACTTAGGAAGGAAGGCATTTTACTGAAGagtgacaggcccacggtcacacagat
-agtaagtggaaaaaaatcagggctggaactcatgactccaaCATCACCTCCCACCTGTCC
-ATAAGCCCAGTGACAGCAAGGCTGGCACTCCCTCACACTTGGGGTTGAGGCCAGTAagag
-ctgcatttgtggaacactggccaaagcaaaccctctgtgctgagggcacttcagccagtg
-tctcaagcctgtctgcacttcttcttttttttttttttgagacagactctcactctgttg
-cccaggctggagtgcagtggcgcaatctcggctcactgaaacctctgcctccccggttca
-agccattctcctgcctcagcctcctgagtagctgggattacaggcacgtgccaccatgcc
-cggctaatttttgtatttttagtagagatggcattttgccatgttggccaggctggtctc
-aaactcctgacctcaggtgatctgcctgccttggcctcccaaagtgctgggattacaggc
-gtgagacaccatgcccagtcaactgaagttctttgagagtactgttcccattttccagat
-gaggagcctgaggcccagcgaaggcgagcaacatggccaaggtcacacagccagtaggtg
-TGATTCCAAAGTCCCACTTTCTGTCTTCCATCAGGTAGTACTATCTGCCTTCCACTATGG
-AGGGAATGTCCCATTGGGAGACGCCTAGGATGGGGGCTAAAGAAAGACAGGCAGGCCCGA
-CACCAGCCTCTCTCTCTTCTGTCTGCTGTCAACACTATATCTTGGTGCCATTCTGCCCAC
-TATTTGTAGAGAGGCCTGGGTACCAGCCTCTTCACTTTGTCCTGGAGGCCAGGCCAGGCA
-AGGATCACTGTACCCACTTttctttccttccttccttccctccctccctctctttctgcc
-ttTTTATTAAGGTATAAACCACACAAAATAAAGTACATAGagccaggtgtggtggctcac
-gcctgtaatcccagcactttgggaggccgaggGACCCCCCAGCCAAAGCCTGGAGCTCAG
-AACACAAATGCTCCCCTTGTTGAGAGTGGGGAAAAAAATCTCTTTTCAGGTGCCAGCCTT
-AAAAAGAAAGAACAAAAAAGGTAACTCACAGATGACCGTGATATGTGACGTGCATCTGAG
-CCCTTCACACAACCACAGAACTAACTGTCTGCAGCTGCCACAACAGCTGACCCCTCTGCC
-AGGCAGAGTTTGCTATCAACCAGTAACAGCTCCCAGAGGTTTTGTTATCCCTCTGTAGAA
-ATGGAGGCTTGAggccaggtgcagtggctcatgcctgtaatcccagtactttgggaggct
-gaggcaggcggataacctgaggtcgggagttcgagatcagcctgaccactatggagaaac
-cctgtttctactaaaaacaaaaaattagccaggcgtggtggcgcatgcctgtaatcccag
-ctaccagggaggctgaggcaggagaatcacttgaacctgggaggcggaggttgtggtgag
-ccgagatcgtgccattgcactccagcctgggcaacaagagcgaaagtccatctcaaaaaa
-aaaaaaaaaaaaaaaaaaagaaaTGAAGTCTTGATTGACTGAAGTAGGAGGAGCCAGCGC
-ACAGGCTTTGGAGGCAGAAGAGCTGGGACCAGCTCTGGAGGTTTGGGAACATGACTCCAC
-CTCCCCGAGCCTCGTACTGCTGACCAGATTGCTtttgcaagcattgtactacatcttcac
-acaatgctgggaggcagctgttaccaaccccatcttacagccggagaccctgaggctcag
-ggaggtaagggatgtgtgcagagacatgcaCAAAGTGGAAAAATGTGAAAACAGACCTCA
-TCGTGCAGTGTTATTGTGCAATTTGAATTGAATGAGGGATAAGAATGTGAATGGAtgcag
-tccacagtaggtgcttaagtcttgcatggggtctaatagccggtgagtggcaaaaggaga
-acttgtacccagatctgcctcaccccagagcccacctctgagcctctTCATCCATGGGAA
-GCCATCAtcagcatggtgcctggcaccgagtgagcctttgagaaagggtaactGGgtcaa
-aaattattttcagaaagttgaaaacatggatcttatacaaatgtatagtgagcacatgtc
-aaagtgttatttaactcattaaggatggaaccggtaggatggcaaagctgactcaaagga
-ggataaaatggcaaagttagctacgacataggttaatgtcttacagggcaccaaaaccat
-aagctttagcgttatttcttctacaggtcagaaatcatttgcaactcgtgcactttttac
-aagttaccaggtaactttgcttaggatcaggtgacccaggctcatcggacactgccttcg
-cttgatattgaaagggcacacagacaccctttttgtcttatttccaagttttggatattt
-tttctttaCAGTTATTATCATTCCACTTCTCTCTGACGAAAGGCTGTTCACAGGCCTCAC
-AGGTTCCCAGGAGCCCAGGGACACGCAGACCCCACCCCACCCATTCACACAAGGACTCAA
-GGACAGAGCCTCTACCCACAGATGAACTTGGGTGGTGCACAGGCACACGAGCTTGATGGC
-AGGGCACGCCCAGGCTGAAGGGGCCGGGTGGGAGCTAAAACGTGTGGTCTATGGTAGCCC
-AGCCTCTTTCCTCAGCAACCACGCCATGAAAAGATCCCTACATTATTTGTCAGGTAAAAT
-AAAGCGACCCGTAGCTAGTGGCGCGAGATTCTATCCAGCTTAATACGTGTGTATGTGCAG
-ACACATTTATGAGTGTGCATGCAGAGAAAACTCTCTGGGGAAATACCCCCTGAACTGACA
-GCCATGGGGAGTGAGGGTGAAGCGGAAACAATCTTGTAAAAGAAATTCAAAAACCGAAGC
-CCACTGCATTGTTTAAATTGGTTACGTCCAACTTGTTTTCCTGTGTTATCTGTCGCCTGT
-TAATACACACACACAAACACACACATAATAGAATGGGATAGAatatctatatatatctaa
-tatatataatatctaatatatataatatctaatatatataatatctaatatatataatat
-ctaatatatataatatatatatagagagagagagagagcgagagagagagagagagggag
-agacggagtttcgctcttgttgcccagactggagtgcaatggcgcgatctcggctcaccg
-caacctccgcctcccggcttcaagcgattctcctgcctcagcctcccgagtagctgggat
-tacaggcgtgcgccaccacgcctggctaaattttttttttttttttttaatttttagtag
-agacggggtttctccgtgttggccaggctggtctcgatctcccgacctcaggtgatccgc
-ccgcctcgacctcccaaagtgctgggattacaggcgggagccaccgcgcccggcGGGATA
-TTATATTTCCATAAGGCCCTCCGGGGGCCTGGGAACGGACTGGTGCTTGCGTGCGGGGCT
-TTTCCACTGGTTCCCTTCCGTACTCGGGCTTCCCCCGCTGTTGTTACTCCCTCAACGGGA
-ACACAACTCCACCGCCGCCTCCGGGACACACCCCCGCCGCGTGGGCCGGGGTCCGGGACG
-CGCGCTCAGCTCGGCCCCGCGGGGGCGGCGCAGGAGGGAAGGGGGTGCGGACCCCGGAGG
-CGCCGCAGGAAGCCCTCGCCCACCCTTCCCGGCCGGGCCGGGTCCGCAGCTGACGGTGGG
-GGTGGGGAGCAGACGGGCGGGGCGCCGGCCGGCTTGGGGGTCCCCTGGTCCCGTCCAGGG
-GGCTCGGGCCGACTCCGGGCCAGCTGCGGAGGCGGGGGAGGGGACCCCGCTTTCCATGGC
-AGTGCCGAGGCGGCGCGCACAAAGGCGCCGCGATCAGCGCTTCATCGGTTCGAGTCAATT
-ATCTGAGGCGCGGAGGCGGCGGGCGGGGCGAGGCGATTCCCCGGTGGGGCTGCGGAGCGC
-GGCGCCGAGACTCAGAGGAGGGGGCGCTGGGGAAGCGGCTTCTCCGTCTCCTGCTCCGCC
-CCGGGCTTCGTGGCGAGGCGCCGTCGCCCCCTGGTGGGGCCTCATCCATTCCTCGCTCAC
-TCGCTCGTTCACCTTTTTCTCAACCTTACAGCGGGTGGCTCTACGGTACGAGCTGAGGGT
-GAAGTGCTGAGAACAGGGCAAGCGGGCCGTACCTTTAAATGCCCTGTCGGGAGCTGGGCC
-CCTCTGAGTGGCCAACCTCACCAGGAAAGGGCGCTCAGCCTCGCGCTGCAGATGGACTTG
-GAAGCAGACCGTCAGAATGCAGCCCTCCCTGCACGTGATAGAGTAAGGGCCGCACAGGGG
-ATGAGGGCCCGGGGAGGCCCTTCGGGAGAGGAAGAGTCCCAGATGGCTCTCTGGAGGAAG
-TCTGGCCTAAGATGACCAGGTGAAGGGGTGGGGGTCCAGGGAGATGAGGGCGTTGCAGGT
-AGAGGTTTCAGCTATTGCAAAGGGGTTGCAGTACGGGCAAGTAAGGTGCACTCTGGGGAG
-AGTAACCTGTACTTACTGTGCGAGGGGAAGGGAGGTGATCAGTGAGGTAGGTAAGTGGGC
-CAGGGCCAGATGGCACAGGGCCACCTGCAAGCGTGGGCTGAGGGTGGGTTGTCAGGTCGT
-TTCATCATTTCCAGTTTATCCTTCTCCCCTTTAGATTTGGAGAGGATTTGGctgccctca
-cccttgtaagggtttaggcatcattcgcccttgactcctgtccagttgtctcactggtct
-ccctgtatcccttattttgcccttcaatctgcctgcacccatcctccaaaatgacctttt
-taaaagcaaagctcggtggcactacttttcaaaatcACAAATGCACAGGATCTGTAACCT
-GCTGGTTGCACATGACAGAAACCGCATAATAATCATGGGTTAggccgggtgtggtggctc
-aagcctgtaatcccagcactttgggagcctgaggcaagcggatcacttgagatcaggagt
-tcgagaccaggctggccaatatggtgaaaccctgtctctactaaaatacaaaactttgct
-gggcgtggtggtgtacaccagctactcaggaggctgaagcacgaggagaatcgcttgaac
-ccaggaggcagaggctgcagcgggctgagatcacaccactgcactccagcctaggtgaca
-gagcgaggctccttctaaaaaaaaaaagaaaataaaaaaaaaGTCCTGGTGTTAGAGGCA
-TTTTTCTTTtcctcctcctcctcctcctgctcctcctcctcctcctcttcttcttcttct
-tttctgagacagagtctccctttgtcacccaggctggagtgcaatggtgtgatcttggct
-cactgcaacctccacctcttgggttcaagcgattcttctgcctcagcctccagctaattt
-ttgtatttttagtagacatggggtttcaccatgttagccaggctggtcttgaactcctga
-cctcaggtgatccacccgccttggcctcccaaagtgctaggattacaggtgtgagccacc
-acactcagccAatagaggcatttttctgtcatgtaaataaagtctaaagcaggcagtcta
-aaactggcatggtgctctacggttcaggaacctaaactccttttgtcttattatgctacc
-ccctcagtacatggtttccacttcatggcccaacatggctgctcaaacagcagccctcac
-atctgcatccccagatggagagtctttttttttttttgagatggagtctccctctgtcac
-ccagcctggagtgcagtggcctgatcttcgctcactggaatctctgcctcccaggttcaa
-gtgattcccctgctcagcctcctgagtagctgggaccacaggcacgtgccaccacacctg
-gctaattttttgtatttttagtagagatggggtttcactgtgttagccaggatggtctcg
-atctcctgaccttgtgatccacccacctcggcctcccaaagtgctggggttacaggtgtg
-agccaccgcgcccagcccccagatggagagtcttttagtcattagaaaggagaaaggagc
-caaggagggagggaggttcccttaaagactctttcggaagtcacatacaatcttcttgtt
-gatgttccattggctaaacttgatcacatcactacactaagctacaaaggaggctgagaa
-atatgatctgtgttctaggcaccatgtgtccagatgaaaattgaggctcttatttcaaag
-aaaaagTTCAGTCCATggccaggcgtggtggctcatacctgtaatcccagcactttggga
-ggccgaggctagtggatcacctgaggtcaggagttcgagaccagcctgggtaacatggaa
-aaaccccgtctctactaaaaatacaaaaattagccgggtgtggtggcatgtgcctgtagt
-cccagctgctcaggaggctgaggcaggaaaattgcttgaatttgggaggcacaggttgca
-gtgagctgagatcacgccactgcactccagcctgggtgacagagcagaactctgtctcaa
-aaaaaaaaGTATCAGAAAAAGCGCAGTCTGGATATTGGGAAATGACCATCAGTCTATGCA
-TGctcaggagttccatgtctagcagtgtgtcctataggtttgcttaacccatgtgacatt
-tgacacgtttacaaggttattcactgcagcattgtgacagcaaaagactggaaacaacct
-aagtgtcctgtaataggggactggttaaacaaattatgggacatttatacaatggagaat
-gatggccacaaacacacatgaggaaactctcaatgcagtgatatgaaatggtatttaaga
-tgtTTcactttggaaaacagtttggcagtttcttatagagttaaacatacatctctccta
-tgacccagcaagttcacctctaggtttttgctcaaaataaaaatatatatgtatatatag
-ctccacaaggacttctatgcaaatgttcaacagagtttaacatgtgatagacaacaattg
-gaagtgacccaagatcgaacagccaatgaatggataaactggtgagtcaaatattacact
-ggagtttaaatgagtgatccaatgtctgcaaccacatggatgaatctcaaaacatgctga
-atgaaaacaagctggatacaaaaaatagcatgttgtaatgatgccgtttatatgaaattc
-tagaagaggcaaaacagaccaatctatgatgacagaaagcagagcagtggctgcctctgg
-ggtggagggatggactgggaaggagcataaaagaatttcttgggatgctggaaatgttct
-gtatcatgattggggtgttgattacacaggtgcatTTCACTGCATGTAAATTATACCTTG
-ATATTTTTAAAAAGCAGGGTGCAGAACAATGTTTAAATTATGGAATCCGGTATGTTTAAA
-AAGCAAGGAAATTTGCTTGTATCTGCATTGACTGTCTAGAAGAGACTTGTAATAGTGATT
-GTCGGTGGGAGAGGAACTGGGTAGCTGGGGGCTGGGGAAAAGGGACACTTTGGGCCATAC
-CCTGTTATACCTGTTGAATCTTAAACCAGTTGAATGTACTACCTAATTAAAAACTAAAAC
-TGAAAAGATCAGTTAGATGCACACGTGACATCACCACATTCATGTTTTAAATCTCCTAAT
-GGCTCTTCCCGGCAATCTGGACGAAGTTCAGACTCTGAGCTGTCCTGGCCTTATGTGGCC
-CCACTCAGGCAGCATCCTCTCCAACCACTTTTCTGTTCCCTGCAGAGACAGCTCAGTGCC
-TGGCTCCCTCTGGTTGGCCTAAGTGCATATGTGCCATTCCCTGAGTGCTCAGCTCCTCGG
-TGAATTCTCCCCAGCCCCCTGCCTGAGTTGGTCCCTCGGGTCTCACTGGACCTGCTGCAC
-TTTGCCTTCCCCCTTCCTCATCTATCAGATCAACACGTGTTTCCCAGAGCTCTCTGTGAG
-CTGGACCCCAGAGTCCTGGAGATGTGTGGGAGCCACTTTTATGGGGGAACCTGCTTCCTT
-GTTTCTGCTTCAGACAGCAGGCTTCTCCTGCCCTGAGACTCCCAGCAGCGTCTCCTCTTC
-CCAGGCCCAGATCTGGCCTGGGGTAGAAACTTTGATAAAATGTGCTGTCTTTAAGTTAAA
-TATGGCTCCATAAAGAATGCATTCCATGacaagaaccaacagagccctggtttcttagaa
-gatacagagaaaacacactgttgtgggagaattgtgtctgccaaaaagatacatcccagc
-tctaaccctgggacctgtgattgtgaccttatttggaaacagggtttaggcagatgtagt
-caggtcagggtgaggtaatactggattagagtgggctactccaatgactggtgcccttaa
-agagggaaacagacagaggagaacaccacgtgaccacagaggcgaagatgggagtgatgc
-atccacaagccaaagaaggccaaggaggcttgcagtcataaaagctggggagaagcgagg
-aagtgtcctcccttagggctttcagagagagcatggccttgccagcaccttgatttcaga
-cttttagcctccagcactgtgagaatacatttcagttgtcttaacctacctggtttgtgg
-ttatttgttctttttttaaattttttatttatttatttatttttgagacagagtctcact
-ctgtcacccaggctggagtgcaatggtgtgatcttggctcagtgtgacttccaccttctg
-agttcaagtgattctcctgcctcaggctctggagtagctgggattacaggcacctgccac
-cacacctggctaatttttgtattttcaatagagacgtggttccactgggttggccaggct
-ggttttgaactcctggtctcaactgatccgcctgtcttggcctcccaaagtgctgagatc
-acaggcatgagctaccgcacctggcctgtggttgttaactgtagtcccaggaaatgaata
-cacacacaaaaccagttaatacctaagacaattccagctagtggcaagtgctttggaaaa
-acaaaacaaaacaaaacaaaacaaaacaggtgagaagggcgtgggatagagagggactgg
-gaacggtgccacattagccagggtggtcagggaagccctcttggaggaggaggcatttca
-gtggagaGGAGAAGCCCAGCATGTGAGGACCAGGCAGAGGTGCTGGTGAGGGGGCACTTG
-GTGGGCGTGAAAGCTACTGGATGCAGCTCTGACGATGGAGGATACCTGACTGGGATTTTG
-GAGGAAGTCTCCAGGAATGAACCGGGAAGGGGCTATCCTCTCTTTGCCTCTGCAGGTCTC
-AGAACCTGCTGCATGGCTGCTGCAGGCTGTCCCTCGGCCTAGGCCGGCTGGCAGCCGATG
-AAGGAGGCCAGCCTCGCAGCTGACATGCTGCTCTCTAATTGTGATTAACTACCAAGTCCT
-CTCCTGCTCCGGCCTGAGGCCGCTGGTGTGACAGCTGCAGAGTGAATCAATGAGGCCAGG
-AAGGGGTTAATGGGCAGCCCCTCCATCTGAGCCCTTCAGACAATAAGGGGAGGTGGGGAG
-GCCTCTGGTGGGGGTGTGTGGCATCAGCTGGGGTGAGTGAATGGAGGGGACAGAGGCCTT
-GTCCCTGGGGACAGGGTGTGAGTGCTCTGTGGGGAGAGGGGTCAGACCCCCCTCCCATTA
-TTTTCATCCACCTCCATCGTCCTCTCCCCTCCCCCACCCAGCCAGAGCATCCCAGACAAC
-TGCCCTCTTGGCTCCAAAGTGTGCAGCATCTTCAGCCTTACGGAATTCTGAAGCAGAAAT
-TCTAAAAGCCAAAGAACTGCAGAATCGTGACATGTCACCGCTGTGGGAGAGTCCGTCTAG
-TCCTGTCATTCTGAAACTTTCTTTTGCAGTGGAACCCACAACTCCCACCCCAGCTCATTT
-CCCCCCAAAATAATAGTGCATTGATAACATTGAGAACAGACCCTGGTACCAGCCGGCCTC
-ATTCATCCTTCATTCAGCCCCGGTTCTACCACGTACAACTAGGGTAACTTGGGGGTATAA
-TGCATAGTTTATAGgtgtgtgtgtgtgtgtgtgtgtgtgtgtCTTCCCtagagacagagt
-cttgctatattgcccaggctggtcttgaactcctgggcacatgcagttctccagccttgg
-ccttctgagtggctggCTCACACCACCGTATTCAGTagttccgtaggttttgacaagttt
-gtaagttatgtaaccaccaccacaattaatatatagaacatttccatcgctgaaaaatgt
-tgcctcatgccccttgtagtcaatacccttcccTGTGTTACCTGATATGGTAGCATGAAT
-AAAGGTCATCTAGAGTTAGTGACTCTAggccgggcagggtggctcatacctataatccca
-gcattttgggacgccaaggtgggtggatcacttgaggccaggagtttgagaccagcctag
-ccaacatgacaaaaacccatctctactaaaaatacaaaaatgagccaggtgtggtgatgc
-acgcctataatcccagctactccggaggctgaggcaggagaattgcttgaacccaggagc
-tggaagttgcagtgatccgagatcacatgactgcactccagcctgggcaacagcaaggct
-ccgtctcaaaaaaataaaaaaaataaaaaaaTTAGTGAttctaatccttgaactgtgtaa
-atgttaccttatttggataaaggatctttgcagatgtaattaagaggcagaggttggagt
-gatgtggcccaaagcaaagaacaccaggaggctcccagaaccagaaggggcaaggaatgg
-attctgctctagagcctccagaggtagagtggctctgccaacaccttgatttcaaatgcc
-tggcttcagaactgaaagagaatacacttctgttgttttaagcctctcagtgtgtggtac
-ttttttacagtagtctttacaaacaaatatacctagcaaccaccatgccttgttttctat
-ctgtataagttttgcctttgcaaggatgttacatagacagaatcctgcagtatgaagctt
-ttgtgagtttggcttctttcactcagcataacacagttgagatgcatccatgctgttgca
-tgcatcagaagtctgttccttttggatgctgagtagtatttcactgctggatacaccaca
-gcttatccattcaccagttgaaaggcatttgggtcactcctaattgggagcattataaat
-aatgctgctatgaacatgtgtgtatagatctctgtgtggacatacactgtcatttctcca
-gagtagataccctggagtagaattactgggtcatattgtaagtgtatttataattttatc
-agaaattattacccgggcatggtggcatgcacctatagtgccagctacttgggaggctga
-ggcaggagaatcccttgaacccagtaggtggaggttgtagtgagccgagatcatgccact
-gcactccagcctgggcaacagagtaagactctgtctaaaaaaacccaaaaaaccaaagaa
-caaaaCTACAAAGAATCTGATgtggctcatgcctgtaatcccagcactttgggaggccga
-ggttggaggattgctggagctcaggagtctgagaccagcctgggcaacatggcaaaaccc
-gatctccactaaaagtacaaaaattagttgggcgtgatggtgagtgcctgtagtcccagg
-tacttgggaggctggggtaggaggatcacttgagggtgggaggcggaggttgcagtgagg
-tgagattgtgccaatgcactctagcctgggtgacaaagtgagaccctgcctaaaaaaaac
-cccaaaaaacagaaagaaactgacaaactgttttccagtgtagctataccattttgcatt
-ctctccagcaCTTAGTATTGTCAGGTTTTTAAAAATTTAGATATTTTAggccaggcgctg
-tggcttatgcctgtaatcccagcactttgggaggcagaggtgggcggatcacttgaggtc
-aggagttcgagacgagcttgaccaacagggagaaccagatacttgggaggttgaggcagg
-agaattgcttgaacctgggaggcagaggttgcagtgagctgagatcacaccattgcactc
-cagccctccagcctgggcatcaagagtgaaactctgtctcaaaaaaaaaaaaaaaTTAGA
-TATTTtaataggtatgtaacaatcatagggttattgtgagaatgaaatgaacatatctga
-gaatactgcctagcacatggCTCCTGGCTTGGAAGGGTAAGCTCCTCTTATTGCAATCAC
-TATGGGGTTATGTCCTGTCCAGGACAAAACCAGAGGTGAAAACTCAAAAAAAAACTCAGG
-TGGGCCAGGAGGAGGCTGTGGGGACCAGTGAGCTCATGTCCCATCttgaaggtcaaggtc
-ccgggaagcagctcctgagatggaaatctgcatgtgggtggttttccaggtagtgctctt
-aggatcttggaggagccagggaagcaggctcgggcagttgcaatagaggccttgaccagt
-cccatcaggagctgggccagcccttaggacatgtcacagcctgagacagggaggtcatgc
-ctctgtactctgcaagatcagactttggagtggttgcccacaggagagatgttattaata
-tcttgggtgaagcagcccttttaagctgGTGCCTTGATCCGGGTGATGGCTTTGAGGTgg
-aaaacaagcctgagtggtttcagctttcaacttttcaagagaagctatgtatctagattt
-tgatgttaactctccaaacttttttaaaatgctggaaattctagacttttcaaacctgct
-gtgaggggctcacatgccaggcacaagggctggagggggcctgaggctgcctgtCGATGC
-CCCTTGATATAAAACCAggctgggtgcagtgccttatgcctgtaatcccagcacttcggg
-aggccgaggtgggtggatcacttgaggtcaggagttcgagaccagcatggccaaagtggt
-aaaaccccgtctctactaaaaaatacaaaataataataataataataataataataataa
-taattagctgggtgtggtggctcacccctgtaatcccagctactcgggaggctgaagcag
-gagaattgcttgaacccgggaggcggaggttgcagtgagccgagatcgcgccattgcact
-ccagcctgggcaacaagagcaaaactctgtctcaaaaacaaaacaaaacaaaaacaaaaa
-caaaaaAGGAAAACCAAACAAAAAAACCCCCAAAACCTGCTGTGTCATCTGACATCACGC
-TAGTgtctggttgccgcactggagaggacaccccatggggcaggaatctttgggttttga
-tctccaccacatccccagcatgtagggcagggtccagGCCTGGATGCAGCACGAGAGAAG
-GAACGCAGGGCCCGAATGAGTAATTTGCCTCAGTGTGCAGGTCATTTAATTGCAAAGAGA
-GGAAAAACGACAACCAAaaacaaccaaatgaaaaaatgagcaaaggatttgaatagacat
-ttctccaaagatgtacaagtggccaataaacagaggaaaagatgctcagcgtcagtaatc
-attagggagatgcaaatcagaattgcaagcacgagataccgcttcacacctattaggatg
-cctattaaaaaacaaaaacaaaaaACAAAACAAAACAAAAAAATCAggcagagtgctgtg
-actcacacctgtaatcccagcactttgagaggctgaggtgggcggatcacctgaggcagg
-gagttcgagactagcctgaccaacatggagaaatcccgtctctactaaaagtacaaaatt
-agccgggcgtggtggcgcctgcctgtaatcccagctactcgggaggctgaggcaggagaa
-tcgcttgaacccaggaggtggaggttgcagtgagccgagaccacgccattgcactccagc
-ctgagcaacaagagcgaaactccgtctcaaaaaaaaaaaaaaaaaaaaaaaaaTCGCAGA
-Tctgactgtgtgaccttgggcaagttgcttgacctctcagtgcctccatttcctcctctg
-taacgtgagagtaaaaatactactcatacctacctcgtagggctgtcatgaggactgaat
-aagtgcataggtacagacatgcttaggacagtatcagcacatgcaggaattacatgggag
-ttggctgttaATATTATTACAGGAGTggatcaaatccatctctgccatggacttgctgtg
-tgacctagtgcaggtcactttgcctctcttggtccagttttctcacttgtaaaatgggac
-catactgccactctccatagggcaagtgtgcggattcgaggagctcatatgtgaaaggcC
-TCCTTCAGGCGCAAGGTTGGTCCTTGGTTATGCACGTATGTGAGCCTCTTGGCGTGCCTT
-CATATGTGGGGCATAGGCAAGCACTCAAGTGGCCTGGACTCCTATCTCGGCTCTCAATGT
-CCCCGCTTCCTGGCCTGGGATCAGCAGGACCTCAGTGGATCCACCATCCAGGCACATCCC
-TTTCTTTCCCTGCTTTTTTCCTGCTTCTTGGGCGGCACCACCACCTACTGGCCTAAAGCT
-ACATTGCAGCCAATGTGCACAGCGGGGCGGAGGGAAGGGAATATGGCCTTGGGCAGCTGC
-TGTGCGCAGAATATTTACCTCTGTACACGCTTAGGGTGCTGAGGCTTAGGGAGCTCACAC
-GGAGAGAGCCAGCTGTGAAGCTGGGGTTAGAATCCCTGTCTCCCTTTCACCTCACTCCAA
-ACACCCTCTTAGAATGGGAACTCAGTTCAGGTTCTGCCTTGGGCCCTAGACGATCCACCC
-CTCCCTTCTGAGCAGGGAGCCAGGAGCTGAAGTCCAGGGTCCTTGGAAGTATGTCAGGGT
-TGTCCCCCCAGGGTCCTGATTACAGAAGAAAGAACACTGGACTCAGAGTCCAGAGGTTGG
-GGGTCTAGCTTTGCCTTCCCTATCCCCAACTATCAGCAAAACAGCCTTTGGAAAATCCTC
-ACCCATTTATTCTAGCACTTGTCATTTCGAAATATATTTACTGTGGGAGAGCATTTAATG
-TGAGTGTTAGGTTCTAACGCAAGGAGAAAATTATAAAAATAAACAAAAACTTTTAAAGAA
-CTCCTAAAAATCCTTTAAGTCACTCATAAAGTATAATATGGGCAGTTTTCTAAATATAGT
-CCTTTGCAGCAATAAATGCACGGACCATAAAGAACAGCAGTATATGGTGGTGATTGCATG
-CATTTGCGAACTGTAATTTTAGGTTCTGTTCTCTCTCAGGGGTGTGTGGGATTCCGAGCT
-GTGGATCCACACCCCCACATCTCTCTCACAGCTGGGATCATGTCCAGGCAGAATCGCCCA
-CATTGTGTACATCATTCTCCCTTCTCTCTCTCTTTCTGAGCGCACATAGCTGCATTTCCG
-AAGTTACATAATaaaaacagctaacatttattgagctttcattatgtattaggcctgctc
-gcagccctttgctcacgcattaattcattaattcagataatcctcctaagaatgttatga
-ggtaggtatattattatctcttctctttacagatgaggaaactgaggcactgaatggtta
-agtaactagcccaaggtcaaatagTGTACCACCCAGCCCGAAGGCGTTCACCTTgttccc
-gggtaggatcgcagaactggttaagctaggttaccgatccgggtggtgtcagctgatccc
-tcagctgctgtagtgcaagatctgcaaaatatctcaagcactgatcttaggttttgcaat
-agtgacactgtccccaggaacaacttggggaggttcagacccttgctgtcagaggctgca
-cagcccctaaaccttgatttctaatcttgtagctaatttgttagtcttacaaaggcagac
-tggtccccgggcaagaagtggatcttttcaggaaagggctattgtcataatttcctcagt
-tacaatttttgcaaaggtggtttcaatagccagtgagtggtacagcctgaatttgaaggc
-aggaagtccgggacgagaacccacactcttgactggcatactTGCCACCTGAATGGAGGC
-TCCATAGAGCCACGCGTGCATGCTTGTGTACCTGTTGTCAGCCCGCAAGCTCCGTTAGGC
-AGGCTAGAACCTGATCCAGGTTAACTTTGCATCCTTAGTGCTGGTTCTTTCCATCCAGGG
-CCCCACTCAGGGTATATGCTCAGTGACTGTTGTACAAATGCATAAAGCTCAGTTTGCATA
-AAGCTCACTTCAGCTTCTGTATCTGTAAGACAAGAATCAGagccaggcacagtggttcat
-gcctataatcacagaactttgggaggctgaggcgggcggatcacgaggtcaggagttcca
-ggccagcctgtccaatatggtgaaaccccgtctgtagtaaaaatacaaaaattagccagg
-tgtggtggcacgcatctgtaatcccagatactcgggaggctgaggcagaagaatcacttg
-aacctgggaggcagagtttgcagtgagccgagatcatgccactgcactccagcctgggcg
-acagagcgagactccatctcaaaaaaaaaaaaaaaaaaagaaTCGAAATCAGCTCTTCAG
-ATTGCTGGAGGCTCCGACAAGCCCATTGGTGGGAAAATTCTCTTTAAAGACACTGATGTG
-ggctgggcacaatgactcatcctgtaatcccaacactttgggaggccaaggtggatggat
-cactagaggtcaggagtttgagaccagcctagccaacatggtgcaaccttgtctctacta
-aaaatacaaaaaattagccaggtgtggtgacatgaacccataatcccagctactcgggag
-gctgagatgggagaatcgcttgaacccaggaggcggaggttgcagtgagccaagattgca
-catctgcactccagcctgggcgacagagcaagactccatctgaaaacaaacaaacaaaca
-aaaCACtgatatagtttggatttgtttcccctcccaaatctcaggtggggttgtaatccc
-cagtgttggaaaaggggcctggtgggaggtgattggatcttgggggcaaacatccccctt
-gctgttcttgtgatagtgaatggattcttacgagatctgcttgtttaaaagtgtgtggca
-cctcctcctaccccgctccagccatgtagaacgtgcctgcctccccttcgccttctgcca
-tgattgtaagtttcctgaggcctccccagtcatgcttcctgtacagcctgcagaaccgtg
-agccaattaaacttctttttttaaatgaattacccagtctcagttcattataccaatgtg
-agaacaaacgaatacaGACACTAAATTCTCCTTTGCCCACCTCCTGCTTGGTCCCTTCTT
-GAATTTTCAAGCTGCTCAACCAAGTggcctgcaccagcttgggagagctaatcgtgtgta
-tctgtacccaactctacattcagtaacatcatgtttgtagctcgaaatcagcaatggtga
-gtatttacactatggcaattggcaaatgcttcaaacaggagttttcccctctagagatgt
-taaacgtttgccagGAGGAAATCAATCCTCTAATGGCCACCTTcaaggaggcaacacagt
-ggagtgatcatgcttgttggctctggagccagaacacctgggttcaaagtccagctctat
-cacttaccagctgtgtgaccttgttcagttacttaacctctctgagcctcattagtctca
-ttcatgaTTACGTATTTCATTGGGGACTCAATGCCATCTTCCATATAAGTGCTCTCTCAA
-TTAATGTTATATATTAATATTATCAATCAGCTTAAGAGGTGGGGAAACTTTCTTGTTTTC
-CATCCTAGGAAAGGGAGTGCTGAGGACAGGACTTGCAGTGTCAAAAAGGAACCTCAAAAA
-CGGCAATGTGTAACTGCAGGTCTGGGCCATTTTTGAGGGTCTCTTGAGCATTGGCAGACC
-AGATCTTTATGCCAACACAGGTTGTGCGTGTGGGGGTTAGAGGAGGAGAGGCCTTCTCAG
-TTCTTTGCAGGAAAGGCTACTGTTAGCTCTAGAGCCCAGAACAGATTTAGGGGGAGAGAT
-GATCTAACCAAACTTTCCCTCTGCCCTCGGCTTGCCAGTCTTCTCGCTAGTGAACACTCC
-CAGTGTGAGGTAGAGGGTTCCCTGTTCCACCTCCTTCCTCCCTCTGTAGAGGAGGTATGC
-ATTGGGGCAGGTGTGTGTAAGGCCCTCCTGGGGTACCCCTCCAGGGAATCTTCCCATCTT
-CTCCAGTACTGCCCCATCTGACATCCTGCCTGAAGCCACAGGTTTCCCTTGCAATCACTA
-AAGAAGCAGGAGGGAACCAGCAGAACTCCCTGCCCATGTGCACAGGAGGTGATCCAGAAA
-CTTCAAGGGGAAAAATCCTGCTCTCCACCCCAGCAGGCATTGATTTTTGGCTGCGAAGAT
-TACAGtctctctctctctctctctctctctctctctctctctctctctcacacacacaca
-cacacacacacacacacacTCCTGTGTGCCAGGAGGTTCCTAGAAGGTCCTCACTCCTCG
-CACTCAGGTGCTCCAGGGCTAGCCCACTCCTGGGAGGTGCCCACAACTGACCACGATGCC
-CACAAGACTGTGGGAAGGGTTGCCCCATGTGCCTTCGTGCCCCTCCCACTGGATCCCAAC
-gaaggctcttttcacaacaggaatcagagcatgtcactcccaacctgcctaaaccctcca
-atggctcccaccacttttgatcaagacctaaatcctttctgagtccaccccatccttaca
-gggtctaaccttgcttccatccctgtcttcaccccttattcctccctctgggctcctctt
-caggcccttgaggtgccaagctcactcctgccctgggcctttgctgctgctgtccccttg
-gcctggagcactcttcccTGTCCTTTTTGCCCATGTGAGGCTGAGAGGCAGACGGAATCA
-TGGTTGCTAGTGTAGAgaggccacactactggagtttgtatttcagttctgtcaccttga
-actgggtgacctcacccatctctgcctccctttcctccctctatacagtgggaaagataa
-tagcacctacatcttagggtgttgtgagactgattgagataatCTGTATGGTTTTtggca
-gtttctgaaatgcactgtaaactgtctggttctcctcccatcggaaggtgagaatctgac
-tgctccccttgactctgggtgagagggtagggcaacagcaatgctccatgatttcagagg
-ctgggtcataaaaacggtctgcaggggattcacttccagaacagtggagtgaggaacact
-gcagactgctttctggtgaaaacaactgatgatgatttctaaaaaacaatcatttgaagt
-ctctggaaattgtcctaagagcatacagcaagtgaagaaacacttattcaagaaaatcta
-ctaaatctaggtaagaacagtgagtttgtagaacttgagacacaatccactctctttctc
-ccctccattccattttactgttatggaaactcaactgtgagcagccagggccaagaagat
-gggagtcatttccccccaagctcctagtcgatggggtacagcatctccccaggaagggaa
-ggctgccagcatttgtcatcctcccaacagctatatcttacagaggctaaactccaggta
-ggtgtggctgggagactgggatcttccttcctctacccagtccccactcatagggtggtg
-gccacgccaagtgcagcaggctaaaaatattgaagccccagttgcttttgtcttagctta
-cttgttaaagcagaggttccatgcctggagatgcaagctgagaagaccagagactaagaa
-tactgccccaactcagccctgctcataaagcaagaaggttactctgggagaagtgaactg
-ttgtccctgcctccagctccagagcagtgtcacagatgctttgcccaagagagaggcagg
-tcataacaacacagatctttaaagttgtccataaaggaactgactttctttagaacagag
-tatgcagaaatttaagcctaagagtgccctcagaagcagtggcgattttggtagtgatca
-gggacccaaagttgctatactatatcatcttaaatgttcattttccagcaaagaatttca
-agacttgcaaagaaataaacacatgtgacccatacacagggaaagaccagtcaacagaaa
-ctacctgtgagagtgctcagaggtcagacttgcacggacttcaaagcaaccactgtaaat
-atgttcaaagaaataatggaagccatgcttaaagaataagggaaggtaggctgggtgcag
-tggctcatgcctgtaatccccgcactttgggaggccaagaggggtggatcacctgaggtc
-aggaatttgagaccagcctggccaacatggtgaaaccccatctctactaaaaatacaaaa
-attagctgggcatggtggcaggtgcctgtagtcccagctactcgggaggctgaggcatga
-gaatcacttgaacccaggaggcggaggttgcagtgagctgagattgtgccactgcccttc
-agcctgggtgacagagagagactccatctcaaaaagaaaaacaaaaacgaaaatcaagaa
-taagggaagcggtgatgactgtgtctcatgaacagagaatgtaaacaagaagatactatt
-ttaaaaaacttaatggaaattctggagttgaaaagtgcaaaagaaaaattcactagaggg
-gctcaacagtagacttgagccagcagaaggaagattcagtgaatctgaagacagatcaat
-agagatttcgcagtctgaagaacagagagaaaaatatgaagaaaaatgaacaaagccttg
-gagaaatgtgggacacagctaggtgcaccaacatatgcacaataacatatataacagaag
-gagagcaaagagagaaaggaacagaaaaaaatgtgcaaaaataatcactgaagcctttgc
-aaatttgatgagaaacatgaattatgcattgaagaagcttaatgaactccgagtagaaca
-aatgcaaagtggtcaacaaccagatacataaaaggaaaatgttgaaacccaaagataaaa
-agaaaatcttgaaagcaacaagagaaacacagctcatcacatataagggaacaccaaata
-agaccgacagcagatttctcatgtgaaacgatggaggccctaaggcagtgggacaacata
-ttcaaaatgcataaacaaaaactaccaagcaagaatcttacatccagcaaaattatcttt
-caaaagtgatgatgaaagagatatttccagataaacataaactgagaatttgttgccagg
-aaacttaccttacaataaatactaaaggaagttcttcagacagtaatttgaatccacaca
-cacaaaagccaaagtgctctgggaaaggcaagtagatcgttatgaaaggcagtaagaatg
-catatttattcaccttctcttaacagatttttaaaaataatttgtatataattgtattgt
-ggggccaagacatatagaaatgtaatatattttgataataatagcacacaggaggtgagt
-gggagcagagctgtattggattaagaaagtgagaccagatgggaactggaatccacagga
-acaaatgaagagaaccagaaattataagtaagaaagttaataaaacaaagtcttttaata
-tatacttgctctcctttcttctctcagcttcttcaaaagacataaaactatataaagtaa
-taattataacaaagtactgttggttttgtaacatatgtagatgtaatacatataaaaaga
-atagtgcaaagaggaagaagagagaatagtgctatataggagtcaccgggcacggtggct
-cacaactttaatcccagcactttgggaggccgaggcaggccagtcacttggggccaggag
-ttcaagaccagcctggccatgtatctctacatataatagattgaaaccatgtatctctac
-gtataatacaaaaattagccaggtgtggtgtcatgtgctggtaatcctagctactgggga
-ggctgaggagaattgcttaaacccaggaggtggaggttgcagtgaaccaagatcacgcca
-ccacactccagcctgggcaatagcacaaaaatctgccaaaaaaaaaaagatagaaatata
-taggagtaatatttctatatatcactggaattaagttactgtaaatctgaagtcaattct
-gataagttaaaacctatatagtaagcctaaactggtcattaagacaaacaaacagaacag
-tgaaaaagctattaaagaaatttaaggctgggcacggtggctcacacctgtaatctcaac
-actttgggaggctgaggtaggtggatcacctgaggtcaggagttcgagaccagcctggcc
-aacatggtgaaaccccctccctactgaaaatacaaaaaattaggtgggtgtggtggcagg
-cacctataatcccagctacttgggaggctgaggcaggagaattgtttgaacctgggaggt
-ggaggttgtagtgagccgagatcatgccattgcactccagcctgggtgacagaatgagat
-tctgtctcaaaaacaaaaacaaaaacaaaacaaacaaaaaatccaaaaaacagaaattta
-aataatacactagaaaatattcgtttagtgtaaaagatgtcaaggaagaaaagaggaaca
-aaaaagacatgagacatatagaaaataaaaagtcaaatgacagacataaatccaacttct
-ctcaatgatagcattaaatgtgattggatcaagtcaaaagggagagatttcctgactaaa
-taaaaagccaagatcaactatatactgtgtgcagaagatacactcaagattcaaaggtta
-aaagtaggttgggcgttaaaggctgaacaaaatatatcacgcaaacagcaaccataagaa
-aacttgatttgctatattaatatcaggaaaaagactttaaaatgaaatatgttacaaaag
-ataaagaggaacattttataatggtaaaaggatcaatcgatccattgggaagacataaaa
-attatagacagatatgcccctaacaacaaagccccaacatgtgtgaagcaaaaacagaaa
-gaattgaaggggcaaatagacaattcaaaaataatatttggagacttcaaaaccccactt
-ttaataatgaatagaacaactaaacagaagactaaagaaggcaatagaggctgggcgtgg
-tggctcatgcctgtaatcccagcactttgggaggcccaggcgggcagatcacctgaggtc
-aggagttcgagaccagcctgaccaacatggagaaaccccgtctctactgaaaatacaaaa
-ttagccaggtgtggtggcgcatgcctgtaatcccagctactcaggaggctgaggcaggag
-aatcacttgaacctgggaggcagaggtttccgtgagcccagatcacaccactgcagtcca
-gcctgggcaacaagtgcaaaactccgtctcaaaaaaaaaaaaaaaaaaaagaaaaaaaaa
-agaaggcaatagaagacttgaacaacactaaaccaacaagacctaaaagacatctataga
-acatttcacacaacaacaagataatacacattcttctcaagagtacgtgaaaaattattt
-aggacagactatatgttagaccacaaaacaaacatcaatgatttttttatcttttatttt
-tttttttaatatggagtcttgctctgttgcccaggctgaagtgcagtggcatgatctcag
-ctcactgcaacttcagcctcccgggttcaagcaattctcgtgcctcagcttccagagtag
-ctgggattacaggcacccaccactatacccagctaatttttatatttttgtagagacagg
-gtttcaccatgttcgctaggctggtcttgaactcctgacctcaagttatctgcctaagtc
-ggcctcccagagtgctgggattacaggtgtgagcaaccgtacctggacaataaattttaa
-aagattgaaatcatacaaagtaccttctctgactaaaatggaatgaagctagaaatcaat
-agaagaaaaccaagataattcacgaatatgtgaaaattaaaaacacactcaaacaactaa
-tgtgtcaaaatagaaatcacaagggaaattggaaaacaccatgagggaatgagaataaaa
-atataacataccaaaacttacgtgattcagtgaaagcagaaaaatttatagctgtaaaga
-cctgcactaaaaagggagaaaggggccaggcgtggtagctcactcctgtaatcccagcat
-tttgcgaggctgaggcaggcggatcacttgaggtcaggagtttgagaccagcctggccaa
-catggtgaaaccccatctctactaaaatataaaaattagctgggtatggtggcacatgcc
-tgtaatcccagctacttaggaggctgaggcgggagaatcgcttgaacgcaggaggcagag
-gttgcagtgagccgagagcgtgccactgcactctaacctgggtgacagagtaacactccg
-tctcaaaaaaataaaaaataaataaaaaaatttttttaaaaaggagaaaagtctcaaaac
-aaccacctaactctacaccttaaagaactaCAGAaagaatacaaaaattagccgggcatg
-gtgatgggcacctgtaatcccagctactctggaggctgaggcagagaatggcatgaacct
-gggaggcagagcttgcagtgagctgagatcgtgccactgcattccagcctgggcaacaga
-gcgagactccgtctcaaaaaaataaataaataaataaaaaataaaaagaactagagaaag
-aagcacagactaaacccaaagctagcagaagaaagaaaataattaagattggagtggaag
-taaacaaaatagagtatagaaaaacagtggtaaaaaaatcactgaagctgggcatggtgc
-cacatgcctataatcccagcactttggaaggcagaggcaggtggatcacttgaggccagc
-agttcaagaccagcttggctaacatggtgaaaccccatctctactaaaaacacaaaaatt
-agctgagcctggtggtggacacctgtaatcccagctatgcgggaggctgaggcaggagaa
-tcacttgaacctgggaggcagaagttgcagtgaactgagatcatgccactgcactgcagc
-ctgggcaacagagcaagaccctgtctcaaaaaaataaaaaataaaaaaataataaatcaa
-agaaacaaaaaattgatcaatcaaattgacaaacctttagctaaactggctaagaaaaga
-agattcaaattactaaaatcagaaatggaagttcggacagtactactgaacttacagaaa
-taaaaataattataagaaaatactatgaacaattgtgtaccagcaaattggagaacctag
-atgaaacggacaaattctggccaggcgtggtggctcacgcctgtattcccagcactttgg
-gaggcaaaggcaggcagatcacaaggtcaggagattgagaccatcctggctaacatggtg
-aaaccccgtctgtactaaaaatacaaaaaattagcctggcatggatggcacgtgcctgta
-gtcccagctactcaggaggctgagacaggagaattgcttgaacctgagagatggaggttg
-cagtgagccgagattgtgccactggactccagcctgggtgacagagcaagattctgtcaa
-aaaaaaaaaaaaagaaagaaaggaaagaaagaaagggacaagggacagattcctagatac
-acatgatataccaaaactgagtcatgaagaatggaaatctttatagacctgtaatgaagc
-agtgatcaaaagccatccaaaaaagaaaaacctttgacaagtccctggtgaattctacca
-gacatttaaagaagaactaacatcaatctttctcaaactcttccaaaaaatttaagagga
-gggTCGGGGGGCTGGGAGATCCAACATGACctcatccacatgactggcaattggtgctga
-ttgtcagcaggaatgtctgtgttctcctccttgcggtcactcttgctctgttaggtcaga
-catcatcccttacatagaggcccaagggtccaacggtccaagtccaagactgaagctgca
-aggtctcttgaggcagaggctctgaaaaccacatgatgtcacttctgtcacacgctattg
-gtcaaagcaagtcacatgcctcactcagcttcaagtcagtggagaaacagactccacctt
-ggatgggaagaatagcagagtcacattgcaaaggggtgtggataagggttgggaggaatg
-tgtagccattaatttacaCCAGATAATGTGAGTGTTTGCACTTTACAAGGTCCACAGGTC
-CACtgatacagtttggctctgtgtccctacccacatctcaccttgaattgtaataatacc
-cacgtgtcatgggagggaccccatgggaggtaattgaattatggggcgggtttttcttgt
-gctgttctcgtgataatgaagacatctcaagagatctgatgtttttatcggggggagttc
-ccttgcctgccaccatggaagatgtcccttgactcttccttcatcttcagccatgattgt
-gaggcctctccagccatgtggaacagtgagtccactaaacttgtttcctttataaattac
-ccagtctcaggtatgtctttattttattttattttattttattttattttattttatttt
-attttatttttgagacagagtcttgctctgtcacccaggctgaagtgcaagggcaccatc
-tcggctcactgcaacctccgcctcccacgttcaagagattcccctgcctcagcctcctga
-gtagctgggactacagtgcacgcctccacacccggctaatttttgtattttagtagagac
-agggtttcactatgttggccaggctagtgtcgaacttctgatctcatgatccacctgcct
-cggcctcccaaagtgctgggattacaggcatgagccaccatgcccggcctcaggtatgtc
-tttattagagcgagagaatagactaatacaTCCACCAACCCTAGGAAGTCAGTGGAAGGG
-TATTTCCGTATTTCATATGGAAGTCATTTCCATATGAAAATTTAGCCAGAGGATTTCATG
-CTGGTTGTCTGAAAGCCAGGAGCTTCTAAAAAACTTTCAGGGTAGCTGTCTAAGCATGac
-ctcatgtcatcctgttgtgagtactaaattagttaattcaggggaggcactcagaaaagt
-gAAGAAAGGGAAATCTTTCTTATATAAATCTTAGAAATCTCATAGAAATCTTAGGAAAgt
-gcctggcgtgcagtaaacacgtgatacatttcagttgttattatcttcacaataattttt
-ttgggtcaggcttgttattttccctgttttacagattaaggggcagagactcagagatgc
-gcagtaagtcgcctgagggttacgcagcaaataagcagggaagccagatgagaacctaCA
-TGACAGAGTCACCCATGTGTGAGACTCCAAAGCCTCATTCAGGTGCACAGAGAGGCGGTT
-GTGAGGACGttcactgctgcgttgccttcagtagcttaacatcagaaacagcgcagatgt
-ccaccaacaggggccacccagtaaaccccagcatgcccagccaaggagtgctttgtgctg
-gttacaagaaatgaggtcacgctatacataggacatgggatcatctccaagacattctgt
-tcagtaaaaagaacaTCTGAAAAAAAAGTTCCATAACCCACAGAAAATACTGCCAAATAT
-TCCAAAAAATCTAAGTCCAAGTGTGTGTGTATGTGACCTCTGGAGGCTGATCTGAAGCAA
-ATGTAGGTGAATTAAACAATAGGATCTATTTATAGGACTCTTCTTTTCCTACTTTTCTTT
-ATTTTTGTTGGATTTTGAAACATGTTCAAAGAAAAATTCAGAGTACAATAAAGTACCagt
-cgggcatggtggctcacgcctgtaatcccagcactttgggaggctgaggtgggtggacca
-cctgaggtcaggagttcgagatcagcctggccaatatggtgaaaccctgtctctgctaaa
-aatacaaaaattaggtgggtgtggtggcaggcacctgtaatcccagctactcgggaggct
-gaggcaggagaattgcttgaacccaggaggcaaaggttgcagtgagctgattgtgccact
-gcactccagcctgggcgacaagagtgagactgtgtctcaataaataaatgaaagaaagaa
-agaagaaagaaagaaagaaagaagaaagaaagaaaagaaagaaagaaagaaagaaagaaa
-gaaagaaagaaagaaagaaagaaaaagaaaaagaaccaagaagaaaaaataaTCACCGGA
-GATTCCtcccctcccctagagctaactaggctaacattttggtatatatctttccagtcc
-ggatcctgtgtgactgagtgtgtatatgcatatgtattattttCAACTGTtggctttctc
-cttgtggtccaagacagctgctccagatttagccattacatctgtttcctgccagcaaga
-aagggaaaatgggaagtagagggccttttaagtatacaacctagaatttacacacattat
-tctttatcacatctcatttctctaaatgtagtcgcatggccatcctggccagaaggaagc
-ctgggaaatgtggtctttcctctgggctgccttgtgcccagtgaaaagtcaggggttcta
-tgactatgaaagaaacaggagaatggatattgtggcaactagcagtGCTATTCACCTTTA
-TTCTCTCAATGGTAATATTTTTCCCCATCAAGAGGGGAAAATTTGTGTCTTACATTCTAA
-CCACTGAACTCCGAGAGAAGACACTGGCCTGTGCCAttctcttgcgatggagtttcgctc
-tgtcgcccaggctggagtgcagtggggtgatctcagctcactgcaacctccacctcctgg
-attcaagcaattctcaggcctcagcctcccgagtagctggaattacaggcacctgccagc
-acacccctttttagaccacatagggtagcttccgactgttgccatggcatttgtgaattg
-tcatgtgctggtgggagtgtctcttagcatgctaatatattataattagcatatatatta
-taatgagcagtgaggaggaccagaggttgctttcatcaccatcttggttttggcgggatc
-tggccagcttctttactgcatcctgtttgttttatcaataaggtctttgtgacatgtacc
-ttgtgAAACCAGTCCTGCCTAAGGGAGCGGGGCTGGCGGTTGTTCAGAGTGAACAATTCA
-AAGTCAGGTCCTCCCTCTTGGAGCTCAGAGACTTGAAGAGCAAGGACCACTGTCAGGACA
-CAACCCCATTTGCAAGGCCGGGGACACACATACAGACCCACAGGCCATTGTAGAGAAAGT
-GTTAAAAGATGGAAGTCAAGCCACGGCCACTGGAAGTGGTGTGCCCTGAGAGGCAGAGGG
-TTCTCCCTAAGCCAGGGAAGGACAAGGCAGGGCAAGACAGAAACTGGGCCTGGGGCCAGG
-ATTCCTGAGCTGGGGCTAGATTTGCCCAAATCTAGGGCAGGGCTGACTGGGTCAAGCACA
-GCAGGGAGCCAGGGTGGGTCGATCCCCCTGCCACAGGCTTCACTCTTCTGGCTCTGGTTT
-CCAGGCAGTTCTAAAAGCCTCCCAGTggcccagtgcagtggctaacgcctgtattcccaa
-cgctttgagaggccttaggcgagcagatcacttaaggccaggagttcgagaccagcctga
-ccaacatgtcaaaaccccgtctctactaaaaatacaaaaattagccaagcgtggtggcag
-tgcctgtaatcccagctacttgggaggctgaggcaggagaacccaggaggtggaggttgc
-agtgagctgagattgtgccactgcactccagcctgggtgatagagcaagactgcatctca
-aataaaataaaataaaaaaaTCAAATCAAATAAAATGTCTCCCAGAATACACCACCCCAG
-CAAAATGGCAGGAGGGAGTGTCACCTGGGGACCTCCACTTTGGAGGTTTGAGTGGGCAGC
-TTTAAGCTGGAACAGTCACTCTTGCTGTGGGTTCTCAGGGCGGAGACTGAGCCCCCACCC
-TGCCTCCTCAAATGCATTTCCTCTCAGCTCCCACCTGCCAGCCCAGGAGAGAGGGAGGGC
-CATTCTGTCCTTTTCCTGCAGAGTCCCTTTGTTCAGTTGGTGACCAACATCCTGAAAAAC
-ATTCTCAGGAGATCAAAAAGAAGAACATTTTGGTCTATGTGGTAGGTTGGCCCAGTGCAC
-CACGCCCAGTGCAGGTCCCTCTTGAAACCACCTTTGGGAAATTATGACTGAgacaccacc
-tttgcaaaattatgactgagacaatgagagatctttttttttttcctttgagacagagtt
-tcgctcttgttgcccaggctggagtgcaatggtgtgttctcggctcactgcaacctccac
-ctcctgggtttaagcgattctcctgcctcagcctcccgagtagctgggattacaggcacg
-cgccaccatgcctggctaatttttgtatttttagtagagacaggtttctccgtgttggtc
-aggctggcctcgaactcccaacctcacacctgaggttgcctcagcctcccaaagtgctgg
-gattacaggcgtgagccaccacgcctggcccacagtaagaggtcgaacttaacctactct
-atcttgcttctaacctccaagctgtccttgttcattcctgggcataagctgaactaacct
-tgggagaaacttagtttatactttaaacagccctttcccaaagcagacctccttcttgcc
-tggggactaagctgcctttgtaggactaacattagccacaaaattagaaattttggttta
-ggagtcatgcagctggaggctacaagatcctgaccctccctaaactactcctgacatcag
-ggcttgagatatttttcagaccctgcacttgatggatcagctggcatcacccacgtcaat
-aaactggctcatctgatcttgtggcccccacccaggaattgattcagctcaggaagacag
-cttggactccctgtgatttcaaccctgaccaatcagcactcctggtgcactggcttctcc
-ccacccaccaagttatccttaaaaactcttctccccaaatgctcggagagacagatttga
-gtcataaaactccagtctcccacgcagctggctctgtgtgaattactctttctctattgc
-atttctcctgtcttgatgaatcggctcttgatgaataggcagcctgcaaggtgaacccct
-tgggcggttccaCTCTTTGCCCAGGGTGATGTTATTTCTCTCCAGGATGGCTGCAGCGGC
-TTCTGAGCCTGCTTGCATCTGGTGTGGTCCCTTTCAATGTCACGCAGGCCAAAGCAGCCC
-TCCATCTCTCCATGATCTTGGCTTCCAAGGTACTCTGTCTCTCTCTCTGGGTCGCCATAC
-TGGCTTCCATCAGGCCCTGGAATGCATCCTGCTGGTTCTATCCCTTGGCCTTCAAAAGTG
-CGGTTTCCTCCTGGAAGGCACCTTCTGCCTTACCTCACACTTCCTTCCCTCCTACCTGCC
-TTGAGATACCAGCTTGCAGGGGCATTCTTGGGAAAGCCGACCCCTTGGACTGAGTCTGGA
-GTTTTGATCTCTCTCTCTCttttttttttttttggagatggagtttcactcttgataccc
-aagctggaattcaatggcgtggtctcggcttaccacaacctctgcctcccaggttcaagt
-gattctcctgcctcagcctcccaagtagctgggattacaggcatgtaccaccatgcctgg
-ctaattttgtatttttagtaaagatggagtttctccatgttgatcaggctggtctcgaac
-tcccaacctcaggtgatctacctgccttggcctcccaaagtgctgggattacaggcatga
-gccaccgtgcctggccttttttttttttttttttttgagatggcatctcactttgtcacc
-caggctggagtgcagtggcaccatcatggctcactgcagcattgaactcctgggctccag
-caatcctcccacctcagcctcttgagtagctgggatcacaggcatgtgccaccatgccta
-gctaatttttgtatttttttttgtagagacagggtctcattatgttgcccaggctggtct
-caaactcctgggctcaagcaatcctcctgcctcaacctcccaaaatactgggattacacg
-tgtaaaccaccacatccagccCTGATCTCATTCTTCAGAGAATTTACCTAGCTGGTCACT
-TGGTGTCTGTAGGAGCATCGCCTCTCAGGCCTGCCTCAAAACTGCATTTCAGTTGGGAGT
-GGGGCGGGGGGAGGGAGAGTGTAGTTTGGGGACATCAAGCGTCTGTGGTGGATCTCCTCC
-CAAAGTGAGACTGCTTTTTAATGatatttattgagcacttactgtttgccactgcggtgc
-taagcactttgcacatactagctcagtgcatccttacagcaatcctgggagggaggtgct
-tttctcatccgcatgtgctgacaaggctgagAAGAGCTGGGTCTTGCACGGTACCTTAAG
-GGCTAAAGACCTGCAAGGATGGTGCATGAAAGCAAAACCAGAGAGGCGCCTTTTCCAAAT
-GCCAATGCGCCCTCCACCCAGTCCTTCACAAACCACATCAGCATGGATAGCACCACACTC
-CACAGGCTTTTCTGCATCTCCTTTGTGTGTGTGCACATGTGTAATTAATTCTGGGGCAAC
-TTCCTACATCAGTACAGAGAAACTCCTTGATCATTATCCACTCCAACATCCTTCCTGGGA
-GGGACTGACTGGAAACCCAAATGCCCTtgtaagggcaaatacaaaaactaaaataattct
-ccctggtgcagaaaaaggaaagaaacctcccgtttcctgttcttaaacactctagagcaa
-acactttagaaaacttctcaattatttctctgttcctttaagatgtgtctttttaaaagc
-caggtgagcctcctgccagttttacaagccagggatgttttcccaaggacctaggagcca
-tctctttggaaggtaaacatcaagattgcacccttctcatccagtctccatgggcagata
-ggagcctaacttcagtgcttggctccaagttgcaaaacaatccatcgtctatcataaaga
-tgtgagtttatattttctctggataaagacaattagctaacacagatggccactccaatt
-accaggtgaattcgggatgaaataagttgcaaattgtgttgtgcagtcatctgactcgag
-aactatttttttttttttgagacagagtctcgctctgttgtccagtctggagtacagtgg
-tacgatctcagctcgctgcaacctctgcctctcaggttcaaacaattctcctgcctcagc
-ttcccgagctgggattacaggcgtgcactaccacacctggctaatttttgtatttttagt
-agagatggggttttgccatgttggccaagctggtctcgaacttctgactttaagtgatct
-gcccaccttggcctcccaaagagttgggattacaagcatgagccaccaccccggccctag
-ttattatttgaggacatgtatgcaataggttatacctgcttggttatataggaggacgaa
-atgtatttctctttgtaatctcttttgtggattgcctgtgatgcccactgcagtctggtt
-taacgcttatttaataataaaactgttttctcttctacttttgtggaaaggttttctgga
-ttagATCTTTAATTTTGTCTCCAGCATCTTCaaatgtctttctacagagggttggttaaa
-taaatgtggcatctccacaaaagagaatactgcacagtcatggcaaaaaaacaaggagcc
-tgttttcgttgttgaatgaaaagtgcaaggtgcacaacagtttactactttttctgtaaa
-aaaagaggTCTGAGAAGGCTGTATTTGCCATTTGTATAATCTCTGGAAGGGTAAACAGCG
-ACTGATAAAAGTGCTCgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtTAAGAGAAAC
-TGGGCAGATGAGGGAGAGGAAAGGGATGAAAACCTTTCTCTGTACACCTTATATTTTCTG
-ATTTTTTGAAACACGTGACTGTATTACCTATTCACAGTAAGTTAACAGGGATGGGAAGCA
-TGGTGGTGGCAAGCAAACGAAACCTCTAAAAAGAAGTCCCAGGggccgggcgcagtggct
-aactcttatgatcttagcgctttgagaggccaaggtgggcagattgcctgaactcaggag
-ttcgagaccagcctgggcaacatggtgagacctcgtctctactgaaaatacaaaaaatat
-gccaggtgtggtagtgcgcacctgtagtcccagctactccggagactgagaggcaggaga
-gtcacttaaacctgggaggcagaggttgcagtgagccgggatcacaccactgcactccag
-cctgagcaacaggcaggactctgcttccaaaaaaaaaaaattagccaggtgtggtggtgg
-gcacctgtaatcctagctactcaggaggctgaggcaggagaatcacttgaacctgggagg
-cagaggttgcagtgacctgagattgcgccacggcactccagcctgggtgacagagcaaga
-ctccatctcaaaacaaaaaaaGCCCCAGAACCAGACATCCTTAAGCACTTGATTCTGTTC
-ATTTCTGAGCTCAGCCTTGAGCTTAGAACCAAGTGAAAACTAATTACACATTTTCGGAGT
-TCACATTAAACttcttctttttaaaattattatttttgagacagaatcttgctctgtcac
-ccaggctggagggcagtggcacgatctcagctcactgcagcctccacctctggggttcaa
-gcaattctcagtctcctgagtagctgggactacaagcatgtgccaccatgaccagcaatt
-ttttgtatttttagtagagatgggtttttgccatgttggccaggctgatctcaaactcct
-ggcctcaagtgatctgcccgccttggcctcccaaagtgctgggattacaggtgtgagcca
-ctgtgccATGCCTGAACTTCTCCTTTGAAGGAAGATCTGAGTGTAAAAGCAGGGAATGCC
-TTTATTTAAAAAAATGAAAAACAGAAACTAAAACAAAATAACAATCACCTCTGTTGCCTC
-CATTTGAGAGAATACTTCCAGGGGCTCTGCATGTCTGGTCCCCAACCTGGTCGGGGAGTT
-CACTTTCAGAGGCTCAGGGATGGGCCTTCCCCAGCCCCACCAGCAAATCATCTCTCCCGG
-CTTCCAGGAGGGTACTTACTCTCCAACTAGTGGGCTTTATGGGCCAGGAAGGATGACAGG
-AAGGGGTGTGTGGGGTACTACGTCCCTCCACACTGAGAATCCGAAAGCCAAGATGCCCAA
-GATTCTATCGTTATCTGCTTGTCTTGTAGAAGCCCCTCTGTGAGACTGAGGGGCAAAGGA
-GAGAGGGCAGGGGCGTGTCTCAACCCTTCTGGCCACTTCTAGGTTGTGCAGACTGCCACT
-CTTGTTACTACGATGGACTGTCAGATCAGCAGGTGGCCCAGGAGGGCTTGCTTGATGCGG
-GCTGCTTTTTCCTTTTGCCTCCGTGCCATGcctgtgaggtagttggtacttactggaatc
-cccactgcatgcatgaagaaacaggcacagagaagccaaatgactttcccaaggtcacac
-agcctgaagggacagccggctgtcccagctgtttcccttctaacacccttgggcctgcct
-ccagctagatgctgcAAATCAGTCCTCTCTTGAGAGTCAAAGCAAAGGAGATCTGAGCTG
-GTCGTCACAGGTAGTGTGACACAGAGTTGGGGATAGAGCCGCACCTTGCATTTCCAGGTG
-CCATCTTCCCCACAGTCCCCAGTGGGCACTTGCGTTCATGATTCAATTACTCAGGCTCTG
-TCTCTCTGTTCCTGCCCCTTGCTCTGTGACCTGGCCTCTCTGGACCCCAGTTCCGTCCGT
-GAGCGATGGGGGCGGGGTCGGCGGCCTGCCTAGGCTGGACAGTGCAGATTGCAGAAGTCC
-GCGGACGAGAAGAGCCGCAGCACGTTGACCAGAGGGAACATGAGCAGCGCTCCGAGCAGC
-GAGCCCAGCTGCACCGCCGCCCCGCACCACAAGAGGGCGCTGCGGCTGAGGTCGCGCAGG
-ACCACGCCCAGCATCACCTTGACGTAACTGAGGCAGCCGCTGAAAAGCACCCACGAGGCC
-ACCTGCGGGGCCGGGAGGGAAGAGGTGCAGAGTCACGGGGCTTGCGGGGCGAGCGCCGGA
-GCAAAGAACTCTCACAGGGCTCAGGGGAACCCACGGAATACTCTCTAGGTGCGAGGAGCG
-CCTTCTGGGAGTGAGCCTGCGGGGCCGACGGGTCCCATGAGTTGGCCGCCCGGGGGCGAA
-GGAGAATCCAGTGGCTTTTCTGGGTTCACGTGCCCATGATCAGGGCAAGGGCCCTTGAGA
-GAAGGCCCCTGCTGAGGTACACATGGTGGGAAGAGGCCTACCAGTCACCTCGATTCCCTA
-AGCCTCCACTCCCAAATGAGGAAGGGGCGCTTCCCCCACCTGGGGCTTCCCGGGAGGGTC
-CCACAGACCCCGCTCGCTGGAAAGGGCCGCGCCCAAGCTCTCCCAGGCCTTGGCTAGGGG
-TGAGGGGTACGCAGCGGGAGCAGCCCCACCGGCCGGATACTCACAATGAGGACTTCCCCA
-CCCCAGTGGCCCTGCAAGAGGGGGCAGGGGCTCATCACCGCCATGGCCATGTTGTAGCCC
-CCAAAGCAGGTCCCAAGCACGGAGAGGACCCCCAGGAACAGCAGAGACCTAGAGGAAAGT
-AGGGGAGGTGAGTGGAGGTGAGAAGCCTGACCTCTGACCCCCCCGCCCCACTGGGCGGCA
-TGTGGATGGCCAGTGTCTCCATAGTTAGTTTAGACCCATGTGGAAAATTCCAGGTTGCCT
-GGCTCAAGTGGGTCAGGGAGGCTCCTGAGCAGGCAGGGCTGGCCTGAGTCATCCCCAGCA
-TTAACGGCAGGGCCTGGCACCCCGgcaagaaaaacataatggactctggcaccggatggt
-cctggttcaaatcccagttctactgtttaagctgAGACTCGCCTCTGAGCCTCCAAATCG
-GAGTTTTGCAAGGCTGCATGACCTCCAGGAGCAGAGCATGCAGGCCTGGCGCCGCTGTGG
-GCCCACCTGGTGTTTACCTGCTGGCATTTCCTCCTGCAACACACCCTCAGCCTCAGCCAG
-GAAGCTGAGTTGAAGTGAAGATGGCTGGATCGGGCATTGGCACAGTAGGGTTTGCTGTGC
-CTCCTCAGGAGACCCCTCCCCTTCTGGCCTCAGCTACCTGCCTCTGCAATGTGGAGTGTG
-CTGATCTCCAGGGGTCCTGGCAGCTGGCTTGTTGCTGCTAGGAGCATCTCTCTACAGGTG
-GCCTTCCATGCAAACCTACATCTGGGACCACTGTCCTTCCTCACAGGTCCTTGTCCCTGG
-GGTCCCAATCTCTAGAACCCCAAGACTGGTCCACGCCCTGGGTAAGAACAGACAGAGGTC
-TGCCTATACCCTTAAAGACTCTTTCTGCTCCAAGATTCTTGGATTCCATGACTCAGATTC
-TGTAATTCTAACATTTGGGGTTTCTTGGATTTGCAGGTCTGAGCCTTTGGTCCTGCTTCC
-CTCAAATCCTCCATCCTCTTTCCAGTTTCTAGGTCCCAAGGTAGAAAATCCAGCTTCCTG
-GCAAGCTTTCTGTCAAGCTCTTCTGTCCTCACTGTCCTTCTTCTGGGCTGGGAGAGTGGG
-TGTAAGCAGGCCAGTGAGGACAGGCAGGCCAGCGTGGATACGAGGCTGTAGGACCCACCT
-CAAATGTCAAGATCCCAAGGTGGTAGTTCTCCTACAGGGGTCTGAAGCCCCTGCCTCAGA
-ACCGTCTGGTTTCCTTACTAAAAATTGAAATCCCAGGTCCCAGTCTAGGCTGGTTCAATC
-TGCATTTTATCAACTTGCCCAGCCATTCTTCTAGAACTGTGGCTCTAAGGGAACCAGCAG
-GAGGTTAGAGGCAGGAAGGCAGGGCCGAAATCCTGGGAATTAGACCAGGTCAAGCTCTTT
-CTCCAAGCCTCAGGGTTTCCCCTTATAAACGGGAACCTCAGTGGCTATCTGCTCCTCCTC
-ATGGACTGATGACaatgatggtcaacgcttaggctggacctgccacgtgccaggcaccgc
-tccaagagctttatagaatcagctcatatcatgcttccagcagtcctaggaggtggaatg
-ttacactcccattttccgataaatatccctgaggcacagagaactgaagtgacttgtctt
-acacacagctgacaggtggcagagctgggatttggaccagggtgctccccaaacatgttc
-ttaaccactaCATGTACAGCCCAGTAGGTGCGTTTGGAATTCTGGGTTCTGAAATGAAGT
-GTTCCCCCACTAGGATTCCCTAGGACCAGATGAGGGCACACCTGTTAGGCAGGAACATGG
-AGACCAACGAGGCAAGAGGGTTGGCCACAATGCTGAGGGTGGCAGCCAGGTGGTAGGCAA
-CTGGCCCATAGGACAGGCAGGAGTAGGTCTGCACAGAGGGCAGCATGCCGTTGGTGAGCG
-CGTTGACGAAGGCCACCAGGGTATAGATGAAGGCCAGGTGCGCCGGGCAGCAGGGGGCTG
-CTTTCTCCTCTAGATACCCCTGGCCCTGGCTGCTGTCCACCGTGCCTGCAGGGCCCAAGT
-CATTCTCTTCCCGCGGCCGGATGGAGTGGAGGGTGACCTGGTCATTGAGGAGGTCTTCCA
-CGGAAGCCTCCCAGCACCTGGGTTGACGCTGGAGGACAAAGAACGCCACGAGGCAGCAGG
-CCATCATGATGGATAGGAGGAGGAAGAAGACCAGGGGTGAGAAGTGGGCGGGAAGGTAGC
-GGCTCTCCAGGTGGGACAAGGGTGCTTCCATTCCGGGGAGGGCGGACACCAAAGCTCTGG
-GAACTCCCTGCAAAGGACAAGACAGATCCCTGGTCAGGGGAGGGGATCAGGCTGCAGAAC
-AACAATCATGACAGTGATAACAGAATACAGATCACCTGTTATTATTAATGGATAATGAAT
-AAATAAACATAACTAACAAGGTGGCAAtaatgactgctcatactgactgcccactgagca
-cgggcactgtgcatggataagcccctatgcctcctaacagggctgcacagtgggcaccat
-catcccccattttagagggaactgaggtatcagaatgcttcgtcccttacctgagggtca
-cagggagaatgtggcaaagccagactccacctggtgctttctgacttggaagctacacct
-tttatcaccccacAGCAGTGGCAACCACAAACATGTTCAGAGGAGGAGCTAGCTGGAGAC
-TGAGCAGTGGAGCCGCCCACCTAAGAGGAGAGCCCCCACCTAAGGGGAGAATCCCCCACC
-TAAGGGGAGAGCCCCCACCTAAGGGGAGAATCCCCCACCTAAGGGGAGAGCCCCCACCTA
-AGGAAGAACACTGCTCCACCCATCGTCTAGGAAATAAGGGCCTTcaggacatgccatccc
-aaaatatgactgtaggaggccagaatatgccaccccaaaattgacctattggcatatttt
-ttatttctagctggttattttgaaaaattgcaggctaaggagtagctctgaaaagttgcc
-attttgtaagataaatttacatctaaaggaaatttttattagtaaagctatcttatctgt
-accaagaaaaggtatctgtaccacgaaggggtatctgaaccaggaagagaaaggtgatgg
-cctttatcacccgaggaacttttatctgcataacagtgcaatgtttattcaccataagtt
-tcctcccttcactctcccataatttgtctccaccatcctgcagtagcctcaagcccctat
-tcccttttgtagctcaggatgctatagaagctgaaatcatctggcccttttttgagtctc
-atattttttggggactcccatgcgtatgtatgtaagtaattaaaatgagtttcctgctgt
-tgatctgccttatgtcagtttaactcataggccgaccaaagaacctagaaggatggaggt
-gagcagtttttccctcccctacaTTTGTGATAAAGCCAAGTGCTGAGATGGCTCCGGGTG
-ATGCTGGGTACCTGTGCGATGTCAGTCTCCCTCGTGGGTACAGGGCTTGGTACGCTGTCT
-GATATCTCAGTGACATTGACGCAGGTAGTGAGACCGGAGCCCTGGGCAAGAGCCACCAGG
-GCGGGCAAGAGGCCGCTGAGTCCTTCACCCACAAAGAAGGTGGTGAGGTAGTAGGTGGGC
-AGCCGGCTCATGAACGGCAGGAAGGTCACTGAAGAGGTGCAGTCCACCAGGGCCAGGAAG
-AAGGTGAGGACCAAGAAGGCGATGCTGTGGTGGCCGTCCAGCACCCAGGAGGTCATATTC
-CAGAGGAAGGCAAAGATGATGCAGGTGACGGTTCCCACGCCCAGCAGGGTGAAGATGATG
-GGCACTTCGGAAAGGCAGCTGGGCCGGAAGTGATGGAGCAGGGTGACCAGGAGGGGCCCG
-ATGTTGGCCAGCTGGATGACCACCGTGAGGTAGGAGGGCAGGTACCAGCCCTCGGGCAGC
-TCCATCACCAGCAGGGGCAGCTCTACCCAGAGCCCATTGATGGTCACCCAGGAGCCCATT
-CCGAAGACGCAGACCAGCAGGTGCATCAGGAAGGCCATGGCGGTATCTGCCCTGGGCCAG
-AGGCTTTCTCAGATCAGCCTGCAGCGGGGCTGGCAGAGAAGGACACCAGGTGAGTAATTC
-CAGCTTCACCACCTAGCAAGATGCTGGGACCTGGGGCCCAGAGTTTTCTCTTATTACTCC
-CCTTCCTGTGAACAAGCTGGCttttttttttttcctttgagacatagtttcactctttta
-gtccaggctggagtgcaatgggatgatctcggctcagtgaccctctgcctcctgggctca
-agtgattctcctgcctcagtttcccaaatagctgggattacaggtgcatgccaccatgcc
-agctaattttgtatttttagtggaaacagggtttccccacgttggtcaggctggtctcga
-actcctggcctcaggtgatccgcctgcctcggcctcccaaagtgctgggattacagtgtg
-agccaccacgcctggccCAAGCTGTCTTTTTATTAGCAGAAAACAAGAGAAGCCTTTCCT
-AACCGTGATTCATGAAAGAAAAGTTCAATCCGACACACAAAAGCaaacaaagcagcttct
-gcaaaagataccaacagcaaggtcaaaagttaaatgaaaacacggggaaaacatttgcca
-cataaatcacagacaaagggctcatcttccttgtcaggcctctgagcccaagcctgcgcg
-tgtacatccagatggcctgaagtaactgaagaatcacaaaagaagtgaaaatggccggtt
-cctgccttaactgatgatattaccttgtgaaattccttctcctggctcagaagctcccct
-actgagcaccttgtgacccccacccctgcccgccagggaacaaccccctttgactgtaat
-tttccactacctacccaaatcctataaaactgccccacccctatctcccttcgctgactc
-tcttttcggactcagcccgcctgcacccaggtgaaataaacagccttgttgctcacacaa
-agcctgtttgatggtctcttcacatggacgcgcgtgacattcctaatatataaagagttt
-ttaaaaatcaagaacaaagagaccccatatagaagagggccaaggatatgaacaattcag
-agaaaaaggtacaaataagctttaaacacatgaaaatattatcaccttcattcacaatag
-gaaaactactccaggtgccatttctcaccatgagattgtcccaaagcctgacaaaatgac
-tcatgttcaaggttattatagattgcgatcttgttggtaatagcaagttatgggaaattt
-tctcctgggtggctaccaacagagagggggctaattaaagggacctgctggaataccaca
-tacctgtttaaaggaataagaaataaggaaagcagatcttggtgactgataaggaaaggt
-ctccaggctataataataatcttgaaacaaaatcaaggcaggtaaatggaaccaggaaaa
-agtgtactgccttttggtcatagaagaggaggaaaaacaTGTTTTCTTTGCTTGTACTTG
-CACAAAGCAACCCTTGAAGGACACACAGGGACTGCAGGGATGTTGGTGATGCCTCTGTAT
-ATCttttttttttttcttgtgacagagtcttactctgtcaccaggctggagtgaagtggc
-acaatctcagctcactgcaacctctacctcccgggttcaagtgattctcctgcctcagcc
-tcccaagtagctgggactacaggcgcccaccactacgcccagctaattttttgtattttt
-attagagatggggtttctccgtgttagccaggatggtctcaatctcctgatcttgtgatc
-caccctcctcagcctcccaaagtgctgggattacaggcatgagccaccgctcctggccCT
-GCCTCTGTATATCTTTTAATAAGAGTTTTGATTTGTGAACCATGTAAACATATTACCTGA
-TGCAAATATATGGTTACCTGAAATAAGATTTCAATCTGGCTTTTTTTCCTCCTGAAATTA
-TATCACTCTCTACGTGGCCTTTGGAGACCACTTCCTCTAGCCCTCCAGAGCCATTCTGCC
-ATCTGTTTACCCCTTTGTCAGCTACCAGTGGCAGCCCACCTGTGCTGTTACTAACAACTT
-TCTTCTATCTATCCTTAGTCTGAGCAGTAATATGGGAGATGCCAGGAGTGAggctctgga
-gccagctgtttgagtttgaccctggctctgctgcttacaatctgggtgaccctgggcaag
-tggctttgcctctctctgcctcatctcctcatctgtaagtaggggatagtgatagtatga
-actccgtggtttgttgtgagatataaggatgctggtgagtttatgctgtttccaacagtc
-ccagcatagggtaagcacctctaagggttactgatcattATCGTGAAATGGCAGGTTTGG
-TGACATCGTTATTTTTGTCTAATTCACATGAGAATTAATACATGACTATGAAAATTTAAA
-AAAGGAAAAGATTCCCCTACTAGGTATCAAGTGAACTCACCAGTGGTATATGCACCTTTT
-TGTAGAGACACGCTAACTGGGCCAATCTTCACGTTTTGTAGATGGGAGACGAGGTCCGAA
-GGGGCAGAGGGGCTCTCCTGGGATCTGGACTGGATCCTCTGCAGCAAGCGGCCTGTCCGG
-GACTCCTCAGTTCACGCTGCAGTCTTTAACTCCATACTTCTTCCTTCTAGTACAAAGCAG
-GAGTGTCCGTTGTGGCCACGCCTCACCCAGGAAACTCCTGAATCCTGGCAGCTCCTCCCC
-ACGGTTCCCACACACGGAATTCCCTCACAGGGCTGGGACTTCCTTCCTCATACCTTCACT
-GAGCGAACCCAATGCTCAGTGGCCTTTCTGGTCACCTCCTTTTCCTCTCTGGGAGGAGCC
-ACTCCTGGGGTGTAACGCAGTCAGATCCCCTAGCAGTCCCGCTCTGCCCCCTCCCTTCTG
-GGGGCCTCAGACTCCATTCCCTCCCTTAGGAAGCTGACTTGACTAATAGCACAGGTGAGG
-CCCACTCCAGGCGTGCCAAGAGGACCCAAGGAGGGAGGGGAAGCTCCCAGACAGCAGTGG
-CACAcctttgcctgtgctgtcctcccagcctggagcaccagccccctctgctgtccacat
-ccaagctttctacaagactccgtcctccaggagacctctggctgcctcaccttctcaggc
-gtcctcaccagggcccatgaccccttcatttcaggttgttcttgtgtgggtgcatgcagg
-cacataccttgagactgaagctttttgagggcaggggctgCTTGGGAATCTGACATTTTG
-AAGGTGGAAGGGCCTTTCTCAATGACTTAGCTTAGGATTTGTAAATTGTTAACTCACTGG
-CCACTGCCAGACAGCAGATATATTACTTTGGTTTGCCCAGTGTGTTTAACAATTTGTTAC
-TGTAATCAGCAGTGGAGGGGATGGCAAGCAACCTTCAGCATTTCTGGCTTCTCAGGAATA
-TTTTGGAAGAAGTGGCCCCCCACTTTGGCCTCTTTCTCTGTTCTAGACTCGGGCCATCTT
-GGAGCTCTCCCCTGCGGTAACAtctggaaccagttgcctgggttcaaatcccagcttcaa
-cccttacaagctgagcaagtgacctaacctcctgtgcttcagagtcttctcttgcaaaac
-agctataggctgtcagtaccaacatcagaactgttgctaggaacatgcactaaagtgcta
-aaactgtgcctgccacatagtgagggctcaatgaaCCATCATTATAAGATTACTATTTCA
-GCAAACGTATCAGTTGCATTCAAAAACATGTAGTTATTggccaggcgcggtggctcacgt
-ctgtaatcctagcactttgggaggatgaggcgggcggatcccttgaggtcatgagtccga
-gactggcctggccaacatggcaaaaccccgtctctactaaaaatacaaaaattagcccag
-catggtggcgcacacctgtaatcccagctactcaggaggctgaggccggagaacggctcc
-aacctgggaggtggaggttgcagtgagccgagatcatgccactgcactccagcctgggca
-acagagcgagactccatcttaaaaaagaaaaaataaaaaaaaGGCGCAGtttttgttaga
-caaatggccactcaactaaaggactacatttcccagccttctttgtagctgcacatggcc
-atgtcatcaagcacaggccaatgaattcaaatgcgactttgagtagtctccttagcccgt
-ttcctgtttagaaaaaaaagtgcagctcgttgccagcactcatttaattttatgtaaacg
-tgctatttgaggctgaagcaaatctgattctgactgctgttttttttttttttcttttga
-gacagagtcttactgtgtagcccaggctggactacagtggcttgatctcggctcacagca
-acctccgcctcccgagttcaagcagttctcgtgcctcagtctccttagtagctgggatta
-caggcgtgcaccacaatgtccggctaattttttatatttcttagtagagacggggtttct
-ccatgttgccaggctggtctcgaactcctgggttcaagtgatccccacgcctcagcctcc
-cagagtgctgggattgcaggcgtgagccaccaagcccagccctaaatctgactgattttc
-aatgtgaaaataacatgtaaaaactgtttttgaagttatttctaaccagaactaacatca
-gactcatctatttcagaaaaactggattcatcaaacgaatctttggtcaacaactgttca
-agaacaatgttaacatcacacataggaatgctaggatttgctattttcagcgatcgagaa
-ttactttgttttgtaaatggaaataccacgactaaaaccagaatgctacaaatagagtga
-tgtcttttgtttccaaagtcaatatactagagcaaggcaaaaataataataaaagcgagg
-tattttgtggcaaagttatcttggggtaaacactgcagtcacaagtgggtattccttctg
-gcaaacagggaaagagttaacaataagggagtgtgcccttctgctcttcctccatttggc
-tgtctggaatcagatgtgatggccagaactccagcaacgattttgtgctatgaggcatgt
-ggtgggggttagatgcatactaggctcctttgggattttgtggcagagagcacccatacc
-agccctgttttgcctgtgttgaactgttttgtttgtttgtttaatgttgttgttaaattg
-taaaagaaacttctatgttgtttaagtcactcttattttATGTACAACAAAAGTACTCAG
-Aggctgggtgcagtggctcactcgtataattccagcactttgggaggctgatgttggcag
-atcacttgaggtcaggagttcaagaccagcctccaactggtcaacatggtaaaaccctgt
-ctttaccaaaaacacaaaaaattagccaggtatggtggtgggcacctgtaattctagcta
-ctcgggaggctgaagcaggagaattgcttgaactcgggatgtggaggttgtagtgagcca
-agagcacgccagtgcactctagcctcggcgacaaagcaagactcttgtctcaaaaaacta
-aaagaaacaaacagacaaaaaCTACTCCATACTAAGTGCACAGAGATACACATTCCAGGA
-TATATATTGAAAGATTATAGTAACCAAAAACTAATGAATACATTTATCTCCTTTACCACC
-TACTTTCTGACTCTGAAACTTAGGTCCTGTCCCAACCAGGATTTGATCAAAAATCAAAAT
-TTAACAAAAGTAGTTGTTTAGACCCTTGGGGGCAAATGTCTTGCAGAGATATGAAAAAAA
-AAAAAAAAAGGAGAAGAGAGAAAGAGGGAGGAACAGAGGAACACAGAACCCTCCATATAG
-CATTTGGTACCAAAAGTATAAATTGAGACCAAGAGTCATTTCATATATCAAAACTCTAAT
-TCATAAAGGAGTCAAAATTGTAGTGACTATCTGTATTCTGAATATTTCCTGAAATAGCCT
-CAGACATTCCAGGAGAAATGGACAGAAGCACAGTCCAGCAGTACAGGCCTGACTCACCCT
-TCCAGGTCAAGACAGCAGACGAAGGTGCAAAATAAACAAGGATATAGCAAAAGCAATAAA
-TGATATACCTAGTAAAGAGGGCTAAGTCAGTAGTTAAGGGGAGTAGGCGAATTTGCAGAT
-GATGGTGACCTTTGCCATATGAAAAGCTATTAAACTAATGAGAGTGTCCAGTTAAACATT
-TACAAACATCAGTAGCTTTCCCACAGAGGGCTGGATGGGGAGATGAGGGCAGACAGGGCA
-GAAGTAGCCTCACTTTCTTGTATGTTCGACAACTCCTAAGCTCTGAACGCCTAAATCCCT
-GCTCCCCACAAAGACGAATTCTCTGGTTTTGACCCAGGTGCTACCACGGCTGTGTCACTT
-GAGGGATGGGATTTGGCTCCGGGGGTCTGTTTCCTTGTCTGGAAACCAGGCACAGTGGGG
-GTGTGTCCCCACGTGACCCATCTGCCCTATGGCCCTGGCCCACTCCCAAATTATCTCCTT
-CCTCAAAAGTGAGGTGTGCTTTTGGACCTCGGGGACACAGTGAGGAACAGTCATTAATGT
-CAATGAAGGGGATGTCTTAGGCAGAGGGAACTACATGTGCAAAAAGGCCCCAGAGAAAAG
-GAGAGACTCAGAATGGCTGGTGTTCGGAATGTGTTGGGATACTTTTAAAAGATGCATATC
-TGTATtttctgttttttttttttttgttgttgttgtttgtttgtttattttACAGTGACC
-TTGCAGTTCTTatttattcattttaaccagtatttcttgggcaccaactgtgtgctcaac
-cacAATCCCTGCTCTCAGGAAGTTGGAGGAAGCATTCACGAAGCAGAATAAAAAACAGAA
-ACATAGAGCAGGTCAGATGGTGGCAAGGACTCCGGAGGAAAGCAAAGCTCCTGAATGGGG
-AATGTGCCGCTGTCAAGGAGAGgacatgaagggagtgtgggagtgagctgtctgcagaaa
-gcacggtccaggggagaaaacagcaagtgaaaaggccctggggtgcggccacacctgctc
-tgtcccagaagtggattttgctgttcaaaggacagctaggaggccagtgtggccgcagca
-gcgggagccaggttggaggggaggagacagggcaggtcccctgtggccctgtggtgacag
-cttgggtgttttctctagagcaaaaagctccgtgagtgggcagaagagaccagctctaat
-ctagtttttaacaggatcgtgctggctgttgtgaggagaaacatgaggcgccagggagga
-agcaggagtaaaccttcggagggttaggaagctgtagcaAAAGAGCTAACAATCACCATG
-ACAACAGTGACAACCATagctgccactcctcagctatttattgtgccagaccctgtgcta
-agctctttgaacacattacctgtcaaatcttgttccacaatcctgaggctggcattatga
-ttatctccattttacagatgaggaaactgaggtttaaaagggaaataaatttgcctaggg
-tcatacagctgggagctgagctttacatccaggcatgcttgactGTGGACCCAGCCCTGA
-GAAAGGCCTCAGGGTGAAGGGGTTCTGAAGGGGCCATGGGGGTCAAGCTGAGCAGGATCT
-CTTTCTGCTCACAGATGGCCTCCCAAGACTTGGGCCAGAGAAAGAGAGAAATGGGGTACA
-GGCTCAGGAGAAGCTGAGAGAGGCTCTGAGACATATCTGCTTCCCAAGGATCCAGGACCC
-CTTATGTGATCACCAGAGACCAGAAACCTAAGGCTTCGCATGAGACAGTTAAGATGCCCC
-ATAATGCGTGGGCGACAGATAGAGAAGCTAGAAGGATCAGTTCCAGGCAAAGGTTTCTCT
-TTTGCATTCTTGCATCAAAAGCTGTGAGCCCCCAGCCCAAGAAAGTGAAGAGAATTGGGA
-GTGGGGTTCTGACCAGGGCCAGTGCACCGTCATTGTGTGGGCTGGGCCATCTCCTCCAGG
-GAGCTCAGGCAGCTTCCATCCCACCCAATGTCCCCCGCCCCCCTCCACATTCTCCTGCCC
-TCTGTTTTCCTCCATCAAAGTATTACTGACACCAGCTCAGTTACGGGAGTTTATCTGTGT
-CTATCTGTTGAGCGCTGGTCTCTCCCATTGGAGTGTAATCTCCATGTGAGCGGGGGCTTG
-TCCTCTCCCCCAGTGCCCAGGTGACCATCTGGCTTGCCACGGGCTGGGCCACCTGAGCTC
-CTGGCACCATGGCTGGGTTCTCGCTCTGCAGGGATAATCTGCCAGCTGGTAGGCACCTAG
-CCCTGTGGGCCAGACTGGAGGAAACCCGCCTCAGCTATGAGGGTTGTGTTGGCCAGGGTG
-ACCCCTGGGGCAGTGCCAGGTGGCAGCCTGACACTGGATACATCTCACTCCTGGGCAAGG
-GTCTGAGCCAATTCTTTCCTGGGTTCCAGGCTCCTGGAGAACTTAGTGAGGCCTGTAGGC
-GTCTACTTAGGGCCTGGCCTCACCCTCATGAGAGTGGGTAGGAATGGACTGACTTTGAGC
-CCATGAAGAAGGGAGGCTGAGAGGTCAAACCACAAAACCCACagggagagatgggggaga
-tgaaggggagtgagagagaagagactgagacaaagagacagaaagaaccgaaagctagaa
-gcagaaatggggagaaaggacaacagaggcacagagacagggaaaaatgagaAGCTGCGG
-CTGAGAGGGAGGCAGGGAGGTGCCAGGAGGCAGGAGGCAGCTGGGGCGCTGGGAGCCTGG
-CCTCAGCCACCCTCACTGTTCACAGCCACATGTAGCAGAAGGCCATCTCTACCTCTTGTT
-GCTGGGACCTCAGAGTTCccctgaaactcatcccaactcaatgtccctattgcacaggtg
-gggaaaccaaggcccagagaggagatagtgcttccccgaACCCTGCCCCACCCCTGATCT
-CAGGCTGTGGCAGACattcaggcctgtgctcaccggctgtgcaacctcaggtcagctgct
-caccctctctaggccttggtttctccatctgtgaaagggTCTGGGAATGCCCAGCCTTTC
-TGGGCTCAGCAGACCAGGAAAAAGGGAATGAGATAACAGGCGCTCAGCCTGGCCAGTAGA
-AGCGGACAGTGAGTTCTCTTCCCCCTTCTCCTCCCTCCCAAGGCCAGGAAGGGCTTCAGG
-CCTCCCATGGGGCTGACCTTGGTGGAGCAGCCTCCCCCAGGCCAGTTCCCCTCCCCTCCA
-CGTCCATCCCAACTCCCAGCCTCCTTCCCAGGCTCCTGCGGCTTCAGCCTGGTCAAGTTG
-TTCCGAGATAGCATGGAGATGGCCCTGGGTAAAGTCAGTGGGGGCCCAGTCttttttttt
-tttttttttttttttaagacaggatgtcgctctgtcacccaggctgaagtgctgtggcat
-gatctgagctcactgcagcctcaaccttcctggctcatgcgattctcccacctcagcctc
-tgagtagctgggactattaacccatgccaccacgtccgacctgggtaatttttgtatttt
-ttgtatagatggagtttcgccacgttgcccaggctggtcttgaactccctgagctcaagc
-gattcacctgcctcagtctccagaagtgctgggattacaggcgtgagccatgacacccag
-cATGGGCCCAGCCTTTTGGTCTGGAGGCACCAGGGGTCTGGAATTCACCTGGATGGCTCA
-GCCTGTCCCGACTCCAACATGCCAGCTGAGGAGGAAACCTTTCTTCCCTCCTGTCCCTTT
-GATCTTTCACCTGGATGGCTCAGCCTGTCCTGACTCCACATGCCAGCTGAGGAGGAAACC
-TTTCTTCCCTCCTATCTCTTTGGACTCTCCCGACATGGCAGCCTGAAACTAGGGGAAAGG
-CCACGGGACACCTGCTGGCTCCAGATAAGTGCCCCTGCCATATCCTGGTCAGTGTCCCAT
-GCTCCTAGCTAGCAGGCAGCCTTGGTAGCTGCAGCTGCACCCTCACAGGCCTGAGCCGCC
-CCGCTTTGCCCACTTACCTGCTGGTCCAGTTCCCCAGCCGCTCTGCATGGGAGGGGCCAG
-AGGCAGCTCGTTTTGTATAAAGCTGTCCCCGCCCAGAGCTCGGGGAAAGGCAGGCGGAGG
-GTGGGTGTGGCTCCCGGCAAGACCAGGCGCCTACTATGTGTCTCTGATCTGCCCTACAGC
-CCAGCTAGGAGGAGGATCCAGATGGTAGAACTGTATAATAAAGGGCTTGCTTTATTGAGG
-CTCTCTGCCACCCAGATTTCATGAGGGTTGATCCCCAGTTGACAAAAGCTATGTGCAAAC
-AGTTGGTTCTGGCATCACCCTGAGATCTCCATAATTCCTTTCACACAGGAAGAGAGTTCC
-CTGGAGCAAAAACAGTTCAAATACTGgtgcttcagtaagtcatgtggaaagcggggataa
-taatagtgccctcttcataggACAGAAATCCTAACTGCCAGTGTGCACTGAgctgactca
-gtgtcaggcatgttcttggggcttgagagaaattaatgcatttaatcttcatggcctttt
-ggagagatgctattactatccctattttccagatgaagaaacaggcccagagaagtcgag
-agccttgtgtaggtcacacaccttgtatatggcagaactggTCTCTGATGCACACTGAGC
-TACCCTGACAAATACtgtaaccacctgaggggttctttctgcccactgcataaagaaaga
-ccatgaggctggccatgccacaggggaaatgagtttgttcccaaatcatcttcaaagctt
-gtaggtgaggggtttttcaaaggcagtataggggaagagttgggggtggccaggtaacag
-gtgcttgctgctgattggttggggtggagatgaaatcatagggggttgaagctgtgctcc
-tacaggctgaatcgcttttggggggggggccacaggagcagggttggcggtcctggtgga
-gacatcaggtttaggtggagccatgggtgtcaaatctgcaaaaaacctggaaagatggcg
-gggcgtggtgggtcatgcctgtaatcccagcactttgggaggccgaggcgggtggattac
-ctgaggtcaggaattcaggaccagcctgaccaaaatggcgaaaccctgtctccactaaaa
-atacaaaaattagccgggcatgatggcggacacctgtaatcccagctactggagagactg
-aggcaggagaattgcttgagcccgggaggcggaggttgcagtgagccgagatcgcgccgt
-tgcactccagcctggacaatagagcaagactctgtctcaataaaaCAAaaacaaacaaac
-aaacaaacaaaaaacaaaaaaaaaacaccaactggaaagatatctcaaaaggccaacctg
-caacagtggtgttatttgcaggagtaattggggaagttgcatatcttataacctccagaa
-taatggctggcaatcatttatgtctacaccttaggaggacccaggctcctcttctttccc
-cagcctgatggcctctcattaactttacaaaagtggttGCTCACAGTGCTACGGCCTGTA
-AGTGCAGGGCCAGGATGTGAATGCAGACTCAAATTGGTGCCTCCatggatgtaaaacata
-ttgcacagattctgacacctagtaaatgctcagtGCATATTGACTTCTACAAATAATTCT
-GGCCTGCCTGTTGTGTTATTTTCCAAGACATTCATTTACTTAACAAGCAATCAATCACTC
-TCCAGGCTAATGCTTGGGGCGAGAGGTGAGCAGGCACTAGGGAAGGGGCCAGACCCCTCG
-CTTAGCAGGCAGGTGTTCAGGAAGTGTTGCCACtgttggggctcaggacatacacacccc
-caaaatatgactctgggaaaccagaatgtgccacccccaaatacacctctttgacatact
-ttgagctggttattcagagaaactgcagacacaggagtagctctggaaagctattctttg
-gtaaaagaaatttacatctatcaaggaaatctacattagtaaaggtgcctgtatcaggaa
-aaaggctgctccagaagaattaccctagagactttcttttttttttttttttttaagata
-caatttcacttttttttgcccaggctggagtgcaatgctgcaatctcggctcactgcagc
-ctccgcctcccgggttcaagtgattctcctgccacagcctcccaagtaactgggattata
-ggcgcacgccaccatgcccagctaattttgtatttgtagtagagacaaggtttcaccatg
-ttggccaggctggtcccgaactcctgacctcaggtgatcttcttgcctctgcctcccaaa
-gtgctgggattacaggcttgagccactacactggccaccagacagacttttatctgcaca
-ggaagacaaccattatttaccatacaataattcttcccctcaccctcccataactgtgtc
-tccgccaatcccccaaagccctaagaccctattccttaaacttcaatcatctgacccttc
-tttgagtctcatattttgtgggatttccacgcacagatatgtaattaaatatggtttctc
-tcctgttactcagtttcatgtcaatttaattcatagcccagccaaagaaccatgaaaggt
-ggagggaagccatgtttcccttctctataGTACCAAATACTTTGGATCTGTtaaaaaaaa
-attgcaggactctaaatttatgatgccaagggagaagttaagccttgcagagtgTGAGTT
-ATGTGGCTTGCAGGATGGCCACTTTCTtcttctttttttttttttttgagacggagtctc
-actctgtcgcccaggctggagtgcagcggccaggctggtctcgaactcctgacctcaggt
-gatctgcctgccttggtctcccaaagtgctgggattacaggcatgagccactgtgcctgg
-cCAcaatttcatacttatctctgccaaatactataaggtgtcaaaatttggcatagaggg
-tacaaaactataactcaatccaaacagaataatctttgcttgtataattttttaataatg
-aaacatcaatattggtttaataaaggcagctatatcttgaactatttagttaaataccct
-aacttctaatcctgtggccttaggaagtctagtctacagacgtgaaggaagtttctttag
-ggaaaggacttatcatctttgatattaaagaaaagagaatttatataaaaataatcttat
-atggtaaattcttgttctaaagtaaatgaattggttgtttaaaaagaaggatgtttacaa
-cgagtcagaaagttgaggcatgtcagagattgtgtaaattgtaaaaattttataaaaggg
-aatttatgcaagaaatgttgtacagtttaaaagtgatgagggggccgggcacggtggctc
-acgcctgtaatcccagcactttgggaggccaacgcgggtggatcacctcaggtcaggagt
-tggagaccagcctggccaacaagatgaaaccctgtctctactaaaaatacaaaaaattgg
-ctgggcatggtggtgggtgcctgtaatcccagctactcgggaggctgaggcagaatagct
-tgaacccagaggcagaggttgcagtaagctgagattgcaccactgcactccaggctgggc
-gacaagagtgacattccatctaaagaaaacaaaaacaagagcgactaggcctcctgaatg
-ctttataaaatgccaccataactcttaactgtacaacttgcctgctttgtagctgggtaa
-gacctagcacacatggagttaaatgctggaataagtcagaccttatctgcacttctgtct
-aggtcctaggctctacatctagtacataattacaatctcaaactgactaacaaaagtaaa
-agttgctaaaagttaacagtgtaacatgtattgttccatagaaagaatctaagataagac
-tgtaaagctgaggctagccgtggaattgtaccattaaatacctatgagtttcctcttgag
-gttgcaagataacctagggttcccggcctctcagaaagggcattctttgcttaccacaga
-tcagaagccctatacagggactgtgtacacaaaatataaggccagtttccaagggctttc
-ttggcttcgtaaatcaagtttgattccttaaaggaaagcataccattccagtcaaggcct
-tggtaaaaaaaccagtttttccaattgtgtcctgttacaaaagaaaacagattcttatta
-cacttgtgcaaataactatatcgccataacttaagaatactcacagatagtttccaaatt
-ctggagaaaatcagggagagagaaacaagtatgctacaaattttgttcatgggagtatac
-taaattgttaaaagctgttaatagctcaaaagaaaaatttcgaggccggatgcagtggct
-catgcctgtaatcccagcactttgggaggccgaggcgggcggatcgcctgaggtcgggag
-ttagagaccagcctgaccaacatggagaaaccccatctctactaaaaatgcaaaattggc
-tgggtgtggtggtggcacatgcctgtaatcccagctactcaggaggctgaggcaggagaa
-tcgcttgaacccaggaggaggaggttgtggtgagccgagactgcaccattgcactctggc
-ctgggcaacaagagcgaaactccgtctaaaaataaaataaaataaagaaaagtttctttg
-actttgaaaagcaaaacaaagtattagcaatattttaagcaaaatatcaaaaagatcact
-ccagtctcctattagttcagttcgtgcagttaattcctgtcctgcttgatattaatgaac
-attttagctaagagtcctaaccatttttcctgtattctgatgtcacaatctccaaattta
-tcagaaacctgcattcaagaacacctgttagagctttatagctgagtataaaacccttct
-aaagaggatcaaaacaagacaacaattgtttatggatgaccaaaagttttagggtagcca
-tagttaaagacacaattgacaaggaaatctgttacttctgtggcacacaataattttaac
-ataacaattataattactactgataacacacactaagacatatcagaattataggagtct
-cccataactttggaacacataccaataacatatttatacaaatatggcccaaagaaagcc
-aaacattattttatatttgacaatgcttcctgtatgacttcataccaaataagccaaatt
-ttacctttatattagtgtgttattaatgttaaactcaattttaatgttttgatcataagg
-tcagattttcatggacccttttttttttttgagacagagtctcgctctgtcgtgggcgac
-agagtgcagtggagcaatcttggctcactgcaacctccacctcctgggttcaagctattc
-ttctgcctcagcctcctgagtagctgggactacaggtgcccaccaccatgcctggctaat
-tttttgtgtttttagtagagatggggtttcaccgtgttagccaggatggtcttcatctcc
-tgacctcgtgatccgcctgcctcggcctcccaaagtgctgggattacaggcgtgagccat
-tgcggctggcctatagaccatttttaaccctttataatttttgtcaaagagcaggttagt
-gctttaagaaaaacccattgtgcttttattttaatactcaatttacagaaaaactggatg
-atacacctttaactttagccaagatgtttacacacagtatttcctttacaattaaccttc
-caaaagttgcttaaaccttcatttttattttattcaacttaaaacaattctttaaccttt
-taatctaggtaaaaatccacattctcatgcctccttataatctttttaccaaaagtatat
-gtaaactgttttttcaatagtcttaaatacatgttacactgttaacttttTTTTTTAAGG
-CCTACGTAACAAATAATTATTCTTggctgggtgtggtggctcacgcctgtagtcccagca
-ctttgggaggccgaggcaggtagatcacctgaggtcaggagtttgagacaagccttgcca
-acatggcaaaaccctgtctctacaaaaatacaaaaattagctgggcgtggtggtgggtgc
-ttgcaatcccacctactcgggaggctgaggcaggagaatcacttgaacccgggaggcaga
-ggttgcggtgagcttagattgcaccactgcactccagcctgggtgacaagagcgagactc
-catctTGGGGGGGAaaaaatgggaaactggagagagaaaattacatttcagaaactataa
-cacacctgttattaaattccagtgttgcctaatgttgttcaatttttattactttaaatt
-aaattctaatttttctgactacgagtttccaaaataagctttgttttcttaaagccctat
-gaactgaaaactagacgtttcagcaggcactgcctctaaacgccccccagccatcacagg
-aggaaacctcttcactgctggagctgacaactaataactgagcgtgcctggaatcctttg
-cccccacatctaataagtccatggaacccagggtaattgagatggcatctcttacaagaa
-tcaacttctgggtcaggtgcggtggctcacgcctgtaatcccaacactttgggaggccaa
-ggtgagtggatcacttgaggtcaggagtctgagaccagcctggccaacatggtgaaaccc
-catctctaccaaaaatataaaaaagttagctgggcatggtggtgcatgcctgtaatccca
-gttattcgggaggctgaggcatgataatcacttgaacccaggaggtggaagttgtggtga
-gccgagatcgcgccattgcactccagactggcgacagagcgagactccatcttaaaaaac
-gaaacaaaacaaaaaaacaggaatcaacatctggatacattacactcgagtcaaagcctg
-gaaagctgaggaagcaacccctgatagccaaaggaacatcctaaatatcagtgtaaagaa
-ataggaaattttaagctcataaaaggtaagtaactgagtgagaactacttatcttactca
-gtctcacccctacctcaccaaatacttttagatgttcctacctctccttttaagacaaat
-attaaaactttttaatggaaattattcactacaccaccattgtgggaactgctttacaca
-ctctattatttgcagtgggactatgtactacagcaccctcaggatggaatatcagacaga
-gaatctcaattatggtaccattttgcttaattattatcctcatagcaggaataacagtta
-ctaacagcaaataacacatgggcctttccagacatgtgcctctgcctgtcattgggtgag
-gaatgttgtttctatatcaaccaattaggcctagtaagaggtgctgttgaaaaacttaag
-gaaagggctataccaaaacaaccaaatagattcttggtttaggaacaaaatcatagcatg
-ggtcatcccattcctgggacctttcctaataatatgcctaggactaatgttcttaccctg
-cctaattaacctttttcaaagatttttaactgacaggatcatggccatttcacagacaac
-tacccaaaaacatccacagacagcgttactgctacagttaatccaagaccagaaaactct
-gtcccctcatcagcaggaagtagccagaaagaacaccctgcctttcatcctttttataac
-tataaggtctggattgacagagcaggagcattgccatcttggacaagcactgccattcta
-aagttccccttgatcaaaaaccacctaaatccaaagggcatcagcctaatggctaaggtc
-agcatgaccataaaccacaaatgacatctctgaccagaaacattccaaccataagttaaa
-gccctccccgaccagagacgtgccagccccaagataacctcccctccaggtggagagatg
-tcagccccaagataccgtcccttccaaccagagacattccaaccctcaatagacttctcc
-cctacacaggaacattccaagcctgtgataagctctcttacccagaaaccagtaaatacc
-cttagtatgtaagagagagcattcctgactgaaattggacagaggcccctctcaggttta
-ttcttcaaaataaacctgtctttgactgttgagcctcttttcatgtttctttcctctttc
-ttgaactcttacaACACCTTTGTTAGGCGCAAATtttcagtgctgcaaaagaaatagcac
-tcgaacataaatttaattttctcagcaaggcaattttacttctatagaagggtgtgactt
-gtggatggaacaatggtgagagcacacctgaacaagggaggggaaggggtttttattcct
-gatgcaggtagcccctactgctgtgtggttcccctgttgactaggattggaccacacagt
-ctaagctaattccgattggctgttttaaagagagcaggggtacgagtcggagtagcggag
-tgagtagtttggcgggaaggacagttaggaacaggtgactaaaggtgactcaggtcagtg
-caggtgaccaggggtgactcaagaaggagcaggtgatcaggggaatagatgtgaactact
-gattagaactggtggaaaaggttgtttactgaaactaggggcaaggaggcaaagagaatg
-agaaagttaaactttaaaatggagaacaaagaacaggggacctgaatatactcatacatt
-ggttccttggagaggatctcagaactcattgtacttaacaATTTACAGGCTGAAACATTT
-GAAAAGGAATTTGTTATATCCTACAatttccccctttcaattttcatagtacttcctctt
-caaactttttaaacatgtcttggcttagctgctcgacttaatcctctaaaagaaaaagct
-tatctgaataaggtggaggtgagttaaggaagattttagtaagtgctgcttttataagtc
-tttgcactagcccacagatgcatggtatgacataacacctaacaagaatgagtacagcta
-ttacggctgcaagagaagtaagaattgaggctgtgatttctttccatttactgaaccccc
-tttctagccaccctgagaaagggttatcgactccagaattttagctagttcattggatag
-agtggtaagtctttataaggcccttgttatgttcccagtgtgggcagtgttatttgggat
-aaaggtacaacactgagttttaatcataatacaaacaccactttttctgctaatatcata
-tctggtgccattctgttttcccaggccatctggctagtgggccccaattgttctgctatc
-cctttgacagcatccctggtgtaattaataaactgctgctgattataatagatgtaattt
-atccagtctacatttttattaatcgtcacccatgaaaatattgacttaaatcctgcagct
-atttgatctcgggctttaaattcatctggtactcctagtggaactccagtaatgtttata
-taaacatgggggtcaaacgactcatgtaaggcacttcttttacaattttcttttttatca
-tgttgacggaatgctagagtgaaagggatggccaattggactagagcacgagtgctgctc
-taattgcttggcagagtatccagcaatagtgcccctcaatgccaccacacacctgctcag
-ggatgaacaagggcagactgatgggtaagctcttgaaaaggcttggtttcaccgcaccct
-gttaagtctccaaggaatgctaacttttccccctgccgtgaaagggacaggtgaacttaa
-catcaggggctggaggctggatggccctccgggctgacccacagggctcttgacctcggg
-gaagagcagtgaaagcgaacagcagtgaaagagttttgcctgactcattgccccggctgt
-ggggttctggaagagagctaccatacagctcatgccctgtccatgagaggaccactcgag
-gggaaaggggacaatttgggtctctggcctgcctgtcgcacaagcagtcacttttgttta
-gcatgcgaacagaatatttaatccatttcagccaagcatttacatcctggtactctgttt
-caattgctatagtttgttttaaatctataacttctacaacagctactttggttttatcat
-tgggtatataacgaaagaagatctggttagtggagaacttaggagtgggagaagggggtg
-caggagttgaggaggcaatgaagcacatttcaaaggatcctctggggtccttccctgaga
-cttctgctcctataccatagaaacggtactctggggagcagaggtggtaatctgtactgg
-attacattggttcatctgacaatggggtggtccatccttgctccttggtagtccataagc
-cattagaccagctaaaagttctgttctaggagggcaagattcctagttcatactgggacc
-atcatcaatatcttcccagactaactgatcccagttaacagattttcagtctgaggagag
-ccaggaaggacaaagatacttttctgaaggggagagttgcctctggtttggcagatctcc
-acaggtcatcccaaggcaagcatcaaaagtaatagtttggggcgaacttgttacataaag
-aacgagaagactagcaatagaaggggaaaagaaagagatggaatgtaagaggatcaaacc
-cgttttagctttagcttggttggagttggccctggaatagctgtccatgattctggaggg
-ggtggtgctcttttgacctaggtgtgatgagtccatcctctttctgctgtttgaactgtg
-gtctcggtggttagaagcaacaggtagggtccttcccaagccagttcgagtttcccttcc
-ctccaacttttgacaaggacacagtccttaagctgatgttggtgtactggaaactgtagg
-ggtggtacctgttctaaaagacctttagttctgagggaagagaaagtggaaaataaacca
-agtatataatttctgagaaactcatcttttgttttgaacataggaatgtcagcagtggag
-tgtaaacagggcaacctacacaacatttcataaggggataagccaacatctctctgagga
-gcagttcagactctcaagagggcaatgggagagcatctatccatggcaaccgagtctcta
-agactaatttggttaggtggccttttttttttttttttttttttttttgagagggagtct
-cgctctgtcgcccaggctggagtgcaatggtgccatctgagctcactgcaacctccacct
-cccgggttcaagtgattcttctgcctcagcctccctagtagctgggactacaggcacgcg
-ccaccatgcctggctaatttttgtatttttagtagagatggggtttcaccatattggcca
-ggctggtctcgaactcctgacctcgtgatccacccgccttggcctcccaaagggcttttt
-ttttttttttttgacagggtctctctccgtagcccaggctggagcgcagtggcgcgatct
-cggctcactgcaagcaccgcctcccgggttcacgccattctcctgccaaagggctttttt
-aaaaaatagtttggttcattctttccactcttcttgatgaaggtaggtgccagggagtat
-gatattcccatgttatatccagtatctgggctaatttcttaatgacatgtacagtgaaat
-gagtcttattatctgaatcaatgttttctattaatctaaacttgagtataagattttcaa
-ctaatgccctgtctatgttattatcagttgtacttgaaaaggaaatagcttctatccaat
-gagtaaggtgatctactatactaataaatacttcagatgatcagttggaggcatctctgt
-gtagtcagtctggatactttggaatggccttaagcctggactccttcccccaaggggtaa
-tgttttactaaacaactgtctgtaacctgtttggccagggtataaatcctatgcacccat
-aaactctgatgaatgtgtcacacgaggcttggggcctccaatgggtcctttaatgcagtt
-ggaataagacttccctcataaggggtttggataacatttctctctggtctagcaatatcc
-attttccttctgaattctctttagcacctatttttattagtttttaaaccaaagaaagcc
-aaacaccattttatatttgataatgcttcctgtgtgattttataccagataagctaaatt
-tcacctttatattagtgtgctattaatgttaaactcaattttaataaaatcttgtagaca
-tatttattcaattttaatgtctgaccataaggtaaaattgttatagactctttctaacgc
-ttcataatttttgttaaagagcaggttagtactttaagaaaaacctgttgtgcttttatt
-ttaatgtccagttcacagaaaaactggatgacacccctttaactttagccaatatgttta
-cacacagaaattcctttacaattaacatttcaaaacttgcttaaaccttcaaaacaattt
-tttaaccttttaatgtaggtaaaaatccacattcttatgccttcttataatccttttacc
-aaaagtatattttactttccttacacgccttgaacataaactgtttcttcaatagtttta
-cattcaggaggcctaattacttttaaattatacaacatttcttgcataaattccctttta
-taacattttccacgactttcacagaccatctttgacatgacttaaatttctgacttgtga
-acattcctttctttaaacaaccagttaatttattttaggatgagaatttaccgtataaga
-ttctttttacataaattctccTTTTTTCTTAATGTcaaagatgataattgttttttccca
-aagcaaacttccctcatgtctgtggactagactgcctaaggccacaagattagaagttag
-gataatacatgttacactgttaacttttagcaaattttacttctgttgaaaaccttgtaa
-gtttggaattttaattaaaggaaggcttttttggtgtccggggacatggacaatagttat
-ttttttggcaactgaaggttatttaatacttgggtgattaattcctcgtggaccgggtct
-tgacctttgctattaataagacctggttcagtccaaatttttccacatgcatgagccact
-ccaaaggcacactgaaaattggtatagatggttccttcctggttctgtaagtactttaag
-gcttggctgagtgcaaacagctcacacgtttgagcagaccaattattaggcaattttcct
-aactctatctctacACCTTTAACCATTGTTCCCTATTTCTCATTCAAACTTGGACATAAC
-GGTATgtgaaaaagagcctcttgtgactgttacctctttacaatggaatgttaagcaacc
-cctcagaaagtagggagtagcaaatcaaatctttgtaactacatttcagcctttgccggt
-tgaaatgtcagagccccggcatcagaaagtggtcaactcaagggctgataagaagaattt
-accaacaacagtataggtttgaaaagtaaagttttattagaaagaaagaacattgcagaa
-gagtgcagcgaggtgcctcagcaagaggggactgagagggctgtggtggatattccttag
-gcgcatatatgaaccttaaggcaaaagcttgagggtaatttggagcatactagccacgta
-ggttatgataaatggttacatttgtagttattttggtgccttaatgtcagcaaggattgc
-acagtgagtttcgcatagaaattctggttactacaaaatttttgaaagacccctggaacc
-agatgccaactttagatatgtcgatgaagagtcaaactctgtaaaatatttgaagagatt
-tattttgggcgaaatacgagtgaccatggcccatgacacagcacttaggagatcctgaga
-acatgtgcccaaggtggttcgggcgcagcttggttttatacattttagagaggcacgagg
-catcaatcaaatacatttaagaaacacattggtttggtccagaaaggtgggacaactcaa
-agtgggaacttccagactataggtaaatttaaacattttctggttgacaattggttgaat
-ttgtctaaagacctgggatcaataggagggaaatgtttaggttaagataaaacattgtgg
-agaccaaggttcttttgaagtcttatagtggctgtccttagagacaatagatgacaaatg
-tttcctattcagacttttaaaagctgctagactcaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaggctgccagactcttagttaatctcagagggcctggaagaaaaagatctagctatat
-taatagagattatttacagatgcagatttccccccacaaaggacagctttgcagggccat
-ttcaagatatggcaaagaaacatgtttttgggtaaaatatttttgctttcttctttgtca
-cataatgttatgccagagtcagattggaaagcaagtcagatatataggtttaaataaaac
-ccatctgatgagaatttatggtttgtagggcatgactccccagaccccttagataggaat
-ttcagcaaaataaaaagatcagagcttagtcctcataatcaagaaataaccataaaaatg
-ggcaaccctatggagtagccattcttttattcctttactttactaataaattttcttttg
-ctttgcactgtgaacttgccctggattctttcttgtgtgagatccaagaaccctcttgtg
-gggtctggattgggacccctttccggtaacGATTAtacttctaaattcctcagataagga
-gtttttgtctcgggctgcttcagggtcaccaggtgatttttgctctcctcaCCCCTTTGT
-TCAGCTTCTCTGTTTTTGCCTATGTACACAACTCTCAGATTTGGCCACtggggagagcaa
-agttatacctggtgaccatcaagcagaccattcagagacaaaactccttatcagaactcc
-ttattcagaagcaattagacttccctattatctaaagcaggcatctcattccaggcttct
-ttcccccaaatttataagtaactagaatttctatgcatctctggaatgcatgcatatcaa
-aactcacggtgcTgaaaatttgcatctgtaaagaatctctattaacatagctggatcttt
-ttcttccaggccctcccaatcctgaagagattaactaagagtctaacaccttttgatggt
-ctgaataggaaacatttgccatctgttgtctctaagggcagcgaacataagacttcaaaa
-gaaccttggtctccacaatcttttatcataacctgaacatGAGTCTCTTGCTGATATTAA
-GGCATTGAAACCACCTTTGCAAAATTATTACAGACAGcatcattgcaggaatccaggaca
-ctggagtagaggatgttccatacctttgggttacaagccacccccaggaccttgtcctca
-ttgcaaacaagagggtcattgtgatatggaaggggggcaggggagtgctgggtacagaaa
-tgcagggttcctggtgagggctccacccttgggcctgtgcccacagacctaagtaagaac
-aggcactcctgttttcatgcctgaatgttgtattttccaagaccactctggcccaccaca
-tccccttcctgtgtccataTtgttaaatatgaattctaaatttctcttcaaagaattaat
-atgtcagtatgttcaattctttgacttctgcttttaaatttaacttcctcgtaaagcaac
-ctttttcgattacctgctccaccctgactcattccgattacctgctccaccctgactctt
-gcaggttacttgctacctgctccaccctgactaattattctccaccctgcataaccattt
-ttttttcccgccaaagcactcatcctgtcacactctttaaatctgccaattggaattagt
-ttagcctgtgcagtctaaccctagccaataggggaacgacacagcagcaggagccttgtg
-cattagggataagaacccctttccctcccttgtccaggtgtacactcaccattgctctac
-ctgtgagggtgcacccttctatagaagtaccttgccttgctgagaattaaaaagaaaatt
-ttatattcgagtgctatttcttttgcggcactgaaactttatatgtaacaatttgggggc
-tcgccctgattacatttccctctggggcagtctctggttctctcttgtgaggagcgctcc
-gccccctgtggcggcctcagccgggagaaatcagaacccacccagtgcgaggaacaaccc
-gagctgtcagcaacaggggggaagaaaactggccggcaacctagcttaaagaatcctcac
-atactgcagcgacgactctgcgcacagagcaaggaaggagaagccgcgggagctggtaaa
-gtatttccttggtggtcgggaccaaggtaagaaagccacgggggtggtgggcggtgaagt
-actccttggtcagggtggcttagaggttaaaaagaggtgagacatccccattggcggaga
-ttgaacctcacacaaacctccagtagtagaaaaggcaagaaatttccagtggggaaattg
-agcctcaccccaaaaggtaagaaatttccagtaagggaaagtgaaccttgaaccttatcc
-caaaaccatcaagatgggaaatatcccaagcaagacagggagcaagggggataaacatgg
-taacaaagatatccctccagatggccccctaggtctcatgctaaaacactggaaggataa
-tgaaaggatacacataggaaaaagcaacaaatggtaaaatattgctgttttatttggagt
-cagggacccatcctcagtccctcaatcttctggtcaaagtttgggtcaaatgagaatgta
-atgtgtcagcttctaatccgatacgttaatgataaaagtccagtgtctcaagaagaacta
-ggctatgccctttgttggaggcaaggacctgccctcctatttctcttaaaaataaatagg
-gaagaacccaatctggcacctcaaaatgaaaagtcagaggagccagctctcatgcctaaa
-gactccagtgctgcatggtatcccctagaccatcttcccccactcagtgtccccaaactt
-tcccctcagacagccactgccacctcagatcaccactgccacctcagatcctgttccaaa
-ttccccctctactcacgctatccctcctccttataaccctgactgttgggaattaccatc
-ccaccagcctgttctctcccaacctaaagacccctctctaaaaagactccagcgtgaggt
-agaacaatgtaaaaaagatattcagaatttcctatttccctccgtacctaagaggtcagc
-ccctaccctcttccctttgaaagaggtaccacaagttgggggcgggggggggggcattga
-ctttgtaaatgctcccttaatcagttcagaagtccagaattttacaaaggagcttaaact
-gctgctggacgacccttacagagtggcagaccaaattgaccaattcttagaacctcagtt
-atacacttgggtcaagttaatgtccatcttgggcatcctcttttcagggtaagaaaggag
-tatgattcttaggtctgctatggtagtttgggaatgtgagcaccctcccaatgaaaacgt
-tcctaccacggaccagaaattccccgcccaggaccccccatgggaaaataacaatgcaga
-tcaccgggaaaatatgcaggacctaagggagataataaaaggaattcaggaatcagtacc
-ctgaacccaaaatctttctaaagcatttgatatacaacaggaaaaagatgaagggcctat
-gagattcctagacagactgagggagcaaatgaggcaatatgcaggcctcaatttggatga
-tccccttgggcaaggaatgttgaaactccaatttttcactaaaagttggccagacatttg
-aaaaaaaaagttacaaaagatagacaattgggaagaccatcccttaagtgagcttctcag
-ggaagctcagaaagtgtatgtgaaaagggacaaagtaaaacgaaacaaaagacaaaactt
-atgtttttcaccttccaacagatggctccaaacccaggtacttctagatagagtttccag
-ggagccagaaactataaagggtccgaatcctcttttaaagaaccccagcctccatctgga
-ggaccagggtccttgtctaccaagccccctaaagagtatgggggagaagggttaaagaat
-cccagaactaaggggaggaaggacaaaataggtgctatagatgtggaagagcagaccact
-tcaggagaggatgttctgaactaagaaaggagaaagaagccctttcactcatgactttca
-aggaagaatagcggggtcaggggctctgtctcttttatcttgagtcccaccaggagccct
-tgataaatttgggggtgggacctaaacatgagcttatcacctttttagttgattcggggg
-ctgctcgctcctctgtttccccccatctaatgttgtctccttcttagaggaacttttagt
-ctccagggtaaaaggtgtaggattaagagcaaaaattttagaaagcactgaagttagata
-ccaggatcgctcagcttatattcagttcttgtttatccctgaagcaggaactaatttact
-ggggaggaatttaatgttaaagttgggcataggtctacaagtcagcccaagaggattcct
-cacctcattaaacctactcaccaccgcagatgaaaaatatattaatcctcatgtcttgac
-caaagaaggaaaccaagggaaactctaagtccctccgatccacatcaagctaaaaaaccc
-aggggaagtagtaagaaggaagcaataccctattcccctagaaggtaggatagtgttgaa
-acctataattgaaggccttatttaggatgggcttcttgagccctgtatgtctccttataa
-catcccaatcaagaatcaagaaatcaagactgctaccagccagtcaagaaattagatggg
-tcataccagctagtacaggaccttagagctatcaaccaaatagtccagagtacccaccct
-gttgtcaccaatccttacaccattcttagcaagattccatataatcatcaatggtttact
-ataataaatttgaaggatgctttttgggcatgtcccctggctgaagatagctgagatata
-tttgcttttgagtgggaggatccatactcagggtggaaacaacaatatcgatggaccgtc
-ttgccccaagggttcacagactcccctaaactttttggccaaattttagaagaagtacta
-gaaaaagttgtcatcccagaacaaatatgccttcttcagtacctggatgacattcttata
-tctggtgaagatctagagaaggtaactgacttctctacacatattcttaaccatctgcag
-tttgaggggctatgagtctcaaaaagaaagcttcagtatgtagagcctgaagttaaatat
-ttaggccacttaataagtgtaggcaagcgaataatagggcctgaatgaattgagggaatc
-gtgtccctacccttgcctcaaactaaacaagaactcaggaaatttttagggtcagtcaga
-cactgtcgctaatggattgactcatatacactgccccgtaaactgttctatcaaaaactt
-gcccaggagaagcctaaccgtctcctgtggacttctgaggaagttgatcaaatcgagagg
-ttggaggaaaggctcataactgcccctgttttaggcttaccctccctagaaaagccattc
-cacctttttgctaatgtggacagtagggtaccttcgggagtgctgactcaagaacacaga
-ggccgccagcagcccgtagccttcccatcaaaggtcttagacccagtcacttgtggatgg
-cctcaacgcatccagtccatcgctgctatggcaatactaggtgaggaaagcagaaaatta
-accttcggaggaaaattgacattaaacacgcctcaccaagttagaactatcttaaaccag
-agagcagtgagatggcttactgacttgagaatcttaaagtgtgaggccattctgttagaa
-aaggatgatttaacattgaccactgataattcactcaacccagcaggtttcctaacaggg
-aatccacatctaaggagggaacacacatgtttagatttaattgattaccatacaaaggtt
-tgaccagacctgggagaaacccccttctggactggacggcacttactcatagatggttcc
-tcccaggtgattgagggaaaaagacacaatgggtattcagtgattgttggagaaactctt
-gtagaaataaagtcaggaaaattgcccaacagttgatctgctcaaacgtgtgagctgttt
-gcactcagccaagccttaaagtacttacagaaccacatctatacagattccaggtatgcc
-tttggagtggcccatacatttgggaaaatttggactgaacgaggtctcattaatagtaaa
-ggtcaagaccttgttcacaaggagctgttcacccaagcattgaataatcttcagttgccg
-gaagaaatagctattgtccatgttcccggacaccagaaaagcctttcttttgaaagttga
-ggaaataacctagcagatcaggtagccaagcaggctgctgtgtcttctgaaatgcgtgtt
-tttcacttaactccctacctccctcctcctaccataatccccattttctcttccaccgaa
-aaagagaaactaataaaaataggtgctaaagagaattcagaaggaaagtagatactgcca
-gaccagagagaaatgttgtctaaaccctttatgagggaagtcgtatcccaactacatcag
-gggacccattttgggccccaggccatgtgtgacgcagttctcagagtttatggttgtata
-ggaatttataccctggcaaaacaggttacagatagttgcttagtatgtaagaaaactaat
-agacatactataaaatgattacctctcaggggaaggaatccaggctaaaggccattccaa
-agtatctaagttgattacacagaaatgcctctgatagatcatctaaaatatttactagtg
-atagtaggccacctcactccctgggtcgaagctatccccttttcaaatgcaacagccagt
-aatgtagttgaggccctaattgaaaatatagtacccaggtttcgactaacggaaaatact
-gactcagacaatggaactcatttcaccacacacattattaaaaagctattccaaaatatt
-agacattagatgggaacaccatactccctggcacccaccctcatcagggagagtagaaag
-aatgaattagactctaaagaaccacttaaccaaattagtcttacagacttggttgccatg
-gaccaagtatcttcctatcaccctgctgagaatttgaactgcaccatggaaagacattgg
-tctttctccttatgagatgctctatggattaccttatttgcactccactgttgatattcc
-tacctttgaaacaaatgatcaattccttaaaaattatatacttggtctatgttctacttt
-ctcctctcttaaaactaaaggtctattagcacaggcaccacccttggagttcctggtgca
-tcaacattagcctggggatcacgtcctcatcaagagctggaaagaggagaagcttgagcc
-agcctgggaaggtccttacttggtgctcctaactactgaaaccgcagtccgcacagcaga
-gagaggatggactcaccacacccaagtcaagaaagcaccgccccctccagagtcgtgggc
-catagtcccaggggaaaaccctactaaactaaagctaagaagaatttaactccctttcat
-ctattctattactcttttttctttcctcactctattgctgaccatatagttattaacata
-accaagtcaatttcacctcaactattgcatttgatgcttgccttgttatatcctgtgggg
-atttgtcaagccaaagaaagctctctacttcagatacctctgtccctcctggctctcctc
-agactaggcattagtgaatcgggaccatttaatctggggagatttctataaagatcccag
-tggcaaccaggagtcttcccccagtgatgtagagcttttaagccatagttggtccaaagt
-tctgtggaccattaaagagcaaggatggattgccccaaccagtttttgtaatttcctaaa
-ttcatacattcgttttactaaagggacagtgcccactaactctcagctaaaccagtgcaa
-ccctatacaggttattattttgagcccacaaaattcttcctcttttctaagctggttccc
-ttctttaagccagttttatggtatgggggctgaagtttcagggacagaccctattggatt
-ctttgaaatgcacttctttgatcccctgctgtctgcacctgcctctgagcctttttccaa
-aacctctcacaacggaaccattgttcctcctctatctaacgacaaggccaagatagcgat
-ggtagaagttaaagacttaaaacaaactggcaattgagacaggataccaagatgtaaatg
-tttggttggaatggatcaaatatttcatccacacgttaaacaaaagcaattgttatgctt
-gtgcgcacagcaggccagaggcccagattgtcccctttccactagggtggtcctccagtt
-gaccgggcatgggctgcatggtagctcttttccaggattctatagcctggggtaagaagt
-tgtgccaagctctctctctgctatatcccgaagtttgacaccttgtgggtcagcccccaa
-gggccatccagcttccatctcccaacactaagtttacttcgtgtctctcatgacagggag
-gaaacttagtgttccttggagacctgaagggatgcagtgagcttaagaacttttggccag
-gcgcggtggctcatgcctgtaatcccagcactttgggaggccgaggcaggcggatcacaa
-ggtcaggaaatcgagaccatcctggctaacacgatgaaaccccatctctactaaaaatac
-aaaaaaaaaaaaaaaaattagccaggcgtggcgtcatgcgcctgtagtctcagctacttg
-ggaggctgaggcaggaggatggcgtgaacccaggaggtggagcttgcagtgagccgagat
-cgtgccactgcactccagcctgggcgacagagcgagactctctctcgaaaaaaaagaaaa
-agaactttcaaaagcttaccaatcagccagcccttgttcatcccctagcagaagtgtggt
-ggtattgtggtggacctttactggacactctgccgaataactggattggcacttgtgctt
-tagtccaactagctatccctttcaccctggcatttcatcaaccagaggaaggaaaaataa
-gacatcgtaaagtgagagaagccccttatgggtctttagactctcacttctgtttagacg
-caattggggtcccatggagaatacaagatcaatttaaagtctggaatcaaatagctgcag
-gatttgagtcaatatcttggtgggtgacaattaataaacatgtagattggataaactaca
-tctattacaaccaacagtgatttagtaactacactagagatactgttagaggaatagctg
-agcaagtaggggctacaggccagatggcttgggaaaataggacagccttagacatgatat
-tagcagaaagaggaggggtttgcatcgtgactaaaactcaatgttacaccttcatcccaa
-acaacattgcccctaatggaagtataacaaaggcattgcaaggtctcactgctctatcca
-gtgagttagccagcagctcaggggtaaatgatccctttacaggatggctagaaaaatggt
-tcggtaaatggaaaggaataatagcctcaattcttacctccctcgtagctgtaataggtg
-tacttattcttgtcgggtgctgtgtcataccatgcatccgtgggttggtgcagaggctcg
-tagaaacggcacttgctaaaacctcccttaactatcctccaccttatccagagaagcttc
-ttcttttggaaaatcaagcagaacaactaagtcaagacatgttaaataagtttgaagaga
-aagccgtaagaaaaatgcaagaggaggaagttgttaaatatgaattctaaatttctcttc
-aaagaattagtatgtctgtatgttcaattctttgccttctacttttaaacttaatttcct
-cataaagcaacctttttcgattacctgctccaccctgactcactccgattacctgctcca
-ccctgactcactccgattacctgctccaccctgactcactccgattacctgctccaccct
-gactcattccgattacctgctccaccctgactcattattctctgccctgcataaccatta
-ttttcccgccaaagcactcaccccatcactctctttaaattagccaatcggaattagttt
-agcctgtgtggtctaaccctagccaataggggaatgacatagcagcaggggccacatcct
-tcagggataagaacccctttccttcccttgtccagatgtgtgctcaccattgctccatct
-gtgaggttgcacccttttatagaagtaccttgccttgctgagaattgaacagaaaatttt
-atattcgagtgctatttattttgaggcacagaaactttatatataacaatataaacccga
-gaccttggcgggcacacacacaagcagctgaatgtcaagaggaGTGGAGGAACGGAGTGG
-CAGAGAATGGCAGAGAGCGCTGGAGAGTGGCAGAGCAGCATGGCAGAGAGGGAGGGAAGA
-GGCGTCTGAACTTtggaagacacctccactcctcaataaagtctccgcatgtatcacttt
-tcaaacagttcatgtgacctgattaatccaggatgccagacaagaatctgggGAAgttaa
-cattcaggcatccctggatggcaaggctaaaggagcacactgtaacatatgcccacttgg
-gctccagcacctgtccatctgtgtgttcccccttccctcaggggtttgagcagtggggtg
-accaaacagacgagccacaccccctgttgcatgtcctgcaaggagaatcagggaactctc
-ctgtttcaGttggaagagcaagtgtccctctctctctcgtggtggggagacatctcttcc
-ttctgggctgtcacagccccaacctcaccaacctacctgacaagggagtctggcagaaca
-agggcaagggcagggagaagcacctctaactctattcctggataataatcaagtctctaa
-aagtcatcctggagccgggcacagtggctcatgcctgtaatcccagcactttgggaggct
-gaggcgggtggatcacctgatgtcaggagttcgagaccagcctggccaacatggtgaaaa
-cctaactctactaaaatacaaaaaaaattagctaggcatggtggcaggtgcctgtaatcc
-cacctacttgggtggctgaggcaggagaatcacttgaacctgggaggcggaggtcgcaat
-gagctgagactgtgccactatgctccagcctgggtgacagagagagactctgcctcaaat
-aaataaataaataaataaataaataaataaataaataaataaataaagtcatcctctagg
-gctttgaggccgttcaagcccctattttttccatctctgtggatgagcctctgttaaatc
-tgattgtggctgaacaagagataatgttcctaatagatacagggaccagttattcagctt
-taagtgtttattacagcccaatgtgctagtcctccatttcattacgggtattgataaact
-tcagtgaggctgtttcacactgccactcccttataaaatgaaaggctattcctttaccca
-ctcttcagtcctgccaagctgccctgtttctttattaggtcacaatttgctcacaaaatt
-acaagcgaatttacagttaagacctcacattctagctgtaattaactcacacttcaccaa
-aaaagttgctgcagtctatagaacatcacattttaaaacaagtgccggccaggcgcagtg
-gctcacgcctgtaatcccagcactttgggaggccaaggcgggtggatcacttgaggtcag
-gagtttgagaccagcctggtcaatatggcgaaaccccatccctactaaaaatacaaaaat
-tagctgggcatggtggcacacacctgtaatcccagctactcaggaggctgaggcagggga
-atcacttgaacctcggaggtggagattgcagtgagccaagatagtgccattgcactccag
-ccctggcaacaagagtgaaacgctgtctcaaaaaaaaaaaaaTTGTTCTTTTGTTTGCTT
-TTCTTTCACCCTGATTCCTCCTTCCCCCTTTGCCGTCTTCAGTACCAAGCTACAAAGCTA
-GGGGTGGCTGAGGACAGTAAACAGAGTGTGGtcttagctggctttttccctcctgggaag
-ttgttgtttaggatcctaattctagttcagaggtgcattctaaatagtcttctccattgc
-ctttccccccaaaattaatctcacacgttggcttgtgtgtgcattcacgtgaggaactga
-actgtcattttcatagataaataagagactgagtttccttagctccaaagagaaagggca
-ttttgctcctcccagcagaaaggtacccgagtgactggggggccttgcgggagtgttggg
-gggttgagcccccagcgacatgaagtgattctgcagggaactcacaacaaaattagtttt
-aaaaaggctcgtccaggaagcacatataggaactggtcactctgagttttgagccctctt
-ggaggtgctagacctccggagaaaacactgagacacctaagagggtggtggcaaggattc
-agtggtgacacactgtggagtctcatctgcaaccattacacttcgacctactccacaaaa
-accctaggccacagctcagttactccttaaaagaaagtgggaaacaaataatctaagaat
-aaggaaaaacaaggtgttgacgaaaagagttaaactgtgtaaaatagttgaagatattta
-ttcagagcccaatatgagtgactatggcccgtgacatagcccttaggaggtcctgagaac
-acgtgcctaaggtggtcggggctcagcttggttttgtatattttaggaaggcatgagaca
-tcaatcaaatacatttaagaaacacattggtttgattcagaaaggcgggacaattcaaag
-caggggtcagggtgagggtggcttccaggctataggctataggtaaatcggtaaatttaa
-actttttgttttgttttgtttttttgttttgagacagagactcactcttccacccaggct
-ggagtgaagtggcacaatctcaactcactgcaacctccgcccccatgggtttcaagtaat
-tctcctgcctcagcctcctgagtagctgggattacaggcacccaccaccacgcctggcta
-atttttgtatttttagtagaggcagggtttccccatgttggccagagtgatcttgaactc
-ctgacttcaggtgatccaccggcctcggcctcccaaagtgctaggattatgggtgtgagc
-caccttgcctggtctaaatttaaacattttctgattgacaattggttgagtttgtctaaa
-gacccgggatcaatagaaagtaaatgtttaggttaagataaaagactgtggagtccaagg
-ttcttttgaggtcttatattggctgcccttagagacaataggtgacaaatgtttcttatt
-cagacctttgaaaatgtgctagactattagttaatctcttcaggattgggagggcctaaa
-ataaaaagatctagctatgctaatagagattctttacagttgcaaattttcccccacaaa
-gtacagtttggcaggaccatttcaaaatatggcaaagaaacatgttttggggtaaaacaa
-ttgactttcttcttggtcatgtaatgttatgccagagtcagattggaaagtagtcatcat
-atataatgttaaataaaatccatctgatgagaatttatgatttgtagggcatgactcccc
-agaccccttagataggaatttaggcaagatagaaaaaatcagagcttagtcttctcacaa
-gagaatgaccctcttttaggtaccccattgattttacggcatctctactttgcaagtgtt
-tgtgtaaatggacatattatggtctctttgtgcacaattatgtcaaagacaatttagagc
-ttgaaggttgacctccagctgtaaagttcctaagttctctatctctctgctttcttttct
-gcctgttttaagtctgctattatttttctttctttttttgagacagagtcttgctctgtg
-cccaggttggagtgcagtggtgcaatctcagctcactacaacctctgcctcccaggttca
-agcagtcctcccacctcagcctcctgaatagctgggactacaggcatgtgccaccactct
-tggctaatttttttttttttttgagacagagtcttgctctgttgcccaggctggagtgca
-atggcatgatctcagcaaaccaacgagtttctattaatatctcatggctagagttctgag
-ataatagctataggatctttggttgtatgagtatgtatgtgtgtgtttatgcatacatac
-acttatttcattgtgttttctagccacaggtactgaattggcttaaagttaaagaatatt
-cataaattaataagcctaaatgcttttcaagttcatgtgacttaagtaaaatctttaata
-agctagctttaaaattattggtaaagtaatattagaaatgtcttaaaaattgttagcata
-aatttttgtttgcatttattgatcaagggacttcatatactgccaaatactgtaaggtgt
-caaaatttggcatagggtttgtaaaactacaaaaccgttcaaaacagaatgatttttgct
-tttgtaatttttgataaataagacattgatattggtttaatgaaaacagctaaatcatga
-attatttagtgaaataacaatatatttaatcttaaggtttttacttagcaaacacctgaa
-attcacaggctatcaaatgtttgacagggaaataactttaaatgatgactatcacagttt
-tcataactaacctgggtaaactattaaaataaaatatttaggtaaatgtaatgggataaa
-tacttgtagacaaagttgtcataatttaggatctaaagttatgttaaattaaacaataga
-tatttcattaactgggtttttttaattaaaaaagatattgcaggaaatcattttttttct
-aaaaaatgtgttcttgttaaaaggaggataatttttgtctaattcaaagcttatttaaag
-gttatatataaaataaggtaaaaagaaacaagaaaatatataaagaagttatagaaataa
-aaaagaatttttggtaagaaagcttaaagaaaaataattttacatgagaaagaaccttgt
-atggtacatttttgtcctagaataaaatgactggttgtttaagaaagaggaatgttcata
-caaaccagaaagtccaagcatgtcgtgaatggtctgtttaagttataataagagcattta
-tggaaaaagacccacaaactttcatataatcaagttgtctataattaaagggaaattatt
-tataatgatcttttgagagattgggttttgatattaaaaaacatttatacactaaagaat
-tcattagaacaacattttcttaaggtattgatttacttttaataaattacaagactatat
-atataatatattttttcctgcaaagttcaacttttattgcatctcactgttttcagcttt
-ctctccccttttaaagtacctgaaataataactctatctttcaactcatttttagctcct
-gtaagtttttttattttctcctttgtgttctaactgttgtggcctgacgctaataaatgt
-tttatctttgtggtctaaaggaaacattccttccaacataatatttcctgtagggaacag
-cggttgaaatgcagaaggtgttttgttttccctttgggaaattggcctaataaacagagt
-ttatgctttattgaaataattcctatgtcattattactaagttttggtttgtttagaaaa
-aaacccgagattaaattttttttaattaagattattacatacatgtaaccctctgtatgt
-gcttttaaagtccttgtgccattaagttacagagctttgagtccttggtctaaaaagaac
-accaagtcctgctaaatattaaacactgacagcagttaaaacctcattttctgacctggt
-agaagatgccaatcaaaataaactgtgttcatgagacagaaggccggaaattaaaacgat
-tcaactcctcaaggtctggagactatcaaagaagaggtgggtgcatgagattgtaagggc
-cgattttgagagatcaaatgattataaggccaattttgagagataaaataattgagtttc
-tctataaattaaccattaatctcaaaggcacactgatgcaagactagcatatgggctgct
-gtgtcacgttaacaaggttttcttggagaattaacccactccttaataaaaggttataaa
-agaggttataaaggttataaaaaaggcttgtggaatttttatcttgtggtcaggatgatt
-aaaattttatagattgtttatacattttgaaaaacaaatttaattggcctcgtttttatt
-agggcttattgtttaggcaattaagtcttctctctcaaagaatcaaggtttttgcctttt
-ttttgaaatctttgagttatcaagttgagtaaatgaaagacttattttacaatgacttga
-tctgtgatcctattttgtgatatcaagcattttatttatttatttatttatttttgagat
-ggagtcttactctgttgcccaggctggagtgcagtgctatgatcttggctcactgcaacc
-tccacctcctgggttcaagcgattctcctgcctcagcctcccgagtagctgagattacag
-gtgcctgccaccacacccggctaatttttgtatttttcatagagacagcatttaccatgt
-tggccaggctggtctagaactcctgacctcaggcgatccacccaccttggcctcccaaag
-ttttgggattacaggtatgaaccactgtgcccagccaaatcaagcattttaaacttttta
-tttttatttttaaaattttaatattttgagatggagtctctctctgtcactcaggctgga
-gtgcagtggtgcaatcttggctcactgcaacctctgcctcccaggttcaagcaattctca
-tgcctcagcctcatgaatagctgggattacaggcacttgccaccacacccagctaatttt
-tctatttttagtagtgacagggtttcaccatgttggccaggctggtcttgaactcctaac
-ctcaggtgatccacttgccttggcctcccaaagtgctgagattacaggtgtgaaaggtgt
-ttaaaggccactgtgcctggcctttaaactttttatatttgacaaactttccaaagtcaa
-attctaacttggttcctcaatgattttttgatattagtcccctgaagtccaaaagagaca
-cagtcagcttatttggcataaaaatcatacaggaagcattgtcaaatatgtaatagtgtt
-tggctttctttgggctgtatttgtataaatatgttattggcatatgttccaaaattatgg
-gaaaatcctataattatgaatgacttagtatatgttattaatcattatcattattatgta
-aaattattgtatgctacagaagtaaccaagtttctttgtcaattgtgtctttaagtatga
-cttttctaaaacttttgtcatccacagttgttttacttttatccttttcaaaaggatgat
-tttacaatcagcataggactctgacagttgctgttgaatacaggttttggagatagtgac
-actaaaatagagaaaaaaaatccaacactcccatagagagctgaaatatacatgaatagc
-aagcagaagaggagttaactgcatggactgaactaatagaagactgaaataatccttcta
-tgactttttgcttaaaacattgctaatcctttctttgtttttcagagccaagaaaacatt
-tattttgagcttttaaaaaatttattattattattattattaacaaataaataatcttct
-ttctttttttcttttatctttctctgcagggcaagttctgtatttatagcttttaacaat
-tgaggaaattatactcctataaacaaaatttggagcatatttctctctatctggtttctc
-taaaatttggaaactagttgggagtattcttaacttatagcaatatagttatctgcacaa
-gtacaataagaatctgttttcttttgtaagaggacataattggggacagtggtgatttta
-ccaaggttttgactggaacaacatgctatcagatgcagactcctttaaggaatcaaagtt
-gacttacagagctaataaaagcatcttgggaaagctggcctcctatcttgtctacacagt
-ccctgtacaggttcctgacctgtggtaagtaaagagtgtcactttctaacaggcccagga
-gcccaaagtcttcctgaggtgaggaattcatccaattaatacaggtatttgcaggcacag
-gccgggcttaagacattaaagtcgaatgtgagattacttatggaataaagttccagcaaa
-gccaattaaaaaaaaaacaaggagcctatatggcaaataattattcttgatgattttatg
-caaatactccagccaaatataataagacagaaacttattttgcaaatgaattttgttcta
-taatttgtcctcagtgaaaggggactggagagagaaaaaattatgtttcaaaatcaccta
-tagtacacctgttgttagattttagtctcacttagtgtttttaaatttttattattttct
-atagtttggactaaactctaaaatttttcctggtcacaagtccccaaaataatttttttc
-attttttttcttttttcctttccttttccccccacattttttcctgattagaaatcacca
-aacattaaactgtgctttcctaaagccctgtgaactaaagctagacaatctatttacata
-cataagctactttcatacctgcctactggtgtatgaacttcagagtaatatggcctatat
-tgatttcccaggattattgttgttgttgttgtttttctcctttcctcccccattttctct
-taggacgtgagacttcacaacctgctaaagcgagctttcctaataatgtggaacctacct
-gtctatgaataaactgtcctagtcatgagagatcagacaaaacctgagaccagaggctaa
-ttttcttctaaaatgcttttaaaaagaaaaggggggaaAtgtgaaaggaaaataaacttg
-ggaccctcaaatcactaagccaaaacgaaaagtcaagctgggaacggcatcgggcaaacc
-tgcctcccattctaatgggatagctaaataagatagctacaaagattttaaaaagctaca
-tacctccctcacaattttcccacaaggaaattccttgtgtacctagaacagacagaactc
-aaagtcatccctctgctcatgggagacaaatgcacatctgatggcttcctttgccctatt
-gcttcgctaagccagactaaggcataagtgactattcctgcaagttgcatattcagtgga
-gggctaatcagaaactcaaaagaatgtaacaatttgtcctttatctacctatgacctgga
-aaacccctccccacttcaggttgtctcacctttctggatggaattgatgtacatcttacg
-tatttgctgactgatgtctcatgtctccctaaaatgtataaaacctagctgtgccccaac
-taccttgggcacatgttatcaggacctcctatggctgtgtcactggtgtgtccttgacct
-tggtagaataaattttctaaattgattgagacttgtctcagataactcttgatttgcagt
-aagtagcatttctaaacatctctggaatgcatgcatattgaaactcattatgcaaccctt
-gctgacatcaaggcaggaaaatgtctacaaatgtaatcatttagcgtgacctatgtggct
-aatgtggaccaaattatccttaagctcctgctttaaggtgcataaatgcccctgaggaaa
-aatccaccttggcactctccatcctatcttgctgagattcttgcctgcactcttctacag
-agttctttctttctaataaaactttccttttttcaaaccaatactattatccataaattc
-ttcttctttttttgtttttttgaaacggaatctcactttgttgcccaggctggagtgcag
-tagcatgatcttggctcactgcaacctccacctcctgggctcaagtgagtctcctgcctc
-agcctccagagtagctgggattacagacgtccaccaccacgtccagctaatttttgtatt
-tttagtagagatgaggtttcaccatgttggccaggctggttttgaactcctgacctcaaa
-tgatccacctgccttggcctcccaaagtgctgggattataggtatgagccaccatgccca
-gcagtaaattctccttactaatccacgagtggaccactttccaatgctgaggctctgaca
-cctcgctgggcaGCCACTTTTGATTATTTTGGGTTGTCAGGGCTCAGGGACACAAGAACT
-TGCTCCTTAGGGGAGCTGGAGGTCTAGTAGGGATTGCTTGTTCTCCATCAGGCCCCTAGT
-AGGGAGGCCTCTCCTGTCCCCAATCCCTGACTCCCAGGGATGCTCCCCTCCAAACCACAG
-caggaagttcctccttaggtcagacccacagccctgatgctgtggtctCACTGCAGGTCA
-TAGTCTCACAGGGGCCTCTTATAttattttaattttaattttaattaaattaaattaatt
-ttttttttttagatggagtctcgctcttatcgcccaggctggagtgcggtggtgtgatct
-tggctcactgcaacttctgcctcccaggttcaagtgattctcctgcctcagccacctgag
-tagctgggattacaggcatccgccaccatgcctggctaatttttgtatttttagtagaga
-cagggttttgccatgttgaccaggctggtctcgaaatcctggcctcaagtgttctgcctg
-cctcagcctcccaaagtgctgggattacaggtgtgagccaccgtgcctggtcttatatta
-ttttaattttaaatttaaGAATACATTCTTAATATCAACCTTCAAAGACTCCCTGTTGCT
-TACCAAGTTAAGAAAACTACTTAAACCTCACATATAATTCCTTTCTCAACTGGGACCAAT
-AAACCGTGACAGCTTTATtgaagggggccagccccttcacacctgtgggtatttctcgtc
-aggtgggatgagagactgagaaaagaaatagacacagggacaaagtacagagaaagaaca
-gtgggcccagggcactggcgctcagcatacgaaggacccgcaccggcgccagcctctgag
-ttccctcagtatttattgatcatgatctttactatcttagcaaggggagtgtagcagggc
-aacaggtggggagaaggtcagcagggaaacatgtgagcaaaggaatctgtatcatgagta
-agttcaaggaaagatactgtgcccggatgtgcacgaaggctagatttatgtttctcttta
-cccaagtatctcagtgtagcaaagagcaacagagcagtattgctgccagcatatctcgcc
-tccagccacagggcggttttctcctatctcagaatagaatgaatgggaatggtcggcttt
-acacagagacattccattcccagggatgagcagagaagccttcctcttatctcaactgca
-aagaggcctccctctttcactcctcctcctcagcacagaccctttatgggtgtcgggctg
-ggggatggtaaggtctttcctttcccatgaggccatatctcaggctgtctcagttggggg
-aaacgttggacaatacccaggctttcttgggcagaggtccctgtggctttccacagtgca
-ttgtgtccttggttaacagagaatggagaatggcgatgacttttaccaagcatactgcct
-gcaaacatattaacaaggcacatcctgcacagtcctaaatccattaaactttgatccaat
-acagcacatgtttctgtgagcacagggttggggataaagttacaagttaacagcatctca
-aagcagaaacaatttttcttaatacagatcaaaatggagtttcttatgtttccttttcta
-catagacacagtaacaatctgatttctctttcttttccccacaCTTTCTCACGTGttctt
-tctttctttctttcttttcttttttgagatggagtctcgctttgttgcccaggctggagt
-gcagtggcgtaatctcagctcactgcaaactctgcctcccaggttcaagtgattctcgtg
-cctcagcctcccgagcagctgggattacaggcatgcaccatgacgcccagctaatttttg
-tattttcagtagagacgggtttcaccatcttggccaggctggtctcgaactcctgacctc
-aagtgatccacctacctcagcctcccaaattactgggatcatatgaatgagccaccatgc
-ctggccCATGTTTTTCTTGTACTTTAGGCTTTGCTACTTACAACCAGAACTGCTTACCAT
-TCtgtcagaagccttccaaccagggcaactccatcttgaataggggctgggtaaaataag
-gctgagacccactgaactgctttcccagaaggtcagacattcttagtcacaggatgggat
-aggagtttggcaggactggtatcacaagtacaggtcacaaagaccctgctgataaaacag
-gatgcagtaaaagaagccggccaaaatccaccaaaactacgatggggatgaaagtgacct
-cgattcgtcctcactgctcattatataggaattataatgcattcgcatgctaaaagacac
-tcccaccagcaccatgagaatttaccaatgccatggcaacgtcaggaagttaccctacat
-ggtctaaaaaggggacgaaccctcagttctgggaattgcccatccctttcctggtaaaac
-aatgaataatccaccccttgtttagcatacgatcaaggagtaactataagtatgttcagc
-tgagcagcccatgccactgccctgcctatggagtagccattattttattcctttactttc
-ttaaataaacttgctttcactttactctatggattcaccccaaattccttcttgtgtgag
-gtccagaaaccctgtcttggggtctggtttggtacccctttctggtaataATTCTGTAAG
-TATTTGTAGTACGTCTGAGCCACCAAAATTTCcatactgatccttccattagaatatcct
-ttctgcctgtctctttctggcaggatctgatccatatttcaaagccagtctcaaatgcca
-ccttttccaaagaaacctatcctTATATCTTTATCTAATACAAACAGTATATATTGGGAG
-CCTAAGAAATGCTTGTTGCATACATCAATGAATGAACCCCAAACCAATGTATTTCTCCCT
-TCCTTGTAATCTCCAGAAATGTTTATAAACTTTGTTGTTGTTTAtttgtttgttttattt
-ttatttttattttgagatggagttttgttcttgtcacccaggcgggagtgtaatggcgcg
-atctcggctcaccacaacctctgcctcctgggttcaagtgattctcctgtctcagcctcc
-cgagtagctgggattacaggtgtgcactaccatgcccagctaatttttgtggttttagta
-gaaatggggtttcaccatgttggtcaggctggtctcaaactcctgacctcaggtgatcca
-cccgccttggcctcccaaagtgctgggattacaggcgtgagccaccgtgcccggccTGTT
-GCTATTTATTTAATATACTTTATTTTTTTGAGCGATTATAAGTTTATTtttatttattta
-tttatttatttatttatttttgagacagggtctcattgtcacctcttgcccaggctggag
-tgcagtggcacgatgttagctcactgcaacctctgcctcccagagtcaagtgatcctgcc
-acctcagcctcctgagtagttgggaccacagatgtgcaccaccacgctgggctactattt
-ttatatttttagtgcagatggggttttgccatgttgctcaggctgatcctgaactcctga
-gctcaagcaatctgcctgccttggcctcccaaagttctggaattacatgcgtgagctact
-gagcccggccTTAGGTTTACAGAACAGCATTCCACCCATGTTATTTATGCAGGGGAGCAC
-ACCACACACATCACTTTGCAGCTTCCTTTCTCCTCTTATATGTCTTACAGATCTTTCTGT
-GTTCTGTACATTGAGACACTCATTCATTGGCTTCACTCATTCATTTGAATTCattccttt
-gttcaacagatatttatcgtcagctctatgtcaggcactatgagaagtgcttgggatata
-aaactgaacaaaataaacaaagtcctttccattggagagatgacattctagtgtaaggag
-atagacaatagataataaatacaacaaataaataaatacatggtttagtatgttataaga
-tgctttctgtaggaaaaaagtgagagggacctggagtggagggaggaccgagtggggaca
-ggtgcagggtgggggcagccagtagagcccctctgaggaggAGTGGATCACAGGAGGATG
-ACTGGCAAGACCTAAAGGTGGCAAGCTGTCTCTGGTGCTGGCTCTGAGAGCAGGATAGCT
-GGAGTAGAGTGAGGGAAAGGCGAGGTCAGAGGTGAACCTGCAGGGCAGGTGGGGCTCCTT
-CCGCTAGCgcatggtgttccattatccagatgcaccaggacaaatgtcgcccactgccat
-tactaggtgcttaccatgtgccatcaagaacaataccgcaggccgggtgcggtggctcac
-gcctgtaatcccagcattttgggaggccaagatgggtggatcacttgaggtcaggagttc
-gagaccagcctggctaacatggtgaaacctggtctcgactagaaatctaaaattagccta
-gcgtggaggcgcactcctgtaaacccagctacttgggaggctgaggcaggagaatctatt
-gaacccaggaggcagaggttgcagtgagcctagatttcgccattgcactccaactgggca
-agagcaaaaatctgtctcaaaaaacaaacaaaaacaatactgcaataaacattctgtcag
-tctgtcattttgcccatggacagaatatctgcagaattaattcccggcagtgaacttgAG
-AGAGATCACCCAATTGCCTTCCAAAGGAGCTGTGCCTGGACCATGGGTTTCAGCACAAAG
-TGCTGCTCCCTCCAACTTGTAGACTCTTCTGGCAGGTCACGGTGGAGCTCACATTCTAGC
-GGGAGAGTGTCCAGGGCAGAGATATTCCATTCCGTGTCTTTTCTCCCAGGGCTCGCACAG
-AGAGGGTTCACGCGGTAGTCAGTAGGTGGGCAGTGCTTGGTGAAGGCATTGATGGGTGGA
-GGGATTGAAGGATGAATGAATGGATTAGGGGCTGACAGTGCCGCTGCAGTTACTCAAAGG
-AGCCACCAGGAGGCGCAGGGAGCCCACATTCTGGAGACAAACCTTTTAAAAAAAGCATCT
-GGTGACTTAACGACCTTTTCACCAATGGCTTGTGTGGGGCCTTAATGCTAGGGTGAGAAA
-AAGGTGGGAGATGGAAGAAAGGGGAGTGGGTAAAAGGACATGTGGGAGAAGAAGGCAGAG
-AGAGGGCCTTCTGAGGGGGCCTCCACGCCAGGTAAGGACCGTTTAGCTCCCCTAAGAGCC
-TGCAGCATTGATGCAGATCCCAGCAAAGCCAAAACCCCCTTATGCCCACAGTTGAGCCCA
-AAAGCCCAGAACAGAGGGGAAAAATAAATTTCAGGATAggccaggtgaagtggcttacgc
-ctgtaatcccaaaacttggcgaggtcaagtaatcccaagtactttgggaggctgacaggg
-gaaactctatctaaaaaaaaaaaataaGAAAAGGAATTTCCAGGATAAATATGTACAGTA
-TAATCCCATTTATGTGAAAAAAAAAATCTCCACAAATAAATTCCTTtgtgcgtgtgtgtg
-tgtgtgtgtgtgtgtgtgtttgtgtgtgacggagtctcagtctgtcgcccaggctgaagt
-gcagtggcacgttctcggctcactgcaacctccggctcccaggttcaagcaattctcctg
-cctcagcctcctgagtatctgggattacaggcgtgtgacaccacacccagctaatttttg
-tatttgtggtagagacggggtttcaccatgttggtcaggctggtctcgaactcctgacct
-cgtgatctgcccgcctcagcctcccaTAAATTCTACATATTAGTTTGGGGAGTGTGTATT
-TACCACATACACATCTACAGGGAAAATCTGGAAAGGTAAATGTCGAATTGACAACAGTGG
-TTACTTTTGTTATTGTGTGTGTAGAGAGGGGCAGGGGACAAAAAGGAAAATGAGGAGTGA
-TCAAAGGGGACTTTAATTTTCTTTTTTTTTTTTGAGACAGAGtctcagctcactgcaacc
-tctgtctcccaggttcaagtgattctcctgcctcagcctcccaggtagctgggattacag
-gcacccgccaccacgcctagctaatttttgtattttattttagtagagacagggtttcgg
-tttcaccatgttggccaggctggtctcaaactcctgacctcaggtgatctgcctgctgcg
-gcctcccaaagtgctgggattacaggcgtgagtcactgcaccgggccCCCAAAGGGGACT
-TTAGACTAAACTGAAACATTTTAACTTTCCAGGAATCTGTAACCCTGCTATTATATAACC
-ACAAATTAAAAATTACTTTaaaaaatgaaaaaaaaaaaaaaaaaaaaaaggctgggagcg
-gtggctcacacctgtaatcccagcactttgggaggctgaggcaggaggatcacgaggtca
-ggggtttgagaccagcctggccaaaacggtgaaaccctgcctctactaaaaagacaaaaa
-ttagcagagtgtggtggcacgtgcctgcagttccaactactcaggaggctgaggcaggag
-aatcgcttgaacttgggaggcagaggttgcagtgagcctagactgcgccattgcactcca
-gcctgggcaacagagcaagactccggctcaaagaaaaaaaaaaaaggaaaagagaaaaaA
-AAAGGAACAATAACAACAACaaaaattaaatgctatcttgtgttgcatcaatagaagtct
-tacgtgcagctcaagggaggtgacagccccctctgctctgctcagaccacacctgggacc
-tcctttcctcttcttggccctgtcccgtgagaagaataatgacagcctaaggcatgCTGG
-GGGTTGGAGATGGGGGGAGGCTGGGGCCATCTGCACATGATACAGATCCAGGAATAGTCC
-CTTTACCCAAGCGGGAGAAACTGGGCAGGTGAGCAGCTTCCAGGTGTGTGGATGGCAAAT
-GGATGCCAGACTTTAGGATAGGAATCCAGGGGTGCAGCGGATGGAAAGTCCAGCCCAGGA
-TGGGGCATAGTTTTCCCACCCAGCTAGGGAGGGAGGGTAGGGGCTACTCTGGGGTGTCAG
-GAGTGCCGAAGCCTGAGGTAGGCGCAAGCCAGGCAGCATGGCAGCATCCTTCCAGAGGGT
-GTTGTGCAGCTGTGGAAAACAATTGCTGGGAGGCCGGCAGGGGCAGTGGTGGAGGAGACC
-AGAGCTTAATTCTAGGTGAGTCACAATAGCCTCATCTGTAGAATGAGTGAGGGGTGGGGC
-GTAGTTTCAGAttttttttttttttttgacacgtagtttcgctcctgttgcccaggctgg
-agcgcaatggcgcaatctcggctcaccgcaacctccgcctcccgggttcaagcgactctc
-ctgcctcagcctcctgagtagctgggattacagccatgtgccaccatgcccggctaattt
-tgtatttttagtagagacggggtttctccatgttggtcaggctggtcttgaactcttgat
-ccgcccgccttggcctcccaaagtgctgggattacaggcgtcagccaccgtgcccCACCA
-GTTTCTGACTGAttttcttttttttttttttttgagacggagtcccgctctgtcgcccgg
-gcgaagtgcagtggcgcgatctcggctccctgcaagctccgcctcccgggttcacgccat
-tcccgggcctgggaccacaggcgccgccaccacgcccggctagtatctttttttattttt
-attttcaatagagacggggtttcaccgtgttagccaggacggtctcgatctcccgacctc
-gtgatccgcccgcctcggcctcccaaagtgccgggatcacaggcgtgagccaccgcgccg
-ggccCAGCTTCTGATTTTATGCAGCTGGCGGGATCTTGTTCTTGGTCCTTTAAGGCGACC
-GGAGGGATTGCAGTTTTAAAAACTCGCCAGCAGAGGTCGCCTTCTGACGGATTTGACCAA
-AAAATCCATTCCGGTGGGAAAGGGGAACCTGCGCCTGCGATtctctctctctccccctct
-ctccctctctctttctctccccccctctctctctctccctccctccctctctcctcctac
-tcctccctccctccctctctctgtctctccctccctccctcccgctctctcccccctccc
-cctctccccctccctccctcccttcctccctctctGtctctttctttgagacaaagtttc
-actctgtcacccaggctggagtgcagtggcacgatctccactcactgcaacctctgcctc
-ccggggttcgtgattctcatgcctcagcctcccgagtagctgggattacaggcgcccgcc
-accacgcccggctaatttttgtatttttagtagagacggggttttgccatgttggccagg
-ctggtctcaaactcctgacctcaagtgatctgcctgcctcggcctcccaaaCTAAGATTC
-ATTTGTTGACTAAGTGAATAAAAGGGGAGACATTGAAGAGGGGGACCCgactggatttgg
-gggtgaaggtggagttgagagtgactttgaggcttctgcttgagcaatgagtggagggtg
-cctctcctgagctggggaaactggggcagCACTGACGGAGGGGACACAGCTACAGAGGGG
-AGAACCCTCTCCTGCCGGGGCTGCGGGTTACAGCCTGCACTGCGATTCTCTGATCTCAGG
-GACCTCAGACTTCTGGGGCCCTGTCCCCTACCTCTGTGTATGACCCTAGCTGGCTGAGGG
-CTGAAGGCTTGCTGTTGGCTCTTTCTGCACCCTCAGCCTTCTCCTTCCTCTTCCCTCTGC
-AGGACTCTGTCCTGGGTCCTTAGGAAGAGTCCAGGCCCCAGGACAGGGAAGTTGGGTCAG
-GCCTGGACCTCACATTCCCTGCCTGTCCCATGAGGTGGACAGTGAGAGGACAAATGCCTG
-GACCCCTGGCCCCAAACCCAAGAGCAGATGTACCGGAGAAGAGCTTCTTAGAGCACCAGG
-TGCCAGGGCTGCGGTGGAGAATCAGGGGGGCCCAGGGGAAGGGGCTGCAGATGAGGGAGG
-AGATAGATACGGAGGGCCTGTGTGCCTCCCAGATACAGGGCTGGCTTTCCCAGCCCAGAA
-GGTTCTTTCTGCCTTTCCCAGTCTTCTTCCATTCTCATTTCATGTTCACACTTTTGGCCA
-TACCCAGGGTCAGCCATGAAGATTGTTCTCAGAATGTtttctttcttccttcctttctct
-ttcttttctttctttcttcctttctttctttcctttctttttctttcttctctttctttt
-tttcttttcttctttctctctctttctttctctctctctctctccttccttccttccttc
-ttttctttctttcttctttctttttttgaaacagagtctcactatgtcacccaggctgta
-gtgcattggcacgatcactgctcactgcagccttgacctcctgggctcaagtgatcctcc
-cgcctcagcctcctgagtagctgggaccacaggtatgcaccaccatgcccagctgatttt
-ttaattttttgtagagatgggggtctcactgtgttgctctggttggtcttaaactgctgg
-gctcaagtgatcctcccgccttggccttccagagtgttgggattacaagcaggagcagca
-cacctggccAATGTTTTATTTAAATCAACTCACTTAGGTTGAAttagaataattttagac
-acacagaagagtgtgtctatataattttgaattatatacccaacactcagatataacatt
-agcattttgccatatttgcttcatctatttctttctgaaatattttaatgtaaattacag
-atatcatgaattttcatccccaaatactttagtctgcatCAGTCAAAGATATCTAATATT
-TAATCCACAATGGATTTCCCCAGTGGCAATTCCCCTAAATTGTGTTTTACAGTTGACAGT
-GGatttattgtaaaaggaaactcgatataccaagtgacaagcaagttatcttctgttata
-aatagaaaggatccctggaaatggacacagtgtcaggcccagagctgtgggtggagacct
-gctctctgtttgacataaataggagatcagtggctactaaatctgaagacagggcagcag
-caaagaacattttctcacggatgtgatgagacttgaaagggactcagaaagggggtcact
-ttctccaggttggggtaactgttatttaagccagggttcatCTGCAGCGTGGGGAGCCAG
-AGGGTGACCCCTTCCCTAGGTGATGGAGGTGGCTGAGGCTCCAGAAGTTTCCAGAGAAAG
-ATCTGGTGTTCCTACAAGGCCAGTGGCAGGGGGAAGGGCACTAGACAGTGGGGCTGGAGG
-GTGTGGGCCTGTCCCTGCTCTGATTTTGGGCACTGCACTTTTGCCTGTAAGAAGGGGATA
-TGTGAGGCCAGGACAGGGTCTCCTACTCTGTCCCCACTCCCACGCCAAACAGGGCCTTGA
-GGACTCTCGCGACCTCCATGACCCAGCTTCCCTCCTACCCCAGCCCCAAGCCTGTTTTTG
-TTCCCCTCCCTCCctcctgcttgatctttgagcctcagccaggatgttacctcctcctag
-aagcctgccttggtccctggaatggattaagggactctctcctgggccccacagctgccc
-aggatcactcagcactgtagtgccctgttggcctttgcctccctccagctgtggacgtac
-aaagcagacagcgaatctgtcttgctcaccactgtacccccatcccctactgcagcacct
-ggcacatagcagtagtgcggcacacttgttgaatgaataaGGGATCATTACTACTACGCT
-TCCCACTCATAAATGTCTGCCTCTTCGGGGGGCTCAGAATGCACATTTGGTCCTTCATTA
-ACTCATTTACTCACAAttttttttttttttttttttttgagacggagtttcactcttgtc
-gcccaggctggagtgcaatggtgtgatctcggctcactgcaacctctgcctctcaggttc
-aagcgattctcctgcctcagcctcccgagtagctgggattacaggcgctagccaccatgc
-ctggctaatttttgtatttttagtagagatggggtttcaccatgttggccaggctggtct
-cgaactcctgacctctcaggtgattcacccacctcagcctcccaaagtgctgggattaca
-ggcatgagccaccgtgcctggctcatttactcacaaatatttactgagcacctactatgt
-cccaagcagtattctaggcactggaaatggggcaaggctgctgcctctgtggaacttata
-ctggggtgtgggaggcaaagaaaaacaagcaaacatacatatgaaataatttaagatgcc
-actcgtggtgggagggactgacaggagctgctgtggaagagagcattaggagggccttgc
-tgaggggtgactttatttcagctgagaggtggatgagaaggcacctgcaggggaagaaga
-accaggggaagggtgttcctgatggagcaacagcctgtgctaaggccccaaagtgagcac
-cagctgggcgctgagggacagaaccaggcacaggctcggttagaggaggtctgaggtccc
-agaggagacaagagaggggaaggatgggagggcaggcctgagccgcagaaggccagtgga
-aggttctgagtgggaagaggatgggataggagttatattctgaaaggtccgcctgtgctg
-ggtggaggatgggtggggacaggcaggagcagcccaggctctgatgcagcctccaggcag
-agatgGACCAGGGGAGCCCATTTCATATCCGGCCCCTGTGGAGGGTCTGAGGGTGTTGAG
-CAGACAGGCCCTGGCTTTGGAAGTCCTGGGTGTCTGGACCCGCCTGCCTGTGGGGCCCCA
-GCAGAGAGGAAGGGAGGCGGGGCTCCCAGTGCCTGTTGACTCATTTGCATCTGATTTGCA
-TGTGAAGCAGAGAGTCAGGTTGAAAGCTGGGAAGGCCTGTGCCAGCCCTGGGTAGAGGGT
-CTTGGGTGTTAGTTCCCACAAAGACTCTGTCCCAGGCCATGACCTTCCTGTTCAGGAGGG
-GCTCTGCCTTCCCTTGCCTCCAACGCCCCTCTGGCCTGGCCCTGCCATCTGGGGCTGGGC
-AGTGCCCACGGGGACAAGGTCGTTTCCTTTTAGGAGAGGTCTGCATGCTATGAGGACAAA
-GGCCAAATCCCCACCCTCGGGAACCTCCTTCCCCAGCAAAATCCCATCTGTCAGGCTCAG
-CCTCTGACCTTCGACCTCTCTGTCAGCACAGGCTGCAGTGTTGGGGAGGGGAGGGTCCCC
-ACCCCCAACCCTAGGGGAGACCCAAACCTCTCCCCCCAGCCTTCTCCATCTGTCCCCTTC
-GGCTtctgccacctgctccgtgtgatccaggccaggtcacctccgctttctgggccttgg
-ttcccccacgtgtccaatgtgggTTTCCCAAATACCAGTGACTTGTGTCAGTCCACTTTT
-GTAATTGTAGCCAACTCCacttactatttcttaagtgaacttactctccttcacttaaat
-agatttaatttaaaaagaaatgttataccagctctgtaaatggaaaaccagtttcatctg
-ccacaagtagaaacataataggaaaaaataatgaaatggaaataaaacaatgttactcta
-gtctagcCTCaagtgaaaaaagtcagacacaaaaggttacatttatatgattgtctagaa
-aatgcaaaactagagagaaagaaaacagaccactggttgccagggttggggagagggagc
-tgacaatatcaaggggtgcagaaactttttagggtgatccaaactgttttttgatgatga
-tggtggttacagattgtatacatttgccaaaaatcaccaaagtgtacattcaaagttggt
-gagttttattttatgtataaaccacctcaaaaagacaaaTTTTAGAGAAGAAAACAAAGA
-AAAATGCCGGTTTAGCCCCAAGTCTGAGGCTTCCTCTCTGTTAAACAAATTAGCAAATAG
-AAggccaggcatggtggctcatgcctgtaatcccagcactttgggaggctgaggcaggag
-gatcacttgaggtcaggagttcaagaccagccatggccaacatggtgaaatcctgtctct
-acaaaaaatacaaaaattagctgggcgtggtggcgcatgcttgtaattccagctactcag
-gaggctgaggcaggagaattgcttgaacctgggaggcggttgcagtgagccgagattgca
-ccaccgcactccaccctgagtaacagagcaagagactccatctcaaaaaacaaacaaaca
-aacaaggaagagaaAGAGGGATTTCTCTCTCTGTCTCTCACCAACTCTCTAACCCTCCCT
-AGTTCcatgcaccaaggaaaagctatgtgaggacataggagaaggtggccagccacaggc
-caagaagagagccttcaccagggactgaatcagctggcacctccatctggtacctctagg
-ctccagagctgtgagaaatagatgtgtgctgtttgagccacatagtctctgatattttgt
-tttggcagccggagcagactcatgcCCTCTGATCTCATCATTAGCATAATGCctgtttat
-agaaccatgctgtgggcaggctctgtgctaaaagctttgccagcatcatttcagagactt
-gatgtgacatcttacatcgtaggggaaattattgttcccattaaagatgggCCCACAGTG
-TGGCTAAGCCAGTGGGGCATGTCCTCAGACCTGGAGTGCTCCCATAGGAAGCTGGGCCCG
-ATTCTTTCTGAAGGTGTGAGCTGGAGGCAGTGATGGTGGTTTGAGAGGCACGGGCTGTGG
-GGAACTGGATACTGAGGGCAGTCCCTGTGTCCCAGGGGAAGCACTCTGTGCTTTCAAGGG
-GGGCACTGGCAGAGAAGGAAGTGTCCCTCATCACATCCTGGAGACCCACCCTCTGGAGAC
-AGTGTTTTCACGAtttcttttctttcttttttttttcagacagggtctcactctgtcacc
-caggctagagtgcagtggcacgatctcagctcactgcaacctctgccttctaggttcaag
-taattctcctacctcagcctcctgagtagctgggattacaggcacccgccaccacgccca
-gctcatttttatttttttatttttcgtagagacagggtttcaccacgttggccaggctgg
-tgtcaaactcctgacctcaaatgatctgcttgctttggcctcccaaagtgctgggattac
-aggcatgagccatcatgcctggccATGTTTTCACTATTTCTATGGACCGTTTCATAAGTG
-TTGTGTGGACATAGGgctccagggttaaatgtgtttgggaaatgtggtgtaagcaaagag
-aaagaagtttccactctaatacttctcagagactttaatgtggagataggcatggcgaat
-ctcTCACTGCGGGACAAgtgggcaagagaagtgtggatgctgccttctgggcactcacag
-ttggtggaggagacagccaacatgcaagcaggggccacaccacatgtctggaggttggaa
-cgctatgcagagagaccacaggaaccatgggggaagtggggagggatttcccagaggaga
-tgacatttgaacaaagatgcaaaggaagtgtggaaggaggtaagggagagctgtatgact
-gtctgggggaagagaaacccaagcagagggaacagcaagcacaaaggttctgaggctcaa
-ggttgcttggtgcatttgacaagcagaccagcgccattggctggagctagctgggccgag
-tgggagggtgataatggatgaggtTGACCACGGTCCGCTCCCAAAGGCCATGGAATTCAG
-AGCATACTGGAGAGCCCTTAGTGGGTTTGGACAGACAGTGATACCTTGGGACACACAGCC
-TCATGAGCTCATACTGACCAAACAAACCACCCAAAATAGCAGCAGAAACAACAGCCACAG
-GGTGCAGAGGGTCATTCAGGGTGcctctcacaagcctgggaagtaggcatgtgatatggt
-ttggctgtgtccccacccaaatctcatcttgttttgtaactgcttcaattcccatgtgtc
-gtgggaggaacccggtagggggtgattgaactgtgggggcaggtctttcctgcgctgttc
-ttgtgatagtgaaaatgggtctcacgagatctgatggttataaaaatcggagtttccctg
-cacaggctctcttttttgcctgccgccatccacgtaagatgtgacttactcctccttgcc
-ttcggtcatgattgtgaggcctccacagccttgtggaagtccattaaacttctttcattt
-gtaaattgcccagtctcgggtatgtttttatcaacagcgtgaaaacgaactaatacagca
-cggttaactcccattttacaggcgaggaagctgaagcttagaaagatgaaagaatttgcT
-TGTGACCCCGAACGTTCCCTCTGGCTGATGCATTGTTCCTACCTGCTCTGTTTCCTTGTT
-TATGAAGCTTGCAGGCTCCAtggtcctcaaccctggctgctacacactggaataacctgg
-ggtggcagactgtgtctccccaggatggccacaccaatacatctcacatcccacatgctt
-ggccaatagcatatgacagatgtgactgtgggttacttctaaagctaggccataatagcc
-atcgcaaccccaccgtgatctctgggattgctagttctgagggaagccagctgccatgtc
-ctgaggttactcaagaagccctgtggagtaggccatttggggagggactgaggcccccag
-gcaacatctgtcccaacttgccagtcatgttagtgaactacccttgtccagccttcagat
-gacACCTCATGAGAGGCCCTGAGAGAGTCTTATTGTCCCGTTCACCATTCCTGTTGCCCT
-GTGGCCAGCTAATCAGCTTGTGGTGGTTTTCATTTCTTTTTTCTTTTTGCCATTAATAGC
-AATGCCAggctgggctcagtggctcatgcctgtaatcccagcactttgggaggccgaggt
-gggtggatcacctgaggtcagaagtttgagacaagcctggctaacatggtgaaaccctgt
-ctctattaaaaatacaaaaattagccaggtgtgatggtgtgcgcctgtaatcctagctac
-ttctcccaagtagaagggcgtgattcttctcatgcctcatgctgaggcatgagaatcact
-tgaacccgggaggctgaggctgcagtgagcggtgtttgtgccactgcacttcagcctggg
-cgacagagtgagactatctcaaaaaaaaaaaaaaaaGTAGCAATGCCATAGTAAGTATTC
-TTCTAATTAAGCCCTTCTGAATCAGCTTAATTATTTGCTTAGGGTCAATTTCTAAATGCA
-CAGTTGCTGGATCAGAGTACAAGTCCACTGATACAGCATTTAATTTTTTCAAAGAATTGT
-GACTGggccgggcacggtggctcatgcctataatcccagcactttgggaggccaaggcgg
-gcggatcacctgaggttgggagttggagaccagtctgaccaacatggagaaaccccgtct
-ctactaaaaatacaaaattagctgggcatggtggtgcatgcgtgtaatcccagctacacg
-ggaggctgaggcaggagaattgcttgaacccgggaggcagaggttgcggtgagctgagag
-ggtgccagcttgggcaacaagagtgaaactccgtctcaaaaagaaaaaaaaaaaaaaaag
-aaTGTGACTATagctggccgtggtggctcatgcctgtaatcccagcactgtgggaggcaa
-gatggtcagattgcttgagtcaaggagtttcagaccagcctgggaaacatggcaaaaccc
-tgtctctacagaaaaattagctgcgcatgggggcagacacctgtagtcccagctacgtgg
-gaggctgaggtgggagcatcacctgagcctgggaagtcgaggctgtagtgagctgtgttt
-gcaccaccgcactccagcctgggcaacagagtgaggccttgtctcaaaaaaatttaaaaa
-ataaataaaTGTAACTATATTCTCCTTCAGTAGCAACATCTCAATTTACCTTCTCATGCA
-CAGTGTTTGGAAGGACATATTTTGGGATGAGTTTTCTTTTACTTCACTACCTTATTTTGT
-TCTTTCATAGAATGCCTTTAAAATGTTACTTTAAAAAAATAGATAATACCTTTACAAGGT
-ACAAAATCCAAAAGGTATAAAAATGttttctttttttttttggagacagagtttcgctct
-tgtcgcccaggctggagtgcaatggtgcgatcttggctcgctgaaacctccgcctcccgg
-gtttaggtgattctcctgcctcagcctcctgagtagctggaattacaggtgcccaccacc
-atgccctgctaatttttgtattattagtagagatggggtttcaccatgttggccaggctg
-gttttgacctcctgacttcaggtgatccacccaccttggcctcccaaagtactgggatca
-caggcataagccaccacgcccggccAAAAATATTTTATAAAAGTCTTTCCCCCACCCCTT
-TCCCCTCAGTCAGCACAAGTAGCCACCACTGGGACCAGTTTCTGGTGGATAAATCCAGAA
-AAGTTCAGGTGCAAGTAAACACACATAGAGAGAACACCCTTTAAATTAAATGAAACTAAA
-GAAAACAGAGCCATAGGTGCACAGGAGACAGAGAGCTGACATCTGGGGCTGATTGCATCT
-TGGTTTCGAGCTGAGTGGCAAAAATACTGCTAAGGTCAACGTTCTGAAGGAGGCAAAACC
-CACACGCAGAACCAGCCATAGGCCTGTCAACAAGGCGAGATGTTATCATTGCTCATGTGC
-TGGGTCAGGATAAGGCCATACAGACCGCCCAGTTCTCTCTGATCTGGGTGTAGTTAATGA
-CAGTTTATCCGCCTTTTTCTTCTCTCTCACCACTCCCCATGGTGGGGGAGGAGAAGGACT
-GGGAGGACTTGAATACTCTGAATTGGCACCAGGTGCTTAATATAGTCCTGAAAATAGAAG
-ACCAATATGCTGTTGGCACATAAAGATGCCCACAATTCTAGAATCTGAGTGCGCCCAGAT
-GATCTCTCTTTACATGGCCTAATTTGGGATCCTGACAAGTTCCTTCTGCCCTCTGCCTCA
-CTTTCTCAATCTAGGAATGGGCCTCTCGGTTTTTGTTTTGTCTAATTTTAAGCTCTCGGC
-TGTGCATGGCAGAGGCAAACTTGAAGACGCAAGGGTCAGTGAGCAGGGCCTTTATCCAGG
-TATCTCAAATATCTCCCAACCCTGATTAAAGTTACATATCTCAGAGAAGAATTTGGTCAA
-CACCATTGTTGTCATTCCTGGTTAATAACAGGGAAGTTGAGGTctgggaagcaccctagt
-gatgtgttcacatggccatgtgcttctgtaaaatttaccaatgtaaggcatcttaacctc
-attctgttaaaaccactatctcctttcattccaacttccctttgcatcagatgatgttgg
-ggttggtgtgagcagtttgggcatcttgctaaaaggaccttaacatttactttgggttta
-gtgggatatatttatattgtttccagtcacttttgtgaaaaattattactaactgacctg
-gtattgaaatggcttccaggaatatatccataccgagcatactgagctgactcaacttgt
-cgtggcatcaagattcaggatcagaggttatatctcaagatatatgaatggtcctacagc
-actcagttccacaagactgtgaaggagaggtttgaatgtatacacggagccagcagctag
-tttatggaaagtattacagatgtgtttgagacaggcagctaataaaaagaatgttatttt
-tctgcgttttgtaacgtttgtgcaatttctcttttttttttttttttttttggagacaag
-gtcttgctctgtcatctaggctggaatgcagtggtgaaatcatggcttactgcagcctca
-acctcctggtctcaagcaatcctccctctcagcctcctgagtagctgggactataggcac
-gtgccaccatgcctgactaatttcttttttccttttttttttttttttttgagacggagt
-ctcactgtcgtccagcttggagtgcagtggcacaatcttgactcactgcaacctctgcct
-cccagattcaagtgattctcctggctgagcctcccaagtagctgggattacaggtgccca
-ctaccacgtccagctaattttttgtatttttagtagagatgaggttctgccatgttgtct
-agattggtctcaaactcctgagctcaggtgatccaccagcctcggcctcccaaagtgcta
-ggattacaggtatgagccaccatgcctggccagctaatttctttttaaaatttttttgta
-gagctggggatctcgctttgttgcccaggctggtctgaagcccctgggctcaggcactcc
-ttccacctcgacctcccaaagtggtgggattacaggcatgagccaccttattgtggtttc
-ttgtctctttctaaccaaatcttcactttattacttaatttcatatctgtaattttttct
-taaagaggtctccctaGggctggacgtggtggctcacgcctgtaatcccagcactttggg
-aggccgaggtgggtggatcgcctgaggtcaggagttcaagaccagcctgaccaacatact
-gaaaccctgtctctactaaaaatacaaaaaattagcgggtatggtggcgggcacctgtaa
-tcccagctactcaggaggctaagacaggaaaatcacttgaacttgggaggcagaggttgc
-agggagctgagatcgtgccattgcattccagcctgggcgataagagtgaaactctgtctc
-aaaaaaaaaaaaaaaaaaaaaaaaagaaGTCTCCCTAGGCTGAAGCTACCTGCTCAATCT
-TCTCTTGTGTCTTATAGGATCACAGGATCCCCCTTGCCTTACCTCACTGTTACTCCCAAA
-CAGTTCTCACATGTTTACAAGGGAATGTAACAGAGTGGATCAGAGAATTCATTCTGGATC
-CAGACCGAccttagttttctcatctatataatgggaataatagcaggatctctcgcctta
-gatagtcatgaagtccaatgagatgatgtgtataaagccctaacacaatgTAGCAGAGGG
-CACAGGGCCAGGATTGATATTTAGCTGGTCCTCACGGATACAGCAGACTCCCTGTTTATG
-ACAGTGGTTGGCTCTGATTTGGTTGGTGTCCATGCCAGAGTGTACAATCATTATTAGCTA
-TTGATATATTATTAGCTCCCTCCCCTGCCCACCCAGGGGTTTACGCAGTAAGTTCTCAAT
-TATTGGCAATCCAAACAAAGAATAAAAGACACCAGCTGGAATGAAACAGAGAAGCTGGTT
-CCAAATTGAGCAATTCAGACTGACTGCTATAAAATTTCCTCACCTTAAAGGCCCTTAGAG
-TTAATTCATTCTAATCCCCCTAAAAATATACTTTTTTGACATGTTCAAGTATTGGAAATT
-TGGAAAATTCACAAAAACACAAAGAAGAAATTAACTGCTGTGATTATAGATGATTATACA
-CATATACATATGTATTTAATACATATTTATGCTGTACATAGTGTTTTGAAGCATACTGTA
-CTTCAAAAAAATTTGGGAGgggtgcattggcttatgcctgtaatcctagaaattcaggag
-gccaaagcaggaggatcacttgaggccaggagttctagactggcctggggcaacatagcg
-agacccgtagcttgacatggtgatgcgggcctgtagtcttagttactctggaggctgagg
-tgtgaggattgcttcaacctaggttacagtgagctatgattgcaccactgcactccaccc
-tgggcaacagagctagaccctgtctctaaaaaacataaataaaCCAATGTTTAATACTTA
-GCATTTCCCCCTATCTTTAAATATCTTCTAGCTACTTCACttttatttttatctttttga
-gatgatctcttgcccaggttggggtgcagtggcatgatctcagcttactgcatcccccac
-atcccaggttcaatctattctcctgcctcagcctcctgagtagctgggattacaggcatg
-tggcaccacgcctggctaatttttgtatttttagtagagacgaggtttcaccacgttggc
-caggctggtcttgaactcctgacttcaggtgatctggtcgcctcagcctcccaaagtgct
-gggattacaggtgtgagccactgctcctggTAGCTACTTCACTTTTAATGGCTGCATAAT
-ATTCCTCATCAGAAAGTGGGAAAAATTAggctaggtggcgtggctcatgcctgtaatcct
-agtactttgggaggctgagttggtagaattgctagagctcaggagtttaagatcagtctg
-ggcaacatggcaaaaccccatccctacaaaaaatacagaaaataccgggtgtggtggtgc
-acacctgtagtcccagctacttgggaggctgaggtgggaagattgcttgaccccaggaga
-ttgaggctgctgtgagctgagatcctgccactgcactccagcctgggcgacagagtgaga
-ctccatctcaaaaaaaaaaaaaaaaaaagaaaagaaaaaGATAAAGAAATAAATAAAGTG
-TTAATAATTAAAAGTACTTTTAGAGGGTTATGTCATAAGCCTTGACAAGACTTGTTCTGT
-AAAGCTACCCGGCATGCAAAAAGCTCAATTAAGTTAGCTCCTCCACAGGATGGAAttata
-taaccaatccctttcaagaggcattgaagttgtttccattattttgctatgatgaataag
-gctgagcaatattaatctttgctcatatctttggtcatttcctttgtaaatttcgggact
-gctgggtATGCACATTTTAAAATTAActcactcatcatcatgcagttaggagaacagaga
-aaggaaggggcttgcaccgggtcacatagggagttagcgtcaaagtcaggactaggaacc
-agccagggccctctaactGGAGCTCTTCCAGCTGGGGTCCTAGAGGAAGTCCCAGCTGGC
-CGCGGGAGGGAGGAGGAGGAAGGGAAAGAACCAGGCGCCGGGGCTGAAGCGGCGGCAGGA
-AGAAGGTGGGGCCGGCTGGGAGGAGCGGGCGGAGCTGCTGAGCAGCGCCTCTCCTTCGGG
-CGGGGGAAGCTAAGCGGTCGCCTGGCAACCCTGGCGGCGCGCCGTTCGAACGGAAGCGAG
-GAACCAATCAGGAAGTCCGGGGCGAACCATTCTGGTGTGAAGGGGGGCGGCGTGCTCACT
-TCCCCTTCCACGGCGCCCCAGGGACTTTCCCTGCGGTGGGGGCCTTCGACAGTGAGGGCC
-ACCCGCTCAGCTCGACCGCGGAGGGCAGCTCCAAAGGGGACCCCAAAGGTGCCCACGCGG
-GGCTGGGGCCTCCTGGGCGTCGTTGGGAGCGGCCACTACCGGCCCGGGTCCGAGCTGTCA
-GCCTCTCCAAAGCCTGCGCGAGAGGAGCCGGGACACGCCTAGCGCGGGCTCCAGGTGAGG
-GCGCGGGTGGGTCCGGGTGCGACCCCGGGTCTGGGGGCCCCGTTCCCCGAGCGTCTGCTG
-TCTGCTTTCTCCCCGCGTCGTACCTGCGTGTcatttcacagatgaggactctgaggctca
-gagaggcaagtgTCCCGGCCCGGCGAGCTCTGGCGGAGAATCCAGTTCAAGTCTTTCTGC
-CCCACCTCGCAGCCCCCTAGTCTAGTCACATCTGGACTTGCCTTGAGAGGCCCAGACGGG
-CAACTGGTAGTCATTTTCCCAGCGTTTTATCGGCAGGGACCTGTAGACCCCTGGCTGGAT
-CACATATCCCCGCGCCCCACACTGTCCTCGGGATACCCCCTTTGGGCGTCTGTCTTTCCT
-TCTCCGCAGTCCGGGGTTGGACTCGGCTCATTTGGCGCCTTTCTGTCTACGGGGACAGAG
-GACCACTCTTTGGGGATCGGACGGGACTGACATTTCTGGGCTGGATGCAGGGGCAGCAGA
-TTCTCCAGCCCCCAGAGCCGCTGCTGGCCTCTTGGGAATCATCCCCAGTTTGGGGAAGGG
-AATAGAGCCAGTCCCTAAACCAAAGCCACTAGTCACCAGAGACTTTGGAATTGGGAGTGG
-GGCCGGAATCCCCCCAGGTGGAGCAGCTGACCTAGGCCAGACCCTGCTGTGTCTCCtggg
-gacaccccctgccccctaggttgctattgtcagtctccttttgtaggtggggaaacggag
-gttctaagaagttaagccccttttcgaagtcacagtcagacaatgcagtggttagctcct
-agtccctctggcttcAATCTTAGAATCCTTGACACACAGAATCATGCATTTTGAGAGTCT
-TCAATCTCTTCATAAGGGAGTTACATATCCTCTCTCCTCTGGAGCCTGCCCCTGGCTTTG
-GGGGACAGGATCTCCGAGGACTCAGAAAGAAAACAAGGCTTTCTTTTATTCTTTCAACAA
-ATATTATTTATTGACTTCATAAGCCCTGCTCTGGTTCTTGCATGTTTTGGTTTTTTTACT
-TATTAGCAAATGTATCATCTTCTCCCACTGTGATGcaaggcaggggctgaggcaattgag
-ccagtgcaaaatttagggatgcccaaaacctcagtaatcaagaCTGAAACTAACGTTCAT
-GGACCATTTGTGTGTTCTGCAGGCAGGAGGTTAACTCACACAGCCTTCATGAAGTGCAGT
-CCTCCCAtctctctctctctctctctctctctctctctctctctatatatatatatacac
-acacacatatatacacacacacatatatgtatatatatgtatgtgtgtatatatgtatat
-atgtgtatatatatgcatatttataAATCATGAAACCACTgccctgtccctgagttgctc
-tgtgacattgagtaagtttcttcagtctctgggcTGAGCTAAGAAGTCATGATGGTGCAC
-TCAGGCCTGGGCAGAGGGCAGTCTAGGATAGGAAGTGGGCTTGGCTGTGGATCTGCCTCC
-CCCTCCCCTTTCTAATCctgcgtgccaggcccttccccaagaccttgcatgtgttatctt
-ccattctgtcctcactgcaaaatccttcatccccattttgcaacctcaagtgcagaccta
-ggcctagaagatcaaCTTGGTATCAGTGGGCCTAGATGTCCACATCCACACCCATTCCAC
-AGCCTACTCCCTTCTCCCTTCCTAATGTTAGTGCAAGGCCACCCTGAGCAAGGCTGACTC
-CTGGGCAGGCCAGGGCACCAGCGTCTGGGAGGCCTCCAGAAATAGCTCAGGGCCTGGTGT
-GGCTCTGGAGGTGGCCCAGCTGGGTGTCCCTGACCTGGACAGCTGGGCTGAAATTGAGCT
-GGGGCTGCCCTGCTGGCTGGCCCCTTGCCACTGCCTGGAGCCTTCCCAATCTCCTCTGGG
-GCAGGCAAGGGCCTCCCCAAATCTAGGCCAGGCTTCTGCTGAAGGGAAAGAAAGAAGCAG
-GTGGGAGGAAGGGGGCGGGTTGGGTGTAGAATGTCATGAAAATTATAACCTTTGGAAACC
-ACACCTCCCACCCCCTCACCAAAGAATaaaaatcactaacacctcttgagcatttactat
-gttctaagtactttacaagtatgaactcatttaattccctcaactctgtgatataaggta
-attactgctgttcttatttccatcttgcagaggggaaactgagcacaagagaggtttaat
-aatttgcataagataacctagaggtggagtttgaacccagagagtctggctctaaatttt
-acatttttTGGGGGGGGGGGTGGGGTGGGGCAGTGAATGAATtaaaatgtatataaaata
-aaatttaccattgtaaccacttttaagtatacagttcagtggcattaagtacattcccca
-ttgcctctccccccagtgcctggcaatcaccattctactttctgtttgagtgaatttgac
-tactttgggtacctctaggtattataaatggaatcataacagtatttgtcttgttgtgtc
-tggcttatttcacttagcataatgcctttaagtttcacccatgttgttgtatgtgttaga
-attttcttttttatggcggaataatctattctaatattctatgtatatgccacattctgt
-ttatccattcattccttgatggacacttggattgcttttggctgttgtgactaatgctgc
-tttgagcatgaatgtacaaatatctgtttgagttcctgtttttaattgttttgggtatac
-actcagaagtggaattgctgggtgatcctatggcaattctgtttaattttttgaggaact
-actttactgtgtttcacagtgactgcaccattttatgtgtccatcagcagtgcacaaagt
-gctaatttctcaacatcttcaccaacacttgttattttctgtttgtattttttttttggt
-aatggccatcttcaggggtgtgatgtggtgtctcattgtggttttaatttacatttccct
-aatgactaatggtgttgagcatcttttcctgtgcctgttggccatttgttatctttggag
-aaatgtctgttcaagtGACTCTGCAttgttttttttttttttttttttttttgagacaag
-agtttcgctctgtcgcccaggctggagtgcagtggcgccatctcggctcactgcaacctc
-tgtgtcccgggttcaaatgattctcctgcttcagcctcctgagtagctgggattataggc
-ccccgccaccatgctgggctaatttttatatttttagtagagacggggtttcatcatctt
-ggccagtctggtcttgaactcctgaccttgtgaaccacctgcctcagcctccaaagtgct
-gggattacaggcttgagccactgcacccagtcATGACTCTGCATTCTTAACCATTACCTG
-TGCTTCTCTTAGATTTGTAACCTCTGAGAATAGTGGATCAGCTTTCTGGGCTGATGAAGC
-CCTCCCTCAGGAGCTGGGCACTGGATGATCTATTTGGTTGAATAGTTATCATAGCCTGCA
-CTTTGGTGACATTTGTCATGCATGGACCTCATGCAGAgagggaggcactgttgtgagtcc
-tgttttgcagttagggaaactgagatatggagaagttgagtattttatccaaggtctcat
-agctaatcattggtggagctaggatttgaatgggttctggagtccatgctATACCTTACA
-GATAtggccagggggatggagtagtgaagaccactgcaggcagcagaaccagtgtgtgca
-gaggTTTGTATATGGTGGCTTTGGAGAAAGAACAGGACTTGGGTAGAAGTGGTCAGAGCC
-CAGCTTGAATGGGGGTGACTTGAAGTTGGAGGAAGAGTAGGACAGGTCTGGAAAGGCCAG
-GAGCACGGTGAGGGTTTGGGGAGGAGGCTTGGTGCTTAGGGACCCTGTCCTTTTTTTTTT
-TTCtcttctcacaagatatttattaattacaaagggaaaataataactgtacagtggaga
-aatttggcagatactgccttaaccaaggaattggctgatcactaagattaagacaaactg
-ttgttatgagtgggtgtggtaatgtacctatagtcccagccactcaggaggctgaggtgg
-caggattgcttcagcccatctatttgaggctgcagtgagctatggagtgcactccaacct
-gggcaacacagtgagacctcatttctaaaaaaagaaaaaagaagccttctgataccatgt
-actaagaaggacacaacatcacttttgtgttattcttgacagatatgtttaacttTCTCT
-CctttctttcttcctctctttctttcttctctctttcttACTGATATAAGAAAAAGCTTT
-ATACATTTAATATATACCTCTTGATGAGTGGCCTTGGCCTTTGAGGTGGGCTGGGTCCAG
-AACAGCCGGTTGTTCAACGGTATTTCCTCGTGTTTGGTCCCTGAAGGAAGAAAATTGGAA
-GGGTGTGATggagctcatggtccagtgggagagacaggaaacgagttatatttcctatcc
-tagataagagtatctaaaatgacaggatgtaatgagtgctcggaagggaataaaatgggt
-gaaattgctgagggggtctcttggaggagatgacatttgaaatgagatctgaagggggtg
-agggaagaggttccagacagagaacagctggtgcaaaagccctgaggcaggaaagacctt
-atgttcaggaacagcagggagggctttgtggccagagcaggaaagaggttggagataaga
-tgggagatttggacaaggactgagtcctggaaggcctgagggccaagtggggagcttggA
-ttttttttttttttttttttgagacagagtcttgctctgttgtccaggctggagtgcagt
-ggctcaatctcagctcactgcaggGAGCTTGGATTTTATTGTAAGGGAGCCACAGGAGGG
-TTTAAACACAGCAGTAATGAGACTTTATTTCTGCTGGGAAAACATtgccgttattgcccc
-cattttacagcagaggaaaccgagactcagaaccatgaccagggagtgcttcctaaggtG
-GTTTCTCCCTCTGGGGTCCAGCCGACGAGGCAGTAGATTCCTTGGGACTTCCTTGGGGGG
-CACATCTGGTGAGTGGCCAAAGCCCAACACTGAAAACACCGTCTCTTCCACCTCCCCTCC
-CCAGATGTGAgcctgggttccaatcctggctctaccattaatcagctgtgtaattttggg
-cacgtggccttacctcttggagcctcagttttctcatctgaaaatgggcataataatagt
-agccctcacagggtaggtgtgaggattaaattagttaacattttgtagagcttagaacag
-tgtctggtacaaagaaagtgctcagatgagatttgttcttTTCTTTTTTGGCTGTAAGTT
-TATTCAATGTGAAATAATCCTCTCCAATTTTATTGAGGTGGCTGACCACGTCCACGACCA
-CATCTGCCTCTAAACTGGAATTCGGTTGCTGACCCAGCCCCAGCCTCGGCTTTCTTGTCA
-GCACCAGGGGGCACAGAACACCGTCTGTAGGTATCTCTGTCAGCTTCCCGTCTTGTGAGT
-CTTGCAGGTCGCTTACCCTCCAGACCTTTAGGCCGAGGCCTGCCAGTCTCTGGACGGCTG
-CGGTGTAGGGTGGCAGGAACAATCTCCGGGGGCAGATGTAGGGTGGCAGGAACAATCTCT
-GGGGGCAGATGAAGGTAATCACGGAGATACTGGCTACCCTCATTGGTAAGGTACCAGTAG
-AAATGTCTCCAGGCAAACTGTTCCTTCACGCAGCCCCGGGACTTGAGAGACTGCATGGCC
-TTCATGACGTGAAGGTTGGGCACATTCTTGTCTGCCAGCTCCGGGTGCTTAGGCATGTGG
-ACATCCTTCTTGGCCACCATGACTCCCTCCTTAAAAAGGAGTTCATGAATGGCAATCCGG
-TTCTTCTTAGGCATCAGCATCTTGGCAGCTGTAGGGTCCGGGGCTGGGGCTGGAAAGGAA
-GGACTGTTCTTTTCTTTGCTATTACGAAAATCATTATTGTTGCTTTGCTGTTACTACTAT
-TAGCGCCTGAAGGAGCCTTCCCTCCCCATCCCCCATTTCTGCCTCCGTGGAGGGCTAGGC
-AGGGCTCAGCAGGCCATTTGGAGGATGAAGGACTTGTTGCCCCGTCCCCTGTAAAGTCAG
-GGACTGGAGGAGGCTGCAGTGCTGAGGGGGAAGGAAAGCTGATGTGCATCACTGCCGGTC
-TCCTCATGCCCTGTACCCTAGTCCTGGCCCAGCTCCCACAGGCACAGACATGGAACAGGA
-GCCTCTTCAGCCTGAGTGTGGCAGAGGGCTGGGGCTGAGGCCTGGGGGACAGCTCCTTCT
-CTGGGCCTCAGGATTCCCATGAAAAAATGGCCTATCAAATGTTCCTACCTGCAGTGAGTT
-ATAGGACTTGGGGTGGAAGAGGTGACAGTCACCTCCCTCTGGGAATTCCTTCCTGCAGGG
-CTGCAGTCTCATGGGATTAAATGAGGGGGCTCTGGGGATTTAAATGAGTATGGTGCCTGG
-CACCCCAAAATTCTAGTTATTGTTGTTACTATGACGGCTGTTGTTGCCGATGTTAACCGT
-TTTCACAAGGCAGCTGAGGCATGCTCAGGCTCAGCCTGTTCCAGAGGGATGGACTCTACA
-CGTGACAGCATGGAGCACCAGGAGGGTCCCGCAGCCTGGTCAGGGACACACAGCTAGAAA
-GTGGTGGCGTTAAGCCTTGGTCTGGAGGGAAAGTGCGCAGGCTGGACTCCCCAGAgtgat
-tttgggctagtgactcagcctctctcagcctcagtttaccattagtcaaatggggtaaca
-atagaactcaccagatagtgattgttgggaagattaaaatgggttacccgataccaagaa
-aaacactttcccgtgcctggcacaGTGAACATCACCTGGCGGTCGTTCTGAGTGTCAGGG
-AGCGGGGCTCAGTTTGTCCATCTCTAAGGTGGGTGCGCTTGCCTGCCAGAGCCACGGGGA
-CCCCGCGCGCCAGGTGTGCGGTGGGCGGGTCTCGGCTCCCGGAAGAACTTCCCTGGGTGG
-TCCTGGAGCGGGTCGGACCCAGTTCCTGAGCCAGGCCAGCTGCCGGCGGCCGGGGCTCGG
-GTTCTGGCCCCTGCCTGGCTTTCCTTACCCTTTTCGGGTAGTACCTGGACCAGCGGGTTC
-ACTTGCCCGCGGCCGCCGGAAGTTGCGCAAACTCAGCTTGCCGGAGCCCCAGGTGGGCCG
-GGCCGGAGGAGCGCAGGCCAGCGGCGCGGGCGCAGCCGGGTACGTGCGGACCGCGGCGGG
-GGGCGCCCAGCCGGGGTAGGGGGCGGCCCGAGCACCCCTCCACCCCAGGACGGCGGGAAC
-GGGGCAGGGATCTACCTTTCGGCTTCAAGAGGACCGCGGGGATGGTGCCGCTCTCTCCCT
-CATTTGAGAGCCAGGAGGGGCGGCGAGGGGCAAGGGTCACACAGCGCCCTGCTAGCCGAC
-CCCCCATCCCCCGCCACCGGGAGTCCTCAAGCTTTTCCGGAATTGAGGGAGAGCAAAAGC
-CAGCCTGGGGATCTGAGTTCCCCCCAGCCCTGCCCCGCGGCCTCTGGAGGCTGACGCTGG
-GGAGCTAGTGGGGAGGGGGCCAGGTGGGGATGCGCGCCCCCGGGATGCAAGCCAGAAGGG
-CCGGCGGTTGGGGGCATCCGTGGGAGGCATTTGAATCCGTGGGTGGGGCATTGGGCGGTG
-AGAGGAGGCCTCAGAGGGGACATTGAGTCGCGCTTGGGGACTTGGGACCCTGGCTTCACC
-TGGCGGGAGCCGCTGCACCTCCGTTTGCCCACCCGTGACGTGGGGCTGTTGAGGTCAGCT
-CACCGATCAGCCTCTGTCTTGGGCCTGCTTTGTCCGCGGTGTGGGCTGGGACAGACCCTC
-GTGGGGCTTGCTTAGAGACCCCTGCGTGGGGGTGGTCTGTGGACTTGGTTAGTCGAAATC
-TTCTTGAAGACCAGGAGCCTGGTTCGTGGCTCCGCctttttgccagatgccgaggaaagc
-cctcgacctgtttgatctctccatccttatcgtgacctggaggctcaggaaggtctattt
-ttaacctcgtttcacggataaggtaaccgagtctgtaaagaggcgaagctgcttgcgcaa
-ggcgcacagcgggcgggtgggcgagccGAAggccggcgggcccgcggcgccAAACCCGGG
-GTTGGCTCTCGCATCTGTCCCGGCCCCGCCAGAGGGGACCTCAGGGCCAGCAGATGGGGC
-CAGAGGGGCTGGGGGCCCGATCGGGGTCGTGCACGGGGTTTCTGCCCCGGCCCCGCCCGT
-CTGACCTCCTTCTCCCTCTTTATCCGGATGGTGCCCGCAAGGGAACTGCCACTGCGGACG
-GGTTGGACTGGTTTGGGAGGTGGCGGCCTGGGGGTGGGGCAGAGTTTGGCTGGCTCTGCT
-GTGCTCCTTTCCTGTCAGGTCCTTCCCACCTGAGGTCTCCTGGGGGTCGGCCCTGGTGGA
-GCGAGGCTTCCTTTCCCATCCACTCCATCTCTCCTGCCTTGGGAGCAGCACCCAAGGATC
-TATTCCCAACTCATGGCTGCTGCAGAGGTCTCCAGCTGGTGGTTGGGGGCCAGATGGAGG
-AGGAGGGGACAGATATGTTCGCAGACATATTTTGTTTGCTGTATATGCAATGTTTTAATC
-ATTATTATCGAATATGCTGACAGTTAAGAATCTAGAGTTTTTATGTACTCCTGGATTTCC
-AGCTTCCTGGAACAATACACCTACCACCTTGGACCCATATGCCTGCAGCAGGCAGGGTAC
-CTAGATGTCTAGTTCATCCCTGATCACCCAGTTCACATCTGGCTCCCATAAATATttcag
-ttcaataaatttttattgaatattctgccctagtatgtgtctagggcagtatcttgaaac
-tggggtatagtgaacaaaatagccaacccccgcccctacacacacacgcctgccctcatg
-gagctgatattttagggggatagagacaacaaagagtaaaacaaccatacacaaatagag
-tacttgtgcaggggataaggagaaaaggaatagtgccgggagggggtcaggagtgccggg
-gagaaacaggacgtggtattGAGATCAGTGCCTTatttatctattctgggacctgggaaa
-gccacttctctgagtctcagtttctccatctgcacaacgACCCACAGGCTTGTGGGAGGT
-TATAGGGAGGATGGCACCCAGCAGAGATCCCTGCCTCCCCACCCCAATCCAGACTCACTC
-CCTTCTGGATTTTTGGATGTCTAGGTGGGgctgtccaatgtagcttcctaccatggatgg
-aaatgctgtactctgtgctgccaaacacagtggcaactggccacatgtggctattgagaa
-cttgaaatgccactagtgtagctcaggaactgaattttatgtttttatttcatttaaatt
-taaagttaaggttgaatagccacatgtggctgctggctattgagctggacagcacggGTC
-TAGATGGCTTGAACTGTAAGCCTTCTTGGGGAACACCCAGATTAAGTACCCGCCCCCTCC
-ATTTTACAGATGAGAATGTTTGGGACTTGGTATGTGGGTTTTCTTCTGTCCCATCTCCAA
-GGGGCCTTGTGGGGTGACTCTGTGGGCTTGGCCCTTCCTTGGAAACAGGGTCAGGGTTGG
-CTTGATGTCTGGGGCATCAGGTCCTGACACTTGGGTGACCACGTAGACACTTGTGCATCC
-AGGTGTATGCCCTCCTCCCAGGTGAGTACCCATTCCATGGCTGCAGGCAGATCGAGGGTC
-TGCCGGATGCCTCCATGCAGGGCTGTGTGATTTTGGACATTTCCAGCTTCTCTCAGCACA
-GCATAGCTCAGGGCTGATGTTTCCACGTGACAGGCATTTGTGGATCACCGTGGGCCATCC
-AGTTCCATGCAGGAAGCTGACGGATGTCTGGACTCCACTGGGGCGCGGGTGGAGATTTTC
-TTTGCTCCTTCCCTATAAGCTCTGCCCTTTGCCTGGGGCCTGGCATGTCTAGGCGGGTGG
-ATGGCACAGGGCAGCTTCCTGCCTGGATGGGTGAGGGGTAGAGGTGGTACCAGGCTCCCT
-GTGGGGAGTCCAGGTGGGGTGTGGGGCTGGAGCCCTTTTTCTTGGTCATTTAACCCTACG
-CCCCGGTGCCAGCACCTTCCTTTTTGGTGGTCAGGGGCAGAgccacctactcgctgggtt
-aacttaagcaagttgtttgcctctctgggcttcagtttctccatccaaaaaacggggctg
-ttgagaggacctGAGGTTGAGTTGACTGGTGCGTAGCACAGAGCCTGGAGCCTCCCTTGC
-TCCCTTTAGCGCGTGCCTTGCCCTGTCTTTTCTGCTCAGGTTGCCCAGGTCGCCCAGGTC
-TTTTTTCTCTAGCACCTTTTTTCCTCTCTTGGTCTCAGCTGGGCCTGGTTCTCCCGGGGC
-AGGAGGGAGGGGGTGTGGGTGGGGCCTGAGGCCCCGCAGCTGCTGCCTTGTGCCTGCTGA
-TTGGCTCCTTGTGGAGGGGCGTGGTCTCTACCTTATAATAGGGAGGGCGTCTTATCCTCT
-CAGCCGCGGCTGAGCCTCTTTGTCTGAGCGCGCTCGGCTTTTTTTTTTTTTTCTCTCTCC
-TTCCCTGCAGCAGTGGCCGGTGTCCAGCTGCCTACTTTCTGCCCGGATCTCTGGCTCCTC
-ATCTCTCCGGTCTCCGCAGACTAAAGCCCTCGGGATATGCAGCAGCCATGCCTGTGCACA
-CGCTGAGCCCCGGAGCCCCGTCCGCCCCCGCCCTACCTTGCCGCCTGCGGACCAGGGTCC
-CTGGCTACCTGCTACGGGGGCCGGCAGATGGTGGAGCCCGGAAACCGAGCGCTGTGGAGC
-GCCTGGAGGCCGACAAGGCCAAGTACGTCAAGAGCCTGCACGTGGCCAACACCCGCCAGG
-AGCCTGTGCAGCCCCTGCTGTCCAAACAGCCGCTCTTTAGCCCTGAGACTCGCCGCACAG
-TGCTCACGCCCAGCCGCCGAGCCCTGCCTGGCCCCTGCCGACGGCCCCAGCTGGACCTGG
-ACATCCTCAGCAGCCTCATCGACTTGTGTGACAGCCCCGTGTCCCCTGCCGAGGCCAGCC
-GCACTCCTGGACGGGCCGAGGGAGCCGGCCGTCCTCCCCCAGCCACCCCTCCGCGACCGC
-CGCCCAGTACCTCTGCGGTCCGCCGGGTGGACGTccgccccctgcccgcctcgcctgccc
-ggccctgcccatcacccggccctgccgccgcctccagcccagcccggccGCCGGGTTTGC
-AACGCTCCAAGTCGGACTTGAGCGAGCGCTTTTCTAGGGCAGCCGCTGATCTCGAGCGCT
-TTTTTAACTTCTGCGGCCTGGACCCGGAGGAGGCGAGAGGGTTGGGTGTGGCCCACCTGG
-CACGGGCCAGCTCGGATATCGTGTCCCTGGCAGGGCCCAGTGCTGGGCCGGGCAGCTCTG
-AAGGGGGCTGCTCCCGCCGCAGCTCGGTGACTGTTGAGGAGCGGGCCCGGGAGCGCGTTC
-CCTATGGCGTGTCGGTGGTGGAGCGCAATGCCCGCGTGATCAAGTGGTTGTATGGGCTAA
-GGCAGGCTCGGGAGAGCCCAGCAGCTGAAGGCTAGGCGCCACTGGGCCTGGAATTCGCCA
-CAGGACGGATCTTACAGAGGCAAGTGGTCCCTGGACCTCTCTTGCATCCATTCTCTAGAC
-GGCCGTGTCAGAGGCTCCACCCTGTTGTGAACTTGGTATGGAGGCAAAGGCTTAGAGGCT
-GGACCAGCATTGTTGGGCAAGGACTGACTCTCCAAGGGTTTTGTTCTTGGCTTTGGACAC
-CTGAGAACCCCCTCCTCCCCTCCCCCAATACAAGGTTTTTGACATGAGTGTACTCCTGCT
-TAGTTCCTCTTGTGGGGCTGCATTTGCGGTGCTTTGCCCTCCCCACTGTGAGTGAGGGGC
-CAAGGGATCTCCTCAATCCTGTCTCCCCAGCGGCTCTGTTTCCTCCTTCCTTCCTTGGCC
-TCTGTCCTTTGCTGACTTCCTCTTCCTTACCCAGCAGAACTCACCCTGGGGTCGGGGCAG
-TGGGGAGGGGCCTATCCACTGCTCTTCCTAGTCCTTGGCAGCTGGCCTAGGTGGGCAGAC
-TATAGGAGGGACTGGTTAGGAGTCTGCATTGCTTTGACTTCCCTCTCCTTGGTTAATAAA
-CACAAATGCTTGTTTCTCAAGGGCTGGGCCTTCAGACTCTTCTGTGTTCACAAGAGAAAG
-GGTGAGAGAAGTCTTGGGGTGGGGCCATCAAAACAGTAATTGTTCACCCCGAGGTCTAGT
-GGTGGGGCATGATGATAGCGGCTGGCCTGGCTGGAGACATGTCCCCGTGGTGGGTTCTCA
-TAACTCTCCTGGAAGGCTAGCAGGCCTGCCTCATCGAGGAGGAAACTGAGATCCAGCCAT
-GAGTGAGCTGGAATAGAGCTGGGAGTAGGAATGGGGTCTTTCCCCTGCACCAGAAAGGGA
-GCCTGCAGGGGAAAGGCCGATGGGGTGCATAGACTCTCCCCAACCAGGAGTGTTCCATCC
-AAGCCCTGCCCAGTTCCCAAGGGGGCAGGAAGCTCGGAGAGGGCAAATCCTGAACTTGAG
-GTCACACAGACCATAGAGTGAGGATGAGAAGTGGGAGTTTTGGAGGAAGAGAGACTTGGG
-GTGGACGGCACAAAATGAGTGGCctccctggcgatcttggacaagccagtttccctctgg
-gcctcagtGGGAGAGTTAGGCAGCACAGTCCTCCTTGGGTTGGGGCACTGGTGCATTCTG
-GGCCCTTCATGCTATATTCCAATACCTGGGGAGAGGGGAAGGAAGGGGCTGGCACTGGGC
-TTCGAGGCCTCAGCTTCTTCCAGTCTCCCTCCAGGTCAGTTACCTACTAGGACACCCCAC
-CTTGGCTAGTGGAGCAGCTAGGGCTAGAGCTGGGCCTACAAAGGGCGAAAGCGGGGGTGG
-CCTCTCTGGTGCCCCACGGTGGGCGTGGAGAGGGGGTGGGTGGCGCTTCCTTTCACAGGC
-TGCCTTGGCTGCAGCACTCAGAAACAGGAAGCTCTAATGGGGGCCCTGGTGACAGGTTTG
-ATGTAGGTTTTATTTTAAGCATAAAGAGGAGATTTCCGTTGGACTGTTGACAAACATCCA
-CATCAGCCCAGCTGTCCATCTCTCTGTCTGTCTGCCTGTCTACAACTAGCCCCCAGGGGC
-CTGGGATGGGCCTGGGCAGTTTGGGGAAGGAAGGGAAAATTGGGTTCTAGAAGAAGATGG
-TGTTCCAGCTCATGAGACTGGAGCTCATGATACTGGTGGGGAGACAAGCATGAGGAGGGT
-GGTGACCTACCCACAACCCCCCATGGTGCCCAGCAGTTTTGACAATGCAGGAGCTGGGCC
-TCCAGGGTCCCCATGCTGAAGGAGTGATGGTGTCAGGAGAGAGAATCCAGGCAGGATCTG
-CAGACGTGGTGCCCTTTGAGGTGTCAAAGACTAGATTTCCTAGGCAACCCTGCTAGAATT
-CAGGGCTAGTCATTGCCCCTTGCTGTGACCTGGCAGcctccgagtaacccaagaaggtgg
-atgggctggctgcattttacatgtgaagaaattgaggttcagGTCACAGGACTGGTGGGT
-GACACCTTGTTTCTGAAGGAGGGTACAGTGCttgaatcctcaaggtagccttttgaggac
-cagatatattgtcagagcaggaggttgagctcagggaaggatagcgacttgtatactgtc
-acatagcaggtctgcaggacagcctggggtcacactcttgcctgccagacACATCGCAGT
-CTGGATTCCTGGTTCTCCCAGCATGTACCCCACCACTCTTCCTCATCTTGGCAGCCTTTT
-CTTCTGGTCACTTTATTACTGAGCATCTActgggtgcccagcagtggataagacagacat
-ggcccctgtcctagtctggagaagagaatgggcaactaaacattcagcacataaataatc
-atagaatgtAAAGCAGGTATACTTAGGGACTTCTGCCCTAAAACCAGAGCTGTTCCCAGG
-AGCTGGACCAGGGGATAGCTGAAAAGAGAACGCCTTTCCATAAATCCACTGGGAGGGTCT
-GTTGGGGAGAGAGCAGGGAGGGATTCTTGGAAGTGGGGAAGGTGCCAGATTGAGTCTTCT
-CCAATGGTTATGGCTTGGTCTTGGGAGGGCTCCCCCTGTTCCAGGATTCTGGAGCCTCCC
-GCCTTCCCTGCAGGCCTCTGTGGAGGGAGCAGGGCGGGGGGCTTTTGCACTCCTCCCTCC
-CCCAACCCTGCAGCCTTGGGGATCTGTGGAAACAGCCCCTCTATTGTTCTGCCTCCAGTT
-GGAGTGTGAGCCCTCGGAGGGCCTGCAGCTGCTGCCCTGTCTCCTGGGGCTGCCCAGCCC
-TCCGAAGCAGCTCCCCCAGGCCAGCCTGGCCCCAGCTGCCTAGCCCCTAATTAGGCAGAG
-ATGGGATCTGCTCTCTGATCCATTTCCCACCAGCTAATTATATACACGTGGATTtgggaa
-ccaggcaacctggctgctcacttctatcatgaaggtggatgggccctgggaaaggcagcc
-ccccccccacagacctcagtttacccttttggcagaggatggagtGTAGCTGCAGAGGCC
-TGTTCCCTGTCCTTGGTTAAATAGTTCTGTTCCTGCTACTGAAACATTTAAGGAGACCCC
-CCACCCCCATCTTACCTGATATCCTGTGTACAGGGGACCAGGAAAGGGTTGAGGAATTTG
-GCTATAGGTCCTTGACTCTAGGACCCCAGGGTAGGGTCATAGGATATAGATGAGAGCATG
-GCTGCAGCTGGCTGCCAATTAGATGTGCATATAGGAGGGCTTACAGTTGTGCTGGTCCAT
-CTGGGTGGCCTGAACACCCggccgggtgcggtggctcacgtctgtaatcccagcactttg
-ggaggccaaggcaggcggatcacttgaaaccaggagtttgagaccagcctggacaacgtg
-gtgaaatcccgtctctactaaaaatacaaaaattagctaggcatagtggcggacacctat
-aatcccagctacttgggaggctgaggcatgagattcgcttgaaccctggaggtggaggtt
-gcagtgagccaatatcatagcactgccctccagcctgggtgacaaagaaagactccctct
-caaaaaaaaaaaaaaaGGAGTGAACACCCCATCCAGGTTTTTAAAAaggtaatattggtt
-gatgggtacagcaaaccaccgtggcacatacatatctatgtaacaaacctgcacattctg
-cacatgtatctcagaacttaaagtagaataaaaataaaataaaaGGTAATATTATTTTTC
-AGATAATTCACTCATATATTTCTTCCAACAttttattaagaaaaatttcaaacatagagt
-tgaaagaattagacagtgaacattcatatacccacctactaatgcacacttgttaatatt
-tcactatatttgctctatcaggaatctacccatctctccatccATTAATACAACTTATTT
-TTTTAATACAACTTATTTTTTAATAAAGCTTTTCAAATTAAGTTGCATATATCAGTACAC
-TTCCCTTAAAGTCACTTTAGTGTGCATGCCATTAGCTAGAATTCAATATTTGTTTGTCTT
-GTTCCTCTCTaggtaacatttacatggaatgaaatgcacagatcttaaaggtgccatttg
-ctgaatttagacaaatgcatactgtaccccaaacccctatcagggtatcaagcattatca
-cctcagaaagtttccttgcatcgctctcctgccgattgctgcctgcccaCCATGGACATA
-TTTTTATATCCATATATATCAGTACTAACaagcagcatcccttgtcctttcctctacatc
-agcctcgctccccaaaagcaaccacttacaacttcttaaactatttcttctggtactttc
-ctccatatttttaaataacttgcttttcctgctgttttcttgatcaattttaggcataca
-cacacacacacacacacacacacacacacacacacacaTATATAtttattttttttttga
-gacagaatcttgctctgttgccccggctggagtgcagtggtgtgatcttggctcactgta
-acccctgcctcccaggttcaagcgattctcctgcctcagccacctaagtagctgggacta
-caggtgtgtgccaccacgcctggctaatttttgtattttttgtagagatggggtttcacc
-atgttgaccaggctggtcttgaattcctgacctcaagtgatccacccaccttggcttccc
-acagtgctgggattacaggcgtgagccagtgtgtctgaccAATTTTAGGCACATATTGAC
-TGACTTTCTGGTCTGATGTTttcatagtgtggcctccactgcctggctgcctggctttgg
-atcccagcccttcctctttctggctgtatgaccttgggcagtaacttaacctccttgggc
-ctcagttttctcatttgtaaaatgagggtgataataatagtgctgaggttattggattgt
-tatacggattcaagatgtaaaaggctgagaataatgaacatcacccagtgagtagtcaaA
-CTTTTTCTTCTCATAATCATTATTATCAAGAAAGATTTAGCTTTTGGTTCCCCCCTTTCA
-ATTGGCATTtatcacaattttttgtgaagtggattttagtgttatttatattatgactat
-gtaaatactgtttcctttcaagccaagtcatatattttggttacatttcctttcttgtac
-aactctttgttcttcctggagttactactcgctttgctttttttcatttgctgtttcctc
-ttaacccatccttaattcTCTTAATTCTTTGACACCCTCAGTCTCCCCATAGTTAACATT
-ACACATCCTGAAACTCTTCAAGTGCTTTTAAAGAAGCATCCCCATCCATTTAAAAAAAAC
-TGGAGCCAATTTTTAAAATAGAATCTCAAATACAATCTGTAAaataaagatttgtgagca
-tccactatgtgccaggagctgtgctaggcagagtgggaaggtagccaaataggggatatc
-cctgcccatgtggGTTTCCAAGAGGGATGAAAACTGAAGCTCCACACCCCCAGCCTCTGC
-ATTTACCGGGGAACACCTCAGCACCTCTAGGAATCTCAGGACCTCAGGGAGCCCAGATTT
-ACTTATTTGTAAAATGAGGATCATTTTGTCATTCTGCAATCACTCCTTAACCATGTTGTC
-TGGGGCTGTGTTGTGGCTGCTGGGTATAGAGCAATGATCTCCCCATCCCTTGAGGGGCTC
-ACAAGAGCTGTGGGATAGAGCGGAGGCTGTGGATTGCAGCGGAGCAATGGGAGCTGGGGA
-GCGGGTTTCCCAGAGGAAGTACCATAGGACGAAGAGGGTCTTGGTGGGTAAGGGCAGtaa
-acggctgttatgttccaagggctgtgcgaagaacttccatgtattgtcccatcaaatcct
-cccaaagacccattgaaaggggtcatatttttatcacaatttcatagatggggaaactaa
-ggccaggagagtccaaggccagggtcacacagctaataagcggcagaggcagtatttgaa
-cctatgcagttgggttcttaaccacacactgcactgtCTCTCACATCCAGATGCCCAGCT
-CCTGTCCCCACCTCATCCTGTATCTGCCTCGTCCTCTCCTGTCTACCCACTGGTGCTAAC
-CTCTGGCTCATTCCATGCCCTTCGCTTTATTCatccattcattcaacacaaatctactgg
-gcgccttttccacgcccaaccctgggctgggcagtgccagggacatagAGCTTGGGCAGT
-ATTGACTCACCCATTCCCAGATAGGCATTGACATTGACATGCAAGCGGCCAGGAAAGTTG
-TCTAAATAAAGGGGTGTTTGGGGTTGAGTGATGGCtgtgtgtatgtgtgtgtgtgtgtgG
-CCTGCAAGGGGTGTGTGTCAGTGTGGCAGCAACAGACTTTCTGTGGAGGCCATTTATGAA
-GGCATATCTGTGTACCCTTGAGAGTGTGTTGTCTGCAGAGGGTGTGTCCACCAGGTATGt
-ggatcagtgaggctctgctgcataacaaaccactctaagcccagaagcctaaaaccactt
-attagcctgtgtgaagtggcagtctggcctgggcttagctgggcagttctggttttacct
-gggttcacttgccttgctgcagtcagctgagggtgggggctctgggagggcttcactcac
-atgcttagcagttggcaggctgtttgctggggtgcctccatttgctttgatgaggctggc
-ttgggctcatgcttatggtgacctcagggttccacattcagcaagagaagataagctcca
-acgcacagtgcattttgagcctctacttgtgtcaagattataaatgtcctaatagcccaa
-gtgacatgtcaagtcagattcaaaggatggagaaatagactctctctctCTCTCTCTCGG
-TTGTGTTTTTGTTCTTTGAAAACAAGCCCGGCTTGCctggctccatcgcccaggctggag
-tgcagtggcgcgatcttggctcggtgcaacctccgcttcctggttcaagcaattctcctg
-cctcagcctcctgagtagttgggactacaggtgcgtgtcaccacgcccagctaatttttg
-tatttttagtagagatggggtttcaccatattggccagactggtctcgatctcttgacct
-catgatctgcccgccttggcctcccagagtgctgggattataggcatgaggcaccgcgcc
-tggctTAGAATCCATCTCTTagtcacattacacagggcatgagtacagatatggaggaat
-tattgtagctgattttcaaacaacttaccTGTGTGTGCAGGTAAAGAActagggacagtt
-ctcagttttggaaataaaaaaaactctgggctgcagtcctggctcttccgtccttgctgt
-ctgaccttagtcaagttgtctcattctctgagcttccgtaaattggataaaattgaatga
-aacgagatgatctttaTAAAGTGCTTGTGCTACTCATTTGTTTACAAACGcagcacatat
-ttattgaggcctcctatataccaactactggtcccaccccgaggatattgcagtgaacaa
-aatggaccaaaacacctgctcttgtgaagctcacagcctaggttgtagacagatgttaat
-tgatcatcctaataattgtatgaccattgagagtagattccggaaggagagattgctgac
-ctggccaggttgatctgagaagccaaagatatttaagctgagatgtgaagggtaggtagg
-agacaacgaggagaagaaagataggagtggaaaatgattctagatggagggcatgtgcaa
-aggccctgtggtgggaggagtagattccaggaacacagagaaggtgggtggggctggGCC
-TGAAGCACCAGGGCCAGATGGTGTGGGGCTGCTGGAGCCTTTGAACAATGTGAGGGTCTG
-TCTTGCCAGGCAGcctaaaataaaaccgaaaggcctaactgctccacaaggccctcatga
-tcggggaccttgttactcctccagtctcccctttacctactctgctgcagccatgctgcc
-tccttcctgttccaggaacaccctggacacattcccacctcagggcctttgcacttgcca
-ttgcctttactagtatcgaccctacccagatattctgatgactcattctgtcacttcatt
-tccatctctgcctcttcaaaggggccttccctaccaacccaccacaacccccctgcccct
-ccagctaagcagtcagcatccagcagtctctacttccctggcctggtttatttctcttcc
-tagcacatatcacctcctggcttatattaaccagaggccacattgtctgtttctcttctg
-gatctctcaccagagtgcagctcagcaggcagggacttggccttgctctaggctgtgtcc
-tcagcctcaggggaagagtaggcattccataaacatttgtgaataaagaaatGAGTGAAA
-ATGAGTGAGTGAATGCTGGAAAGAACTAGCTCctggaaattaggaggtctgggttcaagt
-tctagctGGGCGATCCTTTCTGTTCCTTGGTTTCTCCAGTTGAGCTGTGAGGCATTTGTG
-GTCTCTAGGGAGGTTCTAGGACAGGAAAGGAGTACTCCAGGCTGTGGAGGGGGCCTATGT
-AGGAAGAAGGGAGCTGGGGCCTTCCCTTTGGCCTTCTGGCGTTTGAAAATAGCCTAGCTC
-AGCCCCTAGCTTGGGCCCCTACCCTCCCTGGGGTGCCAAGCTGGAGCCAGGGGGCTCTGT
-CTGGAGCCTGCCAGCCTGGTGCCGGGCTGGGATCAAGGCCACCTGACAGCTGGGCCAGGC
-AGTCCTGGAAGGTTCTTAAGGGCAAACAGGGCATGCTGGATGTCCCAGACCTCCCTCCCC
-ACCTATTGTCCCTCCTCCCTCAGTGTCCACCGGCAGGATAAATCCCTTCATCCTCTACAG
-GCCTGCAGCCCTTGCAGCTTGCAAATCTTTTTCTTGGTTTGTTTCTAATTTCACCCCTGC
-TCAGTAGctactttactggtgaggacactgaggctcagagatgacaactgcctcactgag
-gttacgttgcagttatgattcaggcccaagtctTGCCCAGCCCTGTCCTGTCACCGCGTG
-CACgtgtgtgtgtttgtgtttgtgtgtgtgtgtgtgtgtgtgtgtgGTCTCACTATCAAA
-CAGTGCCCTCCCTTAACCACCAGTGCCCCGGGTCTCTGATAAGATGtgatgactatgagc
-acctggagccaggtggcctgggttcaaatcccacctttgctacttctatactgtgtgGAT
-TGCTGGGCCACCCCCACCTCAGTGTCTGCTAATAGGACAAATCCCTTAATCCTGGGCACT
-GGGGCACTATCAGGACTAGCATTGTATACATTGCACAGGTTTTAAAAAATGTAATCTGTA
-ggctgggcacagtggcttacacctgtaatcccagcattttgggaggcccaggtgggtgga
-tcatgaggtcaggagctcaagaccagcctggccaacatggtgaaaccccgtcactactaa
-aaatccaaaaattcaccaggcatggtggcgggcacctgtagtcccagctactcgggaggc
-tgaggcaggagaatcgcttgagcccagaagctgaggttgcactgagccgagattgtgcca
-ctgctctccagcctgggcaatagagcaagactccgtctcaaaaaaaaGGTAATTTGTTGT
-CAATATTTACACATCTAAACCATTGGAAGAATAATGTATATATAAACTAGCTAATGAACA
-CCTACCAAGCCCCAAGCACCAACTGTATGTCCAGTACAGAGCCAGCTGCTCCAGGGGAGT
-TCGTTCCTGGGAGGGGGCATCATGATGAAGTGGGCGTGGTTCCCATTTCCTCCAGCGTAG
-TCTCAGAAGCGGGAAGCCATGTGACTGAGGTTACAGCCAGGGAGGGCAGAGGCCCCCGGC
-ACTCACCCCTCTGGGGTCCAAGCCCCGCTGGCATGTGTTGTGTCCCTGGGTAGGTGTGTC
-ACTCCCTGTCTGTGTCTCCAGTGTTCCTGTTGGCAAATCAGGGGTGGGACGGAGGTAAAT
-GGAGAGGCCCTGCCCAGTCTGCTGTAATCCAGGATCTCGGACTTAGTGGGGCCAAAGCTT
-CCAAGTTCTCCTGATTAGTGAGGCTGCAAAAAATGTTTGGCATGTTATTCTCTCACCGTT
-TAAATGTGGGCAAGTAACAACTTACATGTAAAATTACCCCCATATACCAAGCATTTaagt
-tatttattatatcattgcttacaatagcaaataattggaaattatttgagaaatggctaa
-agaaactcaggcccaggtacgcaagggaatcctaggcagccctcaaaagatgtcctgcaa
-acacctgatgtggaatcacaagatacacaacacaggtcagtgaacaaaacaagttgtggc
-atgatacccacagtgtgctgctgcttgtggaagcaggaaCACATGTCCATGTACTCTTGT
-ACTGGCACAGAACCCTGGAGAATTATCCTGGGAACCCTGCATGCTGGCTGCCCCTGGGGA
-GGGGAACCCGAGGGTTGGGCTCAAGGGTGGGAGGCAAGACTCACTACTTTGCACACCTTT
-TGAATTTTGAATCATGTGAATGTGTTATCTGTGCAGAAAAAATAAAAATACATTTAAAGT
-AAAGTGAAAGTAGACAAGAAACCTGAAACAGAGACGGACAAGCAAGCCTGCAGGCCCAGC
-CAGCTACCGCCCCCGGGCAACCTCATGCCACACTGTGGGCTCTGCCCAGCTTGGTTTTGT
-GGCTCCACCCTCTACGGTCATATTTGGGTTTCCACACACACAGCACCCAAAGGAAATCCC
-AGCTAACGCACATCAGGTTCTGGGCTGGGCCACCCGCCAAGGTGGTTGGTGGGCATGACA
-CCGCCCCGGGAATGGCGTCGTCCAAATGCCTGAGCAATGACACGGCCTCAGATGGAATGA
-TGCCACTGCCCACAGTCTCACAGGCCCTCCCATCTCGCCTTTGTTCTGCAGCCTCCAGGT
-GGGTGTATGGACACTCCAAAACAGCCATCCCTGTCAATGAATCAGCCTGCAGGGACTGAA
-TTCattccttcattcatcaatatccattgagcacctactgtgtgccaaacactcttctag
-gaactgaagatgcaacagaaaacaaaacagataaaaatccctgccctcgaggagctgaca
-ttccagaggggacacagacaatacttgccagagtgaaaatgctaaggagaaaaatgaagc
-agggaaggatgggGAACTAGAGATTTTTTTTCCtttttttattgaggttgaattgataaa
-caataaaattggcccattttaggtgtacagttggatgcattttgacagttgtatggcact
-acagacaagtgctagaattcctgtatcatcccaccatgttccttcacgccccccacagtc
-agcccctgactcccacccgctcccacccgaagaaactacagatcagttttctttcactgt
-agatcagctttgtctttcccagagttcatgcaaatggaatctggcttctctcagtcagca
-tcatggacttggttgagattcgcccgtgttgctgagtgtatctgtagcttgttccttttt
-actgacgagtagtattccacagtgtggatgcactgtattttgtttattcatccaacttgt
-tgacggacatacaggttgttcccatttcttggctattacaaataaagctactataaacat
-ttgtgaacaactctttgtgtggatgcatattttcatttctcttgggtaactaccacggag
-tggaattgctggacctcgtggtaagggtagctttaTTAGAAGCAGATCTCATGCttttaa
-acaggatggtcagataaggtgtcaccggctcggtgatatttcaggagaggccagaaggag
-gtaaggggtgtctgcagggaagagtgttctgggctgaggaaacagagtcagtatgtgcct
-ggagtgtttgaggaacagcatggaggccatcaaggagggagtgaaggacgtgaggggaga
-gggctaggaggtgtgctccatgtggaatgaggctagatggtatagggtcacatacatcat
-ggtgaggacattggtatttttttcttttgacatggagtctcgctctgtcacccaggctgg
-agtgcagtgacacaatctcggctcactgcaacctccgcctcctgcattaaagtaattccc
-cggcttagcctcccaagtagctgggactacaggcacgtgcccccacgcccattttatatt
-tttgtagagatggggttttgccatgttgtccaggctggtctcaaatgcctgacgtcaggt
-gatccgcccacctcagcctcctgaagtgttgggattacaggtgagagccactgcacctgg
-ctgaggacattggtttttcctctgagaacccgtgggaggaatctgagcagaggtgggaca
-ggatcagacttgcattttaacaccttcccccatctccagctaccaagtggagaatgggct
-gcagggctgcagggaggaggctactgtaatagtcctggcaggagatgaaggagttggact
-ggggtggaggcggtgggggctgaggggtgtgggattctggatctttctggatctaccccg
-aatgtggagccaacaggggatgtattggacgtgggatgtggggaaagtagggacatgaaa
-gaaggctAGGACCCAAggtgacctctaggaactgagagtggccctccagctcccagctgg
-caaggaaacatgcatctcagaccggcaaccacaagaagttgaactgtgctgacaaccaaa
-ggaacttagagtggaccctgagccgcacaaaggatcacagcctagctgacacggtgattt
-cagcctggtgagacctaagcagagaagccaatcatttcatgccaggacttctgacctgca
-gaaactgtaagaaaataaatgggtgctaagtcactaagtttgtgataatttgttatgtag
-caatagatgactgatacGGGCATACtagaatcctacagtgtgagagctaaaagagtgctt
-agcaaccactaagcccaccccccccatgtacatatggggaaactgaggctcagagagcac
-agaggacttgAGGCGTGGTTCCTGAAGGGAGGCGACATCAGGCAGAAACTGTCCCAGCTC
-TGGAGGTGTCGCGAGTCCCAGCCTCTCCTCTCTTAGGAGGCTGTAGTACCTGCCCCTCTG
-CCAACCCCTGCTCATCAGGACTCCCAGAGAGCCAGCTCCTGGCTACCCACTATCTACCCT
-CGGCTCCCCAAGCAGCGAGTTCAGGCAGGCTCCCCACTGGTGCAGGCCCTCACCCCCACA
-GCAGAGCATGGGCCAAGGGTGCACGAGCCAGGCCTGAATCTGAGACCCCAGGGAAGagag
-gaaaaatcacaaccttgggcctggctagaatcccaactctgccactcaccagctatgtga
-ccctggttgagggactcccctttgctgagctgcagtgtccacatgtataagatgggagta
-gggatgctttcctccaatggtcaatgagctaatgaaggtgaaactcttggcGGGAGCACT
-GTAAATGCATGTATCCAACCTcttcctctgcatgggcctcagcttccccatctgctaaag
-ggtcttgtgttcttgatgtgtttgggggggcccttgcagctctaactatatgaggattca
-aattccggctctgcttctcactagctgtgtgaccttgaatatgttactcaagctctctga
-gtcccagttttctcacccataaaacggggctattaataatacctcctattacaggagaga
-tgcaggtcagatacctagtagagtgactgAGAAAATGTTAGCTAGTTGTGTTATCATCAT
-GATCACCATTTCTAGTGTGTGAGTTTGGTTGTGCCTGCTGGAAGGGGCAACAGGGCCGAG
-CCTCCCAGGGTGAGAAAGTTTGGTTTTCTTAGAGACAGACGTTTGTAGGCTGAGCAAGGC
-ATGCGTGCATTTCTGGGAAAACAAAATTAGTTCATTTCCCTCCAAATCCCTGCCTGTGCA
-ACCACCTAAAGCCAGGCTCTGAGTATCACAGTGCTTATAAGTGGTAAACCCACAGGCAGG
-TTTGTGAAAATGAAAATATGCATTTATTTCTGTTCCCAGTTCTGAGAACTACTTCCTGTT
-TCCCTCTAGAGGAAGGCAATGGCTTGTGCACATGCCTGGAGGTGGGAATGTGTGTCATGG
-ACACAAACTGGGGTGGTTATCACTGTGATGTTCCCACTGGCCATGTCTGAATTGTGCACG
-CAATCCTCTGACCATAGCTGATTCACTGGTGTTAACAGACACCTGACGGCAGGCTGGGCA
-CTCAACAGTCTCTATTGGAAATTTGAAACTTGAATGGGGCACACAGACAGAGAGTGGCTG
-GAGATGCATCATTCCTGGCCAGCACCCTAGAGAGGAAAGCCACAGGCCCTGCCCCTGAGC
-TCCCCAGAGATGCCTTTTCCTGTTCTTCCCACAAGAGTACTCGTTTTGGGGGTTTGCTCT
-TCCCTCATCCTGGAAATGCCTTTCAATAAATCCACTGCTGGGCTCCTTGGTTAGTCAGTT
-TTTCGGTGTTTGCCACCCAGTTCACCTTGGCCAATGTGGTGACTAGGGAGACAGCACTGC
-TGGGGGTTAAGGGGAGACTGTGCAATGGAGCAGTGGCCCTCTgtggagtagttctgggca
-gaaagagcactggacccagagtctggttcttcatgatgtactgccatgtgaccttgggca
-aatcacttaacttctctgTCTGGGATGGAACCAGGGGGCACCTTAGTAAGcagatgggga
-cactaaggatcagagagaggaaaggctttacttaaagccacacaacaggtttaggacaga
-cccgggagagctgggccctgcaaatcccagcccTCAGAGGGAAAATTTCCTGGGTTAGGA
-AGCTTATTTCTAATTATCACCAGGACCTGTTTACCCCAGGTGAACAGGGTCCCCAGGCAC
-TTGGCAGATCACAGATTTCTTTCCCAACCAATTGTCACATTTGGCCTTGGCAACAGCATC
-AATGGCCCAGGAGGGGGCtgagtaaactgagcccagagagggacagagtcttgtgcaggg
-tcataccacaagttcatggcagaactagagtctgggccagatctAAAAAAGTGTTGCTTT
-TTGCTCTAAATTTAAGGAGGGTGAATTGGGGGTAGTGGCTAATGAGTTCTCCAGAGGAAT
-TTTTAAACTGTTTGCTTTCATTTTGATGATAATCCTAAACATGTAACTCAAGCATATCAT
-GAATCATCTGCAGAGCCACAGGTAAGTCCTGCCTGAGCTTGCGTTTGGACTTGGGATCAC
-ACTGGCAGCAaataatagcatttgttgagaactaactatggcccaggcactacgctttgc
-attttttatctattttttaaaattttatttaatcctcacaacaaccctataagataaatg
-ccatcagcatccccatttcacagatcaggcagtcaaggtgcagagaggttaaggttaagt
-aacttgaagcaatgttaacagcgagCCTGTGATCTTGCCCACTACACTTTACCATTGTAA
-TCGGAGGAGAAAATGGCAGAGGTGGCTTTGATATGTAAAGATGAATTCCTGCTAAGTGAA
-GGCCAGTGATGCAGAAGTACAGGGTGGGGAGAAATTTCACCATGGGTGAAATGGTGCCAA
-ATGGTGGGAGAACAAAGCCATCATCAGCATGCAGAGTTGGGTGGAAGTGCGTGACAAACC
-CAAACAAAATGGCATCGCAATTGAGTGTCCCACATTCACACTGCTGGTGGCAACTCTGGT
-TTAGCAAAGCAACATCAACCATATCATTAATTAATTAATATTGTTGCATTGATGATATGG
-cagcatagcttaatgcttagggatgcaggcttaaaactcataatttctgacttcaaatgt
-gttttcctcttggcctagtcctcagactatgggcaaatcactcaacctctctaagcctca
-gttttgttcatctttaaaatggaattgtaatagcacctGATagactgctgattgcctatg
-caattcccttcttttcctgttttttgttgaccaaaccctgattttattcccgatggtgat
-atatctagctaagtaagactttattcccagcctctcttacagctactggtggccagcgag
-tggaagttattcagtgagagacttctgaggactatccctagagggggccaatgcatctgg
-gaggaaagcccatatactcttctttctccttcttcctatatggaactcaggcattatggc
-agcagccccagcagccatctaggatcaagaagtgaccttcaggatgaagacacatgataa
-ggatgaagcaacatgaggctggaaggaacctgaaacattgatgataccatagagactgca
-gcagccctgggctgactcttccctgacttttttttttttttttttttttttttaagtcag
-ccttttattttaggacaattttagatgtaagaatcattgcaaagatagtacagagagtgc
-ctgcataccccacacccagtttctcctattattaacatcttataggccaggcgaggtggc
-ttacacctgtaatcccagcactttgggagtccaaggtaggaggatcacttaaggccaaga
-gtttgagaccagcctgggcaacagagcaaggccctcttcctacaaaaataaaaataaaaa
-attgagctgggtgtcatggcataccagtagtcctagttactcaggaggctgaggtggaag
-gattacttgagcccaggagtttggggcttcagtgagctatgatcacaccactgtactcca
-gtgtgggtgacagagcaagaccctgtctgtaaaaaaacccgaaaaccaaaaccagaaaat
-cttatattagggtatgatacatattaaaaccaaaaaatcttatattagggcatggtacat
-atgtcacaatgaatgagccatactgtcattattaactgaaaagcccatacttcattcaga
-tttcctcagtttctccctaataccccttttctgttccaggatcccatccaggctcccaca
-ttacatttagttgtgtctccttaggctccacctggttgtgacggtttcaaagactttcct
-tgtttttgatgaacctcatagttttgaggacaactggtcaggtattttgtaacatgttcc
-tcaatagggatttttctggtgattttcttgtgattagacaggggtgatgtgtttagggag
-gaagaccgcagaggtgaagtgtcaatgtcatcgcttcagatggggggacattctatcaat
-acgacttctcactgtggatgttgaccttgattgctggcacgtttctccactgcaaaatca
-ctgtttctgtcctccattcaacgccatactctttggaagaaagtcactccatgcagcccg
-tgcttaaggagtgggagttatgttccacctcctggagggtgacgcacttaAGCTACTTAA
-GCTAATAAGTATTTTTTATGTAGCAAAAGCTAACAGATAAACAAACCCTTTTGTTTCGTA
-GATCTATGTTATTTGGGTTTTCTATTACATGCAGTCAAACCCAATTTTAAATGGATGCAG
-AATTTATTTCTCAGGGAGGTTGTGATAATTGAATCAGAGAGGCAGGGACAGTACCTACAG
-CAGTGTTTGGGTGAATAAACAGTAACAATAATCATCGTTggccaggtgtggtggctcatg
-cctataatcccagccctttgggaggccaaagccagtggactacttgagcccaggagtttg
-agaccagcctgggcaacttggcaaaaccctgtctctacaaaaaatacaaaagttacctgg
-gcatggtggcacatgtctctagtcccagctacttgggaggctgaggtgggaggatctatt
-gagcctggaaggcagaggttacagtgagctatgattgcatcactgcactccagcctgggt
-gacagagtgagaatctgtctcaaaaaaaaaaaTCATGattattaataacttaattataaa
-taataataattattattagttttataGTGCATTAGTATTTGATTGATAATTTTGTTTCAG
-TCTTTTTAGTTGTTTGGGAACTATAAGCCTAAGGAGTTGATAGCTCACTTCATGAATGCA
-CACAAATAAGTAGTTTACCgtcaatgccctcctaagggcctaagatcaacaggaatgcac
-ctgtagttaaacaagtggttctattactcactgggacaagaaagtgcacagcatggggaa
-ccttggaatgtcttagtgagagtgttagaaaaggcttattataggattggtctcgtgtta
-ggtgacttgaatagggtttgaggatgtggggtttttcttcagattggatgctctcaggaa
-gtgagggtaattatgcagttgcgatcttaacaagtcttgtctatagagaaggcagactct
-ggcaaggctaatgctgtcattgggaaagaagcagcggtcacttgtattagctgggactga
-ggggtgtttggtcattttcgtggcttggaaatgtgcatgatttgtctttgttcagacatg
-attacagagtgttccacttttcgtcttgattcatcaatcactgaggacctcatctgatgt
-tggtgttctggggaatcattaacattggacaggacataagctgttctctgtgcatgttgg
-gctgacttgcagcaacacccagtcctagctgatgactatccaggatggcccctggatgtc
-agggctgctttcctctttctcaATTTCAGTCAACATTAGTGGGTCTGAGAGGATCCCTTC
-CTCCTTTTAAAGCTCTCCATATATTAAGTTGGAGCAACAAGCTCATTCCTGCTCAAACTG
-GGCAGGCATTTTTAGATTCTTTTCTGCTCCCAGAAGTTTTCCTTTCCCATTATTTGGTCT
-TGAGCTGGTCTCAGGAAGAAGTAATGAAGGTGAGAGATCTGCAGTGGGATCCTGGGAAAG
-GTGGCACATGTGGATCACTGAGGCCTGGGCTCGGATGGTGAGGATTTGAAGATTCCCAAA
-GGCCACACCTAAGGGTCACCAGAGGGTgtccagcccccattatccagatgggggaactga
-gacccaggagggaagGGCTCTGTGTTGGGTCCCAAGGTGTGCCATTCCAATTATCAACTG
-CCCTCCCTTACCTGACTGGCAGAGTCCCTTTCTTCCAGTTTGACGGAAAATACTGTTTGG
-CTCTTTTTTTGTGGGATGGAGTGTAGAAATTGGGGAAAAGAAGAAAATATAAAATCTTAC
-ATTAAGCATCCTAAGCCAATTCATGTGGTCGAAGAagcagaaaagcagcagaaaagcagc
-agaaTGCGATGCCAAACACATCCTCTGTAGGCACGTGTGTTATACCAGGTTGCTGCGAGG
-GCCCAGAGGACACATCTGTTGTAGCTGAATAAGTTCCAGTGTTGAACCTCAGCACACACA
-TGCGCATCTGGGCACCTGTGCACAGAGCTTGTATGCACAGAGCAGGAACACATGCATGCT
-ACAAAAGGATCAAGAGTCAAACTCCAAACTGGCTGCCCTTATTGATAACTTCCAGCTGAT
-GGAAGGTGGAAAGGCGAAGGTAGATGTGTTTTGGATATAAAAGGTctgtcttctctgttt
-actgtctatgtgaccttgagcaaattgattgacctctctaagactcagttttctgcaata
-taatatggTTCTCTTCTCTCAGAGTAAGGATGGAGTTCAGTGAGGAAACAGAAATGTAAG
-CATtgcatcattcggaatgctctgggctgcaagtaacagaacaccaactccactggctta
-aatgaaaaagaaattgatcatctAGAGACAGGACTCAGGACCTCAATGATGTCAGTAAAG
-CTCCAGGCCCCTTCTGACCCTCCACTCAACCACTCACTCTCCCACCTCCCTGTCAGATTG
-GTCCCAAATGTGGTTCTCCTGGTGGTCCACACTGGAGTAGCATCCATGCTGTGTAGTGTC
-TTCTCCATCAACAGAAGAGAGAATCTTTGTttttcttttctttcttctttcttttttttt
-tagacagagtcttgctctgtcttctaggctggagtgcagtggtgcgatctcagctcacta
-taacctctgcctcctgtattcaagcaattcttgtgcttcagtctcccaagtagctgggat
-tatgggtgcctgccaccactcctggctgatttttgtatttttagtagagacagggtttca
-tcgtgttgaccaggctggtctcaaactcctgacctcaggtgatccacccgcctcagcctc
-ccaaagtgctgagattacaggcatgagccaccacgcccagccAGCAGAAGAGGTAACTTT
-TCTGTATCCCTGAAACGCTAAGTCTTCCTCTTTAGTATGAGTGAACTAATTGAAGTCACA
-TGACCAGCCCTGGCAGTAGGAACCATGGCCAGGGGAATATCATGTGCTGACTGGCTGCAG
-TTTTGGTCCCTGAACACATCAGTGGCTGGGGGACCCCTTCAGACTAAAGGACCTAGCCCT
-GCAGCTGGGGACTGATATTAGGAAGGGAAAGGGAAAGGGCATGATTCATGTCCCTCACTG
-CTCAGGGTCTTGCTGTGTAGCATCTCTTCTGAGATGTGGGTCAGACAGGGTGTTGGCCAT
-CGCTAGAAAGGACCCCTCCTACAAGGACAAGACTTGAACAGGGATCCTGAAGACTTCTGG
-GGTTTCTATCTAGAGTCCAAATGGGTCTCTAGAGTCAGCCTGTTGACAGGCTGAGTTGAG
-TGGCAGCATCTCTAGTGGATCTGGCTCTCTGCCTGTGACCACTTGTGTGCATGAGCAAGT
-GCCTCACAGACCTGCATGTGTACATGGAAGATGTATTTTTACCTCCATGTTTGCGTCTGT
-AGCAACAAGTATGAAATGCACATACATGTTCATGCACATGTCAATGTACGTGGCTACCAC
-ACAGTAGGTATACTGTACAGTGTAACCATACAGTGTTTCAAATAtgcatatatgttcata
-tatgtgcatatatgCAATATCTGGATAGATGTATATGGCATAATGGCATATTTATATATT
-AATAAATCAATCATTTTAGAGTATTAACTATATATGAGTTATATTATGCCTAAGATATAT
-Taataaaaacaatgtttgtcaagtacttgctatatgccaggtactattctaagcacatat
-gttctaaattaATATATGTATTACTTTAAGGATACATAACCTAGTGTCTTTTTGGGGTCC
-ATGGATGAAGTGTATCTTCACTCACCTTTAATTAAATTCGGTTGTTTCATTCTTCATTTG
-TGAATGTAGGGCATTCACAAATTCACaaattcattctttcaattgtgaatgtagggcaca
-agccacagtagtgtcaggagtgcctggaactttgtcaccattagaaatcatagctatttt
-tgtatcttgttataatgattatagatatctcaaaatattaacagtcatcatttgttttga
-cctaccactgatcttgttatttaatgtattagcaaagaagcatatatagtacaatatcaa
-aactgtgttctttaaAAAAAAAAAAAGTATATATATATATAtgtatatgtgtgtgtgtgt
-gtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgatgaagtcttgctatgttgcccaaggt
-ggccttgaccccctgggctcaagtgatcctctcacttcagcctcccaagtaactgggacC
-CAGCTTAAAATATTTTGATGACAGTATATATATAttttttgagacagagtctcgctctgt
-cacccaggctggagtgcagtggcacaatctcagttcactgcaagctctgcctcctgggtt
-catgccattctcctgcctcagcctcccgagtagctgggactacagttgcccgccaccatg
-cctggctaacctttttttgtatttttactagagacggggtttcaccgtgttagccaggat
-ggtctcgatctcctgacctcgtgatccgcccgcctcggtctcctaaattgctgggattat
-aggcgtgagccaccgcgcccggccAatgactgtgtttttaatataatttgtttcattcat
-aatccaatgcatttaattttattttaagcatgtgaagacaccattctgaggaggggtcca
-tggcttcaccagatgccaaagacgcccatgccacagcaaagAAAaattcattgatcaatc
-cttcaatgaccccatgaagcagcagtgttaccagtttgctacagaggggaacctgaggca
-cagggaggttgtgcaacttgtttaaggtcacatagatatcgagtggTTGTGCATTATTAT
-ATCTGTCAGTTGTTTTTATAGCCTATGGGCTGATGTGGGCTTGTCCTTTGTGTCACATCA
-GAAAGCAAGTCTGGTCAATTATTTTCTTTCTCAAGGTTAAGTGAGATCAAGAAAAATAAT
-ACACATATATTGCATGGATTATTTGTGGTCATCATTTGCTAATCCTTATACCTGTGCCAT
-GTTGGATTAATTATTACAGCTTTGTGAGCTGCTTTATTAAGGAGGGGAAGTAGAGTGAAC
-AAATCATGGCAAGTCACTTCACCTCATCTTCTCATTTAAGGATGCTGATACTGGTGTTGC
-CAAGGCGACGCTGTCAGCTTTCGGAAGCATCTTTAAATGGGAGAGGCGAAGGCCCACACA
-GATCGAGGCGGAGGAAAACTCAGAAAAAAGGCTCAAATCCCTCGGCCGCAGAGACAAACC
-ATCCTGGTGGGGACCATCCCTCACCCCCCGCACATGGCCACTTTCTACCTCACCTGTGGT
-GGTTGTCTCTGGGGTGTACTCAGGGAACTCTCTCCCCAGTGTGGAAACTGCCTTTGCTGG
-GAACAACGCAGAGATCTCAGAAATGATGGATCCATCAAGTGCCAGTGGGAGAGACTGAGT
-GGTCTTGGAGGCCTTTCCAGGAAGTTCCTCCTGCCCTTGGTACACGAGTTTGGTGGTAGA
-TGCCCAGATGCCCAGAGTGCTCTGGGAGAGGAAGGCAGCTCACAAATGCAAATGCGCTGG
-AGGTGGTGCTtggctgtgctgccttggatgagaccctttccctctctgagccctaatttc
-ttttttctttttctttttcttttttttttttttttttgagacagagtctggttctatcgc
-ccaggctggagtgcagtgacaagatgtcggctcagtgcaacctccgcctcccggttcaag
-caattcttctgcctcaggctcctgaggagctggggctacaggcatgtgtcaccatgccca
-gctagtttttgtatctttagtagagatggggtttcaccatgttgcccagggtggtcttga
-acttctgagctcaggcaacccaccagccttggcctcccaaagtgctaggattacagacta
-ggagccactgtgcccggTGCCTAATTTCTTCATCACTGAAATGGGAAGAAAACTAACCTG
-GTGCAGGGAGAGGTGACAAGTGTTTTCCATAGGAACCCGCAGATGCAGGTATCCTAGAGG
-CTGGCACCTATGAGCTGTGGCCCCCAGGAGACCCAGTCTAGGCTCGAGACCACACCAGCC
-GTGCCCTCTACAGTGCCTTGTGCTGCCCAGGATCCTCAGGTTGGTCTTGTCTGCAGCCAT
-TGTGAGTCAGCCTCACTGTCAGAAGGGCTTTCAGAGGTTGCTAGGTGCTCTGTCCATGGG
-AAACTGAGGTTCAGAGAGGGCCAGGGGCTCTGATCCAATGGCAGAGCCAGACTGATAACA
-GGGTCTAATATTCCTGGGCAGGACACAGCTGTGCCCTTGATAGTCAGAGGCAATCTGGGA
-TGAACTGGATCCTGGGGTCAGGACCTGGGGACAGGGAGGCCGAGAGAGGGCACAGAGGTG
-GAGAGAAGAGAGATGAGAGCCAGGGACAGGGAACGAGGGAAGGCTGCCTAGCATCCCTGT
-TTCCTGAAGTCAtgacttgggtgtcactgaccccactgctggtgccaggcatgatcatga
-gaccgaggtctggtcaagcagagtaagagtgataagcatagggatggacacaagaccaat
-cctggctgcagaaaatcattcctttactggaatcatggagacgagggagctccccgggtc
-agggatgctgagctgggaggacatgagcctggggctgccagagccttcttgtgaggaaag
-atcctggctgagaatgaagtcaacggggcagatggaggggctgagaggtggagctgacat
-catttgagcctctggatctaacctcacttgcctttacccttagactttccagttatgtga
-gtcaatttattccttAGGGCTAGAATTTCTATCCCTTATACCTGAGTCCTGGCATGGAAG
-AGGAAGGAAGGTAAGAAAGAAGGATGAATATTTAAGAACAGGTGTCTGAggctgggtatg
-gtggctcatgcctgtaatcccagcactttgggaggctgaggcaggtggatcacatgaggc
-caggagtttgagaccagcctggccaacatggtgaaaacccgtttctactaaaaatacaaa
-agttttccgggcgtggtggtaggcgtctgtaatcccattactcaggaggctgaggtagga
-gaatcacttgaaccaggaggcagagattgcagtgatctgagatcatgccactgcactcca
-gcctgggtgacagagtgagactctgtctcaaaaaaataaaataaaaTTACATAAAGAACA
-GGTGTCTGAGGATAACTCAAATCAGCTTCCTGCCCCCTTATAAAATGGGAGTAGAGAGGG
-ACTTGGGCCTTCAACCCACCCAGAGGAGTTCTGTCCCTGGGCCTCACAGCTTTGCCCTGT
-CTCCTCTCTAGCTTGCAGTCAGCCTAGAAACTACAATAGAAAAATAAATGATGTGGATAC
-AAAAATAAAATGCCTTTTCCTCACCTGAGTGCAGGAGAAGGGGCGGCATGTGCTGGGGAA
-TGCCTTCCTCACCCCATTCTCCTCTTTGaggacaaacatttattaggcacctgcttcatg
-ccaggctctattaagaagatgacatacatggtctcatttcctccttgccatagcccagcc
-aggaaggaatattatcatctccattttacagatgggaaaactgaggctttgatgatgtga
-agataactggtgccttgagaggctgagccactggaccaaagtgtcagagctggagcaggt
-ttgtccgactccaaagccctgcccaccacaccacactgcACACAGTAGAGGCTAAATAAA
-GGTCTGCTGGGCAAATGCTGCTTAAGGCGATTTGAGCTCTCTGGGCAGCAATCTGCCCCT
-AAAGATTTCCCATCATGCCTGAAATGCCACCATTAGCAACCATGTCCTTTGAGTCTTGAA
-GGGGAAGAGTGCTAATTCCCAGGAATGAGATCAAAGTCAGTCTGTGCTGGGTTTACTCAG
-GGATCGGCTGAGAGTGGGACTCAGGGCTGGGGCGAGCCAGGGGGATGAAGGGGTCCCATT
-CCCATTGGCTCAGTCTCATCCAGGAGAAAACCTTCTGAGGACAGAGGTGTATCCTGGCGG
-TAGGGCAGGTGGGCTCCTGGCTATGCCTGGGTGTTGGCTGATGACAACAGGGCAGACAGC
-ATGACACAGTGATGGGGGCAGGTGACAGAGTAGCTGTGGATCCTTTCTGACTCCATCCTC
-TGAAAGAAGCTATGAGGGCCCTGGTCTCCCAAACTCAGGCAGAGGCCTTATCTCCTCCCC
-TGCAGCTCCCCACCTACCACCACAGAGGCAGCATCACTGCTGGATGGGGAAGGGAGGGAG
-GCTAGGGGTTAGGGCTTGGAGGCAGAGAGGATCTGGACTTGGAGACAGATGTCCTGCCTA
-ACAGTCCCTGTAATTGAGCCTGGGGGAGTTGAGGTTACAGGGAGTCCTAAGGGAAGCCAC
-CCAGGTAGAGATCAGCTTCCTGGGACTTGAAGGAGCCTTGGAGGACATGAGCCTATAACA
-CAGACAGGGACCTAGTTCTAGACCCTTCTTCAGGGATGGTATCTGTTTTAACTGAAAGGT
-TATTTCCAGTTGTTTTTAGAGGTTGTTTGAGGCTGTCACTGTGGCCCTTGTAGCCAAAAA
-GGGTGAGTATAGCTGGGGTGGGGATGGGGTCGTAGGGCTCCTCCTTATGCCAGGGGAGCA
-CTAGCTTTGTCCAAGAGCATCTACAGTCCTGTGAGATGCTCTGGGACAAACCGAGCCCAT
-TTTCAAATaagtaaatttggagaaagctgcccactctagccccttcatgggtagtcacaa
-ggcacttggccatattaaaggctctgatcagtcctgcagtgaagagtgcctgttcacttt
-gacttaacctgctgtttccTTTTCTCATTGCTCATAGGTACTTTTAGAGACAAGCCATAG
-TTATTCCCTGTGACACATCCTCTAGGACATGCTGGAGGTGAAGGAGCATGTCCTTTTGGG
-TCTCCTAAAGACCCTGAGCTCCAAACATTGGAGCCTAGAAGTGGTGAAGTGGTAAAGCCT
-AGAAGTGGTGAAGTCTAAAGACCCTGAGATCTAGGGTCATTAGAACCTAGAAGTGGTGAA
-GTGTGAAGGGGAAATAATGATTAACCCACCCACTAAGGGGTGGATGCAGCCCCTTCAGAC
-TTGAAAAGAAAGTTCAAGGACATCTCAAGACTAGAAAATCTTGGAACAGGAGCTTAGAAT
-GGGAGATGGCCTTCTTGCCAATCCAAGGGAGAGAACCTGGGCCATCTGGGCAGCTTCCGA
-TGTGCAAATACATTCCCACCTGCCTGCAACCCCACCATTGGTCATGGGAATCAAGTTTGG
-TCTGTTCTCAGCCCATTCAAGGTACTGTGACCCTCAGGCAGGGAGCCCCTGAAGGGGGAG
-GGAGAGAAGAGGGGCGAGGACTACATCAGAGGGATGGGCCCCGAACACCCTCCATGTCAC
-AGACGGAGGGGAGTTGGGGGGCAGATGACCCTTCTGGACTTCTGGGTCAAGGAGGGCTGG
-CTCAGGAAGCCCAGGGTGTCAGGGAAGGCGGTGGCACAGTGTCTTGCATCTGGGTCCAGG
-TTGTCCAGGAGTGCCAAGTCCGAGCTTCTCCTGTGTGGTCCAGCCTCTGGCACAGCTGCT
-CGTTAGATGTCCAAAGGCCGTATCATCATGCGAGAGGCACGCAGTGAGTAGCTGGGGCCC
-TTGAAGTAGTGCCAGCGGATGCCGTCCATCTTGTACTTGTTGTCGGGAGCGTGGTAGTAG
-ACGCCGTTGAGGTTTGACAGGCCACAGGCGTCAAACCACCACCCTGGTGGAAGAGGGAGG
-ACAGGCGCTTGGTGGAGGTGGGAGCCCAGCCAGTGGCAAGAGGGCAGCCCCTGTGTCCCA
-AAGAGAACAAAGACTAATCGGGGCTGTTGCCTCCTCTGGGAAGCCAGCTggctggggatg
-gggctgggtgggagtgggggtggggTGGACAACAGACCCTCTGCTCAGCCGGGGCCTCTA
-GAGGGCAGCAAGGGGCTCTGGCCACTCCTCGAGCCCCCTTGCTCCTCCCGGCCTTCTCCC
-TGAGCCCTTGGCGTCCCTGTCTTCCTCCCTCACTGAACCTGTCTTTCCAGCTCCCCAACC
-TCCCCTCATCGCTCTGCTCACTGCTTTCTAGTGgtctctgtcactctctctgagtctctc
-actctccaggttcatctctttctctcttatggtctctgtgcgtgggtctgtctctgtgtg
-tcccattgtgttcatctttctctgatggtctttgtccctctctgcctttcgtgtctctgg
-ccctCCCTTCCTCTGGGCCCCCATCTTTCACATGCTGTGTTTGTCTCCCGGCCTCTCCTT
-GGGCTAAGTCTTTCTCCCCCATCTCCCTCTGTACTTCTCTGCCCCAGTATAGCTCTCCAT
-CTGCTGCTCAATGACTCTGACAGCCTTGGtgtctctctctttctccatctgtcctctgtg
-tctcagaaggtctctccccctgtctctgttcttcttactttgtctctgtctcCCATTCAC
-CCCACTTCCTGTTCTCTGACCTCTGTGCCTACCAAGGAACACTGCCTGAGCCACAGCTGG
-TGTGGAGCTGCCCCTCTGCCTCCCTCTGGTCTCCTGATCCTGGTTCGGCTTGCCTGGGGT
-TGGGACTGATAGGGTATAGGGTGCCTCCCCCCCGGGGCCCTGCACTCAGTGTTTCTTTAG
-CCTTGTCTCTGAGGAAAACTGGTGGTGCCAGCTTTAGGAGGAGGTGAGACCTGGAGGGGA
-CTTCAAGGACTCAATGGGGGAAGGCACCGAAGGGGCACAGCCAGGTGAGCTTATGGGTGG
-GCAAGGCCCAGACCTGCACCCATCCTCCTGACAGCACCTGGGCGCACAAGAACCTGGGGA
-GGGAATGGGAGTGTCAATCTGGGTGAGCCTGTGGGTGGGCGGAGCTTCACCCCACCCTGC
-ACCTACCTCCAGACATCACTTGGGCACACTTGCAGAGACAGTGGTCGTTGTCTGAGTCAA
-GGGTGCTAAAGCTGGTGTTCTGCAGGACCAGGCTGCTCTGGCGCCCTGCTGAGCCGCTGT
-ACCCGACCACAGAAAGCCTGGAGGCCACCCAGAGGTGGTGGTGGCAGAAGGGCCCAGAGT
-CAGGTTGGGGCTGTGTCGAGCAAGAACTTCCCCAGTGGCTTTGTCCCAGGCTGGGCTTCC
-CCTCCAGGTGTTCTTGGAGGGACAGCCCCAGCCTGGGTGGAGTGCTTGGGCTGTTTCCCT
-TCCTGGATTGCCTTCCCTGCCTGCTGCCTCCCAGGGACAAAGCACTTACTGTATGCCAGG
-CCTCCCCTATCTCACTGAACCTGAGTCTTGGAGAGAAGTGATAATGGTCACAATAATGAT
-AATAATGGCTAATACATATACAtttttttctttagagacagcaacttgctctgttgccag
-gctggagtgcagtggcacaatcacggctcattacaaccttgacctcttgggctcaagcaa
-tcctcccacctcagtctcctgagtaaatgggacaataggcacgggccaccatgcccagct
-aatgtttgtattttttgtaaaatacaaacatagggtctcactatgttgcccaggctggtc
-ttgaacacctgagctcaagcagtctgcctgccttggcctcccaaagcactgggattacag
-atgtgagccaccgtgcccggcAACGTTTCTTTTTCTTTCTTTTTTTTCTATTCTTTGCAT
-CTACTATGtgttcaaagtgctttgcataggttaactcattctcctttaatcctcacaaca
-ccctatttccattttacacatgcgaaaacagaaatcccaagagccaaagaaacctgctca
-agtctcagaatgaatgagggtcagagccacatgccagcctagtgtggcctgacttgggag
-tctacgtgcatttTGTTCCCCAGCTGATGATGATCTGGCAACCCCAGCCCCATCGCACCT
-CCTCACATTCACCCACCTCTTCCAAGAAGCCTTCCCTGACTACACCAGCCCCCATGGATC
-TGGGCTCCAGGGCACCCCAGCTCTGCAGCTTCGACATCTGCTGCCAGCCAGGTGAGGATT
-TCTATTTCTTTGCCAGGCTCTGTGGCCTTGGTGGGCATGTCCAAGCCTgcctggtgatga
-agaccatgagatctgggggcagaaagcctggattcaaattccagctctaccacttagagc
-tgcatggccttggaggattggctcaccccactgagcctcagtttcttcatctgttccagt
-ggtaatgatagtgaaattagcagtgctgccctcgtttattattgatttggtgatgtcagt
-gtgtgaagtgtgcagagcagtgtcacggggtgagtgctcaacattcagtgcttgttatta
-ttTGGCCCTTGGCAGATGGCTGGGCCTGGTTGGAGAGAATGCGGGGTGTTTGTATGGCAG
-GGTTGGGGGAGGCTGCACTGGCAGCTGAAGTAGGGAGCCAATTTGGGAGCAATTAAGAAG
-GTCCTGCTGAggctgggtagggtggctcacgcctgtaatccccgcactttgggaggctga
-ggcaggctgattgcttgagcccaggagttcgagatcagcctgggcaacatagggaaaccc
-tgtttctataaaaaatacaaaaattagctgggcatggtggtgcatgcctgtaattccagc
-tacttgggaggctgaggtgggaaggtcactggtcactggagcctgggaggtctgggaggt
-cagggctgcagtgagctgtgatcatgccactgcactccagcctgggcaacagagtaagcc
-ctgtctcaaaaaaaaaaaaaaaaaaaaagaaGGTCTTGCTGGGTGGAGGCAAGTGGGTGG
-CAGATGTGGCCAGGGCAGCTCAAGGAAGCTCTTGTACCCTCAGGGCAGGGCCTGAGAAAT
-TCCCCAGTGGGAATTCAGAGGGAATACAGAGCCTGGGTATATGGTTGGCTCAGTCCCCAC
-ACCTCCAGTCATAGATTGTGTCTGTCGCCAGGGAAATGAGACTTAATTATTCTCTGTGTA
-GAAAAGACTTGGGAGGCTCCCTCAGCTTCCTTTTAGGCACTTACTATGTCTGGGGATGGG
-AACAGCCGTGCTCCCAGAAAGCAGTCCAGTCAAGGGTGTGAAAGGCTGCCACGAGACAGT
-GATCGTAAtattgtttgctgagcgtttactacatgccaggcactgtgttaatgcttcatg
-tgcagtatctcattcaggcctcatcacaccctttttgaggtaggtatgcctaaagcaccc
-attctacagatgaaaccgtgaagggacttgctcagggtcactcagggaagtagggatgga
-gtcgggatttaagccTTTGCTTTAGTGGCCAGTGGCTTAAATGGGACTCAGCATAGTGTT
-GTAGCTACTCACTGGTCAGGTGTGAGGAGTAGGGGGACATCCAGGGAATTTTTCATTCAG
-CTCTGGACCTTGCATTATCAGGTTGGTATGGATCCCATAAGGAGGGATGTCAGaacctgg
-gcaacatagggaaaccctgtttctataaaaaatacaaaaatcagctgggcatggtagtgc
-atgcctgtaatcccagctacttgggaggctgaggtgggaaggtcactggagcctgggagg
-tctgggaggtcaaggctacagtgagctgtgatcatgccactgcactccagcctgggcaac
-agagtgagaccctgcctcaaaaaaGCCTTTGCTTTGGTGGCCAGTGGCTTAAATGGGACT
-CAGCTGGAGGAAACAGTGGGGGCATATCACTGAGAAGTTCCCAGAAGTGGAATCAGGCAT
-AAAGTTCAGGAGGACAGAGAGTCATTCAGAGATTccttgtggggaagcgaccttcccacc
-agtggaggtattccagcacggctggatgatgattgcaactatggagggaatctatgaaga
-accagatgacacgtgagattttttgcagccctgtgagtgtgaatcCTGGTTCAGAGATAG
-CCAGGACCCAGGCTTATCTAAAAGATCCTTAAATTTCTCTgagaggcaatatcatgttgt
-ggagacatcatgagttttgacagcagggagatctgagttcaaattccagctcatttaact
-tgtaactttgggcaggatacttaaacttggcatctcagtttccatattactaaagtaggt
-acagtaatgcctacttcaaagtgttgtggggaagattaaatggaataatggtgcctggaa
-cacagtaggtgctcaataaatgctagttcCTTTTCCCAAATATACCAAGAACCAGGCTGA
-GGAAGGGGTGAGAAACCTTGATgatcttacaagatcgtcatgtttaagctcatcctgcta
-ttgaagaagcagaagctcagagaagccagactgacttgtccaagttcccaaagcaagctg
-gagcaaggccacaatgagtgcaggaatttcaacttctggcccagggacccttccacccag
-ccCCAGGGCATAGGACAGGCTGGGCAAGTCACCTCCTTTTGCTTCTGGGTCTCTGTAAAA
-AGGCTGACTTGGGGTGACTGACCTTGGAAGACCCCTTCTTGCTCCTCGGATGGCAGCACC
-AATGACATTCTTTCCACTCCACCCAGTGGCTAGGACATGCTGAGTGCTAACCAGCCACCT
-CCAGATCCCATGACGTGCACCCAAATGGGGGACAGATGGTAGGAACAGGAGACACCCAGA
-GACTGACCGTTGGAGCAGACTCTGTAGACACTAGCCTGGGGACCCCAGCCCGCCCACTAG
-CTGAAGACCCCAGCCCCCACAACGGCCTGGGCCCCGAACCCACCTGTATAGCTGGTTCTC
-ACTGCCCAGGTGGAAATGTTCGTACTGGGCATAGGCCTCGTGGCCTTCCCAGTCTTGCAG
-CTCCACACGCAGAGAGTAGGCTGCCCTTCTGGTGAGCTGGTGCACCACTTCATTGCCCAG
-CCAGTGCTCCCCAGCTGGGTCTCCGAAGCCCTATAGGGAGGGGAGCGTGGGGTGAGACTC
-ATGCTGAGGAGGAGGCCATGTCCCTGGCTGAGGAGCTGGGCTGGGCCAGGCTCCAGGGCT
-ACTTATACAAAACCACTGTGCTTAATGATCGAGTTCATAAGTACAGTGTAGGCAGGACTG
-GGAGTAGGAGCCCTCCACCTGCTAGAGGGAAAAGACTAAGGCTTTTGTAAGTGTAAAAGC
-CTGTTAAAAGTTATTGAAATCAcattcctctgaagttcaagaacaggaaaaagtaatatt
-tggtgactacctttggtggagtattgactgggagggggcacaaagtgggcttctggggtg
-ctgggagtgttgtacatctagcactgaatggtggtcacgtggttaaatacatatctaaag
-gctcactgagccttacactttatttgtgcgcttagacacatgtacgttaaacctcaacaa
-aaaTTAAATAAAATATTTCAATCAGCTACATAAATAGTAGAGCAAACTTTGTTCAGTGAC
-AGCGCAGCCACTGCAAGATTTCAGCAACACAGAAATGTAAAACTGAGAGTGTGGGGAATG
-TCATGTCCCAATGCCCTTGGACAGAACAAGAATTCAGCACCAAGGACAGGGGCACACCCA
-AGGCCCGCTCCCCAATTTAGTCACGATGCAATGCGGGTTAGCCTGATGGTTAATATTCAG
-GGTTCTTTTGTGTATTTCTGCACCTGGACACCCTATTCCTCCTTGCCATTTTAATGGTTG
-TTTAAAGCCCAATTAGTTCAAAACACTCATAACTTAATTTGGTATTTATTTTTAAGTATT
-CCTTAAATGAACAGCAAGCAGACGCAAATAATAGAACTGCTGTATCACTTTGTGGGTATC
-TTTTTCTATTTCTTTGGCTTTGAAAACTTTAAGAGCTTTTAAGTATTTTAAGTCAGCTTG
-GCAAAAAATCCTTTATTCAAAACCTAATTAAAAAATTGGAAAACAATCGGGCTTCTCATC
-TGATAAAATACATGTGATCTTTGGGCCTGCAATTCCTCGTTAATGAATCTCTCCTGCAGA
-TATGATCATAGACGTATGAAAAGACAAGAAACTTCATTAAAGCAACGCAGTCAGGGTTGA
-CTGGGGGGATTTTTATTCTGTCTCCTCCTTTGTATTCtttaaaaaattagaaatgtatat
-gtatttttttaaaaaaaattaaaacaaaaataaaGCTAAACTTTTTTTCTTAGAACATAT
-GTCAGAACTTTCAGAAAGAACATTCAAATTCAGGTGATGGGGTCCCATAAAGCAGATGTG
-CACTGTCAGCTTTAGATGAGTTGATTTTTTCTGGGGGAGGAATGAGGGCAAAGCAGTCCC
-CTTCCAACAGCCCAGCCCCAGCCCCAGGTTTCAGAGCAGAATGGCCCCTCCCCAAGGCAG
-CAGGGCTACCTGTTTGTAATCCTTCCAGTTCCGCTGAAAATTCACGGTGCCATTCTCACG
-GCGCTGGATGAGGGTCCACCTGCCTCCACTGCTCTGCAGGTCACAGAACACCTGGAGGGG
-GTGGGCAAGGCACAGCTGGGAGCCCTTGGAGGTAGCCAGAGGCCAGGCCTGTGCTAGCCC
-AAATGTGGCTAAGCAGACAGACCCCCACAGAGCAACAGGTgagcctgggggtcctgggca
-tcagaaagatccaggcttaaattccccacccattgtcatcatttttctaaagtggtgggt
-aaggaatgacctctcagagccttcctctcatttgtaaaatggagattcataccttaacct
-ctttgtgcctcagtctctcatctaccaactggggttgtgaaaattaaacgagatgagtca
-cgtaaagtgtttagaacagtgcctggcagtactaggtaaacggaagctcGACCTCTTTTT
-GTTGAAAGGAGAGGTTAGCAGGTGTGTGAGAAGTGTAAAAGACAACCTGGAGACAAACAG
-AGGCATTCTCCTTAGTATATTAAGAGGGGGTGAAAGGAAATAGAGCAATGgtaatactag
-caatttgagggccgaggagggaggatcgcttgagctcaggagtttcagaccagcctggga
-aacacagggagactttgtccctacaaaatgtttaaaaatattagccaggccatggtggca
-tgtgtctgtggtcccagctacttgggaggctgaggcaggaggatcactcgagcccaggag
-gtcaaggctgcagtgagctgtgatcatgccattgcactccagcctgggcaccagagcaag
-accctgtctcaaaaaaaaaaaGGGAATTATGAAGTAGGAATCTGCTAGTTGTTTCCcttc
-taggcctggctctcagaccctccctcctgacatccgtgctcttctctgtcacccttctta
-tcggatgacttgaccttaaattttaggacaaccttgggagccactgattgaaaatggtgg
-cacctctattagccctggtttctaatttcccacatggagcagaaccccaactcctgcctt
-caactggactatatgtaaactagaaagaaacgtctttgggctaaggccctggaattttgg
-gggttgtttgtaatatcagctatcatcatcttaaccaacacTGAACTATTTTGTGCTGTT
-CCAGTTAAAGCACCTCTGAAGTGATGCTGGTTAAGGATGCACTTCCAACTTTGGGAACTT
-CTGCTTATCCCCACAATCTGATCCCTGACTGCTGGGAAGTCAAAGCCACCCCTACACCTC
-TGGTATTTCAGATACTGGACAAAGCCTGATCCCGATGGGGTGCGGGGTGTCTGTTTGGGA
-AGCCCTTGGCTCAGCACCCTCTAACAGCCACAGTTCCCAGGGAGCCCCCTAACCTTCCTG
-GGCTTCGTTGCATTGGACACCTGGATGGTGTAGACACCACTGGCACTGGCCCCAGAGCGC
-TGGATCTCTGCACAGTCCTGGAACACCTGCTCACCTGCCATTATGAAGGCTGCAAAGGGA
-CAACACAAAAGTCAGTTGGAGGTGGGCAAGGAAAGAGAGAAGGGGCCAAGTGGGCATGCC
-TGCCTGCTTTGTGCCAGGTTCTGGGTTGGGAGGTGCTGGGGACAGGGAGATGAGTCAGAC
-CTgggaagatttcgtagaggaggtgacagtaagctggaacctgtgtaatgagcaggagtt
-gcccagtggagaaggggaaggtgttccaggcggaagaaacagcatatgcaaaggccccaa
-ggtaggaagggccctagtgtgtgcagaggacagGGCATGGGGAGGGGAACTAAGGCTGAG
-GCCAAGGAGAGGAAATGACTCACACCGTGAGAGAGGAGTTGAGACCAGGGAGGCTGCTTG
-CTGTATGATGCAACTGAGAGGGTAGAACAAGGCTGGCACAGAGAAGGTGGGGAAGGAAAA
-GGAGAGACGAAGCTGAGATTTCAGCAGGGCCAAGTCAGCCGTGAGTGCCAGGCTGCGGAG
-CCCAGATTCTCTGGGCTGagaaagagcactctgtccagagtgtggaggggggcctggagg
-ggatgagactcaaagctgggaggccagagaggaggctgctagagttttctgggagagagt
-tactggggcctgaacTCCAGTGAGGCActtcccatttcacagaccaggaaactgaggccc
-aagagtgaggcaactggcccaagggcacacagccaggtaaggcagaacCTTCCTTCTTTG
-GAGCTCCCTTGGGTGGGAAGCTGTGGGCTCCCCTTCATAGCCCACCCTTTTGGCTGTATC
-TCCCTGCTGCCCTGGGCATATGCTCCCTTATTCTGTCCTCCCTTGAAGCTGACTGCTGGC
-CTTAAAGGGCCCCTGTTTCTTCCCTCTGGACTACATGAGATCGGGATAGTATTAATGACT
-AAAACCTACCAGGGGTTTCTAGGCCTGGCCTGGAAAAAGTGACTGTTGACAAACAAAGTG
-CAGAGATTTAAAATCTCCTCTGTCTCAATTAGTGGAATCCAGTTAGAGGTTTGAACTATG
-ATTCTACCAGAATCCAATCTCTCTGGGTAGCCAGGTACCCAGGATGGGGCTAAAATTCCA
-GATGGATAGGTTGTCAACACCAGTGAGGAACCAGGAGGCTACCACAGGGTGGGACTTCCT
-GGTTTGGCTTTACATCTGAACTTCAGGGATCCCAGATCCTGGATCTGGGGCACTTGTCCA
-GAGAAGGCTATTGCTCTCATGTCACAAATGAGATGACTAAGACCCCCAAATCAATTCCAG
-TTCACTCACAAGCATTTCCTGGGCAGTGGAGACCCCTGCCCCACCTGTTGGCACCCCCTC
-AGCTCCCCACAGGGAATTGGAGTCCAGCCAAGCATGAGGAGGCTGTTGGCCTCAAGGTGA
-GCAGGGATGGGCTGAACCTCACCCAGTAAGGCAAGGACAGAGCCAGGGTTGGCCTGAGAT
-TTCCAGCCACCCTTTCCAAGGCTCTGCTCACTGTTATTTTCCTTAGTCTacaacaatatc
-aataacaataacaacaataatatcaacaCAAAAAGTGAAATACTCACCATGTATTGTAGT
-GTTTCCAAGGTGTCATGTAATGCCAGGGGTAGTTTGGGGCCAGGAAAAATATTTTTGGGA
-GGCATAAGAATAGGATGGACTGATATTGATATGCAACAGTTTGATCTGGTCCTCCTCTGA
-ATATCTGGGCTGGTAATTTGTACCAGTTTCCCTCGCTTTtgtgcataggcactgtgctga
-acccttttgtatgcatgaactcatccgattctctgtgcaagaactctatgagattattat
-tcccgttttacaagtaagaaaaattgaggctctgagaagttaaataaatgacttgtatga
-agttccagtgctaattaataagtgaaggagccagggcttgaactccggcccatctgactg
-caaagccagtgcccttcctcctacacATCTTCCTTTGGATTTCCACCACTGAGCATATGT
-AAGGTTGGGCAAACAGCCTGCATGAACAATCGCTGCTTTTATATCATGCACAAGTTTGGT
-CTTTTCTGCCTGTGCCCATGTCCTTGTAACCTTCTGAACCAAACTCCCCAGTGCCTGGGA
-ACATCAGAAGACTTGACTCTCTTCTCCTTTCACTAGCCTCCACCTGACTGGGACAAAGCC
-ATGCAGAGAGCTAGTGCTCCCTTCCTGCTAGACTTCAAGGATGCCTGGTTCCTGTGCCCC
-ATCTCCATCCAGCCCTCTCTTCTACACCTGGTGACTGAGCCTCTCCTTCAGTTTCTCCAT
-CCAGAAGGGGGTGAAAGCAACTGCCTAGTGTCCTTCCCTGGTGATAGTGGAGCACGGGGG
-ACAGGGTGTTTGGGCAAAAGGTGCCCAAGGTGAGGTGCCCAACACAACCTCCTACTCAGA
-CGATTGAGCAGACATTCAGCCTCATCTGGGGACTGGGTTACCAGTGGGTTAGTGGGAGGC
-ATTGGGCCCAGGCCCTGTGCCTTGGGCTGAGCTACAAGAAACCCACACATGGGATGAATT
-CAGGCAGCTCAAGGCCAGGTCTGTGCATACGCCAGTAATAGGTTCAGGTTAATCCACATG
-TCGCGATTTGGAAGGTGTCTACTTTTCCTACCTGTAGCTTCCTTAGGCCTCAAACCCCTA
-CTCAGCTGGGTCTGCCAGACTGAGATGGAGCCAGGGTGGAATCTTCTGCCCTCAAATCCC
-TGTCAGCCCTGGTGGTGCCGGGAGCGCCATCACTATTGGGTCTTAAAGGCTTTCCAGCCT
-TCCACTATGGATCCAGGAGCAGCAGTAGCCCCTTTGGTCTTTCTCTCTCATCAGGACATC
-TCCACTCATGGTTCCAGTCAGAGCTTCTTGAAAGTAGTCCCACTCTGTTCAAAAGCCTCC
-CATGCCCCCTGCTAGCCTCAGGCTAAGAGCCCTTCTCCTTCGCACAGCCTTTGGACCTGT
-CTATTTTTATGGTCTGGAAACTTCAGGAACACTGATAGCTGAGCATCTGGCACATATTAT
-GCACTCAAAAACCATGTATTTCTTTCTCCTTCCCTTTGGGACCCGTAAACCAGGGactgg
-acatttttgcaagagacaggagctgtgactgtgcattcactgctgtatccccagcaccca
-gcactgggcctgccacacagtaagtgcttagtaaatgtttgttgactgagtgaTTGCAGC
-TGGGGCCAAGAATGCCTTGGACACCCCAAGTAGGCCGTGTTAGAAGGAGTCAGTGAGAGC
-CTGGGAGCCCAGCCCAGAATTGTTTTCTTGACCCAGAAGCCAGGGCCAGGGATGCCTCTT
-CACTTCTGTTTGGCCCTCTTGGGCTTAGGGGCAGGGGCATTAAGATGAgagaggtccttg
-gggtgcattgagtctaacctcccagttcctcccattctacagccaggaaaactgaggccc
-agggaggggtaggacaagcccaagAAAGTGGGGCTGGAGAATGAATCCTGGAGACCAAAC
-TTGTCAGTCTGGATTGCTGTTGCCCTCATCCTCGCCTCCAAAACCCatgggtaaactgag
-gccaagagaggggcaggggcatgcccaaggtcacccatggaatcaggggacagggcctgg
-attgggaTTGTTGTTGACGCCATTATTACTGTTTATTGTTGTTTCTATTTCACAGATGGT
-CGGGGAGGGTGGGGCCCGCAATGGCTCCCAGGCGCCCAGAGACCCTGGAGGGTGAGCAGG
-GTCTCCCCTCCCCTCTCCTGCCCGTCTTTAGCCACACTGGGGCGCACACCGCTCACTCAC
-CCGGGGCCGAGGCGTTAGCCCTTTCTTGCACCAGGTGCCGCAACAACACCAGCAGCTGGC
-GCAGGCTGTGCTGCTGGTCCTGCAGGAGGCTGGAGTTGTGCCTGACACCGCGCAGGCCGC
-GCTCGATGTTGGTGAGGGCGGCGCTCTGGCGGCTCAGCGTGTTCAGCAGCTTCGCCTTCT
-TGCTGAGGATGCTGGCCAGCTCCTCCTGCTGCTTGGTCTCCAGGGCCTGCAACCGCTTCT
-CGAGCGCGCTGCGGGGTAGGGGGCGCACAGAGGTGAGCCTGGCATCCTCGCGAAGCACGC
-ACCCCCGCGCGCCTCCCCGGCCCTGGAGTCCCTGCAGCCCGACGATGAGACTCAAGTGTG
-GTGGAACGTCCTGTGCCCACTGTAGGCACAGATTGAGGAGGGGAGAAAAGAGATACCCGG
-CCCTGGAGTAATATAGATTGAGGTTTAGTGGAAGAAAGAGGTGGTGTGGGAGGGACACCA
-GCAACTGGGTAGCTATTATCAAATCCCAACTGTGCTTGCTTTTTGACCCAGCAGTCTACT
-CTCAGGAGTTATCCTCTAGGGAGCATGGTCAAGAATGGCCCTGGGGACTTGCTTGTAATA
-GAAAAACAAACTAACCAACCAACCAAAAAAGATATAGCCTAGATGCCCAAAAGCCAGGAC
-TGGCTGAATCCGTTGCGTTTTGGCGTCCCTGGAAATGTTCCGCAGTCATGAAGGAGGAGG
-CATTTGCACAGAATTGGAAAGATGCCCAGGACTTGGGGCACATCAAGCCTAACCCCATGT
-GTGGCAAGAGAAGAAAGAAAGTATTAATGTAAATAAAGAGAAATGGGGTGAACATATAGG
-AGAAGGCTGGAAAGACCGCAGTGGTGCCTGTGTTTGGGAAGAATATGAAAGAAATTCCCT
-CAAGTGCTGTGACTTCTGCAGAGCAGGTTTGAGTGGATGAAGATGGAGAGGAGGAAGATG
-GGGGCAGGATGGAGGGCCCAACTTTCACTTTTATTTTGTACAGGTTCCTGTTGTCCGATG
-ATATTATAATAATCAAGAGACATTTTTTGTAATGGATTTAGAAGCAAAGAGGAGTTTTTC
-AAAAGAAAGCCTTAGACTCAGCTCTTTCTTTTTGGACATTTTATCCTCCagatttactca
-catgtgtgtgaaatgagatatggaaatgttactcatcgtatcactggttggattagtaaa
-aggctggaagcaacctcaatatccattaactggggactggaggaataaaagcagggacca
-catatggtggagcattataaaggtggagaaaaaaatgagcaagcatgtcATGCAGTTATA
-GAATCTTTCCAAGGTAACTGAATAATAATTTGTAGAAACAAGGTATAAACAAGTAGTAGG
-CTACATTTGGGCTTAAAAAGGATAAAAATGGGAATGTAcagatgctccaaaatgtatgat
-ggggctatgtcctaataaagccatcgtaagttgaaaatgtcctaagtcaaaaactcattt
-aatacacctaacctgctgaacatcctagcttagcctagaccatcttaaacatgcttagaa
-cacttacattagcctgtgattgggcacgatcatctagcacaaaacctattttataacaaa
-atgttgagtagcttatgtaaggtattgatattgtactgaaagagaaaaaccgaatggttg
-tatgggtactcaaagtacggtttctactgcatgtgtatcactttcataccactgttaagt
-cacaaaattgtaagcccaaccattgtaagttagcaatcttctgTATGTATGTGTTTGCAT
-ATTCATAAGAAACCCTGGAATGTCAGCTTAtaggatgtcagcttcacgaggacaggggct
-tttgtctctttgttcacttctgtatccacagtgtctacaatagtgcctgacacatgaaaa
-gagtttgaaaaataattgttggttgaatgaatGGAAGGATACACAAGAAACTAGGAACAG
-TGGCTACCTCTGGCTTGGGTGGGTGGCTGAGAGACAGGGCTGGGAGGGAGACATTTTACT
-GTATATCCACTTGTGCCAACTCATTCTGCAGACTAAGAAATTGAGTCCAGCTAGGGCAGA
-AGAAATTTCCTCTGGACTCCCAATTATGCTGCAGGAAAAGAGAGAATTGGGGCACACTGA
-AATTCTAGAATTCCTGCCCTGTCTTCATGGGCCAAGAGTTTACCGATGACATCCTCCATC
-CTCACTGATTTCTAGACACCTAGTGTTAATTTAGAGTCATTGAAAGTGTCCCAGTCCTTG
-CCACTGAGACCTTGGGTTGGGAGAATAAGAAGATGGGCAGATTGTCATTAATTGCACCCA
-GATTAGAGAGAGCTGGGGGATCTTATGGCCTTATCCTGAACCGGCATGTGAACAACAACA
-TCTTGCCTGATTCACAGGCCTGTGGCTTGTTCAGTGGGTAGATTTTGCCTTCTCCAGAAC
-CCTGACTTTGGCAGCTTTTTTTCTTCACTCAGCTTGAAACTGAGGTGAAATCAGCCTTAG
-CTGCCAGATTTTTCTGCTTTATCTAAACCTCATGACCGCttttttttttttttttttgta
-atttaaaGGGTGTTCCCCTGATGCCCATTTGCTTATAAATGCAAAGACTCTCTGATAGTG
-TGGACAAGAACCTGGTAACTGTGGTTGTTTCTGGGAAAGGAATCGTAGATAGCACCAGAT
-TTATTTATTTGCAAAGAAGTAAAGCCAATAAAGTTTACCggatgaatagtatggtgggtg
-aattagatctcaataaagctgttaaaaTTTACGAGATAAATAaaagaaggaggaaggaag
-gaaggaaggaaggaaagggaaagaaagaaTCAGGGTGTCCTGGGCCCCAGGAAGATGCCT
-ATCCCCTGTCCCACCCAGTGCAGGGGCCAGGCAATGTGTTTGCCTGGCTCCTAGcccagc
-cccgtatccactctcatttccagcctcagtctagactccaaccctggtttcagtccttcc
-ccagcaggggctattcccagctctagtttcagccctaactccCAGGATACCTccttgccc
-caatcctaatccaagctcctaggtctggctgcaggccctatcccagacaccagcccacgt
-ccagcttccggtcctggctccagccccagtcctagccctggctctggtgcctgccctagg
-tcctaaacttgactccagccccagcccctgtcctagtcTGGTGCCAGGTGCCACACCCAC
-CTGTTTTGGCCCTGAAGCTGCTGGAGCTTCTGCCTCTGTAGCAGCAGCTGGTTCTCCAGC
-TTGTTGGTGGACAGAAAGGTCTCTGGCATCTGGGCATCCATTCTTGATGTCTGGTTCAGG
-AGCTGCCCCAGCAAGCAGAAGCAGGTAGGGGGCTGCGTAAGCGCTACAGGAGCCCTGCCC
-AACCACCCACCTGCCCACAGGCCCTGCCACTCCAGAAACTTACCCATTTCCACTCTCCCA
-GTCGTAGTTCCTGTGGTTACTCACTCACAGGCCCTGACTTAAGCTTATTacctgcttcct
-aaatttgcctttctccatcactgcaatggcagctccattctccctgatgcttaggcccca
-ggagctgtcaaccctgtcccccacatccaactcatctgcaggtcctgtcagccttgcctt
-ccaggtggcccctgaccacctctctcctgctctgtggccctcactctggccctggactgc
-tccctcattgcttgcaatctattctctactcagtagcctggggctgcctcttaaaacatg
-tttgctctgttcaaaagcttcctgtggctcccatctcatgtagcggaaatgccccagttc
-tcaccatggcctgcaaggccctatggtgtgatctgtccctatcacttctccagctccttg
-cctgccactctcctcctggtcactccagcatagtggtctcctgatgttcttgaacctgcc
-agcacgtccatcctccctccgggcctttgcacatgctgcatcccttgtctggagcactct
-ctgcagtaagcctggctgcagccctaccttctccatggcccttcctggccttgctgtatg
-agcttgcagctctcatccccccccaccactcccaatgcaccccctctcttgctctctctt
-ccatgctattttctccttagcgctgtcactggctaacatatgcagacatgtgttgcttaa
-tgacggaaagatgttgtaagaaagtcgtcatcatgcaatttcgtcattgtgcaaacatca
-tagtgtgtacttacacaaatctagatggtatagccgcctgcatacctaggctatatgaga
-cagcctattgctcctaagctacaaatccatacagcatgtgactgcacccaatactgtagg
-cagttataacacagtgggaagtatttgtgtatgcatatctaaacacagaaaaggtacaat
-aaaaacagcatacgatactcttatgggactgctgttgtctatgtggcaagttgttgactg
-gaacattaagcagtgcataaccatatatgtcacttatcttttcattttcaggggaagctt
-cacaggagtaggaatgtatgcctgctttgtttcctgctgtatactagacaccagtcttct
-caagcagtgcctggcacaCGGGGGATCAAACAAACAAATGGGCACAAACTTGTGTCTATT
-TGTTATTCACTTTTTCATCCACTGACTTCCCTACCCTTCATTTATTCACTAGTTCCTTCC
-CTGCTCTTTGCTGCTCAGATACCTCTTCTCTCCAAGTCCTTGGCCCCAGAGGCCCAGTGA
-Attgtttcttatccatcttcccctggcacattgtaagtcctctgagggcaagggagctgt
-gctactatacccctcattccagtgcccagcacagacccaggcactgaagttacagaggca
-gaaaagccaagcccagcatccaccccccagggctcatagcttggagagagatagttttat
-gacaagttcatcagggaggagggacccggggggctacaggcccagaggaggccttgaccc
-tactcagggtcagagatcaaggtaagatgactggggCTACGAACCAGCCTGGCCAGCCAC
-AGGCCCTCAGTGCCCACTCAGTCACCCTCTGTTACCTGAGCCTCCATGTCGGTCAGCTTG
-CGGATCTGGGCAGTGGTCTGGTTCAGGAGGCTGGTGCCCAGCTCTAGCATGGGGGCCGTC
-TGATTCTGGGCCATTTGCTGCTGGACCTGCTCCAGCTTCGACCTCAAGATCGTCTTGATG
-GCCCTCTCTAGCTGTGGGAGACCATGGGCTGGGGTCACGGGGGAGGGGCGGGGGAAGCCC
-CCTGTCCCTCCCACGTGTCACCATGGGAGGGCACTGAGCAGCCACTTGAGGCCTCCCTGG
-CTCAGAACATGCCGGGccaggtcaggccaccattacgtcttgcctggactatcccagtag
-atttttccctgggagggatttatatgcctgttttgtctgcctctctgcttccatctttgt
-cccctgcacagtccatcccccactaggcagccagagggatcctgctaaacctaagtcaag
-tcacactcctcctttgctcaaaatctttccagggttcctatctcacgcagaggaaaagcc
-atgactgcaggttcctccgtgactgggcctgccaccacactctcattcctctcctattcc
-cctctccctcactcacttcaatcccgatgcaatggctccatgacatccctctaacgaagc
-aagcatgtgcccacagctgttccctcactgttccctctggaatcctcccccAACCCTGAT
-CCGCATCTGCGTGGCACAcctcctcatgctgtttcagctttcttcataccacttatcacc
-acctgactttttaaaatcactatctctctttttatctgtctgttgtctgtttctctctct
-agaatgtcaattccatgaagccagggacttggttttgctcactgccttgtttctatgttt
-agcacaatgcatggtgcacagtgagtgctcataaatgcgcgttcaatgaattgatGAAAA
-AGGGGAAACAGCAAGGGTCAGAGCACAGCGCCCAATCACATGCCCCTTCACCAGCTTCCT
-CAGGGTGAGTCAGCCAGCAGGGAGTGGGAATGCATCTCTCCCTTGTACAAAGAGTTTGCA
-GGTCCAttggccaagctgtgttttctatcttcagatcccctctatctgccaaatggggct
-ggactggccagtctccaagggttctcccagctctgatgttctgggatcccaCATGCAAAT
-GTTCATTTCTTTGACAGGGCTGCTCTCTTTCCCAAGGGCAGGAGAGCTGGTCTGGCATGA
-CACCAGTATGCTGTTGTAAAGGTGAACAGTGTGTTCTCAGGGCTCGGTGCCTGCAGGCAG
-AGAGCCAGCTCCCCTCCACCATTGCCTCTCCATTCGGCACACATGCTGGCCTCTCACCAT
-GCCCCCCACCCCTGTCCCTGGCTCCTTCCCTTGCCCTCTCACTCAGTCTTTCAGAAGCCA
-GCTGGACAGCTCTCAGGGTCCTTGGGAAGATGGGTGCTCCCCAGGAGAGGTGGTGACCTT
-GGCTCGGGCCAGGCTCCAGCCACTTCCTCCTTCATCTCTTCTCCCTTCTTCCATCTTGAC
-TGTTCACTCCCATCCCTTCCTCACCCTGGAGTGTTTCAAAGGGAGCAAGTTCCATTATCA
-CATCCTGGAGCGGGTGCTTGTGGGCGGTAGTAGTACTGGTTAGAGCTgtgtttctccaag
-tgtggttcttccgtcagcatcagctgagctcattaaaaatgtgaatttccaggtcccacc
-gcagacctcctgaaccagaaactcttaatggtgcccagccaactgtggttaacaacaccc
-ctggctgagtcagatgcctgctcaagtgtgagagcccttgATGCAGAGTAGCAGCAGGGA
-CTGAAGACCAGAGAGACCCCCCTCCTTCTTTCCCTGCATCATCAGCCCACCCCCTCCCTG
-CAGCACACAAACATGCGCTAACAGCTTCCATCTAAAAACTAACTCCACAGCCTCTCTGGC
-TGCTTCTCCAGTTTCTCTGATCTCATCAACACAAAACTTCTACAAGTTGTCTCCATTTTC
-TCACCTTCATACCCACCCTCACTTAAAAAACAACAACAACAACATAACGTTAATAATAAA
-ATGATGTTACGTTTCACACATACAAAAAAGCATAGAggccaggtgcggtggctcacacct
-ataatcccagtactttggaaggctaaggagagtggatcatttgagcccaggagtttgaga
-ccagcctgggcaacatggtgaaactccatctctactaaaaatacaaaaattagccagcca
-tggtggcataagcctgtggtcttagctacccaggagactgaggcaggaggatcgctggag
-cctgggaggtggaggttgcggtgagctgagatgcaccactgcactccagcctgggtaaca
-gagtgagaccgtgtctcaaaaaaaaaaaaaaaGTATAGAGAATAAATATAGCCCATAGTG
-CTCATCCTCCTGTATACCTCCAGTCATGTCTCTCCATCCTGGGAGGTCCCTTTGCCTTTT
-GGCgtctcactgttgcccaggctggagtgcagtgatgtgatcacggctcactgcagcctg
-aaactactggcttcaaacaatcctcccacctcccaaatagctgggacgacaggcgagcac
-caccacgcgcagttCCCCCCTTCGCTCTTTAATTCACCTTGTCATAGATAGCCCTCCTTG
-ACACTGCCCTCAAGGGACActccatcttgcttgacatctcaggagcaatcacctggatgg
-ccactccctgttgctggacgacttccccccaatcctggtttcctcctagcccctaaccac
-ccactctctgactcctcctttacagactcctacacggcagggcccccatggcccagtcct
-gggtccttgtctctatgtacattcactctctaggtcaggggtccttaatgaagaagccac
-aggctccatgaacttgagtgagaaaaaaagatcacattttttgtccactaatctgcaatt
-aaaatttggcatttccttcaattatgagcctaggtcacaaaccacagccatactagcagg
-tcctgagagtcattaccaatagaaatcccaaatattttcatatcacaacacactcttacg
-gtatcttaaaacattgtttttactcaccgggactttggaattatagacatcacacccacc
-actggataatgctatgcctgatcacagattttatttttcatattttgcttatgatttcca
-tattactgagtgttcttatgctttgattttatgcatttctgagaaaggattattaagctt
-caccaggaccagatgccaagaggTCTGAGGATCCAAATGCATCAGGGCCCTGCCCCAGGG
-GCTGAGATCGGTCTTTGGACTTCCACATCCctctgtgctaatggagccatcaccatctcc
-cacccagacttctcccctgcatgtccccaactcgccatctctgcatggtttccaatgagc
-atctcaagcccagtgtgaaactcttcattcctcagctcccatcgcccctgtccctgtaac
-tcccaccccatgcttcgaaatctttcccatctcaggaaatggctccacccagttctgaag
-ccccaaacccagacctcaatcttaacttctctttttcttagcggccacactcaacccact
-agtaagtactgcccactgtgatcccaatttggatttcaaatctgtttactcgccttattc
-tgggccaggctgccctcctctcCATGGGTCTGCCTTTTGTGCCTTCCTGTCTTTAACCCC
-TCTGTCAGCTCCCAGGAGATTCTTTTTTTTTTTtgcagttgcaagatttaatagcatgaa
-atagagtgaaaacagagctcccatacaaagggaggggacccaaagggggttgctgttgct
-ggctcgaatgcctgggtttatatgccaatccttgtctctcccactgtgctctcaggcaat
-agatgattggctatttctttacctcccatttttgcctaattagcattttagtgagctctc
-tgattggttgggtgtgagctaagttgcaagccccgtgtttaaaggtggatgcggtcacct
-tcccagctaggcttagggattctaagttggcctaggaaatccagctagccctgtctctca
-GTccccctctcaacaggaaaacccaagtgctgttggggaggtcagctgatgaccgcacta
-actgcttcctgctgaattagggagtagtaggggtggtgcagttgagatttcctcgggagg
-ggtgccttcgatgtcattaacatcagagcatgggctagcaggctggtccgggggtccgtg
-gtaaatcttagtcatggactgcatgtgagctccCAGGAGATTCTAATGTGTGGCTGGCTG
-GGCCCACCAGCATGGATGAGGACAAATATAGCTGTATCGAGTTTGGTCTCAGACTTTTTC
-ATGCATCATTGACCTCCTAGAACCTAAATTAAAAAGCAGACATCCAGGTACTGAGCACCT
-GCTCCAAGTAGTCAAACAGCATATTCATGCCTGAGGTGAGACTTTCCCAGGcatcttccc
-caagcttctcatttgcctgaacatagacaaactgaggcccagaagtcttgcccaaggtca
-ccatctggcaggCTAGGCTCTAAGACTCCTTGCCTGAGGGCTGCAGAGCTGAGCTGGTGA
-TTCAGGGCAGCTCAGGGTCCCCTCAAGTGACTGGAGCTCCCCAAGCACCTCACTGGTCCC
-CCACTTGTCCTGTGGTTGCAAGTGGCTGGGCAGGGCAAAGGTTACCCACAGCTGGATCCC
-ATCACCCAGTTTGCCACACCCGCCCACCAGCACAGGCCCTGGGATGGATAATCTGGGCCA
-GATGGGCTCAGTTAGGCTGGGCTGGGCTCTGGAGACTAATATTGGCCTGGGTGGTGGGAG
-CTAGGTCTGGCCCATGGCTGAGGCACCAGCTGGAAGGGCAGGGAATGGATCCCAGTGGAG
-GAACTCACCCAGCGTGGGATCTACTTCTCTTGTTTTTTTGGATCTACTTCTCTCTATGCC
-GTGCACCGACTCCAGGATTAGACCTGCCCCTTCTCCATCACTCTCAGGCTGCCGAATTCT
-CAGGCCTATGATGGGGTACAAAGGCCTGACCTTTTGTCACCCTTCCAGCTGGCAAAGAGA
-CTGAGTTTTGGTCCCTGGTCTACTGCCCCATCCCCTTGGCcctgggtttgagttctggct
-ctgccacactttcattgtgggcccttggagactactgtgtttctctgagccccactttac
-agatctgggtcatgggTCAGCACACCCTGCTCCTTGCTGGGGAGAGGGCATTTGCAAAGG
-GTCTTGAAGGAAAAGAAAGAAATTTTCACAGGCAGGGGCTGGGGGAGAGGGGGTGATTCA
-GACAAATAACAGGTGCAGATCCGTGGATGAGCAGCCTCCGTGGCCGAGGAGATCTGCTCA
-AGCCTGCTTCTCTCCTGCATTATTTATATAaaatggacatcaattggtgaatggagaaac
-tgcagtccatccatgcagtggactccattgagcaataaaaaggaaagaaccattgatgtg
-tgcaaacacacagatgaacttcagatggatcatgagtgaaaaatatgcaactccaatggt
-tccatactgtaggagtctatttgtatgactctctaaaaatgtcagaatctgtgattgcca
-gggcctgggtccggggagggggtggggattgattgttaaaggacacaggggagctttttg
-ggatattggcaatgttctatgtcatgattttgctggtggttacataactgtatatgtctg
-tcaaaactcatggaactatatgtgaaaagggtagattttgctgtacgtgggtcatacctc
-agtaaaaaaCAACGCCCCCAACACAAGGTTCTATAAAATGCCGCAGATATACATATGTAA
-CATTAAATAGATCTCCTCCAGTGAACCCCCTCACCCTCTCTGAGTTTCATTCATGTGttc
-attcaggaattatttcttgagcacctactatgtgctcatcctgtattaggtattagataa
-tcagaaatgagcaaaattcgtaaagtttctgattccagggcacttctactaaatatatca
-gttgcattgaaatcttgatgaatgctatgaagaaaataagacagggtaatatgtggggtt
-ggaggcaagtttagccagtatgatggagaaagccccaccagagagggccatctgggctga
-gaggctgagaagaagcaaggtctgggagagtcaggagggagggaattccaggcagaggaa
-aaggcaagtgcagaggccttgaagtgggagcgtgtctggtatttgaggatcaaaatgaag
-ATGGTAACAATGATATGCCCTGCAGCTATCTCTCTTCCATGGAAAATGGTGCATGAGGTT
-CCTGTTTGGGAAATGCATCTTGTCAACTGCAGATAAAAATCAATgcagagagagtagtgc
-tttgtatggatgaagctgtgtgtgaatcacagctcttagcttactggctgtgtgacctta
-ggctggggcctctactggtgtctgagccttttctctaaaatgaagataatcatagctcct
-tcccctgggttgtagggagcattcctgagataaCTCTGGTTGTAGTTACATAATGAACGC
-ATGATAAATTCTGGTATGTCTGGGCCATATCTTACTATGtgtcaggactctgagcccaag
-cctgcgcgtatacatccagatggcctgatgcaactggagaaccacaaaagaagtgaaaat
-ggctggttcctgccttaacggatgacattaccttgtgacattccttctcctggacaataa
-gtctccgtagctccccaccaagcaccttgtgacccctgcccctgcccgccagagaacaac
-cccctttaactgtaattttccactacctacccaaatcctataaaactgcccaccccatct
-cctttttcagactcagtccacctgcacccaggtgattaaaaagctttattgctcacacaa
-agcctgtttggttcacatggacgtgcatgatatttggtgctgaagacccgggacaggagg
-actccttcaggagaccggtcccctgtccttgccctcattccatgaggagatccacctatg
-acctccgatcctcagatcaaacagcccaaggaacatctcaccaatttcaaattgagtaaa
-cggtcttttcactctcttcttcagcctctctcactacccttcaatctccctgtccttcca
-attcgggttcctttttctctctagtagagacaaaggagacacattttatccatggaccca
-aaactgcagcaccggtcatggactcaggaagacagtcttcccttggtgtttaatcactgc
-agggatgcctgccctgatcattcacccacattccattggtgtctgatcaccggggggaca
-cctgccttggtcattcacccACATTCCCTTGGTGGCATGTCAATTGCAGGGACACCTGCT
-TTGGCTGCTCACCCATATTACAGCCCAGGGCTGCTCACCGcccgcttctccgtgtctcta
-gctttctctttaaacttacctcttcactgtggtcaaccttccaccctgcattcccccttc
-ttctcccttagcctgtgttctcaagaacttaaaacctcttcaactcacacctgaactaaa
-acctaaatgccttattttcttctgcaatactgctaggccccagtacaaactcgacaattg
-ttctaaatggccagaaaacagcacttttgatttctccatcttacaagacctggatgattt
-tttgtcaaaaaatgggcaaatggtctgaggtgcctgatgtccaggcattctttcacacat
-tggtccctccctagtctctgctcccaaagcgactcatcccaaatctttttttttctctcc
-tgtctgtttccttccatctccaccccaagctctgagtcctttgaatccttcttttctacg
-gactcatctgacctctcccctcctccctgacgctgctcctcgccaggctgagccaggtcc
-caattcttcctcagcatctgctcccctaccctataatccttctatcacctcccctgctca
-cacccagtctggcttacagtttcgttctgcaactagccctcctcacctgcccaaaaattt
-cctcttaaaaaggtggcttgagctgaaggcacagtcaaggttaatgctcctttttcttta
-tctgacctctcccagatcagttagcatttaggctctttttcatcaaatataaaaacccag
-ccccgttcatggcccacttagcagctaccattagatgcttcacagccctagacccagagg
-ggccagaaggccaccttatccttaatatgtattttattacccaatctgctcccaacatta
-gaaaaagctccaaaaatgagattccggccctcaaaccccacaacaggacttaatgaacct
-tgccttcaaggtgtacaataatagagaagaggcagccaagtggcaacatatttctgagtt
-gcaattactcgcctctgctgtaagagaaaccccagccacatccagcacacaagaacttca
-aaacgcctaagccgcagcagacagttgttcctccaggacctcctcccacaggatcttgct
-tcaagtgctggaaatctggccactgggccaagaaatgtccacagcctgggattcctccta
-agccgtgtcccatctttgcgggaccccactggaaatccaactgtcccactcgcccaccaa
-ccacacccagagcccctggaaatctggcccaaggctgtctgactgactccttcccagatc
-ttctcttcttagctgctgaagactgacactgcctgattgcctcagaagcctcctggacca
-tcacagatgctttaggtaactcttacagtggagggtaagtctgtcccctttttaatcaat
-acagaggctacccactccacattacctacttttcaagggcctgtttcccttgcctccata
-actgttgcgggtattgacggccaggctgctagactccttaaaactccccagctttggtgc
-caactgggacaaaattttttttttttttgagatggagtctctctctattgcccaggctgg
-agtgcagtggcgcgatctcggctcactgcaagctccatctcccaggttcatgccattctc
-ctgcctcagcctcccgagtagctgggactacaggtgcctgccaccacgcctagctaattt
-ttttgtattttttttttagtagagacggggtttcaccgtgttagccaggatattctcgat
-ttcctgacctcgtgatttgcccgcctcggcctcccaaagtgctgggattacaggcatgaa
-ccaccgcccccggcctgggacaacattcttttatgcactcttttttaattatccccacct
-gcccagtacccttattaggccaagacattttaacccggacaagtcttacaggctggtcca
-agatcttcgccttatcaaccaaattgtcttgcctatccaccctgtggtgccaaacccata
-tactctcctatcctcaatacgcccctccacaacccattaatctgttctggatctcaaaga
-tgctttctttactattcctttgcatccttcatcccagcctctcttcggtttcacttggac
-tgaccctgacacccatcagcctcagcaacttacctgggctgtactgccacaaggcttcag
-ggacagcccctattacttcagtcaagccctttctcatgatttactttctttccatcactc
-ccacctactctcccactgaaacttccacctatcaatctcttcccacacaaggcaaatggt
-tcttggactaaggaaaattcctccttccagcctcacaggcccattccattctatcgtcct
-ttcataacctcttctatgtgggttacaagccaccagcccacctcttaaaacctctcattt
-cctttaagacatttaccttgtatttcactccatccttggctaccttccccttgctcttca
-gactctcctcccaggccctcttcttgtttgcttatacccagccctgtaaataacagtgaa
-tggttgcttgtagatactcgacgttttttcatgcaccatgaaaattgaacctcctcctct
-aggaagttaccccatcagtctccattacaacctctgacggctgccaccctagctggatcc
-ctaggagtctgggtacaagaaacctttagtactccttctcatctttttactttgcatttc
-cagttttgcctcgcacaaggtctcttcttcctctgtggatcctctacctacatgtgtcta
-cctgctaattggacaggcacatgcacacaagttttccttactcccaaaattcaatttgca
-aatgagaccgaagagttccctgttcccctcatgacaccaacaGTTCACTACTATTTTGTT
-TTGTTTTTCTTATTATTAATATAAAAAGACAGGAATaggccttgacttactcactgctga
-aaaaggaggactctgaatatttccaaatgaagaaggttgttttcacctaaatcaatctgg
-cctggtatatgacaacataaaaaaactcaaggacagagcccaaaaacttgccagtcaagc
-aaataattacactgaacccccttggacactctctaattggatgtcctaggtcctctcaat
-tcttggtcctttaatacctgtttttctccttctcttattcggaccttgtgacttccattt
-agtttctcaattcacacaaaactgcatccaggccatcaccaatcattctatacgacaaat
-gctccttctaacaaccccacaatgtcaccctttaccccaaaatctttcttcagtttactc
-tctcccactctaggttccgacattgctcctaatcctgctcgaagaagccctgagaaacat
-cacccattatctctccataccacctccaaaaattttcgccaccccaacacttcacctcta
-ttttgttttgtcccaacacttcaccactattttgttttgtttttcttattaatataagaa
-gacaggaatgtcaggcctctgagcccaagcctgcacgtgtacatccagatggcctgatgc
-aactggagaaccacaaaagaagtgaaaatggctggttcctgccttaactgatgacattac
-cttgtgacattccttctcctggacaatgagtctcagaagctcccccactgagcaccttgt
-gacccctgcccctgcccacaagagaacaaccccctttaacgtaattttccattacctacc
-caaatcctataaaactgccccaccccatctccctttgctgactcctttttcggactcagt
-ccacctgcactcaggtgattaaaaagctttattgctcacacaaagcctgtttggtggtct
-cttcacacggacgcacgtgacaCTATGTAGCTGTTAAAAACAATGAGGTTGATggctggg
-catggtggctcacacctgtaatcccatgactttgggaggccaaggtgggtggatcgctta
-agctcaggatttggagaccagcctgggtaacatggtgaaaccttgtgtctactaaaatca
-gaacaaaattagctgaaggtggtggtgcatgcctctagtctcagctacttgcggggctga
-ggcaggaggatggctttagcctaggaggtggttgcagtgagctctgatcatgccactgct
-ctccagcctgggcgacagagcaaaaccctatcttaaaacaaaacaaacaaacaagcaaga
-aTGAGGTTGAGCTACATCAGATGCTGATCTGAAAAGATGTCCCTGTCATGCTTATGAGTA
-AAAAAAGAAACCAAGAGGCAGAACACTATATACAATGTGGATCCATTTGTGTGTAAGAAT
-GATCCAAATGATGTATTTTTATACAAAAACCGAGAAGATCAAACTATTAACAGTAGCGAT
-TTGCTTCAGGGGAGGGGGTTTCAATAGGGTGATGGTGATGGCGTTTTCTTTTTACATTAC
-CTATATTGAAATTGTTTGGATTTTAAAAGTAGAATGAGAGTGTATACAGGTATAATTAAT
-AGAATATTTAACAACTAGTATATAAACACTAGGAGTCCCTAACTGATGTCCTGGACCCcc
-agggatctgtgaatagaattcaaggaacctgtaaacttgcattaaaaaaaaaaggacatg
-cttttcccactagtctctaactgatattaacttttcctgtggtagtgagtatatgccaca
-ggctattacagtggtgatagcagggcctgcagctttgtcactagtagaaaccgcagatac
-tctaatatctcattgcagtgattgcggatatctacgacacattgtgtatactcacctcag
-cctcaaaattatggaaggtacttgacccaccactcagtcttgttattttgtgcattaata
-cagaaataatataggactatatcagaaacctgttttctgttatgttgacatttgcatctc
-aaggcaatttgtttcctttataaatctatgcatttaattttacatttcaaaaaaaaattt
-ttttttctgagagagggtcaccggatgccaaaggaccccaaggtacaggaaaggttaaga
-cccctgAAGGCCTGTCCCACACAAGGTTCCTCACTGGTGTccccagtaggctaccaactc
-tgagagtgcaaggactttgcctgccttCTGGGGCCTGGAAGACTGTCTGGATATTTgtag
-gctctgctgttgaccccaattatagatgggcaaatggaggttcaggctcagagtcacttc
-cctgaggtcacccatcaagttgcagatgctagattcctcctcatgtctactgatttggaa
-ggctgGGAGGTCAGGTCTTGTGGGTGTAAGAGGGTCAAGGCGGGGGCTGGGCGGGTGAAA
-GTGGTGCTTCCCTCACCCAGGGTACGACCCAGGCTTTAGCCTTGCAGCCAGTGAGCCCAG
-AGGATGGGGTGAACCCTGCTGCTGGCTTCTGCCTGTTGACCCAGTTCCTGGGTCTCTGCC
-CAGACTTGTTCCAGAACCAGACCCAAAGCACCAAGGTTTCTGTGAATGGGGGTGGCAtta
-aggaaacttacccttctagttggtcagacccagcctctcagagctgccctgctttccttt
-gtctctctcacatcctgcatccaatctgttgtctctaccctcgggcgcatgcagaatctg
-accacttctgcccaaccttgccacttccaccccagtcccagcccccattgtctctagcag
-ggatcaaagcttccttgatactgtcagcatctgtcattgctccctgggcccccaggctat
-gctccacacatagccagtgacgtcctggtcaacctgtcagattatgaccccctctgctct
-aaaccctgccttgggtcccgtgtggcttagagaggaccaggactccttgcagATTCCTTT
-AGTGAAGAACAAAATTCTTTGCTTTGGAAACAGGTAAAACAGTCCCCAGTGAACAGAGTC
-CAAACCAGGCTGTACTGGGATGGTGTGGGAATTGGGATGAAGCCTGTTCTAGGTCCTAGG
-CTGAACCAAAGCCCCATGGCTGGGGTGGTGCAGGGTGTGGAGATTTGAGCCCGGCCTGAC
-GGTAAAAGGAAACGGGCTTTAGCAGGGATGCCCCAGGGGTAGGAGCCCAGGCAGGGAGAC
-ATCTGGGGAGCAAAGACTTAGTGAGGGGGAGACCTAAATGATGCTCTCagggacctctca
-gctcccatcccctccatttcacagatgggaaaactgaggtcccaatcaggaaaataaagt
-gccagaggctgtacacaggagctaatggccagatctggTGCAGACGTATGAAAATCTGGA
-GGGTCAGATCTTACCTAGCTGTGTGTGTGTGTTTCAACTTAAATGTAAATCTTTGTAATT
-TTATTTTTCGAATGGGTGATATAAACACATTGTTCAAAATTCCAAGGAACAAAAAGGAGT
-GAAGTGAAAAACAAATTTTTCTGTCCCTGCCTCAACCCACAGTTCCCTCCCTACAGGCCA
-CTGAGGGAGGTTCCTGGGTTTCCTTCCAGAGAAACGCTATGCATACTTCTACATCTGCAG
-TAACTGTGTTTCCATCCCACCACCTGCCCTTCAGGCTACAAAAACCTCAGCTTGccattc
-cacacctggcttccttttgcttaacattgttcatagcatgttccacattcatccaggtag
-acttgcctcagcattgtaagctgcttgaaattccatctatgggcctccattgtttgctca
-tctagtcccctctagctgggcctgtaggatgtttccaggctttaacatcaaaaacagggc
-tgctacaaatatccttgtacacctgtcacttaacattcccacaagtctatgtggggaata
-aatcctctgaagtagaattgcttcaaagtagagtgaaatcacacgtttttttggtccttt
-gttttttgaggcagagtcttgctttatcacccaggctggagtgcaatggtgtgatcatgg
-ctcactgcagccttgaattcccaggctcaagcgatcttcccacctcagcctcccaagtat
-ctgggactataggcatgtgccaccaggcccagccaatttttcagtatttttttgtagaga
-ccagggtcttgctttgttgcctcaggctggtctcaaactcctgagctcgagtgatcctcc
-cacctcacctcagcctcccaaaacagttgtgattttgactatcgttaacaaactgccctt
-ggcagaggttatgccTAGTGGTTTCTGCCCCTTTGGAGGAGAGGCCCTAGGGTCTGCAGA
-GGTGGCCACAGGAGCCACAGAGTTGCTTATTGCACCCCCTCCCAATACGCATCCACACCT
-CCCAATCTCAGTAGCACCAAAGCATCTCCCACCAGCTtccttctgacttctaggtctccc
-tgaaaatgtcacctcctctgagaagcattccctgaccacccccactctactccacctgtt
-tatcacagtgtgcactctggcttctacacagtacttcatgccatctgaaatcactttagt
-catttgtcatttgtccaattcccccacgagaagagccccaggagtgcagaggtttgtctg
-ccctgttcatgagcacatcctctatgcctagaatagggctaggcatatgagaggtcctcg
-ataaatatttgtggaaagagcagatGGGTCAGTTTTGTGTAAGGGGCACGAGATTTCCAC
-TGAATAGTTGTTTGGCAGCTAGAAGCAAGTTAGGAGCCTCGAGCCCAGGCCCAGCCACTG
-CTGGAGCCTGTGAGAGGCAAAGGCAGTGGAGACCACAGAGACCAGAGAACAGAGAGCTAA
-CTGGTGCCAGGGCAGAAAGAAAGGGGAAGAAACACCAGCACAGAGATGGGAGGGGCAGGA
-AGGAGGGTTCCCAGGAGGGAGGCCCATGGCAAGGGAGGGAGTCAGCTTGGGGTATCTGCA
-GGAGGAATGTTCTAGAAATGAACAAGACATAGTCTTGGTGCTCATttccttcctccaacc
-aactcattcagatgtgccgagacctgggcatggtgctggggatagagcagctaccagaac
-aggccaggctctgcactGCTGCTGCGGTCTCCCAAGGAAGATATCTAAAGGGCtactctg
-tcccaggcatgaccccaaggccctacaaatacagctcatttagtccttggtgctcccatt
-gtcaccattttacagatgaggaaaggaaggcattgagaagatgagcatcttgcctaagtg
-gcaaagactggatttaaatataggcctttggtctccagagaccacacccttagccactCG
-GTGGGCTGCTtgtggcagctagccttcaggatgaccccagggatcctggtgctcatgccc
-ttgtgtagtcccctctctcaacaagtcaggactggctggcatgactaattagatattgta
-gaaacgttagtgtgacttccttggctaaaccattgcattgtgtcttctgtcttgccctct
-cttggaccacacgctttagaggaagtaggccactatggcctgaggacccttaagcagccc
-ttgggaggaagccatctggaggggaactgaggccttctactcacagccagcgccagctca
-ccagccacaggaggccgagccccagcccaggtcaagccttcagatgagtgcagccctagc
-tgatacctgagtgcaaccacatgaaaaaaaccccaagtcggaactaccttgttaagttgc
-ttcagaattcctgaccctcagaaactatgaaagataagaaatgtttgttgttattttaag
-ctgctaaatgttttagggtaatttgttatgccacaatagataactaatataCTGCTTTTC
-CAGAGCTTATAGAGGTTTAACCCTCTTGCTTCTCTTCTCTGCCATCCCCAGGCCTCAGTT
-TCCTCATTTTGACAATGGGCTGACTTGTGATTTATGAGGGTTGGCCCCTCCTCCTCTGCC
-TTGCTTCTGTCCCCTGGGCCTGCACCAGGCCCTCACCCTGTGGCTCAATGCAGACTGAAA
-TGGTTTGTCTTGTCCTGTCTGAGCAGCTGGGCCCAAGCCTTCCTCATTGTTTTCCTCTCT
-GCAAGACATACTATTGCTTTTCTTCTGGGTCAGGCTCTGGGCAAGCACAGCCAGTGGGCT
-GAGAGCCAGGGGTAGAGAGACTTGGGGACCAACGGGCTCTCACGGAGGGATGAGCTTCTC
-AACCCTAGCTCAACCCTCAATTCTTTGACACAGGCCCAGCGTCTCCAAACATCcagtgtg
-gtctgggcctggagcactgcactgagagtcagcaagcttgctcaatagctttgccatttc
-ctttctctgccagtgatgagtttctctgaacctcagtggcctcattgtttcctccttgca
-gagcgcctggaaggaatagggaaatggccactgggacctgtgttctgtggatctgggcta
-ggattcttgtctgtctggttcatgaggcctagcacagtgcctggcacacagtagtgcctc
-ccatatttgtggaatATTTGGGACTTCCCTGGCTCCTGAGCCTCACCTTTCATGGGGTGG
-CAGGTCCAGTGTTCATCCCAGGTGAAAGGCCACAAGGAGAAGATGAGGAGTGTGGCGGAA
-AGGGCTGCAGAGGGAGGGGAGCAGGGCCTGCCTCTGCCATCTGGACTTGGGAGGGGCTGC
-CAGGGTCCCTGCCTCCTCAGGCTCAGGTATGCCTTTGGTGGTCGTCTATATTTCAACCTT
-GATCTTGGGAGGTGTTTGCGATCGCTCACCTCCCTGACACTTGAAAGTCACAGAATGGAG
-AGGTGTGTCCATTTTGCTTGGcaacatgcttattgaacagttattatgtggtcagcactg
-ttctaaccactaggtatatgaagtccttgcagccaccctccaaggtaggacctgttatcg
-acctattttacagacgaggcacagagaggttaaacaacttgtccaaggacaggtagctct
-tcacaggtgtaaccaggCGGTGCTTCTGCAAGGCCTCTTGGCTAGAGTGATCATGTGACA
-GCGCCCCTGCCCACCCCCCAACCTCACCTCAACTTTGGGAAAATAGGGCAAAGTATGTTC
-TAGACACAGGGAGGCTTTGCTGGGGTATCTCCCCACGTGGCACCAGGCCTTTCTGCCTGT
-ACGACTCCAGTGTGTACCTCttctcttattggatccccagcagcctggaggaaaagggtg
-attgttccccacacaaatgagtaaactaaggcccacaaaggccgagcattactcacagct
-ggtaaaggaagaTTTTTAACTTAATGGCTGAGCTCTTTCTATGTGCCTGTCTTGCCTTCT
-TGGTGGCTGAGGCTGATCCTGCAGATGGGGTGACAGGGATAAGATTAGGGTCAGACAAAG
-ATGGTGGAAGCTGGCTCAGAGGTCCACAGTCTATCAGAGAATGATCCTCAGTGAGGACAG
-GACAGAAAAGTGGCCACATCTCTTCCCAGTCTCCATGGTCCTCCACGGAGAACAGGGTCA
-GGACCAGGGACATCTGtctggctcctggtgagcactccagtctcatcttggccatgctct
-cctcgctctctgcactgtagacacactgaatgccttttgcttttggcccattctaccccc
-agggcctttgcacttgctgtcccgtgtgcctggaatgcttttgcttcctttccctgtctc
-gccactgccaacccagcctttagatctcagctctgtccttcttcctagtgcctccctccc
-tcaaggtcaggcacccattatccacccctagcatctctcggtccctccttcatggcacat
-atcatgattgatcgttgcacatgggaaatcactaggttagttacacccactgctccaggg
-gcaagggggaaggatggtcttccttgctcactactaaatccttgtcacttgcatggcgcc
-tggcgcattgtaagccctcaataaacagtggtggaagggacaaTTAAATGAATGCAGGAA
-TGAATATTCTTACCTGACAAACTAAGTTCAGAGTTGTGTATACACATTTGTGTTTGTGTG
-TGGTGGGGGGCAGGAGTCGGGGGTTGCACATCTACACATAGTCCCAGAATTGAAAGGATG
-CATGATTTTTTCATGACATTTATGGCATGCTATGTATCTTGTTGCCTCTGGAGAGGAGAA
-ACAGGGGTCTCAGctgggtgtcaggaaccctgggttctgggccaactcctgccaccgacc
-cttgggtgaatgtgattgagtcactcccttgcccaggcttagtgttcccatctgtaaaTG
-GTGGGCACAGAGAGGTGGTCTgtgtagtggttaagactgtgggttctggagccagtctgc
-ccgggtacgaactcacctccctcacttcttagctgtgtaaactccctgggcctccgtttc
-cccgcaataaatggggatcataacagtccccaccttttaggatgccacgaggtttatgag
-tcaatgtttataagacacatataaagtgcctggcccagagaaagTCCCATATGTGAATTC
-ACCCCAGCAAAGCACTTATCCCAGAAGACAGAGGAaacaatagtagcatctcctggttct
-ctgtgctggagcagtgccaggcacatcccctgaccagccatttgagcctcacagcaaacc
-caggcgatgtgtgtatcatcacctcaattttatagattgaaaaactgaagctcaggtctt
-tctcatagttacacagctaataaTCTCACAGATGTAAAGTTGAGGGAACAAAAGGAAACT
-ATAGTAAGATATGGATGGTACGACAGGATTCCTTCCTTGCACCGTGAATCCTGGAGTCTT
-Gacgtttactgagcacttactctctgccaggccctgtactgagccccacatgtgcattgc
-ctcatttaatctcctcaataacctgcaaagtagcttctgttagtgtcctcacttcacaga
-taaggaaaccgagtcacagagtggaaaagcaatggtctgagaaggcacagccagtaagca
-gtggagctgggattcagactgagtcaactgggactcagggcctacactcGGCTTCTGTGG
-GATTTGCCCCCAGGCCCTGGGCCAAGAATGGGGTGTGTAATTGTGGGGACACCCAGACTG
-AGCTTCTGGAGCCCCTTAGCTTTTCAGAACGGCCACAGCTGCCTGAGGCCCTACCTGAAT
-CATCCCTGGCAGAAAAGCCCTAGGGAGCCTTGGGCCAAGGGTTCCTGGGGGAAGAAAAAT
-CTAGTAGCTATGGATCTCCCCTTTGGGGACCAGGGTCCTCTATATTTTCCAGGTCCCAGC
-TAATGCCCAGGGACCCATCCACCATGGACATGGCTTATTTATTGGACAGAAAACTGGCTT
-AAGTTCtgagataataggttccggcatcagatggctgaatctgactttgcccttcttggc
-tgtaagatcttgggcaagtcacctaatctcttggtgcctcagtttcctcatctgttagtg
-gacaagcaatcttacttcactgggtcatggtgagaattaaatgccgtaacataaagcacc
-taggacagtgtgtggcatacagtaaatgctcactaaatgagtgcttactcattACGTCAT
-AACTGCTTtttcatcctccactcattctgggaggcacgagtattttgagttccactttag
-agaggagccaattgatatatgtggcttccccgggttcccatagctttgagtggtacccct
-gggacttgacctcctgaccccaaCTTGGTCCTCCCCAGACCCCACAGCCAACTCTCAGGG
-TTCATTCCTGACATTTCAGAGCTGGCTCTGAGGTTATGCAAACAAACTGCGGCCAGAGTC
-TGACTGGAGGTGCAGGCTTAGGGGGCAGACCTGGGGCCCGTTTTCTAACATTTCCTGCCC
-AAGGAGAAGGAGAAGAAGGTCTGTGTACATCCCAGCCTGGCTGAGCTCTAAGGCCAGGGA
-GGAGAGAACTAGAAACATGTGGCCCTGCCCTCTGTGGGATGGCTGGCCAAGCCAGTTGAA
-CAAATAAACCCGTCCTTTTGGGGGAAGTCGTCAGGGGGTCTGCTGCTGCTGGTGCCTGCC
-CTGCACCCCCACCTCATCCCAGGCATGAGCCAGCTGGTCATCCCCAGGCCGAGGGTATCT
-GTGCCAGCTGTTTCCAGGCCCCCTTCTTGGAAAAATCATCCCATTCCTCTAAGAAGCAGA
-TGCTGTTTCCCCCATCCCCCAGTCCCAAACTGCTTAGAAAGGAGCCAGCAGTGAGGTTAG
-GAAATCAAACCCCAAGATATTTTGTTCGGCACCGAGACTCATTTCTTGTTTGGATAACTG
-AAGGCTGAAAATGCCAAGAATTTGTGGGCAGCCTGGGAAGGCTGGGGCAACTGGAACCCT
-GACTCCCAAACCAGGTCAGTTTGGGAGGGTCTCAGGCTGGGCAAGGACCCCACCCTGGGT
-TCCTCCTTGGTGCTCTCTTGACCCACACCCAGTTAGGCAGGGCCTCACAACTGCCAGGCC
-GAGGGGCCCAGTTATTCTGAGGTTTGATGTCAGAGACCTGGAGCAAACAGCAGAGGCTGG
-GGCAGTGCCAGGTTGGGAGGCCCCTGCCCAGCCCCTGACCCCTCTCTGCTTGGCTTTGGG
-TGCAGAGGAGGAAGAGAAAGAGGCCTCGGCTGAGCAGCCAGCTGCAGGGTGGGCATTGGT
-CATTTGGCAGATGTGCCCTGGGTCTTCAGTGTGGACACTCGGGGAGGTAGAGGTGGGAGG
-GATGGCCTTGGGGTGAGAAAAGGAGGAGCTGAGAAAGAGACAGGAAAAGATGCAGGGAGT
-CACTTTGATAGCCAACCAGGAGAGAGAATCAGAGACAGAGACACCCACAGAGTTAGCAAC
-AGTGAGTCAGGGCCACCGCGAGAGCCCCAGGAGAGATCCACAGAGGCAGAGAGACTCAGA
-AATAGAGACAGgctgaccacagtggctcgtgtccgccgtcccagctacttggaagactga
-ggcgggaggatcgcttgagctcaggagttcaaggctgcagtgagctgtgattgcaccatt
-gcaccccagtgtggttgagagagtcagaccttgtctttaggagagagacagagagaggga
-gagagggacagagagagggagagagagacagagagagggagaaagagacagagacagaca
-gagatagacagggagataggcagagagagGGCTGCCATGGACCCCAGGCCAGCAGCTGCT
-GGCTGCTCCCTAAAGGTGAGAAAGTAGTTCTCACCTGCAGTTTCCAGGTGGGGTCAGCCC
-TGCCTCTGGGAGCTCAGAGACTGGGGAAGATGTGCTGCCCTCAGGTGGTGGGGGTGGGCC
-AGAGAGGCTGGGGCTTGTGTCTGGCCCTGGTTTTcctcattctcctcatctgtataatgg
-atcattctgtggggccatgaagagaaggCAGAGTATGGCACTTCTTGGATGGGACACCTG
-GGGCAACTGGGGGAATGGCAGTCACACACGGGAGCCCttattgagcacctgctgtgtgca
-gaggctttctctgctctgcttctcttgaccccacatcaaaggtcaggggtaggtgctgtc
-attctcctcccagcctccggattaggcactgagAGGGAAGGGCCAGCACTGGGTCCTAGA
-GGGAGGGCATGGTGGACAGAGGAGGTCATGTGACTAGCCACTGAGCTGCCCAGCCCAGCT
-AGAGATGCCTGCACTGCAGCCGGCTCTGTCCCCCAACCTCCTCAATATTCCTGCCTGCAG
-CTTCTCATCCATATGAGCGGGGTGGAGCAGAGCCCAGAGCTGACGTGCAGCCCCAGGAGC
-TGGCTCCAGATGGGAGTTACTGGGGCAGGGGCTTTCCaggagcgaggaggaggagagaga
-gggaggcagaaggagggggagagcagggagaagaaagggaaggggagtgcaggggaggag
-gagagtatgaaagaggagagagagagaagaggtgaggCCGGGGCTCTCCCCATGCCTGAT
-GAGCACTGGCAGTAGGACACAGCAAGCTGTATGCTAGGAAAGAGTGCGTATCTGGGGACT
-TGGAAACTCTGCAGTAGAAGGGAGCACCAAGAGCATCCCATCCTCTCTAGATCTTGCTTC
-CCTTGCCTCCTTGACACCTTCCAgagtcaggaaaaagtacctgcagtttgtagtgagaat
-ccagattggctttcactgctacatggctctggcaagtcactttccctctctggcctgttt
-cctcacctgtacactgggggaacaggaGGGGAGTTGGGGGCACAGGCTGAGCAGATGATG
-GCTTCTGGGATTCGCGACAGGAAGGATCTCCCCTGTGTCTGTCTAGATGAACAGAATCTT
-GCTGAGAGCTTGTTCATCCCTAATGGCAatggtgatgatggtgatgatgatgctgatggt
-gCCATTAGATGAGTATTTTAAAACTCTTTTTTTAACTTTTCTGAGATGTTAGAGAAAAAG
-CCAAAAAAAGGCTTTGAGTTTCAGAAGATCTGAGATATGCCTGGACCAAGAGAAGAACCA
-GAGGAAGGTCACAGCCACAGCCACAGAAGGTAGCAAGCACTCCCCACTGGGGACCAGGAG
-TGTCAGAGGGGGCAGAGAGAAATTATTGTTTACATGAACCAAGGGAGACCGAAACCTGCT
-CATCTGTAGCCATTTGGTAAGGAAGTACCTGCAGCCAGGTCAGCTGAACTCCCATATCAG
-AGATCTTAGGCCCTACGGCACTCTACGGTGACCTGACTGACCCTAGCTCAGAATTTTCAG
-GCTAGGTGAATGGATGCCTGGAGAGGACATTCCACCCCAAGCTGAGGCACTGGACCAGGT
-GACCTTCTGATCCTGCAAGCCATCAGTTCAAGCCATCAGCTCTCAGCCAATGTTTCCCAA
-GCATCCGACACCCAGGGGATTCAAAGATGGATGAGAGTGAGAGGTGAGACTTGGGGTAGG
-AGGCCCAGTGGGAGGTGATGACAGCATCCTGGGAAAGATGACGAGGCCTAAGCCAGAAAG
-ATGGACCATGAGAGAAGCCTAGGCCACAGGATGGGCTGGGCCAGCTGCCTGGGGGATAGG
-TGGGAGCCACAGGAAGCCCCCAGGGCACAGCCTGTGGCTGGGTGGTGGTGTCACCCTAAA
-CAGAGACAGACAGGCAGGAGGAGGGTGTTTGGAGAAGAGCAGGGAGTCGTCTCAGGCAGC
-TTTGGAGTTGAGACACCCATGGACCCTCAGGGAGGTGTTGGGGGAGATCCAGGTCATGGG
-TTTTGGGCTCAGGATCCCATCAATGCCAATTTTGTGTCATCACGGAGCAGGATGGAGACC
-TGGGACCTGAGAGATTGGAAGGACATTTATGCATTCATGCattcactcatgctacagaca
-tttattgagtacctactgtgtgttcggcactattctaggccctgggaacccagaagtgag
-caaaagagacatggcgcctgccctctgggagctcacacaccaaaagaaatgtttttaaga
-acattaggtagggataagttctaagaaaaaaaaacacaacaaagccagcagagggacaaa
-gggtggaagaggaaggtggttatttcgtacggggaggacaaggagggcctctggggagat
-ggcgctggagaggataggaggctggggtaagcaaagtgggagtctgggagagggaactcc
-agggagtaagggttcttgcttttattcggatgcatggttagccctgggaggagggagagg
-atgtaacttaggttttgatggggattctttggtctgctgcatggagaacaggaggtgggg
-gccgagtgttagcagggagccaggggggcagccaggacagctatcctgcctggagccaga
-ggtggttGTCAAGCTTGTCTGCTGTTTAATACCTTCTAAAACTCCAGGAATTAGTTCGCA
-TCCTTCATTCCTCAGTCATCGCCCAGACTGTCTCCTGGGTCCCTCTCCCTTTCCTTGGTA
-GCTCTCACTTAGGGACTCTGAAGAGTCCCATCTCAGACCCCCCAGGATGTCTCCTGTACC
-CTCATGCCCCGCCAGGGCCAAGCCTGCTTTGCACACCTCTGTAGTCAGTGCTTCTCCGAG
-GGTACACAATAGGTGCTCACACTGCTGAAAGACGAAAGCATGACAGGGCATTCTACAGCA
-GCCCTGGTcttgggccaaaaccacagtggcatcctcagctccttgcttcctcccactccg
-catccaattcaccagcagagctgatgggctctacctccagaacccaccagaatcttactg
-gccacaccccctcctagccccgttctgctccaggcctccggtaccttgcacctgatggct
-gcagcggccacctctttgggcttcttccttccaccctgcctcctacagtctatgctgttg
-aaatcgaatcacgggtgtctgtctctgctcacaaccttgcagtggctcccatgacactca
-gaacaaaagctgaagtccttccagtggccccccccccagctgcatggcctgccctgctgt
-cacctctcagacctccccgcacccttgctccctctcctctgctccagctacacaggcctt
-cgccccatggttctccaggcacacaccgctgcggatgcattccctcctcacggtcaaaat
-acatgcagctccctttgcagaacgttccctcaaatacctgcctggcccactctatcattt
-cccttgttctctgggttcaaatgtcacctcctctgagaagtactctctaatgatctgacc
-tcaagcagccacccagggccgccacttgccctctttcttcttcattttgcttcaccatct
-gacatagtagattatctcttactgcctctttcccctactagtccagagggagacatacta
-tactgtcgtatccccagcacccaggaaggcttggtccgttcagcccttggtcagggctga
-atggatttctgttggatgaatgaaGGGACGGCAGTTAAAGAGCCAGGTTGCCAGCTGACA
-TTGCCCAATCTTGCTGTGTGGCCTCAGACCCACCCCTGCCCCTCTTTGTGCAGCTCAGAG
-ACAGCCCTCTGTGCTCAGGGAAGGCCTCTTGGATGGACACTCCACCTGCTGATTGTGACA
-GACCCCAAAGCCGCCCTCTGCCCCCTGCAAACCTCCCATGCCCCGTACCTTCTTCAGCCA
-CTGCGTGTTGTTCTGCAGTGCCTGCTCCAGCTGTTTCACCTGCTGGGTGGGCAACTTCCC
-CAGGTGCAGTGGGTTGGCCAGTGATTCTCTCTGGAGGGTGTTGGAGTCCCTGGAGACCTC
-AGGCCCCGGAGGGCAGGGCTCAGACTTGGGCAGCAAGAAGGTGTAGCTACAGTGGCCGTG
-CTGGACTACAAGTGTCTCGCAGCCCCTATCCGCCTCCTGCCTTGTCTGTTGAGCCACAGA
-CATGGTGGCAACCACAAGGAGGAGGCTGCCCTGCAGCATGGCTAGCTGGGAGAGCATCTG
-AAGATGTGTCAATGGCGAGGGATGTCTGCTCAGAGCCCTAGGGGCTGTGCCTGGGATGTC
-CTGCTGCAGCCAACAGTGGCCAGGCTTGCCTGCAGCTGCAGCTACAAACCTCTGTCTGGC
-CGAGCTCTGTCCAGGCAGCTATTTATACTTGCTCTGAATACCACGGCTGCTCTGCTTGCT
-TCCTCTCACCGCCTCCCTCCGGCCCCACCCGACACCCTCTCACCTCTATTCTTCACTCCT
-TCCCTTCCTCCTTCCTCAGTCTTGGTGGCACGTCGCCCTTACCCTAAGCGTGCACCAACC
-TTGCTCTGTCTGCCTCACCTCTGAGCCCTCTGATTATCCAGTGAGGCCTGGCTTCCCTGC
-TGGAGGGGAGGGAAGAAAACAGcacacagacacgcgcacacactcatgcacacactcacg
-agcacacactcacacgcacgctgacacgcacacacattcatgtacacacaAACGCCAAGC
-TCCAATGCTGCCCGCTTTGGAAAACCAAATGCAACTTAACTCTCCCTTCCTGTCTCTGTC
-TTGGTCTCCCTCTTTCCCTCCACCCCCATCCCCTGCCCCCCAAGTCTAAGATCTCAAGTT
-TCAGTCCCGCTGCCATCCCCTTCTCTCCCCGCTGCACCTTCCTCCCTCTGGTTCCATGTT
-AGCGCTTGGAGTACAAGTGACCCCCGGAGAGAGCAGAGGGAGGGGAGGAGGCAGAGGGGT
-GAGGCTGGGGAGGGCCCAGCGAATCCACTTTGCCTCTGGAGACACAGAAAATCCTTCCAA
-GGTGGGGCAAGTGAGCAACCCAGCTGGGAGTTGCTTCCTGTCCTCTCTTCTCCCTCAGGG
-CCAGGGGAAAGTGGTATGCCCCAGGATGGCCCTGGCTTGGTTGCTTGTAACAGTAATGAG
-AAGTTGTCATGTCCTGGGGCAGATTGTCCTGGGGCTGCTGGAGTGGGGATGTGGAGAGGA
-Ggcagtggggagaggaggttggagtgccaggaggctaaccctagatctcgctccccgaca
-gctggccacgagacctagggtgggcagctgtgcctctctgggcctccacaccctgatctg
-taaactgggtaaaccttatctcttgcaggAGGAATGCGTGTGAGTCCTCAGCATGGGGAT
-GGAGAAGTTTTCAGCTTctgggttcaaatcctggctctaccatctaccagctgtatgact
-ttgagtaagtcacttaacctctctgtgccttcatttcctcctgaatgaggaaaataatac
-cacctacttcacatggcatgaaaattaggtgagttagagcaaggttggcacagagcgagc
-actaaataaatattTTCCGTTGTCAATgttatagttgtcattgcacctcccctcccacga
-cccactggagcataaactcctctagggcagggatttgtcCCTGGGGGACATGGTCTCCAG
-GCAGAAGGTGCCCAGGAGTTGGTGGGGCCTTTCCTGCATGGGCTGCCTTTATGTTCTGCC
-AGCTGTTTGGGCTTTTCCTCTCTCCCTGCTTGTTTCCTCAGAGTAGGGGCCAGTCTGGCT
-GTTTAGTATTTTCCTTTTTGTTCTCTCAAATCCCGATAGAGTTTTGAATTGGGGCAGGCT
-GCTTCTGGGCAGCTGTGAACTGTGGTCTCATCTGGGGACTGAGAACATTATACCAGGTGT
-GGGGCTTTTGCAGGCAAAGGAAAAGCAGCTGGTTATCAGCCTCCAGCCTCCCCTGAGCCT
-TCCCACATGCTCTGAGCTCTGCGTGCCCCGCTTGGCCCCAGTTGCCTCAGCTGTAAATGG
-GGTCATAGCACCCTGACCATGTGAGAGTAATGTGGACTGATAGCTTATCACAGCTCTGGG
-TGCAGAGAAGGGCAGTGTGAATGGTGGTCGTCATTATGATTGTCTTGACTGAGCTGCTTG
-ATAATCCCAACGAGgcagttacaccaggccccaagcttagatgggccccatgcttggttt
-acactctgccagcactgtcttgaaattcttaatacatttggaacaaagtactcagcactt
-gcattcttcattgagttccacaaattaggtagcaggccctgCCTGGGAAACATGAGGCTT
-CCCTCATCCCTCACTCTGCTCCTGACCTTACCATCCAATCAGACCTGTTCTTCCAACATG
-ATCCTTTAGATATTTCCCCCTCTGTCACCTCTTCACTACTCAGAATGCtggagccagcac
-atctggatcggaatcttggctttcctgaccccctatttgtgtgccttttgccaagttgcc
-taacctgtctctcagtttcctcttctgtcaaaatagtgatgttacagtggctaaaagacc
-gattcctgcagtgaggttaacacagagcctttcacataatacatgctcaaccagtgacag
-ctgtcatcattACTCCCtgctatgatatgaatgtttgtgtgcccccaaattgatctattg
-aaacttagtcaacaaggtgatggtattagaaggtggggcctttgggagtgaatagctcgt
-gaggactctgccttgggaatgagattaacgctcctatcaaacatgtcctagacagctggc
-cttcccttttgctaggtgacgttgcagtaagaaagcaccgtctatgaagcagggagctct
-caccagacaccagatcggctggtgccttgatcttggaattcccagcctccagaactgtga
-gaaataagtttctgttgtttataagccccccagcttagtgcattttgttatagcaacctg
-aatgggctaagacaCCCCACCATCACTCTCTTAGACCGGGGTGCTTCCTCTCTTGTAGGG
-AGAACAACAGCCTCAGAAGTGAACTCTGGTTAATTGGCCTTTGCTATTGCAACCAGAGTG
-Accttccttccttccttccttccttttttctttctttctttccttcttctctttctttct
-ttctttctccttttttttgacagagtcttgctctgttgtccaggctatagtgcagtggca
-tgatcttggctcactgcaacctccatctccccggttcgcgtgattctcctgcctcagctt
-ccccagtagctgggattacaggcatacgccaccatgcccaactaatttttgtatttttag
-tagagacggtgtttcactatgttgcccaggctggtctcaaactcctgacctcaggtgatc
-cacgcacctcggcctcccaaagttctaggattgcaggtgtgagtcaccatgcccagccca
-gagtgatttttctaagacacaatccagccctgacttctttgtttaaaattcttcagtttt
-gaactccaactctttctgtggtttacaagcccctgccggatgtggcctccattctcatca
-ctgtttccctggcactttataccttatcattTGGAATTGGTTTTACTCCCCCGCATGCTT
-TCCGCCTTCTGAGGCCTCAGTGTCTATGCTCCTAGCAGGAAACTtctgcttaaaaacttc
-cccccacctgtattgtcccagcttcgttctgcctgtcttttgatcttatctcagggatca
-cctcctctgggaaggctttctgcatctgtccctcccacttcaatgggagtaggccttctg
-cctctgggagctcaaaggcccctgcctgcctgtccctcaccaaagcactcatcctgcatt
-agaaaggcttgtttgcaggccttggtcaccgtctagactgaacactcttctaggtttgct
-gtcacactttccatttctgtgtttgttgcctgtcctaaggttaggctcacagtgggtcct
-catgagtgttatgttgaatgaatAGGAGCTGCAGGCCCAAAGCAGAGAGGAAGGCAGTCC
-CCTTTCCTCTCCAGCAGGGGCAGCAGGAAGTTCTGTGTGAGTTGTTCTGAGTGTCTGGCC
-TCCAAATCCTAAAAACAAACCAACCCATGTTGATTTTCCCATTGTCTGCTGCTACCATGG
-AGGTAGAGAACGGAGAATAAACTTATATCCACCTGGATACTTTGGCTTTTGTtcaaatag
-cttgggtaaaaagggaatttattggccaatttaactgaaaattttaggggtatcgagctt
-caggcatggctggatccaggtgctcaaatgatattagattttttttttttcctccaactc
-caggctcttattttccttcatttccttattttcctttgggttcattctgtaagagttccc
-accataatcaccaccactactggcaacagcagctccaatctatcaactcagtaacctctt
-ttaagagtgcctctttcctaatagttcttggaaaagttccagcttgagccgtacagtcat
-tcctgaaccaactattatagccagaggaaggagctactgtggatggtcaggctggatcct
-gtgtccaggcctggagccttggagcaggtcaacctcacaggatcggaagggactaagggt
-ggggtacagtgacgctcaagaaaacctggagtagaatgatcaggaggcgggtggagttgt
-tgggcaTAAAGCACCTGCCTGCCTGCACCCTGACTCTCCATCCCGCCACCCACCAAGTGA
-ACCCACCTCCCGCtcagagctgatggactcttggagtaactagagatgccatggaccctt
-accttgcatttcactcatgaggaaactgatactcagagagggaggccacttgcccagtgt
-tacaTGCTGGAATCTATTTTCCTGGAAGAACAGAACTTCCTGCTCCTAGGAGTGAAGGGT
-GGGAAAACAGGGTCATTCCGGGAGGACCACTTGCCAATTTGGGGTCCTGAAGTACCTGGA
-TCCAAAAGAAGAAGACTGTCCCCAGTCTGAATCTCCCACTCTGGGGAGAGGGTCACTCCT
-GGGTTGTTCCCACAATCCAGCCCTTCTGCCAGCCCCTCCCTTGGCAACTCCTTGCATTTC
-AACACCCTGGATGATCATTGAGGGTTGCACGTGGGGCAGCTGAAACAGACCCCAGGCCTC
-TGGTCCTGTGCTGCTCATGCCCCTGAGGACACTGCCTGGGCATCTCCCAGAGCTACTGAT
-GGCAACATGGCAAGAGCCTGGTGGGAAGCTGTGGGGCCATCGACAACCCCGGGGGATGGT
-CTGTGTGTCCTCAGAAGGTCTGGTGGTGAATCTTGTGCAGCAGACATCATGGTGGCCCCG
-TGAGCCTTTCCACCCAAGACAGAAGTCGGTTGACTGCCCTCCTCCACTTTCTACCAACCC
-AGACCTAGAGCCAAACAGAATTCCTGGATCACAAGGGGCCTAGGGTGGGTTTTGAGGTCA
-CCCTGTGACCCAGGCCCAGCTGTTAAGAGCCCCACATTCCTGATGCTCAATCTTGACTTC
-CCTTCAGTAGAtgagactcagtttcctcatctataacatggagaaaataatccctcactg
-ggaaggcggtggtgGTGGGGTCttccagttactgatactgtgtaacaaagtatccccaca
-tctagtggtttaaagcagtggcaacatctactttactcacaaatctgcaattgtggccag
-gttccctgggaaaagctcaactgtgctccattccgtgtcagctggagcaacttgcaggct
-ggggtttgcatccaaaactcatccactcacatatctgaaacctcagctggggcactcagc
-aaggacaactgcatatggcctcttcatgtggctaggggcttcctcatggcatggtggctg
-cttcccagagcaagcatctcaggagagagatttgggcagaaggtaggtgatctttatgac
-ctagcctcatggatcatgcagggccaagtcctctgtatctagtcaaagaagcaaccacaa
-agtcccactcaagttccaggggaggaagaacagactctacctcttgatgaggaggatcaa
-ggtttcagaagaaggtataggatgggggatagtgttgtggccatttttatttatttattt
-tgtttatttttaaatttttatttatttatttatttttgagaaagagtctccctctgttgc
-ccaggctggagggcagtggtgtgatctcagctcactctaacctctgcctcccgggttcaa
-gcaatgcccgtgcctcagcctcccaagtagttgggattacaggcacatgccaccaagtct
-ggctaatttttgtatttttagtagagacagggtttcaccgcattggccaggctggtctcg
-aactcctgacctcaagtgatccacctgcctcggcctcccaaagtgctggggttacaggta
-tgagccatagtgaccggccTGTTATGGCCATTTTTAGAAAATACAACTGGCCATGGGAGG
-GTCGGATGAGAAAATGCCATTTAAGTGTTTAGCATGTAAGTGCTTGATAGTTGGTAGCTG
-TTATTATTATCTTTGCGATTATTGGAAAGACCCAGCATCTCTTTGCATAAAAATATCCTT
-CAGAACCTGTGAGAGCTAAAGGTGCAGGAGGAAGCAGGATAATTTCCATCAGGGCTGCTG
-GAGAAATTGGCCCAGAAACCCACTGGATTTGTCCCAAGTCACCCAGTGTATCAGCAGCAC
-CCAGTCTGAGCAAGACTGGCCTGGGACATAGCTGCTTCTTCTGTTAGTAACGCTGTTACT
-ACTTCCTGGGGTATCTTCCTTGGCCTCAGCTTCCTCTCTGAACCATGAGAGCATCCTGGC
-TCTGCCTCCTCAGAGGCTGAGGGGATAAGGGCGGAGGACATGCATTCTCTTGGCTGTGCC
-CAGTCTGGGCCACCAGCCATGCCTGTTCTTTCTCAGGCCTGGGGAGCTCGGTTGCCTCTG
-AACCCACATCTGGCACTCCCTCCAGGATATGAAGAATAAGCCTGCCAGGTCAGAGGGCAG
-ATCTATTTTGGAACCTGGGACCCCATAAAGACCCAGAGGACCCTGTGACCGAGAAAACCA
-ACAGGCCCCTCTGTGttttgttttcattaaacaagcacaacatgtccctcatagaaaagc
-cagaaaatacatattggcaagaaagcgaaaataaatgttgcctgtgctctcaccagccag
-aggcaaaaaccatagctaacattttggagttttttccccccaaataattttcctctgcat
-atagatgcatattttttttggtagattttctagcaaaAAAAAAAAAAAATCAACAAACAA
-AGGAATATTGTCTCAACAATTTTTTAATTTTCTTTTACTTACTTTGGATTTTTCTTCTGG
-AAAAAAATTTAGAgccaggcacggtggctcatgcttggaatcccagcactttgggaggcc
-gaggtgggaggatcgcttgagctcaggagttcgagaccattctggccaacatggcaaaac
-cctgtctcttaaaaaaaaaaTACTGAAATCTCCAGACTTCCAATTGGAATTTATGTTggc
-cgggtgtggtggctcatgtctgtaatcccagcactttgggaggccgaggcaggtggatct
-attgaagccaggagttcaagaccagcctggccaacatggtgcaaccctatctctactaaa
-aatacaaaattagccaggcttggtggtacacgcctataatcccagcgactcagaagactg
-agacacgagaaatgcttgagcccaggaggcggaggttgcagtgagccgagatcatgccat
-tgcactccagcctgggagacagagggaaactatttctcaaaaaaaaaaaaaaaaaaaTCA
-GACAAGTGCACAGGATAACAAAATACACCCCCATATAGTCATCACTCCAAGTGGGCCCAT
-GTTAACATTTTGCATATTTGTCTTCGATTGTTAAAACAATGAAATATTACAGGAAATGTC
-AGTATTCCTTATAACTCCTTCTTGGTCTCATTTTCTCTCCCACCCTGCCCataggttcat
-atctaggtatataaataatgtataatatttttgtgttctcaaaacttaagtatatgctgt
-tatactgaatgcgacgtcctgcttatattatattttccagattgatataaatgacacata
-tagatcttgtgaccaaggacattttcttttcactgctgtgcagcattgcattatgtaatt
-tttaactctttatccagtttttggcagatggatatttaaattaattcagttatcttgtta
-ttcctgacaatactgctattaccatcttatatgggaatacttgtgcttacaagcaagggc
-tcctctggggaactaatccaggcatgctcctcctgggtcgtggaatatatgtgctgccag
-cctgaggcagttgccaaattgtgctccaagtctctctgtcgagttaattccagtagggtg
-ccggggtctccatcgctccgcacccctgccatcccttgagatggtcatgctttacctttg
-ttccaatctgatggctgtgaaatcgtacatgtaattacatagcctgctttccctacttaa
-tagtatattacggaactattttcctgtgcagaatattgttctatatgtgggtgtttcaag
-gtggcataagctgaaagcctccattggggtgttgctgggattttcttaaccaattcccta
-ttgttggacaacagggtttgtttTtgtggtaggattgcaaaactgaccacagatgctacc
-cacccctataagcatgctcctttgcagtgtgactctgcagttctccctattaagaggcaa
-agttcacttctccactcccttaatgctgacttgggccatgtgacttgctttggccaatgg
-gacattttcaagcagaggcttgaaaagggcttgtgctctggggcttgctctcttgctgca
-cctggggccctgagaccaccatgtgaatgagtcctggctagcctgagggatgatgagaca
-cacttggccaagtcatcctgtcatcccagctgatactaaaccatccaccagatttgtgag
-tgaggccatcctagaccatctatctagcccagccaaactggtgcggaccagaagcaaagt
-ccagttggcctgcagagatgtgaaaaataaatgttttaagccactaaattttagaggtgg
-tctgttagacagcaagcctgatacaGTTCCACCCAGCATTTtctttgctcaaccagttac
-tggctgggaaccttgggcaagttgctgagccttagttttctcctcagtacaatgggggat
-tacatacgcactcctcaaagtcgttgtgaagattggatgagatggcacctgtCAGTATCA
-CATGGCGGGGACCCCATAACCAGGGGTTCCTCTTTCACATCACGGTGGTCTTAGATGTGA
-CCTGTGACCTTTCTTATTGCTTCTTGGTTCTCCCTGCTGCCTCTTTCTCAAAAATGTACT
-CATCCTTCCAAGTTTTCTGGAGAGTATCAACATGTAAGTGTAAATCACAATCCCTAGTGC
-TCTCCAAGACTTGCAGGTATCTCCTCCTTCCAGGGCCTTCCCTCTTGAAATTAGGCATAG
-Tggctgtgtgcagtggctcatgcctgtaatacaagcactttgggaggccgaagcaggccg
-atcccatgaggccaggagttggagatcagcctggccaacagggcgaaactttgtctctac
-taaaaatacaaaaattcaccgagcgtggtggtgcatgcctgtaatcccagctactcagga
-ggcggaggcatgagaatcgcttgagtctgggaggcggaggtttcagtgagccaagatggc
-accactgcactccacactccagcaagacccggtctcaaaaaaaaaaaaaaagtaaggaaa
-agaaaaAGAAAAGaaaaggagtctccatccagaccccaagagagggtttcgtggatcttg
-cacaggaaagaattcaaggtgagttgcagagtgcactgagaagagatagtttattgaaag
-ctactcagttacagagaaggatgtcctcagaaagcaagaggaagaacgcactgtctttgt
-tttaaactcttctaatgtaggagtcttatctaagtaaaagctaagttatgtctttgtgca
-gacagaccgacagtgtgacagaatccattaccgttgacttaaagaaagttatccttggca
-ttttagtaagtacatcagatcacgacagtaattgttttgaaagcataaattgttatgtga
-tattggaacatctgggcattttgctgtcgtaagagtttactcttgcaggcattattgagc
-agcttccttagccataaacatcttatgactgtgggctgtgattagcaaggaatgtgtctt
-gctagttttaagatagagttgattttaaaatggtgtcaccctagctctcctatgctcctg
-tttcccaaacaTAAtcccccctctacttaagagagaaccctaaatcttaaggggagatga
-aaggtgaaggtcatttttctgtaacttattcctgctgacagtggACGTTGTTGACCTTTG
-GGAGAGAGTTCTCTCATAAGAGTTTGCAGAGAGCCTTGTAGGGAGCCGGGGAAACTCTTC
-ACTTGAATGACATCCCGATGATTTGGTTTAGTAAGTGTAGGGGCAGATAAGCTGCCAGAC
-TATTttatctccgtaatcccatgcaataagtgcaacagaagtaaaaagcacaataaccaa
-tagcaataagtgtgacaacacgaagcatgctaaaaaggaatgccttccaagtgctgggga
-gctggccaaactgtgctgttatgacaggaagtcaattgctgaggtatgagtctctaggga
-gttcatggcctgagatatattatgagagtgaccaggaatatagacacagtgttcagtctt
-gatcaatgcacagattttcccagggctgctgttaatatgtttaaagccatatggctttgt
-aaggacatttgtcttattcgggacgtttcttctgtcagacgggtgatcaccagatgagtg
-ttgttgaaagccacagcagtatgttttgctagggctcccacctgcgattcaacgtctata
-gatgttgcttaaagacagaatatgggcacaggatataaccaccaaaaagtttgtttctgt
-tgcctatcacagaccttgactacttcccagttggtggagagggaatccagatgtgtaagg
-atacatcctagaaggtagggatgaccccaagtgcatcatccagtcaaattgtaaggtgag
-tatggccaactatgagacccacatgcccataaccattcccaaggggaaggatagtcacct
-aaccatagagattcattttgccatcccatccacatttggtcaattgaaaggagagtctga
-ttgcattgttggggtggcagccatccgatactatagatgttggtttgggggtggttactg
-ttgatgaaaagagtcgaactctgtaaaatatttgaagagacttattctgagccaaatatg
-agtgaccatggcctgtgacacagccgtcaggaggtcctgagaacatgtgcccaaggtggt
-tggggcacagcttgattttatacattttagggaggcatgagacatcaatcaaatacattt
-aagaagtacattgatttagttcagaaaggcgggacaactcaaagcggtggggggaaggag
-aggcttccaggctataggtgaacttaaacattttctggttgacaattggttgagtttgtc
-taaagacctacgatcaatagaaaggaaatgtttaggttaagataaaagattgtggagacc
-aaggttcttttgaagtctcatagtagctgccctcagggacaatagatgacaaatatttcc
-tatttagacctttaaaaaggtgctagactcttacttaacctcttcaggattgggagggcc
-tggaagaaaaagatgtagctatgttaatagagattctttacagatgcacatttgtcccca
-caaaggacagctttgcaagaccatttcaaaatatagcaaagaaacatgttttcgggtaaa
-atattttaattttcttccttgtctcataacattatgccagggtcaggtcggaaagtaagt
-cacaatatgtagggttaaataaaacccatctgaggagaatttatggtttgtagggcatga
-ctcccagaccccttagataggaatttggacaagaaaaaaaaaaatcagagcctagtcctc
-ataaccattatgccttccaaggcataagggtactttgcctgataactgaatttggatacc
-tgtcaaccaactgagtccatcatgtatggtatagcctaaggtagggatgctattaagtta
-tttGGGATTAAATGAAGAAGGAATTTCTTGGTTTCGGTGGAGGAAGGGAAGAAAGAGTGG
-TGTGTGTCCTTTTGGAAAAAGGAGAGTACATATTTTCTGTACTCAAATTAGCTGATTGGA
-TATGCCAAGGTAAGCCCGAGGTTGACAAAGTTTGTACCCATTCTGCAAACAGATATCCTC
-CAACTCTATAATAGAGCAAGCTCAACATTAAAACCAGTGGTCTTATTTTCAGAGCATCAC
-TTATCCACTGGATAgctttttctggaagagaagccgtagatccactattggctcacagga
-gtattctggaatggtgatccctgcaccagatgcctgtgggacttcatgagagacaggttt
-aacttgggataaatgtacccaaatatgtaatcccttaagtttaactgtagtaggagtgcc
-tggaagtacatggtagggctctttctattttggggaaagctgatctgcaggggatccctc
-cttccaaggtttcaatagcatgaaatctcctggTCAAacaggagagaatatttatgaaga
-tggtcctgacacatgtatactgaacaaacatgcatgtaacatatgactctgttcacctta
-aggtggagacttaatccttgccaggcatggtcttagatcctgtttataatttgaaatctt
-cttgctataaagtttctattctatcagtcttatgatctctgttttaatgttaatgctggt
-tggttgtgcccgaattccaagagggagaattgtacagcaaggtgtgtttgaccccccagt
-ccctcttcccatcatggccagaaccagttgttcaggatttttaaaaaattattatttcct
-tttgccaagagagaggtccattctgttgggtggcttaggatatttgtttatttattagtt
-taGTTTATGGTATcccattttgtcgaggtgccagaggcagtattgaaggctaagctttta
-ttgtgtcccatatcaatgctggggtggtgtcctacttgccctggtccattacctcccttg
-gtggaacacttatggtcaaggaacttagagtcaaaagacttatagccaatcaaatgttct
-aggccagatgggaatggaggtgagcaggcactcattaaccttaaagcctctttaagcaac
-ataagagccaaaaatcaaaagccagaaggcaaggtataaaattggcttatttagaaattc
-tatgcaagagctactataatcttggtttgtggcaattagctatacaaactcaagaattat
-gtttagctatttagggatctgtgtgcctgtccttgatttggagtgtcagaattaatttta
-ttcctcaaaactggcccttacaatctcatgtgatagtccctgggcatggaggaattgaat
-agtttcaAATTTTGGAGGTAAAACAAAACATAAGGCATTAACAACATTTTAAACAAAAGG
-TCATAAGCCCTGCCTAGTTTTGAGAGTGACAGGAAAGGAAGTTCACAGGTAGCTAAACAT
-TTAAATTATTTAGTATCAAGACATAGAATAAATTATATTATTTCAGATAAAGGCAAAATT
-ATTAAATGAGTCTTAATGTTTTTGAATACAGGActgcctctgtgtcttatggaagcagtt
-tattttgattgtcacttttgtctaggtctaaagatgagactttggtcaacttgagtttgg
-tgtcagatactggcagaagtcagtgccttcttcttttttgggacagagtctcactctgtc
-acccaggctggagtgcagtggcatgatcctggctcactgcaacctccacttaccagcttt
-aagcaattctcatgtctcagccacgcaagcagctgggattacagatgtgcacgtaccacc
-acacctggctgatttttgtatttttagtagaaatagggtttcaccacgttggccaggctg
-gtctcaaactcctggcctcaagtgatctgtctgcctcagcctcccaaagtgataggatta
-taggcatgagacactgtgcctggcagtcagtgccttccttagatgagatattggacccag
-aagtcaaagccctgtaacttaacagcacaaggattagttaatagCACCTGATAAGGATAC
-TTTTGAGGGGGATAGAGTGAGCCCTTTAATTGATGTTCTTCCAATATATGTAATTATCAG
-GCTGGAGGTGGTGATCCTGGAGTTCATGGTCTGACTGGAAGCTGTGAAGACTTACAATCT
-TCAGTGCTTAATTTTTATGGCTTTAGTAAGCCCCAGCAATATGACtaagtcagagactta
-atttaggattttgattttgaagatgtttgttaaagatgttaaaaggctcaaaacatttga
-tcaaaacagaagcacagatcatggtaaaatagcatttactcatttacccaaagtgatcat
-cgaaatactttaaaggcaatacagaaggttacatggatgtaaaaaccttaacccttttaa
-aatctcagtttctttagcaatgaaaaacctaataaagacagcatagaaattatcttgata
-atacataaaatctcagttttttaagccatctactaaaaaagcaaaaaagccctactgcat
-tgtgactacttttacttattggaagctcatttagataaccaggaagtcaaacttgatgaa
-aaaagtgcttgaatttaatcagacacaggaagactgttttcaaggttatgaatatagcag
-gggaatacacgactcctaggaacagcatgagaagttttctgattgcatcaaaaatttaga
-catatcaagaaaagccagtgtacagaatgcagttatactagaggaaaacattgcttttct
-agacctccaagatgcaatatgttagcatttggccataataacagttagaaccagagcagg
-gagaaagttatagaagctgacagaaaaattaaaggagagagttgttatctcaagcattct
-caaagggagaaacagctgaaagctgtttttttcaacagcacagcaacagttgaacttttg
-agatatgattctgagaagttttaaaaagaaaaaggttataaaattaaaggtaagatttcc
-tataatttatttaaagagcatatcaatatcttaagaaaaccttgttttgatgtaagggac
-caatttttagacaaattattataaataatttttttataactaatgatatgcaaaatccct
-tttacaaattcccctttatgacttacatagaccatctacgacatgcttggactctctgac
-ttgtcctgaacttccctctttgctaaacaatcagtcattttactttaggacaaaaattta
-ccatataagactctttttcatataaaattattctcttttctttataacctttcttaccat
-aaatacatcttcatatttataactttctttacatctctctctctcccctacctactggtc
-cctttctaccttgtttcataagtaaacattttcaagttcgtaatttgaattgaccttcaa
-ttcagataacttctgaattagacaaaattatttttttctcagtaatactagatcttGGCA
-GGCTTTTGGCCTCTAACATCACCCAGAGAGAAGCCAAATTAAACAACCTAAGAAGCAAAA
-ATCATCAAGACCAGAAGGAAAATGTTAAGTGTAAACTTCAAAGCATGTGAGCGTAGGGCG
-ACATGTGTCACTACTGAGGCACAGACAGCAAATATGTAGTCATCAAAAGGGACAAGGGGA
-TCAAGAAGCAGTAGGTGCTGGAAAATATCCCTCTGAGCCTCAAACAGTTTATGCATCAGG
-GTGACACTGCAACCCTGGGCCCCTAATGGCAGAAAAACGCCACACAACAGGGTGGCAGCT
-GACCAGAAGGATCCCACAACTCCAGGCTCCCTAGCAGACACAGCCCAAAGGATCCAACAA
-CTCTGAGTGGGGGGCTCCAACCCCTGGGCCCTGAGAATATAAAGGAACATGAGTGTCCCT
-GTGTCTCCTGGGGCTCAGAAGGCTAGGCTGAAAAGTGACAACAAAGGGAAGGGCACTCAC
-CTGCCTGTGAATCCaaaactggaaaaagcaagaaatcctgagctgtttgtcagatgttag
-cattttatagataaagccattctataattttagaaacatgctttcccatatcataaactt
-ttcttaattggaaataacccagacatctgatgagtaatctaaggaaagctgtggaccaaa
-attttgggtaaagtggtctttatggaagttaaaaaaaaaaagatttaaaaaaagatttaa
-agattttttttttaaaGCCTggctgggcatgatggctcctgcctgtaatcccagcacttt
-gggaggccgaggcaggtggatctcttgagaccaggaatttgagagcagtatggggaacat
-agtgagactctgtctctataaaaaattaaaaaaattagctgggtgtggtggtgtgcacct
-gtggtcccgaatacttgggaggctgaggtaggaggatcacttgagcccaggaggttgagg
-ctgcagtgagctgtgattgtgccaccgcattccagcttgggtgacaaagcaaaaccctgt
-ctaaaaaaaaagagaaataaagaataaataaaaGAATACATGAaattaaattttaaaaaa
-gccttttccactttttttccttcagtgtcaaatgaacttctaatgtttccatttcatcta
-gaactgactgaactgcgttaagaaaaataaaatctccaagtagacttgaattagtaatac
-ataaacagtgagtcttatctcaacaccagcagcttaataacagcagatttaaagcaggca
-gaaaagaaaagggagaaatagataagagagctttagaagCAATAATCAGAGGCAAGCATG
-GAAAGTGAAAGTAGCAAACTTCTGGGCTGGCCATACAGAGCTGTCATAAGCCTGCAGTAA
-AGCAAAGGTAACAAGCTGGGAAACGATGAGAATTACAGCATTCCCATACCTGGCAAAGGG
-GACAATATGGATTAGTTCATAGCAAACATCTTGCAAAGCTACTTCCATTTTTCCAAATAT
-ACCCCAGGGGCTCTAACCCCATGGGTCTTTGGGCCTCTGATCTGAGTATTATACCCCAGG
-GCCTCCAACCCTGTGAGTTGGGCCTCTGACTCCATGGGCCAGGCCTCTAGCCTGAGTTTC
-TAGGCAAGTGTCCTTGCCTAAGCCTGACATAGTACACCaagatggacctcacttaccaga
-agcggccaattggtgctgcagactgaatttcttttgcatagggtctcgtcttatgcttcc
-ttcatggtcgctaggaagatgttgccagaaaaggggccatgattcaaaccttaaaaaagg
-gttcttaggcctcacacaagatggaagtcaaggcgagtctcaaagtgcattgagaacaga
-tagtttattgaaagctactcagttacagagaagggtgttctcagaaagcaagaggaggaa
-cacattgtctttgttttaaactcttcttatatatgagtcttattcatgtaaaagctaagc
-tatttctatgtgagtggactgacagtgtgacaaaatccatgactctgttgatttaaagaa
-agttatccttggcattttaatgtgtaagtacaccaaagcatgactataattattttaaaa
-gcacacattgttatgtgacatggaaacatctggacattttgctgtctaggagtttgtcct
-tgcaggtattattaagtggcttccttagctgtgaatatcttatgatcatgggttgtgatt
-gggaaggaatgtgccttgctaactttaagatagagttgattttaaaatggcatcaccctg
-gctctcctatgcttctgtttccctaacaAAGGAATGCCCCTTCCCTCCACACCCCAAGCC
-CCAACCAGCGGGACCTGGAGGTAGGGAAGACAGCATGGGAAGCCCAGCCTGGATTGGAAG
-CAGCAAACATTTGACCATCCCAGCCACAGGGCATGCCTACCCTCTTCTCTCCCTGGACCC
-TGGCCTCGCCTACCGTGGCCATCCTGCTCCCACACTAATCAGAAACTTTCCCCTGGAAAC
-CCGTCCTGGGCCCAGCCTTTGTTTCAGGTCCTCCTCAAGCCAAAGACTTCCTGATGCAAG
-CGCTTCCTCCCTCCAGCCAGGGTGAATTCTGCCCTGTCCTTAGTTGGCTTTTCACATTCA
-CGTTTCCTTGTGATGCTGCTACTCCGGCTATCAGAGTCGGGGGCAGCAGTGCTGAGGCCT
-CCCACCCAACCCCAAGGTGGCAGCAACATCCTTCAAGTTCCCTCCTTCCAGGAAACCATC
-TCTGGCCCCTCACTTCACAGCGTCCTCCCTCCTGTTCTGCACCTGGCATTTAACACATAC
-TGCCCCAATCACTGAGGATGTTGTCACTGTTGGTAATACAAGGAATAACAGCACTGACAA
-CAATCACAGGGTCAACTATGGGAGAGCAAGAGGTTGAGAAAAACAGACTCTGCAGTGATT
-GGATCTGGCTCAtctgagcctgagttttctcacctgtgaaatggggtcagtgtagcatct
-accagccttgtgtagctgctggcagataaaattagatcaatatatatcaccatcagcact
-cagagggctcagtccctggGGACAATTGTGGTTATTATTATTATTATTGTTGCTGCTACT
-ACAGGGAACACTTGCCAAGGCCTTCCTGTGGGCCACTAACTGTGCCCCCACTCTTCCAGA
-TTCACACCCAAAGGAACAGggtgctatgatacccattttgtggttgagaaaaactgagtt
-ccatcaaagtgaggagatgggttcaaggtaccacagttgggacctgaaaagccagCAATG
-CACTAAAGATGTGGGTGACACAAGGCTTGGACCCTAACAGAGCAGACTCTGAGCCCTGAG
-GGTGGAGATCCCAGCCTAGTTCACACTGCTGCACAACCTGGCTGCAGGAGGACAGCCAGT
-CTTGgggctctggcctcggacaacctgggctaatccttccaccttctagctgagtgaacc
-cgggaacatcacttaaccttcttgagctcagtttttgcctttggaaggtgaaataatggt
-ctctaccatgcagggggtgggggaggattagatgggtaagtggatggaaagcttgagccc
-agagcctatgcacagtgggctgctcaggaaggtagAATCATGCAAGCCCAGGCCTAGAAA
-TTCTAAAGGGCAGGCACAGGTTCCCCACAAACATGACCTTGGCAGAATCCGTTTCTGAGA
-GTTGGCAGCAAGAAGAAGTTGTATGGATGACAGAAATTCTCAAATTTGCCTATTTTCTTA
-AAGTGGACATTTAAAAAATTCCACATTGGGGCGGAGGAATGTTCTTAGCCCAGGGATTGC
-TATACATAGGTTCATGCATTTACTATGCGTTGGTTCATCTAAGCccaacctcagggtctt
-tgtatttgctgctccctctgcctggatcactgtttccccagtgggtctcttcctaacatt
-ctagtctaggcttaactatttgcccttcaagagatcttccctgggcaccctataaaaatg
-catccttcacataaactctttctccttttccctactttgtttattcatgctgcttttact
-atctggcatcatattctaaatttatttgtttatctgtttgttgactgccttcttgtctta
-gcctattcaggttggtataacaaattgtcatgaactgggtagtatataaacaacagaaat
-ttgggctgggcacagtggctcaagcctgtaatcccagcactttgagaggacaaggcttga
-ggtcacgagtttgagaccagcctggccaacatggtgaaactctatctccactagaataca
-aaaattagccaggtgtagtggtgcacacctggggtcccagctacttgggagggtgaggca
-gttgaatggcttgaacccgggaggtggaggttgcagtgagccaagatcgagccactgcac
-tccagcctgggcaactgagcgagactccatctcaaaaaaaaaaatttaaaaataaattta
-ttttcacagttctggaagctggaaagtctaaatcaggtcatgggtagattagatgcctac
-tgagggcctgctttctggctctgggagacttttagctgtgtctgcatatggtggaatggg
-taaggggctgctctggggcctctttcataagggcactaattccattcatgagggctccac
-tcccatgacgtggttccctcccaaagtccccacatcctaacactatgacatgggaattaa
-gtttcaacatataaatgttgggaagacgcaaacattcagaacatagcactttcccattag
-attgtgaggataaggactatatctaagccattcacttctatatccctgttgcccactata
-tacctagcatacagtaggtgcttaataaatgtttgaaaaatgggtgaatGAAATATTGTA
-CTTTCTAATTcaagcattttctgagcacctactgtgcaccagggcctgtgctatgggctg
-tatatacagaaatacatcagtgagagtcctcagccctAAGGCCATTGGTCTGAAGAAAAA
-AGAGAAATTGCAACAAGTGCCATAGCAAACACAGCTGGGAAATTCACtgatgtagtttgg
-aggtgtgtctctgctcaaatcatatattgaaatgtaatctgcagtgttggaggtagggcc
-tggtgggaggtgattggataatggaggaggatttctTTTTTTATATCTATcaggaatgca
-aaattaatttaataatcgaaaattactataattcacagactaagacaagaaaagccatac
-gattctctcaccagttgcagaaaaagcatatgatagaattaaacatctttttatgatttt
-ttaaaattatactttaaattctgggatacatgtgcagaatgtgtaggtttgttacatagg
-tatacatgtgccatgttggtttgctgcacccatcaacttgtcatttacattaggtatttc
-tcctaatgctatccctcccccagccccccaccccctgacaggccccagtgtgtaatgttc
-ccctccctgtgtccatgtgttctcattgttcaactcccacttatgagtgagaacatgtgg
-tgtttggttttctgtccttgtgatagtttgctgagaatggtggtttccagcttcatccat
-gtccctgcaaaggacttgaactcatccctttttatggctgcatagtattccatggtgtat
-atgtgccacattttctttatccagtctattattgatggacatttgggttggttccaagtc
-tttgctattgtgaatagtgccacactaagcatatgtgtgcatgtgtctttatagtagcat
-gatttataatcctttgggtatatactcagtaatgggattgctgggtcaaatggtatttct
-agttctagatccttgaggatttgccacggtgtcttccacaatggttgaactaatttacac
-ccccaccaacagtgtaaaagcgttcctatttctcatggaggaggatttctaatgaatggt
-ttcacaccatctccttggtactgtccccatgatagggagggagttcttgtaaaagctggt
-catttaaaagtgtgaggcccccaccgcctctttctcttgctcctgcttcaccaggtgatg
-tgcctgttccccctctgccttccaccaggattggaaacttcctgagacctccccagaagc
-tgatgccaccatgtttgctgtgcagcctacagaaccgtgagccaattaaacctcttttct
-ttataaatgacccagtctcaggtatttctttctggcaatgcaagaacagcctaacacaTT
-CACCTCCAGCTACTGCAAGCATTCATGGGGATGAGTGAAAGGAAGGAGAGAGGTGGCTGC
-TGTGTCGAGGGTTTGCTCTACGACAGGATGGTGCACTTGCCACCTCTGGCTCGATCCACA
-CACTAGcccattttacagattaggcattgggaactcagagaggtgaagtgacttgaccaa
-aagcaaactcatggcagaatgaagactgggaccagggaggcctaattccaaacattgtgt
-gttacctcctctaccacaaggcctctctTGCCCAAGAGAAAGAATAAAGTCCAGCTAAAG
-TGAGCTCAAGCAAAGAAGATATAGATATGTAATTATTATCATTGTTATTACTATTTTTTT
-ctcatgtaacagatacatcaaaaagtagaagccttcaggcatggctggatctagggtctc
-aaacactatcactagaactgctccattcttagAGAGGCTCTCAAGTCAAAGTGACAAGAC
-GGCTGCCTGCCATGCCAGCCTCCCCTCCCCTACTCCCAAAAGACCAAGTCCAGAGGGAAA
-AAGAATGCCTCATAGCAGGCCGTTGAGGTTGGCTAATCTGGCACCCATTCCCATCAGCCT
-CTTCCTGCTACAAAGGCTGTGCAGCCAAACGTccacctttctgaccctcctgcagctggg
-tggccacaggacacagttctggtcaatgagacataagctgaagtttgtggtgagggagag
-cttttgctcctctgataacaggagcagttgtggccagagctgccccttcccatgttgcct
-tgatcacagacatgatatttgaagcacagaccatcttgcaaccaggaggaaaggctgaga
-aaaaaaaagtcctcactattttttagccatgacattgttaagttgctggactcctaactt
-cagacttcttcctaagagaaaaataaacttccaatgttcaagccactgcattaaattcct
-tgttacttgtagctgaaagcattcctgactaatacaACTCTCTGTCTCAGGTCCCTATAA
-AAACCCTGGGAAGGCATCATATTGGTTCTAATGGGGTCATGCTGTCATTCTGCAATGGAC
-TGTGGTGGCCAGCAGAGATGGGATGTGCCAATTGACCACTCCAGTGGCCACCCTTACCAC
-ATAGGCTTCGAGTGGGTAGGGTTGTTCTCCAGCACAAAAGTTAGTAGAGTAGGGAAGTGG
-TGGCTACACTCCCTATACCTCTGAATCAGTGGAGGCAATAAATTCCCTGTTCTTGGCTTA
-AAGTTTCTTCCATCGTTTCCAGGAACATGAAGATATTGACTTATTTATCCTCCAGGATTT
-TTATTTGGAATGTGAGGGGAGGATAATTCAGTGAACAGTCCAAATAGGGGATCTTCCTGG
-GAAAAAAGGACAAGTCATAAAAACTGCATTGAATGCCAGTGTGCACAATGTCCTTTCTGT
-GCCCCAAGACAGTCTCCCTgcatgagttcttgagccagacagacctgagttcaaacccgt
-ctccatcatgcaagtgcgtgggcagcctcgccatgtcacctcacctctctgcacctgcgt
-ctcTAGAACCGGGGGTGGAAGGACCCACTTCAAGGACCCAGTCTTCAAGAAAGAGTGGAC
-CAAGTGCCTCCCCCATGGTGGCCCTTTGACCAGCAGCAACACCCAGAGTGCTTTCTCTGT
-GAACCCTTCCCTGATAATCCCAGAGTCCCAGGGAGAAAATCTGCTCCCATCTGAAGCAGG
-AACCATCCAGCAGTGAGTGaacccactgccatttcctcctgccatgtggctaggccatat
-tccacagcctcccttgcagtcaggagtggccacgtgccttagttccaatccactgcactc
-cttcccctttgatgggtttgatgcacacaggtctgaagacctcagcagccacagtggaag
-atggcagagctgcaggacaccaggagcttgggtcctgaaatctttgtgcgctagagctgc
-tcacttaccaggggcacccatgttgggcttttggtgagtaaggaaaaaacctctttggta
-tttggtgcatggtgcctcttgggcttACGAACGTTACCCACATGCACCGCTTGGGGGGCA
-CCTGTAAAAGTCTGCAGGACGGTCAGCCCGGGAGGACATTCCATGTGGGCACCAGCAAAG
-GCAGAGGGTGGGAGGTGAGGAGGCCTGAAGAGCCAACGGCAGCCACACTGTGGTGTTGGA
-ACCAGATTGTCCTTCAGTCCTCCCGCCTTGACTGCCAGAGAGCAGCCCATGATCACCATC
-ACATCAAGCCTGCAGGCAGGGTAAGAGATTAATAACAATACTAACAACAGTaataatagg
-aggctctgccaatattcaagagaacttaccactcaccagctgcgggctggtttcttccta
-ggcctgatctcatttaatcctcaccatggcccagcaatgaaggccctactgatgtcagtc
-ccattttacagacaagaatacagaggcccatgaggcgtcggaggacattctccaaagGGC
-ATGTTCTTGAGCTCAGCTTCCTTCCAGCACAGCCTTTCATCAGGGCTTGGACCTTCATcc
-cattatatgtccagcattattcataggctgaggacacagaagtgaacaaagtagatagaa
-atctggacctcgaggggctgcgactctagtgggagaaaatgggcaataaacacacaaaca
-cgtaaatatacaaaaggagtttggtgaaggatgagtgacatgaagacagcaggtcaggat
-gctgcggtgggtgaagggaggaggtggtgctgtgcatcttgaggttggaggaaacctctc
-tgacatggagctgaaagtgctgcagcaaacgagtgagccacgtgaagatctggggcaggc
-tgttcctggcagagggaacagcaagtgcaaagtgcaagtgctacggccctgaggctggaa
-ggagcttgtcatgttcaggaacagaaaggagagagcagtgtggctggagtggagtgatgg
-ggggtggggagggatgaggctgcagagggagtgggttgggacaagTGGCAAGTTTTGGTG
-GGCAATGGTGGCAGGGGTAGATGATCCTCCAAAAAGACTCATCTGGATGCCAGCTCTGGG
-GGGTGCAAGGAGGGTATTCCAATGAGGAGAGGAGACAGGGGTTTCAGCCCAAATTTGCCT
-CCCCACTCTCCACTTGACTTAAGCTGCTCCCctctcccttcctttctctcattccctctc
-tctttttctctctctcCAAGTGGAAGCTGGATCCCTAGGGAGGATGAGGCCCGGGCTTGA
-GTCCAGGCACCAACAAGAGCGCGTTCCCACCCTCCCGAAGGTCTGATGTGGAGCAGAGGA
-AAAGAATGGTCCTGATATCACcggaaaaagggtcttatcccatatcgcaagagtgggttc
-ttggatctcacatgggaaagaattcagggtgagttgcagagcatagtgaagttaagatag
-gattagagactaatcaatgacagagtagggcatcctcagaaagcaagaggagaacgtacc
-catttcaagtaccagtgcttgcttatataggcagttaagagtagtgtactctgggctcac
-ccctgtaatcccagcatgttgagcggccaaggcgggcggatcacttgaggctaggagttt
-gggaccagcctgaccaacataatgaaaccctgtctctactaaaaatacaaaaaactagct
-gggcatggtggcctgagcctgtggtcttagctacccaggaggctgaggcaggaggatcgc
-tggagccccgaaggtccaggttgcagtgagatggtgccactgcactccagcctgggtgac
-agagtgagactctgtctcaaaaaaaaaaaaaaaaaaaagaagagtagtgtattctgttac
-aaaggcttatgatcagcttgtgacaggctactagtattgctactttcctatgttactatt
-gattttagcaagaatttatgagtgtactattatctttaaagcaaaacctaTTATTTTATT
-TTTATTTATTTATTTATTTATTTtttgagatggagtcttgctccatcacccaggctggag
-tgcagtggcgcgctctcggctcgctgcaagctccacctcccgggttcacgccattctcct
-gcctcagcctcccgagaagctgggactacaggcacctaccaccacacctggctagttttt
-tttgtatttttagtagagacggggtttcaccgtgttagccaggatgttctcgatctcccg
-acctcaccatctgcctgcctcggcctcccaaagtgctggaattacaggtgtgagccaccg
-cgtccggccgaaacctgttcttaaactaagaatttttttttgttcttaagatattgggac
-attttcataagttctgcgtctttaagtaacatcattaactcgttccctcaaccatgaaca
-tcttgtaaccaagcacgtccacgcccctggaaatgtaacccagcaggtttggcttttctg
-cctttattcaatatggagtcagtctggttaggatgcctttgTCCctgagagtcagtgccc
-tcacagcccctgcccggcctctaacttgctgtgtgacctggagctgatcattcgctctgg
-gcttcccttttctcctctgtttgaggagggagctggtctggtgccaccattttccagctg
-tctgtccttaggcaaattattcagcatccctgtacctcagtttcctcatccatgaaatga
-ggatggcccagttccaggcttacggtgaggattaaatgCACAGTGCCTGGTCTCAGTGGC
-TGCTGGGAATTACCATCATTACTGTTGTTTTGCCATTCTATTGCTATTGCCAGTGTTGCT
-ATTAGTATTCAAAATGCAGATTGGTggctgggtgcagtggctcatgcctgtaatctcagc
-actttgggaggcagaggttagaggatcgcccaggggttcaagaccagcctgggcaacacg
-gtgaaacctgatctctacaaaaaaaaaaatacaaaaattagccaggcatggtggcacgta
-cctgtagaccttacctgaactcaggggggttgaggctgtagtgagctgtgatcgtgccac
-tgcactacagcctgggggacagagtgagacgctgtttaaagaggtttattctgagccaaa
-tgtaagtgatcaagacccgtgacacagccctaagagatcctgagaaaatgtgcccaaggt
-ggttgggttatagcttggttttatacattttatgggtacagaagttacaggcagacatta
-atcaatccatgtagggtgtacattggttttgtcgggaaaggcaggaagcttgaaaagtgg
-gcggcttccaggttataggtgaattcaaagattttctgatcagcaattggttgaaagagt
-taagttattatctaaagacctggaatcaataaaaaggaatgtctgggttaagataagggg
-ttttggagaccaaagttcttattatgcaaatgaagtctgcaggtagcagccttcagagag
-aatagagggtaaaggtcccagactctttgttaaatctctcctgcatcaggaaaagacctg
-gaaagggaaaaggattctctacaggatgtagattttctctacaagagacagagttgtagg
-gccatttcaaaaatatgtcaaagaaatatattttggggtaaaatacttcaatttctttca
-ggtcctgctatctgttgtgtgatgctatatgaggaatttggtatcttattgctacaaaga
-gcatgctttgtcagtcttaagctctctctctctttttttttttttttttttttgagacag
-tgtctctctctgttgcccaggctggagtgcagtggcactaccttggctcactgcagcctc
-cgcctcccaggttccagtgatactcctgcctcagcctcctgagtagctgggattacaggc
-gtgtgccacctcgcctggctaatttgtgtatttttagtagagatggggtttcaccatgtt
-ggccaggctggtcttgaactccgaccttaggtgatctgccgccgtcttggccttccaggc
-gtgagccaccacgacctgccaagctctctgttttcatgataatgctggtcaactgtgcct
-gaattccaaagggaggagggtatgaggcatgcctgatccccactttccatcatggcctga
-actagattttcagggtttgttgggtcccgttggccgagagggaggtccattcagtcagtt
-agggggcttgtaattttatttttggtttacaGTTCTGAGGCCCCTTCTGGCTTTCAGACT
-GGCCTGGTTGCTTCCCATCTGGTCACCTCTCTGTCAGTGTTGGGGATCAGCATTCATCTA
-CCCCACGGATGTTCTGCCTGGAGTGGGGGTGGGAAATGGGACTGGACCTCTCGCCATGGG
-ATGCAGCCAGGCCCTCTCTGCTCAAGCCTTCCAGTGCTCCTCACCCAGACACCCTTCTGC
-AGGGACCCCAGTTTTACTCCCCTGAAAAAGAAAGTTTCCATCAGTAGGAGAAGACAGGAC
-CTGAAATTGTCCCTGAGCCTACATGTCTACTAGGGTAGATATTTTGAAAGCCGGAGAGAG
-GAGGAAGCAGACAGGAAGGAGACGAAACCCCAGGACTGTCTGCTAACTCCAGGAGGACTG
-GTCTTCAGAACCCAGGGGCCCTCCGCATTCCTTCTGCCTCCCTATCTCATCGTAGCTCCT
-GCCCCATCCCCCCACCACTTCTCTCCCCTTTCCTAACTGCGTGCCCTTCTCTCCTCCAGT
-CCAGCCCAGCCCTACTGAAGAACAGCAACTTGAGCTGGTCTTTCTGTGCTCCGCTTGATT
-AAAATGTAGAAGGCACCTCTATCCAGAAGACTTGGCTTGGCCCTAATCACTCCCAGCCCC
-CTTGGCTGAGTGGCCACCCGCTGCTGGCTGCTGTCATCCCACATTGGAAGTGACGGAGGA
-GCAGAAGAACGAGTGGGTCACCAGCCGGTCTTCAGGCTCCCGGGCCAGCATTCAGACTGG
-GCAGGAGGTTTGTGGGTGGAAGGTGAGTTGGGCAGCCCGTCAGCCACTCCTCAGGGCTGG
-ACGGAAatagtgattaggagcatggggtttgatgtcagatggcctggggttgcagcctaa
-ctttgttatttactatctgtgagttaagccctctgggtttcagtttctccatttgtaaaa
-tgggactgatattggaagatgtcctacttagaatggcgcctgagccatcgtaagccctca
-gtgaatCCACTGTAAGACTTCAGCCCCCAGACTCCCACTGTTCCCTTGCCCCAGCTTCCC
-TGCACCTCTCCTGCCACTTCCCTCAAAGTTGCTCTCAGTCAGGCCTTGGGAGCCACAATC
-TGGGAACGAGGACCCTGACATCCCTCTTCACAGCTGTACCCAGCACCAAACAAGTCATCA
-GAGGTTCAAAACACGGAGCCCCTACCATGTGCCAGGCACGGCATGGCATGCCTGCTCTCT
-TTCTAATTTTGATACCGCAATGATTAATTCTGTGAAAAAAGTTCTAGAAGGATATAAGGC
-AAAGAATTAGGTTGTGTTCCGTCCATTCACTCACGGCTCTGCTCCCACGCATGGCTGCGc
-tatgcacactgccctgcagcttcctttgtctgctgcacaatgggctctggacggagccct
-gttggcgcaatgagtgagccctacatcaagcttcgtcatcgctgcatcgctttgcaccgt
-gtggctgggccgccatcagtacagccaactgcctctgatggacatctgggctgcagccag
-attcctcctaacagggcttcagggaaagtcctcctcagcgcctctttgtgcgcatggcac
-atttctctaaggcaggtttctggacatgagactgacgggcagcatgtgctccttacattt
-gggggtcctgtcaatcccctcctctcccgcaggctgttctagactccagcccccatgtga
-gaggatgcctgttgcccTCACTCTTCCATCCTGGCAGTCCCCAGCCTCCTTGCCTCTCTT
-GTTTTCTTGTTCCGATCAGTTCCAGGTGGCCAGAGGGTCGAGACTCATCTCACAGCCGTG
-CAATAGATGCGTGTCTCTCAGTCGGTCAGCTCTGGCTGGGATCAGTGTTTATCTTCATGT
-CGGTGGACACCATCACAGGCACCCGCAAGAATCAGCGATCGACGGGGAAGAGGTTTGGGT
-GCATGGAGGagtgctttgcagtgagggctttggagccttgtgccctgattcaaatcctgg
-ctgtgtcccctgccggttgtgtgacttcggataaattacttgatgtctctgagcataagc
-tgggtcatcagaaaagccaagctagtaagagcacgtagctcagaaggctgctgtaaagtt
-cagatgagttgatatatgctcagtgctggaaagggtgctgggcacattagctgttggtat
-tattTGGGCACCTCCAGCCCAAATAATAATAAAGAGACTAGGAGGGATGTTGGGAGATAT
-CAGATGTTGCTCATTGGAGGCTGTACTGAGTGTGCAGAGAGCTTCAGGGAACCTGGAGCT
-TTGAGAGGTAAAGGAACGTGCCAACTGGAACTAGAAACCCACTGCCGCCTGCAGCTCTCT
-GGGCTGTTTCTCCACATGCACCGTGGGGTTGTTCGGGTCCCACTGGGGAGGGTGGCTGGT
-ATGAGGGTGGCCTGGCCTGGATGTGAAGTGGGATTTCCAAGGCTGGCACTCAGTCCAGAG
-CACGAGCCTTGATGAGGAACAGATGCACTCACAGTCTGGGGTCGCCGCCCTCCCCTCCTC
-CACAGCCCAGGGTTGGGGTGGCGATAGCTTCCAGATGGGCTTGGCTCTTAGTGGGGCCTT
-AAATGACTCCCTCTGAGTCCCTGAGAGGTGGGACTTAGGGCCTCTTCCTTGGTTCTCAAC
-CCCCCTGGCCCTGGGGGATACCTGAGGTAGCTGGGTTCAGGCCAGgtgaccttgggaatg
-ccagccctgctccgagcctcagtttccccatctgagaaacaggcattCTCCATCAAGCTG
-GCTTGGCAGAGCCACTGTGTCCTGTGATAGCTAAAGAGAAACATGAAGGAGGACCAGGAA
-CCCCCAGGAAAGTAGGGTTTCTTTGGTTTTATTTTCTTTTTGTATTTACTTTCTGAATGT
-ATAGTACATATCCATAGCATAAAATTTCAAAGGTACAAAAGGGGTCATAGGTAACAGTAA
-GCCTGTCTCCCACCCCTGCCCTCCAGACACCCAGACCCCTCTTCCCCGAGGCAAAAACCC
-TGTCACCAATTTCTTGAGAATCTGCCCAGAGATACGGTATGCACACATAGGAAtttttta
-cccagtgatgacaaacttcacacacagtatttcacactgtccttttgttactttaacaat
-accctttagagatcttcctatgtcactccataaagtgcttcttttttttttttGGATGCT
-TGGCGAAGATGGTTTCAGAATATTACACAACTTTCAACTGACCAATCAGGATGGGCCCGA
-GCAGTGCACAACCCTACAGTAGTATATGGCTGCTAGCTGGATGCCAGCTCTGTGTCTTTA
-TGGTTCACCATTGCATAGATGGGCCAATTGCAGGGAtgggtaatttataaaggaaagagt
-tttaattgactcacagttccttgtaactggggaggcctcaggaaacctacaatcatggca
-gaaggggaagcaggcacatcttacatggcagcaggcgagagagtgtgtgaagaagcaaag
-ggggaagagccccttaaccagtcttcaagagatgagcaggggctgtttccaacattttgc
-tctttaaaggaaggttgcaatacatacccattttgtacatttgtaggagaatatatgtag
-aataactttctagaagtgaaattgcATTTTacatccatatgtttaaaaaaatatcaattt
-ccaccccctgccatatacaagaattaacttgaaatctaccataaatctaaacgtaaaact
-taaaactgtaaaacttccagacagcaacatggaagggaaatctttgtgaccttgagttag
-gcaaagatttttttaggtactacacaaaaagcataaaccgtaaaagaaaaaaagataaat
-ttgacttaatcaaaattcaaaacttctgctcttcaaatgatgctatcaagaaaatgaaaa
-gacaagccacagattaggtgaagatatttgcaaaagtcatatctgataaaagactcatat
-ccagaatatatattgagtgctttcacaactcaataataagaacaaataatccaataacaa
-atgagaaaaaggtttaaaaagacatttcacccaaaaacagatattgatggcaaaaacaca
-catgaaaagatactcaatgttatcagtcatcagggaaacatatattaaaaccacaacggg
-ctaccactacatacctgttagaagactaacatgaaaaataactgataatacctggagagg
-gtatctaacaactggaacttagaaaaacagtttggtaatttcttataaaatgacccagct
-gtcctactcttaggtacaaagagtaatgcaagagaagtttgtgttttaaaaagaaaaact
-gtaggcaaatatttacagcagcttttctcataatcaccaaaaactggaaataacTGCtgt
-atgagtctagtctcacacagctataaagagactactcgagatgggctaatttataaagta
-aagaggtttaattgactcatagttctgcatggctgggggggcatcaagaagcttacaatc
-atggcagaagggggaagcaggggaagcaggcacgtcttacatggcagcaggtgagagagc
-gtgtgaaggaggtgaaggggaaagagtcccttttaaaaccatcagatcttgtgagaactc
-actcactatcttgagaatagcatggaggaaactgcctccatgatccaatcacctcccgcc
-aggttccacccttgacatgtgggaattatggggattacaatttgagatgagatttgggtg
-aggcaggaggatcacttgaacccaggaggcagaggttgcagtgagctgagatcgtgccac
-tactctgcagcctgcagacagagtgagactgtctcaaaagaaaaaaaaaagaGGTaaaca
-ggtaaagaaaataattttagatcatgataagagttaggaagaaaacattttcaaggcact
-aaatagagaatgatttggagggggtacgatatttaaagaaggttatcagggaaagcctct
-ctgaagaggtaacatttgaactgagatgtagagggagagaaggaactagccatgtggaga
-tctgggggaggagcattccaggcagaggggatagcaagtgcatctgaagaggtaacattt
-gaactgagatgtagagggagagaaggaactagccatgtggagatctgggggaggagcatt
-ccaggcagaggggatagcaagtgcaagggccctgaggccagaatgagtttggtgttttta
-atgaaagaaaaaggccagtgggtggggcaaggaggagagggcaggaggtaaggtcagaga
-aggaatggggaaAGTCTAGCTTGCACCAGCCCTGACATGGGACGAGACACCCTCTATGCC
-CTCGGTCCTGGCGGCTCCTGCTTCCTCCTTTGTGTCCACTCAACATGATGGGTGGGCTTG
-GCCATCCGCAGACCCCTCTTGATGCCCCAGTACCTTCCCTGCCCCGCCCGACAGTGAGGT
-CCAGCCTCCTGAACAGCTCCTCTTGCTTGTCATTGGATTAATGGGCAGGAATTGCTTCTG
-CTTTTTCAAAGCCATTGCCCCCTACCACAGTCCCCTAAGATCATGAAGGTGCgagcaatc
-atacttgaactgttggatgatgaatgcatcactgttgatgtggaggaggctccccagtgt
-gaggactcagagcagggtctcggcctctcacagacctggctgtgtgcttggctccacctc
-ctacgacctagggccctgagcctcagttgcctcacctgtaaaatgcggcaaacaagcaag
-caacaagatgctcaacctcagtagtagtcggagaaacaagagctaaatagcagtgaggca
-caccctttacctccattccctggattagcaaatagtagagtcaggaacttccaagtattc
-atgagggtgtgggcgatgggaattccatgttctgctgctgggtgtttggactggtttagt
-acctaagagcctaagaaagagtatatctgatgacccaggcattttcctcttgagtgtata
-ccccagagaaattctcctgcagctccagaagGAGCCCATTCGAGGTCATGGGTCACTGTG
-ATGGTGTTTGAGGATGTGAGCAGTAGGTGAGAATCCATGTAGATGCCAGGAAAAGCAAAC
-TGCAGGGGCCTCTAAAAAATACCAGATAAGGGATgagtgcggtggctcatgcctgaatcc
-cagcactttgggaggctgaggcaggtgcatcatttgaggtcaggaattcaagaccaacct
-ggccaacacgatgagacccaatttctactaaaaatacaaaaattagccaggtgtggtggt
-gcgcacctattatcccagctactgaggaggctgaggcaggagaattgcttgaatctggga
-gactgaggctgctgtgagccaagatcacaccactgcactccagcctgggcgacagagtga
-gactccatctcaaaaaaataataaaaataaataaataaataaatacaagaataaaatgaa
-taaaaaaccagatgaaaaagaaaaccaaaaagtaaaaataaaaaACACCAGGTGCATGAG
-AGAAAAAAAAAATAGAAGACGGGGAAATCTGTAGCACACGACCATTTCTGTGAttttttt
-tttttttttttttttttttttttttttttgcgacagagtctcactttttcgcccaggctg
-cagtgcagtggcgcaatctcggctcactgcaacctccgcctcctgggttcaagcgattct
-cctgcctcagcctccggagtagttgagattacaggcatgcaccaccacgcccagctaatg
-tttgtatttttagtaaaaacggggtttcgccatgttggccaggctgaactcgaactcccg
-acctccggtgatccacccgcctcagcctttcaaagtgctgggatgacaagcgtgagccac
-caggcccggccCATTTCTATGAATGAAAAAAACTCACAAGCTACAGAACATCCCTACACG
-CGTTAAAAGGATTCACACACATTCAAGCCCAGAGAACAGACTCACAGGAGCAGATGCCTG
-GGGGGAGGGGGAGGGGAAAGGGCAGAAGAGCATCAAGAGCGAAATCCAATTCAATCCAAC
-TGTGCAACAGACAGTTTGCAGAATTGATGAGGATGTTTAACCCAGGTCTTGGCACCCTAA
-GTCCAAGTAAAAAAATAAATACGATACAGCAGGTAAAATGGGGGATGATGGAAGGGtggc
-gatagtagtgcctttctcatggggaaccctcgaggctccgatgagcgaaaccatgcagag
-tgctcagccaggtgcctggcacgcagcaagGTGTCCGGTGCACAGCAGGGCCGCCCAGCT
-GTGAGCGGTGCGTGTATTCTCTCCAGCCTTGAATTCAGGCCTGGCTCCTTCTGCTTCCTG
-GTCAGTGCCGCTCTCTTGTGGCCCATACAGTGACAGGACTTAGACTGAATAGAGATCTGC
-CATGGTCCAAGGTATCTGATGGCGCTTCGGAGGAGGGAAGGGAGGGAGTCACATGGGGGA
-GATAGGATCACCAGAGGCAGATGGGATCACAGGAGGGAGATGGGGTCACAGGAGGAAGAG
-TGACTTCCGATTGGGGAAGAGATGGCGGATCAGATAAGGCCTCCTGGAGAAGGAATGTCT
-AGGCTGAAGGACAGATTCGACTGGGGGTCAAGGGGATTGATGAGCAAATGAAAGAATGaa
-tggagttagaatattgagcatgagcattacttagccctactgtgtgccaaggctttacat
-gcctcatatcatttcgtcctctaccacccctgggaaggcgacttattgcttctgtctcct
-ttgcagctgcaaaaagggaggctcagtgggttagcgactcatccaaagtcaagccgccag
-ctgcacatagagctctgatacacacccaggtcgtgtgactTGCTGGGGGACTCTATCTTC
-TCCACTTTGGGGTGGACTGAGGGACCCCAGTGAGCATAGGTACAGACCACCCCTGAGTCT
-GTCTGGACCATGTGTTAGCAGAAGTTTAATACTACACCTGTGCAGCAGGTGGAGATGGGT
-GGGACCTGTGTGGACGAGAGGAAGTGGATCTTGGGACAGCTACAGCATGCAGCGGCTCAC
-CCCAGGGCTGGACCCTCACTCTTTGGCAGGCAGCTGGGGCACCACACCCAGGGGTTAAAT
-GTGGAGACTCACTTCTTAAGCTAAAGGATGTGTCTGTCTTCAAGGCACTCTCCGAAAAAT
-GCCTCATTTTGGAATTTATGTCAAAGCCATTTAAATCCTTATTAAGAGTATTTAAAGATC
-AGTTTTCAAAATGTCTCCTAAGTATTTCATTTTTGTTTTTCTCGACTTGGTAGTATATTC
-CCATGGCTAAAAATTCAAAAGGGACCAAAGATAAAGGTAAGcctcctctctttccatcca
-ctctaacctctccccacccagagccatcactgttactggtttctagagtgttttgtcacc
-tgtaggttttgtgcattcatgaatcgtacacacgtgtattttccctccttcccgtccccc
-cgcgtgggggcttactatgcgcgctgttctgcaacttgcttttttcacttggcaattcgt
-ctcagggactgccccgtcattgtgtcaaatccttcctcgtggtgcttctcggccatgcgg
-tgttgcactgagtgctgtgacattgtatcgcaatgcctgtcctctagatatttaggatgt
-ttccagcattttgtgatcatacacaggactgcagggaacagctgtgtaagcaggtacact
-tgttctgcagcatgtgggccaggctaattgttatttatttatttatttatttttgagaca
-gaatctcactctttcgcctaggcgggagtgcagtggcgctatctcagctcactgcaagct
-ctgcctcccaggttcacgccattctcctgcgtcagccttctgagtagctgggactacagg
-tgcccgccaccgtgcccggctaatttttttgtattttttaataaagacggggtttcacca
-tgttagccaggatggtctcgatctcctgacctcgtgatccgcctgcctcggcctcccaaa
-gtgctgggattacaggcgtgagccactgcgcctggccctgggccaggctaattggaggat
-gaatccctagaggtggattgctgggtcaggggacatgtgcgctgtgatttgaatagatgt
-caactcaccttctgtagaggctgggtcaagtcaccctctcctgaggaaggtaggggaggg
-tggcggcttacccccacccagcccaggccctgtggtttcattttctttttttttcttttt
-tatggctcttagccaatcagataggtggaaaatggtagctctgtgtggctttattgtcat
-ctaatttgagtaagggtgTTTGGAGTTCCTTTTCTGGATGAGGCATTTTTGCCACACGGG
-GACAGCGCTGAGCCGACGACACGGCAGTGCCGCTCTGGACACGCTGATTCTCCCTGAGGC
-TCATCTTCTCAGGCTGAGTGGGACTGTGCCTGTGGATGCCCGCTCATGGAGTAGTCGCCT
-GGTGGAGGGCAAGGGTTTTGAGTTCCCATTCCACtacttactttctgagcctcggattcc
-ccctctgtaaaaagtggaaagaataatagaacccacttcagatggctctgaggaggatga
-atttaagtttttaatgtgaaatgcttggcacagttcctggctcagagttagtgcttagga
-aatgtttgttGAATGAAGAAATGAAAGAGATataatcatcttaaaaattgtattgagtac
-ttattatgaagcctttctcatgtattcacgtattttaacttcacagtgacaccaagaggg
-gtacttttattatccccctttaaagacaagaaaactgggccgggtgcggtggctcacgcc
-tgtaatcccagcactttgggaggccaaggcaggcgatcacgaggtcagattgagaccagt
-ctggctaacacggtgaaaccccgtctctaccaaaaaatagaaaaaattagccgggcgtgg
-tggtgggcacctgtagtcccagctactcgggaggctgaggcaggagaatggcatgaaccc
-gggaggcggagcttgcagtgagccgagatcgcgccactgcactccagcctgggcgacaga
-gcgagattccgtctcaaaaaaaaaaaaaaaaaaaaaaagaagatgagaaaactgaggcac
-agggagagatacaggatcttgcctaaaggctcatagctggcgtcactggcggcgacggga
-ttcgtgatcttctgtctgctcttacccacctcacttccctgcctcccactCTAGGAGAGA
-GGTGCCACCATAAACCCCAttccagctgtccattgcatgaaacaacctcctcaacctcag
-aggcataaacaaacaaccattttatcatgttcctgggttctgtggatcaggagttcaggc
-aggataaggtggacagcttctctctgctgggccttcgatgggaggactctgtggctggga
-gggttctgcagtggggggtaaggaggggcagcgggtaaaacagcaaggactagaagaccc
-acttgcgagaaggcttcttcagctacaagtctggCTGGAGGATCCATTCCACCTTGTGGA
-TGGTAGGTTGGCTATGGCTATGGGTGAGGGTGGGAGTCATGGGGGGCTGAGTGGGAGCCA
-TCAGACCCCAGGGCTGAGTCCACATGTTCCAGGATCTGACAGCTTAGGAGGCTTAGCAAT
-TCCAGGGCTGGCGCCCCCATGAATAGCTTctccaggattttgcaagtgctgtttcctccc
-cctccccacccatctcattaacacctcgcactctttaattctcagcttggctatctggtc
-ctggaggaggagctccctaacccctgtatgccttagacaggatatgctagatcctgtcct
-catggaaggtcttatcacattgttggaattgactgtctgcagactgaacgcttggaggac
-aaggcagggtctttatcaccagcacccaggacagtaccaggcacacagtaggcactttat
-gcatattcacggaatgaatgaatGGGTGAGACTGATGGATTTTGAATGACTTGAACTTGA
-GCCTCAGTTTTTCCTCCTAGAAGTTAGCTGGCAACGTAGCTGTGAAGGTGGCAGGAGATA
-GGTGGGAAATGCGAGGTTAGTAAGAGGAATTGGTAGAAAAATGGTAGTTATGATTTATGC
-TGAAGAGAGAAAAGCAAAGGaaattagatattgcacctgaaatgcttagctatgtttggt
-gcagaataggtgctccataaatATAAGATGACGTCATCATCCTCATCCTCATCATTACTA
-TTATTTGTATTATAAGAATGCACATTTCCTGAGTTAGAAGGTCCACATACGATGGCTTGA
-AATTTTCCTCTGggctgggtgcggtcgctcacacctgtcatcccagtactttgggagact
-gaggcaggaggatcgcttgagcccaggagttcaagaccagtctgggcaacatagcaagac
-tctttctctacagataattttaaacatagctgggtattgtggtgtgcatctgtagtccca
-gttacttgggaggctgaggtgggaggatcaactgatccctgcaggtcgaggctgcagtga
-gccgggatcatgtcaccgacctccagtctgggcgatagagctattacccatcttaaaaaa
-caaacaaacaaagacagaaaaaaGAAATTTTCTTCCAAGCGAAAATGGAGAGGTGTAATC
-CCCATAGGTCACCTGGGCCAGATGTCTGGGCAGGAGGTCATGCTCTGAGTCAGATTTCCC
-TTCTGTGCAAGGAAGGACCTGGGACAGGGACCTCTGAGTCTGACACTCTCTGCACAGCTG
-AGAAGGCCATTCAGCTGAAGTCCCCATTGCAACTGTTGTCCTTCAGCCTGAGGCAGTCAG
-TCCTTCGGTCTGAGGCAGCCTGTCCCTTGCCCTCGGCTACCCTCCACCCTGCTCCAGTCC
-TGCTAGGAGAGAACCGCAACACGACCCCGTTTCAGAAATGCGCTCCTTGACAAGCCTGGC
-TGCGACCTGTTCCTGGTTGACTGCCGTCATCCGGTGGCAGCATGTGGGAATGACATGCAG
-GGCTGTGGTGAGGATGAGGATGGAGTGAGCGGGTGGGGGGAACTGCAGAGAGGGCCCTAG
-TGTGGCCCAGTTGGAAGCGGTGACAGGAAGAACCCACCAGGGATTCCTCAGCTCTGGCCA
-AGGGGTTGTTCTCTCCCTCTGGCATAGCATCCAGAAGGCCAATAGCAGCGGAACCTCCCC
-CTGGGCTCTGCCCAGACTGCCTCTCTTTGGCTGTGTGACCTCACCCTGTTTCTGAGCTTC
-TCTGTGAACTTCTCCAAGCTTGGCTTGTAAGAAGGGAGTGGGCGATGCCCACCTGACAGC
-AGAGTCTCCTTCCCAGAGAGGCCCCTCAATCCTCCAGAGAATGTGGGAGAGGCTGGGATT
-TGAAAGGATTGGAGCTGGGGGCAGGGAACGTCTGAGATGGAAAGGTTATAGGAGGGGCTT
-AGGCCCTGAAGAAATTTCATCCTGTAATTTGAAAATATTAAAAAACCACCACAGCCCCCA
-GCTGAGGACAGAGGACCAGGCCCCCCAAGAAGAAAGAACATGGCCAGGGAATTGCAGTAC
-TGGAAACTTCTACCCTTATGTTGGTCTTTTAGAATTGTGAAAATTAGAACGTTCAGCATC
-CTAAAACTGGAATCTTAACAGAAAACACTATATAGtgtatgtatgtgtgtgtgtgtgtgt
-gtgtgtatatatatatatatttatatatatatttatttatataGGggctgggtacagtgg
-ctcatgcctgtaatcccagcactttgggaggctgaggtgggaggatcatttgaggccagg
-agttcaaaactagcctgggtaacatattgagacccccatctctacaaaaaataaaaaatt
-agctgggtgtggtggtgtacacctgtagtcccagctacttgggaggctgaggcaagagga
-ttgcttgaggccaggagtttgaggctgcagtgagttgtgatcgtaccactgcactccaac
-ctgggtgacagatcaagaccctgccaaaaaaaaaaaaaaattaaaaaGATacacacacat
-acacacacacatacaGACTAAACTCTGTAGAATCAGATCATTGAGCCTTGAGGTCAGAAT
-CAGAATTGCAGCTGCAAATCTAGACTCAGCCCTCTGAGCTGGAAGTCATCTGAGAGCCAC
-CTCTCCCCTCAGCTTGTCCTGGAAAGAATGTTTGCTCTCACTGCCTGCTCCTAAACTTGT
-TTGCAATGaatagatctgggggagggccccaaaacctgaatttctaaaaggctccccagg
-ggattctgttgtTGGGTCTTCCAGATTTCGGCAATAGATTTAATTTAGCCAGGCTTcctc
-ttcatcacattcatcacatgggaaaactgaggccccggaaggggaagtgacttgacctgg
-accccatcagatagctggtgacaggctggagctcccacctgtgcctcccaatgccaaggc
-cactctcaccagcagcccagggtgtttAGATGGCCCCGTGGGACTGTCAACCTCCTAGGT
-ACCCCTGGTCCCTGAGACATCTGGTTCGTGAAACTGCGAGGTTCTGGGGATCGAGGTGTC
-ACCCTCTTCTGCCTCTGGCTGAGTCTGCTTCTTGAGAGTAGCCTGGAGGGGCTGAGGGCC
-CCTCCTCTTTTATCAGCTCCCCCCAAGCTGAAACCCCACCCCAATCCCCAATACACTCTG
-ACCCCTCTCAGCCCCAAGCATTCCTGTGAAAACCACTCCACATGTTTTAAATTCTGCTAC
-TCCAAACTCAGCAGTATCATGGTTTTGCAACACCCTCTTGATGCTCAAGAAGCATTTACA
-AGTTTCTTTTCCCTTTATTAAGAAAGTTTTAAAAAAAAGTTAGGGTCTTGAAACAATAAC
-AACGGAGCATTTCAGAGGCACAAACGTTTGCAGAAGAGAAGCTGGTGGCCTGGCCAGGCG
-GAGGAGGGGGCTCTAGCTGTTCTCGGGGAGGTGAGAGCAGGGAAGTCAGAGAGAGGGTGG
-GCCTGCTGGGAGGGGGGGGTTCAGGCCAGGGCTCCCCAGCTGCCAGGTGGAGGGCAGGTC
-TGAGGGTGGGTGCTCTCTTGGGGTCGGGAATGTAATATTTCATCACCTAGAGCCTCTCCC
-CCAGCCTGCTGACCATCTTCCTTCCCCAGGCCACCCCTGGGCCCCTTGGAGCTCCGACTC
-TTGCTTCTCCTGCCCATTCCTGTCCCAGTCACGGAGCCCTACGTGTTCAGGCCAACCAGT
-CACGGCAAATACAAATCCCGTTTCTGAGGATTCCGGGGAGCAGAGCAGGAAGGGGGTGTT
-ATGATGGCAGAAGGATAGGCAGTGAGGACAGACTTGCTTCCAAGCTGGGTCTGACCTGGA
-GACTCCTCCCAGCGTCGTTCCTGCCTAGGGCGAGGGGCGTCACAGCGAAGCACAGATGCT
-CAAGTCACtggtggtgggtgtgggcgagtgtggtggtgggtgtgggggagtgtggtggtg
-ggtgtggggcagtgtggtggtgggtgtgggcgagtgcggtgatgggtgtgggcaagtgtg
-ggggtgggtgtcagcgtgtgggggtgggtgtcagcgagtgtggtggtgggtgtggACGAG
-TGCACGGATCTTCCCTTGCTCCCCACCCACAATTCCCTACATTTCCCCCCTCAAGTGACC
-CCCAAATTCTCCTCTCCACCGTGAATGTGCTGAGCAGAGCCATCAGGCAGAAGCAGAGCC
-TGAAGGCTTCctgtgtgaccctgggcaagccccttccttctcagacctgtttccccaCAT
-GGGCAGGAAGCGCTGAGGTGGGGAACAGAGCTGCTGGATAATCTCAGCTTTCCTTTCCGT
-TTCAGTGGCCTCTTCTGGGCTGGGCAGGTGGATCCCCCAGCAGTGACAGCTCACCTGATC
-CGGCTTGGGAAAAAGGGGCATGGAACCCATGAGAGGGAGGCCTGTGGGGGAGTGCCGATG
-AGGGTGGCAGGCAGCTTGCAGAGGATGCCCTCCAGGGCTGGCTGCCCACCCAGAGGCCAG
-GTTGTGACCCTCCACGGCCAGCTGGGGGAGGTGTCCAAGCCAGGCCTCTGGAAGCCCTGG
-AGCCTTGTCCAGCCAGCTCCTCGGGGTGGCTGGTGGCTGAAGGCTGTGGAAATGGCCTCT
-GGGGACTGTCCAGAGAACCAGGTGCTCACAGCTCAGGGTCCTGGAGCCTCCCCCAGAGCA
-GAAGCAGGGCCTTCAGGATTCACCTGTGCTGTGTCCCAGCTTTGCCCTCTGGAAACCCTT
-TCTCTGCAAAGATGGGGTCAGGGAAAGGCCTGGGAAAAGATGTTTGCTTTCTTTAAGTTG
-TAGATAGAGAAAGCTGCAGGGGAGGGCACAGGCTCATGGTCCCTCTTAAAGTGTGTGTga
-gagggagacaagaggagggagagagagaaggatgcggtgaaggacaggaagaaacacagg
-aagaaagaaaaggaaagataaaagataagtgagaaagaagaggaaggaagggaaggaggg
-agggagaaaggAGAGGAGAATGGAGGTggaagaaataaaggaaataaaaaagaaaaagaa
-agggaaggtagactgacagaaaaatgatagaagggtggaaagaaagagaggaCAAATGGA
-GAAGACAgaggagaaagagtaagaggagaggaggagaaggagcaggaggaggTGTGCAGG
-GGCCGAGGACTAGGACCAGAGAGTCGGGAGAGCCGGCGGTCAGGGCTGCAGGCCGGGCTG
-GCGCGGCCTCACGTCCAGCCTGCGGTCCAGCTTCCTGTCCTTGCGTGGGCGCCGGTCCTT
-CCTGCCCTTCTTCTGGCCGGGGCTCCTCTCTGCAATGAGAGGACAGAGCCCGGTGACCAA
-GGCTGCAGGGCCAGTTAGGTCCTGGGAGCCTCCTCAGTCCTGAAAGACAAGGGTGCCCCA
-CCCACTCCCCAACAACGGGGCTCAGAACATTTGGGCACTGACCTTGCAGTCCCTCCTGTT
-GAGAGTTTGGACCGTGGGCTAAGGTACCCCAAACTGAACCTTTCTCTCTAGGTCTTCAGG
-GAGTGGCGAGGGCCACTAACTTGTTCAGGGCCTTCTTGTGCTGGACATCTGGCTCGGCCA
-GGCCTGCAGGTTCACCTGGGGCCCCCCAATCAGCATGTCGGGTGGCCTCATGGGAGTCCC
-CATGGCTTTCCCCGGCACACTCCTTCCATAGCTGAGCAGGCTCTGTGCTGGACGCTGGAC
-ACCTTTCATCTGTGTCCCTGCACCAACTTCTGCATAACACTGTGGCaacaatacttcagc
-atttagcaagcgctcactgtatgcaggccacagccccaagtgctttatgtatacgaaact
-cacaacagccgagagaggcaggtaGGGTCTGAGCCACACCCAGTCCCGTCTTCTCCAATT
-GTCCTCTCTTTCTCTCCACCCTTCTATCATTTTTCTGTGCCAGGCTACCTTTCCTTTCTT
-TTTCTTCTTTATTTCCTTTATTCCTTCCACCTCCACTCTGGCTGTGCCCGCTGCCCAGGG
-AGTTCTTCTGAGCAGTTGCCTGTCATTGTTATGGACAGGTGAGAAGACCACAGCATGGTT
-GGGAGCAAGGCCAGCCCTAAGTTTCTGCTTTACAAAGTGTCTCCACACCCAGGACATTCT
-CCTACATTGCTTGGGCCCCATTCAGTTCCCCGCAAGGAGCTGTGTGTCCATTTGAACACG
-ATGAACCTGAGGCTCCATGAGTCACTTTCTGAAGGTGCGCAGCGAGGCTGTTAGAGACCC
-TCTGAGCCTAGTGGCAAGGGGAGGGCAGTTTTATTCCTTGGGTGTCAACTATGTGCCCGT
-CTCCCCAAGAGTCAGGGCTGTGGCTCCAGTCCTGGCTCCTTCCTCTGCAGAGCAGAGTCA
-AGGAGCTAAGACCAGGCTACCCACCTCTGGGGCTCCCCACGCCCACTCTGAGCTCTTGGG
-GAGCACTGAGGCCAACTCCCACTCTGAGCTGCAGAGCTGACTGTGCAGGCCTCAGGTAGG
-ACAGCATCTGGAGATGGGGTGTGGGTGCTGCCTGAGTGGCCCTGCCGGCTCTGATGTGGG
-GGTGTGGGGGCCAGTGGCTTTGTGTCCCTACCCCTTCCCTAGGCCTGCCTGCCAGCTGCT
-CATGTacccatccagtcacccacccatccctccacctatttacccacctacacactcacc
-cacctattcacccatctactcacccacctCCATACCCAATGacccatccatccacctagg
-cacccacccatcacctatccatccacctgttcacctatctacctacctacccacccacct
-aatcatccacctacctactcatccacccacctaccctcccatctaccctcctatccaccc
-atctacctacccactcacccaccTGTGCATTCAGCCATCCatccactcatccaacaaata
-ttaactggataccgactatgtgccagactgtgttagaggcactagagagacagctgtgaa
-caaggcagataaagcccttgccgtcactggagatcacactccagtaaggaaaacagacgc
-tgaacaagcaaacacgagaatgagaaggctcatttcagaagggtgcaagtgctaccatgt
-gatatgatggaaaatgactccggggagggggactcctgggaagcctctctgaggaggagc
-cactgcagccaagacctgggtgatgcagggagctacagcggggttgttgcgaggattaga
-gtcatgtttcacagcactaagcacagccagcacatggtagatgctttatgaatgtttgca
-gttattgtGATTATTATTATCCAGGGGAAAAGCTTTCCCCTCATGATTCCCCAACAGCCA
-TTCACCCCCAGCTCTTGGAGCCATGAGAGGTGCCATGTGGTAATGAGTGCAGAAGAACTG
-TCTGCCTCCTGTGTGAGTCCTGCTCTGGCTCTGGGGTCTCTTAGGTTCTCTGGTTCCACC
-TCAACCTCACTCTGTCCTCACCTGCCCAACATGACTCCCAAAGGCTCCTATCTCTGCTAG
-CTGCACTCCCAACCCAAATAGCACAAGTCCTTCTGAAAGAGGAGTGTCcctgagttcaaa
-tcctggctccactatgtcccagctgggtgccccgggtggcctggttccaggtccctcatc
-cttcatcatgactttagattcctctttgcaTGACGAGTTACgtttgaattctaggtctac
-agctccctggctttgtgacccttaggtgagtgactcaacctttctgggcctcagtcccct
-catctgtaaaatggggatagtgctaataacacctaccgcatagcatcactgcgaagatta
-catgagttaacgattatagagaattcggcacagtgcccagTCAACACTGCCAATACTACT
-CACCGTTCACATCTTACCAAGCACACCCTGTGGCCTCTCTTCTATGTAAATCAGTGGTCC
-TTCATAgcccccagaaacattttggaaatacgtgtagtggtcttgaatggcacagtgaag
-ggggttcctgtggcattcagtggacggcaatcgggatccagcgtgggacagtcccccgca
-aagacgagctgtccccctgttccatccagttctctcacatcgtgccccaccctcacgtag
-ctgaaaagtctgcttgctgggagctgaattctgtttgactcatgaataccaattggtttc
-gaacacttccattcactgaagattctagggcactgtgagtgtggtgtcaatcagagatca
-attgggttggaccttactaatcattggtcactgttgggaaatcgcatctctgatggcgat
-gTGGCCACGTACTTGGGGCGCTGACCACGGCCGCGGTCCTCACTGGGATTGTACTTCCCT
-AAGTGTCTGTTGGTATGTTGGGCCAAGCGCTTCCATCAAGAAAtttcttttctttctcct
-ctatattacagttaggacactatactgataaaaaaaaattacctttgcaagtaggccaca
-ttctccatgaacttcattaagaatgataaagagggtattcccaaatccttcttattaaaa
-ggggggtgttcagtttgagagggttgggaactcctgGCCAGCTCAATTTTCCTAATGTAT
-TTGGGACTGAACCCAGCAAGGAAGGCCCTCCTTTGAAAGGACACCAGGGAAGGTGATGTG
-TACTCCACATGATAGTATGGCTAATGGTGGCCTTTCAGGCAGTCTCATAGATACTATTTG
-TGGGGCAGTGATCTGAGTCCGCCCTGTCCCTGTGGGCCTTTCCCACCGCAGCCTCGTGTG
-CCTGTCCTGGGGCTCACCTCCTGGGCAGGGCCTCTGGATGGGACATTTCCTTGACTCAGA
-AAGCACCTGGCAGGTGGCTGCCTCCTCATGCCCAGCCCGGCCAGCCTCTCGTACCCGGCT
-CTCCAGGCCCCAAGCCGAGCCGCAGGTCTTTCCATTGTGTGTGCAGGGGCTCCAGCCGCC
-CCAGGGACCCAGTTCACACTCCCCTGTGGGGTGAAAGGAGagacagacagacagacagac
-agGGTCAGCCGGCAGTGAGGGTCCTTCAGATCCAAGGGCAGGGTTTGAGGGGTTCAGTCC
-TCTGAAGACTGAAGACACCACTTCCACCTGCTAGGAGCAGAGTTATTTATAAGAGCCTGG
-AATGAGAGCGAAACGAATGCATGCACAGACTAATATGGGCCTGAAGCCAGAGCGGCCGAC
-TGTCTAGCTTTAAaggaaaggcttcctggaggaggtgatgtatgagttaaagggagagag
-gggagctcgtcaggtgagaagaaggaagcccattccaggcaggtgtgcaaagccttggga
-gcccggcccaccatgtttgggagatggggcagcctgagttgggagtcaagtctcaggaag
-gcggggacaggagaggaggctggaaggttgcctgggaaGCCCTCAGGACCAGGACACAGG
-TTTTAAACTTGATCATGTGTCTTTGATCAACTTTGGAAGGAAGAAAAAGGAGGCCATGGA
-CATAAAAGTTCTTCATAGGGGGTAATAAAAatacatatatacatgtatatatatatatac
-acacacacacacatatatatatacacatatatatacacacacacacatatatatacacat
-atatatacacacacacacacatatatatatacacatatatacacacatacacacacacac
-acacacacacacacatatatatatatatataCTTTGATTATTTTAAAAGTCCATGAGAAG
-TAGGCACAGAATATGggtagctatgaatactcctattttgtagatttggacactgagacc
-tagagcagaggtttgctaagggaacgcagcaagaggctcacacagcagacacagcaagct
-caagacacagtgggacccagaccttgctAGatacacacatttgacaagtaaagactgagc
-acccagtgtatgccaggtgctattctgggtgctgagggagcagcagcagacaagacagcc
-cagggtctgcaggcctcctggaattcaccatctggacaccgccgtgatgagggaagtgca
-ggcaccgtgggagcccagaagcagcatgggttgggttgtaggggaggaaacccctggact
-gggtcttgaagtgggggtgggatggcggggaaggggagcctagccaggctcagggaggga
-cgggaggtgctccaagtgagggcataaccccagcagagtcccCAGGATGATTTGGCCTGG
-AACTGGGCAAGCCGGAGAATAAGCTCAAACTGAGGAGGAAAAAAATGATGGGGGTGGAAA
-GGCTGGCAGATGGGACAGATTGCCCAGGGCCTGGGTGGGCTCCGCCCAAGGGCAGTggga
-gccactgaagggtcctgggaggaaaagaaattgagcagactatcattgtgaaatactccc
-tctgctgttgagtggagactgggctggagggactgagaaccaaggcgggagacgggcagg
-agctgtggccagaaccctggcgataggcagggggtggcaagagggtgggaagagggcggC
-ACAGAGGACAGAAACAAATGGGTGGGGAGAAAGGGATGAGCTGAATGGTGTGGGTTTGGG
-AGCTTCGTGctgcttcattttcaccccaaagttcttcctaccacccaaaatattatgcat
-ttgttctcaggtgtcgcttctgtctctccactgaaatgtcatgtccttgagtgcagaggc
-tttgtctgttttgttctgtaatgtgtctccagcacctaggaaagtgcctggccatagcag
-atgctctagtagatattttcagagtgaataaatGAACAGATTGGATTGAATATAGGGTGA
-GGGAGAGAGAAGAGTCAACAGCGATGTCTGCATCTCGCGCATGCCACCCAGGGATCAGGG
-AGCTGGTTATTGAAACCCAGAGGAAACCCAGAGGGAGCGTTAGGTGGGGGATGGTGGCAG
-TGGGAGTGGAAAGAAGGCACCCAGAGGGCAGTGGAGGTGAGGATCAGCTGCTCAGGGAGG
-CTGGAGACACGGAGTCAGGGGCCATCAGCAGCTGGAATGACCATGAATGTGAGCCCGGAG
-GGAATGCGTGGGCAGAGAGGCACAGTGTAGATGAGAATGCCAAGGAGCAGCCTAGTGCAG
-GAACGGGAGGGCTCACAGGCAGGAGTGTGACAAGGAGCTGTTAGGAAATAATCAGAGCAG
-TAATAACACTGATactgacacgtactgagcatctactgtgtgctggctgctgtactgagc
-actttaaattgtactaattcactttatcctcataacaattcctccccatgaggtaggctc
-tatgttctattgtctttttttttttctaacgtttggagaaaccgaaggacagagagctga
-ggtggtttgcttaagatcactaaagggtaaggtttagagctaggattggaccccaggcct
-gtcctattccaaaatcagtgctcagccaggtgtggtggctcatacctatactcccaatgc
-tttgggaggctgaggtgggaagaccgcttgagcccaggggcagcctgggcaacatagcaa
-gagcctgtctttacaaaaacataaacgcatagccagctgttgtggtacatgcctgtggtc
-ccagttactcgggaggctgaggcgggaggattctctgagcctaggagtttgaggctgcag
-tgagctatgatcatgccactgcactccagctgggcaacagagtgagaccctatctcaaac
-aaaacaagcaaacaagcaaacaaacaaacaaataaacaTCAGCGCTCTTCTTCTGCACTC
-TGCTGATTCCCTTGGCATTAATAACAATGCCAGTGTTGGTTGTAGTAGTAATCATAGTAA
-TGGCGGTTATGTTGGCTCTAGTGTTTTGCAGTTACTATGTGGAGGTACCCAGTGTACCTG
-ACATGGTGGTGCTGGGCCTTCCCTCACCATATGGCATTCTACTGTAATTTCTTCCAGGGC
-CCCTAACATCTCTCACCAAGCCCCCGCTCCAGGGAGAGGGGAGGGGCAGGGGCAGGGCGG
-GGAGGTCCCCACTCACCCTGGCACTCCCGTGTGTTCTGGTGGGCCAAAGTGCCCGGCGGG
-CAGGTGGGCAGACACTTCCCCTTGTACAAGTAAAACTGCCTCTTGCACCGGATGCAGAAG
-TCCTGGCTGAAGCAGCTCTCACAAGTGGCCCCACATTCTGTAATAGAGCCAGGGACACCC
-CAGGTGAGGGAGACTGCCAAGGATGGGGCCCACTGGGTCTGCCCGAGGTGGAAGGCCCTC
-TGGGTAGCTCCAGGCTTGGTAGCATTTGGGTCAGGACTCAGTGTCTCCTTTGAAGCCCAG
-ACTTGGCCAAGGTCAAACTGGGCTGCATGTGAAGAGAACActccctttctcatttgaggg
-gaggctcagagagagcgagtgacttgcttgaagtcacccgcaaaccagggctggagtgag
-gactccctgcttcttttTCACCTCAGAAATAGTGATAATTTGCCCAAAGTTACAGCAAAA
-ATTAGAGCTTGGAATTAGGACTCCTTTTCCTATTTGagctaagaccagagaaggtgagtt
-acatgcctaaggccacaccacaaactagggtagaAGTGAAAGTTGCCTGTTCTATTAGTG
-CTAATTAAGGCTGAGAGCGGACTGACTTGCCTCGGGCTGCGGAGTCAGCCTGGACACAGG
-CAGGTATCTCAGAGTCTGGGCTTAGACATGCACCTACTTCCCCTCTGTCTGTGCTGGGGT
-GAAAGGGTGGGATCTAAGCCCATGGTGTCTAGGAGCCCAGCACTAGCATAGAACAAGGGA
-GAAGCCACGTACTTTTGCACCTGTTGACCTCCTGGCCGCGGATGCCGAAGTACCCAGGGG
-GACAGTCGTGCAGGCACTTGCCGTACTGGCGGATGCCTTCCCGGCGGATGAACAGGAAGA
-GCCTCTGCTGGCAGGTGGAACAGCCGTTCTCCTCTGAGCAGATGATACAGCCTGTGCAGT
-TGCCCCCCAGGCCAGTGCCCACTGCCCACAAGACCAGGGCAGAAGGAGGGGGAAAGGGAG
-AGAGAGATGGTCAAACCATATATGCGAGCAGCTGAGATGGTCTCATTGGGATAGtaactg
-ggcacatggccacccaaacaaaagactacatttcccaccttcccttacaactagatatgg
-tcatgtgaccaacatctggccaatcagatgtaaggtaaagcagcatgtgacacttcaaga
-aagctgccttaaagggcaggggtgtgccccttgtcgtcccctcatcctttctgttgggtg
-gaatgtgaacgatggctggagcacaagcagccatttcagatcatgaggtggaaactatgt
-cccgtgaggcggtggaaaaatcagataaaaagcacctgggtgcctgaggaaggcagaact
-gctgtaccagctctagcctgcctgtgtagactgttacatgagagagaaatcaacatctat
-cttgcttaaatcactgttatttgaagttttccatcactcacaagcaaacttaatctttac
-CAAAGTAATGTGAATTTTTGAGTGTGTGTGGGTGCACATGATGAGTGGGGTGGGGTGAGA
-CCCTCACCCTCCTGCTGGGTTCCTGAACAATACTCAGCAATACTCCATTTCTCACTGTCA
-CCATCAGCAAGGGCTCCCACCATCATCAGGAATAGCAATGGGAGAAATTTTTTTAAGGAG
-AAAATTTTTTGTTACCCCAGAATTGGCACCCAGGAGCCAAAGCTGGGGAAAAAAGAGGTG
-GAAAATGCTCTAGAATCTTAAGTGAGCCTCTCCCAGGCTCATAAGGAGTCTCTGTTACCC
-TGACCATCACCCCAGGACCCTGATTAAGCTGAACACTTGCAGGGAGGGACTCATGGGAGT
-TAGGGATTGTCAGCCTggccaggcacagtggctcatgcctgtcatcccagcattttggga
-ggccaagatgggagaattgcttgagtccaggagtttgagaccagcctggacaatatggcg
-aggccctgtctctacaaaaaatacaaaaattagccgggtatggtggcacacacctgtagt
-cccagctacttgggaggctaaggtgggaggatcgcctgagcggggaaggctgcagtgagc
-tgtgtttgtgccactgtactccagtcggagagacagagtgaagccatgtttccaataaag
-aagaaaataaaaagaaGTGGACAGCCTAGGGAAGTGAGTTGTGGTGCTGTGACTTTTCCT
-CTGTTCCCAACCCTGCCAACGAAGTGAGGAGATGCCAGAGAAACTCACAAAGACAGGGGG
-TGCCTGCAAGAAGGTGCCAGCATCTCATGCCCTGCTTGGACATAAACTCATGTCCATAGC
-CCTGCGAATCTGCCCCCTTCCCATTCCTCTTTGAACAGAGAAAGGAGACCAGGAGACAGA
-AGGGCAGAGCTGAGGGGAAGAGTGTGATAGAAGAGCCTGCACATCCTTCCCGGCACGTGT
-GAGGGAGTTCTCAGTGGTAAGGGGCACCTTGGGAGCAGCCAGGCTTAGGTGGTATTCCTG
-CTGCCTGGCACAAGAAGGCTGGTTGCTGGGAGGTGCCCCAGCAGTAAGAGGCAGCAGGGG
-AGACCACTGGGAGTAGGAGGTGGGGGAGAGTCAGAAAATGACCAGGTGTCACTAAGTGAC
-AGGAAAGGATAGGGCAGCTTTTGAGAGGCAGCAATTGGGGAAACAGTAAATGGTTTCATG
-TTTATATGTCATTAGGGTCAGACTGGTTAATAATCCGGTTATACACCTTGATTCACCTGA
-GCCCCAAGACCACCCGGCAGGAAACATTCTTGGCTCTCCAGCTCTCAGATGCTCCCCTCT
-TCCTATTGGTGCCCCATCTCCCTTTTAGAGGAATTCCCCATTGTGCAAGGTCCTGATGAA
-ACACATCCTGGCACCTTCCCCCTGGAACAGAAACCAAAAGAGTTCTGGCCCTCCTTTAAG
-TTGGCAGCAGGTGAGAGCTAACGAAAGCCCGGTCAGATACACATTCTGGTGACTCCAGTC
-CTGGGAGTGGGACACAAGAGTGAGGGTCACACAGAAATGGGGTTCATGGTGGAGGCAGGG
-CAGGCTCTCTGCCCAGCCCTGGCTGAGGcctttctctctcccttccatccctcagtccct
-ctgttccttcctccctGCTCCAGCTCTCGGATGAGTACTGCTACTTCCCCAGTCCTCACC
-TTCTGTTCCTTAGATTCGGTGAGGCCCCACATCCTGCTGATAACCCTCTTTCTGTTGCTT
-ATAACTCAGGAGGCTTACTGATCCAGGGTCGTACGGAAGCACACAGTAACTAAAGTGTAC
-CCTGGGATGCTGTTCCCAAGCAAAGTTGGCATTGCCCTCAATTTTCTTGCCCTGGGATAA
-GAAACTGCAACAGGAGAGCAGAATAAAGATTTTTGTGCCTCTGGAGCTGTATACCTGGCA
-GGGATCTGAGGGCAGAGAGCAAGTGTGATGTTGTAAGGGAGATTCCCAGAGCCAGAGAAA
-TAAGAACATCCACTGAGAATTTAGCAGAGTCCGGACTTCTCACTCAgcaaaagattcaga
-ttctgatactacccagagctggcaagaatgagaggaaaccttcgctttttcaccttagat
-aggagtgtaaacttcggggaaaaatctagcagtacctaataaatttggagatGTCTCTTT
-TCTTTTTGTGTTAAAAAGtttttttgtttgttttgttttgttaagacaggatcttgctct
-gtcacccaggctccagtgcagtggcatgatcctaagctcactgcagcctcaaattcctgg
-gctcaagcaatcctcctgcctcagcctcctaagtagctgggactacaggcatgtcccacc
-acaccaagataattttttaaaaacttttgtacagatggtctctctctgtttcccaggctg
-gtcttgaactctggcctcaagtgatcttcctgcctcagggtcccaaagtgttgggattat
-aggcatgagccaccacgactggccTGATGTCTCTTCTAAATGTAACAATTTAGCTTCTGG
-TATATACCCTAGAGcggcagttctcaaactctggcgcacaacagcagctcctagagagct
-tgttagaatataggtccctgggttccacccctggtacgtctgattcagtaggtctgagaa
-tttgtatttctaacaggttcccaggtgatgctgatgctgctggtccagggaccatgctct
-cagaaacactgAcctagagaaacccttgtatatgtgtagaaagagacaaagatatttatt
-gcagcattatttaatagcaaacaactgcaaaaagctaaccctctgccaaaggaatagata
-aatacattgtggtatattcatacaccacagccagataccacatacacaacccagccatga
-taaatgactgaggtagctacagttatcattgtgggcacagctcaaagacggggctgagag
-gaaaaaagcaaggtgcacgatgaatcatatagtaagagccatttatataaagttcaagga
-cctgcaaagcaatattttgtAGCATTTGTGACTTGTAAATATGCATTCAGAGCAGAAGAC
-ATGGGACTAACCAACACTGAATTCAGGATCATGGCACACAAATGtttattatattatttt
-aaattCTTGACTGTAGGTTTGAAATAGTTCACCCTAAAAATGCATAAAGAACAAAAGAAT
-TTAGCCTCTACTGTGTCCTGGGGCAGGAGGAGGCCTACATTCTTTCTTCTCCTTCTCCAC
-TAGCTCCCCTCCCAAGCCCTGTCCCATCCTCAAGCTGAGGTCTTGAGCAGGGGAAGGTGA
-CAAATTCTGAAGACGTGGGACCCGGGTTCCAAGAGCAGTGGAGACTCGTGCCTCTGCACA
-CTttgcccctcgtccactctcccctcatcctcagtagtggaatcctgatttttattttat
-tttttgaggcaaggtcttgctctgccccccaggctgaagtgcagtggcacgaccttggct
-cactgcagcctagacttcccgggctcaagcaatcctccctcctcagcctccctagtagct
-aggactacaggcgtgcaccaccatgcccagctaatctgtgtatttttttgtagagaaatg
-gtttcaccatgtttcccaggccggtctaaaactcctgggctcaagcaatcctcctgtctc
-agactcccaaagtgctgggattacaggcctgagccacagcgcccggctggaaccctgata
-ttaagcggagtttatgtcctctaagactatatttcccaggccctttgcagctatatgtgg
-tcatgtgcttatgccctgaccaatgggatatgagcgggcatgccctgtacagcCCCTTAG
-GAAACGCTGGCACTGTTCTCCTCCCATTTTCCCTTATGCCTGCAGGAGTGCAGGCTTAAG
-AGTGGAGCCATGGCAGATCCAGGAGGCAGAGGGATCTTATAGAAAgacagcttggcgtgg
-ctgtattaacccagggctgcccaccgccgagattctttcctggggaagggaggaaagcat
-tgcccatcttgtttaggtcactgGGCCTTTCTGACGCACACATTGACTGATGATGTCGGG
-TTTTCCGCCATGCAAGGCAGCACAGAGTCATATCAGTGGAGACCAAGTTGCCCTGCGCTG
-TGCCTTGGCGCTGTGTAAGCCCACTGGGCCTGAGAGGCGACCCCACTACCAAAGAGCAAG
-GGGACCCTCAGTTGACTTGTGGTGATCTTTATCACCTGGCAGAATAGGACTTCAAATTAC
-AAATTAATTTAAATTACAGAAAAACAAAGTAGCATTTCCTGAAaaacgaatctgtggaca
-cagactcacaccctgacatggcgttgctgcccattttgcagctgagaaaaaccgagaatc
-aaggaggtgaaacgacatgtccagggtcacacagaattggcaggggtggacccacatcac
-tctgccccacgctgccctctTAGAGCATCTGTCCAGGGCCTCCTGTGTCAGGCAGAGCCT
-GGGGCCATGGGGGTGAGCCACGCATGGCCCCTACCCCTATAGGACAAACAGCCTGGTGGG
-AGGAATTGAAGCCCACAGAAGTGACAGCAAAGCAGGATGAGATAAGGGGTCAAGATGGAG
-ACAAAGCAAAGCTCTTACCACTCTtagaagagcttagaggtcactcagcacaactcctgc
-agtttcactggggacactgaggccagaaggggtggagctttccccaaagtcaggcagcca
-actGCAAAGAAGCCTCAGTCCTCAGTTAGAGTTATAGCACTAtttgttttttgtttgttt
-tattgtttgtttgtttgtttgtttgtttgtttttgagatggagcctcactctgttgccca
-gactggagtgtagtggtgcgatctcagctcactgcaaactccgtctcccaggttcaaacg
-attctcgtgcctcagtctcccgagcagctgggattacaggcacccccaccaagcctagct
-aaatttttttgtatttttagtagagacggggtttcgccatgttggccaggctggtctcga
-cctcctgacctcaAAAAGCTACAGTATATGCTGAAGGCCAAAGAACCCAACAAGCCCCTC
-CCAGGCCTCATAGAGTGCTGGCCCACTGGATGGTGCTTAGCATCCTTCAATACCCTGGTC
-TTTGAAGGTCAATACCCTGGTCTTTGAAGGGTAGTGGCTGTTTCTGGCCTCATCCTCGAC
-CCTGGCAGTTGGCTAGGATGCCCTCTTGTGCCTCTATGTTGTAATGGCACCTCTTGCTTT
-TTGACTTCCGGTAGCCTGTCTGGTGTTTCGTCATGTCTCTGTAACTCATTAGAAAAAGCA
-GTGCTACTGCCTCTCTCTACCCCCTGCCCTAAAGTCACGGGTGCAGGCGCTTGAATGTTC
-ATTCTGTGAATCATCAGTGATGACAAGAGTCTGTAGAGTGCTGCTCTAGAAAGATCCAAA
-CTTGAAGGTTCTTAAACTTGACTGTGATAACAATCTCCAGAGAGGCTTGTAAAGCGTCTG
-CTGTGGGCCAGGAATGTGCACTTTAACAAGTCCAAAATAAATGTAACAGAATTTTGGAAG
-TGTCTTCCCTGTTCACAGTTTCCTTTCCCTGAGAACTGGCCCCAGTAATCCTGTTTGTAG
-GGCATGACTCTGACCCTAACCAATGGCTGTCTCTTCCAGGATGGGCCAATTAGACCATCT
-CTCTCTGGGCTGATGGACAATGGTCTGCGCTGGCCTTGACCTAAGGCGATCTGCAGGTGG
-GAGGGTAGCCTGTTCCAATGCACATGTGTGAGAAGCCTTGGTGGGCACTAGCTAACAGAG
-GCTCTGCTCCTCTGcactctctggcattgaggttcgtgtgctgccatatccacccagatg
-cacttaacctgggcttggccaatcagagcatcaggtccccttgactacagtggttgtagg
-ttcagacacaggctcacatccccacaagagctagtcttggggtttttgctgaggtcaatg
-gatgtgtgtggagatgtgtgtgttttcctttcctctctttggatctaggaggatatagat
-cagagctggtgggtgccacatgagggaagagcctctggagaatggaggccatacagcaga
-aacagagccaagagacacagacaaagaccaaaaagagtcatctgtgcatgtggatccacc
-ctggggatccataaattctctttttttctcaggtcacattgagttaggttttctgtcact
-tgcaaccagatgattcccgactaatacaGAAGTAGAGAGAGAAAAATAAATCAGATGCAG
-AGAGAGAAGCAGCAACCAGAACCTCACGGGCTCCTTGAGACAGAAAAAATTTCTGACTGC
-CTCCCAGTCCTTCCCAAAGCTTGGCTTGTCCCATAGCTCCAAATCCAGTGACTTTTTCAC
-TTGAGCTGGTTTTCTTCTGTCAAATTACAATAAAAATGGATGTAGCTCACTAGACAGCGA
-ACAGATCACGGTGGAGCAGCGCTGCTTTGGCGCGGATGAGGAACCTGGAGCACCACCTAT
-CCAACCTGATCACCCTGGTGCTCCAGGGGACACTGAGGTTCCAGGGAGCACACTTTGAAA
-CCCCCTGGGTCCTTCTACACATCTTGGCCTCTGTCGCTGTCCTCTCCCAGCTGAGATGCA
-CATTTTAAAAGCATTCAAGCTCTAGTTGCAACCTCCCCAAGTTTTCTTGGGCCATCACAG
-TGGATGGCAGGCACCCCATGTAACTTCCATTAACAACTGTCTCCCATAATCAAGACCATC
-CTCCCTCAGTCAAAACACCAGTAGGCCACAAAAGCATGGCCCTGTGTTGCTCCAGCAGCT
-GGAGAGGCTTAGAATGAAATCTGAGTCACTCCATGTTTCCCCAAGCACCCGAGGGATGAG
-TCCAGATTTGGATGTCCATTTTATGGAGAATGAGAGTGGAATCAAACACACCAGATTTGA
-CAGTTTGCAAAGTGATAAAGGCTTATGACAACTCTGAATGCGTGCATTAACCCAGGGTTG
-AGTGATCCATTCATTCATTCATCGACCcattcattcaacaattactgagcccctattctg
-ggtaaggtccagtgctaggACTCAATGGTTATGAGCTTTGGGGCagttgtgtgaccttgg
-gcaaggtactttacctctacaagcctcagtttttccagctgtaaatggggataataatgc
-ttatcttgcagggctgttgtgattaaaggagatggtacgtgaaaaactgttagctcagac
-cacctgcagcaggcatctgataaactgaagctaccattattATATTGAGAATGATGTGTT
-TTCTGCCCTCAAGGGACTTAAAAATCTAAAGACGTGTAACAATGCAGGTTcccaggttga
-tatcctggccccatcactcattgaatgagatccctcgtctctgtgggcctcagtttcccc
-atctgaaaaattgtggcagcaattcctacctccacgtgatttgttatgagggatgtgcaa
-accagcaagcactggcacacagtaggtgctcCTCTGTAAACCTAGGTTCCCTCCCTGTTC
-CCTCACCATCATGACACACAGTGGGACTGTCAACCAACATCTGGACCCTTGTCCTCTTTC
-CCAGGTGAGCAAACAAAAGCCAGAGATGTTGGTGAGGCTGGAAGGAGGCCAGCAGGGTCC
-AGGGACATGGTCTTTTGCCCTCTGGATGGTGAAGTGCTCAGGGCAGAGATACTAGCCAGC
-AGCTTTGGTCCTAGGTGAAGGGCAGGCTTATTCCTTCTTTTGGGAATAGGGAATAACCTG
-TGCCCTTCAAATAAGGGTCCCTAAGCTCAGGTTCACCCACATCCTGAGAACTGCCCCAAG
-CACCTTGTTTCAACAGGAGTCAACGGCTCAACATGTGCAAGTGATCGCTGTATTTTTTTT
-TTCCATTTCAGGGTTTTGAGTGAACTTAGGGTCATCTCTGCCATATCATGCCTTCCATCT
-GCCTTCACTCTGCAGAACTTCCCTGAGGGGTCAAAAATGCAGGGTGACATCTGGGACGCT
-GAAAATGTCATGTTCTCCTAGGCAAGCTCGTCTCCTCAGTAGCCCAGTGAATCTGTCATT
-GAAATTTCCTTAATACCCAAGCCAGAAAGCCTAGCCCCATACATTTTTTTTAAAAAAAAC
-AAGACTAAtttggatagatttctagcatttaaaaaatcaagagatttcacattaaaaagc
-tggaatttgaacttctctggaaaaagtcagaacatctaccaacactgggtctgctgtcac
-agggcagtgagtggttagagttacataaataaggcatatgttccccaggttactgcagac
-cctaccCCTCCCTATTGTATTTCAGATACTGAGGGAAAAGGTCAGCTGCCCTATGTTATC
-ATCCTTGAGCTACATCTTAACACCCACTTCACTCACTCACAATAGAAAACAATGTAGAGc
-aggggttctcaaacttgggcatgcatcagattcacctagagagcctgttaaaaacacagg
-ctgctgggccttaccctagagttgctgattcattaggtctgggcagggcctgagaatccg
-cattgctaacaggttcccaggtgatgctgacctttgctggtcctgggcccacactttgag
-aactactAGTGTGGAACAGGGTTAAgagccagactggttggattgaaatttcagctctgc
-cccttacctttgccatgtgaccttgacccagtgccttaacctcactgtgcttcagttttc
-tcatctgtaaaacaagaatcctcctggctgacctcacaggtgtgctgtggggGCCTGGCA
-GGGCTGACAGTCAAGCGGGTCTCCATGACATCACTGTTACTACCATTATTATCACCACCT
-GCCCTGCCTGTGTTGGCATTTGTGATCCTGGAACTGCTTTGACAATCAGTGCAGAGTTTT
-TGGTTTTGATGCCAACATTTTTGGGGGTAGAGTTTCTTCATAATTGGGGTGTGCCCTGGG
-AAGTGTGTCTTGCATGAGAACATCATGTCATGGTGAACTAAGGATTTAATACAGCTGTCC
-TGGAGGACTCCCCAGGGCTAAGAAGGATGGGGAAAGAGAGAAAGACACCACTGCCCCTGC
-TGAGGTCCCTGCTCTGTCCTTGGGGAGGACCCAGAACCATGCAGGAGGGCCCTACACAGA
-CAGTGCTGGGCAGCGCATCCTCCGATGCCCGCCTGGCAGTGCAGGACGCATGTCACCGAT
-GACCAAGGGAAATAAAAAACATCTGGGCACCCGCCTGCCCACTCAGGCCTCCACATATGG
-GAGGCAGTCGCCACTGCTGGAGGCTTGCTCAGAAGATCCCCCAGCACATTTCTGCCTAGG
-GGTAGATTGCACCATCTCTAGCAAGGGGGTGGGCCCTGGAGATGACTCCCAGCTTAGAGA
-CTCCCTGGGATCAGGGCTAGAGGTCGCTAGCCCACTGGACCCTTCTCAGCACTCAGGAGG
-TGGGGGGACCAGCAGGGCAGAACATTCAGCAGAATGTTGaggttgccttggctttggggc
-ctgacaaaccaccacttcctagctgggtgatattgggcaagtggctttactgttctgagc
-cttggtcttctcttctgtaaaatggggacgatagtagcaaccacctcccaggcagttgtg
-gggatgccatgaactcatctgcgcaaagtgcttagcacagctcacggcagatgaatgagc
-actccattactacttgattCATGAGAGATGCTCCTTTGAGGGCTGGGCCCAGCTTGGCTT
-GCTCACCTTTAAATCCCCACGGCCCTGCACATTGTAGGTGCCCACTGACTACCCATTTGT
-GATTATACCCATTATGCCCATTCATTATTTCTTAAATGAATGCATGAACGGTGGCTCAAT
-AAAGGTTCTCAAAAACTGCTCTCAGGGGGCTCACAGCCTATTTGGGAGGACCAGGCCCAT
-ACGAATGTGGAGAAAGCTGATGACCTCTGCCCAGCAGGGCTCAGAGACAAGTGAAGGACC
-CAGGCAAGGTGGGAGTGAAAGTCCAGAGACTGGAGACATCAGGGGTGGTTTTCTAGGGAG
-GCAGATGTGGGGACAGAAGCTGAGGCCAGGAGCAGGACTAGTTTGTGTAGATGGAAGAAA
-GGTTTCTAAGAGAGGTGAGTACAAGATGATATTGTACTCATTTGGTAGAAAGGGAGGGGC
-TTGAGCAAGGAGCAGATGGCAAATCCCCGCTAAGGTGCCAATACAGGACACCTAAGGGGC
-TAATGGATAAGACCCTCAAAATACAGTAAGAATAGGCacacatccaaaatggaaactttt
-catcctttgccctccaaacctgcttctcctgtccatttcagtcaatggctactccactca
-gggccaaagacttcagcggcatccttgtctcttctctctccctcatatcctactattggc
-ccatcaggaatccggtcagttccacttctgaaatatgtctgggaataatttctccacctt
-tcctgtccctaccccgttccctgctcctgccctgtttccccaccactcaccttccctggc
-catgctggcctcatcctccatgttccccatctgccaagaccactcccaccacaggacctt
-tgcacttgctcttccttttgtctggaatgcccttcccacattcacccgcaaggctccctc
-cctcaaatgtctccttgtggggacaagagtgattccttcttagatactaatttgccacgt
-caactcctgactaaccctgagtccagtaatgcctccaagatgtctagctgaagcattact
-ctctacgtagaaacacttatttgctgcgggtttcacttttcctccaaaacaaaccttgat
-gctgctgcaggaagcataggctatgacacccatagcacaatgtcagtcacctgtgcactc
-ctcccagagcacgcagacctttctccccaagatatgtaagccctgggtctggagagttac
-agcttggagatctacctatcttgaggctgcccaaatcttgctctgttcaaaagttcccca
-actaataaccctttaccaacaaattggaattggctgcctcattctttggtttcccagctc
-cttctgcatttggggtcgctttatgtatacggccctttcacagaacaccccttccctgtg
-atgcccccagacctcttgcctgcagcagcaccacacctacaccctattcctctcccacgt
-cgctatgttcttcatgccatttattcccacctgataggttctaaatttggcaagtgctgt
-tgtctctttcccaccagtgaaagatgagttccaggaaggcagggaTGAGCCACGGCACAC
-TGGACCTTCTCACTTATGCAGCACCTGCCTTCTCACTTAACCAATTCTTTGTTTTATAGC
-TGCTTACCATTCCGCATAGaggggctgcaaaactcatttaggtgctattatcacacccat
-ttcagaaaggaggaaactgaggttcagagcaatgatgctgcttgcccgaggtcacttaat
-aagtggagcagatattcaaacccaggcagtgtgactctgaacctgagggttatcctcagg
-ttgccacactgcAGCCTGGCTACTCAACATATCCCTGTGCGCCTCCTCAGTCCTCCATGC
-AGAGTCCCTTACCTACTGACGCCTTGCTAAGTTCCCAGTGCTGTGCTGAGGCCTTCTTCG
-GTGTCCGCTTGACCTCACCTGAGACAGGAAATTGGCCAAATGGTGGCAGTGCAGGCTGCC
-CCAGGACTGAACATGCCCCCTCTGCATTCCTCATCCATCCTCCCCTCACCCCCAGTAGAG
-AGTGAGCAGATCAATAGGTGTGTGTTCAATCAAGGGGTGAAATGCCCACTCCGTCTCTCA
-AATTCTCCAGGAGTGAGTCTCCTGCCTCGCAGCTGGGACTTGGGGAGGATGAAGAAAAAT
-TACCTGCTAAGTTGCAGCCTCTGCTGGACATTCTGGCCAGAATCCTTTTTAGACGTTGAC
-CTATATGGGCTGGTTGCAGGGGTGGAGAGGGTGGTGGTAAAACCGGGGTTCAAACTCACA
-TTTGTTGATTTCATGGCcagtggtgatctcagatttcaatccccatcagaatcacctgag
-gctgcttattaaaaACAAGAGGTGCTGTCGCCTCTCGACACATGCGGTTGTTTTAACGTT
-TATGGTGTGCCCAGGGTTGTACGTGCATGAACTCAGAGATCTTCAAAAACTGTCCTGTGA
-GATCAGCCAGGgcttcccaaactgtaatatgcacacaaagggatttaactcagggatctt
-gggttaaaatgtagattttgatgctaaagttctggaatggggccagaggtgctgGCCCGA
-GAACTCACTTTAAGAAGCGAGGCGGgagatgctgttatcattcctcattttacggttcag
-gaagtgaaggctcaaagaccaacaattataggtggtggcattagatttaaacccacagct
-gatgaaaccccagactcattctactgtgtcacactgccTTACCCTGTTGGTCTGATGATG
-AACGTGGAGCGGGAAAATGGGAGTGATACTCAAAAGGGGCAACCTggccaggcacagtgg
-ctcacgcctgtaatcccagcacttagggaggctgaggcaggtagatcataggaggcccgg
-agttcgagaccagcctggccaacatggcaaaaccccgtctctactaaaaatacaaaaatc
-agctgggcgtggtggtgcacacctgtaatcccagctactcaggtggctgaggcatgagaa
-acgcttgaatccaggatgcggaggttgcatgagccaagattgcaccactgcactccagcc
-tgggcgacagagtgagacgctgtctcaaaaaagataagatataaaataaaataaaataaa
-aataaaataTCAAATGGGCAACCTGACTCCTTTCGCCACTCATAGGAGGGGCATTTCCCC
-AAGCAGCCTGAGTTGGGGACAGTCCCTGCCAGGCCCAGCATGGCAGAAAAAGGAAGGGCT
-GGGTTCATGTGTGCCCGACATGTGTGTGTTTGGGGGACAGGGGCAGGTATGTGCCGACAC
-ACGAGACCCCTGTCTAAAGGATCTGCCTGTCCCCACATTAAAGCATAGAGAAGGCCTGAG
-CCCCTGCCCTATGCTGGTCCTGCAGGGCTCGGCTGGGGCCCAAATCAGGGGTTGACACAG
-TGAGAACAGGCTGCTGGTGCCTGGCATCCCCCACTTCCCACCCCACATCAACCAAATCTC
-TGCTTCCCCATTCTCCTGGACCTGCCCTGGACCACATCTATTCTGCCCTCCATTAGCTAC
-TCATTAAGAGAAGTTACATTTGTGTTTCTGGTGGGAGCCCTGGGGGTGCTGAGCAGCCCA
-GAGCAACCACTGGTGACCTTCAGAAAAATCATATTAAAGAAAAAAGGGTTGTTTTTGGAT
-TCCTCATCATTCGGCAAGCTGTGCTGGGGGTAGAGCAGCCAGATGAGTTCGGGACCGGGG
-CAGAGAGTCTACCCTCCAGCTGGCTTCTCCAGACCCACCTGCCCAGAGCTAGTGCCCTGT
-TAGCCAGGAACACAGAACTGTCACAAAGCTGTCCTGAGCATGAAACTGTTACCAACCAAT
-CTGTCCGTGGAGTTGTTACAAAACTGTCTTGTGTGTGAAGGTGTCACAATGTTGTCAAGT
-ATGTGACCTTGTATAAGAAATTGTCATGCAATTGTCCTATAGGTAAAACTGCCATGAAGT
-TGTCAAGCATATGCAGTTGCCACTCATTTGAAAAACTACTGGAGAAGAGTTTCTTTTCTT
-TTCATGTATGAGGGACAGGTTTGCTGTGTGGGTGACTTTGAAAAAGTTGCTGACAGGCAC
-TGTGCTTGGCTGCTGCTCCTGTAATAacagcgcccggcacccagtaggtgctcagtgagt
-acttgccgaatgTCTCCTCAGGGCTGCAAAGTAGACTCAGACAGGTTCTGGTTCTTTCAG
-GTGCTGGCTTTGTCCCGTAGTGGGCTGGTCTGATGTGACCTCGGGTAGGTCTGTTGCCTC
-TCGCATCCTCTCTGAGCCTACTTTGGTTGTTGTAAAGTGCCCTGAGGCCTGTGTATGACG
-TGCCCAGCAATACTGGGGACAATAAATGCTGGCTGCTAATTCCCTCTCCCTCTTGTCGGG
-GGTTTATGATTCCTCAGGGCTCTTGATGGTAGCAGAGGCCTCTCGTGGCTCTTTGGGAGG
-CTGTGGAAGCTTCAGCTTTGGCTGAGTAGGACGTCTGCAGTGGCAGGACACCTCCAGCCA
-ATCAGGATGCTCAGTGTCACAGGGATTGGGGGCAACGCCCACCGCTACAAACCCAGGAGG
-CCTCCTCTGGGGAGGATGTGAGCTCCAGGATTCCAGGAAGGGTGGGAGGAAACCTTCTAA
-GGGGAGCTGAAAGCTCGTTGATTCCTAAGATGAGCCCGAGTGAGAAAGGTACCAGGTTTT
-GAAGTTTGTTCTGCAAACGACCTTCTTCACTTTTTTGTGAAGTCCTGCaatcaacagagc
-tcagggctaggaattaggacctttgctcctgtcccaccttggactcagactcattgtatg
-acctttggcagagcacctggagcttcCAAGGGGTGGCAGAGAGTTGGGAATGCAGTTTCC
-TATCGGAAAAGCAGAGCCTTGGTCTTGATAAAGAACTTTTGAACTTTTTCTTAGCCAAGG
-GAGCCTTCCTTTTTGCAAGATGAAATGTGACATGAGAGATCGATTCCTAAAATGAATGAG
-TTGAGCTGCTTTGGCTGAGGCCAGGATGGGGGTGAGGGTGAGCATCTTGAGCTGTCTTTT
-TGGTTTCCTTTGCCTACTTCTAGAGGCAGCCTCTGAGAGCTTGGATACCCCCTAAGGAAC
-CTTTGAACCCCAGAGTTCCACAGTGCTAATGGCTGCAAGGCAGGTGATATAATTTTGTGG
-GACTCTGGAGCCTGGGTTCATTCCCACACtagcttctctgagcattggttttcccgtctg
-taaatggggataacgactatgctcacatgttgtgacagtgtggtaagctggttttgtgtg
-tggcatgccaaaacagggtttggctgacatggggtgcacagcaatgtgggAGCTGCTAGC
-AGTTGTGGATCTCTTCTTTCACAGGCCAGACTGCCTcaacaatcctgcaagatgggtagt
-attatctggtcttgcggacaaggaagctaaggcacagagaaggtaagtaagttgcccaga
-tcccatagctggtgagtggcaaactcaaagccaggcagtctTAGTAACAGATAGTTATTA
-TTATTTTAAGTACTGGGGAGAGTCTAGGCCCCAGAATAGGTCCAAAATAAATACCCTCCT
-CACCTTACATAATTAAGCTCTAAGAAAGCTTAGAAATAggccaggcacggtggttcacac
-ctgtaatcccagcactttgggaggctgaggcgggtggatcatgaggtcaggagttcaaga
-ccagcctgaccaagacggtgaaaccccgtctctactaaaaacacaaaacacctgcaccag
-gtgtggtggtgcgcacctgtaatcccagctacttgggaggctgaggcaggagaatcactt
-gaacctgggcagcagaggttgcagtgagccgagatcatgccactacactccaccctgggc
-gacagagtgagactctgtctcagaaaaaaagaaaGCTGAGAAATATAATCAGCTCCCAGT
-GCTGAGAAGACTTGGGGCCCCACTGCCAGTGAGCATCAGGAAAGGGGGCCAGGTCTAAAA
-GTCAGCGCTGACTGAGGCAGGTCCTTGGTCAGTGTGTCCCTGCCAGTGTTCCTGGGAAAG
-CCCCAGTTCTTCTCAGCCAGCACCCTGGGTACCTGGAGCTTCCAAGGGGTGGCAGAGAGT
-TGGGAATGCAGTTTGGGCCTCCAGCCCAATGCTCCATGCTCCTTGCCCAGTAATCACACC
-TGGCACAAAGTGAGCATCTTCAAGGACCCTATTCTGGGTCTGGTCTCTCCCCATGGGCCT
-TCTTCAACACTCAAATCCTAGTAGTACAAGGGAGAGAGCCCCAGATGTGGACTcttgtcc
-agttctgtgtgtcctcaggcaagtgtctccctgtctctgggcttcagtttctccatctgt
-caaatggatggttaaactcagtgtttctaaaggcccACTGTTCACccatccatccatcca
-tccacccacccacctacccatctgcccacccatctatccatccccatccatccatccatc
-catccccatccatccatccatccatccatccatccacccacccacccatctatccatcca
-ctcacccacccatctatccatccatccatccacccatccatccatccaccaacccatcta
-tccatccaatcacccacccatctatccatccaccaacccatctatccatccactcaccca
-cccatctatccatccatccatccacccacccactcatctatccatccatccatccatcca
-tccacccacccacctacccatctgcccacccatctatccatccccatccatccatccatc
-catccacccacccatatatccatccactcacccacccatctatccatccatccacccacc
-cactcatctatccatccatccatccatctatccacccacccacccatcatccacccaacc
-atctatccgtccatccatccattcagcagatatttcttgaatatcatctatgtgccaggA
-TCCTTTATTTATTAAAGTTAAAAGACAAATCACAGACCTGTAGAAACATTTTAGAAAGAC
-ATACAAAATCATACTGGATTGGAAATGTAAATTTCCCCAGGACttttgttcaccagtgac
-tctccaatgccatgcatggggccacatgtctactaggtgctctgtaaaatgtttattgga
-tgtaagaatGAATAGGACATATTTTGCTGTTCTAAAGAGAGCTGCCTCCGAGTCTGAGAT
-TGGAGTCAGACATCCTCTCTAGGACTTATTGAGAGGGGGCCAACTATCTTTGTCACCCCC
-ATCCCTGACCTGCCCCACTGCCTCCCCAGCCCATATAAGCCAGTTTCTAAAGAGGATCTA
-AGGAGGATTGGCCAGCAGTGACTGGGGCAGGGTAGGGCACGGCATGCCCCCAACTCCCAA
-GCCCAGGTGGGCTCATGGTTTGGAGGGGAGAAGCTATGAACCAGAGGGAAACAGGCATTC
-CATCCCTTGATTGAACTCACTCTTGTTGATCTGCCCTGTGTCCATTGGGAGTGAGTGGAG
-AATGAATGAGAAATGCAAAAGGGGTGGGGTCTGGCAGAGGCAGCCTGCATTGCCACCATT
-TGACCAATTTCCTGTCAATTTCCTATATTTGGTCAAGTGGACATTGAAGGAGGCTCTTGA
-GCTTAATCTAAGCCATGGTTTTCCAGCCCAAAGGGGCATGAGGCTGTTGAAGTGGGGATG
-GGGTAGTGAGGAAGCTAGGGTGATCTGAAGAGGTCAAGCTCGTGCTCCTTGCTCAGTAAT
-CACACCTGTGTACCAATTAGGCACCTGCCACACGTGGGAGAAAGGGGAGGGCATGGATGG
-AGGCAGAGGAACATTTAGTCCCAGTCCCTCCCTGCTGCTCACTGGTGATGGCCCCAGAGT
-TTTCTAACACCGGGAATTGTGGAGGCCACAGCAGCATCAGGGTAGTGACAGCTGTCTCTA
-TCCCCATTCCTTCTTCTGCTCCCCAACATACAGGGGAGAAATCAACCCAGAGGGAGGAGA
-GAAGAGAATGAGACAGCATGACATATCTCCCTACAGGGCAAATCAGTGGAGTCAGAAGCT
-GAGTCAGGCAGTGATGGGGAAGCAGTGATGGGAAAGGAGAGCTTCAAATCAGACCTGTAT
-TTTAAAAATTCAGCACTGGACTAGGCTTTTTAATAGCTGAAAGTTACCAGAAAGCTTTGA
-GATCTGCCCAAAGTTATTAAGGATTGGAGTTTAAAAATACGACTGTGCATTGGGGGTGGG
-GGGTGGGGGGTGCATGGAAAGCATGCCATGTTTGTAACCCTCTGTTACAACTTCAGTATC
-ATCATTAAGCCAGTTACACACAAAGTAAGCCAAGAAtatccttaatacacaacgagctcc
-tataaatcaataagaaaaaggggaatgatccaagtgtgtggagggagaatgggcaaagac
-attacaaggaatttaaaaaagaaagacaaataggacaataaccatacgcaaagctgttct
-acttccctaagaattttcaaattgaagatgagaacaagaatgaaataccaccatgaccta
-caagatacggaaactgtaaaagactCCGGCACCCTCTTTTGAGAAGGCAATTAGGCAGAG
-TCTATTATCTGTAGCCTGAGGTAGTAACAGcattttacaggaagtgtcctgagttgagag
-aggggtaggcacttgttagaagccacacagtgagtcatgggaggggaggagctagaactc
-agacctctggaTGGGCACCTTTGATTCTTTATCTCCAGCCAGCTGGTCCTCTCTGTCTGG
-GCTAGTGCACAGCCTGGCCCCTGGCCCCTGTCTGGGTAGCCCAGGTCTGCTACATCCATT
-GCTGCACCCTGCTCTGGGCCTGAGGATGGTTGGGGCACTGCTATTCCAAATGACACATCT
-CTTATGATTACCCTGTCCTTCCTAGACAGGAAGCTTTCAATTAGTCCTGCTGGGCAGCAG
-CCTTAGAGGgtagaggtaggactccaaggtttgggatgagacaaacctgttctcaaatcc
-cagccccacctttactccctgggacagttacttaacctcagtttgctcatttgtaaaaGG
-AACACTGTccaggtgcggtggctcacacctgtaatcccagcactttgggaggctgaggtg
-ggaggattacttaaggccaggaatttgagaccagcctgggcaacatagtgagacccttat
-ctctatgaaaataaaaaaaaaaaattagccaggcatggtgatgcgtgcctatagtcccag
-ctactcaggaggctgaggtgggaggactgcttgagcccaagaggtcaaggctgcaatgag
-ctaagatcgtgctattgccctccagtctgggtgacagagagagaccctgtctcaaaaaca
-aacaagattaaaaTGGACACAATCACCCACCCACTGAAAAGCttgttccttccacagata
-tttattgagggcctactatgtgccaggcacttttcaaggcactgcagatacatcagtgaa
-tgagacagaccttcccctcatgaagtttacatcctaagtgggagagggagatcatttcag
-agaacgacagggaattgaatttgggtacacagagtggcaggagggagggcctgggctgcc
-tggaagggcatctctgagatacacaagaaagcactcttggcggagggaccagtgggtaca
-aaagcccagaagcggcaaagaacgtggtgtggaagagagcagcaaggccagagtgcagtg
-actgaggggagagtggtgggtggtgaggtctggaggcagaggggccagacccccaggaca
-catggatgagtttggatggtgctggattttcctggaagtgagttgggaagccactgtggg
-ttgcaagccgaggagtgtctgccaccttgaaagcttctctggtgctgaggggaatggact
-gtggggcaggagtagaagctgggagctcagggtgtatgggctgtggtcattctggtggcc
-tggacgaggctggcagctatgagaagtgggtggatccagggagggtggacagacaagctc
-tgctcatgggttATCATGAAGATTAAAGGGTAAGTGACTCAGTCCACAGTGCAGCACATA
-GCACATGCTAGACAGATCTTAGCTGttttatttatgtatttatttatttttgagacacag
-tcttgctctgtcactcaggctggagtgcagtggtgtgatctcgactcagtgcaacctctg
-cctcccaggttcaagcaattctcctgcctcagcttccctagtagctgggattacaggcac
-ccaccaccatgcctggctaatttttgtaattttagtagagatggggtttcaccatgttag
-tcaggctggtcttgaactcctgacctcaagtgatccacccgactcagcctcccaaagtgc
-tgggataacaggcgagagccactgcgcccagccAGATCTCAGCTTTTAAGAGGCCTAGAC
-CTAGAATCCCATGACTGTGTCTACCCCACAGCCTCCTCCATAAATGCCCCAAATCGCTTC
-TGCCTCTCCTGGTCATTGGTTCAAAATGTGATTCCTTGACCTCTTGTTGCCTCTTGACTT
-TTGCAGCTGCTGGGATGAAGTACTTGTTCTGAGTTCCTCTAGTTGCTATTTTAAGCAGAC
-TGCATACCCTCCGGCCCCCATCTCCCAAGCTGGTGTGAAACCCAAGGCAGTATCTGGGTG
-GCTCCCTAAGTCGTTTTCCAAGTTGAGAATAGGTAGTAGAGTCACCTATTCTCACAACCG
-TGACATTCCACCCAGTCCAGGCTCCCAGACTAACTGCCCAGCCCCTGGAagtagagagat
-gggaggcagcaccaggcagcagggaacccaggtttgagtcccagctctgccaccttgacc
-ctaggaaggccctttgacctctctgagtctctgcacctcttctgcaaaataggaatgatg
-atattaaagaattgcttgcagggtaaagtgaggtaataacctgcggagcacctggctgtg
-tgcccagctcatatggcaaacactcaccaggtaggagGATCCTAAGGTTGTGGGCaatgc
-atacaaagcctctggtgcattgtaggtgctcaataaatggtagGATGCCAGTAGGGAGGA
-GTTGAATGAGAAAAGGGGAAAGAGACCCAGTGCATGGTGGGGGTGGCAGGAACACAGGGA
-GTTGGGGGCTCCACCTTGGAAACCTCTCCTGGCCCTGGGGGCACTATCTCCACCAAACCC
-AAATCCAGGCAGCTAGAGGGACCTGGGCCTGCACAGGCATGGAAATTCTGCACTCACTGT
-TAGtgggcctcagtttcctcatccgcgaagtggaaaccataacccttcttaccCAGTTAT
-AACCTGGATTCTGGGCTGGAACCAAGATAAGCAGCTACAGGCTGTCCTACCCCACCCCCA
-GCTGGAGACGCGGGCCTCTGGGAGCTCTGGCCGATTTTCAAAGGGACCAGAACTGCAAAA
-AACAGAACTAGGCTAATGCTGGCtgagtgttcacagtgtgccaggacctgtgccacccag
-gtccttgtactaaatcattaaaacttgccataaccccacaaggtgggggctacacttact
-ccattggcagggatgagaaaactgaggctcggagaggtaaagggcttggcccaagcattc
-acaggaggagccaggaggaatgcaaaactgagcccagctcctaactACTGGAGAGGAGCC
-TGCCTTGTGGTCCGTCACCCCTCCCTGCCAACCCCTGCCAGCTGGGCTTCCAAAGGCCGA
-CAAATGCTATTTAAAGTCATACGTCTCTCAGGTCCCGAGGCACACCAGGGATGGACCCTA
-AACTGTTTGTGGGGGCAGACAGGAGTTATATCAGCCAAGTGAAGGCAGGAGGGGAAGGCT
-ACTCCAAGTGCCTTTAGTCTGGAACTGTTTGCATTGCAGGGATGGAGCCCTTAGTAGCAA
-CCTCCAGACAGTCAAAAAAGCTGGCTTTGCACACAAACATCCCAAGTGTATGTTttcctt
-cattctttctctttctcttttctttttccttccttccttccttctttccttccttccctc
-cttctttccttcctccctccctccctccttccttcctttctttttctttcttctttcttt
-cTCAGtctctctctctctttccctctctctcttcctGGGGTGGGGAGTTGTTGATGCAAG
-AGAATGAGATGATCCACAAACTGAACTGGTTCAGCCAAAGCAGCCCTCAGCCAGGGGCGA
-GCGGGAAGTGTAAGCTGTTGGCTGAGGATTCTCCTTGTGGGGGATTTTGAGCCCCTGTGG
-GGTGTTGTTCAAGCCAATGTCACTCGCCTCCAGGGGCAGGGAGTCTCCAGCTGATGTCTC
-TCTTAGAGGAAAATTCACTGCTGTTGAGCTTACTACCTCCATCAGAGTAGGGGAAAGGGG
-ACCCCAAGGACAGGGTCTGGCTAGCAGCACATGCTCCGCAGATGCGTGCCAACTGCAGGC
-TGTGATCCTAGGGCACAGTCAGGAAGGGGCGTGGACAGAGGAGCATTGTCGCAACTGAGC
-GTCCCACTAGCGTCCTCAGGAAGGCCCGAGGGCTGCTGCAGCAGCACTAACACTTGGAAG
-AATCCCTCGCGGGAAGGGTGGTCCAATGTTGAGGAGTAGCAGATCCAAGCTCACACTCTG
-GAGTGTGACtttgcttgtttattttaaaagaaggggtctcaccacattgcccgggctggc
-ctcgaactcctgggctcaagccatcctcccacctcagccccgtgagtagctgggatttca
-ggcgagagtcaatgcacctggcTCTGGGGTGACTTCTTGTAAGACCTTCTCATACAGACT
-TTTTAATAAGATCAGAAAACCCAGACCATAAGGCAGAACAAGCCCCCTCTCCCCACTCAA
-AAACCAATGGATTTGACCACACTGACAGCATGGTAAGCAATGATTTCTACTCTCCAAAGG
-TGaggactctacaaagtcagattaaaaaagattttttttgtgtcaaaatgaacatgggat
-tgatatctaggtaatacaaggaagccctacaaattgacaagaaaaattcaggaattccaa
-ttttaaaagtgggaaaaataaaaataaaatgtttaaaaagtgaaaaaataaaatttaaaa
-ttaaaaatcaggtgaataagaattacatgattaaaacaaatttaaacagttaaaataaca
-ttcaaaaacgaaattaagtaacaaaataaaaatttaaaaataaggtataaaaataaagtg
-taaaaatccattcaaataaaaaatacatttgtaaaataatttaaatacattaaaattaat
-aaaaacaaaaatgttaaaaataaaagtaaaatgtttaagtgaaataaaatttaaaaatgt
-aagaatacatgaaagaatttttacgagtaaaataaaaaatcagctatttttaacaatcta
-aagaataaagaaaAACTAATAGAAACATCAAAGGAGAGCAAGGTCTTGCTAGATGGATGC
-TGATGATGTGCTGTGAATTAAGGAGTCCGATTGGCTCAAATGCCTGCAGGGAGGCGGGGG
-AAGTGAATGACGGGGGTGGTGTAGGGAGTGAGAGGGGACGAGGAAGTAAAAGCATGCCCG
-CAGGCAGCATCTGATTCGGTTTTTCCAGCCCGCTGTGGGCAGAGGGCAGGAAGTCAGGCC
-CCATCATGGCTTCCCCCCAAAATAGCCATCACATCATTTATGCATTTGTAATGTGCTGGC
-AACATACGCACACGCACACGGATGCATGTTACATCATCCCATCCTCACTGCCCCATCCTC
-ACTGCTGTCCTCTGAGGTCCACTTTCttttttttttttttttttttgagacggagtttcg
-ctcttgttgcccaggctCTGAGGTCCACtttcatagaggagtgaacagagactcagagag
-ggtgggtcactgtgccacagtcacacagcACTTAGGACCACCCTATCCTCTGAATCTGGC
-ATGCTCAAAATGACCTTCTTTGGATGAGTTAGGTCTGCTGAGCACTTTCAAACAGAGGCA
-GGGCCATCTCTGACATCAGGCTCGAACGTTCTGTACACTAGGAAGAGCCCAACCTCTCCC
-CCCATGACGCATGACAGTTATCaccattaaagaaacactgactgtcttccaggggcgtca
-catgcatagtcatcttgaaaaccatatgaggtagatgctcttattgtccccattgtattg
-acagacaacatcgagattcaggagtcaaatactgtcacccaagcatggcagtaacagaac
-tgggagctgagcccaggactgtccacagcccaaatctcacactccctgcgtggcaccagg
-cCCTTTTAACCGTCATTGATGAGCACTCCCTATGTACCAGCAATGCGTTTGTCTATGTTT
-CATGcctcattttgcaaattagccaacgggggcacagaagggagagatgacctgcccaag
-gtcactcagccagtaagtggcagagccCACAGCCTTCGTGACAGCCTGCCAAGCCCCCAG
-TGCTCATCCGGGACTTGCTAGAGACAGCTGTGCCCACTGGCCAACCCCAGATCAGGCTCA
-GAAGGGCAACTGTGACATTCCTTCTCTTCATGTCTCCACCCTGGCGGATGTGGGCTCTGC
-CATCGGGCTCCAGGGAAAGTGGAGGCTTCCAGTGAAAGGGAGTGGTTTCCCCATGTGGCC
-TGGGTCCTCTGGGCTTGGGAATGCCTCTGTTTTGAGCTGGTGAAACAGAATTTCCCACCC
-CCTCCGCAATGGCACATCAGAGCCCCCACTATGGGCCACAGAGCAAGGGCCCTATGAATC
-ATGCTGCATTACTGCAAGAAATCATTCCAGGGCAGGCAGTGGCGGCCCAGCATGGGACAG
-CAGTGTCCGGGTGGAGTTGGCGTCACCCATCCGGAGATGGGAAGCAGACCATTCCCGAAG
-GGATCTGGAAGAATCTCCGAGGGCGGGGCTGAGGGCAAATGTGTCCTGGATGCTGCTGTT
-CCACCgggctaggaaaaaaagctccagcccacagagacctgggagcacatcacgaccttt
-ccccagcctggctgtgtgtccttggcaagttgattcccctccctgaatgtggaaggcctc
-atctgtagaagagggagaataatagggtcaagccacttcatggggctataatgtgggtAG
-CCTGGGAGGAGGGCtggcatggtggttatggactcaggctttggaatcaattgtctggat
-ggaatcctggtttttgccaaacttactctgccaagctgtgGggtagaaacatgaaattgc
-taatatttggctgtttatgacctagaaaaatggcaactgcatatacttcaaTGAATGTGC
-CTctcttttaactgcttcctcctctgtaaaatgtgggtaataacaggcccctcagagggg
-tgctgtgaggatgaaataagGCTgggaggcaattaagttcagtagttagagctgggctct
-ggggcaaggaaggatttgaaccttggctgagtggccttgggcaaagttacttaaccttcc
-tgtgcctcagttttcttgtctgtaaaataggaatgctactgcccactgcacaggtttatt
-aaggtaatttaatcaattaatacatacaaagtacatagaacagtgtctgAAATTGTTACA
-TAAAAGAATGCAGGTAACATCTGGCATCTCCTGCACCCTCATGTCTACTCACATAAATGC
-TCAACCACGAAACAAAATCCAAAGTGACTTTTGTAAACCTTTGATGCCAATGAAAGTTAA
-GTATTTTTAAAGAAAAAATATGTTTTGGGGAACATACATGTGTGTAGAGATGTAGGTGAG
-GAGTGTGCTCCCCAGGGTCCACCCCCAGGGCTGTTCTATGTCCTGATGGTGCCTATAGCC
-CAAGACTCTGAGGACAGGACTAGCCTTGAGGCCATGATGGCCCCGTGGCTTGGTCTCTTT
-CACAAAATCACACAGCCAAACCTCAGACCCTATGGAGAGGCTCCACTTGCCTAGGTAACT
-CTAGAGGCCCTTAAGAGGCACCCAGCCCTGGGCTGGCCTCTGATTATTAAGAAATTCCTG
-CAGACAGCCTTGGATGTGCGAAAGCCCTCCAGCTTCCATCCTGTCTTAAtttttttttag
-acgaagtcttgttctgtcacccaggctagagtgcagcagtgcaatctcagctcactgcaa
-cctttgctttccaggttcaagtgattctcatgcctcagcctcctgagtagttggtagttg
-ggattacaggtgtgcactaacacacccagctaatttttgtatttttagtagagatggggt
-ttcaccatgttggccaggctggtctcgaactcctggcctcaggtgatctgcctgcctcag
-ccttccaaagtgctgggattacaggcgtgagccactgcgcctggctCCATCCTGTCTTCT
-GACATTTGTCCCAGCCCTGGGAAAAAAGGCAAAGCACACTGAGCATTTCCAAGTCACGCG
-GGGGGAAACTGAGGCTCTGAGAGGCTCTCAACCTATCAGGCTCTGGAGCAGGCTGCCTTC
-CTCTACCAATTCAAGTTTTGCCTTCACCGCTAGTCTCCTgaaccctcacttctactcaca
-gctgggtgaccttgagtaaggtacttccctgcttgagtctccaattttacaaggattggt
-ctcaaaggtctcacttggcctttttggccttatcacttcattattctaGAACCCTTCTCC
-AGAATTTCAGAGAGAAAATGAAAGCTGAATTGCTCTGCAAACTATAAAGTGCTACACAAA
-CAAGAAGGTGGTTAATGGCAGCATTAGATGGGTTTTCAGAAGTCTACCGTAGGCAGGATT
-TGCTGTgggttttggaattaagaagacccagctcacacatgtatttgcgacgttactttg
-gataagccagttcccctctctgaaccaacttccctcttctgtaagctggcggtagaggca
-tatccaccaggcaggactggggtgaggaccaaaggaaaggagcgtgcaaTGTCTGCCACG
-CCCTGGCCGAGCAGAGGTGTTTGATGCAGGAGGAGATTTAGGGCCCCGACACATCATTCC
-ACCTTCCAGGAGCTAAAATCCACACACCTGGGGAATGATGTAGCTGTCAGATTCAGGGCG
-ATTAGAAACAAGCATCTGAACTAAGGCAATTGTTTGgagctccagagacagactctctgg
-gcttacatcccagcacccctgtctgttgctataccacccactgggcctcagtctcctcat
-ctataatataaagatcctcctggaatctgccccttacagctgtcaggagggcctccatta
-ggccatgactgaaaggggctgagcacagAAGATGGGCTCAGCTGGTCCAGCAGCCTCCAC
-ACTATTTTGACAATGGTATCAGTAGACACAGTAGTacacacgtgcacatgcatgcacaca
-ctcacatacatccacatatatgtgcatgcacactcacCCactcatacacccattcacata
-tatgtgtaaactgaaacacatttctcaaaataatagttttcacacttgcaatgcactctg
-atatattctaaaaaggaggttggcaaaaatcgcagcctctggaccaaatttggatgtttt
-tgtgttgcctgtgagctaagaagagtggagtacatgacagattgtatgtggtttgcaagg
-cctaaagtatttactatctgacccttcgcaaaaaatgtttgctgaccccactctatttta
-gtcagtgctattccattccgttctgttccgttccattccattccgttaccattccattcc
-atttcattagaaaatgctggctattgctaaatttattgtcctcacctgctgatgcattgt
-aaacctcagcttggaaaacTTTAAACTAATGGGAGCTTCAGTTTTTTCACCAGATGGGAG
-GATGGATGAACAAACCGTATCCATGTGACACCTTAGCCAAGCAACCTCCCCTCTTTGTCT
-TGGATTCCTCGGCTGAGGCTGAGACCACCACCACCAGCCTGCTCTCAAGGGTGTGTTGAG
-GTGCAGCCTCAGAGGTCTTGTCCATGATGTTCTCATTGACGGATCTCaagagcccaatag
-taaatactttaggctttttgcaccacatacgatctgttgcctattcCAGTATTCTTAGCT
-TGAAGGCCATACAAAAATAGTCCTGTGGCGGCAGAAATGGAGGAACACCCAtctctgctg
-tccttttcaatacccagcccagggcctggcccacaggaaggacccaataagtatttcttC
-ATGGTGATGGTGACTGGAGAGTGGCACCCAAGGCCCTCCATGACGGGACTCTGGCCCAAT
-CTGCAATCAGAACTTCACTTCCTTCGGCCACGCAGTCCCTTGTCCCCTCCACCTGGCCAC
-ACTCTCTCCTCATCCTGCAGAGGTCCTCACCTTACTGCCACCTCTGCCTGACAAAATCCT
-AAATCCTACTCCCCCCGATGGGGTTCCTCTCAGACACTTACACCTTGCAGCCCTGGCAAA
-TCACTGGCATGATTCATTTCTATATCTATTgcacgggcttcggagcctccaaaactctgg
-gtccaggtcctggctcagcagctgtgagctctttggcaggccattgatgctttctgagcc
-tcagttcccgtgtctgggaaataggcataacaCAAGGCAGTGGCAGAGTGAGGACGCGCA
-GCCCCACCTGCACAGCTCCTGGCACATGGCCCGCCTCCCTCCTTCCTCAGTGGCCTCAAT
-CTCAGTGGCCTGAATCTCCTTCAGTGGCTGGGCAGGGGGGTTGGATGGTTTCCGTCCACA
-GGAGAGGGAGGTGGGGCCCCCCGTGGTGGGGCAATGGGATGGAAAAGCAGCATCTCTTTT
-GCACCCAGGCTTGGCTTCAGAACGCTGAGTGGAAGAAGGATGGCAAATGGAGCTCAATTG
-ATTGACCACCTACTATCTGCCAAGCATTCAGATTTCCATTTCTCAACCAGCCCCTATGCT
-ATGAAGAAACCGAAGCCGAGAGACCCAAGGTTACATTCTATTAAGACTCAGCGCCATTCC
-CTCAGCCCTCAATGTCCAGTCATTACCCACCCCTGCCCTGTAGGAATCCCTTTCAGAACT
-ACCCCTGCATCTAAACCTGGCTTCACCTGGATGCCAGCACTCAGGGGACATACTTTGTTC
-GTGCCCAGCGATGGCGCCTGCTTGCCCAGGGCCTGGTGCATCTGTCTGTGTACAGGAGAC
-AGtgctgtctgcctggccctccacaaggggctttgcaatttaaacggaagcatcatattc
-actccacataacaggcctctggagtgggcactgccacagtcaatttacaataaagaaaaa
-caagctcagagagaggagaaggtttgctccggatgcaccacaagcaagaggcagaggtga
-gcttaacccacgtgagaccccactcccttccggtccagggcatgtctgctctgcTGTAAA
-ATGGGAAGGGAAAGTGGTCAAATCCttatgaagcccctactgtgtgcctttggccccctt
-ccctcttggactgcagtaaatcttcccaattgctcagagaggtaggtgtaagttttccca
-tttcacagatggggaagcacggacgggagaaggcatgtggcctgcttaatgtcacatatc
-tagggcaggagagggctcaaggtttgatcccagggctcttcactTTGCCCCTTGCTTGCT
-CAGGTCTAGAAAGATCCAGAAGCTCCATGTGAATGTGGGGGTCCCTCCCCAGAAGGCCTT
-GGATGTCAGGGAAAGTCAGTCACAGGCTGGCATCTCCTCCTTGCCCAAATGGACCTCCAG
-ATCTAGGGATGCGAACCAGGGCCCCCTCACTCTGCCCTACTGTCCCATTGCCAGGACacc
-ccagcatgtttcaaaaaaatgtccccatctggttctgattcatttacacttcattaatca
-acatgctgttttgtaagagacacttgagatccaagaatctttctcaagtcttttacttca
-ttctttcttagaaacagaaaaattgggcttcattaagaCGCAGTGACGCCGGAGCCTGAG
-GAAGGATGGGCCTGTGGGAACCAGGCCTCAAGCAGGCTCAGAGAGGGCAGATGCCAGCCC
-AGCACCTCATTCCTCGGGATTGTGCAGACCTGGCCAAACGCTAAGGCCAAAGACTCAGGC
-ATGGGGGAGGCTGGAGAAAGGTGGGAAAGGGTCATccctctatgttggcagctccccaag
-gacaggcccagggctgctcacctgggtatctccaaggtccccaacacagagcctggcaca
-gaggctgccctgtgaaatgaacaagtgaatgaatgaaGCACTGCCAATACCCAGGTGTTT
-TCAGGACACATTCTCCTGCCAAAGTTAGATAAGGTCAAAGCTGGTAGGACCCTGAGGGAT
-TGTGTACAGAATTTTCCAAGCAGATGCCTTATGAGAAATGGTCTCTGATGTGTAATATGT
-TTGGGAAAGGTCACTCTCTCTCGCtctctttttttttttttttttttgagacagggtctg
-ctctgtcgcccaggctggggtgcagtggcacaatcacggctcactgcagccttgatgtct
-ttcctgggctgaagcgatcctcccacttcggcttcctaagtagctgggactacaggtgtg
-caccaccaccaacatgcctggctattttttgtatttttttatagagacaaaaaatgtatt
-ttttgtagagttttgccatgttgcccaggctggtctcgaactcctgagctcaagctatcc
-tcccatcttggcctcccaaagtgccaggattataggcttgagccatcgcacctggGTTAC
-ACTGTCTGTCTCCACCTCTTCAGCATgctctgataagtctcacagccaagaaatctgcta
-aacccagcatttcccaatctatttgaccagaactCCTGTGGCTGCCTTGCAAAATATGCT
-ACAGGAAGGGTTTATCTAGCTCTGGTCCCCACTGCAGTGCCAGTGGGAAACTGAGGCTAT
-GGGCGGGGGACAGAGAAAATCCACTCACCCAAGGTCACATGATACAACTGGGTCAGGGGT
-GTGACTGAAATCCAAGGCTATCTCCATTGTACCCCAACAAATAAATGGAGCCCTAAGCCT
-CTTCTGAAGATGCTAGGCAGGTGTGTGTCCCAGAGGCAAGAGATCAGGTACTGGAGGAGG
-GATGCTGAGAGCCCCTCACCAAATTGCGGCCATATCCCTACCTCCTCACTGAGCTCCTGG
-GGAGGTGGTGGTGAGCTGTAGATGGGGCGGGGGGCAAAAGGGGCAGGATAGGAATTTTTC
-ATTTTTCTTTAATTTTTTTGTCTTTTTTgagctgagaagcatcttaaagtcttctaaacc
-agctcctttttgttgttgttgttgttgttgagacagagtctcactctgacacccaggctg
-gagtgcagtggcatgatctcggctcactgcaacctctgcctcctgggttcaagcgactct
-cctgcctcagcctcccaagtagctggaattacaggcgcccgccaccacacccagctaatc
-attgtatttttagtaaagacagggtttcatcatgttagccaggctggtctcaaactcctg
-atctcaaatgatccgcctgccttggcctcccaaagtgctggtattacaggcgtgagccac
-cacacctggcctaaaccagctcctctttagatgaggaaactgaggctctgagaagggaag
-ACCAGCACACCTCAGAAGATATCTTCTCAGCATTATgtcaggcagattgggattcgagcc
-tgctttgctactcacctgctgtgcgaccttggacaagtcagtttccttctctgaacctca
-gttccctcatccagaaaacaagcatCTCTCCCCTCCCTCCACTAAGCCACTGTGAGTAGC
-CAAAGACACAGTGGACAGGAAATGAGAATGATTAATACTTACGAGCACCCATTAGGAGCC
-TGTGTCCTTAGCTACTCATCTTGCCCACAATCCTCCTTATGAGCAGGATACTTAAGTAAA
-AGATGGGTTGATGAAGGGAAAGGGGGTTTGTTTGATTTTTTGGTATTGTttagaatggag
-aaagatctcagagatcttctaaaggaccctcagatgggtaaagtgaggattggacaggca
-aagtgacttatccaaagtcactcagttggtaactggggaagctgggatttgaactcagtt
-gacctggctccagagcccatgcccctaactactaAACAAAGGCCATTCACAAAGGAGTGT
-CCCCATAGAGTCCCAAACTCACCCCAGCTCAGCTGAAAACCACACGCCTCTCTAGTCCCT
-TGTCCCACTGTCACAGCAAGAACTGGAGCCTCTTGGGCCACAGTCTCCCCAACCCCATCC
-AATCCCACCTCCCAATTCTCCCACAGCCTCTGTCTGCTTCCTGCTCCGTTCCAGGAGTGA
-CTGTGTCGCTGTAGGGCTTTCACACAAATGGAAGGCCCCAGAGGGCAACCCATCCTCTCT
-CATTTTCCTTCCCCTTTATCCTTGCTCAGACCCGATGCCAGGGCTGGAAAGAGAGAAGAC
-accagctggacaattcagcagttatttaaaccagtctgagccttggaatcccaggcttta
-ttaaaactggacgacccctatgtcatgagcatatagttgggatttgatgagctaggacat
-gaaaaacccgtggcatagtggctggcaTTCGGCTGCTGATCTTAAGAGTGGCACCTGGAG
-GCCAAAGGGCTGCCCAGCTCAGGCAGGCGATTTGCTCACTTGCTCACCCGCTTACCCTTC
-TCTGAGGCACAGGCTCTACCAACTCCTGCTCTGCAGGGACAGCCTCCAACCCACCTTCTG
-AGGATGTTCTGACTCTCACAGCGAGGCTGTGGCATAGGACTCCCAGGTGAGAGCGCATGC
-GGCCCCTGGTACATTTATAATCTGAACCTTGGCTCATCTTCCTAGTGGCCTGAGAGGTGA
-agatggaaaagctgaggctctctgaggggctggacttcttctaggtcatcccctattaga
-ataagtgaacctgaactcaggtctcaggtctggctgaactcaaCATAGGGGGGCCATGGA
-GGATCACTGCCCTCTGGGAGGTGACACCAGGAGTCAGGGTGAGTGATGAGGCTGGGACTG
-GGGCCTCTGGACGCCCAGCCCAAGGCTCTCTATGTCACTTCCTGGCCGAGCATGGATGCT
-TGGAATGGCTTCTACGCCACTGAGTCTGTCTCCTAGTCCCTGTGCCCCGCAGGCTGGCTC
-TTGAGTCTTCTGTCTCTGCACGAAGCCATCCTCCTTTCTGCTGACCATGCGGCTACTACA
-GAGAGCCCTGCTACCCTCTCCCTTCTGGGTGAGTCTCCTTGGCCCACCCTACTCAATGGC
-TCGCTCACTGGGTGCCCTGGAGCCTCAATCTCCCCATCTTAAGTGAGGTTGAGACTCGTC
-TGGAGGAGCGAAGGACCCAGGGCGCCAGGCACCAGGCAGATGCCCCCAGAGCCGCCGCCC
-CCGGTCCTCCGGCCCCCGGTCTGCCCCGCAGCGCCTGCCCGGCCGCCCTGCCCAGCCACC
-CCTTGTACCTTGCTTCTTCCTTCGGTTCAGGGCGAGCATGTCCACGGCGTGGGCGACGAG
-CAGGAGCAGGCAGAGTGGCGCCCGCATCTGGGCAGCCGGATCCGGGCTGGCGCTCCCCAG
-GCGGCCCGACGGCCCAAGGGCCCCACGTcccggcggcggcacggcgggcgcgggggcTGC
-TGTGGGCGCGCCGGGCGCATCCGCCAGGCGCGGGTCGGTCCGGCCGCCAGGTCTAGTGAG
-GGCGTTGGCGGAGCCGGGGCACTGCCCTGGCGGGGAGGAgccggcgcggcgggggcggcg
-cgTTAACCAGCTcggggcccgggagcgcgcgcggggagggggcgggggTCACCCGGGTCG
-GGGCCCTCGAGTTCGATCTGTCCCGCAGCCGGCGGTCTTGCGTCTTTCCCGCCCCCAGCA
-CTGCCCCCGAGCACGTGCACGTGCCCACCGCCAGCCACAGGTACGCACGCGCGCGCAGGT
-ACAGATGCGCGGACACCCGGAGACCCGTACGGTCCCCCGCGCCCTCTCAGCGCCTGTGAT
-TTTCTTTCCCTCCCCCCAGTCCCCTTTCTCTGTCTGTTCCTCCTTCTGGCCCTTAAGGAC
-AACTCCTTGTCTCCTGCTTTCTCGGTCTTTCCGCGGCCCGCGCTCCCCTGCTCTGCCCCC
-GACCCTGCCTGGCTGTTCCTGCATCCTTTACTCTTGCCGGCCGTCTCTCTCTCAGGCTCA
-CTGTCTGTGTCCTCCTGGCTGGGCCTCTGGTTCTCCCTTTTCTCTGTCTCTCCCTTCAAC
-CCCATCTCTCCCCTTCTCCCCTCCTGCAGGGTGGGGTGTTTGCGGGGCTCCTGCTGCCTG
-GCTTTCTCTTTTTCTCTCTACTCTGTCTCATTCTTTTAACAGAGGCCTGAGCCCCTTCTG
-GCCACTAACCCTGAATGTTTCCTGTGCAGTCTGCGGGGATCATCTACTCCGACTCAAAGT
-GACCAGCACCTCATAAATCCACTTGTGACAGGGCTGGGGACCTGGACTGTGTTTCCTCCA
-ACCTTATCACCAGGACTGGGAGCAGCTGGTTCAAGTTTAACCCTTTCAGAGCAAAATTCC
-TCCTTCAACCCGACAGCATGCTCACCTCTCCTGTCACTATAACCACCAAAAACAACAACA
-ATCATGCTagctatcatttgtgaggcatatatggtgggcattgctaagaacttgacatat
-actagagtcttcaaaacaacccaatggtttgggtttgtattctgagtaattccacttttc
-tggggagcaaagggaagctcagagaggccaagtgacttgcccaaggccacacagcaggtc
-agtggcCATTCTGGTCCAGTGCCTGCCCCTCTTAGCCACTTCTCAGGCACAGACTCATCA
-GAATGGAAGAGGCCTTGGAGGGAGGCCTAGAGAAACTTACAGTTGACACTCTCTTGCTGA
-ACAATTGTCCTTCCtttttcttttcttttttttttcttttttttgagatgggttttcact
-ctgtcacccaggctggagtgcaatggcgccatctcggctcactgcaacctctgcctcctg
-ggttcaagtgattctcctgcctcagcctcccaagtagctgggattacaggcacctgccac
-cacacccagctaatttttgtagtttttagtagagacggggtttcaccatgttggccaggc
-tggtcttgaactcctgacctcaagtgatccacctgcctcagcctcccaaagtgctgggac
-tacagacgtgagccaccccacccagccTGTCCTCTTTTTTCCTACATGTGGAGCTTGCTC
-CAAAAGAAATGGAAGGTAAATGCTGGTATCTCCTCCAGCTCCTTCTCCCAGTGCAATGAG
-GGACACTTGAAGGCATGGCAGGGGCAGGGGAAACACACAGAGAGTGTGGCAGCTGAAGGT
-ACAGCCCTGGCCTGGCCATTCTTTCTGTGGGGCCCCAAGAACGCTGGCAGACAACACGGa
-gaacttggtggaatgtcagagacagcccacccaaagtgctccatttcacagatgaggcca
-ctgagccttcaggactggggggtgcctagattaggccacccagtgagtcaaggactgagc
-tgacatgggcatccaggtgtccCATTGTGgtcatcaccatggcctgcaaggacctcttgt
-tctgatatctctgatctcagtctttcccactgccccacccctctctctttagccttagag
-atttcagcccttgaatatttcacaaacaccacaggcctctcacacctctgagcttttcat
-gttgtggggcctctccatggaataccatcctatatcctacctccttcttcactgcctctg
-ctccaggaagccttccctgattctcaggccaggtccagtgcctcctctgggcatccacaa
-tctctttatcacagctctgatcacatcaggtggtaacaatggatgtgtctgttctccttc
-caaactgccatctctttcaagccagagccagacacacagcggtgctcagaatgtttgcat
-aatgagtgcataaataaatgaatggtgaatgaatgaatTCTCCAGATGCACAAGTCTCCC
-AGCCTGTACATGGAATGCAGGTACTTGGAGAAATGAGGTGACCCCAGAAGATCAAGCCTT
-AGGAAAGCGGAGGTCATTCCCTTCCCCACTACCCCCAGTACTGGAGTCTCCAAAGTCCAA
-AGGGGACAGCTTCCATGTGAGCAGGGCCAGAGAGGTCCAATGTGCATTGTGAATTGacag
-ccagccacacggctctgcaggatgaagctgcttaccccttcttgaattttttcccctatt
-tattccccactgcctctgctctagctagcctcgtgtttctcagactcttgtcactcatcc
-tgcggtttttgctgttctctctgcctggaaagtctttccccagatttggggcttgtctcc
-cctcgatgttgcctcctcagagaggccccctgtgaccactccagtaaaacgcaccaccat
-gcactttatcctcttgtcttgctttaccctccgtagtacctgttcatgtctgtcagttcc
-tgtttgcttgtttgtgagttccatgaggacaggaatcttctattttgtccctatgtgcct
-tacactgcagtgattaagacatacttgtggaatggatttttttaaaaaatgagtgaatga
-atAAGCACTCATTCATccatagattcattgtgggacctcaagtactttctgttctcttag
-gctcaatttccccagttgttcaatggcacagatgggattttgtgttctgtgagagcccct
-ttagtgcttccagaattggatatttctagggttcTAAGGCCCAGAACTCAGGGCCCTTCA
-TACCCCAAGATGCTCAGAGGGTGTTTGGTTCTCTAACTATGGGGGCTGTCTGGGCATCTT
-GGCCTGTTATCCAGTTCCCCTACCCCAATACAGGTGCCCAGGGAGGCTAGTGATGCTGAT
-GGCATGCTCTGGCGGGGGGCGGGGAGGGGTGCACCCAAGGGTGTCAGTTAAGGCACCATT
-GTCACAAATAGATGAAGACAGGTATAATGGCTGAAACACACTAAGCTCACAGCATGTGTT
-CCTGATCAGCAGATCCTTCTCTGTGGGATAGCAGGAACTCAGATTCCTTTCAGCTTGTGT
-TCTGCCCTGTTCAGTACCTGGTTTAAAGCTCACCGAGaagggcagggcttatgggaagta
-cagagcctgtctacctatgtcccattggccagaactcagacacacggccacacctacctg
-caagggtgactgggaaatgtagtccagccatgtgccagacaacacacaggaggaaaagca
-agaatttggtgaacatctggccCATTGACCAACGTTGGgccaccctcatttcttgcccca
-gtcatgcagtagctccttcctgtgtctgctctgacccctacaagctcttcttaagcagcc
-agagGACATGTATTATTCATCGGGTGAAGACCAAATTTCTCCTCAGAGATGCAAGGGCTA
-CGTGATGGCCCCTACTAGGGGGCCATCTGCtagggtgaccagctgtctggtttgccaggg
-attgaggggcttcctaggatgCAACGTTGACCTGTGTGTAGCCTTGtataatacaaccac
-aatcaagatatttaaacatacttaaacaagatactaaaacatcatcacaagactccttca
-tggtatccatttatggctccaccctccctctccacttccagtcctaatccctagcaaccg
-ctaatctgttctccatctctgtaatgttttattttttgagacagggtcttgctgtgtcac
-ccaggctgaagtgcagtggcacgatcatggctcactgcagccttgacctcctgggctaaa
-gcttctcctgcctcagctgtgtagcctggactacaggtgcatgccaccatggctggctaa
-ttttttattttttgcagaggtgaggtttcgccatatttcccaggctggtcttgaactcct
-gggctcaagtgattcttccacctcggcttcccaaagtgctgggattataggtgtgaatca
-ccacgcctggcctcccatctctataactgtttttacataaatattgtataatggagtcat
-gcagtatgcatctttttgagatttggctttcttcactcagcacaatttgtttggagattc
-attttagttttgcatgtattagttatttgctttttactgctgagtagtattccaccgtat
-gaatgtaatatagtttgtttaaccattcacccactgaaggacatttgggtattttctagt
-ttttcattattaagaataaaggtgccatgctcacttgtgtataggtttctgtgtatcctc
-tttggtgaaatgtctgtgcatatctttcacacattttaaattggatttttacattactat
-tgtgttttaagagttctatgtatatattctatatagaagttctttgttggttacgtgatt
-tgcaaagcgtgagatttatgtcaaggttcattttgtatttttgtttatttttttatgttt
-ttgtttgtttatttttatgttcgtttttaatttttgtttatttcgaggttcattttttat
-ttttcgtctgcggatgtccaattgctccagtatgctttgatgtaaaagctttatcaaaaa
-ttaattgggcatattggcatggatttattttggggctgtctcctgtattccatgggctat
-gtgtctttctgtctaccaatactacactgtactgattactgtaactatataataaatctt
-gaaattgggtagatggatccttcccactttattcttctttttcaaaattattttagctat
-tctagttcctctgccttttcatatatattttagaataatcttgtttatatctaccaagaa
-tcttgctgtgagtttgattagaattgcattaaacatgtatatgaatttgggaagaattca
-catctttactatattgagtctttcaatccaaaaacatagtatgtctctccatttgtttag
-atcttctttgacttttttaaataaatgttttgtcattttcagcatacaactcctgtgcat
-gttttgttagatttatacctatttccttttttctcccttagaaattatacatggtattct
-attttaaattttgctgtccgtgtgttcattgctagcagatagaaatacaactgatgttcg
-tgtgttgatcttgtatcctagcaccttgctgaactcatatattagttctaggagtatttt
-tgtagatttttttgggttttgcaacattgacaatcatatcaactgcaaatagcgacagtt
-ttctttccttctgatcttgtgccttttgtttcctttacctgctttatcaaacttgctaga
-acttccagccatatgccgagtaagtgtgatgagcatagacatccttgttctcaatcttgc
-ctggttcccaatcttagtgggaaagcattcagtcattcactatgacattagactgtagga
-cttttgtagacactctatatcaccttgaggaagatcctctctattgctacttttctgagc
-attttttaaaattatgaatggctgttgaattttgtcaaatgtttttcctgcacattggta
-taatcatttaatgtttattctttagtctactgatacgatgtattacattgattgattttt
-aagtataaaaccaacctttcttcaatggaataagccccacttggccatggtgtaccattc
-tccattatatactgctgaattctacctactaatattttgctgaggatttttgtgtctaaa
-tccattaagaatattggtctatatttctcttttttgttctgtctttgtctggttttggta
-gcagggtaatgccagccccagtagcaccagaagaacaaggcttactagaatagaattgca
-agggttccaggccaagtgcggtggcctatgcctgtaatcccagcattttgggaggctgag
-gtgggcggatcacttgaggtcaggagttcgagaccagcctggccaacatggtgaaacccc
-atctctattaaaaatacaaaaattagccacgtgtggtggtgcatgccagtaatcccagct
-acttgggaggctgaggcaggagaatcacttgagccctggaggcagaggttgcagtgagcc
-aagatcgtgccattgcactccagtctgggtgacaagagcaagactcctctcaaaaaaaaa
-aaataaataaataattgcaagggttccaacaagtttactgtcattggacctaaagcccac
-aaaagtaaacgagaactcacatgctacatttaaacagggaaactgctgcctgctaaacta
-aagtatgaaataagacctgaagttccaactgatgctaatactaaaatgactcagatgttg
-aaattgtctgacaaggattttaaagcagtcatcataaaaatgctttggcaaggaattatg
-aaatctcttgaaacaaatgaaaacagaaaatctcagcaaagaaatggaagttatataaaa
-ggatcaaacagaaattttagaaatgaaaaataccataactgggggaaaaaactttgctaa
-tggactcattagtacagtggagaagTTCAGtgatggacaaataccccaactctctattga
-atgggcaggatggccggacacataaaacatgccacgctgtctcctgccacaattccccag
-ccctgccatgctgacttcagagggactgagcttcagttgcccacggtgctgtctgggtaa
-cctgtccttcatgggctgcctgcccttcctgtttcactccttatgctccatgctatgctt
-cttgggatcaattctcaaatcaatttcttgaactcaaatccttgtctcagggttggcttc
-tggcaaccccaaaccaagacTAATTCTTACTAATTCTCATGACAACCTATAAGGTATTAC
-AGGTAAAACATGGAACAGCACCTAACCCAGAGTAAGTTCTCACTGGTAACTTTCATGATT
-GGTGCCTCAGTTTTGTTATGTATAAGACAGAGGCATCGAACCCCTCACCCTCTTCCTCTG
-GACTTCTTCTTGTTCTCCTCTTAAATCAAAATCTCTGCAAACCCACCTTTGTTCTTTGTT
-TTACCTGTTCTTTCCCAAGGGAAGGCAAACAGCCTTCTCCCTGTAGGATGCTCAGGCAGA
-CAAAGGAGCTGCTTCAAGCCAGCGCCCCTCCCTCACCAACCCCAGTGGAATCCCAGCCTC
-CACAGTCAGTTGGGTTGTTGTTTTTTATAATACCAGTGTGAAATAAATTGAAAAATTACC
-CATAAAATACAGGTTTTCAGCAGCTGGCCTGAAATTTCTTTCCATAAACAAACAAGTTTA
-AAGAGATGCCTGATGCCACCCGCCAATCCCAAACTTTTATGTCCCCATGTGGCAGTGGGG
-TCTGCCGGGAGATTTGGCCTCCTGGGCAAAGGCAGGCTGCTGGGGGCCACAAGTCACCCC
-TAGGTCTTTGGGGCTGACTTGTACTTCTCAACCGTATCTGTCTGCTCCATGAAGAATCCC
-CCAGACTCATCCCTCATCCCCCAGCTCCTACACTCagcatagacttgggagccaaactgc
-ctggatttgaatcagagatttccacttattcagtgtgacttcaagcaagttacttaatct
-atctctgcctcagtttccccaactgataatgctgataatagtagtacctacttcatagga
-ttgtttgtggattaaattagttaaatatacatgaagttcttaggacatggcacaagacca
-tgctgtataactgttagctattattAGTCGTCCAGGAGGAAGAAAAACTAGGATGGAAGC
-TACAGCAGGAGGCCTAGTGACATTTTGATTTTCCCACAATAAGCTTTCTCTGGAGTTTCC
-TTCAGGGTGTTTACATAAATGCCTGTCCAACACTCTgcagtttgcaaagcttgctacatc
-tgctatctcatttggatcaacatttaagccatggaaggagttaggacagaggttgtgatt
-atccccattacccctagtttacagaagaggaaactgaggcccagtaggtgaattgacttg
-ctcatgatctcaagaaggggtagagccaggaCCCCATTTCTGTAGCTTGAGGATCCGGGA
-CGCATCTTGATTCTTGTCACACACTGAAAGCAGGTCAGAGCCCTCCTGATCCTGCATCGC
-ACACTGAAGCTTGAACCTCATCCTAGACCACAACATAACCCTGGTCTCAGGTGGGGCTCT
-GACCCCATGCTTGACCACAGACTGAAGCCCAGATTAAGCCTCAGTATCGGTTTGAGTCAG
-AACTCTGAATCTCGCTTCACACTAGGCCCTGACTCCAGCCTCAGACTGATTCCTGATCTT
-TGTTATAGGCTGAGTCCTAATCCAGGTCCCATATTGACTCATGATCGTGATTCCACACTG
-TGCCCTAACTCTGGCCCCAGACTGAGCCCCCAGTGGGAGCCTCTAACTTGGAACTCCATC
-TCTAACCCCATCTTGAATCTTTTGTATAAATCCAATTGCCCATCTTCCCCAGGCTTTGGT
-CCATCTACCTGAAAAACAGAGTAGGGAAGAAAGTGCTCAGCACCCTTTGGAGAAGGCCCA
-GGCACCAGAGCAGAATTTACAATCCACCACAGGAAGCAAGACCCTCATCTCATCTCCTGT
-GTTTGCAACTTCCTCCAACTCCACCCCAGCTGGGACAGCCTCAAAGACCCCAGTCCTCCT
-GACGCCAGAACTCTGAGGAGTTCTATTGTTTAGGTGGTTTTCGGTTTTGATTATTTAATA
-CAGTCATTTCTGGTTTTATATTCACAGCTTTGGTCAGCTGGGATAGGGTTTTTCTTCTTC
-CTGTGGTTGAAGTTGTAACACTATTTCAAACAAAGGAAAAATTTTAAAAACAACAGTGAA
-AATATTTTCAAAATATGTTCACAATCAAGTTAATTTCTTGGTAATTGGCTGGGGAAGAGA
-AGGGAAGGACAAAGAGAGATTTTTCATAATGAAGGGACAGCAGTTCTCTGGTGGGCTGGG
-GGACAGCAGGGTGGGGGCCAGCCTTGGGTCTCAGTCTACACAAAGGTGGTAATGGGCTGG
-GGGAGATAGGGATTGGGAGCTGGACCCAGGACAGTGGATGAGAAAAGCCAAGGTCAGGCC
-TCTAAATGTCCCACTCTGGAGGGAGTTAGGACCCGGAGCCTATTTTTCTCTGTGTGCCct
-taattctgggcctcacttttttcatctgtgaaatggattcaataacacctgcccaaggag
-gactcttgaaattaaaagacaaggtggctgcaaagcacccagcacaaggcctgacactga
-ggtgtacaagtaatagtagttGATGCCATCATTATTATTTGTATTCATGGTTTGCCAGCC
-CAGAGGCTgtagaacctggtggtacagggaagcctgagtcagacaacctggattcaagcc
-ccagttgtgccacttactacttatgtgacctccggcaagttgctgagcctctctgacctt
-tggttttctcatccataaaatggggatagtaactgagttgttgtgaggatcgaatgcatg
-actgcatgcaaagcacttagaactgtgcctagtgcatagtcagtgccaagtgtcagctac
-tactATCTGCTCAAAAATATTTCATGCATACCTACTACTTGCAGGTTGTGAATTGATTGA
-TTCTTTTTTCATTACTAAGCACTAACTGTGTGCCAGAGAGCAGTGAGAACCGAAGACACA
-GTAGCTTCTATCAAGGCCCTCATCGCCTGGTGGGAGACTGAGAAGGAAAGAAGGCAATGA
-TGACAAGGTCAAGTAAGTTCTAAAATCCAGGCACAGGGGAGGAGCTGTGGGAGCCTAGGG
-GCAAGGCCAGAGAAGGGTTCACAGGAGTTAAACattcattcattcaacaagtatctactg
-agcactggcccaaggctgaggattcagccaccaccaccacaggtccacatctggccttcc
-tggagcttgcagcctagccggggagacaggaacaatgaagacacacacacttagataaca
-tgatggtggtgatggtgagtgccgcgatgaaaaccaaagccaggggaggggatagagaat
-gacagacatggtcaggggaggcttctctgcaaggtgagcagagatttggataaagtgggg
-gaacgagtcctgtggaggtctggggagggcattccaggtggaggggcagtaaatgcagag
-gcccagaggcctctccatgggctaacgagggaggcagagggagggagggagtggagggag
-caagggtatgtgtaggagggaagcagggcagGAGTGGGAGCACAGTGACTCGCCTGCATG
-TATTCCCAAGGAGATGGGAAGGAGAGGCGAGCAGAGGGGTAAAGGAGAGGAAGCAGGAGC
-TGCCACTTTTGAGAAGCACTGAGAAGAGAAGCAGAGGTGGGTGGGGAGGGGGATGCAGGG
-CCAGGACTGGTGGGCAGGGGCCCTGCAAGCCCTGCTTACTGGAACGGGAGAAGGCTGGGG
-GAGGTGTTCCAACCTTCACAAGCCACAGGCAACCACCGAGTGACATTAGACAGGGAAGGG
-ATGAGATCAGACCCTGGCATTAGAAAGGCTGGAGTTCTGGGTCCTTCATGCTCTCTCCCT
-TAATTCTTACAAGAAcccatttcacaggtggggaaaatagaggtcccagagaggttcagt
-gacttgctccaggtcactctgaaaggacacagatctggctgcctccagctccccctgctc
-cttgagttccctgctgtcttccctggcctctgcctctGGGCCCAAGAACTCCCAGCCCTC
-AGCATCCATGGCCTCCCCCTGGCCCACGAAGTCCTCAGCCACCTCCTTCCTGGAGGGCTC
-AGCCAAAATCAGACTGAGGAAGAAGTGGTGGGCACCCACCTTCTGGCCTTCCTCAGCCCC
-TTATTCCTAGGACCAGTCCCCATCTAGGGGTCCTCACTGCCTCCCTGCAGCCCCTTGAAA
-CTTCTGATCATTCAGCTCCTGGGATGTCCTGGGCAAAGTTATCCAGGCCCAGGTCCCTGG
-CTCGTGGCTCTCCTCTCATTCCCTCAGTGGGTGCCCTGCCCACACCAGGATTGCATTCAC
-CATCCAGGTGCTTGCTGACTCGGgggcaggctgagtgctgatgagttaatgccccccagg
-agcacccctgagtggatgaggatgggagttggtggaaaaacatttcagtcccctcgcccc
-ttgggtgggacagttctgttgccagagttcccagtgggagggatgcccagttgccaacTT
-GATCCTTATCACACCTGTGCTTGCTTCTTTGGGACTGGCTTCCAGGGAATCTATTTGGAC
-GGGAATTCTTGTTTCCAGGTCTGCCAAGATAACTGCCAAGCCTAGTCCATTCTACCTGCA
-AAATAGCTCTCCAACCCTTGCCTCTGTGACTGCCAGGTCTGCCGCAGCCTCCTGCATCTC
-TGTTTGTACTCGTGTAAAGGCCCCCCAAGCTGTCCTCTTGTTTTGCCCTTGCAGTCTACC
-CCTCCTCCCTCCCAAGGAGCCAAAGGGGTTGGGTTTTAAGGAAAACCTGACCATGGCTGC
-CTGCTGTTCTCAGGCTAAACAGCACCCCTGCAAGGCCCACAGGCAGCCCACCTAACCGTT
-TCTCTACATctctgccccaagccacactggtcaccttcccatttttcaaacacatctact
-tatcaccttctcagggcctttgcacttgctgtctcctctggatggaacactcccagtctc
-ccatggttagctcattccaggcttcagttcaaatgtcacctcctcaaagaggccttccct
-gaccatgcgatggaaactcccatccttcaccactacgcttggcttagccctcttagcttt
-gcttcctctcctttgaactgtttcccatgatctgaactagccttgtttgtttgttGTGAT
-GACGATTGAGCCCCCCAAAGCAGAGAACTTGTCTGCACACACTGGGCATCTGGCTGGCTG
-CGGGTGTTGAGCTGTGAGATCGGCTATGTTCTTGCCCTGCTGCAGTTGACCGTCTGGTTG
-GACAGGGGCTGGAGGGATGAACCAGTTGTGGAAAATGCCACAAAGGAAGAGGAGTAACCG
-GCTGCAGGGAGAGTGGGAGGGCACACTCACTTGGGTGGGTGGATTCTGTGTAAGAACAGG
-GACCTAccaaggtgggcagatcacttgaggtcaggagttcaagaccaccctggccaacat
-ggtgaaaccccgtctccactaaaactacaaaaacattagctaggcgtggtggggcacgcc
-tgtgatcccagctacacgggagactgaggcaggagaatcgcttgaacctagaaggcagag
-gttgcagtgagccgcgatcatgccgctgccctccagcctgggtgacaagagtgaaactct
-atctcaaataaataaataaataaataaataaataaataaataaataaaataaaGTGCGGC
-TGCATTTGCCTCCCAGGGCAGCCCAGGTGTAAGCTATACAGCTTGGTGGAATGTCTCCAT
-GGCTTCTAGGGGATGGCCCAAGAGAGTTCCAAACACATCATATTCCAGTGAATGGGactg
-gtcagcccacagccacatggccatgtccagctgcaagggaggctgggaaatgtaatattc
-tgcaggccacccatgtgctcagataaaaataaagagaatattattcaagagaaagggaga
-cagagtgtgggggatgactgatgatccttgccataAGCATCAGCAGGAAACCACCAGCCC
-CCACTTCCCTGTTTCTGCATGTCTGTTATTTGGTCCTTCCTGTGTGTGATGGAGGGAAAG
-ATGGCTGTGTGTGATGGAAAAAAAGATGGTCCTGAATGAGCCTGATTCCACTTCTGGGTT
-CCCACACCCTCTGGTAATTCCCTCCTTTCCCCCGTTTCTGCCCTGTATCTCCTACAGTGT
-CTCCAGCCCTCCTTCACTCCATTTCTCCCTCTCATCATAGACTGTCTTGGAAGTTCTGCC
-TACAAATGTGGCAGCTGCTGTCCCACTCTTCTCTCCATCCCCTCTGGAAGCCTGGCCTCT
-CCCCAACTTCCTGCTCTGTTCTGTAGCTCACTCAGCGAGGACCAGTCCCTCTCTGTCATG
-AGATCCACTTTTTCTCTCCAACCTCCCTGTGGGCCTCTGTCCTGTCAACATCCCTCCTGA
-CACTCTCTGTGACATTTGACCACCTGCTGGAATCAAAGAATGTGGGCTCTGCAATCAGGC
-AGGACAGAAATGaagatgcttcccctttctcagcctcaatgatctcatctgtaaaatggt
-gtgaagaatgtccacTAACTAATTGAAACAAATTTTTATTTGCAGCCATGACATACCATG
-CATTTAAGTAAGCCCATATGAGCACATCTGAAGGCAGTGATAATACAATCAATAATACTA
-CTGGGAGTGCCTAGCTCTTACTGAGTGCTAAGCTCTTCAGCACGTCAGCTCAGAAATGTG
-GCCCCTCCCATGGCCCCGCCTGCACTCTTTTCTCCTTTTTTGCTTAACTTCCCTTTTGTT
-GCTTCTTTCTTGAGTCCATTTTTGGCTCTGTTCTCTCCTCATCTCTGCAGCTTTCCCAAA
-TTCTTTTTTAAAtttttatttatttatgtatgtatttattttgagactgagtttcactct
-tgttgcccagactggagtgcaatagcatgatctcggctcactgaaacctccacctcttgg
-gttcaagtgattcttctgcctcagcctcccaagtagctgggattacaggcgcacaccacc
-ctgctcagctaattactgtatttttagtagagacagggtttcatcatgttggccaggctg
-gtctctaactcctaacctcaggtgatccactcgcctcagcttcccaaagtgctgggatta
-caggcatgagataccacatccagccAGCTCTcccaaatccttttcccagctctgacatgt
-tgccacacttcatctacctggctggacacctccacttgaagtcctgtggacatctcaaac
-ccagggtgtctaaaatagaactcagcctcttcccctgcaggcttCCAACTCTGGAAAGGG
-CCCAACCACCTACCCGCTGGGTCTGTGAGCCAGGccttcctctcaggcccctcctctctt
-cccctggccccagcctccttccccacttccccacccttccccaccccAATGCACATACAG
-TTGCTCAATTGCTAGTCCTCACATACTGCATTGTGTCACCCCACCTGGTCATTGTCCTGC
-CCATGTCCTCTCAGCACTCACCTTTCCATGTCCAAGGAGTCTTCTGCAAACATCTGCAAC
-TGTCTGaagccaaggtgctggagaactaagagagagtccccaagcagccctcagccaatg
-accgatgggaggtggtggataaataccagccccctgccctgagttgggagacctgaggtg
-tgctcttcactgtctcaagaggacctcaatggggctgagctcccgttgcccatattagca
-attcacttattatgcatcagtggcttcagtggtttactgcagtgtcttcattgtctcTGG
-GCCACATAATTTTATGGAAGTCACAGCCCTTCTCTCTAAAGTCCATCTATGAAGCCACTT
-TACCTCTGTTTGAGAAGCACTGGTCTCCAGGATGACATCTATACCCCTTACCTGGCATTC
-AAGGTCAACCTGCTGACTCCACCATGTGTCTACCCTTCCATGctttgctcatgctcttcc
-ctcctgcctgaaatattcatcactttgcttaatgcttgtctgagttgcacctatccttca
-agactcagctcaagttcacttcctccgggaagcctttcAGACCACATTAATCCTTCGAGT
-GTTCCCCACAGCCCCAAGAATCTGCTCCCCACATGTGGCACAAATAGTGCCTTGGGTCTT
-ACCTGGtttgttccttcagcaaaccaaggttaagttagcattttctctgtgcaaggccct
-gagagctgggagagctggagacatgaggtgagtcaacacagaccctgctctgaggtctgg
-gcagtccagtcgaaagacGTCCAGGACATGGGGTTGGGCATTCCAGGCAAGACCATCAAC
-TCTACGAGGAAAGGGATGATTTTAATTCACTATGAGAAATGAGTGAATCATTTATTTTCT
-TAGCTTAAAACAGGGGGTGGACAAGAGACTGACtctggcccaccatctgtttttataaat
-aaagttttattgaaacacaactatatttcttcatgtatcacctatggcctttacactaca
-atgtacgagtaattgtgaaagagaccacgtggaccacaaacactaaaatatttactgttt
-ggacccttatagaagttccctggccctggcttgaaacactaatacttgtttattatttca
-cacagtttctgaaggccagaaatttgggagtggtttagctgggtggttctggctgagggt
-gtctcaggaggttgcagtccgcagggctgtctgagtctcatcataacacagcagctggtt
-tccccAGTGAAGACTTccatgctaggcacctcacacacagcctcatttaatcctcataaa
-catccttaaaggacagctatgattattacctacatttctcagctgaggaaaccagagctc
-agagagaggaagttatttccctaaggcaaggacagacctaggactggagctcaggttcct
-ctgcctccaaagccccgctcctaaccactgggctgtccttctgAGCACCACGGGGTCCCA
-GCAAATGATCTGTGGCTGGGGATCCAGGATCATTGTGATTTGACTCAGATGTCCCTTTGC
-CAGGGATATGGTCCTACTCTCCCTCCAGTTACCTGCTCCACAGGTGGGGTCCACCTTCTT
-TCAGACCCTCTATCAAGTGAGTCAATGGTACTGTCCAATTCCTTCCCAATATCTTTGCCA
-TCCACCCCCACTCTTTTCCAGCCCCACTGCTTCGGTCTTACCTCTGGCCGTCTGGGCTCC
-CATCTAGAGACAAAGTCAGGGGAGGTGATGCTTTCTGCTGATATTCCTTGATTTTTTCCA
-CCTGATTCACTTTCAGCTCTCCTCTGCCCATCCTCTCAGAAGATGGATATGCAAAAAATG
-ACCCCAGAGCCATAGGAAGGCCCCAAATGCATCCCAAAGTACTGCAGATGATACCTCCTG
-ATCAAGCCCTGCTGCTAATCAATCAATAGAATTAATATAATTATACAATTTCATTTATTC
-AGCCTTCTACCTTCACaaatgcctggaccttggtttcaggtaaactggctcgagttcctg
-cttggtctttgccaacatgtgtccatgggcaggtcttagtctttcctttggcctcagcct
-cctcatctcaggattgctagagggggttaaaGGACATTGCATTGTAATTTGCTTGTTTTC
-ACACTTGGTACATAATACTTGCTAGAACCATGATGCAAAGAGCAGTCAGTCCGCATGCTT
-ATAAGGGAAGCAAAGATGTTCAGCATTATAGAATGCATGGCTAACATGGCCCCAAGATGG
-TCCAATGGAAAGCTCTTCTTCTAATCAAATAGTGAACAATCCAGGAATAACCAAAGAAAA
-AGTtcatcttattatttgttttcacagcagctccatgaggcagaattaattttgtgtgtt
-ttgcagatacgggaacagtaggtgagagcatgagtaactcagctcaggtcacacagcagg
-tgggagagaactggaacaagaacccagtgctctttctgctctacccactgacccATCCTC
-TCACGCATCATACACCCATACTCccatccacccaccttcccattcatgcattcacccatt
-cacccaccttccatccatctaccatccaCCACGTACCTACACTCCCATCTACCATCCAAC
-CACATTtccattcacccatcctcccatccatcaaccctccaatccaccacccacagacct
-tcccatccattcatttacccatccacatattcacccaccctcccatccatccatcTACTG
-TCTATCACCTACTCATTTTCCCATCTGCTATTCACCCCCACCCTCCTatccatccattca
-accatccacccaccctcccatccaatcatccactgtcccaaccatccaccatctacccat
-ctatccaccactcaccctttctttcattcactcatcctcccatcctcccatccaccatcc
-accctccacccaccctcccatccaatcatccactgtcccaaccatccaccatctacccac
-ctatccaccactcaccctttctttcattcactcatcctcccatcctcccatccaccatcc
-acccTCCACCcatttatttgacagttgctgagagcctactaaccaccaatcactattcca
-ggcactgagatatgactttgagctagacaaagtcttgcttcatggagctcacattttggc
-tgtgaatggcagcaacagacaaataaatacgtagtttacgtgaggtactgcaaagaaaaa
-ataaagcaggggagtgatgtcaggagtaactaaggcaggatggtagtcagggaggtcgtc
-tctgaaacgggacatttgagcagaagcctgaaggaagtgagctccctgacaacttgggag
-aagagaatttcaggcagagagaacagttgtacaaaggcccagtggtaggaatagaaacag
-cttgatgggattaagaatcaacaaaaaggtcattatggatgaagcagaatgagggaggaa
-acccaagccagctcgggcttgatcatggcaggctttgtcagtcactgtgagtaaccagac
-tttatttcaagtgagttggCCAACAGTGTCTCCCCAGTAGTAGAGTGATTGCTCGTCTGC
-CAGAAAAGGGGCACAGAGCTCTGGACATCAATACTTGCCGATCTCTCCTTCATCAGCCAC
-CCAACCCTGGCAACAGTTTTCAATTACACCTGTGAAAACTTGTGGGTTAAACAGCTGAGA
-TCCATGCCTCAGCTTCTATAGGTGATAAGCCTGTCCTTCCTTAGGTAAAGAAAGGAAGGG
-GCGAACCGTCAGtgagcaccattcacataccttagccggttcagcttcaccaccctctga
-aggtgccatcagcagctcccttttgctgaagagtaagcggaggcccagagaggtcatgtg
-gtgtgtgcttgaggtcacatggctgagaggtggcaccagatttgcccaactctcaagtcc
-catagtctaacgtttcactccacTCAGATTCAACCTCCcaagaaattatttgtttgagta
-cctactaggcaccagactcagagtgagaggcagttgcagattcactcagggccagttttg
-gaggccagcttcacaatcacccagcacagcccatctttctacttgtgaggaaacagaggc
-tcagtgaaggaatgcctttcagatcacagagaggatgaagccaggatattcaaacccagc
-ttattttACTACAACTCTATATGGTAGGAAAGAGAAAAGCGCCCATACAATTTCAGTGGC
-TTGACGTGGAGCCTGGCAACAGATGTGTTCTTGGACTGTTGGCTATAAGACAAACCAGCT
-TTCCCCACTGACTGTCACCGTGTTTTGGGAGACAAAGCCTAGGACTTTGGTGTGTCCACC
-GTGGGTCAATAAATGCCCCCAAACAAGCATATCTTGCAAAAGTGGGGACTTATTAATTCA
-TTGATTCGTTTCTTGATTGATCAATTGATTTATATGTCCCTGTTGGACAAAGGGTTTGAG
-GCAGCCTGGGAAGGAAGTGAAGTGTGGAAACTGGTCATCTTCTGTGCTTCTTACATTCCA
-CTCATTGGGAACATCAAAAAATGAAAAAAAAATCCAGCTGCTACATAGCTGGGGAACAAA
-TTCTTGGTATGGAAGTAATTCTGCTAAGGCTAGCCTCCTCAGAGTAATTCCAAATGCTTT
-TCCTATTTTCAAATTTAATTAGGAGACATTTCTGTAGTGTGAGTCATCATTTAATAATGG
-GGGGTGTTTATTAGGGAATGagtggaaagagaacaggacagctggataattcaaatccca
-gttcttcaagtctctggctgtgtgatcttgggtgagccacttcacctctctgaacatcag
-ttttcttgtctttaaattgatatttacctggcaaggtttggggaaggtctcaactagatt
-atgtacataacaagcttgccagtgttagtacataataggtgtttaataaatattaactGC
-CTTCTCTTCCCATTTATTTTCTTATTTGGTCTTCTAAACAACCTTGGGGACCATGATAGG
-TATGTTGTTTGCTTTCTCTAGCATGAAAACAGCCTCCCAGAAACTACTCAGCCAATCCTC
-TGAAATGGTATTTCCGGTCAAATCTGATGCACCTTCTGAGACTTTTTTTTTTTTGTCTTT
-TCCAGTAAAGCCAAGCACATAGTCATTGTTAGTTTTAAAAAATGTATTTGGATGGGGTAT
-GAAGTTCAGAAGAGAAAGACATTCCTGGTTGGGTTATTCAAGCAAGGATCCCTGAAGAAG
-AGATGCTAGCATTTGGCTAGGTGATAGGAAGGGGACAGGAAACAGCAAAAGGCAGGATGT
-GGAGGCAGAATGAGTTGAAAGATGCTGTTATTGAAGGCGATGGTGGTAGTTTATCCCTGA
-AAGCCACCAAGAGCTCAAGAGCAGGAGGGAAGAAGATGAGTTTCTGTTGAAGAAAGACCA
-AAGTCACTCACTGGCTGATTTGTGCTTGGGAGGAGCATCTCTTTCCCCTGCTGATTGGGA
-GTCTTTTGTTTCCCTGGGACAATAGGCACTGGTCACTGAAGAGTGTGTCTGTCCTCCACA
-CTTTCCCATGTTCCTGTCTCTGGGGAACTCCTCCCTGACTCCGAGAGACAGGATGGAGTT
-GTCAATCAAGATGTCTGTCACTTTGCCTACCAGGGGAGAGCTTTCCAAGTGGGGCCCTGT
-TTTTCTGCTGGGGCTATAGGGGAGGGTCTCCATCTTCATGtgtcaggatgtagccttggg
-gctgctggtgtcatatttatgccacatggaatgaagctgtctgaagcaggaaaggatgat
-attaccaagcaaaaagagatgcaaagctgagtgtggacggaggcctgcttctgatcctgt
-ccatgtacttggatcaaaccatgcctgaactccatttggtttgcaccttatggggcaata
-agggaataagtaattctctttgtttattcaacaggatttctgtcacttggcaattctgat
-taatacaGACTTCTGATTAATACAGTTGGCAAATGAGAGACAAGTGATCTCTTcagaaat
-ggacagagcaggaaaggaacccaccaagcatggagaggttgaatgagagtctcttcttcc
-ccattgactcactgcagccctggatcaggttgctgcccttctctgggactcagttttatc
-atctgtgaaatgggCTGCAGTGAGTGGGAAACAAAAtcatttatttatgcccaaccttgt
-tgcaaaaatgatttaagacagcttacaaatgtattaaagccagagattaggaaaagaaag
-agataatgaaattgtgagaagggggagaaaaggtgaactcaaggatgaggttaggttatt
-gaatgcctgctgtaaagttctggacagttgctaaaggtgaacagacaagtttgttctgag
-attctttgtagccaaagcaagaaaaagaaaatgcagttacgtggatttgtaggaaaaaaa
-aaaaaaacaacccggttcctgagaagaagcccaacttttcttagaataaaagtctgaaac
-aattttccttgtggttccccatcaaaaggactttgtgaaataccatgagcaaATATAAAA
-ACCAGAcaggttgagtatcccttatctggaatgcttggaaccagaagtgtttcagataac
-agattcttttggattatggaatatttgcatatacagtcctacctcgggtataggacccaa
-gtctaaacacagaattcattcatgtttcgtgtataccttatacaagttacctgaaggtaa
-ttttatttttctgtgtgttgtgcacctgcattttgactgcaacctgtcacgtgaggtcag
-gtatagagttctctacttgtggcatcatgttggtactcaaaaattttggattttggagca
-ttttcaatttcagattttcaaattacaggtgctcaacATTTAacaggctggggtaaatag
-ttgcaacatatttaatagtcggaggattaaaatccacaataaaataagagctcccacaaa
-tcaataaggacaaaggaaaaaaacactccatcaataaaatgggcaaaaagggataagaac
-acaattcacaataggggaaatAGctatcaaattagaaaaaaatatcagaagaatgggtaa
-tatcagtgttggtcacagtgtggggaaataggcatgctcagacacCttaacttactttta
-gcgtttctcgtcacctgacacaccatatatatacgtctctacgtgttggggatctctctc
-tctgaccagattgcaagttccatgagagtaaggactacctcctcatcactgctgaattcc
-cagaacctagaacagtgtgcccagaacagagtagatccttgataaatatttatcaagtat
-gtgagtCAATAAATAAATGAGTGAATGAATGGACAGTGTGTAAACTGGGGTCATATAttt
-ggcaggcaatttggcaacatttattagaatgaaaatgcacaaacactgatgcagacattc
-ctcctttagccatacgctcgactgagacatacaaatattcaaaggaatgggtcaaagagt
-gtttttgtagtgctgtttaaatggcaaaagttggaaatgacctaaatgccaaacaatact
-acactaataaagttatggtttattctgactgtgaaatattgtgtgttcttctttaaaaaa
-atagtgttttcatactgatgtggtcagatctccaagatacattatcaaaagaaaatagca
-agtcacagaacaataatatgtaacatttacggtaaaaaCAAAACAAACTTTccaggcgca
-gtggctcacgcctgtaatcctaacactttgggaggctgaggcgggtggatcacgaggtca
-ggagattgagactatcctggctaacacggtgaaacctgtctctactaaaaacacagaata
-tcagccaagtgtggtggcacgcacctgtaatcccagctactcgggaggctgaggcaggaa
-aatcacttgaactcgggaggcggaggttgcagtgagtcgagatcacgccactgcacccca
-gcctgggcgacagagagagactccatctcaaacaaacaaacaaaaacaaacaaacaaaaa
-acaccacaaacaaacaaacTCAGTCTGTCTGGTTAGCTAGCTActatctatccatctatc
-tatccatccatccaCTCGCTTACATTGGTCAACCTATCAGTATAAACAAATAGAAACATA
-TCTAGAAGGAAATACCAAGCTGTTAACAGTTCTTCAGAACAAGGGAATAAAATGTGGAGG
-TTTACACAAAGGGCTATTTTTACTTTAAAAATAtatttcagtataatatgcacttaatgt
-gcatagataggttggcaaatgataaagctttacaaactgtatttatccctgtcagcatca
-ctcagatgaagaaagagatatgaccagcaccccagcagccctactgttatcctctcaagg
-aaaactatcactgcccttctattacttttatcaccctagactagttttgctaatttttgg
-actttatataaatagaatcaaaaagtggatacaattttgtatctttcatctttggtgcaa
-tattctgtttatgtgaATATTGCCAAATGGCCTGACACTCCAACCAGTGTGGCAGAAGGC
-CTGTTCCCCCCATGCAGCCACCcaatacattttaactaacctgtagtctgtattttgttc
-agtcccagtaatgtcctttacagctttttttctagtttgggattacatgttgcatgtagt
-tgtcatgtctctttagtatcctttaatctggaacagtttctcagcctttctttgtctttc
-atgatgttggcctttaagaaaaatataggttagttgttttatggaatgtcacatccctca
-ctttgggtttgtgtgatgtctcctcatgattagactgaggttatgcattttgggcaggaa
-tatcttgtaaatgatgctgtgttcttctcagtctatcacattaagaggtacacaatgtca
-atttgtccctttattagtgttaactgatcatttggttaaggtgacatccagtttctccac
-tgtaaagttgtttactttttcttttgtaattaaaaagtaattttaggaagctactttaat
-atctttatctattaaatatccttttccttgtcaaaGCCATGGTATGTTTAAAATGTGaat
-ttctttctaagttcaggggtacatgtgcagatttgttacacaggtaaacatgtgccatgg
-gggtttgttgtacagattatttcattgcccaggtattaagcctagtacccattagttatt
-tttcctgatcctctccctcatcccacgctccaccctccagtaggccccagtgtgtgtcat
-tctcctctgtgtgtccatgtgttctcataatttacctcccacttatgagtgagaacttgt
-ggtatttggttttctgttcctgcattagtttgctaaggataacggcctccagctccatcc
-atgtccctgcaaaggacaggatctccccttttttatggctgcatagtattccatggtgta
-tatgtaccacattttatttatctagtctatcattgatgggcatttaggttgattccatgt
-ctttgatattagtgctgcaatgaacatacagttgcatgtgtcttcatcatagaacaattt
-atatttcttctttttttttgtttgagacagagtcttgctctgttgcccaggctggagtgc
-aatggcacaatctcagctcactgcaacctctgcctcttgggttcaagtgattctcctgca
-ccaccctcccaagtagctgggattacaggtgcccaccagcacttccggctaatttttgta
-tttttagcagaaacggggtttcaccatgttggccaggctagtctcaaattcctaacctca
-agtgatctgcctgccttggcctcccaaagtgttaggattacaggcgtgagccaccgcacc
-tggcctttacattcctttgggtatatacctagtaatgggattgctgggtcgaatgatctt
-tctgtctttaggtctttgaggaatcgccacactgtcttccataatggttgaactaattta
-tactcccaccaacagtgtactgagcattcctttttcttcacaaccctgctagcatctgtt
-attatttgattttttaatagtaaccatcctgactggtgtgagatggtatctcattgtggt
-tttgatttgcatttctctaatgagcaatgatgttgagctttttttcatataattgttggc
-tgcatgtatgtcttcttttgaaaaatgtctgttcatcttctttgctcacttttttaatgg
-ggtagttttcttgtaaatttaagatcctcatagatgctgggtattagactgtggtcagat
-gcataatttgcaaaatttttctcccattctgtaggttgtcactttgttgatagtttcttt
-tgctatgcagaagctctttagtttaattatgtcccatttgtcaatttttgctttcattgc
-aactgcttttggtgtcttcatcatgaaatacttgcccgtgcctatgtcctgaatggtatt
-gcctaagttgttttccaggatttttatagtttgtgttttataAAATGTGAATTTCTTAAT
-TGAGAGTAATGGGAAGCATTTATTCCTGTGCTCCTGAGTCACCGGTTTTCCTTTTTGATG
-AATTTTGATAATCATTTTTTCTCACTAAAATTTAAAGGTTTAATTTTTAAAAACTGAATG
-GTTTAAGCTTAGCCCTATAGTTCTTGAACCATGATTTTAATAATAATGATTTTTTAATCT
-TCATTGCTCTAGCACCTTTAAGAAGGATTCGTTTGAAAATTCACCTGTGTCTCAACCCAG
-GAATAGGCTTGGCCTTCCTTCTCTGATGGCAGCCAGGGAGCTTCCTCCCATATACCGTGC
-CCACGGGAAGGAACAGAAATGCTTCCTGTCACTCCCAGGGGTCTCCAGCTGTCATAAGCT
-GCCAGCTGGAGGTGGTCCAAGCCAAGATTACAGCCGGCCTTTATCCTATAGTTATCACCC
-ACAAATCACCCCCTATCCCCAACCCAGGGGAGTCTCTCTGTCCATTCCATACCCCGGATA
-CTGAACTCAGCTCCAGAACCAGGGACCTCCTGCCCATTCACGATGGCCTTGAGCTCCCAG
-TGCTGTCCCCACCACTCAAGATTGTCCCATACCACCTTTCCCACCCAGCCCAAACCTCAC
-AAGCCAGGTGCATGTGGTGGCCTCTAGGGAAATGAGGTTTCAAGGTATTTTAGCCACAGA
-TCTCTTTGCTCAAATAAAGCCCTACACAGAACCCCAGCCCATTCAACATTTCAAGGTGGA
-GCTGAAATCCTTTGTGGGTTCTATTTTTCTCTCTTTGCAAAGCATTTCCAGCTTGTGGGC
-TGATTGTCATATAATCTAGACAAGTGTTAATTAAAGAAATCACTCAGAGCCTGTATATAC
-AAAAGGTAAAAATTTTAAAATCTTTACAGCTAAAAATATATTTAATGTGGTACATTTAAA
-AATATTTGATACAAGGTGGGGATCCCAAACAAAGAGTGCCAGGGGCCTATGGTGAGCCAA
-CCTCCCACACCTCCCAAATAAATCAGTCATCTGGCTTTGTCTATCTCTACGCTCTTCCTA
-TGAGTGTTATCACACTCAAATTGCATATTGATGGGATTAACCCTTTAAGGTCTCTTTCAC
-TCCACCATTGGCTTAGTGAGGCAATCTAGTCCATCATTGTCTCCCCAGCTCTGAGAAGCG
-AGCACTATCATAAAAGAAAAGAACTATTATACAAGAAAAGATTGCTACAGTGAACTAGAT
-TAATGTTAACAGGCTCCTTGAGGTAAGATGCTAAAAAGCATCAGAATGAATGAGTGAGTC
-GATAAATGAGTGAATCCACACTGTTGCTTATGAGGTCTGTGGGTGATGACGCCCCATGTG
-CATGGCAGTTTCAGAAGGGCTTTCAGGGTTTAGATTCTGGGGAAAGGAATCCACTTCACA
-GACCCTGCTGGTGCCGAGCCACTTCTAAGAGACCAAGGAGCCTGGAGCCACCCCATTCCT
-CCCAGGGGGTGGGGTTAGTTGATGCTGTCTGGTGAGTGACCAATCGCATCAGCACCTCTG
-CTGACCCCATGGGACTCCGCTACCTTCTCTCCTGGACTCCTAAAACTGCCATTTCTCTGA
-GAGGGGGAGGAGGGCTTCTTGCTTCCAAAAGGACTAAGCAGGGTTCTGGCAATGGGGACA
-GGATAGTCGTTCCCTGTGGCAGGCTGATGTACAATGGGATGGTCCTGGGGCCACATCTGG
-GCACAGACCCCCATTATCTTTAATGGTGCTCTTGCCAGGGGGACACTGCAGAGAGGAGTC
-TACCACGAGGAGACCTGCTCTCCCCTCCCAAGCACTGGAGCAACCTTGGCCCTGCCCAga
-aaaaggcagctgtagggaaatggagctgagtttaaatgcccactgggcacttagtagcca
-tgtgaccttgtgtaggtgactcctcctcttcctctctgggcctgagtttcctcctccata
-aaatgaggcagtcatctttgcagctctgcacccacaaagtgccattgtgagggtcaaata
-agtggatgtaaaagggcttgcagagaaccctgcagatggaaggtgGACCTTTATAAGGGA
-GAAATAAAATCTTATTAAGGAGAAAATAAATTCCCAAGAATGAGCTGCCCAGCATCTTTA
-AAAGAAGACTGCAGAGTGGACAGTGCTCAtacctgaaatgttttttttattcctctacca
-gtcagcctcctacacatcccagaggaggcagtgccttccccagaaagccctgccaggctg
-cactctgtcctcccatcctgctgcctccagcacaatgctcatatctgactgtctgtctac
-ctgacatctcccccactggtctggtgctcctttgggaaggaactgtatctgatgcaacca
-ggaatttcagctcttagggcagagtctggcgcatctgaggcacacatcaatattCTGAGC
-CAGACTGACTGGCTAGAGTAGAGCTAATGGTAGAATGTCGGGGGCTGGTGCCTAAGGTTG
-GGGTAACTAAAGACGCAGGCAAGCCTCACACTCCCTTCCTAGAACCTTATCTGATTACTT
-TCTCCATCTAGGTTTGAGACGAGGTCTAGCCGATCCTGCCTACAGGCTGAGTGAAAGCTC
-TTTAAGGTAGgggtgaccagcttttcctggtctgctcaggactttcctggtttgagttct
-aaaacgtcccatttcccaggtaaaccagggcagttggtcatgctaCCTTAGTTACTAATT
-GATTCTCATAGTAGACATTGTAATTACTCACTGATTGTATATTACGCTTCTCCTTCCTCC
-CCCTTTCCCAGGCTGGCAGAGcccatctcttaggacagaggctgaaaacggaagatagtt
-tcccagcctctcttgtggtgaggggttgccatgtgaccgagttttggccaatgagacaaa
-agggaaagtctgctgggaacttctgggaaggggttttttctctctatctaccttcacccc
-ctctttcttcctgctttcggtcgtgagaatgtgatgattagagctgtgacagccatcttg
-tgaccacaaggaaacatccttaccacactctgaggggtaaaacgaaggacagtaaaagct
-cgacactttgatgacattgttgatcctctgaaCGACCCTAGGACttgaacaacattaaaa
-tgttacatgttgtttatcaaaagacatcattagaataacaaaaaggcagcctctgtgctg
-ggagatgatatttgaaatctctccttgaaaaggactcgtatacagaatactcaatgatag
-ataactcagttgttaaaaattggggcaaaacttgaaaagaaactctagaaaagagaaaat
-taaaatggccaataagcaaagcacacaaaaaggtctgaacatcattattcatcagggaaa
-tgcaaattaaaactacagtggggcccgggcctgttggctcatgcctgtaataccagcact
-ttgggaggccgaagcaggcatatcacctgaggttgggagtttgagaccagcccgaccaac
-ttggagaaaccctgtctctactaaaaatacaaaattagctgggcgtggtggcacatgcct
-gtaatcccagctacttgggaggctgaggcaggggaatcacttgaactcgggaggcagagg
-ttgcagtgagctgagatctcaccattgcactccagcctgggtaacaagagcaaaactcca
-tctaaaaaaaaaaaatacaatgggatacaatctcacacttaccagagtggctaaaattaa
-aaacactgaaaatacaaagtgtcggtgaggatgtggagaaactggaactctcatactcta
-gtaatactaataataggagtgtaaatttggacagttgctttggaaaactgctaagcaata
-gctactaaaactaaacacagacttacctgatgaccaggtatttacccaagaaaaataaaa
-acatgtccacaagaagatgtgtatgtagatgatcatagcagctttattcagaacagcaaa
-acacaagaaacaccgccaacgcctgtcaacaaaagaacagaaaagtaagttgtgatatat
-ccatacaatggatgtatatgttattttatgaatatataaaatggatatattggaaatact
-acatggataaaatagttactttttaaactacatagcagtgaaaaagaataaactactgac
-acgtagcaatatggatgaatcttaaaattatattgtgcaaaagaagctagacacaaaaga
-gtacatacagcatgattcatttctatgaagtttaagaatgggcaaaaccattctatgctg
-ttagaagttggttagtggttaccctttgcaatggcaggtggagcagtggggagcagtagc
-tgggaaggaggtatggggatgccaaatgggatgtcaagaatgttctacatcttgatctag
-atcatatacttgcaaaaaattccttcagccattacagctcaagattcgtgtgctttattt
-atgcaatacagcaatctaaaaCATTAAAAAATGAATAATCTCTATGGTTTAAGGCACATT
-TAATCGAGTATTCTGTTACTTGTAGCGAAAAGCACTCTAACACTCCTCAACACAATTTGG
-CGACAGAGGATGTTTGTTGGGTGAGTGATGGTAATACCCGTGGAATAGCATTCTTACAGG
-GAACAGGGCACATTCACGCcattaacacctgtcactctcacttcagtcccaccagggagg
-gtttgttagtttcctctaacagatgaggaaactgaggtccagagaatcgcactgacctgc
-tcagagtcacacaacgagctttttttttttttttttttgagatggagtctcactgtgttg
-cccaggctggagtgcagtggcatgatcttggctcactgcagcctccgcctcccaggttca
-agcaattctctgcctcagcctcccaagtagctgggattacaggtgcccgccaccatgccc
-agctattttttttttcttagtagagagaggttttgccatgttggccaggctggtcttgaa
-ctcctgacctcaagcaatccacctgcctcggtctcccaaagtgctgggattataggcatg
-agccactgtgcccagcctacacagtgagcttttgaccaatctagaatttgggcccaagat
-tgtttaatcccaaacccagtgctctttccgctacacttctctcaccctGGGCACATCCAC
-CAACAACATTTGTTGAACTCCTATTCTGTATACTTCAGGGAAACTTTATCTGGTCTCTAC
-TTCCACTGAGCTTGTGGTCTAGGAGAAGAACAAGAGTTTTATCTAACAATAATAATTGTA
-TTTTTAAGTGCTTACGTTTATTAAATACTTACTATCTCCTAGACCAGCCTTTTTCagtgg
-agtccatgtattgcagagtatactccactgggttgcaagaaaaacaattagtaattctat
-ctgtatatttgatctcatcttttaaaaattttcattttgtgtatatcatataagatgata
-atatattgattgataatatattatgtttttactttgtaaatgtacatattaaatatattg
-ggggcaatgttcaCTGACAAGAATGGGACACCTAAATCTTTAAAGACCCATTGGTCGCCT
-GATCACATGATCCCATCTGGCCCTCATGACACTCCTGAGGACCAGAttttttttgttgtt
-tttagagacagagtttgctatgtcactcaggctgggatgcagtggtacagtgatggctca
-ctgcagccttgaactcctgggctcaaatgttcttcctgcctcagcctcccaaagctctgg
-gattacgggcatgagccaccatgcGTGACTGAGAACCCGATGTGTTGCCCCATGTTACAT
-ATGAAgatacatctttaaggtaatgaatatcccaatcacccagatttaattcttaagcgt
-tgtatacaggtatcaaaatatcacatataccccccaaatatggccaactattgcatgatt
-aaaaaataaaagaaaaaaGAAAAAGAAACCATCTTTAGCAATACCCTTTTAAAAAGTgct
-ttttgtttgtttagctttctttgaacatttgacccaagtcttccctcactcagaaaacca
-ctctgtaaaacatccctcaacatgatttcctcacagacaaacctgtctgataatttaatg
-ctgctgccatttttttttctggagctctgaactttgatgcctatctggactagttttgct
-ctagacttggggcacagataccattaggaattcctttGTCTCTCCTGTGTTGAAACCACA
-GACTGCTATATCTCAGTTCATCATAGAAAATTTACAAAATAAAAGCCACAGAGATTCATT
-Cccctgcctgtgtctaagctcttgtccaagcccctctcacattgactctgggcttggtca
-cgtgacttgctttggccaatggcataatggcaaacatgacacaagcagcagctggaaaat
-tacttgtgcatatgagcctttgccctttcagctctggggaaccctgtgaccacaaccagg
-ctggcagcaaacccaggctggtttgctgaagtataagagaccgatggctaaatcatctct
-gttaccccagctgtgccaagccaaccagcatatatatgtgagtgaggccattgacgacca
-gctgacggcagacacaggagagaagccagccaagaccacatggagcccagcccacgccac
-tactgggctataggttcataagggaataaatggtggccgttttcaggcaatttgttacac
-aggaaaagctCATGGttcctcttcttggtttagttcctctttttggtggagcacagcccc
-tggtagcATGGAAGttttaaaacatgtgcaccaatcctttgacacttgtcccatcagcag
-atagggttcatgacaccttcccttgcttgggcctgtaccttagtaatgcagcaaaagtga
-catggcataacttctgaagataagttagaaaaggccctacagtttccacctggttctcct
-gggacactcactccggggtaagccagccattgaggaagaggtatgagatcaccgtgctgg
-aaaagctacatgtcaacacaccactcaacaatccagtcgagacagccttccagccatctg
-ggccaaaggagccagactggtgagtgatgtcatcttgggccctccagaccagctcatcca
-ccagctgaagaccactaagtgagctccatcaacaccacgtggaacagaatcatcacccag
-ttgcaccctccctcagtttttaacccacaaaattaatccactaattttggtgatggtttg
-tcatgcaacaatagataaccagaTTCTATGCCATGATGGGAAGTTCTGCAGTTTCATTGG
-GAAGTGGCAGGCATTCTGGGACAGAAAAAACTTGGGGTCATTTGTGCAATCTACTGCAca
-gatttttaatctctggtttcttactctctgttccttccagagagcttcttgttcacattt
-tactgctgcaatatctttatcactcaagggatattaattgtaggatttattttaagtttt
-ctcttgttccctggattcttttcttgaagaccttttaccccgccctcatggtttgctttg
-atctctgcacttcatgatagaaatttctaatgatccttggctgtctactcacattaccac
-tctggctggaaactgggtggggagggtggactggtaggcttttgtgtagggtccatgcag
-ggtggttgcatagggctggtgcaaaggggctggttggctttttctgtgatgcactctcct
-cccacccccaattaccgtatctttaggtctttgtcctggaagtggttctccagataattt
-tctgcctggggttggacattctagaatgagacgggtgaagggggctgaagatctcACCTT
-CTctgggcctgatgtttctagttttggagtttctttgttgcctttttttcagagaataaa
-cctccctttgcttgcccagaagtgagtggggttactacctggctgggcaggatgggggtt
-ggggacgtggaggtcccatgctccttgtacagattgctttcaatccccacttcaccagca
-gctcctccaagacctagtagcttcaatttttgaggcctttaggCAAATTGGCTTGTTTCT
-CTATGCAGCAATCCACCCACACAGCAGTCACCTACCCCATCCATTTAGCTTTGACTTTCT
-TCCTCTCGGTTATGTCACTGGCCACTTCATCCATTTCCCTCCTTTGTAGTTCAGGGTTAC
-AAATGTCTCTCGATTTCCTCAAAGACAGAGTTTTTGTTTCTGCTCCTTATTCTTGTTTTG
-GGGAAGTTTTTTGTTTGTTTTTTTCTTTTTTAAGAAGAGAAAAGGAATAGAAATGTCTTT
-AGTCTACTATCTTAAAGCCACCATTTCATTAGAGTTTTAAATGGAAAAAGCACCCTCTTA
-TATTGGACAGAAGTGTGTCAGCAATGTGGGTTTTGTGACTCTTACTGGAGTAAGAGCCTA
-CATTATACGCCAAGGTGGCTTCATGTTCTAGTTTTACAAATGCATTTGATACAGTTAATA
-AAATAGCAAATTATGTATTAAGGAGAATACAGATAAGTCATTGCTGGCTTGGCAGAGAGT
-GGAGAGCAGCCTTGACCAAAAAGCTTAGAGGAGGAAAAGTGGGGTGGAGGCATGAGGTTG
-ACCTGTCCCTGCTAAGTGCCACTGTTTTCAgctcacccctttccacctgcaggtccctgc
-tcagatgccacctccttggaggatccccacccacctgtcactttctctctactaacttgt
-tttatgtctgactgcctgccaatggatttgattgacttatttatctttaggtttgtcgac
-cccactagatcatgggctccatgaccagggggagctttgctttttcacctccatacactc
-ggtgcctgtgagcacctggtacatcagtagatgctcaataaagagttgttgagtgaacaa
-atGAATGAGCCAGTGATTGCGTGGATCCATGTTTTCTATGAGAAGGCAGAGCTCTGAGGA
-CAGACAGAGGCCCAGTGTGCATGAGAAAGTCCTGCTGGCCCAGGCAGTGGCCTAAGAGCT
-GCCTACCATGGCGGTCACTGTTCTTGGGGAACCACAGATGTTTCCCCTCTAATCCCTCCA
-TGGGGACCAGGGGGGCATGAGAATGGGAGAGAACACAAAGTCCCTTTATTCAGGGGAGTG
-GATTCCATCTCAAGACAAATTGTTACCTCCAAGGCCACCAGCCGCCCAGCCGGCCCATCA
-CCATGGCCTCCCTCTTAAGGATGTGGGCACAGGCCCGGCCAGAGCTGAAATTGCCCTGGA
-AACTAGTCTCCCCTTTAATTAACAGGGAGGGCGACCAGGCCTGCTAACGGGGTGGGGTAT
-GGAGTCGGGGTGGGGTCAAGTTCATAAAGTCCCCAAAGAATCAAGGCCTCCTTGTTTATT
-TTCCCGAAAATGTTCCCCATTACCCAGAACAGCATAGGGGCCAAGCAGGCCGCAGGCAGG
-GAAAAAGCTTTAACCTCCCCGCTGCTCAGCTCAGCACATCACTATTTGACTTGCATTTTA
-AAAATAATTACAAACTTAATGAAAAAATAACCTAACCCCCAAACAGGCCAGGGACTCATG
-GCCAGCATTGGCAGGAGCAAGCCCCTGGCAGCTGTGAGGATGAGATGCAAAGGGTATAGA
-GGAACCACTGGAAGACAGGGGACACCCTTTAGATGGACACTCCCTCTCTCTAGCGCCAGC
-TTTGGCTCCCTATTGCCCTTTGTGTCATGCCCAAATGTCTCAGCCCATGTCTTAGAGCCA
-GTTTTACTCAGGCCCTATGTGGAAGACACTGGAACCCAAAGAGGAAAGGAAGTTGCTCAG
-GTTGTGCATTGTGTGGGACCTGATGCAGGTAGTGAGGCTGGTTGGGATGGGTTCTCGGGG
-AAAGAGTGGAGGAAAGTGAGAATGTGTCTCTGTTACCATCTGAGCCCTGGCTGGGTATGG
-CCAACATGCCAGGTAAGCAGCCTTGGGAAGCAGGCACGATGATTATCCATCTTTAATATC
-CCAGGACTTGAGTCCAGGTCTGTCGGGCTTTTAGCCACCACACTAAGTGCTGTAAAAGGA
-GCTGGAGGTAGAAATGAAGTAACAACAATAATaataataagcagctttcatggattgtag
-actatgtgccgtgcactgtgccaagctctttaccatctcttttaatctttgcaataactt
-tatctggtaggtagtgttattgacccattttacaaacgacgcccagagcattggttcaag
-gttgtgcagctgggaaatggcCTGTACTCTTCTACCCTGAGAATAATGCTCTACAGTGAG
-TCAGGGAGTCTtgtgaggtctcaagaacagggaccttgtctgtcttattcacttgtgtgt
-cctcagagcccagaagagagactggcatataatagatatttaatatctgtgttgtgaata
-agaatgaaCAAATGCACCTGGACCTAGAAGTAACTTCCGATGAACCATCCCAGTTCTCCC
-TTCCCCATTCCGGATTATCTTTACTTACCTGGAAGTGAACAAGATATTAAGGGGCTCCAA
-AAGAACTGAGAAATAGAACTTGGTTTGAAAGACAGTAGGGAGCCACAGCAGGTCCTTCAG
-GAATGGAGTTCCAAGCTAGGGGAGTGATGGTCTTCCTGTGTCTTTATGGATTCCAGGAGC
-TAGTCAAGGTCAATGAGCCTTTAGCCAGAAGGTCAAGTTATCCCCAGTGGTAAGTGTTGG
-GGGAAGAGGAGGGCACTTCTCAGGAGTTGAGGGTCCCAAACTTGTCATGCTCATTGGTTT
-TGTGGCTGAGAGTGGCAGGTTCAGGCTGGCCAGCCAGCCTCTTCAGCTTGCCCATGGTAA
-ATCCCATGATCCTGGGTCAAGGACGCCCAAACATGGTATGTCCATAGCCAGCTGACAGAA
-TTCGTATGTCATTGAATCTTTCAACAATGGATTCTTTGAAACTTACAACTCTGGGGCCTT
-TGAGGTCCATCTCAGATTCTGAGGCTGTAGAAACTGTTCATTTTAGAATAATGATAGGTA
-CAAaacatttactgagtacttactactccagacattgtttacaaatatcaacgcctttaa
-tcctcacaaccaccccagaaggtagtaacaatgtgaccccccacttcacagatgtgaaga
-cggaggcactgaaaggtgtaacttgcccagggtcacTGGCCGCCTGGCTCTAAAGCACAC
-AGCACTGCCTCACAGACACTTAAAGTCGTTGAGACTTACACTCTTCAAATTTTAGAATCG
-TAGAAAGTCACAAGGTCAGGATCTTCAAGCCACAGAGTCTTAAAATCATAGCACTTTAGA
-ACCTGCCATCATTGACTCATCAAATTCTGCCGTCATAAAATCTGGGCATGTTATAATCCT
-GGAATTCCAGATTCTTGGGGACTTTTAAGTCAGAGAAGTTTAGatcctgggatattaggc
-ttggattacagaccctagcccagtcctctcatatagcacagggaaactgaggcccacaga
-agtgaCAGAAGTCCAAGAGAGGCAGAGCCTGGTGGATTCAGTGTCATGTTTGGAGGGAGA
-AATCGGAGTGAACAAAGAAAGCCCCTGGGCAGGCAGGAATCTGTTTGTGATTAGCAGTGG
-GTTTTAGTGTTGCCGAGGAATGTACCCAACGTTACCGTTACCCCCGCAGGTTGCTGCCTC
-CTTTCTTCCCCCTCAGATGCCCTCCTCAGAGCCCATCCTGGCCAGACTCAATATCCTGTT
-TCTACCACCAGCAAATTGAATTTTCAGAAGTTGGCCTCCTAACGAAGCCAGCTTAATACG
-TTGGAGGTTTTCTTTGCCTGCATTGCTATTTCTTGGTAGGATGCCTGCTCTTCAGGAGCC
-CAGAGAGGTTTTGCACACTCAAATCACAACGCCAGGAGGGATGAGGGACAGGAACTATGG
-GACAGGTGGCTGGGGGCTTAGATAGACCCAGAGGTGGGaatagaaatggcgtgtctcaag
-ggggaggtgacaggtccacagggacctccgtactgctcaggccacacctgggaatttggg
-ggccttcagtctttcagaaacattaaccaaatggggtttgtttagaggagggatggggag
-agatgggtgggaatcccatgCTCTGGGAGACCTTGAGCGTGGACTAGATGGAAAGAAGCA
-TGAATTCTAAAGTTCAGCCTCTCAGCTACTGCCCCCTTGAAGACAGACATGGGTGGAGCC
-CTGGGGTATAGACCTAAGATTGAATGGTGGAAACTCCATGAAGATTTTGGTTTTATCAAA
-ATCAGTGGTTCTCAggctgggcatggtggctcacacctgtaatcctgaggcgggcaggtc
-acttgagatcaggagttcaagaccagcctggccaacatggtgaaaccccatctctactaa
-aaatacaaaaattagctgggtgtggcatcagacacctgtagtcccagctgctcaggaggc
-tgaggtaggagaattgcatgaacatgggaagcagaggttccagtgagccgagattgcacc
-actgcactccagcctgggcaatagagcaagagcctgtctaaaaaaaaaaaaaaaaaaaaa
-Gcaatggttctcaaagtacagtacagtccagaatctgtggggttcctgagaccattccag
-ggcatccacatggtcaaaactatattcacaacaacactaagacattatttgttcttctaa
-ccctcagtggggttgtccaaagttgatatgacatgtgatgccaccatcactctgatagca
-atgaaaaaaattaatgcaaaaacattcatgatgaacaaaatactaaaactgtaaataaag
-agaagactaatactactgatttttcctttcatctcaggcttcagtgtgaatttttcaaaa
-tattgcattaaaatgtcctaattactgatatttttggcacacaaattttaaacctgaggc
-aagtgcctcgtttaactcactctagtcctggcTGtggatataatccacatcaacagaagc
-ttgttggggtcctcaataatttttaaggatataaagtgtgctgagatgaaaacatttgag
-ggtcactgataaaagggataatgttccatcagctcaaactatccaacaatggaggggatt
-atattccaaggtactgagttcccatcacaaggtgtgtacaaatgggggGATTAAAGGATT
-GGGTGTGGGGAAGAGGCCTAATGTGCAGCATCTCTTGCCCAGGTGCCTCCTGTGGTCCCA
-CCTACCTGGCATCCAATagatcttctcattttcccacttgaaagcttgcaatggtacccc
-actgtgctctgagcaaaaacccacctcttctccatggcctaccaggctctatgtgtcctg
-gccctgtctcccactcttttgcccctagcttgctctgctatccccaacctagcctctttc
-tatttcttcagcatgccaaactctttcttacctagggattttgcacacgctgttccctct
-gcctggaacatcttcctcttcactcttctcatggctgttccttgtatcttctgagtttca
-acttgactgttgcctccaggaaggcttccctgatcaccctatagtaagtaggatttctct
-gacatcatctctcaacctcttttttgcttccttcatggaagtcatcactgcttttttata
-tttacttgttggcatggatggttctcatctattctctccatgagaccatgagctcctcca
-gggcaggaagcctgactgttcagacatggggcctcagcacctgacccagcacctggcatg
-gaggaggcccttgagaagtgtttgttaagcaaataaaCAAATCCTTTatgaattagtgaa
-tgaatgagtaaatgaatgaaAGATTAAACAGAAAAGGCCTCTGACTGCTGATGCTCAGGC
-ACTCACCAGGAAACCCAAAGTAACACAGGTTGTTACTTTGATGAAACATCAGTAACCATG
-GCTGGATAGTGTGTGATGAAGTATTAAGCAGTAAGTGTTTGCCCACTACCCATCAGCGCT
-GATCAAGTTGGAGGAGAGGGAGACTGGCCTGGCTGCAGAAATCTTGGATGAGTTGGGGCT
-TGAACACAAGCCTTCAGGGCTTTGCCAAGGCAGGTTCCCCTGCCTAGTTTCTCTGAAGAT
-TCACATTGTATTCACTGTGAGGGCTCGGCTCAAATAACCCTGCCTCCTATGGCTCTTCCC
-TGACTCTTCTTGGGTAGGGTCGGAACACACCATCCTTGTTCTGGGTGTTATTGTATTAGG
-ATAACCACCCTTGTCTATCACTGATTTGAAGACATTAGCTTATAGAAATGTCCCGACAGT
-ATAGATGTTATCCCAGTTTAGAGATGAGAAAAGTAAAGGTCCCAGAAGAACTTACATTCC
-AGTGGAGGAGACTCATCACGGGCAAAAAACCAAACCCACGTGTTGTGAGTGATAAGAGTT
-AAGGTGAAGAATGTTGCCGCGGAAGAGGAGTGGGGAGACCTCTCTGAGGGATCAAAGAGA
-TGTGGGTACAAATTCCATCTAATAGTGTCAGCTAAAGTTCAGTTAACTGTTACCACTAAC
-AATGAGTTAGCtgttgcttccaggatgtctgtttcacgaggacagggactatgttcactt
-ttctgtccccagcacctagaacagtgaacaacacatagtaggtgttccatgtatggtgtg
-aggtgaataaaGGCCTGCctgcatcaggcgttgtatatgaattattttatttaatctcca
-tggtcagagaggtaagggttatcatccccattttgtagataaggaaatgagggcacagtg
-aagttaaagtctaatgacttacccaagaacacccagatagtaaatggtggagcccgagtt
-ggattcgaatccagtccaatctgtctcgtatcttagccactctcctacacAGccttattc
-tgctcactcactgtgtgaccagggcatattgcctaacctctcatccactgaggatgtcat
-tttctttagcttttgaaataatacccatgtcatagggttactgtgaaagtttggttcagg
-tagagctcttagattcctgtctggcacacagtgaCACCTCTTTTCAGGTGACCCATTCTC
-GTTTGATATTGTCAGCCATTGTGAAATAAGAGGGTATAGAGCAAAGCTTTCCAAATGGAA
-AAACCTGCTATGATTTCTAGAAAGTCTTGGGAAACTTTCTAGATCAGTTATGGAGGTTGC
-AGAGCAGAAGGCCTCAAGGACGAGATGCAAAAACAGCACCCATGCAAGTTGACTTGTAAA
-CTGCTTTCTTCATCCTTTAGGAGGAATTGCCCAagaggcagcatttatggggcatgccca
-gggtctccaggcactgtgctgagggctctgtatcccgtctgtcaatttttcccaactcta
-ttatacagatggcaccactgaggctcagagaggtgaagggacttgcccaaggcctcatag
-tgcatcagaaacagtcaggactcagctcaagaaaaggccccaaagcaagcactcccaacc
-acatgatctaAGACCAGGGAACAAGGGGACAATGAGAGTGAGGGCAGGAAAAACGCTGGA
-AGATGTACCAGAGACTTAGCACTTGACTGATGGCATCTTTCCAGGCCAGTGCCCACCCCT
-CCTCTCCTGGCCTTCTCTTCCACCTCCCACCCTCCTGGGTTCCTGCACCATTTTCTCACT
-GGAGCTCCTGCCATGCCTGTTATCTTCTgttggttcttgggaaaagactctgagatggag
-attggcgtgcagtgggtttattggggagagtgctcaggagtaagaccaatgcaggagtga
-ggaaaacaggcctgggaggagtgaacagctggcacaatggagttacaacagaaatctcag
-tgatcccacaggagctctggagcagagatggcccttcggagctgaaggatcgggtcaggc
-attttttatcatacaccaaccactctttggccacaggctgcacctggaacgaacgtgtcc
-ttgggcagggcaagtccctacagctgagggccattcccggctgggaaatatcagcagctg
-gcagtcccatcagctgggAAGGGTGTCTGATGAGGGAATCCATGCTAGCCCCCAGCCTCC
-TTTCCACCTGTCCACTGTTATCTGACAATAGCGATCATGCCACACTAGCTCACACCGGCA
-GAGCACTGTCTACCTCTCAGGCTCCCTACCACGTCGTGTGGTGTGtggattccctcattc
-catcctcatgacaaccatgagagggggacactttccacatgaggaaacggaggctcagtg
-agatgaagagcttgcccagagtcccaaggtgcaagaatgctgtagctggtattctcaccc
-aagcagtGGGACCTATGGGTCCTATCTTGGTCCCTTATAGAAACTCCTTCCTTTAATCCA
-ACTCGGCACTGAGTCCCCTGGagtcaaagctcctgccctccaaaagttcatcatccagtg
-ggggaagtcaagacatatacactggaaagataagggctggtaagtgctgtgatgagaggt
-gacctgagggtgggtgacagggatgtcctgcccaggaaggcaggtgagacaaagtcagtg
-agttcagcctcagtggatgaggagagtgctgtgggaaggatcggggcagggtgggcttct
-aggcagtgggagcacaggtgcaaagacagagagggtgaaagagAGGGGCCCTCCAGAAAT
-AGGGAGTGGTCTCCTGAGATGACATAGGGGTTTGGGGGAAGGAAAACAAGGTCATCAAGG
-TGGAGGGGCTCCAGCCTCAGGGCCCTGCATGATACAGTCCCTGCCCTTCCGTGAATATTT
-GCTGAACGAATGAATGGTTGGATGGGTGAATGAATCGCTGCTGTGGAGGGTGGATTGGAG
-GTTACAGAGACGGGCAGGGAGACCAGTGGGGGGTCCACAGCAAATGTCCAGGTAAGAGGA
-AATGGGCCCAACTTTGCAGGGACCACAGGGGTGAAGCGATGAGAGAGAGAAAGAGAGAGA
-GGAGCGGAACGCCGCTGGGTGTGGTGACCTAGAGCTTCTGTGGCCCATCTCTCAGTCTCA
-CCCTGTTCCACCTCCATGCCCTGCACCATGCTGCATCCCCTGCCTGGCAGCTTTTTCCTC
-TCCCTCTGCATCTGCAAGTTGCACTGGCTGCCCAAGCTCTGCTTCCTCTAGGAAGTCTTA
-TTGACCAATGCAGCTCTCCCTTACCGTGCAAGGTCACTTCCCATCTCCCTCACAGTTTAA
-CCCTAGCAAACTCCATTTGCAGAGGCCGGTGTTCAAAATGCAATTCTCCAATTTTTGAAT
-GCCAGGCCAACAGGGAAGCATTTAATGCCCTTCAGCAGGGGTATGATGGGATAAGTGTGA
-ATCCATGTATCCCGTACAGGTAGGACCTCTCTGCCCCCATAGTGCCTGCTCGTTAGCCCT
-CTAAGGGAGGCATCTGGTAAATCTGGGCTTGGAGTTTGGAGGATCGGAAACAGGAACGAC
-CTCTCTGGGGACAGTTCTTAAGTTCTAATGGAGCAACTCTTCACAGAGGGACTTGCAAAG
-CTCTTAATTAAAGTTACCATCAGAACAAAGACTCTCTGAAGCAAGAATTTGGACCCCAAT
-GGAGTCCTGAATCCAGGCAACCAAGCTTGCATAAGTGTGCAACACAAAGGCAAATGAGTC
-CCCAAGGAAGAAGAGGCTCCATCCTCAGCTTGCTGCCCTTGTCTGAGGGAAGCACCATGC
-CCTACAGCTGACATTTACTGAGTTTGCATCCGTTgactcttttggttgcagaaaactggc
-tcagacaaaaaggggatttgctggactgaaaaggccaggctggagctatggtgcagcagg
-atctaagggcttaagtgatgtctttagggtggggtttctctccatttttttctgctcagc
-atccttcagaatccacttcattcccagAGTCTATGAAGGTGGGGTGCACAGAGAGAGTCT
-GTTGGACCAGTGTGGTCACACACACACCCTGAACCAAGGAGCACAACACCTGAGTGGCTG
-AGGCTGCAGGGCACGTCCCAGATTACACTGACCAAAGAGTAGGAAAATGTTCCCCATCAG
-AAATTGGTAGAACAGGGAATGGATTCTGGGGAAGTAAGCAATGAACATTATCCGTAAGGG
-CCTActatatggtaagcagctattaatcgctttgccaatttatagttgaggaaacagcct
-cagagaggtgaagtcactctgacagccaggaagtagggaaaagcaagcttggaacgcagc
-tctgtctggtaccagagcTGAGGGTCTGGGGAGCTCCACCATCCTGCTTTCCAGGCAACA
-TCTTTACCCATCTCTGTTTTGGTCCAAGGCACAAAGCTGGTGTCAGATGGCTCTTGGATA
-AGCCTGTGTGGGAAGGACAGATAGATGGGGGTGTGTatggatgaatggattggtgaatgg
-atgaacagcggggtggatggatgggtaggtagaagggtggatggattgctggctgtgtgg
-tttactggctaggtgggtgggtaaattggtatatggttaggtggaagggtggatgtatgg
-ataggtgggtggatgCTTGGGTGAATAAATGAAATGGCAACTGAAAGGACAGGTGGAAGG
-ATGTGTGGGTAACTAGATGGGAGGGTGAATAGAATAATGCTGACATAAGCATTAACAATT
-ATGTCTAGCCTCTTGCCCCTCTCTTCCCAACTGCCTTTTCCAGTGGAAAAATTGAAAATC
-ATGGACCCGGGGAACACATTCCCCTGTGGTCTGTTAATAGAGGCCCAGCAAGGCCAGCCG
-AGGCTGTCAACTCACCCCCCACTAGGACCCTGTCATTAGCCACACTCCCCCAACCCTGCC
-CTTGGGTGGAAGTATGATCTGGTGGGCACTGAGGGGCTGGGCCCATCCAGGCCCCTTATT
-AAGCCTTATTAAGCCCACAGACGGGGAGCAAAAAGGGGAGAAGAACTTTCTCCCAAAGGT
-CAGCTGTTGGAAAAAGAAGGTACAGATGTCTCTGGGGTGGTCGTCTACTCtcaggccaca
-aggaatgtgaaagtttgcctggcccaatctgctctgctgtcttcttgcaggctgggaaac
-tgaggcccatacaggagacaggagggacacacagaagtcgggacagagccagactcaaac
-ctcaggccggctcacagaccatAGCCCAGCCTTTCCCTGAAACAGCCTCAGCATCAACAA
-TGGGGAGGGAAAGGAATGGGCATGAATGGGGCTCCTGCTATATGCCAGGCCCTTGAGCAA
-AGCATTTTCTGTTCATGGAGCCACTGGTCTCCTCTGTATCCCCATGAGTAAAATGGAAGT
-TATGCCTGTCCTGTCACGGattgaacaagcatttgttaaacatctgttatactgtgggcc
-aagcactggtctaggtgccaggaatatggcattaactagccaaacaaggtttctgctttc
-agagagcttactttctagacagtgatagagacagacaaataagtaggtagataaaatgtg
-atatgaagaaaattgaggagtggtatgagatgtacaaggatggaagggacgttctttgga
-tgagatggttgggaagggcctctctgagaaggtgaTCATGGTCAAGGTCATtaattgtcc
-accaagtccattctcccctttgctagtatgtgggcaaagcccacaagtggctgtccaggc
-agggtcaacatttcccagccctatttgcatgcaggtgtggccatgtgactagctcttacc
-aatagaatgggagcagaagtgatgagtgccacatccaggcctagcttttgagaagtgagg
-gagcttcccccatgttcttgttacttttcccctggctgaattcaaatgatggcaagaccc
-caagatagaggagccacaagattagaagagcctggattcctgcatcaccacatggaggag
-agccactcattgccctggcacatccattgcatgagtgagaaataaacttCAGGTGAGACC
-CAAAAGACATGTGATGAACTGGTTaggacattgcaggcagaggaaatagcatgtgcaaaa
-ggctcaaggcagaaccaagcttggcatgttggcacagaaaggataccaatgtggccagaa
-taaatggcacaagaggaggaaatgaggtgaaccatgcaggcagtggcctcagtcaggagt
-ctgtatttcaagtggccccagtggaggtggcgccatcagcagggaagaaataccatgtgg
-ttcatacttggaaaagatccctctggccactgtgcagagatgagttggaaggaggcagga
-atggacacaccagagaggagctggtgcagtcatcctagcctggatgaggctggggacata
-agagtgagtgaacagagtgggtttggatatattttcaagggcttgctgatgggttgtttg
-tggaaggtgaaggaaaCCAAATAACCCACAAGCCATTAAACAAAATCTAATGCAGAAGCC
-AATATATATTAGTAAACACTTTAGGGGTCTCTGTCTAGCTTCTAATCTTCCTTCCCTGAG
-AACCTCCCACTTATGCCTATCTGATAACTCTACTTATCTGATAAACTGGCCCCTCCCCTG
-CCCTAGCTCATGGAGCTGGAGATCGGTCCCTGACTGGGGCTCAGCCAATCAGATCATCCC
-TGGCTGTCAGACCCCAGTGTGTGGCTGGATGGGGAATAGGCTGGGCCCTAGCACTCTCTC
-CTTGATAGAGATGATGGGGTAGGGGGAAGGTCAGCAGCCCAGAAGCTGAGGAAGAATGAA
-CTCTCCAAGGACCACCTACCCATCCCATAGCAGGCGAAACATAGCTGCAAGTGGACTCAA
-CCACCCTCAACCACAATTGGAGCTGCCACCAGCCAAGTGTGGAAAGGGTTGGTCTTTGCA
-GAGCCCTGGACTGGAAGAGGAGAGTGGGTCTCCCAGGGCAGAAAATGGGAGTGGCCAGCT
-CCAATTCTGTGCCTCAGGTTGGGAGACATGATCCTCTGGGTTCTTTCCATACCCTAGACA
-AGGATATTCCTTGTCTGAGCCTAGACAAGTTATTCCCCTGGGAAGGAGGGAGGTGCTTCT
-GTTTCTCCATCTGTCAGGTGGCTGAGtataacagatttcatttccaaaaatggccacagc
-cccctgctcctcatgaaccctgccactctccatcaagagggagagtttatttctcctccc
-ctggagactggcaggactttgtgactgccttgatgaatagaacgcagcagaggtgactgt
-gtaacttccaagggtgggtaagaaaagacaatacagcttctctctggctctttgtcttga
-gacactcaccctgggaaccagacgaccacggtgtaaggaagcccaggccccctggaaaag
-ccagaggtaaatgttctggccgacatttacccagctggggtcccagccaacagtcagcat
-caaccaccagacccatgagggaatcagtccagcccctggccatcaagtcttccatctgag
-gccccagacaccgtggagcacagacaaatctacccactgtgcccttctggattcctgccc
-cacacaatatgtgaatgcaatgaatgactgtttgatgccagtgtgttcaggggtgatggg
-taacgcagcactagatacccagaacGCTGACTCAGGCAGACTCTGCCTCCATGACACCCT
-CCGTGCTAAGCATCTGTTCCATTTCCCCACTGTCCTGAAATTTCCAGACACTCCTCTTTG
-ACAAGCCAGGCTTGGCTATGAGCTGGGGCCTCTCAGGGATCTTCCAAAGATCAGCCGTGG
-AACAAGCCCTGCGGGGAGTTCACTCCCTGGTCAAGAACCTTTGCTAACTCCCCATTTCCC
-CCCATATCAAATCTCAGCTCTTCTACTAGGCTTCCCAGGCCTGTCCTAATCTCCTCCATC
-CTCATGTCTCCCTGAAATGGGCCACAATTCCTCCCTCTGCAGTGTATTAAGAGTGAGAAT
-GTGGGGTTAGATGAGGTGAGGGGAATCGCAGGCTCTGGGAGAGCTTTGAGAGCTAGGCCT
-GAAGCTTTAGAAGGCAGTCttccctcatttagcaaatattgagtcctagtgtgcactacg
-ttctatttacagtgctgggaatacacagctgcacctgctagacataatccctgtcctaaa
-cccatgaggatcatattctcttccacctcagggcctttgcacctgccattctcctaacct
-aaaatctatttcggaagatttgtgtacacctcatcctttatccttccagtctcaccttag
-aagggcctgcctggccaccctctctagtcatccccattgctaattccctttattattatt
-attttttttttgagacagagtctcactctgtcactgaggctggagtgcaatggcacaatc
-ttggctcactgcaacctctgcctcctgggttcaagtgattctcctgtctcagcctcccaa
-gtagctgggattaccggcacatgctgccacacctagctaattttttgtattttagtagag
-acagggtttcaccgtgttcaaggctggtcttgaacttctgagctcaggcaatccacccac
-ctctgcctcccaaggtgctaggattacaggtgtgagccaccatgcctggcctaattccct
-ttactcttaattatatctccctgttcattttctccctaagtcttgaacaacagtatataa
-tctgtgatggctgatttacttgatgtttgtctgacttcccctactagaagtgtcagctcc
-ctgaggcagggactgtgtctgtctcattcactgctgtgtgccagggcatggcacagggcc
-tggcacccaggggtgctctatgactattAAATGTGTGCAGTGTGATGCTGGCTGCACAGT
-GCCTGCTTGCAGCTGGGAAGCTCGCAGTAAGGGGTGATCCTCTCTTTCTCTTCTGCCCTG
-TCTGTGGACATGCCCCATAAACACTCAACAGACTCCCCTCTGTGCCAGGTTCCATGTGGG
-CACCAGCAGCATGTAAGGGCTCAAACACAGTCGCTGGTACTGAAGCAGCTCCCAAATACT
-GGGGCAGGAGACAGATATCCAGCCTGTACTGGATATCTGGGGACATAGTGTAGCTGGTAG
-GGAGAGACGGCACAAAAGTCAGGGCACCAGAGGTCTGCAGTGCCAAATTAGAGTGGAGTA
-AGGACTCCATGCTGAGTAAGGAAAGAAGATCAGGCAGGCACTGGGGAGTACATTGAGGAT
-GGAAAGGAGGGCGATGGAGGCCATCTGGAAGGACGAAAGCGAGTGGTAGCAGGAGAGGCA
-TCTTAGgtatgaccccgggcatgacacgcaacctctctgaatctgtgtccCTGTTGgtat
-aacattctgtgaagcacacaggtcctggagccttcctgggttcaaatcccaccctctgat
-tactcatgaccctcaataagttctttcaacttggtttcttcatctgtaaaatggagatga
-caataatagcacctccccactattgtttcatcaggatcacatgagttaatgcattgaaaa
-cacttagatcggtgccaggcacatggtaagtggtcagtcaacgtGAGCTAGCACTGAAGC
-AGGAGTCACAGTTGCAAAGCACAGACCAGTGCCTGCACGCGCACACAGCAGGCACTCATC
-AGTGAGACGGACCTTCTATCTGCCTCTTACGCTGtaacacatatcaccacccaacatggt
-atttttttgcttatgtgattattgtcccttgcctccaccagaatgtgagctcaatgaggg
-caggggttctgtctcttttgttcccttgcattatccccagagcccagggcagtacttgac
-acatagtaggtgctcagtaagtagttgctgaatgaattcatttctaatttttagttttgt
-gcttggtgcacagcaaatgctcaacaaatgctggtcctcttCACCCCTACCAGCCTCTCC
-ATCCCGTTTCTACCTGCTCCAGGAAGCCCTCTTGGGCCTCGCAGCATCCACCAACCGTCC
-TTCATCCCAGGCTAAGTTCCCCACAGACCCCCTTGGCCCACCTCCCATCTGCTTTATCAT
-GCCTGTGGAGCCAAGGTTCACCTTGTTCCCCGGCACTCCCGCCAGCGTGAGTAAGCATCA
-GCCAGGACCTGGAGAGTAGAACCCACCCAGAGAAGAGCCCCTGCTTCTCTGCCCACCCCA
-GGCCAGAAGTGCTCTTGCCCCTGGACTGGTTTGTCCAGGGAGGTTTTCCAAGTCACTGAG
-AGCCCCATGATCAGATGTCACCAGATCCTCCCACCCCGGCTGCAGGGGCTGCAGTACCAC
-CAGGGCCAGAGCCATCCCCATGCGTGATTTCAACATCTGTAATACTTTCCCCTCTCCTTG
-TGGAATTCCCCCTCCAAATTCCTCCTGCTTCattattagtatatataaaaaataaaaaaa
-ttaaGCTGTCTTAATCATTTTCCATATTAGCTGACAGCCGGTTCCCATATGCCTGGGAGT
-GAGACCACACCTCCTGTTCCCCCCCCCTCCCCGCCCTCTCTGCTGTTCCAAAATGACTAG
-CCCCAAACAAGGCCCAGTTACTGAAAACCCTCTATCTTACAGACTCCGCAGCCCTGACTC
-CTTGGAGTCCTGTCTGGCTGGTGTGGCCCAAGCCAAAAGCAAAGCAGGAAGATTCTCTTA
-TGTCCCCAAAAAGTGCAGACCTCAGGGCTGGGCTGATCAAGGTGCAAATCTCAGTGTCAT
-CACCTACAAACTGGAACTCCACAAACTGCTTTGTCCTGTCCAAgaaagggcacaaattct
-gaagcagacggatctgagttccatctctggaactcagctctgtcaccttgggcgagccag
-ttcaccactctgagcctgagtttcgtcatctgtaaaacggcagaaacaacagcagttacc
-tctcagtgtcacagtgaaaatcaaggagaCTTTGataacagcagtgaacatccactgatc
-ccactgtgtgccaggcactgagccaagccctccctgcctccccctcattgcatctgcaca
-acaacctgctttgcagacagaaacaaagggaccgagatattaaaaatttctccaggacaa
-agaacagggaggtggaggagcaccctgacccaggcccgGCATTTTCAGTTCCACTCGAGA
-GCCTGACCCCCTGGAGATACTCCACAAGTCCTCACCCTTTTCCCCCAGTTTCACCTTGGT
-CTTTCCTCCTCTCATGGTCTTGAGCATGGGCATCAGGGATTGGCAGCACTGTTGTGTCCT
-GTCCCCACTGCCCAACCCCAGTGCCAGGGCTGTGAGCATCAGGAGGGTCGGTAGGAGCCC
-GTGGCCCATGCATGGCAGACTCAGGTGGCCCAGCACCTTGCGGCTGCTCCTAAAAGCACA
-GACACCTGTATTGAAGAGAGGGAAGTTCTGGGTTGAACTTGAACTGATTGAGAATTCCCA
-AGCCAGAGGAGATAGACAACTATGCCAGACCTCAAACTTGAAGATTGTTTTTGTTTTTAT
-TTAACTGAACCAAACTGATTTTTTTCTTCCCCCCGAATTACGAGTGAATCAGTTCATAAT
-AGAAGCCCCCATTATATCTCCTAGATTTTTAACCAAAATATCCAAAAAGAATTGGGCTAA
-CATAGCCACACCATCTTGGAATATGTATATTTATAGTGACATGTCATAAAGACTTCTAGT
-ATTTTGTCTCTACTCTTGATCCAAACTCCAGTGGTTCcggtttctctatattaagtattc
-acgtgctttgcatgtgtcacttttcatccttcagcccttagagggaagtatcattcatct
-tcaacttacagatgaggaaactgagactcaacgtagttaaatgatctgtaagacaaggtt
-ctgaatttgaacataggtctcagctgcagagccatgttattgctaacacagcctctgtat
-ggttctccagaaggcccctgatcCACTAAGAAACAAACCTGTCCCCCAATGCCAGCTGAC
-CCTATCCATGAACCCTCCTCCCTCCAGCCAGACAGGCCTCTGCCCGGAGAGGCAGCATCA
-TCTCCAGCTGcctgtactctcatcccagttcagccattcgccaagcatgacaactcggac
-aagacctttccctcctcagcctgtttcctcctgtgctgaggagaaataaaatcctccatc
-tcccacgctgttctgtgaaatgaagcaatcatgtacctaaagtgcgagcacaTagctggg
-catggtggctcacacctgtaatcccagcactttgggaggctgaggcaggcgtatcacttg
-agcttaggagttcaagaccagcctggtcaacatggcaaaaatccaccacttgagactagg
-atttcaagaccagccgggccaacatggcaaaaacccatacaaaattagctgggcgtggtg
-gcacacacctgtaatcccagctactcaggaggctgaggcacgagaatcacttcaacccac
-gaggcagagcttgcagtgagctgagatggcaccactgcattctggcctgggtgacagagc
-aagactgtctcaaaaaccaaaaacaacaataacaaaaaaaaGGGCTAGCACTTATTTTAC
-TTCTAAACTCTCCAGCCTCAACCCAACGTAAGTGAGGTGCATATAATAGGTGCTCAAGAA
-TTACTCATTGATGATAAAAGCAAGCCTGGAACAacaaaaataagagactgggcagaaata
-ttacaaaacatcagaagtagatccctctggggtggaattatgggtgattttattgtcttc
-ttggtgattttttttttctattttccaaactctcAGCTTGGAAGTATGTTATACTGTGTT
-TTCTAATTGTATGACACTATGAACTATACAATGCACTGTACACCTAATAGCAGTTTTTGA
-GAGGAAAGAACAAAACTACTTCATTGGATTGTAAGACTTGTTCTGATTTTGGTAAAGTTA
-AACTCTGCAGGGCAGGAAGAGTAGAGAGGTGTTTTAGAATCAAGGAAATACATTTGTAAT
-CAAGCAATCAAAGTGGTGGTCTTGGGGGGAGGAGGCTAATAAAATTATTATTGTTAATGT
-TATTATTAtttttgagatggagtctccctctgttgcccaggctggggtgcagtggcatga
-tcttggctcactgtaacctccacctcccgaattcaagcaattatcctgcctcagcctccc
-aagtagctgggactacaggcgcacgccaccatgcctggctaattttttgtattttaggag
-agactgggtttcaccgtgttgctcaagctggtctcaaactcctgagctcaggcaatccac
-ccgcctcggcctccgaaagtgctgggattacaggcatgagccactgaacctggccATAGC
-ATTACTTTTTAAAGGAGGAAGAGGATACAGGCAACTTTTCATTGCTTCCAGAACCTGGAA
-CATCAGCTTAACCTTGCCGGCACACCcagctcacctgggatatttgaaaataaacacaga
-tggccaggccctgtcctggtctgaatggccagcatctctaggctggggcctgggagtctg
-tgttttaaGTGGACACAGCAGATCCTGGGCACTGTATAGTAAATaaatctcctcatccac
-tttctgtctcatcttacagatgggaaatcagaagtccaaccaggggaggtgTTTAGCACT
-CTCCTGCCTGAATGGTGAGGGTGGCCAATCTCTTCCTTCACCCCAAGGGCCTTTCTCAGT
-CCCTGTCACCATCTTACCTCTCCCAGTCCTAGCCCCTTCCCCAGCCTTGCTCTGCCAGCC
-TGGAGCTGTTTCTTCCTTTTCTCCCTAAGGGAGTGTTCCCTGTTCTTAATTAGGGAGACT
-CTGGGTATTTTTGTCTCTTTGAGTACTGCGTTCTGTTGCCAGCAAATAACTTTAAATAGA
-AAAAATATGCCCAAAATTAAACTAGAAAACAGAAATAAATAGGAAGGGGGTGGGCTGAGT
-GTCAGCCTGCCCTTGGTGGAGAGGGTGGGctctgggcctcctttcctgcatctctgccat
-ggagaccatcacagtacccaccttctggggtgctgtgcacatcagacaagaagaggcaca
-cagtacactttgcacagggtgtctAAGTGTCCATTAATATCCAAAGTTACTGGGCACACT
-CGTTGCTTGGATTTTGAGATAATTATGTAGAGAAAATGTCAAGGGGCTCAAAGTCCCCCA
-GTTGACATTTCCCTACCAAGAGCTACTTTTATAACATGCTGCCGGATGTCATTTTCTTAA
-TAGGTACAATTTTAAGAGCAtctctccaccttcttccctaccctagtccaactgttcaca
-gctgaaagagtgaccttccaaaagcctaactcagatcatatgattctttgcctctgaaat
-ttttcaaagctctccattgtctacgaaatgccggcctcagagcctttcaggataggggcc
-atgaagggtctcaaatttcaaatttcatcttcctctaccatcctcctgtcaccctccagc
-cacacagacctgccccttggtccccaaaTGGATGCCCACTTCCTTTTTCCCTAATTGAAA
-GCCAGGGCAGAGTTAGGTTAATCACATGCCTTAGCTCCAGCCACACTTTTGGCACCAGAG
-TGAGACCCCTCCCTTATTTTATGTGTCCCTTTCATGCctcatccctactctcatcccacc
-tctcatccctccctcATGTGGATACCCCCCTAACGTGTTTGGCGTGTGTCTTTAAACATG
-CACGTGCCCTTGGAAAATGTGCAATGTTGTTGTCTGTGTGTATGATTTTAATTTACATAA
-ATGCTATTCATATTATGGCTTCTTACCTTTTTTCCTTGACACTGTCTTGAGATCTAGCCT
-GCATATGTGTGGAATCATCACTTCCAACTGCAGAAGAGTCAGCCACAGGGGGTGTCCTCT
-GTGCTTCCCTGCCCATCGTTCTGGTGCTGGTGGCCTAGGCTACCTCTGACTCCCCACAAC
-AAACCTCTGACTGCTTCTTATGTAAGAGAACACAACGACAGCTCCTGCTTTTTGCATAAC
-GAGCCGTTGTTTAGTAACAAGGGGCAGATGCCTCACTCAAGTGGATTTAGACACAGAGAC
-AAAGAAAGTGTAGATCTAGGTGTTCACTAACTCCTCAGGCAGCTGTCTTTCTCCATCTTA
-TCAATTCCAAGATCCCAGCCTCCCACCTTGGCAACTGCAGGGGAAAAGAAGCTCCCGAAA
-CAGTCCCAGGTGACTTTCTGGACCATAGCCTTTGTGCTGTTTCTTTGACGGTGGGATCTG
-GTTTTGTCCTGGCTTCAGCCTTCCCAGATCCATGTGTTTCAGAGGAAGTGAACTCCAGTC
-TCGGGGtgttatggactgaattcgaaattgtgttgaaaccctaaagcccaatgtggctat
-attagaagacatggtctgaagggaggtaattcaagttaaaggaggtcacgagggtggtat
-ccagtaggactggtgtccttataagaggaagagacatcagagctctctcttcacatagac
-acacagagcagatgccacatgaggacacagtgaggaggtggccatctacaggccagaaag
-gcctcaccagaaaccaaacctgatgacaccttgatcttgaacttccagcctccagaacca
-ggaggaaataaatttctgttgctgaagacacccagtctgcagtattttgttatggtagcc
-caagcagactaatacaGGGAATGAACTGTGATTGGTCTAAGGcaatatttctccattttt
-ttttcattattacccctcattattgacctcctgaagagttgttttaagaatttttttctc
-ctaagagtgcctcccacaaaatatatatatactacagacatatctatttatgtagtgtgg
-tttcttggagggtcacaaacggttgtcatatctaagattttgtcataccttaacctaagc
-taatttttacagccttaggagcaatattgccccattgagaatgcaCTGCCTAAGGCAATG
-TACTTGGTCTgtgattggttagaacatgggcatgtgaggctaatgtagaccatagatgtg
-agagccacagaggaagaaattgtcccttttcacctttggtctttattatggatggacata
-atgcctggatctgcggcagctattttgtgactatgaggacaggctgatatgctttaaatg
-gccaactagtagataaaacctaggccattgttcatatatatatatatatttgagatggaa
-tttcactcttgtcacccaggctgaagttcagtggctcgatctcagttcactgcaacctct
-gcctggttcaagctattcccctgccagagccttcagagtatctgggattacaggcaccca
-ccaccactcccagctaatttttgtatttttagtagagacgacgtttcaccatgttggtca
-ggttggtctcaaactcctgacctcaggtgatccacccacctcggcctcccaaagtgctgg
-gattacatgtgtgagccaccacacccggcccactgatcatatttttgagcaataaaagta
-accagccctgaaactgccctaccacaaactcctccttatgtgaaatgatgcattttcaca
-tttcagcctgttcagctgtgtagtttttgtaattgcagctgaagacattctaacagaTCC
-TGTtctttttcccgtaagttgtaccaaatgttctgaggcagactggcagtgatgggcctg
-gttagtccatgagttcatccccaaaccaatcttgtggccagacttgaatcctgtgcccac
-ccacctttgtagctcagggatgggaaggggtcaaccccacctggactgagaactgggggc
-tgttcctccgagggagatgagggagatacttcccaaagggattgtgaatgctgagagggc
-agaaatgacagctgGGTTTCACATTCACACCATCCCTTCTACATGAAATACCCCATCTCC
-AGCCCAATATACTCCCTCTAGTGCAGCTCAGCATCTCCCTCTTCTGAAAGGTCTCCCCAA
-GACCATGTTGAAATTATCTCTTCTCTTCCAGGTGATGCTCACTGGGGCATTTGTAGTCTA
-CCTCTGCCCTTAAGAGGCCAGTCTTCATGGCATGCAATCattcatgcatccatctaccct
-ccaatcttaattagcaccttctgtagccatccctaggccttggggtgctaagcaagaaaa
-aggcataatttccatcctcaaggatctcacagtccaggggaggaagcaaaactcataggc
-attcatTCGACACACATTTATTCTCTGTATAGATATGAGTAAAATATTGCATATCCTCAA
-GGAAAGGGGGAACTCCCCAGCTAATGGGACAGACAGATGAAGAACAAGTAAGTACAGTGT
-ATAATGAGGTGACAGAAGCCACCACTCATTGCTCTGACTAGGAGGAAACAACAAGATGCC
-TTAGACTCTTTTGGCCAAGGAAAGACACACTAGCTGTGTGAATGCCAGGTGAGCTGGCAT
-CATTTGTCTGGGATAGGGTGCAGTGGAGGCTGTTGAGGCCTGACAGCTTCCCCCTTCACC
-TTACTCCATTGTTTGCCAGGCTCATGCCTGGGAGAACCATATGCATAAGAAGACCTGGAT
-CTTATAGGAAGAAGAAGTGGAAAAGCCAATACCTGACCTCCAGGAATCAGAATTTGtgtt
-gcaggttgggttctatgcaggcagacacgaagacagagtttaggtgcaaggtgtttatta
-ggaatcaatatctggaaaagaaaggggcaggaatcagggttgaggaggaggagatactta
-actgcaatgtgacccagtaaagcgttggtcaacatggtgaggaagttgggagcaagaatt
-atccctcgatagacaccccgttctacatgatgtaattattatgaattacatgcctgtatc
-aaaacatctcatgtaccccataaatatatatatacctactatgtacccacaaaaattaaa
-attaaaaagagttacccctcagagaatcccaaaagatatcaaaatatccagacttttgtc
-tcagccccttcattttgatagttcactattcaccaaatacaggttgccccaggaagggca
-tggcctgggatgaagtggccctctcaagctgaggctaaccttgaaggggctgaagctgaa
-ggctctctgctgaccatgcttccCCCGCCTTCAGCTGTCAAGTCCTTCAGGGTCAGCTCA
-GTTCTGAGTGCCACTTTACTTGGGGTCACTTCTTTGATTCCAAGCAGTTTAACATAATGG
-CAACCACAGTTAGGGAGACCTGTCCTGGTGGATCAGGGTGGCCCAAGCTAAGGTCTGGAG
-GAAAGACGACCCTCAAGAAAAGATGTCTCCTCTGTCCCTCCACCCCATTCATACTAAGGG
-CCATGGGTTCATGGAGAGGGTTTCAGATGGGCACATTATAGGGCTGAGGCTAAAAGTCTC
-TTTGAACCAACTCACACTTGTACAGAAGTGATGCTGTGAGGACTAATGAAaacaagtagc
-atctactgcatgcttaacatacaccaggcactattccaaattttttacccacattagtca
-tttaattctcacattaccctatcagaggaacaatgatGAGCATGGGTATGTAGACCAGAA
-GGAGCTAAAACCCTAGAACACAAGCAGAGGACACCAGTGAGCCCAGGAAAGGCCCTGGGC
-CCCTGGAAGCAGTCTCCTCATCCGCCTGCATGGGCCAGGGTTCAACAGAGGCACCATGTG
-GCTGCAAGAGGCAGAAATGGCTGCAGACTGAGCTCTACTAGTTCCTTCCACTTGATGTTT
-GAATAAAGTCCCTGGAAAACTTGGGGAGATGGGATGAGTATCTCAGCTGGGAACACACCA
-AGACTTCTTAATAAGGCATGGAGAGGCTCAAGCAATTGATTGGAAAGAAAAAAAAAAAAC
-AAAACTAACTCAAGTTGGTAGATTTTACCTGCCATGAGATGTTTGTGAATAGCAGAGCAC
-AGGGTAGAGAGGTCACTGCCAAAGAGCAACTCCCAGTCACCCTTGACATGTGGCATCCCC
-TCTCATGCCTCCACGTCTGCATAAGCTTGGTAATCTTGTGCCCTCTGACACCATTCTCCC
-ACCTGTCACCCCACTCCATTCTGCCCATCAGGATAATGCTGCCACATCCTCCAGGAAGCC
-TTCTCTGGCTGTCCTTCTCCATGACGCTAGGCTCCCCTTCCATCTTCCCACAACTTCATG
-TACCTCCCTCTATCATTTTATTTATCAATCATTCTAGATTTTATGTGTTTATGACTGACT
-TTCCTCCTAGATTATGAGGCAGTATGATTATATTATTTACCTTTCCCACTGTCATGCATT
-CCCATTTATCTCACTCGGCGATTGTCACAACAatgctgcaaactaactaccactaagctc
-agtggcttaaaacaataacttcttctcactcatgggtctgtaggtcagctgggattctgg
-tggtctagactgggctgggctccaggcatgcatgcggatctgctccacgcgtctctcatc
-ctccttgacccacagaagacagctggaagcaggcaggacctcataggctttagctcagag
-ctggtgtgctgtcacttctgcccatgttccatcagccagagcaagtcacatggccaagct
-caacatcaattagatgtggagaaaattgatgagtcatgtggcaaagggcatggatatagg
-aaaaggtgaaaattAGGAATAGTATGATTTACTGTGACACAGATGCTTTCTGGTGAACAC
-CAacctctccaaactcatttcaagacccttcctcatcagcccagtgctcaaggtcaattc
-ctgcaaccttcagccctttgtagcctttcagtcttttgaacacactgtactttttgtctg
-acatacacctttcccatccctttcagatctcagctgagatgtcatctcctcaaagaTTTG
-CATGGCTGTAGGCTTTGCCACCAGGAGATAGTGACCCAACAAACAAGCTTGTATGGGTGA
-GTCCCTGAATCCAAACCCAACCCTGcctggccttgccactcactgctgtgaggccctaag
-aaaatcttatcttttttctactgctgttttcttatctgccaaaagtaaataaaaacaTCT
-TCCCAtatcagttagaaatgcttgcagctgcaagtagcagaacccctaatagtagctaaa
-acaataatatctcacaaactagatgcctggaagcaagaagctccagggctggtttattgg
-ctcagtgatgtaaggacTAAGTGCTCACTCATACCCTCTCATTTCTCCTCCTTCCCTTTC
-CCCATTCTACtaggttggtgcaaaagtaattgtggtttttgccattactttcaatggcaa
-aTTGtggtgcaaaagtagttgtggtttttgccattactttcaatggaaaaaacagcaatt
-acttttgcaccaacagcaaaaacagcaattacttttgcaccaacctTAATATTTCCACAG
-TGTCTTCCCTAAAGTCTCACAGAAGGTTCCCTTTACATTTTACTGGGCAGACATGGATCA
-TATGGCCACTCTAGCAGGAAAGTGAAGTGGGAATGCCAATATCAGGGTTTTGTTGTTGTT
-GTTGTTCAGCCTCCTTTGGGGGAAGCAGCAAACGAGAAGGGGGTAAGAATTGGCTGCTGT
-GTAATCAACTCACAATATCTACTCCTGATCTAACTTTCTACCTCACAGAATTTTTGTGAA
-AATTTGGATTGCCAGTAGCACTCTGAAGGCCACAAGCTTATAAAATAATAATCTACTTTT
-ATTATTATTCATGACTTATTAAGAAAAAATCAATATTGGAAGAGAATAATACTTCGCATT
-TGTTCAACAATGAACTTTCCGAAGGTGAAAGGAAAAGCAATTACTGTCTGAGCCCAGCCT
-GAGTCCCAAGTCCATGCCAAGCGCAAGCCTGCAAGACCATTTCCTCCTCCAGGGACTTGC
-TTCGATTGTGctaaaacagcttctgccaagccaaccaggattgcatgctgccaaatccag
-tactcattttcctgatcttattttatttgaattccctgagcattcaatccagttggcagc
-accctccttgatacatgatcctgtctgggcttctgtatgctcacagccctggttgttcct
-cagtctcctctgctggcttctccccatctacctggtttctagatgccagctgactcagga
-ctcacatgtgagctcctctcctccttcccaccccctatgctctttctgtctcaGGTttct
-caaaccttagcatgcatcaccgtcacagggagggcttgttaacacatagattgctgggtc
-tcactcccacagtgtctgatttcatcgctctagggtgaaacctgaacacttgcatttcta
-acaatttctaggtgatggtgatgatgctggtcctgggaccaccccttgagaacctctCAC
-TGCTCTatctcaaccagtgttgagagccttgtttctcagccttggctgcaaattggaatc
-acccggggtgctttaaaatatggacaccaggatctcatcccccagagattctgattttaa
-tggtctgcattatatcctgggtacctagagttaaaaacctcccccaggtgacttcaacat
-gcaggtaaagttgaaagcccctaatttagatactacttaactgctagtaacacctacatt
-tatttccctctcccagacttgtcctctgagttttagcccagtatgcccaattattcactc
-gatatctccacttacgtgactcacaagcatctgagagttaacacacccaaagtggaagtc
-tgaatcttcacttccaaattgctacttctctatcttccccatctcagcaaacagcaactc
-catccatgtgctgtagtttattggggtaaaaaccttggagttatctttggctcctctctc
-ccctccatgacccatatataatcctttgacatagtctatcggttccacctacaaaacata
-tccctaaattctcctctctgcctgaactgctaacacctacatcagaatatcatcaactct
-ttcctgggtggtctctgcagcatcctcacctccctacttctattctttactccctcgcca
-atgcatcctccaaacagcagccagaatggtctcttaaaatcataaaccagatcatgatac
-accccgatttaaagtcttgcaaaacttcctgtcaccttgggcataaaatctcagctcttg
-ctcatggccagtgagatcctgtcctcttctcaaccttgtctattccgctctctccctggc
-ttagatactccaaacacactggccttccttctgtcccttaaatacattcagttatttctt
-gcatttactatttcattaacctggatttctgttccctttggactctgcttggccagctac
-ctctcatctttcaggtctgcttaagtgtcactgccttaaagtgtctccctgacccgcctg
-ttatgttctatcataagactctatattcttcttagcgcctatcagagttggtgatcattt
-gatttgtaaatatattggtttattatttgtctctctcactagactgtgtgctttgtgagg
-gcaggaaccatgcctgttttggtcacggttgacacctcagtgcccagaagagtgaatgag
-acatagtgggtattcaaaacatacttagggagggagagaaaagaggaagaaaaaggaggg
-aggagaaaggaaggTCTAGTAATACTCAGAGCCCAGGAATTACACACCAGATACCCCTTG
-CTTCTACCCAAGAGGTGGTTCAGATTAGAGATTAGATTTCAAGGCTCCAGCTTGCTAGCT
-CATAACTGCTTCTACTCAAGACGGTCTATTCATGTAGCAAAGTCaaaatgtgaacatgct
-tttaagttccttgacgacaggaattgtggcttgtttactcttctacctggcatttgcaca
-gagcctgggcctgaatgaaagttcagtaaatggttcatgaatgaTTTGAATGGCATTTGC
-CTGAAGGAAATCTAAGAAAGTCTTGCCTTGGTTTCCCCATTAAATGGGGCAAGCAATTCT
-TATCTCCCCTTCCAGAGAGCTGCTGCCAACACAGGGAATCCATCCTGGAAGAAAAGATTG
-GTGGCCACCTGCACCATCAGGTGGAGGGCATCTCTCAGCTGCCCTTGCCACATCTGCAGC
-CCTAAGCTTCCAGGTGACCCCAGTGGACCAGTCTGCCCAGAGCATATCATTAGTTAGGGG
-CACTCTGCAGGAGGATGCCTGCCTTTGCTAGTGCATAGCTAATGTCCCAGGGGGCTTCCT
-CTAATTAAAACCCAAACTGCAATTATAGTTGTGCCAAAGCATGTGCACATGGCGCCACTT
-AAAAGGGACAGATTGACAAGGCGTTAACAACTCCAGAGGCAGCATTGTCCCAGCACCAGG
-TGCTACCAATCATCAAAATTAGAACCAAATGAGTCACTGGGGCTCAAGATACAGTATCCA
-GTGCAGACTAATGGGTGATTCCAAGAAACTTATGAGGATTATTTAAaacacactaactat
-gctccttctacagggcctttgcacttactagtccctgtacttcttcttgcctaactctat
-ttgatctctctcaattatcacctcttctgagacacctgctttgatcacatgaatctctac
-cctgctttatttttcttcttagtgtttattatcatctgatattatatatttgtttTGCGA
-TTGATAGCCCaaaatatgttttaatattgtataaatgtaaaacatatataaatacacaaa
-attttataattttCTGCAATACATATGTATCAAGAAGATACAGCATACACACTAAGGAGG
-GTGTCTTCTTGGGGTTGGGGGTGGTGAGGCAGGGGAATAGAAAGACTGATTCAGAAAGAA
-GAGAGGAACAATAAAAGAACAAATGAGAATATTTATATATCCTGATGACAATAGTGGGCC
-ATTATTTGAAGAGTATGATAAACTTGAATTTTCCTTCCTATCACTTGGTAAACTTGAATT
-ATTCCTCCCTGAAGTTCTGTACTCTGGGAAAAttttcttttttttttttttttggagaca
-gagtcttgctctgtcaccaggctggagtacagtggcacgatctcggctcactgcaacctc
-tgcctcctgggttcaagtgattctcatgcctcagcctcccaagtagctgggattataggc
-acatgccaccacacccagctaatttttgtatttttagtagagacagggtttcaccatgtt
-ggccaggatggtctcgatctcctgacctcatgatctgcccaccttggcctcccagagtgc
-tgggattacaggtgtgagccaccatgcctggccACTCTGGGATAATTTTATTTTGGTTTT
-TAGAAATAACTTTATTGAATATTTTAGTACCAGTAATCTTGCGATAAATTTCAGCCCTGG
-TTTGGTTGTTGTTgttgttgtttttggtctaaagccatcttgattttgcctttatttttg
-aagagtatttttactagatatagaattctaagttgtcaattatgtatattttttcagcac
-tttataaatgttatttcattgtcttctggctttcatcatttctgttgaaaagtctaccat
-cagtcttattgttgctcttctgtaggtaatgtcatttacctctgactacttttaagattt
-ttctctttatttttgtttttcagcagtcttactatgatgttcctatgtataattttctta
-gtatttaccctgcttgggattgtcagagcttcttgagtctgtgggttgatatcttttatc
-agttttgaaaaaattcttagctcttatttctgcaaatattgttaattttgtattcttatc
-ctcaccttctaggactccaaataaatgtatattttttttactaggtcccacatatctatg
-acacattcgtgtattttctattatttttctatgtatactttagtttggacacttttcatt
-tttttaagtgtgctaatcctatcttccactgtatcaaatctctgttaatcccatctgatg
-aatttttgatttcagatattatattttctcattctagaggtatcattttttcttttttat
-agacgctaattttctgatgaaattctccatcttttcaaatattttgtgcatatttttctg
-ttttttaaCATATTAATCTTAGCATGTCAAAGTCATTATCATATACCTGTTTCTATTGTC
-TATTTTATTCTGTTTGTTTTCAGATATGTCCTAGCTTTGGCATAACTAATAATGTTAATA
-GAATGCCACTTATTATACATAATGTAGAGACTCCAGATGATATATTCTTCTAGAGAAGAT
-TTACCCTCTGCTAGGCACAGAGTGGGGCTTATCATCATAAACCAGTCAGGGATTGTACTG
-AGTCAAGACTGTAAGGTAACCCCAGGAAGGTCAGTTTCCCTGTGCTTCAGTCAGTCATAC
-ACTGAACACCTCTTCTCAGAGGCTTTATGCCAAGGTTTATAGCCTCCTGCACCAGGTATC
-CCAGAATCCAGCAAGTGTCTTGAGGGATTAATGAGCCCTCAAGTCTGCCAAAGGCTCTGC
-TGGTTTCTTCCACACTAGTCCAGTGCTGCATAAAACTTGGATTCTCAGCATTCTGCTTTT
-GCCTAGAATTGGAAAATGGTCTGGGGTAAAGAAGCTATATAATTCAGCTTACTCCCCTGC
-TGTTCATTCCTTTCCAGAATTTTAGCAAGTAGTATATTTTTTTCCAATCCTatgatatct
-gacaatgctactatatttctctagtcaatttactcttccatttcctgggcaaccatttca
-ctttctcttatttcttcacatctttgacaccttctttctctcctcacttctaactgacgg
-cttacaaatgaaagcaagtggaatgacaataactttttataaaaacttctacactagtcc
-atcaacacgtctctctaatacttctccctccctctctttctctctctccctttctctctc
-tccatgtgtctgctggatcccatcattctcatctaatcaaggactttgctcctataatca
-tccctccatgaatcattttcctctctctgctaaattattcccataagtggacaaatatac
-cattagtctcccatcttctaaaaagtatataccctcccttgtctcaatatctctgtgcag
-ctacccccacattttgtttcttcccatttgaagcaaaactcctcaaaaattgtatatatt
-cactatcttcattttctttccttctatgccaaacaggttttcctccttcaaagctactct
-catcagggtcaccaaatacctctgcattgccaaatccagaggtcagttcacagacctcgc
-cttacctgattgctcagaagcatttgacactgttctctttgctggttcttcctcatgttc
-tcgacatctgagtgttggagacccccaaaatcagtcctaggactctttcttttccttcta
-tatattccttttacgtgctttccttattctctttgtatataatttaatacctctactggg
-taatttacaaagaaaacaaacttatttctcacagttctagaagctggaaagtccaagatc
-aaggcagcagcatgttcagacgtgtggtgagggctgccctctgcttcctagatggtgcct
-tgatgctgttgtcctccagaggagaggaaatctgtaaattcacatagtggaagatacgga
-attatgaaaaaggaacaaactccctccatcaagctcttttatcagtaccttgatccattc
-tgccctcatggcttaaacacctttcaaaaggccccacttcaacactgttgcattggcaat
-taagtttccaacacacacattttggggaacacattcagaccatagcaacccttttgttca
-gtctcatgattttaaatatcatttatattttatgactctcaaatgattctagccagaaat
-tatctcatgagctctagactctctctacatacccacattaacaGCAACGAAAGCACATTT
-AATCAATTTAACCCAAGGAAGTAATACGATGAGCTCAGGTAATACAGACTGAGACTTCAT
-CCAAGATCACAAGGATGGTATGTGCTAGACTCCAAAGAGATGCCCAAGATTTTGTAAATA
-CCCTTCCCTTCCACAAGAATAGAGTTGTTATTTGGTGTGATTTCTCAGGGAGTTGGGGAG
-ATCTCTTATCAAACTCCCAAATTGCTCTCCAATCTGCTCAAGTTTTCTGAAATGTTGTTG
-tttctgggtcatagcatatgcacatacttactttggttaagttcagccaaattatttctc
-cagaatggctgttccagtctacattctttccagccatgcctgtgggctcttatctccaca
-tctttgccaggtattactagccttttagtttttgcctggttaataaatgtaaagtgctaa
-ttctctgatgttttatttatcatattactaattaatttgagcatctctcacttacttgtt
-ggcttgtttctttttccataaattggtatccatttctcttgccagttttttattatggag
-tatatatatattgccaatttaaaggacttctttgaatattctagTGATTTGTCCCCTGTC
-AATTTTAGAAATTGCAAACATCTCCTAATTTGTCATTAGTCTATTATCTTTGTCTTTATG
-TCTGTCATTTAAGAGAAATCATTTTCCTGTAAATGTTTTAAAActttttattgtaaaata
-aaacacattaaaaatctcacacggcaaatgtttaacttagtaaattattataaactgaac
-cctttaaagtattactcaagtcaagaatataactttgccggccattcagaagcccctccg
-tatgttctatcccaattatagctccctctcccctccaaaagcaatattaccctgactttc
-atatcaatcactttcttgcttcttttatcatccaagtgtgcacccccagacactatggtt
-tagtcttgccATTTAAAAAAATgtttatatgtattttgagtctcttttaatctacaggct
-ccctttccatctcttctctttctttaatattcatctgttgaagaacccaggccatttgac
-ctgtacagagtcccatagtttggaatttgctgattgcaagtcttggtgaagttcaagatt
-cctctgtttaacgtctttactgtaaatggacagctggtccagaggcttcatcaggctcag
-acgctgtgttattttatcatgtggcacattcctatctgggtgcttctctttgagaaggca
-gtgacacttaaagattagatctattgattcattgcggattggaaaaaggggatgttctaa
-ttccattttttttttcattttttttaactggaataattttataaagagacacttttctca
-ctcgccattggttattgttacgaactgaattgtatccctccccaaattcattcattcgtt
-gaaacctagcccccaatgtcactgtacttggatatagggccgctagggaggtagttgagg
-ttaaatgaggtcagaagggtagggtactaatccaataagactggtacccttagcaaacaa
-agagactccagtggtctgtgtccttctctccatacctgcaaagaggaaaggccatatgaa
-gacacaatgagaagtcagccctctgtaagccaggaaggaagactcaccagaaaccacatt
-ttgtggcaccttgattttggacttcccagcctccagaactgtgagaaaataaatttctgt
-tgtttaagccacccattcggcggtattttattttggcagccctagcaaactaacaccatt
-acccaagtggtataattaatacataaaagagaagataactgcttgattctctttatttac
-caggtttcgagataatgaatttgttcctgttatcctccaaaggctaccatttaaattctt
-ttgttattattaaatcatggatttaagtatagtttgtggttttcaatccattgcattttt
-attctaattgacaatcaagttgttccatctttgaacagtaggaagctctttggcttggct
-cctgaggccttttgacttatctcccttagtccttgaagcttctttgtatcttgaatgaca
-aaatattccaggcttgtcctaccttcatatcctgctttaaacctagaatcagccatttct
-tcaaggagtcctgggtccttctaatgagaaattttatttcaagactataatatgaatgct
-agagatgttcactgctcctgggctgctcattaagtctaggcttcttgagtgggcaaagct
-aatatacatatatgtatgtgtgtgtgtgtgtatatatatatatataactcatgaattcat
-actggttcaatgagttcagttctaacttagaactcagattgttcacttaacttcttttac
-actatatttgaatcttttttcttacattctgagaattctggttcttaatatcACAGGGAG
-TGATATAATTAGGATGTCAATAGTCTTTAATTATTTAATTTATCCCATGTTGTACACACA
-ACAATACTACCAATCCTAATTACTGACAACAGTTTAAAAAGTTTTGCATATGCTATTCCA
-TTCCCTCCCCATTTTTATATTTACATAATCAAATAATAAAGCCTTTAATATATAGTCTCT
-ttctggtcttagttccgcaagtgggtatatataaaggctcaaaatcaatctttatattga
-catctctctacttatttgtgttgtctgatgctcatattgt
diff --git a/testdata/net/sf/picard/reference/Homo_sapiens_assembly18.trimmed.fasta.fai b/testdata/net/sf/picard/reference/Homo_sapiens_assembly18.trimmed.fasta.fai
deleted file mode 100644
index 04a438b..0000000
--- a/testdata/net/sf/picard/reference/Homo_sapiens_assembly18.trimmed.fasta.fai
+++ /dev/null
@@ -1,2 +0,0 @@
-chrM	16571	6	60	61
-chr20	1000000	16861	60	61
diff --git a/testdata/net/sf/picard/reference/Homo_sapiens_assembly18.trimmed.nodict.fasta b/testdata/net/sf/picard/reference/Homo_sapiens_assembly18.trimmed.nodict.fasta
deleted file mode 100644
index 9b75d10..0000000
--- a/testdata/net/sf/picard/reference/Homo_sapiens_assembly18.trimmed.nodict.fasta
+++ /dev/null
@@ -1,16946 +0,0 @@
->chrM
-GATCACAGGTCTATCACCCTATTAACCACTCACGGGAGCTCTCCATGCATTTGGTATTTT
-CGTCTGGGGGGTGTGCACGCGATAGCATTGCGAGACGCTGGAGCCGGAGCACCCTATGTC
-GCAGTATCTGTCTTTGATTCCTGCCTCATTCTATTATTTATCGCACCTACGTTCAATATT
-ACAGGCGAACATACCTACTAAAGTGTGTTAATTAATTAATGCTTGTAGGACATAATAATA
-ACAATTGAATGTCTGCACAGCCGCTTTCCACACAGACATCATAACAAAAAATTTCCACCA
-AACCCCCCCCTCCCCCCGCTTCTGGCCACAGCACTTAAACACATCTCTGCCAAACCCCAA
-AAACAAAGAACCCTAACACCAGCCTAACCAGATTTCAAATTTTATCTTTAGGCGGTATGC
-ACTTTTAACAGTCACCCCCCAACTAACACATTATTTTCCCCTCCCACTCCCATACTACTA
-ATCTCATCAATACAACCCCCGCCCATCCTACCCAGCACACACACACCGCTGCTAACCCCA
-TACCCCGAACCAACCAAACCCCAAAGACACCCCCCACAGTTTATGTAGCTTACCTCCTCA
-AAGCAATACACTGAAAATGTTTAGACGGGCTCACATCACCCCATAAACAAATAGGTTTGG
-TCCTAGCCTTTCTATTAGCTCTTAGTAAGATTACACATGCAAGCATCCCCGTTCCAGTGA
-GTTCACCCTCTAAATCACCACGATCAAAAGGGACAAGCATCAAGCACGCAGCAATGCAGC
-TCAAAACGCTTAGCCTAGCCACACCCCCACGGGAAACAGCAGTGATTAACCTTTAGCAAT
-AAACGAAAGTTTAACTAAGCTATACTAACCCCAGGGTTGGTCAATTTCGTGCCAGCCACC
-GCGGTCACACGATTAACCCAAGTCAATAGAAGCCGGCGTAAAGAGTGTTTTAGATCACCC
-CCTCCCCAATAAAGCTAAAACTCACCTGAGTTGTAAAAAACTCCAGTTGACACAAAATAG
-ACTACGAAAGTGGCTTTAACATATCTGAACACACAATAGCTAAGACCCAAACTGGGATTA
-GATACCCCACTATGCTTAGCCCTAAACCTCAACAGTTAAATCAACAAAACTGCTCGCCAG
-AACACTACGAGCCACAGCTTAAAACTCAAAGGACCTGGCGGTGCTTCATATCCCTCTAGA
-GGAGCCTGTTCTGTAATCGATAAACCCCGATCAACCTCACCACCTCTTGCTCAGCCTATA
-TACCGCCATCTTCAGCAAACCCTGATGAAGGCTACAAAGTAAGCGCAAGTACCCACGTAA
-AGACGTTAGGTCAAGGTGTAGCCCATGAGGTGGCAAGAAATGGGCTACATTTTCTACCCC
-AGAAAACTACGATAGCCCTTATGAAACTTAAGGGTCGAAGGTGGATTTAGCAGTAAACTG
-AGAGTAGAGTGCTTAGTTGAACAGGGCCCTGAAGCGCGTACACACCGCCCGTCACCCTCC
-TCAAGTATACTTCAAAGGACATTTAACTAAAACCCCTACGCATTTATATAGAGGAGACAA
-GTCGTAACATGGTAAGTGTACTGGAAAGTGCACTTGGACGAACCAGAGTGTAGCTTAACA
-CAAAGCACCCAACTTACACTTAGGAGATTTCAACTTAACTTGACCGCTCTGAGCTAAACC
-TAGCCCCAAACCCACTCCACCTTACTACCAGACAACCTTAGCCAAACCATTTACCCAAAT
-AAAGTATAGGCGATAGAAATTGAAACCTGGCGCAATAGATATAGTACCGCAAGGGAAAGA
-TGAAAAATTATAACCAAGCATAATATAGCAAGGACTAACCCCTATACCTTCTGCATAATG
-AATTAACTAGAAATAACTTTGCAAGGAGAGCCAAAGCTAAGACCCCCGAAACCAGACGAG
-CTACCTAAGAACAGCTAAAAGAGCACACCCGTCTATGTAGCAAAATAGTGGGAAGATTTA
-TAGGTAGAGGCGACAAACCTACCGAGCCTGGTGATAGCTGGTTGTCCAAGATAGAATCTT
-AGTTCAACTTTAAATTTGCCCACAGAACCCTCTAAATCCCCTTGTAAATTTAACTGTTAG
-TCCAAAGAGGAACAGCTCTTTGGACACTAGGAAAAAACCTTGTAGAGAGAGTAAAAAATT
-TAACACCCATAGTAGGCCTAAAAGCAGCCACCAATTAAGAAAGCGTTCAAGCTCAACACC
-CACTACCTAAAAAATCCCAAACATATAACTGAACTCCTCACACCCAATTGGACCAATCTA
-TCACCCTATAGAAGAACTAATGTTAGTATAAGTAACATGAAAACATTCTCCTCCGCATAA
-GCCTGCGTCAGATCAAAACACTGAACTGACAATTAACAGCCCAATATCTACAATCAACCA
-ACAAGTCATTATTACCCTCACTGTCAACCCAACACAGGCATGCTCATAAGGAAAGGTTAA
-AAAAAGTAAAAGGAACTCGGCAAACCTTACCCCGCCTGTTTACCAAAAACATCACCTCTA
-GCATCACCAGTATTAGAGGCACCGCCTGCCCAGTGACACATGTTTAACGGCCGCGGTACC
-CTAACCGTGCAaaggtagcataatcacttgttccttaaatagggacctgtatgaatggct
-ccacgagggttcagctgtctcttacttttaaccagtgaaattgacctgcccgtgaagagg
-cgggcatgacacagcaagacgagaagaccctatggagctttaatttaTTAATGCAAACAG
-TACCTAACAAACCCACAGGTCCTAAACTACCAAACCTGCATTAAAAATTTCGGTTGGGGC
-GACCTCGGAGCAGAACCCAACCTCCGAGCAGTACATGCTAAGACTTCACCAGTCAAAGCG
-AACTACTATACTCAATTGATCCAATAACTTGACCAACGGAACAAGTTACCCTAGGGATAA
-CAGCGCAATCCTATTCTAGAGTCCATATCAACAATAGGGTTTACGACCTCGATGTTGGAT
-CAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCT
-ACGTGATCTGAGTTCAGACCGGAGTAATCCAGGTCGGTTTCTATCTACTTCAAATTCCTC
-CCTGTACGAAAGGACAAGAGAAATAAGGCCTACTTCACAAAGCGCCTTCCCCCGTAAATG
-ATATCATCTCAACTTAGTATTATACCCACACCCACCCAAGAACAGGGTTTgttaagatgg
-cagagcccggtaatcgcataaaacttaaaactttacagtcagaggttcaattcctcttct
-taacaacaTACCCATGGCCAACCTCCTACTCCTCATTGTACCCATTCTAATCGCAATGGC
-ATTCCTAATGCTTACCGAACGAAAAATTCTAGGCTATATACAACTACGCAAAGGCCCCAA
-CGTTGTAGGCCCCTACGGGCTACTACAACCCTTCGCTGACGCCATAAAACTCTTCACCAA
-AGAGCCCCTAAAACCCGCCACATCTACCATCACCCTCTACATCACCGCCCCGACCTTAGC
-TCTCACCATCGCTCTTCTACTATGAACCCCCCTCCCCATACCCAACCCCCTGGTCAACCT
-CAACCTAGGCCTCCTATTTATTCTAGCCACCTCTAGCCTAGCCGTTTACTCAATCCTCTG
-ATCAGGGTGAGCATCAAACTCAAACTACGCCCTGATCGGCGCACTGCGAGCAGTAGCCCA
-AACAATCTCATATGAAGTCACCCTAGCCATCATTCTACTATCAACATTACTAATAAGTGG
-CTCCTTTAACCTCTCCACCCTTATCACAACACAAGAACACCTCTGATTACTCCTGCCATC
-ATGACCCTTGGCCATAATATGATTTATCTCCACACTAGCAGAGACCAACCGAACCCCCTT
-CGACCTTGCCGAAGGGGAGTCCGAACTAGTCTCAGGCTTCAACATCGAATACGCCGCAGG
-CCCCTTCGCCCTATTCTTCATAGCCGAATACACAAACATTATTATAATAAACACCCTCAC
-CACTACAATCTTCCTAGGAACAACATATGACGCACTCTCCCCTGAACTCTACACAACATA
-TTTTGTCACCAAGACCCTACTTCTAACCTCCCTGTTCTTATGAATTCGAACAGCATACCC
-CCGATTCCGCTACGACCAACTCATACACCTCCTATGAAAAAACTTCCTACCACTCACCCT
-AGCATTACTTATATGATATGTCTCCATACCCATTACAATCTCCAGCATTCCCCCTCAAAC
-CTAAGAAATATGTCTGATAAAAGAGTTACTTTGATAGAGTAAATAATAGGAGCTTAAACC
-CCCTTATTTctaggactatgagaatcgaacccatccctgagaatccaaaattctccgtgc
-cacctatcacaccccatcctaAAGTAAGGTCAGCTAAATAAGCTATCGGGCCCATACCCC
-GAAAATGTTGGTTATACCCTTCCCGTACTAATTAATCCCCTGGCCCAACCCGTCATCTAC
-TCTACCATCTTTGCAGGCACACTCATCACAGCGCTAAGCTCGCACTGATTTTTTACCTGA
-GTAGGCCTAGAAATAAACATGCTAGCTTTTATTCCAGTTCTAACCAAAAAAATAAACCCT
-CGTTCCACAGAAGCTGCCATCAAGTATTTCCTCACGCAAGCAACCGCATCCATAATCCTT
-CTAATAGCTATCCTCTTCAACAATATACTCTCCGGACAATGAACCATAACCAATACTACC
-AATCAATACTCATCATTAATAATCATAATGGCTATAGCAATAAAACTAGGAATAGCCCCC
-TTTCACTTCTGAGTCCCAGAGGTTACCCAAGGCACCCCTCTGACATCCGGCCTGCTTCTT
-CTCACATGACAAAAACTAGCCCCCATCTCAATCATATACCAAATCTCTCCCTCACTAAAC
-GTAAGCCTTCTCCTCACTCTCTCAATCTTATCCATCATAGCAGGCAGTTGAGGTGGATTA
-AACCAAACCCAGCTACGCAAAATCTTAGCATACTCCTCAATTACCCACATAGGATGAATA
-ATAGCAGTTCTACCGTACAACCCTAACATAACCATTCTTAATTTAACTATTTATATTATC
-CTAACTACTACCGCATTCCTACTACTCAACTTAAACTCCAGCACCACGACCCTACTACTA
-TCTCGCACCTGAAACAAGCTAACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCC
-CTAGGAGGCCTGCCCCCGCTAACCGGCTTTTTGCCCAAATGGGCCATTATCGAAGAATTC
-ACAAAAAACAATAGCCTCATCATCCCCACCATCATAGCCACCATCACCCTCCTTAACCTC
-TACTTCTACCTACGCCTAATCTACTCCACCTCAATCACACTACTCCCCATATCTAACAAC
-GTAAAAATAAAATGACAGTTTGAACATACAAAACCCACCCCATTCCTCCCCACACTCATC
-GCCCTTACCACGCTACTCCTACCTATCTCCCCTTTTATACTAATAATCTTATAGAAATTT
-AGGTTAAATACAGACCAAGAGCCTTCAAAGCCCTCAGTAAGTTGCAATACTTAATTTCTG
-CAACAGCTAAGGACTGCAAAACCCCACTCTGCATCAACTGAACGCAAATCAGCCACTTTA
-ATTAAGCTAAGCCCTTACTAGACCAATGGGACTTAAACCCACAAACACTTAGTTAACAGC
-TAAGCACCCTAATCAACTGGCTTCAATCTACTTCTCCCGCCGCCGGGAAAAAAGGCGGGA
-GAAGCCCCGGCAGGTTTGAAGCTGCTTCTTCGAATTTGCAATTCAATATGAAAATCACCT
-CGGAGCTGGTAAAAAGAGGCCTAACCCCTGTCTTTAGATTTACAGTCCAATGCTTCACTC
-AGCCATTTTACCTCACCCCCACTGATGTTCGCCGACCGTTGACTATTCTCTACAAACCAC
-AAAGACATTGGAACACTATACCTATTATTCGGCGCATGAGCTGGAGTCCTAGGCACAGCT
-CTAAGCCTCCTTATTCGAGCCGAGCTGGGCCAGCCAGGCAACCTTCTAGGTAACGACCAC
-ATCTACAACGTTATCGTCACAGCCCATGCATTTGTAATAATCTTCTTCATAGTAATACCC
-ATCATAATCGGAGGCTTTGGCAACTGACTAGTTCCCCTAATAATCGGTGCCCCCGATATG
-GCGTTTCCCCGCATAAACAACATAAGCTTCTGACTCTTACCTCCCTCTCTCCTACTCCTG
-CTCGCATCTGCTATAGTGGAGGCCGGAGCAGGAACAGGTTGAACAGTCTACCCTCCCTTA
-GCAGGGAACTACTCCCACCCTGGAGCCTCCGTAGACCTAACCATCTTCTCCTTACACCTA
-GCAGGTGTCTCCTCTATCTTAGGGGCCATCAATTTCATCACAACAATTATCAATATAAAA
-CCCCCTGCCATAACCCAATACCAAACGCCCCTCTTCGTCTGATCCGTCCTAATCACAGCA
-GTCCTACTTCTCCTATCTCTCCCAGTCCTAGCTGCTGGCATCACTATACTACTAACAGAC
-CGCAACCTCAACACCACCTTCTTCGACCCCGCCGGAGGAGGAGACCCCATTCTATACCAA
-CACCTATTCTGATTTTTCGGTCACCCTGAAGTTTATATTCTTATCCTACCAGGCTTCGGA
-ATAATCTCCCATATTGTAACTTACTACTCCGGAAAAAAAGAACCATTTGGATACATAGGT
-ATGGTCTGAGCTATGATATCAATTGGCTTCCTAGGGTTTATCGTGTGAGCACACCATATA
-TTTACAGTAGGAATAGACGTAGACACACGAGCATATTTCACCTCCGCTACCATAATCATC
-GCTATCCCCACCGGCGTCAAAGTATTTAGCTGACTCGCCACACTCCACGGAAGCAATATG
-AAATGATCTGCTGCAGTGCTCTGAGCCCTAGGATTCATCTTTCTTTTCACCGTAGGTGGC
-CTGACTGGCATTGTATTAGCAAACTCATCACTAGACATCGTACTACACGACACGTACTAC
-GTTGTAGCTCACTTCCACTATGTCCTATCAATAGGAGCTGTATTTGCCATCATAGGAGGC
-TTCATTCACTGATTTCCCCTATTCTCAGGCTACACCCTAGACCAAACCTACGCCAAAATC
-CATTTCACTATCATATTCATCGGCGTAAATCTAACTTTCTTCCCACAACACTTTCTCGGC
-CTATCCGGAATGCCCCGACGTTACTCGGACTACCCCGATGCATACACCACATGAAACATC
-CTATCATCTGTAGGCTCATTCATTTCTCTAACAGCAGTAATATTAATAATTTTCATGATT
-TGAGAAGCCTTCGCTTCGAAGCGAAAAGTCCTAATAGTAGAAGAACCCTCCATAAACCTG
-GAGTGACTATATGGATGCCCCCCACCCTACCACACATTCGAAGAACCCGTATACATAAAA
-TCTAGACAaaaaaggaaggaatcgaaccccccaaagctggtttcaagccaaccccatggc
-ctccatgactttttcAAAAAGGTATTAGAAAAACCATTTCATAACTTTGTCAAAGTTAAA
-TTATAGGCTAAATCCTATATATCTTAATGGCACATGCAGCGCAAGTAGGTCTACAAGACG
-CTACTTCCCCTATCATAGAAGAGCTTATCACCTTTCATGATCACGCCCTCATAATCATTT
-TCCTTATCTGCTTCCTAGTCCTGTATGCCCTTTTCCTAACACTCACAACAAAACTAACTA
-ATACTAACATCTCAGACGCTCAGGAAATAGAAACCGTCTGAACTATCCTGCCCGCCATCA
-TCCTAGTCCTCATCGCCCTCCCATCCCTACGCATCCTTTACATAACAGACGAGGTCAACG
-ATCCCTCCCTTACCATCAAATCAATTGGCCACCAATGGTACTGAACCTACGAGTACACCG
-ACTACGGCGGACTAATCTTCAACTCCTACATACTTCCCCCATTATTCCTAGAACCAGGCG
-ACCTGCGACTCCTTGACGTTGACAATCGAGTAGTACTCCCGATTGAAGCCCCCATTCGTA
-TAATAATTACATCACAAGACGTCTTGCACTCATGAGCTGTCCCCACATTAGGCTTAAAAA
-CAGATGCAATTCCCGGACGTCTAAACCAAACCACTTTCACCGCTACACGACCGGGGGTAT
-ACTACGGTCAATGCTCTGAAATCTGTGGAGCAAACCACAGTTTCATGCCCATCGTCCTAG
-AATTAATTCCCCTAAAAATCTTTGAAATAGGGCCCGTATTTACCCTATAGCACCCCCTCT
-ACCCCCTCTAGAGCCCACTGTAAAGCTAACTTAGCATTAACCTTTTAAGTTAAAGATTAA
-GAGAACCAACACCTCTTTACAGTGAAATGCCCCAACTAAATACTACCGTATGGCCCACCA
-TAATTACCCCCATACTCCTTACACTATTCCTCATCACCCAACTAAAAATATTAAACACAA
-ACTACCACCTACCTCCCTCACCAAAGCCCATAAAAATAAAAAATTATAACAAACCCTGAG
-AACCAAAATGAACGAAAATCTGTTCGCTTCATTCATTGCCCCCACAATCCTAGGCCTACC
-CGCCGCAGTACTGATCATTCTATTTCCCCCTCTATTGATCCCCACCTCCAAATATCTCAT
-CAACAACCGACTAATCACCACCCAACAATGACTAATCAAACTAACCTCAAAACAAATGAT
-AGCCATACACAACACTAAAGGACGAACCTGATCTCTTATACTAGTATCCTTAATCATTTT
-TATTGCCACAACTAACCTCCTCGGACTCCTGCCTCACTCATTTACACCAACCACCCAACT
-ATCTATAAACCTAGCCATGGCCATCCCCTTATGAGCGGGCGCAGTGATTATAGGCTTTCG
-CTCTAAGATTAAAAATGCCCTAGCCCACTTCTTACCACAAGGCACACCTACACCCCTTAT
-CCCCATACTAGTTATTATCGAAACCATCAGCCTACTCATTCAACCAATAGCCCTGGCCGT
-ACGCCTAACCGCTAACATTACTGCAGGCCACCTACTCATGCACCTAATTGGAAGCGCCAC
-CCTAGCAATATCAACCATTAACCTTCCCTCTACACTTATCATCTTCACAATTCTAATTCT
-ACTGACTATCCTAGAAATCGCTGTCGCCTTAATCCAAGCCTACGTTTTCACACTTCTAGT
-AAGCCTCTACCTGCACGACAACACATAATGACCCACCAATCACATGCCTATCATATAGTA
-AAACCCAGCCCATGACCCCTAACAGGGGCCCTCTCAGCCCTCCTAATGACCTCCGGCCTA
-GCCATGTGATTTCACTTCCACTCCATAACGCTCCTCATACTAGGCCTACTAACCAACACA
-CTAACCATATACCAATGGTGGCGCGATGTAACACGAGAAAGCACATACCAAGGCCACCAC
-ACACCACCTGTCCAAAAAGGCCTTCGATACGGGATAATCCTATTTATTACCTCAGAAGTT
-TTTTTCTTCGCAGGATTTTTCTGAGCCTTTTACCACTCCAGCCTAGCCCCTACCCCCCAA
-CTAGGAGGGCACTGGCCCCCAACAGGCATCACCCCGCTAAATCCCCTAGAAGTCCCACTC
-CTAAACACATCCGTATTACTCGCATCAGGAGTATCAATCACCTGAGCTCACCATAGTCTA
-ATAGAAAACAACCGAAACCAAATAATTCAAGCACTGCTTATTACAATTTTACTGGGTCTC
-TATTTTACCCTCCTACAAGCCTCAGAGTACTTCGAGTCTCCCTTCACCATTTCCGACGGC
-ATCTACGGCTCAACATTTTTTGTAGCCACAGGCTTCCACGGACTTCACGTCATTATTGGC
-TCAACTTTCCTCACTATCTGCTTCATCCGCCAACTAATATTTCACTTTACATCCAAACAT
-CACTTTGGCTTCGAAGCCGCCGCCTGATACTGGCATTTTGTAGATGTGGTTTGACTATTT
-CTGTATGTCTCCATCTATTGATGAGGGTCTTACTCTTTTAGTATAAATAGTACCGTTAAC
-TTCCAATTAACTAGTTTTGACAACATTCAAAAAAGAGTAATAAACTTCGCCTTAATTTTA
-ATAATCAACACCCTCCTAGCCTTACTACTAATAATTATTACATTTTGACTACCACAACTC
-AACGGCTACATAGAAAAATCCACCCCTTACGAGTGCGGCTTCGACCCTATATCCCCCGCC
-CGCGTCCCTTTCTCCATAAAATTCTTCTTAGTAGCTATTACCTTCTTATTATTTGATCTA
-GAAATTGCCCTCCTTTTACCCCTACCATGAGCCCTACAAACAACTAACCTGCCACTAATA
-GTTATGTCATCCCTCTTATTAATCATCATCCTAGCCCTAAGTCTGGCCTATGAGTGACTA
-CAAAAAGGATTAGACTGAGCCGAATTGGTATATAGTTTAAACAAAACGAATGATTTCGAC
-TCATTAAATTATGATAATCATATTTACCAAATGCCCCTCATTTACATAAATATTATACTA
-GCATTTACCATCTCACTTCTAGGAATACTAGTATATCGCTCACACCTCATATCCTCCCTA
-CTATGCCTAGAAGGAATAATACTATCGCTGTTCATTATAGCTACTCTCATAACCCTCAAC
-ACCCACTCCCTCTTAGCCAATATTGTGCCTATTGCCATACTAGTCTTTGCCGCCTGCGAA
-GCAGCGGTGGGCCTAGCCCTACTAGTCTCAATCTCCAACACATATGGCCTAGACTACGTA
-CATAACCTAAACCTACTCCAATGCTAAAACTAATCGTCCCAACAATTATATTACTACCAC
-TGACATGACTTTCCAAAAAGCACATAATTTGAATCAACACAACCACCCACAGCCTAATTA
-TTAGCATCATCCCCCTACTATTTTTTAACCAAATCAACAACAACCTATTTAGCTGTTCCC
-CAACCTTTTCCTCCGACCCCCTAACAACCCCCCTCCTAATACTAACTACCTGACTCCTAC
-CCCTCACAATCATGGCAAGCCAACGCCACTTATCCAGCGAACCACTATCACGAAAAAAAC
-TCTACCTCTCTATACTAATCTCCCTACAAATCTCCTTAATTATAACATTCACAGCCACAG
-AACTAATCATATTTTATATCTTCTTCGAAACCACACTTATCCCCACCTTGGCTATCATCA
-CCCGATGAGGCAACCAGCCAGAACGCCTGAACGCAGGCACATACTTCCTATTCTACACCC
-TAGTAGGCTCCCTTCCCCTACTCATCGCACTAATTTACACTCACAACACCCTAGGCTCAC
-TAAACATTCTACTACTCACTCTCACTGCCCAAGAACTATCAAACTCCTGAGCCAACAACT
-TAATATGACTAGCTTACACAATAGCTTTTATAGTAAAGATACCTCTTTACGGACTCCACT
-TATGACTCCCTAAAGCCCATGTCGAAGCCCCCATCGCTGGGTCAATAGTACTTGCCGCAG
-TACTCTTAAAACTAGGCGGCTATGGTATAATACGCCTCACACTCATTCTCAACCCCCTGA
-CAAAACACATAGCCTACCCCTTCCTTGTACTATCCCTATGAGGCATAATTATAACAAGCT
-CCATCTGCCTACGACAAACAGACCTAAAATCGCTCATTGCATACTCTTCAATCAGCCACA
-TAGCCCTCGTAGTAACAGCCATTCTCATCCAAACCCCCTGAAGCTTCACCGGCGCAGTCA
-TTCTCATAATCGCCCACGGACTCACATCCTCATTACTATTCTGCCTAGCAAACTCAAACT
-ACGAACGCACTCACAGTCGCATCATAATCCTCTCTCAAGGACTTCAAACTCTACTCCCAC
-TAATAGCTTTTTGATGACTTCTAGCAAGCCTCGCTAACCTCGCCTTACCCCCCACTATTA
-ACCTACTGGGAGAACTCTCTGTGCTAGTAACCACGTTCTCCTGATCAAATATCACTCTCC
-TACTTACAGGACTCAACATACTAGTCACAGCCCTATACTCCCTCTACATATTTACCACAA
-CACAATGGGGCTCACTCACCCACCACATTAACAACATAAAACCCTCATTCACACGAGAAA
-ACACCCTCATGTTCATACACCTATCCCCCATTCTCCTCCTATCCCTCAACCCCGACATCA
-TTACCGGGTTTTCCTCTTGTAAATATAGTTTAACCAAAACATCAGATTGTGAATCTGACA
-ACAGAGGCTTACGACCCCTTATTTACCGAGAAAGCTCACAAGAACTGCTAACTCATGCCC
-CCATGTCTAACAACATGGCTTTCTCAACTTTTAAAGGATAACAGCTATCCATTGGTCTTA
-GGCCCCAAAAATTTTGGTGCAACTCCAAATAAAAGTAATAACCATGCACACTACTATAAC
-CACCCTAACCCTGACTTCCCTAATTCCCCCCATCCTTACCACCCTCGTTAACCCTAACAA
-AAAAAACTCATACCCCCATTATGTAAAATCCATTGTCGCATCCACCTTTATTATCAGTCT
-CTTCCCCACAACAATATTCATGTGCCTAGACCAAGAAGTTATTATCTCGAACTGACACTG
-AGCCACAACCCAAACAACCCAGCTCTCCCTAAGCTTCAAACTAGACTACTTCTCCATAAT
-ATTCATCCCTGTAGCATTGTTCGTTACATGGTCCATCATAGAATTCTCACTGTGATATAT
-AAACTCAGACCCAAACATTAATCAGTTCTTCAAATATCTACTCATTTTCCTAATTACCAT
-ACTAATCTTAGTTACCGCTAACAACCTATTCCAACTGTTCATCGGCTGAGAGGGCGTAGG
-AATTATATCCTTCTTGCTCATCAGTTGATGATACGCCCGAGCAGATGCCAACACAGCAGC
-CATTCAAGCAGTCCTATACAACCGTATCGGCGATATCGGTTTCATCCTCGCCTTAGCATG
-ATTTATCCTACACTCCAACTCATGAGACCCACAACAAATAGCCCTTCTAAACGCTAATCC
-AAGCCTCACCCCACTACTAGGCCTCCTCCTAGCAGCAGCAGGCAAATCAGCCCAATTAGG
-TCTCCACCCCTGACTCCCCTCAGCCATAGAAGGCCCCACCCCAGTCTCAGCCCTACTCCA
-CTCAAGCACTATAGTTGTAGCAGGAATCTTCTTACTCATCCGCTTCCACCCCCTAGCAGA
-AAATAGCCCACTAATCCAAACTCTAACACTATGCTTAGGCGCTATCACCACTCTGTTCGC
-AGCAGTCTGCGCCCTTACACAAAATGACATCAAAAAAATCGTAGCCTTCTCCACTTCAAG
-TCAACTAGGACTCATAATAGTTACAATCGGCATCAACCAACCACACCTAGCATTCCTGCA
-CATCTGTACCCACGCCTTCTTCAAAGCCATACTATTTATGTGCTCCGGGTCCATCATCCA
-CAACCTTAACAATGAACAAGATATTCGAAAAATAGGAGGACTACTCAAAACCATACCTCT
-CACTTCAACCTCCCTCACCATTGGCAGCCTAGCATTAGCAGGAATACCTTTCCTCACAGG
-TTTCTACTCCAAAGACCACATCATCGAAACCGCAAACATATCATACACAAACGCCTGAGC
-CCTATCTATTACTCTCATCGCTACCTCCCTGACAAGCGCCTATAGCACTCGAATAATTCT
-TCTCACCCTAACAGGTCAACCTCGCTTCCCCACCCTTACTAACATTAACGAAAATAACCC
-CACCCTACTAAACCCCATTAAACGCCTGGCAGCCGGAAGCCTATTCGCAGGATTTCTCAT
-TACTAACAACATTTCCCCCGCATCCCCCTTCCAAACAACAATCCCCCTCTACCTAAAACT
-CACAGCCCTCGCTGTCACTTTCCTAGGACTTCTAACAGCCCTAGACCTCAACTACCTAAC
-CAACAAACTTAAAATAAAATCCCCACTATGCACATTTTATTTCTCCAACATACTCGGATT
-CTACCCTAGCATCACACACCGCACAATCCCCTATCTAGGCCTTCTTACGAGCCAAAACCT
-GCCCCTACTCCTCCTAGACCTAACCTGACTAGAAAAGCTATTACCTAAAACAATTTCACA
-GCACCAAATCTCCACCTCCATCATCACCTCAACCCAAAAAGGCATAATTAAACTTTACTT
-CCTCTCTTTCTTCTTCCCACTCATCCTAACCCTACTCCTAATCACATAACCTATTCCCCC
-GAGCAATCTCAATTACAATATATACACCAACAAACAATGTTCAACCAGTAACCACTACTA
-ATCAACGCCCATAATCATACAAAGCCCCCGCACCAATAGGATCCTCCCGAATCAACCCTG
-ACCCCTCTCCTTCATAAATTATTCAGCTTCCTACACTATTAAAGTTTACCACAACCACCA
-CCCCATCATACTCTTTCACCCACAGCACCAATCCTACCTCCATCGCTAACCCCACTAAAA
-CACTCACCAAGACCTCAACCCCTGACCCCCATGCCTCAGGATACTCCTCAATAGCCATCG
-CTGTAGTATATCCAAAGACAACCATCATTCCCCCTAAATAAATTAAAAAAACTATTAAAC
-CCATATAACCTCCCCCAAAATTCAGAATAATAACACACCCGACCACACCGCTAACAATCA
-GTACTAAACCCCCATAAATAGGAGAAGGCTTAGAAGAAAACCCCACAAACCCCATTACTA
-AACCCACACTCAACAGAAACAAAGCATACATCATTATTCTCGCACGGACTACAACCACGA
-CCAATGATATGAAAAACCATCGTTGTATTTCAACTACAAGAACACCAATGACCCCAATAC
-GCAAAATTAACCCCCTAATAAAATTAATTAACCACTCATTCATCGACCTCCCCACCCCAT
-CCAACATCTCCGCATGATGAAACTTCGGCTCACTCCTTGGCGCCTGCCTGATCCTCCAAA
-TCACCACAGGACTATTCCTAGCCATACACTACTCACCAGACGCCTCAACCGCCTTTTCAT
-CAATCGCCCACATCACTCGAGACGTAAATTATGGCTGAATCATCCGCTACCTTCACGCCA
-ATGGCGCCTCAATATTCTTTATCTGCCTCTTCCTACACATCGGGCGAGGCCTATATTACG
-GATCATTTCTCTACTCAGAAACCTGAAACATCGGCATTATCCTCCTGCTTGCAACTATAG
-CAACAGCCTTCATAGGCTATGTCCTCCCGTGAGGCCAAATATCATTCTGAGGGGCCACAG
-TAATTACAAACTTACTATCCGCCATCCCATACATTGGGACAGACCTAGTTCAATGAATCT
-GAGGAGGCTACTCAGTAGACAGTCCCACCCTCACACGATTCTTTACCTTTCACTTCATCT
-TACCCTTCATTATTGCAGCCCTAGCAGCACTCCACCTCCTATTCTTGCACGAAACGGGAT
-CAAACAACCCCCTAGGAATCACCTCCCATTCCGATAAAATCACCTTCCACCCTTACTACA
-CAATCAAAGACGCCCTCGGCTTACTTCTCTTCCTTCTCTCCTTAATGACATTAACACTAT
-TCTCACCAGACCTCCTAGGCGACCCAGACAATTATACCCTAGCCAACCCCTTAAACACCC
-CTCCCCACATCAAGCCCGAATGATATTTCCTATTCGCCTACACAATTCTCCGATCCGTCC
-CTAACAAACTAGGAGGCGTCCTTGCCCTATTACTATCCATCCTCATCCTAGCAATAATCC
-CCATCCTCCATATATCCAAACAACAAAGCATAATATTTCGCCCACTAAGCCAATCACTTT
-ATTGACTCCTAGCCGCAGACCTCCTCATTCTAACCTGAATCGGAGGACAACCAGTAAGCT
-ACCCTTTTACCATCATTGGACAAGTAGCATCCGTACTATACTTCACAACAATCCTAATCC
-TAATACCAACTATCTCCCTAATTGAAAACAAAATACTCAAATGGGCCTGTCCTTGTAGTA
-TAAACTAATACACCAGTCTTGTAAACCGGAGACGAAAACCTTTTTCCAAGGACAAATCAG
-AGAAAAAGTCTTTAACTCCACCATTAGCACCCAAAGCTAAGATTCTAATTTAAACTATTC
-TCTGTTCTTTCATGGGGAAGCAGATTTGGGTACCACCCAAGTATTGACTCACCCATCAAC
-AACCGCTATGTATTTCGTACATTACTGCCAGCCACCATGAATATTGTACGGTACCATAAA
-TACTTGACCACCTGTAGTACATAAAAACCCAACCCACATCAAACCCCCCCCCCCCATGCT
-TACAAGCAAGTACAGCAATCAACCTTCAACTATCACACATCAACTGCAACTCCAAAGCCA
-CCCCTCACCCACTAGGATACCAACAAACCTACCCACCCTTAACAGTACATAGTACATAAA
-GTCATTTACCGTACATAGCACATTACAGTCAAATCCCTTCTCGTCCCCATGGATGACCCC
-CCTCAGATAGGGGTCCCTTGACCACCATCCTCCGTGAAATCAATATCCCGCACAAGAGTG
-CTACTCTCCTCGCTCCGGGCCCATAACACTTGGGGGTAGCTAAAGTGAACTGTATCCGAC
-ATCTGGTTCCTACTTCAGGGCCATAAAGCCTAAATAGCCCACACGTTCCCCTTAAATAAG
-ACATCACGATG
->chr20
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
-NNNNNNNNNNNNNNNNNNNNGATCCAgaggtggaagaggaaggaagcttggaaccctata
-gagttgctgagtgccaggaccagatcctggccctaaacaggtggtaaggaaggagagagt
-gaaggaactgccaggtgacacactcccaccatggacctctgggatcctagctttaagaga
-tcccatcacccacatgaacgtttgaattgacagggggagctgcctggagagtaggcagat
-gcagagctcaagcctgtgcagagcccaggttttgtgagtgggacagttgcagcaaaacac
-aaccataggtgcccatccaccaaggcaggctctccatcttgctcagagtggctctagccc
-ttgctgactgctgggcagggagagagcagagctaacttcctcatgggacctgggtgtgtc
-tgatctgtgcacaccactatccaaccgatcccgaggctccaccctggccactcttgtgtg
-cacacagcacagcctctactgctacacctgagtactttgccagtggcctggaagcacttt
-gtcccccctggcacaaatggtgctggaccacgaggggccagagaacaaagccttgggcgt
-ggtcccaactcccaaatgtttgaacacacaagttggaatattgggctgagatctgtggcc
-agggcctgagtaggggagaagctcccactctcagaacactgagaaaagtgaggcatgggt
-ttctgggctggtacaggagctcgatgtgcttctctctacaagactggtgagggaaaggtg
-taacctgtttgtcagccacaacatcttcctaagggagccttgtgtccgggaaaaactgac
-agaccagtgatctgggtgcagaaggcttgagacaaaactagctggttgggccagctatgg
-ggcaaatgctggaaagaaacctggtcagggagcctgagctgagtggtccccacagtcatc
-tgcttggcaagaaaccctaggtcgcaggtgctagaccagctgcacacccacagcaacact
-gccatgcccaggatcctctgcccttgatcctgaatcaacagaccacttgcagatatactt
-cacagcccacgctgactctgccaagcacagacaaccactgggccccaggggagctgcagg
-tctcctggtcacctaatcttttttttttttatactttaagttttggggtacatgtgcaca
-acgtgcaggttacatatgtatacatgtgccatgttcatgtgctgcacccattaactcgtc
-atttaacattaggtatatctcctaatgctatccctcccccctccccccaccccacaacag
-gccctggtgccatggaatactatgcagccataaaaaatgatgagttcatgccctttgcag
-ggacatggatgaagctggaaaccatcattctcagcaaactatcaaactatcacaaggaca
-aaaaaccaaacactgcatgttttcactcataggtgggaattgaataatgagaacacatgg
-acacaggaaggggaacatcacacatcgggacctaatcttaagctaagtgtggctaagagc
-ctatctgctggcctttactattaagcactgcccactggattgcagcctgaattacaccgc
-caaacaaatactgtttcagcatacattaccagtgaaacccaatgcaggaacatagtcaaa
-aataaacacctggcatagagacttggccctctgaaaacacccagaaaaaagccagctata
-ttcaacatacatcactgtcaaaatatcaaggaaaatgaagaagaataaaacaaaaagtca
-aaaccaaatgataggaacttcaaaaagataaagtaacaccagctgtcttagatgagaaag
-aatcagcacacattcttgcaattcaaaaagtcagaatgtctccttacctccaaacaatca
-tactagctctcatcagattgaaatggctgaaatgacagacatagaattcatgatctggaa
-ggtaaggaagctcaagaacattcaggagaaagttgaaacccagtccaaggaagccagtaa
-agcaatccaagagtacagagataacatagccattttaagaaagaaccaaaagaaacttct
-gcaattgacaaattcattataggaattttgtaatacattcagaagcattaacaacagaat
-agatcaagttgaggaaagaatctcagagctcaaagatcagtcctttgaatcaacacagtc
-agacaaaactaaagaaaaaaatttaaaaataaaacctctaaaaaaatatggaattatgta
-aagataccaaacttacaacttatgggcattcctgaaagaggagaaagaataagtaacttg
-gaaaacatatttgaggatagtccatgaaaatttccccaatctccctagagaggctgacat
-gcaaattcaagaaatgcaaataacccctgtgagataactacaagataactatccccaaga
-cacatagtcataagattctccaaggtcaacgtgaaagaaaaaaatcttaagggcagctag
-agaaaagcctgaggtcacttatgaagggaagctcatcagactaacagcagacttctcagc
-agaaaccttacaaaccaagcaagattaggggcctatttttagcatccttaaagaaaagaa
-atttcagtgaagaattccatatcctgcaaaactaagcttcataaaagaaggagaaatagg
-ctgggcatggtggctcacacctgtaataccagcattttgggaggctcaggcaggaggatt
-gcttgagctcaagagtttgagaccagcctgggcaacatggcaaaaccctgtctcttctaa
-aaatacaaaaattacctgggcAAGACTCCATCACAAACAAACTAACAAACCAAAActatc
-aggtactatgctcactacctgggtgacaaaatcatttttacaccaaacccagtgacaagc
-aatttacccatgtaacaaacctgcatgtgtatcccctgaacctaaaataaaagttaaaaa
-aaaaagaaCTTTCATCAACatttcttgcagtgaaggtatgttagtgatgaacattctctg
-cttttattgcctgaaaatatctttattttgtattcatatttgacatatattctcactggg
-cataaaaattctaaattacaagtttttccccttttttgtattaaaaatttcattccaata
-tcttTCATATTGCCTTATTTGTAATGATGCCTTCTATCCTTCTTATCTTTGTTCCATTTA
-TAAGAAGTGTTCCCCAACCCCAGACTGATTAAAACCATTTTTTTAATTAAAAAAGCAAAA
-GAAAGAAACATTTTTATCTGAAGCTGTCTCAGACTCAGACACCACCCAATCTTCAGATTT
-CAAATAGCTTATACTCAAACATTTGGTAATATCAGCCCCTTAATGGTCTTCCTGGAGGGC
-AGATGCATTCTAGAGATGAGAACACGATCATGATTACGAATGCTACCACCACTACGAACG
-CACAAAAGTCACTGGTGTGATCCTTTCTCAGAACACTGTGGTAACTTCTGGACATTCTCT
-GCTGTTATCATTGCTTCTTCCTTCTGGGTTTTTTTCCCCCTTATATGGGCAGATAATTTT
-CTCCATTGGAATGAAAAAGTCTTGCTTCATGCTCTTtaactgtgtgaccttgggcgtatt
-actttactttggggcaaaccattttccttcttgaggaccaaatgtgctcttttataaaac
-gagcagttagaattagattgtctctctggacacggcttatgttgacaacctggatcacAT
-TAGAGGATCAcactgagacctttatgtcggcctcagttcctccatctgtaaagtagaggt
-tgggcttagattatAGATGATAAAGACACCAACTTTCctggaaaggattctggaaaggat
-tctgAACTTAGGCTCAGCCTCAGTAAGAAGGAGTTCTGTGATTAAACAGGGATGCCCACA
-CATCAGCAACAGAAATGGGCAGGTCAACCATGTATGCTGTGCCTCAGTGAAGATTTTATG
-CTATGCTGTGCATTTGATATCCATTCTCTATATTTGATATCCAATCTAAGATTATCTAGA
-AGGTCCTTTCCAAGACACTGATGAGATACATCTGTATAAATATATAACTCAGGATGAAAG
-CAACTTTTAACATTTAGCGTGTGCCTCTGCCTCTGATCTGATTACAGCCCACAGAGAAAT
-ATAAACAATACACAATACAGGCTAATGAAGAAGGGTGATAAGAtttttttttttttttga
-gacggaatttcactcttgtcacccaggctggagtgcaatggtgcaatcttggctcactgc
-aaccttcgcctcccggttcaagcgattctcctgcctcagcctcctgagtagatgggattg
-gaggtgcccaccaccacgcccggctaatttttgtattttttagtagagacagggtttcac
-catgttgtccacgctggtctcgaactcctgacctcaggtgatccgccagcctcagcctcc
-caaagtgctaggattacaggtgtgagccactgcaaccggccAAGGGTGATAAGattttaa
-aaatttatttaaaataCAGAAATTTCAAAAAGAGAGAAGTGCAGTGATAGCAAAATTGAT
-GCAAACTGTGCAAGCATGAAATCTATTTTATAGCTGAATCTACTTTTCTTGGTCCCAAGA
-TTCTATTTCCATTGGTTTTCAAATAGTTAATTCTATTGTTTTTTCAGGGAGATTACTAAA
-ATCACTAATAATTATTTTCCTACTGACACAAAATCTAAAAAGCACCATATAGACCTTCTC
-TCTCCATCTCCCCTTATCCTTATGTCACCTTACCCTACCCCAATACTCCAATGGCAGAGT
-ATCTACCCATGGCAGAGTAGAGAATATGTACACTAACAAAACCAGATGCACAGAGGTGGG
-GTATCCATCTCTGACTTGGCTGAGCTAGTCTAAGGAAGGAAGGCTCTGTGGCCATTGTCC
-TTGGAAGTCATTCTCACAGGTTGGTGGTATTCTCAAGTAGGTGGTGCTTGAGTGGCCCAA
-GAGCACCCACATGCTGCTATGCATTTTTCTGACAACCTCTTTATGATCTCTGACTTTGGC
-AGATCATCTTGCATCTCTCAATTGGAGAGTCACTTTTCTTATCTCCACAGAAAATTCTTA
-ATCAAGCTCCTGGTTTTCCTTTATAGCTTCTACTTTTTAAACTCACTTCTCCAACTTCAC
-CGCTACATCTCTGACAGATGAGAACATTAGAGATTCCCTGTTTTTCAAAAACAAAACAAA
-ACTCAGCAAAACTATAAATATACTAAGGGTAAGTCTGTATTATCTCCTGCCAAAATACAC
-CACCCTGCATTTTTTTAAATttttatcttttgtaggtacatagtaggtgtctatatttgt
-ggggtacatgagatgttttgatacaagcatgcaatgcataataaccacatcatggaaaat
-ggggtatccatcccctcaagcatttatcctttgtgttacaaattatctaattatacttta
-ttattttaaaatgtacaattaaattatttttgactatagtcacctcgttatgctattaaa
-taccaggtcttattcattctttctaactattttttgtacccagtaaccatcctcaccttc
-ccacacacgcccaccacctttcccagcctctgataaccatccttctactctctatctccc
-ttgaattcagtagttttgatttttagatttcacaaataagtgagaacatgcaatatttgt
-ctttatgttcctggcttatttcacttagcataatggcctccagttccatccatgttattg
-caaatgacagcatctctttcttttttatggctgaataatactccactgtgtataagttcc
-acattttctttatccactcatttgttgattgacacttacgttgcttctaaatcttggcta
-ttgtgaatagtgctgcaacaagcacaggtgtgcagatatctattcaatattcttatttcc
-ttttggaggggagtgtgtacctagcagtgggattgctggattgtatggtaactctatttt
-cagtttttttaggaacctccaaactgttctccatagtggttgtactatcttacgttcaca
-ccagtagcatacaagggtttccctttctccaaatccttgccagcatttgctattgcctgt
-cttttggataaaagccattttaactggagtgagatgatattccattgtagcttgattttc
-atttctctgatgatcagtgattttgagcaccttttcatctgcctgtttgccatttgtatg
-tcttcttttgagaatatctattcagatactttgcccatttttaagttggatcattagatt
-tttttcctatagaattgtttgagctctttgtatttcctgttattaatcccttgtcagaag
-ggtcgtttgcaaatattttctcccattctgtgggttgtcttttcactttgttgattgtgt
-gctttgctgtgcagaagctttttaacttgatgtgatcccatttgtccatttttgcttcga
-ttgcctttgtttgtgggttgctactcaagaaatttttgtccaaacatcctggagagattc
-cccagtttcttatagtagtttcatagtttgagatcttagctttaagtctttaatccattt
-gacttaatgttttgtatatggtgaaagacaggggtctagtttcattattctgcatatgga
-tatccagttttcccagcaccattttttaaagagactgtttttcccccaaagtatgttctt
-ggcaactttgtcaaaaatgagtttactgtagatgtgtggacttgtttctgtgttctctat
-tcttttccattgctctatgtgtctgtttttatactagtaccatgctgttttggttactat
-agctttgtagtataatttgaagtgaggtaatgtgattcctctagttttgttctttttgct
-taggatggctttggccatcctgcatttttAAcccttttcccattttcacccagaatactc
-gctggtggcacttgcagctgcagggtttaccctgagataactttgccacaaaatatctcg
-cctttattattattttcacatcgttctaatatatcgactttgaaaacacaaatcatcatt
-ctatttatagcatcttgttgttagcagtggtatttccatttacaaaatatagaaattctt
-gatcgctgaaaatgtcaaattctagaaagcatagcattcccatgttaacattgttctcaa
-acagttttgggccaaagagtcatttaatgaatccggttttttccaaaatagatgattctg
-attattcagatgattctgatgttagttctgtttaaaaataattccaagaacagtttgtat
-attttattttcacactgaacatcagtcagcctccagagcatgttaatgtaaaattaaatg
-aacatgggcagtgagctgcagttttttttctaaacagTGCAGCTGTTTAGAAAATTTTTT
-TAAAATTTTCCTGATTTCCTTGGTATTAAACATATGTGGGAGAAATACAGCTCAGCAAAC
-TCTTCCAGGAGATAAAATGCTGATCACTCCTACTGGGCAATTTCACAAATGTCTCCTATA
-TTTTTCTCCTTTGGTAGTGGGGATGGGGGGCATAATGTTACATTGGGCctctctcctctc
-tctctttctctctccctctcCTTTTAAAATGTTTCCTCTCTCTCAATATTTCATTTCTTA
-TTTGTATTTCTGAATGAGGGAAAAGAGTTGATGGGACAGCGGAACGGGAAAAAGAAGAGC
-ACCAATAAAACCTGTTTTCCTGTTTTCACTATTTTCATTCCAAATTCCTTCTGTCTCATA
-ATTGATGGAATCTTATGAACTTATTAGTTAAAAAGTGTCTTTCTTGTTTCACAGGAATTC
-ATATCGGGGTGATCACTCAGAAGAAAAGGTGAATACCGGATGTTGTAAGCTATTGAACTG
-CCACAAGTGATATCTTTACACACCATTCTGCTGTCATTGGGTATGTACAAAGTGCTGCAT
-ACAGACAGAGGAGAAGGACAATTGAGCCCATCTAAAGTTAACAAAAACTTCCTCTTGGGG
-CTGTTTCTTTCCATCAGACCTTACAGTTCTACGGGATAATAGCTTATCTCATAAGGCCTC
-AGCTTTCTTTAATAATTTCTAGAAGCAGACGTTATTGTGTCATGCACACTCAGTGTTGCA
-AATTAATGGTCTGGTGATCTGGGTGGCATGGCATTTTCCCCTTCTCTGGTTCATCACCCA
-TGATAGACCAGTAAAGGTGACCACTTAAATTCCTTGCTGTGCAGTGTTCTGTATTCCTCA
-GGACACAGAGCTTCCTCTCTCCCAGGAGCCATGAATATCCTGATGCTGACCTTCATTATC
-TGTGGGTTGCTAACTCGGGTGACCAAAGGTAATGGAACCCTATAAAGCAGAGATGATGAC
-TAGGATGAGTTGTTGCCCTTGGGCTCCCCTGGTATCATGATGGGAAGAGAGGGAATCTGC
-AGGAAAAATCTGGGCCAACAAAGAGCAGCAGAATGCTCTTATTTTGGCAGCTCCATGCCC
-CTAGTCTCTGAGAATCTTTCTGTTAGGGGCATCTAGCAAGCTGGGATGTCCTCTGAGGCA
-TTTCTCCAAAGACAAGAATTTCCTTAATGCTCTGAGCCACCCTATCTGTCTCTCTACATA
-ACTATCCAATGTTAGTTCAGCCTCACTTCACTTCCATTTCGATTATTCTGTTGTATCTAT
-TTCATTGTTGTGTCCTATTAGTTCTCCTACCATCTTGAATTCTTCTTTGCCCGGAGGGTA
-CCTTCAGAGGGAGGCCCTCACTTTCATGTTCTTAGATATGGTGAACAAGTCCATTGACAG
-TTTGTAGATTCTGTAGCACTATCATATGGAAGAGACAATATATATGTTTGGGGTAGAAGT
-GGAAATAAGTGGAGTGAAGACAGGATAGACAGACTAGTGACCAATGGGGAGCTTCTAATT
-TTAGATGAATAGGAACAGTCTGTTTCCACTATTTAATAATGCTACTTTTGAAAATTGTTA
-ACTTTTTATTAAAAAATAATACTTGCAATTGACTTATGTATCAAGCAATCGATGGATTTA
-TAGGGTTTAAGGAAAAGAAAAATGTTTGTCTGTCCAAGAATACCAGTTCTTCAGTCTTCC
-CCTTCAGAATCAATCAATGTTACCAATTTCTTATATATCCTAGCAAATACAAATATATTT
-ATATTTGCATGTGTATACCTTTTAGATTTTTAAAAAATGCAATTGCAAATGCACCATGTG
-AATTGTTCTGCAATGTACTAGCAATATATTAGAGACATCTTATCCATACATAAACCTAGT
-TCATTATTTTTAATCGATAAGTAAAACTTTGAGGAGGAGCAGATGAATTGCCTCACATTA
-ATTACTCCGCTACTGATGAAAAATAGGTCTTTAATTATCAAAAACAATTCAGCAAGAAAA
-ATTTGTAAACAAATGTATGTCTTTTCATTTATGACTGGACACGTGGacacacacacacac
-acacacacacacacagtcaaaccacctaccagaaaagctgaactattcttctctcctatc
-accagttgcaagagtgtcagcttcccacaccctcatcagtcctttttgttttttctacta
-cattcagttttctactacattcagttttacagtctaatatgtgaaaatgatgtcctgatg
-tttgaattcatgacactttagttataaatgagtttgaacatccagtccattagatttcta
-aactttcttAATTATCTTTATATACTAAGAAATTTGGCTTTTGTTAAATTTGGAGGTGTT
-ATATGTTGCCTAGAAAGATGCTATTCATGTCTATTAAATGGTTATAACTGTGCCTATGAT
-CTGTTATGTCTTGATTCACATGTTGATGTAATGTGAGTTACAGAATTAATATCTACATTC
-ATTTCTGATTATAAACTGCTGTATTTGTTGAAAATTTGGAAATTTTGAAATTGTAAAGAA
-GTAAAAAAATTGTAAAGAAGTTAAAAGAGACAAAATATTTTTGATCTATTGTTCTTCCTC
-AGTTTTCTTATTTGAATAAAAATGTATAGCATACTTATAAATTTTCTATTATACTATTAG
-TATTTTCCCATTTACTATTTTCAAAAACTGTATTTCCAATGACTGTATAAATTTTATAGA
-ATGGATACTGTTTAAATTACTTAGCCAAATTGTTTTTGCATAAATAAGTGCATTTACATT
-TTATAGACAAGGATGGCTAGTATAACCTTTCTTATACATAAATCATTCAGCATAAAATTC
-CTGGAGATGTACTTTTTTCTGTCTGCTTCATGTGTTATCAATTTTTGAATACTTGCCAAG
-TCCtaaaaatgaaatattatatataaatatttaatttttatttatGTCTGTGAGTAATGG
-GGAAGTCGAACTTCAAATACATGCTTAATGTATATTTAACTTTTCTACAAATTGTCTATG
-TCTCTCTTTCTCTTTTATTTTGGAGAGGTAGTTTTCATTTCTTTTGATTTAGAGATTTTC
-ATTTTTGTGTTCTCTTATAGGTTTTGTTTTGAAATTTAGCTATTTAGTCTCTCTGGGCTT
-TATATTATGTGTTTTCAAGTGAGATAGCACCTGATGGCTTGTGAAGCAACTTTTTACCAA
-GCCAAGCTATCAGTGGACTGGTATCCATAGATATATtttaagttgatgctagctgattat
-atatctggtatgttttagaaagaactccacacatgggataatgttttggctagatggctc
-cCCTACTTAGAAACATACAATTGCTAGTCATATTTCTAATTTTAGGATTTCGAGATACTG
-GTGATGAAGATCACATGTCCTAACAACATAATAGTTCCAGACTGAAGTTCTTTGAAAAAA
-ATGACTGTTGTCACTTTAGAAAAAAAAAATTATGAATTATTCCcaattgccatcattcta
-ctgctaaaaccaaattcttggaattatctatgatttttctatatcctatgacactcatat
-ctatcaggaagtctattacatctgcctgcaaattatatccagaatgcaattattctcgcc
-acctccattgctgccactctgattctagtcaccatcatctctcacctgtgttattgccat
-agcttcctcatgagatctgtccttctgctcttccctgccaccatcttgtgaagacacata
-gtgcatgatccgcttacactggaagtcagatcatgtacttttgctcaaaactctgctatg
-gccccctctatactcagagcggtaacaagagtccatacagtggctcacctggccctgcag
-gatctggcccttatgacctctctcacctcatctcctactattatagtccttgttcactcc
-actacagccacacaagccccagtgctcttccccaaacatatcagacttactcaacccata
-gagctttgtttgtttcctctgcctagaatgtacttgcctcagatactggtgtgactaatt
-cctttacctccttcaagctgtttaatcatcaccttgttacacaggcttgtgcaactcctg
-tttatgaatcttctattacccttaaatctattctcccttctttctgcaaaccatttgtca
-ccttttcatctacaaaataatgtacttttttattAAGGTAAAATATACATTTAAAAATTA
-CCATCCTTACCATGTTTTTACCATatttttatgtatacctgatggctgtttgtatgtctt
-ctgttgagaaatgtctattcaaatcttttgcctgttttaaaatcagattatttgtttttg
-tttgctatggagttttttgagctccttatattaatatactttttgttgttaattcctcgt
-cagatggatagcttgcaaatattttctcctactctgtgggctacatcttcactttgttga
-ttatttcctttgctgtgcacaagctttttagtttgatgtaatcctaattgcctatttttg
-ctttggttgcccgtgcttttgaggtcttacccaagaaatctttgccaagaccaacgtcct
-gaagtgtttccctaatgtttttttcaggtagttccatagtttcaggtcttagatttaagt
-ctgtaaAACCATACAGTCTAGCAGGGAGTGCatttactttttattatctgtctccctctg
-ctagaaagtcagctccatgtgatttttgtctgtttagttcacagatgtacctcaagggcc
-caggatagtgcctgtgccatagtaggggcccaaaactttgatgactgtgtgaCTATAGCC
-TAATTTAAGAATGGAGGGGATAATTTAAAAGCAGTAGGAAGGAATGTAAGTGAGAAACAA
-TTTTGAAGAATAATTGACAGAACAAGGCGATTCAAAGACAAAGGAGAAGAAGAGAGCCAA
-GATGACATATTTCAAGTATGGATAATGCTGGAGGAAAAAAATTAAGATATAAATCTTTGT
-AGATGTGAGGAACGAAGAAGCAAGGTTAGAGTCTGTCTTGCACAAAAGAAGTGGAAGGTC
-TAGACTTGAAACTTATAGAAAATTCCACGAAGTACAAAGTAAAATCGAGCCAGTAAAATA
-ACAAAGATAGAATAAATGACTCTAGAGGAGTGAAGGTAGAATAAATAATTGGTGAAGCTG
-GACTAGAGCCAACATTTCCCAGAGGATAAAATATAAACCAAATTATTGTGAGCCTAatat
-atacatacatacatacatctatatatgttttatatatatTATCACATTAAGTTCAAATAA
-GGTTGTTTAGAAAATTActtgctcttctgcacatataccaggcttcctcctccatagagc
-cttatctctagctgcttcctctgcctagaatacacttATCTAGGTACTCCTTGGGCAATT
-GTCTTGAGAAAGATGATCATGCCGTTTACTgcttgataaatgaacatacaatgcagcaca
-ctagtttccctttagatttatatcctcacccctcaaatgagtagtcacactgcttggaaa
-tcctactgcatttctcttgtaaatgaaccttccttcttttttttttttttttgagacaga
-gtctttctctgtcaccaggctggactgcagtggcccaatctcggctcattgcaaccgcca
-actccctggttcaagtgattctcctgcctcagcctcccgagtagctgggatcacaggcat
-gtgccaccacatccagctaatttttatatttttagtagagacaggttttcaccaggttgg
-ccaggatggtctcgatctcctgaccctgtgatccaccctcctcggcttcccaaagtgctg
-ggattacaggtttgtaccaccacacccagccatcttccctcttttttagacaactatttt
-gtcctgacctttatttgtcttttattttcctgctcctctcctctacatggctctccccct
-cagtttatcccatgccccatttatttaaacaattcaaataggaagttttcactcatttcc
-tctgtcccctttgccataaatggagaaacgtgtcttctccatctaaagatcagtctgctc
-tgtgtgaatttgtgactatgcccttctgtcatctcatcaccctattctatattaatctct
-ccttttctgcttttttttttttttttttgagatggagtcttgctcttgttgcccaggctg
-gaatgcagtggcacaatcttggcttactgcaaccttcgcctcccaggttcaagtgattct
-cctgcctcagcatcctgagtagctgggactacaggtgctcgccaccatgcccagctaatt
-tttgtattttttagtagagacagggtttcaccatggccaggctggtctcgaactcctgaa
-ctcaggtgatctgcccgcctcgatctcccaaagtgctgggattacatgtgtgagccactg
-cgcccagactgcttgtctcttttctcattgcttgcaagcaccatttggtatttctcgttc
-ttcaaaacaaacctgaaagctttcccttaaccttacattgctctctaacaagttatttat
-ttctctgcttttctttggatctaaacttcttaagagtttcatctacaggtcctgcattca
-cttctctctcattcacattttgaccaactgcaatttggtttcttttttcataccactcgg
-aagctgctctcctcagtatgaagttaccttcatactactaaaagcatggacattttcctg
-ccttcatcatttttttttaacctctcagcagtatttgactacaaaatgaccactctgtcc
-tttaagaaacagtctcctctcctgCTTAATGTAGTCACATCTGATACAACTTTCCCCATA
-ACCTTTTATGCATTTTCTGTTTTCATGCATATCAGCCCAACTTGCAATTGTCAGTATCTC
-CAGTCTTTCAACAACTGCTTGTGAAATACCCCTGTACAGGGCAATCCAGAAATGCCAGAA
-AATTATCAGCTGTCTCTGGATCATCTGTCAACTATGGGGGAAGCTGGATAAATAGTCCAG
-GTCCTTTGAGCCTCATGTAGAATAACTTTGAGGCTTGGTAATATTTTTTTTTTCCTGTGG
-TAATTCCCTTATTTGCAGTTCAAGGCTATTATGGGAAGAAAACATAAATGGATGTTAGTT
-CTTCAAGGTTTTTACTGTAACTGTGCACCCTTTCATTCTTCAAGGTTTTTCTGTAACACT
-GCACCTTCAGGACCTGATGCCCAATTAAACATTTTTTTAAGTTTTTTGGTTTTTTTTTAA
-TAAAAACTAAATGCTATTTTTTCttctacttttagttgatgtgtaataattgttcatatt
-tagaagatgcagagtgatattttgatacatgtatacaatgtgtaatgatcaaatcagggt
-aattagcatatctatcacctcaaacatttgtcatttttttatattgggaacattcagaat
-cgtctcttctagctatttgaaaatatacagtaaatgattgttaactaccgtcaccctaca
-gtgctatagaacagtggaccccttttggcaccagggaccagttttgtggaagacagtttt
-ttcgacgaggtgaaggtggtggtggggatggtttcaggatgaaactgttccacctcaggt
-catcaggcattagagtctcacaaggaacacacatcctagatccctcacatgcacagttca
-caatagggttcatgctcctatgagactctaatgccttggctgatctgacaagagatggag
-ctcaggtggtgatgcttgcacacctgctgttcaccttttgctgtgcagcctggttcctaa
-caggccatggaccagtacccattggctgcccaggggttggggacccctgctataggatgc
-tggaactttttcctcctatctaggtgtaattttctatctgttaaccaacctctctctatc
-ctcctttcccttcccagcctctagtaatcattattctacagtctacttctatgaactcaa
-cttttttagctcctgcttatgaatgaaaacatgtggtatttatctttttgtgtctatttc
-acataacggaatgtaacatgtcccccaggctcatccatgAGTCTGAGGCTTATTTGTAGC
-CTGGCTGCTGGGCTTCCCTGTGGGATTGTCCTCTGAGCAAACAGAACACAGCCATCCTGC
-TGGCCAGCAGTTGATAGATGATCTCATGATAATAACAGGTTATAACTCACCTTTTCTTGG
-ATTTCTTGCTTTCCTGATTTCTACATTTCTCCACTGATTTTTTTTAAGGAGGAATTGTCT
-CTCAACTAAACTATTATATTCAAATCTTTGCTGGAGCTCTGCTCTGCTGGGGGTCTGCTT
-TAAGACTCTAGAGTCTTattctcctgttttgatctgacttatcttattggtccttttaag
-tcgtttcctcttatctgatctcttatctcttaatattgaaactcactagaatttaattct
-agtcctctttttttctcatattattccaacccaccatggtttaccaatttctgtacttta
-aatgctatccataagcaatcacatttattgatttgcatatgtcgaaccaaccttgcattc
-caaggataaaggctacttgatcgtagtggataagctttttgatgtgctgctggattcagt
-ttgctactattttgttcaggatttttgcactgatgttcatcaaggatactggcctgaaat
-tttttttttcttgtgtctctgctaggttttggtctcaggatgatgctggcctcatagaat
-aagttaaagcggagtcctgccttctcaattttgggtgaatagtttcagtaggaatgatac
-cagctcttctttgtatatctggtagaattcagctgtgaatccatctggtcctgggctttt
-CATTTTCATCCTTTCTTTCTAGGTTTCGTATCAGTCTCAGTATGctctctctctctccgt
-ccctctctttttctacatttctccttttctcCATACAACTTCTTTGATGGCACATAGCAC
-AATTTTAATATACACTTTTTGTTCTCCTGTTTGTCTCTTACAATGGCTTTTTGTATTTGA
-CATCATATTAGTCTAGATGTCAGTCAGTGTAAATTTTTGAATGAATGAAAAGTTGTTATG
-TTGATGCCAGAGTTAAAAATTTGACCTATATTTTATTCTCTACAGGTAGCTTTGAACCCC
-AAAAATGTTGGAAGAATAATGTAGGACATTGCAGAAGACGATGTTTAGATACTGAAAGGT
-ACATACTTCTTTGTAGGAACAAGCTATCATGCTGCATTTCTATAATATCACATGAATATA
-CTCGACGACCAGCATTTCCTGTGATTCACCTAGAGGATATAACATTGGATTATAGTGATG
-TGGACTCTTTTACTGGTTCCCCAGTATCTATGTTGAATGATCTGATAACATTTGACACAA
-CTAAATTTGGAGAAACCATGACACCTGAGACCAATACTCCTGAGACTACTATGCCACCAT
-CTGAGGCCACTACTCCCGAGACTACTATGCCACCATCTGAGACTGCTACTTCCGAGACTA
-TGCCACCACCTTCTCAGACAGCTCTTACTCATAATTAATTAACATTTACTTCTGGTATGG
-AACAACTAGAAATACTGCTGGAAATAATATCCAAAGAGCTGATTCTACCAATCCAATTTC
-ACCAGGAAAATTCCATCAGGGATTGGATGACCATGGGGATGGACATAATTGCTACTACCA
-ACACAACAGCCAAGAGAGTTGCCTTACAATTAGAAATGTGTAGACAGAAATGTATAGAAG
-ATACAAGGATTCTCTTAATTGGACTTAAATTCTTTATCTGTCTTCCTCCGATGTACTCAA
-ATATATGAGCTAATTTTTGTCTTAAGTGAACATTTGTATATCTATGTATTTTTCCATGCC
-AAAAACAAAAACGAAGACCATTGTTTGGAGCTGCCTCTTATGACTAAGACAAGAATTTTT
-ACTTTAACAGTGCCTGGCCCACTACTATCGTATATAGGAGAACATATAAAAGCATATAGA
-AAGTTCCAGATGAATGTTCCCTTCTCTACCCTCCACCTTTTATTGTAAGTTCTGACCCTA
-AATACTTTTCTGTGTCATGACGTCAAATTTTGTTTAAGGTTCTAGCTGGTAACTAACAGA
-GTCAGAAGCTAATTCTTTCATTCAACACAAGCACTGATCTAACTGGATAGAGATAAAAGT
-GGGACTTGCCTTGAGAGTACATCATATTAAATTAAAAGCTGCATCTCAAATTCTACTTAT
-CTTTCCAATCTTCTTTCCACTTAGAATTCCAACTTCCAAGTATGGCAGCCTCATAACATG
-CCTCTTCAGGTCTCTGTGTTGTCCATGAATGTTAGTTGTGTGCAGTGTTTCTATGCTTTG
-TATGGCTGTACGCATGTGACTGCTGTTTGTATGGCAACAGGTGGGTCAGTAAGTGTCTTC
-TATGATACTACAGAGAAGCGGTTATTAACTATAAAGTTGATTAGGttttttttttttttt
-gagacagagtctagctctgtcgcccaagctggagtgcagtggcatgatctcggctcactg
-caagctctgcctcctgggttaacgccattctcctgcctcaggctcccgagtaactgggac
-tacaggcacccactaccacacctggctaattttttgtatttttagtagagaggggtttca
-ccatgttagccaggatggtctcgatctcctaacctcatgatccatccgccttggcctccc
-aaaatgctgggattacaggtgtgagctactgtgcccggctGATTAttattttttttaagt
-tccaggatagaagtgtagaacatgtaggtttgttacataggtatacatgtgccatgatgg
-tttgctgcacctatcaacgcatcatctaggttttaagtcccgcatgcattagctatttgt
-cttaatgctctgcctccccttccccacacaccctgactggcccccatgtgtcacgttccc
-ctccctgtgtccatgtgttcttattgttcaattcccacttatgagtgagaacacgtggtg
-tttggttttctgttcctgtgttagtttactgaagatgatggcttcgagcttcatccatgt
-ccctgcaaagagcatgatctcattcctttttatggctgcatagtattccatggtgtatat
-gtaccacattttctttatgcagtctatcattgatgggcatttgggttggttccatgtctt
-tgctattgtaaatagtgctgcagtaaacatacgtgtgcatgtgtctttataatagaatga
-tttatattcctttggatatatacccagtaatgggattgctgggtcaaatggtatttctgg
-ttctacatccttgaggaatcgccacactgtcttccacaatggttgaactaatttacattc
-ccaccaacagtgtaaaagtattcttatttctccacagccttgccagcatctattgtttct
-tgactttttaataattgccattctgactggcatgagatagtatctcattgtggttttgat
-ttgcatttctctaatgatcagtgatgttgagcttcctttcatacgtttgttggctgcata
-aatgtcttcttttgagaagtgtctgttcatatcctttgcccactttttgatgtttttttt
-ttcttgtaaatttaagttcttgtagattctggatattagacctttgttagctgggtagat
-tgcaaagcgttcctcccattctgtaggctgcatgttcaccctgatgatagttttttttgc
-tgtgcagaagctctttcatttaattagatcccatttgacaattttggcttttgttgcaat
-tgcttttggtattttcttcatgaagtctttgcccatgcctatgtcctaaatggtattgcc
-taggttttcttctagggtttttatggttttgggtattacatttaagtctttaatccatct
-tgagttaatttttgtataaggtgtaaagaaggggtcccgattcagttttctccatatggc
-tagccagttttctcagcaccatttattaaatatggatcaaattcacacataacactatta
-accttaaatgtaaatgggctaaatgccccaattaaaagacacagactggcaaattggata
-gagtcaagacccattggtgtgctgtattcaggagacccatcacacatgcaaagacacaca
-taggctcaaaataaagggatggaggaaaatttaccaagcagatagaaagaacaaaatagc
-aggggttgcaatcccagtctctgacaaaacagactttaaaccaacaaagatcaaaaaaga
-caagagcattacataacggtaaagtgatcaattcaacaactagagctaactatcctaata
-tatatgcacccaatacaggagcactcagattcataaaacaagttcttagaggcctacaaa
-gagacttagactcccacacaataatagttggagactttaacactcagtgtcaatattaga
-cagatcaatgagacagaaaattaacaaggatattgaggacttgaactcagctctggatca
-agtggacctaatagacatctacagaactctccaccccaaatcaacagaatgtacattcgt
-ctcagtgccacatgacacttattctaaaatcgaccacataattggaagtaaaacactcct
-caggaaatgcaaaagaactgaTTAGTTATTAATAAATTGGGCTGAGGCTTGGGCGCTACT
-GAAAGCCACAATATCAGATGCCAGAATGTCTCAAAATCAAAAAGGTTTTTTCCTCTAATT
-ATTTTTTATGTGATCCAAGCCAAGCTGCCAGTGACTATGGCTGTAGTTTGGATGTTGACC
-ATCAGACCACTGACCTTTCAGTAGACCTCATATTCTAATAGGTCTTAGACCACCAGTtag
-ggtgtccatcattcagatttgattgggactgaggggcttcccagaacatgggaattagag
-agctaaaatcaagaaaatccagagtaaattgggacaagttgatcaccctCACTTCAGTGT
-ACTTCTGTCTAGCAAGCTATTTTTCCATTTTTCATGGCTATACCTCATCACATAGGTCAT
-ACATTGGCTTTTCACAGAATCAGTCTAGGGTGCTCTTTTTCCATATTTTTGCCTCAACTG
-TCATTTCCTGAAACACACTCCTTGAGCATGCAGAACACCTTCCATTCTACTTTGTATTAT
-TTTCTTCCCATCATTTGAACTCTGAAATCATTTTGAGTATTTACTCTCTCTCTGATTTTT
-TTTACTAACTTATGGCCTAACACCCCTGCTATAATGTACATATAGTCCTCATCTCTTGgt
-cttgttgacctatgtgatccaaactgcaagaacagtgcgtcacacatgagaaatgctcaa
-taaaaatttgAGAACAAATTATTCAGGCAGTTATCTTAATATATATGAGAAGGTTATATA
-ATATAAAAcagtagtcttcaaactgcaatactggttacaaaaagatttttcaagctatac
-atattgatagtttaaaggaataaaatttcagaccctcaagttccaaatttcttatgatgt
-tttggagcattcttaacaggctcttcttttataactccaatttctcaattttccttctcc
-cactctgaaaagaaaacttacctctcacccaccctttatctgacaatcatggattgccct
-gagtgaacaaacctccagtggacaattgaaatactagtgctggTattcagaaagtgaata
-atcatagactttgaataaaaatcctttggaaataaaagtgtttttaatttttttgtttac
-aaaagcaatgatggggtgtcaatcaagttgatggttaatattaaatagatctttgaagat
-aaactttaataatagcctactatgaaattttttagcatatcacttggaagaggttaaaag
-aactgtgtaaacattagagtcttatgttcaaagagatttcacaataagctacaatgtatg
-tctatgttttgtcacagagaaatgtgatagaatgattaataaaagacttgcaaacacaaa
-aatatagtacattaggatcaaattttgcagagaagtttgaataaaaactaaagttttaaa
-aagaaaaaagatacaatgttcccaattgctaaaaaagagcttctttgcatatttattaaa
-tgaattattgtgattagcaaattgtcatgcattcatattccattggatgtatttagtatt
-tagttgttacatgtcaatatttgtaatatgctattagttatctttttatgattaaaattt
-aagatgaaatagtttatttcccaattttaaattgtattgggaaaatacacactttATTTT
-TATACCTAGCATAGACTTTTTGTTCCTTCTAATTGGAAAAAGGCTTTGCAATTTGCAATT
-GGTATATGTGTGACTTCTAGAAATGTGGTGTTCTttttttgttttttgtttttttgtttt
-ttttgagatggagtctcactctgtcgcccaggctggagtgcagtggcgccatctcggctc
-actgcaagctctgcctcccgggttcacgccattctcctgcctcagcctccctagcagctg
-ggactacaggagcacgccgccatgcccggctaatttttgtatttttagtagagacggggt
-ttcaccctgttagccaggatggtctagatctcctgacctcgtgatccgcccaccttggcc
-tcccaaagtgctgggattacaggtgtgagccaccgcgcccggccCAGGAATGCTCTTAAC
-CACTTCATCAAGCATCAAGGTTGGCACTGTCTAGATGTTGGTTTTGATTGCCAACCTACA
-AAAGAAAAGGGAAATTATAAAAGAGAAAATTAACAAGTGAGTACAGTTTCAAAATCTGTC
-CTGCAAATGTGTTTTAAACCAAAGAAATCATCTTTGGCATGGGCTATTTGCTTTATAGTC
-ATTCAGAATTGCTTGGTCTCTGTCTCCTGAAGACTGTGGCTAGGATTATTCCTGATGAAT
-GAGAAAGTTACCATAAATCAAAAATAAAATGAATAGAAAACTTAACAGTTGACTCTCAGA
-AGAAGGTATCTTCCCTCACTTTGCACTGGTtatatatatatatatacacacacatacata
-taATTGTATAATATGTATTAttttataaattgatttagaaggtacaagtgttgttttctt
-atatgcatatattacatagtggtgaagtctgggcttttagtttagccatcacccaaatag
-tgtacattgtacccattaagtaatttctcatttcttagcccccttctacccttccaagtt
-tccagtgtctattacccactccttatgtccatgtgtatacttagtttccacttgtgagaa
-catgtagtatttgactttctgtttctgagttatttcacttcagataatgAAAACATTCAC
-TTCAGATAATGAAAACACACTTTTCAAAATTCAAAGAGGTTTGAAAAGCTCATGGCCTAA
-TACCCCCACTATAAATTTTATTTTTAAACTGTTCATACTCCTAGAATGAACAGAGGCTTC
-AAACACTATCTGGTATAAACTGATGATGATTCTTCTACTACTGTGATCATTCTGTTTTTC
-TATGATTCCTGGATTTTCCTTTTCCATGAATGTGGGCTTTGCAGCATAACTTCTAGTTTG
-TTTATATCATTGCCCTTTAGGATCTCCTGTAGGCTCAGTAATCTATCACTTCCCTATATG
-GGACTGACCTCCAAATTACTGACTTTATATGTTCTCTCTCTCTCTCTCTCtgtgtgtgtg
-tgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtTTAGTATTTGCATTTTG
-CCACATTCTTATATAGTTTCCAGCTCAAGTCTGAAATTCTCTACCtctttatctatgctg
-tccatattaggtatatgatttgataagttagacatgtgacatatatttcccccattctct
-gggttgttttttcattatatcaatggtgtcttttgaagtagagcagtttttaattttgat
-gaagttctcttttttaaaaacacttttctttttggtgtcatatctaagaaatcattccct
-aatttaaggtcataaaggcttattcttgtgttttcttctaagggttttagctttcacatt
-tagctgtacgatcctttttaatttaatttttttgtatgatgtaaggtaggggtccaaatt
-cattcttttgcatgtggctctccagtttctccaacactatttgataaaaagactatttac
-ccactgaattgtctggacacccttatagaaaatcaattaataataaatgtGataatttgg
-gcagatctttggagagaaagcaccaagagtggatggagaggcaacactgacaccaaagct
-gaagagagaggaagctggaatctctgcatgaggtgcctgaacattagggctagttcctga
-ccctgagtggctcctggggaaggggtaagtaaggggactaaggaacatcccgcttttgcc
-atggacctctgggatcatagctacagggtaccccatgtccctcatggatttgtaggctag
-cagggagcaggcagagacagggcttcagccagtgtgaagcccaggagcttttgtgcatgg
-ggcagctctggcagcgcatgaccgcaggtgcccatccccaagggctccccatcttcttct
-gagaggctgtagccccagctgactgctggacctggagagagtggcgccagctttgccatg
-ggactggggtgcatctgttctgcaggctctcctgcctgccagcccctcccatggcccctg
-cctagccaccctgcaggagcatgagcacagcacagcctccaccactaagccggagtgctt
-tgctccacctgagtacattcccagtaacctgggagcacttcagatccctcagtgcagctg
-gagcttgaccccaagccacagatcatccccgtgccccagggctgcagcacacagcttggg
-agcatgcagctgagatctgtggctgacaggcaagtagaggagaggcccccaatatcagaa
-cataaagggggcaagatgtgtgggttcatgggccagcttgggagcaaggtgtgcctccct
-ctgcagggttggtctggaaagggtgtggcccatctccctgccatggcctctgcccaagga
-agccccacagcctggaacacctaacgaaacacagaaatgatgccagtgatcagggtgggg
-tccctaaaggcccaagagcagatctggtgaggagttttctctcccactccactcaccata
-gaacatgcctgcaaatggaaggacatgcaaaagagctgagtaacagcctatgtaccagtc
-actacttaagcatcaatgactagatctcagccccaactacagcaccaaaaatgattctgc
-taatatacacccctgtgaaaccaagtgcaagactttgcccatacataaagatcctgtaca
-gagccacggacctctgaaaacatccagaaatgaactcaactgactatattcaacttacac
-cacatttaaaagaaaaccagcccccctcccaccagaagagaaagaatcaatgcaagaacc
-ccagcagttcaaaaagccagggtgtccccttacctcaaaatcagcccactatctccccag
-cagtggtccttaaccagactgaaatgacagacatagaattcagaatccaaatggcaagaa
-gctcattgagatttaggagaaagttaaaatccaatccaaggaatccagtaaaatgattca
-agagctgaaagatgaaatagccattttaagaaggaaccaaactaaacttctagaactgaa
-aaatttgctacaataatttcataatatgacagtataacagtattaacagaatagaccaag
-ctgaggaaagaatctcagagctcaaaggctggtccttcaaatgaacaaagtcagaaagaa
-aaaatctttaaaactgaacaaaaccaccaagaaatatgagattatgtacagaaacaaaac
-ttctgacacactagcattcccgagaggagggaaagagagtgaacagcttggaaaatatat
-ttgaggatatactccatgaaaatttccctaatctcactagagaggttgacatgcaaattc
-aagaaatacagagaaccccagctagataaaatacaacatgaccatcccaagaaacatagt
-catcagatttgccaaggtcagcatgaaggaaaaaaaatcttaaagccagctagaaagaag
-ggtcatgtcatatgtaaagagaaccccatcaggctaacaccagacctctcagcagaaacc
-tgacaaaccagaagagattaggggcctttttcagaatccttaaagaaaagaaattctaac
-caagaatttcaaatcccatcaaactaagcttaataaacaaagaggaaataaaatatttct
-cagacaagcaaatgctgaggaaattcatcacaaccagatatgcctccttacaagagattc
-ttaagggagctctaaacctacaatcaaaagaacaacacctgctacaaaaaaaaaaaaaaa
-aacatacttatgcacataaagacactataaagcaactacactatcaagtctacataataa
-ccagctaacaacacaatgacaggataaaaatctcgcatatcaatactaaccatgaatgta
-aatggactaaacaacccacttaaaggacacagtgtagcaagattgataaaaagacaagac
-ccaactatctgctgtctttaagagacctacctcacatgtaactacacccacaggctcaga
-gtaaagggataaagaaagatctgtcacacaaatggaaaacaaaaaagagcatgagttgtt
-attcttatatcagataaaacagactttaaatcaacaactatgaagagggacaaagaaggg
-cattacataataataaaggatacaattcagtgagaagacttaactgttgggcctggagag
-agtgggaccacctttgccatgggactggggtgcatctgttctgcaggccctcctacctgt
-agcccctccgaaggcccctgcctagccaccctgcagaagcatgtgcacagtgcagcctcc
-actgccaagcctgagtgctttgctccacctgaatatgtttatattctaaacatatatgtt
-cccaacattgaggcacccagattcataaaacaagttcttcttaacctataaaaagatgta
-gatagccatgcaataatagtgggagacttcaacaccctactgagagtgttagacaaatca
-ctgaggcagaaaattaaccaaaaaatcctggacttcaactcaacgtttgaccaactagac
-ctaacagacacctacaaaatattccacccaacaacaacagaatataacttccttcttctc
-tttggcacgtggaacatattccaagattgaccacatgctcagtcataaagcaagtctcaa
-taaatttaaaaaagtcatgctgagcccattctcaggccacagtttaataaaaatagaaat
-gaatatcaagaagatctcttaaaattacacaaatacatagaaatgctcctgatacctggg
-taaacatcaaattacagcagaaaattaaaaaattatctgaattttttattaaaataggga
-cacaatttaccgaaatatctgtgatacagccaaagcagtgttaagggaaatttatagtgc
-taaacgtcatcatcaagaagttagaaagatctcagattaaccatcaaagtttgcacctag
-aactagaaagaaaagaacaaaccaaccccaaagctagcagaagaaaaaaaaattactaaa
-attagaaaagaactgaaaaaaattgagatgcaaaattccatagaaaggaccaataaagcc
-aaaaggtggttttttgaaagaataaaaaaggttgatagactgctagctacataaccatga
-agaaaaaagaagaccaaaataaatacaataaaaaatgaagaagatgacattacaatgaat
-cccacagaaatacaaaagatactcagagatcattttgaacaactctatgcacacaaattg
-gaaaatctagaggaaatggataaattcctggaaatataaaacctcccaatattaaagcca
-aaggaacatgaaaacctgaacaatcaataaacaagttcctaaactgaatcaataataaaa
-acctaccagcccaaaaaaaccctggaagagatggattcacagcctaattctaccagacat
-aaaaagaactggtatcaattctactgaaactattccaaaaaaatctaggaggagaggctc
-ttccctaactcagtctatgaagccagcatcagccagataccaaaatctgtcagagacaca
-aataaagaaaacctcagaccaatatccctgattaacatagatgcaaaaattttcaacaaa
-atactaggaaaccaatcccagcaacagatcaaaaaattaatacatcagaatcaagtaggc
-tttattcctgggatgcaaggctggctcaatatatgcaaatcaataaatgtgattcaccac
-ataatcagaattaaaagcaaaaaaatatgatcatctcaatagatgcagaaaaggatttga
-aaacaatccaacgcaccttaatgataaaaacccacaacagactaggcactgaaggaacat
-accgtaaaataatgagccatctatgacaaacccatagccacgatcattctgaactggtaa
-aagccggaaccattccctttcagaactgcaacaagacaaggatgcccactctcaccatgc
-ctattcaacatagtactggaagtgctactagagcaatcaggcaagaaaaagaaataaaag
-gcatccaaataggaaaagaagaagtcaaactatccctcattgctgatgatatgattctac
-acctggaaaaccccaaatactctggcaagaggcttataatactgatgaacaacttctgta
-aagtctcaggatacaatatcaatgtcaatgtacatttctatacacaataaccttcaacct
-gagagtccaatcaagaacacaatcccatttataatagccataaaaaatgaaaatccctag
-gaatacagctaaccaaggaagtgaaaggtctccacaaggagaactacaaaatacttctgc
-aagaaatcagagatgacacaaataaatataaacaattccatactcatatatcaaaaagat
-caatgtcatttaaatggctatacattccaaagcaatctacagattcaatgctatttctat
-caaactacaaaaactgcttttcacagaattataaaaaaactattctacaattcatatgga
-atccaaaaagtacccaaatcaccaaagcaatcctaagcaaaaggaacaaagccagaggca
-tcacattatctgacttcaaactatattataaacccacagtaaccaaaacagctgatactg
-gtacaaaaataaacatatcactaatggaacagaatagacaacccagaaatgaagccacac
-acctacagacatctgatctttgataaagacaacaaaaataagcacagggaaaagaccccc
-tattcaataaacggtgcttgggtagctggctaaccatatgcagaagaatgaaagtggacc
-cctgcccttcaccatatataaaaattaactccacaaggattaaatatttaaatgtaagat
-cttaaactataagaatcctggaagaaaacctggaaatacccttctcaacatccacgttgg
-taaagaattcttggctaagtctccaaaagcaattgcaacaaaaacaaaaattggcaagtg
-ggacctaattaaactaaagagcttctacacagcaaaagaaactctcaacagagtaaacag
-acaacctacagaatgggagaaaatattcgcaaactatacatccaataaaggtctaatatc
-cagaatctataaggaaattaattcaataagcaaaaaaaaatcccattaaaaatgggcaaa
-agttataaacagacacttctcaaaagacatacaagtggccaaaaaacatgaagaattctc
-atcatcactaatcatcaaagaaaggcaaatcaaagcaattagataccatctcataccagt
-cagaatggccattattcaaaagtcaaataatagcagaagctagtgaagctgtagagaaaa
-ggaaacacatacactcttggtgggaacaaaaactagttctgccagtttggaaagcagttt
-ggagatttcttaaggaacttaaaaatagagctaccatttgacccagaaatctcattagtg
-ggtatctatgcaaaagaaaacaaatcattctaccaaaaagacacatgcagccctatgttc
-atcgcagcactattcccaatagtaaagacatgaaatcaacctatgtgctcatcaatcatc
-aatggtggattggataaagacaatgtgttacatattcaacatgaaatactatgcatccat
-aaaaaagaatgaaatcatgttttctgcagcaacatggatgcagctggagaccataattct
-aagcaaattaatgcaggaacagaaaaccaaatactgtatgttctcacttataagtaggag
-caaaacattgtgtagtcatcaacataaagaaggaaacaatagacaatgtggattactaga
-gggaggagggaggaaggggggcatgggctgataaactaactattgggtactatgctcact
-acccaagtgaaaggaaacataacccaaacgacagcatcacacaatatacccatgtaacaa
-acctgtacttgtatcccatgtatctaaaataaaagttgaagttataaagaaaaataagtg
-ttagagtttatttcttggctcacaattctactccattgttatatatgtttaGCTGTACTG
-Aggggtctccaagatcaccctcaagtttgatgactcactagaaaaactcaccagacctat
-aaaaacgattatactcatggttacagcttaatacagttaggagatacagattaaagtcag
-caaaggtaaaaggtgcacagagtgatgcctaggaaaaaacaggtatgagctttcagttgt
-actcttcctccagaatcacacgaatagaactcaattcttccaaccataaggtatgacaat
-aagtgcaaaatggtgccagccattttcagtgggagtcaatcacataagcatgaagcatcc
-ccaagactgaatttagctactcaatcttcagcccctaaccttaggagtcaagctaatacc
-gcttggcctgaagccccagtcatagaaaaaaatatatgatttattcaccataaatcacat
-tgttagcataaactatttggcatgggccaagtctcaggtatacaaagacactttatcagg
-caggataattaaagggctcagagattatctgccaggacctttgaaatatgcagggttagg
-acaaccccaaatcttctgagttaaccctttattacacaGTCCACCCCATACCCCTTAGCC
-TAGGCTGTCTTTCAGCAAAACAATTCTATATTTCTGAGCATCTACATTTAGTATAGCATT
-TATATAACAGATCTAGAAATAGTATCAGTATGAAGAAAGATCTCTAGTTATAGTAGATAA
-AATATAGCAGTGGAAGGCCCAGCATACCATGGTTGTGCTATGCTCAAAAACATTTGGAGG
-AGCTAGTGTGGGGTAGGGATAAAGATTTTAAAAACAACTAATCTATCTCATAAAGCCATT
-ACATACATTTTCATATTTTTGTACTGATTTGTTACTTGTTTCTCCCCTTGATCTACCACT
-TTAATCTTACAGCTGCAGAATTATTTAGCCTAGAAATTAGTTTATGGTTAACTAAATCCA
-ATTCTTCCTTAGGCTAGTCATTTTCCATTGGTAATACATCCTGAGGAGGCTTAACTCAAT
-CTCTCAATACATTTGATCATCAGTATCAGTACCATCCTATGACTTATTTAATAAGGTGGC
-TGAATCTTACCAACAATAATAGTGTCACACTGTATAGCAATATAGTCATGGAACAATTTA
-GTTTCATTCATAGAACAAATTAGTAAGGCTTACGTAAGTTTTGCTATGCCTTCCCAACAG
-AAACAGTCCTTGCTTATATACAAGATATACTTATGGACAAGCATTGTTATAATTGTTAGA
-ATGATTTGATTATTTCTGGCTTCCATGTCAACGGAGGACAAAGACAGCCACCCCGTTTTA
-GTTTTCAAGCTTGGACAGAGACTGGTTTCCATTGTGTGATTTTCTACAGCAGGACCTCCC
-CACCCTCCTATGGGAGGTCACAGGTGATATTCAGATAGCTTCAGTCCCTACTAACTGTAC
-TGCAGAATATGTCTTATTCTGAAGCTCTAATGGGGCAAGAATAATTTGTAGTGCATCAAT
-GCACATTTACAAATGCCCTGAGAGGTCTTTCATAAGTTTGAAGGCCCATGAGATTCCCAT
-AAGTGTGTCCCTTTTTCCTCAGCAACTAGGATGTAGTGCTATTTCCCCATGGTTACTTTG
-ACCTTCATCTGTAATTAAAACAGTCAAAAGGCACTGTTGGGTCAGGGTACAAGCCCTTTC
-CCAACGTTGGATCTTAGCATTATCTAGCATTATTTTTGAGTCTACTTGTTTCATTTTAAT
-AAAGCCTCATCACTTTCTCAGGATGACCCTCATCTTTTGCCTTCCTCCTAGAAAAGAATT
-CTCTCCAATCTGCTCATTTTAGTTCAGTAATATTTCCTCTAGACTTCACTAAAAGGGAAT
-TCAGCTTGTCCCATGATGCCTGAACTGACACCTAATGCCCCTAAAAAGTCTGTTTTATGC
-ACAAATGTAGTTTAATTCACCATGCATGTTGTTGGCATTGTATACTTATGGCCCAAGTGC
-AGTTAGCATATGTGGTTTTTACCCCAAAATGCGGGTTCTTCATATATAGATTAGATGAAT
-TGTAGTCAAACTAGATCTAATTTAGTTTTTAGTATGTTTTAATGCCTTTCATAATCTTTT
-TTGTCTCAGGGTGGGGCCATTACCCCAGGGGAATTCAAGTCACCGTGTAATGGCTACTGC
-TTTAATCCCATCATGTATTAATTGCCATTCTCTCttttttcaactttcattttagattca
-ggggatacatgtgcaagtttgttacctgggtatattgcatgatgctgaggtttgggatat
-gaatgattttgtcacacaggtctgagcatagtacccagtagttagtttatcaaaccttgt
-ccaccgcctacccagtagtacccagtgtctattgttttcatctttatgtccatcagtact
-caatgttcagcctccacttacaacatatggtgtttggttttctgttcctgtgttaattca
-cttagtattacaacatccagctgcatccatgttgctgcaaagagcataatttcattcttt
-attatggctgcatagtatttgatggtgtatatataacacattgtctttatccaatccacc
-atagatgggcatgtaggttgatttcatgtctttgctattgtgaatagtgctgtgatgagc
-tataactgcatctgtcattttggtggaatgatttgttttcttttgcatagatacccagta
-atgagattgctgggttgaatggtagctctatcattaagttccttaagaaatctccaaact
-gctttcaaactggctgaactaatttacattcccaccaagagtgtaaaaatgttcagtttt
-ctctgcaacctcaccaacatctgtttatttgtttttcatgtttgagtaatagtcattctg
-actgttgtgaaatggtatccagtcatggttttgatttgcattgctctgatgattagtgat
-gatgagcatttttttcatatgtttgttgagcacttatatgtcttcctttgagaagtgtct
-gtttgtgtcctttgcccattttttccatgagtttttttttcttattgaattgtttaattg
-ccttatagattctggatattagatctttgttggatgcatagtctgtaaatattttcttcc
-attctataggttatctgtttactctgttgagagttttgtggtgcagaagtttaattaagt
-cccactttccaatttttggtttttgtttttttcaattgcttttgagaacttagtcataaa
-ttattttccaaggtgatgttgagaatggtgttttctaggttttcttctaggattcttttt
-tctttcttttttttttttttttttttttttgagatggagtctcactctgttgcccaggct
-ggagtgcagtggcgtgatcttagatcactgcaacctccacctcctgggttcaagctgttc
-tcctgcctcaacctcctgagtagctgggattactggtgcatgccaccacacctggctaat
-ttttgtatttttactggagaccagatttcaccatgttggtcaggctggtctcaaactcct
-gacctcatgatccgcccacctcagcctcccaaagtgctgggattacaggtgtgagccgct
-gcgcccagctcttctaggattcttaaagttttggatcttacatttaaatctctaatcgaa
-cttgagtcaatttttatacatggtgaagggcaggggtccatttcattcttctgcatatgg
-ctagccagctatccaagcaccattactgaattattgaatagaattattgaatagggagtc
-ctttctccatgataatttttgttgtctttgttgaagatcaaatggctgcaggtttgtggc
-tttatttccaggttctccattctgttccattggtttatgagtctgtttttgtaccagtat
-catgctgttttggttactgttggcttatagtttgaagttaggtcatgtgatgcctccagc
-tttgttccttttgcttaagtttgctttgactattggggctcttttttggtttcatatgaa
-ttgtagaatagattttctaattctgtgaaaaatgataatggcagtttgatagaaatagtg
-ttgaatctatagactgcattgggcagtttggccatttaaatgatattgattcttccaatc
-catgagcatgggatattttttcatttgcttatattatttattatttcttttagcagtgtt
-ttgtagttctcccggtagaaatctttcacctccttggctaaatatttgcaatgtatttta
-tttttcatgtggctgtcatgaatgggattgtgttttgagactttgctgaagttgtttatt
-aaatctggaagtcttttggtggaatcattagggttttctaggcgcatagaatcacattgt
-cagcttagagagctaatttgactttctcttttcctatttagacaccttttatttccttgt
-cttgcctgattgtttgggctaggatctccaattctaacagctttcagtggagtctaggtt
-tttctaaatataagattatgctgtctgtaaacagggataatttttttcttttactgttaa
-ttttcagagttttatattttatttattatgtgtagtctgcaaatacattctgtaaggtta
-ttgcttgtctttttattttcttaacagggtcttttgcagagcaaattttaagactttgat
-gaagttaaatttgtcaattactttttatggattgggctttttgtgtcatgtctaaaacct
-cataaccaagcattaagctccatagattttctcctatgttttcttttaaaagctttatgg
-ttttacatcttacatgtgattctatgaccaattttgagggcttttttttcatgtatgtgg
-ggtgtttaggtaagttaattttttttaacctgtggatatgcaactgttccatcacctata
-tttaaaaagattattcttccttcatttaattggttttatatctttgtaaaaaaaatcaat
-tggctatactagtatggttctacttccggattctgtattcttttccattcatgtatgtgt
-ccattcctctgctaatacaaatcttggttactgaagctatacaacaactttcataattgg
-gtagaattaatttctccgactttattctattttttcaagattgactaatccattctagct
-attttgcctttccatataaattacagaataatctgtgtatatttagaaatatcttgatgg
-cagtttcaagatggctgactagaagcagctagcgtgtgctactctcacggagaggaaaca
-aagtagcgagtaaatagtggcttttcaagtggatcgtctgggagaccacatcaggattca
-ccaaggaagtgagggaatcctcagagagcagagagtgaagcctggcagcagccgctcacc
-cgggaccagtgtggagcaagagaaattccctaacatggggaaagggtgagtaagtgagag
-tcctcaggggatccacatggatctttgcaatcctgtgcacaggagaaccccttggcccct
-ataggcctctagatcgacacaacatcctggagtttgtgtagacgcactgctaagggccat
-gtggagccccacaggccctggatccctgatcaacctggtgccagctgccatagccctgat
-aggggctgcagtcatggtgctgaggagtggtcagactgccctgctcctcctcaccaggca
-aggctcggctttggcttccagtgcaacagtctgcctccacctgaactctgcatgtgggca
-cactctacactcccctgggaaccactcagatggcggattgtgtgactcccattcccctgc
-tgctccgagccaggcaaggctagctggtttgggcttcaacacagcacctctgcccctacc
-tgaacactgtagtgggttgcagctttccattcccctggggcaaaactcacagaggtaaca
-gatAATGCCTGGCACCTTTGTGTGTTGCTAATAGTGAAGTTCAACATTATTGGATAGGAG
-GGAGGTGCAAGCATGCCAGGCATTCCACAGCTTCCAGTCTCCATTGCCCCAGCTAAGGGA
-TGGCATGCTCTCCAGTTAAAGGCCCACAGCACAACTGTCCTGCCCCTGCCTGAACATTTC
-ACCTGCGACCCAGAGCCTTTCCGAAAACCCACCCACCACAGGCCTGTGATATTCTTCTGG
-GTTCCCACCACCCAAGAATCCCACcttcccctgcctgagagtttggctggtgacccaggg
-accagcctgaaccccacccccaccccattacagtcagcacctgaaatctgggatagataa
-ccccagtccagccccttcagggccatgcacactgtccagcaggccttctggaggcctgtc
-agctgagaaactatcaatacccttccagtgctgttggcacctgaccaatttcctcagggc
-ctgaggttgggcctacccaaccagcaaacaccaccatgaccaacaccgacctgcacggac
-cCAAAGGTGGAGACCTTCCTTCTCAAAAAGCAGCAGTAATGCCCCATCATagaataagtg
-agccttaaagctatctgtatcaggttgagtgatgaggttataccctgaacaactctcatg
-gagaatcataaaacaagtgttccctgtggccctcaaccacattgcagtccagagatagac
-tatagtgtgcatctgaactaggagtcatgagccctgaaacagggtgtgataaggaaacag
-atcacatttctacctacctaggatggggagctggtgcagtcttctcgcccacaagcccct
-acagagacctcagtgcaggagttgctcccagccacgctcatcagagctggtgcctgtgct
-tgccattggtatactaatgggcaagccaggggcaccagctcttctcagctctgtcccacc
-atccccacagaacaagaagctcagtacatcaggcacccccactgtccagcccttcacctg
-aaacaactgagagcccctaatagtaaaaaaagatcagatctatacccatctgtttatggg
-acagctggctgttacttgcaaatgtcatctaccagtctataggtcaaactggacagccca
-tcaaaaaacctgctggtagaagtgtgtaggactatagaaacaaagccaaaagccctaccc
-aacacaatcccctccagataagaaggaactagtataagaattctgctgtcatgaaaaatc
-tgaatgtgtgacaccaacaaggttcactctagctctccaggagtggtcctagccaaaata
-gaagctgagagatgacagatggagaattcaaagcatagattgcaggaaaattctttgaga
-ttcaagataaggttgaaaatcaacacaaagaaacctgtaaagcaatccagagaataaagg
-aagaggtaaactcttaaaaataaatctatcagagctactgaaagtgaaaaactcacttaa
-gacattccgaaattcaatgaaaagttttatcaatagactagatgtagcagaagaaagaat
-ttcagagcttgaagatcagtctttcaaactaacccagtcagacaaaataaagaaaaagtt
-attttgaaaaatgaaccaaatcttcaagaaatatgggattatgtaaagtgaccaaaccta
-tgaattactggcattctcaagagagaaagaggaaaaagtaaacaacctagaaagcatatt
-tgagggaataattcaagaaaatttcctttatcttgctagagaggtagacatccagataca
-ataaattcacagaacacctgcaagatgctatacaaagtgaacatcatcaagacatagggt
-catcagacagtctaaggtcaattctaaagaaaaaatcttgaaggcagcctagagaaaagt
-gtcagatgagttacaaaggtgagcccatctggctaacagcagacttatcagcagaaaccc
-tacaatcccaaagagactgggggcctatttaaagaattctcaaagaaaagaaactccaag
-caagaatttcataccctgccaaactaagctttataagtgaaggagaaataagatcttttt
-cagacaagcaatcactaaggcaatttattgccactagaccagccttacaagagatcctta
-agggagttggagttctaaacataaagatggaagaacaatatctgccaccacaaaaccaca
-cctaagtacatagcacatagaccctttaaagctattacacaataggaactataaagcaac
-cagcttacaatttcatgacaggatcaaaatctcacatatcaatattaaccttgaatgtaa
-atggtcttaacaccccacttaaaggcacagagtggcaagttggatcataaaataagaccc
-atccatctgttgtgttcaagagacccatctcacatgtaatgacTACTACACTAATTTTAT
-CGGGTTTTTTTCCCCATTGCTTATAAGTTTCATTTTATGGTATGTTATTTTGATTGTATG
-CCAAACATTGGGTAAATGGGTTTTGGAGACTCCAAGTGATGTTATCTTCAAACATAAAAG
-GTCCTCCCTTTCTCCAGATAGCAAAGAGATAAGGACATGACTAATTCAATATAACAAGGC
-ATTAAGCTGGTTCAGGGCTGGGTTTCAGTATTAGTAATGATTCCAACCACATCTAGTTTG
-GTCCTGTTTCTCAGGAATAGCCCTCCAGGCTTTTTCTTCAGGGTCTGTTTGGTCTCAGTA
-TCTTCAGCCCAAAAAAACAATGAGGGAATTCTAGCTCTGTTCTTTATGGTTTTCAAACAT
-TGCTCTTCAGCCTCCTGATTCAGGCACTTCTGTAATGTCTCAAGGGGGAGACTATCTGTG
-TGCTTGAGGTAGGCTCCATATCACTATCATATCTGTTTCCTAAGCACTACAAGAGTACAA
-GAAATCTCTTACTGCCTTTCGGAAGTTTCAGCTGAGCTTTCCAACCTCTCACAAAGCTCT
-ACTTTTCCAATGCTCCATTGGGGGGACTAAAATTTGGGGCACCTGAAATTCCAATTTGTA
-ATTCCTAGAATCTCTGCTACTTCTGCTGATTCAATTACCTCCCAGAAAGCCTTTCTTTCT
-GGGCCAAGCCTGATTTCCCGTCTGTCCCAAACTGACAAAGGCACCCATGGGGGAAATGGC
-TGGCAATTATTGACCTACTCCAGAAACAGAAAGCCTGTTCTGTTCTCTCTTTAGAATATC
-AACTCTTCTAGTACCAGTAATTTCTCTGGTTCTCTAATGCCTTGGaaatattattttaat
-aaaaatCAAGCTTTTCTAGGTTTTGTATCAAAGGCATTGCTTTTCTGTGATTTACTGATT
-TCTCCCCAAGAACAGAACTTCTCAGgcccatttaatcttaacttaattgctgttatgttt
-ggctttaaattggccattgtttaacgtgatttacattttcctgagttttctatatttctc
-ttttttctcctttcttttaatctttctgtataaaccagatgttctttaattccattttcc
-tccccactagtttttaatgtattctccttttctattcatcatcactctagaaatgaagac
-atacattcttaacctatcaatatctaatattaaccaaaaatgtgtatttctcctcagaca
-atgcatggaatacaactccatttcacctgcctccagtttatattctattgctttatttta
-ctttcatataatactaagacaatattattgcatgcgtgacaattataggtagttctattt
-tctgggtgactccaacaagttatcattataaagtaacccattttcctctaagataatttt
-tgccttaaatactattttgttcaatactaagaagtaagataacttccttttgttggtatt
-tgcatgttaagtttttttcccatatttccactttcaatcttctccgtatcttgtttttac
-atttatctgttgtaaatagcatctaatttttcatccagtctagcaactagagttaatcca
-taaatttaccaatctctgaataatatatggaacatagaccactttaattctatttaacgc
-tcccaattgattctattttcagaattttgatatttaattatgtttttaatcttataaaac
-atctttatttaattctGCCAGTTTAATCCACTtttatccctttttttgttgcttcttcat
-cacatactttccatgtgtggtcatttttttaaactaaagaacatcctttagaatttcctt
-tcatgagatctgctatctctatctgaaaaggttgtatttatattttcttcttaaaatatt
-tttgtggatatggatttctaggatgacatttactttgaaaaatacgttgaagagctcagt
-ccattggattatggcttctattgtttgtggtgaaaaatcacctgtcagtgtaacaattac
-tctatcaaaagtatggtttctgtttttccctctgactgtttcccacttttctctttgtcA
-TTTTATCTAGATGACAATTCTTATTTATTTTCTAGAATAGTATTTCTTAGATTATTTCTG
-AAAAAAAAGAAGATTTATTATCTTTTCAAATTTATGTAGCtttttgtaattctttttctt
-taattttctttctccttctctttgaaaatcttattaatcagatattggctctcctggatt
-gacactctgtgtcttatatattttgctcatactttccacttgtttttagacttcaaagat
-tttctcactttatcttcaaatgtgcctgctaaacaatcatttttctaatttccaaaagtt
-tactacttctccttacatagcatgatattattgctttatggatggaataCACTCTTGAAA
-CTCCAGCCCCTAAATAATAGTTATTCTAATGTGCCTTTCTTCATTTATTTTCAGTCATGT
-TAAAGATTTTCTCAAATAGATAGCCAGCCTAGATTGTTTATTCATATTTTACATATATAC
-TGAGCCATTTTATGTGTGCAAACTTGTCCACAGCTTTTGTTTTAAAATGCTTGaactgtg
-aagatagaaaagacatgtttgctggaatgcataatactgaagtttacttctcatagtctt
-tctttagaagttatcgcctaggcagaaaaagaaagtaactaaaaaaaaagaaaacacaat
-ttccaggtatatctgtgccaactcaggtgactagtaaaacaaaattctaagatgacatct
-gtatagcctacataggaagcaaccagttcacattatagaaggaagaatgaatgttccagA
-GACAAAATATAGTTACAATACACCCTCATCTATTGTAGTAAAAAAAAAAAAAAGCTGAAG
-TCTAAATTACACAAATGTAGCAGCATAATACTATTAAATAATAAGTAATTTAATATTCTA
-TTTCATGGCATTATTTTACAGGAGCACTATTTGATCATCTTCTCTTTATCACACATACTT
-CTTCCATTTATCTTACAGTATCTTTACATAAACACTAAAATAGTTATACTCAGATTGTAC
-ACTTTTGAAGGGAGTTAGCCTATTTGTGTCAATTATTTACTAAAACAAAGCTAAATAACA
-GCAACAAAAAAGCCTTGTTGGAACAGGGACCAGGGGAATGATCAGAGCAATAAGTAGCTT
-GCATGAAAATATTATTAACTCTGAATACTTTCTCATTAACATTAACAGTGTGTCCTGCCT
-GTATATTTAATCCATTTAGAATTAAACTATTAATATATTGTGTCCTAGGATGGCAGAGTT
-ATTAAGCAGCCCCTGTATGCTCCAGGGGATATAGGTTGATATTCTTCAGCTGTCAAAATT
-CTTCAGCTGTCAAAATTCTTCAGCTGACTTAAATCAGCAGTAGTGGCGTTTATCACCAGT
-CAACAAAGTTCTTCTATCCTTCACTTCTTTAGCCTACTCATCTAATGGATGTTGGCACGA
-ACATGAAGTTTCTCTCCTAAATATCTATGATGTTCCACAAATCATGGGATATGCCTGCAG
-GCTGCCAGCACAATCAGATCTTCATGTTCCAAGAAAGGGATCATTAGTTTGGCCCTGCAA
-GATGTGCCACCTTTCTTGGAGAACTGAGTGTGCCACATGCAATCTGCTGAGGCATGAACG
-TGCTCTTGGCATTTCTGTTTATTTGCTCCTTATTACACTATATTGTGTCAGAATGATGGT
-TTGGGTTCAACAGTATGCTCACGTAAGCCACTATTCCAAACTTCCTAAACGCACAGTTGT
-GGAATGTGACACAATTGTTGGCAATGATATTTAAACAGGATATGTGTTTTTGGTGGGGTC
-TCTGGGAAAAATTACTAAAGGGAGGGGTGGAGTGATCCAAATATTCAAGTGGTAGACACC
-CACTTGACTTTGGccttccacttcctcctgtttggaatatggtcataatgctggaggtaa
-tgctgccatctataacaatgaagcaaaaacactggataacagtatgtgaacagaagagta
-gagggtgactagcatggtgaagctgttatataatttctggactTTATGTTATGTAAGAAA
-AATAAAACCTGAATTTGTAATAAATGAACAAAATGCCTTTTTCATGTTTTTCTGTTTCAT
-ATTACAGCCTATTATACTTTCTAACTGGCACATCATGGATTATAGATAGAATGTGATTTA
-GGATTAAACTCTCTTAAGTTTAAAATGTGTAGTTTTCTTCTCTCTTGTTCATTCTCTTAC
-TGCCTCCAGTTCATTTCAGAGCATATGAAAAGAGACAATAAGGGACTTTTAGCTGGAAGT
-TTACACTACATTACTGAGTAGGAGGAAAGTAGCTTAATAGTTCTATAAAGAGTATCATTA
-CAATTTTAAAAATAAACAAAAACATAAATTATATACCTGTAGTCTATCCTGAAAATATTT
-CCTGAAGTCACAGATTTGGAGTATTGTCAACTTGTGCAtaaacttcatgagaccatggac
-tattgtttttctcactgctttattcctagctccttgatcagaacaggcagagagaagatg
-cacaataaatgaataaatataataaatgaatGTATCCTTTATTACCTACGCAAACACATG
-CACACAAACACATCTATGAAGTTTTACATGATAGTATAAACACTGCTTTGGTGGAGGAAG
-TTACTGATTTTCTTTTAGCTTGTTTTCCACTTTATTTTTCTTTACCAAATAAGTTTCACT
-TTTGCTATTAGAATATAATAAATAACAGAAACCACAAGAACAAAGTAGCAGCTGAAAAAA
-AGAAATGGAAAATTCTTAATTCATATATGATTGCCTCTGTGAAACAAtgaaaagtggtca
-tccaatttcagtttgaacacttTTTTCCTCATAAAGTCATCCTATACCTTTACTCAAATT
-TAGTTTTAGGTGCATTAGGAGTTAAAAATAAAACATAAACCCATTTAAGAACCAAGAGAA
-TTAGTAAGGTAAATTACTTTGGTAAAATGCCCAAGTTCCAGGCTCTGCTGAAGAGAAATT
-ATTGATTCAACCTTAAAATatttgaagtctctggtaaggtgactttagctaaagctgcaa
-ccagctcaactacaaatcagactgactcactactctagcaacttgacagaagaacaatac
-tagacagaatattaattaccttttggaggtaattatttattgaaaactctactgaacttc
-tatatgtctggcataaaataaaggttatgacatatttttaaaaagaaagaagacataact
-cattgtccagagaggaaatgatcaacacccagccaatggaattatcaaccagaaactcaa
-agtaactctgatagaaatatgctagagaatatagtgggaaaataaacagtactggtgttt
-actgataaaatagagaattttatctatgagccaaaacaaagtaatacaaattaaaaattc
-aatatcagaaatggataattcattcaatgggctgaacagcagactgggagaagcaaagaa
-aacaatcacttcacttgaaactcaaatgaacatttgaatagaaatttcccaaatgaacac
-aaacacaaaaaagtaaagaaaaattgaatacaacatcagagagatgtgagatattatcaa
-ataattcaacatggatttaattggctcccaagaagaagggaaggagagaatgaagcagaa
-gaaataagagctaatagcctcctacatagcaaaattgatccaagaacttcagcaaggtct
-aattaggacaaattcaaagaaaatttctagacatagtggatttcaaactgctgaaaatca
-aagacagagaacaaatcttaaaagtagccagagaaaaaggacatgttatctaggaaggaa
-caatgacacaaatGATGCTGAGCTATTTCCAGAAAAATAAAAACAGCgggtgacatcagc
-aagatggcagaataggaagtcccagatctcatttccacatggaaacaccagtttaacaat
-agatgaacaaaaatatctttattagaattccagaaGAGAAggaaagaaattcaaagattt
-ctcataagaaacttcgaagggcaggaggaagtggcacaatatttttaaagtgcttcaata
-gtaagtctcaatccagatatctatgtccaagaaaatatccttcaagaataaggaccaaat
-aaacacattctcaaatgaaggaaaactgaaaaaaaaagggggggtcactagtaggtatac
-ctaaaagaacagctaaaggaagtcctccacagtgaaagaaattatttttttttttttttg
-agaaaggagtcttggaacataaggaaaaaagaagagagaaaacaaaaacatcagaaatgc
-aataaactttttacctactttttagttttctaaattatttttgacagtaacagcaaaaat
-tatccctctatagtgattctcagcataggtagaaaaaatatttaagtcaatgatattaga
-aatggggggttatcatagagatataaagggagataaaatctttatctgatgtggttaaat
-gatgtaccagtagactgtaataagttatggatatataatgtagcacagacaacaatcact
-acaaaagctatacaaagagatacacttgaaaacactatagatgaatgaaaatggaattct
-aaattatggaaaaatatctcacaaaatggcaggaaaaataagacaaagaagcaaaaagga
-aacaaaaacaaaatgaaagatttaagcattaatatatcaataatttaattaaatttaaat
-gatctaaacacacaaatttaaagatgaatattggcaaagtatgtttttagatgacccagt
-aatatgctatatacaagaaactcacatcaaatataatgatataaataggttataagtaaa
-agaatggaaaaagatataccatacaaatattaataaaaagtttgcaggagtgactatatt
-aatgtcagataaagtagacttcagaacatcaaaaaaattaggatgattttttgtcacctt
-tacatagtgacaaaaggtccaatacaccaaaaagatgtggcaaacttaaatttgtgtgct
-ccaaaacacaaagctgcaaaatatgtgaagcaataacagagagttaaaagagagaaataa
-gcaaaaacacagtcgggatatcaccacccacttctttccagaattgatagaacaacaaga
-aagaaaatcagcaacagcaatagaagagctcaacaacattaactacaggatccacgtggc
-atttaaggagcatttccactcaactagagcagagtaaatattcctttcgagctcagagag
-tgtatactaagatagactatatcctaggcaaaaaaaaaaagaagaagaagaaaaaaggat
-attcaactaattaaaaagaatttaaactgcacaaagtttattctctatatgattgacaca
-gtgaaatcaaactaggaatcaataccagaaataaaacacaaaaatctccaaacacctgga
-aattacacaacatgcttccaagtcaaagagaagtctcaataagaataaaatatacataga
-attaaataaaaatgaacatataacatattcataatttgtgctaaagcagtgccaagagag
-aaatttagaacaacaaatgcttatattacaaaagaagaaaaatgtcaaatcaataatctt
-agctctcacctgaattagaaaaataagagcaaattaaatgcaaagtaagcagaagaaaga
-acataataaagataacagcacaaatcaatgaaattggaaacagaaaaacaatagagaaaa
-tcagtgaaatgaaaagctgcttctttgaaaagatcaataacattgacacacttttagcaa
-gactgacaaagaaagacacaaatttccagcatgcggaataaaacaaagaatatcactaaa
-gaccctatggaaataaaaatgataataagggaatacgataacctttttttttttttttga
-gacagagtcttcctctattgcccaggctggagtgcagtggcacaatctcagctcactgca
-acctctgcctcctgggttcaagagattctcctgcctcggcctcccaagtagctgggacta
-caggcatgggccaccatgcccagccagtttttgtatttttagtagagatggggtttcacc
-acactggccaggctggtctcgaactcctgacctcatgatctgctcgcctgggcctcccaa
-agtgctgggattacaggcatgagccaccgcgcccagccaactaactctctatacattgat
-ttacttttttattttaaaatatccttgcattcccagtagaaaccctagttggtAAAAAAa
-aattattgtttgtaaacccttcttctttgatgttacgcatctacagctaaagatttcccc
-ttaagcaaggcaggagctgcatttcacactttataaaatgttgtattttactatcttgcc
-gttcaaaatacatattaattattcctataattttatctttaacacatggcttttacataa
-ttttaaatagtactttttaaattttaaattaaattttaaatacttttaaataataaaagt
-atgctagttaatttcaaaatattatgtttcttaacatcttatttttattggtttccaact
-taatactgatgtttttctagatatcacatttttaattgattgctattttgcaattatttc
-tgcaatattttagtgttttgacatttatagggacttctttaaagaatcaacactgtccat
-ctcagtgagcattccatgtgcatgtgaaaaaaaaacgggtattctgtaattattggaggt
-agtgttctatacatgttaattggattgaggtggttattcagatttgctacattctttttt
-ttttttttcgagacagagtcttgctctgtcaccaaccaggctggagtgcagtggcacgat
-cttgggtcactgcaacctccacctcccgggttcaagtgattcccttgcattagcctcccg
-agtagctgggactacaggtgcgcgccaccatgcccggctaattttttgtattttagtaga
-gacgggatttcaccatgttggccaggctggtcttgaactcctgacctcgtgatctgcctg
-cctcggcctcccaaagtgctgggattacaggcatgagccaccacgcctggccatttgcta
-cattcttactaaatgtttggtctagttatgctatcaataaccaacagtgaatgataaaat
-ttccaactgattgaagatttttctgttttcaagttacttttgtccatctttacttcatgt
-atttttaagttatattattagatacatcatgtctttctaatgaattgaccctttcatcat
-tatgaaatggccttcattatctctagtaaatactgcttgccttggagtcaaatacatcag
-atattaatataatcacTCCACAATTAACAAAGCCATCAAAAGTAGCTTGTATATCCAACT
-TATTCTCTGTATCGATTTCTTTCACTTTTGGCCTGAAAAATCTTTACTCactgaaaagca
-aagaatataaagaaaaaaaaaaggtaaagaatccaaggactgtgggaaaactgcaaaagg
-tgtaacctacatgtaatgggaataccagaaggagaagaaagagaaaggaacagaaaaaaa
-tatttaaaacaacaattgaaaatcttcagtgggagtataattagttcaaccattgtggaa
-gacagtgtggtgattcctcaaggatctagaaccagaaatacctttgacccagcaatctta
-ttactgggtatatacccaaagaattataaattgttctactataaagacacatgcacacat
-atgtttactgcagcactatttacaatagcaaagacttggaaccaacccaaatgcccacca
-atgatagattggataaagaaaatgtggcacatatacaccatggaatactatgcattcata
-aaaaagaatgagttcatgtcctttgcagagacatggatgaagctggaaaccatcattctc
-agcaaactaacacaggaacagaaaaccaaacaccgcatgttctcactcataagtgggagt
-tgaacaatgagaacacatggacacagggaagggaatgtaacacactggggcctgccaggg
-gtgggggggcaatgagaaagcattaggacaaataatgcacgtggggcttaaaacctagat
-ggcaggtttataggtgcagcaaaccaccatggcacatgcatacctatgtaacaaacctgc
-acgttctgcacatgtatcccagaacttaaagtaaaataaaaagaaagaaaaaaaaacttg
-agtaaaatgaaaaagaaaaagaaaattttccccaaattaatatcaaacatcaaaccacag
-atccaagaagctcagagaatactaagtaggataaatgcaaaaaaaaaaaaaaaaaaaacc
-taatcatgtcatattcaagctccatgaaacaaaatataaagaaagaatcctgaaagaaga
-caaaggaaaaaaTCTTATcataataatagtgctcatttctccaacaagacataacaatcc
-ttaatgtgtatgtgtctaaaaacagagtcaaaCAATgttttgatttgcatttccctgttg
-actagtgatactgagcatttttccatgtatatgttgaccatttgcatgtcttttgagaat
-gtctatttttgttctttgctcatttttcaaggatatcatttgtttttgtttctgtttttt
-ttgctttcagttgagtcccttgtttattctagtttgatacagtcccatttgtctgttctt
-ggttttgttgcctgtgcttttaaggtcttaaaatatttgcctagaccaaagtcctggagt
-gtttcccctatgtcttcttctagtagttttatggttttgggtcttaggtttaagtctcta
-atctattttgagttgacttttgtatatgatgatagataggggtctagtttcatttttctg
-catataaatatccagttcccagcaccatttattgaagagtgtgtcctttccccagtggat
-gttcttggtgcctttgttgaaaatcagttggctgtaaatatgtgaatttatttctggatt
-ctttattctgttccattgatctatatgttcatttttataccaacaccatattgttttgct
-ataagtactatagccttgtaatatattatgaaggcaggtagtgtgatgccacaaactttg
-ttcttttgtctcagaattgctttggctattttggctcttttttggtttcatacacatttt
-aggattgatttttctatttatgtggaaaatgtcattggtattttgataagaattgaattg
-aatctgtagattgttttaggaaatatggtcattttaacaaaattgattgttccttttcat
-gagcatgggaggcatttccatttgtttgtgtcgtcttccattcctttcatccgtgtcttg
-gggtattccttgttgacatctttctcctccttggttaaatttattcttaggtattttttg
-tagctattgtaaatggaattgccttcttgatttcttttttggctagttcattattggcat
-ataaaaatgctactgattttttagcattgattttgcattctgcaactttactgaatttgt
-ttatcaattctaagaggtttttggtggagtcgttaggtttctttaaataaaattatgtca
-tctgcaaagagggataagttagtttcctgtttcccatttagatactgtttatttcttttt
-ttgtctaattgctctatctagcacttccagtactatgttgaatgggaatgatgaaagtgg
-acatcttcttgtcttattccagttcttaaaggaaaggcGACTCTTgggggaggagccaag
-atggccgaataggaacagctccggtctacagctcccagcgtgagcagaagacggcgattt
-ctgcatttccatctgaggtaccgggttcatctcactagggagtgccagacagtgggcgca
-ggccagtgggtgcgcgcaccggcaccgtgcgcgagccgaagcagggcgaggcattgcctc
-acctgggaagcgcaaggggtcagggtgttccctttccgagtcaaagaaagaggtgacgga
-cacacctggaaaatcgggtcactcccacccgaatattgcgcttttcagaccggcttaaaa
-aacggcgcaccacgagactatatcccgcacctggctcggagggtcctacgcccacggaat
-ctcgctgattgctagcacagcagtctgagatcaaactgcaaggcggcagcgaggctgggg
-gaggggcgcccgccattgcccaggcttgcttaggtaaacaaagcagccgggaagctcgaa
-ctgggtggagcccaccacagctcaaggaggcctgcctgcctctgtaggctccacctctgg
-gggcagggcacagacaaacaaaaagacagcagtaacctctgcagacttaaatgtccctgt
-ctgacagctttgaagagagcagtggttctcccagcacgcagctggagatctgagaatggg
-cagactgcctcctcaggtgggtccctgacccctgacccccgagcagcctaactgggaggc
-accccccagcaggggcacactgacacctcacacggcagggtattccaacagacctgcagc
-tgagggtgctgtctgttagaaggaaaactaacaaacagaaaggacatccacaccgaaaac
-ccatctgtacatcaccatcatcaaagaccaaaagtagataaaaccacaaagatggggaaa
-aaacagaacagaaaaacgggaaactctaaaacgcagagcgcctctcctcctccaaaggaa
-cgcagttcctcaccagcaacggaacaaagctggatggagaatgactttgacgagctgaga
-gaagaaggcttcagatgatcaaattactctgagctatgggaggacattcaaaccaaaggc
-aaagaagttgaaaactttgaaaaaaatttagaagaatgtataactagaataaccaataca
-gagaagtgcttaaaggagctgatggagctgaaaaccaaggctcgagaactacgtgaagaa
-tgcagaagcctcaggagccaatgcgatcaactggaagaaagggtatcagcaatggaagat
-gaaatgaatgaaatgaagcgagaagggaagtttagagaaaaaagaataaaaagaaatgag
-caaagcctccaagaaatatgggactatgtgaaaagaccaaatctacgtctgattggtgta
-cctgaaagtgatgcggagaatggaaccaagttggaaaacactctacaggatattatccag
-gagaacttccccaatctagcaaggcaggccaacgttcagattcaggaaatacagagaacg
-ccacaaagatactcctcgagaagagcaactcaaagacacataattgtcagattcaccaaa
-gttgaaatgaaggaaaaaatgttaagggcagccagagagaaaggtcgggttaccctcaaa
-gggaagcccatcagactaacagcggatctctcggcagaaaccctacaaaccagaagagag
-tgggggccaatattcaacattcttaaagaaaagaattttcaacccagaatttcatatcca
-gccaaactaagcttcataagtgaaggagaaataaaatactttacagacaagcaaatgctg
-agagattttgtcaccaccaggcctgccctaaaagagctcctgaaggaagcgctaaacatg
-gaaaggaacaactggtaccagccgctgcaaaatcatgccaaaatgtaaagaccatcgaga
-ctaggaagaaactgcatcaactaacgagcaaaatcaccagctaacatcataatgacagga
-tcaaattcacacataacaatattaactttaaatgttaatggactaaattctccaattaaa
-agacacagactggcaagttggataaagagtcaagacccatcagtgtgctgtattcaggaa
-acccatgtcacgtgcagagacacacataggctcaaaataaaaggatggaggaagatctac
-caagcaaatggaaaacaaaaaaaggcaggggttgcaatcctagtctctgataaaacagac
-tttaaaccaacaaagatcaaaagagacaaaggcggccattacataatggtaaagggatca
-attcaacaagaggagctaactatcctaaatatatatgcacccaatacaggagcacccaga
-ttcataaagcaagtcctgagtgacctacaaagagacttagactcccacacattaataatg
-ggagactttaacaccccactgtcaacattagacagatcaacaagacagaaagtcaacaag
-gatacccaggaattgaactcagctctgcaccaagtggacctaatagacatctacagaact
-ctccaccccaaatcaacagaatatacatttttttcagcaccacacaacacctattccaaa
-attgaccacatagttggaagtaaagctctcctcagcaaatgtaaaagaacagaaattata
-acaaactatctctcagaccacagtgcaatcaaactagaactcagaattaagaatctcact
-caaagccactcaactacatggaaactgaacaacctgctcctgaatgactactgggtacat
-aaggaaatgaaggcagaaataaagatgttctttgaaaccaacaagaacaaagacacaaca
-taccagaatctctgggacgcattcaaagcagtgtgtagagggaaatttatagcactaaat
-gcccacaagacaaagcaggaaagatccaaaattgacaccctaacatcacaattaaaagaa
-ctagaaaagcaagagcaaacacattcaaaagctagcagaaggcaagaaataactaaaatc
-agagcagaactgaaggaactagagacacaaaaacccttcaaaaaatcaatgaatccagga
-gctggttttttgaaaggaccaacaaaattgatagaccgctagcaagactaataaagaaaa
-aaagagagaagaatcaaatagacacaataaaaaatgataaaggggatatcaccactgatc
-ccacagaaatacaaactaccatcagagaatactacaaacacctctacgcaaataaactag
-aaaatctagaagaaatggatacattcctcgacacatacactctgccaagactaaaccagg
-aagaagttgaatctctgaatagaccaataacaggagctgaaattgtggcaataatcaata
-gtttaccaaccaaaaagagtccaggaccagatggattcacagccgaattctaccagaggt
-acaaggaggaactggtaccattccttctgaaactattccaatcaatagaaaaagagggaa
-tcctccctaactcattttatgaggccagcatcattctgataccaaagccgggcagagaca
-caaccaaaaaagagaattttagaccaatatccttgatgaacattgatgcaaaaatcctca
-ataaaatactggcaaaccgaatccagcagcacatcaaaaagcttatccaccatgatcaag
-tgggcttcatccctgggatgcaaggctggttcaatatacacaaatcaataaatgtaatcc
-cgcatataaacagagccaaagacaaaaaccacatgattatctcaatagatgcagaaaaag
-cctttgacaaaattcaacaacccttcatgctaaaaactctcaataaattaggtattgatg
-ggacgtatttcaaaataataagagctatctatgacaaacccacagccaatatcatactga
-atgggcaaaaactggaagcattccctttgaaaactggcacaagacagggatgccctctct
-caccactcctattcaacatagtgttggaagttctggccagggcaatcaggcaggagaagg
-aaataaagggtattcaattaggaaaagaggaagtcaaattgtccctgtttgcagacgaca
-tgattgtttatctagaaaaccccatcgtctcagcccaaaatctccttaagctgataagca
-acttcagcaaagtctcaggatacaaaatcaatgtacaaaaatcacaagcattcttataca
-ccaacaacagacaaacagagagccaaatcatgagtgaactaccattcacaattgcttcaa
-agagaataaaatacctaggaatccaacttacaagggatgtgaaggacctcttcaaggaga
-actacaaaccactgctcaaggaaataaaagaggatacaaacaaatggaagaacattccat
-gctcatgggtaggaagaatcaatatcgtgaaaatggccatactgcccaaggtaatttaca
-gattcaatgccatccccatcaagctaccaatgactttcttcacagaattggaaaaaacta
-ctttaaagttcatatggaaccaaaaaagagcccgcatcgccaagtcaatcttaagccaaa
-agaacaaagctggaggcatcacactacctgacttcaaactatactacaaggctacagtaa
-ccaaaacagcatggtactggtaccaaaacagagatgtagatcaatggaacagaacagagc
-cctcagaaataacgcccatacctacaactatctgatctttgacaaacctgagaaaaacaa
-gcaatggggaaaggattccctatttaataaatggtgctgggaaaactggtagccatatgt
-agaaagctgaaactggatcccttccttacaccttatacaaaaatcaattcaagatggatt
-aaagatttaaacgttagacctaaaaccataaaaaccctagaagaaaacctaggcattacc
-attcaggacataggcgtgggcaaggacttcatgtccaaaacaccaaaagcaatggcaaca
-aaagacaaaattgacaaatgggatctaattaaactaaagagcttctgcacagcaaaagaa
-actaccatcagagtgaacaggcaacctacaacatgggagaaaattttcgcaacctactca
-tctgacaaagggctaatatccagaatctacaatgaactcaaacaaatttacaagaaaaaa
-acaaacaaccccatcaaaaagtgggcgaaggacatgaacagacacttctcaaaagaagac
-atttatgcagccaaaaaacacatgaaaaaatgctcatcatcactggccatcagagaaatg
-caaatcaaaaccacaatgagatatcatctcacaccagttagaatggcaatcattaaaaag
-tcaggaaacaacaggtgctggagaggatgtggagaaataggaacacttttacactgttgg
-tgggactgtaaactagttcaaccattgtggaagtcagtgtggcgattcctcagggatcta
-gaactagaaataccatttgacccagccatcctattactgggtatatacccaaatgactat
-aaatcatgctgctataaagacacatgcacatgtatgtttattgcggcattattcacaata
-gcaaagacttggaaccaacccaaatgtccaacaataatagactggattaagaaaatgtgg
-cacatatacaccatggaatactatgcagccataaaaaatgatgagttcatgtcctttgta
-gggacatggatgaaactggaaatcatcattctcagtaaactatcgcaagaacaaaaaacc
-aaacaccgcatattctcactcataggtgggaattgaacaatgagatcacatggacacatg
-aaggggaatatcacactctggggactgtggtggggtgtggggaggggggagggatagcac
-tgggagatatacctaaggctagatgacgagttagtgggtgcagcgcaccagcatggcaca
-tgtatacatatgtaactaacctgcacaatgtgcacatgtaccctaaaacttaaagtataa
-taaaaaataaataaataaataaataaataaaaaaggaaaggctttcagcttttcttcatt
-caatatgatgttagctgtgtgtttgtcacatatatgacctttatttattttatttatttt
-atttttttgagacggagttttgctcttgttgcccagggtgtagtgcagtggcacgacctc
-agctcactgcaacctctgccttctagtttcaagtgagtctcctgcctcagcctctcgagt
-agctgggattacaggggcccaccaccacacctggctaattttttttgtatttttagtaga
-gacagggtttcatcatgttggtcaggctggtctcgaactcctgacctcgtgatccgcctg
-cctcagcctcccaaagcgctgggattacaggcgtgagccactgcgcctggccatatgacc
-tttattatgttgaggtatgttccttctgtgcctagtttgttgagtttttaatcatgaagt
-ggtgttgaattttatcaaatgccttttcctgcatctattgagatggtcatattgtttatg
-tccttcattttgttgatgtgtcatgtttatcaactggcatatgttgaatcatttttgctt
-ctctgggataaatgccatttgattatgatatattacctttttgatgtgctgttggatttg
-acttgctagtattttgttcaggatttctgcaggatttcatcagggatattggcctgtagc
-ttctttcgttttgttgtgttcttgtcaggttttggtatctgagtaatgctggcctttaga
-atgctatagggagaattccttcttcaattttttggaacagtttgaggaggattcatgtta
-gttatttatacatttggtagaacttggtaaaccagtgaatccttctgatcctgggctttt
-cttcagagattttttattacgaattcaatcttatcacacattattggtctgttcaggatt
-tctgtttctttttgatttaatgttggtggctggtatgtgtgtgggaatttaccttttccc
-ctagattttcctgtcagtgtatacttgttcataatagtctctgatgatcttttgtattct
-gtgatatcatgtgtgatgtctccttttttcttttctgattttaacacacaaaagtataaa
-tcactggtacagcaaatgcataaatgaggaaaagacccaaatgttaccactacagaaaac
-cactaaaccataattataaataagagagaaaaaaaaggctatacaaaacaaccaaaaact
-aattaccaaaacgacaagaaaaagtcctcatatataaatagtaagtttgactgttaagtg
-gattaaatattccacttaaaacatataggctgtctgaatgaattttttaaaaaagtgacc
-cagtaatgtaatgcctacaagaaactcacttcaactgttaagacacatagactgataata
-aagggatagaaaaagatatctcatgcacacagaaaccaaaagcgagcaAAGAGACGATGG
-CAGTACGTTCAGGTAGgagataagcttccatgacctcagctgccaccattccccacaatg
-ccccagctacccaagagaccctgagcccactcaactagtacattacttgtacaagtagta
-cgttactactatagctggcatttgagagagccactacagtaaagctatttgcaaccaagg
-aaatcataaaaagtctacataactcctcgacacgcccatcagggctaatgattgtggttg
-ccattgggaaacctgagggcaagcctgccccatcgagctgtgcccaactttgcccccact
-ttggggctgagaatggagcccatgccactgtgcattccacagacagaccatttcctgaga
-caatactgtttctcccagtaaacaaagatcaaatataaactccctgctatcaccgcatcc
-agctcttaactgcaagtgccacctactggcctggaggtcaaactgcacaacccgatagaa
-gtgttgacataagcgtacagtgctcgagaaaaagataagcgtctcaggacctctgccact
-caagatctgcaggagactgtgagcctcatcacatgcctagtacatcactactacaactgg
-catttgagaaagtcaccgcatgaaggctatttataaccaaggaattcatacagagTATAT
-GCCATTCTCCCCATCATTACCACAAgtgctggtgtttgtgcctgccaatgagctatttga
-aggaaagtttgacagtttagctccacccagctttatcctccccttaggggctgagcaggg
-agctcaggccagtgtatattccatagactgtcccttgcctgaggcaacagagagcttctc
-cccgtaaacaaagatcaagcatacacccacctgcttctgcccagattttattcataagca
-ccacatagtagcctggaggtctaactacacaacccagtaaaaaactggcttacacaagtg
-cacagcacggggaaacaagttaagcttcctaagacttctgcactctagccctgcaggagg
-cagtgagcctagcccagcacatcactactacaaccagcatttgagaaagccaccacacaa
-aggctatctataatcaagaaactcatacagactctttgccactgaaagcacccagaacca
-aggccaaataaccctacacaatgtatattataatcacatcctcaagggggaaaaagtcct
-gaccaaatgaaagtaaatttaaaaataagaacagatagttgatccaaatgagaaggaacc
-caagaaacaattctggaagtataaaaaaaagagtgttacaacaccccaaaggattgcact
-aactcttccacaatgaaccctaaccaaaatgaaatctttgaaataccaaagaattcaaaa
-tattaattttaaagaatctcagtaaggtccaagagaaagtaaaaaatcaatacaaatcag
-aaatataactcaggatatgaatgaaaaatctactaaagagatggattttttaaaatagtt
-tttttgttgtttgtttgtttgtttgttgttgttgttgttgttgttgttgagatggagtct
-tgttctgttgcccaagccagagtgcagtggtgcgatctcggctcactgcaaactctgcct
-ccagggttcaagtgattctcctgcctcagcctactgagtagctggaattacaggtgtgtg
-ccactacgcccagataatttttttttttatttttagtagagacaaggtttcaccctgttg
-gccaggctggttttgaactcctgacctcaagtgatctgcccaccttggcctcccaaaatg
-ctgggattacaggtgtgagcccactgtgcccagcctaaatagttttttcaaatgaacttc
-tgtaattgaaaaattcatttaagaaattacaaaatatagttgaaagctctaacaatagac
-taaaccaagcagaagaaagaggttcagaacttgaagacaagtctcttatgaattaaccca
-gtcagacaaaaataaagaaaaaaattttaaaaatgaacagagctttcaagaagtatgaga
-ttatgtaaagtaactgaacctatgagtcacaggtattcctgaggaaaaagaaaaagtgag
-aagtttggaaaaactatttgaggaagtaattggggaaaacctctttagtcttgctagaga
-tttagacatctaaatgaaagaggctcaaagaatgccaggaagatacattgcaagacagac
-ttcatcaagatatgtagtcatcagactatctaaagtcaacatgaaggaaaaaaattctaa
-aatcagcaagagaaaagcatacagtcatctataaaggaaatcccatcagaataacaatgg
-gcttctcagcagaaaccttacaagccagaagagattggatctaatttttggacttcttaa
-agaaaaaaaaacctgtcaaacacgaatgttatgccctgctaaactaagcatcataaatga
-aggggaaataaagtcaagtctttcctgacaagcaaatgctaagataattcatcatcacta
-aaccagtcctataagaaatgctcaaaagaattgtaaaagtcaaaattaaagttcaatact
-caccatcataaatacacacaaaagtacaaaactcacaggttttataaaacaattgagact
-acagagcaactaggtaaaaaattaacattacaacaggaacaaaacctcatatatcaatat
-taactttgaataaaaagggattaaattcccccacttaagagatatagattggcagaacag
-atttaaaaacatgaactaactatatgctgtttacaagaaactcattaataaagacatgag
-ttcaggtaaaggggtggaaaaagatgttctacgcaaacagaaaccaaatgagagaaggag
-tagctatacttatatcagataaagcacactttaaatcaacaacagtaaaataaaacaaag
-gaggtcatcatacaatgataaaaagatcaattcagcaagaagatataaccatcctactaa
-atacatatgcacctaacacaagactacccagattcataaaacaaatactactagacctaa
-gagggatgagaaattacctaattggtacaatgtacaatattctgatgatggttacactaa
-aagcccatactttactgctactcaatatatccatgtaacaaatctgcgcttgtacttcta
-aatctataaaaaAATTAAAATTTAACAAAAGTAAATAAAACACatagctaaaactaaaaa
-agcaaaaacaaaaactatgctaagtattggtaaagatgtggggaaaaaagtaaactctca
-aatattgctagtgggagtataaattgttttccactttggaaaacaatttggtaatttcGt
-ttttttttttttcttttctcttttttttttttttttttttGCATGCCAGAAAAAAATATT
-TACAGTAACTATGGAACACAAAGGTTTATTACATCCATAATTAACATGGAACATTTACTT
-ATCAGTTTGACAAGGACAACACTGAGACCTCTTAGGACAGAGAGAAAGGGCAATTTTCAA
-AGGAAAAAAGCATAGTATATGCATATttaataagtaaaacatacacataccctgtgactc
-agccattgtacatctagctgtttatccaagagaaatgacagcatatggctacacaaagag
-ttgcacacaaattttcaatggcagttttatttgtaatagctaacatctgaaaacaatcat
-aatgttcattagggggtaaatggataaatgatcatatatgcataaaaagtaatacaagca
-ataaaaaggaatgaactattggtacacgaaacatatatgattcaaaataattgccttgga
-tggaaaaagacaagcggaaaagtatacatgctatattacttcatttatgtaatattcaag
-agaatgccaagaaagctacaagaacaaatagcaggtcagtcgttgcctgggtatcatgga
-ggtagagggagggaagggaagaggaaagagtggatgccaaagaggaatgagaaacatttt
-gagagtgaaggatatatacattatgttgattaaggtaatggtttcaccagtgcatctttt
-gccaagttcatcaaattatacactctaaataatgcagtttaatgtacatcaattatatct
-caataaTTTGGAATGAAAAAAAAAAACTCCTCACAAAGAACAAAACCTCTAGGACCTGAT
-AGCTTTCAGTCACAATATAGTCAGGCACTCAAAAAAAAACTTTAACACAATAAAATTCTC
-TTTGAATGCCACCTTAAACTCAATCCCATCCAGAGAAAACAACTTTTATTAGAATGACAT
-GTGATTTGCATTTTTAGTTCATGCATTTACTTATATACACATAAATATAGCTTTTTCACA
-TAAATTAGAATCATTGCTATGCATGTTGTTCTAAAATGTTGCTTTTTCACTCAAAAAATG
-TTTAGTAAGATAAAATCTGCTGCACTCTTTTTAACAGAAGCACAGAATTAAATCATATGG
-ATGCACTTCGTTTTATGCTACTCTACAGAGTGACAAGACTTCTTTGTGCATTTATCTTTG
-AGCACTTATTTATTTCTTTGTAAAAGGCTTTCTAAATTTCCAGATCATCAACAAAGCATT
-AATTTGGTCAGTTAAAAAACAATTGCTTATATCCTTCTCTGAAAAGAATGATGTACAGAA
-AAGAATTATATATATATATGAATAATACATCATAAGTGTTCAGAAAGACATTGTATTTTA
-GGTGGAGAGACAGGCAGGTGACCAGACTGCTACATGCAGTAAGATGAACCCTGATAGAAC
-TAACACTGGAGGCTGTGAAAAAACTGCTAGGAGCACCCAGCCTTGGTAGAGCAGCATAAT
-TTCTTCCTGTAATTCTTTCTCTCCAAATTGCCATACACTTCAGCAGAGTTTGCAACTTCT
-CTTCTAAGTCTTTATCCTTCCCCCAAGGCATGCCTAGCACAGGACTCTTGAACAGTGATG
-CCTCAATTAGAGTTGCTAGCCAATAGATTGAAGCTATGTTGGCACAATATCCTACATCCT
-CCCGATCTACTGGCTGAGCCCAACCCCACCTAAGAAGGACAATAAAGATCTGTGTTCAGA
-GTCATACTGAATAGAGACTTCTGGACTCTATAGAACCCACTGCCTCCTGATGAAGTCCCT
-ACTGTTCACCCTTGCAGTTTTTATGCTCCTGGCCCAATTGGTCTCAGGTAAACAGAATCT
-TGGGGAAGAAGAAACACTGGCCTGGAACAGGGTCCTGCACATGGAGTCCCTGTTTCTAAG
-TGGTCTGTGGAAATGGGGTCTGGCTTCTCACTGGGAGCAGGGCTGAGATTTGTCCTACTT
-CTTCAGACCACCTCTGTTCTAAGAAACTTGAAGGCTCTCAGGATAGAGCAGGATCTGTGA
-TCGGAGCTGGGGAGGAGGGTAAGGCAAATCCCATACAGTTGCCTCCAAAGGTAGAAATGA
-TCTTGAAATCCCAAACTTCTATCCTGTCACTTCGGGTCAGTCCAGTCAAGCCCTGCCTCA
-TTTCACTTTTGTTTTTTTTGCTGCCGATATTCCCTCCTGAGGTAACAATTATATAATATT
-ACTTCCCCCAGTTTTCTTGGTCTTACAGAGAGGTCTCTGATTTTTTGTTTGTTTGTTTGT
-TCTTGGATGTGGTTAACAGAACAGGAAAGGCTGTTTCTATATATGTATAGGACTGTAAAA
-TGGAAAATGAAAAAAAAAATTCTGTGTGGGAACTATTGGAAGTCTATATCAGATTTCAGC
-TCTGTTTGTGTAAGCATTTCTTATTTTTAATTTATTCTGTAGCTTATATTTACAAAACCA
-AGACAAGAACACTGAAAGTTATTTAGAAATAAATTGGCCACATTTCATCACTGCTTGCAT
-TTTTTCACTTGTAACCAactgatatatgagcttataacctgctttatttttttacctacg
-attctatcaggaaaattttcacaggtcttgaatattccttgaaaatacaatttgcagtag
-atgcttataattctgtcatatttttgtaccaatattaacttggaaagtccttaattgtgt
-gtcatttggattattttttctaatgtgtgagtactgtaaataacattgtacaaccttatt
-aatatatcattgtgagattctctgtttgtataggtaaattttagaagttccattgcttgg
-tacaagggtattatttcttctaagttaactggcacatattgccaaTGGTTACTATTGGAG
-TATTTGTATTTTTAACATTTGTATTTCATATTTCTTGCAAATATTTTCAAACATATTGGT
-TGCTTCTAAAATGCATTATTTATTTGAGACACATAATTTTCATTTTCATGTCAAATCTAT
-TGGTGTTTTCTTTGCATTCTTCCACTAACTTAGTAAGTCCTTCTCCGTGTTGAGAACAGT
-TATTCACCTATGATTTTGTTTTTTACACCGGACTCAATCCCACCTTTTTACATAAGGCAC
-AATGAAATAAACTAATATTCTTTAGTATAATTTCCTAATGGGTTATATAATAACTCCATA
-GCCCGCCTCTAGAGATAGTAGTTTATATTCCCTAATTTGCAGAAATGTTCAAATTGATAG
-TGGATAAGAGGAAATTATAATGCTCTCATGGTTGTCTCAAAAGATGTTTCAGGCCTATTG
-CATCCTTGAAATTCTATGAGTTTAAATTGCCTGATTTCTCCCTCTGTCTCTGGAACATTA
-GTGACATACATCGACATACATCACATACTTGTATGTTGTCCTTTTTCTACACTTTGTGTG
-TGTGTATATATATTCTAACATATACATATATATAATGTTAAAAACTCAATCATCAGAGGA
-GGATTAAACAGCTGATAAGGGATAATAGTAGTGGTAATAGCATTCAAAAACGTTTGCTCT
-GTTCACTTACTGTCAAttacctcatatttctttcatttattgtacttatcacaatctgta
-gttattttgtttattcatttacttgtttattttctttctccccctctccaatgtaaggtc
-ctcaaatcatgtctttctgttcattgttttattccctgcatcttgcagaattcttgacat
-ggtaggcactcatcatatacttgttgattaagtACAGTAATGAGTTAAGCAAGGTAAGAA
-AGAGCTCCAGCGTCACTCTAGGGCCTCTATGTGTTAAACCATGTGATGAGATATTTTCAT
-ATGTATATAATATGTACACATATATAGGCAAACCCTGCAGAATGTCTCCCTAATGAATAT
-ATTCCTAATGGAATGGCTTTTTTTATTCTCAAAATTTTGTAAAATGTACTTATATCTCAA
-TATCATATAGGTATATAGGTATAGATGAAAATTTTTTATTTATCTTTCCATAACTTGACA
-TGACATTTTTAACCAGATAATATGTAAGATAAGCCTAGAGTTATCTTCTAAATATAATTT
-TTAGGATCTCAGAAACATGTAAGGGACATTTTGAAAATCTCACCAATTGGCAACAAAAGC
-CATATGTGTTTCAGTAATGGTGAGAAAGATGACAGCAATTATTTTAGCATTTCTTATTTT
-TGAAATGATAGTTTTTACTTCTGTTTAGGTGTTTGTGTTTTAGCTACATTTTAGGAAATT
-GCTTGGGGATTTTGTGTTCATGTATAACAACATGCTATATATTTTCCCATTTAAAATCAT
-GGGGAATTGGCCCCTGGTAAGTGTTTGTATACAGAATTCTGATTTCAGAAATGAGAATCT
-CATACATATCTAAAGAATTCTATGTGTGTTTATAAAATTTCACTTAATCCTCAAAGTAGG
-TATTTATGATTAGGAAAAACATGCTAAAGCAACTGGAAAGGCACTTGAATAAACAGTGCT
-CAAAAACTATTGCTATTTTTTATCCTCCTGTGATAAATACTTAGGCTTAATAATCTATAT
-AATTCCTTTATTCAGGTAATTGGTATGTGAAAAAGTGTCTAAACGACGTTGGAATTTGCA
-AGAAGAAGTGCAAACCTGAAGAGATGCATGTAAAGAATGGTTGGGCAATGTGCGGCAAAC
-AAAGGGACTGCTGTGTTCCAGCTGACAGACGTGCTAATTATCCTGTTTTCTGTGTCCAGA
-CAAAGACTACAAGAATTTcaacagtaacagcaacaacagcaacaacaacTTTGATGATGA
-CTACTGCTTCGATGTCTTCGATGGCTCCTACCCCCGTTTCTCCCACTGGTTGAACATTCC
-AGCCTCTGTCTCCTGCTCTAGGATCCCCGACTCATTAAAGCAAAGAGGCTTATTCTGGTG
-TCAGTTTTCTCTCTACAGCCCCCTTCCCACTTTCCCTCCATTCAACAGTGTCTGGAAGGG
-CACCACAATTTCACTGCACTCGCATTTCTATGGTAGAAATGCAAATAAGATAGGGGCCAG
-GAACAAGGGAGGGTTAGTCCAAAACACCCACTCAGGAATGATAGATAGTAGCAATGTCCT
-CCTTGAAGACAGTTCTAGGCCCACAGCTTGCCATAGCAATTATCAtcaaacttcatgtac
-atcagaaacacctggagagatggctaaagcacagatttctagggctcacttttagtttcc
-aattctgcaggggagcttgagaatttgcactgctcacaagttcccaggtgatgctagggc
-tgctggtccaggcaccacactgtgagaacAATTAGCTTATAATATGAAAGGATTGAAAGC
-CGACTGTGAATGTGATTTTCTACAGATTGAAGGCTGCATTTCCTATGTAGTTTTGGAGTA
-GATAGTAATACAAAatcatcctacagaatcctccgacaacaacctgagaatgtaggtatt
-ataacctcactttagagaataggaaactTGATTTCTAAGCATTAGAAGACTGGGACAGAC
-TAAATTGACTACTGAGAACATTCTGTCACTGCACCATGAGGTTGCCCAATTTTCTTCTCA
-CCCTGGAAATCCTCATTCATAGCTTCCAACTTAAATATGATGAAAGGGAGATCAAGAGCT
-CTATAATGTGTCCTGAATGTTAGGACAGGCACTCATCCCAAGCAATAGAATGTTTTCCGT
-ACATTACATTACATTGATGCTCTGCCTGCACCAATAAGAGAATATGACTGGGTGTATCAT
-AGTCATCCATCCATGCCTCAGGCCCACTTCCCTGATAGTTGGACAGGGAGAATAGGGAAT
-GCAGATGCCTTCGCTTTCTGGACACTTACAGTAGCTGTGTTTGTCTTTGTCATCTCAGTT
-TGCTCACTTATGAAATGCTAGCGTTTTACTCAGTATCTTTCTCCCCACCCCTGTCATAGT
-ACATCTTTCTGATTCTGAAGATATAAGATTGGCTTATGTTTTGTGGGGTCAACTTCACCT
-TTGACCCCATAAGATCCTAGAGATTTAATGTAGATATATAAAAGTTGGAGAAAACATTGG
-TGGAAGGGTTTTCTCCACTATAGACACAAATCCATGAGTGTCATCACAGACTCCTTTTCC
-TTCTTCACTTGATTCCAGTGAAGATCCATGTTCAttctaccacctccaatatgtaccatg
-acctctatctccagctgctgctaggatgattgcaatagccttcccattgattgccctgca
-ttcctttcacactcacgcctaactatcctccacaatgagagccagaatcatttttctgaa
-acacagatctaatcattagactcccctctggcatcttttcccatagcatcctaagacaac
-tcttcagagcagccttcatcactcttggcattcagaacctgccttgcgtttccagtttta
-cctccaaagcactgtcacagggcatcttgctatcccaccaacatacctcttcgtgattgg
-tttgaactcactggattgcttctggttttgagtttttgtacatacttttctgtctCCATT
-TATAACTGCCTGGAAAAAAATCTTTATTTTCTTCTGGAGGACTTTGATAACCACACTGTT
-CTACCCACAATAGAACTACTGCCACCATTTGTGCTCCACTGTTATGACTTACCCAGAATT
-TTAAGTCATCATGTCACATGCCTCACTCTGAATATCTGCTTATGTCTTCTCCCCTACTGG
-ACTTTGAAATTTTATTTAGGAACAGGAACCATCTTATCTTCTCTTTCTCCTACCATCCCC
-TAACAAGATTCTATATTAATTCTTGTTGAATAAGTAAGAGGGATTCTCGAAGGCCAGAAA
-GATCTTTGGATGTTACTGAAATCTCATTTTTATTTATTTTAGATCTTCTCCAGGAAACAG
-GCTTCTGTCTCCTTTAGAAGACATATCTATGATCTATGTCATTACATAGTAGAGGAGTTT
-TGAGAGGTGGCTTGTCCCATGTGGTAGGACATCATTGCCTCTTACACCCATGCTTATCTT
-TGCAGGCAGAACTCATGAACTCACACAAGAAGGTGGGCAGATGGAAGCAAGTTACTTCAg
-cagaggagaatagtaggaaaaaaacataactttagagctggatgtatctgaggtcattca
-tgatcccaccatatatccactcttggaccacagacaaatgatttcccatcttcgagcctg
-ttactgaatttgaagaacagagaaaatactcactcccactcaaggtactttgagggttgc
-cagagtaatctattaaaatgttaatcataTCATAGGGATTCAGCTGTAACAGGTTGTTCC
-CTGGATAAGAAACAGTACAGCACATTTCCCCAGGGCCCTGCCCACTGGGCCTTGGCTGTC
-TTGCCTGAGTATGGGTGATTATAGCCTATGTTTCACCTGGGGGAAGACGCATTAGGCTGA
-GAAGAGTGTAACAGAGTTGAGGGTCATGGGATCTCTTTGAACAGCCAGATGAGATTTTAA
-AGGTTCTAGTAGAACTTGCTGTGCTTACTTTTCAATAATCACCTTGATCACTACCTTGGA
-AACATCTTAGAGCTATTATCACATTGATTCTAGACGATGAATATAATCTCAGTGCTGCAG
-CCTGAAACATTGTCCTCCTGTCCTCTTGCCTTATATCTCATCCGTCCTTCACGCAGTGCT
-GGAACTTAGGTGGCAAATATTCTTTTCCCACTTTGGAGTTGACTAATGGCATTAGGAGGC
-CAAGGGAAAAGGAATCTTTATGGTGAGAGAAACTGCAATGTGCCAAGCACATTAATACAC
-AATTTCTTAAACAAAAGCATTGTATGATAATtatgacaacatgattaaagctgaggaacc
-tggagtaaaatgtatctagggttacatctaggtttgttccttactacttttactcatcat
-gtggtctctatatcaatttcttcatttgcaagacaggtataatcatgcatctacctctta
-gaatcactctaaaaattaaaatagataaggcatataggtcaccgtgatctctagcaccaa
-tgaaattctaagaaatgtagatttTAAAAGGCATATGAGATATAGGTTATTCTGGTTTAA
-AATATGAAACGTTTAAAAAATAAAATATGTAAGTCCTGAGTTTCCGGGAGAAAAAGGGTC
-TTGCACAAGAACAACCATATTTGGGAGGCAATTTTACCTGTTCTCAAGGCCGCATCTCTA
-CCCCATCTCATGCGAATCCTGACCCATATTTGGGAGGCAATTTTACCTGTTCTCAAGGCC
-GCATCTCTACCCCATCTCATGCGAATCCTGACCCATATTTGGGAGGCAATTTTACCTGTT
-CTCAAGGCCGCATCTCTACCCCATCTCATGCGAATCCTGACGACGTCCTCAAAGCTGAAT
-AAATTTTTGCCTTAAATAAATTAAACGAGATTTAGATTTCACCAGTCACTGATACTCAAT
-CCCAATTGGATATTCATTCAAAAGTCTGACTTCTCTCCTGAGGTGAGAGTAAGATTCCTG
-GGCACTTTTTCATAATACTTACCTTAACCTAGCTAAACACAATGGACACTCTTCTTTGAG
-gtgtcagtggaaattaagaggagagtctgaactcttacctcccacatggggcttgcagac
-aggtgaagatggcgctcctcccctttgttggtaatggagacctagaagaaaggctgggca
-tccagctcccacgcagtcatatgaagcagcccagagcaacattccccttcactgcctgtg
-cggtggcagtagagacctagcAGTAGAGACCTAGCTGGGAGTCAGATCTCCCATCCCTCA
-ACCAGTGGTAGTGATTGGCCTGGGgaggaatcccttccctgctggtgccatgtcagtgaa
-aactgaggggagactgaaattgcccttccttccaatagtataaaaggcctgaagcagact
-tcccttcccagccagtacattaccattgaagaccaaggggtggtctcaacttcaatccct
-aGGGAGCCGTGGCTGGCATCAACCCTCCTTCCAGTCAGTGAGGATAGAGGATAGGAGGGT
-GCTGGAAAATAGGTGTCTTTAAAACTGAATAATGTTGTTTTTACCACAATTTTAAAAACT
-GAATAAGAAGACATGGCAGACCCCTGAAACTGGATAACTACACACGGAACTAACCAGAAT
-TAACATGCAGAAGGTTTGAGAATAGAACTGCAGTGGGGAATACCACCTAGATTTTTAaaa
-taacaacttgtatatatttaaggatatatgcaatatgatgttttgatatacatagacata
-gtaaaatgattgctataatcaaattaacatatccttctcttcacatagttatcatttttt
-gaggagacagcacctgaaatccatcttcttagcaaatttctagtatacaacaccatatta
-ttaactagagtccccatactgccctttagctctctagactttatcctacacaacttcaac
-tttgtacccttcgacgagcatccccccatttcctccaccacccgccccacccctgataat
-cactggtctacactcttctatgtatttgaatttttaaattccatgtataagtgagatcat
-gctgtactttttttctgtgtctgtcttatttcacttagcataatgtcctctgggttcatc
-catgttgttctgaatggcaagctctcctttgtcaaggctgaataatatgccattgtatat
-atatacaatttatttagtgtgttcatctatcgatgtcgatagatgataatgtcttcatct
-atcagcttaggttgatttcatatcttggctattgtgaataatgctgagcacagatatctc
-tacatggtgccgatttcatttctttttggtatataccaagacgagggattgatggctcat
-atactagttctgtttttatttttttgagaagcctccatactgttttacatcattgttgta
-ctaatttacatttccaccaacagtgcgcaaaagttccctttacattctcaccaatacttg
-tgatctcttgtctttgtgataatagtcatcctaacaagtgtgaagtgatttctcattgtg
-cttttgatttgcatttccctgatgattagtgatgttgagcacctttccatacacttgtta
-gccacttttatttcttctccagaaatatttctgttcatgtctttgcccaattttcaagtg
-ggctctttgttttttgctactgagttgtgtatgtttcttatatgttttttatattaacct
-tatgtgatatatggtgggcaagtattttcctcccatcccataaactgccttctcactctg
-ttgactgtttcctttgctgtgcaAcaaatgatcttcaatgataatacaaagaatatgcaa
-tacagaaatgatagtcacttcaacagatggtgttgggaaaactggatttccacaggcaga
-acaaatgaaatggatccttatcttacaccacacacacacacacaaactcaaaatggattt
-aaagacttaaatgtgagcctggcaaacttaaaactcctaaaataaaacagaagggaatat
-ctttatgactttggtctaggcaacagttgcttgaatatgacatcaaaaccacaagcaaca
-aaagcaaaaatatattagtgggactatggatacatttgaaacaaactacaaactagtaaa
-atctcagcaaagaaatagaagatataggccaggcacggtggctcacgcctgtaatcccag
-cattttgggaggccgaagagggcggatcacgaggtcaggagatcgagaccatcctggcta
-acatgataaaaccccgtctctactaaaaaaaaaaatacaaaaaattagtggggcatggtg
-acaggcacctgtagtcccagctgcttgggaggttgaggcaggaggatggcgtgaacctgg
-caggcggaggttacagtgagccaagatcatgccactgcactccagcctgggtgacagagc
-gagactccatctcaaaaaaagaaaaacagaaaaaagaaaaagaaatagaagatatgaaaa
-taatcaaatggaaattataaatttatgaaatgtaatcaaagtaaaaaagaaaaagtcact
-gtataggctcaatagtagatggaacatgacagaggaaaaaataagacagatctatagaat
-tacccaatctaaaaacagagaaaaatagactgataaaaatgaacagagccacagatacct
-gtgggacataaaaagatctaatgttcatgtcatcagagtcctcaaggagagggagagtgt
-ggaactgaaaaaaatatttgaaggaataatgcctgaaaaatatcccaagtgtggcagaat
-acatacatctgtaattcaagatcttgaattaacccaaaacaagataaacccaaagaaatc
-catgccaagataaagtataatcaaactaaaactaatagctagagacagaaaaaaatcaag
-cgagcattcagaaacaatacaccacccatggtaaaacaatggtttgattgatgggatttg
-tcatctgaaaccatggaagcaaaaaagaaatgtcatcacatgtttcaaatgccaaaataa
-agaactatcaaatccaaatcctatatctagcaaaaaaaaaaaaaaaaaagttctctagga
-ataaacagggaaagaaaaacattctcaaacaagaaactattaagggaatttgtcactagc
-agccctatcctaaaaatatagtcaaagaaagttctctaaaccaaaatgataaccgggggc
-ttggaacttcagaaaggaagaagtcgaagtcaatagaatgggtaaaatgggaggtgaata
-taatagactatgcttttttttttgctttattttttttttatgctttcttttcttgagata
-gtgtctggctctgtcgcccggacaggagtgcagtggtacaatctcagctcactgcagcct
-cgacctcctgggatcaaaggatcttccctcctgagcccagtgagtagctgggaccacagg
-agccggctaatttttatatttttttgtagagacagggtttcactgtgttgcccaggctgg
-tctcgaactcttagactcaagcaatctgctgcctcggcctcccaaagtgagactatcttt
-ttattaaagagttttgaaatcatgtttggtagattgaagcaaaaattgtaacattgtctg
-atgtggttctaaatagatgtagaggaagtacttaaacattataagctgggtaaggcaaag
-aaatttaaagtgaggtaagtttttatacttcattcaaacttgtaaaactttgacaccgta
-gactgtgataagttaggtacagcaaccactaaaaaaaataaataaatacaataagaaatt
-atagctaaattatagtggaattctaaGgaacaaatagaaaacaaaatataaaatggtaac
-ttaatccctaacatgtatcaaaaagataccccatacaaatattaatcataagaaagtagg
-aatggctatattaacatcagttaaagcagacttcagagcaaaacaaattatcaaggacag
-agagggaaattatataatgccaaaagggtcaatcaaccaagaagacatggcagccctgat
-cgtccacaaactgaaaaccagagtttcaaaatacctgaagcaaaaactgataaaactaag
-aggagaaataaatttacaatatcaggccaggcgtggtgactcatccctgtaattccagca
-ctttgggaggctgaggcaggcaaatcacttgagcttgggagtttgagatcacctgaggca
-acatagtgagacccccctctctataaaagatacaaaaactaaggtgtggtggcccacgcc
-tgttgtcccagctactcaggaggctgacatggaaggcttgagcccaggacatcgaggctg
-ccgtgagctgtgcactccagcctgggtgacagagcgagaccccgtctcaaaaaaaaaaaa
-aaaaaaaaaattacaatatcaacttcaacagttgatagataggacaactagacataaaat
-ccacaagggtgtagaagaatttaaaaataccacaaagcaacaggatctaatagacattta
-taaaacatttcatccaacaacaatggaatacactccttggtgtttatgccaaggaaatga
-aagtgtttttctccacaactcccgggcaggaatatcaatggtagtgttatttataatagc
-ccaaaagagtaaacaaccaaaacgtcattcaacaggtgaatgactaacatagggtggtac
-atccatacaatggaatacttctcagcagtaaaaaaaaaaaaaaaaatgaattattgatac
-atgcaacagcttatatagattataagagcattatgctgagtgatgaaaaaagacaaaggg
-tcacatagtgtgtgactatattcacataacattgtctaaaaattatgaaatgtagaacaa
-attagtgctttccaggggttatgaatagtcaggagagggagggaaatatgccagtaagac
-aataagagagggagatcttttcataatgaataattctgtattttgatttgttgatggtta
-aatgaatctaAGAAGGATCTGATAATCTAGTATTAGACGCATAGTACAGTAGTGAACTTT
-CAGCCTCTAGAGAagtgctctccaatagaagtaactaaaaagatggaaatgttctaaatc
-tgtactatacaatatgttagccactggtcatgtggttgtaaagcacttgatatgtgCTCT
-ATAATattttgagcaagtttcttatgttttctgtgcctttgagtttctcatttgtagaat
-ggagataataatatctacctcaaagtgttgctgtaaaggtaaatgagtttatgtatgtaa
-gacaccgacaggagtgccagcacatagaaagtgttatacaagggttagccattTGTTATT
-GTCATTGTTGTGTTTTGTTCTCTTTCTAATGTCTGGACCTTCAAAtgattcagactcatg
-ggaccatacttcattctgtttttataactttaacctgtaagattctcattttaattggaa
-tttcatatttaggaattcttgggtgccttggatatatgaagaaaagattcacatctgctt
-ccactaaacaactagcgaattaacaactgagatttcttataattaaattatttacttgat
-ttttttaatccatataaatagcttgaacttaggttgaaacccatgagaatttgtggctac
-agttcatagggttaatatttaccttctccatccagagccaaggttaaTGCTGACAAAATA
-CAATCTAATACAGATTAATCTGTGTGTGTGTGTATGTATACACTCGTGTCAGAGAGAGAG
-ATTTCATTCTTCCTTAGGCTGAGATTGTTGCCTTTGAATCTCAGGTTTATATAAGGGTAT
-CAATTATATGTCTTCCCTAGGACTAGATCTTAGCTTTATACATCTCACATAGCCATCAAA
-ATAATGTTCAACTTATCTTTCAGGGTTTGCAATCTTAGTTTTTGGCCTGTGCAGATTCCT
-TTCATTTTTGACGGTTTCTCAATGCAGTAATTTCCTTTTTACATTTACCCAACTTTTTTG
-GTTATTTTCACCAGATACATTGTTCAATATATCTATTCTACTATATTCTATTAATAACAG
-TCTACTATATATGTGTCTTATTGTCTAatattgctgaaatctttttttaatccaataatg
-aatctctgtcatctaatcagtgagtttaagccatgtgaatgtattataactactgatcta
-ttaggacttttttctgccCTCCAGTTGTGACTTATCTATTCCTCATTTTTTTTAGTTTCT
-GTTGGATGGATCATATGTTCTTCTGCTAATATGaatattataattttatttttatttgtt
-ttattaaaaatttGTCCTTGCTCTTAGGACCCATTCCTATCCTTATATTTATTATTACTA
-ATTTAACATCCAGCTTCAGAAATACAACTTTAATAGGAAGGCTTTTTGTATTTCTCCTGA
-CTGCTCAGACTTAGGGTCTTTATTTGATGCTCCACCACCAAGTCACCTATAAGGAAAGTT
-TGCATTCACAGGAAGACTATAAATAATAAAACCAATCCCTTGACTAGGACTTAAACCATG
-TAAAAGCTGGTGGCAAAAGTAAAGGGAGGTGACCCTTGAGACCTCTGAGGTAACTGCTCT
-TAAATTTACATTTGCCTCTAAAAAGGATTTCTTATATGTCAACATCTCTCTGTTTAAACA
-TATTCTTGTGTAAAACCACTACGTGACCTGAATAATGGCCATAGGGCTCATCTCTAAGCC
-AACTGGCTTATTTATTTAATGCATCTCAGTGGTTAACAGGGTTGAAATTTTTTGAAAACT
-GCAATCAATGATCAAAGAATGATCTAGGTAAACATCGATTCCTTGTGGCAACATTTTAAT
-ATTTTCAAAGACAAGGTACAACTGGTAGAAAAAAAATACCCTCATGCATCTTTttcttct
-aattgtggtaaaatatatgacataacattggccattttagccatttttCCttttattttt
-agttgacacataattgtacttatttataggatacaaagtgatatttcaatacatgcatat
-aatgtgtaatgatcaaaccagggtaattagcatatccgtcacctcaaacatttatcattt
-gtattgggaacattcaaaatcctctcttctagccttttaaaagtatacaataaattgtag
-ttaaccatattcaccttacagtgctacaacaccagaagtcattcctcctatctataattt
-tgcatccattagccaatctctctccatcctcccctctccctaatcattaccagcctctaa
-tattaatatctgcaacactactctctacttccatgtgctcaacttttttagctcccatat
-ataaataggaacatgtggtaatctttctgtgcctgacatttcacataacataatgtcctc
-caggctatccatgttgttgcaaaggacagaatttcattatttttatgggtgaatagtatt
-ccattgtgtGTGTGTGTGTATATATATATATATATATTCCATTGTGTGTTATGTATGTAT
-AGTATTCCATTGTGTGCatatatatgtatatatgtgtgtacatatatatatacataatat
-atattcttctgcacatggaaatccagtttctccagcatgatttattgaagagggtatcct
-ttccccagtgtatgttcttggtgcttttataaaaaatcaggtgacCTCAGATCAGACCCA
-ACTACATCATACCTTCTTTCGAAATGTGCAAGAAACCTACTAGAAATTCTTATTGTTAGA
-GTTTCAGATTTATGTCCTGGTTTATACTGCCACATTCATTCTTGGAGGTGAGTACATTTC
-GATCTTGGTCCGGCTGCGCAGAGAGTCAAAGCAGGAAAATCACAGATTCTTCCCAGCAGT
-CTACAGCCTACACAGCGGCATTTGGTGCGATGGGATGGAACATGCTGTATCTCTATTCCA
-TGTGGGGGTAAAGTGGGTGGCCTGAAATTTCCTGTGTCTGCCTGCATGATGCAAAGCTCA
-CAGTTCAGAAGCTTAAGGACACACTTCATATCATCCCATCTGTTCTGGTTCAGTGCATAA
-GAATCTAAGTCTCTGAGGAAGGTAGCATAGTGTGCAGTTCACTGGACCAAAAGCTTTGGC
-TGCACCTCTTCTGGAAAGCCTGGCCATGGGGCTCTTCATGATCATTGCAATTCTGCTGTT
-CCAGAAACCCACAGGTAAACCAAACCAGAAGCTCACTCAAATCAACAGTGGGATGGAGCA
-TTTTCAGGAGCCAAAGGGAACTTCATAATCCACACTAAAGGGAAATAGAGCCCCCAAAGA
-TGGCTAAAGTTTATCCAACATCATCAGAAATTTCCTCTTTCTGGAGCCTTATTCCATGTT
-ACTATCCTTAAAGAGGAGTACTCACTGAGCTAAAAAGAGGTCATAATTTCTTCTGGGAAA
-GATGTGTTGTTATAGAAAGGAATGATGCCAATATCTAGGGATACCTTTATGTCTTTGGAT
-ATGGTTTTTACTCTGATGCTCAGCTATATTTCCTTTTACTCAAATATATATAtgtgtgtg
-tgtgtgtgtgtgtgtgtgtgtgtgCATGAatagaggaagaagcaaattttggagttaggt
-ttaagaaacatgccttcaatatctactagtttgtcaactttaagtagtgaagactctagg
-agcctcagtttcctcatctatggagataatgacacctggttaacaggggttttattaaat
-gatataacctatgtgaagcttggcacatactgagaactcaaaaatTAGAGTTTCCTTTCC
-TCTTTCAAAACCAGATTTCTTACATGTGTCCCTTATTATAAGAATAGTAATGGCCTATTC
-CTGACCCTCTACATTCCTAAGACCCAATAGACTACTACCTTACTGGATAACATGAAAGTC
-ATTCTTGACCCTGATAGTGGGTTTGAACTCAGGAGAACAGTTTGATTCAGACATAAACAC
-ATAGTAACAATACATTGTTCTCTGGGCATCAGAGGAGGTGCAGTAGAAGGTAGTGCTCTG
-GGAGCATTCAGGATGCAGGCAGATTTGCTGAGGTTCCTATGTAGAGCATAGTTCCATAGC
-CTAGAATCAAGGGTTCAGCTCCTTTATTTTCTCAGATAAGATCTTATGTTCTTGGCAGAG
-TCTATCAGATGTTAAGGGAGGCCTAAAACCTCACAGGACCTAAATATAAGTGATCCAGTT
-AAATACAAACACTGAGGTTGACCTTGTCGGAAAATCCTCTTCAGAATATATGAGGGTCTG
-CCTTGTGGATACCCCATACCCCTAATTCCTACAAGCCTCCTCTGTCTTCCCCAAAACCAA
-CGTGCCTTCAGTCTCAAACACTGATATTGTTCTATTGCTCCTTTCTGTGTATAGTAACCG
-AACAACTTAAGAAGTGCTGGAATAACTATGTACAAGGACATTGCAGGAAAATCTGCAGAG
-TAAATGAAGTGCCTGAGGCACTATGTGAAAATGGGAGATACTGTTGCCTCAATATCAAGG
-AACTGGAAGCATGTAAAAAAATTACAAAGCCACCTCGTCCAAAGCCAGCAACACTTGCAC
-TGACTCTTCAAGACTATGTTACAATAATAGAAAATTTCCCAAGCCTGAAGACACAGTCTA
-CATAAATCAAATACAATTTCGTTTTCACTTGCTTCTCAACCTAGTCTAATAAACTAAGGT
-GATGAGATATACATCTTCTTCCTTTTGGTTTCTTGATCCTTAAAATGACCTTCGAGCATA
-TTCTAATAAAGTGCATTGCCAGTTTTCTGTCTCATTTTGTTCTTTAACCAGGGGTTGAAC
-ACTCATTATATACTAGGTAATGAATTGATAAGAACTCAGAACCTCTCCTTGAAAAGGGGA
-TATGACAAGTACACTAAAAAAAAAAAGTCCTATAGTGTGGAAGTCTGGAATAAGAAACTC
-AGAAACACTGACATGTAATTTAGGAGAGGGAAAGGTGAAGCAAATATTCAGGGGAAATTC
-ATGAGTAAGTTTAGGAATAAAGCAGTGTCTTGTAGTAAATAAGTAAATAGTAAAGCAGTA
-AATAAGTAGGATTTCCATGGATGAGGTTTGGTAGGGAAGGCAATTTGAGTGAACAGAATG
-GGAGGAAATTGGAAAAGACAGAACATTTCAAGACACTATACATGCACTTTGTTTGGATGA
-AGAACAGAGCACTCAAAGTTGAACTATGGGGGAAGTCTGATTTCCTAAGCTCCTGTGTAC
-CAGCAGTGAACTGGGAAGACGGAGATAAATAAGATTCCACTGTTGTGGAGCTCAACAGTG
-GAGCTCAACGCTTCCTCTATGAAGTGGAGAAGACCTAAGTAAATAACTCCAACACAAAAG
-TTTTTAGGTTTTTGCTttgttgttgttgttgttgttgatgtGTTCATCTTTTTTGTTATT
-GGGGCCCTGTGGAGTTTAGGGGAAATGTAAAAGATCTAGGAATTGGTCCAAATTGTAGTG
-CTTTCATTGTCTTGATATGCAAGAAGAATAATCCATGTACATACTCTGCTGAATTCTTAA
-AGATGTACCTTCTGAATATGATTAACATGGAAAGTTTCTTCTTCAACTACATTTCAAAGT
-CATTTGCTAGTTTTGTTTCTTATATCATTTCACCATAACAATTACAAGCATTTTAAAGAT
-TTAGTTCATCCACTATAACATTTACCACTAATGTGTGGCATGTGTTCTCTTAATCTCTCT
-CTTTCTGGTGttctagggctggtatagggagcacctaaaacaagcctaaaatatcttgtg
-gtgccagaaagtaagcaattgcttaataatcaaaggatagggtctgcaaacacggacaat
-ttgacttcctcttttcctaattgaataccctttatttccttctcctgcctgattgccctg
-gcgagaacttccaacactatgttgaataggagtggtgagagagggcatccctgtcttgtg
-ccagttttcaaagggaatgcttccagtttttgcccattcagtatgatactggctgtgggt
-ttgtcatagatagctcttattattttgaaatacgtcccatcaatacctaatttattgaga
-gtttttagcatgaagggttgttgaattttgtcaaaggctttttctgcatctattgagata
-atcatgtggtttttgtctttggctctgtttatatgctgcattacatttattgatttgcgt
-atattgaaccagccttgcatcccagggatgaagcccacttgatcatggtggataagcttt
-ttgatgtgctgctggattcggtttgccagtattttattgaggatttttgcatcaatgttc
-atcaaggatattggtctaaaattctctttttcggttgtgtctctgcccggctttggtatc
-agaatgatgctggcctcataaaatgagttagggaggattccctctttttctattgattgg
-aatagtttcagaaggaatggtaccagttcctccttgtacctctggtagaattcggctgtg
-aatccatctagtcctggactctttttggttggtaagctattgattattgccacaatttca
-gatcctgttattggtctattcagagatgcaacttcttcctagtttagtcttgggagagtg
-tatgtgtcgaggaatttatccatttcttctagattttctagtttatttgtgtagaggtgt
-ttgtagtattctctgatggtagtttgtatttctgtgggatcggtggtgatatccccttta
-ttgtatatgtagaaaaccccattgtctcagcccaaaatctccttaagctgataagcaact
-ttagcaaagtctcaggatacaaaatcaatttaccaaaatcataagcattcttatacacca
-acaacagacaaacagagagccaaatcatgagtgaactaccattcacaattgcttcaaaga
-gaataaaatacctaggaatccaacttgcaagggatgtgaaggacctcttcaaggagaact
-acaaaccactgctcaaggaagtaaaagaggatacaaacaaatggaagaacattccatgct
-catgggtaggaagaatcaatatcgtgaaaatcgccatactgcccaaggtaatttacagat
-tcaatgccatccccatcaagctaccaatgcctttcttcacagaattggaaaaaaactact
-ttaaagttcatatggaaccaaaaaagagcccgcatcgccaagtcaatcttaagccaaaag
-aacaaagctggaggcatcacactacctgacttcaaactctactacaaggctacagtaacc
-aaaacagcatggtactagtaccaaaacagagatgtagatcaatggaacagaacagagccc
-tcagaaataacgccgcatatctacaactatctgatctttgacaaacctgagaaaaacaag
-caatggggaaaggattccctatttaataaatggtgctgggaaaactggtagccatatgta
-gaaagctgaaactggatcccttccttacaccttatacaaaaatcaattcaagatggatta
-aagacttaaacgttagacctaaaaccataaaaaccctagaagaaaacctaggcattacca
-ttcaggacataggcatgggcaaggacttcatgtctaaaacaccaaaagcaatggcaacaa
-aagacaaaattgacaaatgggatctaattaaactaaagagcttctgcacagcaaaagaaa
-ctaccatcagagtgaacaggcaacctacaaaatgcgagaaaattttcgcaacctactcat
-ctgacaaagggttaatatccagaatctacaatgaactcaaacaaatttacaagaaaaaaa
-caaacaaccccatcaaaaagtgggtgaaggacatgaacagacacttctcaaaagaagaca
-tttatgcaaccaaaaaacacatgaaaaaatgctcatcatcactggccatcagagaaatgc
-aaatcaaaaccacaatgagatatcatctcacaccagttagaatggcaatcattaaaaagt
-caggaaacaacaggtgctggagaggatgtggagaaataggaacacttttacactgttggt
-gggactgtaaactagttcaaccattgtggaagtcagtgtggcgattcctcagggatctag
-aactagaaataccatttgacccagccatcccattactgggtatatacccaaatgactata
-aatcatgctgctataaagacacatgcacacgtatgtttattgcggcattattcacaatag
-caaagacttggaactaacccaaatgtccaacaataatagactggattaagaaaatgtggc
-acatatacaccatggaatactatgcagccataaaaaatgatgagttcatgtcctttgtag
-ggacatggatgaaataggaaatcatcattctcagtaaactatcgcaagaacaaaaaacca
-aacaccgcatatcctcactcataggtgggaattgaacgagatcacatggacacaggaagg
-ggaatatcacactctggggactgttgtggggtggggggaggggggagggatagcactggg
-agatatacctaaggctagatgacgagttagtgggtgcagcacaccaacatggcacatgta
-tacatatgtaactcacctgcacaatgtgcacatgtaccctaaaacttaaagtatttaaaa
-aaaaaaaaaaggatagggtcatattaaaagaacacaggagtcggtctaaaagagcttcaa
-atgaccaaagctgcgacaatttgagcaataaaataaataagatagcattggattataata
-caacatataataaatatctatgagtccatgatgatatgaataaataattgaataaattgg
-aaaattggtgagaacagatgtgccatatagaataattcccaataattcatacagatactc
-cctgctgaagaaggtggagcttgacctccctctcccttgagcatgggctgtatttagcta
-cttgtttccaaagagaagtgtgtggaaaggagttaaaaaataatttcacctggataaacc
-tgataaggtcatgtttcagattttatggagaaatcatattgataacatgaacctgtgata
-tgatctgatgagaatggcacttcacttctgttttcttcctcccaaaaccctgcgacccaa
-gacaaacaatgaaaaacatcagaaaaactcaaattcagtggcattctaaacaatatttga
-ccagtatttctaaaaactgtcaaatttatcaaaaaggaagaaattctgagccacagtcaa
-agaccagagaagcctaaagagacaggacaactaaaggtaatgtggtatcctggatggact
-cttggaacaggaaaagaacattaaggaaaaactagtggtgataatagtaataataataag
-tgtagagtcatttagtagcaatgtatttagctgtgatggctgcattgtggtaatataaga
-tgttaacaatagcagaaactgggtgaatatttgggagctctctgtattatctttgcaaca
-tttctataaatctaaaactattctaaaactgaaaatgtatttAAATTTTAGAAAACTGAC
-CACAAAATCAATTTGGCACATTCCTTTTCTTCTTATTTACGAAAGAGCTTCTCatttctt
-cattgaatgcttggtagaatctaatggtaaattcaactggaacggaactctttacaggaa
-gtattgttatagattaagtttattgcaggttaaaaggcaattcagttttctatgccttct
-agtcaactgttgtatttggcatatatacttttcccatgttctaagatttttatacttgct
-atcctaaaactcttgtaatatcttctttttatcttattaatgcctgtaagatatgtaatg
-acaccttctttttcatttttgacatctattatttgttttattttctcttttttcttgata
-agtctcacattcacttattaatttgatttatctttacagaaaacaaattttcttcattaa
-ttttAGTTTAGTTTCCATTTCTTAGACtgtgacttgcattgcccaattgaaagtgattga
-aagtgacaggttcacttccaagtggaaacttaagagccagtgtgtccatgtgcagtggct
-cacacctgtaatctcagcactttgggatgctgaggcgggcagatcacctgaggtcaggag
-tttgagaccagcctggccatggtggtgaagccctgtctctactaaaaacacaaaaattag
-ccaggcatggtggcagggcctgtaatcccagctatttgggaggctaaggaaggagaatca
-cttgagcccagaaggcggaggttgcaatgagctgagatcatgcctctgcactctagccta
-ggtgacagagccagactctttctcaaaagaaaaaaaaaaagagccagtgtgcagtttaac
-cgtctctcatctctctgccaaggtgattgtggaagcactgttgacatagagcctctgtca
-gcctgaagccccgagtgaccatgaaagcagggtcattcttttgacctaaaatagacatct
-agcactgccagaaataaccttttgggaagttactctatgagagctgaggtttgtttttta
-ttTTGttttatatatattttttaaatCAGGAATAACTTAGACCAGGGTGAACAAACTACT
-GCTGTCAGGGCAAATCCAGCCCATAGCCTGCTTTTGGAAATAAATTTGTATTAGAacaca
-cacacacacacacacacacacacacacacacacacatacacacatacacacaAATATATC
-TTCACTAATGTTCTTTTTTTCTTGTTTTTCAAAAACTtttacataccataaaattcacct
-gttttaagtgcacaatttagtgTCATTTCTATTTTTTATTTTCGgtatgcttttcttttt
-gtaactttgttaggtgcatgtttatctttataaaagaaaagccttccttcttttcaaata
-tgagagtttaaagttgtaagtttctctctatacacagcctgagcaccatcccacaaattt
-tcaatatagagtatgttcattgttacattataaaccttctcatttctcttAAACCATGAG
-CATATAAATAACATATAGATTATATAAAGACTATGGATACAAATGTTAATCATGCAATTT
-TGTCAACTAGTTATAATTACATATACAGTAACATTACTTTGGTGATATGTAAACCAAAAT
-GTAAACAAAACTTGAAAGCAAACAGAAAATATCATATGCAAAAACTTGTACACACTTGTT
-CTTCATACAGTTTGTTTTCAAATATGATCTTCTATCTTGTTATAGGTTTTCTATGGCTTT
-AAACTGACATTTATTTTTCATTTATATTGTCCTCTGTTATGATTCTTCCAGTCCTGAACT
-TCCTGCATCAGTAATTTTTAAAGATATTTTTGGTTTACAGAAGTTTACCAATTATTACCA
-TAATTTATCATCAATTTATTAACTCTCACCATCATTTCAAAAGTGAAAGAAATTTCACTA
-CCTAAAAATATGTATGTATGACATTTTAGAAGAAAACAGACTTTTAACTAAATGCATTCA
-TGTCTCTTAAAATTTAGTTCTATCATTTTAATTTTTTTCATTTTATTACAGACCAGTTTA
-AACTTTGTCAGAACCCCATTAGGGCCCATGTATCCATTTAACAACAAAATTCTGTAATTC
-TTAAATTCTCAAATTCATAATTTATATAACCACTGATACCCAATTGGTAGTAGTCTTCTG
-AGGAATGTTTCTATTCCATTATTCCTTGTCTTCTCTAATCACTCTCTGAATCTAAACTTC
-TCTTTAGTTTTTTTTCCCTATAATTAGATGTTGAGGTGTTTGGCTTACTTATCTTCTTTA
-TTAGAATAAATAATATGTATCCCATCCCTAATGATTAGCACTTTGTCAATTTTTATATGT
-TTATGACAGGTGGACTCACTCTTATTCTAAACTCTGATATTAGTGATATCCAATGCCCCA
-TTCAGAGACCATTAAATTAAAAATGCACTTATTACTTCTGGGACTTTCTAGACAATTTCC
-TTCATCTTTAAAAGATCTGGGACAAACACCACAAGCTTTGTCCCACATGAAAGTTCTCTG
-CCCAAGTAATGAAGCATCTAAAAATGCTAGTAaagatattagattttaatataacacatc
-aataattatatttaatataaatgatctaaatcaggggtccccaccccccaggccatggac
-cggtataggtttgtggcctgttaggaactgggccacagagcaggaggtgagcagcagtgg
-gagtgagcattaccacctgagctctgcctcctgtcagatcagctgtggcattagattctc
-ataggagtttgaaccttattgtgaactgcacatgcaaaggatctttgcgtgctccttatg
-agaatctaatgcctgatgatccaaagtggaacagtttcatcctgaaaccatcttcccatc
-cctgccagtttatggaaaaattgactgcattaaaccggtccctggtgccaaaaaggctgg
-ggaccactgatctaaatacaccaataaaaagaaaaagattgtaagattggattttaaaag
-acctgactctatactgaccacaaaaaaAAACCCTCACTTTATTCTTTattgcatatattt
-atggtgtacaacatgatgttttgatacatgttgtgaaatggttaatatagtcaggcaaat
-caacacgttcatcatctcacatagtttccctttgtgtgtgtgtcgcaagagcacactact
-tttttaacaaaaattccaagtaaaatataatattatcatagacctcacgttgtacattag
-acctctagacttttttaatcttacgtatctgcaattttttatcctttgacctacatctct
-ccatttccttcccctccaaccacacccctggtaacgaccacattattctctatctccttg
-tattcagctttccttttttttcttttaagattccatgtataagtgaaatagtgcagtatt
-tttctttctgtgtcagtttatttcatttagcataatgttcttcatgttcattcatgcctt
-ggcaaatggcaggatctcctttttgaagagtaaataatattccattgtgtgtgtgtgtca
-cagtttatccattcatctatcaacagttcacttgtttcaaaattttgactattgtgaata
-atgctgcaataaatatgaaagtacagatacctctatgaagttaagtggtgatttcatttc
-atttttttttttaaagacagggtgtcacagtgttactctgtagcccaggctggaatgcag
-tggtgcaatcatagctcactgtaaatctcaaactcctaggctcaaggaatcctgcctcag
-tctcctgagtagctgggactacagacacacaccatgcttagtcaatgttttttaggtaca
-gggtcttgctgtgtagcccaggctgggctcaaagtcctgacctcaagcaatcctcctgct
-ttgacttcccaaattaccgggattacaagcatgaaccacctcactcagcctggtagttct
-atttctaattcctttagaagccttcatactgactccacaatggctacatctgtctacatt
-cccaccaagaatgtacaaaggttcccttttctccacaccctcattaacaattgttatatc
-ttgtctttttggtaatagttatactaacaggcatgaggtgatgtctcattgtggttttga
-tttacatttccctaatgattagtgattttgagccccttttcacatacttcttggccattg
-ttatgtcttctttggagaaatgtcttttcaagtctttgtccatttttttaattgggtttg
-gtttttttttactgctactgagctgtatgagttctttatatattttatatattaatccct
-tatcagatatatttaatataaaGACAAAGAAAAGCTATAAGACTTTATATCTTAAaaagc
-tggagtggctatattaatattgaacaaaatagatttcaaaacaagaaatactaccaggga
-tcaagacgcacagaaagaagtcaattcaccatgaaaatataacaatactaaatgtgcatg
-caactaacaatagaacttcaaaataaaagcttgtagaactaaaaaagagaaatagagaaa
-tcttcacctacaactggagatttTTAgactgacattagcaagatggcagaataggaggtt
-ccaagcatccctcctctcaacagaaaattcaactggcagatatccatgacaagagcactt
-tggtaaaaatcccaaaacttggaaataagccaaagacacccatgttgaccacagaactga
-ataaaaaccacattagaagggggaagagaaaaggtctcactttgaccaggccacccctcc
-tccactccctcgcccaagttggcacaccactatgcagacaggattgccctaggcctacag
-tttctccagtgggaaaagaaaactaaagatgaacattcagcttccttagccattcctgga
-atattctcagaaagcccatttcagtctcagttcacagggaaagcaggggataacggtgtg
-gttagatcacctgggttcagatagaaaaaaagaaaagggggcattgctcacagtgaccag
-tatgaagatactgttggtagctctgtgtcactgccagcagaggtaccagccaacagcata
-agccacctgcaaagccaagctggtcactcccagaagcacagtggaaatttccatctggct
-tgagtccctagatggccagcctccacagccagcctcaaatccctccccaaggccccacgc
-agaaatggagatacctgcaacaaagcatttcaaacaaaagaaacaactgagacttgtgcc
-ccagggcatttaaacagtggctcagactcaaagctcactcaaggagggagatgcccacca
-cagcacctttcagcaaagcccagaggctggactagccacacccagaagtataaatggtgg
-ctcacctcagcctcaaagcccaccccaagtctctgcctaggcaagggggcaagcctcaac
-catgcatttcaacaaagcatagcagctggtcccaactaccctgaacaaaacctatctaac
-ctcaggacccaaacagtggtagtgcccggccGGGGAAAATACCATGTCTGTTAAGGGTTC
-TTACCATGATTTTAAAAAAGAAAGaaaacctatacacagacattcccaacagctttattc
-ataattgccagaaattgaatacaatctgaatatccttcactgtgtggcttttaaaaaatc
-gcatttatagtacatccatagcatggaatattacttagcaataaaaagaaacaaagtatt
-catacaagttggagggatcttcaaggaacactaagagtaaaaatgccaatttaaaaagat
-tacatatctatgattccatttatatggcattcttgaaatgacaaaattatagagctagag
-aacagattcctgtttacccagggttagggaaggagggagaaggctctcactggaaaaggg
-tagcacaaggagtctatgtgataaactgttttgtgtcttgactgtaatggtggtcacaaa
-aatcaaagcatgtcataaaattgtgtaaaactaaatacatacctacatgcacacacacaa
-acaaatgactacatacatgtaaaactgatgacatctgattaagaccaatggagtatatca
-atgtcaatttcctgattatagttaaacaagatgtaaccattggagggaaaaggtatatgg
-gatttctctgcatgtaggtaagtctaaacatatctcaaaatTATTTTAAATGTCAACTTT
-TAGGAACAGCTGATATTTTCTCTGTATTTATCCTAAATCACTAAGGCTTTCACAAGATCT
-CTGCTCCAAAGACCACCATATTTCTTTTTAAATGACATATCTATTGTGAAATGCATTTAT
-GATAGTCAGTATTCTCATGCTGTGGAAATATACTTTAAAAAGAATATAGTCTTTATCCTA
-TACTGAAGCTCTTGTCCCATCCTGTCCTTTTCAAACACTCAGCAGTTCAATTGAGCTTTA
-CAACTTCCATGCACTTCACAAAAAGAAATAAAATAGTGGAGGCTACGCTGATCTCAGCTG
-GTTTTCATATATTTGGGGGTCAGAtggctatagactgatataagctagcctctgctggga
-caactgggttcttctccaaaatgtctctcttgtccttcctgcagactagactggtcttgt
-tcacctgactgaggcagggttccaatggagaaggcaaaggcacacaggccttttgaggca
-taggcttggaaatagcacaatttcatttgtgccatattctCTCTTTTTATGACTTTATTA
-TTTGAATTTGTATATTGCACAAGACTTCCTATTGTTCAGATTTCATTTGCTTTCTTTCTC
-TTGTATTTTAACATCCTTCACAATTCTCACATCATTATTAAAAGTTGCACTTAACCTAGT
-AATAGATAAGCATTAGCTGAAATTAGTAATTGCTTAACTTCTATCCTACACTACTTTATC
-ACATACTAGTGTGTCATGTTTCATAGTATAGGAACAAAGTAATCTTGCACGATGATATCT
-CTGATGCATACCACTATATTTTTGCTCATGGAATGACAGCAAAATTAATTTTTCTGCTGC
-CAAACTAATATTCAGCCAATCTTTTATTCATCAAATCTAACTACTTAGACCAGGGGCAGT
-TTCCTTTAGAGTTAGACTGTAATTTGTGTACTAATTTTTTTTTGGTTTTTTGTTTGTTTG
-CTTGTTTTGCTAAGGGAAAAATTTATTTTCCTGATGTAtttattattttttagcttttat
-tttagttttagttttaggaatacatgtgcaagtttgttatataggtaaattgcatgtcat
-gggtgtttggtgttcacattcttttgtcagccagataaCCATATTCTCTCTTTTAACGCC
-TATTTaaaattatatatttttaagctatacaatgtgatgttttgatatacatatgcatAT
-TTAAGCTATACAATGTCATGTTTTGTTGTACATATGCATATTTAAGCTATACAATGTCAT
-GTTTTGATGTACATATGCatatttaagctatacaatgtcatgttttgatgtacatatgca
-tcttgaaatgaatactatagtcaggctaattaacatatcagtctcttcacgtagttacca
-ttgtgtgtgtgacaagaatgcttaagatctactctgatagtaaatttcaactatataata
-cagtattatCTCTTTTTTAttttttacttttatttgtttatttttttgagacagagtctc
-tctgtgtctcccaggctggagtgcggtggcgccatctcggctcactgcaagctctggctc
-ccaggttcacgccattctcctgcctcagcctcctgagcagctgggactacaggtgcccac
-caccacgcctggctagtttttttgtatttttagtagagacggggtttcactgtgttagcc
-aggatggtctcgatctcctgacctcgtgatccgcccacctcggcctcccaaagtgctggg
-attacaggcgtgagccaccacgcccagcctttatttatttatttattttgagatagagtc
-tcgctctgtggcccaggctggagtgcagtggcagcatctcagctcactgaaatctctgcc
-tcccaggttcaagcaattctcctgcctcaacctcccaagtagctgggactacaggcaccc
-tccaccacacccagctaatttttttatttttcatagagacggggttttgccatgtcggcc
-aggctggtcttgaactcctgacctgaagtgatccacctgcctcggcctcccaaagtgctg
-ggattacaggcatgtgccaccatgcctggctGatttttgtatttttagtagagacggggt
-ttcaccatgttggacaggctggtctcgaactcctgacctcaagtgatctgcttgcctcag
-cctcccaaagtcctgggattacaggcgtgaaccactgcttccggccacagtattatcaac
-tgaggtccccatgctgtgcattagatctcaaaaacttaatcatcctacaatactggaacg
-tactctttgaccaacatcttttgattctgccaccattgcttctgataatcactattctct
-ctccttctatgaatttgacttttcaagattctacatgtaagtgatatcatgcagtatttt
-tcttcctgtgcctggcttattttacttagtataatgtcctccaggttcatgcacattgca
-caaacgacaggatttctttgttttaagactgaataatatttcatATtggatacaacctaa
-gtgttcaacagatgaatggataaacaaattgtggtatatacCACCTGTTCTCCCTTGTAA
-GTGGAAGCTAAAtgtcaggcctctgagccgaagctaagccatcacatcccttgtgacctg
-cacctatacgcctacatggcctgaagtaactgaagaatcacaaaagaagtgaaaatggcc
-tgttcttgccttaactgatgacattccaccacaaaagaagtgaaaatggctggtccttgc
-cttaactgatgacattaccttgtgaaatcccttttcctggctcatcttggctcaaaaagc
-tcccccactgagcaccttgtgacccccactcctgcctgccagagaacaactcccctttga
-ctgtaattttcctttacctacccaaatcttataaaacggccccacctctatctcccttca
-ctgactctgttttcggactcagcctgcctgcacccaggtgaaataaacagccttgttgct
-cacacaaagcctgtttggtggtctcttcacacggacgcgagtgaAATtttggtgccgtga
-ctcggatcaggggacctcccttgagagatcaatcccctgtcctcctgctctttgctccct
-gagaaagatccacctacgacctcaggtcctcagactgaccagcccaaggaacatgacacc
-aattttaaatcaggtaagcggcctttttgtactctcttcttcaatctcactatccctcaa
-cctctttctcctttcaatcttggcgccacacttcaatctctcccttctcttaatttcagt
-tcctttccttttctcctagggacaggagacgcattttatccgtgaacccaaaactccggc
-gtgggtcacggactcagcaaggcagacttcccttggtgtttaatcattgcgggaatgcct
-ctctgaatattcacccacatttcagaggtgtctgaccacatggggacgcctgccttggtc
-cttcacccttagcagcaagtaccgcttttctagggagcaaacaccccccaccccttctct
-ccatgtctctactctctcttttctctgggcttgcctccttcactatgggcagccttccac
-cctccattcctccttcttctcccttagcctgtgttttcaagaacttaaaacctcttcaac
-tcacacctgacctaaacctaaatgccttattttcttctacaatgccgcttgacctcagta
-caaactcgacagtggttccaaatagccagaaaacagcacttttggtttttccatcctaca
-agatctagataattcttttcataaaataggcaaacggtcggaggtgtttgacatccaggc
-attcttttacacattgttccctccctagtctctgttcccaatgtgtctcgtcccacatcc
-tccttctttccctcccacctgtcctctcagtcccaatcccaagcattgctgagtctttct
-aatcttcgttttctgcagacccctctgacctcttacctcctccccaggctgctcctcgcc
-aggccgagccaggtcccaattcttcctcagcctctgctcctccaccctataatcctttta
-tcacctcccctcctcacacctgctagccctaccccacttgcccagcaatttcctcttaaa
-aaggtggttggagctaaaggcatagtcatggttaatgctcctttttctctatccgaactc
-tcccaaaatcagttagcgtttaggttctttttcatcaaatatgaaaaacccagcccagtt
-catggctcattcggcagcaaccctgagatgctttacagccctagaccctaaaaggtcaaa
-aggccgtcttatcctcaatatacattttattgcccaatctgccccgacattaaataaaac
-tccaaaaagtaaattccagccctcaaaccccacaacaggacttaattaacctcgccttca
-aggtgtacaataatagagtagaggcagccaagtagcaatgtatttctgagttgcaattcc
-ttgcctccactgtgagacaatccccagccacatctccagcacacaagaactccaaacgcc
-tgaaccgcagctgccaggagttcctccagaacctcctcccccaaagtccgtccccttctt
-aatcaatacggaagctacccactccacattaccttcttttcaagggcttgtttcccttgc
-ctccataactgttgtaggtattgacggccaggcttctaaacctcttaaaaactccccaac
-tctggtgccaacttagacaacattcttttatgcactcttttttagttatgcccatctgcc
-gaattctcttattaggccaagatattttaagtaaattatctgcttccctgactgttcctg
-gactacagccacacctcattgctgcccttttccccagttcaaagcctccttcgcatcctc
-ctctcatatccccccaccttacccacaagtataagatacctctactccctccttggtgac
-tgatcatgcaccccttaccatcccattaaaacctaatcacccttaccccattcaatgcca
-atatcccatcccacagcacgctttaaaaagattaaagcctgttatcacttgcctgttaca
-gcatggccttttaaagcctataaactctccttacaattcccccattttacctgtcctaaa
-accggacaaggcttacaggttagttcaggatctgcaccttatccaccaaattattttgcc
-tatccaccccgtggtgccaaacccatatactctcctatcctcaatacctccctccacaac
-ccattattctgttctggatctcaaacatgctttctttactattcctttgcaccctacatc
-ccagcctctcttcgctttcacttggactgaccctgacacccattaggctcagcaaattac
-ctgggctgtactgccgcaagccttcacagacagcccccattacttcagtcaagcccaaat
-ttcatcctcatctgttacccatctcggcataattctcataaaaacacaggtgctctccct
-gctgatcgtgtccgactaatctcccaaaccccaatcccttctacaaaacaacaactccct
-tccttctaggcatggttagtgcagtcagaattcttacacaagagccaggaacatgccctg
-tagcctttctgtccaaacaacttgaccttactcttttagcctggctctcatgtctgcgtg
-cagcggctgccgccgccctaatacttttagaggccctcaaaatcacaaactatgctcaac
-tcactctctacagttctcataacttccaaaatctattttcttcctcatacctgacacata
-tactttctgctccccagctccttcagctgtactcactcttttttgagtctcccacaatta
-cccttgttcctggctcagacttcaatccggcctcccacgttattctggataccacacctg
-accctcatgactgtatctctctgatccacctgacgtacaccgcatttcccccattatttc
-cctcttccctgttcctcaccctgatcacatttagtttattgatggcagttccactaggcc
-taatcgctacacaccagcaaaggcaggctatgctatAGtacaagccaccagcccacctct
-tagaacctctcatttcctttccatcatggaaatctgtcctcaaggaaataacttctcagt
-gttccatctgctattctactactcctcagggattattcaggccccctcccttccctacac
-atcaagctcagggattttcccctgcccaggactggcaactcttaactccctcttagagtg
-gatagatgctctttgctggcaggggaccctccaatcttttcaccctgatgaagttctatt
-ctttacttttatactcactcttattctcattcccattcttatgccaccctctacctctcc
-ccagctatctccaccacactatcaaccttacccattctctcctagccgtttctaatccct
-ccttagtgaacaaccgctggctttgcatttccctttcttccagcacctacacagttgtcc
-ccaccttacatgcagactaggcaacatctcctatctccttacacctccaaacttccttta
-acagccctcacctttaccctcctgaagaactcatttactttctagacaggtccagcaaca
-cctcctgagacatctcacatcagcaagctgccgccctcctccgcacttaattaaaaaacc
-tttctccttatatcaactctactcccccaatatttggacctctcacaacacaaactacta
-ttcctgtggccgctcctttatgtatctctcggcaaagacccactggaattcccctaggta
-acctttcaccttctcgatgttcctttattcttcatctccaaagcccaactacacacatca
-ctgaaacaataggagccttccagctacatattacagacaagccctctatcaatactggca
-aacttaaaaacattagctgtaattattgcttaggaagacacttaccctgtatttcactcc
-atctttggctgccttccccttgctcatcagactctcctcccaggccctcttcttgtttac
-ttatacccagccctgtaaataacagtgaaagtttgcttgtagacacttgacgttttctca
-tacaccatgaaaatcaaacctccccctctatgcagttaccccatcagtccccattacaac
-ctctgatggctgccaccccagctggatccctaagagtctaggtacaagacactcctttca
-gcattccttctcatctttttactttgcatctccggttttgcctcacacaaggtctcttct
-tcctctgtggatcctctacctacatgtgtctacctgctaattggacaggcacatgcacac
-tagttttccttactcccaaaattcaatttgcaaatgggaccgaagagctccctgttcccc
-tcacgacactgacacgacaaaaaagagttattccactaattcccttgcttgtcggtttag
-gactttctgcctccactattgctctcagtactagaatagcaggcatttcaacctctgtca
-cgaccttccatagcctgtctaatgacttctctgctagcaccacagacatatcacaaactt
-tatcagtcctccaggcccaagttgactctttagctgcagttgtcctccaaaaccaccgag
-gccttgacttactcactgctgaaaaaggaggactctgtatattcttaaatgaagagtgtt
-gtttttatgtaaatcaatctggcctggtatatgacaacataaaaaaactcaagaatagag
-cccaaaaacttgccagccaagcaagtaattacactgaacccccttgggcactctctaatt
-agacgtcctgggtcctcccaattcttagtcctttaatacctatttttctccttcttttat
-tcagaccttgtatcttccatttagtttctcagttcatccaaaaccgtatccaggccctca
-ccaatcattctatacgacaaatgtttcttctaacaaccccacaatatcaccccttaccac
-aaaatcttccttcagctcaatctctcccactctaggttccatgacccaatcctgctcaaa
-gcagccctgagaaacatcacccattatctctccatgccagccccccaccaaaaatatttt
-tttcgctgccccaacacttcaatactattttatgttatttttcttattaatataagaagg
-caggaatgtcagacctctgagccgaagctaaaccatcgcatcccctgtgacctgcatgta
-tatgcccagatggcctgaagtaactgaagaatcaccaaagaagtgaaagtggcctgttaa
-tgccttaactgatgacattccaccacaaaagaagtgaaaatggctggtccttgccttaac
-tgatgacattaccttgtgaaatcctttctcctggctcatcctggctcaaaaagctccccc
-actgagcaccttgtgacccccactcctgcctgccagagaacaactcccctttgactgtaa
-ttttcctttacctacccaaatcttataaaatggccccacccctatctcccttcactgact
-ctcttttcggactcagcccgcctgcacccaggtgaaatagccttgttgctcacacaaagc
-ctgtttggtggtctcttcacatggatgtgagtgaAATTaatattaggtacacacagacat
-aaagatgggaaaaatagacagtgaagattttaaaggggataaggaagggagaggagcaaa
-tgttgaaaaactatctattctgtactatgtttgctacttgggtgacagggtcattagaag
-cccaaacctcagcatcacacaataagcccatgtaacaaatctgtacatttatcccctgaa
-tctaGATTTTAAAATAAggctgggtgtggtggctcacacctgtaatccaaacactttggg
-aggctgaggcaggaggattgcttgagcccaggagttcaagaccagcctgggcaacataga
-ccttgtctctacaaaaaataaacaaaatcagcaaaatgtggaggtgcgcctgtagtccca
-gctgctcaggagactgaggcaggaagattacttgagcccaggagctcaaggttgcagtga
-gctgagatcgtgccactgtactccagcctaggctaccaagtgagattttgtctcaaagaa
-aataagataaaaTTTTTTCTTACATTGTGATATATATGCACAATGGaattttcaaatata
-tagtatattatcactaactgtagccaccatgatgtaaatagagctcttgaattttttttt
-tcttcttttgaaaacagagttttgctcttgttgctctggccagagtccaatggtgcgatc
-ttggctcattgcaacctctgcctccccagttcaagtgattctcctgtctcagcctcccaa
-gtagctgggattacaggcacatgccaccacgcctggctaatttttgcatttttagtcaag
-gcggggtttcaccatgttggccagactggtcccaaactcctgacctcaggtgatctgcct
-gcctcagtgtcccaaagtgctaggattataagcatgagccaccgtgcctgaactctcttg
-agcttatttttcctgtctaagtgatttccccacccctagcctctgataactaccatttta
-ctctttgtttctatgaattcaacttttttacactctacatagaagtgagatcatgtcttt
-ctgtgcctggtttatttcatttagcttactgtcctccaggttcatccatgttgttgcaaa
-tgacagaatttacttcttttttaaagctgaaaagtattccattgtgattatgtaccacca
-ttttctttattaattcatctattaatgggcacttaagttgattccatgccttggttattg
-tgaataatgctgaaattaacatgaaagtgcagatatcttttcaacatgctgattttattt
-ccattagctatatacccagtaatgggattgctggatcatatagtagttttcattttaatt
-ttttaaggaacttccatacagttttccataatagctatactaatttttattcccaccaac
-agtgtgcaagggttcccatttctccacatcctttccaacacttattctctttcatagtat
-attttgaagtcaggtagtgtgatgccttcagctttgttctttttgctcaagattgttttg
-gctattcaaaatcttttgtggttcaatccaaattttaagatttttttctgtttcagtaaa
-aaatgtctttggaattttgatagggattgcattaaatctatagaccactttgggtactac
-agatattttaacaatattaattttttactttcatgaacatgggatatctttccatctgtg
-tcttcttcaatttcttccatcaaagttttatacattttagtgtagaggccttttacctct
-ttgttaaatttattcctaagtatttttgtagctattgtaaaaggatcatttacttgattc
-acttctcaggtgttcttgttagtattcagaaaagctgctgatttttgtatgttgaattta
-tatcctgccactttactgaattcatttattagttctaatagttatttggcaaagtcttca
-ggattttctgtatatacgattatgtcatctgcaaaaagaaacaatttcacttcttccttc
-ccattttaatgctctttttattgcattttcttgcctaattaatctggctagaatttccag
-tactacattgatagaagtggcaaaagtgggcattattttgttctttatcttaaagaaaaa
-gcttttgactgttcaccattgagtatgatgttaaatggggcttgtcatatatgatcttta
-ttgtgttgagatcattctttctgtatctaatttgttgagttttatcacaaaaggacgctg
-aatgttgtcaagtgttttttctgcatctgttgagatgatcatatggtttttacccatcac
-tctgttaatgtagataaatctcacttgatcatggtgaataatccatttaaagtattgttg
-aattcaatttgctagtattttcttgaggtttttgtatctctgttctagggacatcgacct
-ataacttttttttcttgtatgcccttgctctggctttattataagggtactgctACccca
-gcatgatttccaaatggctatgaaccagtgactgctgtgtacaaccaacttttcctcctt
-tcaaatgggagtgttgtggttatAACATTATAAAACAAATCTTGCAAagttagatagaag
-gcatcagttctagtgtttgatagcacagcagagtggctattgttaacaacaatttattgt
-atatttcaaaatagctaaaagagaagttttgaaatgttcccaacacaaagaaaggacaaa
-tgtccaaggtgctggatatcctaaataatctgacttgattattacacattatatgcatgt
-atcaaaatatcacatgtgcccagaaatatgtacaaatactatgtatcaataaaaaaGttt
-ttaaaaaataaatattacatataatatatgaattatataataaaactagaatataatata
-aaaaggaaaaaatatatgtaaaataaatCTTCATaataaaataaaataaaataaTTTGAA
-AGAGTCTATGAATAAGATTTTGGAGACTACTCTAAGACAGATGCAAGAGCAGGTACCAAT
-AATTCTGTCTGTACCAAAAGAGTGAATAATAAAAATATACAATTTCAACTTAATTTTGCA
-TAAAAAAAAGTGAACAAATAAACATGCATCTAACAATACTGACCACATCCACGTCTTCTA
-TGAGTATGGAGGGGATAAAAGAATAAAAGAAAAAAGTCAAAGCGAAGATTAGATCCCCCC
-AGTCAGAGCAGAATTCAAGGGTTAATTTATCTGTTCAATTAAGTATATCCCTCACCCCCA
-ACTCAGAAGACACTTCTCTGATTTATCTGACACTAAGCCAAAATGGATTCTCTTATCTAA
-TTTATCAGTAGAATCATATAGAGTAGAGGACACATGTAGATTAAAGACAGTGAGCCAGAC
-CCATCTTCACTGTCACAGTGACAGAATGGACCCTCCTTTAAAATACCCCTGGTGACATTG
-TAATGAAAGACTAAAAAAGAAAGGGGCTTATAAAGTGCTGCAGTGAAAAAAAGGGCTTCT
-TATGTGAGCCTTACTTTTAAAGTTCCCTAAGAATTAGGTTGAAAAAGGTCATACATTGAC
-TTTCATAGTGCTGAAATCATCAACAAAAATTTCTAAAATTCTGCAAAGTCCAGTCACTGT
-TACCTGTGCACTTCTCCAGAATTTTCAAAAGCCAAACTACTAAAAGGAAGGTTCTTGTAT
-GCTCTTGAAACTTTAATATATCCAGCTAAATATTTTTCTCCTTCCTCCCCCTGAAACAAG
-GTGGTGAGCTGCTCATGGAGTAATAAGGTTCATTGATTTCTTTATCTCACATGAGTAAAT
-ATTAGCTCTACAAAAGTTATTTATGACCAGTGCCTTAAATTAAGCAGCATCAACAAATGT
-CACCACAAAATTTCTCTTCTGTTCATCTGGACAGCATTTTCTACCATCATGACCTACTAC
-AATTTCATCTATCTCATGAGGAGCTTCTTAAGTACGTCCCCCTCATTTATAAGACTTTAA
-ATTTCATACTGAAACAAATGATATGCAATGCTTTTAGAGATCTTAAGATAATCTTTGTCT
-AAAAATTCTGTCAACTAGATGTTCAAATTGCTACTGAAAATGGAGATGGAACACATACAT
-TAAATGATTCAAATGATATATCGGAATTACCAGTAGCTGTCATGTTTGCCCATCAGATCT
-GCCCTCAAAAAAGTGTTATGAAAATATTCAAACATTTTTTCTCCCTCTAACTAATTCCTA
-GCTGTTAGCAGAACCCTCTGTacacacacacacacacacacGGCATTCAGATCTAATTAG
-ACAAAAGAAATTTCATTTGTGAAACAGGAGAAATACCTGAAATTCTGTGAAATATTGTCT
-CGCATAGAAAATGGAGTTGttacaagccaggagagattgggtgcctattttcaaccttct
-taaagacaagaaattccaaccaagaatttcatatcctgtcaaattaagattaataaatga
-aagagaaataaaatcttttccagacactccagtactaagagaaatccttattattaaagg
-cagtcttacaagagacccttcagggagttctaaatatggaaacaaaggaacgatatttgc
-atttacaaaaacatacttaagtacgtggcccacagaccctaataagcaaccacacaatag
-aaactacaaagcaaccagctaacaactccatgataggatcaaaacctcacatattaacat
-taaccttgaatatgaacactctaaatgctccacttaagaggcacagagtagcaagttgga
-aaagaaaagaaaagaaaagaaaagaaaactcatctgtctgcagtcttcaagagaccaata
-tcacatatatgacacccataggctcaaagtaaatggttggagaaagatctaccacataaa
-caaaaaacagaaaaagaggaggggtcattattcttagataaaacaaactttaaaccaaca
-actacttagaaagataaaaaagggcattacgtgacaataaagggttaaattcaataagaa
-gacttaactatcctaaatatatatgcacccaatattggagcatctagattcattaaaaaa
-actacttctagacctatgaaaagacttagccacatgattatattgggggacttcaacacc
-ccactgacagcattagatagatgattgaggcagaaaactaacaaagaaatcctggactta
-aacttgacacttgaccaattcaacttaatagacatctacagaatattccatccatcaacc
-acagaatatatattcttcacatctgcacatggaacagactccaagattgaccacatgcta
-ggccatggaataactatcaacaaattcaaaataccaaaataatgccaaccaaactctcag
-accacactggaaaaaaatagaaatcaataccaagaaccttcaaaaccacacaattacatg
-aaaattaaacaacttgctcctaaaccacttttggataaacaacaaaatgaaggcagaaat
-ttaaaaattcattgaaataaatgaaaacagagacatagcataccaaaatatctgggatgc
-agtgaaaacagtgttagaaagaaagtttatagcactaaacactgaccttgaaaagctaga
-aagatctcaaattaatgatattacgtcacacctacaggaactagaaaaacagaaacaaac
-taaccaccaagctagcagaagaaaaaaaataactaaaatcagtgtagaactgaatgaaat
-tgaggctcaaaaatccatacaaagacacagtgacattacaagtttgtttttttaagggat
-aaacgagatcaatagaccactattttttgttagtagattaacaaaagaagtgagaagatc
-caaataagcacaaatagaaacaacaaaagtgacattacaacagatcccacagaaatatga
-aagagactattatgagcacctctatgcacacaaactagaaaatctagaggaagtggataa
-attcctggaaacatacaatctcccaagattaaaccagaaagaaactgaaaccctgaacag
-accaataacaggttccaaaattgagtcatcaattaaaaacctattaactaaaaaaggccc
-tgaaccagatggattcacagcccaattttactagacataccaattctactaaaactattt
-caaaaaagcaagaagaaagatacctccctaactcattctacaaagtaggcatcaccctgg
-taccaaaacctggcaaagacacaacaaaaaaagaaaactacaggccaatatccctgatga
-aaaaaatgcagaaatccttaagaaatactagcaaactgaatcaaagaatactaaaaaaag
-acagttaattcgccatgagcaaacagacctccctcttgggatgcaaggttggttcaacat
-atgcaaatgaacaagtgtgattcaccatataaacagaattaaaaacaaaaaccatatgat
-catctcaataaatgcagcaaaccttttgataaacccaacatcccttcatttaaaaacccc
-tcaacaaactaggcatcgtaggagcatactcaaaaataataagagcccctatgacaaacc
-cacagccagcatcatgctgaatgggcaaaaactgaaagcatttcccttgagaactgggaa
-tgctttctggaacattccagttttctggaacattcccaggaatgcccactctcaccactc
-agattcagcctattactggaagtgcttgccagagcaatcaggcaagaggaagaaataaaa
-ggcatccaaataggaaaagaagaagtcaagctatctttcttcattgacagcagattatat
-gcctagaaaaccttaaagcctccaccaaaagactcctggaactgataaacgacttcagta
-aagtgtcaggatacaaaagtcaaagtataaaaattaacagcatttctatacaccaataat
-gttcaagctgagagtcaaatcaagaatgcaatcccattttcaataaccacacactcaaaa
-aaaaagcctaggatttttttctaactaagaaggtgaaagatctcttcagattcagggaga
-attataaaacattgctttaaaaaattatagatgtcacaagcaaatggaaaaacattccat
-gcccatgggttggaaaaatcaatatcatttcaacagtcattctgcccaaagcaatctaca
-gattcaatgttattcctatcaaactaccaaagccatttttcacagaattagaaacaacta
-tcctgagttcttatggagccaaaaaaagagcctgaataggcaaaacaattctaagcaaaa
-agaacaaagccagaggcatctaattacccatctcaaactacacgataaggttacagtaac
-tgaaacagcataatactgatacaaaaacagacatatagaccactggaacagaataaagaa
-tccaaaaataaagctgcatgcctacagccatctgatctttgacaaagtcaacaaaaatac
-gcaatgggaaaagggctccttattcaataaatggtgctgggatagctggcaagccacata
-tagaagaataaaactggacccctcctctcaccatataaaaaattaactcaagctggatta
-aagatagaaatgtaagaactcaaattacaagaatcctagaagacaacctagaaacaccat
-tctggacataggtcttgggaaataatttatgactaagtcctcaaatcaattgcaacaaaa
-acaaaaattgacaagtgggacctagttaaactaaagagcttctgcacagcaaaagaaact
-atcaacagagtaaaaagacaacatacaatggtagaaaatatcacaaactatgcctctgac
-aaaggtctaatatcaagcatctataaggaacttaattcaacaagcaaaaagaaaatagcc
-ccattaaaaagtgcgcacaagacatgaacagacacctctaaaaagaacacgtacaagtgg
-gcaacaaatatatgaaaaaatgttcagcatcactgaacaccagagcaatgcaaatcaaaa
-tcacaatgagataacctctttacaccacttagagtagctattactaaaaaatcaaaaaac
-aacagatgctggcaaggccgcagagaaaagggaatgcttatacactgttagtggaaatgt
-aaatttgttcagccactatggaaagatgtttggagacttctcaaagaacttaaaacataa
-ttaccattcaactcagcaatcccattactgggtatatatccaaaagaaaataaattgttc
-taccaaaaagatgtatgcacgtgtatgttgatcgcagcactattcataatagcaaagaca
-tggaatcaacctaggttcccatcaacagtggattggataaagaaaacgtggtacatatac
-acaatggaataccatgctgccataaaaaaataaaattacctcttttgcagcaacatggat
-gcagctggaggccattatcctaagcgaattaacacaggaataggaaacctaataccatat
-gttctcactaataagtgggagctaaacattgggtacacattgacataacgatgggaacaa
-tagacactggggactaatagaagagggaaggaggagaggagaaagggttgaaaaactaac
-tgttgggtactatattcaggacctgagtgatgggatcagttgtaccccaaacctcaacaa
-cacacagtacaccaatgtaacaaatctgcacatgtacccctgaggctaaaataaaagttg
-aaaTTATTTTCTTAAAAATGGAAAGGCTAAATTCCACCTCTACCAATATGTTTACTTAAT
-TTTTATATCCCCCATCTTACTGGTATAAAACCAGGAACATGGCAACCATTCATTTATGTT
-TGAAGTGTTCAAAAAATGAGTGACTACATCAATAAATGTACTCAGAGGAAAGCACAGGAC
-TTTATTATGTGGGGAATCAAGTTCACAGAAGGAAGCAGATGAATCTTTTGCTGCAGGCTG
-CTGGATTAGGCAGCACTTTTTATTTAGGAAGAGTGGAGACCAGCGAGACAAGGGCTAGAT
-TTAGGATTAGACTGTGAAAATGGTGATGGTGGGTAAGATGATGTAATCCTGCAGCACACT
-CAGCTTCTCACCAGAATGTTGATGTGGCTTCTTAAATGACACATGTTTTTTCTCTTCTTC
-ATCATTAGCACAACATAATTTCCCACTTAGACATCCTATTTCATATCTTTCTCCTACCTT
-GCATTTCTTCCTGCAATAGCCTGTTACTTTATTGAAGCATTTTTTGAGTCTTGCCCCGTC
-TGTGCATAGGAAACAACATTGAACCAAGGTTAGTGCGTAAGGAAGAGCAGAAGAGGTAGG
-TATGTGGTTCCCCACAAGTCATGGCCTCCTATGGTCCCAAGTGAACATTATGCTGATAAA
-AGGAAACTCAGAGGCCCCTCCTTGAAAAATATCCCAAATTAAGGACATTCAAAAGCCCAG
-GCTCTCAGCCAATGTCCAGTTGCCTCTGAGAACATTAGAACTGATATGACAAAAGAGAAG
-AGAGAACTCAATTCCTGGTTATCAACCAGAGCCAAGTCCCACCCCTAGGACCATGGCAAA
-GCTGACTCTCTCCACCAAGCTCCAAAGTCAGCACTCTCTCAGCTCCATCTCAGTCTCATG
-TCCCCAGAGACGGCTAACATGTCACCATGTGCACAAGACATGTCACCATTGGCACAACTC
-AGCCAAAGCAACTTTTGAAAGAACATCACAAACAAGACTTTTTAACTTAATTCGGTTTCA
-CACTCACTGATATGGGCAACAGAAATCTCCCTTTGACAAGATCTCATGGGTCTCAGCAAC
-AGGTGCTATTGAGAACTCCTTCCCTTAACCTGGCTCCTCCTGTCTGTCACTCATCACACT
-CCCCTTGATCTCAGATAAATGTGTTGCCCAGGGATCAAATTCAATTCCATGAATTTGGCT
-CTAGAGAGCTACATTGTCACCTTCTCAGAGTAATGCACTGAAATTCTAAGTCTCTTGTTT
-CTAATCCTTATTTGCCCCTCTACCCAAAATTTGAACAAGCCCAAAGAATAAGGTTGGAGA
-AGAGAGACATACTCTCCCTATCCTAAACTTCAGAATCAGGGAACATCTTTGAGGGTTAGA
-GGAGTATATTTTGGGGCCATAAAAATACAATATGCCTTCTTCCTAGCAAGAGAGAAGGTA
-ACTCTCACTGACAGGGCTTCTACGATGAACTTTgtgcttcgtgcttgtaagttcatgtaa
-cctgtacatcaaatagaatcatgaaatatagtaattatactccttcacagatgagaaaat
-tgagattaaaaggaaataatgtgcttaattcatacaacccgtcaatgatgaagacatatt
-ttaacctcacattgacatgactccaaaatgtgtgctattttaattactgtTGTAGTACAG
-GCTGAAAATGAATTTGAATGGAAAAGGGAATGGCCAGGCTCTCAGGTGAAAACTGTGTCC
-AGCATTATAAAGATAATTCTAGATGATGAGTTCATGGATACTTTTGAAAAGGACTCCTGA
-GAGTCCACTATAGCCCTGACCTCCTCTTACCTCCTTGGGTGCCTCTCTTCTAAGGCATAG
-ACTCAAGTCAGGCAACCAGGAGAATGGGTACTTTTTTATGATTTTGGCCAAATATAAATA
-ATCTTGAAAGTCCTGTTCCCACTCTTACAAATAGTAATATCTCTTAGGATGTTATAGTAC
-ATTTGGACAAGTTACCTGTGAGTACCTCAAACAGCAGAATAATGAGAACCAGAAACAGCT
-TCATATTTACAGACTTCCCAAGAGAAAGAGGCAGCAGAACTTTGTCCAGTGGTCTGTGTG
-CCACAGGTCTTTAAAGATGATCCAGAGTTTTGAGAGCTATCAGCGCTCGGAGCTCTCATT
-TTAACCCACACAGACAGAGAGGAATTCCAAGTCCACCCCCGTAACACACACACCTACATC
-CCCAAATATGGAGCTCACAGTCCCAGAATGTTCCACCATATCATCCCTCCTCCCCCTTCC
-TCAGGATATGCGCCCCTAGAGAGCAGGAACTATGACTTTCCGTCTGAGCTTCCAACCCAT
-TTGGGTCAAGGTTGGTTGGTCGTGGGCCTTGGGTTGTGTGGGATAATCCTGTCTTATTCC
-TATTGTTCCAATGTTCCATCCGGCTACTGCTGCCTCTAACAAAACTAACCCAGTTTGGAA
-GATAAATTAAGTCATTAGTCGACACAGAAGCATATTCAACAATAATTTTTTTAATGTATA
-AAGCTTCCAGATAGTCATTCTAGGAGTAAGATTGCTTTTAGGTTTGGCTAGATAAATTGA
-TATTATTTGAGAGTTTCCCATAAAGACTTGTCCATCTAGTAGAGCAAAATTCAACAACTG
-AAAGTTTTCAAAAGATCAAATCTCCTTAGCACAGCACTCAACTTATTATAAACTGGTCTC
-TGCTCTCCTCTCTTGGGACATTTTATGGAACCATCTATGTTTCTCCCAAACTAGTGGGTA
-CACCTTCCTGAACTTTTACTTCCTTAATCTGTTTCTTTTCACATTTAAATCCCTCCTTAC
-AGATTATATTACACTCCCCATCCCCTCCATATAATTGGTGCTAGTGAACTCCTGGTTTTC
-CTTCAAAACCAAGTTCAATCATCTCTATATAAGTGAAAGTTTCCCTGACCCAACTAAACA
-GAGCTGCAAACTCTCTTCTTCGCACCATCACTGTATTTGTACATATTTTTGTTGATGGTC
-ACACTATGTCATGTTCCAATTATTTGTTTATCTGCAATAGTCTGCAGACCCATAAAGGGC
-AGGTCTCTGGTCTTATTAGACTTGGAGttctttttctttttttttttttttttgcagttg
-caagatttaatagagtgaaaatggagctcccatacaaagggaggggacccaaagaggtta
-gccgttgccggctcgaatgcctgggtttatatcccaatcattgtccctcctgctgtgctc
-tcaggcaatagatgattggctatttctttacctcctgtttttgcctaattaccattttag
-tgagctctctttcctacctgattggtcacatgtgagctaagttgcaagccccgtgtttaa
-aggtggatgcggtcaccttcccagctaggcttagggattcttagtcggcctaggaaatcc
-agctagccctgtctctcagtaccccctctcaacaggaaaacccaagtgctgttggggagg
-ttggccgacgaccgctctaactgcttcctcctgaattggggcatagtaggggttgtgcag
-ttgagatttcctcaggaggggtgccttcgatgtcattaacattggagcatgggctagcag
-gccggtccaatggtccacggtagctcttagtcatggacggcatctgtggctccatttgaa
-gaatgatttgtagttttacagctttgattctggaaaagacaaacttaacaaggaggttaa
-agatacagggattgaaatgtatggcctgcagtgcaggggattatttctttggcacacttt
-acaggccctgactatctatttgatagttttgaaaaggcctggtccagtaaataataattt
-agccatctgatagttgctatcaatgcctaagtgaaaggtttggtaaagggttttaagtaa
-tttcaattggttagctgcaggcaaaagtattttttcttctttggtggctagccatcctga
-ggggaggaaagtatgtcctcttgaggttctccattctatttcttctgctgagtactgggg
-cttggtttcctggagggggttaccccacactaggggtccttctataagcatttctaatgg
-agggtcctgtcttgtggctcttttggcttcaacatctgcttggcagttcccttctacttc
-cctttccttttttttttttttttttatgaccccggcagtgtaagactgccacctctttag
-gtttctgtacagccaataataatatcctaatggcttcttgatgtttgataggtgttccct
-tggaagttaggaattccctttctctccatattgctgcatgggcatggagaactaggtaag
-catacttagagcctgtatatatatttaccctttttccttctcctaattctagtgccctag
-tgagggctattagttctgccagctgaacactagttcctggagtgaggggattactttcaa
-gtattccattatcactgaccactgcataccccacttttcgaagtcctttttctacaaagg
-aacttccatcagtacataaggtgaggtcaggatcagtcaagggaacctctaaaggatccc
-cttgagcagcgtaggtttgaacaattacttgctgacagttatgttctatcttttctttat
-tgtctggaagaaatgtggctgggttaagagttgcacaagtgcacagtcgcagcactggcc
-cttcaagtaatagagcctgatatttaagtaaatggttgtctgacagccacaagtctcctt
-tagcagtgagtatgccattcacatcatgagatgtccacacagtaagatctcttccctgta
-ttagtttaactgcttcagatactaagactactactgctgccactacccgtaaacaatgag
-gccaaccctttgccattacatcgatttccttacttaggtatgccacgggttacaagctca
-tccctcagacctgtgtaaggactcctagagctattcctgtttttttctgtgacttataaa
-gaaaagtcttgcccctttgacaagcttaacactggggcttgggttagggccttctttagg
-gcctggaaagctgcttctgcttcaggtatccatcttactaatgggtatttgctttctgag
-tttccttaattgtgtatataatggtctggctatttcgccatacctgggaatccatattct
-gcagaaacctgttacgccaaggaagcttttagttgctttagggttttgggatgaggatca
-gccagtataggctggatatgttcctcactgagggccctggtgcctttggataatttgagc
-cctaagtatttaacctgctgtgagcagagctgagcctttggtttggaaaccttatagcca
-caggtggcgaggaaatttaagagtgcttgggtggcttgattgcacaaggtttctgaacgg
-gcagctaaaattaaatcatccatgtaccaaaggacaagagtgtccaggtatgagaactgg
-ctcaagtcttaggctaatgcctggccaaatagatgggggttatccctgaacccttggggt
-aaaacagtccgggtgagttgagatgttgggttcgaaggatcttcaaaggtaaacaagaat
-tgaaggtcaggatgtacagggatgcagaaaaaggcatccttaatgtccaggactataaac
-cactctgcttcctctggtgtttgggaaagcagagtatacgggttaggtataggtgggtat
-ggagcgacaatggcctcattgataatcctgagatcttgcactaacctccactgtccgctg
-agtttctgtactcctaaaattggagtattgcaggggctattgcatggttttactaggcct
-tgggcttttaggtccttaaaaatattttagagtccttgttgggccttgggtgtaaggggg
-tactgcctttggtagggaaaggaggtgaaatcctttagtttaactcaaacagaatgggca
-ttctttgctcgtccatgttgtccttctgttgcccagacttcaggattaattccttcctca
-agcagggggacaataaacgggtgttctttctcctatgttcaggtgtataatggcccctgc
-tttcgctagaatgtctctccctaacaagggagtggggctttcaggcataattagaaaagc
-atgtgaaaagtataaagttccccagtcacaacttagtggctgggagaagtatctagtgac
-tggctgtcctaggaccccttggatagtgacagatctggaggacagttgtccgggacagga
-cagtaagactgagaaggctgcgccagtgtccaggagacagttagcctcctggctctcaat
-ggtcaagcatacccgggactctgtgagggtgatggcatgggctggagcttgccctgggca
-ccctcagtccttctgctggatcatctggttagtggcttctgactcagaggaccttcgtcc
-cctggggcagtgggccttccagtgattcccttgacataaggggcatggatgagagggtgg
-cttatttctacttggacaatcttttttaaagtgtccttgtagaccgcactggaagcaagc
-cctattaggcattcgatttgcccagtttttcccttttccaaagcctccTCGACTAGGAGT
-TCTTAACTCATAGCACAAAATTCATGCTATATGCTCAATACATAATCACTGAATGGCTGA
-AAAGTACTGAACAAATTACTGCTAGATAAAATACTCCAACACAGCAATAAAGTTAATTAT
-GGCATTTCCTTTAAAAATGCTGTTTACCACTTTTTGCAATTTCTAGGCACCTAATTATAG
-TAATGAGGTCCCATCTAATCCAAATATCTTTCTGTGACAGTATCTGGAAGAATGTTGGAA
-TTTCTGAAAGCTGTAGAAGTAGCCGTTGATGATTAAACTCTTATCACAACATAGTCAGGG
-AAAGAGTAAGGTTAGGAATTAGTATTGTATATAGCTTACTATGGATACCAGTAACCAGAG
-CCCTTATCCCCCTCAGTTAGTAGCTGTATACCTTGTAATCCTGGAGTGGCACAGAAAATA
-AAGATTGGTGAGGCTTACAGAATCTCATCAAATCATATTTATCATATGAAGACAGCTAAG
-TTAATGGGTGCAGGAAATTTAGCCGCACGAAGATCAGATGTGTGAATATTTATTAAGGGC
-TAGGTGCagtggctgggattacaggcgtgcaccatcatgcccagctaatttttgtatttt
-tagtagagatggggtttcaccacgttggccagtctggtcttgaactcctgacctcaggag
-atccacccacctcaacctcccaaagtgctgggattacaggcatgagccaccacgcctggc
-tTGTTtttttgtttttgtttttgttttAATTTTCTAAGTCTTTCTTGCTGAGGGTCTGTG
-GATCAAGGAAATACTTATTCAAAAAACAGGTATTAAGTTCCTGTTAATAAATACAAGAAG
-AAAAGTGCTAACTGAATCACCTGTGGGTTTAAAGACCACCATCAAAGCTACAATTTTGGA
-GGACAGCCAACTGCTCCCTTGTTCTGTAATTCAATTTTACTCATTGCTGTAAGGGAGTTG
-GTTCCATTTCTAAATAAATTAAACAGAGATAACCCAAGGATTAGATGAATATAAGTCCAG
-CTATGCAGGAAATCGTTTGCCACCTTAGTGCACAATAAGAACTAAGAAGTTGGACTCCAG
-ATTAGTGTATGGGATTTCTTTTAGCTTTTTCTAACTAGAATCAAGAAAGATGAGATATTT
-GACTGTTCTAAACCTTTACTTCAGCCAAGTATGGTGCTCTGGAAGCTTCTCAACCCCACT
-CCCACTGCCTCCATGTTCAAGACCATCAAATAAGAGGGAATTTCCTCTCCAAGTAGATGT
-CCATCTTCTACAACATTTTTTCCTACGTCTGATAGATACACTCTAGCAGAACTCCAGTAG
-CATATTTCACCCAGGATACAAAGGTGTATTTGTCAGCACCAGTCCTGCTGATGTTTTTCC
-TCAAATTCTGCATTGTTTCTTTCCAAATCTCAAAACCTCCCAGAaaatccttcttgtctt
-ttaaggctcagataaaaataagacctcctctgtgatgtcttcctaactcctctgatagac
-ttgattaattactattttgaacccccacagctctttccATTTGTATTTGTAACACTAATC
-CCATTCgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtctgtgtatgAAttttt
-ttagcttttattttaggttcaggagaacatgtgcaggttagtcacataggtaaattgtat
-gtcacagggatttggtgtacaggttatttcatcacccaggtaataagcatagtacctgat
-aggtagtttgttgattcccaccctcctcctacctcaagtaggccccggtgtttgtttcct
-tttttgtgtccaggtggactcaatgtttagctcccattataagtgagaacacgtggtatt
-tggttttctgttcctgtgttaactcacttgggatacaggcctccagctccatccatgtcc
-ctgcaaaaaacatgatttcattttttatggctgtgtagtattcgatggtgtatatgtacc
-atattttatttatccagtgtaccattgatgggcatttaggttgattccgtgtctttgcca
-ttgtgaatagtgctgcaatgaacatacacgtgcatgtgtctttatggtggaatgatttat
-attcctttggctatatacccaataatggaattgctgggtcgtatggtaattctgttttaa
-gttctttgagaaattgccaaactgttttccacaatggctgaactaatttacactcccacc
-agcagtctaaaagcattcccttttctccacaacctcgccagcatctgttattttttcact
-ttttaataatagctattctgactggtgtgagatagtatctcattgtggttttgatttgca
-tttctctaatgataagtgatgttgatctttttttttctttcaaatgcttcttagccgagt
-atatatcttgttttgaaaagcgttccccattgcttgtttttgtcaggtttgtcaaagatc
-acatagttgtaggtgtacagtcttatttctgggatctctattctgttccactgatctatg
-tgtctgttcttgtaccagtgtcatgctgttttggttactgtggccctgtagtacagtttg
-aagttgggtagtgtggtgtctccaactttgttctttttgcttagaattgccttggttatt
-caggctcctttttggttccatataaattttaacatagatttttctacttctgcaaagaat
-gtcagtggtagttaaatgggaatagcattgagtctataaattgctttgggcagtatggcc
-attttagtgatattgattcttcctaccaatgagcatggaatgttttttcatttgtttgtg
-tcatctctggtttctttgagcagcactttttagttccccttgtaggtagaaatctttcac
-ttcccttgtaagctgtattcctatgtattttattctttttgtggcaattgtgactgggag
-ttccttcatgatttggctcttgtgttgaaggttataggtgtataagaatgctagtgattt
-ttgcacattgattttgtatcctgcgactttgctgaagttgtttatcagattaagaagttg
-cctagccatgtgcagaaaattgaaactggaccccttcattacaccatataatacaaaaat
-taactcgagatggattaaagacttaaatgtaaaacccaaaagtataaaaaacctggaaga
-caacctagataataccattcaggacacaggcacgggcgaagattttagggtaaagatgcc
-aaaagcaattgcaacaaaagcaaaaatggacaaatgggatctaattaaactaaagagctt
-ttgcacagcaaaagaaactatcaacagagtaaacagacaacctacaggatgggagaaaat
-ttttgcaaattatgcatccaacaaaggtctaactaatatccagcatctataaggaactta
-aacaaatttacaataaaaacaaacaaccccattaaaaagtaggcaaagaaaacatgaacg
-gacacttctcaaaaaaagacatacatgcagccaacagtcatatgaaaaaaagctcaacat
-cactgaccattagagaaatgtgaattaaaaccacaatgagataccatctcccaccagtca
-gaatggctattaccaaaaagtcaaaaataacagatgctggccaggtacagtggctaacac
-ctgtaatcccaccactttgggaggcctaggcaggcagatgacctgaggtcaggagtttga
-taccagcctggccaacatggcgagaccccgtctctactaaaaatacaaaaattaatcagt
-catggtggtgggcacctgtaatcccagctacttaggaggctgaggcaggagaatcactgg
-aacccaggaggcggaggttgcagtgagccaaggctgcaccattgcactccagcctgggca
-acaagagcgaaactcccatctcaaaaaaataaataaataaaaataacagatgctggcaag
-gttgtgaagaaaaaaggaatgcttatacactattggtgtaaattagttcaatcattgtgg
-aagacagtgtggaaactcctaaagacctaaagacagaactaccatttgacccagcaatcc
-cattactgggtctatacccaaaagaatataaatcattccattataaagacacatacatgc
-ccatgttcattgcagcattatttacaataacaaagacttggaatcaattcaagtgcctgt
-caataatagactggataaagaaaatgtggtaaatatatgtcatggaatactatgcagcca
-caaaaaagaatgagatcacgtcctttgcagggacatgaatggagctggaagctattatcc
-ttagcaaactagcacaggaatagaaaaccaaataccacatgttctcatttacaagtggga
-gctaacttatgggaacacacagaaacacagaggggaaaaaccacacactggggcctcttg
-gagggtggagggtggggggagggagagaagcagaaaaaataactaatagacactaggctt
-aatatctgggtgatgaggggcgggcacagtggctcatgcctgtaatcccagaactttgga
-aggctgaagcaggcagatcgcttgaggtcaggagttcgagaccagcctggccaatatggt
-gaaacctcatctctactaaaaatacaaaaattagccaagtgtggtggcatgtgcctgtaa
-tcccagcttctcgggaggctgaggcacaagaatcacttaaaccagggaggtggaatttgc
-catgagccaagatggcgccactgcactccagcctgggtgacagaacaagactctgtctca
-aaaaataataataataataaatctgagtgatgaaataacctgtacaaccaacccccatgt
-cacacatttacctatgtaacaaacctgtaccccctgcacacataacctttgatcttaaaa
-taaaagtgaaaaaaaAAAGTGTCTGTTCATGATCTTTGCCtttttttttttttttttttt
-tttgacagagttttgctcttgttgcccagcctggaatgcaatggcatgatcttggctaac
-tgcaacctccacctcctggattcaagcaattctcctgcctcagcctcccaaatacctggg
-attacaggtgcccaccaccTCAAAGtaaatttctttgagtttcctcaacacagctattgt
-gaattatctgtcagaaaagtcacatatctctgtctctctggaatggcccctcctgcctta
-tttagtccatttggtgaggtcatattttcctggatggtgttgatgctagtagatgttctt
-cagtgtctgggcattgaagagtagggtatttattgcagccttcactgtctgagcttgttt
-gtacctgtccttcttgggaagtctttccgaatattcaaaaggtcttgagtgttgtgatct
-aagctatatctgctttagggggtaccccaaacccagtaatactgtggttcttgcagactc
-ttagagataccaccttgatggtcttagacaagatctgagaaaattctctggattaccagg
-cagaggttcttgttctcttcccttgctttctcccaaacaaacggagtcagtctctctctc
-tctctctcttttctgagctacctaaagctgaggatggagtgacataagcatccctgtggc
-caccaacactatgactgcactgggtcagacctgaagccagcacagccctaggtctcaccc
-aaggcctgctgcaaccactccctggctacttctcaaggccctgaggctctacaatcagca
-agtggcgaagccagccaggactgtgtccttcctttcagatcataaaggtaccccaggccc
-aggatggatacagaggttcccatggggactccgagactagagtaacaaaccttagaaatc
-tacctggtgttctattgtactgcagctgagcttgtactcaaaccacaagactcagtcctc
-cccactcttccctctcctttccaaaagcagaggagccttacttcgtggccaccaaaacca
-caggccacaaggaatactgccaggctactgctgatgttccctttaagccccaagggttct
-tacgtcagcttgtggtgaatgctgcctggcctgggactaatccttcaagaaggtaggctc
-ccctctggcccatgacaggtccagaaatattcaagagtcaagtcctagaatcgaggaccc
-caagagcccacctgatgctctacctccttgtggccaagctggtacctaaggtgtaagaca
-aagttcccttcattttttctctgcttttctcaagcagaaggagttctgccctatagccac
-cacagatggggatgtgttgagtgtcacctgaagccagaaagtctcatgggttcacccaag
-gccatcagtgtggaacctggttatcactgctggttattcagggcacaagggctctttagt
-tagcaggtgattaatgctgccaggactgggtccttcccttcaaggcagtgggttcccttc
-tggcccagggtgtgtctagagatgtttttcaggagctacgtcctggaagagggtctgtca
-actatctggtgcctgatcctgctgtggctgagctggtatccaagatgcaagacaatgttc
-ttcctactcttctctctcttctcctcaagtggaaggaaatggtctcttttggagctatga
-gttgcgcagcctggggttaggggaggatgatgttagaactcccttagctgccctagctac
-tgttttagtaggtcatgtgccccccagtccactgtctctaggcccagttcagcactagga
-cttgcctaagagttgcagtccttggggtttagactgcctttcaagtttgcttagagaccc
-aaagcccacagtggaaagctttgcatgtattcaagttccgaccactgagatcagcaattc
-ccctctggttagggctggtttaaatgcttcctctgtgggtgggcctcagctgcatttggt
-ccagttttcctttctgctctaactgggcagcactgagttcactgcctcacaattgccgag
-ttttccatccctcctccagcacccagagattatctttgcatgctgctaccgacagggcag
-tgggagtggggagtgcagggtggcagctgtgattgaggactgtgttttctatttcttcag
-tgcctcattcagtggtaggaactaaaatcaagtgctatgattcttattcttatgaaggtg
-ttttttgtgtagatagttgttaaattggtgcctttgcataggggagggaggacgatcagc
-ggagccttccattcaggcatcttgctctgcctcctttttccataaataatttttgggagt
-ctagtatgttccaggaactctttcaggtcctgaaaattagacatgcattcatggagcata
-cattcaaaagtgggaagcagataaaaaatcatatgaataaatatatagtatgtcagatgg
-tgacagggctctggagcaaaagaagatatagaaagaagatgacaaggccaggcacggtgg
-ctcacacctgtaatcccagcactttgggaggctgaggcgggcggatcacctgaggtcagt
-agtccaaggccagcctggccaacatggcgaaacaaaatacaaaaattatccaggaatgat
-ggcgggtccctgtaatcctggctacacaggaggctgaggtggaagaatcacttgaaccca
-gaggtggaagttgcagtgagccaagatcatgccattgcactccagcctaggcaaaagagg
-gagactccatctcaaaaaaaaaaaaaaaaaaaagtgctgagcaaaaaagagtacagtttt
-aaatgaggtatctgtgaaaagactccttgaggcagtgacatttcaggaaggatgtaaaag
-ttatctggggcaagagagtgtcaggcaatgagaagagcaagtgcaaaggccctgaggtgg
-gaccatgcccagtgtgttcaagaagtagcaagaagaccacatggataatgtgaagcaatg
-aggaaagagaaaaaggggattatatcagaaaagtaatgggggtgcacatttggggttaca
-ataaagaattagacttttcctctaagatggaggttattggacagtgctgacatgatctga
-tgtattttcaaaagatgcctctggcttctgtggtcaaaacagattgagagggagggaaag
-tataaaagtggaaaacctgttgcatgggcattacaaaatctaagtgacagctaatagggc
-ttagatagagagcatcagagaagagggtgggaaatggtcagactcttacatacctattga
-aaatacagtcactcgtagattgaagagaaaggaagaagtcaagataacatcacagtttta
-gtctgagtaactgaaagaatgaagttgtcactgacagagatggatataacaggagaaagt
-tcagattggtctttttgcttgagggaggataaaaacctttgtttgggatacgtttgcttt
-ggagtgctatagacatctaagtggaattgtcttgtaaacaggagagatttttaagccatg
-agactgaatgggattgtcaaggctatgactgcagaaaagagcctaatgcctgagacctag
-aactccccaatgttgatgaataagaagcagcaaaggacactgagaaggttcattccagtg
-aggtcggaggaaaaccaagagaacatgatgctctgggagcttaattaaattaagttcatc
-aaggaggataaagcaccaaatgctgctgatacatcaagatgaggcatgagaattgatcag
-tggCCTACCAGAATCCCAGCTCCAtgacctcttaccagatgccaagtagatgacaaatgc
-atttcaaatgcattgcttactttaatcatcacaagaacactatgaagcagaaattaatat
-acctcaatttttaaaactggaaaactacaatttagggagctaataatgtgcccaatgtca
-cacagccaataaggaattaactgggatcaacacaggtctgcatgaacctaaaattaaagg
-ccttagccactatgctaagctgcctctcCAGCTGCCTTCCATGGGTCAATTCTAGGGAGA
-CTGAAGACAAAGTATTCAAATAAAAGATGTTGCTTTATTCAAAAAATGTATTGGCCATGT
-GCTTGGCTGGACATTCTTCCATGACCTACTCCTTTATACTCTATTCATCACTTACAGGGC
-AGCCTGTTTTAAGAGAATTCATATTTCTTATTTCTGAAGATGACATTATTACATCCTGGA
-AGAAATATTGATTGCCCATTTCAGTATATTCCTAAGTCTTTTTGTTCCTCTGTGTCAATT
-Ctttttcttttattattatactttaagttctagggtacatgtgcacaaagtgcaggtttg
-ttacataggtatgcatgtgccatgttggtgtgctgcacccgttaactcatcgtttacatt
-aagtatttctcctaatgttatccctcccccctcccaccaccccacaacaggtcccggtgt
-gtgatgttccccacctgtgtccaagtgttttcattgtttaattcccacctatgagtgaga
-acatgcagtgtttggttttctgtccttgcgataatttgctcagaatgatggtttccagcg
-tcatccatgtccctacaaaggacatgaactcatccttttttatggttgcatagtattcca
-tagtgtatatgtgctacattttcttaatccagtctatcattgatggacatttgggttggt
-tcgaggaagtcaaattgtccctgtttgcagatgacatgattgtatatttagaaaacccca
-tcatctcagcccaaaacctccttaagctaaccaacttcagcaaagtctcaggaaacaaaa
-tcaatgtgcaaaaatcacaagcattcctatataccagtaacaaacagagagccaaatcat
-gagtgaactctcattcacaattgcttcaaagagaataaaatacctaggaattcaacttac
-aagggatatgaaggacctcttcaaggagaactacaaaccactgctcaacgaaataaaaga
-ggacacaaacaaatggaagaacgttccatgctcatggataggaagaatcaatatcgtgaa
-aatggccatactgcccaaggtaatttatagattcaatgccatccccatcaagctagcaat
-gactttcttcacagaattggaaaaaactactttaaagttcatatggaaccaaaaaagagc
-ccgcatcgccaagtcaatcctaagccaaaagaaaaaagctggaggcgtcaATTCTTTAAT
-GTCAAGCAGCCTTTATGCAATCTTGGATTGGGCACAAGAAGCACACAATCTCCTCATTTT
-CAAAGCCCTTCATGGCTAAGCAATAGAGTTCCTCTTGAGTAGGCTGGAACAGATAATGAA
-ATGTTGCTTTTTAGATGTGGTCAGTTAAAAATAAAATCACCTATCAACATTTGTTACTGT
-ACCTCCAGCTGTGATCAATAGTACAAATTGCTTTTAATATCTTACTTATAAATAGACTTT
-AAGTATGTTTCATTTCTGAGAAATGTTCTCTGAATTCTACTTAAGATGTTATCTTTCCAA
-ACTGCTGGACGGGCTGAATCCAGGCAAGAAATGGGATTGCAAATTCCCTTGCACGAAGAC
-TTGATGGGTGAGTCAAAGCAAGATTCCCTTGCCATTCTTTGTTTAGAGGTGAGAGGAAGG
-TTAACTAGCATTTTATGCTATAAAAATCAGACACAAAGATAAGCAAAAAGAATACAACAG
-AAGCCACTCATTATTTCAGCTCTCTGTTAACACTTTGATGTTCACTTCTAAATATGCTTC
-CTCAAAGTAATTTCTTTTCACAACTGGGTAGGAGATAAGATAAAGCAAAGTGAGCTTGCT
-TGCTTTTCATCCACTCAGTTAAAAACAGTCTTCCAGTTGACACTCCCTGATACATGCACA
-CTCAGGCACACACAAAAGTCTGCACTCATCCATTAACCTCAAGAAAGAGACCTGTTGACA
-AAATAGACATACACCAGTTCAGAGGAACCTATGTCACCTGTCCCTAGTAATCTACTTTTA
-AGCCTAAATATATCAACAGTCAATTTCAGGAAAATTAACATTAAAAAAATTTAGATGAAC
-AATAGGAATGAATGAACTTAAAGGAAAAGAAGCTAATATCAAGGACAGAAGATAATTATT
-TAAAATGATGAGTGACAAACTTGACTAAAATGCACAACCTCTTCATAACAAAAAGCATGC
-AGGAGAAGGTACAAGTCAGCACAAGgttaaaagacaatcagagtagaacaaaaattctat
-gtgcatgataccacaaaaagattgctatccataatctatatgaagaataactacaaatca
-ataagaaaatgacaaatgacccagaggaaaataggcaaaCAATAGTATAGCAGCAAAACA
-TTGTAAGCACTCGTTTCAGAAGGTTGATATAGATTCAGAAATATGATATTCCCTTTAAGA
-GAATCTGCTTTTAATCCATAAATTGTCTTACAAACTAGTTTTATTAGTTTAATATTAAAG
-GAcccattagtgggtatatatccagaggaatataaatcattgtattataaagacacacac
-ctgaaaatgttcattgcagtactattcacaatagcaaagacaaggaatcaacctaaataa
-ccatcaatgacaggttggataaagaaaatgtggtatgtatacaccatggaatactgtgta
-gccataaaaaagaacaagatcgcatcttttgtgggaatatggatggaactgcagaccatt
-atccttagcaaactaacgcaggaacagaaagccaaataccacatgctgtcacttataaat
-gagagctaaatgatgagaactcgtgaacacaaagacgggaacaagagacactggggtatc
-cttgagggtggagggcgggaggagggagaggagcagaaaagacaacaaacctctgtgaca
-caagttttcctatgtaaccaaccttcttatgtcctcccaaacctaaaacaaaagttaaaa
-aaaaaAAAAAGACCCAATTGGAGTTGCAATTTGCTCTTTCCCATTCTACTGCATTTCTGA
-AACCCAAAGTGTACAAAGAATGTGTCTTATGTTTTATGAAATGTACATTTGGGCCCCCAT
-TTTTTTATTTGTATAACAATTGTAAAACACTATCTAAAGGCATAAAATGGCTAGGATGAG
-AATTACTATTGGTTCATAATTATATTTGCTTAATTACTGAAGATGTAACTGTACTCGCTT
-TAAGTATGCCATTTGACTATTGCCCTTCTTTTTGTCCAGAGCCATCAAAAGATTAAAGTA
-TTTGAAATGAATAATGTAATGGTTTTGTCTTCCTGCTACAGTGTGTTTCAGGTTATTTTC
-TAAAATCATAATGAACCCTGTTTTTTTGTTGTTTTTATTATTTTTTGATAAGTAAATAAT
-GCCACGATTGGTAGATCTAAAACTGAAGAAGGAGACCCTATGGCCTCAATCCAGAATGCC
-ATAGCATGCTAAAATGAGAACTTCCTCCAGGTGTGTATGTGTGTGTTCAGGGCCACCTAT
-GTATGCCCGATACGTCCAGTCTTCGTTGATGAAAATTGTTAGAGGTCAGTATTACAGAAG
-ATAAAACAGAAAGGCCATATGTTAATAATGAGAAATAAGTGGTTAATTCATAATTAGTGA
-ATCTGGTTTCAGCACTTTGGCCTTCGAGGTGGTCAAAACAGGTCTCCAATATGAACTAAG
-GATTGAAAAGattaaaattatttttttaacaaaaattaaGCTCAAAGAGTCTTGGATGCT
-TCAGATTGACTCTGCTTCTGGCATAACTTGAATAGAAAATCATATAAGGGTCTATGATGG
-GCACCATGCCCAGAGCTAGTTGGTTTAAATGTCATTCTATTTTGGACCCTAAAGATAAAC
-ATGGCCTACTGTGATTCCGTCCTGCGTGGCTGTTCTCTGGAGCAGTAGTCATTAATCTTT
-GCCTGCCTTCTCTCCCACCTAGGTGTGTGCCACCACCCCATGGTGACATGAGCTTCatta
-attaaaaaaaaaaaaaaCtttttctctcttttcttaatagaaatgaccttggaaaatttc
-tattggtctgtcttcaagttcatttctctttccatatcatatctacatggctgttaagtc
-caaagtttattatttaaataaataaataaaattgataaaactctagccagttgatcaaga
-aaaaagagacaattaccaaattttcaatatcaggtataaaaagaggacatcattacatta
-aaagttttgtgagagatgattctatatgccaaaatttttgacaacctatatgaaatggat
-aagtttcttaaaagatacaaattaccaaaactgacctaagaggaaacataaagtttaaac
-gatgctgtatcaattggagaaattgaatccatagtttagtcttctcacaaagaaactttc
-atgccttgatggcttcactggtgaagtataccaagaaataataatggcaattctacacta
-actctttcagaaaataaaggaggagacacttctcaaatcattcttcgaggccaatattac
-cttggttccaaaaatatgcaaagatatcacaagaaaagagaactatgagccaatatcctc
-atgaacataatttcagaaatctataataaaatattagcaaattgaatgcggtgaagaata
-gaaaggatcatagaacaggacaatatgatgtttatccccagaatgcaaagttgatgtaac
-atcaaaaaatgaatcaacgtaattcaccatattgatggactaaaggggaaaaacatatga
-ttatttcaataaatgcaagaaaagcatttgacaaaattcaaagccctttaaaaaaaactc
-atcaaactaggagagatggtaacttcaagctgaataatgctagctacaaaaaagtaacta
-cagataacatcacctttaacttagaaggctcatgtctttctactttaattaggaacaaat
-ggtaagttgaccacaaccacttttacttaacgtcatactgaaggtcttagctactccaaa
-aaggctagaaataggaataaaatgcatgcatttagaaaaggaagatacagcagattctat
-ttttagtttttaatttttataggtacatagtagatgtatacatttatggggtacaaagtt
-attttgatacaggcatacaatgtgtaataatcatattagggtaaatggggtatccatcac
-ctcaaacatttatcttttctttgtgttatcaacattctaattatactcttttagttatat
-ttaaatgtagaataaattaattttgactgtagtcaccctgttgtgctattgaatactaca
-ttttattcattctgtcttactatattttcatacccattgaccatcccctcctcccagacc
-cccctactacccttcccagactctgatcatcatcattctactttccgtcttcatgagctc
-aattagtaaaactttccttttttgcagataacatgatcatgtacataggaaaccctaaag
-aatccttggaaaagctattacatctaataaatgaatttagcaaagttttgaatgaaagtc
-tgtatacaaaaatatatatgtgcatattttagcaaaaaattagaaaaagaaattttgaca
-aaaactaccctttccataatagcatcaaaaatgaaatatttaggGGCCGGGCATGATGGC
-TCACCAATCTTGTACCCCAACAACCAGAATGATTATTTTTTATAGTTTTATGTATAGTCT
-ATTTTGGTTTTAAAATGGCAAAATACTATATGATTTTATATAAAAACTAAACTAACTTAG
-AAGTATGCAGTAAGAACGTGAAGGTCAAACACGCTGTCCATAACACTTAGGAAAATGAGA
-TCAACAGTAAATAGAAGACTGGTTACTCATCCTACAAGAAATGGTGATGAATAGGCCTGC
-AAAATATCCTGTAACTCCTCTAGAGGGTGCTCACTAGCAGGACATTCACATGCTACTCCA
-TGTGATGTTAGATTATTGTAAAGCATTATGTTCCTATAAAGGGTGGCGTGACAGTCCATT
-ACCAAGCACGAGACCCTCTGCTGATCTGTCCTAACAAGTGGAATTATGATATGCAGCAAC
-ACAGGAACCAGGCTTACGCTAGCCACATTGCAGAGAGACATTGCCAGAATCTCACTTGTA
-GAGGCCACCATCATATACATCAGTAAGCCTCTCTCCCTGGATCCACATCTCCCTCTATAA
-GGAGCCCTGTTAACCCCATCATTTAAGGGCTTCATACATTTGCCTTATATTTCTCTCATA
-AACAAATCAATGAGTTCCAGACTTTTGGTACAAATGTATGAAGACAGAAGAAATCATATT
-TCAGtcttaaaagcctaatcccagaagtgacacccatcacttcacattccattgccaaga
-gcaaatcacatgaccacacagatgcaaggggaatgagacattggcaaccacttcccagtg
-aCCATTATATATTATAGAAGGGGGGCATGCATGTAAGAGGAAAGTTGGTCTTCTCTGACA
-GAGACGTAGAATTCTACAAACATAGGGGAGGACGTTAAAAGGTGCTGAGCAGATAAAGGT
-CAAATGTCTGTTACAGAAGGACACAGGCACCAAAAGATAAAGagatactcctcaatttat
-gagggagttatgtcccaataaactcaccataaattgaaaatatcatacgtcaaaacttca
-tttaatacaactaacctacctaacatcatagcttagccaagcctgccttaaatgtgctca
-gaatatttatttgagcacatagttgggcaaaatcatctaataaaaagactattttataat
-aaagggttgaatatttcctgtaatttattgaatactgtattgaaagtgaaagatggaatg
-gttgtatgggtacttgaagtatggtttctactgaatgcatatggctttcacaccatcgta
-gagtcaagaaatcatgtcaaccatcataaataggggactatctgTATGACAGTAAAAACC
-ATTTTGTTACACAAATAGCAATCATCAAAAAAGAAAACACAGCAATTTCTGTTGCATATA
-TCCAAGCATTCAACAACAAAAGACCTTTCATTTTAATCAtttttttaagacacacggtct
-gactctgttgcccaggctggagtgcaatggtacaatcatagctaactgcagccccgacct
-cctgagctcaagcgatcctcctgcctcagtctcttgagtagctgggactacaggtgcgca
-tcactatgcctggctagttttttctagaggcagagtcttgctatgttcctcagactggtc
-tcaaactcttggcctcaagtgatcctcccaccttggcttcccaaagtgctagaattacag
-aggtgagccacagcacctggccAAGAATAGACATTTTATATCAAAGTAATTCAAGTATCT
-ATATGAACAAGTAATCGTGCAACTAGGTAATCAGGGCTTTGACCAATTTTGAATTACACA
-ATTAAAGTGCTAATATGTATTGTATTATACTGTATTTGCTGTAGCAATGCAAAAACTTCA
-TTGTTCTTTGTCCCCAAATACAACTGTCACTTATATTTCACTGTTTATGCTGCTAGTACA
-TAGCTTTATAAATTAATCTATCTTGTTTCTGACACTTATACATATTTCATCCTCTGGGGA
-CCTGGAGGAGCATATTCTTTGCCCCACCTCACAATTACCTATGCATATTTCTCAGTAACA
-GGCATAAGGCACGCTGCACAATCTTAGCTGATGAGATAAGAAGTCTCTCCTAAGGCTTTA
-CTCGCTGGACCATGGCAGAAATGTGGACAAGAGTGGTTGCAGAACATGCTGTGCCTGGGG
-CAAGGACCCTCTAATAGAACTAGAAGAGATAAGTCACAGGTACAAGGAGTGTGCAATCGG
-TCTGTTCAGCCACAGTTGCTATTAGAGGCCCCTGAAGAATTTGTTGTACTTTCCACGCTA
-GGCTACCTCGATCACAGAAATCAGCCTAGAGTCATATAACCCAAAGGGGGAGCTGACATT
-GCTGCTAAGCCCTCCTCCTGAGGGCCTTTTATCATCTCGTCCTGTAACCTACCTTTGCCA
-AGACAATTCCTTCAATCTTTGCTTTGTTTCAGGGAACAGTAATCCTACTAAGACTCTAAC
-AGTAGGGACGAGAGAAAGGGATGGAACAAAGGAGTGAGGCAAGGAGGCATCAGATGAAAG
-TGAGCTAATAATCTGTTGGCACCCATCACAtgctgagtacttccacttacattatcacac
-ttaagatgcacaatactttgggcatgatgtcactgccagcaaatctgaaattaggaaact
-caggcccagaagatatgaagtgacttttccggggtatcattaatgcaccagcagtgtaag
-ctaaattgaatccattctgcctgacaccaaaatcgtattcctttcCTTCCCTCCCACAAT
-TGTTTCCATTGGTGTATAAAACCTCTAAAGATCAAGATGTGGCTTCCTTCTTTAAAGAAA
-TAAAGCTGAGGCTAGGTAGTGACAGGTGGGGGCAAGTATGACCATCTATGAATGTTAAAT
-CTCACCCTCAATCCCACCTTGTAGTTTACCATCTATAGACTTGGCCTTCTTTAGATGAAG
-CAGTGTTGTAGGGgcctttctcaactggtgttcctcattcgaaccacagaacacagaaaa
-tgacttaggtgactattttcccaattcttccaaagatgatacatatgaataccattctag
-gtgcttagaagaaaggttaatccaaacacaatggatgtgtttggttgttaggatttaatt
-tgcttgcagaaacccaattgagacatgctgGTAGGGAATCTCTAACATTGGTCCACTGTA
-GAAGACAGAGGAGACGATCAATTTATTTTGTCTATCAACCTGCAGAAATAAAGAGTTTTG
-GTGGAACTGTAGGTAGAGAAAGAAGGAGGTACCTTCCCATGGCCTTGATGAGCCTGAGTC
-TTTCTAAATGCCAGGAAGGAAAACTACTCAAATTAGCTGTAACAGGGAGTTATCACAACA
-ATTTTTATTCTCTTGGGAAGTGCTAAAACAAATATATATGGAAATCTTACAGCCAACAGA
-AACGAatttcccactgctttcctccctcccaaactttcccactgtccctaattgaaaccc
-cattggaaggtaactaaatcctgtacaaccagaatctcctcatctaacttttcatttctc
-cctgtgttaaattaatcctgtttctccctcatggattcaccatcaacttgtactctcaag
-ctgatgctgttcattttcccacttttcatgactcaaggccaaaaggttggtatggcagct
-tcctcccttcccaatgttattttgaaaacattgcttctgtagtgtaaaatccccaactag
-tcaagactcaagtcagctcttttcaatgcctcttcaaccatctttattgttatattttaa
-aaagcagccccccatttattgaggactttggcactttgtttagaatgtatctattctgat
-tattgcctttattattggtgacttcagcatccatatggaaacactatccagttctacaaa
-tgttcagttatttgtcctccttaatgtcaataatttacctgctattctactcctgatttc
-tggccatagagctgtccacgtcatcatcaatgaccactccacacatgaactctgaactcc
-taccaccttctctgatcacacccaggcaccttttcagctccctcattttattatagaaca
-tgcatccgccagacgcttcctccttcacttttctattttttttttttttttttttttttg
-agatggagtcttgctctgtcgcccaggctggagtgcagtggctcgatctcggctcactgc
-aagctccacctcccgggttcacgccattctcctgcctcagtctcccaagtagctgggact
-acaggtgcccaccaccacgtctggctaatttttttgtatttttagtagagatggggattc
-accgtgttagccaggatggtctcgatctcctgactttgtgatccacccgcctcagcctcc
-caaagcctccttcacttttctttattagcctcaaccccatgattcaccactccaagtact
-cccttgccagcatcctcaaatcccaataccatttttaaaattttttaaagaatttctgca
-cccacctgtgtgaaaagttcaacccccagatccttttaactgtttgtcttctccacagac
-aaattcaggctgatgagcagtgctggaaaaagtgcacagctgcgcagattagtggcacct
-gcattcatgatctccagttttcacaaagccctcaGCAGCAGCCACTTGGTTCCCTGTGTG
-CAGCGTTCAGTGGAaaactccatgagggcaagaacaatatctgcttttactcattatttt
-aacccacttgaatgttaagctccatgatgacagggactttctgcggtatagattattacc
-ggcccctaagacagtttctggcacataatagacgctcaataaatactcagtgaaggaata
-aaATAAATAGGAGGTTAAAATTAAGTGATCAACAGTAGTCCAGGGTATTAAAGagactcc
-ccttaaaagctgcaattaagcagagtcatgagaggtgagtaggagctagcctgagaggaa
-atggaaaagacagtattaaaggcaggttgaacagcGCCTCTGTGATCCCTCCCTCATGCT
-TTACACACAATCGTTCTGAGTATTCTGTACTCAAAGCCCTTCCATTCTCTCCAGTTCCAC
-TGCCGCTCCTATGCACCCTCAGATGCAGCCTCTGTATTTCAGCCAGAATGGTAGCTCTAA
-AAGGTAATTCTGCTCATTATTTTCAGCTTCTATTTGGAACTCCTCTCAGAGCTCTCTAAA
-TTTCCTCAAGATATCTATCAGTTAAATGTGTTCACCcagtggtcttccatgtggtttgta
-tatgccaaggtatccccaaaaccctttgaaggagtctgcaaggtcaaaattattttcata
-acaatatttttaaaataactagtttcataataatattttgccttttcacaaaattgacat
-tggctctgaaaatgcaaactgaagcagataaaatagctagtgcctcaccacaaatcaaag
-caggggcacaagtctataattagaagttggattctttatcaccaagcacttgtaattttt
-ttaaatgccactcttaagaatatacttgacaaagtataaaaatttttaattttattgaat
-cccttgagtaGATTTTGTTCTAAGgttaaagtaaattaaagtggaaaccaggcctggaga
-atccatgagcagacaaggcctcttaagtgctcataacttttcttgatttgcaaacgtaag
-caaaacttaattggagctatttcttgtaaatgcctatattaaagaaaaatagaacttaat
-ctcaaccaatcaaaagcagctaactaactcgtaattatataagaaggtacttcccagcag
-gatagaccaaataagacaaaatttgtaactataaccaatcaaatattttatttgtattat
-ttccacacttactgcataaaagcgtgttccttacCACttttttttttttcttgagacagg
-gcctcactctttcacccaggctggagtgcagcggcatggtaatggctcattgcagcctcg
-aactccggggctcaagcaatcctcccacctcagccttctgagtagctgggaccacaggca
-cccaccatcatgcctggctaatAtttttttttttttttttgagatggagtctggctttgt
-cacccaggctggagtgcagtggcgcaatctcggctcattgcaagctccacctcctgggtt
-catgccattctcctgcctcagcctcccgagtagctgggactacaggcacccgccactacg
-cccatgcccggctaatttttttttcttttttttcttttttggtagagagaagggtgtcac
-catgttgctcaggctggtttcaaactcctaggctcaagcaatcctcccaccttggcctcc
-caaggtgctgggattactggcaggagccaccatgtccagctTccttaccacttcttaagt
-gaagaccccgaaccacttctggtttggagttgcccaattcatgcattgctgtttgctcaa
-ataaactcttttaaaaatttttattatgcctcagtttaccttttGACACTatgttctgag
-taatacaaggaaaagtacatataaagcacttctgcagtataacaagctatgatggttgtc
-gccagaaaaatcacttaaataactatttggattttaaactgaactaggcacttttttatg
-aaacatcatttttatttgaaagaatgatggaaaaagtatggttattcagacttacatact
-tggcagaaattttctcaaaaattaacaaagtgaacttgtcatttcaaagaaaatagctag
-caatattagttaccaatctattcttataatgtgtggctgacaacaagaagtgaagtcact
-gctccctttccttgaacctgggaagatctttgtaaccaacctgaccagtacaatgcagtg
-gaagaaatatcaggtgatttccaaggcagaacagcttctgactggccctctgtctccagc
-caccatgttagaaggaagttcaggccacatggagacagcaaggcctctagctcacagtca
-gcatcaactgccagacatgtaagtgaatgggcctccagatgattccagtccccagtcttt
-gaggcttcccagctgacgtcactgacattaccatgcagagacaagccatctctgctaagc
-cttaatttttaacccatagagaccatgaaagaataacaaatgatgattgttttgaagcca
-ctacattttggggtaattcattatgcagcaatgggtaaGTAATCCTGGCATCACATGTTT
-TTCAAGAATGGGAATATGTCTTTTTCTTCCTGTCTTTCATGTCTAAGCCCTCTATCAGTG
-GTGCTTGTTGTGTGGAGTTTGGAGCCCAGGAGTAGTCAGAAAAGACTTTGATGACACAGG
-GTTGCTTGTAGAACATCTAATATGAGCAACTCCTACCTTGTGCTCACTGACCAGGCCCAC
-AGAAAAGTCAACAAGGGCAAAAGTTCTTTGCCTCACAGCACAGAACTGCTCCTTCCTCTC
-TGGTGCCTCTCCAACCACAAAATTCCTTGTCCCTGTCTTTGCCAGTCTCATGTTAAGAAA
-CCCCATAGACCCAGGTATTCTCCAATCTTGATGATAGAAGGGGAAACTGAGGAAGAGGTC
-CAGCTCACAACATTCTTACCAGCCCAGGGGGAAGGCCAAGATCTCCACAGAGTCATAAAC
-TCTAGGCCAAGACTATGCCTCTCCCAGGAATATCCAAGTTGGATATACCATATATTTTAT
-GCAgataaaatagctagtgccttaccacaaatcaaagcaggggcacaaatctgtaactag
-aagttggattctttatcaccaagcacttgtaattttttaaaatgccacttttaagaatat
-acttgacaaagtataaaaattattaattttattgaatcccttgagtaGATTTTGTTCTAA
-Ggttaaagtaaattaaagtggaaaccaggcctggagaatccatgaaaagacaaggcctct
-taagtgaTAAAACCTGTATTATTCCTACAGAGTCTCCTCTAATGTCAGCAACTGTCCTGG
-TGTCTCAACCTGTCTTTACCACCTTGATTTAGCCATCATGAAAGATCAGCCAACTCTATG
-TTATTGTATTTTTATTTCCATCTCTACTTTTTATTACAACAAAGGTCCTACTTCGTTGAA
-TTTTCCCTTGCTTTTAAAAAAACGGAAGGTCTTTAACTTGTTCTGAAGAAACCTCCTGTG
-AATTTCAAAAGGGCTCCCTATCTGTTGCATGTGGGGAAGGGCCACGCACATCCACATTCC
-CTTCGTTCCAGGGCACTGGATTTTCAAATATTGAGTTCTTGCTGTCTTCAGTCTTTGAAT
-AAAGCTCACGTGGACAACTATGAAGTTTAAAAGCATAGGTTGAGTTTGGGGTATAGTCAT
-GAGAATAGAGAGGAAAGAGCAGAAGTACAGCTCATTGCAGAGGACAAGCATCATGATATT
-CAGAACATTTGATATGGAGTGATATGGGGTAAGAGTGAGCTGGGTTTTATTCTGGGAAAT
-CACCCAGccctgaaaaagctatttatattcttttgttcactttccttatctgtaacacag
-agaccgttatgccaggtttcctagctactttagttgttgtgaagCAGCATATTATAAATA
-TCATAAAAGATTATCCAGTgctaggtgccatggtgcacagctgtaatcccagctacttgg
-gaggcagagtcaggaggatcacttaagcccaagagttcaaggctgtactgcactgtgttc
-acacctgtgaatagccactgcactccaacctgagcaacacagtgCCTCTTAAATAtgtat
-atgtatatatatatatatgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtATAT
-ATATATATATATACTCTTTTAAATTTACTCTGTTTTAAATATTTTGAGGCAGAAGCAAGA
-CGTTTTGATACAGAAAGCCAGCAGGTTGCTGAATTACAAGACTGAAGCTGAGGAAACTGT
-GTTTATCAATAGAGATGCACCGCTCATTCTTATAGAGGGAAGAtacaaagtaactctatt
-aagtcaagaatttctatatgttttatttactgcaatatcctcagtacatagacagcagtt
-gacatatagtattgatcatagtatctaatgttcaatagatatctgctgaatgaactgaaA
-AATTAATAATGTTGAGCAATAACAGGTAATCACTGTAAGATAACATTCTGAGGAGACTAA
-AATTTGAAGAATGCCTACAAGAGAGGGAGATGCAAAGGGAAAACATATCCTAAAAAATGA
-AATGAAATTATCCTTAAGAGAAAAAAGAAACACCAGTATGATCAAAGATTGCAAGAGGTA
-GAAGACAAAACTGCATAAAGTAAAACAAAATGCTGAACTCTTGAAATGCAAAAATCCAAA
-AATCCTGTTGCCTGTtttttttttgtttgtttgtttgttttttttgagatagagtttcac
-tcttgttgcccaggctgaagtgcaatggcaccatctcggctcactgcaacctccacctcc
-ttggttcaagtgattctcctgcttcagcctcccaagtagctgggattacaggcgcccacc
-accatgcccagctaattttttgtatttttagtagagacgggtttcatcatgttggccagg
-ctggtctcgaactcctgacctcaggtgatccacccatcttggcctcccaaagtgctggga
-ttacaggcatgagccactgcactcggctGTATTTTTTTTTTTCACTTATTTAGAAGGCTG
-ATTTATTATCACCTCCTGCCAGTCACGGGAATGAGACAGAATCACCTTGAGAGTATCTAC
-AGGGAGAATCTGGAGTCCAAATCCCTTCTTAATCAAGAAATGCTCTTTAATCAACTCCCT
-ATATATAGGGAGGTTGATGCTGGGACAAGAGGGGCTGAATAACTTGGGGTTCTAGTCTTG
-GATATGGAATGGGGGCAAGTGTGTACAATCTCTTTGATTTTCCCCAGGGCTTCCATCAAT
-ATTCCAAAAGACTAGAAATTCTGGACAGCAGCTTTTCCCTTCTCTCCCTTTCACACTTCA
-GTGACTTCTGTCTTCATCTTAAGACACTAATCTACACCCAATTTTCTCTCCTTCCTTTTT
-GCAGGAATGCTATTCATTCAAAAATGCTGGGATGAAAGAGCAAACTTGCAAGGATATCTG
-CTACAATAATTAAAGAGAAATAGATGCCTATAATTAAAAACATTGCTGCTTGTCTCTGAA
-ATTATTTGAACACTGTATACATCATAATGTACATAATCAGTTTCCATCTGATATCCCAGA
-CATCTAATCCTGGAAACAACGTCTAATATCTCTACCCCAAAGCAATAGAATTAGAGCTGG
-AAGGGGCAGGTAAGCAACAGTGTGGACCTTTctcagcagcagtgaacttggggtgctcac
-aacctgtgcaaaaccagctgtggtggctaaggattgcctatgtcacctctcccccaactc
-taggcaatgcagcttggggatagactccttccacttgggggaagaagagggaagagtaca
-gagggctttgccttgcaacttgggtaccagctcagccacagtaaagtaaagtatcAAAAG
-TTacccagcatggtgccagctgtggtggccactggacttgcccttcccccaactccaagc
-agcctggcacagagagagagactccttttgtttgggggtaaatgagggaagagaagaaga
-aactctgcctggtaacccagggaatttggccaaatttaaaccccagcccactaaggtggt
-tcctctaggactcagcgagagttgcagtgtttctgagcttagggcaccctctagtgctga
-tatagtttcaataatcacaggctcaaatcacaacactcaatctccttcaaatacctgaaa
-agccttcccaagaaggatgggtgcaaacaagcccagattgtgaaggctacaatatgtatc
-taactcttcaatgcccagacatcaacaaccatcttcaagagttaagaacatccagggaaa
-tatgacctcatcaaatgaactaaataaggcatcagtgaccaatctgagaatgatggagat
-atgtgactttttagacaaataattcaaaatagctgtcttgatgaagctcaacaaacttca
-agacaacacagagaaagaattcagaattacatcagagaagtttcacaaagaaattgaagt
-aatttctaaaaaatcaagcagaaattctggcactgaaaagtttgattgtcaaagtgaaaa
-atgcataagagtctttcaacggcagaattgatcaagcagaaggaactggtgagaactggc
-tatccaaatatacacgaagccaaaaaaagaattaaaaaagaataaagtatgcctacaaaa
-tgtagaaaatagtctcaaaagggtaaatccaagagttattggtcttaaagaggatgtaga
-gggagagaaaagggtaaatagagagatcttttcctcagcacatggaacattttgagagat
-cagggtagaaaggtcagagaaataaaaacaaacaaccttccaaacctcaagaaagatata
-aacatccaggtacaaaaaggtcaaaaaacaccaagcagattcaacccaaataagactacc
-tcaaggcttataataatcaaactttcaaagatcaaagataaagaaaggatcctaaaagca
-ccaagagaaaagaggcaaataacatataaaggaactccaatacatctagcagcagacttt
-tcaacagcaactttacaggccaggagggagtgggaaaacatatgaaaactgctgaaggaa
-aaccaaccttcaacctagaatattatctccagcaaaattatcctctaaacatgaaggaaa
-aatagtctcccagacaaacaaaagctgaggaatttcatcaataccagatctgtcttacaa
-gaaatgcccatgggagttctccaacctgaaataaaaggacattaactaacaacaagaaat
-cgtctgaaggtataaactcactggtgatagtaagtacacagacaaatacaaataccctaa
-cactgtaattctggcatatgaaccgttcatatctttagtagaaagactaaaagacaaacc
-aatcaaaaataataatgacaacaactttttaagagattgtataaaaagatacagagacaa
-taaaaatcaaaaagagtgtagagtgtagagtggttgtctctttgcttgttagtctgtttt
-tcttttctttttaatcaggattaagttgtcatcagtttaaaataagtggttataagatgt
-tatttgcaagcttcatggtaagtacaaaacaaaaacctgtaacaaatatgcaagaaatta
-aaacatactaccacacaaagtcaactttacacaaagaaagatggaaggaagggagggagg
-gagggagggagcagggaagggaaggaagggagggaagggagggaatggagggaaggagga
-aaggagggaaggagtgagggagggagggaaggagtgagggagggagggaaggagagagga
-gaaaaggagggagagaggagaaaaggagggagagaggagggagggaggaaagggagggaa
-ggagggaggaagggagggaaggaaggaaggagggaaggaaggaaggaaggaaggaaggaa
-ggaaggaaggaaggaaggaaggaaaaagaggaccgatgaagcaaccagaagataaatttt
-taaatggcagttgtaagtccttatctattaataagaacattgaatgtaaatggactgaag
-tctccaatcaaaagacatagagtggttgaatggataaaagagcaagacccaactacatgc
-tgcctatgagaaactcacttcacctataaagaaactcatagactgaatataaaggaatga
-aaaaagaaattctatgcaaatagaaaccaaaaaagaagttattatacttatatcagataa
-aaatatctttcaagacaaaactgtaaaaagagacgaaggtcgttgtttaataataaagga
-gtcaatttttgcaagaggatataacaattataaatatatatgcacccaacactagggaac
-acagatatataaagcaaaaattattagttctaaagagagaggtagaccccaaaacaataa
-tagttagggacactaacaccccactttcagcattggacagatcatcaagacataaaatcc
-acaaagaaatatcagacttagtctgcactataaaccaaatggacctaacagacatttata
-gaacatttcatccaacagccatggaatacacattattttcctcaccatatgaacattctc
-aaagataaaccacttgttaggccacaaaacaggtctcaaaagaatctaaataattaaaac
-catatcaagtatcttttatgaccacagtggaataaaagtagaaatcaataacaagaggaa
-ctttgaacactatacaaacacatggaaattaaaaaacataatcctgaatgaccgttgggt
-cattgaagaaattaagacagaaattttaaaatttcttgaaacaaatgaaaatggaaatac
-aacattccaaaacctatgggatacagcaaaagcagtactaagagggaattttatagcaat
-aaatgtgtatatcaaaaaagtagaaaaaatgatcaataaagcagtctCAGTATCAAAAAT
-TATGCCATATGTCATTCCCTTCCCCAATATAGAAATTATTTAGAAATCAATAAcaaaaag
-ttcaagaaaatgtatattatgaaaaaaatcatgtaagaatttcaaaatgttttgcaccaa
-aataaactaatactaactggttataaaatgtttgaacaagatctagtttcagacactaaa
-aaagataagacatcagtctgaaaagagcccctatcagagcaacatgaattctgctaaaat
-tgaagcaagaacaaacatcaaatgtacagtgaagcttgggtagaagaatgatgaaatcat
-tgatgctttacaaaaagtctatgggacgatgccccaaggaagtcagcagtttgcaaatgg
-ataactcattttaataagggatgagataatattgaagatgaagccaccagcagcagacca
-cccacatcagtttgggaggaaaaaattaatcttgttcatgccccagttgaaaaggactga
-taattaacagtaaaaacaattgtcaacatcatagacttctcagttggttcagttaatgga
-aatctgactaaaaaattaaagaagaacaaactttccacttgatgggcgccaaaaccattg
-tgccaaaatcagctacaaacaagagcacagctttcaatgaaactttaaacaagtgggatc
-aagatcctgaagcatttattcaaagcactgtaacaaaagttggaatctggctttaccagt
-atgaccctgaagacaaagcaaaatcaaagcaaagagatggaagtgatccagtccaagcaa
-aagctgaccagttaagaacaaaagtcatgtcaacaatttttgggggtgcacaaggcattt
-tgcttgttgactttctggagggccaaagaacaataacatctgcttattatgagagtgttt
-tgagaaagttagccaaagctttagctgaaaaatacccaggaaaacttcaccagagagtcc
-ttctccaacatgacaatgctcctgctcattcccctagtcaaacaagggcaatttttcaag
-cgttttgatggaaagtcattaggcatccacattgccatcctgacatggctccttttgact
-tctttttatctcctaatcttaaaaaaaaatctttaaaggacaccaatttttcttcagtta
-ataatgtaaaagaacactgatgtggttaaattcccaggaagctcagtccttcagggatag
-actaagtggctggtaccattgcttacaaaagtgtcttgaacttgatggagcttatgttga
-gaaataaagtttatatctttatatttttatattttaatgtcatcttccacaaactgtttg
-aagttccctcataactaaaatgtccccacatgctcagataagaaacacatttctcaacca
-atgtttctcagatattaaagtacatacaaatcacctgaggatcttcctaatacgcagatt
-ttgattgactcattctgagatgaattgaaatcctgcatttctgacaagctctccggaagt
-gttgatgcttctggtctttccaccacactgtgaatagcaaggttcaaactaattcatatg
-tcagaaaagatgacacagtggaaattgaagtgtttatttttaagtgaatgattatgataa
-caaaacactgcaaataaaaacttatgaagtccagctaaagctgcatataaagggaaaatt
-agagtcttacccacttggttatactgaagaaaagctgaaaatgtatgagataacaacaca
-aataataagttagaaaacaataacagaataaaatgaaattttattcaaagaagttcaaag
-aaaggaagataaagctgagaggagaaaataattaaatattttttaattttcataatattt
-aaaataaaatataattaaataaaaatcaaacatagaatcaacaaaaccaaaagctgattt
-tgaaaagaccaattaattaattcactataggaataacaaagaaaaaattgaaaacacatt
-acccatatgaagaataaaacacgtagccatcactacaaactctatagatagtaaagagat
-caaaggacatattgtgagtgaccttatgccaaaaatgaaatttagaagaaataaacatta
-cttgatgtgacccaagaagaaattgaaaatttgacagttctaaattgttagggaaattaa
-atctTAAATCTTTAAACTCAGTTGAGTTTTTCTGCTACATTCCAATGTCTGATCCCTAGC
-TCTATGGGTTTCAACAGACAGTTGTAGAAGCAGCAGAAAAATATCCTTGCTCTTATATTA
-CAGCTACCGTGGTGTGTTCTTGAAGTCCAGCATGTCTAATCATGGGATCCTGTCACCCTA
-CTTTCCTGACTATGAAAGAACTAGCAGATTCTCTGCTGGGCCAGTTTGTTGGAATGTTCT
-GGAAGTCATTCTGGGAGACCAAGCCCACAGTCAGCTTCTGTAGAGAGTTTATAAGCACAT
-AATTCTGAGTATTAAAAATATTTCTGTTGAAAATAGCTAGTGTTTTTCATTTCCCAACTG
-ATACACATAAATGCAACACTTTGCACATGTGAATAATTTGTCTTTTTACAAAATTATGCT
-ACACTGTTGATAGATTCATTCCATATATACATGCAACATACTTAATTTTTCATAACTTTC
-CAATTCTTATTAACTCAACTTTTTGTTCCATAATAACTGTGCTTCTCTTTGTACCAGTAC
-TTTCCATATTCTTATTGCTTTGGGACTAGCAAGACACAATGAGGTGAATAATGTTATTTC
-AATGCATCTTAAAACACCAGAAACCAATTAATATGCGATATTCAGGATTAACTGATTCCA
-AAGGGCTGTTAATTCCATCTCTTGATATTGACAAGTAGTAAGTAAATATGCCTAAGCTTG
-ATTATTTTTGTTCATAGAAGTAAAATATACATTTCATAAAGTGAAAGTTCATAAGATTTG
-CTTTTATTGTTTTAAAAAATAACAGTTAATTTAAACAAAACTGAGGAGTCATTGGATACT
-ATAGTAGCTAATGAAATCCTAAGAAGACATGAATTTCAGGAAGGCGAGGAACCAGGGAAA
-CTCTTGAAACTTGAACAATTAATAATATTCAGAGCCAATGAGCTTCAATATCTGAGTTTC
-TTAGGAAATGTCCCAAATTAGCAGGGGAAAGCATCTGATTGGTAGGCTTGGTTCTATTGT
-TACACCTGGATCAATCAGCTACGACCAAGGAATCTGAGCAGTACACTATAAAAATTGCTG
-CTTTTaattatttcaaccattgtggaagatagtgtggcaatccctcaaaaacctaaagtc
-agaaataccatttgacctagcaatcctattactgggtatatgcccaaaggaatataaatg
-gttctattataaagacacatgcatgcatatgttcactgcagcgctattcacaataacaaa
-gacatagaatcaacccaaatgcccatcatttggccatttggataaagaatggataaagaa
-aatgtggtacatatataccacggaatactatgcagccataaaaaagaatgagatcgtgtc
-ctttgcagggacatggatggagctggaggccattatccttagcaaatgaaggcagaaaca
-gaaaaccaaatactgcatgttctcacttataggtgggagcaaaatgatgagaacacatgg
-acacacagaggggaacaacacacactggagcttactggagagtggaaggtgggaggaggg
-agaggatgaggaaaaataactaatggacactaggcttaatagctgggtgatgaaataatc
-tatacaaccaacccccatgacacacattacctatgtaacaaaccagcacatcctgcacat
-atacccgcgaagttaaaaaagttTTTTTTTAGTTGCTACTTTAAAAGGATGTGGGAATCA
-TTGTAAACTCAAAAGTTAAAGATGTGCCAAGAGCTGTCTCCCACGAACTTGTTTAACAAA
-CGTACTGACTTTGTATGTTGATCCAATACCCATGCTGGCCACTGGACATACCAGTACAAA
-CAAGGCAGAATCTTCACTCTCCTCTAGCTCTTCTAATTCTCATGCACTAAGTGCCAACCT
-TAGCATAACTGGGCTGACAATCAGTGAATCAAATATCTAACTCTTATCCTACTCCAACGT
-TAAGAAAGAGACATGCgactgggtgcggtggctcatgcctggaaccccagcactttggga
-ggccaaggtgggcggatcacttgaggtcaggagtttgagaccagcctggccaacatggtg
-aaaccccgtctctactgaaaatacaaaagttagctgggcatggtggtgcatgcctgtagt
-cccagatactctacttgggaggctgaggcaggaggattgcctgaacctgggaggcggagg
-ttgcagtgagtcgagatcacgccactgcactccagcctgggcaacagagtgagactccat
-ctcaaaaaagcaaaaGAGAGACACATGCAAAGGGCTTGCTCTTTCTTTCTCATCTTACCT
-ATCTTATGTTTTCCTCCAGGATCAAGAGCAAGGAATTTGTTGCATAGAGGTGTTCAAGAA
-AGGGTGTTTTCAAACAGAGTCAGAAAAAACACAACTATACTGCGAGCAGCATACAAACCT
-GCTTTGGCTGCACTTCACTGCTCATGGCATAAGGCCACGAAGAGGCCAATAAAGGCTGGA
-GCTCAGGAGCATCAACCCAGATTCAAGGCTTCCTCTCTGGCACCCAACCATGAAGCTCCT
-TTTTCCTATCTTTGCCAGCCTCATGCTACAGTACCAGGTGAACACAGGTAATGTGGATTC
-CCAAGTTTAAGATGGGTAGATGAGAGGAACCAAGGATTTGGCTGCCCATGACAATGGAAA
-CCCAAAGAGAGGAGACTGAAAGATTAGCTGTTCAAAAAGATGGCTAAAGAGCTTACCTAT
-TGTATCAGTCATGCACTGATACATTCTCATAGGCCCCAACTGCCAGATTGTGTCCAGTGG
-AAACACCCAGGAAGCTACAGAGAAAGCAGGGTATTTTTTGTCTATTCAGAAACTATCCAA
-AATATAATGCTGCCTTCCTGCCCTGTATATGTCTATCATGCTAAGACTAAGCCCAGGTCT
-ACCTCCTTTTAGCTCTATTTCTATCTTAAAAGCCCTTTTTTTTTAAAAAaagtcctgggg
-tacttgtgcaggatgtgcggtttgttacataggtaaatgtgtgtcatggttatttgctgc
-acctaccaacccatcgcccaggtattaagcccaggatgcattagctatttttcctgatgc
-tctccctccacccaacaggccccagtgtgtgttgttccccttcctgtgAAACCACCTCTT
-GAAGCAAAGTTTCCTATCAGTTTGTGCTTGGTGTAGAAAGGAGGAAGTTCTTCCCTCATG
-CTCAAAAAAAAACCCTTTCAAGATCAAGTAAACAGGCCTGTGTTCTCCATCTTGAATTCT
-TTCAGGTTTTCCAGAGCCTTTATCGCTTCTCTCAGACTTTGTCTTCCTGAAAACCCCCAA
-ACTACCATAAGGGCATCTAGGAATGCATTATAGCAAAAGGCTAAGCCAGGGGATTAACCA
-TTGTTTTTGGAAAAGAAAGGAGAAGCACTGAGATTTGTTTCAGAATACAAGAATCATCCA
-GCTATTTGAAAAAATTAGCAAAGGGTTTCGGGGCAGGGAAAGTGGAAGTGTCAAAGATGC
-TTCTAATGTTTTTATCTTCTAATGTTTTTATCTTGGGACCCTAGGAAAAGGGTAGTACCA
-TAAGCAAGTAtggctgtgtcatcttgggtaaagtcacttaaccactttgaacttcaattt
-cacatgagtataatggggttaatcaatgcAGCTGATTCCAATATAAGAATTTTTCTGTTT
-CCCGTTTGATGAGAAAACAATGTGGAAATGTATGCAAATATGCTTTGAAAATTAGCAGAT
-GCTACATAAATCTCTTGTAATTTAGGGAAAATCATTGGGTTATTAAGATGAACAAGGGAG
-AAAAGCTTTCTTGATTCAGAAAAAAGAAACACGAGACATTAGGATGGAAAAGTCATTCAG
-CAGATAAAGATAAGGTACTAAGCCGAGCAGGAAATTTAGAATTATAGATAACAATACAGA
-AGTTACCTTGGTGGATATGAGGTTAAGGCTAGGATAATGAATGAGACTTCTGAGAGATAG
-AGTGTCCAAAGAGGCTAGAAGAGATAGAACACCATGCTTCAGGAATCACAGATCTAGTGA
-TTGTTGAGAAGAGAGAAGTCATGGGCTACTGAGTTTGGTGAAAAGATAAGACTCCTGAAA
-ATTCTATTGATTCTCTTTTGAACTTCTTTCTTAAATTAGTTTTATGATGGACTTGGCTCT
-CATTGGTATTTCCCAAGATTATGGAGATGGGATAGTGATGTCTGACAAGTACCTAAGATG
-CTAAGTTGAAGGTCTAAAATTCCATCCTAAAAGCAAATAATTACTCTATCATCTACGTGC
-CCTTTGCTTCTTAAAGTTACTCAAGGAAGGCAGACTAAACAGGAAATTTACTTTGGATTC
-AAGAGGGGCATAGAGACGCTCTCAGCCTGCCCATTTGCCTTCATCAACATTCCTAAACAC
-TGGGCTTAAAATGTAGTATGAGTAAACTCTCTCTTAGTCTATCCATCTCCCACTAGCAGT
-TTTAACATCATCTCTAGTTATTAACCTTGGCTCAATGGCTTTCTCTTTTTTTATACAGAA
-TTTATTGGCTTGAGACGCTGTTTAATGGGTTTGGGGAGATGCAGGGATCACTGCAATGTG
-GATGAAAAAGAGATACAGAAATGCAAGATGAAAAAATGTTGTGTTGGACCAAAAGTGGTT
-AAATTGATTAAAAACTACCTGCAATATGGAACACCAAATGTACTTAATGAAGACGTCCAA
-GAAATGCTAAAACCTGCCAAGAATTCTAGTGCTGTGATACAAAGAAAACATATTTTATCT
-GTTCTCCCCCAAATCAAAAGCACTAGCTTTTTTGCTAATACCAACTTTGTCATCATTCCA
-AATGCCACCCCTATGAACTCTGCCACCATCAGCACTATGACCCCAGGACAGATCACATAC
-ACTGCTACTTCTACCAAGAGTAACACCAAAGAAAGCAGAGATTCTGCCACTGCCTCGCCA
-CCACCAGCACCACCTCCACCAAACATACTGCCAACACCATCACTGGAGCTAGAGGAAGCA
-GAAGAGCAGTAATGTGGATCTTTCCCTTAAAACTCCAAGTTCCTCTCTATTTTTGCTATC
-TATAAAATGACATAGAACTGTTTCCTCTGTCATCAGTCATTCAATAAACACTGTTTGAGC
-ACCTACAGTTTATGTAATATTATCATTCTCACAAGAGCCTCACAGAGGGGGTAGAGCTAG
-GGAGGGATGGAATTGTTTAAGTTTAGATGCCCAGGAGAAAGTAAGCCTCAGGAGGGTGAC
-TACAGCATCGAGTTTGTCCCAAGCATGGCCTAGATTAGGCCTCTGTAGCAAGCATTTATG
-TCTCTCATATGGTGTGTTTTTCCTGGAGCAACAGTAAGGAAAGCATCAGGAGATGTATTT
-TCTTTTCTCATGTATTTGGGAGGAAAGGCCCAAATGCAAAATAGAATATGTAGGAATCag
-aaaaaggttaaattaattgtaataatatatttttgtttcgttttgttttgagacggagtc
-tcactcagttgcccaggctggagtgcagtggtgtgatctcagctcactgcaactccacct
-cccgggttcaagcaattctcctgcctcagcctcctgagtaaccgagattacaggcgcaca
-ccaccacacccagctaatttttgtatttttagtagagacggggtttcaccatgttggtca
-ggctggtctcgaactcctgacctcgtgatccgcctgcctcggtctcccaaaatgctggga
-ttacaggcatgagccaccacacccaaccaataatgtgttttattgaatgcaatatatcca
-aaacatgatcatgttgacatgtaatcaatgtaaaaattatttatgagagagtttaccttt
-tttggactacatctttgaaatctcatatgtgtaattacacatagagcacatttctattca
-tactagccacatctcaagtgctcatagtcatatatgaatagaggatttcatagcatattg
-aacagcAACAAGGCTAGAGAGTTTTAGGGCACAAGTAATTATAGTGACTCTTAGGCATAG
-GGGATGCCCCTAATCCAGAGGAGACAGGCATATTTCTGAGGGCtgtggcatataatttaa
-gagtatagaaattcaggtctgatatgcccggactagcatcctagattctggcacttttta
-gctgtgtggtcttgaacaaatcatttatccacacataagcatcagtttatttattcataa
-aatggagatGTGAACATTATATTATATCCCAGAAATCAGCAATCTCAGATCACTCTTCCT
-CTTATTGCCCAAATTACAATGGCACAGCCACCTATTCTAGttttttaatagctttattga
-agcataattgatatacagagaattgaacatatttaatgtgaataatggcatgagtttggg
-catatgcaaaatcctgtgatactatcaccacaatcaaggtgatagacgtatacatcacct
-cccaaagtAacatgaccatatttgtagaaaaccctgaaaacttcacgaacacacacacaa
-aaatgtagaactaagaaatagattcaaaaaagtcaacatacaaatatcagtggcatttct
-atacacttaacaatgaaccattccaaaagaaaatcaaggaaacaatctatttacaaaagc
-aacaaaaagaataacataggaataaacttaaccaaagaagtgaaagaggtacattaaaaa
-cttaaaaatattgatgaaaaaatcaaaggaaacacaaataaatggaaagatattccatgt
-ttaggtattgaaagacttaacattgttaaactgttcattctgtctaaagcaatctacaga
-tataatacatctccccccttccaaatcccaatggcattttttaaagaaatggaaaaaaca
-atcctaaaattcacagggtaccataaaagacccagaatagcaaaatcaatcttgagtaaa
-aagaacaaagctgaaggcatcacactttcttatttcaaaatatattacaaaggtatagta
-attaggccaggcgcagggactcacgcctgtaatccagcactttgggaggccgaggcgggc
-ggatcatgaggtcaggatatcgagaccatcctggctaacacggtgaaacctcgtctctac
-taaaaacacaaaaaacaaaaaatagccgggcgtggtggcgggcgcctgtagtcccagcta
-cttgggaggctgaggcaggagaatggcgcgaacccgggaggcggagcttgcagtgagccg
-agattgggccactgcactccagcctgggcgacagagccagactctgtttcagaaaaataa
-ataaataaataaataaataaataaataaataaataatggtgttgggaaaactggctaccc
-acatgcagaagaatgaaattggatccttatctcaccccatataaaagaaatcaactcaaa
-acggattaacgacttaaacataagacctaaaactgtaaaactactagaagaaaacacagt
-actgttctgtatttaagctccatgacatcgttctgggcaatgatttcttgcatatgaccc
-caaagcacaggcaacaaaagtgaaaataggtaactgCATCCAGATTTTTTAACATATTCT
-TCTCTGCTACATATCACCTACCTCCATTCAAAGGTCACCTTTCCCCATCCTACTCATTTT
-TTAATACAGTGTCACTCTAAGAAAGACAAAGATTTTTCATGATGCCCCACAGTGATTCTA
-GAATATAACTAAAAAATATTTTCCTGGAAGTTTTTGCACAACAGAAAGGAGTTGCAATAC
-AAAGCATAAGTTTAACACCTGCTAGATATGTGTTCTCTGAGGAACCCCAAGCCTACCTGA
-TGGGTGTCAGATTCTCTCCCTGCTACAGCTATTTGTCAAACTCTTGAAAGTCCAGCTTTC
-CTTCCCATGGAAGGAAAATTCCCACGGAATGCTCTCTTCCGTGTTTACCCACAGAAAGGA
-GAGAAAGGTTCTTTCTCACACAAGTCTAAGGCCTTCCTCTAAGTCACCTTTTCCTATCAT
-AGAACTCACCCAGCACTTCTCAGGATAAATGATACTGCAGAATATGAGTTTGCTTCAGGG
-AAATCCCATACCCACTGTGAAAAATATGGTAACTctccaatatcagttctccccctttgc
-taagtaatagaaccctccaaatattaggttgacacaaagccgaccagagaaaaggctgaa
-tttcccaTCTAGAACTGGTCATTCTTCAATTCAGACCAGCCATAACTGGACACTTTTGCA
-AATATTCATTAATAGTCTTGGTGAAAACCTCAGATTTCCATTTTGCCAAAGTTTCCAAAG
-GAAAAGAGGGCCTTTTTCTAAGCCCTGAGAGCCCCACAGTGACAGTAAGTTCTCCCTTGG
-AATTCACCCTGGCATACCTCGGTGCTACCCCAGATCCTTTCCCTCAGGGGCTATGAGATT
-AGGTTTCATggccgaatgtgacggttcatgcctttaatcccaacactttgggaggccgag
-gcaggaggatggcttgagcccaggagtttgagaccagtctgggcaacatcatgagactct
-gtctatgtaaaaaataaaaattaaccaggtgtcatggtacataactccagtccctgctac
-tgtggggcaggggctgtgggggctgaggagggaggattgcttgagcccagaaggttgagg
-ctgcagtgagctgtggtcgtaccactgcactccagcctgggcaacagagcaagaccctgc
-cttttaaagaaaaagagaaaGGAggttgggcatggtggctcatgcctataatcccaccac
-tttgggaggccgaggcaggtggatcacctgaggtcaggagttcgagaccagactggacaa
-catggtgaaaccccatttctactaaaaatacataaattagctgggtgtggtggcgggcac
-atgtaatcccagctactcaggaggctgaggcaggagaattgcttgaacctgggaggcgaa
-ggttgcagtgagtcgagattgtgccactgcactccagcctgggtgacaaaagcaaaactc
-catctctaaataaataaataaaaataaaaaaGAGAGAGAGTGAGATTAGGACTCACCCTG
-GCCATCCCAGGTCCTGCCACTCCAGGTCCTGCCACTCAGGGACTGTGTGACTCTATATTT
-TTTTTAACTTCTCAGGCCAATATTAGAACCCAATCTGATCAAATTAGAAACCTATGAACA
-TTCCACTTACTAGCAGTGCATTCATGGAGCACTTCACAGGGAGTCACCAAAGTATCAATC
-AATCAATAAACTACTACCCTACCCTGAACTAttaggttggtgcaaagtaattgcagtttt
-tgcattgttggaatttgctgtttgatattagaatgcgttcttaaataaatgtggttatgt
-tacactttttttttttttttttttgagatggagtttcgctcttgttgcccaggctggagt
-gcaatggtgtgatcttggctcaccgtaacctcctcctcccgggttcaagctattctcctg
-cctcagcctccctagaagctgggattacaggcctgtgccaccatgactgactaattttgt
-atttttagtagagacggggtttctccatgttgatcaggctggtctctaactcctgacctc
-aggtgatgcacccgcctcagcctcccaaagtgctgggattacaggcatgagtcactgctc
-ccggcctatacatcattttaataggcatttctcactttatgttttttgataatgacttat
-tacttgctgttgattttatgtttattttagactatggaaatgatgtcagacaaaaagaaa
-attcaagcgattttcttattcaagttcaaaatgggtcgtaaagcagcagagacaacttgc
-aacatcgactgcgcatctggtccaggaactgctaacgaacgtacagtgcagtcgtggttc
-aaaaagttttgcaaaggagaggagaacctcgaagatgaggaatgtagtggccggccgttg
-gaagttgacaaccaccaattgagagcaatcattgaagctgatcctcttacaactatacaa
-gaagttgctgaagaactcaaccttgaccattctatggtcgtttggcatttgaagcaaatt
-ggaaagatgaaaaagctcgataagtgggtgcctcatgagctgagcaaaaatcaaatcatc
-attttgaagtgtcgtcatctcttattctacgcaacaatgaaccatttctcaattggattg
-ggacatggcaatgaaaagtgtattgtatgtgacaacctgctacaagcagctcagtggttg
-gaccaggaagctgcaaagcacttctcaaagccaaatttgcaccaaaaaaaaaggtcatgg
-tcactgtttggcactgtgatccactacagctttctgaatcccagcgaaaccattacctct
-gataagcatgctcagaaaatgagatggaaatgagatgcaccgaaaactgcaatgcctgca
-gccggcactggtcaacagaaagggcccagttctttacgacaaggcctgacctcatgttgc
-acaaccgacacttcaaaagttgaatgaattgggctacgaagttttgcctcatctgccata
-ttcacctgacctctcgccgatcgactaccacttcttccaactttttgcagggaaaatgtt
-tccacaatcagcaggatgccgaaaatgcttccaagggtttgttgaatcccaaagcacaga
-tttttacactacaggaataaacaaatttattcctcattggcaaaaatgtgttgattgtaa
-tggttcctaatttgagtaatcaagatgtgtttgagcctagttatagtgatttaaaattca
-cggtctgaaatcgcaattacttttgcaccaacctaaTATGTATGCAGGTGAATTCTGTCT
-GTCTTTGCTAAGCAGTGAGGTGATCCCGTGCTTAATGATGTTACTGCAAGCATGACAGCG
-GATAGAAGCGGGGAGGGCCAGTGATGAAGATAACTATTAGAGAGGGCATCCCAGTTGATT
-AGAAGCCCATCCCTAACTAACTACATCACTTCTAAAGGCCTGATTTCCAGTCCAGAACTA
-CTTTGAAAATGTTGTTTATGAACTCAAATTGTTAGTTGTAAAAATTATGAAATGAAAGAC
-TATTATGAGCATATATAAAATAAATTAGCCAGTAAATAACCTAAGATGATGAAGAAAAGA
-GCACTAAATAAAACCATAAATAAAAAGTTGGGAGCTTGGTAATGTCCAGAAAAAAATATA
-TATTTACTGTAACAAAGCAAAGGCCTTTTGTTAGTACATGAGACTCAGAATGCCTTAAGG
-AATGTGCTGGGCTCTAGAGGGCAGGGCAGGCACACAGCAGCTGGCACTGTTTGTCCAGAC
-TCCTGCCTGGACAAGTTGAATTAGAAAAATCCAAGCAAGAAACAGTGTCACTACTGGCTT
-CCCTGCTCTCTACTCATCTGCTCAGAGAGCTGCATGCTAGTTTGGCCTGTCCTGCACCCG
-TAGAGGACAATAGGTTATCTACATCCTTCACCACTAAGTGAGCCAatgggctgaactgtg
-ttcccctcaaaattcatatgctaaagccataacccacaatgtcactgtatttggaggtaa
-agcctttaaagaggtaattaaggttaaaagaggtcatatgagcaggatcctatccaacat
-aattggtatctttgcgagaagaggaaaagataccaaggatatgcatacacaaagaaaagg
-tcatgttagggcacagcaagaggtcagccatctgcaagccaaggaaggaggtctcaggag
-aaaccaaacctgccagcaccttgatcttggacttctcgtcttcaggactgagagaaaatg
-agtatctgctgtttaagccacacaggctgtggtattctgcgatagcagccctagactaat
-acaGGCCATAAAAAAGATAATATCCTTTCTTCCTTCTTTCTGAGCTCTGGGTAAATGGAG
-GTCAGATAAAgccaggtgtgatggcacatgcctgtattacccgctactcaggaggctgag
-acaggaggattgcttgagcccagtagttctaggctgtagtacactgtgattatacctgtg
-aatagccattgcactccagcctgggcaacatagtgagaccctgtcccctccccaaccaaa
-aaaaaaaaaagaaaGGAGGAGGGGGAGGAATGAGGTAGGAACAATAGGAACAACAGATGC
-tttttttttttttttttttttgagacagagttttgctcttttcacccaggctggagtgca
-atggcgtaatctcggctcactgcagcctccgcctcccaggttcaaacgattctcctgctt
-cagcctcccgagtagccaggattacaggcacccaccaccatgcctgactgatttttgtat
-ttttagtagagatggggtttcaccatgttggccaggctggtctcaaacacctgacatcag
-gtgatccacctgcctcagccttccaaagtgctgggattacaggcgcgagccaccgtgccc
-ggccAACAGATGCCTCTTAAAACACCCTGAGCCTCTGCCTTTATTCTAAATTTGTCAGTC
-ACAGGCCCGGGAGAAAGCTGAGCAACTTCAATAGGATTTTTAACTCAAATCTAAGACAGA
-AGTTTATATAAAGTTGTAGTCAGACTCGGCTGTGTTCAGAAAGTATATTTCTTCCATTGC
-TCAGCAATTATTTATTAGCATCTATTCTGGTCTCTGGGCAAACATTAAGGACTAAGAAAT
-GAATGAACTCTAATCATTTTCATTCTTTAAAAATTGTGCAGCCAAGAAAGAGAAATAAAT
-AGGCAAATGACCACATAACAGCAAGACATGTATAGTGAAAGTCATGCTCACTGCAATAAA
-AAGAACCTCTAGCTCTGAGTGAGGAAGGGGGAGTGGGTGCTGAGGTTGTGGGAAAGAGGA
-AGCGTGGGTAGAGTGAGGCAGACTGCTGTGGAGTGGAGCTGTGGGAGTGGCTTAGAGCTT
-GCAGGAGTAAGGGAATGAGGTGAGAGTGGAGGAACGGCAGAGTGCATATTCTCAGTTGCC
-AGAGATTCTGGGCAGCTTCTTTCGATCTTTGAGGATTTGGGCAGGAAAGGGTGAGAAAGG
-CCCATCTAACAATCCTGCGCTTCATAATCCCCTGAATCCTTGAAATTATTACTAAAGCTT
-AATGCTGGGAAAGATCTCTGATTCCCCTGAATCTGATTTGGCAAGCCAATCAATCATTTG
-TGTTAATTGGGAAAGAAATCAAATATTTCTGTGTGAATATACTCATCTCAAAACATTTTC
-AAGATAAAGTGTTTTACAAACTATGCTTCTGAGTCAATAGGATTCAGCTGTTTCGTTTTC
-ATTTCAGCAACTTAGAGGAAGTTTATCTTCAGAAAAAATTGCTATAAGAcacttcctata
-agccagccctgtgccaaattatttacatgaatcaccttctctagtctttaaacagcccta
-ttatgaatggacaattatctcaatttgacagatgatgaaactgaggcttgaagagattaa
-gttacctaagatcacacaATATGCCTCCAAAATTCGAAGAGGGCCGAAGGTTGTAATTGT
-GCAAGAAGAAGCAAATTTTCTATCTCTTTGAACCATAGACTGTGGATCCACTGCAACCTT
-GCTGAAATGGAAGTCTTTGTTGTTTCATGGGGGTTTTGCTGAATCTTCTGGCTTGTAGCA
-AGAAACTACTTTATCTTCACCAGATCTTATCAGCACATTGTATACCTGTGTGATACTCTG
-TGTGCTAATAAAATTATCAAGCTTCCTGTGGGTCCAAATTATGGCAAAAACGTAAGACAA
-AATGAtaatcccagcactttgggaggccgaggtgggtggaacacaaggtcaggagttcaa
-gaccagcctggccaacatggtgagacccccgtctctactaaaaatacaaaaattagctag
-gtgtggtggtgcgcacctgtagtcccagctactcaggaggttgaggcaggagaatcgctt
-gaacatgggaggcggaggttgcagtgagctgagatcacaccactgcactctagcctgggt
-gacagagctagactccatctcaaaagaaaaaaaaaaagaaaaaGCACACGACTAGTTATC
-ATAGATACTGTTGGCTACTGTTTCCTCTCTGTTGTGTGGGTCTGAGCAAAGAGAGGGAAT
-GGGATGCACCGTGCTTTCAGCTCTCTATAGTCTCTTCTGGATTTCAGTGTTTCAGCACAG
-CCCTAAAAACTACCACATGATTATGCCCCACGTAACAGTCAGATCACCTTGTCTCTAGAG
-AGACCACGCATCCATAACGAAGAACCTCTTATAACCATGGGTTCCACATCTTTACGGCTT
-AATCACTGATGCTCTCAGTGAACCTGAAAATTGATCCTGCTGAACAAGATCAATAAACAG
-AGTTTTGATTCAAAGGCAGCCCAATGAGTTAATAAGTGCTCCATGACAATGCCAAAGAGG
-ATTAAGGAAAGAATAGCAACCTGGAGGAAGATGTATAGAAAAGCAGAccaggtgcggtgg
-catgcgcctgtagtcccagctacccaggaggctgaggcaggtgaatcatttgaacctggg
-aggtggaagttacagtgagccgagatcacgccactgcactccagcctgggagacaaaacg
-agactctgtcaaaaacaacaacaaaaaaaaaCCAATATTAATAATGCAAATATTTGAGtt
-acagggcatttttaagagccagatacagtactgggaaccttgagtatattatctcattta
-gtccttaaaacaaccccatagactttatataaataatacaactgaaagtttaacttaagt
-tgctgaagttcacagataagcagtagaatcaggattggaacccatgtctcatcatatcag
-agaccctacgcttaagtgctatgctTCCTTGACTCTCACTGGCAACAGCTTTGGTGCATG
-TACCTAATGCCAGTTATATCATAAAGGATCTACATGGATAAGCTTATTTCATACTCTTAG
-AAATGGTTTGGAAGAggccaggcgtggcggctcacacctgtaatcccagcactttgggag
-gcctaggcaggcagatcacgaggtcaggagatcgagaccatcctggctaacatggtgaaa
-ccccatctctactaaaaatacaaaaaattagccaggcatggtggcatgcacctgtaatcc
-cagctactcaggaggctgaggcaggagaattgcttgaacctgagaagcagaggttgcagt
-gagccaagatcacgccactgcactccagcctgggtgacagagtgagacttcgtctcaaaa
-aaaaaaaaaaaaGTTTGGAAGAAGCTATAGAAGTCTCGATATTACTGGTGACCCAGTATA
-AGGAGGAGTGGTGAATATCCCTATTCTAAAGGATTTCCTAATCCTGAAGGATTTGGACAG
-CTCCTGCAATTGCCAAATGTAAGCGGCCTGAAAAGTTCACACTTAGATTATTGCCTTTAT
-TTTTGGCTCCCACACTGTAAAAGAAATTAGAATTAGAGCACAGATACAAAAGCTATGATA
-ATGAAAGTCCTAAAAAAAATTCCATTAAGAAACACACACATATAAGTCAGAAATTCATTG
-GGAATACCTTTGCATTTTAAGAGATGAGAAGGAAAGAGTTAACAGTAGTCCTGAAATCAA
-TTCTCTCCCTTTAACAGGAGATACTTCTGGCAGGAAAGAAAAAAAAAAAAAAAAAACTTG
-ACTCTGACTCTGTCAGATCTCCTTATAACATGCTAATAAGAGACCTTCTGGTAAATATGC
-TAATGATATTCACTAGCAGAGGGGTCTTTATGTAGCAGAATGCATCTGCTCAGTCCTCAA
-TTGCTTCTGGTAAACAAACTTAGAGTCTATGAATTTACAGGGCATGGCTCCTTGAAAAAT
-GTCATGTGTTTGTAATGCTAAGTAATTGCCAGAGAATAAAATGGAGATGTTTCTAGCTAA
-AATAGCCCCTTTGGGTAGCTGATGGGCACCCATGCATCACAGACATCACTTAGAGATCTT
-TCATGTTAAACCTATCCCATGGCTTATTTTCATGAGGCAAGAAAGGACCTGGGAAGTGGT
-GTGGACATCCCAGACTTTTGCATTTTTACCTGCTTCGTAATTACCCGTATCCTTGAAATT
-ATTACTAAAGCTTAATGCTGGGAAAGATCTCTGATTCCCCTGATTCTGATTTGGCAAGCC
-AATCAATCTTTTGTATTAATCAGGAAAGAAAGCCAATATTTCTATATGAATATACTCATC
-TCAAAACTTTTCAGAAAAGATATTTTCCATACATGGAAATAGCTTAATTAACtttttctg
-attatgaggttacttatagtcattttgaacactcagacaaaacagaaaactttatggaag
-ataaaataagaataacaaaatctttcccaaagagaaagaccattaaatttttgtatatat
-ccttccagagaatacacaaattatatgtatatatattttacatgtatacatatataacaa
-agactagcttatactacccacgctttcctgtcatttttcttttctacctaagatatcact
-gacagtcttttatataataaggatagtcctcaattatcatcattgtttaaatggaattct
-aatgtgttaagtgccataaattagcagattctctattgatagacatttagcttacttttc
-acattctcactatgagtaatgctAAGAAGGCAATATAGTTCTTGCACCTTCATGAACATA
-TTCTTTTATGCTATGTGCATTATTTTGGGTCAAAGGGCAAGCAGAGTTTCATTTAATTTT
-GTTTTAGACATGGGCTATATATTGACAAATTGCCCTCCCAGGAACAGTACACAGTTTTTC
-TTATGTTGCCTCACCCATGCCAGCAGTAGCTAGAAAATGCATTTCCAAAGACTGGTGCTA
-ATTTTCTGTGCATTCTGTGAGTGCTCAGTCAATTTAAGCAATAACCACTTAGAGTAACAA
-AATCTATTCACCCTAATAGCAGAGATTTCTACTTCATCCCTGGCTCACTGCCCAACTTTT
-GATCTCATCTAAGGCCAATAAATGTAGCTCCAGACAAGTGACACAGGTAGCTCTGTCCCC
-ATCCAATCTACCCAGCTACTTCTCTTAAGGCACGTTCTGATCCTTCAAGCATGAAGTTCT
-TGCCTCTGGCTTTTGTTTCTCTCTTGTTTCTGGCTTCAGTGACCTTGAGTACCCTGGAAT
-CTTCCATATTGAGAAAGAAATGATAGAGGGGAGGGGACATGGAAAAAAGAATTAAATATA
-TCTATTTTTAAAAAGAAAGAAAATTTTAGAATGGACATGTCTagaaggaggaggaaacag
-aggagggggacaggtataaaaactggacttctctgaatatactctgctttgaaggtttga
-ctttggaatcatctacatattttatctaatacaagaatatcgaaacttaaatggcaatcc
-caaaaatctaaaaggaatagaaatcaaattagcctctgtaataaatgggttgtataacca
-cacaaaggACTATTTGAAATGACTTTCAAAGAGTAATTTGAGAATACTTCCTTATTGGAA
-TATAACCTAAAAACAGAAGAATTGCAAACTGTTTTCAATGTTTTCAGTAATCATATTGAG
-ACTTTAATACATATATTGTGGGATAAAGGAAATGAATGTTGGTGTCACTGATAGAGATAA
-GAAATAAAAGTTCAGGTAAAAATTCTGTAAATCCTAAATTTGAATTGGAATTTTATATTT
-TATTTTTaaaatacctttttctacccccatccactgaaaagccctagaaatattggccaa
-cctagtagaaatgatttccctctcacccgggatattatctctaaatataatttaccaaag
-tcttattgaagaaattgctgtttctgagcttgaagcaactatacaaatgtacctggaaga
-ttttaccatactggaaaaaagcagcttgacaaagactactgaagtcatgtcaaaaaaaac
-aaagaagtcaacttgaaggggctttctcttggcaaagatgggaaaatgtgaaccttgata
-aaaaataattgcatgcattattcacagtaaccaagatatgtaatccacctaggtgtctat
-ggatggataaatatataaagaaaatgtgatatacacaatgaaatattattcagcctttaa
-aaagaaagaaatcctgccatttgtgacaacacagatgaacctggaggacattatgctaag
-tgaaataagccagacacaggcagacaaatactgaatgatctcacctatgtgtggaatctt
-aaaatgtcaaactcatggacacagagagtaggatggtggttaccaagggagttgagggaa
-atgaagaagtactagtcaaagggtacaaagtttccgttatgcagggtgaataagttcggg
-agcttactgcatagcacagtgactacagttaataatactgtgttgtatacttgaaatttg
-ctaagagtagatcttaaatattgttaccacagaaaaaaatggtgactatgagaggtgatg
-aatatgttaattagcttgatagtggtaatcatgtcacaatgtatatgtctatcaaaacat
-cacattgtacgtcttaaatatgtacaattattatttgtcaattatacctcaataaagctg
-gaaacataaaaataaaataactacaattaattgaaacatatcaaacatgtccaaaactga
-taaagaaaggtaaagaatttggcctggcacagcggctcacacctgcaatctcagcagttt
-gggatgccaaggcaggcggatcacctgaggtcaggagtttgagaccagcctggccaatat
-agcaaaaccccatctctactaaaaatacaaaaattagctaggcgtggtagcgggcatctg
-tagttccagctactactcaggaggctgagatagagaatcacttgaacccagaggtggagg
-ttgcagtgagccgagatcacgccactatactccagcctgggtgacaaagtgagactctgt
-ctcaaaaaaaaaaaaaaaagaaagaaagaaaagtgaagaatttatcctggcttttctgta
-aaaactgcacctcagaagaaccaaattattgataaggaattttgctctttagaaatattt
-ccagctaataaatgaaggaataatagcattgagacaaatcgccattttgtaatctcaggt
-gaatttacggatctaggcaatgatcattaatggctgagaaaatcacaacaaaaagaacaa
-ttagacatttgtgcctcctgatagaagtatacaatatcaccttcaaagctattttgccaa
-aaaagaaaaaaaaaatcaacccaaatctaatcaaggctcccactctaactcccaagctct
-aggatataccaaggacaaaggaagatcatgaaataccaccatggggattcaatcagcaaa
-ttcTGAAATGCAACATTATCCTTCACCCTGCTTGGCCTAAAAGTACAAAATAACACGAGG
-AAAAATTAGTTTCCAGAGCCTGTTATATTTTGAAAAATCATCAGAAAACTGAGAATCAAG
-GATAGAATTTCTAGAAAGTTCCTTCCCCTAAAGCTTTCACACTTGCCTCAGTGTATATAT
-GTGGCTATACCACTGACAGGCCGCCAGTCATTAAATTCAAGCTCCAAGAGACAAACTCTT
-GAAAAAAAGGCAGCCTAGGAGAAAGCAACATGATTTTTCACATATTTTAACTTGGTTTTT
-CTCATAAAATGGTTTCTGAATGTTTCTTAGCTTTCAATGGGCAATAAATAACTTTTAGGG
-AAATAGATGTGAGCCAATCTGAGGAAGTATTTGAGATGAAGAGAAGGCTTTGCTGTCTAT
-GAGGAGTGCATTAGAATAGAATCGCTCCAGGAAAAGGTCACCTGTGTTGATTGCCTTTAT
-GAGGTGACATTTAAATAAAAGTACTCGTTCAGTTTTCATTGAAAAACATTAAAAGACATC
-TCCAAAAATTTTTTTGGGAATGTGAGAAACTCTGCTGCACAAATGATCATGTTTTGTCAA
-ATAAGATGAAAAGAAAAAAAACACACACAAAAATgaaaaaacagatggaggggtaacata
-aattaagaaactcagaagacacatctacaaattacaatttatggatcatatttgaatgct
-gattctaaaaatttgaaaaaatatgcatttgagaaaatgaatgctgacttcatagtttat
-aatatgaagTCatattataaaatataataagaatgaaatattaataatttatCAGGTATG
-ATAATGGTTTTAAGGATGTGttttttgtttgtttgttttttgagacagagtctcattctg
-ttgcccaggctagactgcagtggcgcgatctcggctcactgcaacctctgcctcttgggt
-tcaagcgattctcatgcctcagcctctcgagtagctgggattacaggcatgcaccaccat
-acctggctgatttttgtatttttttattagtagagatgggcttttgccatgttggccagg
-ctggtctggaacttctggcctcagttgatccacctgcctcggcctcccaaagtgctagga
-ttataggcatgagccaccacgcccagccTAAGAATGTGTTTTTTaactgtatatatttaa
-ggtgtgcaacatgatgtgtgtatgtatatatatatatatatatatatatatatagagaga
-gagagagagagagagagagagaaataatttctgtggtcatgcaaattaacatatccatca
-tctcacagctacaatttttgtgtatgtgtggcaagagcacctaaaatctactcttagcaa
-aaatcctgaatacaatacgatattattaactattgtacattagacctctagacttgtttc
-tcttacatatctgcaactttgtgtcctttgacctacatttccccatttcctacccctcca
-ccacaccccagtaataaccactttattctctatctctgcattcaactttgttttttctag
-tttttaaactctgcatataagtgagatcatgcagaatttctctttctgtgtctggtttat
-ttcacttagtacaatgtcctccagattcactcacgttgccccatatggcagaatctcctt
-cttttttaaggctgaaaaatattccattgtatatataccatagtttctttgcccatttat
-ccttcaatgaatacttcagttgtttccacacctcggctattgtgaataatgctacaatga
-acgtaggagtacagatattttatgaggtgatgatttcacttcctctaggtatatacccag
-aggaggaattgctgggtcctatggtagtgctatttttaatttatttaggaaccttcatac
-tgttttccttaatggctccactaatctacattcccaccaaaagagtatacaggttccttA
-AGGGTGTATTTTTCAAAAGGGTCGCCGagagatacctattaaaatatatacaagagaaat
-cttataatatcagggatttgcttcaaaggaggggaaatccaagaaggggaaagtaaattg
-ggttatataagaaacaagattggccatgagttaatgttgaatttggatgatgaatacatg
-ggggctcattatattattgcttgacttttacacacatttaaattgttcAATAGTAtgtat
-tagtccattctcacactatataaagacatacctgaaattgggtactttataaaggaaaga
-ggtttaattgtctcacagttctgcagggctgtagaggcctcaggaaacttacaatcatgg
-tggaaggggaagcaaacacatccttcttcacatggtggcagcaagaaaaaatgcagcaca
-aaagggggaaaagccccttataaaaccatcagatcttgtgagaactcacacactatcacg
-agaacaggatggggaaaccactccgtgattcaattatctccacctggtccctcccacaaa
-acgtggggattatgggaactacaattcaagatgagatttcggtggtgacgcagcaaaatc
-atatcaAGTAATAAGCTGAAAATACCCTTTATATAAATAATGATAACACTGCATGGAAAT
-AAAGAAAAATCTTTAGGATGCAGCCTAACTGGTATTTACGATTTTTTAAACCCTGGATTA
-AACGCATCTTTTTATAAATGGAAATAATTAATGAAGAACTGAGATGGAATCAAAATAGCA
-AATCATGcacacacacacacacacacaAATTCTGTTTAGAGAACTAAAACAATATGTCAG
-AAACGTTGAAGAGTTCATGtgcatcagttagttcctgccatgtaacaaaccacaccaaaa
-tttagtagcttaaagcaaaatcatttatgtatgtcataattctatgagttacaaattgag
-gctgggctcagctgagaggttcttctcttcacttttgggctcatgcatgtgaggattaat
-gggagctggcaggtctagggtggactccactggaatagtctgtctctgttccaaaaggtt
-agctgaagcttgttttcctggcaacagagcagagttctgagagagcgtgagtatgcaagg
-cctcttgaggcccaagcctaggttcagaacaggaatcacttctgatatactctattggcc
-aaagttagtcccaagtccagatccagGCTTGCTCAAAACAGTGGCCCATCTCTCTGGCCC
-CAATCTCCATAGTTCTGGTAAACaaaaaaaaaagaaaaagaaaaagaaaaagaaagaaag
-gaaggaaggaaggaaggaaggaaggaaggaaggaaggaaggaaggaaggCTGAGATAACA
-TTGGGTTTTTCCAATGATAAAACCTAGAATTAATGAAGAGCTAAAATTAGTAAATTTTCA
-AAAATAcaaaacacataaaatgtaaaactgctgaaaagataagaagaaatgaataaatct
-ataattaagacggaaatctttaataggccataggcctcaggagtcctcaaagtaaacaaa
-aaatgcacaagcatgcttatcttaaaggattaaataggtatttttaaaatattgatttaa
-tacacatgtagaactattaagtaacaaaatagatacatacaattttaaagcatagctaaa
-aaatggctaaaaattgattattataatacatgtgtatttcaaatattccaaaagaagtca
-gtccactcatataaactaaccacaatataacaacattagaacttccaaaaaaggtatgtg
-tatatgaggtggggttttttcaaccttctaaataattgtgggttaaaaaaacataaaaac
-tacaagattttggaaatgaatcaaaatgagagttctacatataaaatcttcatgaaaatg
-gttaaagtggaaattagatgaaagatttaaaggcatttactagaaaacaagaaaTTTTAC
-ATTTTTAAATTAAAAGCTAATTAAACTCAAAGTTAAATTTAGTTAATTAAACTCAAAAAG
-CTAACAGACCTGAACTTGCTCAGCAGCCTTACCTAAGAATCATCTATTTTACCGATCTTT
-TCAAAGAAATGTTTTGTTTTTATTGATCAATGCCTCCatatttttgaaatttttatagtt
-ttcatttattatattgacaaatttttttaaattattaatGTGGCGCTGGCAATACACTTG
-TGAAGCATTTAGTTATTTATCCTTAAAATATATTAGTACTTggcggagtgcagtggctca
-cgcctgtaatcccagcactttgggaggctgaggtgggcaggtcacaaggtcaagagatgg
-agaccatcctggccaacatggcgaaaccccgcctctactaaaaatacaaaaaatagctgg
-gcgtggtagtacacacctataatcccagctactcaggaggctgaagcaggagaatcactt
-gaacctgggaggcggaggttgtagtgagccaagattgggccactgcactccagcctggat
-gacagagcaagaccctgtctcaaaaaaaaaaaaaaaTTAATCCATGTGCACAAAGAGGCA
-TAATCAGAAATAATCATTTCCAATTTTggctgggcgcagtggctcatgcctgtaatccca
-gcaatttgggaggctgaggcgggtgaatcacctgaggtcaggagttcgagaccagcctgg
-ccaacatggtgaaaccccgtctctacttaaaataccaaaactagcctggagtggtggtag
-gcacctgtaatcccagctactcggggggctaaggcaggagaattgcttgaacctgggagg
-tggaggttgcagtgagccgagatggtgctatcacactccagcctggggaacaagagtgag
-atgtcatctcaaaaaaaaaaaaaTCATTTTTATTTTGTTTTTAAAAAGAAAAAATGggcc
-gggcgcggtggctcatgcctgtaatcccagcactttgggaggccaaggcgggtggattac
-ctgaggtcaggagttcaagaccagcctggccaacatggtgaaaccacgcctctactaaaa
-atacaaaaattagccagaagtagtggcacgtgtctgtaatcccagctactcaggaggctg
-aagcaggagaatcgcttgaacctgggaagcagagtttccagtgagccgagattatgccat
-tgcactccagcctgggtgacagagcaagactccatctcataaaaaaaaaaaaaggaaaaa
-TTGGAAAAATAAAGTACATGCAGTTTATTTGACAGAGGGATGTTTAACTGAACCACACTA
-CATCCATATATATGAAGTTATGCAGCAATAGAAAAGAATAATGGACATTTATATTTTTAG
-ATATAAAAAGAGCTGTTGAACCTATCATTGAAATTTTAAAAGGAAGCTGAAGAACAAGTA
-CAGTGTAATAAATTATTTGTTTTTtacaatttaattatagagtaaatgtgatctttcttg
-gtatatagttctatagattttaataaatatttggattcatgtaaccaccaccacaaatag
-gacacacaacagtttcatcaccctaagaaaagttcccggatgctcacccctctgtagcca
-aaccgtcaccccacccataatccctggcaaccactgatctattttccatcactataattt
-tgccttttccaagaatgtgacataaatggaatcatgtagtatttaacgttttgagaccag
-cttctctcagcatgtgatatggtatgtacctgtgtctccacctaaatctcacgttgaatt
-gtaatccccgatgttggaggtagagcctagtgagaggcgattggatcatggggacagatt
-tctcatgaatggttcggtatcatccccttggtactgtcctaaggatagtgagtgagttct
-gcagagacctggtttaagcgtggagcacctccccactctcttgctcctgctctggctatg
-ccatgtgcctgctcacccttaaccttccaccatgattgtaagtttcccgaagcctccccg
-gaagccaagcagatgccagcatcatgcttcctatatagcctgctgaacagtgagacaact
-aaacctcttttttttttagcaaatgacccagtcccaggtatatctctataacaatgtgag
-aacgacctagtaacagcatgtctttgagattcatccaagtttctaccagtatcaataact
-cattcctttttactgctgagtatgattgtattctatggatgtggtacatctgtttatcca
-ttcattcattgaagggcatttgggttgttttcagcttttggctatcacaaataaagtttc
-taagatggccaggcatgatggctcacgtctctaaccccaacactttgggaggctgagatg
-ggcgttgaggtcaagagtttgggaccagcctggccaacatggtgaaaccctgtctctact
-aaaaatacaaaaattagctaggtgtggtggcacacacctgtaatcccagctactcaggag
-gctgaggcaggagaatcacttgaacctgggaggtggaggttgcagtgagccaagattaca
-ccactgcactccagcctaggcaatagagagagactctgtctcaaaaacaaataaataaat
-aaataaagttgatatgagcagtttttacagatgtttgtgtgaccgtaagttttcgtttca
-ctagggtaaataccaggttcaggattgctaggtcctgaggtacgtgtatgtttacctttc
-aaataaactgacaaaccattttctagagtgactgcaatttccagttgttctgcaacctca
-ccagcaattggtgttgtcagaaactttttattttcataattcttatcaatgtgCACAATT
-GTTTTTAAAATTCACAGAATTAAAGGAAAATATATTGTGCACTATTTGTGTAATTaaagc
-aaaacacaaacacataaacggaagacaaaaataagaaactaattcaagaaactaaagaaa
-gaaaaacaaaaTTAACTTTTTAAAATTAGAATAAAGGCATATATATGTAATAGGGATAGT
-TTGAAACACTCCCAAACATCTGCTCTGAGCCAACAACAATCGGATAGCgtgagggcagat
-acaaattaaatatgagacttaactctccccgttaaaaataaggaaagagacttacccaac
-acccctcccccccgcccttctctttctctgtctctttgaaatgtatgtaaatctttttaa
-aatgtaaataggcctctagccagttttacaacccaggaatatctttgtcaaatacctagg
-agccatctctttgaaatgtaagcatccagaaaggtagtgctcctatctctgaatttatat
-gagtgggtaggtctctaactttggcaagttccttgcttcaagttgcaaagccacttcctg
-tcacaaggatgtgagaattttgtttttcctttggttaaagccaaccagcgaacacagatg
-gccactccaattatcaggtgaatctaggatgaactatgtgtatgtcaaatggtacttcta
-agttctcctatttgagaaccagttattgtttgtcttgagagcatatctgtaatgggtttt
-atcttcttcaggatataaacaagtaggatttctttctgtctttgcaaactctttgtgaat
-tgcctgtgatgtgtctcacattctggttcaatgcttattcaatggcaattgttttctttc
-tcttctacctttgtggagaggttttctaggttgagagaagattttgtttttaattatatt
-tcccccacaATAGCAAACACATCCCCAACcacatacacacacacacacacacacacacac
-acacacacacacaacaggtaattagacaggcctgagcagggcaggagagggctcttcccc
-cacccactacgaatgtcagtgatggttccaaaattatcacattgcctctctaaaagtgat
-aaattggGCAgcgcagtggctcatgcctgtaatcccagcactttgggaggctgaggtgga
-cagatcacttgaggtctggagttcaaaaccagcctggccaacatggtgaaaccccatctc
-tactaaaaatacaaaaaatagctgagcatggtagtggacacctgtaatcccagctactca
-ggaggctgaggcaggagaatcgcttgaacccagaaggttcaggtttcagcgagccaacat
-tgccccactgcactccagcctgggcaacagagtgagactccatctcaaaataaataaata
-aataaaataagtgagaacatatggtacttatctttctgtgtctgacttgcttcacttaag
-ataatggcctccagttatatccatgttgctgcaaaagacatgatttttgtggagggattg
-tattccattgtatatatagaccataatttctttatccaatcatctgttgatggacactca
-gttgattccatacctttgccatcatgaatcatgttgtaataaacatacaagtgcaggtat
-cttttgatgtgattatttcttttcctttgggtagatacctagtagtgggattgctggatc
-aaaAtggcaggtgcctgtaatcccagctactccagagactgaggcaggggaatcgcttga
-aactgggaggtggaggtttcagtgagccaagatcatcccactgcactccagcctgggtga
-cagagcaagactctgtctcaagaaaaaaaaaaaaaTgctgtgtgattacccttatatggg
-tttcctggatgagccatttgttaaattaatttttgttggaaatttccccgcagagctgtt
-gcacattgtggggggttaatccccagacactcccatgaggccccagtcacccaggggtgc
-ctttggctgggaggagcaagtgccctttctcctaggagctgaaaaactcagtctcttatt
-tatctatgaaaacaacagttcagtttctcacataaatgtgtacagataaaccgaatttag
-acagattttaggagaaaaagcaattgagaattccttttagaatgcatctcccaactagaa
-ttaggatccttaaacaaccacttcttaggagaaaaccagctcagaataaatcaaggacca
-tcaaccaaagggaggtctggggctcaggaggacttaccagttccaccagaggagaagctc
-gaagcttcaatgggcccctgctggcaccttagctctggttttgggcaactcctttagggt
-cctgagtcttccctgaggcctcacgtgtttgggcaccaaattattgttgacgaaaagagc
-caaactctgtaaaatattttaagagatttattctgagccaaatatgagtgaccatggccc
-gtgacacagccctcaggaagtcctgagaacatgtgcccaaggtggtcggggtgcagcttg
-gttttgtgtattttaggaaggcatgaaacatcaatcaaatacatttaagaaacacactgg
-ttacttggaagtccccgcggggctgggggcgggtatcaatggaaaggaatgttcaggtta
-acataaaggattgtggagaccaagttttattgtgaaaagaaatctctcagatagcagact
-tcagagagagagcagattgtaaaatgtttcttatcagacctaaaagggtgcctggctctt
-agttgattatctcctggatctggaaaggaaggggaaaaagggggtgggtgggtgtggggg
-tatagaatgtggatctttttccaccaaagattttgtaaggcaatttcaaagtatggcaag
-gcaatatattttgtgataaaacattgtgattttttttttttttttgtgagacagagtctc
-actaggtcccccaggctggagtgcagtggcgccatctcagctcactgcaaccttcgcctc
-ccgggttcacgccattcttctgcctcagcctcccgagtagctgggactacaggcgcccgc
-caccacgcccggctaactttttgtatttttactagagacagggttttactgtgttagcca
-ggatggtctcgatctcctgacctcatggtccgcccgcctcagcctcccaaagtgctggga
-ttacaggcgtgagccactgcacctggccaaaacattgtgattttcttccttgttatgcca
-gagtcagattgaaaagtaagtcacaatatacagggtcaaataaaacccatcttgtaagaa
-tttatggtttgtagggcataactccctagaccccttaggtaggaatttgggcaagataaa
-aaatcagagtttagtcctcaattccttaagataaatctctttctctatatatatctctct
-ctatctcatatctccatcctattctctggaaaactctgactaatgcaAGAAATTAAAGAG
-ACAAAACACATAATACAATATCTtaaacaacaaaatactattcagccataaaaaagaatg
-aaatcctgtcattcatggcaacatggatgagctagagcagtggtccccaacctttttggc
-accaggcactggtatagtggaagacaatttttccatggtcggaagggggtgggaggatgg
-ttttgggaagaaactgttccatctcagaccatcaggcagtagttagattctcataaggag
-tgtgcaacctggatcccttgcatgcgcagttcataatagggtttgtgcttccatgagaat
-ctaatgcttctgcacatctgacaggagatggagctccggggtaatgctcacctgccactc
-acctcttgctgtgctcccagttcctaacaggccatggtccccataccaatctatagccca
-ggggttggggacccctggcctagaggacattatgttaagtgaaataagtcaggcacagaa
-acataaatgctgcacattctcacttatatgtgggaactaaaaaagttgagcttacaggcc
-cggctcggtggctcacacctgtaatcccaacattttgagaggccaaggcgggtggatcac
-ctgaggccaggagtttgagaccagcctggccaacatggtgaaatcccatctctactaaaa
-atacaaaaattagccgggtgtggtggcgggtgcctgtaatcccagctgctcaggaggctg
-aggcaggagaatcgcttgaacctgggagacagagttgcagtgcaccaagattgcaccact
-gcactccagcctgggagacagggtgagactccatctcaaaaaaaaaaaaaaaagttgagc
-tttcagaagtagagagtaaaataatgtagcaggtagaagaggatacggagaggttggttt
-taacaaatacaaaatcacagctagataggaggaataagttctagggttccatagctctgt
-agggtgactgtagccaacaatcacttattgcatattttcaaatagctagaagagaggatt
-ttgaatgttctcgcacaaagaaatgagaaatgtttgaggtaccctgatttgatcattaca
-cattgtgtacacgtattgaaatatcactctgtatcccataaatatgtataattattatgt
-caattaaaaataaaattttaatttaaaaatacattttaaaaatCAATACAATATCTGACC
-TGACACTGCAATCTCAACTCAAGGAGGAAATGAAtgctgtaaaaggcattattaggtcaa
-ttggcaaattggaatacagatatatatatatatatatatatatatatggatagatgatag
-actagataaaagtggtgtccatttaaatttatggagttagtaactatactgtcatacagg
-agaatatccctattcttaggaaatacacactgaattatttgggagtaaaaggccacgata
-atataaggccatgaacatataacttatgctcaatagattcaaagaagaaaatatacaaat
-atagagagactaatatagATATATATATATCCATAGATAGAGAGAGGTGGGGCAAATGCT
-AAAGCAAGAAAGATAAAATGTCAACAATAGGCAAATCTCAGGGGAGCTGGGGAAAAGGTA
-TCGTACAATTTGTATTTTGCAGCCGGTATGttttaaattatttttaaatgaaaagatttt
-ttaatGGGTTGAGGAAATTGGAGTGACTTATATTTATGACATCCAATGGACTGTGCATGC
-TGTATGGAAACAAGGAGAAAATAAATGTCATCATTGCTTAACAAGTGAAGGGTAAAAAGA
-CAATTAACTCACTGAAGACTACGCACAGAAACACAAAAGCCTTTGCTTCTGTGGTTATAG
-GTTTACCAAAGGCACAAAGGGATTTGTATTTATTTTAGGATTATAATTTACATCACTTAG
-TTGGAAAAATTACAGATTTTAAGATATTTTTACAAATCTGAGTGACTGTAAAGACTGCTA
-AAGTCTTGGGACATATTCTTACCAAGTCCCAGATCttttgttttgttttgttttgtGCCT
-GAAATCAAACCAGGTTTTTTAGACCAGGAAAACGTGAGAAGCTAGAGCTGCTCTACTCAG
-TTGGCCCAAACCAGGACTCCGGAGATTATTCCCTTATACAGCAGGCACCACATTAGAGAA
-AGGATTCTGGAAAAGTGAGCTGGAACAGAAAAGAACTGTCTCAATGGGAAACAGACTCCA
-AAGGACGCTATTGGGGGGAGGAAAACACAAAATATTTCTTGAGAAGAATGTGGAAATGGC
-AAAGTCTCTAGCCTCCAGAAACCTTAAACTCTAGGGAAAGAAAGCAAAAATTTAGAGGTA
-AGAGTGTTCATATTAAAATTCAAACAATAAGTAGTTTTTCTATAAACTCTCTTTTTTTCT
-AATCATGAAAGTACACATAATCATTCTCTCCAAACTCAGACATTTtagacagatagatag
-atagatgacagatagatagatagatagatagatagatagatagatagatagataCacatg
-catacatactacatacatatatacctacataTGTTGGCACATAGATGTTCCTTTACCACA
-GATTAAGTTATTCTAGATGCATATCTTGTAGCCTACATTTTTATACATTTTcatcatttt
-aataactgcatactgctctattatattctgtattttctatattagattagatccatgttt
-tatcaccatttaggtagcttttggttttctgttactgtaatgttgagataaacgtcttta
-tgtacttgttcaattattcccattaaacaaaagcccaaggtacaaagtttctgagtaaaa
-aaataggcacattttaaggcttctgatatatattgccaaattgtgctacaaaagaaaaac
-tgtaccaattaacactcccagcaacaacgccaagagaatgctagtttccccacatctcac
-caacactgtctaGAACGCATAGTTTTAGAGATGAACGCTGGGAACCGACGCACTGTTTGC
-TCTACCTCTCCCCCTCCTAACAGTCTAGAACACAGGCGCTCAATAAATCAATCCAGGCTC
-CAGTCCAGTAGACATTCTGATCTAATCTGACTGCTCTGGGTAACAGAAAAGTCTCCCTTG
-GTTCACTGCCCAGTATCCTGGCATCATGTGGATCCTATAAAGGCAGTAGCTCCAAGCACA
-TTACAGAGGGACCCAACTCCATTAAACCACCACCAGCTCCCCAAGCCACCCCTTCAGCCA
-TGAAGTTCCTGCTCCTGGTCTTGGCAGCCCTCGGATTCCTGACCCAGGTGATCCCAGGTA
-AACTGGATAAATAGGAGGAAAGGAAAACTGGGAACGAGGAACACTAGCATATCTGGTTGC
-TCTGGTGATAGATGAGCCAGGTTGGGTGGAGGCAGGGCTCACCCCACTGAGTTCCAGTCT
-AAGGTAGAGATCTCCTAACAACCACCACTAGCCTTGATATCCCACACCCAAACACCACCC
-TATATAACCTTTACAAAAATTTGTTTTCTATTCTAAAATGATAGTCACCCTCAACCTAAA
-CCAAAATATCTTCTTTCACTTTATGTGAGCTCCTTATATCTAACCTCCTAAGACACACTG
-AAGGCTTCTGTCATCACCATGTGCATCCATTGAGATCAGCCCGGGTTGGAGCTCAAAGGA
-GATTTTGAGCCTAGAAGGAAGAGATTGAGGTTCCCATCCCTATGCTCAACAGACAGCTGG
-CAGGTGGGGGATGGAAGCAGACCTCTTAGAGGGCTAGTTCCCACAGGATGGTAAGCAATG
-GGTTCAGCTCAAACCCTGGGGCTAGGAGATAATGCAGGGTCagaaagagagagagacaga
-cacacagagagcagggagagagagagaTCAGAGGAGGGCCAGGCAACGGATGTGAAGAAA
-GCCAAAGAGGCTTGAGGGTGCTCCGAAGAGGCCCCTGCTGTGAGCCAATGGCAGACACAG
-AGCACTGAGGCAAACAGATTTCAGCAGATGGTGAAATGGTGCACAGCACTGGGTGAATGC
-AAAAATGCCCTGTCACTGGCAACCGTTATTTTCTTTTTAATGATTTTGGAGAAAGATTTG
-ACTCCTCCCACTTTGCCCCAGGTTGACTCATATTTACAGTTTTAGAGTCTATGAAAACAA
-GTAAGGTAGAAACACCTTAAAAGGGAGCCTGTGGGGTGAGTGAGACTAGCCCCATTTCTC
-CCTTTTGAGTATCCAAGCTCCTCCCTGACCGTGAAGACCAGGCTCCCCACCCCTGTTTTT
-ACCCATACATCCTATTCTGTAGTATCAAATTTAGCAAAAAGCTTCAAAGATGCAGATACT
-GGCAAAGAAGAAGAGCTCGTCAGACAGAGTTCCCCAAGGCCATCAATCCAGGAAGATTTT
-TGTCTCCTCATCACTGGCTTTCCCAAGTCTCATTTGCACAACATCCTAAGGATACACCTC
-AGAACAAAAAGCCAAACACTCCCATCTGGCGCTGACGCTTTAGTAGCCCTGTGCTGCTTC
-TAACCATGACTTCTCTGTCTTGTCCTCTCCCATACAGCCAGTGCAGGTGGGTCAAAATGT
-GTGAGTAACACCCCAGGATACTGCAGGACATGTTGCCACTGGGGGGAGACAGCATTGTTC
-ATGTGCAACGCTTCCAGAAAATGCTGCATCAGCTACTCCTTCCTGCCGAAGCCTGACCTA
-CCACAGCTCATCGGTAACCACTGGCAATCAAGGAGAAGAAACACACAAAGGAAAGACAAG
-AAGCAACAAACGACCGTAACATCATAATAACCACTGCTATCGCCTCCACCAACTCAGAGA
-AATATCATTTCCACAGTTCCAATTCCTCCTACATTGCTGAGTACTAGCCAAGGCTCCTCT
-TTATGGGGCAGATATCTATAGCCAACCCCAAAACTTCTGTCTTCTATCATTCTGTCATTC
-ATCTAGTAACTAATTTGGAGTTTGTATCTATCTTACGAGAACAATCATCATGCAGATTCG
-TCCACAGGGGATCtgtcagtttgggtcctccaaatgaaaaatgtcaagacagaattggac
-atgcaaaagattgactgggagaacacacctctgatggacaaaggtgagacagagcagcca
-caggcagggagagccttcagactgcaacgctggcctgatacgtgtcaaaggagagaggga
-tagaggaggattgaatagaaggagactaagactgcagctctaagaaagtctcagccaaac
-agatggggaggcccaaagcaaggcttgcccctcagaggagctcacgcagggcaggaatag
-ccaggttctcatatcccaggggttcagactttggctgagaacagcccctggagaacatgg
-ggtgactgctaccataggtctggaagtatgaggctgtccaccaactatccccttgaagca
-agttctcttgaaaggaaatctaaacagtgcacccccatggctgccacGGAGTATAAGGAG
-GGAGAGAAAGGAGCTGAAAGTCTAGGTTTGGCCAGCTAGGTAGACTGACTTGTGAGGTAT
-TTATTTATTCATTTGAGTAACAAAGCAGACAGAATACATAGCCACCATTGGTAGTACACC
-CCAAAAGCAAGGATGGCATGATGCTGGTGACTCAAACGTGCCTACTCATGGTGTCAAATT
-GGCATAATCCTCTTGGGAAGCTGTGTGGAAATAAGCACAGAGAAGCAGAACTCTAATTGC
-TTAATCCACTAAACATTACTTCTGGGAATTGGCTCATCATAAATTATCCAAGAGAAGCAC
-AAAGTTATGGGCACAAAGGTTTTCCATATAATATTATTTAAAATGCTGAGAAAATGAAAA
-AATCTAAATGGTGAAATATATACTAATGCCATCTATAAATACAAACAAATAGAATGTTTA
-TAGAATAATGGAACATAATAACATTATTCAAAATTGCATTTATGCTATAGTTGTCAAAAT
-TGTCTCCTTATATGATACAAAACTCATGAAAATTATGACTTTTTTGTTTGGTTGGAAAGC
-AGAATTATGCATAAATTTCCTCTTACAGTTCGATGCCCATTAGTTTTATATAACATTTAT
-TTGACACGTACTGACTTCTATCTGAGAAGAACAAACCAAAACACTCAGGCCTAAATAATT
-AAAAACGGTCCTAAAAACTAGCAAAccagataagaaaagatgttaatgcccattccctaa
-cttatgtcttagaccaaaattaattctagatggttttaaaatgacagtgtaaaagtaaag
-tattaaaagattgtgtggtcaaatattcaatttaagagcaaggaaattcttataaatata
-acaatagaggcagaactcatgtaagaataaattgattaggtggtattaaatattaagttc
-ttatgtatgtcaaaagatatcattttgaaattcatccatcttattgggtattgcaggagt
-tcattcctttttgtttataaatactcttccgtcatatgaatagtattcatttgtatactg
-gtttgttgatggacatttgggttgttcccagtttatggctattacaaataaagcttctat
-gaacatttatgtacaaatctttgtatggatgtatgctttcatttccctaaggtaaatacc
-taggagtagaacgtctgaatcatatggtaggtgaatgtttagcttttttgtttgtttgtt
-tgtttgtttgtttgtttgtttgttttttgagatagagtttcgctcttgttgcccgggctg
-gagtgcaatggtgcgatctcagctcactgcaacctccgcctcctgggttcaagcaattgt
-ccttcctcggcctcctgagtagctgggattacaggcacgcaccaccccccgaccccggct
-aatttttgtatttttagtagagacggggtttctccatgttggtcaggctggcctcgaact
-cctgacctcaggtgatccgcccgccttggcctcccaaaatgctgagattacaggcatgag
-aatgtttagcttttaaaggaaatacaaaattgttttccaaaatggttgtgccagtggatg
-tgcccatcagcaggatgtgaaagttccagccgttcctcatcctcaccagcatgtgatatg
-gtcagtcttttgcattttcatcattctaatagatgtgtagtggtatttcattatgctttc
-aatttgcatttttttaataactagttatcaaaaaagtatattctgtatgattctatttac
-ataaagttcttTAAATTCTTTTAAAATTGCATAcaattatttaaaatagaaagtaagaat
-ctaacgacagaaagcagatcactggttgtcaggggatgtgaaaggtgcatggagagggct
-gaaagaatgtaaagggacctgaggacactttgaggggtgatcagtcaagacacattcata
-ggccgggcgcggtggctcatgcctgtaatcccagcactttgggaggccgaggcaggtgga
-tcacgaggtcaggagatcaagaccatcctggctaacacggtgaaaccccgtctctactaa
-atatgcaaaaaattagccgggtgtggtggtgggcgcctgtattcctagctactcgggagg
-ctgaggcaggagaatggcgtgaacccaggaggtggagcttgcagtgagccaagatcgcgc
-cactgcactccagcctgggcgacagggcgagactgtctcaaaaaaaaaaaaaaaaaaaga
-tacattcataatcttgattgaggtaatggcttaatgggggtgtacataagtcaaaaaatt
-acaaaatggtaaactttaaatgtgttcagtttattgtatgtcaatttaaacttccaaaaa
-aGCtattattttaataaaataaataaatCTCACAGTGAAACAGAAATATTAAAGTATCAT
-AAATAGTTTAAAGACGTATGACAAACTGAGACATGTGATGAAGTATCGATACCAATAAAA
-TATAACAAGTTAACATGAAGcaacagggaaaacatgaaacccctagcagaaaatgaaaaa
-gtaacatgaactagctttttaactctataaacggcctgaaaaatgggaaaaaatctgtgt
-gactgtgatcaaataaatgcagattaaaactacaatgagatcttgttttttacctatcgg
-attgtcagagaattaacaaacccaagtctgacaaggcataaatagaaataagtctcatca
-tcagatgctccggtttataactaaatatgtccattctggaagacatttatctatacagct
-ttcaaaacccttaaaaatgttcatgttctgtggctcagagactctacttttagggatata
-ttctggggaaataattagagttcatatcaaaaagattaatgtatatacagcacaatcata
-gcagcatagtttaaagtagtgaagaggcagtggggtaagatggctgaacagaagcctcca
-ctgatcatcctccccactagaacaccaaatttgacaactatctacacaaaaaagcacctt
-cataagaataaaaaatgaggtgagtgatcacagtacctagctttaacttcatatcaccta
-aagaggcactgagaaggtaggaaagacagtcctgaattgctgacaccgcctctccccagt
-cctcaggcagcagctgtgtggtgtgcagagacaatatgtgtacttgcaggagggagagca
-cagtgattgtgggatttcacattggaactcagtgctgctagcaccaggcagaacccagca
-ggtgcctaaaagggatcatttagaccatccctagccagggggacatcacccatcccagag
-gtcggaactccagtttccgcaagcctcaccaccgtgggctaaagagctctggggtcctaa
-ataaacttgaaaggccgtataggccacaagaactgcaattcctaggcaactgctagtgct
-gtgctgggctcagaggcagtagatttagggaccactcaacctagtgagacaccagctggg
-gtgtgtgtgtgtgtgtgtgtgtgtgcgtgtgtgtgtgtgtgtgtgattctcgtgcctcag
-cctcccaagtagctggtgatggcagtggcagcccatctggagtggacgctgccatcaagc
-cagctgcagcagggagggacagctggggctgcacattccacagagctgcagagctgggga
-caatgagagccccacaccttccaagctggtgcagcaggagctccccaggtgcaactgcag
-ccactcaagtcacggctgtgaaccccggcctccctgtgttcttgtgggtgctgggagcag
-gcaggggtcctgcacttttgggtgcagctgcaggcgcccaaaccatggctgcggaaccag
-acatctctacactcttgagggtcagggaagtccccactgccctcacaagcttagaagtgc
-ctgctcccacagcctggcgcctccctgctgtcggtgcccgctctaatcttggagcaaagt
-tgaggccaagcccaggtgctgtcatagcctgttgggtgtgcacacgcttggggcagtgct
-gacataccagccccctgccgcctcggacccctacagacctcgggtgctgacgagcatagg
-aggaaagccgaggtggggctgagggcagctcggcacctacagcctgggtgccatgaatgg
-cagtaggagTCTTCTCAGTTCTGTCTCCCTCCCTTCAGTGTGGATGAAGGGGTAGAAATG
-AGGTACAGCATCCTGTCTTTCCCAGGGGTCGTGTTGCATCCTTTAATAGTTTACCACTGA
-CAGCACTACCAACGATTTGGGGATTGTGTCTCGAGGAAGCAATTGACCTAAATTTCATGT
-ATCAATGAAACTGTTTTTCCTTATGGttttaattatttatttattttataaaataaaata
-aataGGCTTTTAATATATAATGAAAGCCTTTTAATGTTAACATGCAAGGACTGAAAGAAT
-ACCTGTTGGACTGCAAGATGGCTGCTCCCTCTACCCTCAGCTTCAACTGGCCTGTCAGCC
-AAGCTTTGATTTCCTAGGCAGAATATAAAAGAATTCCTCTCTGTGGTGGTCCAGGAGACC
-AAGGGAATTTGGGGAGGTGATAGAACTGCACCCTGATCATGCTGGTGGTGAAAACTCGTG
-CAACCGTACACCCAAATGTCATCTTTTTTACTGTATGTTAATTTTAGAAATCAGAAAGTA
-AAAGATGCAATCACAAAAATATCATTTGGTAGGACAAACTTATTCAGTATATGAAGATAA
-TAGAGAACTTTTATACAAAAGTGGCTCTTACaaaatattaatataaaatattaaaatata
-aattCTCAAGAGCTATAACTTAAACTTCTATGTTAATTTAGGTAAGCAATTCTCCTATGA
-AAAGACTTAACGAATTCTTTCCTTTTCTTTTCCTCTTGTCTTTTCATTTTGCTGCAAGGA
-GCAGCCTTAAAGCTGACTGAAACAGTTATTGTGACCAGCATGTAATGCTTGAAAAGATGA
-AAATCCAGCTTTAAATATGCTCAATCTCAATAACttttttggtttttttttttttttttt
-tttttgagacggagtcttgccttgtcacccaggctggagtgcaatggcacgatctcggtt
-cactgcaactttcgactcccagattcaaatgattctcctgcctcagcctcttgagtagct
-gggattacaggcaccggccaccatgcccagctattgtttgtatttttagtagagatgggg
-tttcaccatgttggcaaggctggtctcgaactcctgacctcattatctgccgccttggcc
-tcccaaagtactgggattacaggtgtgagccaccgcgcctggccTCAATAACTTTTTAAT
-AGGTATATGCTTAGTTTATTCATGTTTCTTTGCTAGTTTTTTTTCCCTGCAAAGAAGAAG
-AAGAAAAATAATTTTAAATCTTATTTGAAGGATGATTGTACACTGTGTTATTGGCCTTGG
-AAAGGAGAGAAGGAGGAAAAGGAGTAGGAAAAGGGAAAATATCTTAAGAGGTTGTACTGT
-TAATCTACTTCCAGGCAGATTTTAACCACTAAAGCTAAAATGCTATTATGAAATTGAATA
-TTTCAATTGAATATTGAAAATGGTATAATGATgccgggtacggtggctcatgcctgtaat
-ggtagcactttgggaggccaaggtgggtgcatcacttgaggtcaggagttcgagactagc
-ctggccaacatggtgaaactctacctctactaaaaataccaaaaaaatagccggaaattg
-cttgaacctgagaggcagaggttgcaatgagctgagatcatgccactgcacttcagcctg
-ggcaagagagcaagactccatcttaaataaataaataaataaatgaaAATGGTATAGtgg
-cttgaagatgcaggggcccatgaggaagaacatggatggcccctagaagctgaaagcagc
-ccccaggtggcagccagcaaggaagtggggtcttcaattctacacgtgcaaggaactgaa
-ttctatcaacaacctgaatgagcttggaagctgattcttccccagaagccgcagataaga
-gctcagccTGCTAGGGGCTTGAGAAAGGGGAAAGTGACTTTAAAAATGTAACTCGAGGGA
-GTTCCAAAAGGCTAAGCGATTCGGTGAATCTAATAAACATGTTAAAATGCATAAAGTTCG
-GGTGTGGGGGAAAGGGAAGGGAGAGCATTAGGACAAATAGgttcttttctgagttctggc
-caggaggcttcttgatcagttcaaattgttacaaagttcagctggaggtttccttctccc
-tgtggccgctctgggcctctggcagccctcctcaaggagcaatccgtttccttcagaggg
-tctgtgggttctcctggcttccctaatgcgttcctgcagtccttctgaagcaaaacttaa
-tgatgcgagcctccacacgctgctctgaccgtccgagtgggagctgcaatctagtcctgc
-ctcccgtctgtcatgatcccTGGTGGTTTTTGACTACagctcaattgttttagattccat
-gtgtaagtgagaacatgaagtatttgtctttctgtgtttgactcatttcacctagcagaa
-tgtGTaataaacattaacaaaatgaatgtgtaaaatcaggtagtgatcacagctacaaag
-aaaataaaacagagtgatagatggaaagtgatggggaggaagaacctggttagaaatggt
-ggtcaggcaggacctctctaagaagggaaaagagctgtgactgcacgataagccggccac
-gtgaagaccttgaggacaacatgcaaagctgatgacccaccggccctgcaaagaccgggc
-gggagataagcttggctggcgcgaagaaagaaggctggagggagtagaaatggggacagg
-agctgaacgctgggagagggggctcaaagCCAGCTCGCGTAGGCAGGGACTGGGCACTCG
-CAATGCGCGCAGAACAAAGGCCTCTCTCTCTCTTTCGCCACACTAAGGGCCAACATGGTC
-ATCTCCAGGTGCGGATTCTGCCGTAAAATGCGCCCCTGGCGACTCACGACCAGGACGCAT
-TCCGCACCGCTCCCCCACGCCCCGCAGCCCGCCCTCGAGGCTGATTGATTTGTGCCAGTC
-TCTACCGCCATCTGCCGGCAGCACTCGGTACACCCGCGCCCTGGAGGTCGCACGCGCTGG
-CCAAACGGGCGCACCAGACACTTTTcagggccctgccaaagacctcccaatgtctactgg
-cgtcccagacacaagagatccaggccaagactcacacttcacaagatacacagacacggg
-ccttagggaacaggaaattccatgaaacttccatttacccaattagccggactcactgag
-ccccagaatagggttttcaaccaactcctactaaaattAAAAAGTAATGTGTGGtataga
-ttggaataatagacattggaggctacaaacgatgggaggcggagaggggtgagggttgaa
-aaattacctattgggtgcaacattcactatccgggtaatggggcactagaagcccactcc
-accactatgcaatatatgtatttgtaccccgtaaatctataaaaataaaaaCTACATTAA
-AAATAATAATAATGTCTGGTCATCTAAATAGTACCTCTACAGCTTATTAAGTGCTCTGGA
-GACGTCCCAGTTGCCTGTCCTTCCCATTAAAGGTGATATCCAGTGCTGATTTCCCCTTCA
-ACCTCGGGTTCCCATAAACCTCTTCTTTCTCACTCCTGCTGCCCTCCGGTACTCCAATAA
-AGAATGATAGATGggccgggagcagtggctcacgcctgtaatcccagcactttgggaggc
-caaggcggatggatcacctgaggtcaggagttggagaccagcctggtcaacatggtgaaa
-ccccgtttctactaaaatacaaaaattagctgggcatggtggcgggcctcagtaatccca
-gctactcaggaggctgaggcaggagaatcgcttgaacccgggggcagaagttgcagtgag
-cagagattgtgccactgcactccaacctgggcgacagagcaagactccgtctcaaaaaag
-aaaaaaagaaaagaaaCAGTCCCAGTATGCATCCATGTGCATGTGCATGCAGGTGTATCT
-GCCTGTGAGAGCTGCGCACGCGGCTCTGAGTACCTGGGAAGACACCCATGTACAGATGCT
-GTACATGTGCGGGGTCACTCTCTGGCGCATTCGGAGGCATGAGGGCTACGTGCAATGCGA
-GGGAACCTATGTCCAGGCTTCCTTTCTTGGTTTTCCTCCTCTGAACTCATGCATCCCTTC
-ACAAACagtccagctcctggctaaaaacctatgtgtgatttttcagcccaaacacaggca
-atgacaggttttacctggcaggcctcacagctgagtcgtgcacagctgatgcgttgcagt
-ctttaaagacagttgcagacacagactcaggcctcctggacagtcgacctctcacacaca
-tctccgctcccaacccaagtcttcattcagacacgtcttcattgcagtggggtaggcctt
-cggccaggacctccttatcttggggagtggagaatccttgaagacactttcctccatgct
-gactcagaagttttcccactctcccttccccaccccatccctggcccccaggtccgtaca
-acttcaggagcctttttgttggaagcttttctgcagtgagaccaaccccacacctgtgct
-catccacccgaccccagttggcatcattctatgaggaaattagaacaggtggatctgtgt
-tctacaaaataaaacaaaccaggttctctggtttagcctctttcttgtactgtaataata
-agagatttggggcttggctattacttgctttgactttttttgttttgagacagggtttcg
-ctctgtcacccaggctggagtgcagtggtgcgatctcggctcactgcaacctccgcctcc
-tgggctcaagcaatcctcccacctcagtctccctagtagctaggactacaggtgcacacc
-atcatgcccagctaatttttatattttttatagagatggggtttcaccatgttgtccagt
-ctggtctcaaattcctgagatcaagcaacccactggcctcagcctcccaaagtgtgagga
-ttacaggcctgagccaccatgccgggccatcattaatcagctactccagcacttagcagt
-tcagctctctcctgctcagctgagctcctgaTTGTACAGTGGTTAAGAGCAAActgcctc
-tgccacttagtaacctggtgacttgaaaaatcactttgccttttcatcctttggtttctt
-catctgtaaaatgaaaataacaataaacaatacctacttcacagggtggttgttgtgagg
-gtgtagtgagttgatgtatgtaaagcATAACGTAGGTTCCATTGAAGTGTTTGCTATTGT
-GTTCAACAGGGTCCATTTCTGCTTGGAGATCCACATGGCTCTGGGGAGTACCTGTTGGCT
-CAGCCTAGGTCACGTGTTCCACCTTAACCatcccttccctgctccaaggtagagcccgtg
-acctgaactaaaccagcaggcacgctccacctccaacaccggctcaaggtgggcgtgtaa
-tataagctggttcaattagaatgaatcttttttttttttttttaaagacggagtctcatc
-ccccatcacccagactggagagcagtggcacaatctcagctcactgcaacctctgcctcc
-caggttcaagcaattatcctgcttcagcctcctgagtagctgggattacaggtgcctgct
-gccacgcccagctcatttttgtatttttagtagacacagggtgttgccatgttggccagg
-atggtctcgaactcctgacctcaagtgatccacccacctcggcctcccaaagtgctagga
-ttacaggcgtgaaccactgtgcccagcccaattacagtgaatcttaatacactggctgaa
-aattctgggacacagccagtctctctctttccaacaggacatgtacaaggacctgtacaa
-ccctgggagatgctggcatattggggccacaagcagtgctgacctgaagaaaagggcaac
-acctcagaaaacaaagtagataaatagaaaccaagtccttggtgccatcacttgatttct
-ggacaaagcctcacctaagctatttattgacctgagcccttcatagtttaggccaatGTG
-ATTTGGTTGTTTTGTTACCTGTAACCAAGTATCTTAACACAAAGTGGATCTGTGAGTGAC
-CAGAGCCTCTTGGGGGTTGTAGCAATCTAGTAgttggcccagaaaggccaactctgagat
-ggagtgtagggtgcagaatgttgagtaatgagtgctcttggaatcaacaactgaggaaga
-cagaaatatgcaggattgggcacagggagaagttcagctgcagtgcaggcccaagggtag
-ttgcagctgagccttcaggaagttctggagccagagtagcccttctgagttgttccaagC
-ACTGAAGGCCTAGCAAGTTCCAGGGGTATTAAAATCAATAAGCCTGTCAGCCCCGACAAT
-GCCCTCAATAGGTCTGGGCACAGATTGGAGAGAAGCTGGGCTCCCACTGCACCAGGAGGG
-AGTGGCCCAGAGCCACTGAGCCATGGAGACTCAGGCAGGGGGTTGCTCCAGCACTTCTTC
-TGGAGAAGTTTTGAGCCCCAGATGCAGTTAGCACAGTTGCCCGCCCCTTATCATAAGACG
-AAGTCCGTTCCCACCACATCTTCTGCAAGACCTAGCTGGGGACCCCGAGACACTGGCAAA
-AAAGCAAATGTAAATCCAGCTTTATTGGTAAAAAAGGAATAGCAGATTTAATCAGAAATT
-CCCACCTGGCCCAGCAGCACCAACCAGAAAGAAGGGAAGAAGAGAGGAAAAAACCACAgg
-aagaaagaaaggagggagggagggagaggaggaaggaaggaggagggaagggaagggggg
-aagaagggagggagggagggagggaaagaaagagggaggaagggCAGAGGGAGCAGGGAG
-ACTGTAGATCAGGGTCTGAATGGAGATCCGGTCCTGGAAGTAAATGATCCAAGGCTCCAG
-GTGCTGGGAAGAGAGCAGGAGGGGAGGGCGGCCCATGGCACTGCCATCTAGAAGGGTAGT
-GGCTCTTCCACAGGAATGTTGAGGATGACATCCATGTCTGGGGTGCACCTGGTGGGAGGC
-AGCACAGAAGGCCATGAGAGACCAGAGGTGGCGGTGTGGGAGCACCCACTCAGAGGAGCC
-CTGCTCTTTAGAACTCTGGTACGTACTTGGGTTGGGGGGCAATCCCAAAATACAATCTGT
-GATCTATCTGTGACCTCAAAGCCCAACTGTGcatacacaagcatacacacacacacacac
-acacacacacacacacacacatacacacacaTCAAAAATGGAAAAGAAATGAGTTTGGCA
-GGACAAATGTTCCCCTGACAAGTCTGAGGTCAAGAGGGAGCAGGAACTCAGCTCTGAAAT
-GCTGAGGGCCCTCAAGATgatcactggctttggagtgaggatgacaggtttgataacttt
-gacctgtgtcaccttgagcaagctatttctactctcccagcctcactccttcagttgGCA
-CTTAAGTGAAAAGCACTCATTAAGTCCCAGACCCCAAGtgagcctcagtttcctcatctg
-tcaaatgggtttaatattctaacctcagtcattggtggaaagattaaatgagaccatgcc
-agcaggtaataagtgctcagtaaatgacaggcaTTATTATTTCCATGAAAGTAGCAAGAG
-AGATGGATTCCCATCAGCAATATATTCCCCATTGCAGGGACCAGCACAAATATTTAAGAG
-GCTGAAGGATTACATTCTGTTTCACTCTCTTTTCTCTCTTCCAAGGAGACCATCCTCTCT
-CATGGTTTCAATAATCTGCTGATACACATGAAGTATTTAGGCAGGAAATGTCAGGATACT
-TGCAATTTACAAATACTATTAAAAAAATGAACatgaaaccaacatagaaaaaaaaaaaat
-ttctaaatctagatgggcaaaactggctattcattatatcattctctcttctttatattt
-gaaatttttcataataatagtaaaaaaaaaaaGTTcatctctatgctggcaacacctaaa
-tttctacttccagccaatatctgtcctctgaggtctacactcatcttgtcaattgcccac
-ccaatgactccaccttggcacctcatataaatcaaacttactgtccaagtcaactgtatg
-gtttttgttttgttttgttttgtttgagacatggtctcactcggtcacccaggctggaat
-gcagtggtgcaatcacagctcactgcagcctggaactcctcaatcgatcctcctgcctcc
-caaatagctgggaccacaggcacgtgccaccacatctggctaattttttaattttttgta
-gagatggaggtctcactatgttgtccccctggtctcgaactcccagcctcaagcgatcct
-tcttcctcatcctcctaaagcactgggattacaggtgtgagccaccatgcctgcctccaa
-ataaactttttgactgtgcctacatacacatccctcaccccgccccagccttcccaatct
-ctgcatttgacatcaccaccaccccattataaaagtcaggaacccaggggttattcttga
-tacctccctttcctgtacttcccaagtcatgcaagtccttcttactttcctaaatatttc
-tccaatctatctatttctcccatttcttctgccacactcttggccaggccacttcccatg
-ttcccctggacaactgccctcacacccactagaattccagctgccattctggctccttgc
-caatctcatccccatgctcttttcttttcttttaagaaagagtcttgctctattaagcag
-gctggaaggcagtagcaccatcttggctcactacaacctctgtctctagggctcaagcaa
-tcctcctgccttagccttcactgcagctgggactacaggcgcacgccaccacgcctggct
-aacttttgtattttttgtagagatggggtttcaccatgttgcccaagctggtcttgaact
-cctgggctcaagcaatcctcccaccttggcctcccaaaacgctgagattacaggcatgag
-ccaccacacccagcccaccatgctcttttcaaactgacttttttggaatacaaatctgat
-catgtggcttaagatcctttgcttctgggatcaggcagaacatctgggcctacagggcac
-tgcatggaggtccctaggggctgagttgccctgctcccttcccgccactctccctgtcac
-tctgcattccaaccactctggcctcactcagctccgtgtcaatgccaagttccttccaac
-catagctccttcacaGCTCAAGGCTCAACATGTGGTtggttcatagagcagtaacataag
-catcaccgggtagcttcttagaaatgcagaatcAggctgggcatggtggttcacacctgt
-aatcccagcactttgggaggccaaggcaggcagatcacttgaggtcaggagtttgagacc
-agcctggccaacatggcaaaaccccgtttctactaaaaaacataaaaattagccaggcat
-ggtggtgcacacctgtaatcccagctactcgggaggctgagacaagagaatcacttgaac
-ccaggaggcggaggttgcagtgagctgagatggtgccagtgcactccagcctgggagaca
-gagctagactctgtctcaagaagaaggaaggaagaaaggaaggaagggagggagggaggg
-agggagggagggagggaggggaaagaaagaaagaaggaagaaagaaaaagaaagaaaaga
-gaaagacagagagagaaagaaagaaagaaaaagaaaagagagaaaggaaggaatgaagga
-aggaaagaaagaaaagaaaagaaaaaagaaatgtagattcatgagccccactgagaccta
-ctgacttggaatctgctttttaacgcgatctccaggtgtttcctgggcatgttccagttg
-gagaggcTCTGCTTAACAGTGTGCCATTTCTACTTTTTAGGAGGGAAAATGTGCTTCCTT
-GCTCCTGGTGTTCCCTTCCACGTGGAAGGGCATCCATGAGTGTATTGCTCCTGGCCTCTC
-TCTGCCCCCTTAAATTCTGCTTTTGGAAAGGGGGTATGACCACCAGAATGGTGAGTGTGA
-GGAGAGGAAGGGGACACAGGGAGCCCAGTCCCTTTCTCTCTCAGCAGCAAGAAACCCGAA
-AGGACTCCACTCTTCTCTGCCCCAAGGCCTGGCTCCACGTGGGTCCAGCTCCACCATGAT
-CGGGTGGTTCAATTTGCCTAATTCTGGGTTCACTATTCAGAGGCCAACACAGTCTCTAAA
-ATCAGCTTTACCAGAATAAAGGTGATAACCTGGCCCACATGCACCTTACCCCTTTCAGTC
-TCATTCACTGTGTTCAGAGTTCAGGTAAAGACAAGTGACTATTTATTACGTCCCCCGGAG
-ACCCTGGCAccaccgcctagaattgctcttccttcagctcccccatcagtctctttcacc
-tagtgaatttctatgcatccttcaagcctcagttcaaatgtcacatcctcaggaaaacct
-tccttgactgcccagacTTGCTGTCCTAACAGTTGCtttcttttttcttttttttttaat
-taaaaaaaaatttttttttagatggagtctcgctctgtcacccagactggaatgcagtgg
-cacaatctcggctgaccgcaacctccgccttccaggttcaagcaattctctgcctcagcc
-tcccgagtagctgggattacaggcacccgccaccatgcccagctagtttttgtattttta
-gtagagacagggtttcatcatcttggccaggctggtcttgaactcctgacctcgtgatcc
-accggccttggcctcccaaattgctgggattacaggcgtgagccactgcacccagctCCT
-AAGAGTCACTTTTGCAGTGGCATGTACTCTACTCAGCAGCTCTGGGCTCTGCTGCAACTC
-CACATTTATTTGTGGCTCATTATCGACTCATGTCCAGTTCCCTCTTTAGTTCCATGAGGG
-CGGGACCAAGGACTGTTCTCATTCACATGGTGCCTGGCATTCAGAGGCACTTCATAAATC
-CAATAGTATTTTGTTTTGGGGGCGGGGGGCGGTTTagaaatagaagaaaaggaagaaatg
-gcgataggagaggagaaggaaggaaaacgacaggagggagagacagatgaagaagaaaaa
-TTAAAGAATTTGCAAATGCTAGGCTCTGCCACACATGGTCCTGTGGTGTCATCAAGGAGA
-GGTAAGCCTGGGGGACCCCCAACCCAACCGCAGAGGGCTTGCCCCAAGGAAGGGCAGGCA
-AAGAATTGGTTTCTGGGGCCCAGAAACCTGCCAAGTGAACAGGACAGACTTCTCTCCTTG
-TAGAGTGTCTTCCAGGCTATTCTTCCCTGAAGCCAACCACCCCACTCAACTCTGCCTTCC
-TCAAAAACCCAGAAGTGGAAGGCTGTACCCACTTGGTTGACAcatgggatctgggaacta
-gaagggcccttagagattacaccacccagcctgctgtgtacagatgggaattggaggcct
-ttgcagagatgggaaaggtcacatctgcccctggtcagtggcagatccaaggtggaaacc
-caggaccgcccctccctccctgtacagggttctgccatccacACCAGGCTGCCTTCCCCA
-AGAACAGAGAGCCTCCGTGAGCTCAGAGTGTGACTGGTTTAAGAGGCAGTGGCAAAAAGA
-TCACATACTTGGGTCTCCGAAGCAGAACATCCTCAAATATGACCTCTCGGGGTTCCCGGG
-TCTGGGCTTGGAGCTCTTCCACCTCGGCCCTTAATACAGGCATGTTCTCCTCAAACTGGT
-CAATAATCTGAGAGGAAAGGCACAGCAGGGGAGAAGGGAGAGGCAAATGGCCCCCAACCA
-AAGGGAGAAAGGCCAAAATGAACGAGGAGCAAAGCTATCTGGGGAAATGGTATGGGTTCT
-GTCACTGGGACTTGCTGGACTCCAGGGAGGGGACTTCCCCATGCAAGGTGCGGCTGGCTT
-CCAAGTTAGTGACAATATTCAGTGGTGCTGAAACAGGTGAGGGATCATGGAGAATGGAGA
-CAGGTTACAAAGTGGCGGGGAATGCTCAATCATGGGAATGAATGGAGGCTGGCAGAGATA
-GTGAAGGGCATACACATTAAAAACCAGTGAAGAGGCAAGATAATGAAAATTAATTCAAGA
-AGGCAGTGATGGTGAAGTTCATTAACACTGATAATGGGTGGTGGGCAGTAACAAGAATCA
-AGGGGTAAAGATGCACGGTGGTTAATGGCTGAATAGGTGATGTTTGGTGATGGTTGTAAA
-TGGGTCATTAGCCAGCATTGCTGGCTAATGAGGCAAGGCCTAGGTCAGTGCCAATCGCCT
-TCCCAGATGAAAGACAAGTGACAGTAATGGCACCGGCAAGGAGGGAGGCCAACACCAGAG
-TCAGAGACCTCCTGAGCGCCAGATCAGGAGAAGCCTGACTCATTCCCACAGGCCGTGGGG
-ACTGCCCATCCACTGCTTCCCTACAGGGACCACCACCTTCCTTGCCCACGCACTTCTCTG
-AACCTTTGCATGCATTTCAGGAAGTCCTGGCTTTCCCACATCTTCTGTAGGAGAGCCTCT
-TCATAGGGACGCTGGGTTTCCTGTGGAGGAAGAAGAGGTCTGGCCCCCAGGTGCCTCTTC
-CTGGGCAGCAGAACATGGTAGAGACCGATGGGGCTGCAGTGGGCCTGGAGGCAGAGGATG
-GGGAAGAGGGCGGGGTGGGGGTGAGACCTGGATCCCCGCTCCCACACAGCAACTGGCTAC
-TCACCGCCACCACAGAACTCAGAATTTTTTTCTTCTTCTTCTGAATCTTGTCAGACAAGG
-ATTCCAGGACCTTTCTGCGCATCTCACCGAGGTCATCCAGCTCATCCTGGGAGCCAGCAG
-AAGGGTGTTGGTCACCAGTCCTGCCTCCCACACAGTCTGGTGGGAGAGGGGCAGGGGCTC
-CCCTACCTGCTGGCTGTCCTTAACCTGCTGCAGCTGGCGCATAAGAGTGGAGATCTGGAC
-AGACTTGATGGAATACTCATGGTCCATGTAAGTGCTCAGGAAGTTCACTTCCTCCTGGGT
-CTTCTCAATCTTGGCATTCAGCTGCTCTGCCTGCTGCTCAAGATCTGGGGAGGGGTTAGG
-GAGGTCAGCAGGGACAGGAGGCAAGACCTTCCCTCAAGCACCTGGGCCCCAGGAGGCCCA
-GGAGGCAAGGTCTCCTTGGCCAGTAACTGGGGTCTGGGCTGAGGTGAGCTCACACAGGGC
-TGGGAGGTGGTTAAAAGTTAAGGCTCTAGACGGTTTTCCACCCCTGCAGGAGAAGAGGCA
-ATgctgggtaggaaaaaggaagggaattggtgcatgatccctagactagtccccactctg
-ccactgacttgccgggtggctctcgccaagactgtccctctccagacttcagtctcctca
-GAGACACACTCAAGGAAGTGAGACCAGGCAGATGGGGTGACAGTGGCTCCCAAGACACAA
-CCCATGGCAGGATTAAGACAAAGTCTATCCTGTCTTCCTCCAGAGAGACCCCCAATGTCT
-GGGGTTGACTGATCCACCACCCCTCTGCTCAGCAGGTGTGTAGTCTGCTCAGGGAAAAGG
-AACCACAGGCCAGGCAGGAtggaagccaggagacccaggttctagcccagccactgactc
-ccagaaggaccttggCAGGAAACAgagccaggctaggattggattctggctcctagctat
-ataaccttccacaagctactgcacctctcttagcctcggtttcctcatctgtaaaatggg
-aggacagcttccctgcctccaagtagttgcaatgactgagtgtgtgcctgtaaCAATGCA
-GACATTGGTAGAGACCCAGATACGGGGCCTGGAAAGAGCTAAGTGTTGGGTAACTATGCT
-ATTCGCTCTGTATCTTAGCATTCCCATCTGCCAAGAAGAGAGCCAATGGGGCTGAGGGTT
-TCTGAATGGCAAGTACAAGGTGAATGCTCTGCTGCTGACCTCCCCAAGGTGCCAGGGGGG
-AGGGTCAAGGAATTTGCCAGGGATTCTTACAGCTCATCTTGCATTTCTTCTTTTCTTCCC
-ACTCCTGAAGCTCAGATTTCAATTGCTGCAGCCTCTTCTTGTTTGAGTACTCCAAGATGT
-CGATGATGGTCTGCGGGAGGGGTGGAGTCAACTCACCCACAGGCTCTGCTGGCTCTCAGA
-GGCGGCCACCCAGCACTTCCTCAGAGGAGTCCCCAGTCCCAACCTCACTCCCAGAAACCT
-GACCAGAGGCTaatcgggacagtaacagtgtccacccatagggttgttgtaaggactata
-taaagacatacagatcgcttGCTATTACACGTAGAGGTGTTTGCAAATGCTGTTGGTGGT
-AGCAGCGACCTCTGTCGCACCGGTACAGTATGTGCCCGGTGAACCCCCTCTGGGACGGGT
-GCTATGGTGCCGCATTTCACAGAGCTCGGGGAGGCAAAGTTAACTAAAAGTCTCCCGGCC
-AGTGAGTGCTGGCGCGCTGGGATGAAACCCATCTCGGTCCTCTTGCAAAGCCCAGGTGAG
-GGGAGTGAAGGGTGAAGAAATGCGTCTTCCAGGTGGAGGAAGCACCACGTGCAGTGGGCG
-GGGAAAGGCAGGAGAGGGCGCGCGAGTGCGcggagggagggcgggacggagggagggagg
-gcgggacggagggagggagggagggacggagggcgggacggcgggagggcgggacggagg
-gacggagggagggcgggacggagggcgggagggcgggacggagggagggagggagggagg
-gacggagggcgggacggagggacggagggagggagggagggacggaggttgggacggagg
-gacggagggCGGGCGGATGCCGCGGGTCTCACCGCCAGGGTGTCCTGCTGCTGCAGCAGG
-GCCCGCACGTGCAGGGTCGTGCTGTTCTCCATCTCCTGGATGGTCTCGATCAGCTCCCGG
-TTGAGCTTGCTGAGGAAGTTCTCACGGCTTCGGAGCTCTCGCAGAGCGGCCCTCCCGCTC
-CTGAGCGAGGTCTGCGGGCGGAGGGAAGAGCAGAGAGGCGGCGCTGCGCCCTGCCCGGCC
-TGAGCCCCCGAAAGCCCGTGGAcccgccgccccggccccgccagacgcccgcccccgTGC
-GGCCTCCTGCTGGTAAACGCGGCCCAAGCTGGGCGGTTCCCCATTGTCTGCGCCGCCCGG
-GAGCTCCGGGACtctcatccgttcggaaacgcacgtgtacccatcatctcacatccctga
-ggtgcgggtgcatctacagttggtggcgtgtcaccaactaatcaacaaatatattattag
-tgggtaaataaagatgtgccttcatatcaatggcttctcagaatcaatgaaatatagAAA
-TAATAGTAAGggccgggcggggtggctcacgtctataatcccagcactttgggaggccaa
-ggtgggccgatcacgaggtcaagagttcgagaccagcctgaccaacatggtgaaaccccg
-tctccactaaaaatacaaaaattagccgagcgtggtggcgcgtgcctgtaatgccagcta
-ctggggaggctgaggcaggagaatcgcttgaacctgggaggcggaggttgcagtgagcga
-gatggcgccactgctctccagcctgggcgacagaggaagattccTGTCCCaataataata
-ataataataaACGCCCCAGGTAGGTTAAGAAGGTGGCAGAGCGACCGCCATGTCTGGAGG
-AGAAGCAGGGGAGGCAAAATGGATGATAAACGTCAGCATTTCCGGGCAGGCCGCGGAGTC
-AATGAGTACTCTCATTTCACACAACAGCCCCCAGTGGAACAAGgagggtctgagggttaa
-gtgactcgcctaaggttacacccagcaggtgcataaaaccTACAGTAACAACAACAACAA
-CAATTGTACTTCCCTAAGGTTACACCCAGCAGGTGCATAAAACCTACAGTAACAATAACA
-ACAACAATTGTACTCCCCTAAGGTTACACCCAGCAGGTGCATAAAACCTACAGTAACAAT
-AACAACAACAATTGTACTCCCCTAAGGTTACACCCAGCAGGTGCATAAAACCTACAGTaa
-caataacaacaacaattgctgagggccctctacatgccaggccaggtgctgtgccttgct
-ctgcaggtggcacatggtatctgttcaccctccaacagctttatgtttactaactctatt
-ttgctgataaatggaggctcagagagtttaatgacttgcccagtgtcacacagtcaagaa
-gtggcagggctggaactggaaagccagacttctgaatcccaatgtctgtctttccgttat
-gctaAAACAAGAACTGAGTAGCCTTAAAACTGCAAGGCATGGCTGAACCAcgtagtgact
-aagacttggatgttgaacctagacacaccttggttcaaatcccagctcagccacttacca
-tctaagagaatctgggcaagttagttaatgtctcagagcctccttatactcattctaaag
-gtaaggaaactagtatctgttttagagaactgccgtaaaatataaatgagATTggacagg
-tgcggtgactcacgcctgtaatcccaacactttgcgaggcccagatgggaggatcactca
-aggccaggagttcaagaccagcctgggcaacatagtgagacctcatttctacaaaaagta
-aacaaaattcgctgggtgtggtggtgtacacctacagtcctagctactcaggagtctgag
-gtgggaggaatgtttgagcccagaagatcgaggctgcagtaagtcaagattatgccacca
-cactccagcccgggtaacacagcaagaacttgtctctaaaagtaaataaataaataaata
-aataCAATTTTaaaaaattaaaatgttcgctgggcatggtggtgtgcacctatagtccta
-gctacttgggaggctgaggcaggaggatctcttgagcccaggagtttacggctgcagtga
-gctatgattatgccatttcactttagcctgggtgacagagcaagaccctgtctttaaaTT
-CACAATCAAGCCACTTAGTGAGAGTGCACTCATGTGCACTCAGTGAACAATAGCTGATAC
-TACTGTCTCTGGCTCTAACCCTCTACCCCTGCCATAAATATTTGCTCTTTCATTTGTTCC
-TGTACTTCCTCATTTCTCCGTCCTTTACTAAAAACGACCCCTTCCTAGCCCTCAGCTCCT
-TTATTTCTCATATaacagtaatcatgctgatgtgctgagtgcttgccatgtggctgatac
-tgtactaagcacttcatgcgcactgcagcacatcaccctcacagcaagactaagagatgg
-gcactattattaggccaactttataaaagtggacagcagtcgggcacagtggttcacacc
-tgtaatcccagcactttggaagagcaaggtggaaggactacttgagcccaggagttagag
-ccctgggcaacaaagggagatcccatctctacgaaaattagctgggcatgatagtgcatg
-tctatagtcccaactactccgagaggctgaggtgggaggatcacctgggctcggaaggtc
-caggctgcagtgagccatgatcatgccactgcgctccagcctggatgacacagcgagacc
-ctgtctcaatcagtcaatgtggacagcaaggattaaattcagtaacttattcaaggtcac
-acatagcagagctgTCATCCTTGAAGTCTTGCCTCCTAGCCACTCCACTACCTTGTCTCC
-ACATCTCCAGACCAAAATACCCAGAAGTATCTTGTGAAAAATGTTATTCTCCAAGTCCTG
-GGCCCACTGAAACAGCAGCACTAGggtttcagttcaaatgtcacccaccttagcagcctc
-tcgttagcacctaaacaattactgccacactctcctccgtgcctccagccccctaacctt
-attcttaggcttctctttagctcttatcatcatttcaaatatctttctcttgttgattgt
-cagtctcccccatccaatagaatggaagtcccctaagatcagaggtcacattactggtga
-accctcatactcagaatagaacctggcacatggtaggtgctcaatcaatatttgttgatt
-cattaaatgaatGAAAGATTGCAAGAGACAGTATTAAGAACTGGACtggttaggagcaca
-agttttagagccaaattgtccacgttcAGCTTCTACATCAATCAAAAACACCTAAACCCC
-TCTAAAGTTAGGATAAAAATAACAGAAATggctggaagcggtggctcacacctataatcc
-cagcactttgggaggccaaggcgggcagatcacctaaggtcaggagttggagaccagcct
-ggccaatatggtgaaaccccatctctactaacaatacaaaaaattagctgggcgtggtgg
-tgggcgcctgtaatcccaggtactcaggaggctgaggcaggagactcactcaaacctggg
-aggtggaggttgcagtgacctgagatcttgccactgcactccagcctgggtgacggagtg
-aaactctgtctcaaaaaaaaaTTTTTTTAAAAACTAAGAGAAATATGAGTTCCTCCTTTA
-AGAATACTGGGCTACCTCTAAACCATTTTGCAAGATAAAAGGTTAAAGGGGAAAAAAAGG
-TTTCAAAGCAAATTATATTTTCCCTTGTTCTTTATATAGTAGTCATTGTTCATTGAGCTA
-TTAAAAATTTTCTTGAAGAATTATTCTATAGTATTTTGTAGTCTTTATAATACTTAGTAT
-TTTACTTTCTGCTATGTATGCTAAGGACTTGTCTTCCTTTAGGCATTTCAAATACTTTGA
-GACATTGTTCAGATAATTACAGAAGCCATAAAACAATGTATAGCGAGGAAATTAATTACC
-TACAATTGTAGCGATTGATGTGAAAATTTTCATTGTCAGTTTCTAAGGCTTGCTTCAAAG
-TACACTGTAAGAAAATTTAATTTACTGGAAttttttttttttgagatgaagtctcactct
-gtctcccaggctggagtgcagtggcaccatctcagctcactgcaacctctgcctcccagg
-ttcaagccggtctcctgcctcagcctcccgagtagctgggactacaggtgcgtgctacca
-cacccagctaatttttgtagtttgagtagaaacggggtttcaccacgttggccaggctgg
-tctcgaactcctgacgtcaaatgatccacccacctagacctcccaaagtgctgggattat
-aggcatgagccaccacacccggccAAGTTGCTGCAAATTTTAAGATAAATAAGCCACTAG
-ATCGTGTTCCTAATGCAACAAAATAACAAGCAATTCTGATTATTTCTTGAGTCTTAAACA
-GAACAGCAAACGCTTTGTTTAActggctttgacccctgatcctgccatttcctggctgtg
-tgacctggtgcatgtcatttatctccctgcgcctcagtttcccggtttgtaaaataggaa
-caaggataagcgtgctcacacagttcctgtgaggaagaaatgagtcaagtctggcaccca
-caaagttctcagcacatgtttgctacaGCCATCATCCCCGTCCCTGTCCTGGGCCCAGTG
-TCCAGGGAAGATGTGCCTCATACCTTCATTAACCAGATTTTGGCATGCATCTTCCCAGGG
-TCCAACTTCCGCCTTCTATGTAGTTCTCTTGGATTCTTCGGCTGGCAGCTTGTCACCACC
-GTAGTGGGCTTGAAGTGAAACACTAGGGGTAGACAGGAAAGGACAGGGAGAGAGTGAGGG
-TCCCGGAAGGCCTGAGGCCAGGTTCCCGGGAGTGCACCATTAATGAGAGGAGGGCCAGAC
-CCCAGCTCCACCCTCTGACTGCCTTATAATGTGACACTAGACCGAGGGTGAAATTCACAC
-CCTTCACTAAGCTCCCAGGACAGACTCTGGGCCTCAATATGAGGGAGGGACAAGCCCAGG
-TGAAAGCAGTAACTATGGACATGGACAGAGGGGAGGGCAGGGCAGCCAGGAACCCCGCTC
-TCAAATGTCCAGTCAGAAAGAGAGTCGGGAACTCCCACTCCTTGTGTCTTTCCAGTAGCT
-ACTgcagcacaggacagcagaaagaccagagtctggcaggcctgaatccaaatccctgct
-gtcccaccaacctggctgGCAGAAGGCCTGatggggtaggggttaagagcaagaactaat
-gagccagacagtccaagtttaaatccaggctctTggccaggcatggcggctcacgcctgt
-aatctcaacactttgggaggccaaggcgggcggatcacctgtggtcaacagttcaagatc
-agcctggccaacatggtgaaaccctgtctctattaaaaatacaaaaaatgagatggacat
-gatgatgggcgcctgtaatcccagctacttgggaggctgaggcaagagaatcgtttgaac
-tcgggaggcggaggttgcagtggtgcgagatcccgccactgcactccagcctgggtgaca
-gagactctatctcaaaaaatatatataatcataaaaataaatttttaaaaattccaggtt
-ctgccttctactagctgcgtgaccttgagcaagtcaaatgacctctgtgtccctccattc
-gtccacctataaaatgggaataatcatcacgcccacctcatagagtcttcctgaagatga
-aagaagttactataccttaaaggtgtttggaatagtgcctgatgcatattcagtgctgga
-tacacattaccagttgttactCTTACTTCTAGTGACCTGAGAAGTGGGACCACAACACCA
-GACGAAGGCACAGCAGCCACGCAAAACTCCAACTGGCTGTCTCTGAAACACTCTAAGGGC
-TGTGGTTCTGCCAGATAAGAGTACAGGCATTTGGGGGGCATATTCTCAGAATCCCTGTTT
-CCTCTCTGCCTGTCGTGCAATGACATGGGACAAATCGCCCAGGTGGATCCAGCTGTACTC
-TCAGTCCTCACCAAAATCCCTGCTTCAGGTACAACCCAGCTCATCTGGGAGAGATACTAA
-TCTCTTTAATAGATCAATGTCCTTCATCCTGAGAAATGCTGGCATTAACTATGGAGATGA
-TTAAGTAAATTAATTTTGTGTTTAATTTATAAATTACCTGTATATATCCGGTTTTTAGTT
-GTATTGTATAAGAGATAGAATGATTAATAGGTTAATCTTGTGATTCTAATTTTAAAAGTG
-TAAGTGGGATTTTGATTTAGATTTAAGTTGAAAGGTTTAATACACTCTTATTAGCTCCgt
-tgcccaggctggtgttcaatggcgagatctcggctcactgctacttctgcctcccagatt
-caagcaattctcctgcctcagcctcctgaatagctgggataacaggtgcccgccaccaca
-cccagctaattttttaatttttagtagagatgcggttttgccatgttggccaggctggtc
-ctgacctcaggggatccacctgcctcagcctcccaaagtgctgggattacaggtgtgagc
-caccgcgcccggccAGATTACCCATATTTAGAAGTTTAAGTATTAGATATACAAGAATTA
-TGTAAATACCCAATGGTTTTTGTTAATCAGACAAGTGAACCATTTGAAAATGAAAATGAA
-TACGTTAAAATTTAAGATGTGGCTTAAAAGGTTTAGGAGAATTTAATTAACCAAGTTCCA
-AAACCCCCTTACAAGTGTTTATAAAAATTGTAAGATTCTTAAGTTGAATTTAAATGCTTA
-AGGAAGATTTGCAGTTTTAATAATGAGGATTTATTTTCATTATTGGTAGTAGCCCTAATT
-TATCtttttttaaattaaatcttttattacaagatagttcagattcacaagcagttttaa
-gaaataatacggagGggctggccgtggtggctcacgcctgtaatcccagcactttgggag
-gctgaggcatgtggatcacctgaggttaggagttcaagatcagcctggcgaacatggtga
-aaccccatctctactaaaaatacaaaatttagccaggtgtggtggtgcacgcctgtaatc
-ccagctacttgggaggctgaggcaggggaatcgcttgaacccgggagttggaggttacag
-tgagctgagatcacaccactgtactccagcctgggtaagagagacagagagagagagaga
-ctctgtctgaaaaaaaggaaaggaaaggagaggagaggagaggggaggggaagggagggg
-agaggaAAAGGAAAAGAAAAAGAAAAAGAaaaagaaaggaaagaaaaggaaacagaggta
-gtctatgtaccctttacccagtttctcccagtggcaacatcctgcaaaagtacggtacaa
-tatcacaaccaggatattgacattaagatgagcaagatataggactttcccataaccaca
-aggatcctgcctgtcgccttctacaaccacacccacttccctccccttaccaccctcctc
-acaactctgtccctaacccctgcaatcactaatctgctctccatttctataattttgtga
-tccccagaaggttatataaatggaatcatccagtatgtaactgtggggattggctttttt
-ttacttggcataattctctggagattcatccaagttgttgaatatatcaatagttctttc
-ctgtttatcgctgtatagttttccacggtggggatacaccataggttgtttaaacattca
-cccactgagggacttcaaggttgtttccagttttgaggaattatgaacgaggctgctatg
-aacattcacatactggcttttgtgtgaatataagttttcatttctctggaataaatgccc
-aagagtaaaactgctgggtcggattactaggaagtgcatgtttcatgttgttagaaatgg
-ccacacttgtttccagagaggctgcatcattttaccttcccaccagcaattgcgcacaat
-ctgacgtctcctctttgctagcatttggtgttatcactatttttttattttagccatttc
-gataggtgtgcagtgatatctcactgtggcttaatttgcattgccccaatggctaatgat
-gttgaacatctttttaatgtgcttatctgacatctgtatatctgctttggtgaaatgtct
-cttcatgtctttttcccattgcctaactgaattgtctgtttcactgttgagtttttactg
-ttactgatatattctacatagtagtcctttgtcagatacatggtttgcaaatattttctc
-caagtctatagcttgtcttttcatcctcctaaaaaggtctttcataaggccaggtgcagt
-ggctctcacctataatcccagcactttgggaggctgaggcgggcagattacttgaggtca
-caagttcgagaccagcctgtctctactaaaaatacaaaaattagccaggcatggtggcac
-acgccttcagtcccagctactcgggaggctaaggcaggagaatcgcttgaacccgggaga
-cagagtttgcagtgagctgagatcgcaccactgcaccctggcctgagcaacaaagcgaga
-ctccttctcaaaaaaaaaaaaaaaaaaaaaagtctttcacagaacaaaatttttaatttt
-gatgcagtccaattcatctatttttcttttatgggtcaagcttttggtgtgatacctaag
-aactcttcacttggccctaggccccaaagatttttctctcctgttttcttctaaaagttt
-ttcagtttcacattttacatttaatttctattttattttatctttgagctaatttttata
-ttcgttgttaaatcatttctttctttttctttttctttttttttttttttttttttttgc
-ctatgggtgtccaattgctccagcgccacccatggaaaaggctttcttcctccactgaat
-tgtttttccactttctgaaaaacccattgggaatattggtatggatttattccCTTTTCC
-TCACTGGGAAGTGTTGGCAGTGTCCAGCAGGTAGCTGATCCTTCATTCCCTGCTTGGTGG
-TGCTGATTccccaactgggatagtgctggcagggatgagtggggaggtcatcttctaacc
-cccacctggcagaagacagtgctctgactctctctctagggtagtgtcaacagagtctag
-cagtgacaagatttcatgaagtgtcatgaggtgggactcatcacctctgggcttcactcc
-cctcccccagcctacctatgtcagtagagcctggtgggagcctgagcctctatccccacc
-cagcatcagtgaggtAAAATAAGGTAGTGAGATGCAGGGCAACTTGGCATTCTACTCTCC
-CATCTCCTTTCTGTGTTTCAGTGTTGCCCACAGGGGAGCTGATCTAACATTACTTACTCA
-GAGGCAATGAGGTGGTATGAGTGATTTTATACATAGAtgtatacataagtatgctagatt
-gtctatgaagttcatttcaggataccaaagaaatattacaaaatatttgttattaattct
-cacaacaatcctaggtggtattagtgtccccatttcacaaatgagaaaaccaaggctcag
-agagatgaatgatttttccaagtgagtaaatggcagagccaaaatctgaccccatgtctg
-cctgagcctgacccaaggccTCGGAACTCCCCTGTAAAGCATGATAATGAtgtggcagag
-tttattctacgatttcaccaaaccttgttttcttttcctcctggaaaaacagatggacta
-catttcccaccttcccttgtggttagcagaggtcatgtggctaaattatggcccctgaaa
-catgagtaggagtaacatttgtcacttcaaatctggaccccccccaaaaaaaatgcccac
-ataattgtccatgttcttgttctctctcttccctctatgccagctggatgcaaaagtatc
-cagcagaagacttcaagaccttacaaaatatcagacccacaaggtcaaaggaacctggat
-ccctgaatgaccatgtggaacagaatccctccttcctcagatccacaaatgtactgtggc
-ataaatgagatataaacttctatatcaatacttgcaatttgggcattgtttattacatca
-gttagcctaccctaaTATAAGTGGTGTCACCAAGAGCCAAAAGCAGCCACTCTATCCTGT
-CTCCAACCCCCACACCAGCTCCCAGGTGCCTCCGCCCACCTGGTTGGACCCTAGTCAAAG
-TCTTCATTTTGCTTGTATGAAGGCTGTTGGCTTGTTGGACTGGAGGCAGAGTAGATGGCT
-TGGTTTCCTGCTTGGACTGCTGCCATGGAACATAATCCTACAAAATATACAATCagtcac
-atagcaccatgagtttatatcccagctctacccttttcagatatctgtgaccccaagcaa
-gtgacttgacctctcctgagcctcaatcttctcatctgtaaagtggatctaataataaaa
-cctacttctgtggattggcgcaagaattctgagagatatttatgaagcatgtggtaagtg
-ctccataaatgttagctatcactTTTTTAAATCAGCCAGCCAGAATTTACTAAGCACATC
-CAGGCTGTGAGGTGCTAAGAACTGTGAGAAACAGAAGGCATGGAAAAGACGCAGACATCC
-ACCCTCAGGAAACCAGAGCAGCAATCAGATGAATAAGAGAGCAGCATAATATACCCTTAC
-ATTCTGATAAGACAGTGagaggagaaaaatgaggttctgaggcttgctctgggtcccaca
-gcaaagtgtgacccggctgggactggaattcgggtctccagcctATATCCGCGGAGCAGT
-CACGACCGTGAGAGTGGAGAGCAGGTGGACTGCAGGGCCAGCGAGCCTCCCACCCCAGCC
-CTAGTCCCCCAAGACTCACCGGAACCTGGAACTCCTGGACTATGGAGTGAGTCCCAGAGT
-GCTTGGGTCTGGAAAGAGTTGGGAAGGGAAAGAACTTCCATTATCCCCAGCCCAAGGGGC
-AGCAAGCAGCAATTCGAAACAGGATTGGAGTCTCGAACCAGAAACTGCAGTTTACCGGGG
-ACAATAGCCCCGCGGGAGTGGGGCGGGGCCAAGGAGATGTGGGCGGGGAGAGGACGGGGG
-TCAGAAGACCGAGGGCGACCTCGAGGCGAGGGCGGGACAGCGGCGGGGTGTGAAGTACGC
-ATGCGTATTCCGCCTTTCTTCCAAtttttttttttttttttttttACCTACTTTTGTAAG
-ACATGCGCCATTGGGGAAAATGGAAGAGAAGTTGCGAGTCTGTGAGACCCTGATCTTCTG
-GTATAACTACTCGGCTTTTCCAACTTCCTTGTCTCAGTGTAGATCGCGCGGTAACCCAGG
-CCACTCAGAAGTCCCGAGACCCGATGCTTTCGCCAGCGTCTCGGTCTCCAAGGAAACGCG
-ACGCCGCCTACCGAGCGCCTAAAGGGACTAACCTCTCAAGGCAAAATCTAGTTCGGCCCG
-CTTTTCAATTTTCAAAttcccttcagtttgctctgcccataatcctaaaatatgatatca
-tatttctccactctcatcaaacttccaccatttccttcgccatcttcactcttggctaat
-gagtttgcttccaattttactaagaaaattgtgggaatcagtaaacccacaagttcatgg
-catcatttactcgcctacttgcctccctcccgtaactacgtataaactgcctactaagac
-caattcctacatttatgcaccgaatcctatcctctcacgttttctcaaagatattggccg
-agcagttctccccgttttttcctcctcttttctctctcctttgtatcatcagtataccaa
-cgtatttttaaatttcttctatttaaaaagattgtccacagccggacacggtggctcatg
-catataagcatgagagcactttgggaggccagaggtgggaagatcgcttgagccagaaag
-gtccagtctgcagtgagccacgatccagccactgcattccagcctggttgacagagcaag
-accctatctctaaataaataaacaaaccacttcccctccagccagctcccatttctgctt
-cattttaaagcaaaactcctagagaggtttgcctactctgtttcccatttttttccctcc
-tctcaatcaggctttcactccccactgaaactgccctcgtcaacatcattggtgacctcc
-actttgctaaaccccatggtcacttctaggtcctccctttatttggcctgtctgcagcat
-ttgacacaacagatcactccctcccctgaaacactttcttaacttagtatccaggaaacc
-actcttgagttgcttcctgcctccttttcagtctcctttgctggttcctcctcttctccc
-tttatcattgtagtatcccaggactcagtcccagccccctcccttccagtctcatggttt
-tgaataccatccgtacccagatgcctctcagactcacgtctccatcctccccctgaattc
-cagccatgtacatccaactgcctgcttgggccccttataagcaactctaatgtgcaatat
-ttttccagaaacatttttcccgaacttaaaatagggcatctctcttcttggaatcatcct
-taactcatctcttatcccacatccatcagcagatcctgttgcaataacttcaacgtatat
-ctggaataggaccacACATACACACACACACACCCCTCTTTCCTTTTGTACCCCAACTAA
-AGTACTAGTTCCCACCCTTGCCCTACACCAATTCTCTCTCTACACACCAGATTTGCTAGA
-TAGAGCACGGATTTAAAAGAGAATTCCAGTTTAAAAGATAATTGGGCGGGAGCAATAATT
-TTAAATCACTTAAACTTCAATAGGGGAACATTGCTATAGAATACCATGTCAGAGCTCCCA
-ACCTTTTCTGCCTCTTAAAAATCACAGGAGAATGTGTTTAAATGCACTGTGGTAAATAGA
-AGCAGCTGCTAGGATAAAAAGCAATTAGCCCAGGTACTCTGGCTATTCAGGCCCCTCCTG
-GCTGACCCTAGAGCTGAGGGAATCACTGTGTTGGGTACCCTCATTTGCAGAGCACACCAT
-ATGACAGCACTCTTGCTGGGCAACTCTGTACCAGGAAACCATTAAAAAGTAAAAGATAAA
-ggccgggcacggtggctcacgcctgtaatctcagcactttgggaggccgaggcagatgga
-tcacctgaggtcagaagttcgagaccagcctggccaacatgatgaaaccccatctctact
-aaaaatacaaaataggattagccaggcgtggtggcgggtgcctgtaatcccagctacttg
-ggaggctgaggcaggagaattacttgaagcagggaggctgatgttgcagtgagccaagat
-cacgccactgcactccaacctggacaacaataatgaaactccatctcaaaaaaaaaaaaa
-agtaaaaGATAGGAATACAtgacagatccaggtagtgacttactcaacagccattcctcc
-ccatcatcgcaactattggatcctgatcttgtccatgtatgcacttgccttaatggaggc
-aggccccaggtccagccctagtcctagtcccagctccaatagtcatgactgtctgaggct
-ggacttggtgagccaatttccctttccagttagaggtctagtcatagatacatgatgaaa
-gtctggctaagaagacaggatgagaaatctactcaaaggcttttgggaaaggttttcatc
-acacttttaaaaaaaggcattgcagaaaaacattccttcatctgctggtagacattgtca
-tatctgtgtgggattcctggaatcgcggaactgtgaggggagttggccaaagaggatata
-cagtgaatggtagagaggaaaatgtaaaaaccttcttccttgatagcactgttgagccat
-taaattaaccaaccctagcctggcacaatagtatgtgcctgtaataccagctacttggga
-agctgacgcaggagcatcgcttgaggccaggcatttgagatcagtctgggcaacatagtg
-agaccacatctcagaaaaaaaaaattttgttttaattagccagatgtgatgatgtgcacc
-tgtagtctcagctacttgggaggctgtggtgggaggattgcttgagcccatgagtttgag
-actgcagtgagctatgattgtgccactgcacgccagtctgggcaacagagtaagattctg
-tctctaaaagaaattaattaattaaattaacctttcacctatctagaaaatacttgagat
-taaataagaaatcacattactgggtgagcaaatttgagttgagttttctggtacttgcag
-accaaaagcattttactgaACCCTACGTCtggaggaacaacaagatagaaggaacctggg
-tgggtccctgacaaccttgcaggagaaagtcacctacctgtccttactgcctgccaaatt
-ccgagctgcttcatcaaagagaaataaacctccaccttgtctgagaccctgtatttgaga
-gtccctttgttacagtagcttaacctgtaccttgattaatacaAAGAAGAGCTTGGCCAC
-TGTCAGACAGCCTTCCTCATCAGACATGCTGACCCAGCATGGACACCCACTGAGAGCTGC
-CTGTGCCCCACATCTCAGGTACTTAACCAGTAATATTACTGCCTCCCACTTCAAtttttt
-tttgtttttgagacagagtttcgctcttgttgcccagactggagtgcaatggcatgatct
-tggctcaccacaacctctgcctcccgggttcaagtgattctcctgcctcagcctctcgag
-tagctgggactacaggcatgcgccaccacaaccggctaattttgtatttttagttgagac
-ggggtttctctatgttgctcaagctggtctcgaactcctaacttcaggtgacccgcccgc
-cttggcctcccaaagtgctgggattacaggtgtgagccaccgcacctggccCCACTTCAA
-ATTTTTAAAAAAAATACATAAAAACATTTGCAAAAATGCTGCCATCTTAATCAAAGCCAA
-AACACACTTGAGGGGCCACTGACAATCACCTGTAACAAAGCTGTTGGAACTGGGATTGAA
-TCAGATGGGGTCCATTTGCACTTACACCTGTTCAGGTGGCATTTCTGTGTTCACGAACAC
-CTGATGGAACTTCCTGCCCCCAGGATAGGTGGGCAAGATGAGCTGGCCTTTCCTCCCTGC
-ACATGTGAGGTGATAAATGTGATAGAGGGCCTCTCAGGCCTGCTTGGCTCCAGGCTCAGC
-AATGGCAACCTGGGCTCTGATTCCATCAACATCTTGCTGAGAGGTGGACTAGGCTGAGCA
-GGCAGTCTCGGGCTTCCATCCATGTCATTTGATGTGCTGGCTTTGTGGCAAATGTGCACA
-GCATCCTAAACCCACAATCCCTACTGTTGTCACTGGGTAAGATGCCGTGGTTCTTGTGGA
-GACACCTGCTATACTCGACATAACAAGATCCTAGACATTCCTTCTTATCATCTGCACAGC
-CCTCCAGAGCTGCTCTCTCCATACGGCCTCAGTGCCCATCCGGACTGCTCTCCTTGCAGG
-GTACCTGCCTGGCCCCTGTAGCTCCTGATGTAATAATCTCTGCAAAATTTGACCTGGAAA
-AAATGAAACTGACCAAAAGGATGGCCCTACACATACCAATGAAATTGTACAACAGAAGAA
-GATATGATTAGCAAAATTGGACATGGAGCCAGAACCTAATCCACAAGTCAAATATTTTCA
-AAATACAGACAGATGCCTTTAAAGTCCAACACAAAACAAAAATGCTCAAAATACGTTGat
-tatatgagagttcctgactagtgcagtaagacaagaaaaagtataagatttgaaaaaaga
-gacaaaaccttcattattcacagacgatatgattggcaatacagaaaagtaaagagattc
-caaaaaccactggaaattttttaaggtttcaactttgttgccagatatggggtcagtaca
-caaaattcaatcgtgtttcctctaacggacaccaacaaaccatatgtaacttctgattta
-caataatttcacttacaatagcagtcaaaccacgtggtactttggaataaatccccaaaa
-gtatgtaagacctttatgaagaaaactataatattttattgaaattcataaaataaggcc
-taaataagtgagaaatcaagtggggtcattgatggaaagactccgtgttataaagtggta
-attctgtacaaatgcagtgcaacgccaattaagatctcatagtttcctggaacttagtag
-gcaggttgtgaaatttatatggaggttccaaatatagctgagaccatcttaaagaagacg
-aaAGAGAGAGAAGAATGtttcccataaaagaagaaactggagttcagatttctctttgga
-aactgaaagatccccccacagtggaccctcacttctggagaggaatattcagctacagtt
-gactagcagttgccccttcagatagaatattcgatctccagttcacccagtatatcttct
-acttaaggcacctgcctgacccttgcagatatttgattatgtgaTAGTTACCTGGAGTGA
-GGGCTTAAGATAAGAGGAATGGAAGAGATTGTTTAAAATACATCTATTGTTTGGTTGTGT
-AAGTATTCTCCTCATGGTGAAACTTGACCAGGCAAGTAGAAAGAATAACAGAGAAGTATG
-TGAATCTAagacattgatgtttctggtaatggtgaagttccgagtatgatcacgggaatg
-cgtggctgagaagggataaaggaaatggtgcctgaggatataaagtgagaggactggaaa
-gTGCAAACGGCCCAAGTCAGTGGCTCCCCTGAGACCAATACCAGCAGTTGGGATGAAGGG
-AATCTGCCTGTTAACAAGGTTTCCTAGGATCTGATGCACAGTTCTTGATCCACGGCGTCA
-GAAATAAAGTGGTTAAATAAATATAAGCTACCggccgggcgcggtggctcacgcctgtaa
-ccccagcactttgggaggccgaggcgggcgatcacgaggtcaggagatcgagaccatcct
-ggctaacacggtgaaatcccgtctctactaaaaatacaaaaaattagccaggcgtggtgg
-cgggcgcctgtagtcccagctactcaggaggccgaggcaggagaatggcgtgaacccggg
-aggcggagcctgcagtgagccgagattgagccactgcactccagcctgggcgacagacca
-agagtccgtctcaaaaaagaaagaaagaaagaaaTATAAGCTACCTATACGTGGGGCTGC
-CTATTAACTCCGCcaagtgacttaactcctgcctctttatctgtaaaatgggcataatta
-cagcattgtttttggaagattccatgtaataaagtctgaagtgtgcttaacacagtactg
-ggaacttaagcagcactcaCACTTCATCCTAAATACGACGAAAGTCTTTTCAAAAAAATA
-AAAATTAATGCAATATGACTTACTTGGAAATGTATCAAAAAATAAAGACCGATGAATGGA
-TCGAGGCGTAGTGTGACAGAGTAAAATTTTAATGATAAAAAGTTAATGGTAAAATGTTCA
-CTGTAAAACTTTCAACTTTTCTTCTTGAAAACGTGCATAATCCGACGTGGGAAAAAAAAT
-AACGCATTGCAGTCAGTTCTGGGGAAACGGAAAGCTAAGTTTTAATTTTGCTATTGCTTT
-TGCTTTTTTAACAGAAAAGGTACAAAAAAGAAAAAATGGGAGAGATGTTGCCGAACTCCG
-TCCCGCCTGTGGGCTGTGGGCCGTTAGCAAAGCTGCTAGCATGAAATCGTCGAGCACCGC
-TTGCGAAACGCCAAATCCTCGAGAGCGAGGCCGGAGGCTGCCAAACCCGCGCTGGGGAAA
-GGGCCGCCTCCGGGCGCCCCATCCCGCTGCGGACGGAGGTGAGGTTGGAGCGAGCGCTGG
-CGGAAGAGAGGCTCAGCGCAGGGGGCGCAGAGCCGGCGCTGGCCAATATGCGCCGCATGT
-GATACCTTTGAGGGCGCGGCGGGGGAGGGTAGCGTCAAATTTCAAAAAAAAAAAAAAACC
-AAACCCACACAgccccggcgggcgggcgcgcgcgATGGGCGCCCTTTGGCTGCGGGAGCG
-AGTGGAGGATGCTGGGAAGGAGGTAAAATGGCCACCGGCGGCGGCGCGGAGGAAGAGAGG
-AAACGGGGGCGGCCGCAGCTTCTgccccccgcgcggcccgcggcccggggcgAGGAGGCC
-GACGGCGGCCGCGAGAAGATGGGCTGGGCCCAGGTGGTGAAGAATCTAGCCGAGAAGAAG
-GGCGAATTCCGCGAGCCGCGGCCGCCGCGGCGGGAGGAGGAAAGCGGCGGCGGTGGAGGG
-AgcgccgggctcggcggccccgcgggcctggcggcgccggACCTCGGCGACTTCCCACCG
-GCTGGCCGCGGGGATCCGAAGGGCCGTCGGAGAGATCCGGCCGGCGAGGCGGTGGACCCC
-CGCAAAAAGAAGGGCGCTGCGGAGGCGGGCAGGAGGAAGAAGGCCGAGGCGGCGGCGGCC
-GCCATGGCGACCCCGGCCAGGCCCGGCGAGGCCGAGGACGCGGCCGAGCGGCCCCTCCAG
-GATGAgccggcggcggcggcggcaggcccgggcAAGGGTCGCTTCCTCGTCCGCATCTGT
-TTCCAGGGAGACGAGGGCGCCTGCCCGACCCGGGACTTCGTGGTAGGAGCGCTTATCCTG
-CGCTCCATCGGCATGGACCCGAGCGACATCTACGCGGTCATCCAGATCCCGGGCAGCCGC
-GAATTCGACGTGAGCTTCCGCTCAGCGGAGAAGCTGGCCCTGTTCCTACGCGTCTACGAG
-GAGAAGCGGGAGCAGGAGGACTGCTGGGAGAACTTTGTGGTGCTGGGGCGGAGCAAGTCC
-AGCTTGAAGACGCTCTTCATCCTCTTCCGGAACGAGACGGTGGACGTGGAGGACATTGTG
-ACTTGGCTCAAGCGCCACTGCGACGTGCTGGCCGTGCCGGTGAAAGTGACCGACAGGTTT
-GGGATCTGGACCGGGGAGTACAAATGCGAGATCGAGCTGCGCCAGGGGGAGGGCGGGGTC
-AGGCACTTGCCAGGGGCCTTCTTCCTGGGGGCCGAGAGGGGCTACAGCTGGTACAAGGGG
-CAGCCCAAGACATGCTTTAAATGTGGTTCCCGGACCCACATGAGCGGCAGCTGCACGCAG
-GACAGGTGCTTCAGGTGCGGGGAGGAGGGGCACCTGAGCCCTTACTGCCGGAAGGGCATC
-GTGTGCAACCTCTGTGGCAAGCGAGGACACGCCTTTGCCCAGTGTCCCAAAGCAGTGCAC
-AATTCCGTGGCAGCTCAGCTAACCGGCGTGGCCGGGCACTAAACACCCGCCTGCCTGCCA
-GGGTGAACACACAGCCAGCTTATCCCTCTTAAGTGCCAAAACTTTTTTTTAAACCATTTT
-TTATCGTTTTTGAAGGAGATCTTTTTAAAACCTACAAGAGACATCTCTCTATGCCTTCTT
-AAACCGAGTTTACTCCATTTCAGCCTGTTCTGAATTGGTGACTCTGTCACCAATAACGAC
-TGCGGAGAACTGTAGCGTGCAGATGTGTTGCCCCTCCCTTTTAAAATTTTATTTTCGTTT
-TTCTATTGGGTATTTGTTTTGTTTCTTGTACTTTTTCTCTCTCTCCTTGCCCCCCTCCCG
-CCCTCCCCGCCCCATACCTTTTCTTCCCCTGGATTTTCACCCTTTGGGctgccttgctca
-tctttatgccccagcactaggtacggggcccaacacgtggtaggcactccatcagtgttt
-gctgaatTGAAAACATTGTTGACTGTGGCTTCTATCAGAGTGTCTACCTTTTGCAGCTCT
-TCCCCTCCCTCATTTAATTTGCTGCTTTTAATCTACGTGGTCTGAGAATTTGTGAAACCA
-GTGTTGTTAGAAGTGTATATAATCTGAATCAATAAGCTCTGAATGGTGGCCAAGGGCCTC
-TCTTATGGCACAAAGATGCATGGACTTCATGACAGCTCTTTTGGTGGCTCAGAAGCCATT
-TTTTATAgaatcatggaatctagaatattcctgctggaaagaacctgagagttggtttgg
-accaattccctggttttccagcagatgaaacaggcccaaagaggttaaatgactgggtga
-aaatcacatagctgtctggtgccagagccagcctatagtagagtcccctgaccccaagcc
-cggtgctcattccactACCTCTCACACTTCACAACAATTTCCTCAACACTTGAGGGCCCA
-GAAAGTCTGATCTCTCCAGAATGATCAGCCCAGAGGAATGCTGAGAAATCACCTGGAGGA
-GGGAGCAGAAAGAGAAGGTTTTTAAGGAGGGGCTTCTGAATACTTGGGAGATACGGAACG
-GACCAAGGACCACACTCCAGGGTGCATTCGTTGCTCCCTGGGGCACCACTTCTGGATTAC
-AGTGTGCCAGGTCCTTTGGAGGCCCTACCCCTTCCCCATTCATTGCCACCAGTGAGAAAT
-GGGGGTGCCCCTGTGTAAAGAAACCTACCAAAGGTTTACATTTGCACCTTAGCCTCAATA
-GCTACGAACCCTAGAGAAGCAGCTAGCTGGAGCTCATGTGCAACTCCTGATTCTCAGGAG
-AAAGATGGATTTTAACCCAAAATTATGAGTGAGCTGTTAACTCTAAAATGTACTTGGGAG
-ATAGGCCAAGCGAGAGGTCATGGGCCAACTAAGTGTTATCCAGTAGAAAAGACAGTACAC
-TGCTTTTCTTTTAGTGTTTGCTTTTCCTTTGCTATATGTTTTGCTATTTCCTTGTGGCTT
-AGAATGTAAAATTGATTGTTAAAAGTTTTGTTCTGAATAAATATTTATCTTTTGTATTGC
-TAAAACTGGTGCACTATTTCCTTTCAAAGTGTTAGATGCACAGTTACCCAGCTCCAGACC
-GTATTTCAATCCCACTTCCCCTACACTCCATTTGTTTACCTTGCTAAATACATTTCCCAC
-CCCTGCAGGCAACACTTAGCACCTACTACGTTGTGCCGGTCCCTTTGCATCACAATCAGC
-ACACTGTTAAAACGGGTTTTaagtcctaacacagttccaataaatcagaatcactgttag
-aggaagtgaaacattttagttaatcatcctcaagcaattctgatgggcagccaggtttga
-gaCCAGAGTATAAGATGTGTGAGCTGAAccctgccctcagggagattacagacctgtggg
-aaagagagGTGGTTTGCCAGCTTCCTCGTCTTTCTGTTACTGTAAGCGCGCGCTGTGGAT
-GGGATGCAAAATATTCTTGGGTTCTGGGAAAATGCCATTTCTTCCAGCTGTTGAAAAAGC
-GGGATCCAGGGAGCTGACTTCTCCAAGTTAGCCCCCACTGGAGACTGGGCCTGCAGGCAG
-AATAGGGTCAAGGTCCCTGGACTTCAGGTCCAATACCCTGCAGACCCCAGATACAACTCT
-CTGAAGGATTTTCCAGCTGGTGATGCTAGGATGATCTGATCCTGAGAGTTAAACGTTCCC
-AGTATATTGACTCTGACTCAGTGATTTGAGGATATTTCCAGAGCTGATCTGGAGTTGGGA
-CCTGGTAGGCTCTTGGGAATCCTGTCTTTCAGAGCCAGTTCAACCCCTCTCCTTGTCTCC
-CAAAGCAAGCAGACTCTCCCCTCCCTCCCATCCCTCTTTCCCGTCTTTGCCAGCGGTTTC
-CCTCCCTCTCACAGAGCTGGAGGCCAGGGGCCAGGAGAAAGCCTGCATTCACCATACTCT
-CCACTCCGTTCCTCAAAGCAGGCACTGTGCCAGGGAGCCTCCTTGAAGGAACCTTCCCTC
-TCCTGGCCCCATCCCCCCACTCTCCAGGAGGGAGGAGAGGAAGAAACTGTTTCCCTGCCC
-ATCCCCCACAGGATCTGCTTCAAGGCCTCCTGCCTGGTGGCCCAGGGACAGCCAGGGGCT
-GGAGCTGAACAAACCTCCCCCAGCTTCCTTTCCTGATCAAGCAGCCCTCAAATTACAATT
-CTTCACTGTTTTTGGGCTCCTGGAAAGTGTGCAGAGATGCCCGGACTGAGGCTGGTTGAC
-TAGGGGACATTGattcattccacttcaacaaatacggagggcattagagctgggccccat
-gcaaggccctctgcataggctgccttgaacaagacagTGCACTTGCAATGGAAGGTACAG
-ATAAGTAACAGTAGGCAATGTTTACAATCATATATTTAACAAtttttttttgagacagag
-tctcactctgttgcccaggctggagtgcagtggcatgatcttggctcactgcaacctcca
-cctcccggattcaagcgattcatgtgcctgagccttccaagtagctgggattacaggcac
-gtgccaccacgcccggctaatttttgtatttttagtggagatggggtttcagcatgttgg
-ccaggctggtctcgaactcctgacctcaggtgatccacctgcctcagcctctgaaagtgc
-tgggattacaggcgtgagacaccgcacccagccAACATTTGTCCTGTatagaattgtctg
-aagtaaaggtttccctagaagagaaaacgtcctgactgaaacctgcaagatgagtaagaa
-ccaggctaagagtgaagagacagccaagcagcagaaatagcagatgtagaggcctggagg
-ccagagagcacacagcgtgttcggactggccaagagtcaggggaagatgtggctgggaga
-aaacgccgagaagagGTGTCACAGGGCTTACCAGCCATATTTAAAAACGTGGATTTTGTC
-CTCAGAGCCTCCAATCAGGCCTCCTCCATTCCattcattctttcaacacatgcctgttaa
-gcgccaactctataggggccttttctaagcgatggaacacagcatggagcaggataatca
-agtccctgaagctcagattctagagtcacacaagtacataattacagacgatgatgcact
-aaaagaaacatacagggtgagatccctgtttaacaagcaaagctgatccagtcttaagga
-tcagagaaaatgtttgaactgagatggaaaagacataaaaggagttaatcgagagatggg
-gctggggattaagggatggcaagggtattaacctaggcaagagggatagcaagtaaaaca
-accctatagtgggaggaggcatgaccacttctagagacTAAATGAATCAGTCTAAGTTTA
-GAAACAGAAACCACTCTTGCTGTTGAAGAAAATGCTGGTCCCTGGGCTGGGTATTAGGAA
-TGACTCCTAGAACACCATAGAACTGCCAGGGGAGTTACTACCTCTCACAGTCAGAAAGAC
-AGAAGCCAGGAGGCCACCACTGGAAAGGCTGAGCATGAGGACACAATGGTGAAGCTGCCA
-CCCAAAGACAGGATCCTGGGATCAGAAAGTCACTGCCAATGCCACTGGCAGGACAGTGAA
-ATGCCAAGTCCTTTCCCTGCCTCTACAAAGCCAGGGACTGTGCACTACTGTCTCCGCAAC
-CATTTACAGGTAAAAACAGCCCAAACTGTCTGGCTTACTTATGCCTCCCTTCCATCTTTT
-ATGCAAATACATCTAAGTGCTAGAGCCCTAGCTGCAAGGGAGTTGGGAGATGTTTTAGCT
-TTCCAGCATCCGCAACATAGGAAGGCACATAGAATGGGGATGGGTGCTGTCTGTCAAAAG
-ACAATATCCAGCACAAAAAATGTGACTGCAGTGCAGAGAAGAGGAGCTCGTGGGagcatc
-tggtaggccatgttaagaatgtgggtctaagaacgatgtgccattgaaggacttgcaagc
-aagagagtaacatgattagattggttatgttttacaagcatcattcaggatagttggtgg
-agactgggtcagaggagagcccaaggggaaatacagtatagttcacccaggtctctcgag
-agatgaggacatcttaggcatggaaggcggagatgtacagagagaaacagccgagtaaag
-aaatctttcagagtttaagtcaacaagatttggagctatatttgacatgggctgggagaa
-agttaagtaccaaggatgttgcccaggtttctagcttctgcagttggatggatggtgggg
-cttttccctgagatgcgaaacagaagagaaaatccaagtttagggtgaagggcttgaatt
-tgattttggatatattgagtttaaggtctccgtagaggatatctaagaggagatgtggag
-taggcggttggatacacacagatcttacattcctaggagaattctggccctgagaaataa
-acacaggagttgtacagcTgtggctttcaaactgttttaccacatcccacagtaagatat
-atattttacattgcagccatcatacatatgcatgtgtgtatttatatctaaatctgaaat
-aagcttcctcaaacaatatttgccctgtgcatgatgcaccttgacactttctattccatt
-gcttcatccttttgtcaatgcttatatgacgtgttaaactgatttcacactctcctaatg
-gTCAAGAGAGAAAGCAGAAGGAAAGATTATACCAACTAAGATTGTGCCTCAAGCAACTTT
-GACACAGTTTTCCCTGATGgaaaaggagatggtgaaaaactaataagggacagccagaaa
-gggagaaggaaaaccagaacgtgcagaaacacataaaccaagggaggacatttcaggtgg
-taggggttaacaattgtgtcaagggctgcaagaaatcaagtaaaatcagctctaagaaat
-gtcaattgAggccgggcgcggtggctcatgcctgaaatcccagcactttgggaggccgag
-gcgggcggatcatgaggtcaggagattgagaccatcctggctaacacagtgaaaccccgt
-ctctactaaaaatacaaaaaattagttgggcgtggtggcgggcgcctgtaatcccagcta
-ctcgggaggctgaggcaggagaatggcgtgaacccaggaggcggagcttgcagtgagctg
-agattgagccactgcactccagcctgggcgacagagcgagacgccgtcaaaaaaaaaaaa
-aaaaTgtcaattgagatcagaactgaagagtgccctaggattgagtagtgtggaggttat
-caataagggccttttagaggaaagtgatgggggcagaTTAAGGAGCAAATGATCTTTCTA
-AGATGTCAATCTGGCACGCTGACCATTTTATTCCCATGTCACGTCCTCTGGGACTCCCTT
-GTGCACTTGGAACCCAGCCTGGTACCCGATCCCTTTCACAAGAGGCTCCTGGACTCCTTT
-CCAACCTTACTCTCAGCCAGATTGCCCATTACATCCCTTTATGTCAACTCCAGTTACGGC
-TGACAAACAGCAACCAGAAAGAATTTTGGAGTATGGAGTGGTACAAGACCAAGCTAAGGg
-gccaggtgcaatggttcatgcctgtaatcctagcactttgggaggcctaggcaagtggat
-cgcttgaggtcaggagttcgagaccagcctggccaacatggtgaaatcctgtctctacta
-aaaatacaaaaaaaaatagccatgtatggtggcatgcacctgtagtcccagctactcagg
-aggctgaggcaggagaactgcttgaacctggTGATACAGGAAGGGAAGTGCTGGGAAGGG
-AAGGGCACAGTCCCTTTAAATGACATGGAAGGGAGAAagggcgtggtccctggctagggc
-tccaccccagcctgtgcccatggacctaggtgaggacaggcatttttgttttcctgccca
-aatgttgcatttcccaagaccaccctggccggccacgcccccatcctgtgcctataaaaa
-ccctagcaggcagacacacaggtaactggacggctagaggagcacatcagtggaggaaca
-cacaagcggctggacgtcgagaggaacgcaccgacaggcactgacaaaccagcacaccac
-aggccatcgaccaacagaactatgcagagtttggctggggcagtcggaggggagcctggg
-ccactgaacagtccaactccaggggaaaaccttctcactccatccccttctggcttcctc
-catctgctgagagatacctccactcaataaaaccttgcactaattcttcaagcccaggtg
-tgatccaattcttctggtacaccaaggcaagaacccaggatacagaaagccctctgtcct
-tgcaacaaggtagagtgtctaattgagctggttaacacaagccacctatagatggcaaaa
-ctaagagcatacggtagcataagcccattggggcttcaggagctgtaaacatccaccact
-agacactcgtggggtcggagccccacaacctgcccatctgtatgctcccctagaggtttg
-agcagcgggacactgaagaagtgagccactccccttgtcacacgccctgggacggggaca
-agggaacttttcccgtttcaGTgggaggcagaggttgcagtgagccgagattgtgccaca
-ctgcactctagcctgggcaacagagcgagactccatctctaaataaataaataaaaGGAC
-CAAGCTAAGGGTGAGGAGACGTCAGATCATGCTGAGTTGAGGGTGGGGGCGCCACAGGAG
-TGCACCAAACGTGTACAAAGGCACTGATACATACAGCCCCATTTGCTGGCTTGTCAATGT
-GACTAAGATTTGGGGTAGGACATAGTAAAAGAAAATAAACACAGATATATTATGGAAAAG
-AATGTAAACTTTGCAGAGTTTTAAATAAAATATGACtttttttttttttgaggcagggtc
-tcactttgttaaccaggctggagtgcagtggctcactgcgtggctcgctacagcctacaa
-ctcctgggctcaagcaatacttctgccccagcctcctgtgtaactgagactacaggcaca
-caccaccacacccagctaatttttTCTttctttctttttttttttttttttttttttgag
-acggagtctcactctgttgcccaggctggagtgcagtggcacaatctcggctcactgcaa
-cctctgcctcccgggttcactgtggatatatcccctcccgggatatatccatcactgtgc
-ctggcacagctgcagcctcccaagtagctgggactacaggcacccgccaccacgcccggc
-taattttttgtatttttagtagagatggggtttcaccgcattagccaggatggtctcaat
-ctcctgacctcgtgatccgcctgcctcggcctcccaaagtgctgggattacaggcgtgag
-ccaccactcccagcctctctctttctttctcctctttcttctctttctttcttttctttt
-tcttttcttttctttcttccttccttcctcctttccttcctttccttccctttctctctc
-tccttccttctttccttccttccttccttcttctttctttctctttcttttctttcttca
-gggtctcaatatgttggccaggctggtcttgaactcctgccctcaagtgatccttccacc
-ttggcttctcagagtggtaggattacaggtgtaagccaccacacccagcccaagaaagat
-tttattttatttttttatacagacagggtcttgctatgttgcccaggctagactcaaact
-cctggacaacatagcaatcttcctgcctcagcctcccTAGTAGCCAGGTGTGCACGGAAC
-AAATTAtatgtattaatatggaacaatctctaagacacattattaaatgaaaaaaagcaa
-gatatggtatcctacagtttacattttttaatgttggaataaatacatacataccctcag
-caccataggaaagattttaaaaaagaaaaaatatatatacatatgcttatttttgtacaa
-atatgtaacactggaaggatattaatgaaattcgtaatttgtaACTTTGGAGAACTGGAT
-ATTTGGGGTTTGGGATAAAAGGAAAGTTTATTTTCCACTGTGTATCCCTGCTTTTAAAAA
-AATATTTCATCTATTATCTCTAACAACAACAAAAACAACTTTTAACAACAAAAATAAATG
-CAAAACACAAGACTTCAACGAAATTCCTATAGACTTTAGAGAGACAGGAGTCCATCTCCT
-CTATCTTTAAAAGTAAAggccgggcttagtggctcatgcctgtaattccaacactttggg
-aagccaaggcaggaggactgcttgagcccaggagtttgaggccagctgaggcaacacagg
-gatatcctgtctctacaaaaaaaaaacaaatcgttgggtgtggtggtacatgcctgtggt
-cccagctacttgggaggctgaaacaggaggatcacttgaggttgaggctgcagtgagccg
-tgatggcaccactgcactccagcctgggccgcagagtgagaccctgtctctaaaaataaa
-ataaaataaaataaaaataaaaAATAAGAACTTTGATGGAAGAGTTTAAGAAATTCTATA
-GCAGACAACACATTGGTCTCCCTGCTTCCAGGCTCCCTCTCCTTCCAACCATGGAATCCA
-CCCCAAAACAAAACTTGATCACATTTCTCCCCCGCTTAAAGAACTTCAAAGATTTTGCGT
-CCTCCCTGGTGTTCACCAGGGCCTGCCTGACCAGCCCTGCCTCCTCTGGGCCTCCTCTCT
-TGTCGGGCCTCCCCCTCTTACCCTGGCTTGGCTTCCCcttctgctccagctggtcattcc
-tggaagcagatctcttcctcccctacccatggttaatccttacctgcctggggcactcag
-ctctaatgctgcttcctaactagagcctaccctaacatcctgtatcagaccctcttacac
-cgtccgttacctccctggcctctccttcagcagttactcgggtgcaatgatatacttatt
-tgtgccatggtttgattgatatctgcctctgcctctccactttgagctccctgagggcag
-gaaccagtctcttttggctcacggttatagcttgagcaattagcactatgcctggcacag
-agtaaagcctaataaatatttattgcatgcatgaTCTAGAATCACTTGGCTGAGGTTACA
-GATTAAGACACGTGTCTACTTGTCCTTCTTTAATATACTTAACATACCTTAGCACTCTGT
-CATTGACACATACTGAACAAGGGCTTATTCATTCATCTTTTAAAAGCTAACTCACTCTTT
-TAGTTTTCCCACCTTTGATAAGGGAGGATAGGACCTGGGAGGTCAGGCCCTCGGTTTACT
-AGCTCATCCTCCTCTATTTCTCTGAGAGCATAAAATCACTGGAAGTCAGCCAGCATGCCC
-CATGGCACTGTGAGGCACAGGGGAGAAGCACCAGGCTCCTGGATTCTGAATGCGTGGCTT
-TGAAGCCTGGCAAGAGTGGCCCCTTCCCTGAGTCCCCCACCAcccctccccttggggcga
-ggattctgcaggcatgagaagtgcccacccagagtctgtgcctatgccttctagaacacg
-ctctgatacccgataattcccttccaaaatgtcactaagttaattcacagggctctttgt
-gggcctcatccctggcttcatctcacctgagggcaaactatactgcctgatgcacatctt
-atagacctgagccttgggcctcaagatagctgtttgcaggtgacagctaggtgttgaccc
-atgcatgctagctccatcactgatgggatgagaggtagctggataagggatggatacagg
-ttccaggggacaggtctccttgggcctacacattctggcacataactccaagggtcttag
-aattctaatttgaacatggccttccaggttgttagaggatatatccatcaaggaagaaaa
-cagaacatatttcatttaacacttgctggactgttgtataatttctaactatagagacat
-atggtatatgggcctccaactctactcttgttctgagccccacaaatgCCCATTtggttc
-tgtcatttctttgcatagacaagctacataacctctctgaacttcagtttcctgagcagg
-aaaatgggtctatggtaataactacattatcagggctggtgagaaaatgaaataaaataa
-tccatgtcaagggcttgagaagaatgccCTCTGGCTGTCGTCTCCTATGACTTCCTGTAT
-GATCTCCAAACTGCTCTCTTTGCAGGGTTTCAACACGGCTGCTCCCTCCTGCCTCCTTAC
-CCACAGCCAATAACCTCCCCATTCTCTCCACCTAGTCAAATCCCACCGTCTTCAATTGTG
-ataatagctggttgattgcacgtttactacgtttcaggcattgtattaagaactttccat
-gcattaactcagttctgacaccaactcgatgaagcaggcactgtttattattccccaaac
-acaaagacacagggatctggagactggaagcactggcggctgcaagtggcagggctggcg
-gggtgtgaagccggagaggagtctttctgcagTCAGGCCTCCCAAATCCCGGGATGGAAT
-CAAGGAGCCTTTGGCTGTCCCACCCCTCCTCCTCCAAGCCCCCAAATCCAAGTCTGTTAT
-ATCCCGTCAGCTCTGCGGGCCTGCCTGTGACTTTCAGCCCAAGGGGGCGGGCACTTCGTG
-TCACGCCACGTTGTCCACATCATCGAccctccctccccttctccccttccttccttccct
-ccctctcttcctcccATTGAGTGCCAGTTCTGTGCCAAGCTTTGCTGTTCAAAATGTTAC
-GAGTGGAGAAGTCAGGGAAGGATGGAATTATAGGTGTTTCTTCTTCATACCTTTCTGTTT
-GGCTGATTTTTTTTCAAATGAGCACGCAGGCCCGGTTCCTCAAACCCACTTCCAATGTGG
-CATTGCTGGGTTGGTTTGGTCCAAGGAAAGCCCTGTCTCCTTAACTCCCAGCCCCCACGC
-CTCCTCCGCCGGCCCCCAAATCCAGGCCGCCCTGCCCCCTCCGGAAAGGGGAGTTGGGGG
-CGAGCGCCGAAATCTGAGTGGCTCTTTCAAGCCTCCGTTGCCATAGAAACCGGCCGCACA
-GGCCGATGCTGTCCATTACACCATCCTCTAGCCTCGCAGCCAATGGACTCCGAGCTCCAT
-CGCCAGAGGCCCCGCCCCCCAGCTCTGGGGAGTCCACCAATCAGCAGGTCCCGTGACTTA
-GAGCCCTGCCCTCGGCCCAGGGACACCACCAATGCGCTTCGACCCTGCCCTCCTTCTCTT
-CGGTGTAACAAGAAGACTCGatatttttttttttttttttaGGAATTCTCCAGATCAGAA
-GGAATTGGCAGTAAGGCCTCTGTCAGCTGCACCCTGAATAATCTTTGGCTGCTATTTTAT
-TTAAGGAGAGCAAAACTGTTTCAATTACGCAACAATATATACCATTCTCTACTAAAACAA
-TTTTAGGAAATGAAAATGTAGGCAATGGGATGATATAGTCTGCTCTATATGAATGTCTTT
-CATTATAGGTATTTTAATTTAACTTAAAATGATCAAGGAACTAGTCATCTTTCCTTTGTA
-TTTCAAATGCATACAAAATTAAAGATACCGAGTTTTTTGATGCAGAGTTCATGAGACATT
-GACTTAATTAGTTGGTAGGCAACTTTTACTGAACCATCTAATTCCTGGTTCAGAACATTA
-CAACTGGAGGATAAATGAATATTTCTCTTAATCCATGGAAGAAATTCTGTTTTTGAGGCG
-GGCTGCGTAAATGGCTCTGACACTCTGGAGTCTAAATAAACCAAATGTGTTTTTAAAACC
-CGTTTGCCATTACAAaaaaaaaacttcaattttttagaacacttttagatttacagaaaa
-attgtgaatataaagttcccgtctaccccagccacccaCCCTGtttctttcattattatt
-attattattgagacagggtcccgctctttcacccaggctggagtgcagtggcgcgatctc
-ggctcactgcaacctccgcctcccaggctcaggcgatcctcccacctcagcctcccaagt
-agcagagactacaggggcatgccaccaagcccagctgatttttgcatttttcatagagat
-gaagtctcgccatgttgctcaggctggtgtttctgctattaacatcacatatggtattgc
-agacgcatggtatatttgttccaattaataaaccaataatgatacattatttattaatta
-gagttcacagtttattcagatttccttcgtttttacccaacgttctttttctactccatc
-tttttctactccaggatccatccagcatgcctcatcgcactagctgtcgtgtctctctgg
-gctcctcttggctggggcggtttctcaCATAGCAACATGACatcactgttggtgctgcgt
-caggtttctctactggaaagtcagtcttcttttgccccttttcatactgtactctttgga
-aggaagtcactatgctcgggccacacttaagtgaggagttatgctctatctccttaaggt
-tggaatagctacatagattatttgggatttttctacactgaagatttgtctcatttattc
-agtaatttatttatatcagtatggattcacagataattatttaatactttaggttataat
-ccaatactatttgattttgttgctcaagttgttccagctttggcttttgggagctctttc
-ggttggctcccgtctccctttgacacacccctatttttgtggggttttctcgttgccgtc
-aagcacttccttactttctggcactacaagatgcctcaggctcatctttcgtatttcctg
-ccccagtcctcaaatcagccatttcgcaagagctttgattgtttcggagaagggtattta
-ttagaaaccaagaactgggcgctaggtgcactcattgctactagggtgtcatttattTcc
-ttcctccctccctccctccctcccttcctttttgagacagagtctcactccatcacccac
-actggagtgcaCACTCATGGCTACAGCCACGTAGCCATGGTAATGAAGCCATAACCTCAC
-GAAGCTTCCAGTTTACACAATTAGAGGGTTAATTACCAAGTTGCCCAGCACTCTGCAGTG
-TGCTgtgtaggcaatgcgggggtaaattatctgaagagaatttaaagacaataaAAactg
-cagcctagacctcctgggctcaagtgatcctccctccttagcctcctgagtagctaggac
-cacaggtgtgtgccaccacactcagctaattttaattttcaatttttttttttgtagaga
-taaggtcttgccatgttgcccagactgatacaactcccggcctcaagccatcctcctgcc
-ttggcctcccaaagtgttgggattacaggcgtgagccaccacacctggccTtggggtatc
-atttcttttaagccttctcaactgacagaacaaagaaatatatctgtatataccaatgtg
-tatatatatacacacatatctatatttccatttgtaaccatctgtatatatattaagcta
-aacatgagttcctgtttatatttaccacttgaatccagggatcatttggcttgcttcctg
-cttgcttatctctaaattcccactccaataacgggaaacctggttcccatcatccacatc
-caccatccatttacttaattgttcaagtccagtatacatgtgtaggattatcaaaattgt
-taacccatacccctgtgggaaactttatcaagtagagtacattcttctgaacactttctt
-ttgcctttagtgttccagcagactccacttgtttcttttttctttttctttttttttttt
-ttttgagacagagcctcactctgttgcccaggttggagtgctggagtgcagcggggccat
-cacagctcacagcagccttgacttcccagtcttaagtgatcctcctgcctcagcctccca
-agtagctgggactacaggcatgcgccactacacccatctaattttttaaaatttttgtag
-agatgggatctcactatgttgcctaggcttgtctccaactcctgggctccagtgatcctc
-ccgcctcagcctcccaaagtcctgggattaaaggcatgagccaccacgcctggcccactc
-atttctaaagttacttaggtcagcacgttttcctctatcctcttcatgaggtcatttcac
-acatttgtaatacggtgaagatgtttgtcatattctgcatgacattttggaattatctaa
-atgtcctaagtgatttttttaactttgcatgcattaaggttcactttttgtgctattaag
-tttaatggatatcaaccaatgcacagtcatatacccacatttcttcaccctaaaaaaccc
-cctgtgctcacttattgaaccctctccccgccaaacactggcaaccacacatccgtttac
-tgtatctatggttttgcctttttgtgccattattaaaaaaaagaaagacgcacaatattt
-ttgttgttgctcttgtcacAGCTGCCacccattgaatccttactatgtcccaggtccaga
-attacactgtcccattttgaagatgaggaaacagatgcaaatgagttgaagtactcccta
-gagactcataacaataagcaaagtttgacttcTATGATTAACTTCTGAGTCACCTCTGGG
-AATATTTGTAATATGTCTAATAGCCACACttcttttgtttgttttgatacaggggtcttg
-ctgttgcctaggctggagtacagtggctactcacaggtgcaatcatagggcactacagcc
-ttgaactcctgggctcaagcaatcctcctgcctcaacctcaaaagtggctgggactacaa
-tgtgtgccactgtgcccagcTATattagccacatttcaagtactcaatagccgctgtgca
-gtttatactattatattggTTTCTGAGttttgtttttgagactgcgtcttgctctgtcac
-caggctggagtgcaatggcacaatctcggctcactgcaacctccaccacctgggttcaag
-cgattctcctgcctcagcctcccaaatagctgagactacaggtacgtatcaccaagacca
-gctaacttttgtatttttagtagagacatggtttcaccatgttggccaggatggtctcga
-tctcttgacctcgtgatctgcccgcctcggcctcccaaagtgttgggattacaggtgtga
-gccaccgtgcctagctATATTGTTTTTTAAAAGATCTCTTATTATTTAGTGAAAAGAAAG
-GAcctgtagtctcagttactcaggaggctgaggtgggaagatcatttgagccccagagtt
-tgaggtagcagtgagctatgatgatgccactgcactccagcctgggcaacagagggagat
-gccatctcacacacatacaaaagaaaagagaCCTTGTAATGCACACACTATCATAATCTC
-TGAtttttctttttttttttttttttttgagacactgtcttgctctgttgcccaggctgg
-agtgcagtggggtgatcactgctcactgcagcctcaacctcctgggctcaagtgatcctc
-ccacctcagcctccccagtggttgggaccacaaatgtgcaccaccacaactggtaaattt
-tttatttattgtagagatgtgggtctcaatattttgcccaggctggtctcaaactcctag
-gctcaagctagcctcccaaagtgctgggattataggtatgagccactgGCTttttttgtt
-tgtttgtttgtttttgtttttgatatggagttttgctcttgttgcccaggctggagtgca
-atggcgctatcttggctcactgcaacctctgcctcccaggttcaagtaattctcctccct
-cagccttctgagtagctgggattacaggcatgcgccaacacctccagttaattttgtatt
-tttagtagagacggggtttctccatgttggtcagactggtctcaaactcctgaccgcagg
-tgatctgcctgcctcagcctccaaaagtgctgggattacaggtgcgagccactgcccctg
-gccTGACTTTTTTAAAATCAGGAAATTTAGATGAATCAAAAAAGAAATTACCTTGTCCCT
-ATTGTTCTCTTCTCATTATGAATGTCTTTGAGGACCATGCCAGTTGGCAAATAGGTATTT
-TGGAGCTAGACACAGTTAGGGTGAGTGGAGTAACACGACAGTACCTACAACAGCCACACC
-CACACCTGAGTTGGCTTCATCCTGCCTTCAGGTATCATTAAGAATAGGtattattattat
-tattattattattattattttgagaccgagtctcactctgtcgcccaggctggagtgcag
-tggcacaatctccgctcattgcaacctctgcctcccaggttcaagcgattctcctgcctc
-agccttctgggactacaggcccgtgccaccacgcccggctaattttttgtatttttagta
-gagatgggtttcatcgtgttagccaggatggtttccatctcctgacctcatgatcctcct
-gcctcagccttccaaagtgctgggattacagatgtgagccaccacacctggccATATATA
-TAtttttttctttgagacagttccactctgtcacccaggctggagtgcagtggtgtgatc
-atggctcactgcagcctggaactcccaggctcaagagatcctcctgactcagtctcccaa
-gtaactaggactataggcacacaccaccaggcccagttaatttttctatttttagagacg
-gggtctcactatgttgcccagactcgtctcgaactcctgggctcaagcaatccttccaac
-ctctacttcccaaagtgttgggattgtaggcatgagacaccacatctggcctataatgga
-atattatttggcaataaaaaggaagttctgatacatgctacaacatagatgaacctagaa
-atcatgatgctaagtgaaagaagccaggcacaaaaggccacatgttgtatgattctcttt
-acatgaactgtccagaagagacaaatccatggatacagaagcagattaatggtggcctag
-ggctggggattagagggaaggcagagcagatgggagagtgactgctaatgagtactgatg
-ctaatggtttcttttggggatgatgaaaatagtctaaaatccattgtggcaacagttaca
-caactctgtgaatgcactgaaagccactgaattgtaaactataaatgactgaatagtgtg
-gtatgtgaattacatctcaacaaagctgttTTTTTTTTTTTTTAATGTTCTGGAAGAATC
-AGGATAGACATTACCTCAGGTGAAGGAAGGCAGGAGATGGGATGGTAAAGGAATTCATTG
-GGGAAAACAGGTTATCAATGTTCCAGTTCTTGTGTCAGATTGCTGACTCCACAGATTTTT
-ATTATGTTATGTAAAAATAAATACACACAGggccaggcatggtggctcacacctgtatcc
-cagcactttgggaggctgtggtgggaaaatcgcttgagcccaggagttcaagaccagcct
-aggaaacatagtgagaacctgcctctacaaaaaaaatttttcgaaattagccagccatgg
-tggcatgcatctgtagtcctaactacttgggaggctgaggcaggaggatcacttgggccc
-agaagttccaggatgcagtgagctatgatcgcaccactgtactccagcccaggcaacaga
-gcaagaccaggtctctaaaaaaaaCCCACACAAGCATAAAGTGAGGGAATCACAGGCAAC
-AATGAGAATGTGTCGCAGATGAAGCGATTCTGTATACCTGAGACAGAGGGAGATGAACGG
-GAAACGGCAGagagtggtcaggacagtcctctctggggagcccgtttgagccgaagctag
-gatgagtagatgctccagcccatgtggggatgggggtgaaaagagttccagacaaaggag
-acagcatgaatgagggccctgaggtaggcccaagcctgttgtgtttgggggacagccagT
-TTAAATGTCTGTTCTGTTATATTGTGGAGTCTCTGTGtatgaatttttcctaaagaaata
-acagacaggccgggtgcagtggctcacgcctgtcatcccagcacttcgggaggctgaggc
-aggcagatcatgaggtcaggagatcgagaccatcctggccaacatggtgaaaccccatct
-ctattaaaaatacaggtcgggcacggtggctcacgcctgtaatcccagcactttgggagg
-ccaaggcaggcagatcacaaggtgaggagatcgagaccatcctggctaacacggtgaaaa
-cccagctctactaaaaatacaaaaaaaaaaaaattagccgggcatggtggcgggcgcctg
-tagtcccagctactcgggaggctgagacaggagaatggtgtgaacccgggaggcagagct
-tgcagtgagccgacatcaagccactgcactccagcctgggtgacaaagcgagaatccgtc
-tcaaaaaaaaataaaaattagctgggtgtggtagcgcacacttgtaatcccagctactca
-ggaggctgaggaaagagaatcgcttgaacccaggaggtggagattacagtgagccaagat
-tgcgccactgcactccagcctggcgacagagcgagactccatctctaaataaataagtgg
-ccaaaaacatacatacaaaggtgttcactgccatattgtttataatagcaaaaaggggta
-aaacaatcaaaatgtctttcaagaaggaactgattcactttgggaggccgaggtgggcag
-atcacctgaggtcaggagttcgagaccagcctgaccaacatggtgaaaccccatctctaa
-taagaacacaaaattagccaggcgtggtgatgcacgcctgtaattccagctacttggaag
-gctgaggcagcagagtcatttgaacccaggaggcagagtttgcagtaatccgagatcacg
-ccattgcactccagcccaggcaaaaagagtgaaactccgtctctaaaaaaaaaagaactg
-attaaatgaattacaatataCTCGGCAGACCTGGACGAGAACCTACGCACTACATGGAAA
-GAGAAAAGAGATGTGAAAAAAGCAGGTTACTAGAAATTACATATAGTAACATTCCACTTG
-TGTAAAAAAAACTATGTGTGCATGTGATTATAAGCATTTAAGTTTCTGGATggccaggtg
-aagtggctcatgcctgtaatcccagcactttgggaggccaaggtgggcagaccgcttaag
-cccaggaatttgagaccagctcgggcaacgtggcaaaactcagtctctataaaaaataca
-aaaaattagccctgtgtggtggtacgcgtctgtagtcccagctacctgggacactgacgt
-gggaagatcacttgagcccaagaggttgaggctgcagtgagctgtgattgcgccactgca
-ccccatcctgggtgacagggagagaccttgtcgaaaaaaaaaaaaggccgggcacggtgg
-ctcacgcttataatcccagcactttaggaggccaaggcgggcagatcacaaggtcaggag
-ttccagaccagcctggccgatatggcgaaaccccgtctctattaaaaatacaaaaattag
-tcgggcgcagtggtgggcggctgtagtcccagctacttgggaggctgaggcaggagaatc
-gcttgaacgtgggaggcagaggttgcggtgagccaggatcgcgtcactgcactccagcct
-gggcaacagagtgagactccgtcccgtctcaaaaaaaaaaaaTTCTGGAAAATTACATTA
-AAATTTAAAATTTACTCATTATAATGCCATTTTTCTAGATTACAGGAGACGTTCACTTTT
-CGCCTTATATAATTCAGTATAAggccgggcgcagtggctcatgcctgtaatcccaaaact
-ttgggaggccgaggcgggcggatcacttgaggtcaggaattcgaggccagcctgaccaac
-atggcgaaactccgtctctactaaaaatacaaaaattagccaggcgtggtggcacgcacc
-tgtagttccagctactcaggaggctgaggcaggagaatcgcttgaacctgggaggaggaa
-gttgcagtgagctgagatcacgccactgcactccagcctggtgacagagcgagactccac
-acacacacacacacacacacacacacacacacaaacacaaacacCATATATATACATATA
-TAACTTTTGTAATAATAAAAAACATACTTCTACTTAAAGAGAATATCAATAAGCCCTAAA
-GTTTTTCATAGTGAAAGCCCTTCAAAATTGCTTGACAAATAAATTCTAAGTATACTAACT
-ATGGGAAAAATGTATGCTTGCGAAGACTTTGTTAGACACATTTTCTTAAATGCTGAAGCT
-ATAATTTAAAAATGAAGATTTCAGGAGACAAAATAAAGTCAGCTGGATAAAAAATGTGCA
-GAGAGAAAAAATATACCAAAATGTTAAGAGTGAGTGTCTCggccgggcgcagtggctcat
-gcctgtaatcccggcactttgggaggctgatgcgggcggatcacggggtcaagagtttga
-gatcagccggccaacatagtgaaaccccgtctctactaaaaatacaaaaattagccgggc
-atggtgatgcatgcctgtagtcccagccacttgggaggcttagggaggagaatcacttga
-acccgggaggcagaggttgtggtgagctgagatcgtgccactgcccttcagcctgggcaa
-cagagcaggactctgtctcaaaaaaaaaaaaagaGTGGGTGTCTCTTGGCACTGAGACAA
-TGAATCCCAACAAATTCCCAACAAATGATATTTTTTCCTTAAATTTCAGAATTTTTGAAG
-TTTTACACAATGAATATTTTGTGATCTGAAAATTTTTTCTTCCCCTCCTCTTCCAATTCA
-ACAGCTGAATAATAATCTtgtgttcattgtctgctactgcttaagacattctttccagac
-ttagaggcttaacaaagcaaacagctaccatctcacagtttctgtgggtcatgaatccac
-gcagagtttagttgcatggttctggctcagggtcattcacgaggttgcagttgagatgct
-ggtcagggctgcagtcatctgaagacttgactggggctggaggatctgattccaggatgg
-atcgatcactcagatggctgttggaagtaggtctcagttccttgttggtgttggcaggag
-gcttcagtttctcaccacgtagagctttccacagggctgcttgagtgccctcgcatgaca
-gctgacttctcccagaataaatgatacaaaataagacagccaggaggaaaacatagagct
-ttctatgtccaatcttagatatcacaaaccatcacttctgccatattctattagttagag
-gcaagttcacacttaactgggaaggggaggaggaattaggctcttccttttgaaggaagg
-aacattaaagaatttgtgaaGggccgggcgcagtggctcatgcctgtaatcccagcactt
-tgggaggctgaggggggcggatcatgaggtcaggagattgagaccatcctggctaaaacg
-gtgaaaccctgtctctactaaaaaaatacaacaaaaattagcagggcgtggtggcaggcg
-cctgtagtcccagctactggggaggctgaggcaggagaatggcgtgaacccgggaggcgg
-agcttgcagtgagccgagatggcgccaccgcactccagcctgggtgacagagcaagactc
-catctcaaaaagaaaaaaaaaaaaagaaTTTGTGAACATGTTTTTGAAACACAAGAAAAT
-ttccagctgatctttccccccaaatttccctcctccaatccaactacaacacatgaaact
-ccttaatcttgctgaagcgtacctctgatcatgtcatcctgcaataaaaaaactgtccct
-ggctccccacaacccagggaactccataacttggcttctgaggaccaactaccgtattgc
-ccttcagctccagctcaacataaacgcatcgtattcctcatgtacactcccccatctctg
-gtcttggcacctatccatgccctctcaatacctcgtcccagtctccttcccatctccagt
-cccttgcacttgctgtttcctctgcctggaatgttttacatggatggttcttcgtcatct
-tgagatctaaactctcccccatctctatcatcccccgtcccagtcactcactctctcatt
-accttgttttcttttcattgtcgtttgagacagggtctcactctgtcccacaggctgggg
-tgcagtggtacgatcacagctcactgcagcctcaacttcccgggctcaaacgatcttcct
-gcctcagcctcccaagtagctaggactaaaggcacaggccatcacacctggctgttttgt
-attttttgtagagacaggcttttgccatgttgcctaggctggtcttgaacttctaggctc
-aagcatctgcccacctcagcctctcaaagcgctgggatttcagatgtgagccaccttgcc
-cagcccctccctcccttctttccatcacccagtctggggtgcagtggcaccatcatagct
-cactacagcctcaaaatctctggcttaagcgttttcccacctcagcctccccagaagctg
-agatgacaggtgcttgctaccatgcccggctaatttttgaatttttgtggaggtgggatt
-tctctatgttacccaggctggtctgaaactcctgggctcaagcgattctcccgccttggc
-atcccaaagtgcagggattacaggcgtgaaccaccacacccagcccagctttattttctt
-tatagcagtcacaactatctgaaattatcttatttgtttacctgctcttttctgttgccc
-tcacttgctccttaagaacagggacctctgtcttggtcactgctgtaacccagtagcccc
-agttccaagttcactgcctggtgcacagtaggtggccaataaattgttgaattaaATGTC
-CTCTCTTCCAGGGAGTTGTTTTAGAAAGAATCACACACTGCATAAATGTCTGTTGAGGAA
-GAAAATGAAAAAAACAAAAGTGAAGACATTATCTTCTCGGCTGAACTTCCCACACCATCT
-TCTCTGTCATTAATAAGTCCTGGTGTCTACACTGGGGAAGGCAGTCCAAGGTTCTTCCAG
-GGCCTAGGTTCAGCCAGACTTTAACCATCTCTAGCTCCTCAGAGTCCGTCAAAGGGCCTA
-AGGAATGGTAAGTATTAATAATGtttgtttatgtatttatttatttatttattttgagat
-aaagtctctgtctcccaggccggagtgcagaggtacaatcattacaacttccacctttcc
-ggctcaagcaatcctcctgcctcagcctgccaagtagctaggactacaggcaggcaccac
-cctgcccagctaatttttgtacttttttttgtagagtaagggtttcaccatgttgcccag
-gctggtcttgaactcctggccttaagtgatctgcctgcctcagcctcccaaagtgctaag
-actacagctgtgaaccactgtgcAGGGTCAAATGTTTATTAATGGATGCATGCATGGATG
-GAAGAAGGAAAGGAGGCAGGTGTGAATAATGAATGCAGCATTTTCACTGCTGAGAATAAA
-GAGTGAAATCCTGGTCCAAATCAGTTTGGCAGTGAGTAAGGTTAGGAACTATTCACATAC
-ATTGGAATAATAATAGCAGCAGCAGCTACAGGGTCAGAGACAGATCTTTGAGAGGCCATA
-AGCATTGAAAAGATTGTGGTACCTATCACACACCGTCTAAAATAAAACAAATATTTTATT
-TATGGGAAAAGTGTTAAGGTGTTGATAATTCCAAGAAAGCTTTTATTTGTCCTACAATCA
-TTACTTTGATACCTTTTCTGAAATCCTAGAGCTGTCCCCACTCTGCCCATTTTTTTTTCT
-CATTATGGTGATGTCTCTGGGTTGCTGGTGACCTGCGTAACTATTGGGAAATCTAGTTTC
-TCAAAACttttagtttttttttagacagggtctcactctgtcactcaggctggagtgcag
-cggctcactgcaacatccgcctcctaggttcaagcgattctcatacctcagtctcctgag
-tagctgggattacaggtacgcgtcaccaagcctgactcattattttgtacttttagtaga
-gacaaggtttcaccatatcggccaggcggatctcgaacttctgacctcaaatgatccgcc
-cgccttggcttcccaaagtgctgggattacaggtgtgagccaccgcgtccCGTCTATCAT
-AAGTtttattgaacattgcctaggtatcaggatgtgtttacatgcattatctcatttaat
-ctgtaaaaccaccatgtgagggagaaactgaattatccccattttcaggataaggaaaag
-gaggGACTGGGAATGTGAACTCAGGAAGTGTGACTCCATCGGGTAGACTGCTCAGGCTGC
-AGATGTAAAGGTTTTACACGTAGGCTTTTCCAGATCTCAGCTTCTGAAAGGCGGAGGGAC
-CGTTTGGACGGGAGCAGGGCCTCCTCTTCCAAGCACCCTGTGCCTTTAAGAGTCGCCCCC
-TCCCTCCAGGGATGCTCCAATTTCTTTCTCCCCACCACCCCCACCCCGCCCCCCGCGCCG
-CGGAGCCGCACCTCGGTCCTTCCTCCCCGCCCCACACCCTCAAGCTCGGCTCTTGGCCTT
-CGCTCGTCCAGAAGTGGGTGAGCTGTACCGCCAGAGGCGCATTCTCCTAGCCCCAAACCA
-TGCCCGCTACGCCCCAGCGGAATGCCACCTTAAAGACCCTAATCCGGGCACCTCCCAGCT
-CCTGCTTCCCAAGGGCGAGGCCTCAGCGCCCCCTCCCATCGCCCATGCTCACGACGCCGT
-GAAGGTGACCTCCCCCAGGGGCGGCACACGCCCAGTGGTGCCCGAACTGGCTCACACGTG
-GTGAGCCGGGAGCGCGCGGCCCCTCCCCGCCACGCGCCTCGTGCCGGCCACCCGGCCACG
-CCCCCAGGACTGGCTCCGCCCCGTGCCCCTGCACGCTTCTCCAGGCTTGGGTGGGGCGAC
-GCGCCCAAGTCGGGCACCGGGCAGGCTACGGGGTGGGGTAGGACCTGGGAATGGCGCACC
-CACGCATCCTCGAATGTCGCCTGCGGTTTGTGAAAAGCGGGAAGTCCGCCCAGCTCAGGA
-CCTTTGGCTGGCAGGCGAGGTGCCCCGCGGCCCTTGGTGCTGAGCAGGGGAGAGACAGCT
-GGGACCGCGAGCCTGGGAATCGAATCCTAGTCTGCGTGTCCTCGGTGCTTCCTATTTGGA
-AACTGGGCATCATATTATCATATTCCCTTCTCCCTCCGGATTCTTATGGAGCTTCGAACG
-AGATTAAATATACATATATATGAGAAAGGGATTTGTTCACTAGGTCCAAAAGCATTTGCT
-GGTCCCATATGTGGTCGGACCCTGTGTGTAGTAGGCGGGGGGCAACATCTACGACAACCT
-GAGTTCGTCCCCTTAAGAAGCTTTCCTGAGTCTTGGGCCCCCCAAATTCTCTTCTGGGAT
-GGTCCGAAAAGACGTCCCTGAAAGAGGAAAGGGCGGAAATCCTACCTGACGGCAGGTGTC
-TCGGAATGAGCTAAAATTTAAAAGGCAACGCGGGGCAGGGACAAGCGTCCAGCGTCAGAT
-GGAAGCAGGCTCGCGTCCCCTACCCTTCCTCCAACCCCTAACCTAAGAAAAGAAACCGAT
-CTCGCCGGTCTCCCCCAATCCTAGCCGCGAGACCGCCCAGCCCCGCAGCCCGAGCCCCGC
-CCCGCTCCGGCGGCCAGCGATTGGGAGATGCAAATACCGGCTTCTCTGCCCAGCAACGGG
-TGACGCGGCGCCCGAGCGCGAGGCGGGGCCCGGCCGCAGCCCAAGCGGGCACCTCGGTGT
-TTACAcggggcggccccgcgcgcgccgcagcggcccgcagacggcgagggggaggggtgg
-tgcgcgcgccggcggggccgcgcggggAGAAAGACACTGAAAGGCGTcggcggccgggcg
-gggagcggcgcgcgcgggccgcggcggAGCCAGAGGCTGCAGGAAGAGCCCGCGGGGGCC
-CGGAGGGTGCGATTCCTCGGCCCCCGCAAAACAATGTGTGTTGTGAGCCAGGACGCAACT
-TGCCGGAGGCGGCGGGGGCGCGCCGAGCCCGCCTGAGACCGCGCTGACCTTCTCCCCCCG
-CCGTCCGTTGGGCCCGAGCGCCCAGCTCCTCGCTCCCCAGTTcgcgggggccgggccgag
-ccgcggggcggggccgccccTCCGTCGCCGCTGCCTCCTCCCCCACCCCCAGCCGCGGAG
-GATGCGGACGGCCCCCGGCGGCGTCTAGCGGCCCCGGGCCCAGGCGCGATGGTGCAGCAG
-CGGGGCGCGAGGGCCAAGCGGGAcggcgggccgccgcccccgggacccgggccggccgag
-gagggggcgcgcgagcccggcTGGTGCAAGACCCCGAGCGGCCACATCAAGAGGCCGATG
-AACGCATTCATGGTGTGGTCGCAGCACGAACGGCGGAAGATCATGGACCAGTGGCCCGAC
-ATGCACAACGCCGAGATCTCCAAGCGCCTGGGCCGCCGCTGGCAGCTGCTGCAGGACTCG
-GAGAAGATCCCGTTCGTGCGGGAGGCGGAGCGGCTGCGGCTCAAGCACATGGCGGATTAC
-CCGGACTACAAGTACCGGCCGCGCAAAAAGAGCAAgggggcgcccgccaaggcgcggccc
-cgcccccccggTGGTAGCGGTGGCGGCAGCCGGCTCAAGCCCGGGCCGCAGCTGCCTGGC
-CGCGGGGGCCGCCGAGCAGCGGGAGGGCCTTTggggggcggggcggcggcgcccgAGGAC
-GACGATGAAGACGACGACGAGGAGCTGCTGGAAGTGCGCCTGGTCGAGACCCCGGGGCGG
-GAGCTGTGGAGGATGGTCCCGGCGGGACGGGCCGCTCGGGGACAAGCGGAGCGCGCCCAA
-GGGCCGTCGGGCGAgggggcggccgccgccgccgccgccTCCCCGACACCGTCggaggac
-gaggagccggaggaagaggaggaggaggCGGCAGCGGCTGAGGAAGGTGAAGAGGAGACG
-GTGGCGTCGGGGGAGGAGTCGCTGGGCTTTCTGTCCAGGCTGCCCCCTGGCCCGGCCGGC
-CTGGACTGCAGCGCCCTGGATCGCGACCCGGACCTGCAGCCTCCCTCGGGCACGTCGCAC
-TTCGAGTTCCCGGACTACTGCACCCCCGAGGTTACCGAGATGATCGCGGGGGACTGGCGC
-CCGTCTAGCATCGCAGACCTGGTTTTCACCTACTGAGCCCACCGTCAGCGGGGCGCGCAC
-GCCCCCAAACCAGCTGTTTACATACAGGAATCAGGTATTGGGGCCCCTCGGAGGCCGAGG
-CTGGCACCCCATCTCCCGCGCAGCCTGCCCCCTCCTGGACGTGCCCATCCCCCCTCAGAT
-CCAGACATGCCCCTCCCCCGCAGACACACCCCAAGGCAGCCCAACCCCCACCCCTTCCCC
-GACACCCAAGCCCCTCCCCACGTCGCCCCCTCCTGCACAGCCACCAGCAGCCAGCCCCCT
-CCGATACACCTCCCGTCCTCTCCTACAGACCTGCACCCCTCCCCCCTTTTGCACACGCCC
-CTCCTCGTGGCCGGAGGACCCGCCCCCTCCTTTGCTCCGGAATCTCTCCTCCCTCGCCCG
-GCCCGCCTTCTCTGGGTTAGGGGGGCGATGCGGCCGGGTGGCAACGCACGCGCCTCCTGC
-GCCCCTCCCTTCCCTGGGGGGAGGGGCGCACCCCTTTTATCCCCGGAGCGCTAGGGCCCG
-CCCCTCCGCTGGGGCCCACCCCCTTCGTGCGCATGCTTAATGCTTCTGGGGAGGAGGGGG
-CTGGTCCCAGCGGAGCCGCACTCTTCGCCCGCTCCGGGCAAAAGCGGGGGCGAGTGTAGA
-GCGATCCTGGGAAATCCTTTGATCCGGGAGCCCTAGGTTTCCTCTCCAGCCAACGGGGCG
-TCGCTGCCTTAATGGGAGGAGCACTCGGAAGGGTTGGTTTGGGCCTGAAACTCTCCCAAG
-TGGCATAGCCCCTTTTCCGGTATGGGGTCTCCTACACCCACGCGCACCACCTCTCCGGTC
-GCGTGGCTGCCTCTACAGCCTACCTATACGTCCCTTTTTCCCCCCAACTGGGAATTGAGA
-GGTAAGGTCTTTCTCTGGAAATCCAGCAGTAGAGGAAGGGACCACCCAAGAAAACTAAAA
-ACCAAGGCACCTTACCAGTCTGTCTGGGGACAGGATCCCTGCTGCACCTTCCCCACCCCC
-TCCTGGGAAGTGCCCCCTCACCTCAGGGCACCCGCAACCTGGGCTCCTCCCTGAGCGCAC
-CGGCCCTTCCTGTCACCCAGGTCCACCCTCAGTACTCAAGCTGCAGTATACAGCGGGAAA
-AACTGAGGCACTTTGGTGCTAGGGGTTTGGGACTGAGGCGTGGAGAGCAGATGTGATGGC
-AGGAAGACTCTCGCTTTTAAACATCTGGTTTGGGAGAGACCATCGACTTGGCCAGTGAGA
-CTGAGAATGGATTCCGAGTAGTGATGGGCCGTTTGCACCTCGGTTTTTCCACGTGAGAAA
-TGGGGAGAACGCTGCTGTTAGGAGGAAGTTGTGTCCAGTTCAGGGTGCCCTCGGGAGCCC
-TGTCCCTGTTGCTGTGGCCCCTCTCACGCCGCCATCTCTCTGCCCCGCCCCGCCCCTCCG
-GCCTCCCCACACCCCCCTTGCCCTCACTACCTGTATCTCACCGGCGTGTGTTCACCCTCC
-CGGGTGGCTCACACACTCTCATTCACACACACAAATCTCAGGAACAAACGGTCCCAGAGT
-CCTCCGGACCCCTGCCCAGGGTCTCTGCAGGTCTCTGCCCCACGCGTTCCCGTCGCTGAC
-AAAGCCACCAGCTGCCTCCTTTAAGCTTGGTGCTCCGGCTCTGGGCCTTTCTTGCGCTCT
-AttttttttttttttttttttAAGAAAAACAACAACAACAAAAAAAGACAATGAAAAAAA
-AAACGTCATGTGAGTGAAGAGATGTCACTGTCTGTGGTCTTGGAGAACTAGTCTCGTAGC
-TGAGGGGTGGGGTCCCTCTGTCTGGGGCACTGGCACCCACAGCAGGACTCCGCCAGTCTG
-ATGCCAGGACTGAATAAAGTGTATTTGCCCCGACCTTGCCCTGTGGTTCTGCATGTCTGT
-GCTCTTCCTCAACCCTCCCTAAACAGTTTGCCAGATTCAAGTCCGTGTGATTTGGGCCCG
-AGCTGGGTGTCCCAGGGCAAGCCACCTTGCCTGTCTAGGCCTCTATGTCAGGACTCCCTG
-GCCTTCATGaagaatagcaaactcatccctgtagggaccaggcaggtaacatagacgagt
-gactctgggtggacagtggtgtcatgacccacttcaaggggcctacctcctgccagttgt
-gaccctgtgggaatgcagtccacagtggccaggtggccagatttttcaagaaaagctgga
-tggatgtttctgagtcatcttaatttcaaaatgagactcatattttaaaatttctgtggg
-ccaaatgaaacaagtatgcaggcaggtctggtccgagggGGCTGGCTTGGCCATGCCTTT
-CTGTGCCTTTAATGAGgactaagaagcaagattgggccacactgtctggactcaaagccc
-agctccaccactgagcacccgtgtgactctttccatatgtataacgtggggataataata
-atagctgcttcacaggatGAAATGAAGTTTGAGGTGAGAAGCATTCACCATGGTGCCCAT
-CGTGTTACTCCATTGTCAGAGGAGGAAACGGGGTCAGGCAGGAAAGCAACTTAAAGGAGG
-GCCTGCAAGCAGCCAGGGTCAGAGACAGGGCTTGGTTCTGCTTCCTGGTGAAGCATGGCT
-TCGGGGTGCTGCCTCTCCCTCCCTGTTTGAATCTGCAGATTGTGTTAGGCCCCCAGCTGA
-GGGCCTGGAGTGGTGGGATTGGTCCCAGTGCCTGGCGCACATTGGCCTGCAGAGTAGATT
-AACTGAATGACCAAAGAGCAACAGAAGTCTAGTGATTCTTGTCTTTGAGGTTCTGACTGG
-TGTTTTACAACTGAGTCCAAGGCTTTTCCCTCCTTTGTCCCTCTGACACCCCTCCCCCTA
-ATTCTCATCTGTCAGATCCAGTGTATTCCTAAGCTGGGACAAAGCCTCTGTTTTCCCAGT
-AGGAGCCAGGGCTGAGTGTGGAAATTACAGTGACTGCTTCTTCTCAGCTTCTCTGGTTGA
-AAGCAAGCTGGCGAAGTAAGAGGAGGTAGAGTTGAGAAGGTGTGGAAGATAGGGACAGCT
-GCCCCCAGAACTCCCTTCAAGGGAGGACTTccccagctatgggaagtgccatcagggtgg
-ccgcagctgcagagagccacttcacctgagaccacgcccttcctggggcagcctgtatct
-ggtgtctgagtgaggcatggtataaacacctggtcatttcaatccaacatgggacggaca
-ctgacagacagtactcccagcaggcccaggccagccagggcttcgtcaggcctgcagcac
-aatttgacttcctatgcccaggcctgcttcctcttcttcctcttcttttcacaggtgctt
-attcctaataaacatcttgcaacccaaactcagtctcattgtctgtttctagagaaaccc
-agtctacaacaGAGGGTTCAAGAGACTGGACAAAGGGAATTGGGTCAGTGGCCCAGCAAC
-TGCAGCTAGGCCGGTCGGATGTATCCTAATGTCAAGAGTCTGTTCACCGATGCCATCAGC
-ACCAAACTAGGGGCTGCACACTTTCCTAGTCTGCACACCAGTCACGTCAATTAGAGACTC
-CAGCCTCAGCCCGAAGGCCTTCCAGGGCCCCCTGCTGATGCCATTCTCACTGCCAGTCCG
-TCCCCTGGTAAAAGCAGGTGGGAGGGAGGTCGTCATCTGAGTTTGTCTTACAGAATAGCC
-TGGAATGGGGTGCACGGTAAAATGCCTGACCGGAGATAATGCTAGAgctgtggaaccttg
-ggcaagcctcttcccctttgtgggcTGTACTGGGAGTCGGTAATAGGACTAGAAGAGGGA
-CCATCTCATTTTGGTTCCTTCCATTTCAGATGCTGACCTGAAAGGTCGGGGAGACAGCTC
-CTTATGGGGTCTCTGGGGCCACCTAGTGGCTAAGAGGAGTAGAACCAAGGTTCTGTGCAG
-TTGGGAGGTGGGAGTCGGGGTGTGTCCCAGGCCAAGGAACTGAGTCCCACTCGAGTCTCA
-CTCCATTCATGCATTGACTCATTGCTGGGTCATGCCCCTTGCCTGGGTGGTGTGAGCCAC
-CCTGCTTCCAAGGCTTTCAAAACACCATACGCTGAtgtattgtttctcatctattgctgc
-gtaacaaattgccacaagcttagcagtgtaaaacaacatgcatttgttatttcagtctcc
-atgcatcaggagtccagcatgccttagctgggtctctgctcaggatctcacaaggcagca
-gctggggtgctggtggcccgcattccttcttggagctcagcagccttttccaagctctca
-cggtagtgggcagaattcagttctttgtgcttataggacagagatccctgttctattgct
-ggctgtcagttagtaccactcttgattactacaagctgctcagtttcttgccacatggcc
-cccacagggcctccccagccttctcacaatattgcaacttattttgtcaaggccagagga
-gaatttttctgctgcttggagtcacttggctcagggaaggtttaagctctcttttaaaag
-cctctcctggctgggcatggtgtgttcatgcctgtaatcccagcactttgggaggccaag
-gtgggtggatcacctgaggtcagcagttcgagaccagcctggccaaatggtgaaacccct
-tctctactaaaaatacaaaaattagcctggcgtggtggcagtcgcctgtaatcccagcta
-cttgggaggctgaggcaggagaatcactcgaacctgggaggcggaggttgcagtgagcca
-agaccaagccactgcacttcagcctgggcgacagagcaagactctgtctcaaaaaaaaaa
-aaagaaaaaaaaggaaaaagagagagagaaaaaaaaagccttccctaattaggtcagact
-cacccaggaaaatctcctttttgattaggcatcaactaatgtgggattttatatctgcaa
-aaaatcccttcacctttgcagtatattgtagccttataagagtgacagctgtcatactag
-atttgcccacactcaaaagggaggaggctgtctagggcagctacaccagagactgggaat
-cttgggggccatcttagaattctgcttatcacacacctgtaatcccagcacttcgggagg
-ccaaggtgggaggatttcttgagtccaggagttcaagaccaacctggccaacatagcaag
-acctaatctctagtaaagttttttttaaaaaaattagccaggcacggtggtacacacctg
-tagtctcagctacttgggaagctgaagtaTCATAgctgagaattctcaggtctacatctc
-catcccagacatgactagactagctgccttcttgtcatctccactgatatatctaattgg
-cacctcaaactggacatgccaaaaaatgaactgtttccacagtgctcccaagcctgcttc
-cacagaccacatctgcacagctgatgtgaaatgaaaggctaaagcctctcagttatcctt
-gatgcctcttttcctcccagcgccatctcccttataccctgttggctctaccttcaaaat
-atgccctgtgtcttgtcacttctcacatcttccatggcctctgggtccaggatataaggg
-catacgaagggctccttgcgttttcctttgccccactcatagtcttattgtccacacagc
-agccggagtgatctggttaaactgtaaatcccagcacaccctgccactgttcaaaattct
-ccaaagactctcattcagtagaagccagagtcctcagcatggcctgcaaagccccataag
-aagtagcctgtggctcagcctcggcttcatcttctactttttctgtttctcacatgccca
-gtcacactggtcttgctgttcctcaaaagtgccaatcacacttccgcctgaaggcttttg
-cacatgcttttccctctgcttaagatacccttcctccggctgggcgaggtggctcacgct
-tctaatcctagcactttgggaggtccaggtgggtggatcacctgaagtcaggagttcgag
-accagcctggccaacatggcgaaaccccttctctactaaaaatacaaaattagctgggcg
-tggtgacacatgcctgcagtcccagttactcaggaggctgagacaggagaatcacttgaa
-tccaggaagcagaggctgcagtgagctgagatcgcatcactgcactccagcctgggcaag
-acaaagcgagacttcacctcaaaaaacaaacaaaaaaatacccttcctccagatagccac
-atgtcttacttccttcaggtctcagctcccagggcgccctagagtaggcacagggagtac
-ctcacagtgtcctccctgaccatccatataaagtaacatcctccataaactatcctgtta
-ctttgctttatttttctgaatagcatttatcactatctggcatttatcacctgtagtttt
-tactttttgtctctctctctctaatttgtatgtaagcttcataaggaaggaatgactctg
-GACTGGACTCCATGCCTCAGCACATTCACCCACCCATTCAACAAACATTCTTAAGGGTCT
-Aggctgggcatggtggctcatgcctgtaatcccagcactatgggaggccgaggtgggagg
-atcacttgaagccaggagtttgagaccagcctgggcaaggaaacaagaccctgcctctaa
-aaaatacaatttaaaaaagtatccaggcacagtggcgtgagcctatagtcccagctactc
-gggaggctgagctgggaagatctcttgtgcccaggagttcaaggctgcagtgagccatgg
-tcatgccactacactccagcctgggtgacagagttagaccctgcctgtaaaaaaaaaaaG
-GTGGGGGGCAGGGTGGGgaaggtttgccttgaccaggccgcgtgctaggtgccgggcata
-caaaagtgaaaaacgtgatttgtcctcagtgagctcacaggtctgaggagacacataaac
-ccaggaatggaaatgctttgctggcgatggacagtgagtctgggagaacattgaggagat
-gtttaacccagacaatggagtggggtgtggtcaggtcattccctggaggaggtgatgttt
-aagctgtggcatgaaacctcagtaggatgtgatgaccttagaacatggctacacgttctt
-tgacattcctcctttaaattaccttccctttgaatctgggctgggccttcatgatccatt
-tgtaaccaacaggacacagcagacatggtgctgcaggatttccaaggctaagtcacgctg
-aaccgccatgttgaaaggccaacagccaagactgccatgtggagaagcagcccgggccac
-gtgggaagaccatgtgtaggtagctgctccagttgacagctgagcccaggcaccagactt
-atgagttgagaagcttccaggggattccagcccctcataattcaactcactcccagctgt
-tggagggccttcccagcagaggcccagccatcacagagcagagacaagccatcccttcta
-tatcctgtctgaattcctgacccagagtccacgaacataatgagatggcagttgtccaca
-ctattaggttttggggcagtttgttatgaaggaataactggaacaataggataaggaaga
-gtgaggtgaaggaaaggactttacagatgccagcaacagtacatgggaagacctggtaag
-agtggctgacacagaagctaaccagcttgcggggaaggtgtggagagaggagggtgacag
-gcaagagtgagaaggaCCTTGAAGGTATTTGGACTTTATCCCGAGTCTTCACACTGCAGC
-CCAAGGGGTCAAGGAGTCtttttttttgtatggtaaacatggggtcttgctatgttgccc
-aggctggtcacaaactcctggcctccagagatcctcctgccttggcctcctaaagtgctg
-aaattacaggtgtgagacactgtgcccagccTCCAAGGGGtcttctcttttttttgagac
-cgcgtctcgctctattgcccaggctggagtgcaatggcgcaatctcagctcactgcaatc
-tccgcctcctaggttcaagcgattctcctgcctcagcctcctgagtagctgggactacag
-gcatatgccaccacacctggataatttttgtatttttagtagagacagggttttaccatg
-ttggtcaggctggtcttgaactccttacctcatatgatctgcccacctcatcctcccaaa
-gtgctgggattacaggcgtgagccaccatgcccagccGGggtcctttgaaaacacaaacc
-tgaccactgctgtaaacctttcgatggccccttactaccctcaggataaaCTCTTGAAAT
-TCAAGGCATTTTGCAGTTGACTCCCTCACTCTTTTATAGATTTATCTTCGGTCACTTTAT
-CCTCAGCTACGCCAGGCCACTCTCCAGTGACAATGCTTCCCGCCTCACCCATGCTATTTA
-TCTTTGCTCATGTGGAGGAATTAgtgggactttgggctaatcaccttgcctttcgaggcc
-tcagtttccccatctgtatgattaggtggttggactagaagtttttgttttgttttgttt
-ttgtttttgtttttttgagaccgagtttcactctgtcgcccaggctggagtgcagtgctg
-tgatctcggctcactgcaacctctgcctcccgggttcaagtgatttttctgcctcagcct
-cccaagtgactgggattacaggcatgcaccaccaggcccaggtaatttttttgcattttt
-agtagaaacagggtttcaccatgttggccaggctggtcttgaactcctgacctcaagtga
-tccacctgcctcggcctctcaaagtgctgggattacaggtgtgagccacgacacccagcc
-ttagatgtctcttaagagcatatctagcctggcattctaggagtctatgaAAAGGAGGGA
-GAAAGGTGTCTGTAGCCAAACCTGCCTGTCTGGCTTCTTCTAGGTTGCCTAGCAATGGAT
-GCCAACCCTCTCCCCCATCCTTGGGGGTTTCTTAGCAACCCAGTTTCTCACCCTCTGCTG
-TTTTCAGGGTTTCCTTTTAACTAAATGTCAAGTTTTGCTCTTTCTCCTCCAGAAAACCTG
-AGGCCAAGGGTCTCTGTGTAGAGCTGGATACAACCCAGAATACACAGAGACCTGGGTTTG
-AGGTCAGTGGAGGATTTGCTGTGTGACTTGGAGGTCTTTGACCTCTCTGGCTTTCATTTC
-AGACTGTGATTCCCTGTCATATGCTCCTCAGAGttcttcttcttttcttcttcttcttct
-ttcctcttcttcttcttcttcttcttcttcttcttcttcttcttcttcttcttcttcttc
-ttcttcttctcttcttctttcttcttcttcttctttcttttcttcttcttcctcttcctc
-ttcttcttcttcttcttctcctcctcctcctcctcctcctcctcctccttctccttcctt
-ctttcttcttcttcttcttcttttgttttttgagacctagtctcactctgtcgcccaggc
-tggagtgcagtggggcgatcccggctcactgcaacctccgcctccctggtacaagcagtt
-ctcctgcctcagcctcccaagtagctgggattacaggtgcacgccaccatgcccagctaa
-ttttgtatttttagtagacacagggtttcactatgttagccaggctgatctcgaactccc
-aaactttgggattacaagcatgagccactgtgcccagccTGttcttttctattttttgag
-atggagtctcactctgtcacttaggctggagtacagtggcacaatctcagctcactgcaa
-catccacctcccaagttcaaacgatttttctgcctcagccaccaaagtaagctgggatta
-taggtgaacaccaccacaccgggctaattttttgtattatttggtagagacgggttttca
-ccgtgttacccaggctggtctcagactcctgacctcaagtgatccgccagcatcagcctc
-ccaaagtgctgggattacaggcatgagccactgtgcccagccctctgtattgttctgatt
-ttagtatatgtgtgctgaaatgagcacTTCCCTCTTCTCTTGTATGCGTTTGGTTTGACT
-ACCAAATTTattcacttttgcaataaaccgtcactgagcacctactatgttccaggcact
-gtcttaaggactggggattcgtcagtgaataaagcagacatagtcccttccctcacagag
-cttatactctagtagatggaaacgtataatgaataaacagataagtgcacataatgatat
-catgcagtgaAGGGGACAAAGTGTAAGGAAGGGCTACTATTTTAGATGAGGAGGTTGTAT
-CAGTCAAGATGGGCTAGGGaagtcagagatggttgggaagaaaaagcctggcttccccct
-ttctccctccaacttcctgtgggtgcctcaccttgggtgacctcagctagaggccagctg
-acaaaggaggctgagtagcttccaggggtcagctctgcaaagcaggaaagagcaaggaat
-ccactggaagcaagaaggcCCAAAAGTACCTTGGGAGGTACGCCGCTTTTTCAGCTCACT
-CACTGCCTGTAAACTGTCAGGGACCCTAGGATCATTAAAAAATATTTTGAGggccgggcg
-tggtggctcacgcctgtaatcccagcactttgggaggctgaggtgggtggatcacttgag
-gtcgggagatcgagaccagcctgaccaacatggagaaaccccatctctactaaaaataca
-aaattagccaggcgtggtggtgtgtgcctgtaatcccagctactcgggaggctgaggcag
-gagaatcacttgaacccaggagacagaggttgcagtgagctgagatcacaccattgcact
-ccaccctgggcaacaggagcgaaactctgtctcTCTCTCTCTCTCTCTCTCTATCTATAT
-ATATATAGATAGAGAGAGAGAGAGAGAgtagtaaaatacagatagcataacatttaccat
-cttaaccatctttaggtgtacaactcactggatattaagtatagtcacattgttgtgcaa
-ccatcaccatcatccatcttgagaactcttcatcgtgcaaaactgaagttctggatccac
-tatgcactaactctccatttccccctccccctagctcttagcaaccaccattctgctttc
-tatatgtatgaatttgactatggtatatgtctcatataagcagaatcatacagtgtttac
-ttttcgtgactggtctatttcacttcacatcatgtcctcaaggtttatccattgcagcat
-gtatcagaatttccttctttttaaagctgagtaatattctattgcatgtgtatatcacat
-cttgcttatccattcatctgttgatagacacttgggttgcttccaccttttagctattga
-gaataatgttgctatgaaaatgggtttggaaatttctcttcaagatacactgctttcagt
-tcttttttttttctctctgagacagtctcactctattgcccaggctggagtgcagtggca
-caatctccgctcactgcaacctccacttcctgggtccaagcaattctcctgcctcagcct
-cccgagtagctgggattacaggctcacaccaccgcacctgatgtgtgtgtgtgtgtgtgt
-gtgtgtgtgtgtgtgtgtctgtgtgtgtttagtagggatgaggctttgccatgtttgtca
-ggctgctctcaaattcctgatctcaggtgatccgcctgcctttgcctcccaaagtgctgg
-gattacaggagtgagccaccacccctggcttcagttctttggggtatataactagaagta
-aaattgccagatcatgtggtaattctatttttactttttcaaggaatcactatgtgtttt
-ccatagcatctgcaccatttttcattgttatcaacaattcacagggttccagtttccccc
-tatccttgccaaaacttgttattctgttttgttttatggtagtcatcctaatgggtatga
-agtgACTAGGATCATTTTGAGACCCAAACAGTCACAGGCTTTTTTGTTGTtgttgcccag
-gctggagtgcagtggtgcaatcatagttgaccgcagcctcaacctccttgggctcaggtg
-aacctcccacctcaggctcccaaggagctgggactacaggcacacaccaccacatccagc
-taatttttgtgtattttgtagagacagggttttgccatgttgaccaggctagtcttgaat
-tcctgggctcaagcaatccacctgcctccagcctcccaaagtgctaggattataggcACC
-CAGCTTCATAGGctttttagcccaggcttgtgatttctttgtcagtataattctctgaaa
-aacttaggtttctggcagggggcagtggctcacgcctgtaatcccagcactttgggaggc
-cgaggcggacggatcacctaaggttagaagttcgacaccagcctgaccaacagggtgaaa
-ccccatctctaccaaatacaaaaaattagccaggcatggtagcatatgcctgtaatccca
-gctacttgggaggcggaagcaggagaatcacttgaacccaggaggtggaggttgcagtga
-gccaagattgtgccattgcactctagcctgggcaacaagagtgaaactccatctcaaaaa
-aaatcttaggtttcttatcgatttgactgtagttaatggtactaaaaccatacccacaat
-acttttcaatataTTGTCCTCAAGTCTGCTTTTTCCCTTTGCTTTCTATCCTAAAGCTGT
-CACTCTCAATGTAATGGCAATTAGCAAGAATAACAGGTGGCAGAGTTGCACCTCTAAAGT
-GATCTTGGCTCTGAGAGTTTTTACAGGACATTTTTCACTCAAAGCCTTTTAAAAATCCAA
-TCTCATACTTTAGTTGATTCTAGCCTTGAAGTACTTTAATTGATAAAAAAGAAAGTTCAT
-AAGGTCATTGGGAAGATTAATTATCCCAGCATATAGTAAATGCTCTATAAATGATACCCA
-TCTTTGTCACttttttttttttttttgagacggagtctcactctgtcgccaggctggagt
-ggcacaatcttgtattactgcaacctccgcctcctgggttcaagcaattctcctgcctca
-gcctcccaagcgagtagctgggactacaggcagcatgctgccactcccggctaatttttt
-ttttttttttttttcagtagagctggggtttcaccatattttctttctttctttctttct
-tttctttctttctttctttctctttcttttcttttcttttctttttctttctttcttttc
-ttctcagagtctctctctgtcacccaggctggagtgcagtggcatgatcttggctcactg
-caacctctacttcaagtgattctcctgcctcagcctcaagagtagctgggactacaggca
-tgtaccaccatgtccagataatttttgtatttttagtagagacagagtttcaccacgttg
-gccaggctggtctcaaactcctgacctcaagtgatccacccacctcagcctcccaaagtg
-ctgggatcacaggtgtgagccaccatgcctggACAAATTTTCCTATTTCTTAATAGATAA
-TCCATCTTGTTTTTCTCAAAAGTAGACAGTTTATCAGGTGTCGTGTCTCTCACCTTCCCA
-CCCTACTCACCTATAAACTAATATAACAATAACAGTaacaataaccataatttgctgagt
-tctaattttgttccaggtactttggataagtgtcttatatgcacatctcatttcactctt
-tcaacccctctgagaggcaagtacttaaattatcttcattttacagtcagggaaactgag
-gcacagagtgtttaaatcatgtaagcagtaagtagtggagctaagattcaaacgcagatc
-tgctggactccagagttcAACTTACAGACACTACATTGTGGCTCTTCTTGGTGGCCCCCT
-CCCCTCCTCCCCAGGCTCTCAGAGGATACAGGATCCCTCCTTTGCTAGTCAAGGCCAGCC
-CATCCCCCTGTATATTTGACTTCATCTCTTCCCACTGCCCCAGGATTTCATCCACCCCTG
-CTCTGATATCAGGGGCCCCCTCCCCTTCTGTCCATGGTGTGGGGCTTTTTGCACTTcaca
-cacacacacacacaggtgcacatacatacacacCCCTTCTCCAAACCACTCCACAAAGGG
-CCCCTGCCTCCTCActttcttgccttccacatcacaccctaaattctcctggccaaggtt
-cccactgacctccttgttgccaaacctaagtcctgttgtcccgctgtgtgtctcttatgc
-acttggcaaggctgagcaggtccttcttggaaatgtgtttctttggtttctatgacacAA
-TGCACCCCCACTCCAAAACACACATACACACATCCCAGATTCTTGCCCCCACCCACCACC
-ACCCGCTATCTCTCTAGATGCTTCTGTGGTTCTTTCTCCTCCTCTGACCTCTTCAAATGT
-AGtatggtggttttaaaacatgtccataatttttttttttttttttgagatagagtctca
-ctttgttgcccgagctggatacagtggtgcgatcaggtgcgtgccaccatgctcagctaa
-ttttttttaacttttaagttttttggagagataggggctccctgtgttgaccaagctggt
-ctcgagctcctgggctcaagcgatcctcccatcttggcctcccaaagtgctaggattaca
-gacttcagccatcgtgcccaaccatgtctataaattctttaagactcctcccactgagta
-acagagtctgtttcttccccttgaatctgagccaaacttagtgactcagactacagtaga
-aatgattctatggtgacttgtgaggctgggtcataaaggcaatgtggcctgactcatggg
-agtcctgagctacagtgtaagaggtgtcaacactctcagctgccatgctgtgaggaagcc
-caactggctcatgcagagagacaacatggagaggccttgaggctatatgaagagagatgc
-ttggccagctcccagctgctccagctccccagtgctccggcttccactgtaaccacaaaa
-gagacaccaaggcagaaccacccagatgagcccttcccaaattcctgacccacagaaatt
-gtgaaagatgataaaaatcattggatttggagtggtctgttatgcagccatagacagcca
-aACAGAGGCAtcttaatctgcttgggctactataacaatttagcatggagcaggtggctt
-gacaacacacatttattcctcaggtctgcagggtgaagagtctaagatcaaggtgctggc
-aaattccattctgctggcaaccaagggcctgacttctggtgtacagacgaccatcctatt
-gtagccccaaatggcacagagaagaagcaagctctcaagtctcctcttatcaggctgtaa
-tccctcccaaaggcccacttccaaataacatcaccttaggacttcaacatatgaatatga
-gggagatacaaacattcagtctgcagcaGAGGGCTTCGTTAGAGCTCTGACCTGAGCACG
-CTTCATCTCAATGTCAttgtttttgccagctctacatccactgccctttttttttttttt
-tttttttttttttttttttgagacagagtctcactcttatcacccaggctacggtgcagt
-ggcacgatcttggctcactgcaacctccgcctcccagcttcaagtgattctcctgcctca
-gcctccggagtagctgggactacaggtgcatgccaccacacccggctgatttttgtattt
-ttagtagagacagggtttcaccatgttggtcaggctggtctcaaactcctgaccttgtga
-tccacctgcctcagcctcccaaagtgctgggattacaggcatgagccactgggcctggcc
-ccactgccctttcttacagtaacagtatttcaatttccctttagggaagctcttcaagca
-ggttctcagtccaagaggtttctctgggttaagcactgccagccacccaaagggtgagca
-agtaaccagccaatcagagacactccagtgggttcagtaaatgacatattatctaactgg
-ggtgaggggaatcaacatcagggcttttcctgagactataaggagaaacagattcttttc
-ccagcagttaaatttgaagtctgtggccattttgctaccatatagggaaaatctgcctga
-cattgaagccaacacagatgagggaagagccaagagataaagagaaagatcctgagcatc
-tggatacagccatgcctgaagccagtatcccttgacttctcaattatgtgagcctttata
-ttccctttgtttaaagccagttcaagttTAAAACTGCCATTTCCAGTGAGAACAATTCCC
-TATGTTGTATCTAAGGCCAAGACCTTGCCCCTGACTCTAGGCCAGAATGTCCTGTACAGT
-GCCATTCAACTCTGCCAAAAGCAAAGGGCATCAACTTCTCCACAACCTGGCTTTCCCTCA
-TCTATTTTACATCTCTGTTAATGGGAGCATCACCCACCTGACCTATAAACATAAAAGTCA
-GCCTCTATCctctctgtctctctccctctctctgtctctctctctctctctcAATCCCTG
-TCACTTCCCTTACTTCTTAGTAACCAAGTTCTGCCAACTTAACTTTATGGACATTTTTCA
-CACCTGCACCCTCCTTTCCATTTTTCCTGCCCACTCCAATTCTTCATCATTTCTCACCTA
-AATTTTTACAAAATCAATAGATAACTAACATAGAGGTGTATAGTAAAAAGTGAATTTCgg
-ccgggcacagtggctcatgcctgtaatcccagcactttgggaggccgaggcaggcagatc
-atgaggtcaggagatagagaccatcctggccaacatggtgaaacctcatctgtactaaaa
-atacaaaaaaaaattagctgggcatggtggcatgtgcttgtagtcccagctactggggag
-gctgaggcaggagaatcgcttgaacccgggaggcggaggttgcagtgagctgagatcgca
-ccactgccctccagcctggtgacagagcgagactccatctcaaaaaaaaaaaaaaaaaGT
-GAATTTCATTCCCACCCTTGCCATCAGTTACCCTCCCCCAAGGCATCTACTGTTACCTCT
-TTCTTGTCTATTTTCCCAGAAGTTCTCTATATGTGCCATCTTTTTGAGAATTTcaaatgg
-aggcatactatcaagacttttcagaacactgcatccttcttcacttgaagtgtgattaat
-ataaataattatagactaatttcttctttctaatggatgcatagtattccacaaagacat
-ataatgtacataactcgtcttccattgatggatatttaagtggtgtcccagttatctgtt
-agcacagaacaaaaccccccaaacctagtggtataacacaataaccacttgaatatgctt
-gtgggttctgtgtgtcaggaattcaggcaggacacagtgaggccagcttgtttctactct
-gcaatgtttgagtcttcagctaggaagatttgaagatttgaaggctgaagctgattcaaa
-tggctggccactggaatcatcttgttcttccccttccccttcgccttctacagtgcaatg
-gcatgatgtcggctcactgcaacctctgcctcccgggttcaagcaattctcctgcctcat
-cctccctagtagctgggattacaggtgcacgccaccatgcccggctatttttgtattttt
-agtagagacggggttttgccatgtggccaggctggtctcgaactcctgaactcagggtat
-ccacccgccttggcctcccaaagtgctgggattacaggtgtgagccaccgtgcctggcct
-catctggttcttcttcactcacttcttttatgcttgaactgggatgactcaaagctaagc
-ttagctgggactgtggtgccttcatgtgtcctctcctgatggtcttggcatcctgacagc
-atggcagcctctaagcagacatggagccctaggtaggcatggtgcctcaggctccaagag
-ctagagttctagcagaagttgcctgtacttttatgtctggaccttagaagtcagagtgtt
-acttccaccgtactccattggttgaagcagtcatcagctcacccaagattcagagagggt
-acaaggatcccacctctctacagaggagtgctaaagaatttgtagctatattttaaaacc
-accacaggttgtttccaatctgtagctattcctgtagttcattttacaggctaacatctc
-ttgaatgtcttcatttctctgcaccaggccaagacactgtcatctctgatctctttgctg
-atctcttgctgtcactcttgtgctcaacatgctgttctcttgacagcagccagaggtctt
-ttcagaatgaaaatcagatcacatcccacccctcttcataacccttccatggctccccac
-tacccttgggctgaagctcaaactccttaccttggcttatgaggccccacaaggtctcac
-ttctgcctgcctctccaatgccatctcctgtcacCATTTGGGGCCTTTAGTTTTGAGCTG
-CAAGAGTTCCTCCCATcacacacacacacatacacacacacacacacacttaaatgagta
-agtaaatagaacatacaaaacgcttaaacactttgcacatagtgagcataataagtttgc
-tactattATTAGACTGTCttcagtaaatatttactgggctgcctactcagtgccaagcac
-tatgggaggctcacagatacaacacgaacaagaAATATGTGGCCTTggccagacgcggtg
-gctcacgcttacaatcccagcactttgggaggccgaggcaggtggatcacttgagctcag
-gagttcaagaccagcctgggcatcatggcaaaaccctgtctctattaaaaatacaaaaaa
-ttagctaggcatggtagtgcgtgcctgtagtcccagctcctcaggcgactgaggtgggag
-gatcacctgagccttgggagatcgaggctgcagtgagccgtgatcatgccaccgcactcc
-agcctggacaacagagtgagacgctgtctcaaaaaaataaaaattaaaaaaaaagaaaaa
-GAAAAACTAAAAAGGAAGATGTGGCCCTATCTTGccgagctcattcttctgtgtgtcccc
-agcccctagcacaaggagaaacagaatagatgctcaaGACACAAAGGCATGTCTGTGCAA
-GGGTGCTTGAtgacggttggaggggcacaatgactttcccaagatcacacagcaaatgtg
-ggacaaaatcaagGCTGACAGCTCATGACAGGGTGGGAGGCAGATGCAGCTGCCTGGCAC
-AGGCTGGCTCTCCAGGGAGATGGGCAGTGGGCACGCATTGCCCAGGGCAGAACTGGGGCT
-AGGGGAGGAAACAACAAGGGAGGCTGTCATTAGCTCCTTCCAAAGTGGAGGTCACTTCTC
-TCCCAACCCCGAGTCCTCCACCCAAACTCCCTTCTCAAGGTACAAGGGCTGATCCCGTAC
-CAGGGATGGGTAGGGACTCAAAGAGGAAAAGAGGATGAAAAGAGGATGGGGACTGAGTGA
-GATGTGAGGACTCCAGAGGGATTAGCGGCTCTCAAGGCAAGTGGGAGGGGACTTCCCGGT
-AGGAGCCCGGAGACAGATGGGAGCCTGTGAAGAGGGCGGGGGCCCGGCGAGGAGAAGCGG
-TTTCTACGCTGGGGTGGGGCTCCATGAGGGGGATGGAGACCTGGAAAAGGGACTGACGGT
-GCAGCGAGGAGAGGAAGGCTCGGTTAAGGGATGGGTCTTCCACGGGAGGGGTGGGGAACT
-GCGGGAGTGACGGCAGCTTCGGTGAGGAGTCTGAGGGGCTGCGTGAGGGGCTGGGGCCCA
-GGGAGTCCGAGGGGTCTCTGTGAGGGCGCTGGGGTGTCCGAGCGAGCAGGGAACTCTGGA
-AGGGGACAGGAGCCGGGGGAGCTGCAGGCGGCCGCCGTCTGCAGAGCCAGGCCCTGAggc
-gggccggcgccccctcccccgccccgAACTGCGGCGCAGGCGCGAACCGGACCCGCCTTT
-GCTCGGCGGAGACAGCAGGCAGAGAGGTGAGCTTAGCCCTGCCCCACGCGCGGCCAGGCC
-CCAGCCCCAGCCCCTGGAGAACCCCCGCGCTCTGCCCGCATCCTCAGCCCGGGCCGTGTC
-CCGCCAGGGCCGGGACCTTTGCGCCTGAGCCTCGGCTTTGGGAGGTGGGGGTCCCAGGGA
-AGCAGCAGGGGCGGGAGACAGAAACAGCCCCATCGCCCCTCGACGCCTCAGGGTTGATAG
-GCTGGGTAGAGGCTTCAAAGGACACCCCCACCCCCGCCAACACTTCAAAAACCCATTCCT
-ACCCCTCTCTGCCTCAGTTTCTCTCTAGGGAAAAGGACGCAGTTGGTGTGGAGCAGGGCA
-TCGGTGGTCCTGTCAGGAAGAGTGGCGCGGGTGCCGGTGGGGAAGGGAGGCGGGAAATGG
-CCTGATTTCCCCGGCCGACACCCCCTACCCATCCCCCCCGGGAGGGCGCCCCTTCTCCCC
-CGCCCGGGCAGCGCTGGACGCTGTAGTGGGCGAGTCTGAGGGTCTGGGAAGGACACAACT
-GAATGAGGCTGTGCAGAGGCGACAGATTCCGTCCATCTTCGGGCCCTGGCTTCCGTCACT
-TCCGCCCGTGCCTGCCGCCCCTCGCCTCCTCCCTCCGCCGCAGTCTCCCCACGTCGGACA
-GCGCAGCCCCCTCCGCCTCCCGCTCCCCTCCCACCGAGCTCCTCCCGGCTCCCGGGCTGG
-GGACGCCTCCCTAGCGGTTCCCATGGCAACCCTCGTCCCGGGTGCCTgcgccccgccccc
-cgcccgccAGACCTACTCCGTGCAGCCCTGAAACGCCAGGCGGAGGGGCCAGGCCGAGCG
-GGAGGCAGCGTCAAGGTCACCTTCCCTCTCCAGTAGCAGCAGGACTGAGTGATTCCATCT
-ATTTGGAGTCGCGGAAGCGGTGAATTGGAGGGGAGGAGCTGACCCAGGTCAACAGCCCCG
-AAGCCCCCTCCACACCTCCTCACCTGTGGCCTTGAACAGTGGTCTCCGCACGGAGGCTCC
-TACCGTCCCCCAGGCCCCATTTCTTCTCCCCACCCGGGCCTCCCCAGCGCCTCGCCGGGG
-CGGGTACCGCGCTGGCCGCACCCTCCGCACAGCCCGCCCCGCCCGCCTCCTCCGGCGAGC
-CCTCCTCTCCAGACCTCTCGCCCTCCTCCTCCGACGGTCCTTCGCTTTCAGTCTCTGCCT
-TTTCCCGTTCTCTGTCGTGGCTTTTGTTGTTGTTGTTTTTCCTCCTTTCCTTCCCCGCTC
-TTCTTTTCCCTGAATTGTAAGTGAGGAGGGTGTACAGCCACTATTTATGGACAGGCTTTC
-TTGACAGCAATCTTGTGTGCCGTGTGACTCCAAGCAGAACCTCCAACCgtgtgtgtgtgt
-gtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtCGTACCTATCTGGGTATGTCTCTGTATG
-CTTTGTGAGTATGTCTGTGTGTTTCTCTGTGCTGTTTCGGTGAGTTTCTCTATGCAGGGA
-TTTGAGGACCACATCTGATTGGAAGTGAGGGGCAGCTGTCAGGACCTTTATCTTACCCTT
-TGGAACAAGCACATTGTTTCATTTTGCAGGAGGCTGCTAATTAAGGCTGAGGGCCATCAT
-GGAGACTGGGGTAGAAGCCCAGTCCTCCCCCAACACCTCCTGGCTTTGGTTCGGGCCAAA
-CCTGTATATGGATATACAAGTACCTTCCATTCCCAAGATCCGTGTCCACTTTTGTGGAAA
-AAAAAAAAAAGGTTATTTGATAGGTTTCTCTGGAAATCTAACAGCCCTTAAGCCTAAGAG
-TCTTTAATCCTGAGGGACCCTGACTTTCACTTCCAATGGAGTCAAAATTCATTGGAATCT
-GGAGGCTTTCAGGGGCAGTCCTGGGGAGGACCTTTTTATAGCCTTGCAGCTTGGGAACTC
-CAGCCCAAGTGTCAGCCATGACAATTACCCCCAGGAGGGGGTCTGAAGGGGAGCGGAGGG
-TGAGGCTCTCTCATTCCAGATATGGAGACTAAAAAGTTCAAGATGGAAGTAATAGCAAAA
-AAATTACAGTACTAATCACAACAGCTACCATTTCTCAGCATTAGAcacagtaactgtatg
-aaagaagtatgattattaggtctgttttacagatgaggaaactgagacccagaaaggtgg
-aagcacttgtctaaggtcacgcctccaggaagcagtgtgtccacgactccagtccaagtg
-gtcaggctccagagcccacagtcccaggtactGGGTGGCCTCCAGAGTAAACATGCAcat
-ttattgacacctccaattgccaggcactgggctaaggccttcagtgcattggctcattCG
-CAGTGTGCTTTGGGAAGGACAGGCTGGGATTCCAAAAGGCCAGACTGTGCTATGCGTGTA
-GGGTGTCTCGAGTGGGAGGAGAAGCGGGTGGGGCACAAAGATTTAGGGGGCTTATGAAGG
-TCACCATGAGCAGCTCCCACTAATCCCTCCCTCCGTCAGCTGCACCTTACCTGCTCCCCA
-GGGGTCCATGATGCCGAGCTGCAATCGTTCCTGCAGCTGCAGCCGCGGCCCCAGCGTGGA
-GGATGGCAAGTGGTATGGGGTCCGCTCCTACCTGCACCTCTTCTATGAGGACTGTGCAGG
-CACTGCTCTCAGCGACGACCCTGAGGGACCTCCGGTCCTGTGCCCCCGCCGGCCCTGGCC
-CTCACTGTGTTGGAAGGTAAGGCCAGATGAGCACCTCCCATGATTCCTCTGCCTTGATGG
-AGGAAATGAGTCTGAATTTGAGGCTCAGAGGAAAAAAGAAGAGATAGCgtagtagttagg
-agtcttgcacagtcaagcaacagaaaacccaattcaaatgggtttaaataatgaagggag
-ccttcattgTATTTGTATTTACAtacaaattatttacataattatttacatatttattGT
-ATGTAAATAATggtggctcatgcctgtaatcccagcactttgggaggctgaggtgggcag
-atcacctgaggtctggagttcaacacctgctctgtcagcatggcgaaaccctttctctac
-taaaaatacaaaaatggaccgggtgcggtagttcacgcctgtaatcccagcactttggta
-ggcggaggctgaggctggtggatctcgaggtcaggagttggagaccagcctggccaacat
-agtgaaaccctgtctgtactaaaaatacaaaaattagctgggtgtggtggcgggcgcctg
-taatcccggctactcgggaggctgaggcaggagaatcacttgaaaccaaaaggtggaggt
-tgcagtgagctgagatcaatccattgcactccagcctgggtgaaagagcgaaactccctc
-taaaaaaaaaaaaaaaaaaaaatgagccgggcgtggtggcaggcgcctgtaatcccagtt
-acttaggaggctgaggcaggagaattgcttgaacccaggaggcagaggttgcagtgagcc
-aagtttgcaccattgcactccagctgggcgacagaacaagactctgtctcaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaagaaaaaaGAAGGGAAAATGTTGCTCATTTTTTAGAAGAGA
-CCCAAGGTCCAAGGTTGCATACTTTCAGGCAAAGTTTGATCCAGCAGTTCAACCCTTTAT
-ACCAAGGACTTTGCAAGTTTTCTTAGTCTTCAGCCTCCTCATGGTGCCCCTACCCTGGTA
-GCCTGTTAGCTTCAGACTCTCCCCACATGTTCCCCAAATGGCCACTACTGTGTGGACTCT
-CAGGTCTTCACTCCACACCATCTAAGGGAAGTCAGCATTTCCTGTGGTATTTCCTTCAGA
-AAAGAAAATAgcctgtaatcccatcattttgggaggccaaggtgggtggatcacctgagg
-tcaggagttcgagaccagcttagccaacgtggtgaaacctcatctctactagaaatacaa
-aaattagctgggtgtggtgatgggcgcctataatcccagctactctggaggctgaggcag
-gataatcactagaacccgggagacagcagttgcagtgagcagagatcgtgccgttgcact
-ccagcctgcacaacaagagtgaaactctgtcttaaaaaaacaaacaaacaaaaaaTGGCC
-ACAGGTACtggcttacacctgtaatcccagcactttgagaggctgaagcaggaggattgc
-ttgagcccaggaattcaagatcagcctgggcaacatagtgagacttcatctctactaaaa
-ataaaaaattagctggatgtagtggcgcgggcctgtgatgcctactactcaagaggctga
-gccaggaggatcgtttgagcccaggaggttgaagctgcagtgagccatgattgtgccact
-gcactccagcctgggcaacagagtgagactctgtcaagaaaagaaaagagagaagaaagg
-aagaGAGAAAGCAAAATAGTAAgatattaaaaacatgttaccatttaccttagcaccaaa
-gaagagagaaatacttaggtgtaaatctaacaaaatatctgtaatatgagaagaactaca
-aaactcaaaagatatcaaataactaaataaatggagaaatagttcatattcgtggattgg
-aatagtcaagatgttagttcttcccaacctgatctttgattcaatgcaatgccaatcaaa
-accccagcacgttattttgtggacgtcaaAATGTCACCTCCTCAGGGAGGAGATCCCTGG
-ACTGAGTCGGGTCCCTTGCTTTACTCTGGGCAAACTCTGTGCCCATTCATTCTTCAATAC
-ACTTACCACTTTGCACACTTGTAGTTTATATGGAGAGGTAAAAGATTCAGAAATTTAAAA
-ATCATTTATAagaaacaatgcttttaattcccagaagtcctgacaagcattgtgttggct
-ctcattgggtcacttgccagccttgaactaattactatggttaagagatggactatgctg
-actggcAGGAAGTGAGGTTCATCTCACTTAAATCTTACTGTGGTTTCTCAATGGTAGACT
-GGAGTACCTTGCCAGGGCAGAGAAAAAATGTGAAGAATTGATGTCTTTAACAGCCAAGGA
-GACTAGTCGGCCAGGGTGCACCAATGGGTCAAGGTGTAGAGGTGGCAATGAGCTGAGTGC
-CTGCTATGGGCATAGCTCTTTGCTAAATATTCTCGGGAGACTGAGGCAGAGGGTCCCTTC
-TTTTGCTTTCAAAGGACTTCACTCTAGTGAGGAGGTAAGGTGCCAACCTCTGCAGAGAGG
-CCAACTTACATAACTTCAGGTCAGGTCTGTAGGGAACACCAGGAGAGGAAATGATCAAGG
-AAGACTTCCAAGGAAAGGTTAGTGTGTATTTaaaatttttaagcatcttcttattgcgag
-gcactgtgctaggctcttgggaacacagaatttaagacatgaggtccctgtcttcgagga
-actcTTTTAGCTGTGGTTTatttaatcattcagcaaacatttattcagcctttgctctgt
-gccggcacgtgctaggcacagaagactcctagtgagccaaaacaggcacagtctgctctc
-atggagctctcagtactgcgggagaggcagacgtcacttacatagcaaccaaaatacatg
-tccaagtgtgcacaatggtaagtgtattgaagaatgaatgggcacagtttgcccagagta
-aagcaagagacctgactcagtccaggggtcttctccctgaggaggtgaggtttgagatga
-gatctgatggtgcataggagttaacccaacagagacaggaaggtagaaaggATAAAGAGA
-TGAGTTGGGATGGAGGGAAACACAGGGTTGGCCGGAGAAACCCACTGCTAGGTGGGAGCT
-GGGAAGGAAATTAAGAGGCCTCAGGATTCCAAATAAAACATGACAGTTTATGCCTCCTGT
-CAGTTAGACCCCAGCAAGTGTGTTCTGTGATTCCCATCTCCTGAGGATGGATCAAGGGGT
-TACCCTTAAGTCTGGTGAGGATCCAAGGTGATCCCTTGGCCAGGGGCCCCTGGCTGACCC
-TGACTGCTTCCTGGTCTGTCTGCTTCTCCCTAGATCAGCCTGTCCTCGGGGACCCTGCTT
-CTGCTGCTGGGTGTGGCGGCTCTGACCACTGGCTATGCAGTGCCCCCCAAGCTGGAGGGC
-ATCGGTGAGGGTGAGTTCCTGGTGTTGGATCAGCGGGCAGCCGACTACAACCAGGCCCTG
-GGCACCTGTCGCCTGGCAGGCACAGCGCTCTGTGTGGCAGCTGGAGTTCTGCTCGCCATC
-TGCCTCTTCTGGGCCATGATAGGCTGGCTGAGCCAGGACACCAAGGCAGAGCCCTTGGAC
-CCCGAAGCCGACAGCCACGTGGAGGTCTTCGGGGATGAGCCAGAGCAGCAGTTGTCACCC
-ATTTTCCGCAATGCCAGTGGCCAGTCATGGTTCTCGCCACCCGCCAGCCCCTTTGGGCAA
-TCTTCTGTGCAGACTATCCAGCCCAAGAGGGACTCCTGAGCTGCCCACATGGCCTAAGAT
-GTGGGTCCTGGATCCTTCCCCCCTTCTCACCATAACCCCCTCTCAGTGTTTCCCCAACTT
-CTCCCTTTTAGCAGGGTCCCTTTAGAGCCCAACTCCAGGTCAAATCTGGAGCTCAAATCC
-CAGTGCTCCCTCCCCAGGAGTGGGGCCCCAACTCTTCCAAGATACCAGCATTCCTCAAGT
-CCTCCCAAAACTTCCTACCCACACCCTCTTCCCAAGGCCCTCAGGGGCAGAAAACATCTC
-CTTCAACCCGTCCCCACTCCTTCCTctgcatgaccttgggcaaacccttgccctttcaag
-ccatcagctcctgcctctctgccatgagggctttggatcagatTCCTCTTCTCGCCAGGA
-TGAGGACACGCACTGCCCTCCATAGACACAGATGAAGGGGTGGGGGTCATTCAGCTCGAA
-TGGGTCCCAGATGCTCACTTGGCCTTTCCCTGCAGGATGAGTGAAGACGTTTGCCTCTCA
-CAGTGTGTCTtctacctgcattttggcatcagagccccccagcccacccaccacaggcaa
-ttactagccctagttgataggtgaggtgggtgaagaaggctggaggtgacatgtccgagg
-tcacacaacaaagcagcatgcaggaactagaaacacatcttcagcctccTCCTGGGCCAG
-CTCTTGTGCTACAGGTGGGGCGGAGCCAGCCCCTCACCTTCCTGGTTCCCTGAGGGTCCT
-CAGGGTGGAGGACAGGTTTGGCCCAGAAAGACTAGCCAGAGGCCTGATGGTCCCAGGTGG
-CTCTGGATATACTTTGGATATGGATTTAAATGGTCTCTAAGAGCCGGGGGTAGGGGGCAG
-GAAAAGTGGGTTGTCTTTGCCCCTCAAAGTCCACCTACCTAGAAACCAAGCCCACGGTCT
-TGGCCGTGACCCTGATAATAAATGGGCTCTCTCAGAGGCGCCAGCCCCTCCCTCCCCAGC
-CGGAGGCGTCATCTCTCTTCTGTACCACTAGAGGGAGCTCTGATGCAGCTGGAGAGCAGC
-GCTCAAGGCTCTCGCCCCTCCCCTCCCTAACCCTTACCTTCAGTCTCCACCAGCCTGAAG
-GGCCTCCTAGGGGATCCTCAGGCGGCCCCCACCAGGGCACACCCTACTGTCCTTGTGCCT
-CACGCCCCCTCCTCATCCTGCACCCCTTCCATCCCACCTTCCCTTTCAATAAACAGCTGG
-GATGGATACTGACTTTGTTTCCTTTCTCCCTGGCCACTGGGGCGTGGGGAGGAGAAAGAC
-ACAGACTCAGgagcacctactgtgtgctgggcacgacccattatttctcattcgctcctc
-aggataacctgttgagaaaggaattattgtcttcttttttttttttttaagatgttgtct
-cgctctgtcgcccaggctggaatgcagtggggcgatcttggctcactgcaacctctgcct
-cctgggttcaaccaattctcctgcctcagcctcccaagtagctgatattacaggtgcacg
-ccaccacgcctggctaatttttgtatttatagtggagacggggttttaccatgttggcca
-ggctggtcttgaactcctgacctcaaatgatccgcctgcctcggcctcccaaagtgctgg
-gattaccgggtgagccaccttacccagacttattgtcttcattttacagatgcggtaact
-gatgatcagagaggtgagtgatttATTTTTTAtttttatttttaattcttttttattttt
-ttcgagacggagtctggctctgtcacccaggctggagtgcagtggcacgagctcagctca
-ctgcaagctccgcctcccgggttcatgccagtctcctgcctcagcctcccaagtagctgg
-gactatgagtagctgggactacaggtgcctgccaacacacccagctaattttttgtattt
-ttagtagagacagagtttcaccatgttagccagcatggtctcaaatctcctgacctcgtg
-atccgcccgcctcggcctcccaaagtgctgggattacaggcgtgagccaccgcgcccggc
-cTATTTTTAATtctttttatttcagtagcctttggggtcaaagtgggttttggttacatg
-aattagttctatagtgattctgagattttagtacacctatcacctgagcagtgtatactg
-tacccaatacgcagttttttatccctcatcccctcccaacctccctggactcagtcccca
-aagttcgttatatcactctgtatgcctatgcatcctcatagcttagcttccgcttatata
-agtgagaacctaccgtatctggatttccgttcctgagttacttcacttaggataatggcc
-tccagctccacccaagtcctgcaGTGGATTTAAATGCTCAGCCTAGGGCCTGGAGGGGTG
-GCTGggccaggcgaggtggctcacgcctgtaatcccaggactttgggaggccgaggtggg
-tggatcacctgaggtcaggagttcaagaccagcctggccaacatggtaaaaccccataac
-tactaaaaatacaaaaattagctgagcatggtggtgcatgcctgtaatcccagctactcg
-ggagactgaggcaggagaattgcttgaacccgggtggtggaggttgcagtgaaccaagtt
-cacaccattgcactccagcctgggcaacagagcaagcctctgtctcaaaaaaaaaaaaaa
-aaaGTGCTTAGCCTGATTGGCCTATTGCCTGAGTGTGGAGCTCCTGTCTTTGGGTGGGAA
-GGAGATTTCTCAGCCACCTTGAGAACACACTTCCTCTAGTTCTGAAAGGAATGTGAGGGC
-CAGGGTGTGGGAGAGGGGGCTGAAGCCAAAGGTAAGATCTTTTCCAGGCCTGGaagagta
-attaaccccttttggcactcaccaggggctgggccttgttcttagtgccttacagaattc
-gggaattcatttaaccaggacgacaacctctgaggtggcggctattattctcaaacctag
-tttttcctaaactccaggcttgcgttcccatctgcattcacctggatgttgaatttaaac
-tcaactatctcaaactgttctccttgttaccacccctccctgaccaaacctgcctctact
-atgctgcccacgtcttagagagtagcgtccccattcttctggctgctccagccaaaacct
-cctctctttcctcacaccctgtatccaatccatcagcaagtcctgtcaactcaaccttgg
-aaatatatcctgtacccaactacacctcgacatccccgtggctgattccatggtctgaac
-caccagcgaccagcgcctcgatctggatcattgcaccagcttcccccggtctcctggctt
-ctgagttttgaaccccaccctactccacgccttgactccccaagtctaattactacacag
-tagccagacagatcttgttagaacataaactaggtcatgttcctcctccgctccaaacct
-tcccatggctcccacctaactcagagtagccaaaaccctccctgtggcctccaaggccct
-acacaatttgctgatttccactccccccgcactttcctctgtaaccccaactcccaccac
-tctccaggttcctgtgtcctctccagccaggatcctgactcagggcctttgcctcactgt
-tccctctgctggggtactcctccccagttgacgacatgggcagttccttcaagtcgttgc
-tcaaacatcaccttctcagcaaggccttccctgagcagcctattagaattgcaACCAggc
-caggcgcagtggctcaagccagtaatcccagcactttgggaggccgaagcaggtggatct
-cctaaggttgggagttcgagaccagcctgaccaacatggagaaaccccgtctctactaaa
-aatacaaaatcacccaggcatggtggcacatgcctgtaatcccagctactcgggaggctg
-aggcaggagaatcacttgaacctgggaggcggagattgtggtgagctgagatcgcaccat
-tgcactccagcctgggcaacaagagcgaaaccccatctcaaaaacaggaaaaacaaaaaa
-caaaaaaaTGCAACCATGCCggccaggtggagtggctcacacctgtaatcccagcacttt
-gggaggccaacgtgggcagatcacctgaggtcaggagttggagaccagcctgggcaacat
-ggtgaaaccctatctctactgaaaatacaaaaattacccaggcatggtggcacgtgtctg
-taatcccagctacttgagaggctgaggcatgacaatcacttgaactcgggaggtggaggt
-tgcagtgagccaagatcgcgccattgcattccagcttgggcgacagagcgaaactccatc
-tcaaaaaaataaaaggaaGCTAACACAGAGTATAAATGGTGCAggcagtttgacaatatc
-aaaatagaaaatacacatgccctttgatttctccctcttatgcaggtggatctatagatt
-caactctacatgttggaacactatagtattatttgtaattaaagcatttggaaacaacct
-aaatgctcatggtaggggactattaataaaatacggtaAggctgagtgcagtggctcacg
-cctgtcatcccagtactttgggaggccaacgcaggaggatcacttgaggccaggagttca
-agaccaacctgggcaacatagggcaacatagcaaggccccatctctacaaaaaattaaaa
-attagctgggcatggtggcacacgcctgtagtctcagctattaatatttgggaggctgag
-gcaggaggatcacaccactgcactttagcctgaatactgagtaacaaagcaaaaccctgt
-ctctcttaaaaaaaaaaTTGGGGGGAAGGACAAGTCTTttttcttttcttttcttttctt
-ttctttttttttttttttttgagatggaatttcactcttgttgcccaggctggagtgcaa
-tggtgtgatctcggctcacggcaacctccgcctcctgggttcaagcaattctgcttcagc
-ctcccgagtggctgggattatagtcatgcgccaccacacctggctaattttgtattttag
-gtagagacggggtttctccatgttggtcaggctggtcttgaactcccaactcctggcctc
-ggcctcccaaagtgctgggattagaggtgtgagccaccgtgcccagccAGGacaagtctt
-cttacagaagaattccaattagtaaatgtagaaggattgagagaaattgaaaaatcatca
-ttagaacaccggaataataattgctgcaggcaacatctaccaatgaacaataaaatgagt
-gggtgaaactttaaggagaaacaaggttttttttttagaaacgggatcttactacattgt
-ccaggctggtctggaactcctaggctcaatgggatcctcccacctcatgctccccagtag
-ctgctactacaggcacataccaccccaccaggcttgaaacaaaatatttgcatagcctca
-aagtatctatccccaaatatgtattaattagtatggtggttttaacatatgcatacatgt
-tctttgatgctctgccatctaggaaatggagcttaatttttctcctcttgagtgtgggct
-ggactcagcaacttgcttctaacaagtagaatgtggaaaggcaaaaacagtgacttcaca
-gtggaaaaatctggcagacaccaccttaaccaaatgaaggctggcaccaccagtcaaaag
-tcttgttgatatcacagcctctgaaatgatgtggtgagaagggcacttggcctgagtggc
-attcttcccccaaatccgtaacgtcagcctaatcatgagaagacccattctacaaaagat
-ctgaccagcactcttcaaatgtgtccaggtcacgaaagacaaggaaaggacaagaaacgg
-tctcaggttggaggagactaaggagacgtggctgaaggatacacaggatctccctgtact
-gtccatgtaactcttcaataaatctacaattatttcaaaatagcaaaaaatacgattGCT
-ggccgggcacagtggctcacgcttgtaatcccagcactttgggaggccaagaagggcaga
-ttacttgaggtcaggagtttgagatcagcctggccaacatggtgaaaccctgtctctact
-aaaaatgcaaaaattagctgggcgtggtggcatgtgtctgtaattccagctgctcgagta
-gctgaggcaggagaatggcgtgaacccgggaggcggagcttgcagtgagccgagattgcg
-ccactgcactcccgcctgggccacagagcgagactccgtctcaaaaaaaaaaaaaaaaaa
-aTTACTGTGGTCAAGATGGAATAACAGGGATCTGGTTTAACACACCCCAAAAAGGACCTA
-AGAAAGGACCATTCCCTCTCCTCTCTGAGGTGGGAAGATCTGGGAAGGAGAGGAGGCTGA
-CCAGTGGGGTCTACCTTCTGCTCCACCCCTCTTCTATCCAAGAGTCTGAGCACCCAACCC
-CCACACCACCCTGGAGGCTCCCGCCCTCGTGCTGAGTCTGGCATGCCCTCCCCATCCCTA
-CTGGCCCAGGGGACTAGGTTAGCTCAGAGAAGCCCTTCTAACTCACCCACAACTGGACCA
-AAGAAGGATTGATCTGGGGCCACTGCCTGGTCCCTGGGAGCACTGTGCTAGGGCAGGGGG
-CTGAGATGCCCCAGGGTAAGAGACAGAACAGTGAtttttttttttctaagacagagtttc
-gctcttattgcccaggctggagtgcaatgcgcgatcttggctcaccgcaatctccgcctc
-ccaggttcgagcgattctcctgcctcagcctcccgagtagctgggattacaggcatgtgt
-caccacgccccccggctaattttgtacttttagtagacacagggcttctccatgttggtc
-aggctagtctcaaactcctgacctcaggtgatcctcccaccttggcctcccaaagtgctg
-ggattacaggcatgtgccaccgcacccggccAAAAACAGTGATATTCATATAGATGGGGG
-AGGGATTAATGGGGGTGGAGTGAGAGAGAGCCTGCTGGAGCAGTCCGAAAGGCAGGCATT
-CCTTCTGTTCAGCAACATTCCTGCCCCCACAATCTCCTCCCACAACTTATATCTAGTgca
-ggctgagagtgaatctgtctgccagtgttcaagccactgtgtgaacctgagtttcttaac
-cgttctgagtgtcaggagtttttttcatctccaaaataggagcaacaaggataccaatcc
-cttgagattgtatgaagcttaatgcacttaacacagcacctggcacgtagacatgctccc
-taaatgccagctgttattatGAAAGAGAGAAGTCTGAGGTTCAGAACTAGCAGGCAACAC
-ATAATCtataatgatggatggctcagacagggtcctgtcctatagggactcacagtctag
-tggaaaggacagtcctgtggacagcaaatggcaaTATACCTGGGTAAGTACTGTAATAGA
-ATAACAAAGTAATATCCTATCACGGGGCAGTCACGGGGGCAGTGAGAGACAagcgcttgt
-ccatgccaggctctgtactcagtccatcacatacattaggtcttgcagtcctcataccac
-cataaggtggttaccattatctccaattcacagaaaagcaaacagtatggagtgtttaag
-cgtcctgtccgagatggcatagctagtggagctgaaatttgaacccaagtaatccaggtc
-cagaatGCCCCGGATGCAGAAATGACCACACAGATTCTACCAATGAACTAACCTGATAAG
-GTTGGAGGTCATACTCATAACCCCTCACACAGGTCCACACAGACACAGGCAAGCACACCC
-ATGTCTATTCAGATACACACCAATTCCTGTCTATGACGAGCGCTCAGAAAATCCTCCACA
-ACACCACACCAGGAATGATGTGCATTTTGAGAAAAAAAAAAATCAGCTCTGAAGACCTCA
-CAGACACATGCAGTGAAATGTAAATGGAGGGACCCACCCAAGTTCTTGAATAGCACATTA
-CATGCCTGGATGCACATCAGCGGGCATGTAAATGATGACGAGGAGGTCTGCAGACACTGA
-CACGCTGCATTTGCACTCACTCTGCTACTGAATTTTTTAGCagctacatttactgagcac
-ctactgtatgtaaggAAAGATAAAGCagccgggagctgtggctcacgcctgtaatctcag
-cgctttgggaggccaaggcaggtggatcacctgagctcaggagaccagcctggccaacat
-ggtaaaaccttgtctctactaaaaataatacaaaaattagctgagtgtggtggcatgcac
-ctgtaatcccagctactcaggaggctgaggcaggagaatcgcttgaacccaggaggtgga
-ggttgcagtgagccaagatcacgccattgcactccagcctgggtgacagaatgaaactct
-gtctcaaagaaaaaaaaaaaaaaaagtaaaaaagataaagctcagagaagtgaagtggct
-tgcccaaagtcaaatggctgagattcaaaccctggccctataatattaggcaacggtgtc
-tccctccaccactgtgcAGATGCATCCATGAGTGAAGAGATGTGCTATGGCTGGATTCCC
-TCATTGACATTCCCTGTGACCTTGGACATGGCATGGCCTTGTCTGGCCCACATTCTCATG
-TTGAGTCCATTCACAGGTGTGCTCCATGGATGTGCATGGATGGGACCGGCAACCCTGGCC
-TTGCTCTGAGTCTCAGCTTGGCTTGGTGTCACCAGGGCTGTGAGCTTCCAATCCCAGCCT
-TGCCATGTCCCAGAGCACATGGCTCAAAACCAAGCTCTGGGCATCAGGCCAGCAGGGCCC
-CTGTGATGGAAGAACTGACAGGATTTCATAAGCATCCGGCCCGGGACACGTGGTCAGGGC
-AGGGAGAAGGGAGATAAACAGGATGTCCACCAGGGTGTGCACCTGGGCAGGGTCCATGGA
-CCAGGTGTGGCAGGGGAAGAGCTGTCAGGACTTGGCATCTGATGGGCACTCAGCAGATAT
-AGGCTGTGTGAGGGGAGGAGTTTGTGGGGAGGCAGGGCTGCAGCTTTGCTTCCATCCTGG
-AGGCCAGGAATGAGGGAGTAAGTGAGCCATTGACTCaatgaatgaatgaatgagcgagtg
-agtgaaggaaggaaggggtaagtaaataagtgaagaatgGAATGGGGGAGGGAGTGAatt
-tatttatttatttatttatttattttgagacagggtcttgctctgttgcccaggctggag
-tgcagtctcagctcactgcaacctctacctctcaggctcaagggattctcccacctcagc
-ccccagcatagctgggactacaggcgcatgccgccacatcccgctaatttttgtattttc
-tgtagagatggggtttcgctatgtcggccaggctggtctcaaactcctgggctcaagcga
-tctgcctgcctcagcctctgcagtgctgagattacaggtgtgagccaccgtgcTGAGCTG
-TGAatttattttttacacaaatctgagtgctcactctgtgctggccctggacgggtctct
-gtggatgtctggtgagcaggatggacacagcccggtcattgcaacgctaaaagCTTGAAT
-GACACCAGTCAGGCTGGGGAACTGGGAGGGCCCTTGACATGCAGAGTGACTCAGCCAGTG
-TGAGCAGGGGTTGTCAGCATGCCTAGGGGAGCAAGAGACTGTGAGAGAtgtgtgtgtata
-cttgtgtgcctgtgtgtgtccgtgtgtacacatgtgtgcgCCGACACAGCCAGGTGTTGG
-CCAATGCAGGTGTGGTGTCCTCAAGAGCACAGTGCATCCTGATTCTTCACCCTCCCAGGC
-CTCCCCTGCCCCTGTTGTGTGCCAGCTGGGCCTGCCCCATGTTATGCCTGACGCCCACGC
-AAAAGCTGCTTCTTCCAGTCACAGGACAAAGGCATCCTCAGCCCAGACCCTGTACCCCAG
-GGGTAAAGACCTCTCAGACCCCTAGTGCTCCTCAGCATGGACCTCTCCACCAGGAGCCTC
-AGAGTTGTGAGAAGCACAGGCACCCAAAGCCCACCGCCCTGTGTCCATGTGCATGGAGTG
-TGCCCAGGTACACGCAAGGGCTGGAGATGCCCCAGGGCGGTCCAGACAGACGTGCAGATG
-ACACATTGGCCACTGAGTTTCCACAGACACTGAGCTAAGTGCTTTCGAGACACActgggt
-gaccttaggcgtatcaccctctctgagcctcagtttctaatctaaaagtagggtaattat
-actcacttccagtcttgttagaataactcaatgCATGATCAGCTCAACACATCATGATTA
-TTTTTCCTGAGTTCCTGCCTTCCCAGCTATATTGTCTATTCCTCAACAGTACCCACTGAG
-TCTTATATCCCCGTTTCTCCTATGATACTCCATTACACAGGACTCAAATAACTACCTGCT
-CTAAGAATTGCTGAGTGACATGTAGTCCTCATAAATAGCAATAATAGTCACTAACATTTA
-TATAACaacaagagccagcaattttgattttttattgtgtcaggcattgtgctgaacact
-ttacattccttcattcatttgacaaacattcactgaacacctggtaggtgctgggctctg
-tgctagacctgcagatgcagcatctctgccctcaaggttcttacattctgatggggaaga
-agagacagacaaaagacagtttggcggggcacagtggctcacgcctgtaatcccagcact
-ttggtaagccgaggcaggcagatcacttgaggtcaggagtttgagaccagcctggtcaac
-atggtgaaacccctgtctctactgaaaaaatacaaaaattagccaagtgtggaggtaggc
-atctgtaatcccagctactcgggaggctgaggcacaagaatgacttgaacctagaaggtg
-gaggttgtagtgagcagagatcgagccactgcactccagcctgggcgacagagcgagatt
-cagcctcaaaaaaaaaaaaaagataatttaatacataaatgggataatttcaaaccttga
-caagtgctacaaataaaataaggaagagttatggattagagacaaactgcagggattagg
-tggggcatgatgcttgatgagtgatcagggagggcctctctgaggagcaaatatttgatc
-tgagacctgaagaagaaggaagagcctggaaagatacaggaaaagttccaggcagatggc
-atagcaagggcaaaggccctggggcaggaagaacttggtaggttcgaggactaggagaaa
-gggaccatagctggagGATGATTCAGCAAACCTGGCAGGTCTGTCCTGGATGACTCAGCA
-AGCCTTGCAGGTCTGTTCTGGTTTCAGAACCCAGGCATTTTGTCCTTCACTCCAGGCTGC
-CTCAGAGACATGCATCCCTGCCATACACAACAATGTGTGCACGCTGGCACACATGCACAT
-GCATGCACACACACACTCTGCATGCTGACACACAACTAAGGGCCGGACCAGCCATGATAG
-TCTAAGACACTAACATTTTTCTCTAGTGTCTTGTGGGGCCAAGTAGAAGGGCCAGATGTC
-ACCTTTGCCCAGCCTTCCAGAAGTTCTGGGCCAAAGAAAGATTAAATGGCAGGAAGAGAA
-AAATGGCTTAATAAGGAGGTGACGGGGAACTCGGGTGGCCTGTGGGGGTGCGGAGATGGG
-GGGAGATGATAGAGATGTGAGAGCCCATGGGCACATCCCCTCTGGGGAAGTGAGGGAGCA
-CCGAGAACAGAGAAGCAGAGGGAGTGGAGACGGTTCTCAGAAGCACAGGGCCTCCACACT
-CACCACAGCCCCTACTCAGCCGACATGCCTTGCTTCCTCTCACCTCCCCTGGTTCACCTC
-AGAGATGGGACACTCATTGCCCACCAGGGCAGCCTGGGTGGTGCCAACTGTGAGAGAGCT
-CCCCTTCCACATCTGCCTTTGTGGCTGTAAAATGTGGAAAGaataagagaaatacctatg
-aaatctgcaggaagatactttcttttttttttttttttttttttgagatggagtttagtt
-cttgtcgcccaggctggagtgcagtggagcgatctcagctcactgcaacctccgcctccc
-aggttcaagcaattctcctgcctcagtctcccgagtagctgggattacaggtgctcgcca
-tcacacccagctaatttttttgtatttttagtagagatggggtttcgccatgttgggcaa
-gctggtctcgaactcctaacctcaggtgatccacccacctcagcctcccaaaggaggctg
-ggattacatttttctaaatcagttcggtaaaaatcaaaaattttgagaacacctggtgtt
-gtagttctgggaagcaggtactcacatgctttgctggcaggaggtagattgataacaatc
-tctatagaggaggagccagagatctctcttaaaagtgcaaatgcacaaacttttgactta
-gaaattctgcttctgggCAGGGCGCGGTGGCTCACGCCTGTGATCCCTGCCTCCCaggcc
-aaggttgcagtgagctgagatcgcaccattgcactccagcctgggcaacaagagcgaaac
-tctgtctcaaaaaagaaagaaagaaagaaagaaaaattctacttctaggaaattagctca
-gaacttctctccacacccccatgtatgaacactgcagcattttttgttatagcaaaagac
-tggaaataattaactgttcattgacaagggatggtttaaataaaccagtacattcctaac
-catggaataggaccaagctgtaaaaactgaccaggcaggtctttctggactgacacggaa
-gagtccccaagataaattgttaaataggaaggaaaaaggcaatctgaaggacatggagtg
-tgctcccatctgtgtaaaaaagtgacaaTAAATCCTCATATTTTATGTCTTGAAGGAAAC
-ACGAGAAAATGGCTTGACCCCAGGAAGATGAACTAGGAGCTGGGGATAGGAGTGGGAGGG
-AGACTTCTCAAGTATTACTCTTCTGTGCCTTTGAATTTTGAGCTAAAATATTTAaataaa
-atattaatataattaatataatacaattaataattaatattgaataaaataaaatatCTA
-AAAATCTGCTCCccgggtgcggtggcccacgcctataatcccagcactttgggaggccaa
-ggctggtggatcacctgaggtcgagagttagagaccagcctgaccaacatggagaaaccc
-cggctctactaaaaatacaaaataattagccgggagaggtggcgcatgcttgtaatccca
-gctactcagcaggctgaggcagaagaatcgcttgaacccggaagacggaggttgcagtga
-gccaagatcgcaccattgcactccagcctgggcaacagaagcaaaactccgtctccaaaa
-acaaacaaaaaaacaaaacaaacaaacaaacaaaacCACAACTGTCTGCTCAAAAGTGCC
-ATCCTCCTACACACTCCTTGCCCTCAGCTAAGTTCTGTCCCCATGGAACTCTCCCTGGAA
-GAGACAATCTGTCTCCCAAGAGAgcaggcctatgtgtgagtcctggttccatcactgacc
-ctaagtgtgacctcaggcaagacactCCCACCCCTGACTTGTACTAGACAGTTCTCCCCA
-GCACTGACATTCTGTCTCTCCTGCTGGAGGGGCAGGAGGGCAGGCACAGTGTCTTCTTGC
-TCTGTGATTCATTCAGTTCACTTAAACTGAGTTACCTACTCCAGGCCAGAGTTTGGGTTC
-ATCCATTTCTTGCCCTCCATGCCCACCCCAGGGTCTGGCATGGGAGTTGGTACCCTATAG
-GAGTTCTGAACAGACTCAGCTTACGGATGAGGAACAGACGGTGGGTCAGATGCGCGGTAA
-GGAGGGTCAGGTACACGGCCCATGGGATCGAATAGATTCATGGGTGGGtctttaagacaa
-ccgccttcactcaatcctaagccctccccacagctaccaccctattttttctcccctttg
-cagaaaagggctttgagaaaattgtctatcctcgctgtttttaattagtcttctctctct
-ctctccctctgagacaggatctgctctctcacccaagctggagtgcagtggcgtgatcat
-ggctcactgcagcctcaacctcctgggctcaaacgatcttcccacctcagcctcctgagt
-agctgggactacaggtgtgcactaccatgcctggctaatttttgtattttttgtagagac
-tgggttttgccatgttgcccaggctggttttgaactcccaggctcaagtgatccatccac
-ctcagcctcccaaagtgctgggactgcaggtgtgagccaccacacctggccctcttgtct
-cttaagtccatttaatcatgcttctacctgtcacttccctagttgaaactgctcttgtca
-atttcaacacattgctaaatccaatgtgttcagttctcattcttcatctttttttttttt
-tttttttgagacagagtcttgctctgtcacccaggctggaatacagtggcacgatcttgg
-cccactgcaacctctgcctcctgggttcaagcgattctcctgcctcagcctcccgagtag
-ttgggactacaggcacaagccaccaaacccagctaatttttgtatttttagttgagacgg
-catttcaccatgttggccaggatggtctcaatctcttgacctcgtgatccgcccaccttg
-gcctccaaaagtgctgggattacaggtgtgagccaccgcacccggcccattcttcatctt
-cttaactgatcaacagtttgacacagctgaccactccctgctctttgatgtacttctttt
-cacttggtggccaggcctccactctctgctggttttcctccttctcaggctccctgcttc
-tcccattcctgttggagcagtgaggacttggtccctggagctctcatccagtctcacgtc
-tatgactcccaacactgtatcctcagcccagacctctcccctgaactccagcccatacat
-tcaaatacctacctgatgtctctttgaggatgtcaaaagacatgacagactccacagaac
-caaagctgaacctgggcttcccccaaacacctcgctccatgtcatttgatggcagttcca
-tacctgtcaccgttcaggccaagaaaccttggaagcaccttgacacctccttttccctca
-aactccacatctagaccatcagcaatcctgttggctccacctttaaaatatacccagaat
-ccagtcacagctcacctctagcatggccactgccctgctctgagccactggagtttaaga
-gaattattgcaacacctgctcccttgtcttcctgtccttgcctcattcagtctattccaa
-gtacagatccctaaatgattttattttaaaagtaagtcaaggctgggcatggtagctcat
-gcctgtaatcctagcgcttgaggaggccgaggaaggaggatcacttgggtgtaggagttt
-gagacccacctgggcaatgtggcaaaaccctgtctgtacttaaaaaaaagaaaaaaaATg
-gctgggcatggtggctcaccctgtaatcttagcactttgggaggctgaggcgggtgaatc
-acctgaggtcaggagttcgagaccagcctggccaacatgatgaaaccccatctctactaa
-aaatacaaaaattagccgggcaaggtgatgcacgcctgtagtcccagctactcaggaggc
-taaggaagaagaatcactggaacccaggaggtggaggttgcagtgagccaagatcgcgcc
-actgcactccagcctgcatgacaggagcgagactccatctcaaaaaaaaaaaaaaaaaaa
-aaaaggtaagtgagatcacttccctcctctccttaaaccctcccctgcctccccatgact
-cctcagcgtcctttcaaaggcctccaaagctccagattatctgaaccccctttacctctc
-tgacctcatctcccaccgcctccctgtcactggctgcactccagccacattgaccttctc
-cgatggcacaccagtcagctagtcagcttccttttggagcttttgcatgagctgttcctc
-ttcctgaagaatttgcccttcggatagtctcagggcatccactgaacactccactcaata
-cagccactgcctgcccacccaacactcctcatctctgtacttactctttttttcccttgc
-attcgtcaccccctaacatgtgctacaatgtacttattatggtaattatttcttgcatgt
-ttctttctttttttttttgagacagggtctcactctgttgcccagtctggagtgcagcag
-catgatctcagctcactgaaatcttggcctacctggctcaggccatcctccctcctctgc
-ctcctgagtagctgggactacaggcactcaccaccatgcctggctagttgttgtactttt
-ttgtagagatgaggtttcaccatgttgcctaagctagtctaaaactcctaggctcaagtg
-atcctcccgcctcagcctcccgaagtactgggattgcgggtgtgagccgctgtgcctggc
-tgcacttttccttctaatggaatgtaagcgccacttttgtctgttattttcactgtagta
-tccctagcctttggaatgttgcctggcaagtagtaggtactcagtaaatatttgttgaag
-aaacggatGATTCTATAAATAGCATGGATTGATATGGGAAAGCTATGTAGGTGGATGGAT
-GGATGCTTGTCGGATGGAGGGTAGATGAAAGAACAGCGAGAAATTCGAATGGCTAGATGG
-TGGGGATGCATTATAAAATAATAATTCATAGATGGAAAAGGAATGAATAGATGGGTGGAG
-GGATttaatctcttcaactactatttactgaccacttgccgtgtgccaggcactgtatga
-ggtgctagagacactggtgagccacacaggcaaggtgcctgtcctaagggagcctgtagt
-tcagtgggtgaggcagacactaaacaaataacaaatacatacataattccaattatagtt
-aagtgttctggtggaaaagaaCAGGATGCTCTGGGAGAGAATAATATGGATAAGTGATGG
-AAAAATGGACAATAAATGGGTAGATGGAGATGGATAGGATCGGGGTTATTTGCCTTAAAG
-GGCCTGGCTTCAGGACTGGAGCTGCTTTACCTTAAAGGGCCTGTCGGACCACATGTACCA
-TCCCACATCCCAGACCAGCTCTGCACTCAGAGACTGTCCCTCTCTCCCTGCCCTGACTCA
-GCACCTGCCTGGCCTATCCCCAGTGGTCCTGCCTGACTCTACCTCCAGCTCCCACCCTGC
-TGAGTCACAGTCAGGCTGGTCAGGGGGCTGTCCCATGTTCAGTCCAGCCCCTCAGCCTTC
-CTCGACCTGGGGGGGTATGGGGAGCAGCCCAGAGGGGAGGGGAGCAGGTGCCAAGCTCTT
-GATTCCTGTGCCTGAGCACTGCCCTGTTGAGACCAGAGAGAGAATCTATGGCTAGGGTAT
-CTGGGGCTACAGTTGGGGTTTATCTGGGGCCTGGGGTCACACATGATGGATTAGAGCTAA
-ATCTATCTCCAGGGTTATAACTCAATCAGGAGCTAGAATTCAAATTCAGTTTATGGATCA
-TGTGGGGAAAAAGTGACCAAGACACCGTTCAGTTTGGGACCTGTGTCGGCGTTAGCTGTG
-GCTACGGCCCAGGGCTTAGTGATCACAGGTCAGACCATGTTCAAGGTTTCAGGCCAGAGT
-GCAGTTGAAGTGCAAAGTCAGGCAATAGGGTTCACCCTAGGACCACAGTCAAGGATCTGG
-GTCAGTTAGTGTCCAGGGCACTGGCCTTGTCTCCTCTTCTTTGGGAGAGAAGCCAGGTGG
-ATGAGTTGGATCTAAATGTCCTGAGGAGCAACTTCCAGCTCAAGTTCCTTCACCCAGGCG
-GCCTAAGCCCTCTCAGCACTGGCCCCAAAGCCTTCCTTCATCCCTCAACTTCCTCCATCA
-CTCCCTGACAGCCTGGCCTTGCTCAGTGTCCCTCGCAAGGCTGAACAGTCCTCATTCTGG
-CACCTCAGGGGACAGGGTAGGGGTGGGGACTATGGGACAGGGCTCAGTGCTGGACCCAGG
-AGGGCGCCTTGCGCAAGGTTTTCTGATGCAACTGGCTGAGTGCTTCAGCATTCCACCCCC
-ACCCCCCAAGCTTTTCTCAGAAAGGCAAGGCCTGGGCAGTTATCCAGACTGAACATATAA
-TCCCCTTCCTTCTCTGGCCTTTGATGGCTTCAGGACCTGCAGGCAAaaggaaggcaggaa
-ggcaggcaggaaggaaggaaggTCAGGTGACTCAGCAATGCGTCCAGCACTGGGAGCTGG
-CAGATCTGGGGCTCCCTCATCCTCCAGCTGAGAGGCGAGAAAGAGAATCAGGATCCCTGG
-AAGTTTGGAGATCCTAACCCCTTATACATACAAAGCAGCAATTATGTGCCTAAGCCCAGG
-GAGAGACCTGTAGCTGCCCAAGGTCAGAGGCAAGGTCAGAACCAGACCAGCTGTCTTCAG
-CCCATGGCTATGATCTAGCTATTTCCACTACACAGAAAGAGAGAACCCTTCACCCTTGAG
-GAGGACACGGGACTTCCCCAGGAACCTCCCGTCAATCCTGTTGAGGCTCCTGAAATGgtg
-gaatgacgtggactttggaaccacgcagacctgggtttaaatcccaggccaggcacggtg
-gctcatgactgtaatcccaacactttgggaggctgaggcaggcagatcacttgtggtcag
-gagtttgagaccagcctggccaacatggtaaaaccccatctctactaaaaatacaaaaac
-tagccaggcgtggtggcacacgcctgtaatcccagctactcaggaggcagaagcgtgaga
-atcgcttgaacccgggaggcggaggttgcagtgggctgagatcatgccaccgcactccta
-ggtgagagtgagactccgtctcaaaaagccacactggctagctgtgtaacgctgggcagg
-ttactttcactctttgacactggatttgctcacttgcaaagtgggcgtaaatgcatcctt
-agctcacagggctgtggtgaggctgacatgaggaagcactggaaggcacagcttagGCTC
-CACATGGGCCACTCTCAGGAAGTGTGTCCCCACCTCCCCCTTTATCCTCAGCTCTCACTG
-GGTGTGTTTGCTGGGGAAGGAGGTGCAGCAGCCCTGGGGCCTTGGAaataataatagcca
-ctcaccctccagtgcttaccatgtgctgggaactctcctaagcgtgaacttaacctgtat
-tagcccatttaaccctcCATTTAATCCAATAACAGTTCCCAGgccaggcatggtggtgca
-tgcccatagtcccagctactcaggaagctgaggcgggagtatcgcttgagcctgggaggt
-tgaggctacagtgagtcatgatcaccctactgcactgcagcctgggcaacagagtgagat
-cttctctcaaaagaaaagaaaagaaaagaGggaaggaaggaaggaagggagggaggGAAA
-TCCCAATGACAATAAGCAGTTcaataaccctacaggaaaacactgtcatcaatcccactt
-tatagatagggctgtgggtctgagtagctaagtgactttgtccaagacagtggacaagag
-accacacggattttgagccaggccagctggctctgaatcccactgtctcctccctcctta
-aactagtgatgtcactgctctgagccctggtttcctcatctgtctccagggataaaaata
-gcagcttcatggggaagtttgaggatgacacaagatgacgtaagggaggtccccacacag
-ggctccacccacagGCATGAGAAGAGCCTTTCTCAGGAAGAATCCCAGGCCGCCCCTGGG
-GCAACCGCCGGGCTGGCCTTCCTGCCTCTCCTTAGGCCCAGCCTAGCGTGATCTGGATGG
-TGAGAGATTTCTGCAAAGCCCCCAGGGGCCTCCAGAGAAGGGAGGTGCCCGGTCTCCTAG
-ATAAGGGCTCCCAGAGAGGATCACAGCCCTGGAGTTGCCATTCTTGAATCACCCACTGTC
-TTCCCCAAGTTGATTGGTCTGAATCCATGTACTTATTTTTTAtattagttccataatgtc
-ttccttccaaccagctcatcttttacttatttatttatttatttattttatttatttttt
-tatacagagtcttgctctgtcacccaggctgaagtgcagtggtatgatctcggctcacgg
-caatctctgcctcctgggttcaagcgactctcatgcctcagcctcccaagtagctgggac
-tacaggtgcatgccaccacgtccagctaatttttgtatttttagcggagataggtttttg
-ccatgttggccaggctggtctcaaactcctgacctcaggtgatccactcacctctgcctc
-ccaaagtgctgggattacaagcatggaccactgtgcttgaccacaaccacctcattttaa
-aaaacttatctaaatttatttaacatggaaattttaaatcactgacctcaaatagaaaac
-tactatgatttgccataaagaagaggtaagcatacaattacatacaaaaaaagcagaacc
-aggttattccattccagctaaatcctgtttcttgctgaaggctccaagctgaactctgct
-gtctcattcttaacaagagaggtgttaaaaacatagaagctgtgaggccgggcacggtgg
-ctcatgcctgtaatcccagcactttgggaggccgagcgagtggatcacgaggtcaggaga
-tcgagaccatcctggctagcacggtgaaaccccgtctctactaaaaacaataacaacaac
-aacaacaatcagccgggcgtggtggcgggcgcctgtagtcccagctgcttgggaggctga
-ggcaggagaatcgcttgaacccgggaggcagagattgcagtgagctgagatcataccact
-gcatttcagcctgggtgacagagcaagagcaagactccgtctcaaaaacaaacaaaacaa
-caacaacaaaaaaaaaaaccatacaagctgttggccgggcgcggtggctcacacctgtaa
-tcccagcactctgggaggccaaggtgggtggatcacgtggtcaggagatcaagaccatcc
-tggccaacatggtgaaaccctgtctctagcaaaaatacaaaaattagctgggtgtggtgg
-cacacgcccatattcccagctactggggaggctgaggcaggaggatggcgtgaacccggg
-aggcggagcttgcagtgagctgagatcacgccagtgcactctagcctgggtgacagagcg
-agactccgtctcaaagaaaaagaaaaaaaaaaaaagaagctgttaaatgagactttctcc
-ctgagtctttggagaaacagcaagaaaactgaaagggtttaagtgtatcacaattatgat
-tcaaagttatgtcatacggtatctggagaccctaaaaccctctggcactcagccattgtt
-gtacatggtatatttcagaaaacactgACCTCACTGacctactccaactttctcttctta
-ttttacagataagaaatttgaagcccccgcaaagggaggtgacttgtccacaatctcaca
-ggctcagtggcttcagccagacttggaacgcaACCAGAAGTTCTAAGGCATCATGTCACT
-TTTGTGGGGGAAATGTATGAAGATGAAAAGTTTCAAGGACACCTATGGTGGAATTTTAGG
-CATATGGCAATCACTAGGGACACCCATGTGGAAGGAAAGGAGGCAGGCATGGCTCATGTC
-ATTGCTGTGGGCCCCACATCAGTGCTGGGGGTCAGAGACGGAACTCATCAGAACTATAGC
-AAAGAggccgggcacagtggctcacgcctataatcccagcagtttaggaggccaaggtgg
-gcggatcatttaaggtcaggagttcgagaccagcgtggccaacttggtgaaaccccgtct
-ctactaaaaatacaaaaacattagccaggtgtggtagtccacacctgtaatgccagctac
-tcagggagctgaggcaggagaattgcttgaacccgggaggcagaggttgcagtgagccaa
-gatcacatgccacttccctccagcctgggcagcagagcgagacactgcctcaaaaaaaca
-aacaaacaaacaaaaaaCCAAACCTATAGGAAAGAGAAAAGCAGCCTTCTGGGCTCAGAA
-ATCTGAGTAGAAAGATGTTCTGAGCCTGGAGAAAGAAATTCATAAAAGCCTGACTCTCTC
-TCCAGAAAAGAGTACATTTCTGCATTTAATTTTGGGAGGTTGGTCACCATTCTTTTCCTC
-GCTTCTAAATAAATGCTTATATAGCATTTAtattccagtcactttacaaatattgtcatt
-taattctcatgcaaaccaacgaggtaggaactattgttatccccattttacagatgggga
-aactgaagtacaaagagctgaagtaacttttccaaaatAGATGTGGTTTTGAACCCAAGA
-AATGTGATACAACTATGACATGAGGCAGTCCCAATGcattgaatccttatgactgcaatg
-caagggaggtataattaactgcattttatagatgcagaaactgaggcttgaggctatttg
-gtgtttctggtgtagatctaggagccaaactccagcctacctagactctttgcctctgct
-gtacccctggaccatgTGTTAGGAATTCTTGGTACAGGGTGGTAGTGCTCAATATGGTAG
-TGgttttagtctgttttctgttgcttataacagaatgtctgaaactgaacaattttgaaa
-gaaaaggaatttattccttacagctatggaggataggaagtccaagattgagggggcact
-tctggtgagggccttattcctggtctctgaagtgtctggaggtggcacagggtatagcgt
-ggagaggggactgggcatgctgacatgctatgctttggtctctcttcctcttcttataaa
-gccaccagttctcctcctgtgaaaacccacaaatccattaatccatgagtgggttagtcc
-attcataagggcagaggcttcatgatccaatcacttcttaaaagtcccaaccgctcagta
-ctgccacattgggggattaagtttccagcacatgacatttgggggacacatttaaaccat
-agcagtagccatttgccacatgtggttattgagcacttcaagtatggctaatgtggctag
-tgtgactgagaattttttattttattgaatattttaatttttttttttttttttgagatg
-gagtctcactctgtcgcccaggtcagagtgcagtgtcatgatctcggctcactgcaacct
-ccgcctcccggggtcaagtgattctcctgcctcaacatcccgagtagctgggattacagg
-tgtgtgccaccatgcccggcaaatttttgtatttttagtagagacagggtttcactgtgt
-tagccaggacgatcttgatcttctgacctcatgatccacccacctccgcctcccaaagtg
-ctgggattacaggcatgagccactgcgcccagcctcacattatatttctattggaacaca
-gaaTGGTCTAGAGAATTGGGATTTGACAAACCCAGCTGTGACAAGTCACCAAAATTTGGG
-GGCCATACCCAGGGTGCCGTTCCTGTCACGATACCCATAGGTCCATGTGGAGGCTGCAGG
-GATACAAAGCTCGTGAAATATCCCAGGATGgcatgggcactggagtcagctgccccaagt
-tcaaatctgaaatcagtctttttgttttttttttttttttgagatgcagtttcactcttg
-ttgcccaagctggaatgcagtggcgcaattggctcactgcaacctccgcctcctgggttc
-aagcgattctcctgtctcagcctcccgagtagctgggattacaggtacatgccatcacgc
-ccggctaaatttttgtattcttagcagaaaccgggtttcaccaccttagccaggctggtc
-tccatctcctgacttcaggtgatccgcctgcctcagcctcccaaagtgttgggattacag
-gcgtgagccaccgcgcccagcctgaaatcagtcttatacgaccagctgggtggtcttggg
-taggtcccttaccttaactcttcttgtctgcagaatggaggtgacttactgtttttctct
-gtctccctttcacatctttgcactcttcaccccttctcttccctcagcttttagtttaaa
-catcacctttctgataagccctgctgaaaatggccaccctcagtcatgacggagaacaag
-tctttcctattttattcaagaaaatgcatgatgcaatctattttaaatgatcatggtttt
-aattttattttcctgataatggtctatctctccactgatttataagatttgtaagagcag
-gggtggatcattctggtcactgctgagtccccagcatttagaacaggggctgacacaGCA
-CAAAACAACGTTAGTTGGGAATGTACAAGCAAACCCAGCACACCTTCAGAGGGGTGCTCA
-GGAAACAGCCCTCCCAcctttcttcacccctcacagctgtgggatcttcctaaccatttc
-ggtgtcccaggatagaggatgagtttattcacccctccccagcaggggagttgccaggat
-taaatgagatCCCAGAATGCCCTGGTATACCCTGAAGGCTCTGGGACACAGGTGAGCTGG
-TCCCCAGGGATTTGGAAACAGGAAAACAAATATGACTCCACCCTGCCTCCCATCCAGCCT
-CTGCCTAGAGGAGTTATtttattttattttactttttttttttttttgagacggagtctt
-gctctgtcgcccaggctggagtgcaatggcgcaatctcagctcattgcaactcctgcctc
-ctgggttcaagcgattctcctgcctcagcctcccgagtagctgggactacaggtgtgttt
-tttgtatttttagtaattttttgtacttttagtagaaacgggtttcaccgtgttagccag
-gatggtcttgatctcccgacctcgtgatccacctgcctcagcctcccaaagtgctgggat
-tacaggcataagccaccacgcccagccTCTAGAGGAGttattttacttacttacttattt
-atttattacacaggatctcactctgtcacccaacctggagtgcagtggcacaatcacgtt
-tcactgtaacctgaactcctgggctcaagtgatcctcctacctcagcttcctaagtagct
-gggaccacaagctcgtaccaccatgcccgctatctttttctctttgtaaagacagggtct
-tactatgtcatccaggctgttctcaaactcctggcctcaagcaatcctcccgtcttggcc
-tcccaaagtgctaggattacagacatgagccagctcacccagctGAGGAGTTATTTTTTG
-ACACTGGTGAATTCAGATCAAAAGGGATTTCTAAGAAAGGTGCTGGACCCAggccgggcg
-cggtggctcatgcctgtaatctcagcactttgggaggccgaggcaggtggattatctgag
-gtcaggagttcgagaccagcctgaccaacatggagaaaccctgtctctactaaaaataca
-aaattagccaggcatagtagcgcatgcctgtaatcccagctacttgggaggctgaggcag
-gagaatcgcttgaacccgggaggtggaggttgcagtgagccgagatcgtgccatcgcact
-caatcctgggcaacgagtgaaactctgcctcaaaaaaagaaaaaaaaagaaaGGTGCTGG
-ACGCCTAGGACGCAGAGGGGTGTTTCACCCCAAATCAAGTAGCACCAAGCCCTCCCAGGC
-CTTGGGTGCAAGCATATTAAAGGCCTCTTTCCCTCTCTGTCTCCATTGTTTACACTCCac
-tgagcatccgcaatgtgccacacactgttctaagcgtcttacacatattaaattatttaa
-tcctcacaacaactttatgaagtgagcgcaattatgagcccattttatggagcaggaagt
-tgaggcagggttttaggtagcttttctggggtagcactgtgggttggagcggaggtggag
-tgcactcttaggccagctggctctaggggctcttcaccactaggccgcactgCCTCTAGC
-AAAGGGACGCGGGGAAGCTCAGCAGACCTTAGGCCTCCCAAGGGCGCCACGGTGGTTCCT
-TTGAGCCCAGAGTCAGCTCTTAAGTCCATAGGCCTTCCTGAAGCTTCTGAACCACTTGCC
-CATAGCTGGGCCTCAGGCTGGCTCTCAGTAGAATGTGGAGAATGGAGATTCCCGCATGTC
-CACTTCTCCTAAAGGTTTTATAAGGCAGTGCTGGGAATGTGCTTTATAAAAAAGGGGAAG
-CACCCCGACAACAGTCACTGTTTGctcttttaagcaccatcctgagaaggaggaatgttc
-ttcccatttcataggtggggaaaccgaggctcagaagagcaaatttttggccgggcgcgg
-tggctcacgcctgtaatcccagcactttgggaggccgaggcgggtggatcacgaggtcag
-gagatcgagaccatcctggctaacaaggtgaaaccccgtctctactaaaaatacaaaaaa
-ttagccgggcgtggtgcgggcgcctgtagtcccagctactcgggaggctgaggcaggaga
-atggcgtgaacccgggaggcggagcttgcagtgagccgagatcgcgccaccgccctccag
-cctgggcgacagagcaagactctgtctcaaaaaaaaaaaaaaaaagagcaaatttttttt
-ccaaggtgatagggagagtccgtggctgaTGTCTGCACTGACCAGACGCCCCTAGGGGGC
-CAGCGAGGGCGGGTCCCAGGTGCAGCGGATGCAGAGGAGAGAggcccgggcgcggcgcgg
-gggATGGTGCGATCCCGGGCCCGAGGGCATCAGACGGCGGCTGATTAGCTCCGGTTTGCA
-TCACCCGGACCGGGGGATTAGCTCCGGTTTGCATCACCCGGACCGGGGGATTAGCTCCGG
-TTTGCATCACCCGGACCGGGGGCCGGGCGCGCACGAGACTCGCAGCGGAAGTGGAGGCGG
-CTCCGCGCGCGTCCGCTGCTAGGACCCGGGCAGGGCTGGAGCTGGGCTGGGATCCCGAGC
-TCGGCAGCAGCGCAGCGGGCCGGCCCACCTGCTGGTGCCCTGGAGGCTCTGAgccccggc
-ggcgcccgggcccACGCGGAACGACGGGGCGAGGTACTCGGCGGGGTGCGGCCTGCGGAC
-TcgcccggaggccggggggcgggagggggcggccggggAAGGGGGCGCCGGAAGCCTCTG
-GGCGTCTGCGTGTTGCCGCGTGTTACACGCACGCACGCCCCTTACACACCTTTTCACAGA
-CCCCGCCGTCGGGGCGCGGCCAGGTCAGATCCCTTTTGATCCGGGCCTGGGCTGAGTGCT
-CCCCCCGGGCTTCAGGTGACGCGGCCCCGCGGAGCGTGGGGTCGCCCGAGTTGGGCTGGG
-GAAGCCAGGGACGGAGGTGTCCGGCCGTCACCCCTAGAGGAGGGCGTGCGGGGGTCTGTT
-TTGCGTGAGTGCGGGATAGGGGAGTCGTGTGGTGCGGTGAGGGGCTTGTGGGGGGCACTG
-GAGGACTCTGGGGGTGGCGGGGGATCCGAGGGGGTCCTCGTGAACCCGCAGGGGAGAGTC
-CTGGGTGAGGGTGGGTCCCGAGCACCTGTGTCTCAGGAGATGGTGAGAGCTGTCTGGAGG
-GCTGGGCACTTGGTGGCAGGGGTTGGCGGTGCAGGGGACACCGCCGGGACAGGGCTGGGG
-TGCCCTGGAGCGGGGGAGCCGAGGGAGTGGGAGCGGGGGCGCAGCGCGCGATCTCTGGCC
-CGGCAGGGCCGCTGGTTCTCCCCAGTGCGCGGCTCCGGGTTTGCAGGTGGACGGTGCGCG
-CGTGTCTGCGGTGTGTGCTGTGCCTGCAGACCGGGGAGGGCGGGGGACGACAGCCACCTC
-CTTCCCTCTGCCTCACCCCCCTCCTGTCCCAGGGCCGCGCTTCAATTTCCGCTGAAACTT
-CTGACTCGGACACCCGCCGCCTTTCGCTTGGGCTCCCACGGGAGGGGCCTGGCTGCGGGG
-GGCGGGGCGGGGTGGGGGTGCGGCCTTGCTCGGGTAGACCATGGGTGTGACAGCTGGGAG
-GGCtgtgtgtgtgtgtgtgtgtgtgtgtgtgcgtgCGCGCGCGCGCTTGCGCTTGATGTA
-ACCCGCCCTCATTTCCCTGGGTCCCGAGTGTGGCAGGGAACAGCAAGAGGTAGATATTAG
-GGGCTGCTTTCATTCCACATCACAGATTCTATTCTGCAGTGTGGTCTGCAAAATGCCTTG
-CCCAAGATGTATAGACTCAGTTACCGCATCTGTCCCCATCTGGGTGGAGCTTATCCCAGG
-CCCCAACAGGCTCTGAGGGATGGCCGGGGCCAAGGCAGCCTGGACTACTGATGTGGCACA
-GGCCAGAGGGACTCCAGGCAGTCTCCTGCTGCACAGGGCACAAAGCATGTGCACAGCCAG
-GTATCATCCTGCGTGACTCAGAACAGCCTTGAGATGTAAGGAGTGTCATCCCAGCCTCGA
-ACCTGGGGAGCTTTCTAAGACTCCCAAGGATGGTACTTATGCATCTTGCTGTGAAGAATA
-ACAGGATGAGTGCtaataatgaccatttcctgacacctacctggcaacaggtccataagc
-tctacatgcttcatttgtgttttcatttcatcatcacgaaaaacctgtaagctttgcatc
-ctgttcccactttacaggaactgaggctcagaaagcttgaggaacttgaccaggggtacc
-ccccagctagaaagggtttgagacaggattagaacccaggaatatctgactacagccact
-ccttactgcaTTCTTACCAAGCCAAAGTCATGACCTTTCACTCATGTGGGGAGGCCTTCC
-CTTCCAAGGCAGCTCTTCCATTTGGGAGCAGCGTACTTGGAGAGGTGGGCCTCTGTCTGG
-TAACTGACTCATGTTGCCTTGTTAATCCTGCCTTGAACTGTTGGGAAGGTCTTTAACCAG
-GCTGAGGTCTCTCGCACCAATGCCCATACCTGGGCATGCACCTCCTTGGAATGGAGTTTA
-AGTGGGTGGGCAGATGGGTTCTAGAGAGAACCCGTCTGCCCTGACCATGCCCTACTGCCC
-TCTCCTTCAGCCACCACACACACAGTCACACAGCTGCGTGAATGGTGgctttcctttcac
-ttaacagttcactctggagatccttccaattaccctataaagagcatcctcaacctttta
-aatggctgcacattgttccgttgtgtggatgaagtataatttatgtaaccagccctgtaa
-ttatagacagccaattatttctgtcaaaagggctgcaggaataactgtgtatttgcatgc
-ttacacacacacacctctacagaataaattcttagcaatgggattaattgctgaatcaaa
-gctcacacgcttttcatcgttgtttttgttttgttttgttttgctttgttttgagacagt
-ctcactttgttgcacaggctagagttcctgaccatggctcactgaagcctttaccttctg
-ggctcaagtgattcccctacttcaacctcctgcatggctgggactacagctgtgtgccat
-catgaccagataattttttttttcttagggacagggtctcgctacgttgcctaggctggt
-cttgaactcctgggctcaagtgatcttcctgcttcagcctcccaaagtactgggattaca
-ggcatgaagcactgcacccagcctgtttttcattttgatattgtcaaaatgcactcctca
-gaggtggtaccttttatcctcccactagcactgtCTTCATTGTTAGTGGCTGCACTGCCA
-CTATTCCACAGTATAAACCCACTTTTCATGACACTGCCAAGACATAAGGGTCTGAAATAC
-TTAACAGTTTTCTTCCACAGTCCCCAAAATACAGGCTtctcccccagctcaggacatgaa
-gccatcatccctcctcattgcaggagccaaaggctggacctcacctcgattccaccctct
-ccttcacccctcacatccaatccatccagtccatccagtctgccactgagtcctcttgat
-cttcctcctatgagcccttaacttcgcgtctccatctagcaccccctagtccaggtcacc
-ttctcctgcctggactcgtgcttgtgtgggcctcctagctagtctcactgccccgtcttg
-tactttcaaatccaccctaaaagcatgatgttcccctgctgaaatccttcagtggctccc
-cactgcctttggataattccaaatcctattgtgtgttaattaggattaggctcagctgta
-atatagaaacagccacttaatagctaaaatgaaatagacgtttttttcttctttttctct
-ttttttgagacagagtcttgctctgtccccaggctggagtgcagtggcgagatctcagct
-cactacaacctctgcctcccaggctcaagtgattctcctgcctcagcctcccgagtagct
-gggactacaggcatgcaccaccatgcccacctaatttttgtatgtttagtagagatgggg
-tttcaccatgttggccaagatggtctcgatctcctgaccttgtgatctgcctgcctcggc
-ctcccaaagtgctgggattacaggcatgagccactgcgcccagccttcaatagatgttta
-tttctctcctgtgtaaaaaacctggaggtctggcctgacaactccatgtgtcagggacct
-aggctcctctcttgctctactgtatgtggtacttctgaagccaaggtagatgctggagct
-ccagcagttaggtccacattccagcatacaggaaaggaggaaatgaggaagttgggccct
-ccctttaagaacactgtcctgggcattgtacacaacacttccacttgtgtcctactagcc
-atatgctgatacaaggatacaagggagacaggaaatgcagtttattctaggtgtccttgt
-gctcagctgaaaatctcaggttctaatcctatgtaaggaggggagacctgaaactgggga
-ccactaaccacctctgccatatgatgctcgtagagcccttcacaatagggcctctactaa
-cctcaccttatttttatttatttatttatttttgagacggagtttcactcttgtcgccca
-ggccggagtgcaatgacactatctcagctcaccgcaacctttgcctcctgggttcaagca
-actctcctgcctcagactcctgagtagctgggattacaggcgtgtgccaccacgcccggc
-taatttttgtagttttagtagagacggggtttcaccatgttggtcaggctggtctcaaac
-tcctgacctcaggtgacctgcctgcctcggcctcccaaagtgctgggattacaggtgtga
-gccaccacgcccggcctattttttttttttttttaacttttcacttttttttgcagtcac
-gctcattctccaccgtgttcttggggaacatgcagcatgttcttttgcctcTTCCCTCAC
-CCCAGAACAGGggttactggacagcggcatcaacttcacctgggaactggatagaaatgc
-agattcagaccttctgaatgagctactttgggagtagggcccagcaatgtatgttgaaac
-aggcctccagatgatctcaatgcttgctcaagtttgagaaccactgAACCGCAGTATGAC
-TCTCCGTGTCAcctggctaactctgcctcactttcaggtctcagtgtagacaccacctct
-tctaggaagacctctcttgacccaccagcccaggagagaggcctctctgggttcctagag
-gcccatgcttctctgTATAGTAGGGCTGATCACACTGTATGTGAtttttttttttttttt
-tgagagagtctttactctgtcaccaggctggagtgcagtggcacaaacatggctcactga
-agcctcaacctcccaggctcaagcaatcttcccacctcagcctcccaagtagctgggact
-acaggcatccaccaccacacccagctaattaaaaaaaaatttttttttgtagagacaggg
-tctcactatgttgcccaagctggtcttgaacttttgggttcaagcagtcttcccaccatg
-gccttccaaagtgctaggattacaggtgtgggccactgcacctagccTTGGACGTGATTT
-TATTACTCATCTGCCCTCCAAATTGACTGGAAGATCCTGACGGCAAGACTGCTGTCTAAC
-CTACTTCTCTTCCTAGCACCCAGTGTTAAGTGAATGAACAAGATCATATCTCTCATCTGT
-GAATGTACGAGAGCCATGGATTATGAGATTAGTTGATTTTCTTAACTATAATTTTTAGAA
-ACAAGCTGTGTTTTTAAGCAGGTATTTATTTCCTTAAATGTACATTTCTGATTACAAAAT
-ACttttttttgagacagagtcttgctctgtcacccaggctggagtgtagtggcacaatct
-cggctcattacaacctctgcctcctgggttcaagcgattctcctgcctcagccttcccag
-tagctgggattacaggtatgcaccaccacgcccggctaattttttttttctcccgtgacg
-gagtcttgttctgttggccaggctgaagtgcagtggtgtgatctcagctcactgcaacct
-ccacctcccgggttcaagtgattctcctgtctcagcctcccaagtagctgggattacagg
-cccacgccaccacgcctggctaatttttctatttttagtagagatggggtttcaccatgt
-tggccaggctggtctcaaactcctgacctcatgatccaccaccttggcctcccaaagtgc
-tgccgtgggctgcactttggcattgccttggtcacgtgctgctacctgggattacaggca
-taagccactgcgcctggcctaatttttgtattttttagtagagacagggtttcaccatgt
-tggccaggctggtcttgaactcccagcctcatgattcgcccaccttggcctcccaaagtg
-ctgggattacaggcgtgagccaccacgcctggccAGGAAATACATTTACATGGCTCAAAT
-TCAAAACTATAAAAGTCggccaaacatggtgactcacatctgtaatcctaacactttggg
-aggctgaggcaggaggattgcttgagctcaggtgagaccagcctaggcaatgtagggaga
-cccccatctctacaaagaataaaaaaaaattagtcaggcatcatagtgcacacctgtagt
-cccagctacttgggaggctgaggtggaagaatcacctgaaccctgaggtcgaggctgcaa
-gtgaactgtaatAGTAAGAGTCTCCTCCTAATCTTGTGCATCCTTTCAGAGAGAGAGATG
-atagatattcaaacaaatacatacatatatataacatatttatatatattctttttaaca
-taaaagtatagccaggtgtggtggttcactactagagtcccagctacttaggaagctgag
-gtgggaggttcacttgaggccacgagtttgagaccagcgtgggcaacatctcttggggaa
-aaaaaaaaaaaaacccaccataaaagcattctataacacgtaattctgtgtttgtctttc
-ttctcttaatacatcttggagatcagtacgcatcagtatatagagagcttccttgtcctt
-tttcagggctgtgtagtattctgctgtatggctataccatgatgttttcactagctttct
-actgcctgacatttgggatatttcctgcttttgctattggacacaaggctctgatgaaca
-gcctttactatatttaatttttttgtgagaagtttaactggaagataaattcccagaagt
-ggggcacccagttaaggatatgtgactttgtcattttaacacacactgccagatcacccc
-ctataaatgttgtgccacgtatcctcccaccagcaGGGGAAAGGAGGGGCCACCAAGCAG
-TCTCACTTTAGTGCTTTTCTCTCCTTTTTACCAGATGCGAGCCACCCCTCTGGCTGCTCC
-TGCGGGTTCCCTGTCCAGGAAGAAGCGGTTGGAGTTGGATGACAACTTAGATACCGAGCG
-TCCCGTCCAGAAACGAGCTCGAAGTGGGCCCCAGCCCAGACTGCCCCCCTGCCTGTTGCC
-CCTGAGCCCACCTACTGCTCCAGATCGTGCAACTGCTGTGGCCACTGCCTCCCGTCTTGG
-GCCCTATGTCCTCCTGGAGCCCGAGGAGGGCGGGCGGGCCTACCAGGCCCTGCACTGCCC
-TACAGGCACTGAGTATACCTGCAAGGTACGTGCCCATGGGCGGCTGTCCCCCAGCACCAC
-AGGAGGCCTGGGAAGGAGGCCTCCAAAGGATTGCCAGGGTGCAGAGGGGTCCTTATGTTC
-ATTCATTCTTGTGTTTGTTTAGTGGGGAAGCATCCAGGGAGCCCCTGCTGGACTGATACT
-AGAGAGGTAAACCAGAGGTCGTCCCAGTCCTGGGGGAGTTCACAGCTTAGGCCCTACAGT
-GTGATAAATGCTGCAGGGGTAGAACTTAGGGATCATGGGCGCAGAAaaggccgagcagaa
-gttagccaggtagaagtgggagatgggagttgcaggcagggggaacagctgttcaaaggc
-ctagaaaagtgaggggatagcactttagagaatgaaaaggacttctctgtggccagagtg
-gagaggatgtgcagaaaggggcaggagatgaagGTTGGCAGCAGCTGGTCATGAAGGTGT
-TAACAAGGGGCCTCCACTGGGCTGTGCGGAGCTACTGAAGATGTTTGCACAAGAGAAGGG
-TAGGGCATGGTAGACATCAAAACTCCTgggacctcggaggtgatcgagcctaacctgggg
-ccattttacagataggaagactgagatgaagacaggagaagggccatgcgtgaagtcaca
-tagcACTGGGCCTGGCTCCTGGGGTAAACTAAGGGGTAGAAAAGTCTGAGGATTCCTGGC
-AGAAACCAGGAAATGGACAGGGTCAAGGCCCCTGAGGGTCAGCCCATGCAGGACACTGAC
-AAGTGACAGTCCAAGAAGACAGAGATGAGAATAAAAAGTGTAACAAtaggtattcactgt
-gcaccaggtactatgatgattgcttagtgtgcacaatctcttttaatcttgacacaacca
-atgaggtggtttctatcattgtgccccttttatagatagaggacactgagactcagaaag
-ccatggttacttgccacatgacagagccaggtggtatcagagctgggattgggcccagga
-ggctgagcccagagagtcctgtgcccGTGCTAGGATAAGCGTTTCACACAATCAGGGCAG
-GCTGCCCTGGCAGGCAAGCATAAGGAAGATAAGGGGGACCTGGAAACCCAAGGGAGAGTA
-GCGGGGGCCTGGGTCCCTTGGGAATGCACAGAGAAGCAGAAGGACTTAAGCCTCCTCCTG
-GGGCAGCAGCAGAGCTTTGCTCTGTTGACGGAGATGCAGTGAACAGCGGGGCAGATCCAG
-ACAGGGTCCAGCCCCTAGCTTCACCTGGCCTCTTGTGCACAGATCTCCAGCGCCCTTACC
-AGGTGCCCTAAGGAGCCCAGAACTCTGGGTCCCCTTCCTGCAGCATCACAGGCTCTTTTC
-CACTCCCGCTGGGGAGGTGAGTCCATGATAAGAGGAATAACCCAAGCAGGCTCAGGAGAG
-AAGCGCCATGCGTTCACAGGGCCCTGATTCTCAAGAAACATTTGGGAAAATCCACTGGAA
-CATACTCACCCCTATGCCAATGTGCACCATGGGTGCTGAATGGTCATTTCCACACTTCCT
-CAGCTTTTCTGGTCAGTGTGTAGAAAGATCAAAATCTTGTCTTTGTAAATGATCAACTTa
-ttcattaattcaacacaacttcattgagcacccgtatttgccatgtaccatgctgtggtt
-aaaaaacaaagttctgttctcatcaagctgacgttctagtgggagatacagacactaaac
-aagcgaataagtaaaatacgtgtcaggtggccgggcgcggtggctcacacctgtaatccc
-agcactttgggaggccgaggtaggcagatcacctgaagtcaggagttcgagactatcctg
-gccaacatggtgaaaccttgtttctattaaaaatacaaaaaattagccgggcatggtggc
-aggggcctgtaatcccagctactcgagaggctgaggcaggagaatctcttgaacctggga
-ggtggaggttgcagtgagccgagatcacaccactgcactccagcctgggcaacaagagca
-aaactccgtctcaaaaaaacaaaaaacaaacaggaaaaCCCTTATTCCAGCATCTTTCTT
-GGTTCCTTTGCAATGCTTATCAGCATTTGTCAATATTTGGTTTCTGGGCATGTTTGCATG
-GCCTCCCAGTGGGCACCGGAGAGCAGAGCCCATGGCTGTCAGTCTAGCTGGACATGTGGC
-TGGCCCGTGCAGGCCCAGGGCCAGCATACTGAATGAATGAAAGCGTGGGTGGGCAAAGAG
-GACGGGAGCTGTGACGGTGATGAGCATCAGGTGCCTTCTGCATCATCCGCCCTTCCGGAT
-TCCTCCTGCTTTGTGGGTTATTTTTCTGTTTGGGTGACCTGTTACTTTTCAGTTATCCGA
-TGTTTGAGGCCAtatagcgtagcagttaagagcacagacaaaaggccgggtgcagtggct
-cacacctgtaatcccagccctttggaaggctgaggcgggaggatcacctgaggtcaggag
-ttcgagaccagcttagccaacatgatgaaaccccatctctactaaaaatacaaaaattag
-ctaggtgcggtggcacatgcctgtaatcccagctacactgggggctgaagcgggagaatc
-acttgaatccaggaggcggagtttgcagtgagctgagattgcgccagtgtgctccagcct
-gggtgacagagcgagactccgtctcaaaaaaaaaaaaaaaaaaaaaaagcacagacagtg
-gagtgcatacgtgcaaatctcagccgtgctgtttgctggctgtgtggcctctcagcttcg
-ttaaccgtaaaatggagcaagtcatcctaccttataggaccatggtcagggctgagtgac
-tcggtcagtgaagcgcttggtgcgatgcctagcacatggtagtgtctaataGGTCAGCTG
-TGACTGTTTGCAATGCCAGCCTCAGCTCCCGGGAGTCCCCAGCTGTGCTAACACCATGCT
-CTGCCCACAGGTGTACCCCGTCCAGGAAGCCCTGGCCGTGCTGGAGCCCTATGCGCGGCT
-GCCCCCGCACAAGCATGTGGCTCGGCCCACTGAGGTCCTGGCTGGTACCCAGCTCCTCTA
-CGCCTTTTTCACTCGGACCCATGGGGACATGCACAGCCTGGTGCGAAGCCGCCACCGTAT
-CCCTGAGCCTGAGGCTGCCGTGCTCTTCCGCCAGATGGCCACCGCCCTGGCGCACTGTCA
-CCAGCACGGTCTGGTCCTGCGTGATCTCAAGCTGTGTCGCTTTGTCTTCGCTGACCGTGA
-GAGGTGAGTGTGGTCTCAGAGACCCCAGCCACAGACACACCCAGGGGGTGGGCCATGATG
-GAGAGAAACCGAGGCCCAGGAAGGCAAGGTAACTTAGGCAAGAAGTGGGAGAAACTGAAG
-TAACCAGCAGCCCCTGTTTAGTTCCCTGAGAAGAGTTGACTCAggccaggtgcagtggct
-cacgcctttaatcccagcactttgggaggccgaggtgggtgaatcacttgaagtcaggag
-ttcgagaccagcctggccaacatggtgaaactccgtctctactaaaaatacaaaaattag
-cctagtgtggtggcgcacacctgtaatcccagctactctgaaggctgaggcaggagaact
-gcttgaacctgggaggcggaagttgcagtgagccaagatcacgccactgcactccagcct
-cggcaacagagtgagattccatctcaaaaaaaaaaaaaagaGTTGACTCAGTCCTCTTGG
-GAGCCCCTTGGGATTCTGGGATGGAGCACTGAGATGTGAAAGTCATAGTAGCCGACAGTG
-ACGAAAGCATCGCCACATTATCTAACGTGGTCttccatccttacaaacacgaggcaggta
-ctgttattatccccatatgatcaaggaaactgaggcccagagagctcaagtaacttgccc
-aagatcccatagcagaataaatggtagagctgggatttgaacctagatctgactccagag
-cctgggtcttaaTTCAATCTGAGCTTGAGAGGCAGGGGcctggctgggcttaccaactga
-ctttgggtgacctagtgtctctgagcctcagtttctccgttggtaaggaaaagggctgga
-ttGTTAGGGTGTTTTCAGGATTCCAAGACCACAGCCAAAATAGGGTCTGAGGTTCCCCAC
-ACGGGAACGTTTTCTGTGAAACTGAGAATTAGCACTTTTTGGTTAAAAGAATCTTCCTTC
-TCTAGGTTGGGATGCTAAGAAtttttttttttttaattgagacagagtctcactctgtca
-cccaggctggaatgcaatggcgcgatcttggctcactgcaacctctgctgcctgggttca
-agtgatacgcctgcctcagcctcccgaatagctgggactacaggcatgcgccaccatgcc
-tggctcattttttctatgtttagtagaaacggggttttgccatgttggccaggctggtct
-tgaactcttgaccttaggtgatccgcctgcctcggcctcccaaagtgctgggattacagg
-tgtgaggtactgcacccagccTAGACGCTAAGAAAAATTTTTAAAAGATAATTCTGGGGA
-GAAGGGCAGAGAGACTCGCCTCCTGTTCCCTCTCCAGATTCCTGGGGGCAGTCAAGATGT
-GTCAGGGAGTGCACTAAGCTGCCAGTTACACAGGAGTTTTCTGTGGAGAAAGGAGTGTGA
-CCCCATGGCATTTTAAAAAACtttttatcttgaaataattttagacttttagaaaaccta
-caaaaatagttcaaagagtttctgcatatcctttaaccagtgctctccaatgttaacacc
-tgacgtagctatggtacaattacccaaactattaactaagccacagattgattcccactt
-cccgagtttcccactaacaccccttgctgtgcaggatccagtgaggatcccaatttagtc
-atcagtggtttccttggtctcttccaatctgagacagttcctcagtctttccctgtcttt
-gaagacccatgaccttgacacttttttttttttgagacagggtctcactctgtcacccag
-gctggagtgcagtggtgtgatcacagctcactgcagcctcaacctcccgggctcaagtga
-tcctcccacctcagcctcctgagtagttggttctacaggtgtgtgccaccccacctggct
-aattgagatggggtcttgctatgttgcccaggctggtctcagactcctgagctcaagcaa
-tctgcctgcctcagcctcccaaaatcctgggattataggcgtgagccactgctcctggcc
-ataaccttgagacttttgaagagtactgatcagttactttgtatgtccctcaatttggat
-ttgattgatgttttctcacagttagattgcagttatgtatttttggcaagaacaacacag
-aatcgataggcccctctccacatcatatcaagagatacttgagctgatagtcattcctat
-gtcgtgaccttgatcacttggttagggcaggacctaccaggtttctctactgtaaggtcc
-taatttaccctttgtaattgacaaataccttgggggaggtaagctaggcatataaatatc
-ctgtttttcctcaactttcacccactaattttagcagccatccatcttgcctatagcagt
-tattattgtggtgcttgcctaagtctaattttctttttcttttttttctttctttctttt
-ttttttttttttgagacagagtctcgctctgttgcccaggttggagtgcagtggcacgat
-ctcggctcactgcaacctccacctcccgggttcaagtgattctcgtgcctcagcctcttg
-agcagctgggattacaggcacacaccaccacacttggctaatttttgtatttttagtaga
-gatggggttttgccatgttggccaggctggtctcgaaatccgcctgccttggcctcccaa
-agtgctgggattataggcatgggccgctgcgcccagccCCCAAGGCTGATTTTCTGTTAA
-TATTTCCTTCTACATTTTATATTAGAACAAGCATGCCTTTTTTAAAGAAGTAACATTTAT
-AATGATGTTTAAGCTAGTACATAACTTCAAACACATTTTAGGCTTAGGGTAGATACAACT
-ACCCCGGACCTCCTGGAGGAGACAGCGTGCTTCCTGCTCTTTTCAAGAAGTCACTTgatg
-gcccacacctgttatcccagtgcttcgggaagccaaagtaggaggactgcttgagcccag
-gagttcgaggccagcctaggcaacacagaaaaccccatctgtacaaaaaatttataaaaa
-ttagccaggtgtggtgatgcacacctgtgatcccagctacttgggaggctgaggcaggag
-gattgcttgagcccagaagtttgaggctgcagtgaactaggattgcaccactgcactcca
-gcctgggtggcagagtgagaccctatctctaaagaaaaaaaagaaaaaaaaaaagaaaaA
-TCACATGagagtcattggtagaagagggaccgtgagttagatagacctgtgtttaaatcc
-tgggttctgcttcttacctgctttttggccctgagcaaatgacttcacctgcctgagcct
-ttgtttcttcatctgtaaaatgggctaataatgctgacACCCCTTGTCCCCCAATACTGT
-GATTCATAGGATTGGTCAGTATTTGTGAAATGCCACTGGACACCCAGGAAGTAATGCCAT
-AAAGAAGAAACTAATAGCAGTGGTAATAGAATGATTACTATTAAAGTCATCTTTGAGTGC
-TCAGTGGAAGTTGTTTAAAGTAGAAATTGCAAATGGCAGGACACACtttttttttttttt
-tgagacagggtctcactctgtcacccaggccggagtgcagtggcgcgatctcagctcact
-gcaaccgccacctcctgggctcaagtcatatccttctgcctcagcctcccaagtagctgg
-gactacaggtgcgaatcaccatgcctgctaattttcgtattttttgtagagataggtttt
-taccgtgttgcccaggctggtcttgaactcctgaactcaagtgatccccctacctcggcc
-tcccaaagtgctaggattaccggcatgagccaccgcgcccagccTTACACACTTTTTTTT
-TTGCCCTGCTTACCTGTTTGTGTTTTTTATATAAACTGGTTGCCAATATTTTTTAAATGG
-GGACCTTTTCATTAAAATACAATTCCTGGCTTCTCTTGGGGAAAACAATGGGAATGTGGG
-GCCATCTTGGGAACTGCGAGGGTGGGTCACAGCACTGGCTCTGAGTATCTGCCAGCCAGC
-GTTCCCATCCCAGGCCCATGCtctacagctgtaaaatggtgtcttccttgcaggctgtag
-cctagatagaatgaggtgagccaggtaatgagctgggtcaagggccaggaacacagcagg
-cacttggtaaaCCCTAGAATGCGTTGTGTACCCTTTTTAGGTAGCGCTTGTGCTGAGATG
-TCAGGCACACTTCCTGTTTCTCTCATCTTATTACCTGCCTGGACCCTAAGTTTGTAGCTG
-GTTTAAGAGAGGCTTAACCCTCTCAGCCCCATCAGCCCCCTCCCCAAGGGACTCTGTTGA
-AAAATGTATTCCTTTCAgaattttagtttaaatttaattgctctgtggccttaaatgact
-taacctctctgagcctgggcttgggtatctgtaaaacaggATCAGACATCACAGGACTGG
-CTTGTGTCTGTCAAAGGCCAGCAGGCACTTGGAAAGTGGGTGCCACAAGGGTGATAGCAT
-GGGGTGGTGGCATGGGGGTTCTGGGTAGGACCTGACCCTTCTGTTTCTCCCCATGTCCCA
-GGAAGAAGCTGGTGCTGGAGAACCTGGAGGACTCCTGCGTGCTGACTGGGCCAGATGATT
-CCCTGTGGGACAAGCACGCGTGCCCAGCCTACGTGGGACCTGAGATACTCAGCTCACGGG
-CCTCATACTCGGGCAAGGCAGCCGATGTCTGGAGCCTGGGCGTGGCGCTCTTCACCATGC
-TGGCCGGCCACTACCCCTTCCAGGACTCGGAGCCTGTCCTGCTCTTCGGCAAGATCCGCC
-GCGGGGCCTACGCCTTGCCTGCAGGCCTCTCGGCCCCTGCCCGCTGTCTGGTTCGCTGCC
-TCCTTCGTCGGGAGCCAGCTGAACGGCTCACAGCCACAGGCATCCTCCTGCACCCCTGGC
-TGCGACAGGACCCGATGCCCTTAGCCCCAACCCGATCCCATCTCTGGGAGGCTGCCCAGG
-TGGTCCCTGATGGACTGGGGCTGGACGAAGCCAGGGAAGAGGAGGGAGACAGAGAAGTGG
-TTCTGTATGGCTAGGACCACCCTACTACACGCTCAGCTGCCAACAGTGGATTGAGTTTGG
-GGGTAGCTCCAAGCCTTCTCCTGCCTCTGAACTGAGCCAAACCTTCAGTGCCTTCCAGAA
-GGGAGAAAGGCAGAAGCCTGTGTGGAGTGTGCTGTGTACACATCTGCtttgttccacaca
-catgcagttcctgcttgggtgcttatcaggtgccaagccctgttctcggtgctgggagta
-cagcagtgagcaaaggagacaatattccctgctcacagagatgacaAACTGGCATCCTTG
-AGCTGACAACACTTTTCCATGACCATAGGTCACTGTCTACACTGGGTACACTTTGTACCA
-GTGTCGGCCTCCACTGATGCTGGTGCTCAGGCACCTCTGTCCAAGGACAATCCCTTTCAC
-AAACAAACCAGCTGCCTTTGTATCTTGTACCTTTTCAGAGAAAGGGAGGTATCCCTGTGC
-CAAAGGCTCCAGGCCTCTCCCCTGCAACTCAGGACCCAAGCCCAGCTCACTCTGGGAACT
-GTGTTCCCAGCATCTCTGTCCTCTTGATTAAGAGATTCTCCTTCCAGGCCTAAGCCTGGG
-ATTTGGGCCAGAGATAAGAATCCAAACTATGAGGCTAGTTCTTGTCTAACTCAAGACTGT
-TCTGGAATGAGGGTCCAGGCCTGTCAACCATGGGGCTTCTGACCTGAGCACCAAGGTTGA
-GGGACAGGATTAGGCAGGGTCTGTCCTGTGGCCACCTGGAAAGTCCCAGGTGGGACTCTT
-CTGGGGACACTTGGGGTCCACAATCCCAGGTCCATACTCTAGGTTTTGGATACCATGAGT
-ATGTATGTTTACCTGTGCCTAATAAAGGAGAATTATGAAATAATTTTATTTTTCTCTGCA
-ATTTCTTCCATCCTTTCCAACGATCTCTTACCAGTTTTTCCTGCCTTCAAAACTGGCCCC
-CATGGTGAAAGGCCGTAGAGTTGTGTCTTAACCTGGGCTGAGTGGTTTGTGAGAACAGAT
-TACCTGGAGCCCAGTGGGTCTTCCTGCACTCCTTCTGTTTCTTCTGGCAGCAGCAGTGTC
-TCTATTAGGGTACTTTCTGAGTCaaaatggcttcaacaagatggaaatatgtttcacaca
-aaacaagaagtcagcagatagggtgggcttcagtgctggtccattcaactcccaaagctg
-cgcacagggaccccggctctccaggctccttctgtctctTGGCTGTATTGTCTCGAGACT
-GCTGGCCCAATGGCTACAGCAGGTGTCACATTAAAGAGGTCCATGACCAGAGGAAGAAGC
-CAGGGGTCATTGtagtacctgagaactcagaactctggagtcaggctgcctggaattaaa
-tcctggctccagcactcaatagctgtttgacccttggcaagtttcttaaccactctatgc
-ctcagattcttcatctgtgaaatgggggacaatgatagtacctaacttatgagaactaaa
-tgacttattttgtataaagcaattagaacaagcagcgcctggcataataagcccacaata
-aaagttACTCCCggctgggcacggtggctcacgcctgtaatcccagcactttgggaggcc
-gaggtgggcagatcacaaggtcaggagttcaagaccaacctgaccaacatggtgaaaccc
-cgtctctactaaaaatacaaaaatttttagtagagacggggcgtggtggtgcgtgcctgt
-agtcccagctactcgggaggctgaggcaggagaattgcttgaacccgggaggtggacgtt
-gcagtgagccaagatcccgccactgcactcagcctgggcaagagagcgagactccgtctc
-gaaaaaaaaaaaaaTGGTGCTCCCACATTTCTTTCTTGGGATGGAGGaagctttcccaga
-agcgctcctgaccgactttcccacacatctcactggtcagaactgcatcacttgccgttt
-ctgaccaatcaccagcTTACATTCATGGGGCACGTGCTTACACTAACCATGGCACTCCTC
-GAGCTAAGTGGAGCTCATGCGTCATATGGAGGGGTAGTGACTCCTGAGCAAAACCAGGTT
-CAAAGAGGGAGGGGATCGTAGGGAAAAGAATGTGCGGAAGTgcggaggcccagccaacag
-cctgctaactgcagatactcgagagcggccaccctagatcatctgacccaggctggccca
-cgctagaattgcccagtgacccgcaaggtcatgagctaattgagctaaataaaatcattg
-tgtttttttgtttgtttgttttgtttttgttgttttgttttttgagacagagtctcactc
-tgtcacccaggctggagtgcagtggtgcgatcttggctcactgcaacctctgcctcccgg
-gttttcaaacgattcttctgcttctgcctcagcctcccgagtagctgggattacaggcac
-gcgccactacacccggctaatttttatatttttagtagagacgggggtttcgccatgttg
-gccaggctggtctccaactcctgacctcaggtgataggcccacctcggccacccaaagtg
-ctggtattacaggcgtgagccgccgcacccggccaatcattgtggttttaagtcactaag
-tttgaggctattttgttttacagcaaaagctaactgatgcaGACAGGGACAAGTCAGTCT
-CATCTCTGTGCACCCAGCATTGCCCAGAACAGGGCCTAGTTGTGTCTAGGGTCTCATGGG
-GCAGCCCCTGACCTCTATCTTGCCCCTCCCAGCTTCCAACAGACCCTGTCCCAGCTCCCT
-CCAAGCTGAGTGTTGGCCTGATACCTACCAGTGGAGCGAGGGGAACACGAGGACTGCCAA
-GGGcaggtaccgtgccaacccttcactccattccacaaagagactcatttactcctcatg
-acaatccagtgaggcagatgttcctgtcactttacagataagacaaatgagctttagaga
-gagcagaagactcatccaagacctcacaacAGAGAAAAAGACTCCTCTGGTTTTTGCCTT
-GGAGCAGGAACTTTTGACAAGGCTGCGCAGATGCAGCCACATGAAAACCGCCCATTAAAA
-ATGTAATATCggcccggagcgggggctcacgcctgtaatcccagcactttgggaggccga
-ggcaggcagatcacttgaggtcaggagttgaagaccagcctggccaacatggtgaaaccc
-cgtctctactaaaaatacaaaaaatagccaggcgtggtggcatgggcctgtaatcccagc
-tactcgggaggctgaggcaggagaatcacttgaacccaggaggcagagattgcagtgagt
-caagattgcaccactgcactccagcctgagcgacagagcaagactctgtctcaaaataat
-aataaaaTGTAATATTCACTCTTATCAAATAATGGATGTCACCACACCCCGACCCTAATT
-AGTGAGGACTTTCATGTTCTACTTGTCTTCATTTAATCATCATTGTATAAGAGTTTTACA
-ATATCAAATTAGTAGATGTATATTACTGAAAGGGAAGGACTGTTAGAAATTTACTTGAGG
-AATGTCTGCCACTGGGGGCTGAACACAAAAGATCCTATTGTGACCTGCCAGATTATTCat
-tcacttagcaattcaacaaccatcgctgaatgcctactataggccaggtgccatgcaaga
-cagatgtgctcccaccctcaagggttcacagtctaatagaggagagagatgttaaacaga
-taactgtacagatggcaTAGCTAATTATATTCGTGGAAGTTCGTTGTGGCAAAGACAGGC
-ATCTCAATATTTCAGGAGCTCCCctatattttctagcctcccttacagtcacatgactag
-ttctgaccagtggggtgtgtgtaggagtgGCAGGCTGAAGCAATGGAGAGCTGGTGAGCC
-TCATCCCTCTCTTCCCCTGCCACAGCCACCTTGCGCCCACAAGTtcccttagctacaagc
-tggaggagagccaccagatccaccttagatttcactgagcaagaaataaagcttcttgtg
-ttaagtctttcagatttggagtttgtctggtagatagtgttaattaccatgactaaGGAA
-AATTTGCCATTAGTGAAGGGAGGAAAAATATTCTCCACCAGTAACAAGGCCATGTCAGTC
-TGCTGCATTATAAACCCCAAACAGtagtttatgatcctctgggctggcaatttgggctga
-attcagctgggtcactcctgcagctgcaggcagcaagcagctcgaatgtctaccttgcca
-ggaaggctcttctctgctccacatggcctcgtcctccaataggcatagcctactccttcc
-tatggtggtctcagggtttcagaaagcaacaagagaggacaaattccagtgttcaagctg
-cactagtgtcaaagcatatcaaatagcatgtcaaattccacatcaaattcaggatgcagg
-caaattgattctttctcttgatgggaagagctgaaaaTAATGTGTGGTCTTGTTTTTCAA
-TGTAcagtggtcccatttatccaggggggatacattccaagacccccagtggatgcctga
-aaccacagatagtacagaattctgtatataccatgttttttactatacatacatacctac
-gataaggtttaatttgtaaattaaactcttacaaattaagagttaacaacagctgggcac
-agtggctcacgcctgtaatcccagcactttgggaggccgaggtgggcggatcacgaggtc
-aagagatcgagaccatcatgaccaacatggtgaaactccgtctctactaaaaatacaaaa
-attatctgggtgtagtggcgcatgcctgtaatcccagctacttgggaggctgaggcagga
-gaatcatttgaacccgggaggcggaggttgcagtgagctgagatcgcgccactgcactcc
-agcctggtgacagagcgagactccacctcaaaaaaaaaaaaaaaacaaaaaaaacaaaca
-gttaacaataaatagaacagttataacagtatgttgtaataaaagttatgcgaatgtggt
-ctctccctcaaaatgtcctattgtactgtactcacccttcttgtgatgatgggagataat
-aaaatgcctacatgatgagatgaaggtaaatgaatgacatgggcattgtgatctagcgtt
-agactactactcacctgatgatacgtcagaaggagaatcatctcctttgggtgatccagg
-atcatgaagccgtgacaatgtccatgattggatgtcaggagcagatgatgttaatgatta
-accgtgggtaatgtctacaatatggatacagtgcaaaagggatgattcacatcctacgtg
-gaatagtgcaggattgcatgagatttcatcatgtggttggctgcaggtaactgacattgc
-agaaagcaaaaccacagatcatgggggTGGGGGTGGGGAACTACTGTACAACATGAGATA
-TATTTGATCAAATAAGATGAGGTGCACCTAAAACTTTCCCTACAGGTTGTATGCCCCTGA
-GTAAATTGCTTGGTGTCTCTGGATCTCCAGCTGTTCCCCTTCTCTCTGCATGGCTAAGCC
-CTGTCCGTCACTTGGGGCTGGACCTAGAGCCCTGCCTGGCCACTAAGCCCTCAGAACAGG
-GTTTCTTTTTTAAAAAAGACAGGGTcgggaggtggaggttgcaatgagccaaggtcgcac
-cattgcactccagcctgggtgacaagagtgaaactccatctcaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaagacagggtctcactctgtcacccaggctggagtacagtggt
-gtgatcatggctcgctgcagccttgaacacctgggctcaagctgtcccccaacctcagct
-tcctgagtagctgggagtgccaccacgcctagctagttttttaaaaaattgttttgtaga
-gacaggggcctcactattttgcccaggctggtcttgaatgcctggcctcaaatgatcctc
-ctgccttggcctcccaaagcactggggttacaggtatgaccacTACCCACAACCAGAACA
-Tttctcaaatgtgattggttgatctcctgcatccatccctggggtgcttgtttaaaatgc
-agagccctggatcctcccccaacctagagagtcagaacatctgggcttctgcatcttaac
-aagctccctgggtgatgctgctgggcctccaagttggagaacctctgTATTTGAAGAAAT
-CCGGACTCCTTGGGGACTCAAATCTTATTTCAGCTCTTCTCTGGACTAGTTTGACTTTAG
-CCTTGGTGTAAAATGGGTATACATTTTACACGCCTGTGACGCCAGGATGCGCTCACAGGG
-GAGGGAGGGCTTTATCAGAGGTCAGAATCTAAGCCACCACTACAGTTGTACTAGATCCAA
-GGAGAAAGACTCCCAGGCCTCATttcctcatcgttctctcttctcttacctggctttatg
-gttcttcatagcactgagcaccaccaggcagtgtattttatgttttttttgagctttata
-atgccagggactatgttttgtttataactgttcacccagttcctagaacagtgcctggta
-cacaggagtgctcaataaatgtttgtggaatgactgaatAAAAGTTGTTCCTGTACAGAT
-TCCACCTGCCTAGAGCAAAGCCAGGACACTGATTGGGAtgaacacatagcacatgccaga
-catggctttgagtgctttacctggatcatctcactttatatgtgacagccaaatggtccc
-cagtgaccttcaccagctgctattcacgcctttgtacagtttcctcccatcctaagctgg
-gctgaccagtgtaatgaatacaatattgtgaaatgagaaagtatgacttttaagattagg
-tcataaaatatgttatggcttctgccttgctcttctggatcatctgctctggggacagcc
-agctgccatgttgcgaggacactcaattacccctgtggaaacttacatgtggtgaggatc
-gtaggcattctgcaaataaccagcaccacccaggcacataaaagagctttcttgagtcaa
-tcctccagccccagtcaagccttcagatgactgcagccccagccgacatcttaactacaa
-cctcatgagtgaccctgagccagaaccatctatgtagctgctccccagttcctaacccac
-agaaactatgtgatagcatacatgttgattgcttttttaagcaattaattttgggaaatt
-tgccacatatcaataattaataacttgtacagattctcacaacagcctatgtgggaggag
-ccatcataattaccattgaacagagaaagaaactgaggcccagatagggggaatctttgt
-ccagggtcacacagatagtgaactgtagcactgagattggaacccaagtttgaatgacta
-gagtcTACCCACTGAGGTGAAGGTGTTCAAGTTGAATGCCAGCTCTTCCCCTGAAGGGCC
-AAGGCTGAGACCAGAAAACCTGAAACAATATAGCTGCACCCaatataaatatatgcaggt
-aactcagggctgatggtacatgaccataataaatcagcagggtcatcaggagaaaacaag
-acaacaggagcgaaaacagatagaaacaaatatgcccagagtttgtatatcagtattatc
-agacgcagattataaaacaaaatgttggccgggcacgggggctcatgcctgtaatcccag
-cactttgggaggccaaggcgcatggatcacctgaggtcaagagttcaagaccagcctgac
-caacatggggaaaccccgtctcaaataaaaatacaaaaaaattagctgggcctggtggca
-ggctcctgtaatcccaggtacttcaggaggctgaggtaggagaatcgcttgtacccggga
-gggagaggttgcagtgagctgagatcgcaccatctcactccagcctgggcaacaagagcg
-aaactctgtctaaaaaaaaaaaaagtttactgcgtttaaataaataaataacctagaaac
-attgccaaagtatagaaaattatatcacatgacaacaaattttaaaataacctaacagaa
-cttctaaaataaaataatacaataatcaaaatttttaggccaggcacagtggctcacacc
-tgtaatcccagcactttgggaagccgaagtgggtggatcacttgaggtcaggagttcgag
-accagcctggccaacatggtgaaaccctgtctctactaaaaatacaaaaaattagccagg
-agtggtggcagacacctgtaatcccagctactcaggaggctgaggcaggagaatcacctg
-aacccgggaggcagaggttgcagtgagctaagatcgtgccatttgcactccagcctgggc
-aacaagagtgaaactctgtcacacacacacacacacacacacacacacacaaattaaatt
-taaaagatgggctaaacagcaaactagatatggctaaagagggaattagtgagacagaaa
-tcagaCaccaatcacagattcaagaaactccataaattttacacatagacacatcatagt
-aaaagtgcaaaaagccaaagattttttttaaaaaactcttaaaagcactcagaggaaaag
-aatcagagattctaaaaacaaaaaacaaaACAAAACAAAAAAACCCCAAAACAACAACAA
-CAaaaaacaaacaaaaaaccagtactacaacatggataaacctcaaaaacgttatgtcaa
-gaaaaaccccaaagttatgccaagtgaaagaagccagtcacaaaggttcacatattgtca
-aaatctaattttctttttgagacagggtctcactctgtcacccaggctggagtgcagtgg
-gacgatcactgctctacaggtgcacgccatcacactcggctaatttttgtattttttgta
-gagatggggtttcaccatgttgcccaggctggtcttgaattcctgggctcaagcgatcca
-cctggcttggcctccccaagtgctgggattactggcatgagccactgtggcccatcagta
-agatctaatttctataaaatatcaagaagaggaaagtctatagagacataaagtatatta
-gtgctgtcagttggaggatgggaaacagggaatgtctgctaatgagtacaggtctatttt
-ggggtgataagaatgttctttctttctttttttttttttggtctgagacagagtctcgct
-ctatcacgcaggctggagtacaacggtgcgatctcagctcactgcaacctctgcctccca
-ggttcaagccattctcatgcctcaggctctgcagtagctaggattacagatgtccgccac
-cacacctggctaatttttgtatttttagtagagacagggtttcaccatgttggccaggct
-ggtctcgaactcctgacctcaagtgatccgcccacctcggcctctcaaagtgctgggatt
-gtaggtgtgagccaccatgctcagccaaaaatgtcctaaaatttgattgtgatgatgggt
-gtacaattctgtaaatgttactaaaaactattgaattgtatattttaggtgggtggattt
-tatggcatataaattatatctcaataaagctgtttataaaaaGAACAGCAGTTAGATTGA
-CAGGTGATGATATCTCAATAAAGCTGTTTATAAAAAGAACAGCAGTTAGATTGACAGGTG
-ATGATATCTCAACAGCAACCATTtcccagcattttgggaggccgaggtgggcagatcatt
-tgagcccaggagttcaagaccagcctgggcaacatgaccaaaccctgtctctacaaaaat
-tagccagctgtggtggcacgtgcccgtggtttgcagctactcgggaagctgagcccagga
-gttggaggctgtagtgagccatgatcacgccactgcactccagcctgggcaacaagagtg
-aaactccatctcaaaaaaaaaaaaaaaaaaaaaaaaGGCTtccccaggccattcaaatgt
-acagccaaagttaagaaacattgtctaaagggatgtgtttccggcaaaagaaaaattatc
-ccagatgaaggtctgaggttcattccttcattcaacatatggagcctccattatgtgttt
-ggaactgttctagacaccaggaacacagcagtgagcaaaacaaaccaaagtccctgccct
-ctaggagaggaaaacagacccagaataacataaataagtaaaacatgctccgttagacag
-taatagatgctgagaagaaaaaatgaagccaggaaagcggatgtgaaatgctggatacgt
-gtgtctgtgaaatttcagatggagtaactagggaagatttttgggtaaagaccaaaataa
-agggaaggagggagccatgcagacgtttgggttatggcaggtgcaaaggccttagggcgg
-gagtgtgtctgacttactccaggacccagcaggtcaatgggacttgagtggaatgaggca
-ggggcagggcagtcagctacgaagacagagatcgggaggcaatttgcgagccctgggaca
-gatctcggattttgctttaagtgagatgggagtacttgggtcggggagtggcatgggttt
-gatttacattttaacaggactctccggcagctaggtggaaatggacggtagggggcaaaa
-agagaagcaaggaggcccaggaggaggctggttcaagacccctgagatgatggagcactg
-atggagctggagcgggatggggccggaggaggtgagggatgagattctgcaagtggagcc
-cgcaggatctgctgatcgatgggacgaggaacgggagaaaaaTTAAAGCGGCGCATGAGG
-CAGACGAATGCAAACTTCACCAATAGCTCAACGAAAAGACAGACGGTGACCGCTgagagg
-cagcgtcggatctgggtaagggcgggttcctgagcctgccaggcctggattcaaacctcg
-gctgagtggccttggacaggtcatcaacaaacagagccttcgtttattcatgtgcaaacg
-gggccaaggaccgggcctgccccgaggtatgcctgaggcttgggtgagCAGGCGCCGGGC
-TCGCAGGGCGCGCTCCTAACCCGTCCCCAGCGGCTCGACGCTGTGGATCCCGCCGCCCTC
-CAGCCCCGGCTCCGGCGCCGACTCCTGCTCAGgctcctgctcctgcccccggccccgccc
-ccggccccggccccggcccccggcccaccccggccccgcccccagcccccggcccccccg
-gccccgcccccggccccgccccggccccgCCCACCCCGCCTGCGGCCCAGCTCCTTCCCG
-CGGCTCTGCGATGCGGCCCGCAGGGTGACCCGGGCGGGAGTCCGGGGACCCGCGATCAGC
-CCCGGAGGACGGGGTGGGGTCGCCCCAAACAGGAGCGCCGGGACCGCTGGGACCCCGCAC
-TCGGCGTCCGCCGCCGCCGGGTAGCCGGGCAGTGGAGGTCCCGGATGAGGCGACAATTTT
-TCCGGCCCCCCCTCCCAGTCCCGCCCCACTTCCGGGGCCGCCACTTTCACTTTCTCTTCC
-GCCGAAGCCGCTCCCCTTGCGAAGAACTGGGGCCTCCCGGGAGGAGAGAGGGCTTTGCCT
-TGAAACCCGGGACGCCAGGGGCGCTCCCGCAAGTGGGGGTCCTCCGGGACTTGGAACGCC
-CCGGCTGGGTGGTGTCCGGGCGTCCTTTCCCCGCTTCTTCCCACCTCGGCTGGTCCCGTT
-TCCTCCTGCGCCCAGTGCGGACCTGTCTCGGCGCCCGCTGCCCTCTCACCGCCCCACGCA
-GGATCCCGGCCTGGTCACCGGGCAGTGTGATGCTTCCCGACTGCCGCGGGGACAGCGAGG
-CACACACAGGGCTTGGGCCGCGCCGGAGGCCACACGGCCTGGCTGAGTTGCTCCTGGTCT
-CCCGCCTCTCCCAGGCGACCCGGAGGTAGCATTTCCCAGGAGGCACGGTCCCCCCCAGGG
-GGATGGGCACAGCCACGCCAGATGGACGAGAAGACCAAGAAAGGTGGGCACAGGCTGGAG
-GTGGCTGGGGAACTTCCGGTGGGAAGTGGGCCCCGCAGGACCTGGCCTTGCCCCTGGCCA
-GAAGGGCCTTGGAGAGGGGGCTTTAGCCTGCCCTCCCTCTACCCTCCTCCCCATCAGTTT
-CCTCCTTTGGTACCTGCTGGCTTCCAGAGCCATCTTGGGGCCCTGAGAACTCCTTGGGCT
-GGCTCTGTGCTGAGATGGGGCTAGGGGACTCGCAGAGGACACAGGGCATTGAACTTGGAG
-ACCTCCTGGGCTGGTGGGAGACAGACGTCAGTTGACCTGAGAAGCAGGGGTACTTGCCTC
-TTCTCTTGTCCCCTGCACCTAGGGttgtagaacggaagtcagtcactgccttgctggaaa
-ccctcccatgcccctctgtgttctccaaacaaaacccagaggccctgggtggcccacagg
-atatctgtcctcagtcaccccgccatgctcactctactggagccccactggcttccttcg
-gttctcatccaaccattttttggccaaggcccttactcttccttccacctggaccactct
-tccccactggagcttgacacgtgcagcttctcctccttcaggtcttagcttcagtgttac
-cccctcccagaggcctcccctggtctccttaacctgtttatttccctgccagcaaggatc
-gcaatctgactttttttttttttcttgttaaacttgttcattgtctccccactgggcagg
-gagatccataaggagaggggccctgtttataaatctctgtgggattccagttcctgggac
-agtgggtggcacacagtagaagctcaataactgcttgttggataaatgaatAGAAATATG
-AGGGACCCTGGGAATGGGAAGGACAAACAACCAAATGAGCCTAGTGTGAGGAGGAGTGgg
-gaatattagagaacccctcccggagaaagggacttttagtctgggtgctgaaggatacgt
-aggagttcaccaggaagacagagaaagCAGCACACACAAAGGATCGCCTCCTTTCCTACC
-CCATTACTCTCAGCTCCTGAAAATAAACCCTGTGCTAACTGGCTCCTGCTGTACTGGCTT
-TCAGCAGAGGAAATGGCCCTGAGCCTCACCCGAGCAGTGGCGGGCGGGGATGAACAGGTG
-GCAATGAAGTGTGCCATCTGGCTGGCAGAGCAACGGGTGCCCCTGAGTGTGCAACTGAAG
-CCTGAGGTCTCCCCAACGCAGGACATCAGGTGAGGAGTGCATGGCTGGCCTGAACCCAAG
-GGACAGCAGGACAGGATATTCTTGCCTGTAGAACAGTTCTTCCtaatggcacgttctggc
-ttcaggaggcctggcttctaaccctagttatgtcattaatcaactgtgaaatacagagca
-ggtcacttcacctctcagtgtgtcctcattttaaaaatcagaccgtaacagtagctatct
-catagggttgttaggaggTGTACTGTATTAGGATGTTAGGCCTTATACAACAGAAGAAAA
-CGGAACAGTGacgtaaacaaatttgatggcagggagtccagatagggaggttctgctccc
-gacagtcctcagaggctcatattgtttctctcaccattctgccattcattcccagattcc
-tcatggtgcaaaatggccattccagctccatccagccatcacatcacaggaggaagggaa
-gaaagacacccctccacactcttctaaagagcatagctcaaaaattgtacacacttcttc
-cgttaattcctgtggaccagaactgattcccacagctacagttcagcttgaggggagact
-gtatagccaagatattcagctagaattcaggggttcgcttggtaagggaagggaagagaa
-tggatactgTCGGTCTGTGCTCCAGgagacttaaactcaatgctgaaacactttgcacaa
-tgcctggcgtgttatgcactcaataaTAAACATTAGTGTCTATCGTTATTTTTTGACTGC
-TTTTTCATTACTGGATAGTAAGGCAATAGTTTTATGGTTTCTGATTTTTGGTTCTCTTGG
-TGGGTCCCATTTGGTTTttcttaaaacagttttatttatttatttatccttacagttcga
-ccatttaaagtatacagttcaatggcttttagtatattcaaggttgtgcaaccattgcca
-caatcaattttagaacattttcatcatcctgtaaagaaacctggtactcattagcagcca
-gtcctcatctctctaccttttccctaactccccaaccttaggcaaccactaatctacttt
-ttatctctagggatctaccttctggaaattccatataagttgaatcatgcaatatgtggc
-cttttgtatctggcttctttcacttaggatcgttttcgagattcatccatgttgtagcat
-gtctaacaacttcattcccctttttttttttgacatggggtctcttgtctaggttgaagt
-gcagtggtgccatcatcgctcactacagcctcaacttcctggattcaagcagtcctcctg
-ccttggcctcccaggtagctgggactactggcatgtaccaccacacccggctaatttttt
-ttttctttgagatgggagtctcactctgtcccccaggctggagtgcagtggcgcgatctc
-agctcactgcaagctccacctcccaggttcacgccattctcctgcctcagcttcccgagt
-agctgggactacaggcgcccgccaccacgcccagctaattttttgtatttttagtagaga
-cggggtttcgccgtgttaaccaggatggtctccatctcctgacctcgtgatccgcccgcc
-tatgcctcccaatgtgctgggactacaggcgtgagccaccacacccagccacacctggct
-aatttttagaaagtctgtagagataaggtcttgctttgttgtctgggctggtcttgaact
-tctggcttaagcagtcttcccacctcagcctctcaaagtgctgggattacaggtgtgagc
-caccatgcccaaccagaactttattcctttttattgccaaataataatctattgtataga
-catatctcattatctttactcattaaatcagttgatggacatttgggtgtttctattttt
-tggctattataaacaatgctgccgtgaacatttgtgtccaactttttgtgtggacacgtt
-ttcatttctcttggatacacactagcagtggaattgctgggtcatacagtaactctatgt
-tactttttgaagaaatgccagacagttttccaaagtggctgcaccattttacattcccac
-cagcatatatgagggttctagtttctccacatcatctctaatacttgttgttgtttatct
-ttttgattatagccatcctagtaagtttgaagaggtatctcactgtggttttgatttgca
-atttcctaaccatttgatgacaaatgatgttaagcatcttttcatgcacatattttcttt
-ggaggtttgcctattcaggtcttttgcccattttaaaattgggtttatcttttttttttt
-ttgagatggagtctcgctctgtcacccaagcaggagtgcaatggtgcaatctcggctcac
-tgcaacctccgcctcccaggttcaagtgattctcctgccccagcctcctgagtagctgga
-ttacaggtgcccaccactacactggctaatttttgtatttttagtagagacgggtcttac
-catgttggccaggctggtcttgaactcctgacctcaggtgatccacccaccttggccttt
-ccaaagtgttgggattacaggcatgagccactgcacccggctgggtttatgtttttatat
-tgagttgtaggagtactttattcattttagctagaagtactttattcattttagcttatc
-agctacatgatttgcaaaaattttctctcattctgtggattgtcttctcactttgttgat
-ggtatcctttgaaccacaaaagttttaaattttgatgatgtccagttagtctatgtttta
-ttttgttgtttgtgcttttggtgtcatatctaagaaatcgttgcctcatccaaggtcatg
-aagatttacctctatattttcttctaaagattttatggttttagctcttacatttaggtc
-tttggtccattttgatttaatttttatataaggtgtgaggtaagggtccagcttcattct
-tttgcacgtggatattgagttgtgccggcactatttgttaaggctgttttcctctgttta
-atcatcttaaccctttttggaaattaattgaccataaatgtgagtgcttatttctggact
-ctcatttctataccattgaactataatatatatctgcccttacgccagtaccacactaat
-tactatagcttcatagtatttgaaatcaggaaatacaagttctccaacttttgttctttt
-tcaatattgttttggttattgcaagtctcttgaatttccatataaattttacgatcagct
-tgtctgtttctgcaaaaaaaaaacaacaacaactgggaattttggtagggatttcattga
-atctgtagatcattggccacttgattttaaacaaaatattgagatatctacttcttgaaA
-TGATTGCttgagacagtacctgtgtactccttgctatgaaaaatgaggaagttaacatac
-tcatcttccacctttccttttccttactttttttgttGAAGTATCATTGTGGACACTTTC
-CCAGTTGACTTCCACTTGATCCCCTGAATTAACTAACTGGCACTGGCGTTTCCTTTGTAA
-AATGTACAATGTCAGCCACCATCTtgctactaaagtgtggcctgtggaccacaacatggg
-gggaatctcaggtctcacctcagacttgctgggtcagaacctgagttttgagaggctcTG
-GGCAACCGGCACCTCTCAGACCTGCTGTTGGGTTCTCATCGATGGACCCGATGCTTCCTA
-GCAAATGATACCTGTTGTATGTGTTATTGGTAATAACATAGTTTACTTAGCTATTACATT
-AATTAATAAAACATGAGCGCTGAAAGAGTTGTTTCTGTGAAAATAAGCTGATTGCTTTAA
-AAAGATAAGAGACAAATCACCAAAAAAAAAAAAAAAAAAGATTAACACTTTTGGGTGAGA
-CAGTAGTAAGGAAATACAGTAAAAATCCAGAAGGGCTCTGTGCTCTGATGCTTCAGGAGT
-GTGTCTAAGTTCTTGCTCGCTTTAAAGAAGCTGCTACTAGAAATTATAGATCATGATTAT
-CGATGTGGTTCATACAAAAAAAAAAAAGAAAAATCCCTGGGAAACTCCAATGAGCAGGTA
-TAAACTCACgctgggcatggcggctcagcactttggaaggctcaggcaggagaatggctt
-gaactcgagtttaagaccagcctgggcaacatagtgagaccttgtctctgcaaaaaataa
-aaaaaattagccaggctgggtggcacacacctgtagtcccagctatttgagaggctgaga
-tgagaggattattagaccctgggtggttgaggttgcagtgagccatgatcatgcctgagt
-gacaaggtgaaaccctgtctcaaagaaagaaagagagaaaaGCCATTGGCTGTACACCTA
-GAGACTGGCCAGTGAATATGCATTTATAGTATGTAAGTTAAAATTAAGTGTTTAAGCTTT
-GTCTGCAGCTGTTTTTGTGATTCTCTGCTGTTCACCAGCGATCCTGATGTCACATTGGAT
-GAGAGAGCTCCAGCTGTATTTTTTTGTTGATAGTGTTAAGATTATAGCTTTAAAAAATTT
-TGTTTTCTAACATAATTAAGGCCTTTATGCTTTGCCTCTAGGTTGATTCTAAAAGTGTAA
-CACTACTAGAAAGGATTTATAGTATTTTGATTATGGAAATATTATTCACTATAGAATAAC
-TAGTGCAGTTGAAACCATATGCACTTTTATGTTTCAAAACCCTTATTGCTGGAAGAACAT
-TTTGGGGTTAAGATCCAGTCCTTTTCATTTTTTACTTTTCTTCTATTCTCCTGTATCAGA
-CTCATCTATTTTTGTTTTTCAAGAACTTTTCACGTGGAAAATGTggtaaacttttagagt
-ctttgcatgtttaaaaatttctatattttgctctgtcaattcattgatagttgactgggt
-attcaaattgtttacctgaagaattttgagagcattttctggactgcttttaaataaatt
-tcagatattattttatccttaaatactttagtatgtgtcttcaaaaaattaggacttggc
-ggggcacgatggatgatgcttgtaatcctagcactttgggaggctgaggcaggtggactg
-cttgaacccatgagttcaaaaccagcctgggcaacatagtgaaaccttgtctctacaaaa
-cattagctaggcatggtggtgcgcccatctagtcccagctacccaggaggctgaggtggg
-agggtcacctcagtccaggagattgaagctgcagtgagccaagatcatgccactacactc
-catcctgggtgacagaagtgagaccctgtctcaaaaaaaacaaaaacaaacaaaacccct
-caatactattatcacaccttagaaaaggaataagaattccttaaaatccgctaatgccct
-gtttatattcacattttcctatttcattagtgctttttacaattggtttcttcaaatcag
-gagccaaacaagatctacatgtagcatttcttactatgtcttaagtcccttttactctcc
-tctatttttatgccactagttttttttttaagaaacctggtcttttgacctctagaattt
-tccccatattctggatctatccattacctcttcatggtatgtattagaccactctagcat
-tgctacaaagaaatatctgagactgggtaatttgtaaagaaaagaggtttaattgactca
-gttctgcaggtggtgtaggaagcatggtcctgacatttgcttggcttctggggaggcctc
-agtgaacttttactgaagcgggagcaggcacttcacatggtgagagagggagcaagagag
-agagttggtggggaggtgccacactttacaacagccagatctcacgaggactcactatgg
-cgagaagtcactacagtgagcgcagcaccaggctgtgagggagctgcccctatgacccaa
-acacctcccaccaggcctcaccttcaacactgaggattacagttcaaggtaagatttggg
-cagggacaaatacccagactatcatggtgtcatttactatctcccgtttttcctgtaact
-ggtagttagagataaagtttcaattagtcagCAGTCACtttttttttttttttttttgag
-acagagtttcactctgttgcccaggctggagtgcggtggcgcaatcttggctcactgcac
-ggtccgcctcccgggttcacaccattctcctgcctcaatctcctgagtagctgggactac
-aggcgcccgccaccgtgcctggctaatttttttttttgtatttttagtagagacgggttt
-tcaccgtgttagccaggatggtctcgatctcctgacctcgtgatccacccacctcggcct
-cccaaagtgctgggattCAGCAGTCacttttaatgtgcaggaactcttcctcattttttg
-gttgcttcatgcctttccttgctttctgaatgcagtgttttcccaaatctctctgaaggt
-actagttagacttcactgttgcttattgttccataccctaaatgatctctgtttcctttg
-gggtcggttctgttttttcatcttttcatgcttttgattttccaaacatgttggaggatc
-ctcaAGAAAGTTAAAACCACTTTCTCTGGAATAATACCATGTAGATTTAAATCCTGCCTC
-Tggctgaacacagtggcttactcctgtaatcccacttcgggaggccaaggcaggaggatc
-acttgaggccaagagttcaagaccagctttggcaacatagtgagaccctgtctctacaaa
-aacttaaaaaattagccaggcatggtggcatgagcctgtggtcccagctacttgggaggc
-tgagatgggaagagcccaggaggttgatactgcagtgagccaaggtagcactactgcact
-ccagcctgggccacagaaagagagcctgtgtcttaaaaTTAAATCAAGACATACAAATga
-atcctgcctctaacagttattagttgcttagtttggcagagtcactggaacctatctgtg
-cctcacatttttatctgtaaaacagggatacagcagtacctgtctgatgggttggttgag
-aggattaaatgagttaatacacatgaagtgcattaaatagtcttagcacgtagttaacaa
-caacttctggtggttTCACTAAGgagcaggggagagaagacagaagaggttggagaggtc
-agggaggtgccagatcatggaggccctcgtgtgctgccacgagttgattctaagagtagc
-gtggagccattggagggGCCTAACTGGTGGGTTCTAATAAAGGAAGAAGCATGGGTGGGG
-CCTACCCCAGACTGGGGTTtgtgtgtgtgtgtgtgtgtgtgtgtgtgCATGGCCATGTGC
-CTGTGTGCAAATATGTACATGTCTGTAGCCGGTGGCTGAGGCTGGACCCCTGGCCAGAGC
-CCATGCTGAGCCCCTGCTGTTCTCTGCAGGCTGTGGGTGAGCGTGGAGGATGCTCAGATG
-CACACCGTCACCATCTGGCTCACAGTGCGCCCTGATATGACAGTGGCGTCTCTCAAGGAC
-ATGGTGAGTGAGGAGGCGGAGGGCGACACTGGGGTGAAGGctctccctttcactcctgct
-tcctctctctcctctggccctcccttcccactctccctctctttgccccCACCAGGTTTT
-TCTGGACTATGGCTTCCCACCAGTCTTGCAGCAGTGGGTGATTGGGCAGCGGCTGGCACG
-AGACCAGGAGACCCTGCACTCCCATGGGGTGCGGCAGAATGGGGACAGTGCCTACCTCTA
-TCTGCTGTCAGCCCGCAACACCTCCCTCAACCCTCAGGAGCTGCAGCGGGAGCGGCAGCT
-GCGGATGCTGGAAGGTGAGGCTCTGCCCTGAGCACCGCCGGACCCAGCGGGGGCCCTGGA
-CTCACTTGAGGGCATAGGGCAAGCAGGGGCAGAGCCCCTGGGTTTTTAGTCAGGGACTCA
-CCCAGAGGACCCTATCCAAGTGGGGAAGAGAGGACCTAAGACACATGGGAGGGAGCATTT
-CAGGGACCCATCATGAGAACAGCTGGCACGGGGAGGGGTGGACTCCGtccaggctccggc
-attcccagctgtgtgaccttgggcaaggttgctcctatctgctgcccagtttgctaaaat
-cataaattgggtatgacagtgatCGTGATAACTAGTGTTTATTCTTAAtttttaacttct
-gaaatgtttcagacctacagaaaagttgctaaattttacaaagtagtacataaagaattc
-ccatgtacctttcatgtgggttttaccacatgtgctttctttttttttttgagacggagt
-ctcgctctgtcgcccaggctggagtgcagtggcacaatctcggctcactgcaagctccga
-ctcccgggttcacgccattctcctgcctcagcctccggagtagctgggactacaggcgcc
-cgccaccacgcccggctaattttttatatttttagtagagacggggtttcaccgtgttag
-ccaggatggtctcgatctcctgactttgtgatccgcccgcctcggcctcccaaagtgctg
-ggattacaggcgtgagccaccacgcccaacccacatttgctttcttttatcattctcttt
-ctatataaaattattttttttctgaaccattttgagagtaagttgcagacatgatgtctc
-tttcccctaaataattcagtgtgcatttccttgaaaagaaaggtcattttcttacattac
-tgggtataacaatccaactcaggaaactaacgctgatacagtactggtatccagtctaca
-gatcttactcagattttaccagttgtcccactattgtcatttatagcaaaagacttggca
-ttctgctgtcatgtctcagtccctttcaaagagtccaggccagtttcttttttttggcgg
-gggttgggggctgatgtttcctccggagtggatcaagtcactgttttggcaggaccgcct
-cagcggtgctcttgggtccctcttggtgcatccttcaggaggcacGGAAGGGCTGGTGTT
-GTGCTGGGTTTTGAAGCTCAAAGGACATAGAAGCATTTATCGGTGGAATAGGGACCCTGA
-CCCTGGGGGAGCCAGGATGCCCACTTGGCCAGATGGAAGCTGGAGGTACCCCCAGGGAGG
-AGGGAGAGGATAGGGGGAGGGTCTGCCTGGCTGGCTCAGGGAGACCCACCCCCATGGGTG
-TGGACCAAGTGGGCCGCGTGGAACCACCACCCTTTAACCCTCCTCCACAGATCTGGGCTT
-CAAGGACCTCACGCTGCAGCCGCGGGGCCCTCTGGAGCCAGGCCCCCCAAAGCCCGGGGT
-CCCCCAGGAACCCGGACGGGGGCAGCCAGATGCAGTGCCTGAGCCCCCACCGGTAAGCTG
-TCCTTGGCCTCAGTATCCTCTTCTGTGCCCCTCCCTTGCCTCACCCTGCCCAGTCGGGCT
-CACAGCACCCTCTGCTCCCAGGTGGGCTGGCAGTGCCCCGGGTGCACCTTCATCAACAAG
-CCCACGCGGCCTGGCTGTGAGATGTGCTGCCGGGCGCGCCCCGAGGCCTACCAGGTCCCC
-GCCTCATACCAGCCCGACGAGGAGGAGCGAGCGCGCCTGGCGGGCGAGGAGGAGGCGCTG
-CGTCAGTACCAGCAGGTGGGCGGGAAAGTCCCTGGACAGACACCTGCAGACCGCACGGGG
-GAGGTGTAGGCCAGGAAGGGAGACACCTGCGCACTGCCGCGCCTCTCCGTTACTGCCTTG
-CCCCTCCCAACCATGCTGCTGGCAGTGACCCTGCACCTGGCTGTGACCCTGCACCTGGCT
-GTGACCTGCCCTCTCTCAAAGGTCACCCTGTGGCTGAGACCCGCTCCCTGGCTGTGGCGC
-ACATCCAGGTTCACATGCCCCACTCCCACGTGGGCTGTGGCTCCATCCCCAGCTTTGACA
-CACCACACGAGTATGGCTGGCCATGACCCCAGCACCCTAGCCATGACCCCAGCACCCTAG
-CCATGACCACACCTCAGCTCGGACCTCACCCCCACCCGTCTGTGACCTAAGCCTGCTCCA
-CCTCGCCGTGACCTCACCCTGGACTCTCCTACTCCTGACCTCTTCCCTCTCGGGCTGGGC
-CCACCCCTGACTTCCTGAGAGCCTGGCCTGGACCCTCGCTGCGCCCTAGGGGGATGACCC
-CCGACCCCGGTCCTACGCCTTAGCCCTACCCCGCCCCCATCGTGACACACGCACTAATGA
-CACAGACATTGATCCCCGAGTGCTCCCCATTCTGATCTCACCCCTGGCCCCACCTGCATT
-CCCCTTGGACCCGGTGCTGCCCCTGGCCACCCCACTCCTGTTCCCGTCTCAGCTCCTCGG
-CTTCGTCACTTCCCCACCCCTGACGTTGAGTGGCTCCACCAGCCCTGGCCCGGGCCCTGC
-CCTGCTACCTGACTCACCACTCAGACCCCGGCCCCCTTCCTTACCTTGCTGCCATTGCTG
-TCTCACCTGGCGCCTTCCGTGGCTACCTGGCCGGCCTCCCCTCCCTTGGCTTCCCCACCT
-CCACCTGGCCTCACTCCCAGCCCCGCCCCTCCCAACCTGCCTGCTCCTGcccatccccca
-ccccccaccccccatcccccagccccacccccatcccccacccccgtcccccatccccca
-tccctacTGGCTCCCAGCTTTGCCTGTGGCTGGTCTGACCCAGCCCTGACCACGCCCCCT
-GGCCCTTCCCCCTTCGGGGTCTGACCCGCCCCCGAGGCCCTGACCCGCCCCGTGGCCCCG
-CCCCGTGTGCCCAGCGGAAGCAGCAGCAGCAGGAGGGGAACTACCTGCAGCACGTCCAGC
-TGGACCAGAGGAGCCTGGTGCTGAACACGGAGCCCGCCGAGTGCCCCGTGTGCTACTCGG
-TGCTGGCGCCCGGCGAGGCCGTGGTGCTGCGTGAGTGTCTGCACACCTTCTGCAGGTGCG
-GCCCCCAGTCCCACCCCCGGCAATGCAGCTtaatcaaagccgccaattacgcagggctgg
-acgtgggtggggccctgtgctctgatacctcattggacgcccgcgaaaacctacgaggta
-ggctccgtctccccatgttgcggacgaggaacctgagggaaagagaggcccagcgcctta
-ccccaggcccacggctcatgagagaagcagcctagacgtgagcgcaggCGTGGGGGGAGA
-CTCCCTTCCCCTCTACCTTTCGCCGCCCGGGCTCCTGCAGCCACGCTGCTCTCAGCCTCG
-CTGTGGGCATCTGCCAGTTTCTGAGTCTCCTGTCATGGCCCCCCCACCCCTGAATGTGGG
-GAACACAGACCCGCTCACCACAGCGGACCCTTGTGGAGCCGCCCCTGGGTGacaggctcc
-gtgcctgcctcctgcagcttacattccagcagagaggctgatgagaatcggataatcgct
-ggttgatgtctttgtgaattgtgtcaaatgctacatacagtacattaagagacaacagga
-gtccttcccagagagggtggtctggaagcttccaaggaggtagccccagagcagggaccg
-gaaggcctgctgtaggtgtggggtgtgggcctggcctgttggaggagactgaggaggtct
-cttggtggctggagcagagggatgaagggggtaatcagagcaggatagagaggtgttggg
-tacgtgagcagcagtgaggagttgggatttgttctgggtaggatgggagtcactggggag
-acatggctgctgttctgagatagactctaggggccagatggatgcagggagcccagcgag
-gaggctcctggagtcacccaggtgggggatgtggggcctggaccagagaatcagagcggc
-agtatggaggcagggtggagGCCTTGGTGATGGGTTGGTGAGAGGGATGGGAAGGAAGGA
-GATATTGAGGAGAAGTCCACCTGGGGTGACTGAGTGAGGCCCCTGGGGTCAGGCCTTGCC
-ATGTGAGGGATGGAGTCCCCAGTGAAGGGGGTTCCTATGATCCTAACTCTTTTCCCCTCC
-CCTCCCCTAGGGAGTGCCTGCAGGGCACCATCCGCAACAGCCAGGAGGCGGAGGTCTCCT
-GCCCCTTCATTGACAACACCTACTCGTGCTCGGGCAAGCTGCTGGAGAGGGAGATCAAGG
-CGGTAAGGCCTCAGGGTGGGAGACATACCCCAAGTCCCAACTCCTAAGGAACTGGGCCCT
-GAGCAGGCAGCAGACATCtttcttttctttcttttttttttttggagatggggtctcact
-atgttgtccaagctggtctcaaactcctgggcttaagcgatcattcatcctcagcccccc
-agaCATTTTTCAAGAGCTTTGTCCATGTGGGGTGTTGAGACCCCAAGCAGAAAAAGAATT
-GAGGGGAGTAGCTAGTCAAGAAACCACATCTATGAAGGAaggacagcagagttgttaaga
-atcagggactcggctgggcgtggcagctcacacctgtaatcccagcactttgggaggatg
-aagtgggcagattgcttgaacccatgagttccagaccaacctgggcaacatggcaaaaaa
-tattcaaaaaatagccaggcgcgggggcatgcgcctgtagtcctagctacttgggtgggg
-tctgggatgagtgggctgaggtgggaggattgcttgagcctaggaagtaaggttgcagtg
-agctgtgattgtgccactgcactccagcctgggcaacagagtgagaccttgcctcaaaaa
-aagaaaaaaaaaattagtcagggaactctggagcctggtggcctgggtgtgtgaccacaa
-gtcagatatttaacctctctatgcctctatctcatctctgttagagtcagagttacagct
-tctatttccaggattgcaaagattacagtagaggatatgtgtatagaattcatagtagta
-cATccaggcgcagtggctcattcctgtaatcccagcgctttgggaggccaaggcgggtgg
-atcacctgaggtcgggaattcgagatcagcctgactaacatggagaaaccccatctctac
-taaaaatagaaaattagccgggtgtggtggcgcatgcctgtaatcccagctactcaggag
-gctgaggcaggggaatcgcttgaaccccggaggcggaggttgtggtgaactgagatcgcg
-ccattgcactccagcctgggcaaccagagcgaaactccgtctgaaaaTATATATATATAT
-ATTTAGAGTAGTGCTTGTCACATAGTAAGCCTTtgttgttgttagcgcttactgtgtaac
-aaatcactgcaggctcaaaacaacagtcatttattcagctcataaatctgcaagttagga
-cagttggccctctgtatctgtgggtaccacactggagaattcagcaacggtggatagaac
-atattcttacaaaaaaaattacaataaaaaacaaatttaaaaaacaatacagcataaact
-atttgtataacatttatgttatattaggtattataaataatctacagatgatttaaagtg
-tatgggaggatgttggtaggttgtatgcaaatactgcactattttatataaggggtttga
-gcatccatggatttgggtatctgcaggggtcttggaaccaattctctggataccgaggga
-tgactataatttgggctggacttacctggatggttcttctggtctgggcagggcctcgct
-gatttcacctgggcctggctggtgggtcagccgcggtggcctggtttataatggtctcat
-ctgtgatgactgggatgactggggcctccttccacttcaatgtctcacccaccagcaggc
-tgcccgggccttctcatgtcatggtggtctcaaggttccaagagcagccatggggagccc
-cagtgcatgtgtactttctaagtctgctcatttctcacttgacactgtcccattggccaa
-agcaagtcccatgctcaagcacagagtccattgggaagggaccacccaaaagtgtggaat
-cggggagacagaaacaaattggagtcaccaCTCCGCCAGTCTGTCACAGCGTTATGTGTG
-TCTGCATACGTGTGTGCTTGCCGCTGGCGCTCTTCATGAATTCGTTAGCAGGTTctctgc
-ctggctgctggtgatctcgagcaagttgtttcccttctgtgggactccatttccttatct
-gaaaagtggacagttgggcttgatTCATGGTTTTCAAACTGCTGGGAAATGACCTTCCCA
-GACTTGGGCACTGTGGGTTCCCAGGCCAAAACATGGCAGCCGAGGCCCAAATGGGAGATC
-CCCACAAAACACATACACAGACCTCCTCTTTATTTCTGTCCCCCCTGCCTCTCTCCTATG
-CCCCTATTTCTCCTGAGAATGCTCCCAACTTCACCAAGTGTTTATGGAGCCCAAGAGGTT
-CTGCCCCTGGGGAAAAGGGGGAGGCAGAAGAGGTAGAACTTTGGGAGTTCACAGCTCTGA
-TATCAGGAGCAGCCCCATTTTTCTCTGTTGTCTCTGGGTGGTTGCTGAGGCTCCTTCGCT
-CTGGCCTGGAGAGACCTCATGACCAGTCATTCCATATGTCCCCAGCACCCATAGCCATTT
-GCTTAGAGGTTTCCCTGTGGAGTCCACCCCAGCCAAGGGGCATTATGCTGGGGCCAGGTT
-CATGCCAAAGGGCTGCATGAACTTCCCTGGAGCCCACTGGAGTTGATGTGAGTCTCAGAA
-AATGGTCAAGTGTGACAGAGAGAAGGAGGCAGGGATCAGCCAAGTAATGTAGTGGAGGTT
-GTTTTTACAAAAACAGAAAAATATGCCTCACCACATAGAACCAGAGCAGAAATCAGAGAG
-AAAATCACCCACAAACCCAGGAAATCCTCCAATTGCATTTTATCTTATTTCCTTCAGTAT
-CTCTGGGCAAAttttttttttttttcctttttgagatgaagtctcactctgtcatccagg
-ctggagtgcaatggcgcgatctcagcccactgcaagctccgcctcccgggttcacgccat
-tctcctgcctcagcctcccaagtagctgggactagaggcgcacaccgccatgcccagcta
-atttttgtattttcagtacagacgagttttcaccatgttggccaggctggtcttgaactc
-ctgacctcaggtgatccacccacctcggcctcccaaagtgctaggattacaggcgtgagc
-caccgtgcccagccAGATATGATTTTTTAAGTCAACtttacttaagtatactttgcacac
-aataaaatgtactcattgtaagtatgcagtcaggtaaattttaacaaatgtaactctcgt
-aaccaccaaccactgttacatataacatAGGCATGATTTCTGCCTCATTGTAACCAGCAT
-GGATACAATCGCTTTAGCTTTTGTTATTTTGCTATAGAATTTTTCTAAAGATTATTACAA
-ATCTCAATAGCACATATACTGTTTATACCTCTTAGTTCTAGTTTCTCAGTTTGTAATACT
-CCTTCAAGGAATGTTTTGCATGGTGTAttcttttttttttttttttttgagacgaagtct
-cactctgttgcctaagctggagtacattggtgtgatcttggctcactgcaacctccacct
-cccgggttcaaacgattctcctgcctcagcctcccgagtagctgggactacaggcagatg
-ccaccacacccagctaatttttgtatttttagtagagatggggtttcactatgttggcca
-agctagtcttaaactcctgacctcgtgatgcgcccgcctcggcctcccagagtgttcaga
-ttacaggcgtgatccatcattcctggctGGTGCATCTTATATattattttcttgggataa
-agttaaagaagtgggatgggtaccaaagggtcagaaaagtttgggatggttgaaacgtta
-ttgccacattgctttctcagtgctacgtactagcttactagtttgtttaatttttatttt
-ttatttttgcgggtacatagttggtgtatatatttctggggtacatgaaatactttgata
-caggcatgcaatgcgtaataatcacatcatggagaatggggaatccatcccctcaagcat
-ttatcctttgtgttacagacaatccagttaacctctcttagttattataaaatgtacaat
-taaattattggctacagtctgttgtgctatcaaatactaggtcttactctatttttttgt
-accaatttgccatccccactcccctgccacgcctcactaccctttgcagcctctggtaag
-catccttttactgtctgtcctcattagttcagttgtttcgatttttagcacctgcaaata
-agtgagaacatgtaatgtttgtttgtctgtgcctggcttatttcatttaacataatgacc
-tccagttcttccatgttgctgtaaatggcaggattgcattcttttttgtggccgaatagt
-actccattgtatatatgtgccacgttttctttataggatactagtttaatcatgtctttc
-ccaacattgcttattatttATGTTCttttctttattgtgagaaaatagacataacattta
-ccattttaaccagtttttagtatacagttcagtggcattaagtacattcacactgttgtg
-caaccatcaccaccatccacctccagaacttttAGAAATTCCCCCCACTTTCTTTCACTT
-TCTTTTTACTTTTCTTTTCCttttttttttttttttttttttttttttagctaggatttc
-attctgtcacccaggttggagtgcagtgcatcagtcatggctcactgcatccttgacctt
-ctgggctcaagcgatcctcacaacccagcctcccaagcagctgggactacaggtgtgagc
-accacacctggttattttattttttaaaaaaattttttggtagagatgaggtctcactgt
-atttctcaggctggtctgaaactcttggcctcaaggaatcctcctgccttgactgacctc
-ccaaagtgctgggattacaagtgtaagccaccacacctggccTAAAATCCACTCTTTGAA
-TGGAGTTTTTCAACACTATGAGGATTACATGAAGAAAAGAGCCTGGGGCTGGGTTGGAGT
-TTCTGGGCTGGGGGCTTTCTGGAGGGTATTTAGTGGTCAAGGGTCATATGTCAGGTGTTC
-TGAATCCTGAGCAGCAAGGACATGGTGTGTTGGCAGCTCCTGACCCCTGAGGATTACCAG
-CGATTTCTAGACCTGGGCATCTCCATTGCTGAAAACCGCAGTGCCTTCAGCTACCATTGC
-AAGACCCCAGATTGCAAGGGATGGTGCTTCTTTGAGGATGATGTCAATGAGTTCACCTGC
-CCTGTGTGTTTCCACGTCAACTGCCTGCTCTGCAAGGTGGGGCCTGCAGGGACTCCCCCC
-ACCTAGTCACTGTCATCTTGCCTGGAGCTCACCACACTGCAGTGCGTGTTCTCCTGGGAA
-GGGAGCTGTGACACTGGCCTGCTGGTCATGACTTAGAGCTACATGTCAGTGGGAGAGTGT
-GGCTTGAGCCTGAACTGagccctggccccacagacggagtcccagccccagccccagatg
-gagcctcaaacctaggcagccctggttcacaatggagccccgaccctgggccagtctgac
-cccagtcacagactgaatcccagtcccacattgagccctgatcccatccAAGTCCATAGA
-CTTGGCCTCTGACCAAACCTGACCCTGCACTTGTCACTTAAGGTGGTCCCATATTCAGCT
-CAGACCCTGAACCGAGCTCTGACCCTGGCTTCTGACTGAATCTGTGACAGACTAAGGCCT
-GACCCTGGCCCTATACCACGTCTCCACCCGTGTCCTCAACTGAGTGCTGACCCCAAACCT
-AGACAGCCCTACCTGATCCTTCCCCCAGGCCTGTCCCCGCCGCTTCATCTCAAAAGTTGA
-AGGTGAGGAGCCGGTAAACAGGTCTGGAGCCTGGTCTCAGACTCAGCCTGAGCAAGCTCA
-GTCTGGGGTCATTGGGCCTGTAACCCCGGGCAGGCCCTTGTTAGGGATGCAGGGTCTCAC
-CCTAGGGGTATAAGGGATTTCTGTGCCCATCAGAACTTaaataagctgggtgtggcagca
-catgtcagtggtcccagctactcaggaggctgaggtaTATTTTGCTGTTAGCATAtgtga
-tgaccttgacttcacctccctggcgccaatatcctcttctgtaaaatgGCTTATGCATTA
-CAAAGTGAGGTCCTGCCAGTGACTACACCTAGAGGCATTAAGTGCCTTTGTGGACTCCTG
-CCCTGCACCTCACCTCTCCCAGCTTCTTAACCCCCTGAGGAACCTTCTTACCTTGAGTCC
-CTCACCCGCTACAGGCCATCCATGAGCAGATGAACTGCAAGGAGTATCAGGAGGACCTGG
-CCCTGCGGGCTCAGAACGATGTGGCTGCCCGGCAGACGACAGAGATGCTGAAGGTGAGGC
-TGGGACAGGGCCGAGGCCTAGGGATTTTAAGTTCTGGGATCCAGGTGGGGGCTGGGGGCT
-TCCCAGTAAGGGCTGTGCTCACACATCCCTGGAGGCTCTGACCTCCCTTCTGGCTGTCAC
-TCCCATCCGGAGGTGGGACTTAGGCCGAATGGTCATGTCAGGAAGAGCGTCTGGGTGGAG
-GGTGGAGACCACAGGAATGAAGAGGGGGTTGCTGGATGGAGCCTGGCCTGGCAGAGCCAC
-ACAGGAGAGACTCCACAGCTCTAGAGGGTCACCACCTTCTCCCTGCCATGGGGAGGGGCC
-AGGCTGGGTGACTGCCCCAGCCCCGCCCCAGGGCCAGCACCTGCCCCACTCCAGGTGATG
-CTGCAGCAGGGCGAGGCCATGCGCTGCCCCCAGTGCCAGATCGTGGTACAGAAGAAGGAC
-GGCTGCGACTGGATCCGCTGCACCGTCTGCCACACCGAGATCTGCTGGGTCACCAAGGGC
-CCACGCTGGGGCCCTGGGGTGAGTCTTTGCTCGTGGTGGTGTGGAGAGGGTGCCCTTGTG
-GGCTTTGCCTTAGAGGagggctgggaaaactacagcccatgggccatatccaacccagca
-cctgaatttgtacagctcccgaggtaagaatttttttttttttttttgaaacggagtttc
-actcttgttgcccaggctggagtgcaatagcacaatctcagctcactgcaacctctgcct
-tccgggttcaagcaattctcctgcctcagcctcccaagtagctgggattacaggcatgcg
-ccaccacgcccggctagttttgtatttttaggagagacggggtttctccatgttggtcag
-actggtctcaaattcccgaccgcaggtgatccacctgcctcggcctcccaaagtgctagg
-attacaggcgtgagccaccgggccgcaagaatgttctttacatctttaaatggttgaaaa
-aataccagaagatgactattttgtgacgtgaaaattacatgaaatccacgtttcagtgtc
-cgtaggtaaagtgctttggagcacagccgtgttcattcattcacatgttggctgtggttg
-cttttacactacagaggcagaggccgtatggctgcccggcccaaaatgactggccctttg
-cagaaaaggtttgcccactcctgCCCtagaggacagcaagtaaaggttcgatctggagtc
-agaggtggattggcccctggctctggcacatactgactgtgtgattaggctgcctgccac
-tcacctctgtcagccccatttcctctgtgaaatggagatgatagctgggcttatctcagg
-cttgttgtcagaatcaagtggaaaaattgcaagagaagtgcttagagagcctgtcacttg
-gtgagcacccttgcagatggtagctgtcgttattAGGGGTGTGCTCTGGAATTGGGGGCC
-TGTTGCTACGTTCAGGTAGACTTTCAGACAGGTGGAGGCAGAGGAAACTGCCCTCTCGCA
-TGCTGACATGTCTAGAATATGCAGAGTGGTCAGATCCTCTCCCTGGCCTGTTCCCGGATC
-TAGGCGTGGGTAGACTGAGTGCTGTGGGAGCCCAGAAAAGGCCTCAGTGACTCTCCATCA
-GGTAGCTGAGGCTGACCAGGCCATTCTTGCAGGAGGACCTGCAGAGGCAAAGGCCCGGGG
-TGGGAGAGCGCTCGGCTGTGGGGGCAGTCTCTGCACTGCGCTGACATTCTCTTCTCTTCC
-TCCCATCCTCTAGGGCCCAGGAGACACCAGCGGGGGCTGCCGCTGCAGGGTAAATGGGAT
-TCCTTGCCACCCAAGCTGTCAGAACTGCCACTGAGCTAAAGATGGTGGGGCCACATGCTG
-ACCCAGCCCCACATCCACATTCTGTTAGAATGTAGCTCAGGGAGCTTCGTGGACGGCCTT
-GCTTGCTGTAGCGTTGTAGGGGCCCTGCCTGCACTGCGGTTGTCCACGGTCACATCTGCC
-CCAGTGCCTTTGTCCTTCCCTTGGGGCTTGCCGGCCAGACTTCTCTCCCCTGCGGCTCCC
-ACCTCTGCCTGACCCCAGCCTTAAACATAGCCCCTGGCCAGAGGCCTTGCTGGGTGGAGC
-CTCTGTGTGACTCCATACTCCTCCCACCACAACACTCATCTGTCAAACACCAAGCACTCT
-CAGCCTCCCCGCCTTCAGCTGTCAGCTTTCTGGGGCTAACTTCTCTGCCTTTGTGGTTGG
-AGGCCTGAGGCCTCTTGGAACTCTTGCTAACCTGTTCAGAGCCAGGAAGGAGACTGCACA
-GTTTTGAAAGCACAGCCCGTCAGGTCCGGCTCTGCGTCTCCCTCTCTGCAGCCTGTGTAA
-GCTATTATAATTAAAATGGTTTTCCGGGAAGGGATGAGTGTGATGTCCTTGAGAGGAAAT
-GAATGTCCTGGCCTGGGACTCTACACACAGGCAGGATCCTGAGGTCTCTGGGAACTGCAT
-CAGAAAGTTGACTTGTCAGTCCATCTGTGGTAGAATGAGGCTGTGACTGAGCACTGGGAC
-CTTTCTACCAGATGTGGACCCCATGCCCAGCCTCAGGGGCAAGGATGCTCTTGGGTCACC
-GTCAGCCAGGACAGGTGGAGTGTGCAGTGTGTCAAGTCTGCAGAGAAGGATGGGCTTAGG
-GGCGGGAGGGGAAGTCTTGCCACTCCTGCTCCCTTTTGACCTCTCAGCAGGCATCTAGGG
-TTGGCAGGTAGATAGTTCAAGAAGGAACGAAGCTGCTGCAGTTGAGGGGTGGGGTTGTCC
-ATCCTATTTTCTCGTCTCAAGCAAGATGGCACAGTATCGATTCAGCAGTATTTACTAGAA
-CCCACTCTGTGCTGGTCGGAGGTTACTAAGACAGGGTCCTGGGATGTTCATTCTCTAAGT
-CTTTCCTCCGCTCTGTGACCCACCCTCCTTCCCCTTTTGAGATCTGGTATTTGATGCCCA
-ACACATTGTCCACGCTGTGACGTGACCATCATCATAGCAGGCAGAGGGCGCCTCTGCTGC
-TGAAGGCCTGTGATTTTGTGGGGAAGGGCCTGTTCTAGCAACTGGAAAGGCACTGCCACC
-TGCCGTTGGATGCCAGGACTCAAGAGCTGGCCCCAGTCACTGTGCGCAGAGCTGTCTGAG
-AATGTGTGAGTGGACTGGGTCCTTCGGCACTGCCTGCATTGGCTCAGGGCAGTCAACCGT
-CGCAGAGGATGAGGGGCACACTCAGGCAGCCTCCCCGGCCCTGGAGGCAGAAAGGCCCAG
-GCAGAACCACTGACTGGGAGGAAACAGAAAAAGCAGAGGAGAGCCAGGCTGCAGGCGTGT
-GGATGGGACCAGCTCAGGCAGACGCTGTCTCATACCCACTCTCCCCTCTCTTGCCAGGGC
-CTGGCCTGGTGTCTCTCAGGAGCCTGGGCATGAGACAAAAGCAGAGATTGTTCTCTTGTG
-GTACCACAGGCTGTAACCAgtccacccagtgttgttttagaaatttaaatcggttgccca
-tctttttaaattggcaacatcgtttaccacattaaaatctagatgccctgcttctcttga
-aaatgtcaaagcttggtaatgccaggtcctcacttctacctggggggaatggagtcacag
-agatgtcaaatctcttcatggggtgtacaccctccagtttgccacagtcctcaccACCCC
-AGGACTCACGCCGAGGCCTTTCCAGTGCCCTTGCACCATCCTTTTTCTCGTAAGAGGAAG
-ATGAAGTGGGGCTCTACGCGCGGCGTATCACAGGTGAGGGCGAGACCAGCAGAGAGGGCT
-GTGCTGGCTGTGGCTTTGCTCGGCCTGCCCCATCCATGCTGCAGTGGTGCGGAGGAGCAG
-GGAGCTGTGTAGGGCCAACCCCGGTTCCTGCCTCAGCTCCACCCGCCTTGCACCTGCAAG
-TGAAAGGTCTTAAGACGAGCAGGCCCAGGGCACCCTCTACTGCAGGGTCAGGTGGAGGTG
-CCTCCACCTCCCAAGGCTCACCCATGCCAGGGGCCCAGAACTTGAGAGGCCAGCACCAAC
-TCTCCAGGGCCGAACGAAAACCAAACCCCAGGGCTTTGGACTCAAACCATCGAGAGGAAG
-CAGCAAGAGGTCCCAAAGGTACTTGAGTGACACAATGATCATCATTCTCTCCTCAGGGGC
-AGGACAGGGGCAGGGGAAGGTGAGTGGAAGCCCATTGCTCAGATAAAGAGCAGCTGCCAC
-GGAGGGTAGCCCGTCGGCCTATGCCGGCGCTCACTGGTGTCTTCCTCTAGTGCTTGGGGC
-TGGCATGGAATCTGCTCAAATGCAGGCAGCTGAAGGTGAGCCCGCAGCCTGGTGATCCCA
-AGTGCCAACCATGAGGAAGTCTGGAGAAAAGACCAGGGAGCAGGGGCCCTCGTGAGGAGC
-AGGAATTGGCAGCAGGGGCCACCAGCAGAACACCAGAGGGGACAGTGGCAGGGGGAGGAA
-GATACAGCCAGGCTGGGTCTCAGCCCCAGCTGAGGGTCTCACCTCTTAGCTGGTGAAGGC
-TCCGGCCTGTTCCTGCTTTCGGTCACCACTTCATCCCTGGGTGATCGTGGGCCCGGTGCA
-GGGCTGGCTACAAGTGTTTGTTGATTGGTAACTGCTCATGAAAATGGCAACAGCACTAGC
-ACAGCTTCACAAATAGAAACACATTTCACCAACACCCTTGCAGGAAGCCCTCCAGGAGGG
-CCAAGACCATCCCTGCTTTACTGTTATGGACGTGAGCCTCCGAGAGGCAGTGACTTAGAT
-GCTCACCCAGCCAGGAAGGAAGGAACACACTCGACCCTCAGTCTAAGACCCCATCAGGCC
-ACTAATAATTCTCCCTCCAAACCCAGCTCAGGTCAAGGCCTATCTTCACCCCCAAATCAT
-CCCTAAGGCAGCCTCAACTCTCCACAGCACTACAGCCATCCTGCCCGGCCCCAGTGCTCC
-ACAGACCCTAAACCCGAGCCCTCCCGGGCTTTGTTGGCCCCAAACCACCTACACTTGTTA
-CGTGTTATTTTTACACTGGCGTTTCCCCTCAGCCTTGCATACTGTGTGGTGTTGTCTGAC
-ACCACTTTTCCAGCTCtctgacaccaactggggctagtgtcaggttccacagattaaagg
-gctcagtcccacacttccgatggagtcacagatggggtgcccaggctacccacacttcct
-gggctacccacacttcctgggctacccacacttcctggccaactacacattcaggggttc
-ccatgactccaccccctcaggttcaataatttgcctgagtgactcagaactgaagatcac
-cctgccctgacgcttcctggtgtggtgtcctcaaggatgcagtgtgggcaggaacagcca
-cgcttgagatgaacagggttagggatgggagCGACTGGCAGCCACTGCAATCTCAAGTTT
-TGGGGttttttttgttttttttttgagacggagttttgctctgttgcccaggctggagtg
-caggggtgcagtcttggctcactgcaacctccgcctcccaagttcaagtaattctcctgc
-ctcagcctcccgagtagctgggattacaggcacccgccatcatgcccggctaatttttgt
-attttagtagagacggggtttcaccatgttggccaggctggtctcgaactcctgacctca
-ggtgatccacctgcctcggcctcccaaagtgctggaattataggcgtgagccaccgcgcc
-cagccCTGAATCTCAAGTTTGTAAAGTGCTCCACCTCTGTCACTCCAACTCCCAGGAGTC
-ACTGCTtgggattgaaagtttccgccctcgaatcacctggtctttctggtgcaggagcaa
-ccccgaggcaatctaggggccctgctctaacgaattcattagcatgaactcaaatgggct
-ggaaaggggttatgaataacaaaagacactcaccactcacgaaattccaagggttgtagg
-agacccgtgttaggaacccaggagaaagaccaaatatttcttagtatcccacaCATACCC
-TTCCTTTAGTTCTCCAATTATCATAATTCTATTCATCCTTCACATTCCACCCTCACCTTC
-TATGAAAGTGCCCTGAATTTGCTGCAGGATAGATTGCTCCTGGAGTGCAGCTCTGGTGTG
-AGCTTTCAGAGGCAGCGCAGTGCCCTGGGCAGCCTGCGTAATCCACGACTGTCAGATCAA
-AGGGCAGTGTGACCCTGGCCCACAGTGGCAGGAGCTGAGTGCCACTGGCTTGGCCCCGGG
-AACCTGCGCATCTCCCCTCTGAGCCAAGGAAACAAACAACACAGACAACAGTGTCTCCCC
-GATGGCCCCATCCCCAGGGTGGAGGCCCTGCACCGGGCACTGCTCTGCGCGCGCGCTCCC
-CAGCAGCCAGCAGTGTCTGGAGGATACTGGAAAGCTTGGCAAGAGTAGGCTGAGCAGCTC
-CTCTGTGGACAGAAAGGGCATGTGGAGAAGCGGCACATCAAGCTCTGGTTAGGATCCAAA
-ACCAAATGCCAGCTCCTAGGATCCCCAGACCAGGGTGTGAAACACACCAAGAGCACCCCA
-GACCCGCACCAGTTGTGTCGACTGTGACAGTACCCAGAGTGGAAAAAACATGAActcaaa
-ctgtgttttcctccactgctctctcaataccaacagacatctgtggccaaatgtgttggg
-gatttctcccctgacaccaagcaagcaagcaattctgcagcctacatcagctgggtatcc
-tccaattcaattcagtgctcaccctacctatagtatctggaaatggaatccacaggttca
-aggctctgtcccacaagaccgccgcctctgccacaacattggactgaccaccctctttgg
-gtggcatgatttgccaagagtggctcacagaactcagggaaacttatgtttaccagttta
-ttacaaacattattagaaaaggatacaaataagtaaacagccagatgaagatacacacag
-ggtgaggtctggacgggtcctgggcaaatgctggagcttctgtccccatggagtgggggt
-gcgccaccctcttggcacatggacaagttctcgttcccctccctccacatgttcagctct
-tcagaagctcccgtgttcctgggccttttatggagacgtcattggataggcatggctgaa
-gcatggcagctgtgttgagatgaaactggacaaaaagcataaggtctaaacccagcaagg
-cctgtctgtccagatgcttcttggcctctctgtgcagcgttcctccttccgggtatgggg
-cagcaccctctctggaatgagggtcttatgagctacagtcagattaaagtctggtgttga
-gcaagtgaaatggggcaggagaaggtcacagacagagattccgttttctgaggcctgcag
-tgtcccaacattataacaaagggttatgggagtgatgaaccaggaactgtggacaaaaac
-atctacacacgtataaaatatcacaGTGCCCTGGGCTGCAGCTGGAGTGTGTGGGTCATA
-ATtcttgcagatgaaacagaaacagcaagactgtaggtactgcccaaggtctcctagcca
-gtcaaggctgaccaggagtcCACAGACCATGGCACAGTTCTGGGCCTGACATGGAAGGTG
-GGAGCATCCAGATCAGAGACCATTCCCACTGAGCGGTGGCCAAGGACGGAATGACAGAAG
-AGGTGATTAGTAACCACATATGGCTGTTTATTTGATACAGGGCTCTGTACAAAATATTTA
-CACATATTCTTTACAGAATAAGTAAACCACCTGAAGGTAATTAGATAATGCTTTCTTCTC
-AATGACAGGGAGAATCCTGGTGTCAGCAAAGTTAGAAAACAGATAAACATTCTCCTTCCG
-AGGCCACAACTCAAGCAAATGCCACTTGCTTCCTAGGATCTGAAAAGCTGTGGCCTTGGG
-ACCCTGGTCACATGCACCTCCTTTCCTCAACCCCATCAATTCCTTCAGTATTTACAAACA
-GGCTTGAGTACTTGTGGAAGGAGGGGCAGCTGGTGCCGCCCACTGAGAGGATGACAAGAG
-GGCCAGCTTGCTTTGGGAGAGCACTGGGAATATCTGCCGCATCATCACCTCTGGAAGAAT
-TTCCTTTGCCCTGATGAATACACCACTGTCTAAATTAATCCATCGACATCACACTTACCC
-CACAGTGGGGCTCCTGAGCCATGGACAATGATCCATCCCTTTGAGCTTTTTTTGGTTTTA
-AAGTGCGTAGTGGTggctgggcgtggtggctcacacctgtaatcccagcactttgggagg
-acgagacgggcagatcacctgaggtcaggagttcgagaccagcctggccaacgtggcgaa
-accccatctctactaaaaatacaaaaattagtcaggcgtggtagcaggtgcctgtagtcc
-cagctactcgggaggctgaggcagcgagaattgcctgaacttgggaggcggaggttgcag
-tgagctgagactgcaccactgcactccagcctgggcaacagagtgagactccatctcaga
-aaaaagaaaataataataaaataaaTAAAAATAAAGTGCTTAGTGTAACTCAGCGGACAG
-GGCTCCCAGCTGCTCTGGCACGTGGGACACCCTCCACCCTGCACACAACAGGCATGCAAA
-GAGGACTGGATATGGTGGGGTAGAGTGCTTCTGGTGTGTTCACTTTAAGAAAACATCTGC
-CAAGAGAGAAGAGTGCCCAGGAAAGACCAGGAAAATACAAGTACATGGCTGCTTCATACC
-ATATACCCCAATTCTTTAAAGCAGCAAAAGGCACTTTTTTTTTCAGGCCAGAGTGAATCT
-AAAACAAACCTGGCTTTGCTTACAGGGAAGCTGTCCCAGAAGGACTGAGTGATGCCTCTT
-GTTCCCTAAGGTCTGGAGAGTCTTTGCAAGTTTCCAACGACATTTCCAACCAGGTGGGAG
-AGACCAGCAGTTGACGAGTCAAGTCAGACCCAAAAAACGACGCCAAGGTAGTGAGTGGGT
-GCCTATTTGGGAGTAGGATGATTTGAGGAAAACAGGAAGAAAAACCGGTCAGAAAGTGGC
-ACTTTGGAAGTGGAAAGCTGTTTGCAAATAGCAACTCTGGCTAAAGCGAAAATGTTAATC
-AAGTAGAAAGTAAAATTCAGGATCTTAGAAGCTCATCCTTCTGATGAGAACTATTTTTTT
-TTCCGTGAAGGAACTATTATTACTTTAAAAGTGAGGGTAATTTACATATGGGGTGTATAT
-ATTCTAAAAATAGTAATAAAAGTACCTTTTATAAGCAATGTTGTGTGGCTTGTAGAAGAA
-AGCAGGGAGGAAAAAAAGGCAGGCAAAACTAGTCTAGGTCTAGGCCCTAAAAATGAGCTT
-CCTTCCCACTTGACTGGAAACGCCCATGTGATTTCTAGGCTGAAAATAGGTAGGATTTAA
-CGAGTAACCTAGTTCCCTTCTGTCTCTGATTTCTGATCAGCTGATGGAGCTGCTAGTAAG
-AGGGGCCGATCATGCTCCCAGACGAGTCCTTTGGCCTCTTGCTCTCCATCCCAAGCCTGA
-CTCCTTCAGCAGCAGCCCCCTCCTTCTGTGTCCATCTGATGCAGGCAAGCAGGAGCAGTA
-AGAGGGCATCCCATGTTCCAGTTCACCTTCTATGGGGTGACTAGGAGGTTCCCGGTAACT
-AGGGCAGCCCAGGCCCAGCAGGTTGCAAAAGCAGCTGCAAGCTTCAGAAACCCACTTCCT
-CCAACACCAGGGAGGTGGCAGAGAGCCCATCCAAAAGCCCACTGGGAGAGGCATAAGATT
-CTGTGCCAGGCCCCCAGGTCCCCTCTGTGTCAGGTAGGCTCTGCTACTGGCCTCTGAAGT
-AAAGGCAAACACAAACGGGCAGGGCAGGGTGGCAGGAATAAAAAACTCTGGACAGAAACC
-CTTTTAATAAAGGAAATTCCACCCCTCCCAATCCTTCCATGGAAGGGTGAGACCTTAATG
-TGATGTAAGAGGAAGGTCTTCTCTGGCTTTCAGGGAAACAGCTGCAGCTGAAACTTAGGG
-GCCCATTCCAGGGCACTTTTCACCACAGCCAGTGCAGCCGCTCCAAGTGCCACTGTCAGC
-CCCATCACTGCCAATTTCACAAAGCGGTTGGTCCTTGGCTTGGTCAGGACATCTTTTGTT
-CGATCTTCAGGCCGCAGAAGTCCCCGAAACCGCTGCCGCAGCACCATATCAGGCCTCTGC
-TGGGCTGATGCCAGCTCAAAGTCTTTGAAAGTAGAGGCTGCCGTCCTGCAGGGGAAAGAG
-ACGGAAGGAAGGAAGTGGTATGAAAGAGGAGGAGGAAAGCAAAACTACACCACATAGGCT
-GCGGGCAGAGCCTTTCATTGCTGGGAAAGCTCTTTATGATAAAGACCCATATGTCTACAG
-TGGGGATTCCACTGGCCTAAGCTCAGATCTCTGGAAACATGCCCCAACCCTATCCCACCA
-GACACAAACCTTCCCTCGCTTCTGCTCATTTACAGCCACCCCCATTCAACCAGTGTCCCA
-GCCTTGCTCACCTCTCAGCTTGCTGTTGGGCAGCGGCCTCCCGAGCAAGTTCGGATGGGG
-GAAACTGAACAAAAAGGTCTCCTGCTCTGCTGATCAGTGTCTCATAGGGCAAGTCCTGAG
-GGATCTGGGACAACAGGTGGTGGACCGAGGCCATGTCACAGTCACAGTCCAGGACTTCCT
-GCTCGCGATACAACACAATCTGTGGGGAGGTAGTAAAGCCTTGCAGTCAGAGGCCAGACA
-CACAGGGCCTGGGCCACCTGCACTCCATTATCCTTGCAGATGAATTTAAACTGGTAACAG
-ACAGGACTCAGCCCAAATGTTGAGCAAACTCTTGTATCCATCAAGGAAGTAATAACATAT
-ATACGCTCAGTGCTACTCCTACTCTCTGGCCCTTCCTGCAAACTTCCACCACATGACATG
-AAAGGCTGACCAGTTACAATCTAAGTCCTTCGGGCATGCTGGGCTGCTCAGGTGTCCCTT
-TAAGTCTTGAAAGAAATGAAGGAGATTCTTTTAGGAGAAAGTAGGAGAATTATTGGGAGA
-TTCCTGGAGCTCCAGCATAGAAGAAATGGTTCAAAACAGTAGAAAGAACAGTCTTGCTCC
-CTTTAAGCATCTTCCTTCTGACTGTTGGTCCACAAATCCACAGATGCTCAAGGGACCAGT
-GGTCATTGAAGGACTTCCCTGAATTCCCATCTCCACCCCATCCCTCAAGACCCTTCTACT
-AACTGAAGCCCCTACCCTCCACCGCAAGCCGCCTCCCTTGTCTGTCATGACACCAGATCT
-CTTCTTTTCTTAAATCTGGAGTTGACAGCTTACGCTACTATTTCCCTAATTGTGTTCATC
-AGCTGAACATATATTCCAGACAATGTCAACAGGAACCCTGACAattcacaatgcagatta
-gcattttaaaggttcagaagtgtcatgcagcaaaaaaaatctgattttgtttatacccag
-catttcccaacttactATTTTTTGTGTGTGACACCCCCATTAATACTGCACAGAATGGTG
-TCCAGGGACACCAGCCTGGGAAGTGCTGTCTTTTGCATCTTTCCATAATCCCCAGGTTTC
-CCTTCAGGGAAAATGACCACAGTGGGATGGGTGATGGTGAACCCAGCTGCTGGCTCGTGG
-CCTGTACCTACCACGGCTGCAAAGTAAATCGGCATCAGTGGGTGGCAGGCCAGGAAGAAG
-TCATATAACCGCACGACGTGCCTGAAGTCAGACAGGACATGCCCAAACCAGGTGATGAGC
-CAGCTGAGGGCAAAGATGGTCCCTACCTCAGCACTAGAAACAAAGGAAAGGCAGGTGTCA
-GGTCCTGTGGGCCATCCCTTCCCTCTCTCTGGGCCTTATAGCGCTGGTGAGAAGGAAGCA
-TTTAGGAATAAGATTTCTGGAAAATTCAGTTACCTAGGAATTCAGCATCTTCTCCTTACA
-AAATATTTAATACAAAGTCTTTAAGGTGTACCACAACACTAACACCACAACAGGGTCCTG
-GCTGCTTTATCTCACTGGGTGCTCGCCTACTGGCCAACAAATGTCAACTACAGGAACGAG
-AAGCAGTTGTTTTCAGAGAACTACGCCATGATTCTCCTTCTGACTAAGTCTTACCCTTCT
-GGGGGGCACAGGTACATATTCCCAAGCCTGAAAACATGACTGCATTAATTTTTCTGTTAA
-CATGAGACAACTGAAATATCTTAAGATGTAGCTgccagacacggtgagtcacgcctataa
-tctcagcactttgggaggccaaagcgggcggatcacctgacatcgggagctcgagaccag
-cctgaccaacatggagaaaccctgtctctactaaaaatacaaaattagccgagcgtggtg
-gcgcatgcctgtaatcccagctacttgaggctgaggcagaagaatcgcttgaacccggaa
-gatagaggttgcagtgagccaagatcatgccattgcactccagcctgggcaacaagagaa
-aatactccatctcaaaaaaaaagaaGGCATAGCCATTACCttttaaaaaattttaaaaaa
-aGAGGCATTGGCCAAGAACACATTTCCAACTAAACAGAGAAGAAACAAAACATCACATGG
-GATTTGCAAAAAAATATTTCTTCTCTTTGGTACTTGGGAAATAAAACAACCCATTGTTGG
-CCTTCCCCTTCTCGCCACTGGATCCCACAGGACTTTGTGTTTCTCTTGTGGCAATAACCT
-CAACATCTTACCTTGGCATACATACCTTATCCACCTCTCCCCACTAGATGTAAACTCAAG
-GGATGGGCTATGTCCCCCAAAGAGCACAGTCCCCAAAAATGCTCCAAGAACTGAATTACC
-CAGATTGCTGGTGACTGGAACAACTGGGGAGAACTTAACAAATCCACCCAAGACAATGAG
-GAAACTGCGCTCGGCTTGTGAGGAGTGTTTCAGGTGTGGGGGGGTGTGGGCGTGTGTATG
-CATGCACACAGAAATGCAGACACATATGTACCTCTGCATGAAGTCATGGAGCTCTGGATT
-CACCTGGTCAATGATGGGCATCAGATAGTTTAATATATGCTTGGTGTTGTCCATTGTTGG
-ATCCATAAAATCCCTGGAGGGAGACAATTCAATAAGCCTGGTTACCAAACACTTAGATCA
-GGGCTCAGGGTGGCGAGGGCTCAAACTCCTAAAAAAGCTGACCAGAAAACAGGCCAGTGA
-GTTATCCCCAGGACGGCTGAGGAGTGATGCCCGTCGTCTTGTGTTCCTCTCTACTGGTAC
-CTGAGGTGGTGGGTAGATAATTTTTCTACCAGGGATGTTGCCAGCCTCTCGCCTACCACC
-AGCAGAAATGTGACCACAATGTCATGGTAGCCCTGGTAGTAGTGCAGCTGAGGGTTGCGC
-TCCAAGATGAGGAGGATGATGTCAATCAGTTCTTCCTGGAGCCCTTCTCTCTGTTCCTCT
-GGCATGCCTGGGGACAGGAACAGAGATGCCTTTGAACATACCAAGCAGCCTAGTTAACAA
-GGAGGTCGAAGAAGGCCAGCAATGAATTTTCAGAGAAAAAAGGAAAATGAATTACAAATA
-ATTTGGCAACGCATATCAAGATCCACTGTTGATACCACCTGGCATACAGGAAAAGGCAGC
-TGCtagctttccagtaggggaagctgcagatgccaccctaaccaagttgctgcagttaat
-actgctgggacacagtatttaactgcagaatttcaactatgggagccacagacggcctct
-gcctcccgaggtgatgcactgacagagctcagcatcatgtctgcaggatttctatcaaca
-gcgcacagacctcaatctcacaatgaagaaatacccaatatccccaaaggaagagaaatt
-taactctcatacaatacaaaggaactgttccagattaaaaatggctaaagatataggaca
-acagcatgagaaacgcataaatctatatttccttttccagtgaagcacattactcgaaga
-aatggtgaaatgtgaataaaatctgtggattaattagttaactatttttcagtgttgtta
-ctgatgttgctcagtgtactgtgattacatgagagccttatatttaggaaatatgtcctg
-aaacacttggggtaaaaagatgtcatgtttgcaacttactcttaaatagttcagagaaaa
-agtgtatgtctatgtgtaaagcgaaggaaagacagaaagcagctaaaaaagcaaatgtag
-gccaggcgcggtggctcacgcctgtaatcccagcactttgggaggcagaggcaggtggat
-cacgaggtcaggagatcgagaccatcctggctaatatggtgaaaaaccccgtctctaata
-aaaaatacaaaaaattagctgggcgtggtggcaggcgcctgtagtcccagctacttggga
-ggctgaggcaggagaatggcatgaacccaggaaccagagcttgcagtgagctgagatcgt
-gccactgcactgcagcccgggcgagagagcaagactccgtctccaagaaaaaaaaagcaa
-atgtagtaaaatgtgaaaacaaaaggaaatctgggtaaaaggtatctggggaattctttg
-tcctatttttacaacctttcagtaagtatgaaattatataaaaataaaaaAATTTTAAAG
-TTACACGGTCCCCTTTAAACCAAAGCAAACGTTACAGGAAAAACTGATCCTCTTGATCCA
-AAGATGTATTATAGCTGGAAATAGGGAAGCCTGTCTCAGGAGTTCTTTCAGGGAGTTCTT
-TTACTGCTGGAGCTAGTGCTGCCAGCAGTAAAAATGCCTTGGCCTTATGAGCCAGGTTAG
-AAGAATGGCACATGCACAGCTTCTCCACACCATTAGCTTTCAGTTACAAACACATACTCA
-GAGAGAGAAAGCAGCTAATGTAAGGGCCCAAACTAAACCGGACAAAGGATTGCAGGTAAG
-AGCAAAACTCACCTCTTGCCCATATTTACCCCACCCCTTCTCAAATAAAAAGCATACCCT
-AAAAGATAAATAAGGAAACGAAGCAAACCCAGGGCTGCTGATAGGTGAAGCAGTGAAAGG
-AGTGAGAGTAAAAATTAAACCCTGTGTGAATTTTCAGCAGAAAAGCAGTGAGCCAAGCCC
-AGAAGACCATGAATGGAAAAAGAATATGAAGCCACACTGTAAGTTCAGCCTACAGAAAGC
-GTATCACAGATATTACATCAATGGAAGAGGAATAAAGGGTTCAGAGGGAAAACAGGTTAC
-CTAGGAAAAAATGGGggtggctcttgcctgtaatcccagcactttgggaggctgaggtac
-gtgcatcacctgaggtcaggagttcgagagcagcctggccaacatggtgaaaccccatct
-ctattaaaaacacacacacacaaaattagctgggcgtggtggcgggcacctgtaatccca
-gctacttgggaggctgaggcaggagaactgcctgaacctgggaggcggaggttgtagtga
-gctgagacagtgccattgcactccagcctgcaacaagagtgaaactctgtctttaaaaaa
-aaaaaaaaaaGGGAGGCATCTGTCCTATATGATCTCATCCAAACCAGCAGGCTAGGAAAA
-GGGAATGGACCGTGGGCATGTGCTTTTATCAAAACCACGCTGGCAGGCTACTGCTACCTG
-GGTATTGCAAGAATCTGTCCAGGGAGCAAGAATGCCAGCAGGAAAGCAGCCCCTTCAACA
-ACAAAAGCCAGGCCAGAGCACAGTGCAGAAGAGGGAGGCAGCCAGCTTAGAGGCTCCTGT
-TCCCTTTAGCAATTCTCCTCTCTTCATGACCTAAAGGTGGAGTTGCCAGAGGAAGAAAAA
-TAGGTCATCCATGTGAGGTTTGTTGCCCAGTTCCCTTCACTGTGAAAATTGAGACAACGG
-TCCTTCTTTTCTTTCTTCCTGAAATAAAGAGGTAATTTTAGGAATACATTCTTTtttgtt
-tgtttgttttgtttttatttatttatttttttatctattGCTGCTTAATTTGTTAATTAA
-GGAATATACTCTTACACAAACAGGGAATGGCCTCTCTTCCCTCTAAGGAATCTTACATAT
-GTATGCGCAAGGTACCATCGTTTTTAAACCTAATTAAGATATTACTCATTCTTGTTGGTG
-CCCAATTCCACACCAATCTGCTCTTTAATGCCAGACTGATGGCTCTAACAATCCTTATTA
-ACTCCTTTTTGTGGCTTCAAGGAAAAACAAAAACCTCTTCTCTCATTCACCACCTCTAGG
-CCAGGAGAAATTATTTTTGGTTCAGGCTTTCACAGTGGGGGTCTGAAAGTGACCAGTCAA
-GAAAAGGATGACTCAGCAAAAGGAGAGCTCTGAAGGTCCCTGAGGCGGCAGGGTCCAGCA
-TATTAGGTCACATGGTATGACCTGGAACAGATACAGTCTTTCCAAATGTGGCAGGACCGG
-GAGAGCTTCTCACCAGGAGGGAACCGCCGCAATGACCGCCGGACGTCCAGCAACACTTGT
-TGGTAGTCCTTGCTCATCTGCCGTAGGTTCTTCCCTATTGAAGGAAAAGGCACGTTATTG
-CAGGAATGCCTGAGAAGCCAGACCAGAAGCAAAACATTCTGGGATGACACAAAAGGCCTA
-GAGGGCACATGTCAGCTTCTCCTGAAGAGGATGATATGACTCAAGATACAACATTTGGCA
-GGGAATCCCTAGTTTGGTTCCAAACATTATGTTTCCTGCAAGTCACAATGACCCTAAGAG
-AAGGGAGCACAGACTGCCCAGGAGACAATACAGCAGGGTGGGAAGGAGAGCAAAGACGTA
-AGGAGGCCAGGCGCCTCGTGCAGAAGGCCACTGTGCATCACTGGGAACTGCTCTGAATTT
-CAAAGTCCACAGCTACAAAATGAGGATATTCCAAGGATCAAATAAAATCATGAATGTGGG
-AACAACAGACCACTGAAAAAAACCCTAACGCCTATAAAGTTGTGGGAGCACTAAGCTGTT
-TAGAAAGGTATATTGAGACTCACATAAAGAACCACCTAACAACTCTTGACCCAGCAATTC
-TAAAACTAAAGAGCTGCAAAGAGGAGACAGTCCTTGTGTTCAGCTGCTAAGTCCAATACA
-GCATGAAAGGAGGCAGTCTCTAGCCATTATACATATAACAAGTGTACATTTCCTCCAACC
-AAACCAAGTGCTGTATAATAAGCGTACATTTCTCTCACAACCCAAATCCAAAGCTAGTAA
-GGCTGGGCAACACTTCCTCACACGTAGGCTTCACGGTATAAAAAGATGAGGGAAGTTTGG
-AACCTGATAGAAGAACATCATCTCAGGATTCAGGGTGTGAACATGGCACTGCCTTAGCCT
-TCCAACAAAAAGCTGACTGCTCTGAAGCAGCCAATTCCAAGGATAATAACAAGTGGCAAC
-TCAACACCTACTGGGTGACATCATGACGCTGTGAACTTTTTGGTGGCAGAAGTCCTGTTT
-CAATCATCTCCAGTACCTGGCAATCATAGCACAACTAATATTTGCCAACTGAAAGAATCC
-TCAGCACTTGGCATTTTGCCATGATGGCAGGAAAGCTACAAGGTGAGTGCACTGAGTGAA
-TGAGCAGCAGAGTGGATTCACTGTTCTACAGGACTTTTACTATTTTGAACTTCATTCCAA
-GGAACTCTTTTCACCACATGGGCCTTGCACATTAGTTAGGTAACTCTTTTCACAGAATTA
-CAGGATTTTAGAACTCCAAAGGATTTCAGTATTTCCCAATAAAAAGAGGGTGttttcttt
-ttttttgagtatctcactctgtcgcccaggctggagtatactggcgcaatctcggctcat
-tgcaacttccgcctcctcggttcaagcgattctcctgcctcagcttccctagtagctgga
-attacaggtgtgtgccaccatactcagctaatttttgtatttttagtagagatggggttt
-caccatgttggccgggctggtctcgaactcctgacctcaagtgattcacctgcctcagcc
-tcccaaaatgctaggattacaggcgtgagccactgtgcccggACAAAAGAGGGTGTTTTT
-GTGTGTGTTTAAttttactttacttttagagattggatcttgccatgttgcccaggctgg
-cctcaaactcctgggctcaagtaatcctgcctcatcctcccaagcagctaagactacagc
-cgtgcaccaccatgtctggctagtttttaaatttttgtagagacagggtttcgcaatgtt
-gcccatgctggcctcaaacttccagtctcaagtgaccctcctgcctcagcctccgaaagt
-gctggaattacaggtgtgagtcacctcgcccagccACAAAATACGCAttttttttttttt
-tttttttttttgagacggagtctcactctgtcacccaggctggaggacagtggtgcaatc
-tctgctcactgcaacctccaccttccaggttcaagcaattctctgctgcagcctcctgcg
-tagctgggattacaggcacctgccaccatacctggctaatgttcgtattttttttttttt
-tttttagtagagatggggtttcaccatcttggccaggctggtcttgaacttctgacctca
-agatccacctgcctcagcctcccaaagtgctgggattacaggcgtgagccaccacacccg
-gccCAAAATATGCATTTTTAAAAAACACTTGCCAAGCAAGTATGCAGAACAAAGCATATG
-CATTTTTAATAAATTCACTTGCCTAGCCAATATTTTAATCCCTAATAAAAAAAGAACTTG
-Cctgggcgtggtagctcatgcctgtaatcccagcactttgggaggccgaagcaggctgat
-cacttgaggtcaggaattcgagaccagcctggtcaacatggcaaaaccccatctctacta
-aaaatacaaaaattagccaggcatggtagcgcatgtctgtaatcccagctactaggaagg
-ctgaggcaggaaaattgcttgaacccagggggcagaggttgcagtgagctgagattgtgc
-caccgcactccagcctgggtgacagagcaagactccgtctcaaaaataaataaaataaaa
-acaagtaaaaaaaGAACTCATTCCACTTTTGAATAAAATTCTACTTATCGGTTTGGCCTT
-ATTTTCAGAGTGGGCCCAAGCATTTCCCAAAACACCCTAGATTTATTCATATACCCTTGG
-TTTGAAAGGACCATAAAAATTAAAGATCCTGGAATTCTTTTCCCCCTGTCTCCTAGATAA
-GCTCCCCTCACAGCCTCCCCCACTCCCCTTACCTGATATAGGAGGTGGGTCATTGGCATT
-GACATTGAGGAGCTTGGGCCACACTTTTCGTCTGATCTCATCAGTCAGGAGCCCTCCTTC
-ACTGATAGCCATGCGTCTAAGGGCAGCCACATCAGTGGGATCACTGTTCAGAGCCTGGTG
-TATCTCTGCCACTTTCTTTTTCCTTTTGGCGTTAAAGTCTGAAGATAAGGATAGGGAAGA
-ATTAGGCGCACATTCAGCACGTGCATATTTTCTGCCTAGGACTCAAGCTCCTTTTTGATA
-TGAGGTACAGGTAAGTATCTCCTCTTAGCTCTAAGACTGCCTGCTGGCATAAAGTCTCAC
-AGCCAGATGCACTATTCATTTCGGGCCCAGTCTACTGGACCTCATGGTGGGAGGCTTGGA
-GAGCCCACTATAAAACAGATTTTAAATCACCGATTTTTAAAAAGATAGTCTCTTTTTATA
-GGTCTGAACCAAAAATCATAGGCACAGACTGGAAATAATTATTAGTTGTTGTTGTTTTTA
-AGAGACAGTGTCggctgggtgtggtggctcatgcctgtaatcccagcactttgggaggcc
-gaggtgggcggatcacaagttcaggaattcgagaccagcctggccaatatggtgaacccc
-cgtctctcctaaaaatacaaaaattagctgggcatcgtggtgctcgcctgtagtcccagc
-tactcaggaggctgaggcagaagaatcacttaaacctgggaggcggaggttgcagtgagc
-cgagatcgtgccactgcactccagccaggatgacagagcgagactccgtcttgaaaaaaa
-aaaaaaaaaagagacattgtctctctaagttgcccaggctggcctcaaactcctaggcaa
-aaccgatcctcccacctcagccttccaaacagctgggactacaggtgcatgccaccatgc
-ctggTCCAGAAATAATTACACGTACttttttttttttttttttttgagacggagtctcgg
-tctgtagcccaggctggagtgcagtggcgcaatctcagctcactgcaacctccgcctccc
-gggtcccggttcaagcaattctgcctcagcctcccaagtagctgggatttcaggcacgca
-ccaccatgcccagctatatttttgtatttttagcagagatagcgttcacaacgttggcca
-gggtggtcatgaactcctgacgtcgtgatcctcctgcctcggtctcccaaagtgctagga
-ttacaggtgtgagccaccacgcccagccTATATGTACttttttttttttttttttgagaa
-ggactcttgctctgtcgccaggctggagtgcagtggcacgatctcggctcactgcaacct
-ctgcctcccgggttcaagtgattctcctgtctcagcctcccaaTACATTaaaaaaaaaaa
-aaaaaaaaaGGTAAGTGAggctgggcacggtggctcatgcctgtaatcccagcactttgg
-gaggccgaagtgggcagataatgaggtcaggagttcgagaccagcctggccaacatggca
-aaacctcatctctactaaaaatacaaaaattagccaggcgtggtggcatgcacctgtaat
-cccagctactcgggaggctgaggcaggagagtcgcttgaaacccaggaggctgaagttgc
-agtgagccaagatcgtgccactgcactccagcctgggcgacaaagtgagactccgtctca
-aaaaaaatgataagtgaaaaaagaaaTGTGttaaaatcagacagatcttggttcaaatcc
-tggctctgccacttatctgatccataatcttggacagatgacttccctgctctgggcctc
-TGGACTGACACCCTCTTGTCAGGATAGTTACCATGGTACACAGTAGATACTTACTAAATA
-TTAGCTCCCCTCCTCACTCTGAAACAACATGTATTTTACAAATCAACCTACAGATATTTA
-ATTAGTACGTAATATGCAAAGCACTAAGGAGATATACTGTGTAAGTAACAAGCAAGGAAT
-TACAACTATAATAAACGCTCAGTAAATTCAGGCATATCTAGCAGTTAGTGTCAATGTTTT
-CATACAAGAATGTCCATTCTTAATTCCCAAACTTCACAGAGCATATACATCTCTTACTGT
-AACAATTTTTTCCTGTTGTTTAAATAGGAAAAATGCATGTCACCAAAACTCGATACTACA
-TTGAAAACATAACCACATGAAAAGGTCTCCTGTTACACGCTACTACAACTGGTAAAAACA
-TTAGAATCACATAGAGAtttttttttttttttgagatggagtctcactgtcgcccaggct
-ggagtgtaatggcgcgatctcagctcactgcaacctccctgtcccaggttcaagtgattt
-tcctgcctcagcctcctgagtagctgggattacaggcatgcaccaccacgctttgctaat
-ttttttttttttttagacagggtttcaccatgttggccaggctggtctcgaactcctgac
-ctcaagtgatccacctgcctcagcctcccaaagtgctgagattacaagcgtgagccacca
-cgcctggccAACACAGAGATGTTTTCAAAACCAGTGTCAAAGGGTACTTGGGTTTCCAGT
-GTGGCTGGTGACACTGCCACCAGACACTGCCACAGAGAGGCTGTGACACTGCATACAAAG
-GAACTGTTTCTTAAAAACCATAGTAAGTAATGTTTTAAGCATCTTACATCCTTATGTGAT
-AGTCTGTTATTCATAGACATTTTGCCATGTTTAAATTACTTTTTAGgactggtccctgag
-tggtgctatttacaactcattgattacaatcagttagatttctttgttccttttccacgc
-ccactgcttcacttgactagccttCAAATAAATAAATAAATAACTTTTTTGGGAAATTGG
-TTGGGAATTTGTGGTTAGTAGCTATCATATCATTTTTCTATGTGAAATAACAGAGTATTG
-CTTTTTGGCCTTTGGCTGAGATCAGGGGAGATAAAGGAGTAAAAGGCTCTGAAAGTTTGC
-ATGCAGAATGTCTGCTTTTAGGGATGGCTTGTGGAAGTTAAATGGATGATGCCTGTATTT
-CAGTTCTTTCTAGTTGCCAGTACCATTGAGAAAATATGTCAAAAACACAAGAAATGTTAC
-ACAAGACAACACCAAACGTCACAAGGCAGTAGACTATAATTGTCAAAAAAGGTGCATGCA
-GACAATAATGGCCAAGAGCTCAAAGAGACTGCAGTGGGTCAGGGCCAAGCTAACCTGAGA
-AGTGTACCTTAAAAAGGAAGAGGAGCAAAACTCTCTTGACATGCTTAATTGTGATGTTTA
-ATGAACATCCTTGCAGTGTAAGACGACCTTTTTAAAATACATTCTTggccggggacggtg
-gctcacgtctgtaatcccagcactttgggaggccaaggcaggcagatcacctgaggtcag
-gagttcgagaccagcctggccaacatggtgaaaccctgtctctactttaaaaatacaaaa
-aactagccgggcatggtggcaggcgcttgtggtcccagctactcaggaggctgaggcagg
-agaatcgcttgaacctgcaaggtggaggttatagtgagccgagatagcgtcactgcactc
-tagcctggacgtcagagcaagactctgtctcaaaagaaaaataaataaataaataaatTC
-TCTCGGCTTCAGACCTACCTATCTTTGGTGTCTCAAGTTAAACCCAAAGCAGCACCCATC
-ACATCTGCCTTTTCTTTACTTTTGTCTCCTATTGCTTCCAGATACCTTCTTCCTTTTCCT
-GCAAAGCCCATTCTGCTGGAGTGGAAAAGTCCAATGCCttgatgccagggtcttgttcag
-tcactcaagatggagtgtagtggcacagtcatggctcactgcagcctcaaccATATATAT
-ATAGTTTAAATAAATCAATAAACCAATAAATTCTCTCTTAATGATGGTTTGAGCCTCACC
-ACTTGATTAGGACAATCAGCATAACCTGTAGAATCTTATTTGGAATTGAATTCTGTATTG
-TAATTTTGTTCCTGTTCATTTTTAAATTTTATTTTTCTTTCACTGTAAAGATGATACTCT
-GCTTTAAATGTTAAAAGTGTACAAGCAAAAggccgggcacagtggttcacacctgtaatc
-ccagcactttgggaggctgaggcaggcagatcacgaggtcaggtgttcgagaccagcctg
-accaacatgaggaaaccccgtctctactaaaaatacaaaagttagcctggcctggtggcg
-cacgcctgtaatcccagctactcatgaggctgaaagaggagaattgcttgaaccccggtg
-gcagaggctggagtgagccaagatcgcacaactgcactccagcctgggcgcgacatagcg
-agactccatctcaaaaacaaacaaacaaaaaaaaGTGTACAAGTTAAGGAagccaggtac
-aatggctcacacctgtaatcccagtgctgtggagggccaaggtgtgagaatcacttgagt
-ccacaaaatcgagaacagcctgggcaacaaagtgagaccctgtctctacaaaaagtacga
-aaagttagccaggcatggtggtcccagctactcaggaggctggggcgagaggatcacttg
-agcccaggagtataaggctgtggtgagctatgatagcaccactgcacttcagcctaggtg
-acagagcaataccctatTATCAAGGCACTGGACTTTTCCACTCCAGCAGAATTCTAAATT
-TTATTTAAACTATGTAGTATATATTAGGTGCAAGGCACCAGAGTTCATGTGAAGTGGAAG
-ATATCACCAGAAGGTAGGGCAGATTTTAGAAATAACTAACAGAAGGTACATTAGGTTTTA
-GAAGGGACACCAAGCATCTTCCCCAGCAATGTTCTAGTCTGAGGAAAAGGAGGAAGGTGT
-CCTGGTGACCTGTCTCTAAAAACAAAAACAAggctgggcacggtggttcatgcctgtgat
-cccagcattttgggaggccgaggcgggcagaccacctgagattgcgagtttgagaccagc
-ctgaccaacacggagaaaccccatctctactaaaaatacaaaattagccgggcgtggtgg
-cacaggccggtaatgccagctactcaggaggctgaagcagaatcgcttgaacccaggggg
-cggagattgaggtaagctgagattgcagatcgcgccattgcactccagcctgggcaacaa
-gagcgaaactccgtttcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCAggctgg
-gcgcagtggctcacgcctgtaatcctcgcactttgggaggccgaagtgggcagatcatct
-gaggtcaggagttcgagaccagcctgaccaacatggagaaaccccgtctctactaaaaat
-acaaaaaattagccgggcgtggcggcgcatgcctgtaatcccagctactcgggaggctga
-ggcaggagaattgcttgaacctgggaggcagaggttgcagtgagccgagatcatgctata
-tgccactgcactctagcctgggcgacaagagcgaaactccgtctcaaaaacaacaacaac
-aaCGACAGCAACCACGGAcggtggctcgtgcctgtaatccagcatttttttttttttttt
-tttttttgagacggagtctcgccctattgcccagactggagtgcagaggcgcaatctcgg
-cttactgcaacctccacctcccaggttcaagtgattctcctgcctcagtctcctgagtag
-ctgggattacgggcacgtgccaccatgcctggctaatttttttttttgtatttttagtag
-agacagggtttcaccatgttggtcaggctagtctcaaactcctgacctcgtgacccgcca
-gtctcagcctcccaaagtactgagattacaggcgtgagccaccacacctggcctatccca
-gcactttgggaggccgaggtggatggatcactgaggtcaggagattgagacgagcctggc
-caacatggtgaaactccatctctattaaaaatacaataattaggccaggtgcggtggctc
-acgcctgcaattccagcagtttgggaggccgaggtgggcagatcatgaggtcaggagatc
-gagaccatcttggctaacacggtgaaaccctgtctttactaaaaaaatacaaaaaaatta
-gccaggcgtggtggcgggcgcctgtagtcccagctactcgagaggctgaggcaggagaat
-gaggtgaacctgggaggcggagcttgcagtgagctgagatcacaccactgcactctagcc
-tgggtgacaagttctgtctcaaaaaaaaaaaaaaaaggcagaaagaaCATGGATTCACCT
-GCTTATACAAGAAAAAAGGAAAAAAAAAAGTGTACGAGTTGCCTTGTTACAATAAAACTA
-AATGTGTATACACACAAAGGAAATGGAGGACATTCAGGGGCTGGGATGAAGGGTACAGAA
-GAAAGGCCAGGAGATACGGCCCTTCCATTTGACAGTAAATAGACTAATTAAAAAATATTT
-ATGTAGTATATATTAGGTGCAAGGCACCAGAGTTCATTTGAAGTGGAAGATATCACCAGA
-AGGTAGGGCAGATTTTAGAAATAACTAACAGAAGGTACATTAGGTTTTAGAAGGGACACC
-AAGCATCTTCCCCAGCAATGTTCTAGTCTGAGACCATTGTGAGTCTACAAACTGTTTCTA
-TGACAAAGCTGTACattattattattattattattattttatttttattttttgagacag
-agtcttgctttgtctcccaggctggagtgcagtgaagcaatcttggctcactggaacctc
-tgtctcttgggttcaaaccattctcgggcctcagcctcccaggtagccaggattacaggc
-gcatgctgccaccacacctagctaattttttgtatttttagtagagacagggtttcacca
-tgccaggctggtctcgaactcctgacctgaagtgatctgcctgcctcaggctcccaaagt
-gctgggattataggcatgagccatcaggtctggccCATTATTAACATAAATTAAAGTTGG
-TACTAATAAGTCACAGGTGAGCTACCTATGAGACCTGAAACGTAAAACCCACATAAACAG
-AGGCACTAGCTGGTTTGGAGCCATGTGCAATTGGAAGTGCGACAGAAAGATAATAGGAGT
-AACTTTTCACCTCGGTAAACCTGTCCTCCTGGCTTGACTGCTGTTTCCTGGTAACCTAGt
-agggtgaccatttgtcctcatctgtctgagatcttcctggtttatacctagagtcctggc
-acaattgttcacagcaaaccctttctgctccctgtattctcaaatatgtcccagtttgga
-agccaaattaaatggttaccTACCTAGAAATCATTAAAAATAAAACCCCTTCTGGGcaca
-cctataatcccagtactttgggaggccaaggtgggcagattacctgaagtcaggagatcg
-agaccagcctgaccaacatggtgaaaccctgtctctactaaaaatataaaaattagccgg
-gtgtggtggtgcacgcttgtagtcccatctactcaggaggatgaggcaggagaatcgctt
-gaacccgggaggcggaggttacagtgtgccgagatcatgccactgtactccagactgggc
-aacagagtgacactctgtctcataaaataaataaataaaaaataaaataaaATAggccag
-gcgtggtggctcatgcctgtaatcccagcactttgggaagtcgaggcgagcggatcacct
-gaggtcaggcgttcgagaccagcctgaccaacatggcgaaaccccgtctccactaaaaat
-acaaaattagccaggcgtggtggcaggtgcctgtaatcctagttacttgggaggctgagg
-caggagaatcacttgaacccaagaggcggaggttacagtgagctgagatcacgccactgc
-actccagcctgggcaacgagagcaaaactccgtctcaaaaaaataaacaaaataaaaata
-aaaaTATAATAAAATAAAAACCACTGCCGGGCATGGTTTTTAGTCCAGACgtggctcatg
-cttataatcccagcactttaggaagccgacgtgggcagattgcttgaccccaggatttgg
-agagcaaccagcctgcacaacatggcaaaaccttgtctctacaaaaaataggtgggcgtg
-acggcgtgcacctgtaattccagctgcttaggaggcagaggcgggttgtagtgaggcatg
-attgtgccactgcactccagcctgggtgatagagtaagactctgtctcaaaaacaaaaaa
-aaaTCTCCAATTTCTTCTGTCAGCATAACACCTAGTCAATTGTTCATGAGATGTGTCAAG
-CTCTTGACTCAGGTGTGTCCTttcatccattcatccattcatccattcatccGCCTGCCC
-ATTTGtccagtcattcatcagtctgtcacttaatgggtgtctacttgtactaagcactgt
-actggggataaaaagatgaattactccctcccagcccttgaagggctcacagtagggaca
-caaacaattattatatataatagaatctgagggattatgaaaatccagaggaaagaatga
-ctttttttcttcttctttttttttgagacggagttacgctctttgttgcccaggctggag
-cgcagtgttgcgatctcagctcactgcaacctccacctcctgggtttgagcagttctcct
-gcctcagcctcccgagtagctgggattacaggcattcaccaccacgcctggctaattttt
-tgtatttttagtggagacggggttttgccatgttggccaggctggtcttgaaatcctgat
-ctcaggtgatctgcctgcctcggcctcccaaagtgctgggattacaggagtgagccacca
-cacctggccaagaatgactacttctaaagcagtcaggaaaggcttcaccaagaatatatt
-ctggatccttcttttaattttttttttttttttttttgagacagagtttcactcttgttg
-cccaggatggagtgcaacggcacgatctcagctcaccgcaacctccacctcccaggttca
-agcaattctcctgcctcagcctcccgagtagctgggattacaggcatgcaccaccatgcc
-tggctaattttgtatttttagtagagacagggtttttccatgttggtcaggctggtctcg
-aactccccacctcaggtgatccgcccaccttggcctcccaaagtgctaggattacaggca
-tgagccaccgcatctggccCttctttttaatttttatttatttatttagacagggtctca
-ctctgttgccttggctggagtgcagtggcacaatcatagctcactgcagcctcaacctct
-agggctcaagcgatccttccacctcagccttctatgccaccatgcctaattttaaaaaaa
-ttttttgtagaggtggggtctcattatgttgcccagactgatcttgaactcctgggctca
-agcaatcctcttgcctcaacctcccaaagtgctaggatcgcagatgtgagccaccacact
-gggctctggtacgttcttaaagaaaattttgccacagggaagagtgtgttaaggggaaag
-tactccaggcagaagagttatgtgcaaagaccttgtcacatgaaagaaacaccatgtcca
-ggaaacaaagagttctatgaagctgaagtgccaggtaaagggagagAACAGAAGCAGGTA
-GCACCGCAGTAAAAGAGGCTGGGCTGGATTCATCCCGCAAAGGAGTCTGGGTTTATCCTG
-TACTCAGGAGGAAGACAGGGAGGGATTTTACTTTGGGCCTGAGGGCCATCCTTTGGAAGA
-CCAGGCTGTACGTTTTCAAGAGGGGTCAAAAACATGCAGGAAACAGAGAAGCCTTTTTAT
-ATAACATCGGTGGAGGCAAACCATGAGAAGAATTTAATTTCCAACAAAGAGAAAAAACCT
-AACATATTTAATTTTTTTTTAACTTGGGAGTACCCCTGCACTTTCCACACATCACAAATT
-GACAGCACTTGAGTGGCAATACTGAATACTGCTTGAGGGAAGCTGATATTCAGAAGTCTT
-GTTAACCTATTTGCTAAGAGTATGATAATTTTTCTTCAGTTTGTTTAGACATACATCCAC
-CCCATCTCTCTTTCTAAATAAGCTATTCGGCAATCTGGGAGAAAGGAAATCTTGTATCTT
-GGGGAAAAAAACCACTATGCAGTCAACTGAATTTCCATGAGGTTTTGGCAAACCATTTGC
-CAGAATGTTACTTAATTCTGAACTCAAATCCTCAAATCATACCTCCCATAACTCATTTCT
-CTTAAGACTCTGTTCCAAttttttttttttttttagagacagggtcttactctgtcaccc
-aggctggagaatagtggcacgatcatggctcactgcagcctcaaccttctgggctcaagt
-gatcctcctgccttagcctcccaggtagctgggaccacagacaagctccactggcccagc
-taatttttgcgtatatatattttgtagagaaaaaaagtgttgcccaggctgatctcaaac
-tcctgggctctagtgatccacccacctcgacctcccaaagtgctgggattacaggcgttg
-agccaccatacctggccTCCAATTCTACTTTTAATCCTGCATTTCAAAATTTACTTACTA
-TTTCAAAATTTTTGGCACTCTGTGGGAACGCAACAAATACGTGCAGAATATAGTAAGTGA
-TTTAGTTTAGTTATTGTTCCTCTGGAAAAAACTGGCTTGCAGTAAATGACATTATTTTTC
-CCATACTGTTAAGGTGATGCTCACTGCAGAACTCTCTAAACAGATCTGCAGACTCTTTGG
-CCTGTTTCTAACACTACCGGTGTTTCCCAGAGGAGGATGCTGTCCCAACGTGGATTTCGG
-CTGCTGTTTTTTTCAGGCCCCAACACCACCCTCCTCAACCCCACAGCCTAGTGATTAAAT
-GTCAGTGGCAGATGGAGAAAGCACTCCCACGTGTGCCACTCTGACAAATACTTTATTCCA
-ACTAAATGTATAGGCTCTCACTGTGACATAAAAAGGGAAGAGGAAACAGAAAATTCAAGT
-GAGCTAAAGATGTATGAATTACAGAGTGAGATCAACTGCTAGACGACACAGGGAGGGAGT
-TAGCAGCGTCTCCACTGAAAGACAAATTCACAGACATCCTGTTTATTTCCGAAAGAGAAA
-CATCATAGAGCTATTCTTGGGATGTTCAGGAAAAGATTAAAATAAATGCCTATTATCTAT
-TGTATTTCGAGATAAACTTTATAGATTTAGAGCAGGACACACATTTCTGGACTTGAGAAC
-GCTGTATCTGGCTTGGAATAAAAGCCCACATTTCATCTAGAGGTAGAATGTATGTCATTC
-TAATCTCCCTCAATCCTTTCTTCTCCAATTTCTTTATTGCCCCACTTACAAGATAGTGCA
-CTATTATTCCAAAGCTGATACCTTCCAAATTCCTTTATAGTAGAGGTCTTGGCTATCATA
-ACCATGATGGAACGAATGACCGTCCTACAGCTGGCTGCAAAATATAAGACTGCTATAAAT
-AAATCCCTGATGCCTGAAAAGTAATTCATTCAACAAAGGAAGATAGGTATGACTTTGGCC
-TACTCTTCATTAGAACGCTTATTtttatttatttatttatttatttataaagagggcaaa
-gcagactttatttgaggggcaccacagcaataggtatagcaacaactgcaacagggtttt
-gtagtcagggagggagatcagactcaactccCTAAAATGCTAATTTTAACAATGGGACAC
-TTCATCTGAACTGTGGTTCTTAATGGTTCAGATAAAGATGACACAACCCACTATTGGCTT
-AAACTTCTCCCAACTCTGGCTACAGAATCCAGGTAAAGATTTCTGCCCCCTCAGAGTAAT
-AGGCATGTCCAAAATCACCTGGATTAGGGCACTTAATACACTGGGAAGGGACGATAACAA
-CTAAAGATGACCACTATCCATGCCTCCTCTAAAAGTTTTTTCATATATTTTTTCATATCA
-CCAAAACAAATACTAACTTGGATCAACTAATTTATATAATGGAATCTCGTGTGAGCGTAC
-AAAATTCCATACTGATTATTTGGTTTAAGCCTGCATTATCATAAAGGCTTTACAGTCTTT
-AAACTGAAATTAAGCTCAAATTAAGAAATGCTAGTCTTAAAACAATGGAAGGGGGGGGCC
-GTTTTGTGTGGAGGGAGGGAGACAGACATACCCCTACACCCACCCACAACTACTGATATT
-GACATTGGAAATTAACTTGAAAATTTATgcctgtagtcccagctactcaggaggctgagg
-tgggaggagcacttaagtccaggagttgggagatgacagtgagctttgactgtgacactg
-cactccaacccgggtgacagggcaagatcccatctctcaaaaaaaaaaaaaaaaaaTGCT
-TTAACTCCACGTCTGTACCAGAAGACCACAGCAGGAGAGGAAAACCTTATTTCAGTCTGG
-GTAAGAGTTCTATTAAACACAAAATAAAACAAACTAGCCTCTGTTTCTGGAGGTCTTCAT
-TAGTAGTTTCTACAAAACAGTATCCAAATTAGCAAAGATTCTGTTAACTACCTGGAAAAA
-GCAGGTACCAAGAAAGAATGTTTCACTACAATGGAAAAAAACAGTCTAGTAAGTAAACCA
-ATCTGACTATAAACGCTACAAAAGAGGGATTCTAGCATTAGTAACTTTGCCAACAATACT
-CTGATATGATTAAAAAACAAAACAATAACAAAAACAAAAAACCTCATCTTTAAATTTGTC
-CCATTCATCCAGAGAAGCAAAATCAAGGAAACTAGAGGGGGTAAAGTCTTGCAACAGATA
-CACAGCTGCACTGCCAACAGGTCACAAGACCCATGCTGCCTAGGGCATTGACTGTTATGC
-CATGAGGACAGACATCACACAAACACCAGTAATTAAAGGGTTACGGTGCCAAAGGGTTCA
-GAGCTCCACTTCCATTCAGTATCAGAACATAAGAAAAAGGGAAAAACAGAAAATGAGCCC
-aaataaaatataaaataaaatataGATACCAGGAGCTTCCTCAAAATATGTGGGTTGTAT
-TAATAACGTGTTTGGCTCTGTTACGGGCACCATCCATCAGAGGACTGGAAATAGGGAAAG
-TCACCTTAGTCTTCCTCAAGGAAAAAAGATTATTTAACTTGGTTCACGGTGTACATTCAT
-AATTTTAACTGTCATGTATTTATTGAATGAAAAACATTTGAGAACATCATGTGCAACAAA
-AACATGATTTCACAGAAATTGTCCAAACTAAAAGAGTATAAAAATAGAAGCGCTTTTTAT
-ACAAttatttacttattattattattgagatagggtctccatctgtcacccaggccggag
-tgcagtggcgcaatcatagagtagcctctaagtcctgggctcaagcgatcctcctgcctc
-agcctccagagtcgttgggatcacaggctcgagcctccacacccgactaacttttaaaaa
-ctttttgtagagatgaggcctcgctgtgtttcccagcctgatctcgaaatcctggcctca
-atcgatcctccaaccatggcctcccaaagcgctgggattacaggcgcgagccatggtgcc
-cggccGCTTTTACACAATTGAATAACATTAAAATAGGTGGCAGAAGACagacagaaagtc
-gattcgtggttgccaggcgtcgtgaataccggggaacgcggagtgcctattaatgggtaa
-gggtttcgttttggaatcagacagcggcgatggctgcacaactttgtgaattttctaaga
-atcactgaactgtgcaccttaaaggaagaactgtgtggtaattacatcGGCGGTACGCGG
-GCAGCGCGTCAATCAAGCCGGCGACGGTGAATGCAGTTCGGGAGAGCTGATACCCCTCGG
-GGAGGCGGCTCCGGGAGCCTGCGGACGTGGCGGACGCCTGGGACGGGGTGGGCCTGGCCT
-CCGCGCTCGAGGAGTCCCAGTCCTCTCCAGATGGAAGAAAGCCGGGGCGCGAAGCCGCCG
-CCCGCTCTTCTGCCTGGGGACGCGACTCTGCCGCCAGGCTCCCTCGGGTCAGCTCGGCAC
-CCGCCCGAGCCCCCCCAGTTCCAGGCCCTCTCCTCATCAGACGTGCCCTGGGCCCTCAGC
-CTGTTCCTCTCGccgcccggaaccccgcagcagccccgggtccccagcccgcgcccctcc
-ggcgccgcctccgccagctgcccctgccccccgggccgccctcgcaggccgctcccggcg
-ccccggtcggcttccgtacctgccttctccgcgccgccgtcccAGTGGCCGGAGGTGGGG
-CCGTCGCCCTGCGCACTCCGGAGGGCCATgccccggggccccgggcccccACCCGAGCCC
-CGGCTGGTGGCGGAGCCGGGAGAAGACGCGGCTCCGACCGCGGGACGTAGCACCCGCTCG
-GCATCGGCAGGCTCCCCTCCGTCGGCCAgcggcgcgcaggcgcgcaggcgccccgctggc
-cccgccccgcgccggcACGTGACCCTGCGCTACGCCCGGCCGGCGGCGGGGGAGGCTGCG
-GAAAGAGCGCGGTGAGCGCTCTGAGGAGTTGGCTTCGTCTGCGCTGTAGACTCTACGGTG
-TAGAgtgtggcgctcttgagcgagtgtgctcgagaccagctgtcgtttcctttgcttctt
-tcatctgtaaaatagtattgatgataataaaaatattgaactcacaaggttattgagagt
-gtttagaacatcaccaagcatatagtaaatactccacaattatGACCAATTTTTGCTTAC
-CAAGGATTATTTTTTTACCTCCTGTCTCGTCTCCCCACACGAACTCCTGTCATCAGTTCT
-TGGGTACTTGGGGATCTAGCAGGTTCATGTCAtacgggtccgcaggttatgcactgcaca
-aggcctgggagcgccatttacgtagacgttcacgtgaaccgtgcccccttaagttgtgcG
-AAATAGTGGCCACTCATCTAAAGCAGCGctctggcttatcaggtctgatttccttctcgt
-cttcagtgatattcctttctttccaattagacatccattcccttggttatatccctgata
-ttgtgattgtggcctcccgaatttctagtgctaggtcttcatgctgaagttcccataatt
-ccagttgcttgatgactctcttccacctcccacccccaaccacaacagttctttattatc
-ctgagacctccagcccatGAaactcctgacctcgtgatccgcccgcctcagcctctcaaa
-gtgctgggattacaggcgtgagccaccgcgcacagcCAAGTTTTACAGTTCTATTCATAA
-ATCTAGTAAATTATATCAGTTATTTGGTCCCATTAATAAACTAAGCTAATTAAAATCCTT
-TGAACATTTGAAACTGCATTTATAAATTCAATTCGTTTTTCTAAGTATCACAGGTTTCTA
-ACAAAGCCTTTCAAGTCCTTGTGTAATTCTTGTAAATGTAATACATTTATAAGAATACTG
-AGTCATGAGTGCTTTCAAATGTGTCAATACAAACGAGATTTCATCTTAAAATCAAAAGTC
-TAAATCTATTCAAATACATATTTGTAATTAGTACAAGAATAATCTGTTAGAATTCTCAAA
-Attatcttttttttttttttgagacagagtctcactctatcacccagactggagtgcaat
-agcgatcatagctcactgcagcctcaagctcctgggctcaagctagcctcctgttgcagc
-ctcccgagtagctgagactgtaggtacacactaccatgcctggctagtttttttagtttt
-tatagagggggtggggaatctccctatgttgcccaggccggtctcaaactgccttcgcct
-cccaaagctctgggattacaggcgtgaatcacagtgccAAGCTCTTGAAATTATCTTGAA
-CATTATAGGAATTTAAAGTATCACATTTACACAGATGCCTTAATGCAAAATTATTAATAC
-TAGAAGTTTGAAAACATTTCTAGTCTTTGTTCTAAATCATCTGTGAggctcatgcctgta
-atcccagcactttgggaggtgaagggctgcagatcacttgaggtcaggagttcaagacca
-gcctcaccaacatggtgaaaccccatctctactaaaaatacaaaaattagctgggcatgg
-tggtgcctgcctgtaatcccagctacttgggaggctgaggcaggagaattgcttgaacct
-gggaggcagaggttgcagtgagccaagattgcgccactgcactccagcctaagagacgga
-gtgagactccatctcaaaaaataaataaataaaatgaaataaaTCATCATTGAGGTTAAA
-AGATGCTTAGTGCCCACTGAAGGAAGATTTAAGTCATCCCAGTTTAAGAGTAACGTGCTC
-AAGCAATTTGAGATATTTATTCCCTTCTCAGTTTACTGCGCTGGTCATCCAGCCAGCTGG
-ATTCTTGCTTTTGGTAGTGATGGAACAGTGACCCCCACCCCATTCCCACCACCACAACTC
-TAGGACTAAACAGTTGTGTGGTCGTTGTGAAGCTTGGGCcagaatttactttcaaaaaat
-gtcccgcttcatgtataatataaagaccttacaataaattcccatttcttccctcctgtt
-cttcttgctgttgtcctacattttactttttaaaatcccttccttctcttgctttctccc
-ctctacccaccaaccacttgcaaacaaccactgatctacatcctgtcactatagattggt
-tttcattttctggaattttttatggacggaatcatatagtatgtagtcttttttgtctgg
-cttcttttactcagcgtaattattttataagcaatcatgttgcattaatcaatagttcat
-ttgtttttgttgttaagtagaatttcatcttagaaatataccacgattcattttatcaGT
-ATTTTAAATTTTTGCATGTGCTGCAAGTACACAATTCATTGCTAATATGCTTGCCTTAGA
-CCAGGCGGTTAGCAAAAAAGATGGTCTGCCCAcctgcaagccaaaaccactctactgcct
-gattttgcacggctcatgaactaagaatggcttttaccttgataaatgttgaaaaatcac
-aacttaattgtagcacattaaaactatatggaatttaaatctcagtgtccataaaccttt
-actgaaacagagtcacgctcattcatttacctactgtctatggctgttttcatgctgcaa
-cggtagagttcagtggttgcaacagagatatggcctacaaaacctaaaatatttattatc
-tgctcctttatgtatttatttattttatgtgtgtatgtatgtatgtatttttttgagatg
-gagtttcactcttgttgcccaggctggagtgcaatggcgcaatcgcagctcactgcaacc
-tccgcctcccaggtccacgtgattctcctgcctcagcctcccgagtagctgggattagcc
-cgccaccatgcctggctaatttttttgtatttttagtagagacggggttttgccatgttg
-gtcaggctggtctcaaactcccgacctcaggtgatccgcccgcctcagcctcccaaagtg
-cctgggattacaggcatgagccaccgcacccggccTATCTGCTCCTTTATAGAAAAAGAT
-Tggcaggacgtggtggctcacacctgtaatcccagcactttgggaggccgaggcaggcag
-attacatgaggccaggagttcgagaccagcttggccaaagtggtgaaaccccgtctttac
-taaacatacaaaaattagccaggcatagtggcacaggtctgtaatcccagctactcagga
-ggctgaggcaggagaatcacttgaacccaggaggcggagactgcagtgagccgagatcac
-accattgcactccagcctgggtgacagagtgagactccacataaaaaaaaaaaaaaaaaa
-aaaaaaGTTTTGTGACCCTCTAttgtagagatggaggtattggggctgttgcccaggctg
-gccttcaactcctggcctcaagggatcctcctgcttcagcctcccaaaaatgatgggatt
-tcaagtttgagccccatgcccagctCACTTCAGTTATTTCTAAGGTAATTTAAaaaagat
-tttaattgtacttaccttcattcaatttccagtgctcttaatttcattgtgtagacccag
-gtttttttctggtatcatattccttttgcctgaaaaacttcctttagtatcttgtagaag
-gagcaatgaattccgtttttctttatctgaaacagggtttatttctcctttattttgaaa
-gacactttcatttgggtataggattccggaattttgggtgagcagtttttgtgtgtgtat
-gtgtttttcccctatcagcatcagcaataaggtcactccattggcttctagcttgcatag
-tttctgacgtctccataattcttagcttcctctgtatgcaatgtcttctttttccttgct
-gcctttaagattttcttttgttttagcatttcgagtatatctaattttatatgtgtgtgt
-gtatatatatatatatatatatatatatatatatatatatgagtttattctgcatgttct
-ctgagcttcttggattttgtggtttgctctgtccttaatgttgaaaagttctcagccttt
-aattcttcaaatgtttcttttcctgttctctctcctttcttctgggaatctaactataat
-atgtttgagtgtttgatattgtcccacaactcttggatgttctcttttgacggttttttt
-tcccttcaccctttttccccagtgtttcagtttgaataatttctcttgacctatctttga
-gttcattcattctctccttggctgtgtcaaatccactgacgagctccatgaggcactctt
-catctctgcatctctgttagtgtgtttcttttttttttttttttttgagacagagtctcg
-ctctgtcctccaggcgtgcagtggcgcaatctcggctcactgcaagctctgcctcccggg
-ttcacaccattctcctgcctcagcctcctgagtaggtgggactacaggctcccgccacca
-tgcccggctgattttttgtatttttagtagagacggggtttcaccgcgttagccaggatg
-gtctcaatctcctgacctcgtgatctgcccgcctcggcctcccaaagtgctggaattaca
-ggcgtgagccaccgcacctggccattagtgtgtttcttattttgaccagttccatttggt
-tctcatagcttccatctctctactgagattgcacttttgatcttgcatattgtctacttt
-tactgttagaccttttaccatattagttatttgaaattctgtatcacatagctctgacat
-ctgtgtttggttctgaagattgctttgtctcttgggagtatgtcatttatctcttgcttc
-ataagtgttggtgaaagttggacatcttgtgtaggatagtagaggcccagggaaatgggt
-tttgtgtagaaatgggcacacttttccttctgttaggtctttagcgtgggggtttgaatt
-aacctagttaggagttgTGATAggctgggtgggtggctcatgcctgtattcccagcactt
-tgggaggccaaggcaggaagattgcttgaacacaggagtttgagatcagcctggacaaca
-tagtgaaaccccatctctacaaaaaaaataaaaattatctaggcatttttggtgcatgcc
-tgttgtcctagctactgggaaggcttgccgagtctgtcctgcagactctgcccaagcgac
-ggatgaaaggagtactcagatacagatatccagtgaaagagcaggataggggactgccag
-cactaggggccgaagagaattagcagttcccctaagccggcagccctcgcatttgtttgg
-tacagatttaatgacaaaggcttggagcaaacacaatttgtgggtaataaacattgttga
-ccccccgagtagagagcagtcctgcatgcaaatgattaaaggttggtttctggagacagg
-agtagacaaatttatctagataagtttctttacattcccttgttatctgccctttgctct
-caggctccagatgagacaatttggctgccttcagccataatttccttccaaagcttttgt
-aaaacctcctggcctttcaagaaggtttgtgtctttactataatttctcccaccaccctg
-accaatctcctacatctcccccttttctgttttttgcatcagcttttgttaattgaagag
-tacagatgtgcagcaacaggtttttcaggtgtagtggtcactgcttgtatttcggctttg
-catcctagaattagtaaataacataagataaacgtgaatataatcagtaacattcttttc
-caatcaaggagtgacatgtagtgttacttgccacctcagttcagtgtgtgcccttactaa
-ggaaccccactgggggtatgttaaccccttccagccaagcagttacgttattagaggctg
-ggaagggggtgtccacccaggtaatagggtggaagaaaagcagatttagaagatgggccc
-aatagagtgtagcaggtactggttgcaggcagagtgagggaattaaacaaggttaataaa
-gcatagtaaggaataaattatctggagtgaatggtgtttgtgtccagagcaggattcgtt
-cagcctcctgagttgtcttcttcagcatcccccaggtaatgtctggggcttgtgtcgtct
-gaggaagctgcatcatccagggctgtgggtcctgcagggacatttccttcatttctggta
-ccaggttgggtcctagccacaccatgttaaggtttgatgcgttgtgctggaatccaaaga
-ggacctgaggtgatgtgaacacaaccatatcctcttccccatgttggcaactcatttgga
-ccacaccatacattactgtttacatctttccataaaactgtgggttttatgtcttgagag
-gttttagcaaagtgcttttctatagctgattgaaatttatcatttaaatttaagaaatta
-agggtaaataaggcttttgctagtagtgttgcagggtccttactcatactcccccttttt
-tgttttttgagcatatttttaagagtggacacgttctactatggcctgtccttgggggtt
-atacgggatgcctgtggaatgctggatgttccacgtgtgacaaaattgttgaaattgtga
-gctggcatgagccagaccattatcagttttaatttttgtgggccgccccataaatgcaaa
-agttaagagaagagtttaataacatatcaggtggactttccaggaagagcattgtgctaa
-ttaggtgagaataggtatcaatggatacttgtacatatcttagttttccaaattcaggga
-cgtgagtaacatctgtttgccataactgattaggttctagtcctctagggttaacgcctg
-ttgaaggaggggacatgcctgtgagctggcaatccgggcattgcaggataatttgtttag
-ctagtctttgggtaagttgaaattgttcagttaagttccttcaattttggtggaaaaatt
-gacgcaactgcatggcttggtgaagcagtgacatcataacttgcaggtctgcttgttcat
-tgccataagccagtgggccaggcagtgagctgtgggctcgaatatgtgtgataaaaatag
-gatgtgtacgttgatccagcaattgctgaagttgaagaaaaagtgcacacagggtgagct
-tgagagtggacttaatgagggctgttttaaggttttgcaataaataaacagagtaagcag
-agtcactaatattgataggcagagtggaaaagttctccaggggcaatattaaggctccaa
-cctcagctctctgagtgctagtaaatccagaatgagtgaggaaattatgcagtctccacc
-aaacaggcgcttttctgtttttaccagagccatcagtaaaaagtgttaaagtgttggggt
-atgggggagtgaactacttttgtaggcacaactacaggagtacgagataagaactgaatt
-acgttgtcagcaggaagggcatgctctatatggcctgtgtaatcagagattgctatctga
-agatctagagataggggcaatactgatccaaattgccttttactcaaaggaattcttatg
-acatcataacctagcaactgattgcactatctgcggcctgtatagatgactttactaact
-agctggatataggaagatagtgttttagtctcggtatgtgagcaaaaaacccattctagg
-aagcgtagtcctggggtcatctctcctattaatactgttggggaatgtttagtaggaaaa
-acaaacaattgaactgactatcggggtgtctatgtgatatagttgcctctgagaaatagc
-ttgctctatttcctcaatttccctttttgctgcaggagtcaaatacctgggagagtctag
-ggctgtattgccctttaggatagaaaacagttttgtaacttatcagtagttatgcccaac
-gtggggtgaagtcaattaatattgcccagtaacttttgataatcatttaaggtgtgtaaa
-tcgctagtatttaaccttttgaggtcttactgaccagaagttagtatgtatccaagatat
-ttccaattgtactttttcaggtgctatgattaaacctcttaactgtgtattctttatgac
-agaggcatataaacttaaaagcactggctctgttggggctgctaggaaaatatcatccat
-aaaatgaataatcttgcaactaggaaattcttttctactggggagcaaagcctgatttac
-atgatactgacacatggtaggactgaacagcatcccttgaggaagtactttccaatgaaa
-tcagcgagctggcctctcattactgataactggtattgtaaatgccaatttttctctgtc
-ctgttctacaaggggaatagtataaaagcagtcctttaagtcaataatgactataggcca
-atcttgaggaatcgcctcaaaggggaagggaggtcccgttgaaggggccccataggttgc
-aaattagcattgatagcctgtaagtcatgcaaaagtctccatttgccagaccttttggga
-atgatgaaaatgggcgaattccaagggctgtttgacagttctatatggccagcttttaat
-tgttcttccactaattcatgggctttttgtaatttctctctctttaaaggctactgtttt
-acccaaataggattttgagagagccatgtcaggggtaggggaggaataacagtggccatt
-attagaaaggtttgctgttcacacaatttatcaaattctgccctccagaggaggtactga
-ctggcctttaaagttgttttagctagcactgaccagtcccatggggtgatatggaagttg
-tctgctatggtttcaattattccttttgtaaatgggctagtggctccgtttaatgctttt
-tcttaccactttataagcgtcaaaagaagttgtctgctatggcttcaattattcctttca
-taaatgggctagcagctccattttctttaacgtttttttcttatctctttataagcgtca
-aaagaaatgggttcatatacctgatcgccttgtcgatcttgcattactgggcaggctaag
-agctccccttctgatgccgcttggctaagacagggtcccaaagctgtagtgtatcccttg
-tctttttccaatttattggaggagggggctcaggcaaaacctctgtttcctctttgttat
-ttttgcctgttaatggctgggctgagggagaaggaggagacggtagggtaggtgacggtt
-ccatctcccttacttttttaggcttttctgtgtagagtgggaccaaagcagtcctaacta
-aagcccataacgttaaagatgttactgagacccattgcccttgctcatgatgttaaaatt
-tcttcccagagctctacgtctagtgtaccttcttccgagagccatgggttatgggaaaca
-acagtttgcattaggtcccataattgagcctgtctgaggctctgctaactttcagcattt
-gttttactacttttatatactgttgctgttgagctgacaactgttgtcccatgatgacaa
-ctgtcatcccatgatgatcgtccctagcttgagcaattcctttgaacttggaaatgctga
-acaggcaccaatgacttactgactgcgcagtctcttcaccttcattttcgagggttccgt
-cgtgatctgttgcagcattcctcacacagggaatcacctgccgagtctgtcccacagact
-ttggccgagtgacagatgaaaggagtactcagacacagatattcagtgagagagcaggct
-aggggactgccagcactaggggccgaagagagttagcagtccccttaagctggtggccct
-cacatttatttagcacaaatttaatgacaaaggcttggagcaaacacaatttgtgggcaa
-taaacattgtcaacatcccaagtagacagcagtcctgtgtgtgaatgatcaaaggttggt
-ttctggacacaggaataaacaaatttatctaggtaagttcctatacaactcccctgttat
-ctgccctttgctctcaggcttcagataagaatttggctgccttcagccataatttctttc
-tgaagcttttgcaaaacctctcggccttccaagaaggtttgtgtctttcctataatttct
-cccaccaccctgaccaatctcctacaAaggctgaagcaggaggattgcttgagcccagga
-gtttgaggctgcagtgagctgcgatcacaccactgcacttcagcctgggcaacagagcaa
-gaccttgtctctaaaaagtaaataaaaaaaagagttgggctaggtttgaggtttattgtt
-gctatggttacccccaatgcagcagcttccagttcctccaatgacaccttggactgaggg
-tgcaggctggcctgccagagggattttctccttccatgtgtgctccctgctcagctttag
-gtcctccctttgtgaccctcagaaagggtcttcttcccatactcttgtctctctcctgta
-acatttttacttctaactcaaggcttgtcagcttaccattggcaggtgggggaggaggga
-attctctgttctgatcaagtctcagtctctgtcaggccctttgtgtctctgattttgggg
-ttatgtcctccttagtgctcctgttcctcccccAGTTCTGGGCCCAGTGTGTATTCCTGC
-CCCTGCCCAGGGAAAGTTTTGTTTTGTTCCTGTTTCATTCCCCCAGATGCAAGGGAGCTT
-CATCCAAGGGGGTGACAGGATTTGGTGTCCTTCCCTCCACAGACTAAGGCTTTTGTCCGG
-TAGGGGATACAGGGAAGGGTCTGGGTGGAGCACTGTGATCCTTTCACAGTAGCTGCCATT
-GTCTTCTTCCAGATCTTGAGACATTTTATTAAAACTTTCTCCAATCTTCTGTGTGCTCCC
-AGTGGGGTTCATGGTGAAAAACGCTGAAAAGGGTAAAGACTACTGCAGTCTCCATGACCC
-AGTCCCTCACCAGTGTCCACTTGTGTTTACCAGGTAACCAGTGCCCATGTCATCTCTTCC
-ATTTTGTGCCTGTCTCTCCTTAGATTTGAAGCCAGTTGATTGTCTTCTGATCTCAGCTCT
-CCAGAAGACCTTTTCCAGAAGACCTCTCCCTGTGTATCCACTTCTAAACCAGTCACAACT
-GCCCGAGTCTCACAGCAGCATGGTGGATATCCCGCTGTCCCTCAAACTGGGGCTCTGTCA
-ACAAAGAGGAAGGGAGGAATGACTCCCTTGGGAGGAGACAACAACATTGCAAGTGATCTa
-gtctttgaaaggcttttaagcaagggactgagataaaatttatttattatttttaagaga
-gaggttctcactctgtcagccaggtctcactgagagcaatgtgatcatagctcactgcag
-cctccaactcctgggctcaacgtatcctcccacccagcctccccagtagctagcactata
-gtcacacaccaccacactagttaatgttttcattttttgtagaacagaggactcgctgtg
-ttacccaggcctcaagtgatcatcgggccttggcctcccaaaatgctggggttatagata
-tgagtcactgtgcctggactagaatatttatttttgaaagatctttggttgcaggtgtca
-gatgaatcaggaattgagacgagatgggaaggcatcaagaccagttatctgctatgatac
-tccaagcaagagaggatggtggctgggatgaggaatttggcaacgggaatgggaggaagt
-ggatgcattcaagataaatATCCATTTATTAAAAGTAGTTGCTTTTTCACCAGAGTAATA
-CATAAATATAGTTTTAAAAGTAAATACTGCTACTATCTTAACAATAATTTAAAAAatctc
-aaaataacatgcaactgtttgatttttcagttttaggcattagttccccttataaatgat
-gagagtttagagcttagaccgcttgtcctgttaccaacaccaccacacatgccagcattt
-cccatcactcctctttccattgtcatcatactgtaatcctggttagaccagtattcagtg
-tttccattatgactacgtaaattctaatcacagctgaaccagcagtatgatatttagttt
-tccctcctttcataacttttcccattcctgctgagttaatacttttttggcttgtcttac
-tctgctcagttttcATTTTGTAAActtttaaacatttgaactctagcaaatatactgaga
-agtgccccaaacgtaaatggagagtttaacaaataattatagagcaaatacaacatttag
-gtaccaccccaataaacacaacaccgaggacccccagaagcaccctgtgtATAGTGGAAT
-GTTGTGTTGTTTCTGGCCATGGAGTCTCAAAGACTGATTCTCAATTTTTGTTGCTTGAAA
-ACAAGTAAACAAGTATTCTCagccgggcacggtggctcacgcctataatctcagcacttt
-tggaggccgaggcaggcagattacttgatgtcaggagttccagaccagcctggccaacat
-ggtgaaaccctgttgttttgtaaaaatacaaaaactatctgggtgtggtggcatgtgcct
-ataatcccaactacttgggaggctgaggcaggagaatcgcttgaacctgggaggtggagg
-ttgcagtgggctgagatcatgccaccgcactccagcctgggtgacagagttaagactctg
-actcaaaaaaaaaaaaaaaaaGTTGGTGTAATCCTTTCCACACACACATATATATATACA
-TAGATGTTATATGTGGTTGCCTTCTGTTCCTACTGATATATATGAATAGTATGGCTGATT
-GCATTATTGGTTTGTTTCTTCATTCCCCTGTAATAAGACTAAACatacacaccctttgcc
-atataacctcataaagttttcccaacacaggctctatgcttccctactgcactgatgttg
-ggcttggctatgtgatttgctttcgccaatgggatgatggtgcttgtgacacagcagagg
-cttgaaatgtgcttgtgtgattccatttggtctcttCTAAGTTTCTGTGATTCATGAGAA
-GAGCACGCCCTGAGTAGCTGCTGCAACTTCTGCCACATTGGGCAAACCTGAATCCAATTC
-ACATGGAGGTGTCCAGCCCAGCCGACCCACAACCTGAAAAACAGCTGCTTGGGCTGAACT
-TGATCTAGATCAGCTGAACTACATACAGTTGCCTTAGAAATTTGTGAGACTAAGACTAGA
-CAGAGAACAAAAGCAAAAGAAAGAAAAAATTTGTCTGCAATGACTGGCTAGGAACCTGGA
-CAGATTCCTGGCAACATAGCTGTGCAAAAGCAGCCCCACAAGCAAAATTGAGCCAGGAGA
-CAGGGTTCTGATCCCAGGCATGGGCCTTGGCAGCTGAAACTTGTTAGGCTGGGCCTCTCC
-CTCGCCAGTTCAGGCAGCCCCTCCTCTGAGGCCTCATGGACCATTCTCTCTTCTCCAAGA
-CTTCAAGATTCCTTCCTAGTGAGtttttcttttttacttttagatggagtctggctctgt
-cacccaggctggagtacactgacgtgatctcagctcactgtaaccgccacctcccaggct
-caagcaattctcctgcctcagcctcccaagtagctgggactgcaggcacacgtcaccaag
-cccagctaatttttgtattttttagtagaaacagggtgtcaccatgttgttcagtctggt
-ttcaaactcctgacctcaggtgatccactcgccttggtctcccaaagtgttggattacag
-gcgtgagccaccatgcccggcACCTAGTGAGtttttctgttacttttttttttggaggcg
-gggtctccctatgttgcacaggctggagtgcagtggtgaaatcatggctcactgcagcct
-caacctcctgggctcaattgattcctccatctcagcctcccaagtagctgggactacagg
-catgcaccaccatgcccagctaatctgtgtattttttgtagagagggtttcatcatgttt
-cccagaccggccttgaattcctgagctcaagtgagtcgcccgcctccacctctcaaagtg
-ctgagattacaggtgtgagccactgcacccagccTGTTAAATCTTTTTTTCAATTAATAA
-CAACttcttttacagacagggtctcactctgttgctcagtctggggtgcagtggcactat
-catagctcactgcagccttgaacccctgggctcaagtgatcctcctgcctcagcctccag
-agtagctagcactacaggcatgtgccaccacatccagctaatttttaattttggtagaga
-cagggtctccctatgttgcccaggctggtctccaactcgtggcctcaagcaatcctcctg
-cctcagcctcccaaagagctgagattacaggcatgagccaccacgcccagctTCTGTGAC
-TTTAAAAAAATCtttttagacagggtcttgctctgtcacttgggcttgagtactgtggca
-caatcacacctcactgcagccttgacttcttgggctcaggcaattaattctcgtcctttg
-gcctccccagtagctaggacacaggcgcacaccaccacactcagctaatctattttttgt
-agaggtgggttttcgccatgttgtccaggctggtctgggactcccggctcccaaagtgtt
-ccAACCACAGGTGTGTGGGCCTTCCGTGGTATCTTAACCTCATCACCCAGAGGCAACAAC
-AGCTAGTATTCTTCTAGTTTTTACCACCCCCACCACCTCAATCCTGCCCCTGTAGCCTTT
-CCAAGTGCCACAGCATTGTTTCAGTTTCTATCTTAGAAAGCCCGGGAGTCTGTGTCCTAT
-CTCCCTGGGGGCATTCAAACCCTAGTCCATAGCCTGAGGCCCACCTATACCCAGACCCAG
-TGTCTTGGAAGCACTGACTTTAATACCCACTTAggctgggcgcagtggctcacgcctgta
-atcccaccactttgggaggcttgggcgggcggatcacctgaggtcgggagttcgagacca
-gcctgaccaacatggagaaaccccgtctctactaaaaatacaaaattagctgggcgtggt
-ggtgcatgtaatcccaTGCCTGTCTCAaaaacaaaacaaacaaacaaaacaaaacaaaac
-aaaaAAACCCCAGTTACATTCAGGATGAATTCTGCCTTCCTTTTTGCCACCTTGGGATTT
-CCATTTCTTTCTCTGAAATAGGCATTTGCATTTTTCCTAGGATTTTTTTTTTAAAACAGT
-TGGAATTATCCCATATACACAATTTTTTCACTTTTCTAATTAACATACATTTCCCCATGG
-Gcttgtgtctcacctctcaatccccagtgtatagcaaagaccaggctcaggggcacttac
-aaatgtttgttgaaACCAAAGACATCCTATATTACAGAAATGAACTTTGGAAAGACCAGT
-CAGCGTGGGTGGGTGAGGAATGCCAGAGACGGGAGAACAAAATGAGGTATACCGTCAGGT
-TTGAAGGGTTGAGGGTTATGGAGGGTTCTTCATAGGAAGTTCACCATGGAGTTCTTGGAA
-CTGTTCAACACACAGAAGCAAGGTCCTCTCCTTCTAGGTATGGCTAGAAATGTTTATCAA
-TAGCTGAGACTCTGATTCCCAGGGTGGGATCAGGAAGCCAGCCCCAGCTGCTGCAGCATT
-TTTTTCCCTTTTTCTCATTACAGGAGCCAAGAAAACTGTCAAAGCAGATGATGCAAGAGT
-GAAGCTGACTCAGAAATACTCAATCCCCCCAGGAACTTCTCTAAGAAATGGACTGACCAT
-CCTGTAAGCTTCCATCTGGAGGTACCTGGGGAAGGGCTTCTCACATTGAGGCCAATAAGA
-ATCCCTAGTGggccaggtgtggtggctcatgcctctaatctcagcactttgggaggccaa
-ggcgggtagactgttgagctcaggagttcaagaccagcctgggcaacacggcaaaacttc
-atctctaccaaaaaaaaaaaaaaaaaaattagccaagcatgatggctcgtgcctgtagtc
-cctggaaggctgagttgggaggatcacctgagcctgggaggttgaggctgcagtgagctg
-tgatggcgctactgcactctagcctgggtaacagagcaagacccgtatcaaaaaacaaaa
-caaacaaaaaaCTTCTAGTGAGTAGAGCGACAGGGAGACAAATCCAGTTTGTAATTTGCT
-ACAGTGCAAAATATCTGGCTTTCCATAGAGGGAGTGGGAACAAGGCAATGCTGGCCTTCA
-TTCAATCAGAAACTTGACTTGTACCCGTTGAAAACCTGTCATGTTTAATGCTTGGATATT
-TTTTCTTCTAGTAaagacactttactgccacctgctggaaaagagtcagaaattttccaa
-atgcaaacatctatggcctccctataatgtagcatccttttactgtacatagtctgcaca
-actgtacaATTTAGAAGAGAAACCAACATTTGGTGTAACTCTACCATATACCAGGCATCT
-GTCATAGAATCTGAACAACCGCTCTATGAAATCAGTACTTATACCCCAATTTAACAGATA
-GGAAATATTGGGacctctggggaagggaggaagaagagggtatcaccaaaaaagggcaaa
-aagggggcttggtctgtattggcaatggaaattcaacttgggtggtaggattatggatgt
-gttacagctttctttataattTGGTACATGCCTAAAATGTTTTACAATAACAATTTAAAT
-CACCTGTGAAGAAAAGATTCAGAGAGGTTAACTGATCAAAAAAATCACACTGCCAGACAG
-AACTCTGTTAGAGGTAGACCACTTGCAGTAACATTACATTGCTTCTCTAATGGTTAAATT
-TAGCACAGAATCAAAGGAGAGCTATAAAGTCTAGGAAGTACTTATTTACATAGGATTGAG
-TCCAGAACATCTTGTGACACCATCTACATATGTTTTACTTGGAGAATAGTCTGAATTTCG
-TATTAcacgttgagcatttctaatttgaaaatacaaaatcctcaaaaatctgaaattttt
-taagcatcaacatgatgcctaaagtaaatgctatttggaatatttcaaatttcagattag
-gaatattgaactggtatgtattccgcaaatattccaaaaatccaaaaaaattcaaaacac
-ttctggtcccaaccattttggataggggatattcaacctATATTACACACAGGTAATACA
-GCAGGGGAAAAGCAGGGAGACTGCAGCATCTAAGTCTACTAAATTGGCCAGGATCATTCC
-TTAGTCTTCAGATACCTATTTATCAGGGTCTCATTAAATAAAGTTACTTGTCATGTTAGT
-TCAGTCTGGCCTGTGGCTTGTAATTATAGCTGCAAACTCAAGGGCAAAGTTCTTAGGATT
-TTGAGATGCTCTTTATGCAACAATACTTCCATTTACTTtgtgtgtgtgtgtgtgtgtgtg
-tgggtgggtgggtgtgtgtgtgtAGGGAGAGAAAGGGGGCAATGGAGTGGAGagtggaac
-tacaatttattaagcacctattattacaagccaagtagggtgttaaatattttcctcgtg
-ccattccattcaatactcTTCGATCCTGAGGGAAAACGAACCCACTTAAAAAAAAAAACA
-AAAGGTTTTAATGAGGATTGCATAAGACATGCAAGGTCACCAGGGAGTTTACATGCAAGT
-GGGGAGATACAAAATAATACAACAAAAGTTCAGGTGTTCTGAGGAAAAAGAAGGGCAAGG
-GTAAGTGATGACAGTGGGGGAAGTCGGATTCAGGATAAACCAATTTTAGACTCATTTTTT
-GAGGAAGGAACTGAGCATGACCTTACCACACAGCCTTTTTAGTTAAGTGTTTCTTTAACT
-AGGAAAAGGCCCTGGGAAGACAGGCTCTCTACTATGCAAACCCAATTCCAGTCTTGGGAG
-AGAATTTGCTGGTGGGACAAAATCAGGTTTTTCAAGAGATGCTTAAATGGTCAATTCTAA
-TTATAACCATACTTGTCAAAAGGTGAAGCAAAGATGAAAGTTAAAAACTAAGAAGAAATT
-AAAATTCCCAAATCTGTCAACCAATCTCTAATTTTCTCTGCTACTTTAGGACTATAGTAA
-TTAGCCATACCCTGAGGATCTACTTTACAAGATATATTCCTCTGACAGTCCCACTCTAAC
-AATTTAATCTATCTTATGTAAGCTGGACAGGCATTTCAAGTACAAGAAACAGAATTCAAA
-ACGTGAAAACGGAGCCATCTATCACACACGGTGTCGGTTGGAGAAGCATATTGCTCAGGC
-TGCAGGGACATTTCatttatttaaatgtttttattaaaaaaaattaaaGACCTTCATGGC
-ACAACTTCTTCCCAGCACAGTTATGGTTTAGTCATACCAATTACAATACAATTACAACCA
-ATAAAGCAAGGTGGGGAGGGCCTTCTGGCTTCAAACTTAAAAAAAAGCAGAGGAAGAGGG
-GAGGGACCACTTCAAACAAAGTTTAAAAATACTTTAAAAAATCTTTCAGAGTAATTGCCA
-ACATAACCTTTCATGTTGGCCATTCCATTTCCTGCCATCTAAGCAATGCAGACACAGGTA
-GTGCTGAGAAATAGTGTCCCAATACAAGGTATACAGATGAGGTAATTTACAACAACACGT
-AAGTTGTTACTCTGTAAACCCTTGCCTCCCCCCCACCCCCCACCCAATTGGGTCTTTTTT
-TTTTTTCTCTCTCTCCATGCTTCTGCAGTGACTCTTAAGTAGCATTTTTAAAAACTTCTA
-TTTATTTTAAAAGGCTCTTGGGTGGCACCTCAGAGTCCTCTGCATTCACCTTCGGTTTAT
-TCCAAGGTCTGATGGGTGTAAGGAGGTCCAGCTGTCTGCAGCTCTCCGCATCAGCCTAAG
-CTACACCTCAATTTCCGAGCTACAAGGATAGGGTATGAAGTCTTGATTTACAACCCTCTC
-CCCACCTCAAAAGAAAGAACTCATTAGTTATAAGTGTCCTGTTCAAATCACAATCCAGTG
-CAAACATAATCACAAATTGCATCTCTGGCACATCTGGTGCTTTTAGCTTCTGCACAAATT
-CAACATGGTAACCCTCACAGCATTCTAGGGCATAAAAGGGTCAAGTACAATAAATATCCA
-CTGTAAGTGGTCATAAGGAAGAAAATCACCCTGCCACACAGTCAGAATGTTTTCCCTTCA
-GCTCTCCCTACCGTTGAGAAGCGCTATAAAAGGAGGCTTTAGCGTCCTCTAAAGTTTACC
-ATTATATTCACTAAAGCCACCACCTTGATAAAGTTACTAAAGCCAAGATGGGTTACAAAG
-TTAGATAAGTTCATTAAATTCAACTCCCCAAACAATTACGTTTATCTATGATGCCTAGGC
-GAGAAAGGCCTGTGAATCTATAAGGTAGGAGAATGGGGAACTAAGATTTTAGGCCTTAAA
-ATATGTTGGAAGAATTTTTCCTAGTTCCCACAAGCAGCTACTGTAATGAAATAACAGGAG
-AAAATACAGAGCTGATGGTTTTGCTATTGTGCTTAAAAAACTAGGCTTCCTCAGTGAAGC
-ACCTGATAAACTTAGGTGGTTGGATTACAGTGGAAAGTCCACTTTACACACACACACAAA
-CACACAAAAACTGGCGACTTTTTCCATCCCCAATCCCTGCACTGCTGAGACACAAAATGA
-GTTTTATGGCAAAGGATCCTTAATCCCCAGAGACGCTTTGGCTTGTGGTGCTTTTTTTTT
-AAGGCCTCTCTGCTCTGCCCGGTACCATGGGTCGAACGAGGGGTGTATAAAATGGGGGCC
-TTGGGAAGCCTCCACGGTACAGGGCTGCAGGCCCCTCAGATGTGAACATGAGACACCCAC
-CCAGCAAGACCTTTACACAGGGAACTTAAATCTAACCTTGATAAATAAAACCAAACGTTT
-ATTTACACCAAAGAATTCCAACACTGGATCTTTCACATATGAAGGACAAAGTATTATATA
-TATACACACAGCAAGGGGTGGCGGGGCTGTAACAAGAGAGTTTATAGTTTTCCCACAATT
-ACAGGTCTACCATTTCAGCTTCAATGGAGATAGTGGCTCTGCTCCTACCTCTCAAGATAC
-ATTTACAAGACTGAGGAGCAGGTCTTCTCACTGGATGGCATGTGAGGGAAGGGGACGGTC
-GGAGGAAAAGAAGGTAGAAAGCTTAAAATGGAAGTCAGTGTGGCCACATCTCCCATTAGC
-TCTAGCATGAAACCTGTACAGACAATGTTTGTTTCTTTTGTAAAAAGCAGTAAGTTATGC
-CCAGTAACTAAATGAATTCAAAATGGCCAAGACAAAGAAAACTAAGAAAGATTTTGCCTT
-CCCTCTCCTACCAGCTATGGAGCACAGCATGTTGGGAGATGAACAGGGAAAAGACCAAGG
-TAAGGAGCCTGGGAGGGAAGGTATCAACATTTTAAACTGAACTAAAAATAAAAGTATAAA
-TGAGTTGGATTTAGGGTTAGATCAGTAAGACATGATTCTTACTGAACAGAAGTTTTTAGT
-ATCTGTCTGCATTTTGGGTAGATTTTCAACATCTTGATGTAACTAAGACACACTTCCACA
-AGAGCCACTAGGATAACCCCACTGAAGCGCTTATGGAGTAAAGTGATGTAAGCGACCAGC
-AAGCAGTCCACTGCTCCTATAGATTGGGtcctcccttccttctttccttccttcctttct
-tcctgcctcccCTGAGAAGCTACATTTTTGTAATCTCTGGAGAAGAGCACGAGATACCAA
-CCCCCTAAAGTGTGGGACGGTGGAGGAACAATGGTGGGAATGGGAAGAAGTCTCCACCTA
-AATGCAGCAGCCGGGATTGAGGCTGGTTTATCTTTGTTCTTTTGTGATGAGGAACTAAAT
-TTGGGAGGGGAGAAAAAAAAATTTGTCCATGAAATATTCCACCTGCAGGTAATTTTTCAG
-GGAATCCCCTGAGTTATGAAAAGTTCGAGTTAAAAAAAAAAAGAAAAAAGAAAATCAGCC
-TATTATAATTTTTTTTTTATGACTGAACTACTATAAATCCACAAGCAACGGTTCAGACAC
-GGTGCTTCTGAAGTGTTTCACCCCTCCCCGCCAGGCGCAAGCTGCATCAAGGAGAGGGTG
-GACTCCCCCACCTCTGCTCAGGCATCAGGAGACAGATAGGGCCGTTACTGCTGAGCGCCA
-GCGGCAGCTGGAACAGGCATCCCAAGGGGGTTGGCAGCAGCAATCACTGGTGAGCCTGCC
-AGAGGTCCAAGGGGTGAAGGGGTTGGCACTGAAGAAATCCCTGAAAGAAAAGAGCTGTCA
-GTGAGCCAAAGACACCAACCATGGCAATCTTACCAGTTTCTCATAGCACTCACTGCAAAA
-GGAACACAATAATTCTTTACTGAAGACTTCCTCTTAGCTGGATTtttacatatacttcaa
-gtctgaccctcacaaattcaagttaaagtggcaagtcctaatcaatttaagagacaggta
-aagaaatctaggcttggacaatttaaggagtttgtccaaagtacacgattaagcaagtgg
-caaccatggttggattctaacccaggcctgtctagGGCAGAGATGTCCACCCTGGTGACc
-agtagccaaccacatgtggctgctgagcacttgaaatatggctagtgcaactgaggaact
-acattttaaattttattcaattgtaattaaatagcctcacgtggctagtcactaccatac
-tgaacagcacaTGACTGCAGTCAAAGCTCATGTGCTCTTACACCATGCTGTCTTGATAGC
-TGGCAGCTTTCAAAATTACTGAAAGTCAATTTGAATGGGGAAAGAGCATTTTCTAAGATA
-AAATTGTGTTTTGGAATTTATTTCCATTTGATTTCTTCCACCTCTCTAATCATGTTTTtg
-tgtgtgtgtgtgtgtgtgtgtgtgtgtgtACACACAGGTAATACATTCACATGGTTCAAA
-ATACAAAAGGTTCAAAAAAGTATACAAAggccaggtgcagtgtctcacgcctgtaatgcc
-agcactttgggaggccaagttgggcggatcacctgaggtcaggagttcaagaccagcctg
-gccaacatggtgaaaccccatctctactaaaaatacaaaaattagctgggcgtcatggcg
-ggcgcctgtagtcccagctacctgggaggttgaggtgggagaatcgcttgaacccgggag
-gcggaggctgcagcagctgagattgtgccactgcactccagccttggccacagagcaaga
-ccttgtctccaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatatata
-tatatatatatatatatatatGAGAACATTATTATACATTCTTCTCCACTCCTCTTAGAC
-ATGGCTCTGCATCTCACtttttcttttgagacagagtctcactctcacccaggctggagg
-gcaacggtgcgatctcggctcactgcaacctctgcctcccaagttcaagcgattatcttg
-ccttagcctccaagtagctgggattaaaggcgccgccgccacgcccagctaattttttgt
-atttccagtagagacagggtttcgccatgctggccaggctggtctcgaactcctgacctc
-aagtgacccacccgcctcagcctcccaaagtgctgggattacaggcatgagccactgcac
-ctggccctgcatcttgcgttttaaatttcacattattatattggagttggagatctaaca
-gaacatgaaactcttattctactggctgcaccacattccattaaatggatataccataac
-tgatttaaccagtttcctactgatagctattctcaatgttttgttattacaaataaggct
-acaagtaagtttggatatacattactctgtacagaggtaggatactcaaggggtaaattc
-tagaagGCAGTTAGTTCTTTTCTTAAAAAAGAGGAGGGCAACAGCAATTATTTGAGGATA
-TGTAAGTAAATGCCTTCACTACCAGATATGCACCCACTTGGATGTTGCCTATATGTATAA
-TTCTTATGCTATGTGCCTGTAGTTCCTTTGGAATAACTGGGTACTCTATAAAAATTCACT
-GTGCGTCACAATGATCCAATAATGGAAAACCATTTTACTTATGTTTTTACAACTGATAGG
-CACTCTATAGTTGCTCTGGCACATGTCACGGAACTGTCCTTGTACACATACACACCTATG
-TATAAACCCCACCTCTATACCCCATTTCTTAACATTGTTTCTAAGGGCCATGTAACTACT
-GTCATTTCAAACTATAAGATGAAATGGTGTATTTTTCCTTTTCATGGCTTGGCACTTTCA
-AGCCCCTATGCCAAAAATTTTCAGCCAGGAATGCTGAGATTCTAGCCTAGAAGGGGATAC
-CCTACTCAAGACAGTATCACTAAAGTATACCAAATGTCAAGCATGCTGAAACCTGGTTAA
-AAAAAAGTCACAAGGCCACCAGTACGGAGAAGAGAAGGTATACAAGAAATCAGACCACAA
-AGCTAAGAACAGTAATTGACTTCCACATTTTTTTAAAGAAAATTTACCAATGAACTGACC
-TGACATCATATTGGCGCTGCTGACGGGCGTACTGCCCCCTGGCATGCTAGATGAACCCAT
-TCGAGCCTGGTCCTTCACAACAGTGTCTAGAAAAGAGACAAAAAGGCTAGGTTCTGTTTT
-GCTTGAAAGATTAAACTAATGGTCTGGAAGCCTGAAAGCAGCCAGCTTCATTCTTTGCAA
-TTTATATATACTCTACATTATTCCCCAAAGAACTTAAGGTGGCAATTGCCTTCACCATGA
-ATTAGACAAGTGGTAAAAAGCAGAAATAGCTTTCCTATCAAACTGTGGTAAAAGCTAACC
-TTTCAATCAAATGGTAGAAAGATGAGGTAATTATTTATAGCAGAGCGAATTTAATGAAGC
-CCTGGTCCTGTTGAGGTTTAATGGAGACAAGACACTGTAACTCGGCAAAGACGGTAATAT
-ATTACCAGTGTGTCCACAGCCCAGTACCAAGTAGGCCAAAGCTATAGGTCCATGTAGCTT
-AGGGCTATGACCACATTCTCTATCCCAATCAGCCTATCTATCTGCTTCAGGTATTGGGCA
-AAAGTATAAATGATTCAGTACAAAACCATCACACCGAAGGAAAAATGTCATGTTGCAGCT
-AACATCACAGTGCAGATGGGGTGGGTCTCAGTGGTATTTTCACTTAGGATGGCACAGGTG
-GCTATACTCACAAATCTAAGTCAAGGTGTTCATACAATTTTAAGATTTGTAAGCCTCATT
-AGCTCTTTCCAACGAATGATTACTAGGGACAGGAAAGATACAGGGCTGTGTATTCTAATT
-CAACCATTCCAGACTGAGGCACTGAGAAGTGTCATCCTCACAGTATGAAAAGAGTTTATT
-TAGGAATGCTCTTGTGTCATGTATTCTGTTACAGAAGaattcttccagtaattctgcaat
-gtagttgccatcactatccccactggaagaatctgaggctcagtgtgggtgaattaactt
-TGCAGCAAGCTGACAGGAGCTGGGATTACGACTCTGTTCTATAGGACTCTGCGCCTGCAC
-AAACTCTGTGGGCTAGATATCTGGACTCACAGAAATAGGGGTGCTCCATTGCCTCTCTTG
-CAGTAAGCCGTGACTGGTGGTCATATCGCAGCAGTTTGTCCAGGAAATCCAAGGCCTCAG
-GGCTGACAAGGTGCTGATTTTCACTGTGGACAAAGCGTTCCCATCGCTTTCGAGAGTGTC
-TGCAGGACCAAAAGAGGGCATGAGAAATGGGCCACGTGGGCACAGAAGCCCAACATTTCA
-TTCCTACATTTTTCTTAGTGGCTAACAGCCCAGACAAAAGCAAAGAGGGATCCAAACTCA
-AGAGGGTAGTCTTGCACCGCTCTGCCACTGAGTGGGACAACAAAGCTAACTGGAGACTGG
-AAACAACATAGCTAGAGTGAAAAAAGACATCTGAGTCCTCTCAATTTTAAGAAACATAAT
-TCAGGTTACTTGACAGGACGTGACCGCTTCTGTGTAGCAAGGAGGGTCAGGTGGCTGAGC
-TCACCAGGCCTATTTCCCATCCCCACACATATTCCTGGCATCTCTGCCAATTGGCCAGCA
-AAAGCCTTTGCATCAGGAAAGTCCATCTCCTCCTGTTGAGTGGTTAAGTGTATAAGTACT
-ATATCTAGTCACTACTGTTAAGAGTCGGTTGTCTGCATATAGCCtttttttttttttttt
-tggagacagggtctcactctgttgcccagactggagcgcagccacatgttcattgctctc
-tgtagcattccctcctgggctcaagggaagctcctgcctcagcttcctagtagtctggac
-tactgccacacatcaccatgcatggagtcgagggtctcattatgttgtccaggctggtct
-ccaactcctgggctcaagtgatcctcctaaagttctgggattacagatatgagccaccgt
-gcccagccTGCACATCAGTCTTAAAGCATGCATTTTCTACTTCAATTTCTTTCTCTTGGA
-GAGAGGTTTTTCACTTAAAGAAGCAAGGTAAATTTTGATTTTTGCCTCAACTGTAACCCT
-TCTACTAGAATCTACATTCATTTTGTAGGAATCCTCTAGCTATAACCCCTCCATCAGACT
-CCTGTAAGTTAATTTGAATAAAGGGCCATTCAATCCAATGCCTTTATCAGAGGCCTGCTC
-AATGCAGCATCCTGTGGCACTGGACCACTGACATCCTGACAGTGCTGGCAAAGAAAACAT
-AACTATTTTGAAGATCCTAAGTGCCAGTTCACTCTCAAAGTGCTTAAGCCACAGATGCAC
-ATATTTTGTTTCATGACTTACCTGCCCAAGATATCATTGAAACGTGGATCTAATTCAATG
-TTGTATTTGTCAATATAGTCATATAAATCTTCTGTCCCCAGAACCTTGGCTATCCTCACC
-AACTAGTATTAAAGAAAGACAAAAACCCATATCACAAGCATATTATATTAACAAATCAAC
-AATTAACAATGATTGAATTTACATAAACGGGTCATCATGTCTACAGGTATGAATGCTACC
-TCCTAACAGTTTAGACTTCAACTCAATGTGATAGTGTTAGAAAAAGCAAACTACTTTATA
-AACTGGTTTCTTCCTCTTGAAATGtcaccctggtgaacccttatttttctcccctcaaaa
-cccaattgaagatgtcacttcttttgggaagctcccattgcacactcaaactactcacca
-ctactgccttttgtgccttgtccacatttctactctgaagttatgactgtaacctatttt
-gttgtatgtttgactcccttacaagatcagctatgaactatctgaggggaagaaaactat
-tctttcttttttctgtattcctcagtactgcatgcacttgatacagagTTATTGACTTTA
-ATGGAATTCAGGTTGTATTCTTTGACTCATTAAAATTGGACATGGTGCTCAAAGGGAACA
-AGACAATGGTACCTTCCACAAGGTCCTAGAATCATTCCAGGTTCTTGTGAATGAAAGAGC
-CCTTTGATCTTCAAGGGGGAAGTGGAGTTAGTTTAAGAAACATCTGTAACTCAACCCATA
-TAAAGAGCCAAAAGGATCACAGAAATACCACATATGGGCTCACATATTGGAGAAAACACC
-ATATTGGAGATAAGGGTTTATTAGGAGAATTCTAAGGTAATGTCCTATTTTAAAAATCTG
-GATGACAATTTATATGTATTCTTCACAATAAAATAAGCAATGCAAATGACAAAGACTAGG
-GGGGAATGTCTGATTTCAAAAGGCTAAGCTGGTAGCTCCCGAAACATCAATCTAAGGATC
-AATATCGGGGTGGCTGAATAAACAGTGAACTGAAAGTTACAGGCAGTGCTGGCTATCATT
-GCATTAGGCCAGTACATTTTTCAATGGGTATAACATATATTACCTGATCATAATTGTCAT
-GTCCATGGAAAAATGGCTCCTTCCGAAAGATCATACTTGCCAGCATACAACCCAAACTCC
-ACATATCCAAACTATAATCGTACATCTGCATAAAAGTAAACTCACTGTTATTATCTGTGA
-ATCCTCAGGCTTGTCACTTCaaaataaaaaattaatttttaaaattaaaaaaaaatCACT
-CCACTGACTCAAAATCAAAACACTAATAACATCTTCATATAtttctttttagtctttctt
-ttttttttttttggagacagagtctcactctgctgcccatgctggagtgcagtggcgcaa
-tcttggctcaccacaacctccgcctcccgggttcaagcaattctcctgcctcagcctcct
-gactagctgggactacaggcgcgtgccaccatgcctggctaattttgtatttttagtaga
-gacggggtttcactacgttggccagtggtctcaaactcctgacctcatgatctgctcgcc
-tcaggttcccaaagtgctaggattacaggcatgacccaccgtgcctggctAGttttttct
-tttttttttttttttagttttttttttagttttttcttttATGCATCTTTCACTCGGTTT
-TAAAACAAtttttactttttttttttttttttgagacagagtcttgctctgtcgcccagg
-ctgcaggggtgtgatcttggctcattgcaactcagcttcccaggttcaagcaattctctg
-cctcagcctcctgagtagctgggattacaagcgcccaccaccgcgcctggctaatttttt
-tgtatttttagtagagacagggtttcaccatcttggccaggctggtcttgagctcctgac
-cttgtgatccacttgccttggcctttccaagtgctgggattataggcgtgagccactgtg
-cctggctCttttttttttttttttaaagacacagggtcttgctctgttgcccaggctgga
-gtgtagtggcgtgatcatagctcactgcagcctccaactcctgggcttaggcctcctgag
-taggtaggattacaggcatacaccactatgctcagctaatATACATACTATTTTGAATTG
-TTTTCTTCACTTACATGAAAAAAAAAAAAAAAAAACCTCCAAATTGTTAGCCCATGGAGA
-CCATCTAATGTGTATCATTAGTATTTTATTACATAAATGTTTCAGAATTCAATCTTTAAT
-TTTCCTATAATAGGACAGTGTTCTGTTTTTCACAATTATTAGTAATACTGTAAAAACTAT
-TTTTATGCATAAAATGCTTTTTGAACTCAGGGCTATAGCCTTAAGACCCCAAGAAAGAAA
-TTCCTACAAGAACAAAAAGTCTGAAACTTTTAAAATCAACTGATAATAACCTGGAAAGAC
-TGGGCATAAAAGATACTCCCAAGAAAACTTCAGATTTTTAAACACTTGGCAAATCTATTA
-TTAATTTGGTTCCTTTCTCCTTTTTCTGTGAGGAGAAAGAAGGCTTTTTGGGGGAGCTGG
-GGAGAAGACCTTTTTATTTAGTATACAATTCAGAAGAACAAGAAAACATTCTTGAATTTA
-CTCTGAAGATTGGTTAAACTTAGTTACAGGATgggcatggtggctcatgcctgtaatctc
-agcactttggggagccaaggtgtgaggatgggttgtgcccaggagtttgagatcagcctg
-ggcaacatagtgagactttctctctacacacaaaaaaattaaaaattagctgggtgtggt
-agtgcacgcctgtagtcccagctactcaggaggctaagctggaaggatcacttgagccca
-gaagttcggggctgcagtcagctatgatcatggcattgcactccagcctgggcaacagag
-caaaaccctgcctcagaaaacaaacaaaaggccgggcgtggtggctcacgagggcaggag
-atcgagaccatcctggctaacacagtgaaacccagtctctactaaaaatacaagaaaaat
-tagctggggtggtggtgggtgcctgtagtcccagctacttgggaggctgaggcaggagaa
-aggtgtgaacctgggaggcggagcttgcagtgagccgagatcatgccactgcactgcagc
-ctgggcgacagagtgagactccgtctcaaaacaaaaacaaaaacaaaaacaaaaCAGCTT
-ACAATTCAAAACAGTTCTGGAACTGCTGATTATAGAACATATCTTTGGCTACTTTCCCTC
-AAGTCAGGATCAAATGCAAACCTATTCATATTCTACCGACATTATGACAATAAAAGTAAT
-GTAAGTCATGGTACATGAATTAAGGTGATTTATATTTTACATTTCATATAAAAAGGACAG
-CTGTGAATGTGCATTAAGTGGCCTACCTAAATGCACAAAATGATACTTTTTTTTTTTTGG
-TAAATTATGTGCGAAATAAACACAGGATCAAAACTGTGCCTGCCCTTCTGTTCTTACCTG
-ATAGTCTACAAGTAGCTCAGGACCTTTGAAGTATCGGGAAGCAACTCGGACATTATATTC
-TTGGCCAGGATGATAAAACTCAGCCAAACCCCAGTCTATTAGTCGTAGCTGAAAAAGAAT
-AAACCATGAGCAATCTTATCTTTCTCTAAGCTACCCACACTGTGCCATTAGCATACTCTT
-GAtaaaatataccagacacgtcactctttactgaaacccctccactgactacttatagcc
-tttagaatgaaaataaaacttcttagcttgacaaacctctttctccatgattttgttccT
-GGAAGACACAATCTCACCTGTGCTTTTACAAATTTCTTAAACTGCTCAATGACTAAAATG
-TCCCTACTACCCAGCCTATAATCCTATTGGTAAGCATTTCCTTAACTTTTGGAATATTTA
-AGTCAGCTTCTCAATGAAGTCTGATCATTGCCTTCAGCCCCCTGAATTTTAGATATATTT
-CTTTAACAGAACCTAAACTCTTTATGTTTTCTACCTTtctttttcaatatggacgacaag
-ctccttaggggtagggactgttttattcacctttgtaattttcagaattcaacataatgc
-ctggtatacaggagaaaaatgaataaatatttgctggatagatgaaATAACAGAAAAGTC
-ATACAATACAGCTTTTACCAAAATGCATCCTAAACATGGAAAAAGGGGTAAGAGGCAAGC
-TTATCTGCCCACTGTGCATAGCATGACCATGATCTGAAGTGCCAGCAGTAGGCCCTGAGG
-AAAAACATCGGACTGCTCTGGCACTAAGTTTACTGCCTGTATCTcaaaactaaacctttg
-attactccctgcaaaagcacctccactcagtctccccctgttcggttaaaggtgatactc
-atcctgtcatacaagccaaaacttaagattcaccctggattcttgattccctcagacctc
-acatttaatctgtcaaaaaattctgaaggttctatcatattgtgaccattatcatcacct
-ccactgccactgccccgatccaagccaccaccacctcttgtttgatatattgccatagcc
-ccttctcctaactggtctcactgctttcactcttgccctctagtctaAACAGtttaataa
-atactaaatagtttaatagttattttaaaaataattaaatatttaaaaataaatataaaC
-AGCTTTTTAAAAGGATTGTTCAGGTTGCTATGGAGAGattatagattcacaggaaattgc
-caaagtagtagagattctctgcaccctttacccagtttcccctaatagtaacatcttaca
-taactacagtacaatatcaaaatcaagaaactgacactggcacaattcagaaagatctta
-ttcaggtttcaccagttttacatgcacgcatgtgtttgtgtgtgtgtttctatgcaattt
-catcacatatgtaagttgatataatctcctcaacaagatatagaactgttccatcaccac
-acacatgtcctgtgtgttagcccaacccctggcaacccctctgctctttatctctatcat
-tttgagaatgctacaaaaatggagtcattggcatataactttttttgagactgccttttt
-tcactaagcatgagatccatccaagttgttgcatgtgtcatacttctttcctttttattg
-ctgagaaatactacttcataataatattatatggtatggatatgccagtttgtttaacca
-ttccctcattgaagggcacttttccccatttttttttttttttttttttgagacgcagtc
-tcgctctgtcacccaggctggagcacagtggcacgatctcggctcactgcaacctccgcc
-tccggggttcaagcaattctcctgcctcagcctcctgagtagctgggattacaggtgcat
-gccaccaggcccggctaatttttgtatttttttagtagagacagggtttcaccatgttgg
-ccaggctggtcttgaactcctgaactcgtcatctgcctgccttggcctcccaaaatgatt
-acaggtgtgagccactgcacccagcttttccccccaattttaagctattacaaatatagt
-tgcattcatatataggcttttgtgtggacctaagattttgttgctctgagataaatgcca
-ctgcaggattgtatggtaagcatatgtttagcttttcaagaaaccaaccaactataaaac
-aatagttaagcattttccaaaatgccaaactttgcattcctaccagcaatgtatgagaga
-tcaagtttcttcacatttttgccagcacttggtaccatcactattttttattttagctgt
-tctaataaatgtgtagtTAActtttaaatttcaagtgagaacatgctaaagcttagaata
-tgcaaaagctctctatcttcagagaaaaggcctaacaatgaccaataaggttttacatga
-tttggttttacctctttgatttcatttcctccttctttccccgcattcattctgtcccag
-ctttatccttgctgctgctcttccaacatgccaaacatatccttacctgaagggcttttg
-tacttgctatttactctgccttgggacatgtttcttcataagactgcatggctgggtccc
-tcccagtgctctctaaaatgtcacctttccaatgaaaccttcccttataactggtttaaa
-actgcaaataccctcttgccattccctattcgttttttcttctacatcaaaataactttc
-tatcccaccagcctccctaaatgtagctcctaaaagacaagcatttattgtatgttgagt
-tcacttacatatccccagccctagggtggtgcctctgacatggtgtgtgtctaaaagtaa
-ttcagttgcataaataaatCACCTGCCTCCCCAGAGACCACAACAGGCAAGTCATCACAG
-CTTGTCACCTTAAAAAACTGAAATGCTAAAGCATGTGGCCATTACAGCTCTCATGTAAAA
-GCATTTGCAGACAACAGGGCCCTTATGACATCCAATAAACAGAAACAGCATTTTCTGTAT
-ATCTCGTCCACTTAACTGTGCAcatttaattctcacgaatacctagtcgcctgcagggct
-attattacccacactgtacacgtaagaaaaagaaggcaaatggagagaaagtagtttCTC
-AGGAAACCAGTTACTCAATAAATAAGGCGAGAAGCCACGTTTCCGGGCTTAGAAGATGAA
-CATTTTGCCCACTTTACTCATGTTTCCTTCTTGGGAATATTCTTAGGAATATAAATAATG
-GTTCAAACATGTTGACTTGTAAATTCGTAcattcattcaccaaatatttctcaactgccg
-aataggtactagggcctgtgacaacacaagggataaagtgttgaaGATGGGCAATTAGCT
-ACATCATGTAGATAAATAACACTTGTCAGCCTATCACTTTACCTTTCTGTGCTCATGATC
-AATCATGACATTATGGGGCTTGACATCTCTGTGCATAATTCCCATGCTGTGACAATAATC
-CAGGGCCTGTGGGATGAACGGGTCAGAAAGGAGTTAGCCTGAATAATACGTAAGAGTCCT
-TTACTTTTCCCTCCATGTAAATTTTCCTTTTAGCCTCACAATACCCCTGGGATTCAAGCT
-GAGGACACAGTCACTTCCACAGCAATGCTTCAGAGACTTGTTCATGATCTCACAGTCAAG
-CAAACTCAGCTCTCTGAGCTTAGAGATCTTTTTCTGACACAGTTGTTTCAACATGTTTTC
-TGTCCTAAAAGACCCAAAGTATACCCAAATTGCACCACTTCAAATTTTTCTGTCTTGTCC
-AGATCCTAGATTATTTCCACAGACCCCTCAAAGAAAGAAAACAGATCTTTACTACAAACC
-TCTTATTCTAAGAACAGTAATTCTTTAGCCATTAAGAGTCTGTAAcagaggttggcagac
-cacaggccaaatttggcctgatgtctgcttttgtaaataatgttttattgcaacatagcc
-atgcctatttgtttgcatattgtttatggttgctcttgtgcaacaacagcagacttgaat
-agtgtgacaaacactacatggcccacaaagcctaaaatatttactatttggccctttaaa
-gaagtttgccaatgcctgATTTAGGTCATCAAATCCAATCTGAAATGTTTCCAACCTCAA
-ACTAAAGGGAACTGAGTAGTATAATCTTTGGGGTTTGTTAATCCCAGCCTTTCAGTCAGC
-CGACGTTGTTGGCCAAATTCTTGTCCTTCCTGAAGGGCAACTTGGGTTCCTACAGTTCCC
-AGGGCTGGGCAATCATATCTGTAACTTTCTAAAGCCTTGCTTGCCACAAACTGCATGAGC
-CAATGGAAAGATCAAGTATCTCTGCTGGCACAATCTCCTCAGGGGATTTCTAAGGCTCCA
-ACAGCAGGCTTTATGTCAACTCTTGTTTAGTAAGAAAGCTTAGCCAACTTTTAGCAATTC
-TCTCTTCTAGGAAGCTGATCTTGTGGCTACTGGGAACAAGATATTTGGTGACCCCACTTT
-AGAAATGTAAGTAAATTTTCAATTAGCATCTATAAGCAGAAATTTACACAATCCTTAGGA
-CAATTACCCTTTGAGAACTGAGTTAAAGTTTACTGTTTTATTTGCTGACTCTTAAGTGAG
-ATAAAGTATACCAGAAGCTAGCACGTCAGGTGTTTTCACGAGTTTTGAAAATTTAATATT
-AACTTACATAGGGGCCACAGAAATTACAAATATTTGTTAAGGGGTCAGTCCCAGCTATCT
-TACAAATACCCTTTTTCAAATTGTTCTAAATTATACTCCCACTAGACCCCATTCCATAAC
-CCTTAGCACAAGGGTTCTGATACTATTATTATTAAtttttatttatttatgtatttagag
-acagggtcttactctgtgctactgcactccagcctgtgcaacaatcatagctcactgctg
-cctcaaattcctgagatcctcctgtcacagcctcccaagtagctggaattacaagcataa
-gccaccatacccagctaatttttaaattttttgtagagacagggtctcactatgttgctc
-aggctggtcttgatctcctggcctcaagcaatcctcctgccttggcctcccaagtagctg
-ggacttacaggtgcacaccaccatgcccagGTAATTAAACAAtttttttttgtagagatg
-gggatctcactatgtcacccaggctggtcttttgatctcctggcctcaagcaatcctcct
-gcctcagccttccaaagtgctgggattacaggtatgaTACTATTAACTTATTAAAAACTT
-ATATAGAGGTCCCTTCTTTCAACATACTTTACAAAGTTAATCTGCTGGCTTTTCTACCAT
-CAATTGACTATTTAACAAAAAGAAGACCAATTTAAAAAATATTTAGTATTCAAGGTTCAC
-TTACCTTCAGAATCTCATACATGTAAAATCGAATATCATAGTCTGTTAACGTCTGGTACA
-ATTGCTGTTAAAGACAAATGTTTGAGCCATGAAATAATGCTGACAGAAAGGCATTTTTCA
-CCCTCACTCACAGTAATTCAAACCAAGACTTGGCTCATTTACCGTTGTTCCAAGATCTGT
-CCATTCACTGCCCTCTATTTCTCCAACATTACATTAACTTTAAAGAGATACTTTGGGTCT
-TCAACTCTTAAAAATGAAGAATTACTTAAACATATATTGCGGAAGCTATAATCCACTGTC
-AGAAACATACTGATCTAGATACGTTAATATGCACTGACACCCACCTATAATTTAGTTTGC
-TTTTCATGTATCTTCAGACCTTCTCAAAAGAGGCATTTTGGCAAATATACTGCCTCCTTA
-GTAGGGAACTAACTCATCTTTGCCTTACATAGTTGGCCCTGCAGATCACCAGTGGGTATG
-CAGATGGCATGATACCAAACCTGTTGAGTCAATTTAACAAAACTATTCTTGTTCCAATTG
-GAAAGTAAACTCTGAACAACTGTTATGTATCCTTTCCAGTTTCCAAAGAGTTGCAGAATG
-TTTTTTACATGGACATATCttttttttttttttttttttttgagacagggtcctcactct
-gctgcccaggctggagtgccgtgctgcaatcataactcactgcaacctcaaactcctggg
-ctcaagcgatcctcctacctcagcttccccagtagctaggactacaggcgaaagccacca
-tgcccagcCACAGGTACGTCTCTTTAATGGTTAGCAACGTCTTCTGACAAAGTTTTTCTT
-GAAATTATCATTCTGACTCTAAAGCAGTTCCTCTTCCTTTCTCCCTATCTCTGCAACAGA
-ATTCACTAATTTATTAATATATAACATTCTGGATACTGGACTGGTGGAAAGGCAAATCGA
-AGATTTTTACTTTTACTCCAAAAGAGTAGCTATATTCTTCTGTAAAATTGGAACTGTGTG
-AAATAAGTAGGCCACTGGATAGACTGGAATTCTGAGATATCTCTTATAGAGGTTTGTGTT
-ATGGCAGAATTTGACATTATCCTTCCTCGATCCCTGCCTTTTAAGATCTATAGCCCACAG
-TTTATGAGGAATCCTAAGAAATAAGCAGTCCCTACTTTTATACATACAATATATTTCTTC
-CTGAACACTATTGTTTAAAGCGAATTGCCATATGGCCAGATCCTAAGTGAACGTGTGTTA
-CTGCCTTCATTAGGTTGGACATCAGCAGAAACTGTCAACTAAGTAGTGAGAAGTCAATGT
-GTTGGTCATTAAAAAGAACATTAAACAAATGGGCAAAATATCAAGATGCAGAAAGTGGGC
-ACTGCTTATATAGGAGTTCTTCTATCTTAAAATTTGCACTGTAAGGATGAAAAGCTTTTT
-AAAAACAAATGCGAAGCAAGCTCTTCTAACAGCATCATCCCCAAAGGCTATGTGGTCTAA
-AAACCCACTAGCCCGAAACAGTTGGTTATATATTATACCTTGAAGTCTGTGTTGTTTACG
-TGTTCAAAAACCAAGGCGGGGGTTCGTGACTAGGGGAAAAGAACAAAAACAAAAACACAC
-ATTAGCAATAGCCCTGACAGCTTTAATGGGGACAATGTTTGCGGATGCTGCGTGGTGAAA
-TTTGGCAGTCCTCGCCTCAGTAGTAAGAAACCCTCTATTGCTACAAGCCCTCCCCGCTCT
-GATCATCACCGCACTTAGGTCATTTTTGGGATGGATTTCAAACAGAAGACATGGAGCTGA
-AGTCTCACCAGGCTCTAGGCAGCCCGACAATGCGCCCATCGCCCATCGGCATCGGACCTG
-AGTTTGCAAAATGGATTAACACATTTCAGTTTCCAGTGCTATCAGTCTCTTAGCCTAGAA
-GAATAAGAAATAGTCTGTGGGTGGAGGTCTCTTTGAAAGAAAGACCCAAGCTAGTTAAAT
-GGTATATCTGATTAAGCACTTTCAAAGCAGGACTTAATGATGAGGGTTGGGGGAGGGAAC
-AAAAAGAGGCCAGTTGTGCTCCAGGTCAAACACCATCTCAGCTCTGGCGGGCCTTGCTAA
-CACCTACTATACTCACCACAGGGTCTTTTACAATGTCTGCCAGTGTGATGATGTTGGGAC
-CTCCTCTCAAATTCTCCAAAATCTTTATTTCACGCTTAATTTTCTTCTTTTTTACTGGCT
-GAAAGGGGAAAAGTACATCAGCaaaaaaaaaaaaaaaaaattttttCAGAGTATTTCAAC
-ACGTAGTGTAATACATAAATGATAAATGGCTTACTtatgagcacaccttgaaggaagaaa
-atgtgtcacattcgtctctgaatccttctcctagcactgtgccaggtattctgcaggtac
-ttacaaatgttgaattgaaagaaAAAAAGATTTCTATTCCAAAGACCAGACACTTCTGCA
-GAATTAGCATTTCAATCATCAGTCTTGATGTTAATGTTTTAAAACATGTTAAACATGTTA
-ATGTCTTAAAACCTTACAAAGTAGCAATTTAAATCGTTAGTAATACTAAAGTATATCAAA
-CTTTTTATCAATTAGGATGAAACATGGGCCCTTTCCATTTCTTCCTCTAATTAGGGCCAA
-CAACAAGGATGGCCAAAACATCTTTGTgtagcacaaccctgagggtaaagggtgagtctt
-ggagtcacaatgcccaatgtgaaacctacctttactacctgctggctgttaatggcaaac
-tacataacctctctaagcctttcattaagtgtaaaatgagtaacaagagtacccatctca
-taagattgttgcaagaatcaaatgaggtaTTCGAAAGATTTCGGAATATGGCTGAAACAT
-AACATAATAATAACTGTCTAGCCTGATCACCAATGCTCtttttttttttttttttttttt
-gagacagagtcttgctctgtcacccaggctggagtgcagtggtgcaatcttggctcactg
-caacctccgcctcctgggttcacgccattctcttgcctcagcctcccgagtagctgggac
-tacaggcacccgccaccaggccaggctaatttttgtatttttagtagagacggggtttca
-ccgtgttagccaggatggtctcgatctcctgacctcgtgatctgcctgcctcggcctccc
-aaagtgcCAATACTCTTATAAATGAACCCCTCCATTCTAAAGAGTATTCTGCAGAGCATA
-TCTTAAACATTCCTTTGTCCTTACCCATTCTTTCCACATCTGTTCTAGTATGGAATCCTT
-TTCATTTTTTTCTGAGGAGGGCCTTGGTCCCACTGCACCTCCTTTATAAAGCCttttttt
-ttttttgagacagagtcttgctctgtcgcccaggctggagtgtagtagcatgatctcagc
-tcactgcaacttccgcctcccgggttcaagcaattctcctgcctcagcctcccgagtagc
-tgggattacaggcgccagccaccatgcccagctaatttttgtatttttagtagagacagg
-gtttcatcatgttggtcaggatcgtctcgaactcctgacctcatgatccgcctgccttgg
-ccttccaaagtgctgggattataggcatgagccactgtgcctggGCTTATATTATAAAGC
-CTTCTCCTGAATAGTCTAAAAcagtgctggcccaaaggaaatataatacaaaccacatgt
-gtaattttaaatgtgttagtagccacatcaagaaaattttaaaaaggacaaaattaatgt
-actttattaatctaaaatcttaacatataaatcaatataaaaattattaatctattttac
-ctttttttgtattaaacccttgaaatctaatgtattttactcttacagcatatctcaatt
-cagcccagccatatttcaagtgcttaacagcctcatgtggcctgcgtgcctgctgtactg
-gactgtgcagGTCTTTTCCTAGGGTGTTGGTCACCTCAGACTAGATGCACTGCATATAAC
-TCTTAGAAGTTAAGTACATCTCATCTCTTCATTAACAAGATTGgtggttactaaagtttg
-atgaccaacaatcacctggatttttttaatatacagactcacagaacccaccaagattca
-ctaaatcaaaatcttgagagggaaacgggggatttatttttagatactttccaggctgat
-GATCCAGGTCCAGAAACTACCAAATAATACTATAAATTCTTTTAACTTTGTCTTAAGCCT
-CAAGCACATGATAGCAGAAAGCAAGCAGATTTTGGAAACATTGACAGTTCTCAAAACCTG
-GCTTTGTGGTTGTGCAGTGTTCAGAAAAGCATTTAAATGTTTCTCACTGCTGAAAGGGAC
-TATACTCGCCTGTTAGTGATTTACATACCACAGTTAGAACAGGTCCAATGCAAAGTGGTA
-CCCAATAAACAGAAGCTATTTTACTAATGACTTCCATGTAGTCCATTGAATTCAACCCAC
-GACCTCTTACCCAATACAATATCTACCTAAGAAACAAGATAATATAAGTCTTCTCTTCCT
-GCTTCAACTATTCAGATCTTTATAAACTGTTATATTATCTGGGAGATCTTTCCACCCTGC
-AGAGACTAACCCAACAACTTACCTCCTGTTTTCCATTAACCCAACTGCTGGTTTTTTAGT
-GGAAAAAAAAAGCTTCTGGTTGACAAAACTACTCTACAGAATGCTTCAAATCTATAAACT
-TAAAAAGCTGGTTTGTGACAGACCAGGCAGCTGACTCAGGCCCGAATTTAATGCGATCAA
-TGCAACTTTTGTCTTATTAAATAGGGGAGATTAAAAATTTTAAATATGGTTTACAAAGGA
-AATTCATCTATACTTACACCACCTACCCACAGTTACAGTAAAATATACAATACAGTTAGA
-AAGACTGAGCTGAAAAAAATCTTTCTAAATCACCCTTCATTCAAAATCATCAAGGGCTCA
-CAATTACCTAGAAGAGATAGTCATATAATTTTAAGACTGCAAGGAAATGCAGAGATTATT
-TTTTCCAGGCCTTCGCCAACTTAATCTCTCTTTCCAAGTTCAACTCCTATGTATGGTCAC
-ATAACATCTTTCACATGAAATATTTCTCTCACTTTTCCCTCCTCCTCTTTTCTTATCTTG
-GTGCACTCTACAGCCTGCTTCCCTTCACCACTTCCACCCAACACCTATCCAAATCCTCCT
-CCCATTCAGCCTGAAGACAGCTCCTGGGAGCTTTTCCTAACTACTACCCTCTTCTGAACT
-GTAGACCCACTATGCATGCTTTTCATGTGGCTCTAAATAATAATATATCACCTCATTCTA
-TCATATACCTTTCCATATGAATATCACCATACAATCACAAAGAACTCCAGTCTCCAACGT
-ATGTATATATACACACAATTTTGTGTTTGATCCtttttgttttttgagacagggtctcat
-tctcatcgcccaggctggagtgcagtggtttgatcatagatccgtgcaaccttcaacttc
-caggctcaagcgatcctcccactttagcccctcgaggacctgcgactaaaggcacatgcc
-accatgctcagccaaCATTCTTTTTAATAGATGGATAAACATGTCCTAGGTTAAAAGGAC
-TACTATGGCTAGTCACCCACATGTTTTGATTTCCAACCTAGTTCTCTTTCTACATATTTC
-AAGACAGATATAAATACTTAAACTCTCTGGTTCTCAAAGGGCATGTgaagcaccccagca
-atgcacaggaatactgtggaacactttacatttttgaggaagacacatcaacccatcgtt
-gaatctgccagacactgggtgcactgccagcttgaggtggttcgtagtttcaacattaga
-ttgtgttacactcctcgtgatggattgtgttatactcctcgcgatggcatatttttgtga
-agctgggtttgcagtagttgctgtggtaaaaagcaagtactgcacaaaaatcaatgacag
-gaaatgagggtggtggtgtccaaccaatgacaacatttgaaaagctatgcagcaacaggt
-ctacataacccaacagtaacaaattatagttatataagaacaaatttaacttttttcttt
-taatttatgtgaataactttttaaatggctaccaagttgctaagatataaatacttagcg
-ggcaggcgcagtggctcacgcctgtaatcccagcactttgggaggccgaggcgggcggat
-cacctgaggtcaggagtttgagaccagcctgaccaatatggtgaaaccccgtctctatta
-aaattacaaaaattagccgggcattgctggcgtgcatctgtagtcccagctacttgggag
-gctaaggcaggagaatcgcttgaacccaggaggcggaggttgcagtgagccgagatcgcg
-ccactgcactccagcctgggcgacagagcgagactccttctcaaaacaaaaacaaaaaca
-ataaaaaaaacaaaacttacttagctatttggaccttgctacttaatacagagaactatg
-aggtatttcttgacttaggagtaccgtgaaaaattaaagacagtataagtgttataaatt
-gagaaagtttggaaacttctACTTTTCAGTGTCAAATATGAAAAAGTTCCTGTGGTAAGG
-AACTATATGCTAAGTTCCCAATATATGACAGTGCACAGCATAGTTATAACTAAATTAAAA
-GTTGTATATTGGTCTCCCAGAGGCCAAATCtggcctgtgcattgtttttttaaaatcttg
-agccaacacttaaaagtcaggaaaattcatatacaaatataaatttctggcttttatttg
-caaaacagagtatcaagcaacaatggacttgcattactgcagggcaatcatcagcttcag
-ctgagaagcagctaactccttttgaagaggcatgtgtttcccagtttgtttcagtcccta
-ccactcacatcacCTAAGCAAGGGCAATTACACCCGACTAGCTGCACTAATATCATCTGT
-CTGTCCCCCTCGAGTCCTGTGACTCCTCATCTTTACAAAGTAGAGGCAATGATTTATTTA
-TTGAAAACAAAAGCCTCATTATATAATGAAAAGTAAAGGAAATAAGTATTAGgcaataac
-tgggagagaagagactgtacctttgctcccttactctgccacaacctagctatatgagtc
-aactcaaatcacttctcttgcttcagtttcccgatctgtcaaataagcagaacttgttct
-attgagttcataggatACAATAAAATTTTATTTATTTGCTTTGGCACCAAAAACCTTTTA
-AATGCTGTTTTAAAAAAGTCTTCAAAACTACTTTTAAAAATCTATATTCCAAATACCTCT
-GAAATTATCTCTTGTACTCACCTTGAGAATTTTAACAACAACTTTTTCATTATTTGTGAT
-GTTGATGGCTTCAAATACTTCACTGTATTTACCTCGGCCTAATTTTCGAACCAGCTGGTA
-GTCATCTTGATTTCTGTGGACACAAACAAAATGACTTATAAACGGTCAAATTATCAGCAT
-CAATTCAAATTACAGGAATCTATTACCAGCAGCTGTAATAGAAATAAGAAGTATTTCAAA
-CAATTCCCAAATAGGtttttttttttttttttttttttttggagatggagtctcactctg
-tcgcccaggctagagtgcagtggcgcgatctctgctgactgccagctccacctcccgggt
-tcacaccattctcctgcctcagcctcccgagcagctgggaccacaggcgcctgccaccat
-gcccggctaattttttgaatttttagtagagacggcgggtcctcaccgtgttaaccagga
-tggtctcgatctcctgacctcgtgattcgtccgcctcggcctcccaaagtgctgggatta
-caggcgtgagccaccgcgcctggccCATTGtattttttttttttttaaattaGGCCAATT
-AAAATACGTGTGTTTCAAATCCTAGAATTAGAAAAACTTATACCTTTCAATTATTCTTTC
-TAATCCCAAACTGTTTACATCTTTATTGGCACATGACATGGAGCTGGCTTGTATTAAGGT
-TTGTTCTAAATACGTTTGTCTCCAACAAGAGACAGCTTTCCCCAAGAGAATAAttttttt
-ttttttttttttttttgagacggagtcttgctctgtcgcccaggctggagtgcagtggcg
-tgatctcggctcgctgcaagccccgcctcccaggttcacgccattctcctgcctcagcct
-cccctagtagctgggactacaggcgcccaccaccacgcccggctaatttttttgtatttt
-tagtaaagacggggtttcaccgtgttagccaggatggtctcgatctcctgaccttgtgat
-ccgcccgccttggcctcccaaagtgctgggattacaggcgtgagccaccgcacccggccG
-GAGAATAATTTTTATATATTCTTGTCCCTTAGTGCTTGGTCCAGTGTTGGCACTTAGCAG
-GAACTAAAAACATTTTGCAAGACTGTTTCAATCTAGCCACACTTTGGCAGCAGCTGATTT
-TTAACAGGCCTCTTTGAAGGTAAATGGCTTTCAAATGTATAGGCTTAATCTATTTGCCCT
-CCAGGGCAAGCTCTGGGGATAGTCCATGCGTAGTACGAAGCACATTATAGATTGTAAACT
-ATAATCAGCGATCCCCTCCTCTACATATACCCATATTCTGTGACCAATAAGCAACATCAG
-AGGTAATAAACAGAGGTAGAATAAGGGAAATGCCAACATTTTCCTCCTGCCCCTGCCTGC
-TTCCAATGTAGAGCGCTTTGCTCTGAAGAATGACAAACACAGTTCCAATAAGGCCTAAAT
-TCTATCCTACTGGATAGAATCCTCTGGACCTACTAAGTATCCAATATGAACCAAATCAAC
-CACCTCAACCATTCATTTTCCTCAAGTAGCTAAAAAGAAAGTGAATGAAAAGACAAAAGG
-TACTAAAAACAATGGACAACATAATAATCATGGCAGGTGTAGGGGAAGAATGCTCCTACT
-TCTGGTTGAGTTCTCTTCCTATGGGAGGGCATACAAAACAAATGCCAGCAAGCAAACAGA
-ACCATGCCAAAAGCCCAAAAGGGCTCTTTAGTGCCATTTAAGCAGAACCAAGTGCAAAGC
-ACTCAATTTGAAGATAGCGGCTGAAATTCCTATAGTAAACACAGTGTCACCTAGAGTCCA
-AAGCCTGTGACATAAGAGGAGAATTGTTAGATTATCAGTAATAACAACATTTATTGGTAC
-TAAACCACACTGGCATTTAATGGTGTCTTTACAGCATACAGTGCCTCTGTATTCAGAGGC
-AATGTATTTACTGTTAAGAATCATGGCATACTCaaattagctgggtagggtggaaggtgc
-ctgtaatcccagctactcgagaggctgaggtgggagaatcacgtgaacccaggaggcgga
-ggctgcagtgagccgagatcacaccactgcactgcagccagggcaacagagcaagactcA
-TTTCCACACACACACATACACAAATTCATGGCATACTCAAGATTAAAAATACGCCCTATG
-ACAATTTAGGGAAGCCATCCACTAACCACTTACAGGTTACAGAAATCACATGCAGTCAGA
-TATAAAATACAGCATACAGGAGCTGTAGCTTTAGTTTTCAAATTGCTTTCTTTTGCACTT
-GAATGTCAAAATGCTTTTATCACAAAAGTATGATCTGAACAATTAAATGTCTACCACATT
-GGGACAGGAAATGCAAACATCCAAATGAGTCTGCACAGAGAATTAGGAGGGCAAACACAG
-CTGTTCAGGCAGACTACAACTGTTCAAGATAGAATTTGGGCTGAATTCCATGCTAAGACA
-TGCCTAGTCTCAGGATAAGGGCAAATGTTTAAGAATTTAATTGTTTCTCATCAGAAAGAA
-GTTACCTCTTTGGAGAACTGTTTCGTCCTCCTGTATTAACACGAAACAACATTCTCTACC
-TCAAAAATACTTTATATAAGACTTTGGTGTTTTCAAAGTCTCTCAAGTATCACTTCTCAC
-TGATCTGCAATGCCCTTGGCTTGATAAGCAAGCTGATAGGTAACTTTTTGTTGCCAGGTG
-CCCATACAGAATACCgtcatgcgttatttaatgacattctgagaaatgtgttaaacatca
-gagtgtttacacaaacctacatggtatggcatattacatacctagggtatggcctacggc
-tcctaggatacaaatgtgtaccgtaataaatactttaggcaattgtaacacaatggtatt
-tgtgtatctaaacgtagaaaaggtaatgaatgcactgttgatgttacgatgacatcacta
-ggccacagacatttttcagctctcttataatcttatggaaccactgtcctacatgtggtc
-tgtcattaattcaaactttgttatgtggtgcacgactgCATATACATCATAGAAAAGGAT
-AAGAAACTAAAATGATTTTTAAATGGTAAGCCCATTAAAATTGTTCACTTGCCAAAGCAA
-CTCTGCTTCCTCACTGCAAAACCAAATTTTCAGCTCAAAAGAAAACACAAATTGGGCTTT
-GATCCTGAGGTATACACATACAGAGTCACGGAGGTTTTCTGACAAAAACTACTCAACAGA
-TCCACAAGATTCAGCCCTTTGAGTGAGTATAATGAAGTCAACAAAAACAATTACCCCCAT
-TCCACCACATGTGACTCGTAATCCCAGTATTCTCGAGGTCTGTGTGTATTAACATCTGTG
-TAAACTCTGGCCCTGCTTGGCACGGGTCCCGACATGTCAGACAGGTTGGCGGACAAAGCT
-GGACTTGATGTTTGGAGATCTGGCAGTCACTGTGTTCAGAAGCAGCTGGGGGTAAGACCT
-TGTTTCAGACCTGTTTTCTTCAAACTGCAGAAACAAAATGCACAAAGTCCAAGGAATCAT
-TTACAGAAGGTATATGGGAAGGAAATAATCTTACAAATAATAATGGCCTGAAATATACCT
-CTGGCTCTCCTACCTACAGCCAATAAATATAGCTCAACTGTGTTAACCAGTGCTTCCTAT
-AACATGAGAAGAAAAATCCCAAGAAATACAGTAAACTGATATTTGCTTTAATCATATTTT
-GCCAAATATCCTGTTACCTCTGCAGGCAAAATTTGAATGATTTTTGTAAGACAGCCTGGA
-AGAGAAAAATGGCATTGAGGATAGATACATCAGCATTACCACTAGTTATATATTCTACAA
-AAGGTATTGGCAAGAAAAATACTTTCTTTTCAGCAGCTTTCTGTAACTTAAGTAGGGGTG
-CTAAAAGGTTCTAGAATGGCGGCAAAGCTAAGAGTACAACTTGCCATTCTGACTCATATT
-TGATGAAACCAGGAAGAGAATAAAGGCTTGTTCTCATACATCAAAGCTCCATGTCATCTT
-ATACCAATCCAAATCTTTTGGGGGAACCTTAAGGTAATAATCAGTAGAACCTTGATCACC
-ATTTGAAAGACACACTTGGTTTCATTAAATTTAAAAACAGAAATCAGTAATATTCTCTTT
-ATATTTAATACAGGAGCTTAAAAACTGGTATAAAACAGTAATACAGATTAGCTGAGCTAA
-TGCAAAATTTGACACCGGGGGAAAATAAGTAAGATGTTAGAAATATGCTATCAAATCAGG
-TTCCTTTCCAATGATGTCTTCCCTATCTCCTACAGCATGTGCTGATTCCCCTCATTATGC
-ATTTAGATGAAATTGTATTGAGTCTCCAGATTGTGATAACGTGAGAAGGATATAACACGT
-ATGCAAGTCTCCTGGCTGAGACAGCATAACTTCAATTTGTATGTGTGTATGTGttttaag
-acagggtcttattccactgcccagactggaatgcagtggtgtgatcatggctcactgaag
-cctcaacttcctggactccggtgattctttcacctcagcctcccaggtagctgagactac
-aggcacgcaccaccaccctcagctaattttctgtattttcagtagagacggtgtttcacc
-atgttgcccaggctggtcttgaactcccaggctcaagcaatcctcccacctcagcctccc
-aaagtgctgagatcacagatgtgagccaccgcacccagccATAACTTCAATTCAATTACC
-AGGAAACATTCAGAAAAAGAGGAAGTGTCTATTTAAAAAGGGGGAAGGGGTACTATACTT
-CTAAAACATGTCCACAGCATAAAAGACAAATGGAGGCTAAAGAGACATTGCATAAATGCA
-ATACTCTAGACTGTATCCCATACTGCAGGAGGTGGAGGGGGAtgctataaaaaacaatat
-cgacagaactggaattcagagggtattaaattattgtatcaatgtaaatttgtgaagttg
-gtacataatcacaatagttaagagaatatacctattcttttttttttttttttgagatgg
-agtttcgctcttgttgctcaggctggagtgcaatggcgtgatcttggctcaccacaacct
-ctgccgcctcccaggttcatgtgattctcctgcctcagcctcccgagtagctgggattac
-aggcatgcgccaccatgcctggctaattttgtatttttagtagagatagggtttctctat
-gttggtcaggctggtctcaaactcccgacctcaggtgatccgccctcctcggcctcccaa
-agtgctaggattacaggcgtgagccacctcgcccagcccaagaatatgtctattgttaag
-aaattttcctgaagtaattagaagtaaacagccatgatgcatataatctaccctaaaatg
-attcaggaaaaaaatgtgcccacacgtttacatgtgtatatatatagcacacatgactgc
-acactcacaaatgataaaacaagctgggtaaaatattacaataggtaaacgtgcgtaaag
-ggaatagagatgccctttgtactatttttatttactttttgttgaaatcttcttatttga
-aacaaggtctccctctgtaggccaggctagagtacagtggtctgatcacagctcactgca
-gccttgacctcccaggctcaatcaatcctcccacctctgcctcccaagtagttgggacca
-caggcgtgggctaccacagctggctaattaaataaattttttttttgtaaagatggggtt
-tccctatgttgcccaggctggtctcaaactcctgggttcaagtgatgctcccaccacagc
-ctcccaaagtactgtgattataggagtgatccaccatacccagctTGTTGAAACACtttt
-ttaaattgtggtaaaatatacataacataaactttatggccaggcacagtggctcacttt
-gggaggcttaagagggtggatcgcttgaacccaggagttcgcaaccagtctgggcaacat
-ggtaaaaccccatctctactgaaaatacaaaaaattagccaggtgtgatggtgtctgcct
-gcagtcccagctacttgggaggctgaggcaggagaatcaccagagaccaggaagtcgagg
-ctacagtgagctgtgattgcaccactgcactccagcctgggtgacaggagagagacctca
-tctaaaaaaaataaaaactgccattttatccacatttaaacctaaagctcagttgcatta
-agtatattcacattcttgtgcagtaatcaccagatcatccatttctacaaatttttacca
-tcccaaatgaaaactatgtatccactaaacactaattttccctcccccaactctttgcaa
-ccactattctattttctgcctgagctggctattctaggaacctcatataagtggaatcag
-acaatatttgtcctttgttttgtttatttaatttagcataatgtcttcaaggctgatcca
-tgttgtagcatgtgttagaattccaatccttttaaaggctgaatgatattgcactgtgta
-tatatatacacacacacacacacacacacacacaccacattttgcttatccatttatctg
-ctgatggacacttgagttgcttccacagcttggctattgtaaataatgctgctatgaaca
-taggtgtacaaacatctgtttgagacctcgctttcaaatcttttatgtatatatccagaa
-gtggaactgctgaaccatgtagtaattctatgttaattttttgaagaaccagcatattgt
-ttcaacaagctgggcacggtggctcactcctatacagcaactgtatcattttacactccc
-aggaacagtgcaaaggctacaacttctctacatccttactaacacttgttattttctgtt
-ttttGCTTGtttttatagagacaggggtcttgcttatgcccaggctggtcttgagctcct
-ggcctcaagggatcctcccacctcggcctcccaaagtgctCTCAAAATAGACTGTGCCTG
-GCCTATTTTTTGGTTTTCTTTTCTTCTTCTTCTTttttttttttcagtaacagccctcct
-aatgagtatgaagttgtatctcattgactgtgattttaatttgcatttccctaatgatta
-atgatgttgagcatctttttacatgcttattggccatttgtatatttgttttggagaatg
-tctattcaaagctgttgtccattttttgattgggttgttttgtttgttGACGATGCATTT
-GTTAACTATACTGTTTTTTTGTTGCTTACAAGCTGCTCATCTTTCCAAGGTAAGCTGTAA
-CTTAGCTACCACACCCAAAGAGAAGCCAGAAGAGATACCTCCTTATGCCCATGGTGTCGG
-CAGCTAAAGGCTTTCAGAAGAATAGCAAGACTGGGATGGAGATTAATTCTCTATTCCTTA
-ACCGTGACAAACACAATTAATGACATTCCACTCCAAATATATGAGATCAAAAGATTCACA
-TGCTGACTTATGAATTCTCCCACCCAAAAAACTGCTGTAACTTGCCTCTGTTCAACTCAA
-ACCTTCTGAGGTTCCATAAATGTACTAAATGACCAGAAAACAACAAAGTAATTCAAGTAC
-CAAAAGTCTTTAAAATTATTTCTATTTCTTTGATTTTGTAAAACCTGGGTGACATTAATC
-TATCTTCACTTAATATCAGTTAAAACTGTAAACGCACACACACACAAACACATCAAACAT
-GCAAAAACCAGATGTTTTCTTGTAATTTTTCTTCTTCCCAAAGAAATAAGGTCATCTATG
-TTGTAGGATTGGTGACTCTGTGACTACTATGCCTGCCTTGACAGCAATGAAAGACACTAG
-GAAAACCGTAGAGAAAGGTGTAGGTGTGAATATGGCCAAAATAGTAGAAACAGCAGCATG
-AACCCAACAGAAATGCTGTCCCCAGAAATTTATTACTTTTAATATACTAAACTTTTAAAT
-TCTCAGCCTCTCCTCTGACAGGAAACAGTATCTTTCTCTACATAACCTTTACAGCCACTT
-TACTCTTCTGGTTAACATTTTATACGTGTAAGACAGCCTTCGTCTGTGGATCTCAAAGCC
-CTTTTCCTATGCTTAAAAGTGATCTCTCTGTTGGGCTTTTCCCAGCTTTGGTTCATCACT
-TATAAAACCTGTCTAACTGTGCTTGCAGACTGAAGGGAAGATGAAGTGAGATGATCTTCC
-AGAAAGGGCTTAGAAACATGAAATGCATGTAAATTTGTATTAAGTAATTACTATCCCCTA
-GCTCCTTAGTGAAAGCTAATAAGCAGAAACCTATCTTTACAGGCTGGAACCTTCATTCTT
-TAAAATACAAAAATTATAGTAGCCGTGGTTAATTCCCGGCCACTGAGGGCTAACTCCCAA
-GTATACATGACATTACAAAATGAGTCCTCATTTCTCCCTGGAAACCATCTGACATATGGA
-GAATAGCCAACTCCTATTACTAGTCATGTACATTCTCATCACCCAGTCTTCTTCTGCTGT
-TTCAAGGCCCTGGCATCCTCTGTGAGGAGTGGGAAAAGACTAATAACTAATGAAACTCTT
-GAGATTCTCCAGTACTTGTCTGAATGACCCTTGAAGCTTTGGGGCTCATCAACTGGGACC
-TAATTTATGAACTAGCAGATCTGATTCTCCACTGGGAAGACAACAAGCTAACTATTTTTG
-CAGTACCCCCAAAGAGGTGCTTCACCTTACTGTCACGCATACCAAATAATCTGCTTATAG
-TAAGAAAGGTATTCACATGAATTTCAAATGGCTGGCCTTCATTAATTATACGGGAAAATA
-AAACAGAGGATTCTTCAACTGTGACTCTGTAATCTCAGATAGATAAAAGGGTACTAAGAG
-ATTGGGGGTTAAGGGATGGTGATAAAAAGGGGATGTGAagcccagtgtggtggctcatac
-ctataatcccagcactctggcaggatcacttgagcccaggagtttgagaccaccctgggc
-aacacagcgagacctcctctctacaaataacataaaaatgagctgggtgtagtggagtac
-aactgtggtcccaggtacttggtaggctgagatggaaggatcacttgagcctgggaggtc
-aaggttgcagtgagccatgatctcaccactgcactccaacctgggtgacagagcaagacc
-ctgtctcaaaaacaaacaaacaaacaaacaaaaaacaaaAACAAGAGGGGATGTGAAAAG
-ACAGAAAAGGGAGGTCAAAGACCAAATATTATCATTATTATTTTTTTGAGACAGgagaca
-gggtcttgcgctgtcacccaggctggagtgcagtggtgcaatctcgctcggctcactgaa
-acctccacctcatctcctgggcttgagcaatcctcccacctcagcctcctgagtagttgg
-gactatagctatgcgccatcaggcccagctaatatttgtattttttgtagagacaaggtt
-ttgtcatgatgcccaggctggtctcaaactcctggactcaagtgatccaccagcctcagc
-ctcccgaagtgctgagattacaggtgtgagccaccatgcccaaccAAGATAAACATTATC
-TTATTTAGAAATAGTATTTCACTTATACCTCTGCAAATGCATATGTATATCACATGTAAG
-CTAACAGGAAGAAAACACACAGCCTACATTTCTCAATTTTTGGTTTGATTCTTCCCTACA
-TTCCTGATTTTGTCCATCCCTTAAATAGAtaaccatctactatgaaaaagtactatccta
-ggccttaggaatataagtgagcaaggcagaACAGGGGTGAGACAAgtatgccattgaaga
-ttttacctatggactaagggtaacagaaattcattgaaaagttttaagcagaaaagtgac
-ccatacatattgtttttaaaatttttactctggctgagtgtgggacaggacttagggaga
-aggctgttaacagtagcacacgtgagagaaatgatgacctaaggtggtggcatgtggaga
-tcagtggactaatatgaggaacaaaatttatggtgtaaaatcaatagctctgagtgaact
-ggaaaatgctgtatgaagtgggaggtgactcttggatttcttgcttgacagactgttggt
-gccattcatggagataagagtgcacaagataggttttggacttaaggttaaaatggcttt
-gaatcattcaaacgaagattctgaataggcagttagatattacaagtctggaactaagag
-tttctcagctttaagtatctaactcttccaacaactctacgaggcaagcattagtttctc
-taatctacaaataagaacagcctaagttcagtagcttgaccaagaatatccaatacagtt
-acagctgggattcaaagacagtgagttggcctccaaggttcaagtcttctcactCCTACA
-GAACACAATCACTTTCTACTGCACATTCACACACACACACACCAGTCTTCAAATCTTAAT
-ttctcaattggaccctaagttctacaaagttaagaaccatgtttaatttacctttttaat
-ttatagtacctagcctaaggcttgcattttgtagcacgttcagtaaacactatttggtga
-tcaaattaatCTTGGTTTATTTTTTAAAAATGAAATGAAAATGAAGTTGCATCCAAAGTA
-TAGGGTGTTCCTAAATACTTCAGGTCATCTGGTACGCAACTAGGAGAACTGGAAAACCAA
-GTCAAAGGTTCTTGAGTAATTGTTCCCTTCCCTCTCTCTCTTTCCCAATACTACAGCTTC
-TATTAAATCACAGGACTACAACTAGGATTTGTCTTTTTCCCCTCGATAATTCAAATTAAG
-AGAATACTGAAGAAACTTGATTTTACCAATTTTTATAGCAGCTTATTTGGAAGATGGAAA
-AAGTGCCTGAGTCCTAGATATTTGGAAGATCAATTCTCCTCTCCACTGTTCATAATACTA
-GTATATCTTAAGGCAATCTAACAAAATGCACTGCCTTTCTTATTAAGTTCCATTTTAAAT
-TGTCTTACTTAGTGCTTACTGTTCTCATGTAATTGCATAAAAGGAGGTGTAACTTTAGTG
-GCTAACCATTTCAGACCACTACATCTACCTTAACACCGTCAGAATGACTTTGAAGACATG
-GCTAGGTCTTGTATGCTCAACGTTTAGCCTAACAGAAGCCAATTAATCAGCTACGAAAAA
-AGTATCATGTCAATGAATTTTTCCCGACTGAAGTAAGATCACATCGAAGCCAACTGCATG
-GGTCTGCATGACCTATTCTTTAATAAAGTATAAGTAAATAAAAAGAAAATGCCATTAAAC
-CATAAGGAAAAATTGTCCATTGCCAAAATCATAAGTTTACTGATATACACTGAATACAGC
-AGAATTAATTTCAATAAAAACTCCTCTTGCCCTTAGCTAGTCCCTCCTTCTAATCTCTTA
-TGTTCAGTTGTTATTTTTCAATTTGGCAACTAAAAAGAAAACTAGAGGCTTAGTAACAGT
-CCAATACCAGAAAACTATACAAACAAGTTTGCTTAGTCATTTCTGCTAATGTATTTTTAT
-TGATGAATTTCCTAGTATCAGAAATGGAAAAGATCATTCTAGAACTTTAAGTCAATTTTT
-GAACTGTAATATAATTAGTTCTTTTTAACCCTAATGTTTATTAGTCTCCATCTTAAAAGG
-AAAAAAAAAATCTCCTTCTCATCCCTAAATGAACCATAGCAAATGAACAAGATCTCATCA
-TCATCCCGACAGGACAAAGATTTCTATAGCAAAGAATGAGGAATGTGCTTAGATTGCACT
-GACTGCATGGTTTAGGACTGCTTGTTTAGAGGAAAAGCAGCTATACAGGAAGACACCTTT
-TATGCACTGCTGCAGAGAATGAACTCTTTTTCCAAGCAATCAGGCAACATAAACTGGTAA
-GAGACAAACAAGACTTGTGGAACTCAGCGAGACCTTAAATATGTATACTTTTCTACCTTG
-CTACAGAAGCAAAGAGAAAAATTCAGTCAAACTTGCCCATTTCCCTTTACAAAAGGGGCA
-CTGATTAGAAGGCCAACTTAATACAAAAAAGCACAAGTAGCTAATGTTACCTGAATTACT
-TATTTCAAATGTCCATACTTAACCTTAATTTCTTTCTTCCTTTCCAATCAAGAGCAGAAT
-GCTCATACATCAAGcatttactgaacgtttactatgtaccaggaaatgtgtgcctgactg
-ccagaaaggcattctttctcttggtcctGGAGAAAGTATCTCTGCCCTCAGACAAAGAAA
-ACAGACCATTACAATCTCAAGTGATCAGTGCTTGAAACAATTAAGTCATGGTGGTGTACA
-GACGTTGAAGGGTATTTAAACTATCACCAACCCAtcattcattcaacaaatatttatgga
-gtacctaAAATGGGGAAAAACTGTAAGAGAAAAAAAAAACTGCACTTAAAGTACGCACAG
-GAATTATTCAGATGGAAAACATTAAAACAAGAAATTGCAAAGCGTAACACTTTAAAGCAA
-GTTAAGAATTTTAAAGACCTATAATTTTGCACCCTAAAATGACCAAAGGCTGGCACATTT
-TGTTATCTTCTATAAGAAACACATCATTGGATGCCACATGCAACGTGGCATCAGGTGTAA
-AAAAGCACCTGATGTGCTTTTTTTGCACATCAGGTCAGCAACCTTTTTATATCTGATTTG
-GAGACTATTAGTTTACTCGACTGTTACCATTTTGTGCTTAAAACAAACAGTATCATTAAT
-TCACAAGCTTTGGAATTCTTTCTCTTTATTTTCTTTTCTCTACTTCCAACACTAATCAGT
-TCCTtgttgcccaagctggagtgcagtggcacaatcgtagctcactgccacttcaaattc
-ctgggctcaagtaatcctcccacctcagcctcccaagtaactgaggctacaggcatgtgt
-caccacacctggcCCACTCATCTTTAAATAAGACAGAGAAGTAATTATAGCCAAAAGGGA
-ATAGAAAATGCAAACCCAGAGATATAAGCAAGCAAGGAAGCCTGGAAAGCCTTTGTTGAT
-CCTGAAAATTAGAATTTTGTTCTCACATAAACCAAAGCCCAGGGCTCTCACAAGACAAAA
-AGTCTAATAGGAGGCCCTCTTCATAAGGTGGGACTTCAGAGGCATACTTCCTAATGGTGA
-GAGTGACTAGGGAGTGGAAGATCCAGGGAGGAATTAAAGCCCTACTGAAGGGAATATCAT
-ATCTTAAGCTTGTTTTAAGGTGGTCTCTGGATTAGTGCCCATGCATACCTGATATAAGCA
-AGCTCTCCATGGAGGAAAGTACCTTACTGTGGGCCTCAAATGATCACTACAAATATCTAt
-ttttatttttattattttttatttttttgagacagagtctcgctctgtcacccaggctgg
-agtacagtggcctgatctcagctcactgcaagctctgcttcctgggttcacgccattctc
-ctgcctcagcctcccgagtagctgggactacaggagtccgccaccacgcccggctaattt
-tttttttttttttttttttaagtaaagacggggtttcaccgtgttagccaggacggtctc
-gatctcctgacctcgtgatccacccgccttggcctcccaaagtgctgggattacaggtgt
-gagccaccgcacccagccAATTATTTATTTTTAAATACAATGTCCTAGCAGATCTCAAAA
-AACAAGAGGAAAAATATAGTGAAATCGTTGGATATACttttttttttttttttttttgcc
-acaaagtcttgttctgccacccaggttagagtgcagtggcacgatctcagttcattgcaa
-cctctgcctcccaggttcaagtgattctcctgcctcagcctccagagtagctgggactac
-aggtgcatgccaccatgcccggctaatttttgtatttttagtagtgagggggttttgcca
-tgttttggccaggctggtcttgaacttctgacctcaagtgacccgcccatcttggcctcc
-caaagtgctgtgattataggcgtaagccaccgtgcccagccAGTTTGATATACTTTTAAT
-TGGTACTAGCAGAAAAGAGAATGGGATAAAGGCAGTAACTGAAGACAGTTGAAAATATCC
-CAGAAGCAATCAGACACAATCAAATTCCAGAAGCAAACAATTTccaaacaagatcaataa
-aaagaaatccaaaaccaaacatataattacaaaatagcaggaaaaaacaaagatgagttg
-ggtgtaatggcacaggcctatagtcccagctatttgggaggctgatacaggaagattgct
-tgtgcccaggagttggaggccagcctgggcaaaacagcaagaccttgtctcaaacaaaaa
-caaaaaactaaagacaagcaagtacagaaaaaggcagattatattcaaagagcaacatta
-gaacagctgatttttcaaaaccaacaatgaagccaagtagtttaatacctgcagtgtgct
-gaaaaaaataaatagccgccaaattaaaattctgttatcaagcaaatgtctctaaagaaa
-aaagaaaaataatcccattttggaaggtctgagttgaaagaaaaaataaagagcaaaaaa
-gaggaaaatttacagacagctccaaacaaacactgattatacaaaagaataacaatacct
-tgaggagctttaaaacatagaatacataacaataaaaacacagtgtattgaggagatttc
-aaagtattctttctaaaggtcttttattatatgaaaagaagataaaattataatatcagg
-ttttgctaagttatagctgcaagtcacaagatgtatgacaactaattacagaataaaaat
-agcatatatttccaaaccagaaagagggaaaagtaaaatcataaaaagaatccaaaagaa
-tgttaagaagggagaagaaaaaaatctagaacataagaagcataggggaagaaagttgaa
-ttggaatatgattaattatattaaatataagtggaataaattatccaggtaaaagacaaa
-gactatcatatcagactggattaaaaaagaaatccaaatgaaccagaataatccaaacaa
-ttctgaaaaataataaagctggaagaattatactaactgatcttaaacttattacaaagc
-tatagttgtcaaaacagtgtattggcaaaaggataatacatagatcaagggaacagaata
-aagagtacagaaatacactcacacaaacaaggccaattaatttttgacaaaggtacaaag
-gcagttcaatggagaaaggacatatatacatatatatataaatatattatgtattttttt
-cgagatagggtctgcctctggtgcccacgctggagtgcaggggcatgatctcaactcact
-gcaacctccgcctcctgggttcaagtgattctcctgcctcagcctccaaagtagctagga
-ccacaggagtgtgtcactatgccctgctaatttttgtatttttagtagagacagggtttc
-accatattgcctaggctggtctcaaatttctgagctcaactgatccacctgccttggcct
-cccaaagtgctgggattacaggcataataatcttttctataaattgttttggaagacttg
-gagatcaatatgcaaaatcataaactttaatctaaatctcacactttatataaagataat
-tcataatgaatcacagatatcaatgtaaaacttgggtcagatgcggtggctcatgactgt
-ataatcccaggctgggtgacaaggcaagactctacctctgggggggaaaaaaaaagatat
-aaatgtaaaattatcaaaccttcttgcaaccaggggttaggcagagtttgaagacatgac
-actaaaagcatgggctgtaaaactgataaactgaacttcatcaacgttaaaatatttctg
-ctctgtgaaagacactattaagaaaataagccagacacaagaagaatgtatttgcaaatc
-acaaatcgaataaagaacttgtatctgtaacattaaaaaactcaataagaaaacagctca
-atttaaaaatgggcaaaagacgtgaacatacacaccacaaaagaagatatacacataagt
-atatgaaaagatacacaacactgccagacagcagggaaaatgaaattaaatcatacaact
-accactacagatttattaaaatggctaaaatttaaaaaaacagaaaacaaaactatacca
-aaagctggtgtggatgcagagtaacagtaactaatacattcctggtaggaatgcaaaatg
-gttttggaaaacagtttggcagtttcttatagagttaaacatgtacttaagcatacaacc
-agcattcccactcctaggtatttactcaagagaaacggaaacccgtatctacacaaaaac
-ttatacacaaacatttaaggcagctttattcataattgtgaaaaaacagaaacaaccaag
-gtgtccaacagttacatgaacaaacaaatggtttgccatgtgatgcttagcaataaaaag
-gaacaaattactgatttgtgcaacaaaatggatgaatcGtttttctttttttggtagaga
-cagggtctcgctttgttgcccaggctggtctcaaacgtctagcctcaagtaatcctttgg
-cttcagtctcccaaagtgctaggattacaggtgtgagctgctacacctgaccaacatggt
-gaatcttaaaagtgaagaagccagaaacaaaagcctacatattgtatacttccatttata
-tcaggggtccccaatccccgggccatgggcctgtaccagttcatggcctgttaggaacca
-ggctacacagcaggaggtgagcagcgggagtcactcgcattactgcccgagctctgcctc
-ctgtcccatcagcaacagcattagattctcataggagaaccctattgtgaactgcacatg
-tgaggaatctaggAGGTGGAGCTCAATTTTTCTCCTTTAAGGAAAGGAAATAAGTAAGCA
-TGGAAAGAGAGCCTAAATTTCTCCCTTTCCATGCTTATTCATTACAAGGGTATTCCTAAG
-TCCAATGGGCTtggaaagggagaaatagcaactctacagtagaaaaacctggcagacttt
-actgaaatatcactagtgttaagtcactttgacatcatatgcccctgatataatgtgatg
-agaagggcacttcacctctgtggtagtcttctcaaaaatccataaccacaatttaatctt
-gagaaaacatcaaacctgtattgaaggacattctataacatacatcaccagtcttcttca
-aaagtttccaagtaatgaaaattaaagacagactaagaagcttcacagactggaggatac
-taaggagacatgatgactaaattaatgtggtatcctggactggctccttgaacagaaaaa
-ggatacaactggtaaaatccaaacaaagcctgtagtttagttaatagtattataccgatg
-ttaatttcttaattattttatttatttatttatttttagagatggggtctcactttgtca
-cccaggctggagtgcaatggtgtgatcctagctctcccagttcacagcagcctcaaactc
-ctgggctcaagcgatcctcctgccccagcctcctaagtagctaggactacaggcacatgc
-caccatgcccacctaacttctgagaaccaggttggtctcaaacgcctggcctcaagcaat
-cctccccaccacggcctccagagttactgggataacaggtgtgagccaccatgactggcc
-cagtttcttagtgttgatgacatatcacggttatggcaagatgtgaacattaggatatac
-tgagggaagcatatatggagattctatctgtaacttctgtaaacctaaaattttcaacat
-tacaagttAAATACTGCCAATATTTAACTTGAAATGCTAAAGAGGATGAGAtgctagaga
-agatgaggaaaaactgaaactcatacattgctagtgtgaacgcaaaatagtactgtatag
-ccattctagaaaacagtttggcaacttctttataaataagttaaatgtacatttttcata
-tgacccagcaatccaactcacagttatttaccctagaaaaatgaaaacttaggtccacaa
-aagcctataatgttatgttcacagcaactgtattcataatcaccaaagaatgaaaaccaa
-aatgtccttcaaggagtgaatggataaaaataactatagtctatccataaatggaatact
-actcagtaataaaaaggaactaaccatttacacacacaataactttgatgaatctcagag
-gcagtatgctgaatgaaataagccagtctcaaaatattacataatgtttgatttcattta
-tatgacattcacgaaaagataaaactgtagtgaggttgggcacggtggctcacgcctgta
-atcccagcactttgggaggccgaagcggatggatcacaaggtcaggagatcgagaccatc
-ctggctaacacggtgaaaccccgtctctactaaaaatataaaaaattagccgggagcggt
-ggtgggcgcctgtagtcccaactactcgggaggctgagcttgcagtgagctgagatcacg
-ccaatgcactccagcctgggcgacagagcaagactccatctcaaaaaaaaaaaaaaaaaa
-aaaaactgtagtaactcagaacagaacagtggttgctagagattaggggtgggaggctag
-gtatgttaccaagggtaacatgcagaaggtgatataactattctatgtcccagttgtgat
-ggtagttacttgaatctatgtatgtattaaaattcatagaacagtatacacaaaaaggag
-tcaattttactgtgtattaatttaaaaaaaaATTTAAAAAAAGGAAAAAAATTCTATCAC
-ATGCTGTCTAAAAGAGATACATCTAggccgggtgcagctgctcacgcctgtaatcccagc
-actttgggaggctgaggtgggcagatcacctgaggtcaggagctcaaaaccaccctggcc
-agtacagtgaaacccatctctactaaaaatacaaaaatgagctgggtgtggtggtgcgtg
-cctgtagtcccagctgctcttagaggctgaggcaggggaatcgcttgaaactctcgagag
-gcgaaggttgtagcaagataacgccattgcattccagcctgggagacagagggaggctcc
-ttctcaaaaaaaaaaaaaaaaaaaTTAATAAACAAATAAATAAAAGAGATACATCTaggc
-caggtgtggtggctcacttgaggtcaggagtttgagaccagcctggccaacacagcgaaa
-cctcatctctacttaaaaacaacaacaacaacaaaacacaaaaattagctgggtgtggtg
-gcgggtgcctataatcccagctactcaggaggctgaggctggagaatcgcttgaacctag
-gaggtggaggttgcagtgggcactccagcatgggtgacggagactccatctcaaaaaaaa
-aaaaaaaaaaaaaaGAGATACATCTAAAACATGGGGTATATATTATAtacacgatgtata
-catgcactgaaacatcacaatatatcccataaatatgtacaattatgtatcaattagaaa
-tTAAGAGCTGGGCACAGCTCAGGGGtccctgcactttgggagactgaagaggaaagatgg
-cttgaggctgagttcgtgaccagcctgggcaacacagcaagactaccatctctacagaaa
-aatttaaaagttagctaagtatggtgcatgcacctgtgtcctagctactcagaaggctga
-agtgatcatgtgaacctaggagtttgaggcttcagtgagctatgatcacagtgttgcact
-ccaacctggctgacagacactctgcctcaaaaTCAATCAATCaataaattttaaataaaa
-aaaaaCATAGGCTATAGAGAGTTTGTTCataaaaatacgatatttcaaaacgtgggatac
-aattaaagcaggacttagaaatttataaacttaggccaggtgtggttgctcatgcctgta
-atcccagcactttgggaggctgaggtgagtggattacttgaatctaggagttcgagacca
-gcctgggcaacatggcgagacctcgcctctataaaaataaaaattTTAAAAATCggctgg
-gcgcagtggctcacgcctgtaatcccagcactgtgggaggctgaggcgggcggatcacga
-ggtcagaagatcgagaccaccctggctaacatggtgaaaccccgtctctactaaaaatac
-aaaaattagctgggcatggtggcgggcgcctgtaatcccagctactcaggaggctgaggc
-aagagaatggcgtgaacccgggaggcagagcttgcagtgagccgagatcgtgccactgca
-ctccagcctgggcgacagagcgagactccatctcaaaaaaaaaaaaaaaaagaaaaaaaa
-aaTAATAATAATTAggctgtgcacagtggctaatgcctgtaatcccaacactttgggagg
-ctgaggccaaggtgtgaggattgcttgagctcaggagtttggagaccagcctaggcaaca
-tagtgagaccctgtctctatttttttaacttaaaactattaaaaaaaaaaaaaaaaaaaa
-aaagccaggtgtggtggcatgcacctgtggtccaactattcaggagtctgagatgggagg
-aacacttgagcctaggaggtggaggctgcagtgagctgtgattatgccactgcactctag
-cctgggcgacatagcaaggccctgattcgaaaataaaaaTTCATAAACTTGAACttagaa
-aagcaaactaaaaattaagaacttacacatatctcaataaatttgaaaacagaagcccag
-agaaactagaaggaaaaaaacgggaaaagcagcaatcaaagaaatatgaaacaaagaGGA
-TCCACAATACCAATTGAGTCTTTAAAAATGCTCGTgctgagcccgtggctcatgcctgta
-atcccaacactttgaaaggccaaggcaaaggattgtctgagtccaggagtttgagatcag
-cctgggcaacagagtgcaacccccaatctctacaaaaataatttaaaaattaggccaggc
-atggtggctcatgactgtaatcccaatacttaggaaggctgaagcgggaagactgcttga
-gcccaggagtttgagaccagcctgggcaatacagtgagactccatctcaaaaaaattgtt
-tttaataataaaaacaatggaaaaaattagctgagtcccagctactcaggaggctaaggc
-aggaagatcacttgagcccaggagtttgaggctgcagtgagctatgatcatgtcactgca
-ctctagccagggcgacagagaaagaccctgcctcTGCAGGTGGGGGGGAAGAAATTAAAA
-ATGTAAGTGTGCTTGATTTAAGAAAAAAAAAAAGAAGggccaggtgtgatggctcatacc
-tgtaatcccagcactttgggaggctgaagcaggcggatcacaaggtcaggagctcgagac
-cagtctggccaatatggtgaaaccccatctctactaaaaatataaaaaattagctgggtg
-tggtgccacacgcctgtagtcccagcaggaggataaggcaggagaatcgcttgaacccgg
-gaggcggcagaggttgcagtgagctgagatcatgccactgcactccagcctggcgacagt
-gagactctgtctcaaaaaaagaaagaaagaatgagagagagagagagaaagagagagaga
-cagacagagagagagagagagagagagagagagagagagagagagagaATGAATATTAGG
-GTAAATGTCCAATATCAAGAATGGAAATGAGGGAGTGAGGGATGAATTAGGGTAAATGTc
-cagtatcaagaatggaaatgatacatcactacagatcctacagatggtaaaaagataaga
-caatatcacgaacaactttgtgcccacaaacttgaaattcccagaagaaaaataatttat
-caaaactgatacaagaTCCCAGTCTGATTCTCAGGGAGAAAAAACAAAAACTGACACAAA
-AAATGAAAACCATAAATAGTCCCATAACCAATAAATTCAATCAGTATTGTTTCAACCTGT
-TCTATTCTAATGTCTTTGAACTGCACAGATTAACATTTTCAAAACATTTGTTTAAACTGA
-CTGAACTTGCTTCCCACTCCTCTCCAGGTCTCTGTGCTTTTATACATTGATTATGCCTTC
-CAATAGTGCTTGCTAGGGGAAATCCTACTCACCCTTCAAGAATCAGCAAACTTTACATCC
-ACTATGAAGCACACTATGAAGCATTCCCATCTTTCTCCAAAACAGGCCAAGTACCTCTTC
-TACAGGGCCAAAGCAACCCCATATACTCTCTGACATTGTCACACTGAATGTGTTTTGTTT
-ACATACACCTCTCTCCTCAGATTATGAATTCAAGTACTTGGACTTTGATTTATTTCTCTT
-GGTGGATGCCCCGTgtttcaccacactgcccaggctggtctcaaactcctgacctcaggt
-gatccaactgtttcagcctcccaaagtgctagggttacaggcatgagccactgtgcccgg
-ccTGTGGTTTTTAAAATGCTCCTCAGTCTTACCTATAAATGTTATTGCATCCATCCTTTT
-TAAACCAGGGGAAAAAGGTTTCCTACTATCACTTACCAAAGAGATGTGAAACTAGTCAGT
-ATGGGTGAATGATGTTTCTTGGAGATTTTATGAGGTTCCACGCTGCATGATTTACCATGT
-GATGAGCACACTGCTTGACAAGCCTTGATAGAGCTACAAAAACAGTTCAGTACTCCGTTA
-CTGAAAGGATCTTGGATTTAAAAGACATCATAAGGTTGCAGAAAGAATAAGTACACTAGA
-ACCACTACAACCTACATCTGATGTTGGATATGTTATTTAACCTACCTGATTAAAGTGAGA
-AAACTGCAGAATATAAGGATTATCACCCTTCCCCCACTCCCTTCTTTACTGCCATGGTGG
-CAGGTTACATAGCAGACAACCATCATCTCCGCAGGTGATCAATAACCAACAGCTAATAAG
-GTAGGTTGTCCTAAAACTGACAAAAATAGAATAGGCTGGAAGTAAGGGCAGTAAAAACTG
-GTTGCCTTTCAATTCTGAAGATATTATGTGAATGCCTATGTCAGTCACTGATTCTTGGGA
-TTTATCAtttttgtgtgtgtaacagggtcttgctctgtcacccagggtgggtgactgcag
-ccttgacctcccaggctcaagcaatcctcctccttcagcttccttagtagctgggaccat
-aggcatacactactgtcccctgctaattaaattttttcttttttttctttctttcttttg
-tttttttttctgagatgtcttttgtttttgttctgaggtcttgttatgttacccaggctg
-gtctggaagtcctaagctcaagcaatcctcctaccttggcctcccaacgtgctgggatta
-taggcatgagccaccatgcccagccAGATTTATCACTGTTAAACCAGCAAGTCCATGACC
-TAAGTAATGTCTTTCTCATTTTACAGAAGGCAAAACTGCATAACCTTCCCAATGTCAGAG
-GTAGTGATTGGAAAACATTCGTCTAGATTCACAGCCTATTCTTCTGTTCTACAGCAAGGG
-ACTGTAAACTGGTGACCACAAACACAGCCAACCCCCATACccatggtttcagttacccgc
-agtcaactgcagtctgaaaatattaaatggaaaattccagaaataaataagtcataagtt
-ttattttccatgtttgtttttagagacgaggattcactcagtcacccaggctggagtgca
-gtggtgcaaccgtagctcactgtagcagcctctacctcccatctcagcctcccttgtagc
-tgggaccacgggcatgcaccaccactcctggctattttttttttttttttgtaaagaagg
-tttctcactatgttgcccgggctagtcttgaactcctgggctcaagcaatcctcccgcct
-taccctcccaaagtgctgggattacaggcatgagccattgcacccagccatgttttaaat
-tgtacatggttctgagtaatgtgatgaaatcttgcaccatctagtaccatccagccctgg
-atgtgaatcatccctttgtccagctgtatatgccacctgctcattagtcacttggtagcc
-ttcttggttacttgaatgttgcagtattgcagtgcttgtcttcaagttacccttatttta
-cttaagaaatgccccaaagtgcaagagtagcgatgctgagaatctggaaatgccaatgtg
-aagctgtaaagtgcttcctttaagtaaaaaggtaaaagttcttgacttaatatggaaaaa
-aaaatcatatgtggaaattgctaagatctatggtaagaacaaatcttctatcagtgataa
-tgtgaagagggaaaaataaattcacatttgttttgctgttgtacctcaaactgcaaaagt
-tatgaccgcagtatgtgataaatgcttagttaaaatggaaaaggcattaaatttgtgggt
-agaagacatcaacagaaaactgtgttccaactgatgataatcaggtttggtattatctgt
-ggtttcaggcatccactggggatcttggaatatatttcccacagatggctgggaacagga
-ctactCTGTGTGTATATCTCCTATTTGGCTCACATATTACTTTTAAAAattgagataaaa
-tccatgtaacataaaactcatcattttagggtacaatcagtaccctaaaatggtgtgttt
-tcgtatattcacaatgctgtggaaccatcaccactatctgattccagaacacttcatcgc
-cccaaaaagaaacccagtacctcagaggattaactcccaatagcctcttcctacaatcct
-ctggcaaccaataatctgctttctgtcttcatgtatttgcctattatggacatttcacat
-aaatggaatcatgcaatatgtggcctcttccacttagcaaaatgtctacaagtttatcca
-cgttgttgcaagtatcagtaattcatttccttttacagctgaattcactgtataaataca
-tcacattctggttgtccattcactgacagatatttggactgtctccactttttggctact
-atgaaataatgtcgctaggtgcatatgtgtacaagtttttCACtttttttcctttttttt
-tttttttttagagtcaggaccttgctctgtcacccaggctggagtgcaatggcatgatca
-tagttcacttcactgcagcctcacactcctgagctcaagtgatcctcctacctcagtctt
-ccaagtagctgggactatgggtgtgcgccaccacgcccagttaattttctgcatttttag
-tagagacagggtttcgccatgttgcccaggctggtctcgaactcctggattcaagcgatc
-atcccatcttagccttccaaagtgttgggactacagtatgagccacagtgcccagccTTC
-ACACTGTTTTTAAAAAGTAAATCAGGggccaggcatagtggctcacacctgtaaccccac
-cagtttgggaggctgaggcaggcggattacctgaggtcaggagttcatgacagccttggc
-caacatgatgaaaccccatttgtactaaaaatacaaaattagccaggtgtggtggtgggc
-acctgtaatctcagctacttgggagcctgagacaggagaatcacttgaacctgggaggca
-gaggttacagtgagctgagatcgcgccattgcactccagcctgggtgaaaagagtgaaat
-tccgtctcaaaaaacaaaagaaaaGGTATTAAGGTGAATTATGTATTAAAATTTTTCACA
-ATTAATATTTTTCAAAGTGACAGTTACCAAAATTAAAAAAAAATTTAACTTTCTATTTCT
-TAAAAGAAATAAAGCAGGAGGGAGGGCAGGTAGGTCTGTCTGTCTGGTAACAATGACTCT
-TCATTCCTGCACTGACAAAAACCTGCTGGATATGCTAAGCTGTGACTGTCCAACAACTGG
-CTCTTTTAACAGACACCCAATGGAGATACCACACGTAAACCTGGACAACTCTTCATTTAC
-CTTATTGACTCGACTCCTGAAGGCATTTGAGCAATCAATCCCTGGTTTATACTAAATATA
-TAAATTTACAAATAATAAGATGGGGGAACTCTTATTTAGACTACACAAATTTTGGAACTG
-AAAATGCAGCTCAACAATGAGATCAGTGGCCATGAACTCTCTGGTAAATGTATATAAAGC
-AGCATGTACATGTACATTTTTTTTTGAAGAAAAAAATTATTACAGGCTCAGGAAATCTGT
-AAACTCCAGCAAAATTAATAATTCCTGAGTTAGACAAACAGAAACTCATCTAAGAAGGCT
-AACTTGGTGATTTACATAAATATTAAAAAATTAAACTGCTCAAACTAAGTATATGCCATT
-CTTTCCTGAAGGAAGACAAGAAGACAATGTATCCTAGGCTTCAGAGTATGAGACCCAAGC
-TTGATGAATGATTAACAAAATGTCAGCCTCAGAAAAGATACAGTAGCATTCAGAGTTAGT
-CAGGTAGAGATAACAGTTTTACAAAAGGGAACTTTACTTCTGCCTCACATTACTGCTTAG
-AAAATAAGAACTTGAATTTCTTCACTACTGTCCAACCTTAAATTGTTCACAGTCTTGTAT
-TTTAAAGCATATCCTTTGAATCATGTGTCCAAAGAGAATTACTTGTGGGTCAGAGAGGTA
-CCTTAAAATGGCTTTAAAAACTTAAAACCAAGATTATTTTCAGATTGTTTACCCCCTTGA
-ATCTTAAAACTGTTCAGATATCCAATTACTGAGCTTTCTAAATTAGTGCTCCCAGTTTTT
-CTAAACTTTTAACtttttttttttttgagatggagtctcgctctgtcgccaggcctggag
-tgcagtggcacgctctcggcttactgcaacctccgcctcctgggttcaagcgattccccc
-gcctcagcctcctgagtatctggactacaggcaagcgccaccatgcccggctaatttttt
-tttttttttttttttgtattttagtagagacagggtttcaccatgttggccaggatggtc
-ttgaactcctgatcttgtgatctgcccgcctcggcctcccaaagtgctgggattacaggt
-gtgagccactgctcccagtcTTTTTTACAGTCAAGACAGAAAATAATATTTGTATGGCAC
-AATGGGGTAAATGATCAAGACTGCTCTGGATCTGAGGTCATTAGTTTGGATGCTGTATCC
-AAACTATATTCTGCATGAATGGCCAGAGGTGTGAGGGGACCAGTATCTCAACACATCTGT
-AACGCACCCTAACACAATACACTGGTTGAGAAATTCTAGTTTAAATAACTTGTGGAGATC
-ACGACCTGAATAGTCAAAATCCATGCAGCAGGTTGAGAAAACTATTTCACAATTCCTCTT
-ATTTCAAGAGATACGCAATCACCTTTTGCAGCTTTCAAGTATAGACCAGATGTACTAACA
-GGCAACCATTTCGTCTGGAAGATCATCTATTTGGAGGTCACTGACACAAAAAAACAAAAA
-CAACAAAGACAAAACAAGCCTCCTTACCCTAGCTCAGAAGGATAAGCCAAAAGAAAACAG
-GTTAACGGTAAAAATGTATGATTAAATGAAGTTATTGTTTTTTTTCCTCCACTTCATATT
-GATTCTCTTTTCCCATGTCAATTTAAGGTGGTAACCATGGCCAACAACATTCTCTCTCAC
-CTATCATACTAATGCCATATAAGTAGTAGTGTTTTTGTTTTTTCAAGTGGGGAAATATAT
-ACAGCTCAAAAAAACAAAAAAATATCTAGCAACTAACTCCTTGGCAGTTCCCTTGACTCT
-CTGACCTTTAAGTCCCAAGGTTCTAAGTATACAATGAATAAGAAAACTACCTGTTCAAAC
-CCAACAGAATATGTTTTTTTCTGGTTTGATTAAGGCTTCGAATTTGGAACATAAATACTC
-TCAGTAATACTTAGTAATTCATGAAGTTACTGCTTGTGTAAACTTGCAGAATATTTAACT
-TTAGGAGATTATAAATCCTAACATGCCCCTAGGGGCCTTCTGCTTTTATTCCTACATACA
-AAACATACAACATGTTTGTTTTTAAAAACAATGCACATAGgccaggtgtggtggcacaca
-cctgtagtcccagctacttgggaggctgaggcagaagcatcacttgaacccaggaggcag
-aggttgcaatgagccgagatcatgtcactgcactccagcctgggtgacagagcgagacgc
-tgtctcaaaataaaTACATACATACATACAAAAAAATTAAACCAATACACGGAAGTATTA
-CTTCCATAAAACAAACCAGGAAGTACAGTAAAACAGAAAACATTAGCATTTGGGCCTTTT
-GTGTGAATTACATTTCTCCACCTTCAACCCAGAAAAGGGATCTGAGTGTCAATGTGACAT
-AAATGACATAGCAACAGTGTGAGGTCTCCCAATGAAGGGAGGTATTAGAAGAAAATCCAA
-GCAGTTTGATTTGGATTAATAGTTCTACCCCAAACACCTAAGAGAAATCGGAATTCCAGT
-ACTGTCTCTTACAATATAGTCATCATCTATACACCTTTTTACCACGCCATATAAGCAAAA
-TAAAGTCACAATGTGAAACTTTACTCCACTGGCTATTACCCTCTGGAACCAAAAGATGGA
-AAACTTCATTTGGGATATACAGTAATCTAAAGAAAAATTCAGCACTTATGAATGTAATAA
-CTACTGTTACCATTTGAATGCCTCTTACAAACCAGGCACAGTATCAGATGCAtattctga
-ttttagaaataaacagattcagaggttaaataatctgccaaaaacaacaggattactaag
-tggtggaagccagatctgtttaggatccaaagcctaaataggttcttttcactAAATTTA
-ATACTATTTCCTTAGTTCTCCAAACTGATTTATTAACAGCCTATCCAAAACACTATAATA
-AAATGAACTGCTTTAAATTTGGAGGCAAGGTAGGGGTGGGATACTGAGTTTCAATAATCA
-GGTTTCTTCATTATTCTTTTACCTGAATGGGCTGGCCACCAGGCCACAATTGTATAAAAA
-TCAGATTTTAAATGATGGAAAAGCTTTTCTGTGTGGCTACTGAAGGGAGAAAGGAAGACA
-ACTGAGACATGCCCCACCTTGCTGGCTGGGGGCTGGTGACATCTGTGGGCCTCAGTGTTG
-GACTCCAGATGCAACAAAGCCTAAAGTTTTGAATATGTATGAAGGTCAATGTGATGTTTT
-CCAAAAACAGTCATAAAAGATGGCTGTGAAAAACCCCCTAGTATAACAACTGTATGTAAC
-AAGAGCATATAGGTAGCTGCAGATGAATGCTCAGGTCCTTAGCTGTGGTGTTTAAAAATT
-CTTCAGACCAggctgggtgcagtggctcacacctgcaatcccagcactttgggaggccga
-gatgggtggattgcctgagctcaggtgttagagaccagcctgggaaacacagtgaaaccc
-catctctactaaaatacaaaaaaaaaaaaaagccaggcgtggcagcgtgcgcctgtagtc
-ccagctacttgggaggctgaggcaggagaattgcttgaacccgggaggtggaggttgcag
-tgagccaaggtcgtgccactgcactccagcctggcaacagagtgagatgctatctcccaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTTTCTTCGGACCAgtgtggtggctcatgag
-tgtaatctcagcactttgggaggctgagttaagaggactgcttgagcccaggagtttgag
-accagcctgggcaacatggtgagaccttgtctctacaaaaaaAATTaacaactacccaca
-aagaaaaccctagctcaagatggcttcactggAAGGAAAAATGAACTGGTCAGGAAGACA
-GACAAATAGAAGCAAATAATGAAAGCATTTTATTTGACATTGATAACCTTCTCACAATAA
-ATTATGTGGCAAAATACATGCTTGAATACTTAATTGCTAGGCAATAGTCTATTTTCATTT
-TTTCACAAAAGGTAGACAACTCCAAAGCAGATGGCCATTTGTAGCCATTCTATATAATCA
-TAAATACACAAAACACTggccgggcgcggtggctcacgcctgtaaccccagcactttggg
-aggctgaggcgggtggatcacctgaggtcaggagtttgaggccagcgtggccaacatggc
-gacaccccgcctctactaaaaatacaaaaattagcccggtggggtggcatgcacctgtaa
-tcccagttacttaggaggctgagagaggagaatcacttgaacccaggaggcagagattgc
-gccactgcactccagcttgggcgacagagcaagactccatctcaaaaaaaaaaaaaaaaa
-aaGTTTTAAAGTGCCGATAAATACAAGTTCCTGGTCTGCCTACAGTTTATCACTTAATAA
-TACAAAGCAAACAAGAAAGCAAGTTAGTGGATTACCTGAGAGAGCAAGACATAGAGAAGA
-TGTTAATGCAGGGAGCTGGCCTTCTCCAAACATATCCCTAACACACAATATTCAAGCAAT
-TCCCAAACTGTGATCAGAGAACCACTGGGAGTAAGACCTCTGATCTATATTTACAAGTCT
-ATAGGTGAGCAAAGGTAGACCTTTTCCTGAGTCTGAGATGGGAATATTACCTTCTCTATC
-TAGAAGCAAAAGAATCCTAGACTCACCAGGACTAGGTAATAGACACTGTACACGAGTAAT
-TGAGGTAATCTACACTGGGCGTGACTTACATACTGATCCACCCCTAGGCAGCAATTCATA
-CCTCACCCACCCAACAGGCTACATTAGAAACAAGGAAGTACAGGTCAAAAGTCTCATTAA
-AAAAATAAGAACTCTTGGCAGCAGAAAATGAAAATAAAGAATGAAGAATGACAGCACTGG
-CAATAAACACATTCTTTTCTCCGAAAGGGAAGGGAAAGAACTAATGTTGGGCACCCACAT
-GCCAGACATTTTATCAATTTTCTCCTTTAATCCTCAATAATCCTGAGATAATACTAGCTA
-GTACTCTAGTTAttaatcctcacaaaaatcctgaggtaggtactactaattcccatgtta
-caggtgaagaaaccaaaagttagtaagttgcccaaggtAGttgttatccgaactgtagag
-acaagaactcccagacttgaagaggttaagtaaacttccccaaactcaAAGTGGGAGTTC
-TTTCCCACTAACCTATTGCCTTCCCCTCCCTACCCGCAATCTCAATTAATTCTCTATTCT
-ACCCCCTTCTCATTTCTGCAGCTGTTTCAAAAACTACACCTAAGATACAAAGCAAATAGG
-AGTTATTATAAGAAAACACCTCCAAAATCTACTAAGTTGTGGTATGATATGCCTGTTATC
-AGAAAACGTCACTCAATTTTGAGCTTGGAGGGCAGTGACAGTTTGGAGATCTTtagcaca
-acgcctgccagaaacgtggcaggcgctcaggatctgctgaatgaaCAACATCTTCTGAGT
-GGTTATGAATTCAATAACCCAAAATGACCATCTCGTATTTCTGGATATGACATGATACCA
-TTTTTTGGAAAATAATTTACCCATTCATTTTAAACAGGGTAGCTTTCTTAAAATTTATAG
-AACATTGATGAGATAGCTAAACTGAGAAATGCCCATTAAAGCATTAGTCATAACTTCAGG
-AAAATTTCAAATGTTCACTTTTCCAAGCAAATTAAAATGTTTCAGCTAATAAAAACCTGT
-CAGAAAAACCCACAAGACAAGAAAGTATAAAAAGAAAAGAGCAGCCAATATAAGGGCATT
-TAAGATGTCACACATAAAAAATTATAAAACATTAATCTAACTTGTACCTTGGTATTTAAC
-CCTAAAACTGTCACCTCAGATAACACAATATTTTCTATGCAAGAAAACATTATCACCACG
-AATGTAAAGAAGCTTGCCGACCATAGCAACTGTTGCTACGTAGGGTTTTTTAATGTCTAA
-GACTGAAAGACAGAATTTGTAGAAACCAGTTAAAATGCCACTCTTAGCAGTATCTTGTGA
-TACTGTGAATGCTTTCACCTTAAACTTTTTAAAAGACTCAATCTTTGACTTCTACATGTG
-AAAAAAAAAAAGTACATCTGGGAGCACTCAACGTAAGAAAACTACCAATTGTCTATAACC
-CAATGAAAATACATCCTTTGTTACAATGACAGCAGCTACTTTTCCTTAATAATCCTAGAG
-GAATTTCTTCATTTGAAAAGCTGGCTGGCCTAGATTTCTCTATAAACTAAATGACATGCT
-ACTTTCGAAATTATCCATTTCAGAAGTTCAAAGAAATTCAGGTATAAGAACACATTAATA
-CTCTCATGAAACAAACCTTATCCAGGTTACCCACGAATTGTGACAGATCAAAACCCAGTT
-TCTCATTTCAAATCAAGTATCACATTATTTATTACCTTAAAATACTAAGCCCTTACCTAA
-TTCAATGGCAAATCATATTGGTTTTCAGTTTCTGAACTTGTACAAATCATACTGTAATAT
-TTATGCAAAAGTTGTCATATAGTTGAATATTATAGACAGTTAACATCttttttttttttt
-tttgagacggagtcttgctctgtcccccaggctggagtgcagtggcgtgatcttgactca
-ctgcaaccaacctccgtctcccaggttcaagtgattctcagcctcctgagtagctgggac
-cacaggcacgcacctccacactcagctaattttagtagagatggggttttaccatgttgg
-ccaggctggtcttgtcctgacctcaagtcatctgcccacctcggcctctcaaagaactgg
-gattacaggtgtgagccaccatgcccggccAACAGTAGAAAAGGGTACTCAGGGAACATA
-GTTCAAAAGTCATGATTCTCTATTGGCTGGACCAGGATTCTAGACTAGCTCTAGGGCTGA
-GATATCTTAGTAGACCAGTTAACATTCATGTGGCCCAATTTCCCTTACTCTAAACCCAAA
-GTCAAACATAACCTCTAAAGTCTTTCATACCCTGAAATGCTAATCTTGTAATCATCTTTC
-TATTCAGGTAATAACTCAAAAGAAATGGTCTCACTTCCTTCATCCTCTGACTAAAGTTTA
-GTTAGTCCATATTTTATGAATCCAATTAATAGGATACTTTAAAGAACAAAAAGAAAAGAC
-TTTTCTTAAAAGCTAGAAACTCCATTCTGTAGTGATGATTCCCAGATCTGACTCTTAAAC
-TCAACAACCTCAACAGACAATGACAGGGAGAAAAGATCTTACAAGTTTGAGCTGAGCTGG
-GGTGGGGTGGGAGGTGTGAGAGAACAGAGAGACAGTTACAAATTCACAAAAATGTATCAC
-CCATTTCCATCTCCTCTAAAAAAATATGAAATAAGCCTTAAAAGGCTGTCATAGAAACCC
-ATTATTAAGCCAATAAAAACTAATGAAGAAATTATGTCATTTATCCAAGATATGGAAGAA
-CCACCTATTTACAGAAATCCTACCAATGTCCTAGACCTTCAGAAACTACATCTCACTAAG
-CTGACCATCAAGCCCCTTCAAACTGCATCTAAGGACAATAATAATATTCAAACATCAAGA
-AACAGGCACAGGTTCCACTCAACACCATTATTCCGTGGAGTCTTCCAGGACTAAATTGTT
-TTATAGAATCTTTGCTATCTTTGTTCTCTAGAAAATGATATCCCAAAGACTCTAAAATAA
-AACCAGCAAAACCCCtgtatttgttttccattgtgtcataacaaattatcacaaacaaaa
-caacacaaatggattatcttacagaagtcagtgggcttgactgggtctcacaagggctaa
-atgagggtatccagtgggtgggttccctgctggaaactctggggaaaatttgcttccaca
-ttcattcaagctattggctgaatttagttccttgcagctgtaggactgagttcccacttc
-cttgctggttgtcagctgggactggcctttcctactagaggctgcctgcattccccgtct
-cacactttcaatctggtcccctccagtaacggcaggctgagtccttctcatgcttcaaat
-ttgacttccccttctgcctcatctctgacaccagccagaaaaagttctctgcttttaagt
-gcttatgtgagtagaataaacccacccagaaaatccaagataatctacctaagatcctta
-actttaattaaatctacttaacatattcatgttccagggtttatagtatggaaatcgtag
-gggagccattctgcttaccgcagtctgccttctggtttccaaggattcatctctctctca
-aatgcaaaatacatccatcccatcccaaggtcccaaaggtttcccatctaaagcttatca
-tttcagaagtcccaaatctcattcatctattcaggtgtggatgaggttctggggacaaaa
-cagtaagtccaattcctggggcacaattcctaaagaaacaagttctctactcccaacata
-ccactgtgagacatgtagagaataacagttagacattccagttcaaatgggcaaaatgta
-aaagaaaacagagcctccggtccaaagcagtttcaaaatctagggaatctccattccatt
-tcaaagcctgggaaaaatcctctccagcttttagctccacccctctgggctctcctatct
-ccgtctgagtcaccctgattcttttatgaaaagcaacacattcacatgtgagtagtttta
-tcagcctgcttcctatcagtagaatttggggggtccaacagccctattactttctgtctc
-tttcaatccaaactagaactgtttatgttggcataaaattctcaagaacctaatgggctg
-tggaagtattccacatgggtccactccattaaagttcacattcacaaataaaccaggctg
-cacatttaatactttgcttggaaatctcagctaaatatacaagttcatcacttgcaaatt
-tggctttccatataaccataggatacaattctgctaaacttagttgctactatgtaacaa
-ggatcccctttctgccagtttccaataagaaagacctcacttctgtctgggccctcacta
-gcagagtcattaacatccatattgctactaaaagtatgtccTAGGCCttttcttttttga
-cagggtctcactctgccacccaggctggagtgcagtggtgccattaccgctcactgcagc
-cttgacttcctgggctcaagcgatcctcctgTGTtccaggccttttctatcatgcccctc
-aaaacaattctaacctttatctactgccactttcatttttaggtaatagtaccccactcc
-tggtaccaaaatctatactagtgttctactgctgccataacaaattaccacaaatgtagt
-agctaaaaataacacaaatttgttatctcacagttattgtaggtcagaagttgggtgggc
-ttggctagctaggtcttttgcttagggtctcacgaggccaaaaatcaaggtgtctcaagg
-ttgcattccttggtggaaactgggaaattcacttccaagctcaatcaggttgttgaccaa
-attcaggttccttctggttgcacaactgaggtccccatttctttctggttgtcagccagg
-gactggtctttgccactagaggctgcccacattccttctgataaactttccatgtggtcc
-tctctagcaaaggcaaatggagtccttctcatgcttcaaatctctgatttccttttctgc
-ccatttctctgatcccagttggagaaagttctctgcttttaaggacttaagtgactagat
-tcggcccacccagaaaatccaggataatttttctattttaagattcttaaccttaattac
-acctgccaagttccttttgccatgtaacacaggatagctacagattctggggatcaaggt
-atggcaccttgggaagagggagatgtaattctgcctactacaAATCCAAGTCCTATGGAA
-GGGTTTAAACTCACTTCCTAAAGAAAATCATCCCTTTCTTTAACAGAGTGTGAAGTAAAG
-ATGTATATATTTTACTTATGTGAAGTAAAGTATATATACATACATACATATGTCTTTACT
-TATGTGACACAAAGATGTATGTTCAGAGATAGAGACAATAGTAAAAACAAGGACTCACTC
-TGGATGAGTGAGTAGGAAAAGGACGCGCAGTATGGAAAAGGAGTTGCCACCTGTTTCATC
-CTCAAATTGCAAGGCACTTCACCCATAACTACTTAGAAACTAACCCATGCTCCTCCTTAA
-ATGTGTATTTCTCTTCTCTGTATTCCACAAAGGAGTACATAACTAGGCTTTTTTTTATTT
-TTAAAGAAAAGTCACCTCACGGGGACCTAACTGTATAATCAGTTGATTAATCAATCTAAG
-CAAATTTCCAATCTTGCATTCTTTCTTCAAGTCATACACCCTCCCGCAATAGCAAACCAA
-AGCCAAGTATTTCAAAGTCACAGAAGGACAAAAACATGCCCTGCTAAGACTGCAGGTGAA
-CTTTTGAGAATACCACGGAGGAGAACTAGTATTGGTACTGGACTTTCAGCCCCAGGTCCA
-CCAAGCCAGTAAAGCCAAATGACTTACAACAAAACCCTACAACAACTACAAAGATACTAC
-TCTAAAGCCCTGTCTACAGTCAAATTCTTGACTATAAATTTTACTTAGAACAGAAGAGCC
-CCAAATATACCAGCTAGTCCCTTTACAGTGACAGGTAAAAGCTACTTACTAcacttacta
-cctgccagacactgtagtaagcacttgacacaaattgtcttatttactcttctccgtaaa
-ctcacaagctagaaaataccatcatcccccttttacagacgggaaaactgaggcttagag
-agtttaggtcacacagctaagtagcaatggccctgatatttgagaacctaggcagtctgg
-tttttaaccactgggcctacactgCACTCCTCAGATGGAATGAAGTCTCCAATTCTTGGA
-AAAATCTTCCCTTCTTAGttttcttttttctttttgaggcggagtctcgctctgtcgccc
-aggctggagtgcagtggcggatctcagctcactgccacctccgcctcccaggttcaagcg
-attctcctgccttagcctcccgagtagctgggattacaggcgcgcgccaccaagcccggc
-tgatatttgcatttttagtacagacggggtttcaccgtgttggtcaggctggtctcgaac
-tcctgacctcgtgatccacccgcctcggcctcccagagtgctgggattacaggcgtgagc
-cacacgcccggccTCTCTTCTTAGTTTTCATTTCCTCTCCCCATGTCCCATTCTCGTAGA
-ATTAAACAGCTGAAAAGTAATCAAGTCTTCCCAAATAATTTGCCACCTTCTTTTCAAAAC
-TCTTTCCTCCACACAAAGCAATAGCCAAGATGCAACTTCTCCTGACCCTGACTCTGCTTC
-CCCAAAACAAACTACAGAAGCTCCACCCATCACCTGCTTAATCTAGCAATGTTCCAACAC
-TGCAAAAAACACACAACGAAAAACAAAATTGAAAAGTCCTACTCTTTCAAAAGGTCACCA
-ACATATGTATACCCTTAGCCAAGCTTTCTCTCCATACCTCTTTTTCTATCCAGGCTCCTA
-ACTAGTCCTTAACTCCAACTCCAGACGTTCTGCCCCACGTCTTGGTCCCTTCCCCCTTTC
-GCCCCAGCAACCCCGCCTGGGGTTCTCTCCACCTCGCACCCACTCTGCAGGTGGGAAGCT
-CAGCCCCGCCCAGAGGGACCCTAAGAAGGCCCCTACTCCAGCTGCCCAGTTTCGCGGGAG
-GGTTCACTGCACACTACCCAGCAGGCACCACTCCCTCCGCACCCTCCCCCAGCACCCCCC
-TGCGGCCCCACCCCTCAAGTTCCCTTCCCCCTCTGACGACCCCCTCCTCCAAGTTGTCCC
-CTAGTCCCCACCCAGTTCAGTCCTCTCCTCTGCAATAAGCTGGACTCCGGCAGCCGGTTC
-CCACCCTCACATCGGCCTCTGCCCCCAAACCTCGCCCTCCGCCCTGAGGGGTGGCCCCTG
-GGCCTCCCCGATGGGCTGCAGGGGCCTCGCTTGGTTTATGTGTGAAGGTGGGGGCAGGGG
-AAGGCGACGGGCCGCTCAGGAGTCTGCTGGAAGCGTGAGGGTCGGCCGCGCTCCGCTGCC
-CTATCCTGGGCCCACCCCACCCGCCAACGACCTCGCCTGGCTGCTCCCTAGGTACCTGTG
-GTGGAAGCGGCAGCGGCGGCGGCCGCTCTCCCCTCTGCTCACACAGACAATATGGCGGCG
-ATGGAGGAGGAGACACACGGCTCGGCCGCCAGCCGCAGGGACCAGAGCGAGGCTGCAGCC
-GCTGCTGCCGGAAGCGGAAACCCCCTCCTACCAGGAGGCGGGGCGAGACAGCTTCCGACT
-CCGCCCCCAGAGGAATCTCTCTGAATGCGGCCATGCTGGGATGTCCTATTGTAACCTTAG
-GGATTCAGTTCTGGCCTAGGGTGCAAAATGGAAGGAATCCCCAACGCAAAGCAGAATAAG
-GAGACTTGCAATAGTTAAGCGCATTTTATTTCAATAGTGTTAACAAGTGACAACAGAGAG
-AACACGAACCTCCCATTAGGTGAACAGTTGGTTTGACCCAAGTTAAGATGGCGGTACCCA
-GGTTTCCCACACTTCACCCAGCTGGCCCCCCTTTCTTGAAAAGAACCATGCGCGACCTGC
-AGAGCTGTAGAGCCAAGCATTCTGGGAGCTGAAGTCTCTTTTGCTCTGACCCCTCGTTTT
-AAATTAGGGTTTCAGCAACACTTTCTATTCAAACTTGGAGTTCGGAAGAAGTGAATGAAA
-GTTGGACCCTAGGAAGGGCATGGCGCAGGAGTCTGAGAAGTGAGGATACTAGCTCTCAAG
-AGACCAAGGCCCAATTCCTTCCTCCTACAGGAGTCCTGCCAAGAGCTGTGCGTCCAAAAT
-ACAGTGTTTTTTTTTCCTtctatctgcctcccacccctgctctccttgcccgagctacct
-ccccaaaacagccacaaagcactttctaccatgcagagctcatcatggtctccctatggt
-caaaaatctcccatggacctctttatgcaccaaagatagcccaaactcttcacttgacat
-tcagagtcctccataatttggccaaaccctcctttccagcctcctattctgccactctct
-tctcaaattccggaagattccacccacaagactgcaaacaattcctggaacttagctgtg
-ttgcctccctccctttacactggcagttacttctCTTACTGTCACCTCATGGACTGGATA
-ATTTCTGTATGCCGATTGAACTAAttcagggatcctttcctctaggggtctcctctctgt
-ttaactccctccaacccagacactatcagtcagtaacctgaggacctcagtctgtctcct
-ccatcagactgggagcccccagtggacagggctccatctgATGATCAACCTCTCCTTTGC
-AGGCCCTGATAAAAGCTGAAGCGTCTAAGAGTTGCTGAAAGGAGTTCAAGTATTAGTCTC
-ACCTCTGGTGGGACAGAGGTGTGAGCACTGGAACGAGGGTGAGGAGGCCAGGTTCTTTCA
-GTACCAACCATTATCCCTAACTGTCTCAGAATAGCTGGTTGTCTCAGGAATGGGCCTCTC
-CACCCTCCACAGCCCTGCCTTCACAGTTTGTCAGCTGACTAGCACCTCTGCTCCCAAAGA
-GGCACCTCTTCCCCATGTGGGGTTAGGGCTGGTGGTGGCTGCAGACTTATAGTGATGGCC
-TCAGGGAGGTGGCTGTGGCCTTCTCTGGACCTCATCTGCTAGACAGCTTGTGACATCTGA
-TCCCAATTGCCTGGGAACCCACAACAGTTTTTCTCTCAGTGTCCTGTAActgggcctcaa
-tttccccacttgtggactgaggaggttatacaagataatcccaaagtttctGGGAAGCCA
-TCTTCCAGGAAATGATACCCTTCTACCTACCTCTCGAACGTATCTTTTTGGCTCTTGTGG
-CTTTGTTTTTCCCAACTGTATTCAcatttgtttaactcacaacaattcatcatttgctat
-gagccagacactgtgctaggtactggggatgtgttatgaggaagacatacaccagttgct
-cactggtggagcttaccttctaaagtgagaagcaagtaatgcacaggtaaacaaatgcat
-aaacaaagtaatttcaggtagcaataagtgctacgaaaggaaaagataagtagctgtgaa
-gtatagagctttagcttgagtggttcagaaggtccctttgagaaggaaacagtaagtgca
-aacgtcccaaggcaggaaagagcatcacaagtttgaagaaggaggccatggtggctgaag
-cactgcaaataaagggaagaagaggaagaaatatggtgggagaggtgggcagggcattca
-ggtcatgataaggaagctgggttttcatctgagtgtagtgaggaTATTTCCCATTGCTTA
-GCCTTCATGCCTTTCCAATCTCAGCCTCTCTCACAGCATTAGTTCTTCATTCTTCTTCCT
-AGTTCTGGCCTCTATCCATGACTTCATTCAGAGGGCTCACCTGGGCACACATATACAACC
-CTCATACTCATGCAGGACATAATTGAAACCCAACTCCTGCCGTCTACTACGCCAGCCTCA
-TGTAGGTCTCCGGTCTCAAGAGGCTTCCCATCCCAAGTGTTCACCTAGTTGTAGACTTAA
-CATTTATCCTTAACTCTTACTGTCTCTGATCCCCCACATCACACCTCTCAGGCTAGTCTT
-TCTGCAAACAACAGCAGCAGAAGCAAGAGTTAAGATGTTGAGAGTACTTgcactgtgcca
-cacactgaatgttcatcatctcacttaatcctcatgtcaacctgatgaggtagaaaccaa
-aagtatctcaccgtacagatgaggagactcaggttcacagagatcacaggccatgcccaa
-ggtcacatgccggagatggagcttgcatttcaacctgggccATTAGAGTGActctctctc
-tctctctctcttttgagacaggatcttgctctgttgtccaggctggagtgcagtggcatg
-atcacagctcattataaccttgaactcctgtgcttaagcgatcctcccaccttagcctcc
-tgagtagctaggactacagacatgcaccaccatgcctggctcatttttaatttagtagta
-ttattattactattattattattgtacagatggggtcttgctatgttgccagggctggtc
-ttgaactcctaggctcaagcagttcccctgccttggcctcccaaagtgctagaattacag
-gcAAAAGTTTTAATCATGCACTAAGAACCTAAGtgtatttgctttctattgctgcttaac
-aaaatcaccccacaatatagtggcttaaaacaacaatattttatgtttgtgtggattggc
-agtttggacatgtctcagccaggacagctcttttctgctccaagtggtctttcctggctt
-actcttacgtttgctgtcagtgaacaggccagcaaactggttagaactccatggcctcat
-tcacatgtctggcagttggttggggttgttggcttgagtgccttggttctcctccatgtt
-gcttcttcagtaagctaactcaggcttacttacatgacggcccccagaagaaagaaaaca
-aaagcagcaagatctcttcagatctaggcttagaaatgatatagcatcattttcactgta
-ttatatcgatcaaaggcagtcatatggccagctcagattcaaggagagtagaaatagatt
-ccatctcttcatgagaaaaacatcaaatcatactgcaaggagtcatgtgtataaggaggg
-tggaattgttgtggccacctttgcaaacattatatcacaTAAGTAATCGTAGGCATggaa
-ctggttaaagaaattatggtacagccagacatggggctattcacagcaatgagaactaac
-atttttgagcacttaatatgtgtcagacactgtacaagatgctttacatctattaactca
-tttaatcctcacaacagctctctgtggccagtacatttttaatccccattttagagatta
-agaacaccaagtctcagagaggttaaacaactagtccaatgtcacacagcaagtgacaaa
-gccATTGAAAAGAATGAAGACAGTATTATGTCCTGACATAGAAATCTGGCCCTGACATTC
-TGTTATACGATACAAAGCAAGAGACAAACAGTAGTTTGATCAGAAAACATTTAAAAAGCA
-CATTTAAATAATTAGGAGATGTGTGTCttttttttttctgagatggagtttcactcttgt
-tgcccagggtggagtccaatgatgccatcttggctcactgcaacctccgccttctgggtt
-caagcgattctcctgcctcaacctcccgagtagctgggattacaggtgcccaccatgccc
-agctaatttttgtatttttagtagagatgggatttcaccatgttggccaggctggtcttg
-aactcctgacctcaggtgattgcctgtcttggcctcccaaagtcctgggattacaggcat
-gagccactgcgttcagctGGAGATGTATGTCTTATAAAAATTAGTAGAATAAAAATTTTT
-ATGTCTTATAAAAATTAGTAggccgggcgcggtggctgatgcctgtaatcccagcacttt
-gggaggccaaggcgggtggatcacaaggtcaggagatcgagaccaccctggctaacacgg
-tgaaaacttgtctctactaaaaatacaaaaattagccgggcatggtggtgggtgcctgta
-gtcccagctactcaggaggctgaggcaggagaatggcgtgaacccgggaggcagagcttg
-cagtgagctgagattgcaccactgcactccagcctgggcaacagagcgcgactctgtctc
-aaaaaaaataaataaatacaataaaTTAGTAGATCTATATGTCTTATAGTTTTAGATAAA
-TTCAGGAAGAATTTACTACAAACTATTAATGGAGCTTATCTTTGAAGAGGAGAAAAGGAG
-AAAACTTTTATTTAAACACCTCTGTTTGTGTTGCTTGAATAttttttttttttttttttt
-ttttttgagacagattcttgctctgttgcccaggctgaagtgcagtggcaatggtcacag
-cttgctgcagcctcaacctccagggctcaagtagtccttgcacctcagtctcccaagtag
-ttgagaccacaagtgtgtgccatcatgcctggctaatttatttttatgttttgtagagat
-agggtctccccatgctggccatgctggtcacaaactcctgggttcaagtgatcctcccgc
-cttggcctcgcaaagtgctggaattacaggcACAAAGCCTGGCCTTCTTTGAATTTTTTT
-ATAGCAATCATAAATTTTTATTTCAATACCTTATAAAGAAGAAAATGCTTTTAAAATGTC
-CTTCAACTTGGCTCCCACCTATGTCtttttctatttggttttatttttattgttttttgt
-tttcttttttgATACCACCCCAGCCCAACCCCTTATCAATTCTGACCCGAAGTTTTGTGG
-CTACCTTGAGGGCCCCTCCTCTCTCCCTCTGTAGTTCATCCTGCCTGCTGCTGGGGGAAA
-GCTCATTAACCATCATGTTCCATTTTTGTCTAAGAGTTTTCAATGGTATTGCATTGTCTA
-CACAGAAAGTCCAAACCCTTTGGCCTTGTACATTGGGTGTTTGTAAGTTTGACTCCAact
-tggttggattccagctctgtcacttactagcagcatatagttggataagttattagatct
-ctctgagcctcaatttccacatctttttttaaaaaaatgaaagAAAAgaccaggtgtggt
-ggctcatgcctgtaattccagcactttgggaggctgaggtgggtggatcacctgaggtca
-ggagtttgagaccagcctggccaacacagagaaaccctgtctctagtaaaaatacaaaaa
-ttagccgggcatggtggcacatggctgtaatcccagctactcgggaggctgaggcaggga
-gaattgcttgaacctggaaagtggaggttgcagtgagccgagattgtgccactgcactcc
-agctgagtgacagagcaaaactctgtctcaaaggaaagaaagaaagaaataaagaaagaa
-agaaagaaagaaagaaagaaaaaggaagagagagagagaaagaaaaagagaaaagaaaga
-aaAGGATATAGCATTACATATTTTGTGGCAAATTAGATTACTGTTCAGTGACTGTTCACT
-TTCTCACCCAGCCAGGGGCAATTAAtattttcctgccccattaatattaggcttggccat
-atggtttgctttggctagtggaatatacatatcagttacaatgtgcaaattccagcctag
-gccttaagaggtctCTCTTGTTTTCAATTGGCTGTCTTAGAATTTTCACCTCTTCCTTGA
-AGGGCGAGCTGTCATTGGTGCCTTACATCTTTTGAAACAGACTTCCAATCAAGGCTGTAG
-TAGGCAAGTCTGAGATAAGAATAGTTCTTTACTCTTTAGTTTTAGTTTGCattaattaaa
-ttataatttataGTTTTTCGTGAACTCCATATTTTTGAATGAGCGGAAGCTAAAGAGGTG
-GGAAGAGAATGCTCTGTCTCAATTTGGGAAAGCAGTAGCTTCTGTCCAATCCTCCAGCAT
-CAAACAGGCTAGTCCTAGAAGAATAAAGGACACACATAGTAGATCTGAAATTGAGTCAAC
-CCCAGCAGAACCCAGCCAAGATCAGCCAAACCCAAATGACTACATATGAGAGAGGGAGAA
-ATCAATGTTTGCTTCTGTCAGCACAGAGTCTTGGGGCAGTTTGATATGCAACATTATTat
-aggaatagccaactaacagattcacatcatagggcttttttcagggttaaataaatgaat
-acaggaaacgccttaaaaatacactggcatatagcaagggtgtaatgcatgagaactact
-attATtgggggtgcaactgtgaacaaaacaagcccctgttctcaaggatcttatgttctg
-cggagagatgtatggaatggcagctggtgatgagtgttatggaagaaaataaagcaggga
-aggagagggagtgctgaggtaaaatttcaaatgtgatcatcaacaaaacttcaacggaag
-gtgaaacttgaccaaatccaagaggaagtgaggcggggagccagaaagtatgtgggagaa
-gattgtcccaagcagagagaattcggatgggcaaagaccgtgaagtaggctcatgcctgg
-tgaatttcaggaatggtcagtagatagggcagctgagccgagggagtgGCTGATCTCGTC
-TCGGCTCTGCTGGGGTTGACTCAAATTCAGGTCTACTGCATGTGTCTTTTGTTCTTCTGG
-GACCAGCCTGTTTGATGCAGGAGGTTTGGACAGAAGggggacaatgtctcagaggttcac
-aaggtactggattgtgcacagccatgtagggctatcgtgaggacttgcttctgctctgaa
-tgaggtggggagctatgggagggttttgaccaggtggagagcaggctctgctatgcattt
-ttataggatttgtccagctgctaagtgtggactagatggaccgggaatgagggctgaagc
-agggagaaaagataagaagctactaccacaagccagacaagagatggtgttgctttgaac
-caaagttggactccgaggttcttttcaaagtaaaatcaaaagaatttactgataggtgtg
-gtatggggtgtttgaggaaaaaaagaattgaggatgactccaaggcttctggcctgagga
-actgaaagaaggaatttgccagtaactgagatgaagaaggctatagaagagaacttcttg
-gggcagggggagaaagagaggaggaattagcagttccatttgcgacttgttaaatttaag
-tgagctatgagacttccaagtgcagatgactaatcagaagttagatgtatgaatctgagc
-ccaggagagaggtccaagctggagacgtaatttttgggagttactatgtactaaattttg
-tcctccccaaatttatatattgaaaccctaacacccaatgtgacactatttggagacagg
-gtctttaaaggaggttaaaagagatcatagagtgggccctaattcaacaggactattgtc
-cttacaggaagatgagatatcagagctcattctctccccatgcaggtgctcagaggaaat
-gctgtgtgaggacacagcaagaaggcagccatttacaagccaggcagagagccttcacca
-gaaaccctccctgacagcaccttgatctcagatttccagcctctcagtgagaggctgaac
-tgtgagaaaataaatttctgttgtttaatcctctcagtctgtggcattttgttatggtag
-tttgagcagactactactgagtcatcaacagagaaatggtttttaaagccatgaggggcc
-aggcatggtggctcacacctgtaatcccagcactttgggaggctgaggtaggcagatcac
-ttgaagtcaggagtctgagaccagcctggccaacatggtaaaaccccgtctctattaaaa
-atacaaaaattagctgggtgtggcggtgtgtgcctgtaatcccagctacccaggaggctg
-aggcaggagaattgcttgaacccgggaggcggaggttgcagtgagctgagatcgagccac
-tgcactccagcctgggcgacaaggaagaaactgtctcaaaaataaataaataagtaaata
-gccataaggctgggtgaaattgcccagggaatgagtgtagacagagaaggaggaccaagg
-actgcgccctggggcatccaacagtaagagacaagcaaccagcaaaggagcctgagaagg
-agcagccagtggggtaagtgtcctggggaccaagtgaaaaacgtgtttcatggaaggagt
-gttgatcccctgatcccctgtgtcagatgctgctgaggggtcagaaaagaaaagaacaaa
-gagctgatttacaaagtggaggacattgttttgacaggagagagtgtaggtaggttggtg
-ggaacaaaagtctgattggagtgggattaagagagaataggagaaaatataaatatagac
-aTagaaaggaaggaaaaaaggaaggaaggaaggaaggagggCTCtttttttttttttctt
-tttgagatgggttctcactctgtcgcccaggttggagtgcagtggtgtgatctcagctca
-ctgcaacctccgcctcccaggttcaagcgattctcctgcctcagcctcccgagtagctgg
-gattacaggtgcgtgccaccacgtctggctaatttttgtatttttagtagagatggggtt
-ttgccatgttggccaggctagtctcaaactcctgacatcaggtgatctgcctgcctcagc
-ctcccaaagtgctgggattagaggtgtgagccaccacacctggccTggagagctcttttt
-aagagtagaaagctgggccaggcgcagtggctcatgcctgtaatcccagcactttgggag
-gccgaggcaggcggatcacctgagatcaggagtttgagaccagccgggccaacatggtga
-aacccagtctctactaaaaatacaaaaagttagccaggtgtggtggtgcatgcctgtaat
-cccagctcctcaggagactgagctaggacaattgcttgaacctgggaggtggaggttgca
-gtgagctgagatagtgccattgcactccagcccgggcaatgagagtgaaactctgtctca
-aaaaaaaaaaaaaaaaaaagtaggaagcaaatgactaaatgtagaagaataggagttggc
-aaccaccataggagacaatcattaatggacactgcagtagtggattaaagtttgatgaga
-aatagggcatttgcacagtctgagaatatctccccccaagatacttattaattacaaagg
-gtaaaatagtaactttacatggagaaacacagccaacaccacttgaccaagtgataaagt
-gaacatcaccagtagcagggcaaattgacatcatgtggcttccgggatgatgcactgagt
-gggacgtcgcgtcacgtcagtgatatttctgccaaagaggcataattgactcatgaggaa
-gcattagaaaagcccaaagtggccaggcacagtgactcacacctgtaatcccagcacttt
-gggaggctgaggtgggcagatcacgaggtcaggagttcgagacaagcctgaccaacatgg
-tgaaaccctgtttctactaaaaatacaaaaattagctgggcatggtggcgtgcgcctgta
-gtcccaactactcaggaggctgaggcaagaaaatcgcttgaacccaggaggcagaggttg
-cagtgagccgagattgcaccactgcactctagcctgggcaacagagcaagactccgtcta
-aaaaaaaaaaaatgtccaaagtgaggatatctttgcaagagaaccttactctttaaaaat
-gttgaagtggtaaaagacaaaggaagactgaggaatagttttagatgaaggagaataaag
-taattacaactactgaatgcaatgtgagatcctagattaagaaaaaatcattttcactta
-ctacaaaatatattaactagatgagtggtgaaatttgaataagatctgtagattagataa
-tggttttgcatcagtgtaaaacgtcccgattttggttattataagagaatgtccttcctt
-ttaggaaatgtgtactggtttttaggcctgtaacttaccataaaagagttcagggttgga
-ggaaagaaaaataaatgataaagcaaagatggtaaaatctgggtaatgggtatttggcta
-ttctgtttttgtttttgagacagggtctcactctgttacccaggctggagtgcagtggtg
-tgatcatagctcactgcagcctcaacctcccaggctcaagcaatgctcccacctcaacct
-cctgagtagctgggaccacagttgcgcaccaccacacctgactcatttttaaatattttt
-tagagatggggtctccctgtgttgcccaggctggtctcaaattctaggctcaagcaatcc
-tcccatctcagccttccaaaatgctgagattttaggtgttagccattgtggctggtgaga
-tttgagtgttctttgtactactttgtaacttttctgtaagtgacattatgtcaaaataaa
-TTCTAACaagagagaatagaaggaaaggaagtagagacatggaggcagtgagtccaggta
-actttttgaggagttttgctatagaactgaggacaggtggcaggtggagagcaaaatggg
-gtcaagataagttgttcaaaggcagaaattgtagcatgtttttatgctgatgagagagat
-tcagtagattggaaaaaaaagtaataatgcagacagagagagagaagagagtggctagaa
-tggtgtctctggagagaaggatgggatctagtatacaaatgggggctttgaccttggagc
-acagatggctcatccatggtcacagaagggagggcagagtatttgggtaccagattggta
-ggtaggtagctgtgcagtggaaatgtgtggaaatgctttctgattgctaccattttccct
-gtgaaataggaagcaaggtccttggctaagagtgagaatgggggagaaggtgatggaggt
-ttgaaaagataggaaggaagtgtgtagggaaaatgaatggatctactgtgattgtcaggc
-agaacaaaagacaccactgaagctatcatcattcaagtaaagtgaggccagtctacatgg
-tggtgtgtttttctccagccacattccactgcagggggacaaacacagagggatgtggag
-ttggcaccaactaacaggtgtttagtcagagagggtcagggggatcttgggagtatgcag
-cacagtggggataaagttatatcatggctgtaatccacaaagaaggaagtgaggacaagg
-aaacaccaaggttcagagaggtttagtgacttacccaagcttgcacagctagtgaataat
-gagttggtctctgcatccaggcagtgtggctcaaagcttattctctcaccaacccagtat
-acacaggctgtccccagggtgtagcatagcatttggcacatgtagCCTCTGCTAACAAGT
-GAATTAAATTGTACCTGGGGTTCTCTCTGCCTTTCATTCTATGCCTCCGAAGAATACTaa
-ataaaataaaataaaacaacaacaacataaaaACCTAGCTTCTTCCTTGCCTTCAAGCTG
-TCTTTGATGTCTTAGTGTGCACGATGAAGGAGATGTACCATCAGTCTCCTTTGGGTGGCC
-ATTGGTTCATGCCTGCAGTCTGGCTttcagcaggtcattctcagcacatactctggggca
-gacactttctcaggttctcagtacacagcgggaaacaagtcagtattcctggcctggtgg
-agctcagtcaagtggggagaagataagcagacaaatctagcattgcaaactgggattatc
-gccaggagagacaagtgggcggggtatgagagtgcatgagagtaaagccgacctagtgga
-gggcgggaagaagagtttacccaaggaaggtcaggaggggtggcccatggggctgactga
-agaggagaaacagcatgggcaaaggtcctaagataggaacatgcctgttaatggcatatc
-aaggaggccaatgtggtccagacgtatatggagagggtggagggtgggagggaacatagt
-gggaaatgagatgggagaggttggcaggatccactacaccctgtagaggaatctgattta
-agaacaatagggtttaagcaggggaatgatttcgtaaggttttacatttatcagccaggt
-gcggtggctcacgcctgtagtcccagcactttggaaggctgagatgggcggattgcttga
-gctcaggagttcaacatggggaaaccccatctgtaaaaaaatatacaaaaattaggctgg
-gcgtggtggctcatgcctgtaatcccagcactttgggaggctgaggagggcagattatga
-ggtcaggagatggagaccatcctggctagtagtgaaacccctggctagatggtgaaaccc
-catctctactaaaaatacagaaaaattagccgggcgtggtggcaggcgcctgtagtccca
-gctactcgggaggctgaggcaggagaatggtgtgaactgggagatggaacttgaagtgag
-ctgagatcatgccactgcactccagcctgggtgacagagcgagactccgtctcaaaaaaa
-aaaaaatatatatatatatatataaaatacaaaaattagcagggcgtggcatcatgcacc
-tgtattcccagctacttgggggctgaggcaggaggattgcatgaacccaaggagttgagg
-ctgcagtgagccgagatcaccccactgtgctctagcctcaatgacaaagtgagatcctgt
-ctcaacaacaacaaaaaaaattttttttatttataaaagacctctttggctgctgggcca
-ggagcagggaggacaggaggcaggggtaggagtggaggtgtgggaggagaggaagcagga
-gaggagtggaggtgtgggggcaggggaggcagtgggtgggccaggagagaggtgatgtgg
-catgggctaagatggaagcagtgcagataaagagaggtggattgacttgggacatatttt
-ggagctggagttcacCACAGGGAAACTGAGGCCCAGTGCTTCCAAGGATAGCGCTCCAGC
-TCTCCCAGCCCAATGGAAGCTTTTAGATACTTCTGCACTGTGGGGGTCACTTGTGGGTGG
-TTGCATTGGGGGACGAGTGGCCAGGACAGGTGACCTCTGACTTTTGTCTGGTGATGCGTG
-AGTCTCAGATTGGGCTTTGAAGGAGCCATGGGTACCTTGCTGGGCAGGTGGAGCATGTCC
-TTAGAGGATCATCCCACCATCCTCACgtaaccctgcaggtctcttctctctgagtcatag
-ttctcacacttgtaacatgaagagggacagtacccacttAGGCGACATCACCCCCTTCTT
-ACAGATGAGACAACTAggccaggtacagtagctcatgcctgtaatcccagcactgtggga
-ggctgaggcaggcagatcgcttgagcccacacatttgagaccagcctgggcaacatggca
-aaactctgaatctacagaaaatacaaagattagctgtgtgtggtggcatgcgcctgtagt
-cccagctacttgggagactgaggtaggaggatcacttgagcccaggaggtggaggttaca
-gtgagctgagatccaccactatactccagcctgggagacagattgagactttgtctcaaa
-aaacaaaaacaaaaacaaaaCCACCACCACCACCACAACAAAAAAACCCAAAAGAAAaca
-gatgagacaactgagcctcagtgaagggaagtggctctttagggtcatacaggagtaaag
-acacagccaagactagcacccaggctagagcctgggctgttgacctttctgcttcatcat
-ttgccTCCCATACCTTTCCTGGGCTCGTCAGTCCTGGGGATGCTCAACTCACCCAACACT
-GTGTTTCAAGCCCAGGGAATCCAGGATCGGTtagttcagtggttaggggtatgggctgct
-tggattctatttccagcgccaccaaggggccttattctgtctgaaccttggttttctcct
-ctgcaaaatggggctaacagtgcatacccttgtagcactgttacaaggtaggggaactgt
-acagatgtaaTGATTTGTGTATGTGAGTCATTTACAAGCCTTTGGAGTGGCTGGCACCCA
-TCATTGTTTGCTGTTGCTGTGATTATCATGCCATTGGACTgtggcttgaaaccctacagg
-cccaaggctccctttaatagtagttataatgcttcttttctaaaataaaatacatgaata
-acataacctgctgacgcacataattttttttttttgagaccgagtctcactctgtcatcc
-aggctggagtgcagcggcacaatctcggctcactgcaacctccgcctcctgggttcaagt
-gattatcctgcctcagcctcccgaataggtaagattacaggcgcatgccaccatgcccag
-ctaatttttgtatttttagtagagacagggtttcaccatgttggccaggatggtctcgat
-ctcttgacctcgtgatccttccgccttggcctcccaaagtgctgggattacaggagtgag
-ccaccgcgcccggccatgcatagttttaaacataaataatgtcctagttgtaatttaaaa
-gaaaataaagtgaaaataatttagaataaattaatatgtaaatgttccaggacaatgtgt
-agaaaccatcacaaagtagttgggtgggctctgctctgggtggaatcattgagaatctgc
-aggctgaattggtaacgccgcactggcggcacatgcactgtgactgcatggctgtgatag
-tctgaaatgtgagcagtctaggtaaagttctgaaccaaacacaatccattctgttcccaa
-tcgctacagactaaatgtttgtctcccccaaaatcttacgtcaaagcctaatccccagcg
-tgatggtattaggagatggggccttttggaggtgattaggttatgagtgcagagccctca
-tgagtgggattagtgcccttataaaagaggccccagagagctctgctgccccttctacca
-tgtgaggacacggtgagaagccatctatgaaccaggaagcggtcttcaccagacatggaa
-tctgccagctcctggatgttggacttgccaggcttcggatctgtaagaaataaatttctg
-ttgcttataagccaccagtctgtgtaatttgttacagtggcctgaactgactaagacacc
-aatttatgtgaaggttgctttcctggcagagtcgctgttattaaaaccaagcaaaCACac
-attgtactggaaaaggcaaaactatagagacaatgaaaagatcagtggttgccagggctc
-aggggaggggagagagggatgcacaggtggagcacagggcatttttagggcaggggacct
-cttctgtatgatgctgtaatggtagataaaggatgtatgtacttgtcaaaacccagcatg
-ggccgggcgcggtggctcacgcctgtaatcccagcactttgggaggccgaggcgggcgga
-ttgcctgagctcaggagtttgcaaccagcctggcgctacagaaatcctgcttcaaatcca
-gaaaccccgtctctactaaaaaacacagaaaattagctgcgcgtggcggcatgtgcctgt
-agtcccagctactcgggaggctgaggcaggagaatttcttgaacccgggaggtggagggt
-gcagtgagccgagatcgtgccactgcactccagcctgggtgacagagcgagactctgtct
-caaaaacaaaaaacaagcaaacaaaaaaacaaaaaaaaacaaaaaatccccagcatggta
-gaactgtgcaacacaaagagtgaactgtaaggtaactgtggatttcagttaataattgtg
-tgtcaaaattggtttatcaattgtaacagatgcaccatgcatttgcactaatgcaaaatg
-ttaataacaggagaaactgcatgtttggagaaggagtacaagggaactgtctatgatttc
-tgtgtcatttttctttttcttttctgagagagggtcttgctctgtcccccaggctaaagt
-acagtggcacgattagagtccactgcagcctcaaactcctaggttcaagcaatcctttag
-cctcagcctcccaagtagctaggaccacacacatgtgccaccatgctagggaaattaaaa
-aaaaaaattgtggagacaggttcttgctatcttgctcaggctggtctcaaactcttggcc
-tcaagcaatctccccatctcggcctcccaaagcactgggattacaggcgtgagccagtgt
-gcccagtctctgcacagttttgctctaagtctaaaacttctctaaaaaagtagtctatta
-aACATAAAAAACAAAATGAAAACCCCCacacattgtgtttatatgtaaaatagaattcgg
-tccttggctcagataattaaaaacaaggtttttacctacactaattaccaaagggagatt
-tgaaaatcatgACTTGAGATGCACTGCAGGATGTCTGCACCCTTGCTCCCCTCCTGCATG
-GCCGGGGCACCCCCTGGTCACTGGGAACTCTCCAACACTCTTGGTGACATTGCCCCCTTG
-AGGATCTCTGCACTGGATCTTTGCTCCCTCTCCTGCAGAACCCACAACTGCTGACTTACT
-GATCTTGGGTGATGTCTGATTAAAAAGTCTCCCCAGGCTTAGGAAACTCAAGGTGCCACT
-GTGGACACAGCTCCCACATTTCAGCTTccagaaatcctgcttcaaatccagatcccagca
-ctccctcattatgtggacttgaatgagtcacatcaatttattgagcttcagtttccccat
-tgatgggaaaaagggtgattgataatacctgccatactttatattcataatgaatataat
-gagtatattcattaactcagtaaatatatattgaacacctactgtctgtgctgagaattc
-aacagcgagcagaacaaacatctctgccttattggagcttatggtctcgtgatggggaca
-gacaaaaatcaaacaaatatatgagataatgtcagtgataaataaaaataaggcagagtc
-acagatggaaagagggtagggcaagggatccttggtaagtgtcgtcctggatggcttccc
-agaggagatggcatttgaacagggctgggaatgaagtgaaggaacgtgccacgaaagtct
-cagggcgaagaggcaacagcaaacaccaaaaccctgaggtgggaatgtgcttggtgaatt
-cgagaaacagcaaggaggccagtgaggccggtggggagtaagagggaagagaaagtgagg
-acagagagatctggagaagccagactctgtaAGGAATTGGGGGTTTATCCCAAGTGCAGC
-AGGGAGAAAACTTGAAGAGTTATTTACTGGGGAAGGCTTCCTGTGTTGTGTGCCCTTGCA
-GGTGAGAAAAGGTGATGAGCCCACTCTAAAGCCAACTCTATGGCCCATGACCGTGGTCTG
-GGACACTTTGAGCAGAAAGCGTCCTGTTCTCCTTGGAGTCAAAGGATTGGTGACAGTGTC
-TGCCATGCTGTAGTTTCCACAAAATACCACCAGGTGACGACTCTGGGTCACGCTTCTAAC
-TTGTGGGTTCTTGATTcctggagggcttttgctaaaacacagactgctcctggccccagc
-cttccaaagcgctggattacaggtgtgagccaccacacctggccTGACAGCCATGTTTTT
-AGCTTTTAAAAGCAAAACTTTGGCATTAGCACTATctctgtgagaggggccgatcattcc
-tgttttccagatgggtctatgaggctcagagaggagaaatcattgtctccatgagcaaaa
-gtgataaaactggcactcggcccccatgtctgcctgacttcaaggcccccaatccttcAG
-GGATGCCACACccatgtgcccagtgaggctctgggaattttaaaaactcatccaatttaa
-tccttacaactgaacaaatcccatgcaacgttaatgtctccattttagagatgagaaaac
-tgaggactagaactgagaaataagtcacctgatgtcgctgagctGTTCTAAGGCTGACAT
-catgcattttggagtcagagagacctgaatctcaactctagctcacactctccctagcta
-tgttcacctgatttctctgagccacagtttaagatgggaataagagcccctcctgcttgg
-tagctgtTGGTAATATTTATGAACAAATCTAGGCCTGGGGCCTCTTAGGCTTACAGTGGC
-ACCAGCCTCTTCTGTTCTGGAATCAGGAGGGAAAGTGATTGACCCGGCATTGGCCATCCC
-TGGCCTGGCTGGGATCAGAAGGGTCCTGGAAGGATAGGCAGTACCCGGCAAAGACTGGGG
-AGGGAGCTTGCTTAGCAGAGGTGTGAGGGACCTCACAGGAGTCCCCACAGGGTGTCCAGG
-TAGGCATAGGTATGGACGGCTGGACAGGGACTCCAGTTGGCCAACCAAGAACAGGGATAG
-AGCTTGGGCTTTGGGGTCAGGCAGCTTGAAGctctgggttccagctcccagatctgtaaa
-gtggaacagtaatgactcttccctgttttggattattgagaggaCCCCGGGGAACAGTGG
-GCTCAGCTGGAGGGATGACATTCTAAAGTGTTCTCTGGGACCTTAACCCCAGTCTCACAG
-GAGATGGGCCTTTGACTGTGGCCTTTCTGAAACCTGAGAATGTTAATGGTCACATAACGT
-TAGTAACAGTGATGGCAGATAACATCTGTCATGGATTAGAGGCCACTGGGAGGTTCTCCC
-TCACAGTTCTGGGTTCTTTGGATCAGAAACATGGCACAAACACACAGCCAAGGGTGGTTT
-AGGGCCTTGCAACTTACAAAGTCCTTCCATAGCATTGCACTGCACCCTGTGTTAAGATAA
-ATTCTCCAAGCTTTaagcactctgctaagtgcttgacaggccttattttattcttccaaa
-acactttgaagtgggtgttgccttgacccccattcttcagctgaggaaatgggaggcata
-gtgaggtcaagtgacttgcctaaggctactcagctggaacgtagagcgcctcatcccatg
-cttgactctgaGTAGAGCAAGGGTTGCACAGCAAGTCAGAGGCTGAGAGGGCCTTGGAAG
-GACCCGAGGCTCCCCTAGCCACTCCTGCCTGGCACCGATTCCTCCAATCCCACCTGGAAG
-TGGCTGGAAGTGAGAGGGAGAGGCGGTAGGGGTGCTGAGCCTGAAGGGAGGTTTCAGGAC
-TCAGGCTAGGAAGGCAGAGAAGGAGAGGAGGGACGGAAGTGCCCCTTCCCCCTAGAGCCA
-CTGAGGGGAGAGATAAAGGCATGAGGAGATGTAGCTGGGGCCAAGACAAGGAGGAAGAGA
-AGAGCTCAGGAGCTAGAAGGAACAACTATCTGGGGAGGAAGCCCCGTTCCAAGAGAGAAG
-GCCAGGGATGGGAAGGGGTGGGCCAGGCCCTTGGGCTGGGGTCCTGGGTCCCAGTTTTAG
-CAGGTAGCAAGACCCCGAACTGGATAGAGGGTTGCCTTCAGTAGATACCCTATCATTCCT
-GTGTTATGAGAGGTTGGGGCCACTTGAGGTGAGCCCAGGATTCAGCCTTCGAGGCTCAAC
-ACACTTGAGTCCAGCTGAATGACAGAATGAGCCATAGGACACTGTCCCAGGCCTGACttc
-cttccttcaacaaatatctatggaggattcaccaagggccaggctgggctcccagcagga
-aacaaagtccctctgaagagagactaacaccttcgttaaggagcccccaatctcatagga
-gagatggacaaaaagcagaaaatgaattggtatccagtatcacttttggctgtaaaggtg
-atcaggggaaaatgaatggattggagtctacctattttgtgatggcggtcagggagggcc
-cctctgagaaggtgtcatctgcacagaggcctgaaggagatgaggcagtagctatgaatc
-tgggggaagagcatttcaggcaagcgcaaaggccagggcaaaggccttgaggcaagaaga
-tgctgctgtggaggaaggagggcaccaagcaaggaggccagtgtggctgctggtgagaga
-taagagagtgaaggaagatgagggtagagtccggggggcagatcacatagggcctcaaag
-gccactctatggattttagctgcatctcatgtgacatggacattgaaggaTTTTTATGTG
-TGTGTGTTTGTTTGTTTGTTTGTTTttgagagggattctcgctctgtcacccaggctgga
-gtgcagtggcacatctcggctcactgcaacctccacctcccacattcaagcgattctctt
-gcctcagcctcccaagtagctgggattacaggtgtgtaccaccacgcttggctaattttt
-gtatttttagtagagacagggtttcaccatgttggccaagctggtcttgaactcctgacc
-tcaactgatccacctgcctcggcctcccaaagtgctgggactacaggtgtaggccactgt
-ggcctgtgacattggaaggttttgagcagaggtatgtgttgtgacctgactcaggtttta
-ccagaatccccctgagagatgttctggccaccactgaagaagactggagggtagagcagg
-caagggctgatgcagggagcccagtgaggaggctGGTCAATGAGCACAGCAGTTTGGCCA
-ACGATCTGGGGTGCTAAATATCAACAGAAACAAAaatatttattgcatgctttctgtggg
-tcacaaactattctaagtggttgcttgacatggaatgcttttaatcttcagtacagattt
-taggtagatcatatttttgtACATTTATGTCTATTTGTCTCTGGACTGATTtttttttaa
-ttgagatgaaattcacataatataaatcaaccatttgaaagtatacatctcagcggcatt
-tagtatattcacgacattgtacagccacacttctgtctagttccaaaatattttcaacac
-cccccccaaagaaactttgtacccatcaaagatagatgatatttttatcctaattttaca
-gatgaacaagcagaggcgtggacaagcagagtcacgtgccccaggtcacacagccaggaa
-atggaacaagctggCCACAGGTGTTGGGAGGAACATGTTGACAAGCTGCCCAGGATGGCC
-TGGAGGCCCCTTCGGGGTCCCCCAGGTAATAGCACCAAACTGCCttttatttttatttat
-ttattttgagacagaattttgttcttgtcacccaggttggagtgcaatagtgcaatcttg
-gctcactgcaacctccgcctcccgggttcaagtgattctcctgcctcagcctcccaagta
-gctgggattacaggcatgtgccaccatgcctggctaattttttgtatttagtaaagacag
-ggtttcatcacgttggtcaggctggtctcgaactcctgacctcaggtaatccaccgcctc
-tgcctgccaaagtgctgggattacaggcgtgaaccatcatgtccagccCAAATTGCCTTT
-TAAGAAGGGCATGTCagccgggcgcggtggcttacacctgtaatcccagcattttgggag
-gctgaggcgggcggatcacctgacgtggtgagtttgagaccagcctgaacaacatggaga
-aacccgtctctactgaaaatacaagattagccgggcatggtggtttatgcctgtaatccc
-agctacttgggaggctgaggcaagagaatcacttgaacctgggaggtggaggaggttgcg
-gtgagccgagatcacgccattgcactccagtctgggcaacaagagtgaaacaatgtctca
-aaaaaaataaaaataaaaataaaaataaaaataaaaaAAAGAAGGACATGTCCTCACTTC
-TGGGCTTTTGTTTTGTGGAAGGGGTGGGATACATTTGAGGCCAGAAAACAGAAAGCACTG
-GGAAGGCTGAACAGTGGCCCCTGCACCCTCTCTcaggatggtgcacagaggagaatgggg
-actctggagccaggctgttgagttcaattcccttctcccacctttcttccatgttgtgaa
-gttgggataataagagcaccaatctcatcagtgttgggggaaagtgaatttcccatcagt
-agagctcagcactgcccgtagtatttgctcaatcaaCAGCAGCCTGCATTCTCTTTGCTG
-CCCTCTCCACTCCAGGAAATAAGTTAAGCAGGTACCTAAATGCAATCTCAGTGTTGGGCC
-TCGTAAAACATCTGGGACAAGACATCCTCCATTACCAGAAAAAATGCAGTCATAAAAATC
-TCAAGGTTGACAGGATAGTGCCCAtttttatttatttattattattattattattttgag
-agaaagcctcactctgtggcccaggctggaatgcagtggcacgatcttggctcactgcaa
-cctccacctcccaggttcaagcgattctcctggctcagcctcccgagtagctgggattac
-aggcacctgccaccacgcctggctaatttttgtatttttaggagagacagggtttcacta
-tgttggccaggctggtctcgagctcctgacctctagtgatctgcccgcctcggccaccca
-aagtgctgggattatagatgtgagccaccgcacccggccCTGATACCCATTTTTAAAAAT
-CACATACAATCAAAATTCAGGATATAATTTACATAAAAACAAAAGCACTCATTTTGTCCA
-TCCCTTGCTTTGGGTTTATCTACCGGTCTTGTTGACTCCATTGCTAATATACATCCAGGT
-CCCATCCCATCTTCCCAACCTTTCCCAGTCTTTCATCCTTCAGCTGCACCTCTATGGCAA
-GGAGCCACCTCATGAACATCAGTTTCAGACTTGACAGCTGATGGCCGGGGGTGCAcatgg
-gcttgtggagacacggtcagggagccctgggtctacacctgagtctgcctgggccgctgt
-ccgttgtgtaatcttcatcaggccacatcctctctctgagtctcagttttcttttcctta
-aattggagatgaaaaagtctgtctcacttggcagtcaagaaggtccaacaggataaCTTC
-ATCCATGGTGAGAGAGTGGAGGAGAGGCCCCCAGGAGGAGGCAGGGATCTCATTCTGCGG
-GTACTGTACTTGGTTCTGGGAGTGGGATGGCAGACAAGCGTGTCACTGTCTTTGTTCTCA
-GAGCTTTGGTTGTGGAACGGGAATGGGAAGGTAAGGGAGGGTACCCCTGGCAGGGGCACA
-GCATAAACCAGGGTGTGGAGATGGGATGGCGAGGCAGGACTGCCCCAGAACTCTGTCCCC
-AGGGGCTGGCAGTGCTGAGAGGGACAGAGGGAGAAGCGATTGTTTATTCTCAGCCTCAGG
-AGGACGCAGGAGAATCTCAGGCATCAAATTTAGTGCAGCACACCTGCCTAGGCAAAACTG
-GACAGCTCCACCTCAACTTTGTAGAGGGGCAGAGAAAGCTGTGGGGAACCACCTTCCTGC
-TCTTGTCATGAAGTCCTCCTCAACTGGAAGCCCAAGCTTCAGGCCAGGAACTTCCCCAGC
-AGAGGCAGCCTTCCCCAGGGGGCCAAGACCTTGGCAGAATGTCTGGGGTGCTCATGGCAG
-CGCCTCTCACCTGGCCCCTGCCAAATCAGTTTCTGCTTGGCCTCTGCAGGATCTGACCTC
-GTTGAGTCCCCAGGGCCCAGTTCTCTGCCTCTGAGGCTAAAAGTGAGATCGTTTCCTGGT
-TGAGGAGTGACTAAAAGACTTCTGTGTgtagagactgggttttgctgtgttggccaggct
-ggtctcgaactcctgaccccaagtgattcaccTTAAGGTGAATGTGTGGCTGTGTACGCG
-CACGTGCAGAGCAGAACCATCACTCTGCTTGGGCTAGGCAGCTGGACTAATCGTCCATTT
-CCCCCCGCCCGGAGGCCTCTTCCAGGCCCCCAGCTGCCCTGATGGGCCAGGTCAGCCCCC
-CCCACAGGAGCCCCCAGCCGCTCCCCATTCGGCTTTCCTTGTATTGTGCGCTGCCTGGTT
-TCTCGAGGAAATGGGGCGGCTGCTGGGTGCGGGGGCGGCCGCCAGCAGCCCCACCCCCTT
-CCCCCCATTGTCACTCCTGGCTTCTGCCCCTAGCCCCTGCTGCTGACACTAAAAATAGAC
-CTGTTCACAGGGAGACGGCCCCACCCCTGAGCGGGGCCCCAGGCTCAGTGTCAGGTTGGG
-TTTGCCAAGACAGAGCTGCCCTGGGGACTGAGGTGGCTCAGCTGAAAGACCGGGGTCGAA
-ACACGTTAGGgctgtgtgaccttaggtccccttttctcctctctgagcctcaatttcctc
-acctttaaaatggggtaaggctacctacctgctaaggttgctCTTGACAATGAACAGAAG
-CTGGGTGAGTCACAAGCGCACTTCGTTCTCGTCCTGCCCGTGGTTTGGTGCTGCCTGAGC
-GGCTTGAGAACCTGGAGGACAGATGGCATAACACACGCCTTCATCTTCAATCTGCCTTGA
-ATGATTGCCAAGGACTTCCAAATCCCCCTAAACAGAGGAGCTGGAAGAGCCCACTTGGGA
-ATCCAAAAGTGTCCGCAGCTCTGCTGTGTGAGCCCGGGTAGGTGCCTCCTCTCTGGCATC
-CATGagctcacacgtgaagtatgcagccaggctgggactcgaacctgtgtctgcagcctc
-tgaagactgttttttccgctttaaggggctgcctcCATGCTGATGACTCCAAGGACTTCC
-TGGCTGGGATAACCCTGCCTTTTCGTCTACAAACACATGATTCATGGTGAAGGAAGATGC
-TGGGCGGTGGGCATGGAAGCCTGAGCTGGGGGCTGGGTAGTTCCCCTTGAGCCCATGCAG
-ATGGGCAGCTGTCCTCAGATGCCACCCGCAGCCATTGGGTTGGGCCCTGCAAAGGAGATA
-CTGGCATGTGTCTGTCTACCAGGCTCTTTTTTGTTGTTGTTCCTTTGTCCTTTTTTTTAA
-ACCATGGAATATTTCAAATATGGGTCTTTCATATACATTCAAAACCTTGAACTCTTAGAA
-TTACTTTTGTCACAGTTGCAATTTTTTTTTAAAtttttatttcatttgtctatttatttt
-ttgagacggagtctcgctctgttacccaggttagagtgcagtgacctgatcttggctcac
-tgcaaccttcgcctcccaggttcaagcaattctcctgcctcagccttccaagtagctggg
-attacaggcacgcaccaccatgcccagctaatttttgtatttttagtagagacagggttt
-taccatgttggccaggctggtcttgaactcctaacctcaggtgatcggtccaccttggcc
-tcccaaagcgctgggattacaggtgtgagccagcgtgcctggccTGCAATTTGATATATG
-TCTATGTAATTACCTATCTCCCATTAATCCTGGGCCCTAGAACAGGGACTGAGACTTTAT
-TATTAATCCATGTATTCCCCCCCAAAACAAATACAGTACTGTTATTCTCCCACACAGACC
-CTGAGAGCAAGCAGACTTGTCTCTATTGTTTGTGTTTTGGGATTTGTGGGGACACCTTGT
-GACCCAGTTTTGTTGTAAATCTTGTCCATGGGGTTTTGGTTTTGCTACCTAATTGCTTTG
-CCAATTTTTATGTGGGGATTTAGAAAGATTTAAAAGCTGAGTTTTCCACTGCAGACATAC
-CCATATTCCCGAATCTTGACTCTTTCTAAATACATATGTACATGAGAAAAAAAAAATCAG
-CACTCAAGGTATTCAGTGACAGGTTTCTCTCAGAACCTGGAAATGCTGGAAATGACCACT
-GTTGCTTAGTCGGGGCTCCtttctttcttttttttttttttttgaggcagagtcttgctc
-tgtcgcctaggctggagcgcagtggcgcaatcttggctcactgcaacctctgcctcccgg
-gttcaaggaattctgcccaagcctcctgagtagctgggattacaggtgcatgccatgact
-cccggctaattttcgtatttttagtagagatggtgtttcaccatgttggccaggctggtc
-tcgaactcctgacctagtgatctgcccacctcggcctcccaaagtgctgggattacaggc
-gtgagccaccgcacccagccTGAGGCTCCTTTCTTATATTTTATGTGTATCAAGCAAACT
-TAGGTACCTGGTCTAGTTCTTACACAAAGAGTGTACTTCCCCACTTAAAAACGGCTACAT
-TGggctgggtgtggtggctcatgcctgtaatcccagcattttgggaggctgaggcgggtg
-gatcatttgaggtcagaagttcgagaccagcctggccaacatggtgaaaccctatctcta
-ctaaaaatacaaaaacattagcccggtgtggtggcagatgcctgtaatcccagctactct
-ggaggctgaggtgagagagtctctcgaacccaggaagcggaggttgcagtaagctgagat
-cacagcactgcactccagcctgggtgacagagcaagactctatctcaaataaataaataa
-ataaataaataaataaataaaataaaATGGCTACATTAAAAGTAggatttttagcttttg
-ttccatagacctcttcggcatatggtgaagtggggatggaccccttctcaaaatgtggtt
-tttttttaattagtctttttttttttttttttcaatagaggtggcgtctgactatgatgc
-ctagcctggtctccaactcctgggctcaagtgatcctcctgccttagccttccagacagc
-agggattacaggcatgagctactgcacctggatttttttttaatgttttataaatgcata
-aaataaaatgcacgatattacaaaggaaaccaattatactgaaatgctattactgcaata
-taaacaagggtttgtgatgcagtgatgaggtgaacttctttattagtacattaaataaca
-agatggggaagcaggttgcaggtcaccatgaacgtaaacaatatgtaatgttatctgcaa
-ccactgtgatatgaaatgaaagtatctttgacttctgttgtaacagtcactgctaaccct
-accatgcttcttgatccacattcatacttgaaggaaatgctgcatttcaattagaggtta
-gtgaatataaagttattttttcccacctaagttcatgaagtttctgagttctagatcagg
-taaagaacccctgCTAAAAATTGTGGCTGTCCCTCACTTGATTCAACCAGTCTCTTATTG
-AAAAGTCACCCCacctcagcatttcttcaaatctcatccttatgcagttggggaaactga
-ggcccaggctggagaacaaacttgggtcattctgccctggggggattgcagaatccagtg
-tcctgattcccggctcaggttattttccagctcctcccctaccagGCGGGTGGCAGGGAC
-CCCCCCTCGGCCCCACCTCCCTGCTCGCCAGGAGCAGCTGGCGTCCTGTCCCGAGAGTGA
-CCCAGCCCCGCCCCGCCCTCGCCCCACCCTGGCCGGCCAGCTGTGGATGTGACAGGAGGC
-TTGGCTCTGGCTCACTCCGGCACATTCCTGGCCCAGCCACTGTTTTCCTCTTCTTCTTTT
-TTTTTTTGGTGGTGACTTTTTCTCCCATACCCCTCCCACTCCTTTTCCTCAAAAATGCTG
-TGTCTTTCCCCAGAGGGTCCCTCTGGGCGGCTCCGGGAGGGAAATGTGGCCTGGATTTCC
-TGGAACGCGTGGAGCTGGAGTCTCAGCGCTGGGAGGAGGGAAGCTGTTGGCAGCAGGGCA
-CCCCCCCAACATAACTGGGCCTCCCTGGAGAAAGAGGGTGAGCGGAGCCTCAATATTCCC
-TTTGCACTGGGCCCTCTGAGCAGTGGCACCCGCAGCTGCAGCGAGTGGGCTGCTGCCTCG
-GGGATAGTGAGACGCCTCTAGGAAACCGCGgctctgtgatcttggggaagctgggcattc
-tctctgagcttgggtttccttgctccttagaactgaggatgtgatctggatctgccacag
-ctggtgggacagtccagtgaggcgatggctgtaCATGGTCCCTTTCCAAACAGGGAACAA
-GAAGCGAGGTGTTGGGGGCATCTGGGGATGCAGGTTTGGGGGCTGCATTTGGGGCAGCAG
-GGGTGGAACAGAGAATTTCCATCCTTCCTTCTTACCTTCATTCATTCATGAGACAAACGT
-GTATCAGACAATTACCATTGTGCCTCTCGGGGCTCacaataagagacaagtaaatgtctc
-ctgtaggggcaggtgcagatgagtgctctaagaaaaagtgaagcagggtGCAGGGATAGA
-GTTTCTGAGGGTGCTGGGGGGAGCTGCTCTGCTGGGGCACCACATGAGCccaggcagagg
-gagcagtgggtgctgaaggctctgaggtgggagcaagcaaggaagggaagagaaggcaag
-gtttgtgtggagtgggggagacagcagagagggctgtggggacttctgggtgaggcgagg
-actttggctcgattcatgggaagctacgaagggctttgagcctgcagtgacacagtctgT
-AAAGGACCCACGGGGCTCTACAGGAGGTgcgcacgtggaggagtgacttggaggccaagc
-agctggggtcctggcttcagctcctccctggctctgtgagcgtggacaggatgcttctcc
-ttgagcctcattttcctcctcagtagagtgggctcatggagctctgaagactaagaggaa
-gggTCATCAAAGTGATGACCCTTTGCCATCACTTTGCCTGTGAGCTACAGGTCTCTATAA
-GTGGGAGCTGTTTTTTTCTATGAGCCTCTGAGGATTGGAGCCACTTGCTTAGGGGGAGGC
-TTTGGGGACAGAGCCAAAGGCTGGTTCCGAGCCCAGGTAGAGCAGTGGCTGCTCAGATTT
-TGGGGACATGTGGTGTCATGATCTGGGAGGGGGATATTCTTGAGTTGTCTGCAGCCCTTT
-TCCCCTTATGGGTACGTGGCTGGATTTAGGGAACCCTAGGGCAAGGGAAGAAGGGCTAGG
-AGCTGCCCCTGAGATCTGTGAGATGGGAGGTGGCCGGGTGTTCAGAGGTTCTCTGAGGTT
-GCAGAATGCCCTGTCAACCACTCTCCCATACCCAGAGGGGGCTGGACGCATCCCTCTCtc
-ccttgtcctcagtctcgattttctcatctgtgaggtgggcacaacaagtcctaatcctgg
-cagTGATAGGAACGTTTGGGGAAGCAGTGATTTGTCATGCATGATGCGGTCGGACAGGAC
-CCTGCCCTTAAGAAGGAGGGAGCCCACCTGCCCAGGCACTGTGCTGAGCTTCTGTGCATT
-AGCTGAAAGTGGACAGGATGACGTCACTTCACTGGAACTTTCTGTGGCTTCTCTTTGCTC
-TCCTATGGAGGTTCCATGGGAGGTAGGAGCTGGGGGCTAAccctgcataccttataaacc
-tcaactctcacatcctcctggctttctgtgtccaggttcacaggcctcctgaatctccct
-ccttaatgcccacgttgttctggcctctgagacattgtgttactccctgaattccttcct
-cttgccctagtaaactctccctccctgctcagctcagtttaactatctcttcctagagga
-agcccaccctgtcctgtagactaggctgagtctcacattgcggcatcttaaggtgctgcc
-tcctctcctggtaacacctgtcgctgttgtaatttcacaggtgttgctgcaattacctgg
-ttgctgactctccccacattaggactgtgtgttccatgagggcagggacgttttctcgat
-cacagccatatccccaacagtaatagcaaattgcagatgctcaataaatgctttctggat
-aaatggaGGGGTGAaatcattttgacaatcagaagaagaaggtgccccccttttacagat
-aaggaaccaaaggtacagagagattaagtaacatgccccgaggtcacacagccagaatca
-gatggTGTCTGTCTGGGAATGTGTCCCTGCAAGCCAGGCCTAGAAGGTGGGCAGATGGGG
-TTACGCAGAGAGGAGCTAGGACCATCTGGATAAGGGAGGGTTGTGGGGGCAAGCCCCACC
-CATCCTTGTTTTCTCCATTCGAATAGTGGTTTGTGGCTGTTTTCCTCAAGGGCGACTCAG
-GTGACCTTCAGGTTGGGGCCTCCTGGGTCCCAGGGGCCTGCTGGGTGGAGGGCCCGGTCT
-GGCTGGGCTGCTTTTCTCGCCCCTTTGCCGGCCCGCTGGCTTCACGCACAGATTACAACT
-TCCCCTCTTCGGCCGTCTTACGCAGGCCACCTCCGGCTCGCCATTGTCTCATTGTTTGCT
-GAGGGAAGCTCCAGGAGGAAATCAACCTGCTGCTCACCCCAAGCAGGGAGTTTCACCCCC
-AGCCCCCACCCAGGGAATGCCTGGGGGGAGGGCAGGAGGGGTGGGGGCAGGTAGCAGGCa
-atgcaacaggcagccttgaagggagtgagctccctggccgggaagtatgcaagcagaagc
-tacatTCACAGCACCTATTTACTAGGTCCTCTCCCAGGCTGCACGTCAGGCAGCTGGAGA
-CACAGATGCTAGAAAAGGGTCTTGTCCTTAAAGACCCTGTAGCCTAGAAGAGATGCTGGG
-CAGGGCCTCAAAGCCAAATGCCTTAGGGGCCAGACAGGTGACAGAAATCTGTAGGCCTGC
-GAGCAATGCTGAGTGGTCGGGACGTTAAATGAAAACTATGGTGCGAAGGAAGGCTTTTAG
-ATTCCAATTTTATTTTAACATGTTGCTAATCAAACAAATGAGTCCTCCAGCCTGATGTAG
-ACTGCGGAACCCCAGCCTAGCCCTTTAGAAAGGAATTCTTGTTCTGGGGTGAAATTGGAT
-CAATAGTTATTGGTGTCTGCCCCTATGCCTTTAGCTATAGCTGTGATGGGCAGTTCCCAG
-CACACTGACAGCATCCCTTTTCAAACACCCAGCAGTCATTTGGCTTCTCTGAAGACTTGG
-GAACTCTCTCAGGGACCTGGgaggagttgatgccactaggggcacccctcagtcaatggg
-gaatgggagttagtgggtaaatgccccatcctcttatccattggaagttcctggtcactc
-aaaggtctgcagtgagttgggggcactggttgcccatactggaaactggctcaataactc
-actttttatccgtttcccctcttcgctgtcactctcccagatccctctggcttcctgggc
-taccggctcccaaattcttgtctcaggctctgcttttaggggaacccaaactaaaacaGT
-CTCTAATATTCTTTCCAAATAGCTTATGATTGTACACTTAGGTGATTCTAATATCCAATG
-ACTTTAACTCTGTGATTATAAGTTTTCATAAGTAAACCCAACTGTGATTCCAGAATGATG
-TCATTCTAATATGGCCGAGATACACCTATCAGAACTGGAATGCTCCATTTTGTACAACTG
-AATTTTGCTTCTCTTGAGCTCCTATTTTTTTTTTCCGATGCCAGAAAATGCAAACTTCAA
-AAAAATCTAGACAAAAACCAATTATTTCAGATTTGAACTCAGTTGGGTGAATCAAGCTTT
-CCCTGGCATCCCTTTTTTCCCGGATTCATTTAAGTCCTGGAAGGGTAGAGGCATCTTGGC
-ATTGGTTGAGGGAAGAAGGGGTCTGTGACTGGTGTTTCTCAAGCTATACCAACCCATCTG
-GCTCTCCAGCATGCTTCTGCCCCCTTGGCATTCACTGGAGATGACCCACTCATGTTGATG
-CTTTGATCTCTAGGGTCAAAGAAGCATAGCTTTCTCCTCCTGGACCATACACTGTAAGAG
-TCACGTCCACTCCATTCAGTCATCTGAAAAGATGTGTTCACTTTTTACACCTCACAAGGC
-CCTGTATACAAACTCGtcattcaatcaaatgtacttgctgagtatccggcatgtgttggc
-attgagccaggcactgaggatacaaagatgaaaagacaggtccctttcctcaagtcattt
-gcaagccaaataatgtataaatattttcaacttacatattgtgatgtccattatgaagga
-accaaatagggtaggcagagaaagcctctttgaagagctgtcattggagccaaagtctaa
-agtcaggggaagccacaaaaaggtttagcaagaaagaCATGTCTGATTATATCTGTAACT
-GTAAAACATTTTCtttttctctttctttcttttattattattttttggagacagggtctc
-actttgtcacacaggccagagggcactggtgcgattttggttcactgcagcctcaaccta
-cggggctcaagcgatctccttcctcagccccccaagtagctgggattctaggcacatgcc
-accatgcccagttaatttttttgtattttttgtagagatagggtttcaccatgttgccca
-ggctggtctcgaactcctgagctcaagtgatatgcccaccttggcctgccaaagcattag
-gattagaggtgtgagccatcacgtttggccGGTAACTGTAAAACTTTTTGTAATACTGAA
-GGCATCTCCTGCATTTTTTCATACATTTTACTTTTCCCCTATTTATTGGTGGCCTCCATC
-ACCTTAGAGATTCACGTCTCAAAGGACAAGAGTCATGGAAATTTAGTCAAAGCCCTGAGT
-AATTTGAGAGTGTACAATTTATGCCATAAATAATAGATTGAGAAGAATAGATGAGTCAAA
-TTGGTTTTCCTCTTTAGGAAACGAGATAAAGATTATCGGGAGGTGGGGAGAAGGGAAGtg
-tagcagagatgtccagctgtcatgcaattacccgacttccccttcttctatagctgcaga
-tggccatgtatctacactgcatttcgctgtctcccttgcagtttaggcgtggccacgtga
-ccaggctctggcaaaggatatgtgaaccgaatggtgtgtgcaacttctgggtcatgcatt
-gaaagaaaaaaaggggcatcctcttcccacacctcttcttcccttcctgccagctagaat
-ttggcatggtggcaggagcagtagcagccgtcttagaccacaagactgaagccacacgtt
-gaggatgtcagaacaacaaaatggaaggatcccaggtatctgacgtcatgggactcatag
-cggcctagactgcttgccccctactggttagtgagagagaaatcaaTAGCTGAGTTAGCA
-TCCCAAGTAATACAGAGGGTCAGAAATATAGGAAATTagcctgttgctgtggctcacgcc
-tctaatccctgcactttgggaggctgagttgggcagatcacttgaggtcaggttttgaga
-ccagcctggccaacatggtgaaaccctgtctctactaaaaatacaaaaactagctgcggc
-atggtaggacatgtgcctgtaatcccagctactcaggaggctgaggctggagaattgctt
-gaacccgggaggcagaggttgcagtgagctgagattgtgccactgcactccagcatgggt
-gacagagcaaggctctgtctcaaaaaaaaaaaaaaaaagaaaggaaagaaaTATAGGAAA
-TTAGTGTGCATAGACACTGGTGTAACCCTGAAAAAAGAATAGAAACTTCGTGTGGTCTTG
-AGGGGTCTAAGGTCTGGGCCCAGAGCCTTAATTCTGGGTAGAACCCAAGGAAGCCATGAA
-CCTAACTGCCTGAGTGTGTGTGCAGGCACCTGGAGCAGGACACTTCAGGGGAAGGGAGGT
-GAACTGAGGGGAAAAAGCAAAAGAAGACACCCAGAATTGACCAAGATTAAGTTTCTCCTA
-CCTAGTGGAATGGAGGCTATTTATTTTGGGTGTGAGCTGAGAGTTGTACCTGCTTCCCAT
-TTTATTATTATTGTATTATTATTCCTGGATCCCAGCCCAGCAGTTAACAGGAACCTGAGT
-GGAGGCTGAGTTTTATCAATAAATTTTTGCTGAGCACCAaggcccaggctcaggtcccag
-cctagctccctacttgctgggtggccttgagcatgttacttctcttttctgagccttggt
-gatctcattgggaacataaaggggttgaactccaggatgctcaaggtggctctttttgca
-ttgatgtcctgtggttttTCTCTGGGTCTGGCAATGAGGGCAGTTCAGGAAAAGTGTGAT
-AAAATAGCTCTACTTTAGTTCATAGAGGGACAAGACACAGTCACATGGGcacacatgtac
-acacacacacacacacacacacacacacacaAATGTGATTAACCAAACATCATGGTAGCC
-AAGAAGATATGTAGCATTAAGGTTTagaatacaggctttgaagtcaaacagaccagagtt
-aacaacctcattttgtttttattTTCTTTTTTAAAAtttttttaaaattatactttaagt
-tctagggtacatgtgcacaacgtgcaggtttgttacatatgtatacatgtgccatgttgg
-tgtgctgcacccattaactggacatttacattaggtatatctgctaatgctatccctccc
-tcctccccttaccccacaacaggccccggtgtgtgatgttccccttcctgtgtccaagtg
-ttctcattgttcagttcccacctatgagtgagaacatgcggtgtttggttttttgtcctt
-gcgatagtttgctgagaatgatggcttccagcttcatccatgtctctacaaaggacatga
-acacatccttttttatggctgcatagtattccatggtgtatatgtgccacattttcttaa
-tccagtctatcaatgatggacatttgggttgcttccaagtctttgctattgtgaatagcg
-ccgcaataaacatacatgtgcatgtgtctttatagcagcatgatttataatcctttgggt
-atatacccagtaatgggatggctgggtcaaatggtatttctagttctagatccctgagga
-attgccacactgtcttccacaatggttgaactagtttacagtcccaccaacagtgtaaaa
-gcattcctttctccacatcctctctagcacctgttgtttcctgactttttaacgatcgcc
-attcttactggtgtgagatggtatctcattgtggttttgatttgcatttctctgatggcc
-agtgatgatgagcattttttcatatgtctgttggctgcataaatgtcttcttttgagaag
-tgtctgttcatatccttcgcccacttgttgatggggttgtttgtttttttcttgtaaatt
-tgtttgagttctttgtagattctggatattagccctttgtcagatgagtagattgcaaaa
-attttctcccattctgtaggttgcctgtttactctgatggtagtttcttttgctgtgcag
-aagctctttagtttaattagatcccatttgtcaattttggcttttgttgccattgctttt
-agtgttttagtcatgaagtccttgcccatgcctatgtcctgaatggcattgcctaggttt
-tcttctagggtttttatggttttaggtctaacatttaagtctttaatccatcttgagtta
-atttttgtattaggtgtaaggaagggatccagtttcagctttctacatatggctagccag
-ttttcccagcaccatttgctaaatagggaatcctttccccatttcttgtttttgtcaggt
-ttgtcaaagatcaggtggAGCaaccccattttcatcactaactagctggtgaccttggat
-aagtcactttatttctctgagtcttgggtttctcccatttaaaaggaggatgataatacc
-tatatttagggctttcatgtaataaaataaggtaatttatgtgcagctccaagatcacgc
-tgggcacgttacagatactcagtaaatggtggttattCTGATGAGGATTGTGAGCCATGG
-TGAGAATCAAGTGAAAGGTGGAGAAGGGCAGAGCTGGTGGGTCTTGAGTATGGACTAGGA
-AGATCCATGAAGTCCAGGGTGTAGGGAGGCTCTTGGAGAAGGCAGGACATGAGCAGTGCA
-GGGATGTGTAAAAGCGTGACCAGATGGGATGAAATACCCTTTTAGGAGAAGGAGAAAATA
-GACCCAGAAGCGAGGTAGAGCCAGGcttgagaaaattacttcctctttctgagccttatt
-tttcctcttggtaaagcgagtgtaacaatatctgccttgcaatgttgttatagcgattat
-tgagatgttagaagtcaagctcccattaagatgcctggctcatgtaaggcatcaaatatt
-agtttcattCCTTTCCCAAGAGAGGGTACTCACAAAATATCATCAGGGCTAgtaacacag
-aggataaatatttgaggggatggatacctcattctccatgatgtgattatgtcacattgc
-atacctatatcaaaacatctcatgtaccccataaatatatacaccgaatatgtaccccaa
-aaattaaaaATAAACAATTTTTAAAAAAATCCCCCAAAACAAAAACAAATGAACAAACAA
-AGACAAAATGTCAGGGCTAGAGTGACCCTCAACGCCTTTCTATGGTAACATACACATCTA
-TTCATGAACTGTTCACACAtcattcatcaatctatacagctatcacttatgcatttttca
-tatatccattcaaacaccaacaattcattcatcacccattgttcattcatctagccaaaa
-gtccattcatccttcactcaccatctatccttatccatcatcatgcattcatcagcaacc
-ttccatctgtctacctatcatctattctatattcatccttcatcaatctatttcatatcc
-atacacccattcagccagctactcaagcagccatcattctttcatctgtctatccattta
-tcatttatccatcatccacctatccacctgccattagttagccatcaccatctctcatga
-atttatttgttcctcaactatccattcttcatgcatctatccatctatttatcactcaat
-gatccatccatccattatttcattcatCATTTATGCACCCACCATTTTTCACGCATGAAA
-TATTCATCCAAAATCTATTCTTCATTTCTTCATAGCTATCATTTACAAGCCAAACATCAA
-CCCACCAATTTACTCTTCCTCCCTTCCTCTTCCATGCATCATCCATCCTTCATTCACTCT
-TTCACTAAACATCTGTCATCTATTAGCCATGCCTATCATCATCTATGTATCTTCCATCGA
-CATAACCACCTACGATCTATGTAATTTCATCATCCATCTGTATATGTTTatccagtcatt
-cattcatttatgtttcatcttccatattgcctgtcaggtaacatacaccagagatacaga
-ctaaataagctacaacctgtcctccagttgttcagagtctagtggagaaagataaataag
-cctatgatagctgctgtaccagaggaatgactgtaccaagcaccccaggggagaccacac
-aggagagagccacagactctgagggaactggggaaggactcacaaaggaggtggcagttc
-attaaactgggtctcgaagaatgattagaagGTCCACTGttttttttttttttttttttt
-ttttgagacagagtctcactctgtcccccaggctggagtgcagtggcatgatcgtggctc
-actgcaacctctgccttccaggttcaagcaattctcgtgcctcagcctcccgagtagcta
-ggactacaggtgcccgccaccaggcctggctaattttttgtatttttagtagagatgggg
-ttttaccgtgttggccaggctggtctcgaactcctgacctcaagtgatctgctcctgacc
-tcaagtgatctgcgcgacttggcctcccaaagtgctgggattacaggcgtgagtgagcca
-ctgtgcccagccCAAAGGTCCCCTGGTATttttatggggggaaatgagtcctaagagggg
-aagtgactgtgcataatcatactaagagttaattaacaggacagagacttgtaaccaagt
-ctctagcctactatactagttctgtttccactTCTTATGGGAAACAGTAAGTTACTCAAG
-GGAAGACAAGTAAGCAAAGAAAACCTGCCTCGAAGCACCAGAAGGCTGCTGTTTTAGGAT
-CTGGTTGTAGATGGGGTGGAGAAGGGGATTTTCCTAGACCTCAGCTTCTCATTCAGGGAG
-AGGTAACAGCAGAAGCCCCAGGAATATTTGACAAAGGGCAGGAAAGAAGGAGGAGGAGAG
-ACAGAGCACAGTGAGGTGAGGAGAAAAACAggtcaggcacagtggggctcatacctgtaa
-tcccagtgttttgagagatcgaggtgggaggatcacttgaggccaggacttggagaccag
-cctgggaaactccatctctaccaaaaaaaattaaccgggtgtggtagcatgtgcctgtag
-tcctggctgaggcaggaggatccccttgagcccaggagtttgaggctggctgcagtgagc
-taagatcgtgcctctgcactccagcctgggtgacagagcgagcccctgcttcaaaaggaa
-ataatataataataaaaaaaCCCCACCTACTATTTTCTTGTTACCTTTACTTGGGTAATT
-AATAATAATATTGTTACTGCTTggcacggtggcttatgccagcaatcccagcactttggg
-aggccgaggtgggtgggtcatttgaggtcgggagtttgagaccagcctggccaacatggt
-gaaaccgtctctactaaaaatatgcaaattaaccaggtatggttacacatgcctgtagtc
-ctagctacttgggaggctgaggcaggagaatcacttgaatccaggaggtggaggttgcag
-cgagccgagatcatgccattgcactccagcctgggcaacagagcgagagtccatgtcaaa
-aataaaaataataataaTGTTGTTAATATTCTAGCagccatgttttattgagcacagact
-acgtgctgaacagtgtgctatagatttttcatgcatcataccattttatacctcaccctc
-agcagccccaagaagcagttattactcttgtccccattttgtgaatgaggaaactaagtt
-cctgagaaggtaagctaggatttaaatatggtctgtgtgactacaaattccatgtccttt
-ccactcctctttgctgcctctctCATCGTTCTTTGGGTATGGTATATAATAAGTGACTCA
-GACATACATGTGCATTCACTAAGATATATGCTTCATTTTACTGGAGATTTTCTCTGTATC
-CTCAGACTCTGAAATAGTGGACATAGTAGGAAAGAAAAAATTTGTTGAATTTTCATAGCT
-ATCATTTACAAGCCAAACATCAACCCACCAAGAAATATCTTCTATTTCTTGTTGAATTAT
-CTTGCAAAGAAAATGGATAATCAATTAGAATATAGGGTATACAGGTTTGTCTATTCTGAC
-ACAAGTCCAAAGttttttgttttttttttttgagataagagtcttgctctgttgcccagg
-ctggagtgagtgcaatggcacgatcttggctcactgcaacctccgcctcccaggttcaag
-cgattctcctgcctcagcctctcaagtagctgggattacagctgcctgccaccatgccag
-ctattgtttttttgtatttttagtagagatggggtttcaccatattggccaggctggtct
-cgcacttctgacctcaagtgatctgcttgccttggcctcccaaagtgctgggattacaga
-cgtgagccaccgtgcctggGCAAATCTGAAGTATTAATAGCATAAAGATATAATTATTTT
-TCTCCCAGGTCCAGGAGTAGgctgggcatggtagctcatgcctgtggtcccggctacaca
-ggaggctgaggtgggcggattgcttgagctcaggagttcgaggttgcagtgagctatgat
-tgtgctgctgcactccagcctgggtgacagagggagatgctatctcaaaataataataat
-aataaTCCAGGacaagcttgtttgggtcccaggcttcttctgtcatgcagctctgccacc
-cccagggtgttgccctagtccccgtggtctcagatgccacccacatatctacaccacagg
-cagtaggcagtggaaaaggcatgaggcaactatgacttgcaggttgctctccccacttct
-gttcacctaccactggtcagaatttagtcatgtgatagtaaccagctgcaagggaggctg
-ggcaatgtagtctttattctgagaggctatgtgttcaggtaaaagtgagaggttttattt
-ccacaggagaaggggaaaatgggtatgaggggcaagtaggggtctctgGCGTAGATGAGA
-AGAAGATGTATGGACACCAATATTCTCTATCATGTGAAGACTCCTAGGGTCAcatatcat
-ctctcccattagacagcaagctccctgagggcagggggctagattaatcaccctggtgtc
-cctgaaagcttctagctcagACTTAAGGAAGAAGACTTTTTCAGTCCCGGATAGAGGTCT
-AATGATCTGATGGAACCAGAGCAAGTAGGTTAGAGGCCTTTTGCCTGGTGACGACCAAAG
-TGGAGAGGCCAGGCGTCTGGGAGGCGGCCAGCAACAGTAGAGAGAGACGCAGGAAAGCGA
-CTTGCAAGGGGGCTGGAGTGGGTGAAAGGTCAGAGGAGAGTCTGGAAAGGAGGATGCAGT
-GTTGCAGGGCGGGCAGAGCTGGGGGAAGGAGGGGATAATTTAGTAATCACAGCTCTTCCC
-TCAATAGAATGCTCAAGGGCTCACAAAGCATCTTGGCCTCCATGTTCTCACTGGTGAGGA
-TAGATGGTACATGAAGTTAGGTGGCAGATGGGGGGGTGCTTCGGATTGCCACCAGCCCAT
-TCCTATCTAGAGAACTGTCACTGGTttccttcttcgtttcccatgtgcttcctttctcct
-tccctgtctcccttccttcttccttccttgatttctctcttcttcctCTGTATGTGTGGa
-tatacacatgtataacacacacacacacatagacatacatatatatgtatatctgaatgt
-atgtctctgtatgtacagatatacacatatacatatatgtatatgtgcatacacatatGT
-GATGACCAAAGTGGAGAGGGCTAAAAGATGAGGCCAGGTGTCTGGGAGGCAGCCAGCAAC
-AGTAGAGAGAGACGCAGGAAAGCGACTTGCAAGGGGACTGGAATGGGTGAAAGGTCAGAA
-AAGAAgtgtgtatatgtgtgtatgtatatgtgtgtatatgtatatgtacatatatgtgtg
-tacatatgtatgtgtgtgtgtgtgtgtgtgtatgtataatcacctactatgtgccaggag
-gtattgtgaaagttattgagaaacacactggtgagcaaaccagacaagatccttgccctc
-atggagcttatgcttaagagagagagatattacacaaataaatgcacaaatagctccata
-accgttaaatgtgaccaacgactagcgctatgcagaagtgcagaatgctgtgagaGCATA
-TTCGTTGTGTATTCCAGCATTTATTAAACAAATATTTAATAAAGCAAATTATATGTATTA
-GAGAtttgcttttttttttttttttttttgagatggagtcttgctctgttgcccaggctg
-gagtgcagtggcacgatcttggctcactgcaacctctgctgcccaggttcaagcgattct
-cctgcctcagcctcccgagtacctgggattacaggtatgtgccaccacgtctggctaatt
-cttgttttttagtagagacggggtttcagcatcttggccaggctggtcttgaactcctga
-cttcgtgatccacctgtcttggcctcccaaagtgctgggattataggcatgagccactgc
-gcctggccTAGAgataatttttagaaaggaataaaatcacgctcttgttcaaatataaaa
-tgaacatgtgtcaaagattttatttaactcattaatttatgaggtaaccaataaggtgtt
-aaaaaatagttcaaaggagaatccaaagagaagaggcatacataggtaatgaggattgct
-tacattaatttgctaaagatgcaaaactgttttcttccaagagtactggggggaatgaat
-tgcatctttattattattattttgagacagggtctctctctgttgccaaagggctagaat
-gcagtggtatgatcatggctcactgcagcctcaacctcctgggctcaagcgatcctccca
-cctcagcctcctgagtagttgggactatagacaagtgatatgtgacaccttgctagctaa
-tttttaaataattttttgtagagatggggtttctctctgttgcccaggctggtctcaaac
-tcctgggctcaagtgttcctgccacaggctcccaaagtgctgggattacaggcgcgagcc
-accgcatctggcctcaactgcatcttgagcagaagaaatttgtttgcatctctgtgacga
-gaattgtttttattatcatcaatcttgttacaacatattgaagtgtacgctagctcaaaa
-atgtgaaatgcgtcggcaaccatagaatcagctaacctgaaatgatgtaaagacaattca
-taCCATTCTGGAGGACTTCCAGTAATCTTTGTGGACTTTTTTTTTTCAGCTTCAAAGTAT
-TTTACAGTTTTTcctgatgtgagtcagatcggtactagatactaataatacagaggtaaa
-ccatacagacacaatttctccctcaaggaCAATATTCCCTTATGTTCTAACTGGGGTGGA
-GAGCCGGGGAACAGTTTTTGGAAGCCAAACTGAGTCTTTGCCATTTATAcagtcatatgt
-taattaacaacaggaatatgttctgagaaatgtgtcgtcaggtgatttcattcttgtgca
-aacgtagaatgtactgtcacaattctagatggtacaacctactaggcacctagtctctat
-tctataacctatttcttctaggttacaaatttgtacctcatgttactgtactgaatattg
-taggcaattgtaacacaatggtaagtatttttgtatctaagcatagataaatatagaaaa
-gatacagaaaaaatatgtagaaaagattttttttaaaaaagacacacttgtatctttact
-gtgaatggagcttgcaggactggaagttactcttggtgagttaggaagtggtgactggat
-gtgaaagtctaggacattactgcacactactgtagactttataaacactgtacacttagg
-ctatactaaatttatttttaaaatttgtttctttcttcaatagttaactttagcttactg
-taactgttttgttctataaacaaaaaaattttaaaaacactttttgtattattttgtaat
-aacacttagcttaaaataggaacacattgtacagctgtataaaaacattttctttcttta
-tatccttattctataagcctttttctacttttaaatgttttttccttaaattttgttgtt
-gttgttgttaaaaactaagacacaaacacacacattagcttcagcctacacaaggtcagg
-atcatcaatatcactgtcttccacctccacgtttcgttccactggaaggttttcagggca
-gtaacacctgtggggctatcatatcctgtgacaacaataccttcttttgaatacctcctg
-aaaaacctacctgaggctgttttacagttaacttatttttttttaataagtagaaggagc
-acactgtaaaataacaattaaaaagtatagtaaacatgtaaatcaataagttgtttattg
-tcattatcaagtattatgtactgaacattttttttttttttttttgagatggagtttcgc
-tctggttgcccaggctggagtgcaatggcacaatcttggctcactgcaacttctgtctcc
-caggttcaagcgattcttccgcctcagcctccggagtagctgggattacaggcatgcacc
-accacgccgggctaattttgtatttttagtagagatgggCACACCAactaaagaacatca
-aagcccagagcgagaaccttcctccctttcccattttccttcaacttgttattaaggaga
-aagtctctgttcaatgctggtgtgtttttaacacctctcttaacacttacttcccttttt
-aacagagaataggcctccagagcctttggcaggccaccggatctggctagaatgtgatga
-cattgttttgttttcattgtacttatttttatggctaccttctatttatggcacgagata
-ctggttttccatttagggagggccctaaactttccttttgacataatatatttatgtttt
-tagaagaaggaccatttaaagaaaaaatattatgtaatattaattacataatatttgcag
-cacaggtggtactgagacagggaaaaaattataaagaggtatgtaaTGTGCTGAAAAGGA
-GGACATGCTTCTCAGGCTAATGCCTCtcccagcccctacttaacagaagggaccactgag
-gcacagagaggagaagggactttgtcaaggtcacacTGATGATGTGGACTAAGAACTGAC
-AGCCTCTTGATAGCCCTGTGGTGGGGGATATCTTGTGTCAGATGGGGAGGGCAGAGGTCA
-GGGACTGTGTGCAGCCCCATTGGTCAGTCCAGTGCACTGATCCGCTAGTCAGACAGAGTC
-CTCCAAGGTTGACCAAGTCATGGACTGAAGGCAAAAAGGACCGGGGGACCTGGAGGGGAG
-GAGAGAAGAATGCTGGTGTTTATCACGCACTAACTATGCTAGATGCTCGGGTGCCGGACG
-TCACCCCTAGGGAATTCACAAATTTGGGGGCAGACACGTCCTACAAAAATAACTCAAGTT
-TCTGGCGAAAGTGTGGTAAGTGTTCCAGCAGAGGCCTCTCtagtgacatctaggtttttg
-tctgctcactggtcatttccccatattcttttgggaaaccacctcttcaccactcttgat
-tcttgtagctcagaccaggcaaaccccacacccacttcagaggtgggcacatgaccagac
-ctggccaattagaacactttatccctcttgccacagagactggcacatggttgggcgcgt
-gacccaaggcaggccagagggggccttccccaggaatttgctggaactactggagaaaaa
-tcccacttcatagggtttttaaaatggatacactgtaagccagagttgctggcagctatc
-tttgccaccaaaagagagaggttctctgaaaatgaagctgacaggaaagcagggatgaca
-gatggagagacagctagagtcctaatgctactgtatggtcacctcctggacccagccgtg
-aaatcagtgaccctgaacACAGTTCTATTTTGCTTTGTTACCCAGGCTGGAGCtttttat
-ttttgtaattaaattaaattaaattaaattttaatttttagagacaaggtctcgctttat
-cacctagactggagtgcgtggtgcaatcacagctcactgcagaatcagcctcctaggctc
-aagtgatcctcctgcctcagcctcccatgtagttgggactacagttgtgtgccaccacgt
-ctggctaatttttaatttttattattatttaatttaatttttaatttttattttttgtag
-acatgtggtctcactatgttacccaggctggtcttgaactcctggcctcaagtgatcctc
-ctacctttatctcccaaagttctgggattccaggtgtgagccattgtgcctggctCGttt
-ttatttttatagagatggggtctctctatgttgcccaggcttgaactcGGTTCTAGAAGG
-CAATAacacacacacacacacacacacacacatacaTAtttgcattagccactttgagat
-gggtttctgtctcttaaaaccaaaaagagacctgtctaatTCCAGGCAGAAACAATATCA
-TGGGAATGTTGGCAAGGGAGAGGGATTGGAGTGTGTGTAAAGATTTATCTGGGAGTCCTT
-CCTCGTGGAGGTAGGTTTTGAGCAGGGTTTTGAGAAATGGAGAGGATTTTGATATATAAA
-GAAGGTGAAGAAACAGTATTTCCAGGGAGGGGAACATCCTGGGCAAAGGCTTGGTGGTGG
-AAGAGGGCAGGGAAGTGGCGCCGTCCAGTGTGATTGGAGAGAGGATGGGGATAGAGAGGA
-GGTGGGAGAAGAGCTGGCAAGAAGGGATGTGCCCTAATCGTGCAGAGATCCAGTCTGCTC
-CTTCACCTGCATCCTCCTCCTCTGGAGGCGTGCCCTTCATCAGttaattcatccacagcc
-atttactgaacaccagcatgcgtcaggcactgtcaaagggctggcgagagagctgtgggc
-cacaccaccaagtccctgccctcttgtagcttcttttgtaggtgaaggacacaggtggta
-aacatgagcaagaaataaacaagtatcatagtgtcagggagcagtaactgttatctagaa
-aaattaagacgagtaaagggaatacagactagtggagaggTGTTTGGGAtgaaaacggat
-aatactgatggttgaccgacatcgtgagtgcactcaatgccactgaactggtaaaatggt
-taaaatgataaattttacattaggtatttttctgttctttatattatgtacattttacca
-caataaaaaaCAGGATTggcagaggggtgctattttagctagggtggtcagggcatgtct
-ctctaaggaggtgtcgtttgaacagaatggaggggaattagcaagccttgaagagattgg
-ggggaaggtattctgggtggagggaattgccaggacagatcctgtggggccagagtcggc
-ctggtgtgttctaaggacagcaagtgggcccctgtggctggagcccagagagcaaaggga
-gagggggaggaagatgagtacagggatcagcaggggcttgtatgccaggagagaactttg
-gatttggttgtatgagtgatgggaagccatcggagggctgagcagggaagggatatgaat
-cagagtttctgttCAATTCTCCCTCTGCCCACACTCAGTCCTGCTCTTAATCAGGTTGGT
-AATCTTGCCTCTGCTTCTGACTATCTCTCTCTCCTGGCTGCTACCCTCTTCTGCACATCT
-TCATGACCACTATCTTGCTGAGGTCATCttttttttttttttttgagacagagtctcact
-ctgtctcccagctgaagtgcagtggcacaatctcggctcgctacagcctctgcctcctgg
-gttcaagtcattctcatgcctcagcctcccgagtagctgggattcaggcgagcaccacca
-tacccagttaatttttgtatttgtagtaacgatggggttttgccatgttggccaggctgg
-tcttgaacacctggcctcaagtgatccacccaccttggcctcccaaagtgctgggattac
-aggtgtgaaccaccacacccagAGAGGTCATTGTTTTTATATGGCTGACCCAAATGGCCT
-CCAACTGGCCTCCCTGCCTCCTGCCGACCCAGCCTCCACCAGTCATCAGGGTCTCTTTCT
-ACCCGCAGCTCTGACCAGCCCTTGCCTTGGTGAGAGCCACAGCCTCCCAACTTCCAGTCC
-AGCCCCATCTATCTTCTTTTCTCCTCACCCCAAAGCCCACACTTAGTCACTCAGAGCCTC
-CATGGGGTTCCCCTGCTGCCTGCCGTAGGCTTGCCCTCCTCAAGGCTGGTGTATGGCTCT
-CTGCTCTACTCGGGTTCCTTTTCACCTAGACAGCCCCCTCCCATCCTTCAACAGCCTCCC
-AGCATCACTCCTCTGTGAAGCCTTCCTTGGCTGTCCCACCCGCAGGCTGGCTTAGCTAGC
-TCCTCTTCAGTGCTCCCTAAACCACTCACATCTTCCACTTTCAGAGCCCCGAGCATGTGG
-CATGCAAAGCACATTggtttggtttggttttgtacaaacctttccctttcctcagctccc
-tgaaccccccagttccctgttcatagtatgttcgcaacaaatgtttattgaataaatgaa
-tGAGTTTGGAATTTATCTTGCAGAAACAATACTCCCACCACCACTACCAGCACCTCCACC
-AACGAAaataatatccaacccaagttgatgacttgctatgcatcgggcactgtgctacac
-acttccaaatctggatctgatttctatttcataatattaggaggaaatcactgtgttagc
-cccactttagagatgagaaaactgaggcatggtgaaattaatcaattttcctaaggctac
-ataactcagaagcaggagagccgacagtccaaAGTGTGCAGCCCAAAGCCGTGGGCACCG
-CATGCAGCTGGAGGAGGTGTCTTGGCATTACTGCATCCACGGACGGGGTTTCCAGGAGTC
-CTGGAGTTCCATATGAAGATTGATTGTCCATGAACTTTTTGGGCATGGGGGCAGGTCCAT
-TACTTGTAttttttttttttttgacagggtcttgctttgttacccaggctggagtgcagt
-ggtatggtcatagctcactgcagcctccatctcctgggttcgagagatcctctcacctca
-gcttcccaagtagctgggaccacaggcatgcatcaccatgtctgcattatatatatatat
-atatatttttttttttttttaagagatggtgtctccctgtgttgtgcaggctggtctcga
-actcctgtgctcaagtgatcctcctgccttggcctcccaaagtgttgggagtacaggtgt
-gggccatcgtgcccagccGTGATCCATTACtttttttttttttttttttgagacggagtc
-atgctctatcacccaggctggagtgtagtagtgagatctcggctcactgcaacttctgcc
-tcctgggttcaagcgattcttctgcctcagcctcctgagtagctgggattacaggtgtgt
-gctacctcgcttgactaatttttgtttttttagtagagacagggtttcaccatgttgacc
-aggctggtctcgaactcctgacctcaagtgatccgcccacctcggcctcccaaagtgctg
-agattataggtgtgggccaccgcacccggctGGTCCATTACTTTTACCAGGGTCTTAGAG
-GGGCTCTTGATAATTCCTATATTTAAGATGCTCCTCTGCACATAAGGGGGAAAGATGGAG
-AGTTTTCGAGTATTGGACTGTTGCGGTTCAACCTATGCTTTAGAGAGATCACGTTggcta
-tccattgcagtgtaatgcagggagaagagattggaaatatccctaagattcaccaagagt
-ggatgtgttaatcatatcatggtacctccttccacagaagggaataatacgcagccataa
-agatgaatgaggagtctctttatgtaccaatgtgaaatgattcctaagatatttatgtca
-gagagagagagacagggtCTgggtctcactctgtctcccagactggagtgcagtagtgtg
-atctcggttcactacagcctccatctctgggggctcaagagatcctctcgcctcagcctc
-ctcagtagctaggactacaggcttgcaccaccacgcttggctaattaaaataaaattttt
-ttttggagagactaggtctcactatattgcccaggctggtctcaaacttctgggccaaag
-agattctcgcacctcagccttccaaagtgctgggattacaggcgtgagctaccctgcctg
-gccTtccaagacatagtttaagtaaatacagcaaggtgcaggccagcatgtataattagc
-ttctatgtatgttttttaggaagggaggggttaagattatagatctagatgtgcttctat
-atgcataaaaaaTCTTTGGCAATATTCACTGTTAAATAGTCAGTGGAAACcctacctcat
-agggtttttatgagggttacatgagttaatattagataattgcttagaagagtacctggc
-acacattaagcactacagaagattttatttaataAAATAAAAAAGAgtggcgggcgcctg
-tagtcccggttacttgggaggctgaggcaggggaatggcgtgaacccgggaggcggagct
-tgcagtgagatgagatcgcgccactgcactccagcctgggcgacagtgtgagactctgtc
-tcaaaaaaaaaaaaaaaaaaaaaaGAGGGTCCCTTAGGGGATGGAGACCAGGTGACTAAG
-GGGCAGGGAGAGAGACTTATTTTTCATCTGAGGCCTTAGACGCCTTTTGAATTTGGTACC
-ATGGGTAAAttttttttatttttatttattaatttatttttgagacagagtctcactctg
-tcacccaggctggagtgcagtggcacgatctcggctcactgcaacctccacctcccgggt
-tcaagtgattctcctgcctcagcctccctcgtagctgggattacagttgtgcgccaccac
-acctggctaatttttgtatttttagtagagttggattttcgccatgttggccagcctggt
-ctcgaactcttgacatcagatgatctgcctgcctcagccttccaaagtgctacgatgaca
-ggcgtgagccaccacgcccggccTATTTTTTTGAAGTTGAAATTCAGTGTATCTTggcca
-ggcgtggtggctcatgctgtaaccctagcactttgggaagctgaggcaggtggattgctt
-gagctcaggagtttgagagcagcctgggcaacatagtgagaccctatctctcaaaaaaat
-gcaaaaattagctgggtgtagtggcgtgcacctgtagtcccagctacttggggggctgag
-gtgggaggattgcttgagcccaggaggcataggttgcagtgagccgagctcacaccactg
-cactccagcctggacgacggtgagaccctgtctcaaaaaagaaaacaaaaaacaaaaaac
-aaaaaaaaaaaaAGAGAAAGAAAGAAATTCAGCATATCTAGATAGCTAAGAGATCATCTG
-AGGGGGTCAGGGCCTGGAAGGAGATCCCACCCAGAATCCCCGGGAATTCGCTGTAATTGG
-TCAAAGGCCACATTGTGTAGTGTGAGAAATCAGGACGTGAGGAAAAGGCGGACAGGAGAC
-ACCAAAACACCCACGCCCCAGGGCCCACTATAAAAAGCACATTTAAAAACACCAGACTGG
-AAAAGTTttattattattattattattTTTTAAATAGCAAAAGCGAGTCCCCCCAGGAGG
-CGCACTGCAGCTGCGGCTGTGGCGGTTCCCAGGTGATGTCAGTCCTGGCCAGGCGCCAGT
-CCCGGCCCCTTGGAGACGGTCTTGGTGGGTTCAGCTTGACTGTTTTTCCTTCCTGAGACT
-TGAGGACACCTTCCTGTCTCAAAGAAGGAAGCCTTTCCAGGGCTTTCTGAAAGCCAGGGG
-CAGGGGAGGCGGTGGGCCTGGGCTGCAAGGGCAGAGAGAGGCAGGGAAGGTGGGTGGGGG
-TGGGGAGGAGCGGGGGCTGCCTCTGGGAGGAGAGTGAGGGTGGAGAGAGCAGAAGACAAG
-CCTGGCTCCTGGGTGGCTCTTTAGCCCTCCCACCCGGGGGCGCGAGGGGGTCTGCTTCTT
-GGGAATCCAAGGCCCGCCTCCCTGGCCCCATTGCTTCTCAGCCCTGGCTGCTTCCTGGGG
-AGGCCCCTGGGTGGGGTGAGGTTGTGGGGTGAGAGAGGTTCCCACAGAGTTCCCAGTTGG
-TCAGTGTCTTTTCTCCCTCCCTGAGCCCTGGGCCCACCCTTTCTTCTCTATGGTTAAAGG
-CTCTTTGCCAATATCTTCCAggccaagcgcggtggctcacgcctgtaatcccagcacttc
-gggaggctgcagcaggcagatctcctgaggtcagaagtttgaggccagcctggtcaatat
-ggtgaaaccctgtctctactaaaaatacaaaaattagccaggtgtggtggcacgctcctg
-aatcccagctactctggaggccgaggcaggagaatcgcttgaacctgggagacggaggtt
-gcagtgagtcgaatcatgccactgcactccagcctgggtgatggagcgagactctgtctg
-aaaacaaaaacaaaaacaaaaacaaaacaaaacaaaacaaaacaCCCAAGATTCTGCCAA
-TATCTTCCAAACTGGGTTTTCTGCAGATGGGACGATCCAcagagctgggtttgaggtcca
-actctgcactcctagccgtgcgacctcaggctggtcactgcttttctttgagtgccacct
-ctgaaatggattaggttggccttacagggtggttatgcagagtgagtgagacaGAACAAT
-GCCTCTTGGTCCTTCCCGAGTATCTGCTAGGCACCCACAACGCGCCGGTGCCACCAGGCG
-CTCGGGATGCTCAGCATTTGGCACAGAGGcagcagagcagggaggtgaagagagtgggct
-ctggacccagcctcagtccacatcccggttctgtcctttgatggccgtgtgaggatagtg
-acagcctgtctcactgggtcgtagaggagtaaatgagttacaggccgtggaacagtgcct
-ggcactgaggcggtgctaggtaagtgtttgcttttattTTCGACTTCTGTCCAACCAGCC
-TTCTGTTGCTTTGACAGCTTCATGGGGCTGCTCTGGGCACTCAAAGGAGATATGTTGGGG
-ATTCAGGGGTTGTGTTTAGGGGAGACCCAGGTCCTGCAGGTGCCCCATCATTCATACTGA
-TGCAGGGGTGGCCTGGAAGCTGCAGAACCATTCACACTCGGCAAAGCCTTCTCTCACCTT
-GGAAGCATCATTCCTAATGACGACACAGGTCTCCCAGCCATGCGTTCCCACATAACTTAG
-AAGCACCCATCCCatttttattatttgctcagagcctgctttttcagtaggccgtaaact
-ccatgaggtcaggtactacatctggcttattctctgatcatccctagagccttgtgtggt
-tcatggagaagttcaaaacatgtttgttgaCGGACTTACTGACTGACAAAGTCTGCCAGC
-CTTATGTTGGTCTACAATGTTACACTCTATCCCATGCCTCCTGCTGAGTTTTACCCTCCT
-GCTGTGATGCAGGCTGTGGGAtctggagctagaccccctcagttggaatcctggctgtgc
-cattgcctagctgggtgcccttgggcttggttttctagtctgtgaaatggggatagcaac
-agtacctacctatgtggcttgttgcaagtgaggccatctctgtatgtcactcagagaagt
-gccttggattagtcagTTCCATCAACATCAGGACTAGGCACGCACCTGGTGAGGTCATGT
-GGGGGtggtggttgagagcccagtggggctctgcagctagaacatctgattcaaatccac
-cagccactgtgtcaccttggccaagttctttaacctccttgtgcctccgtttcctcatct
-ataaaatggagcaataataatacatatctaaccagcttttgagcaagctgtatgtatgta
-tgtatttatttatttagagacggggtcttactctattgcccaggctggagtgcagtggtg
-caatctcggctcactgcaacctccaactcctgggttgaagggattttcctgcctcggcct
-cctgagtagctgggattacaggcacgcaccaccatgcccagctaatttttgtatttttag
-cagagatggggtttggccatgttggccaggctggtcttgaactcctggcctcaagtgatc
-tgccctcctccgccttccaaagcactgtgattacaggcatgagccactgccccccgcgaa
-gctgtatttattttatgtaaagtgcatagcctaggcctgacacgtagtaggtcctcaaaa
-gagtcaggcatttttCCAAGCCATTCAGAAAAAAACAACTCCTAGATTTTATCAGCCTTC
-CCTCCCACAAGGCCAGTGTGTCCCAGCTGACAAAGTTGCTGGCCGTGCTGACGtgaggaa
-aagcaagggccagagagggccagacgcctaccctgggtcacacaggagcagtggccaacc
-tagaataggctaggtcttctgtctcgcagcctgtTCATCCTGAGTGCCTCCCTGGTTTCC
-AGGCCCTGCTGGCCTGCCCTCTGACCCTAGCCCCCTGGGAGCTCTATCCCAGGCCCATGG
-GGTCTGCAAATCTGGTCTGGATTAGACACGCTGAGAAGCAAACGCCAGCCCCCCCAGCCG
-GCTGCCCAGTGGGACCTGTGCTCACAGCTGCTGAGGCTCATAGGGACATAAATCATGGTG
-GCAGGAGACTCGGGGGATGGGACCACCTTAGCCTCCTAAGGGGCACAGGGGCCTGAGAGT
-CACGAGCAGAGGCACCTGGGTCTGCTGGGGATATTTTCCATCGTCTGTTGGACAAGCTAA
-AGCCAGGGTGCATCAGAGGGGGCCAGGACACCATTTGGCAGCCCTCGCATCACAGTAGGC
-CAAGATCCCAACTTCTTTTTAACttttcattttgcaatcatttacaacatgcagaaaagt
-gacaaaagtggtgcagagaactcccatataccctgtactcagattcaccacattttaagt
-ttgtcatatttactctatccttttctctcacacatatattatttctcttctgaaccattt
-gagagagcacgttacctacatcatacttctccttaatagtacttcaggatgtattttttt
-ttttttttttgagacggagtctcactctgtcacccaggctggagtgcaatggtgcgatct
-tggctcactgcaacctctgcctcccgggttcgagcagttctcctgcctcagcctcccgag
-tagctgggattacaggcgcctgccaccacagggtttcaccatgttggccaggctggtctc
-gaactcctgacctcaggtgatgcgcccacctcggcctcccaaagtgctgggattacaagc
-tgagccaccacgcccggcctaggatgtaattcttaagcacaaggatatcctctgacacaa
-tcagggtgctgttagcaaatacagaaaatttaactttgatgcaataccttaatctattgt
-tcatatcccaattttgtgtgaccatgtctcaaaaaaaaaaattgtcaactctaccaagaa
-ggtcccctgtcacattttcccctctgcagtacaggatccagttcaaagtcatgtatcgca
-tttacctgttcaggtctATACTTGATATCACAACTACACGAGGTAAAATATACAGTCGTA
-AGAGACACAGATGGGGTTGAACAAAGACATCCAACTTCATATGTACGTCCCATGAACCAA
-TGTTTCTATAAATCCTCTAATTATATGGTGTTCCACAATAATGCATCACGCTCCTGACTG
-TGTGGAGGTAGTTAAGAGTTAACTTGCCAggccaggcacagtggctcacacctgtaatcc
-cagcactttgggaggctgaggctggaggattgcttgagcccaggaatttgagactagcct
-gggcaacatggcgaaaccccctcaaaataaaaaattagctgggcatcatggtgcacacct
-gtagtcccagctactcaggaggctgaggcgctaggactacctgactccaggaggtggagg
-ctgcagtgagccatgatcgtgccacctgcactccagcctgggtgacagggtgtaaccgtg
-tctcaaagaaaaaaaaaaGTTAACTTACCAAATATGCCATAGTCTTCAGCACTCTCTTTT
-TGTAGTGCTTCATTTTTTAACCTAATAAAAGCCTCATAAAATGGGAGTGGCCTGGGACAA
-TGAGGGGAACCTGAAGTGCTGtgggtgcaagaggtcctgtgttctcagccctgctcagct
-ccagatgctgtgcaaccgtggcccatcaccgctcctctctgagcttcaggttGCCATGGG
-TGACCTCTGAGGCCTTCCTGCTCATAACTGTGGAGTCAGAGAAAACAGCCCTgcatggca
-aggagggagatttgtgttcttggtgtcccaacagggccaaggacctgctggggaacccca
-ggcaggttgccctctgtcttgtctcactttcttcattgtgaaatgaTGAACTCTGAGATT
-ATTCTTGTGCTGCTGCTTCATGTGTCAAGACTTGCAGGGAGAGTGTAACCCTTTGGGGTC
-CAAGGTGGCCTGGCTGAGTCGGTCATTCCAACCCCTTCAGTCCTGGATTTCTTCTCCCTG
-AGCAGCTTTACTCCTGTGGCCTCAAGTTGGCCTGGAGAAGCTTGGCTGGGCTGGACCATC
-CCGGAGGCGACAGGCATGCTGGGGGAGCGGACAATGTTACAAAATGTTCCCCAGAGGAGC
-TGCCTATATATGCAGACCACACCTGTGCTTCTCCCCGGTCACGTGTGTGGGCTGACCTTG
-CAGCTCACAAAGGCTCATGGGCATtaactgtccattaccaggaagatagcaagctgcaaa
-atatgcataatggagcactatgcagctatgaaaaggtgtgaaacagctctgtaagcaacc
-aagggtctccaagaagtacagttaagaaaaaaaaatccagtgcagagaggagtgtgtgaa
-atgctaccacttgtgtggaaaaacaatatctatgtaatttgcctatatatgcagaCCATC
-TCTGCCGGAATCCATAGGATCCTGGTTACCTTAACATAGCAATTGCCTCTGGGGACTGGA
-GCTGGTGGCTGGGAGAGAAGGAGACTTATTGTCAGTTTATTCTTTTTTGTGTCTCATTCA
-AAGGAAAGAACCGGTATGTGTAGATGTGcaagaggggctggctcctgggaagctgctaat
-tgcatttcttgatctccatgctgggtgtacaggtgtgctcagcttgtgaaaatccattga
-gctgtacccttacaccctgtgcactttcctgaatgtgtcttatacttccataaaaagtgt
-aaaCTTggccgggcgcagtaactcatgcctgtaatcccagcactttgggaggccaacatg
-ggtgggtcacctgaggtcaggagttcgagaccagccttgccaacatggtgaaaccccgtc
-tttactaaaaatacaaaaattagccaggcgtggtggtgcacgtctgtactcccagctact
-caggaggctgaggcaggagaatcgcttgaacccgggaggtggaggttgcagtgagccaag
-atcacgccactgcactccaacctgggtgacagagtgagatccatcttaaaaaaaaaaaaa
-aaGCGTAAACTTAGCATGGTTTAAATGATTTGTTAAGCGTATGTGTGCTAGTTTAACAAA
-AACGCTGCAGagctgggcgcagtggctcatgcctataatcccagcactttgggaggctga
-ggtggatcgcttgagcccaggagctggagaccagcctgcataacatagtaagaacctgtc
-tctacaaaataaacaaataaataaaattagccaggcctggtggtgtatgcccgtatttcc
-agctactccgcaggctgaggtgggaggatcacttgaggacaggaggttaagcctgcagcg
-agctatgactgtgccactgcactccagcctgggtgacagagtgagaccctatctcaaaca
-aaacaacaaaaaaTACTCGGTGGGATTATCGTCTTCACTGTGGCTGTCTCTGGGATAAGT
-GATATTTCTAGAGTCTTATAGCATTTTGAATTTGTTTTACAATGAAAGCACAGGCAGAGA
-AACCTATAAATATTTTTTCAGAAACAGTTATCAGTATAGAAGCTTTTTTGGAAGGACACT
-CAGGAAGCTGCCTCTGGGGAGGGGCCTGAGGAGGTCTGTACTTTTCACTGCATACCATTT
-GATACAACTTGGATTACTTACCAGTGCATACAGGGTCTATTAAAAACTATCTCACAAAGC
-AAAACAAATACTTATCTTTCTGTTCTAGCTGCTCTTACTAGTTAGAGACTGAGCCAGGga
-ggcccagaggggtcaagcaacatctctggggtcacccagcaaatctggtggcggagtggg
-cctccagccagagcacccaagtgtctgctctgcccccactcccaggcttcctgccattga
-caaggccacagtccttttcCTGTGGCTTTGCCAGAGGCTGGCTGTACCTGGGAGGGTAGG
-CGCAGGGGGAGCAATGTGCTTTCCTAATCAGCTCCCAAAGGGGGAAGCACAGCCACGCTG
-GGACACAGGATAAGCACGACCAGTGTTCCTGAAACAGCGGGGAAGTGAGGTAGAGGGTGC
-TTGGAAAGCTCTCCTGGGTGGGGGACCCCGGCCCCCTGGGGCCCTCCTTCCTCTACTTCT
-TACACCAAAGGAATTAAGCATGGTAATTTCATGGCCTGCTCCAGCCTAGGGACTGGCAAT
-TCCAcaactcccttgatctccctgggcctcggttttcatctgtgaggaagaccaggttgg
-tcgggctcattcctgtggcatctggcacagtgcctgccacacagagggtattgacaatct
-gtttgtcaaTTTGCAAAATCGGAGCCACAATTCAGGCTCAGATGGTCAAACGCAGGGGAG
-TGGGGTAGAGGCAGAACAGAGGGGATACGAACGTGGACTCTGGGGCCAGAGTGCAGTCAG
-TAAACATGAAATAgatcacttgagctcaggagtttgagaccagcctgggcaacatagtga
-gaccctgtctctaaaaaaataaaaataaaaGTGTTTGTTAAATAAATAAACTGTTGAAAT
-AGGCATATGAATGTACCTTGCTGAGGAGAGGGTGGCTGCCTGGCTGCCCTGGCCTTTCCC
-TGGCTCTCCCACCCTCGGGCCTCTCGAGCTTCTCTGATCCTGACCTCACAGGGACACAGC
-CCCAGCCCGAGAGCCAAGAACTCCTAGCTGCACTGATCAGCTGACGCATCGCTGTCTCTG
-CTGGGTCTGCAGTGGGGAAGACACCAGCTCTCACCTCCCAGGGCTCCTGGGAGTGTAATT
-GGGGTAACAGGTGCTGGCTTTCCACTTGGGGCATCTCCAGGGCAAGGAAGGAGCTGCTCT
-GGGCTTCAAAGGTGGACGGACCTCAGGGTGTCACCCTGCCACGTGCCTCTGGGTGTCATC
-GGTCTTCTAAAGCATTTCAGCTAACACAGGGGTAAGAATATTCCCCTTTAGCATGCACTC
-ATTTGCACTTGTGGAAAACCACATGGCTTGTTGGTGATCGcatcaaagagggatgggtta
-aaggatggcatgttcacaaaatggaataataagcagctcaggaagaaatgaaataccctt
-taggtactgacttgggatgataccaagctagattaaggaaaaaaagaaggagccaaaagt
-gtgtacgatgtgctgtcatttgtgtaTTTGCCTGATCATTCATAGTGAATGGGACATCAC
-AGGAAACTGGTGCCCTAGGCTGCTTGCAGAGAGGAGAGCTGGTGGCTGGAGGACAGGGGC
-ACGGAGACTTTTCAACACATACCCTCTGGTACCTTCTGAGTTTTGAACCATGTGAATGAA
-ATGAACACAGGCCTTATTCAAAAATAAGTAAAATTAAGATTTCTTTACCAACCATATCAG
-ACACCTAACAGTTGTTAAGAACATCTGATAAACAGCAGACTGAGGAAAGTTTGGTTATGG
-CGCCCGGAGAGGGGGCTCTGCCTGCCTTCCCCCGCCCCACCCCCACCCTTCCAGGGCTCA
-GGGCAGCCCCCAGAACATCTGTGCCTCTCTCTAGGTCCAGGGGAGGGCCCACCTCTGACC
-TCCGATGTCCACGGGACTCTCCTCAGCTCAGAACGACGTCTTTTATTTAAAAATAGCTTT
-TATTTTAAACTCACCAATTCTCTCTcacacacactcacactcacgcacagatacacacac
-acCCTGTCACCAACAGTCTTTGTTTTTCCAAAAGTTCTGCCTTGTCTCTGACCAGCCAGA
-GCTGGGCAGGCTGAATGGATCCTCACAGCTCTCCAGGATCGGGTGGAGATGTCCCGAGGG
-CCCTGCCCAGAGTGTCCCGGAACAGGCCATGGTCCCCCGGTCCCTACACAAAGAAGGGGT
-GGGCTTGGCTCCTGGGGTCTTCTTCCCTGTCCAGCCAGTGGCTGGCTCCTGGCCTCCTTC
-TCCAGGGTCCAGGCTCATCTCCGTGGCCCTCGAAGGGGGGCCACCCCCCTCACCTTCAAG
-CAGCTGCCCCCCAGGTCACGACGGCCACCCTGCAGAGGGGGAGAAAGAGTATAAAGAGGT
-TCGATTAGGCCAGTGTGaacactggaactaacctctgtatccctcaagagggatcctgat
-caataaatcacagttcagccacacgatcaagttctctgcaacagaaagcagaagaaaccc
-tttctggactgatacagactgctgccaaatgacaatgtttagggacaaaagcaaggggca
-gGCTGAATGCGCCTGTGTGCTGTGATTGCTGGGGAGAAGCACACACGGGAAATTGTGAGT
-GGGTTTCTTCAGAGAGGAATTTGATGATGGAGAGAGGATGGGAGGGAGGCTCTCTCATGC
-TATACTGttttttgagatggagtcttgctctgttgccaggctggaatgcagtggcacaat
-ctcagctcactgcaacctctgcctcccgggttcaagtgattctcctgcctcatcctcccg
-agtagcggggactacaggggcccaccgccacacccggctaatttttgtattCACGCTATA
-CTTTTTTACCTTTTCTACTTCTTTCCCATATGATCTGTTGCTTAAAAAAAATCCAATATA
-TTTTAAAGCATAATATTTTACACGGGCAAAACAAGCACACCCCACAGTGGTCCTCCCCCT
-GCCTGACTGCATGCCTAGCGGCTCACTCGTCCACCTTTAAAAGGGGACTCGGTTTCTGGC
-CTCCTTGACTTCCCTCAGGGCGTCCCCTTTCCCAGGAATGTGCTCTCAGGTCTTGTCTCC
-CTGGAAAGGTTTCTCTGTTCCTGAAATTGCCTAGCACTTCCTGCCTTTCTGGGGACATTC
-CATGGGGATGAATCTCAGAAGGACAAGGCAGGGTCTCTCCTTTGTCTCCCCATCTGGACT
-GGGATCTCAGGGAGTGGTAGGGAAAAGGAGTTCTTCACTCTGTGGTCCCATTTCCAGCCT
-GGGCTCTCTTGGCCCAGGACCTGACTTGGAGCAGGCACCAATCAAGGCCGCCTGAATTAA
-GTGGCAGCCATTGGAAGATGGGCTAATGGCGGCAGTCCCTGAAACCATCAGTCCTTACAG
-GGGCTGTCTCTACCAGCTCTTCTCATTGATATTTTCAGACTGGACACATGGGtttcatcc
-tcaccgtaagccagagaggtcacagatgttaaagcaccccctcttttgaggcctccagcc
-actgaatgactggcccagaggcacccagccagttgtaaaagagctgggctagaaatctat
-gttgtccaacaatctgtcctgtttccaGGACATGATAGTGTCTGAAATCCCACTGTAAAT
-GCTCATCACCCTGAGCCTGGCTAGATGATGGAGGAACAGGCAGCTTTCTCAGCCCACTTA
-GAGAAACAGCTGACCATCTGGGAGCTCTGTCCCCTGCCCCCTCCACCCCCAGGTCCAGGT
-TGGGGCAGATCCATCCAGATGCGAGCCCAGCCTCCCTCGAGGCTCTTGCAGCCCAGGGAC
-AGCATGTTCACTCACAGGCAGGGCTATTTTGAGGGCTGAGGCCACAGTCCCAGCAGAGCC
-TGGGGCTTGGGCTTCTCAGACAAACTCTGGCAGGAGTGGCTGAGAAGGGCAGATAGGGGA
-GGGGGTGCAATATTAAGGTTGAATTAGAAAACTGGCCTTCCTCTCTTTTACTCTGTAAGT
-GCTCAGGGACAGGGAGAGCCGCCCCCTCCCACCCCAAGTCTGGAGGTCAGCTGGAGACCT
-AGGGTCCCAGAAGAATGCTGGGACTGttcacctccctgaacctcagtttcttcatctatg
-aaatggggacaaaatgattttacttgccatctcaaggtGCAGTCGAATGTGAATGCAGCT
-GTGTAAGCTGCTAAGTGTACTTAGAAGAGGTCTTGACggccgggtatggtggcttatgcc
-tgtaatcccagcacttttgggaggccgaggcaggcggatcacctgaggccaggagttcga
-gaccagcctggccaacatggcaaaaccccgtctctactaaaaatacaaaaaattagccag
-gtgtggtggctggcacctgtaatcccagctacttgggaggctggggcaggagaactgctt
-gaacccgggaggcggaggctgcagtgagttgagatcgtgccactgtactccagcctgggc
-gacagagcgagactccatcgcaaaaaaaaaaaaaaaaaaGTCCTGACAAGACCCCAGTTT
-GTTTGTCCCTTAGGAACTCAGCACCAAGGGTCTTCGGGAagcaccatggttaggagttag
-gctcaagtgagacagacctaggcttcgatccctactttgccaagggccaactactggacc
-tcaggcaagtgatttcatctcactgagcctcagtttcccccccgtaaaggggaattactt
-tacaggatcacacaagctaatctaggtaaagccttggcacagtgttgggaacaaagtaaa
-tgttcaataaatgttcataagtattattatCAGCATCATCTATGGACAGTGCCTCCTGGT
-CCCAGCTACCCTCTGGGTATACCAACAGGGGAGAGCCTTACAAGATGATCCTGTCCAATC
-CTCACCCCCAGGTGACAAAGGGAAAACAGGGCAGAGACAAGAACCCCCTTTCCACCTCCC
-ACGTGCTAATTCTACCACAGAGGGCCACACCTAACCCCTCCTTCAACAGAAAGATGCTAC
-AGGAAACTGTTTCCACGGCAACCCCAACTCCAGACTGGCCAGGATGGGAGGGAGGTGGTG
-GCTCAGGGTAAAGGAACGGGGTCTTGGGTCTTAAAGCTCTTCTGGCCCACAAAGCTCAGA
-AGGGAGCAAGAGCTCCCCAAGCCAGCCAGTTTTCTTCCAGCAGAGTCTTCAAGGGGCCAT
-AGCTGGCCAGGATTGCCCCTCTCGCCTATTCCCAGAGGAGACCGTGGGGTTGAGAGCATG
-GTTTCTACAGCCAAATTTGGCTGAGTTCTTGGTCCCATAGACAGATCCCAGGGAAGCGGC
-CAGGCCCAGGGGAGGCCCCTGTGAGCTGTGGGACAGGCCTGAGACCTGCAGAGAAGTCCC
-CCAGCCTGCTTGCTATGGGGGTGGACACATGACAGTTACAGGGACTTCCCTCTGTAACCT
-ATCCCACGTCCCaaccaggcaggcctgagtttgaatcctggttccatcactgactgtgtg
-tctctgcgccactggcagcacctctaagcaagtggggataaccacagcgcctcattcctg
-gctgttgcaggattttaatgataaatcataaagagcgcttagcacagATCAGTGCTCATG
-AAGGCTGCTGTCACTGCTGTTATTGGCCATTGTGCTCCCCCTCTGCACTCCTGCCACTTT
-TAACCTCTTCCCTCTTCCTTCTCTAGGCCTGAGCTCTTGCTGTATGCCCCAATCCTAGAA
-CACCCTTTCCTACCCCTTCATCGGCCTGCCCCTGTTCTAAAGCATCCTTCAGAAATGAGA
-CACAGAAACCCTGTCAGCACTCACCCTGGGTTGGAGGCTTTCTCTGGGCTCTGAGAATCC
-CTTTGTGCTTCCCCTCCCCCACCATCAGACCACAGCATCCTCATCTTCATCTCCCTGCCC
-TGACCCTGGGGCTGTACTGTCAGGTCCTGACTGGTGGAAGGGTGGGGACCTACAACCTGC
-TTCTCTGGGGTTCTCAGAGCCAACAGAAGGCAGCTGTTGGGTAGCTAAGGGTTGCTAACT
-GGAATGAATGGGTGAAAGGCAGTCAGGGAGTATCCCTGAGAGCCCCTTCAGGCCCTCCCA
-TCCCAGGAAGCCTTAAAGGCCCACTCCTGGCTTCTCAGCCCAGCCTGGGGCACTGACAGG
-GGCCCACAGCTGGGAGCAGCAGGGACCCTGGAGAGGGCACAAGCCTGAGGCTAAGAAGAC
-CGACGATTCAGGGCAACTGAGGCAGCCAAGTGTTGAGCAACCAGGCTGGATATCTGATGA
-GCCAGACAGAGGGTGGTCTCAGGCCAAGATGCAGAGGCCTCCGCAGAACAGGGTGGAGCA
-AGGGACCAACGGCAGCTGTGAGAACCAAACAGCAGGGAGTCAGGGGCCTAACTCCAATTC
-CCCATGCCCTTCCACTTGGCCACCAAAAGTCAGTACTCTCTCAGCCTCAGTTTCCCCGGA
-TGTAAATGGTAGCTGCTGGAATACAAGTTGTTAGACAGGCTTCTTTACTGTAGGAAAAGC
-CCAGGCCAGAAAGGCACACGGTCGGGGGATGAAGCAGGTTCCTTGGAGCCTGGGCAAGGT
-TTCAGCCAAGAGGCCACCTCTGCTGCCACACAGCCCCCGCCCACCCCTACCAGCCTGATC
-CACTTTCTTGCCCAGGACACATTGCAGGAGCTGCACACCAGCTCCCTCCAGCTGACCCAA
-GAGTGCCCTCTCCCAACACCACGTCCTTTTGGGGGCTGGGGACTCTCAGAGGGCCCCTTC
-TTCACTCCTACTGCTCATCCGCTGGGTACCTCAGGCTCTCGGTTGGCGGTTTGTGGCCTC
-CTTTCTTCTCAGTCTCCTGCTCTTGGGTTAGATCTTAGGACAGGGGACAATTATTTCAAG
-GTGGGGGCAACACACACCGGGCAAGCCCAGGGCCAGCGCCCCGGcttcccagctgagtaa
-atgtgggcaggtgatcccatctctgatgctcagatcctcatcaggataaaatgggcagaa
-aaactacctgcctgaagggattcttgtgaaggcaaaaaagtggatgtggagcgcatcggc
-acagaggaagactccataaaagatgggtctttgttACTCAGTCCTCATGCCGTCTTCCCA
-GCAGGAAGGAAGTTCCAGCACACCTTTCGTTGGAGGGGATATCCCACACTGAGCAGTTAA
-ATCAGACCCGAACTCTGGGTTTTCCCGCATCCTTCTGTTTGGGGGCCTGGGCATTAAGTC
-AGTGGTTCTGGGCTTGGGGTGCCGCACCCAGCACGAATTCCACGTCGCTTCCCCCTGGCC
-TCGTTGGGGACCCCTGCACCTCTCCGGTTCCCGCAGAGGCGCTGCCCCCCGCCTACCCCG
-ACCTGGCGGCCGCAGCGAGGGACGCAGCACACTCACCCCCTTGCGCTGGTTGCTGAGGCA
-GAAGGTGCAGATGGAgcgcggctggcggccgccgtcggcggcggcggggacggcgcccTT
-GGCACTGCCCGCGGCACGGAAGCACGGCTGCCCGTCGTCGGCCGAGTCGCCCAGCAGCAG
-CACGTTGGCCAGGTGCGCGATGTAGCTGGACGCCAGGCGCACGGTCTCGATCTTGGACAG
-CTTGCGGTCCACCGGCTCGGTGGGGATGAGCGTGCGCAGCGCCGTGAAGGCCGTGTTCAC
-GCTCTGAGTGCGGTCCCGCTCCCGCGCGTTGgccgcctgccgctgtcgcaccaccaccac
-ggggcccgcgccgccgccgccgcccgcccgccgcccgcccccggggcccgggccgcgccg
-cgccgcctccgggccctcgcagcagccgAACGACTGGTCCGACGCGTCGCTCTCGCTGCG
-GTTCTCCTCGTCCTCGCTCAGCAGCCGCACGTCCGGGTACAGCACGTGCGCGCCGACGGG
-CCGCAGCAGCGCGAACGCCATGGGCGCCGGCCGCGTCCCTCCGTGCGCCGCGTCCCAGCG
-TcggccgcgccccgccgtgcgctcccgcgcgctcccacggccccgccggcccccgccTTA
-TAGGCGAGGGAGGGGCCAATGGCAAggccgccccggccgggggcggagggctccgcccgg
-ccAATGGGGAGGCGTCCGCCCGGCCAATGGGGAGGCGTCCGCCGCGCCCTGGCCAATGGC
-GACGCTCCCACCGCCTCCGTCCCCCAGGTTGAAAGCGGCCCGGGAGCCGGCGGCCCACCC
-CGAAGGCCCCCGTTCCCGGCTGGCTAGCCCGGCAGATGCTGGAGGTCTGGGAGGGTCGGC
-CGGggtgggcccagatccgaactttttgtctccagcctggaccacctgggagacgcgggc
-agatccctttctcctctctgggcctcagtttcctcgttcggaaCGTTCAGATTGCAGAGA
-AACAGCTAGTGTCTGCCTGCCCTCCAATTCTAATCCTgtagttctgcagctttcacgtgc
-gtaagaactggggaaggggcttttgctattacagagtcccaaattgctcccattctgatt
-gagcagttctggaacgggcccaggaacctacattttgtaacaagccattggtgatagtgg
-tggtgtccgtggagaacacttggagaaAAGCTATAATCTTTCCAAATGAGGATTCGACAG
-TGTCTTGTCCCTGAAGACAAACTTAAAAAGAAGAAGAAAAAAAAAAGCAAAACAAAACCA
-CAATACACAAACACCAGTAGTTCGttcgttttttcaacaaatattcgttgggtccctact
-atgtgtcagacatggttttaggtctgaggatacagccattaacaaaataaattcttcacc
-ctcacggaactgacgttttggttaaggaACTACTGTGTACCAGACTCGGTGCTATATACT
-CTATTGCGCCCAGCTGAGGCTGCAGGATGGCAGCCCTGAGTTACAGGTCAGAGAGCTCCG
-GCCTTCAGTCGTACAGGTGGGAGTGGCGGCGCTAGCTCCAGCCTGTCCGGTTTCACTACC
-TCTTGGAATCCTACCACCACCATCCCATCACACACACACGGGCTATCTTTCCTCAATGCC
-TGCTTGCCTTCTAGAAACCTTAGATTGTTCAGCCTGACGTGTCCTCTTCAGAGAATTGCT
-GAGCCAAAGGTGGTTGCCGGGGTCTCGATCTCACTCGTGCCTGCTGCTCAGCTCTCTCCA
-GGCACTAGCTAAACCAGCATCCACTTGGCCTTGAAAATAAGCCCGAGTGGCAGCCGGTGT
-AGCAGACAGAGCGCAGGGAGTGGAGTTGAAAGGCTTCTAGGTGCATTTTGGCTCCTCTGG
-GCGTCTGTTTTCCTGACGATGCCTGCAGCTCTGCCATGCTGTGCTTTCCTGGCTTCCCTG
-ATCCAGGCCAGAATTAGGGGAAGAAGAGGGAGCGAGGGATTTCCCATGACTGCCGGGGGA
-GGAGCCCCTTAGGACCCAGGGTCTGCGGGAGAGTCTGTTCCCACACCTGGATCCCCCCAC
-CGCCAGCATTTGACCGTGACCCCAGCCAGGCTGGGCTTTGGGGAGGAGGGAAACAGCCAG
-CATGGGCCCCCTCCCCGCAGGGCTGGTCCCACACACAGCCCCAGACCAGGCTGCTGCTTC
-CTGAGCCGATGAATTATTACCGGGAGATTTCCTTCCCTGTCTGCGCCTCCTCACAGGGGC
-TCCCAGCTCACTTCACTTTCGCTTTCTCCCCCTTCTCCCCCTCCTCTCTGCTTCTGACCC
-TCAGGCAGCTTGAAATTCCTCTGTCCAGCCCCCTCCCAATTCCACCTCCAACTGGAGATG
-CCAACCAAGGCGTGAACTGGGCCCGGAAGGCGAAGAGGGGCTTGCCTTGTAGGCTCATTC
-ATTTATTTGCTCCTTAGGCATATTTTGACACTTGGGACCCTGGGAGTAGAAGAAAACCAT
-GAATGAGACTGAGACAGGCCTTCTGCAGCCGAGAGGGGAAGGCGAGCTGTAAACAAAGGA
-TTTCAAGACAATGTGGTAGGAGCAAGCCAGGGTCTGGTATCAGAGAGACCCAGTTCCGGT
-TCCAAGGTTAGCTGcttcccagagtctcagttgcctgctctgaaaatgagataataatag
-tacccattcccagggctggtgatggttccatgagtttgtgccagtagagctgggcttggc
-acacaggagtgctcagtaCCTGAGAGGAGTTTGTGCTACTGTTTTTAGGGGCTGGCCCCA
-GCCAACTGCCTGGGAAAGGGCTGAGCAGCATTGACTTTTCTAGGTCTTGTCCCTGGGAGT
-GCGGAGGGGACTCCTACCACATTCTCAGCTCACCTACACAGGGgacctcagcttccccca
-ttctctgtccctcactctgctccagccacactggcctccccactaaatctggagcccact
-tcttcctggcccccctggcccctgatagtctcatagtttgttcactcatttccttcaaat
-cttcactcaaatcttatctcagggaggcccttcctgaccaccagcactaacagtaatggc
-ttctccaacctgccagcacccccagctctccctttccccttatcctgctttatttctttt
-tatagcatttgtcactgactttcattcattcacttattcattctacaaatattaactgag
-cacctgctatgtgctaggcacagttctgggtactgcggatacagcagtagaGacattaca
-tatttatttgtctaccacctgtctccctccactagagtataagctccatggggcaggtac
-tttgtgtattttgctcatctcacttccttcccaacacaaccttctgaggtaggtattgtc
-attattcccattttacagatgaagatacggaggttcaaagaggggaaagtgacttgcccg
-aggtcacacggtgggccaatgtgggagctgagattggtctgactccaaagccattgctcc
-ttccctaaccacatggcttctGAGGCAGCCTAGAGGCCTGTGAGGGCTGAGTAGGAGTCT
-GCCAGGTAAGAGGAGACAGGTGTCACAGGCTGAGAGGGTAGAGGCTGGTCCCTGCCTCCC
-TGACCATGGGCACCCTTCACTTCTACAAAAAGCATTTGTTTCTCAGAGGCACCTGCTGTG
-CACAACTCTGAGCCTGTGCTCCAGCTGTCCTTCCTGCTTGGAATGCTGCCCCTTTGGGTC
-TGACCAGACATCCCTAGTCCTCTGCCAGTGTTCAGAGTAGCAGATGGTGAAGGCCTCTTT
-GCCACTTTTTGCCAACCTTGCTGCAAAGTCTTGTTGTGTTCATCACACCATATTTTGACT
-TTTCTCCCTTCATCCCTGATTCTCACTTCCATTTCCCTCCCCTAACAGGGCACCCACTCC
-CATATCTTTGACGCATGCCTTTGGATATATGTGTGTCTTTATAAAATGTGCATGGCGTTG
-ATTTGTGTGTGGAGGTTTTTAATGTATATAAATAGTGGTTTCAATAGATCTGTGTCATAG
-GCTATTTTGTTTCCTCGACACTGCTCTGTGtgctgagtccagctcaagtcccttggttcc
-cactgctgctaagcatgcacggtgtgcgtgtgccaccatgcctccttttcccaccgcttt
-agtgatggatgctggctacctccagttcccacctccccaagcaaagctgtgatggacttg
-cagtgtgtgactctcatggactcccgtgtgtatttctctgggatgtacactcgggggcag
-gatccctggggtggagagaatacatacagttactgcactctatgacggctgcctcagtct
-acatgcccagcagcagggcatgagggaccactttctccacatgcaccctagcacttggaa
-ttatctgACTTCCCAATGATGGAGATATGGGTTGTTTTCCATCTCCTTGTGCTTGCCTCC
-ATCACGGTGTGGGCAATAATGAATACTTGTTgcactttgggtggccgaggcgggtggatc
-attgaggtcaggagtctgagaccatcctggccaacatggagaaaccccgtctctagtgaa
-aatacaaaaattagccaggcgtggtggtgtacctgtaatcccagctactcaggaggctga
-gtcaggagaatcgcttgaacctgggaggcagaggttgcagtgagccgagatcgcgccact
-gcactccagcctgggtgacagagcaagactccAtctctctctctctctctctctctctat
-atatatatatatatatatacatatatatatgtatatatatgtatatatatgtgtatatat
-gtgtatatatatgtatatatgtgtatatatatatgtatatatatatataATGAATACTTG
-TTGAACAAATGAATGAAAAGGCTAATACACAGCCTCCCACACCTACCTTGTACCAAACCT
-CAGTCTAGAAGGTGGCGGTATATGTGTGTATGTTTGTGTGTAGAGAGGGGAATATAAGAC
-AAAGTCTTATGCCTCAACCTGCTTAGAGAAAAAGACTaatgacagttagcatttattgag
-ggcttactttgtgtcaagaattCATAGGTGTATATTCACAACCTTAACTTCAGTGAGACA
-AGTAAAATGCATTTCTCTCTCATTCAAGGCCTTTGGAGGTAGGGCTGCTCTGGCATTCCA
-CAGtgtggtcgccagcttccaagattgccagcaatgatccttgcctcctagtattcatct
-gcgtgtgtagaaccctcccccattgaatcagatttgactcatgtgaccaaaagaatatga
-cagaagtgacggtatgtgacttctgaatgtagctcataaaggcattgagctcctgccttg
-ttctcttgagtcatttactctggggacagcagccaccatgccatgaggacactcaagccg
-tctgtggagagagaccaaggtccctagcctacagccatcaccaatttgccagccaagtga
-gtgagcctccttggatgtggatcctgaattcctgacctgcaggacctgtgaaaaagaaga
-aagataatacagaaagacaaagaaaaaagataataaataattattggctgggcgcagtgg
-ctcacacctgtaatcccaggacttcacaaggctgaggccaaaggatcgtttgaggccagg
-agtttgagaccagcctgggtaacatagtgagaccctgtctctaaaagaaaaaaaaggaaa
-agaaatttgctggatgctctggtgcatgcctgtgttcccagctactctggaggctgaggc
-aggagggtcgcttgagcccaggagtttgaggctgcagtgagccatgatcacaccactgca
-ctccagcctgggcaacagagcaagaccttgtctctaaaaacacaaaaattatcaatgttg
-taatcccgtaagtttagggtgttttgttatgcaacattagataactaaaacaGATGGTgc
-cggggacccaggctctgtctatctttttactgcaccatacatagctttcacttcctagtt
-ctcttacagagccacatggccacaggagccattctatctgcattccaactggcaaaaagg
-agaaagaggcagaaggaagagcatgctttaatctgtagaacaccaacctcactccgttca
-catcccgttggcaagatcttgtcatttgaccatacttaactgaaaaggaggctgagtata
-tagtcttttgcaggtaggtgtccgtgtgtgcagctgaacactgggtttctgttagtgagg
-aagaagggaagaatggctattgaaaacaactaacCATAGGTGTTATATACCATAGGTGTT
-AACTCTGGAGATAATAATGTCACAtggttaagtttgcacatttgggagcctgactgcctg
-gtttcagttctcagttaggccacttaccagatgtgtgatcttgggaaatttaccaaactt
-ttctgggcctcagtttcctcatctgtaaacagggctcacagtaaagcctgcctcataggg
-ttgttatgaggattaaatgagtcaatgtatgtagcgtttataacagtcctggcacatggt
-atgtgctGTGTGTTAGCTGTTTTCATTATATAATCCTTACAAGGGttttttttttttttt
-gacagagtttcacaattattgcccaggctggagtgcaatggtgcgatcgcagctcactgc
-aacctctgcctcccaggaggattctcctgcctcagcttcccatgtagctgggattacagg
-catgcaccagcatgcctggctgattttgtatttttagtagagactgggtttcaccacatt
-ggtcaggctggtcttgaactcctgacctcaagtgatccaccctctttggcctcgtaaagt
-gctgggattacaggcatgagccaccgcgcctggccACAAGGGGTTTTCTTAAGTTCTCAC
-AACCAGCAAGTGATGGAAGCAGAATTTGGCCCAAAAGCATTTTTTTCCACTTGCGTCATC
-CCATAGAAATTCGTAGAGTGCAAGATCAAGAcccagatcagtacaccgcacataatacgc
-atccagaaatatctgtcgaatgagtgagtTAAATAAACACGTAAACTGTCCTTACATAGA
-GATGCTAGGTTTTGTTTGGTTTTGTTTTATGTTCAGTTAATGAGAATGCTCCATTGACCC
-CATCTGGTTCCTCTAGTATGGGGCTGATGCCCTTGATACCATGCTAGAACTCAGTCCCTC
-CAGGGTCCCTCCAAGCCATCATTTTTAAGGGTGAATTCCTGGGAACACTTGTTCTTGCGG
-ATGCTCAGGATTCCATGATTTTTTttaaaaaaagtcagagaagctgcattttatatcccc
-ctcctagcgacctgcaacaacattagcatgttaaagagtcggagaaatcctgcaacaaaa
-aagcttgttgggcttcatttcaatctgcattttgttttcttatttttttgagacgaggtc
-ttactctgttgcccaggctggagtatagtgatgcaatcatggttcactgcagcctcgacc
-tcccaggctcaagcaatcctcccacctcagcctcccaaataactaggactacaggcatgt
-gacaaacccagttaatttttaatttttttgtagagatttaatttttttttttgtaggcaa
-ctatgttgcctaagctagtctctaattcctggactcaagcaatccttctgccttggcctc
-ccaaagtgctgagattacaaacatgagctaccgtgcctggtctcaatctgcattttctga
-gcttatttTAGGCTTACTTGATTAAAGACTCACTTCCTGCCCCCAACACCAGACACCTAA
-TAGAGAATACAGTTTAGCAGACATTTCTCCGGGCTGTTGCCACTGACATCTACCTCAGTG
-TGAGTGGGTATCCATTCTTTCTAGACAGCATGTTTGATAGGAGTGAAGTGGAAGTGAGCA
-GGTGGGTGCTGGTTACCAGGAAGAGACAGGGTAAGAGAGGGAACATACAGGCATATGTCC
-GAGCCCCACTTTCTAAGGGACATAAAAATATCATTGAAAATATAATAGGTGGAGAAAAGT
-GTATTTCGTGGTACTTCTTTCAGGGAAAATGCAATGTAAATTGAaataataatattattg
-aggggtaacaatatgccaggcactctgctaggaacttatttaatcctcacagcagtctca
-tgagctaagtactattaatattcccgttctataggtgagtagactaaagagcagaaaggt
-taagtaatttgcttaaggtcacatagctagggagtggacaggaattcTTTGATAAGTTGC
-TTGTGGTGAGGATAACAAGGGAAGACCCTCCCCCGGGGTAGTTTAAGCTCAGATGCTCAC
-AAAACTCTGCTCCAGGGAGAGTGAGCCTACTTGGTTGAAGAGCACTGATTTTGTTGAGTA
-GAGGATGCAAGTTTGGGCCAGAGTGGAATTGTTCAAGAATAGAGAGGAGGTTGGTGCTGC
-CATGGGTGCCCTCCTTCAGCTCCATCGCTTTAAGGAAAGGATGAGCTCATGTTTAAAGAC
-TTTTAAGTTGAAGGCAGTGCTAAATAATTTAGTGTGGTCAGGTACCCACCTGACTCAGGT
-TGACCCTGACACCAGTGCCAGGTGTGGCAGAATCACCAAAATGGTGTGGAAGATCAAGAT
-AATGCTAAAtgaaactaccatttaagtctgctttgaaaactcaaggagtttggagctcag
-agttgccaagaacaagttggaatggcctgaggctgccatgctatgaggaagcccaggcca
-catggagaggccacatgcttttgactggtcgttctggtctttcaattctcccagctccag
-gaacagacacatgagtgaagaggctttcatacaattccagccccagttatcgagtctttg
-ccattgaagcctcagacatcatggacagtgacaagtcttcactgctctacccattctgaa
-tcctgaactacagaatccgtgagcataaggaaatgcttaagacaccaaattgtggggtaa
-tttgTCACACAGCAACACTAATTGTGACTGTAGCTCACTAAAATGCCTCCCAAATATTAT
-CTTCACAACTAAAAGCACCAAAAAACCTGAAAGTAcagttgaatttcatgatttgctata
-attatattctagaaagtcactgcaaacactgaattagcaaatactgaaccactgctccta
-ggagaaatacaggcttaggttcctgtgaaccattctgttcccaacatgttcatcaactca
-tcaatacttaagcttgttttatgcatgtttctgttgaaagacaccatgtttaatacatat
-tgttgattcactcacattgcactcatggccaacagcactgtaactcacgcctgaatgaag
-cttatctaactcacatgatcttctctgtaaggcacatcaaagccttctggtgcttaggaa
-cattagacagcacctcagcaccatgcccggggccattgtcaacagtacaatcaccagcgg
-aagacacaaaaatttgtaaaatgtggcactgaatagactgaaaaggacagttgtttacag
-tgtgagagctgaaagaagaaggcagcgtgtcactttgtatgatctcacctggaaacatgc
-atcaagtgactcaaaaaaaattttttttttcgagacagggtctcactctgttgccaggct
-ggagtgcagtggtgggatctctgctcactgcaacctccgcctcccgggttcaagcagttc
-tcctgcctcagcctcccaagtagctgggactacaggcacacgccaccacacctggctgat
-ttttgtatttttagtagagacagggtttcaccatgttggccaggatggtctcaatcgctt
-gaccttgttatctgcccacctcggcctcccaaagtgctaggattacaggcgtgagccact
-gcgcccaactggcaactcaaatttttcatgactcctcaagtatccatcaatgaccatgag
-agctccagcgagtgttgattttgaggttacaaatttagtgagtagatgaatccacgactc
-cacaatcagtgactaataagaattgactgCATTATTTAATAAGTTCAGGGCTTGCCGTCG
-TGATTCACAATTGGAGAAAGCGAGGCATGGAGCAAGTCCAGGGGTGTTCCAAAAGGCCTC
-ACTTTTCTCCTTTGCAAACTGTGGCTGATGAGGGCCATCCTGCGGGGTTTGTGGAGAGAA
-GGGATAGTAACAACAGCTGCATTGTATGGTGCTAtgtgctgcacactttgcacacctgat
-catttaatactcacaatgatccctagcagatggatcctattaccaagttcattttacaga
-tgaggaagcttagacccagcaaggttaaggggctgtgctcaaggtcttaccttctaggag
-aggcagagctggatctgaagccatttctgttctcagcccctgctGTGTGCTTTCCTACCA
-TCCTCTCCAGACTCGCCCTGAGCCCAAGTTGCtgaggcatgtggcacggtgcctggcaca
-cagtaggctcacagtagtggctgctttGATGATGACCATAAACTGGGATCTGGGGTCCTT
-GAGATGATTCTACCAAGGGGACCCGGGGGAAGCTGAGCCCTGGGGCAAAGTGGGGGCCAG
-CACAGGAGCTGCTGGGGAAGGAACAGAGCCTGTGCGGTGGGAAGATAGGACATGGAGCAA
-AGAGGATCTTGAATCAGACCCCGTGGTCCCCTCCTACAGAGGGTTAAAGCAAGCCAGCCT
-CCTTCCGGCTGAGCGGAAATCAGATTTTGAGAGCTGAGCAGGGCTCTGGAGGGATGTTTT
-TCTTCTCCATTTGTCTGCTTGTGGCTGGCCCATAAAATCCACCGGAACTCCATGCTGGAC
-TGAGGAATTCCTGCTGAACAGGGACATGGAGAACGCAGGCTGGGAGGGGGCATAGTGTGG
-ATCCTTATCAGAGCAGAGACCACCCCATCTTCAAGGCCCCACCTCCAGGTTGGGTGATCC
-CCTCTGGAGGCCTCATAGGATTCCTGGGTAAGGGGAGGGACCAGGATCGACAGGGTGGGG
-GAAAGTCCAAGGAACAAGTGATACCCCCTCCCACCTTTTCAAAGTGAACTTGTGGGGTGA
-GGAATGAGAGGAGACAGGGAGGGTCAGGCTGTGGCAGGTCAGTGAAGTGtgatgcaggtt
-ccaccttctacgctgtgtgacattgggcaagtctctgcccgtttcctcatcattgcaacc
-agggggctggagctagatgaccaccatgtgtaattttctaatcagagctgacagtctgag
-gctctTTCTGTCTAGTTTGCACCTTGCATGCATGTCCTCCCCTGAAGGCAGTGCAattat
-tataacccctattttaaaggtaaataaaccaaggctcactgaggcaaggtgacctgagca
-attttgcccttgaagggctgggacaggatgcaaacctagacaattggtgccagaattcat
-ctctcaagcattcgctctcctgCCTCCCAACACGAGTTTCTACttctctttgccctggga
-tgacctctcctttgtctcttggcttgatgacctcatttttaaagattcggctcatgcatc
-acctcccccaagaagcctgtcctgactaactaagctcggttggggctcctctctgtctgc
-tcatgcctctgggaagtagctgtctcttttggtcactgggctgtgagccctggatgagca
-gagccacttctcattccttcctgtgcctcctgcatcAGCCAACATAAAAAGCTTTCAATT
-TTCCTTGAAGATTCTAAGTGCTTGTGGTGGTTTTAGAACATGGCTGCCTTAAGAAGTGGG
-GTCCATTggtagctcatgcctgtaatcccagcactttgggaggctgaggcaggaggattg
-cttgagcccaggaagctgaggccagcctgggcaacacagcaaaatcccgtctctacaaaa
-aatacaaaaattagccagatgtggcagcatgtgcctgtgggctcagccccttgggaggct
-gtggcaggaggatcacctgaacctggggaggtcaaggctgctgtgagctgtgattgcacc
-accgcactccagcctgggtgatagagggagaccctgtctcaaaaaaaaaatggggtttat
-gtctcctcctcttgagtctgggtgggctcgtaacagctttaaccaatagaatatgtcaga
-agtgactctgcgactactgagactgttcactggcactctgtttttggagccctgagctgc
-cgtagaagatgttcaaatactctgggactaccatgctgtggggtcacatgtaggccctcc
-tagtcttcaagtcatcctggtctggggactccagatgattccagttcttagttgtttcat
-atccagcctttgagtcctcccggctgaggaccaagacaccacggagcaaaaacaagccat
-ccccaccactcctggcccgaattcctaagcataataaaatggtggctgcttaaagccacg
-gagttttggggtagtttgttacacagaggtggtaacgggaacaGtgcgaccaccctgggc
-atgtcaccttcctctctggccagccagaaggtgcagcagccacaaagctctctgcctcct
-cccttccctcagcggtgtgctgctgacacagcagtcagagatgccccataaatgcttcaa
-acagaccatgtccctcctttgctcaaaaccgtctgttggctcccagctcactcagaggaa
-atgccagattcttaccatggcccacgggccctacatgatgggacccctctccagcccatg
-gcctctctgtcctgtctcccaccctctcccttctccagccacaccacctccttgctactc
-cttgaacaccacatacgccctgtctcagggcctttgcgcttgccaaggacagtgctccat
-tgcctggaacattctttctccaggtgttgcttggttcagtccctcatcttgttcatgtcc
-ctgctcagatgtcatcttctcagtgaggccctctcttcctactcccaaaccccttgactt
-gctctattttcctctcgccatggcccttagaactacctaacacactatgcactttactta
-ttgtgtttccccgcccaccccgtccaccctagaatgtcaataccacagggcaggaatctt
-ggttattctttaatgtctccccagtgcctgtaagagtacccaacactcacagtggtttgc
-tgaatgaatgaatGAATGAGCTGTAGGAGCCCAGAAGGGGTTCGTTGCCTTCCCTAGGAC
-TATGTATGTGGGGAAGCAGAGTGGGTGAGGAAAGGGCAGGATTGGAGTGACTGGGTTGAG
-CCAGTGTGGCCAGGGCTGGAGGACATTTCTTGGAAGTGACAACTCACTGCCCAGCTGGGG
-AATCCTGAGGATGGGAGAGTGCAGGGCAAGCCTTTGAAGATGCAAACATGGGTCGTCTCC
-GGGGCCTCCCTCCTTCCTGGTCTTGTGTGTCTCCGGCCCTGCCAGTAAACAGGATCTCTG
-GGCAACTGCCTGAGAACCCTGCCCAGTGCCCCAGAGGCCCTGACGTGCTCCTTCCTGAGC
-TATAAATCAGGTACCTTCCAGCTGTGTGACATCCTGGATTTGATGGGGAAGGCAGAGCAG
-ACAGATTTGTTGCAAAGAGCTGTGCActgcaccttgatttccttgttagcaaaataggaa
-ggataggagcgttgacttcaagctgtggctgtgaaatcgagtgagataatgcatgaaaTT
-CCTCTGTAAACAGAGATGCTTCAAGGACGCATTAGTGGGTGGAGGCACAGGgagcaaatc
-ccaactctgccgctgagctctgtgtcttcacctgtaaaatggggttaatgtgaatcacta
-acttcctagggctattgagggattcaaaaatggagagaaaagtcttagtacccaatgaac
-gtgcaatagatattagctgttattaATGGTAACTATTACCATAATGATAAAGAATCAGAT
-GTTATTGATAAGCCATTTGGGAGACCGAGAGTCTCAGTTCATACCCCAGAGGGGACCATG
-GACTTGGCACAGCACGATTTCAACCCTGTGCCTTTTGTGTATATTTCAATCTGGTCAGAG
-ACTATCTCCCACTCACAGGCCACCTCCTCCCCCTACCCCCAGAAAGGCTATACTTGTGAG
-CACACCACTTCCCTAAAATATGCCACAAGAGTCGACATCTagccaggcacagtggctcat
-gtctataatcccagcaatttgggaggccaaggtaggaggatagcttgaatccaggagttc
-gagaccagcctgggcaagatggtgaaaccatctctactaaataattttttaaaaattagc
-tgggtgtggtagtgtgcacctgtagtcccagctacttgggaggctaaagtgggaggattg
-cttgagcccagaaattcaaggctgcagtgagctgtggttgtaccattccacttcagcctg
-ggcaacagggcaagaccttgtctctaaaaaaatttaaaacaaacaaacaaacaaagaATA
-AATATCTAGCCTTGAAGCCAGCCTTGGGGGTGGGGTGGGAGGAGGACTATTTGTGtgcag
-gagttcaaacccaggccccatcactccccagatgtggaaacttagacatgttatttaatt
-gtcctatgcctcagttccctcaactgaaaaagagaataataatagtacccatctcttcta
-gttgcattgaggactgaatgagttaaAAAGTACCcaacacaccatatgagataatgctat
-tttcattctaccaatgggtaaactgaggctcagctaggagaaagaacttggttcaagCTA
-TCAGTCGTGTTGTTTATTGGCCCTAAGTTGTGACGAGTTTCATTATACCATTAGAAGCCC
-CCGAACAGTGAACTCATTGTTTGTGAGGTATCTCTATCTCTTAGTGATTTTTTAGTTAAA
-TGAGAGTCCATGCTAATCATTTATAAAAAATGGATAAGATAAAAACTTAACATTGAAACA
-TCCATGGGCTTCTTTCCATAAGAAATGGAGAAACTCTTGCTCCTAGTATTAAAAGGTCGT
-GGGTTCCAGTTTGAGATGCACCAAGCAAGGTAATAGGAAGTCCTTGAAGGTTCTTGAGCA
-GGGGGAAGCATGAACTTAAAGCATATGAACCATGTGTTTGGGTCAATTCAagttactgag
-acttagacattgctggtgggatgcaaattgctacaatctctgtggagggtgattgagttc
-cacaaatatttaagataaatgtaagagctcctaccAAAtgccaggtgctgttcaggtgct
-aaggatttgcagcaaataaatccaaccaagtccctctgcctggtgcttattttctggaga
-ggagacacacaatgaatgaatatacaacttagtatagcgtgCACTGGGGAAAGAAATAAG
-AGCATTTCTACAATAATGTTTACTGCAGTGTGAAGGGGGATCTGAAGAGGCTGGACAGAG
-CCAAGTATGGGTGAAGATGTGGAGATAGCGCTGGGGGTGTGTGGACTGGAGCTGCCATCT
-GGAGAGCAATCTGTCCAGTTAAATCTGTACATTGggtgcataaattatggccaccaatta
-tttgacattcctcccatctagatgtaggtctatgtatctgctctctgaatctgggctggc
-ctctgactgctttgacaaacaactatggtggaagtgatgatgtgtcagtttccaggccta
-ggctttaaaagattggcagcttctacttcctctttcttggaacaattacttgaggggaag
-ccagctgccatgaagaactccagccaccccaagactgccattctgtgaggaagtcccgcg
-aacaatggaaagaagtcctctaggatgagacaccatgtgatggagagagaggccaggaac
-atcaaggctgtagacatgagtgaagatgccatcttgaaagggaacctccagccgtagctg
-tttcagttgataccacaaggttcagaaaggagccacccagctgagtccttcctaaattcc
-tgactcacaaagtaatgaacaaagtggttgctttaagcctctaagttgagggtagtttat
-tgtagtgcaaaagataaccagaataGATatatccgatgacccagcaattatactcctggc
-tatatgtccagacaaaatTCTCTTATCAGCCCATAGAGGATATGGCCATATTGTTGTGGC
-AACAGAGAGTTAGAGGCCACTCAGGTATCCATTACTGGGGTGGTAGAAAGGAATACATGG
-TAGGTGCAAAGAGCTCTAGGCAGCAATCAGAAGTCACAGGTGAAGCCACACATACAAGTC
-TGTTATGTTCTACGTGAAGACTTATACACCACAGAATGCACAAAGAACCCATCAGAATCT
-ATGGAGGTGCAGAAAATATGAAGGGGAAATGGGATAAAAAGGAATAACTAGAGAGAGAGA
-AACAAAACCAAACAAAGGAGGGTGCACAGGGGTAAGTTATGATAATCTGCCATGAATTGA
-GGTCTTATTAAACTCAACGCTCTACATTTAAAATCTAAAAAgtaataacaaaggccaaca
-aaattaatgtgtgtgaatagggggttggttaaataaattgtagcacatccacatgaggga
-gtactgtaaagccataaaaaagagtggcagagcttgctatgtactaacatgtaagagtcc
-caaagtatgtcgaaaaggctataagaagggtattgaaaaggatgcataataggcttccat
-ttgGGGGGAGATACCAGTGTGTGTGGTTGTGGATATGTTTATAGACAAATGGTATATCTG
-TGGAAGGATGCTCCTGGGGAAAAGAGCCAGATGTCAGGGGAGAGGGGTGGATGGCACTTC
-AGAAGAGCAGGCACCCAGGAGCTGTGTTCAGAGAAGGAATTGCCACTAACACTGGGACCA
-CCTCCTCCAGGCCAGGATCACGCCAGGTGTGGGGGCTCAGAGTGGGCAGAGAGCCTCTGC
-TGCTTCCAAGATGCCCAGGGTCCTGACTGTGTCCATGATGCAACCTCAGCCAACAAGTTG
-GTTGGGCACTGCCCACTGCTGTGCCCTCATCAGCCACTGTCCTCACTTCATTGCCACTCA
-CCATCACCACTCTCCTTCATTCTGCCTGAAACACTCCTCCCCACTGCCCGTCTCCCTCTG
-TTACTTAATACTCAAACTAGTACAGAGAATAACAGAATAAAATCCCATGTACTCACTGCT
-CAGTTTAAGGAATAATACttttcttttcttttttgagatgaagtctcgctctgttgccca
-ggctggggtgcagcagcgtgatctcagctcactgcaacctccgcctcccagattcaagtg
-attcttctgcctcagcctcctgagtagctgggattacagggatacgccaccacacctggc
-taatttttgtatttttagtagagatgggatttcaccaagttggtcaggctggtctcaaac
-tcctgacctcgtgatctgcctgccccggcctcccaaaatgctgggattacaggcatgagc
-cactgcgcctggccTAAAACTTTTCAAAAAGAATTGAGAGTGAAtggttttaaatatgtc
-cacaaattcttggacactcctctcttcaaaaagtagagttacattctccttacctttgag
-tatgggctgagctcagcaactcatgtctaatgaagaggatgtggtgaatgaggatgggtc
-acaaaagggatacaacttctgcttaattgtccatctgtccgtctatctctccatgctcac
-ttttggaatccagccaccatgttgtgatagaacccaagatgcatgggcgggcccacatgg
-agaggaactgaggccctctcccctcttcccagtccctgatcaacaaccatcacaaatttg
-ctagccacccagatgaaccccctttggcttggcagcaaattctccagcttaccctccaac
-tccccaacccgataggccttcagatgactgcaggcccagctgacagctgaatttagcttc
-ctgaggaccagaaccacccagctaaaccatgcccatattcctgccttcagaaactgtgag
-atataaaaaatgactgttagtactttgaaaacattatgttttgggatgatttctaatgca
-ggatcgattgctaatacaGAGGGTCCCTGGTATCCCTCCCCACCATCCCCATCCACCCTC
-TTAGAAGCCACAATCCTGATGTTTATTATTTCCATGAATGTTTTACCTTTTACTACATAT
-AATAAATCCTTACCCAATACATAGGACTATAtttccttcttttttaaagaattttttctt
-tttgagatggagttttgctcttgttgctcaggctggggtgcaatggcgcgatctcggctc
-actgcaacctccgcttctcgagttcaagcgtcattctTAAAAATGtatagaagtgcatat
-atattgtatggattctgtgcatcctacctcgcatgctcttttccttgcacagtgtgcatt
-ggcgacccatctgcattgaggcaggcagctgccattcgttggcactgctgggcattcttc
-ccttatatgaatatgttaataccacgatatagtatctgaagtccatgttgatgaacattt
-ggatggtttttattttttgctattacaaacaacagcgctggtaacatccACTTGCCCTCT
-TCCCTCTTTCACATGGCACCTTCTTGTTCTTGGAGGTCTCAGCTCTAACAATGTAACCCC
-ACCAACCCCCCGCTCCAGCTAATGGGTTCTCTGTCCCCACATGTGCCTCCCAAGCTGGCT
-TTTGATGGTGctccctctgtttttccttctggcatctactccgtgtggtcaacattcagt
-tatcttttcctgtctggagctagagggtaagccccatgaaggcaggcagagtagtgggtt
-tttttccccagtcccctccatccctgatgctttgcacagggcctggcacacagtaggttc
-gcaagaaaaattgttggatcaggaatgGCTGAGAATTAGcttcctctctttgggcttcag
-ttttcccatctgcacagtgaaaactttagataatttcGGGGTGATTTTAGGTTTAGCCTT
-TGAGAGGTGCCTCAGTGGCCGCCACAAAATATCGGAAGACCCCAACTTTCAGCAGAGCTG
-GCCTTGTTTCCCTTGTGTCTTAGATTGGTCTCTATGGCAGATTATGTTTAAAaagaatag
-ccaccatttattgagcgctcactacgtgataggcatgctgtcagctggcagatgcatttc
-ctcattttggccactcattaaccctcagaagtagcactgttactatgctctttataaaga
-ggggtaaactgaggcaaagagaggtgaagtcacttgtcagaggactagcaaaggagggag
-ctgggatttgtagcacaagagactatcagagcccattcgccaaccctggtgcagccctgc
-cccactgGTACCACAGCTTTAAAGAAGTGGGGTGGGAGGCAGAGGAGGAGGACGGTGAAG
-GACAAGGGTGAAGAGAAATGTTTGGATAAGTTTGACAGCCACTCTTCTGAAGGGCTTTGC
-CAGCCGCAGCATTCGGGTGTCCCTAGTCACGGGGGCTCCGTCACTTCCCTATCCCCCTGT
-TTCCCGGCCCTGATgggtcttgctctgtcacccaggaggctggagtgcagtggcgtgatc
-acagctcactgcagcctggaactcccgggctcaagtgatgttccccatcagccttcctag
-tagctgcgactacaggcgtgcaccaccatgcccagctaagttttaaatgtttatatagac
-acagggtctcactatgttgcccaggctggtctcgaactcctggcctaaagcaatcctcct
-gtcttggcctctcagagcactgggattaaagtgtgagccactgtgcctggctGAGattta
-ttgatcacatagatacctatattattctaagtgtttttcaagtgacaactcatttaatct
-tcataactgtcctgtgacgtagatagtatcagttttatcagtattttatggagattaagt
-aacagaagcacagaaaggtcaagtaacttgcacagagtcacacagctggtaagatgtgga
-cccagctttgaatccaggcagtccagctccagaatccttgtgcttcacATCACCACACGC
-TGCCTTCACCATCACGTGTCAGTTCCACACAAGTGGATGCCCACAATGGTTGGGAGTAAG
-GGGAAAAGGAGTAGGGCTTGAGGAAAAAATAAAAGTGAAGCGTGTGATGATAATGAGCTA
-TGCTTGAGAAATGGGATTAACTCAGCTCTCTGTACTTGATAGAaaaaagaaggagaagga
-ggagaggaaagaagaagaaggaaaTATTTAACTGGACTCTCCGGGGCTTAATTATAACAA
-CTGTCTGGCACCTAAGGTCCTTCCCTAGCTGGGcttgctgcttctctaatctcatttccc
-tacgtttctcacggtgctccagtcactccaggccacacctgatcccagaaacctacttgt
-tcctactttgagcctttgcttgtgctgtttcttccattaagggtgccctttttgccaggt
-gcagtggctcatgcctataatcccagcactttgggaggccgaggtgggacaatcacctga
-ggtcaggagttcgagaccagcctggccaacatggtgaaaccccgtctctactaaaaacac
-aaaagttagccaggcgtggtggcaggtgcttgtaatcccaactacttgggcggctgaggt
-gggaggatcgcttgaacctgggaggcagaggttgcaatgagctgagatcatgtcgctaca
-ctccagcctgggcaacagagctagagactccgtcacaaaaaaaaaaaaaaaaaaaaaaaa
-agagtgctcctttccccattttaggaactcctacacatccatcaaaacctggcctaaagg
-ccctctcctcaatggaaccttttccagcctttcacttcttggggttcccacagcccttta
-catgtctctattctggttggctcacctgctagccagtgagctcctggaggacagggatgg
-gtctggctcatctctttaaccgccatgctgagcccagagcctggtaaatggtgggtgctc
-tataaGCTCGTGCCCAGTCACTCACCTTTACAGCTCcagtgtctggctgacagtgggtgc
-tcagtacatgtggttggacagatcaatGAGTGAATATTTGACGGAAGGGTGAATAATGAC
-ATCAAGGCTGCATTCCAATAACAGCACAATCCCAGTGCTGAGAAAACAATTCACAGCCCT
-GGATTCATATCATGGAATTCTGATTCCTAGGCCCCTTTGTTCCCAGAGCTATCCGATGAT
-GCTGAAGAAGAGTCCCTGGGCATCATCTGTTccagctgtgtgaccttgagcaagttgttt
-aaccaccttgtgccccaagattctcatctgcataaagaagagaaatagctacaccttcct
-catgggctagttacaaggatgaaatttgatcatatgtgccaagcacttaacacaacacat
-gaacatCACGGCATTGGCATGTCAGCTATGCCAATGACTCTATTTATACCTGAAttttta
-tttgaaataatttcagacttacagaaagtttgcaataataatacaaagaattcctacata
-ccatcacccagattccttaaatgttaacattttgcattctttgctttttcattctctctc
-agcatatatttttgtccagtgcctgaattgttggaaataagttgcagacatgttgactct
-ttacctctaagttaattatcccatgtatatttctaaaaacaagaatattctcttacaaaa
-tcgcaggacagatagaaaaatcaggacactgatacaatgctattgtctatcttatagacc
-tattgaaattttttcagttctactaatgtcctttgtagcaaataaacaaaaagatttcta
-cccccccaccccacccactcagtaaccagtccaggacacatgttgtatttaatgtttatg
-tctctttagtcttctttttagtcttatctggagcagtttcttttttttgagacagagtct
-tgctctgttgcccaggctggagtgcagtggtgccacctcggctcactgcaacctctgtct
-cccaggttgaagtgattctcctgcctcagtctcccgagtagcaggaattacaggcgcctg
-ccaccacgttcagctaatttttgtatttttttagttttaccacgttgaccaggttggtct
-cgaattcctggcctcaagtgatccacctgcctcggcctcccgaagtgctgggattacagg
-cgtgagccactgtacccagcgtggaacagtttctttggcttttatggctgacattatttg
-aagagtttaggccagttttttgttttgttttgttttggtttTTGAagatggagtttcact
-cttattgcccaggctggagtgcaatggcaccatcttggctcactgcaacctccgcctctg
-ggttcaagcgattctcctgcctcagcctcctgagtagctaggattacaggcgctcgccac
-tatgcctggctaattttttgtatttttagtagagacagggtttcaccatgttggccaggc
-tggtctcgaactcctgatctcaggtgatccatctgcctcggcctctcaaagtgctgggat
-tacaggtgtaagccactgtgcccagcctggaacagtttctttgacttttatgatcaacat
-tatttgaaaagtttagaccagttgttttgcagattgtccctctgtttggatttttgtgtt
-atttctttatgcttggattcagatcaggcacttgtggcaagaacaccgcatcagtgacgc
-tttgtccttcacagtgcgtcccatcagggggcccatgatgcctgccgacttgccccacta
-ttagcaatgttcactgtgatcatttggtgaaggtggtgtctgccagttttccctactgta
-aagttaccatttttctctttgtaattaacgaataccttataggaagatacactgatacta
-tgtaaatattctgtttctctttatatttcctgcccatatatttcctagcaggatgatcta
-ttttgcaatagatgcaattattatttgatAAAGGAATACATAAACATGGACCAATATTCC
-AACAGTATAAAAGAGTGTAAGGCAAATctcccacccactccgtccccagccaccccgatc
-ctctccccaagccatccctagtctcactgtttcttgtgtccttccagaaatgttctatgc
-atagacaagcgaatccactcatccatcttcttctcgagttatgtgcatgcagaaggtagc
-taaatagacacatgatctgcatcttgttttatttcatttaatattttggagaccatttca
-tatttgaacacaaagaGAGATCTCTTGCTGATTTTAGAAACTTATGTCCATCTGAGGTGC
-AATCCCAGGGtagtcaatctctttcaggttcacaaataaggaagctgagactcagagtgg
-ggaagggacaggtcccaatgtcagaggcaaaacagacTTGGAAACCAGCCTGGAACCCCT
-GAATAAGAGAGTTGACAGGTCTTACTATTGGGGAACCAGTCCTTCCAAGGGCCTTTTCAA
-CAAAATGCCAGACCCAGGCTCATGCCCCCGTTCTCAGCCTGGCTTCTCCCTCCTTCCCCC
-CTCCTCCCCTGGGTCCCTTCTTAACTCTCGTTAGGGACTCCCCTCCAGCTCCCTGCTGGG
-CCAGGCCTTGGGAGCCCCATTGATCCTCTGACAGCCCAAGACAGATTGGTGGGGAGTGTG
-TATTCAGGTGCAGGCGCCAGCACATGGAGGCCAGATGAGAATGGGGTGGAGGGGGTCAGG
-GGCCTGCTGGGGTGGGGGGATTGAGGATTGAGGAAGGCCAGGATAGTGCATCCCACAGAC
-ACCTGCCTCCCCTCTTTCTCCCCCACCAATTCCTGCCCTTCTTGGGGCTTCTGTTCCTCC
-CGCCTCCTCTTGCCAGGCGTGGGCAGGCCAGAGGGGCTGGGGCAGGGCCTGGGAGGCCTG
-GGggtgtagcagagagaagtcgggatggggagtgagccttgcttggtttgatctcagctc
-aggccctcttgtgagactcaggcagatgacatctcttgagcctccgtctcctcggggcaa
-taagaaggaaataaACTTCATACAGCGTCCAGCAGCCAGTGAGGCATGGCCAGTAAAGGT
-CTCCATGTCCTTCATTGGCCTCTTAAGGCTCCCACTGCATTGTTCCTGTCTGATTATGGA
-AGCCCCCAAGCCAAGGCGGCCCCTCGGCTCTGCCTGCGGAAAGTTTTCCCTTCACCTGCG
-CAGACCAGGCCGATGTGGCCTCCAGAATGGAGGGGTCAGCCTAGGTTGCCTGTGACAACT
-CTGAAAGGCCTTAGGAGGCACAGCATCTCAAGTGCACACCCGAGTATGGCGTGATCTGCA
-AGGGGAATAGGGGCTGGGGGGAGACATAGGCTTTGAAGATGAATCAGGCTGGAGCAGGGT
-GGAAGTGGGCTCAGGGAGATGGAGCAGGAGGGGTTGGTCAGGGAAGAGGGAGCTCAAGGG
-AGGAGACATAAGCGCAGAGAGTGAGATAGATAGGGACCCAGCAGCAAGTGGGCTCAGAGA
-GGGGCTGTGGTGCAGAGAGAATGAGACTCAGATGGGGGCTGTAGACTCAGAGAGAGAGAT
-GGGGACAAAAGGGGAGTGGGGGCTCAGGCAAAGGGATGAAGGCAGAGATGGGAAAATTGG
-GAGGGAGGGGAGCATCCGTTTTGGGAGGGAAGTGTCAGTTTTGAGCACACACAGTCCTCT
-GCAGCTTGAGGAGGAGGAAGGCTGGGTCTGTGGAGGGTGGGGAGCGGGTGGCACCAGAAC
-AAAGCCCCGGGGGTAGCAGCCTGGGCCCTGCAGCTCCTTCGCAGCTGACAGTCCCTGAGC
-TAATTACCATTAATGAGCAGCTGGGCCCAGTTTCCCGGGATTTGCATTCACTGTGCTAGT
-CAGCGCCACTGTGGATGGAAGCCAGCGCCAGCCTTCTGGGGTGGGGGTGACTCAGGGAGC
-CGAGGTAAGATCGCTGGCTTCATGTGGGGCTGAAGAAGGTGTGGCTTTGCCTTTCCTGCA
-GGTTAGGAGATGGCCGAGGTACAATCGTGCCTGGAGGCAGGGCACTGGCATCATCCACCT
-GTCCTCAGCCAGGGCCGGGGTAAGGGTCTTGGGGAAGGAACAGGTCTTGTGGCCCTCAGA
-AGCCCTCAGACATTTGGTTGCAGGGGCCCTCAGATTGTGCAGCCAGCTGTCCACTGCGGA
-GTTGAGGGAATAGACCACAGAGGAGCAACGTGCTGCTCAAACTCATACCAAGACAGCATT
-GCTCGTTAAGCGTGCCtgtgtcagacgctgtccaaagcactttactgaatcttcactacc
-aaccccatgtggtggctgttattagcaatcccattttacagatgaggaaactgaggcaca
-gagcggtcacacagccagggaccagcagggctggcatttgagcccagtcctcctgactGA
-TCCCTGCTGGGCAATAGGGCTGAGGAGCTCTCAGACCTGGGTTTTCCCTTGTGATGGGGG
-CTAACAGTGCCTCTCTCCCCCTAATTCCACTCTCTGCAGGGATGCCGGTATGTTTGGTGC
-CCCTGGCAGGGTTGGGAGGTGAGACTTAAGTACAAATAAATAAACAGGGAGCAGATGGTT
-GTGGGGGGAGTGGTGGTGCTGGGAGGGATAGGGCCAGGGCCTCCCACTTCTCCTTGGGAA
-AACATTTCTGGGCTGGAGCAAATGGATTCCAGACTCAGGACCTGGGAGCCCCTTCCCCAG
-GCCTGCCCTCCTGCCTGCTGGCCTCAGACCTGGCCCAGCCCTTGGgagaaatggtgggct
-ggggtcccgagtcttgggttctgcccatccctcatttctctctcttcttcctgtgtggcc
-ttgagcaagtccctttacctttctgtgcctctatttcctcatctgtcaaatgagtggaag
-gagaatgaactttatcaagtttctgttcaagggccacctcccctgggaagcctttcttga
-ttgctccaggcAGCTTCTGTTAGAGCAACAGCCTCGAGTATCAAGGAGAACATAGGTATT
-TGTGTTTTTCATTTCACAACAatccattcaacagatactttctcagggtcacctatgtgc
-ctggcacgatgccaCACTCCAGGCTGACTCGTAGTTTTTCTCTGTAGCTCcagtgctggc
-ccagagtagccactaataaacatgtgtcatgtgcatgaatGATGAGTGGGTGACTGAAAG
-GGAGCATGAGGAGCTGcagtgtttcccaaacgtggtacttgtatcttgggggtgggagtg
-gggagtggataaaagatgatacgggtgaacagcaacaagttattaaataacaataaatca
-acagtgaaaaagttattcctttttcattacctcccagtccttcttacaggccaaggagaa
-ggtctccgatgatgccaggaacgtgtttctagcacctgtggatctctctttctctctctc
-tctcccccaactcccgcaaaacccaccccaagaaggctggtcttgggctcagagcttcta
-cagacaacactatctagaatttgagaatgttgtttggtttccattttattcattttggtc
-agttaccttttatttgtgacaagggattttgatttttcctttgtTTGGACATGGCCAGTG
-GGAGTTGGAAGTGTTTGGCACTTTCTGATGAAGTGATCAGGACCAgggtggggaagaggg
-ctcgactgaaaaggggcacgagagcacttgtggggtgatggaaatgttctgtgttttgct
-tgtggtcgtagttacatggctgtgtacatttttcaaaatgcattgcacgataacacttaa
-aataggtgcattttattgtatgtaaattatacctcaaAGTTGATTTAGAAACACATATTG
-AGggctgggaatggtggcttacgcctgcaatcctagcactttgggaggccaaggtgggtg
-gatcacctgatgtcgggagttcgagaacagcctggccaacttagcaaaaccctatcttta
-ctaaaaatacaaaaaaattagccgggcgtggtggtgcatgcctgtaaccctggctactca
-ggaggccgaggcatgagaattcttgaatctgggagacagaggttgcagtgagctgagatt
-gcactactgcaccccagagcgagactctgtctcaaaaccaccaccaccaccagcaccacc
-accagcaccaccaccaccaccaccaccagcacATGTTGAGGatattaagtagataataat
-acagatggcatgtaggtgtggccaaagtcatgaaggtTGCCCACCACACGGTAAACTTTG
-TAGTCagtgaataaatggatagataggagatagaatggaggaatgcatgaatgggtaaat
-gagcaagcgaatgaatACCTATCTCatccattctacacagccccagcacattgggaggtt
-gtcctatctcaacttgcatagctcctagaatgggggaactcactaccttatgacatagcc
-ctttccacatctgaaccactaggagtgtgtaaaagacattttctcatattaagtttatct
-ttctggagatcctgtgctctctggggccccacagacacatctgcttccctgtctggggac
-agcccaaacacttgCCCTCCCCAGGCTGCCCTTCTCTGGGCCCTTCTGCCCAGATGCTTG
-GCTGCTGTGCCCACCaggtcctgcttgcacagagcttatatcctagtgggcggcaggaca
-aagaacaagcacacaggcacacaaacacaatgattccatgctatgaaggaaatgcagagt
-gagactgttgggaagagcatggcggggtgtggagaggcaaggggagtctctctaggaagg
-taatatttgagctgggacctgaagaatgcaacaaagccagaagaacaagagaaagggcat
-tccagatagaggcaagagcaagtgcaagagccctgagatcacagagcaattggaaactag
-gaagcagccagcctggctggaCATGGACATTTTGGGTATTGATGGTGAAGAGCCTGGAAT
-TGTTTTCTAAATTTGATCTCCAAACACTTTTAAGCAAGAGGTGATATGATATGACATATT
-TTAGCAGACAATGAATATTTCCTGAATTAAAATTGAAGACCCTTCTAGTTCCAATAGTTC
-CATGCTTCCCAAAGTGATACTGAAATGACTTCAGGAGAGAACAggctgggcgtggtagct
-cacatctgtaatcccaacgctttgggagggtaaggcaggaggattgctcgaggccaggag
-ttcaagaccagcattggcaacatagtgagatccccatctctacagaaataaaaataaaaa
-taaaaaaattaaggccgggcacagtggctcaagcctgtaatcccagcactttggaaggcc
-aaggtgggtggatcatgaggtcaggagttcgagaccagtctggccaacatggtgaaaccc
-catctctactaaaaatacaaaaaatttagctgggcatgttggcgtgtgcctgtaatccca
-actacttaggaggctgaggcaggagaatcacttgaacctgaaaggtggaggttgcagtga
-accgagatcacaccactgcactccagcctgggcgacagaatgagactctgttaaaaaaaa
-aaaaaaaaaaaagctggacatgatggaacatacctgtggtcctagctactcagggggctg
-aggcaggaggatcacatgagcccaggaggtcaaggctgcatgagctgtgatcttactact
-ccacctcagcctaggtgacacagccagaccttgcctcaaaaaaaaTTTTTTTTTAAAAGA
-AAAGAGACAATCATGtgatggttgccagaatggcctccagagagggcctccctaggctga
-atcctggctctgcctcatccttgccgtatgactctgggccaaggaccttgcctctttgag
-cctcagtttttacatctgcaaagtgggggtcataattgtccctgtcttattggcttgttg
-tgaggattaaatgactttatattggagaacagggcccagcatgtcaaaagtactTTCTGT
-TTGTTAAATACAATGAAAAAGGGTGAGGACATGCAGAAGCAAGATTAATCCTTTTTCAAT
-CTCTTCCAGTCCTGATTCCTGCAAGGAGAGTCAGGGTTGGTGGGGATGTGTATCTCTAAC
-ACCAGCCCAATCTGGAGGAAGTTAGTAACAAGGTTATATTTATGTTGTTTATATTTACAG
-CTACCTTTATTTGTGCCACATGATACAAtttttttttttttttgagatggagtctcactg
-tctccaggctggagggcaatggcacaatcttggctcactgaaacctccacctcctgggtt
-caagcagttctcctgcctcagccacccgagcagctgggattatgggtgctcatcaccatg
-cccggcttattctgtagttttagaagagacggggtttcaccgtgttggccaggctggtct
-tgaactcctgacctcaggtgatccacccatctcagcctcccaaagtgctgggattacagg
-cgtgagccaccgcgtctggccCAAATTTTCCATCTACCCTGGCTATTTCAAGTTTCCTTA
-TTTTTTTTTTTTAAAGTAAAACAAAAGCAAATAGATTTAGAAATTCAAGGGCCATGGTCC
-CTGAGGTAATGGCAAGCCCTCCTGTCCCAAATGGCCCAAATTGTGCAGGTGGTCATTGAG
-CCATTGATGGGACTTTAGGAAGCATGGttttatttttatttttattttttagatggagtc
-tcgctctgttgcccaagctggagtgcaatggtgcaatcttggctcactgcaaccttcacc
-tcctgggttcaagcaattctcctgcctcagcctcccaagtagctgggattacaggcgccc
-gccaccactcccggctgatttttgtatttttagtagagatgggatttcaccatcttggcc
-aagctggtcttgaactcctgaccttgtgatccacctgtcttggcctcccaaagtggtggg
-attacaggcatgagccaccgcgccccgccCAGAAACCTGTTTCTAAGCTCAGCACAGGGA
-ATAGCTCCTTTTTCAAGTTATGTCCTGATCCGGATCACTTCTTTCTACCCGTGTGCAATC
-CACCAAGCATCACCTGGGGCTCTGGTGACAGCAGCATCCCCTTCACCTTCTTTCTCTTCC
-TGCTCCACTCGGCAGCCAGagccagaccatgtccttcctctgctcaaagcctcacaaggc
-tcccagctcacttggagaaaaagccgaagtcctcacccagctatgaggcccctcccaagc
-tgatgaccctcacccctcctcacccctccagcctcgtcacctgcccagccacagcccttc
-tcccacctccactgaccccaccacactggcctccttgctgcttcttgaacactcactctg
-tgcaggctccagctcaggacttttgcatatgctgttccctctgcctggaacacatccctc
-tgacacccacagggcatttttcctctcattgcccaggtcaatgccccctctcagagaggc
-ccatccaccttacctaaatatttcctagctcattcttcctccctcccctgcttttccctc
-agagcatatatcactaccagacatcacattttacctttgatacatatgttgtgtgtgtca
-tcgcctgtctcccagagtggacttcaagaggacagaagtttgcgtctgttttgtactctg
-atggctccagtgcctggaatggtacTGATTTGCAGAATGAATGTCCAGGGGTGTGTGTGA
-AGGGTGGAGGGCAGTCACTCCCAGCCCTGCCCAGCCTCACTGTGGCCCCTCAGTCCCCTC
-TCCGGATATAGCTTTTCTCTCTGCCTGCCCCACCCTCTGACCCTCAAGGGCAGGCCAGGG
-CAGCAAGCTTGTCCCTTAGGAGGGAGGTTTCCAGCTGCAGGGCAGACCTTCCTCCTATAC
-CTCCATCCCAGGTAAGCCCAACTGGAGCTGCCCTCTCGTGGAGGGTACTCCAAGGATGAA
-GGGCCTTAGGGGAAGAGCCACCCTGAATGTCTCTGGGCAGCCAGGAACCTGCTCACAGCC
-TCCGCGACCTCATCGGGAAAGAGGCAAGACTCATGAGAGTGAATGGcccacggggagtta
-ctatgcttgtccccttttacagatgagaaaactgaggctcagagaggtgaaTCTGTCTCT
-AGGGCAGCTGGAgcctctgtcccctcctctgtaaaatgaggagaataactcctccctcct
-aaggttaccttgaggattaaatgagctaaataaagcctttaaacacagagctgtgtctgg
-cacataggaggtgctcaataaatgttgggtactcttGTTgttctgacaggtgaactaact
-ttccaaggtctcacagttagtaagtaacacaaacaaattcaaacccagatctgtctgaat
-ctaaagTGATTCCCAGAGGgggggcagtggctcacaccagcactttgggaggtcgaggca
-ggaggatcacttgtgcccaggggttcgggactagcctgggcaacgtgacaagacattgtt
-tgtctccgcaaaaaacttacaaaattagccaggcatggtggtacgtgcctgtggtcccag
-ttacttgggaggctgaggctggaggatggtttgagcctgggagttggagactgcaatgag
-ctgtgatcacaccactgcactccatcctgggtcagagagctagacctggtttcgaaaaaa
-agtcaaataaataaagaaaGTGACTCCTGTGCacaaccacaaaataataacaataacagc
-gacgacaacagcaacaacaCCTCCGAGCAGTAACAGCATTTTCCACTGCAGACGGCGGCG
-CTGAGGGTACAGGGATAAGATCATCCGGTGACAGGGATCATCATCCCTGCCTGGCATAGA
-AACCCGGACATCGGACCCTGCCCTCCCGCTGCTTCCGCAGGGACAGGGGGCAGCCAGCAG
-AGCCTCCCTCTGGGGGTGCCCCCCAATCTGGTTGCCTGGGACGGGGGCCCAGCGGGGGTG
-GAGTTGCCTGGGGGGGGGGCCCAGCGGGGGTGGAGTTGCCTGGGGGGGGAGGCCCAGCGG
-GGGTGGAGTTGCCTGGGGGGGGGAGGCCCAGCGGGGGTGGAGTTGCCTGGGGGGGGGTGC
-CCAGCGGGGGTGGAGTTGCCTGGGGGGGGCCCAGCGGGGGTGGAGTTGCCTGTGGGGGGA
-GGCCCAGCGggggtggagttgcctggggggggcccagcgggggtggggttgcctgggggg
-ggaggcccagcgggggtggagttgcctgggggggggaggcccagcgggggtggagttgcc
-tgggggggggtgcccagcgggggtggagttgcctggggggggcccagcgggggtggagtt
-gcctgtggtggggggccagcgggggtgaagttgcctggggggggccagcgggggtggagt
-tgcctgggggggggccagcgggggtggagttgcctgtgggggggggccagcgggggtgga
-gttgcctggggggggccagcgggggtggagttgcctggggggggCCAGCGGGGGTGGAGC
-ACCCTGGACGGCCCCGCGGAGCCCCCTGCGGGAGGCGAGGGCGGCCCTCGGGCTCTGGAA
-GGGGCCGCGCGGCCTGGAAGACATTACACGGCTGTCGGGCGGGGGGCGGCGCTCGCAGTT
-CCGGAGGGGGGTCCCGGCGGCGGACGCGCGGGGTGAGGGGACCGCCCGGCCACAGAGCGC
-GCTTTGTTCTGCGCCGCCCCCGGGAGCTGGAACCAATGGATTGGCGGCAGCTGAGGTCAT
-CTGTCAGGCGGAGCCGGGGGGTCAGGCCCGGGGAAGGGGCCGCGAGGGAGGGCGGCGCGC
-GTGGGCCGGCGGGGTGCGGGTGGacgagccgggggccctgcggcaggtggctacgctgct
-tcggtcctcagtttacccgtctgtccaacaggaaagatcatttctgccctgtccacctct
-gggggctaatgtgagagttaaaGTAGGGGAGCTACAGTGATGATGATGATGACGACGGAG
-GATGACAGCCTTCCCCTAATCGCAGTCTCTACTTCGGGTACCATAGAAGTGCTAAGTCAG
-GGGCTGGACGCAAATGTGCTTTGTAGCCTATAGTGCGTGCCTGTGTGGGAAGCGGGATGG
-ATGTTTCACCCCACCCTCTTTCAGCCCAGGGAAGTCAGTGGCTCCCCCTGATTGCCTGCC
-TTGACCCTGGGTGCCAGGCTTGGTCTGCCTTCTCCAGGGGTGATAGGTGCAGCTGCCCAA
-GCCTGAGCCCAGGAACCCATTGCAGCCTGTCCTTGGAGCCTTCTGGTCCAGGGTAGGGCG
-GGACTGGAGTGACCCAGATAGGTGGGGTTTTTTTTTCTGACTGGGGGTAGGTCAGGGTCT
-CAAGGCTCTCCTTTGCCTCCTACAAAAGGACAGCCCTttctttcatcaattcactcattc
-attcattcaCACTGCCACCTGCCTGTGCCTCACAGTTCCCATCCATGAGATAATGAGGCT
-TCTAAACATTTGATACAGGGTCCCCCAGGGAAGGAGATCATCAAATACAGGGAGGCCCAG
-AAACGGCCCAAAATGCGTGTGTGTGTATTTTTGGGGAAAGGACTCATGGCTTTCTTGTGT
-TCTCAACCACGTTCATGATCCcaaacaaggctaagaagtactggttggagtgcagggaag
-gcaaataggctcccaaactccaccggagagggtggcacttggaacaaccactttggagag
-caatttgccagggtcttagaagatggaaatgggcgtatgcatcagccaggcagctccact
-cctgggtatacagttgaaagaGCAGGGTGATGGCGGGGGCCGTTCGCAGCCGCAAATAAC
-TGTAAGCCCCCATGCTTCCATGAACATGATCACGACTAACAAACGGCTACATTCACAGCC
-TGGAACACCACGCAGCGGTGAAAAAGAATGAGATAGACTCAGCTGGAatttattcatttg
-acagatattgattaacactactatcttttaggcactgttcttagcactgaacctacagtg
-ataaacaagacagattgagtcctgccttaagaacgtacatttggccaggcacggtggctc
-acacctgtaatcccagcactttgggaggccaatatgggaggactgcttgaggccgggagt
-tgaaaatcagcctgataaacattgtgagacctcatctctacaaaagaaaaataaaaaatt
-agctgggtgtggtgacacacacctgtaatcccagctactcaggaggctaagtgggaggat
-tgcttgaacccagaagttggaggctgcagtgagccacgatggtgccactgcatactccag
-cctgggtggtagagcaagatcctgtcttaaaaaaaaaaacaaaaaaagcagacacagaag
-aaaatttgggagagtgtgacaaatgccatgaagaaaataaaactggataaagggacggaa
-tgatgggggagggggctgttttagacgctatggttgggaaggcccctgaagaagtgacat
-ttgggcacagaccagaatgagggagactgggagacaggcacgCACGAATGGGATGGACGG
-CTGGGGCACAGTGCCAAGGGAGAAAAGCAATCCACAAAACAGCGCAAAAAAAGAAAACAT
-TTTTTACTTAAACGCACATTCATTACTATTAAATTAGATAAGAGTCTGGGAGGCTCTATG
-CCAAATTCATAAAGGTAACTGTCCCAAGAGGGCAAAGGAATAATCAGGACTAGGTTTTGT
-GGTGGGCTTCCGCTTGCCTCTAATACtttaaatttctaatatttaattatttaacatttt
-aatattttaatGTTTAAACGGTAAATATggctgaatgcagtggctcatgcctgtaatatc
-atactttgggaggccaaggcgggaggatcacttgaggccaggagttggagaccaaccacc
-ccaggcaacagagcaagacctggtctctataaaacgttaaaaacaaaattagctgggtgt
-ggtggtgcctgtagtcctagctactcgggaggctgaggcaggaggatggcttgagcccag
-gagtttgaggttgcagtgagctataatcagaacattgcgtgccagctttggtaacagagc
-aaaaccccatcacaaacaaacgaacaaaCACATTTTAAAAAGTAAATATACTTATATAAA
-ACTTGTGAAATggctgggcatggtggctcacacctgtaatcccagtgcctcgggaggccg
-aggcggacagatcacctgaggccaagagttcaaggtcagcctggccaacatggtgaaacc
-ccatttctactaaaacaacaacaaCAAAAAGCCTTGTGAAATGAAAACAAAAAAAAAAAA
-AAAAAGGAAATTTAAATCTACCACGGTCAAGTGGGTGGGTTCCAGGGCGGTGAAGGCACA
-TACTGCCTTTCACTGGAGCCAAGTTCCTGGGGGCAGAGGTTTTTTTGGGGAGGGACACTG
-TAGGTCATGGtagcccagccagtaggagcccagaagcttcttggaggaggtaccaccttt
-gctgagcctgaGATTCTCTGGCCCAGCACCCCCAGTATAGACAGGAATGGGTAGACATGT
-GCGCAAGGTTACAGAACAAGAGCTGATAAATAGAACCTGAACTCCAGACTCATCCCGGCT
-GAACCCGGGTTAACTATCCCGCCTCTTTCAGCCCTGCGCGTGCATCCAGCCCCTTCCCAC
-AGCTGTAGCTCTTGCAGGCCAGAGGGACGGCCCTGCCGCGGGGGCCGGAGAGCAGCGCCA
-CCTGCTGCTGTAAGAGGGAAACGCAACTTCCGGCTACCAGCAGGTTACACCCTTTAAAAC
-CCAGCTCCTCTTCCTTAAATGATCAAGCAGTACCCCTCTACTCCGAATCTGTTCTGCACC
-TCCTTCGCAGTGCCTGGCAGGGCCCTTAGCGCTGTCTGGTTGGGTCTTCTCTGCAAGAAG
-GAAAAGTTGTTTCAGGAGGGGGCGACCATCTTCACTCTCATTCCAGCCCAGCGGGCACAG
-GAGGAGTTTACTCACAGAAGACAGGGGcacctcaccttcgctacaaaccttaggggtaca
-caatccatttgacagcctggaagaagtccccagggaagggacagaaccgcccaaggtcac
-acagttaatgagtagacaagctgggGGGAATGAGTAGACTCATTCCACTGGGGATGGAAG
-TGGGGAAGTCACCGTATTTGAAAATAACTGACGCAGTTATTagcagctcttagcatgtgg
-tccctgaacagcagcatcagcaacatctgggaacttgttagaaaagcaaattatcaggcc
-ctgccccaactcgcctcaatcagaaactctggggggccgggggcagtggccatgtctgta
-atcccagcactttgggaagctgaggcgggagaatcgcttgtgcccaggagtttaggacca
-gcccagagaacacagcaaaaccctgtctctacaaaaaaatgagaagggcgcacctgtagt
-cccagctactcaggaggttgacgtgggaggatcacttaagccccgggaggtcaaggctgc
-agtgagtcatgatcgtgccactgcactccagcctgggtgacagggcatgaccctgtctca
-aaaaaaaaagaaagtgggggtggggcccagcaatctggtatttagcaaacAAGCTTGAGA
-CCCTGAACCATTGGTCTAAAGGAATTGCACACCCCCCCTTTTTTTTTTTAAAttaaataa
-acttttattttggaatgatactagatttacagagaagttgcagagatagtacaaagagtt
-cctgtatacccttcacccagcctaccccaaggtcaacatcttacatcaccatggtacatc
-tgtcaaaaccaagagactgaaattggtatattaactaaaattcagacttttttcagattt
-ccaattttcccactaatgtcctgtttttgttccaagacccaatccaggatgccacattgc
-actGAAGACACTCTCCCTTTTCAATTCTATTACTGGTCACCTCAGTCAACTTTCCCGGGG
-AAAGAGAATGCATGGGAAAAGCTCTTGTCCTTATTATTGAACTGGAGAAACTGAGGCTTA
-AAAGTGCCGAGTGACCAAGTTCCCTTAGAGGGCAGTGAGAACAAGGCCTGCCTTACTCTG
-TTCCCTTTCCCCAGGGACTCTTGGTTTTCAGAAGCCCCTCTGGAATGTCCTACCTGGCCT
-AACCCCATACCAGCAGTGCAGACAAGGAGGCACTCCTACTACAGTGGGTCCAGCCCATGG
-AGAGACTCACTTCCTGCCCCAACACCTCTTCCCCTAGACCCTGAGGGCCAGGACAATGTC
-TTAGTGCCTTCCAACTTGGCAGAGTGAGGCCCCATGAGACAGAGAGAAAGGGGGAAGAGG
-GAAATACCTTTATCCAAATAAATACCCATCCAAAATTATTTGTGATAGGTGAAAAATGGC
-CACAAGCTctttgtggttcccctcatcaagacatgtagtctgtttctcatcccttgaatc
-tgggtaaagccttgtgatttgctctgaccaaaagaacttagcagaagtgacactgtccta
-gtcccagttccaggccaagaactcaagaagtctttcagcttctactctcactctctttgg
-aatcctgaagccatcatgtgaataagcctgagctagcctgctggagaggccacatggagg
-agaaccaagcaattccagccaacagcctgtcacctgccaggcaagtgagtaaggctatcc
-tagaccatccaggcccagctgaggtaacagctgaccttagctccatgagggatcccaggt
-gtgagcagcagaactgccctgttgagcccagcccaaattgccaacccataggattgtggg
-aaaatacagggtttgtttctagctgccaagtttggggatggtttgttacacagcaaaagc
-taactggtacaCAattctgcatttctctcttggtaatgggatcccagttttattgcagga
-ggcagtgtgccagtctcagtagatggaacacgattggtctattcagccatgacaattctg
-ttccctgctgtcttagctttgtttgcagctagaggtgcaatggtagctggctcgggccaa
-gggcatctaagtgaagatatgcagagggagagagcaggaaacagacttctgacgaggttt
-tactttctgatagaaggtgacgggtccagctagtttggcccttcctcttcctccacccct
-ccttccttgaacgcagacatgattcttggggatacagcagccatcttgggaccatgaagt
-aacgagcactgagattaaggcaaaaggatccaagacgtgacccctaccttcgtggagttg
-ttgaaccaataccattagccacccatctccagaatccatgctatgtggaaaaacaatctt
-ctgtttgtttaaaccactgcaatcaaggttttcctttccttgcagctgaatgtagtccAT
-ATAAGAGGTTACATAGACAAAAATGCAGAGGGATCCTTGTCCTTGGGAATTTGGAGCCGG
-CAGCACGTGgctcttcaagcccatctctgttctccttctcggtaatgcttcaagggtaag
-gccatgatcctattgtcacagaggtgggaactggggctcccacactgtacagtgagtcca
-aggccttgtagctggtgagaggggtgcccagagtcagacccTCTCGCCAGGTGCAAAGAG
-AATGCACCCCTGCTATCCCTTCTGCATGGCCCAGCCTGCTGGAGGCCAGGTGTGTCTTCT
-GGGCTCTTGAAGGTGGCAGCAGGTGCCAAGGAGGCTGCTACTGCAAGTCTGGTGTGGATG
-CTCCCAGGTACACCCTTAGGTCTGAGAGAGTGGACTGGACAAGCTTGGCGGGGATGGTCT
-CTCGCTGCAGTTGCTGGTAGGCCGCGTAGCGGTGGCAGCCCCCAAAGGAGTAGAAGTAGT
-CACCTCCCTGGGCCCCTTTGATCCAGAGGACATCGATGGGGGGCACGCTGTCTGGGTCCT
-CCTGGGGAGAAGAGGCACAGAGTCAATGGACATGGTACAAGGCTTGAGAGTTTGTAAAGC
-AGACTTTGTCCACTTGTGCTGAGCTCCTTATAAGGTGATCACACTGGACTACTGTGAGAG
-ACAACTGTTAATTATCAGGAATTTTGTGAGCTGTTCgacatcaccttgtagcttgaaaat
-cagccatgggagagtatttacaccagagaaatggacagatgctacaaatcagggatttct
-cccacacatgtatcagcacaccacATGCACactatccagctggccctgttgtagaccctg
-ggaatacggtacagctggaatgtgactgaatcaggccctggcttcaaggggctccagtct
-agtggggcagatggaacaagaagtaaatattagagtgacaaatgctataatgacaataac
-acaggtgacaggacagagatgggGTCCACGAGGCCTCTCTGAGGTAAGAATGAAGCAGAG
-TACTTGGAAAGATAGAGAAGTGGggccgggcacggtggctcatgcctgtaatcccagaac
-tttgggaggccgaggcgggtggatcacctgaggtcaggagtttgagaccagcctggccaa
-aatggcacaaccctgtctctactaaaaatacaaaaattagctgggcatggtggtgtatgc
-ctgtaatcacagttactcaggaggctgaggcaggagaatcacttgaacccaggaggcgga
-ggttgcagtgagctgagatcgcaccattgcactccagcctcggcgatggaacgagaatcc
-atctcaaaaaaaaaaaaaaaagagagaaGTGGAATAGTTTCGATTAAgagctcaactgcc
-tgggttcaaatctagctctgctgcttaacagctatgtgatcttgggcaattcatcttttt
-gtgcctcagttgccccatctatcaaattggatggagataacagatccatctcatagaatt
-tttgggttaaatgggttaatatatataaagcacttcaaaccatgcttggcacacggaaag
-tgctcagtaatgtatgctgtgtatGACCTgagggaagaacgttccatgcaaagggaacag
-caaacgcaaaggacttgaaaccagagcacgttcactgtgtaggaggcacagcaaggagtt
-cactagagtggactccagggctccaggaatggtcagaaaggccagcaggagccagatggt
-gcaggtctgcttctgagagcagtgggtgggccctggagtgttggcaacaggggagggtga
-catgatctgatgcatgttctagaaagttgtcacaggagaacagacttggcagggtggaca
-gggcacagggctggaaggcagaggggaggcctctgcaggtattcagcagaagatgctggt
-ctggatgatggtgtggtggggacagggagaggtagacaggtttgggacacatttacgggg
-caggcccaaggggtctggcagaaggggtgaatccaagggcaagagaaaagggagaatcta
-agttgacttcctgttaggggcccacacagccaggtggagagtaggtcatcctctaaacag
-ggaaagtctggggcaggacgggtgcagggtagagCACTCTGGGGAGACCCCATTAAGTGT
-GAGCGGCGTGGAAGGCCTCCTGCTGCTGGTCCACGGGTTCTCTCTCATGATTCCACAAAT
-GATTATTCAgcagtaaggtgcagcagtcacaagcctgagctctggaacctggcacacctg
-actttggatctcagctcctctccacagcagctggggcacacagccctctgaacaccattc
-ctcacctgtaaactgggaataaaacatcctagagggctgctgatgaagagtcagtgagct
-gatgcCTACCGGGCATTAGTGGAGCACTAAGGAGGGCAGCCGTGCCAGGCAGGCCTTGTG
-CCGGGTACTGGAGGCACGATGGTGgatggccagaatgatggctcccaaagatgtccacgc
-ccgaatgcttctgaatgtgttaccttacatgggagaagggacttggcagacagaattaag
-gtaaggatcctgagatgcggaaattatccaaggttatctagatgggtcgaatgccattat
-cagggtccttaaaactggaagaggaagtagaggaagaggtcagagtgatgcgatgtgaga
-aggccttggcctgatgttgctggctttgaagacagaggaagaggccataagccaagcagt
-gtgggtggcgtctggaagctgggaaaggcgaggaaatggattctcccctagagcctacag
-aaagtagtgcagccctgcttggtgttagcccagtaagacccattttggacttctgaccat
-aaataaacctgtgttgttttaagccatcaactttgtggtaacttacagtggccccagaaa
-actaatacaGGTGTATGTAAGCAAAGGCAGAGCTGGTTCTGGCCCTCAGAGCCTACGGTT
-CTAGCACGGAAGGCAGGTGTCTAGACAGGACGTTAAAAGCCAGTGGGctgtaatcccagc
-actttgggaggccgaggtgggcagatcgcttgaggtctggagtttcagaccagcctggcc
-aacagggtgaaaccccatctctactaaaaatacaaaaattagccaggcgtggtggtgggc
-gcctgtaatcccagctacttgggaggctgaggcaggagaatggcttgaacccgggaggcg
-gaggttgcagtgagccaagatcgtgccactgcactccagccagggtgacagacccagaca
-acgtcttaaaaaaaaaaaaaaaaaGCCAGTGAGATCAGAGCTATGCAGGTGGGCACACAG
-GTGGCTGCAGGCCCACAGAAGCTCCTAACCCGGTAGGGATGGTCAGGGAAGATCCTGACA
-CTGAGACAGGAAGACCGAGAAAGAGTGAGAAACGACAAGGCAGAGATAGAAGAGGTTCTC
-AACGGGAGAAAAAGCCCAGTGGTGGGACAGGGCATGCATGGCAGATCCCTTCCCATCTCA
-gccaggcgccgtgctactattgtggcaacagataagatgggacgaggtcctcgcccttgt
-ggagtgcacgtgaggtcaggaagacagaaaataaaatgcaacacaaatagatgtataata
-taatttctggtggacataagtggtatcctgaaaaacatctcgggctaaggggagagctag
-agaggccagtgactctgaccaagggtgatcaaggaggcagagagctgaaccaggcagggg
-agcaggccctgtggttgtctggggaagtggctccaggcagtgaggacactagtgtaaaTA
-CTAGGACTGAAAGTTATCGGGGGTGGCTGTAGAGGTGCTGGGTGGGGCTTAGGGATCTCA
-TGTGCTCACCTTCCAAGGGTCGGGGGAAGGGGACACAACGTTATGTAGGCCTAACCTGAC
-ACCTGTTCTTGCGGGGCCCCCAAGTTCCTGCCAGAATCACTCCGGTATTCTTAACACCCT
-TCCTCAGTGGTGGAGCTGACCCTTGACCTCTCCCACTTCCCATTCAGACAAGGGCCTCCC
-AGCAGATATGACACACCTAGTCCCACTGTCACTGACTGTCACAGCCATGAGAGCCCACGG
-CTTATCTCCGGgtagtgcggtggccatgtgctgggcagtggggcccaggctgcctgggtg
-tgaattccagccgtgtcactttttaagcgcctgatcttagtcaagccgctgaaatcttcc
-ctgcctcagttctcgtctgcaaaagagccactatctacctcctagggttggcataggaaa
-ctgagggacttcctgcagttcctggaccactgcaagcactAGCGTTATAAGCGTTATCAT
-CACTactttaattatctcgcccaattccctccttgctcaagtgaggaaacagaggcccag
-agaggcccagctacttgctcaaggtcacacagcagaggctgagctccggctgggcccgga
-accagtccgtctcgcgtccaTCGCAGCGACCTCCCTCCTCCGGCAACCTCCCTCCTCCGA
-AGCCCTCCCTCCGGTTGGCTGGACTCCCCGAGGCCTCACCCGGATCGTGTCCACGAGGCT
-CTGCACCTTGGCGGGGTCCAACACGGACGGCAGCGGCCGGATGAGCACGCTCAGCGGCAC
-GTTGTGCACCGCGGCGATGCGGCCCGAGTGGATGCTgccgccctgcgcgccgccgctcgg
-cccgggcccctcgggcgccccccgacccgcgccggcccTGCCCAGCGTTCCTCCTGCACG
-CAGCCCCATCGTCGCCGCCGCCGCGGGACTCGCCGCCTCCCCCCGGCCTTAACTCCGGCC
-GGGCCATACCATTccgcgcggccgggggggggggcccgTGCCAGGGCAGCGCGCGTTTCT
-CCCCCGACCCCGCCGCGGTCCGGCCTCGACCCCGCGGTCCCCAGCCCGACTCCGGCTCCG
-CTCGCCAGGTGCCGCCAGACTCGCGCGGGGCTCAGGCTCTCCACCGGGGGGCGCCTCTCG
-CCTCCCCTGCGCCGCGCGGCGTCCGGGGAGTGGAAACGCCCGGGCGGGCTGACTCAGGGT
-GAGTTTGCAGGTCGCGGGGCGGGAGGGGCGCGGGTGACGCACCGGCCGGGCCGACTTAgg
-ccgcgggggcgggggcgggggAGAGCGCGGCGGACCTGCCCAGCCAGGGTGAGTCGGCAA
-AGCCCGCGGTGCGCTGCTGCCCCGCTGCTGGGGTTCCTAGCCAGCGAGGTTATGATCCCC
-ACCAGCGGTTCCACTTCCAGTCTGGCGCCGGCtgtgtctggagtcgttccgaacattttg
-cacgtgtattaacgtatctgaacctcaaaacaaccctgcaaggaaggtatgactgttatt
-cccattttacagaagaggagactgagacacaggtttaagtgatgtacccaagatcacgga
-actagtaagtggccgaatccgcgttcaaatccagacggtctggctccagagtccgccttc
-tACCCCACCGTTGGCTGCCTTGGTTCAGCAACAGTGACTGTCACACGGAGCCCTCAGGAG
-TCGCGCTGACAATGGGTGGGCCCTGCCTTCAAGTTCCACACTGTCTGTTTGTGTCATTAC
-AACACTACTGGAAGTAGGTGCAGTTATAGACCCGCTGTTCAAGGTCAGCTGAAATGAAAG
-TCAGGTCACACGAGTCCAAACTGTGGGGCCACTTAACCACCAACTCCAAGCAGGAAGGTG
-GACGATCCCAGACTCGGTCGAAGACAAGCATGTCTGGTTTGCTTGTCTTCCTTCTCAACC
-TGAATGGCACGAACATGGAGAAATGCATACTTACCCTGCCAGCTGGAGAAAACTGGAGAC
-GAAGGAGGGAGCCAGGAGTTTCTACTTTGccttccaccagttgctgacactttctgaacc
-ccgtctgtaaaatgaagtcatgctgcccatcactcaaagttgtgtgaattgagagagtgc
-tcatagtgctctgtgaattgcataacaTCCATTTTGCTGTTGAAGATCATTTATTTTGGG
-TTCTTAGTCTCTCACAAAACCTTAGAACACTGACACCAAGACTCCAGCCTTTCCCTTTCG
-AAACATAATTCCCGTGCGCACCTAAATGATACTTTATTTCAAGAAGTAGAACTGACACCC
-ACACCTCAGCCCCAGAATTATTCAGAATTAGAGAATTTCATCAAGAGGGAAGTTATCCCT
-TCTAAAACATCTTCCTCATTACAGGAAGTAAGAATGGCAGGATAACAGTTTCTAGAGTGG
-AAAAGTGGAGCTCTGGCCTGATTCTATCATCATGGTGTACCCAGGGAGGCCTCATTTCCT
-GGTATCAAATTCTCTGTGTTAAGATATCTATGGcccaattcaaaatggcttaagcaataa
-gaaggtttgttttctcacataataaaatgtttggaggtaggtatgtccaaggttggtaaa
-gaggcagttgaacaatgtgaccaaagactccagttctggctgggcccggtggctcacacc
-tgtaatcccagcactttggaaggctgaggcaggcgaatcacttgaggccaggagttcgag
-accagcctagccaacatagtgaaaccctgtctctaccaaaagtacaaaaattaggcaggc
-atggtggcgcgcgcctgtagtcccagttactccagaggctgagacaggagaattgcttga
-aaccgagaggcagaggttgcagtgagctgagatcatgccgttgcactacagcctgggtga
-gagagtgagactctctcagaaaaaaaagaccctggttctgtctatccttttgtgccatca
-tccttggtgttctgttatcctgcggtgtgcccctcatggtcccaagatggctactgtagc
-tcaaaacatcacatcattacatgcgaatgtccacaagtggaagttaggacatcccttcga
-gcctctttttaagagtgaagaaaccttcccTGGCTGGATGCAGTGGctcacaccttctga
-ccttccactcctcaagccccggagtcaactctagtcacactggcctccttgctgtgcctc
-ttccacagcgaatgtgtcctggcctcagaccctttacatttgctgttccctgtgcatgga
-acgctcttccctcaggtCATACatagcatacattactgagtgctctccatgtgcccagca
-tggtttgatgcgctttacatatattaactcatggaacctaacagctttatgagacgagtc
-tgttatctccatccccatttgatagatggggCATCCCTGTGGGAGCTCTGCCCATTCCAG
-AGGTGCCAGGCCATTCACTAATGGGGGCAGGAGCCGGTGAGTAAATGCCAGTCTTGTGCT
-GTCACAGGTGGACGATTCAGAGAGGTGTTCTAGACCATTCAGATCTTTCTGGAACCTTCT
-CAGAGACCAGAAGTACTCAGCCCTATTGCTACAACTGACTTCACTAACACACCctctgtc
-ccattcctcccaccccttacttctgcttccagggatcacctcccacataaacgacttaca
-ctcaagtctcagacttgctatcagggaaccaaaactaaaacaAAAGGGAAACTTGATACT
-GGGTCATCCCCTATAGTTCTGTACCTtgcctgggttaaaattgcactattttattagatg
-tgtgaccttgggccagtcacctgtctgtgcctgtttcctaatctgtaaaacggacataat
-gtcacctaattcacaggggtgttggaagagtgaagagagatggtgttaggtgaggtcctt
-aaaacagtgcacaacgcattataagtgctcaataaatgtttgctgttTGATTGCATTTTA
-AATTGTAACAGAGCTTGAACGTCTCTCCGTGTCTTCACTTTCAGACTAGGCTTGAtgtat
-tagtcaagacttttgtttgcaagtgacagaaagccaaagtgaattagcttaatgaaaatg
-gggatgcttggctattcccgtgactgaGGTGAAGCGGAGCCTCAGGGGAAAGTAAGTTGA
-GAGATTTCTTTTCTCTGCCCTCACTCAGCAGAGGGATTATCTCTACATGTCAGGAACATG
-ACTGTCAACAGCgatgatatttggctttaaataagggaaacctgacaacagagacttcat
-acaacttaaagtgtttcctctttaaaaaaaaaaacagtcgaggtaggaagtccatggctg
-ggatggctgctccatggtcactagtggcataggccctttctatcttgccgctccatcatt
-ttccagcagagttttcattctcagggtcacctcctattcaggattgctgctgaagtgcca
-gccgtctcatccaaattccaccctggaaagaggtggagaaatggaaaggcaaaggatatg
-acccctccccttttgaggatgctatctcagaagttttgtataacacttccccttgcatgt
-cattgactagaaattggtcacacggccacccctggctgcaagggcagctggatatgttgt
-cttcatccgtagcggtaatgtgctgagctaaaactggagttctcttactaaggaagaata
-gagattgataagtagctagcaatcggggccacaGCTCTCAAGTTACAGGCCTTATGGCAC
-AGAGACAGGGAGAGAGAGAAAATTTCCAAGTTCTAGTCAGATGCCTACATATGGACAAGC
-CAGCTATGGCATTGGGGGACACAGACTTTCTTAAAAGCATAAGCCACCATTATTTATTAT
-AATGACTTAAAGGTAAGGAGttcatttaaagataattactggtcacctgctattggctag
-gctagacccaggggatttagtgatcagcaaaaagacactaccaatctctgcattatgagg
-cttacagtgtagtggaggattcagataatgaccaaataatcacactggttaatggaaagt
-atacattggtagtgggtgctgcaaaagaaTGGCATGTGGTTCTGAGGAAGtgttttagtc
-ctttttggctgccatagcaataccatagactgggtggtttataaacaacagaactttgtc
-tcttacagttttaggggctgagaaatccaagatcaaggtgACtttgtatctccccaacat
-tcatatgttgaaatcccaacctccaggtgatggtgttgggaggtgggcctttgggaagtg
-attatgtcacggggttcatgggggtagagccctcatgaatgagattagtgtcctttttct
-ttcttttgagacagggtctcactttgtcacccaggctggagtgcagtagaactgtaaaga
-aaacttctaatttttaaaatcaggaacctgataataactaaggaatcctgaacagagtgt
-tggtagaaatacagatgaaaaaggccatttggatgaggaaatgaggaagatattattgga
-caatggaaaaaaggccatgttgttataaaatggcaaagaacttggctgaattatgtccac
-gttctagtgttttataggaggtagaacttgtgagcaatgaaacggaatatttagctaaag
-ctatttctaagcaaagtgttgaagctgtggcttggctcctcctgactgcttatagtaaaa
-tagaagcagaaagaaatgagttaaagatgtgacttttaagcgaataggaagcaaaacgta
-aagatttgaaaaattttcagcctatccatattgcaaagaatgagaaagaatgtttgggag
-aaaacaccaTAGTCTCCATAAGGAGACTGTAATGGTGATGAACGTAATCAGCCatcccag
-caggaaaactgccgtcttgaattgaaggggaaggagatgggaagggatgaggaaggaAAG
-CTGTCTGACTTCTTGGATTTTTCAGGACAAGACCAGAGTGCAAactcttcaagacaaggg
-aagaatgaccctgaaggcaattcagagatcatcaaggctatctcCTTGCTTTCAAAAGTC
-GGGAGCATTGCCTTGCATTCAGCAGGTTAGAGGGCCTCTGTCCAAAGCCATGGAGGAAGA
-GCTGCCCAGAGCTGTTGGTGTGGGGCTACCCAGAGCCCTGGGAACATGACTTCTGCGGGA
-TAGAGCTGGAGGGACAGGACCACCACCCCAGAGGGTACAGAGGGTGGGACCACCACCATT
-GTGGATCTGGAAGGCTGcctcagtgggcctggaagcagagcatttaatgaactaaaaatg
-atttttcttgagccttaagatctcatggagtttgccttgtagtttggatgtaatttggat
-ctgctattcctttcttctttcctatttctcccttttggaatggtctatcctatgcctgtc
-tcaccattgtattttggaagcagataacttgcttgatttcacaggctcaccgctggagaa
-caatttgccccaggatgcatcacaccttgagtctcagccatatctgacttagatgacact
-tagataataaaactttggattttagacttcagagttaatgctggaatgagttaaggcttt
-tggggctgttggaatgtaaggaatgaatgtattttgcatgtgagaaggatgtgaatttgg
-cggggGATGGGGACGGAGGCAGAAtgctatagactgaatgtttgtgttcctccaaaattc
-atgttaaaatcctaacccccagtatgatggtattaggaggtgggcttttgggaggCACGT
-TAAGGCCAGTTCATTTCATGGTCACAAGATGACATGCTTTTCTGTTCACACTGGAGGGGA
-AGAGGAACTGGACTTCCTTTCCTCTTAAGAAAAAGGAagcagcaaagttttccataccct
-tccagcaaccctctccttaagtctcattggccagaattgggtcatgtgcccatttctgaa
-cGATGGGAGATGTTAGTATTAGACCAGTAAAGACTACCTCTTAAGCTGATGTTCAGTCCC
-CAGATTGCGTGGTTGCTAATCCAGGAGAGAGGGGTGGGGTGGAATGGTTATTGGACCCAC
-ATAACTGGGCTGGATATGGCTGATGGAGACCCAGCATTCTTTCCCACCTCCCTCTAGGGT
-GCCTTCTAGATTGCCTAGTTGGAGAGTTAAAAACTCTATTTCTCAGATCTCTTTGCAGCA
-AAGATACTAACAGGGAATTAAGTTCTACCAGTTAGATGTACTTTCATGAGACATGGATGG
-CAGAGGTGGGCCGGGGCCATCTTCCATCTTTTGACTCTTGCTACTGTCAAGATTGTCTTG
-GAGGTGTTAAGATTTTCTGTAGCAGTGTTCCAGCATTGTGCCACCAGCACAGTGGGAGAC
-AGGAGATAGTTATAGAGGCAGTGGCAAGGGCCTGCTGATCCCTGGCTTGCACCTATGATG
-CGGTGTTCTGTATCTCAATAGTTCCAGGGCACCTTATTGACCACCACCAACCCCCACTCC
-GCACCCTCTCCCACCACTGACTGTGGAAGAGGCAGGTGCTGTCTCAGTGGCAGCAGTTCT
-GCAGTGGGGTTCTGGGGTCCAGCAGATGGCTCACTTCAGCCCTTACACAAATTTTGTCAG
-CAGCCAATTATTGAAGTATTAAATCCTTTCTCCTTCAAAGGAATTTAATACTTGTTTATA
-AAATCCTGTCTAGAGTGGTTTCTGTTCCTGGCACCTAAAACAAACATAATGGATCCAACA
-GCCAGTCACGGGCAGTGTATGTGGGTGGTTAAGGGATGCAGCAGATGCCTGGGTTTCTCA
-AAACCCCACTGGcgaggcgggcagatcacttgaggcaaggagttcgagaccagcctggcc
-aacatggcaaaaacctgtctctactaaaaatacaaaaattggctggacgcgggggctcac
-gcctgtaatcccagaacttggagaggccgaggcgcgcggatcacaaggtcaagagatcga
-gacaatcctggccaacatggtgaaaccctgtctctaccaaaaatagaaaaattagctggg
-catggtggcacatgcctgtagtcccagctacttgggaggctgaggcaggagaattgcctg
-aacccaggaggcggaggttgcagtgagccaagctcacaccactgcagcctggcaaggcag
-cgagactccatctcaaaaaaaaaaaaaaaaaaccaaaaacaaattagccgggcgtggtgg
-cacatgcctgtaattccagctacttgggaggctgaggcaggagaactgcttgaacccaga
-aggcagaagttgcagtgagctgagattgcgtcactgcactccagcctgggtgacacagca
-agactctgtctcaaaaaaaaaaacaacaagaaaCCACTGGAGATTTTGCAGAGTTGTGGG
-GAGGTTCCCACAACTGCTGCTGTCAAAAACAGCTAGCACATTGCTCAGGATGCAGCTGCT
-TGTCCAGAGGGGTGTGAAGGGAAGGCGGACAGGCACCAGGGAGGCAGTCTACAAACTGAG
-TGCACTGCTTACACAGGAGGAAACTGACAAAGAGGCCCCAGAGGAGGCAGATTCTAGCCT
-GCAGCTTCCCCATCCCTCAAAGCATGCAGGTTATGCTTCTTGGTAAGTCTGAGTTGAGGG
-TAGGTGGCAGGGGTTGGTGGTCCCCAGTGAAGTTTTTAGTAAGGTGAGACAGATTTGTAT
-CTTGAAGGATCACTAAGGCAGCTATCGAGGATGATGGATTGGTTGCcttgaacacttttg
-gtgacaggcagctcagaagctctaggggcaagtcactgtttttggacaactttccagctg
-agccaaagtcaacctttttgcctgcttccactcactgaATATGTGACCATATATGACTAG
-GCAGAGCAGTAGGGGGTGAACTGGGGAAGATTATAGGGGTTGTAAACTGGCTGTCAACAG
-ACACATGTGGACCACAGTTTTAACTGTTTGGTGGGTGTAGTTAATTTGAATCCTATTTCT
-CTAAGGTGAGACACTCTTTCCAATTAGTCACAGGCTTCACCTTCCCTAATGTCTTAAGGC
-AACTGGCTTCACTCACATGTTATTAATCTGGTTTTTAAACCCTTATTTGAGGAGTATTAA
-GGATTGAGGATGCCTGAGAACTTGTAAATGCCAAGGGACCCTTGGGGCTGTGTGACCCTT
-GGTGGCAGCTACAGGCTGGTCAGGCTACAGAGAGGAAAATGGAGTGGAAAAGTAGTATCT
-CTCAGATGCCCTCCCCTTCGTCTCATTCCCCCCCTTCATCCCCACCCCTTGCTCCAATCA
-GAAGGTCTAGAGGCGATGGTGAGTGGCCAAAGTCCCTTTAATATCCCTGAATTGCGTTAC
-AAGTAATACTGCTGGAGGTGGGGAAGGGATGGGGGTTTGGGGGTGAGTTGGGATAGGACG
-GAGGAGGAGCGCCAAGCGCTCATACAAAATATGGCCAAAAGGCTTAGCATGCATGGAAAA
-TTATTGCTGTCAGAAGTTGCTATTTACAGGGTCAACGCCTCCATAATTGCTTCTGCTACC
-CCTCTCCCTCCCACCATCCCTGCAGCCTCCCTTCCCGCTGGGCCTGGAGCTGAGCAAAGG
-CCCATTCACCCCTCTGGAGCCCTAGGGAAGTGCCCCTGCTGCAGGGGTGCCTCCAGTCTC
-CCCCCTCTTTTGTGGCTAAGAGGAGGGGAGAGGAGGATCTGAGAGTCCAGGACTCCTGCC
-CCCAAGCTGGCTGCAGAGCAATGGGGCAGAGGCGTGTGCTTAAAGCGGAGGGGGCCAGGG
-CCCGTGCGCGTGGAGGTGTGTGCTTCGGTCCTCGCCCGGGCATGCAAAAGCGCAGCGGAG
-GAGGTAGTGGCGGCCAACGGGCGGGTGGCTGGCAGCCCGGCCCCTCTGTCCGGGAGAGTT
-GCATAGACATGGCCGGGAGAGAGCGCCCCTCCCGGGGAGCAGGCCAGAGGCCCCAGCGGG
-TCCGGGGCTCAGTCGGTCCCTGGAACCTGGGGTCCCTCGGGAAGAAGAATAAACAGGAAA
-CAAATCGAAGAGGCTCCTCTCTCCGGGCCGCCTGGAGTGGCAGGGGAAGGTTCAGGAAGG
-TGGGGACCTGCCCCACGCCTGGACCTCCTGATGCTCCCTCACCCCCCCAGTTGAGGGTCA
-GCAAGCTGCCCCCCCATTCTCGAGTCCCCTTCCTTAGCGAGTGCAGGCTCTGAAGAGGGT
-GGGTTTCTCCCGAGACGCGGGGGTGTGTGTGGTGGGGGCAGCCCTCTGTGGCCTGTGCTG
-TCCCTCTCCTTGCCTGGCTTCCTGACCTCCCAGTCCAGCTGGGGAAGCCAGACGGTCCCT
-GGGTGAGGCCAAGAGATtaaatagaataataaatagataaataaataaatacacaaataa
-ataaCTGGAAGGACCCAGCCGGATGGGGGAAGGGCATTGGCGAGGTGCTCCAGACCTCCC
-CCCAACAAGTAAGGAAGGGGATCTGTGGCCCTGGGGATGGGGGAAAGTGCTCAGAGAATC
-TGGGGGTAGGGCAGCTCCAGACTGTGGAAGCCCAGGTTGTGCCGGGGTGAGAGAGGGGTT
-ACATTAGGGGGCAGGGCCCTGAAGTGCCCCTCAAGCCCCCTCCAGGTTAGGTAGACTCAG
-AGGGGTGAGAGCTGCTAGAGAGGTGAGGGCAGCTGGAGCTGGGGCTGGGAGTGGGTGATG
-AGATCCCCATGGACTGAAGACAGTAGGAACTGTGTGTGGGAGTGGGGTGTGGGGGTGTGT
-GTGTGTGTGAATGGCCAGACCTAAGGCCTGAGCATGGATGGGATCAGGGACAGATCGGAG
-ACTTCAAGAAGGGTGAAGATTAGATCCCCAGATGGACACACTCTGGGAGATTCAGCAGAG
-GCCAGAGGGATGGTCTGGGGTTGGACTGTGGTCTCAGGGCGGCAGGGCCTGCGTCCAGGT
-GTGGATGGGGAAACTGAGGCAGGTATGGGCGTCAAGGGTATAGGTTTGCGGCTTTCATTG
-GGGGCTCCAGTAGAGGAATGGTCAGAGAGATTCAGCTGAGAAGCGAGAGAAAAGATCTAG
-AAGTTAGAAGAGCAGCGCGGGGTCTGGGAGGGAGAAATTTCCGGCTCTGGGGCGCGGGAG
-AGGTGCGGACCTGGTGCCTGAGTTGGGAGCCTTGAAGGCGCGGACAGGGGGGTCAAGGTC
-CGAGGGATGGCCGGAAAGGATGAAGTGGGTCGGGGGACGCTGGGGAAGACGGTGTGGAAG
-TGAGTCGTGGGTTTGGGGGTTGGGGAGAAAAGTTCCGGGCCGGGCCGGGGGTCCCCACGA
-GAGGGTCATGGGCAGGGAAACGCAGCCGGGGCTGGGCGAGGGCGCTGCGGGCGCAGGTAG
-GGGGCCCGGGGCGCGTGGAGAGCGAGTTCCGGGCGCGAGGGCGAGGCGGAAGGCTCAGCT
-GGCCGGGCCGGCGGGGGTCGGCGGGGGTGGCTCGGCCGCCTTGGCGCAGGCCGCCTCGCA
-GTGCTTGTGGAGGTAGGACTTGAGCGCGAAGCTCTTGTCGCACTGGCGGCAGCGGTAGTG
-CTTGAAGGCCGAGTGCGTCTGCATGTGCGCGCGCAGGTTGGAGCGGTCGGCGAAGGCCTT
-GCCGCAGTGCGCGCAGCCGAACGGCTTTTCGCCGGTGTGCGAGCGCATGTGACCCTGCAG
-CAGCCAGGGCCGCGAGAAGGCCTTGCCGCAGACGCCGCACTTGTGGCGCAGGTTGTGCGT
-GAGCAGGTGCATGGCGAGCGCGGGCATGGACACGTAGGCCTTGCCGCACGTCGGGCATTT
-GCGCGCCAGCTGGCTGTCCAGGCTGCGGTGCGTCTGCTTGTGGCGGCTCAGGTTCGACGA
-CGTGGCGTAGGTCTTGCCGCACTCGGCGCACGCGTGCCGGTGcccgccgcccgcctgcgc
-ccccgcgcgccccgcgcgccccccggcgccccccgcgtctcccgagccccccgcgtcccc
-gccgcccccgccccgccgccgccGCGAGCGCCCGTCCGAGATGAAGAAGGCGTCCATGGA
-GTAGCTGTCGGTCACTGCCGCCTCCCCTCGGAAGTAGCGCGCCGACAGGCTCGACTGCGG
-GCTTTCGGGGTCGCTGTACTCCTCCGGCGCCGCCGGCGGGTACGCGGGCTCGGCCGGGGC
-CAGCTCCAGGCCCGGCTTCTGGTCCGCATCGTAGCTGCTCGGGGGCAGGCGGTGCGGGGC
-GTACCCTGGAGGGGGCGAGAAGTGGAGGGGCGGTGAGAGGAGGCGCCGAAGAGGGTTTCC
-CGCTTTGAGCGCGTCACCCTTTGCGCCTTCCAGCTTGGCGCCCCTGTGGCAGCTCCGACA
-GTGGTGGTCTCCGACCTGCACCTCAGCTCTTCCTGTCAGGCAGCCTGGGTTCAATTCCTT
-CCTCCATCGACGGCAGTGCAAATAGCCGCCACCCCAACCCACGGAGCATGGGGCCAGCAC
-GGTtgtacagagcgtaccttcactatccagtgctcacaaccgcggagtgatggtcttata
-atacccacgctacaggtagagaaactgaggcgcagagagatgcagcagtctaaccttaca
-gtcaggaagtgatggagcccttgccagtgtgaccctgaagcccatgctgtctctattcca
-acaacatgctgccGTTGCAGCCCTGtaacttctctggatctcagttttctcatctgcaaa
-atggagcttgtgattggacacctccttccagggtcgttggaaggactgagtaaagtgacg
-ataataagcgtgtgttaagctcttactgtttgccagactctgcctcggtgctttacgcat
-gttaactctaatcgtcacagacccaaggaagtcggcactattgtaatccccatttgatgt
-gtaaggaaatgaacaaagGTGGGGGAGCATACAGTAATTGCTATATAAATGTTAGCTATT
-ATAATTATGCTTTTTACTTGCTTGGAGATAGTTTCctcccccaccacactgtgagctccc
-catggttggatctgtgtgcccagcacatgcctggctcaaagtaggtgtgcgatgaataga
-tgttgcatgaaggaatCACAATCCAGTTAGACCCACCTGCCAGGGTTGCTGAAGCATTTA
-ACAGGGGTCAAGTGTGTGGCATGTAATAGGTGCTACAGAAAGGGGACTTCCTCGCACCTG
-CTCCCAAGCCTGCTCTAGAAGTCGTCGGAAGTCCGCAGTGAGAATTCCCCTCCCCCTCCT
-CCTCCCACTTAGCTGGAGTTGGACCAGGAATCCTGTCTGCCAAGGGTTTGAGTGATTGGT
-GGGTGGGCAGGCTGGGGTCTCCCTGGGGATTCCGTAGGGGATTCTCATGGGCAGGGGCCA
-TTCTGATTTGCCTCTGCCTCCCATGGCCTAGGCTGGTCCTAGCACCTTCCCTGAGACCCT
-GGGGGCTGGGCTCCCTGGAGAGTTTCTGGCAGACAAACTTTTCATCCTGGCACTTGATGG
-GCAAGTGATTCCATTGTTCTGTGATTCCACAGAACAATGAAGGTTAGGTCCGTTTGGGAG
-GTTTCCCACCTGGGGAGTGGGATTTGACCTTCTCCTGGTGACCCCTGAGACCTGTAACCA
-CTCCTCCTTCCCTCCTCCCCTAGCCTCCTTCACTGAAGTGAGCAGGTGGAGGAGGGTTTT
-GTAAGGGGAAACAGGGTTCAAGATGTTCAGACTTTTAGCTGGGTACTCTGGTCAGCTTTC
-GTTTCCCACACAGCCTGGCTGATTCAGCctccaggcctttgcctctcatctggagtttgg
-gatggacacagggtgaagtctgtgtgcccctgaaggcaagggtgtgcccttatttttacc
-tctgtcccttcagcagccagcacagggccctctgcacacagaagtcattgtggattatgg
-aagtggatgaCTCGGAAGCGGGGGGCTCTGTGGTTGGATGTAAAGGGGGATAGTGATAGT
-GGCAATTTTTTAATCTGGGGAGAGGAGATGCCCAGCCTCTCCGCACCCTATGTCTCCCGT
-CCCATCTGCCTGTGGTCTGGAGGTCCCCCTGCTTCCCACTCCGGGAACCAGGCCTGGTAC
-TCAGGTCCCAGAACATTCAGGAGTGTTGTTTCAGACTGAGTTAAATACCCGTCAGGCACT
-CCCAGACCCCCCTCCTTCTCCTTCTGTATTTCCTCACGTTGTAATTCCTGGTGATGataa
-taatagctaatattcactgagcacttactgtgtgcaccaggctctgtgctaagtgcttcg
-ctcccatcatctcactgaatcatcacaaaactactctcatcacagataaggaaactgagg
-gacagtgtggtgatggcacttgctccaggggtggagcaaggattggaatccactgccCCC
-TTGgtttcccacatactgggaggtcctccaggagggggctgtggctgagctgttcacctc
-ccattcccagggccctagctagtgggcacttaataagtatttgtggaatgagtgaTGATG
-ATTTGCGAGGCCAGCCTCACTCCCCAGCCTAGCAGGACCTGGTATAGACAGTCCTGTTCA
-CCTGGTCTCAGGGCAGGTCTGCATCTCATGTGTCTGGGGCCATGGAAGGGGAAGGGTGGT
-TTGGTTCTCCAACACAGATTCCAGCTGAGTGCCTTTGGGTGGGTTGTGCTTCAGGTCCTT
-TTTTTTTAAAATGGGATTTATCTGGAGGGGTGACTGATCACGTAACCAGTGCTTTGAGTT
-CTATTATTAAaggatgacatattggataagagtaaaactttggtgccagacggcctggat
-tgttttggctctaccattcccagcagtgtgaccttggccaaacgatttggcctctgtgtg
-actcTACCGTTTCAGTAAGGGGTCTGCCAGTAAACAGTATATAAACAaatgataaccagc
-actctcagagcactcctgtgtcaggcactcttacaagggctttccacacatgaaagcatt
-ctacccccatgacacacaaggtggtaggtacccttttatagaagaggaaaccaaggcaca
-aggaagctaagtaacaagcctaagattgtgcagctgataagttagagccaggattccagc
-tcagTGGCTGGCACATTTTAAATCCACCACGCATGTTGGCTGTTATTATGAACAATAATA
-ACAATCTCCCCAGATGGGTTTCTGTGCTGCAGCTTTCTTGGCATCTGCCCCAACACATCG
-TGCTGCTCCTCTCTGGGCCTCTGTTTCCTCACCCGGGATGTGTAATTTCTATTTCACGTT
-CTGATGGGAAAATATCTGGTGCATAGTAGGAGCTCCATCAGTGAACCAGAGCGTTCTCCA
-TGAGGTGCTCTGCCCATGGCGCCCTCTGCTGGTGGCCCTCAGCGCTGTTGACTTTCCTCC
-TGTTGCAAGGGGCTCTTTATGAAGAAATAGGGGTGCCTTCAACAAAGGCTGCTCATTTGC
-CTAGGGAGGGCTGCAGAAGTGTCTTCAGGATAGGAATTGTGAGCCCAGACCAGACACCCA
-GTCAGTGGATTTTGGCATGGGTTGAGAGCATCCTGTGAGAGTTTGTGTGGTCATGTTAGG
-AGGAGGTGGTTctaacttgctttgtgactgtggccaggttgcttaacctttctgggcgga
-atctatacatgacaaagatggactggaatggtctaaagaccctttctgcATCATGGCTGA
-ATCAGTCCCTCCATGATGCTCTTTGTCCCCTCCACTCCCAGCTCCTCCAATTCCACCCCG
-TTTTCCTCAGATTCACAGACATCTCCctaggcaaccttgggcaagttacttaacatcttt
-ctgccacacctgtataagggagttcataataaggctgaataaatgaatgcatgtaaagtg
-cttaggacaatgcctgacacataatagctgccctcttgagctgttattattGTTACTGGT
-AGTATTCCTGTGTTTCCTGGTGATATATCCTTCTAATCTGCCAGAGAGTAGGAGATACAC
-ATGGGTGTCTTAGGCTgctgtgtgaccttgagcaaaccacctcacctctctgagcctcaA
-CCCTGGAGACTCCTTTAGGACACTAAAAGCCATACTTTAACCTAATGCATGGAACCCAGA
-CAGGTACCTTCCTCTGCCCTAAGAGTGACTATAGAAGGCTGAGATACCTATCCTGCAACT
-GACAGGGTGAGACAGGACTCTTGTTTGGGTTCCCAcagagatagggatgagctgggattc
-agagaaaagagaatctcaggtgagatctctcatcctagcccttgaattcaggccgtagcc
-atgtgaccttgggtaagtcgcataacttatctgggctcaaatcctccatttgaggaatgt
-ggaccagaggcacccctgtcatgtagggatatggggaggGCCCAGAAATACTTTGGAGAT
-GTGCACATGTCACCTGGAAATGACTTTGGTTTTCCCTGCCCAAGAGTCTTGATATTTTAG
-ACTGAAGGTCCAGAATCTGTCTTTTTAAAAATCGGTACTCAAAGGAGTGGTGAAAGGGAA
-ATTTATGAGAACTAAGGTGCTGGGCCCTCTGCAGACACTGTCTCATTTAGCTGCCTGACC
-CCCTGCGGGGATGGAGGGGGATGTGTAACAAATACTGCTACTGCTACTGCTGGTGCTTCC
-AACTAGCACCAGCCTCCCTGTGAGCCAGACATTGCCCTGTGCCCAgaggcccagagaggg
-gagaggatttgcccaaggtcactgagagggaggcggcaggtttgaaaccctccaaggcct
-gtgttttttccaaaacaccaGAGAGGGCATGGAGACTTGCTGGGGAAGAGATCTTCAATT
-GGTAGGGGAAGGGGTGGTGCGTTTCCTCAAACACTCCCTAGTTAGCCTGTGGTGGGGTGG
-GTGGGGGCACGGGGTGGTGGGGGCATGGAGAAGCTGTTGTGGAAAATGCTTCAGCCTCTT
-GTAAGTATTTGTAAATCATACTTAATaacagtaatgcctatcacttactgagcacttact
-tggtgcaaggcatcctgctaaatgctttgtgcacattagctcatgtctaaggtcacttcc
-ctccatgcccttgttctgcagaagctgaagcccagacaaaggccttgacccacctcaggt
-cacaaaacaagttctcatcagagctgggttggcctccttttctttcctttttttcagtcc
-aggactcctttccccagtctctcccagACTCCCAAGGTGCCAAACTTTCTCCAGGGAATT
-CCTAGCCTCAGCCTCACCTCTCTGTCCTAAAATGGGCAGAAAAAGACAGGGGCCTGGTGG
-GGGGCCAGCTTCCCCGGCGGCCCACTTTCCTGAGGAGGGCTGGGCCCTGCTGGGTGGTAG
-GGGCTGGAGGAGCTGCTGTATGGGTATATTTAGAGCTGCTTCTTGCTGTGCCAGGGCCTC
-GGGCCTCGAGAATCAGCTCCAGCCAGCTGAGCAGAAAGCCAGGTCTGTCAGCAGCAAAGC
-GGGATAAAAATAGTTTCTCCTGTCTGCTCACAGAGCTGGGCAAAGGGGCTGGGTACCTCC
-CCCTCCCCTTATTATAGCATCTTTGTTAGCGGTTCCCTGGGCACTGGACCAGAAATGACA
-CCCACCTCCTCCAAAGGCCTGGCAGCTGGTACATCTGCCCACGGGGAGGAGGTCCCTGTG
-CCCAAATGAGCAGGGGACAGAGTGAGGTCTGGCCCAACATGACCAACGCTGCATGGCTTG
-GGGCTGATGCCCACTGACCCAGGCCCAAGGAACTTTGAGAGAATTTCAAGGCTTTTCCCC
-ACCACCCCCATCTCTTGGAATTCCCCACATTCTGGTCTTTCCTGACTGTGACCCAATTCC
-TGTGGCCTACAGGGAGGTCCAGAGCTCTGCAGGAATCAATAGGAAAGATTTTTCAGGGGG
-GTATGGAGATGAGAGTGAGTGGCTCAGGGTCTTCATTTGCCCAGCCTGGGTTCGTAGAGT
-TGCCTCCTGCTCCCTCGGGGGGGATCTCCAGTGGGCCCTTTCTGGGCCTCGTTCCGGAGA
-CTGGGTGTGTTGTGCAGTGCTCCACCTCTTCCCCCGGCCTCCTACTTTCTGCTCTGCCGC
-CTCTCTCTCTAGAAGGGTGCACTCAGAGGGCCCATTCCAAACCCCTCCCTATCCAAAGGC
-TGGCCTGGCAGTAGACGCTTCACTTCAGGGGAGTCCACAGCTGGGAAAGAGACCAAGAGG
-CCCGAGGGACCCCATCTCTCCCGGCAGAGGGCCTCCAGGCTGTGGGGGCCCCTAAAACCT
-GTGGATGTAGCACCCACTAGGGAGGTGTGACAGGGTGCACCGTTTATGCTCTtgtgactt
-tgggcaagtcacggcctctctgtgacctcagttttgcctctgtaggttggagtgaatCCT
-CCCCTGCCCCCCGCTGCCCTTTGCCCACTGTGGATTTGTGTGGCCAGAGAGTGCCTTTGG
-GATGTGTAGATTGCTGTACTGACATAAGGGACTTGGTGTACTCTCTGGCCCTCCTTCAGC
-AATCAAAGACTGAGACTATCTAAAGTGTGGAAGCTCAGCTCAGGACCCTCACGTCCCTCT
-CGTAACCCCAGGCTTTAGAGGAAATCAGGGGTTCCCAGATTCCATATCTCACATGGGCCT
-CATCATTCCACACTTCCACTGAGCCCTGTTAATTCACAGGAATATTAGATTTCTGGGTCC
-Ctagaaggtcaaagctgaaagagatcatattcaaccgtttgatattatgaaaggaaaaca
-gaggctgggaggagaggggagactaggccaaggccacacagaaggctaatggtgagtcta
-agacttgaactcagCCCAGCCTTGAGAGCGGATCTGGACAATGACCTTGGACTGGAAACT
-GGGCCTGAATCTTGATTCTGGACCCAGCACTTTGCCCTGGACCTGTTCATAGGTATTGAA
-ATTTGAAATTGGACATGGATTTGTCCTGGATAGCAGACCTGGACCTATAACCTCAGACAC
-TGACCTTGGACCTAGTCCTTGGACCTGGTCCTATACCTGAAGTTTGACGTAGGCATTGGA
-CTTGGACCTCAGATCTGTACTTGGATGTTGGACTGAATGTTGGACCTTGACCTAGACTTT
-GAACCTGGGCCTCTGACATGTCTTTAACCTGGACCTTGGACCTGGACCAAGGCCAAGTTA
-CCAGGGAAAGGGGTGGTTAGAGAAGACTCAGATGGGTCTGCTGTGTGTCCATGGGCACCT
-CCCCAGCCTTCTCTGTGCTTGCTCTTCCAAAAGACTGGGGAAGCCCTTTTGCATTGCTGC
-TCCCCAGAGGAGCTTTCTGAGGTGTGGAATGGATGTGTGGCAGCTGGGGACATTGGGCCG
-GGCTCCCGGGCTTGGCCTGGAGCGACTACCCGGCACCATCAGAGGGAGTGAGAGGAAGTG
-GGCGCTGGTTTAATGTGGTCAGCTAGATAAGCCCATGGGTAGAAGTAGGAGAGTTTCCTC
-AGCTTGCTGGGGGAGGCTTAATGTAGCTGCAGAGGGCAGACAACTGTGTTATTGGATTGG
-CATTGATCCCTCATCTGCCTGGGTTGGATGCACTCTGAGAGGGCAGGAGGGCAGGACAGG
-GCGGGGATGCAGAGGAAGGGGGGCCTGGCTCCAAGCTGGGGTTCGGAGTTAAGGTGGAGG
-GGAGGCAGACACTCCAGAAGATATTCTTGGCAGGGGCCCACAGAGACCACTGACATGCAT
-GTGGGTGGGCCACCTTCTTTGGGGTGGCTGAGAGTCCCAGTATCCTTCAGATGGGGGCCC
-CGGTCTGTGGGGAGGGCCTGGTGGAGTTGGAGGGTGAGGTTAGCAGAGGGTTAGGATGAT
-GTAAGTTGGCATCTCCCAGAAAGACTGAGTCTGTGCTCAGAATCACCCAGGGGAGAAGAG
-GGGAAGGGAAAGCAGTGGAGGAGCAAGAGAGGCATCTTACTTGAGGGGACAATGAAATTA
-GATCTATTCCCACTTATCAGGGAGCTCTGCAGAGAGACCTGGTGCTTTCTTCATTTGAGG
-GGCTCCCCTTCCCTGTTTAGGAGTTCTGTGGGCTTGGGGGGACCCTGGAGCACAGACAGA
-CTTGCTGCACCCTCTGTTCTGCCTGGCGGTAGAGGCTGAAAGGGAGTAGGAAGGCAAAGA
-AGAGCATTGCTCgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgcgcgcgtgcgtgt
-gtgtgtatgGAGGAGGAGCAGGAGTCCTCCAGGAATTCTCCAGCATTCTCAGGCATTCCC
-AGAGCTGGGGTACACCTCTTTAATTTGGGGTTCTGCATCTTTATCAGCTAGGAGCTTGTG
-GTTTCTCTGACCTCCACATTCACAGGCTCCCCCAACCCCTGCTCCCCCGACCCAGGTTTC
-CCTCCCGCCAGCCTCATCCTGACCCTGCAGCCCGAGCTGCAGGAATGGCTTGTAAGAAGA
-TCTTTCTAATAACTGGAACTATCTCCAGCCCCAGGCCTCCcccgccctccctccctccct
-ctctccttccctccctcccttgcttctcctccctccctctcctcatcttccccccctccT
-CTCTTTCTCCTTGTTTACCCAGCACACTTACACACGCTGAGAGAGAAAAACGTCGGCTCA
-GCAATTTTTCACACTTCCCTCAAATGCTCAGCAAGGTTATTTCCGGCAGAGCGGAGACAA
-CGGGCCACCAGGAGCCGGCGGGCTCTCAGCAGACCCCCAGCACCCTCCACCCGCCCAGGG
-AATAAGGGATCCCTCACTGCCCAGTCTGGCCGCACCCCAGGGAGGGAAGAGGCCCCTGAA
-AACAAGACAAGGCAGACTTTGTATTTCCCAGTCATACCTAGGCTTGGTCTCTGGCACTGA
-CCGTCCACTGCAGACACTGCCAAGGTGGCCAGGCCAGGGTGCCTGTCCTCACTATGGGGT
-AGCCTACAGAGACCAAAGCCAAGAAAAGTGCCCGATCCCAGAAATGCCGCTACCCTCAGC
-CAGGTGGCGTATGTTCAGTGGAGCCCTAAGGAAACCCTGACAGTGGCCTCCCAGCATCCT
-GTTAGACCCCTGTGCAGGCATCTCCAGTGCCTGACATTCCATAGTTGACCTtcacagaag
-ctgagcttgtcaaagttggaaggatgcttagtttatgccatcaaaactctttcactgctg
-gggaggctgaggaccagagaagggaaggcacttgcccaaggtcacacagcatgtgagaga
-tctagagcccaggcctccaaatttcaggccaggtttctggctatcagcacagccTCAGGA
-TTCCTGAGAGGTGAGGGAGTTGGTCTGGAGACCCATGGGGAAGGGGACAAAGACAGAGGT
-GGTTCTAGGGTGTTAAACCCGGTGGAACCTCTGCAGAAACACCCTGCTGGTGGCTCTGCA
-CCCGCCCTGCTTCCCACTATTCACTCAGGGGCTCCTTTCAAAGCTTTTTTTTGGACTGAA
-TTCAAGGCAAGGCATTCTCTTGCCTCCCTCCTGAGGAACAGCCTGCAGTTTTGGCTGTGC
-ATGGGAAATTCTCTGGGCTTCTCTGGGTTTCCTCAGCTGGCCTGGGGACAGGACCAACGG
-GGCTTCAGGGGGTGGAATCCCAGAGCTTTGTGTCAGTGTCAGTCCCTTAAGAGATCCATA
-TCCCAAGCTTGCAGATATTTCAGTTTCTACCAGCTTTGAGCGCACACTCTCCAGCTTTGG
-CATGGCCCCAGGTCCACCCTCTGTCCTGCCAGCCCTCAGCCCTGCTCAGCCATGTCCCTG
-GGCTTCTGACCTCCACCTCAAGAGGCCCTGTGATCAAGAAAAGAGGACAGTAGAATAAGG
-GACATGTGGGCAGAGGAGAAGGGGTTTCTGTTAAGGGTCTGGGGGATGCCAGTGGATGAG
-GGGCTGTAGCTGTATCCCTGATCACTCTGTAACTTCTTTGACCTTGATGAGGTCACAAAG
-CCCTTTGCCCAGCACTCTCTCTCTCTCTACCTGGTGTGGCAGAGTGATGGAATGTGGGTG
-AAGTGCTTGGAAATCCCAGAGGTGGAAGCCCCCATCCTCCCAGGCTCCTGTCTTTGCCAT
-CTCAGTTCCCCCCTCATCCTCAGTCCTTTCTTTTCTCctctctcaatctccctctttctc
-tctctctctttccccacccccatctctctctctctctctctctcacacacacacacacac
-acacacacacacacacacacacacaACCCAAAGCTGCCACATGTGATGTCAGATCTCTCA
-CTACCAAAGGGACACCTCCTCTTCAGACACCTGCCCTGGTGGGGGCCATCAGGGGAGAAC
-CCCTTTGTGATCCCCTTGGTGGAGGATGGGATCCACAGAAGCAGTCTCCACTTTCCCCTG
-CCTTCCAGAGATCACCCCCTTCTGCACCTGAATGACTTCTCTTGTTCCTCAAACCCTTGT
-CCCTGCAGGAACTTGTTCTGAGAAGAGATGGAgtgtgtgtgtgtgtgtgtgtgtgtgtgt
-gtgtgtgtgtgtgtgtatgtgtAGTGAGGAGGGGGCTTACGAGGAGCAGCAGGGTTGGTT
-CTGGAGGGGGTTGAGAAGCTGGGGATGGGGAAGGAGTGCAATCCAGGGGACCAGGAGCCA
-CTTTGGGGGAACCCCTCCCAGAAATCCTCTCTTTCTTGCAGTCCCCAGGACAGGCCCAGC
-CTTTGGCAGGCATGTGGCTGAGGGTAACAAAAGAGTTATTGAGAGAGGGGGTCTGAGAGC
-ACTTGTGTGACATCGGCAGGGGAGCAGGTTTGAAGGGAGGGAGGGCGCCCCCAGCCACCC
-CCAGGGAACCAACCCTGTCTCTCCAGGGACTGAACATCCAGGGCTCTTTACCTTCCCCCT
-TCCCGGGCAGCCAGCTTCTCTTCCTCAACGGGGGAGAGGGAACCCTCAAAGTGCCTTGTG
-CCTCAGTGCCCAGCGCTGGCCTTTCACGAGCAGCCCCGTCTGTGTTCTCTTGCCACCCCC
-TCACTCTAGCCCTATTTGAGGGCCACAACTTTCAAAGTCCCGGCTGGCGCGTGGCTGCGG
-GATGGGCCGACCCCGCGACTTTCCCTTTGTACGACCTAGCCCCTGCCCCGCCCGCACGGC
-CCTTGGAAAGCCCGGGAGGAGCCCACGGCCAGAGAGATCTCCTCCCGGGGGTTTCCTGTC
-GCACGCGCCCCTCCTCGTGGCCCAAGCTGGGGAGGGCCCCAGCTCCCCTCGCCTCTTCTC
-CCAACCCCCCGCCCCCGCCGGGTCCCACTCACCGTTGTCCCCGGGAGGCCCCCGGGCGCC
-AGGCAGCACGTAGGCTGTCTCCAAGGGGTGGTAGGTGGGGGCCGGCACCCCGCTGCACTG
-GAAGCCGTCCCCTTTGATCTTCTTTACCAGGAAGGAgcgcggcatggcgcggccggcgcg
-gggctcggtgcggggaggcggccggccgggcgcgATCGGCTGTGTCCGCGCGGGTTTTCA
-GCACTGGACAGCTCCCAGCGGGCTGGAGCGCGGGAGGCCGCTCGGAGCCGGCACCGGTGG
-CGGCGGCCCCGGCTCGGGCTCGGGCTTGGCGGCGGCGGCGCGCAGACAGGGGATCGCGGG
-AGCTGCGCTCAGCACTCCGGCTGCCGGCTTTATATGGGACGCAGGCTGGAGATCAGGTGG
-TCCCCTAGCAATGGAACCGCTCGGCGCTCTAATCCATCAAATGTCCCCCAGGACAATCGC
-TCCGCACACGTTCCCCTGAACCGGCGGCGGTGGGGGCAGGCCCGGAGCaggcaggagggg
-agaaagtgagggcgagaaaggcgcagagacagagagggacggagaaaggggagtgagggg
-ggcggggagaagaagagagactcggagaaagacagagacatacagggaaagagagacgca
-cacgctgagagaggtagaaatagaagcagagagaccaagataaggacaaaaagacacaag
-agagaaacagagagagaagaaagacagagaTGGAGAGAAGTAGCAACACACACACACCCA
-CGGGAGGAAAAGAGAAATCCAGGCACACAAAAAGGAAACCCCCCCAGGGATGCAAAGAAA
-GGGAAAGAAAAGTGCAAAAGAGAGGGGGAAGCCGAGGGGAACGGAGGGAAAGCGGTCCCG
-AGCAGGCGGGGTTCAGGCACATGGGGCCGCAGGGAAGGGGATGCAGAGGAAAGAGTGCGC
-ACTGGCCAGCGGCCACCCTCCCGCCTCCAGTCCTCTCCCTCTCCCCCAGTTCTGAAGTGG
-CCAGGGTGGACGCTCAGCTTTCACTAGAGTAAGTCTCCCCTCCCCCCTGCTCGGGCTCCC
-ACTGGAGCCCCCTGTTGGGTTTGGGGTTCAACTTTCTTCTTCCAGAACTGGTGGGGGGAG
-CAAGTCCCCCACGCCGATGCCTGGCCTTGCTCGGTTGGTCCTGTTCCGGTGCCTAGCTCA
-GGCGGGCGCTGCAAGAGGAAGTGAAAATCGTCCAGTAATTAATTTTCCTGCTGCCGGGGG
-GTGGTGGTTTTGACACATCCGAGGCAGTGTCTTTCCCTGAAGCGGGGAGCAGACAATAGA
-GACACGTGGACTgggaagggagaggggggaagggagggggagcgggGCTCCTGCTGGAAC
-TCTTTGCAGGTCAGCTCCTTTGTCTCTAAAAGGATCTGAGCAGACCCGCCACCCCCAGTC
-CGACCCAAACCTGGGGGAGCCCCCATATCTTGGCAGGACCAAGGAGCAGGAGAGCTCAGC
-CCCCTGCCCAGAGGGTGCTGGGCAAAGCCCCATGGTGGCGGACCTGCTTTAGCAAGTGTG
-GGATGGCCAGTGCACAAGAGTCCCAGAATCAGACTCTAGGAATTCCAGGCTCTCGCTGTC
-AATGGAATTCTGGTTATGAGATGCAAGGCTGGTGGAGTGGGGATGTCCTTTTGGGACTGG
-GTCATCCAATACCAGTTTGCAGGCTAAGACCTAGAGAGGGCTTGGAGGTGCTTGAGGTCA
-TGCAGTGAGTCAGCAGCAATTGCCAGAGACCTCAGTGGCCTCTGGGCACCACTGAATCAG
-GGCCTATCATGGTCCTTGAGGTGTAGCCCAGAAGTCTCAGAATAAAACTGGGGCCCCTcg
-tggtggttcaagcctgtaatcccagcattttgggaggctgaggcaggaggatcacttgag
-gtcaggagtttgagaccagcctgggcaacatagtgagaccttgtctctacaaatagttaa
-aaaaaaaaaaaaaattagccaggtgtggtggtgcacacatgtggccttagctacttggga
-ggatgtggtgggaggatcgcttgggcctgggagttcgaggctgcagtgagctgtaatggc
-accactgcgctccagcctggatgaaagagcgagaccctatctccaaaataataataataa
-taataataaGTTAGAGTTTCCAATGCAGGATCTGTTGGCCTTGAATATTTTCAAAAGACA
-TAAAGATGCAAGGATGTGGAAGCAGAAGGTTTGCCATTGAATTTGCCCTGTATGGTTTTA
-GATTGTTTTCCCTGACCGAAATAAGGAATTAAGGCAGTTTACTCCCTATATATAAACATT
-GAAAAACATTGCAGGTCCAAAACAATGGGGGCCCCTGATCTTGCCAAGGCCCTGCATGGT
-CTAGAGGTCCCCCACCATCTTTCCTGTTGCATTGCCTCATATCTTGCCCATGGGAAtttt
-ttttttttttgagatggagtttcgctctcgttgtccaggctggagtgcaatggcgcgatc
-acagcccactgcaacctccgcctcccaggttcaagtgattctcctgtctcagcctcctga
-atagctgggattacagggtgcgccaccatgcctggctaattttttgtctttttatcagag
-acggggtttcaccatgttgcccaTGGGACTTTTTTAAACCTCTGTCACTGAGAGTTGAAG
-TGACCACACCCTTGACTCATGGCACGcccatgcattctctgctccagccataggtgccta
-ctggtgctttgggcttgcagctctcttgacctgtataccatttccactgcccagagtcct
-tccctgcacttcaccctaggaaacccctacttgttctcaagactcagccgaggggtcact
-tcctccaggaggtgtccctgacttccatcattgcagactgggccaactcacccactggtc
-cctgagcttcatgaggacaaagactctgtcccatgtatggcttaacacACTCTTAACAGT
-GTGCATGAGGGTCttctagctcccctacttattagccataggtccttggacaagttactc
-aaccgctctgtgcctcaatttccccacttataaaatgggaataataattgtcactaccta
-agtgttgttgggagtgttagaagagttactacatataaagggcttggaatggtgactggc
-atatggtaggagttcaatGCTTGAGGGTTCTATATATGCAGTTTTGCCTGTAGCATGCAG
-CGCTCATTTGTTACATGTTAGTGGGATTctgtggaatgagtggtgaactaggcatctctg
-gtccctgctttcttgcagctgatcttgcagctgtccattcattgagtggatggacaccaa
-gcaagaaaatccttaaatcaacaatatattttcagatagttgaccagtgctgtgaggaac
-ataaaacagggtgagatgatggagagtgatggtgcctttaggcagggtgaccagcaaggg
-tctcctgggagaggtggcatgtgcacctagacttgagccagccatggaaggagcccagga
-aagagtgctccagccagaggcttcacaagttcaaaggctctgaggcaggaatgagcttga
-gcagctgaggacagcaagaaggGAAGGAAGATGAGTTCAACATGTTAGCAGGGCCAGACC
-CAGAGATTACTCCATAAATCCCAaatgaatgagtgaatgaaagaatgaatgaTTGTAGGG
-GTGAGATTCAGCCTATAACTATAGCTTACAACTGTGACTAAGTAGACCTATTGGTTGGAG
-AATAACTTTTCACTGTTTACATAGAGGAAGTTGCTTATTTGTTCAGTCATTGACAATTGT
-GGTATAGCCATATTTTTTAGTTTGTGCTGGGTACTTGGATCTCTGTCCTCTAGGGGTGCC
-TAGTTCACTGTGGGTAAATAAGGCAAGTGGGTGTCATCTAGCTCACCTCCACCTGCCTGA
-TGGTTCTACCTCTCCAACCTCACATCTAAGAGATGGCAAAACGGATCCCAGAGTCCTTAA
-AAAGGAATATAGGTCACAGCAACTTTTGACAGAGCTGGGACTGGACTGTTCTCACTGGGC
-AAGATAGTGATCCACCCCTTAACTGATCAAAGGAAGCCCCACAGAAATGGTGTATTAATA
-GGTCCTGCAGCCCACTAGTGTCGGGTTGAGGATAGAACCCCAGGTCTCTGACCACAGGTT
-GGAAGGTGGTGTGGGTGCATTTAGCATATGAGAAGAAGCCTTGAGCCCTGAAGATGAGGT
-TCCAAAATACCTTCAGAGGGGAGGAGGCCTTAAGTATGGATGAAATACACAATGGCCAGC
-AGAATTTCATCACTAGGACACCAGGAAGGGCCTTCTGTCCCCCAAACCTCCCCCCACCCC
-AGCTTACTGGTTTcaggaagttcactgtggggaattaatttctctaagtcacatgaaata
-aggaaataacttttattcccaaggatgttcgctgcagcatcagagatggtaataaaaacc
-ctgggttggagaaagcaaggagagggttgtgaagaagacgttcactccatgtagtattct
-gcagccattaaaaattctcatttggggagaaaagctcataaaatgtgttaagtgaggggt
-gcagaatacagaaacctctcacagcacgttcacaaccatgaaccaaaacaaaaataaaca
-cacacAAAAGAGTGAAATAAGGGTCTGGAACTATGGGGTTTCCCTCTCCCTTCTTTTTGT
-GTTTTCCAAAAAGATCATAAAATATTTCAGTTCagccaggtgcagtggctcacgcctgta
-atcccagtactttgggaggctgaggcgggtggatcacgaggtcaagagattgagaccatc
-ctggccaacattgtgaaaccccatctctactaaaaatacaaaaattagttgggcatggtg
-gcgcgcgactgtagtgtcagctactagggaggctgaggcaggagaatctcttgaacccag
-gaggtggaagttgcagtgagctgagatcgcgccactgcactccagccttgtgacagagca
-agactccatctcaggaaaaaaaaaaTAGTTCAACAAATATTTATCTTGAGCACTTGCTAA
-CTGTCACTTACTTCCAAATAGAAGAAATGCTGAAGTTTAGTAAACCATGTCAGGATATTC
-ACTATTCATTCTTCTGACTTTTGGGAAGTTGGCATTGTGAATTTCCCCAGTGGCAATAAT
-AATTATTAGTACATCGCCAGCAACATTACAGAGCCACCCCACAGGCCTGGCAGTGTGCTA
-AGCACTTTCCCTTTGAAGAAGGTGACCTTgcctggggctttagattgagggatttggagt
-cagcctattttcagtttaaattcctgctctgccatttcccgactgtgtaattctctgtgc
-ctccattttctcatctgtaaaatgggtgtataaattgggcctgtctcacaaggttgcagt
-gaggattaaatgataatataggcatcaagtgcttagagcagtgcctggcacacaataact
-tgataaatgttgacagttgctatttacatatcctcacttatctaagccttaccatggcct
-catgggagaaggtgctgttattGAAATGACTGGTTCATGGCTACATAGTCACTGTACAGA
-GGAGCTAAAGAGTGTCCCATGTCTTCATGGCCTACTGCCTTCCTGCCCAGGAGCCCCAGG
-TCTTGGCATAATAGGTCTAGCTGGCTGCAGGCTTAGCCCTCTCTGGCCTACCTCGTCTGC
-TCTGGCATCTTCCATATTTCAACTGTGCCCTGCCCATCAGGAAGAAGGGCAGTTCCCAGG
-GTCTAGGTGTGAGTCTCAGGGCTGTGTGACCCTAGGTGGCTGGCAGAGCCACCCTGGGCC
-TCACCCTGCACATCCATAAAGAGGGGTTGGGGCATCCTATGATTCACTGGCTTCACTCTA
-TGGGGTCAGgaaggagcactgacctgggagtcaggagcccagttccagccctgcttctgc
-tccctttgccctcccctttgggccccagctttcttgtctgtcaaatgggaatgggacaag
-atggtccctgagctgctgtccagACCCGGTAATGGAATTCTGTATGAATTCCAAGGAGGA
-GAGTAGCCACAAATGCATCCGCTCCACGCTGATGGGGCTCTCTCTCCGGTAAGCTTCACT
-TACTCTGCCATTTCTCCAGTGTATTTTATCAGACCCACCTCCTCTGAGCCAAAGAAAAGA
-GGGTAGGAGCAGGATGAAACAAACTCACAGCTCTGTTCATTCAGGCTCATCACAGAGATG
-ACTTGCCCAAGGGCATGTGGCAGGTCCTCTGAAATTTGAGGAAGGCTGTGTTTTCTTTtg
-tgtcactttggtcctccgggaagcagatgtgaaaatggaggtgtaagtgtaagagattta
-ttgagaaaacaccgtgagaaatggaggagagccttcagagagggatgcaggtctgatact
-gtgaaaggagaggtggaataaagaaagattggggaagaggagcctcaggccatggtgcag
-gtctaaggaagtcctagccaacccaacagggagctcctgtgcaaagatttcctgtagagg
-agtcccgtgctcgacagaagggcagaccctagtttcccaccatgctcagtcatcagccgg
-cctgtcctggaagagtggctgtgctgacaactatggcagattgcaaaggtgttgcagctg
-gaggctctcagtgactgtagtccagagaagatctgagtggcacctccctaaggctgccac
-aTGTTTTTCTTTATTCATTtaatagacacttacagaactctgggccatgtgccagttact
-gatctatgcactttacaaatattaccttagttaatccttaccctcgccttttgagacaga
-tggtatttttagccccattttatagagggagaaactgagcacaaagaggttaagtaagtt
-gcccaaggtttcacagccagtaggtgataagccacaaatccaacccaggcaagctgcttg
-gaggctctgctctgaccactccaccacactgCCTCCTCTCCAGCTGCAAATGCCTTGGTG
-GCAATTTCTGGGACCATTTCCATTTTCATTTTTCATTGGCTCAGGACCTCACAGCCTTAA
-CAGGAAGGGGCCTACTGTGGTGGCTGGGGGCATAGCAGGGTCCCAGCTCCCCCTGAAGCT
-TCTAccttgctccctcaaagacttccacctcaaagcctttgcatatattgttcccactgc
-ccagagcactcttccacccccttccttgcctaggtaacccctcctcCCATCGCTCCCTTG
-CCTGACCCCAGGATCTAGCCCAGGATAGGGGTGATATGTAGTGGAAAGGAGCTagttgac
-atttattgagcacttattatgtgctaggagccaagtccagccctttacatagattgcctc
-acttaaccatcataacaacctgtgagtgtggcccatggctatccccattttacagatgag
-gaaaccaaggctcacagatgcaaggtgacttgcccaaggagacccagctaggaatcagtg
-gtgtcagtatttaaaccaggctgcctggctacaaagtcctgatcttAAACCATGAGTCCT
-TCCCTCTAAGAGGGCAAAAGATACCAATGCTAGGGTGGGTAGGTGAGGGCCCTCCAAAGA
-ATGTCCCTCCCCTtccccctgccagggctgacagctccttgagtgggattccggatctgc
-tccattcattgccgcacctccatcgtctacccagagccgggtaaatagtaagtgctcagt
-aaatacatcaattgaatgaataaaCTAATGAGTGAAAAACCTTCTTGCGACCCGCAGTCA
-CCTTGGTCCCCTTTGACCAGAGCCAGGTTGACGTGTCAACCGTCAAGATATCCCTCTGTT
-TTGGGTGATAATTAGATTTCTATCTTGACTGTTACAGACATTGGTATTCCTCCATTAAAA
-TGTCTTTCTTTCAggccaggtccggtggctcacgcctgtaatcccaacactctggggggc
-cgaggcgggtggatcacctgagttcaggagttcgagaccagactggccaacatggtgaaa
-ccctgtctctactaaaaatacaaaaatcagctgggcatgatggggcgtgcctgtgatccc
-agctactcaggaggctgaggcatgagaatcgcttgaacctgggaggaggaggttgcagtg
-agccaagactgcgccactgcactccagcctaggtgatggagtgagactctgtcttaaaaa
-aaaaaaaaaaagaaagaaagaaaaGAAAAAAAGTCTTTCTTTCAAAGTTGGAGACATCCC
-TAAACATTCTAACTCCTGTCCCTGACAAGGTCCCATCTTAAGCAGGTCTCTGAAACCTCT
-GGAAGAAGGAATTGGCTATCAGGAGTCTGATCACCAGGCTGCCTGCGGGGTCAGGGTATT
-TGGGGTGGGCCTCTGGCATGGTTTAGCGGTGGGCTGGCCAAAAGCCCCTAGACAAGAGCC
-CACCATTCAAGCAAGTGGGATAACTCAGCGTTTGGGCCTGGGTCACCCTGAGCCAAGttt
-tattttttatttttattttgtagaggtagggtcttgctctcatccaggctgtagtgcagt
-gttgtgatcatggcttatggcagccttgaactcctggggtcaagtgatcctcctccctca
-gcctcctgagcagctgggactacaggtgcatgccaccatgccctggctaatttttaaact
-ctttgtagagatgggattttgctatacttcccagactggtctcaaactcttggcctcaag
-tgatcctcacgcctcggcctcctaaagtgctgggattatagatgtgagccactgtacctg
-gctgagccaaattttaatcctggctctgcctcttcaagctggttggccctgggcaagtta
-ctttgcctctttgcagctctatttcatctctgtaaacagaggccagtgggagcacctgct
-aagtagggctgtAGGGGGCTTCATGTATAGTCAGCCCTTGGTAAGTGGGAGCTCTActtg
-aagggcctttgagataacagcattgtctcctccccacccccatttgacagttgtggaacc
-tgaggcatgggacagggaaatgctttccctggaacattcaggctccctgccaagtcagga
-tgggcttcctcactccaaggtggcctctctTGCCTCCCTCTCTTCCCCACCAGCCGAGCT
-CAGAACCATGCCTGGGAGATGCTGAGGTGGCAATGGAGCTGCAGAGTTGGCATTTCCAGG
-CTCCCAGGACTCCTGGCACAGAGGAATCAACCCCTCTCAGCAGCCCCGGCTCTGCCTCCT
-GCTCCCTGCCTCTGCTCATATACCAGCTGGGACTCATCAGCTTCTAGAGAAAGCCAGGAG
-GTGGCCCAGGTGCATGGAGGCAGGGGGCTGTCAATATTGACCTGTGCTTGACCGCAGACT
-TTGCCAGTGGACAGGTTGCTAAGGAGTCAGAATGTCCACATGCCCCTAGTGCTCATCTTC
-CTAGCCTCCCATCTCACCTAGCTGCAGAGGGGGAGGGGgagcacaagagttgaaagcgtg
-gatgatctgggttcacttcggctgcttaccaacaagttacccagcctggggaagtttccc
-atcctctttttatctcagtttcttcaactgttacatgaggatgttgatactaatggctta
-tcttgaagggcagatggaagatgagtgaggtgtttgcacacagccagtgctcaataatat
-tggccattgttAATTCTGAGGCTATCCTCTTACAGTGACCTCTTGGGCCTTTCAGCCCCA
-AGGAGCCTCTCCTCTCTCTGACTCCTGTGGCTCTGTCAAGATCCTGCAATGAAATTCTTC
-TGGAACCCTATCCAGATGGTGAACTCTTCAAGGGCGGGGACCCCATACAGGTGCCCCATT
-ATAGGCCTGGTACACAACAGGTGCTCATGAAAAGGCCTGCTTGGCTGTGATACtacatga
-acttacagaaccctcacaactacttttggaggcatatgacatgattatccccttttataa
-aaagggggacagtgggtaacatcgaggtgaagaaattgcccaagcagctgggcgcgatgg
-ctcacgcctatagtcccaacactttgggaggctgaggtgggtggatcatttgaggccagg
-agttcaaggccagcctggccaacatggcgaaaccccatctctgctacaaatacaaataca
-aataataataataataataataataataataataataataataataatagccaggcatgc
-tggcatgcacctgtaatcccagctactgaggctgaggcatgagaatcatttgaaccggga
-ggcagaggtaagagggagccaagatcgggccactgcattccatcctgggtgacagagtaa
-gactctgtctcaagaaacaaacaaacaacaaacaaacaacaacaacaaagaaaaagaaag
-aaaaaaattgcccaggggctcacagctataaatctgcagatacttattgtgacctgccat
-gtgccagacactgtgctaagagctggggacacagcaatgaacaagacagagacctgctct
-catgtggcttacatcctgctgagccaagagtaggtagatatgccaatgtcctgtcataga
-aagcaccaggcagggaaatgggcaaagacagagagaggtggaggccgggcgcggtggctc
-acgcctgtaatcccagcactttgggaggccgaggcgggcggatcacgaggtcaggagatt
-gagaccatcctggctaacacggtgaaaccccgtctctactaaaaatacaaaaaatcagcc
-gggcgtggtagcaggcgcctgtaatctcagctactcgggaggctgaggcaggagaatggc
-gtgaacccgggaggcggagcttgcagtgagccgagatcgcgccactgcactccagcctgg
-gcgacagagatagactccatctcaaaaaaaaaaaaaaaaagagaggtggagcgagagcca
-ttttagatagggtagtcaaggaagacctctctgaggaggtgacttttgtgtagagtccag
-aatgCAGCAAGTGCTGGGTGAAGCCTCAGGAAATCTGCTTTAGCATTGCTGTGGCAGATT
-CAGGGTGGAATCCAGGAGATCCCAGGACTGGTGGTGCCTAGAGCCCAGTTGGCTAGATCA
-ACTTCAGTGTGGATAAATGACTCCCCTGCCCCCGCGAACTTACCTTCCTGGAGCAGTTAA
-AAGAACGgggcacatgacctagattctctgagcttcacttttctcatctgtaaaatgggg
-attgaaaagcatagcttacaattctgagagctgagttgattaacagagatggtccatgta
-aaatgctgggctcagagctgggcTGACCAGATTCACCTAGTCCTTGGTGGCTGGAGTGGG
-CAGGTGACCTTCCTTTTGGCCGTCCAGCACCCTCCAACTCCTTGCTTCTGAGACCTCACC
-TCCCACTCATGGTATCATTGCTGGCCTTCCCAGCCCCGTCTTGGCCAGGGGGCAGTCAAG
-TGACCCAGATTAGCCTCGTGccattctgttgagggtgtggtggttgctacattgagtgtc
-cagaggtagcaaggactaaagtcctggtgtcagcatccagcgttggtgtcagcagcacga
-gctctgtcttggggacccgtggtgtcagcagtgaagtctccctcaggccagggctttggt
-ctgatttgagggcttttttcttttctggatatgaagcctgtaagccttctgaccctcctg
-gagatcctTCAGGCACGTCTGCAGCCATGGGTCCTGGATGATTTAGCAGCTCACGCCATT
-GTCTGGAAACTCCACTGGTACTATTTTTCTCATGTTCAGCTCTCTGTGCACAGACTCCAT
-CCTTCTGGCCCAGATGGCCCCTTGGGGATATGCACATACCAAGTTCTTTCCACTGTCCTC
-ACTTtgagggcaggggcctgggttgttcatttttgtgtccccagatcctagcacagagcg
-gctcagaggaaaggctcaatgcatgtccatggtgtcaacaaatCAGTGGcacaggataca
-gtttccacacatctccccatcctggttgcttccccgaaccattttccagtctgtcagtgt
-tcttctgaatatacaggatccagaactgagcacaaaactccagaaataggtgaatggagc
-tgagcagaatgaaactgtcacctcccttaccgtagataccggacttctaattacatgacc
-agacatttaataagcttgttttgTTTCCCTGGGTGGCATATATCAAGCTACTAGCAAGCG
-TTTTGTTTTCATGGTCCTCTACCCACATATTGTTGCAAAACCTCACTTTACTGCCCTTCT
-CCCTTAATTTCACGCTTATAATAGTATTGCCCCTCTCTCACTTCCcaggaatgccaagtc
-gattacagctcaagagcccaatcttgactggtccgtagcctggaacatggtgctgagata
-gatgctgtaactgagtttgggctcactgagaaagactgctgcaattgattaacgatgtct
-gccaAGCTGTGTAAAGTGAAGTAATGTCATTCCCTATCACAAGtcctaacctggggtcca
-tggaaagaatttagttggtctgtcattaacttggatagggaaagtattacatctttaatt
-tcattaacctctatctgaaacttatcattccttcaattatgaatgcaggcaacagaccac
-agtggtattagcaggacctgtgactttgtcaccaatagaaatcacagattttttaaaatg
-acattacagacgttccgcatatcttgaaatataatttacatgcactgtgacttggaaatg
-ataagttattTGCTAAGTactcatttacttactcacatttgtttagcgcctagtcaatag
-cctggtgacgtgccaggacctgggctgggtgctataggcaaaaggcagatgcgtaaggct
-cagtccttccctcaaaagagaaaagcagacagtgacaatggaaaggcttgatgctttgat
-gggggaagtacctgaggcccccaacccagcccagagggatcagggaaggcttcccagagg
-aagtggcctctcagatgagtaggaagtaaccagacccctgagtgctgagaaaaagtgttc
-agggagcagaaacagcatgagtaacgaagctaggaaagaaagagGACACAGGGCTTACAA
-AGTATTCCATGGCGGGGATGGGGAGGGGAGGAGAGAAGCGGGGAGATGGCTGGGGGGGTC
-AGGCAGGCCCCTGGAAGTCATGCTTGGCGGTACCCTGGTCGTGGGGGGGAAGGGGTGCTG
-GCGCTTGCTGCCCCATCTGTCTCAGTGGCATTGAGCTGTGACTTCAGTGGCCTGGGGAAG
-TTCAAGGTCACCTCTGGGGTGGAGGAGGTGGAGACATCTCACCAGGGCTGGCAAAGGCCA
-ACTGGGAAGCTGGGGCCGATACCTGCCCCTCACGGCAGCCACCACAAGGGGCCTTCTGCT
-CCGAAGGCCCAAGCACGCCCTGTTCCTTTATTTATGGGCCGTGTGAGCAATTTGCTGCTT
-GCTGGCCGGCTGGCTGGGTGTGCGATGCGGGGATTACTCACGCCCCAGTTGTGGTCCGGC
-CTCTGCAGGCTGCGGGGTAGTGAGTGAGGTAATTAAGTGTAAAAGATGGAGCAGGCAGGG
-GAGGGCTGAGGGCGGTGAGCAGTCACTGGTTCTTTTCAGGAGCAGGGGAGTGAGATAATG
-TAGGATAATAGCCTAGCCAAACCCTGCCCAGGCAGCCCGGCCTGTGCTGAGAGGTGCCCC
-CCAAACGGCCAAGACAATTCAGCCTTTTCAGGGAAAATGGGGGGGCTTGGGCAGGGCCTG
-GCTCCCAGGGACAGCTGTATGGAAATGACAGCTCCTCTCCTTCGTCCTGTCCTGTGTTGG
-CTCAGGGTAGGGGCAAGTGTAAGTGTCTTCAGCTGGGGATGAGGCCAGGGCAGGGGGCAG
-TAGATGGGACCAGGAAAGCTGGTGGGTGAGAGGAGGGATCCATGCGGGGCTGGGAGACTG
-ACCTGTGTATGTGGCACAGgcacagtggttcgtggcagcagactccagggcctgactcac
-ctggtggaaactgtggtgtggctttggctagctgtgtgacatcagcctagttgtggtcct
-tctctgagcctcaggactctcatctgtcaaatggggctgtcaaacaattcctacttcccg
-ggggtgtttggagaatGGTTCGTAGCGCCTGATGCACAGGGGCTACGAAATGCTTGACAT
-GGTGAAGTCCAGAATCAGAGTGCATTAGTCattcactcattcagtggataaatgtttatt
-gagtgcctaccatgttctaatggttcctgggaaagcagcagtgactagaacagagtccct
-ttcctcttggagatgacattctaagaggggagacagaccattaatcgtgaaacacataaG
-CATAAAAGGTCATAccagcaatcccacttctgaaaacttattctatagacatgtttgcat
-acatgtggaatgaatgcattcatggttatttattgcaattttgtttggcatagcaaaatc
-ttagtaatgatctaaatgcctgttacacatgggctgactgaagtatggaatattatatag
-ccattaaaaagggtgagaccatttctatTTCTgtttatttttatttactttttttagaga
-tgggatctcactatgttgaccaggctggtcttaaactcgtcactggtgaGACCATTTCTT
-ATGTACTGATATAGAAAGCTCCCTAAGATGTTTTGACAAATAAGAAAAGGAATGTGAAGG
-ATAGTTTCTGTAAAAGAGGAGACAATTTGAAAAATGTATTTCTATTAGCTTGTGTATATA
-TGAAACTAATAATAGTTGTTACCCAAGGAGAGGAGTAGGGTTGGAATGAGAGACAGGAAG
-GGGAGAGTTTCACTGTATACTTTTCTATAACTTTTATTTTTGTATGAAGTGAATGTATTA
-CTAGTTCAAAAAAGAGAAAATAAATATTCAGCTTCCTCTTTCCTCCTTTCCTTCCTCAGC
-ATTTGTTGGAGGTAGCTGTTGAGATTTGGGACTAAGCAACAAAGGCAGCTGAGTGAGGTG
-GTGGCTCAGTGTGCCTGGggattgaacaaacaggttcatatatcaaggataatgagagcc
-aggttgctcagcatcagagaagggaattacaagtatgaaaacaggaaaggctagaaagaa
-ccctgtggtgttagattggagttagaggaatcagtgtaaactcatagcttttgatatata
-tagttacataagcatgcatgcaagtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtg
-tgtgtgtgtgatgcatatgtgcatttcccagttctgtccaaaaagacagcaataatcaat
-acaccatgtagccacgaatacacctaacacctagatcttgggttttaaatactattctcc
-actgaaaggaactggggcttgggaaaatagtagatttgagggctggagcaggaaaagtgc
-cctgtgcctggtaccatggtacatgaaacatctagctgtgccatatgataggcaagtgct
-caagtaatgctgaggacatgtcaaaagaccaaggtgccaacttaaagggactcccaatgg
-ccaaatctgggacaacttgagtatcaaaataatgacagtaacagattataagccatgaaa
-tataaatagtcctgatatacagacacatacacgtattacatacacacatacatacataca
-cacatgtgcagaaagagaaagctctttcttacactagaatgcccaataataggtgtggaa
-ggaaggatgcaactagtatggtaataattgattcaaacaagaagcattactagatgctaa
-aactaaagccattgtgtgaaaatttgttgaggagtaggatatttacatagtcttaaagag
-tctttccacaagatacaatacctgcaaaaggaaggagagtgactttatagcgaagaaaca
-tggcagagactatcttagtcgagtgatcaaaggctgcatcactgttactggacaaactga
-catgaggctcctgatgggatgcacagggaagagtgaaaaatcacttctgtgatgttcctg
-ccagagatgcaaaactgaaatctaatcacgaggagccgtcacataaacccaatttgagga
-accttctacaaaacaactggcctgtaacctgggtaagtatcaaggtaatgaaaggcaaag
-aaaaactgagggaccgtcacagattagaggagactaaagagataagacaatgaaatacaa
-tgagtaattctggatggatctttttgtttattataaaggacattattattgagacaatgg
-acaatatttgactgggctctgaagattggatggtagtaatatatcaatgtcaatttcctg
-attttgatgattttattgtggttatgtaggagaatatacttgcttttaggaaatgtacac
-taaagtattccaggataacagggaatcaaattgacaatttactctcaaacaattcaaaga
-aaatctctctatatataaatctctaagagagaatgataaagcaaatatgtttaaatgtca
-atatttggggattctgggtaaacaatatatgagaattctttgtacaatgtttgcaactct
-tctgtaggtttaacattattttacaataaaGTTATTTACATGAAACTGaaaccatatgat
-gtcaagtaatgataagtgatatatagaaaaatcaagtgggcagaggaacagaaaatgagg
-gggtggtgctattctagatggtatggtccaggcaggcctctctaggggaggacctttgag
-cagagacctagtgggagggagggagtagctccatggatacttggggagagtctcaaaggc
-cgagggacccatctgagaaaaggcccagagtgggaccagcttggcctgtgtattagtgtc
-tattgctatgtaacaaatcatcaccaacttagtggcttcaaacaacagccatttagctca
-cagttctgtaagtcatcgtctggcacagagcaactgagttctttgctcaggatattacaa
-ggtagaaaccaaggtgtaggttgggcttagttcttatgtgaaggctctggggaaaaaatc
-cacttccaatttcattcttttcttttcttttttttctttttctttttttttttGTGCAGT
-TGCagagaggaaaggaggaaatttttcgatagaaaaatcttggagatcctgttgctgtca
-cccatcgggctgttggaagctggggttagtccagaagtcttcaggtaatgccagggtgtt
-gccctggccaggaactctcagttgcctctgaacttcttccagccccacatgatggctaag
-ctctccatgaaaggagaccagttggaaacaaagccaacattcccagcaccctgagggcac
-tgaaggattggctaagttctccccggcaagcctgttccctgagaaaatggaggacagagt
-ccttaaaatgaaagagctggggtctgtgcctatactcactctttcaatgaatctacgtcg
-gatcccaggcaggcccccacaatgaagtggtgttgttcaactgaggtaatacccaaggtt
-cgttgtctcatggccacagaaaactaggactcggacacaccagagtgaggttaagagcag
-aagtttaataggcaaaagaaagagaaaagctctctctgttgcagagagaggggtcctggc
-gaaaatgggttgcccccaagttcattcttgttgttcgcaatgttcagcgtcttgcggttg
-tgggactgaccgtaacagacgatttttttgttggctagaagccacctgcattccttgatg
-tgtggcccctccatcttcaagtgagcaatggtgttttgaatcctccttatgcttcatgtc
-tttgacttcctcttctgtgaccaaccgggaaaaactcactgctttaaaagggctcttagg
-attagatcaggtactgtgttagttcacttttgcattgctataaagaaatacctgaggctg
-ggtgatttataaagaaaagtggtttaattggctcatggctctgcaggctgtaccagcata
-gctctagcatctgcttctggtgaggcctcgggaagcttctaatcatggtagaaggtgaag
-ggagagcaagtggtgtcacatggtgagagccagagcaagagagagaaggggagggtgcca
-gattcttttattttttatttttgttttttgagacagagtcttgctctgttgcccaggctg
-gagtgcagtggcatgatctcggctcactgcaacctccacctctcgggttcaagtgactcc
-catgcctcagcctcctgagcagctgggactacaggtgcacgccaccatgcccagctaatt
-tttttgcatttttgttagagatggagttttgccatgttgctcaggctggtctcgaactcc
-tgaactcaggcaatctgcccaccttggcctcccaaagtgctgggaattcaggcatgagac
-atggcgcctggccccagactcttttgaacaagcagatctgtgaactaaccgggtgagaac
-tcacttattaccaaggggatggtggtaaaccattcatgaggaatccgccccggtgatcca
-atacctcccgccaggcccacctccgacactgggaatcacatttcaacgtgagatttcaga
-agacacacatccaaaccgtatcaagcatacccagagattttccgtatcttaaggccattt
-atgccaaataacataagctgatcacaagagtaaacgccaccatattcacagcgcagggta
-ttttacaggacatgtacacaggatggggaggactgggctgaaatcctggaggccatctta
-gaatctgcctatcataGTtgccggggttgagaaacaagaaagccagtgtggctggagcac
-agtgaacaagggggtgcagggaggagagacagcagagTATCACAGGTGGAGAGACACATA
-TATACCACCTAGCCTGATGGGAGGCTGAAGGCCTGAAAGTCACCTTGTGCAATTTTGGTT
-CCTGAGGAAGGGGAGGGTCATGCGAGTTCCTCCATGGATTCACTTGCACTAAAAAGCACC
-CCTGGGGTGGGACCCAGTCGATGATGGAAGTCAATGGAATGCGTGTTGAAGAGTAGCCCT
-TGGAGAACCAGTGGGCTGCTGGGCATAGGTGATAAGTTCTGCTCTGTGCATTTGGCCCAG
-TAGGCACAATGCCAAGAAGCCATGGGCTCGTCAAGGATCCATGGAGAAGTCTGAAATCTA
-AAAAAGCTGGCTGGAAAAATATTTTAAAACTTTCCAAACTTGAAAGACTTAGTGAAGTGC
-CTACCAAGTAGCATTGTGTCAATGGGTCATGAGCAACGCCCAAGTCTCCTAATAGTTACA
-TATGCGTTCTATGTGATGTGACTGCATTTTGTTTCCATTTTAACATTATTGTATTTATTT
-TTTCGTAGTATCATGTGCAATGTACAAATAAAAAGGAACAAAAGGAGATGCCCTGAAAAG
-CAAGTCTCTCTCCCACCTCTGACCCCCAGCCACGCACCCTCTCCCCACTGAGGCGTttcc
-tgtactcaaaggtattttgtgcacatgctaatgaacatgtatatatacacctgactcctc
-cccttttcacaatggtggctgttctgcctgctttttttcttttttcttggcagtacatct
-tggagatgtttcctattggctcatgtggagctgcccattcttttgtacagcagcagagca
-gtctgttatttggatgaactgtcatttattaactagACATGCCCACAACCCTGCCACCTC
-TTTTCCTAACACACTGGGCAGTCTTGGCCTCTCCCAGGCTCCCTGGGAGGGTCACTACTT
-TCACAAAGATGATGCCCACTTCTGCCcatggaatctggcttgcccagtgactacctgaca
-gggttgagtgacaccacccagaagtgcaaagAAGGCAGTAAAGAAGAAAGAAGAATTTAT
-TAGGTGCCCGAGGAAGGGCTcaatcctgccagtctaaacattgttgtacatacctcctga
-tatgtttttctagaatgtctccaggaagggattgctgggaataagtgcaaaataatgccc
-aattgttctccagagtggttgtacaactgactcccttatcaccagtgtcaaggagtcctt
-gttccacataattgatcacatttggacttgtctagctttttaagttttgccaattgagta
-gacaggaaatgagcttttaatttggatttctctaattactcagaggttgagcatcttttc
-aaatgtttgttggctattcatgttttcgcttctctatgtctgtccaaatctttagtccat
-ttttctttttgattgtttgtccttgtcttattgaattgtaggggttctttatatatttgg
-gtgctaatctttgtcagttaaattgttacggacatcttctagcttgtgacttgtctttcc
-acttttaaaaaatggtgaactttgatgaacggtatcggttgtaatgtaactaatttatta
-atatatgcctttatggtttgtcctttctgtttcttgcttcaggaatcctttccaacccaa
-agccatCCCCATGtttctatgatgcacatgtatatatattatttatttatttattttttg
-agatggagtctcgttttgtcccccaggctggagtgcagtggcgcaatctcggctcactgc
-aagctccgcctcctgggttcacgccattctcctgcctcagcctccggagtagctgggact
-acaggcgcccgctaccatgcccggctattttttttgtattttttagtagagacagggttt
-caccatgttagccaggatggtctcgatctcctgacctcatgatctgcccacctcggcctc
-ccaaagttctgggattacaggcgtgagccaccacgcctggcacatgtatatatatatttt
-aaaaagatcatatgtgcatcctgttttgtagctacttttccacttacctaacatgaagga
-acattttttccatgtttaaatagtctacaacatctttggtaaatggttgcatagttttcc
-attgtatggaatatacagtctttatttactgaatcccctgtgatgaacatttaagttgct
-ttcagctttcatatgatcaataatgctgccaagaatatcctgaagctgttggggtccaca
-ttcatgatcatttctcttagataaagtcatagaaatgaaattgcccatagaatttaaggc
-ttcggatacatttgaccaaatttgccagaGGATCCACTTTTGATTCCTTTCCAAGAAGCA
-ATATGCCATTGTGTTCAATTGCCCTTCCCAAGAGTCTGGAATCAGCAAAGTAGGGGTCCT
-GGAGATGATGTTTTGAACTGGAGCTGTTAGCAGGCATGTTCTGTTGTGTGCAGAAATAGT
-TACTGTAGCAGTTAAAGATTTTCCCTGTCCTCTTCCTTCCTACCCTCTCCTGACTCCTGA
-CAGGTAAGATGCCATTATTAGTACTATTAAGAGAAAAGAGCCAAGAAATTAGGCCTGCTT
-TGGTAATGATTCTTGGCTAATTAATTGCATTTCCAATGGCCATAAGCTCCTGCTTCAACC
-AGCACCTCTATGTGTTGAAGGCAAGAAAAGGGGTCCACTACAGCTGCTACCTCCTGGGCT
-GGGCACATAACATTCTCATAAAAATGTTTGTCCAGTCAATGAAGGATTTCGGtttttttt
-aagagacagggtctcattctgttgcccaggctggagtgcagtgtcacgatcacggctcac
-gcagtcttgacctcctgggctcaaatgatcctcccacctcagcctcaaatgatcctccca
-cctcagcctcccgagtagctcggaccacgggcacatgccaccatgcctggctgatttttg
-tattttttgtagagatggggtttcgccatgttgatgaggctggtctcgaactcctggctc
-aagcaatccacgtgcctcggctttccaaaaagattacaggcatgagctaccgtgctcCCG
-GTCAGGAATCTTTTAAAAGTCTCCTGGGTTGTCTTGGATGAGAAAAATAAAAAGAAGTCT
-CCCAGAGAACTTGAAAGCCTTAGATCAGGATTCCCTTCCTTCAGAGGGGTAAGAGGTGGG
-TGCCAAGCATTTAATTCTTAAGCATTTATTTTAGCAAATATCAACATGTATAGTAATTGA
-TACTtttatagtaattgatattaattttcatgtatggcagcacaaagtttcccattagcg
-tgaactggctttttgtttttttaaatgaggctatttaaagaaaaatattaagtaaattgg
-tggaagatagcctgcagatgggggtggggaggaggtggtgtgattccgcccaaacttcga
-gaaacactgCTTCGGTGGAAACCGCTCCGTGAGGAAGGCCTTAAGCCAGGGCTGGGTTGG
-GTCAGGAGAAAGCAGGGCCTTGGGATTCCAGGCGGAGGGCACTGGGAGGCTCTGGAGGGT
-GCAGTGAGGCTGCCACAGTCAAAGGCCGGGCGGCTGGGAGGGGCTTTCGGAGCTCTTCCT
-GGTATTTAAATCATATTTAGGGATTATAAAGTGTGATCCTTCTCATTGTGtcatttgaca
-ctcacagcaactttgtggagtttcaggcaataaggagattgccttgtcagtttacagaag
-gaaacggaggcagagagagacgcagcaatttgcccagggtctcaggtgagtaaaaggcCT
-CAGTGGTGGGTGTGGGCAGCATGGCTGGAAGAAGCGGAATTTGGTGTGGAATTTGTGGAG
-ATGTGTCAGGAGTTGCACCTCTGGGACTAGGGCACTCACAGCCCTCTCCTAATAACaata
-acaaccaccattagcatttatggagtgctcgctgcgggctggctctgtgctgagcaactc
-tggctgtctcactgcacactttacactaacgcaatgggaggggaggtgtcattatccccC
-AGAAAGTGTCAAGGGCAGGAGTTATTGATTCATGgtgtctgctcttgtagaaatttgaat
-tccagtaagggagaggggagccagaaaataaccacgggaagacatcaatgaatgagataa
-tttcacataacgataaatgccagggagaaaaaacccacagggcaatgtgatatggcctct
-ggaggtggagaaggaactgctccagatgaggccatccgtgaaggcttctctgaggaggtg
-acattagagcCAGAGCCAGTAACGTCTGGACTTGAACCTGGGCTTGCGGCATGGGAGAGT
-CCTGCATCTGACTCCAAACTTCCCCTCCTCTGTCTCCTGTGGATCACAGAATGCTTTTGC
-CAGAGACTCAATCCCTTGTTAAGAATCATGGAGTTggccgggcacggtggttcatgcctg
-taatcctagcactttgggaggctgcggcgggtggatcacttgaggtcaggagttcaaaac
-cagcctggccaacatggtgaaaccccgtctctactaaaaatacaaaaaattagcagggca
-tgatggtgcgagcctgtaatcccagctgctcaggaggctgaggcaggagaattgcttgaa
-cctgggaggtggaggttgcagtgagccgagatcccaccactgcactccagcctgggtgac
-agagctagactctgtctcaaaaaaaaaaaaaaaaaaaaaaaaTCATGGAGTCCTGGCTTA
-GGGAACGGAGTGTCCAGGAACTAGGGATGAAAGGATGGTAAGATATCCAAGCTGGAGAGA
-CCTCACCTGTGGTGCTGCCTTGTCCAACTCCAGGAGCTTCATGCACTTGCCGACAGTGGA
-GTTATGCCACGTTAGGGGTCACTCTAGATGATTCCCCTGGCCAAAGGGAAACCAAGTCCC
-AGAGACGAGATGGGTCCTGCCAAAGGCTGTAGCTTACAGCTGTGCAAGTTGTGCTGGGCT
-CCAGGGAGCCCAACTGGAGGCTAAGGGGATgccttgcatcccaccagggggctgcaccag
-gaagaaagggtacctgtttctaattcacacaaaggaatgctatgggctaggggtggccct
-gAGCCTCGTGGAGGATGGGGGCAGAGGTGAGATCCCCACATCGTTGTGCCATCCTTTTTC
-CCACCTCTCCTGCTTCCTGCTTTGTTCCTGCCAGTCCCTGGAGGGCAGGCGGGTGAGCAT
-CTTCACCATTGAGGGATGCCCCCTCCTTAATTGTGGCAAGGGGGGCCCTTTGCAGCCCAG
-TGCAGGCCTTATGGGACAGTGAAGAGGAAAAGAAGCAAGCTGGCCAGGATTCCCTGGGGT
-TTTTGTGGAGCTGACAGGCTGAGGAGTGGTTGGTTCCGGGGGCGGGGGTGGCCCAGAAGT
-GCCTTATCTCCTCTGGGCCAGTGTCAGCTCCTGTCCCCAGCCTGCAGCACAGGCTGGAGC
-TGCCAGCCTGGGGACTGCAGCAAATTTGCATTTATATTGGAGACTTCTGTTTCCAGGGCT
-TGGGGGGAGGAGGGGTGGCCACCACCATCAGCTGAGCAGAGATGCAGGAGAGGAGGGGCC
-TGCAGCCCTGTCCTGCCAGGGGCACAGGAAGTGGCCGATGGGCCCAGTCTGCCTGGCTGA
-GGGAACAGTGGCACAGAAGGTTCTCTGGGCACGCGGCCGGCCCCGACAGCCTGCCTGTCC
-ACCCTCCCAGACGCTCGCCAACATCAGCTGGGAGTTGGCTCTGCCCCCAGGCCTGGGAGA
-AAGGTCAGAGGCCGGTGCCAGCAAGGGACTAAGCAAGGCCAAAGCACTCCTGTGACAGGG
-TGCAACTGCGTGTCACCCGGTCTCAGCCCCACAAAATTGTAAATTGttttagccaagaaa
-acggaggctcagaggggcttagccattagctcaaggtgatccagctTATCATCCATGCCC
-CATGAGCCTCCCAGGAACACCCGGGATACTCACACACCCTGGATGCCATCTATACTTAGG
-GGACAAAGAGGAGTTGACACCCCTTTTCCAGCTAAGTTCTGGAGGGTCAAGGGAAGTTAT
-TGCAGGCTCGTGACACTGTTAGGGCTGGTTTTGTGACAGCTTAGGAATCATGTTTCTTTC
-TCtcttttctttcttttttttttttttttttagagacagtctcactcagctgcccaggct
-gaagtgtagtgcagtcatggctcactgcagcctcagcctcccgggcttaagagatcctcc
-cacctcagcctcctgagtagctgggaccacaggagcatgccaccatgcctggctaatttt
-ttaattttttattattagtagagactgggtctcgctctattgcccaggctggactggaac
-tcctggcctcaagggatcctctcgtcttggcctcccaaagtgctggTGTAAGTCATGGCT
-CCTGGCCTCATGTTTCGTTTTATGGTGAAATCCATAAAATGGGTTTTTTTAGGGCCAGGT
-TCAGGCCAGGTTTCCCCTTGTCTTTGGAGAATGTAGCTTCTCCCATCTGTGAGGTTCCAT
-GTGaagaaggaatggaaggaaggagagaagacaagaagggaaggaggggggacaggagga
-gggagaaatagggagtgaagTATAGAATAAATAAATAGAAGAGGGGggccgggcatggtg
-gctcatgcctgtaatcccagcacttcgggaggccaaggtgggcggttcacctgaggtcgg
-gaccagcccgaccaacatggagaaaccctgtctctactaaaagtacaaaattagccaggt
-gtggtggtgcatgcctgtaatcccagttactctggaggctgaggcaggagaatcgcttga
-actcgggaggcggaggttgctctccagcctgggcaacaagaatgaaactctgtctcaatc
-aatcaatcaatcaatcaGTAGAAGAGGGGATAgaaggaaggagtggaaggagggaaggaa
-gggagAGGGAGTAGATGAGAAGAGAAGATAGAGTCATCCTGCACCCCGCCCCCCAGGTGT
-GCTTGTTGCTGCTGGAAGTGCCCCCTCTGTGCCCTTTCCCTGGCTGTTGTATGGAATGGT
-GGTCCTCTCCCCATCCTCCTCACCCTACAGCTGAGACCTCCTGACCTCCAGTAGCAGGTG
-AGCCCTGCTCCAGGTGGGGGACCAGTGACAAGCTGGTTGGGGCTCCAGGAAGCAGAAGTT
-GGGGCCCTGTTGTGATCCCTGGGCTTTATTTCCATCCTCAGGGCTCAGCTGCCTCTGGAG
-GGGGCTCTGCCTTGCTCTTTGGGTTCTCTCCACACACTCCCTCCCCCACTCTTCCAGACG
-GAGGTCTTGGCCCCATTCCCCCAGCCTGTGGCTGTAGGCTTGCAGCTGACAAACCTCCTG
-GTCCTGGCTCTCCGTCCAGCAGAACAAGCCCTCCCTGTCTGTCACCAAACAGTCAGGACG
-GCCTGTTCCACCTGGCAGGCTGGACTATTGCCcagcttagtcttgggaagtgaggaccag
-ggctgacaacccactgcctgagttcaaatctttgctgtgcctctttctggctgtgtggcc
-ttgggcaagacccgttacctctctgagcttctggcttctcatccgtcaatgggcataatg
-ttaggatctgcctcttggattactgtatgaatgatacgagatcgttcatggaaagtgctt
-ggcttggtgcctggcacCAAGACATTTCAGCTTATATTATCCTAGCTGTATCCTTCAGTG
-TCTGTCTGGCCTAGGTGGGATGTCAGGTTCCAGGGACCTGTCCCCATGCTTCCTCCATTA
-ACCCCTTTATGACTAGTGTCACCTGATATGACTATTTCAACACACATAGGATTGAACCCT
-GGTACTATTATACCATTACTACTTCTCCTAGTTGTTGTATAAGTGCTTATGGGATCAGGC
-ACTGTTCAAGCCAttttaaaatatgactccacattcctttaaattcctctaatcaagaag
-tggggcctatgtcccctctcttgattgctcccaggaataaaatatggttagaaatgacca
-tgctggctgcgtgcggtggctcacgcctgtaatcccagcactttgggaggctgaggtggg
-cggaccacccgagggcaggagtttgagaccagcctggccaaccaacatggtgaaacccca
-tctctactaaaaatacaaaaaaattagccgggcgtggtagctgtaatcccagctactcgg
-gaggctgaggcgggagaatcacttgaacccgggaggcagaggttgcagtcagcctagatc
-gtgccactgcactctagcctgggcaacagagtaagactccttctcaaaataaataaataa
-ataaataaTAAAAAAAAtgaccatgccacttctgcttgagtctctggggacactcactct
-tggaactgttggaacccagcctgcatgctaggaggaagcccaggacccacggagaggcca
-ggtgtggatgttctggcctgcagtctccactgtgccactcctaactgccacacatgtgag
-gggaagacaattctagatgattctagtcccctgccttcaactcttttcagctgaggcccc
-agatactgtagaacagaaggaagccacccccatgtgctctgtctgaatctgtgagcataa
-gaaaatggttaacagtactacacgttggggttgttatgccacagtaaatcaccagaaTCC
-Ctgtgctgactcatttaagcttcacaacttaggaagtagctgttcttatcatctccattt
-catagatgaggaaattaagacccaaaatgctttagcaagctacctgagtccacagatctt
-ctaagaggaagagctgggattcgtgcccaTGGGTTTGAGCATTGAAGAATCAAGCAGGGC
-CCATGTCCTACAGGGCCTAGTGGGCCACATAGGTGACTGGATGTCATCTTGAGGGCCTTG
-GAGGGCTGTGGGAAGACACTGATGTGTGGAATTCACGAGGTCGGGAGAGGGCACTAAGAA
-GCTTGCTTAGGTGCAACGTGGAGGGTGGGTGAGAAGGGGCTGGAAGTGGCCCACGAGGAT
-GGACAGTGCCACCCTGCCATGGTCCACCATCCTCTCCATGTCCTGCTCCTCAAAGTTACG
-AGGGCAGCAGCAGGAGGCCTGGTCTCAGGCCCTAATGAGCTCTGCACCTATCAGAGCTTG
-GCCTAGCCGGAGATCCCAGCCAATTCCTTTGGGCTGACTTAGGCTGTGCCCTTGGACGGA
-CAGAGCTGGGCAGTCAGGGCTGGGAGCCTGACAGTGTGAACAGGAAGTTGACGGCCCAGG
-AGCATCCTCTGTTCCCTGCACATCAAGGTGGGCCACATAGCTCCAAGATCATCTGTGCCA
-ACtggatctactgggtttggagttggctgagagtggaagggagcccacaagaagagtgac
-ctaaagaggacagacactgatttctttttcttattaccaatctggaagcaggcagtcccg
-ggctggtataatggctctttgatcctcagggacccagactccttctatcttgttgttcca
-ccctcaacacttcatagtccaaggtggccgctcattctctggccatcatgtccacattcc
-agccagagggaaagaggaagaggcaaagaatgctctggtctctttaaggacccctcaccc
-ccaccgctcagaagttgtactcggtactccgtttacctcttcatggcaggaatgcagaca
-catggccacccctaactgcaagagaggctgggaagcgtggtctctgttctgccatccatt
-cacccagctaTATCGGTGGGGAGGGGGTTCTCATACTGCGGGACATGGCAAATCGCTTGG
-AATGCCAGCCACACCTGGCACCTGGAagccagagtgagtgttttgaaacttgaatcattt
-aacttcgttgcttaaaatgatcctgtagcactcactgctcccatgataaaggccaaatcc
-tcatctgacccccagggctgcctgatctcaccgtggctcacctctccagcctcatgccct
-ggttcccccagccccatcctccccaactcaccctaacATTGAAATTAAACCATGCCCACT
-CCATCCTCACCTTGGGTCTCCCTTTGTGCTCTGATATTTGGGTTCTCTTCATGCCACAGC
-TCCACCCAATGTGTGCTCTGCTTCCTTAGCTGTAAAAGGAGCTCCCCATAGTACCCACTG
-GGCACATAATAGGGTCACTTGCTTGGGTACAACGTGGCGGGTGGGTGAGAAGGGGATGGA
-AGTGGTCCACAAATAATGATTTGGGAGAACACAAATAATCAGACATAAAGAGCCACAGAG
-GCACTTACTGACTCTAAGGACTGTGGTTATAAAGCCCCTGCAATGTGCCAGGTTGGTACT
-ATGGGGAGCTCCTTTTATAGATAAGGAAACAGTGCATGCTGGGCGGAGCTGTGGTGTGAG
-GTCCTGCTGCACTGCCTTGCTGATGAGAAAAAACACTTATGGGCAGAGCGCTTTACACTG
-AGCAACTCTGTGCCTGCCTTTGTCTCAGGCAGTCCTCTAGCCATTGTGCCCCCCCCtttt
-tttttctgagatggagttttgctcttattgcccaggctggagtgcaatcgtgcaatcttg
-gctcaccgcactctccacctcccaggttcaagtgattctcctgcctcagcctcccaagta
-gctgggattacaggcatgcaccatgacacctggctaattttgggtttttattagagacgg
-agtttctccatgttggtcaggctggtctcgaactcctgacctcaggtgatccacccactt
-cggcttcccaaagtgctgggattacaggtatgagccaccacacctggccCactgtgcccc
-ttttgcacatgaggaaatgggagagggactgtgattctgtaaggtcatatagccaggtag
-tagccatgccttgactggaacccagctctgcctgccccttccctgctggcagttgcatca
-cctgccttctctgGGGAGTGAATGAGGACAAGCCAcacttgaccttccatggtcctgtag
-cagagattttaaagtccagcttttagagaggaacgtgaaagcccagagaggaaggaactt
-gcccttggtcctatactccatcaagcacaatgctgggaagggactcaggtctcctgactc
-ccagtccagagctcttgcacactttgctccttcatgcaacaaatatttattgagcatcta
-ctgtgtaccagcacagtgctagcccttgagaacacagcagcaaacacaacagacacaaaa
-ccctggccctgtggagtggacattccagggctgggtggaggagTGGGAGACCAATACGGA
-CCAAGTAAGTCAGCTGCAGCACTGTCTTTCCTCTTATTTATTTCCGGAAACAAATAATTA
-TGGAGAACTTTATTGCTataagacagacatggtcctgactctcctacagtgagaatatag
-tgttggagacaggcactcaatgagagacacataaataagcaaagttcagattgtgatcat
-agctgagaagaaaacaaggttgaagtgctagagagtaatggggatgcggtactggtagtt
-aacttcagatggggtggccaggaaaagcctctccaggaagtgactcttgagctgagaccc
-aaagcatgcaatggggcccaacagtgttccaggtggagggaacagcaagtgccagggtgc
-agaagtaggacagagcttggtgggagaaaggaacagagagaaggccaaggtggctggagc
-agggcgagagggggaggttggcaagagggagggggctggagaAAGTCCAGAGTGTCGTGG
-ATAGACACTGAATAAAGAGAAGGGATGACTAGCCCCCTACAGTTCACCCCTGGGTGGGGG
-TTGGGTAGTCGTCTTTGCATCTGATAATTTCCCAGCTAGACCCCCAAGGGGTGGGGGCCA
-AACACCTGCTGGCCTGGCACTGCCTGTCTCTGCAGAGATAAAGTTCCCTGCCCCCCGTTC
-ACCAGGACCCCGCTCTGTGGTGCCTCCACCTGCACAGTCAGGCAGGGCATTGTGTGTTCC
-GGCCGGCACACCTGGCATTCACCAGCCTGCTGGTTGCCTGATTTAGGGGCTCATCCTGCC
-TGGCTCAGGGGTCTGTTCCCTGGAGTCTACCAGCTGGGACTAGGCTGGCTGAGGAGGAAG
-ACACAGGCGCTGGTGGTGGCCACAAAGAAGGCACCCTTTACCGTTGCACGCCCATTGGAC
-CATGTTTGAAACCCCAGGCCTCCCTTTTCCAGCCATCCTTCCCTGGGTGGCAGAGTCTGG
-GCTTGGGCAGAAAGGTTCAAGGGGCAGTTTCACTgctgtgcttagaaattttctctccct
-ctctgggcctgtttcctcatctgtgcaacggaagggttgacctggataaactcATGGTGT
-Agactctagagccagactgcctgggtttgaacctttaccacgtagtgaccatatgaattt
-agctaagttactcaacctttcgttctcagtttacctacatgtaaaatggaggtacaataa
-taacacctatttcaagggctgcgggaggattaagtgaattatatatgtctggtgcttcaa
-acagtgcctgctctatggtaagtgctatatattttaactctgatcattattATTAACGTC
-TTTGGAAAACATTGCACTGGAAAGACTCAGTGGAGAAATCTGAGTTCATTTGTTTGCAAA
-CTTTTTGGTCTTTGTTTTTAACAGAGAAGCTCTGCATTGGTCAGGAGAAATTTTACTCAG
-AGCCCCAGCTGTTAGCAGGGGATTGAAGGGGGGCGCCTGCCCCACCTGCTTCCCCGTCTC
-TGTGTCTGCAGCCCCCAAGAGGCCTActggagcataacttgaaaatccctgctcagttta
-tctccttcagctcacagtcagggaaactgagactcagagaggagcagggatctgcccagt
-gagtggcccagcctagactagaacccagatctcctATTTTTCTCAATACAAGACAAGGGG
-CAGGGGCTAAGAGAGAAGCTAAGACCAGAAGCCTCTTAGGGGACTGGGTGCATTGTGTCG
-TCAAGTCATTAGCATGCAAATGATATGCAAATGAATGCAAAACAGCATGTTTTATGCTAA
-TTTGCAGAGTCGAGAGCGACGACATTTTTGGTAATAGGGCGGCAGTCCTGGTCCCTGGGC
-ATTGCCGAACACGCGTCCTTTTTTTCTTTTCTTCTTTCATTATTATGATCGGGCCCATAA
-ATCTTGGTTTGGCTGTGACTCCGCCCCTTCTTGCTTGAAAGCCTGGCTCCTATCATTCTC
-AAGGGCTCCCTTGCCAGTCCTCTGGTCCGGCCTGGGCCCAGGGACAGGCCTGAGCAGTGG
-GTCAGAGAACCAGGACTCAGGAGCCACCAGTCAGAGCTAGAGGGTGACCCCAGCTCTGGC
-CTGGAAGCCACTTCTGAAGGAGGGGACCGTGGCACTTCCTCTGAGCTCCCACAGCCACTG
-TGGCTTCTGTGCCATTGTCTGTTTGGGGCTGGCTTGCTCCTTTTCTTGTCAGGGCGCCCA
-GTACCTGGAACACAGGTTCAGGATGTGTTTGGTGTTTGAAGACTGAATCCATATATGGAG
-AGCTGGTGgtgtaccctagtgatgagcctgcagtctctgaaaacatgcagcttgagttaa
-aaccctggcaccactactttctGAGAAAATAGTAGTATGTACTCACAGCTAACCttttgt
-ttttgttttgttttgagacagggtctcattctgtggctcaggcatgagtgtagtggcatg
-attgcagctcactgcagcctcagccttctgggctcaatccatcctcccacctcagcctcc
-tgagtagctggcactacaggtgcacactgctaccatgcccagctaatttttttttttttt
-tttttttgtagagatggggtcttgccatgttgtccaggcaggtctcgaactcctgggctc
-aagccatccttctgcctcggcctaccaaagtgcagggattacaggtaagagccatcacac
-caggccCATAGCTAattgagcacctaccatgttccagggctctgctttgtaattgttgtg
-aacgctgtcactgataagagtatcctagaaggtgagtatcgttatcattgctctcatttt
-acagagagggttaaatgatttgcctgaggtcacacTCCCCAGGGTAATGGTAAAGGGGTA
-TTTATATTTACTAAGGATGAGTGCTTCATCAGGCAGGGGCCTTTAAGGCACTCAGCAAAG
-CTTCTGTCACAGGGTACCAGGGTCTCCACCTGTGCTATCAAGCCACTCTTTtgacaatgt
-taaactttacctgagccctgtgctcctgaaaaacagcgatggtccagaaatccccccaac
-tttttgttttctgaagtctccctaccttttctgttcagggaaatggcttagcaaaacgag
-ccacccttccccatatgactcagataagacgtagtcccctctttctagtgtatcctgtaa
-gactggaggatgactcccttgctggcctgtgatctttccccttttgctggaacctgctga
-caaggccaaggccaaggaccctcccacttcccattctttgtctcatggttgattagctga
-gatgagaactgtgtgtcctctctgaaactagctagacacagagatgaacatttcctcttc
-aatggactgatggagatatcccctatttgtaagacaatccccactttaaatccctcctgc
-tgtaacctgtctcctcacccctacaaaagtcaaaggcaaatccatcctgtccagacactc
-tgattttgggatctgggatgctctccctgttgcaatagcatgaataataccatcaacccc
-aattcttccgtgtattttgtctttGACCCTTTCCACCGTGCTGTTTTCCACCTAAggctc
-tgagctaggtaagagccctgtgaccttggagtacttctcgggcttctctgtaccttaggt
-ttaaaacggatgcgcacaggcgttatgtcctcaggttgtgagataaaaggagacgacgcc
-agggaaacgctcggtcgcttggcactgtgcccagcagcgtgagtgctccagaaatgtcaa
-ccattgtGAGTCCAGGAGAGGAGAGTGGCGCTCAGAGAGGGAACGGGACCTGCCGGGAGA
-CTCACAGCGGGAGGAAGGGGGAGTAGGGCGCACGTCTGGTGACCTCCGCCCCCAGCTGTG
-GGAGTGTGCCCTGTGACCCCCTCATCCTGCCTTTGGATCACGAGCTGGGGTCGGGGGAGG
-GGATGGTGGGGGGGACACTGCTCGGTCCTCCACTCCGTGTGCCCTGTGACCCCCTCATCC
-TGCCTTTGGATCACGAGCTGGGGTCGGGGGAGGGGATGGTGGGGGGGACACTGCTCGGTC
-CTCCGCTCCCCTCCGCCCGCCTTTGATTGTGGTGAGCAGCGAGTCGCGGAGCAAATTAAC
-TTTTCGCACACTTCATTATGCGCCGTCCCGCGTcccccggggccgaggcccgcgcccccg
-ccccgcgccgACAACTTGATTGGGCAATTAATCTTCGCGCCCCCCACACCCCCTCCCGGC
-CCCGGGCCTTTGTGCGCCCGAGCGTGGGCCGTgggcgccccccgggccgcccggTCTGCT
-GGCGCAGATAAGGCGCCCCTCGCCGCGCGGCCCCGCCTTTGTCAGGGCGCCCGCAGGCCC
-GGCCGCCGCGCTGCCGTCTCGCACCCCATCCGCGCGCCCCCGCCCCTTGGCTCGGTCCAT
-CTGTTTGAGCTTCACAATCCTCCAGCGGCCGGGGGCTGGGGGCGGGGTCTCGCTCTTGGG
-CAGGCAGCCAGCACCCCCTCCCCCCGGCCCCCCCACCCAGCCCCCAGACACGCGCGCGCA
-CGCCCACTCGCACGCGGGGCCGCCCTGTCAAGCAGTGCGGTATTAATTAAGAAGGTGGGG
-GGGAAGCACAGCAGCAGTTTGAAGAATTGTGGGGCGGAGGGTTCCCAGCGGTGTCCAGAA
-AAGAGGGGGACCCTGCCACCCATCTCGTACCGCAGGTGCTTAACGCCTGGTTATTGGCTT
-GGGGATCTACAGGCTCCCATGGCTGGGGGTGGGGGTTAGGGGAGGTGGGAGGTGGGAGGG
-AGAGGCCTGGGAATTTGCCTGACAGTGTCTCTTTGTGCATTTTTCTGGGGTTTTGCCAGC
-AGTTGACCCAGCCTCAGAAAGGTAGCCTGTGATTCAGGTAGTGTTGAAAACCAGAGGCCC
-AAAGGCAGGATAAATCTGGGCCTATTTTAGAGGCCAATAGCGTGGTGGTTCAGAAAGGGG
-TTCCAACAGTTCTCCCTACTCGCCGTTGAGGATTTGCGTCAGGTAACCACCCTGCGCCCG
-GGGCGGTGGAGGTGATGGGCTGAGACCGTGTTGGCGCAGTGCTGGGTACACGGTGAGTGC
-TCACAAGTGCTGGTTCTTGCTGTTTTCTGTGATTTTCCTTGGAGGGGCACAGGGAAAACC
-AAAAATGGCTGGTGCTGGAAAGAGGCCCTTGAGTTTCATCTCACAGCTGGCGGTAGGGTG
-AAGCTTGGCAAAAAACCTGTGGTCTGTGCTGAGCTTGGGGCTGGgtgtgtgtgtgtgtgt
-gtgtgtgtCTATGGTCTTTGAGAAGTGTCTTCATCAGCATATGACTTGTGTGAGTTTTTG
-GGTAGAGAAGGCACAGCCTTCACTAGTTTCTACAAGAAGGGTGTGATCCAGTGTGCGAAG
-AATCCCTGTGTGCAGGGCTGGGAAATCAGCTTCATCTCTTCCATCCAAGAACAGCATGGC
-TGGCACGCTTATTGTGTGCGGAGTCCACGGTAGCGTCCCTAGGTGCTAGGGACAACCGTG
-AGCAGAGCAGAGTTCTTGGCTGCCTTCACAGACTCGCAGTCTCCTTCGGAAGATGAATGA
-GAAATAAAATAAACATGTAAGACATGAGGTAGGTCACTAGGTGACATGAGCTTTAGATAA
-AAACAAAGCAGGGCACCTGATTAGGAGGGTGGGCCCTACTTGCCAGACCCCTACCCTCAT
-CCCCAATACAGTGTGTATCATTGCCTGGGCAGGAAAGGGCCACACTCCTGGGTCTAGGGA
-ACTAGGTCCCTAAGTAGCCTCATGTCCCCACCCACTAGGACCCAGCCTCCAGCCAGTTCT
-GTTGCATGGGGCAGGGTCCCTGGGAAGATGGGCAGGCCTCAGACTGCTGCAACCTCTGCC
-CCTAGCCCTGAGGTGGTGGCAGTAGTGTTTCCCTCTGATAATGACATACTCCAGTCTTGC
-ATGACCACGATGCCTCATGAGCCCACAGTCCAGAAGGGGCCTGGTGAGCAGGAGCTGAAT
-TAAAATGGAAAATACGGCCTCCCTTCCCCCCTTCCTGTTCCTCCCCACTTACTCCCTTCA
-TTCCTGCTGCTCCTGAAGCCATGGGTGAATAGTTTCTCAGTCTCTTTGCCTTGCTGAGCT
-GGGTTAGTTGGGTTAGCAGGATGGACATCTCCTTATGGATACTAGAGTTAGGAGACACCC
-AGAACCAGCAGGTGGGATTTTAGAAAGTGCTGTTTGGCTCTGACCAACCCCTACTCCCAC
-CCCATGCATAGCAGGGTTAGTTTCCTCATCAACTCTGGTCTCTGATTCTGATGTTCTGCC
-CCTAAGCATCCTACATTCTAACATTGTATTCTTCTGACTTTTTAGAATTTTCCCATCCTA
-TGCATCTTACACGAATATGGTGAAGTTCTGATTTCCGCCCTTATGTTCTAGATTGAGTCT
-TCAGTATTAATTTTGTTGGGGTCTACCCATTCAAATAACAATAGAGAAAGACTATGTGCA
-GAGTCACATAATACTAGTCATGATAGTAGCAATTAACATCCTTTTGACCTTGGTTTTATT
-TAACAGTTTTTTTTTTTGAGAATTTTCTAAGCGCCAGACACCATTCTAGACATTATACaa
-ataaatagataaaaatgaataaataaataaatGTTATTTTAGAAGGTGCAATTGAAATTG
-AGAGTCAAGGCAGGACTCACTAAGAAAGTGACAATattttctttctgctttcagttatgg
-agatttgaaatctcagttgataaggtggatttatttctccttgcaggtcattcacttttt
-ccttcatgtattttgaatctctgctattgggggcataaatatttagaattgttatatgct
-catgattaactgaccttttttttttttttttagatggagagtcttgctctgtcgcccagg
-ctggagtgcagtggcgcaatctcgactcactgcaacctccgcctcctgggctcaagagat
-tctctggcctcagcctcctgagtagctgggattacgggtgtgcaccaccacgcccagtta
-atatttgtatttttagtagagatggggtttcaccatgttggtcaggctggtctcaaactc
-ctgaccttgtgatccacctgccttggcttcccaaagtgctgggattacaggcgtgagcca
-ccgcacccagccttgacctttttaatcattataaaatgaccttatctttcctggtaatat
-tctttgctctgaaacaaacattgtctgatatgaaactagctactcctccagtgttatttt
-gattactgttactttccatctttgtacttttaacttgtgtgtttacacttaaggtgtgcc
-gttttgaaggttgggtcttattttttttttttaaaaaaaacaatatttgggtcttatttt
-tttaaaaaaatccaatctaacaatctctgctttttaattgagggtatttagaccatttac
-atttgatgtgatcattgacgtggttagatttaagtctatcatcttgctatttgttttatt
-tttgtcccatctgttctttgcttcctttttcttctttttctgtcttcttttgtataagct
-cagttttttttactatttcattttaactcctccttttttattatatcgttttaccttctc
-tgttggtttattaactgtaatgttttgtttgttatcttagtagttacattaggccttata
-agcctgggtacggtggctcacacctgtaatcccagcactttgggaggctgaggtgggcgg
-atcacctgaggtcaggagtttgagaccagcttgccaatatagtgaacccctgtctctact
-aaaaatacaaaaattagccaggcatggtggtgcatgcttacagtcccagctactcgggag
-gctgaggcaggagaattgcttgaacctgggaggcagaggttgcagtgagctgagatagca
-ctactacactccagcctgggtgacagagcaagactcaaaaagaaaatcatgtaatagtat
-actttcatttccttcctggccttcttgctgttgttgtcatacatacatatgtgtgacaga
-ctccacaaaatgttattatttttgtttaaatgctaagttatctttttttaaattaaataa
-tcagaaaagattttatatatttaactcatgtagttaacacttctggtgacctccattccc
-ttatgtagatccagatttccatctggtatcattttccttctgcctgaaggatttccttta
-tcacttcttgcagtgcagatctgttggtgacaaatgcattcagcttttgtatgtctgaaa
-tcatctttatttcatcttcatttttaaaagatattttaactgggtatagaattctagatc
-ggcaggttttttctttcattagcttaaaagatgttgttgcttcactattttcttccttaa
-attgtgtccaacaagaaatctgccattatccttatctttgtttctctatactttacaagg
-cttttctttctctgactgtttttaatatttatctgtttgtcactggttttgagcaattcg
-ttcatggtgggtaatttccttcctgtttcttgtgcttgaggttcgttaagcttcttggat
-ctgtgagtttatagtttatatcagatatgaaatattctcagccattaattttctatttcc
-tctcctttggggacttcaaagacacatatattaggcttcttgaagttgttccatagctcc
-taatactcttggttttttggattctttctttttctctgagtcgtcgattttgggtagttt
-ctattgctacatcttaaaattctctaatcttttcttctgtcacatcagcatatttttcat
-ttcagacatgtagttatcatttctagaagttcagtttgggtcattttatatcttccaagt
-ctctccttaacctttgaacatgcagaccatgaaatacaatttgaatacttattttaatgc
-tcttatctcctacttctgtatcagttctgggtcagtttcaattgattgattattattctt
-gtatgggccatgttttcttgcttatttacgtgcatggtaaactttggatgccaggcattg
-tgaacattacccttgttgggtgctgtacacttttatatttctataaatctccttcagttt
-tgctctaagatgcaattaagttacttggaaacagttttatccttcctagtcttgctttta
-taatttgttgagtgggtccagagcagtgctatctgttgagggctaattatataccactgt
-tgagaaaagaccttcctgagcactctacccagtaccccagaaattatgagggttttttct
-gtttattaatatttctggttttgtgtgagtgctgagcactgttctctaatcttatcagat
-gattttcacccctacttcagtgtagttttatcatacaaaagcaccaaccagtactcagtc
-taatactcaagggggactttcttcatatctctggaatagtctctctgtgcaactctttcc
-tcccaatactgtgtcctgcaaactctgccctctttgtccttcctggactctcaactctat
-ttccttaactcaggaagcctcctgggtgctgcctgggttcctcctccctgcactaggttc
-tgaaaactctctccaagcggcaaactgaggccatgatagggttcatcttatttcccactt
-ctcagggatcatgatcctttattgcctgttgcctagagtcttaaaaattacagtttcatg
-tattttgcctggtttggtttgtttgtttgattgtttcaagcaggagagtaaattcagttt
-ctgatactccatcttgggtggaagcagaTAtgagaaggtgacatttgaacacaaacttga
-aggagttgatggagtgaaccaagaggatatgggagtggggagaggaaggagattctaggc
-agtgtgaacagcaagtacaatggtctcctgcgtgtatagctgagagtgcgggtagtgtgt
-ttgaggaaggaagggagcacgtatggctggagcagagagttatgtggggaaagtggggag
-agggagggatgaggtgtcagcttgtgtaggaccttgcaggccatggagaggattttggct
-tttacaccaaatgaaatgggagccatgggaggattttgagcagagggaggacatctttta
-caggatctctgaatcgattggattaactgaaagggataagagggcaagagagaaagccag
-agacttgctgggaaccagtgcactaagccaggtgaatgctagtgactcagacACATGAAA
-GGACACACTACCAagggggtgaataactaggagcggggatgaaggaggcttctggggtgc
-tgtcggtgtcttgtatcttgatctgagggaggttacatcatctgctcactgtgtgaagat
-tcattgagctggatgtacacgtctaaattgtgTTCACAATTGAATTGAATACATGAATAT
-ATTACTATATAAATATACTATATACATATAAAACTTAGAAAACAAAGTAgggagatgaag
-gtggcttggactagactgttatcagtggaggtgggaagaactgtatgcattctagatctc
-ttttatatgtagatccaataagatttgcaaacagatctaatgttagatgtgaagacagag
-aatagtccaggataatgtcaagttctctggctgagctacagcaaagactgaggacctgct
-gtgtaccagagcttgggctaagctctattaacttctttaatcttcatgacaattctagga
-agtaagtCTGGCAAGAGCTGCTTctgaggtttttgtggggctactgggagcctttccacc
-agaagtgtagtttgtgtgatggattccagaggtagtggtggccacctttgcctccatgag
-gttacaggctgcctgagagtgaggcctacaagaaagaaatcaaagccatgatagagagag
-agacaggatcctcacagtaacatgtcagcacctggattcagccataacagaagccagtgc
-cctgggcttctcagttatataaattaataattacttttttttttatttctttcacttcta
-actgaagagtccagactgatacaACTTCTTCATATGTGTCCCCTGTCTGCACCATCCAAT
-GGACCATCAACAGCAGCTACATCCTCTCCTTACCGTTGCTTGCTTGCtttttttgagaca
-aggtctctttctgttgatcagactggagtgcagtggcataatcacagctcactgcagcct
-tgacctcttgggctcaagcagtccttctgcctcagcctcctaagtagctgggtctatagg
-tgcttgccatcatgcccagctatttttttttttttcatagagacagggtctcactatgct
-gtctaggctggtcttgaactcctggactcaagaaatcttcctgccttggcctcccaaagt
-agtgggattacaggcgtgagccaccgtgtttggccGTCCTTACCATTTCTAATGCCTGCT
-CTGCACTTTCTCTCTCTGGACCTTTGCTCCTACAGGTCCTCCTTTCCAGAATGCCTTTCC
-TCCCTTACCTTCTGCCCTCACATCAAAACCAGCCCCCTACTCAAAGCCATCCTAACTCCA
-CCAGCTGAAGGATGGAGCTGGCAGAGTGCTTAGATATCAATCCATTTTACAGATGGGAAT
-ACCAAGGTCACTGTGAGACAGGGCAGATTTGTGGTCAGGACTCCCGCGTTCTGACTCTCT
-GAGACTCTTTCCATGATCCTCCAGGACAGCCTTTTCTGTGCCCTCCCTTGCGTGGGGTTG
-AACAGTACTTTTCACAACAATTTACActctcccataccccaacccttgcacgtgctgttt
-cctcagtctgggatgccctattccattctgtccttccggaaagggtgccacttgaacttg
-gagattcaactcaaggatcagacttccagaagccttctctttttcccagggtggctctgt
-gtcctgcctggtactcccACAGCTGCCTCTGGTACCTCCATGAACCCATTTATCCATTTG
-TTTTTTAGGTGTCTGTTTCTTGTTTGCCTCACCTGTTAGGTAGGGGAACTGAGGCAGACC
-TCCTGGCCAAAGAAGGCTCCCAACTGATGTTTGTGAATCAACATAGAGTGAGAAAGAGCC
-CCGTGGAGTGGGGCGGGGGgtggagagccagcgctgggcgtggaggcaggacgcctgggc
-tccagtccagccaccaccactctagtgtgtggcctcatgcaagtcatgtcctctccttga
-gcctcaggcttttttggcagtaaaaagggcagaacatcatagtagttaatacctcaggca
-gcctggatttgaatcttggctgtgtgactttaggcagtttactccagctctctgtgcctg
-tttcctcatttgcaaaatgggggcaataaacatatctgcatcatagggtatttgtgagca
-ttaaatgagttaatgtttacaaagctttcaaaccatgcttgcttggcacatcataTAAGC
-ATCCCAGAGTGAGAACCATTAAACAAAAGAAACCCTTCCCTTCCTGAGAGGAGAGGAGAG
-CTTGACAAACTCTAAAGTGGCGTGTGAGTGAACTATGGTCACTctcagggggtaagctgc
-ctggaaaaggctgactctgacactgactagtgtgtgtctttggagaaatcatgtcacctc
-tctgggactcagcttccccatctatcaaatggaggagttggtctagcgcagttggagtta
-aagtgctttgtctctttgagttttatgtccatgtcagtagagtgggctgagagctgcatg
-tctgtcatgcgctcctggtgagaatgaaatacgatgatgggccggacgcggtggctcatg
-cctgtaatcccagcactttgggaggctgaggcgggtggatcacttgaggtcaggagttcg
-tgaccagcctggccaacatggtgaaaccctgtctctactaaaaatacaaaaattagccgg
-gtgtggtggcgggcgcctgtaatcccagctacttgggaggctgaggcaggagaatcgctt
-gaacccgggaggtggaggttgcagtggaaccaggattgagccactgcactccagcctggg
-caaaaaagtgagactctgtctcaaaacaaataaataaaataaaaaatataataataaata
-aataaatacaatgatgtctggagcacttgccagtcatgcctgccacatagcaagtaatcT
-GTCATAACTGTCACTGTTATTCTGGCCCTGACATTCCAGGGTTCCTTGAGGTGGGGCAGG
-ATGAGGGATGGGCTGGGCATCATGAAGGAAGGTGCTGATGTATCACCTACTGACAGTTTA
-GAAAAGGGAAGGCAGCCATGTGACCCACAGGCAGTGTCCCCCTGCCTGAGCCTTATTTGC
-AGGGCTGTGGCATCGGTGAGCAGGACAGGGACCACCACGCCCACTAGAGAAAGAAGCACG
-TGCTGCTTTTGTGAGTTCACAAAGGTCTTGGTTTTCCAGGGCCAACAGTGTCCCCGCCAC
-ACGTGACCACCTCAGAACCATCACCTGCCACCTGCCAGGGCCTGGGAGTTGGAATCTGAG
-Gtggaaggagagagcaggggccaactcctggctgctcccctctcttggtatgtgaccctg
-ggcaagcctctgcacctctgtcccctttgtcctctcttgtcacataatgaggttttgagt
-gtcttagatagggaggatgtcTCCCTATCTAAGGATAGGATAGGATagaaatggccaggc
-cctggtgcctctgctagctcagtctggctgggacgacctgggaagaacatggcctcagtt
-ccaaagccaaggcggctcctgggggagctgcagctggaggctgtcagcttgctgccctcc
-ttgctgctgaaggacaagctttttcttgaagataggatggataggatgtctcctatccat
-caGGAGATGCGATTATTGGCCTAGACTGGGCAGGGTCTCCACCTGGGCGACGGGTTGGGA
-GGCGGAAGTGAAGCTGGTGGCATGAACCATTCTCAGTGACCTTTCACCAGGGTGAGTGGG
-AAGTAGTTGGGAGCATCGAGGCCTCACTCTCCATCCTGAAGATGGAGCACAGACTGGCTG
-GCTGAGGCCGGGAGCTCATCACGGGATGGAGACAGATTGGCAGACAAAGAGGAGGCGGGC
-GGTTGGGGCTGGGTGCCCCTGGGGAGGAAGGCGGGGAGAGAGCGTAGGAGCAGGAGGAAA
-GAAGGCTGGGCTTATGTGCAGCCTCACAGACTGGGCCTGCAGAGTCTCCAGCTGGAGGTT
-GGGACTGGACCTTCCTCCTGAATGGGCAGGGAGGGAGGCTTGTTGGCCTAGCCCTCGGGG
-TTCTTGAAATAAATGAGGGAGGGCCTTGGGGGGTGGTAAATTGCTGAGGCTGTGATAAAC
-ATTCTCCCCTTCCCACAAAacacacacaggcacgtgtgcgtgcatacacatacacacaca
-cacCCTGGCCACACTGCTGTGCATATCTTACTGATTGTTGTCCTCTGTGAcagcagttct
-ccaagttgagtgcattggaaggatcagttaaaatgcagatttccaggcatttccatctct
-aaatgtagggtgtggcctgagaatgtgtatgtcttacaggatcctggttgatgctgatgc
-tgggggttctgggacacactttgagaaccactgCTCCATTGAGCAGCCtttcagtttggg
-tgcccctcggtgctggtgctgggagagagttaggagggcaagggggttagtgagggctgc
-tacctgtgaaacacaaagcaggagggaatggaattggccaggagagcctcagaccacagc
-ccgggcctgcagagtcaccctctaggggtctctggagtaaagattatccacagagaagcc
-ccacatggggcagaaatggccaggccctggtgcctctgctagctcagtctggctgggacg
-acctgggaagaacatggcctcagttccaaagccaaggcggctcctggaggagctgcagct
-ggaggctgtcaccttgctgccctccttgctgctgaaggacaagctttttcttgaagagag
-aCTGTGTCCCATCCACAACTGCCCCAGgcatctaccacatgccaggctctgtgcagagtg
-tttacctggatgaatgcagtttcagatcagagcaacctggccaagcaaatataatcgtcc
-ccatctaatagatggggaaaatgagggattaagtcatctgcccaGTGGTGGAGTCAAGAT
-TTATCCCCTCTTGTGCCTTAGcactcatccctgtcagcttccctgggtggtgaagaacat
-tagctccttttacacctgaggaatctgaggtgtggagaggtcagtgacttgcggtagagg
-tgggtagaggatccgggattccaaccctgctcatgccCCTCTTTTTAAATTTCAAGATGC
-TGTCCCTTGAGTACTTCTAGGGGGATGTAATGGCAGAAACTTGGGGCTGGAAGAAGCctc
-cctggcatttgacaggtgggtacactgaggcccagggaggcaaTCAGCCGTGCCTCAGTG
-CCTCTCTCTGCCCTGAAGGGGCTCCCTGTTGTGTGTGGGGTATAACCCCCCCGTAATTCA
-TGCATTCAGCACACACTGGTGGGCACCCATTGTGGGTCAGTCCCCCAAGCCAGAGTACTG
-TTGGTGAGTGGGAAGGCAGACGTGGGTGCAGAGGGTCTGTGCAGTGATTGGGGATGCACT
-GGGGATTGGAGGGGGCAGTTGACATGTGTGGGGTGCATGCAGGGAGGCTTCCTGGAGGAG
-ATAGTCTGAGAGAGGAGGAGGTGAGAAGGGTACTCAAGGATGAGAAAAGAACAGAAACAA
-AGGCTTGGAGGTGGGGGAAGTGATATTGCCTTTAGGAAATTGATAGAAAATCTGTAGCTG
-AGATAGTGTGGGGAAGGTATGGCCAGAAATGAGGTGGAAAGTGGAAGCTTGGCCTGGGGA
-AGTGGTGGAAAGCTCTGGACTTGAACCATGACCCTGGTTCTGTTCAAGGCAGGGCTACTC
-TCTGCAGGGCTCTGAATTCTCCAGATTTCCCTCTTACCTTTCCGAACTTCCTGCGGTGGC
-CAACCCCTAAAATAGCCCCCAGTAATCTTTGAGTCCTAAtaaccagtaggattttgtgga
-aatgacagagtgtgacttccaaggctggatcatagagtgtgttgcagcttctgccttggt
-ctctgggtttgatccccccggagaagccagctgccgggctgtgaagtcactcaagcagcc
-tgcagaaaggccacatggagagaaactgaggtcctgcctgcagccagcatggacttgcta
-gtcatatgactgagccaccttggaagtggatcctccagccccaggcaagccttcagatga
-cagcagcccagaatcacctagccaggcctgttctatattcctgacccagagaaactgaga
-cacactaaatgatcattgtgttgtacgtcactaagttttggggtcatttgccgtgcagca
-tcagataaTGAGGGCTTCTCTGTGCCCTTTCTTGGCTTCTTCTGTTGCTTCAGCTGCCAT
-CTGATGAAAGTCTGATGAAAACCAAAGGCCCTCCTCCAGAAAAGTTCAGGTACACCCAGA
-AAGAAATGGGGGTGCAATTTCAAAGGGATCACAGGCCATCTAAAACTAAACCTCAGACCT
-TCAGATCCCGGCCCCCAGTGGACATGGAACCTGAGTGAGGAATGAACAGTGTCTCAGTTG
-CTGAGCTGTGGGACATGGTGGCTGCTGCGGGGTCTTCAGCTTGGTCATGGCAGGGTGCCC
-ATGGCCTACATTCCTTTCTCCTCCTCTTCTCTGTGTCCTTGGCAGGCTGCCCCTGCAGAG
-GAGGACCGTGGGTGCCCAGACTGAGTAGGTAAGTTTAGCTCTAAGAGAACAGGTTGAGAG
-AGCCCATCGGTTGTGTACAGGCAACTTCTCAGCCAAGCTCTGCCAGTTGCTGGTGTTCAT
-ACTTGGCTGATGTCTCCACTTCAATACAGAGCCTGCAGGGGATGCAGGCTGTGAATGCAG
-TCCCTGGAACCAGACTGTGGGCTCagccatgagacctgggggatgtacttcaccttcctg
-acttgggcttttcaacttggaattggaggccagaagtccaccctgaagcgtggctgtggg
-gTGGAAACAGGCCCTCCAGCAGGGCAACAGCAGGGGCTCCTTGCCTGGCAGCCCCTCCGG
-TTCTTCAGCCCTTAGCCTCCCCTCTCTGGCTGTGGTCAGTGGCTGGCTCACCAGCCCCTC
-TTATGGCAGTCACTGCTCCAGAGTGCCAGGATTTCCCAGTATGGTGGCCAGGGCTGTCCG
-GAGCCCAGCACGCAGCTCAGGAAGCAGCTCAATGCAGGTGGGACGTCAGTGGGAGCAGAG
-GGCAGCCTCCCTCCCCAGACCCCTGAGGATGAGTCTGTCTCCCTCCTTGGTGCTAActtc
-tctctccttcttacatctccacttctttcttcttcctttatcttctctacctccttctct
-cttctaccttttcccttcttttccgctttttccttttttcatcttcattcttctcttttc
-tttcgtctttctcttcccctttcctcctctctttgtctagtccttcttccccctcacctc
-tccttttcctcctcttcCGTTTcataatgattaagagtatggcttctgatgtcagcctcc
-ctgggttcgaatccctgctgtgccacacactggctgcgtggcgttgggcaagccacttaa
-tttctctgtgctttggcttcctgagctgtacagtgggatgctaacagtgtctctcttgaa
-gggtGCCATGGGTGCCAGGTGAGCGTTAGCTGCTTATCATTCGTGTTCCTTCCTCCCCTC
-CTCTTCTTCTCCTCCTGGTCTTAGAAGTCTGTCTCCCTCCCTCTCTCCAAGCCCTGTGAC
-TCGCCTCTTACGTCTCTCTGCCCAGCATCTTGGGCCTGTCTCTGGCCCCTGCCCTGCTGC
-TTCATCCTCTCACTGCACGCACAGGAAGGAGAGCCCAGGCCTGGGGCCAGGTTGCCCCAT
-GAACAGTTGCTGAGCCAGGTGGCTGGAGCTCTTCCCTGGGGCCCCGCCCACGATGAGTTC
-AGGAGCTGCCTTTGTGCACCCGTGACAGCCTCTCCTGGCGCCTCATTTGGCAGAGCTGTG
-CATCTGGCCCAGTTACTGTGGTAGCCTTGGAAGGCAGAGTGCTCTGGGGCTTCCTTGTCA
-TCTACCTGCGTGACCCTGCATGAAGGGTATGCCCAGCCCTCAGCTGGACTGCCAGCCCCA
-CAGGCACCCTTGGTGCCCACCACACAGCAGGAGCTCATCCACAGATGGGCACAAATAGTG
-ATACCAGACAGTGCCTCtgagtccttgctgtgctaggcactgttctaagtgcaaattccg
-ttcatcttcacagcaacccttgcagtgggggctgttaaccccattttagagatgagcaaa
-ctgaaacacagaaaagcataggaaattgcccaaagttgaatgaatgaatgaatgaatACA
-ATGACAACTTAGGAAGGAAGGCATTTTACTGAAGagtgacaggcccacggtcacacagat
-agtaagtggaaaaaaatcagggctggaactcatgactccaaCATCACCTCCCACCTGTCC
-ATAAGCCCAGTGACAGCAAGGCTGGCACTCCCTCACACTTGGGGTTGAGGCCAGTAagag
-ctgcatttgtggaacactggccaaagcaaaccctctgtgctgagggcacttcagccagtg
-tctcaagcctgtctgcacttcttcttttttttttttttgagacagactctcactctgttg
-cccaggctggagtgcagtggcgcaatctcggctcactgaaacctctgcctccccggttca
-agccattctcctgcctcagcctcctgagtagctgggattacaggcacgtgccaccatgcc
-cggctaatttttgtatttttagtagagatggcattttgccatgttggccaggctggtctc
-aaactcctgacctcaggtgatctgcctgccttggcctcccaaagtgctgggattacaggc
-gtgagacaccatgcccagtcaactgaagttctttgagagtactgttcccattttccagat
-gaggagcctgaggcccagcgaaggcgagcaacatggccaaggtcacacagccagtaggtg
-TGATTCCAAAGTCCCACTTTCTGTCTTCCATCAGGTAGTACTATCTGCCTTCCACTATGG
-AGGGAATGTCCCATTGGGAGACGCCTAGGATGGGGGCTAAAGAAAGACAGGCAGGCCCGA
-CACCAGCCTCTCTCTCTTCTGTCTGCTGTCAACACTATATCTTGGTGCCATTCTGCCCAC
-TATTTGTAGAGAGGCCTGGGTACCAGCCTCTTCACTTTGTCCTGGAGGCCAGGCCAGGCA
-AGGATCACTGTACCCACTTttctttccttccttccttccctccctccctctctttctgcc
-ttTTTATTAAGGTATAAACCACACAAAATAAAGTACATAGagccaggtgtggtggctcac
-gcctgtaatcccagcactttgggaggccgaggGACCCCCCAGCCAAAGCCTGGAGCTCAG
-AACACAAATGCTCCCCTTGTTGAGAGTGGGGAAAAAAATCTCTTTTCAGGTGCCAGCCTT
-AAAAAGAAAGAACAAAAAAGGTAACTCACAGATGACCGTGATATGTGACGTGCATCTGAG
-CCCTTCACACAACCACAGAACTAACTGTCTGCAGCTGCCACAACAGCTGACCCCTCTGCC
-AGGCAGAGTTTGCTATCAACCAGTAACAGCTCCCAGAGGTTTTGTTATCCCTCTGTAGAA
-ATGGAGGCTTGAggccaggtgcagtggctcatgcctgtaatcccagtactttgggaggct
-gaggcaggcggataacctgaggtcgggagttcgagatcagcctgaccactatggagaaac
-cctgtttctactaaaaacaaaaaattagccaggcgtggtggcgcatgcctgtaatcccag
-ctaccagggaggctgaggcaggagaatcacttgaacctgggaggcggaggttgtggtgag
-ccgagatcgtgccattgcactccagcctgggcaacaagagcgaaagtccatctcaaaaaa
-aaaaaaaaaaaaaaaaaaagaaaTGAAGTCTTGATTGACTGAAGTAGGAGGAGCCAGCGC
-ACAGGCTTTGGAGGCAGAAGAGCTGGGACCAGCTCTGGAGGTTTGGGAACATGACTCCAC
-CTCCCCGAGCCTCGTACTGCTGACCAGATTGCTtttgcaagcattgtactacatcttcac
-acaatgctgggaggcagctgttaccaaccccatcttacagccggagaccctgaggctcag
-ggaggtaagggatgtgtgcagagacatgcaCAAAGTGGAAAAATGTGAAAACAGACCTCA
-TCGTGCAGTGTTATTGTGCAATTTGAATTGAATGAGGGATAAGAATGTGAATGGAtgcag
-tccacagtaggtgcttaagtcttgcatggggtctaatagccggtgagtggcaaaaggaga
-acttgtacccagatctgcctcaccccagagcccacctctgagcctctTCATCCATGGGAA
-GCCATCAtcagcatggtgcctggcaccgagtgagcctttgagaaagggtaactGGgtcaa
-aaattattttcagaaagttgaaaacatggatcttatacaaatgtatagtgagcacatgtc
-aaagtgttatttaactcattaaggatggaaccggtaggatggcaaagctgactcaaagga
-ggataaaatggcaaagttagctacgacataggttaatgtcttacagggcaccaaaaccat
-aagctttagcgttatttcttctacaggtcagaaatcatttgcaactcgtgcactttttac
-aagttaccaggtaactttgcttaggatcaggtgacccaggctcatcggacactgccttcg
-cttgatattgaaagggcacacagacaccctttttgtcttatttccaagttttggatattt
-tttctttaCAGTTATTATCATTCCACTTCTCTCTGACGAAAGGCTGTTCACAGGCCTCAC
-AGGTTCCCAGGAGCCCAGGGACACGCAGACCCCACCCCACCCATTCACACAAGGACTCAA
-GGACAGAGCCTCTACCCACAGATGAACTTGGGTGGTGCACAGGCACACGAGCTTGATGGC
-AGGGCACGCCCAGGCTGAAGGGGCCGGGTGGGAGCTAAAACGTGTGGTCTATGGTAGCCC
-AGCCTCTTTCCTCAGCAACCACGCCATGAAAAGATCCCTACATTATTTGTCAGGTAAAAT
-AAAGCGACCCGTAGCTAGTGGCGCGAGATTCTATCCAGCTTAATACGTGTGTATGTGCAG
-ACACATTTATGAGTGTGCATGCAGAGAAAACTCTCTGGGGAAATACCCCCTGAACTGACA
-GCCATGGGGAGTGAGGGTGAAGCGGAAACAATCTTGTAAAAGAAATTCAAAAACCGAAGC
-CCACTGCATTGTTTAAATTGGTTACGTCCAACTTGTTTTCCTGTGTTATCTGTCGCCTGT
-TAATACACACACACAAACACACACATAATAGAATGGGATAGAatatctatatatatctaa
-tatatataatatctaatatatataatatctaatatatataatatctaatatatataatat
-ctaatatatataatatatatatagagagagagagagagcgagagagagagagagagggag
-agacggagtttcgctcttgttgcccagactggagtgcaatggcgcgatctcggctcaccg
-caacctccgcctcccggcttcaagcgattctcctgcctcagcctcccgagtagctgggat
-tacaggcgtgcgccaccacgcctggctaaattttttttttttttttttaatttttagtag
-agacggggtttctccgtgttggccaggctggtctcgatctcccgacctcaggtgatccgc
-ccgcctcgacctcccaaagtgctgggattacaggcgggagccaccgcgcccggcGGGATA
-TTATATTTCCATAAGGCCCTCCGGGGGCCTGGGAACGGACTGGTGCTTGCGTGCGGGGCT
-TTTCCACTGGTTCCCTTCCGTACTCGGGCTTCCCCCGCTGTTGTTACTCCCTCAACGGGA
-ACACAACTCCACCGCCGCCTCCGGGACACACCCCCGCCGCGTGGGCCGGGGTCCGGGACG
-CGCGCTCAGCTCGGCCCCGCGGGGGCGGCGCAGGAGGGAAGGGGGTGCGGACCCCGGAGG
-CGCCGCAGGAAGCCCTCGCCCACCCTTCCCGGCCGGGCCGGGTCCGCAGCTGACGGTGGG
-GGTGGGGAGCAGACGGGCGGGGCGCCGGCCGGCTTGGGGGTCCCCTGGTCCCGTCCAGGG
-GGCTCGGGCCGACTCCGGGCCAGCTGCGGAGGCGGGGGAGGGGACCCCGCTTTCCATGGC
-AGTGCCGAGGCGGCGCGCACAAAGGCGCCGCGATCAGCGCTTCATCGGTTCGAGTCAATT
-ATCTGAGGCGCGGAGGCGGCGGGCGGGGCGAGGCGATTCCCCGGTGGGGCTGCGGAGCGC
-GGCGCCGAGACTCAGAGGAGGGGGCGCTGGGGAAGCGGCTTCTCCGTCTCCTGCTCCGCC
-CCGGGCTTCGTGGCGAGGCGCCGTCGCCCCCTGGTGGGGCCTCATCCATTCCTCGCTCAC
-TCGCTCGTTCACCTTTTTCTCAACCTTACAGCGGGTGGCTCTACGGTACGAGCTGAGGGT
-GAAGTGCTGAGAACAGGGCAAGCGGGCCGTACCTTTAAATGCCCTGTCGGGAGCTGGGCC
-CCTCTGAGTGGCCAACCTCACCAGGAAAGGGCGCTCAGCCTCGCGCTGCAGATGGACTTG
-GAAGCAGACCGTCAGAATGCAGCCCTCCCTGCACGTGATAGAGTAAGGGCCGCACAGGGG
-ATGAGGGCCCGGGGAGGCCCTTCGGGAGAGGAAGAGTCCCAGATGGCTCTCTGGAGGAAG
-TCTGGCCTAAGATGACCAGGTGAAGGGGTGGGGGTCCAGGGAGATGAGGGCGTTGCAGGT
-AGAGGTTTCAGCTATTGCAAAGGGGTTGCAGTACGGGCAAGTAAGGTGCACTCTGGGGAG
-AGTAACCTGTACTTACTGTGCGAGGGGAAGGGAGGTGATCAGTGAGGTAGGTAAGTGGGC
-CAGGGCCAGATGGCACAGGGCCACCTGCAAGCGTGGGCTGAGGGTGGGTTGTCAGGTCGT
-TTCATCATTTCCAGTTTATCCTTCTCCCCTTTAGATTTGGAGAGGATTTGGctgccctca
-cccttgtaagggtttaggcatcattcgcccttgactcctgtccagttgtctcactggtct
-ccctgtatcccttattttgcccttcaatctgcctgcacccatcctccaaaatgacctttt
-taaaagcaaagctcggtggcactacttttcaaaatcACAAATGCACAGGATCTGTAACCT
-GCTGGTTGCACATGACAGAAACCGCATAATAATCATGGGTTAggccgggtgtggtggctc
-aagcctgtaatcccagcactttgggagcctgaggcaagcggatcacttgagatcaggagt
-tcgagaccaggctggccaatatggtgaaaccctgtctctactaaaatacaaaactttgct
-gggcgtggtggtgtacaccagctactcaggaggctgaagcacgaggagaatcgcttgaac
-ccaggaggcagaggctgcagcgggctgagatcacaccactgcactccagcctaggtgaca
-gagcgaggctccttctaaaaaaaaaaagaaaataaaaaaaaaGTCCTGGTGTTAGAGGCA
-TTTTTCTTTtcctcctcctcctcctcctgctcctcctcctcctcctcttcttcttcttct
-tttctgagacagagtctccctttgtcacccaggctggagtgcaatggtgtgatcttggct
-cactgcaacctccacctcttgggttcaagcgattcttctgcctcagcctccagctaattt
-ttgtatttttagtagacatggggtttcaccatgttagccaggctggtcttgaactcctga
-cctcaggtgatccacccgccttggcctcccaaagtgctaggattacaggtgtgagccacc
-acactcagccAatagaggcatttttctgtcatgtaaataaagtctaaagcaggcagtcta
-aaactggcatggtgctctacggttcaggaacctaaactccttttgtcttattatgctacc
-ccctcagtacatggtttccacttcatggcccaacatggctgctcaaacagcagccctcac
-atctgcatccccagatggagagtctttttttttttttgagatggagtctccctctgtcac
-ccagcctggagtgcagtggcctgatcttcgctcactggaatctctgcctcccaggttcaa
-gtgattcccctgctcagcctcctgagtagctgggaccacaggcacgtgccaccacacctg
-gctaattttttgtatttttagtagagatggggtttcactgtgttagccaggatggtctcg
-atctcctgaccttgtgatccacccacctcggcctcccaaagtgctggggttacaggtgtg
-agccaccgcgcccagcccccagatggagagtcttttagtcattagaaaggagaaaggagc
-caaggagggagggaggttcccttaaagactctttcggaagtcacatacaatcttcttgtt
-gatgttccattggctaaacttgatcacatcactacactaagctacaaaggaggctgagaa
-atatgatctgtgttctaggcaccatgtgtccagatgaaaattgaggctcttatttcaaag
-aaaaagTTCAGTCCATggccaggcgtggtggctcatacctgtaatcccagcactttggga
-ggccgaggctagtggatcacctgaggtcaggagttcgagaccagcctgggtaacatggaa
-aaaccccgtctctactaaaaatacaaaaattagccgggtgtggtggcatgtgcctgtagt
-cccagctgctcaggaggctgaggcaggaaaattgcttgaatttgggaggcacaggttgca
-gtgagctgagatcacgccactgcactccagcctgggtgacagagcagaactctgtctcaa
-aaaaaaaaGTATCAGAAAAAGCGCAGTCTGGATATTGGGAAATGACCATCAGTCTATGCA
-TGctcaggagttccatgtctagcagtgtgtcctataggtttgcttaacccatgtgacatt
-tgacacgtttacaaggttattcactgcagcattgtgacagcaaaagactggaaacaacct
-aagtgtcctgtaataggggactggttaaacaaattatgggacatttatacaatggagaat
-gatggccacaaacacacatgaggaaactctcaatgcagtgatatgaaatggtatttaaga
-tgtTTcactttggaaaacagtttggcagtttcttatagagttaaacatacatctctccta
-tgacccagcaagttcacctctaggtttttgctcaaaataaaaatatatatgtatatatag
-ctccacaaggacttctatgcaaatgttcaacagagtttaacatgtgatagacaacaattg
-gaagtgacccaagatcgaacagccaatgaatggataaactggtgagtcaaatattacact
-ggagtttaaatgagtgatccaatgtctgcaaccacatggatgaatctcaaaacatgctga
-atgaaaacaagctggatacaaaaaatagcatgttgtaatgatgccgtttatatgaaattc
-tagaagaggcaaaacagaccaatctatgatgacagaaagcagagcagtggctgcctctgg
-ggtggagggatggactgggaaggagcataaaagaatttcttgggatgctggaaatgttct
-gtatcatgattggggtgttgattacacaggtgcatTTCACTGCATGTAAATTATACCTTG
-ATATTTTTAAAAAGCAGGGTGCAGAACAATGTTTAAATTATGGAATCCGGTATGTTTAAA
-AAGCAAGGAAATTTGCTTGTATCTGCATTGACTGTCTAGAAGAGACTTGTAATAGTGATT
-GTCGGTGGGAGAGGAACTGGGTAGCTGGGGGCTGGGGAAAAGGGACACTTTGGGCCATAC
-CCTGTTATACCTGTTGAATCTTAAACCAGTTGAATGTACTACCTAATTAAAAACTAAAAC
-TGAAAAGATCAGTTAGATGCACACGTGACATCACCACATTCATGTTTTAAATCTCCTAAT
-GGCTCTTCCCGGCAATCTGGACGAAGTTCAGACTCTGAGCTGTCCTGGCCTTATGTGGCC
-CCACTCAGGCAGCATCCTCTCCAACCACTTTTCTGTTCCCTGCAGAGACAGCTCAGTGCC
-TGGCTCCCTCTGGTTGGCCTAAGTGCATATGTGCCATTCCCTGAGTGCTCAGCTCCTCGG
-TGAATTCTCCCCAGCCCCCTGCCTGAGTTGGTCCCTCGGGTCTCACTGGACCTGCTGCAC
-TTTGCCTTCCCCCTTCCTCATCTATCAGATCAACACGTGTTTCCCAGAGCTCTCTGTGAG
-CTGGACCCCAGAGTCCTGGAGATGTGTGGGAGCCACTTTTATGGGGGAACCTGCTTCCTT
-GTTTCTGCTTCAGACAGCAGGCTTCTCCTGCCCTGAGACTCCCAGCAGCGTCTCCTCTTC
-CCAGGCCCAGATCTGGCCTGGGGTAGAAACTTTGATAAAATGTGCTGTCTTTAAGTTAAA
-TATGGCTCCATAAAGAATGCATTCCATGacaagaaccaacagagccctggtttcttagaa
-gatacagagaaaacacactgttgtgggagaattgtgtctgccaaaaagatacatcccagc
-tctaaccctgggacctgtgattgtgaccttatttggaaacagggtttaggcagatgtagt
-caggtcagggtgaggtaatactggattagagtgggctactccaatgactggtgcccttaa
-agagggaaacagacagaggagaacaccacgtgaccacagaggcgaagatgggagtgatgc
-atccacaagccaaagaaggccaaggaggcttgcagtcataaaagctggggagaagcgagg
-aagtgtcctcccttagggctttcagagagagcatggccttgccagcaccttgatttcaga
-cttttagcctccagcactgtgagaatacatttcagttgtcttaacctacctggtttgtgg
-ttatttgttctttttttaaattttttatttatttatttatttttgagacagagtctcact
-ctgtcacccaggctggagtgcaatggtgtgatcttggctcagtgtgacttccaccttctg
-agttcaagtgattctcctgcctcaggctctggagtagctgggattacaggcacctgccac
-cacacctggctaatttttgtattttcaatagagacgtggttccactgggttggccaggct
-ggttttgaactcctggtctcaactgatccgcctgtcttggcctcccaaagtgctgagatc
-acaggcatgagctaccgcacctggcctgtggttgttaactgtagtcccaggaaatgaata
-cacacacaaaaccagttaatacctaagacaattccagctagtggcaagtgctttggaaaa
-acaaaacaaaacaaaacaaaacaaaacaggtgagaagggcgtgggatagagagggactgg
-gaacggtgccacattagccagggtggtcagggaagccctcttggaggaggaggcatttca
-gtggagaGGAGAAGCCCAGCATGTGAGGACCAGGCAGAGGTGCTGGTGAGGGGGCACTTG
-GTGGGCGTGAAAGCTACTGGATGCAGCTCTGACGATGGAGGATACCTGACTGGGATTTTG
-GAGGAAGTCTCCAGGAATGAACCGGGAAGGGGCTATCCTCTCTTTGCCTCTGCAGGTCTC
-AGAACCTGCTGCATGGCTGCTGCAGGCTGTCCCTCGGCCTAGGCCGGCTGGCAGCCGATG
-AAGGAGGCCAGCCTCGCAGCTGACATGCTGCTCTCTAATTGTGATTAACTACCAAGTCCT
-CTCCTGCTCCGGCCTGAGGCCGCTGGTGTGACAGCTGCAGAGTGAATCAATGAGGCCAGG
-AAGGGGTTAATGGGCAGCCCCTCCATCTGAGCCCTTCAGACAATAAGGGGAGGTGGGGAG
-GCCTCTGGTGGGGGTGTGTGGCATCAGCTGGGGTGAGTGAATGGAGGGGACAGAGGCCTT
-GTCCCTGGGGACAGGGTGTGAGTGCTCTGTGGGGAGAGGGGTCAGACCCCCCTCCCATTA
-TTTTCATCCACCTCCATCGTCCTCTCCCCTCCCCCACCCAGCCAGAGCATCCCAGACAAC
-TGCCCTCTTGGCTCCAAAGTGTGCAGCATCTTCAGCCTTACGGAATTCTGAAGCAGAAAT
-TCTAAAAGCCAAAGAACTGCAGAATCGTGACATGTCACCGCTGTGGGAGAGTCCGTCTAG
-TCCTGTCATTCTGAAACTTTCTTTTGCAGTGGAACCCACAACTCCCACCCCAGCTCATTT
-CCCCCCAAAATAATAGTGCATTGATAACATTGAGAACAGACCCTGGTACCAGCCGGCCTC
-ATTCATCCTTCATTCAGCCCCGGTTCTACCACGTACAACTAGGGTAACTTGGGGGTATAA
-TGCATAGTTTATAGgtgtgtgtgtgtgtgtgtgtgtgtgtgtCTTCCCtagagacagagt
-cttgctatattgcccaggctggtcttgaactcctgggcacatgcagttctccagccttgg
-ccttctgagtggctggCTCACACCACCGTATTCAGTagttccgtaggttttgacaagttt
-gtaagttatgtaaccaccaccacaattaatatatagaacatttccatcgctgaaaaatgt
-tgcctcatgccccttgtagtcaatacccttcccTGTGTTACCTGATATGGTAGCATGAAT
-AAAGGTCATCTAGAGTTAGTGACTCTAggccgggcagggtggctcatacctataatccca
-gcattttgggacgccaaggtgggtggatcacttgaggccaggagtttgagaccagcctag
-ccaacatgacaaaaacccatctctactaaaaatacaaaaatgagccaggtgtggtgatgc
-acgcctataatcccagctactccggaggctgaggcaggagaattgcttgaacccaggagc
-tggaagttgcagtgatccgagatcacatgactgcactccagcctgggcaacagcaaggct
-ccgtctcaaaaaaataaaaaaaataaaaaaaTTAGTGAttctaatccttgaactgtgtaa
-atgttaccttatttggataaaggatctttgcagatgtaattaagaggcagaggttggagt
-gatgtggcccaaagcaaagaacaccaggaggctcccagaaccagaaggggcaaggaatgg
-attctgctctagagcctccagaggtagagtggctctgccaacaccttgatttcaaatgcc
-tggcttcagaactgaaagagaatacacttctgttgttttaagcctctcagtgtgtggtac
-ttttttacagtagtctttacaaacaaatatacctagcaaccaccatgccttgttttctat
-ctgtataagttttgcctttgcaaggatgttacatagacagaatcctgcagtatgaagctt
-ttgtgagtttggcttctttcactcagcataacacagttgagatgcatccatgctgttgca
-tgcatcagaagtctgttccttttggatgctgagtagtatttcactgctggatacaccaca
-gcttatccattcaccagttgaaaggcatttgggtcactcctaattgggagcattataaat
-aatgctgctatgaacatgtgtgtatagatctctgtgtggacatacactgtcatttctcca
-gagtagataccctggagtagaattactgggtcatattgtaagtgtatttataattttatc
-agaaattattacccgggcatggtggcatgcacctatagtgccagctacttgggaggctga
-ggcaggagaatcccttgaacccagtaggtggaggttgtagtgagccgagatcatgccact
-gcactccagcctgggcaacagagtaagactctgtctaaaaaaacccaaaaaaccaaagaa
-caaaaCTACAAAGAATCTGATgtggctcatgcctgtaatcccagcactttgggaggccga
-ggttggaggattgctggagctcaggagtctgagaccagcctgggcaacatggcaaaaccc
-gatctccactaaaagtacaaaaattagttgggcgtgatggtgagtgcctgtagtcccagg
-tacttgggaggctggggtaggaggatcacttgagggtgggaggcggaggttgcagtgagg
-tgagattgtgccaatgcactctagcctgggtgacaaagtgagaccctgcctaaaaaaaac
-cccaaaaaacagaaagaaactgacaaactgttttccagtgtagctataccattttgcatt
-ctctccagcaCTTAGTATTGTCAGGTTTTTAAAAATTTAGATATTTTAggccaggcgctg
-tggcttatgcctgtaatcccagcactttgggaggcagaggtgggcggatcacttgaggtc
-aggagttcgagacgagcttgaccaacagggagaaccagatacttgggaggttgaggcagg
-agaattgcttgaacctgggaggcagaggttgcagtgagctgagatcacaccattgcactc
-cagccctccagcctgggcatcaagagtgaaactctgtctcaaaaaaaaaaaaaaaTTAGA
-TATTTtaataggtatgtaacaatcatagggttattgtgagaatgaaatgaacatatctga
-gaatactgcctagcacatggCTCCTGGCTTGGAAGGGTAAGCTCCTCTTATTGCAATCAC
-TATGGGGTTATGTCCTGTCCAGGACAAAACCAGAGGTGAAAACTCAAAAAAAAACTCAGG
-TGGGCCAGGAGGAGGCTGTGGGGACCAGTGAGCTCATGTCCCATCttgaaggtcaaggtc
-ccgggaagcagctcctgagatggaaatctgcatgtgggtggttttccaggtagtgctctt
-aggatcttggaggagccagggaagcaggctcgggcagttgcaatagaggccttgaccagt
-cccatcaggagctgggccagcccttaggacatgtcacagcctgagacagggaggtcatgc
-ctctgtactctgcaagatcagactttggagtggttgcccacaggagagatgttattaata
-tcttgggtgaagcagcccttttaagctgGTGCCTTGATCCGGGTGATGGCTTTGAGGTgg
-aaaacaagcctgagtggtttcagctttcaacttttcaagagaagctatgtatctagattt
-tgatgttaactctccaaacttttttaaaatgctggaaattctagacttttcaaacctgct
-gtgaggggctcacatgccaggcacaagggctggagggggcctgaggctgcctgtCGATGC
-CCCTTGATATAAAACCAggctgggtgcagtgccttatgcctgtaatcccagcacttcggg
-aggccgaggtgggtggatcacttgaggtcaggagttcgagaccagcatggccaaagtggt
-aaaaccccgtctctactaaaaaatacaaaataataataataataataataataataataa
-taattagctgggtgtggtggctcacccctgtaatcccagctactcgggaggctgaagcag
-gagaattgcttgaacccgggaggcggaggttgcagtgagccgagatcgcgccattgcact
-ccagcctgggcaacaagagcaaaactctgtctcaaaaacaaaacaaaacaaaaacaaaaa
-caaaaaAGGAAAACCAAACAAAAAAACCCCCAAAACCTGCTGTGTCATCTGACATCACGC
-TAGTgtctggttgccgcactggagaggacaccccatggggcaggaatctttgggttttga
-tctccaccacatccccagcatgtagggcagggtccagGCCTGGATGCAGCACGAGAGAAG
-GAACGCAGGGCCCGAATGAGTAATTTGCCTCAGTGTGCAGGTCATTTAATTGCAAAGAGA
-GGAAAAACGACAACCAAaaacaaccaaatgaaaaaatgagcaaaggatttgaatagacat
-ttctccaaagatgtacaagtggccaataaacagaggaaaagatgctcagcgtcagtaatc
-attagggagatgcaaatcagaattgcaagcacgagataccgcttcacacctattaggatg
-cctattaaaaaacaaaaacaaaaaACAAAACAAAACAAAAAAATCAggcagagtgctgtg
-actcacacctgtaatcccagcactttgagaggctgaggtgggcggatcacctgaggcagg
-gagttcgagactagcctgaccaacatggagaaatcccgtctctactaaaagtacaaaatt
-agccgggcgtggtggcgcctgcctgtaatcccagctactcgggaggctgaggcaggagaa
-tcgcttgaacccaggaggtggaggttgcagtgagccgagaccacgccattgcactccagc
-ctgagcaacaagagcgaaactccgtctcaaaaaaaaaaaaaaaaaaaaaaaaaTCGCAGA
-Tctgactgtgtgaccttgggcaagttgcttgacctctcagtgcctccatttcctcctctg
-taacgtgagagtaaaaatactactcatacctacctcgtagggctgtcatgaggactgaat
-aagtgcataggtacagacatgcttaggacagtatcagcacatgcaggaattacatgggag
-ttggctgttaATATTATTACAGGAGTggatcaaatccatctctgccatggacttgctgtg
-tgacctagtgcaggtcactttgcctctcttggtccagttttctcacttgtaaaatgggac
-catactgccactctccatagggcaagtgtgcggattcgaggagctcatatgtgaaaggcC
-TCCTTCAGGCGCAAGGTTGGTCCTTGGTTATGCACGTATGTGAGCCTCTTGGCGTGCCTT
-CATATGTGGGGCATAGGCAAGCACTCAAGTGGCCTGGACTCCTATCTCGGCTCTCAATGT
-CCCCGCTTCCTGGCCTGGGATCAGCAGGACCTCAGTGGATCCACCATCCAGGCACATCCC
-TTTCTTTCCCTGCTTTTTTCCTGCTTCTTGGGCGGCACCACCACCTACTGGCCTAAAGCT
-ACATTGCAGCCAATGTGCACAGCGGGGCGGAGGGAAGGGAATATGGCCTTGGGCAGCTGC
-TGTGCGCAGAATATTTACCTCTGTACACGCTTAGGGTGCTGAGGCTTAGGGAGCTCACAC
-GGAGAGAGCCAGCTGTGAAGCTGGGGTTAGAATCCCTGTCTCCCTTTCACCTCACTCCAA
-ACACCCTCTTAGAATGGGAACTCAGTTCAGGTTCTGCCTTGGGCCCTAGACGATCCACCC
-CTCCCTTCTGAGCAGGGAGCCAGGAGCTGAAGTCCAGGGTCCTTGGAAGTATGTCAGGGT
-TGTCCCCCCAGGGTCCTGATTACAGAAGAAAGAACACTGGACTCAGAGTCCAGAGGTTGG
-GGGTCTAGCTTTGCCTTCCCTATCCCCAACTATCAGCAAAACAGCCTTTGGAAAATCCTC
-ACCCATTTATTCTAGCACTTGTCATTTCGAAATATATTTACTGTGGGAGAGCATTTAATG
-TGAGTGTTAGGTTCTAACGCAAGGAGAAAATTATAAAAATAAACAAAAACTTTTAAAGAA
-CTCCTAAAAATCCTTTAAGTCACTCATAAAGTATAATATGGGCAGTTTTCTAAATATAGT
-CCTTTGCAGCAATAAATGCACGGACCATAAAGAACAGCAGTATATGGTGGTGATTGCATG
-CATTTGCGAACTGTAATTTTAGGTTCTGTTCTCTCTCAGGGGTGTGTGGGATTCCGAGCT
-GTGGATCCACACCCCCACATCTCTCTCACAGCTGGGATCATGTCCAGGCAGAATCGCCCA
-CATTGTGTACATCATTCTCCCTTCTCTCTCTCTTTCTGAGCGCACATAGCTGCATTTCCG
-AAGTTACATAATaaaaacagctaacatttattgagctttcattatgtattaggcctgctc
-gcagccctttgctcacgcattaattcattaattcagataatcctcctaagaatgttatga
-ggtaggtatattattatctcttctctttacagatgaggaaactgaggcactgaatggtta
-agtaactagcccaaggtcaaatagTGTACCACCCAGCCCGAAGGCGTTCACCTTgttccc
-gggtaggatcgcagaactggttaagctaggttaccgatccgggtggtgtcagctgatccc
-tcagctgctgtagtgcaagatctgcaaaatatctcaagcactgatcttaggttttgcaat
-agtgacactgtccccaggaacaacttggggaggttcagacccttgctgtcagaggctgca
-cagcccctaaaccttgatttctaatcttgtagctaatttgttagtcttacaaaggcagac
-tggtccccgggcaagaagtggatcttttcaggaaagggctattgtcataatttcctcagt
-tacaatttttgcaaaggtggtttcaatagccagtgagtggtacagcctgaatttgaaggc
-aggaagtccgggacgagaacccacactcttgactggcatactTGCCACCTGAATGGAGGC
-TCCATAGAGCCACGCGTGCATGCTTGTGTACCTGTTGTCAGCCCGCAAGCTCCGTTAGGC
-AGGCTAGAACCTGATCCAGGTTAACTTTGCATCCTTAGTGCTGGTTCTTTCCATCCAGGG
-CCCCACTCAGGGTATATGCTCAGTGACTGTTGTACAAATGCATAAAGCTCAGTTTGCATA
-AAGCTCACTTCAGCTTCTGTATCTGTAAGACAAGAATCAGagccaggcacagtggttcat
-gcctataatcacagaactttgggaggctgaggcgggcggatcacgaggtcaggagttcca
-ggccagcctgtccaatatggtgaaaccccgtctgtagtaaaaatacaaaaattagccagg
-tgtggtggcacgcatctgtaatcccagatactcgggaggctgaggcagaagaatcacttg
-aacctgggaggcagagtttgcagtgagccgagatcatgccactgcactccagcctgggcg
-acagagcgagactccatctcaaaaaaaaaaaaaaaaaaagaaTCGAAATCAGCTCTTCAG
-ATTGCTGGAGGCTCCGACAAGCCCATTGGTGGGAAAATTCTCTTTAAAGACACTGATGTG
-ggctgggcacaatgactcatcctgtaatcccaacactttgggaggccaaggtggatggat
-cactagaggtcaggagtttgagaccagcctagccaacatggtgcaaccttgtctctacta
-aaaatacaaaaaattagccaggtgtggtgacatgaacccataatcccagctactcgggag
-gctgagatgggagaatcgcttgaacccaggaggcggaggttgcagtgagccaagattgca
-catctgcactccagcctgggcgacagagcaagactccatctgaaaacaaacaaacaaaca
-aaaCACtgatatagtttggatttgtttcccctcccaaatctcaggtggggttgtaatccc
-cagtgttggaaaaggggcctggtgggaggtgattggatcttgggggcaaacatccccctt
-gctgttcttgtgatagtgaatggattcttacgagatctgcttgtttaaaagtgtgtggca
-cctcctcctaccccgctccagccatgtagaacgtgcctgcctccccttcgccttctgcca
-tgattgtaagtttcctgaggcctccccagtcatgcttcctgtacagcctgcagaaccgtg
-agccaattaaacttctttttttaaatgaattacccagtctcagttcattataccaatgtg
-agaacaaacgaatacaGACACTAAATTCTCCTTTGCCCACCTCCTGCTTGGTCCCTTCTT
-GAATTTTCAAGCTGCTCAACCAAGTggcctgcaccagcttgggagagctaatcgtgtgta
-tctgtacccaactctacattcagtaacatcatgtttgtagctcgaaatcagcaatggtga
-gtatttacactatggcaattggcaaatgcttcaaacaggagttttcccctctagagatgt
-taaacgtttgccagGAGGAAATCAATCCTCTAATGGCCACCTTcaaggaggcaacacagt
-ggagtgatcatgcttgttggctctggagccagaacacctgggttcaaagtccagctctat
-cacttaccagctgtgtgaccttgttcagttacttaacctctctgagcctcattagtctca
-ttcatgaTTACGTATTTCATTGGGGACTCAATGCCATCTTCCATATAAGTGCTCTCTCAA
-TTAATGTTATATATTAATATTATCAATCAGCTTAAGAGGTGGGGAAACTTTCTTGTTTTC
-CATCCTAGGAAAGGGAGTGCTGAGGACAGGACTTGCAGTGTCAAAAAGGAACCTCAAAAA
-CGGCAATGTGTAACTGCAGGTCTGGGCCATTTTTGAGGGTCTCTTGAGCATTGGCAGACC
-AGATCTTTATGCCAACACAGGTTGTGCGTGTGGGGGTTAGAGGAGGAGAGGCCTTCTCAG
-TTCTTTGCAGGAAAGGCTACTGTTAGCTCTAGAGCCCAGAACAGATTTAGGGGGAGAGAT
-GATCTAACCAAACTTTCCCTCTGCCCTCGGCTTGCCAGTCTTCTCGCTAGTGAACACTCC
-CAGTGTGAGGTAGAGGGTTCCCTGTTCCACCTCCTTCCTCCCTCTGTAGAGGAGGTATGC
-ATTGGGGCAGGTGTGTGTAAGGCCCTCCTGGGGTACCCCTCCAGGGAATCTTCCCATCTT
-CTCCAGTACTGCCCCATCTGACATCCTGCCTGAAGCCACAGGTTTCCCTTGCAATCACTA
-AAGAAGCAGGAGGGAACCAGCAGAACTCCCTGCCCATGTGCACAGGAGGTGATCCAGAAA
-CTTCAAGGGGAAAAATCCTGCTCTCCACCCCAGCAGGCATTGATTTTTGGCTGCGAAGAT
-TACAGtctctctctctctctctctctctctctctctctctctctctctcacacacacaca
-cacacacacacacacacacTCCTGTGTGCCAGGAGGTTCCTAGAAGGTCCTCACTCCTCG
-CACTCAGGTGCTCCAGGGCTAGCCCACTCCTGGGAGGTGCCCACAACTGACCACGATGCC
-CACAAGACTGTGGGAAGGGTTGCCCCATGTGCCTTCGTGCCCCTCCCACTGGATCCCAAC
-gaaggctcttttcacaacaggaatcagagcatgtcactcccaacctgcctaaaccctcca
-atggctcccaccacttttgatcaagacctaaatcctttctgagtccaccccatccttaca
-gggtctaaccttgcttccatccctgtcttcaccccttattcctccctctgggctcctctt
-caggcccttgaggtgccaagctcactcctgccctgggcctttgctgctgctgtccccttg
-gcctggagcactcttcccTGTCCTTTTTGCCCATGTGAGGCTGAGAGGCAGACGGAATCA
-TGGTTGCTAGTGTAGAgaggccacactactggagtttgtatttcagttctgtcaccttga
-actgggtgacctcacccatctctgcctccctttcctccctctatacagtgggaaagataa
-tagcacctacatcttagggtgttgtgagactgattgagataatCTGTATGGTTTTtggca
-gtttctgaaatgcactgtaaactgtctggttctcctcccatcggaaggtgagaatctgac
-tgctccccttgactctgggtgagagggtagggcaacagcaatgctccatgatttcagagg
-ctgggtcataaaaacggtctgcaggggattcacttccagaacagtggagtgaggaacact
-gcagactgctttctggtgaaaacaactgatgatgatttctaaaaaacaatcatttgaagt
-ctctggaaattgtcctaagagcatacagcaagtgaagaaacacttattcaagaaaatcta
-ctaaatctaggtaagaacagtgagtttgtagaacttgagacacaatccactctctttctc
-ccctccattccattttactgttatggaaactcaactgtgagcagccagggccaagaagat
-gggagtcatttccccccaagctcctagtcgatggggtacagcatctccccaggaagggaa
-ggctgccagcatttgtcatcctcccaacagctatatcttacagaggctaaactccaggta
-ggtgtggctgggagactgggatcttccttcctctacccagtccccactcatagggtggtg
-gccacgccaagtgcagcaggctaaaaatattgaagccccagttgcttttgtcttagctta
-cttgttaaagcagaggttccatgcctggagatgcaagctgagaagaccagagactaagaa
-tactgccccaactcagccctgctcataaagcaagaaggttactctgggagaagtgaactg
-ttgtccctgcctccagctccagagcagtgtcacagatgctttgcccaagagagaggcagg
-tcataacaacacagatctttaaagttgtccataaaggaactgactttctttagaacagag
-tatgcagaaatttaagcctaagagtgccctcagaagcagtggcgattttggtagtgatca
-gggacccaaagttgctatactatatcatcttaaatgttcattttccagcaaagaatttca
-agacttgcaaagaaataaacacatgtgacccatacacagggaaagaccagtcaacagaaa
-ctacctgtgagagtgctcagaggtcagacttgcacggacttcaaagcaaccactgtaaat
-atgttcaaagaaataatggaagccatgcttaaagaataagggaaggtaggctgggtgcag
-tggctcatgcctgtaatccccgcactttgggaggccaagaggggtggatcacctgaggtc
-aggaatttgagaccagcctggccaacatggtgaaaccccatctctactaaaaatacaaaa
-attagctgggcatggtggcaggtgcctgtagtcccagctactcgggaggctgaggcatga
-gaatcacttgaacccaggaggcggaggttgcagtgagctgagattgtgccactgcccttc
-agcctgggtgacagagagagactccatctcaaaaagaaaaacaaaaacgaaaatcaagaa
-taagggaagcggtgatgactgtgtctcatgaacagagaatgtaaacaagaagatactatt
-ttaaaaaacttaatggaaattctggagttgaaaagtgcaaaagaaaaattcactagaggg
-gctcaacagtagacttgagccagcagaaggaagattcagtgaatctgaagacagatcaat
-agagatttcgcagtctgaagaacagagagaaaaatatgaagaaaaatgaacaaagccttg
-gagaaatgtgggacacagctaggtgcaccaacatatgcacaataacatatataacagaag
-gagagcaaagagagaaaggaacagaaaaaaatgtgcaaaaataatcactgaagcctttgc
-aaatttgatgagaaacatgaattatgcattgaagaagcttaatgaactccgagtagaaca
-aatgcaaagtggtcaacaaccagatacataaaaggaaaatgttgaaacccaaagataaaa
-agaaaatcttgaaagcaacaagagaaacacagctcatcacatataagggaacaccaaata
-agaccgacagcagatttctcatgtgaaacgatggaggccctaaggcagtgggacaacata
-ttcaaaatgcataaacaaaaactaccaagcaagaatcttacatccagcaaaattatcttt
-caaaagtgatgatgaaagagatatttccagataaacataaactgagaatttgttgccagg
-aaacttaccttacaataaatactaaaggaagttcttcagacagtaatttgaatccacaca
-cacaaaagccaaagtgctctgggaaaggcaagtagatcgttatgaaaggcagtaagaatg
-catatttattcaccttctcttaacagatttttaaaaataatttgtatataattgtattgt
-ggggccaagacatatagaaatgtaatatattttgataataatagcacacaggaggtgagt
-gggagcagagctgtattggattaagaaagtgagaccagatgggaactggaatccacagga
-acaaatgaagagaaccagaaattataagtaagaaagttaataaaacaaagtcttttaata
-tatacttgctctcctttcttctctcagcttcttcaaaagacataaaactatataaagtaa
-taattataacaaagtactgttggttttgtaacatatgtagatgtaatacatataaaaaga
-atagtgcaaagaggaagaagagagaatagtgctatataggagtcaccgggcacggtggct
-cacaactttaatcccagcactttgggaggccgaggcaggccagtcacttggggccaggag
-ttcaagaccagcctggccatgtatctctacatataatagattgaaaccatgtatctctac
-gtataatacaaaaattagccaggtgtggtgtcatgtgctggtaatcctagctactgggga
-ggctgaggagaattgcttaaacccaggaggtggaggttgcagtgaaccaagatcacgcca
-ccacactccagcctgggcaatagcacaaaaatctgccaaaaaaaaaaagatagaaatata
-taggagtaatatttctatatatcactggaattaagttactgtaaatctgaagtcaattct
-gataagttaaaacctatatagtaagcctaaactggtcattaagacaaacaaacagaacag
-tgaaaaagctattaaagaaatttaaggctgggcacggtggctcacacctgtaatctcaac
-actttgggaggctgaggtaggtggatcacctgaggtcaggagttcgagaccagcctggcc
-aacatggtgaaaccccctccctactgaaaatacaaaaaattaggtgggtgtggtggcagg
-cacctataatcccagctacttgggaggctgaggcaggagaattgtttgaacctgggaggt
-ggaggttgtagtgagccgagatcatgccattgcactccagcctgggtgacagaatgagat
-tctgtctcaaaaacaaaaacaaaaacaaaacaaacaaaaaatccaaaaaacagaaattta
-aataatacactagaaaatattcgtttagtgtaaaagatgtcaaggaagaaaagaggaaca
-aaaaagacatgagacatatagaaaataaaaagtcaaatgacagacataaatccaacttct
-ctcaatgatagcattaaatgtgattggatcaagtcaaaagggagagatttcctgactaaa
-taaaaagccaagatcaactatatactgtgtgcagaagatacactcaagattcaaaggtta
-aaagtaggttgggcgttaaaggctgaacaaaatatatcacgcaaacagcaaccataagaa
-aacttgatttgctatattaatatcaggaaaaagactttaaaatgaaatatgttacaaaag
-ataaagaggaacattttataatggtaaaaggatcaatcgatccattgggaagacataaaa
-attatagacagatatgcccctaacaacaaagccccaacatgtgtgaagcaaaaacagaaa
-gaattgaaggggcaaatagacaattcaaaaataatatttggagacttcaaaaccccactt
-ttaataatgaatagaacaactaaacagaagactaaagaaggcaatagaggctgggcgtgg
-tggctcatgcctgtaatcccagcactttgggaggcccaggcgggcagatcacctgaggtc
-aggagttcgagaccagcctgaccaacatggagaaaccccgtctctactgaaaatacaaaa
-ttagccaggtgtggtggcgcatgcctgtaatcccagctactcaggaggctgaggcaggag
-aatcacttgaacctgggaggcagaggtttccgtgagcccagatcacaccactgcagtcca
-gcctgggcaacaagtgcaaaactccgtctcaaaaaaaaaaaaaaaaaaaagaaaaaaaaa
-agaaggcaatagaagacttgaacaacactaaaccaacaagacctaaaagacatctataga
-acatttcacacaacaacaagataatacacattcttctcaagagtacgtgaaaaattattt
-aggacagactatatgttagaccacaaaacaaacatcaatgatttttttatcttttatttt
-tttttttaatatggagtcttgctctgttgcccaggctgaagtgcagtggcatgatctcag
-ctcactgcaacttcagcctcccgggttcaagcaattctcgtgcctcagcttccagagtag
-ctgggattacaggcacccaccactatacccagctaatttttatatttttgtagagacagg
-gtttcaccatgttcgctaggctggtcttgaactcctgacctcaagttatctgcctaagtc
-ggcctcccagagtgctgggattacaggtgtgagcaaccgtacctggacaataaattttaa
-aagattgaaatcatacaaagtaccttctctgactaaaatggaatgaagctagaaatcaat
-agaagaaaaccaagataattcacgaatatgtgaaaattaaaaacacactcaaacaactaa
-tgtgtcaaaatagaaatcacaagggaaattggaaaacaccatgagggaatgagaataaaa
-atataacataccaaaacttacgtgattcagtgaaagcagaaaaatttatagctgtaaaga
-cctgcactaaaaagggagaaaggggccaggcgtggtagctcactcctgtaatcccagcat
-tttgcgaggctgaggcaggcggatcacttgaggtcaggagtttgagaccagcctggccaa
-catggtgaaaccccatctctactaaaatataaaaattagctgggtatggtggcacatgcc
-tgtaatcccagctacttaggaggctgaggcgggagaatcgcttgaacgcaggaggcagag
-gttgcagtgagccgagagcgtgccactgcactctaacctgggtgacagagtaacactccg
-tctcaaaaaaataaaaaataaataaaaaaatttttttaaaaaggagaaaagtctcaaaac
-aaccacctaactctacaccttaaagaactaCAGAaagaatacaaaaattagccgggcatg
-gtgatgggcacctgtaatcccagctactctggaggctgaggcagagaatggcatgaacct
-gggaggcagagcttgcagtgagctgagatcgtgccactgcattccagcctgggcaacaga
-gcgagactccgtctcaaaaaaataaataaataaataaaaaataaaaagaactagagaaag
-aagcacagactaaacccaaagctagcagaagaaagaaaataattaagattggagtggaag
-taaacaaaatagagtatagaaaaacagtggtaaaaaaatcactgaagctgggcatggtgc
-cacatgcctataatcccagcactttggaaggcagaggcaggtggatcacttgaggccagc
-agttcaagaccagcttggctaacatggtgaaaccccatctctactaaaaacacaaaaatt
-agctgagcctggtggtggacacctgtaatcccagctatgcgggaggctgaggcaggagaa
-tcacttgaacctgggaggcagaagttgcagtgaactgagatcatgccactgcactgcagc
-ctgggcaacagagcaagaccctgtctcaaaaaaataaaaaataaaaaaataataaatcaa
-agaaacaaaaaattgatcaatcaaattgacaaacctttagctaaactggctaagaaaaga
-agattcaaattactaaaatcagaaatggaagttcggacagtactactgaacttacagaaa
-taaaaataattataagaaaatactatgaacaattgtgtaccagcaaattggagaacctag
-atgaaacggacaaattctggccaggcgtggtggctcacgcctgtattcccagcactttgg
-gaggcaaaggcaggcagatcacaaggtcaggagattgagaccatcctggctaacatggtg
-aaaccccgtctgtactaaaaatacaaaaaattagcctggcatggatggcacgtgcctgta
-gtcccagctactcaggaggctgagacaggagaattgcttgaacctgagagatggaggttg
-cagtgagccgagattgtgccactggactccagcctgggtgacagagcaagattctgtcaa
-aaaaaaaaaaaaagaaagaaaggaaagaaagaaagggacaagggacagattcctagatac
-acatgatataccaaaactgagtcatgaagaatggaaatctttatagacctgtaatgaagc
-agtgatcaaaagccatccaaaaaagaaaaacctttgacaagtccctggtgaattctacca
-gacatttaaagaagaactaacatcaatctttctcaaactcttccaaaaaatttaagagga
-gggTCGGGGGGCTGGGAGATCCAACATGACctcatccacatgactggcaattggtgctga
-ttgtcagcaggaatgtctgtgttctcctccttgcggtcactcttgctctgttaggtcaga
-catcatcccttacatagaggcccaagggtccaacggtccaagtccaagactgaagctgca
-aggtctcttgaggcagaggctctgaaaaccacatgatgtcacttctgtcacacgctattg
-gtcaaagcaagtcacatgcctcactcagcttcaagtcagtggagaaacagactccacctt
-ggatgggaagaatagcagagtcacattgcaaaggggtgtggataagggttgggaggaatg
-tgtagccattaatttacaCCAGATAATGTGAGTGTTTGCACTTTACAAGGTCCACAGGTC
-CACtgatacagtttggctctgtgtccctacccacatctcaccttgaattgtaataatacc
-cacgtgtcatgggagggaccccatgggaggtaattgaattatggggcgggtttttcttgt
-gctgttctcgtgataatgaagacatctcaagagatctgatgtttttatcggggggagttc
-ccttgcctgccaccatggaagatgtcccttgactcttccttcatcttcagccatgattgt
-gaggcctctccagccatgtggaacagtgagtccactaaacttgtttcctttataaattac
-ccagtctcaggtatgtctttattttattttattttattttattttattttattttatttt
-attttatttttgagacagagtcttgctctgtcacccaggctgaagtgcaagggcaccatc
-tcggctcactgcaacctccgcctcccacgttcaagagattcccctgcctcagcctcctga
-gtagctgggactacagtgcacgcctccacacccggctaatttttgtattttagtagagac
-agggtttcactatgttggccaggctagtgtcgaacttctgatctcatgatccacctgcct
-cggcctcccaaagtgctgggattacaggcatgagccaccatgcccggcctcaggtatgtc
-tttattagagcgagagaatagactaatacaTCCACCAACCCTAGGAAGTCAGTGGAAGGG
-TATTTCCGTATTTCATATGGAAGTCATTTCCATATGAAAATTTAGCCAGAGGATTTCATG
-CTGGTTGTCTGAAAGCCAGGAGCTTCTAAAAAACTTTCAGGGTAGCTGTCTAAGCATGac
-ctcatgtcatcctgttgtgagtactaaattagttaattcaggggaggcactcagaaaagt
-gAAGAAAGGGAAATCTTTCTTATATAAATCTTAGAAATCTCATAGAAATCTTAGGAAAgt
-gcctggcgtgcagtaaacacgtgatacatttcagttgttattatcttcacaataattttt
-ttgggtcaggcttgttattttccctgttttacagattaaggggcagagactcagagatgc
-gcagtaagtcgcctgagggttacgcagcaaataagcagggaagccagatgagaacctaCA
-TGACAGAGTCACCCATGTGTGAGACTCCAAAGCCTCATTCAGGTGCACAGAGAGGCGGTT
-GTGAGGACGttcactgctgcgttgccttcagtagcttaacatcagaaacagcgcagatgt
-ccaccaacaggggccacccagtaaaccccagcatgcccagccaaggagtgctttgtgctg
-gttacaagaaatgaggtcacgctatacataggacatgggatcatctccaagacattctgt
-tcagtaaaaagaacaTCTGAAAAAAAAGTTCCATAACCCACAGAAAATACTGCCAAATAT
-TCCAAAAAATCTAAGTCCAAGTGTGTGTGTATGTGACCTCTGGAGGCTGATCTGAAGCAA
-ATGTAGGTGAATTAAACAATAGGATCTATTTATAGGACTCTTCTTTTCCTACTTTTCTTT
-ATTTTTGTTGGATTTTGAAACATGTTCAAAGAAAAATTCAGAGTACAATAAAGTACCagt
-cgggcatggtggctcacgcctgtaatcccagcactttgggaggctgaggtgggtggacca
-cctgaggtcaggagttcgagatcagcctggccaatatggtgaaaccctgtctctgctaaa
-aatacaaaaattaggtgggtgtggtggcaggcacctgtaatcccagctactcgggaggct
-gaggcaggagaattgcttgaacccaggaggcaaaggttgcagtgagctgattgtgccact
-gcactccagcctgggcgacaagagtgagactgtgtctcaataaataaatgaaagaaagaa
-agaagaaagaaagaaagaaagaagaaagaaagaaaagaaagaaagaaagaaagaaagaaa
-gaaagaaagaaagaaagaaagaaaaagaaaaagaaccaagaagaaaaaataaTCACCGGA
-GATTCCtcccctcccctagagctaactaggctaacattttggtatatatctttccagtcc
-ggatcctgtgtgactgagtgtgtatatgcatatgtattattttCAACTGTtggctttctc
-cttgtggtccaagacagctgctccagatttagccattacatctgtttcctgccagcaaga
-aagggaaaatgggaagtagagggccttttaagtatacaacctagaatttacacacattat
-tctttatcacatctcatttctctaaatgtagtcgcatggccatcctggccagaaggaagc
-ctgggaaatgtggtctttcctctgggctgccttgtgcccagtgaaaagtcaggggttcta
-tgactatgaaagaaacaggagaatggatattgtggcaactagcagtGCTATTCACCTTTA
-TTCTCTCAATGGTAATATTTTTCCCCATCAAGAGGGGAAAATTTGTGTCTTACATTCTAA
-CCACTGAACTCCGAGAGAAGACACTGGCCTGTGCCAttctcttgcgatggagtttcgctc
-tgtcgcccaggctggagtgcagtggggtgatctcagctcactgcaacctccacctcctgg
-attcaagcaattctcaggcctcagcctcccgagtagctggaattacaggcacctgccagc
-acacccctttttagaccacatagggtagcttccgactgttgccatggcatttgtgaattg
-tcatgtgctggtgggagtgtctcttagcatgctaatatattataattagcatatatatta
-taatgagcagtgaggaggaccagaggttgctttcatcaccatcttggttttggcgggatc
-tggccagcttctttactgcatcctgtttgttttatcaataaggtctttgtgacatgtacc
-ttgtgAAACCAGTCCTGCCTAAGGGAGCGGGGCTGGCGGTTGTTCAGAGTGAACAATTCA
-AAGTCAGGTCCTCCCTCTTGGAGCTCAGAGACTTGAAGAGCAAGGACCACTGTCAGGACA
-CAACCCCATTTGCAAGGCCGGGGACACACATACAGACCCACAGGCCATTGTAGAGAAAGT
-GTTAAAAGATGGAAGTCAAGCCACGGCCACTGGAAGTGGTGTGCCCTGAGAGGCAGAGGG
-TTCTCCCTAAGCCAGGGAAGGACAAGGCAGGGCAAGACAGAAACTGGGCCTGGGGCCAGG
-ATTCCTGAGCTGGGGCTAGATTTGCCCAAATCTAGGGCAGGGCTGACTGGGTCAAGCACA
-GCAGGGAGCCAGGGTGGGTCGATCCCCCTGCCACAGGCTTCACTCTTCTGGCTCTGGTTT
-CCAGGCAGTTCTAAAAGCCTCCCAGTggcccagtgcagtggctaacgcctgtattcccaa
-cgctttgagaggccttaggcgagcagatcacttaaggccaggagttcgagaccagcctga
-ccaacatgtcaaaaccccgtctctactaaaaatacaaaaattagccaagcgtggtggcag
-tgcctgtaatcccagctacttgggaggctgaggcaggagaacccaggaggtggaggttgc
-agtgagctgagattgtgccactgcactccagcctgggtgatagagcaagactgcatctca
-aataaaataaaataaaaaaaTCAAATCAAATAAAATGTCTCCCAGAATACACCACCCCAG
-CAAAATGGCAGGAGGGAGTGTCACCTGGGGACCTCCACTTTGGAGGTTTGAGTGGGCAGC
-TTTAAGCTGGAACAGTCACTCTTGCTGTGGGTTCTCAGGGCGGAGACTGAGCCCCCACCC
-TGCCTCCTCAAATGCATTTCCTCTCAGCTCCCACCTGCCAGCCCAGGAGAGAGGGAGGGC
-CATTCTGTCCTTTTCCTGCAGAGTCCCTTTGTTCAGTTGGTGACCAACATCCTGAAAAAC
-ATTCTCAGGAGATCAAAAAGAAGAACATTTTGGTCTATGTGGTAGGTTGGCCCAGTGCAC
-CACGCCCAGTGCAGGTCCCTCTTGAAACCACCTTTGGGAAATTATGACTGAgacaccacc
-tttgcaaaattatgactgagacaatgagagatctttttttttttcctttgagacagagtt
-tcgctcttgttgcccaggctggagtgcaatggtgtgttctcggctcactgcaacctccac
-ctcctgggtttaagcgattctcctgcctcagcctcccgagtagctgggattacaggcacg
-cgccaccatgcctggctaatttttgtatttttagtagagacaggtttctccgtgttggtc
-aggctggcctcgaactcccaacctcacacctgaggttgcctcagcctcccaaagtgctgg
-gattacaggcgtgagccaccacgcctggcccacagtaagaggtcgaacttaacctactct
-atcttgcttctaacctccaagctgtccttgttcattcctgggcataagctgaactaacct
-tgggagaaacttagtttatactttaaacagccctttcccaaagcagacctccttcttgcc
-tggggactaagctgcctttgtaggactaacattagccacaaaattagaaattttggttta
-ggagtcatgcagctggaggctacaagatcctgaccctccctaaactactcctgacatcag
-ggcttgagatatttttcagaccctgcacttgatggatcagctggcatcacccacgtcaat
-aaactggctcatctgatcttgtggcccccacccaggaattgattcagctcaggaagacag
-cttggactccctgtgatttcaaccctgaccaatcagcactcctggtgcactggcttctcc
-ccacccaccaagttatccttaaaaactcttctccccaaatgctcggagagacagatttga
-gtcataaaactccagtctcccacgcagctggctctgtgtgaattactctttctctattgc
-atttctcctgtcttgatgaatcggctcttgatgaataggcagcctgcaaggtgaacccct
-tgggcggttccaCTCTTTGCCCAGGGTGATGTTATTTCTCTCCAGGATGGCTGCAGCGGC
-TTCTGAGCCTGCTTGCATCTGGTGTGGTCCCTTTCAATGTCACGCAGGCCAAAGCAGCCC
-TCCATCTCTCCATGATCTTGGCTTCCAAGGTACTCTGTCTCTCTCTCTGGGTCGCCATAC
-TGGCTTCCATCAGGCCCTGGAATGCATCCTGCTGGTTCTATCCCTTGGCCTTCAAAAGTG
-CGGTTTCCTCCTGGAAGGCACCTTCTGCCTTACCTCACACTTCCTTCCCTCCTACCTGCC
-TTGAGATACCAGCTTGCAGGGGCATTCTTGGGAAAGCCGACCCCTTGGACTGAGTCTGGA
-GTTTTGATCTCTCTCTCTCttttttttttttttggagatggagtttcactcttgataccc
-aagctggaattcaatggcgtggtctcggcttaccacaacctctgcctcccaggttcaagt
-gattctcctgcctcagcctcccaagtagctgggattacaggcatgtaccaccatgcctgg
-ctaattttgtatttttagtaaagatggagtttctccatgttgatcaggctggtctcgaac
-tcccaacctcaggtgatctacctgccttggcctcccaaagtgctgggattacaggcatga
-gccaccgtgcctggccttttttttttttttttttttgagatggcatctcactttgtcacc
-caggctggagtgcagtggcaccatcatggctcactgcagcattgaactcctgggctccag
-caatcctcccacctcagcctcttgagtagctgggatcacaggcatgtgccaccatgccta
-gctaatttttgtatttttttttgtagagacagggtctcattatgttgcccaggctggtct
-caaactcctgggctcaagcaatcctcctgcctcaacctcccaaaatactgggattacacg
-tgtaaaccaccacatccagccCTGATCTCATTCTTCAGAGAATTTACCTAGCTGGTCACT
-TGGTGTCTGTAGGAGCATCGCCTCTCAGGCCTGCCTCAAAACTGCATTTCAGTTGGGAGT
-GGGGCGGGGGGAGGGAGAGTGTAGTTTGGGGACATCAAGCGTCTGTGGTGGATCTCCTCC
-CAAAGTGAGACTGCTTTTTAATGatatttattgagcacttactgtttgccactgcggtgc
-taagcactttgcacatactagctcagtgcatccttacagcaatcctgggagggaggtgct
-tttctcatccgcatgtgctgacaaggctgagAAGAGCTGGGTCTTGCACGGTACCTTAAG
-GGCTAAAGACCTGCAAGGATGGTGCATGAAAGCAAAACCAGAGAGGCGCCTTTTCCAAAT
-GCCAATGCGCCCTCCACCCAGTCCTTCACAAACCACATCAGCATGGATAGCACCACACTC
-CACAGGCTTTTCTGCATCTCCTTTGTGTGTGTGCACATGTGTAATTAATTCTGGGGCAAC
-TTCCTACATCAGTACAGAGAAACTCCTTGATCATTATCCACTCCAACATCCTTCCTGGGA
-GGGACTGACTGGAAACCCAAATGCCCTtgtaagggcaaatacaaaaactaaaataattct
-ccctggtgcagaaaaaggaaagaaacctcccgtttcctgttcttaaacactctagagcaa
-acactttagaaaacttctcaattatttctctgttcctttaagatgtgtctttttaaaagc
-caggtgagcctcctgccagttttacaagccagggatgttttcccaaggacctaggagcca
-tctctttggaaggtaaacatcaagattgcacccttctcatccagtctccatgggcagata
-ggagcctaacttcagtgcttggctccaagttgcaaaacaatccatcgtctatcataaaga
-tgtgagtttatattttctctggataaagacaattagctaacacagatggccactccaatt
-accaggtgaattcgggatgaaataagttgcaaattgtgttgtgcagtcatctgactcgag
-aactatttttttttttttgagacagagtctcgctctgttgtccagtctggagtacagtgg
-tacgatctcagctcgctgcaacctctgcctctcaggttcaaacaattctcctgcctcagc
-ttcccgagctgggattacaggcgtgcactaccacacctggctaatttttgtatttttagt
-agagatggggttttgccatgttggccaagctggtctcgaacttctgactttaagtgatct
-gcccaccttggcctcccaaagagttgggattacaagcatgagccaccaccccggccctag
-ttattatttgaggacatgtatgcaataggttatacctgcttggttatataggaggacgaa
-atgtatttctctttgtaatctcttttgtggattgcctgtgatgcccactgcagtctggtt
-taacgcttatttaataataaaactgttttctcttctacttttgtggaaaggttttctgga
-ttagATCTTTAATTTTGTCTCCAGCATCTTCaaatgtctttctacagagggttggttaaa
-taaatgtggcatctccacaaaagagaatactgcacagtcatggcaaaaaaacaaggagcc
-tgttttcgttgttgaatgaaaagtgcaaggtgcacaacagtttactactttttctgtaaa
-aaaagaggTCTGAGAAGGCTGTATTTGCCATTTGTATAATCTCTGGAAGGGTAAACAGCG
-ACTGATAAAAGTGCTCgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtTAAGAGAAAC
-TGGGCAGATGAGGGAGAGGAAAGGGATGAAAACCTTTCTCTGTACACCTTATATTTTCTG
-ATTTTTTGAAACACGTGACTGTATTACCTATTCACAGTAAGTTAACAGGGATGGGAAGCA
-TGGTGGTGGCAAGCAAACGAAACCTCTAAAAAGAAGTCCCAGGggccgggcgcagtggct
-aactcttatgatcttagcgctttgagaggccaaggtgggcagattgcctgaactcaggag
-ttcgagaccagcctgggcaacatggtgagacctcgtctctactgaaaatacaaaaaatat
-gccaggtgtggtagtgcgcacctgtagtcccagctactccggagactgagaggcaggaga
-gtcacttaaacctgggaggcagaggttgcagtgagccgggatcacaccactgcactccag
-cctgagcaacaggcaggactctgcttccaaaaaaaaaaaattagccaggtgtggtggtgg
-gcacctgtaatcctagctactcaggaggctgaggcaggagaatcacttgaacctgggagg
-cagaggttgcagtgacctgagattgcgccacggcactccagcctgggtgacagagcaaga
-ctccatctcaaaacaaaaaaaGCCCCAGAACCAGACATCCTTAAGCACTTGATTCTGTTC
-ATTTCTGAGCTCAGCCTTGAGCTTAGAACCAAGTGAAAACTAATTACACATTTTCGGAGT
-TCACATTAAACttcttctttttaaaattattatttttgagacagaatcttgctctgtcac
-ccaggctggagggcagtggcacgatctcagctcactgcagcctccacctctggggttcaa
-gcaattctcagtctcctgagtagctgggactacaagcatgtgccaccatgaccagcaatt
-ttttgtatttttagtagagatgggtttttgccatgttggccaggctgatctcaaactcct
-ggcctcaagtgatctgcccgccttggcctcccaaagtgctgggattacaggtgtgagcca
-ctgtgccATGCCTGAACTTCTCCTTTGAAGGAAGATCTGAGTGTAAAAGCAGGGAATGCC
-TTTATTTAAAAAAATGAAAAACAGAAACTAAAACAAAATAACAATCACCTCTGTTGCCTC
-CATTTGAGAGAATACTTCCAGGGGCTCTGCATGTCTGGTCCCCAACCTGGTCGGGGAGTT
-CACTTTCAGAGGCTCAGGGATGGGCCTTCCCCAGCCCCACCAGCAAATCATCTCTCCCGG
-CTTCCAGGAGGGTACTTACTCTCCAACTAGTGGGCTTTATGGGCCAGGAAGGATGACAGG
-AAGGGGTGTGTGGGGTACTACGTCCCTCCACACTGAGAATCCGAAAGCCAAGATGCCCAA
-GATTCTATCGTTATCTGCTTGTCTTGTAGAAGCCCCTCTGTGAGACTGAGGGGCAAAGGA
-GAGAGGGCAGGGGCGTGTCTCAACCCTTCTGGCCACTTCTAGGTTGTGCAGACTGCCACT
-CTTGTTACTACGATGGACTGTCAGATCAGCAGGTGGCCCAGGAGGGCTTGCTTGATGCGG
-GCTGCTTTTTCCTTTTGCCTCCGTGCCATGcctgtgaggtagttggtacttactggaatc
-cccactgcatgcatgaagaaacaggcacagagaagccaaatgactttcccaaggtcacac
-agcctgaagggacagccggctgtcccagctgtttcccttctaacacccttgggcctgcct
-ccagctagatgctgcAAATCAGTCCTCTCTTGAGAGTCAAAGCAAAGGAGATCTGAGCTG
-GTCGTCACAGGTAGTGTGACACAGAGTTGGGGATAGAGCCGCACCTTGCATTTCCAGGTG
-CCATCTTCCCCACAGTCCCCAGTGGGCACTTGCGTTCATGATTCAATTACTCAGGCTCTG
-TCTCTCTGTTCCTGCCCCTTGCTCTGTGACCTGGCCTCTCTGGACCCCAGTTCCGTCCGT
-GAGCGATGGGGGCGGGGTCGGCGGCCTGCCTAGGCTGGACAGTGCAGATTGCAGAAGTCC
-GCGGACGAGAAGAGCCGCAGCACGTTGACCAGAGGGAACATGAGCAGCGCTCCGAGCAGC
-GAGCCCAGCTGCACCGCCGCCCCGCACCACAAGAGGGCGCTGCGGCTGAGGTCGCGCAGG
-ACCACGCCCAGCATCACCTTGACGTAACTGAGGCAGCCGCTGAAAAGCACCCACGAGGCC
-ACCTGCGGGGCCGGGAGGGAAGAGGTGCAGAGTCACGGGGCTTGCGGGGCGAGCGCCGGA
-GCAAAGAACTCTCACAGGGCTCAGGGGAACCCACGGAATACTCTCTAGGTGCGAGGAGCG
-CCTTCTGGGAGTGAGCCTGCGGGGCCGACGGGTCCCATGAGTTGGCCGCCCGGGGGCGAA
-GGAGAATCCAGTGGCTTTTCTGGGTTCACGTGCCCATGATCAGGGCAAGGGCCCTTGAGA
-GAAGGCCCCTGCTGAGGTACACATGGTGGGAAGAGGCCTACCAGTCACCTCGATTCCCTA
-AGCCTCCACTCCCAAATGAGGAAGGGGCGCTTCCCCCACCTGGGGCTTCCCGGGAGGGTC
-CCACAGACCCCGCTCGCTGGAAAGGGCCGCGCCCAAGCTCTCCCAGGCCTTGGCTAGGGG
-TGAGGGGTACGCAGCGGGAGCAGCCCCACCGGCCGGATACTCACAATGAGGACTTCCCCA
-CCCCAGTGGCCCTGCAAGAGGGGGCAGGGGCTCATCACCGCCATGGCCATGTTGTAGCCC
-CCAAAGCAGGTCCCAAGCACGGAGAGGACCCCCAGGAACAGCAGAGACCTAGAGGAAAGT
-AGGGGAGGTGAGTGGAGGTGAGAAGCCTGACCTCTGACCCCCCCGCCCCACTGGGCGGCA
-TGTGGATGGCCAGTGTCTCCATAGTTAGTTTAGACCCATGTGGAAAATTCCAGGTTGCCT
-GGCTCAAGTGGGTCAGGGAGGCTCCTGAGCAGGCAGGGCTGGCCTGAGTCATCCCCAGCA
-TTAACGGCAGGGCCTGGCACCCCGgcaagaaaaacataatggactctggcaccggatggt
-cctggttcaaatcccagttctactgtttaagctgAGACTCGCCTCTGAGCCTCCAAATCG
-GAGTTTTGCAAGGCTGCATGACCTCCAGGAGCAGAGCATGCAGGCCTGGCGCCGCTGTGG
-GCCCACCTGGTGTTTACCTGCTGGCATTTCCTCCTGCAACACACCCTCAGCCTCAGCCAG
-GAAGCTGAGTTGAAGTGAAGATGGCTGGATCGGGCATTGGCACAGTAGGGTTTGCTGTGC
-CTCCTCAGGAGACCCCTCCCCTTCTGGCCTCAGCTACCTGCCTCTGCAATGTGGAGTGTG
-CTGATCTCCAGGGGTCCTGGCAGCTGGCTTGTTGCTGCTAGGAGCATCTCTCTACAGGTG
-GCCTTCCATGCAAACCTACATCTGGGACCACTGTCCTTCCTCACAGGTCCTTGTCCCTGG
-GGTCCCAATCTCTAGAACCCCAAGACTGGTCCACGCCCTGGGTAAGAACAGACAGAGGTC
-TGCCTATACCCTTAAAGACTCTTTCTGCTCCAAGATTCTTGGATTCCATGACTCAGATTC
-TGTAATTCTAACATTTGGGGTTTCTTGGATTTGCAGGTCTGAGCCTTTGGTCCTGCTTCC
-CTCAAATCCTCCATCCTCTTTCCAGTTTCTAGGTCCCAAGGTAGAAAATCCAGCTTCCTG
-GCAAGCTTTCTGTCAAGCTCTTCTGTCCTCACTGTCCTTCTTCTGGGCTGGGAGAGTGGG
-TGTAAGCAGGCCAGTGAGGACAGGCAGGCCAGCGTGGATACGAGGCTGTAGGACCCACCT
-CAAATGTCAAGATCCCAAGGTGGTAGTTCTCCTACAGGGGTCTGAAGCCCCTGCCTCAGA
-ACCGTCTGGTTTCCTTACTAAAAATTGAAATCCCAGGTCCCAGTCTAGGCTGGTTCAATC
-TGCATTTTATCAACTTGCCCAGCCATTCTTCTAGAACTGTGGCTCTAAGGGAACCAGCAG
-GAGGTTAGAGGCAGGAAGGCAGGGCCGAAATCCTGGGAATTAGACCAGGTCAAGCTCTTT
-CTCCAAGCCTCAGGGTTTCCCCTTATAAACGGGAACCTCAGTGGCTATCTGCTCCTCCTC
-ATGGACTGATGACaatgatggtcaacgcttaggctggacctgccacgtgccaggcaccgc
-tccaagagctttatagaatcagctcatatcatgcttccagcagtcctaggaggtggaatg
-ttacactcccattttccgataaatatccctgaggcacagagaactgaagtgacttgtctt
-acacacagctgacaggtggcagagctgggatttggaccagggtgctccccaaacatgttc
-ttaaccactaCATGTACAGCCCAGTAGGTGCGTTTGGAATTCTGGGTTCTGAAATGAAGT
-GTTCCCCCACTAGGATTCCCTAGGACCAGATGAGGGCACACCTGTTAGGCAGGAACATGG
-AGACCAACGAGGCAAGAGGGTTGGCCACAATGCTGAGGGTGGCAGCCAGGTGGTAGGCAA
-CTGGCCCATAGGACAGGCAGGAGTAGGTCTGCACAGAGGGCAGCATGCCGTTGGTGAGCG
-CGTTGACGAAGGCCACCAGGGTATAGATGAAGGCCAGGTGCGCCGGGCAGCAGGGGGCTG
-CTTTCTCCTCTAGATACCCCTGGCCCTGGCTGCTGTCCACCGTGCCTGCAGGGCCCAAGT
-CATTCTCTTCCCGCGGCCGGATGGAGTGGAGGGTGACCTGGTCATTGAGGAGGTCTTCCA
-CGGAAGCCTCCCAGCACCTGGGTTGACGCTGGAGGACAAAGAACGCCACGAGGCAGCAGG
-CCATCATGATGGATAGGAGGAGGAAGAAGACCAGGGGTGAGAAGTGGGCGGGAAGGTAGC
-GGCTCTCCAGGTGGGACAAGGGTGCTTCCATTCCGGGGAGGGCGGACACCAAAGCTCTGG
-GAACTCCCTGCAAAGGACAAGACAGATCCCTGGTCAGGGGAGGGGATCAGGCTGCAGAAC
-AACAATCATGACAGTGATAACAGAATACAGATCACCTGTTATTATTAATGGATAATGAAT
-AAATAAACATAACTAACAAGGTGGCAAtaatgactgctcatactgactgcccactgagca
-cgggcactgtgcatggataagcccctatgcctcctaacagggctgcacagtgggcaccat
-catcccccattttagagggaactgaggtatcagaatgcttcgtcccttacctgagggtca
-cagggagaatgtggcaaagccagactccacctggtgctttctgacttggaagctacacct
-tttatcaccccacAGCAGTGGCAACCACAAACATGTTCAGAGGAGGAGCTAGCTGGAGAC
-TGAGCAGTGGAGCCGCCCACCTAAGAGGAGAGCCCCCACCTAAGGGGAGAATCCCCCACC
-TAAGGGGAGAGCCCCCACCTAAGGGGAGAATCCCCCACCTAAGGGGAGAGCCCCCACCTA
-AGGAAGAACACTGCTCCACCCATCGTCTAGGAAATAAGGGCCTTcaggacatgccatccc
-aaaatatgactgtaggaggccagaatatgccaccccaaaattgacctattggcatatttt
-ttatttctagctggttattttgaaaaattgcaggctaaggagtagctctgaaaagttgcc
-attttgtaagataaatttacatctaaaggaaatttttattagtaaagctatcttatctgt
-accaagaaaaggtatctgtaccacgaaggggtatctgaaccaggaagagaaaggtgatgg
-cctttatcacccgaggaacttttatctgcataacagtgcaatgtttattcaccataagtt
-tcctcccttcactctcccataatttgtctccaccatcctgcagtagcctcaagcccctat
-tcccttttgtagctcaggatgctatagaagctgaaatcatctggcccttttttgagtctc
-atattttttggggactcccatgcgtatgtatgtaagtaattaaaatgagtttcctgctgt
-tgatctgccttatgtcagtttaactcataggccgaccaaagaacctagaaggatggaggt
-gagcagtttttccctcccctacaTTTGTGATAAAGCCAAGTGCTGAGATGGCTCCGGGTG
-ATGCTGGGTACCTGTGCGATGTCAGTCTCCCTCGTGGGTACAGGGCTTGGTACGCTGTCT
-GATATCTCAGTGACATTGACGCAGGTAGTGAGACCGGAGCCCTGGGCAAGAGCCACCAGG
-GCGGGCAAGAGGCCGCTGAGTCCTTCACCCACAAAGAAGGTGGTGAGGTAGTAGGTGGGC
-AGCCGGCTCATGAACGGCAGGAAGGTCACTGAAGAGGTGCAGTCCACCAGGGCCAGGAAG
-AAGGTGAGGACCAAGAAGGCGATGCTGTGGTGGCCGTCCAGCACCCAGGAGGTCATATTC
-CAGAGGAAGGCAAAGATGATGCAGGTGACGGTTCCCACGCCCAGCAGGGTGAAGATGATG
-GGCACTTCGGAAAGGCAGCTGGGCCGGAAGTGATGGAGCAGGGTGACCAGGAGGGGCCCG
-ATGTTGGCCAGCTGGATGACCACCGTGAGGTAGGAGGGCAGGTACCAGCCCTCGGGCAGC
-TCCATCACCAGCAGGGGCAGCTCTACCCAGAGCCCATTGATGGTCACCCAGGAGCCCATT
-CCGAAGACGCAGACCAGCAGGTGCATCAGGAAGGCCATGGCGGTATCTGCCCTGGGCCAG
-AGGCTTTCTCAGATCAGCCTGCAGCGGGGCTGGCAGAGAAGGACACCAGGTGAGTAATTC
-CAGCTTCACCACCTAGCAAGATGCTGGGACCTGGGGCCCAGAGTTTTCTCTTATTACTCC
-CCTTCCTGTGAACAAGCTGGCttttttttttttcctttgagacatagtttcactctttta
-gtccaggctggagtgcaatgggatgatctcggctcagtgaccctctgcctcctgggctca
-agtgattctcctgcctcagtttcccaaatagctgggattacaggtgcatgccaccatgcc
-agctaattttgtatttttagtggaaacagggtttccccacgttggtcaggctggtctcga
-actcctggcctcaggtgatccgcctgcctcggcctcccaaagtgctgggattacagtgtg
-agccaccacgcctggccCAAGCTGTCTTTTTATTAGCAGAAAACAAGAGAAGCCTTTCCT
-AACCGTGATTCATGAAAGAAAAGTTCAATCCGACACACAAAAGCaaacaaagcagcttct
-gcaaaagataccaacagcaaggtcaaaagttaaatgaaaacacggggaaaacatttgcca
-cataaatcacagacaaagggctcatcttccttgtcaggcctctgagcccaagcctgcgcg
-tgtacatccagatggcctgaagtaactgaagaatcacaaaagaagtgaaaatggccggtt
-cctgccttaactgatgatattaccttgtgaaattccttctcctggctcagaagctcccct
-actgagcaccttgtgacccccacccctgcccgccagggaacaaccccctttgactgtaat
-tttccactacctacccaaatcctataaaactgccccacccctatctcccttcgctgactc
-tcttttcggactcagcccgcctgcacccaggtgaaataaacagccttgttgctcacacaa
-agcctgtttgatggtctcttcacatggacgcgcgtgacattcctaatatataaagagttt
-ttaaaaatcaagaacaaagagaccccatatagaagagggccaaggatatgaacaattcag
-agaaaaaggtacaaataagctttaaacacatgaaaatattatcaccttcattcacaatag
-gaaaactactccaggtgccatttctcaccatgagattgtcccaaagcctgacaaaatgac
-tcatgttcaaggttattatagattgcgatcttgttggtaatagcaagttatgggaaattt
-tctcctgggtggctaccaacagagagggggctaattaaagggacctgctggaataccaca
-tacctgtttaaaggaataagaaataaggaaagcagatcttggtgactgataaggaaaggt
-ctccaggctataataataatcttgaaacaaaatcaaggcaggtaaatggaaccaggaaaa
-agtgtactgccttttggtcatagaagaggaggaaaaacaTGTTTTCTTTGCTTGTACTTG
-CACAAAGCAACCCTTGAAGGACACACAGGGACTGCAGGGATGTTGGTGATGCCTCTGTAT
-ATCttttttttttttcttgtgacagagtcttactctgtcaccaggctggagtgaagtggc
-acaatctcagctcactgcaacctctacctcccgggttcaagtgattctcctgcctcagcc
-tcccaagtagctgggactacaggcgcccaccactacgcccagctaattttttgtattttt
-attagagatggggtttctccgtgttagccaggatggtctcaatctcctgatcttgtgatc
-caccctcctcagcctcccaaagtgctgggattacaggcatgagccaccgctcctggccCT
-GCCTCTGTATATCTTTTAATAAGAGTTTTGATTTGTGAACCATGTAAACATATTACCTGA
-TGCAAATATATGGTTACCTGAAATAAGATTTCAATCTGGCTTTTTTTCCTCCTGAAATTA
-TATCACTCTCTACGTGGCCTTTGGAGACCACTTCCTCTAGCCCTCCAGAGCCATTCTGCC
-ATCTGTTTACCCCTTTGTCAGCTACCAGTGGCAGCCCACCTGTGCTGTTACTAACAACTT
-TCTTCTATCTATCCTTAGTCTGAGCAGTAATATGGGAGATGCCAGGAGTGAggctctgga
-gccagctgtttgagtttgaccctggctctgctgcttacaatctgggtgaccctgggcaag
-tggctttgcctctctctgcctcatctcctcatctgtaagtaggggatagtgatagtatga
-actccgtggtttgttgtgagatataaggatgctggtgagtttatgctgtttccaacagtc
-ccagcatagggtaagcacctctaagggttactgatcattATCGTGAAATGGCAGGTTTGG
-TGACATCGTTATTTTTGTCTAATTCACATGAGAATTAATACATGACTATGAAAATTTAAA
-AAAGGAAAAGATTCCCCTACTAGGTATCAAGTGAACTCACCAGTGGTATATGCACCTTTT
-TGTAGAGACACGCTAACTGGGCCAATCTTCACGTTTTGTAGATGGGAGACGAGGTCCGAA
-GGGGCAGAGGGGCTCTCCTGGGATCTGGACTGGATCCTCTGCAGCAAGCGGCCTGTCCGG
-GACTCCTCAGTTCACGCTGCAGTCTTTAACTCCATACTTCTTCCTTCTAGTACAAAGCAG
-GAGTGTCCGTTGTGGCCACGCCTCACCCAGGAAACTCCTGAATCCTGGCAGCTCCTCCCC
-ACGGTTCCCACACACGGAATTCCCTCACAGGGCTGGGACTTCCTTCCTCATACCTTCACT
-GAGCGAACCCAATGCTCAGTGGCCTTTCTGGTCACCTCCTTTTCCTCTCTGGGAGGAGCC
-ACTCCTGGGGTGTAACGCAGTCAGATCCCCTAGCAGTCCCGCTCTGCCCCCTCCCTTCTG
-GGGGCCTCAGACTCCATTCCCTCCCTTAGGAAGCTGACTTGACTAATAGCACAGGTGAGG
-CCCACTCCAGGCGTGCCAAGAGGACCCAAGGAGGGAGGGGAAGCTCCCAGACAGCAGTGG
-CACAcctttgcctgtgctgtcctcccagcctggagcaccagccccctctgctgtccacat
-ccaagctttctacaagactccgtcctccaggagacctctggctgcctcaccttctcaggc
-gtcctcaccagggcccatgaccccttcatttcaggttgttcttgtgtgggtgcatgcagg
-cacataccttgagactgaagctttttgagggcaggggctgCTTGGGAATCTGACATTTTG
-AAGGTGGAAGGGCCTTTCTCAATGACTTAGCTTAGGATTTGTAAATTGTTAACTCACTGG
-CCACTGCCAGACAGCAGATATATTACTTTGGTTTGCCCAGTGTGTTTAACAATTTGTTAC
-TGTAATCAGCAGTGGAGGGGATGGCAAGCAACCTTCAGCATTTCTGGCTTCTCAGGAATA
-TTTTGGAAGAAGTGGCCCCCCACTTTGGCCTCTTTCTCTGTTCTAGACTCGGGCCATCTT
-GGAGCTCTCCCCTGCGGTAACAtctggaaccagttgcctgggttcaaatcccagcttcaa
-cccttacaagctgagcaagtgacctaacctcctgtgcttcagagtcttctcttgcaaaac
-agctataggctgtcagtaccaacatcagaactgttgctaggaacatgcactaaagtgcta
-aaactgtgcctgccacatagtgagggctcaatgaaCCATCATTATAAGATTACTATTTCA
-GCAAACGTATCAGTTGCATTCAAAAACATGTAGTTATTggccaggcgcggtggctcacgt
-ctgtaatcctagcactttgggaggatgaggcgggcggatcccttgaggtcatgagtccga
-gactggcctggccaacatggcaaaaccccgtctctactaaaaatacaaaaattagcccag
-catggtggcgcacacctgtaatcccagctactcaggaggctgaggccggagaacggctcc
-aacctgggaggtggaggttgcagtgagccgagatcatgccactgcactccagcctgggca
-acagagcgagactccatcttaaaaaagaaaaaataaaaaaaaGGCGCAGtttttgttaga
-caaatggccactcaactaaaggactacatttcccagccttctttgtagctgcacatggcc
-atgtcatcaagcacaggccaatgaattcaaatgcgactttgagtagtctccttagcccgt
-ttcctgtttagaaaaaaaagtgcagctcgttgccagcactcatttaattttatgtaaacg
-tgctatttgaggctgaagcaaatctgattctgactgctgttttttttttttttcttttga
-gacagagtcttactgtgtagcccaggctggactacagtggcttgatctcggctcacagca
-acctccgcctcccgagttcaagcagttctcgtgcctcagtctccttagtagctgggatta
-caggcgtgcaccacaatgtccggctaattttttatatttcttagtagagacggggtttct
-ccatgttgccaggctggtctcgaactcctgggttcaagtgatccccacgcctcagcctcc
-cagagtgctgggattgcaggcgtgagccaccaagcccagccctaaatctgactgattttc
-aatgtgaaaataacatgtaaaaactgtttttgaagttatttctaaccagaactaacatca
-gactcatctatttcagaaaaactggattcatcaaacgaatctttggtcaacaactgttca
-agaacaatgttaacatcacacataggaatgctaggatttgctattttcagcgatcgagaa
-ttactttgttttgtaaatggaaataccacgactaaaaccagaatgctacaaatagagtga
-tgtcttttgtttccaaagtcaatatactagagcaaggcaaaaataataataaaagcgagg
-tattttgtggcaaagttatcttggggtaaacactgcagtcacaagtgggtattccttctg
-gcaaacagggaaagagttaacaataagggagtgtgcccttctgctcttcctccatttggc
-tgtctggaatcagatgtgatggccagaactccagcaacgattttgtgctatgaggcatgt
-ggtgggggttagatgcatactaggctcctttgggattttgtggcagagagcacccatacc
-agccctgttttgcctgtgttgaactgttttgtttgtttgtttaatgttgttgttaaattg
-taaaagaaacttctatgttgtttaagtcactcttattttATGTACAACAAAAGTACTCAG
-Aggctgggtgcagtggctcactcgtataattccagcactttgggaggctgatgttggcag
-atcacttgaggtcaggagttcaagaccagcctccaactggtcaacatggtaaaaccctgt
-ctttaccaaaaacacaaaaaattagccaggtatggtggtgggcacctgtaattctagcta
-ctcgggaggctgaagcaggagaattgcttgaactcgggatgtggaggttgtagtgagcca
-agagcacgccagtgcactctagcctcggcgacaaagcaagactcttgtctcaaaaaacta
-aaagaaacaaacagacaaaaaCTACTCCATACTAAGTGCACAGAGATACACATTCCAGGA
-TATATATTGAAAGATTATAGTAACCAAAAACTAATGAATACATTTATCTCCTTTACCACC
-TACTTTCTGACTCTGAAACTTAGGTCCTGTCCCAACCAGGATTTGATCAAAAATCAAAAT
-TTAACAAAAGTAGTTGTTTAGACCCTTGGGGGCAAATGTCTTGCAGAGATATGAAAAAAA
-AAAAAAAAAGGAGAAGAGAGAAAGAGGGAGGAACAGAGGAACACAGAACCCTCCATATAG
-CATTTGGTACCAAAAGTATAAATTGAGACCAAGAGTCATTTCATATATCAAAACTCTAAT
-TCATAAAGGAGTCAAAATTGTAGTGACTATCTGTATTCTGAATATTTCCTGAAATAGCCT
-CAGACATTCCAGGAGAAATGGACAGAAGCACAGTCCAGCAGTACAGGCCTGACTCACCCT
-TCCAGGTCAAGACAGCAGACGAAGGTGCAAAATAAACAAGGATATAGCAAAAGCAATAAA
-TGATATACCTAGTAAAGAGGGCTAAGTCAGTAGTTAAGGGGAGTAGGCGAATTTGCAGAT
-GATGGTGACCTTTGCCATATGAAAAGCTATTAAACTAATGAGAGTGTCCAGTTAAACATT
-TACAAACATCAGTAGCTTTCCCACAGAGGGCTGGATGGGGAGATGAGGGCAGACAGGGCA
-GAAGTAGCCTCACTTTCTTGTATGTTCGACAACTCCTAAGCTCTGAACGCCTAAATCCCT
-GCTCCCCACAAAGACGAATTCTCTGGTTTTGACCCAGGTGCTACCACGGCTGTGTCACTT
-GAGGGATGGGATTTGGCTCCGGGGGTCTGTTTCCTTGTCTGGAAACCAGGCACAGTGGGG
-GTGTGTCCCCACGTGACCCATCTGCCCTATGGCCCTGGCCCACTCCCAAATTATCTCCTT
-CCTCAAAAGTGAGGTGTGCTTTTGGACCTCGGGGACACAGTGAGGAACAGTCATTAATGT
-CAATGAAGGGGATGTCTTAGGCAGAGGGAACTACATGTGCAAAAAGGCCCCAGAGAAAAG
-GAGAGACTCAGAATGGCTGGTGTTCGGAATGTGTTGGGATACTTTTAAAAGATGCATATC
-TGTATtttctgttttttttttttttgttgttgttgtttgtttgtttattttACAGTGACC
-TTGCAGTTCTTatttattcattttaaccagtatttcttgggcaccaactgtgtgctcaac
-cacAATCCCTGCTCTCAGGAAGTTGGAGGAAGCATTCACGAAGCAGAATAAAAAACAGAA
-ACATAGAGCAGGTCAGATGGTGGCAAGGACTCCGGAGGAAAGCAAAGCTCCTGAATGGGG
-AATGTGCCGCTGTCAAGGAGAGgacatgaagggagtgtgggagtgagctgtctgcagaaa
-gcacggtccaggggagaaaacagcaagtgaaaaggccctggggtgcggccacacctgctc
-tgtcccagaagtggattttgctgttcaaaggacagctaggaggccagtgtggccgcagca
-gcgggagccaggttggaggggaggagacagggcaggtcccctgtggccctgtggtgacag
-cttgggtgttttctctagagcaaaaagctccgtgagtgggcagaagagaccagctctaat
-ctagtttttaacaggatcgtgctggctgttgtgaggagaaacatgaggcgccagggagga
-agcaggagtaaaccttcggagggttaggaagctgtagcaAAAGAGCTAACAATCACCATG
-ACAACAGTGACAACCATagctgccactcctcagctatttattgtgccagaccctgtgcta
-agctctttgaacacattacctgtcaaatcttgttccacaatcctgaggctggcattatga
-ttatctccattttacagatgaggaaactgaggtttaaaagggaaataaatttgcctaggg
-tcatacagctgggagctgagctttacatccaggcatgcttgactGTGGACCCAGCCCTGA
-GAAAGGCCTCAGGGTGAAGGGGTTCTGAAGGGGCCATGGGGGTCAAGCTGAGCAGGATCT
-CTTTCTGCTCACAGATGGCCTCCCAAGACTTGGGCCAGAGAAAGAGAGAAATGGGGTACA
-GGCTCAGGAGAAGCTGAGAGAGGCTCTGAGACATATCTGCTTCCCAAGGATCCAGGACCC
-CTTATGTGATCACCAGAGACCAGAAACCTAAGGCTTCGCATGAGACAGTTAAGATGCCCC
-ATAATGCGTGGGCGACAGATAGAGAAGCTAGAAGGATCAGTTCCAGGCAAAGGTTTCTCT
-TTTGCATTCTTGCATCAAAAGCTGTGAGCCCCCAGCCCAAGAAAGTGAAGAGAATTGGGA
-GTGGGGTTCTGACCAGGGCCAGTGCACCGTCATTGTGTGGGCTGGGCCATCTCCTCCAGG
-GAGCTCAGGCAGCTTCCATCCCACCCAATGTCCCCCGCCCCCCTCCACATTCTCCTGCCC
-TCTGTTTTCCTCCATCAAAGTATTACTGACACCAGCTCAGTTACGGGAGTTTATCTGTGT
-CTATCTGTTGAGCGCTGGTCTCTCCCATTGGAGTGTAATCTCCATGTGAGCGGGGGCTTG
-TCCTCTCCCCCAGTGCCCAGGTGACCATCTGGCTTGCCACGGGCTGGGCCACCTGAGCTC
-CTGGCACCATGGCTGGGTTCTCGCTCTGCAGGGATAATCTGCCAGCTGGTAGGCACCTAG
-CCCTGTGGGCCAGACTGGAGGAAACCCGCCTCAGCTATGAGGGTTGTGTTGGCCAGGGTG
-ACCCCTGGGGCAGTGCCAGGTGGCAGCCTGACACTGGATACATCTCACTCCTGGGCAAGG
-GTCTGAGCCAATTCTTTCCTGGGTTCCAGGCTCCTGGAGAACTTAGTGAGGCCTGTAGGC
-GTCTACTTAGGGCCTGGCCTCACCCTCATGAGAGTGGGTAGGAATGGACTGACTTTGAGC
-CCATGAAGAAGGGAGGCTGAGAGGTCAAACCACAAAACCCACagggagagatgggggaga
-tgaaggggagtgagagagaagagactgagacaaagagacagaaagaaccgaaagctagaa
-gcagaaatggggagaaaggacaacagaggcacagagacagggaaaaatgagaAGCTGCGG
-CTGAGAGGGAGGCAGGGAGGTGCCAGGAGGCAGGAGGCAGCTGGGGCGCTGGGAGCCTGG
-CCTCAGCCACCCTCACTGTTCACAGCCACATGTAGCAGAAGGCCATCTCTACCTCTTGTT
-GCTGGGACCTCAGAGTTCccctgaaactcatcccaactcaatgtccctattgcacaggtg
-gggaaaccaaggcccagagaggagatagtgcttccccgaACCCTGCCCCACCCCTGATCT
-CAGGCTGTGGCAGACattcaggcctgtgctcaccggctgtgcaacctcaggtcagctgct
-caccctctctaggccttggtttctccatctgtgaaagggTCTGGGAATGCCCAGCCTTTC
-TGGGCTCAGCAGACCAGGAAAAAGGGAATGAGATAACAGGCGCTCAGCCTGGCCAGTAGA
-AGCGGACAGTGAGTTCTCTTCCCCCTTCTCCTCCCTCCCAAGGCCAGGAAGGGCTTCAGG
-CCTCCCATGGGGCTGACCTTGGTGGAGCAGCCTCCCCCAGGCCAGTTCCCCTCCCCTCCA
-CGTCCATCCCAACTCCCAGCCTCCTTCCCAGGCTCCTGCGGCTTCAGCCTGGTCAAGTTG
-TTCCGAGATAGCATGGAGATGGCCCTGGGTAAAGTCAGTGGGGGCCCAGTCttttttttt
-tttttttttttttttaagacaggatgtcgctctgtcacccaggctgaagtgctgtggcat
-gatctgagctcactgcagcctcaaccttcctggctcatgcgattctcccacctcagcctc
-tgagtagctgggactattaacccatgccaccacgtccgacctgggtaatttttgtatttt
-ttgtatagatggagtttcgccacgttgcccaggctggtcttgaactccctgagctcaagc
-gattcacctgcctcagtctccagaagtgctgggattacaggcgtgagccatgacacccag
-cATGGGCCCAGCCTTTTGGTCTGGAGGCACCAGGGGTCTGGAATTCACCTGGATGGCTCA
-GCCTGTCCCGACTCCAACATGCCAGCTGAGGAGGAAACCTTTCTTCCCTCCTGTCCCTTT
-GATCTTTCACCTGGATGGCTCAGCCTGTCCTGACTCCACATGCCAGCTGAGGAGGAAACC
-TTTCTTCCCTCCTATCTCTTTGGACTCTCCCGACATGGCAGCCTGAAACTAGGGGAAAGG
-CCACGGGACACCTGCTGGCTCCAGATAAGTGCCCCTGCCATATCCTGGTCAGTGTCCCAT
-GCTCCTAGCTAGCAGGCAGCCTTGGTAGCTGCAGCTGCACCCTCACAGGCCTGAGCCGCC
-CCGCTTTGCCCACTTACCTGCTGGTCCAGTTCCCCAGCCGCTCTGCATGGGAGGGGCCAG
-AGGCAGCTCGTTTTGTATAAAGCTGTCCCCGCCCAGAGCTCGGGGAAAGGCAGGCGGAGG
-GTGGGTGTGGCTCCCGGCAAGACCAGGCGCCTACTATGTGTCTCTGATCTGCCCTACAGC
-CCAGCTAGGAGGAGGATCCAGATGGTAGAACTGTATAATAAAGGGCTTGCTTTATTGAGG
-CTCTCTGCCACCCAGATTTCATGAGGGTTGATCCCCAGTTGACAAAAGCTATGTGCAAAC
-AGTTGGTTCTGGCATCACCCTGAGATCTCCATAATTCCTTTCACACAGGAAGAGAGTTCC
-CTGGAGCAAAAACAGTTCAAATACTGgtgcttcagtaagtcatgtggaaagcggggataa
-taatagtgccctcttcataggACAGAAATCCTAACTGCCAGTGTGCACTGAgctgactca
-gtgtcaggcatgttcttggggcttgagagaaattaatgcatttaatcttcatggcctttt
-ggagagatgctattactatccctattttccagatgaagaaacaggcccagagaagtcgag
-agccttgtgtaggtcacacaccttgtatatggcagaactggTCTCTGATGCACACTGAGC
-TACCCTGACAAATACtgtaaccacctgaggggttctttctgcccactgcataaagaaaga
-ccatgaggctggccatgccacaggggaaatgagtttgttcccaaatcatcttcaaagctt
-gtaggtgaggggtttttcaaaggcagtataggggaagagttgggggtggccaggtaacag
-gtgcttgctgctgattggttggggtggagatgaaatcatagggggttgaagctgtgctcc
-tacaggctgaatcgcttttggggggggggccacaggagcagggttggcggtcctggtgga
-gacatcaggtttaggtggagccatgggtgtcaaatctgcaaaaaacctggaaagatggcg
-gggcgtggtgggtcatgcctgtaatcccagcactttgggaggccgaggcgggtggattac
-ctgaggtcaggaattcaggaccagcctgaccaaaatggcgaaaccctgtctccactaaaa
-atacaaaaattagccgggcatgatggcggacacctgtaatcccagctactggagagactg
-aggcaggagaattgcttgagcccgggaggcggaggttgcagtgagccgagatcgcgccgt
-tgcactccagcctggacaatagagcaagactctgtctcaataaaaCAAaaacaaacaaac
-aaacaaacaaaaaacaaaaaaaaaacaccaactggaaagatatctcaaaaggccaacctg
-caacagtggtgttatttgcaggagtaattggggaagttgcatatcttataacctccagaa
-taatggctggcaatcatttatgtctacaccttaggaggacccaggctcctcttctttccc
-cagcctgatggcctctcattaactttacaaaagtggttGCTCACAGTGCTACGGCCTGTA
-AGTGCAGGGCCAGGATGTGAATGCAGACTCAAATTGGTGCCTCCatggatgtaaaacata
-ttgcacagattctgacacctagtaaatgctcagtGCATATTGACTTCTACAAATAATTCT
-GGCCTGCCTGTTGTGTTATTTTCCAAGACATTCATTTACTTAACAAGCAATCAATCACTC
-TCCAGGCTAATGCTTGGGGCGAGAGGTGAGCAGGCACTAGGGAAGGGGCCAGACCCCTCG
-CTTAGCAGGCAGGTGTTCAGGAAGTGTTGCCACtgttggggctcaggacatacacacccc
-caaaatatgactctgggaaaccagaatgtgccacccccaaatacacctctttgacatact
-ttgagctggttattcagagaaactgcagacacaggagtagctctggaaagctattctttg
-gtaaaagaaatttacatctatcaaggaaatctacattagtaaaggtgcctgtatcaggaa
-aaaggctgctccagaagaattaccctagagactttcttttttttttttttttttaagata
-caatttcacttttttttgcccaggctggagtgcaatgctgcaatctcggctcactgcagc
-ctccgcctcccgggttcaagtgattctcctgccacagcctcccaagtaactgggattata
-ggcgcacgccaccatgcccagctaattttgtatttgtagtagagacaaggtttcaccatg
-ttggccaggctggtcccgaactcctgacctcaggtgatcttcttgcctctgcctcccaaa
-gtgctgggattacaggcttgagccactacactggccaccagacagacttttatctgcaca
-ggaagacaaccattatttaccatacaataattcttcccctcaccctcccataactgtgtc
-tccgccaatcccccaaagccctaagaccctattccttaaacttcaatcatctgacccttc
-tttgagtctcatattttgtgggatttccacgcacagatatgtaattaaatatggtttctc
-tcctgttactcagtttcatgtcaatttaattcatagcccagccaaagaaccatgaaaggt
-ggagggaagccatgtttcccttctctataGTACCAAATACTTTGGATCTGTtaaaaaaaa
-attgcaggactctaaatttatgatgccaagggagaagttaagccttgcagagtgTGAGTT
-ATGTGGCTTGCAGGATGGCCACTTTCTtcttctttttttttttttttgagacggagtctc
-actctgtcgcccaggctggagtgcagcggccaggctggtctcgaactcctgacctcaggt
-gatctgcctgccttggtctcccaaagtgctgggattacaggcatgagccactgtgcctgg
-cCAcaatttcatacttatctctgccaaatactataaggtgtcaaaatttggcatagaggg
-tacaaaactataactcaatccaaacagaataatctttgcttgtataattttttaataatg
-aaacatcaatattggtttaataaaggcagctatatcttgaactatttagttaaataccct
-aacttctaatcctgtggccttaggaagtctagtctacagacgtgaaggaagtttctttag
-ggaaaggacttatcatctttgatattaaagaaaagagaatttatataaaaataatcttat
-atggtaaattcttgttctaaagtaaatgaattggttgtttaaaaagaaggatgtttacaa
-cgagtcagaaagttgaggcatgtcagagattgtgtaaattgtaaaaattttataaaaggg
-aatttatgcaagaaatgttgtacagtttaaaagtgatgagggggccgggcacggtggctc
-acgcctgtaatcccagcactttgggaggccaacgcgggtggatcacctcaggtcaggagt
-tggagaccagcctggccaacaagatgaaaccctgtctctactaaaaatacaaaaaattgg
-ctgggcatggtggtgggtgcctgtaatcccagctactcgggaggctgaggcagaatagct
-tgaacccagaggcagaggttgcagtaagctgagattgcaccactgcactccaggctgggc
-gacaagagtgacattccatctaaagaaaacaaaaacaagagcgactaggcctcctgaatg
-ctttataaaatgccaccataactcttaactgtacaacttgcctgctttgtagctgggtaa
-gacctagcacacatggagttaaatgctggaataagtcagaccttatctgcacttctgtct
-aggtcctaggctctacatctagtacataattacaatctcaaactgactaacaaaagtaaa
-agttgctaaaagttaacagtgtaacatgtattgttccatagaaagaatctaagataagac
-tgtaaagctgaggctagccgtggaattgtaccattaaatacctatgagtttcctcttgag
-gttgcaagataacctagggttcccggcctctcagaaagggcattctttgcttaccacaga
-tcagaagccctatacagggactgtgtacacaaaatataaggccagtttccaagggctttc
-ttggcttcgtaaatcaagtttgattccttaaaggaaagcataccattccagtcaaggcct
-tggtaaaaaaaccagtttttccaattgtgtcctgttacaaaagaaaacagattcttatta
-cacttgtgcaaataactatatcgccataacttaagaatactcacagatagtttccaaatt
-ctggagaaaatcagggagagagaaacaagtatgctacaaattttgttcatgggagtatac
-taaattgttaaaagctgttaatagctcaaaagaaaaatttcgaggccggatgcagtggct
-catgcctgtaatcccagcactttgggaggccgaggcgggcggatcgcctgaggtcgggag
-ttagagaccagcctgaccaacatggagaaaccccatctctactaaaaatgcaaaattggc
-tgggtgtggtggtggcacatgcctgtaatcccagctactcaggaggctgaggcaggagaa
-tcgcttgaacccaggaggaggaggttgtggtgagccgagactgcaccattgcactctggc
-ctgggcaacaagagcgaaactccgtctaaaaataaaataaaataaagaaaagtttctttg
-actttgaaaagcaaaacaaagtattagcaatattttaagcaaaatatcaaaaagatcact
-ccagtctcctattagttcagttcgtgcagttaattcctgtcctgcttgatattaatgaac
-attttagctaagagtcctaaccatttttcctgtattctgatgtcacaatctccaaattta
-tcagaaacctgcattcaagaacacctgttagagctttatagctgagtataaaacccttct
-aaagaggatcaaaacaagacaacaattgtttatggatgaccaaaagttttagggtagcca
-tagttaaagacacaattgacaaggaaatctgttacttctgtggcacacaataattttaac
-ataacaattataattactactgataacacacactaagacatatcagaattataggagtct
-cccataactttggaacacataccaataacatatttatacaaatatggcccaaagaaagcc
-aaacattattttatatttgacaatgcttcctgtatgacttcataccaaataagccaaatt
-ttacctttatattagtgtgttattaatgttaaactcaattttaatgttttgatcataagg
-tcagattttcatggacccttttttttttttgagacagagtctcgctctgtcgtgggcgac
-agagtgcagtggagcaatcttggctcactgcaacctccacctcctgggttcaagctattc
-ttctgcctcagcctcctgagtagctgggactacaggtgcccaccaccatgcctggctaat
-tttttgtgtttttagtagagatggggtttcaccgtgttagccaggatggtcttcatctcc
-tgacctcgtgatccgcctgcctcggcctcccaaagtgctgggattacaggcgtgagccat
-tgcggctggcctatagaccatttttaaccctttataatttttgtcaaagagcaggttagt
-gctttaagaaaaacccattgtgcttttattttaatactcaatttacagaaaaactggatg
-atacacctttaactttagccaagatgtttacacacagtatttcctttacaattaaccttc
-caaaagttgcttaaaccttcatttttattttattcaacttaaaacaattctttaaccttt
-taatctaggtaaaaatccacattctcatgcctccttataatctttttaccaaaagtatat
-gtaaactgttttttcaatagtcttaaatacatgttacactgttaacttttTTTTTTAAGG
-CCTACGTAACAAATAATTATTCTTggctgggtgtggtggctcacgcctgtagtcccagca
-ctttgggaggccgaggcaggtagatcacctgaggtcaggagtttgagacaagccttgcca
-acatggcaaaaccctgtctctacaaaaatacaaaaattagctgggcgtggtggtgggtgc
-ttgcaatcccacctactcgggaggctgaggcaggagaatcacttgaacccgggaggcaga
-ggttgcggtgagcttagattgcaccactgcactccagcctgggtgacaagagcgagactc
-catctTGGGGGGGAaaaaatgggaaactggagagagaaaattacatttcagaaactataa
-cacacctgttattaaattccagtgttgcctaatgttgttcaatttttattactttaaatt
-aaattctaatttttctgactacgagtttccaaaataagctttgttttcttaaagccctat
-gaactgaaaactagacgtttcagcaggcactgcctctaaacgccccccagccatcacagg
-aggaaacctcttcactgctggagctgacaactaataactgagcgtgcctggaatcctttg
-cccccacatctaataagtccatggaacccagggtaattgagatggcatctcttacaagaa
-tcaacttctgggtcaggtgcggtggctcacgcctgtaatcccaacactttgggaggccaa
-ggtgagtggatcacttgaggtcaggagtctgagaccagcctggccaacatggtgaaaccc
-catctctaccaaaaatataaaaaagttagctgggcatggtggtgcatgcctgtaatccca
-gttattcgggaggctgaggcatgataatcacttgaacccaggaggtggaagttgtggtga
-gccgagatcgcgccattgcactccagactggcgacagagcgagactccatcttaaaaaac
-gaaacaaaacaaaaaaacaggaatcaacatctggatacattacactcgagtcaaagcctg
-gaaagctgaggaagcaacccctgatagccaaaggaacatcctaaatatcagtgtaaagaa
-ataggaaattttaagctcataaaaggtaagtaactgagtgagaactacttatcttactca
-gtctcacccctacctcaccaaatacttttagatgttcctacctctccttttaagacaaat
-attaaaactttttaatggaaattattcactacaccaccattgtgggaactgctttacaca
-ctctattatttgcagtgggactatgtactacagcaccctcaggatggaatatcagacaga
-gaatctcaattatggtaccattttgcttaattattatcctcatagcaggaataacagtta
-ctaacagcaaataacacatgggcctttccagacatgtgcctctgcctgtcattgggtgag
-gaatgttgtttctatatcaaccaattaggcctagtaagaggtgctgttgaaaaacttaag
-gaaagggctataccaaaacaaccaaatagattcttggtttaggaacaaaatcatagcatg
-ggtcatcccattcctgggacctttcctaataatatgcctaggactaatgttcttaccctg
-cctaattaacctttttcaaagatttttaactgacaggatcatggccatttcacagacaac
-tacccaaaaacatccacagacagcgttactgctacagttaatccaagaccagaaaactct
-gtcccctcatcagcaggaagtagccagaaagaacaccctgcctttcatcctttttataac
-tataaggtctggattgacagagcaggagcattgccatcttggacaagcactgccattcta
-aagttccccttgatcaaaaaccacctaaatccaaagggcatcagcctaatggctaaggtc
-agcatgaccataaaccacaaatgacatctctgaccagaaacattccaaccataagttaaa
-gccctccccgaccagagacgtgccagccccaagataacctcccctccaggtggagagatg
-tcagccccaagataccgtcccttccaaccagagacattccaaccctcaatagacttctcc
-cctacacaggaacattccaagcctgtgataagctctcttacccagaaaccagtaaatacc
-cttagtatgtaagagagagcattcctgactgaaattggacagaggcccctctcaggttta
-ttcttcaaaataaacctgtctttgactgttgagcctcttttcatgtttctttcctctttc
-ttgaactcttacaACACCTTTGTTAGGCGCAAATtttcagtgctgcaaaagaaatagcac
-tcgaacataaatttaattttctcagcaaggcaattttacttctatagaagggtgtgactt
-gtggatggaacaatggtgagagcacacctgaacaagggaggggaaggggtttttattcct
-gatgcaggtagcccctactgctgtgtggttcccctgttgactaggattggaccacacagt
-ctaagctaattccgattggctgttttaaagagagcaggggtacgagtcggagtagcggag
-tgagtagtttggcgggaaggacagttaggaacaggtgactaaaggtgactcaggtcagtg
-caggtgaccaggggtgactcaagaaggagcaggtgatcaggggaatagatgtgaactact
-gattagaactggtggaaaaggttgtttactgaaactaggggcaaggaggcaaagagaatg
-agaaagttaaactttaaaatggagaacaaagaacaggggacctgaatatactcatacatt
-ggttccttggagaggatctcagaactcattgtacttaacaATTTACAGGCTGAAACATTT
-GAAAAGGAATTTGTTATATCCTACAatttccccctttcaattttcatagtacttcctctt
-caaactttttaaacatgtcttggcttagctgctcgacttaatcctctaaaagaaaaagct
-tatctgaataaggtggaggtgagttaaggaagattttagtaagtgctgcttttataagtc
-tttgcactagcccacagatgcatggtatgacataacacctaacaagaatgagtacagcta
-ttacggctgcaagagaagtaagaattgaggctgtgatttctttccatttactgaaccccc
-tttctagccaccctgagaaagggttatcgactccagaattttagctagttcattggatag
-agtggtaagtctttataaggcccttgttatgttcccagtgtgggcagtgttatttgggat
-aaaggtacaacactgagttttaatcataatacaaacaccactttttctgctaatatcata
-tctggtgccattctgttttcccaggccatctggctagtgggccccaattgttctgctatc
-cctttgacagcatccctggtgtaattaataaactgctgctgattataatagatgtaattt
-atccagtctacatttttattaatcgtcacccatgaaaatattgacttaaatcctgcagct
-atttgatctcgggctttaaattcatctggtactcctagtggaactccagtaatgtttata
-taaacatgggggtcaaacgactcatgtaaggcacttcttttacaattttcttttttatca
-tgttgacggaatgctagagtgaaagggatggccaattggactagagcacgagtgctgctc
-taattgcttggcagagtatccagcaatagtgcccctcaatgccaccacacacctgctcag
-ggatgaacaagggcagactgatgggtaagctcttgaaaaggcttggtttcaccgcaccct
-gttaagtctccaaggaatgctaacttttccccctgccgtgaaagggacaggtgaacttaa
-catcaggggctggaggctggatggccctccgggctgacccacagggctcttgacctcggg
-gaagagcagtgaaagcgaacagcagtgaaagagttttgcctgactcattgccccggctgt
-ggggttctggaagagagctaccatacagctcatgccctgtccatgagaggaccactcgag
-gggaaaggggacaatttgggtctctggcctgcctgtcgcacaagcagtcacttttgttta
-gcatgcgaacagaatatttaatccatttcagccaagcatttacatcctggtactctgttt
-caattgctatagtttgttttaaatctataacttctacaacagctactttggttttatcat
-tgggtatataacgaaagaagatctggttagtggagaacttaggagtgggagaagggggtg
-caggagttgaggaggcaatgaagcacatttcaaaggatcctctggggtccttccctgaga
-cttctgctcctataccatagaaacggtactctggggagcagaggtggtaatctgtactgg
-attacattggttcatctgacaatggggtggtccatccttgctccttggtagtccataagc
-cattagaccagctaaaagttctgttctaggagggcaagattcctagttcatactgggacc
-atcatcaatatcttcccagactaactgatcccagttaacagattttcagtctgaggagag
-ccaggaaggacaaagatacttttctgaaggggagagttgcctctggtttggcagatctcc
-acaggtcatcccaaggcaagcatcaaaagtaatagtttggggcgaacttgttacataaag
-aacgagaagactagcaatagaaggggaaaagaaagagatggaatgtaagaggatcaaacc
-cgttttagctttagcttggttggagttggccctggaatagctgtccatgattctggaggg
-ggtggtgctcttttgacctaggtgtgatgagtccatcctctttctgctgtttgaactgtg
-gtctcggtggttagaagcaacaggtagggtccttcccaagccagttcgagtttcccttcc
-ctccaacttttgacaaggacacagtccttaagctgatgttggtgtactggaaactgtagg
-ggtggtacctgttctaaaagacctttagttctgagggaagagaaagtggaaaataaacca
-agtatataatttctgagaaactcatcttttgttttgaacataggaatgtcagcagtggag
-tgtaaacagggcaacctacacaacatttcataaggggataagccaacatctctctgagga
-gcagttcagactctcaagagggcaatgggagagcatctatccatggcaaccgagtctcta
-agactaatttggttaggtggccttttttttttttttttttttttttttgagagggagtct
-cgctctgtcgcccaggctggagtgcaatggtgccatctgagctcactgcaacctccacct
-cccgggttcaagtgattcttctgcctcagcctccctagtagctgggactacaggcacgcg
-ccaccatgcctggctaatttttgtatttttagtagagatggggtttcaccatattggcca
-ggctggtctcgaactcctgacctcgtgatccacccgccttggcctcccaaagggcttttt
-ttttttttttttgacagggtctctctccgtagcccaggctggagcgcagtggcgcgatct
-cggctcactgcaagcaccgcctcccgggttcacgccattctcctgccaaagggctttttt
-aaaaaatagtttggttcattctttccactcttcttgatgaaggtaggtgccagggagtat
-gatattcccatgttatatccagtatctgggctaatttcttaatgacatgtacagtgaaat
-gagtcttattatctgaatcaatgttttctattaatctaaacttgagtataagattttcaa
-ctaatgccctgtctatgttattatcagttgtacttgaaaaggaaatagcttctatccaat
-gagtaaggtgatctactatactaataaatacttcagatgatcagttggaggcatctctgt
-gtagtcagtctggatactttggaatggccttaagcctggactccttcccccaaggggtaa
-tgttttactaaacaactgtctgtaacctgtttggccagggtataaatcctatgcacccat
-aaactctgatgaatgtgtcacacgaggcttggggcctccaatgggtcctttaatgcagtt
-ggaataagacttccctcataaggggtttggataacatttctctctggtctagcaatatcc
-attttccttctgaattctctttagcacctatttttattagtttttaaaccaaagaaagcc
-aaacaccattttatatttgataatgcttcctgtgtgattttataccagataagctaaatt
-tcacctttatattagtgtgctattaatgttaaactcaattttaataaaatcttgtagaca
-tatttattcaattttaatgtctgaccataaggtaaaattgttatagactctttctaacgc
-ttcataatttttgttaaagagcaggttagtactttaagaaaaacctgttgtgcttttatt
-ttaatgtccagttcacagaaaaactggatgacacccctttaactttagccaatatgttta
-cacacagaaattcctttacaattaacatttcaaaacttgcttaaaccttcaaaacaattt
-tttaaccttttaatgtaggtaaaaatccacattcttatgccttcttataatccttttacc
-aaaagtatattttactttccttacacgccttgaacataaactgtttcttcaatagtttta
-cattcaggaggcctaattacttttaaattatacaacatttcttgcataaattccctttta
-taacattttccacgactttcacagaccatctttgacatgacttaaatttctgacttgtga
-acattcctttctttaaacaaccagttaatttattttaggatgagaatttaccgtataaga
-ttctttttacataaattctccTTTTTTCTTAATGTcaaagatgataattgttttttccca
-aagcaaacttccctcatgtctgtggactagactgcctaaggccacaagattagaagttag
-gataatacatgttacactgttaacttttagcaaattttacttctgttgaaaaccttgtaa
-gtttggaattttaattaaaggaaggcttttttggtgtccggggacatggacaatagttat
-ttttttggcaactgaaggttatttaatacttgggtgattaattcctcgtggaccgggtct
-tgacctttgctattaataagacctggttcagtccaaatttttccacatgcatgagccact
-ccaaaggcacactgaaaattggtatagatggttccttcctggttctgtaagtactttaag
-gcttggctgagtgcaaacagctcacacgtttgagcagaccaattattaggcaattttcct
-aactctatctctacACCTTTAACCATTGTTCCCTATTTCTCATTCAAACTTGGACATAAC
-GGTATgtgaaaaagagcctcttgtgactgttacctctttacaatggaatgttaagcaacc
-cctcagaaagtagggagtagcaaatcaaatctttgtaactacatttcagcctttgccggt
-tgaaatgtcagagccccggcatcagaaagtggtcaactcaagggctgataagaagaattt
-accaacaacagtataggtttgaaaagtaaagttttattagaaagaaagaacattgcagaa
-gagtgcagcgaggtgcctcagcaagaggggactgagagggctgtggtggatattccttag
-gcgcatatatgaaccttaaggcaaaagcttgagggtaatttggagcatactagccacgta
-ggttatgataaatggttacatttgtagttattttggtgccttaatgtcagcaaggattgc
-acagtgagtttcgcatagaaattctggttactacaaaatttttgaaagacccctggaacc
-agatgccaactttagatatgtcgatgaagagtcaaactctgtaaaatatttgaagagatt
-tattttgggcgaaatacgagtgaccatggcccatgacacagcacttaggagatcctgaga
-acatgtgcccaaggtggttcgggcgcagcttggttttatacattttagagaggcacgagg
-catcaatcaaatacatttaagaaacacattggtttggtccagaaaggtgggacaactcaa
-agtgggaacttccagactataggtaaatttaaacattttctggttgacaattggttgaat
-ttgtctaaagacctgggatcaataggagggaaatgtttaggttaagataaaacattgtgg
-agaccaaggttcttttgaagtcttatagtggctgtccttagagacaatagatgacaaatg
-tttcctattcagacttttaaaagctgctagactcaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaggctgccagactcttagttaatctcagagggcctggaagaaaaagatctagctatat
-taatagagattatttacagatgcagatttccccccacaaaggacagctttgcagggccat
-ttcaagatatggcaaagaaacatgtttttgggtaaaatatttttgctttcttctttgtca
-cataatgttatgccagagtcagattggaaagcaagtcagatatataggtttaaataaaac
-ccatctgatgagaatttatggtttgtagggcatgactccccagaccccttagataggaat
-ttcagcaaaataaaaagatcagagcttagtcctcataatcaagaaataaccataaaaatg
-ggcaaccctatggagtagccattcttttattcctttactttactaataaattttcttttg
-ctttgcactgtgaacttgccctggattctttcttgtgtgagatccaagaaccctcttgtg
-gggtctggattgggacccctttccggtaacGATTAtacttctaaattcctcagataagga
-gtttttgtctcgggctgcttcagggtcaccaggtgatttttgctctcctcaCCCCTTTGT
-TCAGCTTCTCTGTTTTTGCCTATGTACACAACTCTCAGATTTGGCCACtggggagagcaa
-agttatacctggtgaccatcaagcagaccattcagagacaaaactccttatcagaactcc
-ttattcagaagcaattagacttccctattatctaaagcaggcatctcattccaggcttct
-ttcccccaaatttataagtaactagaatttctatgcatctctggaatgcatgcatatcaa
-aactcacggtgcTgaaaatttgcatctgtaaagaatctctattaacatagctggatcttt
-ttcttccaggccctcccaatcctgaagagattaactaagagtctaacaccttttgatggt
-ctgaataggaaacatttgccatctgttgtctctaagggcagcgaacataagacttcaaaa
-gaaccttggtctccacaatcttttatcataacctgaacatGAGTCTCTTGCTGATATTAA
-GGCATTGAAACCACCTTTGCAAAATTATTACAGACAGcatcattgcaggaatccaggaca
-ctggagtagaggatgttccatacctttgggttacaagccacccccaggaccttgtcctca
-ttgcaaacaagagggtcattgtgatatggaaggggggcaggggagtgctgggtacagaaa
-tgcagggttcctggtgagggctccacccttgggcctgtgcccacagacctaagtaagaac
-aggcactcctgttttcatgcctgaatgttgtattttccaagaccactctggcccaccaca
-tccccttcctgtgtccataTtgttaaatatgaattctaaatttctcttcaaagaattaat
-atgtcagtatgttcaattctttgacttctgcttttaaatttaacttcctcgtaaagcaac
-ctttttcgattacctgctccaccctgactcattccgattacctgctccaccctgactctt
-gcaggttacttgctacctgctccaccctgactaattattctccaccctgcataaccattt
-ttttttcccgccaaagcactcatcctgtcacactctttaaatctgccaattggaattagt
-ttagcctgtgcagtctaaccctagccaataggggaacgacacagcagcaggagccttgtg
-cattagggataagaacccctttccctcccttgtccaggtgtacactcaccattgctctac
-ctgtgagggtgcacccttctatagaagtaccttgccttgctgagaattaaaaagaaaatt
-ttatattcgagtgctatttcttttgcggcactgaaactttatatgtaacaatttgggggc
-tcgccctgattacatttccctctggggcagtctctggttctctcttgtgaggagcgctcc
-gccccctgtggcggcctcagccgggagaaatcagaacccacccagtgcgaggaacaaccc
-gagctgtcagcaacaggggggaagaaaactggccggcaacctagcttaaagaatcctcac
-atactgcagcgacgactctgcgcacagagcaaggaaggagaagccgcgggagctggtaaa
-gtatttccttggtggtcgggaccaaggtaagaaagccacgggggtggtgggcggtgaagt
-actccttggtcagggtggcttagaggttaaaaagaggtgagacatccccattggcggaga
-ttgaacctcacacaaacctccagtagtagaaaaggcaagaaatttccagtggggaaattg
-agcctcaccccaaaaggtaagaaatttccagtaagggaaagtgaaccttgaaccttatcc
-caaaaccatcaagatgggaaatatcccaagcaagacagggagcaagggggataaacatgg
-taacaaagatatccctccagatggccccctaggtctcatgctaaaacactggaaggataa
-tgaaaggatacacataggaaaaagcaacaaatggtaaaatattgctgttttatttggagt
-cagggacccatcctcagtccctcaatcttctggtcaaagtttgggtcaaatgagaatgta
-atgtgtcagcttctaatccgatacgttaatgataaaagtccagtgtctcaagaagaacta
-ggctatgccctttgttggaggcaaggacctgccctcctatttctcttaaaaataaatagg
-gaagaacccaatctggcacctcaaaatgaaaagtcagaggagccagctctcatgcctaaa
-gactccagtgctgcatggtatcccctagaccatcttcccccactcagtgtccccaaactt
-tcccctcagacagccactgccacctcagatcaccactgccacctcagatcctgttccaaa
-ttccccctctactcacgctatccctcctccttataaccctgactgttgggaattaccatc
-ccaccagcctgttctctcccaacctaaagacccctctctaaaaagactccagcgtgaggt
-agaacaatgtaaaaaagatattcagaatttcctatttccctccgtacctaagaggtcagc
-ccctaccctcttccctttgaaagaggtaccacaagttgggggcgggggggggggcattga
-ctttgtaaatgctcccttaatcagttcagaagtccagaattttacaaaggagcttaaact
-gctgctggacgacccttacagagtggcagaccaaattgaccaattcttagaacctcagtt
-atacacttgggtcaagttaatgtccatcttgggcatcctcttttcagggtaagaaaggag
-tatgattcttaggtctgctatggtagtttgggaatgtgagcaccctcccaatgaaaacgt
-tcctaccacggaccagaaattccccgcccaggaccccccatgggaaaataacaatgcaga
-tcaccgggaaaatatgcaggacctaagggagataataaaaggaattcaggaatcagtacc
-ctgaacccaaaatctttctaaagcatttgatatacaacaggaaaaagatgaagggcctat
-gagattcctagacagactgagggagcaaatgaggcaatatgcaggcctcaatttggatga
-tccccttgggcaaggaatgttgaaactccaatttttcactaaaagttggccagacatttg
-aaaaaaaaagttacaaaagatagacaattgggaagaccatcccttaagtgagcttctcag
-ggaagctcagaaagtgtatgtgaaaagggacaaagtaaaacgaaacaaaagacaaaactt
-atgtttttcaccttccaacagatggctccaaacccaggtacttctagatagagtttccag
-ggagccagaaactataaagggtccgaatcctcttttaaagaaccccagcctccatctgga
-ggaccagggtccttgtctaccaagccccctaaagagtatgggggagaagggttaaagaat
-cccagaactaaggggaggaaggacaaaataggtgctatagatgtggaagagcagaccact
-tcaggagaggatgttctgaactaagaaaggagaaagaagccctttcactcatgactttca
-aggaagaatagcggggtcaggggctctgtctcttttatcttgagtcccaccaggagccct
-tgataaatttgggggtgggacctaaacatgagcttatcacctttttagttgattcggggg
-ctgctcgctcctctgtttccccccatctaatgttgtctccttcttagaggaacttttagt
-ctccagggtaaaaggtgtaggattaagagcaaaaattttagaaagcactgaagttagata
-ccaggatcgctcagcttatattcagttcttgtttatccctgaagcaggaactaatttact
-ggggaggaatttaatgttaaagttgggcataggtctacaagtcagcccaagaggattcct
-cacctcattaaacctactcaccaccgcagatgaaaaatatattaatcctcatgtcttgac
-caaagaaggaaaccaagggaaactctaagtccctccgatccacatcaagctaaaaaaccc
-aggggaagtagtaagaaggaagcaataccctattcccctagaaggtaggatagtgttgaa
-acctataattgaaggccttatttaggatgggcttcttgagccctgtatgtctccttataa
-catcccaatcaagaatcaagaaatcaagactgctaccagccagtcaagaaattagatggg
-tcataccagctagtacaggaccttagagctatcaaccaaatagtccagagtacccaccct
-gttgtcaccaatccttacaccattcttagcaagattccatataatcatcaatggtttact
-ataataaatttgaaggatgctttttgggcatgtcccctggctgaagatagctgagatata
-tttgcttttgagtgggaggatccatactcagggtggaaacaacaatatcgatggaccgtc
-ttgccccaagggttcacagactcccctaaactttttggccaaattttagaagaagtacta
-gaaaaagttgtcatcccagaacaaatatgccttcttcagtacctggatgacattcttata
-tctggtgaagatctagagaaggtaactgacttctctacacatattcttaaccatctgcag
-tttgaggggctatgagtctcaaaaagaaagcttcagtatgtagagcctgaagttaaatat
-ttaggccacttaataagtgtaggcaagcgaataatagggcctgaatgaattgagggaatc
-gtgtccctacccttgcctcaaactaaacaagaactcaggaaatttttagggtcagtcaga
-cactgtcgctaatggattgactcatatacactgccccgtaaactgttctatcaaaaactt
-gcccaggagaagcctaaccgtctcctgtggacttctgaggaagttgatcaaatcgagagg
-ttggaggaaaggctcataactgcccctgttttaggcttaccctccctagaaaagccattc
-cacctttttgctaatgtggacagtagggtaccttcgggagtgctgactcaagaacacaga
-ggccgccagcagcccgtagccttcccatcaaaggtcttagacccagtcacttgtggatgg
-cctcaacgcatccagtccatcgctgctatggcaatactaggtgaggaaagcagaaaatta
-accttcggaggaaaattgacattaaacacgcctcaccaagttagaactatcttaaaccag
-agagcagtgagatggcttactgacttgagaatcttaaagtgtgaggccattctgttagaa
-aaggatgatttaacattgaccactgataattcactcaacccagcaggtttcctaacaggg
-aatccacatctaaggagggaacacacatgtttagatttaattgattaccatacaaaggtt
-tgaccagacctgggagaaacccccttctggactggacggcacttactcatagatggttcc
-tcccaggtgattgagggaaaaagacacaatgggtattcagtgattgttggagaaactctt
-gtagaaataaagtcaggaaaattgcccaacagttgatctgctcaaacgtgtgagctgttt
-gcactcagccaagccttaaagtacttacagaaccacatctatacagattccaggtatgcc
-tttggagtggcccatacatttgggaaaatttggactgaacgaggtctcattaatagtaaa
-ggtcaagaccttgttcacaaggagctgttcacccaagcattgaataatcttcagttgccg
-gaagaaatagctattgtccatgttcccggacaccagaaaagcctttcttttgaaagttga
-ggaaataacctagcagatcaggtagccaagcaggctgctgtgtcttctgaaatgcgtgtt
-tttcacttaactccctacctccctcctcctaccataatccccattttctcttccaccgaa
-aaagagaaactaataaaaataggtgctaaagagaattcagaaggaaagtagatactgcca
-gaccagagagaaatgttgtctaaaccctttatgagggaagtcgtatcccaactacatcag
-gggacccattttgggccccaggccatgtgtgacgcagttctcagagtttatggttgtata
-ggaatttataccctggcaaaacaggttacagatagttgcttagtatgtaagaaaactaat
-agacatactataaaatgattacctctcaggggaaggaatccaggctaaaggccattccaa
-agtatctaagttgattacacagaaatgcctctgatagatcatctaaaatatttactagtg
-atagtaggccacctcactccctgggtcgaagctatccccttttcaaatgcaacagccagt
-aatgtagttgaggccctaattgaaaatatagtacccaggtttcgactaacggaaaatact
-gactcagacaatggaactcatttcaccacacacattattaaaaagctattccaaaatatt
-agacattagatgggaacaccatactccctggcacccaccctcatcagggagagtagaaag
-aatgaattagactctaaagaaccacttaaccaaattagtcttacagacttggttgccatg
-gaccaagtatcttcctatcaccctgctgagaatttgaactgcaccatggaaagacattgg
-tctttctccttatgagatgctctatggattaccttatttgcactccactgttgatattcc
-tacctttgaaacaaatgatcaattccttaaaaattatatacttggtctatgttctacttt
-ctcctctcttaaaactaaaggtctattagcacaggcaccacccttggagttcctggtgca
-tcaacattagcctggggatcacgtcctcatcaagagctggaaagaggagaagcttgagcc
-agcctgggaaggtccttacttggtgctcctaactactgaaaccgcagtccgcacagcaga
-gagaggatggactcaccacacccaagtcaagaaagcaccgccccctccagagtcgtgggc
-catagtcccaggggaaaaccctactaaactaaagctaagaagaatttaactccctttcat
-ctattctattactcttttttctttcctcactctattgctgaccatatagttattaacata
-accaagtcaatttcacctcaactattgcatttgatgcttgccttgttatatcctgtgggg
-atttgtcaagccaaagaaagctctctacttcagatacctctgtccctcctggctctcctc
-agactaggcattagtgaatcgggaccatttaatctggggagatttctataaagatcccag
-tggcaaccaggagtcttcccccagtgatgtagagcttttaagccatagttggtccaaagt
-tctgtggaccattaaagagcaaggatggattgccccaaccagtttttgtaatttcctaaa
-ttcatacattcgttttactaaagggacagtgcccactaactctcagctaaaccagtgcaa
-ccctatacaggttattattttgagcccacaaaattcttcctcttttctaagctggttccc
-ttctttaagccagttttatggtatgggggctgaagtttcagggacagaccctattggatt
-ctttgaaatgcacttctttgatcccctgctgtctgcacctgcctctgagcctttttccaa
-aacctctcacaacggaaccattgttcctcctctatctaacgacaaggccaagatagcgat
-ggtagaagttaaagacttaaaacaaactggcaattgagacaggataccaagatgtaaatg
-tttggttggaatggatcaaatatttcatccacacgttaaacaaaagcaattgttatgctt
-gtgcgcacagcaggccagaggcccagattgtcccctttccactagggtggtcctccagtt
-gaccgggcatgggctgcatggtagctcttttccaggattctatagcctggggtaagaagt
-tgtgccaagctctctctctgctatatcccgaagtttgacaccttgtgggtcagcccccaa
-gggccatccagcttccatctcccaacactaagtttacttcgtgtctctcatgacagggag
-gaaacttagtgttccttggagacctgaagggatgcagtgagcttaagaacttttggccag
-gcgcggtggctcatgcctgtaatcccagcactttgggaggccgaggcaggcggatcacaa
-ggtcaggaaatcgagaccatcctggctaacacgatgaaaccccatctctactaaaaatac
-aaaaaaaaaaaaaaaaattagccaggcgtggcgtcatgcgcctgtagtctcagctacttg
-ggaggctgaggcaggaggatggcgtgaacccaggaggtggagcttgcagtgagccgagat
-cgtgccactgcactccagcctgggcgacagagcgagactctctctcgaaaaaaaagaaaa
-agaactttcaaaagcttaccaatcagccagcccttgttcatcccctagcagaagtgtggt
-ggtattgtggtggacctttactggacactctgccgaataactggattggcacttgtgctt
-tagtccaactagctatccctttcaccctggcatttcatcaaccagaggaaggaaaaataa
-gacatcgtaaagtgagagaagccccttatgggtctttagactctcacttctgtttagacg
-caattggggtcccatggagaatacaagatcaatttaaagtctggaatcaaatagctgcag
-gatttgagtcaatatcttggtgggtgacaattaataaacatgtagattggataaactaca
-tctattacaaccaacagtgatttagtaactacactagagatactgttagaggaatagctg
-agcaagtaggggctacaggccagatggcttgggaaaataggacagccttagacatgatat
-tagcagaaagaggaggggtttgcatcgtgactaaaactcaatgttacaccttcatcccaa
-acaacattgcccctaatggaagtataacaaaggcattgcaaggtctcactgctctatcca
-gtgagttagccagcagctcaggggtaaatgatccctttacaggatggctagaaaaatggt
-tcggtaaatggaaaggaataatagcctcaattcttacctccctcgtagctgtaataggtg
-tacttattcttgtcgggtgctgtgtcataccatgcatccgtgggttggtgcagaggctcg
-tagaaacggcacttgctaaaacctcccttaactatcctccaccttatccagagaagcttc
-ttcttttggaaaatcaagcagaacaactaagtcaagacatgttaaataagtttgaagaga
-aagccgtaagaaaaatgcaagaggaggaagttgttaaatatgaattctaaatttctcttc
-aaagaattagtatgtctgtatgttcaattctttgccttctacttttaaacttaatttcct
-cataaagcaacctttttcgattacctgctccaccctgactcactccgattacctgctcca
-ccctgactcactccgattacctgctccaccctgactcactccgattacctgctccaccct
-gactcattccgattacctgctccaccctgactcattattctctgccctgcataaccatta
-ttttcccgccaaagcactcaccccatcactctctttaaattagccaatcggaattagttt
-agcctgtgtggtctaaccctagccaataggggaatgacatagcagcaggggccacatcct
-tcagggataagaacccctttccttcccttgtccagatgtgtgctcaccattgctccatct
-gtgaggttgcacccttttatagaagtaccttgccttgctgagaattgaacagaaaatttt
-atattcgagtgctatttattttgaggcacagaaactttatatataacaatataaacccga
-gaccttggcgggcacacacacaagcagctgaatgtcaagaggaGTGGAGGAACGGAGTGG
-CAGAGAATGGCAGAGAGCGCTGGAGAGTGGCAGAGCAGCATGGCAGAGAGGGAGGGAAGA
-GGCGTCTGAACTTtggaagacacctccactcctcaataaagtctccgcatgtatcacttt
-tcaaacagttcatgtgacctgattaatccaggatgccagacaagaatctgggGAAgttaa
-cattcaggcatccctggatggcaaggctaaaggagcacactgtaacatatgcccacttgg
-gctccagcacctgtccatctgtgtgttcccccttccctcaggggtttgagcagtggggtg
-accaaacagacgagccacaccccctgttgcatgtcctgcaaggagaatcagggaactctc
-ctgtttcaGttggaagagcaagtgtccctctctctctcgtggtggggagacatctcttcc
-ttctgggctgtcacagccccaacctcaccaacctacctgacaagggagtctggcagaaca
-agggcaagggcagggagaagcacctctaactctattcctggataataatcaagtctctaa
-aagtcatcctggagccgggcacagtggctcatgcctgtaatcccagcactttgggaggct
-gaggcgggtggatcacctgatgtcaggagttcgagaccagcctggccaacatggtgaaaa
-cctaactctactaaaatacaaaaaaaattagctaggcatggtggcaggtgcctgtaatcc
-cacctacttgggtggctgaggcaggagaatcacttgaacctgggaggcggaggtcgcaat
-gagctgagactgtgccactatgctccagcctgggtgacagagagagactctgcctcaaat
-aaataaataaataaataaataaataaataaataaataaataaataaagtcatcctctagg
-gctttgaggccgttcaagcccctattttttccatctctgtggatgagcctctgttaaatc
-tgattgtggctgaacaagagataatgttcctaatagatacagggaccagttattcagctt
-taagtgtttattacagcccaatgtgctagtcctccatttcattacgggtattgataaact
-tcagtgaggctgtttcacactgccactcccttataaaatgaaaggctattcctttaccca
-ctcttcagtcctgccaagctgccctgtttctttattaggtcacaatttgctcacaaaatt
-acaagcgaatttacagttaagacctcacattctagctgtaattaactcacacttcaccaa
-aaaagttgctgcagtctatagaacatcacattttaaaacaagtgccggccaggcgcagtg
-gctcacgcctgtaatcccagcactttgggaggccaaggcgggtggatcacttgaggtcag
-gagtttgagaccagcctggtcaatatggcgaaaccccatccctactaaaaatacaaaaat
-tagctgggcatggtggcacacacctgtaatcccagctactcaggaggctgaggcagggga
-atcacttgaacctcggaggtggagattgcagtgagccaagatagtgccattgcactccag
-ccctggcaacaagagtgaaacgctgtctcaaaaaaaaaaaaaTTGTTCTTTTGTTTGCTT
-TTCTTTCACCCTGATTCCTCCTTCCCCCTTTGCCGTCTTCAGTACCAAGCTACAAAGCTA
-GGGGTGGCTGAGGACAGTAAACAGAGTGTGGtcttagctggctttttccctcctgggaag
-ttgttgtttaggatcctaattctagttcagaggtgcattctaaatagtcttctccattgc
-ctttccccccaaaattaatctcacacgttggcttgtgtgtgcattcacgtgaggaactga
-actgtcattttcatagataaataagagactgagtttccttagctccaaagagaaagggca
-ttttgctcctcccagcagaaaggtacccgagtgactggggggccttgcgggagtgttggg
-gggttgagcccccagcgacatgaagtgattctgcagggaactcacaacaaaattagtttt
-aaaaaggctcgtccaggaagcacatataggaactggtcactctgagttttgagccctctt
-ggaggtgctagacctccggagaaaacactgagacacctaagagggtggtggcaaggattc
-agtggtgacacactgtggagtctcatctgcaaccattacacttcgacctactccacaaaa
-accctaggccacagctcagttactccttaaaagaaagtgggaaacaaataatctaagaat
-aaggaaaaacaaggtgttgacgaaaagagttaaactgtgtaaaatagttgaagatattta
-ttcagagcccaatatgagtgactatggcccgtgacatagcccttaggaggtcctgagaac
-acgtgcctaaggtggtcggggctcagcttggttttgtatattttaggaaggcatgagaca
-tcaatcaaatacatttaagaaacacattggtttgattcagaaaggcgggacaattcaaag
-caggggtcagggtgagggtggcttccaggctataggctataggtaaatcggtaaatttaa
-actttttgttttgttttgtttttttgttttgagacagagactcactcttccacccaggct
-ggagtgaagtggcacaatctcaactcactgcaacctccgcccccatgggtttcaagtaat
-tctcctgcctcagcctcctgagtagctgggattacaggcacccaccaccacgcctggcta
-atttttgtatttttagtagaggcagggtttccccatgttggccagagtgatcttgaactc
-ctgacttcaggtgatccaccggcctcggcctcccaaagtgctaggattatgggtgtgagc
-caccttgcctggtctaaatttaaacattttctgattgacaattggttgagtttgtctaaa
-gacccgggatcaatagaaagtaaatgtttaggttaagataaaagactgtggagtccaagg
-ttcttttgaggtcttatattggctgcccttagagacaataggtgacaaatgtttcttatt
-cagacctttgaaaatgtgctagactattagttaatctcttcaggattgggagggcctaaa
-ataaaaagatctagctatgctaatagagattctttacagttgcaaattttcccccacaaa
-gtacagtttggcaggaccatttcaaaatatggcaaagaaacatgttttggggtaaaacaa
-ttgactttcttcttggtcatgtaatgttatgccagagtcagattggaaagtagtcatcat
-atataatgttaaataaaatccatctgatgagaatttatgatttgtagggcatgactcccc
-agaccccttagataggaatttaggcaagatagaaaaaatcagagcttagtcttctcacaa
-gagaatgaccctcttttaggtaccccattgattttacggcatctctactttgcaagtgtt
-tgtgtaaatggacatattatggtctctttgtgcacaattatgtcaaagacaatttagagc
-ttgaaggttgacctccagctgtaaagttcctaagttctctatctctctgctttcttttct
-gcctgttttaagtctgctattatttttctttctttttttgagacagagtcttgctctgtg
-cccaggttggagtgcagtggtgcaatctcagctcactacaacctctgcctcccaggttca
-agcagtcctcccacctcagcctcctgaatagctgggactacaggcatgtgccaccactct
-tggctaatttttttttttttttgagacagagtcttgctctgttgcccaggctggagtgca
-atggcatgatctcagcaaaccaacgagtttctattaatatctcatggctagagttctgag
-ataatagctataggatctttggttgtatgagtatgtatgtgtgtgtttatgcatacatac
-acttatttcattgtgttttctagccacaggtactgaattggcttaaagttaaagaatatt
-cataaattaataagcctaaatgcttttcaagttcatgtgacttaagtaaaatctttaata
-agctagctttaaaattattggtaaagtaatattagaaatgtcttaaaaattgttagcata
-aatttttgtttgcatttattgatcaagggacttcatatactgccaaatactgtaaggtgt
-caaaatttggcatagggtttgtaaaactacaaaaccgttcaaaacagaatgatttttgct
-tttgtaatttttgataaataagacattgatattggtttaatgaaaacagctaaatcatga
-attatttagtgaaataacaatatatttaatcttaaggtttttacttagcaaacacctgaa
-attcacaggctatcaaatgtttgacagggaaataactttaaatgatgactatcacagttt
-tcataactaacctgggtaaactattaaaataaaatatttaggtaaatgtaatgggataaa
-tacttgtagacaaagttgtcataatttaggatctaaagttatgttaaattaaacaataga
-tatttcattaactgggtttttttaattaaaaaagatattgcaggaaatcattttttttct
-aaaaaatgtgttcttgttaaaaggaggataatttttgtctaattcaaagcttatttaaag
-gttatatataaaataaggtaaaaagaaacaagaaaatatataaagaagttatagaaataa
-aaaagaatttttggtaagaaagcttaaagaaaaataattttacatgagaaagaaccttgt
-atggtacatttttgtcctagaataaaatgactggttgtttaagaaagaggaatgttcata
-caaaccagaaagtccaagcatgtcgtgaatggtctgtttaagttataataagagcattta
-tggaaaaagacccacaaactttcatataatcaagttgtctataattaaagggaaattatt
-tataatgatcttttgagagattgggttttgatattaaaaaacatttatacactaaagaat
-tcattagaacaacattttcttaaggtattgatttacttttaataaattacaagactatat
-atataatatattttttcctgcaaagttcaacttttattgcatctcactgttttcagcttt
-ctctccccttttaaagtacctgaaataataactctatctttcaactcatttttagctcct
-gtaagtttttttattttctcctttgtgttctaactgttgtggcctgacgctaataaatgt
-tttatctttgtggtctaaaggaaacattccttccaacataatatttcctgtagggaacag
-cggttgaaatgcagaaggtgttttgttttccctttgggaaattggcctaataaacagagt
-ttatgctttattgaaataattcctatgtcattattactaagttttggtttgtttagaaaa
-aaacccgagattaaattttttttaattaagattattacatacatgtaaccctctgtatgt
-gcttttaaagtccttgtgccattaagttacagagctttgagtccttggtctaaaaagaac
-accaagtcctgctaaatattaaacactgacagcagttaaaacctcattttctgacctggt
-agaagatgccaatcaaaataaactgtgttcatgagacagaaggccggaaattaaaacgat
-tcaactcctcaaggtctggagactatcaaagaagaggtgggtgcatgagattgtaagggc
-cgattttgagagatcaaatgattataaggccaattttgagagataaaataattgagtttc
-tctataaattaaccattaatctcaaaggcacactgatgcaagactagcatatgggctgct
-gtgtcacgttaacaaggttttcttggagaattaacccactccttaataaaaggttataaa
-agaggttataaaggttataaaaaaggcttgtggaatttttatcttgtggtcaggatgatt
-aaaattttatagattgtttatacattttgaaaaacaaatttaattggcctcgtttttatt
-agggcttattgtttaggcaattaagtcttctctctcaaagaatcaaggtttttgcctttt
-ttttgaaatctttgagttatcaagttgagtaaatgaaagacttattttacaatgacttga
-tctgtgatcctattttgtgatatcaagcattttatttatttatttatttatttttgagat
-ggagtcttactctgttgcccaggctggagtgcagtgctatgatcttggctcactgcaacc
-tccacctcctgggttcaagcgattctcctgcctcagcctcccgagtagctgagattacag
-gtgcctgccaccacacccggctaatttttgtatttttcatagagacagcatttaccatgt
-tggccaggctggtctagaactcctgacctcaggcgatccacccaccttggcctcccaaag
-ttttgggattacaggtatgaaccactgtgcccagccaaatcaagcattttaaacttttta
-tttttatttttaaaattttaatattttgagatggagtctctctctgtcactcaggctgga
-gtgcagtggtgcaatcttggctcactgcaacctctgcctcccaggttcaagcaattctca
-tgcctcagcctcatgaatagctgggattacaggcacttgccaccacacccagctaatttt
-tctatttttagtagtgacagggtttcaccatgttggccaggctggtcttgaactcctaac
-ctcaggtgatccacttgccttggcctcccaaagtgctgagattacaggtgtgaaaggtgt
-ttaaaggccactgtgcctggcctttaaactttttatatttgacaaactttccaaagtcaa
-attctaacttggttcctcaatgattttttgatattagtcccctgaagtccaaaagagaca
-cagtcagcttatttggcataaaaatcatacaggaagcattgtcaaatatgtaatagtgtt
-tggctttctttgggctgtatttgtataaatatgttattggcatatgttccaaaattatgg
-gaaaatcctataattatgaatgacttagtatatgttattaatcattatcattattatgta
-aaattattgtatgctacagaagtaaccaagtttctttgtcaattgtgtctttaagtatga
-cttttctaaaacttttgtcatccacagttgttttacttttatccttttcaaaaggatgat
-tttacaatcagcataggactctgacagttgctgttgaatacaggttttggagatagtgac
-actaaaatagagaaaaaaaatccaacactcccatagagagctgaaatatacatgaatagc
-aagcagaagaggagttaactgcatggactgaactaatagaagactgaaataatccttcta
-tgactttttgcttaaaacattgctaatcctttctttgtttttcagagccaagaaaacatt
-tattttgagcttttaaaaaatttattattattattattattaacaaataaataatcttct
-ttctttttttcttttatctttctctgcagggcaagttctgtatttatagcttttaacaat
-tgaggaaattatactcctataaacaaaatttggagcatatttctctctatctggtttctc
-taaaatttggaaactagttgggagtattcttaacttatagcaatatagttatctgcacaa
-gtacaataagaatctgttttcttttgtaagaggacataattggggacagtggtgatttta
-ccaaggttttgactggaacaacatgctatcagatgcagactcctttaaggaatcaaagtt
-gacttacagagctaataaaagcatcttgggaaagctggcctcctatcttgtctacacagt
-ccctgtacaggttcctgacctgtggtaagtaaagagtgtcactttctaacaggcccagga
-gcccaaagtcttcctgaggtgaggaattcatccaattaatacaggtatttgcaggcacag
-gccgggcttaagacattaaagtcgaatgtgagattacttatggaataaagttccagcaaa
-gccaattaaaaaaaaaacaaggagcctatatggcaaataattattcttgatgattttatg
-caaatactccagccaaatataataagacagaaacttattttgcaaatgaattttgttcta
-taatttgtcctcagtgaaaggggactggagagagaaaaaattatgtttcaaaatcaccta
-tagtacacctgttgttagattttagtctcacttagtgtttttaaatttttattattttct
-atagtttggactaaactctaaaatttttcctggtcacaagtccccaaaataatttttttc
-attttttttcttttttcctttccttttccccccacattttttcctgattagaaatcacca
-aacattaaactgtgctttcctaaagccctgtgaactaaagctagacaatctatttacata
-cataagctactttcatacctgcctactggtgtatgaacttcagagtaatatggcctatat
-tgatttcccaggattattgttgttgttgttgtttttctcctttcctcccccattttctct
-taggacgtgagacttcacaacctgctaaagcgagctttcctaataatgtggaacctacct
-gtctatgaataaactgtcctagtcatgagagatcagacaaaacctgagaccagaggctaa
-ttttcttctaaaatgcttttaaaaagaaaaggggggaaAtgtgaaaggaaaataaacttg
-ggaccctcaaatcactaagccaaaacgaaaagtcaagctgggaacggcatcgggcaaacc
-tgcctcccattctaatgggatagctaaataagatagctacaaagattttaaaaagctaca
-tacctccctcacaattttcccacaaggaaattccttgtgtacctagaacagacagaactc
-aaagtcatccctctgctcatgggagacaaatgcacatctgatggcttcctttgccctatt
-gcttcgctaagccagactaaggcataagtgactattcctgcaagttgcatattcagtgga
-gggctaatcagaaactcaaaagaatgtaacaatttgtcctttatctacctatgacctgga
-aaacccctccccacttcaggttgtctcacctttctggatggaattgatgtacatcttacg
-tatttgctgactgatgtctcatgtctccctaaaatgtataaaacctagctgtgccccaac
-taccttgggcacatgttatcaggacctcctatggctgtgtcactggtgtgtccttgacct
-tggtagaataaattttctaaattgattgagacttgtctcagataactcttgatttgcagt
-aagtagcatttctaaacatctctggaatgcatgcatattgaaactcattatgcaaccctt
-gctgacatcaaggcaggaaaatgtctacaaatgtaatcatttagcgtgacctatgtggct
-aatgtggaccaaattatccttaagctcctgctttaaggtgcataaatgcccctgaggaaa
-aatccaccttggcactctccatcctatcttgctgagattcttgcctgcactcttctacag
-agttctttctttctaataaaactttccttttttcaaaccaatactattatccataaattc
-ttcttctttttttgtttttttgaaacggaatctcactttgttgcccaggctggagtgcag
-tagcatgatcttggctcactgcaacctccacctcctgggctcaagtgagtctcctgcctc
-agcctccagagtagctgggattacagacgtccaccaccacgtccagctaatttttgtatt
-tttagtagagatgaggtttcaccatgttggccaggctggttttgaactcctgacctcaaa
-tgatccacctgccttggcctcccaaagtgctgggattataggtatgagccaccatgccca
-gcagtaaattctccttactaatccacgagtggaccactttccaatgctgaggctctgaca
-cctcgctgggcaGCCACTTTTGATTATTTTGGGTTGTCAGGGCTCAGGGACACAAGAACT
-TGCTCCTTAGGGGAGCTGGAGGTCTAGTAGGGATTGCTTGTTCTCCATCAGGCCCCTAGT
-AGGGAGGCCTCTCCTGTCCCCAATCCCTGACTCCCAGGGATGCTCCCCTCCAAACCACAG
-caggaagttcctccttaggtcagacccacagccctgatgctgtggtctCACTGCAGGTCA
-TAGTCTCACAGGGGCCTCTTATAttattttaattttaattttaattaaattaaattaatt
-ttttttttttagatggagtctcgctcttatcgcccaggctggagtgcggtggtgtgatct
-tggctcactgcaacttctgcctcccaggttcaagtgattctcctgcctcagccacctgag
-tagctgggattacaggcatccgccaccatgcctggctaatttttgtatttttagtagaga
-cagggttttgccatgttgaccaggctggtctcgaaatcctggcctcaagtgttctgcctg
-cctcagcctcccaaagtgctgggattacaggtgtgagccaccgtgcctggtcttatatta
-ttttaattttaaatttaaGAATACATTCTTAATATCAACCTTCAAAGACTCCCTGTTGCT
-TACCAAGTTAAGAAAACTACTTAAACCTCACATATAATTCCTTTCTCAACTGGGACCAAT
-AAACCGTGACAGCTTTATtgaagggggccagccccttcacacctgtgggtatttctcgtc
-aggtgggatgagagactgagaaaagaaatagacacagggacaaagtacagagaaagaaca
-gtgggcccagggcactggcgctcagcatacgaaggacccgcaccggcgccagcctctgag
-ttccctcagtatttattgatcatgatctttactatcttagcaaggggagtgtagcagggc
-aacaggtggggagaaggtcagcagggaaacatgtgagcaaaggaatctgtatcatgagta
-agttcaaggaaagatactgtgcccggatgtgcacgaaggctagatttatgtttctcttta
-cccaagtatctcagtgtagcaaagagcaacagagcagtattgctgccagcatatctcgcc
-tccagccacagggcggttttctcctatctcagaatagaatgaatgggaatggtcggcttt
-acacagagacattccattcccagggatgagcagagaagccttcctcttatctcaactgca
-aagaggcctccctctttcactcctcctcctcagcacagaccctttatgggtgtcgggctg
-ggggatggtaaggtctttcctttcccatgaggccatatctcaggctgtctcagttggggg
-aaacgttggacaatacccaggctttcttgggcagaggtccctgtggctttccacagtgca
-ttgtgtccttggttaacagagaatggagaatggcgatgacttttaccaagcatactgcct
-gcaaacatattaacaaggcacatcctgcacagtcctaaatccattaaactttgatccaat
-acagcacatgtttctgtgagcacagggttggggataaagttacaagttaacagcatctca
-aagcagaaacaatttttcttaatacagatcaaaatggagtttcttatgtttccttttcta
-catagacacagtaacaatctgatttctctttcttttccccacaCTTTCTCACGTGttctt
-tctttctttctttcttttcttttttgagatggagtctcgctttgttgcccaggctggagt
-gcagtggcgtaatctcagctcactgcaaactctgcctcccaggttcaagtgattctcgtg
-cctcagcctcccgagcagctgggattacaggcatgcaccatgacgcccagctaatttttg
-tattttcagtagagacgggtttcaccatcttggccaggctggtctcgaactcctgacctc
-aagtgatccacctacctcagcctcccaaattactgggatcatatgaatgagccaccatgc
-ctggccCATGTTTTTCTTGTACTTTAGGCTTTGCTACTTACAACCAGAACTGCTTACCAT
-TCtgtcagaagccttccaaccagggcaactccatcttgaataggggctgggtaaaataag
-gctgagacccactgaactgctttcccagaaggtcagacattcttagtcacaggatgggat
-aggagtttggcaggactggtatcacaagtacaggtcacaaagaccctgctgataaaacag
-gatgcagtaaaagaagccggccaaaatccaccaaaactacgatggggatgaaagtgacct
-cgattcgtcctcactgctcattatataggaattataatgcattcgcatgctaaaagacac
-tcccaccagcaccatgagaatttaccaatgccatggcaacgtcaggaagttaccctacat
-ggtctaaaaaggggacgaaccctcagttctgggaattgcccatccctttcctggtaaaac
-aatgaataatccaccccttgtttagcatacgatcaaggagtaactataagtatgttcagc
-tgagcagcccatgccactgccctgcctatggagtagccattattttattcctttactttc
-ttaaataaacttgctttcactttactctatggattcaccccaaattccttcttgtgtgag
-gtccagaaaccctgtcttggggtctggtttggtacccctttctggtaataATTCTGTAAG
-TATTTGTAGTACGTCTGAGCCACCAAAATTTCcatactgatccttccattagaatatcct
-ttctgcctgtctctttctggcaggatctgatccatatttcaaagccagtctcaaatgcca
-ccttttccaaagaaacctatcctTATATCTTTATCTAATACAAACAGTATATATTGGGAG
-CCTAAGAAATGCTTGTTGCATACATCAATGAATGAACCCCAAACCAATGTATTTCTCCCT
-TCCTTGTAATCTCCAGAAATGTTTATAAACTTTGTTGTTGTTTAtttgtttgttttattt
-ttatttttattttgagatggagttttgttcttgtcacccaggcgggagtgtaatggcgcg
-atctcggctcaccacaacctctgcctcctgggttcaagtgattctcctgtctcagcctcc
-cgagtagctgggattacaggtgtgcactaccatgcccagctaatttttgtggttttagta
-gaaatggggtttcaccatgttggtcaggctggtctcaaactcctgacctcaggtgatcca
-cccgccttggcctcccaaagtgctgggattacaggcgtgagccaccgtgcccggccTGTT
-GCTATTTATTTAATATACTTTATTTTTTTGAGCGATTATAAGTTTATTtttatttattta
-tttatttatttatttatttttgagacagggtctcattgtcacctcttgcccaggctggag
-tgcagtggcacgatgttagctcactgcaacctctgcctcccagagtcaagtgatcctgcc
-acctcagcctcctgagtagttgggaccacagatgtgcaccaccacgctgggctactattt
-ttatatttttagtgcagatggggttttgccatgttgctcaggctgatcctgaactcctga
-gctcaagcaatctgcctgccttggcctcccaaagttctggaattacatgcgtgagctact
-gagcccggccTTAGGTTTACAGAACAGCATTCCACCCATGTTATTTATGCAGGGGAGCAC
-ACCACACACATCACTTTGCAGCTTCCTTTCTCCTCTTATATGTCTTACAGATCTTTCTGT
-GTTCTGTACATTGAGACACTCATTCATTGGCTTCACTCATTCATTTGAATTCattccttt
-gttcaacagatatttatcgtcagctctatgtcaggcactatgagaagtgcttgggatata
-aaactgaacaaaataaacaaagtcctttccattggagagatgacattctagtgtaaggag
-atagacaatagataataaatacaacaaataaataaatacatggtttagtatgttataaga
-tgctttctgtaggaaaaaagtgagagggacctggagtggagggaggaccgagtggggaca
-ggtgcagggtgggggcagccagtagagcccctctgaggaggAGTGGATCACAGGAGGATG
-ACTGGCAAGACCTAAAGGTGGCAAGCTGTCTCTGGTGCTGGCTCTGAGAGCAGGATAGCT
-GGAGTAGAGTGAGGGAAAGGCGAGGTCAGAGGTGAACCTGCAGGGCAGGTGGGGCTCCTT
-CCGCTAGCgcatggtgttccattatccagatgcaccaggacaaatgtcgcccactgccat
-tactaggtgcttaccatgtgccatcaagaacaataccgcaggccgggtgcggtggctcac
-gcctgtaatcccagcattttgggaggccaagatgggtggatcacttgaggtcaggagttc
-gagaccagcctggctaacatggtgaaacctggtctcgactagaaatctaaaattagccta
-gcgtggaggcgcactcctgtaaacccagctacttgggaggctgaggcaggagaatctatt
-gaacccaggaggcagaggttgcagtgagcctagatttcgccattgcactccaactgggca
-agagcaaaaatctgtctcaaaaaacaaacaaaaacaatactgcaataaacattctgtcag
-tctgtcattttgcccatggacagaatatctgcagaattaattcccggcagtgaacttgAG
-AGAGATCACCCAATTGCCTTCCAAAGGAGCTGTGCCTGGACCATGGGTTTCAGCACAAAG
-TGCTGCTCCCTCCAACTTGTAGACTCTTCTGGCAGGTCACGGTGGAGCTCACATTCTAGC
-GGGAGAGTGTCCAGGGCAGAGATATTCCATTCCGTGTCTTTTCTCCCAGGGCTCGCACAG
-AGAGGGTTCACGCGGTAGTCAGTAGGTGGGCAGTGCTTGGTGAAGGCATTGATGGGTGGA
-GGGATTGAAGGATGAATGAATGGATTAGGGGCTGACAGTGCCGCTGCAGTTACTCAAAGG
-AGCCACCAGGAGGCGCAGGGAGCCCACATTCTGGAGACAAACCTTTTAAAAAAAGCATCT
-GGTGACTTAACGACCTTTTCACCAATGGCTTGTGTGGGGCCTTAATGCTAGGGTGAGAAA
-AAGGTGGGAGATGGAAGAAAGGGGAGTGGGTAAAAGGACATGTGGGAGAAGAAGGCAGAG
-AGAGGGCCTTCTGAGGGGGCCTCCACGCCAGGTAAGGACCGTTTAGCTCCCCTAAGAGCC
-TGCAGCATTGATGCAGATCCCAGCAAAGCCAAAACCCCCTTATGCCCACAGTTGAGCCCA
-AAAGCCCAGAACAGAGGGGAAAAATAAATTTCAGGATAggccaggtgaagtggcttacgc
-ctgtaatcccaaaacttggcgaggtcaagtaatcccaagtactttgggaggctgacaggg
-gaaactctatctaaaaaaaaaaaataaGAAAAGGAATTTCCAGGATAAATATGTACAGTA
-TAATCCCATTTATGTGAAAAAAAAAATCTCCACAAATAAATTCCTTtgtgcgtgtgtgtg
-tgtgtgtgtgtgtgtgtgtttgtgtgtgacggagtctcagtctgtcgcccaggctgaagt
-gcagtggcacgttctcggctcactgcaacctccggctcccaggttcaagcaattctcctg
-cctcagcctcctgagtatctgggattacaggcgtgtgacaccacacccagctaatttttg
-tatttgtggtagagacggggtttcaccatgttggtcaggctggtctcgaactcctgacct
-cgtgatctgcccgcctcagcctcccaTAAATTCTACATATTAGTTTGGGGAGTGTGTATT
-TACCACATACACATCTACAGGGAAAATCTGGAAAGGTAAATGTCGAATTGACAACAGTGG
-TTACTTTTGTTATTGTGTGTGTAGAGAGGGGCAGGGGACAAAAAGGAAAATGAGGAGTGA
-TCAAAGGGGACTTTAATTTTCTTTTTTTTTTTTGAGACAGAGtctcagctcactgcaacc
-tctgtctcccaggttcaagtgattctcctgcctcagcctcccaggtagctgggattacag
-gcacccgccaccacgcctagctaatttttgtattttattttagtagagacagggtttcgg
-tttcaccatgttggccaggctggtctcaaactcctgacctcaggtgatctgcctgctgcg
-gcctcccaaagtgctgggattacaggcgtgagtcactgcaccgggccCCCAAAGGGGACT
-TTAGACTAAACTGAAACATTTTAACTTTCCAGGAATCTGTAACCCTGCTATTATATAACC
-ACAAATTAAAAATTACTTTaaaaaatgaaaaaaaaaaaaaaaaaaaaaaggctgggagcg
-gtggctcacacctgtaatcccagcactttgggaggctgaggcaggaggatcacgaggtca
-ggggtttgagaccagcctggccaaaacggtgaaaccctgcctctactaaaaagacaaaaa
-ttagcagagtgtggtggcacgtgcctgcagttccaactactcaggaggctgaggcaggag
-aatcgcttgaacttgggaggcagaggttgcagtgagcctagactgcgccattgcactcca
-gcctgggcaacagagcaagactccggctcaaagaaaaaaaaaaaaggaaaagagaaaaaA
-AAAGGAACAATAACAACAACaaaaattaaatgctatcttgtgttgcatcaatagaagtct
-tacgtgcagctcaagggaggtgacagccccctctgctctgctcagaccacacctgggacc
-tcctttcctcttcttggccctgtcccgtgagaagaataatgacagcctaaggcatgCTGG
-GGGTTGGAGATGGGGGGAGGCTGGGGCCATCTGCACATGATACAGATCCAGGAATAGTCC
-CTTTACCCAAGCGGGAGAAACTGGGCAGGTGAGCAGCTTCCAGGTGTGTGGATGGCAAAT
-GGATGCCAGACTTTAGGATAGGAATCCAGGGGTGCAGCGGATGGAAAGTCCAGCCCAGGA
-TGGGGCATAGTTTTCCCACCCAGCTAGGGAGGGAGGGTAGGGGCTACTCTGGGGTGTCAG
-GAGTGCCGAAGCCTGAGGTAGGCGCAAGCCAGGCAGCATGGCAGCATCCTTCCAGAGGGT
-GTTGTGCAGCTGTGGAAAACAATTGCTGGGAGGCCGGCAGGGGCAGTGGTGGAGGAGACC
-AGAGCTTAATTCTAGGTGAGTCACAATAGCCTCATCTGTAGAATGAGTGAGGGGTGGGGC
-GTAGTTTCAGAttttttttttttttttgacacgtagtttcgctcctgttgcccaggctgg
-agcgcaatggcgcaatctcggctcaccgcaacctccgcctcccgggttcaagcgactctc
-ctgcctcagcctcctgagtagctgggattacagccatgtgccaccatgcccggctaattt
-tgtatttttagtagagacggggtttctccatgttggtcaggctggtcttgaactcttgat
-ccgcccgccttggcctcccaaagtgctgggattacaggcgtcagccaccgtgcccCACCA
-GTTTCTGACTGAttttcttttttttttttttttgagacggagtcccgctctgtcgcccgg
-gcgaagtgcagtggcgcgatctcggctccctgcaagctccgcctcccgggttcacgccat
-tcccgggcctgggaccacaggcgccgccaccacgcccggctagtatctttttttattttt
-attttcaatagagacggggtttcaccgtgttagccaggacggtctcgatctcccgacctc
-gtgatccgcccgcctcggcctcccaaagtgccgggatcacaggcgtgagccaccgcgccg
-ggccCAGCTTCTGATTTTATGCAGCTGGCGGGATCTTGTTCTTGGTCCTTTAAGGCGACC
-GGAGGGATTGCAGTTTTAAAAACTCGCCAGCAGAGGTCGCCTTCTGACGGATTTGACCAA
-AAAATCCATTCCGGTGGGAAAGGGGAACCTGCGCCTGCGATtctctctctctccccctct
-ctccctctctctttctctccccccctctctctctctccctccctccctctctcctcctac
-tcctccctccctccctctctctgtctctccctccctccctcccgctctctcccccctccc
-cctctccccctccctccctcccttcctccctctctGtctctttctttgagacaaagtttc
-actctgtcacccaggctggagtgcagtggcacgatctccactcactgcaacctctgcctc
-ccggggttcgtgattctcatgcctcagcctcccgagtagctgggattacaggcgcccgcc
-accacgcccggctaatttttgtatttttagtagagacggggttttgccatgttggccagg
-ctggtctcaaactcctgacctcaagtgatctgcctgcctcggcctcccaaaCTAAGATTC
-ATTTGTTGACTAAGTGAATAAAAGGGGAGACATTGAAGAGGGGGACCCgactggatttgg
-gggtgaaggtggagttgagagtgactttgaggcttctgcttgagcaatgagtggagggtg
-cctctcctgagctggggaaactggggcagCACTGACGGAGGGGACACAGCTACAGAGGGG
-AGAACCCTCTCCTGCCGGGGCTGCGGGTTACAGCCTGCACTGCGATTCTCTGATCTCAGG
-GACCTCAGACTTCTGGGGCCCTGTCCCCTACCTCTGTGTATGACCCTAGCTGGCTGAGGG
-CTGAAGGCTTGCTGTTGGCTCTTTCTGCACCCTCAGCCTTCTCCTTCCTCTTCCCTCTGC
-AGGACTCTGTCCTGGGTCCTTAGGAAGAGTCCAGGCCCCAGGACAGGGAAGTTGGGTCAG
-GCCTGGACCTCACATTCCCTGCCTGTCCCATGAGGTGGACAGTGAGAGGACAAATGCCTG
-GACCCCTGGCCCCAAACCCAAGAGCAGATGTACCGGAGAAGAGCTTCTTAGAGCACCAGG
-TGCCAGGGCTGCGGTGGAGAATCAGGGGGGCCCAGGGGAAGGGGCTGCAGATGAGGGAGG
-AGATAGATACGGAGGGCCTGTGTGCCTCCCAGATACAGGGCTGGCTTTCCCAGCCCAGAA
-GGTTCTTTCTGCCTTTCCCAGTCTTCTTCCATTCTCATTTCATGTTCACACTTTTGGCCA
-TACCCAGGGTCAGCCATGAAGATTGTTCTCAGAATGTtttctttcttccttcctttctct
-ttcttttctttctttcttcctttctttctttcctttctttttctttcttctctttctttt
-tttcttttcttctttctctctctttctttctctctctctctctccttccttccttccttc
-ttttctttctttcttctttctttttttgaaacagagtctcactatgtcacccaggctgta
-gtgcattggcacgatcactgctcactgcagccttgacctcctgggctcaagtgatcctcc
-cgcctcagcctcctgagtagctgggaccacaggtatgcaccaccatgcccagctgatttt
-ttaattttttgtagagatgggggtctcactgtgttgctctggttggtcttaaactgctgg
-gctcaagtgatcctcccgccttggccttccagagtgttgggattacaagcaggagcagca
-cacctggccAATGTTTTATTTAAATCAACTCACTTAGGTTGAAttagaataattttagac
-acacagaagagtgtgtctatataattttgaattatatacccaacactcagatataacatt
-agcattttgccatatttgcttcatctatttctttctgaaatattttaatgtaaattacag
-atatcatgaattttcatccccaaatactttagtctgcatCAGTCAAAGATATCTAATATT
-TAATCCACAATGGATTTCCCCAGTGGCAATTCCCCTAAATTGTGTTTTACAGTTGACAGT
-GGatttattgtaaaaggaaactcgatataccaagtgacaagcaagttatcttctgttata
-aatagaaaggatccctggaaatggacacagtgtcaggcccagagctgtgggtggagacct
-gctctctgtttgacataaataggagatcagtggctactaaatctgaagacagggcagcag
-caaagaacattttctcacggatgtgatgagacttgaaagggactcagaaagggggtcact
-ttctccaggttggggtaactgttatttaagccagggttcatCTGCAGCGTGGGGAGCCAG
-AGGGTGACCCCTTCCCTAGGTGATGGAGGTGGCTGAGGCTCCAGAAGTTTCCAGAGAAAG
-ATCTGGTGTTCCTACAAGGCCAGTGGCAGGGGGAAGGGCACTAGACAGTGGGGCTGGAGG
-GTGTGGGCCTGTCCCTGCTCTGATTTTGGGCACTGCACTTTTGCCTGTAAGAAGGGGATA
-TGTGAGGCCAGGACAGGGTCTCCTACTCTGTCCCCACTCCCACGCCAAACAGGGCCTTGA
-GGACTCTCGCGACCTCCATGACCCAGCTTCCCTCCTACCCCAGCCCCAAGCCTGTTTTTG
-TTCCCCTCCCTCCctcctgcttgatctttgagcctcagccaggatgttacctcctcctag
-aagcctgccttggtccctggaatggattaagggactctctcctgggccccacagctgccc
-aggatcactcagcactgtagtgccctgttggcctttgcctccctccagctgtggacgtac
-aaagcagacagcgaatctgtcttgctcaccactgtacccccatcccctactgcagcacct
-ggcacatagcagtagtgcggcacacttgttgaatgaataaGGGATCATTACTACTACGCT
-TCCCACTCATAAATGTCTGCCTCTTCGGGGGGCTCAGAATGCACATTTGGTCCTTCATTA
-ACTCATTTACTCACAAttttttttttttttttttttttgagacggagtttcactcttgtc
-gcccaggctggagtgcaatggtgtgatctcggctcactgcaacctctgcctctcaggttc
-aagcgattctcctgcctcagcctcccgagtagctgggattacaggcgctagccaccatgc
-ctggctaatttttgtatttttagtagagatggggtttcaccatgttggccaggctggtct
-cgaactcctgacctctcaggtgattcacccacctcagcctcccaaagtgctgggattaca
-ggcatgagccaccgtgcctggctcatttactcacaaatatttactgagcacctactatgt
-cccaagcagtattctaggcactggaaatggggcaaggctgctgcctctgtggaacttata
-ctggggtgtgggaggcaaagaaaaacaagcaaacatacatatgaaataatttaagatgcc
-actcgtggtgggagggactgacaggagctgctgtggaagagagcattaggagggccttgc
-tgaggggtgactttatttcagctgagaggtggatgagaaggcacctgcaggggaagaaga
-accaggggaagggtgttcctgatggagcaacagcctgtgctaaggccccaaagtgagcac
-cagctgggcgctgagggacagaaccaggcacaggctcggttagaggaggtctgaggtccc
-agaggagacaagagaggggaaggatgggagggcaggcctgagccgcagaaggccagtgga
-aggttctgagtgggaagaggatgggataggagttatattctgaaaggtccgcctgtgctg
-ggtggaggatgggtggggacaggcaggagcagcccaggctctgatgcagcctccaggcag
-agatgGACCAGGGGAGCCCATTTCATATCCGGCCCCTGTGGAGGGTCTGAGGGTGTTGAG
-CAGACAGGCCCTGGCTTTGGAAGTCCTGGGTGTCTGGACCCGCCTGCCTGTGGGGCCCCA
-GCAGAGAGGAAGGGAGGCGGGGCTCCCAGTGCCTGTTGACTCATTTGCATCTGATTTGCA
-TGTGAAGCAGAGAGTCAGGTTGAAAGCTGGGAAGGCCTGTGCCAGCCCTGGGTAGAGGGT
-CTTGGGTGTTAGTTCCCACAAAGACTCTGTCCCAGGCCATGACCTTCCTGTTCAGGAGGG
-GCTCTGCCTTCCCTTGCCTCCAACGCCCCTCTGGCCTGGCCCTGCCATCTGGGGCTGGGC
-AGTGCCCACGGGGACAAGGTCGTTTCCTTTTAGGAGAGGTCTGCATGCTATGAGGACAAA
-GGCCAAATCCCCACCCTCGGGAACCTCCTTCCCCAGCAAAATCCCATCTGTCAGGCTCAG
-CCTCTGACCTTCGACCTCTCTGTCAGCACAGGCTGCAGTGTTGGGGAGGGGAGGGTCCCC
-ACCCCCAACCCTAGGGGAGACCCAAACCTCTCCCCCCAGCCTTCTCCATCTGTCCCCTTC
-GGCTtctgccacctgctccgtgtgatccaggccaggtcacctccgctttctgggccttgg
-ttcccccacgtgtccaatgtgggTTTCCCAAATACCAGTGACTTGTGTCAGTCCACTTTT
-GTAATTGTAGCCAACTCCacttactatttcttaagtgaacttactctccttcacttaaat
-agatttaatttaaaaagaaatgttataccagctctgtaaatggaaaaccagtttcatctg
-ccacaagtagaaacataataggaaaaaataatgaaatggaaataaaacaatgttactcta
-gtctagcCTCaagtgaaaaaagtcagacacaaaaggttacatttatatgattgtctagaa
-aatgcaaaactagagagaaagaaaacagaccactggttgccagggttggggagagggagc
-tgacaatatcaaggggtgcagaaactttttagggtgatccaaactgttttttgatgatga
-tggtggttacagattgtatacatttgccaaaaatcaccaaagtgtacattcaaagttggt
-gagttttattttatgtataaaccacctcaaaaagacaaaTTTTAGAGAAGAAAACAAAGA
-AAAATGCCGGTTTAGCCCCAAGTCTGAGGCTTCCTCTCTGTTAAACAAATTAGCAAATAG
-AAggccaggcatggtggctcatgcctgtaatcccagcactttgggaggctgaggcaggag
-gatcacttgaggtcaggagttcaagaccagccatggccaacatggtgaaatcctgtctct
-acaaaaaatacaaaaattagctgggcgtggtggcgcatgcttgtaattccagctactcag
-gaggctgaggcaggagaattgcttgaacctgggaggcggttgcagtgagccgagattgca
-ccaccgcactccaccctgagtaacagagcaagagactccatctcaaaaaacaaacaaaca
-aacaaggaagagaaAGAGGGATTTCTCTCTCTGTCTCTCACCAACTCTCTAACCCTCCCT
-AGTTCcatgcaccaaggaaaagctatgtgaggacataggagaaggtggccagccacaggc
-caagaagagagccttcaccagggactgaatcagctggcacctccatctggtacctctagg
-ctccagagctgtgagaaatagatgtgtgctgtttgagccacatagtctctgatattttgt
-tttggcagccggagcagactcatgcCCTCTGATCTCATCATTAGCATAATGCctgtttat
-agaaccatgctgtgggcaggctctgtgctaaaagctttgccagcatcatttcagagactt
-gatgtgacatcttacatcgtaggggaaattattgttcccattaaagatgggCCCACAGTG
-TGGCTAAGCCAGTGGGGCATGTCCTCAGACCTGGAGTGCTCCCATAGGAAGCTGGGCCCG
-ATTCTTTCTGAAGGTGTGAGCTGGAGGCAGTGATGGTGGTTTGAGAGGCACGGGCTGTGG
-GGAACTGGATACTGAGGGCAGTCCCTGTGTCCCAGGGGAAGCACTCTGTGCTTTCAAGGG
-GGGCACTGGCAGAGAAGGAAGTGTCCCTCATCACATCCTGGAGACCCACCCTCTGGAGAC
-AGTGTTTTCACGAtttcttttctttcttttttttttcagacagggtctcactctgtcacc
-caggctagagtgcagtggcacgatctcagctcactgcaacctctgccttctaggttcaag
-taattctcctacctcagcctcctgagtagctgggattacaggcacccgccaccacgccca
-gctcatttttatttttttatttttcgtagagacagggtttcaccacgttggccaggctgg
-tgtcaaactcctgacctcaaatgatctgcttgctttggcctcccaaagtgctgggattac
-aggcatgagccatcatgcctggccATGTTTTCACTATTTCTATGGACCGTTTCATAAGTG
-TTGTGTGGACATAGGgctccagggttaaatgtgtttgggaaatgtggtgtaagcaaagag
-aaagaagtttccactctaatacttctcagagactttaatgtggagataggcatggcgaat
-ctcTCACTGCGGGACAAgtgggcaagagaagtgtggatgctgccttctgggcactcacag
-ttggtggaggagacagccaacatgcaagcaggggccacaccacatgtctggaggttggaa
-cgctatgcagagagaccacaggaaccatgggggaagtggggagggatttcccagaggaga
-tgacatttgaacaaagatgcaaaggaagtgtggaaggaggtaagggagagctgtatgact
-gtctgggggaagagaaacccaagcagagggaacagcaagcacaaaggttctgaggctcaa
-ggttgcttggtgcatttgacaagcagaccagcgccattggctggagctagctgggccgag
-tgggagggtgataatggatgaggtTGACCACGGTCCGCTCCCAAAGGCCATGGAATTCAG
-AGCATACTGGAGAGCCCTTAGTGGGTTTGGACAGACAGTGATACCTTGGGACACACAGCC
-TCATGAGCTCATACTGACCAAACAAACCACCCAAAATAGCAGCAGAAACAACAGCCACAG
-GGTGCAGAGGGTCATTCAGGGTGcctctcacaagcctgggaagtaggcatgtgatatggt
-ttggctgtgtccccacccaaatctcatcttgttttgtaactgcttcaattcccatgtgtc
-gtgggaggaacccggtagggggtgattgaactgtgggggcaggtctttcctgcgctgttc
-ttgtgatagtgaaaatgggtctcacgagatctgatggttataaaaatcggagtttccctg
-cacaggctctcttttttgcctgccgccatccacgtaagatgtgacttactcctccttgcc
-ttcggtcatgattgtgaggcctccacagccttgtggaagtccattaaacttctttcattt
-gtaaattgcccagtctcgggtatgtttttatcaacagcgtgaaaacgaactaatacagca
-cggttaactcccattttacaggcgaggaagctgaagcttagaaagatgaaagaatttgcT
-TGTGACCCCGAACGTTCCCTCTGGCTGATGCATTGTTCCTACCTGCTCTGTTTCCTTGTT
-TATGAAGCTTGCAGGCTCCAtggtcctcaaccctggctgctacacactggaataacctgg
-ggtggcagactgtgtctccccaggatggccacaccaatacatctcacatcccacatgctt
-ggccaatagcatatgacagatgtgactgtgggttacttctaaagctaggccataatagcc
-atcgcaaccccaccgtgatctctgggattgctagttctgagggaagccagctgccatgtc
-ctgaggttactcaagaagccctgtggagtaggccatttggggagggactgaggcccccag
-gcaacatctgtcccaacttgccagtcatgttagtgaactacccttgtccagccttcagat
-gacACCTCATGAGAGGCCCTGAGAGAGTCTTATTGTCCCGTTCACCATTCCTGTTGCCCT
-GTGGCCAGCTAATCAGCTTGTGGTGGTTTTCATTTCTTTTTTCTTTTTGCCATTAATAGC
-AATGCCAggctgggctcagtggctcatgcctgtaatcccagcactttgggaggccgaggt
-gggtggatcacctgaggtcagaagtttgagacaagcctggctaacatggtgaaaccctgt
-ctctattaaaaatacaaaaattagccaggtgtgatggtgtgcgcctgtaatcctagctac
-ttctcccaagtagaagggcgtgattcttctcatgcctcatgctgaggcatgagaatcact
-tgaacccgggaggctgaggctgcagtgagcggtgtttgtgccactgcacttcagcctggg
-cgacagagtgagactatctcaaaaaaaaaaaaaaaaGTAGCAATGCCATAGTAAGTATTC
-TTCTAATTAAGCCCTTCTGAATCAGCTTAATTATTTGCTTAGGGTCAATTTCTAAATGCA
-CAGTTGCTGGATCAGAGTACAAGTCCACTGATACAGCATTTAATTTTTTCAAAGAATTGT
-GACTGggccgggcacggtggctcatgcctataatcccagcactttgggaggccaaggcgg
-gcggatcacctgaggttgggagttggagaccagtctgaccaacatggagaaaccccgtct
-ctactaaaaatacaaaattagctgggcatggtggtgcatgcgtgtaatcccagctacacg
-ggaggctgaggcaggagaattgcttgaacccgggaggcagaggttgcggtgagctgagag
-ggtgccagcttgggcaacaagagtgaaactccgtctcaaaaagaaaaaaaaaaaaaaaag
-aaTGTGACTATagctggccgtggtggctcatgcctgtaatcccagcactgtgggaggcaa
-gatggtcagattgcttgagtcaaggagtttcagaccagcctgggaaacatggcaaaaccc
-tgtctctacagaaaaattagctgcgcatgggggcagacacctgtagtcccagctacgtgg
-gaggctgaggtgggagcatcacctgagcctgggaagtcgaggctgtagtgagctgtgttt
-gcaccaccgcactccagcctgggcaacagagtgaggccttgtctcaaaaaaatttaaaaa
-ataaataaaTGTAACTATATTCTCCTTCAGTAGCAACATCTCAATTTACCTTCTCATGCA
-CAGTGTTTGGAAGGACATATTTTGGGATGAGTTTTCTTTTACTTCACTACCTTATTTTGT
-TCTTTCATAGAATGCCTTTAAAATGTTACTTTAAAAAAATAGATAATACCTTTACAAGGT
-ACAAAATCCAAAAGGTATAAAAATGttttctttttttttttggagacagagtttcgctct
-tgtcgcccaggctggagtgcaatggtgcgatcttggctcgctgaaacctccgcctcccgg
-gtttaggtgattctcctgcctcagcctcctgagtagctggaattacaggtgcccaccacc
-atgccctgctaatttttgtattattagtagagatggggtttcaccatgttggccaggctg
-gttttgacctcctgacttcaggtgatccacccaccttggcctcccaaagtactgggatca
-caggcataagccaccacgcccggccAAAAATATTTTATAAAAGTCTTTCCCCCACCCCTT
-TCCCCTCAGTCAGCACAAGTAGCCACCACTGGGACCAGTTTCTGGTGGATAAATCCAGAA
-AAGTTCAGGTGCAAGTAAACACACATAGAGAGAACACCCTTTAAATTAAATGAAACTAAA
-GAAAACAGAGCCATAGGTGCACAGGAGACAGAGAGCTGACATCTGGGGCTGATTGCATCT
-TGGTTTCGAGCTGAGTGGCAAAAATACTGCTAAGGTCAACGTTCTGAAGGAGGCAAAACC
-CACACGCAGAACCAGCCATAGGCCTGTCAACAAGGCGAGATGTTATCATTGCTCATGTGC
-TGGGTCAGGATAAGGCCATACAGACCGCCCAGTTCTCTCTGATCTGGGTGTAGTTAATGA
-CAGTTTATCCGCCTTTTTCTTCTCTCTCACCACTCCCCATGGTGGGGGAGGAGAAGGACT
-GGGAGGACTTGAATACTCTGAATTGGCACCAGGTGCTTAATATAGTCCTGAAAATAGAAG
-ACCAATATGCTGTTGGCACATAAAGATGCCCACAATTCTAGAATCTGAGTGCGCCCAGAT
-GATCTCTCTTTACATGGCCTAATTTGGGATCCTGACAAGTTCCTTCTGCCCTCTGCCTCA
-CTTTCTCAATCTAGGAATGGGCCTCTCGGTTTTTGTTTTGTCTAATTTTAAGCTCTCGGC
-TGTGCATGGCAGAGGCAAACTTGAAGACGCAAGGGTCAGTGAGCAGGGCCTTTATCCAGG
-TATCTCAAATATCTCCCAACCCTGATTAAAGTTACATATCTCAGAGAAGAATTTGGTCAA
-CACCATTGTTGTCATTCCTGGTTAATAACAGGGAAGTTGAGGTctgggaagcaccctagt
-gatgtgttcacatggccatgtgcttctgtaaaatttaccaatgtaaggcatcttaacctc
-attctgttaaaaccactatctcctttcattccaacttccctttgcatcagatgatgttgg
-ggttggtgtgagcagtttgggcatcttgctaaaaggaccttaacatttactttgggttta
-gtgggatatatttatattgtttccagtcacttttgtgaaaaattattactaactgacctg
-gtattgaaatggcttccaggaatatatccataccgagcatactgagctgactcaacttgt
-cgtggcatcaagattcaggatcagaggttatatctcaagatatatgaatggtcctacagc
-actcagttccacaagactgtgaaggagaggtttgaatgtatacacggagccagcagctag
-tttatggaaagtattacagatgtgtttgagacaggcagctaataaaaagaatgttatttt
-tctgcgttttgtaacgtttgtgcaatttctcttttttttttttttttttttggagacaag
-gtcttgctctgtcatctaggctggaatgcagtggtgaaatcatggcttactgcagcctca
-acctcctggtctcaagcaatcctccctctcagcctcctgagtagctgggactataggcac
-gtgccaccatgcctgactaatttcttttttccttttttttttttttttttgagacggagt
-ctcactgtcgtccagcttggagtgcagtggcacaatcttgactcactgcaacctctgcct
-cccagattcaagtgattctcctggctgagcctcccaagtagctgggattacaggtgccca
-ctaccacgtccagctaattttttgtatttttagtagagatgaggttctgccatgttgtct
-agattggtctcaaactcctgagctcaggtgatccaccagcctcggcctcccaaagtgcta
-ggattacaggtatgagccaccatgcctggccagctaatttctttttaaaatttttttgta
-gagctggggatctcgctttgttgcccaggctggtctgaagcccctgggctcaggcactcc
-ttccacctcgacctcccaaagtggtgggattacaggcatgagccaccttattgtggtttc
-ttgtctctttctaaccaaatcttcactttattacttaatttcatatctgtaattttttct
-taaagaggtctccctaGggctggacgtggtggctcacgcctgtaatcccagcactttggg
-aggccgaggtgggtggatcgcctgaggtcaggagttcaagaccagcctgaccaacatact
-gaaaccctgtctctactaaaaatacaaaaaattagcgggtatggtggcgggcacctgtaa
-tcccagctactcaggaggctaagacaggaaaatcacttgaacttgggaggcagaggttgc
-agggagctgagatcgtgccattgcattccagcctgggcgataagagtgaaactctgtctc
-aaaaaaaaaaaaaaaaaaaaaaaaagaaGTCTCCCTAGGCTGAAGCTACCTGCTCAATCT
-TCTCTTGTGTCTTATAGGATCACAGGATCCCCCTTGCCTTACCTCACTGTTACTCCCAAA
-CAGTTCTCACATGTTTACAAGGGAATGTAACAGAGTGGATCAGAGAATTCATTCTGGATC
-CAGACCGAccttagttttctcatctatataatgggaataatagcaggatctctcgcctta
-gatagtcatgaagtccaatgagatgatgtgtataaagccctaacacaatgTAGCAGAGGG
-CACAGGGCCAGGATTGATATTTAGCTGGTCCTCACGGATACAGCAGACTCCCTGTTTATG
-ACAGTGGTTGGCTCTGATTTGGTTGGTGTCCATGCCAGAGTGTACAATCATTATTAGCTA
-TTGATATATTATTAGCTCCCTCCCCTGCCCACCCAGGGGTTTACGCAGTAAGTTCTCAAT
-TATTGGCAATCCAAACAAAGAATAAAAGACACCAGCTGGAATGAAACAGAGAAGCTGGTT
-CCAAATTGAGCAATTCAGACTGACTGCTATAAAATTTCCTCACCTTAAAGGCCCTTAGAG
-TTAATTCATTCTAATCCCCCTAAAAATATACTTTTTTGACATGTTCAAGTATTGGAAATT
-TGGAAAATTCACAAAAACACAAAGAAGAAATTAACTGCTGTGATTATAGATGATTATACA
-CATATACATATGTATTTAATACATATTTATGCTGTACATAGTGTTTTGAAGCATACTGTA
-CTTCAAAAAAATTTGGGAGgggtgcattggcttatgcctgtaatcctagaaattcaggag
-gccaaagcaggaggatcacttgaggccaggagttctagactggcctggggcaacatagcg
-agacccgtagcttgacatggtgatgcgggcctgtagtcttagttactctggaggctgagg
-tgtgaggattgcttcaacctaggttacagtgagctatgattgcaccactgcactccaccc
-tgggcaacagagctagaccctgtctctaaaaaacataaataaaCCAATGTTTAATACTTA
-GCATTTCCCCCTATCTTTAAATATCTTCTAGCTACTTCACttttatttttatctttttga
-gatgatctcttgcccaggttggggtgcagtggcatgatctcagcttactgcatcccccac
-atcccaggttcaatctattctcctgcctcagcctcctgagtagctgggattacaggcatg
-tggcaccacgcctggctaatttttgtatttttagtagagacgaggtttcaccacgttggc
-caggctggtcttgaactcctgacttcaggtgatctggtcgcctcagcctcccaaagtgct
-gggattacaggtgtgagccactgctcctggTAGCTACTTCACTTTTAATGGCTGCATAAT
-ATTCCTCATCAGAAAGTGGGAAAAATTAggctaggtggcgtggctcatgcctgtaatcct
-agtactttgggaggctgagttggtagaattgctagagctcaggagtttaagatcagtctg
-ggcaacatggcaaaaccccatccctacaaaaaatacagaaaataccgggtgtggtggtgc
-acacctgtagtcccagctacttgggaggctgaggtgggaagattgcttgaccccaggaga
-ttgaggctgctgtgagctgagatcctgccactgcactccagcctgggcgacagagtgaga
-ctccatctcaaaaaaaaaaaaaaaaaaagaaaagaaaaaGATAAAGAAATAAATAAAGTG
-TTAATAATTAAAAGTACTTTTAGAGGGTTATGTCATAAGCCTTGACAAGACTTGTTCTGT
-AAAGCTACCCGGCATGCAAAAAGCTCAATTAAGTTAGCTCCTCCACAGGATGGAAttata
-taaccaatccctttcaagaggcattgaagttgtttccattattttgctatgatgaataag
-gctgagcaatattaatctttgctcatatctttggtcatttcctttgtaaatttcgggact
-gctgggtATGCACATTTTAAAATTAActcactcatcatcatgcagttaggagaacagaga
-aaggaaggggcttgcaccgggtcacatagggagttagcgtcaaagtcaggactaggaacc
-agccagggccctctaactGGAGCTCTTCCAGCTGGGGTCCTAGAGGAAGTCCCAGCTGGC
-CGCGGGAGGGAGGAGGAGGAAGGGAAAGAACCAGGCGCCGGGGCTGAAGCGGCGGCAGGA
-AGAAGGTGGGGCCGGCTGGGAGGAGCGGGCGGAGCTGCTGAGCAGCGCCTCTCCTTCGGG
-CGGGGGAAGCTAAGCGGTCGCCTGGCAACCCTGGCGGCGCGCCGTTCGAACGGAAGCGAG
-GAACCAATCAGGAAGTCCGGGGCGAACCATTCTGGTGTGAAGGGGGGCGGCGTGCTCACT
-TCCCCTTCCACGGCGCCCCAGGGACTTTCCCTGCGGTGGGGGCCTTCGACAGTGAGGGCC
-ACCCGCTCAGCTCGACCGCGGAGGGCAGCTCCAAAGGGGACCCCAAAGGTGCCCACGCGG
-GGCTGGGGCCTCCTGGGCGTCGTTGGGAGCGGCCACTACCGGCCCGGGTCCGAGCTGTCA
-GCCTCTCCAAAGCCTGCGCGAGAGGAGCCGGGACACGCCTAGCGCGGGCTCCAGGTGAGG
-GCGCGGGTGGGTCCGGGTGCGACCCCGGGTCTGGGGGCCCCGTTCCCCGAGCGTCTGCTG
-TCTGCTTTCTCCCCGCGTCGTACCTGCGTGTcatttcacagatgaggactctgaggctca
-gagaggcaagtgTCCCGGCCCGGCGAGCTCTGGCGGAGAATCCAGTTCAAGTCTTTCTGC
-CCCACCTCGCAGCCCCCTAGTCTAGTCACATCTGGACTTGCCTTGAGAGGCCCAGACGGG
-CAACTGGTAGTCATTTTCCCAGCGTTTTATCGGCAGGGACCTGTAGACCCCTGGCTGGAT
-CACATATCCCCGCGCCCCACACTGTCCTCGGGATACCCCCTTTGGGCGTCTGTCTTTCCT
-TCTCCGCAGTCCGGGGTTGGACTCGGCTCATTTGGCGCCTTTCTGTCTACGGGGACAGAG
-GACCACTCTTTGGGGATCGGACGGGACTGACATTTCTGGGCTGGATGCAGGGGCAGCAGA
-TTCTCCAGCCCCCAGAGCCGCTGCTGGCCTCTTGGGAATCATCCCCAGTTTGGGGAAGGG
-AATAGAGCCAGTCCCTAAACCAAAGCCACTAGTCACCAGAGACTTTGGAATTGGGAGTGG
-GGCCGGAATCCCCCCAGGTGGAGCAGCTGACCTAGGCCAGACCCTGCTGTGTCTCCtggg
-gacaccccctgccccctaggttgctattgtcagtctccttttgtaggtggggaaacggag
-gttctaagaagttaagccccttttcgaagtcacagtcagacaatgcagtggttagctcct
-agtccctctggcttcAATCTTAGAATCCTTGACACACAGAATCATGCATTTTGAGAGTCT
-TCAATCTCTTCATAAGGGAGTTACATATCCTCTCTCCTCTGGAGCCTGCCCCTGGCTTTG
-GGGGACAGGATCTCCGAGGACTCAGAAAGAAAACAAGGCTTTCTTTTATTCTTTCAACAA
-ATATTATTTATTGACTTCATAAGCCCTGCTCTGGTTCTTGCATGTTTTGGTTTTTTTACT
-TATTAGCAAATGTATCATCTTCTCCCACTGTGATGcaaggcaggggctgaggcaattgag
-ccagtgcaaaatttagggatgcccaaaacctcagtaatcaagaCTGAAACTAACGTTCAT
-GGACCATTTGTGTGTTCTGCAGGCAGGAGGTTAACTCACACAGCCTTCATGAAGTGCAGT
-CCTCCCAtctctctctctctctctctctctctctctctctctctatatatatatatacac
-acacacatatatacacacacacatatatgtatatatatgtatgtgtgtatatatgtatat
-atgtgtatatatatgcatatttataAATCATGAAACCACTgccctgtccctgagttgctc
-tgtgacattgagtaagtttcttcagtctctgggcTGAGCTAAGAAGTCATGATGGTGCAC
-TCAGGCCTGGGCAGAGGGCAGTCTAGGATAGGAAGTGGGCTTGGCTGTGGATCTGCCTCC
-CCCTCCCCTTTCTAATCctgcgtgccaggcccttccccaagaccttgcatgtgttatctt
-ccattctgtcctcactgcaaaatccttcatccccattttgcaacctcaagtgcagaccta
-ggcctagaagatcaaCTTGGTATCAGTGGGCCTAGATGTCCACATCCACACCCATTCCAC
-AGCCTACTCCCTTCTCCCTTCCTAATGTTAGTGCAAGGCCACCCTGAGCAAGGCTGACTC
-CTGGGCAGGCCAGGGCACCAGCGTCTGGGAGGCCTCCAGAAATAGCTCAGGGCCTGGTGT
-GGCTCTGGAGGTGGCCCAGCTGGGTGTCCCTGACCTGGACAGCTGGGCTGAAATTGAGCT
-GGGGCTGCCCTGCTGGCTGGCCCCTTGCCACTGCCTGGAGCCTTCCCAATCTCCTCTGGG
-GCAGGCAAGGGCCTCCCCAAATCTAGGCCAGGCTTCTGCTGAAGGGAAAGAAAGAAGCAG
-GTGGGAGGAAGGGGGCGGGTTGGGTGTAGAATGTCATGAAAATTATAACCTTTGGAAACC
-ACACCTCCCACCCCCTCACCAAAGAATaaaaatcactaacacctcttgagcatttactat
-gttctaagtactttacaagtatgaactcatttaattccctcaactctgtgatataaggta
-attactgctgttcttatttccatcttgcagaggggaaactgagcacaagagaggtttaat
-aatttgcataagataacctagaggtggagtttgaacccagagagtctggctctaaatttt
-acatttttTGGGGGGGGGGGTGGGGTGGGGCAGTGAATGAATtaaaatgtatataaaata
-aaatttaccattgtaaccacttttaagtatacagttcagtggcattaagtacattcccca
-ttgcctctccccccagtgcctggcaatcaccattctactttctgtttgagtgaatttgac
-tactttgggtacctctaggtattataaatggaatcataacagtatttgtcttgttgtgtc
-tggcttatttcacttagcataatgcctttaagtttcacccatgttgttgtatgtgttaga
-attttcttttttatggcggaataatctattctaatattctatgtatatgccacattctgt
-ttatccattcattccttgatggacacttggattgcttttggctgttgtgactaatgctgc
-tttgagcatgaatgtacaaatatctgtttgagttcctgtttttaattgttttgggtatac
-actcagaagtggaattgctgggtgatcctatggcaattctgtttaattttttgaggaact
-actttactgtgtttcacagtgactgcaccattttatgtgtccatcagcagtgcacaaagt
-gctaatttctcaacatcttcaccaacacttgttattttctgtttgtattttttttttggt
-aatggccatcttcaggggtgtgatgtggtgtctcattgtggttttaatttacatttccct
-aatgactaatggtgttgagcatcttttcctgtgcctgttggccatttgttatctttggag
-aaatgtctgttcaagtGACTCTGCAttgttttttttttttttttttttttttgagacaag
-agtttcgctctgtcgcccaggctggagtgcagtggcgccatctcggctcactgcaacctc
-tgtgtcccgggttcaaatgattctcctgcttcagcctcctgagtagctgggattataggc
-ccccgccaccatgctgggctaatttttatatttttagtagagacggggtttcatcatctt
-ggccagtctggtcttgaactcctgaccttgtgaaccacctgcctcagcctccaaagtgct
-gggattacaggcttgagccactgcacccagtcATGACTCTGCATTCTTAACCATTACCTG
-TGCTTCTCTTAGATTTGTAACCTCTGAGAATAGTGGATCAGCTTTCTGGGCTGATGAAGC
-CCTCCCTCAGGAGCTGGGCACTGGATGATCTATTTGGTTGAATAGTTATCATAGCCTGCA
-CTTTGGTGACATTTGTCATGCATGGACCTCATGCAGAgagggaggcactgttgtgagtcc
-tgttttgcagttagggaaactgagatatggagaagttgagtattttatccaaggtctcat
-agctaatcattggtggagctaggatttgaatgggttctggagtccatgctATACCTTACA
-GATAtggccagggggatggagtagtgaagaccactgcaggcagcagaaccagtgtgtgca
-gaggTTTGTATATGGTGGCTTTGGAGAAAGAACAGGACTTGGGTAGAAGTGGTCAGAGCC
-CAGCTTGAATGGGGGTGACTTGAAGTTGGAGGAAGAGTAGGACAGGTCTGGAAAGGCCAG
-GAGCACGGTGAGGGTTTGGGGAGGAGGCTTGGTGCTTAGGGACCCTGTCCTTTTTTTTTT
-TTCtcttctcacaagatatttattaattacaaagggaaaataataactgtacagtggaga
-aatttggcagatactgccttaaccaaggaattggctgatcactaagattaagacaaactg
-ttgttatgagtgggtgtggtaatgtacctatagtcccagccactcaggaggctgaggtgg
-caggattgcttcagcccatctatttgaggctgcagtgagctatggagtgcactccaacct
-gggcaacacagtgagacctcatttctaaaaaaagaaaaaagaagccttctgataccatgt
-actaagaaggacacaacatcacttttgtgttattcttgacagatatgtttaacttTCTCT
-CctttctttcttcctctctttctttcttctctctttcttACTGATATAAGAAAAAGCTTT
-ATACATTTAATATATACCTCTTGATGAGTGGCCTTGGCCTTTGAGGTGGGCTGGGTCCAG
-AACAGCCGGTTGTTCAACGGTATTTCCTCGTGTTTGGTCCCTGAAGGAAGAAAATTGGAA
-GGGTGTGATggagctcatggtccagtgggagagacaggaaacgagttatatttcctatcc
-tagataagagtatctaaaatgacaggatgtaatgagtgctcggaagggaataaaatgggt
-gaaattgctgagggggtctcttggaggagatgacatttgaaatgagatctgaagggggtg
-agggaagaggttccagacagagaacagctggtgcaaaagccctgaggcaggaaagacctt
-atgttcaggaacagcagggagggctttgtggccagagcaggaaagaggttggagataaga
-tgggagatttggacaaggactgagtcctggaaggcctgagggccaagtggggagcttggA
-ttttttttttttttttttttgagacagagtcttgctctgttgtccaggctggagtgcagt
-ggctcaatctcagctcactgcaggGAGCTTGGATTTTATTGTAAGGGAGCCACAGGAGGG
-TTTAAACACAGCAGTAATGAGACTTTATTTCTGCTGGGAAAACATtgccgttattgcccc
-cattttacagcagaggaaaccgagactcagaaccatgaccagggagtgcttcctaaggtG
-GTTTCTCCCTCTGGGGTCCAGCCGACGAGGCAGTAGATTCCTTGGGACTTCCTTGGGGGG
-CACATCTGGTGAGTGGCCAAAGCCCAACACTGAAAACACCGTCTCTTCCACCTCCCCTCC
-CCAGATGTGAgcctgggttccaatcctggctctaccattaatcagctgtgtaattttggg
-cacgtggccttacctcttggagcctcagttttctcatctgaaaatgggcataataatagt
-agccctcacagggtaggtgtgaggattaaattagttaacattttgtagagcttagaacag
-tgtctggtacaaagaaagtgctcagatgagatttgttcttTTCTTTTTTGGCTGTAAGTT
-TATTCAATGTGAAATAATCCTCTCCAATTTTATTGAGGTGGCTGACCACGTCCACGACCA
-CATCTGCCTCTAAACTGGAATTCGGTTGCTGACCCAGCCCCAGCCTCGGCTTTCTTGTCA
-GCACCAGGGGGCACAGAACACCGTCTGTAGGTATCTCTGTCAGCTTCCCGTCTTGTGAGT
-CTTGCAGGTCGCTTACCCTCCAGACCTTTAGGCCGAGGCCTGCCAGTCTCTGGACGGCTG
-CGGTGTAGGGTGGCAGGAACAATCTCCGGGGGCAGATGTAGGGTGGCAGGAACAATCTCT
-GGGGGCAGATGAAGGTAATCACGGAGATACTGGCTACCCTCATTGGTAAGGTACCAGTAG
-AAATGTCTCCAGGCAAACTGTTCCTTCACGCAGCCCCGGGACTTGAGAGACTGCATGGCC
-TTCATGACGTGAAGGTTGGGCACATTCTTGTCTGCCAGCTCCGGGTGCTTAGGCATGTGG
-ACATCCTTCTTGGCCACCATGACTCCCTCCTTAAAAAGGAGTTCATGAATGGCAATCCGG
-TTCTTCTTAGGCATCAGCATCTTGGCAGCTGTAGGGTCCGGGGCTGGGGCTGGAAAGGAA
-GGACTGTTCTTTTCTTTGCTATTACGAAAATCATTATTGTTGCTTTGCTGTTACTACTAT
-TAGCGCCTGAAGGAGCCTTCCCTCCCCATCCCCCATTTCTGCCTCCGTGGAGGGCTAGGC
-AGGGCTCAGCAGGCCATTTGGAGGATGAAGGACTTGTTGCCCCGTCCCCTGTAAAGTCAG
-GGACTGGAGGAGGCTGCAGTGCTGAGGGGGAAGGAAAGCTGATGTGCATCACTGCCGGTC
-TCCTCATGCCCTGTACCCTAGTCCTGGCCCAGCTCCCACAGGCACAGACATGGAACAGGA
-GCCTCTTCAGCCTGAGTGTGGCAGAGGGCTGGGGCTGAGGCCTGGGGGACAGCTCCTTCT
-CTGGGCCTCAGGATTCCCATGAAAAAATGGCCTATCAAATGTTCCTACCTGCAGTGAGTT
-ATAGGACTTGGGGTGGAAGAGGTGACAGTCACCTCCCTCTGGGAATTCCTTCCTGCAGGG
-CTGCAGTCTCATGGGATTAAATGAGGGGGCTCTGGGGATTTAAATGAGTATGGTGCCTGG
-CACCCCAAAATTCTAGTTATTGTTGTTACTATGACGGCTGTTGTTGCCGATGTTAACCGT
-TTTCACAAGGCAGCTGAGGCATGCTCAGGCTCAGCCTGTTCCAGAGGGATGGACTCTACA
-CGTGACAGCATGGAGCACCAGGAGGGTCCCGCAGCCTGGTCAGGGACACACAGCTAGAAA
-GTGGTGGCGTTAAGCCTTGGTCTGGAGGGAAAGTGCGCAGGCTGGACTCCCCAGAgtgat
-tttgggctagtgactcagcctctctcagcctcagtttaccattagtcaaatggggtaaca
-atagaactcaccagatagtgattgttgggaagattaaaatgggttacccgataccaagaa
-aaacactttcccgtgcctggcacaGTGAACATCACCTGGCGGTCGTTCTGAGTGTCAGGG
-AGCGGGGCTCAGTTTGTCCATCTCTAAGGTGGGTGCGCTTGCCTGCCAGAGCCACGGGGA
-CCCCGCGCGCCAGGTGTGCGGTGGGCGGGTCTCGGCTCCCGGAAGAACTTCCCTGGGTGG
-TCCTGGAGCGGGTCGGACCCAGTTCCTGAGCCAGGCCAGCTGCCGGCGGCCGGGGCTCGG
-GTTCTGGCCCCTGCCTGGCTTTCCTTACCCTTTTCGGGTAGTACCTGGACCAGCGGGTTC
-ACTTGCCCGCGGCCGCCGGAAGTTGCGCAAACTCAGCTTGCCGGAGCCCCAGGTGGGCCG
-GGCCGGAGGAGCGCAGGCCAGCGGCGCGGGCGCAGCCGGGTACGTGCGGACCGCGGCGGG
-GGGCGCCCAGCCGGGGTAGGGGGCGGCCCGAGCACCCCTCCACCCCAGGACGGCGGGAAC
-GGGGCAGGGATCTACCTTTCGGCTTCAAGAGGACCGCGGGGATGGTGCCGCTCTCTCCCT
-CATTTGAGAGCCAGGAGGGGCGGCGAGGGGCAAGGGTCACACAGCGCCCTGCTAGCCGAC
-CCCCCATCCCCCGCCACCGGGAGTCCTCAAGCTTTTCCGGAATTGAGGGAGAGCAAAAGC
-CAGCCTGGGGATCTGAGTTCCCCCCAGCCCTGCCCCGCGGCCTCTGGAGGCTGACGCTGG
-GGAGCTAGTGGGGAGGGGGCCAGGTGGGGATGCGCGCCCCCGGGATGCAAGCCAGAAGGG
-CCGGCGGTTGGGGGCATCCGTGGGAGGCATTTGAATCCGTGGGTGGGGCATTGGGCGGTG
-AGAGGAGGCCTCAGAGGGGACATTGAGTCGCGCTTGGGGACTTGGGACCCTGGCTTCACC
-TGGCGGGAGCCGCTGCACCTCCGTTTGCCCACCCGTGACGTGGGGCTGTTGAGGTCAGCT
-CACCGATCAGCCTCTGTCTTGGGCCTGCTTTGTCCGCGGTGTGGGCTGGGACAGACCCTC
-GTGGGGCTTGCTTAGAGACCCCTGCGTGGGGGTGGTCTGTGGACTTGGTTAGTCGAAATC
-TTCTTGAAGACCAGGAGCCTGGTTCGTGGCTCCGCctttttgccagatgccgaggaaagc
-cctcgacctgtttgatctctccatccttatcgtgacctggaggctcaggaaggtctattt
-ttaacctcgtttcacggataaggtaaccgagtctgtaaagaggcgaagctgcttgcgcaa
-ggcgcacagcgggcgggtgggcgagccGAAggccggcgggcccgcggcgccAAACCCGGG
-GTTGGCTCTCGCATCTGTCCCGGCCCCGCCAGAGGGGACCTCAGGGCCAGCAGATGGGGC
-CAGAGGGGCTGGGGGCCCGATCGGGGTCGTGCACGGGGTTTCTGCCCCGGCCCCGCCCGT
-CTGACCTCCTTCTCCCTCTTTATCCGGATGGTGCCCGCAAGGGAACTGCCACTGCGGACG
-GGTTGGACTGGTTTGGGAGGTGGCGGCCTGGGGGTGGGGCAGAGTTTGGCTGGCTCTGCT
-GTGCTCCTTTCCTGTCAGGTCCTTCCCACCTGAGGTCTCCTGGGGGTCGGCCCTGGTGGA
-GCGAGGCTTCCTTTCCCATCCACTCCATCTCTCCTGCCTTGGGAGCAGCACCCAAGGATC
-TATTCCCAACTCATGGCTGCTGCAGAGGTCTCCAGCTGGTGGTTGGGGGCCAGATGGAGG
-AGGAGGGGACAGATATGTTCGCAGACATATTTTGTTTGCTGTATATGCAATGTTTTAATC
-ATTATTATCGAATATGCTGACAGTTAAGAATCTAGAGTTTTTATGTACTCCTGGATTTCC
-AGCTTCCTGGAACAATACACCTACCACCTTGGACCCATATGCCTGCAGCAGGCAGGGTAC
-CTAGATGTCTAGTTCATCCCTGATCACCCAGTTCACATCTGGCTCCCATAAATATttcag
-ttcaataaatttttattgaatattctgccctagtatgtgtctagggcagtatcttgaaac
-tggggtatagtgaacaaaatagccaacccccgcccctacacacacacgcctgccctcatg
-gagctgatattttagggggatagagacaacaaagagtaaaacaaccatacacaaatagag
-tacttgtgcaggggataaggagaaaaggaatagtgccgggagggggtcaggagtgccggg
-gagaaacaggacgtggtattGAGATCAGTGCCTTatttatctattctgggacctgggaaa
-gccacttctctgagtctcagtttctccatctgcacaacgACCCACAGGCTTGTGGGAGGT
-TATAGGGAGGATGGCACCCAGCAGAGATCCCTGCCTCCCCACCCCAATCCAGACTCACTC
-CCTTCTGGATTTTTGGATGTCTAGGTGGGgctgtccaatgtagcttcctaccatggatgg
-aaatgctgtactctgtgctgccaaacacagtggcaactggccacatgtggctattgagaa
-cttgaaatgccactagtgtagctcaggaactgaattttatgtttttatttcatttaaatt
-taaagttaaggttgaatagccacatgtggctgctggctattgagctggacagcacggGTC
-TAGATGGCTTGAACTGTAAGCCTTCTTGGGGAACACCCAGATTAAGTACCCGCCCCCTCC
-ATTTTACAGATGAGAATGTTTGGGACTTGGTATGTGGGTTTTCTTCTGTCCCATCTCCAA
-GGGGCCTTGTGGGGTGACTCTGTGGGCTTGGCCCTTCCTTGGAAACAGGGTCAGGGTTGG
-CTTGATGTCTGGGGCATCAGGTCCTGACACTTGGGTGACCACGTAGACACTTGTGCATCC
-AGGTGTATGCCCTCCTCCCAGGTGAGTACCCATTCCATGGCTGCAGGCAGATCGAGGGTC
-TGCCGGATGCCTCCATGCAGGGCTGTGTGATTTTGGACATTTCCAGCTTCTCTCAGCACA
-GCATAGCTCAGGGCTGATGTTTCCACGTGACAGGCATTTGTGGATCACCGTGGGCCATCC
-AGTTCCATGCAGGAAGCTGACGGATGTCTGGACTCCACTGGGGCGCGGGTGGAGATTTTC
-TTTGCTCCTTCCCTATAAGCTCTGCCCTTTGCCTGGGGCCTGGCATGTCTAGGCGGGTGG
-ATGGCACAGGGCAGCTTCCTGCCTGGATGGGTGAGGGGTAGAGGTGGTACCAGGCTCCCT
-GTGGGGAGTCCAGGTGGGGTGTGGGGCTGGAGCCCTTTTTCTTGGTCATTTAACCCTACG
-CCCCGGTGCCAGCACCTTCCTTTTTGGTGGTCAGGGGCAGAgccacctactcgctgggtt
-aacttaagcaagttgtttgcctctctgggcttcagtttctccatccaaaaaacggggctg
-ttgagaggacctGAGGTTGAGTTGACTGGTGCGTAGCACAGAGCCTGGAGCCTCCCTTGC
-TCCCTTTAGCGCGTGCCTTGCCCTGTCTTTTCTGCTCAGGTTGCCCAGGTCGCCCAGGTC
-TTTTTTCTCTAGCACCTTTTTTCCTCTCTTGGTCTCAGCTGGGCCTGGTTCTCCCGGGGC
-AGGAGGGAGGGGGTGTGGGTGGGGCCTGAGGCCCCGCAGCTGCTGCCTTGTGCCTGCTGA
-TTGGCTCCTTGTGGAGGGGCGTGGTCTCTACCTTATAATAGGGAGGGCGTCTTATCCTCT
-CAGCCGCGGCTGAGCCTCTTTGTCTGAGCGCGCTCGGCTTTTTTTTTTTTTTCTCTCTCC
-TTCCCTGCAGCAGTGGCCGGTGTCCAGCTGCCTACTTTCTGCCCGGATCTCTGGCTCCTC
-ATCTCTCCGGTCTCCGCAGACTAAAGCCCTCGGGATATGCAGCAGCCATGCCTGTGCACA
-CGCTGAGCCCCGGAGCCCCGTCCGCCCCCGCCCTACCTTGCCGCCTGCGGACCAGGGTCC
-CTGGCTACCTGCTACGGGGGCCGGCAGATGGTGGAGCCCGGAAACCGAGCGCTGTGGAGC
-GCCTGGAGGCCGACAAGGCCAAGTACGTCAAGAGCCTGCACGTGGCCAACACCCGCCAGG
-AGCCTGTGCAGCCCCTGCTGTCCAAACAGCCGCTCTTTAGCCCTGAGACTCGCCGCACAG
-TGCTCACGCCCAGCCGCCGAGCCCTGCCTGGCCCCTGCCGACGGCCCCAGCTGGACCTGG
-ACATCCTCAGCAGCCTCATCGACTTGTGTGACAGCCCCGTGTCCCCTGCCGAGGCCAGCC
-GCACTCCTGGACGGGCCGAGGGAGCCGGCCGTCCTCCCCCAGCCACCCCTCCGCGACCGC
-CGCCCAGTACCTCTGCGGTCCGCCGGGTGGACGTccgccccctgcccgcctcgcctgccc
-ggccctgcccatcacccggccctgccgccgcctccagcccagcccggccGCCGGGTTTGC
-AACGCTCCAAGTCGGACTTGAGCGAGCGCTTTTCTAGGGCAGCCGCTGATCTCGAGCGCT
-TTTTTAACTTCTGCGGCCTGGACCCGGAGGAGGCGAGAGGGTTGGGTGTGGCCCACCTGG
-CACGGGCCAGCTCGGATATCGTGTCCCTGGCAGGGCCCAGTGCTGGGCCGGGCAGCTCTG
-AAGGGGGCTGCTCCCGCCGCAGCTCGGTGACTGTTGAGGAGCGGGCCCGGGAGCGCGTTC
-CCTATGGCGTGTCGGTGGTGGAGCGCAATGCCCGCGTGATCAAGTGGTTGTATGGGCTAA
-GGCAGGCTCGGGAGAGCCCAGCAGCTGAAGGCTAGGCGCCACTGGGCCTGGAATTCGCCA
-CAGGACGGATCTTACAGAGGCAAGTGGTCCCTGGACCTCTCTTGCATCCATTCTCTAGAC
-GGCCGTGTCAGAGGCTCCACCCTGTTGTGAACTTGGTATGGAGGCAAAGGCTTAGAGGCT
-GGACCAGCATTGTTGGGCAAGGACTGACTCTCCAAGGGTTTTGTTCTTGGCTTTGGACAC
-CTGAGAACCCCCTCCTCCCCTCCCCCAATACAAGGTTTTTGACATGAGTGTACTCCTGCT
-TAGTTCCTCTTGTGGGGCTGCATTTGCGGTGCTTTGCCCTCCCCACTGTGAGTGAGGGGC
-CAAGGGATCTCCTCAATCCTGTCTCCCCAGCGGCTCTGTTTCCTCCTTCCTTCCTTGGCC
-TCTGTCCTTTGCTGACTTCCTCTTCCTTACCCAGCAGAACTCACCCTGGGGTCGGGGCAG
-TGGGGAGGGGCCTATCCACTGCTCTTCCTAGTCCTTGGCAGCTGGCCTAGGTGGGCAGAC
-TATAGGAGGGACTGGTTAGGAGTCTGCATTGCTTTGACTTCCCTCTCCTTGGTTAATAAA
-CACAAATGCTTGTTTCTCAAGGGCTGGGCCTTCAGACTCTTCTGTGTTCACAAGAGAAAG
-GGTGAGAGAAGTCTTGGGGTGGGGCCATCAAAACAGTAATTGTTCACCCCGAGGTCTAGT
-GGTGGGGCATGATGATAGCGGCTGGCCTGGCTGGAGACATGTCCCCGTGGTGGGTTCTCA
-TAACTCTCCTGGAAGGCTAGCAGGCCTGCCTCATCGAGGAGGAAACTGAGATCCAGCCAT
-GAGTGAGCTGGAATAGAGCTGGGAGTAGGAATGGGGTCTTTCCCCTGCACCAGAAAGGGA
-GCCTGCAGGGGAAAGGCCGATGGGGTGCATAGACTCTCCCCAACCAGGAGTGTTCCATCC
-AAGCCCTGCCCAGTTCCCAAGGGGGCAGGAAGCTCGGAGAGGGCAAATCCTGAACTTGAG
-GTCACACAGACCATAGAGTGAGGATGAGAAGTGGGAGTTTTGGAGGAAGAGAGACTTGGG
-GTGGACGGCACAAAATGAGTGGCctccctggcgatcttggacaagccagtttccctctgg
-gcctcagtGGGAGAGTTAGGCAGCACAGTCCTCCTTGGGTTGGGGCACTGGTGCATTCTG
-GGCCCTTCATGCTATATTCCAATACCTGGGGAGAGGGGAAGGAAGGGGCTGGCACTGGGC
-TTCGAGGCCTCAGCTTCTTCCAGTCTCCCTCCAGGTCAGTTACCTACTAGGACACCCCAC
-CTTGGCTAGTGGAGCAGCTAGGGCTAGAGCTGGGCCTACAAAGGGCGAAAGCGGGGGTGG
-CCTCTCTGGTGCCCCACGGTGGGCGTGGAGAGGGGGTGGGTGGCGCTTCCTTTCACAGGC
-TGCCTTGGCTGCAGCACTCAGAAACAGGAAGCTCTAATGGGGGCCCTGGTGACAGGTTTG
-ATGTAGGTTTTATTTTAAGCATAAAGAGGAGATTTCCGTTGGACTGTTGACAAACATCCA
-CATCAGCCCAGCTGTCCATCTCTCTGTCTGTCTGCCTGTCTACAACTAGCCCCCAGGGGC
-CTGGGATGGGCCTGGGCAGTTTGGGGAAGGAAGGGAAAATTGGGTTCTAGAAGAAGATGG
-TGTTCCAGCTCATGAGACTGGAGCTCATGATACTGGTGGGGAGACAAGCATGAGGAGGGT
-GGTGACCTACCCACAACCCCCCATGGTGCCCAGCAGTTTTGACAATGCAGGAGCTGGGCC
-TCCAGGGTCCCCATGCTGAAGGAGTGATGGTGTCAGGAGAGAGAATCCAGGCAGGATCTG
-CAGACGTGGTGCCCTTTGAGGTGTCAAAGACTAGATTTCCTAGGCAACCCTGCTAGAATT
-CAGGGCTAGTCATTGCCCCTTGCTGTGACCTGGCAGcctccgagtaacccaagaaggtgg
-atgggctggctgcattttacatgtgaagaaattgaggttcagGTCACAGGACTGGTGGGT
-GACACCTTGTTTCTGAAGGAGGGTACAGTGCttgaatcctcaaggtagccttttgaggac
-cagatatattgtcagagcaggaggttgagctcagggaaggatagcgacttgtatactgtc
-acatagcaggtctgcaggacagcctggggtcacactcttgcctgccagacACATCGCAGT
-CTGGATTCCTGGTTCTCCCAGCATGTACCCCACCACTCTTCCTCATCTTGGCAGCCTTTT
-CTTCTGGTCACTTTATTACTGAGCATCTActgggtgcccagcagtggataagacagacat
-ggcccctgtcctagtctggagaagagaatgggcaactaaacattcagcacataaataatc
-atagaatgtAAAGCAGGTATACTTAGGGACTTCTGCCCTAAAACCAGAGCTGTTCCCAGG
-AGCTGGACCAGGGGATAGCTGAAAAGAGAACGCCTTTCCATAAATCCACTGGGAGGGTCT
-GTTGGGGAGAGAGCAGGGAGGGATTCTTGGAAGTGGGGAAGGTGCCAGATTGAGTCTTCT
-CCAATGGTTATGGCTTGGTCTTGGGAGGGCTCCCCCTGTTCCAGGATTCTGGAGCCTCCC
-GCCTTCCCTGCAGGCCTCTGTGGAGGGAGCAGGGCGGGGGGCTTTTGCACTCCTCCCTCC
-CCCAACCCTGCAGCCTTGGGGATCTGTGGAAACAGCCCCTCTATTGTTCTGCCTCCAGTT
-GGAGTGTGAGCCCTCGGAGGGCCTGCAGCTGCTGCCCTGTCTCCTGGGGCTGCCCAGCCC
-TCCGAAGCAGCTCCCCCAGGCCAGCCTGGCCCCAGCTGCCTAGCCCCTAATTAGGCAGAG
-ATGGGATCTGCTCTCTGATCCATTTCCCACCAGCTAATTATATACACGTGGATTtgggaa
-ccaggcaacctggctgctcacttctatcatgaaggtggatgggccctgggaaaggcagcc
-ccccccccacagacctcagtttacccttttggcagaggatggagtGTAGCTGCAGAGGCC
-TGTTCCCTGTCCTTGGTTAAATAGTTCTGTTCCTGCTACTGAAACATTTAAGGAGACCCC
-CCACCCCCATCTTACCTGATATCCTGTGTACAGGGGACCAGGAAAGGGTTGAGGAATTTG
-GCTATAGGTCCTTGACTCTAGGACCCCAGGGTAGGGTCATAGGATATAGATGAGAGCATG
-GCTGCAGCTGGCTGCCAATTAGATGTGCATATAGGAGGGCTTACAGTTGTGCTGGTCCAT
-CTGGGTGGCCTGAACACCCggccgggtgcggtggctcacgtctgtaatcccagcactttg
-ggaggccaaggcaggcggatcacttgaaaccaggagtttgagaccagcctggacaacgtg
-gtgaaatcccgtctctactaaaaatacaaaaattagctaggcatagtggcggacacctat
-aatcccagctacttgggaggctgaggcatgagattcgcttgaaccctggaggtggaggtt
-gcagtgagccaatatcatagcactgccctccagcctgggtgacaaagaaagactccctct
-caaaaaaaaaaaaaaaGGAGTGAACACCCCATCCAGGTTTTTAAAAaggtaatattggtt
-gatgggtacagcaaaccaccgtggcacatacatatctatgtaacaaacctgcacattctg
-cacatgtatctcagaacttaaagtagaataaaaataaaataaaaGGTAATATTATTTTTC
-AGATAATTCACTCATATATTTCTTCCAACAttttattaagaaaaatttcaaacatagagt
-tgaaagaattagacagtgaacattcatatacccacctactaatgcacacttgttaatatt
-tcactatatttgctctatcaggaatctacccatctctccatccATTAATACAACTTATTT
-TTTTAATACAACTTATTTTTTAATAAAGCTTTTCAAATTAAGTTGCATATATCAGTACAC
-TTCCCTTAAAGTCACTTTAGTGTGCATGCCATTAGCTAGAATTCAATATTTGTTTGTCTT
-GTTCCTCTCTaggtaacatttacatggaatgaaatgcacagatcttaaaggtgccatttg
-ctgaatttagacaaatgcatactgtaccccaaacccctatcagggtatcaagcattatca
-cctcagaaagtttccttgcatcgctctcctgccgattgctgcctgcccaCCATGGACATA
-TTTTTATATCCATATATATCAGTACTAACaagcagcatcccttgtcctttcctctacatc
-agcctcgctccccaaaagcaaccacttacaacttcttaaactatttcttctggtactttc
-ctccatatttttaaataacttgcttttcctgctgttttcttgatcaattttaggcataca
-cacacacacacacacacacacacacacacacacacacaTATATAtttattttttttttga
-gacagaatcttgctctgttgccccggctggagtgcagtggtgtgatcttggctcactgta
-acccctgcctcccaggttcaagcgattctcctgcctcagccacctaagtagctgggacta
-caggtgtgtgccaccacgcctggctaatttttgtattttttgtagagatggggtttcacc
-atgttgaccaggctggtcttgaattcctgacctcaagtgatccacccaccttggcttccc
-acagtgctgggattacaggcgtgagccagtgtgtctgaccAATTTTAGGCACATATTGAC
-TGACTTTCTGGTCTGATGTTttcatagtgtggcctccactgcctggctgcctggctttgg
-atcccagcccttcctctttctggctgtatgaccttgggcagtaacttaacctccttgggc
-ctcagttttctcatttgtaaaatgagggtgataataatagtgctgaggttattggattgt
-tatacggattcaagatgtaaaaggctgagaataatgaacatcacccagtgagtagtcaaA
-CTTTTTCTTCTCATAATCATTATTATCAAGAAAGATTTAGCTTTTGGTTCCCCCCTTTCA
-ATTGGCATTtatcacaattttttgtgaagtggattttagtgttatttatattatgactat
-gtaaatactgtttcctttcaagccaagtcatatattttggttacatttcctttcttgtac
-aactctttgttcttcctggagttactactcgctttgctttttttcatttgctgtttcctc
-ttaacccatccttaattcTCTTAATTCTTTGACACCCTCAGTCTCCCCATAGTTAACATT
-ACACATCCTGAAACTCTTCAAGTGCTTTTAAAGAAGCATCCCCATCCATTTAAAAAAAAC
-TGGAGCCAATTTTTAAAATAGAATCTCAAATACAATCTGTAAaataaagatttgtgagca
-tccactatgtgccaggagctgtgctaggcagagtgggaaggtagccaaataggggatatc
-cctgcccatgtggGTTTCCAAGAGGGATGAAAACTGAAGCTCCACACCCCCAGCCTCTGC
-ATTTACCGGGGAACACCTCAGCACCTCTAGGAATCTCAGGACCTCAGGGAGCCCAGATTT
-ACTTATTTGTAAAATGAGGATCATTTTGTCATTCTGCAATCACTCCTTAACCATGTTGTC
-TGGGGCTGTGTTGTGGCTGCTGGGTATAGAGCAATGATCTCCCCATCCCTTGAGGGGCTC
-ACAAGAGCTGTGGGATAGAGCGGAGGCTGTGGATTGCAGCGGAGCAATGGGAGCTGGGGA
-GCGGGTTTCCCAGAGGAAGTACCATAGGACGAAGAGGGTCTTGGTGGGTAAGGGCAGtaa
-acggctgttatgttccaagggctgtgcgaagaacttccatgtattgtcccatcaaatcct
-cccaaagacccattgaaaggggtcatatttttatcacaatttcatagatggggaaactaa
-ggccaggagagtccaaggccagggtcacacagctaataagcggcagaggcagtatttgaa
-cctatgcagttgggttcttaaccacacactgcactgtCTCTCACATCCAGATGCCCAGCT
-CCTGTCCCCACCTCATCCTGTATCTGCCTCGTCCTCTCCTGTCTACCCACTGGTGCTAAC
-CTCTGGCTCATTCCATGCCCTTCGCTTTATTCatccattcattcaacacaaatctactgg
-gcgccttttccacgcccaaccctgggctgggcagtgccagggacatagAGCTTGGGCAGT
-ATTGACTCACCCATTCCCAGATAGGCATTGACATTGACATGCAAGCGGCCAGGAAAGTTG
-TCTAAATAAAGGGGTGTTTGGGGTTGAGTGATGGCtgtgtgtatgtgtgtgtgtgtgtgG
-CCTGCAAGGGGTGTGTGTCAGTGTGGCAGCAACAGACTTTCTGTGGAGGCCATTTATGAA
-GGCATATCTGTGTACCCTTGAGAGTGTGTTGTCTGCAGAGGGTGTGTCCACCAGGTATGt
-ggatcagtgaggctctgctgcataacaaaccactctaagcccagaagcctaaaaccactt
-attagcctgtgtgaagtggcagtctggcctgggcttagctgggcagttctggttttacct
-gggttcacttgccttgctgcagtcagctgagggtgggggctctgggagggcttcactcac
-atgcttagcagttggcaggctgtttgctggggtgcctccatttgctttgatgaggctggc
-ttgggctcatgcttatggtgacctcagggttccacattcagcaagagaagataagctcca
-acgcacagtgcattttgagcctctacttgtgtcaagattataaatgtcctaatagcccaa
-gtgacatgtcaagtcagattcaaaggatggagaaatagactctctctctCTCTCTCTCGG
-TTGTGTTTTTGTTCTTTGAAAACAAGCCCGGCTTGCctggctccatcgcccaggctggag
-tgcagtggcgcgatcttggctcggtgcaacctccgcttcctggttcaagcaattctcctg
-cctcagcctcctgagtagttgggactacaggtgcgtgtcaccacgcccagctaatttttg
-tatttttagtagagatggggtttcaccatattggccagactggtctcgatctcttgacct
-catgatctgcccgccttggcctcccagagtgctgggattataggcatgaggcaccgcgcc
-tggctTAGAATCCATCTCTTagtcacattacacagggcatgagtacagatatggaggaat
-tattgtagctgattttcaaacaacttaccTGTGTGTGCAGGTAAAGAActagggacagtt
-ctcagttttggaaataaaaaaaactctgggctgcagtcctggctcttccgtccttgctgt
-ctgaccttagtcaagttgtctcattctctgagcttccgtaaattggataaaattgaatga
-aacgagatgatctttaTAAAGTGCTTGTGCTACTCATTTGTTTACAAACGcagcacatat
-ttattgaggcctcctatataccaactactggtcccaccccgaggatattgcagtgaacaa
-aatggaccaaaacacctgctcttgtgaagctcacagcctaggttgtagacagatgttaat
-tgatcatcctaataattgtatgaccattgagagtagattccggaaggagagattgctgac
-ctggccaggttgatctgagaagccaaagatatttaagctgagatgtgaagggtaggtagg
-agacaacgaggagaagaaagataggagtggaaaatgattctagatggagggcatgtgcaa
-aggccctgtggtgggaggagtagattccaggaacacagagaaggtgggtggggctggGCC
-TGAAGCACCAGGGCCAGATGGTGTGGGGCTGCTGGAGCCTTTGAACAATGTGAGGGTCTG
-TCTTGCCAGGCAGcctaaaataaaaccgaaaggcctaactgctccacaaggccctcatga
-tcggggaccttgttactcctccagtctcccctttacctactctgctgcagccatgctgcc
-tccttcctgttccaggaacaccctggacacattcccacctcagggcctttgcacttgcca
-ttgcctttactagtatcgaccctacccagatattctgatgactcattctgtcacttcatt
-tccatctctgcctcttcaaaggggccttccctaccaacccaccacaacccccctgcccct
-ccagctaagcagtcagcatccagcagtctctacttccctggcctggtttatttctcttcc
-tagcacatatcacctcctggcttatattaaccagaggccacattgtctgtttctcttctg
-gatctctcaccagagtgcagctcagcaggcagggacttggccttgctctaggctgtgtcc
-tcagcctcaggggaagagtaggcattccataaacatttgtgaataaagaaatGAGTGAAA
-ATGAGTGAGTGAATGCTGGAAAGAACTAGCTCctggaaattaggaggtctgggttcaagt
-tctagctGGGCGATCCTTTCTGTTCCTTGGTTTCTCCAGTTGAGCTGTGAGGCATTTGTG
-GTCTCTAGGGAGGTTCTAGGACAGGAAAGGAGTACTCCAGGCTGTGGAGGGGGCCTATGT
-AGGAAGAAGGGAGCTGGGGCCTTCCCTTTGGCCTTCTGGCGTTTGAAAATAGCCTAGCTC
-AGCCCCTAGCTTGGGCCCCTACCCTCCCTGGGGTGCCAAGCTGGAGCCAGGGGGCTCTGT
-CTGGAGCCTGCCAGCCTGGTGCCGGGCTGGGATCAAGGCCACCTGACAGCTGGGCCAGGC
-AGTCCTGGAAGGTTCTTAAGGGCAAACAGGGCATGCTGGATGTCCCAGACCTCCCTCCCC
-ACCTATTGTCCCTCCTCCCTCAGTGTCCACCGGCAGGATAAATCCCTTCATCCTCTACAG
-GCCTGCAGCCCTTGCAGCTTGCAAATCTTTTTCTTGGTTTGTTTCTAATTTCACCCCTGC
-TCAGTAGctactttactggtgaggacactgaggctcagagatgacaactgcctcactgag
-gttacgttgcagttatgattcaggcccaagtctTGCCCAGCCCTGTCCTGTCACCGCGTG
-CACgtgtgtgtgtttgtgtttgtgtgtgtgtgtgtgtgtgtgtgtgGTCTCACTATCAAA
-CAGTGCCCTCCCTTAACCACCAGTGCCCCGGGTCTCTGATAAGATGtgatgactatgagc
-acctggagccaggtggcctgggttcaaatcccacctttgctacttctatactgtgtgGAT
-TGCTGGGCCACCCCCACCTCAGTGTCTGCTAATAGGACAAATCCCTTAATCCTGGGCACT
-GGGGCACTATCAGGACTAGCATTGTATACATTGCACAGGTTTTAAAAAATGTAATCTGTA
-ggctgggcacagtggcttacacctgtaatcccagcattttgggaggcccaggtgggtgga
-tcatgaggtcaggagctcaagaccagcctggccaacatggtgaaaccccgtcactactaa
-aaatccaaaaattcaccaggcatggtggcgggcacctgtagtcccagctactcgggaggc
-tgaggcaggagaatcgcttgagcccagaagctgaggttgcactgagccgagattgtgcca
-ctgctctccagcctgggcaatagagcaagactccgtctcaaaaaaaaGGTAATTTGTTGT
-CAATATTTACACATCTAAACCATTGGAAGAATAATGTATATATAAACTAGCTAATGAACA
-CCTACCAAGCCCCAAGCACCAACTGTATGTCCAGTACAGAGCCAGCTGCTCCAGGGGAGT
-TCGTTCCTGGGAGGGGGCATCATGATGAAGTGGGCGTGGTTCCCATTTCCTCCAGCGTAG
-TCTCAGAAGCGGGAAGCCATGTGACTGAGGTTACAGCCAGGGAGGGCAGAGGCCCCCGGC
-ACTCACCCCTCTGGGGTCCAAGCCCCGCTGGCATGTGTTGTGTCCCTGGGTAGGTGTGTC
-ACTCCCTGTCTGTGTCTCCAGTGTTCCTGTTGGCAAATCAGGGGTGGGACGGAGGTAAAT
-GGAGAGGCCCTGCCCAGTCTGCTGTAATCCAGGATCTCGGACTTAGTGGGGCCAAAGCTT
-CCAAGTTCTCCTGATTAGTGAGGCTGCAAAAAATGTTTGGCATGTTATTCTCTCACCGTT
-TAAATGTGGGCAAGTAACAACTTACATGTAAAATTACCCCCATATACCAAGCATTTaagt
-tatttattatatcattgcttacaatagcaaataattggaaattatttgagaaatggctaa
-agaaactcaggcccaggtacgcaagggaatcctaggcagccctcaaaagatgtcctgcaa
-acacctgatgtggaatcacaagatacacaacacaggtcagtgaacaaaacaagttgtggc
-atgatacccacagtgtgctgctgcttgtggaagcaggaaCACATGTCCATGTACTCTTGT
-ACTGGCACAGAACCCTGGAGAATTATCCTGGGAACCCTGCATGCTGGCTGCCCCTGGGGA
-GGGGAACCCGAGGGTTGGGCTCAAGGGTGGGAGGCAAGACTCACTACTTTGCACACCTTT
-TGAATTTTGAATCATGTGAATGTGTTATCTGTGCAGAAAAAATAAAAATACATTTAAAGT
-AAAGTGAAAGTAGACAAGAAACCTGAAACAGAGACGGACAAGCAAGCCTGCAGGCCCAGC
-CAGCTACCGCCCCCGGGCAACCTCATGCCACACTGTGGGCTCTGCCCAGCTTGGTTTTGT
-GGCTCCACCCTCTACGGTCATATTTGGGTTTCCACACACACAGCACCCAAAGGAAATCCC
-AGCTAACGCACATCAGGTTCTGGGCTGGGCCACCCGCCAAGGTGGTTGGTGGGCATGACA
-CCGCCCCGGGAATGGCGTCGTCCAAATGCCTGAGCAATGACACGGCCTCAGATGGAATGA
-TGCCACTGCCCACAGTCTCACAGGCCCTCCCATCTCGCCTTTGTTCTGCAGCCTCCAGGT
-GGGTGTATGGACACTCCAAAACAGCCATCCCTGTCAATGAATCAGCCTGCAGGGACTGAA
-TTCattccttcattcatcaatatccattgagcacctactgtgtgccaaacactcttctag
-gaactgaagatgcaacagaaaacaaaacagataaaaatccctgccctcgaggagctgaca
-ttccagaggggacacagacaatacttgccagagtgaaaatgctaaggagaaaaatgaagc
-agggaaggatgggGAACTAGAGATTTTTTTTCCtttttttattgaggttgaattgataaa
-caataaaattggcccattttaggtgtacagttggatgcattttgacagttgtatggcact
-acagacaagtgctagaattcctgtatcatcccaccatgttccttcacgccccccacagtc
-agcccctgactcccacccgctcccacccgaagaaactacagatcagttttctttcactgt
-agatcagctttgtctttcccagagttcatgcaaatggaatctggcttctctcagtcagca
-tcatggacttggttgagattcgcccgtgttgctgagtgtatctgtagcttgttccttttt
-actgacgagtagtattccacagtgtggatgcactgtattttgtttattcatccaacttgt
-tgacggacatacaggttgttcccatttcttggctattacaaataaagctactataaacat
-ttgtgaacaactctttgtgtggatgcatattttcatttctcttgggtaactaccacggag
-tggaattgctggacctcgtggtaagggtagctttaTTAGAAGCAGATCTCATGCttttaa
-acaggatggtcagataaggtgtcaccggctcggtgatatttcaggagaggccagaaggag
-gtaaggggtgtctgcagggaagagtgttctgggctgaggaaacagagtcagtatgtgcct
-ggagtgtttgaggaacagcatggaggccatcaaggagggagtgaaggacgtgaggggaga
-gggctaggaggtgtgctccatgtggaatgaggctagatggtatagggtcacatacatcat
-ggtgaggacattggtatttttttcttttgacatggagtctcgctctgtcacccaggctgg
-agtgcagtgacacaatctcggctcactgcaacctccgcctcctgcattaaagtaattccc
-cggcttagcctcccaagtagctgggactacaggcacgtgcccccacgcccattttatatt
-tttgtagagatggggttttgccatgttgtccaggctggtctcaaatgcctgacgtcaggt
-gatccgcccacctcagcctcctgaagtgttgggattacaggtgagagccactgcacctgg
-ctgaggacattggtttttcctctgagaacccgtgggaggaatctgagcagaggtgggaca
-ggatcagacttgcattttaacaccttcccccatctccagctaccaagtggagaatgggct
-gcagggctgcagggaggaggctactgtaatagtcctggcaggagatgaaggagttggact
-ggggtggaggcggtgggggctgaggggtgtgggattctggatctttctggatctaccccg
-aatgtggagccaacaggggatgtattggacgtgggatgtggggaaagtagggacatgaaa
-gaaggctAGGACCCAAggtgacctctaggaactgagagtggccctccagctcccagctgg
-caaggaaacatgcatctcagaccggcaaccacaagaagttgaactgtgctgacaaccaaa
-ggaacttagagtggaccctgagccgcacaaaggatcacagcctagctgacacggtgattt
-cagcctggtgagacctaagcagagaagccaatcatttcatgccaggacttctgacctgca
-gaaactgtaagaaaataaatgggtgctaagtcactaagtttgtgataatttgttatgtag
-caatagatgactgatacGGGCATACtagaatcctacagtgtgagagctaaaagagtgctt
-agcaaccactaagcccaccccccccatgtacatatggggaaactgaggctcagagagcac
-agaggacttgAGGCGTGGTTCCTGAAGGGAGGCGACATCAGGCAGAAACTGTCCCAGCTC
-TGGAGGTGTCGCGAGTCCCAGCCTCTCCTCTCTTAGGAGGCTGTAGTACCTGCCCCTCTG
-CCAACCCCTGCTCATCAGGACTCCCAGAGAGCCAGCTCCTGGCTACCCACTATCTACCCT
-CGGCTCCCCAAGCAGCGAGTTCAGGCAGGCTCCCCACTGGTGCAGGCCCTCACCCCCACA
-GCAGAGCATGGGCCAAGGGTGCACGAGCCAGGCCTGAATCTGAGACCCCAGGGAAGagag
-gaaaaatcacaaccttgggcctggctagaatcccaactctgccactcaccagctatgtga
-ccctggttgagggactcccctttgctgagctgcagtgtccacatgtataagatgggagta
-gggatgctttcctccaatggtcaatgagctaatgaaggtgaaactcttggcGGGAGCACT
-GTAAATGCATGTATCCAACCTcttcctctgcatgggcctcagcttccccatctgctaaag
-ggtcttgtgttcttgatgtgtttgggggggcccttgcagctctaactatatgaggattca
-aattccggctctgcttctcactagctgtgtgaccttgaatatgttactcaagctctctga
-gtcccagttttctcacccataaaacggggctattaataatacctcctattacaggagaga
-tgcaggtcagatacctagtagagtgactgAGAAAATGTTAGCTAGTTGTGTTATCATCAT
-GATCACCATTTCTAGTGTGTGAGTTTGGTTGTGCCTGCTGGAAGGGGCAACAGGGCCGAG
-CCTCCCAGGGTGAGAAAGTTTGGTTTTCTTAGAGACAGACGTTTGTAGGCTGAGCAAGGC
-ATGCGTGCATTTCTGGGAAAACAAAATTAGTTCATTTCCCTCCAAATCCCTGCCTGTGCA
-ACCACCTAAAGCCAGGCTCTGAGTATCACAGTGCTTATAAGTGGTAAACCCACAGGCAGG
-TTTGTGAAAATGAAAATATGCATTTATTTCTGTTCCCAGTTCTGAGAACTACTTCCTGTT
-TCCCTCTAGAGGAAGGCAATGGCTTGTGCACATGCCTGGAGGTGGGAATGTGTGTCATGG
-ACACAAACTGGGGTGGTTATCACTGTGATGTTCCCACTGGCCATGTCTGAATTGTGCACG
-CAATCCTCTGACCATAGCTGATTCACTGGTGTTAACAGACACCTGACGGCAGGCTGGGCA
-CTCAACAGTCTCTATTGGAAATTTGAAACTTGAATGGGGCACACAGACAGAGAGTGGCTG
-GAGATGCATCATTCCTGGCCAGCACCCTAGAGAGGAAAGCCACAGGCCCTGCCCCTGAGC
-TCCCCAGAGATGCCTTTTCCTGTTCTTCCCACAAGAGTACTCGTTTTGGGGGTTTGCTCT
-TCCCTCATCCTGGAAATGCCTTTCAATAAATCCACTGCTGGGCTCCTTGGTTAGTCAGTT
-TTTCGGTGTTTGCCACCCAGTTCACCTTGGCCAATGTGGTGACTAGGGAGACAGCACTGC
-TGGGGGTTAAGGGGAGACTGTGCAATGGAGCAGTGGCCCTCTgtggagtagttctgggca
-gaaagagcactggacccagagtctggttcttcatgatgtactgccatgtgaccttgggca
-aatcacttaacttctctgTCTGGGATGGAACCAGGGGGCACCTTAGTAAGcagatgggga
-cactaaggatcagagagaggaaaggctttacttaaagccacacaacaggtttaggacaga
-cccgggagagctgggccctgcaaatcccagcccTCAGAGGGAAAATTTCCTGGGTTAGGA
-AGCTTATTTCTAATTATCACCAGGACCTGTTTACCCCAGGTGAACAGGGTCCCCAGGCAC
-TTGGCAGATCACAGATTTCTTTCCCAACCAATTGTCACATTTGGCCTTGGCAACAGCATC
-AATGGCCCAGGAGGGGGCtgagtaaactgagcccagagagggacagagtcttgtgcaggg
-tcataccacaagttcatggcagaactagagtctgggccagatctAAAAAAGTGTTGCTTT
-TTGCTCTAAATTTAAGGAGGGTGAATTGGGGGTAGTGGCTAATGAGTTCTCCAGAGGAAT
-TTTTAAACTGTTTGCTTTCATTTTGATGATAATCCTAAACATGTAACTCAAGCATATCAT
-GAATCATCTGCAGAGCCACAGGTAAGTCCTGCCTGAGCTTGCGTTTGGACTTGGGATCAC
-ACTGGCAGCAaataatagcatttgttgagaactaactatggcccaggcactacgctttgc
-attttttatctattttttaaaattttatttaatcctcacaacaaccctataagataaatg
-ccatcagcatccccatttcacagatcaggcagtcaaggtgcagagaggttaaggttaagt
-aacttgaagcaatgttaacagcgagCCTGTGATCTTGCCCACTACACTTTACCATTGTAA
-TCGGAGGAGAAAATGGCAGAGGTGGCTTTGATATGTAAAGATGAATTCCTGCTAAGTGAA
-GGCCAGTGATGCAGAAGTACAGGGTGGGGAGAAATTTCACCATGGGTGAAATGGTGCCAA
-ATGGTGGGAGAACAAAGCCATCATCAGCATGCAGAGTTGGGTGGAAGTGCGTGACAAACC
-CAAACAAAATGGCATCGCAATTGAGTGTCCCACATTCACACTGCTGGTGGCAACTCTGGT
-TTAGCAAAGCAACATCAACCATATCATTAATTAATTAATATTGTTGCATTGATGATATGG
-cagcatagcttaatgcttagggatgcaggcttaaaactcataatttctgacttcaaatgt
-gttttcctcttggcctagtcctcagactatgggcaaatcactcaacctctctaagcctca
-gttttgttcatctttaaaatggaattgtaatagcacctGATagactgctgattgcctatg
-caattcccttcttttcctgttttttgttgaccaaaccctgattttattcccgatggtgat
-atatctagctaagtaagactttattcccagcctctcttacagctactggtggccagcgag
-tggaagttattcagtgagagacttctgaggactatccctagagggggccaatgcatctgg
-gaggaaagcccatatactcttctttctccttcttcctatatggaactcaggcattatggc
-agcagccccagcagccatctaggatcaagaagtgaccttcaggatgaagacacatgataa
-ggatgaagcaacatgaggctggaaggaacctgaaacattgatgataccatagagactgca
-gcagccctgggctgactcttccctgacttttttttttttttttttttttttttaagtcag
-ccttttattttaggacaattttagatgtaagaatcattgcaaagatagtacagagagtgc
-ctgcataccccacacccagtttctcctattattaacatcttataggccaggcgaggtggc
-ttacacctgtaatcccagcactttgggagtccaaggtaggaggatcacttaaggccaaga
-gtttgagaccagcctgggcaacagagcaaggccctcttcctacaaaaataaaaataaaaa
-attgagctgggtgtcatggcataccagtagtcctagttactcaggaggctgaggtggaag
-gattacttgagcccaggagtttggggcttcagtgagctatgatcacaccactgtactcca
-gtgtgggtgacagagcaagaccctgtctgtaaaaaaacccgaaaaccaaaaccagaaaat
-cttatattagggtatgatacatattaaaaccaaaaaatcttatattagggcatggtacat
-atgtcacaatgaatgagccatactgtcattattaactgaaaagcccatacttcattcaga
-tttcctcagtttctccctaataccccttttctgttccaggatcccatccaggctcccaca
-ttacatttagttgtgtctccttaggctccacctggttgtgacggtttcaaagactttcct
-tgtttttgatgaacctcatagttttgaggacaactggtcaggtattttgtaacatgttcc
-tcaatagggatttttctggtgattttcttgtgattagacaggggtgatgtgtttagggag
-gaagaccgcagaggtgaagtgtcaatgtcatcgcttcagatggggggacattctatcaat
-acgacttctcactgtggatgttgaccttgattgctggcacgtttctccactgcaaaatca
-ctgtttctgtcctccattcaacgccatactctttggaagaaagtcactccatgcagcccg
-tgcttaaggagtgggagttatgttccacctcctggagggtgacgcacttaAGCTACTTAA
-GCTAATAAGTATTTTTTATGTAGCAAAAGCTAACAGATAAACAAACCCTTTTGTTTCGTA
-GATCTATGTTATTTGGGTTTTCTATTACATGCAGTCAAACCCAATTTTAAATGGATGCAG
-AATTTATTTCTCAGGGAGGTTGTGATAATTGAATCAGAGAGGCAGGGACAGTACCTACAG
-CAGTGTTTGGGTGAATAAACAGTAACAATAATCATCGTTggccaggtgtggtggctcatg
-cctataatcccagccctttgggaggccaaagccagtggactacttgagcccaggagtttg
-agaccagcctgggcaacttggcaaaaccctgtctctacaaaaaatacaaaagttacctgg
-gcatggtggcacatgtctctagtcccagctacttgggaggctgaggtgggaggatctatt
-gagcctggaaggcagaggttacagtgagctatgattgcatcactgcactccagcctgggt
-gacagagtgagaatctgtctcaaaaaaaaaaaTCATGattattaataacttaattataaa
-taataataattattattagttttataGTGCATTAGTATTTGATTGATAATTTTGTTTCAG
-TCTTTTTAGTTGTTTGGGAACTATAAGCCTAAGGAGTTGATAGCTCACTTCATGAATGCA
-CACAAATAAGTAGTTTACCgtcaatgccctcctaagggcctaagatcaacaggaatgcac
-ctgtagttaaacaagtggttctattactcactgggacaagaaagtgcacagcatggggaa
-ccttggaatgtcttagtgagagtgttagaaaaggcttattataggattggtctcgtgtta
-ggtgacttgaatagggtttgaggatgtggggtttttcttcagattggatgctctcaggaa
-gtgagggtaattatgcagttgcgatcttaacaagtcttgtctatagagaaggcagactct
-ggcaaggctaatgctgtcattgggaaagaagcagcggtcacttgtattagctgggactga
-ggggtgtttggtcattttcgtggcttggaaatgtgcatgatttgtctttgttcagacatg
-attacagagtgttccacttttcgtcttgattcatcaatcactgaggacctcatctgatgt
-tggtgttctggggaatcattaacattggacaggacataagctgttctctgtgcatgttgg
-gctgacttgcagcaacacccagtcctagctgatgactatccaggatggcccctggatgtc
-agggctgctttcctctttctcaATTTCAGTCAACATTAGTGGGTCTGAGAGGATCCCTTC
-CTCCTTTTAAAGCTCTCCATATATTAAGTTGGAGCAACAAGCTCATTCCTGCTCAAACTG
-GGCAGGCATTTTTAGATTCTTTTCTGCTCCCAGAAGTTTTCCTTTCCCATTATTTGGTCT
-TGAGCTGGTCTCAGGAAGAAGTAATGAAGGTGAGAGATCTGCAGTGGGATCCTGGGAAAG
-GTGGCACATGTGGATCACTGAGGCCTGGGCTCGGATGGTGAGGATTTGAAGATTCCCAAA
-GGCCACACCTAAGGGTCACCAGAGGGTgtccagcccccattatccagatgggggaactga
-gacccaggagggaagGGCTCTGTGTTGGGTCCCAAGGTGTGCCATTCCAATTATCAACTG
-CCCTCCCTTACCTGACTGGCAGAGTCCCTTTCTTCCAGTTTGACGGAAAATACTGTTTGG
-CTCTTTTTTTGTGGGATGGAGTGTAGAAATTGGGGAAAAGAAGAAAATATAAAATCTTAC
-ATTAAGCATCCTAAGCCAATTCATGTGGTCGAAGAagcagaaaagcagcagaaaagcagc
-agaaTGCGATGCCAAACACATCCTCTGTAGGCACGTGTGTTATACCAGGTTGCTGCGAGG
-GCCCAGAGGACACATCTGTTGTAGCTGAATAAGTTCCAGTGTTGAACCTCAGCACACACA
-TGCGCATCTGGGCACCTGTGCACAGAGCTTGTATGCACAGAGCAGGAACACATGCATGCT
-ACAAAAGGATCAAGAGTCAAACTCCAAACTGGCTGCCCTTATTGATAACTTCCAGCTGAT
-GGAAGGTGGAAAGGCGAAGGTAGATGTGTTTTGGATATAAAAGGTctgtcttctctgttt
-actgtctatgtgaccttgagcaaattgattgacctctctaagactcagttttctgcaata
-taatatggTTCTCTTCTCTCAGAGTAAGGATGGAGTTCAGTGAGGAAACAGAAATGTAAG
-CATtgcatcattcggaatgctctgggctgcaagtaacagaacaccaactccactggctta
-aatgaaaaagaaattgatcatctAGAGACAGGACTCAGGACCTCAATGATGTCAGTAAAG
-CTCCAGGCCCCTTCTGACCCTCCACTCAACCACTCACTCTCCCACCTCCCTGTCAGATTG
-GTCCCAAATGTGGTTCTCCTGGTGGTCCACACTGGAGTAGCATCCATGCTGTGTAGTGTC
-TTCTCCATCAACAGAAGAGAGAATCTTTGTttttcttttctttcttctttcttttttttt
-tagacagagtcttgctctgtcttctaggctggagtgcagtggtgcgatctcagctcacta
-taacctctgcctcctgtattcaagcaattcttgtgcttcagtctcccaagtagctgggat
-tatgggtgcctgccaccactcctggctgatttttgtatttttagtagagacagggtttca
-tcgtgttgaccaggctggtctcaaactcctgacctcaggtgatccacccgcctcagcctc
-ccaaagtgctgagattacaggcatgagccaccacgcccagccAGCAGAAGAGGTAACTTT
-TCTGTATCCCTGAAACGCTAAGTCTTCCTCTTTAGTATGAGTGAACTAATTGAAGTCACA
-TGACCAGCCCTGGCAGTAGGAACCATGGCCAGGGGAATATCATGTGCTGACTGGCTGCAG
-TTTTGGTCCCTGAACACATCAGTGGCTGGGGGACCCCTTCAGACTAAAGGACCTAGCCCT
-GCAGCTGGGGACTGATATTAGGAAGGGAAAGGGAAAGGGCATGATTCATGTCCCTCACTG
-CTCAGGGTCTTGCTGTGTAGCATCTCTTCTGAGATGTGGGTCAGACAGGGTGTTGGCCAT
-CGCTAGAAAGGACCCCTCCTACAAGGACAAGACTTGAACAGGGATCCTGAAGACTTCTGG
-GGTTTCTATCTAGAGTCCAAATGGGTCTCTAGAGTCAGCCTGTTGACAGGCTGAGTTGAG
-TGGCAGCATCTCTAGTGGATCTGGCTCTCTGCCTGTGACCACTTGTGTGCATGAGCAAGT
-GCCTCACAGACCTGCATGTGTACATGGAAGATGTATTTTTACCTCCATGTTTGCGTCTGT
-AGCAACAAGTATGAAATGCACATACATGTTCATGCACATGTCAATGTACGTGGCTACCAC
-ACAGTAGGTATACTGTACAGTGTAACCATACAGTGTTTCAAATAtgcatatatgttcata
-tatgtgcatatatgCAATATCTGGATAGATGTATATGGCATAATGGCATATTTATATATT
-AATAAATCAATCATTTTAGAGTATTAACTATATATGAGTTATATTATGCCTAAGATATAT
-Taataaaaacaatgtttgtcaagtacttgctatatgccaggtactattctaagcacatat
-gttctaaattaATATATGTATTACTTTAAGGATACATAACCTAGTGTCTTTTTGGGGTCC
-ATGGATGAAGTGTATCTTCACTCACCTTTAATTAAATTCGGTTGTTTCATTCTTCATTTG
-TGAATGTAGGGCATTCACAAATTCACaaattcattctttcaattgtgaatgtagggcaca
-agccacagtagtgtcaggagtgcctggaactttgtcaccattagaaatcatagctatttt
-tgtatcttgttataatgattatagatatctcaaaatattaacagtcatcatttgttttga
-cctaccactgatcttgttatttaatgtattagcaaagaagcatatatagtacaatatcaa
-aactgtgttctttaaAAAAAAAAAAAGTATATATATATATAtgtatatgtgtgtgtgtgt
-gtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgatgaagtcttgctatgttgcccaaggt
-ggccttgaccccctgggctcaagtgatcctctcacttcagcctcccaagtaactgggacC
-CAGCTTAAAATATTTTGATGACAGTATATATATAttttttgagacagagtctcgctctgt
-cacccaggctggagtgcagtggcacaatctcagttcactgcaagctctgcctcctgggtt
-catgccattctcctgcctcagcctcccgagtagctgggactacagttgcccgccaccatg
-cctggctaacctttttttgtatttttactagagacggggtttcaccgtgttagccaggat
-ggtctcgatctcctgacctcgtgatccgcccgcctcggtctcctaaattgctgggattat
-aggcgtgagccaccgcgcccggccAatgactgtgtttttaatataatttgtttcattcat
-aatccaatgcatttaattttattttaagcatgtgaagacaccattctgaggaggggtcca
-tggcttcaccagatgccaaagacgcccatgccacagcaaagAAAaattcattgatcaatc
-cttcaatgaccccatgaagcagcagtgttaccagtttgctacagaggggaacctgaggca
-cagggaggttgtgcaacttgtttaaggtcacatagatatcgagtggTTGTGCATTATTAT
-ATCTGTCAGTTGTTTTTATAGCCTATGGGCTGATGTGGGCTTGTCCTTTGTGTCACATCA
-GAAAGCAAGTCTGGTCAATTATTTTCTTTCTCAAGGTTAAGTGAGATCAAGAAAAATAAT
-ACACATATATTGCATGGATTATTTGTGGTCATCATTTGCTAATCCTTATACCTGTGCCAT
-GTTGGATTAATTATTACAGCTTTGTGAGCTGCTTTATTAAGGAGGGGAAGTAGAGTGAAC
-AAATCATGGCAAGTCACTTCACCTCATCTTCTCATTTAAGGATGCTGATACTGGTGTTGC
-CAAGGCGACGCTGTCAGCTTTCGGAAGCATCTTTAAATGGGAGAGGCGAAGGCCCACACA
-GATCGAGGCGGAGGAAAACTCAGAAAAAAGGCTCAAATCCCTCGGCCGCAGAGACAAACC
-ATCCTGGTGGGGACCATCCCTCACCCCCCGCACATGGCCACTTTCTACCTCACCTGTGGT
-GGTTGTCTCTGGGGTGTACTCAGGGAACTCTCTCCCCAGTGTGGAAACTGCCTTTGCTGG
-GAACAACGCAGAGATCTCAGAAATGATGGATCCATCAAGTGCCAGTGGGAGAGACTGAGT
-GGTCTTGGAGGCCTTTCCAGGAAGTTCCTCCTGCCCTTGGTACACGAGTTTGGTGGTAGA
-TGCCCAGATGCCCAGAGTGCTCTGGGAGAGGAAGGCAGCTCACAAATGCAAATGCGCTGG
-AGGTGGTGCTtggctgtgctgccttggatgagaccctttccctctctgagccctaatttc
-ttttttctttttctttttcttttttttttttttttttgagacagagtctggttctatcgc
-ccaggctggagtgcagtgacaagatgtcggctcagtgcaacctccgcctcccggttcaag
-caattcttctgcctcaggctcctgaggagctggggctacaggcatgtgtcaccatgccca
-gctagtttttgtatctttagtagagatggggtttcaccatgttgcccagggtggtcttga
-acttctgagctcaggcaacccaccagccttggcctcccaaagtgctaggattacagacta
-ggagccactgtgcccggTGCCTAATTTCTTCATCACTGAAATGGGAAGAAAACTAACCTG
-GTGCAGGGAGAGGTGACAAGTGTTTTCCATAGGAACCCGCAGATGCAGGTATCCTAGAGG
-CTGGCACCTATGAGCTGTGGCCCCCAGGAGACCCAGTCTAGGCTCGAGACCACACCAGCC
-GTGCCCTCTACAGTGCCTTGTGCTGCCCAGGATCCTCAGGTTGGTCTTGTCTGCAGCCAT
-TGTGAGTCAGCCTCACTGTCAGAAGGGCTTTCAGAGGTTGCTAGGTGCTCTGTCCATGGG
-AAACTGAGGTTCAGAGAGGGCCAGGGGCTCTGATCCAATGGCAGAGCCAGACTGATAACA
-GGGTCTAATATTCCTGGGCAGGACACAGCTGTGCCCTTGATAGTCAGAGGCAATCTGGGA
-TGAACTGGATCCTGGGGTCAGGACCTGGGGACAGGGAGGCCGAGAGAGGGCACAGAGGTG
-GAGAGAAGAGAGATGAGAGCCAGGGACAGGGAACGAGGGAAGGCTGCCTAGCATCCCTGT
-TTCCTGAAGTCAtgacttgggtgtcactgaccccactgctggtgccaggcatgatcatga
-gaccgaggtctggtcaagcagagtaagagtgataagcatagggatggacacaagaccaat
-cctggctgcagaaaatcattcctttactggaatcatggagacgagggagctccccgggtc
-agggatgctgagctgggaggacatgagcctggggctgccagagccttcttgtgaggaaag
-atcctggctgagaatgaagtcaacggggcagatggaggggctgagaggtggagctgacat
-catttgagcctctggatctaacctcacttgcctttacccttagactttccagttatgtga
-gtcaatttattccttAGGGCTAGAATTTCTATCCCTTATACCTGAGTCCTGGCATGGAAG
-AGGAAGGAAGGTAAGAAAGAAGGATGAATATTTAAGAACAGGTGTCTGAggctgggtatg
-gtggctcatgcctgtaatcccagcactttgggaggctgaggcaggtggatcacatgaggc
-caggagtttgagaccagcctggccaacatggtgaaaacccgtttctactaaaaatacaaa
-agttttccgggcgtggtggtaggcgtctgtaatcccattactcaggaggctgaggtagga
-gaatcacttgaaccaggaggcagagattgcagtgatctgagatcatgccactgcactcca
-gcctgggtgacagagtgagactctgtctcaaaaaaataaaataaaaTTACATAAAGAACA
-GGTGTCTGAGGATAACTCAAATCAGCTTCCTGCCCCCTTATAAAATGGGAGTAGAGAGGG
-ACTTGGGCCTTCAACCCACCCAGAGGAGTTCTGTCCCTGGGCCTCACAGCTTTGCCCTGT
-CTCCTCTCTAGCTTGCAGTCAGCCTAGAAACTACAATAGAAAAATAAATGATGTGGATAC
-AAAAATAAAATGCCTTTTCCTCACCTGAGTGCAGGAGAAGGGGCGGCATGTGCTGGGGAA
-TGCCTTCCTCACCCCATTCTCCTCTTTGaggacaaacatttattaggcacctgcttcatg
-ccaggctctattaagaagatgacatacatggtctcatttcctccttgccatagcccagcc
-aggaaggaatattatcatctccattttacagatgggaaaactgaggctttgatgatgtga
-agataactggtgccttgagaggctgagccactggaccaaagtgtcagagctggagcaggt
-ttgtccgactccaaagccctgcccaccacaccacactgcACACAGTAGAGGCTAAATAAA
-GGTCTGCTGGGCAAATGCTGCTTAAGGCGATTTGAGCTCTCTGGGCAGCAATCTGCCCCT
-AAAGATTTCCCATCATGCCTGAAATGCCACCATTAGCAACCATGTCCTTTGAGTCTTGAA
-GGGGAAGAGTGCTAATTCCCAGGAATGAGATCAAAGTCAGTCTGTGCTGGGTTTACTCAG
-GGATCGGCTGAGAGTGGGACTCAGGGCTGGGGCGAGCCAGGGGGATGAAGGGGTCCCATT
-CCCATTGGCTCAGTCTCATCCAGGAGAAAACCTTCTGAGGACAGAGGTGTATCCTGGCGG
-TAGGGCAGGTGGGCTCCTGGCTATGCCTGGGTGTTGGCTGATGACAACAGGGCAGACAGC
-ATGACACAGTGATGGGGGCAGGTGACAGAGTAGCTGTGGATCCTTTCTGACTCCATCCTC
-TGAAAGAAGCTATGAGGGCCCTGGTCTCCCAAACTCAGGCAGAGGCCTTATCTCCTCCCC
-TGCAGCTCCCCACCTACCACCACAGAGGCAGCATCACTGCTGGATGGGGAAGGGAGGGAG
-GCTAGGGGTTAGGGCTTGGAGGCAGAGAGGATCTGGACTTGGAGACAGATGTCCTGCCTA
-ACAGTCCCTGTAATTGAGCCTGGGGGAGTTGAGGTTACAGGGAGTCCTAAGGGAAGCCAC
-CCAGGTAGAGATCAGCTTCCTGGGACTTGAAGGAGCCTTGGAGGACATGAGCCTATAACA
-CAGACAGGGACCTAGTTCTAGACCCTTCTTCAGGGATGGTATCTGTTTTAACTGAAAGGT
-TATTTCCAGTTGTTTTTAGAGGTTGTTTGAGGCTGTCACTGTGGCCCTTGTAGCCAAAAA
-GGGTGAGTATAGCTGGGGTGGGGATGGGGTCGTAGGGCTCCTCCTTATGCCAGGGGAGCA
-CTAGCTTTGTCCAAGAGCATCTACAGTCCTGTGAGATGCTCTGGGACAAACCGAGCCCAT
-TTTCAAATaagtaaatttggagaaagctgcccactctagccccttcatgggtagtcacaa
-ggcacttggccatattaaaggctctgatcagtcctgcagtgaagagtgcctgttcacttt
-gacttaacctgctgtttccTTTTCTCATTGCTCATAGGTACTTTTAGAGACAAGCCATAG
-TTATTCCCTGTGACACATCCTCTAGGACATGCTGGAGGTGAAGGAGCATGTCCTTTTGGG
-TCTCCTAAAGACCCTGAGCTCCAAACATTGGAGCCTAGAAGTGGTGAAGTGGTAAAGCCT
-AGAAGTGGTGAAGTCTAAAGACCCTGAGATCTAGGGTCATTAGAACCTAGAAGTGGTGAA
-GTGTGAAGGGGAAATAATGATTAACCCACCCACTAAGGGGTGGATGCAGCCCCTTCAGAC
-TTGAAAAGAAAGTTCAAGGACATCTCAAGACTAGAAAATCTTGGAACAGGAGCTTAGAAT
-GGGAGATGGCCTTCTTGCCAATCCAAGGGAGAGAACCTGGGCCATCTGGGCAGCTTCCGA
-TGTGCAAATACATTCCCACCTGCCTGCAACCCCACCATTGGTCATGGGAATCAAGTTTGG
-TCTGTTCTCAGCCCATTCAAGGTACTGTGACCCTCAGGCAGGGAGCCCCTGAAGGGGGAG
-GGAGAGAAGAGGGGCGAGGACTACATCAGAGGGATGGGCCCCGAACACCCTCCATGTCAC
-AGACGGAGGGGAGTTGGGGGGCAGATGACCCTTCTGGACTTCTGGGTCAAGGAGGGCTGG
-CTCAGGAAGCCCAGGGTGTCAGGGAAGGCGGTGGCACAGTGTCTTGCATCTGGGTCCAGG
-TTGTCCAGGAGTGCCAAGTCCGAGCTTCTCCTGTGTGGTCCAGCCTCTGGCACAGCTGCT
-CGTTAGATGTCCAAAGGCCGTATCATCATGCGAGAGGCACGCAGTGAGTAGCTGGGGCCC
-TTGAAGTAGTGCCAGCGGATGCCGTCCATCTTGTACTTGTTGTCGGGAGCGTGGTAGTAG
-ACGCCGTTGAGGTTTGACAGGCCACAGGCGTCAAACCACCACCCTGGTGGAAGAGGGAGG
-ACAGGCGCTTGGTGGAGGTGGGAGCCCAGCCAGTGGCAAGAGGGCAGCCCCTGTGTCCCA
-AAGAGAACAAAGACTAATCGGGGCTGTTGCCTCCTCTGGGAAGCCAGCTggctggggatg
-gggctgggtgggagtgggggtggggTGGACAACAGACCCTCTGCTCAGCCGGGGCCTCTA
-GAGGGCAGCAAGGGGCTCTGGCCACTCCTCGAGCCCCCTTGCTCCTCCCGGCCTTCTCCC
-TGAGCCCTTGGCGTCCCTGTCTTCCTCCCTCACTGAACCTGTCTTTCCAGCTCCCCAACC
-TCCCCTCATCGCTCTGCTCACTGCTTTCTAGTGgtctctgtcactctctctgagtctctc
-actctccaggttcatctctttctctcttatggtctctgtgcgtgggtctgtctctgtgtg
-tcccattgtgttcatctttctctgatggtctttgtccctctctgcctttcgtgtctctgg
-ccctCCCTTCCTCTGGGCCCCCATCTTTCACATGCTGTGTTTGTCTCCCGGCCTCTCCTT
-GGGCTAAGTCTTTCTCCCCCATCTCCCTCTGTACTTCTCTGCCCCAGTATAGCTCTCCAT
-CTGCTGCTCAATGACTCTGACAGCCTTGGtgtctctctctttctccatctgtcctctgtg
-tctcagaaggtctctccccctgtctctgttcttcttactttgtctctgtctcCCATTCAC
-CCCACTTCCTGTTCTCTGACCTCTGTGCCTACCAAGGAACACTGCCTGAGCCACAGCTGG
-TGTGGAGCTGCCCCTCTGCCTCCCTCTGGTCTCCTGATCCTGGTTCGGCTTGCCTGGGGT
-TGGGACTGATAGGGTATAGGGTGCCTCCCCCCCGGGGCCCTGCACTCAGTGTTTCTTTAG
-CCTTGTCTCTGAGGAAAACTGGTGGTGCCAGCTTTAGGAGGAGGTGAGACCTGGAGGGGA
-CTTCAAGGACTCAATGGGGGAAGGCACCGAAGGGGCACAGCCAGGTGAGCTTATGGGTGG
-GCAAGGCCCAGACCTGCACCCATCCTCCTGACAGCACCTGGGCGCACAAGAACCTGGGGA
-GGGAATGGGAGTGTCAATCTGGGTGAGCCTGTGGGTGGGCGGAGCTTCACCCCACCCTGC
-ACCTACCTCCAGACATCACTTGGGCACACTTGCAGAGACAGTGGTCGTTGTCTGAGTCAA
-GGGTGCTAAAGCTGGTGTTCTGCAGGACCAGGCTGCTCTGGCGCCCTGCTGAGCCGCTGT
-ACCCGACCACAGAAAGCCTGGAGGCCACCCAGAGGTGGTGGTGGCAGAAGGGCCCAGAGT
-CAGGTTGGGGCTGTGTCGAGCAAGAACTTCCCCAGTGGCTTTGTCCCAGGCTGGGCTTCC
-CCTCCAGGTGTTCTTGGAGGGACAGCCCCAGCCTGGGTGGAGTGCTTGGGCTGTTTCCCT
-TCCTGGATTGCCTTCCCTGCCTGCTGCCTCCCAGGGACAAAGCACTTACTGTATGCCAGG
-CCTCCCCTATCTCACTGAACCTGAGTCTTGGAGAGAAGTGATAATGGTCACAATAATGAT
-AATAATGGCTAATACATATACAtttttttctttagagacagcaacttgctctgttgccag
-gctggagtgcagtggcacaatcacggctcattacaaccttgacctcttgggctcaagcaa
-tcctcccacctcagtctcctgagtaaatgggacaataggcacgggccaccatgcccagct
-aatgtttgtattttttgtaaaatacaaacatagggtctcactatgttgcccaggctggtc
-ttgaacacctgagctcaagcagtctgcctgccttggcctcccaaagcactgggattacag
-atgtgagccaccgtgcccggcAACGTTTCTTTTTCTTTCTTTTTTTTCTATTCTTTGCAT
-CTACTATGtgttcaaagtgctttgcataggttaactcattctcctttaatcctcacaaca
-ccctatttccattttacacatgcgaaaacagaaatcccaagagccaaagaaacctgctca
-agtctcagaatgaatgagggtcagagccacatgccagcctagtgtggcctgacttgggag
-tctacgtgcatttTGTTCCCCAGCTGATGATGATCTGGCAACCCCAGCCCCATCGCACCT
-CCTCACATTCACCCACCTCTTCCAAGAAGCCTTCCCTGACTACACCAGCCCCCATGGATC
-TGGGCTCCAGGGCACCCCAGCTCTGCAGCTTCGACATCTGCTGCCAGCCAGGTGAGGATT
-TCTATTTCTTTGCCAGGCTCTGTGGCCTTGGTGGGCATGTCCAAGCCTgcctggtgatga
-agaccatgagatctgggggcagaaagcctggattcaaattccagctctaccacttagagc
-tgcatggccttggaggattggctcaccccactgagcctcagtttcttcatctgttccagt
-ggtaatgatagtgaaattagcagtgctgccctcgtttattattgatttggtgatgtcagt
-gtgtgaagtgtgcagagcagtgtcacggggtgagtgctcaacattcagtgcttgttatta
-ttTGGCCCTTGGCAGATGGCTGGGCCTGGTTGGAGAGAATGCGGGGTGTTTGTATGGCAG
-GGTTGGGGGAGGCTGCACTGGCAGCTGAAGTAGGGAGCCAATTTGGGAGCAATTAAGAAG
-GTCCTGCTGAggctgggtagggtggctcacgcctgtaatccccgcactttgggaggctga
-ggcaggctgattgcttgagcccaggagttcgagatcagcctgggcaacatagggaaaccc
-tgtttctataaaaaatacaaaaattagctgggcatggtggtgcatgcctgtaattccagc
-tacttgggaggctgaggtgggaaggtcactggtcactggagcctgggaggtctgggaggt
-cagggctgcagtgagctgtgatcatgccactgcactccagcctgggcaacagagtaagcc
-ctgtctcaaaaaaaaaaaaaaaaaaaaagaaGGTCTTGCTGGGTGGAGGCAAGTGGGTGG
-CAGATGTGGCCAGGGCAGCTCAAGGAAGCTCTTGTACCCTCAGGGCAGGGCCTGAGAAAT
-TCCCCAGTGGGAATTCAGAGGGAATACAGAGCCTGGGTATATGGTTGGCTCAGTCCCCAC
-ACCTCCAGTCATAGATTGTGTCTGTCGCCAGGGAAATGAGACTTAATTATTCTCTGTGTA
-GAAAAGACTTGGGAGGCTCCCTCAGCTTCCTTTTAGGCACTTACTATGTCTGGGGATGGG
-AACAGCCGTGCTCCCAGAAAGCAGTCCAGTCAAGGGTGTGAAAGGCTGCCACGAGACAGT
-GATCGTAAtattgtttgctgagcgtttactacatgccaggcactgtgttaatgcttcatg
-tgcagtatctcattcaggcctcatcacaccctttttgaggtaggtatgcctaaagcaccc
-attctacagatgaaaccgtgaagggacttgctcagggtcactcagggaagtagggatgga
-gtcgggatttaagccTTTGCTTTAGTGGCCAGTGGCTTAAATGGGACTCAGCATAGTGTT
-GTAGCTACTCACTGGTCAGGTGTGAGGAGTAGGGGGACATCCAGGGAATTTTTCATTCAG
-CTCTGGACCTTGCATTATCAGGTTGGTATGGATCCCATAAGGAGGGATGTCAGaacctgg
-gcaacatagggaaaccctgtttctataaaaaatacaaaaatcagctgggcatggtagtgc
-atgcctgtaatcccagctacttgggaggctgaggtgggaaggtcactggagcctgggagg
-tctgggaggtcaaggctacagtgagctgtgatcatgccactgcactccagcctgggcaac
-agagtgagaccctgcctcaaaaaaGCCTTTGCTTTGGTGGCCAGTGGCTTAAATGGGACT
-CAGCTGGAGGAAACAGTGGGGGCATATCACTGAGAAGTTCCCAGAAGTGGAATCAGGCAT
-AAAGTTCAGGAGGACAGAGAGTCATTCAGAGATTccttgtggggaagcgaccttcccacc
-agtggaggtattccagcacggctggatgatgattgcaactatggagggaatctatgaaga
-accagatgacacgtgagattttttgcagccctgtgagtgtgaatcCTGGTTCAGAGATAG
-CCAGGACCCAGGCTTATCTAAAAGATCCTTAAATTTCTCTgagaggcaatatcatgttgt
-ggagacatcatgagttttgacagcagggagatctgagttcaaattccagctcatttaact
-tgtaactttgggcaggatacttaaacttggcatctcagtttccatattactaaagtaggt
-acagtaatgcctacttcaaagtgttgtggggaagattaaatggaataatggtgcctggaa
-cacagtaggtgctcaataaatgctagttcCTTTTCCCAAATATACCAAGAACCAGGCTGA
-GGAAGGGGTGAGAAACCTTGATgatcttacaagatcgtcatgtttaagctcatcctgcta
-ttgaagaagcagaagctcagagaagccagactgacttgtccaagttcccaaagcaagctg
-gagcaaggccacaatgagtgcaggaatttcaacttctggcccagggacccttccacccag
-ccCCAGGGCATAGGACAGGCTGGGCAAGTCACCTCCTTTTGCTTCTGGGTCTCTGTAAAA
-AGGCTGACTTGGGGTGACTGACCTTGGAAGACCCCTTCTTGCTCCTCGGATGGCAGCACC
-AATGACATTCTTTCCACTCCACCCAGTGGCTAGGACATGCTGAGTGCTAACCAGCCACCT
-CCAGATCCCATGACGTGCACCCAAATGGGGGACAGATGGTAGGAACAGGAGACACCCAGA
-GACTGACCGTTGGAGCAGACTCTGTAGACACTAGCCTGGGGACCCCAGCCCGCCCACTAG
-CTGAAGACCCCAGCCCCCACAACGGCCTGGGCCCCGAACCCACCTGTATAGCTGGTTCTC
-ACTGCCCAGGTGGAAATGTTCGTACTGGGCATAGGCCTCGTGGCCTTCCCAGTCTTGCAG
-CTCCACACGCAGAGAGTAGGCTGCCCTTCTGGTGAGCTGGTGCACCACTTCATTGCCCAG
-CCAGTGCTCCCCAGCTGGGTCTCCGAAGCCCTATAGGGAGGGGAGCGTGGGGTGAGACTC
-ATGCTGAGGAGGAGGCCATGTCCCTGGCTGAGGAGCTGGGCTGGGCCAGGCTCCAGGGCT
-ACTTATACAAAACCACTGTGCTTAATGATCGAGTTCATAAGTACAGTGTAGGCAGGACTG
-GGAGTAGGAGCCCTCCACCTGCTAGAGGGAAAAGACTAAGGCTTTTGTAAGTGTAAAAGC
-CTGTTAAAAGTTATTGAAATCAcattcctctgaagttcaagaacaggaaaaagtaatatt
-tggtgactacctttggtggagtattgactgggagggggcacaaagtgggcttctggggtg
-ctgggagtgttgtacatctagcactgaatggtggtcacgtggttaaatacatatctaaag
-gctcactgagccttacactttatttgtgcgcttagacacatgtacgttaaacctcaacaa
-aaaTTAAATAAAATATTTCAATCAGCTACATAAATAGTAGAGCAAACTTTGTTCAGTGAC
-AGCGCAGCCACTGCAAGATTTCAGCAACACAGAAATGTAAAACTGAGAGTGTGGGGAATG
-TCATGTCCCAATGCCCTTGGACAGAACAAGAATTCAGCACCAAGGACAGGGGCACACCCA
-AGGCCCGCTCCCCAATTTAGTCACGATGCAATGCGGGTTAGCCTGATGGTTAATATTCAG
-GGTTCTTTTGTGTATTTCTGCACCTGGACACCCTATTCCTCCTTGCCATTTTAATGGTTG
-TTTAAAGCCCAATTAGTTCAAAACACTCATAACTTAATTTGGTATTTATTTTTAAGTATT
-CCTTAAATGAACAGCAAGCAGACGCAAATAATAGAACTGCTGTATCACTTTGTGGGTATC
-TTTTTCTATTTCTTTGGCTTTGAAAACTTTAAGAGCTTTTAAGTATTTTAAGTCAGCTTG
-GCAAAAAATCCTTTATTCAAAACCTAATTAAAAAATTGGAAAACAATCGGGCTTCTCATC
-TGATAAAATACATGTGATCTTTGGGCCTGCAATTCCTCGTTAATGAATCTCTCCTGCAGA
-TATGATCATAGACGTATGAAAAGACAAGAAACTTCATTAAAGCAACGCAGTCAGGGTTGA
-CTGGGGGGATTTTTATTCTGTCTCCTCCTTTGTATTCtttaaaaaattagaaatgtatat
-gtatttttttaaaaaaaattaaaacaaaaataaaGCTAAACTTTTTTTCTTAGAACATAT
-GTCAGAACTTTCAGAAAGAACATTCAAATTCAGGTGATGGGGTCCCATAAAGCAGATGTG
-CACTGTCAGCTTTAGATGAGTTGATTTTTTCTGGGGGAGGAATGAGGGCAAAGCAGTCCC
-CTTCCAACAGCCCAGCCCCAGCCCCAGGTTTCAGAGCAGAATGGCCCCTCCCCAAGGCAG
-CAGGGCTACCTGTTTGTAATCCTTCCAGTTCCGCTGAAAATTCACGGTGCCATTCTCACG
-GCGCTGGATGAGGGTCCACCTGCCTCCACTGCTCTGCAGGTCACAGAACACCTGGAGGGG
-GTGGGCAAGGCACAGCTGGGAGCCCTTGGAGGTAGCCAGAGGCCAGGCCTGTGCTAGCCC
-AAATGTGGCTAAGCAGACAGACCCCCACAGAGCAACAGGTgagcctgggggtcctgggca
-tcagaaagatccaggcttaaattccccacccattgtcatcatttttctaaagtggtgggt
-aaggaatgacctctcagagccttcctctcatttgtaaaatggagattcataccttaacct
-ctttgtgcctcagtctctcatctaccaactggggttgtgaaaattaaacgagatgagtca
-cgtaaagtgtttagaacagtgcctggcagtactaggtaaacggaagctcGACCTCTTTTT
-GTTGAAAGGAGAGGTTAGCAGGTGTGTGAGAAGTGTAAAAGACAACCTGGAGACAAACAG
-AGGCATTCTCCTTAGTATATTAAGAGGGGGTGAAAGGAAATAGAGCAATGgtaatactag
-caatttgagggccgaggagggaggatcgcttgagctcaggagtttcagaccagcctggga
-aacacagggagactttgtccctacaaaatgtttaaaaatattagccaggccatggtggca
-tgtgtctgtggtcccagctacttgggaggctgaggcaggaggatcactcgagcccaggag
-gtcaaggctgcagtgagctgtgatcatgccattgcactccagcctgggcaccagagcaag
-accctgtctcaaaaaaaaaaaGGGAATTATGAAGTAGGAATCTGCTAGTTGTTTCCcttc
-taggcctggctctcagaccctccctcctgacatccgtgctcttctctgtcacccttctta
-tcggatgacttgaccttaaattttaggacaaccttgggagccactgattgaaaatggtgg
-cacctctattagccctggtttctaatttcccacatggagcagaaccccaactcctgcctt
-caactggactatatgtaaactagaaagaaacgtctttgggctaaggccctggaattttgg
-gggttgtttgtaatatcagctatcatcatcttaaccaacacTGAACTATTTTGTGCTGTT
-CCAGTTAAAGCACCTCTGAAGTGATGCTGGTTAAGGATGCACTTCCAACTTTGGGAACTT
-CTGCTTATCCCCACAATCTGATCCCTGACTGCTGGGAAGTCAAAGCCACCCCTACACCTC
-TGGTATTTCAGATACTGGACAAAGCCTGATCCCGATGGGGTGCGGGGTGTCTGTTTGGGA
-AGCCCTTGGCTCAGCACCCTCTAACAGCCACAGTTCCCAGGGAGCCCCCTAACCTTCCTG
-GGCTTCGTTGCATTGGACACCTGGATGGTGTAGACACCACTGGCACTGGCCCCAGAGCGC
-TGGATCTCTGCACAGTCCTGGAACACCTGCTCACCTGCCATTATGAAGGCTGCAAAGGGA
-CAACACAAAAGTCAGTTGGAGGTGGGCAAGGAAAGAGAGAAGGGGCCAAGTGGGCATGCC
-TGCCTGCTTTGTGCCAGGTTCTGGGTTGGGAGGTGCTGGGGACAGGGAGATGAGTCAGAC
-CTgggaagatttcgtagaggaggtgacagtaagctggaacctgtgtaatgagcaggagtt
-gcccagtggagaaggggaaggtgttccaggcggaagaaacagcatatgcaaaggccccaa
-ggtaggaagggccctagtgtgtgcagaggacagGGCATGGGGAGGGGAACTAAGGCTGAG
-GCCAAGGAGAGGAAATGACTCACACCGTGAGAGAGGAGTTGAGACCAGGGAGGCTGCTTG
-CTGTATGATGCAACTGAGAGGGTAGAACAAGGCTGGCACAGAGAAGGTGGGGAAGGAAAA
-GGAGAGACGAAGCTGAGATTTCAGCAGGGCCAAGTCAGCCGTGAGTGCCAGGCTGCGGAG
-CCCAGATTCTCTGGGCTGagaaagagcactctgtccagagtgtggaggggggcctggagg
-ggatgagactcaaagctgggaggccagagaggaggctgctagagttttctgggagagagt
-tactggggcctgaacTCCAGTGAGGCActtcccatttcacagaccaggaaactgaggccc
-aagagtgaggcaactggcccaagggcacacagccaggtaaggcagaacCTTCCTTCTTTG
-GAGCTCCCTTGGGTGGGAAGCTGTGGGCTCCCCTTCATAGCCCACCCTTTTGGCTGTATC
-TCCCTGCTGCCCTGGGCATATGCTCCCTTATTCTGTCCTCCCTTGAAGCTGACTGCTGGC
-CTTAAAGGGCCCCTGTTTCTTCCCTCTGGACTACATGAGATCGGGATAGTATTAATGACT
-AAAACCTACCAGGGGTTTCTAGGCCTGGCCTGGAAAAAGTGACTGTTGACAAACAAAGTG
-CAGAGATTTAAAATCTCCTCTGTCTCAATTAGTGGAATCCAGTTAGAGGTTTGAACTATG
-ATTCTACCAGAATCCAATCTCTCTGGGTAGCCAGGTACCCAGGATGGGGCTAAAATTCCA
-GATGGATAGGTTGTCAACACCAGTGAGGAACCAGGAGGCTACCACAGGGTGGGACTTCCT
-GGTTTGGCTTTACATCTGAACTTCAGGGATCCCAGATCCTGGATCTGGGGCACTTGTCCA
-GAGAAGGCTATTGCTCTCATGTCACAAATGAGATGACTAAGACCCCCAAATCAATTCCAG
-TTCACTCACAAGCATTTCCTGGGCAGTGGAGACCCCTGCCCCACCTGTTGGCACCCCCTC
-AGCTCCCCACAGGGAATTGGAGTCCAGCCAAGCATGAGGAGGCTGTTGGCCTCAAGGTGA
-GCAGGGATGGGCTGAACCTCACCCAGTAAGGCAAGGACAGAGCCAGGGTTGGCCTGAGAT
-TTCCAGCCACCCTTTCCAAGGCTCTGCTCACTGTTATTTTCCTTAGTCTacaacaatatc
-aataacaataacaacaataatatcaacaCAAAAAGTGAAATACTCACCATGTATTGTAGT
-GTTTCCAAGGTGTCATGTAATGCCAGGGGTAGTTTGGGGCCAGGAAAAATATTTTTGGGA
-GGCATAAGAATAGGATGGACTGATATTGATATGCAACAGTTTGATCTGGTCCTCCTCTGA
-ATATCTGGGCTGGTAATTTGTACCAGTTTCCCTCGCTTTtgtgcataggcactgtgctga
-acccttttgtatgcatgaactcatccgattctctgtgcaagaactctatgagattattat
-tcccgttttacaagtaagaaaaattgaggctctgagaagttaaataaatgacttgtatga
-agttccagtgctaattaataagtgaaggagccagggcttgaactccggcccatctgactg
-caaagccagtgcccttcctcctacacATCTTCCTTTGGATTTCCACCACTGAGCATATGT
-AAGGTTGGGCAAACAGCCTGCATGAACAATCGCTGCTTTTATATCATGCACAAGTTTGGT
-CTTTTCTGCCTGTGCCCATGTCCTTGTAACCTTCTGAACCAAACTCCCCAGTGCCTGGGA
-ACATCAGAAGACTTGACTCTCTTCTCCTTTCACTAGCCTCCACCTGACTGGGACAAAGCC
-ATGCAGAGAGCTAGTGCTCCCTTCCTGCTAGACTTCAAGGATGCCTGGTTCCTGTGCCCC
-ATCTCCATCCAGCCCTCTCTTCTACACCTGGTGACTGAGCCTCTCCTTCAGTTTCTCCAT
-CCAGAAGGGGGTGAAAGCAACTGCCTAGTGTCCTTCCCTGGTGATAGTGGAGCACGGGGG
-ACAGGGTGTTTGGGCAAAAGGTGCCCAAGGTGAGGTGCCCAACACAACCTCCTACTCAGA
-CGATTGAGCAGACATTCAGCCTCATCTGGGGACTGGGTTACCAGTGGGTTAGTGGGAGGC
-ATTGGGCCCAGGCCCTGTGCCTTGGGCTGAGCTACAAGAAACCCACACATGGGATGAATT
-CAGGCAGCTCAAGGCCAGGTCTGTGCATACGCCAGTAATAGGTTCAGGTTAATCCACATG
-TCGCGATTTGGAAGGTGTCTACTTTTCCTACCTGTAGCTTCCTTAGGCCTCAAACCCCTA
-CTCAGCTGGGTCTGCCAGACTGAGATGGAGCCAGGGTGGAATCTTCTGCCCTCAAATCCC
-TGTCAGCCCTGGTGGTGCCGGGAGCGCCATCACTATTGGGTCTTAAAGGCTTTCCAGCCT
-TCCACTATGGATCCAGGAGCAGCAGTAGCCCCTTTGGTCTTTCTCTCTCATCAGGACATC
-TCCACTCATGGTTCCAGTCAGAGCTTCTTGAAAGTAGTCCCACTCTGTTCAAAAGCCTCC
-CATGCCCCCTGCTAGCCTCAGGCTAAGAGCCCTTCTCCTTCGCACAGCCTTTGGACCTGT
-CTATTTTTATGGTCTGGAAACTTCAGGAACACTGATAGCTGAGCATCTGGCACATATTAT
-GCACTCAAAAACCATGTATTTCTTTCTCCTTCCCTTTGGGACCCGTAAACCAGGGactgg
-acatttttgcaagagacaggagctgtgactgtgcattcactgctgtatccccagcaccca
-gcactgggcctgccacacagtaagtgcttagtaaatgtttgttgactgagtgaTTGCAGC
-TGGGGCCAAGAATGCCTTGGACACCCCAAGTAGGCCGTGTTAGAAGGAGTCAGTGAGAGC
-CTGGGAGCCCAGCCCAGAATTGTTTTCTTGACCCAGAAGCCAGGGCCAGGGATGCCTCTT
-CACTTCTGTTTGGCCCTCTTGGGCTTAGGGGCAGGGGCATTAAGATGAgagaggtccttg
-gggtgcattgagtctaacctcccagttcctcccattctacagccaggaaaactgaggccc
-agggaggggtaggacaagcccaagAAAGTGGGGCTGGAGAATGAATCCTGGAGACCAAAC
-TTGTCAGTCTGGATTGCTGTTGCCCTCATCCTCGCCTCCAAAACCCatgggtaaactgag
-gccaagagaggggcaggggcatgcccaaggtcacccatggaatcaggggacagggcctgg
-attgggaTTGTTGTTGACGCCATTATTACTGTTTATTGTTGTTTCTATTTCACAGATGGT
-CGGGGAGGGTGGGGCCCGCAATGGCTCCCAGGCGCCCAGAGACCCTGGAGGGTGAGCAGG
-GTCTCCCCTCCCCTCTCCTGCCCGTCTTTAGCCACACTGGGGCGCACACCGCTCACTCAC
-CCGGGGCCGAGGCGTTAGCCCTTTCTTGCACCAGGTGCCGCAACAACACCAGCAGCTGGC
-GCAGGCTGTGCTGCTGGTCCTGCAGGAGGCTGGAGTTGTGCCTGACACCGCGCAGGCCGC
-GCTCGATGTTGGTGAGGGCGGCGCTCTGGCGGCTCAGCGTGTTCAGCAGCTTCGCCTTCT
-TGCTGAGGATGCTGGCCAGCTCCTCCTGCTGCTTGGTCTCCAGGGCCTGCAACCGCTTCT
-CGAGCGCGCTGCGGGGTAGGGGGCGCACAGAGGTGAGCCTGGCATCCTCGCGAAGCACGC
-ACCCCCGCGCGCCTCCCCGGCCCTGGAGTCCCTGCAGCCCGACGATGAGACTCAAGTGTG
-GTGGAACGTCCTGTGCCCACTGTAGGCACAGATTGAGGAGGGGAGAAAAGAGATACCCGG
-CCCTGGAGTAATATAGATTGAGGTTTAGTGGAAGAAAGAGGTGGTGTGGGAGGGACACCA
-GCAACTGGGTAGCTATTATCAAATCCCAACTGTGCTTGCTTTTTGACCCAGCAGTCTACT
-CTCAGGAGTTATCCTCTAGGGAGCATGGTCAAGAATGGCCCTGGGGACTTGCTTGTAATA
-GAAAAACAAACTAACCAACCAACCAAAAAAGATATAGCCTAGATGCCCAAAAGCCAGGAC
-TGGCTGAATCCGTTGCGTTTTGGCGTCCCTGGAAATGTTCCGCAGTCATGAAGGAGGAGG
-CATTTGCACAGAATTGGAAAGATGCCCAGGACTTGGGGCACATCAAGCCTAACCCCATGT
-GTGGCAAGAGAAGAAAGAAAGTATTAATGTAAATAAAGAGAAATGGGGTGAACATATAGG
-AGAAGGCTGGAAAGACCGCAGTGGTGCCTGTGTTTGGGAAGAATATGAAAGAAATTCCCT
-CAAGTGCTGTGACTTCTGCAGAGCAGGTTTGAGTGGATGAAGATGGAGAGGAGGAAGATG
-GGGGCAGGATGGAGGGCCCAACTTTCACTTTTATTTTGTACAGGTTCCTGTTGTCCGATG
-ATATTATAATAATCAAGAGACATTTTTTGTAATGGATTTAGAAGCAAAGAGGAGTTTTTC
-AAAAGAAAGCCTTAGACTCAGCTCTTTCTTTTTGGACATTTTATCCTCCagatttactca
-catgtgtgtgaaatgagatatggaaatgttactcatcgtatcactggttggattagtaaa
-aggctggaagcaacctcaatatccattaactggggactggaggaataaaagcagggacca
-catatggtggagcattataaaggtggagaaaaaaatgagcaagcatgtcATGCAGTTATA
-GAATCTTTCCAAGGTAACTGAATAATAATTTGTAGAAACAAGGTATAAACAAGTAGTAGG
-CTACATTTGGGCTTAAAAAGGATAAAAATGGGAATGTAcagatgctccaaaatgtatgat
-ggggctatgtcctaataaagccatcgtaagttgaaaatgtcctaagtcaaaaactcattt
-aatacacctaacctgctgaacatcctagcttagcctagaccatcttaaacatgcttagaa
-cacttacattagcctgtgattgggcacgatcatctagcacaaaacctattttataacaaa
-atgttgagtagcttatgtaaggtattgatattgtactgaaagagaaaaaccgaatggttg
-tatgggtactcaaagtacggtttctactgcatgtgtatcactttcataccactgttaagt
-cacaaaattgtaagcccaaccattgtaagttagcaatcttctgTATGTATGTGTTTGCAT
-ATTCATAAGAAACCCTGGAATGTCAGCTTAtaggatgtcagcttcacgaggacaggggct
-tttgtctctttgttcacttctgtatccacagtgtctacaatagtgcctgacacatgaaaa
-gagtttgaaaaataattgttggttgaatgaatGGAAGGATACACAAGAAACTAGGAACAG
-TGGCTACCTCTGGCTTGGGTGGGTGGCTGAGAGACAGGGCTGGGAGGGAGACATTTTACT
-GTATATCCACTTGTGCCAACTCATTCTGCAGACTAAGAAATTGAGTCCAGCTAGGGCAGA
-AGAAATTTCCTCTGGACTCCCAATTATGCTGCAGGAAAAGAGAGAATTGGGGCACACTGA
-AATTCTAGAATTCCTGCCCTGTCTTCATGGGCCAAGAGTTTACCGATGACATCCTCCATC
-CTCACTGATTTCTAGACACCTAGTGTTAATTTAGAGTCATTGAAAGTGTCCCAGTCCTTG
-CCACTGAGACCTTGGGTTGGGAGAATAAGAAGATGGGCAGATTGTCATTAATTGCACCCA
-GATTAGAGAGAGCTGGGGGATCTTATGGCCTTATCCTGAACCGGCATGTGAACAACAACA
-TCTTGCCTGATTCACAGGCCTGTGGCTTGTTCAGTGGGTAGATTTTGCCTTCTCCAGAAC
-CCTGACTTTGGCAGCTTTTTTTCTTCACTCAGCTTGAAACTGAGGTGAAATCAGCCTTAG
-CTGCCAGATTTTTCTGCTTTATCTAAACCTCATGACCGCttttttttttttttttttgta
-atttaaaGGGTGTTCCCCTGATGCCCATTTGCTTATAAATGCAAAGACTCTCTGATAGTG
-TGGACAAGAACCTGGTAACTGTGGTTGTTTCTGGGAAAGGAATCGTAGATAGCACCAGAT
-TTATTTATTTGCAAAGAAGTAAAGCCAATAAAGTTTACCggatgaatagtatggtgggtg
-aattagatctcaataaagctgttaaaaTTTACGAGATAAATAaaagaaggaggaaggaag
-gaaggaaggaaggaaagggaaagaaagaaTCAGGGTGTCCTGGGCCCCAGGAAGATGCCT
-ATCCCCTGTCCCACCCAGTGCAGGGGCCAGGCAATGTGTTTGCCTGGCTCCTAGcccagc
-cccgtatccactctcatttccagcctcagtctagactccaaccctggtttcagtccttcc
-ccagcaggggctattcccagctctagtttcagccctaactccCAGGATACCTccttgccc
-caatcctaatccaagctcctaggtctggctgcaggccctatcccagacaccagcccacgt
-ccagcttccggtcctggctccagccccagtcctagccctggctctggtgcctgccctagg
-tcctaaacttgactccagccccagcccctgtcctagtcTGGTGCCAGGTGCCACACCCAC
-CTGTTTTGGCCCTGAAGCTGCTGGAGCTTCTGCCTCTGTAGCAGCAGCTGGTTCTCCAGC
-TTGTTGGTGGACAGAAAGGTCTCTGGCATCTGGGCATCCATTCTTGATGTCTGGTTCAGG
-AGCTGCCCCAGCAAGCAGAAGCAGGTAGGGGGCTGCGTAAGCGCTACAGGAGCCCTGCCC
-AACCACCCACCTGCCCACAGGCCCTGCCACTCCAGAAACTTACCCATTTCCACTCTCCCA
-GTCGTAGTTCCTGTGGTTACTCACTCACAGGCCCTGACTTAAGCTTATTacctgcttcct
-aaatttgcctttctccatcactgcaatggcagctccattctccctgatgcttaggcccca
-ggagctgtcaaccctgtcccccacatccaactcatctgcaggtcctgtcagccttgcctt
-ccaggtggcccctgaccacctctctcctgctctgtggccctcactctggccctggactgc
-tccctcattgcttgcaatctattctctactcagtagcctggggctgcctcttaaaacatg
-tttgctctgttcaaaagcttcctgtggctcccatctcatgtagcggaaatgccccagttc
-tcaccatggcctgcaaggccctatggtgtgatctgtccctatcacttctccagctccttg
-cctgccactctcctcctggtcactccagcatagtggtctcctgatgttcttgaacctgcc
-agcacgtccatcctccctccgggcctttgcacatgctgcatcccttgtctggagcactct
-ctgcagtaagcctggctgcagccctaccttctccatggcccttcctggccttgctgtatg
-agcttgcagctctcatccccccccaccactcccaatgcaccccctctcttgctctctctt
-ccatgctattttctccttagcgctgtcactggctaacatatgcagacatgtgttgcttaa
-tgacggaaagatgttgtaagaaagtcgtcatcatgcaatttcgtcattgtgcaaacatca
-tagtgtgtacttacacaaatctagatggtatagccgcctgcatacctaggctatatgaga
-cagcctattgctcctaagctacaaatccatacagcatgtgactgcacccaatactgtagg
-cagttataacacagtgggaagtatttgtgtatgcatatctaaacacagaaaaggtacaat
-aaaaacagcatacgatactcttatgggactgctgttgtctatgtggcaagttgttgactg
-gaacattaagcagtgcataaccatatatgtcacttatcttttcattttcaggggaagctt
-cacaggagtaggaatgtatgcctgctttgtttcctgctgtatactagacaccagtcttct
-caagcagtgcctggcacaCGGGGGATCAAACAAACAAATGGGCACAAACTTGTGTCTATT
-TGTTATTCACTTTTTCATCCACTGACTTCCCTACCCTTCATTTATTCACTAGTTCCTTCC
-CTGCTCTTTGCTGCTCAGATACCTCTTCTCTCCAAGTCCTTGGCCCCAGAGGCCCAGTGA
-Attgtttcttatccatcttcccctggcacattgtaagtcctctgagggcaagggagctgt
-gctactatacccctcattccagtgcccagcacagacccaggcactgaagttacagaggca
-gaaaagccaagcccagcatccaccccccagggctcatagcttggagagagatagttttat
-gacaagttcatcagggaggagggacccggggggctacaggcccagaggaggccttgaccc
-tactcagggtcagagatcaaggtaagatgactggggCTACGAACCAGCCTGGCCAGCCAC
-AGGCCCTCAGTGCCCACTCAGTCACCCTCTGTTACCTGAGCCTCCATGTCGGTCAGCTTG
-CGGATCTGGGCAGTGGTCTGGTTCAGGAGGCTGGTGCCCAGCTCTAGCATGGGGGCCGTC
-TGATTCTGGGCCATTTGCTGCTGGACCTGCTCCAGCTTCGACCTCAAGATCGTCTTGATG
-GCCCTCTCTAGCTGTGGGAGACCATGGGCTGGGGTCACGGGGGAGGGGCGGGGGAAGCCC
-CCTGTCCCTCCCACGTGTCACCATGGGAGGGCACTGAGCAGCCACTTGAGGCCTCCCTGG
-CTCAGAACATGCCGGGccaggtcaggccaccattacgtcttgcctggactatcccagtag
-atttttccctgggagggatttatatgcctgttttgtctgcctctctgcttccatctttgt
-cccctgcacagtccatcccccactaggcagccagagggatcctgctaaacctaagtcaag
-tcacactcctcctttgctcaaaatctttccagggttcctatctcacgcagaggaaaagcc
-atgactgcaggttcctccgtgactgggcctgccaccacactctcattcctctcctattcc
-cctctccctcactcacttcaatcccgatgcaatggctccatgacatccctctaacgaagc
-aagcatgtgcccacagctgttccctcactgttccctctggaatcctcccccAACCCTGAT
-CCGCATCTGCGTGGCACAcctcctcatgctgtttcagctttcttcataccacttatcacc
-acctgactttttaaaatcactatctctctttttatctgtctgttgtctgtttctctctct
-agaatgtcaattccatgaagccagggacttggttttgctcactgccttgtttctatgttt
-agcacaatgcatggtgcacagtgagtgctcataaatgcgcgttcaatgaattgatGAAAA
-AGGGGAAACAGCAAGGGTCAGAGCACAGCGCCCAATCACATGCCCCTTCACCAGCTTCCT
-CAGGGTGAGTCAGCCAGCAGGGAGTGGGAATGCATCTCTCCCTTGTACAAAGAGTTTGCA
-GGTCCAttggccaagctgtgttttctatcttcagatcccctctatctgccaaatggggct
-ggactggccagtctccaagggttctcccagctctgatgttctgggatcccaCATGCAAAT
-GTTCATTTCTTTGACAGGGCTGCTCTCTTTCCCAAGGGCAGGAGAGCTGGTCTGGCATGA
-CACCAGTATGCTGTTGTAAAGGTGAACAGTGTGTTCTCAGGGCTCGGTGCCTGCAGGCAG
-AGAGCCAGCTCCCCTCCACCATTGCCTCTCCATTCGGCACACATGCTGGCCTCTCACCAT
-GCCCCCCACCCCTGTCCCTGGCTCCTTCCCTTGCCCTCTCACTCAGTCTTTCAGAAGCCA
-GCTGGACAGCTCTCAGGGTCCTTGGGAAGATGGGTGCTCCCCAGGAGAGGTGGTGACCTT
-GGCTCGGGCCAGGCTCCAGCCACTTCCTCCTTCATCTCTTCTCCCTTCTTCCATCTTGAC
-TGTTCACTCCCATCCCTTCCTCACCCTGGAGTGTTTCAAAGGGAGCAAGTTCCATTATCA
-CATCCTGGAGCGGGTGCTTGTGGGCGGTAGTAGTACTGGTTAGAGCTgtgtttctccaag
-tgtggttcttccgtcagcatcagctgagctcattaaaaatgtgaatttccaggtcccacc
-gcagacctcctgaaccagaaactcttaatggtgcccagccaactgtggttaacaacaccc
-ctggctgagtcagatgcctgctcaagtgtgagagcccttgATGCAGAGTAGCAGCAGGGA
-CTGAAGACCAGAGAGACCCCCCTCCTTCTTTCCCTGCATCATCAGCCCACCCCCTCCCTG
-CAGCACACAAACATGCGCTAACAGCTTCCATCTAAAAACTAACTCCACAGCCTCTCTGGC
-TGCTTCTCCAGTTTCTCTGATCTCATCAACACAAAACTTCTACAAGTTGTCTCCATTTTC
-TCACCTTCATACCCACCCTCACTTAAAAAACAACAACAACAACATAACGTTAATAATAAA
-ATGATGTTACGTTTCACACATACAAAAAAGCATAGAggccaggtgcggtggctcacacct
-ataatcccagtactttggaaggctaaggagagtggatcatttgagcccaggagtttgaga
-ccagcctgggcaacatggtgaaactccatctctactaaaaatacaaaaattagccagcca
-tggtggcataagcctgtggtcttagctacccaggagactgaggcaggaggatcgctggag
-cctgggaggtggaggttgcggtgagctgagatgcaccactgcactccagcctgggtaaca
-gagtgagaccgtgtctcaaaaaaaaaaaaaaaGTATAGAGAATAAATATAGCCCATAGTG
-CTCATCCTCCTGTATACCTCCAGTCATGTCTCTCCATCCTGGGAGGTCCCTTTGCCTTTT
-GGCgtctcactgttgcccaggctggagtgcagtgatgtgatcacggctcactgcagcctg
-aaactactggcttcaaacaatcctcccacctcccaaatagctgggacgacaggcgagcac
-caccacgcgcagttCCCCCCTTCGCTCTTTAATTCACCTTGTCATAGATAGCCCTCCTTG
-ACACTGCCCTCAAGGGACActccatcttgcttgacatctcaggagcaatcacctggatgg
-ccactccctgttgctggacgacttccccccaatcctggtttcctcctagcccctaaccac
-ccactctctgactcctcctttacagactcctacacggcagggcccccatggcccagtcct
-gggtccttgtctctatgtacattcactctctaggtcaggggtccttaatgaagaagccac
-aggctccatgaacttgagtgagaaaaaaagatcacattttttgtccactaatctgcaatt
-aaaatttggcatttccttcaattatgagcctaggtcacaaaccacagccatactagcagg
-tcctgagagtcattaccaatagaaatcccaaatattttcatatcacaacacactcttacg
-gtatcttaaaacattgtttttactcaccgggactttggaattatagacatcacacccacc
-actggataatgctatgcctgatcacagattttatttttcatattttgcttatgatttcca
-tattactgagtgttcttatgctttgattttatgcatttctgagaaaggattattaagctt
-caccaggaccagatgccaagaggTCTGAGGATCCAAATGCATCAGGGCCCTGCCCCAGGG
-GCTGAGATCGGTCTTTGGACTTCCACATCCctctgtgctaatggagccatcaccatctcc
-cacccagacttctcccctgcatgtccccaactcgccatctctgcatggtttccaatgagc
-atctcaagcccagtgtgaaactcttcattcctcagctcccatcgcccctgtccctgtaac
-tcccaccccatgcttcgaaatctttcccatctcaggaaatggctccacccagttctgaag
-ccccaaacccagacctcaatcttaacttctctttttcttagcggccacactcaacccact
-agtaagtactgcccactgtgatcccaatttggatttcaaatctgtttactcgccttattc
-tgggccaggctgccctcctctcCATGGGTCTGCCTTTTGTGCCTTCCTGTCTTTAACCCC
-TCTGTCAGCTCCCAGGAGATTCTTTTTTTTTTTtgcagttgcaagatttaatagcatgaa
-atagagtgaaaacagagctcccatacaaagggaggggacccaaagggggttgctgttgct
-ggctcgaatgcctgggtttatatgccaatccttgtctctcccactgtgctctcaggcaat
-agatgattggctatttctttacctcccatttttgcctaattagcattttagtgagctctc
-tgattggttgggtgtgagctaagttgcaagccccgtgtttaaaggtggatgcggtcacct
-tcccagctaggcttagggattctaagttggcctaggaaatccagctagccctgtctctca
-GTccccctctcaacaggaaaacccaagtgctgttggggaggtcagctgatgaccgcacta
-actgcttcctgctgaattagggagtagtaggggtggtgcagttgagatttcctcgggagg
-ggtgccttcgatgtcattaacatcagagcatgggctagcaggctggtccgggggtccgtg
-gtaaatcttagtcatggactgcatgtgagctccCAGGAGATTCTAATGTGTGGCTGGCTG
-GGCCCACCAGCATGGATGAGGACAAATATAGCTGTATCGAGTTTGGTCTCAGACTTTTTC
-ATGCATCATTGACCTCCTAGAACCTAAATTAAAAAGCAGACATCCAGGTACTGAGCACCT
-GCTCCAAGTAGTCAAACAGCATATTCATGCCTGAGGTGAGACTTTCCCAGGcatcttccc
-caagcttctcatttgcctgaacatagacaaactgaggcccagaagtcttgcccaaggtca
-ccatctggcaggCTAGGCTCTAAGACTCCTTGCCTGAGGGCTGCAGAGCTGAGCTGGTGA
-TTCAGGGCAGCTCAGGGTCCCCTCAAGTGACTGGAGCTCCCCAAGCACCTCACTGGTCCC
-CCACTTGTCCTGTGGTTGCAAGTGGCTGGGCAGGGCAAAGGTTACCCACAGCTGGATCCC
-ATCACCCAGTTTGCCACACCCGCCCACCAGCACAGGCCCTGGGATGGATAATCTGGGCCA
-GATGGGCTCAGTTAGGCTGGGCTGGGCTCTGGAGACTAATATTGGCCTGGGTGGTGGGAG
-CTAGGTCTGGCCCATGGCTGAGGCACCAGCTGGAAGGGCAGGGAATGGATCCCAGTGGAG
-GAACTCACCCAGCGTGGGATCTACTTCTCTTGTTTTTTTGGATCTACTTCTCTCTATGCC
-GTGCACCGACTCCAGGATTAGACCTGCCCCTTCTCCATCACTCTCAGGCTGCCGAATTCT
-CAGGCCTATGATGGGGTACAAAGGCCTGACCTTTTGTCACCCTTCCAGCTGGCAAAGAGA
-CTGAGTTTTGGTCCCTGGTCTACTGCCCCATCCCCTTGGCcctgggtttgagttctggct
-ctgccacactttcattgtgggcccttggagactactgtgtttctctgagccccactttac
-agatctgggtcatgggTCAGCACACCCTGCTCCTTGCTGGGGAGAGGGCATTTGCAAAGG
-GTCTTGAAGGAAAAGAAAGAAATTTTCACAGGCAGGGGCTGGGGGAGAGGGGGTGATTCA
-GACAAATAACAGGTGCAGATCCGTGGATGAGCAGCCTCCGTGGCCGAGGAGATCTGCTCA
-AGCCTGCTTCTCTCCTGCATTATTTATATAaaatggacatcaattggtgaatggagaaac
-tgcagtccatccatgcagtggactccattgagcaataaaaaggaaagaaccattgatgtg
-tgcaaacacacagatgaacttcagatggatcatgagtgaaaaatatgcaactccaatggt
-tccatactgtaggagtctatttgtatgactctctaaaaatgtcagaatctgtgattgcca
-gggcctgggtccggggagggggtggggattgattgttaaaggacacaggggagctttttg
-ggatattggcaatgttctatgtcatgattttgctggtggttacataactgtatatgtctg
-tcaaaactcatggaactatatgtgaaaagggtagattttgctgtacgtgggtcatacctc
-agtaaaaaaCAACGCCCCCAACACAAGGTTCTATAAAATGCCGCAGATATACATATGTAA
-CATTAAATAGATCTCCTCCAGTGAACCCCCTCACCCTCTCTGAGTTTCATTCATGTGttc
-attcaggaattatttcttgagcacctactatgtgctcatcctgtattaggtattagataa
-tcagaaatgagcaaaattcgtaaagtttctgattccagggcacttctactaaatatatca
-gttgcattgaaatcttgatgaatgctatgaagaaaataagacagggtaatatgtggggtt
-ggaggcaagtttagccagtatgatggagaaagccccaccagagagggccatctgggctga
-gaggctgagaagaagcaaggtctgggagagtcaggagggagggaattccaggcagaggaa
-aaggcaagtgcagaggccttgaagtgggagcgtgtctggtatttgaggatcaaaatgaag
-ATGGTAACAATGATATGCCCTGCAGCTATCTCTCTTCCATGGAAAATGGTGCATGAGGTT
-CCTGTTTGGGAAATGCATCTTGTCAACTGCAGATAAAAATCAATgcagagagagtagtgc
-tttgtatggatgaagctgtgtgtgaatcacagctcttagcttactggctgtgtgacctta
-ggctggggcctctactggtgtctgagccttttctctaaaatgaagataatcatagctcct
-tcccctgggttgtagggagcattcctgagataaCTCTGGTTGTAGTTACATAATGAACGC
-ATGATAAATTCTGGTATGTCTGGGCCATATCTTACTATGtgtcaggactctgagcccaag
-cctgcgcgtatacatccagatggcctgatgcaactggagaaccacaaaagaagtgaaaat
-ggctggttcctgccttaacggatgacattaccttgtgacattccttctcctggacaataa
-gtctccgtagctccccaccaagcaccttgtgacccctgcccctgcccgccagagaacaac
-cccctttaactgtaattttccactacctacccaaatcctataaaactgcccaccccatct
-cctttttcagactcagtccacctgcacccaggtgattaaaaagctttattgctcacacaa
-agcctgtttggttcacatggacgtgcatgatatttggtgctgaagacccgggacaggagg
-actccttcaggagaccggtcccctgtccttgccctcattccatgaggagatccacctatg
-acctccgatcctcagatcaaacagcccaaggaacatctcaccaatttcaaattgagtaaa
-cggtcttttcactctcttcttcagcctctctcactacccttcaatctccctgtccttcca
-attcgggttcctttttctctctagtagagacaaaggagacacattttatccatggaccca
-aaactgcagcaccggtcatggactcaggaagacagtcttcccttggtgtttaatcactgc
-agggatgcctgccctgatcattcacccacattccattggtgtctgatcaccggggggaca
-cctgccttggtcattcacccACATTCCCTTGGTGGCATGTCAATTGCAGGGACACCTGCT
-TTGGCTGCTCACCCATATTACAGCCCAGGGCTGCTCACCGcccgcttctccgtgtctcta
-gctttctctttaaacttacctcttcactgtggtcaaccttccaccctgcattcccccttc
-ttctcccttagcctgtgttctcaagaacttaaaacctcttcaactcacacctgaactaaa
-acctaaatgccttattttcttctgcaatactgctaggccccagtacaaactcgacaattg
-ttctaaatggccagaaaacagcacttttgatttctccatcttacaagacctggatgattt
-tttgtcaaaaaatgggcaaatggtctgaggtgcctgatgtccaggcattctttcacacat
-tggtccctccctagtctctgctcccaaagcgactcatcccaaatctttttttttctctcc
-tgtctgtttccttccatctccaccccaagctctgagtcctttgaatccttcttttctacg
-gactcatctgacctctcccctcctccctgacgctgctcctcgccaggctgagccaggtcc
-caattcttcctcagcatctgctcccctaccctataatccttctatcacctcccctgctca
-cacccagtctggcttacagtttcgttctgcaactagccctcctcacctgcccaaaaattt
-cctcttaaaaaggtggcttgagctgaaggcacagtcaaggttaatgctcctttttcttta
-tctgacctctcccagatcagttagcatttaggctctttttcatcaaatataaaaacccag
-ccccgttcatggcccacttagcagctaccattagatgcttcacagccctagacccagagg
-ggccagaaggccaccttatccttaatatgtattttattacccaatctgctcccaacatta
-gaaaaagctccaaaaatgagattccggccctcaaaccccacaacaggacttaatgaacct
-tgccttcaaggtgtacaataatagagaagaggcagccaagtggcaacatatttctgagtt
-gcaattactcgcctctgctgtaagagaaaccccagccacatccagcacacaagaacttca
-aaacgcctaagccgcagcagacagttgttcctccaggacctcctcccacaggatcttgct
-tcaagtgctggaaatctggccactgggccaagaaatgtccacagcctgggattcctccta
-agccgtgtcccatctttgcgggaccccactggaaatccaactgtcccactcgcccaccaa
-ccacacccagagcccctggaaatctggcccaaggctgtctgactgactccttcccagatc
-ttctcttcttagctgctgaagactgacactgcctgattgcctcagaagcctcctggacca
-tcacagatgctttaggtaactcttacagtggagggtaagtctgtcccctttttaatcaat
-acagaggctacccactccacattacctacttttcaagggcctgtttcccttgcctccata
-actgttgcgggtattgacggccaggctgctagactccttaaaactccccagctttggtgc
-caactgggacaaaattttttttttttttgagatggagtctctctctattgcccaggctgg
-agtgcagtggcgcgatctcggctcactgcaagctccatctcccaggttcatgccattctc
-ctgcctcagcctcccgagtagctgggactacaggtgcctgccaccacgcctagctaattt
-ttttgtattttttttttagtagagacggggtttcaccgtgttagccaggatattctcgat
-ttcctgacctcgtgatttgcccgcctcggcctcccaaagtgctgggattacaggcatgaa
-ccaccgcccccggcctgggacaacattcttttatgcactcttttttaattatccccacct
-gcccagtacccttattaggccaagacattttaacccggacaagtcttacaggctggtcca
-agatcttcgccttatcaaccaaattgtcttgcctatccaccctgtggtgccaaacccata
-tactctcctatcctcaatacgcccctccacaacccattaatctgttctggatctcaaaga
-tgctttctttactattcctttgcatccttcatcccagcctctcttcggtttcacttggac
-tgaccctgacacccatcagcctcagcaacttacctgggctgtactgccacaaggcttcag
-ggacagcccctattacttcagtcaagccctttctcatgatttactttctttccatcactc
-ccacctactctcccactgaaacttccacctatcaatctcttcccacacaaggcaaatggt
-tcttggactaaggaaaattcctccttccagcctcacaggcccattccattctatcgtcct
-ttcataacctcttctatgtgggttacaagccaccagcccacctcttaaaacctctcattt
-cctttaagacatttaccttgtatttcactccatccttggctaccttccccttgctcttca
-gactctcctcccaggccctcttcttgtttgcttatacccagccctgtaaataacagtgaa
-tggttgcttgtagatactcgacgttttttcatgcaccatgaaaattgaacctcctcctct
-aggaagttaccccatcagtctccattacaacctctgacggctgccaccctagctggatcc
-ctaggagtctgggtacaagaaacctttagtactccttctcatctttttactttgcatttc
-cagttttgcctcgcacaaggtctcttcttcctctgtggatcctctacctacatgtgtcta
-cctgctaattggacaggcacatgcacacaagttttccttactcccaaaattcaatttgca
-aatgagaccgaagagttccctgttcccctcatgacaccaacaGTTCACTACTATTTTGTT
-TTGTTTTTCTTATTATTAATATAAAAAGACAGGAATaggccttgacttactcactgctga
-aaaaggaggactctgaatatttccaaatgaagaaggttgttttcacctaaatcaatctgg
-cctggtatatgacaacataaaaaaactcaaggacagagcccaaaaacttgccagtcaagc
-aaataattacactgaacccccttggacactctctaattggatgtcctaggtcctctcaat
-tcttggtcctttaatacctgtttttctccttctcttattcggaccttgtgacttccattt
-agtttctcaattcacacaaaactgcatccaggccatcaccaatcattctatacgacaaat
-gctccttctaacaaccccacaatgtcaccctttaccccaaaatctttcttcagtttactc
-tctcccactctaggttccgacattgctcctaatcctgctcgaagaagccctgagaaacat
-cacccattatctctccataccacctccaaaaattttcgccaccccaacacttcacctcta
-ttttgttttgtcccaacacttcaccactattttgttttgtttttcttattaatataagaa
-gacaggaatgtcaggcctctgagcccaagcctgcacgtgtacatccagatggcctgatgc
-aactggagaaccacaaaagaagtgaaaatggctggttcctgccttaactgatgacattac
-cttgtgacattccttctcctggacaatgagtctcagaagctcccccactgagcaccttgt
-gacccctgcccctgcccacaagagaacaaccccctttaacgtaattttccattacctacc
-caaatcctataaaactgccccaccccatctccctttgctgactcctttttcggactcagt
-ccacctgcactcaggtgattaaaaagctttattgctcacacaaagcctgtttggtggtct
-cttcacacggacgcacgtgacaCTATGTAGCTGTTAAAAACAATGAGGTTGATggctggg
-catggtggctcacacctgtaatcccatgactttgggaggccaaggtgggtggatcgctta
-agctcaggatttggagaccagcctgggtaacatggtgaaaccttgtgtctactaaaatca
-gaacaaaattagctgaaggtggtggtgcatgcctctagtctcagctacttgcggggctga
-ggcaggaggatggctttagcctaggaggtggttgcagtgagctctgatcatgccactgct
-ctccagcctgggcgacagagcaaaaccctatcttaaaacaaaacaaacaaacaagcaaga
-aTGAGGTTGAGCTACATCAGATGCTGATCTGAAAAGATGTCCCTGTCATGCTTATGAGTA
-AAAAAAGAAACCAAGAGGCAGAACACTATATACAATGTGGATCCATTTGTGTGTAAGAAT
-GATCCAAATGATGTATTTTTATACAAAAACCGAGAAGATCAAACTATTAACAGTAGCGAT
-TTGCTTCAGGGGAGGGGGTTTCAATAGGGTGATGGTGATGGCGTTTTCTTTTTACATTAC
-CTATATTGAAATTGTTTGGATTTTAAAAGTAGAATGAGAGTGTATACAGGTATAATTAAT
-AGAATATTTAACAACTAGTATATAAACACTAGGAGTCCCTAACTGATGTCCTGGACCCcc
-agggatctgtgaatagaattcaaggaacctgtaaacttgcattaaaaaaaaaaggacatg
-cttttcccactagtctctaactgatattaacttttcctgtggtagtgagtatatgccaca
-ggctattacagtggtgatagcagggcctgcagctttgtcactagtagaaaccgcagatac
-tctaatatctcattgcagtgattgcggatatctacgacacattgtgtatactcacctcag
-cctcaaaattatggaaggtacttgacccaccactcagtcttgttattttgtgcattaata
-cagaaataatataggactatatcagaaacctgttttctgttatgttgacatttgcatctc
-aaggcaatttgtttcctttataaatctatgcatttaattttacatttcaaaaaaaaattt
-ttttttctgagagagggtcaccggatgccaaaggaccccaaggtacaggaaaggttaaga
-cccctgAAGGCCTGTCCCACACAAGGTTCCTCACTGGTGTccccagtaggctaccaactc
-tgagagtgcaaggactttgcctgccttCTGGGGCCTGGAAGACTGTCTGGATATTTgtag
-gctctgctgttgaccccaattatagatgggcaaatggaggttcaggctcagagtcacttc
-cctgaggtcacccatcaagttgcagatgctagattcctcctcatgtctactgatttggaa
-ggctgGGAGGTCAGGTCTTGTGGGTGTAAGAGGGTCAAGGCGGGGGCTGGGCGGGTGAAA
-GTGGTGCTTCCCTCACCCAGGGTACGACCCAGGCTTTAGCCTTGCAGCCAGTGAGCCCAG
-AGGATGGGGTGAACCCTGCTGCTGGCTTCTGCCTGTTGACCCAGTTCCTGGGTCTCTGCC
-CAGACTTGTTCCAGAACCAGACCCAAAGCACCAAGGTTTCTGTGAATGGGGGTGGCAtta
-aggaaacttacccttctagttggtcagacccagcctctcagagctgccctgctttccttt
-gtctctctcacatcctgcatccaatctgttgtctctaccctcgggcgcatgcagaatctg
-accacttctgcccaaccttgccacttccaccccagtcccagcccccattgtctctagcag
-ggatcaaagcttccttgatactgtcagcatctgtcattgctccctgggcccccaggctat
-gctccacacatagccagtgacgtcctggtcaacctgtcagattatgaccccctctgctct
-aaaccctgccttgggtcccgtgtggcttagagaggaccaggactccttgcagATTCCTTT
-AGTGAAGAACAAAATTCTTTGCTTTGGAAACAGGTAAAACAGTCCCCAGTGAACAGAGTC
-CAAACCAGGCTGTACTGGGATGGTGTGGGAATTGGGATGAAGCCTGTTCTAGGTCCTAGG
-CTGAACCAAAGCCCCATGGCTGGGGTGGTGCAGGGTGTGGAGATTTGAGCCCGGCCTGAC
-GGTAAAAGGAAACGGGCTTTAGCAGGGATGCCCCAGGGGTAGGAGCCCAGGCAGGGAGAC
-ATCTGGGGAGCAAAGACTTAGTGAGGGGGAGACCTAAATGATGCTCTCagggacctctca
-gctcccatcccctccatttcacagatgggaaaactgaggtcccaatcaggaaaataaagt
-gccagaggctgtacacaggagctaatggccagatctggTGCAGACGTATGAAAATCTGGA
-GGGTCAGATCTTACCTAGCTGTGTGTGTGTGTTTCAACTTAAATGTAAATCTTTGTAATT
-TTATTTTTCGAATGGGTGATATAAACACATTGTTCAAAATTCCAAGGAACAAAAAGGAGT
-GAAGTGAAAAACAAATTTTTCTGTCCCTGCCTCAACCCACAGTTCCCTCCCTACAGGCCA
-CTGAGGGAGGTTCCTGGGTTTCCTTCCAGAGAAACGCTATGCATACTTCTACATCTGCAG
-TAACTGTGTTTCCATCCCACCACCTGCCCTTCAGGCTACAAAAACCTCAGCTTGccattc
-cacacctggcttccttttgcttaacattgttcatagcatgttccacattcatccaggtag
-acttgcctcagcattgtaagctgcttgaaattccatctatgggcctccattgtttgctca
-tctagtcccctctagctgggcctgtaggatgtttccaggctttaacatcaaaaacagggc
-tgctacaaatatccttgtacacctgtcacttaacattcccacaagtctatgtggggaata
-aatcctctgaagtagaattgcttcaaagtagagtgaaatcacacgtttttttggtccttt
-gttttttgaggcagagtcttgctttatcacccaggctggagtgcaatggtgtgatcatgg
-ctcactgcagccttgaattcccaggctcaagcgatcttcccacctcagcctcccaagtat
-ctgggactataggcatgtgccaccaggcccagccaatttttcagtatttttttgtagaga
-ccagggtcttgctttgttgcctcaggctggtctcaaactcctgagctcgagtgatcctcc
-cacctcacctcagcctcccaaaacagttgtgattttgactatcgttaacaaactgccctt
-ggcagaggttatgccTAGTGGTTTCTGCCCCTTTGGAGGAGAGGCCCTAGGGTCTGCAGA
-GGTGGCCACAGGAGCCACAGAGTTGCTTATTGCACCCCCTCCCAATACGCATCCACACCT
-CCCAATCTCAGTAGCACCAAAGCATCTCCCACCAGCTtccttctgacttctaggtctccc
-tgaaaatgtcacctcctctgagaagcattccctgaccacccccactctactccacctgtt
-tatcacagtgtgcactctggcttctacacagtacttcatgccatctgaaatcactttagt
-catttgtcatttgtccaattcccccacgagaagagccccaggagtgcagaggtttgtctg
-ccctgttcatgagcacatcctctatgcctagaatagggctaggcatatgagaggtcctcg
-ataaatatttgtggaaagagcagatGGGTCAGTTTTGTGTAAGGGGCACGAGATTTCCAC
-TGAATAGTTGTTTGGCAGCTAGAAGCAAGTTAGGAGCCTCGAGCCCAGGCCCAGCCACTG
-CTGGAGCCTGTGAGAGGCAAAGGCAGTGGAGACCACAGAGACCAGAGAACAGAGAGCTAA
-CTGGTGCCAGGGCAGAAAGAAAGGGGAAGAAACACCAGCACAGAGATGGGAGGGGCAGGA
-AGGAGGGTTCCCAGGAGGGAGGCCCATGGCAAGGGAGGGAGTCAGCTTGGGGTATCTGCA
-GGAGGAATGTTCTAGAAATGAACAAGACATAGTCTTGGTGCTCATttccttcctccaacc
-aactcattcagatgtgccgagacctgggcatggtgctggggatagagcagctaccagaac
-aggccaggctctgcactGCTGCTGCGGTCTCCCAAGGAAGATATCTAAAGGGCtactctg
-tcccaggcatgaccccaaggccctacaaatacagctcatttagtccttggtgctcccatt
-gtcaccattttacagatgaggaaaggaaggcattgagaagatgagcatcttgcctaagtg
-gcaaagactggatttaaatataggcctttggtctccagagaccacacccttagccactCG
-GTGGGCTGCTtgtggcagctagccttcaggatgaccccagggatcctggtgctcatgccc
-ttgtgtagtcccctctctcaacaagtcaggactggctggcatgactaattagatattgta
-gaaacgttagtgtgacttccttggctaaaccattgcattgtgtcttctgtcttgccctct
-cttggaccacacgctttagaggaagtaggccactatggcctgaggacccttaagcagccc
-ttgggaggaagccatctggaggggaactgaggccttctactcacagccagcgccagctca
-ccagccacaggaggccgagccccagcccaggtcaagccttcagatgagtgcagccctagc
-tgatacctgagtgcaaccacatgaaaaaaaccccaagtcggaactaccttgttaagttgc
-ttcagaattcctgaccctcagaaactatgaaagataagaaatgtttgttgttattttaag
-ctgctaaatgttttagggtaatttgttatgccacaatagataactaatataCTGCTTTTC
-CAGAGCTTATAGAGGTTTAACCCTCTTGCTTCTCTTCTCTGCCATCCCCAGGCCTCAGTT
-TCCTCATTTTGACAATGGGCTGACTTGTGATTTATGAGGGTTGGCCCCTCCTCCTCTGCC
-TTGCTTCTGTCCCCTGGGCCTGCACCAGGCCCTCACCCTGTGGCTCAATGCAGACTGAAA
-TGGTTTGTCTTGTCCTGTCTGAGCAGCTGGGCCCAAGCCTTCCTCATTGTTTTCCTCTCT
-GCAAGACATACTATTGCTTTTCTTCTGGGTCAGGCTCTGGGCAAGCACAGCCAGTGGGCT
-GAGAGCCAGGGGTAGAGAGACTTGGGGACCAACGGGCTCTCACGGAGGGATGAGCTTCTC
-AACCCTAGCTCAACCCTCAATTCTTTGACACAGGCCCAGCGTCTCCAAACATCcagtgtg
-gtctgggcctggagcactgcactgagagtcagcaagcttgctcaatagctttgccatttc
-ctttctctgccagtgatgagtttctctgaacctcagtggcctcattgtttcctccttgca
-gagcgcctggaaggaatagggaaatggccactgggacctgtgttctgtggatctgggcta
-ggattcttgtctgtctggttcatgaggcctagcacagtgcctggcacacagtagtgcctc
-ccatatttgtggaatATTTGGGACTTCCCTGGCTCCTGAGCCTCACCTTTCATGGGGTGG
-CAGGTCCAGTGTTCATCCCAGGTGAAAGGCCACAAGGAGAAGATGAGGAGTGTGGCGGAA
-AGGGCTGCAGAGGGAGGGGAGCAGGGCCTGCCTCTGCCATCTGGACTTGGGAGGGGCTGC
-CAGGGTCCCTGCCTCCTCAGGCTCAGGTATGCCTTTGGTGGTCGTCTATATTTCAACCTT
-GATCTTGGGAGGTGTTTGCGATCGCTCACCTCCCTGACACTTGAAAGTCACAGAATGGAG
-AGGTGTGTCCATTTTGCTTGGcaacatgcttattgaacagttattatgtggtcagcactg
-ttctaaccactaggtatatgaagtccttgcagccaccctccaaggtaggacctgttatcg
-acctattttacagacgaggcacagagaggttaaacaacttgtccaaggacaggtagctct
-tcacaggtgtaaccaggCGGTGCTTCTGCAAGGCCTCTTGGCTAGAGTGATCATGTGACA
-GCGCCCCTGCCCACCCCCCAACCTCACCTCAACTTTGGGAAAATAGGGCAAAGTATGTTC
-TAGACACAGGGAGGCTTTGCTGGGGTATCTCCCCACGTGGCACCAGGCCTTTCTGCCTGT
-ACGACTCCAGTGTGTACCTCttctcttattggatccccagcagcctggaggaaaagggtg
-attgttccccacacaaatgagtaaactaaggcccacaaaggccgagcattactcacagct
-ggtaaaggaagaTTTTTAACTTAATGGCTGAGCTCTTTCTATGTGCCTGTCTTGCCTTCT
-TGGTGGCTGAGGCTGATCCTGCAGATGGGGTGACAGGGATAAGATTAGGGTCAGACAAAG
-ATGGTGGAAGCTGGCTCAGAGGTCCACAGTCTATCAGAGAATGATCCTCAGTGAGGACAG
-GACAGAAAAGTGGCCACATCTCTTCCCAGTCTCCATGGTCCTCCACGGAGAACAGGGTCA
-GGACCAGGGACATCTGtctggctcctggtgagcactccagtctcatcttggccatgctct
-cctcgctctctgcactgtagacacactgaatgccttttgcttttggcccattctaccccc
-agggcctttgcacttgctgtcccgtgtgcctggaatgcttttgcttcctttccctgtctc
-gccactgccaacccagcctttagatctcagctctgtccttcttcctagtgcctccctccc
-tcaaggtcaggcacccattatccacccctagcatctctcggtccctccttcatggcacat
-atcatgattgatcgttgcacatgggaaatcactaggttagttacacccactgctccaggg
-gcaagggggaaggatggtcttccttgctcactactaaatccttgtcacttgcatggcgcc
-tggcgcattgtaagccctcaataaacagtggtggaagggacaaTTAAATGAATGCAGGAA
-TGAATATTCTTACCTGACAAACTAAGTTCAGAGTTGTGTATACACATTTGTGTTTGTGTG
-TGGTGGGGGGCAGGAGTCGGGGGTTGCACATCTACACATAGTCCCAGAATTGAAAGGATG
-CATGATTTTTTCATGACATTTATGGCATGCTATGTATCTTGTTGCCTCTGGAGAGGAGAA
-ACAGGGGTCTCAGctgggtgtcaggaaccctgggttctgggccaactcctgccaccgacc
-cttgggtgaatgtgattgagtcactcccttgcccaggcttagtgttcccatctgtaaaTG
-GTGGGCACAGAGAGGTGGTCTgtgtagtggttaagactgtgggttctggagccagtctgc
-ccgggtacgaactcacctccctcacttcttagctgtgtaaactccctgggcctccgtttc
-cccgcaataaatggggatcataacagtccccaccttttaggatgccacgaggtttatgag
-tcaatgtttataagacacatataaagtgcctggcccagagaaagTCCCATATGTGAATTC
-ACCCCAGCAAAGCACTTATCCCAGAAGACAGAGGAaacaatagtagcatctcctggttct
-ctgtgctggagcagtgccaggcacatcccctgaccagccatttgagcctcacagcaaacc
-caggcgatgtgtgtatcatcacctcaattttatagattgaaaaactgaagctcaggtctt
-tctcatagttacacagctaataaTCTCACAGATGTAAAGTTGAGGGAACAAAAGGAAACT
-ATAGTAAGATATGGATGGTACGACAGGATTCCTTCCTTGCACCGTGAATCCTGGAGTCTT
-Gacgtttactgagcacttactctctgccaggccctgtactgagccccacatgtgcattgc
-ctcatttaatctcctcaataacctgcaaagtagcttctgttagtgtcctcacttcacaga
-taaggaaaccgagtcacagagtggaaaagcaatggtctgagaaggcacagccagtaagca
-gtggagctgggattcagactgagtcaactgggactcagggcctacactcGGCTTCTGTGG
-GATTTGCCCCCAGGCCCTGGGCCAAGAATGGGGTGTGTAATTGTGGGGACACCCAGACTG
-AGCTTCTGGAGCCCCTTAGCTTTTCAGAACGGCCACAGCTGCCTGAGGCCCTACCTGAAT
-CATCCCTGGCAGAAAAGCCCTAGGGAGCCTTGGGCCAAGGGTTCCTGGGGGAAGAAAAAT
-CTAGTAGCTATGGATCTCCCCTTTGGGGACCAGGGTCCTCTATATTTTCCAGGTCCCAGC
-TAATGCCCAGGGACCCATCCACCATGGACATGGCTTATTTATTGGACAGAAAACTGGCTT
-AAGTTCtgagataataggttccggcatcagatggctgaatctgactttgcccttcttggc
-tgtaagatcttgggcaagtcacctaatctcttggtgcctcagtttcctcatctgttagtg
-gacaagcaatcttacttcactgggtcatggtgagaattaaatgccgtaacataaagcacc
-taggacagtgtgtggcatacagtaaatgctcactaaatgagtgcttactcattACGTCAT
-AACTGCTTtttcatcctccactcattctgggaggcacgagtattttgagttccactttag
-agaggagccaattgatatatgtggcttccccgggttcccatagctttgagtggtacccct
-gggacttgacctcctgaccccaaCTTGGTCCTCCCCAGACCCCACAGCCAACTCTCAGGG
-TTCATTCCTGACATTTCAGAGCTGGCTCTGAGGTTATGCAAACAAACTGCGGCCAGAGTC
-TGACTGGAGGTGCAGGCTTAGGGGGCAGACCTGGGGCCCGTTTTCTAACATTTCCTGCCC
-AAGGAGAAGGAGAAGAAGGTCTGTGTACATCCCAGCCTGGCTGAGCTCTAAGGCCAGGGA
-GGAGAGAACTAGAAACATGTGGCCCTGCCCTCTGTGGGATGGCTGGCCAAGCCAGTTGAA
-CAAATAAACCCGTCCTTTTGGGGGAAGTCGTCAGGGGGTCTGCTGCTGCTGGTGCCTGCC
-CTGCACCCCCACCTCATCCCAGGCATGAGCCAGCTGGTCATCCCCAGGCCGAGGGTATCT
-GTGCCAGCTGTTTCCAGGCCCCCTTCTTGGAAAAATCATCCCATTCCTCTAAGAAGCAGA
-TGCTGTTTCCCCCATCCCCCAGTCCCAAACTGCTTAGAAAGGAGCCAGCAGTGAGGTTAG
-GAAATCAAACCCCAAGATATTTTGTTCGGCACCGAGACTCATTTCTTGTTTGGATAACTG
-AAGGCTGAAAATGCCAAGAATTTGTGGGCAGCCTGGGAAGGCTGGGGCAACTGGAACCCT
-GACTCCCAAACCAGGTCAGTTTGGGAGGGTCTCAGGCTGGGCAAGGACCCCACCCTGGGT
-TCCTCCTTGGTGCTCTCTTGACCCACACCCAGTTAGGCAGGGCCTCACAACTGCCAGGCC
-GAGGGGCCCAGTTATTCTGAGGTTTGATGTCAGAGACCTGGAGCAAACAGCAGAGGCTGG
-GGCAGTGCCAGGTTGGGAGGCCCCTGCCCAGCCCCTGACCCCTCTCTGCTTGGCTTTGGG
-TGCAGAGGAGGAAGAGAAAGAGGCCTCGGCTGAGCAGCCAGCTGCAGGGTGGGCATTGGT
-CATTTGGCAGATGTGCCCTGGGTCTTCAGTGTGGACACTCGGGGAGGTAGAGGTGGGAGG
-GATGGCCTTGGGGTGAGAAAAGGAGGAGCTGAGAAAGAGACAGGAAAAGATGCAGGGAGT
-CACTTTGATAGCCAACCAGGAGAGAGAATCAGAGACAGAGACACCCACAGAGTTAGCAAC
-AGTGAGTCAGGGCCACCGCGAGAGCCCCAGGAGAGATCCACAGAGGCAGAGAGACTCAGA
-AATAGAGACAGgctgaccacagtggctcgtgtccgccgtcccagctacttggaagactga
-ggcgggaggatcgcttgagctcaggagttcaaggctgcagtgagctgtgattgcaccatt
-gcaccccagtgtggttgagagagtcagaccttgtctttaggagagagacagagagaggga
-gagagggacagagagagggagagagagacagagagagggagaaagagacagagacagaca
-gagatagacagggagataggcagagagagGGCTGCCATGGACCCCAGGCCAGCAGCTGCT
-GGCTGCTCCCTAAAGGTGAGAAAGTAGTTCTCACCTGCAGTTTCCAGGTGGGGTCAGCCC
-TGCCTCTGGGAGCTCAGAGACTGGGGAAGATGTGCTGCCCTCAGGTGGTGGGGGTGGGCC
-AGAGAGGCTGGGGCTTGTGTCTGGCCCTGGTTTTcctcattctcctcatctgtataatgg
-atcattctgtggggccatgaagagaaggCAGAGTATGGCACTTCTTGGATGGGACACCTG
-GGGCAACTGGGGGAATGGCAGTCACACACGGGAGCCCttattgagcacctgctgtgtgca
-gaggctttctctgctctgcttctcttgaccccacatcaaaggtcaggggtaggtgctgtc
-attctcctcccagcctccggattaggcactgagAGGGAAGGGCCAGCACTGGGTCCTAGA
-GGGAGGGCATGGTGGACAGAGGAGGTCATGTGACTAGCCACTGAGCTGCCCAGCCCAGCT
-AGAGATGCCTGCACTGCAGCCGGCTCTGTCCCCCAACCTCCTCAATATTCCTGCCTGCAG
-CTTCTCATCCATATGAGCGGGGTGGAGCAGAGCCCAGAGCTGACGTGCAGCCCCAGGAGC
-TGGCTCCAGATGGGAGTTACTGGGGCAGGGGCTTTCCaggagcgaggaggaggagagaga
-gggaggcagaaggagggggagagcagggagaagaaagggaaggggagtgcaggggaggag
-gagagtatgaaagaggagagagagagaagaggtgaggCCGGGGCTCTCCCCATGCCTGAT
-GAGCACTGGCAGTAGGACACAGCAAGCTGTATGCTAGGAAAGAGTGCGTATCTGGGGACT
-TGGAAACTCTGCAGTAGAAGGGAGCACCAAGAGCATCCCATCCTCTCTAGATCTTGCTTC
-CCTTGCCTCCTTGACACCTTCCAgagtcaggaaaaagtacctgcagtttgtagtgagaat
-ccagattggctttcactgctacatggctctggcaagtcactttccctctctggcctgttt
-cctcacctgtacactgggggaacaggaGGGGAGTTGGGGGCACAGGCTGAGCAGATGATG
-GCTTCTGGGATTCGCGACAGGAAGGATCTCCCCTGTGTCTGTCTAGATGAACAGAATCTT
-GCTGAGAGCTTGTTCATCCCTAATGGCAatggtgatgatggtgatgatgatgctgatggt
-gCCATTAGATGAGTATTTTAAAACTCTTTTTTTAACTTTTCTGAGATGTTAGAGAAAAAG
-CCAAAAAAAGGCTTTGAGTTTCAGAAGATCTGAGATATGCCTGGACCAAGAGAAGAACCA
-GAGGAAGGTCACAGCCACAGCCACAGAAGGTAGCAAGCACTCCCCACTGGGGACCAGGAG
-TGTCAGAGGGGGCAGAGAGAAATTATTGTTTACATGAACCAAGGGAGACCGAAACCTGCT
-CATCTGTAGCCATTTGGTAAGGAAGTACCTGCAGCCAGGTCAGCTGAACTCCCATATCAG
-AGATCTTAGGCCCTACGGCACTCTACGGTGACCTGACTGACCCTAGCTCAGAATTTTCAG
-GCTAGGTGAATGGATGCCTGGAGAGGACATTCCACCCCAAGCTGAGGCACTGGACCAGGT
-GACCTTCTGATCCTGCAAGCCATCAGTTCAAGCCATCAGCTCTCAGCCAATGTTTCCCAA
-GCATCCGACACCCAGGGGATTCAAAGATGGATGAGAGTGAGAGGTGAGACTTGGGGTAGG
-AGGCCCAGTGGGAGGTGATGACAGCATCCTGGGAAAGATGACGAGGCCTAAGCCAGAAAG
-ATGGACCATGAGAGAAGCCTAGGCCACAGGATGGGCTGGGCCAGCTGCCTGGGGGATAGG
-TGGGAGCCACAGGAAGCCCCCAGGGCACAGCCTGTGGCTGGGTGGTGGTGTCACCCTAAA
-CAGAGACAGACAGGCAGGAGGAGGGTGTTTGGAGAAGAGCAGGGAGTCGTCTCAGGCAGC
-TTTGGAGTTGAGACACCCATGGACCCTCAGGGAGGTGTTGGGGGAGATCCAGGTCATGGG
-TTTTGGGCTCAGGATCCCATCAATGCCAATTTTGTGTCATCACGGAGCAGGATGGAGACC
-TGGGACCTGAGAGATTGGAAGGACATTTATGCATTCATGCattcactcatgctacagaca
-tttattgagtacctactgtgtgttcggcactattctaggccctgggaacccagaagtgag
-caaaagagacatggcgcctgccctctgggagctcacacaccaaaagaaatgtttttaaga
-acattaggtagggataagttctaagaaaaaaaaacacaacaaagccagcagagggacaaa
-gggtggaagaggaaggtggttatttcgtacggggaggacaaggagggcctctggggagat
-ggcgctggagaggataggaggctggggtaagcaaagtgggagtctgggagagggaactcc
-agggagtaagggttcttgcttttattcggatgcatggttagccctgggaggagggagagg
-atgtaacttaggttttgatggggattctttggtctgctgcatggagaacaggaggtgggg
-gccgagtgttagcagggagccaggggggcagccaggacagctatcctgcctggagccaga
-ggtggttGTCAAGCTTGTCTGCTGTTTAATACCTTCTAAAACTCCAGGAATTAGTTCGCA
-TCCTTCATTCCTCAGTCATCGCCCAGACTGTCTCCTGGGTCCCTCTCCCTTTCCTTGGTA
-GCTCTCACTTAGGGACTCTGAAGAGTCCCATCTCAGACCCCCCAGGATGTCTCCTGTACC
-CTCATGCCCCGCCAGGGCCAAGCCTGCTTTGCACACCTCTGTAGTCAGTGCTTCTCCGAG
-GGTACACAATAGGTGCTCACACTGCTGAAAGACGAAAGCATGACAGGGCATTCTACAGCA
-GCCCTGGTcttgggccaaaaccacagtggcatcctcagctccttgcttcctcccactccg
-catccaattcaccagcagagctgatgggctctacctccagaacccaccagaatcttactg
-gccacaccccctcctagccccgttctgctccaggcctccggtaccttgcacctgatggct
-gcagcggccacctctttgggcttcttccttccaccctgcctcctacagtctatgctgttg
-aaatcgaatcacgggtgtctgtctctgctcacaaccttgcagtggctcccatgacactca
-gaacaaaagctgaagtccttccagtggccccccccccagctgcatggcctgccctgctgt
-cacctctcagacctccccgcacccttgctccctctcctctgctccagctacacaggcctt
-cgccccatggttctccaggcacacaccgctgcggatgcattccctcctcacggtcaaaat
-acatgcagctccctttgcagaacgttccctcaaatacctgcctggcccactctatcattt
-cccttgttctctgggttcaaatgtcacctcctctgagaagtactctctaatgatctgacc
-tcaagcagccacccagggccgccacttgccctctttcttcttcattttgcttcaccatct
-gacatagtagattatctcttactgcctctttcccctactagtccagagggagacatacta
-tactgtcgtatccccagcacccaggaaggcttggtccgttcagcccttggtcagggctga
-atggatttctgttggatgaatgaaGGGACGGCAGTTAAAGAGCCAGGTTGCCAGCTGACA
-TTGCCCAATCTTGCTGTGTGGCCTCAGACCCACCCCTGCCCCTCTTTGTGCAGCTCAGAG
-ACAGCCCTCTGTGCTCAGGGAAGGCCTCTTGGATGGACACTCCACCTGCTGATTGTGACA
-GACCCCAAAGCCGCCCTCTGCCCCCTGCAAACCTCCCATGCCCCGTACCTTCTTCAGCCA
-CTGCGTGTTGTTCTGCAGTGCCTGCTCCAGCTGTTTCACCTGCTGGGTGGGCAACTTCCC
-CAGGTGCAGTGGGTTGGCCAGTGATTCTCTCTGGAGGGTGTTGGAGTCCCTGGAGACCTC
-AGGCCCCGGAGGGCAGGGCTCAGACTTGGGCAGCAAGAAGGTGTAGCTACAGTGGCCGTG
-CTGGACTACAAGTGTCTCGCAGCCCCTATCCGCCTCCTGCCTTGTCTGTTGAGCCACAGA
-CATGGTGGCAACCACAAGGAGGAGGCTGCCCTGCAGCATGGCTAGCTGGGAGAGCATCTG
-AAGATGTGTCAATGGCGAGGGATGTCTGCTCAGAGCCCTAGGGGCTGTGCCTGGGATGTC
-CTGCTGCAGCCAACAGTGGCCAGGCTTGCCTGCAGCTGCAGCTACAAACCTCTGTCTGGC
-CGAGCTCTGTCCAGGCAGCTATTTATACTTGCTCTGAATACCACGGCTGCTCTGCTTGCT
-TCCTCTCACCGCCTCCCTCCGGCCCCACCCGACACCCTCTCACCTCTATTCTTCACTCCT
-TCCCTTCCTCCTTCCTCAGTCTTGGTGGCACGTCGCCCTTACCCTAAGCGTGCACCAACC
-TTGCTCTGTCTGCCTCACCTCTGAGCCCTCTGATTATCCAGTGAGGCCTGGCTTCCCTGC
-TGGAGGGGAGGGAAGAAAACAGcacacagacacgcgcacacactcatgcacacactcacg
-agcacacactcacacgcacgctgacacgcacacacattcatgtacacacaAACGCCAAGC
-TCCAATGCTGCCCGCTTTGGAAAACCAAATGCAACTTAACTCTCCCTTCCTGTCTCTGTC
-TTGGTCTCCCTCTTTCCCTCCACCCCCATCCCCTGCCCCCCAAGTCTAAGATCTCAAGTT
-TCAGTCCCGCTGCCATCCCCTTCTCTCCCCGCTGCACCTTCCTCCCTCTGGTTCCATGTT
-AGCGCTTGGAGTACAAGTGACCCCCGGAGAGAGCAGAGGGAGGGGAGGAGGCAGAGGGGT
-GAGGCTGGGGAGGGCCCAGCGAATCCACTTTGCCTCTGGAGACACAGAAAATCCTTCCAA
-GGTGGGGCAAGTGAGCAACCCAGCTGGGAGTTGCTTCCTGTCCTCTCTTCTCCCTCAGGG
-CCAGGGGAAAGTGGTATGCCCCAGGATGGCCCTGGCTTGGTTGCTTGTAACAGTAATGAG
-AAGTTGTCATGTCCTGGGGCAGATTGTCCTGGGGCTGCTGGAGTGGGGATGTGGAGAGGA
-Ggcagtggggagaggaggttggagtgccaggaggctaaccctagatctcgctccccgaca
-gctggccacgagacctagggtgggcagctgtgcctctctgggcctccacaccctgatctg
-taaactgggtaaaccttatctcttgcaggAGGAATGCGTGTGAGTCCTCAGCATGGGGAT
-GGAGAAGTTTTCAGCTTctgggttcaaatcctggctctaccatctaccagctgtatgact
-ttgagtaagtcacttaacctctctgtgccttcatttcctcctgaatgaggaaaataatac
-cacctacttcacatggcatgaaaattaggtgagttagagcaaggttggcacagagcgagc
-actaaataaatattTTCCGTTGTCAATgttatagttgtcattgcacctcccctcccacga
-cccactggagcataaactcctctagggcagggatttgtcCCTGGGGGACATGGTCTCCAG
-GCAGAAGGTGCCCAGGAGTTGGTGGGGCCTTTCCTGCATGGGCTGCCTTTATGTTCTGCC
-AGCTGTTTGGGCTTTTCCTCTCTCCCTGCTTGTTTCCTCAGAGTAGGGGCCAGTCTGGCT
-GTTTAGTATTTTCCTTTTTGTTCTCTCAAATCCCGATAGAGTTTTGAATTGGGGCAGGCT
-GCTTCTGGGCAGCTGTGAACTGTGGTCTCATCTGGGGACTGAGAACATTATACCAGGTGT
-GGGGCTTTTGCAGGCAAAGGAAAAGCAGCTGGTTATCAGCCTCCAGCCTCCCCTGAGCCT
-TCCCACATGCTCTGAGCTCTGCGTGCCCCGCTTGGCCCCAGTTGCCTCAGCTGTAAATGG
-GGTCATAGCACCCTGACCATGTGAGAGTAATGTGGACTGATAGCTTATCACAGCTCTGGG
-TGCAGAGAAGGGCAGTGTGAATGGTGGTCGTCATTATGATTGTCTTGACTGAGCTGCTTG
-ATAATCCCAACGAGgcagttacaccaggccccaagcttagatgggccccatgcttggttt
-acactctgccagcactgtcttgaaattcttaatacatttggaacaaagtactcagcactt
-gcattcttcattgagttccacaaattaggtagcaggccctgCCTGGGAAACATGAGGCTT
-CCCTCATCCCTCACTCTGCTCCTGACCTTACCATCCAATCAGACCTGTTCTTCCAACATG
-ATCCTTTAGATATTTCCCCCTCTGTCACCTCTTCACTACTCAGAATGCtggagccagcac
-atctggatcggaatcttggctttcctgaccccctatttgtgtgccttttgccaagttgcc
-taacctgtctctcagtttcctcttctgtcaaaatagtgatgttacagtggctaaaagacc
-gattcctgcagtgaggttaacacagagcctttcacataatacatgctcaaccagtgacag
-ctgtcatcattACTCCCtgctatgatatgaatgtttgtgtgcccccaaattgatctattg
-aaacttagtcaacaaggtgatggtattagaaggtggggcctttgggagtgaatagctcgt
-gaggactctgccttgggaatgagattaacgctcctatcaaacatgtcctagacagctggc
-cttcccttttgctaggtgacgttgcagtaagaaagcaccgtctatgaagcagggagctct
-caccagacaccagatcggctggtgccttgatcttggaattcccagcctccagaactgtga
-gaaataagtttctgttgtttataagccccccagcttagtgcattttgttatagcaacctg
-aatgggctaagacaCCCCACCATCACTCTCTTAGACCGGGGTGCTTCCTCTCTTGTAGGG
-AGAACAACAGCCTCAGAAGTGAACTCTGGTTAATTGGCCTTTGCTATTGCAACCAGAGTG
-Accttccttccttccttccttccttttttctttctttctttccttcttctctttctttct
-ttctttctccttttttttgacagagtcttgctctgttgtccaggctatagtgcagtggca
-tgatcttggctcactgcaacctccatctccccggttcgcgtgattctcctgcctcagctt
-ccccagtagctgggattacaggcatacgccaccatgcccaactaatttttgtatttttag
-tagagacggtgtttcactatgttgcccaggctggtctcaaactcctgacctcaggtgatc
-cacgcacctcggcctcccaaagttctaggattgcaggtgtgagtcaccatgcccagccca
-gagtgatttttctaagacacaatccagccctgacttctttgtttaaaattcttcagtttt
-gaactccaactctttctgtggtttacaagcccctgccggatgtggcctccattctcatca
-ctgtttccctggcactttataccttatcattTGGAATTGGTTTTACTCCCCCGCATGCTT
-TCCGCCTTCTGAGGCCTCAGTGTCTATGCTCCTAGCAGGAAACTtctgcttaaaaacttc
-cccccacctgtattgtcccagcttcgttctgcctgtcttttgatcttatctcagggatca
-cctcctctgggaaggctttctgcatctgtccctcccacttcaatgggagtaggccttctg
-cctctgggagctcaaaggcccctgcctgcctgtccctcaccaaagcactcatcctgcatt
-agaaaggcttgtttgcaggccttggtcaccgtctagactgaacactcttctaggtttgct
-gtcacactttccatttctgtgtttgttgcctgtcctaaggttaggctcacagtgggtcct
-catgagtgttatgttgaatgaatAGGAGCTGCAGGCCCAAAGCAGAGAGGAAGGCAGTCC
-CCTTTCCTCTCCAGCAGGGGCAGCAGGAAGTTCTGTGTGAGTTGTTCTGAGTGTCTGGCC
-TCCAAATCCTAAAAACAAACCAACCCATGTTGATTTTCCCATTGTCTGCTGCTACCATGG
-AGGTAGAGAACGGAGAATAAACTTATATCCACCTGGATACTTTGGCTTTTGTtcaaatag
-cttgggtaaaaagggaatttattggccaatttaactgaaaattttaggggtatcgagctt
-caggcatggctggatccaggtgctcaaatgatattagattttttttttttcctccaactc
-caggctcttattttccttcatttccttattttcctttgggttcattctgtaagagttccc
-accataatcaccaccactactggcaacagcagctccaatctatcaactcagtaacctctt
-ttaagagtgcctctttcctaatagttcttggaaaagttccagcttgagccgtacagtcat
-tcctgaaccaactattatagccagaggaaggagctactgtggatggtcaggctggatcct
-gtgtccaggcctggagccttggagcaggtcaacctcacaggatcggaagggactaagggt
-ggggtacagtgacgctcaagaaaacctggagtagaatgatcaggaggcgggtggagttgt
-tgggcaTAAAGCACCTGCCTGCCTGCACCCTGACTCTCCATCCCGCCACCCACCAAGTGA
-ACCCACCTCCCGCtcagagctgatggactcttggagtaactagagatgccatggaccctt
-accttgcatttcactcatgaggaaactgatactcagagagggaggccacttgcccagtgt
-tacaTGCTGGAATCTATTTTCCTGGAAGAACAGAACTTCCTGCTCCTAGGAGTGAAGGGT
-GGGAAAACAGGGTCATTCCGGGAGGACCACTTGCCAATTTGGGGTCCTGAAGTACCTGGA
-TCCAAAAGAAGAAGACTGTCCCCAGTCTGAATCTCCCACTCTGGGGAGAGGGTCACTCCT
-GGGTTGTTCCCACAATCCAGCCCTTCTGCCAGCCCCTCCCTTGGCAACTCCTTGCATTTC
-AACACCCTGGATGATCATTGAGGGTTGCACGTGGGGCAGCTGAAACAGACCCCAGGCCTC
-TGGTCCTGTGCTGCTCATGCCCCTGAGGACACTGCCTGGGCATCTCCCAGAGCTACTGAT
-GGCAACATGGCAAGAGCCTGGTGGGAAGCTGTGGGGCCATCGACAACCCCGGGGGATGGT
-CTGTGTGTCCTCAGAAGGTCTGGTGGTGAATCTTGTGCAGCAGACATCATGGTGGCCCCG
-TGAGCCTTTCCACCCAAGACAGAAGTCGGTTGACTGCCCTCCTCCACTTTCTACCAACCC
-AGACCTAGAGCCAAACAGAATTCCTGGATCACAAGGGGCCTAGGGTGGGTTTTGAGGTCA
-CCCTGTGACCCAGGCCCAGCTGTTAAGAGCCCCACATTCCTGATGCTCAATCTTGACTTC
-CCTTCAGTAGAtgagactcagtttcctcatctataacatggagaaaataatccctcactg
-ggaaggcggtggtgGTGGGGTCttccagttactgatactgtgtaacaaagtatccccaca
-tctagtggtttaaagcagtggcaacatctactttactcacaaatctgcaattgtggccag
-gttccctgggaaaagctcaactgtgctccattccgtgtcagctggagcaacttgcaggct
-ggggtttgcatccaaaactcatccactcacatatctgaaacctcagctggggcactcagc
-aaggacaactgcatatggcctcttcatgtggctaggggcttcctcatggcatggtggctg
-cttcccagagcaagcatctcaggagagagatttgggcagaaggtaggtgatctttatgac
-ctagcctcatggatcatgcagggccaagtcctctgtatctagtcaaagaagcaaccacaa
-agtcccactcaagttccaggggaggaagaacagactctacctcttgatgaggaggatcaa
-ggtttcagaagaaggtataggatgggggatagtgttgtggccatttttatttatttattt
-tgtttatttttaaatttttatttatttatttatttttgagaaagagtctccctctgttgc
-ccaggctggagggcagtggtgtgatctcagctcactctaacctctgcctcccgggttcaa
-gcaatgcccgtgcctcagcctcccaagtagttgggattacaggcacatgccaccaagtct
-ggctaatttttgtatttttagtagagacagggtttcaccgcattggccaggctggtctcg
-aactcctgacctcaagtgatccacctgcctcggcctcccaaagtgctggggttacaggta
-tgagccatagtgaccggccTGTTATGGCCATTTTTAGAAAATACAACTGGCCATGGGAGG
-GTCGGATGAGAAAATGCCATTTAAGTGTTTAGCATGTAAGTGCTTGATAGTTGGTAGCTG
-TTATTATTATCTTTGCGATTATTGGAAAGACCCAGCATCTCTTTGCATAAAAATATCCTT
-CAGAACCTGTGAGAGCTAAAGGTGCAGGAGGAAGCAGGATAATTTCCATCAGGGCTGCTG
-GAGAAATTGGCCCAGAAACCCACTGGATTTGTCCCAAGTCACCCAGTGTATCAGCAGCAC
-CCAGTCTGAGCAAGACTGGCCTGGGACATAGCTGCTTCTTCTGTTAGTAACGCTGTTACT
-ACTTCCTGGGGTATCTTCCTTGGCCTCAGCTTCCTCTCTGAACCATGAGAGCATCCTGGC
-TCTGCCTCCTCAGAGGCTGAGGGGATAAGGGCGGAGGACATGCATTCTCTTGGCTGTGCC
-CAGTCTGGGCCACCAGCCATGCCTGTTCTTTCTCAGGCCTGGGGAGCTCGGTTGCCTCTG
-AACCCACATCTGGCACTCCCTCCAGGATATGAAGAATAAGCCTGCCAGGTCAGAGGGCAG
-ATCTATTTTGGAACCTGGGACCCCATAAAGACCCAGAGGACCCTGTGACCGAGAAAACCA
-ACAGGCCCCTCTGTGttttgttttcattaaacaagcacaacatgtccctcatagaaaagc
-cagaaaatacatattggcaagaaagcgaaaataaatgttgcctgtgctctcaccagccag
-aggcaaaaaccatagctaacattttggagttttttccccccaaataattttcctctgcat
-atagatgcatattttttttggtagattttctagcaaaAAAAAAAAAAAATCAACAAACAA
-AGGAATATTGTCTCAACAATTTTTTAATTTTCTTTTACTTACTTTGGATTTTTCTTCTGG
-AAAAAAATTTAGAgccaggcacggtggctcatgcttggaatcccagcactttgggaggcc
-gaggtgggaggatcgcttgagctcaggagttcgagaccattctggccaacatggcaaaac
-cctgtctcttaaaaaaaaaaTACTGAAATCTCCAGACTTCCAATTGGAATTTATGTTggc
-cgggtgtggtggctcatgtctgtaatcccagcactttgggaggccgaggcaggtggatct
-attgaagccaggagttcaagaccagcctggccaacatggtgcaaccctatctctactaaa
-aatacaaaattagccaggcttggtggtacacgcctataatcccagcgactcagaagactg
-agacacgagaaatgcttgagcccaggaggcggaggttgcagtgagccgagatcatgccat
-tgcactccagcctgggagacagagggaaactatttctcaaaaaaaaaaaaaaaaaaaTCA
-GACAAGTGCACAGGATAACAAAATACACCCCCATATAGTCATCACTCCAAGTGGGCCCAT
-GTTAACATTTTGCATATTTGTCTTCGATTGTTAAAACAATGAAATATTACAGGAAATGTC
-AGTATTCCTTATAACTCCTTCTTGGTCTCATTTTCTCTCCCACCCTGCCCataggttcat
-atctaggtatataaataatgtataatatttttgtgttctcaaaacttaagtatatgctgt
-tatactgaatgcgacgtcctgcttatattatattttccagattgatataaatgacacata
-tagatcttgtgaccaaggacattttcttttcactgctgtgcagcattgcattatgtaatt
-tttaactctttatccagtttttggcagatggatatttaaattaattcagttatcttgtta
-ttcctgacaatactgctattaccatcttatatgggaatacttgtgcttacaagcaagggc
-tcctctggggaactaatccaggcatgctcctcctgggtcgtggaatatatgtgctgccag
-cctgaggcagttgccaaattgtgctccaagtctctctgtcgagttaattccagtagggtg
-ccggggtctccatcgctccgcacccctgccatcccttgagatggtcatgctttacctttg
-ttccaatctgatggctgtgaaatcgtacatgtaattacatagcctgctttccctacttaa
-tagtatattacggaactattttcctgtgcagaatattgttctatatgtgggtgtttcaag
-gtggcataagctgaaagcctccattggggtgttgctgggattttcttaaccaattcccta
-ttgttggacaacagggtttgtttTtgtggtaggattgcaaaactgaccacagatgctacc
-cacccctataagcatgctcctttgcagtgtgactctgcagttctccctattaagaggcaa
-agttcacttctccactcccttaatgctgacttgggccatgtgacttgctttggccaatgg
-gacattttcaagcagaggcttgaaaagggcttgtgctctggggcttgctctcttgctgca
-cctggggccctgagaccaccatgtgaatgagtcctggctagcctgagggatgatgagaca
-cacttggccaagtcatcctgtcatcccagctgatactaaaccatccaccagatttgtgag
-tgaggccatcctagaccatctatctagcccagccaaactggtgcggaccagaagcaaagt
-ccagttggcctgcagagatgtgaaaaataaatgttttaagccactaaattttagaggtgg
-tctgttagacagcaagcctgatacaGTTCCACCCAGCATTTtctttgctcaaccagttac
-tggctgggaaccttgggcaagttgctgagccttagttttctcctcagtacaatgggggat
-tacatacgcactcctcaaagtcgttgtgaagattggatgagatggcacctgtCAGTATCA
-CATGGCGGGGACCCCATAACCAGGGGTTCCTCTTTCACATCACGGTGGTCTTAGATGTGA
-CCTGTGACCTTTCTTATTGCTTCTTGGTTCTCCCTGCTGCCTCTTTCTCAAAAATGTACT
-CATCCTTCCAAGTTTTCTGGAGAGTATCAACATGTAAGTGTAAATCACAATCCCTAGTGC
-TCTCCAAGACTTGCAGGTATCTCCTCCTTCCAGGGCCTTCCCTCTTGAAATTAGGCATAG
-Tggctgtgtgcagtggctcatgcctgtaatacaagcactttgggaggccgaagcaggccg
-atcccatgaggccaggagttggagatcagcctggccaacagggcgaaactttgtctctac
-taaaaatacaaaaattcaccgagcgtggtggtgcatgcctgtaatcccagctactcagga
-ggcggaggcatgagaatcgcttgagtctgggaggcggaggtttcagtgagccaagatggc
-accactgcactccacactccagcaagacccggtctcaaaaaaaaaaaaaaagtaaggaaa
-agaaaaAGAAAAGaaaaggagtctccatccagaccccaagagagggtttcgtggatcttg
-cacaggaaagaattcaaggtgagttgcagagtgcactgagaagagatagtttattgaaag
-ctactcagttacagagaaggatgtcctcagaaagcaagaggaagaacgcactgtctttgt
-tttaaactcttctaatgtaggagtcttatctaagtaaaagctaagttatgtctttgtgca
-gacagaccgacagtgtgacagaatccattaccgttgacttaaagaaagttatccttggca
-ttttagtaagtacatcagatcacgacagtaattgttttgaaagcataaattgttatgtga
-tattggaacatctgggcattttgctgtcgtaagagtttactcttgcaggcattattgagc
-agcttccttagccataaacatcttatgactgtgggctgtgattagcaaggaatgtgtctt
-gctagttttaagatagagttgattttaaaatggtgtcaccctagctctcctatgctcctg
-tttcccaaacaTAAtcccccctctacttaagagagaaccctaaatcttaaggggagatga
-aaggtgaaggtcatttttctgtaacttattcctgctgacagtggACGTTGTTGACCTTTG
-GGAGAGAGTTCTCTCATAAGAGTTTGCAGAGAGCCTTGTAGGGAGCCGGGGAAACTCTTC
-ACTTGAATGACATCCCGATGATTTGGTTTAGTAAGTGTAGGGGCAGATAAGCTGCCAGAC
-TATTttatctccgtaatcccatgcaataagtgcaacagaagtaaaaagcacaataaccaa
-tagcaataagtgtgacaacacgaagcatgctaaaaaggaatgccttccaagtgctgggga
-gctggccaaactgtgctgttatgacaggaagtcaattgctgaggtatgagtctctaggga
-gttcatggcctgagatatattatgagagtgaccaggaatatagacacagtgttcagtctt
-gatcaatgcacagattttcccagggctgctgttaatatgtttaaagccatatggctttgt
-aaggacatttgtcttattcgggacgtttcttctgtcagacgggtgatcaccagatgagtg
-ttgttgaaagccacagcagtatgttttgctagggctcccacctgcgattcaacgtctata
-gatgttgcttaaagacagaatatgggcacaggatataaccaccaaaaagtttgtttctgt
-tgcctatcacagaccttgactacttcccagttggtggagagggaatccagatgtgtaagg
-atacatcctagaaggtagggatgaccccaagtgcatcatccagtcaaattgtaaggtgag
-tatggccaactatgagacccacatgcccataaccattcccaaggggaaggatagtcacct
-aaccatagagattcattttgccatcccatccacatttggtcaattgaaaggagagtctga
-ttgcattgttggggtggcagccatccgatactatagatgttggtttgggggtggttactg
-ttgatgaaaagagtcgaactctgtaaaatatttgaagagacttattctgagccaaatatg
-agtgaccatggcctgtgacacagccgtcaggaggtcctgagaacatgtgcccaaggtggt
-tggggcacagcttgattttatacattttagggaggcatgagacatcaatcaaatacattt
-aagaagtacattgatttagttcagaaaggcgggacaactcaaagcggtggggggaaggag
-aggcttccaggctataggtgaacttaaacattttctggttgacaattggttgagtttgtc
-taaagacctacgatcaatagaaaggaaatgtttaggttaagataaaagattgtggagacc
-aaggttcttttgaagtctcatagtagctgccctcagggacaatagatgacaaatatttcc
-tatttagacctttaaaaaggtgctagactcttacttaacctcttcaggattgggagggcc
-tggaagaaaaagatgtagctatgttaatagagattctttacagatgcacatttgtcccca
-caaaggacagctttgcaagaccatttcaaaatatagcaaagaaacatgttttcgggtaaa
-atattttaattttcttccttgtctcataacattatgccagggtcaggtcggaaagtaagt
-cacaatatgtagggttaaataaaacccatctgaggagaatttatggtttgtagggcatga
-ctcccagaccccttagataggaatttggacaagaaaaaaaaaaatcagagcctagtcctc
-ataaccattatgccttccaaggcataagggtactttgcctgataactgaatttggatacc
-tgtcaaccaactgagtccatcatgtatggtatagcctaaggtagggatgctattaagtta
-tttGGGATTAAATGAAGAAGGAATTTCTTGGTTTCGGTGGAGGAAGGGAAGAAAGAGTGG
-TGTGTGTCCTTTTGGAAAAAGGAGAGTACATATTTTCTGTACTCAAATTAGCTGATTGGA
-TATGCCAAGGTAAGCCCGAGGTTGACAAAGTTTGTACCCATTCTGCAAACAGATATCCTC
-CAACTCTATAATAGAGCAAGCTCAACATTAAAACCAGTGGTCTTATTTTCAGAGCATCAC
-TTATCCACTGGATAgctttttctggaagagaagccgtagatccactattggctcacagga
-gtattctggaatggtgatccctgcaccagatgcctgtgggacttcatgagagacaggttt
-aacttgggataaatgtacccaaatatgtaatcccttaagtttaactgtagtaggagtgcc
-tggaagtacatggtagggctctttctattttggggaaagctgatctgcaggggatccctc
-cttccaaggtttcaatagcatgaaatctcctggTCAAacaggagagaatatttatgaaga
-tggtcctgacacatgtatactgaacaaacatgcatgtaacatatgactctgttcacctta
-aggtggagacttaatccttgccaggcatggtcttagatcctgtttataatttgaaatctt
-cttgctataaagtttctattctatcagtcttatgatctctgttttaatgttaatgctggt
-tggttgtgcccgaattccaagagggagaattgtacagcaaggtgtgtttgaccccccagt
-ccctcttcccatcatggccagaaccagttgttcaggatttttaaaaaattattatttcct
-tttgccaagagagaggtccattctgttgggtggcttaggatatttgtttatttattagtt
-taGTTTATGGTATcccattttgtcgaggtgccagaggcagtattgaaggctaagctttta
-ttgtgtcccatatcaatgctggggtggtgtcctacttgccctggtccattacctcccttg
-gtggaacacttatggtcaaggaacttagagtcaaaagacttatagccaatcaaatgttct
-aggccagatgggaatggaggtgagcaggcactcattaaccttaaagcctctttaagcaac
-ataagagccaaaaatcaaaagccagaaggcaaggtataaaattggcttatttagaaattc
-tatgcaagagctactataatcttggtttgtggcaattagctatacaaactcaagaattat
-gtttagctatttagggatctgtgtgcctgtccttgatttggagtgtcagaattaatttta
-ttcctcaaaactggcccttacaatctcatgtgatagtccctgggcatggaggaattgaat
-agtttcaAATTTTGGAGGTAAAACAAAACATAAGGCATTAACAACATTTTAAACAAAAGG
-TCATAAGCCCTGCCTAGTTTTGAGAGTGACAGGAAAGGAAGTTCACAGGTAGCTAAACAT
-TTAAATTATTTAGTATCAAGACATAGAATAAATTATATTATTTCAGATAAAGGCAAAATT
-ATTAAATGAGTCTTAATGTTTTTGAATACAGGActgcctctgtgtcttatggaagcagtt
-tattttgattgtcacttttgtctaggtctaaagatgagactttggtcaacttgagtttgg
-tgtcagatactggcagaagtcagtgccttcttcttttttgggacagagtctcactctgtc
-acccaggctggagtgcagtggcatgatcctggctcactgcaacctccacttaccagcttt
-aagcaattctcatgtctcagccacgcaagcagctgggattacagatgtgcacgtaccacc
-acacctggctgatttttgtatttttagtagaaatagggtttcaccacgttggccaggctg
-gtctcaaactcctggcctcaagtgatctgtctgcctcagcctcccaaagtgataggatta
-taggcatgagacactgtgcctggcagtcagtgccttccttagatgagatattggacccag
-aagtcaaagccctgtaacttaacagcacaaggattagttaatagCACCTGATAAGGATAC
-TTTTGAGGGGGATAGAGTGAGCCCTTTAATTGATGTTCTTCCAATATATGTAATTATCAG
-GCTGGAGGTGGTGATCCTGGAGTTCATGGTCTGACTGGAAGCTGTGAAGACTTACAATCT
-TCAGTGCTTAATTTTTATGGCTTTAGTAAGCCCCAGCAATATGACtaagtcagagactta
-atttaggattttgattttgaagatgtttgttaaagatgttaaaaggctcaaaacatttga
-tcaaaacagaagcacagatcatggtaaaatagcatttactcatttacccaaagtgatcat
-cgaaatactttaaaggcaatacagaaggttacatggatgtaaaaaccttaacccttttaa
-aatctcagtttctttagcaatgaaaaacctaataaagacagcatagaaattatcttgata
-atacataaaatctcagttttttaagccatctactaaaaaagcaaaaaagccctactgcat
-tgtgactacttttacttattggaagctcatttagataaccaggaagtcaaacttgatgaa
-aaaagtgcttgaatttaatcagacacaggaagactgttttcaaggttatgaatatagcag
-gggaatacacgactcctaggaacagcatgagaagttttctgattgcatcaaaaatttaga
-catatcaagaaaagccagtgtacagaatgcagttatactagaggaaaacattgcttttct
-agacctccaagatgcaatatgttagcatttggccataataacagttagaaccagagcagg
-gagaaagttatagaagctgacagaaaaattaaaggagagagttgttatctcaagcattct
-caaagggagaaacagctgaaagctgtttttttcaacagcacagcaacagttgaacttttg
-agatatgattctgagaagttttaaaaagaaaaaggttataaaattaaaggtaagatttcc
-tataatttatttaaagagcatatcaatatcttaagaaaaccttgttttgatgtaagggac
-caatttttagacaaattattataaataatttttttataactaatgatatgcaaaatccct
-tttacaaattcccctttatgacttacatagaccatctacgacatgcttggactctctgac
-ttgtcctgaacttccctctttgctaaacaatcagtcattttactttaggacaaaaattta
-ccatataagactctttttcatataaaattattctcttttctttataacctttcttaccat
-aaatacatcttcatatttataactttctttacatctctctctctcccctacctactggtc
-cctttctaccttgtttcataagtaaacattttcaagttcgtaatttgaattgaccttcaa
-ttcagataacttctgaattagacaaaattatttttttctcagtaatactagatcttGGCA
-GGCTTTTGGCCTCTAACATCACCCAGAGAGAAGCCAAATTAAACAACCTAAGAAGCAAAA
-ATCATCAAGACCAGAAGGAAAATGTTAAGTGTAAACTTCAAAGCATGTGAGCGTAGGGCG
-ACATGTGTCACTACTGAGGCACAGACAGCAAATATGTAGTCATCAAAAGGGACAAGGGGA
-TCAAGAAGCAGTAGGTGCTGGAAAATATCCCTCTGAGCCTCAAACAGTTTATGCATCAGG
-GTGACACTGCAACCCTGGGCCCCTAATGGCAGAAAAACGCCACACAACAGGGTGGCAGCT
-GACCAGAAGGATCCCACAACTCCAGGCTCCCTAGCAGACACAGCCCAAAGGATCCAACAA
-CTCTGAGTGGGGGGCTCCAACCCCTGGGCCCTGAGAATATAAAGGAACATGAGTGTCCCT
-GTGTCTCCTGGGGCTCAGAAGGCTAGGCTGAAAAGTGACAACAAAGGGAAGGGCACTCAC
-CTGCCTGTGAATCCaaaactggaaaaagcaagaaatcctgagctgtttgtcagatgttag
-cattttatagataaagccattctataattttagaaacatgctttcccatatcataaactt
-ttcttaattggaaataacccagacatctgatgagtaatctaaggaaagctgtggaccaaa
-attttgggtaaagtggtctttatggaagttaaaaaaaaaaagatttaaaaaaagatttaa
-agattttttttttaaaGCCTggctgggcatgatggctcctgcctgtaatcccagcacttt
-gggaggccgaggcaggtggatctcttgagaccaggaatttgagagcagtatggggaacat
-agtgagactctgtctctataaaaaattaaaaaaattagctgggtgtggtggtgtgcacct
-gtggtcccgaatacttgggaggctgaggtaggaggatcacttgagcccaggaggttgagg
-ctgcagtgagctgtgattgtgccaccgcattccagcttgggtgacaaagcaaaaccctgt
-ctaaaaaaaaagagaaataaagaataaataaaaGAATACATGAaattaaattttaaaaaa
-gccttttccactttttttccttcagtgtcaaatgaacttctaatgtttccatttcatcta
-gaactgactgaactgcgttaagaaaaataaaatctccaagtagacttgaattagtaatac
-ataaacagtgagtcttatctcaacaccagcagcttaataacagcagatttaaagcaggca
-gaaaagaaaagggagaaatagataagagagctttagaagCAATAATCAGAGGCAAGCATG
-GAAAGTGAAAGTAGCAAACTTCTGGGCTGGCCATACAGAGCTGTCATAAGCCTGCAGTAA
-AGCAAAGGTAACAAGCTGGGAAACGATGAGAATTACAGCATTCCCATACCTGGCAAAGGG
-GACAATATGGATTAGTTCATAGCAAACATCTTGCAAAGCTACTTCCATTTTTCCAAATAT
-ACCCCAGGGGCTCTAACCCCATGGGTCTTTGGGCCTCTGATCTGAGTATTATACCCCAGG
-GCCTCCAACCCTGTGAGTTGGGCCTCTGACTCCATGGGCCAGGCCTCTAGCCTGAGTTTC
-TAGGCAAGTGTCCTTGCCTAAGCCTGACATAGTACACCaagatggacctcacttaccaga
-agcggccaattggtgctgcagactgaatttcttttgcatagggtctcgtcttatgcttcc
-ttcatggtcgctaggaagatgttgccagaaaaggggccatgattcaaaccttaaaaaagg
-gttcttaggcctcacacaagatggaagtcaaggcgagtctcaaagtgcattgagaacaga
-tagtttattgaaagctactcagttacagagaagggtgttctcagaaagcaagaggaggaa
-cacattgtctttgttttaaactcttcttatatatgagtcttattcatgtaaaagctaagc
-tatttctatgtgagtggactgacagtgtgacaaaatccatgactctgttgatttaaagaa
-agttatccttggcattttaatgtgtaagtacaccaaagcatgactataattattttaaaa
-gcacacattgttatgtgacatggaaacatctggacattttgctgtctaggagtttgtcct
-tgcaggtattattaagtggcttccttagctgtgaatatcttatgatcatgggttgtgatt
-gggaaggaatgtgccttgctaactttaagatagagttgattttaaaatggcatcaccctg
-gctctcctatgcttctgtttccctaacaAAGGAATGCCCCTTCCCTCCACACCCCAAGCC
-CCAACCAGCGGGACCTGGAGGTAGGGAAGACAGCATGGGAAGCCCAGCCTGGATTGGAAG
-CAGCAAACATTTGACCATCCCAGCCACAGGGCATGCCTACCCTCTTCTCTCCCTGGACCC
-TGGCCTCGCCTACCGTGGCCATCCTGCTCCCACACTAATCAGAAACTTTCCCCTGGAAAC
-CCGTCCTGGGCCCAGCCTTTGTTTCAGGTCCTCCTCAAGCCAAAGACTTCCTGATGCAAG
-CGCTTCCTCCCTCCAGCCAGGGTGAATTCTGCCCTGTCCTTAGTTGGCTTTTCACATTCA
-CGTTTCCTTGTGATGCTGCTACTCCGGCTATCAGAGTCGGGGGCAGCAGTGCTGAGGCCT
-CCCACCCAACCCCAAGGTGGCAGCAACATCCTTCAAGTTCCCTCCTTCCAGGAAACCATC
-TCTGGCCCCTCACTTCACAGCGTCCTCCCTCCTGTTCTGCACCTGGCATTTAACACATAC
-TGCCCCAATCACTGAGGATGTTGTCACTGTTGGTAATACAAGGAATAACAGCACTGACAA
-CAATCACAGGGTCAACTATGGGAGAGCAAGAGGTTGAGAAAAACAGACTCTGCAGTGATT
-GGATCTGGCTCAtctgagcctgagttttctcacctgtgaaatggggtcagtgtagcatct
-accagccttgtgtagctgctggcagataaaattagatcaatatatatcaccatcagcact
-cagagggctcagtccctggGGACAATTGTGGTTATTATTATTATTATTGTTGCTGCTACT
-ACAGGGAACACTTGCCAAGGCCTTCCTGTGGGCCACTAACTGTGCCCCCACTCTTCCAGA
-TTCACACCCAAAGGAACAGggtgctatgatacccattttgtggttgagaaaaactgagtt
-ccatcaaagtgaggagatgggttcaaggtaccacagttgggacctgaaaagccagCAATG
-CACTAAAGATGTGGGTGACACAAGGCTTGGACCCTAACAGAGCAGACTCTGAGCCCTGAG
-GGTGGAGATCCCAGCCTAGTTCACACTGCTGCACAACCTGGCTGCAGGAGGACAGCCAGT
-CTTGgggctctggcctcggacaacctgggctaatccttccaccttctagctgagtgaacc
-cgggaacatcacttaaccttcttgagctcagtttttgcctttggaaggtgaaataatggt
-ctctaccatgcagggggtgggggaggattagatgggtaagtggatggaaagcttgagccc
-agagcctatgcacagtgggctgctcaggaaggtagAATCATGCAAGCCCAGGCCTAGAAA
-TTCTAAAGGGCAGGCACAGGTTCCCCACAAACATGACCTTGGCAGAATCCGTTTCTGAGA
-GTTGGCAGCAAGAAGAAGTTGTATGGATGACAGAAATTCTCAAATTTGCCTATTTTCTTA
-AAGTGGACATTTAAAAAATTCCACATTGGGGCGGAGGAATGTTCTTAGCCCAGGGATTGC
-TATACATAGGTTCATGCATTTACTATGCGTTGGTTCATCTAAGCccaacctcagggtctt
-tgtatttgctgctccctctgcctggatcactgtttccccagtgggtctcttcctaacatt
-ctagtctaggcttaactatttgcccttcaagagatcttccctgggcaccctataaaaatg
-catccttcacataaactctttctccttttccctactttgtttattcatgctgcttttact
-atctggcatcatattctaaatttatttgtttatctgtttgttgactgccttcttgtctta
-gcctattcaggttggtataacaaattgtcatgaactgggtagtatataaacaacagaaat
-ttgggctgggcacagtggctcaagcctgtaatcccagcactttgagaggacaaggcttga
-ggtcacgagtttgagaccagcctggccaacatggtgaaactctatctccactagaataca
-aaaattagccaggtgtagtggtgcacacctggggtcccagctacttgggagggtgaggca
-gttgaatggcttgaacccgggaggtggaggttgcagtgagccaagatcgagccactgcac
-tccagcctgggcaactgagcgagactccatctcaaaaaaaaaaatttaaaaataaattta
-ttttcacagttctggaagctggaaagtctaaatcaggtcatgggtagattagatgcctac
-tgagggcctgctttctggctctgggagacttttagctgtgtctgcatatggtggaatggg
-taaggggctgctctggggcctctttcataagggcactaattccattcatgagggctccac
-tcccatgacgtggttccctcccaaagtccccacatcctaacactatgacatgggaattaa
-gtttcaacatataaatgttgggaagacgcaaacattcagaacatagcactttcccattag
-attgtgaggataaggactatatctaagccattcacttctatatccctgttgcccactata
-tacctagcatacagtaggtgcttaataaatgtttgaaaaatgggtgaatGAAATATTGTA
-CTTTCTAATTcaagcattttctgagcacctactgtgcaccagggcctgtgctatgggctg
-tatatacagaaatacatcagtgagagtcctcagccctAAGGCCATTGGTCTGAAGAAAAA
-AGAGAAATTGCAACAAGTGCCATAGCAAACACAGCTGGGAAATTCACtgatgtagtttgg
-aggtgtgtctctgctcaaatcatatattgaaatgtaatctgcagtgttggaggtagggcc
-tggtgggaggtgattggataatggaggaggatttctTTTTTTATATCTATcaggaatgca
-aaattaatttaataatcgaaaattactataattcacagactaagacaagaaaagccatac
-gattctctcaccagttgcagaaaaagcatatgatagaattaaacatctttttatgatttt
-ttaaaattatactttaaattctgggatacatgtgcagaatgtgtaggtttgttacatagg
-tatacatgtgccatgttggtttgctgcacccatcaacttgtcatttacattaggtatttc
-tcctaatgctatccctcccccagccccccaccccctgacaggccccagtgtgtaatgttc
-ccctccctgtgtccatgtgttctcattgttcaactcccacttatgagtgagaacatgtgg
-tgtttggttttctgtccttgtgatagtttgctgagaatggtggtttccagcttcatccat
-gtccctgcaaaggacttgaactcatccctttttatggctgcatagtattccatggtgtat
-atgtgccacattttctttatccagtctattattgatggacatttgggttggttccaagtc
-tttgctattgtgaatagtgccacactaagcatatgtgtgcatgtgtctttatagtagcat
-gatttataatcctttgggtatatactcagtaatgggattgctgggtcaaatggtatttct
-agttctagatccttgaggatttgccacggtgtcttccacaatggttgaactaatttacac
-ccccaccaacagtgtaaaagcgttcctatttctcatggaggaggatttctaatgaatggt
-ttcacaccatctccttggtactgtccccatgatagggagggagttcttgtaaaagctggt
-catttaaaagtgtgaggcccccaccgcctctttctcttgctcctgcttcaccaggtgatg
-tgcctgttccccctctgccttccaccaggattggaaacttcctgagacctccccagaagc
-tgatgccaccatgtttgctgtgcagcctacagaaccgtgagccaattaaacctcttttct
-ttataaatgacccagtctcaggtatttctttctggcaatgcaagaacagcctaacacaTT
-CACCTCCAGCTACTGCAAGCATTCATGGGGATGAGTGAAAGGAAGGAGAGAGGTGGCTGC
-TGTGTCGAGGGTTTGCTCTACGACAGGATGGTGCACTTGCCACCTCTGGCTCGATCCACA
-CACTAGcccattttacagattaggcattgggaactcagagaggtgaagtgacttgaccaa
-aagcaaactcatggcagaatgaagactgggaccagggaggcctaattccaaacattgtgt
-gttacctcctctaccacaaggcctctctTGCCCAAGAGAAAGAATAAAGTCCAGCTAAAG
-TGAGCTCAAGCAAAGAAGATATAGATATGTAATTATTATCATTGTTATTACTATTTTTTT
-ctcatgtaacagatacatcaaaaagtagaagccttcaggcatggctggatctagggtctc
-aaacactatcactagaactgctccattcttagAGAGGCTCTCAAGTCAAAGTGACAAGAC
-GGCTGCCTGCCATGCCAGCCTCCCCTCCCCTACTCCCAAAAGACCAAGTCCAGAGGGAAA
-AAGAATGCCTCATAGCAGGCCGTTGAGGTTGGCTAATCTGGCACCCATTCCCATCAGCCT
-CTTCCTGCTACAAAGGCTGTGCAGCCAAACGTccacctttctgaccctcctgcagctggg
-tggccacaggacacagttctggtcaatgagacataagctgaagtttgtggtgagggagag
-cttttgctcctctgataacaggagcagttgtggccagagctgccccttcccatgttgcct
-tgatcacagacatgatatttgaagcacagaccatcttgcaaccaggaggaaaggctgaga
-aaaaaaaagtcctcactattttttagccatgacattgttaagttgctggactcctaactt
-cagacttcttcctaagagaaaaataaacttccaatgttcaagccactgcattaaattcct
-tgttacttgtagctgaaagcattcctgactaatacaACTCTCTGTCTCAGGTCCCTATAA
-AAACCCTGGGAAGGCATCATATTGGTTCTAATGGGGTCATGCTGTCATTCTGCAATGGAC
-TGTGGTGGCCAGCAGAGATGGGATGTGCCAATTGACCACTCCAGTGGCCACCCTTACCAC
-ATAGGCTTCGAGTGGGTAGGGTTGTTCTCCAGCACAAAAGTTAGTAGAGTAGGGAAGTGG
-TGGCTACACTCCCTATACCTCTGAATCAGTGGAGGCAATAAATTCCCTGTTCTTGGCTTA
-AAGTTTCTTCCATCGTTTCCAGGAACATGAAGATATTGACTTATTTATCCTCCAGGATTT
-TTATTTGGAATGTGAGGGGAGGATAATTCAGTGAACAGTCCAAATAGGGGATCTTCCTGG
-GAAAAAAGGACAAGTCATAAAAACTGCATTGAATGCCAGTGTGCACAATGTCCTTTCTGT
-GCCCCAAGACAGTCTCCCTgcatgagttcttgagccagacagacctgagttcaaacccgt
-ctccatcatgcaagtgcgtgggcagcctcgccatgtcacctcacctctctgcacctgcgt
-ctcTAGAACCGGGGGTGGAAGGACCCACTTCAAGGACCCAGTCTTCAAGAAAGAGTGGAC
-CAAGTGCCTCCCCCATGGTGGCCCTTTGACCAGCAGCAACACCCAGAGTGCTTTCTCTGT
-GAACCCTTCCCTGATAATCCCAGAGTCCCAGGGAGAAAATCTGCTCCCATCTGAAGCAGG
-AACCATCCAGCAGTGAGTGaacccactgccatttcctcctgccatgtggctaggccatat
-tccacagcctcccttgcagtcaggagtggccacgtgccttagttccaatccactgcactc
-cttcccctttgatgggtttgatgcacacaggtctgaagacctcagcagccacagtggaag
-atggcagagctgcaggacaccaggagcttgggtcctgaaatctttgtgcgctagagctgc
-tcacttaccaggggcacccatgttgggcttttggtgagtaaggaaaaaacctctttggta
-tttggtgcatggtgcctcttgggcttACGAACGTTACCCACATGCACCGCTTGGGGGGCA
-CCTGTAAAAGTCTGCAGGACGGTCAGCCCGGGAGGACATTCCATGTGGGCACCAGCAAAG
-GCAGAGGGTGGGAGGTGAGGAGGCCTGAAGAGCCAACGGCAGCCACACTGTGGTGTTGGA
-ACCAGATTGTCCTTCAGTCCTCCCGCCTTGACTGCCAGAGAGCAGCCCATGATCACCATC
-ACATCAAGCCTGCAGGCAGGGTAAGAGATTAATAACAATACTAACAACAGTaataatagg
-aggctctgccaatattcaagagaacttaccactcaccagctgcgggctggtttcttccta
-ggcctgatctcatttaatcctcaccatggcccagcaatgaaggccctactgatgtcagtc
-ccattttacagacaagaatacagaggcccatgaggcgtcggaggacattctccaaagGGC
-ATGTTCTTGAGCTCAGCTTCCTTCCAGCACAGCCTTTCATCAGGGCTTGGACCTTCATcc
-cattatatgtccagcattattcataggctgaggacacagaagtgaacaaagtagatagaa
-atctggacctcgaggggctgcgactctagtgggagaaaatgggcaataaacacacaaaca
-cgtaaatatacaaaaggagtttggtgaaggatgagtgacatgaagacagcaggtcaggat
-gctgcggtgggtgaagggaggaggtggtgctgtgcatcttgaggttggaggaaacctctc
-tgacatggagctgaaagtgctgcagcaaacgagtgagccacgtgaagatctggggcaggc
-tgttcctggcagagggaacagcaagtgcaaagtgcaagtgctacggccctgaggctggaa
-ggagcttgtcatgttcaggaacagaaaggagagagcagtgtggctggagtggagtgatgg
-ggggtggggagggatgaggctgcagagggagtgggttgggacaagTGGCAAGTTTTGGTG
-GGCAATGGTGGCAGGGGTAGATGATCCTCCAAAAAGACTCATCTGGATGCCAGCTCTGGG
-GGGTGCAAGGAGGGTATTCCAATGAGGAGAGGAGACAGGGGTTTCAGCCCAAATTTGCCT
-CCCCACTCTCCACTTGACTTAAGCTGCTCCCctctcccttcctttctctcattccctctc
-tctttttctctctctcCAAGTGGAAGCTGGATCCCTAGGGAGGATGAGGCCCGGGCTTGA
-GTCCAGGCACCAACAAGAGCGCGTTCCCACCCTCCCGAAGGTCTGATGTGGAGCAGAGGA
-AAAGAATGGTCCTGATATCACcggaaaaagggtcttatcccatatcgcaagagtgggttc
-ttggatctcacatgggaaagaattcagggtgagttgcagagcatagtgaagttaagatag
-gattagagactaatcaatgacagagtagggcatcctcagaaagcaagaggagaacgtacc
-catttcaagtaccagtgcttgcttatataggcagttaagagtagtgtactctgggctcac
-ccctgtaatcccagcatgttgagcggccaaggcgggcggatcacttgaggctaggagttt
-gggaccagcctgaccaacataatgaaaccctgtctctactaaaaatacaaaaaactagct
-gggcatggtggcctgagcctgtggtcttagctacccaggaggctgaggcaggaggatcgc
-tggagccccgaaggtccaggttgcagtgagatggtgccactgcactccagcctgggtgac
-agagtgagactctgtctcaaaaaaaaaaaaaaaaaaaagaagagtagtgtattctgttac
-aaaggcttatgatcagcttgtgacaggctactagtattgctactttcctatgttactatt
-gattttagcaagaatttatgagtgtactattatctttaaagcaaaacctaTTATTTTATT
-TTTATTTATTTATTTATTTATTTtttgagatggagtcttgctccatcacccaggctggag
-tgcagtggcgcgctctcggctcgctgcaagctccacctcccgggttcacgccattctcct
-gcctcagcctcccgagaagctgggactacaggcacctaccaccacacctggctagttttt
-tttgtatttttagtagagacggggtttcaccgtgttagccaggatgttctcgatctcccg
-acctcaccatctgcctgcctcggcctcccaaagtgctggaattacaggtgtgagccaccg
-cgtccggccgaaacctgttcttaaactaagaatttttttttgttcttaagatattgggac
-attttcataagttctgcgtctttaagtaacatcattaactcgttccctcaaccatgaaca
-tcttgtaaccaagcacgtccacgcccctggaaatgtaacccagcaggtttggcttttctg
-cctttattcaatatggagtcagtctggttaggatgcctttgTCCctgagagtcagtgccc
-tcacagcccctgcccggcctctaacttgctgtgtgacctggagctgatcattcgctctgg
-gcttcccttttctcctctgtttgaggagggagctggtctggtgccaccattttccagctg
-tctgtccttaggcaaattattcagcatccctgtacctcagtttcctcatccatgaaatga
-ggatggcccagttccaggcttacggtgaggattaaatgCACAGTGCCTGGTCTCAGTGGC
-TGCTGGGAATTACCATCATTACTGTTGTTTTGCCATTCTATTGCTATTGCCAGTGTTGCT
-ATTAGTATTCAAAATGCAGATTGGTggctgggtgcagtggctcatgcctgtaatctcagc
-actttgggaggcagaggttagaggatcgcccaggggttcaagaccagcctgggcaacacg
-gtgaaacctgatctctacaaaaaaaaaaatacaaaaattagccaggcatggtggcacgta
-cctgtagaccttacctgaactcaggggggttgaggctgtagtgagctgtgatcgtgccac
-tgcactacagcctgggggacagagtgagacgctgtttaaagaggtttattctgagccaaa
-tgtaagtgatcaagacccgtgacacagccctaagagatcctgagaaaatgtgcccaaggt
-ggttgggttatagcttggttttatacattttatgggtacagaagttacaggcagacatta
-atcaatccatgtagggtgtacattggttttgtcgggaaaggcaggaagcttgaaaagtgg
-gcggcttccaggttataggtgaattcaaagattttctgatcagcaattggttgaaagagt
-taagttattatctaaagacctggaatcaataaaaaggaatgtctgggttaagataagggg
-ttttggagaccaaagttcttattatgcaaatgaagtctgcaggtagcagccttcagagag
-aatagagggtaaaggtcccagactctttgttaaatctctcctgcatcaggaaaagacctg
-gaaagggaaaaggattctctacaggatgtagattttctctacaagagacagagttgtagg
-gccatttcaaaaatatgtcaaagaaatatattttggggtaaaatacttcaatttctttca
-ggtcctgctatctgttgtgtgatgctatatgaggaatttggtatcttattgctacaaaga
-gcatgctttgtcagtcttaagctctctctctctttttttttttttttttttttgagacag
-tgtctctctctgttgcccaggctggagtgcagtggcactaccttggctcactgcagcctc
-cgcctcccaggttccagtgatactcctgcctcagcctcctgagtagctgggattacaggc
-gtgtgccacctcgcctggctaatttgtgtatttttagtagagatggggtttcaccatgtt
-ggccaggctggtcttgaactccgaccttaggtgatctgccgccgtcttggccttccaggc
-gtgagccaccacgacctgccaagctctctgttttcatgataatgctggtcaactgtgcct
-gaattccaaagggaggagggtatgaggcatgcctgatccccactttccatcatggcctga
-actagattttcagggtttgttgggtcccgttggccgagagggaggtccattcagtcagtt
-agggggcttgtaattttatttttggtttacaGTTCTGAGGCCCCTTCTGGCTTTCAGACT
-GGCCTGGTTGCTTCCCATCTGGTCACCTCTCTGTCAGTGTTGGGGATCAGCATTCATCTA
-CCCCACGGATGTTCTGCCTGGAGTGGGGGTGGGAAATGGGACTGGACCTCTCGCCATGGG
-ATGCAGCCAGGCCCTCTCTGCTCAAGCCTTCCAGTGCTCCTCACCCAGACACCCTTCTGC
-AGGGACCCCAGTTTTACTCCCCTGAAAAAGAAAGTTTCCATCAGTAGGAGAAGACAGGAC
-CTGAAATTGTCCCTGAGCCTACATGTCTACTAGGGTAGATATTTTGAAAGCCGGAGAGAG
-GAGGAAGCAGACAGGAAGGAGACGAAACCCCAGGACTGTCTGCTAACTCCAGGAGGACTG
-GTCTTCAGAACCCAGGGGCCCTCCGCATTCCTTCTGCCTCCCTATCTCATCGTAGCTCCT
-GCCCCATCCCCCCACCACTTCTCTCCCCTTTCCTAACTGCGTGCCCTTCTCTCCTCCAGT
-CCAGCCCAGCCCTACTGAAGAACAGCAACTTGAGCTGGTCTTTCTGTGCTCCGCTTGATT
-AAAATGTAGAAGGCACCTCTATCCAGAAGACTTGGCTTGGCCCTAATCACTCCCAGCCCC
-CTTGGCTGAGTGGCCACCCGCTGCTGGCTGCTGTCATCCCACATTGGAAGTGACGGAGGA
-GCAGAAGAACGAGTGGGTCACCAGCCGGTCTTCAGGCTCCCGGGCCAGCATTCAGACTGG
-GCAGGAGGTTTGTGGGTGGAAGGTGAGTTGGGCAGCCCGTCAGCCACTCCTCAGGGCTGG
-ACGGAAatagtgattaggagcatggggtttgatgtcagatggcctggggttgcagcctaa
-ctttgttatttactatctgtgagttaagccctctgggtttcagtttctccatttgtaaaa
-tgggactgatattggaagatgtcctacttagaatggcgcctgagccatcgtaagccctca
-gtgaatCCACTGTAAGACTTCAGCCCCCAGACTCCCACTGTTCCCTTGCCCCAGCTTCCC
-TGCACCTCTCCTGCCACTTCCCTCAAAGTTGCTCTCAGTCAGGCCTTGGGAGCCACAATC
-TGGGAACGAGGACCCTGACATCCCTCTTCACAGCTGTACCCAGCACCAAACAAGTCATCA
-GAGGTTCAAAACACGGAGCCCCTACCATGTGCCAGGCACGGCATGGCATGCCTGCTCTCT
-TTCTAATTTTGATACCGCAATGATTAATTCTGTGAAAAAAGTTCTAGAAGGATATAAGGC
-AAAGAATTAGGTTGTGTTCCGTCCATTCACTCACGGCTCTGCTCCCACGCATGGCTGCGc
-tatgcacactgccctgcagcttcctttgtctgctgcacaatgggctctggacggagccct
-gttggcgcaatgagtgagccctacatcaagcttcgtcatcgctgcatcgctttgcaccgt
-gtggctgggccgccatcagtacagccaactgcctctgatggacatctgggctgcagccag
-attcctcctaacagggcttcagggaaagtcctcctcagcgcctctttgtgcgcatggcac
-atttctctaaggcaggtttctggacatgagactgacgggcagcatgtgctccttacattt
-gggggtcctgtcaatcccctcctctcccgcaggctgttctagactccagcccccatgtga
-gaggatgcctgttgcccTCACTCTTCCATCCTGGCAGTCCCCAGCCTCCTTGCCTCTCTT
-GTTTTCTTGTTCCGATCAGTTCCAGGTGGCCAGAGGGTCGAGACTCATCTCACAGCCGTG
-CAATAGATGCGTGTCTCTCAGTCGGTCAGCTCTGGCTGGGATCAGTGTTTATCTTCATGT
-CGGTGGACACCATCACAGGCACCCGCAAGAATCAGCGATCGACGGGGAAGAGGTTTGGGT
-GCATGGAGGagtgctttgcagtgagggctttggagccttgtgccctgattcaaatcctgg
-ctgtgtcccctgccggttgtgtgacttcggataaattacttgatgtctctgagcataagc
-tgggtcatcagaaaagccaagctagtaagagcacgtagctcagaaggctgctgtaaagtt
-cagatgagttgatatatgctcagtgctggaaagggtgctgggcacattagctgttggtat
-tattTGGGCACCTCCAGCCCAAATAATAATAAAGAGACTAGGAGGGATGTTGGGAGATAT
-CAGATGTTGCTCATTGGAGGCTGTACTGAGTGTGCAGAGAGCTTCAGGGAACCTGGAGCT
-TTGAGAGGTAAAGGAACGTGCCAACTGGAACTAGAAACCCACTGCCGCCTGCAGCTCTCT
-GGGCTGTTTCTCCACATGCACCGTGGGGTTGTTCGGGTCCCACTGGGGAGGGTGGCTGGT
-ATGAGGGTGGCCTGGCCTGGATGTGAAGTGGGATTTCCAAGGCTGGCACTCAGTCCAGAG
-CACGAGCCTTGATGAGGAACAGATGCACTCACAGTCTGGGGTCGCCGCCCTCCCCTCCTC
-CACAGCCCAGGGTTGGGGTGGCGATAGCTTCCAGATGGGCTTGGCTCTTAGTGGGGCCTT
-AAATGACTCCCTCTGAGTCCCTGAGAGGTGGGACTTAGGGCCTCTTCCTTGGTTCTCAAC
-CCCCCTGGCCCTGGGGGATACCTGAGGTAGCTGGGTTCAGGCCAGgtgaccttgggaatg
-ccagccctgctccgagcctcagtttccccatctgagaaacaggcattCTCCATCAAGCTG
-GCTTGGCAGAGCCACTGTGTCCTGTGATAGCTAAAGAGAAACATGAAGGAGGACCAGGAA
-CCCCCAGGAAAGTAGGGTTTCTTTGGTTTTATTTTCTTTTTGTATTTACTTTCTGAATGT
-ATAGTACATATCCATAGCATAAAATTTCAAAGGTACAAAAGGGGTCATAGGTAACAGTAA
-GCCTGTCTCCCACCCCTGCCCTCCAGACACCCAGACCCCTCTTCCCCGAGGCAAAAACCC
-TGTCACCAATTTCTTGAGAATCTGCCCAGAGATACGGTATGCACACATAGGAAtttttta
-cccagtgatgacaaacttcacacacagtatttcacactgtccttttgttactttaacaat
-accctttagagatcttcctatgtcactccataaagtgcttcttttttttttttGGATGCT
-TGGCGAAGATGGTTTCAGAATATTACACAACTTTCAACTGACCAATCAGGATGGGCCCGA
-GCAGTGCACAACCCTACAGTAGTATATGGCTGCTAGCTGGATGCCAGCTCTGTGTCTTTA
-TGGTTCACCATTGCATAGATGGGCCAATTGCAGGGAtgggtaatttataaaggaaagagt
-tttaattgactcacagttccttgtaactggggaggcctcaggaaacctacaatcatggca
-gaaggggaagcaggcacatcttacatggcagcaggcgagagagtgtgtgaagaagcaaag
-ggggaagagccccttaaccagtcttcaagagatgagcaggggctgtttccaacattttgc
-tctttaaaggaaggttgcaatacatacccattttgtacatttgtaggagaatatatgtag
-aataactttctagaagtgaaattgcATTTTacatccatatgtttaaaaaaatatcaattt
-ccaccccctgccatatacaagaattaacttgaaatctaccataaatctaaacgtaaaact
-taaaactgtaaaacttccagacagcaacatggaagggaaatctttgtgaccttgagttag
-gcaaagatttttttaggtactacacaaaaagcataaaccgtaaaagaaaaaaagataaat
-ttgacttaatcaaaattcaaaacttctgctcttcaaatgatgctatcaagaaaatgaaaa
-gacaagccacagattaggtgaagatatttgcaaaagtcatatctgataaaagactcatat
-ccagaatatatattgagtgctttcacaactcaataataagaacaaataatccaataacaa
-atgagaaaaaggtttaaaaagacatttcacccaaaaacagatattgatggcaaaaacaca
-catgaaaagatactcaatgttatcagtcatcagggaaacatatattaaaaccacaacggg
-ctaccactacatacctgttagaagactaacatgaaaaataactgataatacctggagagg
-gtatctaacaactggaacttagaaaaacagtttggtaatttcttataaaatgacccagct
-gtcctactcttaggtacaaagagtaatgcaagagaagtttgtgttttaaaaagaaaaact
-gtaggcaaatatttacagcagcttttctcataatcaccaaaaactggaaataacTGCtgt
-atgagtctagtctcacacagctataaagagactactcgagatgggctaatttataaagta
-aagaggtttaattgactcatagttctgcatggctgggggggcatcaagaagcttacaatc
-atggcagaagggggaagcaggggaagcaggcacgtcttacatggcagcaggtgagagagc
-gtgtgaaggaggtgaaggggaaagagtcccttttaaaaccatcagatcttgtgagaactc
-actcactatcttgagaatagcatggaggaaactgcctccatgatccaatcacctcccgcc
-aggttccacccttgacatgtgggaattatggggattacaatttgagatgagatttgggtg
-aggcaggaggatcacttgaacccaggaggcagaggttgcagtgagctgagatcgtgccac
-tactctgcagcctgcagacagagtgagactgtctcaaaagaaaaaaaaaagaGGTaaaca
-ggtaaagaaaataattttagatcatgataagagttaggaagaaaacattttcaaggcact
-aaatagagaatgatttggagggggtacgatatttaaagaaggttatcagggaaagcctct
-ctgaagaggtaacatttgaactgagatgtagagggagagaaggaactagccatgtggaga
-tctgggggaggagcattccaggcagaggggatagcaagtgcatctgaagaggtaacattt
-gaactgagatgtagagggagagaaggaactagccatgtggagatctgggggaggagcatt
-ccaggcagaggggatagcaagtgcaagggccctgaggccagaatgagtttggtgttttta
-atgaaagaaaaaggccagtgggtggggcaaggaggagagggcaggaggtaaggtcagaga
-aggaatggggaaAGTCTAGCTTGCACCAGCCCTGACATGGGACGAGACACCCTCTATGCC
-CTCGGTCCTGGCGGCTCCTGCTTCCTCCTTTGTGTCCACTCAACATGATGGGTGGGCTTG
-GCCATCCGCAGACCCCTCTTGATGCCCCAGTACCTTCCCTGCCCCGCCCGACAGTGAGGT
-CCAGCCTCCTGAACAGCTCCTCTTGCTTGTCATTGGATTAATGGGCAGGAATTGCTTCTG
-CTTTTTCAAAGCCATTGCCCCCTACCACAGTCCCCTAAGATCATGAAGGTGCgagcaatc
-atacttgaactgttggatgatgaatgcatcactgttgatgtggaggaggctccccagtgt
-gaggactcagagcagggtctcggcctctcacagacctggctgtgtgcttggctccacctc
-ctacgacctagggccctgagcctcagttgcctcacctgtaaaatgcggcaaacaagcaag
-caacaagatgctcaacctcagtagtagtcggagaaacaagagctaaatagcagtgaggca
-caccctttacctccattccctggattagcaaatagtagagtcaggaacttccaagtattc
-atgagggtgtgggcgatgggaattccatgttctgctgctgggtgtttggactggtttagt
-acctaagagcctaagaaagagtatatctgatgacccaggcattttcctcttgagtgtata
-ccccagagaaattctcctgcagctccagaagGAGCCCATTCGAGGTCATGGGTCACTGTG
-ATGGTGTTTGAGGATGTGAGCAGTAGGTGAGAATCCATGTAGATGCCAGGAAAAGCAAAC
-TGCAGGGGCCTCTAAAAAATACCAGATAAGGGATgagtgcggtggctcatgcctgaatcc
-cagcactttgggaggctgaggcaggtgcatcatttgaggtcaggaattcaagaccaacct
-ggccaacacgatgagacccaatttctactaaaaatacaaaaattagccaggtgtggtggt
-gcgcacctattatcccagctactgaggaggctgaggcaggagaattgcttgaatctggga
-gactgaggctgctgtgagccaagatcacaccactgcactccagcctgggcgacagagtga
-gactccatctcaaaaaaataataaaaataaataaataaataaatacaagaataaaatgaa
-taaaaaaccagatgaaaaagaaaaccaaaaagtaaaaataaaaaACACCAGGTGCATGAG
-AGAAAAAAAAAATAGAAGACGGGGAAATCTGTAGCACACGACCATTTCTGTGAttttttt
-tttttttttttttttttttttttttttttgcgacagagtctcactttttcgcccaggctg
-cagtgcagtggcgcaatctcggctcactgcaacctccgcctcctgggttcaagcgattct
-cctgcctcagcctccggagtagttgagattacaggcatgcaccaccacgcccagctaatg
-tttgtatttttagtaaaaacggggtttcgccatgttggccaggctgaactcgaactcccg
-acctccggtgatccacccgcctcagcctttcaaagtgctgggatgacaagcgtgagccac
-caggcccggccCATTTCTATGAATGAAAAAAACTCACAAGCTACAGAACATCCCTACACG
-CGTTAAAAGGATTCACACACATTCAAGCCCAGAGAACAGACTCACAGGAGCAGATGCCTG
-GGGGGAGGGGGAGGGGAAAGGGCAGAAGAGCATCAAGAGCGAAATCCAATTCAATCCAAC
-TGTGCAACAGACAGTTTGCAGAATTGATGAGGATGTTTAACCCAGGTCTTGGCACCCTAA
-GTCCAAGTAAAAAAATAAATACGATACAGCAGGTAAAATGGGGGATGATGGAAGGGtggc
-gatagtagtgcctttctcatggggaaccctcgaggctccgatgagcgaaaccatgcagag
-tgctcagccaggtgcctggcacgcagcaagGTGTCCGGTGCACAGCAGGGCCGCCCAGCT
-GTGAGCGGTGCGTGTATTCTCTCCAGCCTTGAATTCAGGCCTGGCTCCTTCTGCTTCCTG
-GTCAGTGCCGCTCTCTTGTGGCCCATACAGTGACAGGACTTAGACTGAATAGAGATCTGC
-CATGGTCCAAGGTATCTGATGGCGCTTCGGAGGAGGGAAGGGAGGGAGTCACATGGGGGA
-GATAGGATCACCAGAGGCAGATGGGATCACAGGAGGGAGATGGGGTCACAGGAGGAAGAG
-TGACTTCCGATTGGGGAAGAGATGGCGGATCAGATAAGGCCTCCTGGAGAAGGAATGTCT
-AGGCTGAAGGACAGATTCGACTGGGGGTCAAGGGGATTGATGAGCAAATGAAAGAATGaa
-tggagttagaatattgagcatgagcattacttagccctactgtgtgccaaggctttacat
-gcctcatatcatttcgtcctctaccacccctgggaaggcgacttattgcttctgtctcct
-ttgcagctgcaaaaagggaggctcagtgggttagcgactcatccaaagtcaagccgccag
-ctgcacatagagctctgatacacacccaggtcgtgtgactTGCTGGGGGACTCTATCTTC
-TCCACTTTGGGGTGGACTGAGGGACCCCAGTGAGCATAGGTACAGACCACCCCTGAGTCT
-GTCTGGACCATGTGTTAGCAGAAGTTTAATACTACACCTGTGCAGCAGGTGGAGATGGGT
-GGGACCTGTGTGGACGAGAGGAAGTGGATCTTGGGACAGCTACAGCATGCAGCGGCTCAC
-CCCAGGGCTGGACCCTCACTCTTTGGCAGGCAGCTGGGGCACCACACCCAGGGGTTAAAT
-GTGGAGACTCACTTCTTAAGCTAAAGGATGTGTCTGTCTTCAAGGCACTCTCCGAAAAAT
-GCCTCATTTTGGAATTTATGTCAAAGCCATTTAAATCCTTATTAAGAGTATTTAAAGATC
-AGTTTTCAAAATGTCTCCTAAGTATTTCATTTTTGTTTTTCTCGACTTGGTAGTATATTC
-CCATGGCTAAAAATTCAAAAGGGACCAAAGATAAAGGTAAGcctcctctctttccatcca
-ctctaacctctccccacccagagccatcactgttactggtttctagagtgttttgtcacc
-tgtaggttttgtgcattcatgaatcgtacacacgtgtattttccctccttcccgtccccc
-cgcgtgggggcttactatgcgcgctgttctgcaacttgcttttttcacttggcaattcgt
-ctcagggactgccccgtcattgtgtcaaatccttcctcgtggtgcttctcggccatgcgg
-tgttgcactgagtgctgtgacattgtatcgcaatgcctgtcctctagatatttaggatgt
-ttccagcattttgtgatcatacacaggactgcagggaacagctgtgtaagcaggtacact
-tgttctgcagcatgtgggccaggctaattgttatttatttatttatttatttttgagaca
-gaatctcactctttcgcctaggcgggagtgcagtggcgctatctcagctcactgcaagct
-ctgcctcccaggttcacgccattctcctgcgtcagccttctgagtagctgggactacagg
-tgcccgccaccgtgcccggctaatttttttgtattttttaataaagacggggtttcacca
-tgttagccaggatggtctcgatctcctgacctcgtgatccgcctgcctcggcctcccaaa
-gtgctgggattacaggcgtgagccactgcgcctggccctgggccaggctaattggaggat
-gaatccctagaggtggattgctgggtcaggggacatgtgcgctgtgatttgaatagatgt
-caactcaccttctgtagaggctgggtcaagtcaccctctcctgaggaaggtaggggaggg
-tggcggcttacccccacccagcccaggccctgtggtttcattttctttttttttcttttt
-tatggctcttagccaatcagataggtggaaaatggtagctctgtgtggctttattgtcat
-ctaatttgagtaagggtgTTTGGAGTTCCTTTTCTGGATGAGGCATTTTTGCCACACGGG
-GACAGCGCTGAGCCGACGACACGGCAGTGCCGCTCTGGACACGCTGATTCTCCCTGAGGC
-TCATCTTCTCAGGCTGAGTGGGACTGTGCCTGTGGATGCCCGCTCATGGAGTAGTCGCCT
-GGTGGAGGGCAAGGGTTTTGAGTTCCCATTCCACtacttactttctgagcctcggattcc
-ccctctgtaaaaagtggaaagaataatagaacccacttcagatggctctgaggaggatga
-atttaagtttttaatgtgaaatgcttggcacagttcctggctcagagttagtgcttagga
-aatgtttgttGAATGAAGAAATGAAAGAGATataatcatcttaaaaattgtattgagtac
-ttattatgaagcctttctcatgtattcacgtattttaacttcacagtgacaccaagaggg
-gtacttttattatccccctttaaagacaagaaaactgggccgggtgcggtggctcacgcc
-tgtaatcccagcactttgggaggccaaggcaggcgatcacgaggtcagattgagaccagt
-ctggctaacacggtgaaaccccgtctctaccaaaaaatagaaaaaattagccgggcgtgg
-tggtgggcacctgtagtcccagctactcgggaggctgaggcaggagaatggcatgaaccc
-gggaggcggagcttgcagtgagccgagatcgcgccactgcactccagcctgggcgacaga
-gcgagattccgtctcaaaaaaaaaaaaaaaaaaaaaaagaagatgagaaaactgaggcac
-agggagagatacaggatcttgcctaaaggctcatagctggcgtcactggcggcgacggga
-ttcgtgatcttctgtctgctcttacccacctcacttccctgcctcccactCTAGGAGAGA
-GGTGCCACCATAAACCCCAttccagctgtccattgcatgaaacaacctcctcaacctcag
-aggcataaacaaacaaccattttatcatgttcctgggttctgtggatcaggagttcaggc
-aggataaggtggacagcttctctctgctgggccttcgatgggaggactctgtggctggga
-gggttctgcagtggggggtaaggaggggcagcgggtaaaacagcaaggactagaagaccc
-acttgcgagaaggcttcttcagctacaagtctggCTGGAGGATCCATTCCACCTTGTGGA
-TGGTAGGTTGGCTATGGCTATGGGTGAGGGTGGGAGTCATGGGGGGCTGAGTGGGAGCCA
-TCAGACCCCAGGGCTGAGTCCACATGTTCCAGGATCTGACAGCTTAGGAGGCTTAGCAAT
-TCCAGGGCTGGCGCCCCCATGAATAGCTTctccaggattttgcaagtgctgtttcctccc
-cctccccacccatctcattaacacctcgcactctttaattctcagcttggctatctggtc
-ctggaggaggagctccctaacccctgtatgccttagacaggatatgctagatcctgtcct
-catggaaggtcttatcacattgttggaattgactgtctgcagactgaacgcttggaggac
-aaggcagggtctttatcaccagcacccaggacagtaccaggcacacagtaggcactttat
-gcatattcacggaatgaatgaatGGGTGAGACTGATGGATTTTGAATGACTTGAACTTGA
-GCCTCAGTTTTTCCTCCTAGAAGTTAGCTGGCAACGTAGCTGTGAAGGTGGCAGGAGATA
-GGTGGGAAATGCGAGGTTAGTAAGAGGAATTGGTAGAAAAATGGTAGTTATGATTTATGC
-TGAAGAGAGAAAAGCAAAGGaaattagatattgcacctgaaatgcttagctatgtttggt
-gcagaataggtgctccataaatATAAGATGACGTCATCATCCTCATCCTCATCATTACTA
-TTATTTGTATTATAAGAATGCACATTTCCTGAGTTAGAAGGTCCACATACGATGGCTTGA
-AATTTTCCTCTGggctgggtgcggtcgctcacacctgtcatcccagtactttgggagact
-gaggcaggaggatcgcttgagcccaggagttcaagaccagtctgggcaacatagcaagac
-tctttctctacagataattttaaacatagctgggtattgtggtgtgcatctgtagtccca
-gttacttgggaggctgaggtgggaggatcaactgatccctgcaggtcgaggctgcagtga
-gccgggatcatgtcaccgacctccagtctgggcgatagagctattacccatcttaaaaaa
-caaacaaacaaagacagaaaaaaGAAATTTTCTTCCAAGCGAAAATGGAGAGGTGTAATC
-CCCATAGGTCACCTGGGCCAGATGTCTGGGCAGGAGGTCATGCTCTGAGTCAGATTTCCC
-TTCTGTGCAAGGAAGGACCTGGGACAGGGACCTCTGAGTCTGACACTCTCTGCACAGCTG
-AGAAGGCCATTCAGCTGAAGTCCCCATTGCAACTGTTGTCCTTCAGCCTGAGGCAGTCAG
-TCCTTCGGTCTGAGGCAGCCTGTCCCTTGCCCTCGGCTACCCTCCACCCTGCTCCAGTCC
-TGCTAGGAGAGAACCGCAACACGACCCCGTTTCAGAAATGCGCTCCTTGACAAGCCTGGC
-TGCGACCTGTTCCTGGTTGACTGCCGTCATCCGGTGGCAGCATGTGGGAATGACATGCAG
-GGCTGTGGTGAGGATGAGGATGGAGTGAGCGGGTGGGGGGAACTGCAGAGAGGGCCCTAG
-TGTGGCCCAGTTGGAAGCGGTGACAGGAAGAACCCACCAGGGATTCCTCAGCTCTGGCCA
-AGGGGTTGTTCTCTCCCTCTGGCATAGCATCCAGAAGGCCAATAGCAGCGGAACCTCCCC
-CTGGGCTCTGCCCAGACTGCCTCTCTTTGGCTGTGTGACCTCACCCTGTTTCTGAGCTTC
-TCTGTGAACTTCTCCAAGCTTGGCTTGTAAGAAGGGAGTGGGCGATGCCCACCTGACAGC
-AGAGTCTCCTTCCCAGAGAGGCCCCTCAATCCTCCAGAGAATGTGGGAGAGGCTGGGATT
-TGAAAGGATTGGAGCTGGGGGCAGGGAACGTCTGAGATGGAAAGGTTATAGGAGGGGCTT
-AGGCCCTGAAGAAATTTCATCCTGTAATTTGAAAATATTAAAAAACCACCACAGCCCCCA
-GCTGAGGACAGAGGACCAGGCCCCCCAAGAAGAAAGAACATGGCCAGGGAATTGCAGTAC
-TGGAAACTTCTACCCTTATGTTGGTCTTTTAGAATTGTGAAAATTAGAACGTTCAGCATC
-CTAAAACTGGAATCTTAACAGAAAACACTATATAGtgtatgtatgtgtgtgtgtgtgtgt
-gtgtgtatatatatatatatttatatatatatttatttatataGGggctgggtacagtgg
-ctcatgcctgtaatcccagcactttgggaggctgaggtgggaggatcatttgaggccagg
-agttcaaaactagcctgggtaacatattgagacccccatctctacaaaaaataaaaaatt
-agctgggtgtggtggtgtacacctgtagtcccagctacttgggaggctgaggcaagagga
-ttgcttgaggccaggagtttgaggctgcagtgagttgtgatcgtaccactgcactccaac
-ctgggtgacagatcaagaccctgccaaaaaaaaaaaaaaattaaaaaGATacacacacat
-acacacacacatacaGACTAAACTCTGTAGAATCAGATCATTGAGCCTTGAGGTCAGAAT
-CAGAATTGCAGCTGCAAATCTAGACTCAGCCCTCTGAGCTGGAAGTCATCTGAGAGCCAC
-CTCTCCCCTCAGCTTGTCCTGGAAAGAATGTTTGCTCTCACTGCCTGCTCCTAAACTTGT
-TTGCAATGaatagatctgggggagggccccaaaacctgaatttctaaaaggctccccagg
-ggattctgttgtTGGGTCTTCCAGATTTCGGCAATAGATTTAATTTAGCCAGGCTTcctc
-ttcatcacattcatcacatgggaaaactgaggccccggaaggggaagtgacttgacctgg
-accccatcagatagctggtgacaggctggagctcccacctgtgcctcccaatgccaaggc
-cactctcaccagcagcccagggtgtttAGATGGCCCCGTGGGACTGTCAACCTCCTAGGT
-ACCCCTGGTCCCTGAGACATCTGGTTCGTGAAACTGCGAGGTTCTGGGGATCGAGGTGTC
-ACCCTCTTCTGCCTCTGGCTGAGTCTGCTTCTTGAGAGTAGCCTGGAGGGGCTGAGGGCC
-CCTCCTCTTTTATCAGCTCCCCCCAAGCTGAAACCCCACCCCAATCCCCAATACACTCTG
-ACCCCTCTCAGCCCCAAGCATTCCTGTGAAAACCACTCCACATGTTTTAAATTCTGCTAC
-TCCAAACTCAGCAGTATCATGGTTTTGCAACACCCTCTTGATGCTCAAGAAGCATTTACA
-AGTTTCTTTTCCCTTTATTAAGAAAGTTTTAAAAAAAAGTTAGGGTCTTGAAACAATAAC
-AACGGAGCATTTCAGAGGCACAAACGTTTGCAGAAGAGAAGCTGGTGGCCTGGCCAGGCG
-GAGGAGGGGGCTCTAGCTGTTCTCGGGGAGGTGAGAGCAGGGAAGTCAGAGAGAGGGTGG
-GCCTGCTGGGAGGGGGGGGTTCAGGCCAGGGCTCCCCAGCTGCCAGGTGGAGGGCAGGTC
-TGAGGGTGGGTGCTCTCTTGGGGTCGGGAATGTAATATTTCATCACCTAGAGCCTCTCCC
-CCAGCCTGCTGACCATCTTCCTTCCCCAGGCCACCCCTGGGCCCCTTGGAGCTCCGACTC
-TTGCTTCTCCTGCCCATTCCTGTCCCAGTCACGGAGCCCTACGTGTTCAGGCCAACCAGT
-CACGGCAAATACAAATCCCGTTTCTGAGGATTCCGGGGAGCAGAGCAGGAAGGGGGTGTT
-ATGATGGCAGAAGGATAGGCAGTGAGGACAGACTTGCTTCCAAGCTGGGTCTGACCTGGA
-GACTCCTCCCAGCGTCGTTCCTGCCTAGGGCGAGGGGCGTCACAGCGAAGCACAGATGCT
-CAAGTCACtggtggtgggtgtgggcgagtgtggtggtgggtgtgggggagtgtggtggtg
-ggtgtggggcagtgtggtggtgggtgtgggcgagtgcggtgatgggtgtgggcaagtgtg
-ggggtgggtgtcagcgtgtgggggtgggtgtcagcgagtgtggtggtgggtgtggACGAG
-TGCACGGATCTTCCCTTGCTCCCCACCCACAATTCCCTACATTTCCCCCCTCAAGTGACC
-CCCAAATTCTCCTCTCCACCGTGAATGTGCTGAGCAGAGCCATCAGGCAGAAGCAGAGCC
-TGAAGGCTTCctgtgtgaccctgggcaagccccttccttctcagacctgtttccccaCAT
-GGGCAGGAAGCGCTGAGGTGGGGAACAGAGCTGCTGGATAATCTCAGCTTTCCTTTCCGT
-TTCAGTGGCCTCTTCTGGGCTGGGCAGGTGGATCCCCCAGCAGTGACAGCTCACCTGATC
-CGGCTTGGGAAAAAGGGGCATGGAACCCATGAGAGGGAGGCCTGTGGGGGAGTGCCGATG
-AGGGTGGCAGGCAGCTTGCAGAGGATGCCCTCCAGGGCTGGCTGCCCACCCAGAGGCCAG
-GTTGTGACCCTCCACGGCCAGCTGGGGGAGGTGTCCAAGCCAGGCCTCTGGAAGCCCTGG
-AGCCTTGTCCAGCCAGCTCCTCGGGGTGGCTGGTGGCTGAAGGCTGTGGAAATGGCCTCT
-GGGGACTGTCCAGAGAACCAGGTGCTCACAGCTCAGGGTCCTGGAGCCTCCCCCAGAGCA
-GAAGCAGGGCCTTCAGGATTCACCTGTGCTGTGTCCCAGCTTTGCCCTCTGGAAACCCTT
-TCTCTGCAAAGATGGGGTCAGGGAAAGGCCTGGGAAAAGATGTTTGCTTTCTTTAAGTTG
-TAGATAGAGAAAGCTGCAGGGGAGGGCACAGGCTCATGGTCCCTCTTAAAGTGTGTGTga
-gagggagacaagaggagggagagagagaaggatgcggtgaaggacaggaagaaacacagg
-aagaaagaaaaggaaagataaaagataagtgagaaagaagaggaaggaagggaaggaggg
-agggagaaaggAGAGGAGAATGGAGGTggaagaaataaaggaaataaaaaagaaaaagaa
-agggaaggtagactgacagaaaaatgatagaagggtggaaagaaagagaggaCAAATGGA
-GAAGACAgaggagaaagagtaagaggagaggaggagaaggagcaggaggaggTGTGCAGG
-GGCCGAGGACTAGGACCAGAGAGTCGGGAGAGCCGGCGGTCAGGGCTGCAGGCCGGGCTG
-GCGCGGCCTCACGTCCAGCCTGCGGTCCAGCTTCCTGTCCTTGCGTGGGCGCCGGTCCTT
-CCTGCCCTTCTTCTGGCCGGGGCTCCTCTCTGCAATGAGAGGACAGAGCCCGGTGACCAA
-GGCTGCAGGGCCAGTTAGGTCCTGGGAGCCTCCTCAGTCCTGAAAGACAAGGGTGCCCCA
-CCCACTCCCCAACAACGGGGCTCAGAACATTTGGGCACTGACCTTGCAGTCCCTCCTGTT
-GAGAGTTTGGACCGTGGGCTAAGGTACCCCAAACTGAACCTTTCTCTCTAGGTCTTCAGG
-GAGTGGCGAGGGCCACTAACTTGTTCAGGGCCTTCTTGTGCTGGACATCTGGCTCGGCCA
-GGCCTGCAGGTTCACCTGGGGCCCCCCAATCAGCATGTCGGGTGGCCTCATGGGAGTCCC
-CATGGCTTTCCCCGGCACACTCCTTCCATAGCTGAGCAGGCTCTGTGCTGGACGCTGGAC
-ACCTTTCATCTGTGTCCCTGCACCAACTTCTGCATAACACTGTGGCaacaatacttcagc
-atttagcaagcgctcactgtatgcaggccacagccccaagtgctttatgtatacgaaact
-cacaacagccgagagaggcaggtaGGGTCTGAGCCACACCCAGTCCCGTCTTCTCCAATT
-GTCCTCTCTTTCTCTCCACCCTTCTATCATTTTTCTGTGCCAGGCTACCTTTCCTTTCTT
-TTTCTTCTTTATTTCCTTTATTCCTTCCACCTCCACTCTGGCTGTGCCCGCTGCCCAGGG
-AGTTCTTCTGAGCAGTTGCCTGTCATTGTTATGGACAGGTGAGAAGACCACAGCATGGTT
-GGGAGCAAGGCCAGCCCTAAGTTTCTGCTTTACAAAGTGTCTCCACACCCAGGACATTCT
-CCTACATTGCTTGGGCCCCATTCAGTTCCCCGCAAGGAGCTGTGTGTCCATTTGAACACG
-ATGAACCTGAGGCTCCATGAGTCACTTTCTGAAGGTGCGCAGCGAGGCTGTTAGAGACCC
-TCTGAGCCTAGTGGCAAGGGGAGGGCAGTTTTATTCCTTGGGTGTCAACTATGTGCCCGT
-CTCCCCAAGAGTCAGGGCTGTGGCTCCAGTCCTGGCTCCTTCCTCTGCAGAGCAGAGTCA
-AGGAGCTAAGACCAGGCTACCCACCTCTGGGGCTCCCCACGCCCACTCTGAGCTCTTGGG
-GAGCACTGAGGCCAACTCCCACTCTGAGCTGCAGAGCTGACTGTGCAGGCCTCAGGTAGG
-ACAGCATCTGGAGATGGGGTGTGGGTGCTGCCTGAGTGGCCCTGCCGGCTCTGATGTGGG
-GGTGTGGGGGCCAGTGGCTTTGTGTCCCTACCCCTTCCCTAGGCCTGCCTGCCAGCTGCT
-CATGTacccatccagtcacccacccatccctccacctatttacccacctacacactcacc
-cacctattcacccatctactcacccacctCCATACCCAATGacccatccatccacctagg
-cacccacccatcacctatccatccacctgttcacctatctacctacctacccacccacct
-aatcatccacctacctactcatccacccacctaccctcccatctaccctcctatccaccc
-atctacctacccactcacccaccTGTGCATTCAGCCATCCatccactcatccaacaaata
-ttaactggataccgactatgtgccagactgtgttagaggcactagagagacagctgtgaa
-caaggcagataaagcccttgccgtcactggagatcacactccagtaaggaaaacagacgc
-tgaacaagcaaacacgagaatgagaaggctcatttcagaagggtgcaagtgctaccatgt
-gatatgatggaaaatgactccggggagggggactcctgggaagcctctctgaggaggagc
-cactgcagccaagacctgggtgatgcagggagctacagcggggttgttgcgaggattaga
-gtcatgtttcacagcactaagcacagccagcacatggtagatgctttatgaatgtttgca
-gttattgtGATTATTATTATCCAGGGGAAAAGCTTTCCCCTCATGATTCCCCAACAGCCA
-TTCACCCCCAGCTCTTGGAGCCATGAGAGGTGCCATGTGGTAATGAGTGCAGAAGAACTG
-TCTGCCTCCTGTGTGAGTCCTGCTCTGGCTCTGGGGTCTCTTAGGTTCTCTGGTTCCACC
-TCAACCTCACTCTGTCCTCACCTGCCCAACATGACTCCCAAAGGCTCCTATCTCTGCTAG
-CTGCACTCCCAACCCAAATAGCACAAGTCCTTCTGAAAGAGGAGTGTCcctgagttcaaa
-tcctggctccactatgtcccagctgggtgccccgggtggcctggttccaggtccctcatc
-cttcatcatgactttagattcctctttgcaTGACGAGTTACgtttgaattctaggtctac
-agctccctggctttgtgacccttaggtgagtgactcaacctttctgggcctcagtcccct
-catctgtaaaatggggatagtgctaataacacctaccgcatagcatcactgcgaagatta
-catgagttaacgattatagagaattcggcacagtgcccagTCAACACTGCCAATACTACT
-CACCGTTCACATCTTACCAAGCACACCCTGTGGCCTCTCTTCTATGTAAATCAGTGGTCC
-TTCATAgcccccagaaacattttggaaatacgtgtagtggtcttgaatggcacagtgaag
-ggggttcctgtggcattcagtggacggcaatcgggatccagcgtgggacagtcccccgca
-aagacgagctgtccccctgttccatccagttctctcacatcgtgccccaccctcacgtag
-ctgaaaagtctgcttgctgggagctgaattctgtttgactcatgaataccaattggtttc
-gaacacttccattcactgaagattctagggcactgtgagtgtggtgtcaatcagagatca
-attgggttggaccttactaatcattggtcactgttgggaaatcgcatctctgatggcgat
-gTGGCCACGTACTTGGGGCGCTGACCACGGCCGCGGTCCTCACTGGGATTGTACTTCCCT
-AAGTGTCTGTTGGTATGTTGGGCCAAGCGCTTCCATCAAGAAAtttcttttctttctcct
-ctatattacagttaggacactatactgataaaaaaaaattacctttgcaagtaggccaca
-ttctccatgaacttcattaagaatgataaagagggtattcccaaatccttcttattaaaa
-ggggggtgttcagtttgagagggttgggaactcctgGCCAGCTCAATTTTCCTAATGTAT
-TTGGGACTGAACCCAGCAAGGAAGGCCCTCCTTTGAAAGGACACCAGGGAAGGTGATGTG
-TACTCCACATGATAGTATGGCTAATGGTGGCCTTTCAGGCAGTCTCATAGATACTATTTG
-TGGGGCAGTGATCTGAGTCCGCCCTGTCCCTGTGGGCCTTTCCCACCGCAGCCTCGTGTG
-CCTGTCCTGGGGCTCACCTCCTGGGCAGGGCCTCTGGATGGGACATTTCCTTGACTCAGA
-AAGCACCTGGCAGGTGGCTGCCTCCTCATGCCCAGCCCGGCCAGCCTCTCGTACCCGGCT
-CTCCAGGCCCCAAGCCGAGCCGCAGGTCTTTCCATTGTGTGTGCAGGGGCTCCAGCCGCC
-CCAGGGACCCAGTTCACACTCCCCTGTGGGGTGAAAGGAGagacagacagacagacagac
-agGGTCAGCCGGCAGTGAGGGTCCTTCAGATCCAAGGGCAGGGTTTGAGGGGTTCAGTCC
-TCTGAAGACTGAAGACACCACTTCCACCTGCTAGGAGCAGAGTTATTTATAAGAGCCTGG
-AATGAGAGCGAAACGAATGCATGCACAGACTAATATGGGCCTGAAGCCAGAGCGGCCGAC
-TGTCTAGCTTTAAaggaaaggcttcctggaggaggtgatgtatgagttaaagggagagag
-gggagctcgtcaggtgagaagaaggaagcccattccaggcaggtgtgcaaagccttggga
-gcccggcccaccatgtttgggagatggggcagcctgagttgggagtcaagtctcaggaag
-gcggggacaggagaggaggctggaaggttgcctgggaaGCCCTCAGGACCAGGACACAGG
-TTTTAAACTTGATCATGTGTCTTTGATCAACTTTGGAAGGAAGAAAAAGGAGGCCATGGA
-CATAAAAGTTCTTCATAGGGGGTAATAAAAatacatatatacatgtatatatatatatac
-acacacacacacatatatatatacacatatatatacacacacacacatatatatacacat
-atatatacacacacacacacatatatatatacacatatatacacacatacacacacacac
-acacacacacacacatatatatatatatataCTTTGATTATTTTAAAAGTCCATGAGAAG
-TAGGCACAGAATATGggtagctatgaatactcctattttgtagatttggacactgagacc
-tagagcagaggtttgctaagggaacgcagcaagaggctcacacagcagacacagcaagct
-caagacacagtgggacccagaccttgctAGatacacacatttgacaagtaaagactgagc
-acccagtgtatgccaggtgctattctgggtgctgagggagcagcagcagacaagacagcc
-cagggtctgcaggcctcctggaattcaccatctggacaccgccgtgatgagggaagtgca
-ggcaccgtgggagcccagaagcagcatgggttgggttgtaggggaggaaacccctggact
-gggtcttgaagtgggggtgggatggcggggaaggggagcctagccaggctcagggaggga
-cgggaggtgctccaagtgagggcataaccccagcagagtcccCAGGATGATTTGGCCTGG
-AACTGGGCAAGCCGGAGAATAAGCTCAAACTGAGGAGGAAAAAAATGATGGGGGTGGAAA
-GGCTGGCAGATGGGACAGATTGCCCAGGGCCTGGGTGGGCTCCGCCCAAGGGCAGTggga
-gccactgaagggtcctgggaggaaaagaaattgagcagactatcattgtgaaatactccc
-tctgctgttgagtggagactgggctggagggactgagaaccaaggcgggagacgggcagg
-agctgtggccagaaccctggcgataggcagggggtggcaagagggtgggaagagggcggC
-ACAGAGGACAGAAACAAATGGGTGGGGAGAAAGGGATGAGCTGAATGGTGTGGGTTTGGG
-AGCTTCGTGctgcttcattttcaccccaaagttcttcctaccacccaaaatattatgcat
-ttgttctcaggtgtcgcttctgtctctccactgaaatgtcatgtccttgagtgcagaggc
-tttgtctgttttgttctgtaatgtgtctccagcacctaggaaagtgcctggccatagcag
-atgctctagtagatattttcagagtgaataaatGAACAGATTGGATTGAATATAGGGTGA
-GGGAGAGAGAAGAGTCAACAGCGATGTCTGCATCTCGCGCATGCCACCCAGGGATCAGGG
-AGCTGGTTATTGAAACCCAGAGGAAACCCAGAGGGAGCGTTAGGTGGGGGATGGTGGCAG
-TGGGAGTGGAAAGAAGGCACCCAGAGGGCAGTGGAGGTGAGGATCAGCTGCTCAGGGAGG
-CTGGAGACACGGAGTCAGGGGCCATCAGCAGCTGGAATGACCATGAATGTGAGCCCGGAG
-GGAATGCGTGGGCAGAGAGGCACAGTGTAGATGAGAATGCCAAGGAGCAGCCTAGTGCAG
-GAACGGGAGGGCTCACAGGCAGGAGTGTGACAAGGAGCTGTTAGGAAATAATCAGAGCAG
-TAATAACACTGATactgacacgtactgagcatctactgtgtgctggctgctgtactgagc
-actttaaattgtactaattcactttatcctcataacaattcctccccatgaggtaggctc
-tatgttctattgtctttttttttttctaacgtttggagaaaccgaaggacagagagctga
-ggtggtttgcttaagatcactaaagggtaaggtttagagctaggattggaccccaggcct
-gtcctattccaaaatcagtgctcagccaggtgtggtggctcatacctatactcccaatgc
-tttgggaggctgaggtgggaagaccgcttgagcccaggggcagcctgggcaacatagcaa
-gagcctgtctttacaaaaacataaacgcatagccagctgttgtggtacatgcctgtggtc
-ccagttactcgggaggctgaggcgggaggattctctgagcctaggagtttgaggctgcag
-tgagctatgatcatgccactgcactccagctgggcaacagagtgagaccctatctcaaac
-aaaacaagcaaacaagcaaacaaacaaacaaataaacaTCAGCGCTCTTCTTCTGCACTC
-TGCTGATTCCCTTGGCATTAATAACAATGCCAGTGTTGGTTGTAGTAGTAATCATAGTAA
-TGGCGGTTATGTTGGCTCTAGTGTTTTGCAGTTACTATGTGGAGGTACCCAGTGTACCTG
-ACATGGTGGTGCTGGGCCTTCCCTCACCATATGGCATTCTACTGTAATTTCTTCCAGGGC
-CCCTAACATCTCTCACCAAGCCCCCGCTCCAGGGAGAGGGGAGGGGCAGGGGCAGGGCGG
-GGAGGTCCCCACTCACCCTGGCACTCCCGTGTGTTCTGGTGGGCCAAAGTGCCCGGCGGG
-CAGGTGGGCAGACACTTCCCCTTGTACAAGTAAAACTGCCTCTTGCACCGGATGCAGAAG
-TCCTGGCTGAAGCAGCTCTCACAAGTGGCCCCACATTCTGTAATAGAGCCAGGGACACCC
-CAGGTGAGGGAGACTGCCAAGGATGGGGCCCACTGGGTCTGCCCGAGGTGGAAGGCCCTC
-TGGGTAGCTCCAGGCTTGGTAGCATTTGGGTCAGGACTCAGTGTCTCCTTTGAAGCCCAG
-ACTTGGCCAAGGTCAAACTGGGCTGCATGTGAAGAGAACActccctttctcatttgaggg
-gaggctcagagagagcgagtgacttgcttgaagtcacccgcaaaccagggctggagtgag
-gactccctgcttcttttTCACCTCAGAAATAGTGATAATTTGCCCAAAGTTACAGCAAAA
-ATTAGAGCTTGGAATTAGGACTCCTTTTCCTATTTGagctaagaccagagaaggtgagtt
-acatgcctaaggccacaccacaaactagggtagaAGTGAAAGTTGCCTGTTCTATTAGTG
-CTAATTAAGGCTGAGAGCGGACTGACTTGCCTCGGGCTGCGGAGTCAGCCTGGACACAGG
-CAGGTATCTCAGAGTCTGGGCTTAGACATGCACCTACTTCCCCTCTGTCTGTGCTGGGGT
-GAAAGGGTGGGATCTAAGCCCATGGTGTCTAGGAGCCCAGCACTAGCATAGAACAAGGGA
-GAAGCCACGTACTTTTGCACCTGTTGACCTCCTGGCCGCGGATGCCGAAGTACCCAGGGG
-GACAGTCGTGCAGGCACTTGCCGTACTGGCGGATGCCTTCCCGGCGGATGAACAGGAAGA
-GCCTCTGCTGGCAGGTGGAACAGCCGTTCTCCTCTGAGCAGATGATACAGCCTGTGCAGT
-TGCCCCCCAGGCCAGTGCCCACTGCCCACAAGACCAGGGCAGAAGGAGGGGGAAAGGGAG
-AGAGAGATGGTCAAACCATATATGCGAGCAGCTGAGATGGTCTCATTGGGATAGtaactg
-ggcacatggccacccaaacaaaagactacatttcccaccttcccttacaactagatatgg
-tcatgtgaccaacatctggccaatcagatgtaaggtaaagcagcatgtgacacttcaaga
-aagctgccttaaagggcaggggtgtgccccttgtcgtcccctcatcctttctgttgggtg
-gaatgtgaacgatggctggagcacaagcagccatttcagatcatgaggtggaaactatgt
-cccgtgaggcggtggaaaaatcagataaaaagcacctgggtgcctgaggaaggcagaact
-gctgtaccagctctagcctgcctgtgtagactgttacatgagagagaaatcaacatctat
-cttgcttaaatcactgttatttgaagttttccatcactcacaagcaaacttaatctttac
-CAAAGTAATGTGAATTTTTGAGTGTGTGTGGGTGCACATGATGAGTGGGGTGGGGTGAGA
-CCCTCACCCTCCTGCTGGGTTCCTGAACAATACTCAGCAATACTCCATTTCTCACTGTCA
-CCATCAGCAAGGGCTCCCACCATCATCAGGAATAGCAATGGGAGAAATTTTTTTAAGGAG
-AAAATTTTTTGTTACCCCAGAATTGGCACCCAGGAGCCAAAGCTGGGGAAAAAAGAGGTG
-GAAAATGCTCTAGAATCTTAAGTGAGCCTCTCCCAGGCTCATAAGGAGTCTCTGTTACCC
-TGACCATCACCCCAGGACCCTGATTAAGCTGAACACTTGCAGGGAGGGACTCATGGGAGT
-TAGGGATTGTCAGCCTggccaggcacagtggctcatgcctgtcatcccagcattttggga
-ggccaagatgggagaattgcttgagtccaggagtttgagaccagcctggacaatatggcg
-aggccctgtctctacaaaaaatacaaaaattagccgggtatggtggcacacacctgtagt
-cccagctacttgggaggctaaggtgggaggatcgcctgagcggggaaggctgcagtgagc
-tgtgtttgtgccactgtactccagtcggagagacagagtgaagccatgtttccaataaag
-aagaaaataaaaagaaGTGGACAGCCTAGGGAAGTGAGTTGTGGTGCTGTGACTTTTCCT
-CTGTTCCCAACCCTGCCAACGAAGTGAGGAGATGCCAGAGAAACTCACAAAGACAGGGGG
-TGCCTGCAAGAAGGTGCCAGCATCTCATGCCCTGCTTGGACATAAACTCATGTCCATAGC
-CCTGCGAATCTGCCCCCTTCCCATTCCTCTTTGAACAGAGAAAGGAGACCAGGAGACAGA
-AGGGCAGAGCTGAGGGGAAGAGTGTGATAGAAGAGCCTGCACATCCTTCCCGGCACGTGT
-GAGGGAGTTCTCAGTGGTAAGGGGCACCTTGGGAGCAGCCAGGCTTAGGTGGTATTCCTG
-CTGCCTGGCACAAGAAGGCTGGTTGCTGGGAGGTGCCCCAGCAGTAAGAGGCAGCAGGGG
-AGACCACTGGGAGTAGGAGGTGGGGGAGAGTCAGAAAATGACCAGGTGTCACTAAGTGAC
-AGGAAAGGATAGGGCAGCTTTTGAGAGGCAGCAATTGGGGAAACAGTAAATGGTTTCATG
-TTTATATGTCATTAGGGTCAGACTGGTTAATAATCCGGTTATACACCTTGATTCACCTGA
-GCCCCAAGACCACCCGGCAGGAAACATTCTTGGCTCTCCAGCTCTCAGATGCTCCCCTCT
-TCCTATTGGTGCCCCATCTCCCTTTTAGAGGAATTCCCCATTGTGCAAGGTCCTGATGAA
-ACACATCCTGGCACCTTCCCCCTGGAACAGAAACCAAAAGAGTTCTGGCCCTCCTTTAAG
-TTGGCAGCAGGTGAGAGCTAACGAAAGCCCGGTCAGATACACATTCTGGTGACTCCAGTC
-CTGGGAGTGGGACACAAGAGTGAGGGTCACACAGAAATGGGGTTCATGGTGGAGGCAGGG
-CAGGCTCTCTGCCCAGCCCTGGCTGAGGcctttctctctcccttccatccctcagtccct
-ctgttccttcctccctGCTCCAGCTCTCGGATGAGTACTGCTACTTCCCCAGTCCTCACC
-TTCTGTTCCTTAGATTCGGTGAGGCCCCACATCCTGCTGATAACCCTCTTTCTGTTGCTT
-ATAACTCAGGAGGCTTACTGATCCAGGGTCGTACGGAAGCACACAGTAACTAAAGTGTAC
-CCTGGGATGCTGTTCCCAAGCAAAGTTGGCATTGCCCTCAATTTTCTTGCCCTGGGATAA
-GAAACTGCAACAGGAGAGCAGAATAAAGATTTTTGTGCCTCTGGAGCTGTATACCTGGCA
-GGGATCTGAGGGCAGAGAGCAAGTGTGATGTTGTAAGGGAGATTCCCAGAGCCAGAGAAA
-TAAGAACATCCACTGAGAATTTAGCAGAGTCCGGACTTCTCACTCAgcaaaagattcaga
-ttctgatactacccagagctggcaagaatgagaggaaaccttcgctttttcaccttagat
-aggagtgtaaacttcggggaaaaatctagcagtacctaataaatttggagatGTCTCTTT
-TCTTTTTGTGTTAAAAAGtttttttgtttgttttgttttgttaagacaggatcttgctct
-gtcacccaggctccagtgcagtggcatgatcctaagctcactgcagcctcaaattcctgg
-gctcaagcaatcctcctgcctcagcctcctaagtagctgggactacaggcatgtcccacc
-acaccaagataattttttaaaaacttttgtacagatggtctctctctgtttcccaggctg
-gtcttgaactctggcctcaagtgatcttcctgcctcagggtcccaaagtgttgggattat
-aggcatgagccaccacgactggccTGATGTCTCTTCTAAATGTAACAATTTAGCTTCTGG
-TATATACCCTAGAGcggcagttctcaaactctggcgcacaacagcagctcctagagagct
-tgttagaatataggtccctgggttccacccctggtacgtctgattcagtaggtctgagaa
-tttgtatttctaacaggttcccaggtgatgctgatgctgctggtccagggaccatgctct
-cagaaacactgAcctagagaaacccttgtatatgtgtagaaagagacaaagatatttatt
-gcagcattatttaatagcaaacaactgcaaaaagctaaccctctgccaaaggaatagata
-aatacattgtggtatattcatacaccacagccagataccacatacacaacccagccatga
-taaatgactgaggtagctacagttatcattgtgggcacagctcaaagacggggctgagag
-gaaaaaagcaaggtgcacgatgaatcatatagtaagagccatttatataaagttcaagga
-cctgcaaagcaatattttgtAGCATTTGTGACTTGTAAATATGCATTCAGAGCAGAAGAC
-ATGGGACTAACCAACACTGAATTCAGGATCATGGCACACAAATGtttattatattatttt
-aaattCTTGACTGTAGGTTTGAAATAGTTCACCCTAAAAATGCATAAAGAACAAAAGAAT
-TTAGCCTCTACTGTGTCCTGGGGCAGGAGGAGGCCTACATTCTTTCTTCTCCTTCTCCAC
-TAGCTCCCCTCCCAAGCCCTGTCCCATCCTCAAGCTGAGGTCTTGAGCAGGGGAAGGTGA
-CAAATTCTGAAGACGTGGGACCCGGGTTCCAAGAGCAGTGGAGACTCGTGCCTCTGCACA
-CTttgcccctcgtccactctcccctcatcctcagtagtggaatcctgatttttattttat
-tttttgaggcaaggtcttgctctgccccccaggctgaagtgcagtggcacgaccttggct
-cactgcagcctagacttcccgggctcaagcaatcctccctcctcagcctccctagtagct
-aggactacaggcgtgcaccaccatgcccagctaatctgtgtatttttttgtagagaaatg
-gtttcaccatgtttcccaggccggtctaaaactcctgggctcaagcaatcctcctgtctc
-agactcccaaagtgctgggattacaggcctgagccacagcgcccggctggaaccctgata
-ttaagcggagtttatgtcctctaagactatatttcccaggccctttgcagctatatgtgg
-tcatgtgcttatgccctgaccaatgggatatgagcgggcatgccctgtacagcCCCTTAG
-GAAACGCTGGCACTGTTCTCCTCCCATTTTCCCTTATGCCTGCAGGAGTGCAGGCTTAAG
-AGTGGAGCCATGGCAGATCCAGGAGGCAGAGGGATCTTATAGAAAgacagcttggcgtgg
-ctgtattaacccagggctgcccaccgccgagattctttcctggggaagggaggaaagcat
-tgcccatcttgtttaggtcactgGGCCTTTCTGACGCACACATTGACTGATGATGTCGGG
-TTTTCCGCCATGCAAGGCAGCACAGAGTCATATCAGTGGAGACCAAGTTGCCCTGCGCTG
-TGCCTTGGCGCTGTGTAAGCCCACTGGGCCTGAGAGGCGACCCCACTACCAAAGAGCAAG
-GGGACCCTCAGTTGACTTGTGGTGATCTTTATCACCTGGCAGAATAGGACTTCAAATTAC
-AAATTAATTTAAATTACAGAAAAACAAAGTAGCATTTCCTGAAaaacgaatctgtggaca
-cagactcacaccctgacatggcgttgctgcccattttgcagctgagaaaaaccgagaatc
-aaggaggtgaaacgacatgtccagggtcacacagaattggcaggggtggacccacatcac
-tctgccccacgctgccctctTAGAGCATCTGTCCAGGGCCTCCTGTGTCAGGCAGAGCCT
-GGGGCCATGGGGGTGAGCCACGCATGGCCCCTACCCCTATAGGACAAACAGCCTGGTGGG
-AGGAATTGAAGCCCACAGAAGTGACAGCAAAGCAGGATGAGATAAGGGGTCAAGATGGAG
-ACAAAGCAAAGCTCTTACCACTCTtagaagagcttagaggtcactcagcacaactcctgc
-agtttcactggggacactgaggccagaaggggtggagctttccccaaagtcaggcagcca
-actGCAAAGAAGCCTCAGTCCTCAGTTAGAGTTATAGCACTAtttgttttttgtttgttt
-tattgtttgtttgtttgtttgtttgtttgtttttgagatggagcctcactctgttgccca
-gactggagtgtagtggtgcgatctcagctcactgcaaactccgtctcccaggttcaaacg
-attctcgtgcctcagtctcccgagcagctgggattacaggcacccccaccaagcctagct
-aaatttttttgtatttttagtagagacggggtttcgccatgttggccaggctggtctcga
-cctcctgacctcaAAAAGCTACAGTATATGCTGAAGGCCAAAGAACCCAACAAGCCCCTC
-CCAGGCCTCATAGAGTGCTGGCCCACTGGATGGTGCTTAGCATCCTTCAATACCCTGGTC
-TTTGAAGGTCAATACCCTGGTCTTTGAAGGGTAGTGGCTGTTTCTGGCCTCATCCTCGAC
-CCTGGCAGTTGGCTAGGATGCCCTCTTGTGCCTCTATGTTGTAATGGCACCTCTTGCTTT
-TTGACTTCCGGTAGCCTGTCTGGTGTTTCGTCATGTCTCTGTAACTCATTAGAAAAAGCA
-GTGCTACTGCCTCTCTCTACCCCCTGCCCTAAAGTCACGGGTGCAGGCGCTTGAATGTTC
-ATTCTGTGAATCATCAGTGATGACAAGAGTCTGTAGAGTGCTGCTCTAGAAAGATCCAAA
-CTTGAAGGTTCTTAAACTTGACTGTGATAACAATCTCCAGAGAGGCTTGTAAAGCGTCTG
-CTGTGGGCCAGGAATGTGCACTTTAACAAGTCCAAAATAAATGTAACAGAATTTTGGAAG
-TGTCTTCCCTGTTCACAGTTTCCTTTCCCTGAGAACTGGCCCCAGTAATCCTGTTTGTAG
-GGCATGACTCTGACCCTAACCAATGGCTGTCTCTTCCAGGATGGGCCAATTAGACCATCT
-CTCTCTGGGCTGATGGACAATGGTCTGCGCTGGCCTTGACCTAAGGCGATCTGCAGGTGG
-GAGGGTAGCCTGTTCCAATGCACATGTGTGAGAAGCCTTGGTGGGCACTAGCTAACAGAG
-GCTCTGCTCCTCTGcactctctggcattgaggttcgtgtgctgccatatccacccagatg
-cacttaacctgggcttggccaatcagagcatcaggtccccttgactacagtggttgtagg
-ttcagacacaggctcacatccccacaagagctagtcttggggtttttgctgaggtcaatg
-gatgtgtgtggagatgtgtgtgttttcctttcctctctttggatctaggaggatatagat
-cagagctggtgggtgccacatgagggaagagcctctggagaatggaggccatacagcaga
-aacagagccaagagacacagacaaagaccaaaaagagtcatctgtgcatgtggatccacc
-ctggggatccataaattctctttttttctcaggtcacattgagttaggttttctgtcact
-tgcaaccagatgattcccgactaatacaGAAGTAGAGAGAGAAAAATAAATCAGATGCAG
-AGAGAGAAGCAGCAACCAGAACCTCACGGGCTCCTTGAGACAGAAAAAATTTCTGACTGC
-CTCCCAGTCCTTCCCAAAGCTTGGCTTGTCCCATAGCTCCAAATCCAGTGACTTTTTCAC
-TTGAGCTGGTTTTCTTCTGTCAAATTACAATAAAAATGGATGTAGCTCACTAGACAGCGA
-ACAGATCACGGTGGAGCAGCGCTGCTTTGGCGCGGATGAGGAACCTGGAGCACCACCTAT
-CCAACCTGATCACCCTGGTGCTCCAGGGGACACTGAGGTTCCAGGGAGCACACTTTGAAA
-CCCCCTGGGTCCTTCTACACATCTTGGCCTCTGTCGCTGTCCTCTCCCAGCTGAGATGCA
-CATTTTAAAAGCATTCAAGCTCTAGTTGCAACCTCCCCAAGTTTTCTTGGGCCATCACAG
-TGGATGGCAGGCACCCCATGTAACTTCCATTAACAACTGTCTCCCATAATCAAGACCATC
-CTCCCTCAGTCAAAACACCAGTAGGCCACAAAAGCATGGCCCTGTGTTGCTCCAGCAGCT
-GGAGAGGCTTAGAATGAAATCTGAGTCACTCCATGTTTCCCCAAGCACCCGAGGGATGAG
-TCCAGATTTGGATGTCCATTTTATGGAGAATGAGAGTGGAATCAAACACACCAGATTTGA
-CAGTTTGCAAAGTGATAAAGGCTTATGACAACTCTGAATGCGTGCATTAACCCAGGGTTG
-AGTGATCCATTCATTCATTCATCGACCcattcattcaacaattactgagcccctattctg
-ggtaaggtccagtgctaggACTCAATGGTTATGAGCTTTGGGGCagttgtgtgaccttgg
-gcaaggtactttacctctacaagcctcagtttttccagctgtaaatggggataataatgc
-ttatcttgcagggctgttgtgattaaaggagatggtacgtgaaaaactgttagctcagac
-cacctgcagcaggcatctgataaactgaagctaccattattATATTGAGAATGATGTGTT
-TTCTGCCCTCAAGGGACTTAAAAATCTAAAGACGTGTAACAATGCAGGTTcccaggttga
-tatcctggccccatcactcattgaatgagatccctcgtctctgtgggcctcagtttcccc
-atctgaaaaattgtggcagcaattcctacctccacgtgatttgttatgagggatgtgcaa
-accagcaagcactggcacacagtaggtgctcCTCTGTAAACCTAGGTTCCCTCCCTGTTC
-CCTCACCATCATGACACACAGTGGGACTGTCAACCAACATCTGGACCCTTGTCCTCTTTC
-CCAGGTGAGCAAACAAAAGCCAGAGATGTTGGTGAGGCTGGAAGGAGGCCAGCAGGGTCC
-AGGGACATGGTCTTTTGCCCTCTGGATGGTGAAGTGCTCAGGGCAGAGATACTAGCCAGC
-AGCTTTGGTCCTAGGTGAAGGGCAGGCTTATTCCTTCTTTTGGGAATAGGGAATAACCTG
-TGCCCTTCAAATAAGGGTCCCTAAGCTCAGGTTCACCCACATCCTGAGAACTGCCCCAAG
-CACCTTGTTTCAACAGGAGTCAACGGCTCAACATGTGCAAGTGATCGCTGTATTTTTTTT
-TTCCATTTCAGGGTTTTGAGTGAACTTAGGGTCATCTCTGCCATATCATGCCTTCCATCT
-GCCTTCACTCTGCAGAACTTCCCTGAGGGGTCAAAAATGCAGGGTGACATCTGGGACGCT
-GAAAATGTCATGTTCTCCTAGGCAAGCTCGTCTCCTCAGTAGCCCAGTGAATCTGTCATT
-GAAATTTCCTTAATACCCAAGCCAGAAAGCCTAGCCCCATACATTTTTTTTAAAAAAAAC
-AAGACTAAtttggatagatttctagcatttaaaaaatcaagagatttcacattaaaaagc
-tggaatttgaacttctctggaaaaagtcagaacatctaccaacactgggtctgctgtcac
-agggcagtgagtggttagagttacataaataaggcatatgttccccaggttactgcagac
-cctaccCCTCCCTATTGTATTTCAGATACTGAGGGAAAAGGTCAGCTGCCCTATGTTATC
-ATCCTTGAGCTACATCTTAACACCCACTTCACTCACTCACAATAGAAAACAATGTAGAGc
-aggggttctcaaacttgggcatgcatcagattcacctagagagcctgttaaaaacacagg
-ctgctgggccttaccctagagttgctgattcattaggtctgggcagggcctgagaatccg
-cattgctaacaggttcccaggtgatgctgacctttgctggtcctgggcccacactttgag
-aactactAGTGTGGAACAGGGTTAAgagccagactggttggattgaaatttcagctctgc
-cccttacctttgccatgtgaccttgacccagtgccttaacctcactgtgcttcagttttc
-tcatctgtaaaacaagaatcctcctggctgacctcacaggtgtgctgtggggGCCTGGCA
-GGGCTGACAGTCAAGCGGGTCTCCATGACATCACTGTTACTACCATTATTATCACCACCT
-GCCCTGCCTGTGTTGGCATTTGTGATCCTGGAACTGCTTTGACAATCAGTGCAGAGTTTT
-TGGTTTTGATGCCAACATTTTTGGGGGTAGAGTTTCTTCATAATTGGGGTGTGCCCTGGG
-AAGTGTGTCTTGCATGAGAACATCATGTCATGGTGAACTAAGGATTTAATACAGCTGTCC
-TGGAGGACTCCCCAGGGCTAAGAAGGATGGGGAAAGAGAGAAAGACACCACTGCCCCTGC
-TGAGGTCCCTGCTCTGTCCTTGGGGAGGACCCAGAACCATGCAGGAGGGCCCTACACAGA
-CAGTGCTGGGCAGCGCATCCTCCGATGCCCGCCTGGCAGTGCAGGACGCATGTCACCGAT
-GACCAAGGGAAATAAAAAACATCTGGGCACCCGCCTGCCCACTCAGGCCTCCACATATGG
-GAGGCAGTCGCCACTGCTGGAGGCTTGCTCAGAAGATCCCCCAGCACATTTCTGCCTAGG
-GGTAGATTGCACCATCTCTAGCAAGGGGGTGGGCCCTGGAGATGACTCCCAGCTTAGAGA
-CTCCCTGGGATCAGGGCTAGAGGTCGCTAGCCCACTGGACCCTTCTCAGCACTCAGGAGG
-TGGGGGGACCAGCAGGGCAGAACATTCAGCAGAATGTTGaggttgccttggctttggggc
-ctgacaaaccaccacttcctagctgggtgatattgggcaagtggctttactgttctgagc
-cttggtcttctcttctgtaaaatggggacgatagtagcaaccacctcccaggcagttgtg
-gggatgccatgaactcatctgcgcaaagtgcttagcacagctcacggcagatgaatgagc
-actccattactacttgattCATGAGAGATGCTCCTTTGAGGGCTGGGCCCAGCTTGGCTT
-GCTCACCTTTAAATCCCCACGGCCCTGCACATTGTAGGTGCCCACTGACTACCCATTTGT
-GATTATACCCATTATGCCCATTCATTATTTCTTAAATGAATGCATGAACGGTGGCTCAAT
-AAAGGTTCTCAAAAACTGCTCTCAGGGGGCTCACAGCCTATTTGGGAGGACCAGGCCCAT
-ACGAATGTGGAGAAAGCTGATGACCTCTGCCCAGCAGGGCTCAGAGACAAGTGAAGGACC
-CAGGCAAGGTGGGAGTGAAAGTCCAGAGACTGGAGACATCAGGGGTGGTTTTCTAGGGAG
-GCAGATGTGGGGACAGAAGCTGAGGCCAGGAGCAGGACTAGTTTGTGTAGATGGAAGAAA
-GGTTTCTAAGAGAGGTGAGTACAAGATGATATTGTACTCATTTGGTAGAAAGGGAGGGGC
-TTGAGCAAGGAGCAGATGGCAAATCCCCGCTAAGGTGCCAATACAGGACACCTAAGGGGC
-TAATGGATAAGACCCTCAAAATACAGTAAGAATAGGCacacatccaaaatggaaactttt
-catcctttgccctccaaacctgcttctcctgtccatttcagtcaatggctactccactca
-gggccaaagacttcagcggcatccttgtctcttctctctccctcatatcctactattggc
-ccatcaggaatccggtcagttccacttctgaaatatgtctgggaataatttctccacctt
-tcctgtccctaccccgttccctgctcctgccctgtttccccaccactcaccttccctggc
-catgctggcctcatcctccatgttccccatctgccaagaccactcccaccacaggacctt
-tgcacttgctcttccttttgtctggaatgcccttcccacattcacccgcaaggctccctc
-cctcaaatgtctccttgtggggacaagagtgattccttcttagatactaatttgccacgt
-caactcctgactaaccctgagtccagtaatgcctccaagatgtctagctgaagcattact
-ctctacgtagaaacacttatttgctgcgggtttcacttttcctccaaaacaaaccttgat
-gctgctgcaggaagcataggctatgacacccatagcacaatgtcagtcacctgtgcactc
-ctcccagagcacgcagacctttctccccaagatatgtaagccctgggtctggagagttac
-agcttggagatctacctatcttgaggctgcccaaatcttgctctgttcaaaagttcccca
-actaataaccctttaccaacaaattggaattggctgcctcattctttggtttcccagctc
-cttctgcatttggggtcgctttatgtatacggccctttcacagaacaccccttccctgtg
-atgcccccagacctcttgcctgcagcagcaccacacctacaccctattcctctcccacgt
-cgctatgttcttcatgccatttattcccacctgataggttctaaatttggcaagtgctgt
-tgtctctttcccaccagtgaaagatgagttccaggaaggcagggaTGAGCCACGGCACAC
-TGGACCTTCTCACTTATGCAGCACCTGCCTTCTCACTTAACCAATTCTTTGTTTTATAGC
-TGCTTACCATTCCGCATAGaggggctgcaaaactcatttaggtgctattatcacacccat
-ttcagaaaggaggaaactgaggttcagagcaatgatgctgcttgcccgaggtcacttaat
-aagtggagcagatattcaaacccaggcagtgtgactctgaacctgagggttatcctcagg
-ttgccacactgcAGCCTGGCTACTCAACATATCCCTGTGCGCCTCCTCAGTCCTCCATGC
-AGAGTCCCTTACCTACTGACGCCTTGCTAAGTTCCCAGTGCTGTGCTGAGGCCTTCTTCG
-GTGTCCGCTTGACCTCACCTGAGACAGGAAATTGGCCAAATGGTGGCAGTGCAGGCTGCC
-CCAGGACTGAACATGCCCCCTCTGCATTCCTCATCCATCCTCCCCTCACCCCCAGTAGAG
-AGTGAGCAGATCAATAGGTGTGTGTTCAATCAAGGGGTGAAATGCCCACTCCGTCTCTCA
-AATTCTCCAGGAGTGAGTCTCCTGCCTCGCAGCTGGGACTTGGGGAGGATGAAGAAAAAT
-TACCTGCTAAGTTGCAGCCTCTGCTGGACATTCTGGCCAGAATCCTTTTTAGACGTTGAC
-CTATATGGGCTGGTTGCAGGGGTGGAGAGGGTGGTGGTAAAACCGGGGTTCAAACTCACA
-TTTGTTGATTTCATGGCcagtggtgatctcagatttcaatccccatcagaatcacctgag
-gctgcttattaaaaACAAGAGGTGCTGTCGCCTCTCGACACATGCGGTTGTTTTAACGTT
-TATGGTGTGCCCAGGGTTGTACGTGCATGAACTCAGAGATCTTCAAAAACTGTCCTGTGA
-GATCAGCCAGGgcttcccaaactgtaatatgcacacaaagggatttaactcagggatctt
-gggttaaaatgtagattttgatgctaaagttctggaatggggccagaggtgctgGCCCGA
-GAACTCACTTTAAGAAGCGAGGCGGgagatgctgttatcattcctcattttacggttcag
-gaagtgaaggctcaaagaccaacaattataggtggtggcattagatttaaacccacagct
-gatgaaaccccagactcattctactgtgtcacactgccTTACCCTGTTGGTCTGATGATG
-AACGTGGAGCGGGAAAATGGGAGTGATACTCAAAAGGGGCAACCTggccaggcacagtgg
-ctcacgcctgtaatcccagcacttagggaggctgaggcaggtagatcataggaggcccgg
-agttcgagaccagcctggccaacatggcaaaaccccgtctctactaaaaatacaaaaatc
-agctgggcgtggtggtgcacacctgtaatcccagctactcaggtggctgaggcatgagaa
-acgcttgaatccaggatgcggaggttgcatgagccaagattgcaccactgcactccagcc
-tgggcgacagagtgagacgctgtctcaaaaaagataagatataaaataaaataaaataaa
-aataaaataTCAAATGGGCAACCTGACTCCTTTCGCCACTCATAGGAGGGGCATTTCCCC
-AAGCAGCCTGAGTTGGGGACAGTCCCTGCCAGGCCCAGCATGGCAGAAAAAGGAAGGGCT
-GGGTTCATGTGTGCCCGACATGTGTGTGTTTGGGGGACAGGGGCAGGTATGTGCCGACAC
-ACGAGACCCCTGTCTAAAGGATCTGCCTGTCCCCACATTAAAGCATAGAGAAGGCCTGAG
-CCCCTGCCCTATGCTGGTCCTGCAGGGCTCGGCTGGGGCCCAAATCAGGGGTTGACACAG
-TGAGAACAGGCTGCTGGTGCCTGGCATCCCCCACTTCCCACCCCACATCAACCAAATCTC
-TGCTTCCCCATTCTCCTGGACCTGCCCTGGACCACATCTATTCTGCCCTCCATTAGCTAC
-TCATTAAGAGAAGTTACATTTGTGTTTCTGGTGGGAGCCCTGGGGGTGCTGAGCAGCCCA
-GAGCAACCACTGGTGACCTTCAGAAAAATCATATTAAAGAAAAAAGGGTTGTTTTTGGAT
-TCCTCATCATTCGGCAAGCTGTGCTGGGGGTAGAGCAGCCAGATGAGTTCGGGACCGGGG
-CAGAGAGTCTACCCTCCAGCTGGCTTCTCCAGACCCACCTGCCCAGAGCTAGTGCCCTGT
-TAGCCAGGAACACAGAACTGTCACAAAGCTGTCCTGAGCATGAAACTGTTACCAACCAAT
-CTGTCCGTGGAGTTGTTACAAAACTGTCTTGTGTGTGAAGGTGTCACAATGTTGTCAAGT
-ATGTGACCTTGTATAAGAAATTGTCATGCAATTGTCCTATAGGTAAAACTGCCATGAAGT
-TGTCAAGCATATGCAGTTGCCACTCATTTGAAAAACTACTGGAGAAGAGTTTCTTTTCTT
-TTCATGTATGAGGGACAGGTTTGCTGTGTGGGTGACTTTGAAAAAGTTGCTGACAGGCAC
-TGTGCTTGGCTGCTGCTCCTGTAATAacagcgcccggcacccagtaggtgctcagtgagt
-acttgccgaatgTCTCCTCAGGGCTGCAAAGTAGACTCAGACAGGTTCTGGTTCTTTCAG
-GTGCTGGCTTTGTCCCGTAGTGGGCTGGTCTGATGTGACCTCGGGTAGGTCTGTTGCCTC
-TCGCATCCTCTCTGAGCCTACTTTGGTTGTTGTAAAGTGCCCTGAGGCCTGTGTATGACG
-TGCCCAGCAATACTGGGGACAATAAATGCTGGCTGCTAATTCCCTCTCCCTCTTGTCGGG
-GGTTTATGATTCCTCAGGGCTCTTGATGGTAGCAGAGGCCTCTCGTGGCTCTTTGGGAGG
-CTGTGGAAGCTTCAGCTTTGGCTGAGTAGGACGTCTGCAGTGGCAGGACACCTCCAGCCA
-ATCAGGATGCTCAGTGTCACAGGGATTGGGGGCAACGCCCACCGCTACAAACCCAGGAGG
-CCTCCTCTGGGGAGGATGTGAGCTCCAGGATTCCAGGAAGGGTGGGAGGAAACCTTCTAA
-GGGGAGCTGAAAGCTCGTTGATTCCTAAGATGAGCCCGAGTGAGAAAGGTACCAGGTTTT
-GAAGTTTGTTCTGCAAACGACCTTCTTCACTTTTTTGTGAAGTCCTGCaatcaacagagc
-tcagggctaggaattaggacctttgctcctgtcccaccttggactcagactcattgtatg
-acctttggcagagcacctggagcttcCAAGGGGTGGCAGAGAGTTGGGAATGCAGTTTCC
-TATCGGAAAAGCAGAGCCTTGGTCTTGATAAAGAACTTTTGAACTTTTTCTTAGCCAAGG
-GAGCCTTCCTTTTTGCAAGATGAAATGTGACATGAGAGATCGATTCCTAAAATGAATGAG
-TTGAGCTGCTTTGGCTGAGGCCAGGATGGGGGTGAGGGTGAGCATCTTGAGCTGTCTTTT
-TGGTTTCCTTTGCCTACTTCTAGAGGCAGCCTCTGAGAGCTTGGATACCCCCTAAGGAAC
-CTTTGAACCCCAGAGTTCCACAGTGCTAATGGCTGCAAGGCAGGTGATATAATTTTGTGG
-GACTCTGGAGCCTGGGTTCATTCCCACACtagcttctctgagcattggttttcccgtctg
-taaatggggataacgactatgctcacatgttgtgacagtgtggtaagctggttttgtgtg
-tggcatgccaaaacagggtttggctgacatggggtgcacagcaatgtgggAGCTGCTAGC
-AGTTGTGGATCTCTTCTTTCACAGGCCAGACTGCCTcaacaatcctgcaagatgggtagt
-attatctggtcttgcggacaaggaagctaaggcacagagaaggtaagtaagttgcccaga
-tcccatagctggtgagtggcaaactcaaagccaggcagtctTAGTAACAGATAGTTATTA
-TTATTTTAAGTACTGGGGAGAGTCTAGGCCCCAGAATAGGTCCAAAATAAATACCCTCCT
-CACCTTACATAATTAAGCTCTAAGAAAGCTTAGAAATAggccaggcacggtggttcacac
-ctgtaatcccagcactttgggaggctgaggcgggtggatcatgaggtcaggagttcaaga
-ccagcctgaccaagacggtgaaaccccgtctctactaaaaacacaaaacacctgcaccag
-gtgtggtggtgcgcacctgtaatcccagctacttgggaggctgaggcaggagaatcactt
-gaacctgggcagcagaggttgcagtgagccgagatcatgccactacactccaccctgggc
-gacagagtgagactctgtctcagaaaaaaagaaaGCTGAGAAATATAATCAGCTCCCAGT
-GCTGAGAAGACTTGGGGCCCCACTGCCAGTGAGCATCAGGAAAGGGGGCCAGGTCTAAAA
-GTCAGCGCTGACTGAGGCAGGTCCTTGGTCAGTGTGTCCCTGCCAGTGTTCCTGGGAAAG
-CCCCAGTTCTTCTCAGCCAGCACCCTGGGTACCTGGAGCTTCCAAGGGGTGGCAGAGAGT
-TGGGAATGCAGTTTGGGCCTCCAGCCCAATGCTCCATGCTCCTTGCCCAGTAATCACACC
-TGGCACAAAGTGAGCATCTTCAAGGACCCTATTCTGGGTCTGGTCTCTCCCCATGGGCCT
-TCTTCAACACTCAAATCCTAGTAGTACAAGGGAGAGAGCCCCAGATGTGGACTcttgtcc
-agttctgtgtgtcctcaggcaagtgtctccctgtctctgggcttcagtttctccatctgt
-caaatggatggttaaactcagtgtttctaaaggcccACTGTTCACccatccatccatcca
-tccacccacccacctacccatctgcccacccatctatccatccccatccatccatccatc
-catccccatccatccatccatccatccatccatccacccacccacccatctatccatcca
-ctcacccacccatctatccatccatccatccacccatccatccatccaccaacccatcta
-tccatccaatcacccacccatctatccatccaccaacccatctatccatccactcaccca
-cccatctatccatccatccatccacccacccactcatctatccatccatccatccatcca
-tccacccacccacctacccatctgcccacccatctatccatccccatccatccatccatc
-catccacccacccatatatccatccactcacccacccatctatccatccatccacccacc
-cactcatctatccatccatccatccatctatccacccacccacccatcatccacccaacc
-atctatccgtccatccatccattcagcagatatttcttgaatatcatctatgtgccaggA
-TCCTTTATTTATTAAAGTTAAAAGACAAATCACAGACCTGTAGAAACATTTTAGAAAGAC
-ATACAAAATCATACTGGATTGGAAATGTAAATTTCCCCAGGACttttgttcaccagtgac
-tctccaatgccatgcatggggccacatgtctactaggtgctctgtaaaatgtttattgga
-tgtaagaatGAATAGGACATATTTTGCTGTTCTAAAGAGAGCTGCCTCCGAGTCTGAGAT
-TGGAGTCAGACATCCTCTCTAGGACTTATTGAGAGGGGGCCAACTATCTTTGTCACCCCC
-ATCCCTGACCTGCCCCACTGCCTCCCCAGCCCATATAAGCCAGTTTCTAAAGAGGATCTA
-AGGAGGATTGGCCAGCAGTGACTGGGGCAGGGTAGGGCACGGCATGCCCCCAACTCCCAA
-GCCCAGGTGGGCTCATGGTTTGGAGGGGAGAAGCTATGAACCAGAGGGAAACAGGCATTC
-CATCCCTTGATTGAACTCACTCTTGTTGATCTGCCCTGTGTCCATTGGGAGTGAGTGGAG
-AATGAATGAGAAATGCAAAAGGGGTGGGGTCTGGCAGAGGCAGCCTGCATTGCCACCATT
-TGACCAATTTCCTGTCAATTTCCTATATTTGGTCAAGTGGACATTGAAGGAGGCTCTTGA
-GCTTAATCTAAGCCATGGTTTTCCAGCCCAAAGGGGCATGAGGCTGTTGAAGTGGGGATG
-GGGTAGTGAGGAAGCTAGGGTGATCTGAAGAGGTCAAGCTCGTGCTCCTTGCTCAGTAAT
-CACACCTGTGTACCAATTAGGCACCTGCCACACGTGGGAGAAAGGGGAGGGCATGGATGG
-AGGCAGAGGAACATTTAGTCCCAGTCCCTCCCTGCTGCTCACTGGTGATGGCCCCAGAGT
-TTTCTAACACCGGGAATTGTGGAGGCCACAGCAGCATCAGGGTAGTGACAGCTGTCTCTA
-TCCCCATTCCTTCTTCTGCTCCCCAACATACAGGGGAGAAATCAACCCAGAGGGAGGAGA
-GAAGAGAATGAGACAGCATGACATATCTCCCTACAGGGCAAATCAGTGGAGTCAGAAGCT
-GAGTCAGGCAGTGATGGGGAAGCAGTGATGGGAAAGGAGAGCTTCAAATCAGACCTGTAT
-TTTAAAAATTCAGCACTGGACTAGGCTTTTTAATAGCTGAAAGTTACCAGAAAGCTTTGA
-GATCTGCCCAAAGTTATTAAGGATTGGAGTTTAAAAATACGACTGTGCATTGGGGGTGGG
-GGGTGGGGGGTGCATGGAAAGCATGCCATGTTTGTAACCCTCTGTTACAACTTCAGTATC
-ATCATTAAGCCAGTTACACACAAAGTAAGCCAAGAAtatccttaatacacaacgagctcc
-tataaatcaataagaaaaaggggaatgatccaagtgtgtggagggagaatgggcaaagac
-attacaaggaatttaaaaaagaaagacaaataggacaataaccatacgcaaagctgttct
-acttccctaagaattttcaaattgaagatgagaacaagaatgaaataccaccatgaccta
-caagatacggaaactgtaaaagactCCGGCACCCTCTTTTGAGAAGGCAATTAGGCAGAG
-TCTATTATCTGTAGCCTGAGGTAGTAACAGcattttacaggaagtgtcctgagttgagag
-aggggtaggcacttgttagaagccacacagtgagtcatgggaggggaggagctagaactc
-agacctctggaTGGGCACCTTTGATTCTTTATCTCCAGCCAGCTGGTCCTCTCTGTCTGG
-GCTAGTGCACAGCCTGGCCCCTGGCCCCTGTCTGGGTAGCCCAGGTCTGCTACATCCATT
-GCTGCACCCTGCTCTGGGCCTGAGGATGGTTGGGGCACTGCTATTCCAAATGACACATCT
-CTTATGATTACCCTGTCCTTCCTAGACAGGAAGCTTTCAATTAGTCCTGCTGGGCAGCAG
-CCTTAGAGGgtagaggtaggactccaaggtttgggatgagacaaacctgttctcaaatcc
-cagccccacctttactccctgggacagttacttaacctcagtttgctcatttgtaaaaGG
-AACACTGTccaggtgcggtggctcacacctgtaatcccagcactttgggaggctgaggtg
-ggaggattacttaaggccaggaatttgagaccagcctgggcaacatagtgagacccttat
-ctctatgaaaataaaaaaaaaaaattagccaggcatggtgatgcgtgcctatagtcccag
-ctactcaggaggctgaggtgggaggactgcttgagcccaagaggtcaaggctgcaatgag
-ctaagatcgtgctattgccctccagtctgggtgacagagagagaccctgtctcaaaaaca
-aacaagattaaaaTGGACACAATCACCCACCCACTGAAAAGCttgttccttccacagata
-tttattgagggcctactatgtgccaggcacttttcaaggcactgcagatacatcagtgaa
-tgagacagaccttcccctcatgaagtttacatcctaagtgggagagggagatcatttcag
-agaacgacagggaattgaatttgggtacacagagtggcaggagggagggcctgggctgcc
-tggaagggcatctctgagatacacaagaaagcactcttggcggagggaccagtgggtaca
-aaagcccagaagcggcaaagaacgtggtgtggaagagagcagcaaggccagagtgcagtg
-actgaggggagagtggtgggtggtgaggtctggaggcagaggggccagacccccaggaca
-catggatgagtttggatggtgctggattttcctggaagtgagttgggaagccactgtggg
-ttgcaagccgaggagtgtctgccaccttgaaagcttctctggtgctgaggggaatggact
-gtggggcaggagtagaagctgggagctcagggtgtatgggctgtggtcattctggtggcc
-tggacgaggctggcagctatgagaagtgggtggatccagggagggtggacagacaagctc
-tgctcatgggttATCATGAAGATTAAAGGGTAAGTGACTCAGTCCACAGTGCAGCACATA
-GCACATGCTAGACAGATCTTAGCTGttttatttatgtatttatttatttttgagacacag
-tcttgctctgtcactcaggctggagtgcagtggtgtgatctcgactcagtgcaacctctg
-cctcccaggttcaagcaattctcctgcctcagcttccctagtagctgggattacaggcac
-ccaccaccatgcctggctaatttttgtaattttagtagagatggggtttcaccatgttag
-tcaggctggtcttgaactcctgacctcaagtgatccacccgactcagcctcccaaagtgc
-tgggataacaggcgagagccactgcgcccagccAGATCTCAGCTTTTAAGAGGCCTAGAC
-CTAGAATCCCATGACTGTGTCTACCCCACAGCCTCCTCCATAAATGCCCCAAATCGCTTC
-TGCCTCTCCTGGTCATTGGTTCAAAATGTGATTCCTTGACCTCTTGTTGCCTCTTGACTT
-TTGCAGCTGCTGGGATGAAGTACTTGTTCTGAGTTCCTCTAGTTGCTATTTTAAGCAGAC
-TGCATACCCTCCGGCCCCCATCTCCCAAGCTGGTGTGAAACCCAAGGCAGTATCTGGGTG
-GCTCCCTAAGTCGTTTTCCAAGTTGAGAATAGGTAGTAGAGTCACCTATTCTCACAACCG
-TGACATTCCACCCAGTCCAGGCTCCCAGACTAACTGCCCAGCCCCTGGAagtagagagat
-gggaggcagcaccaggcagcagggaacccaggtttgagtcccagctctgccaccttgacc
-ctaggaaggccctttgacctctctgagtctctgcacctcttctgcaaaataggaatgatg
-atattaaagaattgcttgcagggtaaagtgaggtaataacctgcggagcacctggctgtg
-tgcccagctcatatggcaaacactcaccaggtaggagGATCCTAAGGTTGTGGGCaatgc
-atacaaagcctctggtgcattgtaggtgctcaataaatggtagGATGCCAGTAGGGAGGA
-GTTGAATGAGAAAAGGGGAAAGAGACCCAGTGCATGGTGGGGGTGGCAGGAACACAGGGA
-GTTGGGGGCTCCACCTTGGAAACCTCTCCTGGCCCTGGGGGCACTATCTCCACCAAACCC
-AAATCCAGGCAGCTAGAGGGACCTGGGCCTGCACAGGCATGGAAATTCTGCACTCACTGT
-TAGtgggcctcagtttcctcatccgcgaagtggaaaccataacccttcttaccCAGTTAT
-AACCTGGATTCTGGGCTGGAACCAAGATAAGCAGCTACAGGCTGTCCTACCCCACCCCCA
-GCTGGAGACGCGGGCCTCTGGGAGCTCTGGCCGATTTTCAAAGGGACCAGAACTGCAAAA
-AACAGAACTAGGCTAATGCTGGCtgagtgttcacagtgtgccaggacctgtgccacccag
-gtccttgtactaaatcattaaaacttgccataaccccacaaggtgggggctacacttact
-ccattggcagggatgagaaaactgaggctcggagaggtaaagggcttggcccaagcattc
-acaggaggagccaggaggaatgcaaaactgagcccagctcctaactACTGGAGAGGAGCC
-TGCCTTGTGGTCCGTCACCCCTCCCTGCCAACCCCTGCCAGCTGGGCTTCCAAAGGCCGA
-CAAATGCTATTTAAAGTCATACGTCTCTCAGGTCCCGAGGCACACCAGGGATGGACCCTA
-AACTGTTTGTGGGGGCAGACAGGAGTTATATCAGCCAAGTGAAGGCAGGAGGGGAAGGCT
-ACTCCAAGTGCCTTTAGTCTGGAACTGTTTGCATTGCAGGGATGGAGCCCTTAGTAGCAA
-CCTCCAGACAGTCAAAAAAGCTGGCTTTGCACACAAACATCCCAAGTGTATGTTttcctt
-cattctttctctttctcttttctttttccttccttccttccttctttccttccttccctc
-cttctttccttcctccctccctccctccttccttcctttctttttctttcttctttcttt
-cTCAGtctctctctctctttccctctctctcttcctGGGGTGGGGAGTTGTTGATGCAAG
-AGAATGAGATGATCCACAAACTGAACTGGTTCAGCCAAAGCAGCCCTCAGCCAGGGGCGA
-GCGGGAAGTGTAAGCTGTTGGCTGAGGATTCTCCTTGTGGGGGATTTTGAGCCCCTGTGG
-GGTGTTGTTCAAGCCAATGTCACTCGCCTCCAGGGGCAGGGAGTCTCCAGCTGATGTCTC
-TCTTAGAGGAAAATTCACTGCTGTTGAGCTTACTACCTCCATCAGAGTAGGGGAAAGGGG
-ACCCCAAGGACAGGGTCTGGCTAGCAGCACATGCTCCGCAGATGCGTGCCAACTGCAGGC
-TGTGATCCTAGGGCACAGTCAGGAAGGGGCGTGGACAGAGGAGCATTGTCGCAACTGAGC
-GTCCCACTAGCGTCCTCAGGAAGGCCCGAGGGCTGCTGCAGCAGCACTAACACTTGGAAG
-AATCCCTCGCGGGAAGGGTGGTCCAATGTTGAGGAGTAGCAGATCCAAGCTCACACTCTG
-GAGTGTGACtttgcttgtttattttaaaagaaggggtctcaccacattgcccgggctggc
-ctcgaactcctgggctcaagccatcctcccacctcagccccgtgagtagctgggatttca
-ggcgagagtcaatgcacctggcTCTGGGGTGACTTCTTGTAAGACCTTCTCATACAGACT
-TTTTAATAAGATCAGAAAACCCAGACCATAAGGCAGAACAAGCCCCCTCTCCCCACTCAA
-AAACCAATGGATTTGACCACACTGACAGCATGGTAAGCAATGATTTCTACTCTCCAAAGG
-TGaggactctacaaagtcagattaaaaaagattttttttgtgtcaaaatgaacatgggat
-tgatatctaggtaatacaaggaagccctacaaattgacaagaaaaattcaggaattccaa
-ttttaaaagtgggaaaaataaaaataaaatgtttaaaaagtgaaaaaataaaatttaaaa
-ttaaaaatcaggtgaataagaattacatgattaaaacaaatttaaacagttaaaataaca
-ttcaaaaacgaaattaagtaacaaaataaaaatttaaaaataaggtataaaaataaagtg
-taaaaatccattcaaataaaaaatacatttgtaaaataatttaaatacattaaaattaat
-aaaaacaaaaatgttaaaaataaaagtaaaatgtttaagtgaaataaaatttaaaaatgt
-aagaatacatgaaagaatttttacgagtaaaataaaaaatcagctatttttaacaatcta
-aagaataaagaaaAACTAATAGAAACATCAAAGGAGAGCAAGGTCTTGCTAGATGGATGC
-TGATGATGTGCTGTGAATTAAGGAGTCCGATTGGCTCAAATGCCTGCAGGGAGGCGGGGG
-AAGTGAATGACGGGGGTGGTGTAGGGAGTGAGAGGGGACGAGGAAGTAAAAGCATGCCCG
-CAGGCAGCATCTGATTCGGTTTTTCCAGCCCGCTGTGGGCAGAGGGCAGGAAGTCAGGCC
-CCATCATGGCTTCCCCCCAAAATAGCCATCACATCATTTATGCATTTGTAATGTGCTGGC
-AACATACGCACACGCACACGGATGCATGTTACATCATCCCATCCTCACTGCCCCATCCTC
-ACTGCTGTCCTCTGAGGTCCACTTTCttttttttttttttttttttgagacggagtttcg
-ctcttgttgcccaggctCTGAGGTCCACtttcatagaggagtgaacagagactcagagag
-ggtgggtcactgtgccacagtcacacagcACTTAGGACCACCCTATCCTCTGAATCTGGC
-ATGCTCAAAATGACCTTCTTTGGATGAGTTAGGTCTGCTGAGCACTTTCAAACAGAGGCA
-GGGCCATCTCTGACATCAGGCTCGAACGTTCTGTACACTAGGAAGAGCCCAACCTCTCCC
-CCCATGACGCATGACAGTTATCaccattaaagaaacactgactgtcttccaggggcgtca
-catgcatagtcatcttgaaaaccatatgaggtagatgctcttattgtccccattgtattg
-acagacaacatcgagattcaggagtcaaatactgtcacccaagcatggcagtaacagaac
-tgggagctgagcccaggactgtccacagcccaaatctcacactccctgcgtggcaccagg
-cCCTTTTAACCGTCATTGATGAGCACTCCCTATGTACCAGCAATGCGTTTGTCTATGTTT
-CATGcctcattttgcaaattagccaacgggggcacagaagggagagatgacctgcccaag
-gtcactcagccagtaagtggcagagccCACAGCCTTCGTGACAGCCTGCCAAGCCCCCAG
-TGCTCATCCGGGACTTGCTAGAGACAGCTGTGCCCACTGGCCAACCCCAGATCAGGCTCA
-GAAGGGCAACTGTGACATTCCTTCTCTTCATGTCTCCACCCTGGCGGATGTGGGCTCTGC
-CATCGGGCTCCAGGGAAAGTGGAGGCTTCCAGTGAAAGGGAGTGGTTTCCCCATGTGGCC
-TGGGTCCTCTGGGCTTGGGAATGCCTCTGTTTTGAGCTGGTGAAACAGAATTTCCCACCC
-CCTCCGCAATGGCACATCAGAGCCCCCACTATGGGCCACAGAGCAAGGGCCCTATGAATC
-ATGCTGCATTACTGCAAGAAATCATTCCAGGGCAGGCAGTGGCGGCCCAGCATGGGACAG
-CAGTGTCCGGGTGGAGTTGGCGTCACCCATCCGGAGATGGGAAGCAGACCATTCCCGAAG
-GGATCTGGAAGAATCTCCGAGGGCGGGGCTGAGGGCAAATGTGTCCTGGATGCTGCTGTT
-CCACCgggctaggaaaaaaagctccagcccacagagacctgggagcacatcacgaccttt
-ccccagcctggctgtgtgtccttggcaagttgattcccctccctgaatgtggaaggcctc
-atctgtagaagagggagaataatagggtcaagccacttcatggggctataatgtgggtAG
-CCTGGGAGGAGGGCtggcatggtggttatggactcaggctttggaatcaattgtctggat
-ggaatcctggtttttgccaaacttactctgccaagctgtgGggtagaaacatgaaattgc
-taatatttggctgtttatgacctagaaaaatggcaactgcatatacttcaaTGAATGTGC
-CTctcttttaactgcttcctcctctgtaaaatgtgggtaataacaggcccctcagagggg
-tgctgtgaggatgaaataagGCTgggaggcaattaagttcagtagttagagctgggctct
-ggggcaaggaaggatttgaaccttggctgagtggccttgggcaaagttacttaaccttcc
-tgtgcctcagttttcttgtctgtaaaataggaatgctactgcccactgcacaggtttatt
-aaggtaatttaatcaattaatacatacaaagtacatagaacagtgtctgAAATTGTTACA
-TAAAAGAATGCAGGTAACATCTGGCATCTCCTGCACCCTCATGTCTACTCACATAAATGC
-TCAACCACGAAACAAAATCCAAAGTGACTTTTGTAAACCTTTGATGCCAATGAAAGTTAA
-GTATTTTTAAAGAAAAAATATGTTTTGGGGAACATACATGTGTGTAGAGATGTAGGTGAG
-GAGTGTGCTCCCCAGGGTCCACCCCCAGGGCTGTTCTATGTCCTGATGGTGCCTATAGCC
-CAAGACTCTGAGGACAGGACTAGCCTTGAGGCCATGATGGCCCCGTGGCTTGGTCTCTTT
-CACAAAATCACACAGCCAAACCTCAGACCCTATGGAGAGGCTCCACTTGCCTAGGTAACT
-CTAGAGGCCCTTAAGAGGCACCCAGCCCTGGGCTGGCCTCTGATTATTAAGAAATTCCTG
-CAGACAGCCTTGGATGTGCGAAAGCCCTCCAGCTTCCATCCTGTCTTAAtttttttttag
-acgaagtcttgttctgtcacccaggctagagtgcagcagtgcaatctcagctcactgcaa
-cctttgctttccaggttcaagtgattctcatgcctcagcctcctgagtagttggtagttg
-ggattacaggtgtgcactaacacacccagctaatttttgtatttttagtagagatggggt
-ttcaccatgttggccaggctggtctcgaactcctggcctcaggtgatctgcctgcctcag
-ccttccaaagtgctgggattacaggcgtgagccactgcgcctggctCCATCCTGTCTTCT
-GACATTTGTCCCAGCCCTGGGAAAAAAGGCAAAGCACACTGAGCATTTCCAAGTCACGCG
-GGGGGAAACTGAGGCTCTGAGAGGCTCTCAACCTATCAGGCTCTGGAGCAGGCTGCCTTC
-CTCTACCAATTCAAGTTTTGCCTTCACCGCTAGTCTCCTgaaccctcacttctactcaca
-gctgggtgaccttgagtaaggtacttccctgcttgagtctccaattttacaaggattggt
-ctcaaaggtctcacttggcctttttggccttatcacttcattattctaGAACCCTTCTCC
-AGAATTTCAGAGAGAAAATGAAAGCTGAATTGCTCTGCAAACTATAAAGTGCTACACAAA
-CAAGAAGGTGGTTAATGGCAGCATTAGATGGGTTTTCAGAAGTCTACCGTAGGCAGGATT
-TGCTGTgggttttggaattaagaagacccagctcacacatgtatttgcgacgttactttg
-gataagccagttcccctctctgaaccaacttccctcttctgtaagctggcggtagaggca
-tatccaccaggcaggactggggtgaggaccaaaggaaaggagcgtgcaaTGTCTGCCACG
-CCCTGGCCGAGCAGAGGTGTTTGATGCAGGAGGAGATTTAGGGCCCCGACACATCATTCC
-ACCTTCCAGGAGCTAAAATCCACACACCTGGGGAATGATGTAGCTGTCAGATTCAGGGCG
-ATTAGAAACAAGCATCTGAACTAAGGCAATTGTTTGgagctccagagacagactctctgg
-gcttacatcccagcacccctgtctgttgctataccacccactgggcctcagtctcctcat
-ctataatataaagatcctcctggaatctgccccttacagctgtcaggagggcctccatta
-ggccatgactgaaaggggctgagcacagAAGATGGGCTCAGCTGGTCCAGCAGCCTCCAC
-ACTATTTTGACAATGGTATCAGTAGACACAGTAGTacacacgtgcacatgcatgcacaca
-ctcacatacatccacatatatgtgcatgcacactcacCCactcatacacccattcacata
-tatgtgtaaactgaaacacatttctcaaaataatagttttcacacttgcaatgcactctg
-atatattctaaaaaggaggttggcaaaaatcgcagcctctggaccaaatttggatgtttt
-tgtgttgcctgtgagctaagaagagtggagtacatgacagattgtatgtggtttgcaagg
-cctaaagtatttactatctgacccttcgcaaaaaatgtttgctgaccccactctatttta
-gtcagtgctattccattccgttctgttccgttccattccattccgttaccattccattcc
-atttcattagaaaatgctggctattgctaaatttattgtcctcacctgctgatgcattgt
-aaacctcagcttggaaaacTTTAAACTAATGGGAGCTTCAGTTTTTTCACCAGATGGGAG
-GATGGATGAACAAACCGTATCCATGTGACACCTTAGCCAAGCAACCTCCCCTCTTTGTCT
-TGGATTCCTCGGCTGAGGCTGAGACCACCACCACCAGCCTGCTCTCAAGGGTGTGTTGAG
-GTGCAGCCTCAGAGGTCTTGTCCATGATGTTCTCATTGACGGATCTCaagagcccaatag
-taaatactttaggctttttgcaccacatacgatctgttgcctattcCAGTATTCTTAGCT
-TGAAGGCCATACAAAAATAGTCCTGTGGCGGCAGAAATGGAGGAACACCCAtctctgctg
-tccttttcaatacccagcccagggcctggcccacaggaaggacccaataagtatttcttC
-ATGGTGATGGTGACTGGAGAGTGGCACCCAAGGCCCTCCATGACGGGACTCTGGCCCAAT
-CTGCAATCAGAACTTCACTTCCTTCGGCCACGCAGTCCCTTGTCCCCTCCACCTGGCCAC
-ACTCTCTCCTCATCCTGCAGAGGTCCTCACCTTACTGCCACCTCTGCCTGACAAAATCCT
-AAATCCTACTCCCCCCGATGGGGTTCCTCTCAGACACTTACACCTTGCAGCCCTGGCAAA
-TCACTGGCATGATTCATTTCTATATCTATTgcacgggcttcggagcctccaaaactctgg
-gtccaggtcctggctcagcagctgtgagctctttggcaggccattgatgctttctgagcc
-tcagttcccgtgtctgggaaataggcataacaCAAGGCAGTGGCAGAGTGAGGACGCGCA
-GCCCCACCTGCACAGCTCCTGGCACATGGCCCGCCTCCCTCCTTCCTCAGTGGCCTCAAT
-CTCAGTGGCCTGAATCTCCTTCAGTGGCTGGGCAGGGGGGTTGGATGGTTTCCGTCCACA
-GGAGAGGGAGGTGGGGCCCCCCGTGGTGGGGCAATGGGATGGAAAAGCAGCATCTCTTTT
-GCACCCAGGCTTGGCTTCAGAACGCTGAGTGGAAGAAGGATGGCAAATGGAGCTCAATTG
-ATTGACCACCTACTATCTGCCAAGCATTCAGATTTCCATTTCTCAACCAGCCCCTATGCT
-ATGAAGAAACCGAAGCCGAGAGACCCAAGGTTACATTCTATTAAGACTCAGCGCCATTCC
-CTCAGCCCTCAATGTCCAGTCATTACCCACCCCTGCCCTGTAGGAATCCCTTTCAGAACT
-ACCCCTGCATCTAAACCTGGCTTCACCTGGATGCCAGCACTCAGGGGACATACTTTGTTC
-GTGCCCAGCGATGGCGCCTGCTTGCCCAGGGCCTGGTGCATCTGTCTGTGTACAGGAGAC
-AGtgctgtctgcctggccctccacaaggggctttgcaatttaaacggaagcatcatattc
-actccacataacaggcctctggagtgggcactgccacagtcaatttacaataaagaaaaa
-caagctcagagagaggagaaggtttgctccggatgcaccacaagcaagaggcagaggtga
-gcttaacccacgtgagaccccactcccttccggtccagggcatgtctgctctgcTGTAAA
-ATGGGAAGGGAAAGTGGTCAAATCCttatgaagcccctactgtgtgcctttggccccctt
-ccctcttggactgcagtaaatcttcccaattgctcagagaggtaggtgtaagttttccca
-tttcacagatggggaagcacggacgggagaaggcatgtggcctgcttaatgtcacatatc
-tagggcaggagagggctcaaggtttgatcccagggctcttcactTTGCCCCTTGCTTGCT
-CAGGTCTAGAAAGATCCAGAAGCTCCATGTGAATGTGGGGGTCCCTCCCCAGAAGGCCTT
-GGATGTCAGGGAAAGTCAGTCACAGGCTGGCATCTCCTCCTTGCCCAAATGGACCTCCAG
-ATCTAGGGATGCGAACCAGGGCCCCCTCACTCTGCCCTACTGTCCCATTGCCAGGACacc
-ccagcatgtttcaaaaaaatgtccccatctggttctgattcatttacacttcattaatca
-acatgctgttttgtaagagacacttgagatccaagaatctttctcaagtcttttacttca
-ttctttcttagaaacagaaaaattgggcttcattaagaCGCAGTGACGCCGGAGCCTGAG
-GAAGGATGGGCCTGTGGGAACCAGGCCTCAAGCAGGCTCAGAGAGGGCAGATGCCAGCCC
-AGCACCTCATTCCTCGGGATTGTGCAGACCTGGCCAAACGCTAAGGCCAAAGACTCAGGC
-ATGGGGGAGGCTGGAGAAAGGTGGGAAAGGGTCATccctctatgttggcagctccccaag
-gacaggcccagggctgctcacctgggtatctccaaggtccccaacacagagcctggcaca
-gaggctgccctgtgaaatgaacaagtgaatgaatgaaGCACTGCCAATACCCAGGTGTTT
-TCAGGACACATTCTCCTGCCAAAGTTAGATAAGGTCAAAGCTGGTAGGACCCTGAGGGAT
-TGTGTACAGAATTTTCCAAGCAGATGCCTTATGAGAAATGGTCTCTGATGTGTAATATGT
-TTGGGAAAGGTCACTCTCTCTCGCtctctttttttttttttttttttgagacagggtctg
-ctctgtcgcccaggctggggtgcagtggcacaatcacggctcactgcagccttgatgtct
-ttcctgggctgaagcgatcctcccacttcggcttcctaagtagctgggactacaggtgtg
-caccaccaccaacatgcctggctattttttgtatttttttatagagacaaaaaatgtatt
-ttttgtagagttttgccatgttgcccaggctggtctcgaactcctgagctcaagctatcc
-tcccatcttggcctcccaaagtgccaggattataggcttgagccatcgcacctggGTTAC
-ACTGTCTGTCTCCACCTCTTCAGCATgctctgataagtctcacagccaagaaatctgcta
-aacccagcatttcccaatctatttgaccagaactCCTGTGGCTGCCTTGCAAAATATGCT
-ACAGGAAGGGTTTATCTAGCTCTGGTCCCCACTGCAGTGCCAGTGGGAAACTGAGGCTAT
-GGGCGGGGGACAGAGAAAATCCACTCACCCAAGGTCACATGATACAACTGGGTCAGGGGT
-GTGACTGAAATCCAAGGCTATCTCCATTGTACCCCAACAAATAAATGGAGCCCTAAGCCT
-CTTCTGAAGATGCTAGGCAGGTGTGTGTCCCAGAGGCAAGAGATCAGGTACTGGAGGAGG
-GATGCTGAGAGCCCCTCACCAAATTGCGGCCATATCCCTACCTCCTCACTGAGCTCCTGG
-GGAGGTGGTGGTGAGCTGTAGATGGGGCGGGGGGCAAAAGGGGCAGGATAGGAATTTTTC
-ATTTTTCTTTAATTTTTTTGTCTTTTTTgagctgagaagcatcttaaagtcttctaaacc
-agctcctttttgttgttgttgttgttgttgagacagagtctcactctgacacccaggctg
-gagtgcagtggcatgatctcggctcactgcaacctctgcctcctgggttcaagcgactct
-cctgcctcagcctcccaagtagctggaattacaggcgcccgccaccacacccagctaatc
-attgtatttttagtaaagacagggtttcatcatgttagccaggctggtctcaaactcctg
-atctcaaatgatccgcctgccttggcctcccaaagtgctggtattacaggcgtgagccac
-cacacctggcctaaaccagctcctctttagatgaggaaactgaggctctgagaagggaag
-ACCAGCACACCTCAGAAGATATCTTCTCAGCATTATgtcaggcagattgggattcgagcc
-tgctttgctactcacctgctgtgcgaccttggacaagtcagtttccttctctgaacctca
-gttccctcatccagaaaacaagcatCTCTCCCCTCCCTCCACTAAGCCACTGTGAGTAGC
-CAAAGACACAGTGGACAGGAAATGAGAATGATTAATACTTACGAGCACCCATTAGGAGCC
-TGTGTCCTTAGCTACTCATCTTGCCCACAATCCTCCTTATGAGCAGGATACTTAAGTAAA
-AGATGGGTTGATGAAGGGAAAGGGGGTTTGTTTGATTTTTTGGTATTGTttagaatggag
-aaagatctcagagatcttctaaaggaccctcagatgggtaaagtgaggattggacaggca
-aagtgacttatccaaagtcactcagttggtaactggggaagctgggatttgaactcagtt
-gacctggctccagagcccatgcccctaactactaAACAAAGGCCATTCACAAAGGAGTGT
-CCCCATAGAGTCCCAAACTCACCCCAGCTCAGCTGAAAACCACACGCCTCTCTAGTCCCT
-TGTCCCACTGTCACAGCAAGAACTGGAGCCTCTTGGGCCACAGTCTCCCCAACCCCATCC
-AATCCCACCTCCCAATTCTCCCACAGCCTCTGTCTGCTTCCTGCTCCGTTCCAGGAGTGA
-CTGTGTCGCTGTAGGGCTTTCACACAAATGGAAGGCCCCAGAGGGCAACCCATCCTCTCT
-CATTTTCCTTCCCCTTTATCCTTGCTCAGACCCGATGCCAGGGCTGGAAAGAGAGAAGAC
-accagctggacaattcagcagttatttaaaccagtctgagccttggaatcccaggcttta
-ttaaaactggacgacccctatgtcatgagcatatagttgggatttgatgagctaggacat
-gaaaaacccgtggcatagtggctggcaTTCGGCTGCTGATCTTAAGAGTGGCACCTGGAG
-GCCAAAGGGCTGCCCAGCTCAGGCAGGCGATTTGCTCACTTGCTCACCCGCTTACCCTTC
-TCTGAGGCACAGGCTCTACCAACTCCTGCTCTGCAGGGACAGCCTCCAACCCACCTTCTG
-AGGATGTTCTGACTCTCACAGCGAGGCTGTGGCATAGGACTCCCAGGTGAGAGCGCATGC
-GGCCCCTGGTACATTTATAATCTGAACCTTGGCTCATCTTCCTAGTGGCCTGAGAGGTGA
-agatggaaaagctgaggctctctgaggggctggacttcttctaggtcatcccctattaga
-ataagtgaacctgaactcaggtctcaggtctggctgaactcaaCATAGGGGGGCCATGGA
-GGATCACTGCCCTCTGGGAGGTGACACCAGGAGTCAGGGTGAGTGATGAGGCTGGGACTG
-GGGCCTCTGGACGCCCAGCCCAAGGCTCTCTATGTCACTTCCTGGCCGAGCATGGATGCT
-TGGAATGGCTTCTACGCCACTGAGTCTGTCTCCTAGTCCCTGTGCCCCGCAGGCTGGCTC
-TTGAGTCTTCTGTCTCTGCACGAAGCCATCCTCCTTTCTGCTGACCATGCGGCTACTACA
-GAGAGCCCTGCTACCCTCTCCCTTCTGGGTGAGTCTCCTTGGCCCACCCTACTCAATGGC
-TCGCTCACTGGGTGCCCTGGAGCCTCAATCTCCCCATCTTAAGTGAGGTTGAGACTCGTC
-TGGAGGAGCGAAGGACCCAGGGCGCCAGGCACCAGGCAGATGCCCCCAGAGCCGCCGCCC
-CCGGTCCTCCGGCCCCCGGTCTGCCCCGCAGCGCCTGCCCGGCCGCCCTGCCCAGCCACC
-CCTTGTACCTTGCTTCTTCCTTCGGTTCAGGGCGAGCATGTCCACGGCGTGGGCGACGAG
-CAGGAGCAGGCAGAGTGGCGCCCGCATCTGGGCAGCCGGATCCGGGCTGGCGCTCCCCAG
-GCGGCCCGACGGCCCAAGGGCCCCACGTcccggcggcggcacggcgggcgcgggggcTGC
-TGTGGGCGCGCCGGGCGCATCCGCCAGGCGCGGGTCGGTCCGGCCGCCAGGTCTAGTGAG
-GGCGTTGGCGGAGCCGGGGCACTGCCCTGGCGGGGAGGAgccggcgcggcgggggcggcg
-cgTTAACCAGCTcggggcccgggagcgcgcgcggggagggggcgggggTCACCCGGGTCG
-GGGCCCTCGAGTTCGATCTGTCCCGCAGCCGGCGGTCTTGCGTCTTTCCCGCCCCCAGCA
-CTGCCCCCGAGCACGTGCACGTGCCCACCGCCAGCCACAGGTACGCACGCGCGCGCAGGT
-ACAGATGCGCGGACACCCGGAGACCCGTACGGTCCCCCGCGCCCTCTCAGCGCCTGTGAT
-TTTCTTTCCCTCCCCCCAGTCCCCTTTCTCTGTCTGTTCCTCCTTCTGGCCCTTAAGGAC
-AACTCCTTGTCTCCTGCTTTCTCGGTCTTTCCGCGGCCCGCGCTCCCCTGCTCTGCCCCC
-GACCCTGCCTGGCTGTTCCTGCATCCTTTACTCTTGCCGGCCGTCTCTCTCTCAGGCTCA
-CTGTCTGTGTCCTCCTGGCTGGGCCTCTGGTTCTCCCTTTTCTCTGTCTCTCCCTTCAAC
-CCCATCTCTCCCCTTCTCCCCTCCTGCAGGGTGGGGTGTTTGCGGGGCTCCTGCTGCCTG
-GCTTTCTCTTTTTCTCTCTACTCTGTCTCATTCTTTTAACAGAGGCCTGAGCCCCTTCTG
-GCCACTAACCCTGAATGTTTCCTGTGCAGTCTGCGGGGATCATCTACTCCGACTCAAAGT
-GACCAGCACCTCATAAATCCACTTGTGACAGGGCTGGGGACCTGGACTGTGTTTCCTCCA
-ACCTTATCACCAGGACTGGGAGCAGCTGGTTCAAGTTTAACCCTTTCAGAGCAAAATTCC
-TCCTTCAACCCGACAGCATGCTCACCTCTCCTGTCACTATAACCACCAAAAACAACAACA
-ATCATGCTagctatcatttgtgaggcatatatggtgggcattgctaagaacttgacatat
-actagagtcttcaaaacaacccaatggtttgggtttgtattctgagtaattccacttttc
-tggggagcaaagggaagctcagagaggccaagtgacttgcccaaggccacacagcaggtc
-agtggcCATTCTGGTCCAGTGCCTGCCCCTCTTAGCCACTTCTCAGGCACAGACTCATCA
-GAATGGAAGAGGCCTTGGAGGGAGGCCTAGAGAAACTTACAGTTGACACTCTCTTGCTGA
-ACAATTGTCCTTCCtttttcttttcttttttttttcttttttttgagatgggttttcact
-ctgtcacccaggctggagtgcaatggcgccatctcggctcactgcaacctctgcctcctg
-ggttcaagtgattctcctgcctcagcctcccaagtagctgggattacaggcacctgccac
-cacacccagctaatttttgtagtttttagtagagacggggtttcaccatgttggccaggc
-tggtcttgaactcctgacctcaagtgatccacctgcctcagcctcccaaagtgctgggac
-tacagacgtgagccaccccacccagccTGTCCTCTTTTTTCCTACATGTGGAGCTTGCTC
-CAAAAGAAATGGAAGGTAAATGCTGGTATCTCCTCCAGCTCCTTCTCCCAGTGCAATGAG
-GGACACTTGAAGGCATGGCAGGGGCAGGGGAAACACACAGAGAGTGTGGCAGCTGAAGGT
-ACAGCCCTGGCCTGGCCATTCTTTCTGTGGGGCCCCAAGAACGCTGGCAGACAACACGGa
-gaacttggtggaatgtcagagacagcccacccaaagtgctccatttcacagatgaggcca
-ctgagccttcaggactggggggtgcctagattaggccacccagtgagtcaaggactgagc
-tgacatgggcatccaggtgtccCATTGTGgtcatcaccatggcctgcaaggacctcttgt
-tctgatatctctgatctcagtctttcccactgccccacccctctctctttagccttagag
-atttcagcccttgaatatttcacaaacaccacaggcctctcacacctctgagcttttcat
-gttgtggggcctctccatggaataccatcctatatcctacctccttcttcactgcctctg
-ctccaggaagccttccctgattctcaggccaggtccagtgcctcctctgggcatccacaa
-tctctttatcacagctctgatcacatcaggtggtaacaatggatgtgtctgttctccttc
-caaactgccatctctttcaagccagagccagacacacagcggtgctcagaatgtttgcat
-aatgagtgcataaataaatgaatggtgaatgaatgaatTCTCCAGATGCACAAGTCTCCC
-AGCCTGTACATGGAATGCAGGTACTTGGAGAAATGAGGTGACCCCAGAAGATCAAGCCTT
-AGGAAAGCGGAGGTCATTCCCTTCCCCACTACCCCCAGTACTGGAGTCTCCAAAGTCCAA
-AGGGGACAGCTTCCATGTGAGCAGGGCCAGAGAGGTCCAATGTGCATTGTGAATTGacag
-ccagccacacggctctgcaggatgaagctgcttaccccttcttgaattttttcccctatt
-tattccccactgcctctgctctagctagcctcgtgtttctcagactcttgtcactcatcc
-tgcggtttttgctgttctctctgcctggaaagtctttccccagatttggggcttgtctcc
-cctcgatgttgcctcctcagagaggccccctgtgaccactccagtaaaacgcaccaccat
-gcactttatcctcttgtcttgctttaccctccgtagtacctgttcatgtctgtcagttcc
-tgtttgcttgtttgtgagttccatgaggacaggaatcttctattttgtccctatgtgcct
-tacactgcagtgattaagacatacttgtggaatggatttttttaaaaaatgagtgaatga
-atAAGCACTCATTCATccatagattcattgtgggacctcaagtactttctgttctcttag
-gctcaatttccccagttgttcaatggcacagatgggattttgtgttctgtgagagcccct
-ttagtgcttccagaattggatatttctagggttcTAAGGCCCAGAACTCAGGGCCCTTCA
-TACCCCAAGATGCTCAGAGGGTGTTTGGTTCTCTAACTATGGGGGCTGTCTGGGCATCTT
-GGCCTGTTATCCAGTTCCCCTACCCCAATACAGGTGCCCAGGGAGGCTAGTGATGCTGAT
-GGCATGCTCTGGCGGGGGGCGGGGAGGGGTGCACCCAAGGGTGTCAGTTAAGGCACCATT
-GTCACAAATAGATGAAGACAGGTATAATGGCTGAAACACACTAAGCTCACAGCATGTGTT
-CCTGATCAGCAGATCCTTCTCTGTGGGATAGCAGGAACTCAGATTCCTTTCAGCTTGTGT
-TCTGCCCTGTTCAGTACCTGGTTTAAAGCTCACCGAGaagggcagggcttatgggaagta
-cagagcctgtctacctatgtcccattggccagaactcagacacacggccacacctacctg
-caagggtgactgggaaatgtagtccagccatgtgccagacaacacacaggaggaaaagca
-agaatttggtgaacatctggccCATTGACCAACGTTGGgccaccctcatttcttgcccca
-gtcatgcagtagctccttcctgtgtctgctctgacccctacaagctcttcttaagcagcc
-agagGACATGTATTATTCATCGGGTGAAGACCAAATTTCTCCTCAGAGATGCAAGGGCTA
-CGTGATGGCCCCTACTAGGGGGCCATCTGCtagggtgaccagctgtctggtttgccaggg
-attgaggggcttcctaggatgCAACGTTGACCTGTGTGTAGCCTTGtataatacaaccac
-aatcaagatatttaaacatacttaaacaagatactaaaacatcatcacaagactccttca
-tggtatccatttatggctccaccctccctctccacttccagtcctaatccctagcaaccg
-ctaatctgttctccatctctgtaatgttttattttttgagacagggtcttgctgtgtcac
-ccaggctgaagtgcagtggcacgatcatggctcactgcagccttgacctcctgggctaaa
-gcttctcctgcctcagctgtgtagcctggactacaggtgcatgccaccatggctggctaa
-ttttttattttttgcagaggtgaggtttcgccatatttcccaggctggtcttgaactcct
-gggctcaagtgattcttccacctcggcttcccaaagtgctgggattataggtgtgaatca
-ccacgcctggcctcccatctctataactgtttttacataaatattgtataatggagtcat
-gcagtatgcatctttttgagatttggctttcttcactcagcacaatttgtttggagattc
-attttagttttgcatgtattagttatttgctttttactgctgagtagtattccaccgtat
-gaatgtaatatagtttgtttaaccattcacccactgaaggacatttgggtattttctagt
-ttttcattattaagaataaaggtgccatgctcacttgtgtataggtttctgtgtatcctc
-tttggtgaaatgtctgtgcatatctttcacacattttaaattggatttttacattactat
-tgtgttttaagagttctatgtatatattctatatagaagttctttgttggttacgtgatt
-tgcaaagcgtgagatttatgtcaaggttcattttgtatttttgtttatttttttatgttt
-ttgtttgtttatttttatgttcgtttttaatttttgtttatttcgaggttcattttttat
-ttttcgtctgcggatgtccaattgctccagtatgctttgatgtaaaagctttatcaaaaa
-ttaattgggcatattggcatggatttattttggggctgtctcctgtattccatgggctat
-gtgtctttctgtctaccaatactacactgtactgattactgtaactatataataaatctt
-gaaattgggtagatggatccttcccactttattcttctttttcaaaattattttagctat
-tctagttcctctgccttttcatatatattttagaataatcttgtttatatctaccaagaa
-tcttgctgtgagtttgattagaattgcattaaacatgtatatgaatttgggaagaattca
-catctttactatattgagtctttcaatccaaaaacatagtatgtctctccatttgtttag
-atcttctttgacttttttaaataaatgttttgtcattttcagcatacaactcctgtgcat
-gttttgttagatttatacctatttccttttttctcccttagaaattatacatggtattct
-attttaaattttgctgtccgtgtgttcattgctagcagatagaaatacaactgatgttcg
-tgtgttgatcttgtatcctagcaccttgctgaactcatatattagttctaggagtatttt
-tgtagatttttttgggttttgcaacattgacaatcatatcaactgcaaatagcgacagtt
-ttctttccttctgatcttgtgccttttgtttcctttacctgctttatcaaacttgctaga
-acttccagccatatgccgagtaagtgtgatgagcatagacatccttgttctcaatcttgc
-ctggttcccaatcttagtgggaaagcattcagtcattcactatgacattagactgtagga
-cttttgtagacactctatatcaccttgaggaagatcctctctattgctacttttctgagc
-attttttaaaattatgaatggctgttgaattttgtcaaatgtttttcctgcacattggta
-taatcatttaatgtttattctttagtctactgatacgatgtattacattgattgattttt
-aagtataaaaccaacctttcttcaatggaataagccccacttggccatggtgtaccattc
-tccattatatactgctgaattctacctactaatattttgctgaggatttttgtgtctaaa
-tccattaagaatattggtctatatttctcttttttgttctgtctttgtctggttttggta
-gcagggtaatgccagccccagtagcaccagaagaacaaggcttactagaatagaattgca
-agggttccaggccaagtgcggtggcctatgcctgtaatcccagcattttgggaggctgag
-gtgggcggatcacttgaggtcaggagttcgagaccagcctggccaacatggtgaaacccc
-atctctattaaaaatacaaaaattagccacgtgtggtggtgcatgccagtaatcccagct
-acttgggaggctgaggcaggagaatcacttgagccctggaggcagaggttgcagtgagcc
-aagatcgtgccattgcactccagtctgggtgacaagagcaagactcctctcaaaaaaaaa
-aaataaataaataattgcaagggttccaacaagtttactgtcattggacctaaagcccac
-aaaagtaaacgagaactcacatgctacatttaaacagggaaactgctgcctgctaaacta
-aagtatgaaataagacctgaagttccaactgatgctaatactaaaatgactcagatgttg
-aaattgtctgacaaggattttaaagcagtcatcataaaaatgctttggcaaggaattatg
-aaatctcttgaaacaaatgaaaacagaaaatctcagcaaagaaatggaagttatataaaa
-ggatcaaacagaaattttagaaatgaaaaataccataactgggggaaaaaactttgctaa
-tggactcattagtacagtggagaagTTCAGtgatggacaaataccccaactctctattga
-atgggcaggatggccggacacataaaacatgccacgctgtctcctgccacaattccccag
-ccctgccatgctgacttcagagggactgagcttcagttgcccacggtgctgtctgggtaa
-cctgtccttcatgggctgcctgcccttcctgtttcactccttatgctccatgctatgctt
-cttgggatcaattctcaaatcaatttcttgaactcaaatccttgtctcagggttggcttc
-tggcaaccccaaaccaagacTAATTCTTACTAATTCTCATGACAACCTATAAGGTATTAC
-AGGTAAAACATGGAACAGCACCTAACCCAGAGTAAGTTCTCACTGGTAACTTTCATGATT
-GGTGCCTCAGTTTTGTTATGTATAAGACAGAGGCATCGAACCCCTCACCCTCTTCCTCTG
-GACTTCTTCTTGTTCTCCTCTTAAATCAAAATCTCTGCAAACCCACCTTTGTTCTTTGTT
-TTACCTGTTCTTTCCCAAGGGAAGGCAAACAGCCTTCTCCCTGTAGGATGCTCAGGCAGA
-CAAAGGAGCTGCTTCAAGCCAGCGCCCCTCCCTCACCAACCCCAGTGGAATCCCAGCCTC
-CACAGTCAGTTGGGTTGTTGTTTTTTATAATACCAGTGTGAAATAAATTGAAAAATTACC
-CATAAAATACAGGTTTTCAGCAGCTGGCCTGAAATTTCTTTCCATAAACAAACAAGTTTA
-AAGAGATGCCTGATGCCACCCGCCAATCCCAAACTTTTATGTCCCCATGTGGCAGTGGGG
-TCTGCCGGGAGATTTGGCCTCCTGGGCAAAGGCAGGCTGCTGGGGGCCACAAGTCACCCC
-TAGGTCTTTGGGGCTGACTTGTACTTCTCAACCGTATCTGTCTGCTCCATGAAGAATCCC
-CCAGACTCATCCCTCATCCCCCAGCTCCTACACTCagcatagacttgggagccaaactgc
-ctggatttgaatcagagatttccacttattcagtgtgacttcaagcaagttacttaatct
-atctctgcctcagtttccccaactgataatgctgataatagtagtacctacttcatagga
-ttgtttgtggattaaattagttaaatatacatgaagttcttaggacatggcacaagacca
-tgctgtataactgttagctattattAGTCGTCCAGGAGGAAGAAAAACTAGGATGGAAGC
-TACAGCAGGAGGCCTAGTGACATTTTGATTTTCCCACAATAAGCTTTCTCTGGAGTTTCC
-TTCAGGGTGTTTACATAAATGCCTGTCCAACACTCTgcagtttgcaaagcttgctacatc
-tgctatctcatttggatcaacatttaagccatggaaggagttaggacagaggttgtgatt
-atccccattacccctagtttacagaagaggaaactgaggcccagtaggtgaattgacttg
-ctcatgatctcaagaaggggtagagccaggaCCCCATTTCTGTAGCTTGAGGATCCGGGA
-CGCATCTTGATTCTTGTCACACACTGAAAGCAGGTCAGAGCCCTCCTGATCCTGCATCGC
-ACACTGAAGCTTGAACCTCATCCTAGACCACAACATAACCCTGGTCTCAGGTGGGGCTCT
-GACCCCATGCTTGACCACAGACTGAAGCCCAGATTAAGCCTCAGTATCGGTTTGAGTCAG
-AACTCTGAATCTCGCTTCACACTAGGCCCTGACTCCAGCCTCAGACTGATTCCTGATCTT
-TGTTATAGGCTGAGTCCTAATCCAGGTCCCATATTGACTCATGATCGTGATTCCACACTG
-TGCCCTAACTCTGGCCCCAGACTGAGCCCCCAGTGGGAGCCTCTAACTTGGAACTCCATC
-TCTAACCCCATCTTGAATCTTTTGTATAAATCCAATTGCCCATCTTCCCCAGGCTTTGGT
-CCATCTACCTGAAAAACAGAGTAGGGAAGAAAGTGCTCAGCACCCTTTGGAGAAGGCCCA
-GGCACCAGAGCAGAATTTACAATCCACCACAGGAAGCAAGACCCTCATCTCATCTCCTGT
-GTTTGCAACTTCCTCCAACTCCACCCCAGCTGGGACAGCCTCAAAGACCCCAGTCCTCCT
-GACGCCAGAACTCTGAGGAGTTCTATTGTTTAGGTGGTTTTCGGTTTTGATTATTTAATA
-CAGTCATTTCTGGTTTTATATTCACAGCTTTGGTCAGCTGGGATAGGGTTTTTCTTCTTC
-CTGTGGTTGAAGTTGTAACACTATTTCAAACAAAGGAAAAATTTTAAAAACAACAGTGAA
-AATATTTTCAAAATATGTTCACAATCAAGTTAATTTCTTGGTAATTGGCTGGGGAAGAGA
-AGGGAAGGACAAAGAGAGATTTTTCATAATGAAGGGACAGCAGTTCTCTGGTGGGCTGGG
-GGACAGCAGGGTGGGGGCCAGCCTTGGGTCTCAGTCTACACAAAGGTGGTAATGGGCTGG
-GGGAGATAGGGATTGGGAGCTGGACCCAGGACAGTGGATGAGAAAAGCCAAGGTCAGGCC
-TCTAAATGTCCCACTCTGGAGGGAGTTAGGACCCGGAGCCTATTTTTCTCTGTGTGCCct
-taattctgggcctcacttttttcatctgtgaaatggattcaataacacctgcccaaggag
-gactcttgaaattaaaagacaaggtggctgcaaagcacccagcacaaggcctgacactga
-ggtgtacaagtaatagtagttGATGCCATCATTATTATTTGTATTCATGGTTTGCCAGCC
-CAGAGGCTgtagaacctggtggtacagggaagcctgagtcagacaacctggattcaagcc
-ccagttgtgccacttactacttatgtgacctccggcaagttgctgagcctctctgacctt
-tggttttctcatccataaaatggggatagtaactgagttgttgtgaggatcgaatgcatg
-actgcatgcaaagcacttagaactgtgcctagtgcatagtcagtgccaagtgtcagctac
-tactATCTGCTCAAAAATATTTCATGCATACCTACTACTTGCAGGTTGTGAATTGATTGA
-TTCTTTTTTCATTACTAAGCACTAACTGTGTGCCAGAGAGCAGTGAGAACCGAAGACACA
-GTAGCTTCTATCAAGGCCCTCATCGCCTGGTGGGAGACTGAGAAGGAAAGAAGGCAATGA
-TGACAAGGTCAAGTAAGTTCTAAAATCCAGGCACAGGGGAGGAGCTGTGGGAGCCTAGGG
-GCAAGGCCAGAGAAGGGTTCACAGGAGTTAAACattcattcattcaacaagtatctactg
-agcactggcccaaggctgaggattcagccaccaccaccacaggtccacatctggccttcc
-tggagcttgcagcctagccggggagacaggaacaatgaagacacacacacttagataaca
-tgatggtggtgatggtgagtgccgcgatgaaaaccaaagccaggggaggggatagagaat
-gacagacatggtcaggggaggcttctctgcaaggtgagcagagatttggataaagtgggg
-gaacgagtcctgtggaggtctggggagggcattccaggtggaggggcagtaaatgcagag
-gcccagaggcctctccatgggctaacgagggaggcagagggagggagggagtggagggag
-caagggtatgtgtaggagggaagcagggcagGAGTGGGAGCACAGTGACTCGCCTGCATG
-TATTCCCAAGGAGATGGGAAGGAGAGGCGAGCAGAGGGGTAAAGGAGAGGAAGCAGGAGC
-TGCCACTTTTGAGAAGCACTGAGAAGAGAAGCAGAGGTGGGTGGGGAGGGGGATGCAGGG
-CCAGGACTGGTGGGCAGGGGCCCTGCAAGCCCTGCTTACTGGAACGGGAGAAGGCTGGGG
-GAGGTGTTCCAACCTTCACAAGCCACAGGCAACCACCGAGTGACATTAGACAGGGAAGGG
-ATGAGATCAGACCCTGGCATTAGAAAGGCTGGAGTTCTGGGTCCTTCATGCTCTCTCCCT
-TAATTCTTACAAGAAcccatttcacaggtggggaaaatagaggtcccagagaggttcagt
-gacttgctccaggtcactctgaaaggacacagatctggctgcctccagctccccctgctc
-cttgagttccctgctgtcttccctggcctctgcctctGGGCCCAAGAACTCCCAGCCCTC
-AGCATCCATGGCCTCCCCCTGGCCCACGAAGTCCTCAGCCACCTCCTTCCTGGAGGGCTC
-AGCCAAAATCAGACTGAGGAAGAAGTGGTGGGCACCCACCTTCTGGCCTTCCTCAGCCCC
-TTATTCCTAGGACCAGTCCCCATCTAGGGGTCCTCACTGCCTCCCTGCAGCCCCTTGAAA
-CTTCTGATCATTCAGCTCCTGGGATGTCCTGGGCAAAGTTATCCAGGCCCAGGTCCCTGG
-CTCGTGGCTCTCCTCTCATTCCCTCAGTGGGTGCCCTGCCCACACCAGGATTGCATTCAC
-CATCCAGGTGCTTGCTGACTCGGgggcaggctgagtgctgatgagttaatgccccccagg
-agcacccctgagtggatgaggatgggagttggtggaaaaacatttcagtcccctcgcccc
-ttgggtgggacagttctgttgccagagttcccagtgggagggatgcccagttgccaacTT
-GATCCTTATCACACCTGTGCTTGCTTCTTTGGGACTGGCTTCCAGGGAATCTATTTGGAC
-GGGAATTCTTGTTTCCAGGTCTGCCAAGATAACTGCCAAGCCTAGTCCATTCTACCTGCA
-AAATAGCTCTCCAACCCTTGCCTCTGTGACTGCCAGGTCTGCCGCAGCCTCCTGCATCTC
-TGTTTGTACTCGTGTAAAGGCCCCCCAAGCTGTCCTCTTGTTTTGCCCTTGCAGTCTACC
-CCTCCTCCCTCCCAAGGAGCCAAAGGGGTTGGGTTTTAAGGAAAACCTGACCATGGCTGC
-CTGCTGTTCTCAGGCTAAACAGCACCCCTGCAAGGCCCACAGGCAGCCCACCTAACCGTT
-TCTCTACATctctgccccaagccacactggtcaccttcccatttttcaaacacatctact
-tatcaccttctcagggcctttgcacttgctgtctcctctggatggaacactcccagtctc
-ccatggttagctcattccaggcttcagttcaaatgtcacctcctcaaagaggccttccct
-gaccatgcgatggaaactcccatccttcaccactacgcttggcttagccctcttagcttt
-gcttcctctcctttgaactgtttcccatgatctgaactagccttgtttgtttgttGTGAT
-GACGATTGAGCCCCCCAAAGCAGAGAACTTGTCTGCACACACTGGGCATCTGGCTGGCTG
-CGGGTGTTGAGCTGTGAGATCGGCTATGTTCTTGCCCTGCTGCAGTTGACCGTCTGGTTG
-GACAGGGGCTGGAGGGATGAACCAGTTGTGGAAAATGCCACAAAGGAAGAGGAGTAACCG
-GCTGCAGGGAGAGTGGGAGGGCACACTCACTTGGGTGGGTGGATTCTGTGTAAGAACAGG
-GACCTAccaaggtgggcagatcacttgaggtcaggagttcaagaccaccctggccaacat
-ggtgaaaccccgtctccactaaaactacaaaaacattagctaggcgtggtggggcacgcc
-tgtgatcccagctacacgggagactgaggcaggagaatcgcttgaacctagaaggcagag
-gttgcagtgagccgcgatcatgccgctgccctccagcctgggtgacaagagtgaaactct
-atctcaaataaataaataaataaataaataaataaataaataaataaaataaaGTGCGGC
-TGCATTTGCCTCCCAGGGCAGCCCAGGTGTAAGCTATACAGCTTGGTGGAATGTCTCCAT
-GGCTTCTAGGGGATGGCCCAAGAGAGTTCCAAACACATCATATTCCAGTGAATGGGactg
-gtcagcccacagccacatggccatgtccagctgcaagggaggctgggaaatgtaatattc
-tgcaggccacccatgtgctcagataaaaataaagagaatattattcaagagaaagggaga
-cagagtgtgggggatgactgatgatccttgccataAGCATCAGCAGGAAACCACCAGCCC
-CCACTTCCCTGTTTCTGCATGTCTGTTATTTGGTCCTTCCTGTGTGTGATGGAGGGAAAG
-ATGGCTGTGTGTGATGGAAAAAAAGATGGTCCTGAATGAGCCTGATTCCACTTCTGGGTT
-CCCACACCCTCTGGTAATTCCCTCCTTTCCCCCGTTTCTGCCCTGTATCTCCTACAGTGT
-CTCCAGCCCTCCTTCACTCCATTTCTCCCTCTCATCATAGACTGTCTTGGAAGTTCTGCC
-TACAAATGTGGCAGCTGCTGTCCCACTCTTCTCTCCATCCCCTCTGGAAGCCTGGCCTCT
-CCCCAACTTCCTGCTCTGTTCTGTAGCTCACTCAGCGAGGACCAGTCCCTCTCTGTCATG
-AGATCCACTTTTTCTCTCCAACCTCCCTGTGGGCCTCTGTCCTGTCAACATCCCTCCTGA
-CACTCTCTGTGACATTTGACCACCTGCTGGAATCAAAGAATGTGGGCTCTGCAATCAGGC
-AGGACAGAAATGaagatgcttcccctttctcagcctcaatgatctcatctgtaaaatggt
-gtgaagaatgtccacTAACTAATTGAAACAAATTTTTATTTGCAGCCATGACATACCATG
-CATTTAAGTAAGCCCATATGAGCACATCTGAAGGCAGTGATAATACAATCAATAATACTA
-CTGGGAGTGCCTAGCTCTTACTGAGTGCTAAGCTCTTCAGCACGTCAGCTCAGAAATGTG
-GCCCCTCCCATGGCCCCGCCTGCACTCTTTTCTCCTTTTTTGCTTAACTTCCCTTTTGTT
-GCTTCTTTCTTGAGTCCATTTTTGGCTCTGTTCTCTCCTCATCTCTGCAGCTTTCCCAAA
-TTCTTTTTTAAAtttttatttatttatgtatgtatttattttgagactgagtttcactct
-tgttgcccagactggagtgcaatagcatgatctcggctcactgaaacctccacctcttgg
-gttcaagtgattcttctgcctcagcctcccaagtagctgggattacaggcgcacaccacc
-ctgctcagctaattactgtatttttagtagagacagggtttcatcatgttggccaggctg
-gtctctaactcctaacctcaggtgatccactcgcctcagcttcccaaagtgctgggatta
-caggcatgagataccacatccagccAGCTCTcccaaatccttttcccagctctgacatgt
-tgccacacttcatctacctggctggacacctccacttgaagtcctgtggacatctcaaac
-ccagggtgtctaaaatagaactcagcctcttcccctgcaggcttCCAACTCTGGAAAGGG
-CCCAACCACCTACCCGCTGGGTCTGTGAGCCAGGccttcctctcaggcccctcctctctt
-cccctggccccagcctccttccccacttccccacccttccccaccccAATGCACATACAG
-TTGCTCAATTGCTAGTCCTCACATACTGCATTGTGTCACCCCACCTGGTCATTGTCCTGC
-CCATGTCCTCTCAGCACTCACCTTTCCATGTCCAAGGAGTCTTCTGCAAACATCTGCAAC
-TGTCTGaagccaaggtgctggagaactaagagagagtccccaagcagccctcagccaatg
-accgatgggaggtggtggataaataccagccccctgccctgagttgggagacctgaggtg
-tgctcttcactgtctcaagaggacctcaatggggctgagctcccgttgcccatattagca
-attcacttattatgcatcagtggcttcagtggtttactgcagtgtcttcattgtctcTGG
-GCCACATAATTTTATGGAAGTCACAGCCCTTCTCTCTAAAGTCCATCTATGAAGCCACTT
-TACCTCTGTTTGAGAAGCACTGGTCTCCAGGATGACATCTATACCCCTTACCTGGCATTC
-AAGGTCAACCTGCTGACTCCACCATGTGTCTACCCTTCCATGctttgctcatgctcttcc
-ctcctgcctgaaatattcatcactttgcttaatgcttgtctgagttgcacctatccttca
-agactcagctcaagttcacttcctccgggaagcctttcAGACCACATTAATCCTTCGAGT
-GTTCCCCACAGCCCCAAGAATCTGCTCCCCACATGTGGCACAAATAGTGCCTTGGGTCTT
-ACCTGGtttgttccttcagcaaaccaaggttaagttagcattttctctgtgcaaggccct
-gagagctgggagagctggagacatgaggtgagtcaacacagaccctgctctgaggtctgg
-gcagtccagtcgaaagacGTCCAGGACATGGGGTTGGGCATTCCAGGCAAGACCATCAAC
-TCTACGAGGAAAGGGATGATTTTAATTCACTATGAGAAATGAGTGAATCATTTATTTTCT
-TAGCTTAAAACAGGGGGTGGACAAGAGACTGACtctggcccaccatctgtttttataaat
-aaagttttattgaaacacaactatatttcttcatgtatcacctatggcctttacactaca
-atgtacgagtaattgtgaaagagaccacgtggaccacaaacactaaaatatttactgttt
-ggacccttatagaagttccctggccctggcttgaaacactaatacttgtttattatttca
-cacagtttctgaaggccagaaatttgggagtggtttagctgggtggttctggctgagggt
-gtctcaggaggttgcagtccgcagggctgtctgagtctcatcataacacagcagctggtt
-tccccAGTGAAGACTTccatgctaggcacctcacacacagcctcatttaatcctcataaa
-catccttaaaggacagctatgattattacctacatttctcagctgaggaaaccagagctc
-agagagaggaagttatttccctaaggcaaggacagacctaggactggagctcaggttcct
-ctgcctccaaagccccgctcctaaccactgggctgtccttctgAGCACCACGGGGTCCCA
-GCAAATGATCTGTGGCTGGGGATCCAGGATCATTGTGATTTGACTCAGATGTCCCTTTGC
-CAGGGATATGGTCCTACTCTCCCTCCAGTTACCTGCTCCACAGGTGGGGTCCACCTTCTT
-TCAGACCCTCTATCAAGTGAGTCAATGGTACTGTCCAATTCCTTCCCAATATCTTTGCCA
-TCCACCCCCACTCTTTTCCAGCCCCACTGCTTCGGTCTTACCTCTGGCCGTCTGGGCTCC
-CATCTAGAGACAAAGTCAGGGGAGGTGATGCTTTCTGCTGATATTCCTTGATTTTTTCCA
-CCTGATTCACTTTCAGCTCTCCTCTGCCCATCCTCTCAGAAGATGGATATGCAAAAAATG
-ACCCCAGAGCCATAGGAAGGCCCCAAATGCATCCCAAAGTACTGCAGATGATACCTCCTG
-ATCAAGCCCTGCTGCTAATCAATCAATAGAATTAATATAATTATACAATTTCATTTATTC
-AGCCTTCTACCTTCACaaatgcctggaccttggtttcaggtaaactggctcgagttcctg
-cttggtctttgccaacatgtgtccatgggcaggtcttagtctttcctttggcctcagcct
-cctcatctcaggattgctagagggggttaaaGGACATTGCATTGTAATTTGCTTGTTTTC
-ACACTTGGTACATAATACTTGCTAGAACCATGATGCAAAGAGCAGTCAGTCCGCATGCTT
-ATAAGGGAAGCAAAGATGTTCAGCATTATAGAATGCATGGCTAACATGGCCCCAAGATGG
-TCCAATGGAAAGCTCTTCTTCTAATCAAATAGTGAACAATCCAGGAATAACCAAAGAAAA
-AGTtcatcttattatttgttttcacagcagctccatgaggcagaattaattttgtgtgtt
-ttgcagatacgggaacagtaggtgagagcatgagtaactcagctcaggtcacacagcagg
-tgggagagaactggaacaagaacccagtgctctttctgctctacccactgacccATCCTC
-TCACGCATCATACACCCATACTCccatccacccaccttcccattcatgcattcacccatt
-cacccaccttccatccatctaccatccaCCACGTACCTACACTCCCATCTACCATCCAAC
-CACATTtccattcacccatcctcccatccatcaaccctccaatccaccacccacagacct
-tcccatccattcatttacccatccacatattcacccaccctcccatccatccatcTACTG
-TCTATCACCTACTCATTTTCCCATCTGCTATTCACCCCCACCCTCCTatccatccattca
-accatccacccaccctcccatccaatcatccactgtcccaaccatccaccatctacccat
-ctatccaccactcaccctttctttcattcactcatcctcccatcctcccatccaccatcc
-accctccacccaccctcccatccaatcatccactgtcccaaccatccaccatctacccac
-ctatccaccactcaccctttctttcattcactcatcctcccatcctcccatccaccatcc
-acccTCCACCcatttatttgacagttgctgagagcctactaaccaccaatcactattcca
-ggcactgagatatgactttgagctagacaaagtcttgcttcatggagctcacattttggc
-tgtgaatggcagcaacagacaaataaatacgtagtttacgtgaggtactgcaaagaaaaa
-ataaagcaggggagtgatgtcaggagtaactaaggcaggatggtagtcagggaggtcgtc
-tctgaaacgggacatttgagcagaagcctgaaggaagtgagctccctgacaacttgggag
-aagagaatttcaggcagagagaacagttgtacaaaggcccagtggtaggaatagaaacag
-cttgatgggattaagaatcaacaaaaaggtcattatggatgaagcagaatgagggaggaa
-acccaagccagctcgggcttgatcatggcaggctttgtcagtcactgtgagtaaccagac
-tttatttcaagtgagttggCCAACAGTGTCTCCCCAGTAGTAGAGTGATTGCTCGTCTGC
-CAGAAAAGGGGCACAGAGCTCTGGACATCAATACTTGCCGATCTCTCCTTCATCAGCCAC
-CCAACCCTGGCAACAGTTTTCAATTACACCTGTGAAAACTTGTGGGTTAAACAGCTGAGA
-TCCATGCCTCAGCTTCTATAGGTGATAAGCCTGTCCTTCCTTAGGTAAAGAAAGGAAGGG
-GCGAACCGTCAGtgagcaccattcacataccttagccggttcagcttcaccaccctctga
-aggtgccatcagcagctcccttttgctgaagagtaagcggaggcccagagaggtcatgtg
-gtgtgtgcttgaggtcacatggctgagaggtggcaccagatttgcccaactctcaagtcc
-catagtctaacgtttcactccacTCAGATTCAACCTCCcaagaaattatttgtttgagta
-cctactaggcaccagactcagagtgagaggcagttgcagattcactcagggccagttttg
-gaggccagcttcacaatcacccagcacagcccatctttctacttgtgaggaaacagaggc
-tcagtgaaggaatgcctttcagatcacagagaggatgaagccaggatattcaaacccagc
-ttattttACTACAACTCTATATGGTAGGAAAGAGAAAAGCGCCCATACAATTTCAGTGGC
-TTGACGTGGAGCCTGGCAACAGATGTGTTCTTGGACTGTTGGCTATAAGACAAACCAGCT
-TTCCCCACTGACTGTCACCGTGTTTTGGGAGACAAAGCCTAGGACTTTGGTGTGTCCACC
-GTGGGTCAATAAATGCCCCCAAACAAGCATATCTTGCAAAAGTGGGGACTTATTAATTCA
-TTGATTCGTTTCTTGATTGATCAATTGATTTATATGTCCCTGTTGGACAAAGGGTTTGAG
-GCAGCCTGGGAAGGAAGTGAAGTGTGGAAACTGGTCATCTTCTGTGCTTCTTACATTCCA
-CTCATTGGGAACATCAAAAAATGAAAAAAAAATCCAGCTGCTACATAGCTGGGGAACAAA
-TTCTTGGTATGGAAGTAATTCTGCTAAGGCTAGCCTCCTCAGAGTAATTCCAAATGCTTT
-TCCTATTTTCAAATTTAATTAGGAGACATTTCTGTAGTGTGAGTCATCATTTAATAATGG
-GGGGTGTTTATTAGGGAATGagtggaaagagaacaggacagctggataattcaaatccca
-gttcttcaagtctctggctgtgtgatcttgggtgagccacttcacctctctgaacatcag
-ttttcttgtctttaaattgatatttacctggcaaggtttggggaaggtctcaactagatt
-atgtacataacaagcttgccagtgttagtacataataggtgtttaataaatattaactGC
-CTTCTCTTCCCATTTATTTTCTTATTTGGTCTTCTAAACAACCTTGGGGACCATGATAGG
-TATGTTGTTTGCTTTCTCTAGCATGAAAACAGCCTCCCAGAAACTACTCAGCCAATCCTC
-TGAAATGGTATTTCCGGTCAAATCTGATGCACCTTCTGAGACTTTTTTTTTTTTGTCTTT
-TCCAGTAAAGCCAAGCACATAGTCATTGTTAGTTTTAAAAAATGTATTTGGATGGGGTAT
-GAAGTTCAGAAGAGAAAGACATTCCTGGTTGGGTTATTCAAGCAAGGATCCCTGAAGAAG
-AGATGCTAGCATTTGGCTAGGTGATAGGAAGGGGACAGGAAACAGCAAAAGGCAGGATGT
-GGAGGCAGAATGAGTTGAAAGATGCTGTTATTGAAGGCGATGGTGGTAGTTTATCCCTGA
-AAGCCACCAAGAGCTCAAGAGCAGGAGGGAAGAAGATGAGTTTCTGTTGAAGAAAGACCA
-AAGTCACTCACTGGCTGATTTGTGCTTGGGAGGAGCATCTCTTTCCCCTGCTGATTGGGA
-GTCTTTTGTTTCCCTGGGACAATAGGCACTGGTCACTGAAGAGTGTGTCTGTCCTCCACA
-CTTTCCCATGTTCCTGTCTCTGGGGAACTCCTCCCTGACTCCGAGAGACAGGATGGAGTT
-GTCAATCAAGATGTCTGTCACTTTGCCTACCAGGGGAGAGCTTTCCAAGTGGGGCCCTGT
-TTTTCTGCTGGGGCTATAGGGGAGGGTCTCCATCTTCATGtgtcaggatgtagccttggg
-gctgctggtgtcatatttatgccacatggaatgaagctgtctgaagcaggaaaggatgat
-attaccaagcaaaaagagatgcaaagctgagtgtggacggaggcctgcttctgatcctgt
-ccatgtacttggatcaaaccatgcctgaactccatttggtttgcaccttatggggcaata
-agggaataagtaattctctttgtttattcaacaggatttctgtcacttggcaattctgat
-taatacaGACTTCTGATTAATACAGTTGGCAAATGAGAGACAAGTGATCTCTTcagaaat
-ggacagagcaggaaaggaacccaccaagcatggagaggttgaatgagagtctcttcttcc
-ccattgactcactgcagccctggatcaggttgctgcccttctctgggactcagttttatc
-atctgtgaaatgggCTGCAGTGAGTGGGAAACAAAAtcatttatttatgcccaaccttgt
-tgcaaaaatgatttaagacagcttacaaatgtattaaagccagagattaggaaaagaaag
-agataatgaaattgtgagaagggggagaaaaggtgaactcaaggatgaggttaggttatt
-gaatgcctgctgtaaagttctggacagttgctaaaggtgaacagacaagtttgttctgag
-attctttgtagccaaagcaagaaaaagaaaatgcagttacgtggatttgtaggaaaaaaa
-aaaaaaacaacccggttcctgagaagaagcccaacttttcttagaataaaagtctgaaac
-aattttccttgtggttccccatcaaaaggactttgtgaaataccatgagcaaATATAAAA
-ACCAGAcaggttgagtatcccttatctggaatgcttggaaccagaagtgtttcagataac
-agattcttttggattatggaatatttgcatatacagtcctacctcgggtataggacccaa
-gtctaaacacagaattcattcatgtttcgtgtataccttatacaagttacctgaaggtaa
-ttttatttttctgtgtgttgtgcacctgcattttgactgcaacctgtcacgtgaggtcag
-gtatagagttctctacttgtggcatcatgttggtactcaaaaattttggattttggagca
-ttttcaatttcagattttcaaattacaggtgctcaacATTTAacaggctggggtaaatag
-ttgcaacatatttaatagtcggaggattaaaatccacaataaaataagagctcccacaaa
-tcaataaggacaaaggaaaaaaacactccatcaataaaatgggcaaaaagggataagaac
-acaattcacaataggggaaatAGctatcaaattagaaaaaaatatcagaagaatgggtaa
-tatcagtgttggtcacagtgtggggaaataggcatgctcagacacCttaacttactttta
-gcgtttctcgtcacctgacacaccatatatatacgtctctacgtgttggggatctctctc
-tctgaccagattgcaagttccatgagagtaaggactacctcctcatcactgctgaattcc
-cagaacctagaacagtgtgcccagaacagagtagatccttgataaatatttatcaagtat
-gtgagtCAATAAATAAATGAGTGAATGAATGGACAGTGTGTAAACTGGGGTCATATAttt
-ggcaggcaatttggcaacatttattagaatgaaaatgcacaaacactgatgcagacattc
-ctcctttagccatacgctcgactgagacatacaaatattcaaaggaatgggtcaaagagt
-gtttttgtagtgctgtttaaatggcaaaagttggaaatgacctaaatgccaaacaatact
-acactaataaagttatggtttattctgactgtgaaatattgtgtgttcttctttaaaaaa
-atagtgttttcatactgatgtggtcagatctccaagatacattatcaaaagaaaatagca
-agtcacagaacaataatatgtaacatttacggtaaaaaCAAAACAAACTTTccaggcgca
-gtggctcacgcctgtaatcctaacactttgggaggctgaggcgggtggatcacgaggtca
-ggagattgagactatcctggctaacacggtgaaacctgtctctactaaaaacacagaata
-tcagccaagtgtggtggcacgcacctgtaatcccagctactcgggaggctgaggcaggaa
-aatcacttgaactcgggaggcggaggttgcagtgagtcgagatcacgccactgcacccca
-gcctgggcgacagagagagactccatctcaaacaaacaaacaaaaacaaacaaacaaaaa
-acaccacaaacaaacaaacTCAGTCTGTCTGGTTAGCTAGCTActatctatccatctatc
-tatccatccatccaCTCGCTTACATTGGTCAACCTATCAGTATAAACAAATAGAAACATA
-TCTAGAAGGAAATACCAAGCTGTTAACAGTTCTTCAGAACAAGGGAATAAAATGTGGAGG
-TTTACACAAAGGGCTATTTTTACTTTAAAAATAtatttcagtataatatgcacttaatgt
-gcatagataggttggcaaatgataaagctttacaaactgtatttatccctgtcagcatca
-ctcagatgaagaaagagatatgaccagcaccccagcagccctactgttatcctctcaagg
-aaaactatcactgcccttctattacttttatcaccctagactagttttgctaatttttgg
-actttatataaatagaatcaaaaagtggatacaattttgtatctttcatctttggtgcaa
-tattctgtttatgtgaATATTGCCAAATGGCCTGACACTCCAACCAGTGTGGCAGAAGGC
-CTGTTCCCCCCATGCAGCCACCcaatacattttaactaacctgtagtctgtattttgttc
-agtcccagtaatgtcctttacagctttttttctagtttgggattacatgttgcatgtagt
-tgtcatgtctctttagtatcctttaatctggaacagtttctcagcctttctttgtctttc
-atgatgttggcctttaagaaaaatataggttagttgttttatggaatgtcacatccctca
-ctttgggtttgtgtgatgtctcctcatgattagactgaggttatgcattttgggcaggaa
-tatcttgtaaatgatgctgtgttcttctcagtctatcacattaagaggtacacaatgtca
-atttgtccctttattagtgttaactgatcatttggttaaggtgacatccagtttctccac
-tgtaaagttgtttactttttcttttgtaattaaaaagtaattttaggaagctactttaat
-atctttatctattaaatatccttttccttgtcaaaGCCATGGTATGTTTAAAATGTGaat
-ttctttctaagttcaggggtacatgtgcagatttgttacacaggtaaacatgtgccatgg
-gggtttgttgtacagattatttcattgcccaggtattaagcctagtacccattagttatt
-tttcctgatcctctccctcatcccacgctccaccctccagtaggccccagtgtgtgtcat
-tctcctctgtgtgtccatgtgttctcataatttacctcccacttatgagtgagaacttgt
-ggtatttggttttctgttcctgcattagtttgctaaggataacggcctccagctccatcc
-atgtccctgcaaaggacaggatctccccttttttatggctgcatagtattccatggtgta
-tatgtaccacattttatttatctagtctatcattgatgggcatttaggttgattccatgt
-ctttgatattagtgctgcaatgaacatacagttgcatgtgtcttcatcatagaacaattt
-atatttcttctttttttttgtttgagacagagtcttgctctgttgcccaggctggagtgc
-aatggcacaatctcagctcactgcaacctctgcctcttgggttcaagtgattctcctgca
-ccaccctcccaagtagctgggattacaggtgcccaccagcacttccggctaatttttgta
-tttttagcagaaacggggtttcaccatgttggccaggctagtctcaaattcctaacctca
-agtgatctgcctgccttggcctcccaaagtgttaggattacaggcgtgagccaccgcacc
-tggcctttacattcctttgggtatatacctagtaatgggattgctgggtcgaatgatctt
-tctgtctttaggtctttgaggaatcgccacactgtcttccataatggttgaactaattta
-tactcccaccaacagtgtactgagcattcctttttcttcacaaccctgctagcatctgtt
-attatttgattttttaatagtaaccatcctgactggtgtgagatggtatctcattgtggt
-tttgatttgcatttctctaatgagcaatgatgttgagctttttttcatataattgttggc
-tgcatgtatgtcttcttttgaaaaatgtctgttcatcttctttgctcacttttttaatgg
-ggtagttttcttgtaaatttaagatcctcatagatgctgggtattagactgtggtcagat
-gcataatttgcaaaatttttctcccattctgtaggttgtcactttgttgatagtttcttt
-tgctatgcagaagctctttagtttaattatgtcccatttgtcaatttttgctttcattgc
-aactgcttttggtgtcttcatcatgaaatacttgcccgtgcctatgtcctgaatggtatt
-gcctaagttgttttccaggatttttatagtttgtgttttataAAATGTGAATTTCTTAAT
-TGAGAGTAATGGGAAGCATTTATTCCTGTGCTCCTGAGTCACCGGTTTTCCTTTTTGATG
-AATTTTGATAATCATTTTTTCTCACTAAAATTTAAAGGTTTAATTTTTAAAAACTGAATG
-GTTTAAGCTTAGCCCTATAGTTCTTGAACCATGATTTTAATAATAATGATTTTTTAATCT
-TCATTGCTCTAGCACCTTTAAGAAGGATTCGTTTGAAAATTCACCTGTGTCTCAACCCAG
-GAATAGGCTTGGCCTTCCTTCTCTGATGGCAGCCAGGGAGCTTCCTCCCATATACCGTGC
-CCACGGGAAGGAACAGAAATGCTTCCTGTCACTCCCAGGGGTCTCCAGCTGTCATAAGCT
-GCCAGCTGGAGGTGGTCCAAGCCAAGATTACAGCCGGCCTTTATCCTATAGTTATCACCC
-ACAAATCACCCCCTATCCCCAACCCAGGGGAGTCTCTCTGTCCATTCCATACCCCGGATA
-CTGAACTCAGCTCCAGAACCAGGGACCTCCTGCCCATTCACGATGGCCTTGAGCTCCCAG
-TGCTGTCCCCACCACTCAAGATTGTCCCATACCACCTTTCCCACCCAGCCCAAACCTCAC
-AAGCCAGGTGCATGTGGTGGCCTCTAGGGAAATGAGGTTTCAAGGTATTTTAGCCACAGA
-TCTCTTTGCTCAAATAAAGCCCTACACAGAACCCCAGCCCATTCAACATTTCAAGGTGGA
-GCTGAAATCCTTTGTGGGTTCTATTTTTCTCTCTTTGCAAAGCATTTCCAGCTTGTGGGC
-TGATTGTCATATAATCTAGACAAGTGTTAATTAAAGAAATCACTCAGAGCCTGTATATAC
-AAAAGGTAAAAATTTTAAAATCTTTACAGCTAAAAATATATTTAATGTGGTACATTTAAA
-AATATTTGATACAAGGTGGGGATCCCAAACAAAGAGTGCCAGGGGCCTATGGTGAGCCAA
-CCTCCCACACCTCCCAAATAAATCAGTCATCTGGCTTTGTCTATCTCTACGCTCTTCCTA
-TGAGTGTTATCACACTCAAATTGCATATTGATGGGATTAACCCTTTAAGGTCTCTTTCAC
-TCCACCATTGGCTTAGTGAGGCAATCTAGTCCATCATTGTCTCCCCAGCTCTGAGAAGCG
-AGCACTATCATAAAAGAAAAGAACTATTATACAAGAAAAGATTGCTACAGTGAACTAGAT
-TAATGTTAACAGGCTCCTTGAGGTAAGATGCTAAAAAGCATCAGAATGAATGAGTGAGTC
-GATAAATGAGTGAATCCACACTGTTGCTTATGAGGTCTGTGGGTGATGACGCCCCATGTG
-CATGGCAGTTTCAGAAGGGCTTTCAGGGTTTAGATTCTGGGGAAAGGAATCCACTTCACA
-GACCCTGCTGGTGCCGAGCCACTTCTAAGAGACCAAGGAGCCTGGAGCCACCCCATTCCT
-CCCAGGGGGTGGGGTTAGTTGATGCTGTCTGGTGAGTGACCAATCGCATCAGCACCTCTG
-CTGACCCCATGGGACTCCGCTACCTTCTCTCCTGGACTCCTAAAACTGCCATTTCTCTGA
-GAGGGGGAGGAGGGCTTCTTGCTTCCAAAAGGACTAAGCAGGGTTCTGGCAATGGGGACA
-GGATAGTCGTTCCCTGTGGCAGGCTGATGTACAATGGGATGGTCCTGGGGCCACATCTGG
-GCACAGACCCCCATTATCTTTAATGGTGCTCTTGCCAGGGGGACACTGCAGAGAGGAGTC
-TACCACGAGGAGACCTGCTCTCCCCTCCCAAGCACTGGAGCAACCTTGGCCCTGCCCAga
-aaaaggcagctgtagggaaatggagctgagtttaaatgcccactgggcacttagtagcca
-tgtgaccttgtgtaggtgactcctcctcttcctctctgggcctgagtttcctcctccata
-aaatgaggcagtcatctttgcagctctgcacccacaaagtgccattgtgagggtcaaata
-agtggatgtaaaagggcttgcagagaaccctgcagatggaaggtgGACCTTTATAAGGGA
-GAAATAAAATCTTATTAAGGAGAAAATAAATTCCCAAGAATGAGCTGCCCAGCATCTTTA
-AAAGAAGACTGCAGAGTGGACAGTGCTCAtacctgaaatgttttttttattcctctacca
-gtcagcctcctacacatcccagaggaggcagtgccttccccagaaagccctgccaggctg
-cactctgtcctcccatcctgctgcctccagcacaatgctcatatctgactgtctgtctac
-ctgacatctcccccactggtctggtgctcctttgggaaggaactgtatctgatgcaacca
-ggaatttcagctcttagggcagagtctggcgcatctgaggcacacatcaatattCTGAGC
-CAGACTGACTGGCTAGAGTAGAGCTAATGGTAGAATGTCGGGGGCTGGTGCCTAAGGTTG
-GGGTAACTAAAGACGCAGGCAAGCCTCACACTCCCTTCCTAGAACCTTATCTGATTACTT
-TCTCCATCTAGGTTTGAGACGAGGTCTAGCCGATCCTGCCTACAGGCTGAGTGAAAGCTC
-TTTAAGGTAGgggtgaccagcttttcctggtctgctcaggactttcctggtttgagttct
-aaaacgtcccatttcccaggtaaaccagggcagttggtcatgctaCCTTAGTTACTAATT
-GATTCTCATAGTAGACATTGTAATTACTCACTGATTGTATATTACGCTTCTCCTTCCTCC
-CCCTTTCCCAGGCTGGCAGAGcccatctcttaggacagaggctgaaaacggaagatagtt
-tcccagcctctcttgtggtgaggggttgccatgtgaccgagttttggccaatgagacaaa
-agggaaagtctgctgggaacttctgggaaggggttttttctctctatctaccttcacccc
-ctctttcttcctgctttcggtcgtgagaatgtgatgattagagctgtgacagccatcttg
-tgaccacaaggaaacatccttaccacactctgaggggtaaaacgaaggacagtaaaagct
-cgacactttgatgacattgttgatcctctgaaCGACCCTAGGACttgaacaacattaaaa
-tgttacatgttgtttatcaaaagacatcattagaataacaaaaaggcagcctctgtgctg
-ggagatgatatttgaaatctctccttgaaaaggactcgtatacagaatactcaatgatag
-ataactcagttgttaaaaattggggcaaaacttgaaaagaaactctagaaaagagaaaat
-taaaatggccaataagcaaagcacacaaaaaggtctgaacatcattattcatcagggaaa
-tgcaaattaaaactacagtggggcccgggcctgttggctcatgcctgtaataccagcact
-ttgggaggccgaagcaggcatatcacctgaggttgggagtttgagaccagcccgaccaac
-ttggagaaaccctgtctctactaaaaatacaaaattagctgggcgtggtggcacatgcct
-gtaatcccagctacttgggaggctgaggcaggggaatcacttgaactcgggaggcagagg
-ttgcagtgagctgagatctcaccattgcactccagcctgggtaacaagagcaaaactcca
-tctaaaaaaaaaaaatacaatgggatacaatctcacacttaccagagtggctaaaattaa
-aaacactgaaaatacaaagtgtcggtgaggatgtggagaaactggaactctcatactcta
-gtaatactaataataggagtgtaaatttggacagttgctttggaaaactgctaagcaata
-gctactaaaactaaacacagacttacctgatgaccaggtatttacccaagaaaaataaaa
-acatgtccacaagaagatgtgtatgtagatgatcatagcagctttattcagaacagcaaa
-acacaagaaacaccgccaacgcctgtcaacaaaagaacagaaaagtaagttgtgatatat
-ccatacaatggatgtatatgttattttatgaatatataaaatggatatattggaaatact
-acatggataaaatagttactttttaaactacatagcagtgaaaaagaataaactactgac
-acgtagcaatatggatgaatcttaaaattatattgtgcaaaagaagctagacacaaaaga
-gtacatacagcatgattcatttctatgaagtttaagaatgggcaaaaccattctatgctg
-ttagaagttggttagtggttaccctttgcaatggcaggtggagcagtggggagcagtagc
-tgggaaggaggtatggggatgccaaatgggatgtcaagaatgttctacatcttgatctag
-atcatatacttgcaaaaaattccttcagccattacagctcaagattcgtgtgctttattt
-atgcaatacagcaatctaaaaCATTAAAAAATGAATAATCTCTATGGTTTAAGGCACATT
-TAATCGAGTATTCTGTTACTTGTAGCGAAAAGCACTCTAACACTCCTCAACACAATTTGG
-CGACAGAGGATGTTTGTTGGGTGAGTGATGGTAATACCCGTGGAATAGCATTCTTACAGG
-GAACAGGGCACATTCACGCcattaacacctgtcactctcacttcagtcccaccagggagg
-gtttgttagtttcctctaacagatgaggaaactgaggtccagagaatcgcactgacctgc
-tcagagtcacacaacgagctttttttttttttttttttgagatggagtctcactgtgttg
-cccaggctggagtgcagtggcatgatcttggctcactgcagcctccgcctcccaggttca
-agcaattctctgcctcagcctcccaagtagctgggattacaggtgcccgccaccatgccc
-agctattttttttttcttagtagagagaggttttgccatgttggccaggctggtcttgaa
-ctcctgacctcaagcaatccacctgcctcggtctcccaaagtgctgggattataggcatg
-agccactgtgcccagcctacacagtgagcttttgaccaatctagaatttgggcccaagat
-tgtttaatcccaaacccagtgctctttccgctacacttctctcaccctGGGCACATCCAC
-CAACAACATTTGTTGAACTCCTATTCTGTATACTTCAGGGAAACTTTATCTGGTCTCTAC
-TTCCACTGAGCTTGTGGTCTAGGAGAAGAACAAGAGTTTTATCTAACAATAATAATTGTA
-TTTTTAAGTGCTTACGTTTATTAAATACTTACTATCTCCTAGACCAGCCTTTTTCagtgg
-agtccatgtattgcagagtatactccactgggttgcaagaaaaacaattagtaattctat
-ctgtatatttgatctcatcttttaaaaattttcattttgtgtatatcatataagatgata
-atatattgattgataatatattatgtttttactttgtaaatgtacatattaaatatattg
-ggggcaatgttcaCTGACAAGAATGGGACACCTAAATCTTTAAAGACCCATTGGTCGCCT
-GATCACATGATCCCATCTGGCCCTCATGACACTCCTGAGGACCAGAttttttttgttgtt
-tttagagacagagtttgctatgtcactcaggctgggatgcagtggtacagtgatggctca
-ctgcagccttgaactcctgggctcaaatgttcttcctgcctcagcctcccaaagctctgg
-gattacgggcatgagccaccatgcGTGACTGAGAACCCGATGTGTTGCCCCATGTTACAT
-ATGAAgatacatctttaaggtaatgaatatcccaatcacccagatttaattcttaagcgt
-tgtatacaggtatcaaaatatcacatataccccccaaatatggccaactattgcatgatt
-aaaaaataaaagaaaaaaGAAAAAGAAACCATCTTTAGCAATACCCTTTTAAAAAGTgct
-ttttgtttgtttagctttctttgaacatttgacccaagtcttccctcactcagaaaacca
-ctctgtaaaacatccctcaacatgatttcctcacagacaaacctgtctgataatttaatg
-ctgctgccatttttttttctggagctctgaactttgatgcctatctggactagttttgct
-ctagacttggggcacagataccattaggaattcctttGTCTCTCCTGTGTTGAAACCACA
-GACTGCTATATCTCAGTTCATCATAGAAAATTTACAAAATAAAAGCCACAGAGATTCATT
-Cccctgcctgtgtctaagctcttgtccaagcccctctcacattgactctgggcttggtca
-cgtgacttgctttggccaatggcataatggcaaacatgacacaagcagcagctggaaaat
-tacttgtgcatatgagcctttgccctttcagctctggggaaccctgtgaccacaaccagg
-ctggcagcaaacccaggctggtttgctgaagtataagagaccgatggctaaatcatctct
-gttaccccagctgtgccaagccaaccagcatatatatgtgagtgaggccattgacgacca
-gctgacggcagacacaggagagaagccagccaagaccacatggagcccagcccacgccac
-tactgggctataggttcataagggaataaatggtggccgttttcaggcaatttgttacac
-aggaaaagctCATGGttcctcttcttggtttagttcctctttttggtggagcacagcccc
-tggtagcATGGAAGttttaaaacatgtgcaccaatcctttgacacttgtcccatcagcag
-atagggttcatgacaccttcccttgcttgggcctgtaccttagtaatgcagcaaaagtga
-catggcataacttctgaagataagttagaaaaggccctacagtttccacctggttctcct
-gggacactcactccggggtaagccagccattgaggaagaggtatgagatcaccgtgctgg
-aaaagctacatgtcaacacaccactcaacaatccagtcgagacagccttccagccatctg
-ggccaaaggagccagactggtgagtgatgtcatcttgggccctccagaccagctcatcca
-ccagctgaagaccactaagtgagctccatcaacaccacgtggaacagaatcatcacccag
-ttgcaccctccctcagtttttaacccacaaaattaatccactaattttggtgatggtttg
-tcatgcaacaatagataaccagaTTCTATGCCATGATGGGAAGTTCTGCAGTTTCATTGG
-GAAGTGGCAGGCATTCTGGGACAGAAAAAACTTGGGGTCATTTGTGCAATCTACTGCAca
-gatttttaatctctggtttcttactctctgttccttccagagagcttcttgttcacattt
-tactgctgcaatatctttatcactcaagggatattaattgtaggatttattttaagtttt
-ctcttgttccctggattcttttcttgaagaccttttaccccgccctcatggtttgctttg
-atctctgcacttcatgatagaaatttctaatgatccttggctgtctactcacattaccac
-tctggctggaaactgggtggggagggtggactggtaggcttttgtgtagggtccatgcag
-ggtggttgcatagggctggtgcaaaggggctggttggctttttctgtgatgcactctcct
-cccacccccaattaccgtatctttaggtctttgtcctggaagtggttctccagataattt
-tctgcctggggttggacattctagaatgagacgggtgaagggggctgaagatctcACCTT
-CTctgggcctgatgtttctagttttggagtttctttgttgcctttttttcagagaataaa
-cctccctttgcttgcccagaagtgagtggggttactacctggctgggcaggatgggggtt
-ggggacgtggaggtcccatgctccttgtacagattgctttcaatccccacttcaccagca
-gctcctccaagacctagtagcttcaatttttgaggcctttaggCAAATTGGCTTGTTTCT
-CTATGCAGCAATCCACCCACACAGCAGTCACCTACCCCATCCATTTAGCTTTGACTTTCT
-TCCTCTCGGTTATGTCACTGGCCACTTCATCCATTTCCCTCCTTTGTAGTTCAGGGTTAC
-AAATGTCTCTCGATTTCCTCAAAGACAGAGTTTTTGTTTCTGCTCCTTATTCTTGTTTTG
-GGGAAGTTTTTTGTTTGTTTTTTTCTTTTTTAAGAAGAGAAAAGGAATAGAAATGTCTTT
-AGTCTACTATCTTAAAGCCACCATTTCATTAGAGTTTTAAATGGAAAAAGCACCCTCTTA
-TATTGGACAGAAGTGTGTCAGCAATGTGGGTTTTGTGACTCTTACTGGAGTAAGAGCCTA
-CATTATACGCCAAGGTGGCTTCATGTTCTAGTTTTACAAATGCATTTGATACAGTTAATA
-AAATAGCAAATTATGTATTAAGGAGAATACAGATAAGTCATTGCTGGCTTGGCAGAGAGT
-GGAGAGCAGCCTTGACCAAAAAGCTTAGAGGAGGAAAAGTGGGGTGGAGGCATGAGGTTG
-ACCTGTCCCTGCTAAGTGCCACTGTTTTCAgctcacccctttccacctgcaggtccctgc
-tcagatgccacctccttggaggatccccacccacctgtcactttctctctactaacttgt
-tttatgtctgactgcctgccaatggatttgattgacttatttatctttaggtttgtcgac
-cccactagatcatgggctccatgaccagggggagctttgctttttcacctccatacactc
-ggtgcctgtgagcacctggtacatcagtagatgctcaataaagagttgttgagtgaacaa
-atGAATGAGCCAGTGATTGCGTGGATCCATGTTTTCTATGAGAAGGCAGAGCTCTGAGGA
-CAGACAGAGGCCCAGTGTGCATGAGAAAGTCCTGCTGGCCCAGGCAGTGGCCTAAGAGCT
-GCCTACCATGGCGGTCACTGTTCTTGGGGAACCACAGATGTTTCCCCTCTAATCCCTCCA
-TGGGGACCAGGGGGGCATGAGAATGGGAGAGAACACAAAGTCCCTTTATTCAGGGGAGTG
-GATTCCATCTCAAGACAAATTGTTACCTCCAAGGCCACCAGCCGCCCAGCCGGCCCATCA
-CCATGGCCTCCCTCTTAAGGATGTGGGCACAGGCCCGGCCAGAGCTGAAATTGCCCTGGA
-AACTAGTCTCCCCTTTAATTAACAGGGAGGGCGACCAGGCCTGCTAACGGGGTGGGGTAT
-GGAGTCGGGGTGGGGTCAAGTTCATAAAGTCCCCAAAGAATCAAGGCCTCCTTGTTTATT
-TTCCCGAAAATGTTCCCCATTACCCAGAACAGCATAGGGGCCAAGCAGGCCGCAGGCAGG
-GAAAAAGCTTTAACCTCCCCGCTGCTCAGCTCAGCACATCACTATTTGACTTGCATTTTA
-AAAATAATTACAAACTTAATGAAAAAATAACCTAACCCCCAAACAGGCCAGGGACTCATG
-GCCAGCATTGGCAGGAGCAAGCCCCTGGCAGCTGTGAGGATGAGATGCAAAGGGTATAGA
-GGAACCACTGGAAGACAGGGGACACCCTTTAGATGGACACTCCCTCTCTCTAGCGCCAGC
-TTTGGCTCCCTATTGCCCTTTGTGTCATGCCCAAATGTCTCAGCCCATGTCTTAGAGCCA
-GTTTTACTCAGGCCCTATGTGGAAGACACTGGAACCCAAAGAGGAAAGGAAGTTGCTCAG
-GTTGTGCATTGTGTGGGACCTGATGCAGGTAGTGAGGCTGGTTGGGATGGGTTCTCGGGG
-AAAGAGTGGAGGAAAGTGAGAATGTGTCTCTGTTACCATCTGAGCCCTGGCTGGGTATGG
-CCAACATGCCAGGTAAGCAGCCTTGGGAAGCAGGCACGATGATTATCCATCTTTAATATC
-CCAGGACTTGAGTCCAGGTCTGTCGGGCTTTTAGCCACCACACTAAGTGCTGTAAAAGGA
-GCTGGAGGTAGAAATGAAGTAACAACAATAATaataataagcagctttcatggattgtag
-actatgtgccgtgcactgtgccaagctctttaccatctcttttaatctttgcaataactt
-tatctggtaggtagtgttattgacccattttacaaacgacgcccagagcattggttcaag
-gttgtgcagctgggaaatggcCTGTACTCTTCTACCCTGAGAATAATGCTCTACAGTGAG
-TCAGGGAGTCTtgtgaggtctcaagaacagggaccttgtctgtcttattcacttgtgtgt
-cctcagagcccagaagagagactggcatataatagatatttaatatctgtgttgtgaata
-agaatgaaCAAATGCACCTGGACCTAGAAGTAACTTCCGATGAACCATCCCAGTTCTCCC
-TTCCCCATTCCGGATTATCTTTACTTACCTGGAAGTGAACAAGATATTAAGGGGCTCCAA
-AAGAACTGAGAAATAGAACTTGGTTTGAAAGACAGTAGGGAGCCACAGCAGGTCCTTCAG
-GAATGGAGTTCCAAGCTAGGGGAGTGATGGTCTTCCTGTGTCTTTATGGATTCCAGGAGC
-TAGTCAAGGTCAATGAGCCTTTAGCCAGAAGGTCAAGTTATCCCCAGTGGTAAGTGTTGG
-GGGAAGAGGAGGGCACTTCTCAGGAGTTGAGGGTCCCAAACTTGTCATGCTCATTGGTTT
-TGTGGCTGAGAGTGGCAGGTTCAGGCTGGCCAGCCAGCCTCTTCAGCTTGCCCATGGTAA
-ATCCCATGATCCTGGGTCAAGGACGCCCAAACATGGTATGTCCATAGCCAGCTGACAGAA
-TTCGTATGTCATTGAATCTTTCAACAATGGATTCTTTGAAACTTACAACTCTGGGGCCTT
-TGAGGTCCATCTCAGATTCTGAGGCTGTAGAAACTGTTCATTTTAGAATAATGATAGGTA
-CAAaacatttactgagtacttactactccagacattgtttacaaatatcaacgcctttaa
-tcctcacaaccaccccagaaggtagtaacaatgtgaccccccacttcacagatgtgaaga
-cggaggcactgaaaggtgtaacttgcccagggtcacTGGCCGCCTGGCTCTAAAGCACAC
-AGCACTGCCTCACAGACACTTAAAGTCGTTGAGACTTACACTCTTCAAATTTTAGAATCG
-TAGAAAGTCACAAGGTCAGGATCTTCAAGCCACAGAGTCTTAAAATCATAGCACTTTAGA
-ACCTGCCATCATTGACTCATCAAATTCTGCCGTCATAAAATCTGGGCATGTTATAATCCT
-GGAATTCCAGATTCTTGGGGACTTTTAAGTCAGAGAAGTTTAGatcctgggatattaggc
-ttggattacagaccctagcccagtcctctcatatagcacagggaaactgaggcccacaga
-agtgaCAGAAGTCCAAGAGAGGCAGAGCCTGGTGGATTCAGTGTCATGTTTGGAGGGAGA
-AATCGGAGTGAACAAAGAAAGCCCCTGGGCAGGCAGGAATCTGTTTGTGATTAGCAGTGG
-GTTTTAGTGTTGCCGAGGAATGTACCCAACGTTACCGTTACCCCCGCAGGTTGCTGCCTC
-CTTTCTTCCCCCTCAGATGCCCTCCTCAGAGCCCATCCTGGCCAGACTCAATATCCTGTT
-TCTACCACCAGCAAATTGAATTTTCAGAAGTTGGCCTCCTAACGAAGCCAGCTTAATACG
-TTGGAGGTTTTCTTTGCCTGCATTGCTATTTCTTGGTAGGATGCCTGCTCTTCAGGAGCC
-CAGAGAGGTTTTGCACACTCAAATCACAACGCCAGGAGGGATGAGGGACAGGAACTATGG
-GACAGGTGGCTGGGGGCTTAGATAGACCCAGAGGTGGGaatagaaatggcgtgtctcaag
-ggggaggtgacaggtccacagggacctccgtactgctcaggccacacctgggaatttggg
-ggccttcagtctttcagaaacattaaccaaatggggtttgtttagaggagggatggggag
-agatgggtgggaatcccatgCTCTGGGAGACCTTGAGCGTGGACTAGATGGAAAGAAGCA
-TGAATTCTAAAGTTCAGCCTCTCAGCTACTGCCCCCTTGAAGACAGACATGGGTGGAGCC
-CTGGGGTATAGACCTAAGATTGAATGGTGGAAACTCCATGAAGATTTTGGTTTTATCAAA
-ATCAGTGGTTCTCAggctgggcatggtggctcacacctgtaatcctgaggcgggcaggtc
-acttgagatcaggagttcaagaccagcctggccaacatggtgaaaccccatctctactaa
-aaatacaaaaattagctgggtgtggcatcagacacctgtagtcccagctgctcaggaggc
-tgaggtaggagaattgcatgaacatgggaagcagaggttccagtgagccgagattgcacc
-actgcactccagcctgggcaatagagcaagagcctgtctaaaaaaaaaaaaaaaaaaaaa
-Gcaatggttctcaaagtacagtacagtccagaatctgtggggttcctgagaccattccag
-ggcatccacatggtcaaaactatattcacaacaacactaagacattatttgttcttctaa
-ccctcagtggggttgtccaaagttgatatgacatgtgatgccaccatcactctgatagca
-atgaaaaaaattaatgcaaaaacattcatgatgaacaaaatactaaaactgtaaataaag
-agaagactaatactactgatttttcctttcatctcaggcttcagtgtgaatttttcaaaa
-tattgcattaaaatgtcctaattactgatatttttggcacacaaattttaaacctgaggc
-aagtgcctcgtttaactcactctagtcctggcTGtggatataatccacatcaacagaagc
-ttgttggggtcctcaataatttttaaggatataaagtgtgctgagatgaaaacatttgag
-ggtcactgataaaagggataatgttccatcagctcaaactatccaacaatggaggggatt
-atattccaaggtactgagttcccatcacaaggtgtgtacaaatgggggGATTAAAGGATT
-GGGTGTGGGGAAGAGGCCTAATGTGCAGCATCTCTTGCCCAGGTGCCTCCTGTGGTCCCA
-CCTACCTGGCATCCAATagatcttctcattttcccacttgaaagcttgcaatggtacccc
-actgtgctctgagcaaaaacccacctcttctccatggcctaccaggctctatgtgtcctg
-gccctgtctcccactcttttgcccctagcttgctctgctatccccaacctagcctctttc
-tatttcttcagcatgccaaactctttcttacctagggattttgcacacgctgttccctct
-gcctggaacatcttcctcttcactcttctcatggctgttccttgtatcttctgagtttca
-acttgactgttgcctccaggaaggcttccctgatcaccctatagtaagtaggatttctct
-gacatcatctctcaacctcttttttgcttccttcatggaagtcatcactgcttttttata
-tttacttgttggcatggatggttctcatctattctctccatgagaccatgagctcctcca
-gggcaggaagcctgactgttcagacatggggcctcagcacctgacccagcacctggcatg
-gaggaggcccttgagaagtgtttgttaagcaaataaaCAAATCCTTTatgaattagtgaa
-tgaatgagtaaatgaatgaaAGATTAAACAGAAAAGGCCTCTGACTGCTGATGCTCAGGC
-ACTCACCAGGAAACCCAAAGTAACACAGGTTGTTACTTTGATGAAACATCAGTAACCATG
-GCTGGATAGTGTGTGATGAAGTATTAAGCAGTAAGTGTTTGCCCACTACCCATCAGCGCT
-GATCAAGTTGGAGGAGAGGGAGACTGGCCTGGCTGCAGAAATCTTGGATGAGTTGGGGCT
-TGAACACAAGCCTTCAGGGCTTTGCCAAGGCAGGTTCCCCTGCCTAGTTTCTCTGAAGAT
-TCACATTGTATTCACTGTGAGGGCTCGGCTCAAATAACCCTGCCTCCTATGGCTCTTCCC
-TGACTCTTCTTGGGTAGGGTCGGAACACACCATCCTTGTTCTGGGTGTTATTGTATTAGG
-ATAACCACCCTTGTCTATCACTGATTTGAAGACATTAGCTTATAGAAATGTCCCGACAGT
-ATAGATGTTATCCCAGTTTAGAGATGAGAAAAGTAAAGGTCCCAGAAGAACTTACATTCC
-AGTGGAGGAGACTCATCACGGGCAAAAAACCAAACCCACGTGTTGTGAGTGATAAGAGTT
-AAGGTGAAGAATGTTGCCGCGGAAGAGGAGTGGGGAGACCTCTCTGAGGGATCAAAGAGA
-TGTGGGTACAAATTCCATCTAATAGTGTCAGCTAAAGTTCAGTTAACTGTTACCACTAAC
-AATGAGTTAGCtgttgcttccaggatgtctgtttcacgaggacagggactatgttcactt
-ttctgtccccagcacctagaacagtgaacaacacatagtaggtgttccatgtatggtgtg
-aggtgaataaaGGCCTGCctgcatcaggcgttgtatatgaattattttatttaatctcca
-tggtcagagaggtaagggttatcatccccattttgtagataaggaaatgagggcacagtg
-aagttaaagtctaatgacttacccaagaacacccagatagtaaatggtggagcccgagtt
-ggattcgaatccagtccaatctgtctcgtatcttagccactctcctacacAGccttattc
-tgctcactcactgtgtgaccagggcatattgcctaacctctcatccactgaggatgtcat
-tttctttagcttttgaaataatacccatgtcatagggttactgtgaaagtttggttcagg
-tagagctcttagattcctgtctggcacacagtgaCACCTCTTTTCAGGTGACCCATTCTC
-GTTTGATATTGTCAGCCATTGTGAAATAAGAGGGTATAGAGCAAAGCTTTCCAAATGGAA
-AAACCTGCTATGATTTCTAGAAAGTCTTGGGAAACTTTCTAGATCAGTTATGGAGGTTGC
-AGAGCAGAAGGCCTCAAGGACGAGATGCAAAAACAGCACCCATGCAAGTTGACTTGTAAA
-CTGCTTTCTTCATCCTTTAGGAGGAATTGCCCAagaggcagcatttatggggcatgccca
-gggtctccaggcactgtgctgagggctctgtatcccgtctgtcaatttttcccaactcta
-ttatacagatggcaccactgaggctcagagaggtgaagggacttgcccaaggcctcatag
-tgcatcagaaacagtcaggactcagctcaagaaaaggccccaaagcaagcactcccaacc
-acatgatctaAGACCAGGGAACAAGGGGACAATGAGAGTGAGGGCAGGAAAAACGCTGGA
-AGATGTACCAGAGACTTAGCACTTGACTGATGGCATCTTTCCAGGCCAGTGCCCACCCCT
-CCTCTCCTGGCCTTCTCTTCCACCTCCCACCCTCCTGGGTTCCTGCACCATTTTCTCACT
-GGAGCTCCTGCCATGCCTGTTATCTTCTgttggttcttgggaaaagactctgagatggag
-attggcgtgcagtgggtttattggggagagtgctcaggagtaagaccaatgcaggagtga
-ggaaaacaggcctgggaggagtgaacagctggcacaatggagttacaacagaaatctcag
-tgatcccacaggagctctggagcagagatggcccttcggagctgaaggatcgggtcaggc
-attttttatcatacaccaaccactctttggccacaggctgcacctggaacgaacgtgtcc
-ttgggcagggcaagtccctacagctgagggccattcccggctgggaaatatcagcagctg
-gcagtcccatcagctgggAAGGGTGTCTGATGAGGGAATCCATGCTAGCCCCCAGCCTCC
-TTTCCACCTGTCCACTGTTATCTGACAATAGCGATCATGCCACACTAGCTCACACCGGCA
-GAGCACTGTCTACCTCTCAGGCTCCCTACCACGTCGTGTGGTGTGtggattccctcattc
-catcctcatgacaaccatgagagggggacactttccacatgaggaaacggaggctcagtg
-agatgaagagcttgcccagagtcccaaggtgcaagaatgctgtagctggtattctcaccc
-aagcagtGGGACCTATGGGTCCTATCTTGGTCCCTTATAGAAACTCCTTCCTTTAATCCA
-ACTCGGCACTGAGTCCCCTGGagtcaaagctcctgccctccaaaagttcatcatccagtg
-ggggaagtcaagacatatacactggaaagataagggctggtaagtgctgtgatgagaggt
-gacctgagggtgggtgacagggatgtcctgcccaggaaggcaggtgagacaaagtcagtg
-agttcagcctcagtggatgaggagagtgctgtgggaaggatcggggcagggtgggcttct
-aggcagtgggagcacaggtgcaaagacagagagggtgaaagagAGGGGCCCTCCAGAAAT
-AGGGAGTGGTCTCCTGAGATGACATAGGGGTTTGGGGGAAGGAAAACAAGGTCATCAAGG
-TGGAGGGGCTCCAGCCTCAGGGCCCTGCATGATACAGTCCCTGCCCTTCCGTGAATATTT
-GCTGAACGAATGAATGGTTGGATGGGTGAATGAATCGCTGCTGTGGAGGGTGGATTGGAG
-GTTACAGAGACGGGCAGGGAGACCAGTGGGGGGTCCACAGCAAATGTCCAGGTAAGAGGA
-AATGGGCCCAACTTTGCAGGGACCACAGGGGTGAAGCGATGAGAGAGAGAAAGAGAGAGA
-GGAGCGGAACGCCGCTGGGTGTGGTGACCTAGAGCTTCTGTGGCCCATCTCTCAGTCTCA
-CCCTGTTCCACCTCCATGCCCTGCACCATGCTGCATCCCCTGCCTGGCAGCTTTTTCCTC
-TCCCTCTGCATCTGCAAGTTGCACTGGCTGCCCAAGCTCTGCTTCCTCTAGGAAGTCTTA
-TTGACCAATGCAGCTCTCCCTTACCGTGCAAGGTCACTTCCCATCTCCCTCACAGTTTAA
-CCCTAGCAAACTCCATTTGCAGAGGCCGGTGTTCAAAATGCAATTCTCCAATTTTTGAAT
-GCCAGGCCAACAGGGAAGCATTTAATGCCCTTCAGCAGGGGTATGATGGGATAAGTGTGA
-ATCCATGTATCCCGTACAGGTAGGACCTCTCTGCCCCCATAGTGCCTGCTCGTTAGCCCT
-CTAAGGGAGGCATCTGGTAAATCTGGGCTTGGAGTTTGGAGGATCGGAAACAGGAACGAC
-CTCTCTGGGGACAGTTCTTAAGTTCTAATGGAGCAACTCTTCACAGAGGGACTTGCAAAG
-CTCTTAATTAAAGTTACCATCAGAACAAAGACTCTCTGAAGCAAGAATTTGGACCCCAAT
-GGAGTCCTGAATCCAGGCAACCAAGCTTGCATAAGTGTGCAACACAAAGGCAAATGAGTC
-CCCAAGGAAGAAGAGGCTCCATCCTCAGCTTGCTGCCCTTGTCTGAGGGAAGCACCATGC
-CCTACAGCTGACATTTACTGAGTTTGCATCCGTTgactcttttggttgcagaaaactggc
-tcagacaaaaaggggatttgctggactgaaaaggccaggctggagctatggtgcagcagg
-atctaagggcttaagtgatgtctttagggtggggtttctctccatttttttctgctcagc
-atccttcagaatccacttcattcccagAGTCTATGAAGGTGGGGTGCACAGAGAGAGTCT
-GTTGGACCAGTGTGGTCACACACACACCCTGAACCAAGGAGCACAACACCTGAGTGGCTG
-AGGCTGCAGGGCACGTCCCAGATTACACTGACCAAAGAGTAGGAAAATGTTCCCCATCAG
-AAATTGGTAGAACAGGGAATGGATTCTGGGGAAGTAAGCAATGAACATTATCCGTAAGGG
-CCTActatatggtaagcagctattaatcgctttgccaatttatagttgaggaaacagcct
-cagagaggtgaagtcactctgacagccaggaagtagggaaaagcaagcttggaacgcagc
-tctgtctggtaccagagcTGAGGGTCTGGGGAGCTCCACCATCCTGCTTTCCAGGCAACA
-TCTTTACCCATCTCTGTTTTGGTCCAAGGCACAAAGCTGGTGTCAGATGGCTCTTGGATA
-AGCCTGTGTGGGAAGGACAGATAGATGGGGGTGTGTatggatgaatggattggtgaatgg
-atgaacagcggggtggatggatgggtaggtagaagggtggatggattgctggctgtgtgg
-tttactggctaggtgggtgggtaaattggtatatggttaggtggaagggtggatgtatgg
-ataggtgggtggatgCTTGGGTGAATAAATGAAATGGCAACTGAAAGGACAGGTGGAAGG
-ATGTGTGGGTAACTAGATGGGAGGGTGAATAGAATAATGCTGACATAAGCATTAACAATT
-ATGTCTAGCCTCTTGCCCCTCTCTTCCCAACTGCCTTTTCCAGTGGAAAAATTGAAAATC
-ATGGACCCGGGGAACACATTCCCCTGTGGTCTGTTAATAGAGGCCCAGCAAGGCCAGCCG
-AGGCTGTCAACTCACCCCCCACTAGGACCCTGTCATTAGCCACACTCCCCCAACCCTGCC
-CTTGGGTGGAAGTATGATCTGGTGGGCACTGAGGGGCTGGGCCCATCCAGGCCCCTTATT
-AAGCCTTATTAAGCCCACAGACGGGGAGCAAAAAGGGGAGAAGAACTTTCTCCCAAAGGT
-CAGCTGTTGGAAAAAGAAGGTACAGATGTCTCTGGGGTGGTCGTCTACTCtcaggccaca
-aggaatgtgaaagtttgcctggcccaatctgctctgctgtcttcttgcaggctgggaaac
-tgaggcccatacaggagacaggagggacacacagaagtcgggacagagccagactcaaac
-ctcaggccggctcacagaccatAGCCCAGCCTTTCCCTGAAACAGCCTCAGCATCAACAA
-TGGGGAGGGAAAGGAATGGGCATGAATGGGGCTCCTGCTATATGCCAGGCCCTTGAGCAA
-AGCATTTTCTGTTCATGGAGCCACTGGTCTCCTCTGTATCCCCATGAGTAAAATGGAAGT
-TATGCCTGTCCTGTCACGGattgaacaagcatttgttaaacatctgttatactgtgggcc
-aagcactggtctaggtgccaggaatatggcattaactagccaaacaaggtttctgctttc
-agagagcttactttctagacagtgatagagacagacaaataagtaggtagataaaatgtg
-atatgaagaaaattgaggagtggtatgagatgtacaaggatggaagggacgttctttgga
-tgagatggttgggaagggcctctctgagaaggtgaTCATGGTCAAGGTCATtaattgtcc
-accaagtccattctcccctttgctagtatgtgggcaaagcccacaagtggctgtccaggc
-agggtcaacatttcccagccctatttgcatgcaggtgtggccatgtgactagctcttacc
-aatagaatgggagcagaagtgatgagtgccacatccaggcctagcttttgagaagtgagg
-gagcttcccccatgttcttgttacttttcccctggctgaattcaaatgatggcaagaccc
-caagatagaggagccacaagattagaagagcctggattcctgcatcaccacatggaggag
-agccactcattgccctggcacatccattgcatgagtgagaaataaacttCAGGTGAGACC
-CAAAAGACATGTGATGAACTGGTTaggacattgcaggcagaggaaatagcatgtgcaaaa
-ggctcaaggcagaaccaagcttggcatgttggcacagaaaggataccaatgtggccagaa
-taaatggcacaagaggaggaaatgaggtgaaccatgcaggcagtggcctcagtcaggagt
-ctgtatttcaagtggccccagtggaggtggcgccatcagcagggaagaaataccatgtgg
-ttcatacttggaaaagatccctctggccactgtgcagagatgagttggaaggaggcagga
-atggacacaccagagaggagctggtgcagtcatcctagcctggatgaggctggggacata
-agagtgagtgaacagagtgggtttggatatattttcaagggcttgctgatgggttgtttg
-tggaaggtgaaggaaaCCAAATAACCCACAAGCCATTAAACAAAATCTAATGCAGAAGCC
-AATATATATTAGTAAACACTTTAGGGGTCTCTGTCTAGCTTCTAATCTTCCTTCCCTGAG
-AACCTCCCACTTATGCCTATCTGATAACTCTACTTATCTGATAAACTGGCCCCTCCCCTG
-CCCTAGCTCATGGAGCTGGAGATCGGTCCCTGACTGGGGCTCAGCCAATCAGATCATCCC
-TGGCTGTCAGACCCCAGTGTGTGGCTGGATGGGGAATAGGCTGGGCCCTAGCACTCTCTC
-CTTGATAGAGATGATGGGGTAGGGGGAAGGTCAGCAGCCCAGAAGCTGAGGAAGAATGAA
-CTCTCCAAGGACCACCTACCCATCCCATAGCAGGCGAAACATAGCTGCAAGTGGACTCAA
-CCACCCTCAACCACAATTGGAGCTGCCACCAGCCAAGTGTGGAAAGGGTTGGTCTTTGCA
-GAGCCCTGGACTGGAAGAGGAGAGTGGGTCTCCCAGGGCAGAAAATGGGAGTGGCCAGCT
-CCAATTCTGTGCCTCAGGTTGGGAGACATGATCCTCTGGGTTCTTTCCATACCCTAGACA
-AGGATATTCCTTGTCTGAGCCTAGACAAGTTATTCCCCTGGGAAGGAGGGAGGTGCTTCT
-GTTTCTCCATCTGTCAGGTGGCTGAGtataacagatttcatttccaaaaatggccacagc
-cccctgctcctcatgaaccctgccactctccatcaagagggagagtttatttctcctccc
-ctggagactggcaggactttgtgactgccttgatgaatagaacgcagcagaggtgactgt
-gtaacttccaagggtgggtaagaaaagacaatacagcttctctctggctctttgtcttga
-gacactcaccctgggaaccagacgaccacggtgtaaggaagcccaggccccctggaaaag
-ccagaggtaaatgttctggccgacatttacccagctggggtcccagccaacagtcagcat
-caaccaccagacccatgagggaatcagtccagcccctggccatcaagtcttccatctgag
-gccccagacaccgtggagcacagacaaatctacccactgtgcccttctggattcctgccc
-cacacaatatgtgaatgcaatgaatgactgtttgatgccagtgtgttcaggggtgatggg
-taacgcagcactagatacccagaacGCTGACTCAGGCAGACTCTGCCTCCATGACACCCT
-CCGTGCTAAGCATCTGTTCCATTTCCCCACTGTCCTGAAATTTCCAGACACTCCTCTTTG
-ACAAGCCAGGCTTGGCTATGAGCTGGGGCCTCTCAGGGATCTTCCAAAGATCAGCCGTGG
-AACAAGCCCTGCGGGGAGTTCACTCCCTGGTCAAGAACCTTTGCTAACTCCCCATTTCCC
-CCCATATCAAATCTCAGCTCTTCTACTAGGCTTCCCAGGCCTGTCCTAATCTCCTCCATC
-CTCATGTCTCCCTGAAATGGGCCACAATTCCTCCCTCTGCAGTGTATTAAGAGTGAGAAT
-GTGGGGTTAGATGAGGTGAGGGGAATCGCAGGCTCTGGGAGAGCTTTGAGAGCTAGGCCT
-GAAGCTTTAGAAGGCAGTCttccctcatttagcaaatattgagtcctagtgtgcactacg
-ttctatttacagtgctgggaatacacagctgcacctgctagacataatccctgtcctaaa
-cccatgaggatcatattctcttccacctcagggcctttgcacctgccattctcctaacct
-aaaatctatttcggaagatttgtgtacacctcatcctttatccttccagtctcaccttag
-aagggcctgcctggccaccctctctagtcatccccattgctaattccctttattattatt
-attttttttttgagacagagtctcactctgtcactgaggctggagtgcaatggcacaatc
-ttggctcactgcaacctctgcctcctgggttcaagtgattctcctgtctcagcctcccaa
-gtagctgggattaccggcacatgctgccacacctagctaattttttgtattttagtagag
-acagggtttcaccgtgttcaaggctggtcttgaacttctgagctcaggcaatccacccac
-ctctgcctcccaaggtgctaggattacaggtgtgagccaccatgcctggcctaattccct
-ttactcttaattatatctccctgttcattttctccctaagtcttgaacaacagtatataa
-tctgtgatggctgatttacttgatgtttgtctgacttcccctactagaagtgtcagctcc
-ctgaggcagggactgtgtctgtctcattcactgctgtgtgccagggcatggcacagggcc
-tggcacccaggggtgctctatgactattAAATGTGTGCAGTGTGATGCTGGCTGCACAGT
-GCCTGCTTGCAGCTGGGAAGCTCGCAGTAAGGGGTGATCCTCTCTTTCTCTTCTGCCCTG
-TCTGTGGACATGCCCCATAAACACTCAACAGACTCCCCTCTGTGCCAGGTTCCATGTGGG
-CACCAGCAGCATGTAAGGGCTCAAACACAGTCGCTGGTACTGAAGCAGCTCCCAAATACT
-GGGGCAGGAGACAGATATCCAGCCTGTACTGGATATCTGGGGACATAGTGTAGCTGGTAG
-GGAGAGACGGCACAAAAGTCAGGGCACCAGAGGTCTGCAGTGCCAAATTAGAGTGGAGTA
-AGGACTCCATGCTGAGTAAGGAAAGAAGATCAGGCAGGCACTGGGGAGTACATTGAGGAT
-GGAAAGGAGGGCGATGGAGGCCATCTGGAAGGACGAAAGCGAGTGGTAGCAGGAGAGGCA
-TCTTAGgtatgaccccgggcatgacacgcaacctctctgaatctgtgtccCTGTTGgtat
-aacattctgtgaagcacacaggtcctggagccttcctgggttcaaatcccaccctctgat
-tactcatgaccctcaataagttctttcaacttggtttcttcatctgtaaaatggagatga
-caataatagcacctccccactattgtttcatcaggatcacatgagttaatgcattgaaaa
-cacttagatcggtgccaggcacatggtaagtggtcagtcaacgtGAGCTAGCACTGAAGC
-AGGAGTCACAGTTGCAAAGCACAGACCAGTGCCTGCACGCGCACACAGCAGGCACTCATC
-AGTGAGACGGACCTTCTATCTGCCTCTTACGCTGtaacacatatcaccacccaacatggt
-atttttttgcttatgtgattattgtcccttgcctccaccagaatgtgagctcaatgaggg
-caggggttctgtctcttttgttcccttgcattatccccagagcccagggcagtacttgac
-acatagtaggtgctcagtaagtagttgctgaatgaattcatttctaatttttagttttgt
-gcttggtgcacagcaaatgctcaacaaatgctggtcctcttCACCCCTACCAGCCTCTCC
-ATCCCGTTTCTACCTGCTCCAGGAAGCCCTCTTGGGCCTCGCAGCATCCACCAACCGTCC
-TTCATCCCAGGCTAAGTTCCCCACAGACCCCCTTGGCCCACCTCCCATCTGCTTTATCAT
-GCCTGTGGAGCCAAGGTTCACCTTGTTCCCCGGCACTCCCGCCAGCGTGAGTAAGCATCA
-GCCAGGACCTGGAGAGTAGAACCCACCCAGAGAAGAGCCCCTGCTTCTCTGCCCACCCCA
-GGCCAGAAGTGCTCTTGCCCCTGGACTGGTTTGTCCAGGGAGGTTTTCCAAGTCACTGAG
-AGCCCCATGATCAGATGTCACCAGATCCTCCCACCCCGGCTGCAGGGGCTGCAGTACCAC
-CAGGGCCAGAGCCATCCCCATGCGTGATTTCAACATCTGTAATACTTTCCCCTCTCCTTG
-TGGAATTCCCCCTCCAAATTCCTCCTGCTTCattattagtatatataaaaaataaaaaaa
-ttaaGCTGTCTTAATCATTTTCCATATTAGCTGACAGCCGGTTCCCATATGCCTGGGAGT
-GAGACCACACCTCCTGTTCCCCCCCCCTCCCCGCCCTCTCTGCTGTTCCAAAATGACTAG
-CCCCAAACAAGGCCCAGTTACTGAAAACCCTCTATCTTACAGACTCCGCAGCCCTGACTC
-CTTGGAGTCCTGTCTGGCTGGTGTGGCCCAAGCCAAAAGCAAAGCAGGAAGATTCTCTTA
-TGTCCCCAAAAAGTGCAGACCTCAGGGCTGGGCTGATCAAGGTGCAAATCTCAGTGTCAT
-CACCTACAAACTGGAACTCCACAAACTGCTTTGTCCTGTCCAAgaaagggcacaaattct
-gaagcagacggatctgagttccatctctggaactcagctctgtcaccttgggcgagccag
-ttcaccactctgagcctgagtttcgtcatctgtaaaacggcagaaacaacagcagttacc
-tctcagtgtcacagtgaaaatcaaggagaCTTTGataacagcagtgaacatccactgatc
-ccactgtgtgccaggcactgagccaagccctccctgcctccccctcattgcatctgcaca
-acaacctgctttgcagacagaaacaaagggaccgagatattaaaaatttctccaggacaa
-agaacagggaggtggaggagcaccctgacccaggcccgGCATTTTCAGTTCCACTCGAGA
-GCCTGACCCCCTGGAGATACTCCACAAGTCCTCACCCTTTTCCCCCAGTTTCACCTTGGT
-CTTTCCTCCTCTCATGGTCTTGAGCATGGGCATCAGGGATTGGCAGCACTGTTGTGTCCT
-GTCCCCACTGCCCAACCCCAGTGCCAGGGCTGTGAGCATCAGGAGGGTCGGTAGGAGCCC
-GTGGCCCATGCATGGCAGACTCAGGTGGCCCAGCACCTTGCGGCTGCTCCTAAAAGCACA
-GACACCTGTATTGAAGAGAGGGAAGTTCTGGGTTGAACTTGAACTGATTGAGAATTCCCA
-AGCCAGAGGAGATAGACAACTATGCCAGACCTCAAACTTGAAGATTGTTTTTGTTTTTAT
-TTAACTGAACCAAACTGATTTTTTTCTTCCCCCCGAATTACGAGTGAATCAGTTCATAAT
-AGAAGCCCCCATTATATCTCCTAGATTTTTAACCAAAATATCCAAAAAGAATTGGGCTAA
-CATAGCCACACCATCTTGGAATATGTATATTTATAGTGACATGTCATAAAGACTTCTAGT
-ATTTTGTCTCTACTCTTGATCCAAACTCCAGTGGTTCcggtttctctatattaagtattc
-acgtgctttgcatgtgtcacttttcatccttcagcccttagagggaagtatcattcatct
-tcaacttacagatgaggaaactgagactcaacgtagttaaatgatctgtaagacaaggtt
-ctgaatttgaacataggtctcagctgcagagccatgttattgctaacacagcctctgtat
-ggttctccagaaggcccctgatcCACTAAGAAACAAACCTGTCCCCCAATGCCAGCTGAC
-CCTATCCATGAACCCTCCTCCCTCCAGCCAGACAGGCCTCTGCCCGGAGAGGCAGCATCA
-TCTCCAGCTGcctgtactctcatcccagttcagccattcgccaagcatgacaactcggac
-aagacctttccctcctcagcctgtttcctcctgtgctgaggagaaataaaatcctccatc
-tcccacgctgttctgtgaaatgaagcaatcatgtacctaaagtgcgagcacaTagctggg
-catggtggctcacacctgtaatcccagcactttgggaggctgaggcaggcgtatcacttg
-agcttaggagttcaagaccagcctggtcaacatggcaaaaatccaccacttgagactagg
-atttcaagaccagccgggccaacatggcaaaaacccatacaaaattagctgggcgtggtg
-gcacacacctgtaatcccagctactcaggaggctgaggcacgagaatcacttcaacccac
-gaggcagagcttgcagtgagctgagatggcaccactgcattctggcctgggtgacagagc
-aagactgtctcaaaaaccaaaaacaacaataacaaaaaaaaGGGCTAGCACTTATTTTAC
-TTCTAAACTCTCCAGCCTCAACCCAACGTAAGTGAGGTGCATATAATAGGTGCTCAAGAA
-TTACTCATTGATGATAAAAGCAAGCCTGGAACAacaaaaataagagactgggcagaaata
-ttacaaaacatcagaagtagatccctctggggtggaattatgggtgattttattgtcttc
-ttggtgattttttttttctattttccaaactctcAGCTTGGAAGTATGTTATACTGTGTT
-TTCTAATTGTATGACACTATGAACTATACAATGCACTGTACACCTAATAGCAGTTTTTGA
-GAGGAAAGAACAAAACTACTTCATTGGATTGTAAGACTTGTTCTGATTTTGGTAAAGTTA
-AACTCTGCAGGGCAGGAAGAGTAGAGAGGTGTTTTAGAATCAAGGAAATACATTTGTAAT
-CAAGCAATCAAAGTGGTGGTCTTGGGGGGAGGAGGCTAATAAAATTATTATTGTTAATGT
-TATTATTAtttttgagatggagtctccctctgttgcccaggctggggtgcagtggcatga
-tcttggctcactgtaacctccacctcccgaattcaagcaattatcctgcctcagcctccc
-aagtagctgggactacaggcgcacgccaccatgcctggctaattttttgtattttaggag
-agactgggtttcaccgtgttgctcaagctggtctcaaactcctgagctcaggcaatccac
-ccgcctcggcctccgaaagtgctgggattacaggcatgagccactgaacctggccATAGC
-ATTACTTTTTAAAGGAGGAAGAGGATACAGGCAACTTTTCATTGCTTCCAGAACCTGGAA
-CATCAGCTTAACCTTGCCGGCACACCcagctcacctgggatatttgaaaataaacacaga
-tggccaggccctgtcctggtctgaatggccagcatctctaggctggggcctgggagtctg
-tgttttaaGTGGACACAGCAGATCCTGGGCACTGTATAGTAAATaaatctcctcatccac
-tttctgtctcatcttacagatgggaaatcagaagtccaaccaggggaggtgTTTAGCACT
-CTCCTGCCTGAATGGTGAGGGTGGCCAATCTCTTCCTTCACCCCAAGGGCCTTTCTCAGT
-CCCTGTCACCATCTTACCTCTCCCAGTCCTAGCCCCTTCCCCAGCCTTGCTCTGCCAGCC
-TGGAGCTGTTTCTTCCTTTTCTCCCTAAGGGAGTGTTCCCTGTTCTTAATTAGGGAGACT
-CTGGGTATTTTTGTCTCTTTGAGTACTGCGTTCTGTTGCCAGCAAATAACTTTAAATAGA
-AAAAATATGCCCAAAATTAAACTAGAAAACAGAAATAAATAGGAAGGGGGTGGGCTGAGT
-GTCAGCCTGCCCTTGGTGGAGAGGGTGGGctctgggcctcctttcctgcatctctgccat
-ggagaccatcacagtacccaccttctggggtgctgtgcacatcagacaagaagaggcaca
-cagtacactttgcacagggtgtctAAGTGTCCATTAATATCCAAAGTTACTGGGCACACT
-CGTTGCTTGGATTTTGAGATAATTATGTAGAGAAAATGTCAAGGGGCTCAAAGTCCCCCA
-GTTGACATTTCCCTACCAAGAGCTACTTTTATAACATGCTGCCGGATGTCATTTTCTTAA
-TAGGTACAATTTTAAGAGCAtctctccaccttcttccctaccctagtccaactgttcaca
-gctgaaagagtgaccttccaaaagcctaactcagatcatatgattctttgcctctgaaat
-ttttcaaagctctccattgtctacgaaatgccggcctcagagcctttcaggataggggcc
-atgaagggtctcaaatttcaaatttcatcttcctctaccatcctcctgtcaccctccagc
-cacacagacctgccccttggtccccaaaTGGATGCCCACTTCCTTTTTCCCTAATTGAAA
-GCCAGGGCAGAGTTAGGTTAATCACATGCCTTAGCTCCAGCCACACTTTTGGCACCAGAG
-TGAGACCCCTCCCTTATTTTATGTGTCCCTTTCATGCctcatccctactctcatcccacc
-tctcatccctccctcATGTGGATACCCCCCTAACGTGTTTGGCGTGTGTCTTTAAACATG
-CACGTGCCCTTGGAAAATGTGCAATGTTGTTGTCTGTGTGTATGATTTTAATTTACATAA
-ATGCTATTCATATTATGGCTTCTTACCTTTTTTCCTTGACACTGTCTTGAGATCTAGCCT
-GCATATGTGTGGAATCATCACTTCCAACTGCAGAAGAGTCAGCCACAGGGGGTGTCCTCT
-GTGCTTCCCTGCCCATCGTTCTGGTGCTGGTGGCCTAGGCTACCTCTGACTCCCCACAAC
-AAACCTCTGACTGCTTCTTATGTAAGAGAACACAACGACAGCTCCTGCTTTTTGCATAAC
-GAGCCGTTGTTTAGTAACAAGGGGCAGATGCCTCACTCAAGTGGATTTAGACACAGAGAC
-AAAGAAAGTGTAGATCTAGGTGTTCACTAACTCCTCAGGCAGCTGTCTTTCTCCATCTTA
-TCAATTCCAAGATCCCAGCCTCCCACCTTGGCAACTGCAGGGGAAAAGAAGCTCCCGAAA
-CAGTCCCAGGTGACTTTCTGGACCATAGCCTTTGTGCTGTTTCTTTGACGGTGGGATCTG
-GTTTTGTCCTGGCTTCAGCCTTCCCAGATCCATGTGTTTCAGAGGAAGTGAACTCCAGTC
-TCGGGGtgttatggactgaattcgaaattgtgttgaaaccctaaagcccaatgtggctat
-attagaagacatggtctgaagggaggtaattcaagttaaaggaggtcacgagggtggtat
-ccagtaggactggtgtccttataagaggaagagacatcagagctctctcttcacatagac
-acacagagcagatgccacatgaggacacagtgaggaggtggccatctacaggccagaaag
-gcctcaccagaaaccaaacctgatgacaccttgatcttgaacttccagcctccagaacca
-ggaggaaataaatttctgttgctgaagacacccagtctgcagtattttgttatggtagcc
-caagcagactaatacaGGGAATGAACTGTGATTGGTCTAAGGcaatatttctccattttt
-ttttcattattacccctcattattgacctcctgaagagttgttttaagaatttttttctc
-ctaagagtgcctcccacaaaatatatatatactacagacatatctatttatgtagtgtgg
-tttcttggagggtcacaaacggttgtcatatctaagattttgtcataccttaacctaagc
-taatttttacagccttaggagcaatattgccccattgagaatgcaCTGCCTAAGGCAATG
-TACTTGGTCTgtgattggttagaacatgggcatgtgaggctaatgtagaccatagatgtg
-agagccacagaggaagaaattgtcccttttcacctttggtctttattatggatggacata
-atgcctggatctgcggcagctattttgtgactatgaggacaggctgatatgctttaaatg
-gccaactagtagataaaacctaggccattgttcatatatatatatatatttgagatggaa
-tttcactcttgtcacccaggctgaagttcagtggctcgatctcagttcactgcaacctct
-gcctggttcaagctattcccctgccagagccttcagagtatctgggattacaggcaccca
-ccaccactcccagctaatttttgtatttttagtagagacgacgtttcaccatgttggtca
-ggttggtctcaaactcctgacctcaggtgatccacccacctcggcctcccaaagtgctgg
-gattacatgtgtgagccaccacacccggcccactgatcatatttttgagcaataaaagta
-accagccctgaaactgccctaccacaaactcctccttatgtgaaatgatgcattttcaca
-tttcagcctgttcagctgtgtagtttttgtaattgcagctgaagacattctaacagaTCC
-TGTtctttttcccgtaagttgtaccaaatgttctgaggcagactggcagtgatgggcctg
-gttagtccatgagttcatccccaaaccaatcttgtggccagacttgaatcctgtgcccac
-ccacctttgtagctcagggatgggaaggggtcaaccccacctggactgagaactgggggc
-tgttcctccgagggagatgagggagatacttcccaaagggattgtgaatgctgagagggc
-agaaatgacagctgGGTTTCACATTCACACCATCCCTTCTACATGAAATACCCCATCTCC
-AGCCCAATATACTCCCTCTAGTGCAGCTCAGCATCTCCCTCTTCTGAAAGGTCTCCCCAA
-GACCATGTTGAAATTATCTCTTCTCTTCCAGGTGATGCTCACTGGGGCATTTGTAGTCTA
-CCTCTGCCCTTAAGAGGCCAGTCTTCATGGCATGCAATCattcatgcatccatctaccct
-ccaatcttaattagcaccttctgtagccatccctaggccttggggtgctaagcaagaaaa
-aggcataatttccatcctcaaggatctcacagtccaggggaggaagcaaaactcataggc
-attcatTCGACACACATTTATTCTCTGTATAGATATGAGTAAAATATTGCATATCCTCAA
-GGAAAGGGGGAACTCCCCAGCTAATGGGACAGACAGATGAAGAACAAGTAAGTACAGTGT
-ATAATGAGGTGACAGAAGCCACCACTCATTGCTCTGACTAGGAGGAAACAACAAGATGCC
-TTAGACTCTTTTGGCCAAGGAAAGACACACTAGCTGTGTGAATGCCAGGTGAGCTGGCAT
-CATTTGTCTGGGATAGGGTGCAGTGGAGGCTGTTGAGGCCTGACAGCTTCCCCCTTCACC
-TTACTCCATTGTTTGCCAGGCTCATGCCTGGGAGAACCATATGCATAAGAAGACCTGGAT
-CTTATAGGAAGAAGAAGTGGAAAAGCCAATACCTGACCTCCAGGAATCAGAATTTGtgtt
-gcaggttgggttctatgcaggcagacacgaagacagagtttaggtgcaaggtgtttatta
-ggaatcaatatctggaaaagaaaggggcaggaatcagggttgaggaggaggagatactta
-actgcaatgtgacccagtaaagcgttggtcaacatggtgaggaagttgggagcaagaatt
-atccctcgatagacaccccgttctacatgatgtaattattatgaattacatgcctgtatc
-aaaacatctcatgtaccccataaatatatatatacctactatgtacccacaaaaattaaa
-attaaaaagagttacccctcagagaatcccaaaagatatcaaaatatccagacttttgtc
-tcagccccttcattttgatagttcactattcaccaaatacaggttgccccaggaagggca
-tggcctgggatgaagtggccctctcaagctgaggctaaccttgaaggggctgaagctgaa
-ggctctctgctgaccatgcttccCCCGCCTTCAGCTGTCAAGTCCTTCAGGGTCAGCTCA
-GTTCTGAGTGCCACTTTACTTGGGGTCACTTCTTTGATTCCAAGCAGTTTAACATAATGG
-CAACCACAGTTAGGGAGACCTGTCCTGGTGGATCAGGGTGGCCCAAGCTAAGGTCTGGAG
-GAAAGACGACCCTCAAGAAAAGATGTCTCCTCTGTCCCTCCACCCCATTCATACTAAGGG
-CCATGGGTTCATGGAGAGGGTTTCAGATGGGCACATTATAGGGCTGAGGCTAAAAGTCTC
-TTTGAACCAACTCACACTTGTACAGAAGTGATGCTGTGAGGACTAATGAAaacaagtagc
-atctactgcatgcttaacatacaccaggcactattccaaattttttacccacattagtca
-tttaattctcacattaccctatcagaggaacaatgatGAGCATGGGTATGTAGACCAGAA
-GGAGCTAAAACCCTAGAACACAAGCAGAGGACACCAGTGAGCCCAGGAAAGGCCCTGGGC
-CCCTGGAAGCAGTCTCCTCATCCGCCTGCATGGGCCAGGGTTCAACAGAGGCACCATGTG
-GCTGCAAGAGGCAGAAATGGCTGCAGACTGAGCTCTACTAGTTCCTTCCACTTGATGTTT
-GAATAAAGTCCCTGGAAAACTTGGGGAGATGGGATGAGTATCTCAGCTGGGAACACACCA
-AGACTTCTTAATAAGGCATGGAGAGGCTCAAGCAATTGATTGGAAAGAAAAAAAAAAAAC
-AAAACTAACTCAAGTTGGTAGATTTTACCTGCCATGAGATGTTTGTGAATAGCAGAGCAC
-AGGGTAGAGAGGTCACTGCCAAAGAGCAACTCCCAGTCACCCTTGACATGTGGCATCCCC
-TCTCATGCCTCCACGTCTGCATAAGCTTGGTAATCTTGTGCCCTCTGACACCATTCTCCC
-ACCTGTCACCCCACTCCATTCTGCCCATCAGGATAATGCTGCCACATCCTCCAGGAAGCC
-TTCTCTGGCTGTCCTTCTCCATGACGCTAGGCTCCCCTTCCATCTTCCCACAACTTCATG
-TACCTCCCTCTATCATTTTATTTATCAATCATTCTAGATTTTATGTGTTTATGACTGACT
-TTCCTCCTAGATTATGAGGCAGTATGATTATATTATTTACCTTTCCCACTGTCATGCATT
-CCCATTTATCTCACTCGGCGATTGTCACAACAatgctgcaaactaactaccactaagctc
-agtggcttaaaacaataacttcttctcactcatgggtctgtaggtcagctgggattctgg
-tggtctagactgggctgggctccaggcatgcatgcggatctgctccacgcgtctctcatc
-ctccttgacccacagaagacagctggaagcaggcaggacctcataggctttagctcagag
-ctggtgtgctgtcacttctgcccatgttccatcagccagagcaagtcacatggccaagct
-caacatcaattagatgtggagaaaattgatgagtcatgtggcaaagggcatggatatagg
-aaaaggtgaaaattAGGAATAGTATGATTTACTGTGACACAGATGCTTTCTGGTGAACAC
-CAacctctccaaactcatttcaagacccttcctcatcagcccagtgctcaaggtcaattc
-ctgcaaccttcagccctttgtagcctttcagtcttttgaacacactgtactttttgtctg
-acatacacctttcccatccctttcagatctcagctgagatgtcatctcctcaaagaTTTG
-CATGGCTGTAGGCTTTGCCACCAGGAGATAGTGACCCAACAAACAAGCTTGTATGGGTGA
-GTCCCTGAATCCAAACCCAACCCTGcctggccttgccactcactgctgtgaggccctaag
-aaaatcttatcttttttctactgctgttttcttatctgccaaaagtaaataaaaacaTCT
-TCCCAtatcagttagaaatgcttgcagctgcaagtagcagaacccctaatagtagctaaa
-acaataatatctcacaaactagatgcctggaagcaagaagctccagggctggtttattgg
-ctcagtgatgtaaggacTAAGTGCTCACTCATACCCTCTCATTTCTCCTCCTTCCCTTTC
-CCCATTCTACtaggttggtgcaaaagtaattgtggtttttgccattactttcaatggcaa
-aTTGtggtgcaaaagtagttgtggtttttgccattactttcaatggaaaaaacagcaatt
-acttttgcaccaacagcaaaaacagcaattacttttgcaccaacctTAATATTTCCACAG
-TGTCTTCCCTAAAGTCTCACAGAAGGTTCCCTTTACATTTTACTGGGCAGACATGGATCA
-TATGGCCACTCTAGCAGGAAAGTGAAGTGGGAATGCCAATATCAGGGTTTTGTTGTTGTT
-GTTGTTCAGCCTCCTTTGGGGGAAGCAGCAAACGAGAAGGGGGTAAGAATTGGCTGCTGT
-GTAATCAACTCACAATATCTACTCCTGATCTAACTTTCTACCTCACAGAATTTTTGTGAA
-AATTTGGATTGCCAGTAGCACTCTGAAGGCCACAAGCTTATAAAATAATAATCTACTTTT
-ATTATTATTCATGACTTATTAAGAAAAAATCAATATTGGAAGAGAATAATACTTCGCATT
-TGTTCAACAATGAACTTTCCGAAGGTGAAAGGAAAAGCAATTACTGTCTGAGCCCAGCCT
-GAGTCCCAAGTCCATGCCAAGCGCAAGCCTGCAAGACCATTTCCTCCTCCAGGGACTTGC
-TTCGATTGTGctaaaacagcttctgccaagccaaccaggattgcatgctgccaaatccag
-tactcattttcctgatcttattttatttgaattccctgagcattcaatccagttggcagc
-accctccttgatacatgatcctgtctgggcttctgtatgctcacagccctggttgttcct
-cagtctcctctgctggcttctccccatctacctggtttctagatgccagctgactcagga
-ctcacatgtgagctcctctcctccttcccaccccctatgctctttctgtctcaGGTttct
-caaaccttagcatgcatcaccgtcacagggagggcttgttaacacatagattgctgggtc
-tcactcccacagtgtctgatttcatcgctctagggtgaaacctgaacacttgcatttcta
-acaatttctaggtgatggtgatgatgctggtcctgggaccaccccttgagaacctctCAC
-TGCTCTatctcaaccagtgttgagagccttgtttctcagccttggctgcaaattggaatc
-acccggggtgctttaaaatatggacaccaggatctcatcccccagagattctgattttaa
-tggtctgcattatatcctgggtacctagagttaaaaacctcccccaggtgacttcaacat
-gcaggtaaagttgaaagcccctaatttagatactacttaactgctagtaacacctacatt
-tatttccctctcccagacttgtcctctgagttttagcccagtatgcccaattattcactc
-gatatctccacttacgtgactcacaagcatctgagagttaacacacccaaagtggaagtc
-tgaatcttcacttccaaattgctacttctctatcttccccatctcagcaaacagcaactc
-catccatgtgctgtagtttattggggtaaaaaccttggagttatctttggctcctctctc
-ccctccatgacccatatataatcctttgacatagtctatcggttccacctacaaaacata
-tccctaaattctcctctctgcctgaactgctaacacctacatcagaatatcatcaactct
-ttcctgggtggtctctgcagcatcctcacctccctacttctattctttactccctcgcca
-atgcatcctccaaacagcagccagaatggtctcttaaaatcataaaccagatcatgatac
-accccgatttaaagtcttgcaaaacttcctgtcaccttgggcataaaatctcagctcttg
-ctcatggccagtgagatcctgtcctcttctcaaccttgtctattccgctctctccctggc
-ttagatactccaaacacactggccttccttctgtcccttaaatacattcagttatttctt
-gcatttactatttcattaacctggatttctgttccctttggactctgcttggccagctac
-ctctcatctttcaggtctgcttaagtgtcactgccttaaagtgtctccctgacccgcctg
-ttatgttctatcataagactctatattcttcttagcgcctatcagagttggtgatcattt
-gatttgtaaatatattggtttattatttgtctctctcactagactgtgtgctttgtgagg
-gcaggaaccatgcctgttttggtcacggttgacacctcagtgcccagaagagtgaatgag
-acatagtgggtattcaaaacatacttagggagggagagaaaagaggaagaaaaaggaggg
-aggagaaaggaaggTCTAGTAATACTCAGAGCCCAGGAATTACACACCAGATACCCCTTG
-CTTCTACCCAAGAGGTGGTTCAGATTAGAGATTAGATTTCAAGGCTCCAGCTTGCTAGCT
-CATAACTGCTTCTACTCAAGACGGTCTATTCATGTAGCAAAGTCaaaatgtgaacatgct
-tttaagttccttgacgacaggaattgtggcttgtttactcttctacctggcatttgcaca
-gagcctgggcctgaatgaaagttcagtaaatggttcatgaatgaTTTGAATGGCATTTGC
-CTGAAGGAAATCTAAGAAAGTCTTGCCTTGGTTTCCCCATTAAATGGGGCAAGCAATTCT
-TATCTCCCCTTCCAGAGAGCTGCTGCCAACACAGGGAATCCATCCTGGAAGAAAAGATTG
-GTGGCCACCTGCACCATCAGGTGGAGGGCATCTCTCAGCTGCCCTTGCCACATCTGCAGC
-CCTAAGCTTCCAGGTGACCCCAGTGGACCAGTCTGCCCAGAGCATATCATTAGTTAGGGG
-CACTCTGCAGGAGGATGCCTGCCTTTGCTAGTGCATAGCTAATGTCCCAGGGGGCTTCCT
-CTAATTAAAACCCAAACTGCAATTATAGTTGTGCCAAAGCATGTGCACATGGCGCCACTT
-AAAAGGGACAGATTGACAAGGCGTTAACAACTCCAGAGGCAGCATTGTCCCAGCACCAGG
-TGCTACCAATCATCAAAATTAGAACCAAATGAGTCACTGGGGCTCAAGATACAGTATCCA
-GTGCAGACTAATGGGTGATTCCAAGAAACTTATGAGGATTATTTAAaacacactaactat
-gctccttctacagggcctttgcacttactagtccctgtacttcttcttgcctaactctat
-ttgatctctctcaattatcacctcttctgagacacctgctttgatcacatgaatctctac
-cctgctttatttttcttcttagtgtttattatcatctgatattatatatttgtttTGCGA
-TTGATAGCCCaaaatatgttttaatattgtataaatgtaaaacatatataaatacacaaa
-attttataattttCTGCAATACATATGTATCAAGAAGATACAGCATACACACTAAGGAGG
-GTGTCTTCTTGGGGTTGGGGGTGGTGAGGCAGGGGAATAGAAAGACTGATTCAGAAAGAA
-GAGAGGAACAATAAAAGAACAAATGAGAATATTTATATATCCTGATGACAATAGTGGGCC
-ATTATTTGAAGAGTATGATAAACTTGAATTTTCCTTCCTATCACTTGGTAAACTTGAATT
-ATTCCTCCCTGAAGTTCTGTACTCTGGGAAAAttttcttttttttttttttttggagaca
-gagtcttgctctgtcaccaggctggagtacagtggcacgatctcggctcactgcaacctc
-tgcctcctgggttcaagtgattctcatgcctcagcctcccaagtagctgggattataggc
-acatgccaccacacccagctaatttttgtatttttagtagagacagggtttcaccatgtt
-ggccaggatggtctcgatctcctgacctcatgatctgcccaccttggcctcccagagtgc
-tgggattacaggtgtgagccaccatgcctggccACTCTGGGATAATTTTATTTTGGTTTT
-TAGAAATAACTTTATTGAATATTTTAGTACCAGTAATCTTGCGATAAATTTCAGCCCTGG
-TTTGGTTGTTGTTgttgttgtttttggtctaaagccatcttgattttgcctttatttttg
-aagagtatttttactagatatagaattctaagttgtcaattatgtatattttttcagcac
-tttataaatgttatttcattgtcttctggctttcatcatttctgttgaaaagtctaccat
-cagtcttattgttgctcttctgtaggtaatgtcatttacctctgactacttttaagattt
-ttctctttatttttgtttttcagcagtcttactatgatgttcctatgtataattttctta
-gtatttaccctgcttgggattgtcagagcttcttgagtctgtgggttgatatcttttatc
-agttttgaaaaaattcttagctcttatttctgcaaatattgttaattttgtattcttatc
-ctcaccttctaggactccaaataaatgtatattttttttactaggtcccacatatctatg
-acacattcgtgtattttctattatttttctatgtatactttagtttggacacttttcatt
-tttttaagtgtgctaatcctatcttccactgtatcaaatctctgttaatcccatctgatg
-aatttttgatttcagatattatattttctcattctagaggtatcattttttcttttttat
-agacgctaattttctgatgaaattctccatcttttcaaatattttgtgcatatttttctg
-ttttttaaCATATTAATCTTAGCATGTCAAAGTCATTATCATATACCTGTTTCTATTGTC
-TATTTTATTCTGTTTGTTTTCAGATATGTCCTAGCTTTGGCATAACTAATAATGTTAATA
-GAATGCCACTTATTATACATAATGTAGAGACTCCAGATGATATATTCTTCTAGAGAAGAT
-TTACCCTCTGCTAGGCACAGAGTGGGGCTTATCATCATAAACCAGTCAGGGATTGTACTG
-AGTCAAGACTGTAAGGTAACCCCAGGAAGGTCAGTTTCCCTGTGCTTCAGTCAGTCATAC
-ACTGAACACCTCTTCTCAGAGGCTTTATGCCAAGGTTTATAGCCTCCTGCACCAGGTATC
-CCAGAATCCAGCAAGTGTCTTGAGGGATTAATGAGCCCTCAAGTCTGCCAAAGGCTCTGC
-TGGTTTCTTCCACACTAGTCCAGTGCTGCATAAAACTTGGATTCTCAGCATTCTGCTTTT
-GCCTAGAATTGGAAAATGGTCTGGGGTAAAGAAGCTATATAATTCAGCTTACTCCCCTGC
-TGTTCATTCCTTTCCAGAATTTTAGCAAGTAGTATATTTTTTTCCAATCCTatgatatct
-gacaatgctactatatttctctagtcaatttactcttccatttcctgggcaaccatttca
-ctttctcttatttcttcacatctttgacaccttctttctctcctcacttctaactgacgg
-cttacaaatgaaagcaagtggaatgacaataactttttataaaaacttctacactagtcc
-atcaacacgtctctctaatacttctccctccctctctttctctctctccctttctctctc
-tccatgtgtctgctggatcccatcattctcatctaatcaaggactttgctcctataatca
-tccctccatgaatcattttcctctctctgctaaattattcccataagtggacaaatatac
-cattagtctcccatcttctaaaaagtatataccctcccttgtctcaatatctctgtgcag
-ctacccccacattttgtttcttcccatttgaagcaaaactcctcaaaaattgtatatatt
-cactatcttcattttctttccttctatgccaaacaggttttcctccttcaaagctactct
-catcagggtcaccaaatacctctgcattgccaaatccagaggtcagttcacagacctcgc
-cttacctgattgctcagaagcatttgacactgttctctttgctggttcttcctcatgttc
-tcgacatctgagtgttggagacccccaaaatcagtcctaggactctttcttttccttcta
-tatattccttttacgtgctttccttattctctttgtatataatttaatacctctactggg
-taatttacaaagaaaacaaacttatttctcacagttctagaagctggaaagtccaagatc
-aaggcagcagcatgttcagacgtgtggtgagggctgccctctgcttcctagatggtgcct
-tgatgctgttgtcctccagaggagaggaaatctgtaaattcacatagtggaagatacgga
-attatgaaaaaggaacaaactccctccatcaagctcttttatcagtaccttgatccattc
-tgccctcatggcttaaacacctttcaaaaggccccacttcaacactgttgcattggcaat
-taagtttccaacacacacattttggggaacacattcagaccatagcaacccttttgttca
-gtctcatgattttaaatatcatttatattttatgactctcaaatgattctagccagaaat
-tatctcatgagctctagactctctctacatacccacattaacaGCAACGAAAGCACATTT
-AATCAATTTAACCCAAGGAAGTAATACGATGAGCTCAGGTAATACAGACTGAGACTTCAT
-CCAAGATCACAAGGATGGTATGTGCTAGACTCCAAAGAGATGCCCAAGATTTTGTAAATA
-CCCTTCCCTTCCACAAGAATAGAGTTGTTATTTGGTGTGATTTCTCAGGGAGTTGGGGAG
-ATCTCTTATCAAACTCCCAAATTGCTCTCCAATCTGCTCAAGTTTTCTGAAATGTTGTTG
-tttctgggtcatagcatatgcacatacttactttggttaagttcagccaaattatttctc
-cagaatggctgttccagtctacattctttccagccatgcctgtgggctcttatctccaca
-tctttgccaggtattactagccttttagtttttgcctggttaataaatgtaaagtgctaa
-ttctctgatgttttatttatcatattactaattaatttgagcatctctcacttacttgtt
-ggcttgtttctttttccataaattggtatccatttctcttgccagttttttattatggag
-tatatatatattgccaatttaaaggacttctttgaatattctagTGATTTGTCCCCTGTC
-AATTTTAGAAATTGCAAACATCTCCTAATTTGTCATTAGTCTATTATCTTTGTCTTTATG
-TCTGTCATTTAAGAGAAATCATTTTCCTGTAAATGTTTTAAAActttttattgtaaaata
-aaacacattaaaaatctcacacggcaaatgtttaacttagtaaattattataaactgaac
-cctttaaagtattactcaagtcaagaatataactttgccggccattcagaagcccctccg
-tatgttctatcccaattatagctccctctcccctccaaaagcaatattaccctgactttc
-atatcaatcactttcttgcttcttttatcatccaagtgtgcacccccagacactatggtt
-tagtcttgccATTTAAAAAAATgtttatatgtattttgagtctcttttaatctacaggct
-ccctttccatctcttctctttctttaatattcatctgttgaagaacccaggccatttgac
-ctgtacagagtcccatagtttggaatttgctgattgcaagtcttggtgaagttcaagatt
-cctctgtttaacgtctttactgtaaatggacagctggtccagaggcttcatcaggctcag
-acgctgtgttattttatcatgtggcacattcctatctgggtgcttctctttgagaaggca
-gtgacacttaaagattagatctattgattcattgcggattggaaaaaggggatgttctaa
-ttccattttttttttcattttttttaactggaataattttataaagagacacttttctca
-ctcgccattggttattgttacgaactgaattgtatccctccccaaattcattcattcgtt
-gaaacctagcccccaatgtcactgtacttggatatagggccgctagggaggtagttgagg
-ttaaatgaggtcagaagggtagggtactaatccaataagactggtacccttagcaaacaa
-agagactccagtggtctgtgtccttctctccatacctgcaaagaggaaaggccatatgaa
-gacacaatgagaagtcagccctctgtaagccaggaaggaagactcaccagaaaccacatt
-ttgtggcaccttgattttggacttcccagcctccagaactgtgagaaaataaatttctgt
-tgtttaagccacccattcggcggtattttattttggcagccctagcaaactaacaccatt
-acccaagtggtataattaatacataaaagagaagataactgcttgattctctttatttac
-caggtttcgagataatgaatttgttcctgttatcctccaaaggctaccatttaaattctt
-ttgttattattaaatcatggatttaagtatagtttgtggttttcaatccattgcattttt
-attctaattgacaatcaagttgttccatctttgaacagtaggaagctctttggcttggct
-cctgaggccttttgacttatctcccttagtccttgaagcttctttgtatcttgaatgaca
-aaatattccaggcttgtcctaccttcatatcctgctttaaacctagaatcagccatttct
-tcaaggagtcctgggtccttctaatgagaaattttatttcaagactataatatgaatgct
-agagatgttcactgctcctgggctgctcattaagtctaggcttcttgagtgggcaaagct
-aatatacatatatgtatgtgtgtgtgtgtgtatatatatatatataactcatgaattcat
-actggttcaatgagttcagttctaacttagaactcagattgttcacttaacttcttttac
-actatatttgaatcttttttcttacattctgagaattctggttcttaatatcACAGGGAG
-TGATATAATTAGGATGTCAATAGTCTTTAATTATTTAATTTATCCCATGTTGTACACACA
-ACAATACTACCAATCCTAATTACTGACAACAGTTTAAAAAGTTTTGCATATGCTATTCCA
-TTCCCTCCCCATTTTTATATTTACATAATCAAATAATAAAGCCTTTAATATATAGTCTCT
-ttctggtcttagttccgcaagtgggtatatataaaggctcaaaatcaatctttatattga
-catctctctacttatttgtgttgtctgatgctcatattgt
diff --git a/testdata/net/sf/picard/reference/Homo_sapiens_assembly18.trimmed.nodict.fasta.fai b/testdata/net/sf/picard/reference/Homo_sapiens_assembly18.trimmed.nodict.fasta.fai
deleted file mode 100644
index 04a438b..0000000
--- a/testdata/net/sf/picard/reference/Homo_sapiens_assembly18.trimmed.nodict.fasta.fai
+++ /dev/null
@@ -1,2 +0,0 @@
-chrM	16571	6	60	61
-chr20	1000000	16861	60	61
diff --git a/testdata/net/sf/picard/reference/testing.fai b/testdata/net/sf/picard/reference/testing.fai
deleted file mode 100644
index 65b7c02..0000000
--- a/testdata/net/sf/picard/reference/testing.fai
+++ /dev/null
@@ -1,7 +0,0 @@
-chrM	16571	6	50	51
-chr1;boat	247249719	16915	50	51
-chr2:money	242951149	252211635	50	51
-chr3::;	199501827	500021813	50	51
-;;;;;;;;	123	234	456	789
-file:gi|17981852|ref|NC_001807.4|	16571	2911876801	70	71
-
diff --git a/testdata/net/sf/picard/sam/Chromosome1to10.bam b/testdata/net/sf/picard/sam/Chromosome1to10.bam
deleted file mode 100755
index 671814e..0000000
Binary files a/testdata/net/sf/picard/sam/Chromosome1to10.bam and /dev/null differ
diff --git a/testdata/net/sf/picard/sam/Chromosome5to9.bam b/testdata/net/sf/picard/sam/Chromosome5to9.bam
deleted file mode 100755
index d32ab86..0000000
Binary files a/testdata/net/sf/picard/sam/Chromosome5to9.bam and /dev/null differ
diff --git a/testdata/net/sf/picard/sam/MergeBamAlignment/cliptest.dict b/testdata/net/sf/picard/sam/MergeBamAlignment/cliptest.dict
deleted file mode 100644
index cf1c969..0000000
--- a/testdata/net/sf/picard/sam/MergeBamAlignment/cliptest.dict
+++ /dev/null
@@ -1,2 +0,0 @@
- at HD	VN:1.4	SO:unsorted
- at SQ	SN:chr1	LN:1000	UR:file:testdata/net/sf/picard/sam/MergeBamAlignment/cliptest.fasta	M5:17522ddd273279f4595f50fea9864734
diff --git a/testdata/net/sf/picard/sam/MergeSamFiles/case1/expected_output.sam b/testdata/net/sf/picard/sam/MergeSamFiles/case1/expected_output.sam
deleted file mode 100644
index e604911..0000000
--- a/testdata/net/sf/picard/sam/MergeSamFiles/case1/expected_output.sam
+++ /dev/null
@@ -1,13 +0,0 @@
- at HD	VN:1.4	GO:none	SO:coordinate
- at SQ	SN:chrM	LN:16571	AS:HG18	UR:/seq/references/Homo_sapiens_assembly18/v0/Homo_sapiens_assembly18.fasta	M5:d2ed829b8a1628d16cbeee88e88e39eb SP:Homo sapiens
- at RG	ID:1	PL:ILLUMINA	SM:sample1
- at PG	ID:1	PN:something
- at PG	ID:1.1	PN:A
- at PG	ID:1.1.2	PN:B
- at PG	ID:2	PN:C	PP:1.1
- at PG	ID:2.1	PN:D	PP:1.1.2
-6194MAAXX100108:2:55:3087:12679:BI	99	chrM	50418	0	101M	=	50678	360	TCAAACATAGTCAAAGAGAGGGAGATTTCTGGATAATCACTTAAGCCCATGGTTAAACATAAATGCAAATATGTTAATGTTTACTGAATAACTTATCTGTG	9<9 at A?A@?A=@BCCA at B@BAA at B@ABBACAA at A@C at ABACB@CBAA at BABA>BACCABAACDABABCCAA at B?BACAB>CCAABBACAAD?CB>?>?<9<	RG:Z:1	E2:Z:CAGGGAGGGCGAGGGTGAGATTGTGGGGAGATGGGTGAGACGTTAAGACATTGATCCACATTTATACCCATAAGATTATGAATAATTTATTAGATATCTGT	OQ:Z:CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDCCCCCCCCCCCCCCCCCCBCCCCCBCCCCCC at CCDCCDDCDACCC@@C [...]
-6194MAAXX100108:2:55:3087:12679:BI	99	chrM	50418	0	101M	=	50678	360	TCAAACATAGTCAAAGAGAGGGAGATTTCTGGATAATCACTTAAGCCCATGGTTAAACATAAATGCAAATATGTTAATGTTTACTGAATAACTTATCTGTG	9<9 at A?A@?A=@BCCA at B@BAA at B@ABBACAA at A@C at ABACB@CBAA at BABA>BACCABAACDABABCCAA at B?BACAB>CCAABBACAAD?CB>?>?<9<	RG:Z:1	E2:Z:CAGGGAGGGCGAGGGTGAGATTGTGGGGAGATGGGTGAGACGTTAAGACATTGATCCACATTTATACCCATAAGATTATGAATAATTTATTAGATATCTGT	OQ:Z:CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDCCCCCCCCCCCCCCCCCCBCCCCCBCCCCCC at CCDCCDDCDACCC@@C [...]
-6194MAAXX100108:2:55:3087:12679:BI	99	chrM	50418	0	101M	=	50678	360	TCAAACATAGTCAAAGAGAGGGAGATTTCTGGATAATCACTTAAGCCCATGGTTAAACATAAATGCAAATATGTTAATGTTTACTGAATAACTTATCTGTG	9<9 at A?A@?A=@BCCA at B@BAA at B@ABBACAA at A@C at ABACB@CBAA at BABA>BACCABAACDABABCCAA at B?BACAB>CCAABBACAAD?CB>?>?<9<	RG:Z:1	E2:Z:CAGGGAGGGCGAGGGTGAGATTGTGGGGAGATGGGTGAGACGTTAAGACATTGATCCACATTTATACCCATAAGATTATGAATAATTTATTAGATATCTGT	OQ:Z:CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDCCCCCCCCCCCCCCCCCCBCCCCCBCCCCCC at CCDCCDDCDACCC@@C [...]
-6194MAAXX100108:2:55:3087:12679:BI	99	chrM	50418	0	101M	=	50678	360	TCAAACATAGTCAAAGAGAGGGAGATTTCTGGATAATCACTTAAGCCCATGGTTAAACATAAATGCAAATATGTTAATGTTTACTGAATAACTTATCTGTG	9<9 at A?A@?A=@BCCA at B@BAA at B@ABBACAA at A@C at ABACB@CBAA at BABA>BACCABAACDABABCCAA at B?BACAB>CCAABBACAAD?CB>?>?<9<	RG:Z:1	E2:Z:CAGGGAGGGCGAGGGTGAGATTGTGGGGAGATGGGTGAGACGTTAAGACATTGATCCACATTTATACCCATAAGATTATGAATAATTTATTAGATATCTGT	OQ:Z:CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDCCCCCCCCCCCCCCCCCCBCCCCCBCCCCCC at CCDCCDDCDACCC@@C [...]
-6194MAAXX100108:2:55:3087:12679:BI	99	chrM	50418	0	101M	=	50678	360	TCAAACATAGTCAAAGAGAGGGAGATTTCTGGATAATCACTTAAGCCCATGGTTAAACATAAATGCAAATATGTTAATGTTTACTGAATAACTTATCTGTG	9<9 at A?A@?A=@BCCA at B@BAA at B@ABBACAA at A@C at ABACB@CBAA at BABA>BACCABAACDABABCCAA at B?BACAB>CCAABBACAAD?CB>?>?<9<	RG:Z:1	E2:Z:CAGGGAGGGCGAGGGTGAGATTGTGGGGAGATGGGTGAGACGTTAAGACATTGATCCACATTTATACCCATAAGATTATGAATAATTTATTAGATATCTGT	OQ:Z:CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDCCCCCCCCCCCCCCCCCCBCCCCCBCCCCCC at CCDCCDDCDACCC@@C [...]
diff --git a/testdata/net/sf/picard/sam/MergeSamFiles/case2/expected_output.sam b/testdata/net/sf/picard/sam/MergeSamFiles/case2/expected_output.sam
deleted file mode 100644
index 89ba32d..0000000
--- a/testdata/net/sf/picard/sam/MergeSamFiles/case2/expected_output.sam
+++ /dev/null
@@ -1,21 +0,0 @@
- at HD	VN:1.4	GO:none	SO:coordinate
- at SQ	SN:chrM	LN:16571	AS:HG18	UR:/seq/references/Homo_sapiens_assembly18/v0/Homo_sapiens_assembly18.fasta	M5:d2ed829b8a1628d16cbeee88e88e39eb	SP:Homo sapiens
- at RG	ID:1	PL:ILLUMINA	SM:sample1
- at RG	ID:1.1	PL:ILLUMINA	SM:sample2
- at RG	ID:1.1.2	PL:ILLUMINA	SM:sample3
- at PG	ID:1	PN:A
- at PG	ID:1.1	PN:X
- at PG	ID:2	PN:B
- at PG	ID:2.3	PN:B	PP:1
- at PG	ID:2.4	PN:B	PP:1.1
- at PG	ID:3	PN:C	PP:1
- at PG	ID:3.6	PN:Y	PP:2.4
-6194MAAXX100108:2:55:3087:12679:BI	99	chrM	50418	0	101M	=	50678	360	TCAAACATAGTCAAAGAGAGGGAGATTTCTGGATAATCACTTAAGCCCATGGTTAAACATAAATGCAAATATGTTAATGTTTACTGAATAACTTATCTGTG	9<9 at A?A@?A=@BCCA at B@BAA at B@ABBACAA at A@C at ABACB@CBAA at BABA>BACCABAACDABABCCAA at B?BACAB>CCAABBACAAD?CB>?>?<9<	RG:Z:1	E2:Z:CAGGGAGGGCGAGGGTGAGATTGTGGGGAGATGGGTGAGACGTTAAGACATTGATCCACATTTATACCCATAAGATTATGAATAATTTATTAGATATCTGT	OQ:Z:CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDCCCCCCCCCCCCCCCCCCBCCCCCBCCCCCC at CCDCCDDCDACCC@@C [...]
-6194MAAXX100108:2:55:3087:12679:BI	99	chrM	50418	0	101M	=	50678	360	TCAAACATAGTCAAAGAGAGGGAGATTTCTGGATAATCACTTAAGCCCATGGTTAAACATAAATGCAAATATGTTAATGTTTACTGAATAACTTATCTGTG	9<9 at A?A@?A=@BCCA at B@BAA at B@ABBACAA at A@C at ABACB@CBAA at BABA>BACCABAACDABABCCAA at B?BACAB>CCAABBACAAD?CB>?>?<9<	RG:Z:1.1.1	E2:Z:CAGGGAGGGCGAGGGTGAGATTGTGGGGAGATGGGTGAGACGTTAAGACATTGATCCACATTTATACCCATAAGATTATGAATAATTTATTAGATATCTGT	OQ:Z:CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDCCCCCCCCCCCCCCCCCCBCCCCCBCCCCCC at CCDCCDDCDACC [...]
-6194MAAXX100108:2:55:3087:12679:BI	99	chrM	50418	0	101M	=	50678	360	TCAAACATAGTCAAAGAGAGGGAGATTTCTGGATAATCACTTAAGCCCATGGTTAAACATAAATGCAAATATGTTAATGTTTACTGAATAACTTATCTGTG	9<9 at A?A@?A=@BCCA at B@BAA at B@ABBACAA at A@C at ABACB@CBAA at BABA>BACCABAACDABABCCAA at B?BACAB>CCAABBACAAD?CB>?>?<9<	RG:Z:1	E2:Z:CAGGGAGGGCGAGGGTGAGATTGTGGGGAGATGGGTGAGACGTTAAGACATTGATCCACATTTATACCCATAAGATTATGAATAATTTATTAGATATCTGT	OQ:Z:CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDCCCCCCCCCCCCCCCCCCBCCCCCBCCCCCC at CCDCCDDCDACCC@@C [...]
-6194MAAXX100108:2:55:3087:12679:BI	99	chrM	50418	0	101M	=	50678	360	TCAAACATAGTCAAAGAGAGGGAGATTTCTGGATAATCACTTAAGCCCATGGTTAAACATAAATGCAAATATGTTAATGTTTACTGAATAACTTATCTGTG	9<9 at A?A@?A=@BCCA at B@BAA at B@ABBACAA at A@C at ABACB@CBAA at BABA>BACCABAACDABABCCAA at B?BACAB>CCAABBACAAD?CB>?>?<9<	RG:Z:1.1	E2:Z:CAGGGAGGGCGAGGGTGAGATTGTGGGGAGATGGGTGAGACGTTAAGACATTGATCCACATTTATACCCATAAGATTATGAATAATTTATTAGATATCTGT	OQ:Z:CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDCCCCCCCCCCCCCCCCCCBCCCCCBCCCCCC at CCDCCDDCDACCC@ [...]
-6194MAAXX100108:2:55:3087:12679:BI	147	chrM	50678	0	101M	=	50418	-360	TATATATATAGAAAGAGAGAGAGGCAGAGATGTAAAGTAATTTATGGAGTTTGATGTTATGTCAGGGTAATTACATGATTATATAATTAACAGGTTTCTTT	:99:=>?@>BABAAAC at CACAC@@BCACAAC;=BBC at AB@BB@@B@@CABBB@@B at C@@B@@AC@@@@A at B@>A at B@@B@@@@@A?A?@<?@=<>>;<=<9	RG:Z:1	E2:Z:ATATATATATTGGGAGTGTTTGTTACTCTTCTGTTCTGTTAGATGTTCTAGCTTCTGACCTCTCTTTGCCGCCACCTCCCCCCCCCCCCCACTTCCGACCC	OQ:Z:CDCCCADCACCD at AC@CCCCCDCCCCCCCCCC;CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCBBCCCC [...]
-6194MAAXX100108:2:55:3087:12679:BI	147	chrM	50678	0	101M	=	50418	-360	TATATATATAGAAAGAGAGAGAGGCAGAGATGTAAAGTAATTTATGGAGTTTGATGTTATGTCAGGGTAATTACATGATTATATAATTAACAGGTTTCTTT	:99:=>?@>BABAAAC at CACAC@@BCACAAC;=BBC at AB@BB@@B@@CABBB@@B at C@@B@@AC@@@@A at B@>A at B@@B@@@@@A?A?@<?@=<>>;<=<9	RG:Z:1.1	E2:Z:ATATATATATTGGGAGTGTTTGTTACTCTTCTGTTCTGTTAGATGTTCTAGCTTCTGACCTCTCTTTGCCGCCACCTCCCCCCCCCCCCCACTTCCGACCC	OQ:Z:CDCCCADCACCD at AC@CCCCCDCCCCCCCCCC;CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCBBCC [...]
-6194MAAXX100108:2:55:3087:12679:BI	147	chrM	50678	0	101M	=	50418	-360	TATATATATAGAAAGAGAGAGAGGCAGAGATGTAAAGTAATTTATGGAGTTTGATGTTATGTCAGGGTAATTACATGATTATATAATTAACAGGTTTCTTT	:99:=>?@>BABAAAC at CACAC@@BCACAAC;=BBC at AB@BB@@B@@CABBB@@B at C@@B@@AC@@@@A at B@>A at B@@B@@@@@A?A?@<?@=<>>;<=<9	RG:Z:1	E2:Z:ATATATATATTGGGAGTGTTTGTTACTCTTCTGTTCTGTTAGATGTTCTAGCTTCTGACCTCTCTTTGCCGCCACCTCCCCCCCCCCCCCACTTCCGACCC	OQ:Z:CDCCCADCACCD at AC@CCCCCDCCCCCCCCCC;CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCBBCCCC [...]
-6194MAAXX100108:2:55:19789:20399:BI	73	chrM	50921	0	101M	=	50921	0	CAACCAGAAACCAGGCTGGGCGCTANAGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNAAAAGCTTACTGTCTAGAGGGCGAGGTACAAANNNNNN	97:>?A>>BB>@B@?@CA5@?5=C@############################################################################	RG:Z:1.1	E2:Z:ACCAAGTGGGAAGTTAGTTAAAAGGTCATTTTTTTTTTTTTTTTTTTGTTGTTTTGTTTTTTTCCCCAAAATACCATATTTTTTAAGATATTTTTTTTTGT	OQ:Z:C>CCCC@@C@@CC@?CCC2@?8<??########################################################################### [...]
-6194MAAXX100108:2:55:19789:20399:BI	73	chrM	50921	0	101M	=	50921	0	CAACCAGAAACCAGGCTGGGCGCTANAGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNAAAAGCTTACTGTCTAGAGGGCGAGGTACAAANNNNNN	97:>?A>>BB>@B@?@CA5@?5=C@############################################################################	RG:Z:1	E2:Z:ACCAAGTGGGAAGTTAGTTAAAAGGTCATTTTTTTTTTTTTTTTTTTGTTGTTTTGTTTTTTTCCCCAAAATACCATATTTTTTAAGATATTTTTTTTTGT	OQ:Z:C>CCCC@@C@@CC@?CCC2@?8<??############################################################################	 [...]
diff --git a/testdata/net/sf/picard/sam/ValidateSamFileTest/bad_index.bai b/testdata/net/sf/picard/sam/ValidateSamFileTest/bad_index.bai
deleted file mode 100644
index bf4bc62..0000000
Binary files a/testdata/net/sf/picard/sam/ValidateSamFileTest/bad_index.bai and /dev/null differ
diff --git a/testdata/net/sf/picard/sam/ValidateSamFileTest/bad_index.bam b/testdata/net/sf/picard/sam/ValidateSamFileTest/bad_index.bam
deleted file mode 100644
index 8aa4751..0000000
Binary files a/testdata/net/sf/picard/sam/ValidateSamFileTest/bad_index.bam and /dev/null differ
diff --git a/testdata/net/sf/picard/sam/ValidateSamFileTest/buggyHeader.sam b/testdata/net/sf/picard/sam/ValidateSamFileTest/buggyHeader.sam
deleted file mode 100755
index 5d2b1b4..0000000
--- a/testdata/net/sf/picard/sam/ValidateSamFileTest/buggyHeader.sam
+++ /dev/null
@@ -1,30 +0,0 @@
- at HD VN:1.0  SO:coordinate
- at SQ	SN:chr1	SN:chr123	LN:247249719	UR:file:/stornext/snfs1/next-gen/solid/reference/full_hsap36.fasta	M5:9ebc6df9496613f373e73396d5b3b6b6 SP:Homo sapiens
- at SQ	SN:chr2	LN:242951149	UR:file:/stornext/snfs1/next-gen/solid/reference/full_hsap36.fasta	M5:b12c7373e3882120332983be99aeb18d SP:Homo sapiens
- at SQ	SN:chr3	LN:199501827	UR:file:/stornext/snfs1/next-gen/solid/reference/full_hsap36.fasta	M5:4e390df72c70f259b074be639d8f9578 SP:Homo sapiens
- at SQ	SN:chr4	LN:191273063	UR:file:/stornext/snfs1/next-gen/solid/reference/full_hsap36.fasta	M5:cf37020337904229dca8401907b626c2 SP:Homo sapiens
- at SQ	SN:chr5	LN:180857866	UR:file:/stornext/snfs1/next-gen/solid/reference/full_hsap36.fasta	M5:031c851664e31b2c17337fd6f9004858 SP:Homo sapiens
- at SQ	SN:chr6	LN:170899992	UR:file:/stornext/snfs1/next-gen/solid/reference/full_hsap36.fasta	M5:bfe8005c536131276d448ead33f1b583 SP:Homo sapiens
- at SQ	SN:chr7	LN:158821424	UR:file:/stornext/snfs1/next-gen/solid/reference/full_hsap36.fasta	M5:74239c5ceee3b28f0038123d958114cb SP:Homo sapiens
- at SQ	SN:chr8	LN:146274826	UR:file:/stornext/snfs1/next-gen/solid/reference/full_hsap36.fasta	M5:1eb00fe1ce26ce6701d2cd75c35b5ccb SP:Homo sapiens
- at SQ	SN:chr9	LN:140273252	UR:file:/stornext/snfs1/next-gen/solid/reference/full_hsap36.fasta	M5:ea244473e525dde0393d353ef94f974b SP:Homo sapiens
- at SQ	SN:chr10	LN:135374737	UR:file:/stornext/snfs1/next-gen/solid/reference/full_hsap36.fasta	M5:4ca41bf2d7d33578d2cd7ee9411e1533 SP:Homo sapiens
- at SQ	SN:chr11	LN:134452384	UR:file:/stornext/snfs1/next-gen/solid/reference/full_hsap36.fasta	M5:425ba5eb6c95b60bafbf2874493a56c3 SP:Homo sapiens
- at SQ	SN:chr12	LN:132349534	UR:file:/stornext/snfs1/next-gen/solid/reference/full_hsap36.fasta	M5:d17d70060c56b4578fa570117bf19716 SP:Homo sapiens
- at SQ	SN:chr13	LN:114142980	UR:file:/stornext/snfs1/next-gen/solid/reference/full_hsap36.fasta	M5:c4f3084a20380a373bbbdb9ae30da587 SP:Homo sapiens
- at SQ	SN:chr14	LN:106368585	UR:file:/stornext/snfs1/next-gen/solid/reference/full_hsap36.fasta	M5:c1ff5d44683831e9c7c1db23f93fbb45 SP:Homo sapiens
- at SQ	SN:chr15	LN:100338915	UR:file:/stornext/snfs1/next-gen/solid/reference/full_hsap36.fasta	M5:5cd9622c459fe0a276b27f6ac06116d8 SP:Homo sapiens
- at SQ	SN:chr16	LN:88827254	UR:file:/stornext/snfs1/next-gen/solid/reference/full_hsap36.fasta	M5:3e81884229e8dc6b7f258169ec8da246 SP:Homo sapiens
- at SQ	SN:chr17	LN:78774742	UR:file:/stornext/snfs1/next-gen/solid/reference/full_hsap36.fasta	M5:2a5c95ed99c5298bb107f313c7044588 SP:Homo sapiens
- at SQ	SN:chr18	LN:76117153	UR:file:/stornext/snfs1/next-gen/solid/reference/full_hsap36.fasta	M5:3d11df432bcdc1407835d5ef2ce62634 SP:Homo sapiens
- at SQ	SN:chr19	LN:63811651	UR:file:/stornext/snfs1/next-gen/solid/reference/full_hsap36.fasta	M5:2f1a59077cfad51df907ac25723bff28 SP:Homo sapiens
- at SQ	SN:chr20	LN:62435964	UR:file:/stornext/snfs1/next-gen/solid/reference/full_hsap36.fasta	M5:f126cdf8a6e0c7f379d618ff66beb2da SP:Homo sapiens
- at SQ	SN:chr21	LN:46944323	UR:file:/stornext/snfs1/next-gen/solid/reference/full_hsap36.fasta	M5:f1b74b7f9f4cdbaeb6832ee86cb426c6 SP:Homo sapiens
- at SQ	SN:chr22	LN:49691432	UR:file:/stornext/snfs1/next-gen/solid/reference/full_hsap36.fasta	M5:2041e6a0c914b48dd537922cca63acb8 SP:Homo sapiens
- at SQ	SN:chrX	LN:154913754	UR:file:/stornext/snfs1/next-gen/solid/reference/full_hsap36.fasta	M5:d7e626c80ad172a4d7c95aadb94d9040 SP:Homo sapiens
- at SQ	SN:chrY	LN:57772954	UR:file:/stornext/snfs1/next-gen/solid/reference/full_hsap36.fasta	M5:62f69d0e82a12af74bad85e2e4a8bd91 SP:Homo sapiens
- at RG     ID:A    PL:solid        PU:083_20090618_2_SL_notag      LB:ANG_TCGA-OVA.09.T_000sA      DT:2009-06-18T19:00:00-0500     SM:TCGA-09-0364-01A-02W-0370-010     CN:Baylor
- at RG     ID:B    PL:solid        PU:083_20090618_2_SL_detag      LB:ANG_TCGA-OVA.09.T_000sA      DT:2009-06-18T19:00:00-0500     SM:TCGA-09-0364-01A-02W-0370-010     CN:Baylor
- at PG	ID:0	VN:4.0r2.0 CL:/data/bucket2/corona_lite_v4.0r2.0 -t 50 or 30 -z 10 -e 6:50 or 3:30
- at CO	Hi, Mom!
-1003_834_22	0	chr1	7330	255	50M	*	0	0	CCCAGGCCTCCCGAGCCGAGCCATCCGTCACCCCCTGGCTCCTGGCCGCT	@@@@@?@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@>9@@@?9<@@(((!	RG:Z:0	CS:Z:T20012030220032230322301320312110000210322021030332	CQ:Z:499;=,4988	MD:Z:23C23TA1
diff --git a/testdata/net/sf/picard/sam/ValidateSamFileTest/duplicate_rg.sam b/testdata/net/sf/picard/sam/ValidateSamFileTest/duplicate_rg.sam
deleted file mode 100644
index 2558e9a..0000000
--- a/testdata/net/sf/picard/sam/ValidateSamFileTest/duplicate_rg.sam
+++ /dev/null
@@ -1,11 +0,0 @@
- at HD	VN:1.4	SO:coordinate
- at SQ	SN:chr1	LN:101	UR:merger.fasta	M5:bd01f7e11515bb6beda8f7257902aa67
- at SQ	SN:chr2	LN:101	UR:merger.fasta	M5:31c33e2155b3de5e2554b693c475b310
- at SQ	SN:chr3	LN:101	UR:merger.fasta	M5:631593c6dd2048ae88dcce2bd505d295
- at SQ	SN:chr4	LN:101	UR:merger.fasta	M5:c60cb92f1ee5b78053c92bdbfa19abf1
- at SQ	SN:chr5	LN:101	UR:merger.fasta	M5:07ebc213c7611db0eacbb1590c3e9bda
- at SQ	SN:chr6	LN:101	UR:merger.fasta	M5:7be2f5e7ee39e60a6c3b5b6a41178c6d
- at SQ	SN:chr7	LN:404	UR:merger.fasta	M5:da488fc432cdaf2c20c96da473a7b630
- at SQ	SN:chr8	LN:202	UR:merger.fasta	M5:d339678efce576d5546e88b49a487b63
- at RG	ID:H7U2W.1	PU:H7U2WADXX140408.1.AAGTAGAG	LB:Solexa-1	PI:0	DT:2014-04-08T00:00:00-0400	SM:K-562	CN:BI
- at RG	ID:H7U2W.1	PU:H7U2WADXX140408.1.AAGTAGAG	LB:Solexa-2	PI:0	DT:2014-04-08T00:00:00-0400	SM:K-562	CN:BI
\ No newline at end of file
diff --git a/testdata/net/sf/picard/sam/ValidateSamFileTest/hanging_tab.sam b/testdata/net/sf/picard/sam/ValidateSamFileTest/hanging_tab.sam
deleted file mode 100644
index a4a4331..0000000
--- a/testdata/net/sf/picard/sam/ValidateSamFileTest/hanging_tab.sam
+++ /dev/null
@@ -1,3 +0,0 @@
- at HD	VN:1.0	SO:queryname
- at RG	ID:0	PL:illumina	PU:300TDAAXX090429.8	LB:Solexa-3536	DT:Wed Apr 29 00:00:00 EDT 2009	SM:CLONED Phi-X Control	CN:broad
-300TDAAXX090429:8:100:0:1001#0	589	*	0	0	*	*	0	0	NNNNNNNNNNNNNNNNNNNNNNNNN	#########################	XN:i:1	RG:Z:0	
\ No newline at end of file
diff --git a/testdata/net/sf/picard/sam/ValidateSamFileTest/inappropriate_mate_cigar_string.sam b/testdata/net/sf/picard/sam/ValidateSamFileTest/inappropriate_mate_cigar_string.sam
deleted file mode 100644
index 9500e48..0000000
--- a/testdata/net/sf/picard/sam/ValidateSamFileTest/inappropriate_mate_cigar_string.sam
+++ /dev/null
@@ -1,13 +0,0 @@
- at HD	VN:1.4	SO:coordinate
- at SQ	SN:chr1	LN:101	UR:merger.fasta	M5:bd01f7e11515bb6beda8f7257902aa67
- at SQ	SN:chr2	LN:101	UR:merger.fasta	M5:31c33e2155b3de5e2554b693c475b310
- at SQ	SN:chr3	LN:101	UR:merger.fasta	M5:631593c6dd2048ae88dcce2bd505d295
- at SQ	SN:chr4	LN:101	UR:merger.fasta	M5:c60cb92f1ee5b78053c92bdbfa19abf1
- at SQ	SN:chr5	LN:101	UR:merger.fasta	M5:07ebc213c7611db0eacbb1590c3e9bda
- at SQ	SN:chr6	LN:101	UR:merger.fasta	M5:7be2f5e7ee39e60a6c3b5b6a41178c6d
- at SQ	SN:chr7	LN:404	UR:merger.fasta	M5:da488fc432cdaf2c20c96da473a7b630
- at SQ	SN:chr8	LN:202	UR:merger.fasta	M5:d339678efce576d5546e88b49a487b63
- at RG	ID:0	SM:Hi,Mom!
- at PG	ID:0	PN:myAligner	VN:1.0	CL:align!
-pair_read	73	chr7	3	9	6M	=	3	0	CAACAG	)'.*.+	MC:Z:*	PG:Z:0	RG:Z:0	NM:i:4	UQ:i:33
-pair_read	133	chr7	3	0	*	=	3	0	NCGCGG	&/1544	MC:Z:6M	PG:Z:0	RG:Z:0
diff --git a/testdata/net/sf/picard/sam/ValidateSamFileTest/invalid_mate_cigar_string.sam b/testdata/net/sf/picard/sam/ValidateSamFileTest/invalid_mate_cigar_string.sam
deleted file mode 100644
index b542d77..0000000
--- a/testdata/net/sf/picard/sam/ValidateSamFileTest/invalid_mate_cigar_string.sam
+++ /dev/null
@@ -1,19 +0,0 @@
- at HD	VN:1.4	SO:coordinate
- at SQ	SN:chr1	LN:101	UR:merger.fasta	M5:bd01f7e11515bb6beda8f7257902aa67
- at SQ	SN:chr2	LN:101	UR:merger.fasta	M5:31c33e2155b3de5e2554b693c475b310
- at SQ	SN:chr3	LN:101	UR:merger.fasta	M5:631593c6dd2048ae88dcce2bd505d295
- at SQ	SN:chr4	LN:101	UR:merger.fasta	M5:c60cb92f1ee5b78053c92bdbfa19abf1
- at SQ	SN:chr5	LN:101	UR:merger.fasta	M5:07ebc213c7611db0eacbb1590c3e9bda
- at SQ	SN:chr6	LN:101	UR:merger.fasta	M5:7be2f5e7ee39e60a6c3b5b6a41178c6d
- at SQ	SN:chr7	LN:404	UR:merger.fasta	M5:da488fc432cdaf2c20c96da473a7b630
- at SQ	SN:chr8	LN:202	UR:merger.fasta	M5:d339678efce576d5546e88b49a487b63
- at RG	ID:0	SM:Hi,Mom!
- at PG	ID:0	PN:myAligner	VN:1.0	CL:align!
-pair_both_hit	65	chr7	1	100	101M	=	120	120	CAACAGAAGCNGGNATCTGTGTTTGTGTTTCGGATTTCCTGCTGAANNGNTTNTCGNNTCNNNNNNNNATCCCGATTTCNTTCCGCAGCTNACCTCCCAAN	)'.*.+2,))&&'&*/)-&*-)&.-)&)&),/-&&..)./.,.).*&&,&.&&-)&&&0*&&&&&&&&/32/,01460&&/6/*0*/2/283//36868/&	MC:Z:99M	PG:Z:0	RG:Z:0	NM:i:21	MQ:i:100	UQ:i:144
-pair_both_multihit	321	chr7	1	100	101M	=	120	120	CAACAGAAGCNGGNATCTGTGTTTGTGTTTCGGATTTCCTGCTGAANNGNTTNTCGNNTCNNNNNNNNATCCCGATTTCNTTCCGCAGCTNACCTCCCAAN	)'.*.+2,))&&'&*/)-&*-)&.-)&)&),/-&&..)./.,.).*&&,&.&&-)&&&0*&&&&&&&&/32/,01460&&/6/*0*/2/283//36868/&	MC:Z:101M	PG:Z:0	RG:Z:0	HI:i:0	NM:i:21	MQ:i:100	UQ:i:144
-pair_both_multihit	321	chr7	10	100	101M	=	130	121	CAACAGAAGCNGGNATCTGTGTTTGTGTTTCGGATTTCCTGCTGAANNGNTTNTCGNNTCNNNNNNNNATCCCGATTTCNTTCCGCAGCTNACCTCCCAAN	)'.*.+2,))&&'&*/)-&*-)&.-)&)&),/-&&..)./.,.).*&&,&.&&-)&&&0*&&&&&&&&/32/,01460&&/6/*0*/2/283//36868/&	MC:Z:101M	PG:Z:0	RG:Z:0	HI:i:1	NM:i:83	MQ:i:100	UQ:i:865
-pair_both_hit	129	chr7	120	100	101M	=	1	-120	NCGCGGCATCNCGATTTCTTTCCGCAGCTAACCTCCCGACAGATCGGCAGCGCGTCGTGTAGGTTATTATGGTACATCTTGTCGTGCGGCNAGAGCATACA	&/15445666651/566666553+2/14/&/555512+3/)-'/-&-'*+))*''13+3)'//++''/'))/3+&*5++)&'2+&+/*&-&&*)&-./1'1	MC:Z:101M	PG:Z:0	RG:Z:0	NM:i:73	MQ:i:100	UQ:i:944
-pair_both_multihit	385	chr7	120	100	101M	=	1	-120	NCGCGGCATCNCGATTTCTTTCCGCAGCTAACCTCCCGACAGATCGGCAGCGCGTCGTGTAGGTTATTATGGTACATCTTGTCGTGCGGCNAGAGCATACA	&/15445666651/566666553+2/14/&/555512+3/)-'/-&-'*+))*''13+3)'//++''/'))/3+&*5++)&'2+&+/*&-&&*)&-./1'1	MC:Z:101M	PG:Z:0	RG:Z:0	HI:i:0	NM:i:73	MQ:i:100	UQ:i:944
-pair_both_multihit	385	chr7	130	100	101M	=	10	-121	NCGCGGCATCNCGATTTCTTTCCGCAGCTAACCTCCCGACAGATCGGCAGCGCGTCGTGTAGGTTATTATGGTACATCTTGTCGTGCGGCNAGAGCATACA	&/15445666651/566666553+2/14/&/555512+3/)-'/-&-'*+))*''13+3)'//++''/'))/3+&*5++)&'2+&+/*&-&&*)&-./1'1	MC:Z:101M	PG:Z:0	RG:Z:0	HI:i:1	NM:i:84	MQ:i:100	UQ:i:1072
-pair_both_multihit	65	chr8	1	100	101M	=	101	101	CAACAGAAGCNGGNATCTGTGTTTGTGTTTCGGATTTCCTGCTGAANNGNTTNTCGNNTCNNNNNNNNATCCCGATTTCNTTCCGCAGCTNACCTCCCAAN	)'.*.+2,))&&'&*/)-&*-)&.-)&)&),/-&&..)./.,.).*&&,&.&&-)&&&0*&&&&&&&&/32/,01460&&/6/*0*/2/283//36868/&	MC:Z:101M	PG:Z:0	RG:Z:0	HI:i:2	NM:i:86	MQ:i:100	UQ:i:940
-pair_both_multihit	129	chr8	101	100	101M	=	1	-101	NCGCGGCATCNCGATTTCTTTCCGCAGCTAACCTCCCGACAGATCGGCAGCGCGTCGTGTAGGTTATTATGGTACATCTTGTCGTGCGGCNAGAGCATACA	&/15445666651/566666553+2/14/&/555512+3/)-'/-&-'*+))*''13+3)'//++''/'))/3+&*5++)&'2+&+/*&-&&*)&-./1'1	MC:Z:101M	PG:Z:0	RG:Z:0	HI:i:2	NM:i:81	MQ:i:100	UQ:i:1042
diff --git a/testdata/net/sf/picard/sam/ValidateSamFileTest/invalid_queryname_sort_order.sam b/testdata/net/sf/picard/sam/ValidateSamFileTest/invalid_queryname_sort_order.sam
deleted file mode 100644
index 553ec81..0000000
--- a/testdata/net/sf/picard/sam/ValidateSamFileTest/invalid_queryname_sort_order.sam
+++ /dev/null
@@ -1,27 +0,0 @@
- at HD	VN:1.0	SO:queryname
- at SQ	SN:chr1	LN:101
- at SQ	SN:chr2	LN:101
- at SQ	SN:chr3	LN:101
- at SQ	SN:chr4	LN:101
- at SQ	SN:chr5	LN:101
- at SQ	SN:chr6	LN:101
- at SQ	SN:chr7	LN:202
- at SQ	SN:chr8	LN:202
-SL-XAV:1:1:0:764#0/1	89	chr1	1	255	101M	*	0	0	TTCATGCTGANGCNCTCTTACGATCGTACAGATGCAAATATTAACANNCNTTNAAGNNCANNNNNNNNNCAATACAATANTAGAGTACGTNAACACTCCAN	&/,&-.1/6/&&)&).)/,&0768)&/.,/874,&.4137572)&/&&,&1-&.0/&&*,&&&&&&&&&&18775799,&16:8775-56256/69::;0&	RG:Z:0	XN:i:1
-SL-XAV:1:1:0:1668#0/2	153	chr2	1	255	101M	*	0	0	CATCTCTACANGCGCGTCCTACCAGACGCGCTTCCGATCTGAGAGCATACTTTTCATTGGATTCCAGCACAACTCCATTTTTGATCCACTNGACACCTTTN	(/,'-/'0////(1'&&1&&&&'2''-6/,/3-33653.6:1'.86/-++32.-4864653/5/583/346423203+28888644446688456/4880&	RG:Z:0	XN:i:1
-SL-XAV:1:1:0:1914#0/2	153	chr3	1	255	101M	*	0	0	CGTATGCGCTNTTTATGTCGCCCACAGTGCCTAGTATAGCCCCTGCTAATAAAAAGAGATGAATACGTTTACTTAAAAAACTGAAACTAGNAATGTGCAAN	(0,7&&*/*0*,)10/).-*&.&*/6669.&-337599;3,&,6/.,5::999987893+387020775777547999::668997448:::9;999::0&	RG:Z:0
-SL-XAV:1:1:0:1639#0/2	153	chr4	1	255	101M	*	0	0	CGTGATACCANCTCATGTTCACAGCCAAAGCCTGAAGCTGTCTATTATATTTCTCAACCATAAACTTTTGCCTCAGGCATCCGCAGAATGNTTTGCAGCCN	'.&.&&'.0+01'2(1'(''-)','+0041/.+032;:867115/5267-.0/)-5.&-26200224,,0+0/0275/5605688::646875568882*&	RG:Z:0
-SL-XAV:1:1:0:68#0/2	137	chr5	1	255	101M	*	0	0	NTCTCATTTANAAATGGTTATAAAAACATTTATGCTGAAAAGGTGAAGTTCATTAATGAACAGGCTGACTGTCTCACTATCGCGTTCGCANGACGTTATCT	&1<<999;;;;<<<87579:556972789977444.'.023.&,7621/54.49.)/53055-22--''+(.'-))6-168/(3&&0(<).))*&&&&&'0	RG:Z:0
-SL-XAV:1:1:0:700#0/2	137	chr6	1	255	101M	*	0	0	NAATTGTTCTNAGTTTCTCGGTTTATGTGCTCTTCCAGGTGGGTAACACAATAATGGCCTTCCAGATCGTAAGAGCGACGTGTGTTGCACNAGTGTCGATC	&0::887::::6/646::838388811/679:87640&./2+/-4/28:3,536/4''&&.78/(/554/./02*)*',-(57()&.6(6:(0601'/(,*	RG:Z:0
-SL-XAV:1:1:0:1721#0/1	83	chr7	1	255	101M	=	102	40	CAACAGAAGGNGGNATCTGTGTTTGTGTTTCGGATTTCCTGCTGAANNGNTTNTCGNNTCNNNNNNNNATCCCGATTTCNTTCCGCAGCTNACCTCCCGAN	)'.*.+2,))&&'&*/)-&*-)&.-)&)&),/-&&..)./.,.).*&&,&.&&-)&&&0*&&&&&&&&/32/,01460&&/6/*0*/2/283//36868/&	RG:Z:0
-SL-XAV:1:1:0:1721#0/2	163	chr7	102	255	101M	=	1	-40	NCGCGGCATCNCGATTTCTTTCCGCAGCTAACCTCCCGACAGATCGGCAGCGCGTCGTGTAGGTCACTATGGTACATCTTGTCGTGCGGCNAGAGCATACA	&/15445666651/566666553+2/14/&/555512+3/)-'/-&-'*+))*''13+3)'//++''/'))/3+&*5++)&'2+&+/*&-&&*)&-./1'1	RG:Z:0
-SL-XAV:1:1:0:105#0/2	147	chr8	1	255	101M	=	102	79	CACATCGTGANTCTTACAATCTGCGGTTTCAGATGTGGAGCGATGTGTGAGAGATTGAGCAACTGATCTGAAAAGCAGACACAGCTATTCNTAAGATGACN	/))3--/&*()&)&&+'++.'-&,(.))'4,)&'&&,')8,&&*'.&*0'225/&)3-8//)*,5-*).7851453583.3568526:863688:::85.&	RG:Z:0
-SL-XAV:1:1:0:105#0/1	99	chr8	102	255	101M	=	1	-79	NCAGGTTCAANTGTGCAGCCCNTTTTGAGAGATNNNNNNNNTGNNCTGNAANANNGACACAGCTATTCCTAAGATGACAAGATCAGANAANAAGTCAAGCA	&06665578::41.*/7577/&/77403-324.&&&&&&&&/.&&..&&.0&&&&',:9:/-/(55002020+3'12+2/&.2-&//&),&*&&&&&&&51	RG:Z:0
-SL-XAV:1:1:0:1300#0/1	77	*	0	0	*	*	0	0	NAAACACAAGNNANAGTCTTANCNGCTATTCCNNNNNNNNNCTNNNCTNAGNANNACATACAACAGTATCCACACAAGTGTACTCGTNCANACATGTGAAC	&*5535)*-,,&.&.*-1)*,&'&)&1&&.,)&&&&&&&&&)0&&&0'&&&&.&&*2'/4''0/**&)&,'-&*,&,&&&.0.&)&&&**&,.&&&')&&)	RG:Z:0
-SL-XAV:1:1:0:1300#0/2	141	*	0	0	*	*	0	0	NGATCATGGANGACTCTCCCCATCCCCCGCTCCAGCGCTCAGTTATATGCCTAGCCTCGGACACGTCACCAACATCTCACGCACTCTGCANAGTCTCTCAC	&&'+''3*&-/)/1'26/*-2-/542-*&-&/'/*/&-'&)-')&.'-/&&2+122*'&+,(/-&)((,/-,,.'2(2'+)/&/&-66-&&/16&)&*&'3	RG:Z:0
-SL-XAV:1:1:0:1639#0/1	101	*	0	0	*	chr1	1	0	NCCCTCTCAGNNTNTCTGCCANANCCTTAAGCNNNNNNNNNTANNNCTNAANCNNAAACTTTTGCCTCAGGCATCCGCAGAATGTTTNTCNGCCTATATCG	&1::::::64/&/&0:3.280&/&087881,/&&&&&&&&&..&&&..&,,&-&&,265341-)/5680&-.5552-25/322/42/&)&&).421&-&-/	RG:Z:0
-SL-XAV:1:1:0:1668#0/1	101	*	0	0	*	chr2	1	0	NATAGCATACNNTNCATTGGANTNCAGCACAANNNNNNNNNTGNNNCANTNNANNCCTTTGAGATCGGAAGAGCGGTTCAGCAGGAANNCNCAGACCGATC	&1988998890&0&.8863//&.&.0-2875.&&&&&&&&&.)&&&..&.&&.&&.5782-2+262)&-0-0510*.332-2.-,0*&&*&'.&-2-)0.,	RG:Z:0
-SL-XAV:1:1:0:1914#0/1	101	*	0	0	*	chr3	1	0	NTTTTTCTCCNNCNGTGCCTANTNTAGCCCCTNNNNNNNNNAANNNATNANNANNTTTACTTAAAAAACTGAAACTAGTAATGTGCANNANATCGNAAGAG	&0::::<<;90&/&.244760&,&.414798/&&&&&&&&&00&&&0.&/&&-&&.4475687363504.&.557/.*)65.&/*./&&.&.+*)&..).&	RG:Z:0
-SL-XAV:1:1:0:68#0/1	581	*	0	0	*	chr4	1	0	NAATATTCATNNGNTCAGCCTNTNCATTAATTNNNNNNNNNTTNNNATNATNANNTTTTTTATAACCATTTATAAATGAGAGAGATCNTANCACAATATCA	&0<<:::::</&&&.73'290&.&0;:::90&&&&&&&&&&..&&&0)&0-&0&&&.743799995253348597921.,.'050.*&.0&)*)&&&&*).	RG:Z:0
-SL-XAV:1:1:0:700#0/1	581	*	0	0	*	chr5	1	0	NGAAGCCCATNNTNGTGTTACNCNCCTGGAAGNNNNNNNNNACNNNGANACNTNNAACAATTCAGATCGGAAGAGCGGTTCAGCAGANNTNCCGAGACCGA	&.88888:88/&0&,03189.&/&.8/))12/&&&&&&&&&./&&&&.&1.&)&&/35962/6432-3&),0&/2+0,),61&-6,&&&'&/,.0&...)0	RG:Z:0
-SL-XAV:1:1:0:764#0/2	165	*	0	0	*	chr6	1	0	NACAGATGCANATATTAACAGGCTTTAAAGGACAGATGGACTGCAATACAATAATAGAGTACGTCAACACTCCACAGATCGCTAGAGCATNACATCGGTGT	&/:5358::9999::99998255::7275,,/5567-'+387537857:54-4.51'31059547320;73/720+22.4(6.;((.;(;8()(''&&2&&	RG:Z:0
diff --git a/testdata/net/sf/picard/sam/ValidateSamFileTest/missing_fields.sam b/testdata/net/sf/picard/sam/ValidateSamFileTest/missing_fields.sam
deleted file mode 100644
index a9c0bbf..0000000
--- a/testdata/net/sf/picard/sam/ValidateSamFileTest/missing_fields.sam
+++ /dev/null
@@ -1,3 +0,0 @@
- at HD	VN:1.0	SO:queryname
- at RG	ID:0	PL:illumina	PU:300TDAAXX090429.8	LB:Solexa-3536	DT:Wed Apr 29 00:00:00 EDT 2009	SM:CLONED Phi-X Control	CN:broad
-300TDAAXX090429:8:100:0:1001#0	589	*	0	0	*	*	0
\ No newline at end of file
diff --git a/testdata/net/sf/picard/sam/ValidateSamFileTest/missing_platform_unit.sam b/testdata/net/sf/picard/sam/ValidateSamFileTest/missing_platform_unit.sam
deleted file mode 100644
index 5f644d2..0000000
--- a/testdata/net/sf/picard/sam/ValidateSamFileTest/missing_platform_unit.sam
+++ /dev/null
@@ -1,10 +0,0 @@
- at HD	VN:1.4	SO:coordinate
- at SQ	SN:chr1	LN:101	UR:merger.fasta	M5:bd01f7e11515bb6beda8f7257902aa67
- at SQ	SN:chr2	LN:101	UR:merger.fasta	M5:31c33e2155b3de5e2554b693c475b310
- at SQ	SN:chr3	LN:101	UR:merger.fasta	M5:631593c6dd2048ae88dcce2bd505d295
- at SQ	SN:chr4	LN:101	UR:merger.fasta	M5:c60cb92f1ee5b78053c92bdbfa19abf1
- at SQ	SN:chr5	LN:101	UR:merger.fasta	M5:07ebc213c7611db0eacbb1590c3e9bda
- at SQ	SN:chr6	LN:101	UR:merger.fasta	M5:7be2f5e7ee39e60a6c3b5b6a41178c6d
- at SQ	SN:chr7	LN:404	UR:merger.fasta	M5:da488fc432cdaf2c20c96da473a7b630
- at SQ	SN:chr8	LN:202	UR:merger.fasta	M5:d339678efce576d5546e88b49a487b63
- at RG	ID:H7U2W.1	PU:H7U2WADXX140408.1.AAGTAGAG	LB:Solexa-219641	PI:0	DT:2014-04-08T00:00:00-0400	SM:K-562	CN:BI
\ No newline at end of file
diff --git a/testdata/net/sf/picard/sam/ValidateSamFileTest/truncated.bam b/testdata/net/sf/picard/sam/ValidateSamFileTest/truncated.bam
deleted file mode 100644
index bcef65a..0000000
Binary files a/testdata/net/sf/picard/sam/ValidateSamFileTest/truncated.bam and /dev/null differ
diff --git a/testdata/net/sf/picard/sam/ValidateSamFileTest/truncated_quals.sam b/testdata/net/sf/picard/sam/ValidateSamFileTest/truncated_quals.sam
deleted file mode 100644
index 34bd776..0000000
--- a/testdata/net/sf/picard/sam/ValidateSamFileTest/truncated_quals.sam
+++ /dev/null
@@ -1,4 +0,0 @@
- at HD	VN:1.0	SO:queryname
- at RG	ID:0	PL:illumina	PU:300TDAAXX090429.8	LB:Solexa-3536	DT:Wed Apr 29 00:00:00 EDT 2009	SM:CLONED Phi-X Control	CN:broad
-300TDAAXX090429:8:100:0:1001#0	589	*	0	0	*	*	0	0	NNNNNNNNNNNNNNNNNNNNNNNNN	#########################	XN:i:1	RG:Z:0	SQ:H:07CCCBC186CA85D087CFC5D1D4CACCD6D3D1D0CDD30CD0D2D5
-300TDAAXX090429:8:100:0:1001#0	653	*	0	0	*	*	0	0	NNNNNNNNNNNNNNNNNNNNNNNNN	######################
\ No newline at end of file
diff --git a/testdata/net/sf/picard/sam/ValidateSamFileTest/truncated_tag.sam b/testdata/net/sf/picard/sam/ValidateSamFileTest/truncated_tag.sam
deleted file mode 100644
index ef4def1..0000000
--- a/testdata/net/sf/picard/sam/ValidateSamFileTest/truncated_tag.sam
+++ /dev/null
@@ -1,4 +0,0 @@
- at HD	VN:1.0	SO:queryname
- at RG	ID:0	PL:illumina	PU:300TDAAXX090429.8	LB:Solexa-3536	DT:Wed Apr 29 00:00:00 EDT 2009	SM:CLONED Phi-X Control	CN:broad
-300TDAAXX090429:8:100:0:1001#0	589	*	0	0	*	*	0	0	NNNNNNNNNNNNNNNNNNNNNNNNN	#########################	XN:i:1	RG:Z:0	SQ:H:07CCCBC186CA85D087CFC5D1D4CACCD6D3D1D0CDD30CD0D2D5
-300TDAAXX090429:8:100:0:1001#0	653	*	0	0	*	*	0	0	NNNNNNNNNNNNNNNNNNNNNNNNN	#########################	XN:i:
diff --git a/testdata/net/sf/picard/sam/ValidateSamFileTest/valid.sam b/testdata/net/sf/picard/sam/ValidateSamFileTest/valid.sam
deleted file mode 100644
index 3ac3ca8..0000000
--- a/testdata/net/sf/picard/sam/ValidateSamFileTest/valid.sam
+++ /dev/null
@@ -1,21 +0,0 @@
- at HD	VN:1.0	SO:coordinate
- at SQ	SN:chr1	LN:101
- at SQ	SN:chr2	LN:101
- at SQ	SN:chr3	LN:101
- at SQ	SN:chr4	LN:101
- at SQ	SN:chr5	LN:101
- at SQ	SN:chr6	LN:101
- at SQ	SN:chr7	LN:404
- at SQ	SN:chr8	LN:202
- at RG	ID:0	SM:Hi,Mom!	LB:my-library	PL:ILLUMINA
- at RG	ID:1	SM:Hi,Mom!	LB:my-library	PL:ILLUMINA
- at RG	ID:2	SM:Hi,Mom!	LB:my-library	PL:ILLUMINA
- at PG	ID:1	PN:Hey!	VN:2.0
-both_reads_align_clip_marked	1107	chr7	1	255	101M	=	302	201	CAACAGAAGCNGGNATCTGTGTTTGTGTTTCGGATTTCCTGCTGAANNGNTTNTCGNNTCNNNNNNNNATCCCGATTTCNTTCCGCAGCTNACCTCCCAAN	)'.*.+2,))&&'&*/)-&*-)&.-)&)&),/-&&..)./.,.).*&&,&.&&-)&&&0*&&&&&&&&/32/,01460&&/6/*0*/2/283//36868/&	RG:Z:0	PG:Z:1	NM:i:0	MQ:i:255	XT:Z:foo	OQ:Z:11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
-both_reads_present_only_first_aligns	89	chr7	1	255	101M	*	0	0	CAACAGAAGCNGGNATCTGTGTTTGTGTTTCGGATTTCCTGCTGAANNGNTTNTCGNNTCNNNNNNNNATCCCGATTTCNTTCCGCAGCTNACCTCCCAAN	)'.*.+2,))&&'&*/)-&*-)&.-)&)&),/-&&..)./.,.).*&&,&.&&-)&&&0*&&&&&&&&/32/,01460&&/6/*0*/2/283//36868/&	RG:Z:1	PG:Z:1	NM:i:3	MQ:i:255	XT:Z:foo	OQ:Z:11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
-read_2_too_many_gaps	83	chr7	1	255	101M	=	302	201	CAACAGAAGCNGGNATCTGTGTTTGTGTTTCGGATTTCCTGCTGAANNGNTTNTCGNNTCNNNNNNNNATCCCGATTTCNTTCCGCAGCTNACCTCCCAAN	)'.*.+2,))&&'&*/)-&*-)&.-)&)&),/-&&..)./.,.).*&&,&.&&-)&&&0*&&&&&&&&/32/,01460&&/6/*0*/2/283//36868/&	RG:Z:2	PG:Z:1	NM:i:8	MQ:i:255	XT:Z:foo2	OQ:Z:11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
-both_reads_align_clip_adapter	147	chr7	16	255	101M	=	21	-96	CAACAGAAGCNGGNATCTGTGTTTGTGTTTCGGATTTCCTGCTGAANNGNTTNTCGNNTCNNNNNNNNATCCCGATTTCNTTCCGCAGCTNACCTCCCAAN	)'.*.+2,))&&'&*/)-&*-)&.-)&)&),/-&&..)./.,.).*&&,&.&&-)&&&0*&&&&&&&&/32/,01460&&/6/*0*/2/283//36868/&	RG:Z:1	PG:Z:1	NM:i:1	MQ:i:255	XT:Z:foo2	OQ:Z:11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
-both_reads_align_clip_adapter	99	chr7	21	255	101M	=	16	96	CAACAGAAGCNGGNATCTGTGTTTGTGTTTCGGATTTCCTGCTGAANNGNTTNTCGNNTCNNNNNNNNATCCCGATTTCNTTCCGCAGCTNACCTCCCAAN	)'.*.+2,))&&'&*/)-&*-)&.-)&)&),/-&&..)./.,.).*&&,&.&&-)&&&0*&&&&&&&&/32/,01460&&/6/*0*/2/283//36868/&	RG:Z:1	PG:Z:1	NM:i:1	MQ:i:255	XT:Z:foo2	OQ:Z:11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
-both_reads_align_clip_marked	163	chr7	302	255	101M	=	1	-201	NCGCGGCATCNCGATTTCTTTCCGCAGCTAACCTCCCGACAGATCGGCAGCGCGTCGTGTAGGTTATTATGGTACATCTTGTCGTGCGGCNAGAGCATACA	&/15445666651/566666553+2/14/&/555512+3/)-'/-&-'*+))*''13+3)'//++''/'))/3+&*5++)&'2+&+/*&-&&*)&-./1'1	RG:Z:0	PG:Z:1	NM:i:5	MQ:i:255	OQ:Z:11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
-read_2_too_many_gaps	163	chr7	302	255	10M1D10M5I76M	=	1	-201	NCGCGGCATCNCGATTTCTTTCCGCAGCTAACCTCCCGACAGATCGGCAGCGCGTCGTGTAGGTTATTATGGTACATCTTGTCGTGCGGCNAGAGCATACA	&/15445666651/566666553+2/14/&/555512+3/)-'/-&-'*+))*''13+3)'//++''/'))/3+&*5++)&'2+&+/*&-&&*)&-./1'1	RG:Z:2	PG:Z:1	NM:i:6	MQ:i:255	OQ:Z:11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
-both_reads_present_only_first_aligns	165	*	0	0	*	chr7	1	0	NCGCGGCATCNCGATTTCTTTCCGCAGCTAACCTCCCGACAGATCGGCAGCGCGTCGTGTAGGTTATTATGGTACATCTTGTCGTGCGGCNAGAGCATACA	&/15445666651/566666553+2/14/&/555512+3/)-'/-&-'*+))*''13+3)'//++''/'))/3+&*5++)&'2+&+/*&-&&*)&-./1'1	RG:Z:1	PG:Z:1	
diff --git a/testdata/net/sf/picard/sam/ValidateSamFileTest/zero_length_read.sam b/testdata/net/sf/picard/sam/ValidateSamFileTest/zero_length_read.sam
deleted file mode 100644
index 50d2fe4..0000000
--- a/testdata/net/sf/picard/sam/ValidateSamFileTest/zero_length_read.sam
+++ /dev/null
@@ -1,3 +0,0 @@
- at HD	VN:1.0	SO:queryname
- at RG	ID:0	PL:illumina	PU:300TDAAXX090429.8	LB:Solexa-3536	DT:Wed Apr 29 00:00:00 EDT 2009	SM:CLONED Phi-X Control	CN:broad
-300TDAAXX090429:8:100:0:1001#0	589	*	0	0	*	*	0	0	
\ No newline at end of file
diff --git a/testdata/net/sf/picard/sam/bam2fastq/nonpaired/.gitignore b/testdata/net/sf/picard/sam/bam2fastq/nonpaired/.gitignore
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/sam/fastq2bam/bad-format/0lines.txt b/testdata/net/sf/picard/sam/fastq2bam/bad-format/0lines.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/net/sf/picard/sam/mate_cigar_and_no_oqs.sam b/testdata/net/sf/picard/sam/mate_cigar_and_no_oqs.sam
deleted file mode 100755
index efe2be2..0000000
--- a/testdata/net/sf/picard/sam/mate_cigar_and_no_oqs.sam
+++ /dev/null
@@ -1,4 +0,0 @@
- at HD	VN:1.0	SO:queryname
- at SQ	SN:REF	LN:1000
-A	99	REF	100	50	10M	=	200	100	CAACAGAAGC	)'.*.+2,))	MC:Z:5M1I4M
-A	147	REF	200	50	5M1I4M	=	100	-100	CAACAGAAGC	)'.*.+2,))	MC:Z:10M
diff --git a/testdata/net/sf/picard/sam/mate_cigar_and_oqs.sam b/testdata/net/sf/picard/sam/mate_cigar_and_oqs.sam
deleted file mode 100755
index 3782ad7..0000000
--- a/testdata/net/sf/picard/sam/mate_cigar_and_oqs.sam
+++ /dev/null
@@ -1,4 +0,0 @@
- at HD	VN:1.0	SO:queryname
- at SQ	SN:REF	LN:1000
-A	99	REF	100	50	10M	=	200	100	CAACAGAAGC	)'.*.+2,))	MC:Z:5M1I4M	OQ:Z:IIIIIIIIII
-A	147	REF	200	50	5M1I4M	=	100	-100	CAACAGAAGC	)'.*.+2,))	MC:Z:10M	OQ:Z:IIIIIIIIII
diff --git a/testdata/net/sf/picard/sam/no_mate_cigar_and_no_oqs.sam b/testdata/net/sf/picard/sam/no_mate_cigar_and_no_oqs.sam
deleted file mode 100755
index 39211cc..0000000
--- a/testdata/net/sf/picard/sam/no_mate_cigar_and_no_oqs.sam
+++ /dev/null
@@ -1,4 +0,0 @@
- at HD	VN:1.0	SO:queryname
- at SQ	SN:REF	LN:1000
-A	99	REF	100	50	10M	=	200	100	CAACAGAAGC	)'.*.+2,))
-A	147	REF	200	50	5M1I4M	=	100	-100	CAACAGAAGC	)'.*.+2,))
diff --git a/testdata/net/sf/picard/sam/no_mate_cigar_and_oqs.sam b/testdata/net/sf/picard/sam/no_mate_cigar_and_oqs.sam
deleted file mode 100755
index 55d5533..0000000
--- a/testdata/net/sf/picard/sam/no_mate_cigar_and_oqs.sam
+++ /dev/null
@@ -1,4 +0,0 @@
- at HD	VN:1.0	SO:queryname
- at SQ	SN:REF	LN:1000
-A	99	REF	100	50	10M	=	200	100	CAACAGAAGC	)'.*.+2,))	OQ:Z:IIIIIIIIII
-A	147	REF	200	50	5M1I4M	=	100	-100	CAACAGAAGC	)'.*.+2,))	OQ:Z:IIIIIIIIII
diff --git a/testdata/net/sf/picard/sam/no_mates_and_no_oqs.sam b/testdata/net/sf/picard/sam/no_mates_and_no_oqs.sam
deleted file mode 100755
index 9de670f..0000000
--- a/testdata/net/sf/picard/sam/no_mates_and_no_oqs.sam
+++ /dev/null
@@ -1,6 +0,0 @@
- at HD	VN:1.0	SO:queryname
-A	4	*	0	0	*	*	0	0	CAACAGAAGC	)'.*.+2,))
-B	4	*	0	0	*	*	0	0	CAACAGAAGC	)'.*.+2,))
-C	4	*	0	0	*	*	0	0	CAACAGAAGC	)'.*.+2,))
-D	4	*	0	0	*	*	0	0	CAACAGAAGC	)'.*.+2,))
-E	4	*	0	0	*	*	0	0	CAACAGAAGC	)'.*.+2,))
diff --git a/testdata/net/sf/picard/sam/no_mates_and_no_oqs_in_first_four_records.sam b/testdata/net/sf/picard/sam/no_mates_and_no_oqs_in_first_four_records.sam
deleted file mode 100755
index c1eb683..0000000
--- a/testdata/net/sf/picard/sam/no_mates_and_no_oqs_in_first_four_records.sam
+++ /dev/null
@@ -1,7 +0,0 @@
- at HD	VN:1.0	SO:queryname
-A	4	*	0	0	*	*	0	0	CAACAGAAGC	)'.*.+2,))
-B	4	*	0	0	*	*	0	0	CAACAGAAGC	)'.*.+2,))
-C	4	*	0	0	*	*	0	0	CAACAGAAGC	)'.*.+2,))
-D	4	*	0	0	*	*	0	0	CAACAGAAGC	)'.*.+2,))
-E	79	*	0	0	*	*	0	0	CAACAGAAGC	)'.*.+2,))	OQ:Z:IIIIIIIIII
-E	143	*	0	0	*	*	0	0	CAACAGAAGC	)'.*.+2,))	OQ:Z:IIIIIIIIII
diff --git a/testdata/net/sf/picard/sam/no_mates_and_oqs.sam b/testdata/net/sf/picard/sam/no_mates_and_oqs.sam
deleted file mode 100755
index 345c3c2..0000000
--- a/testdata/net/sf/picard/sam/no_mates_and_oqs.sam
+++ /dev/null
@@ -1,6 +0,0 @@
- at HD	VN:1.0	SO:queryname
-A	4	*	0	0	*	*	0	0	CAACAGAAGC	)'.*.+2,))	OQ:Z:IIIIIIIIII
-B	4	*	0	0	*	*	0	0	CAACAGAAGC	)'.*.+2,))	OQ:Z:IIIIIIIIII
-C	4	*	0	0	*	*	0	0	CAACAGAAGC	)'.*.+2,))	OQ:Z:IIIIIIIIII
-D	4	*	0	0	*	*	0	0	CAACAGAAGC	)'.*.+2,))	OQ:Z:IIIIIIIIII
-E	4	*	0	0	*	*	0	0	CAACAGAAGC	)'.*.+2,))	OQ:Z:IIIIIIIIII
diff --git a/testdata/net/sf/picard/sam/readWithBadRname.sam b/testdata/net/sf/picard/sam/readWithBadRname.sam
deleted file mode 100644
index 71bafb9..0000000
--- a/testdata/net/sf/picard/sam/readWithBadRname.sam
+++ /dev/null
@@ -1,6 +0,0 @@
- at HD	VN:1.0	SO:coordinate
- at SQ	SN:chr21 afterspace	AS:HG18	LN:62435964
- at RG	ID:L1	PU:SC_1_10	LB:SC_1	SM:NA12891	PL:ILLUMINA
- at RG	ID:L2	PU:SC_2_12	LB:SC_2	SM:NA12891	PL:ILLUMINA
-read_28833_29006_6945	99	=	28833	20	10M1D25M	=	28993	195	AGCTTAGCTAGCTACCTATATCTTGGTCTTGGCCG	<<<<<<<<<<<<<<<<<<<<<:<9/,&,22;;<<<	MF:i:130	Nm:i:1	H0:i:0	H1:i:0	RG:Z:L1
-read_28701_28881_323b	147	chr21 afterspace	28834	30	35M	=	28701	-168	ACCTATATCTTGGCCTTGGCCGATGCGGCCTTGCA	<<<<<;<<<<7;:<<<6;<<<<<<<<<<<<7<<<<	MF:i:18	Nm:i:0	H0:i:1	H1:i:0	RG:Z:L2
diff --git a/testdata/net/sf/picard/sam/samHeaderProvider.sam b/testdata/net/sf/picard/sam/samHeaderProvider.sam
deleted file mode 100755
index 45b55e4..0000000
--- a/testdata/net/sf/picard/sam/samHeaderProvider.sam
+++ /dev/null
@@ -1,15 +0,0 @@
- at HD	VN:1.4	SO:queryname
- at SQ	SN:chr1	LN:101
- at SQ	SN:chr2	LN:101
- at SQ	SN:chr3	LN:101
- at SQ	SN:chr4	LN:101
- at SQ	SN:chr5	LN:101
- at SQ	SN:chr6	LN:101
- at SQ	SN:chr7	LN:404
- at SQ	SN:chr8	LN:202
- at RG	ID:0	SM:derpderp
- at PG	ID:1	PN:blahblah	VN:2.0
-both_reads_align_clip_marked	83	chr7	1	255	101M	=	302	201	CAACAGAAGCNGGNATCTGTGTTTGTGTTTCGGATTTCCTGCTGAANNGNTTNTCGNNTCNNNNNNNNATCCCGATTTCNTTCCGCAGCTNACCTCCCAAN	)'.*.+2,))&&'&*/)-&*-)&.-)&)&),/-&&..)./.,.).*&&,&.&&-)&&&0*&&&&&&&&/32/,01460&&/6/*0*/2/283//36868/&	RG:Z:0
-both_reads_align_clip_marked	163	chr7	302	255	101M	=	1	-201	NCGCGGCATCNCGATTTCTTTCCGCAGCTAACCTCCCGACAGATCGGCAGCGCGTCGTGTAGGTTATTATGGTACATCTTGTCGTGCGGCNAGAGCATACA	&/15445666651/566666553+2/14/&/555512+3/)-'/-&-'*+))*''13+3)'//++''/'))/3+&*5++)&'2+&+/*&-&&*)&-./1'1	RG:Z:0
-read_2_too_many_gaps	83	chr7	1	255	101M	=	302	201	CAACAGAAGCNGGNATCTGTGTTTGTGTTTCGGATTTCCTGCTGAANNGNTTNTCGNNTCNNNNNNNNATCCCGATTTCNTTCCGCAGCTNACCTCCCAAN	)'.*.+2,))&&'&*/)-&*-)&.-)&)&),/-&&..)./.,.).*&&,&.&&-)&&&0*&&&&&&&&/32/,01460&&/6/*0*/2/283//36868/&	RG:Z:0
-read_2_too_many_gaps	163	chr7	302	255	10M1D10M5I76M	=	1	-201	NCGCGGCATCNCGATTTCTTTCCGCAGCTAACCTCCCGACAGATCGGCAGCGCGTCGTGTAGGTTATTATGGTACATCTTGTCGTGCGGCNAGAGCATACA	&/15445666651/566666553+2/14/&/555512+3/)-'/-&-'*+))*''13+3)'//++''/'))/3+&*5++)&'2+&+/*&-&&*)&-./1'1	RG:Z:0
diff --git a/testdata/net/sf/picard/sam/sequenceWithSpace.bam b/testdata/net/sf/picard/sam/sequenceWithSpace.bam
deleted file mode 100755
index 74da758..0000000
Binary files a/testdata/net/sf/picard/sam/sequenceWithSpace.bam and /dev/null differ
diff --git a/testdata/net/sf/picard/sam/sequenceWithSpace.sam b/testdata/net/sf/picard/sam/sequenceWithSpace.sam
deleted file mode 100755
index 766bc67..0000000
--- a/testdata/net/sf/picard/sam/sequenceWithSpace.sam
+++ /dev/null
@@ -1,6 +0,0 @@
- at HD	VN:1.0	SO:coordinate
- at SQ	SN:chr21 afterspace	AS:HG18	LN:62435964
- at RG	ID:L1	PU:SC_1_10	LB:SC_1	SM:NA12891	PL:ILLUMINA
- at RG	ID:L2	PU:SC_2_12	LB:SC_2	SM:NA12891	PL:ILLUMINA
-read_28833_29006_6945	99	chr21 afterspace	28833	20	10M1D25M	=	28993	195	AGCTTAGCTAGCTACCTATATCTTGGTCTTGGCCG	<<<<<<<<<<<<<<<<<<<<<:<9/,&,22;;<<<	MF:i:130	Nm:i:1	H0:i:0	H1:i:0	RG:Z:L1
-read_28701_28881_323b	147	chr21 afterspace	28834	30	35M	=	28701	-168	ACCTATATCTTGGCCTTGGCCGATGCGGCCTTGCA	<<<<<;<<<<7;:<<<6;<<<<<<<<<<<<7<<<<	MF:i:18	Nm:i:0	H0:i:1	H1:i:0	RG:Z:L2
diff --git a/testdata/net/sf/picard/util/QualityEncodingDetectorTest/illumina-as-standard.bam b/testdata/net/sf/picard/util/QualityEncodingDetectorTest/illumina-as-standard.bam
deleted file mode 100644
index a98d864..0000000
Binary files a/testdata/net/sf/picard/util/QualityEncodingDetectorTest/illumina-as-standard.bam and /dev/null differ
diff --git a/testdata/net/sf/picard/util/QualityEncodingDetectorTest/solexa-as-standard.bam b/testdata/net/sf/picard/util/QualityEncodingDetectorTest/solexa-as-standard.bam
deleted file mode 100644
index 7235dfa..0000000
Binary files a/testdata/net/sf/picard/util/QualityEncodingDetectorTest/solexa-as-standard.bam and /dev/null differ
diff --git a/testdata/net/sf/picard/util/scatterable.interval_list b/testdata/net/sf/picard/util/scatterable.interval_list
deleted file mode 100755
index b9c9e78..0000000
--- a/testdata/net/sf/picard/util/scatterable.interval_list
+++ /dev/null
@@ -1,89 +0,0 @@
- at HD	VN:1.0	SO:coordinate
- at SQ	SN:1	LN:249250621	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:1b22b98cdeb4a9304cb5d48026a85128	SP:Homo Sapiens
- at SQ	SN:2	LN:243199373	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:a0d9851da00400dec1098a9255ac712e	SP:Homo Sapiens
- at SQ	SN:3	LN:198022430	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:fdfd811849cc2fadebc929bb925902e5	SP:Homo Sapiens
- at SQ	SN:4	LN:191154276	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:23dccd106897542ad87d2765d28a19a1	SP:Homo Sapiens
- at SQ	SN:5	LN:180915260	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:0740173db9ffd264d728f32784845cd7	SP:Homo Sapiens
- at SQ	SN:6	LN:171115067	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:1d3a93a248d92a729ee764823acbbc6b	SP:Homo Sapiens
- at SQ	SN:7	LN:159138663	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:618366e953d6aaad97dbe4777c29375e	SP:Homo Sapiens
- at SQ	SN:8	LN:146364022	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:96f514a9929e410c6651697bded59aec	SP:Homo Sapiens
- at SQ	SN:9	LN:141213431	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:3e273117f15e0a400f01055d9f393768	SP:Homo Sapiens
- at SQ	SN:10	LN:135534747	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:988c28e000e84c26d552359af1ea2e1d	SP:Homo Sapiens
- at SQ	SN:11	LN:135006516	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:98c59049a2df285c76ffb1c6db8f8b96	SP:Homo Sapiens
- at SQ	SN:12	LN:133851895	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:51851ac0e1a115847ad36449b0015864	SP:Homo Sapiens
- at SQ	SN:13	LN:115169878	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:283f8d7892baa81b510a015719ca7b0b	SP:Homo Sapiens
- at SQ	SN:14	LN:107349540	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:98f3cae32b2a2e9524bc19813927542e	SP:Homo Sapiens
- at SQ	SN:15	LN:102531392	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:e5645a794a8238215b2cd77acb95a078	SP:Homo Sapiens
- at SQ	SN:16	LN:90354753	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:fc9b1a7b42b97a864f56b348b06095e6	SP:Homo Sapiens
- at SQ	SN:17	LN:81195210	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:351f64d4f4f9ddd45b35336ad97aa6de	SP:Homo Sapiens
- at SQ	SN:18	LN:78077248	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:b15d4b2d29dde9d3e4f93d1d0f2cbc9c	SP:Homo Sapiens
- at SQ	SN:19	LN:59128983	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:1aacd71f30db8e561810913e0b72636d	SP:Homo Sapiens
- at SQ	SN:20	LN:63025520	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:0dec9660ec1efaaf33281c0d5ea2560f	SP:Homo Sapiens
- at SQ	SN:21	LN:48129895	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:2979a6085bfe28e3ad6f552f361ed74d	SP:Homo Sapiens
- at SQ	SN:22	LN:51304566	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:a718acaa6135fdca8357d5bfe94211dd	SP:Homo Sapiens
- at SQ	SN:X	LN:155270560	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:7e0e2e580297b7764e31dbc80c2540dd	SP:Homo Sapiens
- at SQ	SN:Y	LN:59373566	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:1fa3474750af0948bdf97d5a0ee52e51	SP:Homo Sapiens
- at SQ	SN:MT	LN:16569	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:c68f52674c9fb33aef52dcf399755519	SP:Homo Sapiens
- at SQ	SN:GL000207.1	LN:4262	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:f3814841f1939d3ca19072d9e89f3fd7	SP:Homo Sapiens
- at SQ	SN:GL000226.1	LN:15008	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:1c1b2cd1fccbc0a99b6a447fa24d1504	SP:Homo Sapiens
- at SQ	SN:GL000229.1	LN:19913	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:d0f40ec87de311d8e715b52e4c7062e1	SP:Homo Sapiens
- at SQ	SN:GL000231.1	LN:27386	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:ba8882ce3a1efa2080e5d29b956568a4	SP:Homo Sapiens
- at SQ	SN:GL000210.1	LN:27682	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:851106a74238044126131ce2a8e5847c	SP:Homo Sapiens
- at SQ	SN:GL000239.1	LN:33824	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:99795f15702caec4fa1c4e15f8a29c07	SP:Homo Sapiens
- at SQ	SN:GL000235.1	LN:34474	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:118a25ca210cfbcdfb6c2ebb249f9680	SP:Homo Sapiens
- at SQ	SN:GL000201.1	LN:36148	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:dfb7e7ec60ffdcb85cb359ea28454ee9	SP:Homo Sapiens
- at SQ	SN:GL000247.1	LN:36422	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:7de00226bb7df1c57276ca6baabafd15	SP:Homo Sapiens
- at SQ	SN:GL000245.1	LN:36651	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:89bc61960f37d94abf0df2d481ada0ec	SP:Homo Sapiens
- at SQ	SN:GL000197.1	LN:37175	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:6f5efdd36643a9b8c8ccad6f2f1edc7b	SP:Homo Sapiens
- at SQ	SN:GL000203.1	LN:37498	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:96358c325fe0e70bee73436e8bb14dbd	SP:Homo Sapiens
- at SQ	SN:GL000246.1	LN:38154	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:e4afcd31912af9d9c2546acf1cb23af2	SP:Homo Sapiens
- at SQ	SN:GL000249.1	LN:38502	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:1d78abec37c15fe29a275eb08d5af236	SP:Homo Sapiens
- at SQ	SN:GL000196.1	LN:38914	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:d92206d1bb4c3b4019c43c0875c06dc0	SP:Homo Sapiens
- at SQ	SN:GL000248.1	LN:39786	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:5a8e43bec9be36c7b49c84d585107776	SP:Homo Sapiens
- at SQ	SN:GL000244.1	LN:39929	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:0996b4475f353ca98bacb756ac479140	SP:Homo Sapiens
- at SQ	SN:GL000238.1	LN:39939	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:131b1efc3270cc838686b54e7c34b17b	SP:Homo Sapiens
- at SQ	SN:GL000202.1	LN:40103	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:06cbf126247d89664a4faebad130fe9c	SP:Homo Sapiens
- at SQ	SN:GL000234.1	LN:40531	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:93f998536b61a56fd0ff47322a911d4b	SP:Homo Sapiens
- at SQ	SN:GL000232.1	LN:40652	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:3e06b6741061ad93a8587531307057d8	SP:Homo Sapiens
- at SQ	SN:GL000206.1	LN:41001	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:43f69e423533e948bfae5ce1d45bd3f1	SP:Homo Sapiens
- at SQ	SN:GL000240.1	LN:41933	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:445a86173da9f237d7bcf41c6cb8cc62	SP:Homo Sapiens
- at SQ	SN:GL000236.1	LN:41934	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:fdcd739913efa1fdc64b6c0cd7016779	SP:Homo Sapiens
- at SQ	SN:GL000241.1	LN:42152	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:ef4258cdc5a45c206cea8fc3e1d858cf	SP:Homo Sapiens
- at SQ	SN:GL000243.1	LN:43341	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:cc34279a7e353136741c9fce79bc4396	SP:Homo Sapiens
- at SQ	SN:GL000242.1	LN:43523	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:2f8694fc47576bc81b5fe9e7de0ba49e	SP:Homo Sapiens
- at SQ	SN:GL000230.1	LN:43691	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:b4eb71ee878d3706246b7c1dbef69299	SP:Homo Sapiens
- at SQ	SN:GL000237.1	LN:45867	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:e0c82e7751df73f4f6d0ed30cdc853c0	SP:Homo Sapiens
- at SQ	SN:GL000233.1	LN:45941	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:7fed60298a8d62ff808b74b6ce820001	SP:Homo Sapiens
- at SQ	SN:GL000204.1	LN:81310	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:efc49c871536fa8d79cb0a06fa739722	SP:Homo Sapiens
- at SQ	SN:GL000198.1	LN:90085	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:868e7784040da90d900d2d1b667a1383	SP:Homo Sapiens
- at SQ	SN:GL000208.1	LN:92689	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:aa81be49bf3fe63a79bdc6a6f279abf6	SP:Homo Sapiens
- at SQ	SN:GL000191.1	LN:106433	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:d75b436f50a8214ee9c2a51d30b2c2cc	SP:Homo Sapiens
- at SQ	SN:GL000227.1	LN:128374	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:a4aead23f8053f2655e468bcc6ecdceb	SP:Homo Sapiens
- at SQ	SN:GL000228.1	LN:129120	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:c5a17c97e2c1a0b6a9cc5a6b064b714f	SP:Homo Sapiens
- at SQ	SN:GL000214.1	LN:137718	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:46c2032c37f2ed899eb41c0473319a69	SP:Homo Sapiens
- at SQ	SN:GL000221.1	LN:155397	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:3238fb74ea87ae857f9c7508d315babb	SP:Homo Sapiens
- at SQ	SN:GL000209.1	LN:159169	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:f40598e2a5a6b26e84a3775e0d1e2c81	SP:Homo Sapiens
- at SQ	SN:GL000218.1	LN:161147	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:1d708b54644c26c7e01c2dad5426d38c	SP:Homo Sapiens
- at SQ	SN:GL000220.1	LN:161802	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:fc35de963c57bf7648429e6454f1c9db	SP:Homo Sapiens
- at SQ	SN:GL000213.1	LN:164239	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:9d424fdcc98866650b58f004080a992a	SP:Homo Sapiens
- at SQ	SN:GL000211.1	LN:166566	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:7daaa45c66b288847b9b32b964e623d3	SP:Homo Sapiens
- at SQ	SN:GL000199.1	LN:169874	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:569af3b73522fab4b40995ae4944e78e	SP:Homo Sapiens
- at SQ	SN:GL000217.1	LN:172149	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:6d243e18dea1945fb7f2517615b8f52e	SP:Homo Sapiens
- at SQ	SN:GL000216.1	LN:172294	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:642a232d91c486ac339263820aef7fe0	SP:Homo Sapiens
- at SQ	SN:GL000215.1	LN:172545	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:5eb3b418480ae67a997957c909375a73	SP:Homo Sapiens
- at SQ	SN:GL000205.1	LN:174588	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:d22441398d99caf673e9afb9a1908ec5	SP:Homo Sapiens
- at SQ	SN:GL000219.1	LN:179198	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:f977edd13bac459cb2ed4a5457dba1b3	SP:Homo Sapiens
- at SQ	SN:GL000224.1	LN:179693	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:d5b2fc04f6b41b212a4198a07f450e20	SP:Homo Sapiens
- at SQ	SN:GL000223.1	LN:180455	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:399dfa03bf32022ab52a846f7ca35b30	SP:Homo Sapiens
- at SQ	SN:GL000195.1	LN:182896	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:5d9ec007868d517e73543b005ba48535	SP:Homo Sapiens
- at SQ	SN:GL000212.1	LN:186858	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:563531689f3dbd691331fd6c5730a88b	SP:Homo Sapiens
- at SQ	SN:GL000222.1	LN:186861	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:6fe9abac455169f50470f5a6b01d0f59	SP:Homo Sapiens
- at SQ	SN:GL000200.1	LN:187035	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:75e4c8d17cd4addf3917d1703cacaf25	SP:Homo Sapiens
- at SQ	SN:GL000193.1	LN:189789	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:dbb6e8ece0b5de29da56601613007c2a	SP:Homo Sapiens
- at SQ	SN:GL000194.1	LN:191469	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:6ac8f815bf8e845bb3031b73f812c012	SP:Homo Sapiens
- at SQ	SN:GL000225.1	LN:211173	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:63945c3e6962f28ffd469719a747e73c	SP:Homo Sapiens
- at SQ	SN:GL000192.1	LN:547496	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:325ba9e808f669dfeee210fdd7b470ac	SP:Homo Sapiens
- at SQ	SN:NC_007605	LN:171823	AS:NC_007605.1	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:6743bd63b3ff2b5b8985d8933c53290a	SP:Epstein-Barr virus
-1	30000	30098	+	target_1
-1	30100	30150	+	target_2
-1	30200	30249	+	target_3
diff --git a/testdata/net/sf/samtools/BAMFileIndexTest/index_test.bam b/testdata/net/sf/samtools/BAMFileIndexTest/index_test.bam
deleted file mode 100644
index 8aa4751..0000000
Binary files a/testdata/net/sf/samtools/BAMFileIndexTest/index_test.bam and /dev/null differ
diff --git a/testdata/net/sf/samtools/BAMFileIndexTest/index_test.bam.bai b/testdata/net/sf/samtools/BAMFileIndexTest/index_test.bam.bai
deleted file mode 100644
index 49b423e..0000000
Binary files a/testdata/net/sf/samtools/BAMFileIndexTest/index_test.bam.bai and /dev/null differ
diff --git a/testdata/net/sf/samtools/SAMIntegerTagTest/variousAttributes.bam b/testdata/net/sf/samtools/SAMIntegerTagTest/variousAttributes.bam
deleted file mode 100755
index ab0e1a2..0000000
Binary files a/testdata/net/sf/samtools/SAMIntegerTagTest/variousAttributes.bam and /dev/null differ
diff --git a/testdata/net/sf/samtools/SAMIntegerTagTest/variousAttributes.sam b/testdata/net/sf/samtools/SAMIntegerTagTest/variousAttributes.sam
deleted file mode 100644
index a1349e9..0000000
--- a/testdata/net/sf/samtools/SAMIntegerTagTest/variousAttributes.sam
+++ /dev/null
@@ -1,4 +0,0 @@
- at HD	VN:1.0
- at SQ	SN:chr20	AS:HG18	LN:62435964
-read_28833_29006_6945	99	chr20	28833	20	10M1D25M	=	28993	195	AGCTTAGCTAGCTACCTATATCTTGGTCTTGGCCG	<<<<<<<<<<<<<<<<<<<<<:<9/,&,22;;<<<	MF:i:130	Nm:i:1	H0:i:0	H1:i:0	SB:i:-128	UB:i:129	SS:i:32767	US:i:65535	SI:i:2147483647	I2:i:-2147483647	UI:i:4294967295
-
diff --git a/testdata/net/sf/samtools/array_tags.sam b/testdata/net/sf/samtools/array_tags.sam
deleted file mode 100644
index be1f89b..0000000
--- a/testdata/net/sf/samtools/array_tags.sam
+++ /dev/null
@@ -1,3 +0,0 @@
- at HD	VN:1.0	SO:unsorted
- at SQ	SN:chr1	LN:101
-A	0	chr1	1	255	10M	*	0	0	CAACAGAAGC	)'.*.+2,))
\ No newline at end of file
diff --git a/testdata/net/sf/samtools/block_compressed.sam.gz b/testdata/net/sf/samtools/block_compressed.sam.gz
deleted file mode 100644
index d948382..0000000
Binary files a/testdata/net/sf/samtools/block_compressed.sam.gz and /dev/null differ
diff --git a/testdata/net/sf/samtools/compressed.bam b/testdata/net/sf/samtools/compressed.bam
deleted file mode 100644
index 9d20ade..0000000
Binary files a/testdata/net/sf/samtools/compressed.bam and /dev/null differ
diff --git a/testdata/net/sf/samtools/compressed.sam.gz b/testdata/net/sf/samtools/compressed.sam.gz
deleted file mode 100644
index bf84cd8..0000000
Binary files a/testdata/net/sf/samtools/compressed.sam.gz and /dev/null differ
diff --git a/testdata/net/sf/samtools/coordinate_sorted.sam b/testdata/net/sf/samtools/coordinate_sorted.sam
deleted file mode 100755
index 00942a9..0000000
--- a/testdata/net/sf/samtools/coordinate_sorted.sam
+++ /dev/null
@@ -1,15 +0,0 @@
- at HD	VN:1.0	SO:coordinate
- at SQ	SN:chr1	LN:101
- at SQ	SN:chr2	LN:101
- at SQ	SN:chr3	LN:101
- at RG	ID:0	SM:Hi,Mom!
-B	99	chr1	1	255	10M	=	26	35	CAACAGAAGC	)'.*.+2,))	RG:Z:0
-E	99	chr1	2	255	10M	=	15	30	CAACAGAAGC	)'.*.+2,))	RG:Z:0
-E	147	chr1	15	255	10M	=	2	-30	CAACAGAAGC	)'.*.+2,))	RG:Z:0
-B	147	chr1	26	255	10M	=	1	-35	CAACAGAAGC	)'.*.+2,))	RG:Z:0
-A	73	chr2	1	255	10M	*	0	0	CAACAGAAGC	)'.*.+2,))	RG:Z:0
-C	99	chr2	1	255	10M	=	26	35	CAACAGAAGC	)'.*.+2,))	RG:Z:0
-C	147	chr2	26	255	10M	=	1	-35	CAACAGAAGC	)'.*.+2,))	RG:Z:0
-D	99	chr3	1	255	10M	=	25	35	CAACAGAAGC	)'.*.+2,))	RG:Z:0
-D	147	chr3	26	255	10M	=	1	-35	CAACAGAAGC	)'.*.+2,))	RG:Z:0
-A	133	*	0	0	*	chr2	1	0	CAACAGAAGC	)'.*.+2,))	RG:Z:0
diff --git a/testdata/net/sf/samtools/empty.bai b/testdata/net/sf/samtools/empty.bai
deleted file mode 100755
index 237f2e5..0000000
Binary files a/testdata/net/sf/samtools/empty.bai and /dev/null differ
diff --git a/testdata/net/sf/samtools/empty.bam b/testdata/net/sf/samtools/empty.bam
deleted file mode 100644
index c8de04f..0000000
Binary files a/testdata/net/sf/samtools/empty.bam and /dev/null differ
diff --git a/testdata/net/sf/samtools/empty_no_empty_gzip_block.bai b/testdata/net/sf/samtools/empty_no_empty_gzip_block.bai
deleted file mode 100755
index 237f2e5..0000000
Binary files a/testdata/net/sf/samtools/empty_no_empty_gzip_block.bai and /dev/null differ
diff --git a/testdata/net/sf/samtools/empty_no_empty_gzip_block.bam b/testdata/net/sf/samtools/empty_no_empty_gzip_block.bam
deleted file mode 100644
index eeb875c..0000000
Binary files a/testdata/net/sf/samtools/empty_no_empty_gzip_block.bam and /dev/null differ
diff --git a/testdata/net/sf/samtools/queryname_sorted.sam b/testdata/net/sf/samtools/queryname_sorted.sam
deleted file mode 100755
index 068e7bc..0000000
--- a/testdata/net/sf/samtools/queryname_sorted.sam
+++ /dev/null
@@ -1,15 +0,0 @@
- at HD	VN:1.0	SO:queryname
- at SQ	SN:chr1	LN:101
- at SQ	SN:chr2	LN:101
- at SQ	SN:chr3	LN:101
- at RG	ID:0	SM:Hi,Mom!
-A	73	chr2	1	255	10M	*	0	0	CAACAGAAGC	)'.*.+2,))	RG:Z:0
-A	133	*	0	0	*	chr2	1	0	CAACAGAAGC	)'.*.+2,))	RG:Z:0
-B	99	chr1	1	255	10M	=	26	35	CAACAGAAGC	)'.*.+2,))	RG:Z:0
-B	147	chr1	26	255	10M	=	1	-35	CAACAGAAGC	)'.*.+2,))	RG:Z:0
-C	99	chr2	1	255	10M	=	26	35	CAACAGAAGC	)'.*.+2,))	RG:Z:0
-C	147	chr2	26	255	10M	=	1	-35	CAACAGAAGC	)'.*.+2,))	RG:Z:0
-D	99	chr3	1	255	10M	=	25	35	CAACAGAAGC	)'.*.+2,))	RG:Z:0
-D	147	chr3	26	255	10M	=	1	-35	CAACAGAAGC	)'.*.+2,))	RG:Z:0
-E	99	chr1	2	255	10M	=	15	30	CAACAGAAGC	)'.*.+2,))	RG:Z:0
-E	147	chr1	15	255	10M	=	2	-30	CAACAGAAGC	)'.*.+2,))	RG:Z:0
diff --git a/testdata/net/sf/samtools/recordWithHexArrayAttribute.bam b/testdata/net/sf/samtools/recordWithHexArrayAttribute.bam
deleted file mode 100644
index f509785..0000000
Binary files a/testdata/net/sf/samtools/recordWithHexArrayAttribute.bam and /dev/null differ
diff --git a/testdata/net/sf/samtools/seekablestream/megabyteZeros.dat b/testdata/net/sf/samtools/seekablestream/megabyteZeros.dat
deleted file mode 100755
index 7c2624a..0000000
Binary files a/testdata/net/sf/samtools/seekablestream/megabyteZeros.dat and /dev/null differ
diff --git a/testdata/net/sf/samtools/uncompressed.sam b/testdata/net/sf/samtools/uncompressed.sam
deleted file mode 100644
index e3fe151..0000000
--- a/testdata/net/sf/samtools/uncompressed.sam
+++ /dev/null
@@ -1,15 +0,0 @@
- at HD	VN:1.0	SO:unsorted
- at SQ	SN:chr1	LN:101
- at SQ	SN:chr2	LN:101
- at SQ	SN:chr3	LN:101
- at RG	ID:0	SM:Hi,Mom!
-A	73	chr2	1	255	10M	*	0	0	CAACAGAAGC	)'.*.+2,))	RG:Z:0
-A	133	*	0	0	*	chr2	1	0	CAACAGAAGC	)'.*.+2,))	RG:Z:0
-B	99	chr1	1	255	10M	=	26	35	CAACAGAAGC	)'.*.+2,))	RG:Z:0
-B	147	chr1	26	255	10M	=	1	-35	CAACAGAAGC	)'.*.+2,))	RG:Z:0
-C	99	chr2	1	255	10M	=	26	35	CAACAGAAGC	)'.*.+2,))	RG:Z:0
-C	147	chr2	26	255	10M	=	1	-35	CAACAGAAGC	)'.*.+2,))	RG:Z:0
-D	99	chr3	1	255	10M	=	25	35	CAACAGAAGC	)'.*.+2,))	RG:Z:0
-D	147	chr3	26	255	10M	=	1	-35	CAACAGAAGC	)'.*.+2,))	RG:Z:0
-E	99	chr1	2	255	10M	=	15	30	CAACAGAAGC	)'.*.+2,))	RG:Z:0
-E	147	chr1	15	255	10M	=	2	-30	CAACAGAAGC	)'.*.+2,))	RG:Z:0
diff --git a/testdata/net/sf/samtools/unsorted.sam b/testdata/net/sf/samtools/unsorted.sam
deleted file mode 100755
index e3fe151..0000000
--- a/testdata/net/sf/samtools/unsorted.sam
+++ /dev/null
@@ -1,15 +0,0 @@
- at HD	VN:1.0	SO:unsorted
- at SQ	SN:chr1	LN:101
- at SQ	SN:chr2	LN:101
- at SQ	SN:chr3	LN:101
- at RG	ID:0	SM:Hi,Mom!
-A	73	chr2	1	255	10M	*	0	0	CAACAGAAGC	)'.*.+2,))	RG:Z:0
-A	133	*	0	0	*	chr2	1	0	CAACAGAAGC	)'.*.+2,))	RG:Z:0
-B	99	chr1	1	255	10M	=	26	35	CAACAGAAGC	)'.*.+2,))	RG:Z:0
-B	147	chr1	26	255	10M	=	1	-35	CAACAGAAGC	)'.*.+2,))	RG:Z:0
-C	99	chr2	1	255	10M	=	26	35	CAACAGAAGC	)'.*.+2,))	RG:Z:0
-C	147	chr2	26	255	10M	=	1	-35	CAACAGAAGC	)'.*.+2,))	RG:Z:0
-D	99	chr3	1	255	10M	=	25	35	CAACAGAAGC	)'.*.+2,))	RG:Z:0
-D	147	chr3	26	255	10M	=	1	-35	CAACAGAAGC	)'.*.+2,))	RG:Z:0
-E	99	chr1	2	255	10M	=	15	30	CAACAGAAGC	)'.*.+2,))	RG:Z:0
-E	147	chr1	15	255	10M	=	2	-30	CAACAGAAGC	)'.*.+2,))	RG:Z:0
diff --git a/testdata/net/sf/samtools/util/broad_logo.gif b/testdata/net/sf/samtools/util/broad_logo.gif
deleted file mode 100644
index df6c728..0000000
Binary files a/testdata/net/sf/samtools/util/broad_logo.gif and /dev/null differ
diff --git a/testdata/net/sf/samtools/util/defective_bgzf.bam b/testdata/net/sf/samtools/util/defective_bgzf.bam
deleted file mode 100644
index 749b8e7..0000000
Binary files a/testdata/net/sf/samtools/util/defective_bgzf.bam and /dev/null differ
diff --git a/testdata/net/sf/samtools/util/no_bgzf_terminator.bam b/testdata/net/sf/samtools/util/no_bgzf_terminator.bam
deleted file mode 100644
index 0d9cbf7..0000000
Binary files a/testdata/net/sf/samtools/util/no_bgzf_terminator.bam and /dev/null differ
diff --git a/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/no_bq_cutoff.bait_bias_detail_metrics b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/no_bq_cutoff.bait_bias_detail_metrics
new file mode 100644
index 0000000..4f0cb93
--- /dev/null
+++ b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/no_bq_cutoff.bait_bias_detail_metrics
@@ -0,0 +1,21 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.analysis.artifacts.CollectSequencingArtifactMetrics MINIMUM_QUALITY_SCORE=0 MINIMUM_INSERT_SIZE=30 MAXIMUM_INSERT_SIZE=30 CONTEXT_SIZE=0 INPUT=/Users/msooknah/Documents/gp_projects/picard-private/Picard-public/testdata/picard/analysis/CollectSequencingArtifactMetrics/test.sam OUTPUT=/Users/msooknah/Documents/scratch/picardgroup/oxog/unit/tmp_output/no_bq_cutoff REFERENCE_SEQUENCE=/Users/msooknah/Documents/gp_projects/picard-private/Picard-public/testdata/picard/analysis/CollectS [...]
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Thu Mar 19 17:31:03 EDT 2015
+
+## METRICS CLASS	picard.analysis.artifacts.SequencingArtifactMetrics$BaitBiasDetailMetrics
+SAMPLE_ALIAS	LIBRARY	REF_BASE	ALT_BASE	CONTEXT	FWD_CXT_REF_BASES	FWD_CXT_ALT_BASES	REV_CXT_REF_BASES	REV_CXT_ALT_BASES	FWD_ERROR_RATE	REV_ERROR_RATE	ERROR_RATE	QSCORE
+sample1	library1	A	C	A	29	0	38	0	0	0	0	100
+sample1	library1	A	G	A	29	0	38	0	0	0	0	100
+sample1	library1	A	T	A	29	0	38	0	0	0	0	100
+sample1	library1	C	A	C	24	5	22	6	0.172414	0.214286	0	100
+sample1	library1	C	G	C	24	0	22	0	0	0	0	100
+sample1	library1	C	T	C	24	16	22	0	0.4	0	0.4	4
+sample1	library1	G	A	G	22	0	24	16	0	0.4	0	100
+sample1	library1	G	C	G	22	0	24	0	0	0	0	100
+sample1	library1	G	T	G	22	6	24	5	0.214286	0.172414	0.041872	14
+sample1	library1	T	A	T	38	0	29	0	0	0	0	100
+sample1	library1	T	C	T	38	0	29	0	0	0	0	100
+sample1	library1	T	G	T	38	0	29	0	0	0	0	100
+
+
diff --git a/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/no_bq_cutoff.bait_bias_summary_metrics b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/no_bq_cutoff.bait_bias_summary_metrics
new file mode 100644
index 0000000..209c567
--- /dev/null
+++ b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/no_bq_cutoff.bait_bias_summary_metrics
@@ -0,0 +1,21 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.analysis.artifacts.CollectSequencingArtifactMetrics MINIMUM_QUALITY_SCORE=0 MINIMUM_INSERT_SIZE=30 MAXIMUM_INSERT_SIZE=30 CONTEXT_SIZE=0 INPUT=/Users/msooknah/Documents/gp_projects/picard-private/Picard-public/testdata/picard/analysis/CollectSequencingArtifactMetrics/test.sam OUTPUT=/Users/msooknah/Documents/scratch/picardgroup/oxog/unit/tmp_output/no_bq_cutoff REFERENCE_SEQUENCE=/Users/msooknah/Documents/gp_projects/picard-private/Picard-public/testdata/picard/analysis/CollectS [...]
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Thu Mar 19 17:31:03 EDT 2015
+
+## METRICS CLASS	picard.analysis.artifacts.SequencingArtifactMetrics$BaitBiasSummaryMetrics
+SAMPLE_ALIAS	LIBRARY	REF_BASE	ALT_BASE	TOTAL_QSCORE	WORST_CXT	WORST_CXT_QSCORE	WORST_PRE_CXT	WORST_PRE_CXT_QSCORE	WORST_POST_CXT	WORST_POST_CXT_QSCORE	ARTIFACT_NAME
+sample1	library1	A	C	100	A	100	A	100	A	100	NA
+sample1	library1	A	G	100	A	100	A	100	A	100	NA
+sample1	library1	A	T	100	A	100	A	100	A	100	NA
+sample1	library1	C	A	100	C	100	C	100	C	100	Cref
+sample1	library1	C	G	100	C	100	C	100	C	100	NA
+sample1	library1	C	T	4	C	4	C	4	C	4	NA
+sample1	library1	G	A	100	G	100	G	100	G	100	NA
+sample1	library1	G	C	100	G	100	G	100	G	100	NA
+sample1	library1	G	T	14	G	14	G	14	G	14	Gref
+sample1	library1	T	A	100	T	100	T	100	T	100	NA
+sample1	library1	T	C	100	T	100	T	100	T	100	NA
+sample1	library1	T	G	100	T	100	T	100	T	100	NA
+
+
diff --git a/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/no_bq_cutoff.pre_adapter_detail_metrics b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/no_bq_cutoff.pre_adapter_detail_metrics
new file mode 100644
index 0000000..dbe7395
--- /dev/null
+++ b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/no_bq_cutoff.pre_adapter_detail_metrics
@@ -0,0 +1,21 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.analysis.artifacts.CollectSequencingArtifactMetrics MINIMUM_QUALITY_SCORE=0 MINIMUM_INSERT_SIZE=30 MAXIMUM_INSERT_SIZE=30 CONTEXT_SIZE=0 INPUT=/Users/msooknah/Documents/gp_projects/picard-private/Picard-public/testdata/picard/analysis/CollectSequencingArtifactMetrics/test.sam OUTPUT=/Users/msooknah/Documents/scratch/picardgroup/oxog/unit/tmp_output/no_bq_cutoff REFERENCE_SEQUENCE=/Users/msooknah/Documents/gp_projects/picard-private/Picard-public/testdata/picard/analysis/CollectS [...]
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Thu Mar 19 17:31:03 EDT 2015
+
+## METRICS CLASS	picard.analysis.artifacts.SequencingArtifactMetrics$PreAdapterDetailMetrics
+SAMPLE_ALIAS	LIBRARY	REF_BASE	ALT_BASE	CONTEXT	PRO_REF_BASES	PRO_ALT_BASES	CON_REF_BASES	CON_ALT_BASES	ERROR_RATE	QSCORE
+sample1	library1	A	C	A	31	0	36	0	0	100
+sample1	library1	A	G	A	31	0	36	0	0	100
+sample1	library1	A	T	A	31	0	36	0	0	100
+sample1	library1	C	A	C	31	0	15	11	0	100
+sample1	library1	C	G	C	31	0	15	0	0	100
+sample1	library1	C	T	C	31	8	15	8	0	100
+sample1	library1	G	A	G	15	8	31	8	0	100
+sample1	library1	G	C	G	15	0	31	0	0	100
+sample1	library1	G	T	G	15	11	31	0	0.192982	7
+sample1	library1	T	A	T	36	0	31	0	0	100
+sample1	library1	T	C	T	36	0	31	0	0	100
+sample1	library1	T	G	T	36	0	31	0	0	100
+
+
diff --git a/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/no_bq_cutoff.pre_adapter_summary_metrics b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/no_bq_cutoff.pre_adapter_summary_metrics
new file mode 100644
index 0000000..bc45a68
--- /dev/null
+++ b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/no_bq_cutoff.pre_adapter_summary_metrics
@@ -0,0 +1,21 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.analysis.artifacts.CollectSequencingArtifactMetrics MINIMUM_QUALITY_SCORE=0 MINIMUM_INSERT_SIZE=30 MAXIMUM_INSERT_SIZE=30 CONTEXT_SIZE=0 INPUT=/Users/msooknah/Documents/gp_projects/picard-private/Picard-public/testdata/picard/analysis/CollectSequencingArtifactMetrics/test.sam OUTPUT=/Users/msooknah/Documents/scratch/picardgroup/oxog/unit/tmp_output/no_bq_cutoff REFERENCE_SEQUENCE=/Users/msooknah/Documents/gp_projects/picard-private/Picard-public/testdata/picard/analysis/CollectS [...]
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Thu Mar 19 17:31:03 EDT 2015
+
+## METRICS CLASS	picard.analysis.artifacts.SequencingArtifactMetrics$PreAdapterSummaryMetrics
+SAMPLE_ALIAS	LIBRARY	REF_BASE	ALT_BASE	TOTAL_QSCORE	WORST_CXT	WORST_CXT_QSCORE	WORST_PRE_CXT	WORST_PRE_CXT_QSCORE	WORST_POST_CXT	WORST_POST_CXT_QSCORE	ARTIFACT_NAME
+sample1	library1	A	C	100	A	100	A	100	A	100	NA
+sample1	library1	A	G	100	A	100	A	100	A	100	NA
+sample1	library1	A	T	100	A	100	A	100	A	100	NA
+sample1	library1	C	A	100	C	100	C	100	C	100	NA
+sample1	library1	C	G	100	C	100	C	100	C	100	NA
+sample1	library1	C	T	100	C	100	C	100	C	100	Deamination
+sample1	library1	G	A	100	G	100	G	100	G	100	NA
+sample1	library1	G	C	100	G	100	G	100	G	100	NA
+sample1	library1	G	T	7	G	7	G	7	G	7	OxoG
+sample1	library1	T	A	100	T	100	T	100	T	100	NA
+sample1	library1	T	C	100	T	100	T	100	T	100	NA
+sample1	library1	T	G	100	T	100	T	100	T	100	NA
+
+
diff --git a/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/no_mq_cutoff.bait_bias_detail_metrics b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/no_mq_cutoff.bait_bias_detail_metrics
new file mode 100644
index 0000000..0934913
--- /dev/null
+++ b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/no_mq_cutoff.bait_bias_detail_metrics
@@ -0,0 +1,21 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.analysis.artifacts.CollectSequencingArtifactMetrics MINIMUM_MAPPING_QUALITY=0 MINIMUM_INSERT_SIZE=30 MAXIMUM_INSERT_SIZE=30 CONTEXT_SIZE=0 INPUT=/Users/msooknah/Documents/gp_projects/picard-private/Picard-public/testdata/picard/analysis/CollectSequencingArtifactMetrics/test.sam OUTPUT=/Users/msooknah/Documents/scratch/picardgroup/oxog/unit/tmp_output/no_mq_cutoff REFERENCE_SEQUENCE=/Users/msooknah/Documents/gp_projects/picard-private/Picard-public/testdata/picard/analysis/Collec [...]
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Thu Mar 19 17:31:03 EDT 2015
+
+## METRICS CLASS	picard.analysis.artifacts.SequencingArtifactMetrics$BaitBiasDetailMetrics
+SAMPLE_ALIAS	LIBRARY	REF_BASE	ALT_BASE	CONTEXT	FWD_CXT_REF_BASES	FWD_CXT_ALT_BASES	REV_CXT_REF_BASES	REV_CXT_ALT_BASES	FWD_ERROR_RATE	REV_ERROR_RATE	ERROR_RATE	QSCORE
+sample1	library1	A	C	A	30	0	38	0	0	0	0	100
+sample1	library1	A	G	A	30	0	38	0	0	0	0	100
+sample1	library1	A	T	A	30	0	38	0	0	0	0	100
+sample1	library1	C	A	C	27	5	23	6	0.15625	0.206897	0	100
+sample1	library1	C	G	C	27	0	23	0	0	0	0	100
+sample1	library1	C	T	C	27	16	23	0	0.372093	0	0.372093	4
+sample1	library1	G	A	G	23	0	27	16	0	0.372093	0	100
+sample1	library1	G	C	G	23	0	27	0	0	0	0	100
+sample1	library1	G	T	G	23	6	27	5	0.206897	0.15625	0.050647	13
+sample1	library1	T	A	T	38	0	30	0	0	0	0	100
+sample1	library1	T	C	T	38	0	30	0	0	0	0	100
+sample1	library1	T	G	T	38	0	30	0	0	0	0	100
+
+
diff --git a/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/no_mq_cutoff.bait_bias_summary_metrics b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/no_mq_cutoff.bait_bias_summary_metrics
new file mode 100644
index 0000000..93b11c7
--- /dev/null
+++ b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/no_mq_cutoff.bait_bias_summary_metrics
@@ -0,0 +1,21 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.analysis.artifacts.CollectSequencingArtifactMetrics MINIMUM_MAPPING_QUALITY=0 MINIMUM_INSERT_SIZE=30 MAXIMUM_INSERT_SIZE=30 CONTEXT_SIZE=0 INPUT=/Users/msooknah/Documents/gp_projects/picard-private/Picard-public/testdata/picard/analysis/CollectSequencingArtifactMetrics/test.sam OUTPUT=/Users/msooknah/Documents/scratch/picardgroup/oxog/unit/tmp_output/no_mq_cutoff REFERENCE_SEQUENCE=/Users/msooknah/Documents/gp_projects/picard-private/Picard-public/testdata/picard/analysis/Collec [...]
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Thu Mar 19 17:31:03 EDT 2015
+
+## METRICS CLASS	picard.analysis.artifacts.SequencingArtifactMetrics$BaitBiasSummaryMetrics
+SAMPLE_ALIAS	LIBRARY	REF_BASE	ALT_BASE	TOTAL_QSCORE	WORST_CXT	WORST_CXT_QSCORE	WORST_PRE_CXT	WORST_PRE_CXT_QSCORE	WORST_POST_CXT	WORST_POST_CXT_QSCORE	ARTIFACT_NAME
+sample1	library1	A	C	100	A	100	A	100	A	100	NA
+sample1	library1	A	G	100	A	100	A	100	A	100	NA
+sample1	library1	A	T	100	A	100	A	100	A	100	NA
+sample1	library1	C	A	100	C	100	C	100	C	100	Cref
+sample1	library1	C	G	100	C	100	C	100	C	100	NA
+sample1	library1	C	T	4	C	4	C	4	C	4	NA
+sample1	library1	G	A	100	G	100	G	100	G	100	NA
+sample1	library1	G	C	100	G	100	G	100	G	100	NA
+sample1	library1	G	T	13	G	13	G	13	G	13	Gref
+sample1	library1	T	A	100	T	100	T	100	T	100	NA
+sample1	library1	T	C	100	T	100	T	100	T	100	NA
+sample1	library1	T	G	100	T	100	T	100	T	100	NA
+
+
diff --git a/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/no_mq_cutoff.pre_adapter_detail_metrics b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/no_mq_cutoff.pre_adapter_detail_metrics
new file mode 100644
index 0000000..28d0cde
--- /dev/null
+++ b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/no_mq_cutoff.pre_adapter_detail_metrics
@@ -0,0 +1,21 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.analysis.artifacts.CollectSequencingArtifactMetrics MINIMUM_MAPPING_QUALITY=0 MINIMUM_INSERT_SIZE=30 MAXIMUM_INSERT_SIZE=30 CONTEXT_SIZE=0 INPUT=/Users/msooknah/Documents/gp_projects/picard-private/Picard-public/testdata/picard/analysis/CollectSequencingArtifactMetrics/test.sam OUTPUT=/Users/msooknah/Documents/scratch/picardgroup/oxog/unit/tmp_output/no_mq_cutoff REFERENCE_SEQUENCE=/Users/msooknah/Documents/gp_projects/picard-private/Picard-public/testdata/picard/analysis/Collec [...]
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Thu Mar 19 17:31:03 EDT 2015
+
+## METRICS CLASS	picard.analysis.artifacts.SequencingArtifactMetrics$PreAdapterDetailMetrics
+SAMPLE_ALIAS	LIBRARY	REF_BASE	ALT_BASE	CONTEXT	PRO_REF_BASES	PRO_ALT_BASES	CON_REF_BASES	CON_ALT_BASES	ERROR_RATE	QSCORE
+sample1	library1	A	C	A	32	0	36	0	0	100
+sample1	library1	A	G	A	32	0	36	0	0	100
+sample1	library1	A	T	A	32	0	36	0	0	100
+sample1	library1	C	A	C	34	0	16	11	0	100
+sample1	library1	C	G	C	34	0	16	0	0	100
+sample1	library1	C	T	C	34	8	16	8	0	100
+sample1	library1	G	A	G	16	8	34	8	0	100
+sample1	library1	G	C	G	16	0	34	0	0	100
+sample1	library1	G	T	G	16	11	34	0	0.180328	7
+sample1	library1	T	A	T	36	0	32	0	0	100
+sample1	library1	T	C	T	36	0	32	0	0	100
+sample1	library1	T	G	T	36	0	32	0	0	100
+
+
diff --git a/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/no_mq_cutoff.pre_adapter_summary_metrics b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/no_mq_cutoff.pre_adapter_summary_metrics
new file mode 100644
index 0000000..df0dbf0
--- /dev/null
+++ b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/no_mq_cutoff.pre_adapter_summary_metrics
@@ -0,0 +1,21 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.analysis.artifacts.CollectSequencingArtifactMetrics MINIMUM_MAPPING_QUALITY=0 MINIMUM_INSERT_SIZE=30 MAXIMUM_INSERT_SIZE=30 CONTEXT_SIZE=0 INPUT=/Users/msooknah/Documents/gp_projects/picard-private/Picard-public/testdata/picard/analysis/CollectSequencingArtifactMetrics/test.sam OUTPUT=/Users/msooknah/Documents/scratch/picardgroup/oxog/unit/tmp_output/no_mq_cutoff REFERENCE_SEQUENCE=/Users/msooknah/Documents/gp_projects/picard-private/Picard-public/testdata/picard/analysis/Collec [...]
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Thu Mar 19 17:31:03 EDT 2015
+
+## METRICS CLASS	picard.analysis.artifacts.SequencingArtifactMetrics$PreAdapterSummaryMetrics
+SAMPLE_ALIAS	LIBRARY	REF_BASE	ALT_BASE	TOTAL_QSCORE	WORST_CXT	WORST_CXT_QSCORE	WORST_PRE_CXT	WORST_PRE_CXT_QSCORE	WORST_POST_CXT	WORST_POST_CXT_QSCORE	ARTIFACT_NAME
+sample1	library1	A	C	100	A	100	A	100	A	100	NA
+sample1	library1	A	G	100	A	100	A	100	A	100	NA
+sample1	library1	A	T	100	A	100	A	100	A	100	NA
+sample1	library1	C	A	100	C	100	C	100	C	100	NA
+sample1	library1	C	G	100	C	100	C	100	C	100	NA
+sample1	library1	C	T	100	C	100	C	100	C	100	Deamination
+sample1	library1	G	A	100	G	100	G	100	G	100	NA
+sample1	library1	G	C	100	G	100	G	100	G	100	NA
+sample1	library1	G	T	7	G	7	G	7	G	7	OxoG
+sample1	library1	T	A	100	T	100	T	100	T	100	NA
+sample1	library1	T	C	100	T	100	T	100	T	100	NA
+sample1	library1	T	G	100	T	100	T	100	T	100	NA
+
+
diff --git a/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/unmapped_mate.bait_bias_detail_metrics b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/unmapped_mate.bait_bias_detail_metrics
new file mode 100644
index 0000000..107f6f3
--- /dev/null
+++ b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/unmapped_mate.bait_bias_detail_metrics
@@ -0,0 +1,21 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.analysis.artifacts.CollectSequencingArtifactMetrics MINIMUM_INSERT_SIZE=0 MAXIMUM_INSERT_SIZE=0 CONTEXT_SIZE=0 INPUT=/Users/msooknah/Documents/gp_projects/picard-private/Picard-public/testdata/picard/analysis/CollectSequencingArtifactMetrics/test.sam OUTPUT=/Users/msooknah/Documents/scratch/picardgroup/oxog/unit/tmp_output/unmapped_mate REFERENCE_SEQUENCE=/Users/msooknah/Documents/gp_projects/picard-private/Picard-public/testdata/picard/analysis/CollectSequencingArtifactMetrics/ [...]
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Thu Mar 19 17:31:02 EDT 2015
+
+## METRICS CLASS	picard.analysis.artifacts.SequencingArtifactMetrics$BaitBiasDetailMetrics
+SAMPLE_ALIAS	LIBRARY	REF_BASE	ALT_BASE	CONTEXT	FWD_CXT_REF_BASES	FWD_CXT_ALT_BASES	REV_CXT_REF_BASES	REV_CXT_ALT_BASES	FWD_ERROR_RATE	REV_ERROR_RATE	ERROR_RATE	QSCORE
+sample1	library1	A	C	A	29	0	40	0	0	0	0	100
+sample1	library1	A	G	A	29	0	40	0	0	0	0	100
+sample1	library1	A	T	A	29	0	40	0	0	0	0	100
+sample1	library1	C	A	C	26	5	23	6	0.16129	0.206897	0	100
+sample1	library1	C	G	C	26	0	23	0	0	0	0	100
+sample1	library1	C	T	C	26	16	23	0	0.380952	0	0.380952	4
+sample1	library1	G	A	G	23	0	26	16	0	0.380952	0	100
+sample1	library1	G	C	G	23	0	26	0	0	0	0	100
+sample1	library1	G	T	G	23	6	26	5	0.206897	0.16129	0.045606	13
+sample1	library1	T	A	T	40	0	29	0	0	0	0	100
+sample1	library1	T	C	T	40	0	29	0	0	0	0	100
+sample1	library1	T	G	T	40	0	29	0	0	0	0	100
+
+
diff --git a/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/unmapped_mate.bait_bias_summary_metrics b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/unmapped_mate.bait_bias_summary_metrics
new file mode 100644
index 0000000..d3e84bf
--- /dev/null
+++ b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/unmapped_mate.bait_bias_summary_metrics
@@ -0,0 +1,21 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.analysis.artifacts.CollectSequencingArtifactMetrics MINIMUM_INSERT_SIZE=0 MAXIMUM_INSERT_SIZE=0 CONTEXT_SIZE=0 INPUT=/Users/msooknah/Documents/gp_projects/picard-private/Picard-public/testdata/picard/analysis/CollectSequencingArtifactMetrics/test.sam OUTPUT=/Users/msooknah/Documents/scratch/picardgroup/oxog/unit/tmp_output/unmapped_mate REFERENCE_SEQUENCE=/Users/msooknah/Documents/gp_projects/picard-private/Picard-public/testdata/picard/analysis/CollectSequencingArtifactMetrics/ [...]
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Thu Mar 19 17:31:02 EDT 2015
+
+## METRICS CLASS	picard.analysis.artifacts.SequencingArtifactMetrics$BaitBiasSummaryMetrics
+SAMPLE_ALIAS	LIBRARY	REF_BASE	ALT_BASE	TOTAL_QSCORE	WORST_CXT	WORST_CXT_QSCORE	WORST_PRE_CXT	WORST_PRE_CXT_QSCORE	WORST_POST_CXT	WORST_POST_CXT_QSCORE	ARTIFACT_NAME
+sample1	library1	A	C	100	A	100	A	100	A	100	NA
+sample1	library1	A	G	100	A	100	A	100	A	100	NA
+sample1	library1	A	T	100	A	100	A	100	A	100	NA
+sample1	library1	C	A	100	C	100	C	100	C	100	Cref
+sample1	library1	C	G	100	C	100	C	100	C	100	NA
+sample1	library1	C	T	4	C	4	C	4	C	4	NA
+sample1	library1	G	A	100	G	100	G	100	G	100	NA
+sample1	library1	G	C	100	G	100	G	100	G	100	NA
+sample1	library1	G	T	13	G	13	G	13	G	13	Gref
+sample1	library1	T	A	100	T	100	T	100	T	100	NA
+sample1	library1	T	C	100	T	100	T	100	T	100	NA
+sample1	library1	T	G	100	T	100	T	100	T	100	NA
+
+
diff --git a/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/unmapped_mate.pre_adapter_detail_metrics b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/unmapped_mate.pre_adapter_detail_metrics
new file mode 100644
index 0000000..d111861
--- /dev/null
+++ b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/unmapped_mate.pre_adapter_detail_metrics
@@ -0,0 +1,21 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.analysis.artifacts.CollectSequencingArtifactMetrics MINIMUM_INSERT_SIZE=0 MAXIMUM_INSERT_SIZE=0 CONTEXT_SIZE=0 INPUT=/Users/msooknah/Documents/gp_projects/picard-private/Picard-public/testdata/picard/analysis/CollectSequencingArtifactMetrics/test.sam OUTPUT=/Users/msooknah/Documents/scratch/picardgroup/oxog/unit/tmp_output/unmapped_mate REFERENCE_SEQUENCE=/Users/msooknah/Documents/gp_projects/picard-private/Picard-public/testdata/picard/analysis/CollectSequencingArtifactMetrics/ [...]
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Thu Mar 19 17:31:02 EDT 2015
+
+## METRICS CLASS	picard.analysis.artifacts.SequencingArtifactMetrics$PreAdapterDetailMetrics
+SAMPLE_ALIAS	LIBRARY	REF_BASE	ALT_BASE	CONTEXT	PRO_REF_BASES	PRO_ALT_BASES	CON_REF_BASES	CON_ALT_BASES	ERROR_RATE	QSCORE
+sample1	library1	A	C	A	31	0	38	0	0	100
+sample1	library1	A	G	A	31	0	38	0	0	100
+sample1	library1	A	T	A	31	0	38	0	0	100
+sample1	library1	C	A	C	33	0	16	11	0	100
+sample1	library1	C	G	C	33	0	16	0	0	100
+sample1	library1	C	T	C	33	8	16	8	0	100
+sample1	library1	G	A	G	16	8	33	8	0	100
+sample1	library1	G	C	G	16	0	33	0	0	100
+sample1	library1	G	T	G	16	11	33	0	0.183333	7
+sample1	library1	T	A	T	38	0	31	0	0	100
+sample1	library1	T	C	T	38	0	31	0	0	100
+sample1	library1	T	G	T	38	0	31	0	0	100
+
+
diff --git a/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/unmapped_mate.pre_adapter_summary_metrics b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/unmapped_mate.pre_adapter_summary_metrics
new file mode 100644
index 0000000..1f97ea0
--- /dev/null
+++ b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/unmapped_mate.pre_adapter_summary_metrics
@@ -0,0 +1,21 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.analysis.artifacts.CollectSequencingArtifactMetrics MINIMUM_INSERT_SIZE=0 MAXIMUM_INSERT_SIZE=0 CONTEXT_SIZE=0 INPUT=/Users/msooknah/Documents/gp_projects/picard-private/Picard-public/testdata/picard/analysis/CollectSequencingArtifactMetrics/test.sam OUTPUT=/Users/msooknah/Documents/scratch/picardgroup/oxog/unit/tmp_output/unmapped_mate REFERENCE_SEQUENCE=/Users/msooknah/Documents/gp_projects/picard-private/Picard-public/testdata/picard/analysis/CollectSequencingArtifactMetrics/ [...]
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Thu Mar 19 17:31:02 EDT 2015
+
+## METRICS CLASS	picard.analysis.artifacts.SequencingArtifactMetrics$PreAdapterSummaryMetrics
+SAMPLE_ALIAS	LIBRARY	REF_BASE	ALT_BASE	TOTAL_QSCORE	WORST_CXT	WORST_CXT_QSCORE	WORST_PRE_CXT	WORST_PRE_CXT_QSCORE	WORST_POST_CXT	WORST_POST_CXT_QSCORE	ARTIFACT_NAME
+sample1	library1	A	C	100	A	100	A	100	A	100	NA
+sample1	library1	A	G	100	A	100	A	100	A	100	NA
+sample1	library1	A	T	100	A	100	A	100	A	100	NA
+sample1	library1	C	A	100	C	100	C	100	C	100	NA
+sample1	library1	C	G	100	C	100	C	100	C	100	NA
+sample1	library1	C	T	100	C	100	C	100	C	100	Deamination
+sample1	library1	G	A	100	G	100	G	100	G	100	NA
+sample1	library1	G	C	100	G	100	G	100	G	100	NA
+sample1	library1	G	T	7	G	7	G	7	G	7	OxoG
+sample1	library1	T	A	100	T	100	T	100	T	100	NA
+sample1	library1	T	C	100	T	100	T	100	T	100	NA
+sample1	library1	T	G	100	T	100	T	100	T	100	NA
+
+
diff --git a/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/with_context.bait_bias_detail_metrics b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/with_context.bait_bias_detail_metrics
new file mode 100644
index 0000000..a154521
--- /dev/null
+++ b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/with_context.bait_bias_detail_metrics
@@ -0,0 +1,201 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.analysis.artifacts.CollectSequencingArtifactMetrics MINIMUM_INSERT_SIZE=30 MAXIMUM_INSERT_SIZE=30 CONTEXT_SIZE=1 INPUT=/Users/msooknah/Documents/gp_projects/picard-private/Picard-public/testdata/picard/analysis/CollectSequencingArtifactMetrics/test.sam OUTPUT=/Users/msooknah/Documents/scratch/picardgroup/oxog/unit/tmp_output/with_context REFERENCE_SEQUENCE=/Users/msooknah/Documents/gp_projects/picard-private/Picard-public/testdata/picard/analysis/CollectSequencingArtifactMetrics [...]
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Thu Mar 19 17:31:03 EDT 2015
+
+## METRICS CLASS	picard.analysis.artifacts.SequencingArtifactMetrics$BaitBiasDetailMetrics
+SAMPLE_ALIAS	LIBRARY	REF_BASE	ALT_BASE	CONTEXT	FWD_CXT_REF_BASES	FWD_CXT_ALT_BASES	REV_CXT_REF_BASES	REV_CXT_ALT_BASES	FWD_ERROR_RATE	REV_ERROR_RATE	ERROR_RATE	QSCORE
+sample1	library1	A	C	AAT	1	0	0	0	0	0	0	100
+sample1	library1	A	C	GAT	5	0	4	0	0	0	0	100
+sample1	library1	A	C	CAG	3	0	4	0	0	0	0	100
+sample1	library1	A	C	CAC	0	0	1	0	0	0	0	100
+sample1	library1	A	C	TAT	2	0	1	0	0	0	0	100
+sample1	library1	A	C	CAA	2	0	0	0	0	0	0	100
+sample1	library1	A	C	TAA	0	0	1	0	0	0	0	100
+sample1	library1	A	C	TAC	4	0	3	0	0	0	0	100
+sample1	library1	A	C	AAG	3	0	4	0	0	0	0	100
+sample1	library1	A	C	GAG	0	0	1	0	0	0	0	100
+sample1	library1	A	C	AAA	1	0	0	0	0	0	0	100
+sample1	library1	A	C	AAC	0	0	0	0	0	0	0	100
+sample1	library1	A	C	GAC	0	0	2	0	0	0	0	100
+sample1	library1	A	C	GAA	2	0	4	0	0	0	0	100
+sample1	library1	A	C	CAT	3	0	5	0	0	0	0	100
+sample1	library1	A	C	TAG	0	0	2	0	0	0	0	100
+sample1	library1	A	G	AAT	1	0	0	0	0	0	0	100
+sample1	library1	A	G	GAT	5	0	4	0	0	0	0	100
+sample1	library1	A	G	CAG	3	0	4	0	0	0	0	100
+sample1	library1	A	G	CAC	0	0	1	0	0	0	0	100
+sample1	library1	A	G	TAT	2	0	1	0	0	0	0	100
+sample1	library1	A	G	CAA	2	0	0	0	0	0	0	100
+sample1	library1	A	G	TAA	0	0	1	0	0	0	0	100
+sample1	library1	A	G	TAC	4	0	3	0	0	0	0	100
+sample1	library1	A	G	AAG	3	0	4	0	0	0	0	100
+sample1	library1	A	G	GAG	0	0	1	0	0	0	0	100
+sample1	library1	A	G	AAA	1	0	0	0	0	0	0	100
+sample1	library1	A	G	AAC	0	0	0	0	0	0	0	100
+sample1	library1	A	G	GAC	0	0	2	0	0	0	0	100
+sample1	library1	A	G	GAA	2	0	4	0	0	0	0	100
+sample1	library1	A	G	CAT	3	0	5	0	0	0	0	100
+sample1	library1	A	G	TAG	0	0	2	0	0	0	0	100
+sample1	library1	A	T	AAT	1	0	0	0	0	0	0	100
+sample1	library1	A	T	GAT	5	0	4	0	0	0	0	100
+sample1	library1	A	T	CAG	3	0	4	0	0	0	0	100
+sample1	library1	A	T	CAC	0	0	1	0	0	0	0	100
+sample1	library1	A	T	TAT	2	0	1	0	0	0	0	100
+sample1	library1	A	T	CAA	2	0	0	0	0	0	0	100
+sample1	library1	A	T	TAA	0	0	1	0	0	0	0	100
+sample1	library1	A	T	TAC	4	0	3	0	0	0	0	100
+sample1	library1	A	T	AAG	3	0	4	0	0	0	0	100
+sample1	library1	A	T	GAG	0	0	1	0	0	0	0	100
+sample1	library1	A	T	AAA	1	0	0	0	0	0	0	100
+sample1	library1	A	T	AAC	0	0	0	0	0	0	0	100
+sample1	library1	A	T	GAC	0	0	2	0	0	0	0	100
+sample1	library1	A	T	GAA	2	0	4	0	0	0	0	100
+sample1	library1	A	T	CAT	3	0	5	0	0	0	0	100
+sample1	library1	A	T	TAG	0	0	2	0	0	0	0	100
+sample1	library1	C	A	ACT	0	0	0	1	0	1	0	100
+sample1	library1	C	A	GCT	4	0	3	0	0	0	0	100
+sample1	library1	C	A	CCA	2	0	0	0	0	0	0	100
+sample1	library1	C	A	CCC	1	1	0	0	0.5	0	0.5	3
+sample1	library1	C	A	TCT	0	1	1	0	1	0	1	0
+sample1	library1	C	A	ACA	4	0	0	0	0	0	0	100
+sample1	library1	C	A	CCG	0	0	0	0	0	0	0	100
+sample1	library1	C	A	GCG	1	0	4	1	0	0.2	0	100
+sample1	library1	C	A	ACC	1	0	0	0	0	0	0	100
+sample1	library1	C	A	TCG	2	0	3	1	0	0.25	0	100
+sample1	library1	C	A	ACG	2	0	4	1	0	0.2	0	100
+sample1	library1	C	A	TCA	3	0	2	1	0	0.333333	0	100
+sample1	library1	C	A	GCC	2	1	0	0	0.333333	0	0.333333	5
+sample1	library1	C	A	TCC	0	0	0	0	0	0	0	100
+sample1	library1	C	A	CCT	0	1	0	0	1	0	1	0
+sample1	library1	C	A	GCA	0	1	4	1	1	0.2	0.8	1
+sample1	library1	C	G	ACT	0	0	0	0	0	0	0	100
+sample1	library1	C	G	GCT	4	0	3	0	0	0	0	100
+sample1	library1	C	G	CCA	2	0	0	0	0	0	0	100
+sample1	library1	C	G	CCC	1	0	0	0	0	0	0	100
+sample1	library1	C	G	TCT	0	0	1	0	0	0	0	100
+sample1	library1	C	G	ACA	4	0	0	0	0	0	0	100
+sample1	library1	C	G	CCG	0	0	0	0	0	0	0	100
+sample1	library1	C	G	GCG	1	0	4	0	0	0	0	100
+sample1	library1	C	G	ACC	1	0	0	0	0	0	0	100
+sample1	library1	C	G	TCG	2	0	3	0	0	0	0	100
+sample1	library1	C	G	ACG	2	0	4	0	0	0	0	100
+sample1	library1	C	G	TCA	3	0	2	0	0	0	0	100
+sample1	library1	C	G	GCC	2	0	0	0	0	0	0	100
+sample1	library1	C	G	TCC	0	0	0	0	0	0	0	100
+sample1	library1	C	G	CCT	0	0	0	0	0	0	0	100
+sample1	library1	C	G	GCA	0	0	4	0	0	0	0	100
+sample1	library1	C	T	ACT	0	0	0	0	0	0	0	100
+sample1	library1	C	T	GCT	4	2	3	0	0.333333	0	0.333333	5
+sample1	library1	C	T	CCA	2	0	0	0	0	0	0	100
+sample1	library1	C	T	CCC	1	0	0	0	0	0	0	100
+sample1	library1	C	T	TCT	0	2	1	0	1	0	1	0
+sample1	library1	C	T	ACA	4	0	0	0	0	0	0	100
+sample1	library1	C	T	CCG	0	2	0	0	1	0	1	0
+sample1	library1	C	T	GCG	1	4	4	0	0.8	0	0.8	1
+sample1	library1	C	T	ACC	1	0	0	0	0	0	0	100
+sample1	library1	C	T	TCG	2	0	3	0	0	0	0	100
+sample1	library1	C	T	ACG	2	0	4	0	0	0	0	100
+sample1	library1	C	T	TCA	3	0	2	0	0	0	0	100
+sample1	library1	C	T	GCC	2	0	0	0	0	0	0	100
+sample1	library1	C	T	TCC	0	4	0	0	1	0	1	0
+sample1	library1	C	T	CCT	0	2	0	0	1	0	1	0
+sample1	library1	C	T	GCA	0	0	4	0	0	0	0	100
+sample1	library1	G	A	AGA	1	0	0	2	0	1	0	100
+sample1	library1	G	A	CGA	3	0	2	0	0	0	0	100
+sample1	library1	G	A	GGA	0	0	0	4	0	1	0	100
+sample1	library1	G	A	CGC	4	0	1	4	0	0.8	0	100
+sample1	library1	G	A	GGC	0	0	2	0	0	0	0	100
+sample1	library1	G	A	AGC	3	0	4	2	0	0.333333	0	100
+sample1	library1	G	A	GGG	0	0	1	0	0	0	0	100
+sample1	library1	G	A	TGG	0	0	2	0	0	0	0	100
+sample1	library1	G	A	TGC	4	0	0	0	0	0	0	100
+sample1	library1	G	A	CGT	4	0	2	0	0	0	0	100
+sample1	library1	G	A	TGA	2	0	3	0	0	0	0	100
+sample1	library1	G	A	GGT	0	0	1	0	0	0	0	100
+sample1	library1	G	A	AGT	0	0	0	0	0	0	0	100
+sample1	library1	G	A	TGT	0	0	4	0	0	0	0	100
+sample1	library1	G	A	AGG	0	0	0	2	0	1	0	100
+sample1	library1	G	A	CGG	0	0	0	2	0	1	0	100
+sample1	library1	G	C	AGA	1	0	0	0	0	0	0	100
+sample1	library1	G	C	CGA	3	0	2	0	0	0	0	100
+sample1	library1	G	C	GGA	0	0	0	0	0	0	0	100
+sample1	library1	G	C	CGC	4	0	1	0	0	0	0	100
+sample1	library1	G	C	GGC	0	0	2	0	0	0	0	100
+sample1	library1	G	C	AGC	3	0	4	0	0	0	0	100
+sample1	library1	G	C	GGG	0	0	1	0	0	0	0	100
+sample1	library1	G	C	TGG	0	0	2	0	0	0	0	100
+sample1	library1	G	C	TGC	4	0	0	0	0	0	0	100
+sample1	library1	G	C	CGT	4	0	2	0	0	0	0	100
+sample1	library1	G	C	TGA	2	0	3	0	0	0	0	100
+sample1	library1	G	C	GGT	0	0	1	0	0	0	0	100
+sample1	library1	G	C	AGT	0	0	0	0	0	0	0	100
+sample1	library1	G	C	TGT	0	0	4	0	0	0	0	100
+sample1	library1	G	C	AGG	0	0	0	0	0	0	0	100
+sample1	library1	G	C	CGG	0	0	0	0	0	0	0	100
+sample1	library1	G	T	AGA	1	0	0	1	0	1	0	100
+sample1	library1	G	T	CGA	3	1	2	0	0.25	0	0.25	6
+sample1	library1	G	T	GGA	0	0	0	0	0	0	0	100
+sample1	library1	G	T	CGC	4	1	1	0	0.2	0	0.2	7
+sample1	library1	G	T	GGC	0	0	2	1	0	0.333333	0	100
+sample1	library1	G	T	AGC	3	0	4	0	0	0	0	100
+sample1	library1	G	T	GGG	0	0	1	1	0	0.5	0	100
+sample1	library1	G	T	TGG	0	0	2	0	0	0	0	100
+sample1	library1	G	T	TGC	4	1	0	1	0.2	1	0	100
+sample1	library1	G	T	CGT	4	1	2	0	0.2	0	0.2	7
+sample1	library1	G	T	TGA	2	1	3	0	0.333333	0	0.333333	5
+sample1	library1	G	T	GGT	0	0	1	0	0	0	0	100
+sample1	library1	G	T	AGT	0	1	0	0	1	0	1	0
+sample1	library1	G	T	TGT	0	0	4	0	0	0	0	100
+sample1	library1	G	T	AGG	0	0	0	1	0	1	0	100
+sample1	library1	G	T	CGG	0	0	0	0	0	0	0	100
+sample1	library1	T	A	GTC	2	0	0	0	0	0	0	100
+sample1	library1	T	A	ATG	5	0	3	0	0	0	0	100
+sample1	library1	T	A	TTC	4	0	2	0	0	0	0	100
+sample1	library1	T	A	GTA	3	0	4	0	0	0	0	100
+sample1	library1	T	A	TTA	1	0	0	0	0	0	0	100
+sample1	library1	T	A	ATC	4	0	5	0	0	0	0	100
+sample1	library1	T	A	TTG	0	0	2	0	0	0	0	100
+sample1	library1	T	A	GTG	1	0	0	0	0	0	0	100
+sample1	library1	T	A	GTT	0	0	0	0	0	0	0	100
+sample1	library1	T	A	CTG	4	0	3	0	0	0	0	100
+sample1	library1	T	A	CTA	2	0	0	0	0	0	0	100
+sample1	library1	T	A	TTT	0	0	1	0	0	0	0	100
+sample1	library1	T	A	CTC	1	0	0	0	0	0	0	100
+sample1	library1	T	A	ATA	1	0	2	0	0	0	0	100
+sample1	library1	T	A	ATT	0	0	1	0	0	0	0	100
+sample1	library1	T	A	CTT	4	0	3	0	0	0	0	100
+sample1	library1	T	C	GTC	2	0	0	0	0	0	0	100
+sample1	library1	T	C	ATG	5	0	3	0	0	0	0	100
+sample1	library1	T	C	TTC	4	0	2	0	0	0	0	100
+sample1	library1	T	C	GTA	3	0	4	0	0	0	0	100
+sample1	library1	T	C	TTA	1	0	0	0	0	0	0	100
+sample1	library1	T	C	ATC	4	0	5	0	0	0	0	100
+sample1	library1	T	C	TTG	0	0	2	0	0	0	0	100
+sample1	library1	T	C	GTG	1	0	0	0	0	0	0	100
+sample1	library1	T	C	GTT	0	0	0	0	0	0	0	100
+sample1	library1	T	C	CTG	4	0	3	0	0	0	0	100
+sample1	library1	T	C	CTA	2	0	0	0	0	0	0	100
+sample1	library1	T	C	TTT	0	0	1	0	0	0	0	100
+sample1	library1	T	C	CTC	1	0	0	0	0	0	0	100
+sample1	library1	T	C	ATA	1	0	2	0	0	0	0	100
+sample1	library1	T	C	ATT	0	0	1	0	0	0	0	100
+sample1	library1	T	C	CTT	4	0	3	0	0	0	0	100
+sample1	library1	T	G	GTC	2	0	0	0	0	0	0	100
+sample1	library1	T	G	ATG	5	0	3	0	0	0	0	100
+sample1	library1	T	G	TTC	4	0	2	0	0	0	0	100
+sample1	library1	T	G	GTA	3	0	4	0	0	0	0	100
+sample1	library1	T	G	TTA	1	0	0	0	0	0	0	100
+sample1	library1	T	G	ATC	4	0	5	0	0	0	0	100
+sample1	library1	T	G	TTG	0	0	2	0	0	0	0	100
+sample1	library1	T	G	GTG	1	0	0	0	0	0	0	100
+sample1	library1	T	G	GTT	0	0	0	0	0	0	0	100
+sample1	library1	T	G	CTG	4	0	3	0	0	0	0	100
+sample1	library1	T	G	CTA	2	0	0	0	0	0	0	100
+sample1	library1	T	G	TTT	0	0	1	0	0	0	0	100
+sample1	library1	T	G	CTC	1	0	0	0	0	0	0	100
+sample1	library1	T	G	ATA	1	0	2	0	0	0	0	100
+sample1	library1	T	G	ATT	0	0	1	0	0	0	0	100
+sample1	library1	T	G	CTT	4	0	3	0	0	0	0	100
+
+
diff --git a/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/with_context.bait_bias_summary_metrics b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/with_context.bait_bias_summary_metrics
new file mode 100644
index 0000000..529a61e
--- /dev/null
+++ b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/with_context.bait_bias_summary_metrics
@@ -0,0 +1,21 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.analysis.artifacts.CollectSequencingArtifactMetrics MINIMUM_INSERT_SIZE=30 MAXIMUM_INSERT_SIZE=30 CONTEXT_SIZE=1 INPUT=/Users/msooknah/Documents/gp_projects/picard-private/Picard-public/testdata/picard/analysis/CollectSequencingArtifactMetrics/test.sam OUTPUT=/Users/msooknah/Documents/scratch/picardgroup/oxog/unit/tmp_output/with_context REFERENCE_SEQUENCE=/Users/msooknah/Documents/gp_projects/picard-private/Picard-public/testdata/picard/analysis/CollectSequencingArtifactMetrics [...]
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Thu Mar 19 17:31:03 EDT 2015
+
+## METRICS CLASS	picard.analysis.artifacts.SequencingArtifactMetrics$BaitBiasSummaryMetrics
+SAMPLE_ALIAS	LIBRARY	REF_BASE	ALT_BASE	TOTAL_QSCORE	WORST_CXT	WORST_CXT_QSCORE	WORST_PRE_CXT	WORST_PRE_CXT_QSCORE	WORST_POST_CXT	WORST_POST_CXT_QSCORE	ARTIFACT_NAME
+sample1	library1	A	C	100	AAT	100	GAN	100	NAG	100	NA
+sample1	library1	A	G	100	AAT	100	GAN	100	NAG	100	NA
+sample1	library1	A	T	100	AAT	100	GAN	100	NAG	100	NA
+sample1	library1	C	A	100	TCT	0	CCN	4	NCC	5	Cref
+sample1	library1	C	G	100	ACT	100	TCN	100	NCC	100	NA
+sample1	library1	C	T	4	TCT	0	CCN	2	NCT	2	NA
+sample1	library1	G	A	100	AGA	100	AGN	100	NGC	100	NA
+sample1	library1	G	C	100	AGA	100	AGN	100	NGC	100	NA
+sample1	library1	G	T	14	AGT	0	CGN	7	NGT	5	Gref
+sample1	library1	T	A	100	GTC	100	CTN	100	NTC	100	NA
+sample1	library1	T	C	100	GTC	100	CTN	100	NTC	100	NA
+sample1	library1	T	G	100	GTC	100	CTN	100	NTC	100	NA
+
+
diff --git a/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/with_context.pre_adapter_detail_metrics b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/with_context.pre_adapter_detail_metrics
new file mode 100644
index 0000000..e70b6ed
--- /dev/null
+++ b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/with_context.pre_adapter_detail_metrics
@@ -0,0 +1,201 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.analysis.artifacts.CollectSequencingArtifactMetrics MINIMUM_INSERT_SIZE=30 MAXIMUM_INSERT_SIZE=30 CONTEXT_SIZE=1 INPUT=/Users/msooknah/Documents/gp_projects/picard-private/Picard-public/testdata/picard/analysis/CollectSequencingArtifactMetrics/test.sam OUTPUT=/Users/msooknah/Documents/scratch/picardgroup/oxog/unit/tmp_output/with_context REFERENCE_SEQUENCE=/Users/msooknah/Documents/gp_projects/picard-private/Picard-public/testdata/picard/analysis/CollectSequencingArtifactMetrics [...]
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Thu Mar 19 17:31:03 EDT 2015
+
+## METRICS CLASS	picard.analysis.artifacts.SequencingArtifactMetrics$PreAdapterDetailMetrics
+SAMPLE_ALIAS	LIBRARY	REF_BASE	ALT_BASE	CONTEXT	PRO_REF_BASES	PRO_ALT_BASES	CON_REF_BASES	CON_ALT_BASES	ERROR_RATE	QSCORE
+sample1	library1	A	C	AAT	0	0	1	0	0	100
+sample1	library1	A	C	GAT	4	0	5	0	0	100
+sample1	library1	A	C	CAG	4	0	3	0	0	100
+sample1	library1	A	C	CAC	0	0	1	0	0	100
+sample1	library1	A	C	TAT	2	0	1	0	0	100
+sample1	library1	A	C	CAA	1	0	1	0	0	100
+sample1	library1	A	C	TAA	1	0	0	0	0	100
+sample1	library1	A	C	TAC	3	0	4	0	0	100
+sample1	library1	A	C	AAG	3	0	4	0	0	100
+sample1	library1	A	C	GAG	1	0	0	0	0	100
+sample1	library1	A	C	AAA	0	0	1	0	0	100
+sample1	library1	A	C	AAC	0	0	0	0	0	100
+sample1	library1	A	C	GAC	1	0	1	0	0	100
+sample1	library1	A	C	GAA	3	0	3	0	0	100
+sample1	library1	A	C	CAT	4	0	4	0	0	100
+sample1	library1	A	C	TAG	1	0	1	0	0	100
+sample1	library1	A	G	AAT	0	0	1	0	0	100
+sample1	library1	A	G	GAT	4	0	5	0	0	100
+sample1	library1	A	G	CAG	4	0	3	0	0	100
+sample1	library1	A	G	CAC	0	0	1	0	0	100
+sample1	library1	A	G	TAT	2	0	1	0	0	100
+sample1	library1	A	G	CAA	1	0	1	0	0	100
+sample1	library1	A	G	TAA	1	0	0	0	0	100
+sample1	library1	A	G	TAC	3	0	4	0	0	100
+sample1	library1	A	G	AAG	3	0	4	0	0	100
+sample1	library1	A	G	GAG	1	0	0	0	0	100
+sample1	library1	A	G	AAA	0	0	1	0	0	100
+sample1	library1	A	G	AAC	0	0	0	0	0	100
+sample1	library1	A	G	GAC	1	0	1	0	0	100
+sample1	library1	A	G	GAA	3	0	3	0	0	100
+sample1	library1	A	G	CAT	4	0	4	0	0	100
+sample1	library1	A	G	TAG	1	0	1	0	0	100
+sample1	library1	A	T	AAT	0	0	1	0	0	100
+sample1	library1	A	T	GAT	4	0	5	0	0	100
+sample1	library1	A	T	CAG	4	0	3	0	0	100
+sample1	library1	A	T	CAC	0	0	1	0	0	100
+sample1	library1	A	T	TAT	2	0	1	0	0	100
+sample1	library1	A	T	CAA	1	0	1	0	0	100
+sample1	library1	A	T	TAA	1	0	0	0	0	100
+sample1	library1	A	T	TAC	3	0	4	0	0	100
+sample1	library1	A	T	AAG	3	0	4	0	0	100
+sample1	library1	A	T	GAG	1	0	0	0	0	100
+sample1	library1	A	T	AAA	0	0	1	0	0	100
+sample1	library1	A	T	AAC	0	0	0	0	0	100
+sample1	library1	A	T	GAC	1	0	1	0	0	100
+sample1	library1	A	T	GAA	3	0	3	0	0	100
+sample1	library1	A	T	CAT	4	0	4	0	0	100
+sample1	library1	A	T	TAG	1	0	1	0	0	100
+sample1	library1	C	A	ACT	0	0	0	1	0	100
+sample1	library1	C	A	GCT	6	0	1	0	0	100
+sample1	library1	C	A	CCA	2	0	0	0	0	100
+sample1	library1	C	A	CCC	1	0	0	1	0	100
+sample1	library1	C	A	TCT	1	0	0	1	0	100
+sample1	library1	C	A	ACA	4	0	0	0	0	100
+sample1	library1	C	A	CCG	0	0	0	0	0	100
+sample1	library1	C	A	GCG	2	0	3	1	0	100
+sample1	library1	C	A	ACC	1	0	0	0	0	100
+sample1	library1	C	A	TCG	3	0	2	1	0	100
+sample1	library1	C	A	ACG	3	0	3	1	0	100
+sample1	library1	C	A	TCA	3	0	2	1	0	100
+sample1	library1	C	A	GCC	2	0	0	1	0	100
+sample1	library1	C	A	TCC	0	0	0	0	0	100
+sample1	library1	C	A	CCT	0	0	0	1	0	100
+sample1	library1	C	A	GCA	1	0	3	2	0	100
+sample1	library1	C	G	ACT	0	0	0	0	0	100
+sample1	library1	C	G	GCT	6	0	1	0	0	100
+sample1	library1	C	G	CCA	2	0	0	0	0	100
+sample1	library1	C	G	CCC	1	0	0	0	0	100
+sample1	library1	C	G	TCT	1	0	0	0	0	100
+sample1	library1	C	G	ACA	4	0	0	0	0	100
+sample1	library1	C	G	CCG	0	0	0	0	0	100
+sample1	library1	C	G	GCG	2	0	3	0	0	100
+sample1	library1	C	G	ACC	1	0	0	0	0	100
+sample1	library1	C	G	TCG	3	0	2	0	0	100
+sample1	library1	C	G	ACG	3	0	3	0	0	100
+sample1	library1	C	G	TCA	3	0	2	0	0	100
+sample1	library1	C	G	GCC	2	0	0	0	0	100
+sample1	library1	C	G	TCC	0	0	0	0	0	100
+sample1	library1	C	G	CCT	0	0	0	0	0	100
+sample1	library1	C	G	GCA	1	0	3	0	0	100
+sample1	library1	C	T	ACT	0	0	0	0	0	100
+sample1	library1	C	T	GCT	6	1	1	1	0	100
+sample1	library1	C	T	CCA	2	0	0	0	0	100
+sample1	library1	C	T	CCC	1	0	0	0	0	100
+sample1	library1	C	T	TCT	1	1	0	1	0	100
+sample1	library1	C	T	ACA	4	0	0	0	0	100
+sample1	library1	C	T	CCG	0	1	0	1	0	100
+sample1	library1	C	T	GCG	2	2	3	2	0	100
+sample1	library1	C	T	ACC	1	0	0	0	0	100
+sample1	library1	C	T	TCG	3	0	2	0	0	100
+sample1	library1	C	T	ACG	3	0	3	0	0	100
+sample1	library1	C	T	TCA	3	0	2	0	0	100
+sample1	library1	C	T	GCC	2	0	0	0	0	100
+sample1	library1	C	T	TCC	0	2	0	2	0	100
+sample1	library1	C	T	CCT	0	1	0	1	0	100
+sample1	library1	C	T	GCA	1	0	3	0	0	100
+sample1	library1	G	A	AGA	0	1	1	1	0	100
+sample1	library1	G	A	CGA	2	0	3	0	0	100
+sample1	library1	G	A	GGA	0	2	0	2	0	100
+sample1	library1	G	A	CGC	3	2	2	2	0	100
+sample1	library1	G	A	GGC	0	0	2	0	0	100
+sample1	library1	G	A	AGC	1	1	6	1	0	100
+sample1	library1	G	A	GGG	0	0	1	0	0	100
+sample1	library1	G	A	TGG	0	0	2	0	0	100
+sample1	library1	G	A	TGC	3	0	1	0	0	100
+sample1	library1	G	A	CGT	3	0	3	0	0	100
+sample1	library1	G	A	TGA	2	0	3	0	0	100
+sample1	library1	G	A	GGT	0	0	1	0	0	100
+sample1	library1	G	A	AGT	0	0	0	0	0	100
+sample1	library1	G	A	TGT	0	0	4	0	0	100
+sample1	library1	G	A	AGG	0	1	0	1	0	100
+sample1	library1	G	A	CGG	0	1	0	1	0	100
+sample1	library1	G	C	AGA	0	0	1	0	0	100
+sample1	library1	G	C	CGA	2	0	3	0	0	100
+sample1	library1	G	C	GGA	0	0	0	0	0	100
+sample1	library1	G	C	CGC	3	0	2	0	0	100
+sample1	library1	G	C	GGC	0	0	2	0	0	100
+sample1	library1	G	C	AGC	1	0	6	0	0	100
+sample1	library1	G	C	GGG	0	0	1	0	0	100
+sample1	library1	G	C	TGG	0	0	2	0	0	100
+sample1	library1	G	C	TGC	3	0	1	0	0	100
+sample1	library1	G	C	CGT	3	0	3	0	0	100
+sample1	library1	G	C	TGA	2	0	3	0	0	100
+sample1	library1	G	C	GGT	0	0	1	0	0	100
+sample1	library1	G	C	AGT	0	0	0	0	0	100
+sample1	library1	G	C	TGT	0	0	4	0	0	100
+sample1	library1	G	C	AGG	0	0	0	0	0	100
+sample1	library1	G	C	CGG	0	0	0	0	0	100
+sample1	library1	G	T	AGA	0	1	1	0	0.5	3
+sample1	library1	G	T	CGA	2	1	3	0	0.166667	8
+sample1	library1	G	T	GGA	0	0	0	0	0	100
+sample1	library1	G	T	CGC	3	1	2	0	0.166667	8
+sample1	library1	G	T	GGC	0	1	2	0	0.333333	5
+sample1	library1	G	T	AGC	1	0	6	0	0	100
+sample1	library1	G	T	GGG	0	1	1	0	0.5	3
+sample1	library1	G	T	TGG	0	0	2	0	0	100
+sample1	library1	G	T	TGC	3	2	1	0	0.333333	5
+sample1	library1	G	T	CGT	3	1	3	0	0.142857	8
+sample1	library1	G	T	TGA	2	1	3	0	0.166667	8
+sample1	library1	G	T	GGT	0	0	1	0	0	100
+sample1	library1	G	T	AGT	0	1	0	0	1	0
+sample1	library1	G	T	TGT	0	0	4	0	0	100
+sample1	library1	G	T	AGG	0	1	0	0	1	0
+sample1	library1	G	T	CGG	0	0	0	0	0	100
+sample1	library1	T	A	GTC	1	0	1	0	0	100
+sample1	library1	T	A	ATG	4	0	4	0	0	100
+sample1	library1	T	A	TTC	3	0	3	0	0	100
+sample1	library1	T	A	GTA	4	0	3	0	0	100
+sample1	library1	T	A	TTA	0	0	1	0	0	100
+sample1	library1	T	A	ATC	5	0	4	0	0	100
+sample1	library1	T	A	TTG	1	0	1	0	0	100
+sample1	library1	T	A	GTG	1	0	0	0	0	100
+sample1	library1	T	A	GTT	0	0	0	0	0	100
+sample1	library1	T	A	CTG	3	0	4	0	0	100
+sample1	library1	T	A	CTA	1	0	1	0	0	100
+sample1	library1	T	A	TTT	1	0	0	0	0	100
+sample1	library1	T	A	CTC	0	0	1	0	0	100
+sample1	library1	T	A	ATA	1	0	2	0	0	100
+sample1	library1	T	A	ATT	1	0	0	0	0	100
+sample1	library1	T	A	CTT	4	0	3	0	0	100
+sample1	library1	T	C	GTC	1	0	1	0	0	100
+sample1	library1	T	C	ATG	4	0	4	0	0	100
+sample1	library1	T	C	TTC	3	0	3	0	0	100
+sample1	library1	T	C	GTA	4	0	3	0	0	100
+sample1	library1	T	C	TTA	0	0	1	0	0	100
+sample1	library1	T	C	ATC	5	0	4	0	0	100
+sample1	library1	T	C	TTG	1	0	1	0	0	100
+sample1	library1	T	C	GTG	1	0	0	0	0	100
+sample1	library1	T	C	GTT	0	0	0	0	0	100
+sample1	library1	T	C	CTG	3	0	4	0	0	100
+sample1	library1	T	C	CTA	1	0	1	0	0	100
+sample1	library1	T	C	TTT	1	0	0	0	0	100
+sample1	library1	T	C	CTC	0	0	1	0	0	100
+sample1	library1	T	C	ATA	1	0	2	0	0	100
+sample1	library1	T	C	ATT	1	0	0	0	0	100
+sample1	library1	T	C	CTT	4	0	3	0	0	100
+sample1	library1	T	G	GTC	1	0	1	0	0	100
+sample1	library1	T	G	ATG	4	0	4	0	0	100
+sample1	library1	T	G	TTC	3	0	3	0	0	100
+sample1	library1	T	G	GTA	4	0	3	0	0	100
+sample1	library1	T	G	TTA	0	0	1	0	0	100
+sample1	library1	T	G	ATC	5	0	4	0	0	100
+sample1	library1	T	G	TTG	1	0	1	0	0	100
+sample1	library1	T	G	GTG	1	0	0	0	0	100
+sample1	library1	T	G	GTT	0	0	0	0	0	100
+sample1	library1	T	G	CTG	3	0	4	0	0	100
+sample1	library1	T	G	CTA	1	0	1	0	0	100
+sample1	library1	T	G	TTT	1	0	0	0	0	100
+sample1	library1	T	G	CTC	0	0	1	0	0	100
+sample1	library1	T	G	ATA	1	0	2	0	0	100
+sample1	library1	T	G	ATT	1	0	0	0	0	100
+sample1	library1	T	G	CTT	4	0	3	0	0	100
+
+
diff --git a/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/with_context.pre_adapter_summary_metrics b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/with_context.pre_adapter_summary_metrics
new file mode 100644
index 0000000..068011b
--- /dev/null
+++ b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/with_context.pre_adapter_summary_metrics
@@ -0,0 +1,21 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.analysis.artifacts.CollectSequencingArtifactMetrics MINIMUM_INSERT_SIZE=30 MAXIMUM_INSERT_SIZE=30 CONTEXT_SIZE=1 INPUT=/Users/msooknah/Documents/gp_projects/picard-private/Picard-public/testdata/picard/analysis/CollectSequencingArtifactMetrics/test.sam OUTPUT=/Users/msooknah/Documents/scratch/picardgroup/oxog/unit/tmp_output/with_context REFERENCE_SEQUENCE=/Users/msooknah/Documents/gp_projects/picard-private/Picard-public/testdata/picard/analysis/CollectSequencingArtifactMetrics [...]
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Thu Mar 19 17:31:03 EDT 2015
+
+## METRICS CLASS	picard.analysis.artifacts.SequencingArtifactMetrics$PreAdapterSummaryMetrics
+SAMPLE_ALIAS	LIBRARY	REF_BASE	ALT_BASE	TOTAL_QSCORE	WORST_CXT	WORST_CXT_QSCORE	WORST_PRE_CXT	WORST_PRE_CXT_QSCORE	WORST_POST_CXT	WORST_POST_CXT_QSCORE	ARTIFACT_NAME
+sample1	library1	A	C	100	AAT	100	GAN	100	NAG	100	NA
+sample1	library1	A	G	100	AAT	100	GAN	100	NAG	100	NA
+sample1	library1	A	T	100	AAT	100	GAN	100	NAG	100	NA
+sample1	library1	C	A	100	ACT	100	TCN	100	NCC	100	NA
+sample1	library1	C	G	100	ACT	100	TCN	100	NCC	100	NA
+sample1	library1	C	T	100	ACT	100	TCN	100	NCC	100	Deamination
+sample1	library1	G	A	100	AGA	100	AGN	100	NGC	100	NA
+sample1	library1	G	C	100	AGA	100	AGN	100	NGC	100	NA
+sample1	library1	G	T	7	AGT	0	GGN	5	NGG	4	OxoG
+sample1	library1	T	A	100	GTC	100	CTN	100	NTC	100	NA
+sample1	library1	T	C	100	GTC	100	CTN	100	NTC	100	NA
+sample1	library1	T	G	100	GTC	100	CTN	100	NTC	100	NA
+
+
diff --git a/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/with_dbsnp.bait_bias_detail_metrics b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/with_dbsnp.bait_bias_detail_metrics
new file mode 100644
index 0000000..c802eed
--- /dev/null
+++ b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/with_dbsnp.bait_bias_detail_metrics
@@ -0,0 +1,21 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.analysis.artifacts.CollectSequencingArtifactMetrics DB_SNP=testdata/picard/analysis/CollectSequencingArtifactMetrics/test.dbsnp.vcf MINIMUM_INSERT_SIZE=30 MAXIMUM_INSERT_SIZE=30 CONTEXT_SIZE=0 INPUT=/Users/msooknah/Documents/gp_projects/picard-private/Picard-public/testdata/picard/analysis/CollectSequencingArtifactMetrics/test.sam OUTPUT=/Users/msooknah/Documents/scratch/picardgroup/oxog/unit/tmp_output/with_dbsnp REFERENCE_SEQUENCE=/Users/msooknah/Documents/gp_projects/picard-p [...]
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Thu Mar 19 17:31:03 EDT 2015
+
+## METRICS CLASS	picard.analysis.artifacts.SequencingArtifactMetrics$BaitBiasDetailMetrics
+SAMPLE_ALIAS	LIBRARY	REF_BASE	ALT_BASE	CONTEXT	FWD_CXT_REF_BASES	FWD_CXT_ALT_BASES	REV_CXT_REF_BASES	REV_CXT_ALT_BASES	FWD_ERROR_RATE	REV_ERROR_RATE	ERROR_RATE	QSCORE
+sample1	library1	A	C	A	27	0	36	0	0	0	0	100
+sample1	library1	A	G	A	27	0	36	0	0	0	0	100
+sample1	library1	A	T	A	27	0	36	0	0	0	0	100
+sample1	library1	C	A	C	24	5	16	4	0.172414	0.2	0	100
+sample1	library1	C	G	C	24	0	16	0	0	0	0	100
+sample1	library1	C	T	C	24	12	16	0	0.333333	0	0.333333	5
+sample1	library1	G	A	G	16	0	24	12	0	0.333333	0	100
+sample1	library1	G	C	G	16	0	24	0	0	0	0	100
+sample1	library1	G	T	G	16	4	24	5	0.2	0.172414	0.027586	16
+sample1	library1	T	A	T	36	0	27	0	0	0	0	100
+sample1	library1	T	C	T	36	0	27	0	0	0	0	100
+sample1	library1	T	G	T	36	0	27	0	0	0	0	100
+
+
diff --git a/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/with_dbsnp.bait_bias_summary_metrics b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/with_dbsnp.bait_bias_summary_metrics
new file mode 100644
index 0000000..0787767
--- /dev/null
+++ b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/with_dbsnp.bait_bias_summary_metrics
@@ -0,0 +1,21 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.analysis.artifacts.CollectSequencingArtifactMetrics DB_SNP=testdata/picard/analysis/CollectSequencingArtifactMetrics/test.dbsnp.vcf MINIMUM_INSERT_SIZE=30 MAXIMUM_INSERT_SIZE=30 CONTEXT_SIZE=0 INPUT=/Users/msooknah/Documents/gp_projects/picard-private/Picard-public/testdata/picard/analysis/CollectSequencingArtifactMetrics/test.sam OUTPUT=/Users/msooknah/Documents/scratch/picardgroup/oxog/unit/tmp_output/with_dbsnp REFERENCE_SEQUENCE=/Users/msooknah/Documents/gp_projects/picard-p [...]
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Thu Mar 19 17:31:03 EDT 2015
+
+## METRICS CLASS	picard.analysis.artifacts.SequencingArtifactMetrics$BaitBiasSummaryMetrics
+SAMPLE_ALIAS	LIBRARY	REF_BASE	ALT_BASE	TOTAL_QSCORE	WORST_CXT	WORST_CXT_QSCORE	WORST_PRE_CXT	WORST_PRE_CXT_QSCORE	WORST_POST_CXT	WORST_POST_CXT_QSCORE	ARTIFACT_NAME
+sample1	library1	A	C	100	A	100	A	100	A	100	NA
+sample1	library1	A	G	100	A	100	A	100	A	100	NA
+sample1	library1	A	T	100	A	100	A	100	A	100	NA
+sample1	library1	C	A	100	C	100	C	100	C	100	Cref
+sample1	library1	C	G	100	C	100	C	100	C	100	NA
+sample1	library1	C	T	5	C	5	C	5	C	5	NA
+sample1	library1	G	A	100	G	100	G	100	G	100	NA
+sample1	library1	G	C	100	G	100	G	100	G	100	NA
+sample1	library1	G	T	16	G	16	G	16	G	16	Gref
+sample1	library1	T	A	100	T	100	T	100	T	100	NA
+sample1	library1	T	C	100	T	100	T	100	T	100	NA
+sample1	library1	T	G	100	T	100	T	100	T	100	NA
+
+
diff --git a/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/with_dbsnp.pre_adapter_detail_metrics b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/with_dbsnp.pre_adapter_detail_metrics
new file mode 100644
index 0000000..32e50e1
--- /dev/null
+++ b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/with_dbsnp.pre_adapter_detail_metrics
@@ -0,0 +1,21 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.analysis.artifacts.CollectSequencingArtifactMetrics DB_SNP=testdata/picard/analysis/CollectSequencingArtifactMetrics/test.dbsnp.vcf MINIMUM_INSERT_SIZE=30 MAXIMUM_INSERT_SIZE=30 CONTEXT_SIZE=0 INPUT=/Users/msooknah/Documents/gp_projects/picard-private/Picard-public/testdata/picard/analysis/CollectSequencingArtifactMetrics/test.sam OUTPUT=/Users/msooknah/Documents/scratch/picardgroup/oxog/unit/tmp_output/with_dbsnp REFERENCE_SEQUENCE=/Users/msooknah/Documents/gp_projects/picard-p [...]
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Thu Mar 19 17:31:03 EDT 2015
+
+## METRICS CLASS	picard.analysis.artifacts.SequencingArtifactMetrics$PreAdapterDetailMetrics
+SAMPLE_ALIAS	LIBRARY	REF_BASE	ALT_BASE	CONTEXT	PRO_REF_BASES	PRO_ALT_BASES	CON_REF_BASES	CON_ALT_BASES	ERROR_RATE	QSCORE
+sample1	library1	A	C	A	29	0	34	0	0	100
+sample1	library1	A	G	A	29	0	34	0	0	100
+sample1	library1	A	T	A	29	0	34	0	0	100
+sample1	library1	C	A	C	30	0	10	9	0	100
+sample1	library1	C	G	C	30	0	10	0	0	100
+sample1	library1	C	T	C	30	6	10	6	0	100
+sample1	library1	G	A	G	10	6	30	6	0	100
+sample1	library1	G	C	G	10	0	30	0	0	100
+sample1	library1	G	T	G	10	9	30	0	0.183673	7
+sample1	library1	T	A	T	34	0	29	0	0	100
+sample1	library1	T	C	T	34	0	29	0	0	100
+sample1	library1	T	G	T	34	0	29	0	0	100
+
+
diff --git a/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/with_dbsnp.pre_adapter_summary_metrics b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/with_dbsnp.pre_adapter_summary_metrics
new file mode 100644
index 0000000..c8b546a
--- /dev/null
+++ b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/with_dbsnp.pre_adapter_summary_metrics
@@ -0,0 +1,21 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.analysis.artifacts.CollectSequencingArtifactMetrics DB_SNP=testdata/picard/analysis/CollectSequencingArtifactMetrics/test.dbsnp.vcf MINIMUM_INSERT_SIZE=30 MAXIMUM_INSERT_SIZE=30 CONTEXT_SIZE=0 INPUT=/Users/msooknah/Documents/gp_projects/picard-private/Picard-public/testdata/picard/analysis/CollectSequencingArtifactMetrics/test.sam OUTPUT=/Users/msooknah/Documents/scratch/picardgroup/oxog/unit/tmp_output/with_dbsnp REFERENCE_SEQUENCE=/Users/msooknah/Documents/gp_projects/picard-p [...]
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Thu Mar 19 17:31:03 EDT 2015
+
+## METRICS CLASS	picard.analysis.artifacts.SequencingArtifactMetrics$PreAdapterSummaryMetrics
+SAMPLE_ALIAS	LIBRARY	REF_BASE	ALT_BASE	TOTAL_QSCORE	WORST_CXT	WORST_CXT_QSCORE	WORST_PRE_CXT	WORST_PRE_CXT_QSCORE	WORST_POST_CXT	WORST_POST_CXT_QSCORE	ARTIFACT_NAME
+sample1	library1	A	C	100	A	100	A	100	A	100	NA
+sample1	library1	A	G	100	A	100	A	100	A	100	NA
+sample1	library1	A	T	100	A	100	A	100	A	100	NA
+sample1	library1	C	A	100	C	100	C	100	C	100	NA
+sample1	library1	C	G	100	C	100	C	100	C	100	NA
+sample1	library1	C	T	100	C	100	C	100	C	100	Deamination
+sample1	library1	G	A	100	G	100	G	100	G	100	NA
+sample1	library1	G	C	100	G	100	G	100	G	100	NA
+sample1	library1	G	T	7	G	7	G	7	G	7	OxoG
+sample1	library1	T	A	100	T	100	T	100	T	100	NA
+sample1	library1	T	C	100	T	100	T	100	T	100	NA
+sample1	library1	T	G	100	T	100	T	100	T	100	NA
+
+
diff --git a/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/with_intervals.bait_bias_detail_metrics b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/with_intervals.bait_bias_detail_metrics
new file mode 100644
index 0000000..5a5196f
--- /dev/null
+++ b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/with_intervals.bait_bias_detail_metrics
@@ -0,0 +1,21 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.analysis.artifacts.CollectSequencingArtifactMetrics INTERVALS=testdata/picard/analysis/CollectSequencingArtifactMetrics/test.interval_list MINIMUM_INSERT_SIZE=30 MAXIMUM_INSERT_SIZE=30 CONTEXT_SIZE=0 INPUT=/Users/msooknah/Documents/gp_projects/picard-private/Picard-public/testdata/picard/analysis/CollectSequencingArtifactMetrics/test.sam OUTPUT=/Users/msooknah/Documents/scratch/picardgroup/oxog/unit/tmp_output/with_intervals REFERENCE_SEQUENCE=/Users/msooknah/Documents/gp_projec [...]
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Thu Mar 19 17:31:03 EDT 2015
+
+## METRICS CLASS	picard.analysis.artifacts.SequencingArtifactMetrics$BaitBiasDetailMetrics
+SAMPLE_ALIAS	LIBRARY	REF_BASE	ALT_BASE	CONTEXT	FWD_CXT_REF_BASES	FWD_CXT_ALT_BASES	REV_CXT_REF_BASES	REV_CXT_ALT_BASES	FWD_ERROR_RATE	REV_ERROR_RATE	ERROR_RATE	QSCORE
+sample1	library1	A	C	A	15	0	16	0	0	0	0	100
+sample1	library1	A	G	A	15	0	16	0	0	0	0	100
+sample1	library1	A	T	A	15	0	16	0	0	0	0	100
+sample1	library1	C	A	C	7	1	13	1	0.125	0.071429	0.053571	13
+sample1	library1	C	G	C	7	0	13	0	0	0	0	100
+sample1	library1	C	T	C	7	16	13	0	0.695652	0	0.695652	2
+sample1	library1	G	A	G	13	0	7	16	0	0.695652	0	100
+sample1	library1	G	C	G	13	0	7	0	0	0	0	100
+sample1	library1	G	T	G	13	1	7	1	0.071429	0.125	0	100
+sample1	library1	T	A	T	16	0	15	0	0	0	0	100
+sample1	library1	T	C	T	16	0	15	0	0	0	0	100
+sample1	library1	T	G	T	16	0	15	0	0	0	0	100
+
+
diff --git a/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/with_intervals.bait_bias_summary_metrics b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/with_intervals.bait_bias_summary_metrics
new file mode 100644
index 0000000..410db24
--- /dev/null
+++ b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/with_intervals.bait_bias_summary_metrics
@@ -0,0 +1,21 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.analysis.artifacts.CollectSequencingArtifactMetrics INTERVALS=testdata/picard/analysis/CollectSequencingArtifactMetrics/test.interval_list MINIMUM_INSERT_SIZE=30 MAXIMUM_INSERT_SIZE=30 CONTEXT_SIZE=0 INPUT=/Users/msooknah/Documents/gp_projects/picard-private/Picard-public/testdata/picard/analysis/CollectSequencingArtifactMetrics/test.sam OUTPUT=/Users/msooknah/Documents/scratch/picardgroup/oxog/unit/tmp_output/with_intervals REFERENCE_SEQUENCE=/Users/msooknah/Documents/gp_projec [...]
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Thu Mar 19 17:31:03 EDT 2015
+
+## METRICS CLASS	picard.analysis.artifacts.SequencingArtifactMetrics$BaitBiasSummaryMetrics
+SAMPLE_ALIAS	LIBRARY	REF_BASE	ALT_BASE	TOTAL_QSCORE	WORST_CXT	WORST_CXT_QSCORE	WORST_PRE_CXT	WORST_PRE_CXT_QSCORE	WORST_POST_CXT	WORST_POST_CXT_QSCORE	ARTIFACT_NAME
+sample1	library1	A	C	100	A	100	A	100	A	100	NA
+sample1	library1	A	G	100	A	100	A	100	A	100	NA
+sample1	library1	A	T	100	A	100	A	100	A	100	NA
+sample1	library1	C	A	13	C	13	C	13	C	13	Cref
+sample1	library1	C	G	100	C	100	C	100	C	100	NA
+sample1	library1	C	T	2	C	2	C	2	C	2	NA
+sample1	library1	G	A	100	G	100	G	100	G	100	NA
+sample1	library1	G	C	100	G	100	G	100	G	100	NA
+sample1	library1	G	T	100	G	100	G	100	G	100	Gref
+sample1	library1	T	A	100	T	100	T	100	T	100	NA
+sample1	library1	T	C	100	T	100	T	100	T	100	NA
+sample1	library1	T	G	100	T	100	T	100	T	100	NA
+
+
diff --git a/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/with_intervals.pre_adapter_detail_metrics b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/with_intervals.pre_adapter_detail_metrics
new file mode 100644
index 0000000..91f0543
--- /dev/null
+++ b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/with_intervals.pre_adapter_detail_metrics
@@ -0,0 +1,21 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.analysis.artifacts.CollectSequencingArtifactMetrics INTERVALS=testdata/picard/analysis/CollectSequencingArtifactMetrics/test.interval_list MINIMUM_INSERT_SIZE=30 MAXIMUM_INSERT_SIZE=30 CONTEXT_SIZE=0 INPUT=/Users/msooknah/Documents/gp_projects/picard-private/Picard-public/testdata/picard/analysis/CollectSequencingArtifactMetrics/test.sam OUTPUT=/Users/msooknah/Documents/scratch/picardgroup/oxog/unit/tmp_output/with_intervals REFERENCE_SEQUENCE=/Users/msooknah/Documents/gp_projec [...]
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Thu Mar 19 17:31:03 EDT 2015
+
+## METRICS CLASS	picard.analysis.artifacts.SequencingArtifactMetrics$PreAdapterDetailMetrics
+SAMPLE_ALIAS	LIBRARY	REF_BASE	ALT_BASE	CONTEXT	PRO_REF_BASES	PRO_ALT_BASES	CON_REF_BASES	CON_ALT_BASES	ERROR_RATE	QSCORE
+sample1	library1	A	C	A	16	0	15	0	0	100
+sample1	library1	A	G	A	16	0	15	0	0	100
+sample1	library1	A	T	A	16	0	15	0	0	100
+sample1	library1	C	A	C	13	0	7	2	0	100
+sample1	library1	C	G	C	13	0	7	0	0	100
+sample1	library1	C	T	C	13	8	7	8	0	100
+sample1	library1	G	A	G	7	8	13	8	0	100
+sample1	library1	G	C	G	7	0	13	0	0	100
+sample1	library1	G	T	G	7	2	13	0	0.090909	10
+sample1	library1	T	A	T	15	0	16	0	0	100
+sample1	library1	T	C	T	15	0	16	0	0	100
+sample1	library1	T	G	T	15	0	16	0	0	100
+
+
diff --git a/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/with_intervals.pre_adapter_summary_metrics b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/with_intervals.pre_adapter_summary_metrics
new file mode 100644
index 0000000..8ef4423
--- /dev/null
+++ b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/ExpectedMetricsOutput/with_intervals.pre_adapter_summary_metrics
@@ -0,0 +1,21 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.analysis.artifacts.CollectSequencingArtifactMetrics INTERVALS=testdata/picard/analysis/CollectSequencingArtifactMetrics/test.interval_list MINIMUM_INSERT_SIZE=30 MAXIMUM_INSERT_SIZE=30 CONTEXT_SIZE=0 INPUT=/Users/msooknah/Documents/gp_projects/picard-private/Picard-public/testdata/picard/analysis/CollectSequencingArtifactMetrics/test.sam OUTPUT=/Users/msooknah/Documents/scratch/picardgroup/oxog/unit/tmp_output/with_intervals REFERENCE_SEQUENCE=/Users/msooknah/Documents/gp_projec [...]
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Thu Mar 19 17:31:03 EDT 2015
+
+## METRICS CLASS	picard.analysis.artifacts.SequencingArtifactMetrics$PreAdapterSummaryMetrics
+SAMPLE_ALIAS	LIBRARY	REF_BASE	ALT_BASE	TOTAL_QSCORE	WORST_CXT	WORST_CXT_QSCORE	WORST_PRE_CXT	WORST_PRE_CXT_QSCORE	WORST_POST_CXT	WORST_POST_CXT_QSCORE	ARTIFACT_NAME
+sample1	library1	A	C	100	A	100	A	100	A	100	NA
+sample1	library1	A	G	100	A	100	A	100	A	100	NA
+sample1	library1	A	T	100	A	100	A	100	A	100	NA
+sample1	library1	C	A	100	C	100	C	100	C	100	NA
+sample1	library1	C	G	100	C	100	C	100	C	100	NA
+sample1	library1	C	T	100	C	100	C	100	C	100	Deamination
+sample1	library1	G	A	100	G	100	G	100	G	100	NA
+sample1	library1	G	C	100	G	100	G	100	G	100	NA
+sample1	library1	G	T	10	G	10	G	10	G	10	OxoG
+sample1	library1	T	A	100	T	100	T	100	T	100	NA
+sample1	library1	T	C	100	T	100	T	100	T	100	NA
+sample1	library1	T	G	100	T	100	T	100	T	100	NA
+
+
diff --git a/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/readme.txt b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/readme.txt
new file mode 100644
index 0000000..485ef5e
--- /dev/null
+++ b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/readme.txt
@@ -0,0 +1,24 @@
+Description of reads (may be out of order):
+
+perfect_fr/1 - read 1+ with no artifacts
+perfect_fr/2 - read 2- with no artifacts
+nbases_fr/1 - read 1+ with no artifacts, but some Ns in REFERENCE (contexts with an N _anywhere_ will be skipped)
+nbases_fr/2 - read 2- with no artifacts, but some Ns in READ (N sites will be skipped, but otherwise do not affect context)
+pro_oxog_fr/1 - read 1+ consistent with OxoG (G>T)
+pro_oxog_fr/2 - read 2- consistent with OxoG (G>T)
+pro_oxog_rf/1 - read 1- consistent with OxoG (C>A)
+pro_oxog_rf/2 - read 2+ consistent with OxoG (C>A)
+pro_ffpe_fr/1 - read 1+ consistent with FFPE (C>T)
+pro_ffpe_fr/2 - read 2- consistent with FFPE (C>T)
+con_ffpe_rf/1 - read 1- INconsistent with FFPE (C>T)
+con_ffpe_rf/2 - read 2+ INconsistent with FFPE (C>T)
+indel_oxog_fr/1 - read 1+ with insertion, deletion and OxoG artifact (indel sites will be skipped, but otherwise do not affect context)
+indel_oxog_fr/2 - read 2- with insertion, deletion and OxoG artifact (indel sites will be skipped, but otherwise do not affect context)
+unmapped_mate/1 - mapped read 1 with unmapped mate (may be filtered out)
+unmapped_mate/2 - unmapped read 2 with mapped mate (mate may be filtered out)
+duplicate/1 - duplicate (should always be filtered out)
+duplicate/2 - duplicate (should always be filtered out)
+non_primary/1 - non-primary alignment (should always be filtered out)
+non_primary/2 - non-primary alignment (should always be filtered out)
+low_quality/1 - has some low BASE qualities (those sites may be skipped) 
+low_quality/2 - has a low MAPPING quality (may be filtered out)
\ No newline at end of file
diff --git a/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/test.dbsnp.vcf b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/test.dbsnp.vcf
new file mode 100644
index 0000000..c5d75a9
--- /dev/null
+++ b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/test.dbsnp.vcf
@@ -0,0 +1,6 @@
+##fileformat=VCFv4.2
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO
+chr1	6	oxog_snp_1	G	T	.	PASS	.
+chr1	9	oxog_snp_2	G	T	.	PASS	.
+chr2	15	insertion	C	CT	.	PASS	.
+chr2	35	deletion	CG	C	.	PASS	.
diff --git a/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/test.dbsnp.vcf.idx b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/test.dbsnp.vcf.idx
new file mode 100644
index 0000000..5a09aa3
Binary files /dev/null and b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/test.dbsnp.vcf.idx differ
diff --git a/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/test.fasta b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/test.fasta
new file mode 100644
index 0000000..054e2ab
--- /dev/null
+++ b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/test.fasta
@@ -0,0 +1,18 @@
+>chr1
+TTCATGCTGA
+AGCCCTCTTA
+CGATCGTACA
+GATGCAAATA
+TTAACAAACC
+>chr2
+CATNNNNACA
+AGCGCGTCCT
+ACCAGACGCG
+CTTCCGATCT
+GAGAGCATAC
+>chr3
+CGTATGCGCT
+TTTTATGTCG
+CCCACAGTGC
+CTAGTATAGC
+CCCTGCTAAT
\ No newline at end of file
diff --git a/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/test.interval_list b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/test.interval_list
new file mode 100644
index 0000000..8f171af
--- /dev/null
+++ b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/test.interval_list
@@ -0,0 +1,6 @@
+ at HD	VN:1.0	SO:coordinate
+ at SQ	SN:chr1	LN:50
+ at SQ	SN:chr2	LN:50
+ at SQ	SN:chr3	LN:50
+chr1	25	50	+	target_1
+chr2	10	50	+	target_2
diff --git a/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/test.sam b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/test.sam
new file mode 100644
index 0000000..4dde356
--- /dev/null
+++ b/testdata/picard/analysis/artifacts/CollectSequencingArtifactMetrics/test.sam
@@ -0,0 +1,27 @@
+ at HD	VN:1.0	SO:coordinate
+ at SQ	SN:chr1	LN:50
+ at SQ	SN:chr2	LN:50
+ at SQ	SN:chr3	LN:50
+ at RG	ID:0	SM:sample1	LB:library1
+perfect_fr/1	99	chr1	1	40	10M	chr1	21	30	TTCATGCTGA	??????????	RG:Z:0
+pro_oxog_fr/1	99	chr1	1	40	10M	chr1	21	30	TTCATTCTTA	??????????	RG:Z:0
+unmapped_mate/1	73	chr1	1	40	10M	*	0	0	TTCATGCTGA	??????????	RG:Z:0
+duplicate/1	1123	chr1	1	40	10M	chr1	21	30	TTCATGCTGA	??????????	RG:Z:0
+non_primary/1	355	chr1	1	40	10M	chr1	21	30	TTCATGCTGA	??????????	RG:Z:0
+low_quality/1	99	chr1	1	40	10M	chr1	21	30	TTCATGCTGA	?!?!?!?!?!	RG:Z:0
+pro_oxog_rf/1	83	chr1	11	40	10M	chr1	31	30	AGAAATATTA	??????????	RG:Z:0
+perfect_fr/2	147	chr1	21	40	10M	chr1	1	30	CGATCGTACA	??????????	RG:Z:0
+pro_oxog_fr/2	147	chr1	21	40	10M	chr1	1	30	CTATCTTACA	??????????	RG:Z:0
+duplicate/2	1171	chr1	21	40	10M	chr1	1	30	CGATCGTACA	??????????	RG:Z:0
+non_primary/2	403	chr1	21	40	10M	chr1	1	30	CGATCGTACA	??????????	RG:Z:0
+low_quality/2	147	chr1	21	0	10M	chr1	1	30	CGATCGTACA	??????????	RG:Z:0
+pro_oxog_rf/2	163	chr1	31	40	10M	chr1	11	30	GATGAAAATA	??????????	RG:Z:0
+nbases_fr/1	99	chr2	1	40	10M	chr2	21	30	CATAGCAACA	??????????	RG:Z:0
+pro_ffpe_fr/1	99	chr2	11	40	10M	chr2	31	30	AGTGTGTTTT	??????????	RG:Z:0
+con_ffpe_rf/1	83	chr2	11	40	10M	chr2	31	30	AGTGTGTTTT	??????????	RG:Z:0
+nbases_fr/2	147	chr2	21	40	10M	chr2	1	30	ACCNNNNGCG	??????????	RG:Z:0
+pro_ffpe_fr/2	147	chr2	31	40	10M	chr2	11	30	TTTTTGATTT	??????????	RG:Z:0
+con_ffpe_rf/2	163	chr2	31	40	10M	chr2	11	30	TTTTTGATTT	??????????	RG:Z:0
+indel_oxog_fr/1	99	chr3	1	40	3M1I3M1D3M	chr3	21	30	CGTAATGTCT	??????????	RG:Z:0
+indel_oxog_fr/2	147	chr3	21	40	3M1D3M1I3M	chr3	1	30	CCCCATGTGC	??????????	RG:Z:0
+unmapped_mate/2	133	*	0	0	*	chr1	1	0	CGATCGTACA	??????????	RG:Z:0
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C1.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C1.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C1.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C1.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C10.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C10.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C10.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C10.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C100.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C100.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C100.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C100.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C101.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C101.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C101.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C101.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C102.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C102.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C102.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C102.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C103.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C103.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C103.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C103.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C104.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C104.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C104.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C104.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C105.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C105.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C105.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C105.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C106.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C106.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C106.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C106.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C107.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C107.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C107.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C107.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C108.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C108.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C108.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C108.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C109.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C109.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C109.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C109.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C11.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C11.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C11.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C11.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C110.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C110.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C110.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C110.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C111.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C111.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C111.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C111.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C112.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C112.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C112.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C112.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C113.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C113.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C113.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C113.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C114.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C114.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C114.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C114.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C115.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C115.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C115.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C115.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C116.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C116.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C116.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C116.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C117.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C117.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C117.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C117.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C118.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C118.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C118.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C118.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C119.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C119.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C119.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C119.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C12.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C12.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C12.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C12.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C120.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C120.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C120.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C120.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C121.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C121.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C121.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C121.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C122.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C122.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C122.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C122.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C123.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C123.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C123.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C123.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C124.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C124.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C124.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C124.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C125.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C125.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C125.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C125.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C126.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C126.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C126.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C126.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C127.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C127.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C127.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C127.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C128.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C128.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C128.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C128.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C129.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C129.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C129.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C129.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C13.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C13.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C13.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C13.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C130.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C130.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C130.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C130.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C131.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C131.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C131.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C131.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C132.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C132.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C132.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C132.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C133.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C133.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C133.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C133.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C134.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C134.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C134.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C134.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C135.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C135.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C135.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C135.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C136.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C136.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C136.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C136.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C137.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C137.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C137.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C137.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C138.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C138.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C138.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C138.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C139.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C139.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C139.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C139.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C14.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C14.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C14.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C14.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C140.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C140.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C140.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C140.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C141.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C141.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C141.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C141.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C142.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C142.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C142.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C142.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C143.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C143.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C143.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C143.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C144.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C144.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C144.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C144.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C145.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C145.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C145.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C145.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C146.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C146.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C146.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C146.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C147.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C147.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C147.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C147.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C148.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C148.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C148.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C148.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C149.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C149.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C149.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C149.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C15.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C15.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C15.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C15.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C150.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C150.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C150.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C150.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C151.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C151.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C151.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C151.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C152.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C152.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C152.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C152.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C153.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C153.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C153.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C153.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C154.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C154.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C154.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C154.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C155.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C155.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C155.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C155.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C156.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C156.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C156.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C156.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C157.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C157.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C157.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C157.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C158.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C158.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C158.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C158.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C159.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C159.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C159.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C159.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C16.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C16.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C16.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C16.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C160.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C160.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C160.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C160.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C161.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C161.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C161.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C161.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C162.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C162.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C162.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C162.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C163.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C163.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C163.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C163.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C164.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C164.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C164.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C164.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C165.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C165.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C165.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C165.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C166.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C166.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C166.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C166.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C167.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C167.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C167.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C167.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C168.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C168.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C168.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C168.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C169.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C169.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C169.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C169.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C17.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C17.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C17.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C17.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C170.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C170.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C170.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C170.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C171.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C171.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C171.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C171.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C172.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C172.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C172.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C172.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C173.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C173.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C173.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C173.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C174.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C174.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C174.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C174.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C175.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C175.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C175.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C175.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C176.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C176.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C176.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C176.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C177.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C177.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C177.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C177.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C178.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C178.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C178.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C178.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C179.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C179.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C179.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C179.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C18.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C18.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C18.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C18.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C180.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C180.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C180.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C180.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C181.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C181.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C181.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C181.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C182.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C182.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C182.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C182.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C183.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C183.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C183.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C183.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C184.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C184.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C184.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C184.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C185.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C185.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C185.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C185.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C186.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C186.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C186.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C186.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C187.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C187.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C187.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C187.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C188.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C188.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C188.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C188.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C189.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C189.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C189.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C189.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C19.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C19.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C19.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C19.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C190.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C190.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C190.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C190.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C191.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C191.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C191.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C191.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C192.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C192.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C192.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C192.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C193.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C193.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C193.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C193.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C194.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C194.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C194.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C194.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C195.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C195.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C195.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C195.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C196.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C196.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C196.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C196.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C197.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C197.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C197.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C197.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C198.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C198.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C198.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C198.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C199.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C199.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C199.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C199.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C2.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C2.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C2.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C2.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C20.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C20.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C20.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C20.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C200.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C200.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C200.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C200.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C201.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C201.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C201.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C201.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C202.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C202.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C202.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C202.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C203.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C203.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C203.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C203.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C204.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C204.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C204.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C204.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C205.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C205.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C205.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C205.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C206.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C206.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C206.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C206.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C207.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C207.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C207.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C207.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C208.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C208.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C208.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C208.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C209.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C209.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C209.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C209.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C21.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C21.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C21.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C21.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C210.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C210.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C210.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C210.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C211.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C211.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C211.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C211.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C212.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C212.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C212.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C212.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C213.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C213.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C213.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C213.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C214.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C214.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C214.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C214.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C215.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C215.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C215.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C215.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C216.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C216.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C216.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C216.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C217.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C217.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C217.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C217.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C218.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C218.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C218.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C218.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C219.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C219.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C219.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C219.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C22.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C22.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C22.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C22.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C220.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C220.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C220.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C220.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C221.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C221.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C221.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C221.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C222.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C222.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C222.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C222.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C223.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C223.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C223.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C223.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C224.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C224.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C224.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C224.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C225.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C225.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C225.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C225.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C226.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C226.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C226.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C226.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C227.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C227.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C227.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C227.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C228.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C228.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C228.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C228.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C229.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C229.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C229.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C229.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C23.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C23.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C23.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C23.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C230.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C230.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C230.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C230.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C231.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C231.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C231.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C231.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C232.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C232.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C232.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C232.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C233.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C233.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C233.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C233.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C234.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C234.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C234.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C234.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C235.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C235.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C235.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C235.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C236.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C236.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C236.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C236.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C237.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C237.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C237.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C237.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C238.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C238.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C238.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C238.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C239.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C239.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C239.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C239.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C24.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C24.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C24.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C24.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C240.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C240.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C240.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C240.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C241.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C241.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C241.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C241.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C242.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C242.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C242.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C242.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C243.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C243.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C243.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C243.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C244.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C244.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C244.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C244.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C245.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C245.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C245.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C245.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C246.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C246.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C246.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C246.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C247.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C247.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C247.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C247.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C248.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C248.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C248.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C248.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C249.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C249.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C249.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C249.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C25.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C25.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C25.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C25.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C250.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C250.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C250.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C250.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C26.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C26.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C26.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C26.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C27.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C27.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C27.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C27.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C28.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C28.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C28.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C28.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C29.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C29.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C29.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C29.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C3.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C3.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C3.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C3.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C30.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C30.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C30.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C30.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C31.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C31.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C31.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C31.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C32.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C32.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C32.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C32.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C33.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C33.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C33.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C33.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C34.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C34.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C34.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C34.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C35.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C35.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C35.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C35.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C36.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C36.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C36.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C36.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C37.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C37.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C37.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C37.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C38.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C38.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C38.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C38.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C39.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C39.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C39.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C39.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C4.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C4.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C4.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C4.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C40.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C40.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C40.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C40.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C41.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C41.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C41.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C41.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C42.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C42.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C42.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C42.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C43.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C43.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C43.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C43.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C44.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C44.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C44.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C44.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C45.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C45.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C45.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C45.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C46.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C46.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C46.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C46.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C47.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C47.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C47.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C47.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C48.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C48.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C48.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C48.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C49.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C49.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C49.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C49.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C5.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C5.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C5.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C5.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C50.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C50.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C50.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C50.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C51.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C51.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C51.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C51.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C52.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C52.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C52.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C52.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C53.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C53.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C53.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C53.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C54.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C54.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C54.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C54.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C55.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C55.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C55.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C55.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C56.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C56.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C56.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C56.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C57.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C57.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C57.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C57.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C58.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C58.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C58.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C58.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C59.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C59.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C59.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C59.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C6.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C6.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C6.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C6.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C60.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C60.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C60.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C60.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C61.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C61.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C61.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C61.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C62.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C62.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C62.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C62.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C63.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C63.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C63.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C63.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C64.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C64.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C64.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C64.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C65.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C65.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C65.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C65.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C66.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C66.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C66.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C66.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C67.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C67.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C67.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C67.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C68.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C68.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C68.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C68.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C69.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C69.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C69.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C69.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C7.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C7.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C7.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C7.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C70.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C70.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C70.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C70.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C71.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C71.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C71.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C71.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C72.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C72.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C72.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C72.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C73.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C73.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C73.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C73.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C74.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C74.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C74.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C74.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C75.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C75.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C75.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C75.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C76.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C76.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C76.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C76.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C77.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C77.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C77.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C77.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C78.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C78.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C78.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C78.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C79.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C79.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C79.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C79.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C8.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C8.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C8.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C8.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C80.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C80.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C80.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C80.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C81.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C81.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C81.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C81.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C82.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C82.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C82.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C82.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C83.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C83.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C83.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C83.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C84.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C84.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C84.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C84.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C85.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C85.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C85.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C85.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C86.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C86.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C86.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C86.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C87.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C87.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C87.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C87.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C88.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C88.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C88.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C88.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C89.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C89.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C89.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C89.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C9.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C9.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C9.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C9.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C90.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C90.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C90.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C90.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C91.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C91.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C91.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C91.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C92.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C92.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C92.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C92.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C93.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C93.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C93.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C93.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C94.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C94.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C94.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C94.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C95.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C95.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C95.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C95.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C96.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C96.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C96.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C96.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C97.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C97.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C97.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C97.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C98.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C98.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C98.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C98.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C99.1/s_1_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C99.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C99.1/s_1_1101.bcl
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C99.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/s_1_1101.filter b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/s_1_1101.filter
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/s_1_1101.filter
copy to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/s_1_1101.filter
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C1.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C1.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C1.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C1.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C10.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C10.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C10.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C10.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C100.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C100.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C100.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C100.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C101.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C101.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C101.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C101.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C102.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C102.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C102.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C102.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C103.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C103.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C103.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C103.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C104.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C104.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C104.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C104.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C105.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C105.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C105.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C105.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C106.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C106.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C106.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C106.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C107.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C107.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C107.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C107.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C108.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C108.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C108.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C108.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C109.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C109.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C109.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C109.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C11.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C11.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C11.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C11.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C110.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C110.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C110.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C110.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C111.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C111.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C111.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C111.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C112.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C112.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C112.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C112.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C113.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C113.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C113.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C113.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C114.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C114.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C114.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C114.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C115.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C115.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C115.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C115.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C116.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C116.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C116.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C116.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C117.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C117.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C117.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C117.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C118.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C118.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C118.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C118.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C119.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C119.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C119.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C119.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C12.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C12.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C12.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C12.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C120.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C120.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C120.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C120.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C121.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C121.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C121.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C121.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C122.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C122.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C122.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C122.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C123.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C123.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C123.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C123.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C124.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C124.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C124.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C124.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C125.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C125.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C125.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C125.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C126.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C126.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C126.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C126.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C127.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C127.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C127.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C127.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C128.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C128.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C128.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C128.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C129.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C129.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C129.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C129.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C13.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C13.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C13.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C13.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C130.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C130.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C130.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C130.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C131.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C131.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C131.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C131.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C132.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C132.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C132.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C132.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C133.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C133.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C133.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C133.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C134.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C134.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C134.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C134.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C135.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C135.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C135.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C135.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C136.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C136.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C136.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C136.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C137.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C137.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C137.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C137.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C138.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C138.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C138.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C138.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C139.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C139.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C139.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C139.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C14.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C14.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C14.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C14.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C140.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C140.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C140.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C140.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C141.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C141.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C141.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C141.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C142.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C142.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C142.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C142.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C143.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C143.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C143.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C143.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C144.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C144.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C144.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C144.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C145.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C145.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C145.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C145.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C146.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C146.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C146.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C146.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C147.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C147.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C147.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C147.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C148.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C148.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C148.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C148.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C149.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C149.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C149.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C149.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C15.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C15.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C15.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C15.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C150.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C150.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C150.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C150.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C151.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C151.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C151.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C151.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C152.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C152.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C152.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C152.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C153.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C153.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C153.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C153.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C154.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C154.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C154.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C154.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C155.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C155.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C155.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C155.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C156.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C156.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C156.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C156.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C157.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C157.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C157.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C157.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C158.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C158.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C158.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C158.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C159.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C159.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C159.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C159.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C16.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C16.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C16.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C16.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C160.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C160.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C160.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C160.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C161.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C161.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C161.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C161.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C162.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C162.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C162.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C162.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C163.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C163.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C163.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C163.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C164.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C164.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C164.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C164.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C165.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C165.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C165.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C165.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C166.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C166.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C166.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C166.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C167.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C167.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C167.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C167.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C168.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C168.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C168.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C168.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C169.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C169.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C169.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C169.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C17.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C17.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C17.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C17.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C170.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C170.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C170.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C170.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C171.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C171.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C171.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C171.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C172.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C172.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C172.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C172.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C173.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C173.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C173.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C173.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C174.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C174.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C174.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C174.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C175.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C175.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C175.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C175.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C176.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C176.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C176.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C176.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C177.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C177.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C177.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C177.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C178.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C178.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C178.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C178.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C179.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C179.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C179.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C179.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C18.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C18.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C18.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C18.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C180.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C180.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C180.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C180.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C181.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C181.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C181.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C181.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C182.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C182.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C182.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C182.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C183.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C183.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C183.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C183.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C184.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C184.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C184.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C184.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C185.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C185.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C185.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C185.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C186.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C186.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C186.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C186.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C187.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C187.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C187.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C187.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C188.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C188.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C188.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C188.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C189.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C189.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C189.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C189.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C19.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C19.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C19.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C19.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C190.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C190.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C190.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C190.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C191.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C191.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C191.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C191.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C192.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C192.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C192.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C192.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C193.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C193.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C193.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C193.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C194.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C194.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C194.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C194.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C195.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C195.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C195.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C195.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C196.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C196.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C196.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C196.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C197.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C197.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C197.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C197.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C198.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C198.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C198.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C198.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C199.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C199.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C199.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C199.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C2.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C2.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C2.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C2.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C20.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C20.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C20.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C20.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C200.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C200.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C200.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C200.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C201.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C201.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C201.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C201.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C202.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C202.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C202.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C202.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C203.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C203.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C203.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C203.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C204.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C204.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C204.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C204.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C205.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C205.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C205.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C205.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C206.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C206.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C206.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C206.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C207.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C207.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C207.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C207.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C208.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C208.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C208.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C208.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C209.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C209.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C209.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C209.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C21.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C21.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C21.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C21.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C210.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C210.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C210.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C210.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C211.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C211.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C211.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C211.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C212.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C212.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C212.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C212.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C213.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C213.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C213.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C213.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C214.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C214.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C214.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C214.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C215.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C215.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C215.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C215.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C216.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C216.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C216.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C216.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C217.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C217.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C217.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C217.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C218.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C218.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C218.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C218.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C219.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C219.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C219.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C219.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C22.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C22.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C22.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C22.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C220.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C220.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C220.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C220.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C221.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C221.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C221.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C221.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C222.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C222.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C222.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C222.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C223.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C223.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C223.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C223.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C224.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C224.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C224.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C224.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C225.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C225.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C225.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C225.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C226.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C226.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C226.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C226.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C227.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C227.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C227.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C227.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C228.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C228.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C228.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C228.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C229.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C229.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C229.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C229.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C23.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C23.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C23.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C23.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C230.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C230.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C230.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C230.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C231.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C231.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C231.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C231.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C232.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C232.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C232.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C232.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C233.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C233.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C233.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C233.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C234.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C234.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C234.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C234.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C235.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C235.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C235.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C235.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C236.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C236.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C236.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C236.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C237.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C237.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C237.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C237.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C238.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C238.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C238.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C238.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C239.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C239.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C239.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C239.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C24.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C24.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C24.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C24.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C240.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C240.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C240.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C240.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C241.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C241.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C241.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C241.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C242.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C242.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C242.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C242.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C243.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C243.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C243.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C243.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C244.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C244.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C244.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C244.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C245.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C245.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C245.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C245.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C246.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C246.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C246.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C246.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C247.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C247.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C247.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C247.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C248.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C248.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C248.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C248.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C249.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C249.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C249.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C249.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C25.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C25.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C25.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C25.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C250.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C250.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C250.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C250.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C26.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C26.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C26.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C26.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C27.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C27.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C27.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C27.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C28.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C28.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C28.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C28.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C29.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C29.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C29.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C29.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C3.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C3.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C3.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C3.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C30.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C30.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C30.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C30.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C31.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C31.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C31.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C31.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C32.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C32.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C32.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C32.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C33.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C33.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C33.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C33.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C34.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C34.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C34.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C34.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C35.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C35.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C35.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C35.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C36.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C36.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C36.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C36.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C37.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C37.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C37.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C37.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C38.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C38.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C38.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C38.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C39.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C39.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C39.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C39.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C4.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C4.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C4.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C4.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C40.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C40.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C40.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C40.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C41.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C41.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C41.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C41.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C42.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C42.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C42.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C42.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C43.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C43.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C43.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C43.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C44.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C44.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C44.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C44.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C45.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C45.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C45.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C45.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C46.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C46.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C46.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C46.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C47.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C47.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C47.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C47.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C48.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C48.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C48.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C48.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C49.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C49.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C49.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C49.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C5.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C5.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C5.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C5.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C50.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C50.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C50.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C50.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C51.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C51.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C51.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C51.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C52.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C52.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C52.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C52.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C53.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C53.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C53.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C53.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C54.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C54.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C54.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C54.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C55.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C55.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C55.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C55.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C56.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C56.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C56.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C56.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C57.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C57.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C57.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C57.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C58.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C58.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C58.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C58.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C59.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C59.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C59.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C59.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C6.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C6.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C6.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C6.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C60.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C60.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C60.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C60.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C61.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C61.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C61.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C61.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C62.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C62.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C62.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C62.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C63.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C63.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C63.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C63.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C64.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C64.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C64.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C64.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C65.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C65.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C65.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C65.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C66.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C66.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C66.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C66.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C67.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C67.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C67.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C67.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C68.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C68.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C68.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C68.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C69.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C69.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C69.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C69.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C7.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C7.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C7.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C7.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C70.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C70.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C70.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C70.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C71.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C71.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C71.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C71.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C72.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C72.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C72.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C72.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C73.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C73.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C73.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C73.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C74.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C74.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C74.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C74.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C75.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C75.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C75.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C75.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C76.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C76.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C76.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C76.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C77.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C77.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C77.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C77.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C78.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C78.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C78.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C78.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C79.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C79.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C79.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C79.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C8.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C8.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C8.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C8.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C80.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C80.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C80.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C80.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C81.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C81.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C81.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C81.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C82.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C82.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C82.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C82.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C83.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C83.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C83.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C83.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C84.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C84.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C84.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C84.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C85.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C85.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C85.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C85.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C86.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C86.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C86.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C86.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C87.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C87.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C87.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C87.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C88.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C88.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C88.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C88.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C89.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C89.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C89.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C89.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C9.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C9.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C9.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C9.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C90.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C90.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C90.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C90.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C91.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C91.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C91.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C91.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C92.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C92.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C92.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C92.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C93.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C93.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C93.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C93.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C94.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C94.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C94.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C94.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C95.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C95.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C95.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C95.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C96.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C96.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C96.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C96.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C97.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C97.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C97.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C97.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C98.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C98.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C98.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C98.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C99.1/s_2_1101.bcl b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C99.1/s_2_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C99.1/s_2_1101.bcl
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/C99.1/s_2_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/s_2_1101.filter b/testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/s_2_1101.filter
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/s_2_1101.filter
rename to testdata/picard/illumina/125T125T/Data/Intensities/BaseCalls/L002/s_2_1101.filter
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/L001/s_1_1101.clocs b/testdata/picard/illumina/125T125T/Data/Intensities/L001/s_1_1101.clocs
similarity index 100%
copy from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/L001/s_1_1101.clocs
copy to testdata/picard/illumina/125T125T/Data/Intensities/L001/s_1_1101.clocs
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/L002/s_2_1101.clocs b/testdata/picard/illumina/125T125T/Data/Intensities/L002/s_2_1101.clocs
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/L002/s_2_1101.clocs
rename to testdata/picard/illumina/125T125T/Data/Intensities/L002/s_2_1101.clocs
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C1.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C1.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C1.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C1.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C1.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C1.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C1.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C1.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C1.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C1.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C1.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C1.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C10.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C10.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C10.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C10.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C10.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C10.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C10.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C10.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C10.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C10.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C10.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C10.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C11.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C11.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C11.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C11.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C11.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C11.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C11.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C11.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C11.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C11.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C11.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C11.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C12.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C12.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C12.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C12.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C12.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C12.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C12.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C12.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C12.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C12.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C12.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C12.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C13.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C13.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C13.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C13.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C13.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C13.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C13.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C13.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C13.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C13.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C13.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C13.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C14.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C14.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C14.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C14.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C14.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C14.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C14.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C14.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C14.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C14.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C14.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C14.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C15.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C15.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C15.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C15.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C15.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C15.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C15.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C15.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C15.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C15.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C15.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C15.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C16.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C16.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C16.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C16.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C16.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C16.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C16.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C16.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C16.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C16.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C16.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C16.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C17.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C17.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C17.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C17.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C17.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C17.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C17.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C17.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C17.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C17.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C17.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C17.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C18.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C18.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C18.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C18.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C18.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C18.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C18.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C18.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C18.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C18.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C18.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C18.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C19.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C19.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C19.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C19.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C19.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C19.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C19.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C19.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C19.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C19.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C19.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C19.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C2.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C2.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C2.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C2.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C2.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C2.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C2.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C2.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C2.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C2.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C2.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C2.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C20.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C20.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C20.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C20.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C20.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C20.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C20.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C20.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C20.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C20.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C20.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C20.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C21.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C21.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C21.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C21.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C21.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C21.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C21.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C21.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C21.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C21.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C21.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C21.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C22.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C22.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C22.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C22.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C22.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C22.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C22.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C22.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C22.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C22.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C22.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C22.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C23.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C23.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C23.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C23.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C23.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C23.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C23.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C23.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C23.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C23.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C23.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C23.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C24.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C24.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C24.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C24.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C24.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C24.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C24.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C24.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C24.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C24.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C24.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C24.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C25.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C25.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C25.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C25.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C25.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C25.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C25.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C25.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C25.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C25.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C25.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C25.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C26.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C26.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C26.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C26.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C26.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C26.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C26.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C26.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C26.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C26.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C26.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C26.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C27.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C27.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C27.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C27.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C27.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C27.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C27.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C27.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C27.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C27.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C27.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C27.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C28.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C28.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C28.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C28.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C28.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C28.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C28.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C28.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C28.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C28.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C28.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C28.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C29.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C29.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C29.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C29.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C29.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C29.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C29.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C29.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C29.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C29.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C29.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C29.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C3.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C3.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C3.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C3.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C3.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C3.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C3.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C3.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C3.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C3.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C3.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C3.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C30.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C30.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C30.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C30.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C30.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C30.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C30.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C30.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C30.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C30.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C30.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C30.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C31.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C31.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C31.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C31.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C31.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C31.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C31.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C31.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C31.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C31.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C31.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C31.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C32.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C32.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C32.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C32.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C32.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C32.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C32.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C32.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C32.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C32.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C32.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C32.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C33.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C33.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C33.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C33.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C33.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C33.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C33.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C33.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C33.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C33.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C33.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C33.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C34.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C34.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C34.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C34.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C34.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C34.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C34.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C34.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C34.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C34.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C34.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C34.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C35.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C35.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C35.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C35.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C35.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C35.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C35.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C35.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C35.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C35.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C35.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C35.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C36.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C36.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C36.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C36.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C36.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C36.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C36.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C36.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C36.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C36.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C36.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C36.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C37.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C37.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C37.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C37.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C37.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C37.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C37.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C37.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C37.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C37.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C37.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C37.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C38.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C38.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C38.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C38.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C38.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C38.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C38.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C38.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C38.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C38.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C38.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C38.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C39.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C39.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C39.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C39.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C39.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C39.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C39.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C39.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C39.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C39.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C39.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C39.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C4.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C4.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C4.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C4.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C4.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C4.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C4.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C4.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C4.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C4.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C4.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C4.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C40.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C40.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C40.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C40.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C40.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C40.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C40.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C40.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C40.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C40.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C40.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C40.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C41.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C41.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C41.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C41.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C41.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C41.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C41.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C41.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C41.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C41.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C41.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C41.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C42.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C42.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C42.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C42.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C42.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C42.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C42.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C42.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C42.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C42.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C42.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C42.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C43.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C43.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C43.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C43.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C43.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C43.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C43.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C43.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C43.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C43.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C43.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C43.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C44.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C44.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C44.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C44.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C44.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C44.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C44.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C44.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C44.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C44.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C44.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C44.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C45.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C45.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C45.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C45.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C45.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C45.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C45.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C45.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C45.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C45.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C45.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C45.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C46.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C46.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C46.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C46.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C46.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C46.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C46.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C46.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C46.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C46.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C46.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C46.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C47.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C47.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C47.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C47.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C47.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C47.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C47.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C47.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C47.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C47.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C47.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C47.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C48.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C48.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C48.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C48.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C48.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C48.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C48.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C48.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C48.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C48.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C48.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C48.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C49.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C49.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C49.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C49.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C49.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C49.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C49.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C49.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C49.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C49.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C49.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C49.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C5.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C5.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C5.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C5.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C5.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C5.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C5.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C5.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C5.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C5.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C5.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C5.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C50.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C50.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C50.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C50.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C50.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C50.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C50.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C50.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C50.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C50.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C50.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C50.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C51.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C51.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C51.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C51.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C51.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C51.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C51.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C51.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C51.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C51.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C51.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C51.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C52.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C52.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C52.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C52.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C52.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C52.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C52.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C52.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C52.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C52.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C52.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C52.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C53.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C53.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C53.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C53.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C53.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C53.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C53.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C53.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C53.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C53.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C53.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C53.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C54.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C54.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C54.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C54.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C54.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C54.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C54.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C54.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C54.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C54.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C54.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C54.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C55.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C55.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C55.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C55.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C55.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C55.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C55.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C55.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C55.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C55.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C55.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C55.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C56.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C56.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C56.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C56.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C56.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C56.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C56.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C56.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C56.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C56.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C56.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C56.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C57.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C57.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C57.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C57.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C57.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C57.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C57.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C57.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C57.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C57.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C57.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C57.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C58.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C58.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C58.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C58.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C58.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C58.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C58.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C58.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C58.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C58.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C58.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C58.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C6.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C6.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C6.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C6.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C6.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C6.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C6.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C6.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C6.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C6.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C6.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C6.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C7.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C7.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C7.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C7.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C7.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C7.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C7.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C7.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C7.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C7.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C7.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C7.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C8.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C8.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C8.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C8.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C8.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C8.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C8.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C8.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C8.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C8.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C8.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C8.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C9.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C9.1/s_1_1101.bcl
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C9.1/s_1_1101.bcl
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C9.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C9.1/s_1_1201.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C9.1/s_1_1201.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C9.1/s_1_1201.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C9.1/s_1_1201.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C9.1/s_1_2101.bcl b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C9.1/s_1_2101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C9.1/s_1_2101.bcl
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C9.1/s_1_2101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/s_1_1101.filter b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/s_1_1101.filter
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/s_1_1101.filter
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/s_1_1101.filter
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/s_1_1201.filter b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/s_1_1201.filter
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/s_1_1201.filter
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/s_1_1201.filter
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/s_1_2101.filter b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/s_1_2101.filter
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/s_1_2101.filter
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/s_1_2101.filter
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/s_1_1101_barcode.txt.gz b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/s_1_1101_barcode.txt.gz
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/s_1_1101_barcode.txt.gz
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/s_1_1101_barcode.txt.gz
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/s_1_1201_barcode.txt.gz b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/s_1_1201_barcode.txt.gz
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/s_1_1201_barcode.txt.gz
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/s_1_1201_barcode.txt.gz
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/s_1_2101_barcode.txt.gz b/testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/s_1_2101_barcode.txt.gz
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/s_1_2101_barcode.txt.gz
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/s_1_2101_barcode.txt.gz
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/L001/s_1_1101.clocs b/testdata/picard/illumina/25T8B25T/Data/Intensities/L001/s_1_1101.clocs
similarity index 100%
copy from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/L001/s_1_1101.clocs
copy to testdata/picard/illumina/25T8B25T/Data/Intensities/L001/s_1_1101.clocs
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/L001/s_1_1201.clocs b/testdata/picard/illumina/25T8B25T/Data/Intensities/L001/s_1_1201.clocs
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/L001/s_1_1201.clocs
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/L001/s_1_1201.clocs
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/L001/s_1_2101.clocs b/testdata/picard/illumina/25T8B25T/Data/Intensities/L001/s_1_2101.clocs
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/L001/s_1_2101.clocs
rename to testdata/picard/illumina/25T8B25T/Data/Intensities/L001/s_1_2101.clocs
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/AAAAAAAA.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/AAAAAAAA.1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/AAAAAAAA.1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/AAAAAAAA.1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/AAAAAAAA.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/AAAAAAAA.2.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/AAAAAAAA.2.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/AAAAAAAA.2.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/AAAAAAAA.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/AAAAAAAA.barcode_1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/AAAAAAAA.barcode_1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/AAAAAAAA.barcode_1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/AAAAGAAG.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/AAAAGAAG.1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/AAAAGAAG.1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/AAAAGAAG.1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/AAAAGAAG.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/AAAAGAAG.2.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/AAAAGAAG.2.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/AAAAGAAG.2.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/AAAAGAAG.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/AAAAGAAG.barcode_1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/AAAAGAAG.barcode_1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/AAAAGAAG.barcode_1.fastq
diff --git a/testdata/picard/illumina/25T8B25T/fastq/AACAATGG.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/AACAATGG.1.fastq
new file mode 100644
index 0000000..a7b70ea
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/AACAATGG.1.fastq
@@ -0,0 +1,16 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1138:2141 1:N:0:AACAATGG
+NTTACCAAGGTTTTCTGTTTAGTGA
++
+#1=DDFFFHHFHHJJJIHJIJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1101:1206:2126 1:N:0:AACAATGG
+NATTCTGCCATATTGGTCCGACAGT
++
+#1=DDFFFHHHHHJJJJJJJJJIJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1077:2139 1:N:0:AACAATGG
+CACAGGCTTCCACGGACTTAACGTC
++
+CCCFFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1112:2245 1:N:0:AACAATGG
+TGCCATCTGCTCTGGGAAGCACCAG
++
+1:=DDDDDFBC:DEFIFFFIEF at BE
diff --git a/testdata/picard/illumina/25T8B25T/fastq/AACAATGG.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/AACAATGG.2.fastq
new file mode 100644
index 0000000..afac0c6
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/AACAATGG.2.fastq
@@ -0,0 +1,16 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1138:2141 2:N:0:AACAATGG
+TCCGATCTGCTTCAGGTCGATCAGA
++
+CCCFFFFFHGHHHJJIGHIJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1101:1206:2126 2:N:0:AACAATGG
+ATCTGTCCAGTGGTGCACTGAATGT
++
+CCCFFFFFHHHHHHIIJJJJIJJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1077:2139 2:N:0:AACAATGG
+NATTAGTTGGCGGATGAAGCAGATA
++
+#4=DFFFFHHHHHJJJJJJJJJIJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1112:2245 2:N:0:AACAATGG
+TCGTAGTGTTGTAATTTCGTCTTCT
++
+?8?DBDDDCCFCAACGGFFCBFFAE
diff --git a/testdata/picard/illumina/25T8B25T/fastq/AACAATGG.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/AACAATGG.barcode_1.fastq
new file mode 100644
index 0000000..82cdde4
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/AACAATGG.barcode_1.fastq
@@ -0,0 +1,16 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1138:2141 :N:0:AACAATGG
+AACAATGG
++
+CCCFFFFF
+ at machine1:HiMom:abcdeACXX:1:1101:1206:2126 :N:0:AACAATGG
+AACAATGG
++
+CCCFFFFF
+ at machine1:HiMom:abcdeACXX:1:2101:1077:2139 :N:0:AACAATGG
+AACAATGG
++
+CCCFFFFF
+ at machine1:HiMom:abcdeACXX:1:2101:1112:2245 :N:0:AACAATGG
+AACAATGG
++
+@@?BBDDD
diff --git a/testdata/picard/illumina/25T8B25T/fastq/AACGCATT.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/AACGCATT.1.fastq
new file mode 100644
index 0000000..1c1c29f
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/AACGCATT.1.fastq
@@ -0,0 +1,28 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1197:2200 1:N:0:AACGCATT
+GGGCGCCCCGTGAGGACCCAGTCCT
++
+ at C@FFADDFFCFCEHIIJIJJIEFC
+ at machine1:HiMom:abcdeACXX:1:1101:1308:2153 1:Y:0:AACGCATT
+TTTTGGAAGAGACCTCAATTACTGT
++
+???DDDDD?:22AE:A2<3,AF?3A
+ at machine1:HiMom:abcdeACXX:1:1101:1452:2132 1:N:0:AACGCATT
+NCGTCCTGGAAAACGGGGCGCGGCT
++
+#1=BDBDDFHHHHF at FHDHIGIIII
+ at machine1:HiMom:abcdeACXX:1:1201:1150:2161 1:N:0:AACGCATT
+AAGTCACCTAATATCTTTTTTTTTT
++
+@@<??;?D?CFD,A4CDDHFBIIID
+ at machine1:HiMom:abcdeACXX:1:2101:1240:2197 1:Y:0:AACGCATT
+ATAAAACATAGCAATATTTTCCTAT
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:2101:1336:2109 1:N:0:AACGCATT
+NACTATCAGGATCGTGGCTATTTTG
++
+#1BDDFFFHHHHHJIJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1427:2081 1:N:0:AACGCATT
+NCGAGTGCCTAGTGGGCCACTTTTG
++
+#4=DDBDFHHHHFHIJJJJIJJJJI
diff --git a/testdata/picard/illumina/25T8B25T/fastq/AACGCATT.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/AACGCATT.2.fastq
new file mode 100644
index 0000000..6e43a81
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/AACGCATT.2.fastq
@@ -0,0 +1,28 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1197:2200 2:N:0:AACGCATT
+ATATTCCACTGGAACCACAGAACCC
++
+@@@FFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1101:1308:2153 2:Y:0:AACGCATT
+TCTGTAAGGTAATCCCCGCATGTGT
++
+1?1=4===AFFDFFGFDGFB at CFB:
+ at machine1:HiMom:abcdeACXX:1:1101:1452:2132 2:N:0:AACGCATT
+ACAAACCCTTGTGTCGAGGGCTGAC
++
+CCCFFFFFHHHHHJJJJJJJIJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1150:2161 2:N:0:AACGCATT
+TTCTCACTACTGTGATTGTGCCACT
++
+ at C@FFFFFGHHHHGIIIICEHCFGH
+ at machine1:HiMom:abcdeACXX:1:2101:1240:2197 2:Y:0:AACGCATT
+ACTGGAGATCCTTGTTACATGCCCA
++
+??+++A:DD?:ADEE@::C4:C<E:
+ at machine1:HiMom:abcdeACXX:1:2101:1336:2109 2:N:0:AACGCATT
+AGACCAGAACAGCTCCAGGTGCTCC
++
+CCCFFFFFHHHHHJJJJJJCGHIJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1427:2081 2:N:0:AACGCATT
+CCGACTTCCATGGCCACCGTCCTGC
++
+CCCFFFFFHHHHHJJJIIGFIIJJI
diff --git a/testdata/picard/illumina/25T8B25T/fastq/AACGCATT.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/AACGCATT.barcode_1.fastq
new file mode 100644
index 0000000..8fa98a2
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/AACGCATT.barcode_1.fastq
@@ -0,0 +1,28 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1197:2200 :N:0:AACGCATT
+AACGCATT
++
+ at CCFDFFF
+ at machine1:HiMom:abcdeACXX:1:1101:1308:2153 :Y:0:AACGCATT
+AACGCATT
++
+:?@B?@DD
+ at machine1:HiMom:abcdeACXX:1:1101:1452:2132 :N:0:AACGCATT
+AACGCATT
++
+ at CCFFFFF
+ at machine1:HiMom:abcdeACXX:1:1201:1150:2161 :N:0:AACGCATT
+AACGCATT
++
+@@@FDDDD
+ at machine1:HiMom:abcdeACXX:1:2101:1240:2197 :Y:0:AACGCATT
+AACGCATT
++
+88+AD@?8
+ at machine1:HiMom:abcdeACXX:1:2101:1336:2109 :N:0:AACGCATT
+AACGCATT
++
+CCCFFFFF
+ at machine1:HiMom:abcdeACXX:1:2101:1427:2081 :N:0:AACGCATT
+AACGCATT
++
+CCCFFFFF
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACAAAATT.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/ACAAAATT.1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/ACAAAATT.1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/ACAAAATT.1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACAAAATT.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/ACAAAATT.2.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/ACAAAATT.2.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/ACAAAATT.2.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACAAAATT.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/ACAAAATT.barcode_1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/ACAAAATT.barcode_1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/ACAAAATT.barcode_1.fastq
diff --git a/testdata/picard/illumina/25T8B25T/fastq/ACAGGTAT.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/ACAGGTAT.1.fastq
new file mode 100644
index 0000000..5fc0cdd
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/ACAGGTAT.1.fastq
@@ -0,0 +1,16 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1236:2121 1:N:0:ACAGGTAT
+NGGTGCTTCATATCCCTCTAGAGGA
++
+#1=BDDFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1341:2116 1:N:0:ACAGGTAT
+NAGAAGCCCCAGGAGGAAGACAGTC
++
+#1=DDFFFHHHHHHHJIIJJJJJGI
+ at machine1:HiMom:abcdeACXX:1:2101:1063:2206 1:N:0:ACAGGTAT
+TCCTATTCGCCTACACAATTCTCCG
++
+CCCFFFFFHHHHHJJJJJJJHJJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1325:2083 1:N:0:ACAGGTAT
+NCAGAAGAAAGGGCCTTGTCGGAGG
++
+#1=DDDDDHHFHDGI at EEHG:?FA8
diff --git a/testdata/picard/illumina/25T8B25T/fastq/ACAGGTAT.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/ACAGGTAT.2.fastq
new file mode 100644
index 0000000..a01d307
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/ACAGGTAT.2.fastq
@@ -0,0 +1,16 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1236:2121 2:N:0:ACAGGTAT
+TTGCGCTTACTTTGTAGCCTTCATC
++
+CCCFFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1341:2116 2:N:0:ACAGGTAT
+ATAACAGCGAGACTGGCAACTTAAA
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:2101:1063:2206 2:N:0:ACAGGTAT
+NTGCTAGGATGAGGATGGATAGTAA
++
+#1=DDDFFHHHHHJHIIJHIIIHHJ
+ at machine1:HiMom:abcdeACXX:1:2101:1325:2083 2:N:0:ACAGGTAT
+TGTGCTCTTCCGATCTGGAGAAAAA
++
+#########################
diff --git a/testdata/picard/illumina/25T8B25T/fastq/ACAGGTAT.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/ACAGGTAT.barcode_1.fastq
new file mode 100644
index 0000000..22e52fa
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/ACAGGTAT.barcode_1.fastq
@@ -0,0 +1,16 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1236:2121 :N:0:ACAGGTAT
+ACAGGTAT
++
+CCCFFDDF
+ at machine1:HiMom:abcdeACXX:1:1201:1341:2116 :N:0:ACAGGTAT
+ACAGGTAT
++
+CCCFFBDD
+ at machine1:HiMom:abcdeACXX:1:2101:1063:2206 :N:0:ACAGGTAT
+ACAGGTAT
++
+CCCFFDFF
+ at machine1:HiMom:abcdeACXX:1:2101:1325:2083 :N:0:ACAGGTAT
+ACAGGTAT
++
+@@@BD=DD
diff --git a/testdata/picard/illumina/25T8B25T/fastq/ACAGTTGA.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/ACAGTTGA.1.fastq
new file mode 100644
index 0000000..29bc1af
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/ACAGTTGA.1.fastq
@@ -0,0 +1,8 @@
+ at machine1:HiMom:abcdeACXX:1:2101:1048:2238 1:N:0:ACAGTTGA
+NCTGCCGTGTCCTGACTTCTGGAAT
++
+#1:B?ADDACF<DCG;EG<FHH at CE
+ at machine1:HiMom:abcdeACXX:1:2101:1216:2193 1:N:0:ACAGTTGA
+TTTTCTTGGCCTCTGTTTTTTTTTT
++
+BCCFDFFFHHFFHJIGIJJJJJJJJ
diff --git a/testdata/picard/illumina/25T8B25T/fastq/ACAGTTGA.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/ACAGTTGA.2.fastq
new file mode 100644
index 0000000..572f8c2
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/ACAGTTGA.2.fastq
@@ -0,0 +1,8 @@
+ at machine1:HiMom:abcdeACXX:1:2101:1048:2238 2:N:0:ACAGTTGA
+NGTCACATCGTTGAAGCACTGGATC
++
+#11ADDDB<CFFHCHGDBHGIIIII
+ at machine1:HiMom:abcdeACXX:1:2101:1216:2193 2:N:0:ACAGTTGA
+AGGCATGACACTGCATTTTAAATAC
++
+@@@DDDDDHFFHHGGDFHFHIIHGG
diff --git a/testdata/picard/illumina/25T8B25T/fastq/ACAGTTGA.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/ACAGTTGA.barcode_1.fastq
new file mode 100644
index 0000000..5c55767
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/ACAGTTGA.barcode_1.fastq
@@ -0,0 +1,8 @@
+ at machine1:HiMom:abcdeACXX:1:2101:1048:2238 :N:0:ACAGTTGA
+ACAGTTGA
++
+?@7DDDDA
+ at machine1:HiMom:abcdeACXX:1:2101:1216:2193 :N:0:ACAGTTGA
+ACAGTTGA
++
+CCCFFFFF
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACCAGTTG.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/ACCAGTTG.1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/ACCAGTTG.1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/ACCAGTTG.1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACCAGTTG.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/ACCAGTTG.2.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/ACCAGTTG.2.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/ACCAGTTG.2.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACCAGTTG.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/ACCAGTTG.barcode_1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/ACCAGTTG.barcode_1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/ACCAGTTG.barcode_1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACGAAATC.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/ACGAAATC.1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/ACGAAATC.1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/ACGAAATC.1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACGAAATC.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/ACGAAATC.2.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/ACGAAATC.2.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/ACGAAATC.2.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACGAAATC.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/ACGAAATC.barcode_1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/ACGAAATC.barcode_1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/ACGAAATC.barcode_1.fastq
diff --git a/testdata/picard/illumina/25T8B25T/fastq/ACTAAGAC.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/ACTAAGAC.1.fastq
new file mode 100644
index 0000000..0789790
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/ACTAAGAC.1.fastq
@@ -0,0 +1,16 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1259:2152 1:N:0:ACTAAGAC
+CACCTATAATCCCAGCTACTCCAGA
++
+CCCFFFFFHHHHHJJJJJJIJJJIJ
+ at machine1:HiMom:abcdeACXX:1:1101:1261:2127 1:Y:0:ACTAAGAC
+NTGAAATCTGGATAGGCTGGAGTTA
++
+#0-@@@###################
+ at machine1:HiMom:abcdeACXX:1:2101:1021:2209 1:N:0:ACTAAGAC
+NGGCCCCACCCTCCTCCAGCACGTC
++
+#1=DDFFFHHHHHJJJJJJHIIHFH
+ at machine1:HiMom:abcdeACXX:1:2101:1262:2128 1:Y:0:ACTAAGAC
+AGCAGAAGGGCAAAAGCTGGCTTGA
++
+9;<@:@###################
diff --git a/testdata/picard/illumina/25T8B25T/fastq/ACTAAGAC.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/ACTAAGAC.2.fastq
new file mode 100644
index 0000000..2a6ad1b
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/ACTAAGAC.2.fastq
@@ -0,0 +1,16 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1259:2152 2:N:0:ACTAAGAC
+ATTTTTATATTTTTTTAGACATAGG
++
+CCCFFFFFGHHHHJJJJIGIIJJJJ
+ at machine1:HiMom:abcdeACXX:1:1101:1261:2127 2:Y:0:ACTAAGAC
+TTTTTTTTTTTTTTTTTTTTTTTTT
++
+CCCFFFFFHGHHHJJIFDDDDDDDD
+ at machine1:HiMom:abcdeACXX:1:2101:1021:2209 2:N:0:ACTAAGAC
+NNGGAAGGCTGCTAGCTGGCCAGAG
++
+##08@>??@@??@?????????>?@
+ at machine1:HiMom:abcdeACXX:1:2101:1262:2128 2:Y:0:ACTAAGAC
+TCTTGTGGTAACTTTTCTGACACCT
++
+-(---9@;@?:8>?4:>?@######
diff --git a/testdata/picard/illumina/25T8B25T/fastq/ACTAAGAC.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/ACTAAGAC.barcode_1.fastq
new file mode 100644
index 0000000..e674b5f
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/ACTAAGAC.barcode_1.fastq
@@ -0,0 +1,16 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1259:2152 :N:0:ACTAAGAC
+ACTAAGAC
++
+CCCFFFFF
+ at machine1:HiMom:abcdeACXX:1:1101:1261:2127 :Y:0:ACTAAGAC
+ACTAAGAC
++
+>7+ at A7A7
+ at machine1:HiMom:abcdeACXX:1:2101:1021:2209 :N:0:ACTAAGAC
+ACTAAGAC
++
+ at CCDFFFF
+ at machine1:HiMom:abcdeACXX:1:2101:1262:2128 :Y:0:ACTAAGAC
+ACTAAGAC
++
+1+8?ADD8
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACTGTACC.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/ACTGTACC.1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/ACTGTACC.1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/ACTGTACC.1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACTGTACC.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/ACTGTACC.2.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/ACTGTACC.2.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/ACTGTACC.2.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/ACTGTACC.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/ACTGTACC.barcode_1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/ACTGTACC.barcode_1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/ACTGTACC.barcode_1.fastq
diff --git a/testdata/picard/illumina/25T8B25T/fastq/ACTGTATC.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/ACTGTATC.1.fastq
new file mode 100644
index 0000000..b474248
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/ACTGTATC.1.fastq
@@ -0,0 +1,16 @@
+ at machine1:HiMom:abcdeACXX:1:1201:1458:2109 1:N:0:ACTGTATC
+NGAGACCATAGAGCGGATGCTTTCA
++
+#1=DDDFFHHGHGIJJIGIIJJJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1105:2131 1:N:0:ACTGTATC
+TTGGAACACAGCGGGAATCACAGCA
++
+CCCFFFFFHHHHHJIJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1349:2084 1:N:0:ACTGTATC
+NCAAGTAGCAGTGTCACGCCTTAGC
++
+#1=DDBDDADFDDBEH at HC=CEGG@
+ at machine1:HiMom:abcdeACXX:1:2101:1365:2094 1:N:0:ACTGTATC
+NAAGGTGAAGGCCGGCGCGCTCGCC
++
+#1=BDDDFFHHHHJGGGIGFIHIIJ
diff --git a/testdata/picard/illumina/25T8B25T/fastq/ACTGTATC.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/ACTGTATC.2.fastq
new file mode 100644
index 0000000..0f0f127
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/ACTGTATC.2.fastq
@@ -0,0 +1,16 @@
+ at machine1:HiMom:abcdeACXX:1:1201:1458:2109 2:N:0:ACTGTATC
+GATACGAACACACAAGAACTTTTTT
++
+CCCFFFFFHHHHHJJJJJJJJJJJI
+ at machine1:HiMom:abcdeACXX:1:2101:1105:2131 2:N:0:ACTGTATC
+CAGCAGCAGCAACAGCAGAAACATG
++
+CCCFFFFFHHHHHJJJJJIJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1349:2084 2:N:0:ACTGTATC
+AGTCTGAATCATTGGTGTCTGAAGA
++
+<5;??=>=>>?##############
+ at machine1:HiMom:abcdeACXX:1:2101:1365:2094 2:N:0:ACTGTATC
+GCTCTTCCGATCTTGTGCTCTTCCG
++
+CCCFFFFDHFHHGJJIIJIJJIHII
diff --git a/testdata/picard/illumina/25T8B25T/fastq/ACTGTATC.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/ACTGTATC.barcode_1.fastq
new file mode 100644
index 0000000..6a8b924
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/ACTGTATC.barcode_1.fastq
@@ -0,0 +1,16 @@
+ at machine1:HiMom:abcdeACXX:1:1201:1458:2109 :N:0:ACTGTATC
+ACTGTATC
++
+CCCFFFFF
+ at machine1:HiMom:abcdeACXX:1:2101:1105:2131 :N:0:ACTGTATC
+ACTGTATC
++
+CCCFFFFF
+ at machine1:HiMom:abcdeACXX:1:2101:1349:2084 :N:0:ACTGTATC
+ACTGTATC
++
+=;7+22<A
+ at machine1:HiMom:abcdeACXX:1:2101:1365:2094 :N:0:ACTGTATC
+ACTGTACC
++
+########
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/AGAAAAGA.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/AGAAAAGA.1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/AGAAAAGA.1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/AGAAAAGA.1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/AGAAAAGA.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/AGAAAAGA.2.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/AGAAAAGA.2.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/AGAAAAGA.2.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/AGAAAAGA.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/AGAAAAGA.barcode_1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/AGAAAAGA.barcode_1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/AGAAAAGA.barcode_1.fastq
diff --git a/testdata/picard/illumina/25T8B25T/fastq/AGCATGGA.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/AGCATGGA.1.fastq
new file mode 100644
index 0000000..014fee9
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/AGCATGGA.1.fastq
@@ -0,0 +1,12 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1406:2222 1:N:0:AGCATGGA
+CTCCCCCCGGGCTGAACCAGGGTAC
++
+CCCFFDDDDHDFHIIIIIIIII9DG
+ at machine1:HiMom:abcdeACXX:1:1201:1291:2158 1:N:0:AGCATGGA
+AGAAGGGGAAAGCCTTCATCTTGGC
++
+BCBFFFFFHHHHHJJJJJIIFIJIJ
+ at machine1:HiMom:abcdeACXX:1:2101:1370:2116 1:N:0:AGCATGGA
+NTGGTGGTCCATAGAGATTTGAAAC
++
+#1:4BD7DACF?FCA:4+<ACHIIH
diff --git a/testdata/picard/illumina/25T8B25T/fastq/AGCATGGA.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/AGCATGGA.2.fastq
new file mode 100644
index 0000000..5df80ec
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/AGCATGGA.2.fastq
@@ -0,0 +1,12 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1406:2222 2:N:0:AGCATGGA
+GGCTGGACTCCCCTGGTTCTGGGCA
++
+;?@DDDBD?FHDFGIIIGIGHHIII
+ at machine1:HiMom:abcdeACXX:1:1201:1291:2158 2:N:0:AGCATGGA
+CGTGTGCTCTTCCGATCTGATGGGC
++
+ at CCFFFDD?FHHFGEHHIIDHIIII
+ at machine1:HiMom:abcdeACXX:1:2101:1370:2116 2:N:0:AGCATGGA
+CACCATCTGACATCATGTTTGAAAG
++
+@@@DFFFDFFHDHIGBHHII<HEDB
diff --git a/testdata/picard/illumina/25T8B25T/fastq/AGCATGGA.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/AGCATGGA.barcode_1.fastq
new file mode 100644
index 0000000..75daae1
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/AGCATGGA.barcode_1.fastq
@@ -0,0 +1,12 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1406:2222 :N:0:AGCATGGA
+AGCATGGA
++
+C@@DBFEF
+ at machine1:HiMom:abcdeACXX:1:1201:1291:2158 :N:0:AGCATGGA
+AGCATGGA
++
+ at CCFFFFF
+ at machine1:HiMom:abcdeACXX:1:2101:1370:2116 :N:0:AGCATGGA
+AGCATGGA
++
+?:8A?3:B
diff --git a/testdata/picard/illumina/25T8B25T/fastq/AGGTAAGG.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/AGGTAAGG.1.fastq
new file mode 100644
index 0000000..eeb6b90
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/AGGTAAGG.1.fastq
@@ -0,0 +1,16 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1263:2236 1:Y:0:AGGTAAGG
+CTTTGAAGACATTGTGAGATCTGTA
++
+<==A<42 at C+A4A?,2A@=4 at 7A??
+ at machine1:HiMom:abcdeACXX:1:2101:1054:2162 1:N:0:AGGTAAGG
+NCCAGGTGTCTTCCCGGGCCCTGCC
++
+#1=DDFBDFHHHHJJJJJIJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1163:2203 1:N:0:AGGTAAGG
+TCTCCATGTGAAACAAGCAAAAAGA
++
+CCCFFFFFHHHHGJJJIJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1249:2231 1:N:0:AGGTAAGG
+GTTATTGATAGGATACTGTACAAAC
++
+ at BCFFFFDHHHHFIJJJJJJJJJJJ
diff --git a/testdata/picard/illumina/25T8B25T/fastq/AGGTAAGG.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/AGGTAAGG.2.fastq
new file mode 100644
index 0000000..8047140
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/AGGTAAGG.2.fastq
@@ -0,0 +1,16 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1263:2236 2:Y:0:AGGTAAGG
+AGTTCTTCAGTAATTTTAGTACTGC
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:2101:1054:2162 2:N:0:AGGTAAGG
+NGGACAGGGAAGGGAAGGAAGGGTG
++
+#4=DDFDFHHHHHJIJIIDHHGICG
+ at machine1:HiMom:abcdeACXX:1:2101:1163:2203 2:N:0:AGGTAAGG
+TTGGTTCACTTATGTATTTATGAAT
++
+ at CCFDFFFHHHHHJHIIJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1249:2231 2:N:0:AGGTAAGG
+TCTCTCGGCCTTCCACTCTAGCATA
++
+@@@FFFFFFHHGHIJJJGJIIJHIJ
diff --git a/testdata/picard/illumina/25T8B25T/fastq/AGGTAAGG.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/AGGTAAGG.barcode_1.fastq
new file mode 100644
index 0000000..19fae2f
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/AGGTAAGG.barcode_1.fastq
@@ -0,0 +1,16 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1263:2236 :Y:0:AGGTAAGG
+AGGTAAGG
++
+########
+ at machine1:HiMom:abcdeACXX:1:2101:1054:2162 :N:0:AGGTAAGG
+AGGTAAGG
++
+B at BDDFFF
+ at machine1:HiMom:abcdeACXX:1:2101:1163:2203 :N:0:AGGTAAGG
+AGGTAAGG
++
+CCCFFFFF
+ at machine1:HiMom:abcdeACXX:1:2101:1249:2231 :N:0:AGGTAAGG
+AGGTAAGG
++
+@@CBDFFF
diff --git a/testdata/picard/illumina/25T8B25T/fastq/AGGTCGCA.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/AGGTCGCA.1.fastq
new file mode 100644
index 0000000..dbfde57
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/AGGTCGCA.1.fastq
@@ -0,0 +1,16 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1150:2228 1:N:0:AGGTCGCA
+GCTACTCAGTAGACAGTCCCACCCT
++
+@@CADDDDFCFHHIIIIGGIIGGGI
+ at machine1:HiMom:abcdeACXX:1:1101:1491:2120 1:N:0:AGGTCGCA
+NGGCAGGTGCCCCCACTTGACTCTC
++
+#1?DFFFFGHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1190:2194 1:N:0:AGGTCGCA
+AACCTGGCGCTAAACCATTCGTAGA
++
+CCCFFFFFHHHHHJJJJJJJJIJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1188:2195 1:N:0:AGGTCGCA
+TTAGACCGTCGTGAGACAGGTTAGT
++
+ at CCFFFFFHHHHHJJJJJIIEHIJH
diff --git a/testdata/picard/illumina/25T8B25T/fastq/AGGTCGCA.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/AGGTCGCA.2.fastq
new file mode 100644
index 0000000..642b31a
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/AGGTCGCA.2.fastq
@@ -0,0 +1,16 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1150:2228 2:N:0:AGGTCGCA
+ATGGGAGGCGATTCCTAGGGGGTTG
++
+8?=DD8;@BH6DHD<FGGGEIGHIG
+ at machine1:HiMom:abcdeACXX:1:1101:1491:2120 2:N:0:AGGTCGCA
+GGCCAGGCTGAACTTCTGAGCTGCT
++
+CCCFFFFFHHHGHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1190:2194 2:N:0:AGGTCGCA
+ACAAACCCTTGTGTCGAGGGCTGAC
++
+CCCFFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1188:2195 2:N:0:AGGTCGCA
+GCACATACACCAAATGTCTGAACCT
++
+CCCFFFFFHHHHHJJJHIJJJJJJJ
diff --git a/testdata/picard/illumina/25T8B25T/fastq/AGGTCGCA.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/AGGTCGCA.barcode_1.fastq
new file mode 100644
index 0000000..7bc729d
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/AGGTCGCA.barcode_1.fastq
@@ -0,0 +1,16 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1150:2228 :N:0:AGGTCGCA
+AGGTCGCA
++
+@@@DDFFF
+ at machine1:HiMom:abcdeACXX:1:1101:1491:2120 :N:0:AGGTCGCA
+AGGTCGCA
++
+BCCDFFFF
+ at machine1:HiMom:abcdeACXX:1:1201:1190:2194 :N:0:AGGTCGCA
+AGGTCGCA
++
+CCCFFFFF
+ at machine1:HiMom:abcdeACXX:1:2101:1188:2195 :N:0:AGGTCGCA
+AGGTCGCA
++
+BCCDFFFF
diff --git a/testdata/picard/illumina/25T8B25T/fastq/ATTATCAA.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/ATTATCAA.1.fastq
new file mode 100644
index 0000000..26ed061
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/ATTATCAA.1.fastq
@@ -0,0 +1,20 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1100:2207 1:N:0:ATTATCAA
+ACGACAGACGTTCTTTCTTTGCTGC
++
+CCCFFFFFHHFHHJIJJJJJHIJJH
+ at machine1:HiMom:abcdeACXX:1:1101:1157:2135 1:N:0:ATTATCAA
+NGGACATTGTAATCATTTCTTACAA
++
+#1=DD?DDHHHHHGGHIIIIIIIII
+ at machine1:HiMom:abcdeACXX:1:1101:1269:2170 1:N:0:ATTATCAA
+ACAGTGTGGGAGGCAGACGAAGAGA
++
+@@@DDDDDFA:C at EGA?FD<FFHII
+ at machine1:HiMom:abcdeACXX:1:1201:1018:2217 1:Y:0:ATTATCAA
+NTTTCTCTGGGCGCAAAGATGTTCA
++
+#07;8=8<<99(:=@@/@7>>6=?>
+ at machine1:HiMom:abcdeACXX:1:1201:1118:2198 1:N:0:ATTATCAA
+CAAGTGTACAGGATTAGACTGGGTT
++
+BCCFDEBDHHHHHIJJJGIIIJJGH
diff --git a/testdata/picard/illumina/25T8B25T/fastq/ATTATCAA.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/ATTATCAA.2.fastq
new file mode 100644
index 0000000..d5035ff
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/ATTATCAA.2.fastq
@@ -0,0 +1,20 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1100:2207 2:N:0:ATTATCAA
+AGGCTNNNNNNNNNNNNGNNNNNNN
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1101:1157:2135 2:N:0:ATTATCAA
+TTTAAAGTCTTAATCAAAGATGATA
++
+CCCFFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1101:1269:2170 2:N:0:ATTATCAA
+TTCCAAGCCTGTGCTTTAAGGAAAA
++
+@@<ADBDBDF8DDCFH at GIE@@GGH
+ at machine1:HiMom:abcdeACXX:1:1201:1018:2217 2:Y:0:ATTATCAA
+NNNNNNNNNNNNNNNNNNNNNNNNN
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1201:1118:2198 2:N:0:ATTATCAA
+AATAAACTTTATTAAAGCAGTTAAA
++
+C at CFFFFFHDHHHGIIIJJJIJJJJ
diff --git a/testdata/picard/illumina/25T8B25T/fastq/ATTATCAA.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/ATTATCAA.barcode_1.fastq
new file mode 100644
index 0000000..bfe2de2
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/ATTATCAA.barcode_1.fastq
@@ -0,0 +1,20 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1100:2207 :N:0:ATTATCAA
+ATTATCAA
++
+CCCFFFFF
+ at machine1:HiMom:abcdeACXX:1:1101:1157:2135 :N:0:ATTATCAA
+ATTATCAA
++
+C at CFFFFF
+ at machine1:HiMom:abcdeACXX:1:1101:1269:2170 :N:0:ATTATCAA
+ATTATCAA
++
+@@@DDDF?
+ at machine1:HiMom:abcdeACXX:1:1201:1018:2217 :Y:0:ATTATCAA
+ATTATCAA
++
+;<;:BBDD
+ at machine1:HiMom:abcdeACXX:1:1201:1118:2198 :N:0:ATTATCAA
+ATTATCAA
++
+@@@DDBDD
diff --git a/testdata/picard/illumina/25T8B25T/fastq/ATTCCTCT.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/ATTCCTCT.1.fastq
new file mode 100644
index 0000000..ce65a9e
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/ATTCCTCT.1.fastq
@@ -0,0 +1,16 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1309:2210 1:N:0:ATTCCTCT
+ACACCAACCACCCAACTATCTATAA
++
+CCCFFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1018:2133 1:N:0:ATTCCTCT
+NAAAACTTGAGGATGCTATGCAAGC
++
+#1:B:ADDDDDDDEEAEBF9FFEBF
+ at machine1:HiMom:abcdeACXX:1:1201:1073:2225 1:N:0:ATTCCTCT
+GGGGCTGAGACCTTTGCTGATGGTG
++
+@@@FFFFFHHHGHJJJJJIIIGICH
+ at machine1:HiMom:abcdeACXX:1:1201:1242:2207 1:N:0:ATTCCTCT
+ATGGCAAAGTGGTGTCTGAGACCAA
++
+BCCFFFFFGHHHHHIIIJFHIJJJJ
diff --git a/testdata/picard/illumina/25T8B25T/fastq/ATTCCTCT.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/ATTCCTCT.2.fastq
new file mode 100644
index 0000000..f2fc1e5
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/ATTCCTCT.2.fastq
@@ -0,0 +1,16 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1309:2210 2:N:0:ATTCCTCT
+AGTGGGCTAGGGCATTTTTAATCTT
++
+@@?DFFDFHHHDFHJIJJIJGIIIJ
+ at machine1:HiMom:abcdeACXX:1:1201:1018:2133 2:N:0:ATTCCTCT
+NNNNNNNNNNNNNNNNNNNNNNNNN
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1201:1073:2225 2:N:0:ATTCCTCT
+CGTGTGCTCTTCCGATCTGGAGGGT
++
+ at BBDFFFFHHHHHJJJJJJJJJJJ:
+ at machine1:HiMom:abcdeACXX:1:1201:1242:2207 2:N:0:ATTCCTCT
+ATCTTTTATTGGCCTCCTGCTCCCC
++
+CCCFFFFFHHHHHJJJJJJJJJJJJ
diff --git a/testdata/picard/illumina/25T8B25T/fastq/ATTCCTCT.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/ATTCCTCT.barcode_1.fastq
new file mode 100644
index 0000000..ea5fd93
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/ATTCCTCT.barcode_1.fastq
@@ -0,0 +1,16 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1309:2210 :N:0:ATTCCTCT
+ATTCCTCT
++
+?@@ADEEF
+ at machine1:HiMom:abcdeACXX:1:1201:1018:2133 :N:0:ATTCCTCT
+ATTCCTCT
++
+8??=BBBA
+ at machine1:HiMom:abcdeACXX:1:1201:1073:2225 :N:0:ATTCCTCT
+ATTCCTCT
++
+B@@BDEFF
+ at machine1:HiMom:abcdeACXX:1:1201:1242:2207 :N:0:ATTCCTCT
+ATTCCTCT
++
+?BBDDDFF
diff --git a/testdata/picard/illumina/25T8B25T/fastq/CAACTCTC.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/CAACTCTC.1.fastq
new file mode 100644
index 0000000..c48bd97
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/CAACTCTC.1.fastq
@@ -0,0 +1,20 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1140:2120 1:N:0:CAACTCTC
+NCCCCAACATTCTAATTATGCCTCA
++
+#1:BDFFDHFFDFIJJJIIJIIIII
+ at machine1:HiMom:abcdeACXX:1:1101:1328:2225 1:N:0:CAACTCTC
+GAAATGCATCTGTCTTAGAAACTGG
++
+??@=BDDDFDD<<,<2:C<F:FFEA
+ at machine1:HiMom:abcdeACXX:1:1201:1127:2112 1:Y:0:CAACTCTC
+NGTCAAGGATGTTCGTCGTGGCAAC
++
+#1=BDDDDDDDDDID<AE?@<CEEE
+ at machine1:HiMom:abcdeACXX:1:1201:1452:2143 1:N:0:CAACTCTC
+TATCCCCTCTAAGACGGACCTGGGT
++
+CCCFFFFFHHHHHJJIIIJJJJJJG
+ at machine1:HiMom:abcdeACXX:1:1201:1486:2146 1:Y:0:CAACTCTC
+GTTCTCTGTCCCCAGGTCCTGTCTC
++
+===A7<7222<<=C=?+<7>@?ACB
diff --git a/testdata/picard/illumina/25T8B25T/fastq/CAACTCTC.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/CAACTCTC.2.fastq
new file mode 100644
index 0000000..23880ee
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/CAACTCTC.2.fastq
@@ -0,0 +1,20 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1140:2120 2:N:0:CAACTCTC
+TTTTTTTTTTTTTAACTTTGCAAAT
++
+@@@DDDDDHHHHFB at 9FHI@BFH@@
+ at machine1:HiMom:abcdeACXX:1:1101:1328:2225 2:N:0:CAACTCTC
+AGGAAATTAGGACTTACCTGACATA
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1201:1127:2112 2:Y:0:CAACTCTC
+TAATCACCTGAGCAGTGAAGCCAGC
++
+@<@?BDDDHD?FDBHI?AHGGGDFH
+ at machine1:HiMom:abcdeACXX:1:1201:1452:2143 2:N:0:CAACTCTC
+TTTTAGTCTTAGCATTTACTTTCCC
++
+CCCFFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1486:2146 2:Y:0:CAACTCTC
+TTTTTTTTTTTTTTTTTTTTTGGGC
++
+<<<@??@??@???????########
diff --git a/testdata/picard/illumina/25T8B25T/fastq/CAACTCTC.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/CAACTCTC.barcode_1.fastq
new file mode 100644
index 0000000..052fd17
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/CAACTCTC.barcode_1.fastq
@@ -0,0 +1,20 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1140:2120 :N:0:CAACTCTC
+CAACTCTC
++
+@@@DDFDF
+ at machine1:HiMom:abcdeACXX:1:1101:1328:2225 :N:0:CAACTCTC
+CAACTCTC
++
+??;=A:B=
+ at machine1:HiMom:abcdeACXX:1:1201:1127:2112 :Y:0:CAACTCTC
+CAACTCTC
++
+=??BA?BD
+ at machine1:HiMom:abcdeACXX:1:1201:1452:2143 :N:0:CAACTCTC
+CAACTCTC
++
+BC at DDFFF
+ at machine1:HiMom:abcdeACXX:1:1201:1486:2146 :Y:0:CAACTCTC
+CAACTCTC
++
+?@@1:DBD
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CAATAGAC.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/CAATAGAC.1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/CAATAGAC.1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/CAATAGAC.1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CAATAGAC.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/CAATAGAC.2.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/CAATAGAC.2.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/CAATAGAC.2.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CAATAGAC.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/CAATAGAC.barcode_1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/CAATAGAC.barcode_1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/CAATAGAC.barcode_1.fastq
diff --git a/testdata/picard/illumina/25T8B25T/fastq/CAATAGTC.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/CAATAGTC.1.fastq
new file mode 100644
index 0000000..3b0d15e
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/CAATAGTC.1.fastq
@@ -0,0 +1,28 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1316:2126 1:N:0:CAATAGTC
+NAAAAAAAAAAAAAAAAAAAAAAAA
++
+#1BDFFFFHHHHHJJJJFDDDDDDD
+ at machine1:HiMom:abcdeACXX:1:1101:1399:2128 1:N:0:CAATAGTC
+NTGCCCTTCGTCCTGGGAAACGGGG
++
+#1BDFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1054:2151 1:N:0:CAATAGTC
+NTAGTGCTGGGCACTAAGTAATACC
++
+#4=DDDFFHHHHHJJJJJHIJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1345:2181 1:N:0:CAATAGTC
+GGATAATCCTATTTATTACCTCAGA
++
+BBBDDFFFHHHHHJJJJJJJJJIJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1392:2184 1:N:0:CAATAGTC
+TTTCAGATTGGTCATTGTTAGTGTA
++
+??@BDDDEHBHADHHIIEHDHFHFF
+ at machine1:HiMom:abcdeACXX:1:2101:1172:2152 1:Y:0:CAATAGTC
+AACACGGACAAAGGAGTCTAACACG
++
+<<<??8@@#################
+ at machine1:HiMom:abcdeACXX:1:2101:1491:2093 1:N:0:CAATAGTC
+NCTATGCCGATCGGGTGTCCGCACT
++
+#1=DDDDDHHFHHIIEHHHBGHGII
diff --git a/testdata/picard/illumina/25T8B25T/fastq/CAATAGTC.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/CAATAGTC.2.fastq
new file mode 100644
index 0000000..64b8243
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/CAATAGTC.2.fastq
@@ -0,0 +1,28 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1316:2126 2:N:0:CAATAGTC
+TCTTTTTTTTTTTTTTTTTTTTTTT
++
+CCCFFFFFHHHHHJJJJHFDDDDDD
+ at machine1:HiMom:abcdeACXX:1:1101:1399:2128 2:N:0:CAATAGTC
+ACAAACCCTTGTGTCGAGGGCTGAC
++
+CCCFFFFFHHHHHIJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1054:2151 2:N:0:CAATAGTC
+GTCAGGCACTGAGAATATATGGGTG
++
+CBCFFFFFHHHHHJJJJJJJJJJEG
+ at machine1:HiMom:abcdeACXX:1:1201:1345:2181 2:N:0:CAATAGTC
+ATACGGATGTGTTTAGGAGTGGGAC
++
+CCCFFFFFHHHHHIIJJHJFHIJIJ
+ at machine1:HiMom:abcdeACXX:1:1201:1392:2184 2:N:0:CAATAGTC
+ATCTTTATTCATTTGTATGATCTTA
++
+@@BFFFFFHFFHFHIHIIJIJJJJI
+ at machine1:HiMom:abcdeACXX:1:2101:1172:2152 2:Y:0:CAATAGTC
+ATCGTTTCTGGGGACTAGTGAGGCG
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:2101:1491:2093 2:N:0:CAATAGTC
+AGAGACGGGGTCTCGCTATGTTGCC
++
+BCCDFFFFHHHHHJIIJJJJIJIJJ
diff --git a/testdata/picard/illumina/25T8B25T/fastq/CAATAGTC.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/CAATAGTC.barcode_1.fastq
new file mode 100644
index 0000000..1b351d4
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/CAATAGTC.barcode_1.fastq
@@ -0,0 +1,28 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1316:2126 :N:0:CAATAGTC
+CAATAGAC
++
+1>>7A###
+ at machine1:HiMom:abcdeACXX:1:1101:1399:2128 :N:0:CAATAGTC
+CAATAGTC
++
+CCCFFFFF
+ at machine1:HiMom:abcdeACXX:1:1201:1054:2151 :N:0:CAATAGTC
+CAATAGTC
++
+CCCFFFDF
+ at machine1:HiMom:abcdeACXX:1:1201:1345:2181 :N:0:CAATAGTC
+CAATAGTC
++
+CCCFFFFF
+ at machine1:HiMom:abcdeACXX:1:1201:1392:2184 :N:0:CAATAGTC
+CAATAGTC
++
+ at CCFFDDE
+ at machine1:HiMom:abcdeACXX:1:2101:1172:2152 :Y:0:CAATAGTC
+CAATAGTC
++
+########
+ at machine1:HiMom:abcdeACXX:1:2101:1491:2093 :N:0:CAATAGTC
+CAATAGTC
++
+@@@FDEBD
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CAGCGGAT.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/CAGCGGAT.1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/CAGCGGAT.1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/CAGCGGAT.1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CAGCGGAT.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/CAGCGGAT.2.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/CAGCGGAT.2.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/CAGCGGAT.2.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CAGCGGAT.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/CAGCGGAT.barcode_1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/CAGCGGAT.barcode_1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/CAGCGGAT.barcode_1.fastq
diff --git a/testdata/picard/illumina/25T8B25T/fastq/CAGCGGTA.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/CAGCGGTA.1.fastq
new file mode 100644
index 0000000..9053f51
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/CAGCGGTA.1.fastq
@@ -0,0 +1,20 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1420:2213 1:N:0:CAGCGGTA
+TACCTGGTTGATCCTGCCAGTAGCA
++
+@@CFFFFDDHHGHJGGHIJJIHGBH
+ at machine1:HiMom:abcdeACXX:1:1201:1364:2113 1:N:0:CAGCGGTA
+NCACTCATTTTCTTATGTGGGATAT
++
+#1=DDFDFHHHHHIJJIFHIIHHHI
+ at machine1:HiMom:abcdeACXX:1:2101:1072:2170 1:N:0:CAGCGGTA
+ATCACCGCACTCATTTCCCGCTTCC
++
+CCCFFFFFHHHACEEGHIIBHIIII
+ at machine1:HiMom:abcdeACXX:1:2101:1123:2095 1:N:0:CAGCGGTA
+NTGGACAACATGTTCGAGAGCTACA
++
+#1=BBDDDFFFFDGFGIG?F;HHFI
+ at machine1:HiMom:abcdeACXX:1:2101:1151:2236 1:Y:0:CAGCGGTA
+TTAAAGAGGTTCAGGGATGCAGAGT
++
+#########################
diff --git a/testdata/picard/illumina/25T8B25T/fastq/CAGCGGTA.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/CAGCGGTA.2.fastq
new file mode 100644
index 0000000..83ddb69
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/CAGCGGTA.2.fastq
@@ -0,0 +1,20 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1420:2213 2:N:0:CAGCGGTA
+TTCACTGTACCGGCCGTGCGTACTT
++
+ at CCFFFFDHHHFGIJJJJJJGHIGG
+ at machine1:HiMom:abcdeACXX:1:1201:1364:2113 2:N:0:CAGCGGTA
+TAAAGAGAGCCAGTGGAGTTACGAC
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:2101:1072:2170 2:N:0:CAGCGGTA
+NGGGGAGACAGAGAGGATCAGAAGT
++
+#4=BDDFDHHDFHEGFEGGIJIIIG
+ at machine1:HiMom:abcdeACXX:1:2101:1123:2095 2:N:0:CAGCGGTA
+TCCGCCTCCAGCTTCAGCTTCTCCT
++
+@@@FDDFFHHHHHJHGGJIJJJEHH
+ at machine1:HiMom:abcdeACXX:1:2101:1151:2236 2:Y:0:CAGCGGTA
+TTTGAAGCCTCTTTATCCTTGGCAT
++
+#########################
diff --git a/testdata/picard/illumina/25T8B25T/fastq/CAGCGGTA.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/CAGCGGTA.barcode_1.fastq
new file mode 100644
index 0000000..b9b5bba
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/CAGCGGTA.barcode_1.fastq
@@ -0,0 +1,20 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1420:2213 :N:0:CAGCGGTA
+CAGCGGTA
++
+ at C@FFFDF
+ at machine1:HiMom:abcdeACXX:1:1201:1364:2113 :N:0:CAGCGGTA
+CAGCGGTA
++
+C at CFFF@D
+ at machine1:HiMom:abcdeACXX:1:2101:1072:2170 :N:0:CAGCGGTA
+CAGCGGTA
++
+B@@DFDDF
+ at machine1:HiMom:abcdeACXX:1:2101:1123:2095 :N:0:CAGCGGTA
+CAGCGGTA
++
+@?@DDF@@
+ at machine1:HiMom:abcdeACXX:1:2101:1151:2236 :Y:0:CAGCGGTA
+TAGCGGTA
++
+########
diff --git a/testdata/picard/illumina/25T8B25T/fastq/CCAACATT.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/CCAACATT.1.fastq
new file mode 100644
index 0000000..c27e9fd
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/CCAACATT.1.fastq
@@ -0,0 +1,28 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1083:2193 1:N:0:CCAACATT
+TTCTACCTCACCTTAGGGAGAAGAC
++
+@@@DDBDDD>F><C<4CG?EHGHIG
+ at machine1:HiMom:abcdeACXX:1:1101:1175:2197 1:N:0:CCAACATT
+CCCCTGAGGACACCATCCCACTCCA
++
+CCCFFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1138:2227 1:Y:0:CCAACATT
+GCTGACACAATCTCTTCCGCCTGGT
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1201:1260:2165 1:N:0:CCAACATT
+GGACACGGACAGGATTGACAGATTG
++
+BCBFFFFFHHHHHHIIJHIIIFHIJ
+ at machine1:HiMom:abcdeACXX:1:1201:1281:2133 1:N:0:CCAACATT
+NGGAAATCCAGAAAACATAGAAGAT
++
+#1=DDFFFHHHHHIJJJJJJJJIJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1331:2162 1:N:0:CCAACATT
+ACGCTCGGCTAATTTTTGTATTTTT
++
+ at CCFFFDFHHHHHIJJJJHIJJJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1186:2093 1:N:0:CCAACATT
+NCGACCATAAACGATGCCGACCGGC
++
+#4=DFFFFHHHHHJJJJJJJJJJJJ
diff --git a/testdata/picard/illumina/25T8B25T/fastq/CCAACATT.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/CCAACATT.2.fastq
new file mode 100644
index 0000000..80f6eba
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/CCAACATT.2.fastq
@@ -0,0 +1,28 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1083:2193 2:N:0:CCAACATT
+AGGCTNNNNNNNNNNNNNNNNNNNN
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1101:1175:2197 2:N:0:CCAACATT
+AAGAGCTGGGGAACATCCAGAAAGG
++
+BC at FFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1138:2227 2:Y:0:CCAACATT
+GACAAATATAGGAAATAGAAGCTAT
++
+=1=A=AAA,2?4>7C<<4<A+3<AB
+ at machine1:HiMom:abcdeACXX:1:1201:1260:2165 2:N:0:CCAACATT
+ATCTGATCTAAGTTGGGGGACGCCG
++
+@@@FFDFFHHHHHJJJIJIIIGIJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1281:2133 2:N:0:CCAACATT
+GCAACAAAATTTCATATGACTTAGC
++
+CCCFFFFFHHHHHJJIIIHICHIIJ
+ at machine1:HiMom:abcdeACXX:1:1201:1331:2162 2:N:0:CCAACATT
+TAATCCCAGTACTTTGGGAGGCCAA
++
+CCCFFFFFHHHHHJJJJIJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1186:2093 2:N:0:CCAACATT
+AATGTTGGGAGGACAATGATGGAAA
++
+#########################
diff --git a/testdata/picard/illumina/25T8B25T/fastq/CCAACATT.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/CCAACATT.barcode_1.fastq
new file mode 100644
index 0000000..569551b
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/CCAACATT.barcode_1.fastq
@@ -0,0 +1,28 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1083:2193 :N:0:CCAACATT
+CCAACATT
++
+?@;DD?BD
+ at machine1:HiMom:abcdeACXX:1:1101:1175:2197 :N:0:CCAACATT
+CCAACATT
++
+CCCFFFFF
+ at machine1:HiMom:abcdeACXX:1:1201:1138:2227 :Y:0:CCAACATT
+CCAACATT
++
+########
+ at machine1:HiMom:abcdeACXX:1:1201:1260:2165 :N:0:CCAACATT
+CCAACATT
++
+C at CFFFFF
+ at machine1:HiMom:abcdeACXX:1:1201:1281:2133 :N:0:CCAACATT
+CCAACATT
++
+C at CFFFDF
+ at machine1:HiMom:abcdeACXX:1:1201:1331:2162 :N:0:CCAACATT
+CCAACATT
++
+CCCFFFFF
+ at machine1:HiMom:abcdeACXX:1:2101:1186:2093 :N:0:CCAACATT
+CCAACATT
++
+CCCFFFFF
diff --git a/testdata/picard/illumina/25T8B25T/fastq/CCAGCACC.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/CCAGCACC.1.fastq
new file mode 100644
index 0000000..c070e32
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/CCAGCACC.1.fastq
@@ -0,0 +1,12 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1212:2230 1:N:0:CCAGCACC
+TTTCTATTAGCTCTTAGTAAGATTA
++
+CCCFFFFFHHHHHJJJIJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1204:2228 1:N:0:CCAGCACC
+CCGATACGCTGAGTGTGGTTTGCGG
++
+CCCFFFFFHHHFHEGGHIHIJJJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1100:2085 1:N:0:CCAGCACC
+NCACATGGATGAGGAGAATGAGGAT
++
+#1=DDFFFFHHHHJHIGIHHHIJEH
diff --git a/testdata/picard/illumina/25T8B25T/fastq/CCAGCACC.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/CCAGCACC.2.fastq
new file mode 100644
index 0000000..cfb3783
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/CCAGCACC.2.fastq
@@ -0,0 +1,12 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1212:2230 2:N:0:CCAGCACC
+TTTTAGCTTTATTGGGGAGGGGGTG
++
+CCCFFFFFHHGHHJJJJGJJJJJDF
+ at machine1:HiMom:abcdeACXX:1:1201:1204:2228 2:N:0:CCAGCACC
+TCTTCTTGTCGATGAGGAACTTGGT
++
+@?@FFFFFDHHGHJIJJGHIIJJJH
+ at machine1:HiMom:abcdeACXX:1:2101:1100:2085 2:N:0:CCAGCACC
+ATCTTGATCTCCTCCTTCTTGGCCT
++
+@@@DDDDDHHFHFEIIIIHHBAHBG
diff --git a/testdata/picard/illumina/25T8B25T/fastq/CCAGCACC.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/CCAGCACC.barcode_1.fastq
new file mode 100644
index 0000000..07b0fae
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/CCAGCACC.barcode_1.fastq
@@ -0,0 +1,12 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1212:2230 :N:0:CCAGCACC
+CCAGCACC
++
+CCCFFFFF
+ at machine1:HiMom:abcdeACXX:1:1201:1204:2228 :N:0:CCAGCACC
+CCAGCACC
++
+CCCFFFFF
+ at machine1:HiMom:abcdeACXX:1:2101:1100:2085 :N:0:CCAGCACC
+CCAGCACC
++
+CCCFFFFF
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CCATGCGT.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/CCATGCGT.1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/CCATGCGT.1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/CCATGCGT.1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CCATGCGT.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/CCATGCGT.2.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/CCATGCGT.2.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/CCATGCGT.2.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CCATGCGT.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/CCATGCGT.barcode_1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/CCATGCGT.barcode_1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/CCATGCGT.barcode_1.fastq
diff --git a/testdata/picard/illumina/25T8B25T/fastq/CGCCTTCC.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/CGCCTTCC.1.fastq
new file mode 100644
index 0000000..ab2fd21
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/CGCCTTCC.1.fastq
@@ -0,0 +1,8 @@
+ at machine1:HiMom:abcdeACXX:1:1201:1122:2227 1:N:0:CGCCTTCC
+AGAAGACGAGGCTGAGAGTGACATC
++
+@@@FFFFFHHHDHJGHGHCHHJJIJ
+ at machine1:HiMom:abcdeACXX:1:1201:1160:2109 1:N:0:CGCCTTCC
+NAGAAGCCTTTGCACCCTGGGAGGA
++
+#1=DDDFFHHHHHJJJJJJJJIIJJ
diff --git a/testdata/picard/illumina/25T8B25T/fastq/CGCCTTCC.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/CGCCTTCC.2.fastq
new file mode 100644
index 0000000..89bc5bc
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/CGCCTTCC.2.fastq
@@ -0,0 +1,8 @@
+ at machine1:HiMom:abcdeACXX:1:1201:1122:2227 2:N:0:CGCCTTCC
+GTCATATAAGGCCCAGTCCAAGGAA
++
+@@@FFFFFHHHGGIJIGGIJFIJII
+ at machine1:HiMom:abcdeACXX:1:1201:1160:2109 2:N:0:CGCCTTCC
+ACATCCTTCCCATGCCACCAACTCG
++
+CCCFFFFFGHHHHJJJJJJJJJJJJ
diff --git a/testdata/picard/illumina/25T8B25T/fastq/CGCCTTCC.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/CGCCTTCC.barcode_1.fastq
new file mode 100644
index 0000000..4c987f7
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/CGCCTTCC.barcode_1.fastq
@@ -0,0 +1,8 @@
+ at machine1:HiMom:abcdeACXX:1:1201:1122:2227 :N:0:CGCCTTCC
+CGCCTTCC
++
+@@@DDFFF
+ at machine1:HiMom:abcdeACXX:1:1201:1160:2109 :N:0:CGCCTTCC
+CGCCTTCC
++
+C at BFFFFF
diff --git a/testdata/picard/illumina/25T8B25T/fastq/CGCTATGT.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/CGCTATGT.1.fastq
new file mode 100644
index 0000000..22dfb08
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/CGCTATGT.1.fastq
@@ -0,0 +1,20 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1291:2150 1:N:0:CGCTATGT
+CGTGGGGAACCTGGCGCTAAACCAT
++
+ at BBFFFFFHHHHHJJJJIJJJJJIJ
+ at machine1:HiMom:abcdeACXX:1:1101:1314:2233 1:N:0:CGCTATGT
+GTTTATTGGGGCATTCCTTATCCCA
++
+@??DDDDBDHF>FCHGGGBFAAED9
+ at machine1:HiMom:abcdeACXX:1:1101:1441:2148 1:N:0:CGCTATGT
+ACTTTCACCGCTACACGACCGGGGG
++
+CCCFFFFFHGFFHIIFIHJIGGII>
+ at machine1:HiMom:abcdeACXX:1:1201:1043:2246 1:N:0:CGCTATGT
+NTTCTCGGCTGTCATGTGCAACATT
++
+#1=DDBDFHHHDFFBHGHGHIIJEH
+ at machine1:HiMom:abcdeACXX:1:1201:1134:2144 1:N:0:CGCTATGT
+TGCCAGGAAGTGTTTTTTCTGGGTC
++
+ at CCFFEFFHHFFFGIJJJJJJJJGH
diff --git a/testdata/picard/illumina/25T8B25T/fastq/CGCTATGT.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/CGCTATGT.2.fastq
new file mode 100644
index 0000000..c96fdb8
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/CGCTATGT.2.fastq
@@ -0,0 +1,20 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1291:2150 2:N:0:CGCTATGT
+ACAAACCCTTGTGTCGAGGGCTGAC
++
+CCCFFFFFHHFHHIJJJIIIGIJIJ
+ at machine1:HiMom:abcdeACXX:1:1101:1314:2233 2:N:0:CGCTATGT
+AGGAAAGTTGGGCTGACCTGACAGA
++
+@@<DDD;=FBFADBCGDEH?F;FCG
+ at machine1:HiMom:abcdeACXX:1:1101:1441:2148 2:N:0:CGCTATGT
+TTTTGGCTCTAGAGGGGGTAGAGGG
++
+CCCFFFFFHHDFBHIIJJ1?FGHIJ
+ at machine1:HiMom:abcdeACXX:1:1201:1043:2246 2:N:0:CGCTATGT
+NGCATCATTTCNNGCTTCTCTCTGT
++
+#0;@@??@=@>##22=;@??><@??
+ at machine1:HiMom:abcdeACXX:1:1201:1134:2144 2:N:0:CGCTATGT
+AGTGTGAGTAATGGTTGAGAGGTGG
++
+B@?DDDFFFHHGHJHHGFIHHIFGI
diff --git a/testdata/picard/illumina/25T8B25T/fastq/CGCTATGT.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/CGCTATGT.barcode_1.fastq
new file mode 100644
index 0000000..fbfd111
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/CGCTATGT.barcode_1.fastq
@@ -0,0 +1,20 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1291:2150 :N:0:CGCTATGT
+CGCTATGT
++
+@@@FFFFF
+ at machine1:HiMom:abcdeACXX:1:1101:1314:2233 :N:0:CGCTATGT
+CGCTATGT
++
+@<@?B@;A
+ at machine1:HiMom:abcdeACXX:1:1101:1441:2148 :N:0:CGCTATGT
+CGCTATGT
++
+@@BFFDDD
+ at machine1:HiMom:abcdeACXX:1:1201:1043:2246 :N:0:CGCTATGT
+CGCTATGT
++
+@<?DD:B=
+ at machine1:HiMom:abcdeACXX:1:1201:1134:2144 :N:0:CGCTATGT
+CGCTATGT
++
+CCCFFFFD
diff --git a/testdata/picard/illumina/25T8B25T/fastq/CTAACTCG.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/CTAACTCG.1.fastq
new file mode 100644
index 0000000..d0aacee
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/CTAACTCG.1.fastq
@@ -0,0 +1,16 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1363:2138 1:N:0:CTAACTCG
+NGTCTGGCCTGCACAGACATCCTAC
++
+#1=DDFFFHHHHHJJJIJJIJJJIJ
+ at machine1:HiMom:abcdeACXX:1:1201:1393:2143 1:N:0:CTAACTCG
+TGGTTGATCCTGCCAGTAGCATATG
++
+@@@ADADDFHFFDBHE?G at HIIIEE
+ at machine1:HiMom:abcdeACXX:1:2101:1273:2119 1:Y:0:CTAACTCG
+NAGATAAGAGTCCACACAGTTGAGT
++
+#11AAAAA<A?4=C=7?733<ACA3
+ at machine1:HiMom:abcdeACXX:1:2101:1414:2098 1:N:0:CTAACTCG
+NAGGACATCGATAAAGGCGAGGTGT
++
+#1=DDFFFHHHHHJJJJJJJJJHHG
diff --git a/testdata/picard/illumina/25T8B25T/fastq/CTAACTCG.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/CTAACTCG.2.fastq
new file mode 100644
index 0000000..eda5373
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/CTAACTCG.2.fastq
@@ -0,0 +1,16 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1363:2138 2:N:0:CTAACTCG
+GTTCTTAAACCTGTTAGAACTTCTG
++
+C@@FFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1393:2143 2:N:0:CTAACTCG
+GATAAATGCACGCATCCCCCCCGCG
++
+C at CFFFFFGGHHHHJJJJJJJJJJI
+ at machine1:HiMom:abcdeACXX:1:2101:1273:2119 2:Y:0:CTAACTCG
+ATGATGGATCTTCTCTAACTTGTCA
++
+>=><AAAAA+2AA?CB4@@ABB3?A
+ at machine1:HiMom:abcdeACXX:1:2101:1414:2098 2:N:0:CTAACTCG
+TTGGGGCCGGTGCCGTCGGGCCCAA
++
+CCCFFFFFHHHHGJJIJJJJJJJIJ
diff --git a/testdata/picard/illumina/25T8B25T/fastq/CTAACTCG.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/CTAACTCG.barcode_1.fastq
new file mode 100644
index 0000000..748b2b5
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/CTAACTCG.barcode_1.fastq
@@ -0,0 +1,16 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1363:2138 :N:0:CTAACTCG
+CTAACTCG
++
+CCCFFFFF
+ at machine1:HiMom:abcdeACXX:1:1201:1393:2143 :N:0:CTAACTCG
+CTAACTCG
++
+@@CFDDFD
+ at machine1:HiMom:abcdeACXX:1:2101:1273:2119 :Y:0:CTAACTCG
+CTAACTCG
++
+=++==ADB
+ at machine1:HiMom:abcdeACXX:1:2101:1414:2098 :N:0:CTAACTCG
+CTAACTCG
++
+CCCFFFFF
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CTATGCGC.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/CTATGCGC.1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/CTATGCGC.1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/CTATGCGC.1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CTATGCGC.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/CTATGCGC.2.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/CTATGCGC.2.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/CTATGCGC.2.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/CTATGCGC.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/CTATGCGC.barcode_1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/CTATGCGC.barcode_1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/CTATGCGC.barcode_1.fastq
diff --git a/testdata/picard/illumina/25T8B25T/fastq/CTATGCGT.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/CTATGCGT.1.fastq
new file mode 100644
index 0000000..4ca668c
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/CTATGCGT.1.fastq
@@ -0,0 +1,28 @@
+ at machine1:HiMom:abcdeACXX:1:1201:1083:2121 1:N:0:CTATGCGT
+NAGAACTGGCGCTGCGGGATGAACC
++
+#1=BDFFFHHHHHJJJJJHIJIJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1185:2143 1:N:0:CTATGCGT
+ATCTGCCTGGTTCGGCCCGCCTGCC
++
+CCCFFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1219:2115 1:N:0:CTATGCGT
+NTATAGTGGAGGCCGGAGCAGGAAC
++
+#1:DABADHHHFHIIIGGHGIIIII
+ at machine1:HiMom:abcdeACXX:1:1201:1472:2121 1:Y:0:CTATGCGT
+NTAAAGTGTGAACAAGGAAGGTCAT
++
+#07>@<9=@################
+ at machine1:HiMom:abcdeACXX:1:2101:1013:2146 1:N:0:CTATGCGT
+NACACTGCTGCAGATGACAAGCAGC
++
+#4BDFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1231:2208 1:N:0:CTATGCGT
+ACGCCGCAAGTCAGAGCCCCCCAGA
++
+@@@DDDFFFFB:DBBEBEFDHBDDB
+ at machine1:HiMom:abcdeACXX:1:2101:1233:2133 1:Y:0:CTATGCGT
+GAGAGAAGCACTCTTGAGCGGGATA
++
+0;(@((@)2@###############
diff --git a/testdata/picard/illumina/25T8B25T/fastq/CTATGCGT.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/CTATGCGT.2.fastq
new file mode 100644
index 0000000..62f18ff
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/CTATGCGT.2.fastq
@@ -0,0 +1,28 @@
+ at machine1:HiMom:abcdeACXX:1:1201:1083:2121 2:N:0:CTATGCGT
+ACACACAACACCACCGCCCTCCCCC
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1201:1185:2143 2:N:0:CTATGCGT
+GCTGAAGGCCCGTGGGCCAGAGGTG
++
+ at CCFFFFFHHHHHJJJJJJJJJJHI
+ at machine1:HiMom:abcdeACXX:1:1201:1219:2115 2:N:0:CTATGCGT
+TGGGAGTAGTTCCCTGCTAAGGGAG
++
+???DBDBDADDDDIEID:AFFD:?8
+ at machine1:HiMom:abcdeACXX:1:1201:1472:2121 2:Y:0:CTATGCGT
+GTGTGCTCTTCCGATCTGGAGGATG
++
+=+=??A4A==A at 7A<?#########
+ at machine1:HiMom:abcdeACXX:1:2101:1013:2146 2:N:0:CTATGCGT
+NNNNCGCTAGAACCAACTTATTCAT
++
+####24=?@@?@?@@?@@@@@@?@@
+ at machine1:HiMom:abcdeACXX:1:2101:1231:2208 2:N:0:CTATGCGT
+AGCCAGTGTTGGTGTGTTGACTGTT
++
+@@;1ADABCF;BF<AACGCHEBHC<
+ at machine1:HiMom:abcdeACXX:1:2101:1233:2133 2:Y:0:CTATGCGT
+TTTTTTTTTTTTTTTTTTTTTTTTT
++
+CCCFFFFFGHHHHJJJFDDDDDDDD
diff --git a/testdata/picard/illumina/25T8B25T/fastq/CTATGCGT.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/CTATGCGT.barcode_1.fastq
new file mode 100644
index 0000000..e684e0e
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/CTATGCGT.barcode_1.fastq
@@ -0,0 +1,28 @@
+ at machine1:HiMom:abcdeACXX:1:1201:1083:2121 :N:0:CTATGCGT
+CTATGCGT
++
+CCCFFFFD
+ at machine1:HiMom:abcdeACXX:1:1201:1185:2143 :N:0:CTATGCGT
+CTATGCGT
++
+CCCFFFFF
+ at machine1:HiMom:abcdeACXX:1:1201:1219:2115 :N:0:CTATGCGT
+CCATGCGT
++
+??<DDA?D
+ at machine1:HiMom:abcdeACXX:1:1201:1472:2121 :Y:0:CTATGCGT
+CTATGCGC
++
+;?=D####
+ at machine1:HiMom:abcdeACXX:1:2101:1013:2146 :N:0:CTATGCGT
+CTATGCGT
++
+CCCFFFFF
+ at machine1:HiMom:abcdeACXX:1:2101:1231:2208 :N:0:CTATGCGT
+CTATGCGT
++
+@<@?D8 at D
+ at machine1:HiMom:abcdeACXX:1:2101:1233:2133 :Y:0:CTATGCGT
+CTATGCGT
++
+=??B####
diff --git a/testdata/picard/illumina/25T8B25T/fastq/CTGCGGAT.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/CTGCGGAT.1.fastq
new file mode 100644
index 0000000..4a7196d
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/CTGCGGAT.1.fastq
@@ -0,0 +1,12 @@
+ at machine1:HiMom:abcdeACXX:1:2101:1102:2221 1:N:0:CTGCGGAT
+TTTCATCTTATTTCATTGGTTTATA
++
+CCCFFFFFHHHHHJIJJJJIJJJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1126:2082 1:N:0:CTGCGGAT
+NGTTTTAGGGGTGCGCAGGAGTCAA
++
+#11=A=DD?DF at D@CCGHIEFH at BG
+ at machine1:HiMom:abcdeACXX:1:2101:1216:2172 1:N:0:CTGCGGAT
+TTTCTTCGCAGGATTTTTCTGAGCC
++
+CCCFFFFFHHHHHJJJJJJJJJJJJ
diff --git a/testdata/picard/illumina/25T8B25T/fastq/CTGCGGAT.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/CTGCGGAT.2.fastq
new file mode 100644
index 0000000..d94dbfe
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/CTGCGGAT.2.fastq
@@ -0,0 +1,12 @@
+ at machine1:HiMom:abcdeACXX:1:2101:1102:2221 2:N:0:CTGCGGAT
+ATAACTGACTCTACTCAGTAGATTA
++
+CCCFFFFFHHHHHJJJJJIJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1126:2082 2:N:0:CTGCGGAT
+TCTCTTTCCACCTTGGTCACCTTCC
++
+ at C@DDDFFHHHHHJEGGIHHIJGIH
+ at machine1:HiMom:abcdeACXX:1:2101:1216:2172 2:N:0:CTGCGGAT
+GGACTTCTAGGGGATTTAGCGGGGT
++
+CCCFFFFFHHHHHJJJJJJJJJJJD
diff --git a/testdata/picard/illumina/25T8B25T/fastq/CTGCGGAT.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/CTGCGGAT.barcode_1.fastq
new file mode 100644
index 0000000..92dcd7d
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/CTGCGGAT.barcode_1.fastq
@@ -0,0 +1,12 @@
+ at machine1:HiMom:abcdeACXX:1:2101:1102:2221 :N:0:CTGCGGAT
+CTGCGGAT
++
+CCCFFFFF
+ at machine1:HiMom:abcdeACXX:1:2101:1126:2082 :N:0:CTGCGGAT
+CTGCGGAT
++
+@@@FFFDA
+ at machine1:HiMom:abcdeACXX:1:2101:1216:2172 :N:0:CTGCGGAT
+CAGCGGAT
++
+C at CFFFFF
diff --git a/testdata/picard/illumina/25T8B25T/fastq/CTGTAATC.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/CTGTAATC.1.fastq
new file mode 100644
index 0000000..243a935
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/CTGTAATC.1.fastq
@@ -0,0 +1,24 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1403:2194 1:N:0:CTGTAATC
+CTAAACAGAGAGAAGGTTTCTCTTT
++
+CCCFFFFFHHHHHJJJFHIJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1045:2105 1:Y:0:CTGTAATC
+NTAAAGAGAAATCAAGAATACTATT
++
+#-4@?(@)@@###############
+ at machine1:HiMom:abcdeACXX:1:1201:1483:2126 1:Y:0:CTGTAATC
+NTGATAAGGTGTTGCTATGTTACCC
++
+#1:D?DDDDA??2:<CC4:AEDF>?
+ at machine1:HiMom:abcdeACXX:1:2101:1011:2102 1:N:0:CTGTAATC
+NAAACAAAACTGTAGAACTGTGTAT
++
+#1=DDFFFHHHHHJJIJJJIHHHJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1245:2154 1:N:0:CTGTAATC
+TCGTTAAGTATATTCTTAGGTATTT
++
+CCCFFDFFFHFHHIIJJJJJFJJJI
+ at machine1:HiMom:abcdeACXX:1:2101:1386:2105 1:N:0:CTGTAATC
+NTACTAAAGAAAAAGTTGAAGAACT
++
+#1=DDDFFHHHHHJJGHIJJJJIJJ
diff --git a/testdata/picard/illumina/25T8B25T/fastq/CTGTAATC.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/CTGTAATC.2.fastq
new file mode 100644
index 0000000..f07aa1e
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/CTGTAATC.2.fastq
@@ -0,0 +1,24 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1403:2194 2:N:0:CTGTAATC
+ACATGGTGAAACCCTGTCTCTACTA
++
+CCCFFFDDHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1045:2105 2:Y:0:CTGTAATC
+NTTTTTTTTTTNNTTTTTTTTTTTT
++
+#0;@@@@@@@?##0:????????=<
+ at machine1:HiMom:abcdeACXX:1:1201:1483:2126 2:Y:0:CTGTAATC
+GCATGCAGCTGGGTGCTGTGATGCA
++
+@@@DDDBB<DD8F<<CGG?AA?A<F
+ at machine1:HiMom:abcdeACXX:1:2101:1011:2102 2:N:0:CTGTAATC
+NNNNNTCACACATAATTTTAAAATT
++
+#####22@?@@??@@@@@??@@@@@
+ at machine1:HiMom:abcdeACXX:1:2101:1245:2154 2:N:0:CTGTAATC
+ACCAATCAGTAGCACCACTATACAC
++
+CCCFFFFFHHHHHJJJJJJIJJJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1386:2105 2:N:0:CTGTAATC
+AGGAATTATTCTTCTGCCATAAGGT
++
+B@@DDFFFHGFHHIJJJJJGIGIJH
diff --git a/testdata/picard/illumina/25T8B25T/fastq/CTGTAATC.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/CTGTAATC.barcode_1.fastq
new file mode 100644
index 0000000..152bcc2
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/CTGTAATC.barcode_1.fastq
@@ -0,0 +1,24 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1403:2194 :N:0:CTGTAATC
+CTGTAATC
++
+CCCFFFFF
+ at machine1:HiMom:abcdeACXX:1:1201:1045:2105 :Y:0:CTGTAATC
+CTGTAATC
++
+1112 at A##
+ at machine1:HiMom:abcdeACXX:1:1201:1483:2126 :Y:0:CTGTAATC
+CTGTAATC
++
+ at C<DD:B?
+ at machine1:HiMom:abcdeACXX:1:2101:1011:2102 :N:0:CTGTAATC
+CTGTAATC
++
+C at CFFFFF
+ at machine1:HiMom:abcdeACXX:1:2101:1245:2154 :N:0:CTGTAATC
+CTGTAATC
++
+ at CCFFFFF
+ at machine1:HiMom:abcdeACXX:1:2101:1386:2105 :N:0:CTGTAATC
+CTGTAATC
++
+CCCFFFFF
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GAAAAAAA.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/GAAAAAAA.1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/GAAAAAAA.1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/GAAAAAAA.1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GAAAAAAA.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/GAAAAAAA.2.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/GAAAAAAA.2.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/GAAAAAAA.2.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GAAAAAAA.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/GAAAAAAA.barcode_1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/GAAAAAAA.barcode_1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/GAAAAAAA.barcode_1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GAACGAT..1.fastq b/testdata/picard/illumina/25T8B25T/fastq/GAACGAT..1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/GAACGAT..1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/GAACGAT..1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GAACGAT..2.fastq b/testdata/picard/illumina/25T8B25T/fastq/GAACGAT..2.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/GAACGAT..2.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/GAACGAT..2.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GAACGAT..barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/GAACGAT..barcode_1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/GAACGAT..barcode_1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/GAACGAT..barcode_1.fastq
diff --git a/testdata/picard/illumina/25T8B25T/fastq/GAAGGAAG.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/GAAGGAAG.1.fastq
new file mode 100644
index 0000000..b55be00
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/GAAGGAAG.1.fastq
@@ -0,0 +1,12 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1338:2175 1:N:0:GAAGGAAG
+CCCACCTTCCGGCGGCCGAAGACAC
++
+CCCFFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1028:2202 1:N:0:GAAGGAAG
+NTCCTGGGAAACGGGGCGCGGCTGG
++
+#4BDDDFFHHHHHIJIIJJJJJJIJ
+ at machine1:HiMom:abcdeACXX:1:2101:1084:2188 1:N:0:GAAGGAAG
+TTGCTGCATGGGTTAATTGAGAATA
++
+CCCFFFFFHHHHFHHIIJJIJJJJJ
diff --git a/testdata/picard/illumina/25T8B25T/fastq/GAAGGAAG.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/GAAGGAAG.2.fastq
new file mode 100644
index 0000000..20c71da
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/GAAGGAAG.2.fastq
@@ -0,0 +1,12 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1338:2175 2:N:0:GAAGGAAG
+GCTTGTTGGCTTTAACATCCACAAT
++
+CCCFFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1028:2202 2:N:0:GAAGGAAG
+NNAAACNCNTNNNNNNNGGNNTGNN
++
+##42@?###################
+ at machine1:HiMom:abcdeACXX:1:2101:1084:2188 2:N:0:GAAGGAAG
+TACAAGGTCAAAATCAGCAACAAGT
++
+CCCFFFFDHHHHHJJJJJJJJJJJJ
diff --git a/testdata/picard/illumina/25T8B25T/fastq/GAAGGAAG.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/GAAGGAAG.barcode_1.fastq
new file mode 100644
index 0000000..f38597a
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/GAAGGAAG.barcode_1.fastq
@@ -0,0 +1,12 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1338:2175 :N:0:GAAGGAAG
+GAAGGAAG
++
+CCCFFFFF
+ at machine1:HiMom:abcdeACXX:1:1201:1028:2202 :N:0:GAAGGAAG
+GAAGGAAG
++
+CCCFFDFF
+ at machine1:HiMom:abcdeACXX:1:2101:1084:2188 :N:0:GAAGGAAG
+GAAGGAAG
++
+ at B@FFFFF
diff --git a/testdata/picard/illumina/25T8B25T/fastq/GACCAGGA.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/GACCAGGA.1.fastq
new file mode 100644
index 0000000..41fcefa
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/GACCAGGA.1.fastq
@@ -0,0 +1,28 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1089:2172 1:N:0:GACCAGGA
+TTCCAGCATGCGGTTTAAGTAGGAT
++
+ at CCFDFDBDFBF:<CEBHAFHHICH
+ at machine1:HiMom:abcdeACXX:1:1101:1347:2149 1:N:0:GACCAGGA
+GAGCAGATCGGAAGAGCACAGATCG
++
+@@@FFDDDHHHHHIJJBGGHJIHEG
+ at machine1:HiMom:abcdeACXX:1:1201:1095:2146 1:N:0:GACCAGGA
+GCTGAGTCATGTAGTAAGCCTGTGC
++
+BB at FDDDFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1123:2161 1:Y:0:GACCAGGA
+CACTAACTCCTGACCTCAAATAATC
++
+?7?=DD?DD+CDBE>E at EEF@+<CF
+ at machine1:HiMom:abcdeACXX:1:1201:1439:2156 1:N:0:GACCAGGA
+AGCCGCGAGGTGCTGGCGGACTTCC
++
+:;1BDDDAA88A<?<E1C:D#####
+ at machine1:HiMom:abcdeACXX:1:2101:1207:2084 1:Y:0:GACCAGGA
+NTAGATGACCAAAACTTGCAGGGCA
++
+#1:A<?@A+7A=?CBCCBCCBAAAA
+ at machine1:HiMom:abcdeACXX:1:2101:1312:2105 1:N:0:GACCAGGA
+NTTCCCTCAGGATAGCTGGCGCTCT
++
+#1=DDFFFGHGHHJJJJJJJJJJJJ
diff --git a/testdata/picard/illumina/25T8B25T/fastq/GACCAGGA.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/GACCAGGA.2.fastq
new file mode 100644
index 0000000..46cd249
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/GACCAGGA.2.fastq
@@ -0,0 +1,28 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1089:2172 2:N:0:GACCAGGA
+TCCGGNNNNNNNNNNNNNNNNNNNN
++
+:<<??####################
+ at machine1:HiMom:abcdeACXX:1:1101:1347:2149 2:N:0:GACCAGGA
+GCTCTTCCGATCTGTGCTCTTCCGA
++
+CCCFFFFFDFHHFIJDGIGGHGIGH
+ at machine1:HiMom:abcdeACXX:1:1201:1095:2146 2:N:0:GACCAGGA
+ACTGACAACACCAAATGCTGCTAAG
++
+CCCFFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1123:2161 2:Y:0:GACCAGGA
+CGTGTGCTCTTCCGATCTGCATACA
++
+===AAAA8AAAA<AAA)@CBA9>A#
+ at machine1:HiMom:abcdeACXX:1:1201:1439:2156 2:N:0:GACCAGGA
+GGAGATTATTTGCCTTGAAGTAAGC
++
+-;(22<>>@>8@>8;@#########
+ at machine1:HiMom:abcdeACXX:1:2101:1207:2084 2:Y:0:GACCAGGA
+TCACCACTCTTCTGGGCATCCCCTG
++
+@@@DDEDFHHHHHIJIHHGHGGJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1312:2105 2:N:0:GACCAGGA
+GTTGAGAATAGGTTGAGATCGTTTC
++
+ at CCFFFDFHHFHDHIJJJJJJJIJJ
diff --git a/testdata/picard/illumina/25T8B25T/fastq/GACCAGGA.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/GACCAGGA.barcode_1.fastq
new file mode 100644
index 0000000..3a43c99
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/GACCAGGA.barcode_1.fastq
@@ -0,0 +1,28 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1089:2172 :N:0:GACCAGGA
+GACCAGGA
++
+?@@FF;=B
+ at machine1:HiMom:abcdeACXX:1:1101:1347:2149 :N:0:GACCAGGA
+GACCAGGA
++
+CC at DFFFD
+ at machine1:HiMom:abcdeACXX:1:1201:1095:2146 :N:0:GACCAGGA
+GACCAGGA
++
+CCCFFFFF
+ at machine1:HiMom:abcdeACXX:1:1201:1123:2161 :Y:0:GACCAGGA
+GACCAGGA
++
+?;@DFDFF
+ at machine1:HiMom:abcdeACXX:1:1201:1439:2156 :N:0:GACCAGGA
+GACCAGGC
++
+########
+ at machine1:HiMom:abcdeACXX:1:2101:1207:2084 :Y:0:GACCAGGA
+GACCAGGA
++
+@@CDFFFF
+ at machine1:HiMom:abcdeACXX:1:2101:1312:2105 :N:0:GACCAGGA
+GACCAGGA
++
+CCCFFFFF
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GACCAGGC.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/GACCAGGC.1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/GACCAGGC.1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/GACCAGGC.1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GACCAGGC.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/GACCAGGC.2.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/GACCAGGC.2.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/GACCAGGC.2.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/GACCAGGC.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/GACCAGGC.barcode_1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/GACCAGGC.barcode_1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/GACCAGGC.barcode_1.fastq
diff --git a/testdata/picard/illumina/25T8B25T/fastq/GACCGTTG.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/GACCGTTG.1.fastq
new file mode 100644
index 0000000..2e2beb8
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/GACCGTTG.1.fastq
@@ -0,0 +1,16 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1218:2200 1:N:0:GACCGTTG
+GCACCGGAAGAGCACACAGATCGGA
++
+CCCFFFFDFHGHHJJIJIJJJJJJI
+ at machine1:HiMom:abcdeACXX:1:1101:1257:2223 1:N:0:GACCGTTG
+TGTATTCGAGAGATCAAAGAGAGAG
++
+@@=DDBDD?FFHHEIDBDFCEDBAF
+ at machine1:HiMom:abcdeACXX:1:1201:1180:2119 1:N:0:GACCGTTG
+NTGAAAGATTTAGAGAGCTTACAAA
++
+#1=DDDDDHHHGHJJIIJJJJIJJI
+ at machine1:HiMom:abcdeACXX:1:2101:1036:2087 1:N:0:GACCGTTG
+NTGTAGTTTCTTTAGGCAAATTTGT
++
+#4=BDDDFHHHHHJJJJJJIIJJJI
diff --git a/testdata/picard/illumina/25T8B25T/fastq/GACCGTTG.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/GACCGTTG.2.fastq
new file mode 100644
index 0000000..876a1af
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/GACCGTTG.2.fastq
@@ -0,0 +1,16 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1218:2200 2:N:0:GACCGTTG
+GCTCTTCCGATCTATCTGCTCGTCC
++
+(-(=34???3;@#############
+ at machine1:HiMom:abcdeACXX:1:1101:1257:2223 2:N:0:GACCGTTG
+TGCTCTTCCGATCTTTTAGCAAAGC
++
+:?@DDBDDHFFHDGIGIIJJJGGGI
+ at machine1:HiMom:abcdeACXX:1:1201:1180:2119 2:N:0:GACCGTTG
+GCTCTAAATTTTGCTTTTCTACAGC
++
+CCCFFFFFHHHHHJJJJIJIJJIJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1036:2087 2:N:0:GACCGTTG
+NGTCCACTTACGAAGCAAATACTTT
++
+#4=DDFFFHHHHHJJJJJJJJJJJJ
diff --git a/testdata/picard/illumina/25T8B25T/fastq/GACCGTTG.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/GACCGTTG.barcode_1.fastq
new file mode 100644
index 0000000..fb6bf3f
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/GACCGTTG.barcode_1.fastq
@@ -0,0 +1,16 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1218:2200 :N:0:GACCGTTG
+GACCGTTG
++
+ at CCFFDDF
+ at machine1:HiMom:abcdeACXX:1:1101:1257:2223 :N:0:GACCGTTG
+GACCGTTG
++
+;@@DD=DD
+ at machine1:HiMom:abcdeACXX:1:1201:1180:2119 :N:0:GACCGTTG
+GACCGTTG
++
+CCCFFDFF
+ at machine1:HiMom:abcdeACXX:1:2101:1036:2087 :N:0:GACCGTTG
+GACCGTTG
++
+B at CFFDFF
diff --git a/testdata/picard/illumina/25T8B25T/fastq/GACCTAAC.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/GACCTAAC.1.fastq
new file mode 100644
index 0000000..1f6b7ec
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/GACCTAAC.1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1302:2244 1:N:0:GACCTAAC
+GGAAAAGACGGAAAGGTTCTATCTC
++
+ at C@DFFFDFHHHHJIJHHIJJJJJI
diff --git a/testdata/picard/illumina/25T8B25T/fastq/GACCTAAC.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/GACCTAAC.2.fastq
new file mode 100644
index 0000000..eb26829
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/GACCTAAC.2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1302:2244 2:N:0:GACCTAAC
+TGAATACATATAACAAATGCAAAAA
++
+CCCFFFFFHHHHHJJJJJJJJJJJJ
diff --git a/testdata/picard/illumina/25T8B25T/fastq/GACCTAAC.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/GACCTAAC.barcode_1.fastq
new file mode 100644
index 0000000..17c61fd
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/GACCTAAC.barcode_1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1302:2244 :N:0:GACCTAAC
+GACCTAAC
++
+CCCFFFFF
diff --git a/testdata/picard/illumina/25T8B25T/fastq/GATATCCA.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/GATATCCA.1.fastq
new file mode 100644
index 0000000..eca4c3a
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/GATATCCA.1.fastq
@@ -0,0 +1,12 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1460:2176 1:N:0:GATATCCA
+AGTCCAGGCTGAGCCCAGGGAAGAA
++
+CCCFFFFFHHHHGJIJJIJJHIJJI
+ at machine1:HiMom:abcdeACXX:1:2101:1031:2163 1:N:0:GATATCCA
+NTTTCCATGGCCGTCACCTTTGGGT
++
+#4=DDFFFHHHHHJJJJJJJJJJJI
+ at machine1:HiMom:abcdeACXX:1:2101:1226:2088 1:N:0:GATATCCA
+NGATCGGAAGAGCACACGTTTGACT
++
+#4=DAA=DDFHFHIIBFGHHIG>EG
diff --git a/testdata/picard/illumina/25T8B25T/fastq/GATATCCA.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/GATATCCA.2.fastq
new file mode 100644
index 0000000..33a2b39
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/GATATCCA.2.fastq
@@ -0,0 +1,12 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1460:2176 2:N:0:GATATCCA
+AGGAAAAAGACACAACAAGTCCAAC
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:2101:1031:2163 2:N:0:GATATCCA
+NNACATTTGTCACCACTAGCCACCA
++
+##0<@?@@@@@@@@@@?@@@@@@@?
+ at machine1:HiMom:abcdeACXX:1:2101:1226:2088 2:N:0:GATATCCA
+GCTCTTCCGATCTAGGTAATAGCTA
++
+==?BDFFFDCDDHFFFAFHDHIJGJ
diff --git a/testdata/picard/illumina/25T8B25T/fastq/GATATCCA.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/GATATCCA.barcode_1.fastq
new file mode 100644
index 0000000..d27976c
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/GATATCCA.barcode_1.fastq
@@ -0,0 +1,12 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1460:2176 :N:0:GATATCCA
+GATATCCA
++
+CCCFFFFF
+ at machine1:HiMom:abcdeACXX:1:2101:1031:2163 :N:0:GATATCCA
+GATATCCA
++
+B at BFFFFF
+ at machine1:HiMom:abcdeACXX:1:2101:1226:2088 :N:0:GATATCCA
+GATATCCA
++
+@@@:DDDD
diff --git a/testdata/picard/illumina/25T8B25T/fastq/GCCGTCGA.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/GCCGTCGA.1.fastq
new file mode 100644
index 0000000..3b50e29
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/GCCGTCGA.1.fastq
@@ -0,0 +1,20 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1111:2148 1:N:0:GCCGTCGA
+GTGGAGACCACCTCCGAGGCCTTGT
++
+BBCFFFFFHHHHHJJJIJJJJJJJI
+ at machine1:HiMom:abcdeACXX:1:1101:1221:2143 1:N:0:GCCGTCGA
+TTTGGTGGAAATTTTTTGTTATGAT
++
+CCCFFBDBHFD?FBFHIIGGIC at EF
+ at machine1:HiMom:abcdeACXX:1:1101:1327:2200 1:Y:0:GCCGTCGA
+AGGGGGATCCGCCGGGGGACCACAA
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:2101:1122:2136 1:N:0:GCCGTCGA
+GTAGGCGCTCAGCAAATACTTGTCG
++
+@@@DDDD8?<CACEHHBBHDAAFH@
+ at machine1:HiMom:abcdeACXX:1:2101:1459:2083 1:N:0:GCCGTCGA
+NCACACGCCACACGGAGCACACTTT
++
+#4=DDFFFHHHHHJJJJJJJJIIJJ
diff --git a/testdata/picard/illumina/25T8B25T/fastq/GCCGTCGA.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/GCCGTCGA.2.fastq
new file mode 100644
index 0000000..60f033c
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/GCCGTCGA.2.fastq
@@ -0,0 +1,20 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1111:2148 2:N:0:GCCGTCGA
+GCGAANANNNNNNNNNNGGACGACN
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1101:1221:2143 2:N:0:GCCGTCGA
+CAATTGAATGTCTGCACAGCCGCTT
++
+@@@FFFFDHHHHHJJJIIIJGHIJJ
+ at machine1:HiMom:abcdeACXX:1:1101:1327:2200 2:Y:0:GCCGTCGA
+GTCATCTGGGCTGTCGACAGGTGTC
++
+ at B@FFFFFHHHHGIJJJJJJIFHHI
+ at machine1:HiMom:abcdeACXX:1:2101:1122:2136 2:N:0:GCCGTCGA
+CTTGCCAGCCTGCAGGCCCCGCGGC
++
+???BBAABDD?DDIID)A:3<EADD
+ at machine1:HiMom:abcdeACXX:1:2101:1459:2083 2:N:0:GCCGTCGA
+ATTTCACCAAAATAATCAGAAGGCC
++
+CCCFFFFDBHGHHIGGIJFJJGGFH
diff --git a/testdata/picard/illumina/25T8B25T/fastq/GCCGTCGA.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/GCCGTCGA.barcode_1.fastq
new file mode 100644
index 0000000..9b4fd3a
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/GCCGTCGA.barcode_1.fastq
@@ -0,0 +1,20 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1111:2148 :N:0:GCCGTCGA
+GCCGTCGA
++
+CCCFFFFF
+ at machine1:HiMom:abcdeACXX:1:1101:1221:2143 :N:0:GCCGTCGA
+GCCGTCGA
++
+@@CDDDDF
+ at machine1:HiMom:abcdeACXX:1:1101:1327:2200 :Y:0:GCCGTCGA
+GCCGTCGA
++
+BCCFDFFD
+ at machine1:HiMom:abcdeACXX:1:2101:1122:2136 :N:0:GCCGTCGA
+GCCGTCGA
++
+?@<DDDD?
+ at machine1:HiMom:abcdeACXX:1:2101:1459:2083 :N:0:GCCGTCGA
+GCCGTCGA
++
+@@CFDDFD
diff --git a/testdata/picard/illumina/25T8B25T/fastq/GCCTAGCC.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/GCCTAGCC.1.fastq
new file mode 100644
index 0000000..3c181dd
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/GCCTAGCC.1.fastq
@@ -0,0 +1,20 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1165:2239 1:N:0:GCCTAGCC
+GGCGGAGGCAGCATTTCAGCTGTGA
++
+CCCFFDFFHHHHHIJJIGHHHJHHF
+ at machine1:HiMom:abcdeACXX:1:1101:1290:2225 1:N:0:GCCTAGCC
+CTTGGGCGCATGGTGAGGGAGGGAG
++
+@@@FFDDFHDFH??CBEBHHIGDCD
+ at machine1:HiMom:abcdeACXX:1:1201:1280:2179 1:N:0:GCCTAGCC
+TTCAAGGAATCGTCCTGCCTCAGCC
++
+BCCFFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1300:2137 1:N:0:GCCTAGCC
+NTGTAATCCCAGCTCTCAGGGAGGC
++
+#1=ADDDDDDDBBA?@AE?E at FE8;
+ at machine1:HiMom:abcdeACXX:1:2101:1023:2237 1:Y:0:GCCTAGCC
+NTAAACAGCTTCTGCACAGCCAAAG
++
+#00@@?>=39>9;<412@?######
diff --git a/testdata/picard/illumina/25T8B25T/fastq/GCCTAGCC.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/GCCTAGCC.2.fastq
new file mode 100644
index 0000000..adc1c15
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/GCCTAGCC.2.fastq
@@ -0,0 +1,20 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1165:2239 2:N:0:GCCTAGCC
+ATGGAAGTCGAGACAGAAGTGAGAA
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1101:1290:2225 2:N:0:GCCTAGCC
+TCAGTTCACTGGCAAAGACAGTCAC
++
+C@@FBEDDFHFHGIIICEHGDHBHE
+ at machine1:HiMom:abcdeACXX:1:1201:1280:2179 2:N:0:GCCTAGCC
+GAGGACTGCTTGAGTCCAGGAGTTC
++
+@@BFFDEFGHHHHIFGCHIJJJGGI
+ at machine1:HiMom:abcdeACXX:1:1201:1300:2137 2:N:0:GCCTAGCC
+GCTCTTCCGATCTTTTTTTTAATTT
++
+@@?DDDDDFDHADEHGIGGED3?FD
+ at machine1:HiMom:abcdeACXX:1:2101:1023:2237 2:Y:0:GCCTAGCC
+NNTTTGTTTGAGTTCCTTGTAGATT
++
+##0:=@?>?@???@:>?@??>?;?<
diff --git a/testdata/picard/illumina/25T8B25T/fastq/GCCTAGCC.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/GCCTAGCC.barcode_1.fastq
new file mode 100644
index 0000000..9920e3b
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/GCCTAGCC.barcode_1.fastq
@@ -0,0 +1,20 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1165:2239 :N:0:GCCTAGCC
+GCCTAGCC
++
+B@@DFFFF
+ at machine1:HiMom:abcdeACXX:1:1101:1290:2225 :N:0:GCCTAGCC
+GCCTAGCC
++
+?<@DFBBD
+ at machine1:HiMom:abcdeACXX:1:1201:1280:2179 :N:0:GCCTAGCC
+GCCTAGCC
++
+BCCFFFFF
+ at machine1:HiMom:abcdeACXX:1:1201:1300:2137 :N:0:GCCTAGCC
+GCCTAGCC
++
+8?84B23?
+ at machine1:HiMom:abcdeACXX:1:2101:1023:2237 :Y:0:GCCTAGCC
+GCCTAGCC
++
+########
diff --git a/testdata/picard/illumina/25T8B25T/fastq/GTAACATC.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/GTAACATC.1.fastq
new file mode 100644
index 0000000..ad39be4
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/GTAACATC.1.fastq
@@ -0,0 +1,8 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1188:2237 1:N:0:GTAACATC
+TCCCCCTCCCTTTTGCGCACACACC
++
+@?@DDADDHDHBDH<EFHIIHG?HF
+ at machine1:HiMom:abcdeACXX:1:2101:1208:2231 1:Y:0:GTAACATC
+TCACTAAACATCCAAACATCACTTT
++
+#########################
diff --git a/testdata/picard/illumina/25T8B25T/fastq/GTAACATC.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/GTAACATC.2.fastq
new file mode 100644
index 0000000..a22dcdf
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/GTAACATC.2.fastq
@@ -0,0 +1,8 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1188:2237 2:N:0:GTAACATC
+GCTTCCTTCAAGACAGAAGTGAGAA
++
+CCCFFDDEFHHFFE at FDHHAIAFHG
+ at machine1:HiMom:abcdeACXX:1:2101:1208:2231 2:Y:0:GTAACATC
+CTTTTTTTTTTTTTTTTTTTTTTTT
++
+CCCFFFFFHHHHHJJJHFDDDDDDD
diff --git a/testdata/picard/illumina/25T8B25T/fastq/GTAACATC.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/GTAACATC.barcode_1.fastq
new file mode 100644
index 0000000..e43e83f
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/GTAACATC.barcode_1.fastq
@@ -0,0 +1,8 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1188:2237 :N:0:GTAACATC
+GTAACATC
++
+@@?DFFDF
+ at machine1:HiMom:abcdeACXX:1:2101:1208:2231 :Y:0:GTAACATC
+GTAACATC
++
+1+:A1A22
diff --git a/testdata/picard/illumina/25T8B25T/fastq/GTCCACAG.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/GTCCACAG.1.fastq
new file mode 100644
index 0000000..b48b617
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/GTCCACAG.1.fastq
@@ -0,0 +1,8 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1069:2159 1:N:0:GTCCACAG
+TCCCTTACCATCAAATCAATTGNCC
++
+CCCFFFFFHHHHHJJJJJJJJJ#3A
+ at machine1:HiMom:abcdeACXX:1:1201:1486:2109 1:N:0:GTCCACAG
+NCACCTCCTAGCCCCTCACTTCTGT
++
+#1=B;BDDHHHGFIIIIIIIIIGGG
diff --git a/testdata/picard/illumina/25T8B25T/fastq/GTCCACAG.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/GTCCACAG.2.fastq
new file mode 100644
index 0000000..5c3d1b5
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/GTCCACAG.2.fastq
@@ -0,0 +1,8 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1069:2159 2:N:0:GTCCACAG
+GACGTNNNNNNNNNNNNNNNNNNNN
++
+<<<@?####################
+ at machine1:HiMom:abcdeACXX:1:1201:1486:2109 2:N:0:GTCCACAG
+ACGTGTGCTCTTCCCGATCTGTATA
++
+CCCFF?DDFBHHHJJIIDHJIJJJH
diff --git a/testdata/picard/illumina/25T8B25T/fastq/GTCCACAG.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/GTCCACAG.barcode_1.fastq
new file mode 100644
index 0000000..8a71cab
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/GTCCACAG.barcode_1.fastq
@@ -0,0 +1,8 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1069:2159 :N:0:GTCCACAG
+GTCCACAG
++
+ at BBFFFFF
+ at machine1:HiMom:abcdeACXX:1:1201:1486:2109 :N:0:GTCCACAG
+GTCCACAG
++
+CCCFFFFD
diff --git a/testdata/picard/illumina/25T8B25T/fastq/N.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/N.1.fastq
new file mode 100644
index 0000000..aef9f77
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/N.1.fastq
@@ -0,0 +1,64 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1031:2224 1:Y:0:
+NAATANNNNNNNNNNNNTNNNNNNN
++
+#0;@@####################
+ at machine1:HiMom:abcdeACXX:1:1101:1039:2147 1:Y:0:
+NCCAANGNNGGNNNNATGTAANNNN
++
+#4;@@#4##2<####43@@@@####
+ at machine1:HiMom:abcdeACXX:1:1101:1046:2175 1:Y:0:
+NTGCCNGNGTTNCGNGGTCTTNNNN
++
+#4;@@####################
+ at machine1:HiMom:abcdeACXX:1:1101:1047:2122 1:Y:0:
+NCTAANGNACTNTGNGTGTGCNNNN
++
+#0;@@#4#3@@#3@#2<@@@@####
+ at machine1:HiMom:abcdeACXX:1:1101:1048:2197 1:Y:0:
+NCTCCNGNTCANCANGTGGAGNNNN
++
+#0;?@####################
+ at machine1:HiMom:abcdeACXX:1:1101:1065:2193 1:N:0:
+GAAGTACGCCCTGCCCCTGGTTNGC
++
+?@@DAADAHHFHBEBEGGHG?####
+ at machine1:HiMom:abcdeACXX:1:1101:1162:2207 1:Y:0:
+ACCTTGAGGAGAACATAAGAGCAAA
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1201:1159:2179 1:Y:0:
+GTTAGCACAGATATTGGATGAGTGA
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1201:1414:2174 1:Y:0:
+GCCAAAAAAAAGAACCAGCCCAAGG
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:2101:1040:2208 1:Y:0:
+NATGCCCACCTCCCTCCTACGCACC
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:2101:1059:2083 1:N:0:
+NAAGAGGGGTCAAGAGTTAAACTTA
++
+#1=DDFFFHFHHGIGHGHJJJJJJI
+ at machine1:HiMom:abcdeACXX:1:2101:1143:2137 1:N:0:
+ATGCAGCAGCTGCCACGGAGCACCA
++
+CC at FFDFDFHFHHGIDHEHIGJJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1151:2182 1:Y:0:
+TTGTTTTGGCTTATAATGACAAGAA
++
+;;8-2).2())(<6=@8;?4??>>?
+ at machine1:HiMom:abcdeACXX:1:2101:1215:2110 1:N:0:
+NAATATAATTTGGAGACCCTTTGTT
++
+#1=DDDDDEDDDDIDDBB3ABAB##
+ at machine1:HiMom:abcdeACXX:1:2101:1285:2105 1:Y:0:
+NGCGGGGAGCCGGGCGTGGAATGCG
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:2101:1450:2134 1:N:0:
+AGCACGCTGCCGCGGGACCTGCCCA
++
+?@@AD at DDHFH?DGIIIIG at FGFBF
diff --git a/testdata/picard/illumina/25T8B25T/fastq/N.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/N.2.fastq
new file mode 100644
index 0000000..f044a63
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/N.2.fastq
@@ -0,0 +1,64 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1031:2224 2:Y:0:
+NNNNNNNNNNNNNNNNNNNNNNNNN
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1101:1039:2147 2:Y:0:
+NNNNNNNNNNNNNNNNNNNNNNNNN
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1101:1046:2175 2:Y:0:
+NNGGANNNNNNNNNNNNNNNNNNNN
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1101:1047:2122 2:Y:0:
+NNTCANNNNNNNNNNNNNNNNNNNN
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1101:1048:2197 2:Y:0:
+NNGTGNNNNNNNNNNNNNNNNNNNN
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1101:1065:2193 2:N:0:
+NCTTGNNNNNNNNNNNNNNNNNNNN
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1101:1162:2207 2:Y:0:
+TAAAACTGGGGAAGTTAGAGGAATG
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1201:1159:2179 2:Y:0:
+TTTTTTTTTATTTTTCTAAATACTT
++
+===AA####################
+ at machine1:HiMom:abcdeACXX:1:1201:1414:2174 2:Y:0:
+TTTTTTTTTTTTTTTTTTTTTTTTT
++
+@;@1BDADF????FFEB>B6=BBBB
+ at machine1:HiMom:abcdeACXX:1:2101:1040:2208 2:Y:0:
+NCTGATAGTCACTGAAATGAATTCA
++
+#-0=>(2 at .22@@############
+ at machine1:HiMom:abcdeACXX:1:2101:1059:2083 2:N:0:
+NGAATGTCTTAGAAGGATGCTTCTC
++
+#1=BDDDEHHGHHJJJJJIJJIIJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1143:2137 2:N:0:
+GCTCTTCAGATCTAGGGGGAACAGC
++
+@@@DD?=DCAFFFHIIDG:EFHIII
+ at machine1:HiMom:abcdeACXX:1:2101:1151:2182 2:Y:0:
+TTTTTTTTTTTTTTTTTTTTTTTTA
++
+9<<?@?@;5=?##############
+ at machine1:HiMom:abcdeACXX:1:2101:1215:2110 2:N:0:
+ATCTTTCCCCCATTAAGAACAGCAA
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:2101:1285:2105 2:Y:0:
+TGTCTATATCAACCAACACCTCTTC
++
+-(0(():94:9:???##########
+ at machine1:HiMom:abcdeACXX:1:2101:1450:2134 2:N:0:
+ACAAACCCTTGTGTCGAGGGCTGAC
++
+CC at FDFDFFDFHFGIIE1CGGHBGE
diff --git a/testdata/picard/illumina/25T8B25T/fastq/N.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/N.barcode_1.fastq
new file mode 100644
index 0000000..f9b35e3
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/N.barcode_1.fastq
@@ -0,0 +1,64 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1031:2224 :Y:0:
+NNNNNNNN
++
+########
+ at machine1:HiMom:abcdeACXX:1:1101:1039:2147 :Y:0:
+NNNNNNNN
++
+########
+ at machine1:HiMom:abcdeACXX:1:1101:1046:2175 :Y:0:
+NNNNNNNN
++
+########
+ at machine1:HiMom:abcdeACXX:1:1101:1047:2122 :Y:0:
+NNNANNNN
++
+########
+ at machine1:HiMom:abcdeACXX:1:1101:1048:2197 :Y:0:
+NNNCNNNN
++
+########
+ at machine1:HiMom:abcdeACXX:1:1101:1065:2193 :N:0:
+GAACGATN
++
+########
+ at machine1:HiMom:abcdeACXX:1:1101:1162:2207 :Y:0:
+ACAAAATT
++
+########
+ at machine1:HiMom:abcdeACXX:1:1201:1159:2179 :Y:0:
+AAAAAAAA
++
+########
+ at machine1:HiMom:abcdeACXX:1:1201:1414:2174 :Y:0:
+AGAAAAGA
++
+########
+ at machine1:HiMom:abcdeACXX:1:2101:1040:2208 :Y:0:
+ACGAAATC
++
+########
+ at machine1:HiMom:abcdeACXX:1:2101:1059:2083 :N:0:
+TACCGTCT
++
+1:?D####
+ at machine1:HiMom:abcdeACXX:1:2101:1143:2137 :N:0:
+TCCGTCTA
++
+########
+ at machine1:HiMom:abcdeACXX:1:2101:1151:2182 :Y:0:
+GAAAAAAA
++
+########
+ at machine1:HiMom:abcdeACXX:1:2101:1215:2110 :N:0:
+AAAAGAAG
++
+########
+ at machine1:HiMom:abcdeACXX:1:2101:1285:2105 :Y:0:
+TATCTCGG
++
+########
+ at machine1:HiMom:abcdeACXX:1:2101:1450:2134 :N:0:
+ACCAGTTG
++
+ at C@DDDB?
diff --git a/testdata/picard/illumina/25T8B25T/fastq/TAAGCACA.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/TAAGCACA.1.fastq
new file mode 100644
index 0000000..11586af
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/TAAGCACA.1.fastq
@@ -0,0 +1,8 @@
+ at machine1:HiMom:abcdeACXX:1:1201:1064:2239 1:N:0:TAAGCACA
+CATGCAGCGCAAGTAGGTCTACAAG
++
+@@;DFAFFHHHHAHEGHFDGGFABG
+ at machine1:HiMom:abcdeACXX:1:2101:1258:2092 1:N:0:TAAGCACA
+NCACACACACACTCATTCACAGCTT
++
+#1=DDDFFHHHFHJJIJGGGIIGIJ
diff --git a/testdata/picard/illumina/25T8B25T/fastq/TAAGCACA.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/TAAGCACA.2.fastq
new file mode 100644
index 0000000..e1d510b
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/TAAGCACA.2.fastq
@@ -0,0 +1,8 @@
+ at machine1:HiMom:abcdeACXX:1:1201:1064:2239 2:N:0:TAAGCACA
+GGGATGGGAGGGCGATGAGGACTAG
++
+8?@:DDDACC:FHHGIH<EGDDDFH
+ at machine1:HiMom:abcdeACXX:1:2101:1258:2092 2:N:0:TAAGCACA
+TTAGACAAAACACCAAAATAAAATA
++
+#########################
diff --git a/testdata/picard/illumina/25T8B25T/fastq/TAAGCACA.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/TAAGCACA.barcode_1.fastq
new file mode 100644
index 0000000..c09def6
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/TAAGCACA.barcode_1.fastq
@@ -0,0 +1,8 @@
+ at machine1:HiMom:abcdeACXX:1:1201:1064:2239 :N:0:TAAGCACA
+TAAGCACA
++
+@@@FFADB
+ at machine1:HiMom:abcdeACXX:1:2101:1258:2092 :N:0:TAAGCACA
+TAAGCACA
++
+@@CDDFFF
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TACCGTCT.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/TACCGTCT.1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/TACCGTCT.1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/TACCGTCT.1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TACCGTCT.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/TACCGTCT.2.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/TACCGTCT.2.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/TACCGTCT.2.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TACCGTCT.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/TACCGTCT.barcode_1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/TACCGTCT.barcode_1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/TACCGTCT.barcode_1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TAGCGGTA.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/TAGCGGTA.1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/TAGCGGTA.1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/TAGCGGTA.1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TAGCGGTA.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/TAGCGGTA.2.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/TAGCGGTA.2.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/TAGCGGTA.2.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TAGCGGTA.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/TAGCGGTA.barcode_1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/TAGCGGTA.barcode_1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/TAGCGGTA.barcode_1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TATCAGCC.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/TATCAGCC.1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/TATCAGCC.1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/TATCAGCC.1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TATCAGCC.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/TATCAGCC.2.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/TATCAGCC.2.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/TATCAGCC.2.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TATCAGCC.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/TATCAGCC.barcode_1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/TATCAGCC.barcode_1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/TATCAGCC.barcode_1.fastq
diff --git a/testdata/picard/illumina/25T8B25T/fastq/TATCCAGG.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/TATCCAGG.1.fastq
new file mode 100644
index 0000000..db9ec5c
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/TATCCAGG.1.fastq
@@ -0,0 +1,16 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1071:2233 1:N:0:TATCCAGG
+TTTGACAGTCTCTGAATGAGAANGG
++
+CCCFFFFFHHHHHJIIIJJJIJ#4A
+ at machine1:HiMom:abcdeACXX:1:1201:1140:2125 1:N:0:TATCCAGG
+NTTTCAGTTCAGAGAACTGCAGAAT
++
+#1=DBDFDHHHHGJIJJJJJIIIJI
+ at machine1:HiMom:abcdeACXX:1:1201:1236:2187 1:N:0:TATCCAGG
+TTTAAATGGGTAAGAAGCCCGGCTC
++
+ at BCDDFEFHHDHHJJJJJIJJIJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1133:2239 1:N:0:TATCCAGG
+AGACAGAAGTACGGGAAGGCGAAGA
++
+@@@FFFFEHFHHHJJCGDHIIECD@
diff --git a/testdata/picard/illumina/25T8B25T/fastq/TATCCAGG.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/TATCCAGG.2.fastq
new file mode 100644
index 0000000..3cb85ea
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/TATCCAGG.2.fastq
@@ -0,0 +1,16 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1071:2233 2:N:0:TATCCAGG
+GTTTGNNNNNNNNNNNNNNNNNNNN
++
+<<<@@####################
+ at machine1:HiMom:abcdeACXX:1:1201:1140:2125 2:N:0:TATCCAGG
+TTCATAAATTGGTCTTAGATGTTGC
++
+CC at FFFFFHHHHFGIJIIIJIJIJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1236:2187 2:N:0:TATCCAGG
+CTCCTTAGCGGATTCCGACTTCCAT
++
+CCCFFFFDHHHHGIJJIGIGIJJGG
+ at machine1:HiMom:abcdeACXX:1:2101:1133:2239 2:N:0:TATCCAGG
+AGCTTTTTGTTTCCTAGCTTGTCTT
++
+?@?DDFFFHHHHF4ACFHIJHHHGH
diff --git a/testdata/picard/illumina/25T8B25T/fastq/TATCCAGG.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/TATCCAGG.barcode_1.fastq
new file mode 100644
index 0000000..743cd5c
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/TATCCAGG.barcode_1.fastq
@@ -0,0 +1,16 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1071:2233 :N:0:TATCCAGG
+TATCCAGG
++
+CCCFFFFF
+ at machine1:HiMom:abcdeACXX:1:1201:1140:2125 :N:0:TATCCAGG
+TATCCAGG
++
+CCCFFFFF
+ at machine1:HiMom:abcdeACXX:1:1201:1236:2187 :N:0:TATCCAGG
+TATCCAGG
++
+@@BFFFFF
+ at machine1:HiMom:abcdeACXX:1:2101:1133:2239 :N:0:TATCCAGG
+TATCCATG
++
+@@@BDDDF
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TATCCATG.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/TATCCATG.1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/TATCCATG.1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/TATCCATG.1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TATCCATG.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/TATCCATG.2.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/TATCCATG.2.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/TATCCATG.2.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TATCCATG.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/TATCCATG.barcode_1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/TATCCATG.barcode_1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/TATCCATG.barcode_1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TATCTCGG.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/TATCTCGG.1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/TATCTCGG.1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/TATCTCGG.1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TATCTCGG.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/TATCTCGG.2.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/TATCTCGG.2.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/TATCTCGG.2.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TATCTCGG.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/TATCTCGG.barcode_1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/TATCTCGG.barcode_1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/TATCTCGG.barcode_1.fastq
diff --git a/testdata/picard/illumina/25T8B25T/fastq/TATCTGCC.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/TATCTGCC.1.fastq
new file mode 100644
index 0000000..2635d7d
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/TATCTGCC.1.fastq
@@ -0,0 +1,28 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1267:2209 1:N:0:TATCTGCC
+GAGACGGAGGCCAACGGGGGCCTGG
++
+@@CFFFFD8FDHFHIGIBG?@BCDG
+ at machine1:HiMom:abcdeACXX:1:1101:1353:2226 1:N:0:TATCTGCC
+TTGCTTGTCTGTAAAGTATTTTATT
++
+ at C@DDFFDHHFHFHHIBGG>IHHII
+ at machine1:HiMom:abcdeACXX:1:1101:1435:2194 1:N:0:TATCTGCC
+GAGAAAGAACATGACTACAGAGATG
++
+CCCFFFFFHHHHHJJJJJJJJJHJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1084:2204 1:N:0:TATCTGCC
+GGCCCGTGGACGCCGCCGAAGAAGC
++
+CCCFFFFFHHHHHJJJJJIJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1142:2242 1:N:0:TATCTGCC
+TGTTGATAGTCCTTCTTATCTTAGT
++
+???DB?==CC2<AC:CC<CFEF<FF
+ at machine1:HiMom:abcdeACXX:1:1201:1187:2100 1:N:0:TATCTGCC
+NGCGGTAATTCCAGCTCCAATAGCG
++
+#1:BB2 at DHHFHHIIIIHHIIGHGG
+ at machine1:HiMom:abcdeACXX:1:1201:1392:2109 1:N:0:TATCTGCC
+NCTGAAGAGGCCAAAGCGCCCTCCA
++
+#1=DDFFFHHHHHJJJJJJJJJJJI
diff --git a/testdata/picard/illumina/25T8B25T/fastq/TATCTGCC.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/TATCTGCC.2.fastq
new file mode 100644
index 0000000..4d90e31
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/TATCTGCC.2.fastq
@@ -0,0 +1,28 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1267:2209 2:N:0:TATCTGCC
+GGCAGAGTCTCCAACAGCCCCGTAC
++
+=;?DDDD?CCFHAIIIGGIIGE at EG
+ at machine1:HiMom:abcdeACXX:1:1101:1353:2226 2:N:0:TATCTGCC
+GTGCTCTTCCGATCTTCAGGTTACC
++
+BBBFFFFFHHHHHJJJJJJJIJJJJ
+ at machine1:HiMom:abcdeACXX:1:1101:1435:2194 2:N:0:TATCTGCC
+TTTTGTTTTCTTTTACTGAAGTGTA
++
+CCCFFDFFHHHHHJJJJIHIJHHHJ
+ at machine1:HiMom:abcdeACXX:1:1201:1084:2204 2:N:0:TATCTGCC
+TGGCTCCTCAGGCTCTCATCAGTTG
++
+CCCFFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1142:2242 2:N:0:TATCTGCC
+GTAAAATGTAAAATAATAAAAAATG
++
+?=?DDDD;AF<DF<FFFFIIIFF@<
+ at machine1:HiMom:abcdeACXX:1:1201:1187:2100 2:N:0:TATCTGCC
+AAAAAAGAGCCCGCATTGCCGAGAC
++
+=<=;AA###################
+ at machine1:HiMom:abcdeACXX:1:1201:1392:2109 2:N:0:TATCTGCC
+GTCAGACAGGGGGATTTGGGCTGTG
++
+BBCFFFFFHHHHHHJJJHIJIJJJJ
diff --git a/testdata/picard/illumina/25T8B25T/fastq/TATCTGCC.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/TATCTGCC.barcode_1.fastq
new file mode 100644
index 0000000..f396a3e
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/TATCTGCC.barcode_1.fastq
@@ -0,0 +1,28 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1267:2209 :N:0:TATCTGCC
+TATCAGCC
++
+?@@D;ADD
+ at machine1:HiMom:abcdeACXX:1:1101:1353:2226 :N:0:TATCTGCC
+TATCTGCC
++
+ at B@FFEFF
+ at machine1:HiMom:abcdeACXX:1:1101:1435:2194 :N:0:TATCTGCC
+TATCTGCC
++
+CCCFFFFF
+ at machine1:HiMom:abcdeACXX:1:1201:1084:2204 :N:0:TATCTGCC
+TATCTGCC
++
+CCCFFFFF
+ at machine1:HiMom:abcdeACXX:1:1201:1142:2242 :N:0:TATCTGCC
+TATCTGCC
++
+??<D?D83
+ at machine1:HiMom:abcdeACXX:1:1201:1187:2100 :N:0:TATCTGCC
+TATCTGCC
++
+CCCFFFFF
+ at machine1:HiMom:abcdeACXX:1:1201:1392:2109 :N:0:TATCTGCC
+TATCTGCC
++
+CCCDF?DD
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TCCGTCTA.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/TCCGTCTA.1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/TCCGTCTA.1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/TCCGTCTA.1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TCCGTCTA.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/TCCGTCTA.2.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/TCCGTCTA.2.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/TCCGTCTA.2.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/TCCGTCTA.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/TCCGTCTA.barcode_1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/TCCGTCTA.barcode_1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/TCCGTCTA.barcode_1.fastq
diff --git a/testdata/picard/illumina/25T8B25T/fastq/TCGCTAGA.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/TCGCTAGA.1.fastq
new file mode 100644
index 0000000..25c9e17
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/TCGCTAGA.1.fastq
@@ -0,0 +1,20 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1143:2192 1:N:0:TCGCTAGA
+GGAGCGAGTCTGGGTCTCAGCCCCG
++
+CCCFFFFFHHHHHJGHIIIHJJJJI
+ at machine1:HiMom:abcdeACXX:1:1101:1479:2221 1:N:0:TCGCTAGA
+TGTAAAGTATGCTGGCTCAGTGTAT
++
+BBBFDFFEHHHHHJJJJJJJIJHJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1312:2112 1:N:0:TCGCTAGA
+NTCCCAGCGAACCCGCGTGCAACCT
++
+#1=DFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1416:2128 1:N:0:TCGCTAGA
+NACAGGCGTGGAGGAGGCGGCGGCC
++
+#4=DDDFFHHHHHJIGJHFHHFFED
+ at machine1:HiMom:abcdeACXX:1:2101:1064:2242 1:N:0:TCGCTAGA
+ATGAACAAAGGAAGAATTATGCACG
++
+?;?D;DDDF?;:+<<CFFCHE433A
diff --git a/testdata/picard/illumina/25T8B25T/fastq/TCGCTAGA.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/TCGCTAGA.2.fastq
new file mode 100644
index 0000000..b8a3f3e
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/TCGCTAGA.2.fastq
@@ -0,0 +1,20 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1143:2192 2:N:0:TCGCTAGA
+CGACAAGTCTGGCTTATCACTCATC
++
+CCCFFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1101:1479:2221 2:N:0:TCGCTAGA
+GGGGAAATCTATTTTTATGTAAAAA
++
+ at CCFFFFFHHHHHJIGIJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1312:2112 2:N:0:TCGCTAGA
+ATTTGCAGGAGCCGGCGCAGGTGCA
++
+CCCFFFFFHHHHHJJJIJJJJGHIJ
+ at machine1:HiMom:abcdeACXX:1:1201:1416:2128 2:N:0:TCGCTAGA
+TTGGTGTGGAGGCGGTGGCGGGATC
++
+@@@DDDDDHHFHHII:?GGHIIB6?
+ at machine1:HiMom:abcdeACXX:1:2101:1064:2242 2:N:0:TCGCTAGA
+NGGAAAAAGGTTGTCAAGCGTTAAA
++
+#########################
diff --git a/testdata/picard/illumina/25T8B25T/fastq/TCGCTAGA.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/TCGCTAGA.barcode_1.fastq
new file mode 100644
index 0000000..77b869b
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/TCGCTAGA.barcode_1.fastq
@@ -0,0 +1,20 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1143:2192 :N:0:TCGCTAGA
+TCGCTAGA
++
+CCCFFFFF
+ at machine1:HiMom:abcdeACXX:1:1101:1479:2221 :N:0:TCGCTAGA
+TCGCTAGA
++
+ at BCFFFFF
+ at machine1:HiMom:abcdeACXX:1:1201:1312:2112 :N:0:TCGCTAGA
+TCGCTAGA
++
+CCCFFFFF
+ at machine1:HiMom:abcdeACXX:1:1201:1416:2128 :N:0:TCGCTAGA
+TCGCTAGA
++
+CCCFFFFF
+ at machine1:HiMom:abcdeACXX:1:2101:1064:2242 :N:0:TCGCTAGA
+TCGCTAGA
++
+;@<:AA at A
diff --git a/testdata/picard/illumina/25T8B25T/fastq/TCTGCAAG.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/TCTGCAAG.1.fastq
new file mode 100644
index 0000000..2b9e8b0
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/TCTGCAAG.1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1201:1042:2174 1:N:0:TCTGCAAG
+NGTTGGTGTCTTCATTTTATGTATA
++
+#1=DDFDFHHHHHJIJJJHIJHIJJ
diff --git a/testdata/picard/illumina/25T8B25T/fastq/TCTGCAAG.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/TCTGCAAG.2.fastq
new file mode 100644
index 0000000..0bb18cc
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/TCTGCAAG.2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1201:1042:2174 2:N:0:TCTGCAAG
+NTCAGGAAGGCNNCAAAAAAAGAAA
++
+#0;@@@?@?<@##3<@@?@@?????
diff --git a/testdata/picard/illumina/25T8B25T/fastq/TCTGCAAG.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/TCTGCAAG.barcode_1.fastq
new file mode 100644
index 0000000..5f73cc8
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/TCTGCAAG.barcode_1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1201:1042:2174 :N:0:TCTGCAAG
+TCTGCAAG
++
+CCCFFFFF
diff --git a/testdata/picard/illumina/25T8B25T/fastq/TGCAAGTA.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/TGCAAGTA.1.fastq
new file mode 100644
index 0000000..45daf27
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/TGCAAGTA.1.fastq
@@ -0,0 +1,8 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1242:2170 1:N:0:TGCAAGTA
+ATGGCAGGGCAGAGTTCTGATGAGT
++
+CCCFFFFFHHGGGIFHEIIGIIII?
+ at machine1:HiMom:abcdeACXX:1:2101:1163:2222 1:N:0:TGCAAGTA
+GAGCAGGCAAGGAGGACTTCTTGTT
++
+CCCFFFFFGHHHHJJHHIJJJJJIJ
diff --git a/testdata/picard/illumina/25T8B25T/fastq/TGCAAGTA.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/TGCAAGTA.2.fastq
new file mode 100644
index 0000000..3b8cc58
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/TGCAAGTA.2.fastq
@@ -0,0 +1,8 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1242:2170 2:N:0:TGCAAGTA
+GGAAGGAAAAGAAGCACAAGTACAT
++
+@@@DFDFFHHHGHHGIIGJJEHHIG
+ at machine1:HiMom:abcdeACXX:1:2101:1163:2222 2:N:0:TGCAAGTA
+GAGCGATAATGGTTCTTTTCCTCAC
++
+@@@DFFFFHHHHHJJJJJJJIJJJJ
diff --git a/testdata/picard/illumina/25T8B25T/fastq/TGCAAGTA.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/TGCAAGTA.barcode_1.fastq
new file mode 100644
index 0000000..c310ad9
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/TGCAAGTA.barcode_1.fastq
@@ -0,0 +1,8 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1242:2170 :N:0:TGCAAGTA
+TGCAAGTA
++
+@@CFFF?D
+ at machine1:HiMom:abcdeACXX:1:2101:1163:2222 :N:0:TGCAAGTA
+TGCAAGTA
++
+CCCFFFEF
diff --git a/testdata/picard/illumina/25T8B25T/fastq/TGCTGCTG.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/TGCTGCTG.1.fastq
new file mode 100644
index 0000000..56c58e4
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/TGCTGCTG.1.fastq
@@ -0,0 +1,16 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1084:2136 1:N:0:TGCTGCTG
+NTCTCACTGTGAATTTGTGGTGGGC
++
+#1=DDFFFHHHHHJJJJGIJIJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1285:2100 1:N:0:TGCTGCTG
+NAATGACATGTTTAAAGATGGACTC
++
+#1:BDDFFHHFHHGIJIJIIIIGII
+ at machine1:HiMom:abcdeACXX:1:2101:1162:2139 1:N:0:TGCTGCTG
+AGAGGTGAAATTCTTGGACCGGCGC
++
+@@@DDDDDHFHHHDB:EFHHCAG?D
+ at machine1:HiMom:abcdeACXX:1:2101:1195:2150 1:N:0:TGCTGCTG
+CCGAGAGAGTGAGAGCGCTCCTGGG
++
+CCCFFFFFHFHHHJJJJIJJJJIJJ
diff --git a/testdata/picard/illumina/25T8B25T/fastq/TGCTGCTG.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/TGCTGCTG.2.fastq
new file mode 100644
index 0000000..1c81e60
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/TGCTGCTG.2.fastq
@@ -0,0 +1,16 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1084:2136 2:N:0:TGCTGCTG
+TTTCTNNNNNNNNNNNNNNNNNNNN
++
+<<<@@####################
+ at machine1:HiMom:abcdeACXX:1:1201:1285:2100 2:N:0:TGCTGCTG
+GATCTTTTTTGCTTTGTAGTTATAG
++
+@@@DFFFFHHHHHIIGIABCFFHBF
+ at machine1:HiMom:abcdeACXX:1:2101:1162:2139 2:N:0:TGCTGCTG
+ATCGTTTATGGTCGGAACTACGACG
++
+BCCFFFFFHHHHHIJJJJJJJIJJI
+ at machine1:HiMom:abcdeACXX:1:2101:1195:2150 2:N:0:TGCTGCTG
+AATTGAACTTCACCACCCAGAGGAA
++
+CCCFFFFFHHHHHJJJJJJIJJJJJ
diff --git a/testdata/picard/illumina/25T8B25T/fastq/TGCTGCTG.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/TGCTGCTG.barcode_1.fastq
new file mode 100644
index 0000000..1d013d1
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/TGCTGCTG.barcode_1.fastq
@@ -0,0 +1,16 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1084:2136 :N:0:TGCTGCTG
+TGCTGCTG
++
+CCCFFFFF
+ at machine1:HiMom:abcdeACXX:1:1201:1285:2100 :N:0:TGCTGCTG
+TGCTGCTG
++
+@@@FFFFF
+ at machine1:HiMom:abcdeACXX:1:2101:1162:2139 :N:0:TGCTGCTG
+TGCTGCTG
++
+CCCFFFFF
+ at machine1:HiMom:abcdeACXX:1:2101:1195:2150 :N:0:TGCTGCTG
+TGCTGCTG
++
+CCCFFFFF
diff --git a/testdata/picard/illumina/25T8B25T/fastq/TGTAACTC.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/TGTAACTC.1.fastq
new file mode 100644
index 0000000..17d82b7
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/TGTAACTC.1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1201:1421:2154 1:N:0:TGTAACTC
+TGTGTGTGTGGGTGTGTGTATATAT
++
+?@?DDFFFFFHH at GEFCCCHGIGJI
diff --git a/testdata/picard/illumina/25T8B25T/fastq/TGTAACTC.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/TGTAACTC.2.fastq
new file mode 100644
index 0000000..b94054c
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/TGTAACTC.2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1201:1421:2154 2:N:0:TGTAACTC
+TGTGCTCTTCCGATCTTGTGCTCTT
++
+BC at DFFFFHHHHHJJJJFHIHHIJJ
diff --git a/testdata/picard/illumina/25T8B25T/fastq/TGTAACTC.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/TGTAACTC.barcode_1.fastq
new file mode 100644
index 0000000..2ec05e5
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/TGTAACTC.barcode_1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1201:1421:2154 :N:0:TGTAACTC
+TGTAACTC
++
+@@@FFFFF
diff --git a/testdata/picard/illumina/25T8B25T/fastq/TGTAATCA.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/TGTAATCA.1.fastq
new file mode 100644
index 0000000..3eb756e
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/TGTAATCA.1.fastq
@@ -0,0 +1,12 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1419:2119 1:N:0:TGTAATCA
+NATGACTATGGTAACTGAAAGAAAA
++
+#1:A1BDADBFFDFIIIEEHECACF
+ at machine1:HiMom:abcdeACXX:1:1201:1208:2132 1:N:0:TGTAATCA
+NCCTCAATGAGCGGCACTATGGGGG
++
+#1=DDFFFHHHHGJJIJJGHIJGIJ
+ at machine1:HiMom:abcdeACXX:1:1201:1344:2147 1:N:0:TGTAATCA
+TATCCTCCCTACTATGCCTAGAAGG
++
+=?@DADEFHBHDFG>EFGDHGFGHD
diff --git a/testdata/picard/illumina/25T8B25T/fastq/TGTAATCA.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/TGTAATCA.2.fastq
new file mode 100644
index 0000000..57ba603
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/TGTAATCA.2.fastq
@@ -0,0 +1,12 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1419:2119 2:N:0:TGTAATCA
+ACTTTCCTTTTTTGTTTTACTTTAA
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1201:1208:2132 2:N:0:TGTAATCA
+CTGTAGAAAGGATGGTCGGGCTCCA
++
+@@CDFFFFGHFHHJIJJGJIBHJJG
+ at machine1:HiMom:abcdeACXX:1:1201:1344:2147 2:N:0:TGTAATCA
+ACGATTAGTTTTAGCATTGGAGTAG
++
+@<??DDDDFHHHFGGHHIIIGGAGH
diff --git a/testdata/picard/illumina/25T8B25T/fastq/TGTAATCA.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/TGTAATCA.barcode_1.fastq
new file mode 100644
index 0000000..13972ab
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/TGTAATCA.barcode_1.fastq
@@ -0,0 +1,12 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1419:2119 :N:0:TGTAATCA
+TGTAATCA
++
+@@@DFDFD
+ at machine1:HiMom:abcdeACXX:1:1201:1208:2132 :N:0:TGTAATCA
+TGTAATCA
++
+CC at FFFFF
+ at machine1:HiMom:abcdeACXX:1:1201:1344:2147 :N:0:TGTAATCA
+TGTAATCA
++
+=?1AA:=D
diff --git a/testdata/picard/illumina/25T8B25T/fastq/TTGTCTAT.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/TTGTCTAT.1.fastq
new file mode 100644
index 0000000..b8f172c
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/TTGTCTAT.1.fastq
@@ -0,0 +1,16 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1219:2164 1:N:0:TTGTCTAT
+TCAAGCAGGAGCAGCTAAGTCCTAA
++
+CCCFFFFFHHHHHJJJJJJHIJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1103:2184 1:N:0:TTGTCTAT
+GTAAGAACTACCCTGGGTCCCCGTG
++
+@@BFFFFFHHHHHJJJJGIJJJJHI
+ at machine1:HiMom:abcdeACXX:1:1201:1107:2109 1:N:0:TTGTCTAT
+NGGGAACCTGGCGCTAAACCATTCG
++
+#1=DFFFFHHHHHJJJJJJJJJIJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1252:2141 1:N:0:TTGTCTAT
+NTTCCCCCCATGTAATTATTGTGAA
++
+#1=DDFFFHHHHHJJJJJJJJIJJJ
diff --git a/testdata/picard/illumina/25T8B25T/fastq/TTGTCTAT.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/TTGTCTAT.2.fastq
new file mode 100644
index 0000000..50cb39a
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/TTGTCTAT.2.fastq
@@ -0,0 +1,16 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1219:2164 2:N:0:TTGTCTAT
+ATCTTATCCACTCCTTCCACTTTGG
++
+CCCFFFFFHHHHHJJIJJJJJJJIJ
+ at machine1:HiMom:abcdeACXX:1:1201:1103:2184 2:N:0:TTGTCTAT
+AGAAGTTTCAGAATTGTGGCCCCAT
++
+B at BFFDEFHHHHHJJJGHIJJJJJI
+ at machine1:HiMom:abcdeACXX:1:1201:1107:2109 2:N:0:TTGTCTAT
+ACAAACCCTTGTGTCGAGGGCTGAC
++
+CCCFFFFFHHGHHJJJJIIJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1252:2141 2:N:0:TTGTCTAT
+AGTTATTTTGCCTATGTCCAACAAG
++
+BCBFFFFFGHHHHJIJJJJJJJJJJ
diff --git a/testdata/picard/illumina/25T8B25T/fastq/TTGTCTAT.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/TTGTCTAT.barcode_1.fastq
new file mode 100644
index 0000000..e53ec2d
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/TTGTCTAT.barcode_1.fastq
@@ -0,0 +1,16 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1219:2164 :N:0:TTGTCTAT
+TTGTCTAT
++
+CCCFFFFF
+ at machine1:HiMom:abcdeACXX:1:1201:1103:2184 :N:0:TTGTCTAT
+TTGTCTAT
++
+ at CCFFFFF
+ at machine1:HiMom:abcdeACXX:1:1201:1107:2109 :N:0:TTGTCTAT
+TTGTCTAT
++
+B at CFFFFF
+ at machine1:HiMom:abcdeACXX:1:1201:1252:2141 :N:0:TTGTCTAT
+TTGTCTAT
++
+CCCFFFFF
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/barcode.params b/testdata/picard/illumina/25T8B25T/fastq/barcode.params
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/barcode.params
rename to testdata/picard/illumina/25T8B25T/fastq/barcode.params
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/mp_barcode.params b/testdata/picard/illumina/25T8B25T/fastq/mp_barcode.params
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/mp_barcode.params
rename to testdata/picard/illumina/25T8B25T/fastq/mp_barcode.params
diff --git a/testdata/picard/illumina/25T8B25T/fastq/nonBarcoded.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/nonBarcoded.1.fastq
new file mode 100644
index 0000000..35c2406
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/nonBarcoded.1.fastq
@@ -0,0 +1,720 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1031:2224 1:Y:0:
+NAATANNNNNNNNNNNNTNNNNNNN
++
+#0;@@####################
+ at machine1:HiMom:abcdeACXX:1:1101:1039:2147 1:Y:0:
+NCCAANGNNGGNNNNATGTAANNNN
++
+#4;@@#4##2<####43@@@@####
+ at machine1:HiMom:abcdeACXX:1:1101:1046:2175 1:Y:0:
+NTGCCNGNGTTNCGNGGTCTTNNNN
++
+#4;@@####################
+ at machine1:HiMom:abcdeACXX:1:1101:1047:2122 1:Y:0:
+NCTAANGNACTNTGNGTGTGCNNNN
++
+#0;@@#4#3@@#3@#2<@@@@####
+ at machine1:HiMom:abcdeACXX:1:1101:1048:2197 1:Y:0:
+NCTCCNGNTCANCANGTGGAGNNNN
++
+#0;?@####################
+ at machine1:HiMom:abcdeACXX:1:1101:1065:2193 1:N:0:
+GAAGTACGCCCTGCCCCTGGTTNGC
++
+?@@DAADAHHFHBEBEGGHG?####
+ at machine1:HiMom:abcdeACXX:1:1101:1069:2159 1:N:0:
+TCCCTTACCATCAAATCAATTGNCC
++
+CCCFFFFFHHHHHJJJJJJJJJ#3A
+ at machine1:HiMom:abcdeACXX:1:1101:1071:2233 1:N:0:
+TTTGACAGTCTCTGAATGAGAANGG
++
+CCCFFFFFHHHHHJIIIJJJIJ#4A
+ at machine1:HiMom:abcdeACXX:1:1101:1083:2193 1:N:0:
+TTCTACCTCACCTTAGGGAGAAGAC
++
+@@@DDBDDD>F><C<4CG?EHGHIG
+ at machine1:HiMom:abcdeACXX:1:1101:1084:2136 1:N:0:
+NTCTCACTGTGAATTTGTGGTGGGC
++
+#1=DDFFFHHHHHJJJJGIJIJJJJ
+ at machine1:HiMom:abcdeACXX:1:1101:1089:2172 1:N:0:
+TTCCAGCATGCGGTTTAAGTAGGAT
++
+ at CCFDFDBDFBF:<CEBHAFHHICH
+ at machine1:HiMom:abcdeACXX:1:1101:1100:2207 1:N:0:
+ACGACAGACGTTCTTTCTTTGCTGC
++
+CCCFFFFFHHFHHJIJJJJJHIJJH
+ at machine1:HiMom:abcdeACXX:1:1101:1111:2148 1:N:0:
+GTGGAGACCACCTCCGAGGCCTTGT
++
+BBCFFFFFHHHHHJJJIJJJJJJJI
+ at machine1:HiMom:abcdeACXX:1:1101:1138:2141 1:N:0:
+NTTACCAAGGTTTTCTGTTTAGTGA
++
+#1=DDFFFHHFHHJJJIHJIJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1101:1140:2120 1:N:0:
+NCCCCAACATTCTAATTATGCCTCA
++
+#1:BDFFDHFFDFIJJJIIJIIIII
+ at machine1:HiMom:abcdeACXX:1:1101:1143:2192 1:N:0:
+GGAGCGAGTCTGGGTCTCAGCCCCG
++
+CCCFFFFFHHHHHJGHIIIHJJJJI
+ at machine1:HiMom:abcdeACXX:1:1101:1150:2228 1:N:0:
+GCTACTCAGTAGACAGTCCCACCCT
++
+@@CADDDDFCFHHIIIIGGIIGGGI
+ at machine1:HiMom:abcdeACXX:1:1101:1157:2135 1:N:0:
+NGGACATTGTAATCATTTCTTACAA
++
+#1=DD?DDHHHHHGGHIIIIIIIII
+ at machine1:HiMom:abcdeACXX:1:1101:1162:2207 1:Y:0:
+ACCTTGAGGAGAACATAAGAGCAAA
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1101:1165:2239 1:N:0:
+GGCGGAGGCAGCATTTCAGCTGTGA
++
+CCCFFDFFHHHHHIJJIGHHHJHHF
+ at machine1:HiMom:abcdeACXX:1:1101:1175:2197 1:N:0:
+CCCCTGAGGACACCATCCCACTCCA
++
+CCCFFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1101:1188:2237 1:N:0:
+TCCCCCTCCCTTTTGCGCACACACC
++
+@?@DDADDHDHBDH<EFHIIHG?HF
+ at machine1:HiMom:abcdeACXX:1:1101:1197:2200 1:N:0:
+GGGCGCCCCGTGAGGACCCAGTCCT
++
+ at C@FFADDFFCFCEHIIJIJJIEFC
+ at machine1:HiMom:abcdeACXX:1:1101:1206:2126 1:N:0:
+NATTCTGCCATATTGGTCCGACAGT
++
+#1=DDFFFHHHHHJJJJJJJJJIJJ
+ at machine1:HiMom:abcdeACXX:1:1101:1212:2230 1:N:0:
+TTTCTATTAGCTCTTAGTAAGATTA
++
+CCCFFFFFHHHHHJJJIJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1101:1218:2200 1:N:0:
+GCACCGGAAGAGCACACAGATCGGA
++
+CCCFFFFDFHGHHJJIJIJJJJJJI
+ at machine1:HiMom:abcdeACXX:1:1101:1219:2164 1:N:0:
+TCAAGCAGGAGCAGCTAAGTCCTAA
++
+CCCFFFFFHHHHHJJJJJJHIJJJJ
+ at machine1:HiMom:abcdeACXX:1:1101:1221:2143 1:N:0:
+TTTGGTGGAAATTTTTTGTTATGAT
++
+CCCFFBDBHFD?FBFHIIGGIC at EF
+ at machine1:HiMom:abcdeACXX:1:1101:1236:2121 1:N:0:
+NGGTGCTTCATATCCCTCTAGAGGA
++
+#1=BDDFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1101:1242:2170 1:N:0:
+ATGGCAGGGCAGAGTTCTGATGAGT
++
+CCCFFFFFHHGGGIFHEIIGIIII?
+ at machine1:HiMom:abcdeACXX:1:1101:1257:2223 1:N:0:
+TGTATTCGAGAGATCAAAGAGAGAG
++
+@@=DDBDD?FFHHEIDBDFCEDBAF
+ at machine1:HiMom:abcdeACXX:1:1101:1259:2152 1:N:0:
+CACCTATAATCCCAGCTACTCCAGA
++
+CCCFFFFFHHHHHJJJJJJIJJJIJ
+ at machine1:HiMom:abcdeACXX:1:1101:1261:2127 1:Y:0:
+NTGAAATCTGGATAGGCTGGAGTTA
++
+#0-@@@###################
+ at machine1:HiMom:abcdeACXX:1:1101:1263:2236 1:Y:0:
+CTTTGAAGACATTGTGAGATCTGTA
++
+<==A<42 at C+A4A?,2A@=4 at 7A??
+ at machine1:HiMom:abcdeACXX:1:1101:1267:2209 1:N:0:
+GAGACGGAGGCCAACGGGGGCCTGG
++
+@@CFFFFD8FDHFHIGIBG?@BCDG
+ at machine1:HiMom:abcdeACXX:1:1101:1269:2170 1:N:0:
+ACAGTGTGGGAGGCAGACGAAGAGA
++
+@@@DDDDDFA:C at EGA?FD<FFHII
+ at machine1:HiMom:abcdeACXX:1:1101:1290:2225 1:N:0:
+CTTGGGCGCATGGTGAGGGAGGGAG
++
+@@@FFDDFHDFH??CBEBHHIGDCD
+ at machine1:HiMom:abcdeACXX:1:1101:1291:2150 1:N:0:
+CGTGGGGAACCTGGCGCTAAACCAT
++
+ at BBFFFFFHHHHHJJJJIJJJJJIJ
+ at machine1:HiMom:abcdeACXX:1:1101:1302:2244 1:N:0:
+GGAAAAGACGGAAAGGTTCTATCTC
++
+ at C@DFFFDFHHHHJIJHHIJJJJJI
+ at machine1:HiMom:abcdeACXX:1:1101:1308:2153 1:Y:0:
+TTTTGGAAGAGACCTCAATTACTGT
++
+???DDDDD?:22AE:A2<3,AF?3A
+ at machine1:HiMom:abcdeACXX:1:1101:1309:2210 1:N:0:
+ACACCAACCACCCAACTATCTATAA
++
+CCCFFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1101:1314:2233 1:N:0:
+GTTTATTGGGGCATTCCTTATCCCA
++
+@??DDDDBDHF>FCHGGGBFAAED9
+ at machine1:HiMom:abcdeACXX:1:1101:1316:2126 1:N:0:
+NAAAAAAAAAAAAAAAAAAAAAAAA
++
+#1BDFFFFHHHHHJJJJFDDDDDDD
+ at machine1:HiMom:abcdeACXX:1:1101:1327:2200 1:Y:0:
+AGGGGGATCCGCCGGGGGACCACAA
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1101:1328:2225 1:N:0:
+GAAATGCATCTGTCTTAGAAACTGG
++
+??@=BDDDFDD<<,<2:C<F:FFEA
+ at machine1:HiMom:abcdeACXX:1:1101:1338:2175 1:N:0:
+CCCACCTTCCGGCGGCCGAAGACAC
++
+CCCFFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1101:1347:2149 1:N:0:
+GAGCAGATCGGAAGAGCACAGATCG
++
+@@@FFDDDHHHHHIJJBGGHJIHEG
+ at machine1:HiMom:abcdeACXX:1:1101:1353:2226 1:N:0:
+TTGCTTGTCTGTAAAGTATTTTATT
++
+ at C@DDFFDHHFHFHHIBGG>IHHII
+ at machine1:HiMom:abcdeACXX:1:1101:1363:2138 1:N:0:
+NGTCTGGCCTGCACAGACATCCTAC
++
+#1=DDFFFHHHHHJJJIJJIJJJIJ
+ at machine1:HiMom:abcdeACXX:1:1101:1399:2128 1:N:0:
+NTGCCCTTCGTCCTGGGAAACGGGG
++
+#1BDFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1101:1403:2194 1:N:0:
+CTAAACAGAGAGAAGGTTTCTCTTT
++
+CCCFFFFFHHHHHJJJFHIJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1101:1406:2222 1:N:0:
+CTCCCCCCGGGCTGAACCAGGGTAC
++
+CCCFFDDDDHDFHIIIIIIIII9DG
+ at machine1:HiMom:abcdeACXX:1:1101:1419:2119 1:N:0:
+NATGACTATGGTAACTGAAAGAAAA
++
+#1:A1BDADBFFDFIIIEEHECACF
+ at machine1:HiMom:abcdeACXX:1:1101:1420:2213 1:N:0:
+TACCTGGTTGATCCTGCCAGTAGCA
++
+@@CFFFFDDHHGHJGGHIJJIHGBH
+ at machine1:HiMom:abcdeACXX:1:1101:1435:2194 1:N:0:
+GAGAAAGAACATGACTACAGAGATG
++
+CCCFFFFFHHHHHJJJJJJJJJHJJ
+ at machine1:HiMom:abcdeACXX:1:1101:1441:2148 1:N:0:
+ACTTTCACCGCTACACGACCGGGGG
++
+CCCFFFFFHGFFHIIFIHJIGGII>
+ at machine1:HiMom:abcdeACXX:1:1101:1452:2132 1:N:0:
+NCGTCCTGGAAAACGGGGCGCGGCT
++
+#1=BDBDDFHHHHF at FHDHIGIIII
+ at machine1:HiMom:abcdeACXX:1:1101:1460:2176 1:N:0:
+AGTCCAGGCTGAGCCCAGGGAAGAA
++
+CCCFFFFFHHHHGJIJJIJJHIJJI
+ at machine1:HiMom:abcdeACXX:1:1101:1479:2221 1:N:0:
+TGTAAAGTATGCTGGCTCAGTGTAT
++
+BBBFDFFEHHHHHJJJJJJJIJHJJ
+ at machine1:HiMom:abcdeACXX:1:1101:1491:2120 1:N:0:
+NGGCAGGTGCCCCCACTTGACTCTC
++
+#1?DFFFFGHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1018:2133 1:N:0:
+NAAAACTTGAGGATGCTATGCAAGC
++
+#1:B:ADDDDDDDEEAEBF9FFEBF
+ at machine1:HiMom:abcdeACXX:1:1201:1018:2217 1:Y:0:
+NTTTCTCTGGGCGCAAAGATGTTCA
++
+#07;8=8<<99(:=@@/@7>>6=?>
+ at machine1:HiMom:abcdeACXX:1:1201:1028:2202 1:N:0:
+NTCCTGGGAAACGGGGCGCGGCTGG
++
+#4BDDDFFHHHHHIJIIJJJJJJIJ
+ at machine1:HiMom:abcdeACXX:1:1201:1042:2174 1:N:0:
+NGTTGGTGTCTTCATTTTATGTATA
++
+#1=DDFDFHHHHHJIJJJHIJHIJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1043:2246 1:N:0:
+NTTCTCGGCTGTCATGTGCAACATT
++
+#1=DDBDFHHHDFFBHGHGHIIJEH
+ at machine1:HiMom:abcdeACXX:1:1201:1045:2105 1:Y:0:
+NTAAAGAGAAATCAAGAATACTATT
++
+#-4@?(@)@@###############
+ at machine1:HiMom:abcdeACXX:1:1201:1054:2151 1:N:0:
+NTAGTGCTGGGCACTAAGTAATACC
++
+#4=DDDFFHHHHHJJJJJHIJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1064:2239 1:N:0:
+CATGCAGCGCAAGTAGGTCTACAAG
++
+@@;DFAFFHHHHAHEGHFDGGFABG
+ at machine1:HiMom:abcdeACXX:1:1201:1073:2225 1:N:0:
+GGGGCTGAGACCTTTGCTGATGGTG
++
+@@@FFFFFHHHGHJJJJJIIIGICH
+ at machine1:HiMom:abcdeACXX:1:1201:1083:2121 1:N:0:
+NAGAACTGGCGCTGCGGGATGAACC
++
+#1=BDFFFHHHHHJJJJJHIJIJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1084:2204 1:N:0:
+GGCCCGTGGACGCCGCCGAAGAAGC
++
+CCCFFFFFHHHHHJJJJJIJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1095:2146 1:N:0:
+GCTGAGTCATGTAGTAAGCCTGTGC
++
+BB at FDDDFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1103:2184 1:N:0:
+GTAAGAACTACCCTGGGTCCCCGTG
++
+@@BFFFFFHHHHHJJJJGIJJJJHI
+ at machine1:HiMom:abcdeACXX:1:1201:1107:2109 1:N:0:
+NGGGAACCTGGCGCTAAACCATTCG
++
+#1=DFFFFHHHHHJJJJJJJJJIJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1118:2198 1:N:0:
+CAAGTGTACAGGATTAGACTGGGTT
++
+BCCFDEBDHHHHHIJJJGIIIJJGH
+ at machine1:HiMom:abcdeACXX:1:1201:1122:2227 1:N:0:
+AGAAGACGAGGCTGAGAGTGACATC
++
+@@@FFFFFHHHDHJGHGHCHHJJIJ
+ at machine1:HiMom:abcdeACXX:1:1201:1123:2161 1:Y:0:
+CACTAACTCCTGACCTCAAATAATC
++
+?7?=DD?DD+CDBE>E at EEF@+<CF
+ at machine1:HiMom:abcdeACXX:1:1201:1127:2112 1:Y:0:
+NGTCAAGGATGTTCGTCGTGGCAAC
++
+#1=BDDDDDDDDDID<AE?@<CEEE
+ at machine1:HiMom:abcdeACXX:1:1201:1134:2144 1:N:0:
+TGCCAGGAAGTGTTTTTTCTGGGTC
++
+ at CCFFEFFHHFFFGIJJJJJJJJGH
+ at machine1:HiMom:abcdeACXX:1:1201:1138:2227 1:Y:0:
+GCTGACACAATCTCTTCCGCCTGGT
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1201:1140:2125 1:N:0:
+NTTTCAGTTCAGAGAACTGCAGAAT
++
+#1=DBDFDHHHHGJIJJJJJIIIJI
+ at machine1:HiMom:abcdeACXX:1:1201:1142:2242 1:N:0:
+TGTTGATAGTCCTTCTTATCTTAGT
++
+???DB?==CC2<AC:CC<CFEF<FF
+ at machine1:HiMom:abcdeACXX:1:1201:1150:2161 1:N:0:
+AAGTCACCTAATATCTTTTTTTTTT
++
+@@<??;?D?CFD,A4CDDHFBIIID
+ at machine1:HiMom:abcdeACXX:1:1201:1159:2179 1:Y:0:
+GTTAGCACAGATATTGGATGAGTGA
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1201:1160:2109 1:N:0:
+NAGAAGCCTTTGCACCCTGGGAGGA
++
+#1=DDDFFHHHHHJJJJJJJJIIJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1180:2119 1:N:0:
+NTGAAAGATTTAGAGAGCTTACAAA
++
+#1=DDDDDHHHGHJJIIJJJJIJJI
+ at machine1:HiMom:abcdeACXX:1:1201:1185:2143 1:N:0:
+ATCTGCCTGGTTCGGCCCGCCTGCC
++
+CCCFFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1187:2100 1:N:0:
+NGCGGTAATTCCAGCTCCAATAGCG
++
+#1:BB2 at DHHFHHIIIIHHIIGHGG
+ at machine1:HiMom:abcdeACXX:1:1201:1190:2194 1:N:0:
+AACCTGGCGCTAAACCATTCGTAGA
++
+CCCFFFFFHHHHHJJJJJJJJIJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1204:2228 1:N:0:
+CCGATACGCTGAGTGTGGTTTGCGG
++
+CCCFFFFFHHHFHEGGHIHIJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1208:2132 1:N:0:
+NCCTCAATGAGCGGCACTATGGGGG
++
+#1=DDFFFHHHHGJJIJJGHIJGIJ
+ at machine1:HiMom:abcdeACXX:1:1201:1219:2115 1:N:0:
+NTATAGTGGAGGCCGGAGCAGGAAC
++
+#1:DABADHHHFHIIIGGHGIIIII
+ at machine1:HiMom:abcdeACXX:1:1201:1236:2187 1:N:0:
+TTTAAATGGGTAAGAAGCCCGGCTC
++
+ at BCDDFEFHHDHHJJJJJIJJIJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1242:2207 1:N:0:
+ATGGCAAAGTGGTGTCTGAGACCAA
++
+BCCFFFFFGHHHHHIIIJFHIJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1252:2141 1:N:0:
+NTTCCCCCCATGTAATTATTGTGAA
++
+#1=DDFFFHHHHHJJJJJJJJIJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1260:2165 1:N:0:
+GGACACGGACAGGATTGACAGATTG
++
+BCBFFFFFHHHHHHIIJHIIIFHIJ
+ at machine1:HiMom:abcdeACXX:1:1201:1280:2179 1:N:0:
+TTCAAGGAATCGTCCTGCCTCAGCC
++
+BCCFFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1281:2133 1:N:0:
+NGGAAATCCAGAAAACATAGAAGAT
++
+#1=DDFFFHHHHHIJJJJJJJJIJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1285:2100 1:N:0:
+NAATGACATGTTTAAAGATGGACTC
++
+#1:BDDFFHHFHHGIJIJIIIIGII
+ at machine1:HiMom:abcdeACXX:1:1201:1291:2158 1:N:0:
+AGAAGGGGAAAGCCTTCATCTTGGC
++
+BCBFFFFFHHHHHJJJJJIIFIJIJ
+ at machine1:HiMom:abcdeACXX:1:1201:1300:2137 1:N:0:
+NTGTAATCCCAGCTCTCAGGGAGGC
++
+#1=ADDDDDDDBBA?@AE?E at FE8;
+ at machine1:HiMom:abcdeACXX:1:1201:1312:2112 1:N:0:
+NTCCCAGCGAACCCGCGTGCAACCT
++
+#1=DFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1331:2162 1:N:0:
+ACGCTCGGCTAATTTTTGTATTTTT
++
+ at CCFFFDFHHHHHIJJJJHIJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1341:2116 1:N:0:
+NAGAAGCCCCAGGAGGAAGACAGTC
++
+#1=DDFFFHHHHHHHJIIJJJJJGI
+ at machine1:HiMom:abcdeACXX:1:1201:1344:2147 1:N:0:
+TATCCTCCCTACTATGCCTAGAAGG
++
+=?@DADEFHBHDFG>EFGDHGFGHD
+ at machine1:HiMom:abcdeACXX:1:1201:1345:2181 1:N:0:
+GGATAATCCTATTTATTACCTCAGA
++
+BBBDDFFFHHHHHJJJJJJJJJIJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1364:2113 1:N:0:
+NCACTCATTTTCTTATGTGGGATAT
++
+#1=DDFDFHHHHHIJJIFHIIHHHI
+ at machine1:HiMom:abcdeACXX:1:1201:1392:2109 1:N:0:
+NCTGAAGAGGCCAAAGCGCCCTCCA
++
+#1=DDFFFHHHHHJJJJJJJJJJJI
+ at machine1:HiMom:abcdeACXX:1:1201:1392:2184 1:N:0:
+TTTCAGATTGGTCATTGTTAGTGTA
++
+??@BDDDEHBHADHHIIEHDHFHFF
+ at machine1:HiMom:abcdeACXX:1:1201:1393:2143 1:N:0:
+TGGTTGATCCTGCCAGTAGCATATG
++
+@@@ADADDFHFFDBHE?G at HIIIEE
+ at machine1:HiMom:abcdeACXX:1:1201:1414:2174 1:Y:0:
+GCCAAAAAAAAGAACCAGCCCAAGG
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1201:1416:2128 1:N:0:
+NACAGGCGTGGAGGAGGCGGCGGCC
++
+#4=DDDFFHHHHHJIGJHFHHFFED
+ at machine1:HiMom:abcdeACXX:1:1201:1421:2154 1:N:0:
+TGTGTGTGTGGGTGTGTGTATATAT
++
+?@?DDFFFFFHH at GEFCCCHGIGJI
+ at machine1:HiMom:abcdeACXX:1:1201:1439:2156 1:N:0:
+AGCCGCGAGGTGCTGGCGGACTTCC
++
+:;1BDDDAA88A<?<E1C:D#####
+ at machine1:HiMom:abcdeACXX:1:1201:1452:2143 1:N:0:
+TATCCCCTCTAAGACGGACCTGGGT
++
+CCCFFFFFHHHHHJJIIIJJJJJJG
+ at machine1:HiMom:abcdeACXX:1:1201:1458:2109 1:N:0:
+NGAGACCATAGAGCGGATGCTTTCA
++
+#1=DDDFFHHGHGIJJIGIIJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1472:2121 1:Y:0:
+NTAAAGTGTGAACAAGGAAGGTCAT
++
+#07>@<9=@################
+ at machine1:HiMom:abcdeACXX:1:1201:1483:2126 1:Y:0:
+NTGATAAGGTGTTGCTATGTTACCC
++
+#1:D?DDDDA??2:<CC4:AEDF>?
+ at machine1:HiMom:abcdeACXX:1:1201:1486:2109 1:N:0:
+NCACCTCCTAGCCCCTCACTTCTGT
++
+#1=B;BDDHHHGFIIIIIIIIIGGG
+ at machine1:HiMom:abcdeACXX:1:1201:1486:2146 1:Y:0:
+GTTCTCTGTCCCCAGGTCCTGTCTC
++
+===A7<7222<<=C=?+<7>@?ACB
+ at machine1:HiMom:abcdeACXX:1:2101:1011:2102 1:N:0:
+NAAACAAAACTGTAGAACTGTGTAT
++
+#1=DDFFFHHHHHJJIJJJIHHHJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1013:2146 1:N:0:
+NACACTGCTGCAGATGACAAGCAGC
++
+#4BDFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1021:2209 1:N:0:
+NGGCCCCACCCTCCTCCAGCACGTC
++
+#1=DDFFFHHHHHJJJJJJHIIHFH
+ at machine1:HiMom:abcdeACXX:1:2101:1023:2237 1:Y:0:
+NTAAACAGCTTCTGCACAGCCAAAG
++
+#00@@?>=39>9;<412@?######
+ at machine1:HiMom:abcdeACXX:1:2101:1031:2163 1:N:0:
+NTTTCCATGGCCGTCACCTTTGGGT
++
+#4=DDFFFHHHHHJJJJJJJJJJJI
+ at machine1:HiMom:abcdeACXX:1:2101:1036:2087 1:N:0:
+NTGTAGTTTCTTTAGGCAAATTTGT
++
+#4=BDDDFHHHHHJJJJJJIIJJJI
+ at machine1:HiMom:abcdeACXX:1:2101:1040:2208 1:Y:0:
+NATGCCCACCTCCCTCCTACGCACC
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:2101:1048:2238 1:N:0:
+NCTGCCGTGTCCTGACTTCTGGAAT
++
+#1:B?ADDACF<DCG;EG<FHH at CE
+ at machine1:HiMom:abcdeACXX:1:2101:1054:2162 1:N:0:
+NCCAGGTGTCTTCCCGGGCCCTGCC
++
+#1=DDFBDFHHHHJJJJJIJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1059:2083 1:N:0:
+NAAGAGGGGTCAAGAGTTAAACTTA
++
+#1=DDFFFHFHHGIGHGHJJJJJJI
+ at machine1:HiMom:abcdeACXX:1:2101:1063:2206 1:N:0:
+TCCTATTCGCCTACACAATTCTCCG
++
+CCCFFFFFHHHHHJJJJJJJHJJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1064:2242 1:N:0:
+ATGAACAAAGGAAGAATTATGCACG
++
+?;?D;DDDF?;:+<<CFFCHE433A
+ at machine1:HiMom:abcdeACXX:1:2101:1072:2170 1:N:0:
+ATCACCGCACTCATTTCCCGCTTCC
++
+CCCFFFFFHHHACEEGHIIBHIIII
+ at machine1:HiMom:abcdeACXX:1:2101:1077:2139 1:N:0:
+CACAGGCTTCCACGGACTTAACGTC
++
+CCCFFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1084:2188 1:N:0:
+TTGCTGCATGGGTTAATTGAGAATA
++
+CCCFFFFFHHHHFHHIIJJIJJJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1100:2085 1:N:0:
+NCACATGGATGAGGAGAATGAGGAT
++
+#1=DDFFFFHHHHJHIGIHHHIJEH
+ at machine1:HiMom:abcdeACXX:1:2101:1102:2221 1:N:0:
+TTTCATCTTATTTCATTGGTTTATA
++
+CCCFFFFFHHHHHJIJJJJIJJJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1105:2131 1:N:0:
+TTGGAACACAGCGGGAATCACAGCA
++
+CCCFFFFFHHHHHJIJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1112:2245 1:N:0:
+TGCCATCTGCTCTGGGAAGCACCAG
++
+1:=DDDDDFBC:DEFIFFFIEF at BE
+ at machine1:HiMom:abcdeACXX:1:2101:1122:2136 1:N:0:
+GTAGGCGCTCAGCAAATACTTGTCG
++
+@@@DDDD8?<CACEHHBBHDAAFH@
+ at machine1:HiMom:abcdeACXX:1:2101:1123:2095 1:N:0:
+NTGGACAACATGTTCGAGAGCTACA
++
+#1=BBDDDFFFFDGFGIG?F;HHFI
+ at machine1:HiMom:abcdeACXX:1:2101:1126:2082 1:N:0:
+NGTTTTAGGGGTGCGCAGGAGTCAA
++
+#11=A=DD?DF at D@CCGHIEFH at BG
+ at machine1:HiMom:abcdeACXX:1:2101:1133:2239 1:N:0:
+AGACAGAAGTACGGGAAGGCGAAGA
++
+@@@FFFFEHFHHHJJCGDHIIECD@
+ at machine1:HiMom:abcdeACXX:1:2101:1143:2137 1:N:0:
+ATGCAGCAGCTGCCACGGAGCACCA
++
+CC at FFDFDFHFHHGIDHEHIGJJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1151:2182 1:Y:0:
+TTGTTTTGGCTTATAATGACAAGAA
++
+;;8-2).2())(<6=@8;?4??>>?
+ at machine1:HiMom:abcdeACXX:1:2101:1151:2236 1:Y:0:
+TTAAAGAGGTTCAGGGATGCAGAGT
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:2101:1162:2139 1:N:0:
+AGAGGTGAAATTCTTGGACCGGCGC
++
+@@@DDDDDHFHHHDB:EFHHCAG?D
+ at machine1:HiMom:abcdeACXX:1:2101:1163:2203 1:N:0:
+TCTCCATGTGAAACAAGCAAAAAGA
++
+CCCFFFFFHHHHGJJJIJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1163:2222 1:N:0:
+GAGCAGGCAAGGAGGACTTCTTGTT
++
+CCCFFFFFGHHHHJJHHIJJJJJIJ
+ at machine1:HiMom:abcdeACXX:1:2101:1172:2152 1:Y:0:
+AACACGGACAAAGGAGTCTAACACG
++
+<<<??8@@#################
+ at machine1:HiMom:abcdeACXX:1:2101:1186:2093 1:N:0:
+NCGACCATAAACGATGCCGACCGGC
++
+#4=DFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1188:2195 1:N:0:
+TTAGACCGTCGTGAGACAGGTTAGT
++
+ at CCFFFFFHHHHHJJJJJIIEHIJH
+ at machine1:HiMom:abcdeACXX:1:2101:1195:2150 1:N:0:
+CCGAGAGAGTGAGAGCGCTCCTGGG
++
+CCCFFFFFHFHHHJJJJIJJJJIJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1207:2084 1:Y:0:
+NTAGATGACCAAAACTTGCAGGGCA
++
+#1:A<?@A+7A=?CBCCBCCBAAAA
+ at machine1:HiMom:abcdeACXX:1:2101:1208:2231 1:Y:0:
+TCACTAAACATCCAAACATCACTTT
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:2101:1215:2110 1:N:0:
+NAATATAATTTGGAGACCCTTTGTT
++
+#1=DDDDDEDDDDIDDBB3ABAB##
+ at machine1:HiMom:abcdeACXX:1:2101:1216:2172 1:N:0:
+TTTCTTCGCAGGATTTTTCTGAGCC
++
+CCCFFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1216:2193 1:N:0:
+TTTTCTTGGCCTCTGTTTTTTTTTT
++
+BCCFDFFFHHFFHJIGIJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1226:2088 1:N:0:
+NGATCGGAAGAGCACACGTTTGACT
++
+#4=DAA=DDFHFHIIBFGHHIG>EG
+ at machine1:HiMom:abcdeACXX:1:2101:1231:2208 1:N:0:
+ACGCCGCAAGTCAGAGCCCCCCAGA
++
+@@@DDDFFFFB:DBBEBEFDHBDDB
+ at machine1:HiMom:abcdeACXX:1:2101:1233:2133 1:Y:0:
+GAGAGAAGCACTCTTGAGCGGGATA
++
+0;(@((@)2@###############
+ at machine1:HiMom:abcdeACXX:1:2101:1240:2197 1:Y:0:
+ATAAAACATAGCAATATTTTCCTAT
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:2101:1245:2154 1:N:0:
+TCGTTAAGTATATTCTTAGGTATTT
++
+CCCFFDFFFHFHHIIJJJJJFJJJI
+ at machine1:HiMom:abcdeACXX:1:2101:1249:2231 1:N:0:
+GTTATTGATAGGATACTGTACAAAC
++
+ at BCFFFFDHHHHFIJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1258:2092 1:N:0:
+NCACACACACACTCATTCACAGCTT
++
+#1=DDDFFHHHFHJJIJGGGIIGIJ
+ at machine1:HiMom:abcdeACXX:1:2101:1262:2128 1:Y:0:
+AGCAGAAGGGCAAAAGCTGGCTTGA
++
+9;<@:@###################
+ at machine1:HiMom:abcdeACXX:1:2101:1273:2119 1:Y:0:
+NAGATAAGAGTCCACACAGTTGAGT
++
+#11AAAAA<A?4=C=7?733<ACA3
+ at machine1:HiMom:abcdeACXX:1:2101:1285:2105 1:Y:0:
+NGCGGGGAGCCGGGCGTGGAATGCG
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:2101:1312:2105 1:N:0:
+NTTCCCTCAGGATAGCTGGCGCTCT
++
+#1=DDFFFGHGHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1325:2083 1:N:0:
+NCAGAAGAAAGGGCCTTGTCGGAGG
++
+#1=DDDDDHHFHDGI at EEHG:?FA8
+ at machine1:HiMom:abcdeACXX:1:2101:1336:2109 1:N:0:
+NACTATCAGGATCGTGGCTATTTTG
++
+#1BDDFFFHHHHHJIJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1349:2084 1:N:0:
+NCAAGTAGCAGTGTCACGCCTTAGC
++
+#1=DDBDDADFDDBEH at HC=CEGG@
+ at machine1:HiMom:abcdeACXX:1:2101:1365:2094 1:N:0:
+NAAGGTGAAGGCCGGCGCGCTCGCC
++
+#1=BDDDFFHHHHJGGGIGFIHIIJ
+ at machine1:HiMom:abcdeACXX:1:2101:1370:2116 1:N:0:
+NTGGTGGTCCATAGAGATTTGAAAC
++
+#1:4BD7DACF?FCA:4+<ACHIIH
+ at machine1:HiMom:abcdeACXX:1:2101:1386:2105 1:N:0:
+NTACTAAAGAAAAAGTTGAAGAACT
++
+#1=DDDFFHHHHHJJGHIJJJJIJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1414:2098 1:N:0:
+NAGGACATCGATAAAGGCGAGGTGT
++
+#1=DDFFFHHHHHJJJJJJJJJHHG
+ at machine1:HiMom:abcdeACXX:1:2101:1427:2081 1:N:0:
+NCGAGTGCCTAGTGGGCCACTTTTG
++
+#4=DDBDFHHHHFHIJJJJIJJJJI
+ at machine1:HiMom:abcdeACXX:1:2101:1450:2134 1:N:0:
+AGCACGCTGCCGCGGGACCTGCCCA
++
+?@@AD at DDHFH?DGIIIIG at FGFBF
+ at machine1:HiMom:abcdeACXX:1:2101:1459:2083 1:N:0:
+NCACACGCCACACGGAGCACACTTT
++
+#4=DDFFFHHHHHJJJJJJJJIIJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1491:2093 1:N:0:
+NCTATGCCGATCGGGTGTCCGCACT
++
+#1=DDDDDHHFHHIIEHHHBGHGII
diff --git a/testdata/picard/illumina/25T8B25T/fastq/nonBarcoded.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/nonBarcoded.2.fastq
new file mode 100644
index 0000000..857ee76
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/fastq/nonBarcoded.2.fastq
@@ -0,0 +1,720 @@
+ at machine1:HiMom:abcdeACXX:1:1101:1031:2224 2:Y:0:
+NNNNNNNNNNNNNNNNNNNNNNNNN
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1101:1039:2147 2:Y:0:
+NNNNNNNNNNNNNNNNNNNNNNNNN
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1101:1046:2175 2:Y:0:
+NNGGANNNNNNNNNNNNNNNNNNNN
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1101:1047:2122 2:Y:0:
+NNTCANNNNNNNNNNNNNNNNNNNN
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1101:1048:2197 2:Y:0:
+NNGTGNNNNNNNNNNNNNNNNNNNN
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1101:1065:2193 2:N:0:
+NCTTGNNNNNNNNNNNNNNNNNNNN
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1101:1069:2159 2:N:0:
+GACGTNNNNNNNNNNNNNNNNNNNN
++
+<<<@?####################
+ at machine1:HiMom:abcdeACXX:1:1101:1071:2233 2:N:0:
+GTTTGNNNNNNNNNNNNNNNNNNNN
++
+<<<@@####################
+ at machine1:HiMom:abcdeACXX:1:1101:1083:2193 2:N:0:
+AGGCTNNNNNNNNNNNNNNNNNNNN
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1101:1084:2136 2:N:0:
+TTTCTNNNNNNNNNNNNNNNNNNNN
++
+<<<@@####################
+ at machine1:HiMom:abcdeACXX:1:1101:1089:2172 2:N:0:
+TCCGGNNNNNNNNNNNNNNNNNNNN
++
+:<<??####################
+ at machine1:HiMom:abcdeACXX:1:1101:1100:2207 2:N:0:
+AGGCTNNNNNNNNNNNNGNNNNNNN
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1101:1111:2148 2:N:0:
+GCGAANANNNNNNNNNNGGACGACN
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1101:1138:2141 2:N:0:
+TCCGATCTGCTTCAGGTCGATCAGA
++
+CCCFFFFFHGHHHJJIGHIJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1101:1140:2120 2:N:0:
+TTTTTTTTTTTTTAACTTTGCAAAT
++
+@@@DDDDDHHHHFB at 9FHI@BFH@@
+ at machine1:HiMom:abcdeACXX:1:1101:1143:2192 2:N:0:
+CGACAAGTCTGGCTTATCACTCATC
++
+CCCFFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1101:1150:2228 2:N:0:
+ATGGGAGGCGATTCCTAGGGGGTTG
++
+8?=DD8;@BH6DHD<FGGGEIGHIG
+ at machine1:HiMom:abcdeACXX:1:1101:1157:2135 2:N:0:
+TTTAAAGTCTTAATCAAAGATGATA
++
+CCCFFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1101:1162:2207 2:Y:0:
+TAAAACTGGGGAAGTTAGAGGAATG
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1101:1165:2239 2:N:0:
+ATGGAAGTCGAGACAGAAGTGAGAA
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1101:1175:2197 2:N:0:
+AAGAGCTGGGGAACATCCAGAAAGG
++
+BC at FFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1101:1188:2237 2:N:0:
+GCTTCCTTCAAGACAGAAGTGAGAA
++
+CCCFFDDEFHHFFE at FDHHAIAFHG
+ at machine1:HiMom:abcdeACXX:1:1101:1197:2200 2:N:0:
+ATATTCCACTGGAACCACAGAACCC
++
+@@@FFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1101:1206:2126 2:N:0:
+ATCTGTCCAGTGGTGCACTGAATGT
++
+CCCFFFFFHHHHHHIIJJJJIJJJJ
+ at machine1:HiMom:abcdeACXX:1:1101:1212:2230 2:N:0:
+TTTTAGCTTTATTGGGGAGGGGGTG
++
+CCCFFFFFHHGHHJJJJGJJJJJDF
+ at machine1:HiMom:abcdeACXX:1:1101:1218:2200 2:N:0:
+GCTCTTCCGATCTATCTGCTCGTCC
++
+(-(=34???3;@#############
+ at machine1:HiMom:abcdeACXX:1:1101:1219:2164 2:N:0:
+ATCTTATCCACTCCTTCCACTTTGG
++
+CCCFFFFFHHHHHJJIJJJJJJJIJ
+ at machine1:HiMom:abcdeACXX:1:1101:1221:2143 2:N:0:
+CAATTGAATGTCTGCACAGCCGCTT
++
+@@@FFFFDHHHHHJJJIIIJGHIJJ
+ at machine1:HiMom:abcdeACXX:1:1101:1236:2121 2:N:0:
+TTGCGCTTACTTTGTAGCCTTCATC
++
+CCCFFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1101:1242:2170 2:N:0:
+GGAAGGAAAAGAAGCACAAGTACAT
++
+@@@DFDFFHHHGHHGIIGJJEHHIG
+ at machine1:HiMom:abcdeACXX:1:1101:1257:2223 2:N:0:
+TGCTCTTCCGATCTTTTAGCAAAGC
++
+:?@DDBDDHFFHDGIGIIJJJGGGI
+ at machine1:HiMom:abcdeACXX:1:1101:1259:2152 2:N:0:
+ATTTTTATATTTTTTTAGACATAGG
++
+CCCFFFFFGHHHHJJJJIGIIJJJJ
+ at machine1:HiMom:abcdeACXX:1:1101:1261:2127 2:Y:0:
+TTTTTTTTTTTTTTTTTTTTTTTTT
++
+CCCFFFFFHGHHHJJIFDDDDDDDD
+ at machine1:HiMom:abcdeACXX:1:1101:1263:2236 2:Y:0:
+AGTTCTTCAGTAATTTTAGTACTGC
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1101:1267:2209 2:N:0:
+GGCAGAGTCTCCAACAGCCCCGTAC
++
+=;?DDDD?CCFHAIIIGGIIGE at EG
+ at machine1:HiMom:abcdeACXX:1:1101:1269:2170 2:N:0:
+TTCCAAGCCTGTGCTTTAAGGAAAA
++
+@@<ADBDBDF8DDCFH at GIE@@GGH
+ at machine1:HiMom:abcdeACXX:1:1101:1290:2225 2:N:0:
+TCAGTTCACTGGCAAAGACAGTCAC
++
+C@@FBEDDFHFHGIIICEHGDHBHE
+ at machine1:HiMom:abcdeACXX:1:1101:1291:2150 2:N:0:
+ACAAACCCTTGTGTCGAGGGCTGAC
++
+CCCFFFFFHHFHHIJJJIIIGIJIJ
+ at machine1:HiMom:abcdeACXX:1:1101:1302:2244 2:N:0:
+TGAATACATATAACAAATGCAAAAA
++
+CCCFFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1101:1308:2153 2:Y:0:
+TCTGTAAGGTAATCCCCGCATGTGT
++
+1?1=4===AFFDFFGFDGFB at CFB:
+ at machine1:HiMom:abcdeACXX:1:1101:1309:2210 2:N:0:
+AGTGGGCTAGGGCATTTTTAATCTT
++
+@@?DFFDFHHHDFHJIJJIJGIIIJ
+ at machine1:HiMom:abcdeACXX:1:1101:1314:2233 2:N:0:
+AGGAAAGTTGGGCTGACCTGACAGA
++
+@@<DDD;=FBFADBCGDEH?F;FCG
+ at machine1:HiMom:abcdeACXX:1:1101:1316:2126 2:N:0:
+TCTTTTTTTTTTTTTTTTTTTTTTT
++
+CCCFFFFFHHHHHJJJJHFDDDDDD
+ at machine1:HiMom:abcdeACXX:1:1101:1327:2200 2:Y:0:
+GTCATCTGGGCTGTCGACAGGTGTC
++
+ at B@FFFFFHHHHGIJJJJJJIFHHI
+ at machine1:HiMom:abcdeACXX:1:1101:1328:2225 2:N:0:
+AGGAAATTAGGACTTACCTGACATA
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1101:1338:2175 2:N:0:
+GCTTGTTGGCTTTAACATCCACAAT
++
+CCCFFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1101:1347:2149 2:N:0:
+GCTCTTCCGATCTGTGCTCTTCCGA
++
+CCCFFFFFDFHHFIJDGIGGHGIGH
+ at machine1:HiMom:abcdeACXX:1:1101:1353:2226 2:N:0:
+GTGCTCTTCCGATCTTCAGGTTACC
++
+BBBFFFFFHHHHHJJJJJJJIJJJJ
+ at machine1:HiMom:abcdeACXX:1:1101:1363:2138 2:N:0:
+GTTCTTAAACCTGTTAGAACTTCTG
++
+C@@FFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1101:1399:2128 2:N:0:
+ACAAACCCTTGTGTCGAGGGCTGAC
++
+CCCFFFFFHHHHHIJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1101:1403:2194 2:N:0:
+ACATGGTGAAACCCTGTCTCTACTA
++
+CCCFFFDDHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1101:1406:2222 2:N:0:
+GGCTGGACTCCCCTGGTTCTGGGCA
++
+;?@DDDBD?FHDFGIIIGIGHHIII
+ at machine1:HiMom:abcdeACXX:1:1101:1419:2119 2:N:0:
+ACTTTCCTTTTTTGTTTTACTTTAA
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1101:1420:2213 2:N:0:
+TTCACTGTACCGGCCGTGCGTACTT
++
+ at CCFFFFDHHHFGIJJJJJJGHIGG
+ at machine1:HiMom:abcdeACXX:1:1101:1435:2194 2:N:0:
+TTTTGTTTTCTTTTACTGAAGTGTA
++
+CCCFFDFFHHHHHJJJJIHIJHHHJ
+ at machine1:HiMom:abcdeACXX:1:1101:1441:2148 2:N:0:
+TTTTGGCTCTAGAGGGGGTAGAGGG
++
+CCCFFFFFHHDFBHIIJJ1?FGHIJ
+ at machine1:HiMom:abcdeACXX:1:1101:1452:2132 2:N:0:
+ACAAACCCTTGTGTCGAGGGCTGAC
++
+CCCFFFFFHHHHHJJJJJJJIJJJJ
+ at machine1:HiMom:abcdeACXX:1:1101:1460:2176 2:N:0:
+AGGAAAAAGACACAACAAGTCCAAC
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1101:1479:2221 2:N:0:
+GGGGAAATCTATTTTTATGTAAAAA
++
+ at CCFFFFFHHHHHJIGIJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1101:1491:2120 2:N:0:
+GGCCAGGCTGAACTTCTGAGCTGCT
++
+CCCFFFFFHHHGHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1018:2133 2:N:0:
+NNNNNNNNNNNNNNNNNNNNNNNNN
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1201:1018:2217 2:Y:0:
+NNNNNNNNNNNNNNNNNNNNNNNNN
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1201:1028:2202 2:N:0:
+NNAAACNCNTNNNNNNNGGNNTGNN
++
+##42@?###################
+ at machine1:HiMom:abcdeACXX:1:1201:1042:2174 2:N:0:
+NTCAGGAAGGCNNCAAAAAAAGAAA
++
+#0;@@@?@?<@##3<@@?@@?????
+ at machine1:HiMom:abcdeACXX:1:1201:1043:2246 2:N:0:
+NGCATCATTTCNNGCTTCTCTCTGT
++
+#0;@@??@=@>##22=;@??><@??
+ at machine1:HiMom:abcdeACXX:1:1201:1045:2105 2:Y:0:
+NTTTTTTTTTTNNTTTTTTTTTTTT
++
+#0;@@@@@@@?##0:????????=<
+ at machine1:HiMom:abcdeACXX:1:1201:1054:2151 2:N:0:
+GTCAGGCACTGAGAATATATGGGTG
++
+CBCFFFFFHHHHHJJJJJJJJJJEG
+ at machine1:HiMom:abcdeACXX:1:1201:1064:2239 2:N:0:
+GGGATGGGAGGGCGATGAGGACTAG
++
+8?@:DDDACC:FHHGIH<EGDDDFH
+ at machine1:HiMom:abcdeACXX:1:1201:1073:2225 2:N:0:
+CGTGTGCTCTTCCGATCTGGAGGGT
++
+ at BBDFFFFHHHHHJJJJJJJJJJJ:
+ at machine1:HiMom:abcdeACXX:1:1201:1083:2121 2:N:0:
+ACACACAACACCACCGCCCTCCCCC
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1201:1084:2204 2:N:0:
+TGGCTCCTCAGGCTCTCATCAGTTG
++
+CCCFFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1095:2146 2:N:0:
+ACTGACAACACCAAATGCTGCTAAG
++
+CCCFFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1103:2184 2:N:0:
+AGAAGTTTCAGAATTGTGGCCCCAT
++
+B at BFFDEFHHHHHJJJGHIJJJJJI
+ at machine1:HiMom:abcdeACXX:1:1201:1107:2109 2:N:0:
+ACAAACCCTTGTGTCGAGGGCTGAC
++
+CCCFFFFFHHGHHJJJJIIJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1118:2198 2:N:0:
+AATAAACTTTATTAAAGCAGTTAAA
++
+C at CFFFFFHDHHHGIIIJJJIJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1122:2227 2:N:0:
+GTCATATAAGGCCCAGTCCAAGGAA
++
+@@@FFFFFHHHGGIJIGGIJFIJII
+ at machine1:HiMom:abcdeACXX:1:1201:1123:2161 2:Y:0:
+CGTGTGCTCTTCCGATCTGCATACA
++
+===AAAA8AAAA<AAA)@CBA9>A#
+ at machine1:HiMom:abcdeACXX:1:1201:1127:2112 2:Y:0:
+TAATCACCTGAGCAGTGAAGCCAGC
++
+@<@?BDDDHD?FDBHI?AHGGGDFH
+ at machine1:HiMom:abcdeACXX:1:1201:1134:2144 2:N:0:
+AGTGTGAGTAATGGTTGAGAGGTGG
++
+B@?DDDFFFHHGHJHHGFIHHIFGI
+ at machine1:HiMom:abcdeACXX:1:1201:1138:2227 2:Y:0:
+GACAAATATAGGAAATAGAAGCTAT
++
+=1=A=AAA,2?4>7C<<4<A+3<AB
+ at machine1:HiMom:abcdeACXX:1:1201:1140:2125 2:N:0:
+TTCATAAATTGGTCTTAGATGTTGC
++
+CC at FFFFFHHHHFGIJIIIJIJIJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1142:2242 2:N:0:
+GTAAAATGTAAAATAATAAAAAATG
++
+?=?DDDD;AF<DF<FFFFIIIFF@<
+ at machine1:HiMom:abcdeACXX:1:1201:1150:2161 2:N:0:
+TTCTCACTACTGTGATTGTGCCACT
++
+ at C@FFFFFGHHHHGIIIICEHCFGH
+ at machine1:HiMom:abcdeACXX:1:1201:1159:2179 2:Y:0:
+TTTTTTTTTATTTTTCTAAATACTT
++
+===AA####################
+ at machine1:HiMom:abcdeACXX:1:1201:1160:2109 2:N:0:
+ACATCCTTCCCATGCCACCAACTCG
++
+CCCFFFFFGHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1180:2119 2:N:0:
+GCTCTAAATTTTGCTTTTCTACAGC
++
+CCCFFFFFHHHHHJJJJIJIJJIJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1185:2143 2:N:0:
+GCTGAAGGCCCGTGGGCCAGAGGTG
++
+ at CCFFFFFHHHHHJJJJJJJJJJHI
+ at machine1:HiMom:abcdeACXX:1:1201:1187:2100 2:N:0:
+AAAAAAGAGCCCGCATTGCCGAGAC
++
+=<=;AA###################
+ at machine1:HiMom:abcdeACXX:1:1201:1190:2194 2:N:0:
+ACAAACCCTTGTGTCGAGGGCTGAC
++
+CCCFFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1204:2228 2:N:0:
+TCTTCTTGTCGATGAGGAACTTGGT
++
+@?@FFFFFDHHGHJIJJGHIIJJJH
+ at machine1:HiMom:abcdeACXX:1:1201:1208:2132 2:N:0:
+CTGTAGAAAGGATGGTCGGGCTCCA
++
+@@CDFFFFGHFHHJIJJGJIBHJJG
+ at machine1:HiMom:abcdeACXX:1:1201:1219:2115 2:N:0:
+TGGGAGTAGTTCCCTGCTAAGGGAG
++
+???DBDBDADDDDIEID:AFFD:?8
+ at machine1:HiMom:abcdeACXX:1:1201:1236:2187 2:N:0:
+CTCCTTAGCGGATTCCGACTTCCAT
++
+CCCFFFFDHHHHGIJJIGIGIJJGG
+ at machine1:HiMom:abcdeACXX:1:1201:1242:2207 2:N:0:
+ATCTTTTATTGGCCTCCTGCTCCCC
++
+CCCFFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1252:2141 2:N:0:
+AGTTATTTTGCCTATGTCCAACAAG
++
+BCBFFFFFGHHHHJIJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1260:2165 2:N:0:
+ATCTGATCTAAGTTGGGGGACGCCG
++
+@@@FFDFFHHHHHJJJIJIIIGIJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1280:2179 2:N:0:
+GAGGACTGCTTGAGTCCAGGAGTTC
++
+@@BFFDEFGHHHHIFGCHIJJJGGI
+ at machine1:HiMom:abcdeACXX:1:1201:1281:2133 2:N:0:
+GCAACAAAATTTCATATGACTTAGC
++
+CCCFFFFFHHHHHJJIIIHICHIIJ
+ at machine1:HiMom:abcdeACXX:1:1201:1285:2100 2:N:0:
+GATCTTTTTTGCTTTGTAGTTATAG
++
+@@@DFFFFHHHHHIIGIABCFFHBF
+ at machine1:HiMom:abcdeACXX:1:1201:1291:2158 2:N:0:
+CGTGTGCTCTTCCGATCTGATGGGC
++
+ at CCFFFDD?FHHFGEHHIIDHIIII
+ at machine1:HiMom:abcdeACXX:1:1201:1300:2137 2:N:0:
+GCTCTTCCGATCTTTTTTTTAATTT
++
+@@?DDDDDFDHADEHGIGGED3?FD
+ at machine1:HiMom:abcdeACXX:1:1201:1312:2112 2:N:0:
+ATTTGCAGGAGCCGGCGCAGGTGCA
++
+CCCFFFFFHHHHHJJJIJJJJGHIJ
+ at machine1:HiMom:abcdeACXX:1:1201:1331:2162 2:N:0:
+TAATCCCAGTACTTTGGGAGGCCAA
++
+CCCFFFFFHHHHHJJJJIJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1341:2116 2:N:0:
+ATAACAGCGAGACTGGCAACTTAAA
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1201:1344:2147 2:N:0:
+ACGATTAGTTTTAGCATTGGAGTAG
++
+@<??DDDDFHHHFGGHHIIIGGAGH
+ at machine1:HiMom:abcdeACXX:1:1201:1345:2181 2:N:0:
+ATACGGATGTGTTTAGGAGTGGGAC
++
+CCCFFFFFHHHHHIIJJHJFHIJIJ
+ at machine1:HiMom:abcdeACXX:1:1201:1364:2113 2:N:0:
+TAAAGAGAGCCAGTGGAGTTACGAC
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1201:1392:2109 2:N:0:
+GTCAGACAGGGGGATTTGGGCTGTG
++
+BBCFFFFFHHHHHHJJJHIJIJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1392:2184 2:N:0:
+ATCTTTATTCATTTGTATGATCTTA
++
+@@BFFFFFHFFHFHIHIIJIJJJJI
+ at machine1:HiMom:abcdeACXX:1:1201:1393:2143 2:N:0:
+GATAAATGCACGCATCCCCCCCGCG
++
+C at CFFFFFGGHHHHJJJJJJJJJJI
+ at machine1:HiMom:abcdeACXX:1:1201:1414:2174 2:Y:0:
+TTTTTTTTTTTTTTTTTTTTTTTTT
++
+@;@1BDADF????FFEB>B6=BBBB
+ at machine1:HiMom:abcdeACXX:1:1201:1416:2128 2:N:0:
+TTGGTGTGGAGGCGGTGGCGGGATC
++
+@@@DDDDDHHFHHII:?GGHIIB6?
+ at machine1:HiMom:abcdeACXX:1:1201:1421:2154 2:N:0:
+TGTGCTCTTCCGATCTTGTGCTCTT
++
+BC at DFFFFHHHHHJJJJFHIHHIJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1439:2156 2:N:0:
+GGAGATTATTTGCCTTGAAGTAAGC
++
+-;(22<>>@>8@>8;@#########
+ at machine1:HiMom:abcdeACXX:1:1201:1452:2143 2:N:0:
+TTTTAGTCTTAGCATTTACTTTCCC
++
+CCCFFFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:1201:1458:2109 2:N:0:
+GATACGAACACACAAGAACTTTTTT
++
+CCCFFFFFHHHHHJJJJJJJJJJJI
+ at machine1:HiMom:abcdeACXX:1:1201:1472:2121 2:Y:0:
+GTGTGCTCTTCCGATCTGGAGGATG
++
+=+=??A4A==A at 7A<?#########
+ at machine1:HiMom:abcdeACXX:1:1201:1483:2126 2:Y:0:
+GCATGCAGCTGGGTGCTGTGATGCA
++
+@@@DDDBB<DD8F<<CGG?AA?A<F
+ at machine1:HiMom:abcdeACXX:1:1201:1486:2109 2:N:0:
+ACGTGTGCTCTTCCCGATCTGTATA
++
+CCCFF?DDFBHHHJJIIDHJIJJJH
+ at machine1:HiMom:abcdeACXX:1:1201:1486:2146 2:Y:0:
+TTTTTTTTTTTTTTTTTTTTTGGGC
++
+<<<@??@??@???????########
+ at machine1:HiMom:abcdeACXX:1:2101:1011:2102 2:N:0:
+NNNNNTCACACATAATTTTAAAATT
++
+#####22@?@@??@@@@@??@@@@@
+ at machine1:HiMom:abcdeACXX:1:2101:1013:2146 2:N:0:
+NNNNCGCTAGAACCAACTTATTCAT
++
+####24=?@@?@?@@?@@@@@@?@@
+ at machine1:HiMom:abcdeACXX:1:2101:1021:2209 2:N:0:
+NNGGAAGGCTGCTAGCTGGCCAGAG
++
+##08@>??@@??@?????????>?@
+ at machine1:HiMom:abcdeACXX:1:2101:1023:2237 2:Y:0:
+NNTTTGTTTGAGTTCCTTGTAGATT
++
+##0:=@?>?@???@:>?@??>?;?<
+ at machine1:HiMom:abcdeACXX:1:2101:1031:2163 2:N:0:
+NNACATTTGTCACCACTAGCCACCA
++
+##0<@?@@@@@@@@@@?@@@@@@@?
+ at machine1:HiMom:abcdeACXX:1:2101:1036:2087 2:N:0:
+NGTCCACTTACGAAGCAAATACTTT
++
+#4=DDFFFHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1040:2208 2:Y:0:
+NCTGATAGTCACTGAAATGAATTCA
++
+#-0=>(2 at .22@@############
+ at machine1:HiMom:abcdeACXX:1:2101:1048:2238 2:N:0:
+NGTCACATCGTTGAAGCACTGGATC
++
+#11ADDDB<CFFHCHGDBHGIIIII
+ at machine1:HiMom:abcdeACXX:1:2101:1054:2162 2:N:0:
+NGGACAGGGAAGGGAAGGAAGGGTG
++
+#4=DDFDFHHHHHJIJIIDHHGICG
+ at machine1:HiMom:abcdeACXX:1:2101:1059:2083 2:N:0:
+NGAATGTCTTAGAAGGATGCTTCTC
++
+#1=BDDDEHHGHHJJJJJIJJIIJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1063:2206 2:N:0:
+NTGCTAGGATGAGGATGGATAGTAA
++
+#1=DDDFFHHHHHJHIIJHIIIHHJ
+ at machine1:HiMom:abcdeACXX:1:2101:1064:2242 2:N:0:
+NGGAAAAAGGTTGTCAAGCGTTAAA
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:2101:1072:2170 2:N:0:
+NGGGGAGACAGAGAGGATCAGAAGT
++
+#4=BDDFDHHDFHEGFEGGIJIIIG
+ at machine1:HiMom:abcdeACXX:1:2101:1077:2139 2:N:0:
+NATTAGTTGGCGGATGAAGCAGATA
++
+#4=DFFFFHHHHHJJJJJJJJJIJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1084:2188 2:N:0:
+TACAAGGTCAAAATCAGCAACAAGT
++
+CCCFFFFDHHHHHJJJJJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1100:2085 2:N:0:
+ATCTTGATCTCCTCCTTCTTGGCCT
++
+@@@DDDDDHHFHFEIIIIHHBAHBG
+ at machine1:HiMom:abcdeACXX:1:2101:1102:2221 2:N:0:
+ATAACTGACTCTACTCAGTAGATTA
++
+CCCFFFFFHHHHHJJJJJIJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1105:2131 2:N:0:
+CAGCAGCAGCAACAGCAGAAACATG
++
+CCCFFFFFHHHHHJJJJJIJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1112:2245 2:N:0:
+TCGTAGTGTTGTAATTTCGTCTTCT
++
+?8?DBDDDCCFCAACGGFFCBFFAE
+ at machine1:HiMom:abcdeACXX:1:2101:1122:2136 2:N:0:
+CTTGCCAGCCTGCAGGCCCCGCGGC
++
+???BBAABDD?DDIID)A:3<EADD
+ at machine1:HiMom:abcdeACXX:1:2101:1123:2095 2:N:0:
+TCCGCCTCCAGCTTCAGCTTCTCCT
++
+@@@FDDFFHHHHHJHGGJIJJJEHH
+ at machine1:HiMom:abcdeACXX:1:2101:1126:2082 2:N:0:
+TCTCTTTCCACCTTGGTCACCTTCC
++
+ at C@DDDFFHHHHHJEGGIHHIJGIH
+ at machine1:HiMom:abcdeACXX:1:2101:1133:2239 2:N:0:
+AGCTTTTTGTTTCCTAGCTTGTCTT
++
+?@?DDFFFHHHHF4ACFHIJHHHGH
+ at machine1:HiMom:abcdeACXX:1:2101:1143:2137 2:N:0:
+GCTCTTCAGATCTAGGGGGAACAGC
++
+@@@DD?=DCAFFFHIIDG:EFHIII
+ at machine1:HiMom:abcdeACXX:1:2101:1151:2182 2:Y:0:
+TTTTTTTTTTTTTTTTTTTTTTTTA
++
+9<<?@?@;5=?##############
+ at machine1:HiMom:abcdeACXX:1:2101:1151:2236 2:Y:0:
+TTTGAAGCCTCTTTATCCTTGGCAT
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:2101:1162:2139 2:N:0:
+ATCGTTTATGGTCGGAACTACGACG
++
+BCCFFFFFHHHHHIJJJJJJJIJJI
+ at machine1:HiMom:abcdeACXX:1:2101:1163:2203 2:N:0:
+TTGGTTCACTTATGTATTTATGAAT
++
+ at CCFDFFFHHHHHJHIIJJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1163:2222 2:N:0:
+GAGCGATAATGGTTCTTTTCCTCAC
++
+@@@DFFFFHHHHHJJJJJJJIJJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1172:2152 2:Y:0:
+ATCGTTTCTGGGGACTAGTGAGGCG
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:2101:1186:2093 2:N:0:
+AATGTTGGGAGGACAATGATGGAAA
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:2101:1188:2195 2:N:0:
+GCACATACACCAAATGTCTGAACCT
++
+CCCFFFFFHHHHHJJJHIJJJJJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1195:2150 2:N:0:
+AATTGAACTTCACCACCCAGAGGAA
++
+CCCFFFFFHHHHHJJJJJJIJJJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1207:2084 2:Y:0:
+TCACCACTCTTCTGGGCATCCCCTG
++
+@@@DDEDFHHHHHIJIHHGHGGJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1208:2231 2:Y:0:
+CTTTTTTTTTTTTTTTTTTTTTTTT
++
+CCCFFFFFHHHHHJJJHFDDDDDDD
+ at machine1:HiMom:abcdeACXX:1:2101:1215:2110 2:N:0:
+ATCTTTCCCCCATTAAGAACAGCAA
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:2101:1216:2172 2:N:0:
+GGACTTCTAGGGGATTTAGCGGGGT
++
+CCCFFFFFHHHHHJJJJJJJJJJJD
+ at machine1:HiMom:abcdeACXX:1:2101:1216:2193 2:N:0:
+AGGCATGACACTGCATTTTAAATAC
++
+@@@DDDDDHFFHHGGDFHFHIIHGG
+ at machine1:HiMom:abcdeACXX:1:2101:1226:2088 2:N:0:
+GCTCTTCCGATCTAGGTAATAGCTA
++
+==?BDFFFDCDDHFFFAFHDHIJGJ
+ at machine1:HiMom:abcdeACXX:1:2101:1231:2208 2:N:0:
+AGCCAGTGTTGGTGTGTTGACTGTT
++
+@@;1ADABCF;BF<AACGCHEBHC<
+ at machine1:HiMom:abcdeACXX:1:2101:1233:2133 2:Y:0:
+TTTTTTTTTTTTTTTTTTTTTTTTT
++
+CCCFFFFFGHHHHJJJFDDDDDDDD
+ at machine1:HiMom:abcdeACXX:1:2101:1240:2197 2:Y:0:
+ACTGGAGATCCTTGTTACATGCCCA
++
+??+++A:DD?:ADEE@::C4:C<E:
+ at machine1:HiMom:abcdeACXX:1:2101:1245:2154 2:N:0:
+ACCAATCAGTAGCACCACTATACAC
++
+CCCFFFFFHHHHHJJJJJJIJJJJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1249:2231 2:N:0:
+TCTCTCGGCCTTCCACTCTAGCATA
++
+@@@FFFFFFHHGHIJJJGJIIJHIJ
+ at machine1:HiMom:abcdeACXX:1:2101:1258:2092 2:N:0:
+TTAGACAAAACACCAAAATAAAATA
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:2101:1262:2128 2:Y:0:
+TCTTGTGGTAACTTTTCTGACACCT
++
+-(---9@;@?:8>?4:>?@######
+ at machine1:HiMom:abcdeACXX:1:2101:1273:2119 2:Y:0:
+ATGATGGATCTTCTCTAACTTGTCA
++
+>=><AAAAA+2AA?CB4@@ABB3?A
+ at machine1:HiMom:abcdeACXX:1:2101:1285:2105 2:Y:0:
+TGTCTATATCAACCAACACCTCTTC
++
+-(0(():94:9:???##########
+ at machine1:HiMom:abcdeACXX:1:2101:1312:2105 2:N:0:
+GTTGAGAATAGGTTGAGATCGTTTC
++
+ at CCFFFDFHHFHDHIJJJJJJJIJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1325:2083 2:N:0:
+TGTGCTCTTCCGATCTGGAGAAAAA
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:2101:1336:2109 2:N:0:
+AGACCAGAACAGCTCCAGGTGCTCC
++
+CCCFFFFFHHHHHJJJJJJCGHIJJ
+ at machine1:HiMom:abcdeACXX:1:2101:1349:2084 2:N:0:
+AGTCTGAATCATTGGTGTCTGAAGA
++
+<5;??=>=>>?##############
+ at machine1:HiMom:abcdeACXX:1:2101:1365:2094 2:N:0:
+GCTCTTCCGATCTTGTGCTCTTCCG
++
+CCCFFFFDHFHHGJJIIJIJJIHII
+ at machine1:HiMom:abcdeACXX:1:2101:1370:2116 2:N:0:
+CACCATCTGACATCATGTTTGAAAG
++
+@@@DFFFDFFHDHIGBHHII<HEDB
+ at machine1:HiMom:abcdeACXX:1:2101:1386:2105 2:N:0:
+AGGAATTATTCTTCTGCCATAAGGT
++
+B@@DDFFFHGFHHIJJJJJGIGIJH
+ at machine1:HiMom:abcdeACXX:1:2101:1414:2098 2:N:0:
+TTGGGGCCGGTGCCGTCGGGCCCAA
++
+CCCFFFFFHHHHGJJIJJJJJJJIJ
+ at machine1:HiMom:abcdeACXX:1:2101:1427:2081 2:N:0:
+CCGACTTCCATGGCCACCGTCCTGC
++
+CCCFFFFFHHHHHJJJIIGFIIJJI
+ at machine1:HiMom:abcdeACXX:1:2101:1450:2134 2:N:0:
+ACAAACCCTTGTGTCGAGGGCTGAC
++
+CC at FDFDFFDFHFGIIE1CGGHBGE
+ at machine1:HiMom:abcdeACXX:1:2101:1459:2083 2:N:0:
+ATTTCACCAAAATAATCAGAAGGCC
++
+CCCFFFFDBHGHHIGGIJFJJGGFH
+ at machine1:HiMom:abcdeACXX:1:2101:1491:2093 2:N:0:
+AGAGACGGGGTCTCGCTATGTTGCC
++
+BCCDFFFFHHHHHJIIJJJJIJIJJ
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/testMultiplex.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/testMultiplex.1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/testMultiplex.1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/testMultiplex.1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/testMultiplex.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/testMultiplex.barcode_1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/testMultiplex.barcode_1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/testMultiplex.barcode_1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/testMultiplexRH.1.fastq b/testdata/picard/illumina/25T8B25T/fastq/testMultiplexRH.1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/testMultiplexRH.1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/testMultiplexRH.1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/testMultiplexRH.2.fastq b/testdata/picard/illumina/25T8B25T/fastq/testMultiplexRH.2.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/testMultiplexRH.2.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/testMultiplexRH.2.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/fastq/testMultiplexRH.barcode_1.fastq b/testdata/picard/illumina/25T8B25T/fastq/testMultiplexRH.barcode_1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/fastq/testMultiplexRH.barcode_1.fastq
rename to testdata/picard/illumina/25T8B25T/fastq/testMultiplexRH.barcode_1.fastq
diff --git a/testdata/picard/illumina/25T8B25T/sams/AAAAAAAA.sam b/testdata/picard/illumina/25T8B25T/sams/AAAAAAAA.sam
new file mode 100644
index 0000000..4882d35
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/AAAAAAAA.sam
@@ -0,0 +1,2 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_AAAAAAAA	LB:LN_AAAAAAAA	PL:illumina	PU:HiMom.1.AAAAAAAA	CN:BI
diff --git a/testdata/picard/illumina/25T8B25T/sams/AAAAGAAG.sam b/testdata/picard/illumina/25T8B25T/sams/AAAAGAAG.sam
new file mode 100644
index 0000000..6446f79
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/AAAAGAAG.sam
@@ -0,0 +1,2 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_AAAAGAAG	LB:LN_AAAAGAAG	PL:illumina	PU:HiMom.1.AAAAGAAG	CN:BI
diff --git a/testdata/picard/illumina/25T8B25T/sams/AACAATGG.sam b/testdata/picard/illumina/25T8B25T/sams/AACAATGG.sam
new file mode 100644
index 0000000..e081929
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/AACAATGG.sam
@@ -0,0 +1,10 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_AACAATGG	LB:LN_AACAATGG	PL:illumina	PU:HiMom.1.AACAATGG	CN:BI
+HiMom:1:1101:1138:2141	77	*	0	0	*	*	0	0	.TTACCAAGGTTTTCTGTTTAGTGA	#1=DDFFFHHFHHJJJIHJIJJJJJ	RG:Z:HiMom.1
+HiMom:1:1101:1138:2141	141	*	0	0	*	*	0	0	TCCGATCTGCTTCAGGTCGATCAGA	CCCFFFFFHGHHHJJIGHIJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1101:1206:2126	77	*	0	0	*	*	0	0	.ATTCTGCCATATTGGTCCGACAGT	#1=DDFFFHHHHHJJJJJJJJJIJJ	RG:Z:HiMom.1
+HiMom:1:1101:1206:2126	141	*	0	0	*	*	0	0	ATCTGTCCAGTGGTGCACTGAATGT	CCCFFFFFHHHHHHIIJJJJIJJJJ	RG:Z:HiMom.1
+HiMom:1:2101:1077:2139	77	*	0	0	*	*	0	0	CACAGGCTTCCACGGACTTAACGTC	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:2101:1077:2139	141	*	0	0	*	*	0	0	.ATTAGTTGGCGGATGAAGCAGATA	#4=DFFFFHHHHHJJJJJJJJJIJJ	RG:Z:HiMom.1
+HiMom:1:2101:1112:2245	77	*	0	0	*	*	0	0	TGCCATCTGCTCTGGGAAGCACCAG	1:=DDDDDFBC:DEFIFFFIEF at BE	RG:Z:HiMom.1
+HiMom:1:2101:1112:2245	141	*	0	0	*	*	0	0	TCGTAGTGTTGTAATTTCGTCTTCT	?8?DBDDDCCFCAACGGFFCBFFAE	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B25T/sams/AACGCATT.sam b/testdata/picard/illumina/25T8B25T/sams/AACGCATT.sam
new file mode 100644
index 0000000..3d40a1f
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/AACGCATT.sam
@@ -0,0 +1,16 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_AACGCATT	LB:LN_AACGCATT	PL:illumina	PU:HiMom.1.AACGCATT	CN:BI
+HiMom:1:1101:1197:2200	77	*	0	0	*	*	0	0	GGGCGCCCCGTGAGGACCCAGTCCT	@C at FFADDFFCFCEHIIJIJJIEFC	RG:Z:HiMom.1
+HiMom:1:1101:1197:2200	141	*	0	0	*	*	0	0	ATATTCCACTGGAACCACAGAACCC	@@@FFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1101:1308:2153	589	*	0	0	*	*	0	0	TTTTGGAAGAGACCTCAATTACTGT	???DDDDD?:22AE:A2<3,AF?3A	RG:Z:HiMom.1
+HiMom:1:1101:1308:2153	653	*	0	0	*	*	0	0	TCTGTAAGGTAATCCCCGCATGTGT	1?1=4===AFFDFFGFDGFB at CFB:	RG:Z:HiMom.1
+HiMom:1:1101:1452:2132	77	*	0	0	*	*	0	0	.CGTCCTGGAAAACGGGGCGCGGCT	#1=BDBDDFHHHHF at FHDHIGIIII	RG:Z:HiMom.1
+HiMom:1:1101:1452:2132	141	*	0	0	*	*	0	0	ACAAACCCTTGTGTCGAGGGCTGAC	CCCFFFFFHHHHHJJJJJJJIJJJJ	RG:Z:HiMom.1
+HiMom:1:1201:1150:2161	77	*	0	0	*	*	0	0	AAGTCACCTAATATCTTTTTTTTTT	@@<??;?D?CFD,A4CDDHFBIIID	RG:Z:HiMom.1
+HiMom:1:1201:1150:2161	141	*	0	0	*	*	0	0	TTCTCACTACTGTGATTGTGCCACT	@C at FFFFFGHHHHGIIIICEHCFGH	RG:Z:HiMom.1
+HiMom:1:2101:1240:2197	589	*	0	0	*	*	0	0	ATAAAACATAGCAATATTTTCCTAT	#########################	RG:Z:HiMom.1
+HiMom:1:2101:1240:2197	653	*	0	0	*	*	0	0	ACTGGAGATCCTTGTTACATGCCCA	??+++A:DD?:ADEE@::C4:C<E:	RG:Z:HiMom.1
+HiMom:1:2101:1336:2109	77	*	0	0	*	*	0	0	.ACTATCAGGATCGTGGCTATTTTG	#1BDDFFFHHHHHJIJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:2101:1336:2109	141	*	0	0	*	*	0	0	AGACCAGAACAGCTCCAGGTGCTCC	CCCFFFFFHHHHHJJJJJJCGHIJJ	RG:Z:HiMom.1
+HiMom:1:2101:1427:2081	77	*	0	0	*	*	0	0	.CGAGTGCCTAGTGGGCCACTTTTG	#4=DDBDFHHHHFHIJJJJIJJJJI	RG:Z:HiMom.1
+HiMom:1:2101:1427:2081	141	*	0	0	*	*	0	0	CCGACTTCCATGGCCACCGTCCTGC	CCCFFFFFHHHHHJJJIIGFIIJJI	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B25T/sams/ACAAAATT.sam b/testdata/picard/illumina/25T8B25T/sams/ACAAAATT.sam
new file mode 100644
index 0000000..3cfd422
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/ACAAAATT.sam
@@ -0,0 +1,2 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_ACAAAATT	LB:LN_ACAAAATT	PL:illumina	PU:HiMom.1.ACAAAATT	CN:BI
diff --git a/testdata/picard/illumina/25T8B25T/sams/ACAGGTAT.sam b/testdata/picard/illumina/25T8B25T/sams/ACAGGTAT.sam
new file mode 100644
index 0000000..aa9ca4d
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/ACAGGTAT.sam
@@ -0,0 +1,10 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_ACAGGTAT	LB:LN_ACAGGTAT	PL:illumina	PU:HiMom.1.ACAGGTAT	CN:BI
+HiMom:1:1101:1236:2121	77	*	0	0	*	*	0	0	.GGTGCTTCATATCCCTCTAGAGGA	#1=BDDFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1101:1236:2121	141	*	0	0	*	*	0	0	TTGCGCTTACTTTGTAGCCTTCATC	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1201:1341:2116	77	*	0	0	*	*	0	0	.AGAAGCCCCAGGAGGAAGACAGTC	#1=DDFFFHHHHHHHJIIJJJJJGI	RG:Z:HiMom.1
+HiMom:1:1201:1341:2116	141	*	0	0	*	*	0	0	ATAACAGCGAGACTGGCAACTTAAA	#########################	RG:Z:HiMom.1
+HiMom:1:2101:1063:2206	77	*	0	0	*	*	0	0	TCCTATTCGCCTACACAATTCTCCG	CCCFFFFFHHHHHJJJJJJJHJJJJ	RG:Z:HiMom.1
+HiMom:1:2101:1063:2206	141	*	0	0	*	*	0	0	.TGCTAGGATGAGGATGGATAGTAA	#1=DDDFFHHHHHJHIIJHIIIHHJ	RG:Z:HiMom.1
+HiMom:1:2101:1325:2083	77	*	0	0	*	*	0	0	.CAGAAGAAAGGGCCTTGTCGGAGG	#1=DDDDDHHFHDGI at EEHG:?FA8	RG:Z:HiMom.1
+HiMom:1:2101:1325:2083	141	*	0	0	*	*	0	0	TGTGCTCTTCCGATCTGGAGAAAAA	#########################	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B25T/sams/ACAGTTGA.sam b/testdata/picard/illumina/25T8B25T/sams/ACAGTTGA.sam
new file mode 100644
index 0000000..69a1771
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/ACAGTTGA.sam
@@ -0,0 +1,6 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_ACAGTTGA	LB:LN_ACAGTTGA	PL:illumina	PU:HiMom.1.ACAGTTGA	CN:BI
+HiMom:1:2101:1048:2238	77	*	0	0	*	*	0	0	.CTGCCGTGTCCTGACTTCTGGAAT	#1:B?ADDACF<DCG;EG<FHH at CE	RG:Z:HiMom.1
+HiMom:1:2101:1048:2238	141	*	0	0	*	*	0	0	.GTCACATCGTTGAAGCACTGGATC	#11ADDDB<CFFHCHGDBHGIIIII	RG:Z:HiMom.1
+HiMom:1:2101:1216:2193	77	*	0	0	*	*	0	0	TTTTCTTGGCCTCTGTTTTTTTTTT	BCCFDFFFHHFFHJIGIJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:2101:1216:2193	141	*	0	0	*	*	0	0	AGGCATGACACTGCATTTTAAATAC	@@@DDDDDHFFHHGGDFHFHIIHGG	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B25T/sams/ACCAGTTG.sam b/testdata/picard/illumina/25T8B25T/sams/ACCAGTTG.sam
new file mode 100644
index 0000000..0df9571
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/ACCAGTTG.sam
@@ -0,0 +1,2 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_ACCAGTTG	LB:LN_ACCAGTTG	PL:illumina	PU:HiMom.1.ACCAGTTG	CN:BI
diff --git a/testdata/picard/illumina/25T8B25T/sams/ACGAAATC.sam b/testdata/picard/illumina/25T8B25T/sams/ACGAAATC.sam
new file mode 100644
index 0000000..1fbb7b4
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/ACGAAATC.sam
@@ -0,0 +1,2 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_ACGAAATC	LB:LN_ACGAAATC	PL:illumina	PU:HiMom.1.ACGAAATC	CN:BI
diff --git a/testdata/picard/illumina/25T8B25T/sams/ACTAAGAC.sam b/testdata/picard/illumina/25T8B25T/sams/ACTAAGAC.sam
new file mode 100644
index 0000000..4be2063
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/ACTAAGAC.sam
@@ -0,0 +1,10 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_ACTAAGAC	LB:LN_ACTAAGAC	PL:illumina	PU:HiMom.1.ACTAAGAC	CN:BI
+HiMom:1:1101:1259:2152	77	*	0	0	*	*	0	0	CACCTATAATCCCAGCTACTCCAGA	CCCFFFFFHHHHHJJJJJJIJJJIJ	RG:Z:HiMom.1
+HiMom:1:1101:1259:2152	141	*	0	0	*	*	0	0	ATTTTTATATTTTTTTAGACATAGG	CCCFFFFFGHHHHJJJJIGIIJJJJ	RG:Z:HiMom.1
+HiMom:1:1101:1261:2127	589	*	0	0	*	*	0	0	.TGAAATCTGGATAGGCTGGAGTTA	#0-@@@###################	RG:Z:HiMom.1
+HiMom:1:1101:1261:2127	653	*	0	0	*	*	0	0	TTTTTTTTTTTTTTTTTTTTTTTTT	CCCFFFFFHGHHHJJIFDDDDDDDD	RG:Z:HiMom.1
+HiMom:1:2101:1021:2209	77	*	0	0	*	*	0	0	.GGCCCCACCCTCCTCCAGCACGTC	#1=DDFFFHHHHHJJJJJJHIIHFH	RG:Z:HiMom.1
+HiMom:1:2101:1021:2209	141	*	0	0	*	*	0	0	..GGAAGGCTGCTAGCTGGCCAGAG	##08@>??@@??@?????????>?@	RG:Z:HiMom.1
+HiMom:1:2101:1262:2128	589	*	0	0	*	*	0	0	AGCAGAAGGGCAAAAGCTGGCTTGA	9;<@:@###################	RG:Z:HiMom.1
+HiMom:1:2101:1262:2128	653	*	0	0	*	*	0	0	TCTTGTGGTAACTTTTCTGACACCT	-(---9@;@?:8>?4:>?@######	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B25T/sams/ACTGTACC.sam b/testdata/picard/illumina/25T8B25T/sams/ACTGTACC.sam
new file mode 100644
index 0000000..bcf9179
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/ACTGTACC.sam
@@ -0,0 +1,2 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_ACTGTACC	LB:LN_ACTGTACC	PL:illumina	PU:HiMom.1.ACTGTACC	CN:BI
diff --git a/testdata/picard/illumina/25T8B25T/sams/ACTGTATC.sam b/testdata/picard/illumina/25T8B25T/sams/ACTGTATC.sam
new file mode 100644
index 0000000..93a8856
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/ACTGTATC.sam
@@ -0,0 +1,10 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_ACTGTATC	LB:LN_ACTGTATC	PL:illumina	PU:HiMom.1.ACTGTATC	CN:BI
+HiMom:1:1201:1458:2109	77	*	0	0	*	*	0	0	.GAGACCATAGAGCGGATGCTTTCA	#1=DDDFFHHGHGIJJIGIIJJJJJ	RG:Z:HiMom.1
+HiMom:1:1201:1458:2109	141	*	0	0	*	*	0	0	GATACGAACACACAAGAACTTTTTT	CCCFFFFFHHHHHJJJJJJJJJJJI	RG:Z:HiMom.1
+HiMom:1:2101:1105:2131	77	*	0	0	*	*	0	0	TTGGAACACAGCGGGAATCACAGCA	CCCFFFFFHHHHHJIJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:2101:1105:2131	141	*	0	0	*	*	0	0	CAGCAGCAGCAACAGCAGAAACATG	CCCFFFFFHHHHHJJJJJIJJJJJJ	RG:Z:HiMom.1
+HiMom:1:2101:1349:2084	77	*	0	0	*	*	0	0	.CAAGTAGCAGTGTCACGCCTTAGC	#1=DDBDDADFDDBEH at HC=CEGG@	RG:Z:HiMom.1
+HiMom:1:2101:1349:2084	141	*	0	0	*	*	0	0	AGTCTGAATCATTGGTGTCTGAAGA	<5;??=>=>>?##############	RG:Z:HiMom.1
+HiMom:1:2101:1365:2094	77	*	0	0	*	*	0	0	.AAGGTGAAGGCCGGCGCGCTCGCC	#1=BDDDFFHHHHJGGGIGFIHIIJ	RG:Z:HiMom.1
+HiMom:1:2101:1365:2094	141	*	0	0	*	*	0	0	GCTCTTCCGATCTTGTGCTCTTCCG	CCCFFFFDHFHHGJJIIJIJJIHII	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B25T/sams/AGAAAAGA.sam b/testdata/picard/illumina/25T8B25T/sams/AGAAAAGA.sam
new file mode 100644
index 0000000..d40aec2
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/AGAAAAGA.sam
@@ -0,0 +1,2 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_AGAAAAGA	LB:LN_AGAAAAGA	PL:illumina	PU:HiMom.1.AGAAAAGA	CN:BI
diff --git a/testdata/picard/illumina/25T8B25T/sams/AGCATGGA.sam b/testdata/picard/illumina/25T8B25T/sams/AGCATGGA.sam
new file mode 100644
index 0000000..2d65d5a
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/AGCATGGA.sam
@@ -0,0 +1,8 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_AGCATGGA	LB:LN_AGCATGGA	PL:illumina	PU:HiMom.1.AGCATGGA	CN:BI
+HiMom:1:1101:1406:2222	77	*	0	0	*	*	0	0	CTCCCCCCGGGCTGAACCAGGGTAC	CCCFFDDDDHDFHIIIIIIIII9DG	RG:Z:HiMom.1
+HiMom:1:1101:1406:2222	141	*	0	0	*	*	0	0	GGCTGGACTCCCCTGGTTCTGGGCA	;?@DDDBD?FHDFGIIIGIGHHIII	RG:Z:HiMom.1
+HiMom:1:1201:1291:2158	77	*	0	0	*	*	0	0	AGAAGGGGAAAGCCTTCATCTTGGC	BCBFFFFFHHHHHJJJJJIIFIJIJ	RG:Z:HiMom.1
+HiMom:1:1201:1291:2158	141	*	0	0	*	*	0	0	CGTGTGCTCTTCCGATCTGATGGGC	@CCFFFDD?FHHFGEHHIIDHIIII	RG:Z:HiMom.1
+HiMom:1:2101:1370:2116	77	*	0	0	*	*	0	0	.TGGTGGTCCATAGAGATTTGAAAC	#1:4BD7DACF?FCA:4+<ACHIIH	RG:Z:HiMom.1
+HiMom:1:2101:1370:2116	141	*	0	0	*	*	0	0	CACCATCTGACATCATGTTTGAAAG	@@@DFFFDFFHDHIGBHHII<HEDB	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B25T/sams/AGGTAAGG.sam b/testdata/picard/illumina/25T8B25T/sams/AGGTAAGG.sam
new file mode 100644
index 0000000..cb7e319
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/AGGTAAGG.sam
@@ -0,0 +1,10 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_AGGTAAGG	LB:LN_AGGTAAGG	PL:illumina	PU:HiMom.1.AGGTAAGG	CN:BI
+HiMom:1:1101:1263:2236	589	*	0	0	*	*	0	0	CTTTGAAGACATTGTGAGATCTGTA	<==A<42 at C+A4A?,2A@=4 at 7A??	RG:Z:HiMom.1
+HiMom:1:1101:1263:2236	653	*	0	0	*	*	0	0	AGTTCTTCAGTAATTTTAGTACTGC	#########################	RG:Z:HiMom.1
+HiMom:1:2101:1054:2162	77	*	0	0	*	*	0	0	.CCAGGTGTCTTCCCGGGCCCTGCC	#1=DDFBDFHHHHJJJJJIJJJJJJ	RG:Z:HiMom.1
+HiMom:1:2101:1054:2162	141	*	0	0	*	*	0	0	.GGACAGGGAAGGGAAGGAAGGGTG	#4=DDFDFHHHHHJIJIIDHHGICG	RG:Z:HiMom.1
+HiMom:1:2101:1163:2203	77	*	0	0	*	*	0	0	TCTCCATGTGAAACAAGCAAAAAGA	CCCFFFFFHHHHGJJJIJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:2101:1163:2203	141	*	0	0	*	*	0	0	TTGGTTCACTTATGTATTTATGAAT	@CCFDFFFHHHHHJHIIJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:2101:1249:2231	77	*	0	0	*	*	0	0	GTTATTGATAGGATACTGTACAAAC	@BCFFFFDHHHHFIJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:2101:1249:2231	141	*	0	0	*	*	0	0	TCTCTCGGCCTTCCACTCTAGCATA	@@@FFFFFFHHGHIJJJGJIIJHIJ	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B25T/sams/AGGTCGCA.sam b/testdata/picard/illumina/25T8B25T/sams/AGGTCGCA.sam
new file mode 100644
index 0000000..01519a0
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/AGGTCGCA.sam
@@ -0,0 +1,10 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_AGGTCGCA	LB:LN_AGGTCGCA	PL:illumina	PU:HiMom.1.AGGTCGCA	CN:BI
+HiMom:1:1101:1150:2228	77	*	0	0	*	*	0	0	GCTACTCAGTAGACAGTCCCACCCT	@@CADDDDFCFHHIIIIGGIIGGGI	RG:Z:HiMom.1
+HiMom:1:1101:1150:2228	141	*	0	0	*	*	0	0	ATGGGAGGCGATTCCTAGGGGGTTG	8?=DD8;@BH6DHD<FGGGEIGHIG	RG:Z:HiMom.1
+HiMom:1:1101:1491:2120	77	*	0	0	*	*	0	0	.GGCAGGTGCCCCCACTTGACTCTC	#1?DFFFFGHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1101:1491:2120	141	*	0	0	*	*	0	0	GGCCAGGCTGAACTTCTGAGCTGCT	CCCFFFFFHHHGHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1201:1190:2194	77	*	0	0	*	*	0	0	AACCTGGCGCTAAACCATTCGTAGA	CCCFFFFFHHHHHJJJJJJJJIJJJ	RG:Z:HiMom.1
+HiMom:1:1201:1190:2194	141	*	0	0	*	*	0	0	ACAAACCCTTGTGTCGAGGGCTGAC	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:2101:1188:2195	77	*	0	0	*	*	0	0	TTAGACCGTCGTGAGACAGGTTAGT	@CCFFFFFHHHHHJJJJJIIEHIJH	RG:Z:HiMom.1
+HiMom:1:2101:1188:2195	141	*	0	0	*	*	0	0	GCACATACACCAAATGTCTGAACCT	CCCFFFFFHHHHHJJJHIJJJJJJJ	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B25T/sams/ATTATCAA.sam b/testdata/picard/illumina/25T8B25T/sams/ATTATCAA.sam
new file mode 100644
index 0000000..ddfe625
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/ATTATCAA.sam
@@ -0,0 +1,12 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_ATTATCAA	LB:LN_ATTATCAA	PL:illumina	PU:HiMom.1.ATTATCAA	CN:BI
+HiMom:1:1101:1100:2207	77	*	0	0	*	*	0	0	ACGACAGACGTTCTTTCTTTGCTGC	CCCFFFFFHHFHHJIJJJJJHIJJH	RG:Z:HiMom.1
+HiMom:1:1101:1100:2207	141	*	0	0	*	*	0	0	AGGCT............G.......	#########################	RG:Z:HiMom.1
+HiMom:1:1101:1157:2135	77	*	0	0	*	*	0	0	.GGACATTGTAATCATTTCTTACAA	#1=DD?DDHHHHHGGHIIIIIIIII	RG:Z:HiMom.1
+HiMom:1:1101:1157:2135	141	*	0	0	*	*	0	0	TTTAAAGTCTTAATCAAAGATGATA	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1101:1269:2170	77	*	0	0	*	*	0	0	ACAGTGTGGGAGGCAGACGAAGAGA	@@@DDDDDFA:C at EGA?FD<FFHII	RG:Z:HiMom.1
+HiMom:1:1101:1269:2170	141	*	0	0	*	*	0	0	TTCCAAGCCTGTGCTTTAAGGAAAA	@@<ADBDBDF8DDCFH at GIE@@GGH	RG:Z:HiMom.1
+HiMom:1:1201:1018:2217	589	*	0	0	*	*	0	0	.TTTCTCTGGGCGCAAAGATGTTCA	#07;8=8<<99(:=@@/@7>>6=?>	RG:Z:HiMom.1
+HiMom:1:1201:1018:2217	653	*	0	0	*	*	0	0	.........................	#########################	RG:Z:HiMom.1	XN:i:1
+HiMom:1:1201:1118:2198	77	*	0	0	*	*	0	0	CAAGTGTACAGGATTAGACTGGGTT	BCCFDEBDHHHHHIJJJGIIIJJGH	RG:Z:HiMom.1
+HiMom:1:1201:1118:2198	141	*	0	0	*	*	0	0	AATAAACTTTATTAAAGCAGTTAAA	C at CFFFFFHDHHHGIIIJJJIJJJJ	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B25T/sams/ATTCCTCT.sam b/testdata/picard/illumina/25T8B25T/sams/ATTCCTCT.sam
new file mode 100644
index 0000000..b9d4d47
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/ATTCCTCT.sam
@@ -0,0 +1,10 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_ATTCCTCT	LB:LN_ATTCCTCT	PL:illumina	PU:HiMom.1.ATTCCTCT	CN:BI
+HiMom:1:1101:1309:2210	77	*	0	0	*	*	0	0	ACACCAACCACCCAACTATCTATAA	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1101:1309:2210	141	*	0	0	*	*	0	0	AGTGGGCTAGGGCATTTTTAATCTT	@@?DFFDFHHHDFHJIJJIJGIIIJ	RG:Z:HiMom.1
+HiMom:1:1201:1018:2133	77	*	0	0	*	*	0	0	.AAAACTTGAGGATGCTATGCAAGC	#1:B:ADDDDDDDEEAEBF9FFEBF	RG:Z:HiMom.1
+HiMom:1:1201:1018:2133	141	*	0	0	*	*	0	0	.........................	#########################	RG:Z:HiMom.1	XN:i:1
+HiMom:1:1201:1073:2225	77	*	0	0	*	*	0	0	GGGGCTGAGACCTTTGCTGATGGTG	@@@FFFFFHHHGHJJJJJIIIGICH	RG:Z:HiMom.1
+HiMom:1:1201:1073:2225	141	*	0	0	*	*	0	0	CGTGTGCTCTTCCGATCTGGAGGGT	@BBDFFFFHHHHHJJJJJJJJJJJ:	RG:Z:HiMom.1
+HiMom:1:1201:1242:2207	77	*	0	0	*	*	0	0	ATGGCAAAGTGGTGTCTGAGACCAA	BCCFFFFFGHHHHHIIIJFHIJJJJ	RG:Z:HiMom.1
+HiMom:1:1201:1242:2207	141	*	0	0	*	*	0	0	ATCTTTTATTGGCCTCCTGCTCCCC	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B25T/sams/CAACTCTC.sam b/testdata/picard/illumina/25T8B25T/sams/CAACTCTC.sam
new file mode 100644
index 0000000..0e95ec4
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/CAACTCTC.sam
@@ -0,0 +1,12 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_CAACTCTC	LB:LN_CAACTCTC	PL:illumina	PU:HiMom.1.CAACTCTC	CN:BI
+HiMom:1:1101:1140:2120	77	*	0	0	*	*	0	0	.CCCCAACATTCTAATTATGCCTCA	#1:BDFFDHFFDFIJJJIIJIIIII	RG:Z:HiMom.1
+HiMom:1:1101:1140:2120	141	*	0	0	*	*	0	0	TTTTTTTTTTTTTAACTTTGCAAAT	@@@DDDDDHHHHFB at 9FHI@BFH@@	RG:Z:HiMom.1
+HiMom:1:1101:1328:2225	77	*	0	0	*	*	0	0	GAAATGCATCTGTCTTAGAAACTGG	??@=BDDDFDD<<,<2:C<F:FFEA	RG:Z:HiMom.1
+HiMom:1:1101:1328:2225	141	*	0	0	*	*	0	0	AGGAAATTAGGACTTACCTGACATA	#########################	RG:Z:HiMom.1
+HiMom:1:1201:1127:2112	589	*	0	0	*	*	0	0	.GTCAAGGATGTTCGTCGTGGCAAC	#1=BDDDDDDDDDID<AE?@<CEEE	RG:Z:HiMom.1
+HiMom:1:1201:1127:2112	653	*	0	0	*	*	0	0	TAATCACCTGAGCAGTGAAGCCAGC	@<@?BDDDHD?FDBHI?AHGGGDFH	RG:Z:HiMom.1
+HiMom:1:1201:1452:2143	77	*	0	0	*	*	0	0	TATCCCCTCTAAGACGGACCTGGGT	CCCFFFFFHHHHHJJIIIJJJJJJG	RG:Z:HiMom.1
+HiMom:1:1201:1452:2143	141	*	0	0	*	*	0	0	TTTTAGTCTTAGCATTTACTTTCCC	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1201:1486:2146	589	*	0	0	*	*	0	0	GTTCTCTGTCCCCAGGTCCTGTCTC	===A7<7222<<=C=?+<7>@?ACB	RG:Z:HiMom.1
+HiMom:1:1201:1486:2146	653	*	0	0	*	*	0	0	TTTTTTTTTTTTTTTTTTTTTGGGC	<<<@??@??@???????########	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B25T/sams/CAATAGAC.sam b/testdata/picard/illumina/25T8B25T/sams/CAATAGAC.sam
new file mode 100644
index 0000000..f800d53
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/CAATAGAC.sam
@@ -0,0 +1,2 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_CAATAGAC	LB:LN_CAATAGAC	PL:illumina	PU:HiMom.1.CAATAGAC	CN:BI
diff --git a/testdata/picard/illumina/25T8B25T/sams/CAATAGTC.sam b/testdata/picard/illumina/25T8B25T/sams/CAATAGTC.sam
new file mode 100644
index 0000000..4787a24
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/CAATAGTC.sam
@@ -0,0 +1,16 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_CAATAGTC	LB:LN_CAATAGTC	PL:illumina	PU:HiMom.1.CAATAGTC	CN:BI
+HiMom:1:1101:1316:2126	77	*	0	0	*	*	0	0	.AAAAAAAAAAAAAAAAAAAAAAAA	#1BDFFFFHHHHHJJJJFDDDDDDD	RG:Z:HiMom.1	XN:i:1
+HiMom:1:1101:1316:2126	141	*	0	0	*	*	0	0	TCTTTTTTTTTTTTTTTTTTTTTTT	CCCFFFFFHHHHHJJJJHFDDDDDD	RG:Z:HiMom.1
+HiMom:1:1101:1399:2128	77	*	0	0	*	*	0	0	.TGCCCTTCGTCCTGGGAAACGGGG	#1BDFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1101:1399:2128	141	*	0	0	*	*	0	0	ACAAACCCTTGTGTCGAGGGCTGAC	CCCFFFFFHHHHHIJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1201:1054:2151	77	*	0	0	*	*	0	0	.TAGTGCTGGGCACTAAGTAATACC	#4=DDDFFHHHHHJJJJJHIJJJJJ	RG:Z:HiMom.1
+HiMom:1:1201:1054:2151	141	*	0	0	*	*	0	0	GTCAGGCACTGAGAATATATGGGTG	CBCFFFFFHHHHHJJJJJJJJJJEG	RG:Z:HiMom.1
+HiMom:1:1201:1345:2181	77	*	0	0	*	*	0	0	GGATAATCCTATTTATTACCTCAGA	BBBDDFFFHHHHHJJJJJJJJJIJJ	RG:Z:HiMom.1
+HiMom:1:1201:1345:2181	141	*	0	0	*	*	0	0	ATACGGATGTGTTTAGGAGTGGGAC	CCCFFFFFHHHHHIIJJHJFHIJIJ	RG:Z:HiMom.1
+HiMom:1:1201:1392:2184	77	*	0	0	*	*	0	0	TTTCAGATTGGTCATTGTTAGTGTA	??@BDDDEHBHADHHIIEHDHFHFF	RG:Z:HiMom.1
+HiMom:1:1201:1392:2184	141	*	0	0	*	*	0	0	ATCTTTATTCATTTGTATGATCTTA	@@BFFFFFHFFHFHIHIIJIJJJJI	RG:Z:HiMom.1
+HiMom:1:2101:1172:2152	589	*	0	0	*	*	0	0	AACACGGACAAAGGAGTCTAACACG	<<<??8@@#################	RG:Z:HiMom.1
+HiMom:1:2101:1172:2152	653	*	0	0	*	*	0	0	ATCGTTTCTGGGGACTAGTGAGGCG	#########################	RG:Z:HiMom.1
+HiMom:1:2101:1491:2093	77	*	0	0	*	*	0	0	.CTATGCCGATCGGGTGTCCGCACT	#1=DDDDDHHFHHIIEHHHBGHGII	RG:Z:HiMom.1
+HiMom:1:2101:1491:2093	141	*	0	0	*	*	0	0	AGAGACGGGGTCTCGCTATGTTGCC	BCCDFFFFHHHHHJIIJJJJIJIJJ	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B25T/sams/CAGCGGAT.sam b/testdata/picard/illumina/25T8B25T/sams/CAGCGGAT.sam
new file mode 100644
index 0000000..c9d3cfe
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/CAGCGGAT.sam
@@ -0,0 +1,2 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_CAGCGGAT	LB:LN_CAGCGGAT	PL:illumina	PU:HiMom.1.CAGCGGAT	CN:BI
diff --git a/testdata/picard/illumina/25T8B25T/sams/CAGCGGTA.sam b/testdata/picard/illumina/25T8B25T/sams/CAGCGGTA.sam
new file mode 100644
index 0000000..9b44bd1
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/CAGCGGTA.sam
@@ -0,0 +1,12 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_CAGCGGTA	LB:LN_CAGCGGTA	PL:illumina	PU:HiMom.1.CAGCGGTA	CN:BI
+HiMom:1:1101:1420:2213	77	*	0	0	*	*	0	0	TACCTGGTTGATCCTGCCAGTAGCA	@@CFFFFDDHHGHJGGHIJJIHGBH	RG:Z:HiMom.1
+HiMom:1:1101:1420:2213	141	*	0	0	*	*	0	0	TTCACTGTACCGGCCGTGCGTACTT	@CCFFFFDHHHFGIJJJJJJGHIGG	RG:Z:HiMom.1
+HiMom:1:1201:1364:2113	77	*	0	0	*	*	0	0	.CACTCATTTTCTTATGTGGGATAT	#1=DDFDFHHHHHIJJIFHIIHHHI	RG:Z:HiMom.1
+HiMom:1:1201:1364:2113	141	*	0	0	*	*	0	0	TAAAGAGAGCCAGTGGAGTTACGAC	#########################	RG:Z:HiMom.1
+HiMom:1:2101:1072:2170	77	*	0	0	*	*	0	0	ATCACCGCACTCATTTCCCGCTTCC	CCCFFFFFHHHACEEGHIIBHIIII	RG:Z:HiMom.1
+HiMom:1:2101:1072:2170	141	*	0	0	*	*	0	0	.GGGGAGACAGAGAGGATCAGAAGT	#4=BDDFDHHDFHEGFEGGIJIIIG	RG:Z:HiMom.1
+HiMom:1:2101:1123:2095	77	*	0	0	*	*	0	0	.TGGACAACATGTTCGAGAGCTACA	#1=BBDDDFFFFDGFGIG?F;HHFI	RG:Z:HiMom.1
+HiMom:1:2101:1123:2095	141	*	0	0	*	*	0	0	TCCGCCTCCAGCTTCAGCTTCTCCT	@@@FDDFFHHHHHJHGGJIJJJEHH	RG:Z:HiMom.1
+HiMom:1:2101:1151:2236	589	*	0	0	*	*	0	0	TTAAAGAGGTTCAGGGATGCAGAGT	#########################	RG:Z:HiMom.1
+HiMom:1:2101:1151:2236	653	*	0	0	*	*	0	0	TTTGAAGCCTCTTTATCCTTGGCAT	#########################	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B25T/sams/CCAACATT.sam b/testdata/picard/illumina/25T8B25T/sams/CCAACATT.sam
new file mode 100644
index 0000000..cb583c2
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/CCAACATT.sam
@@ -0,0 +1,16 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_CCAACATT	LB:LN_CCAACATT	PL:illumina	PU:HiMom.1.CCAACATT	CN:BI
+HiMom:1:1101:1083:2193	77	*	0	0	*	*	0	0	TTCTACCTCACCTTAGGGAGAAGAC	@@@DDBDDD>F><C<4CG?EHGHIG	RG:Z:HiMom.1
+HiMom:1:1101:1083:2193	141	*	0	0	*	*	0	0	AGGCT....................	#########################	RG:Z:HiMom.1
+HiMom:1:1101:1175:2197	77	*	0	0	*	*	0	0	CCCCTGAGGACACCATCCCACTCCA	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1101:1175:2197	141	*	0	0	*	*	0	0	AAGAGCTGGGGAACATCCAGAAAGG	BC at FFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1201:1138:2227	589	*	0	0	*	*	0	0	GCTGACACAATCTCTTCCGCCTGGT	#########################	RG:Z:HiMom.1
+HiMom:1:1201:1138:2227	653	*	0	0	*	*	0	0	GACAAATATAGGAAATAGAAGCTAT	=1=A=AAA,2?4>7C<<4<A+3<AB	RG:Z:HiMom.1
+HiMom:1:1201:1260:2165	77	*	0	0	*	*	0	0	GGACACGGACAGGATTGACAGATTG	BCBFFFFFHHHHHHIIJHIIIFHIJ	RG:Z:HiMom.1
+HiMom:1:1201:1260:2165	141	*	0	0	*	*	0	0	ATCTGATCTAAGTTGGGGGACGCCG	@@@FFDFFHHHHHJJJIJIIIGIJJ	RG:Z:HiMom.1
+HiMom:1:1201:1281:2133	77	*	0	0	*	*	0	0	.GGAAATCCAGAAAACATAGAAGAT	#1=DDFFFHHHHHIJJJJJJJJIJJ	RG:Z:HiMom.1
+HiMom:1:1201:1281:2133	141	*	0	0	*	*	0	0	GCAACAAAATTTCATATGACTTAGC	CCCFFFFFHHHHHJJIIIHICHIIJ	RG:Z:HiMom.1
+HiMom:1:1201:1331:2162	77	*	0	0	*	*	0	0	ACGCTCGGCTAATTTTTGTATTTTT	@CCFFFDFHHHHHIJJJJHIJJJJJ	RG:Z:HiMom.1
+HiMom:1:1201:1331:2162	141	*	0	0	*	*	0	0	TAATCCCAGTACTTTGGGAGGCCAA	CCCFFFFFHHHHHJJJJIJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:2101:1186:2093	77	*	0	0	*	*	0	0	.CGACCATAAACGATGCCGACCGGC	#4=DFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:2101:1186:2093	141	*	0	0	*	*	0	0	AATGTTGGGAGGACAATGATGGAAA	#########################	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B25T/sams/CCAGCACC.sam b/testdata/picard/illumina/25T8B25T/sams/CCAGCACC.sam
new file mode 100644
index 0000000..11c6a98
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/CCAGCACC.sam
@@ -0,0 +1,8 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_CCAGCACC	LB:LN_CCAGCACC	PL:illumina	PU:HiMom.1.CCAGCACC	CN:BI
+HiMom:1:1101:1212:2230	77	*	0	0	*	*	0	0	TTTCTATTAGCTCTTAGTAAGATTA	CCCFFFFFHHHHHJJJIJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1101:1212:2230	141	*	0	0	*	*	0	0	TTTTAGCTTTATTGGGGAGGGGGTG	CCCFFFFFHHGHHJJJJGJJJJJDF	RG:Z:HiMom.1
+HiMom:1:1201:1204:2228	77	*	0	0	*	*	0	0	CCGATACGCTGAGTGTGGTTTGCGG	CCCFFFFFHHHFHEGGHIHIJJJJJ	RG:Z:HiMom.1
+HiMom:1:1201:1204:2228	141	*	0	0	*	*	0	0	TCTTCTTGTCGATGAGGAACTTGGT	@?@FFFFFDHHGHJIJJGHIIJJJH	RG:Z:HiMom.1
+HiMom:1:2101:1100:2085	77	*	0	0	*	*	0	0	.CACATGGATGAGGAGAATGAGGAT	#1=DDFFFFHHHHJHIGIHHHIJEH	RG:Z:HiMom.1
+HiMom:1:2101:1100:2085	141	*	0	0	*	*	0	0	ATCTTGATCTCCTCCTTCTTGGCCT	@@@DDDDDHHFHFEIIIIHHBAHBG	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B25T/sams/CCATGCGT.sam b/testdata/picard/illumina/25T8B25T/sams/CCATGCGT.sam
new file mode 100644
index 0000000..29ae6d9
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/CCATGCGT.sam
@@ -0,0 +1,2 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_CCATGCGT	LB:LN_CCATGCGT	PL:illumina	PU:HiMom.1.CCATGCGT	CN:BI
diff --git a/testdata/picard/illumina/25T8B25T/sams/CGCCTTCC.sam b/testdata/picard/illumina/25T8B25T/sams/CGCCTTCC.sam
new file mode 100644
index 0000000..2b93902
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/CGCCTTCC.sam
@@ -0,0 +1,6 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_CGCCTTCC	LB:LN_CGCCTTCC	PL:illumina	PU:HiMom.1.CGCCTTCC	CN:BI
+HiMom:1:1201:1122:2227	77	*	0	0	*	*	0	0	AGAAGACGAGGCTGAGAGTGACATC	@@@FFFFFHHHDHJGHGHCHHJJIJ	RG:Z:HiMom.1
+HiMom:1:1201:1122:2227	141	*	0	0	*	*	0	0	GTCATATAAGGCCCAGTCCAAGGAA	@@@FFFFFHHHGGIJIGGIJFIJII	RG:Z:HiMom.1
+HiMom:1:1201:1160:2109	77	*	0	0	*	*	0	0	.AGAAGCCTTTGCACCCTGGGAGGA	#1=DDDFFHHHHHJJJJJJJJIIJJ	RG:Z:HiMom.1
+HiMom:1:1201:1160:2109	141	*	0	0	*	*	0	0	ACATCCTTCCCATGCCACCAACTCG	CCCFFFFFGHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B25T/sams/CGCTATGT.sam b/testdata/picard/illumina/25T8B25T/sams/CGCTATGT.sam
new file mode 100644
index 0000000..b61429c
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/CGCTATGT.sam
@@ -0,0 +1,12 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_CGCTATGT	LB:LN_CGCTATGT	PL:illumina	PU:HiMom.1.CGCTATGT	CN:BI
+HiMom:1:1101:1291:2150	77	*	0	0	*	*	0	0	CGTGGGGAACCTGGCGCTAAACCAT	@BBFFFFFHHHHHJJJJIJJJJJIJ	RG:Z:HiMom.1
+HiMom:1:1101:1291:2150	141	*	0	0	*	*	0	0	ACAAACCCTTGTGTCGAGGGCTGAC	CCCFFFFFHHFHHIJJJIIIGIJIJ	RG:Z:HiMom.1
+HiMom:1:1101:1314:2233	77	*	0	0	*	*	0	0	GTTTATTGGGGCATTCCTTATCCCA	@??DDDDBDHF>FCHGGGBFAAED9	RG:Z:HiMom.1
+HiMom:1:1101:1314:2233	141	*	0	0	*	*	0	0	AGGAAAGTTGGGCTGACCTGACAGA	@@<DDD;=FBFADBCGDEH?F;FCG	RG:Z:HiMom.1
+HiMom:1:1101:1441:2148	77	*	0	0	*	*	0	0	ACTTTCACCGCTACACGACCGGGGG	CCCFFFFFHGFFHIIFIHJIGGII>	RG:Z:HiMom.1
+HiMom:1:1101:1441:2148	141	*	0	0	*	*	0	0	TTTTGGCTCTAGAGGGGGTAGAGGG	CCCFFFFFHHDFBHIIJJ1?FGHIJ	RG:Z:HiMom.1
+HiMom:1:1201:1043:2246	77	*	0	0	*	*	0	0	.TTCTCGGCTGTCATGTGCAACATT	#1=DDBDFHHHDFFBHGHGHIIJEH	RG:Z:HiMom.1
+HiMom:1:1201:1043:2246	141	*	0	0	*	*	0	0	.GCATCATTTC..GCTTCTCTCTGT	#0;@@??@=@>##22=;@??><@??	RG:Z:HiMom.1
+HiMom:1:1201:1134:2144	77	*	0	0	*	*	0	0	TGCCAGGAAGTGTTTTTTCTGGGTC	@CCFFEFFHHFFFGIJJJJJJJJGH	RG:Z:HiMom.1
+HiMom:1:1201:1134:2144	141	*	0	0	*	*	0	0	AGTGTGAGTAATGGTTGAGAGGTGG	B@?DDDFFFHHGHJHHGFIHHIFGI	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B25T/sams/CTAACTCG.sam b/testdata/picard/illumina/25T8B25T/sams/CTAACTCG.sam
new file mode 100644
index 0000000..9a4405b
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/CTAACTCG.sam
@@ -0,0 +1,10 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_CTAACTCG	LB:LN_CTAACTCG	PL:illumina	PU:HiMom.1.CTAACTCG	CN:BI
+HiMom:1:1101:1363:2138	77	*	0	0	*	*	0	0	.GTCTGGCCTGCACAGACATCCTAC	#1=DDFFFHHHHHJJJIJJIJJJIJ	RG:Z:HiMom.1
+HiMom:1:1101:1363:2138	141	*	0	0	*	*	0	0	GTTCTTAAACCTGTTAGAACTTCTG	C@@FFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1201:1393:2143	77	*	0	0	*	*	0	0	TGGTTGATCCTGCCAGTAGCATATG	@@@ADADDFHFFDBHE?G at HIIIEE	RG:Z:HiMom.1
+HiMom:1:1201:1393:2143	141	*	0	0	*	*	0	0	GATAAATGCACGCATCCCCCCCGCG	C at CFFFFFGGHHHHJJJJJJJJJJI	RG:Z:HiMom.1
+HiMom:1:2101:1273:2119	589	*	0	0	*	*	0	0	.AGATAAGAGTCCACACAGTTGAGT	#11AAAAA<A?4=C=7?733<ACA3	RG:Z:HiMom.1
+HiMom:1:2101:1273:2119	653	*	0	0	*	*	0	0	ATGATGGATCTTCTCTAACTTGTCA	>=><AAAAA+2AA?CB4@@ABB3?A	RG:Z:HiMom.1
+HiMom:1:2101:1414:2098	77	*	0	0	*	*	0	0	.AGGACATCGATAAAGGCGAGGTGT	#1=DDFFFHHHHHJJJJJJJJJHHG	RG:Z:HiMom.1
+HiMom:1:2101:1414:2098	141	*	0	0	*	*	0	0	TTGGGGCCGGTGCCGTCGGGCCCAA	CCCFFFFFHHHHGJJIJJJJJJJIJ	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B25T/sams/CTATGCGC.sam b/testdata/picard/illumina/25T8B25T/sams/CTATGCGC.sam
new file mode 100644
index 0000000..2a5a21c
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/CTATGCGC.sam
@@ -0,0 +1,2 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_CTATGCGC	LB:LN_CTATGCGC	PL:illumina	PU:HiMom.1.CTATGCGC	CN:BI
diff --git a/testdata/picard/illumina/25T8B25T/sams/CTATGCGT.sam b/testdata/picard/illumina/25T8B25T/sams/CTATGCGT.sam
new file mode 100644
index 0000000..673db9c
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/CTATGCGT.sam
@@ -0,0 +1,16 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_CTATGCGT	LB:LN_CTATGCGT	PL:illumina	PU:HiMom.1.CTATGCGT	CN:BI
+HiMom:1:1201:1083:2121	77	*	0	0	*	*	0	0	.AGAACTGGCGCTGCGGGATGAACC	#1=BDFFFHHHHHJJJJJHIJIJJJ	RG:Z:HiMom.1
+HiMom:1:1201:1083:2121	141	*	0	0	*	*	0	0	ACACACAACACCACCGCCCTCCCCC	#########################	RG:Z:HiMom.1
+HiMom:1:1201:1185:2143	77	*	0	0	*	*	0	0	ATCTGCCTGGTTCGGCCCGCCTGCC	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1201:1185:2143	141	*	0	0	*	*	0	0	GCTGAAGGCCCGTGGGCCAGAGGTG	@CCFFFFFHHHHHJJJJJJJJJJHI	RG:Z:HiMom.1
+HiMom:1:1201:1219:2115	77	*	0	0	*	*	0	0	.TATAGTGGAGGCCGGAGCAGGAAC	#1:DABADHHHFHIIIGGHGIIIII	RG:Z:HiMom.1
+HiMom:1:1201:1219:2115	141	*	0	0	*	*	0	0	TGGGAGTAGTTCCCTGCTAAGGGAG	???DBDBDADDDDIEID:AFFD:?8	RG:Z:HiMom.1
+HiMom:1:1201:1472:2121	589	*	0	0	*	*	0	0	.TAAAGTGTGAACAAGGAAGGTCAT	#07>@<9=@################	RG:Z:HiMom.1
+HiMom:1:1201:1472:2121	653	*	0	0	*	*	0	0	GTGTGCTCTTCCGATCTGGAGGATG	=+=??A4A==A at 7A<?#########	RG:Z:HiMom.1
+HiMom:1:2101:1013:2146	77	*	0	0	*	*	0	0	.ACACTGCTGCAGATGACAAGCAGC	#4BDFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:2101:1013:2146	141	*	0	0	*	*	0	0	....CGCTAGAACCAACTTATTCAT	####24=?@@?@?@@?@@@@@@?@@	RG:Z:HiMom.1
+HiMom:1:2101:1231:2208	77	*	0	0	*	*	0	0	ACGCCGCAAGTCAGAGCCCCCCAGA	@@@DDDFFFFB:DBBEBEFDHBDDB	RG:Z:HiMom.1
+HiMom:1:2101:1231:2208	141	*	0	0	*	*	0	0	AGCCAGTGTTGGTGTGTTGACTGTT	@@;1ADABCF;BF<AACGCHEBHC<	RG:Z:HiMom.1
+HiMom:1:2101:1233:2133	589	*	0	0	*	*	0	0	GAGAGAAGCACTCTTGAGCGGGATA	0;(@((@)2@###############	RG:Z:HiMom.1
+HiMom:1:2101:1233:2133	653	*	0	0	*	*	0	0	TTTTTTTTTTTTTTTTTTTTTTTTT	CCCFFFFFGHHHHJJJFDDDDDDDD	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B25T/sams/CTGCGGAT.sam b/testdata/picard/illumina/25T8B25T/sams/CTGCGGAT.sam
new file mode 100644
index 0000000..5356d30
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/CTGCGGAT.sam
@@ -0,0 +1,8 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_CTGCGGAT	LB:LN_CTGCGGAT	PL:illumina	PU:HiMom.1.CTGCGGAT	CN:BI
+HiMom:1:2101:1102:2221	77	*	0	0	*	*	0	0	TTTCATCTTATTTCATTGGTTTATA	CCCFFFFFHHHHHJIJJJJIJJJJJ	RG:Z:HiMom.1
+HiMom:1:2101:1102:2221	141	*	0	0	*	*	0	0	ATAACTGACTCTACTCAGTAGATTA	CCCFFFFFHHHHHJJJJJIJJJJJJ	RG:Z:HiMom.1
+HiMom:1:2101:1126:2082	77	*	0	0	*	*	0	0	.GTTTTAGGGGTGCGCAGGAGTCAA	#11=A=DD?DF at D@CCGHIEFH at BG	RG:Z:HiMom.1
+HiMom:1:2101:1126:2082	141	*	0	0	*	*	0	0	TCTCTTTCCACCTTGGTCACCTTCC	@C at DDDFFHHHHHJEGGIHHIJGIH	RG:Z:HiMom.1
+HiMom:1:2101:1216:2172	77	*	0	0	*	*	0	0	TTTCTTCGCAGGATTTTTCTGAGCC	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:2101:1216:2172	141	*	0	0	*	*	0	0	GGACTTCTAGGGGATTTAGCGGGGT	CCCFFFFFHHHHHJJJJJJJJJJJD	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B25T/sams/CTGTAATC.sam b/testdata/picard/illumina/25T8B25T/sams/CTGTAATC.sam
new file mode 100644
index 0000000..3cb932b
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/CTGTAATC.sam
@@ -0,0 +1,14 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_CTGTAATC	LB:LN_CTGTAATC	PL:illumina	PU:HiMom.1.CTGTAATC	CN:BI
+HiMom:1:1101:1403:2194	77	*	0	0	*	*	0	0	CTAAACAGAGAGAAGGTTTCTCTTT	CCCFFFFFHHHHHJJJFHIJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1101:1403:2194	141	*	0	0	*	*	0	0	ACATGGTGAAACCCTGTCTCTACTA	CCCFFFDDHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1201:1045:2105	589	*	0	0	*	*	0	0	.TAAAGAGAAATCAAGAATACTATT	#-4@?(@)@@###############	RG:Z:HiMom.1
+HiMom:1:1201:1045:2105	653	*	0	0	*	*	0	0	.TTTTTTTTTT..TTTTTTTTTTTT	#0;@@@@@@@?##0:????????=<	RG:Z:HiMom.1
+HiMom:1:1201:1483:2126	589	*	0	0	*	*	0	0	.TGATAAGGTGTTGCTATGTTACCC	#1:D?DDDDA??2:<CC4:AEDF>?	RG:Z:HiMom.1
+HiMom:1:1201:1483:2126	653	*	0	0	*	*	0	0	GCATGCAGCTGGGTGCTGTGATGCA	@@@DDDBB<DD8F<<CGG?AA?A<F	RG:Z:HiMom.1
+HiMom:1:2101:1011:2102	77	*	0	0	*	*	0	0	.AAACAAAACTGTAGAACTGTGTAT	#1=DDFFFHHHHHJJIJJJIHHHJJ	RG:Z:HiMom.1
+HiMom:1:2101:1011:2102	141	*	0	0	*	*	0	0	.....TCACACATAATTTTAAAATT	#####22@?@@??@@@@@??@@@@@	RG:Z:HiMom.1
+HiMom:1:2101:1245:2154	77	*	0	0	*	*	0	0	TCGTTAAGTATATTCTTAGGTATTT	CCCFFDFFFHFHHIIJJJJJFJJJI	RG:Z:HiMom.1
+HiMom:1:2101:1245:2154	141	*	0	0	*	*	0	0	ACCAATCAGTAGCACCACTATACAC	CCCFFFFFHHHHHJJJJJJIJJJJJ	RG:Z:HiMom.1
+HiMom:1:2101:1386:2105	77	*	0	0	*	*	0	0	.TACTAAAGAAAAAGTTGAAGAACT	#1=DDDFFHHHHHJJGHIJJJJIJJ	RG:Z:HiMom.1
+HiMom:1:2101:1386:2105	141	*	0	0	*	*	0	0	AGGAATTATTCTTCTGCCATAAGGT	B@@DDFFFHGFHHIJJJJJGIGIJH	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B25T/sams/GAAAAAAA.sam b/testdata/picard/illumina/25T8B25T/sams/GAAAAAAA.sam
new file mode 100644
index 0000000..0bfb1f9
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/GAAAAAAA.sam
@@ -0,0 +1,2 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_GAAAAAAA	LB:LN_GAAAAAAA	PL:illumina	PU:HiMom.1.GAAAAAAA	CN:BI
diff --git a/testdata/picard/illumina/25T8B25T/sams/GAACGAT..sam b/testdata/picard/illumina/25T8B25T/sams/GAACGAT..sam
new file mode 100644
index 0000000..1636a99
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/GAACGAT..sam
@@ -0,0 +1,2 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_GAACGAT.	LB:LN_GAACGAT.	PL:illumina	PU:HiMom.1.GAACGAT.	CN:BI
diff --git a/testdata/picard/illumina/25T8B25T/sams/GAAGGAAG.sam b/testdata/picard/illumina/25T8B25T/sams/GAAGGAAG.sam
new file mode 100644
index 0000000..8168f2c
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/GAAGGAAG.sam
@@ -0,0 +1,8 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_GAAGGAAG	LB:LN_GAAGGAAG	PL:illumina	PU:HiMom.1.GAAGGAAG	CN:BI
+HiMom:1:1101:1338:2175	77	*	0	0	*	*	0	0	CCCACCTTCCGGCGGCCGAAGACAC	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1101:1338:2175	141	*	0	0	*	*	0	0	GCTTGTTGGCTTTAACATCCACAAT	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1201:1028:2202	77	*	0	0	*	*	0	0	.TCCTGGGAAACGGGGCGCGGCTGG	#4BDDDFFHHHHHIJIIJJJJJJIJ	RG:Z:HiMom.1
+HiMom:1:1201:1028:2202	141	*	0	0	*	*	0	0	..AAAC.C.T.......GG..TG..	##42@?###################	RG:Z:HiMom.1
+HiMom:1:2101:1084:2188	77	*	0	0	*	*	0	0	TTGCTGCATGGGTTAATTGAGAATA	CCCFFFFFHHHHFHHIIJJIJJJJJ	RG:Z:HiMom.1
+HiMom:1:2101:1084:2188	141	*	0	0	*	*	0	0	TACAAGGTCAAAATCAGCAACAAGT	CCCFFFFDHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B25T/sams/GACCAGGA.sam b/testdata/picard/illumina/25T8B25T/sams/GACCAGGA.sam
new file mode 100644
index 0000000..43bfc6e
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/GACCAGGA.sam
@@ -0,0 +1,16 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_GACCAGGA	LB:LN_GACCAGGA	PL:illumina	PU:HiMom.1.GACCAGGA	CN:BI
+HiMom:1:1101:1089:2172	77	*	0	0	*	*	0	0	TTCCAGCATGCGGTTTAAGTAGGAT	@CCFDFDBDFBF:<CEBHAFHHICH	RG:Z:HiMom.1
+HiMom:1:1101:1089:2172	141	*	0	0	*	*	0	0	TCCGG....................	:<<??####################	RG:Z:HiMom.1
+HiMom:1:1101:1347:2149	77	*	0	0	*	*	0	0	GAGCAGATCGGAAGAGCACAGATCG	@@@FFDDDHHHHHIJJBGGHJIHEG	RG:Z:HiMom.1
+HiMom:1:1101:1347:2149	141	*	0	0	*	*	0	0	GCTCTTCCGATCTGTGCTCTTCCGA	CCCFFFFFDFHHFIJDGIGGHGIGH	RG:Z:HiMom.1
+HiMom:1:1201:1095:2146	77	*	0	0	*	*	0	0	GCTGAGTCATGTAGTAAGCCTGTGC	BB at FDDDFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1201:1095:2146	141	*	0	0	*	*	0	0	ACTGACAACACCAAATGCTGCTAAG	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1201:1123:2161	589	*	0	0	*	*	0	0	CACTAACTCCTGACCTCAAATAATC	?7?=DD?DD+CDBE>E at EEF@+<CF	RG:Z:HiMom.1
+HiMom:1:1201:1123:2161	653	*	0	0	*	*	0	0	CGTGTGCTCTTCCGATCTGCATACA	===AAAA8AAAA<AAA)@CBA9>A#	RG:Z:HiMom.1
+HiMom:1:1201:1439:2156	77	*	0	0	*	*	0	0	AGCCGCGAGGTGCTGGCGGACTTCC	:;1BDDDAA88A<?<E1C:D#####	RG:Z:HiMom.1
+HiMom:1:1201:1439:2156	141	*	0	0	*	*	0	0	GGAGATTATTTGCCTTGAAGTAAGC	-;(22<>>@>8@>8;@#########	RG:Z:HiMom.1
+HiMom:1:2101:1207:2084	589	*	0	0	*	*	0	0	.TAGATGACCAAAACTTGCAGGGCA	#1:A<?@A+7A=?CBCCBCCBAAAA	RG:Z:HiMom.1
+HiMom:1:2101:1207:2084	653	*	0	0	*	*	0	0	TCACCACTCTTCTGGGCATCCCCTG	@@@DDEDFHHHHHIJIHHGHGGJJJ	RG:Z:HiMom.1
+HiMom:1:2101:1312:2105	77	*	0	0	*	*	0	0	.TTCCCTCAGGATAGCTGGCGCTCT	#1=DDFFFGHGHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:2101:1312:2105	141	*	0	0	*	*	0	0	GTTGAGAATAGGTTGAGATCGTTTC	@CCFFFDFHHFHDHIJJJJJJJIJJ	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B25T/sams/GACCAGGC.sam b/testdata/picard/illumina/25T8B25T/sams/GACCAGGC.sam
new file mode 100644
index 0000000..71b9f20
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/GACCAGGC.sam
@@ -0,0 +1,2 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_GACCAGGC	LB:LN_GACCAGGC	PL:illumina	PU:HiMom.1.GACCAGGC	CN:BI
diff --git a/testdata/picard/illumina/25T8B25T/sams/GACCGTTG.sam b/testdata/picard/illumina/25T8B25T/sams/GACCGTTG.sam
new file mode 100644
index 0000000..7cda666
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/GACCGTTG.sam
@@ -0,0 +1,10 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_GACCGTTG	LB:LN_GACCGTTG	PL:illumina	PU:HiMom.1.GACCGTTG	CN:BI
+HiMom:1:1101:1218:2200	77	*	0	0	*	*	0	0	GCACCGGAAGAGCACACAGATCGGA	CCCFFFFDFHGHHJJIJIJJJJJJI	RG:Z:HiMom.1
+HiMom:1:1101:1218:2200	141	*	0	0	*	*	0	0	GCTCTTCCGATCTATCTGCTCGTCC	(-(=34???3;@#############	RG:Z:HiMom.1
+HiMom:1:1101:1257:2223	77	*	0	0	*	*	0	0	TGTATTCGAGAGATCAAAGAGAGAG	@@=DDBDD?FFHHEIDBDFCEDBAF	RG:Z:HiMom.1
+HiMom:1:1101:1257:2223	141	*	0	0	*	*	0	0	TGCTCTTCCGATCTTTTAGCAAAGC	:?@DDBDDHFFHDGIGIIJJJGGGI	RG:Z:HiMom.1
+HiMom:1:1201:1180:2119	77	*	0	0	*	*	0	0	.TGAAAGATTTAGAGAGCTTACAAA	#1=DDDDDHHHGHJJIIJJJJIJJI	RG:Z:HiMom.1
+HiMom:1:1201:1180:2119	141	*	0	0	*	*	0	0	GCTCTAAATTTTGCTTTTCTACAGC	CCCFFFFFHHHHHJJJJIJIJJIJJ	RG:Z:HiMom.1
+HiMom:1:2101:1036:2087	77	*	0	0	*	*	0	0	.TGTAGTTTCTTTAGGCAAATTTGT	#4=BDDDFHHHHHJJJJJJIIJJJI	RG:Z:HiMom.1
+HiMom:1:2101:1036:2087	141	*	0	0	*	*	0	0	.GTCCACTTACGAAGCAAATACTTT	#4=DDFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B25T/sams/GACCTAAC.sam b/testdata/picard/illumina/25T8B25T/sams/GACCTAAC.sam
new file mode 100644
index 0000000..a6f236b
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/GACCTAAC.sam
@@ -0,0 +1,4 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_GACCTAAC	LB:LN_GACCTAAC	PL:illumina	PU:HiMom.1.GACCTAAC	CN:BI
+HiMom:1:1101:1302:2244	77	*	0	0	*	*	0	0	GGAAAAGACGGAAAGGTTCTATCTC	@C at DFFFDFHHHHJIJHHIJJJJJI	RG:Z:HiMom.1
+HiMom:1:1101:1302:2244	141	*	0	0	*	*	0	0	TGAATACATATAACAAATGCAAAAA	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B25T/sams/GATATCCA.sam b/testdata/picard/illumina/25T8B25T/sams/GATATCCA.sam
new file mode 100644
index 0000000..e38de8e
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/GATATCCA.sam
@@ -0,0 +1,8 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_GATATCCA	LB:LN_GATATCCA	PL:illumina	PU:HiMom.1.GATATCCA	CN:BI
+HiMom:1:1101:1460:2176	77	*	0	0	*	*	0	0	AGTCCAGGCTGAGCCCAGGGAAGAA	CCCFFFFFHHHHGJIJJIJJHIJJI	RG:Z:HiMom.1
+HiMom:1:1101:1460:2176	141	*	0	0	*	*	0	0	AGGAAAAAGACACAACAAGTCCAAC	#########################	RG:Z:HiMom.1
+HiMom:1:2101:1031:2163	77	*	0	0	*	*	0	0	.TTTCCATGGCCGTCACCTTTGGGT	#4=DDFFFHHHHHJJJJJJJJJJJI	RG:Z:HiMom.1
+HiMom:1:2101:1031:2163	141	*	0	0	*	*	0	0	..ACATTTGTCACCACTAGCCACCA	##0<@?@@@@@@@@@@?@@@@@@@?	RG:Z:HiMom.1
+HiMom:1:2101:1226:2088	77	*	0	0	*	*	0	0	.GATCGGAAGAGCACACGTTTGACT	#4=DAA=DDFHFHIIBFGHHIG>EG	RG:Z:HiMom.1
+HiMom:1:2101:1226:2088	141	*	0	0	*	*	0	0	GCTCTTCCGATCTAGGTAATAGCTA	==?BDFFFDCDDHFFFAFHDHIJGJ	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B25T/sams/GCCGTCGA.sam b/testdata/picard/illumina/25T8B25T/sams/GCCGTCGA.sam
new file mode 100644
index 0000000..3a6a37e
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/GCCGTCGA.sam
@@ -0,0 +1,12 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_GCCGTCGA	LB:LN_GCCGTCGA	PL:illumina	PU:HiMom.1.GCCGTCGA	CN:BI
+HiMom:1:1101:1111:2148	77	*	0	0	*	*	0	0	GTGGAGACCACCTCCGAGGCCTTGT	BBCFFFFFHHHHHJJJIJJJJJJJI	RG:Z:HiMom.1
+HiMom:1:1101:1111:2148	141	*	0	0	*	*	0	0	GCGAA.A..........GGACGAC.	#########################	RG:Z:HiMom.1
+HiMom:1:1101:1221:2143	77	*	0	0	*	*	0	0	TTTGGTGGAAATTTTTTGTTATGAT	CCCFFBDBHFD?FBFHIIGGIC at EF	RG:Z:HiMom.1
+HiMom:1:1101:1221:2143	141	*	0	0	*	*	0	0	CAATTGAATGTCTGCACAGCCGCTT	@@@FFFFDHHHHHJJJIIIJGHIJJ	RG:Z:HiMom.1
+HiMom:1:1101:1327:2200	589	*	0	0	*	*	0	0	AGGGGGATCCGCCGGGGGACCACAA	#########################	RG:Z:HiMom.1
+HiMom:1:1101:1327:2200	653	*	0	0	*	*	0	0	GTCATCTGGGCTGTCGACAGGTGTC	@B at FFFFFHHHHGIJJJJJJIFHHI	RG:Z:HiMom.1
+HiMom:1:2101:1122:2136	77	*	0	0	*	*	0	0	GTAGGCGCTCAGCAAATACTTGTCG	@@@DDDD8?<CACEHHBBHDAAFH@	RG:Z:HiMom.1
+HiMom:1:2101:1122:2136	141	*	0	0	*	*	0	0	CTTGCCAGCCTGCAGGCCCCGCGGC	???BBAABDD?DDIID)A:3<EADD	RG:Z:HiMom.1
+HiMom:1:2101:1459:2083	77	*	0	0	*	*	0	0	.CACACGCCACACGGAGCACACTTT	#4=DDFFFHHHHHJJJJJJJJIIJJ	RG:Z:HiMom.1
+HiMom:1:2101:1459:2083	141	*	0	0	*	*	0	0	ATTTCACCAAAATAATCAGAAGGCC	CCCFFFFDBHGHHIGGIJFJJGGFH	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B25T/sams/GCCTAGCC.sam b/testdata/picard/illumina/25T8B25T/sams/GCCTAGCC.sam
new file mode 100644
index 0000000..4b6b8cd
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/GCCTAGCC.sam
@@ -0,0 +1,12 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_GCCTAGCC	LB:LN_GCCTAGCC	PL:illumina	PU:HiMom.1.GCCTAGCC	CN:BI
+HiMom:1:1101:1165:2239	77	*	0	0	*	*	0	0	GGCGGAGGCAGCATTTCAGCTGTGA	CCCFFDFFHHHHHIJJIGHHHJHHF	RG:Z:HiMom.1
+HiMom:1:1101:1165:2239	141	*	0	0	*	*	0	0	ATGGAAGTCGAGACAGAAGTGAGAA	#########################	RG:Z:HiMom.1
+HiMom:1:1101:1290:2225	77	*	0	0	*	*	0	0	CTTGGGCGCATGGTGAGGGAGGGAG	@@@FFDDFHDFH??CBEBHHIGDCD	RG:Z:HiMom.1
+HiMom:1:1101:1290:2225	141	*	0	0	*	*	0	0	TCAGTTCACTGGCAAAGACAGTCAC	C@@FBEDDFHFHGIIICEHGDHBHE	RG:Z:HiMom.1
+HiMom:1:1201:1280:2179	77	*	0	0	*	*	0	0	TTCAAGGAATCGTCCTGCCTCAGCC	BCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1201:1280:2179	141	*	0	0	*	*	0	0	GAGGACTGCTTGAGTCCAGGAGTTC	@@BFFDEFGHHHHIFGCHIJJJGGI	RG:Z:HiMom.1
+HiMom:1:1201:1300:2137	77	*	0	0	*	*	0	0	.TGTAATCCCAGCTCTCAGGGAGGC	#1=ADDDDDDDBBA?@AE?E at FE8;	RG:Z:HiMom.1
+HiMom:1:1201:1300:2137	141	*	0	0	*	*	0	0	GCTCTTCCGATCTTTTTTTTAATTT	@@?DDDDDFDHADEHGIGGED3?FD	RG:Z:HiMom.1
+HiMom:1:2101:1023:2237	589	*	0	0	*	*	0	0	.TAAACAGCTTCTGCACAGCCAAAG	#00@@?>=39>9;<412@?######	RG:Z:HiMom.1
+HiMom:1:2101:1023:2237	653	*	0	0	*	*	0	0	..TTTGTTTGAGTTCCTTGTAGATT	##0:=@?>?@???@:>?@??>?;?<	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B25T/sams/GTAACATC.sam b/testdata/picard/illumina/25T8B25T/sams/GTAACATC.sam
new file mode 100644
index 0000000..551ab21
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/GTAACATC.sam
@@ -0,0 +1,6 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_GTAACATC	LB:LN_GTAACATC	PL:illumina	PU:HiMom.1.GTAACATC	CN:BI
+HiMom:1:1101:1188:2237	77	*	0	0	*	*	0	0	TCCCCCTCCCTTTTGCGCACACACC	@?@DDADDHDHBDH<EFHIIHG?HF	RG:Z:HiMom.1
+HiMom:1:1101:1188:2237	141	*	0	0	*	*	0	0	GCTTCCTTCAAGACAGAAGTGAGAA	CCCFFDDEFHHFFE at FDHHAIAFHG	RG:Z:HiMom.1
+HiMom:1:2101:1208:2231	589	*	0	0	*	*	0	0	TCACTAAACATCCAAACATCACTTT	#########################	RG:Z:HiMom.1
+HiMom:1:2101:1208:2231	653	*	0	0	*	*	0	0	CTTTTTTTTTTTTTTTTTTTTTTTT	CCCFFFFFHHHHHJJJHFDDDDDDD	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B25T/sams/GTCCACAG.sam b/testdata/picard/illumina/25T8B25T/sams/GTCCACAG.sam
new file mode 100644
index 0000000..bedd9a4
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/GTCCACAG.sam
@@ -0,0 +1,6 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_GTCCACAG	LB:LN_GTCCACAG	PL:illumina	PU:HiMom.1.GTCCACAG	CN:BI
+HiMom:1:1101:1069:2159	77	*	0	0	*	*	0	0	TCCCTTACCATCAAATCAATTG.CC	CCCFFFFFHHHHHJJJJJJJJJ#3A	RG:Z:HiMom.1
+HiMom:1:1101:1069:2159	141	*	0	0	*	*	0	0	GACGT....................	<<<@?####################	RG:Z:HiMom.1
+HiMom:1:1201:1486:2109	77	*	0	0	*	*	0	0	.CACCTCCTAGCCCCTCACTTCTGT	#1=B;BDDHHHGFIIIIIIIIIGGG	RG:Z:HiMom.1
+HiMom:1:1201:1486:2109	141	*	0	0	*	*	0	0	ACGTGTGCTCTTCCCGATCTGTATA	CCCFF?DDFBHHHJJIIDHJIJJJH	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B25T/sams/N.sam b/testdata/picard/illumina/25T8B25T/sams/N.sam
new file mode 100644
index 0000000..05db02e
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/N.sam
@@ -0,0 +1,34 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_N	LB:LN_N	PL:illumina	PU:HiMom.1.N	CN:BI
+HiMom:1:1101:1031:2224	589	*	0	0	*	*	0	0	.AATA............T.......	#0;@@####################	BC:Z:NNNNNNNN	RG:Z:HiMom.1
+HiMom:1:1101:1031:2224	653	*	0	0	*	*	0	0	.........................	#########################	BC:Z:NNNNNNNN	RG:Z:HiMom.1	XN:i:1
+HiMom:1:1101:1039:2147	589	*	0	0	*	*	0	0	.CCAA.G..GG....ATGTAA....	#4;@@#4##2<####43@@@@####	BC:Z:NNNNNNNN	RG:Z:HiMom.1
+HiMom:1:1101:1039:2147	653	*	0	0	*	*	0	0	.........................	#########################	BC:Z:NNNNNNNN	RG:Z:HiMom.1	XN:i:1
+HiMom:1:1101:1046:2175	589	*	0	0	*	*	0	0	.TGCC.G.GTT.CG.GGTCTT....	#4;@@####################	BC:Z:NNNNNNNN	RG:Z:HiMom.1
+HiMom:1:1101:1046:2175	653	*	0	0	*	*	0	0	..GGA....................	#########################	BC:Z:NNNNNNNN	RG:Z:HiMom.1
+HiMom:1:1101:1047:2122	589	*	0	0	*	*	0	0	.CTAA.G.ACT.TG.GTGTGC....	#0;@@#4#3@@#3@#2<@@@@####	BC:Z:NNNANNNN	RG:Z:HiMom.1
+HiMom:1:1101:1047:2122	653	*	0	0	*	*	0	0	..TCA....................	#########################	BC:Z:NNNANNNN	RG:Z:HiMom.1
+HiMom:1:1101:1048:2197	589	*	0	0	*	*	0	0	.CTCC.G.TCA.CA.GTGGAG....	#0;?@####################	BC:Z:NNNCNNNN	RG:Z:HiMom.1
+HiMom:1:1101:1048:2197	653	*	0	0	*	*	0	0	..GTG....................	#########################	BC:Z:NNNCNNNN	RG:Z:HiMom.1
+HiMom:1:1101:1065:2193	77	*	0	0	*	*	0	0	GAAGTACGCCCTGCCCCTGGTT.GC	?@@DAADAHHFHBEBEGGHG?####	BC:Z:GAACGATN	RG:Z:HiMom.1
+HiMom:1:1101:1065:2193	141	*	0	0	*	*	0	0	.CTTG....................	#########################	BC:Z:GAACGATN	RG:Z:HiMom.1
+HiMom:1:1101:1162:2207	589	*	0	0	*	*	0	0	ACCTTGAGGAGAACATAAGAGCAAA	#########################	BC:Z:ACAAAATT	RG:Z:HiMom.1
+HiMom:1:1101:1162:2207	653	*	0	0	*	*	0	0	TAAAACTGGGGAAGTTAGAGGAATG	#########################	BC:Z:ACAAAATT	RG:Z:HiMom.1
+HiMom:1:1201:1159:2179	589	*	0	0	*	*	0	0	GTTAGCACAGATATTGGATGAGTGA	#########################	BC:Z:AAAAAAAA	RG:Z:HiMom.1
+HiMom:1:1201:1159:2179	653	*	0	0	*	*	0	0	TTTTTTTTTATTTTTCTAAATACTT	===AA####################	BC:Z:AAAAAAAA	RG:Z:HiMom.1
+HiMom:1:1201:1414:2174	589	*	0	0	*	*	0	0	GCCAAAAAAAAGAACCAGCCCAAGG	#########################	BC:Z:AGAAAAGA	RG:Z:HiMom.1
+HiMom:1:1201:1414:2174	653	*	0	0	*	*	0	0	TTTTTTTTTTTTTTTTTTTTTTTTT	@;@1BDADF????FFEB>B6=BBBB	BC:Z:AGAAAAGA	RG:Z:HiMom.1
+HiMom:1:2101:1040:2208	589	*	0	0	*	*	0	0	.ATGCCCACCTCCCTCCTACGCACC	#########################	BC:Z:ACGAAATC	RG:Z:HiMom.1
+HiMom:1:2101:1040:2208	653	*	0	0	*	*	0	0	.CTGATAGTCACTGAAATGAATTCA	#-0=>(2 at .22@@############	BC:Z:ACGAAATC	RG:Z:HiMom.1
+HiMom:1:2101:1059:2083	77	*	0	0	*	*	0	0	.AAGAGGGGTCAAGAGTTAAACTTA	#1=DDFFFHFHHGIGHGHJJJJJJI	BC:Z:TACCGTCT	RG:Z:HiMom.1
+HiMom:1:2101:1059:2083	141	*	0	0	*	*	0	0	.GAATGTCTTAGAAGGATGCTTCTC	#1=BDDDEHHGHHJJJJJIJJIIJJ	BC:Z:TACCGTCT	RG:Z:HiMom.1
+HiMom:1:2101:1143:2137	77	*	0	0	*	*	0	0	ATGCAGCAGCTGCCACGGAGCACCA	CC at FFDFDFHFHHGIDHEHIGJJJJ	BC:Z:TCCGTCTA	RG:Z:HiMom.1
+HiMom:1:2101:1143:2137	141	*	0	0	*	*	0	0	GCTCTTCAGATCTAGGGGGAACAGC	@@@DD?=DCAFFFHIIDG:EFHIII	BC:Z:TCCGTCTA	RG:Z:HiMom.1
+HiMom:1:2101:1151:2182	589	*	0	0	*	*	0	0	TTGTTTTGGCTTATAATGACAAGAA	;;8-2).2())(<6=@8;?4??>>?	BC:Z:GAAAAAAA	RG:Z:HiMom.1
+HiMom:1:2101:1151:2182	653	*	0	0	*	*	0	0	TTTTTTTTTTTTTTTTTTTTTTTTA	9<<?@?@;5=?##############	BC:Z:GAAAAAAA	RG:Z:HiMom.1
+HiMom:1:2101:1215:2110	77	*	0	0	*	*	0	0	.AATATAATTTGGAGACCCTTTGTT	#1=DDDDDEDDDDIDDBB3ABAB##	BC:Z:AAAAGAAG	RG:Z:HiMom.1
+HiMom:1:2101:1215:2110	141	*	0	0	*	*	0	0	ATCTTTCCCCCATTAAGAACAGCAA	#########################	BC:Z:AAAAGAAG	RG:Z:HiMom.1
+HiMom:1:2101:1285:2105	589	*	0	0	*	*	0	0	.GCGGGGAGCCGGGCGTGGAATGCG	#########################	BC:Z:TATCTCGG	RG:Z:HiMom.1
+HiMom:1:2101:1285:2105	653	*	0	0	*	*	0	0	TGTCTATATCAACCAACACCTCTTC	-(0(():94:9:???##########	BC:Z:TATCTCGG	RG:Z:HiMom.1
+HiMom:1:2101:1450:2134	77	*	0	0	*	*	0	0	AGCACGCTGCCGCGGGACCTGCCCA	?@@AD at DDHFH?DGIIIIG at FGFBF	BC:Z:ACCAGTTG	RG:Z:HiMom.1
+HiMom:1:2101:1450:2134	141	*	0	0	*	*	0	0	ACAAACCCTTGTGTCGAGGGCTGAC	CC at FDFDFFDFHFGIIE1CGGHBGE	BC:Z:ACCAGTTG	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B25T/sams/TAAGCACA.sam b/testdata/picard/illumina/25T8B25T/sams/TAAGCACA.sam
new file mode 100644
index 0000000..ef939ee
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/TAAGCACA.sam
@@ -0,0 +1,6 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_TAAGCACA	LB:LN_TAAGCACA	PL:illumina	PU:HiMom.1.TAAGCACA	CN:BI
+HiMom:1:1201:1064:2239	77	*	0	0	*	*	0	0	CATGCAGCGCAAGTAGGTCTACAAG	@@;DFAFFHHHHAHEGHFDGGFABG	RG:Z:HiMom.1
+HiMom:1:1201:1064:2239	141	*	0	0	*	*	0	0	GGGATGGGAGGGCGATGAGGACTAG	8?@:DDDACC:FHHGIH<EGDDDFH	RG:Z:HiMom.1
+HiMom:1:2101:1258:2092	77	*	0	0	*	*	0	0	.CACACACACACTCATTCACAGCTT	#1=DDDFFHHHFHJJIJGGGIIGIJ	RG:Z:HiMom.1
+HiMom:1:2101:1258:2092	141	*	0	0	*	*	0	0	TTAGACAAAACACCAAAATAAAATA	#########################	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B25T/sams/TACCGTCT.sam b/testdata/picard/illumina/25T8B25T/sams/TACCGTCT.sam
new file mode 100644
index 0000000..04cf526
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/TACCGTCT.sam
@@ -0,0 +1,2 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_TACCGTCT	LB:LN_TACCGTCT	PL:illumina	PU:HiMom.1.TACCGTCT	CN:BI
diff --git a/testdata/picard/illumina/25T8B25T/sams/TAGCGGTA.sam b/testdata/picard/illumina/25T8B25T/sams/TAGCGGTA.sam
new file mode 100644
index 0000000..3455237
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/TAGCGGTA.sam
@@ -0,0 +1,2 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_TAGCGGTA	LB:LN_TAGCGGTA	PL:illumina	PU:HiMom.1.TAGCGGTA	CN:BI
diff --git a/testdata/picard/illumina/25T8B25T/sams/TATCAGCC.sam b/testdata/picard/illumina/25T8B25T/sams/TATCAGCC.sam
new file mode 100644
index 0000000..5f7c0e3
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/TATCAGCC.sam
@@ -0,0 +1,2 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_TATCAGCC	LB:LN_TATCAGCC	PL:illumina	PU:HiMom.1.TATCAGCC	CN:BI
diff --git a/testdata/picard/illumina/25T8B25T/sams/TATCCAGG.sam b/testdata/picard/illumina/25T8B25T/sams/TATCCAGG.sam
new file mode 100644
index 0000000..1e49919
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/TATCCAGG.sam
@@ -0,0 +1,10 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_TATCCAGG	LB:LN_TATCCAGG	PL:illumina	PU:HiMom.1.TATCCAGG	CN:BI
+HiMom:1:1101:1071:2233	77	*	0	0	*	*	0	0	TTTGACAGTCTCTGAATGAGAA.GG	CCCFFFFFHHHHHJIIIJJJIJ#4A	RG:Z:HiMom.1
+HiMom:1:1101:1071:2233	141	*	0	0	*	*	0	0	GTTTG....................	<<<@@####################	RG:Z:HiMom.1
+HiMom:1:1201:1140:2125	77	*	0	0	*	*	0	0	.TTTCAGTTCAGAGAACTGCAGAAT	#1=DBDFDHHHHGJIJJJJJIIIJI	RG:Z:HiMom.1
+HiMom:1:1201:1140:2125	141	*	0	0	*	*	0	0	TTCATAAATTGGTCTTAGATGTTGC	CC at FFFFFHHHHFGIJIIIJIJIJJ	RG:Z:HiMom.1
+HiMom:1:1201:1236:2187	77	*	0	0	*	*	0	0	TTTAAATGGGTAAGAAGCCCGGCTC	@BCDDFEFHHDHHJJJJJIJJIJJJ	RG:Z:HiMom.1
+HiMom:1:1201:1236:2187	141	*	0	0	*	*	0	0	CTCCTTAGCGGATTCCGACTTCCAT	CCCFFFFDHHHHGIJJIGIGIJJGG	RG:Z:HiMom.1
+HiMom:1:2101:1133:2239	77	*	0	0	*	*	0	0	AGACAGAAGTACGGGAAGGCGAAGA	@@@FFFFEHFHHHJJCGDHIIECD@	RG:Z:HiMom.1
+HiMom:1:2101:1133:2239	141	*	0	0	*	*	0	0	AGCTTTTTGTTTCCTAGCTTGTCTT	?@?DDFFFHHHHF4ACFHIJHHHGH	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B25T/sams/TATCCATG.sam b/testdata/picard/illumina/25T8B25T/sams/TATCCATG.sam
new file mode 100644
index 0000000..a5373e3
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/TATCCATG.sam
@@ -0,0 +1,2 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_TATCCATG	LB:LN_TATCCATG	PL:illumina	PU:HiMom.1.TATCCATG	CN:BI
diff --git a/testdata/picard/illumina/25T8B25T/sams/TATCTCGG.sam b/testdata/picard/illumina/25T8B25T/sams/TATCTCGG.sam
new file mode 100644
index 0000000..04096c5
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/TATCTCGG.sam
@@ -0,0 +1,2 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_TATCTCGG	LB:LN_TATCTCGG	PL:illumina	PU:HiMom.1.TATCTCGG	CN:BI
diff --git a/testdata/picard/illumina/25T8B25T/sams/TATCTGCC.sam b/testdata/picard/illumina/25T8B25T/sams/TATCTGCC.sam
new file mode 100644
index 0000000..4f8756c
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/TATCTGCC.sam
@@ -0,0 +1,16 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_TATCTGCC	LB:LN_TATCTGCC	PL:illumina	PU:HiMom.1.TATCTGCC	CN:BI
+HiMom:1:1101:1267:2209	77	*	0	0	*	*	0	0	GAGACGGAGGCCAACGGGGGCCTGG	@@CFFFFD8FDHFHIGIBG?@BCDG	RG:Z:HiMom.1
+HiMom:1:1101:1267:2209	141	*	0	0	*	*	0	0	GGCAGAGTCTCCAACAGCCCCGTAC	=;?DDDD?CCFHAIIIGGIIGE at EG	RG:Z:HiMom.1
+HiMom:1:1101:1353:2226	77	*	0	0	*	*	0	0	TTGCTTGTCTGTAAAGTATTTTATT	@C at DDFFDHHFHFHHIBGG>IHHII	RG:Z:HiMom.1
+HiMom:1:1101:1353:2226	141	*	0	0	*	*	0	0	GTGCTCTTCCGATCTTCAGGTTACC	BBBFFFFFHHHHHJJJJJJJIJJJJ	RG:Z:HiMom.1
+HiMom:1:1101:1435:2194	77	*	0	0	*	*	0	0	GAGAAAGAACATGACTACAGAGATG	CCCFFFFFHHHHHJJJJJJJJJHJJ	RG:Z:HiMom.1
+HiMom:1:1101:1435:2194	141	*	0	0	*	*	0	0	TTTTGTTTTCTTTTACTGAAGTGTA	CCCFFDFFHHHHHJJJJIHIJHHHJ	RG:Z:HiMom.1
+HiMom:1:1201:1084:2204	77	*	0	0	*	*	0	0	GGCCCGTGGACGCCGCCGAAGAAGC	CCCFFFFFHHHHHJJJJJIJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1201:1084:2204	141	*	0	0	*	*	0	0	TGGCTCCTCAGGCTCTCATCAGTTG	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1201:1142:2242	77	*	0	0	*	*	0	0	TGTTGATAGTCCTTCTTATCTTAGT	???DB?==CC2<AC:CC<CFEF<FF	RG:Z:HiMom.1
+HiMom:1:1201:1142:2242	141	*	0	0	*	*	0	0	GTAAAATGTAAAATAATAAAAAATG	?=?DDDD;AF<DF<FFFFIIIFF@<	RG:Z:HiMom.1
+HiMom:1:1201:1187:2100	77	*	0	0	*	*	0	0	.GCGGTAATTCCAGCTCCAATAGCG	#1:BB2 at DHHFHHIIIIHHIIGHGG	RG:Z:HiMom.1
+HiMom:1:1201:1187:2100	141	*	0	0	*	*	0	0	AAAAAAGAGCCCGCATTGCCGAGAC	=<=;AA###################	RG:Z:HiMom.1
+HiMom:1:1201:1392:2109	77	*	0	0	*	*	0	0	.CTGAAGAGGCCAAAGCGCCCTCCA	#1=DDFFFHHHHHJJJJJJJJJJJI	RG:Z:HiMom.1
+HiMom:1:1201:1392:2109	141	*	0	0	*	*	0	0	GTCAGACAGGGGGATTTGGGCTGTG	BBCFFFFFHHHHHHJJJHIJIJJJJ	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B25T/sams/TCCGTCTA.sam b/testdata/picard/illumina/25T8B25T/sams/TCCGTCTA.sam
new file mode 100644
index 0000000..8f5dbc6
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/TCCGTCTA.sam
@@ -0,0 +1,2 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_TCCGTCTA	LB:LN_TCCGTCTA	PL:illumina	PU:HiMom.1.TCCGTCTA	CN:BI
diff --git a/testdata/picard/illumina/25T8B25T/sams/TCGCTAGA.sam b/testdata/picard/illumina/25T8B25T/sams/TCGCTAGA.sam
new file mode 100644
index 0000000..ef93c7a
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/TCGCTAGA.sam
@@ -0,0 +1,12 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_TCGCTAGA	LB:LN_TCGCTAGA	PL:illumina	PU:HiMom.1.TCGCTAGA	CN:BI
+HiMom:1:1101:1143:2192	77	*	0	0	*	*	0	0	GGAGCGAGTCTGGGTCTCAGCCCCG	CCCFFFFFHHHHHJGHIIIHJJJJI	RG:Z:HiMom.1
+HiMom:1:1101:1143:2192	141	*	0	0	*	*	0	0	CGACAAGTCTGGCTTATCACTCATC	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1101:1479:2221	77	*	0	0	*	*	0	0	TGTAAAGTATGCTGGCTCAGTGTAT	BBBFDFFEHHHHHJJJJJJJIJHJJ	RG:Z:HiMom.1
+HiMom:1:1101:1479:2221	141	*	0	0	*	*	0	0	GGGGAAATCTATTTTTATGTAAAAA	@CCFFFFFHHHHHJIGIJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1201:1312:2112	77	*	0	0	*	*	0	0	.TCCCAGCGAACCCGCGTGCAACCT	#1=DFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1201:1312:2112	141	*	0	0	*	*	0	0	ATTTGCAGGAGCCGGCGCAGGTGCA	CCCFFFFFHHHHHJJJIJJJJGHIJ	RG:Z:HiMom.1
+HiMom:1:1201:1416:2128	77	*	0	0	*	*	0	0	.ACAGGCGTGGAGGAGGCGGCGGCC	#4=DDDFFHHHHHJIGJHFHHFFED	RG:Z:HiMom.1
+HiMom:1:1201:1416:2128	141	*	0	0	*	*	0	0	TTGGTGTGGAGGCGGTGGCGGGATC	@@@DDDDDHHFHHII:?GGHIIB6?	RG:Z:HiMom.1
+HiMom:1:2101:1064:2242	77	*	0	0	*	*	0	0	ATGAACAAAGGAAGAATTATGCACG	?;?D;DDDF?;:+<<CFFCHE433A	RG:Z:HiMom.1
+HiMom:1:2101:1064:2242	141	*	0	0	*	*	0	0	.GGAAAAAGGTTGTCAAGCGTTAAA	#########################	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B25T/sams/TCTGCAAG.sam b/testdata/picard/illumina/25T8B25T/sams/TCTGCAAG.sam
new file mode 100644
index 0000000..aa99407
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/TCTGCAAG.sam
@@ -0,0 +1,4 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_TCTGCAAG	LB:LN_TCTGCAAG	PL:illumina	PU:HiMom.1.TCTGCAAG	CN:BI
+HiMom:1:1201:1042:2174	77	*	0	0	*	*	0	0	.GTTGGTGTCTTCATTTTATGTATA	#1=DDFDFHHHHHJIJJJHIJHIJJ	RG:Z:HiMom.1
+HiMom:1:1201:1042:2174	141	*	0	0	*	*	0	0	.TCAGGAAGGC..CAAAAAAAGAAA	#0;@@@?@?<@##3<@@?@@?????	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B25T/sams/TGCAAGTA.sam b/testdata/picard/illumina/25T8B25T/sams/TGCAAGTA.sam
new file mode 100644
index 0000000..9e4d398
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/TGCAAGTA.sam
@@ -0,0 +1,6 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_TGCAAGTA	LB:LN_TGCAAGTA	PL:illumina	PU:HiMom.1.TGCAAGTA	CN:BI
+HiMom:1:1101:1242:2170	77	*	0	0	*	*	0	0	ATGGCAGGGCAGAGTTCTGATGAGT	CCCFFFFFHHGGGIFHEIIGIIII?	RG:Z:HiMom.1
+HiMom:1:1101:1242:2170	141	*	0	0	*	*	0	0	GGAAGGAAAAGAAGCACAAGTACAT	@@@DFDFFHHHGHHGIIGJJEHHIG	RG:Z:HiMom.1
+HiMom:1:2101:1163:2222	77	*	0	0	*	*	0	0	GAGCAGGCAAGGAGGACTTCTTGTT	CCCFFFFFGHHHHJJHHIJJJJJIJ	RG:Z:HiMom.1
+HiMom:1:2101:1163:2222	141	*	0	0	*	*	0	0	GAGCGATAATGGTTCTTTTCCTCAC	@@@DFFFFHHHHHJJJJJJJIJJJJ	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B25T/sams/TGCTGCTG.sam b/testdata/picard/illumina/25T8B25T/sams/TGCTGCTG.sam
new file mode 100644
index 0000000..4713b3c
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/TGCTGCTG.sam
@@ -0,0 +1,10 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_TGCTGCTG	LB:LN_TGCTGCTG	PL:illumina	PU:HiMom.1.TGCTGCTG	CN:BI
+HiMom:1:1101:1084:2136	77	*	0	0	*	*	0	0	.TCTCACTGTGAATTTGTGGTGGGC	#1=DDFFFHHHHHJJJJGIJIJJJJ	RG:Z:HiMom.1
+HiMom:1:1101:1084:2136	141	*	0	0	*	*	0	0	TTTCT....................	<<<@@####################	RG:Z:HiMom.1
+HiMom:1:1201:1285:2100	77	*	0	0	*	*	0	0	.AATGACATGTTTAAAGATGGACTC	#1:BDDFFHHFHHGIJIJIIIIGII	RG:Z:HiMom.1
+HiMom:1:1201:1285:2100	141	*	0	0	*	*	0	0	GATCTTTTTTGCTTTGTAGTTATAG	@@@DFFFFHHHHHIIGIABCFFHBF	RG:Z:HiMom.1
+HiMom:1:2101:1162:2139	77	*	0	0	*	*	0	0	AGAGGTGAAATTCTTGGACCGGCGC	@@@DDDDDHFHHHDB:EFHHCAG?D	RG:Z:HiMom.1
+HiMom:1:2101:1162:2139	141	*	0	0	*	*	0	0	ATCGTTTATGGTCGGAACTACGACG	BCCFFFFFHHHHHIJJJJJJJIJJI	RG:Z:HiMom.1
+HiMom:1:2101:1195:2150	77	*	0	0	*	*	0	0	CCGAGAGAGTGAGAGCGCTCCTGGG	CCCFFFFFHFHHHJJJJIJJJJIJJ	RG:Z:HiMom.1
+HiMom:1:2101:1195:2150	141	*	0	0	*	*	0	0	AATTGAACTTCACCACCCAGAGGAA	CCCFFFFFHHHHHJJJJJJIJJJJJ	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B25T/sams/TGTAACTC.sam b/testdata/picard/illumina/25T8B25T/sams/TGTAACTC.sam
new file mode 100644
index 0000000..2571c37
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/TGTAACTC.sam
@@ -0,0 +1,4 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_TGTAACTC	LB:LN_TGTAACTC	PL:illumina	PU:HiMom.1.TGTAACTC	CN:BI
+HiMom:1:1201:1421:2154	77	*	0	0	*	*	0	0	TGTGTGTGTGGGTGTGTGTATATAT	?@?DDFFFFFHH at GEFCCCHGIGJI	RG:Z:HiMom.1
+HiMom:1:1201:1421:2154	141	*	0	0	*	*	0	0	TGTGCTCTTCCGATCTTGTGCTCTT	BC at DFFFFHHHHHJJJJFHIHHIJJ	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B25T/sams/TGTAATCA.sam b/testdata/picard/illumina/25T8B25T/sams/TGTAATCA.sam
new file mode 100644
index 0000000..d44c1e0
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/TGTAATCA.sam
@@ -0,0 +1,8 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_TGTAATCA	LB:LN_TGTAATCA	PL:illumina	PU:HiMom.1.TGTAATCA	CN:BI
+HiMom:1:1101:1419:2119	77	*	0	0	*	*	0	0	.ATGACTATGGTAACTGAAAGAAAA	#1:A1BDADBFFDFIIIEEHECACF	RG:Z:HiMom.1
+HiMom:1:1101:1419:2119	141	*	0	0	*	*	0	0	ACTTTCCTTTTTTGTTTTACTTTAA	#########################	RG:Z:HiMom.1
+HiMom:1:1201:1208:2132	77	*	0	0	*	*	0	0	.CCTCAATGAGCGGCACTATGGGGG	#1=DDFFFHHHHGJJIJJGHIJGIJ	RG:Z:HiMom.1
+HiMom:1:1201:1208:2132	141	*	0	0	*	*	0	0	CTGTAGAAAGGATGGTCGGGCTCCA	@@CDFFFFGHFHHJIJJGJIBHJJG	RG:Z:HiMom.1
+HiMom:1:1201:1344:2147	77	*	0	0	*	*	0	0	TATCCTCCCTACTATGCCTAGAAGG	=?@DADEFHBHDFG>EFGDHGFGHD	RG:Z:HiMom.1
+HiMom:1:1201:1344:2147	141	*	0	0	*	*	0	0	ACGATTAGTTTTAGCATTGGAGTAG	@<??DDDDFHHHFGGHHIIIGGAGH	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B25T/sams/TTGTCTAT.sam b/testdata/picard/illumina/25T8B25T/sams/TTGTCTAT.sam
new file mode 100644
index 0000000..01ab259
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/TTGTCTAT.sam
@@ -0,0 +1,10 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_TTGTCTAT	LB:LN_TTGTCTAT	PL:illumina	PU:HiMom.1.TTGTCTAT	CN:BI
+HiMom:1:1101:1219:2164	77	*	0	0	*	*	0	0	TCAAGCAGGAGCAGCTAAGTCCTAA	CCCFFFFFHHHHHJJJJJJHIJJJJ	RG:Z:HiMom.1
+HiMom:1:1101:1219:2164	141	*	0	0	*	*	0	0	ATCTTATCCACTCCTTCCACTTTGG	CCCFFFFFHHHHHJJIJJJJJJJIJ	RG:Z:HiMom.1
+HiMom:1:1201:1103:2184	77	*	0	0	*	*	0	0	GTAAGAACTACCCTGGGTCCCCGTG	@@BFFFFFHHHHHJJJJGIJJJJHI	RG:Z:HiMom.1
+HiMom:1:1201:1103:2184	141	*	0	0	*	*	0	0	AGAAGTTTCAGAATTGTGGCCCCAT	B at BFFDEFHHHHHJJJGHIJJJJJI	RG:Z:HiMom.1
+HiMom:1:1201:1107:2109	77	*	0	0	*	*	0	0	.GGGAACCTGGCGCTAAACCATTCG	#1=DFFFFHHHHHJJJJJJJJJIJJ	RG:Z:HiMom.1
+HiMom:1:1201:1107:2109	141	*	0	0	*	*	0	0	ACAAACCCTTGTGTCGAGGGCTGAC	CCCFFFFFHHGHHJJJJIIJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1201:1252:2141	77	*	0	0	*	*	0	0	.TTCCCCCCATGTAATTATTGTGAA	#1=DDFFFHHHHHJJJJJJJJIJJJ	RG:Z:HiMom.1
+HiMom:1:1201:1252:2141	141	*	0	0	*	*	0	0	AGTTATTTTGCCTATGTCCAACAAG	BCBFFFFFGHHHHJIJJJJJJJJJJ	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/barcode.params b/testdata/picard/illumina/25T8B25T/sams/barcode.params
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/sams/barcode.params
rename to testdata/picard/illumina/25T8B25T/sams/barcode.params
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/sams/multiplexed_positive_rgtags.params b/testdata/picard/illumina/25T8B25T/sams/multiplexed_positive_rgtags.params
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/sams/multiplexed_positive_rgtags.params
rename to testdata/picard/illumina/25T8B25T/sams/multiplexed_positive_rgtags.params
diff --git a/testdata/picard/illumina/25T8B25T/sams/nonBarcoded.sam b/testdata/picard/illumina/25T8B25T/sams/nonBarcoded.sam
new file mode 100644
index 0000000..f1ffc0a
--- /dev/null
+++ b/testdata/picard/illumina/25T8B25T/sams/nonBarcoded.sam
@@ -0,0 +1,182 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:HiDad	LB:Hello, World	PL:illumina	PU:HiMom.1	CN:BI
+HiMom:1:1101:1031:2224	516	*	0	0	*	*	0	0	.........................	#########################	RG:Z:HiMom.1	XN:i:1
+HiMom:1:1101:1039:2147	516	*	0	0	*	*	0	0	.........................	#########################	RG:Z:HiMom.1	XN:i:1
+HiMom:1:1101:1046:2175	516	*	0	0	*	*	0	0	..GGA....................	#########################	RG:Z:HiMom.1
+HiMom:1:1101:1047:2122	516	*	0	0	*	*	0	0	..TCA....................	#########################	RG:Z:HiMom.1
+HiMom:1:1101:1048:2197	516	*	0	0	*	*	0	0	..GTG....................	#########################	RG:Z:HiMom.1
+HiMom:1:1101:1065:2193	4	*	0	0	*	*	0	0	.CTTG....................	#########################	RG:Z:HiMom.1
+HiMom:1:1101:1069:2159	4	*	0	0	*	*	0	0	GACGT....................	<<<@?####################	RG:Z:HiMom.1
+HiMom:1:1101:1071:2233	4	*	0	0	*	*	0	0	GTTTG....................	<<<@@####################	RG:Z:HiMom.1
+HiMom:1:1101:1083:2193	4	*	0	0	*	*	0	0	AGGCT....................	#########################	RG:Z:HiMom.1
+HiMom:1:1101:1084:2136	4	*	0	0	*	*	0	0	TTTCT....................	<<<@@####################	RG:Z:HiMom.1
+HiMom:1:1101:1089:2172	4	*	0	0	*	*	0	0	TCCGG....................	:<<??####################	RG:Z:HiMom.1
+HiMom:1:1101:1100:2207	4	*	0	0	*	*	0	0	AGGCT............G.......	#########################	RG:Z:HiMom.1
+HiMom:1:1101:1111:2148	4	*	0	0	*	*	0	0	GCGAA.A..........GGACGAC.	#########################	RG:Z:HiMom.1
+HiMom:1:1101:1138:2141	4	*	0	0	*	*	0	0	TCCGATCTGCTTCAGGTCGATCAGA	CCCFFFFFHGHHHJJIGHIJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1101:1140:2120	4	*	0	0	*	*	0	0	TTTTTTTTTTTTTAACTTTGCAAAT	@@@DDDDDHHHHFB at 9FHI@BFH@@	RG:Z:HiMom.1
+HiMom:1:1101:1143:2192	4	*	0	0	*	*	0	0	CGACAAGTCTGGCTTATCACTCATC	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1101:1150:2228	4	*	0	0	*	*	0	0	ATGGGAGGCGATTCCTAGGGGGTTG	8?=DD8;@BH6DHD<FGGGEIGHIG	RG:Z:HiMom.1
+HiMom:1:1101:1157:2135	4	*	0	0	*	*	0	0	TTTAAAGTCTTAATCAAAGATGATA	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1101:1162:2207	516	*	0	0	*	*	0	0	TAAAACTGGGGAAGTTAGAGGAATG	#########################	RG:Z:HiMom.1
+HiMom:1:1101:1165:2239	4	*	0	0	*	*	0	0	ATGGAAGTCGAGACAGAAGTGAGAA	#########################	RG:Z:HiMom.1
+HiMom:1:1101:1175:2197	4	*	0	0	*	*	0	0	AAGAGCTGGGGAACATCCAGAAAGG	BC at FFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1101:1188:2237	4	*	0	0	*	*	0	0	GCTTCCTTCAAGACAGAAGTGAGAA	CCCFFDDEFHHFFE at FDHHAIAFHG	RG:Z:HiMom.1
+HiMom:1:1101:1197:2200	4	*	0	0	*	*	0	0	ATATTCCACTGGAACCACAGAACCC	@@@FFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1101:1206:2126	4	*	0	0	*	*	0	0	ATCTGTCCAGTGGTGCACTGAATGT	CCCFFFFFHHHHHHIIJJJJIJJJJ	RG:Z:HiMom.1
+HiMom:1:1101:1212:2230	4	*	0	0	*	*	0	0	TTTTAGCTTTATTGGGGAGGGGGTG	CCCFFFFFHHGHHJJJJGJJJJJDF	RG:Z:HiMom.1
+HiMom:1:1101:1218:2200	4	*	0	0	*	*	0	0	GCTCTTCCGATCTATCTGCTCGTCC	(-(=34???3;@#############	RG:Z:HiMom.1
+HiMom:1:1101:1219:2164	4	*	0	0	*	*	0	0	ATCTTATCCACTCCTTCCACTTTGG	CCCFFFFFHHHHHJJIJJJJJJJIJ	RG:Z:HiMom.1
+HiMom:1:1101:1221:2143	4	*	0	0	*	*	0	0	CAATTGAATGTCTGCACAGCCGCTT	@@@FFFFDHHHHHJJJIIIJGHIJJ	RG:Z:HiMom.1
+HiMom:1:1101:1236:2121	4	*	0	0	*	*	0	0	TTGCGCTTACTTTGTAGCCTTCATC	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1101:1242:2170	4	*	0	0	*	*	0	0	GGAAGGAAAAGAAGCACAAGTACAT	@@@DFDFFHHHGHHGIIGJJEHHIG	RG:Z:HiMom.1
+HiMom:1:1101:1257:2223	4	*	0	0	*	*	0	0	TGCTCTTCCGATCTTTTAGCAAAGC	:?@DDBDDHFFHDGIGIIJJJGGGI	RG:Z:HiMom.1
+HiMom:1:1101:1259:2152	4	*	0	0	*	*	0	0	ATTTTTATATTTTTTTAGACATAGG	CCCFFFFFGHHHHJJJJIGIIJJJJ	RG:Z:HiMom.1
+HiMom:1:1101:1261:2127	516	*	0	0	*	*	0	0	TTTTTTTTTTTTTTTTTTTTTTTTT	CCCFFFFFHGHHHJJIFDDDDDDDD	RG:Z:HiMom.1
+HiMom:1:1101:1263:2236	516	*	0	0	*	*	0	0	AGTTCTTCAGTAATTTTAGTACTGC	#########################	RG:Z:HiMom.1
+HiMom:1:1101:1267:2209	4	*	0	0	*	*	0	0	GGCAGAGTCTCCAACAGCCCCGTAC	=;?DDDD?CCFHAIIIGGIIGE at EG	RG:Z:HiMom.1
+HiMom:1:1101:1269:2170	4	*	0	0	*	*	0	0	TTCCAAGCCTGTGCTTTAAGGAAAA	@@<ADBDBDF8DDCFH at GIE@@GGH	RG:Z:HiMom.1
+HiMom:1:1101:1290:2225	4	*	0	0	*	*	0	0	TCAGTTCACTGGCAAAGACAGTCAC	C@@FBEDDFHFHGIIICEHGDHBHE	RG:Z:HiMom.1
+HiMom:1:1101:1291:2150	4	*	0	0	*	*	0	0	ACAAACCCTTGTGTCGAGGGCTGAC	CCCFFFFFHHFHHIJJJIIIGIJIJ	RG:Z:HiMom.1
+HiMom:1:1101:1302:2244	4	*	0	0	*	*	0	0	TGAATACATATAACAAATGCAAAAA	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1101:1308:2153	516	*	0	0	*	*	0	0	TCTGTAAGGTAATCCCCGCATGTGT	1?1=4===AFFDFFGFDGFB at CFB:	RG:Z:HiMom.1
+HiMom:1:1101:1309:2210	4	*	0	0	*	*	0	0	AGTGGGCTAGGGCATTTTTAATCTT	@@?DFFDFHHHDFHJIJJIJGIIIJ	RG:Z:HiMom.1
+HiMom:1:1101:1314:2233	4	*	0	0	*	*	0	0	AGGAAAGTTGGGCTGACCTGACAGA	@@<DDD;=FBFADBCGDEH?F;FCG	RG:Z:HiMom.1
+HiMom:1:1101:1316:2126	4	*	0	0	*	*	0	0	TCTTTTTTTTTTTTTTTTTTTTTTT	CCCFFFFFHHHHHJJJJHFDDDDDD	RG:Z:HiMom.1
+HiMom:1:1101:1327:2200	516	*	0	0	*	*	0	0	GTCATCTGGGCTGTCGACAGGTGTC	@B at FFFFFHHHHGIJJJJJJIFHHI	RG:Z:HiMom.1
+HiMom:1:1101:1328:2225	4	*	0	0	*	*	0	0	AGGAAATTAGGACTTACCTGACATA	#########################	RG:Z:HiMom.1
+HiMom:1:1101:1338:2175	4	*	0	0	*	*	0	0	GCTTGTTGGCTTTAACATCCACAAT	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1101:1347:2149	4	*	0	0	*	*	0	0	GCTCTTCCGATCTGTGCTCTTCCGA	CCCFFFFFDFHHFIJDGIGGHGIGH	RG:Z:HiMom.1
+HiMom:1:1101:1353:2226	4	*	0	0	*	*	0	0	GTGCTCTTCCGATCTTCAGGTTACC	BBBFFFFFHHHHHJJJJJJJIJJJJ	RG:Z:HiMom.1
+HiMom:1:1101:1363:2138	4	*	0	0	*	*	0	0	GTTCTTAAACCTGTTAGAACTTCTG	C@@FFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1101:1399:2128	4	*	0	0	*	*	0	0	ACAAACCCTTGTGTCGAGGGCTGAC	CCCFFFFFHHHHHIJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1101:1403:2194	4	*	0	0	*	*	0	0	ACATGGTGAAACCCTGTCTCTACTA	CCCFFFDDHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1101:1406:2222	4	*	0	0	*	*	0	0	GGCTGGACTCCCCTGGTTCTGGGCA	;?@DDDBD?FHDFGIIIGIGHHIII	RG:Z:HiMom.1
+HiMom:1:1101:1419:2119	4	*	0	0	*	*	0	0	ACTTTCCTTTTTTGTTTTACTTTAA	#########################	RG:Z:HiMom.1
+HiMom:1:1101:1420:2213	4	*	0	0	*	*	0	0	TTCACTGTACCGGCCGTGCGTACTT	@CCFFFFDHHHFGIJJJJJJGHIGG	RG:Z:HiMom.1
+HiMom:1:1101:1435:2194	4	*	0	0	*	*	0	0	TTTTGTTTTCTTTTACTGAAGTGTA	CCCFFDFFHHHHHJJJJIHIJHHHJ	RG:Z:HiMom.1
+HiMom:1:1101:1441:2148	4	*	0	0	*	*	0	0	TTTTGGCTCTAGAGGGGGTAGAGGG	CCCFFFFFHHDFBHIIJJ1?FGHIJ	RG:Z:HiMom.1
+HiMom:1:1101:1452:2132	4	*	0	0	*	*	0	0	ACAAACCCTTGTGTCGAGGGCTGAC	CCCFFFFFHHHHHJJJJJJJIJJJJ	RG:Z:HiMom.1
+HiMom:1:1101:1460:2176	4	*	0	0	*	*	0	0	AGGAAAAAGACACAACAAGTCCAAC	#########################	RG:Z:HiMom.1
+HiMom:1:1101:1479:2221	4	*	0	0	*	*	0	0	GGGGAAATCTATTTTTATGTAAAAA	@CCFFFFFHHHHHJIGIJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1101:1491:2120	4	*	0	0	*	*	0	0	GGCCAGGCTGAACTTCTGAGCTGCT	CCCFFFFFHHHGHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1201:1018:2133	4	*	0	0	*	*	0	0	.........................	#########################	RG:Z:HiMom.1	XN:i:1
+HiMom:1:1201:1018:2217	516	*	0	0	*	*	0	0	.........................	#########################	RG:Z:HiMom.1	XN:i:1
+HiMom:1:1201:1028:2202	4	*	0	0	*	*	0	0	..AAAC.C.T.......GG..TG..	##42@?###################	RG:Z:HiMom.1
+HiMom:1:1201:1042:2174	4	*	0	0	*	*	0	0	.TCAGGAAGGC..CAAAAAAAGAAA	#0;@@@?@?<@##3<@@?@@?????	RG:Z:HiMom.1
+HiMom:1:1201:1043:2246	4	*	0	0	*	*	0	0	.GCATCATTTC..GCTTCTCTCTGT	#0;@@??@=@>##22=;@??><@??	RG:Z:HiMom.1
+HiMom:1:1201:1045:2105	516	*	0	0	*	*	0	0	.TTTTTTTTTT..TTTTTTTTTTTT	#0;@@@@@@@?##0:????????=<	RG:Z:HiMom.1
+HiMom:1:1201:1054:2151	4	*	0	0	*	*	0	0	GTCAGGCACTGAGAATATATGGGTG	CBCFFFFFHHHHHJJJJJJJJJJEG	RG:Z:HiMom.1
+HiMom:1:1201:1064:2239	4	*	0	0	*	*	0	0	GGGATGGGAGGGCGATGAGGACTAG	8?@:DDDACC:FHHGIH<EGDDDFH	RG:Z:HiMom.1
+HiMom:1:1201:1073:2225	4	*	0	0	*	*	0	0	CGTGTGCTCTTCCGATCTGGAGGGT	@BBDFFFFHHHHHJJJJJJJJJJJ:	RG:Z:HiMom.1
+HiMom:1:1201:1083:2121	4	*	0	0	*	*	0	0	ACACACAACACCACCGCCCTCCCCC	#########################	RG:Z:HiMom.1
+HiMom:1:1201:1084:2204	4	*	0	0	*	*	0	0	TGGCTCCTCAGGCTCTCATCAGTTG	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1201:1095:2146	4	*	0	0	*	*	0	0	ACTGACAACACCAAATGCTGCTAAG	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1201:1103:2184	4	*	0	0	*	*	0	0	AGAAGTTTCAGAATTGTGGCCCCAT	B at BFFDEFHHHHHJJJGHIJJJJJI	RG:Z:HiMom.1
+HiMom:1:1201:1107:2109	4	*	0	0	*	*	0	0	ACAAACCCTTGTGTCGAGGGCTGAC	CCCFFFFFHHGHHJJJJIIJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1201:1118:2198	4	*	0	0	*	*	0	0	AATAAACTTTATTAAAGCAGTTAAA	C at CFFFFFHDHHHGIIIJJJIJJJJ	RG:Z:HiMom.1
+HiMom:1:1201:1122:2227	4	*	0	0	*	*	0	0	GTCATATAAGGCCCAGTCCAAGGAA	@@@FFFFFHHHGGIJIGGIJFIJII	RG:Z:HiMom.1
+HiMom:1:1201:1123:2161	516	*	0	0	*	*	0	0	CGTGTGCTCTTCCGATCTGCATACA	===AAAA8AAAA<AAA)@CBA9>A#	RG:Z:HiMom.1
+HiMom:1:1201:1127:2112	516	*	0	0	*	*	0	0	TAATCACCTGAGCAGTGAAGCCAGC	@<@?BDDDHD?FDBHI?AHGGGDFH	RG:Z:HiMom.1
+HiMom:1:1201:1134:2144	4	*	0	0	*	*	0	0	AGTGTGAGTAATGGTTGAGAGGTGG	B@?DDDFFFHHGHJHHGFIHHIFGI	RG:Z:HiMom.1
+HiMom:1:1201:1138:2227	516	*	0	0	*	*	0	0	GACAAATATAGGAAATAGAAGCTAT	=1=A=AAA,2?4>7C<<4<A+3<AB	RG:Z:HiMom.1
+HiMom:1:1201:1140:2125	4	*	0	0	*	*	0	0	TTCATAAATTGGTCTTAGATGTTGC	CC at FFFFFHHHHFGIJIIIJIJIJJ	RG:Z:HiMom.1
+HiMom:1:1201:1142:2242	4	*	0	0	*	*	0	0	GTAAAATGTAAAATAATAAAAAATG	?=?DDDD;AF<DF<FFFFIIIFF@<	RG:Z:HiMom.1
+HiMom:1:1201:1150:2161	4	*	0	0	*	*	0	0	TTCTCACTACTGTGATTGTGCCACT	@C at FFFFFGHHHHGIIIICEHCFGH	RG:Z:HiMom.1
+HiMom:1:1201:1159:2179	516	*	0	0	*	*	0	0	TTTTTTTTTATTTTTCTAAATACTT	===AA####################	RG:Z:HiMom.1
+HiMom:1:1201:1160:2109	4	*	0	0	*	*	0	0	ACATCCTTCCCATGCCACCAACTCG	CCCFFFFFGHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1201:1180:2119	4	*	0	0	*	*	0	0	GCTCTAAATTTTGCTTTTCTACAGC	CCCFFFFFHHHHHJJJJIJIJJIJJ	RG:Z:HiMom.1
+HiMom:1:1201:1185:2143	4	*	0	0	*	*	0	0	GCTGAAGGCCCGTGGGCCAGAGGTG	@CCFFFFFHHHHHJJJJJJJJJJHI	RG:Z:HiMom.1
+HiMom:1:1201:1187:2100	4	*	0	0	*	*	0	0	AAAAAAGAGCCCGCATTGCCGAGAC	=<=;AA###################	RG:Z:HiMom.1
+HiMom:1:1201:1190:2194	4	*	0	0	*	*	0	0	ACAAACCCTTGTGTCGAGGGCTGAC	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1201:1204:2228	4	*	0	0	*	*	0	0	TCTTCTTGTCGATGAGGAACTTGGT	@?@FFFFFDHHGHJIJJGHIIJJJH	RG:Z:HiMom.1
+HiMom:1:1201:1208:2132	4	*	0	0	*	*	0	0	CTGTAGAAAGGATGGTCGGGCTCCA	@@CDFFFFGHFHHJIJJGJIBHJJG	RG:Z:HiMom.1
+HiMom:1:1201:1219:2115	4	*	0	0	*	*	0	0	TGGGAGTAGTTCCCTGCTAAGGGAG	???DBDBDADDDDIEID:AFFD:?8	RG:Z:HiMom.1
+HiMom:1:1201:1236:2187	4	*	0	0	*	*	0	0	CTCCTTAGCGGATTCCGACTTCCAT	CCCFFFFDHHHHGIJJIGIGIJJGG	RG:Z:HiMom.1
+HiMom:1:1201:1242:2207	4	*	0	0	*	*	0	0	ATCTTTTATTGGCCTCCTGCTCCCC	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1201:1252:2141	4	*	0	0	*	*	0	0	AGTTATTTTGCCTATGTCCAACAAG	BCBFFFFFGHHHHJIJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1201:1260:2165	4	*	0	0	*	*	0	0	ATCTGATCTAAGTTGGGGGACGCCG	@@@FFDFFHHHHHJJJIJIIIGIJJ	RG:Z:HiMom.1
+HiMom:1:1201:1280:2179	4	*	0	0	*	*	0	0	GAGGACTGCTTGAGTCCAGGAGTTC	@@BFFDEFGHHHHIFGCHIJJJGGI	RG:Z:HiMom.1
+HiMom:1:1201:1281:2133	4	*	0	0	*	*	0	0	GCAACAAAATTTCATATGACTTAGC	CCCFFFFFHHHHHJJIIIHICHIIJ	RG:Z:HiMom.1
+HiMom:1:1201:1285:2100	4	*	0	0	*	*	0	0	GATCTTTTTTGCTTTGTAGTTATAG	@@@DFFFFHHHHHIIGIABCFFHBF	RG:Z:HiMom.1
+HiMom:1:1201:1291:2158	4	*	0	0	*	*	0	0	CGTGTGCTCTTCCGATCTGATGGGC	@CCFFFDD?FHHFGEHHIIDHIIII	RG:Z:HiMom.1
+HiMom:1:1201:1300:2137	4	*	0	0	*	*	0	0	GCTCTTCCGATCTTTTTTTTAATTT	@@?DDDDDFDHADEHGIGGED3?FD	RG:Z:HiMom.1
+HiMom:1:1201:1312:2112	4	*	0	0	*	*	0	0	ATTTGCAGGAGCCGGCGCAGGTGCA	CCCFFFFFHHHHHJJJIJJJJGHIJ	RG:Z:HiMom.1
+HiMom:1:1201:1331:2162	4	*	0	0	*	*	0	0	TAATCCCAGTACTTTGGGAGGCCAA	CCCFFFFFHHHHHJJJJIJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1201:1341:2116	4	*	0	0	*	*	0	0	ATAACAGCGAGACTGGCAACTTAAA	#########################	RG:Z:HiMom.1
+HiMom:1:1201:1344:2147	4	*	0	0	*	*	0	0	ACGATTAGTTTTAGCATTGGAGTAG	@<??DDDDFHHHFGGHHIIIGGAGH	RG:Z:HiMom.1
+HiMom:1:1201:1345:2181	4	*	0	0	*	*	0	0	ATACGGATGTGTTTAGGAGTGGGAC	CCCFFFFFHHHHHIIJJHJFHIJIJ	RG:Z:HiMom.1
+HiMom:1:1201:1364:2113	4	*	0	0	*	*	0	0	TAAAGAGAGCCAGTGGAGTTACGAC	#########################	RG:Z:HiMom.1
+HiMom:1:1201:1392:2109	4	*	0	0	*	*	0	0	GTCAGACAGGGGGATTTGGGCTGTG	BBCFFFFFHHHHHHJJJHIJIJJJJ	RG:Z:HiMom.1
+HiMom:1:1201:1392:2184	4	*	0	0	*	*	0	0	ATCTTTATTCATTTGTATGATCTTA	@@BFFFFFHFFHFHIHIIJIJJJJI	RG:Z:HiMom.1
+HiMom:1:1201:1393:2143	4	*	0	0	*	*	0	0	GATAAATGCACGCATCCCCCCCGCG	C at CFFFFFGGHHHHJJJJJJJJJJI	RG:Z:HiMom.1
+HiMom:1:1201:1414:2174	516	*	0	0	*	*	0	0	TTTTTTTTTTTTTTTTTTTTTTTTT	@;@1BDADF????FFEB>B6=BBBB	RG:Z:HiMom.1
+HiMom:1:1201:1416:2128	4	*	0	0	*	*	0	0	TTGGTGTGGAGGCGGTGGCGGGATC	@@@DDDDDHHFHHII:?GGHIIB6?	RG:Z:HiMom.1
+HiMom:1:1201:1421:2154	4	*	0	0	*	*	0	0	TGTGCTCTTCCGATCTTGTGCTCTT	BC at DFFFFHHHHHJJJJFHIHHIJJ	RG:Z:HiMom.1
+HiMom:1:1201:1439:2156	4	*	0	0	*	*	0	0	GGAGATTATTTGCCTTGAAGTAAGC	-;(22<>>@>8@>8;@#########	RG:Z:HiMom.1
+HiMom:1:1201:1452:2143	4	*	0	0	*	*	0	0	TTTTAGTCTTAGCATTTACTTTCCC	CCCFFFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:1201:1458:2109	4	*	0	0	*	*	0	0	GATACGAACACACAAGAACTTTTTT	CCCFFFFFHHHHHJJJJJJJJJJJI	RG:Z:HiMom.1
+HiMom:1:1201:1472:2121	516	*	0	0	*	*	0	0	GTGTGCTCTTCCGATCTGGAGGATG	=+=??A4A==A at 7A<?#########	RG:Z:HiMom.1
+HiMom:1:1201:1483:2126	516	*	0	0	*	*	0	0	GCATGCAGCTGGGTGCTGTGATGCA	@@@DDDBB<DD8F<<CGG?AA?A<F	RG:Z:HiMom.1
+HiMom:1:1201:1486:2109	4	*	0	0	*	*	0	0	ACGTGTGCTCTTCCCGATCTGTATA	CCCFF?DDFBHHHJJIIDHJIJJJH	RG:Z:HiMom.1
+HiMom:1:1201:1486:2146	516	*	0	0	*	*	0	0	TTTTTTTTTTTTTTTTTTTTTGGGC	<<<@??@??@???????########	RG:Z:HiMom.1
+HiMom:1:2101:1011:2102	4	*	0	0	*	*	0	0	.....TCACACATAATTTTAAAATT	#####22@?@@??@@@@@??@@@@@	RG:Z:HiMom.1
+HiMom:1:2101:1013:2146	4	*	0	0	*	*	0	0	....CGCTAGAACCAACTTATTCAT	####24=?@@?@?@@?@@@@@@?@@	RG:Z:HiMom.1
+HiMom:1:2101:1021:2209	4	*	0	0	*	*	0	0	..GGAAGGCTGCTAGCTGGCCAGAG	##08@>??@@??@?????????>?@	RG:Z:HiMom.1
+HiMom:1:2101:1023:2237	516	*	0	0	*	*	0	0	..TTTGTTTGAGTTCCTTGTAGATT	##0:=@?>?@???@:>?@??>?;?<	RG:Z:HiMom.1
+HiMom:1:2101:1031:2163	4	*	0	0	*	*	0	0	..ACATTTGTCACCACTAGCCACCA	##0<@?@@@@@@@@@@?@@@@@@@?	RG:Z:HiMom.1
+HiMom:1:2101:1036:2087	4	*	0	0	*	*	0	0	.GTCCACTTACGAAGCAAATACTTT	#4=DDFFFHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:2101:1040:2208	516	*	0	0	*	*	0	0	.CTGATAGTCACTGAAATGAATTCA	#-0=>(2 at .22@@############	RG:Z:HiMom.1
+HiMom:1:2101:1048:2238	4	*	0	0	*	*	0	0	.GTCACATCGTTGAAGCACTGGATC	#11ADDDB<CFFHCHGDBHGIIIII	RG:Z:HiMom.1
+HiMom:1:2101:1054:2162	4	*	0	0	*	*	0	0	.GGACAGGGAAGGGAAGGAAGGGTG	#4=DDFDFHHHHHJIJIIDHHGICG	RG:Z:HiMom.1
+HiMom:1:2101:1059:2083	4	*	0	0	*	*	0	0	.GAATGTCTTAGAAGGATGCTTCTC	#1=BDDDEHHGHHJJJJJIJJIIJJ	RG:Z:HiMom.1
+HiMom:1:2101:1063:2206	4	*	0	0	*	*	0	0	.TGCTAGGATGAGGATGGATAGTAA	#1=DDDFFHHHHHJHIIJHIIIHHJ	RG:Z:HiMom.1
+HiMom:1:2101:1064:2242	4	*	0	0	*	*	0	0	.GGAAAAAGGTTGTCAAGCGTTAAA	#########################	RG:Z:HiMom.1
+HiMom:1:2101:1072:2170	4	*	0	0	*	*	0	0	.GGGGAGACAGAGAGGATCAGAAGT	#4=BDDFDHHDFHEGFEGGIJIIIG	RG:Z:HiMom.1
+HiMom:1:2101:1077:2139	4	*	0	0	*	*	0	0	.ATTAGTTGGCGGATGAAGCAGATA	#4=DFFFFHHHHHJJJJJJJJJIJJ	RG:Z:HiMom.1
+HiMom:1:2101:1084:2188	4	*	0	0	*	*	0	0	TACAAGGTCAAAATCAGCAACAAGT	CCCFFFFDHHHHHJJJJJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:2101:1100:2085	4	*	0	0	*	*	0	0	ATCTTGATCTCCTCCTTCTTGGCCT	@@@DDDDDHHFHFEIIIIHHBAHBG	RG:Z:HiMom.1
+HiMom:1:2101:1102:2221	4	*	0	0	*	*	0	0	ATAACTGACTCTACTCAGTAGATTA	CCCFFFFFHHHHHJJJJJIJJJJJJ	RG:Z:HiMom.1
+HiMom:1:2101:1105:2131	4	*	0	0	*	*	0	0	CAGCAGCAGCAACAGCAGAAACATG	CCCFFFFFHHHHHJJJJJIJJJJJJ	RG:Z:HiMom.1
+HiMom:1:2101:1112:2245	4	*	0	0	*	*	0	0	TCGTAGTGTTGTAATTTCGTCTTCT	?8?DBDDDCCFCAACGGFFCBFFAE	RG:Z:HiMom.1
+HiMom:1:2101:1122:2136	4	*	0	0	*	*	0	0	CTTGCCAGCCTGCAGGCCCCGCGGC	???BBAABDD?DDIID)A:3<EADD	RG:Z:HiMom.1
+HiMom:1:2101:1123:2095	4	*	0	0	*	*	0	0	TCCGCCTCCAGCTTCAGCTTCTCCT	@@@FDDFFHHHHHJHGGJIJJJEHH	RG:Z:HiMom.1
+HiMom:1:2101:1126:2082	4	*	0	0	*	*	0	0	TCTCTTTCCACCTTGGTCACCTTCC	@C at DDDFFHHHHHJEGGIHHIJGIH	RG:Z:HiMom.1
+HiMom:1:2101:1133:2239	4	*	0	0	*	*	0	0	AGCTTTTTGTTTCCTAGCTTGTCTT	?@?DDFFFHHHHF4ACFHIJHHHGH	RG:Z:HiMom.1
+HiMom:1:2101:1143:2137	4	*	0	0	*	*	0	0	GCTCTTCAGATCTAGGGGGAACAGC	@@@DD?=DCAFFFHIIDG:EFHIII	RG:Z:HiMom.1
+HiMom:1:2101:1151:2182	516	*	0	0	*	*	0	0	TTTTTTTTTTTTTTTTTTTTTTTTA	9<<?@?@;5=?##############	RG:Z:HiMom.1
+HiMom:1:2101:1151:2236	516	*	0	0	*	*	0	0	TTTGAAGCCTCTTTATCCTTGGCAT	#########################	RG:Z:HiMom.1
+HiMom:1:2101:1162:2139	4	*	0	0	*	*	0	0	ATCGTTTATGGTCGGAACTACGACG	BCCFFFFFHHHHHIJJJJJJJIJJI	RG:Z:HiMom.1
+HiMom:1:2101:1163:2203	4	*	0	0	*	*	0	0	TTGGTTCACTTATGTATTTATGAAT	@CCFDFFFHHHHHJHIIJJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:2101:1163:2222	4	*	0	0	*	*	0	0	GAGCGATAATGGTTCTTTTCCTCAC	@@@DFFFFHHHHHJJJJJJJIJJJJ	RG:Z:HiMom.1
+HiMom:1:2101:1172:2152	516	*	0	0	*	*	0	0	ATCGTTTCTGGGGACTAGTGAGGCG	#########################	RG:Z:HiMom.1
+HiMom:1:2101:1186:2093	4	*	0	0	*	*	0	0	AATGTTGGGAGGACAATGATGGAAA	#########################	RG:Z:HiMom.1
+HiMom:1:2101:1188:2195	4	*	0	0	*	*	0	0	GCACATACACCAAATGTCTGAACCT	CCCFFFFFHHHHHJJJHIJJJJJJJ	RG:Z:HiMom.1
+HiMom:1:2101:1195:2150	4	*	0	0	*	*	0	0	AATTGAACTTCACCACCCAGAGGAA	CCCFFFFFHHHHHJJJJJJIJJJJJ	RG:Z:HiMom.1
+HiMom:1:2101:1207:2084	516	*	0	0	*	*	0	0	TCACCACTCTTCTGGGCATCCCCTG	@@@DDEDFHHHHHIJIHHGHGGJJJ	RG:Z:HiMom.1
+HiMom:1:2101:1208:2231	516	*	0	0	*	*	0	0	CTTTTTTTTTTTTTTTTTTTTTTTT	CCCFFFFFHHHHHJJJHFDDDDDDD	RG:Z:HiMom.1
+HiMom:1:2101:1215:2110	4	*	0	0	*	*	0	0	ATCTTTCCCCCATTAAGAACAGCAA	#########################	RG:Z:HiMom.1
+HiMom:1:2101:1216:2172	4	*	0	0	*	*	0	0	GGACTTCTAGGGGATTTAGCGGGGT	CCCFFFFFHHHHHJJJJJJJJJJJD	RG:Z:HiMom.1
+HiMom:1:2101:1216:2193	4	*	0	0	*	*	0	0	AGGCATGACACTGCATTTTAAATAC	@@@DDDDDHFFHHGGDFHFHIIHGG	RG:Z:HiMom.1
+HiMom:1:2101:1226:2088	4	*	0	0	*	*	0	0	GCTCTTCCGATCTAGGTAATAGCTA	==?BDFFFDCDDHFFFAFHDHIJGJ	RG:Z:HiMom.1
+HiMom:1:2101:1231:2208	4	*	0	0	*	*	0	0	AGCCAGTGTTGGTGTGTTGACTGTT	@@;1ADABCF;BF<AACGCHEBHC<	RG:Z:HiMom.1
+HiMom:1:2101:1233:2133	516	*	0	0	*	*	0	0	TTTTTTTTTTTTTTTTTTTTTTTTT	CCCFFFFFGHHHHJJJFDDDDDDDD	RG:Z:HiMom.1
+HiMom:1:2101:1240:2197	516	*	0	0	*	*	0	0	ACTGGAGATCCTTGTTACATGCCCA	??+++A:DD?:ADEE@::C4:C<E:	RG:Z:HiMom.1
+HiMom:1:2101:1245:2154	4	*	0	0	*	*	0	0	ACCAATCAGTAGCACCACTATACAC	CCCFFFFFHHHHHJJJJJJIJJJJJ	RG:Z:HiMom.1
+HiMom:1:2101:1249:2231	4	*	0	0	*	*	0	0	TCTCTCGGCCTTCCACTCTAGCATA	@@@FFFFFFHHGHIJJJGJIIJHIJ	RG:Z:HiMom.1
+HiMom:1:2101:1258:2092	4	*	0	0	*	*	0	0	TTAGACAAAACACCAAAATAAAATA	#########################	RG:Z:HiMom.1
+HiMom:1:2101:1262:2128	516	*	0	0	*	*	0	0	TCTTGTGGTAACTTTTCTGACACCT	-(---9@;@?:8>?4:>?@######	RG:Z:HiMom.1
+HiMom:1:2101:1273:2119	516	*	0	0	*	*	0	0	ATGATGGATCTTCTCTAACTTGTCA	>=><AAAAA+2AA?CB4@@ABB3?A	RG:Z:HiMom.1
+HiMom:1:2101:1285:2105	516	*	0	0	*	*	0	0	TGTCTATATCAACCAACACCTCTTC	-(0(():94:9:???##########	RG:Z:HiMom.1
+HiMom:1:2101:1312:2105	4	*	0	0	*	*	0	0	GTTGAGAATAGGTTGAGATCGTTTC	@CCFFFDFHHFHDHIJJJJJJJIJJ	RG:Z:HiMom.1
+HiMom:1:2101:1325:2083	4	*	0	0	*	*	0	0	TGTGCTCTTCCGATCTGGAGAAAAA	#########################	RG:Z:HiMom.1
+HiMom:1:2101:1336:2109	4	*	0	0	*	*	0	0	AGACCAGAACAGCTCCAGGTGCTCC	CCCFFFFFHHHHHJJJJJJCGHIJJ	RG:Z:HiMom.1
+HiMom:1:2101:1349:2084	4	*	0	0	*	*	0	0	AGTCTGAATCATTGGTGTCTGAAGA	<5;??=>=>>?##############	RG:Z:HiMom.1
+HiMom:1:2101:1365:2094	4	*	0	0	*	*	0	0	GCTCTTCCGATCTTGTGCTCTTCCG	CCCFFFFDHFHHGJJIIJIJJIHII	RG:Z:HiMom.1
+HiMom:1:2101:1370:2116	4	*	0	0	*	*	0	0	CACCATCTGACATCATGTTTGAAAG	@@@DFFFDFFHDHIGBHHII<HEDB	RG:Z:HiMom.1
+HiMom:1:2101:1386:2105	4	*	0	0	*	*	0	0	AGGAATTATTCTTCTGCCATAAGGT	B@@DDFFFHGFHHIJJJJJGIGIJH	RG:Z:HiMom.1
+HiMom:1:2101:1414:2098	4	*	0	0	*	*	0	0	TTGGGGCCGGTGCCGTCGGGCCCAA	CCCFFFFFHHHHGJJIJJJJJJJIJ	RG:Z:HiMom.1
+HiMom:1:2101:1427:2081	4	*	0	0	*	*	0	0	CCGACTTCCATGGCCACCGTCCTGC	CCCFFFFFHHHHHJJJIIGFIIJJI	RG:Z:HiMom.1
+HiMom:1:2101:1450:2134	4	*	0	0	*	*	0	0	ACAAACCCTTGTGTCGAGGGCTGAC	CC at FDFDFFDFHFGIIE1CGGHBGE	RG:Z:HiMom.1
+HiMom:1:2101:1459:2083	4	*	0	0	*	*	0	0	ATTTCACCAAAATAATCAGAAGGCC	CCCFFFFDBHGHHIGGIJFJJGGFH	RG:Z:HiMom.1
+HiMom:1:2101:1491:2093	4	*	0	0	*	*	0	0	AGAGACGGGGTCTCGCTATGTTGCC	BCCDFFFFHHHHHJIIJJJJIJIJJ	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C1.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C1.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C1.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C1.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C10.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C10.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C10.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C10.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C11.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C11.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C11.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C11.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C12.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C12.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C12.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C12.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C13.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C13.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C13.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C13.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C14.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C14.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C14.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C14.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C15.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C15.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C15.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C15.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C16.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C16.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C16.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C16.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C17.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C17.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C17.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C17.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C18.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C18.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C18.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C18.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C19.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C19.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C19.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C19.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C2.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C2.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C2.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C2.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C20.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C20.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C20.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C20.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C21.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C21.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C21.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C21.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C22.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C22.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C22.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C22.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C23.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C23.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C23.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C23.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C24.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C24.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C24.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C24.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C25.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C25.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C25.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C25.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C26.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C26.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C26.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C26.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C27.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C27.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C27.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C27.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C28.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C28.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C28.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C28.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C29.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C29.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C29.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C29.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C3.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C3.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C3.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C3.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C30.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C30.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C30.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C30.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C31.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C31.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C31.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C31.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C32.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C32.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C32.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C32.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C33.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C33.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C33.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C33.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C34.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C34.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C34.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C34.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C35.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C35.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C35.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C35.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C36.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C36.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C36.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C36.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C37.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C37.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C37.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C37.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C38.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C38.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C38.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C38.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C39.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C39.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C39.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C39.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C4.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C4.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C4.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C4.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C40.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C40.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C40.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C40.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C41.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C41.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C41.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C41.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C42.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C42.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C42.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C42.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C43.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C43.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C43.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C43.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C44.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C44.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C44.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C44.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C45.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C45.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C45.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C45.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C46.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C46.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C46.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C46.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C47.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C47.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C47.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C47.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C48.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C48.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C48.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C48.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C49.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C49.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C49.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C49.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C5.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C5.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C5.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C5.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C50.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C50.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C50.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C50.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C51.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C51.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C51.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C51.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C52.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C52.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C52.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C52.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C53.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C53.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C53.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C53.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C54.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C54.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C54.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C54.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C55.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C55.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C55.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C55.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C56.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C56.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C56.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C56.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C57.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C57.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C57.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C57.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C58.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C58.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C58.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C58.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C59.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C59.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C59.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C59.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C6.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C6.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C6.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C6.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C60.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C60.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C60.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C60.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C61.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C61.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C61.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C61.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C62.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C62.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C62.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C62.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C63.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C63.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C63.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C63.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C64.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C64.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C64.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C64.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C65.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C65.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C65.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C65.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C66.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C66.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C66.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C66.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C7.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C7.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C7.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C7.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C8.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C8.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C8.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C8.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C9.1/s_1_1101.bcl b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C9.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C9.1/s_1_1101.bcl
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/C9.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/s_1_1101.filter b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/s_1_1101.filter
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/s_1_1101.filter
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/L001/s_1_1101.filter
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/s_1_1101_barcode.txt b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/s_1_1101_barcode.txt
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/s_1_1101_barcode.txt
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/BaseCalls/s_1_1101_barcode.txt
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/L001/s_1_1101.locs b/testdata/picard/illumina/25T8B8B25T/Data/Intensities/L001/s_1_1101.locs
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/Data/Intensities/L001/s_1_1101.locs
rename to testdata/picard/illumina/25T8B8B25T/Data/Intensities/L001/s_1_1101.locs
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/AACTTGACGCTCTCTT.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/AACTTGACGCTCTCTT.1.fastq
new file mode 100644
index 0000000..c756fa1
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/AACTTGACGCTCTCTT.1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:14221:1451 1:Y:0:AACTTGACGCTCTCTT
+TTTTTTTTTCTTTTACTTTTTTTTT
++
+>1>1>111>0@@31311B21AAA##
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/AACTTGACGCTCTCTT.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/AACTTGACGCTCTCTT.2.fastq
new file mode 100644
index 0000000..1620e96
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/AACTTGACGCTCTCTT.2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:14221:1451 2:Y:0:AACTTGACGCTCTCTT
+TTTTTTTTTCTTTTTTTTCCTTTTT
++
+1111111>>0 at 331B00/011221A
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/AACTTGACGCTCTCTT.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/AACTTGACGCTCTCTT.barcode_1.fastq
new file mode 100644
index 0000000..91a3610
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/AACTTGACGCTCTCTT.barcode_1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:14221:1451 :Y:0:AACTTGACGCTCTCTT
+AACTTGAC
++
+11>AA11B
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/AACTTGACGCTCTCTT.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/AACTTGACGCTCTCTT.barcode_2.fastq
new file mode 100644
index 0000000..8ff1eb4
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/AACTTGACGCTCTCTT.barcode_2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:14221:1451 :Y:0:AACTTGACGCTCTCTT
+GCTCTCTT
++
+3>>>>DDD
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/AAGACACTAGTCACCT.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/AAGACACTAGTCACCT.1.fastq
new file mode 100644
index 0000000..a3e8f48
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/AAGACACTAGTCACCT.1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:15405:1531 1:Y:0:AAGACACTAGTCACCT
+TTTCCTTCTTTTTTTTTTTTTTTAT
++
+11>11331 at 13111000A#######
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/AAGACACTAGTCACCT.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/AAGACACTAGTCACCT.2.fastq
new file mode 100644
index 0000000..4051ec0
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/AAGACACTAGTCACCT.2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:15405:1531 2:Y:0:AAGACACTAGTCACCT
+TTCTTTTTTCTTTTTCTTTGTTCTT
++
+11111@@11>1331B11333B03A3
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/AAGACACTAGTCACCT.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/AAGACACTAGTCACCT.barcode_1.fastq
new file mode 100644
index 0000000..c3beeb3
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/AAGACACTAGTCACCT.barcode_1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:15405:1531 :Y:0:AAGACACTAGTCACCT
+AAGACACT
++
+111111>B
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/AAGACACTAGTCACCT.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/AAGACACTAGTCACCT.barcode_2.fastq
new file mode 100644
index 0000000..8d1b1af
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/AAGACACTAGTCACCT.barcode_2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:15405:1531 :Y:0:AAGACACTAGTCACCT
+AGTCTCCT
++
+11>11B11
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AAGACACTAGTCTCCT.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/AAGACACTAGTCTCCT.1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AAGACACTAGTCTCCT.1.fastq
rename to testdata/picard/illumina/25T8B8B25T/fastq/AAGACACTAGTCTCCT.1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AAGACACTAGTCTCCT.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/AAGACACTAGTCTCCT.2.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AAGACACTAGTCTCCT.2.fastq
rename to testdata/picard/illumina/25T8B8B25T/fastq/AAGACACTAGTCTCCT.2.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AAGACACTAGTCTCCT.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/AAGACACTAGTCTCCT.barcode_1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AAGACACTAGTCTCCT.barcode_1.fastq
rename to testdata/picard/illumina/25T8B8B25T/fastq/AAGACACTAGTCTCCT.barcode_1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AAGACACTAGTCTCCT.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/AAGACACTAGTCTCCT.barcode_2.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AAGACACTAGTCTCCT.barcode_2.fastq
rename to testdata/picard/illumina/25T8B8B25T/fastq/AAGACACTAGTCTCCT.barcode_2.fastq
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/ACAGGTATCACTTCAT.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/ACAGGTATCACTTCAT.1.fastq
new file mode 100644
index 0000000..1433898
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/ACAGGTATCACTTCAT.1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:14342:1520 1:Y:0:ACAGGTATCACTTCAT
+CTTTCTTTTCTCCTTTTTTTCTTTC
++
+11>>1@@@1313111311AA0BAAA
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/ACAGGTATCACTTCAT.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/ACAGGTATCACTTCAT.2.fastq
new file mode 100644
index 0000000..76e9d08
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/ACAGGTATCACTTCAT.2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:14342:1520 2:Y:0:ACAGGTATCACTTCAT
+TCGTGTTTTTTCTTTTTGCTTTCCC
++
+111>1>>>11111331A013A3111
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/ACAGGTATCACTTCAT.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/ACAGGTATCACTTCAT.barcode_1.fastq
new file mode 100644
index 0000000..92aca3b
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/ACAGGTATCACTTCAT.barcode_1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:14342:1520 :Y:0:ACAGGTATCACTTCAT
+ACAGGTAT
++
+1>111B1B
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/ACAGGTATCACTTCAT.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/ACAGGTATCACTTCAT.barcode_2.fastq
new file mode 100644
index 0000000..99130be
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/ACAGGTATCACTTCAT.barcode_2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:14342:1520 :Y:0:ACAGGTATCACTTCAT
+CACTTCAT
++
+>1>>>B3@
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/ACAGTTGAATCTTCTC.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/ACAGTTGAATCTTCTC.1.fastq
new file mode 100644
index 0000000..3546dc8
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/ACAGTTGAATCTTCTC.1.fastq
@@ -0,0 +1,8 @@
+ at machine1:HiMom:abcdeACXX:1:1101:14133:1507 1:Y:0:ACAGTTGAATCTTCTC
+TCCTCTTTGCTTTTTGCTATCACTC
++
+111>1B1 at 313131111A33A33D1
+ at machine1:HiMom:abcdeACXX:1:1101:14753:1450 1:Y:0:ACAGTTGAATCTTCTC
+CTTTTTCCTCTTTTTTTCTTTTGTT
++
+1>>>>@1131B1311100BA31100
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/ACAGTTGAATCTTCTC.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/ACAGTTGAATCTTCTC.2.fastq
new file mode 100644
index 0000000..b7df2b5
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/ACAGTTGAATCTTCTC.2.fastq
@@ -0,0 +1,8 @@
+ at machine1:HiMom:abcdeACXX:1:1101:14133:1507 2:Y:0:ACAGTTGAATCTTCTC
+TCCTTTATTATCTTTGTTCCTTTTT
++
+111>>313 at 333AAA3A1333331A
+ at machine1:HiMom:abcdeACXX:1:1101:14753:1450 2:Y:0:ACAGTTGAATCTTCTC
+TCCCTTTTTTTTCTTTTCTCTTTTT
++
+1111>@11@>1001331313331AA
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/ACAGTTGAATCTTCTC.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/ACAGTTGAATCTTCTC.barcode_1.fastq
new file mode 100644
index 0000000..7750c5d
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/ACAGTTGAATCTTCTC.barcode_1.fastq
@@ -0,0 +1,8 @@
+ at machine1:HiMom:abcdeACXX:1:1101:14133:1507 :Y:0:ACAGTTGAATCTTCTC
+ACAGTTGA
++
+1>11>D13
+ at machine1:HiMom:abcdeACXX:1:1101:14753:1450 :Y:0:ACAGTTGAATCTTCTC
+ACAGTTGA
++
+1>11>B13
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/ACAGTTGAATCTTCTC.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/ACAGTTGAATCTTCTC.barcode_2.fastq
new file mode 100644
index 0000000..288e831
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/ACAGTTGAATCTTCTC.barcode_2.fastq
@@ -0,0 +1,8 @@
+ at machine1:HiMom:abcdeACXX:1:1101:14133:1507 :Y:0:ACAGTTGAATCTTCTC
+ATCTTCTC
++
+3>AAADDD
+ at machine1:HiMom:abcdeACXX:1:1101:14753:1450 :Y:0:ACAGTTGAATCTTCTC
+ATCTTCTC
++
+3>>AAD@@
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/ACCAACTGCATCACTT.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/ACCAACTGCATCACTT.1.fastq
new file mode 100644
index 0000000..05b2493
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/ACCAACTGCATCACTT.1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:15221:1507 1:Y:0:ACCAACTGCATCACTT
+CTTTTTTCTTTCTTTGTTTTTGTAT
++
+1>1>1111@@33A3B3311000033
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/ACCAACTGCATCACTT.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/ACCAACTGCATCACTT.2.fastq
new file mode 100644
index 0000000..eaaee6b
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/ACCAACTGCATCACTT.2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:15221:1507 2:Y:0:ACCAACTGCATCACTT
+CTCTTTTTTTTCTCTCTTCTTTCCT
++
+111>13111>0013A11313B321A
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/ACCAACTGCATCACTT.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/ACCAACTGCATCACTT.barcode_1.fastq
new file mode 100644
index 0000000..fa7b8a0
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/ACCAACTGCATCACTT.barcode_1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:15221:1507 :Y:0:ACCAACTGCATCACTT
+ACCAACTG
++
+3>>33>C4
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/ACCAACTGCATCACTT.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/ACCAACTGCATCACTT.barcode_2.fastq
new file mode 100644
index 0000000..77ec08f
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/ACCAACTGCATCACTT.barcode_2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:15221:1507 :Y:0:ACCAACTGCATCACTT
+CATCACTT
++
+>1>A1BB@
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACCTACTGCTTCCCTT.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/ACCTACTGCTTCCCTT.1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACCTACTGCTTCCCTT.1.fastq
rename to testdata/picard/illumina/25T8B8B25T/fastq/ACCTACTGCTTCCCTT.1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACCTACTGCTTCCCTT.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/ACCTACTGCTTCCCTT.2.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACCTACTGCTTCCCTT.2.fastq
rename to testdata/picard/illumina/25T8B8B25T/fastq/ACCTACTGCTTCCCTT.2.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACCTACTGCTTCCCTT.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/ACCTACTGCTTCCCTT.barcode_1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACCTACTGCTTCCCTT.barcode_1.fastq
rename to testdata/picard/illumina/25T8B8B25T/fastq/ACCTACTGCTTCCCTT.barcode_1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACCTACTGCTTCCCTT.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/ACCTACTGCTTCCCTT.barcode_2.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ACCTACTGCTTCCCTT.barcode_2.fastq
rename to testdata/picard/illumina/25T8B8B25T/fastq/ACCTACTGCTTCCCTT.barcode_2.fastq
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/ACTAAGACGTCCTCAT.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/ACTAAGACGTCCTCAT.1.fastq
new file mode 100644
index 0000000..2f2f57b
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/ACTAAGACGTCCTCAT.1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:17324:1480 1:Y:0:ACTAAGACGTCCTCAT
+TCTCTGTGTTTTTTTTTTTTTTACT
++
+>111>333 at 11111A000///A/1A
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/ACTAAGACGTCCTCAT.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/ACTAAGACGTCCTCAT.2.fastq
new file mode 100644
index 0000000..083e424
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/ACTAAGACGTCCTCAT.2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:17324:1480 2:Y:0:ACTAAGACGTCCTCAT
+CTTTTTTTTCTTCTCTTTCCTTCCT
++
+1>>1111>00 at 333133331AA101
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/ACTAAGACGTCCTCAT.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/ACTAAGACGTCCTCAT.barcode_1.fastq
new file mode 100644
index 0000000..be97eb5
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/ACTAAGACGTCCTCAT.barcode_1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:17324:1480 :Y:0:ACTAAGACGTCCTCAT
+ACTAAGAC
++
+1>>1111B
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/ACTAAGACGTCCTCAT.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/ACTAAGACGTCCTCAT.barcode_2.fastq
new file mode 100644
index 0000000..293c78d
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/ACTAAGACGTCCTCAT.barcode_2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:17324:1480 :Y:0:ACTAAGACGTCCTCAT
+GTCCTCAT
++
+1>>>>D1B
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGGTCGCATTCCTTTC.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/AGGTCGCATTCCTTTC.1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGGTCGCATTCCTTTC.1.fastq
rename to testdata/picard/illumina/25T8B8B25T/fastq/AGGTCGCATTCCTTTC.1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGGTCGCATTCCTTTC.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/AGGTCGCATTCCTTTC.2.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGGTCGCATTCCTTTC.2.fastq
rename to testdata/picard/illumina/25T8B8B25T/fastq/AGGTCGCATTCCTTTC.2.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGGTCGCATTCCTTTC.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/AGGTCGCATTCCTTTC.barcode_1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGGTCGCATTCCTTTC.barcode_1.fastq
rename to testdata/picard/illumina/25T8B8B25T/fastq/AGGTCGCATTCCTTTC.barcode_1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGGTCGCATTCCTTTC.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/AGGTCGCATTCCTTTC.barcode_2.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/fastq/AGGTCGCATTCCTTTC.barcode_2.fastq
rename to testdata/picard/illumina/25T8B8B25T/fastq/AGGTCGCATTCCTTTC.barcode_2.fastq
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/AGGTGCGAGACATTAA.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/AGGTGCGAGACATTAA.1.fastq
new file mode 100644
index 0000000..92ef0f8
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/AGGTGCGAGACATTAA.1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:15634:1526 1:Y:0:AGGTGCGAGACATTAA
+TTTTTTTTTTCTTTGGTTATTTTAT
++
+1>>>>>AA00>11B100A1BBAB2A
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/AGGTGCGAGACATTAA.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/AGGTGCGAGACATTAA.2.fastq
new file mode 100644
index 0000000..8a55a69
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/AGGTGCGAGACATTAA.2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:15634:1526 2:Y:0:AGGTGCGAGACATTAA
+CCTCTCTTCTTTTTTTCTCCTTTTT
++
+111>1>131 at 131110A1B1ABBA1
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/AGGTGCGAGACATTAA.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/AGGTGCGAGACATTAA.barcode_1.fastq
new file mode 100644
index 0000000..400fa48
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/AGGTGCGAGACATTAA.barcode_1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:15634:1526 :Y:0:AGGTGCGAGACATTAA
+AGGTGCGA
++
+111>1B11
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/AGGTGCGAGACATTAA.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/AGGTGCGAGACATTAA.barcode_2.fastq
new file mode 100644
index 0000000..d2a5552
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/AGGTGCGAGACATTAA.barcode_2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:15634:1526 :Y:0:AGGTGCGAGACATTAA
+GACATTAA
++
+11>1>B13
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/AGGTTATCTTAGCCAG.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/AGGTTATCTTAGCCAG.1.fastq
new file mode 100644
index 0000000..fcc24db
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/AGGTTATCTTAGCCAG.1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:17862:1503 1:Y:0:AGGTTATCTTAGCCAG
+TTTTTTTCCTACTTTGCTTTAGTTT
++
+>1>1>1>1133113A11A1A1133A
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/AGGTTATCTTAGCCAG.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/AGGTTATCTTAGCCAG.2.fastq
new file mode 100644
index 0000000..2e49a53
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/AGGTTATCTTAGCCAG.2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:17862:1503 2:Y:0:AGGTTATCTTAGCCAG
+TCTTCCCCTTCTTTATTTATTTGCT
++
+1>1111111>1 at AA3A3B33AA333
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/AGGTTATCTTAGCCAG.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/AGGTTATCTTAGCCAG.barcode_1.fastq
new file mode 100644
index 0000000..46f6a6f
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/AGGTTATCTTAGCCAG.barcode_1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:17862:1503 :Y:0:AGGTTATCTTAGCCAG
+AGGTTATC
++
+111>>1DD
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/AGGTTATCTTAGCCAG.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/AGGTTATCTTAGCCAG.barcode_2.fastq
new file mode 100644
index 0000000..85a6503
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/AGGTTATCTTAGCCAG.barcode_2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:17862:1503 :Y:0:AGGTTATCTTAGCCAG
+TTAGCCAG
++
+>>11>B11
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/AGTTGCTTTGACTTGG.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/AGTTGCTTTGACTTGG.1.fastq
new file mode 100644
index 0000000..96115d3
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/AGTTGCTTTGACTTGG.1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:14369:1492 1:Y:0:AGTTGCTTTGACTTGG
+TTTCTTCTTTCTTTTTGTAAAGTTT
++
+1>>11333 at B3BB31111333333B
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/AGTTGCTTTGACTTGG.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/AGTTGCTTTGACTTGG.2.fastq
new file mode 100644
index 0000000..d9b5012
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/AGTTGCTTTGACTTGG.2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:14369:1492 2:Y:0:AGTTGCTTTGACTTGG
+TCCTTCTTTTTCTCTTTTTTTTCTT
++
+1>11>@1131111AAAAA1100011
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/AGTTGCTTTGACTTGG.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/AGTTGCTTTGACTTGG.barcode_1.fastq
new file mode 100644
index 0000000..286158c
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/AGTTGCTTTGACTTGG.barcode_1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:14369:1492 :Y:0:AGTTGCTTTGACTTGG
+AGTTGCTT
++
+11>>1 at DF
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/AGTTGCTTTGACTTGG.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/AGTTGCTTTGACTTGG.barcode_2.fastq
new file mode 100644
index 0000000..f26dd32
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/AGTTGCTTTGACTTGG.barcode_2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:14369:1492 :Y:0:AGTTGCTTTGACTTGG
+TGACTTGG
++
+>33>>B at 4
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/ATAGCGTCTTGGTCTG.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/ATAGCGTCTTGGTCTG.1.fastq
new file mode 100644
index 0000000..822517b
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/ATAGCGTCTTGGTCTG.1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:17049:1423 1:Y:0:ATAGCGTCTTGGTCTG
+CTCTTTTCTTTCTTTCTCTTCCTCT
++
+1>111 at 13@3333A33A3331111A
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/ATAGCGTCTTGGTCTG.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/ATAGCGTCTTGGTCTG.2.fastq
new file mode 100644
index 0000000..5b0ad89
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/ATAGCGTCTTGGTCTG.2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:17049:1423 2:Y:0:ATAGCGTCTTGGTCTG
+TTTTCTCCTCCTCTTCCTCTTTTTT
++
+1111113111111111111113110
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/ATAGCGTCTTGGTCTG.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/ATAGCGTCTTGGTCTG.barcode_1.fastq
new file mode 100644
index 0000000..5514576
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/ATAGCGTCTTGGTCTG.barcode_1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:17049:1423 :Y:0:ATAGCGTCTTGGTCTG
+ATAGCGTC
++
+1>1111>>
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/ATAGCGTCTTGGTCTG.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/ATAGCGTCTTGGTCTG.barcode_2.fastq
new file mode 100644
index 0000000..25bc368
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/ATAGCGTCTTGGTCTG.barcode_2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:17049:1423 :Y:0:ATAGCGTCTTGGTCTG
+TTGGTCTG
++
+>>11>BB1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ATTATCAACACCATAC.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/ATTATCAACACCATAC.1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ATTATCAACACCATAC.1.fastq
rename to testdata/picard/illumina/25T8B8B25T/fastq/ATTATCAACACCATAC.1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ATTATCAACACCATAC.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/ATTATCAACACCATAC.2.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ATTATCAACACCATAC.2.fastq
rename to testdata/picard/illumina/25T8B8B25T/fastq/ATTATCAACACCATAC.2.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ATTATCAACACCATAC.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/ATTATCAACACCATAC.barcode_1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ATTATCAACACCATAC.barcode_1.fastq
rename to testdata/picard/illumina/25T8B8B25T/fastq/ATTATCAACACCATAC.barcode_1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ATTATCAACACCATAC.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/ATTATCAACACCATAC.barcode_2.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ATTATCAACACCATAC.barcode_2.fastq
rename to testdata/picard/illumina/25T8B8B25T/fastq/ATTATCAACACCATAC.barcode_2.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ATTGTCTGGATTCACA.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/ATTGTCTGGATTCACA.1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ATTGTCTGGATTCACA.1.fastq
rename to testdata/picard/illumina/25T8B8B25T/fastq/ATTGTCTGGATTCACA.1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ATTGTCTGGATTCACA.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/ATTGTCTGGATTCACA.2.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ATTGTCTGGATTCACA.2.fastq
rename to testdata/picard/illumina/25T8B8B25T/fastq/ATTGTCTGGATTCACA.2.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ATTGTCTGGATTCACA.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/ATTGTCTGGATTCACA.barcode_1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ATTGTCTGGATTCACA.barcode_1.fastq
rename to testdata/picard/illumina/25T8B8B25T/fastq/ATTGTCTGGATTCACA.barcode_1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ATTGTCTGGATTCACA.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/ATTGTCTGGATTCACA.barcode_2.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/fastq/ATTGTCTGGATTCACA.barcode_2.fastq
rename to testdata/picard/illumina/25T8B8B25T/fastq/ATTGTCTGGATTCACA.barcode_2.fastq
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/CAATAGTCCGACTCTC.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CAATAGTCCGACTCTC.1.fastq
new file mode 100644
index 0000000..ed32be3
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/CAATAGTCCGACTCTC.1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:15479:1337 1:Y:0:CAATAGTCCGACTCTC
+CTCTCTTTTTTTTCTTTTTTATTCT
++
+1111113311110013311001222
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/CAATAGTCCGACTCTC.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CAATAGTCCGACTCTC.2.fastq
new file mode 100644
index 0000000..6c2aa9d
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/CAATAGTCCGACTCTC.2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:15479:1337 2:Y:0:CAATAGTCCGACTCTC
+TTTTCCTTCCTTTCTCTTCCCTCCT
++
+111111 at 311133133331111111
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/CAATAGTCCGACTCTC.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CAATAGTCCGACTCTC.barcode_1.fastq
new file mode 100644
index 0000000..4316c87
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/CAATAGTCCGACTCTC.barcode_1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:15479:1337 :Y:0:CAATAGTCCGACTCTC
+CAATAGTC
++
+>11>11B@
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/CAATAGTCCGACTCTC.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CAATAGTCCGACTCTC.barcode_2.fastq
new file mode 100644
index 0000000..1b76f9a
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/CAATAGTCCGACTCTC.barcode_2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:15479:1337 :Y:0:CAATAGTCCGACTCTC
+CGACTCTC
++
+>111>>@@
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/CAGCAAGGGCGATATT.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CAGCAAGGGCGATATT.1.fastq
new file mode 100644
index 0000000..11355f0
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/CAGCAAGGGCGATATT.1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:17475:1506 1:Y:0:CAGCAAGGGCGATATT
+TCTTTTTTTTTCTCTCGTGTGTTGG
++
+>111>B11>0>013310A0A0BB##
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/CAGCAAGGGCGATATT.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CAGCAAGGGCGATATT.2.fastq
new file mode 100644
index 0000000..1c4d7ef
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/CAGCAAGGGCGATATT.2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:17475:1506 2:Y:0:CAGCAAGGGCGATATT
+CCTTTTTCTTTTCTCTCCTCTTTCC
++
+11111111 at 33131331111A1331
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/CAGCAAGGGCGATATT.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CAGCAAGGGCGATATT.barcode_1.fastq
new file mode 100644
index 0000000..a02cb15
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/CAGCAAGGGCGATATT.barcode_1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:17475:1506 :Y:0:CAGCAAGGGCGATATT
+CAGCAAGG
++
+>11>1111
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/CAGCAAGGGCGATATT.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CAGCAAGGGCGATATT.barcode_2.fastq
new file mode 100644
index 0000000..ccc7016
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/CAGCAAGGGCGATATT.barcode_2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:17475:1506 :Y:0:CAGCAAGGGCGATATT
+GCGATATT
++
+1>11>1>B
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/CAGCGGTAAGTACTGC.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CAGCGGTAAGTACTGC.1.fastq
new file mode 100644
index 0000000..0e0de2d
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/CAGCGGTAAGTACTGC.1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:13678:1483 1:Y:0:CAGCGGTAAGTACTGC
+TCTTTTCTTTTTTTTTTTCTTTTTT
++
+>1>>>131331111000A01AB###
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/CAGCGGTAAGTACTGC.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CAGCGGTAAGTACTGC.2.fastq
new file mode 100644
index 0000000..780f45b
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/CAGCGGTAAGTACTGC.2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:13678:1483 2:Y:0:CAGCGGTAAGTACTGC
+TTTTTTTTCTTTCCTCTCTTTTTTT
++
+11111111013331A##########
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/CAGCGGTAAGTACTGC.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CAGCGGTAAGTACTGC.barcode_1.fastq
new file mode 100644
index 0000000..490cbaf
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/CAGCGGTAAGTACTGC.barcode_1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:13678:1483 :Y:0:CAGCGGTAAGTACTGC
+CAGCGGTA
++
+>11111>1
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/CAGCGGTAAGTACTGC.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CAGCGGTAAGTACTGC.barcode_2.fastq
new file mode 100644
index 0000000..89a4fff
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/CAGCGGTAAGTACTGC.barcode_2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:13678:1483 :Y:0:CAGCGGTAAGTACTGC
+TGTACTGC
++
+11>11 at 31
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAGCGGTATGTACTGC.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CAGCGGTATGTACTGC.1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAGCGGTATGTACTGC.1.fastq
rename to testdata/picard/illumina/25T8B8B25T/fastq/CAGCGGTATGTACTGC.1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAGCGGTATGTACTGC.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CAGCGGTATGTACTGC.2.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAGCGGTATGTACTGC.2.fastq
rename to testdata/picard/illumina/25T8B8B25T/fastq/CAGCGGTATGTACTGC.2.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAGCGGTATGTACTGC.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CAGCGGTATGTACTGC.barcode_1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAGCGGTATGTACTGC.barcode_1.fastq
rename to testdata/picard/illumina/25T8B8B25T/fastq/CAGCGGTATGTACTGC.barcode_1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAGCGGTATGTACTGC.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CAGCGGTATGTACTGC.barcode_2.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CAGCGGTATGTACTGC.barcode_2.fastq
rename to testdata/picard/illumina/25T8B8B25T/fastq/CAGCGGTATGTACTGC.barcode_2.fastq
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/CATGCTTATAGCATTG.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CATGCTTATAGCATTG.1.fastq
new file mode 100644
index 0000000..3dabdd5
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/CATGCTTATAGCATTG.1.fastq
@@ -0,0 +1,8 @@
+ at machine1:HiMom:abcdeACXX:1:1101:13947:1464 1:Y:0:CATGCTTATAGCATTG
+CTCCTTTTCTTCTTCTTCTCTTTTT
++
+1>11113 at 313331331331A3311
+ at machine1:HiMom:abcdeACXX:1:1101:17987:1524 1:Y:0:CATGCTTATAGCATTG
+CCTCTTTTTCTGTTTTTTTTGCTGG
++
+111>11 at 111133331110001B11
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/CATGCTTATAGCATTG.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CATGCTTATAGCATTG.2.fastq
new file mode 100644
index 0000000..4d91201
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/CATGCTTATAGCATTG.2.fastq
@@ -0,0 +1,8 @@
+ at machine1:HiMom:abcdeACXX:1:1101:13947:1464 2:Y:0:CATGCTTATAGCATTG
+TTTTTTTTTCCCTCCCCTTTCCCTT
++
+1111111100111000000111111
+ at machine1:HiMom:abcdeACXX:1:1101:17987:1524 2:Y:0:CATGCTTATAGCATTG
+TCTTCTTTTCTTTCTTCTTTATTTG
++
+111>13131313A3A33A1A33A33
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/CATGCTTATAGCATTG.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CATGCTTATAGCATTG.barcode_1.fastq
new file mode 100644
index 0000000..57e7013
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/CATGCTTATAGCATTG.barcode_1.fastq
@@ -0,0 +1,8 @@
+ at machine1:HiMom:abcdeACXX:1:1101:13947:1464 :Y:0:CATGCTTATAGCATTG
+CATGCTTT
++
+11>1>B at 3
+ at machine1:HiMom:abcdeACXX:1:1101:17987:1524 :Y:0:CATGCTTATAGCATTG
+CATGCTTA
++
+A3>3>DF5
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/CATGCTTATAGCATTG.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CATGCTTATAGCATTG.barcode_2.fastq
new file mode 100644
index 0000000..5d29115
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/CATGCTTATAGCATTG.barcode_2.fastq
@@ -0,0 +1,8 @@
+ at machine1:HiMom:abcdeACXX:1:1101:13947:1464 :Y:0:CATGCTTATAGCATTG
+TAGCATTG
++
+>11>1 at 31
+ at machine1:HiMom:abcdeACXX:1:1101:17987:1524 :Y:0:CATGCTTATAGCATTG
+TAGCATTT
++
+>11>13B3
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CATGCTTATAGCATTT.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CATGCTTATAGCATTT.1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CATGCTTATAGCATTT.1.fastq
rename to testdata/picard/illumina/25T8B8B25T/fastq/CATGCTTATAGCATTT.1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CATGCTTATAGCATTT.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CATGCTTATAGCATTT.2.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CATGCTTATAGCATTT.2.fastq
rename to testdata/picard/illumina/25T8B8B25T/fastq/CATGCTTATAGCATTT.2.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CATGCTTATAGCATTT.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CATGCTTATAGCATTT.barcode_1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CATGCTTATAGCATTT.barcode_1.fastq
rename to testdata/picard/illumina/25T8B8B25T/fastq/CATGCTTATAGCATTT.barcode_1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CATGCTTATAGCATTT.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CATGCTTATAGCATTT.barcode_2.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CATGCTTATAGCATTT.barcode_2.fastq
rename to testdata/picard/illumina/25T8B8B25T/fastq/CATGCTTATAGCATTT.barcode_2.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CATGCTTTTAGCATTG.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CATGCTTTTAGCATTG.1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CATGCTTTTAGCATTG.1.fastq
rename to testdata/picard/illumina/25T8B8B25T/fastq/CATGCTTTTAGCATTG.1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CATGCTTTTAGCATTG.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CATGCTTTTAGCATTG.2.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CATGCTTTTAGCATTG.2.fastq
rename to testdata/picard/illumina/25T8B8B25T/fastq/CATGCTTTTAGCATTG.2.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CATGCTTTTAGCATTG.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CATGCTTTTAGCATTG.barcode_1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CATGCTTTTAGCATTG.barcode_1.fastq
rename to testdata/picard/illumina/25T8B8B25T/fastq/CATGCTTTTAGCATTG.barcode_1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CATGCTTTTAGCATTG.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CATGCTTTTAGCATTG.barcode_2.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CATGCTTTTAGCATTG.barcode_2.fastq
rename to testdata/picard/illumina/25T8B8B25T/fastq/CATGCTTTTAGCATTG.barcode_2.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CATGTTCGCGCCTTTT.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CATGTTCGCGCCTTTT.1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CATGTTCGCGCCTTTT.1.fastq
rename to testdata/picard/illumina/25T8B8B25T/fastq/CATGTTCGCGCCTTTT.1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CATGTTCGCGCCTTTT.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CATGTTCGCGCCTTTT.2.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CATGTTCGCGCCTTTT.2.fastq
rename to testdata/picard/illumina/25T8B8B25T/fastq/CATGTTCGCGCCTTTT.2.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CATGTTCGCGCCTTTT.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CATGTTCGCGCCTTTT.barcode_1.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CATGTTCGCGCCTTTT.barcode_1.fastq
rename to testdata/picard/illumina/25T8B8B25T/fastq/CATGTTCGCGCCTTTT.barcode_1.fastq
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CATGTTCGCGCCTTTT.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CATGTTCGCGCCTTTT.barcode_2.fastq
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/fastq/CATGTTCGCGCCTTTT.barcode_2.fastq
rename to testdata/picard/illumina/25T8B8B25T/fastq/CATGTTCGCGCCTTTT.barcode_2.fastq
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/CCAGAGCTCAACTGAT.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CCAGAGCTCAACTGAT.1.fastq
new file mode 100644
index 0000000..5a772ba
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/CCAGAGCTCAACTGAT.1.fastq
@@ -0,0 +1,8 @@
+ at machine1:HiMom:abcdeACXX:1:1101:16357:1518 1:Y:0:CCAGAGCTCAACTGAT
+GTCTTCTGCTTCGCTCACGCTGGGT
++
+1>>>>3 at 113B311AA1111A0000
+ at machine1:HiMom:abcdeACXX:1:1101:17387:1497 1:Y:0:CCAGAGCTCAACTGAT
+CCCCTTTTTTGTTGTGCTTTAGCCT
++
+111>>111111111A01B3311111
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/CCAGAGCTCAACTGAT.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CCAGAGCTCAACTGAT.2.fastq
new file mode 100644
index 0000000..2fcdfcb
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/CCAGAGCTCAACTGAT.2.fastq
@@ -0,0 +1,8 @@
+ at machine1:HiMom:abcdeACXX:1:1101:16357:1518 2:Y:0:CCAGAGCTCAACTGAT
+TCCTTCTCTCTTTTTTTTTAATTCT
++
+>1111111B at BB311AA0001ABAB
+ at machine1:HiMom:abcdeACXX:1:1101:17387:1497 2:Y:0:CCAGAGCTCAACTGAT
+CTTTTTGTCTTTCTTCCCCCTGCTT
++
+111>11113@@@3333111AA0011
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/CCAGAGCTCAACTGAT.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CCAGAGCTCAACTGAT.barcode_1.fastq
new file mode 100644
index 0000000..52d307d
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/CCAGAGCTCAACTGAT.barcode_1.fastq
@@ -0,0 +1,8 @@
+ at machine1:HiMom:abcdeACXX:1:1101:16357:1518 :Y:0:CCAGAGCTCAACTGAT
+CCAGAGCT
++
+>A3334>D
+ at machine1:HiMom:abcdeACXX:1:1101:17387:1497 :Y:0:CCAGAGCTCAACTGAT
+CCAGAGCT
++
+>>1111BD
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/CCAGAGCTCAACTGAT.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CCAGAGCTCAACTGAT.barcode_2.fastq
new file mode 100644
index 0000000..f8ba99f
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/CCAGAGCTCAACTGAT.barcode_2.fastq
@@ -0,0 +1,8 @@
+ at machine1:HiMom:abcdeACXX:1:1101:16357:1518 :Y:0:CCAGAGCTCAACTGAT
+CAACTGAT
++
+>33AAB4B
+ at machine1:HiMom:abcdeACXX:1:1101:17387:1497 :Y:0:CCAGAGCTCAACTGAT
+CAACTGAT
++
+>11>>11@
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/CCCGATTTTCTCTCCC.1.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/CCCGATTTTCTCTCCC.1.fastq
diff --git a/src/tests/java/net/sf/picard/fastq/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/CCCGATTTTCTCTCCC.2.fastq
similarity index 100%
rename from src/tests/java/net/sf/picard/fastq/.gitignore
rename to testdata/picard/illumina/25T8B8B25T/fastq/CCCGATTTTCTCTCCC.2.fastq
diff --git a/src/tests/java/net/sf/samtools/apps/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/CCCGATTTTCTCTCCC.barcode_1.fastq
similarity index 100%
rename from src/tests/java/net/sf/samtools/apps/.gitignore
rename to testdata/picard/illumina/25T8B8B25T/fastq/CCCGATTTTCTCTCCC.barcode_1.fastq
diff --git a/src/tests/java/org/broad/tribble/source/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/CCCGATTTTCTCTCCC.barcode_2.fastq
similarity index 100%
rename from src/tests/java/org/broad/tribble/source/.gitignore
rename to testdata/picard/illumina/25T8B8B25T/fastq/CCCGATTTTCTCTCCC.barcode_2.fastq
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/CCTATGCCAATTGGCC.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CCTATGCCAATTGGCC.1.fastq
new file mode 100644
index 0000000..c6a432a
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/CCTATGCCAATTGGCC.1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:17516:1540 1:Y:0:CCTATGCCAATTGGCC
+CTTTCGTTTTTCTTTCCTATACATC
++
+1>>1111B>1>1B3331B3A11333
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/CCTATGCCAATTGGCC.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CCTATGCCAATTGGCC.2.fastq
new file mode 100644
index 0000000..9ae403b
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/CCTATGCCAATTGGCC.2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:17516:1540 2:Y:0:CCTATGCCAATTGGCC
+TTCTTTTTTTTCCCTTTCCCTTTTC
++
+1>111 at B@11>0111B11AA1A112
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/CCTATGCCAATTGGCC.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CCTATGCCAATTGGCC.barcode_1.fastq
new file mode 100644
index 0000000..d626d78
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/CCTATGCCAATTGGCC.barcode_1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:17516:1540 :Y:0:CCTATGCCAATTGGCC
+CCTATGCC
++
+AAA3>4 at B
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/CCTATGCCAATTGGCC.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CCTATGCCAATTGGCC.barcode_2.fastq
new file mode 100644
index 0000000..125925f
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/CCTATGCCAATTGGCC.barcode_2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:17516:1540 :Y:0:CCTATGCCAATTGGCC
+AATTGGCC
++
+11>>11>1
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/CCTATTCTTCGTTTTC.1.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/CCTATTCTTCGTTTTC.1.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/CCTATTCTTCGTTTTC.2.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/CCTATTCTTCGTTTTC.2.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/CCTATTCTTCGTTTTC.barcode_1.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/CCTATTCTTCGTTTTC.barcode_1.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/CCTATTCTTCGTTTTC.barcode_2.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/CCTATTCTTCGTTTTC.barcode_2.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/CCTCTTCTCTCGCTTT.1.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/CCTCTTCTCTCGCTTT.1.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/CCTCTTCTCTCGCTTT.2.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/CCTCTTCTCTCGCTTT.2.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/CCTCTTCTCTCGCTTT.barcode_1.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/CCTCTTCTCTCGCTTT.barcode_1.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/CCTCTTCTCTCGCTTT.barcode_2.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/CCTCTTCTCTCGCTTT.barcode_2.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/CCTCTTTCTTCTGCTC.1.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/CCTCTTTCTTCTGCTC.1.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/CCTCTTTCTTCTGCTC.2.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/CCTCTTTCTTCTGCTC.2.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/CCTCTTTCTTCTGCTC.barcode_1.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/CCTCTTTCTTCTGCTC.barcode_1.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/CCTCTTTCTTCTGCTC.barcode_2.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/CCTCTTTCTTCTGCTC.barcode_2.fastq
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/CCTTCGCAGAATCGAC.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CCTTCGCAGAATCGAC.1.fastq
new file mode 100644
index 0000000..07e35ff
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/CCTTCGCAGAATCGAC.1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:15248:1531 1:Y:0:CCTTCGCAGAATCGAC
+CCCTACCTGTCTGCTATCCATCCCC
++
+111>11111B1311313A13B111A
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/CCTTCGCAGAATCGAC.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CCTTCGCAGAATCGAC.2.fastq
new file mode 100644
index 0000000..ef2a6e6
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/CCTTCGCAGAATCGAC.2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:15248:1531 2:Y:0:CCTTCGCAGAATCGAC
+TTCTCCTTCTATTTCTCTTGTCTTC
++
+11111@@B@@3333333331A1333
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/CCTTCGCAGAATCGAC.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CCTTCGCAGAATCGAC.barcode_1.fastq
new file mode 100644
index 0000000..555de11
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/CCTTCGCAGAATCGAC.barcode_1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:15248:1531 :Y:0:CCTTCGCAGAATCGAC
+CCTTCGCA
++
+AAAAA?A3
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/CCTTCGCAGAATCGAC.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CCTTCGCAGAATCGAC.barcode_2.fastq
new file mode 100644
index 0000000..67c59b4
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/CCTTCGCAGAATCGAC.barcode_2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:15248:1531 :Y:0:CCTTCGCAGAATCGAC
+GAATCGAC
++
+111>>11>
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/CCTTCTTTTATCATTT.1.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/CCTTCTTTTATCATTT.1.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/CCTTCTTTTATCATTT.2.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/CCTTCTTTTATCATTT.2.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/CCTTCTTTTATCATTT.barcode_1.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/CCTTCTTTTATCATTT.barcode_1.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/CCTTCTTTTATCATTT.barcode_2.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/CCTTCTTTTATCATTT.barcode_2.fastq
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/CGCTATGTTTCACCTT.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CGCTATGTTTCACCTT.1.fastq
new file mode 100644
index 0000000..362c07e
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/CGCTATGTTTCACCTT.1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:17615:1538 1:Y:0:CGCTATGTTTCACCTT
+CTTTTTTTTTTTTCCTTTTTTTCTT
++
+>>>>11110000A011AA1A//0A1
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/CGCTATGTTTCACCTT.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CGCTATGTTTCACCTT.2.fastq
new file mode 100644
index 0000000..5eb572b
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/CGCTATGTTTCACCTT.2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:17615:1538 2:Y:0:CGCTATGTTTCACCTT
+TTCTTTCCTTTTCTTTTTTCTGTTT
++
+11>1133133 at 131331111A3333
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/CGCTATGTTTCACCTT.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CGCTATGTTTCACCTT.barcode_1.fastq
new file mode 100644
index 0000000..80808e6
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/CGCTATGTTTCACCTT.barcode_1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:17615:1538 :Y:0:CGCTATGTTTCACCTT
+CGCTATGT
++
+>11>1>1B
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/CGCTATGTTTCACCTT.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CGCTATGTTTCACCTT.barcode_2.fastq
new file mode 100644
index 0000000..a4a7d14
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/CGCTATGTTTCACCTT.barcode_2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:17615:1538 :Y:0:CGCTATGTTTCACCTT
+TTCTCCTT
++
+1>>11B at 1
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/CGCTATGTTTCTCCTT.1.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/CGCTATGTTTCTCCTT.1.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/CGCTATGTTTCTCCTT.2.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/CGCTATGTTTCTCCTT.2.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/CGCTATGTTTCTCCTT.barcode_1.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/CGCTATGTTTCTCCTT.barcode_1.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/CGCTATGTTTCTCCTT.barcode_2.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/CGCTATGTTTCTCCTT.barcode_2.fastq
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/CTACCAGGTTCTTGGC.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CTACCAGGTTCTTGGC.1.fastq
new file mode 100644
index 0000000..83df04f
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/CTACCAGGTTCTTGGC.1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:14790:1540 1:Y:0:CTACCAGGTTCTTGGC
+TTCTCTCTTTTCTCTTTCTTGTTGT
++
+A>1>13113313A3AAAAAB11B1B
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/CTACCAGGTTCTTGGC.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CTACCAGGTTCTTGGC.2.fastq
new file mode 100644
index 0000000..8fb5e29
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/CTACCAGGTTCTTGGC.2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:14790:1540 2:Y:0:CTACCAGGTTCTTGGC
+CTCTGTATTTTCCTTTTTCTTCTTT
++
+11111 at 33@@33133A1BB1A3A1B
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/CTACCAGGTTCTTGGC.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CTACCAGGTTCTTGGC.barcode_1.fastq
new file mode 100644
index 0000000..14fddf8
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/CTACCAGGTTCTTGGC.barcode_1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:14790:1540 :Y:0:CTACCAGGTTCTTGGC
+CTACCAGG
++
+A>3AAB43
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/CTACCAGGTTCTTGGC.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CTACCAGGTTCTTGGC.barcode_2.fastq
new file mode 100644
index 0000000..e90ecfa
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/CTACCAGGTTCTTGGC.barcode_2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:14790:1540 :Y:0:CTACCAGGTTCTTGGC
+TTCTTGGC
++
+AAAAA5 at 4
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/CTCCCTCTTCCTTCTT.1.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/CTCCCTCTTCCTTCTT.1.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/CTCCCTCTTCCTTCTT.2.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/CTCCCTCTTCCTTCTT.2.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/CTCCCTCTTCCTTCTT.barcode_1.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/CTCCCTCTTCCTTCTT.barcode_1.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/CTCCCTCTTCCTTCTT.barcode_2.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/CTCCCTCTTCCTTCTT.barcode_2.fastq
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/CTGTAATCCTATTAGC.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CTGTAATCCTATTAGC.1.fastq
new file mode 100644
index 0000000..d641bdb
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/CTGTAATCCTATTAGC.1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:15029:1349 1:Y:0:CTGTAATCCTATTAGC
+CTTCTCCTTTTCTTTTTTTTTTTTT
++
+1>11111113 at 313A##########
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/CTGTAATCCTATTAGC.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CTGTAATCCTATTAGC.2.fastq
new file mode 100644
index 0000000..febed18
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/CTGTAATCCTATTAGC.2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:15029:1349 2:Y:0:CTGTAATCCTATTAGC
+TTTCTTTTTCTTTTTTCTTTCTTTT
++
+1111>3 at 111133111113333331
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/CTGTAATCCTATTAGC.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CTGTAATCCTATTAGC.barcode_1.fastq
new file mode 100644
index 0000000..0b8eba2
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/CTGTAATCCTATTAGC.barcode_1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:15029:1349 :Y:0:CTGTAATCCTATTAGC
+CTGTAATC
++
+>>1>13B@
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/CTGTAATCCTATTAGC.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/CTGTAATCCTATTAGC.barcode_2.fastq
new file mode 100644
index 0000000..c93740a
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/CTGTAATCCTATTAGC.barcode_2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:15029:1349 :Y:0:CTGTAATCCTATTAGC
+CTATTAGC
++
+111>>331
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/GACCAGGACCATCACA.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/GACCAGGACCATCACA.1.fastq
new file mode 100644
index 0000000..bb7eb11
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/GACCAGGACCATCACA.1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:16241:1505 1:Y:0:GACCAGGACCATCACA
+CTTCTTTTTTTTCTTCCCTTTGCTC
++
+11>1113 at 11100A331011A1111
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/GACCAGGACCATCACA.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/GACCAGGACCATCACA.2.fastq
new file mode 100644
index 0000000..c93d8d9
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/GACCAGGACCATCACA.2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:16241:1505 2:Y:0:GACCAGGACCATCACA
+CTGTGGTTTTTTTCTTGTCTTTTCC
++
+111>11111111001A111333AA1
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/GACCAGGACCATCACA.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/GACCAGGACCATCACA.barcode_1.fastq
new file mode 100644
index 0000000..95ff9f4
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/GACCAGGACCATCACA.barcode_1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:16241:1505 :Y:0:GACCAGGACCATCACA
+GACCAGGA
++
+11>>1111
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/GACCAGGACCATCACA.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/GACCAGGACCATCACA.barcode_2.fastq
new file mode 100644
index 0000000..0b266c6
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/GACCAGGACCATCACA.barcode_2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:16241:1505 :Y:0:GACCAGGACCATCACA
+CCATCACA
++
+1>1>>1B1
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/GCCGTCGAAGGTACCA.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/GCCGTCGAAGGTACCA.1.fastq
new file mode 100644
index 0000000..550d738
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/GCCGTCGAAGGTACCA.1.fastq
@@ -0,0 +1,8 @@
+ at machine1:HiMom:abcdeACXX:1:1101:13789:1486 1:Y:0:GCCGTCGAAGGTACCA
+CTTTTTTCTTCCTCTTTCTTTTTCT
++
+1111111113311AAB33333A10A
+ at machine1:HiMom:abcdeACXX:1:1101:14791:1400 1:Y:0:GCCGTCGAAGGTACCA
+TTTTTTTCTTTTTCTTTTTTTCTTT
++
+>>1>>111 at 3@@11A3B1BA001A1
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/GCCGTCGAAGGTACCA.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/GCCGTCGAAGGTACCA.2.fastq
new file mode 100644
index 0000000..cc6024a
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/GCCGTCGAAGGTACCA.2.fastq
@@ -0,0 +1,8 @@
+ at machine1:HiMom:abcdeACXX:1:1101:13789:1486 2:Y:0:GCCGTCGAAGGTACCA
+TTTTTCTCTCCTTCTCTTCTCCTTC
++
+1111111331111111331311111
+ at machine1:HiMom:abcdeACXX:1:1101:14791:1400 2:Y:0:GCCGTCGAAGGTACCA
+TCCTTTTTCTTTCCTTTTCTTTTTT
++
+111>131 at 1133313331313311A
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/GCCGTCGAAGGTACCA.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/GCCGTCGAAGGTACCA.barcode_1.fastq
new file mode 100644
index 0000000..cbe0f84
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/GCCGTCGAAGGTACCA.barcode_1.fastq
@@ -0,0 +1,8 @@
+ at machine1:HiMom:abcdeACXX:1:1101:13789:1486 :Y:0:GCCGTCGAAGGTACCA
+GCCGTCGA
++
+11>1>>11
+ at machine1:HiMom:abcdeACXX:1:1101:14791:1400 :Y:0:GCCGTCGAAGGTACCA
+GCCGTCGA
++
+1>>1>>11
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/GCCGTCGAAGGTACCA.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/GCCGTCGAAGGTACCA.barcode_2.fastq
new file mode 100644
index 0000000..41e5d45
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/GCCGTCGAAGGTACCA.barcode_2.fastq
@@ -0,0 +1,8 @@
+ at machine1:HiMom:abcdeACXX:1:1101:13789:1486 :Y:0:GCCGTCGAAGGTACCA
+TGGTACCC
++
+111>1B at 1
+ at machine1:HiMom:abcdeACXX:1:1101:14791:1400 :Y:0:GCCGTCGAAGGTACCA
+AGGTACCC
++
+111>1 at B1
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/GCCGTCGAAGGTACCC.1.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/GCCGTCGAAGGTACCC.1.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/GCCGTCGAAGGTACCC.2.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/GCCGTCGAAGGTACCC.2.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/GCCGTCGAAGGTACCC.barcode_1.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/GCCGTCGAAGGTACCC.barcode_1.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/GCCGTCGAAGGTACCC.barcode_2.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/GCCGTCGAAGGTACCC.barcode_2.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/GCCGTCGATGGTACCC.1.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/GCCGTCGATGGTACCC.1.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/GCCGTCGATGGTACCC.2.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/GCCGTCGATGGTACCC.2.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/GCCGTCGATGGTACCC.barcode_1.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/GCCGTCGATGGTACCC.barcode_1.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/GCCGTCGATGGTACCC.barcode_2.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/GCCGTCGATGGTACCC.barcode_2.fastq
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/GCCTAGCCCTTGAATC.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/GCCTAGCCCTTGAATC.1.fastq
new file mode 100644
index 0000000..7f3aa14
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/GCCTAGCCCTTGAATC.1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:14517:1469 1:Y:0:GCCTAGCCCTTGAATC
+TTTCTTTTTTTTCCCTTTCCTCTTT
++
+>111133111>001111111B1111
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/GCCTAGCCCTTGAATC.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/GCCTAGCCCTTGAATC.2.fastq
new file mode 100644
index 0000000..92202f9
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/GCCTAGCCCTTGAATC.2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:14517:1469 2:Y:0:GCCTAGCCCTTGAATC
+CCTCCTTTTTCTTCTTTTCCTTTTT
++
+11111113111133AA3A313331A
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/GCCTAGCCCTTGAATC.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/GCCTAGCCCTTGAATC.barcode_1.fastq
new file mode 100644
index 0000000..51a8036
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/GCCTAGCCCTTGAATC.barcode_1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:14517:1469 :Y:0:GCCTAGCCCTTGAATC
+GCCTAGCC
++
+11>>11 at B
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/GCCTAGCCCTTGAATC.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/GCCTAGCCCTTGAATC.barcode_2.fastq
new file mode 100644
index 0000000..1f60765
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/GCCTAGCCCTTGAATC.barcode_2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:14517:1469 :Y:0:GCCTAGCCCTTGAATC
+CTTGAATC
++
+11>111 at 3
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/GCTATCCACCTCCCCC.1.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/GCTATCCACCTCCCCC.1.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/GCTATCCACCTCCCCC.2.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/GCTATCCACCTCCCCC.2.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/GCTATCCACCTCCCCC.barcode_1.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/GCTATCCACCTCCCCC.barcode_1.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/GCTATCCACCTCCCCC.barcode_2.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/GCTATCCACCTCCCCC.barcode_2.fastq
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/GTATAACAAATTCAAC.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/GTATAACAAATTCAAC.1.fastq
new file mode 100644
index 0000000..e53dde6
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/GTATAACAAATTCAAC.1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:14857:1542 1:Y:0:GTATAACAAATTCAAC
+TTTTCTCTTTTTGTTTTTTTCTTCT
++
+1>>>1 at 33B3111ABB11AA01333
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/GTATAACAAATTCAAC.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/GTATAACAAATTCAAC.2.fastq
new file mode 100644
index 0000000..4f99c09
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/GTATAACAAATTCAAC.2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:14857:1542 2:Y:0:GTATAACAAATTCAAC
+TCTTCCTTTTTTTTTTTTCTTTCTT
++
+111111133@@110000/AB1122A
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/GTATAACAAATTCAAC.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/GTATAACAAATTCAAC.barcode_1.fastq
new file mode 100644
index 0000000..589ab7a
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/GTATAACAAATTCAAC.barcode_1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:14857:1542 :Y:0:GTATAACAAATTCAAC
+GTATAACA
++
+1>1>1311
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/GTATAACAAATTCAAC.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/GTATAACAAATTCAAC.barcode_2.fastq
new file mode 100644
index 0000000..16cbb30
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/GTATAACAAATTCAAC.barcode_2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:14857:1542 :Y:0:GTATAACAAATTCAAC
+TATTCAAC
++
+11>>>33@
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/GTATAACATATTCAAC.1.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/GTATAACATATTCAAC.1.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/GTATAACATATTCAAC.2.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/GTATAACATATTCAAC.2.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/GTATAACATATTCAAC.barcode_1.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/GTATAACATATTCAAC.barcode_1.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/GTATAACATATTCAAC.barcode_2.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/GTATAACATATTCAAC.barcode_2.fastq
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/GTCTGATGGAACTTCG.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/GTCTGATGGAACTTCG.1.fastq
new file mode 100644
index 0000000..ab4fa8d
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/GTCTGATGGAACTTCG.1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:16578:1461 1:Y:0:GTCTGATGGAACTTCG
+TTTTTTCTCTTTTTTTTGTTTCTGC
++
+>1>111113@@31A0A0000B2B21
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/GTCTGATGGAACTTCG.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/GTCTGATGGAACTTCG.2.fastq
new file mode 100644
index 0000000..f9aec28
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/GTCTGATGGAACTTCG.2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:16578:1461 2:Y:0:GTCTGATGGAACTTCG
+CTTTTTCTTTCTTTTTCTCTCTTCT
++
+111111>133333311113A11313
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/GTCTGATGGAACTTCG.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/GTCTGATGGAACTTCG.barcode_1.fastq
new file mode 100644
index 0000000..1470702
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/GTCTGATGGAACTTCG.barcode_1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:16578:1461 :Y:0:GTCTGATGGAACTTCG
+GTCTGATG
++
+11>>11B1
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/GTCTGATGGAACTTCG.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/GTCTGATGGAACTTCG.barcode_2.fastq
new file mode 100644
index 0000000..9f34935
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/GTCTGATGGAACTTCG.barcode_2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:16578:1461 :Y:0:GTCTGATGGAACTTCG
+GAACTTCG
++
+111>>3B1
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/GTCTGATGTCACTTCC.1.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/GTCTGATGTCACTTCC.1.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/GTCTGATGTCACTTCC.2.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/GTCTGATGTCACTTCC.2.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/GTCTGATGTCACTTCC.barcode_1.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/GTCTGATGTCACTTCC.barcode_1.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/GTCTGATGTCACTTCC.barcode_2.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/GTCTGATGTCACTTCC.barcode_2.fastq
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/NN.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/NN.1.fastq
new file mode 100644
index 0000000..db54d41
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/NN.1.fastq
@@ -0,0 +1,76 @@
+ at machine1:HiMom:abcdeACXX:1:1101:13743:1511 1:Y:0:
+TCCTTCTTTTCCCTCCCCTTTCCTT
++
+>11>111@@@3111A111ABA1133
+ at machine1:HiMom:abcdeACXX:1:1101:13844:1536 1:Y:0:
+TTTCTTTTTTCTTTTCCCTTTATTT
++
+1111>3311111331311B111333
+ at machine1:HiMom:abcdeACXX:1:1101:14281:1532 1:Y:0:
+CTTTTTTCCTTTTTTTCTTTTTTCT
++
+1>>11111133 at 1A00013311A01
+ at machine1:HiMom:abcdeACXX:1:1101:14340:1451 1:Y:0:
+TTTTTTCCTTCTCCCCTTTTTCCTT
++
+>11111113311111111111013A
+ at machine1:HiMom:abcdeACXX:1:1101:14809:1476 1:Y:0:
+TTTTTCCCTTTCTCTTTTCTTTTCT
++
+>1>>111111113333313AAA131
+ at machine1:HiMom:abcdeACXX:1:1101:14852:1366 1:Y:0:
+TTCTCTCCCTCTTTTTTTCTTCTTT
++
+111>1311111113A1AA0133313
+ at machine1:HiMom:abcdeACXX:1:1101:14927:1516 1:Y:0:
+CTCCTTTTCTCTTTTCCCCCTGTGC
++
+11111 at 3131333313111111111
+ at machine1:HiMom:abcdeACXX:1:1101:14943:1353 1:Y:0:
+TTTTTTTTTCTTTTTTTTTTTTTTT
++
+1>1>111100 at 33A###########
+ at machine1:HiMom:abcdeACXX:1:1101:15334:1365 1:Y:0:
+TTTTTTTCTTCTCTTTCTTTTCTTT
++
+111>111113331333333B13133
+ at machine1:HiMom:abcdeACXX:1:1101:15424:1475 1:Y:0:
+CTTTTTTCTTTTTCTTTTTTTTTCT
++
+1>>11 at 1113311113311000001
+ at machine1:HiMom:abcdeACXX:1:1101:15736:1478 1:Y:0:
+CCTCTCTTTTTTCCTTTCCCTGCCT
++
+1111111 at 3B1111A33111A1001
+ at machine1:HiMom:abcdeACXX:1:1101:15785:1528 1:Y:0:
+CTTTTTTTTTTCTCTCTTTTTTTTT
++
+11>111>100001221B########
+ at machine1:HiMom:abcdeACXX:1:1101:15865:1540 1:Y:0:
+GCTTTCCTTGTTTTCTGTCCCCTTC
++
+11111113311BB13A33A111B10
+ at machine1:HiMom:abcdeACXX:1:1101:15987:1510 1:Y:0:
+CTTTTTTTTTTTCCCTTTTTACCTT
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1101:15998:1432 1:Y:0:
+TTCTTCCTCTTCTTCTTCTTCCTTT
++
+111>131111113133133A31133
+ at machine1:HiMom:abcdeACXX:1:1101:16070:1386 1:Y:0:
+TTTTTTTTTTTTTTTTCCTTCCTTT
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1101:16085:1467 1:Y:0:
+TTTTTTCCTTTTCTTTTCCTCTTCT
++
+1>>11>113B31313A13131111A
+ at machine1:HiMom:abcdeACXX:1:1101:16098:1529 1:Y:0:
+TTTTTTTTTTCTCTCCCTTTCTCTT
++
+1>1>>11100012210001112222
+ at machine1:HiMom:abcdeACXX:1:1101:16530:1425 1:Y:0:
+TTTTTTTTTTTTTTCTTTTTTTTTT
++
+1111>>110000A############
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/NN.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/NN.2.fastq
new file mode 100644
index 0000000..f4d71f1
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/NN.2.fastq
@@ -0,0 +1,76 @@
+ at machine1:HiMom:abcdeACXX:1:1101:13743:1511 2:Y:0:
+CCCCCTTCCCTCTTTTTTCCTTCCC
++
+1111111111 at 11131100133100
+ at machine1:HiMom:abcdeACXX:1:1101:13844:1536 2:Y:0:
+TCTTCTTTTTTTTTTTTCTTTTCCT
++
+111113131111A############
+ at machine1:HiMom:abcdeACXX:1:1101:14281:1532 2:Y:0:
+TTTCTCTTTTTTTTTCTCCCTTCCT
++
+>111133331111000121001001
+ at machine1:HiMom:abcdeACXX:1:1101:14340:1451 2:Y:0:
+TCCCTTCCTCCCCTCCTTCTTTTTC
++
+1111111111111111111113110
+ at machine1:HiMom:abcdeACXX:1:1101:14809:1476 2:Y:0:
+TCTCTTTTTCTTTTTTCTCCTTTCT
++
+>111133111133111113111313
+ at machine1:HiMom:abcdeACXX:1:1101:14852:1366 2:Y:0:
+TCCTTTTTCTTTTCTTTTCTTTTCC
++
+1111131111331313313133131
+ at machine1:HiMom:abcdeACXX:1:1101:14927:1516 2:Y:0:
+TTCCTCCCCCTCCTCCCCCTCCCTC
++
+11111111>1111111100000A00
+ at machine1:HiMom:abcdeACXX:1:1101:14943:1353 2:Y:0:
+CTCCCTTTTTTTTTTCTTCCTCTCT
++
+1111111111110000112111101
+ at machine1:HiMom:abcdeACXX:1:1101:15334:1365 2:Y:0:
+TCTCTCTTTCTTCTCTTTTTTTTTT
++
+1111111333333313331110000
+ at machine1:HiMom:abcdeACXX:1:1101:15424:1475 2:Y:0:
+TTCCTTCTTTCCTTCTCTCTTTCTT
++
+1111131113313311131133333
+ at machine1:HiMom:abcdeACXX:1:1101:15736:1478 2:Y:0:
+CTCTTCCCTTTCCCCCTCTTCTTCT
++
+111>111111111111A11113A33
+ at machine1:HiMom:abcdeACXX:1:1101:15785:1528 2:Y:0:
+TCTTCTCTTTCTCTTTTTCTTTTCT
++
+1111131 at 3@3333331A1133131
+ at machine1:HiMom:abcdeACXX:1:1101:15865:1540 2:Y:0:
+CTTTTTTATTTTCCTTTTGCATCCT
++
+11111111333 at 31333B1133301
+ at machine1:HiMom:abcdeACXX:1:1101:15987:1510 2:Y:0:
+TTCCCCTTCCCTTCTCTTTTCTTCT
++
+111111>1111 at 1111333131333
+ at machine1:HiMom:abcdeACXX:1:1101:15998:1432 2:Y:0:
+CTTTTTTTCTTTTCTCCTCCTTTTT
++
+11111 at 111@3313A31A000131A
+ at machine1:HiMom:abcdeACXX:1:1101:16070:1386 2:Y:0:
+TTTTTTTTCTCTCTTTTTTTTTTTT
++
+11111111013311331A#######
+ at machine1:HiMom:abcdeACXX:1:1101:16085:1467 2:Y:0:
+TTTTTTTTTTTTCCTCTTTTTTTCC
++
+#########################
+ at machine1:HiMom:abcdeACXX:1:1101:16098:1529 2:Y:0:
+CCCTCTCCACTTTTCTTTCCTCCCT
++
+11111>1111111331333131110
+ at machine1:HiMom:abcdeACXX:1:1101:16530:1425 2:Y:0:
+TTCTTTCCCTTTTCTTTTCCTTCTC
++
+1111133111111313313133111
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/NN.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/NN.barcode_1.fastq
new file mode 100644
index 0000000..95cf678
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/NN.barcode_1.fastq
@@ -0,0 +1,76 @@
+ at machine1:HiMom:abcdeACXX:1:1101:13743:1511 :Y:0:
+ATTATCAA
++
+1>>1>B33
+ at machine1:HiMom:abcdeACXX:1:1101:13844:1536 :Y:0:
+TCCCCGTT
++
+>1111111
+ at machine1:HiMom:abcdeACXX:1:1101:14281:1532 :Y:0:
+CCTTCTTT
++
+111111B3
+ at machine1:HiMom:abcdeACXX:1:1101:14340:1451 :Y:0:
+TTCCTCCT
++
+11111111
+ at machine1:HiMom:abcdeACXX:1:1101:14809:1476 :Y:0:
+GCTATCCA
++
+1111>>13
+ at machine1:HiMom:abcdeACXX:1:1101:14852:1366 :Y:0:
+AGGTCGCA
++
+111>>1>1
+ at machine1:HiMom:abcdeACXX:1:1101:14927:1516 :Y:0:
+GTCTGATG
++
+1>>111 at 1
+ at machine1:HiMom:abcdeACXX:1:1101:14943:1353 :Y:0:
+CTCCCTCT
++
+11111>11
+ at machine1:HiMom:abcdeACXX:1:1101:15334:1365 :Y:0:
+TGTATCTC
++
+11111333
+ at machine1:HiMom:abcdeACXX:1:1101:15424:1475 :Y:0:
+CCTCTTCT
++
+11111 at 1B
+ at machine1:HiMom:abcdeACXX:1:1101:15736:1478 :Y:0:
+ATTGTCTG
++
+1>>1>BD1
+ at machine1:HiMom:abcdeACXX:1:1101:15785:1528 :Y:0:
+CCCGATTT
++
+11111111
+ at machine1:HiMom:abcdeACXX:1:1101:15865:1540 :Y:0:
+TTCCCCAG
++
+111>11>1
+ at machine1:HiMom:abcdeACXX:1:1101:15987:1510 :Y:0:
+CCTCTTTC
++
+1111>13B
+ at machine1:HiMom:abcdeACXX:1:1101:15998:1432 :Y:0:
+CATGTTCG
++
+>1>11 at 31
+ at machine1:HiMom:abcdeACXX:1:1101:16070:1386 :Y:0:
+TGTCGGTT
++
+>1>1111>
+ at machine1:HiMom:abcdeACXX:1:1101:16085:1467 :Y:0:
+ACCTACTG
++
+1>>111 at 1
+ at machine1:HiMom:abcdeACXX:1:1101:16098:1529 :Y:0:
+TTCTCATC
++
+11>>1331
+ at machine1:HiMom:abcdeACXX:1:1101:16530:1425 :Y:0:
+CCTATTCT
++
+>1111333
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/NN.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/NN.barcode_2.fastq
new file mode 100644
index 0000000..242af75
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/NN.barcode_2.fastq
@@ -0,0 +1,76 @@
+ at machine1:HiMom:abcdeACXX:1:1101:13743:1511 :Y:0:
+CACCATAC
++
+11>>111>
+ at machine1:HiMom:abcdeACXX:1:1101:13844:1536 :Y:0:
+CCAACTTC
++
+>111>B13
+ at machine1:HiMom:abcdeACXX:1:1101:14281:1532 :Y:0:
+TATCATTT
++
+111>13B3
+ at machine1:HiMom:abcdeACXX:1:1101:14340:1451 :Y:0:
+CACCATCC
++
+11>111B1
+ at machine1:HiMom:abcdeACXX:1:1101:14809:1476 :Y:0:
+CCTCCCCC
++
+11>11>11
+ at machine1:HiMom:abcdeACXX:1:1101:14852:1366 :Y:0:
+TTCCTTTC
++
+1>>>>B31
+ at machine1:HiMom:abcdeACXX:1:1101:14927:1516 :Y:0:
+TCACTTCC
++
+111>>1B1
+ at machine1:HiMom:abcdeACXX:1:1101:14943:1353 :Y:0:
+TCCTTCTT
++
+1111>111
+ at machine1:HiMom:abcdeACXX:1:1101:15334:1365 :Y:0:
+TTACTCTT
++
+11111131
+ at machine1:HiMom:abcdeACXX:1:1101:15424:1475 :Y:0:
+CTCGCTTT
++
+11111111
+ at machine1:HiMom:abcdeACXX:1:1101:15736:1478 :Y:0:
+GATTCACA
++
+11>>>313
+ at machine1:HiMom:abcdeACXX:1:1101:15785:1528 :Y:0:
+TCTCTCCC
++
+11>11111
+ at machine1:HiMom:abcdeACXX:1:1101:15865:1540 :Y:0:
+TGCTTTTA
++
+1>111 at 13
+ at machine1:HiMom:abcdeACXX:1:1101:15987:1510 :Y:0:
+TTCTGCTC
++
+11111131
+ at machine1:HiMom:abcdeACXX:1:1101:15998:1432 :Y:0:
+CGCCTTTT
++
+111111 at B
+ at machine1:HiMom:abcdeACXX:1:1101:16070:1386 :Y:0:
+TTTTGCTT
++
+11>>11 at 1
+ at machine1:HiMom:abcdeACXX:1:1101:16085:1467 :Y:0:
+CTTCCCTT
++
+111>1B@@
+ at machine1:HiMom:abcdeACXX:1:1101:16098:1529 :Y:0:
+TTCCTTCC
++
+11111311
+ at machine1:HiMom:abcdeACXX:1:1101:16530:1425 :Y:0:
+TCGTTTTC
++
+1111>1>@
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/TACTTAGCGTCTGCAC.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/TACTTAGCGTCTGCAC.1.fastq
new file mode 100644
index 0000000..ccf328e
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/TACTTAGCGTCTGCAC.1.fastq
@@ -0,0 +1,8 @@
+ at machine1:HiMom:abcdeACXX:1:1101:13898:1519 1:Y:0:TACTTAGCGTCTGCAC
+CCTTCTCTACTTTTTTTTCTATTTT
++
+111>111B31 at 33311A0A1333BA
+ at machine1:HiMom:abcdeACXX:1:1101:14983:1536 1:Y:0:TACTTAGCGTCTGCAC
+CCTTCTTCTTGTTCCCTCGCCAGGC
++
+11>>1113 at B11133AA111A0000
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/TACTTAGCGTCTGCAC.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/TACTTAGCGTCTGCAC.2.fastq
new file mode 100644
index 0000000..a7b0794
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/TACTTAGCGTCTGCAC.2.fastq
@@ -0,0 +1,8 @@
+ at machine1:HiMom:abcdeACXX:1:1101:13898:1519 2:Y:0:TACTTAGCGTCTGCAC
+TTTTTTCTTTTCTCTTCCTCTTTTC
++
+11>11111 at 3131A3A111A11313
+ at machine1:HiMom:abcdeACXX:1:1101:14983:1536 2:Y:0:TACTTAGCGTCTGCAC
+TCCTTATCCTTTTTACTGCCCTGTA
++
+1111>331@@331A11A311111B3
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/TACTTAGCGTCTGCAC.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/TACTTAGCGTCTGCAC.barcode_1.fastq
new file mode 100644
index 0000000..fcc123f
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/TACTTAGCGTCTGCAC.barcode_1.fastq
@@ -0,0 +1,8 @@
+ at machine1:HiMom:abcdeACXX:1:1101:13898:1519 :Y:0:TACTTAGCGTCTGCAC
+TACTTAGC
++
+A3>AA55B
+ at machine1:HiMom:abcdeACXX:1:1101:14983:1536 :Y:0:TACTTAGCGTCTGCAC
+TACTTAGC
++
+A3AAAB5@
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/TACTTAGCGTCTGCAC.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/TACTTAGCGTCTGCAC.barcode_2.fastq
new file mode 100644
index 0000000..dabd706
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/TACTTAGCGTCTGCAC.barcode_2.fastq
@@ -0,0 +1,8 @@
+ at machine1:HiMom:abcdeACXX:1:1101:13898:1519 :Y:0:TACTTAGCGTCTGCAC
+GTCTGCAC
++
+1>>>113B
+ at machine1:HiMom:abcdeACXX:1:1101:14983:1536 :Y:0:TACTTAGCGTCTGCAC
+GTCTGCAC
++
+1>>>1 at 3C
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/TCCCCGTTCCAACTTC.1.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/TCCCCGTTCCAACTTC.1.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/TCCCCGTTCCAACTTC.2.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/TCCCCGTTCCAACTTC.2.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/TCCCCGTTCCAACTTC.barcode_1.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/TCCCCGTTCCAACTTC.barcode_1.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/TCCCCGTTCCAACTTC.barcode_2.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/TCCCCGTTCCAACTTC.barcode_2.fastq
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/TCCTTGGTGCTGCACT.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/TCCTTGGTGCTGCACT.1.fastq
new file mode 100644
index 0000000..1df1bc8
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/TCCTTGGTGCTGCACT.1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:17106:1463 1:Y:0:TCCTTGGTGCTGCACT
+TTTCTTTTTTTTCTTTTCTCTTCCT
++
+11>113 at 1111>0A3A131333111
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/TCCTTGGTGCTGCACT.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/TCCTTGGTGCTGCACT.2.fastq
new file mode 100644
index 0000000..c900a46
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/TCCTTGGTGCTGCACT.2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:17106:1463 2:Y:0:TCCTTGGTGCTGCACT
+TTCATTTTCTTCTTTTTCTTCCTCT
++
+1111133331333131111331111
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/TCCTTGGTGCTGCACT.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/TCCTTGGTGCTGCACT.barcode_1.fastq
new file mode 100644
index 0000000..cfa95e2
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/TCCTTGGTGCTGCACT.barcode_1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:17106:1463 :Y:0:TCCTTGGTGCTGCACT
+TCCTTGGT
++
+1>>>A111
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/TCCTTGGTGCTGCACT.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/TCCTTGGTGCTGCACT.barcode_2.fastq
new file mode 100644
index 0000000..db635c4
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/TCCTTGGTGCTGCACT.barcode_2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:17106:1463 :Y:0:TCCTTGGTGCTGCACT
+GCTGCACT
++
+11>111 at 1
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/TCGCCTTGCCAACGCT.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/TCGCCTTGCCAACGCT.1.fastq
new file mode 100644
index 0000000..5414bf7
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/TCGCCTTGCCAACGCT.1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:15287:1512 1:Y:0:TCGCCTTGCCAACGCT
+CCTCCTCCTTTTATTTCTTTTCCCT
++
+111111>1B131333333331A111
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/TCGCCTTGCCAACGCT.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/TCGCCTTGCCAACGCT.2.fastq
new file mode 100644
index 0000000..a114968
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/TCGCCTTGCCAACGCT.2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:15287:1512 2:Y:0:TCGCCTTGCCAACGCT
+CTTTTTTCTTTTTTTCGTCTTTCTT
++
+1111111113 at 111000000A2221
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/TCGCCTTGCCAACGCT.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/TCGCCTTGCCAACGCT.barcode_1.fastq
new file mode 100644
index 0000000..4760331
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/TCGCCTTGCCAACGCT.barcode_1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:15287:1512 :Y:0:TCGCCTTGCCAACGCT
+TCGCCTTG
++
+>A11>>A1
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/TCGCCTTGCCAACGCT.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/TCGCCTTGCCAACGCT.barcode_2.fastq
new file mode 100644
index 0000000..182b659
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/TCGCCTTGCCAACGCT.barcode_2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:15287:1512 :Y:0:TCGCCTTGCCAACGCT
+CCAACGCT
++
+1>11>1>1
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/TGCAAGTACGAACTTC.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/TGCAAGTACGAACTTC.1.fastq
new file mode 100644
index 0000000..a8353bd
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/TGCAAGTACGAACTTC.1.fastq
@@ -0,0 +1,8 @@
+ at machine1:HiMom:abcdeACXX:1:1101:13416:1538 1:Y:0:TGCAAGTACGAACTTC
+TTTTGTCTATCACTTTGTTTATTCA
++
+>11>11333333311A13113BBA3
+ at machine1:HiMom:abcdeACXX:1:1101:16315:1534 1:Y:0:TGCAAGTACGAACTTC
+TTTCTGTTTTATTCTTTTCTTATGT
++
+>1>113333B333333AB31A331D
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/TGCAAGTACGAACTTC.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/TGCAAGTACGAACTTC.2.fastq
new file mode 100644
index 0000000..eb6ca66
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/TGCAAGTACGAACTTC.2.fastq
@@ -0,0 +1,8 @@
+ at machine1:HiMom:abcdeACXX:1:1101:13416:1538 2:Y:0:TGCAAGTACGAACTTC
+TTTTCTTCCCTTTCTTTCTCTGTTT
++
+111111331111B133A33333D33
+ at machine1:HiMom:abcdeACXX:1:1101:16315:1534 2:Y:0:TGCAAGTACGAACTTC
+TTTTTCTCCTCCTTTTTTTGTTCCT
++
+111111131 at 11A1A111000B333
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/TGCAAGTACGAACTTC.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/TGCAAGTACGAACTTC.barcode_1.fastq
new file mode 100644
index 0000000..7e9bd93
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/TGCAAGTACGAACTTC.barcode_1.fastq
@@ -0,0 +1,8 @@
+ at machine1:HiMom:abcdeACXX:1:1101:13416:1538 :Y:0:TGCAAGTACGAACTTC
+TGCAAGTA
++
+>1>111B3
+ at machine1:HiMom:abcdeACXX:1:1101:16315:1534 :Y:0:TGCAAGTACGAACTTC
+TGCAAGTA
++
+>1>111B3
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/TGCAAGTACGAACTTC.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/TGCAAGTACGAACTTC.barcode_2.fastq
new file mode 100644
index 0000000..ffbafdd
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/TGCAAGTACGAACTTC.barcode_2.fastq
@@ -0,0 +1,8 @@
+ at machine1:HiMom:abcdeACXX:1:1101:13416:1538 :Y:0:TGCAAGTACGAACTTC
+CGAACTTC
++
+>111>1 at B
+ at machine1:HiMom:abcdeACXX:1:1101:16315:1534 :Y:0:TGCAAGTACGAACTTC
+CGAACTTC
++
+1111>>@@
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/TGCTCGACTTCACAGA.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/TGCTCGACTTCACAGA.1.fastq
new file mode 100644
index 0000000..e1fa520
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/TGCTCGACTTCACAGA.1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:15028:1491 1:Y:0:TGCTCGACTTCACAGA
+TTTTTTTTTTTTTTTTTTTTTTTTT
++
+>1>>111>>000/A###########
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/TGCTCGACTTCACAGA.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/TGCTCGACTTCACAGA.2.fastq
new file mode 100644
index 0000000..5508876
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/TGCTCGACTTCACAGA.2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:15028:1491 2:Y:0:TGCTCGACTTCACAGA
+TTCTTTTTTTTCTTTTTTTTTCTCT
++
+1111131111001331100//0A22
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/TGCTCGACTTCACAGA.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/TGCTCGACTTCACAGA.barcode_1.fastq
new file mode 100644
index 0000000..d02021c
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/TGCTCGACTTCACAGA.barcode_1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:15028:1491 :Y:0:TGCTCGACTTCACAGA
+TGCTCGAC
++
+>11>>11>
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/TGCTCGACTTCACAGA.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/TGCTCGACTTCACAGA.barcode_2.fastq
new file mode 100644
index 0000000..3d779e4
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/TGCTCGACTTCACAGA.barcode_2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:15028:1491 :Y:0:TGCTCGACTTCACAGA
+TTCACAGT
++
+1>111311
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/TGCTCGACTTCACAGT.1.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/TGCTCGACTTCACAGT.1.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/TGCTCGACTTCACAGT.2.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/TGCTCGACTTCACAGT.2.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/TGCTCGACTTCACAGT.barcode_1.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/TGCTCGACTTCACAGT.barcode_1.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/TGCTCGACTTCACAGT.barcode_2.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/TGCTCGACTTCACAGT.barcode_2.fastq
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/TGTAATCACCTCTAAC.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/TGTAATCACCTCTAAC.1.fastq
new file mode 100644
index 0000000..b68348b
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/TGTAATCACCTCTAAC.1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:15439:1540 1:Y:0:TGTAATCACCTCTAAC
+CTTCTTTCATATTCTTAAATTTGCA
++
+1>>11B333B333ABA331ABA333
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/TGTAATCACCTCTAAC.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/TGTAATCACCTCTAAC.2.fastq
new file mode 100644
index 0000000..67f2373
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/TGTAATCACCTCTAAC.2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:15439:1540 2:Y:0:TGTAATCACCTCTAAC
+TTTTGTTTGAGTGTTATAGAAACAG
++
+111>11BB111113B3333313110
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/TGTAATCACCTCTAAC.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/TGTAATCACCTCTAAC.barcode_1.fastq
new file mode 100644
index 0000000..98757e9
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/TGTAATCACCTCTAAC.barcode_1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:15439:1540 :Y:0:TGTAATCACCTCTAAC
+TGTAATCA
++
+A?A3?FF5
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/TGTAATCACCTCTAAC.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/TGTAATCACCTCTAAC.barcode_2.fastq
new file mode 100644
index 0000000..41aed6f
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/TGTAATCACCTCTAAC.barcode_2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:15439:1540 :Y:0:TGTAATCACCTCTAAC
+CCTCTAAC
++
+AAAAA45D
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/TGTATCTCTTACTCTT.1.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/TGTATCTCTTACTCTT.1.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/TGTATCTCTTACTCTT.2.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/TGTATCTCTTACTCTT.2.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/TGTATCTCTTACTCTT.barcode_1.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/TGTATCTCTTACTCTT.barcode_1.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/TGTATCTCTTACTCTT.barcode_2.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/TGTATCTCTTACTCTT.barcode_2.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/TGTCGGTTTTTTGCTT.1.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/TGTCGGTTTTTTGCTT.1.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/TGTCGGTTTTTTGCTT.2.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/TGTCGGTTTTTTGCTT.2.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/TGTCGGTTTTTTGCTT.barcode_1.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/TGTCGGTTTTTTGCTT.barcode_1.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/TGTCGGTTTTTTGCTT.barcode_2.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/TGTCGGTTTTTTGCTT.barcode_2.fastq
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/TGTTCCGAAACCTCTT.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/TGTTCCGAAACCTCTT.1.fastq
new file mode 100644
index 0000000..cef18f7
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/TGTTCCGAAACCTCTT.1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:16256:1385 1:Y:0:TGTTCCGAAACCTCTT
+TTTCTCTTTTTTTTTCCTTTTTTTT
++
+>>11>3 at 3@@11AAA01A22AA0/A
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/TGTTCCGAAACCTCTT.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/TGTTCCGAAACCTCTT.2.fastq
new file mode 100644
index 0000000..6ad1938
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/TGTTCCGAAACCTCTT.2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:16256:1385 2:Y:0:TGTTCCGAAACCTCTT
+TCTTTTTCTTTTTTCTTTTCTCTTT
++
+11111111 at 33111113A13A3A33
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/TGTTCCGAAACCTCTT.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/TGTTCCGAAACCTCTT.barcode_1.fastq
new file mode 100644
index 0000000..3df350f
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/TGTTCCGAAACCTCTT.barcode_1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:16256:1385 :Y:0:TGTTCCGAAACCTCTT
+TGTTCCGA
++
+>1>>>B11
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/TGTTCCGAAACCTCTT.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/TGTTCCGAAACCTCTT.barcode_2.fastq
new file mode 100644
index 0000000..be1b66f
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/TGTTCCGAAACCTCTT.barcode_2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:16256:1385 :Y:0:TGTTCCGAAACCTCTT
+AACCTCTT
++
+11>>>>B1
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/TTAATCAGCTGGTATT.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/TTAATCAGCTGGTATT.1.fastq
new file mode 100644
index 0000000..7ae78c5
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/TTAATCAGCTGGTATT.1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:17703:1479 1:Y:0:TTAATCAGCTGGTATT
+TTTTTTTTTTCCTCCTTTTTTTCCT
++
+111111110001110012A1//01A
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/TTAATCAGCTGGTATT.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/TTAATCAGCTGGTATT.2.fastq
new file mode 100644
index 0000000..ed402db
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/TTAATCAGCTGGTATT.2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:17703:1479 2:Y:0:TTAATCAGCTGGTATT
+TCTTTTTTCCTTCTCTTTTTTCTTT
++
+11111 at 1111331113331100133
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/TTAATCAGCTGGTATT.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/TTAATCAGCTGGTATT.barcode_1.fastq
new file mode 100644
index 0000000..a4181e1
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/TTAATCAGCTGGTATT.barcode_1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:17703:1479 :Y:0:TTAATCAGCTGGTATT
+TTAATCAG
++
+1>11>D31
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/TTAATCAGCTGGTATT.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/TTAATCAGCTGGTATT.barcode_2.fastq
new file mode 100644
index 0000000..c768204
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/TTAATCAGCTGGTATT.barcode_2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:17703:1479 :Y:0:TTAATCAGCTGGTATT
+CTGGTATT
++
+1111>1B@
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/TTATATCTTCATGTCT.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/TTATATCTTCATGTCT.1.fastq
new file mode 100644
index 0000000..38b8cd1
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/TTATATCTTCATGTCT.1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:16819:1536 1:Y:0:TTATATCTTCATGTCT
+TTTTTTTGTTTTGTCCTTTCTTCCT
++
+>1>111>1111>0A3AA33AAB31B
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/TTATATCTTCATGTCT.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/TTATATCTTCATGTCT.2.fastq
new file mode 100644
index 0000000..2e704da
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/TTATATCTTCATGTCT.2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:16819:1536 2:Y:0:TTATATCTTCATGTCT
+TTTTTTTTTCATCCCTCTCTTCCCT
++
+1>1>>>>>>0333A010A0A2A101
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/TTATATCTTCATGTCT.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/TTATATCTTCATGTCT.barcode_1.fastq
new file mode 100644
index 0000000..afe05c5
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/TTATATCTTCATGTCT.barcode_1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:16819:1536 :Y:0:TTATATCTTCATGTCT
+TTATATCT
++
+>A1>1BDD
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/TTATATCTTCATGTCT.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/TTATATCTTCATGTCT.barcode_2.fastq
new file mode 100644
index 0000000..489c307
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/TTATATCTTCATGTCT.barcode_2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:16819:1536 :Y:0:TTATATCTTCATGTCT
+TCATGTCT
++
+>>1>1BB3
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/TTCCCCAGTGCTTTTA.1.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/TTCCCCAGTGCTTTTA.1.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/TTCCCCAGTGCTTTTA.2.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/TTCCCCAGTGCTTTTA.2.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/TTCCCCAGTGCTTTTA.barcode_1.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/TTCCCCAGTGCTTTTA.barcode_1.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/TTCCCCAGTGCTTTTA.barcode_2.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/TTCCCCAGTGCTTTTA.barcode_2.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/TTCCTCCTCACCATCC.1.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/TTCCTCCTCACCATCC.1.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/TTCCTCCTCACCATCC.2.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/TTCCTCCTCACCATCC.2.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/TTCCTCCTCACCATCC.barcode_1.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/TTCCTCCTCACCATCC.barcode_1.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/TTCCTCCTCACCATCC.barcode_2.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/TTCCTCCTCACCATCC.barcode_2.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/TTCTCATCTTCCTTCC.1.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/TTCTCATCTTCCTTCC.1.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/TTCTCATCTTCCTTCC.2.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/TTCTCATCTTCCTTCC.2.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/TTCTCATCTTCCTTCC.barcode_1.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/TTCTCATCTTCCTTCC.barcode_1.fastq
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/25T8B8B25T/fastq/TTCTCATCTTCCTTCC.barcode_2.fastq
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/25T8B8B25T/fastq/TTCTCATCTTCCTTCC.barcode_2.fastq
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/TTGAATAGATATCCGA.1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/TTGAATAGATATCCGA.1.fastq
new file mode 100644
index 0000000..ed584bb
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/TTGAATAGATATCCGA.1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:16891:1545 1:Y:0:TTGAATAGATATCCGA
+CTTTTGCCTGTGTTTTTTCTCTCAT
++
+1>1>>11111B1BABA11AAA3A13
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/TTGAATAGATATCCGA.2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/TTGAATAGATATCCGA.2.fastq
new file mode 100644
index 0000000..d6ceb93
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/TTGAATAGATATCCGA.2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:16891:1545 2:Y:0:TTGAATAGATATCCGA
+CTTTTTTCTGACTTTCTTCTAGACT
++
+11>1>1>>13311A3AB3AB33313
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/TTGAATAGATATCCGA.barcode_1.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/TTGAATAGATATCCGA.barcode_1.fastq
new file mode 100644
index 0000000..05746c3
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/TTGAATAGATATCCGA.barcode_1.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:16891:1545 :Y:0:TTGAATAGATATCCGA
+TTGAATAG
++
+>A333B54
diff --git a/testdata/picard/illumina/25T8B8B25T/fastq/TTGAATAGATATCCGA.barcode_2.fastq b/testdata/picard/illumina/25T8B8B25T/fastq/TTGAATAGATATCCGA.barcode_2.fastq
new file mode 100644
index 0000000..80faae5
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/fastq/TTGAATAGATATCCGA.barcode_2.fastq
@@ -0,0 +1,4 @@
+ at machine1:HiMom:abcdeACXX:1:1101:16891:1545 :Y:0:TTGAATAGATATCCGA
+ATATCCGA
++
+1>>AAD11
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/fastq/barcode_double.params b/testdata/picard/illumina/25T8B8B25T/fastq/barcode_double.params
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/fastq/barcode_double.params
rename to testdata/picard/illumina/25T8B8B25T/fastq/barcode_double.params
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/library.params b/testdata/picard/illumina/25T8B8B25T/library.params
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/library.params
rename to testdata/picard/illumina/25T8B8B25T/library.params
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/AACTTGAC.sam b/testdata/picard/illumina/25T8B8B25T/sams/AACTTGAC.sam
new file mode 100644
index 0000000..1556879
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/AACTTGAC.sam
@@ -0,0 +1,4 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_AACTTGACGCTCTCTT	LB:LN_AACTTGACGCTCTCTT	PL:illumina	PU:HiMom.1.AACTTGAC-GCTCTCTT	CN:BI
+HiMom:1:1101:14221:1451	589	*	0	0	*	*	0	0	TTTTTTTTTCTTTTACTTTTTTTTT	>1>1>111>0@@31311B21AAA##	RG:Z:HiMom.1
+HiMom:1:1101:14221:1451	653	*	0	0	*	*	0	0	TTTTTTTTTCTTTTTTTTCCTTTTT	1111111>>0 at 331B00/011221A	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/AAGACACT.sam b/testdata/picard/illumina/25T8B8B25T/sams/AAGACACT.sam
new file mode 100644
index 0000000..1c0f8ab
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/AAGACACT.sam
@@ -0,0 +1,4 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_AAGACACTAGTCTCCT	LB:LN_AAGACACTAGTCTCCT	PL:illumina	PU:HiMom.1.AAGACACT-AGTCTCCT	CN:BI
+HiMom:1:1101:15405:1531	589	*	0	0	*	*	0	0	TTTCCTTCTTTTTTTTTTTTTTTAT	11>11331 at 13111000A#######	RG:Z:HiMom.1
+HiMom:1:1101:15405:1531	653	*	0	0	*	*	0	0	TTCTTTTTTCTTTTTCTTTGTTCTT	11111@@11>1331B11333B03A3	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/ACAGGTAT.sam b/testdata/picard/illumina/25T8B8B25T/sams/ACAGGTAT.sam
new file mode 100644
index 0000000..dc8c778
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/ACAGGTAT.sam
@@ -0,0 +1,4 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_ACAGGTATCACTTCAT	LB:LN_ACAGGTATCACTTCAT	PL:illumina	PU:HiMom.1.ACAGGTAT-CACTTCAT	CN:BI
+HiMom:1:1101:14342:1520	589	*	0	0	*	*	0	0	CTTTCTTTTCTCCTTTTTTTCTTTC	11>>1@@@1313111311AA0BAAA	RG:Z:HiMom.1
+HiMom:1:1101:14342:1520	653	*	0	0	*	*	0	0	TCGTGTTTTTTCTTTTTGCTTTCCC	111>1>>>11111331A013A3111	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/ACAGTTGA.sam b/testdata/picard/illumina/25T8B8B25T/sams/ACAGTTGA.sam
new file mode 100644
index 0000000..465a803
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/ACAGTTGA.sam
@@ -0,0 +1,6 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_ACAGTTGAATCTTCTC	LB:LN_ACAGTTGAATCTTCTC	PL:illumina	PU:HiMom.1.ACAGTTGA-ATCTTCTC	CN:BI
+HiMom:1:1101:14133:1507	589	*	0	0	*	*	0	0	TCCTCTTTGCTTTTTGCTATCACTC	111>1B1 at 313131111A33A33D1	RG:Z:HiMom.1
+HiMom:1:1101:14133:1507	653	*	0	0	*	*	0	0	TCCTTTATTATCTTTGTTCCTTTTT	111>>313 at 333AAA3A1333331A	RG:Z:HiMom.1
+HiMom:1:1101:14753:1450	589	*	0	0	*	*	0	0	CTTTTTCCTCTTTTTTTCTTTTGTT	1>>>>@1131B1311100BA31100	RG:Z:HiMom.1
+HiMom:1:1101:14753:1450	653	*	0	0	*	*	0	0	TCCCTTTTTTTTCTTTTCTCTTTTT	1111>@11@>1001331313331AA	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/ACCAACTG.sam b/testdata/picard/illumina/25T8B8B25T/sams/ACCAACTG.sam
new file mode 100644
index 0000000..ffdcfc0
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/ACCAACTG.sam
@@ -0,0 +1,4 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_ACCAACTGCATCACTT	LB:LN_ACCAACTGCATCACTT	PL:illumina	PU:HiMom.1.ACCAACTG-CATCACTT	CN:BI
+HiMom:1:1101:15221:1507	589	*	0	0	*	*	0	0	CTTTTTTCTTTCTTTGTTTTTGTAT	1>1>1111@@33A3B3311000033	RG:Z:HiMom.1
+HiMom:1:1101:15221:1507	653	*	0	0	*	*	0	0	CTCTTTTTTTTCTCTCTTCTTTCCT	111>13111>0013A11313B321A	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/ACCTACTG.sam b/testdata/picard/illumina/25T8B8B25T/sams/ACCTACTG.sam
new file mode 100644
index 0000000..41a89b3
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/ACCTACTG.sam
@@ -0,0 +1,2 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_ACCTACTGCTTCCCTT	LB:LN_ACCTACTGCTTCCCTT	PL:illumina	PU:HiMom.1.ACCTACTG-CTTCCCTT	CN:BI
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/ACTAAGAC.sam b/testdata/picard/illumina/25T8B8B25T/sams/ACTAAGAC.sam
new file mode 100644
index 0000000..1e16dbc
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/ACTAAGAC.sam
@@ -0,0 +1,4 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_ACTAAGACGTCCTCAT	LB:LN_ACTAAGACGTCCTCAT	PL:illumina	PU:HiMom.1.ACTAAGAC-GTCCTCAT	CN:BI
+HiMom:1:1101:17324:1480	589	*	0	0	*	*	0	0	TCTCTGTGTTTTTTTTTTTTTTACT	>111>333 at 11111A000///A/1A	RG:Z:HiMom.1
+HiMom:1:1101:17324:1480	653	*	0	0	*	*	0	0	CTTTTTTTTCTTCTCTTTCCTTCCT	1>>1111>00 at 333133331AA101	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/AGGTCGCA.sam b/testdata/picard/illumina/25T8B8B25T/sams/AGGTCGCA.sam
new file mode 100644
index 0000000..581566a
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/AGGTCGCA.sam
@@ -0,0 +1,2 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_AGGTCGCATTCCTTTC	LB:LN_AGGTCGCATTCCTTTC	PL:illumina	PU:HiMom.1.AGGTCGCA-TTCCTTTC	CN:BI
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/AGGTGCGA.sam b/testdata/picard/illumina/25T8B8B25T/sams/AGGTGCGA.sam
new file mode 100644
index 0000000..2f21d1f
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/AGGTGCGA.sam
@@ -0,0 +1,4 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_AGGTGCGAGACATTAA	LB:LN_AGGTGCGAGACATTAA	PL:illumina	PU:HiMom.1.AGGTGCGA-GACATTAA	CN:BI
+HiMom:1:1101:15634:1526	589	*	0	0	*	*	0	0	TTTTTTTTTTCTTTGGTTATTTTAT	1>>>>>AA00>11B100A1BBAB2A	RG:Z:HiMom.1
+HiMom:1:1101:15634:1526	653	*	0	0	*	*	0	0	CCTCTCTTCTTTTTTTCTCCTTTTT	111>1>131 at 131110A1B1ABBA1	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/AGGTTATC.sam b/testdata/picard/illumina/25T8B8B25T/sams/AGGTTATC.sam
new file mode 100644
index 0000000..19e26d9
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/AGGTTATC.sam
@@ -0,0 +1,4 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_AGGTTATCTTAGCCAG	LB:LN_AGGTTATCTTAGCCAG	PL:illumina	PU:HiMom.1.AGGTTATC-TTAGCCAG	CN:BI
+HiMom:1:1101:17862:1503	589	*	0	0	*	*	0	0	TTTTTTTCCTACTTTGCTTTAGTTT	>1>1>1>1133113A11A1A1133A	RG:Z:HiMom.1
+HiMom:1:1101:17862:1503	653	*	0	0	*	*	0	0	TCTTCCCCTTCTTTATTTATTTGCT	1>1111111>1 at AA3A3B33AA333	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/AGTTGCTT.sam b/testdata/picard/illumina/25T8B8B25T/sams/AGTTGCTT.sam
new file mode 100644
index 0000000..16e3b4d
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/AGTTGCTT.sam
@@ -0,0 +1,4 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_AGTTGCTTTGACTTGG	LB:LN_AGTTGCTTTGACTTGG	PL:illumina	PU:HiMom.1.AGTTGCTT-TGACTTGG	CN:BI
+HiMom:1:1101:14369:1492	589	*	0	0	*	*	0	0	TTTCTTCTTTCTTTTTGTAAAGTTT	1>>11333 at B3BB31111333333B	RG:Z:HiMom.1
+HiMom:1:1101:14369:1492	653	*	0	0	*	*	0	0	TCCTTCTTTTTCTCTTTTTTTTCTT	1>11>@1131111AAAAA1100011	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/ATAGCGTC.sam b/testdata/picard/illumina/25T8B8B25T/sams/ATAGCGTC.sam
new file mode 100644
index 0000000..725c111
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/ATAGCGTC.sam
@@ -0,0 +1,4 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_ATAGCGTCTTGGTCTG	LB:LN_ATAGCGTCTTGGTCTG	PL:illumina	PU:HiMom.1.ATAGCGTC-TTGGTCTG	CN:BI
+HiMom:1:1101:17049:1423	589	*	0	0	*	*	0	0	CTCTTTTCTTTCTTTCTCTTCCTCT	1>111 at 13@3333A33A3331111A	RG:Z:HiMom.1
+HiMom:1:1101:17049:1423	653	*	0	0	*	*	0	0	TTTTCTCCTCCTCTTCCTCTTTTTT	1111113111111111111113110	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/ATTATCAA.sam b/testdata/picard/illumina/25T8B8B25T/sams/ATTATCAA.sam
new file mode 100644
index 0000000..97766f5
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/ATTATCAA.sam
@@ -0,0 +1,2 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_ATTATCAACACCATAC	LB:LN_ATTATCAACACCATAC	PL:illumina	PU:HiMom.1.ATTATCAA-CACCATAC	CN:BI
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/ATTGTCTG.sam b/testdata/picard/illumina/25T8B8B25T/sams/ATTGTCTG.sam
new file mode 100644
index 0000000..d4382fd
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/ATTGTCTG.sam
@@ -0,0 +1,2 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_ATTGTCTGGATTCACA	LB:LN_ATTGTCTGGATTCACA	PL:illumina	PU:HiMom.1.ATTGTCTG-GATTCACA	CN:BI
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/CAATAGTC.sam b/testdata/picard/illumina/25T8B8B25T/sams/CAATAGTC.sam
new file mode 100644
index 0000000..e8c457c
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/CAATAGTC.sam
@@ -0,0 +1,4 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_CAATAGTCCGACTCTC	LB:LN_CAATAGTCCGACTCTC	PL:illumina	PU:HiMom.1.CAATAGTC-CGACTCTC	CN:BI
+HiMom:1:1101:15479:1337	589	*	0	0	*	*	0	0	CTCTCTTTTTTTTCTTTTTTATTCT	1111113311110013311001222	RG:Z:HiMom.1
+HiMom:1:1101:15479:1337	653	*	0	0	*	*	0	0	TTTTCCTTCCTTTCTCTTCCCTCCT	111111 at 311133133331111111	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/CAGCAAGG.sam b/testdata/picard/illumina/25T8B8B25T/sams/CAGCAAGG.sam
new file mode 100644
index 0000000..18b177a
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/CAGCAAGG.sam
@@ -0,0 +1,4 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_CAGCAAGGGCGATATT	LB:LN_CAGCAAGGGCGATATT	PL:illumina	PU:HiMom.1.CAGCAAGG-GCGATATT	CN:BI
+HiMom:1:1101:17475:1506	589	*	0	0	*	*	0	0	TCTTTTTTTTTCTCTCGTGTGTTGG	>111>B11>0>013310A0A0BB##	RG:Z:HiMom.1
+HiMom:1:1101:17475:1506	653	*	0	0	*	*	0	0	CCTTTTTCTTTTCTCTCCTCTTTCC	11111111 at 33131331111A1331	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/CAGCGGTA.sam b/testdata/picard/illumina/25T8B8B25T/sams/CAGCGGTA.sam
new file mode 100644
index 0000000..b053fdd
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/CAGCGGTA.sam
@@ -0,0 +1,4 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_CAGCGGTAAGTACTGC	LB:LN_CAGCGGTAAGTACTGC	PL:illumina	PU:HiMom.1.CAGCGGTA-AGTACTGC	CN:BI
+HiMom:1:1101:13678:1483	589	*	0	0	*	*	0	0	TCTTTTCTTTTTTTTTTTCTTTTTT	>1>>>131331111000A01AB###	RG:Z:HiMom.1
+HiMom:1:1101:13678:1483	653	*	0	0	*	*	0	0	TTTTTTTTCTTTCCTCTCTTTTTTT	11111111013331A##########	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/CATGCTTA.sam b/testdata/picard/illumina/25T8B8B25T/sams/CATGCTTA.sam
new file mode 100644
index 0000000..859b812
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/CATGCTTA.sam
@@ -0,0 +1,6 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_CATGCTTATAGCATTT	LB:LN_CATGCTTATAGCATTT	PL:illumina	PU:HiMom.1.CATGCTTA-TAGCATTT	CN:BI
+HiMom:1:1101:13947:1464	589	*	0	0	*	*	0	0	CTCCTTTTCTTCTTCTTCTCTTTTT	1>11113 at 313331331331A3311	RG:Z:HiMom.1
+HiMom:1:1101:13947:1464	653	*	0	0	*	*	0	0	TTTTTTTTTCCCTCCCCTTTCCCTT	1111111100111000000111111	RG:Z:HiMom.1
+HiMom:1:1101:17987:1524	589	*	0	0	*	*	0	0	CCTCTTTTTCTGTTTTTTTTGCTGG	111>11 at 111133331110001B11	RG:Z:HiMom.1
+HiMom:1:1101:17987:1524	653	*	0	0	*	*	0	0	TCTTCTTTTCTTTCTTCTTTATTTG	111>13131313A3A33A1A33A33	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/CATGCTTT.sam b/testdata/picard/illumina/25T8B8B25T/sams/CATGCTTT.sam
new file mode 100644
index 0000000..c2f9148
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/CATGCTTT.sam
@@ -0,0 +1,2 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_CATGCTTTTAGCATTG	LB:LN_CATGCTTTTAGCATTG	PL:illumina	PU:HiMom.1.CATGCTTT-TAGCATTG	CN:BI
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/CATGTTCG.sam b/testdata/picard/illumina/25T8B8B25T/sams/CATGTTCG.sam
new file mode 100644
index 0000000..a936ac0
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/CATGTTCG.sam
@@ -0,0 +1,2 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_CATGTTCGCGCCTTTT	LB:LN_CATGTTCGCGCCTTTT	PL:illumina	PU:HiMom.1.CATGTTCG-CGCCTTTT	CN:BI
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/CCAGAGCT.sam b/testdata/picard/illumina/25T8B8B25T/sams/CCAGAGCT.sam
new file mode 100644
index 0000000..c1c511b
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/CCAGAGCT.sam
@@ -0,0 +1,6 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_CCAGAGCTCAACTGAT	LB:LN_CCAGAGCTCAACTGAT	PL:illumina	PU:HiMom.1.CCAGAGCT-CAACTGAT	CN:BI
+HiMom:1:1101:16357:1518	589	*	0	0	*	*	0	0	GTCTTCTGCTTCGCTCACGCTGGGT	1>>>>3 at 113B311AA1111A0000	RG:Z:HiMom.1
+HiMom:1:1101:16357:1518	653	*	0	0	*	*	0	0	TCCTTCTCTCTTTTTTTTTAATTCT	>1111111B at BB311AA0001ABAB	RG:Z:HiMom.1
+HiMom:1:1101:17387:1497	589	*	0	0	*	*	0	0	CCCCTTTTTTGTTGTGCTTTAGCCT	111>>111111111A01B3311111	RG:Z:HiMom.1
+HiMom:1:1101:17387:1497	653	*	0	0	*	*	0	0	CTTTTTGTCTTTCTTCCCCCTGCTT	111>11113@@@3333111AA0011	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/CCCGATTT.sam b/testdata/picard/illumina/25T8B8B25T/sams/CCCGATTT.sam
new file mode 100644
index 0000000..7d96b43
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/CCCGATTT.sam
@@ -0,0 +1,2 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_CCCGATTTTCTCTCCC	LB:LN_CCCGATTTTCTCTCCC	PL:illumina	PU:HiMom.1.CCCGATTT-TCTCTCCC	CN:BI
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/CCTATGCC.sam b/testdata/picard/illumina/25T8B8B25T/sams/CCTATGCC.sam
new file mode 100644
index 0000000..c15d757
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/CCTATGCC.sam
@@ -0,0 +1,4 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_CCTATGCCAATTGGCC	LB:LN_CCTATGCCAATTGGCC	PL:illumina	PU:HiMom.1.CCTATGCC-AATTGGCC	CN:BI
+HiMom:1:1101:17516:1540	589	*	0	0	*	*	0	0	CTTTCGTTTTTCTTTCCTATACATC	1>>1111B>1>1B3331B3A11333	RG:Z:HiMom.1
+HiMom:1:1101:17516:1540	653	*	0	0	*	*	0	0	TTCTTTTTTTTCCCTTTCCCTTTTC	1>111 at B@11>0111B11AA1A112	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/CCTATTCT.sam b/testdata/picard/illumina/25T8B8B25T/sams/CCTATTCT.sam
new file mode 100644
index 0000000..66babdc
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/CCTATTCT.sam
@@ -0,0 +1,2 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_CCTATTCTTCGTTTTC	LB:LN_CCTATTCTTCGTTTTC	PL:illumina	PU:HiMom.1.CCTATTCT-TCGTTTTC	CN:BI
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/CCTCTTCT.sam b/testdata/picard/illumina/25T8B8B25T/sams/CCTCTTCT.sam
new file mode 100644
index 0000000..1dddfef
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/CCTCTTCT.sam
@@ -0,0 +1,2 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_CCTCTTCTCTCGCTTT	LB:LN_CCTCTTCTCTCGCTTT	PL:illumina	PU:HiMom.1.CCTCTTCT-CTCGCTTT	CN:BI
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/CCTCTTTC.sam b/testdata/picard/illumina/25T8B8B25T/sams/CCTCTTTC.sam
new file mode 100644
index 0000000..26aaf96
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/CCTCTTTC.sam
@@ -0,0 +1,2 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_CCTCTTTCTTCTGCTC	LB:LN_CCTCTTTCTTCTGCTC	PL:illumina	PU:HiMom.1.CCTCTTTC-TTCTGCTC	CN:BI
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/CCTTCGCA.sam b/testdata/picard/illumina/25T8B8B25T/sams/CCTTCGCA.sam
new file mode 100644
index 0000000..59ccfc9
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/CCTTCGCA.sam
@@ -0,0 +1,4 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_CCTTCGCAGAATCGAC	LB:LN_CCTTCGCAGAATCGAC	PL:illumina	PU:HiMom.1.CCTTCGCA-GAATCGAC	CN:BI
+HiMom:1:1101:15248:1531	589	*	0	0	*	*	0	0	CCCTACCTGTCTGCTATCCATCCCC	111>11111B1311313A13B111A	RG:Z:HiMom.1
+HiMom:1:1101:15248:1531	653	*	0	0	*	*	0	0	TTCTCCTTCTATTTCTCTTGTCTTC	11111@@B@@3333333331A1333	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/CCTTCTTT.sam b/testdata/picard/illumina/25T8B8B25T/sams/CCTTCTTT.sam
new file mode 100644
index 0000000..12ebcae
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/CCTTCTTT.sam
@@ -0,0 +1,2 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_CCTTCTTTTATCATTT	LB:LN_CCTTCTTTTATCATTT	PL:illumina	PU:HiMom.1.CCTTCTTT-TATCATTT	CN:BI
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/CGCTATGT.sam b/testdata/picard/illumina/25T8B8B25T/sams/CGCTATGT.sam
new file mode 100644
index 0000000..f533905
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/CGCTATGT.sam
@@ -0,0 +1,4 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_CGCTATGTTTCACCTT	LB:LN_CGCTATGTTTCACCTT	PL:illumina	PU:HiMom.1.CGCTATGT-TTCACCTT	CN:BI
+HiMom:1:1101:17615:1538	589	*	0	0	*	*	0	0	CTTTTTTTTTTTTCCTTTTTTTCTT	>>>>11110000A011AA1A//0A1	RG:Z:HiMom.1
+HiMom:1:1101:17615:1538	653	*	0	0	*	*	0	0	TTCTTTCCTTTTCTTTTTTCTGTTT	11>1133133 at 131331111A3333	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/CTACCAGG.sam b/testdata/picard/illumina/25T8B8B25T/sams/CTACCAGG.sam
new file mode 100644
index 0000000..69a8f31
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/CTACCAGG.sam
@@ -0,0 +1,4 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_CTACCAGGTTCTTGGC	LB:LN_CTACCAGGTTCTTGGC	PL:illumina	PU:HiMom.1.CTACCAGG-TTCTTGGC	CN:BI
+HiMom:1:1101:14790:1540	589	*	0	0	*	*	0	0	TTCTCTCTTTTCTCTTTCTTGTTGT	A>1>13113313A3AAAAAB11B1B	RG:Z:HiMom.1
+HiMom:1:1101:14790:1540	653	*	0	0	*	*	0	0	CTCTGTATTTTCCTTTTTCTTCTTT	11111 at 33@@33133A1BB1A3A1B	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/CTCCCTCT.sam b/testdata/picard/illumina/25T8B8B25T/sams/CTCCCTCT.sam
new file mode 100644
index 0000000..f6ea6a8
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/CTCCCTCT.sam
@@ -0,0 +1,2 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_CTCCCTCTTCCTTCTT	LB:LN_CTCCCTCTTCCTTCTT	PL:illumina	PU:HiMom.1.CTCCCTCT-TCCTTCTT	CN:BI
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/CTGTAATC.sam b/testdata/picard/illumina/25T8B8B25T/sams/CTGTAATC.sam
new file mode 100644
index 0000000..24e6293
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/CTGTAATC.sam
@@ -0,0 +1,4 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_CTGTAATCCTATTAGC	LB:LN_CTGTAATCCTATTAGC	PL:illumina	PU:HiMom.1.CTGTAATC-CTATTAGC	CN:BI
+HiMom:1:1101:15029:1349	589	*	0	0	*	*	0	0	CTTCTCCTTTTCTTTTTTTTTTTTT	1>11111113 at 313A##########	RG:Z:HiMom.1
+HiMom:1:1101:15029:1349	653	*	0	0	*	*	0	0	TTTCTTTTTCTTTTTTCTTTCTTTT	1111>3 at 111133111113333331	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/GACCAGGA.sam b/testdata/picard/illumina/25T8B8B25T/sams/GACCAGGA.sam
new file mode 100644
index 0000000..7119fc3
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/GACCAGGA.sam
@@ -0,0 +1,4 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_GACCAGGACCATCACA	LB:LN_GACCAGGACCATCACA	PL:illumina	PU:HiMom.1.GACCAGGA-CCATCACA	CN:BI
+HiMom:1:1101:16241:1505	589	*	0	0	*	*	0	0	CTTCTTTTTTTTCTTCCCTTTGCTC	11>1113 at 11100A331011A1111	RG:Z:HiMom.1
+HiMom:1:1101:16241:1505	653	*	0	0	*	*	0	0	CTGTGGTTTTTTTCTTGTCTTTTCC	111>11111111001A111333AA1	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/GCCGTCGA.sam b/testdata/picard/illumina/25T8B8B25T/sams/GCCGTCGA.sam
new file mode 100644
index 0000000..ca3948b
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/GCCGTCGA.sam
@@ -0,0 +1,6 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_GCCGTCGATGGTACCC	LB:LN_GCCGTCGATGGTACCC	PL:illumina	PU:HiMom.1.GCCGTCGA-TGGTACCC	CN:BI
+HiMom:1:1101:13789:1486	589	*	0	0	*	*	0	0	CTTTTTTCTTCCTCTTTCTTTTTCT	1111111113311AAB33333A10A	RG:Z:HiMom.1
+HiMom:1:1101:13789:1486	653	*	0	0	*	*	0	0	TTTTTCTCTCCTTCTCTTCTCCTTC	1111111331111111331311111	RG:Z:HiMom.1
+HiMom:1:1101:14791:1400	589	*	0	0	*	*	0	0	TTTTTTTCTTTTTCTTTTTTTCTTT	>>1>>111 at 3@@11A3B1BA001A1	RG:Z:HiMom.1
+HiMom:1:1101:14791:1400	653	*	0	0	*	*	0	0	TCCTTTTTCTTTCCTTTTCTTTTTT	111>131 at 1133313331313311A	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/GCCTAGCC.sam b/testdata/picard/illumina/25T8B8B25T/sams/GCCTAGCC.sam
new file mode 100644
index 0000000..6c6165e
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/GCCTAGCC.sam
@@ -0,0 +1,4 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_GCCTAGCCCTTGAATC	LB:LN_GCCTAGCCCTTGAATC	PL:illumina	PU:HiMom.1.GCCTAGCC-CTTGAATC	CN:BI
+HiMom:1:1101:14517:1469	589	*	0	0	*	*	0	0	TTTCTTTTTTTTCCCTTTCCTCTTT	>111133111>001111111B1111	RG:Z:HiMom.1
+HiMom:1:1101:14517:1469	653	*	0	0	*	*	0	0	CCTCCTTTTTCTTCTTTTCCTTTTT	11111113111133AA3A313331A	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/GCTATCCA.sam b/testdata/picard/illumina/25T8B8B25T/sams/GCTATCCA.sam
new file mode 100644
index 0000000..9b66c07
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/GCTATCCA.sam
@@ -0,0 +1,2 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_GCTATCCACCTCCCCC	LB:LN_GCTATCCACCTCCCCC	PL:illumina	PU:HiMom.1.GCTATCCA-CCTCCCCC	CN:BI
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/GTATAACA.sam b/testdata/picard/illumina/25T8B8B25T/sams/GTATAACA.sam
new file mode 100644
index 0000000..d1afe76
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/GTATAACA.sam
@@ -0,0 +1,4 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_GTATAACATATTCAAC	LB:LN_GTATAACATATTCAAC	PL:illumina	PU:HiMom.1.GTATAACA-TATTCAAC	CN:BI
+HiMom:1:1101:14857:1542	589	*	0	0	*	*	0	0	TTTTCTCTTTTTGTTTTTTTCTTCT	1>>>1 at 33B3111ABB11AA01333	RG:Z:HiMom.1
+HiMom:1:1101:14857:1542	653	*	0	0	*	*	0	0	TCTTCCTTTTTTTTTTTTCTTTCTT	111111133@@110000/AB1122A	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/GTCTGATG.sam b/testdata/picard/illumina/25T8B8B25T/sams/GTCTGATG.sam
new file mode 100644
index 0000000..ea4a566
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/GTCTGATG.sam
@@ -0,0 +1,4 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_GTCTGATGTCACTTCC	LB:LN_GTCTGATGTCACTTCC	PL:illumina	PU:HiMom.1.GTCTGATG-TCACTTCC	CN:BI
+HiMom:1:1101:16578:1461	589	*	0	0	*	*	0	0	TTTTTTCTCTTTTTTTTGTTTCTGC	>1>111113@@31A0A0000B2B21	RG:Z:HiMom.1
+HiMom:1:1101:16578:1461	653	*	0	0	*	*	0	0	CTTTTTCTTTCTTTTTCTCTCTTCT	111111>133333311113A11313	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/N.sam b/testdata/picard/illumina/25T8B8B25T/sams/N.sam
new file mode 100644
index 0000000..781baa9
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/N.sam
@@ -0,0 +1,40 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_N	LB:LN_N	PL:illumina	PU:HiMom.1.N-N	CN:BI
+HiMom:1:1101:13743:1511	589	*	0	0	*	*	0	0	TCCTTCTTTTCCCTCCCCTTTCCTT	>11>111@@@3111A111ABA1133	BC:Z:ATTATCAA-CACCATAC	RG:Z:HiMom.1
+HiMom:1:1101:13743:1511	653	*	0	0	*	*	0	0	CCCCCTTCCCTCTTTTTTCCTTCCC	1111111111 at 11131100133100	BC:Z:ATTATCAA-CACCATAC	RG:Z:HiMom.1
+HiMom:1:1101:13844:1536	589	*	0	0	*	*	0	0	TTTCTTTTTTCTTTTCCCTTTATTT	1111>3311111331311B111333	BC:Z:TCCCCGTT-CCAACTTC	RG:Z:HiMom.1
+HiMom:1:1101:13844:1536	653	*	0	0	*	*	0	0	TCTTCTTTTTTTTTTTTCTTTTCCT	111113131111A############	BC:Z:TCCCCGTT-CCAACTTC	RG:Z:HiMom.1
+HiMom:1:1101:14281:1532	589	*	0	0	*	*	0	0	CTTTTTTCCTTTTTTTCTTTTTTCT	1>>11111133 at 1A00013311A01	BC:Z:CCTTCTTT-TATCATTT	RG:Z:HiMom.1
+HiMom:1:1101:14281:1532	653	*	0	0	*	*	0	0	TTTCTCTTTTTTTTTCTCCCTTCCT	>111133331111000121001001	BC:Z:CCTTCTTT-TATCATTT	RG:Z:HiMom.1
+HiMom:1:1101:14340:1451	589	*	0	0	*	*	0	0	TTTTTTCCTTCTCCCCTTTTTCCTT	>11111113311111111111013A	BC:Z:TTCCTCCT-CACCATCC	RG:Z:HiMom.1
+HiMom:1:1101:14340:1451	653	*	0	0	*	*	0	0	TCCCTTCCTCCCCTCCTTCTTTTTC	1111111111111111111113110	BC:Z:TTCCTCCT-CACCATCC	RG:Z:HiMom.1
+HiMom:1:1101:14809:1476	589	*	0	0	*	*	0	0	TTTTTCCCTTTCTCTTTTCTTTTCT	>1>>111111113333313AAA131	BC:Z:GCTATCCA-CCTCCCCC	RG:Z:HiMom.1
+HiMom:1:1101:14809:1476	653	*	0	0	*	*	0	0	TCTCTTTTTCTTTTTTCTCCTTTCT	>111133111133111113111313	BC:Z:GCTATCCA-CCTCCCCC	RG:Z:HiMom.1
+HiMom:1:1101:14852:1366	589	*	0	0	*	*	0	0	TTCTCTCCCTCTTTTTTTCTTCTTT	111>1311111113A1AA0133313	BC:Z:AGGTCGCA-TTCCTTTC	RG:Z:HiMom.1
+HiMom:1:1101:14852:1366	653	*	0	0	*	*	0	0	TCCTTTTTCTTTTCTTTTCTTTTCC	1111131111331313313133131	BC:Z:AGGTCGCA-TTCCTTTC	RG:Z:HiMom.1
+HiMom:1:1101:14927:1516	589	*	0	0	*	*	0	0	CTCCTTTTCTCTTTTCCCCCTGTGC	11111 at 3131333313111111111	BC:Z:GTCTGATG-TCACTTCC	RG:Z:HiMom.1
+HiMom:1:1101:14927:1516	653	*	0	0	*	*	0	0	TTCCTCCCCCTCCTCCCCCTCCCTC	11111111>1111111100000A00	BC:Z:GTCTGATG-TCACTTCC	RG:Z:HiMom.1
+HiMom:1:1101:14943:1353	589	*	0	0	*	*	0	0	TTTTTTTTTCTTTTTTTTTTTTTTT	1>1>111100 at 33A###########	BC:Z:CTCCCTCT-TCCTTCTT	RG:Z:HiMom.1
+HiMom:1:1101:14943:1353	653	*	0	0	*	*	0	0	CTCCCTTTTTTTTTTCTTCCTCTCT	1111111111110000112111101	BC:Z:CTCCCTCT-TCCTTCTT	RG:Z:HiMom.1
+HiMom:1:1101:15334:1365	589	*	0	0	*	*	0	0	TTTTTTTCTTCTCTTTCTTTTCTTT	111>111113331333333B13133	BC:Z:TGTATCTC-TTACTCTT	RG:Z:HiMom.1
+HiMom:1:1101:15334:1365	653	*	0	0	*	*	0	0	TCTCTCTTTCTTCTCTTTTTTTTTT	1111111333333313331110000	BC:Z:TGTATCTC-TTACTCTT	RG:Z:HiMom.1
+HiMom:1:1101:15424:1475	589	*	0	0	*	*	0	0	CTTTTTTCTTTTTCTTTTTTTTTCT	1>>11 at 1113311113311000001	BC:Z:CCTCTTCT-CTCGCTTT	RG:Z:HiMom.1
+HiMom:1:1101:15424:1475	653	*	0	0	*	*	0	0	TTCCTTCTTTCCTTCTCTCTTTCTT	1111131113313311131133333	BC:Z:CCTCTTCT-CTCGCTTT	RG:Z:HiMom.1
+HiMom:1:1101:15736:1478	589	*	0	0	*	*	0	0	CCTCTCTTTTTTCCTTTCCCTGCCT	1111111 at 3B1111A33111A1001	BC:Z:ATTGTCTG-GATTCACA	RG:Z:HiMom.1
+HiMom:1:1101:15736:1478	653	*	0	0	*	*	0	0	CTCTTCCCTTTCCCCCTCTTCTTCT	111>111111111111A11113A33	BC:Z:ATTGTCTG-GATTCACA	RG:Z:HiMom.1
+HiMom:1:1101:15785:1528	589	*	0	0	*	*	0	0	CTTTTTTTTTTCTCTCTTTTTTTTT	11>111>100001221B########	BC:Z:CCCGATTT-TCTCTCCC	RG:Z:HiMom.1
+HiMom:1:1101:15785:1528	653	*	0	0	*	*	0	0	TCTTCTCTTTCTCTTTTTCTTTTCT	1111131 at 3@3333331A1133131	BC:Z:CCCGATTT-TCTCTCCC	RG:Z:HiMom.1
+HiMom:1:1101:15865:1540	589	*	0	0	*	*	0	0	GCTTTCCTTGTTTTCTGTCCCCTTC	11111113311BB13A33A111B10	BC:Z:TTCCCCAG-TGCTTTTA	RG:Z:HiMom.1
+HiMom:1:1101:15865:1540	653	*	0	0	*	*	0	0	CTTTTTTATTTTCCTTTTGCATCCT	11111111333 at 31333B1133301	BC:Z:TTCCCCAG-TGCTTTTA	RG:Z:HiMom.1
+HiMom:1:1101:15987:1510	589	*	0	0	*	*	0	0	CTTTTTTTTTTTCCCTTTTTACCTT	#########################	BC:Z:CCTCTTTC-TTCTGCTC	RG:Z:HiMom.1
+HiMom:1:1101:15987:1510	653	*	0	0	*	*	0	0	TTCCCCTTCCCTTCTCTTTTCTTCT	111111>1111 at 1111333131333	BC:Z:CCTCTTTC-TTCTGCTC	RG:Z:HiMom.1
+HiMom:1:1101:15998:1432	589	*	0	0	*	*	0	0	TTCTTCCTCTTCTTCTTCTTCCTTT	111>131111113133133A31133	BC:Z:CATGTTCG-CGCCTTTT	RG:Z:HiMom.1
+HiMom:1:1101:15998:1432	653	*	0	0	*	*	0	0	CTTTTTTTCTTTTCTCCTCCTTTTT	11111 at 111@3313A31A000131A	BC:Z:CATGTTCG-CGCCTTTT	RG:Z:HiMom.1
+HiMom:1:1101:16070:1386	589	*	0	0	*	*	0	0	TTTTTTTTTTTTTTTTCCTTCCTTT	#########################	BC:Z:TGTCGGTT-TTTTGCTT	RG:Z:HiMom.1
+HiMom:1:1101:16070:1386	653	*	0	0	*	*	0	0	TTTTTTTTCTCTCTTTTTTTTTTTT	11111111013311331A#######	BC:Z:TGTCGGTT-TTTTGCTT	RG:Z:HiMom.1
+HiMom:1:1101:16085:1467	589	*	0	0	*	*	0	0	TTTTTTCCTTTTCTTTTCCTCTTCT	1>>11>113B31313A13131111A	BC:Z:ACCTACTG-CTTCCCTT	RG:Z:HiMom.1
+HiMom:1:1101:16085:1467	653	*	0	0	*	*	0	0	TTTTTTTTTTTTCCTCTTTTTTTCC	#########################	BC:Z:ACCTACTG-CTTCCCTT	RG:Z:HiMom.1
+HiMom:1:1101:16098:1529	589	*	0	0	*	*	0	0	TTTTTTTTTTCTCTCCCTTTCTCTT	1>1>>11100012210001112222	BC:Z:TTCTCATC-TTCCTTCC	RG:Z:HiMom.1
+HiMom:1:1101:16098:1529	653	*	0	0	*	*	0	0	CCCTCTCCACTTTTCTTTCCTCCCT	11111>1111111331333131110	BC:Z:TTCTCATC-TTCCTTCC	RG:Z:HiMom.1
+HiMom:1:1101:16530:1425	589	*	0	0	*	*	0	0	TTTTTTTTTTTTTTCTTTTTTTTTT	1111>>110000A############	BC:Z:CCTATTCT-TCGTTTTC	RG:Z:HiMom.1
+HiMom:1:1101:16530:1425	653	*	0	0	*	*	0	0	TTCTTTCCCTTTTCTTTTCCTTCTC	1111133111111313313133111	BC:Z:CCTATTCT-TCGTTTTC	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/TACTTAGC.sam b/testdata/picard/illumina/25T8B8B25T/sams/TACTTAGC.sam
new file mode 100644
index 0000000..e807e7c
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/TACTTAGC.sam
@@ -0,0 +1,6 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_TACTTAGCGTCTGCAC	LB:LN_TACTTAGCGTCTGCAC	PL:illumina	PU:HiMom.1.TACTTAGC-GTCTGCAC	CN:BI
+HiMom:1:1101:13898:1519	589	*	0	0	*	*	0	0	CCTTCTCTACTTTTTTTTCTATTTT	111>111B31 at 33311A0A1333BA	RG:Z:HiMom.1
+HiMom:1:1101:13898:1519	653	*	0	0	*	*	0	0	TTTTTTCTTTTCTCTTCCTCTTTTC	11>11111 at 3131A3A111A11313	RG:Z:HiMom.1
+HiMom:1:1101:14983:1536	589	*	0	0	*	*	0	0	CCTTCTTCTTGTTCCCTCGCCAGGC	11>>1113 at B11133AA111A0000	RG:Z:HiMom.1
+HiMom:1:1101:14983:1536	653	*	0	0	*	*	0	0	TCCTTATCCTTTTTACTGCCCTGTA	1111>331@@331A11A311111B3	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/TCCCCGTT.sam b/testdata/picard/illumina/25T8B8B25T/sams/TCCCCGTT.sam
new file mode 100644
index 0000000..481acc1
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/TCCCCGTT.sam
@@ -0,0 +1,2 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_TCCCCGTTCCAACTTC	LB:LN_TCCCCGTTCCAACTTC	PL:illumina	PU:HiMom.1.TCCCCGTT-CCAACTTC	CN:BI
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/TCCTTGGT.sam b/testdata/picard/illumina/25T8B8B25T/sams/TCCTTGGT.sam
new file mode 100644
index 0000000..3bb852d
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/TCCTTGGT.sam
@@ -0,0 +1,4 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_TCCTTGGTGCTGCACT	LB:LN_TCCTTGGTGCTGCACT	PL:illumina	PU:HiMom.1.TCCTTGGT-GCTGCACT	CN:BI
+HiMom:1:1101:17106:1463	589	*	0	0	*	*	0	0	TTTCTTTTTTTTCTTTTCTCTTCCT	11>113 at 1111>0A3A131333111	RG:Z:HiMom.1
+HiMom:1:1101:17106:1463	653	*	0	0	*	*	0	0	TTCATTTTCTTCTTTTTCTTCCTCT	1111133331333131111331111	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/TCGCCTTG.sam b/testdata/picard/illumina/25T8B8B25T/sams/TCGCCTTG.sam
new file mode 100644
index 0000000..d928d2a
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/TCGCCTTG.sam
@@ -0,0 +1,4 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_TCGCCTTGCCAACGCT	LB:LN_TCGCCTTGCCAACGCT	PL:illumina	PU:HiMom.1.TCGCCTTG-CCAACGCT	CN:BI
+HiMom:1:1101:15287:1512	589	*	0	0	*	*	0	0	CCTCCTCCTTTTATTTCTTTTCCCT	111111>1B131333333331A111	RG:Z:HiMom.1
+HiMom:1:1101:15287:1512	653	*	0	0	*	*	0	0	CTTTTTTCTTTTTTTCGTCTTTCTT	1111111113 at 111000000A2221	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/TGCAAGTA.sam b/testdata/picard/illumina/25T8B8B25T/sams/TGCAAGTA.sam
new file mode 100644
index 0000000..2570d6c
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/TGCAAGTA.sam
@@ -0,0 +1,6 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_TGCAAGTACGAACTTC	LB:LN_TGCAAGTACGAACTTC	PL:illumina	PU:HiMom.1.TGCAAGTA-CGAACTTC	CN:BI
+HiMom:1:1101:13416:1538	589	*	0	0	*	*	0	0	TTTTGTCTATCACTTTGTTTATTCA	>11>11333333311A13113BBA3	RG:Z:HiMom.1
+HiMom:1:1101:13416:1538	653	*	0	0	*	*	0	0	TTTTCTTCCCTTTCTTTCTCTGTTT	111111331111B133A33333D33	RG:Z:HiMom.1
+HiMom:1:1101:16315:1534	589	*	0	0	*	*	0	0	TTTCTGTTTTATTCTTTTCTTATGT	>1>113333B333333AB31A331D	RG:Z:HiMom.1
+HiMom:1:1101:16315:1534	653	*	0	0	*	*	0	0	TTTTTCTCCTCCTTTTTTTGTTCCT	111111131 at 11A1A111000B333	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/TGCTCGAC.sam b/testdata/picard/illumina/25T8B8B25T/sams/TGCTCGAC.sam
new file mode 100644
index 0000000..ed7ed3f
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/TGCTCGAC.sam
@@ -0,0 +1,4 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_TGCTCGACTTCACAGT	LB:LN_TGCTCGACTTCACAGT	PL:illumina	PU:HiMom.1.TGCTCGAC-TTCACAGT	CN:BI
+HiMom:1:1101:15028:1491	589	*	0	0	*	*	0	0	TTTTTTTTTTTTTTTTTTTTTTTTT	>1>>111>>000/A###########	RG:Z:HiMom.1
+HiMom:1:1101:15028:1491	653	*	0	0	*	*	0	0	TTCTTTTTTTTCTTTTTTTTTCTCT	1111131111001331100//0A22	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/TGTAATCA.sam b/testdata/picard/illumina/25T8B8B25T/sams/TGTAATCA.sam
new file mode 100644
index 0000000..446b008
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/TGTAATCA.sam
@@ -0,0 +1,4 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_TGTAATCACCTCTAAC	LB:LN_TGTAATCACCTCTAAC	PL:illumina	PU:HiMom.1.TGTAATCA-CCTCTAAC	CN:BI
+HiMom:1:1101:15439:1540	589	*	0	0	*	*	0	0	CTTCTTTCATATTCTTAAATTTGCA	1>>11B333B333ABA331ABA333	RG:Z:HiMom.1
+HiMom:1:1101:15439:1540	653	*	0	0	*	*	0	0	TTTTGTTTGAGTGTTATAGAAACAG	111>11BB111113B3333313110	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/TGTATCTC.sam b/testdata/picard/illumina/25T8B8B25T/sams/TGTATCTC.sam
new file mode 100644
index 0000000..a92cd71
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/TGTATCTC.sam
@@ -0,0 +1,2 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_TGTATCTCTTACTCTT	LB:LN_TGTATCTCTTACTCTT	PL:illumina	PU:HiMom.1.TGTATCTC-TTACTCTT	CN:BI
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/TGTCGGTT.sam b/testdata/picard/illumina/25T8B8B25T/sams/TGTCGGTT.sam
new file mode 100644
index 0000000..180e56d
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/TGTCGGTT.sam
@@ -0,0 +1,2 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_TGTCGGTTTTTTGCTT	LB:LN_TGTCGGTTTTTTGCTT	PL:illumina	PU:HiMom.1.TGTCGGTT-TTTTGCTT	CN:BI
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/TGTTCCGA.sam b/testdata/picard/illumina/25T8B8B25T/sams/TGTTCCGA.sam
new file mode 100644
index 0000000..9310a53
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/TGTTCCGA.sam
@@ -0,0 +1,4 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_TGTTCCGAAACCTCTT	LB:LN_TGTTCCGAAACCTCTT	PL:illumina	PU:HiMom.1.TGTTCCGA-AACCTCTT	CN:BI
+HiMom:1:1101:16256:1385	589	*	0	0	*	*	0	0	TTTCTCTTTTTTTTTCCTTTTTTTT	>>11>3 at 3@@11AAA01A22AA0/A	RG:Z:HiMom.1
+HiMom:1:1101:16256:1385	653	*	0	0	*	*	0	0	TCTTTTTCTTTTTTCTTTTCTCTTT	11111111 at 33111113A13A3A33	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/TTAATCAG.sam b/testdata/picard/illumina/25T8B8B25T/sams/TTAATCAG.sam
new file mode 100644
index 0000000..0ae05fd
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/TTAATCAG.sam
@@ -0,0 +1,4 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_TTAATCAGCTGGTATT	LB:LN_TTAATCAGCTGGTATT	PL:illumina	PU:HiMom.1.TTAATCAG-CTGGTATT	CN:BI
+HiMom:1:1101:17703:1479	589	*	0	0	*	*	0	0	TTTTTTTTTTCCTCCTTTTTTTCCT	111111110001110012A1//01A	RG:Z:HiMom.1
+HiMom:1:1101:17703:1479	653	*	0	0	*	*	0	0	TCTTTTTTCCTTCTCTTTTTTCTTT	11111 at 1111331113331100133	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/TTATATCT.sam b/testdata/picard/illumina/25T8B8B25T/sams/TTATATCT.sam
new file mode 100644
index 0000000..fe46bad
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/TTATATCT.sam
@@ -0,0 +1,4 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_TTATATCTTCATGTCT	LB:LN_TTATATCTTCATGTCT	PL:illumina	PU:HiMom.1.TTATATCT-TCATGTCT	CN:BI
+HiMom:1:1101:16819:1536	589	*	0	0	*	*	0	0	TTTTTTTGTTTTGTCCTTTCTTCCT	>1>111>1111>0A3AA33AAB31B	RG:Z:HiMom.1
+HiMom:1:1101:16819:1536	653	*	0	0	*	*	0	0	TTTTTTTTTCATCCCTCTCTTCCCT	1>1>>>>>>0333A010A0A2A101	RG:Z:HiMom.1
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/TTCCCCAG.sam b/testdata/picard/illumina/25T8B8B25T/sams/TTCCCCAG.sam
new file mode 100644
index 0000000..79fe5f6
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/TTCCCCAG.sam
@@ -0,0 +1,2 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_TTCCCCAGTGCTTTTA	LB:LN_TTCCCCAGTGCTTTTA	PL:illumina	PU:HiMom.1.TTCCCCAG-TGCTTTTA	CN:BI
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/TTCCTCCT.sam b/testdata/picard/illumina/25T8B8B25T/sams/TTCCTCCT.sam
new file mode 100644
index 0000000..0d123c2
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/TTCCTCCT.sam
@@ -0,0 +1,2 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_TTCCTCCTCACCATCC	LB:LN_TTCCTCCTCACCATCC	PL:illumina	PU:HiMom.1.TTCCTCCT-CACCATCC	CN:BI
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/TTCTCATC.sam b/testdata/picard/illumina/25T8B8B25T/sams/TTCTCATC.sam
new file mode 100644
index 0000000..361dd15
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/TTCTCATC.sam
@@ -0,0 +1,2 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_TTCTCATCTTCCTTCC	LB:LN_TTCTCATCTTCCTTCC	PL:illumina	PU:HiMom.1.TTCTCATC-TTCCTTCC	CN:BI
diff --git a/testdata/picard/illumina/25T8B8B25T/sams/TTGAATAG.sam b/testdata/picard/illumina/25T8B8B25T/sams/TTGAATAG.sam
new file mode 100644
index 0000000..40ff861
--- /dev/null
+++ b/testdata/picard/illumina/25T8B8B25T/sams/TTGAATAG.sam
@@ -0,0 +1,4 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:HiMom.1	SM:SA_TTGAATAGATATCCGA	LB:LN_TTGAATAGATATCCGA	PL:illumina	PU:HiMom.1.TTGAATAG-ATATCCGA	CN:BI
+HiMom:1:1101:16891:1545	589	*	0	0	*	*	0	0	CTTTTGCCTGTGTTTTTTCTCTCAT	1>1>>11111B1BABA11AAA3A13	RG:Z:HiMom.1
+HiMom:1:1101:16891:1545	653	*	0	0	*	*	0	0	CTTTTTTCTGACTTTCTTCTAGACT	11>1>1>>13311A3AB3AB33313	RG:Z:HiMom.1
diff --git a/testdata/net/sf/picard/illumina/25T8B8B25T/sams/barcode_double.params b/testdata/picard/illumina/25T8B8B25T/sams/barcode_double.params
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B8B25T/sams/barcode_double.params
rename to testdata/picard/illumina/25T8B8B25T/sams/barcode_double.params
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C1.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C1.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C1.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C1.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C10.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C10.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C10.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C10.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C100.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C100.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C100.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C100.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C101.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C101.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C101.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C101.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C102.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C102.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C102.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C102.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C103.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C103.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C103.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C103.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C104.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C104.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C104.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C104.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C105.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C105.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C105.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C105.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C106.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C106.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C106.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C106.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C107.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C107.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C107.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C107.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C108.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C108.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C108.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C108.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C109.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C109.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C109.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C109.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C11.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C11.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C11.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C11.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C110.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C110.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C110.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C110.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C111.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C111.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C111.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C111.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C112.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C112.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C112.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C112.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C113.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C113.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C113.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C113.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C114.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C114.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C114.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C114.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C115.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C115.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C115.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C115.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C116.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C116.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C116.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C116.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C117.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C117.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C117.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C117.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C118.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C118.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C118.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C118.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C119.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C119.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C119.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C119.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C12.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C12.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C12.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C12.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C120.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C120.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C120.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C120.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C121.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C121.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C121.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C121.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C122.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C122.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C122.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C122.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C123.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C123.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C123.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C123.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C124.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C124.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C124.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C124.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C125.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C125.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C125.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C125.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C126.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C126.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C126.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C126.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C127.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C127.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C127.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C127.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C128.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C128.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C128.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C128.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C129.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C129.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C129.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C129.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C13.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C13.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C13.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C13.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C130.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C130.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C130.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C130.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C131.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C131.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C131.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C131.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C132.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C132.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C132.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C132.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C133.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C133.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C133.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C133.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C134.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C134.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C134.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C134.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C135.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C135.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C135.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C135.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C136.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C136.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C136.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C136.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C137.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C137.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C137.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C137.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C138.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C138.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C138.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C138.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C139.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C139.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C139.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C139.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C14.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C14.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C14.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C14.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C140.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C140.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C140.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C140.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C141.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C141.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C141.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C141.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C142.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C142.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C142.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C142.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C143.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C143.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C143.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C143.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C144.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C144.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C144.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C144.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C145.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C145.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C145.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C145.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C146.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C146.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C146.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C146.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C147.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C147.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C147.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C147.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C148.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C148.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C148.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C148.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C149.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C149.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C149.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C149.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C15.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C15.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C15.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C15.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C150.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C150.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C150.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C150.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C151.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C151.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C151.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C151.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C152.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C152.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C152.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C152.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C153.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C153.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C153.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C153.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C154.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C154.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C154.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C154.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C155.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C155.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C155.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C155.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C156.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C156.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C156.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C156.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C157.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C157.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C157.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C157.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C158.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C158.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C158.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C158.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C159.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C159.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C159.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C159.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C16.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C16.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C16.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C16.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C160.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C160.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C160.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C160.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C161.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C161.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C161.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C161.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C162.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C162.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C162.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C162.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C163.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C163.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C163.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C163.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C164.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C164.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C164.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C164.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C165.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C165.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C165.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C165.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C166.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C166.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C166.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C166.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C167.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C167.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C167.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C167.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C168.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C168.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C168.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C168.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C169.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C169.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C169.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C169.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C17.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C17.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C17.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C17.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C170.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C170.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C170.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C170.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C171.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C171.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C171.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C171.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C172.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C172.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C172.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C172.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C173.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C173.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C173.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C173.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C174.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C174.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C174.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C174.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C175.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C175.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C175.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C175.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C176.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C176.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C176.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C176.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C177.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C177.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C177.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C177.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C178.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C178.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C178.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C178.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C179.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C179.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C179.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C179.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C18.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C18.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C18.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C18.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C180.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C180.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C180.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C180.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C181.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C181.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C181.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C181.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C182.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C182.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C182.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C182.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C183.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C183.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C183.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C183.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C184.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C184.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C184.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C184.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C185.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C185.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C185.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C185.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C186.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C186.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C186.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C186.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C187.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C187.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C187.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C187.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C188.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C188.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C188.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C188.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C189.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C189.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C189.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C189.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C19.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C19.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C19.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C19.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C190.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C190.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C190.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C190.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C191.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C191.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C191.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C191.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C192.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C192.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C192.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C192.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C193.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C193.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C193.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C193.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C194.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C194.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C194.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C194.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C195.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C195.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C195.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C195.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C196.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C196.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C196.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C196.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C197.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C197.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C197.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C197.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C198.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C198.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C198.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C198.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C199.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C199.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C199.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C199.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C2.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C2.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C2.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C2.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C20.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C20.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C20.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C20.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C200.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C200.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C200.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C200.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C201.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C201.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C201.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C201.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C202.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C202.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C202.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C202.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C203.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C203.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C203.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C203.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C204.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C204.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C204.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C204.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C205.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C205.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C205.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C205.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C206.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C206.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C206.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C206.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C207.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C207.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C207.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C207.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C208.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C208.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C208.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C208.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C209.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C209.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C209.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C209.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C21.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C21.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C21.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C21.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C210.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C210.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C210.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C210.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C211.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C211.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C211.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C211.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C212.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C212.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C212.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C212.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C213.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C213.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C213.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C213.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C214.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C214.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C214.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C214.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C215.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C215.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C215.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C215.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C216.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C216.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C216.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C216.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C217.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C217.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C217.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C217.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C218.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C218.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C218.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C218.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C219.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C219.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C219.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C219.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C22.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C22.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C22.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C22.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C220.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C220.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C220.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C220.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C221.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C221.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C221.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C221.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C222.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C222.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C222.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C222.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C223.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C223.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C223.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C223.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C224.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C224.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C224.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C224.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C225.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C225.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C225.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C225.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C226.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C226.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C226.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C226.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C227.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C227.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C227.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C227.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C228.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C228.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C228.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C228.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C229.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C229.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C229.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C229.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C23.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C23.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C23.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C23.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C230.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C230.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C230.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C230.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C231.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C231.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C231.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C231.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C232.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C232.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C232.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C232.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C233.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C233.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C233.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C233.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C234.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C234.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C234.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C234.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C235.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C235.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C235.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C235.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C236.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C236.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C236.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C236.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C237.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C237.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C237.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C237.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C238.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C238.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C238.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C238.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C239.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C239.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C239.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C239.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C24.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C24.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C24.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C24.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C240.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C240.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C240.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C240.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C241.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C241.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C241.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C241.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C242.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C242.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C242.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C242.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C243.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C243.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C243.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C243.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C244.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C244.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C244.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C244.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C245.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C245.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C245.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C245.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C246.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C246.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C246.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C246.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C247.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C247.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C247.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C247.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C248.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C248.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C248.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C248.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C249.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C249.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C249.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C249.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C25.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C25.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C25.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C25.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C250.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C250.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C250.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C250.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C26.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C26.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C26.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C26.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C27.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C27.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C27.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C27.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C28.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C28.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C28.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C28.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C29.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C29.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C29.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C29.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C3.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C3.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C3.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C3.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C30.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C30.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C30.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C30.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C31.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C31.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C31.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C31.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C32.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C32.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C32.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C32.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C33.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C33.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C33.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C33.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C34.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C34.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C34.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C34.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C35.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C35.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C35.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C35.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C36.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C36.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C36.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C36.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C37.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C37.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C37.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C37.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C38.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C38.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C38.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C38.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C39.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C39.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C39.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C39.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C4.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C4.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C4.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C4.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C40.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C40.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C40.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C40.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C41.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C41.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C41.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C41.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C42.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C42.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C42.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C42.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C43.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C43.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C43.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C43.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C44.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C44.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C44.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C44.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C45.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C45.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C45.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C45.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C46.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C46.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C46.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C46.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C47.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C47.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C47.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C47.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C48.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C48.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C48.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C48.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C49.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C49.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C49.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C49.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C5.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C5.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C5.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C5.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C50.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C50.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C50.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C50.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C51.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C51.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C51.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C51.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C52.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C52.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C52.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C52.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C53.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C53.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C53.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C53.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C54.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C54.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C54.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C54.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C55.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C55.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C55.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C55.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C56.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C56.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C56.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C56.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C57.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C57.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C57.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C57.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C58.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C58.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C58.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C58.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C59.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C59.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C59.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C59.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C6.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C6.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C6.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C6.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C60.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C60.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C60.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C60.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C61.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C61.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C61.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C61.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C62.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C62.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C62.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C62.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C63.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C63.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C63.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C63.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C64.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C64.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C64.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C64.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C65.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C65.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C65.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C65.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C66.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C66.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C66.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C66.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C67.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C67.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C67.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C67.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C68.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C68.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C68.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C68.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C69.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C69.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C69.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C69.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C7.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C7.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C7.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C7.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C70.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C70.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C70.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C70.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C71.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C71.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C71.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C71.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C72.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C72.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C72.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C72.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C73.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C73.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C73.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C73.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C74.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C74.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C74.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C74.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C75.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C75.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C75.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C75.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C76.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C76.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C76.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C76.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C77.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C77.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C77.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C77.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C78.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C78.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C78.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C78.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C79.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C79.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C79.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C79.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C8.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C8.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C8.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C8.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C80.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C80.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C80.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C80.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C81.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C81.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C81.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C81.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C82.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C82.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C82.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C82.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C83.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C83.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C83.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C83.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C84.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C84.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C84.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C84.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C85.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C85.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C85.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C85.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C86.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C86.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C86.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C86.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C87.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C87.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C87.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C87.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C88.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C88.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C88.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C88.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C89.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C89.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C89.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C89.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C9.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C9.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C9.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C9.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C90.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C90.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C90.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C90.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C91.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C91.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C91.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C91.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C92.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C92.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C92.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C92.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C93.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C93.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C93.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C93.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C94.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C94.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C94.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C94.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C95.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C95.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C95.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C95.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C96.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C96.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C96.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C96.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C97.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C97.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C97.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C97.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C98.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C98.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C98.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C98.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C99.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C99.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/C99.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/C99.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/s_1_1101.filter b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/s_1_1101.filter
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/BaseCalls/L001/s_1_1101.filter
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/BaseCalls/L001/s_1_1101.filter
diff --git a/testdata/net/sf/picard/illumina/125T125T/Data/Intensities/L001/s_1_1101.clocs b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/L001/s_1_1101.clocs
similarity index 100%
rename from testdata/net/sf/picard/illumina/125T125T/Data/Intensities/L001/s_1_1101.clocs
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/125T125T/Data/Intensities/L001/s_1_1101.clocs
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C1.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C1.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C1.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C1.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C10.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C10.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C10.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C10.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C11.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C11.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C11.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C11.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C12.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C12.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C12.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C12.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C13.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C13.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C13.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C13.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C14.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C14.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C14.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C14.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C15.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C15.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C15.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C15.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C16.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C16.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C16.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C16.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C17.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C17.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C17.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C17.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C18.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C18.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C18.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C18.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C19.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C19.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C19.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C19.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C2.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C2.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C2.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C2.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C20.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C20.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C20.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C20.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C21.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C21.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C21.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C21.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C22.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C22.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C22.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C22.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C23.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C23.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C23.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C23.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C24.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C24.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C24.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C24.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C25.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C25.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C25.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C25.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C26.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C26.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C26.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C26.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C27.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C27.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C27.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C27.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C28.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C28.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C28.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C28.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C29.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C29.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C29.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C29.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C3.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C3.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C3.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C3.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C30.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C30.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C30.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C30.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C31.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C31.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C31.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C31.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C32.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C32.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C32.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C32.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C33.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C33.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C33.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C33.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C34.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C34.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C34.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C34.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C35.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C35.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C35.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C35.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C36.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C36.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C36.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C36.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C37.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C37.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C37.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C37.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C38.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C38.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C38.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C38.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C39.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C39.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C39.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C39.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C4.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C4.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C4.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C4.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C40.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C40.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C40.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C40.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C41.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C41.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C41.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C41.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C42.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C42.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C42.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C42.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C43.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C43.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C43.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C43.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C44.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C44.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C44.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C44.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C45.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C45.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C45.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C45.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C46.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C46.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C46.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C46.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C47.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C47.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C47.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C47.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C48.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C48.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C48.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C48.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C49.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C49.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C49.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C49.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C5.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C5.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C5.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C5.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C50.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C50.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C50.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C50.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C51.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C51.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C51.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C51.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C52.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C52.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C52.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C52.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C53.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C53.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C53.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C53.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C54.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C54.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C54.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C54.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C55.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C55.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C55.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C55.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C56.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C56.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C56.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C56.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C57.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C57.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C57.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C57.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C58.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C58.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C58.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C58.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C6.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C6.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C6.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C6.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C7.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C7.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C7.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C7.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C8.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C8.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C8.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C8.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C9.1/s_1_1101.bcl b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C9.1/s_1_1101.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/C9.1/s_1_1101.bcl
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/C9.1/s_1_1101.bcl
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/s_1_1101.filter b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/s_1_1101.filter
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/L001/s_1_1101.filter
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/L001/s_1_1101.filter
diff --git a/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/barcodeData.1 b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/barcodeData.1
new file mode 100755
index 0000000..c8306ea
--- /dev/null
+++ b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/barcodeData.1
@@ -0,0 +1,6 @@
+barcode_name	library_name	barcode_sequence_1
+tagged_908	Xiaolan	AGCATGGA
+tagged_741	Xiaolan	AACGCATT
+tagged_117	Xiaolan	AACAATGG
+tagged_630	Xiaolan	ACTAAGAC
+tagged_375	Xiaolan	ACAGGTAT
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/s_1_1101_barcode.txt.gz b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/s_1_1101_barcode.txt.gz
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/BaseCalls/s_1_1101_barcode.txt.gz
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/BaseCalls/s_1_1101_barcode.txt.gz
diff --git a/testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/L001/s_1_1101.clocs b/testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/L001/s_1_1101.clocs
similarity index 100%
rename from testdata/net/sf/picard/illumina/25T8B25T/Data/Intensities/L001/s_1_1101.clocs
rename to testdata/picard/illumina/CollectIlluminaBasecallingMetrics/25T8B25T/Data/Intensities/L001/s_1_1101.clocs
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/CollectIlluminaLaneMetrics/.gitignore
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/CollectIlluminaLaneMetrics/.gitignore
diff --git a/testdata/net/sf/picard/illumina/Homo_sapiens_assembly18.seqdict.sam b/testdata/picard/illumina/Homo_sapiens_assembly18.seqdict.sam
similarity index 100%
rename from testdata/net/sf/picard/illumina/Homo_sapiens_assembly18.seqdict.sam
rename to testdata/picard/illumina/Homo_sapiens_assembly18.seqdict.sam
diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/130318_SL-HBB_0226_BFCC1WYMACXX.expected.lane_metrics b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/130318_SL-HBB_0226_BFCC1WYMACXX.expected.lane_metrics
new file mode 100644
index 0000000..4ff4378
--- /dev/null
+++ b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/130318_SL-HBB_0226_BFCC1WYMACXX.expected.lane_metrics
@@ -0,0 +1,13 @@
+
+## METRICS CLASS	picard.illumina.IlluminaLaneMetrics
+CLUSTER_DENSITY	LANE
+737654.46522	1
+735432.634984	2
+680377.260114	3
+660771.043513	4
+580029.994205	5
+606170.798438	6
+669264.07396	7
+685863.936999	8
+
+
diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/130318_SL-HBB_0226_BFCC1WYMACXX.illumina_lane_metrics b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/130318_SL-HBB_0226_BFCC1WYMACXX.illumina_lane_metrics
new file mode 100644
index 0000000..4ff4378
--- /dev/null
+++ b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/130318_SL-HBB_0226_BFCC1WYMACXX.illumina_lane_metrics
@@ -0,0 +1,13 @@
+
+## METRICS CLASS	picard.illumina.IlluminaLaneMetrics
+CLUSTER_DENSITY	LANE
+737654.46522	1
+735432.634984	2
+680377.260114	3
+660771.043513	4
+580029.994205	5
+606170.798438	6
+669264.07396	7
+685863.936999	8
+
+
diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/130318_SL-HBB_0226_BFCC1WYMACXX/InterOp/TileMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/130318_SL-HBB_0226_BFCC1WYMACXX/InterOp/TileMetricsOut.bin
new file mode 100755
index 0000000..fe6a428
Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/130318_SL-HBB_0226_BFCC1WYMACXX/InterOp/TileMetricsOut.bin differ
diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/130321_SL-MAK_0035_FC000000000-A306B.illumina_lane_metrics b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/130321_SL-MAK_0035_FC000000000-A306B.illumina_lane_metrics
new file mode 100644
index 0000000..a446238
--- /dev/null
+++ b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/130321_SL-MAK_0035_FC000000000-A306B.illumina_lane_metrics
@@ -0,0 +1,6 @@
+
+## METRICS CLASS	picard.illumina.IlluminaLaneMetrics
+CLUSTER_DENSITY	LANE
+705356.408747	1
+
+
diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/130321_SL-MAK_0035_FC000000000-A306B/InterOp/TileMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/130321_SL-MAK_0035_FC000000000-A306B/InterOp/TileMetricsOut.bin
new file mode 100755
index 0000000..082ccc9
Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/130321_SL-MAK_0035_FC000000000-A306B/InterOp/TileMetricsOut.bin differ
diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/130401_SL-HAC_0022_BH07PBADXX.illumina_lane_metrics b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/130401_SL-HAC_0022_BH07PBADXX.illumina_lane_metrics
new file mode 100644
index 0000000..1fc5e85
--- /dev/null
+++ b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/130401_SL-HAC_0022_BH07PBADXX.illumina_lane_metrics
@@ -0,0 +1,7 @@
+
+## METRICS CLASS	picard.illumina.IlluminaLaneMetrics
+CLUSTER_DENSITY	LANE
+719577.231548	1
+697884.562621	2
+
+
diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/130401_SL-HAC_0022_BH07PBADXX/InterOp/TileMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/130401_SL-HAC_0022_BH07PBADXX/InterOp/TileMetricsOut.bin
new file mode 100755
index 0000000..d57208c
Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/130401_SL-HAC_0022_BH07PBADXX/InterOp/TileMetricsOut.bin differ
diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/A67HY/A67HY.illumina_lane_metrics b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/A67HY/A67HY.illumina_lane_metrics
new file mode 100644
index 0000000..eb075a3
--- /dev/null
+++ b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/A67HY/A67HY.illumina_lane_metrics
@@ -0,0 +1,6 @@
+
+## METRICS CLASS	picard.illumina.IlluminaLaneMetrics
+CLUSTER_DENSITY	LANE
+471143.26055	1
+
+
diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/A67HY/A67HY.illumina_phasing_metrics b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/A67HY/A67HY.illumina_phasing_metrics
new file mode 100644
index 0000000..b28b04f
--- /dev/null
+++ b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/A67HY/A67HY.illumina_phasing_metrics
@@ -0,0 +1,3 @@
+
+
+
diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/A67HY/InterOp/TileMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/A67HY/InterOp/TileMetricsOut.bin
new file mode 100755
index 0000000..7322b24
Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/A67HY/InterOp/TileMetricsOut.bin differ
diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/A67HY/README b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/A67HY/README
new file mode 100644
index 0000000..3a4c35d
--- /dev/null
+++ b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/A67HY/README
@@ -0,0 +1 @@
+8B8B
diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/A7LE0/A7LE0.illumina_lane_metrics b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/A7LE0/A7LE0.illumina_lane_metrics
new file mode 100644
index 0000000..cede24b
--- /dev/null
+++ b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/A7LE0/A7LE0.illumina_lane_metrics
@@ -0,0 +1,6 @@
+
+## METRICS CLASS	picard.illumina.IlluminaLaneMetrics
+CLUSTER_DENSITY	LANE
+716096.698529	1
+
+
diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/A7LE0/A7LE0.illumina_phasing_metrics b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/A7LE0/A7LE0.illumina_phasing_metrics
new file mode 100644
index 0000000..910a07e
--- /dev/null
+++ b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/A7LE0/A7LE0.illumina_phasing_metrics
@@ -0,0 +1,7 @@
+
+## METRICS CLASS	picard.illumina.IlluminaPhasingMetrics
+LANE	TYPE_NAME	PHASING_APPLIED	PREPHASING_APPLIED
+1	FIRST	0.348826	0.102636
+1	SECOND	0.365592	0.120776
+
+
diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/A7LE0/InterOp/TileMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/A7LE0/InterOp/TileMetricsOut.bin
new file mode 100755
index 0000000..882c3c2
Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/A7LE0/InterOp/TileMetricsOut.bin differ
diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/A7LE0/README b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/A7LE0/README
new file mode 100644
index 0000000..066a0e3
--- /dev/null
+++ b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/A7LE0/README
@@ -0,0 +1 @@
+25T8B8B25T
diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/C2MFAACXX/C2MFAACXX.illumina_lane_metrics b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/C2MFAACXX/C2MFAACXX.illumina_lane_metrics
new file mode 100644
index 0000000..a446299
--- /dev/null
+++ b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/C2MFAACXX/C2MFAACXX.illumina_lane_metrics
@@ -0,0 +1,13 @@
+
+## METRICS CLASS	picard.illumina.IlluminaLaneMetrics
+CLUSTER_DENSITY	LANE
+383203.749633	1
+372624.728072	2
+704229.985618	3
+869772.849553	4
+687219.739695	5
+700154.810984	6
+488271.673911	7
+472918.516587	8
+
+
diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/C2MFAACXX/C2MFAACXX.illumina_phasing_metrics b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/C2MFAACXX/C2MFAACXX.illumina_phasing_metrics
new file mode 100644
index 0000000..db916df
--- /dev/null
+++ b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/C2MFAACXX/C2MFAACXX.illumina_phasing_metrics
@@ -0,0 +1,21 @@
+
+## METRICS CLASS	picard.illumina.IlluminaPhasingMetrics
+LANE	TYPE_NAME	PHASING_APPLIED	PREPHASING_APPLIED
+1	FIRST	0.145376	0.236303
+1	SECOND	0.118807	0.259126
+2	FIRST	0.15119	0.225011
+2	SECOND	0.1244	0.257222
+3	FIRST	0.175504	0.213735
+3	SECOND	0.128604	0.254258
+4	FIRST	0.175155	0.179118
+4	SECOND	0.221506	0.201332
+5	FIRST	0.168341	0.213921
+5	SECOND	0.125947	0.258912
+6	FIRST	0.17095	0.210944
+6	SECOND	0.124301	0.262341
+7	FIRST	0.164955	0.214149
+7	SECOND	0.118581	0.24602
+8	FIRST	0.173663	0.22553
+8	SECOND	0.121349	0.24245
+
+
diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/C2MFAACXX/InterOp/TileMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/C2MFAACXX/InterOp/TileMetricsOut.bin
new file mode 100755
index 0000000..179f78b
Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/C2MFAACXX/InterOp/TileMetricsOut.bin differ
diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/C2MFAACXX/README b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/C2MFAACXX/README
new file mode 100644
index 0000000..d95bbfd
--- /dev/null
+++ b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/C2MFAACXX/README
@@ -0,0 +1 @@
+99T101T
diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/H7BATADXX/H7BATADXX.illumina_lane_metrics b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/H7BATADXX/H7BATADXX.illumina_lane_metrics
new file mode 100644
index 0000000..92aac81
--- /dev/null
+++ b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/H7BATADXX/H7BATADXX.illumina_lane_metrics
@@ -0,0 +1,7 @@
+
+## METRICS CLASS	picard.illumina.IlluminaLaneMetrics
+CLUSTER_DENSITY	LANE
+993597.96782	1
+957767.642058	2
+
+
diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/H7BATADXX/H7BATADXX.illumina_phasing_metrics b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/H7BATADXX/H7BATADXX.illumina_phasing_metrics
new file mode 100644
index 0000000..383a188
--- /dev/null
+++ b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/H7BATADXX/H7BATADXX.illumina_phasing_metrics
@@ -0,0 +1,9 @@
+
+## METRICS CLASS	picard.illumina.IlluminaPhasingMetrics
+LANE	TYPE_NAME	PHASING_APPLIED	PREPHASING_APPLIED
+1	FIRST	0.065596	0.102128
+1	SECOND	0.096622	0.134981
+2	FIRST	0.070056	0.244101
+2	SECOND	0.098111	0.224081
+
+
diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/H7BATADXX/InterOp/TileMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/H7BATADXX/InterOp/TileMetricsOut.bin
new file mode 100755
index 0000000..0cf15f8
Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/H7BATADXX/InterOp/TileMetricsOut.bin differ
diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/H7BATADXX/README b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/H7BATADXX/README
new file mode 100644
index 0000000..f15619a
--- /dev/null
+++ b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/H7BATADXX/README
@@ -0,0 +1 @@
+76T8B76T
diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/H7H7RADXX/H7H7RADXX.illumina_lane_metrics b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/H7H7RADXX/H7H7RADXX.illumina_lane_metrics
new file mode 100644
index 0000000..e73104d
--- /dev/null
+++ b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/H7H7RADXX/H7H7RADXX.illumina_lane_metrics
@@ -0,0 +1,7 @@
+
+## METRICS CLASS	picard.illumina.IlluminaLaneMetrics
+CLUSTER_DENSITY	LANE
+1014912.666555	1
+1010736.712377	2
+
+
diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/H7H7RADXX/H7H7RADXX.illumina_phasing_metrics b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/H7H7RADXX/H7H7RADXX.illumina_phasing_metrics
new file mode 100644
index 0000000..64c322d
--- /dev/null
+++ b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/H7H7RADXX/H7H7RADXX.illumina_phasing_metrics
@@ -0,0 +1,9 @@
+
+## METRICS CLASS	picard.illumina.IlluminaPhasingMetrics
+LANE	TYPE_NAME	PHASING_APPLIED	PREPHASING_APPLIED
+1	FIRST	0.106243	0.127359
+1	SECOND	0.118863	0.116667
+2	FIRST	0.108767	0.137311
+2	SECOND	0.122812	0.117224
+
+
diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/H7H7RADXX/InterOp/TileMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/H7H7RADXX/InterOp/TileMetricsOut.bin
new file mode 100755
index 0000000..5988bd0
Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/H7H7RADXX/InterOp/TileMetricsOut.bin differ
diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/H7H7RADXX/README b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/H7H7RADXX/README
new file mode 100644
index 0000000..29f96af
--- /dev/null
+++ b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/H7H7RADXX/README
@@ -0,0 +1,2 @@
+FLOWCELL: H7H7RADXX
+STRUCTURE: 101T8B8B101T
diff --git a/testdata/net/sf/picard/illumina/parserTests/filterParser/L001/s_1_0001.filter b/testdata/picard/illumina/parserTests/filterParser/L001/s_1_0001.filter
similarity index 100%
rename from testdata/net/sf/picard/illumina/parserTests/filterParser/L001/s_1_0001.filter
rename to testdata/picard/illumina/parserTests/filterParser/L001/s_1_0001.filter
diff --git a/testdata/net/sf/picard/illumina/parserTests/filterParser/L001/s_1_0002.filter b/testdata/picard/illumina/parserTests/filterParser/L001/s_1_0002.filter
similarity index 100%
rename from testdata/net/sf/picard/illumina/parserTests/filterParser/L001/s_1_0002.filter
rename to testdata/picard/illumina/parserTests/filterParser/L001/s_1_0002.filter
diff --git a/testdata/net/sf/picard/illumina/parserTests/filterParser/L001/s_1_0003.filter b/testdata/picard/illumina/parserTests/filterParser/L001/s_1_0003.filter
similarity index 100%
rename from testdata/net/sf/picard/illumina/parserTests/filterParser/L001/s_1_0003.filter
rename to testdata/picard/illumina/parserTests/filterParser/L001/s_1_0003.filter
diff --git a/testdata/net/sf/picard/illumina/parserTests/filterParser/L001/s_1_0004.filter b/testdata/picard/illumina/parserTests/filterParser/L001/s_1_0004.filter
similarity index 100%
rename from testdata/net/sf/picard/illumina/parserTests/filterParser/L001/s_1_0004.filter
rename to testdata/picard/illumina/parserTests/filterParser/L001/s_1_0004.filter
diff --git a/testdata/net/sf/picard/illumina/parserTests/posParser/s_1_1_pos.txt b/testdata/picard/illumina/parserTests/posParser/s_1_1_pos.txt
similarity index 100%
rename from testdata/net/sf/picard/illumina/parserTests/posParser/s_1_1_pos.txt
rename to testdata/picard/illumina/parserTests/posParser/s_1_1_pos.txt
diff --git a/testdata/net/sf/picard/illumina/parserTests/posParser/s_1_2_pos.txt b/testdata/picard/illumina/parserTests/posParser/s_1_2_pos.txt
similarity index 100%
rename from testdata/net/sf/picard/illumina/parserTests/posParser/s_1_2_pos.txt
rename to testdata/picard/illumina/parserTests/posParser/s_1_2_pos.txt
diff --git a/testdata/net/sf/picard/illumina/parserTests/posParser/s_1_3_pos.txt b/testdata/picard/illumina/parserTests/posParser/s_1_3_pos.txt
similarity index 100%
rename from testdata/net/sf/picard/illumina/parserTests/posParser/s_1_3_pos.txt
rename to testdata/picard/illumina/parserTests/posParser/s_1_3_pos.txt
diff --git a/testdata/net/sf/picard/illumina/parserTests/posParser/s_9_3201_pos.txt b/testdata/picard/illumina/parserTests/posParser/s_9_3201_pos.txt
similarity index 100%
rename from testdata/net/sf/picard/illumina/parserTests/posParser/s_9_3201_pos.txt
rename to testdata/picard/illumina/parserTests/posParser/s_9_3201_pos.txt
diff --git a/testdata/net/sf/picard/illumina/parserTests/posParser/s_9_3202_pos.txt b/testdata/picard/illumina/parserTests/posParser/s_9_3202_pos.txt
similarity index 100%
rename from testdata/net/sf/picard/illumina/parserTests/posParser/s_9_3202_pos.txt
rename to testdata/picard/illumina/parserTests/posParser/s_9_3202_pos.txt
diff --git a/testdata/net/sf/picard/illumina/readerTests/bcl_failing.bcl b/testdata/picard/illumina/readerTests/bcl_failing.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/readerTests/bcl_failing.bcl
rename to testdata/picard/illumina/readerTests/bcl_failing.bcl
diff --git a/testdata/net/sf/picard/illumina/readerTests/bcl_failing2.bcl b/testdata/picard/illumina/readerTests/bcl_failing2.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/readerTests/bcl_failing2.bcl
rename to testdata/picard/illumina/readerTests/bcl_failing2.bcl
diff --git a/testdata/net/sf/picard/illumina/readerTests/bcl_passing.bcl b/testdata/picard/illumina/readerTests/bcl_passing.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/readerTests/bcl_passing.bcl
rename to testdata/picard/illumina/readerTests/bcl_passing.bcl
diff --git a/testdata/net/sf/picard/illumina/readerTests/bcl_tooLong.bcl b/testdata/picard/illumina/readerTests/bcl_tooLong.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/readerTests/bcl_tooLong.bcl
rename to testdata/picard/illumina/readerTests/bcl_tooLong.bcl
diff --git a/testdata/net/sf/picard/illumina/readerTests/bcl_tooShort.bcl b/testdata/picard/illumina/readerTests/bcl_tooShort.bcl
similarity index 100%
rename from testdata/net/sf/picard/illumina/readerTests/bcl_tooShort.bcl
rename to testdata/picard/illumina/readerTests/bcl_tooShort.bcl
diff --git a/testdata/net/sf/picard/illumina/readerTests/binary_passing.bin b/testdata/picard/illumina/readerTests/binary_passing.bin
similarity index 100%
rename from testdata/net/sf/picard/illumina/readerTests/binary_passing.bin
rename to testdata/picard/illumina/readerTests/binary_passing.bin
diff --git a/testdata/net/sf/picard/illumina/readerTests/pf_badOpeningBytes.filter b/testdata/picard/illumina/readerTests/pf_badOpeningBytes.filter
similarity index 100%
rename from testdata/net/sf/picard/illumina/readerTests/pf_badOpeningBytes.filter
rename to testdata/picard/illumina/readerTests/pf_badOpeningBytes.filter
diff --git a/testdata/net/sf/picard/illumina/readerTests/pf_badVersionBytes.filter b/testdata/picard/illumina/readerTests/pf_badVersionBytes.filter
similarity index 100%
rename from testdata/net/sf/picard/illumina/readerTests/pf_badVersionBytes.filter
rename to testdata/picard/illumina/readerTests/pf_badVersionBytes.filter
diff --git a/testdata/net/sf/picard/illumina/readerTests/pf_failing1.filter b/testdata/picard/illumina/readerTests/pf_failing1.filter
similarity index 100%
rename from testdata/net/sf/picard/illumina/readerTests/pf_failing1.filter
rename to testdata/picard/illumina/readerTests/pf_failing1.filter
diff --git a/testdata/net/sf/picard/illumina/readerTests/pf_failing2.filter b/testdata/picard/illumina/readerTests/pf_failing2.filter
similarity index 100%
rename from testdata/net/sf/picard/illumina/readerTests/pf_failing2.filter
rename to testdata/picard/illumina/readerTests/pf_failing2.filter
diff --git a/testdata/net/sf/picard/illumina/readerTests/pf_passing.filter b/testdata/picard/illumina/readerTests/pf_passing.filter
similarity index 100%
rename from testdata/net/sf/picard/illumina/readerTests/pf_passing.filter
rename to testdata/picard/illumina/readerTests/pf_passing.filter
diff --git a/testdata/net/sf/picard/illumina/readerTests/pf_tooLarge.filter b/testdata/picard/illumina/readerTests/pf_tooLarge.filter
similarity index 100%
rename from testdata/net/sf/picard/illumina/readerTests/pf_tooLarge.filter
rename to testdata/picard/illumina/readerTests/pf_tooLarge.filter
diff --git a/testdata/net/sf/picard/illumina/readerTests/pf_tooShort.filter b/testdata/picard/illumina/readerTests/pf_tooShort.filter
similarity index 100%
rename from testdata/net/sf/picard/illumina/readerTests/pf_tooShort.filter
rename to testdata/picard/illumina/readerTests/pf_tooShort.filter
diff --git a/testdata/net/sf/picard/illumina/readerTests/pos_failing1_pos.txt b/testdata/picard/illumina/readerTests/pos_failing1_pos.txt
similarity index 100%
rename from testdata/net/sf/picard/illumina/readerTests/pos_failing1_pos.txt
rename to testdata/picard/illumina/readerTests/pos_failing1_pos.txt
diff --git a/testdata/net/sf/picard/illumina/readerTests/s_1_10.locs b/testdata/picard/illumina/readerTests/s_1_10.locs
similarity index 100%
rename from testdata/net/sf/picard/illumina/readerTests/s_1_10.locs
rename to testdata/picard/illumina/readerTests/s_1_10.locs
diff --git a/testdata/net/sf/picard/illumina/readerTests/s_1_1101_pos.txt b/testdata/picard/illumina/readerTests/s_1_1101_pos.txt
similarity index 100%
rename from testdata/net/sf/picard/illumina/readerTests/s_1_1101_pos.txt
rename to testdata/picard/illumina/readerTests/s_1_1101_pos.txt
diff --git a/testdata/net/sf/picard/illumina/readerTests/s_1_1102_pos.txt b/testdata/picard/illumina/readerTests/s_1_1102_pos.txt
similarity index 100%
rename from testdata/net/sf/picard/illumina/readerTests/s_1_1102_pos.txt
rename to testdata/picard/illumina/readerTests/s_1_1102_pos.txt
diff --git a/testdata/net/sf/picard/illumina/readerTests/s_1_1103_pos.txt b/testdata/picard/illumina/readerTests/s_1_1103_pos.txt
similarity index 100%
rename from testdata/net/sf/picard/illumina/readerTests/s_1_1103_pos.txt
rename to testdata/picard/illumina/readerTests/s_1_1103_pos.txt
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/illumina/readerTests/s_1_1104_pos.txt
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/illumina/readerTests/s_1_1104_pos.txt
diff --git a/testdata/net/sf/picard/illumina/readerTests/s_1_2106.clocs b/testdata/picard/illumina/readerTests/s_1_2106.clocs
similarity index 100%
rename from testdata/net/sf/picard/illumina/readerTests/s_1_2106.clocs
rename to testdata/picard/illumina/readerTests/s_1_2106.clocs
diff --git a/testdata/net/sf/picard/illumina/readerTests/s_1_6.locs b/testdata/picard/illumina/readerTests/s_1_6.locs
similarity index 100%
rename from testdata/net/sf/picard/illumina/readerTests/s_1_6.locs
rename to testdata/picard/illumina/readerTests/s_1_6.locs
diff --git a/testdata/net/sf/picard/illumina/readerTests/s_1_7.locs b/testdata/picard/illumina/readerTests/s_1_7.locs
similarity index 100%
rename from testdata/net/sf/picard/illumina/readerTests/s_1_7.locs
rename to testdata/picard/illumina/readerTests/s_1_7.locs
diff --git a/testdata/net/sf/picard/illumina/readerTests/s_1_8.locs b/testdata/picard/illumina/readerTests/s_1_8.locs
similarity index 100%
rename from testdata/net/sf/picard/illumina/readerTests/s_1_8.locs
rename to testdata/picard/illumina/readerTests/s_1_8.locs
diff --git a/testdata/net/sf/picard/illumina/readerTests/s_1_9.locs b/testdata/picard/illumina/readerTests/s_1_9.locs
similarity index 100%
rename from testdata/net/sf/picard/illumina/readerTests/s_1_9.locs
rename to testdata/picard/illumina/readerTests/s_1_9.locs
diff --git a/testdata/net/sf/picard/illumina/readerTests/s_2_1101.clocs b/testdata/picard/illumina/readerTests/s_2_1101.clocs
similarity index 100%
rename from testdata/net/sf/picard/illumina/readerTests/s_2_1101.clocs
rename to testdata/picard/illumina/readerTests/s_2_1101.clocs
diff --git a/testdata/net/sf/picard/illumina/readerTests/s_2_1101_pos.txt b/testdata/picard/illumina/readerTests/s_2_1101_pos.txt
similarity index 100%
rename from testdata/net/sf/picard/illumina/readerTests/s_2_1101_pos.txt
rename to testdata/picard/illumina/readerTests/s_2_1101_pos.txt
diff --git a/testdata/net/sf/picard/illumina/readerTests/s_3_2102.clocs b/testdata/picard/illumina/readerTests/s_3_2102.clocs
similarity index 100%
rename from testdata/net/sf/picard/illumina/readerTests/s_3_2102.clocs
rename to testdata/picard/illumina/readerTests/s_3_2102.clocs
diff --git a/testdata/net/sf/picard/illumina/readerTests/s_3_2103.clocs b/testdata/picard/illumina/readerTests/s_3_2103.clocs
similarity index 100%
rename from testdata/net/sf/picard/illumina/readerTests/s_3_2103.clocs
rename to testdata/picard/illumina/readerTests/s_3_2103.clocs
diff --git a/testdata/net/sf/picard/illumina/readerTests/s_3_2104.clocs b/testdata/picard/illumina/readerTests/s_3_2104.clocs
similarity index 100%
rename from testdata/net/sf/picard/illumina/readerTests/s_3_2104.clocs
rename to testdata/picard/illumina/readerTests/s_3_2104.clocs
diff --git a/testdata/net/sf/picard/illumina/readerTests/s_3_2105.clocs b/testdata/picard/illumina/readerTests/s_3_2105.clocs
similarity index 100%
rename from testdata/net/sf/picard/illumina/readerTests/s_3_2105.clocs
rename to testdata/picard/illumina/readerTests/s_3_2105.clocs
diff --git a/testdata/picard/metrics/chrM.reference.fasta b/testdata/picard/metrics/chrM.reference.fasta
new file mode 100644
index 0000000..020e694
--- /dev/null
+++ b/testdata/picard/metrics/chrM.reference.fasta
@@ -0,0 +1,333 @@
+>chrM
+GATCACAGGTCTATCACCCTATTAACCACTCACGGGAGCTCTCCATGCAT
+TTGGTATTTTCGTCTGGGGGGTGTGCACGCGATAGCATTGCGAGACGCTG
+GAGCCGGAGCACCCTATGTCGCAGTATCTGTCTTTGATTCCTGCCTCATT
+CTATTATTTATCGCACCTACGTTCAATATTACAGGCGAACATACCTACTA
+AAGTGTGTTAATTAATTAATGCTTGTAGGACATAATAATAACAATTGAAT
+GTCTGCACAGCCGCTTTCCACACAGACATCATAACAAAAAATTTCCACCA
+AACCCCCCCCTCCCCCCGCTTCTGGCCACAGCACTTAAACACATCTCTGC
+CAAACCCCAAAAACAAAGAACCCTAACACCAGCCTAACCAGATTTCAAAT
+TTTATCTTTAGGCGGTATGCACTTTTAACAGTCACCCCCCAACTAACACA
+TTATTTTCCCCTCCCACTCCCATACTACTAATCTCATCAATACAACCCCC
+GCCCATCCTACCCAGCACACACACACCGCTGCTAACCCCATACCCCGAAC
+CAACCAAACCCCAAAGACACCCCCCACAGTTTATGTAGCTTACCTCCTCA
+AAGCAATACACTGAAAATGTTTAGACGGGCTCACATCACCCCATAAACAA
+ATAGGTTTGGTCCTAGCCTTTCTATTAGCTCTTAGTAAGATTACACATGC
+AAGCATCCCCGTTCCAGTGAGTTCACCCTCTAAATCACCACGATCAAAAG
+GGACAAGCATCAAGCACGCAGCAATGCAGCTCAAAACGCTTAGCCTAGCC
+ACACCCCCACGGGAAACAGCAGTGATTAACCTTTAGCAATAAACGAAAGT
+TTAACTAAGCTATACTAACCCCAGGGTTGGTCAATTTCGTGCCAGCCACC
+GCGGTCACACGATTAACCCAAGTCAATAGAAGCCGGCGTAAAGAGTGTTT
+TAGATCACCCCCTCCCCAATAAAGCTAAAACTCACCTGAGTTGTAAAAAA
+CTCCAGTTGACACAAAATAGACTACGAAAGTGGCTTTAACATATCTGAAC
+ACACAATAGCTAAGACCCAAACTGGGATTAGATACCCCACTATGCTTAGC
+CCTAAACCTCAACAGTTAAATCAACAAAACTGCTCGCCAGAACACTACGA
+GCCACAGCTTAAAACTCAAAGGACCTGGCGGTGCTTCATATCCCTCTAGA
+GGAGCCTGTTCTGTAATCGATAAACCCCGATCAACCTCACCACCTCTTGC
+TCAGCCTATATACCGCCATCTTCAGCAAACCCTGATGAAGGCTACAAAGT
+AAGCGCAAGTACCCACGTAAAGACGTTAGGTCAAGGTGTAGCCCATGAGG
+TGGCAAGAAATGGGCTACATTTTCTACCCCAGAAAACTACGATAGCCCTT
+ATGAAACTTAAGGGTCGAAGGTGGATTTAGCAGTAAACTGAGAGTAGAGT
+GCTTAGTTGAACAGGGCCCTGAAGCGCGTACACACCGCCCGTCACCCTCC
+TCAAGTATACTTCAAAGGACATTTAACTAAAACCCCTACGCATTTATATA
+GAGGAGACAAGTCGTAACATGGTAAGTGTACTGGAAAGTGCACTTGGACG
+AACCAGAGTGTAGCTTAACACAAAGCACCCAACTTACACTTAGGAGATTT
+CAACTTAACTTGACCGCTCTGAGCTAAACCTAGCCCCAAACCCACTCCAC
+CTTACTACCAGACAACCTTAGCCAAACCATTTACCCAAATAAAGTATAGG
+CGATAGAAATTGAAACCTGGCGCAATAGATATAGTACCGCAAGGGAAAGA
+TGAAAAATTATAACCAAGCATAATATAGCAAGGACTAACCCCTATACCTT
+CTGCATAATGAATTAACTAGAAATAACTTTGCAAGGAGAGCCAAAGCTAA
+GACCCCCGAAACCAGACGAGCTACCTAAGAACAGCTAAAAGAGCACACCC
+GTCTATGTAGCAAAATAGTGGGAAGATTTATAGGTAGAGGCGACAAACCT
+ACCGAGCCTGGTGATAGCTGGTTGTCCAAGATAGAATCTTAGTTCAACTT
+TAAATTTGCCCACAGAACCCTCTAAATCCCCTTGTAAATTTAACTGTTAG
+TCCAAAGAGGAACAGCTCTTTGGACACTAGGAAAAAACCTTGTAGAGAGA
+GTAAAAAATTTAACACCCATAGTAGGCCTAAAAGCAGCCACCAATTAAGA
+AAGCGTTCAAGCTCAACACCCACTACCTAAAAAATCCCAAACATATAACT
+GAACTCCTCACACCCAATTGGACCAATCTATCACCCTATAGAAGAACTAA
+TGTTAGTATAAGTAACATGAAAACATTCTCCTCCGCATAAGCCTGCGTCA
+GATCAAAACACTGAACTGACAATTAACAGCCCAATATCTACAATCAACCA
+ACAAGTCATTATTACCCTCACTGTCAACCCAACACAGGCATGCTCATAAG
+GAAAGGTTAAAAAAAGTAAAAGGAACTCGGCAAACCTTACCCCGCCTGTT
+TACCAAAAACATCACCTCTAGCATCACCAGTATTAGAGGCACCGCCTGCC
+CAGTGACACATGTTTAACGGCCGCGGTACCCTAACCGTGCAaaggtagca
+taatcacttgttccttaaatagggacctgtatgaatggctccacgagggt
+tcagctgtctcttacttttaaccagtgaaattgacctgcccgtgaagagg
+cgggcatgacacagcaagacgagaagaccctatggagctttaatttaTTA
+ATGCAAACAGTACCTAACAAACCCACAGGTCCTAAACTACCAAACCTGCA
+TTAAAAATTTCGGTTGGGGCGACCTCGGAGCAGAACCCAACCTCCGAGCA
+GTACATGCTAAGACTTCACCAGTCAAAGCGAACTACTATACTCAATTGAT
+CCAATAACTTGACCAACGGAACAAGTTACCCTAGGGATAACAGCGCAATC
+CTATTCTAGAGTCCATATCAACAATAGGGTTTACGACCTCGATGTTGGAT
+CAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGA
+TTAAAGTCCTACGTGATCTGAGTTCAGACCGGAGTAATCCAGGTCGGTTT
+CTATCTACTTCAAATTCCTCCCTGTACGAAAGGACAAGAGAAATAAGGCC
+TACTTCACAAAGCGCCTTCCCCCGTAAATGATATCATCTCAACTTAGTAT
+TATACCCACACCCACCCAAGAACAGGGTTTgttaagatggcagagcccgg
+taatcgcataaaacttaaaactttacagtcagaggttcaattcctcttct
+taacaacaTACCCATGGCCAACCTCCTACTCCTCATTGTACCCATTCTAA
+TCGCAATGGCATTCCTAATGCTTACCGAACGAAAAATTCTAGGCTATATA
+CAACTACGCAAAGGCCCCAACGTTGTAGGCCCCTACGGGCTACTACAACC
+CTTCGCTGACGCCATAAAACTCTTCACCAAAGAGCCCCTAAAACCCGCCA
+CATCTACCATCACCCTCTACATCACCGCCCCGACCTTAGCTCTCACCATC
+GCTCTTCTACTATGAACCCCCCTCCCCATACCCAACCCCCTGGTCAACCT
+CAACCTAGGCCTCCTATTTATTCTAGCCACCTCTAGCCTAGCCGTTTACT
+CAATCCTCTGATCAGGGTGAGCATCAAACTCAAACTACGCCCTGATCGGC
+GCACTGCGAGCAGTAGCCCAAACAATCTCATATGAAGTCACCCTAGCCAT
+CATTCTACTATCAACATTACTAATAAGTGGCTCCTTTAACCTCTCCACCC
+TTATCACAACACAAGAACACCTCTGATTACTCCTGCCATCATGACCCTTG
+GCCATAATATGATTTATCTCCACACTAGCAGAGACCAACCGAACCCCCTT
+CGACCTTGCCGAAGGGGAGTCCGAACTAGTCTCAGGCTTCAACATCGAAT
+ACGCCGCAGGCCCCTTCGCCCTATTCTTCATAGCCGAATACACAAACATT
+ATTATAATAAACACCCTCACCACTACAATCTTCCTAGGAACAACATATGA
+CGCACTCTCCCCTGAACTCTACACAACATATTTTGTCACCAAGACCCTAC
+TTCTAACCTCCCTGTTCTTATGAATTCGAACAGCATACCCCCGATTCCGC
+TACGACCAACTCATACACCTCCTATGAAAAAACTTCCTACCACTCACCCT
+AGCATTACTTATATGATATGTCTCCATACCCATTACAATCTCCAGCATTC
+CCCCTCAAACCTAAGAAATATGTCTGATAAAAGAGTTACTTTGATAGAGT
+AAATAATAGGAGCTTAAACCCCCTTATTTctaggactatgagaatcgaac
+ccatccctgagaatccaaaattctccgtgccacctatcacaccccatcct
+aAAGTAAGGTCAGCTAAATAAGCTATCGGGCCCATACCCCGAAAATGTTG
+GTTATACCCTTCCCGTACTAATTAATCCCCTGGCCCAACCCGTCATCTAC
+TCTACCATCTTTGCAGGCACACTCATCACAGCGCTAAGCTCGCACTGATT
+TTTTACCTGAGTAGGCCTAGAAATAAACATGCTAGCTTTTATTCCAGTTC
+TAACCAAAAAAATAAACCCTCGTTCCACAGAAGCTGCCATCAAGTATTTC
+CTCACGCAAGCAACCGCATCCATAATCCTTCTAATAGCTATCCTCTTCAA
+CAATATACTCTCCGGACAATGAACCATAACCAATACTACCAATCAATACT
+CATCATTAATAATCATAATGGCTATAGCAATAAAACTAGGAATAGCCCCC
+TTTCACTTCTGAGTCCCAGAGGTTACCCAAGGCACCCCTCTGACATCCGG
+CCTGCTTCTTCTCACATGACAAAAACTAGCCCCCATCTCAATCATATACC
+AAATCTCTCCCTCACTAAACGTAAGCCTTCTCCTCACTCTCTCAATCTTA
+TCCATCATAGCAGGCAGTTGAGGTGGATTAAACCAAACCCAGCTACGCAA
+AATCTTAGCATACTCCTCAATTACCCACATAGGATGAATAATAGCAGTTC
+TACCGTACAACCCTAACATAACCATTCTTAATTTAACTATTTATATTATC
+CTAACTACTACCGCATTCCTACTACTCAACTTAAACTCCAGCACCACGAC
+CCTACTACTATCTCGCACCTGAAACAAGCTAACATGACTAACACCCTTAA
+TTCCATCCACCCTCCTCTCCCTAGGAGGCCTGCCCCCGCTAACCGGCTTT
+TTGCCCAAATGGGCCATTATCGAAGAATTCACAAAAAACAATAGCCTCAT
+CATCCCCACCATCATAGCCACCATCACCCTCCTTAACCTCTACTTCTACC
+TACGCCTAATCTACTCCACCTCAATCACACTACTCCCCATATCTAACAAC
+GTAAAAATAAAATGACAGTTTGAACATACAAAACCCACCCCATTCCTCCC
+CACACTCATCGCCCTTACCACGCTACTCCTACCTATCTCCCCTTTTATAC
+TAATAATCTTATAGAAATTTAGGTTAAATACAGACCAAGAGCCTTCAAAG
+CCCTCAGTAAGTTGCAATACTTAATTTCTGCAACAGCTAAGGACTGCAAA
+ACCCCACTCTGCATCAACTGAACGCAAATCAGCCACTTTAATTAAGCTAA
+GCCCTTACTAGACCAATGGGACTTAAACCCACAAACACTTAGTTAACAGC
+TAAGCACCCTAATCAACTGGCTTCAATCTACTTCTCCCGCCGCCGGGAAA
+AAAGGCGGGAGAAGCCCCGGCAGGTTTGAAGCTGCTTCTTCGAATTTGCA
+ATTCAATATGAAAATCACCTCGGAGCTGGTAAAAAGAGGCCTAACCCCTG
+TCTTTAGATTTACAGTCCAATGCTTCACTCAGCCATTTTACCTCACCCCC
+ACTGATGTTCGCCGACCGTTGACTATTCTCTACAAACCACAAAGACATTG
+GAACACTATACCTATTATTCGGCGCATGAGCTGGAGTCCTAGGCACAGCT
+CTAAGCCTCCTTATTCGAGCCGAGCTGGGCCAGCCAGGCAACCTTCTAGG
+TAACGACCACATCTACAACGTTATCGTCACAGCCCATGCATTTGTAATAA
+TCTTCTTCATAGTAATACCCATCATAATCGGAGGCTTTGGCAACTGACTA
+GTTCCCCTAATAATCGGTGCCCCCGATATGGCGTTTCCCCGCATAAACAA
+CATAAGCTTCTGACTCTTACCTCCCTCTCTCCTACTCCTGCTCGCATCTG
+CTATAGTGGAGGCCGGAGCAGGAACAGGTTGAACAGTCTACCCTCCCTTA
+GCAGGGAACTACTCCCACCCTGGAGCCTCCGTAGACCTAACCATCTTCTC
+CTTACACCTAGCAGGTGTCTCCTCTATCTTAGGGGCCATCAATTTCATCA
+CAACAATTATCAATATAAAACCCCCTGCCATAACCCAATACCAAACGCCC
+CTCTTCGTCTGATCCGTCCTAATCACAGCAGTCCTACTTCTCCTATCTCT
+CCCAGTCCTAGCTGCTGGCATCACTATACTACTAACAGACCGCAACCTCA
+ACACCACCTTCTTCGACCCCGCCGGAGGAGGAGACCCCATTCTATACCAA
+CACCTATTCTGATTTTTCGGTCACCCTGAAGTTTATATTCTTATCCTACC
+AGGCTTCGGAATAATCTCCCATATTGTAACTTACTACTCCGGAAAAAAAG
+AACCATTTGGATACATAGGTATGGTCTGAGCTATGATATCAATTGGCTTC
+CTAGGGTTTATCGTGTGAGCACACCATATATTTACAGTAGGAATAGACGT
+AGACACACGAGCATATTTCACCTCCGCTACCATAATCATCGCTATCCCCA
+CCGGCGTCAAAGTATTTAGCTGACTCGCCACACTCCACGGAAGCAATATG
+AAATGATCTGCTGCAGTGCTCTGAGCCCTAGGATTCATCTTTCTTTTCAC
+CGTAGGTGGCCTGACTGGCATTGTATTAGCAAACTCATCACTAGACATCG
+TACTACACGACACGTACTACGTTGTAGCTCACTTCCACTATGTCCTATCA
+ATAGGAGCTGTATTTGCCATCATAGGAGGCTTCATTCACTGATTTCCCCT
+ATTCTCAGGCTACACCCTAGACCAAACCTACGCCAAAATCCATTTCACTA
+TCATATTCATCGGCGTAAATCTAACTTTCTTCCCACAACACTTTCTCGGC
+CTATCCGGAATGCCCCGACGTTACTCGGACTACCCCGATGCATACACCAC
+ATGAAACATCCTATCATCTGTAGGCTCATTCATTTCTCTAACAGCAGTAA
+TATTAATAATTTTCATGATTTGAGAAGCCTTCGCTTCGAAGCGAAAAGTC
+CTAATAGTAGAAGAACCCTCCATAAACCTGGAGTGACTATATGGATGCCC
+CCCACCCTACCACACATTCGAAGAACCCGTATACATAAAATCTAGACAaa
+aaaggaaggaatcgaaccccccaaagctggtttcaagccaaccccatggc
+ctccatgactttttcAAAAAGGTATTAGAAAAACCATTTCATAACTTTGT
+CAAAGTTAAATTATAGGCTAAATCCTATATATCTTAATGGCACATGCAGC
+GCAAGTAGGTCTACAAGACGCTACTTCCCCTATCATAGAAGAGCTTATCA
+CCTTTCATGATCACGCCCTCATAATCATTTTCCTTATCTGCTTCCTAGTC
+CTGTATGCCCTTTTCCTAACACTCACAACAAAACTAACTAATACTAACAT
+CTCAGACGCTCAGGAAATAGAAACCGTCTGAACTATCCTGCCCGCCATCA
+TCCTAGTCCTCATCGCCCTCCCATCCCTACGCATCCTTTACATAACAGAC
+GAGGTCAACGATCCCTCCCTTACCATCAAATCAATTGGCCACCAATGGTA
+CTGAACCTACGAGTACACCGACTACGGCGGACTAATCTTCAACTCCTACA
+TACTTCCCCCATTATTCCTAGAACCAGGCGACCTGCGACTCCTTGACGTT
+GACAATCGAGTAGTACTCCCGATTGAAGCCCCCATTCGTATAATAATTAC
+ATCACAAGACGTCTTGCACTCATGAGCTGTCCCCACATTAGGCTTAAAAA
+CAGATGCAATTCCCGGACGTCTAAACCAAACCACTTTCACCGCTACACGA
+CCGGGGGTATACTACGGTCAATGCTCTGAAATCTGTGGAGCAAACCACAG
+TTTCATGCCCATCGTCCTAGAATTAATTCCCCTAAAAATCTTTGAAATAG
+GGCCCGTATTTACCCTATAGCACCCCCTCTACCCCCTCTAGAGCCCACTG
+TAAAGCTAACTTAGCATTAACCTTTTAAGTTAAAGATTAAGAGAACCAAC
+ACCTCTTTACAGTGAAATGCCCCAACTAAATACTACCGTATGGCCCACCA
+TAATTACCCCCATACTCCTTACACTATTCCTCATCACCCAACTAAAAATA
+TTAAACACAAACTACCACCTACCTCCCTCACCAAAGCCCATAAAAATAAA
+AAATTATAACAAACCCTGAGAACCAAAATGAACGAAAATCTGTTCGCTTC
+ATTCATTGCCCCCACAATCCTAGGCCTACCCGCCGCAGTACTGATCATTC
+TATTTCCCCCTCTATTGATCCCCACCTCCAAATATCTCATCAACAACCGA
+CTAATCACCACCCAACAATGACTAATCAAACTAACCTCAAAACAAATGAT
+AGCCATACACAACACTAAAGGACGAACCTGATCTCTTATACTAGTATCCT
+TAATCATTTTTATTGCCACAACTAACCTCCTCGGACTCCTGCCTCACTCA
+TTTACACCAACCACCCAACTATCTATAAACCTAGCCATGGCCATCCCCTT
+ATGAGCGGGCGCAGTGATTATAGGCTTTCGCTCTAAGATTAAAAATGCCC
+TAGCCCACTTCTTACCACAAGGCACACCTACACCCCTTATCCCCATACTA
+GTTATTATCGAAACCATCAGCCTACTCATTCAACCAATAGCCCTGGCCGT
+ACGCCTAACCGCTAACATTACTGCAGGCCACCTACTCATGCACCTAATTG
+GAAGCGCCACCCTAGCAATATCAACCATTAACCTTCCCTCTACACTTATC
+ATCTTCACAATTCTAATTCTACTGACTATCCTAGAAATCGCTGTCGCCTT
+AATCCAAGCCTACGTTTTCACACTTCTAGTAAGCCTCTACCTGCACGACA
+ACACATAATGACCCACCAATCACATGCCTATCATATAGTAAAACCCAGCC
+CATGACCCCTAACAGGGGCCCTCTCAGCCCTCCTAATGACCTCCGGCCTA
+GCCATGTGATTTCACTTCCACTCCATAACGCTCCTCATACTAGGCCTACT
+AACCAACACACTAACCATATACCAATGGTGGCGCGATGTAACACGAGAAA
+GCACATACCAAGGCCACCACACACCACCTGTCCAAAAAGGCCTTCGATAC
+GGGATAATCCTATTTATTACCTCAGAAGTTTTTTTCTTCGCAGGATTTTT
+CTGAGCCTTTTACCACTCCAGCCTAGCCCCTACCCCCCAACTAGGAGGGC
+ACTGGCCCCCAACAGGCATCACCCCGCTAAATCCCCTAGAAGTCCCACTC
+CTAAACACATCCGTATTACTCGCATCAGGAGTATCAATCACCTGAGCTCA
+CCATAGTCTAATAGAAAACAACCGAAACCAAATAATTCAAGCACTGCTTA
+TTACAATTTTACTGGGTCTCTATTTTACCCTCCTACAAGCCTCAGAGTAC
+TTCGAGTCTCCCTTCACCATTTCCGACGGCATCTACGGCTCAACATTTTT
+TGTAGCCACAGGCTTCCACGGACTTCACGTCATTATTGGCTCAACTTTCC
+TCACTATCTGCTTCATCCGCCAACTAATATTTCACTTTACATCCAAACAT
+CACTTTGGCTTCGAAGCCGCCGCCTGATACTGGCATTTTGTAGATGTGGT
+TTGACTATTTCTGTATGTCTCCATCTATTGATGAGGGTCTTACTCTTTTA
+GTATAAATAGTACCGTTAACTTCCAATTAACTAGTTTTGACAACATTCAA
+AAAAGAGTAATAAACTTCGCCTTAATTTTAATAATCAACACCCTCCTAGC
+CTTACTACTAATAATTATTACATTTTGACTACCACAACTCAACGGCTACA
+TAGAAAAATCCACCCCTTACGAGTGCGGCTTCGACCCTATATCCCCCGCC
+CGCGTCCCTTTCTCCATAAAATTCTTCTTAGTAGCTATTACCTTCTTATT
+ATTTGATCTAGAAATTGCCCTCCTTTTACCCCTACCATGAGCCCTACAAA
+CAACTAACCTGCCACTAATAGTTATGTCATCCCTCTTATTAATCATCATC
+CTAGCCCTAAGTCTGGCCTATGAGTGACTACAAAAAGGATTAGACTGAGC
+CGAATTGGTATATAGTTTAAACAAAACGAATGATTTCGACTCATTAAATT
+ATGATAATCATATTTACCAAATGCCCCTCATTTACATAAATATTATACTA
+GCATTTACCATCTCACTTCTAGGAATACTAGTATATCGCTCACACCTCAT
+ATCCTCCCTACTATGCCTAGAAGGAATAATACTATCGCTGTTCATTATAG
+CTACTCTCATAACCCTCAACACCCACTCCCTCTTAGCCAATATTGTGCCT
+ATTGCCATACTAGTCTTTGCCGCCTGCGAAGCAGCGGTGGGCCTAGCCCT
+ACTAGTCTCAATCTCCAACACATATGGCCTAGACTACGTACATAACCTAA
+ACCTACTCCAATGCTAAAACTAATCGTCCCAACAATTATATTACTACCAC
+TGACATGACTTTCCAAAAAGCACATAATTTGAATCAACACAACCACCCAC
+AGCCTAATTATTAGCATCATCCCCCTACTATTTTTTAACCAAATCAACAA
+CAACCTATTTAGCTGTTCCCCAACCTTTTCCTCCGACCCCCTAACAACCC
+CCCTCCTAATACTAACTACCTGACTCCTACCCCTCACAATCATGGCAAGC
+CAACGCCACTTATCCAGCGAACCACTATCACGAAAAAAACTCTACCTCTC
+TATACTAATCTCCCTACAAATCTCCTTAATTATAACATTCACAGCCACAG
+AACTAATCATATTTTATATCTTCTTCGAAACCACACTTATCCCCACCTTG
+GCTATCATCACCCGATGAGGCAACCAGCCAGAACGCCTGAACGCAGGCAC
+ATACTTCCTATTCTACACCCTAGTAGGCTCCCTTCCCCTACTCATCGCAC
+TAATTTACACTCACAACACCCTAGGCTCACTAAACATTCTACTACTCACT
+CTCACTGCCCAAGAACTATCAAACTCCTGAGCCAACAACTTAATATGACT
+AGCTTACACAATAGCTTTTATAGTAAAGATACCTCTTTACGGACTCCACT
+TATGACTCCCTAAAGCCCATGTCGAAGCCCCCATCGCTGGGTCAATAGTA
+CTTGCCGCAGTACTCTTAAAACTAGGCGGCTATGGTATAATACGCCTCAC
+ACTCATTCTCAACCCCCTGACAAAACACATAGCCTACCCCTTCCTTGTAC
+TATCCCTATGAGGCATAATTATAACAAGCTCCATCTGCCTACGACAAACA
+GACCTAAAATCGCTCATTGCATACTCTTCAATCAGCCACATAGCCCTCGT
+AGTAACAGCCATTCTCATCCAAACCCCCTGAAGCTTCACCGGCGCAGTCA
+TTCTCATAATCGCCCACGGACTCACATCCTCATTACTATTCTGCCTAGCA
+AACTCAAACTACGAACGCACTCACAGTCGCATCATAATCCTCTCTCAAGG
+ACTTCAAACTCTACTCCCACTAATAGCTTTTTGATGACTTCTAGCAAGCC
+TCGCTAACCTCGCCTTACCCCCCACTATTAACCTACTGGGAGAACTCTCT
+GTGCTAGTAACCACGTTCTCCTGATCAAATATCACTCTCCTACTTACAGG
+ACTCAACATACTAGTCACAGCCCTATACTCCCTCTACATATTTACCACAA
+CACAATGGGGCTCACTCACCCACCACATTAACAACATAAAACCCTCATTC
+ACACGAGAAAACACCCTCATGTTCATACACCTATCCCCCATTCTCCTCCT
+ATCCCTCAACCCCGACATCATTACCGGGTTTTCCTCTTGTAAATATAGTT
+TAACCAAAACATCAGATTGTGAATCTGACAACAGAGGCTTACGACCCCTT
+ATTTACCGAGAAAGCTCACAAGAACTGCTAACTCATGCCCCCATGTCTAA
+CAACATGGCTTTCTCAACTTTTAAAGGATAACAGCTATCCATTGGTCTTA
+GGCCCCAAAAATTTTGGTGCAACTCCAAATAAAAGTAATAACCATGCACA
+CTACTATAACCACCCTAACCCTGACTTCCCTAATTCCCCCCATCCTTACC
+ACCCTCGTTAACCCTAACAAAAAAAACTCATACCCCCATTATGTAAAATC
+CATTGTCGCATCCACCTTTATTATCAGTCTCTTCCCCACAACAATATTCA
+TGTGCCTAGACCAAGAAGTTATTATCTCGAACTGACACTGAGCCACAACC
+CAAACAACCCAGCTCTCCCTAAGCTTCAAACTAGACTACTTCTCCATAAT
+ATTCATCCCTGTAGCATTGTTCGTTACATGGTCCATCATAGAATTCTCAC
+TGTGATATATAAACTCAGACCCAAACATTAATCAGTTCTTCAAATATCTA
+CTCATTTTCCTAATTACCATACTAATCTTAGTTACCGCTAACAACCTATT
+CCAACTGTTCATCGGCTGAGAGGGCGTAGGAATTATATCCTTCTTGCTCA
+TCAGTTGATGATACGCCCGAGCAGATGCCAACACAGCAGCCATTCAAGCA
+GTCCTATACAACCGTATCGGCGATATCGGTTTCATCCTCGCCTTAGCATG
+ATTTATCCTACACTCCAACTCATGAGACCCACAACAAATAGCCCTTCTAA
+ACGCTAATCCAAGCCTCACCCCACTACTAGGCCTCCTCCTAGCAGCAGCA
+GGCAAATCAGCCCAATTAGGTCTCCACCCCTGACTCCCCTCAGCCATAGA
+AGGCCCCACCCCAGTCTCAGCCCTACTCCACTCAAGCACTATAGTTGTAG
+CAGGAATCTTCTTACTCATCCGCTTCCACCCCCTAGCAGAAAATAGCCCA
+CTAATCCAAACTCTAACACTATGCTTAGGCGCTATCACCACTCTGTTCGC
+AGCAGTCTGCGCCCTTACACAAAATGACATCAAAAAAATCGTAGCCTTCT
+CCACTTCAAGTCAACTAGGACTCATAATAGTTACAATCGGCATCAACCAA
+CCACACCTAGCATTCCTGCACATCTGTACCCACGCCTTCTTCAAAGCCAT
+ACTATTTATGTGCTCCGGGTCCATCATCCACAACCTTAACAATGAACAAG
+ATATTCGAAAAATAGGAGGACTACTCAAAACCATACCTCTCACTTCAACC
+TCCCTCACCATTGGCAGCCTAGCATTAGCAGGAATACCTTTCCTCACAGG
+TTTCTACTCCAAAGACCACATCATCGAAACCGCAAACATATCATACACAA
+ACGCCTGAGCCCTATCTATTACTCTCATCGCTACCTCCCTGACAAGCGCC
+TATAGCACTCGAATAATTCTTCTCACCCTAACAGGTCAACCTCGCTTCCC
+CACCCTTACTAACATTAACGAAAATAACCCCACCCTACTAAACCCCATTA
+AACGCCTGGCAGCCGGAAGCCTATTCGCAGGATTTCTCATTACTAACAAC
+ATTTCCCCCGCATCCCCCTTCCAAACAACAATCCCCCTCTACCTAAAACT
+CACAGCCCTCGCTGTCACTTTCCTAGGACTTCTAACAGCCCTAGACCTCA
+ACTACCTAACCAACAAACTTAAAATAAAATCCCCACTATGCACATTTTAT
+TTCTCCAACATACTCGGATTCTACCCTAGCATCACACACCGCACAATCCC
+CTATCTAGGCCTTCTTACGAGCCAAAACCTGCCCCTACTCCTCCTAGACC
+TAACCTGACTAGAAAAGCTATTACCTAAAACAATTTCACAGCACCAAATC
+TCCACCTCCATCATCACCTCAACCCAAAAAGGCATAATTAAACTTTACTT
+CCTCTCTTTCTTCTTCCCACTCATCCTAACCCTACTCCTAATCACATAAC
+CTATTCCCCCGAGCAATCTCAATTACAATATATACACCAACAAACAATGT
+TCAACCAGTAACCACTACTAATCAACGCCCATAATCATACAAAGCCCCCG
+CACCAATAGGATCCTCCCGAATCAACCCTGACCCCTCTCCTTCATAAATT
+ATTCAGCTTCCTACACTATTAAAGTTTACCACAACCACCACCCCATCATA
+CTCTTTCACCCACAGCACCAATCCTACCTCCATCGCTAACCCCACTAAAA
+CACTCACCAAGACCTCAACCCCTGACCCCCATGCCTCAGGATACTCCTCA
+ATAGCCATCGCTGTAGTATATCCAAAGACAACCATCATTCCCCCTAAATA
+AATTAAAAAAACTATTAAACCCATATAACCTCCCCCAAAATTCAGAATAA
+TAACACACCCGACCACACCGCTAACAATCAGTACTAAACCCCCATAAATA
+GGAGAAGGCTTAGAAGAAAACCCCACAAACCCCATTACTAAACCCACACT
+CAACAGAAACAAAGCATACATCATTATTCTCGCACGGACTACAACCACGA
+CCAATGATATGAAAAACCATCGTTGTATTTCAACTACAAGAACACCAATG
+ACCCCAATACGCAAAATTAACCCCCTAATAAAATTAATTAACCACTCATT
+CATCGACCTCCCCACCCCATCCAACATCTCCGCATGATGAAACTTCGGCT
+CACTCCTTGGCGCCTGCCTGATCCTCCAAATCACCACAGGACTATTCCTA
+GCCATACACTACTCACCAGACGCCTCAACCGCCTTTTCATCAATCGCCCA
+CATCACTCGAGACGTAAATTATGGCTGAATCATCCGCTACCTTCACGCCA
+ATGGCGCCTCAATATTCTTTATCTGCCTCTTCCTACACATCGGGCGAGGC
+CTATATTACGGATCATTTCTCTACTCAGAAACCTGAAACATCGGCATTAT
+CCTCCTGCTTGCAACTATAGCAACAGCCTTCATAGGCTATGTCCTCCCGT
+GAGGCCAAATATCATTCTGAGGGGCCACAGTAATTACAAACTTACTATCC
+GCCATCCCATACATTGGGACAGACCTAGTTCAATGAATCTGAGGAGGCTA
+CTCAGTAGACAGTCCCACCCTCACACGATTCTTTACCTTTCACTTCATCT
+TACCCTTCATTATTGCAGCCCTAGCAGCACTCCACCTCCTATTCTTGCAC
+GAAACGGGATCAAACAACCCCCTAGGAATCACCTCCCATTCCGATAAAAT
+CACCTTCCACCCTTACTACACAATCAAAGACGCCCTCGGCTTACTTCTCT
+TCCTTCTCTCCTTAATGACATTAACACTATTCTCACCAGACCTCCTAGGC
+GACCCAGACAATTATACCCTAGCCAACCCCTTAAACACCCCTCCCCACAT
+CAAGCCCGAATGATATTTCCTATTCGCCTACACAATTCTCCGATCCGTCC
+CTAACAAACTAGGAGGCGTCCTTGCCCTATTACTATCCATCCTCATCCTA
+GCAATAATCCCCATCCTCCATATATCCAAACAACAAAGCATAATATTTCG
+CCCACTAAGCCAATCACTTTATTGACTCCTAGCCGCAGACCTCCTCATTC
+TAACCTGAATCGGAGGACAACCAGTAAGCTACCCTTTTACCATCATTGGA
+CAAGTAGCATCCGTACTATACTTCACAACAATCCTAATCCTAATACCAAC
+TATCTCCCTAATTGAAAACAAAATACTCAAATGGGCCTGTCCTTGTAGTA
+TAAACTAATACACCAGTCTTGTAAACCGGAGACGAAAACCTTTTTCCAAG
+GACAAATCAGAGAAAAAGTCTTTAACTCCACCATTAGCACCCAAAGCTAA
+GATTCTAATTTAAACTATTCTCTGTTCTTTCATGGGGAAGCAGATTTGGG
+TACCACCCAAGTATTGACTCACCCATCAACAACCGCTATGTATTTCGTAC
+ATTACTGCCAGCCACCATGAATATTGTACGGTACCATAAATACTTGACCA
+CCTGTAGTACATAAAAACCCAACCCACATCAAACCCCCCCCCCCCATGCT
+TACAAGCAAGTACAGCAATCAACCTTCAACTATCACACATCAACTGCAAC
+TCCAAAGCCACCCCTCACCCACTAGGATACCAACAAACCTACCCACCCTT
+AACAGTACATAGTACATAAAGTCATTTACCGTACATAGCACATTACAGTC
+AAATCCCTTCTCGTCCCCATGGATGACCCCCCTCAGATAGGGGTCCCTTG
+ACCACCATCCTCCGTGAAATCAATATCCCGCACAAGAGTGCTACTCTCCT
+CGCTCCGGGCCCATAACACTTGGGGGTAGCTAAAGTGAACTGTATCCGAC
+ATCTGGTTCCTACTTCAGGGCCATAAAGCCTAAATAGCCCACACGTTCCC
+CTTAAATAAGACATCACGATG
diff --git a/testdata/picard/metrics/chrMReads.sam b/testdata/picard/metrics/chrMReads.sam
new file mode 100644
index 0000000..1a94f52
--- /dev/null
+++ b/testdata/picard/metrics/chrMReads.sam
@@ -0,0 +1,8 @@
+ at HD	VN:1.0	SO:coordinate
+ at SQ	SN:chrM	LN:16299	AS:mm9	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	M5:11c8af2a2528b25f2c080ab7da42edda	SP:Mus musculus
+ at RG	ID:62A40.2	PL:illumina	PU:62A40AAXX101028.2	LB:Solexa-45345	DT:2010-10-28T00:00:00-0400	SM:RRBS885	CN:BI
+62A40AAXX101028:2:70:17903:4536	512	chrM	54	0	36M	*	0	0	GTATTTTTGTCTGGGGGGTGTGTACGCGATAGTATT	IIIIIIII#IIIIIIIIIIIIG#IIIIIIIIII#II	RG:Z:62A40.2	ZL:i:135	NM:i:9	ZP:i:1	UQ:i:18
+62A40AAXX101028:2:52:4674:15453	512	chrM	6113	0	2M	*	0	0	TG	=3	RG:Z:62A40.2	ZL:i:164	NM:i:3	ZP:i:6113	UQ:i:84
+62A40AAXX101028:2:90:10278:1575	1024	chrM	6275	0	36M	*	0	0	TAGGTTGAATAGTTTATTTTTTTTTAGCAGGGAACT	IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIHIIIII	RG:Z:62A40.2	ZL:i:116	NM:i:5	ZP:i:6275	UQ:i:199
+62A40AAXX101028:2:93:3981:7576	1024	chrM	6275	0	36M	*	0	0	CGGCGTTAAAGTATTTAGTTGATTCGTTATATTTTA	IIIIIIIIIIIHIIIIIIIIIIIIFIIII at HIIIIG	RG:Z:62A40.2	ZL:i:116	NM:i:5	ZP:i:6275	UQ:i:196
+62A40AAXX101028:2:70:17903:4536	512	chrM	54	0	36M	*	0	0	GTATTTTTGTCTGGGGGGTGTGTACGCGATAGTATT	IIIIIIIIHIIIIIIIIIIIIGIIIIIIIIIIIIII	RG:Z:62A40.2	ZL:i:135	NM:i:9	ZP:i:1	UQ:i:18
diff --git a/testdata/picard/quality/chrM.part.intervallist b/testdata/picard/quality/chrM.part.intervallist
new file mode 100644
index 0000000..86ac9ca
--- /dev/null
+++ b/testdata/picard/quality/chrM.part.intervallist
@@ -0,0 +1,5 @@
+ at HD	VN:1.0	SO:coordinate
+ at SQ	SN:chrM	LN:16299	AS:mm9	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	M5:11c8af2a2528b25f2c080ab7da42edda	SP:Mus	musculus
+chrM	1	1000	+	interval-1
+chrM	2001	3000	+	interval-2
+
diff --git a/testdata/picard/quality/chrM.reference.fasta b/testdata/picard/quality/chrM.reference.fasta
new file mode 100644
index 0000000..020e694
--- /dev/null
+++ b/testdata/picard/quality/chrM.reference.fasta
@@ -0,0 +1,333 @@
+>chrM
+GATCACAGGTCTATCACCCTATTAACCACTCACGGGAGCTCTCCATGCAT
+TTGGTATTTTCGTCTGGGGGGTGTGCACGCGATAGCATTGCGAGACGCTG
+GAGCCGGAGCACCCTATGTCGCAGTATCTGTCTTTGATTCCTGCCTCATT
+CTATTATTTATCGCACCTACGTTCAATATTACAGGCGAACATACCTACTA
+AAGTGTGTTAATTAATTAATGCTTGTAGGACATAATAATAACAATTGAAT
+GTCTGCACAGCCGCTTTCCACACAGACATCATAACAAAAAATTTCCACCA
+AACCCCCCCCTCCCCCCGCTTCTGGCCACAGCACTTAAACACATCTCTGC
+CAAACCCCAAAAACAAAGAACCCTAACACCAGCCTAACCAGATTTCAAAT
+TTTATCTTTAGGCGGTATGCACTTTTAACAGTCACCCCCCAACTAACACA
+TTATTTTCCCCTCCCACTCCCATACTACTAATCTCATCAATACAACCCCC
+GCCCATCCTACCCAGCACACACACACCGCTGCTAACCCCATACCCCGAAC
+CAACCAAACCCCAAAGACACCCCCCACAGTTTATGTAGCTTACCTCCTCA
+AAGCAATACACTGAAAATGTTTAGACGGGCTCACATCACCCCATAAACAA
+ATAGGTTTGGTCCTAGCCTTTCTATTAGCTCTTAGTAAGATTACACATGC
+AAGCATCCCCGTTCCAGTGAGTTCACCCTCTAAATCACCACGATCAAAAG
+GGACAAGCATCAAGCACGCAGCAATGCAGCTCAAAACGCTTAGCCTAGCC
+ACACCCCCACGGGAAACAGCAGTGATTAACCTTTAGCAATAAACGAAAGT
+TTAACTAAGCTATACTAACCCCAGGGTTGGTCAATTTCGTGCCAGCCACC
+GCGGTCACACGATTAACCCAAGTCAATAGAAGCCGGCGTAAAGAGTGTTT
+TAGATCACCCCCTCCCCAATAAAGCTAAAACTCACCTGAGTTGTAAAAAA
+CTCCAGTTGACACAAAATAGACTACGAAAGTGGCTTTAACATATCTGAAC
+ACACAATAGCTAAGACCCAAACTGGGATTAGATACCCCACTATGCTTAGC
+CCTAAACCTCAACAGTTAAATCAACAAAACTGCTCGCCAGAACACTACGA
+GCCACAGCTTAAAACTCAAAGGACCTGGCGGTGCTTCATATCCCTCTAGA
+GGAGCCTGTTCTGTAATCGATAAACCCCGATCAACCTCACCACCTCTTGC
+TCAGCCTATATACCGCCATCTTCAGCAAACCCTGATGAAGGCTACAAAGT
+AAGCGCAAGTACCCACGTAAAGACGTTAGGTCAAGGTGTAGCCCATGAGG
+TGGCAAGAAATGGGCTACATTTTCTACCCCAGAAAACTACGATAGCCCTT
+ATGAAACTTAAGGGTCGAAGGTGGATTTAGCAGTAAACTGAGAGTAGAGT
+GCTTAGTTGAACAGGGCCCTGAAGCGCGTACACACCGCCCGTCACCCTCC
+TCAAGTATACTTCAAAGGACATTTAACTAAAACCCCTACGCATTTATATA
+GAGGAGACAAGTCGTAACATGGTAAGTGTACTGGAAAGTGCACTTGGACG
+AACCAGAGTGTAGCTTAACACAAAGCACCCAACTTACACTTAGGAGATTT
+CAACTTAACTTGACCGCTCTGAGCTAAACCTAGCCCCAAACCCACTCCAC
+CTTACTACCAGACAACCTTAGCCAAACCATTTACCCAAATAAAGTATAGG
+CGATAGAAATTGAAACCTGGCGCAATAGATATAGTACCGCAAGGGAAAGA
+TGAAAAATTATAACCAAGCATAATATAGCAAGGACTAACCCCTATACCTT
+CTGCATAATGAATTAACTAGAAATAACTTTGCAAGGAGAGCCAAAGCTAA
+GACCCCCGAAACCAGACGAGCTACCTAAGAACAGCTAAAAGAGCACACCC
+GTCTATGTAGCAAAATAGTGGGAAGATTTATAGGTAGAGGCGACAAACCT
+ACCGAGCCTGGTGATAGCTGGTTGTCCAAGATAGAATCTTAGTTCAACTT
+TAAATTTGCCCACAGAACCCTCTAAATCCCCTTGTAAATTTAACTGTTAG
+TCCAAAGAGGAACAGCTCTTTGGACACTAGGAAAAAACCTTGTAGAGAGA
+GTAAAAAATTTAACACCCATAGTAGGCCTAAAAGCAGCCACCAATTAAGA
+AAGCGTTCAAGCTCAACACCCACTACCTAAAAAATCCCAAACATATAACT
+GAACTCCTCACACCCAATTGGACCAATCTATCACCCTATAGAAGAACTAA
+TGTTAGTATAAGTAACATGAAAACATTCTCCTCCGCATAAGCCTGCGTCA
+GATCAAAACACTGAACTGACAATTAACAGCCCAATATCTACAATCAACCA
+ACAAGTCATTATTACCCTCACTGTCAACCCAACACAGGCATGCTCATAAG
+GAAAGGTTAAAAAAAGTAAAAGGAACTCGGCAAACCTTACCCCGCCTGTT
+TACCAAAAACATCACCTCTAGCATCACCAGTATTAGAGGCACCGCCTGCC
+CAGTGACACATGTTTAACGGCCGCGGTACCCTAACCGTGCAaaggtagca
+taatcacttgttccttaaatagggacctgtatgaatggctccacgagggt
+tcagctgtctcttacttttaaccagtgaaattgacctgcccgtgaagagg
+cgggcatgacacagcaagacgagaagaccctatggagctttaatttaTTA
+ATGCAAACAGTACCTAACAAACCCACAGGTCCTAAACTACCAAACCTGCA
+TTAAAAATTTCGGTTGGGGCGACCTCGGAGCAGAACCCAACCTCCGAGCA
+GTACATGCTAAGACTTCACCAGTCAAAGCGAACTACTATACTCAATTGAT
+CCAATAACTTGACCAACGGAACAAGTTACCCTAGGGATAACAGCGCAATC
+CTATTCTAGAGTCCATATCAACAATAGGGTTTACGACCTCGATGTTGGAT
+CAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGA
+TTAAAGTCCTACGTGATCTGAGTTCAGACCGGAGTAATCCAGGTCGGTTT
+CTATCTACTTCAAATTCCTCCCTGTACGAAAGGACAAGAGAAATAAGGCC
+TACTTCACAAAGCGCCTTCCCCCGTAAATGATATCATCTCAACTTAGTAT
+TATACCCACACCCACCCAAGAACAGGGTTTgttaagatggcagagcccgg
+taatcgcataaaacttaaaactttacagtcagaggttcaattcctcttct
+taacaacaTACCCATGGCCAACCTCCTACTCCTCATTGTACCCATTCTAA
+TCGCAATGGCATTCCTAATGCTTACCGAACGAAAAATTCTAGGCTATATA
+CAACTACGCAAAGGCCCCAACGTTGTAGGCCCCTACGGGCTACTACAACC
+CTTCGCTGACGCCATAAAACTCTTCACCAAAGAGCCCCTAAAACCCGCCA
+CATCTACCATCACCCTCTACATCACCGCCCCGACCTTAGCTCTCACCATC
+GCTCTTCTACTATGAACCCCCCTCCCCATACCCAACCCCCTGGTCAACCT
+CAACCTAGGCCTCCTATTTATTCTAGCCACCTCTAGCCTAGCCGTTTACT
+CAATCCTCTGATCAGGGTGAGCATCAAACTCAAACTACGCCCTGATCGGC
+GCACTGCGAGCAGTAGCCCAAACAATCTCATATGAAGTCACCCTAGCCAT
+CATTCTACTATCAACATTACTAATAAGTGGCTCCTTTAACCTCTCCACCC
+TTATCACAACACAAGAACACCTCTGATTACTCCTGCCATCATGACCCTTG
+GCCATAATATGATTTATCTCCACACTAGCAGAGACCAACCGAACCCCCTT
+CGACCTTGCCGAAGGGGAGTCCGAACTAGTCTCAGGCTTCAACATCGAAT
+ACGCCGCAGGCCCCTTCGCCCTATTCTTCATAGCCGAATACACAAACATT
+ATTATAATAAACACCCTCACCACTACAATCTTCCTAGGAACAACATATGA
+CGCACTCTCCCCTGAACTCTACACAACATATTTTGTCACCAAGACCCTAC
+TTCTAACCTCCCTGTTCTTATGAATTCGAACAGCATACCCCCGATTCCGC
+TACGACCAACTCATACACCTCCTATGAAAAAACTTCCTACCACTCACCCT
+AGCATTACTTATATGATATGTCTCCATACCCATTACAATCTCCAGCATTC
+CCCCTCAAACCTAAGAAATATGTCTGATAAAAGAGTTACTTTGATAGAGT
+AAATAATAGGAGCTTAAACCCCCTTATTTctaggactatgagaatcgaac
+ccatccctgagaatccaaaattctccgtgccacctatcacaccccatcct
+aAAGTAAGGTCAGCTAAATAAGCTATCGGGCCCATACCCCGAAAATGTTG
+GTTATACCCTTCCCGTACTAATTAATCCCCTGGCCCAACCCGTCATCTAC
+TCTACCATCTTTGCAGGCACACTCATCACAGCGCTAAGCTCGCACTGATT
+TTTTACCTGAGTAGGCCTAGAAATAAACATGCTAGCTTTTATTCCAGTTC
+TAACCAAAAAAATAAACCCTCGTTCCACAGAAGCTGCCATCAAGTATTTC
+CTCACGCAAGCAACCGCATCCATAATCCTTCTAATAGCTATCCTCTTCAA
+CAATATACTCTCCGGACAATGAACCATAACCAATACTACCAATCAATACT
+CATCATTAATAATCATAATGGCTATAGCAATAAAACTAGGAATAGCCCCC
+TTTCACTTCTGAGTCCCAGAGGTTACCCAAGGCACCCCTCTGACATCCGG
+CCTGCTTCTTCTCACATGACAAAAACTAGCCCCCATCTCAATCATATACC
+AAATCTCTCCCTCACTAAACGTAAGCCTTCTCCTCACTCTCTCAATCTTA
+TCCATCATAGCAGGCAGTTGAGGTGGATTAAACCAAACCCAGCTACGCAA
+AATCTTAGCATACTCCTCAATTACCCACATAGGATGAATAATAGCAGTTC
+TACCGTACAACCCTAACATAACCATTCTTAATTTAACTATTTATATTATC
+CTAACTACTACCGCATTCCTACTACTCAACTTAAACTCCAGCACCACGAC
+CCTACTACTATCTCGCACCTGAAACAAGCTAACATGACTAACACCCTTAA
+TTCCATCCACCCTCCTCTCCCTAGGAGGCCTGCCCCCGCTAACCGGCTTT
+TTGCCCAAATGGGCCATTATCGAAGAATTCACAAAAAACAATAGCCTCAT
+CATCCCCACCATCATAGCCACCATCACCCTCCTTAACCTCTACTTCTACC
+TACGCCTAATCTACTCCACCTCAATCACACTACTCCCCATATCTAACAAC
+GTAAAAATAAAATGACAGTTTGAACATACAAAACCCACCCCATTCCTCCC
+CACACTCATCGCCCTTACCACGCTACTCCTACCTATCTCCCCTTTTATAC
+TAATAATCTTATAGAAATTTAGGTTAAATACAGACCAAGAGCCTTCAAAG
+CCCTCAGTAAGTTGCAATACTTAATTTCTGCAACAGCTAAGGACTGCAAA
+ACCCCACTCTGCATCAACTGAACGCAAATCAGCCACTTTAATTAAGCTAA
+GCCCTTACTAGACCAATGGGACTTAAACCCACAAACACTTAGTTAACAGC
+TAAGCACCCTAATCAACTGGCTTCAATCTACTTCTCCCGCCGCCGGGAAA
+AAAGGCGGGAGAAGCCCCGGCAGGTTTGAAGCTGCTTCTTCGAATTTGCA
+ATTCAATATGAAAATCACCTCGGAGCTGGTAAAAAGAGGCCTAACCCCTG
+TCTTTAGATTTACAGTCCAATGCTTCACTCAGCCATTTTACCTCACCCCC
+ACTGATGTTCGCCGACCGTTGACTATTCTCTACAAACCACAAAGACATTG
+GAACACTATACCTATTATTCGGCGCATGAGCTGGAGTCCTAGGCACAGCT
+CTAAGCCTCCTTATTCGAGCCGAGCTGGGCCAGCCAGGCAACCTTCTAGG
+TAACGACCACATCTACAACGTTATCGTCACAGCCCATGCATTTGTAATAA
+TCTTCTTCATAGTAATACCCATCATAATCGGAGGCTTTGGCAACTGACTA
+GTTCCCCTAATAATCGGTGCCCCCGATATGGCGTTTCCCCGCATAAACAA
+CATAAGCTTCTGACTCTTACCTCCCTCTCTCCTACTCCTGCTCGCATCTG
+CTATAGTGGAGGCCGGAGCAGGAACAGGTTGAACAGTCTACCCTCCCTTA
+GCAGGGAACTACTCCCACCCTGGAGCCTCCGTAGACCTAACCATCTTCTC
+CTTACACCTAGCAGGTGTCTCCTCTATCTTAGGGGCCATCAATTTCATCA
+CAACAATTATCAATATAAAACCCCCTGCCATAACCCAATACCAAACGCCC
+CTCTTCGTCTGATCCGTCCTAATCACAGCAGTCCTACTTCTCCTATCTCT
+CCCAGTCCTAGCTGCTGGCATCACTATACTACTAACAGACCGCAACCTCA
+ACACCACCTTCTTCGACCCCGCCGGAGGAGGAGACCCCATTCTATACCAA
+CACCTATTCTGATTTTTCGGTCACCCTGAAGTTTATATTCTTATCCTACC
+AGGCTTCGGAATAATCTCCCATATTGTAACTTACTACTCCGGAAAAAAAG
+AACCATTTGGATACATAGGTATGGTCTGAGCTATGATATCAATTGGCTTC
+CTAGGGTTTATCGTGTGAGCACACCATATATTTACAGTAGGAATAGACGT
+AGACACACGAGCATATTTCACCTCCGCTACCATAATCATCGCTATCCCCA
+CCGGCGTCAAAGTATTTAGCTGACTCGCCACACTCCACGGAAGCAATATG
+AAATGATCTGCTGCAGTGCTCTGAGCCCTAGGATTCATCTTTCTTTTCAC
+CGTAGGTGGCCTGACTGGCATTGTATTAGCAAACTCATCACTAGACATCG
+TACTACACGACACGTACTACGTTGTAGCTCACTTCCACTATGTCCTATCA
+ATAGGAGCTGTATTTGCCATCATAGGAGGCTTCATTCACTGATTTCCCCT
+ATTCTCAGGCTACACCCTAGACCAAACCTACGCCAAAATCCATTTCACTA
+TCATATTCATCGGCGTAAATCTAACTTTCTTCCCACAACACTTTCTCGGC
+CTATCCGGAATGCCCCGACGTTACTCGGACTACCCCGATGCATACACCAC
+ATGAAACATCCTATCATCTGTAGGCTCATTCATTTCTCTAACAGCAGTAA
+TATTAATAATTTTCATGATTTGAGAAGCCTTCGCTTCGAAGCGAAAAGTC
+CTAATAGTAGAAGAACCCTCCATAAACCTGGAGTGACTATATGGATGCCC
+CCCACCCTACCACACATTCGAAGAACCCGTATACATAAAATCTAGACAaa
+aaaggaaggaatcgaaccccccaaagctggtttcaagccaaccccatggc
+ctccatgactttttcAAAAAGGTATTAGAAAAACCATTTCATAACTTTGT
+CAAAGTTAAATTATAGGCTAAATCCTATATATCTTAATGGCACATGCAGC
+GCAAGTAGGTCTACAAGACGCTACTTCCCCTATCATAGAAGAGCTTATCA
+CCTTTCATGATCACGCCCTCATAATCATTTTCCTTATCTGCTTCCTAGTC
+CTGTATGCCCTTTTCCTAACACTCACAACAAAACTAACTAATACTAACAT
+CTCAGACGCTCAGGAAATAGAAACCGTCTGAACTATCCTGCCCGCCATCA
+TCCTAGTCCTCATCGCCCTCCCATCCCTACGCATCCTTTACATAACAGAC
+GAGGTCAACGATCCCTCCCTTACCATCAAATCAATTGGCCACCAATGGTA
+CTGAACCTACGAGTACACCGACTACGGCGGACTAATCTTCAACTCCTACA
+TACTTCCCCCATTATTCCTAGAACCAGGCGACCTGCGACTCCTTGACGTT
+GACAATCGAGTAGTACTCCCGATTGAAGCCCCCATTCGTATAATAATTAC
+ATCACAAGACGTCTTGCACTCATGAGCTGTCCCCACATTAGGCTTAAAAA
+CAGATGCAATTCCCGGACGTCTAAACCAAACCACTTTCACCGCTACACGA
+CCGGGGGTATACTACGGTCAATGCTCTGAAATCTGTGGAGCAAACCACAG
+TTTCATGCCCATCGTCCTAGAATTAATTCCCCTAAAAATCTTTGAAATAG
+GGCCCGTATTTACCCTATAGCACCCCCTCTACCCCCTCTAGAGCCCACTG
+TAAAGCTAACTTAGCATTAACCTTTTAAGTTAAAGATTAAGAGAACCAAC
+ACCTCTTTACAGTGAAATGCCCCAACTAAATACTACCGTATGGCCCACCA
+TAATTACCCCCATACTCCTTACACTATTCCTCATCACCCAACTAAAAATA
+TTAAACACAAACTACCACCTACCTCCCTCACCAAAGCCCATAAAAATAAA
+AAATTATAACAAACCCTGAGAACCAAAATGAACGAAAATCTGTTCGCTTC
+ATTCATTGCCCCCACAATCCTAGGCCTACCCGCCGCAGTACTGATCATTC
+TATTTCCCCCTCTATTGATCCCCACCTCCAAATATCTCATCAACAACCGA
+CTAATCACCACCCAACAATGACTAATCAAACTAACCTCAAAACAAATGAT
+AGCCATACACAACACTAAAGGACGAACCTGATCTCTTATACTAGTATCCT
+TAATCATTTTTATTGCCACAACTAACCTCCTCGGACTCCTGCCTCACTCA
+TTTACACCAACCACCCAACTATCTATAAACCTAGCCATGGCCATCCCCTT
+ATGAGCGGGCGCAGTGATTATAGGCTTTCGCTCTAAGATTAAAAATGCCC
+TAGCCCACTTCTTACCACAAGGCACACCTACACCCCTTATCCCCATACTA
+GTTATTATCGAAACCATCAGCCTACTCATTCAACCAATAGCCCTGGCCGT
+ACGCCTAACCGCTAACATTACTGCAGGCCACCTACTCATGCACCTAATTG
+GAAGCGCCACCCTAGCAATATCAACCATTAACCTTCCCTCTACACTTATC
+ATCTTCACAATTCTAATTCTACTGACTATCCTAGAAATCGCTGTCGCCTT
+AATCCAAGCCTACGTTTTCACACTTCTAGTAAGCCTCTACCTGCACGACA
+ACACATAATGACCCACCAATCACATGCCTATCATATAGTAAAACCCAGCC
+CATGACCCCTAACAGGGGCCCTCTCAGCCCTCCTAATGACCTCCGGCCTA
+GCCATGTGATTTCACTTCCACTCCATAACGCTCCTCATACTAGGCCTACT
+AACCAACACACTAACCATATACCAATGGTGGCGCGATGTAACACGAGAAA
+GCACATACCAAGGCCACCACACACCACCTGTCCAAAAAGGCCTTCGATAC
+GGGATAATCCTATTTATTACCTCAGAAGTTTTTTTCTTCGCAGGATTTTT
+CTGAGCCTTTTACCACTCCAGCCTAGCCCCTACCCCCCAACTAGGAGGGC
+ACTGGCCCCCAACAGGCATCACCCCGCTAAATCCCCTAGAAGTCCCACTC
+CTAAACACATCCGTATTACTCGCATCAGGAGTATCAATCACCTGAGCTCA
+CCATAGTCTAATAGAAAACAACCGAAACCAAATAATTCAAGCACTGCTTA
+TTACAATTTTACTGGGTCTCTATTTTACCCTCCTACAAGCCTCAGAGTAC
+TTCGAGTCTCCCTTCACCATTTCCGACGGCATCTACGGCTCAACATTTTT
+TGTAGCCACAGGCTTCCACGGACTTCACGTCATTATTGGCTCAACTTTCC
+TCACTATCTGCTTCATCCGCCAACTAATATTTCACTTTACATCCAAACAT
+CACTTTGGCTTCGAAGCCGCCGCCTGATACTGGCATTTTGTAGATGTGGT
+TTGACTATTTCTGTATGTCTCCATCTATTGATGAGGGTCTTACTCTTTTA
+GTATAAATAGTACCGTTAACTTCCAATTAACTAGTTTTGACAACATTCAA
+AAAAGAGTAATAAACTTCGCCTTAATTTTAATAATCAACACCCTCCTAGC
+CTTACTACTAATAATTATTACATTTTGACTACCACAACTCAACGGCTACA
+TAGAAAAATCCACCCCTTACGAGTGCGGCTTCGACCCTATATCCCCCGCC
+CGCGTCCCTTTCTCCATAAAATTCTTCTTAGTAGCTATTACCTTCTTATT
+ATTTGATCTAGAAATTGCCCTCCTTTTACCCCTACCATGAGCCCTACAAA
+CAACTAACCTGCCACTAATAGTTATGTCATCCCTCTTATTAATCATCATC
+CTAGCCCTAAGTCTGGCCTATGAGTGACTACAAAAAGGATTAGACTGAGC
+CGAATTGGTATATAGTTTAAACAAAACGAATGATTTCGACTCATTAAATT
+ATGATAATCATATTTACCAAATGCCCCTCATTTACATAAATATTATACTA
+GCATTTACCATCTCACTTCTAGGAATACTAGTATATCGCTCACACCTCAT
+ATCCTCCCTACTATGCCTAGAAGGAATAATACTATCGCTGTTCATTATAG
+CTACTCTCATAACCCTCAACACCCACTCCCTCTTAGCCAATATTGTGCCT
+ATTGCCATACTAGTCTTTGCCGCCTGCGAAGCAGCGGTGGGCCTAGCCCT
+ACTAGTCTCAATCTCCAACACATATGGCCTAGACTACGTACATAACCTAA
+ACCTACTCCAATGCTAAAACTAATCGTCCCAACAATTATATTACTACCAC
+TGACATGACTTTCCAAAAAGCACATAATTTGAATCAACACAACCACCCAC
+AGCCTAATTATTAGCATCATCCCCCTACTATTTTTTAACCAAATCAACAA
+CAACCTATTTAGCTGTTCCCCAACCTTTTCCTCCGACCCCCTAACAACCC
+CCCTCCTAATACTAACTACCTGACTCCTACCCCTCACAATCATGGCAAGC
+CAACGCCACTTATCCAGCGAACCACTATCACGAAAAAAACTCTACCTCTC
+TATACTAATCTCCCTACAAATCTCCTTAATTATAACATTCACAGCCACAG
+AACTAATCATATTTTATATCTTCTTCGAAACCACACTTATCCCCACCTTG
+GCTATCATCACCCGATGAGGCAACCAGCCAGAACGCCTGAACGCAGGCAC
+ATACTTCCTATTCTACACCCTAGTAGGCTCCCTTCCCCTACTCATCGCAC
+TAATTTACACTCACAACACCCTAGGCTCACTAAACATTCTACTACTCACT
+CTCACTGCCCAAGAACTATCAAACTCCTGAGCCAACAACTTAATATGACT
+AGCTTACACAATAGCTTTTATAGTAAAGATACCTCTTTACGGACTCCACT
+TATGACTCCCTAAAGCCCATGTCGAAGCCCCCATCGCTGGGTCAATAGTA
+CTTGCCGCAGTACTCTTAAAACTAGGCGGCTATGGTATAATACGCCTCAC
+ACTCATTCTCAACCCCCTGACAAAACACATAGCCTACCCCTTCCTTGTAC
+TATCCCTATGAGGCATAATTATAACAAGCTCCATCTGCCTACGACAAACA
+GACCTAAAATCGCTCATTGCATACTCTTCAATCAGCCACATAGCCCTCGT
+AGTAACAGCCATTCTCATCCAAACCCCCTGAAGCTTCACCGGCGCAGTCA
+TTCTCATAATCGCCCACGGACTCACATCCTCATTACTATTCTGCCTAGCA
+AACTCAAACTACGAACGCACTCACAGTCGCATCATAATCCTCTCTCAAGG
+ACTTCAAACTCTACTCCCACTAATAGCTTTTTGATGACTTCTAGCAAGCC
+TCGCTAACCTCGCCTTACCCCCCACTATTAACCTACTGGGAGAACTCTCT
+GTGCTAGTAACCACGTTCTCCTGATCAAATATCACTCTCCTACTTACAGG
+ACTCAACATACTAGTCACAGCCCTATACTCCCTCTACATATTTACCACAA
+CACAATGGGGCTCACTCACCCACCACATTAACAACATAAAACCCTCATTC
+ACACGAGAAAACACCCTCATGTTCATACACCTATCCCCCATTCTCCTCCT
+ATCCCTCAACCCCGACATCATTACCGGGTTTTCCTCTTGTAAATATAGTT
+TAACCAAAACATCAGATTGTGAATCTGACAACAGAGGCTTACGACCCCTT
+ATTTACCGAGAAAGCTCACAAGAACTGCTAACTCATGCCCCCATGTCTAA
+CAACATGGCTTTCTCAACTTTTAAAGGATAACAGCTATCCATTGGTCTTA
+GGCCCCAAAAATTTTGGTGCAACTCCAAATAAAAGTAATAACCATGCACA
+CTACTATAACCACCCTAACCCTGACTTCCCTAATTCCCCCCATCCTTACC
+ACCCTCGTTAACCCTAACAAAAAAAACTCATACCCCCATTATGTAAAATC
+CATTGTCGCATCCACCTTTATTATCAGTCTCTTCCCCACAACAATATTCA
+TGTGCCTAGACCAAGAAGTTATTATCTCGAACTGACACTGAGCCACAACC
+CAAACAACCCAGCTCTCCCTAAGCTTCAAACTAGACTACTTCTCCATAAT
+ATTCATCCCTGTAGCATTGTTCGTTACATGGTCCATCATAGAATTCTCAC
+TGTGATATATAAACTCAGACCCAAACATTAATCAGTTCTTCAAATATCTA
+CTCATTTTCCTAATTACCATACTAATCTTAGTTACCGCTAACAACCTATT
+CCAACTGTTCATCGGCTGAGAGGGCGTAGGAATTATATCCTTCTTGCTCA
+TCAGTTGATGATACGCCCGAGCAGATGCCAACACAGCAGCCATTCAAGCA
+GTCCTATACAACCGTATCGGCGATATCGGTTTCATCCTCGCCTTAGCATG
+ATTTATCCTACACTCCAACTCATGAGACCCACAACAAATAGCCCTTCTAA
+ACGCTAATCCAAGCCTCACCCCACTACTAGGCCTCCTCCTAGCAGCAGCA
+GGCAAATCAGCCCAATTAGGTCTCCACCCCTGACTCCCCTCAGCCATAGA
+AGGCCCCACCCCAGTCTCAGCCCTACTCCACTCAAGCACTATAGTTGTAG
+CAGGAATCTTCTTACTCATCCGCTTCCACCCCCTAGCAGAAAATAGCCCA
+CTAATCCAAACTCTAACACTATGCTTAGGCGCTATCACCACTCTGTTCGC
+AGCAGTCTGCGCCCTTACACAAAATGACATCAAAAAAATCGTAGCCTTCT
+CCACTTCAAGTCAACTAGGACTCATAATAGTTACAATCGGCATCAACCAA
+CCACACCTAGCATTCCTGCACATCTGTACCCACGCCTTCTTCAAAGCCAT
+ACTATTTATGTGCTCCGGGTCCATCATCCACAACCTTAACAATGAACAAG
+ATATTCGAAAAATAGGAGGACTACTCAAAACCATACCTCTCACTTCAACC
+TCCCTCACCATTGGCAGCCTAGCATTAGCAGGAATACCTTTCCTCACAGG
+TTTCTACTCCAAAGACCACATCATCGAAACCGCAAACATATCATACACAA
+ACGCCTGAGCCCTATCTATTACTCTCATCGCTACCTCCCTGACAAGCGCC
+TATAGCACTCGAATAATTCTTCTCACCCTAACAGGTCAACCTCGCTTCCC
+CACCCTTACTAACATTAACGAAAATAACCCCACCCTACTAAACCCCATTA
+AACGCCTGGCAGCCGGAAGCCTATTCGCAGGATTTCTCATTACTAACAAC
+ATTTCCCCCGCATCCCCCTTCCAAACAACAATCCCCCTCTACCTAAAACT
+CACAGCCCTCGCTGTCACTTTCCTAGGACTTCTAACAGCCCTAGACCTCA
+ACTACCTAACCAACAAACTTAAAATAAAATCCCCACTATGCACATTTTAT
+TTCTCCAACATACTCGGATTCTACCCTAGCATCACACACCGCACAATCCC
+CTATCTAGGCCTTCTTACGAGCCAAAACCTGCCCCTACTCCTCCTAGACC
+TAACCTGACTAGAAAAGCTATTACCTAAAACAATTTCACAGCACCAAATC
+TCCACCTCCATCATCACCTCAACCCAAAAAGGCATAATTAAACTTTACTT
+CCTCTCTTTCTTCTTCCCACTCATCCTAACCCTACTCCTAATCACATAAC
+CTATTCCCCCGAGCAATCTCAATTACAATATATACACCAACAAACAATGT
+TCAACCAGTAACCACTACTAATCAACGCCCATAATCATACAAAGCCCCCG
+CACCAATAGGATCCTCCCGAATCAACCCTGACCCCTCTCCTTCATAAATT
+ATTCAGCTTCCTACACTATTAAAGTTTACCACAACCACCACCCCATCATA
+CTCTTTCACCCACAGCACCAATCCTACCTCCATCGCTAACCCCACTAAAA
+CACTCACCAAGACCTCAACCCCTGACCCCCATGCCTCAGGATACTCCTCA
+ATAGCCATCGCTGTAGTATATCCAAAGACAACCATCATTCCCCCTAAATA
+AATTAAAAAAACTATTAAACCCATATAACCTCCCCCAAAATTCAGAATAA
+TAACACACCCGACCACACCGCTAACAATCAGTACTAAACCCCCATAAATA
+GGAGAAGGCTTAGAAGAAAACCCCACAAACCCCATTACTAAACCCACACT
+CAACAGAAACAAAGCATACATCATTATTCTCGCACGGACTACAACCACGA
+CCAATGATATGAAAAACCATCGTTGTATTTCAACTACAAGAACACCAATG
+ACCCCAATACGCAAAATTAACCCCCTAATAAAATTAATTAACCACTCATT
+CATCGACCTCCCCACCCCATCCAACATCTCCGCATGATGAAACTTCGGCT
+CACTCCTTGGCGCCTGCCTGATCCTCCAAATCACCACAGGACTATTCCTA
+GCCATACACTACTCACCAGACGCCTCAACCGCCTTTTCATCAATCGCCCA
+CATCACTCGAGACGTAAATTATGGCTGAATCATCCGCTACCTTCACGCCA
+ATGGCGCCTCAATATTCTTTATCTGCCTCTTCCTACACATCGGGCGAGGC
+CTATATTACGGATCATTTCTCTACTCAGAAACCTGAAACATCGGCATTAT
+CCTCCTGCTTGCAACTATAGCAACAGCCTTCATAGGCTATGTCCTCCCGT
+GAGGCCAAATATCATTCTGAGGGGCCACAGTAATTACAAACTTACTATCC
+GCCATCCCATACATTGGGACAGACCTAGTTCAATGAATCTGAGGAGGCTA
+CTCAGTAGACAGTCCCACCCTCACACGATTCTTTACCTTTCACTTCATCT
+TACCCTTCATTATTGCAGCCCTAGCAGCACTCCACCTCCTATTCTTGCAC
+GAAACGGGATCAAACAACCCCCTAGGAATCACCTCCCATTCCGATAAAAT
+CACCTTCCACCCTTACTACACAATCAAAGACGCCCTCGGCTTACTTCTCT
+TCCTTCTCTCCTTAATGACATTAACACTATTCTCACCAGACCTCCTAGGC
+GACCCAGACAATTATACCCTAGCCAACCCCTTAAACACCCCTCCCCACAT
+CAAGCCCGAATGATATTTCCTATTCGCCTACACAATTCTCCGATCCGTCC
+CTAACAAACTAGGAGGCGTCCTTGCCCTATTACTATCCATCCTCATCCTA
+GCAATAATCCCCATCCTCCATATATCCAAACAACAAAGCATAATATTTCG
+CCCACTAAGCCAATCACTTTATTGACTCCTAGCCGCAGACCTCCTCATTC
+TAACCTGAATCGGAGGACAACCAGTAAGCTACCCTTTTACCATCATTGGA
+CAAGTAGCATCCGTACTATACTTCACAACAATCCTAATCCTAATACCAAC
+TATCTCCCTAATTGAAAACAAAATACTCAAATGGGCCTGTCCTTGTAGTA
+TAAACTAATACACCAGTCTTGTAAACCGGAGACGAAAACCTTTTTCCAAG
+GACAAATCAGAGAAAAAGTCTTTAACTCCACCATTAGCACCCAAAGCTAA
+GATTCTAATTTAAACTATTCTCTGTTCTTTCATGGGGAAGCAGATTTGGG
+TACCACCCAAGTATTGACTCACCCATCAACAACCGCTATGTATTTCGTAC
+ATTACTGCCAGCCACCATGAATATTGTACGGTACCATAAATACTTGACCA
+CCTGTAGTACATAAAAACCCAACCCACATCAAACCCCCCCCCCCCATGCT
+TACAAGCAAGTACAGCAATCAACCTTCAACTATCACACATCAACTGCAAC
+TCCAAAGCCACCCCTCACCCACTAGGATACCAACAAACCTACCCACCCTT
+AACAGTACATAGTACATAAAGTCATTTACCGTACATAGCACATTACAGTC
+AAATCCCTTCTCGTCCCCATGGATGACCCCCCTCAGATAGGGGTCCCTTG
+ACCACCATCCTCCGTGAAATCAATATCCCGCACAAGAGTGCTACTCTCCT
+CGCTCCGGGCCCATAACACTTGGGGGTAGCTAAAGTGAACTGTATCCGAC
+ATCTGGTTCCTACTTCAGGGCCATAAAGCCTAAATAGCCCACACGTTCCC
+CTTAAATAAGACATCACGATG
diff --git a/testdata/picard/quality/chrMReads.sam b/testdata/picard/quality/chrMReads.sam
new file mode 100644
index 0000000..03ad862
--- /dev/null
+++ b/testdata/picard/quality/chrMReads.sam
@@ -0,0 +1,8 @@
+ at HD	VN:1.0	SO:coordinate
+ at SQ	SN:chrM	LN:16299	AS:mm9	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	M5:11c8af2a2528b25f2c080ab7da42edda	SP:Mus musculus
+ at RG	ID:62A40.2	PL:illumina	PU:62A40AAXX101028.2	LB:Solexa-45345	DT:2010-10-28T00:00:00-0400	SM:RRBS885	CN:BI
+62A40AAXX101028:2:70:17903:4536	512	chrM	54	0	36M	*	0	0	GTATTTTTGTCTGGGGGGTGTGTACGCGATAGTATT	IIIIIIII#IIIIIIIIIIIIG#IIIIIIIIII#II	RG:Z:62A40.2	ZL:i:135	NM:i:9	ZP:i:1	UQ:i:18
+62A40AAXX101028:2:52:4674:15453	512	chrM	6113	0	36M	*	0	0	GTATTTTTGTCTGGGGGGTGTGTACGCGATAGTATT	IIIIIIII#IIIIIIIIIIIIG#IIIIIIIIII#II	RG:Z:62A40.2	ZL:i:164	NM:i:3	ZP:i:6113	UQ:i:84
+62A40AAXX101028:2:90:10278:1575	1024	chrM	6275	0	36M	*	0	0	TAGGTTGAATAGTTTATTTTTTTTTAGCAGGGAACT	IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIHIIIII	RG:Z:62A40.2	ZL:i:116	NM:i:5	ZP:i:6275	UQ:i:199
+62A40AAXX101028:2:93:3981:7576	1024	chrM	6275	0	36M	*	0	0	CGGCGTTAAAGTATTTAGTTGATTCGTTATATTTTA	IIIIIIIIIIIHIIIIIIIIIIIIFIIII at HIIIIG	RG:Z:62A40.2	ZL:i:116	NM:i:5	ZP:i:6275	UQ:i:196
+62A40AAXX101028:2:70:17903:4536	512	chrM	54	0	36M	*	0	0	GTATTTTTGTCTGGGGGGTGTGTACGCGATAGTATT	IIIIIIIIHIIIIIIIIIIIIGIIIIIIIIIIIIII	RG:Z:62A40.2	ZL:i:135	NM:i:9	ZP:i:1	UQ:i:18
diff --git a/testdata/picard/quality/chrMReadsDiffereingLengths.sam b/testdata/picard/quality/chrMReadsDiffereingLengths.sam
new file mode 100644
index 0000000..630d49b
--- /dev/null
+++ b/testdata/picard/quality/chrMReadsDiffereingLengths.sam
@@ -0,0 +1,5 @@
+ at HD	VN:1.0	SO:coordinate
+ at SQ	SN:chrM	LN:16299	AS:mm9	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	M5:11c8af2a2528b25f2c080ab7da42edda	SP:Mus musculus
+ at RG	ID:62A40.2	PL:illumina	PU:62A40AAXX101028.2	LB:Solexa-45345	DT:2010-10-28T00:00:00-0400	SM:RRBS885	CN:BI
+62A40AAXX101028:2:93:3981:7576	99	chrM	100	0	36M	chrM	130	66	TAGGTTGAATAGTTTATTTTTTTTTAGCAGGGAACT	IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIHIIIII	RG:Z:62A40.2	ZL:i:116	NM:i:5	ZP:i:6275	UQ:i:199
+62A40AAXX101028:2:93:3981:7576	147	chrM	130	0	35M	chrM	100	-66	GGCGTTAAAGTATTTAGTTGATTCGTTATATTTTA	IIIIIIIIIIIHIIIIIIIIIIIIFIIIIHIIIIG	RG:Z:62A40.2	ZL:i:116	NM:i:5	ZP:i:6275	UQ:i:196
diff --git a/testdata/picard/quality/chrMReadsMateUnmapped.sam b/testdata/picard/quality/chrMReadsMateUnmapped.sam
new file mode 100644
index 0000000..90d3326
--- /dev/null
+++ b/testdata/picard/quality/chrMReadsMateUnmapped.sam
@@ -0,0 +1,7 @@
+ at HD	VN:1.0	SO:coordinate
+ at SQ	SN:chrM	LN:16299	AS:mm9	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	M5:11c8af2a2528b25f2c080ab7da42edda	SP:Mus musculus
+ at RG	ID:62A40.2	PL:illumina	PU:62A40AAXX101028.2	LB:Solexa-45345	DT:2010-10-28T00:00:00-0400	SM:RRBS885	CN:BI
+62A40AAXX101028:2:93:3981:7576	155	chrM	130	0	36M	*	0	0	CGGCGTTAAAGTATTTAGTTGATTCGTTATATTTTA	IIIIIIIIIIIHIIIIIIIIIIIIFIIII at HIIIIG	RG:Z:62A40.2	ZL:i:116	NM:i:5	ZP:i:6275	UQ:i:196
+62A40AAXX101028:2:90:10278:1575	153	chrM	131	0	36M	*	0	0	CGGCGTTAAAGTATTTAGTTGATTCGTTATATTTTA	IIIIIIIIIIIHIIIIIIIIIIIIFIIII at HIIIIG	RG:Z:62A40.2	ZL:i:116	NM:i:5	ZP:i:6275	UQ:i:196
+62A40AAXX101028:2:93:3981:7576	103	*	0	0	*	chrM	130	0	TAGGTTGAATAGTTTATTTTTTTTTAGCAGGGAACT	IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIHIIIII	RG:Z:62A40.2	ZL:i:116	NM:i:5	ZP:i:6275	UQ:i:199
+62A40AAXX101028:2:90:10278:1575	101	*	0	0	*	chrM	131	0	TAGGTTGAATAGTTTATTTTTTTTTAGCAGGGAACT	IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIHIIIII	RG:Z:62A40.2	ZL:i:116	NM:i:5	ZP:i:6275	UQ:i:199
diff --git a/testdata/picard/quality/chrMReadsMated.sam b/testdata/picard/quality/chrMReadsMated.sam
new file mode 100644
index 0000000..56ad2f7
--- /dev/null
+++ b/testdata/picard/quality/chrMReadsMated.sam
@@ -0,0 +1,5 @@
+ at HD	VN:1.0	SO:coordinate
+ at SQ	SN:chrM	LN:16299	AS:mm9	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	M5:11c8af2a2528b25f2c080ab7da42edda	SP:Mus musculus
+ at RG	ID:62A40.2	PL:illumina	PU:62A40AAXX101028.2	LB:Solexa-45345	DT:2010-10-28T00:00:00-0400	SM:RRBS885	CN:BI
+62A40AAXX101028:2:93:3981:7576	99	chrM	100	0	36M	chrM	130	66	TAGGTTGAATAGTTTATTTTTTTTTAGCAGGGAACT	IIIIIIIIIIIIIIIIIIIAAAAAAAAAAAAAAAAA	RG:Z:62A40.2	ZL:i:116	NM:i:5	ZP:i:6275	UQ:i:199
+62A40AAXX101028:2:93:3981:7576	147	chrM	130	0	36M	chrM	100	-66	CGGCGTTAAAGTATTTAGTTGATTCGTTATATTTTA	BBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCC	RG:Z:62A40.2	ZL:i:116	NM:i:5	ZP:i:6275	UQ:i:196
\ No newline at end of file
diff --git a/testdata/picard/quality/chrMReadsMatedRev.sam b/testdata/picard/quality/chrMReadsMatedRev.sam
new file mode 100644
index 0000000..f0bee71
--- /dev/null
+++ b/testdata/picard/quality/chrMReadsMatedRev.sam
@@ -0,0 +1,5 @@
+ at HD	VN:1.0	SO:coordinate
+ at SQ	SN:chrM	LN:16299	AS:mm9	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	M5:11c8af2a2528b25f2c080ab7da42edda	SP:Mus musculus
+ at RG	ID:62A40.2	PL:illumina	PU:62A40AAXX101028.2	LB:Solexa-45345	DT:2010-10-28T00:00:00-0400	SM:RRBS885	CN:BI
+62A40AAXX101028:2:90:10278:1575	99	chrM	130	0	36M	chrM	100	-66	TAGGTTGAATAGTTTATTTTTTTTTAGCAGGGAACT	BBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCC	RG:Z:62A40.2	ZL:i:116	NM:i:5	ZP:i:6275	UQ:i:199
+62A40AAXX101028:2:90:10278:1575	147	chrM	100	0	36M	chrM	130	66	CGGCGTTAAAGTATTTAGTTGATTCGTTATATTTTA	IIIIIIIIIIIIIIIIIIIAAAAAAAAAAAAAAAAA	RG:Z:62A40.2	ZL:i:116	NM:i:5	ZP:i:6275	UQ:i:196
diff --git a/testdata/picard/quality/chrMReadsMatedRevOrder.sam b/testdata/picard/quality/chrMReadsMatedRevOrder.sam
new file mode 100644
index 0000000..044df49
--- /dev/null
+++ b/testdata/picard/quality/chrMReadsMatedRevOrder.sam
@@ -0,0 +1,5 @@
+ at HD	VN:1.0	SO:coordinate
+ at SQ	SN:chrM	LN:16299	AS:mm9	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	M5:11c8af2a2528b25f2c080ab7da42edda	SP:Mus musculus
+ at RG	ID:62A40.2	PL:illumina	PU:62A40AAXX101028.2	LB:Solexa-45345	DT:2010-10-28T00:00:00-0400	SM:RRBS885	CN:BI
+62A40AAXX101028:2:90:10278:1575	147	chrM	130	0	36M	chrM	100	-66	TAGGTTGAATAGTTTATTTTTTTTTAGCAGGGAACT	BBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCC	RG:Z:62A40.2	ZL:i:116	NM:i:5	ZP:i:6275	UQ:i:199
+62A40AAXX101028:2:90:10278:1575	99	chrM	100	0	36M	chrM	130	66	CGGCGTTAAAGTATTTAGTTGATTCGTTATATTTTA	IIIIIIIIIIIIIIIIIIIAAAAAAAAAAAAAAAAA	RG:Z:62A40.2	ZL:i:116	NM:i:5	ZP:i:6275	UQ:i:196
diff --git a/testdata/picard/quality/chrMReadsMatedSameStrand.sam b/testdata/picard/quality/chrMReadsMatedSameStrand.sam
new file mode 100644
index 0000000..77d523a
--- /dev/null
+++ b/testdata/picard/quality/chrMReadsMatedSameStrand.sam
@@ -0,0 +1,5 @@
+ at HD	VN:1.0	SO:coordinate
+ at SQ	SN:chrM	LN:16299	AS:mm9	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	M5:11c8af2a2528b25f2c080ab7da42edda	SP:Mus musculus
+ at RG	ID:62A40.2	PL:illumina	PU:62A40AAXX101028.2	LB:Solexa-45345	DT:2010-10-28T00:00:00-0400	SM:RRBS885	CN:BI
+62A40AAXX101028:2:90:10278:1575	67	chrM	100	0	36M	chrM	110	10	TAGGTTGAATAGTTTATTTTTTTTTAGCAGGGAACT	IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIHIIIII	RG:Z:62A40.2	ZL:i:116	NM:i:5	ZP:i:6275	UQ:i:199
+62A40AAXX101028:2:90:10278:1575	131	chrM	110	0	36M	chrM	100	-10	CGGCGTTAAAGTATTTAGTTGATTCGTTATATTTTA	IIIIIIIIIIIHIIIIIIIIIIIIFIIII at HIIIIG	RG:Z:62A40.2	ZL:i:116	NM:i:5	ZP:i:6275	UQ:i:196
diff --git a/testdata/picard/quality/chrMReadsSecondaryAlignSoft.sam b/testdata/picard/quality/chrMReadsSecondaryAlignSoft.sam
new file mode 100644
index 0000000..215ecbd
--- /dev/null
+++ b/testdata/picard/quality/chrMReadsSecondaryAlignSoft.sam
@@ -0,0 +1,6 @@
+ at HD	VN:1.0	SO:coordinate
+ at SQ	SN:chrM	LN:16299	AS:mm9	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	M5:11c8af2a2528b25f2c080ab7da42edda	SP:Mus musculus
+ at RG	ID:62A40.2	PL:illumina	PU:62A40AAXX101028.2	LB:Solexa-45345	DT:2010-10-28T00:00:00-0400	SM:RRBS885	CN:BI
+62A40AAXX101028:2:93:3981:7576	99	chrM	100	0	36M	chrM	130	66	TAGGTTGAATAGTTTATTTTTTTTTAGCAGGGAACT	IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIHIIIII	RG:Z:62A40.2	ZL:i:116	NM:i:5	ZP:i:6275	UQ:i:199
+62A40AAXX101028:2:93:3981:7576	147	chrM	130	0	6S30M	chrM	100	-66	CGGCGTTAAAGTATTTAGTTGATTCGTTATATTTTA	IIIIIIIIIIIHIIIIIIIIIIIIFIIII at HIIIIG	RG:Z:62A40.2	ZL:i:116	NM:i:5	ZP:i:6275	UQ:i:196
+62A40AAXX101028:2:93:3981:7576	355	chrM	1300	0	6M30S	chrM	100	-66	CGGCGTTAAAGTATTTAGTTGATTCGTTATATTTTA	IIIIIIIIIIIHIIIIIIIIIIIIFIIII at HIIIIG	RG:Z:62A40.2	ZL:i:116	NM:i:5	ZP:i:6275	UQ:i:196
diff --git a/testdata/picard/quality/chrMReadsSupplementalAlignSoft.sam b/testdata/picard/quality/chrMReadsSupplementalAlignSoft.sam
new file mode 100644
index 0000000..223893c
--- /dev/null
+++ b/testdata/picard/quality/chrMReadsSupplementalAlignSoft.sam
@@ -0,0 +1,6 @@
+ at HD	VN:1.0	SO:coordinate
+ at SQ	SN:chrM	LN:16299	AS:mm9	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	M5:11c8af2a2528b25f2c080ab7da42edda	SP:Mus musculus
+ at RG	ID:62A40.2	PL:illumina	PU:62A40AAXX101028.2	LB:Solexa-45345	DT:2010-10-28T00:00:00-0400	SM:RRBS885	CN:BI
+62A40AAXX101028:2:93:3981:7576	99	chrM	100	0	36M	chrM	130	66	TAGGTTGAATAGTTTATTTTTTTTTAGCAGGGAACT	IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIHIIIII	RG:Z:62A40.2	ZL:i:116	NM:i:5	ZP:i:6275	UQ:i:199
+62A40AAXX101028:2:93:3981:7576	147	chrM	130	0	6S30M	chrM	100	-66	CGGCGTTAAAGTATTTAGTTGATTCGTTATATTTTA	IIIIIIIIIIIHIIIIIIIIIIIIFIIII at HIIIIG	RG:Z:62A40.2	ZL:i:116	NM:i:5	ZP:i:6275	UQ:i:196
+62A40AAXX101028:2:93:3981:7576	2147	chrM	1300	0	6M30S	chrM	100	-66	CGGCGTTAAAGTATTTAGTTGATTCGTTATATTTTA	IIIIIIIIIIIHIIIIIIIIIIIIFIIII at HIIIIG	RG:Z:62A40.2	ZL:i:116	NM:i:5	ZP:i:6275	UQ:i:196
diff --git a/testdata/picard/quality/chrMReadsUnMated.sam b/testdata/picard/quality/chrMReadsUnMated.sam
new file mode 100644
index 0000000..dfd6658
--- /dev/null
+++ b/testdata/picard/quality/chrMReadsUnMated.sam
@@ -0,0 +1,5 @@
+ at HD	VN:1.0	SO:coordinate
+ at SQ	SN:chrM	LN:16299	AS:mm9	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	M5:11c8af2a2528b25f2c080ab7da42edda	SP:Mus musculus
+ at RG	ID:62A40.2	PL:illumina	PU:62A40AAXX101028.2	LB:Solexa-45345	DT:2010-10-28T00:00:00-0400	SM:RRBS885	CN:BI
+62A40AAXX101028:2:93:3981:7576	0	chrM	130	0	36M	*	0	0	CGGCGTTAAAGTATTTAGTTGATTCGTTATATTTTA	IIIIIIIIIIIHIIIIIIIIIIIIFIIII at HIIIIG	RG:Z:62A40.2	ZL:i:116	NM:i:5	ZP:i:6275	UQ:i:196
+62A40AAXX101028:2:90:10278:1575	4	*	0	0	*	*	0	0	TAGGTTGAATAGTTTATTTTTTTTTAGCAGGGAACT	IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIHIIIII	RG:Z:62A40.2	ZL:i:116	NM:i:5	ZP:i:6275	UQ:i:199
diff --git a/testdata/net/sf/picard/sam/CleanSam/fits_with_deletion.sam b/testdata/picard/sam/CleanSam/fits_with_deletion.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/CleanSam/fits_with_deletion.sam
rename to testdata/picard/sam/CleanSam/fits_with_deletion.sam
diff --git a/testdata/net/sf/picard/sam/CleanSam/long_trailing_insertion.sam b/testdata/picard/sam/CleanSam/long_trailing_insertion.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/CleanSam/long_trailing_insertion.sam
rename to testdata/picard/sam/CleanSam/long_trailing_insertion.sam
diff --git a/testdata/net/sf/picard/sam/CleanSam/overhang_with_deletion.sam b/testdata/picard/sam/CleanSam/overhang_with_deletion.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/CleanSam/overhang_with_deletion.sam
rename to testdata/picard/sam/CleanSam/overhang_with_deletion.sam
diff --git a/testdata/net/sf/picard/sam/CleanSam/simple_fits.sam b/testdata/picard/sam/CleanSam/simple_fits.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/CleanSam/simple_fits.sam
rename to testdata/picard/sam/CleanSam/simple_fits.sam
diff --git a/testdata/net/sf/picard/sam/CleanSam/simple_overhang.sam b/testdata/picard/sam/CleanSam/simple_overhang.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/CleanSam/simple_overhang.sam
rename to testdata/picard/sam/CleanSam/simple_overhang.sam
diff --git a/testdata/net/sf/picard/sam/CleanSam/trailing_insertion.sam b/testdata/picard/sam/CleanSam/trailing_insertion.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/CleanSam/trailing_insertion.sam
rename to testdata/picard/sam/CleanSam/trailing_insertion.sam
diff --git a/testdata/picard/sam/CollectGcBiasMetrics/Mheader.dict b/testdata/picard/sam/CollectGcBiasMetrics/Mheader.dict
new file mode 100644
index 0000000..a61d88e
--- /dev/null
+++ b/testdata/picard/sam/CollectGcBiasMetrics/Mheader.dict
@@ -0,0 +1,2 @@
+ at HD	VN:1.0	SO:coordinate
+ at SQ	SN:chrM	LN:16903	UR:chrM.reference.fasta
\ No newline at end of file
diff --git a/testdata/net/sf/picard/sam/CompareSAMs/bigger_seq_dict.sam b/testdata/picard/sam/CompareSAMs/bigger_seq_dict.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/CompareSAMs/bigger_seq_dict.sam
rename to testdata/picard/sam/CompareSAMs/bigger_seq_dict.sam
diff --git a/testdata/net/sf/picard/sam/CompareSAMs/chr21.sam b/testdata/picard/sam/CompareSAMs/chr21.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/CompareSAMs/chr21.sam
rename to testdata/picard/sam/CompareSAMs/chr21.sam
diff --git a/testdata/net/sf/picard/sam/CompareSAMs/diff_coords.sam b/testdata/picard/sam/CompareSAMs/diff_coords.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/CompareSAMs/diff_coords.sam
rename to testdata/picard/sam/CompareSAMs/diff_coords.sam
diff --git a/testdata/net/sf/picard/sam/CompareSAMs/example2.sam b/testdata/picard/sam/CompareSAMs/example2.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/CompareSAMs/example2.sam
rename to testdata/picard/sam/CompareSAMs/example2.sam
diff --git a/testdata/net/sf/picard/sam/CompareSAMs/genomic_sorted.sam b/testdata/picard/sam/CompareSAMs/genomic_sorted.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/CompareSAMs/genomic_sorted.sam
rename to testdata/picard/sam/CompareSAMs/genomic_sorted.sam
diff --git a/testdata/net/sf/picard/sam/CompareSAMs/genomic_sorted_5.sam b/testdata/picard/sam/CompareSAMs/genomic_sorted_5.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/CompareSAMs/genomic_sorted_5.sam
rename to testdata/picard/sam/CompareSAMs/genomic_sorted_5.sam
diff --git a/testdata/net/sf/picard/sam/CompareSAMs/genomic_sorted_5_plus.sam b/testdata/picard/sam/CompareSAMs/genomic_sorted_5_plus.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/CompareSAMs/genomic_sorted_5_plus.sam
rename to testdata/picard/sam/CompareSAMs/genomic_sorted_5_plus.sam
diff --git a/testdata/net/sf/picard/sam/CompareSAMs/group_same_coord.sam b/testdata/picard/sam/CompareSAMs/group_same_coord.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/CompareSAMs/group_same_coord.sam
rename to testdata/picard/sam/CompareSAMs/group_same_coord.sam
diff --git a/testdata/net/sf/picard/sam/CompareSAMs/group_same_coord_diff_order.sam b/testdata/picard/sam/CompareSAMs/group_same_coord_diff_order.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/CompareSAMs/group_same_coord_diff_order.sam
rename to testdata/picard/sam/CompareSAMs/group_same_coord_diff_order.sam
diff --git a/testdata/net/sf/picard/sam/CompareSAMs/has_non_primary.sam b/testdata/picard/sam/CompareSAMs/has_non_primary.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/CompareSAMs/has_non_primary.sam
rename to testdata/picard/sam/CompareSAMs/has_non_primary.sam
diff --git a/testdata/net/sf/picard/sam/CompareSAMs/unmapped_first.sam b/testdata/picard/sam/CompareSAMs/unmapped_first.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/CompareSAMs/unmapped_first.sam
rename to testdata/picard/sam/CompareSAMs/unmapped_first.sam
diff --git a/testdata/net/sf/picard/sam/CompareSAMs/unmapped_second.sam b/testdata/picard/sam/CompareSAMs/unmapped_second.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/CompareSAMs/unmapped_second.sam
rename to testdata/picard/sam/CompareSAMs/unmapped_second.sam
diff --git a/testdata/net/sf/picard/sam/CompareSAMs/unsorted.sam b/testdata/picard/sam/CompareSAMs/unsorted.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/CompareSAMs/unsorted.sam
rename to testdata/picard/sam/CompareSAMs/unsorted.sam
diff --git a/testdata/picard/sam/GatherBamFiles/indUnknownChrom.bam b/testdata/picard/sam/GatherBamFiles/indUnknownChrom.bam
new file mode 100644
index 0000000..08fee5e
Binary files /dev/null and b/testdata/picard/sam/GatherBamFiles/indUnknownChrom.bam differ
diff --git a/testdata/picard/sam/GatherBamFiles/indchr1.bam b/testdata/picard/sam/GatherBamFiles/indchr1.bam
new file mode 100644
index 0000000..9560275
Binary files /dev/null and b/testdata/picard/sam/GatherBamFiles/indchr1.bam differ
diff --git a/testdata/picard/sam/GatherBamFiles/indchr2.bam b/testdata/picard/sam/GatherBamFiles/indchr2.bam
new file mode 100644
index 0000000..81b2f70
Binary files /dev/null and b/testdata/picard/sam/GatherBamFiles/indchr2.bam differ
diff --git a/testdata/picard/sam/GatherBamFiles/indchr3.bam b/testdata/picard/sam/GatherBamFiles/indchr3.bam
new file mode 100644
index 0000000..0d7ad8c
Binary files /dev/null and b/testdata/picard/sam/GatherBamFiles/indchr3.bam differ
diff --git a/testdata/picard/sam/GatherBamFiles/indchr4.bam b/testdata/picard/sam/GatherBamFiles/indchr4.bam
new file mode 100644
index 0000000..aa27dab
Binary files /dev/null and b/testdata/picard/sam/GatherBamFiles/indchr4.bam differ
diff --git a/testdata/picard/sam/GatherBamFiles/indchr5.bam b/testdata/picard/sam/GatherBamFiles/indchr5.bam
new file mode 100644
index 0000000..ea6a608
Binary files /dev/null and b/testdata/picard/sam/GatherBamFiles/indchr5.bam differ
diff --git a/testdata/picard/sam/GatherBamFiles/indchr6.bam b/testdata/picard/sam/GatherBamFiles/indchr6.bam
new file mode 100644
index 0000000..ae4bb11
Binary files /dev/null and b/testdata/picard/sam/GatherBamFiles/indchr6.bam differ
diff --git a/testdata/picard/sam/GatherBamFiles/indchr7.bam b/testdata/picard/sam/GatherBamFiles/indchr7.bam
new file mode 100644
index 0000000..a4eecd4
Binary files /dev/null and b/testdata/picard/sam/GatherBamFiles/indchr7.bam differ
diff --git a/testdata/picard/sam/GatherBamFiles/indchr8.bam b/testdata/picard/sam/GatherBamFiles/indchr8.bam
new file mode 100644
index 0000000..cf69d57
Binary files /dev/null and b/testdata/picard/sam/GatherBamFiles/indchr8.bam differ
diff --git a/testdata/picard/sam/GatherBamFiles/orig.bam b/testdata/picard/sam/GatherBamFiles/orig.bam
new file mode 100644
index 0000000..ee7e9b5
Binary files /dev/null and b/testdata/picard/sam/GatherBamFiles/orig.bam differ
diff --git a/testdata/picard/sam/MarkDuplicates/markDuplicatesWithMateCigar.pairSet.swap.sam b/testdata/picard/sam/MarkDuplicates/markDuplicatesWithMateCigar.pairSet.swap.sam
new file mode 100644
index 0000000..63151fa
--- /dev/null
+++ b/testdata/picard/sam/MarkDuplicates/markDuplicatesWithMateCigar.pairSet.swap.sam
@@ -0,0 +1,42 @@
+ at HD	VN:1.5	SO:coordinate
+ at SQ	SN:chrM	LN:16299	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	AS:mm9	M5:11c8af2a2528b25f2c080ab7da42edda	SP:Mus musculus
+ at SQ	SN:chr1	LN:197195432	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	AS:mm9	M5:f05d753079c455c0e57af88eeda24493	SP:Mus musculus
+ at SQ	SN:chr2	LN:181748087	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	AS:mm9	M5:9b9d64dc89ecc73d3288eb38af3f94bd	SP:Mus musculus
+ at SQ	SN:chr3	LN:159599783	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	AS:mm9	M5:0a692666a1b8526e1d1e799beb71b6d0	SP:Mus musculus
+ at SQ	SN:chr4	LN:155630120	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	AS:mm9	M5:f5993a04396a06ed6b28fa42b2429be0	SP:Mus musculus
+ at SQ	SN:chr5	LN:152537259	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	AS:mm9	M5:f90804fb8fe9cb06076d51a710fb4563	SP:Mus musculus
+ at SQ	SN:chr6	LN:149517037	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	AS:mm9	M5:258a37e20815bb7e3f2e974b9d4dd295	SP:Mus musculus
+ at SQ	SN:chr7	LN:152524553	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	AS:mm9	M5:e0d6cea6f72cb4d9f8d0efc1d29dd180	SP:Mus musculus
+ at SQ	SN:chr8	LN:131738871	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	AS:mm9	M5:5f217cb8a9685b9879add3ae110cabd7	SP:Mus musculus
+ at SQ	SN:chr9	LN:124076172	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	AS:mm9	M5:dde08574942fc18050195618cc3f35af	SP:Mus musculus
+ at SQ	SN:chr10	LN:129993255	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	AS:mm9	M5:be7e6a13cc6b9da7c1da7b7fc32c5506	SP:Mus musculus
+ at SQ	SN:chr11	LN:121843856	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	AS:mm9	M5:e0099550b3d3943fb9bb7af6fa6952c1	SP:Mus musculus
+ at SQ	SN:chr12	LN:121257530	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	AS:mm9	M5:1f9c11dc6f288f93e9fab56772a36e85	SP:Mus musculus
+ at SQ	SN:chr13	LN:120284312	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	AS:mm9	M5:a7b4bb418aa21e0ec59d9e2a1fe1810b	SP:Mus musculus
+ at SQ	SN:chr14	LN:125194864	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	AS:mm9	M5:09d1c8449706a17d40934302a0a3b671	SP:Mus musculus
+ at SQ	SN:chr15	LN:103494974	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	AS:mm9	M5:e41c8b42b0921378b1fdd5172f6be067	SP:Mus musculus
+ at SQ	SN:chr16	LN:98319150	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	AS:mm9	M5:e051b3930c2557ade21d67db41f3a518	SP:Mus musculus
+ at SQ	SN:chr17	LN:95272651	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	AS:mm9	M5:47eede15e5761fb9c2267627f18211e7	SP:Mus musculus
+ at SQ	SN:chr18	LN:90772031	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	AS:mm9	M5:9f9d41cfdb9d91b62b928a3eb4eb6928	SP:Mus musculus
+ at SQ	SN:chr19	LN:61342430	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	AS:mm9	M5:591f8486f82c22442bb8463595a18e0a	SP:Mus musculus
+ at SQ	SN:chrX	LN:166650296	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	AS:mm9	M5:3d0d9df898d2c830b858f91255d8a1eb	SP:Mus musculus
+ at SQ	SN:chrY	LN:15902555	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	AS:mm9	M5:5ff564f9fbc8cb87bcad6cfa6874902b	SP:Mus musculus
+ at SQ	SN:chr1_random	LN:1231697	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	AS:mm9	M5:801e0bcd6ae33eeddfe2a4e6fc9f3d36	SP:Mus musculus
+ at SQ	SN:chr3_random	LN:41899	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	AS:mm9	M5:d6340e90da5796b7069708735f82ae3e	SP:Mus musculus
+ at SQ	SN:chr4_random	LN:160594	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	AS:mm9	M5:af94651d419f27e242d0f82d6d5dbe67	SP:Mus musculus
+ at SQ	SN:chr5_random	LN:357350	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	AS:mm9	M5:c2db94dc571b1a7cd12eb98564c9fd1e	SP:Mus musculus
+ at SQ	SN:chr7_random	LN:362490	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	AS:mm9	M5:b1f2189dd882e9c21cdbbf57ba85f4fe	SP:Mus musculus
+ at SQ	SN:chr8_random	LN:849593	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	AS:mm9	M5:3b0dfe8c89728afd327e229037570f6e	SP:Mus musculus
+ at SQ	SN:chr9_random	LN:449403	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	AS:mm9	M5:b9845732324c3c38b767a7652410068f	SP:Mus musculus
+ at SQ	SN:chr13_random	LN:400311	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	AS:mm9	M5:0ef638f43ade721b3aed0386dc8aa4cf	SP:Mus musculus
+ at SQ	SN:chr16_random	LN:3994	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	AS:mm9	M5:eb0fc598242fe03d53021929cea74c6b	SP:Mus musculus
+ at SQ	SN:chr17_random	LN:628739	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	AS:mm9	M5:f5a3fcd550c795e0a1bc3f355bb54577	SP:Mus musculus
+ at SQ	SN:chrX_random	LN:1785075	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	AS:mm9	M5:3a45dd9ba2fbba51c13d600585ebed09	SP:Mus musculus
+ at SQ	SN:chrY_random	LN:58682461	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	AS:mm9	M5:5cbfdcc893c1417a651fc2f3c5732e6a	SP:Mus musculus
+ at SQ	SN:chrUn_random	LN:5900358	UR:ftp://hgdownload.cse.ucsc.edu/goldenPath/Mus_musculus_assembly9/bigZips/chromFa.tar.gz	AS:mm9	M5:933191e84e50e31ea6943a88e8bc6f61	SP:Mus musculus
+ at RG	ID:00001.3	PL:illumina	PU:00001ABXX101026.3.TTGAGCCT	LB:Solexa-45924	DT:2010-10-26T00:00:00-0400	SM:stat2_120	CN:BI
+ at PG	ID:00001ABXX.3	VN:0.7.1-9	CL:/seq/software/picard/current/3rd_party/maq/maq map
+00001ABXX101026:3:1:6530:123586	65	chrX	113054885	64	68M	=	113054885	1	AGCCCTTTTTAAATACTGTAGATCACAAAGCAAAAAATAAAACTAAACATTAGGAAAAGAAAATGATA	HHHHHHHHHHHHEHHHFCDC>B?EEEHE at HF;EEE at D@D@<9DEEB>E<FBD;@@<;C(?55?<B;6?	MC:Z:68M	PG:Z:00001ABXX.3	RG:Z:00001.3	NM:i:0	MQ:i:10	UQ:i:0	DS:i:136
+00001ABXX101026:3:1:6530:123586	129	chrX	113054885	10	68M	=	113054885	-1	AGCCCTTTTTTTTTACTGTAGATCACAAAGGTAATTCTATAGTGTCTTTTCAGGATTCAAAGTCTTAG	HHHHHGHGHHHFEHHHBEFEHEBCDEHEEBB5E=EHBHF=FF:FECF;BA?B at GCCGGGFFGCGF6EE	MC:Z:68M	PG:Z:00001ABXX.3	RG:Z:00001.3	NM:i:29	MQ:i:64	UQ:i:984	DS:i:136
+00001ABXX101026:3:1:6533:123569	1089	chrX	113054885	67	68M	=	113054885	1	AGCCCTTTTTAAATACTGTAGATCACAAAGCAAAAAATAAAACTAAACATTAGGAAAAGAAAATGATA	/HFHHHHFEFFHHHHHHHHHHHDHHHHHHHHHEHHHGHHHGHHFG?DHHHFHHFD at FFG?@EG at BHFG	MC:Z:68M	PG:Z:00001ABXX.3	RG:Z:00001.3	NM:i:0	MQ:i:10	UQ:i:0	DS:i:136
+00001ABXX101026:3:1:6533:123569	1153	chrX	113054885	10	68M	=	113054885	-1	AGCCCTTTTTTTTTACTGTAGATCACAAAGGTAATTCTATAGTGTCTTTTCAGGATTCAAAGTCTTAG	HHHHHHEHHHHHHG@=FGDBFDFDFFHFHFGCBC;DFCCEFD1C+D<D<?EB8FDEFCG.FGCFEB=D	MC:Z:68M	PG:Z:00001ABXX.3	RG:Z:00001.3	NM:i:29	MQ:i:67	UQ:i:964	DS:i:136
diff --git a/testdata/net/sf/picard/sam/MarkDuplicates/merge1.sam b/testdata/picard/sam/MarkDuplicates/merge1.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/MarkDuplicates/merge1.sam
rename to testdata/picard/sam/MarkDuplicates/merge1.sam
diff --git a/testdata/net/sf/picard/sam/MarkDuplicates/merge2.sam b/testdata/picard/sam/MarkDuplicates/merge2.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/MarkDuplicates/merge2.sam
rename to testdata/picard/sam/MarkDuplicates/merge2.sam
diff --git a/testdata/net/sf/picard/sam/MarkDuplicates/merge3.sam b/testdata/picard/sam/MarkDuplicates/merge3.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/MarkDuplicates/merge3.sam
rename to testdata/picard/sam/MarkDuplicates/merge3.sam
diff --git a/testdata/picard/sam/MarkDuplicates/npe.perhaps.sam b/testdata/picard/sam/MarkDuplicates/npe.perhaps.sam
new file mode 100644
index 0000000..ae3ad2a
--- /dev/null
+++ b/testdata/picard/sam/MarkDuplicates/npe.perhaps.sam
@@ -0,0 +1,92 @@
+ at HD	VN:1.5	GO:none	SO:coordinate
+ at SQ	SN:1	LN:249250621	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:1b22b98cdeb4a9304cb5d48026a85128	SP:Homo Sapiens
+ at SQ	SN:2	LN:243199373	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:a0d9851da00400dec1098a9255ac712e	SP:Homo Sapiens
+ at SQ	SN:3	LN:198022430	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:fdfd811849cc2fadebc929bb925902e5	SP:Homo Sapiens
+ at SQ	SN:4	LN:191154276	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:23dccd106897542ad87d2765d28a19a1	SP:Homo Sapiens
+ at SQ	SN:5	LN:180915260	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:0740173db9ffd264d728f32784845cd7	SP:Homo Sapiens
+ at SQ	SN:6	LN:171115067	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:1d3a93a248d92a729ee764823acbbc6b	SP:Homo Sapiens
+ at SQ	SN:7	LN:159138663	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:618366e953d6aaad97dbe4777c29375e	SP:Homo Sapiens
+ at SQ	SN:8	LN:146364022	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:96f514a9929e410c6651697bded59aec	SP:Homo Sapiens
+ at SQ	SN:9	LN:141213431	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:3e273117f15e0a400f01055d9f393768	SP:Homo Sapiens
+ at SQ	SN:10	LN:135534747	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:988c28e000e84c26d552359af1ea2e1d	SP:Homo Sapiens
+ at SQ	SN:11	LN:135006516	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:98c59049a2df285c76ffb1c6db8f8b96	SP:Homo Sapiens
+ at SQ	SN:12	LN:133851895	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:51851ac0e1a115847ad36449b0015864	SP:Homo Sapiens
+ at SQ	SN:13	LN:115169878	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:283f8d7892baa81b510a015719ca7b0b	SP:Homo Sapiens
+ at SQ	SN:14	LN:107349540	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:98f3cae32b2a2e9524bc19813927542e	SP:Homo Sapiens
+ at SQ	SN:15	LN:102531392	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:e5645a794a8238215b2cd77acb95a078	SP:Homo Sapiens
+ at SQ	SN:16	LN:90354753	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:fc9b1a7b42b97a864f56b348b06095e6	SP:Homo Sapiens
+ at SQ	SN:17	LN:81195210	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:351f64d4f4f9ddd45b35336ad97aa6de	SP:Homo Sapiens
+ at SQ	SN:18	LN:78077248	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:b15d4b2d29dde9d3e4f93d1d0f2cbc9c	SP:Homo Sapiens
+ at SQ	SN:19	LN:59128983	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:1aacd71f30db8e561810913e0b72636d	SP:Homo Sapiens
+ at SQ	SN:20	LN:63025520	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:0dec9660ec1efaaf33281c0d5ea2560f	SP:Homo Sapiens
+ at SQ	SN:21	LN:48129895	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:2979a6085bfe28e3ad6f552f361ed74d	SP:Homo Sapiens
+ at SQ	SN:22	LN:51304566	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:a718acaa6135fdca8357d5bfe94211dd	SP:Homo Sapiens
+ at SQ	SN:X	LN:155270560	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:7e0e2e580297b7764e31dbc80c2540dd	SP:Homo Sapiens
+ at SQ	SN:Y	LN:59373566	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:1fa3474750af0948bdf97d5a0ee52e51	SP:Homo Sapiens
+ at SQ	SN:MT	LN:16569	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:c68f52674c9fb33aef52dcf399755519	SP:Homo Sapiens
+ at SQ	SN:GL000207.1	LN:4262	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:f3814841f1939d3ca19072d9e89f3fd7	SP:Homo Sapiens
+ at SQ	SN:GL000226.1	LN:15008	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:1c1b2cd1fccbc0a99b6a447fa24d1504	SP:Homo Sapiens
+ at SQ	SN:GL000229.1	LN:19913	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:d0f40ec87de311d8e715b52e4c7062e1	SP:Homo Sapiens
+ at SQ	SN:GL000231.1	LN:27386	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:ba8882ce3a1efa2080e5d29b956568a4	SP:Homo Sapiens
+ at SQ	SN:GL000210.1	LN:27682	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:851106a74238044126131ce2a8e5847c	SP:Homo Sapiens
+ at SQ	SN:GL000239.1	LN:33824	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:99795f15702caec4fa1c4e15f8a29c07	SP:Homo Sapiens
+ at SQ	SN:GL000235.1	LN:34474	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:118a25ca210cfbcdfb6c2ebb249f9680	SP:Homo Sapiens
+ at SQ	SN:GL000201.1	LN:36148	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:dfb7e7ec60ffdcb85cb359ea28454ee9	SP:Homo Sapiens
+ at SQ	SN:GL000247.1	LN:36422	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:7de00226bb7df1c57276ca6baabafd15	SP:Homo Sapiens
+ at SQ	SN:GL000245.1	LN:36651	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:89bc61960f37d94abf0df2d481ada0ec	SP:Homo Sapiens
+ at SQ	SN:GL000197.1	LN:37175	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:6f5efdd36643a9b8c8ccad6f2f1edc7b	SP:Homo Sapiens
+ at SQ	SN:GL000203.1	LN:37498	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:96358c325fe0e70bee73436e8bb14dbd	SP:Homo Sapiens
+ at SQ	SN:GL000246.1	LN:38154	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:e4afcd31912af9d9c2546acf1cb23af2	SP:Homo Sapiens
+ at SQ	SN:GL000249.1	LN:38502	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:1d78abec37c15fe29a275eb08d5af236	SP:Homo Sapiens
+ at SQ	SN:GL000196.1	LN:38914	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:d92206d1bb4c3b4019c43c0875c06dc0	SP:Homo Sapiens
+ at SQ	SN:GL000248.1	LN:39786	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:5a8e43bec9be36c7b49c84d585107776	SP:Homo Sapiens
+ at SQ	SN:GL000244.1	LN:39929	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:0996b4475f353ca98bacb756ac479140	SP:Homo Sapiens
+ at SQ	SN:GL000238.1	LN:39939	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:131b1efc3270cc838686b54e7c34b17b	SP:Homo Sapiens
+ at SQ	SN:GL000202.1	LN:40103	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:06cbf126247d89664a4faebad130fe9c	SP:Homo Sapiens
+ at SQ	SN:GL000234.1	LN:40531	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:93f998536b61a56fd0ff47322a911d4b	SP:Homo Sapiens
+ at SQ	SN:GL000232.1	LN:40652	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:3e06b6741061ad93a8587531307057d8	SP:Homo Sapiens
+ at SQ	SN:GL000206.1	LN:41001	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:43f69e423533e948bfae5ce1d45bd3f1	SP:Homo Sapiens
+ at SQ	SN:GL000240.1	LN:41933	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:445a86173da9f237d7bcf41c6cb8cc62	SP:Homo Sapiens
+ at SQ	SN:GL000236.1	LN:41934	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:fdcd739913efa1fdc64b6c0cd7016779	SP:Homo Sapiens
+ at SQ	SN:GL000241.1	LN:42152	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:ef4258cdc5a45c206cea8fc3e1d858cf	SP:Homo Sapiens
+ at SQ	SN:GL000243.1	LN:43341	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:cc34279a7e353136741c9fce79bc4396	SP:Homo Sapiens
+ at SQ	SN:GL000242.1	LN:43523	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:2f8694fc47576bc81b5fe9e7de0ba49e	SP:Homo Sapiens
+ at SQ	SN:GL000230.1	LN:43691	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:b4eb71ee878d3706246b7c1dbef69299	SP:Homo Sapiens
+ at SQ	SN:GL000237.1	LN:45867	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:e0c82e7751df73f4f6d0ed30cdc853c0	SP:Homo Sapiens
+ at SQ	SN:GL000233.1	LN:45941	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:7fed60298a8d62ff808b74b6ce820001	SP:Homo Sapiens
+ at SQ	SN:GL000204.1	LN:81310	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:efc49c871536fa8d79cb0a06fa739722	SP:Homo Sapiens
+ at SQ	SN:GL000198.1	LN:90085	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:868e7784040da90d900d2d1b667a1383	SP:Homo Sapiens
+ at SQ	SN:GL000208.1	LN:92689	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:aa81be49bf3fe63a79bdc6a6f279abf6	SP:Homo Sapiens
+ at SQ	SN:GL000191.1	LN:106433	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:d75b436f50a8214ee9c2a51d30b2c2cc	SP:Homo Sapiens
+ at SQ	SN:GL000227.1	LN:128374	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:a4aead23f8053f2655e468bcc6ecdceb	SP:Homo Sapiens
+ at SQ	SN:GL000228.1	LN:129120	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:c5a17c97e2c1a0b6a9cc5a6b064b714f	SP:Homo Sapiens
+ at SQ	SN:GL000214.1	LN:137718	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:46c2032c37f2ed899eb41c0473319a69	SP:Homo Sapiens
+ at SQ	SN:GL000221.1	LN:155397	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:3238fb74ea87ae857f9c7508d315babb	SP:Homo Sapiens
+ at SQ	SN:GL000209.1	LN:159169	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:f40598e2a5a6b26e84a3775e0d1e2c81	SP:Homo Sapiens
+ at SQ	SN:GL000218.1	LN:161147	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:1d708b54644c26c7e01c2dad5426d38c	SP:Homo Sapiens
+ at SQ	SN:GL000220.1	LN:161802	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:fc35de963c57bf7648429e6454f1c9db	SP:Homo Sapiens
+ at SQ	SN:GL000213.1	LN:164239	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:9d424fdcc98866650b58f004080a992a	SP:Homo Sapiens
+ at SQ	SN:GL000211.1	LN:166566	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:7daaa45c66b288847b9b32b964e623d3	SP:Homo Sapiens
+ at SQ	SN:GL000199.1	LN:169874	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:569af3b73522fab4b40995ae4944e78e	SP:Homo Sapiens
+ at SQ	SN:GL000217.1	LN:172149	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:6d243e18dea1945fb7f2517615b8f52e	SP:Homo Sapiens
+ at SQ	SN:GL000216.1	LN:172294	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:642a232d91c486ac339263820aef7fe0	SP:Homo Sapiens
+ at SQ	SN:GL000215.1	LN:172545	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:5eb3b418480ae67a997957c909375a73	SP:Homo Sapiens
+ at SQ	SN:GL000205.1	LN:174588	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:d22441398d99caf673e9afb9a1908ec5	SP:Homo Sapiens
+ at SQ	SN:GL000219.1	LN:179198	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:f977edd13bac459cb2ed4a5457dba1b3	SP:Homo Sapiens
+ at SQ	SN:GL000224.1	LN:179693	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:d5b2fc04f6b41b212a4198a07f450e20	SP:Homo Sapiens
+ at SQ	SN:GL000223.1	LN:180455	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:399dfa03bf32022ab52a846f7ca35b30	SP:Homo Sapiens
+ at SQ	SN:GL000195.1	LN:182896	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:5d9ec007868d517e73543b005ba48535	SP:Homo Sapiens
+ at SQ	SN:GL000212.1	LN:186858	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:563531689f3dbd691331fd6c5730a88b	SP:Homo Sapiens
+ at SQ	SN:GL000222.1	LN:186861	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:6fe9abac455169f50470f5a6b01d0f59	SP:Homo Sapiens
+ at SQ	SN:GL000200.1	LN:187035	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:75e4c8d17cd4addf3917d1703cacaf25	SP:Homo Sapiens
+ at SQ	SN:GL000193.1	LN:189789	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:dbb6e8ece0b5de29da56601613007c2a	SP:Homo Sapiens
+ at SQ	SN:GL000194.1	LN:191469	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:6ac8f815bf8e845bb3031b73f812c012	SP:Homo Sapiens
+ at SQ	SN:GL000225.1	LN:211173	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:63945c3e6962f28ffd469719a747e73c	SP:Homo Sapiens
+ at SQ	SN:GL000192.1	LN:547496	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:GRCh37	M5:325ba9e808f669dfeee210fdd7b470ac	SP:Homo Sapiens
+ at SQ	SN:NC_007605	LN:171823	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	AS:NC_007605.1	M5:6743bd63b3ff2b5b8985d8933c53290a	SP:Epstein-Barr virus
+ at RG	ID:00001.1	PL:illumina	PU:00001ABXX101026.1.AACTTGAC	LB:Solexa-38820	DT:2010-10-26T00:00:00-0400	SM:TCGA-44-2665-10A-01D-0969-08	CN:BI
+ at PG	ID:GATK IndelRealigner	VN:1.4-14-g3550ea7	CL:knownAlleles=[(RodBinding name=knownAlleles source=/seq/references/Homo_sapiens_assembly19/v1/Homo_sapiens_assembly19.dbsnp.vcf), (RodBinding name=knownAlleles2 source=/seq/references/Homo_sapiens_assembly19/v1/Homo_sapiens_assembly19.1kg_pilot_indels.vcf)] targetIntervals=/seq/references/Homo_sapiens_assembly19/v1/Homo_sapiens_assembly19.indel_cleaner.intervals LODThresholdForCleaning=0.4 consensusDeterminationModel=KNOWNS_ONLY entropyThr [...]
+ at PG	ID:MarkDuplicates	PN:MarkDuplicates	PP:bwa	VN:1.464(1311)	CL:net.sf.picard.sam.MarkDuplicates INPUT=[/seq/picardtemp3/mccowan/bqsr.final/00001ABXX/C1-144_2010-10-26_2012-12-27/1/Solexa-38820/00001ABXX.1.aligned.bam] OUTPUT=/seq/picardtemp3/mccowan/bqsr.final/00001ABXX/C1-144_2010-10-26_2012-12-27/1/Solexa-38820/00001ABXX.1.aligned.duplicates_marked.bam METRICS_FILE=/seq/picardtemp3/mccowan/bqsr.final/00001ABXX/C1-144_2010-10-26_2012-12-27/1/Solexa-38820/00001ABXX.1.duplicate_metrics  [...]
+ at PG	ID:bwa	PN:bwa	VN:0.5.9-tpx	CL:bwa aln Homo_sapiens_assembly19.fasta -q 5 -l 32 -k 2 -t $NSLOTS -o 1 -f 00001ABXX.1.Solexa-38820.Homo_sapiens_assembly19.2.sai 00001ABXX.1.Solexa-38820.2.fastq.gz; bwa aln Homo_sapiens_assembly19.fasta -q 5 -l 32 -k 2 -t $NSLOTS -o 1 -f 00001ABXX.1.Solexa-38820.Homo_sapiens_assembly19.1.sai 00001ABXX.1.Solexa-38820.1.fastq.gz; bwa sampe -t $NSLOTS -T -P -f 00001ABXX.1.Solexa-38820.Homo_sapiens_assembly19.aligned_bwa.sam Homo_sapiens_assembly19.fasta 000 [...]
+00001ABXX101026:1:1:5213:130006	177	12	108855323	37	17S51M	=	108855339	-1	GATGGAAAGCTGTCCAAACCATCCAAGAAATGAGATATTGAGCTAAACATTTCATTCTTCCTCATTTC	##################<68<97:;:?<6>>>:B=>?=9??=>>?2?B@@;=;;?@?A=>>>>====	MC:Z:33S35M	MD:Z:51	PG:Z:MarkDuplicates	RG:Z:00001.1	AM:i:37	NM:i:0	SM:i:37	MQ:i:37	OQ:Z:##################B7:A=6??BD?4EEEB>DEBC?@F?BEB*D<EDAC8BDAFEEEHFFGGEI	UQ:i:0
+00001ABXX101026:1:1:5213:130006	113	12	108855339	37	33S35M	=	108855323	1	TTTTGCTATTTTTCCAGTCCATCTAAGAAATGAGGTATTGAGCTAAACATTTCATTCTTCCTCATTTC	###################################################################/	MC:Z:17S51M	MD:Z:1A33	PG:Z:MarkDuplicates	RG:Z:00001.1	AM:i:37	NM:i:1	SM:i:37	MQ:i:37	OQ:Z:###################################################################?	UQ:i:2
diff --git a/testdata/picard/sam/MarkDuplicates/optical_dupes.sam b/testdata/picard/sam/MarkDuplicates/optical_dupes.sam
new file mode 100644
index 0000000..587c69a
--- /dev/null
+++ b/testdata/picard/sam/MarkDuplicates/optical_dupes.sam
@@ -0,0 +1,16 @@
+ at HD	VN:1.0	SO:coordinate
+ at SQ	SN:chr1	LN:101
+ at SQ	SN:chr2	LN:101
+ at SQ	SN:chr3	LN:101
+ at SQ	SN:chr4	LN:101
+ at SQ	SN:chr5	LN:101
+ at SQ	SN:chr6	LN:101
+ at SQ	SN:chr7	LN:404
+ at SQ	SN:chr8	LN:202
+ at RG	ID:1AAXX.1	SM:Hi,Mom!	LB:mylib	PL:ILLUMINA
+ at PG	ID:MarkDuplicates	PN:MarkDuplicates	VN:1	CL:MarkDuplicates merge1.sam	PP:bwa
+ at PG	ID:bwa	PN:bwa	VN:1	CL:bwa aln
+C4N4WACXX140821:8:1112:2344:1984	83	chr7	1	255	101M	=	302	201	CAACAGAAGCNGGNATCTGTGTTTGTGTTTCGGATTTCCTGCTGAANNGNTTNTCGNNTCNNNNNNNNATCCCGATTTCNTTCCGCAGCTNACCTCCCAAN	)'.*.+2,))&&'&*/)-&*-)&.-)&)&),/-&&..)./.,.).*&&,&.&&-)&&&0*&&&&&&&&/32/,01460&&/6/*0*/2/283//36868/&	RG:Z:1AAXX.1	PG:Z:MarkDuplicates
+C4N4WACXX140821:8:1112:2344:1985	83	chr7	1	255	101M	=	302	201	CAACAGAAGCNGGNATCTGTGTTTGTGTTTCGGATTTCCTGCTGAANNGNTTNTCGNNTCNNNNNNNNATCCCGATTTCNTTCCGCAGCTNACCTCCCAAN	)'.*.+2,))&&'&*/)-&*-)&.-)&)&),/-&&..)./.,.).*&&,&.&&-)&&&0*&&&&&&&&/32/,01460&&/6/*0*/2/283//36868/&	RG:Z:1AAXX.1	PG:Z:MarkDuplicates
+C4N4WACXX140821:8:1112:2344:1984	163	chr7	302	255	101M	=	1	-201	NCGCGGCATCNCGATTTCTTTCCGCAGCTAACCTCCCGACAGATCGGCAGCGCGTCGTGTAGGTTATTATGGTACATCTTGTCGTGCGGCNAGAGCATACA	&/15445666651/566666553+2/14/&/555512+3/)-'/-&-'*+))*''13+3)'//++''/'))/3+&*5++)&'2+&+/*&-&&*)&-./1'1	RG:Z:1AAXX.1	PG:Z:MarkDuplicates
+C4N4WACXX140821:8:1112:2344:1985	163	chr7	302	255	101M	=	1	-201	NCGCGGCATCNCGATTTCTTTCCGCAGCTAACCTCCCGACAGATCGGCAGCGCGTCGTGTAGGTTATTATGGTACATCTTGTCGTGCGGCNAGAGCATACA	&/15445666651/566666553+2/14/&/555512+3/)-'/-&-'*+))*''13+3)'//++''/'))/3+&*5++)&'2+&+/*&-&&*)&-./1'1	RG:Z:1AAXX.1	PG:Z:MarkDuplicates
diff --git a/testdata/picard/sam/MarkDuplicates/optical_dupes_casava.sam b/testdata/picard/sam/MarkDuplicates/optical_dupes_casava.sam
new file mode 100644
index 0000000..d135320
--- /dev/null
+++ b/testdata/picard/sam/MarkDuplicates/optical_dupes_casava.sam
@@ -0,0 +1,16 @@
+ at HD	VN:1.0	SO:coordinate
+ at SQ	SN:chr1	LN:101
+ at SQ	SN:chr2	LN:101
+ at SQ	SN:chr3	LN:101
+ at SQ	SN:chr4	LN:101
+ at SQ	SN:chr5	LN:101
+ at SQ	SN:chr6	LN:101
+ at SQ	SN:chr7	LN:404
+ at SQ	SN:chr8	LN:202
+ at RG	ID:1AAXX.1	SM:Hi,Mom!	LB:mylib	PL:ILLUMINA
+ at PG	ID:MarkDuplicates	PN:MarkDuplicates	VN:1	CL:MarkDuplicates merge1.sam	PP:bwa
+ at PG	ID:bwa	PN:bwa	VN:1	CL:bwa aln
+instr:run:C4N4WACXX140821:8:1112:2344:1984	83	chr7	1	255	101M	=	302	201	CAACAGAAGCNGGNATCTGTGTTTGTGTTTCGGATTTCCTGCTGAANNGNTTNTCGNNTCNNNNNNNNATCCCGATTTCNTTCCGCAGCTNACCTCCCAAN	)'.*.+2,))&&'&*/)-&*-)&.-)&)&),/-&&..)./.,.).*&&,&.&&-)&&&0*&&&&&&&&/32/,01460&&/6/*0*/2/283//36868/&	RG:Z:1AAXX.1	PG:Z:MarkDuplicates
+instr:run:C4N4WACXX140821:8:1112:2344:1985	83	chr7	1	255	101M	=	302	201	CAACAGAAGCNGGNATCTGTGTTTGTGTTTCGGATTTCCTGCTGAANNGNTTNTCGNNTCNNNNNNNNATCCCGATTTCNTTCCGCAGCTNACCTCCCAAN	)'.*.+2,))&&'&*/)-&*-)&.-)&)&),/-&&..)./.,.).*&&,&.&&-)&&&0*&&&&&&&&/32/,01460&&/6/*0*/2/283//36868/&	RG:Z:1AAXX.1	PG:Z:MarkDuplicates
+instr:run:C4N4WACXX140821:8:1112:2344:1984	163	chr7	302	255	101M	=	1	-201	NCGCGGCATCNCGATTTCTTTCCGCAGCTAACCTCCCGACAGATCGGCAGCGCGTCGTGTAGGTTATTATGGTACATCTTGTCGTGCGGCNAGAGCATACA	&/15445666651/566666553+2/14/&/555512+3/)-'/-&-'*+))*''13+3)'//++''/'))/3+&*5++)&'2+&+/*&-&&*)&-./1'1	RG:Z:1AAXX.1	PG:Z:MarkDuplicates
+instr:run:C4N4WACXX140821:8:1112:2344:1985	163	chr7	302	255	101M	=	1	-201	NCGCGGCATCNCGATTTCTTTCCGCAGCTAACCTCCCGACAGATCGGCAGCGCGTCGTGTAGGTTATTATGGTACATCTTGTCGTGCGGCNAGAGCATACA	&/15445666651/566666553+2/14/&/555512+3/)-'/-&-'*+))*''13+3)'//++''/'))/3+&*5++)&'2+&+/*&-&&*)&-./1'1	RG:Z:1AAXX.1	PG:Z:MarkDuplicates
diff --git a/testdata/net/sf/picard/sam/MergeBamAlignment/aligned.badorder.sam b/testdata/picard/sam/MergeBamAlignment/aligned.badorder.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/MergeBamAlignment/aligned.badorder.sam
rename to testdata/picard/sam/MergeBamAlignment/aligned.badorder.sam
diff --git a/testdata/net/sf/picard/sam/MergeBamAlignment/aligned.supplement.sam b/testdata/picard/sam/MergeBamAlignment/aligned.supplement.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/MergeBamAlignment/aligned.supplement.sam
rename to testdata/picard/sam/MergeBamAlignment/aligned.supplement.sam
diff --git a/testdata/net/sf/picard/sam/MergeBamAlignment/allread1.trimmed.aligned.sam b/testdata/picard/sam/MergeBamAlignment/allread1.trimmed.aligned.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/MergeBamAlignment/allread1.trimmed.aligned.sam
rename to testdata/picard/sam/MergeBamAlignment/allread1.trimmed.aligned.sam
diff --git a/testdata/net/sf/picard/sam/MergeBamAlignment/allread2.trimmed.aligned.sam b/testdata/picard/sam/MergeBamAlignment/allread2.trimmed.aligned.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/MergeBamAlignment/allread2.trimmed.aligned.sam
rename to testdata/picard/sam/MergeBamAlignment/allread2.trimmed.aligned.sam
diff --git a/testdata/net/sf/picard/sam/MergeBamAlignment/cliptest.aligned.sam b/testdata/picard/sam/MergeBamAlignment/cliptest.aligned.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/MergeBamAlignment/cliptest.aligned.sam
rename to testdata/picard/sam/MergeBamAlignment/cliptest.aligned.sam
diff --git a/testdata/picard/sam/MergeBamAlignment/cliptest.dict b/testdata/picard/sam/MergeBamAlignment/cliptest.dict
new file mode 100644
index 0000000..3b3f5d9
--- /dev/null
+++ b/testdata/picard/sam/MergeBamAlignment/cliptest.dict
@@ -0,0 +1,2 @@
+ at HD	VN:1.5	SO:unsorted
+ at SQ	SN:chr1	LN:1000	UR:file:testdata/net/sf/picard/sam/MergeBamAlignment/cliptest.fasta	M5:17522ddd273279f4595f50fea9864734
diff --git a/testdata/net/sf/picard/sam/MergeBamAlignment/cliptest.fasta b/testdata/picard/sam/MergeBamAlignment/cliptest.fasta
similarity index 100%
rename from testdata/net/sf/picard/sam/MergeBamAlignment/cliptest.fasta
rename to testdata/picard/sam/MergeBamAlignment/cliptest.fasta
diff --git a/testdata/net/sf/picard/sam/MergeBamAlignment/cliptest.unmapped.sam b/testdata/picard/sam/MergeBamAlignment/cliptest.unmapped.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/MergeBamAlignment/cliptest.unmapped.sam
rename to testdata/picard/sam/MergeBamAlignment/cliptest.unmapped.sam
diff --git a/testdata/net/sf/picard/sam/MergeBamAlignment/firsthalf.read1.trimmed.aligned.sam b/testdata/picard/sam/MergeBamAlignment/firsthalf.read1.trimmed.aligned.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/MergeBamAlignment/firsthalf.read1.trimmed.aligned.sam
rename to testdata/picard/sam/MergeBamAlignment/firsthalf.read1.trimmed.aligned.sam
diff --git a/testdata/net/sf/picard/sam/MergeBamAlignment/firsthalf.read2.trimmed.aligned.sam b/testdata/picard/sam/MergeBamAlignment/firsthalf.read2.trimmed.aligned.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/MergeBamAlignment/firsthalf.read2.trimmed.aligned.sam
rename to testdata/picard/sam/MergeBamAlignment/firsthalf.read2.trimmed.aligned.sam
diff --git a/testdata/net/sf/picard/sam/MergeBamAlignment/multihit.aligned.sam b/testdata/picard/sam/MergeBamAlignment/multihit.aligned.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/MergeBamAlignment/multihit.aligned.sam
rename to testdata/picard/sam/MergeBamAlignment/multihit.aligned.sam
diff --git a/testdata/net/sf/picard/sam/MergeBamAlignment/multihit.filter.fragment.unmapped.sam b/testdata/picard/sam/MergeBamAlignment/multihit.filter.fragment.unmapped.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/MergeBamAlignment/multihit.filter.fragment.unmapped.sam
rename to testdata/picard/sam/MergeBamAlignment/multihit.filter.fragment.unmapped.sam
diff --git a/testdata/net/sf/picard/sam/MergeBamAlignment/multihit.filter.unmapped.sam b/testdata/picard/sam/MergeBamAlignment/multihit.filter.unmapped.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/MergeBamAlignment/multihit.filter.unmapped.sam
rename to testdata/picard/sam/MergeBamAlignment/multihit.filter.unmapped.sam
diff --git a/testdata/net/sf/picard/sam/MergeBamAlignment/multihit.unmapped.sam b/testdata/picard/sam/MergeBamAlignment/multihit.unmapped.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/MergeBamAlignment/multihit.unmapped.sam
rename to testdata/picard/sam/MergeBamAlignment/multihit.unmapped.sam
diff --git a/testdata/net/sf/picard/sam/MergeBamAlignment/secondhalf.read1.trimmed.aligned.sam b/testdata/picard/sam/MergeBamAlignment/secondhalf.read1.trimmed.aligned.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/MergeBamAlignment/secondhalf.read1.trimmed.aligned.sam
rename to testdata/picard/sam/MergeBamAlignment/secondhalf.read1.trimmed.aligned.sam
diff --git a/testdata/net/sf/picard/sam/MergeBamAlignment/secondhalf.read2.trimmed.aligned.sam b/testdata/picard/sam/MergeBamAlignment/secondhalf.read2.trimmed.aligned.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/MergeBamAlignment/secondhalf.read2.trimmed.aligned.sam
rename to testdata/picard/sam/MergeBamAlignment/secondhalf.read2.trimmed.aligned.sam
diff --git a/testdata/net/sf/picard/sam/MergeBamAlignment/unmapped.badorder.sam b/testdata/picard/sam/MergeBamAlignment/unmapped.badorder.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/MergeBamAlignment/unmapped.badorder.sam
rename to testdata/picard/sam/MergeBamAlignment/unmapped.badorder.sam
diff --git a/testdata/net/sf/picard/sam/MergeBamAlignment/unmapped.sam b/testdata/picard/sam/MergeBamAlignment/unmapped.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/MergeBamAlignment/unmapped.sam
rename to testdata/picard/sam/MergeBamAlignment/unmapped.sam
diff --git a/testdata/net/sf/picard/sam/MergeSamFiles/case1/chr11sub_file1.sam b/testdata/picard/sam/MergeSamFiles/case1/chr11sub_file1.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/MergeSamFiles/case1/chr11sub_file1.sam
rename to testdata/picard/sam/MergeSamFiles/case1/chr11sub_file1.sam
diff --git a/testdata/net/sf/picard/sam/MergeSamFiles/case1/chr11sub_file2.sam b/testdata/picard/sam/MergeSamFiles/case1/chr11sub_file2.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/MergeSamFiles/case1/chr11sub_file2.sam
rename to testdata/picard/sam/MergeSamFiles/case1/chr11sub_file2.sam
diff --git a/testdata/picard/sam/MergeSamFiles/case1/expected_output.sam b/testdata/picard/sam/MergeSamFiles/case1/expected_output.sam
new file mode 100644
index 0000000..11b4dab
--- /dev/null
+++ b/testdata/picard/sam/MergeSamFiles/case1/expected_output.sam
@@ -0,0 +1,13 @@
+ at HD	VN:1.5	GO:none	SO:coordinate
+ at SQ	SN:chrM	LN:16571	AS:HG18	UR:/seq/references/Homo_sapiens_assembly18/v0/Homo_sapiens_assembly18.fasta	M5:d2ed829b8a1628d16cbeee88e88e39eb SP:Homo sapiens
+ at RG	ID:1	PL:ILLUMINA	SM:sample1
+ at PG	ID:1	PN:something
+ at PG	ID:1.1	PN:A
+ at PG	ID:1.1.2	PN:B
+ at PG	ID:2	PN:C	PP:1.1
+ at PG	ID:2.1	PN:D	PP:1.1.2
+6194MAAXX100108:2:55:3087:12679:BI	99	chrM	50418	0	101M	=	50678	360	TCAAACATAGTCAAAGAGAGGGAGATTTCTGGATAATCACTTAAGCCCATGGTTAAACATAAATGCAAATATGTTAATGTTTACTGAATAACTTATCTGTG	9<9 at A?A@?A=@BCCA at B@BAA at B@ABBACAA at A@C at ABACB@CBAA at BABA>BACCABAACDABABCCAA at B?BACAB>CCAABBACAAD?CB>?>?<9<	RG:Z:1	E2:Z:CAGGGAGGGCGAGGGTGAGATTGTGGGGAGATGGGTGAGACGTTAAGACATTGATCCACATTTATACCCATAAGATTATGAATAATTTATTAGATATCTGT	OQ:Z:CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDCCCCCCCCCCCCCCCCCCBCCCCCBCCCCCC at CCDCCDDCDACCC@@C [...]
+6194MAAXX100108:2:55:3087:12679:BI	99	chrM	50418	0	101M	=	50678	360	TCAAACATAGTCAAAGAGAGGGAGATTTCTGGATAATCACTTAAGCCCATGGTTAAACATAAATGCAAATATGTTAATGTTTACTGAATAACTTATCTGTG	9<9 at A?A@?A=@BCCA at B@BAA at B@ABBACAA at A@C at ABACB@CBAA at BABA>BACCABAACDABABCCAA at B?BACAB>CCAABBACAAD?CB>?>?<9<	RG:Z:1	E2:Z:CAGGGAGGGCGAGGGTGAGATTGTGGGGAGATGGGTGAGACGTTAAGACATTGATCCACATTTATACCCATAAGATTATGAATAATTTATTAGATATCTGT	OQ:Z:CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDCCCCCCCCCCCCCCCCCCBCCCCCBCCCCCC at CCDCCDDCDACCC@@C [...]
+6194MAAXX100108:2:55:3087:12679:BI	99	chrM	50418	0	101M	=	50678	360	TCAAACATAGTCAAAGAGAGGGAGATTTCTGGATAATCACTTAAGCCCATGGTTAAACATAAATGCAAATATGTTAATGTTTACTGAATAACTTATCTGTG	9<9 at A?A@?A=@BCCA at B@BAA at B@ABBACAA at A@C at ABACB@CBAA at BABA>BACCABAACDABABCCAA at B?BACAB>CCAABBACAAD?CB>?>?<9<	RG:Z:1	E2:Z:CAGGGAGGGCGAGGGTGAGATTGTGGGGAGATGGGTGAGACGTTAAGACATTGATCCACATTTATACCCATAAGATTATGAATAATTTATTAGATATCTGT	OQ:Z:CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDCCCCCCCCCCCCCCCCCCBCCCCCBCCCCCC at CCDCCDDCDACCC@@C [...]
+6194MAAXX100108:2:55:3087:12679:BI	99	chrM	50418	0	101M	=	50678	360	TCAAACATAGTCAAAGAGAGGGAGATTTCTGGATAATCACTTAAGCCCATGGTTAAACATAAATGCAAATATGTTAATGTTTACTGAATAACTTATCTGTG	9<9 at A?A@?A=@BCCA at B@BAA at B@ABBACAA at A@C at ABACB@CBAA at BABA>BACCABAACDABABCCAA at B?BACAB>CCAABBACAAD?CB>?>?<9<	RG:Z:1	E2:Z:CAGGGAGGGCGAGGGTGAGATTGTGGGGAGATGGGTGAGACGTTAAGACATTGATCCACATTTATACCCATAAGATTATGAATAATTTATTAGATATCTGT	OQ:Z:CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDCCCCCCCCCCCCCCCCCCBCCCCCBCCCCCC at CCDCCDDCDACCC@@C [...]
+6194MAAXX100108:2:55:3087:12679:BI	99	chrM	50418	0	101M	=	50678	360	TCAAACATAGTCAAAGAGAGGGAGATTTCTGGATAATCACTTAAGCCCATGGTTAAACATAAATGCAAATATGTTAATGTTTACTGAATAACTTATCTGTG	9<9 at A?A@?A=@BCCA at B@BAA at B@ABBACAA at A@C at ABACB@CBAA at BABA>BACCABAACDABABCCAA at B?BACAB>CCAABBACAAD?CB>?>?<9<	RG:Z:1	E2:Z:CAGGGAGGGCGAGGGTGAGATTGTGGGGAGATGGGTGAGACGTTAAGACATTGATCCACATTTATACCCATAAGATTATGAATAATTTATTAGATATCTGT	OQ:Z:CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDCCCCCCCCCCCCCCCCCCBCCCCCBCCCCCC at CCDCCDDCDACCC@@C [...]
diff --git a/testdata/net/sf/picard/sam/MergeSamFiles/case2/chr11sub_file1.sam b/testdata/picard/sam/MergeSamFiles/case2/chr11sub_file1.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/MergeSamFiles/case2/chr11sub_file1.sam
rename to testdata/picard/sam/MergeSamFiles/case2/chr11sub_file1.sam
diff --git a/testdata/net/sf/picard/sam/MergeSamFiles/case2/chr11sub_file2.sam b/testdata/picard/sam/MergeSamFiles/case2/chr11sub_file2.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/MergeSamFiles/case2/chr11sub_file2.sam
rename to testdata/picard/sam/MergeSamFiles/case2/chr11sub_file2.sam
diff --git a/testdata/net/sf/picard/sam/MergeSamFiles/case2/chr11sub_file3.sam b/testdata/picard/sam/MergeSamFiles/case2/chr11sub_file3.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/MergeSamFiles/case2/chr11sub_file3.sam
rename to testdata/picard/sam/MergeSamFiles/case2/chr11sub_file3.sam
diff --git a/testdata/net/sf/picard/sam/MergeSamFiles/case2/chr11sub_file4.sam b/testdata/picard/sam/MergeSamFiles/case2/chr11sub_file4.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/MergeSamFiles/case2/chr11sub_file4.sam
rename to testdata/picard/sam/MergeSamFiles/case2/chr11sub_file4.sam
diff --git a/testdata/picard/sam/MergeSamFiles/case2/expected_output.sam b/testdata/picard/sam/MergeSamFiles/case2/expected_output.sam
new file mode 100644
index 0000000..6755f30
--- /dev/null
+++ b/testdata/picard/sam/MergeSamFiles/case2/expected_output.sam
@@ -0,0 +1,21 @@
+ at HD	VN:1.5	GO:none	SO:coordinate
+ at SQ	SN:chrM	LN:16571	AS:HG18	UR:/seq/references/Homo_sapiens_assembly18/v0/Homo_sapiens_assembly18.fasta	M5:d2ed829b8a1628d16cbeee88e88e39eb	SP:Homo sapiens
+ at RG	ID:1	PL:ILLUMINA	SM:sample1
+ at RG	ID:1.1	PL:ILLUMINA	SM:sample2
+ at RG	ID:1.1.2	PL:ILLUMINA	SM:sample3
+ at PG	ID:1	PN:A
+ at PG	ID:1.1	PN:X
+ at PG	ID:2	PN:B
+ at PG	ID:2.3	PN:B	PP:1
+ at PG	ID:2.4	PN:B	PP:1.1
+ at PG	ID:3	PN:C	PP:1
+ at PG	ID:3.6	PN:Y	PP:2.4
+6194MAAXX100108:2:55:3087:12679:BI	99	chrM	50418	0	101M	=	50678	360	TCAAACATAGTCAAAGAGAGGGAGATTTCTGGATAATCACTTAAGCCCATGGTTAAACATAAATGCAAATATGTTAATGTTTACTGAATAACTTATCTGTG	9<9 at A?A@?A=@BCCA at B@BAA at B@ABBACAA at A@C at ABACB@CBAA at BABA>BACCABAACDABABCCAA at B?BACAB>CCAABBACAAD?CB>?>?<9<	RG:Z:1	E2:Z:CAGGGAGGGCGAGGGTGAGATTGTGGGGAGATGGGTGAGACGTTAAGACATTGATCCACATTTATACCCATAAGATTATGAATAATTTATTAGATATCTGT	OQ:Z:CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDCCCCCCCCCCCCCCCCCCBCCCCCBCCCCCC at CCDCCDDCDACCC@@C [...]
+6194MAAXX100108:2:55:3087:12679:BI	99	chrM	50418	0	101M	=	50678	360	TCAAACATAGTCAAAGAGAGGGAGATTTCTGGATAATCACTTAAGCCCATGGTTAAACATAAATGCAAATATGTTAATGTTTACTGAATAACTTATCTGTG	9<9 at A?A@?A=@BCCA at B@BAA at B@ABBACAA at A@C at ABACB@CBAA at BABA>BACCABAACDABABCCAA at B?BACAB>CCAABBACAAD?CB>?>?<9<	RG:Z:1.1.1	E2:Z:CAGGGAGGGCGAGGGTGAGATTGTGGGGAGATGGGTGAGACGTTAAGACATTGATCCACATTTATACCCATAAGATTATGAATAATTTATTAGATATCTGT	OQ:Z:CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDCCCCCCCCCCCCCCCCCCBCCCCCBCCCCCC at CCDCCDDCDACC [...]
+6194MAAXX100108:2:55:3087:12679:BI	99	chrM	50418	0	101M	=	50678	360	TCAAACATAGTCAAAGAGAGGGAGATTTCTGGATAATCACTTAAGCCCATGGTTAAACATAAATGCAAATATGTTAATGTTTACTGAATAACTTATCTGTG	9<9 at A?A@?A=@BCCA at B@BAA at B@ABBACAA at A@C at ABACB@CBAA at BABA>BACCABAACDABABCCAA at B?BACAB>CCAABBACAAD?CB>?>?<9<	RG:Z:1	E2:Z:CAGGGAGGGCGAGGGTGAGATTGTGGGGAGATGGGTGAGACGTTAAGACATTGATCCACATTTATACCCATAAGATTATGAATAATTTATTAGATATCTGT	OQ:Z:CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDCCCCCCCCCCCCCCCCCCBCCCCCBCCCCCC at CCDCCDDCDACCC@@C [...]
+6194MAAXX100108:2:55:3087:12679:BI	99	chrM	50418	0	101M	=	50678	360	TCAAACATAGTCAAAGAGAGGGAGATTTCTGGATAATCACTTAAGCCCATGGTTAAACATAAATGCAAATATGTTAATGTTTACTGAATAACTTATCTGTG	9<9 at A?A@?A=@BCCA at B@BAA at B@ABBACAA at A@C at ABACB@CBAA at BABA>BACCABAACDABABCCAA at B?BACAB>CCAABBACAAD?CB>?>?<9<	RG:Z:1.1	E2:Z:CAGGGAGGGCGAGGGTGAGATTGTGGGGAGATGGGTGAGACGTTAAGACATTGATCCACATTTATACCCATAAGATTATGAATAATTTATTAGATATCTGT	OQ:Z:CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDCCCCCCCCCCCCCCCCCCBCCCCCBCCCCCC at CCDCCDDCDACCC@ [...]
+6194MAAXX100108:2:55:3087:12679:BI	147	chrM	50678	0	101M	=	50418	-360	TATATATATAGAAAGAGAGAGAGGCAGAGATGTAAAGTAATTTATGGAGTTTGATGTTATGTCAGGGTAATTACATGATTATATAATTAACAGGTTTCTTT	:99:=>?@>BABAAAC at CACAC@@BCACAAC;=BBC at AB@BB@@B@@CABBB@@B at C@@B@@AC@@@@A at B@>A at B@@B@@@@@A?A?@<?@=<>>;<=<9	RG:Z:1	E2:Z:ATATATATATTGGGAGTGTTTGTTACTCTTCTGTTCTGTTAGATGTTCTAGCTTCTGACCTCTCTTTGCCGCCACCTCCCCCCCCCCCCCACTTCCGACCC	OQ:Z:CDCCCADCACCD at AC@CCCCCDCCCCCCCCCC;CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCBBCCCC [...]
+6194MAAXX100108:2:55:3087:12679:BI	147	chrM	50678	0	101M	=	50418	-360	TATATATATAGAAAGAGAGAGAGGCAGAGATGTAAAGTAATTTATGGAGTTTGATGTTATGTCAGGGTAATTACATGATTATATAATTAACAGGTTTCTTT	:99:=>?@>BABAAAC at CACAC@@BCACAAC;=BBC at AB@BB@@B@@CABBB@@B at C@@B@@AC@@@@A at B@>A at B@@B@@@@@A?A?@<?@=<>>;<=<9	RG:Z:1.1	E2:Z:ATATATATATTGGGAGTGTTTGTTACTCTTCTGTTCTGTTAGATGTTCTAGCTTCTGACCTCTCTTTGCCGCCACCTCCCCCCCCCCCCCACTTCCGACCC	OQ:Z:CDCCCADCACCD at AC@CCCCCDCCCCCCCCCC;CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCBBCC [...]
+6194MAAXX100108:2:55:3087:12679:BI	147	chrM	50678	0	101M	=	50418	-360	TATATATATAGAAAGAGAGAGAGGCAGAGATGTAAAGTAATTTATGGAGTTTGATGTTATGTCAGGGTAATTACATGATTATATAATTAACAGGTTTCTTT	:99:=>?@>BABAAAC at CACAC@@BCACAAC;=BBC at AB@BB@@B@@CABBB@@B at C@@B@@AC@@@@A at B@>A at B@@B@@@@@A?A?@<?@=<>>;<=<9	RG:Z:1	E2:Z:ATATATATATTGGGAGTGTTTGTTACTCTTCTGTTCTGTTAGATGTTCTAGCTTCTGACCTCTCTTTGCCGCCACCTCCCCCCCCCCCCCACTTCCGACCC	OQ:Z:CDCCCADCACCD at AC@CCCCCDCCCCCCCCCC;CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCBBCCCC [...]
+6194MAAXX100108:2:55:19789:20399:BI	73	chrM	50921	0	101M	=	50921	0	CAACCAGAAACCAGGCTGGGCGCTANAGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNAAAAGCTTACTGTCTAGAGGGCGAGGTACAAANNNNNN	97:>?A>>BB>@B@?@CA5@?5=C@############################################################################	RG:Z:1.1	E2:Z:ACCAAGTGGGAAGTTAGTTAAAAGGTCATTTTTTTTTTTTTTTTTTTGTTGTTTTGTTTTTTTCCCCAAAATACCATATTTTTTAAGATATTTTTTTTTGT	OQ:Z:C>CCCC@@C@@CC@?CCC2@?8<??########################################################################### [...]
+6194MAAXX100108:2:55:19789:20399:BI	73	chrM	50921	0	101M	=	50921	0	CAACCAGAAACCAGGCTGGGCGCTANAGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNAAAAGCTTACTGTCTAGAGGGCGAGGTACAAANNNNNN	97:>?A>>BB>@B@?@CA5@?5=C@############################################################################	RG:Z:1	E2:Z:ACCAAGTGGGAAGTTAGTTAAAAGGTCATTTTTTTTTTTTTTTTTTTGTTGTTTTGTTTTTTTCCCCAAAATACCATATTTTTTAAGATATTTTTTTTTGT	OQ:Z:C>CCCC@@C@@CC@?CCC2@?8<??############################################################################	 [...]
diff --git a/testdata/net/sf/picard/sam/MergeSamFiles/unsorted_input/1.sam b/testdata/picard/sam/MergeSamFiles/unsorted_input/1.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/MergeSamFiles/unsorted_input/1.sam
rename to testdata/picard/sam/MergeSamFiles/unsorted_input/1.sam
diff --git a/testdata/net/sf/picard/sam/MergeSamFiles/unsorted_input/2.sam b/testdata/picard/sam/MergeSamFiles/unsorted_input/2.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/MergeSamFiles/unsorted_input/2.sam
rename to testdata/picard/sam/MergeSamFiles/unsorted_input/2.sam
diff --git a/testdata/picard/sam/PositionalDownsampleSam/header.dict b/testdata/picard/sam/PositionalDownsampleSam/header.dict
new file mode 100644
index 0000000..a932fee
--- /dev/null
+++ b/testdata/picard/sam/PositionalDownsampleSam/header.dict
@@ -0,0 +1,9 @@
+ at HD	VN:1.0	SO:unsorted
+ at SQ	SN:chr1	LN:10100	UR:header.fasta
+ at SQ	SN:chr2	LN:10100	UR:header.fasta
+ at SQ	SN:chr3	LN:10100	UR:header.fasta
+ at SQ	SN:chr4	LN:10100	UR:header.fasta
+ at SQ	SN:chr5	LN:10100	UR:header.fasta
+ at SQ	SN:chr6	LN:10100	UR:header.fasta
+ at SQ	SN:chr7	LN:40400	UR:header.fasta
+ at SQ	SN:chr8	LN:20200	UR:header.fasta
diff --git a/testdata/picard/sam/SamFileConverterTest/unmapped.bam b/testdata/picard/sam/SamFileConverterTest/unmapped.bam
new file mode 100644
index 0000000..893e530
Binary files /dev/null and b/testdata/picard/sam/SamFileConverterTest/unmapped.bam differ
diff --git a/testdata/picard/sam/SamFileConverterTest/unmapped.cram b/testdata/picard/sam/SamFileConverterTest/unmapped.cram
new file mode 100644
index 0000000..c78d16f
Binary files /dev/null and b/testdata/picard/sam/SamFileConverterTest/unmapped.cram differ
diff --git a/testdata/picard/sam/SamFileConverterTest/unmapped.sam b/testdata/picard/sam/SamFileConverterTest/unmapped.sam
new file mode 100755
index 0000000..5dfafbc
--- /dev/null
+++ b/testdata/picard/sam/SamFileConverterTest/unmapped.sam
@@ -0,0 +1,14 @@
+ at HD	VN:1.5	SO:queryname
+ at RG	ID:0	PL:ILLUMINA	SM:Hi,Mom!
+test:1	77	*	0	0	*	*	0	0	GTACCCGGGGATCCCACTCTCTCCTTGCCCTTCATGATCTTGGCACTTTCGGAGTAATGGTCATAACATCAGTAAA	ECEEEEEDDCCCDDDCDDDDEBDCCCCDBBD at DBCBCCCC:ACAA?CBCCCABCBBBBBBB?BBB?<?A?<7<<=9	RG:Z:0
+test:1	141	*	0	0	*	*	0	0	TCGACTCTAGAGGATCCCACGAGTTTCACTGTTGTCACATATGCTGGAGTGCAGTGGTGCAATCTTGGCTTACTGC	GGGGGGGGGGFGGGGGGGGGGGGFGGGGGGGFGGFGGDGEEE-:CECEECFEDE?FBCFD=@CBBADCF=CC:CCD	RG:Z:0
+test:2	77	*	0	0	*	*	0	0	GTACCCGGGGATCCCACGGTAACTGCTGACGGGAAGCTTGCTTTAAACCAGATTAGCCAGATCTCCATGAAGTCGC	FDFFFFEDDDDCDFDDDFDBEEDCDEDDDDDCCCCDCCCCDCDCDBCEBCB at CAC=CCBCC?CAA at A@?@:?77<A	RG:Z:0
+test:2	141	*	0	0	*	*	0	0	TCGACTCTAGAGGATCCCACCCAGCCTAGGACCTAACACATAGCAAGTTCTCAGGAAAAACACACTAAGTGAATAA	GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGFGGGGFGGGEF<FFEECEEFGDDDGEGDGDBAFD?DC?=A=AD=A	RG:Z:0
+test:3	589	*	0	0	*	*	0	0	GTACCCGGGGATCCCACTGTTACCTCCTTCACTCCTCAAATCATCTCTTTGTAACAATGGACTGACATGGTCAACA	A?AAA@???????@?@############################################################	RG:Z:0
+test:3	653	*	0	0	*	*	0	0	TCGACTCTAGAGGATCCCACGCTCACACCACTGCATTCCCGCATGGGCGCCAGACTGCGCCTCTGCATCTAACGAC	DDDDDDDDDDDCDDDDDDDD?:D=5*05A@*>AA5???######################################	RG:Z:0
+test:4	589	*	0	0	*	*	0	0	GTACCCGGGGATCCCCCAGAGACTACGAAAAGGGGGGTGGAACAGTACTCTAAGAGAGACCATGTTCAACTCTGGG	A?@@@@@@??????##############################################################	RG:Z:0
+test:4	653	*	0	0	*	*	0	0	TCGACTCTAGAGGATCCCCGGGCACAGATCGGACGAGCGTGGTGATGGGATAGAGTGTAGATGTCGTTGGTCGCTC	BBBBBBBBBBBBBBBBBB##########################################################	RG:Z:0
+test:5	77	*	0	0	*	*	0	0	GTACCCGGGGATCCCACAGGAGGAGAAGCCAGAATTCCTCATCTGTGCCCAGGGCTGGGTCTGACAAACCAAAACT	EEEEEEEEDDDEEEEEDD@@:B=B5??5=??:5=3=2===1,:80<?=???9+?######################	RG:Z:0
+test:5	141	*	0	0	*	*	0	0	TCGACTCTAGAGGATCCCACGTCTGAAAGAAGAGCGGAGTGGTTGAAATGCAGAAAGTGAGGAGAAATGAACAGGA	DDDDDDDDDDDDDDDDDDDD=BCD=C=ADD?A=BD?B???@52->B at B@C5BBBBB?@##################	RG:Z:0
+test:6	77	*	0	0	*	*	0	0	GTACCCGGGGATCCCACCCACCTTGTTTCCACTCTGGGGAGCAGAGCATGAGGCCTAGGCTAAGCTGGAGCCATAT	GEGGGFAEDEDCEEEGGFEEEEGEFCEEDEDEDEDDCDBCDDDCDCDDDCCCBCC at CCBCCCBBCBBBBBCBBBBC	RG:Z:0
+test:6	141	*	0	0	*	*	0	0	TCGACTCTAGAGGATCCCACCAATGGGAGCCATTTCCTCATCTGTAAAAACAATAATATAGGCCTGTGGTTCAGAT	CCCCC<EEEEDDDDDGGGGGGGGGFGGGDGGEDGGGGGGDFFCFDFFEFFGD at GACDFDDBDBDACBEBCC?-??#	RG:Z:0
diff --git a/testdata/net/sf/picard/sam/aligned.sam b/testdata/picard/sam/aligned.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/aligned.sam
rename to testdata/picard/sam/aligned.sam
diff --git a/testdata/net/sf/picard/sam/aligned_queryname_sorted.bam b/testdata/picard/sam/aligned_queryname_sorted.bam
similarity index 100%
rename from testdata/net/sf/picard/sam/aligned_queryname_sorted.bam
rename to testdata/picard/sam/aligned_queryname_sorted.bam
diff --git a/testdata/net/sf/picard/sam/aligned_queryname_sorted.sam b/testdata/picard/sam/aligned_queryname_sorted.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/aligned_queryname_sorted.sam
rename to testdata/picard/sam/aligned_queryname_sorted.sam
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/sam/bam2fastq/nonpaired/.gitignore
similarity index 100%
copy from src/java/org/broad/tribble/util/ftp/.gitignore
copy to testdata/picard/sam/bam2fastq/nonpaired/.gitignore
diff --git a/testdata/net/sf/picard/sam/bam2fastq/paired/bad/README.txt b/testdata/picard/sam/bam2fastq/paired/bad/README.txt
similarity index 100%
rename from testdata/net/sf/picard/sam/bam2fastq/paired/bad/README.txt
rename to testdata/picard/sam/bam2fastq/paired/bad/README.txt
diff --git a/testdata/net/sf/picard/sam/bam2fastq/paired/bad/grouped-unpaired-mate.sam b/testdata/picard/sam/bam2fastq/paired/bad/grouped-unpaired-mate.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/bam2fastq/paired/bad/grouped-unpaired-mate.sam
rename to testdata/picard/sam/bam2fastq/paired/bad/grouped-unpaired-mate.sam
diff --git a/testdata/net/sf/picard/sam/bam2fastq/paired/bad/unpaired-mate.sam b/testdata/picard/sam/bam2fastq/paired/bad/unpaired-mate.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/bam2fastq/paired/bad/unpaired-mate.sam
rename to testdata/picard/sam/bam2fastq/paired/bad/unpaired-mate.sam
diff --git a/testdata/net/sf/picard/sam/bam2fastq/paired/ok/README.txt b/testdata/picard/sam/bam2fastq/paired/ok/README.txt
similarity index 100%
rename from testdata/net/sf/picard/sam/bam2fastq/paired/ok/README.txt
rename to testdata/picard/sam/bam2fastq/paired/ok/README.txt
diff --git a/testdata/net/sf/picard/sam/bam2fastq/paired/ok/clipping_test.sam b/testdata/picard/sam/bam2fastq/paired/ok/clipping_test.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/bam2fastq/paired/ok/clipping_test.sam
rename to testdata/picard/sam/bam2fastq/paired/ok/clipping_test.sam
diff --git a/testdata/net/sf/picard/sam/bam2fastq/paired/ok/first-mate-bof-last-mate-eof.sam b/testdata/picard/sam/bam2fastq/paired/ok/first-mate-bof-last-mate-eof.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/bam2fastq/paired/ok/first-mate-bof-last-mate-eof.sam
rename to testdata/picard/sam/bam2fastq/paired/ok/first-mate-bof-last-mate-eof.sam
diff --git a/testdata/net/sf/picard/sam/bam2fastq/paired/ok/grouped-last-pair-mates-flipped.sam b/testdata/picard/sam/bam2fastq/paired/ok/grouped-last-pair-mates-flipped.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/bam2fastq/paired/ok/grouped-last-pair-mates-flipped.sam
rename to testdata/picard/sam/bam2fastq/paired/ok/grouped-last-pair-mates-flipped.sam
diff --git a/testdata/net/sf/picard/sam/bam2fastq/paired/ok/last-pair-mates-flipped.sam b/testdata/picard/sam/bam2fastq/paired/ok/last-pair-mates-flipped.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/bam2fastq/paired/ok/last-pair-mates-flipped.sam
rename to testdata/picard/sam/bam2fastq/paired/ok/last-pair-mates-flipped.sam
diff --git a/testdata/net/sf/picard/sam/bam2fastq/paired/ok/sorted-pair-no-rg.sam b/testdata/picard/sam/bam2fastq/paired/ok/sorted-pair-no-rg.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/bam2fastq/paired/ok/sorted-pair-no-rg.sam
rename to testdata/picard/sam/bam2fastq/paired/ok/sorted-pair-no-rg.sam
diff --git a/testdata/net/sf/picard/sam/bam2fastq/paired/ok/sorted-pair.sam b/testdata/picard/sam/bam2fastq/paired/ok/sorted-pair.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/bam2fastq/paired/ok/sorted-pair.sam
rename to testdata/picard/sam/bam2fastq/paired/ok/sorted-pair.sam
diff --git a/testdata/net/sf/picard/sam/basic.fasta b/testdata/picard/sam/basic.fasta
similarity index 100%
rename from testdata/net/sf/picard/sam/basic.fasta
rename to testdata/picard/sam/basic.fasta
diff --git a/testdata/net/sf/picard/sam/duplicate_sequence_names.fasta b/testdata/picard/sam/duplicate_sequence_names.fasta
similarity index 100%
rename from testdata/net/sf/picard/sam/duplicate_sequence_names.fasta
rename to testdata/picard/sam/duplicate_sequence_names.fasta
diff --git a/testdata/net/sf/picard/sam/fastq2bam/README.txt b/testdata/picard/sam/fastq2bam/README.txt
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/README.txt
rename to testdata/picard/sam/fastq2bam/README.txt
diff --git a/src/java/org/broad/tribble/util/ftp/.gitignore b/testdata/picard/sam/fastq2bam/bad-format/0lines.txt
similarity index 100%
rename from src/java/org/broad/tribble/util/ftp/.gitignore
rename to testdata/picard/sam/fastq2bam/bad-format/0lines.txt
diff --git a/testdata/net/sf/picard/sam/fastq2bam/bad-format/1lines.txt b/testdata/picard/sam/fastq2bam/bad-format/1lines.txt
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/bad-format/1lines.txt
rename to testdata/picard/sam/fastq2bam/bad-format/1lines.txt
diff --git a/testdata/net/sf/picard/sam/fastq2bam/bad-format/2lines.txt b/testdata/picard/sam/fastq2bam/bad-format/2lines.txt
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/bad-format/2lines.txt
rename to testdata/picard/sam/fastq2bam/bad-format/2lines.txt
diff --git a/testdata/net/sf/picard/sam/fastq2bam/bad-format/3lines.txt b/testdata/picard/sam/fastq2bam/bad-format/3lines.txt
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/bad-format/3lines.txt
rename to testdata/picard/sam/fastq2bam/bad-format/3lines.txt
diff --git a/testdata/net/sf/picard/sam/fastq2bam/bad-format/bad-qual-header.txt b/testdata/picard/sam/fastq2bam/bad-format/bad-qual-header.txt
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/bad-format/bad-qual-header.txt
rename to testdata/picard/sam/fastq2bam/bad-format/bad-qual-header.txt
diff --git a/testdata/net/sf/picard/sam/fastq2bam/bad-format/bad-seq-header.txt b/testdata/picard/sam/fastq2bam/bad-format/bad-seq-header.txt
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/bad-format/bad-seq-header.txt
rename to testdata/picard/sam/fastq2bam/bad-format/bad-seq-header.txt
diff --git a/testdata/net/sf/picard/sam/fastq2bam/bad-format/extra-line.txt b/testdata/picard/sam/fastq2bam/bad-format/extra-line.txt
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/bad-format/extra-line.txt
rename to testdata/picard/sam/fastq2bam/bad-format/extra-line.txt
diff --git a/testdata/net/sf/picard/sam/fastq2bam/bad-format/too-many-quals.txt b/testdata/picard/sam/fastq2bam/bad-format/too-many-quals.txt
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/bad-format/too-many-quals.txt
rename to testdata/picard/sam/fastq2bam/bad-format/too-many-quals.txt
diff --git a/testdata/net/sf/picard/sam/fastq2bam/bad-format/tt b/testdata/picard/sam/fastq2bam/bad-format/tt
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/bad-format/tt
rename to testdata/picard/sam/fastq2bam/bad-format/tt
diff --git a/testdata/net/sf/picard/sam/fastq2bam/bad-paired/dott b/testdata/picard/sam/fastq2bam/bad-paired/dott
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/bad-paired/dott
rename to testdata/picard/sam/fastq2bam/bad-paired/dott
diff --git a/testdata/net/sf/picard/sam/fastq2bam/bad-paired/pair-a1.txt b/testdata/picard/sam/fastq2bam/bad-paired/pair-a1.txt
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/bad-paired/pair-a1.txt
rename to testdata/picard/sam/fastq2bam/bad-paired/pair-a1.txt
diff --git a/testdata/net/sf/picard/sam/fastq2bam/bad-paired/pair-a2.txt b/testdata/picard/sam/fastq2bam/bad-paired/pair-a2.txt
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/bad-paired/pair-a2.txt
rename to testdata/picard/sam/fastq2bam/bad-paired/pair-a2.txt
diff --git a/testdata/net/sf/picard/sam/fastq2bam/bad-paired/pair-b1.txt b/testdata/picard/sam/fastq2bam/bad-paired/pair-b1.txt
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/bad-paired/pair-b1.txt
rename to testdata/picard/sam/fastq2bam/bad-paired/pair-b1.txt
diff --git a/testdata/net/sf/picard/sam/fastq2bam/bad-paired/pair-b2.txt b/testdata/picard/sam/fastq2bam/bad-paired/pair-b2.txt
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/bad-paired/pair-b2.txt
rename to testdata/picard/sam/fastq2bam/bad-paired/pair-b2.txt
diff --git a/testdata/net/sf/picard/sam/fastq2bam/bad-paired/pair1-badnum.txt b/testdata/picard/sam/fastq2bam/bad-paired/pair1-badnum.txt
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/bad-paired/pair1-badnum.txt
rename to testdata/picard/sam/fastq2bam/bad-paired/pair1-badnum.txt
diff --git a/testdata/net/sf/picard/sam/fastq2bam/bad-paired/pair1-nonum.txt b/testdata/picard/sam/fastq2bam/bad-paired/pair1-nonum.txt
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/bad-paired/pair1-nonum.txt
rename to testdata/picard/sam/fastq2bam/bad-paired/pair1-nonum.txt
diff --git a/testdata/net/sf/picard/sam/fastq2bam/bad-paired/pair1-one-more-record.txt b/testdata/picard/sam/fastq2bam/bad-paired/pair1-one-more-record.txt
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/bad-paired/pair1-one-more-record.txt
rename to testdata/picard/sam/fastq2bam/bad-paired/pair1-one-more-record.txt
diff --git a/testdata/net/sf/picard/sam/fastq2bam/bad-paired/pair1-onetoken.txt b/testdata/picard/sam/fastq2bam/bad-paired/pair1-onetoken.txt
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/bad-paired/pair1-onetoken.txt
rename to testdata/picard/sam/fastq2bam/bad-paired/pair1-onetoken.txt
diff --git a/testdata/net/sf/picard/sam/fastq2bam/bad-paired/pair2-badnum.txt b/testdata/picard/sam/fastq2bam/bad-paired/pair2-badnum.txt
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/bad-paired/pair2-badnum.txt
rename to testdata/picard/sam/fastq2bam/bad-paired/pair2-badnum.txt
diff --git a/testdata/net/sf/picard/sam/fastq2bam/bad-paired/pair2-diff-name.txt b/testdata/picard/sam/fastq2bam/bad-paired/pair2-diff-name.txt
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/bad-paired/pair2-diff-name.txt
rename to testdata/picard/sam/fastq2bam/bad-paired/pair2-diff-name.txt
diff --git a/testdata/net/sf/picard/sam/fastq2bam/bad-paired/pair2-one-more-record.txt b/testdata/picard/sam/fastq2bam/bad-paired/pair2-one-more-record.txt
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/bad-paired/pair2-one-more-record.txt
rename to testdata/picard/sam/fastq2bam/bad-paired/pair2-one-more-record.txt
diff --git a/testdata/net/sf/picard/sam/fastq2bam/fastq-illumina/README.txt b/testdata/picard/sam/fastq2bam/fastq-illumina/README.txt
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/fastq-illumina/README.txt
rename to testdata/picard/sam/fastq2bam/fastq-illumina/README.txt
diff --git a/testdata/net/sf/picard/sam/fastq2bam/fastq-illumina/illumina-sanger_full_range_as_sanger-62.fastq b/testdata/picard/sam/fastq2bam/fastq-illumina/illumina-sanger_full_range_as_sanger-62.fastq
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/fastq-illumina/illumina-sanger_full_range_as_sanger-62.fastq
rename to testdata/picard/sam/fastq2bam/fastq-illumina/illumina-sanger_full_range_as_sanger-62.fastq
diff --git a/testdata/net/sf/picard/sam/fastq2bam/fastq-illumina/s_1_1_sequence.txt b/testdata/picard/sam/fastq2bam/fastq-illumina/s_1_1_sequence.txt
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/fastq-illumina/s_1_1_sequence.txt
rename to testdata/picard/sam/fastq2bam/fastq-illumina/s_1_1_sequence.txt
diff --git a/testdata/net/sf/picard/sam/fastq2bam/fastq-illumina/s_1_2_sequence.txt b/testdata/picard/sam/fastq2bam/fastq-illumina/s_1_2_sequence.txt
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/fastq-illumina/s_1_2_sequence.txt
rename to testdata/picard/sam/fastq2bam/fastq-illumina/s_1_2_sequence.txt
diff --git a/testdata/net/sf/picard/sam/fastq2bam/fastq-illumina/s_1_sequence.txt b/testdata/picard/sam/fastq2bam/fastq-illumina/s_1_sequence.txt
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/fastq-illumina/s_1_sequence.txt
rename to testdata/picard/sam/fastq2bam/fastq-illumina/s_1_sequence.txt
diff --git a/testdata/net/sf/picard/sam/fastq2bam/fastq-sanger/5k-30BB2AAXX.3.aligned.sam.fastq b/testdata/picard/sam/fastq2bam/fastq-sanger/5k-30BB2AAXX.3.aligned.sam.fastq
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/fastq-sanger/5k-30BB2AAXX.3.aligned.sam.fastq
rename to testdata/picard/sam/fastq2bam/fastq-sanger/5k-30BB2AAXX.3.aligned.sam.fastq
diff --git a/testdata/net/sf/picard/sam/fastq2bam/fastq-sanger/5k-v1-Rhodobacter_LW1.sam.fastq b/testdata/picard/sam/fastq2bam/fastq-sanger/5k-v1-Rhodobacter_LW1.sam.fastq
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/fastq-sanger/5k-v1-Rhodobacter_LW1.sam.fastq
rename to testdata/picard/sam/fastq2bam/fastq-sanger/5k-v1-Rhodobacter_LW1.sam.fastq
diff --git a/testdata/net/sf/picard/sam/fastq2bam/fastq-sanger/README.txt b/testdata/picard/sam/fastq2bam/fastq-sanger/README.txt
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/fastq-sanger/README.txt
rename to testdata/picard/sam/fastq2bam/fastq-sanger/README.txt
diff --git a/testdata/net/sf/picard/sam/fastq2bam/fastq-sanger/sanger_full_range_as_sanger-63.fastq b/testdata/picard/sam/fastq2bam/fastq-sanger/sanger_full_range_as_sanger-63.fastq
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/fastq-sanger/sanger_full_range_as_sanger-63.fastq
rename to testdata/picard/sam/fastq2bam/fastq-sanger/sanger_full_range_as_sanger-63.fastq
diff --git a/testdata/net/sf/picard/sam/fastq2bam/fastq-solexa/README.txt b/testdata/picard/sam/fastq2bam/fastq-solexa/README.txt
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/fastq-solexa/README.txt
rename to testdata/picard/sam/fastq2bam/fastq-solexa/README.txt
diff --git a/testdata/net/sf/picard/sam/fastq2bam/fastq-solexa/bad1.fastq b/testdata/picard/sam/fastq2bam/fastq-solexa/bad1.fastq
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/fastq-solexa/bad1.fastq
rename to testdata/picard/sam/fastq2bam/fastq-solexa/bad1.fastq
diff --git a/testdata/net/sf/picard/sam/fastq2bam/fastq-solexa/s_1_sequence.txt b/testdata/picard/sam/fastq2bam/fastq-solexa/s_1_sequence.txt
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/fastq-solexa/s_1_sequence.txt
rename to testdata/picard/sam/fastq2bam/fastq-solexa/s_1_sequence.txt
diff --git a/testdata/net/sf/picard/sam/fastq2bam/fastq-solexa/solexa_full_range_as_sanger.fastq b/testdata/picard/sam/fastq2bam/fastq-solexa/solexa_full_range_as_sanger.fastq
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/fastq-solexa/solexa_full_range_as_sanger.fastq
rename to testdata/picard/sam/fastq2bam/fastq-solexa/solexa_full_range_as_sanger.fastq
diff --git a/testdata/net/sf/picard/sam/fastq2bam/fastq-solexa/solexa_full_range_as_solexa.fastq b/testdata/picard/sam/fastq2bam/fastq-solexa/solexa_full_range_as_solexa.fastq
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/fastq-solexa/solexa_full_range_as_solexa.fastq
rename to testdata/picard/sam/fastq2bam/fastq-solexa/solexa_full_range_as_solexa.fastq
diff --git a/testdata/net/sf/picard/sam/fastq2bam/ok-paired/illumina-sanger_full_range_as_sanger-62.fastq b/testdata/picard/sam/fastq2bam/ok-paired/illumina-sanger_full_range_as_sanger-62.fastq
similarity index 100%
copy from testdata/net/sf/picard/sam/fastq2bam/ok-paired/illumina-sanger_full_range_as_sanger-62.fastq
copy to testdata/picard/sam/fastq2bam/ok-paired/illumina-sanger_full_range_as_sanger-62.fastq
diff --git a/testdata/net/sf/picard/sam/fastq2bam/ok-paired/pair1.txt b/testdata/picard/sam/fastq2bam/ok-paired/pair1.txt
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/ok-paired/pair1.txt
rename to testdata/picard/sam/fastq2bam/ok-paired/pair1.txt
diff --git a/testdata/net/sf/picard/sam/fastq2bam/ok-paired/pair2.txt b/testdata/picard/sam/fastq2bam/ok-paired/pair2.txt
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/ok-paired/pair2.txt
rename to testdata/picard/sam/fastq2bam/ok-paired/pair2.txt
diff --git a/testdata/net/sf/picard/sam/fastq2bam/ok-paired/s_1_1_sequence.txt b/testdata/picard/sam/fastq2bam/ok-paired/s_1_1_sequence.txt
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/ok-paired/s_1_1_sequence.txt
rename to testdata/picard/sam/fastq2bam/ok-paired/s_1_1_sequence.txt
diff --git a/testdata/net/sf/picard/sam/fastq2bam/ok-paired/s_1_2_sequence.txt b/testdata/picard/sam/fastq2bam/ok-paired/s_1_2_sequence.txt
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/ok-paired/s_1_2_sequence.txt
rename to testdata/picard/sam/fastq2bam/ok-paired/s_1_2_sequence.txt
diff --git a/testdata/net/sf/picard/sam/fastq2bam/ok-paired/s_1_sequence.txt b/testdata/picard/sam/fastq2bam/ok-paired/s_1_sequence.txt
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/ok-paired/s_1_sequence.txt
rename to testdata/picard/sam/fastq2bam/ok-paired/s_1_sequence.txt
diff --git a/testdata/net/sf/picard/sam/fastq2bam/permissive-format/pair1.txt b/testdata/picard/sam/fastq2bam/permissive-format/pair1.txt
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/permissive-format/pair1.txt
rename to testdata/picard/sam/fastq2bam/permissive-format/pair1.txt
diff --git a/testdata/net/sf/picard/sam/fastq2bam/permissive-format/pair2.txt b/testdata/picard/sam/fastq2bam/permissive-format/pair2.txt
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/permissive-format/pair2.txt
rename to testdata/picard/sam/fastq2bam/permissive-format/pair2.txt
diff --git a/testdata/net/sf/picard/sam/fastq2bam/permissive-format/s_1_1_sequence.txt b/testdata/picard/sam/fastq2bam/permissive-format/s_1_1_sequence.txt
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/permissive-format/s_1_1_sequence.txt
rename to testdata/picard/sam/fastq2bam/permissive-format/s_1_1_sequence.txt
diff --git a/testdata/net/sf/picard/sam/fastq2bam/permissive-format/s_1_2_sequence.txt b/testdata/picard/sam/fastq2bam/permissive-format/s_1_2_sequence.txt
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/permissive-format/s_1_2_sequence.txt
rename to testdata/picard/sam/fastq2bam/permissive-format/s_1_2_sequence.txt
diff --git a/testdata/net/sf/picard/sam/fastq2bam/permissive-format/s_1_sequence.txt b/testdata/picard/sam/fastq2bam/permissive-format/s_1_sequence.txt
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/permissive-format/s_1_sequence.txt
rename to testdata/picard/sam/fastq2bam/permissive-format/s_1_sequence.txt
diff --git a/testdata/net/sf/picard/sam/fastq2bam/ok-paired/illumina-sanger_full_range_as_sanger-62.fastq b/testdata/picard/sam/fastq2bam/sequential-files/paired_end_R1_001.fastq
similarity index 100%
copy from testdata/net/sf/picard/sam/fastq2bam/ok-paired/illumina-sanger_full_range_as_sanger-62.fastq
copy to testdata/picard/sam/fastq2bam/sequential-files/paired_end_R1_001.fastq
diff --git a/testdata/net/sf/picard/sam/fastq2bam/ok-paired/illumina-sanger_full_range_as_sanger-62.fastq b/testdata/picard/sam/fastq2bam/sequential-files/paired_end_R1_002.fastq
similarity index 100%
copy from testdata/net/sf/picard/sam/fastq2bam/ok-paired/illumina-sanger_full_range_as_sanger-62.fastq
copy to testdata/picard/sam/fastq2bam/sequential-files/paired_end_R1_002.fastq
diff --git a/testdata/net/sf/picard/sam/fastq2bam/ok-paired/illumina-sanger_full_range_as_sanger-62.fastq b/testdata/picard/sam/fastq2bam/sequential-files/paired_end_R2_001.fastq
similarity index 100%
copy from testdata/net/sf/picard/sam/fastq2bam/ok-paired/illumina-sanger_full_range_as_sanger-62.fastq
copy to testdata/picard/sam/fastq2bam/sequential-files/paired_end_R2_001.fastq
diff --git a/testdata/net/sf/picard/sam/fastq2bam/ok-paired/illumina-sanger_full_range_as_sanger-62.fastq b/testdata/picard/sam/fastq2bam/sequential-files/paired_end_R2_002.fastq
similarity index 100%
copy from testdata/net/sf/picard/sam/fastq2bam/ok-paired/illumina-sanger_full_range_as_sanger-62.fastq
copy to testdata/picard/sam/fastq2bam/sequential-files/paired_end_R2_002.fastq
diff --git a/testdata/net/sf/picard/sam/fastq2bam/ok-paired/illumina-sanger_full_range_as_sanger-62.fastq b/testdata/picard/sam/fastq2bam/sequential-files/single_end_R1_001.fastq
similarity index 100%
copy from testdata/net/sf/picard/sam/fastq2bam/ok-paired/illumina-sanger_full_range_as_sanger-62.fastq
copy to testdata/picard/sam/fastq2bam/sequential-files/single_end_R1_001.fastq
diff --git a/testdata/net/sf/picard/sam/fastq2bam/ok-paired/illumina-sanger_full_range_as_sanger-62.fastq b/testdata/picard/sam/fastq2bam/sequential-files/single_end_R1_002.fastq
similarity index 100%
rename from testdata/net/sf/picard/sam/fastq2bam/ok-paired/illumina-sanger_full_range_as_sanger-62.fastq
rename to testdata/picard/sam/fastq2bam/sequential-files/single_end_R1_002.fastq
diff --git a/testdata/net/sf/picard/sam/insert_size_metrics_test.sam b/testdata/picard/sam/insert_size_metrics_test.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/insert_size_metrics_test.sam
rename to testdata/picard/sam/insert_size_metrics_test.sam
diff --git a/testdata/net/sf/picard/sam/ValidateSamFileTest/invalid_coord_sort_order.sam b/testdata/picard/sam/invalid_coord_sort_order.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/ValidateSamFileTest/invalid_coord_sort_order.sam
rename to testdata/picard/sam/invalid_coord_sort_order.sam
diff --git a/testdata/net/sf/picard/sam/merger.dict b/testdata/picard/sam/merger.dict
similarity index 100%
rename from testdata/net/sf/picard/sam/merger.dict
rename to testdata/picard/sam/merger.dict
diff --git a/testdata/net/sf/picard/sam/merger.fasta b/testdata/picard/sam/merger.fasta
similarity index 100%
rename from testdata/net/sf/picard/sam/merger.fasta
rename to testdata/picard/sam/merger.fasta
diff --git a/testdata/net/sf/picard/sam/onehalfaligned.sam b/testdata/picard/sam/onehalfaligned.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/onehalfaligned.sam
rename to testdata/picard/sam/onehalfaligned.sam
diff --git a/testdata/net/sf/picard/sam/otherhalfaligned.sam b/testdata/picard/sam/otherhalfaligned.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/otherhalfaligned.sam
rename to testdata/picard/sam/otherhalfaligned.sam
diff --git a/testdata/net/sf/picard/sam/revert_sam_basic.sam b/testdata/picard/sam/revert_sam_basic.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/revert_sam_basic.sam
rename to testdata/picard/sam/revert_sam_basic.sam
diff --git a/testdata/net/sf/picard/sam/revert_sam_negative.sam b/testdata/picard/sam/revert_sam_negative.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/revert_sam_negative.sam
rename to testdata/picard/sam/revert_sam_negative.sam
diff --git a/testdata/picard/sam/split_test.sam b/testdata/picard/sam/split_test.sam
new file mode 100755
index 0000000..7e79e48
--- /dev/null
+++ b/testdata/picard/sam/split_test.sam
@@ -0,0 +1,15 @@
+ at HD	VN:1.0	SO:queryname
+ at RG	ID:1	SM:foo	LB:lib-1
+ at RG	ID:2	SM:bar
+ at RG	ID:3	SM:bar2	LB:lib-3
+ at RG	ID:4	SM:bar2	LB:lib-1
+A	77	*	0	0	*	*	0	0	CAACAGAAGC	)'.*.+2,))	RG:Z:1
+A	141	*	0	0	*	*	0	0	CAACAGAAGC	)'.*.+2,))	RG:Z:1
+B	77	*	0	0	*	*	0	0	CAACAGAAGC	)'.*.+2,))	RG:Z:3
+B	141	*	0	0	*	*	0	0	CAACAGAAGC	)'.*.+2,))	RG:Z:3
+C	77	*	0	0	*	*	0	0	CAACAGAAGC	)'.*.+2,))	RG:Z:2
+C	141	*	0	0	*	*	0	0	CAACAGAAGC	)'.*.+2,))	RG:Z:2
+D	77	*	0	0	*	*	0	0	CAACAGAAGC	)'.*.+2,))	RG:Z:1
+D	141	*	0	0	*	*	0	0	CAACAGAAGC	)'.*.+2,))	RG:Z:1
+E	77	*	0	0	*	*	0	0	CAACAGAAGC	)'.*.+2,))	RG:Z:4
+E	141	*	0	0	*	*	0	0	CAACAGAAGC	)'.*.+2,))	RG:Z:4
diff --git a/testdata/picard/sam/split_test2.sam b/testdata/picard/sam/split_test2.sam
new file mode 100755
index 0000000..6b81e85
--- /dev/null
+++ b/testdata/picard/sam/split_test2.sam
@@ -0,0 +1,9 @@
+ at HD	VN:1.0	SO:queryname
+ at RG	ID:1	SM:foo	LB:lib-1
+ at RG	ID:3	SM:bar2	LB:lib-3
+A	77	*	0	0	*	*	0	0	CAACAGAAGC	)'.*.+2,))	RG:Z:1
+A	141	*	0	0	*	*	0	0	CAACAGAAGC	)'.*.+2,))	RG:Z:1
+B	77	*	0	0	*	*	0	0	CAACAGAAGC	)'.*.+2,))	RG:Z:3
+B	141	*	0	0	*	*	0	0	CAACAGAAGC	)'.*.+2,))	RG:Z:3
+D	77	*	0	0	*	*	0	0	CAACAGAAGC	)'.*.+2,))	RG:Z:1
+D	141	*	0	0	*	*	0	0	CAACAGAAGC	)'.*.+2,))	RG:Z:1
diff --git a/testdata/net/sf/picard/sam/summary_alignment_bisulfite_test.sam b/testdata/picard/sam/summary_alignment_bisulfite_test.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/summary_alignment_bisulfite_test.sam
rename to testdata/picard/sam/summary_alignment_bisulfite_test.sam
diff --git a/testdata/net/sf/picard/sam/summary_alignment_stats_test.fasta b/testdata/picard/sam/summary_alignment_stats_test.fasta
similarity index 100%
rename from testdata/net/sf/picard/sam/summary_alignment_stats_test.fasta
rename to testdata/picard/sam/summary_alignment_stats_test.fasta
diff --git a/testdata/net/sf/picard/sam/summary_alignment_stats_test.sam b/testdata/picard/sam/summary_alignment_stats_test.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/summary_alignment_stats_test.sam
rename to testdata/picard/sam/summary_alignment_stats_test.sam
diff --git a/testdata/net/sf/picard/sam/summary_alignment_stats_test2.sam b/testdata/picard/sam/summary_alignment_stats_test2.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/summary_alignment_stats_test2.sam
rename to testdata/picard/sam/summary_alignment_stats_test2.sam
diff --git a/testdata/net/sf/picard/sam/summary_alignment_stats_test_multiple.sam b/testdata/picard/sam/summary_alignment_stats_test_multiple.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/summary_alignment_stats_test_multiple.sam
rename to testdata/picard/sam/summary_alignment_stats_test_multiple.sam
diff --git a/testdata/net/sf/picard/sam/unmapped.sam b/testdata/picard/sam/unmapped.sam
similarity index 100%
rename from testdata/net/sf/picard/sam/unmapped.sam
rename to testdata/picard/sam/unmapped.sam
diff --git a/testdata/picard/sam/viewsam_intervals_test.interval_list b/testdata/picard/sam/viewsam_intervals_test.interval_list
new file mode 100644
index 0000000..5bd4626
--- /dev/null
+++ b/testdata/picard/sam/viewsam_intervals_test.interval_list
@@ -0,0 +1,7 @@
+ at HD	VN:1.4	SO:coordinate
+ at SQ	SN:chr1	LN:101
+ at SQ	SN:chr6	LN:303
+ at SQ	SN:chr7	LN:404
+chr1	500	502	+	CHR1_NO_MATCH
+chr7	1	2	+	CHR7_MATCH
+chr7	305	306	+	CHR7_MATCH
\ No newline at end of file
diff --git a/testdata/picard/sam/viewsam_intervals_test.sam b/testdata/picard/sam/viewsam_intervals_test.sam
new file mode 100644
index 0000000..63bb3e6
--- /dev/null
+++ b/testdata/picard/sam/viewsam_intervals_test.sam
@@ -0,0 +1,9 @@
+ at HD	VN:1.0	SO:queryname
+ at SQ	SN:chr1	LN:101
+ at SQ	SN:chr6	LN:303
+ at SQ	SN:chr7	LN:404
+ at RG	ID:0	SM:Hi,Momma!	LB:whatever	PU:me	PL:ILLUMINA
+CHR1_SHOULD_NOT_MATCH	89	chr1	1	255	101M	*	0	0	TTCATGCTGANGCNCTCTTACGATCGTACAGATGCAAATATTAACANNCNTTNAAGNNCANNNNNNNNNCAATACAATANTAGAGTACGTNAACACTCCAN	&/,&-.1/6/&&)&).)/,&0768)&/.,/874,&.4137572)&/&&,&1-&.0/&&*,&&&&&&&&&&18775799,&16:8775-56256/69::;0&	RG:Z:0	XN:i:1
+CHR7_SHOULD_MATCH	83	chr7	1	255	101M	=	302	201	CAACAGAAGCNGGNATCTGTGTTTGTGTTTCGGATTTCCTGCTGAANNGNTTNTCGNNTCNNNNNNNNATCCCGATTTCNTTCCGCAGCTNACCTCCCAAN	)'.*.+2,))&&'&*/)-&*-)&.-)&)&),/-&&..)./.,.).*&&,&.&&-)&&&0*&&&&&&&&/32/,01460&&/6/*0*/2/283//36868/&	RG:Z:0
+CHR7_SHOULD_MATCH_2	163	chr7	302	255	10M1D10M5I76M	=	1	-201	NCGCGGCATCNCGATTTCTTTCCGCAGCTAACCTCCCGACAGATCGGCAGCGCGTCGTGTAGGTTATTATGGTACATCTTGTCGTGCGGCNAGAGCATACA	&/15445666651/566666553+2/14/&/555512+3/)-'/-&-'*+))*''13+3)'//++''/'))/3+&*5++)&'2+&+/*&-&&*)&-./1'1	RG:Z:0
+CHR7_SHOULD_NOT_MATCH	99	chr7	21	255	101M	=	16	96	CAACAGAAGCNGGNATCTGTGTTTGTGTTTCGGATTTCCTGCTGAANNGNTTNTCGNNTCNNNNNNNNATCCCGATTTCNTTCCGCAGCTNACCTCCCAAN	)'.*.+2,))&&'&*/)-&*-)&.-)&)&),/-&&..)./.,.).*&&,&.&&-)&&&0*&&&&&&&&/32/,01460&&/6/*0*/2/283//36868/&	RG:Z:0
\ No newline at end of file
diff --git a/testdata/picard/util/BedToIntervalListTest/end_after_chr.bed b/testdata/picard/util/BedToIntervalListTest/end_after_chr.bed
new file mode 100644
index 0000000..b4b3e1c
--- /dev/null
+++ b/testdata/picard/util/BedToIntervalListTest/end_after_chr.bed
@@ -0,0 +1 @@
+chr1	0	1000001
diff --git a/testdata/picard/util/BedToIntervalListTest/end_before_chr.bed b/testdata/picard/util/BedToIntervalListTest/end_before_chr.bed
new file mode 100644
index 0000000..4391f24
--- /dev/null
+++ b/testdata/picard/util/BedToIntervalListTest/end_before_chr.bed
@@ -0,0 +1 @@
+chr1	100	0
diff --git a/testdata/picard/util/BedToIntervalListTest/extended.bed b/testdata/picard/util/BedToIntervalListTest/extended.bed
new file mode 100644
index 0000000..1ca1b08
--- /dev/null
+++ b/testdata/picard/util/BedToIntervalListTest/extended.bed
@@ -0,0 +1,2 @@
+chr1	100	2000	chr1_100_2000+	11	+
+chr1	3000	4000	chr1_3000_4000-	12	-
diff --git a/testdata/picard/util/BedToIntervalListTest/extended.bed.interval_list b/testdata/picard/util/BedToIntervalListTest/extended.bed.interval_list
new file mode 100644
index 0000000..b81b162
--- /dev/null
+++ b/testdata/picard/util/BedToIntervalListTest/extended.bed.interval_list
@@ -0,0 +1,11 @@
+ at HD	VN:1.5	SO:coordinate
+ at SQ	SN:chr1	LN:1000000
+ at SQ	SN:chr2	LN:1000000
+ at SQ	SN:chr3	LN:1000000
+ at SQ	SN:chr4	LN:1000000
+ at SQ	SN:chr5	LN:1000000
+ at SQ	SN:chr6	LN:1000000
+ at SQ	SN:chr7	LN:1000000
+ at SQ	SN:chr8	LN:1000000
+chr1	101	2000	+	chr1_100_2000+
+chr1	3001	4000	-	chr1_3000_4000-
diff --git a/testdata/picard/util/BedToIntervalListTest/header.sam b/testdata/picard/util/BedToIntervalListTest/header.sam
new file mode 100644
index 0000000..da6a803
--- /dev/null
+++ b/testdata/picard/util/BedToIntervalListTest/header.sam
@@ -0,0 +1,9 @@
+ at HD	VN:1.0	SO:coordinate
+ at SQ	SN:chr1	LN:1000000
+ at SQ	SN:chr2	LN:1000000
+ at SQ	SN:chr3	LN:1000000
+ at SQ	SN:chr4	LN:1000000
+ at SQ	SN:chr5	LN:1000000
+ at SQ	SN:chr6	LN:1000000
+ at SQ	SN:chr7	LN:1000000
+ at SQ	SN:chr8	LN:1000000
diff --git a/testdata/picard/util/BedToIntervalListTest/missing_chr.bed b/testdata/picard/util/BedToIntervalListTest/missing_chr.bed
new file mode 100644
index 0000000..be175b0
--- /dev/null
+++ b/testdata/picard/util/BedToIntervalListTest/missing_chr.bed
@@ -0,0 +1,2 @@
+chr1	3000	4000
+chrX	100	2000
diff --git a/testdata/picard/util/BedToIntervalListTest/off_by_one_interval.bed b/testdata/picard/util/BedToIntervalListTest/off_by_one_interval.bed
new file mode 100644
index 0000000..de9365b
--- /dev/null
+++ b/testdata/picard/util/BedToIntervalListTest/off_by_one_interval.bed
@@ -0,0 +1 @@
+chr1	100	99
diff --git a/testdata/picard/util/BedToIntervalListTest/one_base_interval.bed b/testdata/picard/util/BedToIntervalListTest/one_base_interval.bed
new file mode 100644
index 0000000..1915c0d
--- /dev/null
+++ b/testdata/picard/util/BedToIntervalListTest/one_base_interval.bed
@@ -0,0 +1 @@
+chr1	100	101
diff --git a/testdata/picard/util/BedToIntervalListTest/one_base_interval.bed.interval_list b/testdata/picard/util/BedToIntervalListTest/one_base_interval.bed.interval_list
new file mode 100644
index 0000000..8a81888
--- /dev/null
+++ b/testdata/picard/util/BedToIntervalListTest/one_base_interval.bed.interval_list
@@ -0,0 +1,10 @@
+ at HD	VN:1.5	SO:coordinate
+ at SQ	SN:chr1	LN:1000000
+ at SQ	SN:chr2	LN:1000000
+ at SQ	SN:chr3	LN:1000000
+ at SQ	SN:chr4	LN:1000000
+ at SQ	SN:chr5	LN:1000000
+ at SQ	SN:chr6	LN:1000000
+ at SQ	SN:chr7	LN:1000000
+ at SQ	SN:chr8	LN:1000000
+chr1	101	101	+	.
diff --git a/testdata/picard/util/BedToIntervalListTest/overlapping.bed b/testdata/picard/util/BedToIntervalListTest/overlapping.bed
new file mode 100644
index 0000000..d2e83c4
--- /dev/null
+++ b/testdata/picard/util/BedToIntervalListTest/overlapping.bed
@@ -0,0 +1,2 @@
+chr1	100	2000
+chr1	1000	4000
diff --git a/testdata/picard/util/BedToIntervalListTest/overlapping.bed.interval_list b/testdata/picard/util/BedToIntervalListTest/overlapping.bed.interval_list
new file mode 100644
index 0000000..364b28a
--- /dev/null
+++ b/testdata/picard/util/BedToIntervalListTest/overlapping.bed.interval_list
@@ -0,0 +1,10 @@
+ at HD	VN:1.5	SO:coordinate
+ at SQ	SN:chr1	LN:1000000
+ at SQ	SN:chr2	LN:1000000
+ at SQ	SN:chr3	LN:1000000
+ at SQ	SN:chr4	LN:1000000
+ at SQ	SN:chr5	LN:1000000
+ at SQ	SN:chr6	LN:1000000
+ at SQ	SN:chr7	LN:1000000
+ at SQ	SN:chr8	LN:1000000
+chr1	101	4000	+	.
diff --git a/testdata/picard/util/BedToIntervalListTest/seq_dict_test.bed b/testdata/picard/util/BedToIntervalListTest/seq_dict_test.bed
new file mode 100644
index 0000000..c7270d0
--- /dev/null
+++ b/testdata/picard/util/BedToIntervalListTest/seq_dict_test.bed
@@ -0,0 +1,3 @@
+chr1	100	2000
+chr1	3000	4000
+chr8	500	600
\ No newline at end of file
diff --git a/testdata/picard/util/BedToIntervalListTest/seq_dict_test.bed.interval_list b/testdata/picard/util/BedToIntervalListTest/seq_dict_test.bed.interval_list
new file mode 100644
index 0000000..56cdfc7
--- /dev/null
+++ b/testdata/picard/util/BedToIntervalListTest/seq_dict_test.bed.interval_list
@@ -0,0 +1,12 @@
+ at HD	VN:1.5	SO:coordinate
+ at SQ	SN:chr1	LN:249250621	AS:b37
+ at SQ	SN:chr2	LN:243199373	AS:b37
+ at SQ	SN:chr3	LN:198022430	AS:b37
+ at SQ	SN:chr4	LN:191154276	AS:b37
+ at SQ	SN:chr5	LN:180915260	AS:b37
+ at SQ	SN:chr6	LN:171115067	AS:b37
+ at SQ	SN:chr7	LN:159138663	AS:b37
+ at SQ	SN:chr8	LN:146364022	AS:b37
+chr1	101	2000	+	.
+chr1	3001	4000	+	.
+chr8	501	600	+	.
diff --git a/testdata/picard/util/BedToIntervalListTest/seq_dict_test.dictionary.bad b/testdata/picard/util/BedToIntervalListTest/seq_dict_test.dictionary.bad
new file mode 100644
index 0000000..1910281
--- /dev/null
+++ b/testdata/picard/util/BedToIntervalListTest/seq_dict_test.dictionary.bad
@@ -0,0 +1 @@
+foo
\ No newline at end of file
diff --git a/testdata/picard/util/BedToIntervalListTest/seq_dict_test.dictionary.bad.vcf b/testdata/picard/util/BedToIntervalListTest/seq_dict_test.dictionary.bad.vcf
new file mode 100644
index 0000000..8019ba7
--- /dev/null
+++ b/testdata/picard/util/BedToIntervalListTest/seq_dict_test.dictionary.bad.vcf
@@ -0,0 +1,7 @@
+##fileformat=VCFv4.2
+##fileDate=20150406
+##source=bedToIntervalListTest
+##reference=file:///seq/references/1000GenomesPilot-NCBI36.fasta
+##contig=<ID=chr1,length=249250621,assembly=b37>
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	NA12878
+chr1	109	.	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=1019;Dels=0.00;HRun=0;HaplotypeScore=686.65;MQ=19.20;MQ0=288;OQ=2175.54;QD=2.13;SB=-1042.18	GT:AD:DP:GL:GQ	0/1:610,327:308:-316.30,-95.47,-803.03:99
\ No newline at end of file
diff --git a/testdata/picard/util/BedToIntervalListTest/seq_dict_test.dictionary.dict b/testdata/picard/util/BedToIntervalListTest/seq_dict_test.dictionary.dict
new file mode 100644
index 0000000..22df212
--- /dev/null
+++ b/testdata/picard/util/BedToIntervalListTest/seq_dict_test.dictionary.dict
@@ -0,0 +1,9 @@
+ at HD	VN:1.5	SO:unsorted
+ at SQ	SN:chr1	LN:249250621	AS:b37
+ at SQ	SN:chr2	LN:243199373	AS:b37
+ at SQ	SN:chr3	LN:198022430	AS:b37
+ at SQ	SN:chr4	LN:191154276	AS:b37
+ at SQ	SN:chr5	LN:180915260	AS:b37
+ at SQ	SN:chr6	LN:171115067	AS:b37
+ at SQ	SN:chr7	LN:159138663	AS:b37
+ at SQ	SN:chr8	LN:146364022	AS:b37
diff --git a/testdata/picard/util/BedToIntervalListTest/seq_dict_test.dictionary.fasta b/testdata/picard/util/BedToIntervalListTest/seq_dict_test.dictionary.fasta
new file mode 100644
index 0000000..d8d60dc
--- /dev/null
+++ b/testdata/picard/util/BedToIntervalListTest/seq_dict_test.dictionary.fasta
@@ -0,0 +1,16 @@
+>chr1
+TTCATGCTGA
+>chr2
+AGCCCTCTTA
+>chr3
+CGATCGTACA
+>chr4
+GATGCAAATA
+>chr5
+TTAACAAACC
+>chr6
+CATNNNNACA
+>chr7
+AGCGCGTCCT
+>chr8
+ACCAGACGCG
\ No newline at end of file
diff --git a/testdata/picard/util/BedToIntervalListTest/seq_dict_test.dictionary.interval_list b/testdata/picard/util/BedToIntervalListTest/seq_dict_test.dictionary.interval_list
new file mode 100644
index 0000000..56cdfc7
--- /dev/null
+++ b/testdata/picard/util/BedToIntervalListTest/seq_dict_test.dictionary.interval_list
@@ -0,0 +1,12 @@
+ at HD	VN:1.5	SO:coordinate
+ at SQ	SN:chr1	LN:249250621	AS:b37
+ at SQ	SN:chr2	LN:243199373	AS:b37
+ at SQ	SN:chr3	LN:198022430	AS:b37
+ at SQ	SN:chr4	LN:191154276	AS:b37
+ at SQ	SN:chr5	LN:180915260	AS:b37
+ at SQ	SN:chr6	LN:171115067	AS:b37
+ at SQ	SN:chr7	LN:159138663	AS:b37
+ at SQ	SN:chr8	LN:146364022	AS:b37
+chr1	101	2000	+	.
+chr1	3001	4000	+	.
+chr8	501	600	+	.
diff --git a/testdata/picard/util/BedToIntervalListTest/seq_dict_test.dictionary.sam b/testdata/picard/util/BedToIntervalListTest/seq_dict_test.dictionary.sam
new file mode 100644
index 0000000..85c21fa
--- /dev/null
+++ b/testdata/picard/util/BedToIntervalListTest/seq_dict_test.dictionary.sam
@@ -0,0 +1,9 @@
+ at HD	VN:1.0	SO:coordinate
+ at SQ	SN:chr1	LN:249250621	AS:b37
+ at SQ	SN:chr2	LN:243199373	AS:b37
+ at SQ	SN:chr3	LN:198022430	AS:b37
+ at SQ	SN:chr4	LN:191154276	AS:b37
+ at SQ	SN:chr5	LN:180915260	AS:b37
+ at SQ	SN:chr6	LN:171115067	AS:b37
+ at SQ	SN:chr7	LN:159138663	AS:b37
+ at SQ	SN:chr8	LN:146364022	AS:b37
diff --git a/testdata/picard/util/BedToIntervalListTest/seq_dict_test.dictionary.vcf b/testdata/picard/util/BedToIntervalListTest/seq_dict_test.dictionary.vcf
new file mode 100644
index 0000000..04e9ce0
--- /dev/null
+++ b/testdata/picard/util/BedToIntervalListTest/seq_dict_test.dictionary.vcf
@@ -0,0 +1,14 @@
+##fileformat=VCFv4.2
+##fileDate=20150406
+##source=bedToIntervalListTest
+##reference=file:///seq/references/1000GenomesPilot-NCBI36.fasta
+##contig=<ID=chr1,length=249250621,assembly=b37>
+##contig=<ID=chr2,length=243199373,assembly=b37>
+##contig=<ID=chr3,length=198022430,assembly=b37>
+##contig=<ID=chr4,length=191154276,assembly=b37>
+##contig=<ID=chr5,length=180915260,assembly=b37>
+##contig=<ID=chr6,length=171115067,assembly=b37>
+##contig=<ID=chr7,length=159138663,assembly=b37>
+##contig=<ID=chr8,length=146364022,assembly=b37>
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	NA12878
+chr1	109	.	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=1019;Dels=0.00;HRun=0;HaplotypeScore=686.65;MQ=19.20;MQ0=288;OQ=2175.54;QD=2.13;SB=-1042.18	GT:AD:DP:GL:GQ	0/1:610,327:308:-316.30,-95.47,-803.03:99
\ No newline at end of file
diff --git a/testdata/picard/util/BedToIntervalListTest/simple.bed b/testdata/picard/util/BedToIntervalListTest/simple.bed
new file mode 100644
index 0000000..74cf130
--- /dev/null
+++ b/testdata/picard/util/BedToIntervalListTest/simple.bed
@@ -0,0 +1,2 @@
+chr1	100	2000
+chr1	3000	4000
diff --git a/testdata/picard/util/BedToIntervalListTest/simple.bed.interval_list b/testdata/picard/util/BedToIntervalListTest/simple.bed.interval_list
new file mode 100644
index 0000000..23150ad
--- /dev/null
+++ b/testdata/picard/util/BedToIntervalListTest/simple.bed.interval_list
@@ -0,0 +1,11 @@
+ at HD	VN:1.5	SO:coordinate
+ at SQ	SN:chr1	LN:1000000
+ at SQ	SN:chr2	LN:1000000
+ at SQ	SN:chr3	LN:1000000
+ at SQ	SN:chr4	LN:1000000
+ at SQ	SN:chr5	LN:1000000
+ at SQ	SN:chr6	LN:1000000
+ at SQ	SN:chr7	LN:1000000
+ at SQ	SN:chr8	LN:1000000
+chr1	101	2000	+	.
+chr1	3001	4000	+	.
diff --git a/testdata/picard/util/BedToIntervalListTest/start_after_chr.bed b/testdata/picard/util/BedToIntervalListTest/start_after_chr.bed
new file mode 100644
index 0000000..9a252ac
--- /dev/null
+++ b/testdata/picard/util/BedToIntervalListTest/start_after_chr.bed
@@ -0,0 +1 @@
+chr1	1000001 10000
diff --git a/testdata/picard/util/BedToIntervalListTest/start_before_chr.bed b/testdata/picard/util/BedToIntervalListTest/start_before_chr.bed
new file mode 100644
index 0000000..e44f58a
--- /dev/null
+++ b/testdata/picard/util/BedToIntervalListTest/start_before_chr.bed
@@ -0,0 +1 @@
+chr1	-1	10000
diff --git a/testdata/picard/util/BedToIntervalListTest/zero_base_interval.bed b/testdata/picard/util/BedToIntervalListTest/zero_base_interval.bed
new file mode 100644
index 0000000..a316cb9
--- /dev/null
+++ b/testdata/picard/util/BedToIntervalListTest/zero_base_interval.bed
@@ -0,0 +1 @@
+chr1	100	100
diff --git a/testdata/picard/util/BedToIntervalListTest/zero_base_interval.bed.interval_list b/testdata/picard/util/BedToIntervalListTest/zero_base_interval.bed.interval_list
new file mode 100644
index 0000000..2d1c780
--- /dev/null
+++ b/testdata/picard/util/BedToIntervalListTest/zero_base_interval.bed.interval_list
@@ -0,0 +1,10 @@
+ at HD	VN:1.5	SO:coordinate
+ at SQ	SN:chr1	LN:1000000
+ at SQ	SN:chr2	LN:1000000
+ at SQ	SN:chr3	LN:1000000
+ at SQ	SN:chr4	LN:1000000
+ at SQ	SN:chr5	LN:1000000
+ at SQ	SN:chr6	LN:1000000
+ at SQ	SN:chr7	LN:1000000
+ at SQ	SN:chr8	LN:1000000
+chr1	101	100	+	.
diff --git a/testdata/net/sf/picard/util/all_ones_text_file.txt b/testdata/picard/util/all_ones_text_file.txt
similarity index 100%
rename from testdata/net/sf/picard/util/all_ones_text_file.txt
rename to testdata/picard/util/all_ones_text_file.txt
diff --git a/testdata/net/sf/picard/util/no_grouping_file.txt b/testdata/picard/util/no_grouping_file.txt
similarity index 100%
rename from testdata/net/sf/picard/util/no_grouping_file.txt
rename to testdata/picard/util/no_grouping_file.txt
diff --git a/testdata/picard/util/scatterable.interval_list b/testdata/picard/util/scatterable.interval_list
new file mode 100755
index 0000000..52e1712
--- /dev/null
+++ b/testdata/picard/util/scatterable.interval_list
@@ -0,0 +1,89 @@
+ at HD	VN:1.5	SO:coordinate
+ at SQ	SN:1	LN:249250621	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:1b22b98cdeb4a9304cb5d48026a85128	SP:Homo Sapiens
+ at SQ	SN:2	LN:243199373	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:a0d9851da00400dec1098a9255ac712e	SP:Homo Sapiens
+ at SQ	SN:3	LN:198022430	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:fdfd811849cc2fadebc929bb925902e5	SP:Homo Sapiens
+ at SQ	SN:4	LN:191154276	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:23dccd106897542ad87d2765d28a19a1	SP:Homo Sapiens
+ at SQ	SN:5	LN:180915260	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:0740173db9ffd264d728f32784845cd7	SP:Homo Sapiens
+ at SQ	SN:6	LN:171115067	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:1d3a93a248d92a729ee764823acbbc6b	SP:Homo Sapiens
+ at SQ	SN:7	LN:159138663	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:618366e953d6aaad97dbe4777c29375e	SP:Homo Sapiens
+ at SQ	SN:8	LN:146364022	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:96f514a9929e410c6651697bded59aec	SP:Homo Sapiens
+ at SQ	SN:9	LN:141213431	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:3e273117f15e0a400f01055d9f393768	SP:Homo Sapiens
+ at SQ	SN:10	LN:135534747	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:988c28e000e84c26d552359af1ea2e1d	SP:Homo Sapiens
+ at SQ	SN:11	LN:135006516	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:98c59049a2df285c76ffb1c6db8f8b96	SP:Homo Sapiens
+ at SQ	SN:12	LN:133851895	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:51851ac0e1a115847ad36449b0015864	SP:Homo Sapiens
+ at SQ	SN:13	LN:115169878	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:283f8d7892baa81b510a015719ca7b0b	SP:Homo Sapiens
+ at SQ	SN:14	LN:107349540	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:98f3cae32b2a2e9524bc19813927542e	SP:Homo Sapiens
+ at SQ	SN:15	LN:102531392	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:e5645a794a8238215b2cd77acb95a078	SP:Homo Sapiens
+ at SQ	SN:16	LN:90354753	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:fc9b1a7b42b97a864f56b348b06095e6	SP:Homo Sapiens
+ at SQ	SN:17	LN:81195210	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:351f64d4f4f9ddd45b35336ad97aa6de	SP:Homo Sapiens
+ at SQ	SN:18	LN:78077248	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:b15d4b2d29dde9d3e4f93d1d0f2cbc9c	SP:Homo Sapiens
+ at SQ	SN:19	LN:59128983	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:1aacd71f30db8e561810913e0b72636d	SP:Homo Sapiens
+ at SQ	SN:20	LN:63025520	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:0dec9660ec1efaaf33281c0d5ea2560f	SP:Homo Sapiens
+ at SQ	SN:21	LN:48129895	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:2979a6085bfe28e3ad6f552f361ed74d	SP:Homo Sapiens
+ at SQ	SN:22	LN:51304566	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:a718acaa6135fdca8357d5bfe94211dd	SP:Homo Sapiens
+ at SQ	SN:X	LN:155270560	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:7e0e2e580297b7764e31dbc80c2540dd	SP:Homo Sapiens
+ at SQ	SN:Y	LN:59373566	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:1fa3474750af0948bdf97d5a0ee52e51	SP:Homo Sapiens
+ at SQ	SN:MT	LN:16569	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:c68f52674c9fb33aef52dcf399755519	SP:Homo Sapiens
+ at SQ	SN:GL000207.1	LN:4262	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:f3814841f1939d3ca19072d9e89f3fd7	SP:Homo Sapiens
+ at SQ	SN:GL000226.1	LN:15008	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:1c1b2cd1fccbc0a99b6a447fa24d1504	SP:Homo Sapiens
+ at SQ	SN:GL000229.1	LN:19913	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:d0f40ec87de311d8e715b52e4c7062e1	SP:Homo Sapiens
+ at SQ	SN:GL000231.1	LN:27386	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:ba8882ce3a1efa2080e5d29b956568a4	SP:Homo Sapiens
+ at SQ	SN:GL000210.1	LN:27682	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:851106a74238044126131ce2a8e5847c	SP:Homo Sapiens
+ at SQ	SN:GL000239.1	LN:33824	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:99795f15702caec4fa1c4e15f8a29c07	SP:Homo Sapiens
+ at SQ	SN:GL000235.1	LN:34474	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:118a25ca210cfbcdfb6c2ebb249f9680	SP:Homo Sapiens
+ at SQ	SN:GL000201.1	LN:36148	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:dfb7e7ec60ffdcb85cb359ea28454ee9	SP:Homo Sapiens
+ at SQ	SN:GL000247.1	LN:36422	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:7de00226bb7df1c57276ca6baabafd15	SP:Homo Sapiens
+ at SQ	SN:GL000245.1	LN:36651	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:89bc61960f37d94abf0df2d481ada0ec	SP:Homo Sapiens
+ at SQ	SN:GL000197.1	LN:37175	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:6f5efdd36643a9b8c8ccad6f2f1edc7b	SP:Homo Sapiens
+ at SQ	SN:GL000203.1	LN:37498	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:96358c325fe0e70bee73436e8bb14dbd	SP:Homo Sapiens
+ at SQ	SN:GL000246.1	LN:38154	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:e4afcd31912af9d9c2546acf1cb23af2	SP:Homo Sapiens
+ at SQ	SN:GL000249.1	LN:38502	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:1d78abec37c15fe29a275eb08d5af236	SP:Homo Sapiens
+ at SQ	SN:GL000196.1	LN:38914	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:d92206d1bb4c3b4019c43c0875c06dc0	SP:Homo Sapiens
+ at SQ	SN:GL000248.1	LN:39786	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:5a8e43bec9be36c7b49c84d585107776	SP:Homo Sapiens
+ at SQ	SN:GL000244.1	LN:39929	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:0996b4475f353ca98bacb756ac479140	SP:Homo Sapiens
+ at SQ	SN:GL000238.1	LN:39939	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:131b1efc3270cc838686b54e7c34b17b	SP:Homo Sapiens
+ at SQ	SN:GL000202.1	LN:40103	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:06cbf126247d89664a4faebad130fe9c	SP:Homo Sapiens
+ at SQ	SN:GL000234.1	LN:40531	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:93f998536b61a56fd0ff47322a911d4b	SP:Homo Sapiens
+ at SQ	SN:GL000232.1	LN:40652	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:3e06b6741061ad93a8587531307057d8	SP:Homo Sapiens
+ at SQ	SN:GL000206.1	LN:41001	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:43f69e423533e948bfae5ce1d45bd3f1	SP:Homo Sapiens
+ at SQ	SN:GL000240.1	LN:41933	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:445a86173da9f237d7bcf41c6cb8cc62	SP:Homo Sapiens
+ at SQ	SN:GL000236.1	LN:41934	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:fdcd739913efa1fdc64b6c0cd7016779	SP:Homo Sapiens
+ at SQ	SN:GL000241.1	LN:42152	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:ef4258cdc5a45c206cea8fc3e1d858cf	SP:Homo Sapiens
+ at SQ	SN:GL000243.1	LN:43341	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:cc34279a7e353136741c9fce79bc4396	SP:Homo Sapiens
+ at SQ	SN:GL000242.1	LN:43523	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:2f8694fc47576bc81b5fe9e7de0ba49e	SP:Homo Sapiens
+ at SQ	SN:GL000230.1	LN:43691	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:b4eb71ee878d3706246b7c1dbef69299	SP:Homo Sapiens
+ at SQ	SN:GL000237.1	LN:45867	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:e0c82e7751df73f4f6d0ed30cdc853c0	SP:Homo Sapiens
+ at SQ	SN:GL000233.1	LN:45941	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:7fed60298a8d62ff808b74b6ce820001	SP:Homo Sapiens
+ at SQ	SN:GL000204.1	LN:81310	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:efc49c871536fa8d79cb0a06fa739722	SP:Homo Sapiens
+ at SQ	SN:GL000198.1	LN:90085	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:868e7784040da90d900d2d1b667a1383	SP:Homo Sapiens
+ at SQ	SN:GL000208.1	LN:92689	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:aa81be49bf3fe63a79bdc6a6f279abf6	SP:Homo Sapiens
+ at SQ	SN:GL000191.1	LN:106433	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:d75b436f50a8214ee9c2a51d30b2c2cc	SP:Homo Sapiens
+ at SQ	SN:GL000227.1	LN:128374	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:a4aead23f8053f2655e468bcc6ecdceb	SP:Homo Sapiens
+ at SQ	SN:GL000228.1	LN:129120	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:c5a17c97e2c1a0b6a9cc5a6b064b714f	SP:Homo Sapiens
+ at SQ	SN:GL000214.1	LN:137718	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:46c2032c37f2ed899eb41c0473319a69	SP:Homo Sapiens
+ at SQ	SN:GL000221.1	LN:155397	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:3238fb74ea87ae857f9c7508d315babb	SP:Homo Sapiens
+ at SQ	SN:GL000209.1	LN:159169	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:f40598e2a5a6b26e84a3775e0d1e2c81	SP:Homo Sapiens
+ at SQ	SN:GL000218.1	LN:161147	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:1d708b54644c26c7e01c2dad5426d38c	SP:Homo Sapiens
+ at SQ	SN:GL000220.1	LN:161802	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:fc35de963c57bf7648429e6454f1c9db	SP:Homo Sapiens
+ at SQ	SN:GL000213.1	LN:164239	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:9d424fdcc98866650b58f004080a992a	SP:Homo Sapiens
+ at SQ	SN:GL000211.1	LN:166566	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:7daaa45c66b288847b9b32b964e623d3	SP:Homo Sapiens
+ at SQ	SN:GL000199.1	LN:169874	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:569af3b73522fab4b40995ae4944e78e	SP:Homo Sapiens
+ at SQ	SN:GL000217.1	LN:172149	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:6d243e18dea1945fb7f2517615b8f52e	SP:Homo Sapiens
+ at SQ	SN:GL000216.1	LN:172294	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:642a232d91c486ac339263820aef7fe0	SP:Homo Sapiens
+ at SQ	SN:GL000215.1	LN:172545	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:5eb3b418480ae67a997957c909375a73	SP:Homo Sapiens
+ at SQ	SN:GL000205.1	LN:174588	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:d22441398d99caf673e9afb9a1908ec5	SP:Homo Sapiens
+ at SQ	SN:GL000219.1	LN:179198	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:f977edd13bac459cb2ed4a5457dba1b3	SP:Homo Sapiens
+ at SQ	SN:GL000224.1	LN:179693	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:d5b2fc04f6b41b212a4198a07f450e20	SP:Homo Sapiens
+ at SQ	SN:GL000223.1	LN:180455	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:399dfa03bf32022ab52a846f7ca35b30	SP:Homo Sapiens
+ at SQ	SN:GL000195.1	LN:182896	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:5d9ec007868d517e73543b005ba48535	SP:Homo Sapiens
+ at SQ	SN:GL000212.1	LN:186858	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:563531689f3dbd691331fd6c5730a88b	SP:Homo Sapiens
+ at SQ	SN:GL000222.1	LN:186861	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:6fe9abac455169f50470f5a6b01d0f59	SP:Homo Sapiens
+ at SQ	SN:GL000200.1	LN:187035	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:75e4c8d17cd4addf3917d1703cacaf25	SP:Homo Sapiens
+ at SQ	SN:GL000193.1	LN:189789	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:dbb6e8ece0b5de29da56601613007c2a	SP:Homo Sapiens
+ at SQ	SN:GL000194.1	LN:191469	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:6ac8f815bf8e845bb3031b73f812c012	SP:Homo Sapiens
+ at SQ	SN:GL000225.1	LN:211173	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:63945c3e6962f28ffd469719a747e73c	SP:Homo Sapiens
+ at SQ	SN:GL000192.1	LN:547496	AS:GRCh37	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:325ba9e808f669dfeee210fdd7b470ac	SP:Homo Sapiens
+ at SQ	SN:NC_007605	LN:171823	AS:NC_007605.1	UR:http://www.broadinstitute.org/ftp/pub/seq/references/Homo_sapiens_assembly19.fasta	M5:6743bd63b3ff2b5b8985d8933c53290a	SP:Epstein-Barr virus
+1	30000	30098	+	target_1
+1	30100	30150	+	target_2
+1	30200	30249	+	target_3
diff --git a/testdata/net/sf/picard/util/tabbed_text_file.txt b/testdata/picard/util/tabbed_text_file.txt
similarity index 100%
rename from testdata/net/sf/picard/util/tabbed_text_file.txt
rename to testdata/picard/util/tabbed_text_file.txt
diff --git a/testdata/net/sf/picard/util/whitepace_text_file.txt b/testdata/picard/util/whitespace_text_file.txt
similarity index 100%
rename from testdata/net/sf/picard/util/whitepace_text_file.txt
rename to testdata/picard/util/whitespace_text_file.txt
diff --git a/testdata/net/sf/picard/vcf/CEUTrio-indels-bad-samples.vcf b/testdata/picard/vcf/CEUTrio-indels-bad-samples.vcf
similarity index 100%
rename from testdata/net/sf/picard/vcf/CEUTrio-indels-bad-samples.vcf
rename to testdata/picard/vcf/CEUTrio-indels-bad-samples.vcf
diff --git a/testdata/net/sf/picard/vcf/CEUTrio-indels-bad-samples.vcf.idx b/testdata/picard/vcf/CEUTrio-indels-bad-samples.vcf.idx
similarity index 100%
rename from testdata/net/sf/picard/vcf/CEUTrio-indels-bad-samples.vcf.idx
rename to testdata/picard/vcf/CEUTrio-indels-bad-samples.vcf.idx
diff --git a/testdata/net/sf/picard/vcf/CEUTrio-indels-dissimilar-contigs.vcf b/testdata/picard/vcf/CEUTrio-indels-dissimilar-contigs.vcf
similarity index 100%
rename from testdata/net/sf/picard/vcf/CEUTrio-indels-dissimilar-contigs.vcf
rename to testdata/picard/vcf/CEUTrio-indels-dissimilar-contigs.vcf
diff --git a/testdata/net/sf/picard/vcf/CEUTrio-indels-dissimilar-contigs.vcf.idx b/testdata/picard/vcf/CEUTrio-indels-dissimilar-contigs.vcf.idx
similarity index 100%
rename from testdata/net/sf/picard/vcf/CEUTrio-indels-dissimilar-contigs.vcf.idx
rename to testdata/picard/vcf/CEUTrio-indels-dissimilar-contigs.vcf.idx
diff --git a/testdata/net/sf/picard/vcf/CEUTrio-indels-no-contigs.vcf b/testdata/picard/vcf/CEUTrio-indels-no-contigs.vcf
similarity index 100%
rename from testdata/net/sf/picard/vcf/CEUTrio-indels-no-contigs.vcf
rename to testdata/picard/vcf/CEUTrio-indels-no-contigs.vcf
diff --git a/testdata/picard/vcf/CEUTrio-indels-scrambled.1.vcf b/testdata/picard/vcf/CEUTrio-indels-scrambled.1.vcf
new file mode 100644
index 0000000..3caf356
--- /dev/null
+++ b/testdata/picard/vcf/CEUTrio-indels-scrambled.1.vcf
@@ -0,0 +1,171 @@
+##fileformat=VCFv4.1
+##ApplyRecalibration="analysis_type=ApplyRecalibration input_file=[] read_buffer_size=null phone_home=NO_ET gatk_key=/humgen/gsa-hpprojects/GATK/data/gatk_user_keys/gsamembers_broadinstitute.org.key read_filter=[] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta nonDeterministicRandomSeed=false downsampling_type=BY_SAMPLE downsample_to_fraction=null do [...]
+##CombineVariants="analysis_type=CombineVariants input_file=[] read_buffer_size=null phone_home=STANDARD gatk_key=null read_filter=[] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta nonDeterministicRandomSeed=false downsampling_type=BY_SAMPLE downsample_to_fraction=null downsample_to_coverage=1000 baq=OFF baqGapOpenPenalty=40.0 performanceLog=null use [...]
+##FILTER=<ID=LowQual,Description="Low quality">
+##FILTER=<ID=VQSRTrancheINDEL99.00to99.90,Description="Truth sensitivity tranche level for INDEL model at VQS Lod: -4.1718 <= x < -0.8611">
+##FILTER=<ID=VQSRTrancheINDEL99.90to100.00+,Description="Truth sensitivity tranche level for INDEL model at VQS Lod < -727.2136">
+##FILTER=<ID=VQSRTrancheINDEL99.90to100.00,Description="Truth sensitivity tranche level for INDEL model at VQS Lod: -727.2136 <= x < -4.1718">
+##FILTER=<ID=VQSRTrancheSNP99.00to99.90,Description="Truth sensitivity tranche level for SNP model at VQS Lod: -25.4561 <= x < 3.2489">
+##FILTER=<ID=VQSRTrancheSNP99.90to100.00+,Description="Truth sensitivity tranche level for SNP model at VQS Lod < -38672.7015">
+##FILTER=<ID=VQSRTrancheSNP99.90to100.00,Description="Truth sensitivity tranche level for SNP model at VQS Lod: -38672.7015 <= x < -25.4561">
+##FORMAT=<ID=AD,Number=.,Type=Integer,Description="Allelic depths for the ref and alt alleles in the order listed">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth (reads with MQ=255 or with bad mates are filtered)">
+##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##FORMAT=<ID=PL,Number=G,Type=Integer,Description="Normalized, Phred-scaled likelihoods for genotypes as defined in the VCF specification">
+##FORMAT=<ID=TP,Number=1,Type=Integer,Description="Phred score of the genotype combination and phase given that the genotypes are correct">
+##INFO=<ID=AC,Number=A,Type=Integer,Description="Allele count in genotypes, for each ALT allele, in the same order as listed">
+##INFO=<ID=AF,Number=A,Type=Float,Description="Allele Frequency, for each ALT allele, in the same order as listed">
+##INFO=<ID=AN,Number=1,Type=Integer,Description="Total number of alleles in called genotypes">
+##INFO=<ID=BaseQRankSum,Number=1,Type=Float,Description="Z-score from Wilcoxon rank sum test of Alt Vs. Ref base qualities">
+##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP Membership">
+##INFO=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth; some reads may have been filtered">
+##INFO=<ID=DS,Number=0,Type=Flag,Description="Were any of the samples downsampled?">
+##INFO=<ID=Dels,Number=1,Type=Float,Description="Fraction of Reads Containing Spanning Deletions">
+##INFO=<ID=END,Number=1,Type=Integer,Description="Stop position of the interval">
+##INFO=<ID=FS,Number=1,Type=Float,Description="Phred-scaled p-value using Fisher's exact test to detect strand bias">
+##INFO=<ID=HaplotypeScore,Number=1,Type=Float,Description="Consistency of the site with at most two segregating haplotypes">
+##INFO=<ID=InbreedingCoeff,Number=1,Type=Float,Description="Inbreeding coefficient as estimated from the genotype likelihoods per-sample when compared against the Hardy-Weinberg expectation">
+##INFO=<ID=MLEAC,Number=A,Type=Integer,Description="Maximum likelihood expectation (MLE) for the allele counts (not necessarily the same as the AC), for each ALT allele, in the same order as listed">
+##INFO=<ID=MLEAF,Number=A,Type=Float,Description="Maximum likelihood expectation (MLE) for the allele frequency (not necessarily the same as the AF), for each ALT allele, in the same order as listed">
+##INFO=<ID=MQ,Number=1,Type=Float,Description="RMS Mapping Quality">
+##INFO=<ID=MQ0,Number=1,Type=Integer,Description="Total Mapping Quality Zero Reads">
+##INFO=<ID=MQRankSum,Number=1,Type=Float,Description="Z-score From Wilcoxon rank sum test of Alt vs. Ref read mapping qualities">
+##INFO=<ID=QD,Number=1,Type=Float,Description="Variant Confidence/Quality by Depth">
+##INFO=<ID=RPA,Number=.,Type=Integer,Description="Number of times tandem repeat unit is repeated, for each allele (including reference)">
+##INFO=<ID=RU,Number=1,Type=String,Description="Tandem repeat unit (bases)">
+##INFO=<ID=ReadPosRankSum,Number=1,Type=Float,Description="Z-score from Wilcoxon rank sum test of Alt vs. Ref read position bias">
+##INFO=<ID=SB,Number=1,Type=Float,Description="Strand Bias">
+##INFO=<ID=STR,Number=0,Type=Flag,Description="Variant is a short tandem repeat">
+##INFO=<ID=VQSLOD,Number=1,Type=Float,Description="Log odds ratio of being a true variant versus being false under the trained gaussian mixture model">
+##INFO=<ID=culprit,Number=1,Type=String,Description="The annotation which was the worst performing in the Gaussian mixture model, likely the reason why the variant was filtered out">
+##INFO=<ID=set,Number=1,Type=String,Description="Source VCF for the merged record in CombineVariants">
+##PhaseByTransmission="analysis_type=PhaseByTransmission input_file=[] read_buffer_size=null phone_home=STANDARD gatk_key=null read_filter=[] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta nonDeterministicRandomSeed=false downsampling_type=BY_SAMPLE downsample_to_fraction=null downsample_to_coverage=1000 baq=OFF baqGapOpenPenalty=40.0 performanceLog= [...]
+##UnifiedGenotyper="analysis_type=UnifiedGenotyper input_file=[/humgen/gsa-hpprojects/NA12878Collection/bams/CEUTrio.HiSeq.WGS.b37.list] read_buffer_size=null phone_home=NO_ET gatk_key=/humgen/gsa-hpprojects/GATK/data/gatk_user_keys/gsamembers_broadinstitute.org.key read_filter=[] intervals=[/broad/hptmp/ami/tmp/queueScatterGather/.qlog/CEUTrio.indelcall-sg/temp_020_of_300/scatter.intervals] excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_s [...]
+##contig=<ID=1,length=249250621,assembly=b37>
+##contig=<ID=2,length=243199373,assembly=b37>
+##contig=<ID=3,length=198022430,assembly=b37>
+##contig=<ID=4,length=191154276,assembly=b37>
+##contig=<ID=5,length=180915260,assembly=b37>
+##contig=<ID=6,length=171115067,assembly=b37>
+##contig=<ID=7,length=159138663,assembly=b37>
+##contig=<ID=8,length=146364022,assembly=b37>
+##contig=<ID=9,length=141213431,assembly=b37>
+##contig=<ID=10,length=135534747,assembly=b37>
+##contig=<ID=11,length=135006516,assembly=b37>
+##contig=<ID=12,length=133851895,assembly=b37>
+##contig=<ID=13,length=115169878,assembly=b37>
+##contig=<ID=14,length=107349540,assembly=b37>
+##contig=<ID=15,length=102531392,assembly=b37>
+##contig=<ID=16,length=90354753,assembly=b37>
+##contig=<ID=17,length=81195210,assembly=b37>
+##contig=<ID=18,length=78077248,assembly=b37>
+##contig=<ID=19,length=59128983,assembly=b37>
+##contig=<ID=20,length=63025520,assembly=b37>
+##contig=<ID=21,length=48129895,assembly=b37>
+##contig=<ID=22,length=51304566,assembly=b37>
+##contig=<ID=X,length=155270560,assembly=b37>
+##contig=<ID=Y,length=59373566,assembly=b37>
+##contig=<ID=MT,length=16569,assembly=b37>
+##contig=<ID=GL000207.1,length=4262,assembly=b37>
+##contig=<ID=GL000226.1,length=15008,assembly=b37>
+##contig=<ID=GL000229.1,length=19913,assembly=b37>
+##contig=<ID=GL000231.1,length=27386,assembly=b37>
+##contig=<ID=GL000210.1,length=27682,assembly=b37>
+##contig=<ID=GL000239.1,length=33824,assembly=b37>
+##contig=<ID=GL000235.1,length=34474,assembly=b37>
+##contig=<ID=GL000201.1,length=36148,assembly=b37>
+##contig=<ID=GL000247.1,length=36422,assembly=b37>
+##contig=<ID=GL000245.1,length=36651,assembly=b37>
+##contig=<ID=GL000197.1,length=37175,assembly=b37>
+##contig=<ID=GL000203.1,length=37498,assembly=b37>
+##contig=<ID=GL000246.1,length=38154,assembly=b37>
+##contig=<ID=GL000249.1,length=38502,assembly=b37>
+##contig=<ID=GL000196.1,length=38914,assembly=b37>
+##contig=<ID=GL000248.1,length=39786,assembly=b37>
+##contig=<ID=GL000244.1,length=39929,assembly=b37>
+##contig=<ID=GL000238.1,length=39939,assembly=b37>
+##contig=<ID=GL000202.1,length=40103,assembly=b37>
+##contig=<ID=GL000234.1,length=40531,assembly=b37>
+##contig=<ID=GL000232.1,length=40652,assembly=b37>
+##contig=<ID=GL000206.1,length=41001,assembly=b37>
+##contig=<ID=GL000240.1,length=41933,assembly=b37>
+##contig=<ID=GL000236.1,length=41934,assembly=b37>
+##contig=<ID=GL000241.1,length=42152,assembly=b37>
+##contig=<ID=GL000243.1,length=43341,assembly=b37>
+##contig=<ID=GL000242.1,length=43523,assembly=b37>
+##contig=<ID=GL000230.1,length=43691,assembly=b37>
+##contig=<ID=GL000237.1,length=45867,assembly=b37>
+##contig=<ID=GL000233.1,length=45941,assembly=b37>
+##contig=<ID=GL000204.1,length=81310,assembly=b37>
+##contig=<ID=GL000198.1,length=90085,assembly=b37>
+##contig=<ID=GL000208.1,length=92689,assembly=b37>
+##contig=<ID=GL000191.1,length=106433,assembly=b37>
+##contig=<ID=GL000227.1,length=128374,assembly=b37>
+##contig=<ID=GL000228.1,length=129120,assembly=b37>
+##contig=<ID=GL000214.1,length=137718,assembly=b37>
+##contig=<ID=GL000221.1,length=155397,assembly=b37>
+##contig=<ID=GL000209.1,length=159169,assembly=b37>
+##contig=<ID=GL000218.1,length=161147,assembly=b37>
+##contig=<ID=GL000220.1,length=161802,assembly=b37>
+##contig=<ID=GL000213.1,length=164239,assembly=b37>
+##contig=<ID=GL000211.1,length=166566,assembly=b37>
+##contig=<ID=GL000199.1,length=169874,assembly=b37>
+##contig=<ID=GL000217.1,length=172149,assembly=b37>
+##contig=<ID=GL000216.1,length=172294,assembly=b37>
+##contig=<ID=GL000215.1,length=172545,assembly=b37>
+##contig=<ID=GL000205.1,length=174588,assembly=b37>
+##contig=<ID=GL000219.1,length=179198,assembly=b37>
+##contig=<ID=GL000224.1,length=179693,assembly=b37>
+##contig=<ID=GL000223.1,length=180455,assembly=b37>
+##contig=<ID=GL000195.1,length=182896,assembly=b37>
+##contig=<ID=GL000212.1,length=186858,assembly=b37>
+##contig=<ID=GL000222.1,length=186861,assembly=b37>
+##contig=<ID=GL000200.1,length=187035,assembly=b37>
+##contig=<ID=GL000193.1,length=189789,assembly=b37>
+##contig=<ID=GL000194.1,length=191469,assembly=b37>
+##contig=<ID=GL000225.1,length=211173,assembly=b37>
+##contig=<ID=GL000192.1,length=547496,assembly=b37>
+##reference=file:///humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta
+##source=PhaseByTransmission
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	NA12878	NA12891	NA12892
+6	31390139	rs72548006	T	TA	2159.22	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=0.491;DB;DP=257;FS=2.384;HaplotypeScore=26.8869;MLEAC=2;MLEAF=0.333;MQ=59.99;MQ0=0;MQRankSum=1.589;QD=12.85;RPA=5,6;RU=A;ReadPosRankSum=1.851;SB=-9.710e+02;STR;VQSLOD=5.5307;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:51,37:89:99:1076,0,1364:127	0|0:89,0:89:99:0,256,3112:127	1|0:41,38:79:99:1131,0,1103:127
+9	33446281	.	C	CT	31.72	VQSRTrancheINDEL99.90to100.00	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.119;DP=178;FS=127.572;HaplotypeScore=21.5544;MLEAC=1;MLEAF=0.167;MQ=58.69;MQ0=0;MQRankSum=1.608;QD=0.62;RPA=2,3;RU=T;ReadPosRankSum=-5.268;SB=-4.493e+00;STR;VQSLOD=-10.5680;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:77,0:79:73:0,73,2094:6	0|0:46,0:48:5:0,5,958:6	0|1:35,15:51:75:75,0,1073:6
+10	46605359	.	CT	C	883.2	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=1.618;DP=136;FS=9.661;HaplotypeScore=4.7050;MLEAC=3;MLEAF=0.500;MQ=22.12;MQ0=1;MQRankSum=0.368;QD=8.57;RPA=7,6;RU=T;ReadPosRankSum=-1.076;SB=-1.190e+02;STR;VQSLOD=2.5501;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:33,0:32:90:0,90,1016:25	0|1:66,15:81:99:303,0,1810:25	0|1:2,19:20:0:634,54,0:25
+3	118367863	rs71617664	TAGATAGATTA	T	12039	PASS	AC=6;AF=1.00;AN=6;BaseQRankSum=1.121;DB;DP=201;FS=9.449;HaplotypeScore=212.5016;MLEAC=6;MLEAF=1.00;MQ=55.55;MQ0=1;MQRankSum=1.584;QD=59.90;ReadPosRankSum=0.721;SB=-5.599e+03;VQSLOD=-0.4074;culprit=QD	GT:AD:DP:GQ:PL:TP	1|1:13,57:71:99:4299,164,0:127	1|1:60,4:64:99:3312,174,0:127	1|1:9,50:64:99:4428,177,0:127
+11	96559202	rs72048706	C	CAA	373.24	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-0.796;DB;DP=121;FS=1.541;HaplotypeScore=64.5478;MLEAC=4;MLEAF=0.667;MQ=39.96;MQ0=6;MQRankSum=-0.539;QD=3.08;RPA=21,23;RU=A;ReadPosRankSum=-3.583;SB=-1.985e+02;STR;VQSLOD=1.3071;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|0:20,8:32:24:111,0,24:22	1|1:40,0:41:29:180,29,0:22	0|1:39,0:39:41:133,0,41:22
+4	152029268	.	CT	C	358.22	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=2.688;DP=199;FS=13.724;HaplotypeScore=32.5739;MLEAC=2;MLEAF=0.333;MQ=55.17;MQ0=0;MQRankSum=-0.915;QD=2.42;RPA=17,16;RU=T;ReadPosRankSum=0.548;SB=-1.419e+02;STR;VQSLOD=0.3925;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:50,15:75:99:301,0,225:38	1|0:56,11:72:99:105,0,209:38	0|0:46,2:51:38:0,38,284:38
+15	32615218	.	G	GA	82.61	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.361;DP=225;FS=0.000;HaplotypeScore=2.4894;MLEAC=4;MLEAF=0.667;MQ=5.76;MQ0=211;MQRankSum=-0.876;QD=0.56;RPA=9,10;RU=A;ReadPosRankSum=-1.159;SB=-1.330e-03;STR;VQSLOD=3.7374;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:41,19:3:9:88,9,0:5	1|0:62,24:5:44:44,0,77:5	1|0:76,0:1:2:0,3,31:5
+3	168108331	rs35075740	TA	T	51.36	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=1.784;DB;DP=162;FS=3.973;HaplotypeScore=20.3755;MLEAC=3;MLEAF=0.500;MQ=55.92;MQ0=0;MQRankSum=3.470;QD=0.32;RPA=18,17;RU=A;ReadPosRankSum=1.956;SB=-7.120e+00;STR;VQSLOD=2.1011;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:46,5:53:16:16,0,313:15	0/1:46,12:60:61:61,0,267:15	0/1:40,6:47:22:22,0,255:15
+16	19633462	rs11371821	C	CT	239.23	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-4.097;DB;DP=182;FS=1.344;HaplotypeScore=21.2638;MLEAC=4;MLEAF=0.667;MQ=50.55;MQ0=0;MQRankSum=-1.358;QD=1.31;RPA=22,23;RU=T;ReadPosRankSum=-3.963;SB=-9.798e+01;STR;VQSLOD=2.3127;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|0:61,0:63:45:70,0,45:24	1|1:44,15:58:28:192,28,0:24	0|1:52,0:60:28:28,0,37:24
+1	120811174	.	C	CA	74.77	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-1.393;DP=148;FS=0.000;HaplotypeScore=20.3510;MLEAC=5;MLEAF=0.833;MQ=15.79;MQ0=88;MQRankSum=-0.348;QD=0.51;RPA=24,25;RU=A;ReadPosRankSum=-1.044;SB=-1.531e+01;STR;VQSLOD=5.0896;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:47,5:9:11:53,11,0:3	1|0:51,0:15:5:37,0,5:3	1|1:43,0:8:6:32,6,0:3
+X	23948720	rs35152285	C	CA	535.35	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.538;DB;DP=148;FS=0.000;HaplotypeScore=24.3157;MLEAC=3;MLEAF=0.500;MQ=53.02;MQ0=0;MQRankSum=0.234;QD=3.62;RPA=16,17;RU=A;ReadPosRankSum=-1.638;SB=-2.841e+02;STR;VQSLOD=3.0203;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:37,27:68:62:391,0,62:13	0/1:16,8:25:13:102,0,13:13	0/1:47,4:53:90:90,0,142:13
+6	63303894	rs34270846	T	TC	7366	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=1.312;DB;DP=202;FS=2.807;HaplotypeScore=88.2916;MLEAC=5;MLEAF=0.833;MQ=61.10;MQ0=0;MQRankSum=-0.390;QD=36.47;ReadPosRankSum=-0.315;SB=-2.762e+03;VQSLOD=3.8558;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,89:89:99:3885,265,0:127	1|0:29,25:54:99:999,0,1050:127	1|1:0,57:59:99:2482,169,0:127
+12	68921960	.	TATTTTC	T	803.22	VQSRTrancheINDEL99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=9.862;DP=270;FS=190.603;HaplotypeScore=223.0660;MLEAC=3;MLEAF=0.500;MQ=54.84;MQ0=1;MQRankSum=-4.552;QD=2.97;ReadPosRankSum=-6.674;SB=-1.330e-03;VQSLOD=-17.7657;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:69,22:95:99:394,0,4974:101	0/1:87,0:86:99:355,0,5072:101	0/1:83,0:84:99:102,0,5546:101
+11	3839556	rs5789310	CA	C	803.1	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.138;DB;DP=170;FS=4.498;HaplotypeScore=36.6392;MLEAC=3;MLEAF=0.500;MQ=55.95;MQ0=2;MQRankSum=2.278;QD=4.72;RPA=17,16;RU=A;ReadPosRankSum=3.210;SB=-3.839e+02;STR;VQSLOD=1.8082;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:35,17:55:32:329,0,32:3	0/1:45,9:57:8:276,0,8:3	0/1:30,19:52:1:244,0,1:3
+1	25154033	rs55822956	GT	G	743.25	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=3.321;DB;DP=214;FS=2.265;HaplotypeScore=77.3263;MLEAC=3;MLEAF=0.500;MQ=55.48;MQ0=0;MQRankSum=0.114;QD=3.47;RPA=19,18;RU=T;ReadPosRankSum=0.884;SB=-3.070e+02;STR;VQSLOD=2.0987;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:60,12:82:67:292,0,67:18	0/1:55,7:69:42:245,0,42:18	0/1:37,21:60:18:254,0,18:18
+1	36900350	rs72008966	C	CA	137.53	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.837;DB;DP=139;FS=0.000;HaplotypeScore=32.7946;MLEAC=3;MLEAF=0.500;MQ=49.20;MQ0=3;MQRankSum=0.772;QD=0.99;RPA=22,23;RU=A;ReadPosRankSum=-3.220;SB=-4.273e+01;STR;VQSLOD=1.8721;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:35,7:44:41:70,0,41:9	0/1:48,0:47:20:20,0,41:9	0/1:32,12:42:9:95,0,9:9
+2	75490647	rs112304545	T	TGG	1000.21	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=0.322;DB;DP=188;FS=0.785;HaplotypeScore=58.7199;MLEAC=4;MLEAF=0.667;MQ=57.19;MQ0=0;MQRankSum=-0.229;QD=5.32;RPA=10,12;RU=G;ReadPosRankSum=-2.534;SB=-4.650e+02;STR;VQSLOD=2.6886;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:33,35:76:57:976,57,0:56	1|0:39,3:49:38:38,0,730:56	1|0:50,4:63:37:37,0,900:56
+9	118670009	rs66523513	CT	C	5633	PASS	AC=6;AF=1.00;AN=6;BaseQRankSum=-0.066;DB;DP=222;FS=6.403;HaplotypeScore=30.7213;MLEAC=6;MLEAF=1.00;MQ=59.97;MQ0=0;MQRankSum=0.490;QD=25.37;RPA=11,10;RU=T;ReadPosRankSum=2.429;SB=-2.667e+03;STR;VQSLOD=3.3873;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:6,71:78:99:2079,216,0:120	1|1:10,54:65:99:1524,120,0:120	1|1:9,69:79:99:2030,209,0:120
+6	169196022	.	T	TG	229.23	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=0.887;DP=84;FS=7.129;HaplotypeScore=6.4344;MLEAC=2;MLEAF=0.333;MQ=39.46;MQ0=16;MQRankSum=2.277;QD=3.82;RPA=6,7;RU=G;ReadPosRankSum=-0.983;SB=-2.849e+01;STR;VQSLOD=1.3456;culprit=QD	GT:AD:DP:GQ:PL:TP	1|0:19,10:15:78:78,0,88:27	1|0:17,13:21:99:199,0,172:27	0|0:24,0:15:27:0,27,308:27
+17	75679403	.	TGTG	T	1024.22	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=8.617;DP=161;FS=1.686;HaplotypeScore=259.3227;MLEAC=2;MLEAF=0.333;MQ=51.57;MQ0=0;MQRankSum=-8.617;QD=9.48;ReadPosRankSum=-0.498;SB=-4.680e+02;VQSLOD=1.7645;culprit=QD	GT:AD:DP:GQ:PL:TP	1|0:29,19:58:99:711,0,1547:127	1|0:34,11:50:99:361,0,1922:127	0|0:53,0:53:99:0,157,3186:127
+16	77418810	rs71137811	T	TG	7389	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=0.643;DB;DP=244;FS=2.246;HaplotypeScore=114.4097;MLEAC=5;MLEAF=0.833;MQ=61.09;MQ0=0;MQRankSum=2.492;QD=30.28;ReadPosRankSum=2.982;SB=-2.597e+03;VQSLOD=2.9140;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:8,84:93:99:3558,264,0:127	1|1:8,65:75:99:2723,179,0:127	1|0:42,32:76:99:1108,0,899:127
+14	28032147	rs67442200	AT	A	9959	PASS	AC=6;AF=1.00;AN=6;DB;DP=259;FS=0.000;HaplotypeScore=15.2854;MLEAC=6;MLEAF=1.00;MQ=60.66;MQ0=0;QD=38.45;RPA=3,2;RU=T;SB=-4.646e+03;STR;VQSLOD=6.0102;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:2,86:91:99:3493,259,0:127	1|1:3,76:79:99:3025,226,0:127	1|1:3,86:89:99:3441,256,0:127
+15	83241984	rs11336258	AT	A	1748.21	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-1.821;DB;DP=199;FS=5.740;HaplotypeScore=29.9449;MLEAC=4;MLEAF=0.667;MQ=59.67;MQ0=0;MQRankSum=1.120;QD=8.78;RPA=15,14;RU=T;ReadPosRankSum=-1.763;SB=-7.830e+02;STR;VQSLOD=3.4938;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:41,27:72:99:434,0,434:118	0|1:36,26:66:99:470,0,275:118	1|1:11,44:61:99:895,118,0:118
+8	30862954	rs149290124	C	CA	3883	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-1.321;DB;DP=261;FS=0.755;HaplotypeScore=37.2657;MLEAC=5;MLEAF=0.833;MQ=58.08;MQ0=0;MQRankSum=0.330;QD=14.88;RPA=11,12;RU=A;ReadPosRankSum=-0.578;SB=-1.926e+03;STR;VQSLOD=5.3659;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:21,76:105:99:1980,179,0:91	1|0:51,22:75:99:597,0,485:91	1|1:24,54:81:92:1306,92,0:91
+6	100462085	rs113348222	G	GT	5284	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-0.046;DB;DP=285;FS=7.484;HaplotypeScore=252.0890;MLEAC=5;MLEAF=0.833;MQ=60.07;MQ0=0;MQRankSum=1.241;QD=18.54;RPA=10,11;RU=T;ReadPosRankSum=-2.539;SB=-2.505e+03;STR;VQSLOD=2.2089;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|1:8,79:94:99:2218,200,0:127	1|0:54,37:97:99:818,0,914:127	1|1:10,83:94:99:2248,221,0:127
+18	59836086	.	A	AT	575.46	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-1.815;DP=231;FS=20.458;HaplotypeScore=140.1975;MLEAC=3;MLEAF=0.500;MQ=56.52;MQ0=0;MQRankSum=1.203;QD=2.49;RPA=20,21;RU=T;ReadPosRankSum=-1.968;SB=-2.575e+02;STR;VQSLOD=-0.3166;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:52,29:86:11:309,0,11:9	0/1:72,2:82:63:109,0,63:9	0/1:31,24:63:15:205,0,15:9
+18	30361151	rs35024407	T	TTG	9768	PASS	AC=6;AF=1.00;AN=6;DB;DP=234;FS=0.000;HaplotypeScore=13.0982;MLEAC=6;MLEAF=1.00;MQ=60.40;MQ0=2;QD=41.74;RPA=3,4;RU=TG;SB=-4.721e+03;STR;VQSLOD=5.5040;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:7,80:86:99:3686,241,0:127	1|1:8,77:85:99:3454,229,0:127	1|1:3,58:61:99:2628,172,0:127
+7	20767781	rs150977587	TA	T	2754.21	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=6.295;DB;DP=259;FS=0.000;HaplotypeScore=122.4991;MLEAC=4;MLEAF=0.667;MQ=59.41;MQ0=1;MQRankSum=-0.640;QD=10.63;RPA=13,12;RU=A;ReadPosRankSum=0.189;SB=-1.344e+03;STR;VQSLOD=3.3002;culprit=QD	GT:AD:DP:GQ:PL:TP	1|0:59,45:107:99:923,0,795:116	1|1:15,54:72:99:1313,116,0:116	0|1:44,31:79:99:569,0,617:116
+19	47012249	rs60424854	ATTTTT	A	1121.22	VQSRTrancheINDEL99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=-1.922;DB;DP=144;FS=61.853;HaplotypeScore=338.7352;MLEAC=2;MLEAF=0.333;MQ=44.50;MQ0=1;MQRankSum=-2.345;QD=10.29;RPA=16,11;RU=T;ReadPosRankSum=5.636;SB=-1.090e+02;STR;VQSLOD=-2.3986;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|0:30,9:43:99:371,0,961:89	1|0:44,15:63:99:798,0,1293:89	0|0:32,0:33:89:0,89,1424:89
+4	114869733	rs11381039	A	AT	2798.22	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.957;DB;DP=267;FS=4.371;HaplotypeScore=26.3590;MLEAC=3;MLEAF=0.500;MQ=59.97;MQ0=0;MQRankSum=0.673;QD=10.48;RPA=8,9;RU=T;ReadPosRankSum=-1.351;SB=-1.173e+03;STR;VQSLOD=5.5505;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:47,41:89:99:994,0,1219:127	0/1:50,41:92:99:1063,0,1043:127	0/1:50,34:86:99:789,0,1153:127
+7	134269995	rs67235184	G	GA	2917.2	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.835;DB;DP=219;FS=1.093;HaplotypeScore=39.1434;MLEAC=3;MLEAF=0.500;MQ=59.44;MQ0=0;MQRankSum=-0.037;QD=19.19;RPA=7,8;RU=A;ReadPosRankSum=-0.921;SB=-1.316e+03;STR;VQSLOD=5.1149;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:51,33:84:99:916,0,1151:127	1|1:2,65:68:99:2055,192,0:127	0|0:65,0:67:99:0,186,2051:127
+2	133338909	rs72548244	CT	C	2103.21	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=0.444;DB;DP=212;FS=5.224;HaplotypeScore=27.6263;MLEAC=5;MLEAF=0.833;MQ=59.64;MQ0=0;MQRankSum=2.430;QD=9.92;RPA=15,14;RU=T;ReadPosRankSum=2.784;SB=-1.050e+03;STR;VQSLOD=2.6610;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:17,39:59:61:837,61,0:60	1|0:47,22:72:99:241,0,444:60	1|1:20,58:81:74:1076,74,0:60
+2	218911764	.	TA	T	229.22	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.591;DP=218;FS=1.761;HaplotypeScore=32.5745;MLEAC=3;MLEAF=0.500;MQ=57.41;MQ0=0;MQRankSum=1.792;QD=1.05;RPA=19,18;RU=A;ReadPosRankSum=0.676;SB=-1.060e+02;STR;VQSLOD=2.3065;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:56,5:65:99:101,0,313:70	0/1:59,18:82:99:105,0,395:70	0/1:64,4:70:71:71,0,263:70
+14	77813103	rs59474357	G	GT	328.58	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-2.653;DB;DP=164;FS=5.220;HaplotypeScore=117.8567;MLEAC=5;MLEAF=0.833;MQ=52.18;MQ0=0;MQRankSum=1.259;QD=2.00;RPA=24,25;RU=T;ReadPosRankSum=-1.030;SB=-1.639e+02;STR;VQSLOD=2.1577;culprit=QD	GT:AD:DP:GQ:PL:TP	1|0:51,1:53:18:105,0,18:6	1|1:58,1:59:13:150,13,0:6	0|1:34,13:52:1:123,6,0:6
+22	24416101	rs66532277	C	CTT	458.98	VQSRTrancheINDEL99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=-4.190;DB;DP=251;FS=68.550;HaplotypeScore=55.3088;MLEAC=3;MLEAF=0.500;MQ=51.85;MQ0=3;MQRankSum=2.417;QD=1.83;RPA=23,25;RU=T;ReadPosRankSum=2.881;SB=-3.571e+01;STR;VQSLOD=-2.0279;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:68,20:91:65:207,0,65:3	0/1:84,0:83:0:184,0,0:3	0/1:72,0:72:83:114,0,83:3
+1	235750933	rs111686144	GA	G	679.19	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=2.042;DB;DP=64;FS=7.388;HaplotypeScore=400.1973;MLEAC=4;MLEAF=0.667;MQ=32.98;MQ0=0;MQRankSum=-0.059;QD=10.61;ReadPosRankSum=2.445;SB=-1.575e+02;VQSLOD=-0.3140;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:12,0:12:6:110,0,6:6	1|1:9,9:19:31:491,31,0:6	0|1:31,0:32:99:128,0,160:6
+3	37334187	rs112182713	G	GGTT	1235.2	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=0.420;DB;DP=233;FS=10.653;HaplotypeScore=68.3055;MLEAC=1;MLEAF=0.167;MQ=56.19;MQ0=0;MQRankSum=-1.868;QD=17.65;RPA=1,2;RU=GTT;ReadPosRankSum=1.383;SB=-4.490e+02;STR;VQSLOD=3.1411;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:83,0:83:99:0,244,4702:127	0|0:79,0:77:99:0,220,4149:127	0|1:40,23:68:99:1279,0,1696:127
+2	107234623	rs35291621	GTA	G	7569	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=2.652;DB;DP=242;FS=7.837;HaplotypeScore=19.3113;MLEAC=4;MLEAF=0.667;MQ=60.04;MQ0=1;MQRankSum=-0.157;QD=31.28;ReadPosRankSum=1.661;SB=-3.633e+03;VQSLOD=4.2975;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:46,30:76:99:1290,0,2120:127	0|1:35,66:102:99:2998,0,1435:127	1|1:0,63:63:99:3281,190,0:127
+4	92648168	rs61329801	A	ATTTG	7717	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=0.947;DB;DP=186;FS=8.292;HaplotypeScore=7.8810;MLEAC=4;MLEAF=0.667;MQ=56.58;MQ0=0;MQRankSum=-0.174;QD=41.49;ReadPosRankSum=-0.444;SB=-3.591e+03;VQSLOD=3.5165;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:45,35:80:99:2213,0,2213:127	1|1:3,59:62:99:4128,181,0:127	0|1:22,22:44:99:1376,0,1181:127
+9	9066127	rs57751104	ATATT	A	4412	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-0.088;DB;DP=214;FS=8.470;HaplotypeScore=16.5868;MLEAC=2;MLEAF=0.333;MQ=58.75;MQ0=0;MQRankSum=0.462;QD=29.61;RPA=2,1;RU=TATT;ReadPosRankSum=1.377;SB=-1.837e+03;STR;VQSLOD=4.4209;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:41,36:79:99:2129,0,2123:127	1|0:32,38:70:99:2283,0,1679:127	0|0:65,0:65:99:0,184,4023:127
diff --git a/testdata/net/sf/picard/vcf/CEUTrio-indels.vcf b/testdata/picard/vcf/CEUTrio-indels.vcf
similarity index 100%
rename from testdata/net/sf/picard/vcf/CEUTrio-indels.vcf
rename to testdata/picard/vcf/CEUTrio-indels.vcf
diff --git a/testdata/net/sf/picard/vcf/CEUTrio-indels.vcf.idx b/testdata/picard/vcf/CEUTrio-indels.vcf.idx
similarity index 100%
rename from testdata/net/sf/picard/vcf/CEUTrio-indels.vcf.idx
rename to testdata/picard/vcf/CEUTrio-indels.vcf.idx
diff --git a/testdata/picard/vcf/CEUTrio-indels_vs_CEUTrio-indels_GtConcordanceDiff.genotype_concordance_contingency_metrics b/testdata/picard/vcf/CEUTrio-indels_vs_CEUTrio-indels_GtConcordanceDiff.genotype_concordance_contingency_metrics
new file mode 100644
index 0000000..6af55dc
--- /dev/null
+++ b/testdata/picard/vcf/CEUTrio-indels_vs_CEUTrio-indels_GtConcordanceDiff.genotype_concordance_contingency_metrics
@@ -0,0 +1,11 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.vcf.GenotypeConcordance TRUTH_VCF=testdata/picard/vcf/CEUTrio-indels.vcf CALL_VCF=testdata/picard/vcf/CEUTrio-indels.vcf OUTPUT=testdata/picard/vcf/CEUTrio-indels_vs_CEUTrio-indels_GtConcordanceDiff TRUTH_SAMPLE=NA12878 CALL_SAMPLE=NA12878    INTERSECT_INTERVALS=true MIN_GQ=0 MIN_DP=0 OUTPUT_ALL_ROWS=false USE_VCF_INDEX=false VERBOSITY=INFO QUIET=false VALIDATION_STRINGENCY=STRICT COMPRESSION_LEVEL=5 MAX_RECORDS_IN_RAM=500000 CREATE_INDEX=false CREATE_MD5_FILE=false
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Tue Nov 04 11:44:18 EST 2014
+
+## METRICS CLASS	picard.vcf.GenotypeConcordanceContingencyMetrics
+VARIANT_TYPE	TRUTH_SAMPLE	CALL_SAMPLE	TP_COUNT	TN_COUNT	FP_COUNT	FN_COUNT	EMPTY_COUNT
+SNP	NA12878	NA12878	0	0	0	0	0
+INDEL	NA12878	NA12878	34	22	0	0	3
+
+
diff --git a/testdata/picard/vcf/CEUTrio-indels_vs_CEUTrio-indels_GtConcordanceDiff.genotype_concordance_detail_metrics b/testdata/picard/vcf/CEUTrio-indels_vs_CEUTrio-indels_GtConcordanceDiff.genotype_concordance_detail_metrics
new file mode 100644
index 0000000..7416654
--- /dev/null
+++ b/testdata/picard/vcf/CEUTrio-indels_vs_CEUTrio-indels_GtConcordanceDiff.genotype_concordance_detail_metrics
@@ -0,0 +1,12 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.vcf.GenotypeConcordance TRUTH_VCF=testdata/picard/vcf/CEUTrio-indels.vcf CALL_VCF=testdata/picard/vcf/CEUTrio-indels.vcf OUTPUT=testdata/picard/vcf/CEUTrio-indels_vs_CEUTrio-indels_GtConcordanceDiff TRUTH_SAMPLE=NA12878 CALL_SAMPLE=NA12878    INTERSECT_INTERVALS=true MIN_GQ=0 MIN_DP=0 OUTPUT_ALL_ROWS=false USE_VCF_INDEX=false VERBOSITY=INFO QUIET=false VALIDATION_STRINGENCY=STRICT COMPRESSION_LEVEL=5 MAX_RECORDS_IN_RAM=500000 CREATE_INDEX=false CREATE_MD5_FILE=false
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Tue Nov 04 11:44:18 EST 2014
+
+## METRICS CLASS	picard.vcf.GenotypeConcordanceDetailMetrics
+VARIANT_TYPE	TRUTH_SAMPLE	CALL_SAMPLE	TRUTH_STATE	CALL_STATE	COUNT	CONTINGENCY_VALUES
+INDEL	NA12878	NA12878	HET_REF_VAR1	HET_REF_VAR1	22	TP,TN
+INDEL	NA12878	NA12878	HOM_VAR1	HOM_VAR1	12	TP
+INDEL	NA12878	NA12878	VC_FILTERED	VC_FILTERED	3	EMPTY
+
+
diff --git a/testdata/picard/vcf/CEUTrio-indels_vs_CEUTrio-indels_GtConcordanceDiff.genotype_concordance_summary_metrics b/testdata/picard/vcf/CEUTrio-indels_vs_CEUTrio-indels_GtConcordanceDiff.genotype_concordance_summary_metrics
new file mode 100644
index 0000000..35d2d19
--- /dev/null
+++ b/testdata/picard/vcf/CEUTrio-indels_vs_CEUTrio-indels_GtConcordanceDiff.genotype_concordance_summary_metrics
@@ -0,0 +1,11 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.vcf.GenotypeConcordance TRUTH_VCF=/Users/kbergin/picard/testdata/picard/vcf/CEUTrio-indels.vcf CALL_VCF=/Users/kbergin/picard/testdata/picard/vcf/CEUTrio-indels.vcf OUTPUT=/Users/kbergin/picard/testdata/picard/vcf/CEUTrio-indels_vs_CEUTrio-indels_GtConcordanceDiff TRUTH_SAMPLE=NA12878 CALL_SAMPLE=NA12878    INTERSECT_INTERVALS=true MIN_GQ=0 MIN_DP=0 OUTPUT_ALL_ROWS=false USE_VCF_INDEX=false MISSING_SITES_HOM_REF=false VERBOSITY=INFO QUIET=false VALIDATION_STRINGENCY=STRICT COMPR [...]
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Wed Jul 29 14:02:45 EDT 2015
+
+## METRICS CLASS	picard.vcf.GenotypeConcordanceSummaryMetrics
+VARIANT_TYPE	TRUTH_SAMPLE	CALL_SAMPLE	HET_SENSITIVITY	HET_PPV	HET_SPECIFICITY	HOMVAR_SENSITIVITY	HOMVAR_PPV	HOMVAR_SPECIFICITY	VAR_SENSITIVITY	VAR_PPV	VAR_SPECIFICITY	GENOTYPE_CONCORDANCE	NON_REF_GENOTYPE_CONCORDANCE
+SNP	NA12878	NA12878	?	?	?	?	?	?	?	?	?	?	?
+INDEL	NA12878	NA12878	1	1	?	1	1	?	1	1	1	1	1
+
+
diff --git a/testdata/net/sf/picard/vcf/CEUTrio-merged-indels-snps.vcf b/testdata/picard/vcf/CEUTrio-merged-indels-snps.vcf
similarity index 100%
rename from testdata/net/sf/picard/vcf/CEUTrio-merged-indels-snps.vcf
rename to testdata/picard/vcf/CEUTrio-merged-indels-snps.vcf
diff --git a/testdata/net/sf/picard/vcf/CEUTrio-merged-indels-snps.vcf.idx b/testdata/picard/vcf/CEUTrio-merged-indels-snps.vcf.idx
similarity index 100%
rename from testdata/net/sf/picard/vcf/CEUTrio-merged-indels-snps.vcf.idx
rename to testdata/picard/vcf/CEUTrio-merged-indels-snps.vcf.idx
diff --git a/testdata/net/sf/picard/vcf/CEUTrio-random-scatter-0.vcf b/testdata/picard/vcf/CEUTrio-random-scatter-0.vcf
similarity index 100%
rename from testdata/net/sf/picard/vcf/CEUTrio-random-scatter-0.vcf
rename to testdata/picard/vcf/CEUTrio-random-scatter-0.vcf
diff --git a/testdata/net/sf/picard/vcf/CEUTrio-random-scatter-0.vcf.idx b/testdata/picard/vcf/CEUTrio-random-scatter-0.vcf.idx
similarity index 100%
rename from testdata/net/sf/picard/vcf/CEUTrio-random-scatter-0.vcf.idx
rename to testdata/picard/vcf/CEUTrio-random-scatter-0.vcf.idx
diff --git a/testdata/net/sf/picard/vcf/CEUTrio-random-scatter-1.vcf b/testdata/picard/vcf/CEUTrio-random-scatter-1.vcf
similarity index 100%
rename from testdata/net/sf/picard/vcf/CEUTrio-random-scatter-1.vcf
rename to testdata/picard/vcf/CEUTrio-random-scatter-1.vcf
diff --git a/testdata/net/sf/picard/vcf/CEUTrio-random-scatter-1.vcf.idx b/testdata/picard/vcf/CEUTrio-random-scatter-1.vcf.idx
similarity index 100%
rename from testdata/net/sf/picard/vcf/CEUTrio-random-scatter-1.vcf.idx
rename to testdata/picard/vcf/CEUTrio-random-scatter-1.vcf.idx
diff --git a/testdata/net/sf/picard/vcf/CEUTrio-random-scatter-2.vcf b/testdata/picard/vcf/CEUTrio-random-scatter-2.vcf
similarity index 100%
rename from testdata/net/sf/picard/vcf/CEUTrio-random-scatter-2.vcf
rename to testdata/picard/vcf/CEUTrio-random-scatter-2.vcf
diff --git a/testdata/net/sf/picard/vcf/CEUTrio-random-scatter-2.vcf.idx b/testdata/picard/vcf/CEUTrio-random-scatter-2.vcf.idx
similarity index 100%
rename from testdata/net/sf/picard/vcf/CEUTrio-random-scatter-2.vcf.idx
rename to testdata/picard/vcf/CEUTrio-random-scatter-2.vcf.idx
diff --git a/testdata/net/sf/picard/vcf/CEUTrio-random-scatter-3.vcf b/testdata/picard/vcf/CEUTrio-random-scatter-3.vcf
similarity index 100%
rename from testdata/net/sf/picard/vcf/CEUTrio-random-scatter-3.vcf
rename to testdata/picard/vcf/CEUTrio-random-scatter-3.vcf
diff --git a/testdata/net/sf/picard/vcf/CEUTrio-random-scatter-3.vcf.idx b/testdata/picard/vcf/CEUTrio-random-scatter-3.vcf.idx
similarity index 100%
rename from testdata/net/sf/picard/vcf/CEUTrio-random-scatter-3.vcf.idx
rename to testdata/picard/vcf/CEUTrio-random-scatter-3.vcf.idx
diff --git a/testdata/net/sf/picard/vcf/CEUTrio-random-scatter-4.vcf b/testdata/picard/vcf/CEUTrio-random-scatter-4.vcf
similarity index 100%
rename from testdata/net/sf/picard/vcf/CEUTrio-random-scatter-4.vcf
rename to testdata/picard/vcf/CEUTrio-random-scatter-4.vcf
diff --git a/testdata/net/sf/picard/vcf/CEUTrio-random-scatter-4.vcf.idx b/testdata/picard/vcf/CEUTrio-random-scatter-4.vcf.idx
similarity index 100%
rename from testdata/net/sf/picard/vcf/CEUTrio-random-scatter-4.vcf.idx
rename to testdata/picard/vcf/CEUTrio-random-scatter-4.vcf.idx
diff --git a/testdata/net/sf/picard/vcf/CEUTrio-random-scatter-5.vcf b/testdata/picard/vcf/CEUTrio-random-scatter-5.vcf
similarity index 100%
rename from testdata/net/sf/picard/vcf/CEUTrio-random-scatter-5.vcf
rename to testdata/picard/vcf/CEUTrio-random-scatter-5.vcf
diff --git a/testdata/net/sf/picard/vcf/CEUTrio-random-scatter-5.vcf.idx b/testdata/picard/vcf/CEUTrio-random-scatter-5.vcf.idx
similarity index 100%
rename from testdata/net/sf/picard/vcf/CEUTrio-random-scatter-5.vcf.idx
rename to testdata/picard/vcf/CEUTrio-random-scatter-5.vcf.idx
diff --git a/testdata/picard/vcf/CEUTrio-snps-scrambled.1.vcf b/testdata/picard/vcf/CEUTrio-snps-scrambled.1.vcf
new file mode 100644
index 0000000..5d2c356
--- /dev/null
+++ b/testdata/picard/vcf/CEUTrio-snps-scrambled.1.vcf
@@ -0,0 +1,406 @@
+##fileformat=VCFv4.1
+##ApplyRecalibration="analysis_type=ApplyRecalibration input_file=[] read_buffer_size=null phone_home=NO_ET gatk_key=/humgen/gsa-hpprojects/GATK/data/gatk_user_keys/gsamembers_broadinstitute.org.key read_filter=[] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta nonDeterministicRandomSeed=false downsampling_type=BY_SAMPLE downsample_to_fraction=null do [...]
+##CombineVariants="analysis_type=CombineVariants input_file=[] read_buffer_size=null phone_home=STANDARD gatk_key=null read_filter=[] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta nonDeterministicRandomSeed=false downsampling_type=BY_SAMPLE downsample_to_fraction=null downsample_to_coverage=1000 baq=OFF baqGapOpenPenalty=40.0 performanceLog=null use [...]
+##FILTER=<ID=LowQual,Description="Low quality">
+##FILTER=<ID=VQSRTrancheINDEL99.00to99.90,Description="Truth sensitivity tranche level for INDEL model at VQS Lod: -4.1718 <= x < -0.8611">
+##FILTER=<ID=VQSRTrancheINDEL99.90to100.00+,Description="Truth sensitivity tranche level for INDEL model at VQS Lod < -727.2136">
+##FILTER=<ID=VQSRTrancheINDEL99.90to100.00,Description="Truth sensitivity tranche level for INDEL model at VQS Lod: -727.2136 <= x < -4.1718">
+##FILTER=<ID=VQSRTrancheSNP99.00to99.90,Description="Truth sensitivity tranche level for SNP model at VQS Lod: -25.4561 <= x < 3.2489">
+##FILTER=<ID=VQSRTrancheSNP99.90to100.00+,Description="Truth sensitivity tranche level for SNP model at VQS Lod < -38672.7015">
+##FILTER=<ID=VQSRTrancheSNP99.90to100.00,Description="Truth sensitivity tranche level for SNP model at VQS Lod: -38672.7015 <= x < -25.4561">
+##FORMAT=<ID=AD,Number=.,Type=Integer,Description="Allelic depths for the ref and alt alleles in the order listed">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth (reads with MQ=255 or with bad mates are filtered)">
+##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##FORMAT=<ID=PL,Number=G,Type=Integer,Description="Normalized, Phred-scaled likelihoods for genotypes as defined in the VCF specification">
+##FORMAT=<ID=TP,Number=1,Type=Integer,Description="Phred score of the genotype combination and phase given that the genotypes are correct">
+##INFO=<ID=AC,Number=A,Type=Integer,Description="Allele count in genotypes, for each ALT allele, in the same order as listed">
+##INFO=<ID=AF,Number=A,Type=Float,Description="Allele Frequency, for each ALT allele, in the same order as listed">
+##INFO=<ID=AN,Number=1,Type=Integer,Description="Total number of alleles in called genotypes">
+##INFO=<ID=BaseQRankSum,Number=1,Type=Float,Description="Z-score from Wilcoxon rank sum test of Alt Vs. Ref base qualities">
+##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP Membership">
+##INFO=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth; some reads may have been filtered">
+##INFO=<ID=DS,Number=0,Type=Flag,Description="Were any of the samples downsampled?">
+##INFO=<ID=Dels,Number=1,Type=Float,Description="Fraction of Reads Containing Spanning Deletions">
+##INFO=<ID=END,Number=1,Type=Integer,Description="Stop position of the interval">
+##INFO=<ID=FS,Number=1,Type=Float,Description="Phred-scaled p-value using Fisher's exact test to detect strand bias">
+##INFO=<ID=HaplotypeScore,Number=1,Type=Float,Description="Consistency of the site with at most two segregating haplotypes">
+##INFO=<ID=InbreedingCoeff,Number=1,Type=Float,Description="Inbreeding coefficient as estimated from the genotype likelihoods per-sample when compared against the Hardy-Weinberg expectation">
+##INFO=<ID=MLEAC,Number=A,Type=Integer,Description="Maximum likelihood expectation (MLE) for the allele counts (not necessarily the same as the AC), for each ALT allele, in the same order as listed">
+##INFO=<ID=MLEAF,Number=A,Type=Float,Description="Maximum likelihood expectation (MLE) for the allele frequency (not necessarily the same as the AF), for each ALT allele, in the same order as listed">
+##INFO=<ID=MQ,Number=1,Type=Float,Description="RMS Mapping Quality">
+##INFO=<ID=MQ0,Number=1,Type=Integer,Description="Total Mapping Quality Zero Reads">
+##INFO=<ID=MQRankSum,Number=1,Type=Float,Description="Z-score From Wilcoxon rank sum test of Alt vs. Ref read mapping qualities">
+##INFO=<ID=QD,Number=1,Type=Float,Description="Variant Confidence/Quality by Depth">
+##INFO=<ID=RPA,Number=.,Type=Integer,Description="Number of times tandem repeat unit is repeated, for each allele (including reference)">
+##INFO=<ID=RU,Number=1,Type=String,Description="Tandem repeat unit (bases)">
+##INFO=<ID=ReadPosRankSum,Number=1,Type=Float,Description="Z-score from Wilcoxon rank sum test of Alt vs. Ref read position bias">
+##INFO=<ID=SB,Number=1,Type=Float,Description="Strand Bias">
+##INFO=<ID=STR,Number=0,Type=Flag,Description="Variant is a short tandem repeat">
+##INFO=<ID=VQSLOD,Number=1,Type=Float,Description="Log odds ratio of being a true variant versus being false under the trained gaussian mixture model">
+##INFO=<ID=culprit,Number=1,Type=String,Description="The annotation which was the worst performing in the Gaussian mixture model, likely the reason why the variant was filtered out">
+##INFO=<ID=set,Number=1,Type=String,Description="Source VCF for the merged record in CombineVariants">
+##PhaseByTransmission="analysis_type=PhaseByTransmission input_file=[] read_buffer_size=null phone_home=STANDARD gatk_key=null read_filter=[] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta nonDeterministicRandomSeed=false downsampling_type=BY_SAMPLE downsample_to_fraction=null downsample_to_coverage=1000 baq=OFF baqGapOpenPenalty=40.0 performanceLog= [...]
+##UnifiedGenotyper="analysis_type=UnifiedGenotyper input_file=[/humgen/gsa-hpprojects/NA12878Collection/bams/CEUTrio.HiSeq.WGS.b37.list] read_buffer_size=null phone_home=NO_ET gatk_key=/humgen/gsa-hpprojects/GATK/data/gatk_user_keys/gsamembers_broadinstitute.org.key read_filter=[] intervals=[/broad/hptmp/ami/tmp/queueScatterGather/.qlog/CEUTrio.indelcall-sg/temp_020_of_300/scatter.intervals] excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_s [...]
+##contig=<ID=1,length=249250621,assembly=b37>
+##contig=<ID=2,length=243199373,assembly=b37>
+##contig=<ID=3,length=198022430,assembly=b37>
+##contig=<ID=4,length=191154276,assembly=b37>
+##contig=<ID=5,length=180915260,assembly=b37>
+##contig=<ID=6,length=171115067,assembly=b37>
+##contig=<ID=7,length=159138663,assembly=b37>
+##contig=<ID=8,length=146364022,assembly=b37>
+##contig=<ID=9,length=141213431,assembly=b37>
+##contig=<ID=10,length=135534747,assembly=b37>
+##contig=<ID=11,length=135006516,assembly=b37>
+##contig=<ID=12,length=133851895,assembly=b37>
+##contig=<ID=13,length=115169878,assembly=b37>
+##contig=<ID=14,length=107349540,assembly=b37>
+##contig=<ID=15,length=102531392,assembly=b37>
+##contig=<ID=16,length=90354753,assembly=b37>
+##contig=<ID=17,length=81195210,assembly=b37>
+##contig=<ID=18,length=78077248,assembly=b37>
+##contig=<ID=19,length=59128983,assembly=b37>
+##contig=<ID=20,length=63025520,assembly=b37>
+##contig=<ID=21,length=48129895,assembly=b37>
+##contig=<ID=22,length=51304566,assembly=b37>
+##contig=<ID=X,length=155270560,assembly=b37>
+##contig=<ID=Y,length=59373566,assembly=b37>
+##contig=<ID=MT,length=16569,assembly=b37>
+##contig=<ID=GL000207.1,length=4262,assembly=b37>
+##contig=<ID=GL000226.1,length=15008,assembly=b37>
+##contig=<ID=GL000229.1,length=19913,assembly=b37>
+##contig=<ID=GL000231.1,length=27386,assembly=b37>
+##contig=<ID=GL000210.1,length=27682,assembly=b37>
+##contig=<ID=GL000239.1,length=33824,assembly=b37>
+##contig=<ID=GL000235.1,length=34474,assembly=b37>
+##contig=<ID=GL000201.1,length=36148,assembly=b37>
+##contig=<ID=GL000247.1,length=36422,assembly=b37>
+##contig=<ID=GL000245.1,length=36651,assembly=b37>
+##contig=<ID=GL000197.1,length=37175,assembly=b37>
+##contig=<ID=GL000203.1,length=37498,assembly=b37>
+##contig=<ID=GL000246.1,length=38154,assembly=b37>
+##contig=<ID=GL000249.1,length=38502,assembly=b37>
+##contig=<ID=GL000196.1,length=38914,assembly=b37>
+##contig=<ID=GL000248.1,length=39786,assembly=b37>
+##contig=<ID=GL000244.1,length=39929,assembly=b37>
+##contig=<ID=GL000238.1,length=39939,assembly=b37>
+##contig=<ID=GL000202.1,length=40103,assembly=b37>
+##contig=<ID=GL000234.1,length=40531,assembly=b37>
+##contig=<ID=GL000232.1,length=40652,assembly=b37>
+##contig=<ID=GL000206.1,length=41001,assembly=b37>
+##contig=<ID=GL000240.1,length=41933,assembly=b37>
+##contig=<ID=GL000236.1,length=41934,assembly=b37>
+##contig=<ID=GL000241.1,length=42152,assembly=b37>
+##contig=<ID=GL000243.1,length=43341,assembly=b37>
+##contig=<ID=GL000242.1,length=43523,assembly=b37>
+##contig=<ID=GL000230.1,length=43691,assembly=b37>
+##contig=<ID=GL000237.1,length=45867,assembly=b37>
+##contig=<ID=GL000233.1,length=45941,assembly=b37>
+##contig=<ID=GL000204.1,length=81310,assembly=b37>
+##contig=<ID=GL000198.1,length=90085,assembly=b37>
+##contig=<ID=GL000208.1,length=92689,assembly=b37>
+##contig=<ID=GL000191.1,length=106433,assembly=b37>
+##contig=<ID=GL000227.1,length=128374,assembly=b37>
+##contig=<ID=GL000228.1,length=129120,assembly=b37>
+##contig=<ID=GL000214.1,length=137718,assembly=b37>
+##contig=<ID=GL000221.1,length=155397,assembly=b37>
+##contig=<ID=GL000209.1,length=159169,assembly=b37>
+##contig=<ID=GL000218.1,length=161147,assembly=b37>
+##contig=<ID=GL000220.1,length=161802,assembly=b37>
+##contig=<ID=GL000213.1,length=164239,assembly=b37>
+##contig=<ID=GL000211.1,length=166566,assembly=b37>
+##contig=<ID=GL000199.1,length=169874,assembly=b37>
+##contig=<ID=GL000217.1,length=172149,assembly=b37>
+##contig=<ID=GL000216.1,length=172294,assembly=b37>
+##contig=<ID=GL000215.1,length=172545,assembly=b37>
+##contig=<ID=GL000205.1,length=174588,assembly=b37>
+##contig=<ID=GL000219.1,length=179198,assembly=b37>
+##contig=<ID=GL000224.1,length=179693,assembly=b37>
+##contig=<ID=GL000223.1,length=180455,assembly=b37>
+##contig=<ID=GL000195.1,length=182896,assembly=b37>
+##contig=<ID=GL000212.1,length=186858,assembly=b37>
+##contig=<ID=GL000222.1,length=186861,assembly=b37>
+##contig=<ID=GL000200.1,length=187035,assembly=b37>
+##contig=<ID=GL000193.1,length=189789,assembly=b37>
+##contig=<ID=GL000194.1,length=191469,assembly=b37>
+##contig=<ID=GL000225.1,length=211173,assembly=b37>
+##contig=<ID=GL000192.1,length=547496,assembly=b37>
+##reference=file:///humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta
+##source=PhaseByTransmission
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	NA12878	NA12891	NA12892
+9	69810010	rs113063015	A	C	280.26	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=-1.223;DB;DP=716;DS;Dels=0.00;FS=8.996;HaplotypeScore=39.8350;MLEAC=3;MLEAF=0.500;MQ=37.32;MQ0=64;MQRankSum=-3.574;QD=0.39;ReadPosRankSum=-0.897;SB=-1.065e-02;VQSLOD=-68.1677;culprit=DP	GT:AD:DP:GQ:PL:TP	"0/1:218,23:241:73:73,0,3591:70"	"0/1:188,39:227:99:172,0,4233:70"	"0/1:217,31:248:74:74,0,5042:70"
+5	144321895	rs35068704	A	T	1535.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=6.048;DB;DP=203;Dels=0.00;FS=13.289;HaplotypeScore=0.5075;MLEAC=2;MLEAF=0.333;MQ=57.36;MQ0=0;MQRankSum=2.191;QD=11.37;ReadPosRankSum=-1.361;SB=-7.640e+02;VQSLOD=5.7211;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|1:34,25:59:99:595,0,976:127"	"0|0:68,0:68:99:0,190,2435:127"	"1|0:39,37:76:99:979,0,1274:127"
+7	101161506	rs2158739	C	T	4522.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=1.698;DB;DP=172;Dels=0.00;FS=4.280;HaplotypeScore=1.5077;MLEAC=5;MLEAF=0.833;MQ=58.18;MQ0=0;MQRankSum=-0.295;QD=26.29;ReadPosRankSum=0.974;SB=-2.287e+03;VQSLOD=8.2831;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,72:73:99:2443,202,0:110"	"1|0:23,26:50:99:711,0,586:110"	"1|1:0,48:49:99:1368,111,0:110"
+11	113825129	rs1150234	G	A	2441.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=3.977;DB;DP=210;Dels=0.00;FS=0.000;HaplotypeScore=2.0700;MLEAC=3;MLEAF=0.500;MQ=59.49;MQ0=0;MQRankSum=0.877;QD=11.63;ReadPosRankSum=0.262;SB=-1.513e+03;VQSLOD=9.0378;culprit=FS	GT:AD:DP:GQ:PL:TP	"0/1:30,33:63:99:881,0,774:127"	"0/1:46,33:80:99:726,0,1020:127"	"0/1:32,35:67:99:873,0,759:127"
+1	243135892	rs7517403	C	T	2313.25	VQSRTrancheSNP99.00to99.90	AC=4;AF=0.667;AN=6;BaseQRankSum=7.051;DB;DP=168;Dels=0.00;FS=0.000;HaplotypeScore=0.5884;MLEAC=4;MLEAF=0.667;MQ=37.62;MQ0=11;MQRankSum=-5.659;QD=13.77;ReadPosRankSum=-0.977;SB=-9.200e+02;VQSLOD=2.2480;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|0:31,24:55:99:501,0,891:123"	"1|1:0,58:58:99:1263,123,0:123"	"0|1:28,27:55:99:591,0,714:123"
+12	130522866	rs1613499	C	T	3975.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=130;Dels=0.00;FS=0.000;HaplotypeScore=0.6332;MLEAC=6;MLEAF=1.00;MQ=59.11;MQ0=0;QD=30.58;SB=-1.386e+03;VQSLOD=10.2250;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,57:57:99:1939,144,0:73"	"1|1:0,34:34:75:990,75,0:73"	"1|1:0,39:39:78:1046,78,0:73"
+13	74611546	rs73214804	C	T	639.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-0.487;DB;DP=164;Dels=0.00;FS=0.000;HaplotypeScore=1.4071;MLEAC=1;MLEAF=0.167;MQ=58.95;MQ0=0;MQRankSum=0.902;QD=11.21;ReadPosRankSum=-0.541;SB=-3.000e+02;VQSLOD=8.8824;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|0:53,0:53:99:0,135,1773:110"	"0|0:53,1:54:99:0,111,1440:110"	"0|1:24,33:57:99:674,0,388:110"
+12	101460237	rs7965836	C	T	3485.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-2.070;DB;DP=247;Dels=0.00;FS=2.895;HaplotypeScore=0.6556;MLEAC=3;MLEAF=0.500;MQ=59.83;MQ0=0;MQRankSum=-0.655;QD=14.11;ReadPosRankSum=-0.983;SB=-1.581e+03;VQSLOD=8.4872;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0/1:40,43:83:99:1287,0,1179:127"	"0/1:44,36:80:99:1068,0,1363:127"	"0/1:43,41:84:99:1130,0,1321:127"
+4	177855678	rs1545090	A	G	7065.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=229;Dels=0.00;FS=0.000;HaplotypeScore=1.1696;MLEAC=6;MLEAF=1.00;MQ=59.50;MQ0=0;QD=30.85;SB=-3.799e+03;VQSLOD=11.0069;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,84:84:99:2701,235,0:127"	"1|1:0,79:80:99:2401,211,0:127"	"1|1:0,65:65:99:1963,165,0:127"
+17	44809197	rs116187585	A	G	8703.01	PASS	AC=6;AF=1.00;AN=6;BaseQRankSum=-0.554;DB;DP=254;Dels=0.00;FS=3.487;HaplotypeScore=4.0582;MLEAC=6;MLEAF=1.00;MQ=59.58;MQ0=0;MQRankSum=1.677;QD=34.26;ReadPosRankSum=1.483;SB=-4.228e+03;VQSLOD=6.6144;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|1:1,96:97:99:3470,268,0:127"	"1|1:0,82:84:99:2846,220,0:127"	"1|1:0,73:73:99:2387,184,0:127"
+8	14463368	rs1355302	T	A	2523.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=6.793;DB;DP=236;Dels=0.00;FS=3.776;HaplotypeScore=0.3245;MLEAC=2;MLEAF=0.333;MQ=59.14;MQ0=0;MQRankSum=-0.381;QD=15.97;ReadPosRankSum=-0.045;SB=-1.421e+03;VQSLOD=7.6920;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|1:36,43:79:99:1332,0,1176:127"	"0|0:78,0:78:99:0,214,2749:127"	"1|0:35,44:79:99:1230,0,1162:127"
+3	128140891	rs73201490	C	T	1315.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=5.394;DB;DP=142;Dels=0.00;FS=0.667;HaplotypeScore=3.4886;MLEAC=2;MLEAF=0.333;MQ=58.69;MQ0=0;MQRankSum=1.733;QD=14.30;ReadPosRankSum=0.758;SB=-6.400e+02;VQSLOD=6.7020;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|1:29,24:53:99:636,0,670:104"	"0|0:50,0:50:99:0,105,1188:104"	"1|0:12,27:39:99:718,0,250:104"
+18	41449098	rs2045671	C	T	8380.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=237;Dels=0.00;FS=0.000;HaplotypeScore=1.3482;MLEAC=6;MLEAF=1.00;MQ=59.65;MQ0=0;QD=35.36;SB=-4.462e+03;VQSLOD=11.6464;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,76:76:99:2756,214,0:127"	"1|1:0,75:75:99:2635,202,0:127"	"1|1:0,86:86:99:2989,229,0:127"
+6	110345430	rs56272355	T	C	882.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-7.241;DB;DP=230;Dels=0.00;FS=2.159;HaplotypeScore=1.7615;MLEAC=1;MLEAF=0.167;MQ=59.70;MQ0=0;MQRankSum=-0.200;QD=11.46;ReadPosRankSum=-0.480;SB=-5.580e+02;VQSLOD=8.9824;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0|0:77,0:77:99:0,220,2860:127"	"0|0:75,0:76:99:0,184,2321:127"	"0|1:35,42:77:99:917,0,926:127"
+5	112750674	rs9716322	A	C	598.24	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=-0.293;DB;DP=199;Dels=0.00;FS=2.948;HaplotypeScore=0.3328;MLEAC=1;MLEAF=0.167;MQ=45.61;MQ0=2;MQRankSum=-2.398;QD=12.21;ReadPosRankSum=1.159;SB=-8.101e+01;VQSLOD=2.7717;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0|0:81,0:81:99:0,196,2534:127"	"0|1:23,26:49:99:633,0,479:127"	"0|0:68,1:69:99:0,174,2191:127"
+10	74020452	rs72806301	C	A	1116.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-2.155;DB;DP=135;Dels=0.00;FS=3.279;HaplotypeScore=0.8720;MLEAC=2;MLEAF=0.333;MQ=58.76;MQ0=0;MQRankSum=-0.818;QD=11.88;ReadPosRankSum=1.484;SB=-6.800e+02;VQSLOD=7.2668;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"0|1:20,27:47:99:658,0,446:104"	"0|0:41,0:41:99:0,105,1324:104"	"1|0:25,22:47:99:497,0,482:104"
+8	66327344	rs13282622	G	A	3918.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=4.514;DB;DP=192;Dels=0.00;FS=3.531;HaplotypeScore=1.6541;MLEAC=4;MLEAF=0.667;MQ=58.91;MQ0=0;MQRankSum=0.706;QD=20.41;ReadPosRankSum=-0.327;SB=-2.091e+03;VQSLOD=8.6266;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|1:34,37:71:99:1137,0,923:127"	"0|1:32,28:61:99:806,0,988:127"	"1|1:0,60:60:99:1975,153,0:127"
+5	36740339	rs36676	T	G	6995.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=230;Dels=0.00;FS=0.000;HaplotypeScore=2.0768;MLEAC=6;MLEAF=1.00;MQ=59.46;MQ0=0;QD=30.41;SB=-3.034e+03;VQSLOD=10.9208;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,75:75:99:2261,195,0:127"	"1|1:0,83:83:99:2579,217,0:127"	"1|1:0,71:72:99:2155,181,0:127"
+7	124589684	rs12113765	G	C	4948.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-2.607;DB;DP=243;Dels=0.00;FS=1.040;HaplotypeScore=3.3790;MLEAC=4;MLEAF=0.667;MQ=58.74;MQ0=0;MQRankSum=1.246;QD=20.36;ReadPosRankSum=-0.387;SB=-2.411e+03;VQSLOD=7.0507;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|0:44,27:71:99:796,0,1350:127"	"1|1:0,84:85:99:2760,217,0:127"	"0|1:41,46:87:99:1392,0,1180:127"
+9	89010476	rs164937	T	C	736.24	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.977;DB;DP=216;Dels=0.00;FS=1.481;HaplotypeScore=1.0649;MLEAC=1;MLEAF=0.167;MQ=39.79;MQ0=9;MQRankSum=-3.028;QD=9.56;ReadPosRankSum=0.542;SB=-4.240e+02;VQSLOD=2.0772;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0|0:66,0:66:99:0,174,2097:127"	"0|1:40,37:77:99:771,0,876:127"	"0|0:73,0:73:99:0,183,2147:127"
+18	10010426	rs4797393	T	C	4197.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=0.425;DB;DP=210;Dels=0.00;FS=1.132;HaplotypeScore=1.2660;MLEAC=4;MLEAF=0.667;MQ=59.43;MQ0=0;MQRankSum=-2.916;QD=19.99;ReadPosRankSum=0.379;SB=-2.001e+03;VQSLOD=7.0312;culprit=MQRankSum	GT:AD:DP:GQ:PL:TP	"1|1:0,65:65:99:2247,181,0:127"	"1|0:35,39:75:99:1170,0,967:127"	"1|0:41,29:70:99:780,0,1052:127"
+12	21328424	rs4149040	G	C	2565.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=0.888;DB;DP=252;Dels=0.00;FS=9.753;HaplotypeScore=0.6082;MLEAC=2;MLEAF=0.333;MQ=59.49;MQ0=0;MQRankSum=1.166;QD=15.18;ReadPosRankSum=0.966;SB=-1.181e+03;VQSLOD=7.5539;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|1:40,49:89:99:1534,0,1308:127"	"0|0:83,0:83:99:0,241,3117:127"	"1|0:45,35:80:99:1070,0,1402:127"
+11	44985620	rs7106313	C	T	338.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=2.185;DB;DP=162;Dels=0.00;FS=4.840;HaplotypeScore=2.0046;MLEAC=1;MLEAF=0.167;MQ=56.94;MQ0=0;MQRankSum=2.019;QD=8.67;ReadPosRankSum=0.983;SB=-2.190e+02;VQSLOD=6.6624;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|0:79,0:80:99:0,174,2084:72"	"0|0:43,0:43:72:0,72,877:72"	"0|1:20,18:39:99:373,0,365:72"
+5	3276081	rs4866540	G	A	3653.01	VQSRTrancheSNP99.00to99.90	AC=4;AF=0.667;AN=6;BaseQRankSum=5.002;DB;DP=176;Dels=0.00;FS=2.778;HaplotypeScore=19.0040;MLEAC=4;MLEAF=0.667;MQ=57.74;MQ0=0;MQRankSum=-0.569;QD=20.76;ReadPosRankSum=1.308;SB=-6.610e+02;VQSLOD=3.1833;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|1:1,71:72:99:2337,175,0:127"	"1|0:26,25:51:99:719,0,601:127"	"1|0:26,27:53:99:597,0,662:127"
+13	92742124	rs2148446	G	A	1884.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-2.340;DB;DP=213;Dels=0.00;FS=0.000;HaplotypeScore=0.3156;MLEAC=2;MLEAF=0.333;MQ=59.37;MQ0=0;MQRankSum=-2.935;QD=12.99;ReadPosRankSum=-0.579;SB=-9.540e+02;VQSLOD=7.2833;culprit=MQRankSum	GT:AD:DP:GQ:PL:TP	"0|1:38,38:76:99:1130,0,1190:127"	"0|0:68,0:68:99:0,190,2454:127"	"1|0:38,31:69:99:793,0,1094:127"
+3	8399330	rs6770171	G	A	6816.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=4.689;DB;DP=253;Dels=0.00;FS=0.637;HaplotypeScore=1.2788;MLEAC=5;MLEAF=0.833;MQ=58.42;MQ0=0;MQRankSum=0.607;QD=26.94;ReadPosRankSum=-0.503;SB=-3.369e+03;VQSLOD=8.0141;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"1|1:0,106:106:99:3784,292,0:127"	"1|1:0,72:72:99:2164,169,0:127"	"1|0:42,33:75:99:868,0,1146:127"
+12	48120010	rs3829317	A	C	4015.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=1.659;DB;DP=162;Dels=0.00;FS=1.828;HaplotypeScore=2.1844;MLEAC=5;MLEAF=0.833;MQ=59.48;MQ0=0;MQRankSum=0.154;QD=24.78;ReadPosRankSum=0.482;SB=-2.240e+03;VQSLOD=8.1337;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,63:63:99:2024,163,0:110"	"1|0:24,27:51:99:550,0,540:110"	"1|1:0,48:48:99:1441,111,0:110"
+8	140651779	rs1469039	G	A	1879.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-2.189;DB;DP=145;Dels=0.00;FS=0.000;HaplotypeScore=1.7695;MLEAC=3;MLEAF=0.500;MQ=58.39;MQ0=0;MQRankSum=0.745;QD=12.96;ReadPosRankSum=-0.159;SB=-9.360e+02;VQSLOD=9.0059;culprit=FS	GT:AD:DP:GQ:PL:TP	"0/1:23,24:47:99:612,0,740:127"	"0/1:21,31:52:99:684,0,478:127"	"0/1:20,26:46:99:622,0,367:127"
+21	18433036	rs969905	A	G	781.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-6.610;DB;DP=229;Dels=0.00;FS=2.230;HaplotypeScore=1.2866;MLEAC=1;MLEAF=0.167;MQ=59.55;MQ0=0;MQRankSum=0.300;QD=10.15;ReadPosRankSum=-0.384;SB=-4.990e+02;VQSLOD=9.5768;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|0:62,0:63:99:0,181,2380:127"	"0|0:89,0:89:99:0,244,3177:127"	"0|1:39,38:77:99:816,0,1256:127"
+2	155726628	.	T	G	1351.23	VQSRTrancheSNP99.00to99.90	AC=6;AF=1.00;AN=6;BaseQRankSum=0.207;DP=193;Dels=0.00;FS=9.246;HaplotypeScore=0.5220;MLEAC=6;MLEAF=1.00;MQ=16.17;MQ0=87;MQRankSum=2.396;QD=7.00;ReadPosRankSum=1.069;SB=-4.420e+02;VQSLOD=-2.7874;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|1:3,56:59:60:591,60,0:27"	"1|1:8,49:57:27:245,27,0:27"	"1|1:12,65:77:57:553,57,0:27"
+3	26960556	rs4422260	T	C	878.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=-2.140;DB;DP=220;Dels=0.00;FS=1.108;HaplotypeScore=1.7204;MLEAC=2;MLEAF=0.333;MQ=41.87;MQ0=3;MQRankSum=-6.679;QD=5.97;ReadPosRankSum=-0.031;SB=-4.600e+02;VQSLOD=0.7170;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0|0:73,0:73:99:0,208,2660:127"	"0|1:32,48:80:99:759,0,915:127"	"0|1:37,30:67:99:158,0,1092:127"
+1	186656152	rs4422959	G	A	1342.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=7.230;DB;DP=270;Dels=0.00;FS=7.290;HaplotypeScore=1.1750;MLEAC=1;MLEAF=0.167;MQ=59.71;MQ0=0;MQRankSum=0.399;QD=17.21;ReadPosRankSum=-0.869;SB=-6.320e+02;VQSLOD=7.6734;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0|0:99,0:99:99:0,283,3341:127"	"0|0:93,0:93:99:0,256,3022:127"	"0|1:33,45:78:99:1377,0,917:127"
+12	29935607	rs7305813	A	C	810.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=0.307;DB;DP=203;Dels=0.00;FS=14.326;HaplotypeScore=1.9820;MLEAC=1;MLEAF=0.167;MQ=59.57;MQ0=0;MQRankSum=-0.164;QD=12.86;ReadPosRankSum=-0.733;SB=-2.950e+02;VQSLOD=7.9009;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|0:71,0:71:99:0,193,2479:127"	"0|0:69,0:69:99:0,196,2464:127"	"0|1:28,35:63:99:845,0,847:127"
+10	19567676	rs61458006	G	T	599.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.610;DB;DP=195;Dels=0.00;FS=0.844;HaplotypeScore=0.8795;MLEAC=1;MLEAF=0.167;MQ=59.57;MQ0=0;MQRankSum=-0.191;QD=11.31;ReadPosRankSum=-1.635;SB=-2.780e+02;VQSLOD=9.3606;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|0:75,0:75:99:0,208,2645:127"	"0|1:30,23:53:99:634,0,915:127"	"0|0:67,0:67:99:0,199,2540:127"
+5	132377304	rs72801439	A	T	858.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.113;DB;DP=219;Dels=0.00;FS=10.632;HaplotypeScore=0.6638;MLEAC=1;MLEAF=0.167;MQ=59.41;MQ0=0;MQRankSum=-0.881;QD=11.29;ReadPosRankSum=0.435;SB=-3.050e+02;VQSLOD=7.6837;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|0:67,0:67:99:0,163,2149:127"	"0|1:43,33:76:99:893,0,1280:127"	"0|0:76,0:76:99:0,199,2553:127"
+2	177175707	rs7355385	A	G	2590.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-0.866;DB;DP=206;Dels=0.00;FS=14.872;HaplotypeScore=0.3111;MLEAC=3;MLEAF=0.500;MQ=59.12;MQ0=0;MQRankSum=-0.937;QD=20.40;ReadPosRankSum=-0.287;SB=-8.970e+02;VQSLOD=6.8179;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|0:33,32:65:99:856,0,1069:127"	"1|1:0,62:62:99:1779,150,0:127"	"0|0:78,1:79:99:0,193,2411:127"
+10	116646860	rs4752347	T	A	4159.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-3.459;DB;DP=197;Dels=0.00;FS=3.519;HaplotypeScore=0.6313;MLEAC=4;MLEAF=0.667;MQ=59.27;MQ0=0;MQRankSum=1.049;QD=21.11;ReadPosRankSum=-1.271;SB=-2.347e+03;VQSLOD=8.3322;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"1|1:0,63:63:99:2191,169,0:127"	"1|0:31,35:66:99:1031,0,863:127"	"1|0:31,37:68:99:937,0,774:127"
+8	123499998	rs9693135	T	C	926.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-7.820;DB;DP=207;Dels=0.00;FS=2.678;HaplotypeScore=1.2574;MLEAC=2;MLEAF=0.333;MQ=56.08;MQ0=0;MQRankSum=-2.729;QD=6.34;ReadPosRankSum=-0.269;SB=-8.230e+02;VQSLOD=4.3016;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|0:61,0:61:99:0,172,2301:127"	"0|1:37,35:72:99:622,0,769:127"	"0|1:48,26:74:99:343,0,1280:127"
+5	70856663	rs157045	T	C	2040.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-7.809;DB;DP=234;Dels=0.00;FS=1.824;HaplotypeScore=1.0544;MLEAC=2;MLEAF=0.333;MQ=58.65;MQ0=0;MQRankSum=0.989;QD=13.16;ReadPosRankSum=0.719;SB=-8.820e+02;VQSLOD=7.3513;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|0:44,41:85:99:1087,0,1448:127"	"1|0:28,42:70:99:992,0,789:127"	"0|0:79,0:79:99:0,181,2342:127"
+5	58243302	rs457566	A	C	6237.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-1.663;DB;DP=233;Dels=0.00;FS=3.429;HaplotypeScore=0.8859;MLEAC=5;MLEAF=0.833;MQ=59.70;MQ0=0;MQRankSum=-0.232;QD=26.77;ReadPosRankSum=0.957;SB=-2.566e+03;VQSLOD=9.3537;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|1:0,87:87:99:2923,229,0:127"	"1|0:36,50:86:99:1429,0,1006:127"	"1|1:0,60:60:99:1885,147,0:127"
+14	87263523	rs2542229	A	C	8104.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=239;Dels=0.00;FS=0.000;HaplotypeScore=0.6305;MLEAC=6;MLEAF=1.00;MQ=59.17;MQ0=0;QD=33.91;SB=-4.393e+03;VQSLOD=11.3001;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,77:77:99:2810,214,0:127"	"1|1:0,85:85:99:2877,223,0:127"	"1|1:0,77:77:99:2417,187,0:127"
+10	65355538	rs10733794	A	G	2464.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-8.392;DB;DP=193;Dels=0.00;FS=7.473;HaplotypeScore=2.5434;MLEAC=3;MLEAF=0.500;MQ=58.06;MQ0=2;MQRankSum=0.999;QD=18.96;ReadPosRankSum=-1.229;SB=-1.065e+03;VQSLOD=6.3934;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|0:33,32:65:99:830,0,1039:127"	"1|1:1,64:65:99:1679,153,0:127"	"0|0:63,0:63:99:0,159,2042:127"
+5	49438828	rs137880658	G	A	424.24	VQSRTrancheSNP99.90to100.00	AC=1;AF=0.167;AN=6;BaseQRankSum=-4.376;DB;DP=748;DS;Dels=0.00;FS=7.184;HaplotypeScore=20.6618;MLEAC=1;MLEAF=0.167;MQ=19.63;MQ0=158;MQRankSum=3.819;QD=1.70;ReadPosRankSum=1.191;SB=-2.220e+02;VQSLOD=-98.2155;culprit=DP	GT:AD:DP:GQ:PL:TP	"0|0:249,0:249:99:0,555,4848:127"	"0|1:204,46:250:99:459,0,2894:127"	"0|0:249,0:249:99:0,480,4326:127"
+2	167166899	.	T	A	1064.78	VQSRTrancheSNP99.00to99.90	AC=5;AF=0.833;AN=6;BaseQRankSum=0.023;DP=278;Dels=0.00;FS=9.890;HaplotypeScore=0.2774;MLEAC=6;MLEAF=1.00;MQ=10.47;MQ0=239;MQRankSum=1.643;QD=3.83;ReadPosRankSum=0.347;SB=-1.083e-02;VQSLOD=-6.9449;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|1:174,12:186:36:401,36,0:4"	"1|1:37,14:52:39:431,39,0:4"	"1|0:31,9:40:3:271,0,3:4"
+15	100799787	rs4965610	C	T	2133.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=8.373;DB;DP=230;Dels=0.00;FS=1.037;HaplotypeScore=0.5427;MLEAC=3;MLEAF=0.500;MQ=58.84;MQ0=0;MQRankSum=0.169;QD=9.28;ReadPosRankSum=-0.098;SB=-1.328e+03;VQSLOD=7.8802;culprit=QD	GT:AD:DP:GQ:PL:TP	"0/1:40,36:76:99:948,0,701:127"	"0/1:45,38:83:99:761,0,635:127"	"0/1:35,36:71:99:463,0,706:127"
+2	187694833	rs10191094	T	C	1006.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-7.181;DB;DP=236;Dels=0.00;FS=9.083;HaplotypeScore=2.2688;MLEAC=1;MLEAF=0.167;MQ=59.73;MQ0=0;MQRankSum=-0.218;QD=13.07;ReadPosRankSum=-0.877;SB=-5.830e+02;VQSLOD=7.6003;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0|0:82,0:82:99:0,232,3021:127"	"0|0:77,0:77:99:0,217,2790:127"	"0|1:33,44:77:99:1041,0,988:127"
+10	125452232	rs7900707	A	G	3211.24	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-6.610;DB;DP=189;Dels=0.00;FS=17.742;HaplotypeScore=0.0000;MLEAC=4;MLEAF=0.667;MQ=59.66;MQ0=0;MQRankSum=0.614;QD=16.99;ReadPosRankSum=-0.321;SB=-1.553e+03;VQSLOD=6.9018;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|1:0,61:61:99:1944,168,0:127"	"1|0:44,26:70:99:627,0,1357:127"	"1|0:29,29:58:99:682,0,862:127"
+GL000212.1	28454	.	T	C	2248.99	VQSRTrancheSNP99.00to99.90	AC=4;AF=1.00;AN=4;BaseQRankSum=1.691;DP=94;Dels=0.00;FS=3.274;HaplotypeScore=0.9622;MLEAC=4;MLEAF=1.00;MQ=36.99;MQ0=7;MQRankSum=-0.428;QD=24.18;ReadPosRankSum=-1.284;SB=-1.053e+03;VQSLOD=1.2364;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|1:0,29:29:63:755,63,0:63"	./.	"1|1:1,63:64:99:1530,135,0:63"
+12	122942070	rs10744217	A	G	1812.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.353;DB;DP=179;Dels=0.00;FS=0.663;HaplotypeScore=1.4184;MLEAC=3;MLEAF=0.500;MQ=58.69;MQ0=0;MQRankSum=0.992;QD=15.10;ReadPosRankSum=1.081;SB=-5.860e+02;VQSLOD=8.4750;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|0:35,36:71:99:762,0,1100:92"	"1|1:0,48:49:93:1095,93,0:92"	"0|0:59,0:59:99:0,120,1560:92"
+X	84165195	rs5923187	C	A	1009.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.103;DB;DP=194;Dels=0.00;FS=3.070;HaplotypeScore=2.8168;MLEAC=1;MLEAF=0.167;MQ=59.31;MQ0=0;MQRankSum=-0.675;QD=12.01;ReadPosRankSum=-1.463;SB=-5.890e+02;VQSLOD=8.2395;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|0:79,1:80:99:0,223,2856:60"	"0|0:30,0:30:60:0,60,764:60"	"0|1:40,44:84:99:1044,0,1007:60"
+14	47568119	rs1952206	T	C	3399.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-9.721;DB;DP=230;Dels=0.00;FS=0.483;HaplotypeScore=0.6577;MLEAC=3;MLEAF=0.500;MQ=59.54;MQ0=0;MQRankSum=-0.479;QD=14.78;ReadPosRankSum=1.261;SB=-1.667e+03;VQSLOD=9.1589;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"0/1:41,43:84:99:1239,0,1315:127"	"0/1:28,43:71:99:1178,0,816:127"	"0/1:40,35:75:99:982,0,1314:127"
+1	110091282	rs1279195	C	T	952.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=2.646;DB;DP=101;Dels=0.00;FS=19.666;HaplotypeScore=1.9160;MLEAC=2;MLEAF=0.333;MQ=56.72;MQ0=0;MQRankSum=-0.345;QD=12.37;ReadPosRankSum=0.567;SB=-5.350e+02;VQSLOD=4.1741;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|0:14,29:46:99:726,0,219:42"	"1|0:13,12:31:99:265,0,298:42"	"0|0:18,0:24:42:0,42,522:42"
+5	10958957	rs852590	T	C	8430.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=243;Dels=0.00;FS=0.000;HaplotypeScore=1.8272;MLEAC=6;MLEAF=1.00;MQ=59.31;MQ0=0;QD=34.69;SB=-4.118e+03;VQSLOD=10.8702;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:1,96:97:99:3594,277,0:127"	"1|1:1,73:74:99:2318,181,0:127"	"1|1:0,72:72:99:2518,196,0:127"
+21	34546711	rs11701692	T	C	1030.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-1.884;DB;DP=152;Dels=0.00;FS=8.325;HaplotypeScore=1.9325;MLEAC=2;MLEAF=0.333;MQ=57.61;MQ0=0;MQRankSum=-0.291;QD=10.51;ReadPosRankSum=0.258;SB=-4.600e+02;VQSLOD=6.4601;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|0:35,25:61:99:574,0,1137:127"	"1|0:19,18:37:99:495,0,498:127"	"0|0:54,0:54:99:0,141,1811:127"
+18	50973169	rs11661305	A	G	5320.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=2.753;DB;DP=196;Dels=0.00;FS=2.568;HaplotypeScore=1.1306;MLEAC=5;MLEAF=0.833;MQ=57.73;MQ0=0;MQRankSum=0.246;QD=27.14;ReadPosRankSum=0.186;SB=-2.411e+03;VQSLOD=7.5009;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|1:0,74:74:99:2621,202,0:127"	"1|0:30,37:67:99:1009,0,842:127"	"1|1:0,55:55:99:1690,132,0:127"
+6	120734422	rs62424426	T	C	1091.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.268;DB;DP=208;Dels=0.00;FS=4.347;HaplotypeScore=0.7034;MLEAC=1;MLEAF=0.167;MQ=59.71;MQ0=0;MQRankSum=-0.188;QD=14.36;ReadPosRankSum=-0.149;SB=-5.560e+02;VQSLOD=8.6529;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0|0:70,1:71:99:0,205,2692:127"	"0|0:61,0:61:99:0,175,2298:127"	"0|1:39,37:76:99:1126,0,1140:127"
+3	86234718	rs2324883	T	C	7655.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=234;Dels=0.00;FS=0.000;HaplotypeScore=0.6487;MLEAC=6;MLEAF=1.00;MQ=59.51;MQ0=0;QD=32.71;SB=-4.142e+03;VQSLOD=11.2111;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,80:80:99:2857,223,0:127"	"1|1:0,76:77:99:2512,196,0:127"	"1|1:0,77:77:99:2286,178,0:127"
+3	158557110	rs34445802	G	A	2374.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.805;DB;DP=237;Dels=0.00;FS=1.025;HaplotypeScore=1.6572;MLEAC=2;MLEAF=0.333;MQ=57.48;MQ0=0;MQRankSum=0.558;QD=14.05;ReadPosRankSum=-1.147;SB=-1.505e+03;VQSLOD=7.1338;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|0:43,56:99:99:1624,0,1344:127"	"1|0:33,37:70:99:789,0,916:127"	"0|0:68,0:68:99:0,156,2014:127"
+14	68051087	rs11628035	G	A	4028.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=3.928;DB;DP=236;Dels=0.00;FS=8.184;HaplotypeScore=1.3296;MLEAC=3;MLEAF=0.500;MQ=58.83;MQ0=0;MQRankSum=1.834;QD=25.49;ReadPosRankSum=2.590;SB=-1.989e+03;VQSLOD=6.7911;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"1|0:38,39:77:99:1265,0,1112:127"	"1|1:0,81:81:99:2763,214,0:127"	"0|0:78,0:78:99:0,208,2673:127"
+17	21547285	rs62049731	A	C	1322.26	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=-0.987;DB;DP=569;Dels=0.00;FS=2.322;HaplotypeScore=42.4511;MLEAC=3;MLEAF=0.500;MQ=44.59;MQ0=24;MQRankSum=-6.240;QD=2.32;ReadPosRankSum=-5.171;SB=-6.369e+02;VQSLOD=-39.5319;culprit=DP	GT:AD:DP:GQ:PL:TP	"0/1:146,28:174:99:217,0,4187:127"	"0/1:162,56:218:99:804,0,4298:127"	"0/1:139,38:177:99:340,0,3842:127"
+16	83153777	rs4395063	T	C	3143.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-1.771;DB;DP=205;Dels=0.00;FS=1.805;HaplotypeScore=1.0370;MLEAC=4;MLEAF=0.667;MQ=59.55;MQ0=0;MQRankSum=-1.380;QD=15.33;ReadPosRankSum=0.424;SB=-2.104e+03;VQSLOD=8.8241;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|1:31,31:62:99:867,0,865:127"	"0|1:45,28:73:99:412,0,801:127"	"1|1:0,70:70:99:1906,150,0:127"
+11	132780959	rs61906922	C	T	1342.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=6.221;DB;DP=263;Dels=0.00;FS=0.601;HaplotypeScore=1.8444;MLEAC=1;MLEAF=0.167;MQ=59.58;MQ0=0;MQRankSum=0.997;QD=15.25;ReadPosRankSum=-0.746;SB=-6.890e+02;VQSLOD=8.8133;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"0|0:87,0:87:99:0,250,2877:127"	"0|0:87,0:88:99:0,253,3009:127"	"0|1:43,45:88:99:1377,0,1138:127"
+13	109990322	rs7328109	T	C	7198.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-2.487;DB;DP=245;Dels=0.00;FS=5.887;HaplotypeScore=1.8793;MLEAC=5;MLEAF=0.833;MQ=59.60;MQ0=0;MQRankSum=-0.236;QD=29.38;ReadPosRankSum=0.136;SB=-3.593e+03;VQSLOD=8.8925;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,79:79:99:2825,220,0:127"	"1|0:33,54:87:99:1591,0,933:127"	"1|1:0,79:79:99:2782,214,0:127"
+19	3739001	rs56138006	C	T	976.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=4.634;DB;DP=118;Dels=0.00;FS=3.676;HaplotypeScore=1.4356;MLEAC=2;MLEAF=0.333;MQ=58.66;MQ0=0;MQRankSum=0.753;QD=11.22;ReadPosRankSum=1.107;SB=-6.380e+02;VQSLOD=7.4541;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|1:30,22:52:99:612,0,559:45"	"0|0:31,0:31:45:0,45,527:45"	"1|0:12,23:35:93:403,0,93:45"
+20	51353834	rs241795	G	A	6115.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=7.909;DB;DP=268;Dels=0.00;FS=0.000;HaplotypeScore=0.2447;MLEAC=4;MLEAF=0.667;MQ=59.38;MQ0=0;MQRankSum=-0.518;QD=22.82;ReadPosRankSum=-0.253;SB=-3.328e+03;VQSLOD=8.3999;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|0:46,54:100:99:1663,0,1247:127"	"1|1:0,91:91:99:3189,247,0:127"	"0|1:36,41:77:99:1263,0,901:127"
+13	37484693	rs1571317	T	C	971.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.315;DB;DP=229;Dels=0.00;FS=3.052;HaplotypeScore=0.6603;MLEAC=1;MLEAF=0.167;MQ=58.51;MQ0=0;MQRankSum=1.885;QD=12.78;ReadPosRankSum=-0.343;SB=-5.750e+02;VQSLOD=7.3064;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|0:94,0:94:99:0,253,3258:127"	"0|1:35,41:76:99:1006,0,924:127"	"0|0:59,0:59:99:0,147,1872:127"
+7	158686803	rs55765467	T	C	200.26	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=-10.112;DB;DP=310;Dels=0.00;FS=2.596;HaplotypeScore=1.2829;MLEAC=3;MLEAF=0.500;MQ=47.32;MQ0=0;MQRankSum=-4.959;QD=0.65;ReadPosRankSum=-10.956;SB=-1.206e+03;VQSLOD=-17.6411;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"0/1:64,33:97:99:148,0,1949:32"	"0/1:73,45:118:58:58,0,2287:32"	"0/1:65,30:95:33:33,0,1910:32"
+16	34610294	rs72812776	C	T	603.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.361;DB;DP=270;Dels=0.00;FS=6.065;HaplotypeScore=3.1650;MLEAC=1;MLEAF=0.167;MQ=59.66;MQ0=0;MQRankSum=1.603;QD=7.83;ReadPosRankSum=0.296;SB=-2.820e+02;VQSLOD=3.3685;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|0:123,0:123:99:0,343,4443:127"	"0|0:69,1:70:99:0,184,2397:127"	"0|1:48,29:77:99:638,0,1483:127"
+5	102962771	rs6866105	A	G	5087.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-2.665;DB;DP=200;Dels=0.00;FS=8.083;HaplotypeScore=2.2837;MLEAC=5;MLEAF=0.833;MQ=58.71;MQ0=0;MQRankSum=-0.503;QD=25.44;ReadPosRankSum=-0.482;SB=-2.172e+03;VQSLOD=7.2212;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,75:75:99:2373,184,0:127"	"1|1:0,59:59:99:1776,141,0:127"	"1|0:31,35:66:99:938,0,803:127"
+X	116855730	rs980389	A	G	2366.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.939;DB;DP=173;Dels=0.00;FS=3.510;HaplotypeScore=0.9076;MLEAC=3;MLEAF=0.500;MQ=59.87;MQ0=0;MQRankSum=0.653;QD=21.51;ReadPosRankSum=0.730;SB=-1.218e+03;VQSLOD=7.9588;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|0:37,33:70:99:965,0,1249:114"	"1|1:0,40:40:99:1446,114,0:114"	"0|0:63,0:63:99:0,175,2284:114"
+4	161180100	rs167176	G	C	2497.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=6.811;DB;DP=191;Dels=0.00;FS=5.370;HaplotypeScore=0.7812;MLEAC=3;MLEAF=0.500;MQ=59.78;MQ0=0;MQRankSum=-0.584;QD=13.07;ReadPosRankSum=0.756;SB=-1.206e+03;VQSLOD=8.0012;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0/1:32,36:68:99:1100,0,895:127"	"0/1:41,35:76:99:987,0,1028:127"	"0/1:29,17:47:99:449,0,820:127"
+X	42192093	rs58959554	T	C	1058.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-5.464;DB;DP=190;Dels=0.00;FS=6.809;HaplotypeScore=1.8813;MLEAC=1;MLEAF=0.167;MQ=59.41;MQ0=0;MQRankSum=-0.212;QD=15.34;ReadPosRankSum=-0.173;SB=-3.970e+02;VQSLOD=8.0569;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|0:70,1:71:99:0,182,2683:127"	"0|0:50,0:50:99:0,138,1794:127"	"0|1:31,38:69:99:1093,0,947:127"
+3	76722766	rs264537	C	G	845.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=3.666;DB;DP=202;Dels=0.00;FS=0.000;HaplotypeScore=0.2774;MLEAC=1;MLEAF=0.167;MQ=59.79;MQ0=0;MQRankSum=-0.795;QD=13.21;ReadPosRankSum=1.049;SB=-2.910e+02;VQSLOD=8.5280;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|0:70,0:70:99:0,208,2570:127"	"0|0:68,0:68:99:0,193,2332:127"	"0|1:34,30:64:99:880,0,995:127"
+14	96490389	rs72702859	C	G	3394.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-6.529;DB;DP=264;Dels=0.00;FS=2.746;HaplotypeScore=3.1300;MLEAC=3;MLEAF=0.500;MQ=59.49;MQ0=0;MQRankSum=-1.258;QD=18.25;ReadPosRankSum=-0.961;SB=-1.966e+03;VQSLOD=6.3356;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|0:34,52:86:99:1358,0,886:127"	"1|1:0,100:100:99:2036,180,0:127"	"0|0:78,0:78:99:0,184,2393:127"
+14	20313371	rs10137604	A	C	2154.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-4.894;DB;DP=255;Dels=0.00;FS=0.000;HaplotypeScore=2.0503;MLEAC=2;MLEAF=0.333;MQ=56.32;MQ0=1;MQRankSum=1.608;QD=13.72;ReadPosRankSum=0.126;SB=-1.124e+03;VQSLOD=5.6223;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|1:40,48:88:99:1426,0,1229:127"	"0|0:98,0:98:99:0,268,3527:127"	"1|0:43,26:69:99:767,0,1284:127"
+3	108612711	rs2399252	T	A	3430.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-0.783;DB;DP=239;Dels=0.00;FS=4.436;HaplotypeScore=0.6593;MLEAC=3;MLEAF=0.500;MQ=59.64;MQ0=0;MQRankSum=-0.269;QD=14.35;ReadPosRankSum=-0.701;SB=-1.733e+03;VQSLOD=8.5079;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0/1:48,34:82:99:1066,0,1620:127"	"0/1:45,43:88:99:1370,0,1452:127"	"0/1:36,32:69:99:994,0,1128:127"
+2	36994439	rs11124542	A	C	1302.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-7.406;DB;DP=191;Dels=0.00;FS=3.335;HaplotypeScore=2.1785;MLEAC=3;MLEAF=0.500;MQ=58.93;MQ0=0;MQRankSum=-0.725;QD=6.82;ReadPosRankSum=0.302;SB=-1.006e+03;VQSLOD=7.9479;culprit=QD	GT:AD:DP:GQ:PL:TP	"0/1:32,28:60:99:710,0,1044:127"	"0/1:34,25:59:99:309,0,772:127"	"0/1:45,27:72:99:322,0,1096:127"
+4	82427976	rs6841516	G	A	561.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.022;DB;DP=166;Dels=0.00;FS=0.000;HaplotypeScore=1.4715;MLEAC=1;MLEAF=0.167;MQ=59.56;MQ0=0;MQRankSum=-1.555;QD=11.00;ReadPosRankSum=0.016;SB=-3.880e+02;VQSLOD=8.0989;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|0:51,0:51:99:0,132,1705:127"	"0|1:22,29:51:99:596,0,483:127"	"0|0:64,0:64:99:0,135,1755:127"
+17	66991216	rs61697543	T	C	738.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-4.530;DB;DP=252;Dels=0.00;FS=1.490;HaplotypeScore=1.7074;MLEAC=1;MLEAF=0.167;MQ=59.36;MQ0=0;MQRankSum=0.771;QD=10.86;ReadPosRankSum=-0.724;SB=-3.930e+02;VQSLOD=8.8864;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|0:95,0:95:99:0,268,3511:127"	"0|0:89,0:89:99:0,235,3058:127"	"0|1:33,35:68:99:773,0,965:127"
+5	29069162	rs658439	G	A	499.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=1.981;DB;DP=199;Dels=0.00;FS=11.196;HaplotypeScore=1.6038;MLEAC=1;MLEAF=0.167;MQ=52.70;MQ0=0;MQRankSum=-0.608;QD=9.42;ReadPosRankSum=-1.103;SB=-2.310e+02;VQSLOD=4.0183;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|0:86,0:86:99:0,211,2509:110"	"0|0:60,0:60:99:0,111,1240:110"	"0|1:30,23:53:99:534,0,523:110"
+6	45421630	rs1343799	C	T	5422.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=3.419;DB;DP=240;Dels=0.00;FS=10.689;HaplotypeScore=0.7979;MLEAC=4;MLEAF=0.667;MQ=59.46;MQ0=0;MQRankSum=1.089;QD=22.59;ReadPosRankSum=1.252;SB=-2.647e+03;VQSLOD=7.7035;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|1:29,43:72:99:1445,0,843:127"	"0|1:43,37:80:99:1121,0,1302:127"	"1|1:0,88:88:99:2856,220,0:127"
+21	25702950	rs2260875	C	G	3462.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.156;DB;DP=237;Dels=0.00;FS=2.900;HaplotypeScore=1.5444;MLEAC=3;MLEAF=0.500;MQ=59.04;MQ0=0;MQRankSum=0.386;QD=14.61;ReadPosRankSum=-1.455;SB=-1.683e+03;VQSLOD=8.0501;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"0/1:37,40:77:99:1282,0,1101:127"	"0/1:43,36:79:99:1114,0,1317:127"	"0/1:45,36:81:99:1066,0,1329:127"
+X	150239197	rs6627349	T	C	4677.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=0.731;DB;DP=179;Dels=0.00;FS=0.000;HaplotypeScore=1.6094;MLEAC=5;MLEAF=0.833;MQ=59.69;MQ0=0;MQRankSum=0.676;QD=26.13;ReadPosRankSum=0.494;SB=-2.442e+03;VQSLOD=10.5525;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,66:66:99:2387,190,0:99"	"1|1:0,40:40:99:1243,99,0:99"	"1|0:36,37:73:99:1047,0,1039:99"
+11	26026566	rs7942277	T	C	5414.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=176;Dels=0.00;FS=0.000;HaplotypeScore=0.2447;MLEAC=6;MLEAF=1.00;MQ=58.89;MQ0=0;QD=30.76;SB=-2.812e+03;VQSLOD=11.0501;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|1:0,53:53:99:1707,132,0:122"	"1|1:0,53:53:99:1581,123,0:122"	"1|1:0,70:70:99:2126,163,0:122"
+3	60283791	rs10154846	T	C	669.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.270;DB;DP=204;Dels=0.00;FS=1.585;HaplotypeScore=1.6639;MLEAC=1;MLEAF=0.167;MQ=59.39;MQ0=0;MQRankSum=0.370;QD=10.14;ReadPosRankSum=1.636;SB=-2.690e+02;VQSLOD=8.9468;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|0:63,0:63:99:0,190,2440:127"	"0|1:34,32:66:99:704,0,1020:127"	"0|0:74,0:75:99:0,190,2372:127"
+2	54408283	rs55993481	T	G	2128.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.961;DB;DP=222;Dels=0.00;FS=1.744;HaplotypeScore=3.9553;MLEAC=2;MLEAF=0.333;MQ=59.69;MQ0=0;MQRankSum=0.670;QD=14.28;ReadPosRankSum=1.313;SB=-1.076e+03;VQSLOD=6.5064;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|0:35,46:81:99:1392,0,921:127"	"1|0:35,33:68:99:775,0,878:127"	"0|0:73,0:73:99:0,175,2164:127"
+14	56951735	rs1189276	G	A	6939.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=3.878;DB;DP=235;Dels=0.00;FS=9.373;HaplotypeScore=0.9063;MLEAC=5;MLEAF=0.833;MQ=59.52;MQ0=0;MQRankSum=-0.550;QD=29.53;ReadPosRankSum=1.104;SB=-3.438e+03;VQSLOD=8.7592;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:1,92:93:99:3558,274,0:127"	"1|1:0,60:60:99:2120,165,0:127"	"1|0:40,42:82:99:1261,0,1194:127"
+15	53677501	.	T	G	770.26	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=-8.969;DP=210;Dels=0.00;FS=347.467;HaplotypeScore=2.0911;MLEAC=3;MLEAF=0.500;MQ=58.31;MQ0=0;MQRankSum=0.438;QD=3.67;ReadPosRankSum=-6.409;SB=-5.499e-03;VQSLOD=-307.0964;culprit=FS	GT:AD:DP:GQ:PL:TP	"0/1:59,20:79:94:94,0,1389:94"	"0/1:41,31:72:99:438,0,721:94"	"0/1:37,21:59:99:277,0,521:94"
+19	37226152	rs3108217	G	C	2076.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=0.215;DB;DP=145;Dels=0.00;FS=2.159;HaplotypeScore=0.5869;MLEAC=4;MLEAF=0.667;MQ=58.59;MQ0=0;MQRankSum=1.160;QD=14.32;ReadPosRankSum=-0.725;SB=-1.027e+03;VQSLOD=7.4915;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|0:25,30:55:99:789,0,709:63"	"1|1:0,29:29:63:772,63,0:63"	"0|1:35,25:61:99:557,0,789:63"
+11	65339346	rs1194104	C	T	1804.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-2.465;DB;DP=189;Dels=0.00;FS=8.432;HaplotypeScore=2.2718;MLEAC=2;MLEAF=0.333;MQ=59.31;MQ0=0;MQRankSum=-0.120;QD=13.67;ReadPosRankSum=-0.306;SB=-1.061e+03;VQSLOD=7.9509;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|0:57,0:57:99:0,157,2050:127"	"0|1:30,35:65:99:781,0,822:127"	"0|1:23,44:67:99:1062,0,690:127"
+1	59635894	rs331648	T	A	839.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-4.038;DB;DP=211;Dels=0.00;FS=1.427;HaplotypeScore=1.5485;MLEAC=1;MLEAF=0.167;MQ=58.68;MQ0=0;MQRankSum=-0.422;QD=11.82;ReadPosRankSum=-0.180;SB=-5.520e+02;VQSLOD=7.9477;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|0:78,0:78:99:0,199,2578:127"	"0|0:62,0:62:99:0,169,2205:127"	"0|1:33,38:71:99:874,0,897:127"
+6	162459664	rs2849564	C	T	1819.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=8.399;DB;DP=201;Dels=0.00;FS=3.295;HaplotypeScore=2.5591;MLEAC=2;MLEAF=0.333;MQ=59.38;MQ0=0;MQRankSum=1.792;QD=12.90;ReadPosRankSum=-1.045;SB=-1.068e+03;VQSLOD=8.1160;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|0:28,40:68:99:1007,0,793:120"	"1|0:38,35:73:99:851,0,831:120"	"0|0:60,0:60:99:0,120,1421:120"
+1	17032814	rs2773183	T	C	2828.26	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.879;DB;DP=322;Dels=0.00;FS=2.430;HaplotypeScore=15.4499;MLEAC=3;MLEAF=0.500;MQ=56.86;MQ0=0;MQRankSum=2.916;QD=8.78;ReadPosRankSum=-1.245;SB=-1.943e+03;VQSLOD=-1.4207;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0/1:63,59:122:99:1434,0,1831:127"	"0/1:53,56:109:99:910,0,871:127"	"0/1:61,30:91:99:523,0,1257:127"
+2	237156689	rs13390270	G	A	852.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.150;DB;DP=205;Dels=0.00;FS=0.710;HaplotypeScore=1.7295;MLEAC=1;MLEAF=0.167;MQ=59.06;MQ0=0;MQRankSum=-0.193;QD=11.67;ReadPosRankSum=1.262;SB=-4.790e+02;VQSLOD=8.4962;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|0:73,0:73:99:0,202,2606:108"	"0|1:39,34:73:99:887,0,1027:108"	"0|0:59,0:59:99:0,108,1384:108"
+6	55412503	rs12201934	T	C	882.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.280;DB;DP=182;Dels=0.00;FS=0.744;HaplotypeScore=0.3332;MLEAC=1;MLEAF=0.167;MQ=59.64;MQ0=0;MQRankSum=-0.765;QD=13.57;ReadPosRankSum=0.147;SB=-4.590e+02;VQSLOD=9.3766;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|0:61,0:61:99:0,181,2371:127"	"0|1:35,30:65:99:917,0,1046:127"	"0|0:56,0:56:99:0,150,1969:127"
+4	39062189	rs2566127	T	C	2641.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-2.019;DB;DP=201;Dels=0.00;FS=1.101;HaplotypeScore=2.8834;MLEAC=3;MLEAF=0.500;MQ=58.96;MQ0=0;MQRankSum=0.932;QD=13.14;ReadPosRankSum=-0.596;SB=-1.401e+03;VQSLOD=7.9734;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0/1:35,29:64:99:880,0,1168:127"	"0/1:37,32:70:99:796,0,1021:127"	"0/1:31,36:67:99:1004,0,877:127"
+13	28463938	rs954750	C	T	2740.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=3.206;DB;DP=242;Dels=0.00;FS=0.000;HaplotypeScore=4.0078;MLEAC=2;MLEAF=0.333;MQ=59.46;MQ0=0;MQRankSum=0.880;QD=16.61;ReadPosRankSum=-0.617;SB=-1.312e+03;VQSLOD=6.7692;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|0:40,43:83:99:1362,0,1242:127"	"1|0:35,47:82:99:1417,0,1010:127"	"0|0:76,0:77:99:0,205,2635:127"
+7	38984187	rs118081099	A	C	569.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-0.110;DB;DP=182;Dels=0.00;FS=6.196;HaplotypeScore=0.5533;MLEAC=1;MLEAF=0.167;MQ=54.22;MQ0=0;MQRankSum=1.675;QD=9.33;ReadPosRankSum=1.162;SB=-1.260e+02;VQSLOD=4.8877;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|0:72,0:72:99:0,196,2446:127"	"0|1:38,23:61:99:604,0,1196:127"	"0|0:48,1:49:99:0,138,1711:127"
+4	30898977	rs4386561	G	A	2449.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=3.817;DB;DP=231;Dels=0.00;FS=0.000;HaplotypeScore=0.9382;MLEAC=2;MLEAF=0.333;MQ=58.94;MQ0=0;MQRankSum=0.173;QD=15.70;ReadPosRankSum=1.051;SB=-1.131e+03;VQSLOD=8.3611;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|1:33,46:79:99:1380,0,944:127"	"0|0:75,0:75:99:0,202,2608:127"	"1|0:43,34:77:99:1108,0,1335:127"
+20	3199373	rs2422861	G	A	896.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.452;DB;DP=135;Dels=0.00;FS=0.664;HaplotypeScore=2.8371;MLEAC=3;MLEAF=0.500;MQ=58.47;MQ0=0;MQRankSum=-0.217;QD=6.64;ReadPosRankSum=0.111;SB=-6.080e+02;VQSLOD=7.7118;culprit=QD	GT:AD:DP:GQ:PL:TP	"0/1:32,24:56:99:472,0,640:127"	"0/1:25,15:40:99:229,0,603:127"	"0/1:20,19:39:99:234,0,379:127"
+4	64522064	rs4860541	A	G	5942.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=188;Dels=0.00;FS=0.000;HaplotypeScore=0.2889;MLEAC=6;MLEAF=1.00;MQ=56.20;MQ0=0;QD=31.61;SB=-3.348e+03;VQSLOD=8.5367;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,68:68:99:2119,169,0:127"	"1|1:0,52:53:99:1661,132,0:127"	"1|1:0,67:67:99:2162,172,0:127"
+12	90856710	rs825945	T	C	1096.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-6.342;DB;DP=193;Dels=0.00;FS=2.164;HaplotypeScore=0.0000;MLEAC=2;MLEAF=0.333;MQ=59.64;MQ0=0;MQRankSum=2.071;QD=9.70;ReadPosRankSum=-1.697;SB=-5.710e+02;VQSLOD=7.3118;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|0:80,0:80:99:0,232,3042:127"	"0|1:30,21:51:99:511,0,921:127"	"0|1:36,26:62:99:624,0,1085:127"
+5	20435939	rs12697584	A	C	2286.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-5.396;DB;DP=246;Dels=0.00;FS=4.681;HaplotypeScore=0.8744;MLEAC=2;MLEAF=0.333;MQ=59.74;MQ0=0;MQRankSum=-0.850;QD=14.20;ReadPosRankSum=0.391;SB=-1.305e+03;VQSLOD=8.1327;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0|0:85,0:85:99:0,241,3183:127"	"0|1:41,37:78:99:1062,0,1304:127"	"0|1:39,44:83:99:1263,0,1222:127"
+1	146610795	rs58742099	C	T	2831.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.298;DB;DP=261;Dels=0.00;FS=7.033;HaplotypeScore=13.9060;MLEAC=2;MLEAF=0.333;MQ=59.62;MQ0=0;MQRankSum=0.753;QD=16.27;ReadPosRankSum=-1.405;SB=-1.481e+03;VQSLOD=3.4221;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|0:39,43:82:99:1329,0,1080:127"	"1|0:40,52:92:99:1541,0,1241:127"	"0|0:87,0:87:99:0,238,3098:127"
+18	67950442	rs62091919	T	G	1779.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-2.517;DB;DP=195;Dels=0.00;FS=0.562;HaplotypeScore=1.5454;MLEAC=2;MLEAF=0.333;MQ=59.26;MQ0=0;MQRankSum=0.006;QD=12.89;ReadPosRankSum=-0.268;SB=-9.170e+02;VQSLOD=9.6268;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"0|1:40,32:72:99:967,0,1318:127"	"0|0:55,2:57:99:0,141,1865:127"	"1|0:36,30:66:99:851,0,1042:127"
+1	175207612	rs11484568	C	T	1920.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=5.643;DB;DP=216;Dels=0.00;FS=0.537;HaplotypeScore=2.2467;MLEAC=2;MLEAF=0.333;MQ=58.99;MQ0=0;MQRankSum=0.383;QD=14.12;ReadPosRankSum=0.169;SB=-1.064e+03;VQSLOD=8.5912;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|1:34,40:74:99:1152,0,995:127"	"0|0:80,0:80:99:0,208,2602:127"	"1|0:34,28:62:99:807,0,998:127"
+13	56456878	rs2997102	C	A	9454.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=257;Dels=0.00;FS=0.000;HaplotypeScore=0.9537;MLEAC=6;MLEAF=1.00;MQ=59.57;MQ0=0;QD=36.79;SB=-4.826e+03;VQSLOD=11.5149;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,99:99:99:3692,280,0:127"	"1|1:0,88:88:99:3239,253,0:127"	"1|1:0,70:70:99:2523,193,0:127"
+13	65275154	rs359338	G	A	1963.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.733;DB;DP=173;Dels=0.00;FS=3.628;HaplotypeScore=0.9480;MLEAC=2;MLEAF=0.333;MQ=59.49;MQ0=0;MQRankSum=-0.676;QD=14.54;ReadPosRankSum=0.399;SB=-1.054e+03;VQSLOD=8.4489;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|0:31,28:59:99:883,0,990:108"	"1|0:39,37:76:99:1119,0,1112:108"	"0|0:38,0:38:99:0,108,1390:108"
+9	98491693	rs12337935	C	A	1474.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=2.098;DB;DP=97;Dels=0.00;FS=14.282;HaplotypeScore=1.7726;MLEAC=4;MLEAF=0.667;MQ=58.64;MQ0=0;MQRankSum=-0.224;QD=15.20;ReadPosRankSum=1.166;SB=-6.430e+02;VQSLOD=5.7986;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|0:14,12:26:99:348,0,352:63"	"1|1:0,28:29:63:781,63,0:63"	"0|1:17,25:42:99:387,0,364:63"
+12	58867437	rs140632614	G	T	829.25	VQSRTrancheSNP99.00to99.90	AC=4;AF=0.667;AN=6;BaseQRankSum=1.409;DB;DP=144;Dels=0.00;FS=68.612;HaplotypeScore=0.8667;MLEAC=4;MLEAF=0.667;MQ=35.15;MQ0=16;MQRankSum=-7.440;QD=5.76;ReadPosRankSum=-0.245;SB=-1.011e+00;VQSLOD=-16.4891;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|1:34,24:58:99:291,0,1100:44"	"0|1:42,8:50:61:61,0,1319:44"	"1|1:1,35:36:45:519,45,0:44"
+4	12652343	rs13114660	G	T	610.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.176;DB;DP=127;Dels=0.00;FS=0.000;HaplotypeScore=1.5681;MLEAC=1;MLEAF=0.167;MQ=58.86;MQ0=0;MQRankSum=-0.468;QD=16.06;ReadPosRankSum=1.246;SB=-3.060e+02;VQSLOD=7.8400;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|0:43,0:43:99:0,120,1561:102"	"0|1:15,23:38:99:645,0,407:102"	"0|0:44,1:46:99:0,103,1539:102"
+GL000215.1	142616	.	T	C	976.25	VQSRTrancheSNP99.00to99.90	AC=6;AF=1.00;AN=6;DP=80;Dels=0.00;FS=0.000;HaplotypeScore=0.0000;MLEAC=6;MLEAF=1.00;MQ=21.04;MQ0=42;QD=12.20;SB=-8.001e+01;VQSLOD=-0.4104;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|1:0,33:33:42:516,42,0:19"	"1|1:0,21:21:24:272,24,0:19"	"1|1:0,26:26:21:226,21,0:19"
+6	18687376	rs9383429	A	T	1162.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.746;DB;DP=232;Dels=0.00;FS=0.638;HaplotypeScore=0.2774;MLEAC=1;MLEAF=0.167;MQ=59.42;MQ0=0;MQRankSum=-0.733;QD=15.71;ReadPosRankSum=-0.146;SB=-6.490e+02;VQSLOD=9.4317;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|0:82,0:82:99:0,241,3181:127"	"0|0:76,0:76:99:0,217,2832:127"	"0|1:33,41:74:99:1197,0,1008:127"
+10	95435201	rs2422323	C	T	4017.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=6.438;DB;DP=203;Dels=0.00;FS=13.125;HaplotypeScore=3.2358;MLEAC=4;MLEAF=0.667;MQ=55.24;MQ0=0;MQRankSum=1.174;QD=19.79;ReadPosRankSum=-0.655;SB=-2.177e+03;VQSLOD=4.5957;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|0:38,45:83:99:1327,0,931:127"	"1|1:1,63:64:99:1966,156,0:127"	"0|1:30,25:56:99:724,0,807:127"
+6	89947117	rs9942462	A	G	5019.01	PASS	AC=6;AF=1.00;AN=6;BaseQRankSum=1.654;DB;DP=181;Dels=0.00;FS=0.000;HaplotypeScore=3.3205;MLEAC=6;MLEAF=1.00;MQ=53.30;MQ0=0;MQRankSum=0.428;QD=27.73;ReadPosRankSum=1.090;SB=-3.151e+03;VQSLOD=5.6763;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|1:0,59:60:99:1715,138,0:92"	"1|1:1,55:56:93:1401,93,0:92"	"1|1:0,65:65:99:1903,153,0:92"
+5	174249229	rs11739079	C	G	1613.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-4.540;DB;DP=190;Dels=0.00;FS=6.482;HaplotypeScore=2.0416;MLEAC=2;MLEAF=0.333;MQ=59.51;MQ0=0;MQRankSum=-0.898;QD=11.86;ReadPosRankSum=0.601;SB=-8.320e+02;VQSLOD=7.7782;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|1:32,43:75:99:1069,0,928:123"	"0|0:54,0:54:99:0,123,1554:123"	"1|0:33,27:61:99:583,0,883:123"
+9	16302655	rs9298755	T	G	1394.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=3.356;DB;DP=200;Dels=0.00;FS=0.000;HaplotypeScore=3.1863;MLEAC=2;MLEAF=0.333;MQ=59.33;MQ0=0;MQRankSum=0.586;QD=10.03;ReadPosRankSum=-0.771;SB=-8.720e+02;VQSLOD=7.7724;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|0:60,1:61:99:0,165,2004:127"	"0|1:29,28:57:99:494,0,759:127"	"0|1:41,40:82:99:939,0,1069:127"
+3	137840974	rs2622698	C	A	6792.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=232;Dels=0.00;FS=0.000;HaplotypeScore=2.6477;MLEAC=6;MLEAF=1.00;MQ=59.04;MQ0=0;QD=29.28;SB=-3.999e+03;VQSLOD=9.7681;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,79:79:99:2640,205,0:127"	"1|1:0,78:78:99:2229,178,0:127"	"1|1:0,75:75:99:1923,153,0:127"
+8	78181000	rs1563030	A	G	5178.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-0.030;DB;DP=192;Dels=0.00;FS=4.675;HaplotypeScore=2.9473;MLEAC=5;MLEAF=0.833;MQ=59.62;MQ0=0;MQRankSum=-0.467;QD=26.97;ReadPosRankSum=-0.855;SB=-2.617e+03;VQSLOD=7.3445;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|1:0,59:59:99:1954,150,0:127"	"1|0:32,37:70:99:1198,0,888:127"	"1|1:0,63:63:99:2026,156,0:127"
+19	54644879	rs36636	G	A	1790.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=2.505;DB;DP=187;Dels=0.00;FS=4.408;HaplotypeScore=1.5043;MLEAC=2;MLEAF=0.333;MQ=59.51;MQ0=0;MQRankSum=-1.266;QD=13.88;ReadPosRankSum=-1.226;SB=-1.081e+03;VQSLOD=7.8045;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|0:30,27:57:99:811,0,726:127"	"1|0:31,41:72:99:1018,0,730:127"	"0|0:58,0:58:99:0,144,1815:127"
+7	79508376	rs2525826	G	T	716.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=2.152;DB;DP=196;Dels=0.00;FS=0.000;HaplotypeScore=0.8658;MLEAC=1;MLEAF=0.167;MQ=59.48;MQ0=0;MQRankSum=1.420;QD=13.51;ReadPosRankSum=0.263;SB=-4.080e+02;VQSLOD=9.5728;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|0:65,0:65:99:0,181,2312:127"	"0|0:78,0:78:99:0,226,2916:127"	"0|1:27,26:53:99:751,0,845:127"
+1	90146546	rs7512447	C	T	8721.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=241;Dels=0.00;FS=0.000;HaplotypeScore=0.0000;MLEAC=6;MLEAF=1.00;MQ=59.40;MQ0=0;QD=36.19;SB=-4.084e+03;VQSLOD=11.3217;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|1:0,71:71:99:2599,196,0:127"	"1|1:0,86:86:99:3042,235,0:127"	"1|1:0,84:84:99:3080,238,0:127"
+15	92857342	rs12101550	A	G	2734.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-7.995;DB;DP=226;Dels=0.00;FS=3.761;HaplotypeScore=1.5682;MLEAC=3;MLEAF=0.500;MQ=59.41;MQ0=0;MQRankSum=0.761;QD=12.10;ReadPosRankSum=-0.587;SB=-1.469e+03;VQSLOD=9.1510;culprit=FS	GT:AD:DP:GQ:PL:TP	"0/1:45,37:82:99:853,0,1356:127"	"0/1:29,40:69:99:966,0,852:127"	"0/1:38,37:75:99:954,0,1085:127"
+5	93119893	rs6879620	G	A	4262.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=4.930;DB;DP=239;Dels=0.00;FS=1.050;HaplotypeScore=2.1583;MLEAC=4;MLEAF=0.667;MQ=59.81;MQ0=0;MQRankSum=0.891;QD=17.83;ReadPosRankSum=-2.670;SB=-2.596e+03;VQSLOD=7.0681;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"0|1:49,42:91:99:1098,0,1410:127"	"0|1:36,38:74:99:890,0,1008:127"	"1|1:0,74:74:99:2274,178,0:127"
+7	89752110	rs39232	T	G	3944.01	VQSRTrancheSNP99.00to99.90	AC=6;AF=1.00;AN=6;DB;DP=216;Dels=0.00;FS=0.000;HaplotypeScore=1.4477;MLEAC=6;MLEAF=1.00;MQ=38.19;MQ0=21;QD=18.26;SB=-2.716e+03;VQSLOD=2.6638;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|1:0,70:70:99:1564,132,0:101"	"1|1:0,79:79:99:1258,108,0:101"	"1|1:0,66:66:99:1122,102,0:101"
+1	100763317	rs6681810	G	C	5583.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=196;Dels=0.00;FS=0.000;HaplotypeScore=3.7201;MLEAC=6;MLEAF=1.00;MQ=58.52;MQ0=0;QD=28.48;SB=-2.737e+03;VQSLOD=7.9151;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|1:1,76:77:99:2211,192,0:127"	"1|1:0,56:56:99:1593,141,0:127"	"1|1:0,62:62:99:1779,156,0:127"
+16	5754758	rs11644707	C	T	1012.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.777;DB;DP=161;Dels=0.00;FS=0.000;HaplotypeScore=2.4572;MLEAC=2;MLEAF=0.333;MQ=59.71;MQ0=0;MQRankSum=0.699;QD=9.64;ReadPosRankSum=2.624;SB=-5.580e+02;VQSLOD=7.0970;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"0|1:31,26:57:99:627,0,943:125"	"0|0:56,0:56:99:0,126,1597:125"	"1|0:32,16:48:99:424,0,785:125"
+5	154441640	rs467330	A	C	1133.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.127;DB;DP=235;Dels=0.00;FS=2.103;HaplotypeScore=1.1893;MLEAC=1;MLEAF=0.167;MQ=59.65;MQ0=0;MQRankSum=0.766;QD=12.59;ReadPosRankSum=-0.535;SB=-6.500e+02;VQSLOD=9.8335;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0|0:61,0:61:99:0,172,2172:127"	"0|1:45,45:90:99:1168,0,1368:127"	"0|0:82,1:84:99:0,226,2825:127"
+4	132671861	rs6856716	C	G	2622.26	VQSRTrancheSNP99.90to100.00	AC=2;AF=0.333;AN=6;BaseQRankSum=3.143;DB;DP=617;DS;Dels=0.00;FS=5.808;HaplotypeScore=34.4109;MLEAC=2;MLEAF=0.333;MQ=24.78;MQ0=42;MQRankSum=3.293;QD=5.89;ReadPosRankSum=-0.736;SB=-1.412e+03;VQSLOD=-77.3455;culprit=DP	GT:AD:DP:GQ:PL:TP	"0|1:125,98:223:99:1761,0,1486:127"	"0|0:171,0:172:99:0,300,2641:127"	"1|0:152,70:222:99:900,0,2086:127"
+6	35346891	.	C	T	483.26	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=-6.402;DP=205;Dels=0.02;FS=214.154;HaplotypeScore=4.5086;MLEAC=3;MLEAF=0.500;MQ=51.07;MQ0=1;MQRankSum=-2.038;QD=2.36;ReadPosRankSum=-2.250;SB=-1.065e-02;VQSLOD=-116.9542;culprit=FS	GT:AD:DP:GQ:PL:TP	"0/1:48,31:79:99:257,0,635:80"	"0/1:40,22:62:99:185,0,308:80"	"0/1:44,16:60:80:80,0,534:80"
+2	127445050	rs113647072	A	G	1773.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-3.856;DB;DP=154;Dels=0.00;FS=4.202;HaplotypeScore=2.2701;MLEAC=4;MLEAF=0.667;MQ=59.16;MQ0=0;MQRankSum=0.759;QD=11.51;ReadPosRankSum=1.290;SB=-1.402e+03;VQSLOD=7.9185;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|1:26,28:54:99:652,0,472:78"	"0|1:26,22:49:99:350,0,462:78"	"1|1:0,50:51:78:813,78,0:78"
+11	103989190	rs1545865	T	C	4915.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-4.030;DB;DP=219;Dels=0.00;FS=1.231;HaplotypeScore=1.2090;MLEAC=4;MLEAF=0.667;MQ=59.37;MQ0=0;MQRankSum=1.103;QD=22.44;ReadPosRankSum=0.773;SB=-2.213e+03;VQSLOD=8.9081;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"0|1:23,40:63:99:1203,0,669:127"	"0|1:36,52:88:99:1433,0,1136:127"	"1|1:0,68:68:99:2279,178,0:127"
+7	4683258	rs62450857	G	A	1127.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-0.991;DB;DP=191;Dels=0.00;FS=3.236;HaplotypeScore=0.2774;MLEAC=1;MLEAF=0.167;MQ=57.16;MQ0=0;MQRankSum=1.297;QD=14.09;ReadPosRankSum=0.469;SB=-4.730e+02;VQSLOD=6.6182;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|0:66,0:66:99:0,196,2495:120"	"0|1:38,42:80:99:1162,0,1016:120"	"0|0:45,0:45:99:0,120,1531:120"
+9	138617823	rs55724592	C	T	53.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-0.380;DB;DP=72;Dels=0.00;FS=8.078;HaplotypeScore=1.0225;MLEAC=1;MLEAF=0.167;MQ=58.90;MQ0=0;MQRankSum=0.851;QD=2.66;ReadPosRankSum=-0.344;SB=-9.096e+01;VQSLOD=4.2652;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|0:20,0:20:48:0,48,580:44"	"0|0:32,0:32:48:0,48,577:44"	"0|1:10,10:20:88:88,0,199:44"
+3	48757773	rs61137521	A	G	3103.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-0.794;DB;DP=172;Dels=0.00;FS=0.000;HaplotypeScore=1.8954;MLEAC=4;MLEAF=0.667;MQ=59.34;MQ0=0;MQRankSum=-0.693;QD=18.04;ReadPosRankSum=-1.667;SB=-1.874e+03;VQSLOD=7.9241;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,50:51:99:1723,141,0:127"	"1|0:31,34:65:99:745,0,814:127"	"1|0:24,32:56:99:677,0,603:127"
+11	19325064	rs793250	G	A	5752.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=5.080;DB;DP=203;Dels=0.00;FS=2.530;HaplotypeScore=0.8165;MLEAC=5;MLEAF=0.833;MQ=59.35;MQ0=0;MQRankSum=-0.061;QD=28.34;ReadPosRankSum=0.095;SB=-3.093e+03;VQSLOD=9.4617;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,71:71:99:2527,190,0:127"	"1|1:0,78:78:99:2626,205,0:127"	"1|0:32,22:54:99:599,0,768:127"
+15	42065422	rs2925337	A	C	5231.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=176;Dels=0.00;FS=0.000;HaplotypeScore=0.0000;MLEAC=6;MLEAF=1.00;MQ=59.68;MQ0=0;QD=29.72;SB=-3.112e+03;VQSLOD=11.0322;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|1:0,54:54:99:1770,138,0:127"	"1|1:0,68:68:99:1750,138,0:127"	"1|1:0,54:54:99:1711,132,0:127"
+3	189981901	.	A	G	179.25	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=2.258;DP=274;Dels=0.00;FS=73.736;HaplotypeScore=1.8333;MLEAC=1;MLEAF=0.167;MQ=54.08;MQ0=6;MQRankSum=-2.651;QD=1.97;ReadPosRankSum=-6.101;SB=-6.400e+01;VQSLOD=-18.1951;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"1|0:64,27:91:99:214,0,679:51"	"1|0:78,10:88:0:0,21,1685:51"	"0|0:86,9:95:74:0,74,1891:51"
+6	1620147	rs2569882	T	C	252.3	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-0.862;DB;DP=38;Dels=0.00;FS=8.023;HaplotypeScore=0.2217;MLEAC=5;MLEAF=0.833;MQ=57.65;MQ0=0;MQRankSum=-0.918;QD=9.34;ReadPosRankSum=0.584;SB=-4.005e+01;VQSLOD=4.3258;culprit=DP	GT:AD:DP:GQ:PL:TP	"1|1:0,17:17:21:254,21,0:4"	"1|0:3,8:11:2:0,3,40:4"	"1|1:0,10:10:3:39,3,0:4"
+4	169085855	rs2251558	A	G	1161.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=0.721;DB;DP=244;Dels=0.00;FS=5.247;HaplotypeScore=0.4893;MLEAC=1;MLEAF=0.167;MQ=59.91;MQ0=0;MQRankSum=1.574;QD=13.99;ReadPosRankSum=0.454;SB=-5.590e+02;VQSLOD=7.4222;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0|0:77,0:77:99:0,226,2915:127"	"0|1:43,40:83:99:1196,0,1294:127"	"0|0:84,0:84:99:0,232,2950:127"
+15	62088952	rs35033959	A	T	3546.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.220;DB;DP=241;Dels=0.00;FS=14.286;HaplotypeScore=0.2774;MLEAC=3;MLEAF=0.500;MQ=59.77;MQ0=0;MQRankSum=-1.969;QD=14.71;ReadPosRankSum=0.341;SB=-1.970e+03;VQSLOD=6.3785;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0/1:45,44:89:99:1265,0,1533:127"	"0/1:34,38:72:99:1133,0,1137:127"	"0/1:41,39:80:99:1148,0,1303:127"
+10	29082980	.	G	C	42.53	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=-1.216;DP=107;Dels=0.00;FS=60.979;HaplotypeScore=1.0911;MLEAC=3;MLEAF=0.500;MQ=55.72;MQ0=0;MQRankSum=-0.633;QD=0.40;ReadPosRankSum=-4.307;SB=-2.798e-01;VQSLOD=-11.1718;culprit=FS	GT:AD:DP:GQ:PL:TP	"0/1:30,12:43:12:12,0,757:12"	"0/1:19,11:30:35:35,0,429:12"	"0/1:25,9:34:34:34,0,388:12"
+4	190538070	rs62323772	G	A	106.69	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=0.099;DB;DP=19;Dels=0.00;FS=0.000;HaplotypeScore=4.3562;MLEAC=3;MLEAF=0.500;MQ=33.71;MQ0=0;MQRankSum=0.591;QD=5.93;ReadPosRankSum=-0.394;SB=-7.601e+01;VQSLOD=-1.3921;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|1:4,9:13:69:69,0,92:3"	"0|0:1,0:1:3:0,3,33:3"	"1|1:0,4:5:6:77,6,0:3"
+2	209758643	rs12992166	C	T	1534.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=6.178;DB;DP=163;Dels=0.00;FS=8.813;HaplotypeScore=2.3636;MLEAC=2;MLEAF=0.333;MQ=58.93;MQ0=0;MQRankSum=1.988;QD=12.08;ReadPosRankSum=1.075;SB=-4.720e+02;VQSLOD=6.8226;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|0:35,22:59:99:610,0,886:93"	"1|0:32,36:68:99:963,0,797:93"	"0|0:36,0:36:93:0,93,1058:93"
+13	46407442	rs11147990	G	A	2668.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=1.227;DB;DP=199;Dels=0.00;FS=0.530;HaplotypeScore=1.8025;MLEAC=3;MLEAF=0.500;MQ=58.99;MQ0=0;MQRankSum=0.023;QD=20.21;ReadPosRankSum=-0.452;SB=-1.651e+03;VQSLOD=9.2006;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"0|1:36,33:69:99:994,0,1056:127"	"0|0:67,0:67:99:0,141,1821:127"	"1|1:0,63:63:99:1719,135,0:127"
+Y	13265732	.	C	T	356.72	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=2.823;DP=142;Dels=0.00;FS=7.941;HaplotypeScore=19.8229;MLEAC=2;MLEAF=0.333;MQ=38.22;MQ0=11;MQRankSum=-2.145;QD=5.10;ReadPosRankSum=1.491;SB=-1.466e+00;VQSLOD=-14.4273;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0|1:35,15:50:99:327,0,624:5"	"0|0:65,7:72:4:0,4,1831:5"	"1|0:15,5:20:67:67,0,227:5"
+6	71018445	rs1321063	C	A	518.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=2.668;DB;DP=185;Dels=0.00;FS=1.618;HaplotypeScore=0.6919;MLEAC=1;MLEAF=0.167;MQ=58.93;MQ0=0;MQRankSum=0.355;QD=8.78;ReadPosRankSum=1.306;SB=-4.020e+02;VQSLOD=7.7510;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|0:67,0:67:99:0,184,2404:127"	"0|0:59,0:59:99:0,160,2065:127"	"0|1:29,30:59:99:553,0,809:127"
+18	75204349	rs9948476	C	T	646.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=1.965;DB;DP=185;Dels=0.00;FS=0.817;HaplotypeScore=1.3995;MLEAC=1;MLEAF=0.167;MQ=59.35;MQ0=0;MQRankSum=0.276;QD=10.95;ReadPosRankSum=-0.158;SB=-3.210e+02;VQSLOD=9.3748;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|0:65,0:66:99:0,168,2026:127"	"0|0:60,0:60:99:0,147,1768:127"	"0|1:34,25:59:99:681,0,893:127"
+9	2072356	rs4741641	T	G	2054.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-7.235;DB;DP=243;Dels=0.00;FS=0.000;HaplotypeScore=2.2089;MLEAC=2;MLEAF=0.333;MQ=59.64;MQ0=0;MQRankSum=1.166;QD=13.00;ReadPosRankSum=-0.475;SB=-1.004e+03;VQSLOD=9.0206;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|1:49,45:94:99:1245,0,1615:127"	"0|0:85,0:85:99:0,217,2818:127"	"1|0:32,32:64:99:848,0,936:127"
+13	21520045	rs9509464	A	C	5103.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=195;Dels=0.00;FS=0.000;HaplotypeScore=1.6144;MLEAC=6;MLEAF=1.00;MQ=47.37;MQ0=0;QD=26.17;SB=-2.582e+03;VQSLOD=5.1918;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|1:0,71:71:99:2106,186,0:98"	"1|1:0,78:78:99:1856,162,0:98"	"1|1:0,46:46:99:1141,99,0:98"
+2	64848970	rs35473866	T	C	655.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=0.263;DB;DP=218;Dels=0.00;FS=8.014;HaplotypeScore=2.5836;MLEAC=1;MLEAF=0.167;MQ=58.36;MQ0=0;MQRankSum=-0.168;QD=8.29;ReadPosRankSum=-0.307;SB=-3.420e+02;VQSLOD=5.9179;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|0:78,0:78:99:0,208,2627:127"	"0|0:61,0:61:99:0,135,1725:127"	"0|1:35,42:79:99:690,0,1042:127"
+7	29544610	rs6462145	A	T	4020.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=0.326;DB;DP=189;Dels=0.00;FS=5.388;HaplotypeScore=1.2974;MLEAC=4;MLEAF=0.667;MQ=58.54;MQ0=0;MQRankSum=1.295;QD=21.27;ReadPosRankSum=-1.212;SB=-1.878e+03;VQSLOD=7.3155;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|0:27,49:77:99:1466,0,733:127"	"1|1:0,64:64:99:1888,147,0:127"	"0|1:18,27:48:99:666,0,410:127"
+5	121302662	.	G	T	143.72	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=1.413;DP=150;Dels=0.02;FS=161.482;HaplotypeScore=2.8631;MLEAC=3;MLEAF=0.500;MQ=35.76;MQ0=1;MQRankSum=0.422;QD=0.96;ReadPosRankSum=-5.675;SB=-1.466e+00;VQSLOD=-77.2440;culprit=FS	GT:AD:DP:GQ:PL:TP	"0/1:32,21:53:99:120,0,251:5"	"0/1:35,12:47:57:57,0,271:5"	"0/1:35,12:47:4:4,0,259:5"
+2	28790711	rs34787802	T	G	731.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-4.421;DB;DP=232;Dels=0.00;FS=2.403;HaplotypeScore=1.5189;MLEAC=1;MLEAF=0.167;MQ=57.98;MQ0=0;MQRankSum=0.447;QD=10.30;ReadPosRankSum=-1.833;SB=-4.550e+02;VQSLOD=6.8853;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|0:81,0:81:99:0,223,2877:127"	"0|1:36,35:71:99:766,0,947:127"	"0|0:79,0:80:99:0,205,2640:127"
+20	59978756	rs1892320	T	C	3967.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-2.562;DB;DP=206;Dels=0.00;FS=14.249;HaplotypeScore=1.3838;MLEAC=4;MLEAF=0.667;MQ=59.89;MQ0=0;MQRankSum=-0.289;QD=19.26;ReadPosRankSum=0.221;SB=-2.292e+03;VQSLOD=7.6238;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|1:0,72:72:99:2337,181,0:127"	"1|0:38,29:67:99:743,0,1180:127"	"1|0:31,36:67:99:887,0,873:127"
+22	17351507	rs5748687	G	A	4244.01	VQSRTrancheSNP99.00to99.90	AC=5;AF=0.833;AN=6;BaseQRankSum=-0.224;DB;DP=261;Dels=0.00;FS=0.710;HaplotypeScore=1.7170;MLEAC=5;MLEAF=0.833;MQ=28.84;MQ0=57;MQRankSum=-7.852;QD=16.26;ReadPosRankSum=-1.243;SB=-2.174e+03;VQSLOD=-1.7101;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|1:0,92:92:99:1529,141,0:127"	"1|0:34,49:83:99:727,0,1065:127"	"1|1:0,86:86:99:1988,180,0:127"
+X	95868251	.	G	A	108.36	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=1.436;DP=90;Dels=0.00;FS=4.210;HaplotypeScore=4.9383;MLEAC=2;MLEAF=0.333;MQ=44.60;MQ0=8;MQRankSum=-2.939;QD=1.55;ReadPosRankSum=2.865;SB=-7.411e+01;VQSLOD=-3.2422;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|1:29,9:38:99:126,0,251:23"	"0|0:20,0:20:24:0,24,266:23"	"1|0:27,5:32:21:21,0,97:23"
+14	106085773	rs2955055	C	T	2115.26	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=-0.746;DB;DP=172;Dels=0.00;FS=18.420;HaplotypeScore=2.9489;MLEAC=3;MLEAF=0.500;MQ=35.68;MQ0=18;MQRankSum=3.251;QD=12.30;ReadPosRankSum=0.100;SB=-5.530e+02;VQSLOD=1.2866;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0/1:32,33:65:99:600,0,554:80"	"0/1:30,42:72:99:1001,0,400:80"	"0/1:12,23:35:80:553,0,80:80"
+7	69334430	rs917719	C	T	1223.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=5.841;DB;DP=193;Dels=0.00;FS=6.656;HaplotypeScore=0.8147;MLEAC=2;MLEAF=0.333;MQ=59.81;MQ0=0;MQRankSum=1.631;QD=9.63;ReadPosRankSum=1.458;SB=-7.370e+02;VQSLOD=7.0004;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|0:38,39:77:99:770,0,1258:127"	"1|0:26,24:50:99:492,0,840:127"	"0|0:66,0:66:99:0,172,2210:127"
+9	44998848	.	C	G	254.43	VQSRTrancheSNP99.00to99.90	AC=5;AF=0.833;AN=6;BaseQRankSum=2.203;DP=193;Dels=0.00;FS=10.822;HaplotypeScore=0.2447;MLEAC=5;MLEAF=0.833;MQ=6.48;MQ0=163;MQRankSum=-1.206;QD=1.32;ReadPosRankSum=0.790;SB=-1.372e+02;VQSLOD=-6.6319;culprit=QD	GT:AD:DP:GQ:PL:TP	"1|0:39,27:66:23:132,0,23:8"	"1|1:36,16:52:15:118,15,0:8"	"0|1:53,22:75:1:45,6,0:8"
+1	195392852	rs2119441	T	G	5369.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-2.284;DB;DP=241;Dels=0.00;FS=3.312;HaplotypeScore=1.8710;MLEAC=4;MLEAF=0.667;MQ=58.35;MQ0=0;MQRankSum=-0.643;QD=22.28;ReadPosRankSum=0.178;SB=-2.332e+03;VQSLOD=7.8524;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|0:37,42:79:99:1233,0,1145:127"	"1|1:0,84:84:99:2741,211,0:127"	"0|1:31,47:78:99:1395,0,804:127"
+3	148344553	rs62274102	C	A	3191.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-1.860;DB;DP=232;Dels=0.00;FS=12.061;HaplotypeScore=2.3659;MLEAC=3;MLEAF=0.500;MQ=59.32;MQ0=0;MQRankSum=-0.551;QD=19.58;ReadPosRankSum=2.411;SB=-1.757e+03;VQSLOD=6.2908;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"1|0:46,39:85:99:985,0,1339:127"	"1|1:0,78:78:99:2251,175,0:127"	"0|0:69,0:69:99:0,153,2018:127"
+6	143691852	rs17792267	C	T	3641.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-1.465;DB;DP=203;Dels=0.00;FS=2.413;HaplotypeScore=0.3222;MLEAC=3;MLEAF=0.500;MQ=59.54;MQ0=0;MQRankSum=1.198;QD=27.17;ReadPosRankSum=-1.140;SB=-1.772e+03;VQSLOD=8.8712;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|0:29,33:62:99:1131,0,803:127"	"1|1:0,72:72:99:2510,196,0:127"	"0|0:69,0:69:99:0,190,2480:127"
+18	20025030	rs4800406	A	G	1113.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.700;DB;DP=230;Dels=0.00;FS=0.000;HaplotypeScore=1.6804;MLEAC=1;MLEAF=0.167;MQ=59.56;MQ0=0;MQRankSum=1.643;QD=12.65;ReadPosRankSum=-1.166;SB=-6.160e+02;VQSLOD=8.6574;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|0:78,0:78:99:0,223,2978:127"	"0|1:46,42:88:99:1148,0,1460:127"	"0|0:64,0:64:99:0,175,2303:127"
+3	179020937	rs13082816	C	T	1116.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=5.603;DB;DP=82;Dels=0.00;FS=0.000;HaplotypeScore=0.6358;MLEAC=4;MLEAF=0.667;MQ=54.57;MQ0=1;MQRankSum=0.374;QD=13.61;ReadPosRankSum=-0.037;SB=-2.010e+02;VQSLOD=6.0907;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|0:13,13:26:99:388,0,178:36"	"1|1:0,24:24:36:442,36,0:36"	"0|1:13,19:32:99:328,0,179:36"
+4	21819269	rs4285068	C	G	7252.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=216;Dels=0.00;FS=0.000;HaplotypeScore=0.6511;MLEAC=6;MLEAF=1.00;MQ=55.91;MQ0=0;QD=33.57;SB=-3.284e+03;VQSLOD=8.5427;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,83:83:99:2859,226,0:127"	"1|1:0,73:73:99:2413,193,0:127"	"1|1:0,59:59:99:1980,156,0:127"
+4	71449060	rs60358213	G	A	2269.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=5.704;DB;DP=227;Dels=0.00;FS=13.048;HaplotypeScore=20.1360;MLEAC=2;MLEAF=0.333;MQ=55.35;MQ0=0;MQRankSum=0.477;QD=13.19;ReadPosRankSum=2.295;SB=-8.910e+02;VQSLOD=1.8937;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|0:60,40:100:99:1221,0,1476:127"	"1|0:37,35:72:99:1087,0,987:127"	"0|0:53,1:54:99:0,157,2026:127"
+16	88914235	rs12932521	C	T	329.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=1.978;DB;DP=114;Dels=0.00;FS=1.931;HaplotypeScore=0.9402;MLEAC=1;MLEAF=0.167;MQ=58.60;MQ0=0;MQRankSum=0.854;QD=7.84;ReadPosRankSum=-0.339;SB=-2.970e+02;VQSLOD=8.1036;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|0:43,0:43:99:0,102,1192:39"	"0|0:29,0:29:39:0,39,468:39"	"0|1:15,26:42:99:364,0,105:39"
+17	55158811	rs7217371	G	A	2849.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=8.616;DB;DP=206;Dels=0.00;FS=0.511;HaplotypeScore=1.0970;MLEAC=3;MLEAF=0.500;MQ=59.66;MQ0=0;MQRankSum=0.103;QD=13.83;ReadPosRankSum=0.958;SB=-1.448e+03;VQSLOD=9.9440;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0/1:40,31:72:99:982,0,1147:127"	"0/1:35,40:75:99:1236,0,984:127"	"0/1:32,27:59:99:670,0,882:127"
+1	204945934	rs6657372	A	G	1311.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-6.582;DB;DP=126;Dels=0.00;FS=0.000;HaplotypeScore=2.7088;MLEAC=3;MLEAF=0.500;MQ=58.78;MQ0=0;MQRankSum=0.480;QD=15.43;ReadPosRankSum=1.284;SB=-6.370e+02;VQSLOD=7.8448;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|1:22,28:50:99:629,0,675:68"	"0|0:40,0:41:84:0,84,1057:68"	"1|1:0,35:35:69:727,69,0:68"
+2	1143476	rs4998209	C	T	1483.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-4.814;DB;DP=189;Dels=0.00;FS=5.611;HaplotypeScore=0.3245;MLEAC=2;MLEAF=0.333;MQ=58.36;MQ0=0;MQRankSum=1.579;QD=12.06;ReadPosRankSum=0.326;SB=-9.320e+02;VQSLOD=6.8071;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|0:66,0:66:99:0,178,2264:127"	"0|1:33,38:71:99:844,0,1024:127"	"0|1:26,26:52:99:678,0,719:127"
+11	10741836	rs72853043	G	A	175.24	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=0.127;DB;DP=174;Dels=0.00;FS=7.087;HaplotypeScore=7.4618;MLEAC=1;MLEAF=0.167;MQ=55.72;MQ0=1;MQRankSum=-1.291;QD=3.44;ReadPosRankSum=-1.185;SB=-2.220e+02;VQSLOD=1.6095;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|0:78,0:78:99:0,105,1278:65"	"0|0:42,0:45:66:0,66,802:65"	"0|1:21,29:51:99:210,0,469:65"
+20	12166868	rs7272217	C	T	926.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.444;DB;DP=200;Dels=0.00;FS=2.627;HaplotypeScore=0.8413;MLEAC=1;MLEAF=0.167;MQ=58.94;MQ0=0;MQRankSum=-1.362;QD=13.23;ReadPosRankSum=-1.055;SB=-4.040e+02;VQSLOD=7.6219;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|0:68,0:68:99:0,190,2486:127"	"0|0:62,0:62:99:0,169,2218:127"	"0|1:33,37:70:99:961,0,870:127"
+4	57135985	rs1715504	G	A	1213.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=3.549;DB;DP=173;Dels=0.00;FS=4.099;HaplotypeScore=1.6305;MLEAC=2;MLEAF=0.333;MQ=58.44;MQ0=0;MQRankSum=-1.006;QD=10.28;ReadPosRankSum=-0.933;SB=-4.500e+02;VQSLOD=7.4115;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|0:54,0:55:99:0,135,1546:127"	"0|1:30,23:54:99:563,0,608:127"	"0|1:35,28:64:99:689,0,562:127"
+6	154006585	rs7752561	G	A	919.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.323;DB;DP=223;Dels=0.00;FS=0.000;HaplotypeScore=0.8254;MLEAC=1;MLEAF=0.167;MQ=59.35;MQ0=0;MQRankSum=-0.749;QD=10.45;ReadPosRankSum=-0.155;SB=-5.260e+02;VQSLOD=8.8368;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|0:70,0:70:99:0,202,2601:127"	"0|1:51,37:88:99:954,0,1475:127"	"0|0:65,0:65:99:0,175,2269:127"
+16	11397080	rs1019552	T	C	2295.44	PASS	AC=6;AF=1.00;AN=6;DB;DP=169;Dels=0.01;FS=0.000;HaplotypeScore=8.2178;MLEAC=6;MLEAF=1.00;MQ=59.32;MQ0=0;QD=13.58;SB=-2.379e+03;VQSLOD=4.3801;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|1:0,71:71:96:1220,96,0:9"	"1|1:0,48:48:9:78,9,0:9"	"1|1:0,48:48:81:1035,81,0:9"
+3	68765638	rs1504297	C	G	4623.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-5.561;DB;DP=225;Dels=0.00;FS=3.176;HaplotypeScore=0.8432;MLEAC=4;MLEAF=0.667;MQ=59.80;MQ0=0;MQRankSum=-0.619;QD=20.55;ReadPosRankSum=-1.001;SB=-2.371e+03;VQSLOD=8.7354;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|0:40,39:79:99:1220,0,1330:127"	"1|1:0,75:75:99:2518,205,0:127"	"0|1:37,34:71:99:885,0,1185:127"
+8	113376378	rs41340951	T	C	4379.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-8.019;DB;DP=211;Dels=0.00;FS=1.826;HaplotypeScore=0.2629;MLEAC=4;MLEAF=0.667;MQ=59.85;MQ0=0;MQRankSum=1.273;QD=20.75;ReadPosRankSum=0.144;SB=-1.893e+03;VQSLOD=8.8374;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|1:0,67:67:99:2221,187,0:127"	"1|0:32,37:69:99:1083,0,1066:127"	"1|0:35,40:75:99:1075,0,1108:127"
+12	39118960	rs79977305	G	A	1330.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=6.307;DB;DP=263;Dels=0.00;FS=0.597;HaplotypeScore=1.4583;MLEAC=1;MLEAF=0.167;MQ=58.83;MQ0=0;MQRankSum=1.925;QD=13.57;ReadPosRankSum=-0.548;SB=-7.360e+02;VQSLOD=7.3733;culprit=MQRankSum	GT:AD:DP:GQ:PL:TP	"0|0:81,0:81:99:0,241,2869:127"	"0|0:84,0:84:99:0,229,2712:127"	"0|1:51,47:98:99:1365,0,1343:127"
+8	102355800	rs10103956	G	T	1756.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=0.927;DB;DP=189;Dels=0.00;FS=5.921;HaplotypeScore=1.5445;MLEAC=2;MLEAF=0.333;MQ=59.66;MQ0=0;MQRankSum=-0.420;QD=13.41;ReadPosRankSum=-0.019;SB=-5.470e+02;VQSLOD=8.1563;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|0:32,38:70:99:1078,0,999:127"	"1|0:35,26:61:99:717,0,1103:127"	"0|0:57,0:58:99:0,156,2011:127"
+3	99106655	rs2623376	A	G	1093.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.490;DB;DP=191;Dels=0.00;FS=2.283;HaplotypeScore=0.6267;MLEAC=2;MLEAF=0.333;MQ=59.76;MQ0=0;MQRankSum=-1.141;QD=9.51;ReadPosRankSum=0.079;SB=-5.610e+02;VQSLOD=8.1455;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|1:30,22:52:99:653,0,970:127"	"0|0:76,0:76:99:0,193,2462:127"	"1|0:44,19:63:99:479,0,1261:127"
+21	42833227	rs460904	T	C	3179.23	PASS	AC=6;AF=1.00;AN=6;DB;DP=155;Dels=0.00;FS=0.000;HaplotypeScore=2.4559;MLEAC=6;MLEAF=1.00;MQ=58.18;MQ0=0;QD=20.51;SB=-2.173e+03;VQSLOD=7.7042;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,60:60:90:1085,90,0:74"	"1|1:0,54:54:96:1172,96,0:74"	"1|1:0,41:41:75:960,75,0:74"
+22	43356130	rs6519353	A	C	3526.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.809;DB;DP=228;Dels=0.00;FS=6.336;HaplotypeScore=1.6306;MLEAC=3;MLEAF=0.500;MQ=59.41;MQ0=0;MQRankSum=-0.146;QD=22.46;ReadPosRankSum=2.034;SB=-1.954e+03;VQSLOD=8.5009;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"1|0:40,41:81:99:1020,0,1222:127"	"1|1:0,76:76:99:2506,196,0:127"	"0|0:71,0:71:99:0,165,2091:127"
+2	117966808	rs333847	C	T	9037.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=269;Dels=0.00;FS=0.000;HaplotypeScore=3.7032;MLEAC=6;MLEAF=1.00;MQ=58.21;MQ0=0;QD=33.59;SB=-4.673e+03;VQSLOD=7.0546;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|1:0,78:78:99:2652,205,0:127"	"1|1:0,101:101:99:3158,247,0:127"	"1|1:0,89:90:99:3227,250,0:127"
+7	110843795	rs214455	A	G	8548.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=258;Dels=0.00;FS=0.000;HaplotypeScore=2.3561;MLEAC=6;MLEAF=1.00;MQ=59.35;MQ0=0;QD=33.13;SB=-4.197e+03;VQSLOD=10.7627;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,106:106:99:3535,301,0:127"	"1|1:0,66:66:99:2270,193,0:127"	"1|1:0,86:86:99:2743,229,0:127"
+GL000214.1	115144	.	C	T	102.07	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=0.854;DP=103;Dels=0.00;FS=14.185;HaplotypeScore=14.9478;MLEAC=2;MLEAF=0.333;MQ=38.45;MQ0=1;MQRankSum=-2.314;QD=1.05;ReadPosRankSum=1.480;SB=-6.153e+01;VQSLOD=-14.7562;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|0:6,0:6:3:0,3,22:4"	"0|1:9,11:20:16:81,0,16:4"	"0|1:63,14:77:58:58,0,908:4"
+9	25201692	rs9408058	C	T	8643.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=245;Dels=0.00;FS=0.000;HaplotypeScore=0.8982;MLEAC=6;MLEAF=1.00;MQ=59.13;MQ0=0;QD=35.28;SB=-4.398e+03;VQSLOD=12.1738;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,89:89:99:3312,256,0:127"	"1|1:0,81:81:99:2771,223,0:127"	"1|1:0,75:75:99:2560,202,0:127"
+7	144383888	rs73161092	T	C	689.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-7.434;DB;DP=254;Dels=0.00;FS=8.629;HaplotypeScore=0.0000;MLEAC=1;MLEAF=0.167;MQ=59.54;MQ0=0;MQRankSum=0.163;QD=8.62;ReadPosRankSum=-1.802;SB=-3.560e+02;VQSLOD=6.4544;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|0:90,0:90:99:0,268,3553:127"	"0|1:47,33:80:99:724,0,1392:127"	"0|0:84,0:84:99:0,202,2644:127"
+8	21736923	rs13256921	G	A	217.24	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=1.884;DB;DP=93;Dels=0.00;FS=5.533;HaplotypeScore=6.4995;MLEAC=1;MLEAF=0.167;MQ=42.13;MQ0=3;MQRankSum=0.517;QD=6.79;ReadPosRankSum=1.706;SB=-1.980e+02;VQSLOD=-2.6430;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|0:34,0:34:66:0,66,691:41"	"0|1:15,17:32:99:252,0,211:41"	"0|0:27,0:27:42:0,42,425:41"
+13	101976707	rs527328	A	T	9240.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=259;Dels=0.00;FS=0.000;HaplotypeScore=0.2447;MLEAC=6;MLEAF=1.00;MQ=53.28;MQ0=0;QD=35.68;SB=-4.696e+03;VQSLOD=7.5241;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|1:0,92:92:99:3410,262,0:127"	"1|1:0,88:88:99:3195,247,0:127"	"1|1:1,78:79:99:2635,202,0:127"
+Y	59024923	.	A	T	1977.26	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=1.838;DP=745;DS;Dels=0.00;FS=0.367;HaplotypeScore=8.2957;MLEAC=3;MLEAF=0.500;MQ=43.53;MQ0=19;MQRankSum=2.499;QD=2.65;ReadPosRankSum=0.098;SB=-9.720e+02;VQSLOD=-36.7578;culprit=DP	GT:AD:DP:GQ:PL:TP	"0/1:208,42:250:99:730,0,6428:127"	"0/1:210,35:245:99:588,0,6218:127"	"0/1:208,42:250:99:698,0,6060:127"
+2	85513238	rs62162679	C	T	742.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.162;DB;DP=137;Dels=0.00;FS=4.474;HaplotypeScore=1.3905;MLEAC=2;MLEAF=0.333;MQ=57.50;MQ0=0;MQRankSum=0.479;QD=7.57;ReadPosRankSum=-0.272;SB=-5.520e+02;VQSLOD=7.1288;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|0:39,0:39:99:0,105,1267:104"	"0|1:23,23:47:99:430,0,551:104"	"0|1:31,20:51:99:351,0,633:104"
+10	132949760	rs10829924	A	C	684.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.328;DB;DP=215;Dels=0.00;FS=15.464;HaplotypeScore=1.3183;MLEAC=1;MLEAF=0.167;MQ=59.70;MQ0=0;MQRankSum=-1.053;QD=10.53;ReadPosRankSum=-2.893;SB=-2.920e+02;VQSLOD=5.8891;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"0|0:80,0:81:99:0,229,2999:127"	"0|0:69,0:69:99:0,175,2268:127"	"0|1:35,30:65:99:719,0,1046:127"
+8	90278211	rs11998540	A	T	357.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-1.457;DB;DP=69;Dels=0.00;FS=1.289;HaplotypeScore=0.0000;MLEAC=2;MLEAF=0.333;MQ=58.96;MQ0=0;MQRankSum=1.415;QD=8.12;ReadPosRankSum=1.258;SB=-9.501e+01;VQSLOD=5.9584;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|1:12,7:19:99:185,0,416:60"	"0|0:25,0:25:60:0,60,805:60"	"1|0:16,9:25:99:211,0,500:60"
+1	47818917	rs12749507	A	G	1285.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.707;DB;DP=252;Dels=0.00;FS=2.139;HaplotypeScore=0.6661;MLEAC=1;MLEAF=0.167;MQ=59.83;MQ0=0;MQRankSum=-0.467;QD=13.39;ReadPosRankSum=0.535;SB=-6.730e+02;VQSLOD=9.2738;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0|0:81,0:81:99:0,241,3171:127"	"0|1:53,42:96:99:1320,0,1615:127"	"0|0:75,0:75:99:0,217,2762:127"
+2	228532558	rs6436725	G	A	3484.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=7.160;DB;DP=263;Dels=0.00;FS=1.547;HaplotypeScore=4.9679;MLEAC=3;MLEAF=0.500;MQ=58.60;MQ0=0;MQRankSum=1.137;QD=21.91;ReadPosRankSum=-0.416;SB=-1.472e+03;VQSLOD=5.4377;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|1:42,47:89:99:1549,0,932:127"	"0|0:104,0:104:99:0,247,2939:127"	"1|1:0,69:70:99:1935,156,0:127"
+19	20782710	rs10413568	T	C	6304.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=203;Dels=0.00;FS=0.000;HaplotypeScore=0.6919;MLEAC=6;MLEAF=1.00;MQ=59.56;MQ0=0;QD=31.05;SB=-2.367e+03;VQSLOD=10.7708;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,74:74:99:2375,214,0:127"	"1|1:0,80:80:99:2480,217,0:127"	"1|1:0,49:49:99:1449,129,0:127"
+22	50309915	rs9616205	A	T	1712.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-0.936;DB;DP=162;Dels=0.00;FS=2.857;HaplotypeScore=2.1490;MLEAC=2;MLEAF=0.333;MQ=56.21;MQ0=5;MQRankSum=0.892;QD=13.92;ReadPosRankSum=-1.040;SB=-9.940e+02;VQSLOD=6.2766;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0|1:39,33:72:99:777,0,994:78"	"0|0:39,0:39:78:0,78,1010:78"	"1|0:16,35:51:99:974,0,257:78"
+2	18016237	rs12710649	A	T	3950.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-0.037;DB;DP=250;Dels=0.00;FS=2.158;HaplotypeScore=2.0804;MLEAC=3;MLEAF=0.500;MQ=59.14;MQ0=0;MQRankSum=0.494;QD=15.80;ReadPosRankSum=0.705;SB=-2.142e+03;VQSLOD=8.1407;culprit=FS	GT:AD:DP:GQ:PL:TP	"0/1:46,59:105:99:1733,0,1505:127"	"0/1:39,37:76:99:925,0,1164:127"	"0/1:24,44:68:99:1292,0,628:127"
+11	75978490	rs655877	G	C	2986.25	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-0.846;DB;DP=127;Dels=0.00;FS=5.433;HaplotypeScore=0.2629;MLEAC=5;MLEAF=0.833;MQ=59.42;MQ0=0;MQRankSum=0.026;QD=23.51;ReadPosRankSum=0.168;SB=-1.613e+03;VQSLOD=7.0404;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|1:0,50:50:99:1405,111,0:101"	"1|1:0,45:46:99:1269,102,0:101"	"1|0:17,14:31:99:354,0,469:101"
+9	78741390	rs7049138	G	A	1797.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=6.235;DB;DP=168;Dels=0.00;FS=4.003;HaplotypeScore=1.0858;MLEAC=3;MLEAF=0.500;MQ=55.32;MQ0=2;MQRankSum=-1.673;QD=16.34;ReadPosRankSum=-0.626;SB=-7.740e+02;VQSLOD=5.1915;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|0:37,33:70:99:828,0,918:80"	"1|1:0,40:40:81:1014,81,0:80"	"0|0:58,0:58:99:0,129,1403:80"
+3	17501103	.	T	G	45.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=-6.477;DP=156;Dels=0.00;FS=71.755;HaplotypeScore=1.5253;MLEAC=2;MLEAF=0.333;MQ=58.02;MQ0=0;MQRankSum=-0.156;QD=0.43;ReadPosRankSum=-3.974;SB=-1.474e-02;VQSLOD=-14.1451;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|0:43,8:51:99:0,114,1252:33"	"0|1:22,24:46:34:34,0,492:33"	"0|1:24,34:59:50:50,0,492:33"
+X	135282092	rs5974586	G	C	2193.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=4.257;DB;DP=203;Dels=0.00;FS=0.540;HaplotypeScore=0.6589;MLEAC=2;MLEAF=0.333;MQ=59.47;MQ0=0;MQRankSum=1.000;QD=13.46;ReadPosRankSum=1.343;SB=-1.069e+03;VQSLOD=9.0929;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"0|1:47,33:80:99:1026,0,1466:116"	"0|0:40,0:40:99:0,117,1486:116"	"1|0:43,40:83:99:1206,0,1311:116"
+15	71657506	.	A	G	140.4	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=-1.611;DP=133;Dels=0.00;FS=35.593;HaplotypeScore=4.0622;MLEAC=2;MLEAF=0.333;MQ=51.29;MQ0=1;MQRankSum=-3.344;QD=1.53;ReadPosRankSum=-3.999;SB=-5.015e+01;VQSLOD=-4.8050;culprit=QD	GT:AD:DP:GQ:PL:TP	"1|0:46,11:57:93:93,0,851:15"	"1|0:23,12:35:86:86,0,299:15"	"0|0:33,8:41:15:0,15,503:15"
+2	144289763	rs7607879	C	T	3308.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=1.386;DB;DP=225;Dels=0.00;FS=9.723;HaplotypeScore=1.4969;MLEAC=3;MLEAF=0.500;MQ=59.53;MQ0=0;MQRankSum=0.283;QD=14.70;ReadPosRankSum=1.392;SB=-1.760e+03;VQSLOD=8.2418;culprit=FS	GT:AD:DP:GQ:PL:TP	"0/1:41,39:81:99:1190,0,1312:127"	"0/1:28,36:64:99:1057,0,834:127"	"0/1:44,36:80:99:1061,0,1275:127"
+10	38560911	rs80189231	T	A	1072.26	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=0.103;DB;DP=356;Dels=0.00;FS=12.038;HaplotypeScore=5.4015;MLEAC=3;MLEAF=0.500;MQ=49.74;MQ0=6;MQRankSum=-2.686;QD=3.01;ReadPosRankSum=0.797;SB=-1.690e+02;VQSLOD=-3.5129;culprit=QD	GT:AD:DP:GQ:PL:TP	"0/1:109,26:135:99:389,0,2879:127"	"0/1:84,27:111:99:539,0,2214:127"	"0/1:93,17:110:99:183,0,2277:127"
+11	86061661	rs11825046	T	C	6014.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-3.250;DB;DP=282;Dels=0.00;FS=0.960;HaplotypeScore=1.6440;MLEAC=4;MLEAF=0.667;MQ=59.57;MQ0=0;MQRankSum=1.057;QD=21.33;ReadPosRankSum=-1.763;SB=-3.081e+03;VQSLOD=7.3485;culprit=DP	GT:AD:DP:GQ:PL:TP	"1|0:54,49:103:99:1498,0,1848:127"	"1|1:0,83:83:99:2924,223,0:127"	"0|1:44,52:96:99:1592,0,1380:127"
+20	21523349	rs73127889	A	G	2286.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-6.469;DB;DP=253;Dels=0.00;FS=3.735;HaplotypeScore=1.5402;MLEAC=2;MLEAF=0.333;MQ=59.31;MQ0=0;MQRankSum=0.821;QD=13.69;ReadPosRankSum=1.510;SB=-8.640e+02;VQSLOD=7.8358;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"0|1:44,48:92:99:1319,0,1356:127"	"0|0:86,0:86:99:0,235,2994:127"	"1|0:37,38:75:99:1006,0,1111:127"
+10	4588547	rs313427	C	T	1985.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=3.695;DB;DP=204;Dels=0.00;FS=1.813;HaplotypeScore=0.6137;MLEAC=2;MLEAF=0.333;MQ=59.73;MQ0=0;MQRankSum=0.241;QD=14.18;ReadPosRankSum=0.717;SB=-1.082e+03;VQSLOD=9.7784;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|0:39,35:74:99:1029,0,1182:127"	"1|0:32,34:66:99:995,0,1024:127"	"0|0:64,0:64:99:0,175,2242:127"
+6	131725921	.	G	A	64.24	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=3.650;DP=182;Dels=0.00;FS=3.535;HaplotypeScore=2.2441;MLEAC=1;MLEAF=0.167;MQ=50.85;MQ0=1;MQRankSum=-6.039;QD=1.31;ReadPosRankSum=-1.757;SB=-4.901e+01;VQSLOD=-0.6667;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|0:59,0:60:99:0,168,1897:98"	"0|1:33,16:49:99:99,0,790:98"	"0|0:73,0:73:99:0,156,1824:98"
+4	103859292	rs7676943	C	G	7573.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=235;Dels=0.00;FS=0.000;HaplotypeScore=0.0000;MLEAC=6;MLEAF=1.00;MQ=58.63;MQ0=0;QD=32.23;SB=-3.953e+03;VQSLOD=10.3945;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|1:1,95:96:99:3289,256,0:127"	"1|1:0,73:73:99:2137,166,0:127"	"1|1:0,66:66:99:2147,166,0:127"
+10	11560326	rs4424580	C	T	1027.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-0.178;DB;DP=207;Dels=0.00;FS=0.573;HaplotypeScore=2.1981;MLEAC=2;MLEAF=0.333;MQ=59.24;MQ0=0;MQRankSum=-0.988;QD=7.78;ReadPosRankSum=-0.492;SB=-7.450e+02;VQSLOD=8.4594;culprit=QD	GT:AD:DP:GQ:PL:TP	"1|0:41,32:73:99:609,0,930:96"	"1|0:29,30:59:99:457,0,570:96"	"0|0:74,1:75:96:0,96,1185:96"
+10	56495833	rs6481118	G	A	7633.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=212;Dels=0.00;FS=0.000;HaplotypeScore=0.3328;MLEAC=6;MLEAF=1.00;MQ=54.64;MQ0=0;QD=36.00;SB=-2.091e+03;VQSLOD=8.6651;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,62:62:99:2383,184,0:127"	"1|1:1,67:68:99:2375,184,0:127"	"1|1:0,82:82:99:2875,223,0:127"
+16	55910673	rs17265788	G	C	2345.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=2.657;DB;DP=208;Dels=0.00;FS=3.162;HaplotypeScore=1.9213;MLEAC=3;MLEAF=0.500;MQ=59.67;MQ0=0;MQRankSum=-0.333;QD=16.63;ReadPosRankSum=-0.425;SB=-1.468e+03;VQSLOD=8.3665;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0|1:33,33:66:99:769,0,761:122"	"0|0:67,0:67:99:0,123,1506:122"	"1|1:0,75:75:99:1621,132,0:122"
+14	38160457	rs2181345	A	C	4683.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=169;Dels=0.00;FS=0.000;HaplotypeScore=2.5449;MLEAC=6;MLEAF=1.00;MQ=59.00;MQ0=0;QD=27.71;SB=-2.390e+03;VQSLOD=9.9888;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,56:56:99:1818,141,0:107"	"1|1:0,58:58:99:1523,123,0:107"	"1|1:0,53:55:99:1342,108,0:107"
+11	35980461	rs263087	A	T	3494.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-0.701;DB;DP=186;Dels=0.00;FS=0.000;HaplotypeScore=2.9570;MLEAC=4;MLEAF=0.667;MQ=59.34;MQ0=0;MQRankSum=0.836;QD=18.79;ReadPosRankSum=0.007;SB=-1.535e+03;VQSLOD=7.6407;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|1:36,35:71:99:1001,0,1165:127"	"0|1:30,26:56:99:710,0,796:127"	"1|1:0,59:59:99:1783,144,0:127"
+1	69502962	rs12724640	T	C	1868.23	VQSRTrancheSNP99.00to99.90	AC=6;AF=1.00;AN=6;BaseQRankSum=-1.732;DB;DP=110;Dels=0.00;FS=4.721;HaplotypeScore=1.9269;MLEAC=6;MLEAF=1.00;MQ=29.46;MQ0=22;MQRankSum=1.652;QD=16.98;ReadPosRankSum=-0.564;SB=-8.110e+02;VQSLOD=0.2103;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|1:5,23:29:63:693,63,0:50"	"1|1:5,38:43:66:675,66,0:50"	"1|1:9,29:38:51:538,51,0:50"
+20	29566945	rs6119037	C	G	1427.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=-3.826;DB;DP=271;Dels=0.00;FS=1.151;HaplotypeScore=2.7598;MLEAC=2;MLEAF=0.333;MQ=47.42;MQ0=21;MQRankSum=2.420;QD=8.06;ReadPosRankSum=0.363;SB=-7.560e+02;VQSLOD=1.7908;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|0:59,32:91:99:782,0,1210:127"	"1|0:55,31:86:99:684,0,1422:127"	"0|0:94,0:94:99:0,208,2592:127"
+11	55040918	rs187118824	A	T	1019.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.079;DB;DP=65;Dels=0.02;FS=12.723;HaplotypeScore=0.9771;MLEAC=2;MLEAF=0.333;MQ=56.64;MQ0=1;MQRankSum=0.323;QD=25.48;ReadPosRankSum=0.873;SB=-2.060e+01;VQSLOD=4.4200;culprit=DP	GT:AD:DP:GQ:PL:TP	"0|1:2,9:11:48:325,0,48:50"	"0|0:24,1:25:63:0,63,833:50"	"1|0:6,22:28:51:733,0,51:50"
+7	56584972	rs34475770	C	T	2465.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-0.103;DB;DP=255;Dels=0.00;FS=2.230;HaplotypeScore=0.8840;MLEAC=2;MLEAF=0.333;MQ=58.76;MQ0=0;MQRankSum=1.766;QD=15.03;ReadPosRankSum=1.126;SB=-1.412e+03;VQSLOD=6.5725;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|0:91,0:91:99:0,259,3369:127"	"0|1:36,49:85:99:1444,0,1000:127"	"0|1:38,41:79:99:1060,0,1084:127"
+8	56608897	rs57623198	C	T	1911.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-1.515;DB;DP=229;Dels=0.00;FS=0.000;HaplotypeScore=1.1327;MLEAC=2;MLEAF=0.333;MQ=59.80;MQ0=0;MQRankSum=0.336;QD=12.66;ReadPosRankSum=-2.326;SB=-9.730e+02;VQSLOD=8.5587;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|0:78,0:78:99:0,229,2989:127"	"0|1:44,30:74:99:897,0,1444:127"	"0|1:44,33:77:99:1053,0,1400:127"
+4	6333669	rs35678078	G	T	2186.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=1.220;DB;DP=198;Dels=0.00;FS=1.754;HaplotypeScore=0.7779;MLEAC=3;MLEAF=0.500;MQ=59.27;MQ0=0;MQRankSum=-0.256;QD=11.04;ReadPosRankSum=-0.469;SB=-1.621e+03;VQSLOD=9.4086;culprit=QD	GT:AD:DP:GQ:PL:TP	"0/1:33,34:67:99:875,0,848:127"	"0/1:27,32:59:99:602,0,534:127"	"0/1:33,38:72:99:748,0,676:127"
+3	1609737	rs2648459	A	G	6492.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=187;Dels=0.00;FS=0.000;HaplotypeScore=1.1795;MLEAC=6;MLEAF=1.00;MQ=59.90;MQ0=0;QD=34.72;SB=-3.251e+03;VQSLOD=11.5033;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,53:53:99:1943,150,0:127"	"1|1:0,62:62:99:2206,172,0:127"	"1|1:0,72:72:99:2343,181,0:127"
+1	156248265	rs12038203	C	T	643.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-0.311;DB;DP=145;Dels=0.00;FS=4.568;HaplotypeScore=0.2774;MLEAC=1;MLEAF=0.167;MQ=59.08;MQ0=0;MQRankSum=0.862;QD=12.86;ReadPosRankSum=0.177;SB=-3.450e+02;VQSLOD=7.5008;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|0:47,0:47:99:0,123,1604:110"	"0|0:48,0:48:99:0,111,1433:110"	"0|1:25,25:50:99:678,0,694:110"
+3	197056886	rs7612900	G	A	7880.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=229;Dels=0.00;FS=0.000;HaplotypeScore=0.6106;MLEAC=6;MLEAF=1.00;MQ=59.18;MQ0=0;QD=34.41;SB=-3.459e+03;VQSLOD=11.8130;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,75:75:99:2786,214,0:127"	"1|1:0,81:81:99:2598,202,0:127"	"1|1:0,73:73:99:2496,193,0:127"
+6	79887872	rs6454101	C	T	2130.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.355;DB;DP=204;Dels=0.00;FS=11.823;HaplotypeScore=2.3806;MLEAC=3;MLEAF=0.500;MQ=59.68;MQ0=0;MQRankSum=1.011;QD=10.44;ReadPosRankSum=-0.769;SB=-1.370e+03;VQSLOD=7.5187;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0/1:31,31:62:99:806,0,990:127"	"0/1:42,31:73:99:606,0,921:127"	"0/1:29,40:69:99:757,0,749:127"
+17	5764764	rs2309483	C	G	4071.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=4.237;DB;DP=154;Dels=0.00;FS=0.000;HaplotypeScore=4.4102;MLEAC=5;MLEAF=0.833;MQ=58.88;MQ0=0;MQRankSum=0.456;QD=26.44;ReadPosRankSum=0.385;SB=-1.791e+03;VQSLOD=6.9458;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|1:0,61:62:99:2049,165,0:107"	"1|0:23,26:49:99:648,0,482:107"	"1|1:0,43:43:99:1374,108,0:107"
+7	12502849	rs848025	C	G	4109.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-8.809;DB;DP=220;Dels=0.00;FS=1.141;HaplotypeScore=1.8049;MLEAC=4;MLEAF=0.667;MQ=59.56;MQ0=0;MQRankSum=0.625;QD=18.68;ReadPosRankSum=-0.019;SB=-1.989e+03;VQSLOD=8.7123;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|0:47,45:92:99:1216,0,1501:127"	"1|1:0,71:71:99:2145,184,0:127"	"0|1:27,30:57:99:748,0,743:127"
+1	226163330	rs10915914	C	G	747.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-3.123;DB;DP=121;Dels=0.00;FS=0.863;HaplotypeScore=0.8289;MLEAC=2;MLEAF=0.333;MQ=58.96;MQ0=0;MQRankSum=-0.478;QD=9.70;ReadPosRankSum=-0.134;SB=-2.780e+02;VQSLOD=8.0849;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|0:43,1:44:99:0,117,1447:116"	"0|1:17,15:32:99:289,0,390:116"	"0|1:26,19:45:99:497,0,677:116"
+18	1629264	rs5025369	A	G	86.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=-1.739;DB;DP=149;Dels=0.00;FS=15.359;HaplotypeScore=7.1355;MLEAC=2;MLEAF=0.333;MQ=39.72;MQ0=11;MQRankSum=-2.543;QD=0.81;ReadPosRankSum=0.088;SB=-3.380e+01;VQSLOD=-6.2052;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|1:51,15:66:50:50,0,1143:49"	"0|0:37,5:42:81:0,81,941:49"	"1|0:35,6:41:75:75,0,818:49"
+15	23743658	rs142070302	T	A	1007.26	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.164;DB;DP=408;Dels=0.00;FS=166.853;HaplotypeScore=53.5447;MLEAC=3;MLEAF=0.500;MQ=38.96;MQ0=14;MQRankSum=-6.283;QD=2.47;ReadPosRankSum=2.486;SB=-1.079e-02;VQSLOD=-304.7942;culprit=FS	GT:AD:DP:GQ:PL:TP	"0/1:104,39:143:99:365,0,2802:45"	"0/1:99,40:139:99:636,0,2335:45"	"0/1:97,28:126:45:45,0,2324:45"
+5	80900719	rs2917540	G	T	4938.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=3.261;DB;DP=240;Dels=0.00;FS=0.489;HaplotypeScore=0.5959;MLEAC=4;MLEAF=0.667;MQ=59.63;MQ0=0;MQRankSum=-2.115;QD=20.58;ReadPosRankSum=0.288;SB=-2.548e+03;VQSLOD=8.4417;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0|1:52,40:92:99:1207,0,1768:127"	"0|1:37,33:70:99:960,0,1205:127"	"1|1:0,78:78:99:2771,211,0:127"
+8	8974322	rs28440961	G	A	1682.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.716;DB;DP=190;Dels=0.00;FS=0.579;HaplotypeScore=1.5434;MLEAC=2;MLEAF=0.333;MQ=59.33;MQ0=0;MQRankSum=-0.652;QD=12.65;ReadPosRankSum=0.746;SB=-7.040e+02;VQSLOD=9.3708;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"1|0:32,32:64:99:790,0,1002:125"	"1|0:33,36:69:99:931,0,866:125"	"0|0:57,0:57:99:0,126,1622:125"
+12	5922552	rs17786352	C	G	1874.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-7.386;DB;DP=231;Dels=0.00;FS=0.000;HaplotypeScore=0.3053;MLEAC=2;MLEAF=0.333;MQ=54.49;MQ0=0;MQRankSum=2.656;QD=13.11;ReadPosRankSum=1.042;SB=-9.400e+02;VQSLOD=4.7495;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|0:44,35:79:99:897,0,1383:127"	"1|0:28,36:64:99:1016,0,734:127"	"0|0:88,0:88:99:0,238,3004:127"
+2	45429089	rs13418430	C	A	2341.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=0.861;DB;DP=283;Dels=0.00;FS=2.854;HaplotypeScore=1.3288;MLEAC=2;MLEAF=0.333;MQ=59.62;MQ0=0;MQRankSum=-0.939;QD=12.52;ReadPosRankSum=-1.869;SB=-1.156e+03;VQSLOD=7.1503;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|0:60,49:109:99:1406,0,2061:127"	"1|0:41,37:78:99:974,0,1238:127"	"0|0:96,0:96:99:0,256,3312:127"
+17	33513649	rs3744366	A	G	3743.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-3.729;DB;DP=213;Dels=0.00;FS=0.526;HaplotypeScore=2.9053;MLEAC=4;MLEAF=0.667;MQ=58.99;MQ0=0;MQRankSum=-0.152;QD=17.57;ReadPosRankSum=0.530;SB=-2.067e+03;VQSLOD=8.0191;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|0:44,40:84:99:1083,0,1341:127"	"1|1:0,67:67:99:2074,162,0:127"	"0|1:37,24:62:99:586,0,1015:127"
+7	62232046	.	C	T	1155.24	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.643;DP=230;Dels=0.00;FS=6.304;HaplotypeScore=12.7679;MLEAC=1;MLEAF=0.167;MQ=58.61;MQ0=3;MQRankSum=-0.697;QD=15.20;ReadPosRankSum=-1.202;SB=-4.440e+02;VQSLOD=2.5725;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|0:77,1:78:99:0,217,2824:127"	"0|0:76,0:76:99:0,202,2604:127"	"0|1:34,42:76:99:1190,0,994:127"
+1	216407409	rs3767692	A	G	8820.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-0.803;DB;DP=295;Dels=0.00;FS=1.345;HaplotypeScore=2.5841;MLEAC=5;MLEAF=0.833;MQ=59.28;MQ0=0;MQRankSum=-0.375;QD=29.90;ReadPosRankSum=-0.363;SB=-4.445e+03;VQSLOD=7.0549;culprit=DP	GT:AD:DP:GQ:PL:TP	"1|1:1,115:116:99:4251,328,0:127"	"1|0:39,51:90:99:1430,0,1275:127"	"1|1:0,89:89:99:3139,241,0:127"
+2	9240279	rs56249990	A	G	3978.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=1.695;DB;DP=213;Dels=0.00;FS=7.834;HaplotypeScore=1.1897;MLEAC=3;MLEAF=0.500;MQ=59.40;MQ0=0;MQRankSum=0.143;QD=27.25;ReadPosRankSum=-0.097;SB=-1.991e+03;VQSLOD=9.1447;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|1:33,42:75:99:1400,0,1031:127"	"0|0:67,0:67:99:0,178,2277:127"	"1|1:0,71:71:99:2578,199,0:127"
+12	112830546	rs150699511	C	A	487.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.014;DB;DP=179;Dels=0.00;FS=0.860;HaplotypeScore=2.3392;MLEAC=1;MLEAF=0.167;MQ=59.16;MQ0=0;MQRankSum=1.141;QD=8.86;ReadPosRankSum=0.950;SB=-2.870e+02;VQSLOD=8.1138;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|0:62,0:62:99:0,166,2141:127"	"0|1:34,21:55:99:522,0,751:127"	"0|0:62,0:62:99:0,141,1808:127"
+16	30509723	rs7193693	A	G	497.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-4.054;DB;DP=167;Dels=0.00;FS=0.000;HaplotypeScore=1.1605;MLEAC=1;MLEAF=0.167;MQ=57.89;MQ0=0;MQRankSum=-0.545;QD=9.38;ReadPosRankSum=0.541;SB=-2.410e+02;VQSLOD=8.4265;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|0:57,0:57:99:0,153,2009:101"	"0|0:57,0:57:99:0,102,1304:101"	"0|1:26,27:53:99:532,0,526:101"
+10	85258657	rs4454662	C	A	7638.01	PASS	AC=6;AF=1.00;AN=6;BaseQRankSum=1.716;DB;DP=223;Dels=0.00;FS=4.523;HaplotypeScore=1.1326;MLEAC=6;MLEAF=1.00;MQ=58.32;MQ0=0;MQRankSum=-1.230;QD=34.25;ReadPosRankSum=1.152;SB=-2.841e+03;VQSLOD=7.6461;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:1,64:65:99:2156,169,0:127"	"1|1:0,89:89:99:2982,238,0:127"	"1|1:0,69:69:99:2500,196,0:127"
+17	14096866	.	C	T	489.26	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=4.537;DP=181;Dels=0.00;FS=33.896;HaplotypeScore=1.0782;MLEAC=3;MLEAF=0.500;MQ=24.52;MQ0=71;MQRankSum=0.353;QD=2.70;ReadPosRankSum=0.385;SB=-1.450e+02;VQSLOD=-6.2174;culprit=QD	GT:AD:DP:GQ:PL:TP	"0/1:48,17:66:99:228,0,822:63"	"0/1:42,16:58:99:237,0,389:63"	"0/1:44,13:57:63:63,0,523:63"
+22	34204930	rs13053313	T	C	435.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.517;DB;DP=82;Dels=0.00;FS=5.843;HaplotypeScore=0.5328;MLEAC=1;MLEAF=0.167;MQ=58.65;MQ0=0;MQRankSum=1.117;QD=12.80;ReadPosRankSum=-1.270;SB=-1.170e+02;VQSLOD=6.4410;culprit=DP	GT:AD:DP:GQ:PL:TP	"0|0:12,0:12:27:0,27,360:27"	"0|1:16,18:34:99:470,0,403:27"	"0|0:36,0:36:93:0,93,1230:27"
+8	42044954	rs1058720	G	A	2760.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=4.313;DB;DP=157;Dels=0.00;FS=0.000;HaplotypeScore=2.0979;MLEAC=4;MLEAF=0.667;MQ=58.82;MQ0=0;MQRankSum=-2.021;QD=17.58;ReadPosRankSum=-0.462;SB=-1.377e+03;VQSLOD=7.5777;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,56:56:99:1820,147,0:127"	"1|0:24,27:51:99:555,0,233:127"	"1|0:26,24:50:99:427,0,458:127"
+19	11730690	rs4804613	C	T	2578.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=5.057;DB;DP=197;Dels=0.00;FS=0.529;HaplotypeScore=0.0000;MLEAC=3;MLEAF=0.500;MQ=59.36;MQ0=0;MQRankSum=0.416;QD=13.09;ReadPosRankSum=-0.554;SB=-1.389e+03;VQSLOD=9.3908;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0/1:21,26:47:99:586,0,623:127"	"0/1:42,45:87:99:1192,0,1055:127"	"0/1:32,30:63:99:839,0,932:127"
+1	80481528	rs61774278	G	C	1775.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-1.614;DB;DP=168;Dels=0.00;FS=8.292;HaplotypeScore=2.0470;MLEAC=3;MLEAF=0.500;MQ=54.28;MQ0=0;MQRankSum=-0.052;QD=16.75;ReadPosRankSum=1.544;SB=-1.133e+03;VQSLOD=4.7735;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0|1:35,26:61:99:767,0,778:80"	"0|0:62,0:62:84:0,84,1046:80"	"1|1:0,45:45:84:1053,84,0:80"
+10	106444111	rs72813617	A	G	632.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-0.838;DB;DP=197;Dels=0.00;FS=4.121;HaplotypeScore=1.8154;MLEAC=1;MLEAF=0.167;MQ=59.35;MQ0=0;MQRankSum=-1.142;QD=12.40;ReadPosRankSum=-1.947;SB=-2.390e+02;VQSLOD=7.6230;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"0|0:84,0:84:99:0,241,3129:127"	"0|0:62,0:62:99:0,159,2008:127"	"0|1:27,24:51:99:667,0,584:127"
+X	4712340	rs5915814	C	A	2233.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=8.784;DB;DP=176;Dels=0.00;FS=0.000;HaplotypeScore=0.4434;MLEAC=2;MLEAF=0.333;MQ=59.50;MQ0=0;MQRankSum=-1.782;QD=15.73;ReadPosRankSum=0.359;SB=-1.240e+03;VQSLOD=8.3937;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|1:32,37:69:99:1114,0,859:81"	"0|0:34,0:34:81:0,81,948:81"	"1|0:32,41:73:99:1158,0,575:81"
+9	130235282	.	A	G	166.26	VQSRTrancheSNP99.90to100.00	AC=2;AF=0.333;AN=6;BaseQRankSum=-8.543;DP=232;Dels=0.00;FS=233.037;HaplotypeScore=2.9977;MLEAC=2;MLEAF=0.333;MQ=59.04;MQ0=0;MQRankSum=-2.038;QD=1.15;ReadPosRankSum=-7.649;SB=-3.100e-03;VQSLOD=-139.8496;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|0:74,14:88:99:0,108,2160:59"	"0|1:42,36:79:60:60,0,966:59"	"0|1:47,18:65:99:145,0,922:59"
+6	26687649	.	G	C	1654.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=9.718;DP=410;Dels=0.00;FS=5.973;HaplotypeScore=5.0786;MLEAC=2;MLEAF=0.333;MQ=28.19;MQ0=32;MQRankSum=0.048;QD=6.17;ReadPosRankSum=0.408;SB=-5.110e+02;VQSLOD=-8.7346;culprit=DP	GT:AD:DP:GQ:PL:TP	"0|1:117,49:166:99:1013,0,2495:127"	"0|0:141,1:142:99:0,244,2576:127"	"1|0:70,32:102:99:680,0,1048:127"
+8	132727531	rs7000409	G	A	2050.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=5.475;DB;DP=220;Dels=0.00;FS=5.203;HaplotypeScore=1.9424;MLEAC=2;MLEAF=0.333;MQ=59.71;MQ0=0;MQRankSum=1.230;QD=14.14;ReadPosRankSum=-0.871;SB=-1.080e+03;VQSLOD=7.7925;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0|1:29,35:64:99:1215,0,785:127"	"0|0:75,0:75:99:0,190,2423:127"	"1|0:50,31:81:99:874,0,1611:127"
+7	48862174	rs965346	A	G	877.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-6.250;DB;DP=194;Dels=0.00;FS=6.112;HaplotypeScore=0.6489;MLEAC=1;MLEAF=0.167;MQ=57.54;MQ0=0;MQRankSum=2.058;QD=16.25;ReadPosRankSum=-1.204;SB=-4.040e+02;VQSLOD=6.2372;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|0:82,0:82:99:0,232,3007:127"	"0|0:58,0:58:99:0,160,2067:127"	"0|1:22,32:54:99:912,0,686:127"
+4	122900130	rs4833786	C	T	2361.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-0.390;DB;DP=244;Dels=0.00;FS=0.495;HaplotypeScore=0.5427;MLEAC=2;MLEAF=0.333;MQ=59.91;MQ0=0;MQRankSum=-0.628;QD=15.23;ReadPosRankSum=1.221;SB=-1.282e+03;VQSLOD=8.8105;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0|0:89,0:89:99:0,250,3286:127"	"0|1:42,44:86:99:1257,0,1325:127"	"0|1:32,37:69:99:1143,0,941:127"
+6	9408051	rs11751621	C	G	5140.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-2.350;DB;DP=241;Dels=0.00;FS=0.000;HaplotypeScore=0.6637;MLEAC=4;MLEAF=0.667;MQ=59.81;MQ0=0;MQRankSum=-0.205;QD=21.33;ReadPosRankSum=-0.033;SB=-2.552e+03;VQSLOD=8.9881;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|1:42,40:82:99:1156,0,1352:127"	"0|1:36,45:81:99:1253,0,1134:127"	"1|1:0,78:78:99:2731,214,0:127"
+2	96514373	rs10186946	C	T	206.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=4.485;DB;DP=175;Dels=0.00;FS=2.805;HaplotypeScore=2.4200;MLEAC=2;MLEAF=0.333;MQ=39.07;MQ0=7;MQRankSum=-7.529;QD=1.61;ReadPosRankSum=0.813;SB=-2.501e+01;VQSLOD=-0.8655;culprit=QD	GT:AD:DP:GQ:PL:TP	"1|0:35,23:58:62:62,0,484:61"	"1|0:22,46:70:99:183,0,387:61"	"0|0:46,0:47:99:0,99,1162:61"
+13	83670546	.	G	A	169.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=5.301;DP=178;Dels=0.00;FS=0.000;HaplotypeScore=36.5059;MLEAC=2;MLEAF=0.333;MQ=42.20;MQ0=11;MQRankSum=-6.654;QD=1.38;ReadPosRankSum=-0.761;SB=-1.340e+02;VQSLOD=-20.4053;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|1:37,16:53:99:139,0,523:90"	"0|0:51,4:55:91:0,91,1393:90"	"1|0:58,12:70:69:69,0,1214:90"
+19	28150587	rs4404191	A	G	7419.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=209;Dels=0.00;FS=0.000;HaplotypeScore=0.2447;MLEAC=6;MLEAF=1.00;MQ=59.61;MQ0=0;QD=35.50;SB=-3.717e+03;VQSLOD=11.9901;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|1:0,70:70:99:2584,202,0:127"	"1|1:0,74:74:99:2509,193,0:127"	"1|1:0,65:65:99:2326,181,0:127"
+4	184811263	rs2871379	A	G	6376.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=211;Dels=0.00;FS=0.000;HaplotypeScore=0.5084;MLEAC=6;MLEAF=1.00;MQ=58.38;MQ0=0;QD=30.22;SB=-3.472e+03;VQSLOD=10.4879;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,78:78:99:2539,199,0:127"	"1|1:0,67:67:99:2072,165,0:127"	"1|1:0,66:66:99:1765,135,0:127"
+12	79238948	rs10778234	C	T	3719.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=8.187;DB;DP=241;Dels=0.00;FS=7.073;HaplotypeScore=0.2447;MLEAC=3;MLEAF=0.500;MQ=59.41;MQ0=0;MQRankSum=-0.381;QD=15.43;ReadPosRankSum=0.579;SB=-1.864e+03;VQSLOD=7.8136;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0/1:42,35:77:99:1049,0,1213:127"	"0/1:37,32:69:99:988,0,957:127"	"0/1:42,53:95:99:1682,0,1062:127"
+11	123470819	rs1148095	T	C	6964.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-0.850;DB;DP=242;Dels=0.00;FS=1.477;HaplotypeScore=1.3868;MLEAC=5;MLEAF=0.833;MQ=59.25;MQ0=0;MQRankSum=-1.734;QD=28.78;ReadPosRankSum=-0.749;SB=-3.242e+03;VQSLOD=8.7854;culprit=MQRankSum	GT:AD:DP:GQ:PL:TP	"1|1:0,92:92:99:3408,265,0:127"	"1|0:35,51:86:99:1520,0,1059:127"	"1|1:0,64:64:99:2036,157,0:127"
+7	152208470	rs6464236	G	C	4321.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=5.233;DB;DP=169;Dels=0.00;FS=1.635;HaplotypeScore=1.3568;MLEAC=5;MLEAF=0.833;MQ=57.18;MQ0=1;MQRankSum=1.907;QD=25.57;ReadPosRankSum=0.892;SB=-2.137e+03;VQSLOD=6.7602;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|1:1,56:57:99:1949,150,0:122"	"1|1:0,54:54:99:1557,123,0:122"	"1|0:30,28:58:99:815,0,715:122"
+16	65776985	rs72784548	T	C	3527.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=5.439;DB;DP=195;Dels=0.00;FS=1.228;HaplotypeScore=0.8795;MLEAC=4;MLEAF=0.667;MQ=58.78;MQ0=0;MQRankSum=1.630;QD=18.09;ReadPosRankSum=1.358;SB=-1.904e+03;VQSLOD=7.6763;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"1|1:0,68:68:99:2351,181,0:127"	"1|0:33,28:61:99:586,0,710:127"	"1|0:31,35:66:99:590,0,468:127"
+1	8216712	rs11121115	A	G	1540.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.917;DB;DP=131;Dels=0.00;FS=11.669;HaplotypeScore=3.3539;MLEAC=3;MLEAF=0.500;MQ=57.74;MQ0=1;MQRankSum=0.427;QD=11.76;ReadPosRankSum=-0.219;SB=-9.390e+02;VQSLOD=5.5346;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0/1:23,28:51:99:681,0,668:127"	"0/1:16,18:34:99:338,0,244:127"	"0/1:24,22:46:99:560,0,323:127"
+8	4048009	rs7007410	C	T	2713.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.954;DB;DP=197;Dels=0.00;FS=2.483;HaplotypeScore=0.7125;MLEAC=3;MLEAF=0.500;MQ=57.03;MQ0=0;MQRankSum=0.882;QD=13.77;ReadPosRankSum=-0.496;SB=-1.406e+03;VQSLOD=6.5035;culprit=FS	GT:AD:DP:GQ:PL:TP	"0/1:38,30:68:99:847,0,1168:127"	"0/1:30,30:60:99:916,0,921:127"	"0/1:32,36:69:99:989,0,882:127"
+12	12560642	rs10772559	G	T	501.28	VQSRTrancheSNP99.00to99.90	AC=4;AF=0.667;AN=6;BaseQRankSum=0.747;DB;DP=229;Dels=0.04;FS=17.409;HaplotypeScore=19.6989;MLEAC=4;MLEAF=0.667;MQ=49.37;MQ0=0;MQRankSum=-3.656;QD=2.19;ReadPosRankSum=-5.397;SB=-2.196e+03;VQSLOD=-10.1992;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"1|1:0,66:66:24:273,24,0:24"	"1|0:29,45:74:99:148,0,702:24"	"1|0:33,46:80:99:122,0,781:24"
+1	165431906	rs7528908	G	T	2381.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=6.008;DB;DP=259;Dels=0.00;FS=4.727;HaplotypeScore=0.9857;MLEAC=2;MLEAF=0.333;MQ=59.75;MQ0=0;MQRankSum=0.916;QD=14.34;ReadPosRankSum=-0.907;SB=-9.050e+02;VQSLOD=8.1270;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0|1:48,40:88:99:1142,0,1428:127"	"0|0:93,0:93:99:0,259,3166:127"	"1|0:38,40:78:99:1278,0,1075:127"
+4	141514835	rs55984232	C	T	1645.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=7.144;DB;DP=191;Dels=0.00;FS=2.756;HaplotypeScore=1.0735;MLEAC=2;MLEAF=0.333;MQ=59.26;MQ0=0;MQRankSum=0.726;QD=13.06;ReadPosRankSum=-0.789;SB=-8.550e+02;VQSLOD=8.9425;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|1:32,28:60:99:913,0,820:127"	"0|0:65,0:65:99:0,156,1886:127"	"1|0:34,32:66:99:771,0,750:127"
+9	109619207	rs4743032	A	T	3810.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-2.859;DB;DP=214;Dels=0.00;FS=10.284;HaplotypeScore=0.3222;MLEAC=3;MLEAF=0.500;MQ=59.59;MQ0=0;MQRankSum=0.557;QD=25.07;ReadPosRankSum=-0.836;SB=-2.019e+03;VQSLOD=8.1399;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|0:37,39:76:99:1185,0,1225:127"	"1|1:0,76:76:99:2625,202,0:127"	"0|0:62,0:62:99:0,156,2049:127"
+2	198567638	rs12619333	C	G	2201.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-0.028;DB;DP=240;Dels=0.00;FS=4.757;HaplotypeScore=1.3741;MLEAC=2;MLEAF=0.333;MQ=59.37;MQ0=1;MQRankSum=0.131;QD=13.42;ReadPosRankSum=0.123;SB=-1.051e+03;VQSLOD=8.1261;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|0:38,45:84:99:1298,0,1249:127"	"1|0:45,35:80:99:942,0,1493:127"	"0|0:76,0:76:99:0,196,2542:127"
+5	164600452	rs7711548	C	A	588.32	VQSRTrancheSNP99.00to99.90	AC=6;AF=1.00;AN=6;BaseQRankSum=-3.291;DB;DP=192;Dels=0.02;FS=2.319;HaplotypeScore=32.6662;MLEAC=6;MLEAF=1.00;MQ=57.55;MQ0=0;MQRankSum=1.536;QD=3.06;ReadPosRankSum=-1.533;SB=-2.085e+03;VQSLOD=-1.4325;culprit=QD	GT:AD:DP:GQ:PL:TP	"1|1:15,52:69:18:155,18,0:15"	"1|1:11,55:66:36:296,36,0:15"	"1|1:18,36:54:15:175,15,0:15"
+20	41560394	rs761027	A	G	5634.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-4.444;DB;DP=222;Dels=0.00;FS=0.829;HaplotypeScore=1.1428;MLEAC=5;MLEAF=0.833;MQ=59.60;MQ0=0;MQRankSum=0.392;QD=25.38;ReadPosRankSum=-0.064;SB=-3.048e+03;VQSLOD=10.0362;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,72:72:99:2228,187,0:127"	"1|1:0,82:82:99:2435,211,0:127"	"1|0:25,43:68:99:971,0,567:127"
+4	48922864	rs7697262	G	C	1383.23	VQSRTrancheSNP99.00to99.90	AC=6;AF=1.00;AN=6;DB;DP=100;Dels=0.00;FS=0.000;HaplotypeScore=0.0000;MLEAC=6;MLEAF=1.00;MQ=20.20;MQ0=24;QD=13.83;SB=-3.860e+02;VQSLOD=-0.3210;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|1:3,38:41:57:625,57,0:32"	"1|1:0,28:28:33:368,33,0:32"	"1|1:2,29:31:39:428,39,0:32"
+X	66290558	rs1606094	C	T	2602.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=2.169;DB;DP=213;Dels=0.00;FS=13.125;HaplotypeScore=0.0000;MLEAC=3;MLEAF=0.500;MQ=59.59;MQ0=0;MQRankSum=1.343;QD=18.86;ReadPosRankSum=2.274;SB=-1.122e+03;VQSLOD=5.9967;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|0:54,47:101:99:1381,0,1762:99"	"1|1:0,37:37:99:1266,99,0:99"	"0|0:75,0:75:99:0,205,2705:99"
+21	10750991	.	C	T	602.26	VQSRTrancheSNP99.90to100.00	AC=2;AF=0.333;AN=6;BaseQRankSum=10.103;DP=735;DS;Dels=0.00;FS=27.020;HaplotypeScore=107.2731;MLEAC=2;MLEAF=0.333;MQ=44.40;MQ0=2;MQRankSum=-14.560;QD=1.24;ReadPosRankSum=0.063;SB=-8.430e+02;VQSLOD=-100.9480;culprit=DP	GT:AD:DP:GQ:PL:TP	"1|0:164,78:243:99:357,0,5193:103"	"1|0:187,55:242:99:284,0,5252:103"	"0|0:199,50:250:99:0,103,5864:103"
\ No newline at end of file
diff --git a/testdata/picard/vcf/CEUTrio-snps-scrambled.2.vcf b/testdata/picard/vcf/CEUTrio-snps-scrambled.2.vcf
new file mode 100644
index 0000000..10d1188
--- /dev/null
+++ b/testdata/picard/vcf/CEUTrio-snps-scrambled.2.vcf
@@ -0,0 +1,406 @@
+##fileformat=VCFv4.1
+##ApplyRecalibration="analysis_type=ApplyRecalibration input_file=[] read_buffer_size=null phone_home=NO_ET gatk_key=/humgen/gsa-hpprojects/GATK/data/gatk_user_keys/gsamembers_broadinstitute.org.key read_filter=[] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta nonDeterministicRandomSeed=false downsampling_type=BY_SAMPLE downsample_to_fraction=null do [...]
+##CombineVariants="analysis_type=CombineVariants input_file=[] read_buffer_size=null phone_home=STANDARD gatk_key=null read_filter=[] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta nonDeterministicRandomSeed=false downsampling_type=BY_SAMPLE downsample_to_fraction=null downsample_to_coverage=1000 baq=OFF baqGapOpenPenalty=40.0 performanceLog=null use [...]
+##FILTER=<ID=LowQual,Description="Low quality">
+##FILTER=<ID=VQSRTrancheINDEL99.00to99.90,Description="Truth sensitivity tranche level for INDEL model at VQS Lod: -4.1718 <= x < -0.8611">
+##FILTER=<ID=VQSRTrancheINDEL99.90to100.00+,Description="Truth sensitivity tranche level for INDEL model at VQS Lod < -727.2136">
+##FILTER=<ID=VQSRTrancheINDEL99.90to100.00,Description="Truth sensitivity tranche level for INDEL model at VQS Lod: -727.2136 <= x < -4.1718">
+##FILTER=<ID=VQSRTrancheSNP99.00to99.90,Description="Truth sensitivity tranche level for SNP model at VQS Lod: -25.4561 <= x < 3.2489">
+##FILTER=<ID=VQSRTrancheSNP99.90to100.00+,Description="Truth sensitivity tranche level for SNP model at VQS Lod < -38672.7015">
+##FILTER=<ID=VQSRTrancheSNP99.90to100.00,Description="Truth sensitivity tranche level for SNP model at VQS Lod: -38672.7015 <= x < -25.4561">
+##FORMAT=<ID=AD,Number=.,Type=Integer,Description="Allelic depths for the ref and alt alleles in the order listed">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth (reads with MQ=255 or with bad mates are filtered)">
+##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##FORMAT=<ID=PL,Number=G,Type=Integer,Description="Normalized, Phred-scaled likelihoods for genotypes as defined in the VCF specification">
+##FORMAT=<ID=TP,Number=1,Type=Integer,Description="Phred score of the genotype combination and phase given that the genotypes are correct">
+##INFO=<ID=AC,Number=A,Type=Integer,Description="Allele count in genotypes, for each ALT allele, in the same order as listed">
+##INFO=<ID=AF,Number=A,Type=Float,Description="Allele Frequency, for each ALT allele, in the same order as listed">
+##INFO=<ID=AN,Number=1,Type=Integer,Description="Total number of alleles in called genotypes">
+##INFO=<ID=BaseQRankSum,Number=1,Type=Float,Description="Z-score from Wilcoxon rank sum test of Alt Vs. Ref base qualities">
+##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP Membership">
+##INFO=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth; some reads may have been filtered">
+##INFO=<ID=DS,Number=0,Type=Flag,Description="Were any of the samples downsampled?">
+##INFO=<ID=Dels,Number=1,Type=Float,Description="Fraction of Reads Containing Spanning Deletions">
+##INFO=<ID=END,Number=1,Type=Integer,Description="Stop position of the interval">
+##INFO=<ID=FS,Number=1,Type=Float,Description="Phred-scaled p-value using Fisher's exact test to detect strand bias">
+##INFO=<ID=HaplotypeScore,Number=1,Type=Float,Description="Consistency of the site with at most two segregating haplotypes">
+##INFO=<ID=InbreedingCoeff,Number=1,Type=Float,Description="Inbreeding coefficient as estimated from the genotype likelihoods per-sample when compared against the Hardy-Weinberg expectation">
+##INFO=<ID=MLEAC,Number=A,Type=Integer,Description="Maximum likelihood expectation (MLE) for the allele counts (not necessarily the same as the AC), for each ALT allele, in the same order as listed">
+##INFO=<ID=MLEAF,Number=A,Type=Float,Description="Maximum likelihood expectation (MLE) for the allele frequency (not necessarily the same as the AF), for each ALT allele, in the same order as listed">
+##INFO=<ID=MQ,Number=1,Type=Float,Description="RMS Mapping Quality">
+##INFO=<ID=MQ0,Number=1,Type=Integer,Description="Total Mapping Quality Zero Reads">
+##INFO=<ID=MQRankSum,Number=1,Type=Float,Description="Z-score From Wilcoxon rank sum test of Alt vs. Ref read mapping qualities">
+##INFO=<ID=QD,Number=1,Type=Float,Description="Variant Confidence/Quality by Depth">
+##INFO=<ID=RPA,Number=.,Type=Integer,Description="Number of times tandem repeat unit is repeated, for each allele (including reference)">
+##INFO=<ID=RU,Number=1,Type=String,Description="Tandem repeat unit (bases)">
+##INFO=<ID=ReadPosRankSum,Number=1,Type=Float,Description="Z-score from Wilcoxon rank sum test of Alt vs. Ref read position bias">
+##INFO=<ID=SB,Number=1,Type=Float,Description="Strand Bias">
+##INFO=<ID=STR,Number=0,Type=Flag,Description="Variant is a short tandem repeat">
+##INFO=<ID=VQSLOD,Number=1,Type=Float,Description="Log odds ratio of being a true variant versus being false under the trained gaussian mixture model">
+##INFO=<ID=culprit,Number=1,Type=String,Description="The annotation which was the worst performing in the Gaussian mixture model, likely the reason why the variant was filtered out">
+##INFO=<ID=set,Number=1,Type=String,Description="Source VCF for the merged record in CombineVariants">
+##PhaseByTransmission="analysis_type=PhaseByTransmission input_file=[] read_buffer_size=null phone_home=STANDARD gatk_key=null read_filter=[] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta nonDeterministicRandomSeed=false downsampling_type=BY_SAMPLE downsample_to_fraction=null downsample_to_coverage=1000 baq=OFF baqGapOpenPenalty=40.0 performanceLog= [...]
+##UnifiedGenotyper="analysis_type=UnifiedGenotyper input_file=[/humgen/gsa-hpprojects/NA12878Collection/bams/CEUTrio.HiSeq.WGS.b37.list] read_buffer_size=null phone_home=NO_ET gatk_key=/humgen/gsa-hpprojects/GATK/data/gatk_user_keys/gsamembers_broadinstitute.org.key read_filter=[] intervals=[/broad/hptmp/ami/tmp/queueScatterGather/.qlog/CEUTrio.indelcall-sg/temp_020_of_300/scatter.intervals] excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_s [...]
+##contig=<ID=1,length=249250621,assembly=b37>
+##contig=<ID=2,length=243199373,assembly=b37>
+##contig=<ID=3,length=198022430,assembly=b37>
+##contig=<ID=4,length=191154276,assembly=b37>
+##contig=<ID=5,length=180915260,assembly=b37>
+##contig=<ID=6,length=171115067,assembly=b37>
+##contig=<ID=7,length=159138663,assembly=b37>
+##contig=<ID=8,length=146364022,assembly=b37>
+##contig=<ID=9,length=141213431,assembly=b37>
+##contig=<ID=10,length=135534747,assembly=b37>
+##contig=<ID=11,length=135006516,assembly=b37>
+##contig=<ID=12,length=133851895,assembly=b37>
+##contig=<ID=13,length=115169878,assembly=b37>
+##contig=<ID=14,length=107349540,assembly=b37>
+##contig=<ID=15,length=102531392,assembly=b37>
+##contig=<ID=16,length=90354753,assembly=b37>
+##contig=<ID=17,length=81195210,assembly=b37>
+##contig=<ID=18,length=78077248,assembly=b37>
+##contig=<ID=19,length=59128983,assembly=b37>
+##contig=<ID=20,length=63025520,assembly=b37>
+##contig=<ID=21,length=48129895,assembly=b37>
+##contig=<ID=22,length=51304566,assembly=b37>
+##contig=<ID=X,length=155270560,assembly=b37>
+##contig=<ID=Y,length=59373566,assembly=b37>
+##contig=<ID=MT,length=16569,assembly=b37>
+##contig=<ID=GL000207.1,length=4262,assembly=b37>
+##contig=<ID=GL000226.1,length=15008,assembly=b37>
+##contig=<ID=GL000229.1,length=19913,assembly=b37>
+##contig=<ID=GL000231.1,length=27386,assembly=b37>
+##contig=<ID=GL000210.1,length=27682,assembly=b37>
+##contig=<ID=GL000239.1,length=33824,assembly=b37>
+##contig=<ID=GL000235.1,length=34474,assembly=b37>
+##contig=<ID=GL000201.1,length=36148,assembly=b37>
+##contig=<ID=GL000247.1,length=36422,assembly=b37>
+##contig=<ID=GL000245.1,length=36651,assembly=b37>
+##contig=<ID=GL000197.1,length=37175,assembly=b37>
+##contig=<ID=GL000203.1,length=37498,assembly=b37>
+##contig=<ID=GL000246.1,length=38154,assembly=b37>
+##contig=<ID=GL000249.1,length=38502,assembly=b37>
+##contig=<ID=GL000196.1,length=38914,assembly=b37>
+##contig=<ID=GL000248.1,length=39786,assembly=b37>
+##contig=<ID=GL000244.1,length=39929,assembly=b37>
+##contig=<ID=GL000238.1,length=39939,assembly=b37>
+##contig=<ID=GL000202.1,length=40103,assembly=b37>
+##contig=<ID=GL000234.1,length=40531,assembly=b37>
+##contig=<ID=GL000232.1,length=40652,assembly=b37>
+##contig=<ID=GL000206.1,length=41001,assembly=b37>
+##contig=<ID=GL000240.1,length=41933,assembly=b37>
+##contig=<ID=GL000236.1,length=41934,assembly=b37>
+##contig=<ID=GL000241.1,length=42152,assembly=b37>
+##contig=<ID=GL000243.1,length=43341,assembly=b37>
+##contig=<ID=GL000242.1,length=43523,assembly=b37>
+##contig=<ID=GL000230.1,length=43691,assembly=b37>
+##contig=<ID=GL000237.1,length=45867,assembly=b37>
+##contig=<ID=GL000233.1,length=45941,assembly=b37>
+##contig=<ID=GL000204.1,length=81310,assembly=b37>
+##contig=<ID=GL000198.1,length=90085,assembly=b37>
+##contig=<ID=GL000208.1,length=92689,assembly=b37>
+##contig=<ID=GL000191.1,length=106433,assembly=b37>
+##contig=<ID=GL000227.1,length=128374,assembly=b37>
+##contig=<ID=GL000228.1,length=129120,assembly=b37>
+##contig=<ID=GL000214.1,length=137718,assembly=b37>
+##contig=<ID=GL000221.1,length=155397,assembly=b37>
+##contig=<ID=GL000209.1,length=159169,assembly=b37>
+##contig=<ID=GL000218.1,length=161147,assembly=b37>
+##contig=<ID=GL000220.1,length=161802,assembly=b37>
+##contig=<ID=GL000213.1,length=164239,assembly=b37>
+##contig=<ID=GL000211.1,length=166566,assembly=b37>
+##contig=<ID=GL000199.1,length=169874,assembly=b37>
+##contig=<ID=GL000217.1,length=172149,assembly=b37>
+##contig=<ID=GL000216.1,length=172294,assembly=b37>
+##contig=<ID=GL000215.1,length=172545,assembly=b37>
+##contig=<ID=GL000205.1,length=174588,assembly=b37>
+##contig=<ID=GL000219.1,length=179198,assembly=b37>
+##contig=<ID=GL000224.1,length=179693,assembly=b37>
+##contig=<ID=GL000223.1,length=180455,assembly=b37>
+##contig=<ID=GL000195.1,length=182896,assembly=b37>
+##contig=<ID=GL000212.1,length=186858,assembly=b37>
+##contig=<ID=GL000222.1,length=186861,assembly=b37>
+##contig=<ID=GL000200.1,length=187035,assembly=b37>
+##contig=<ID=GL000193.1,length=189789,assembly=b37>
+##contig=<ID=GL000194.1,length=191469,assembly=b37>
+##contig=<ID=GL000225.1,length=211173,assembly=b37>
+##contig=<ID=GL000192.1,length=547496,assembly=b37>
+##reference=file:///humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta
+##source=PhaseByTransmission
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	NA12878	NA12891	NA12892
+18	75204349	rs9948476	C	T	646.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=1.965;DB;DP=185;Dels=0.00;FS=0.817;HaplotypeScore=1.3995;MLEAC=1;MLEAF=0.167;MQ=59.35;MQ0=0;MQRankSum=0.276;QD=10.95;ReadPosRankSum=-0.158;SB=-3.210e+02;VQSLOD=9.3748;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|0:65,0:66:99:0,168,2026:127"	"0|0:60,0:60:99:0,147,1768:127"	"0|1:34,25:59:99:681,0,893:127"
+13	46407442	rs11147990	G	A	2668.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=1.227;DB;DP=199;Dels=0.00;FS=0.530;HaplotypeScore=1.8025;MLEAC=3;MLEAF=0.500;MQ=58.99;MQ0=0;MQRankSum=0.023;QD=20.21;ReadPosRankSum=-0.452;SB=-1.651e+03;VQSLOD=9.2006;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"0|1:36,33:69:99:994,0,1056:127"	"0|0:67,0:67:99:0,141,1821:127"	"1|1:0,63:63:99:1719,135,0:127"
+15	42065422	rs2925337	A	C	5231.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=176;Dels=0.00;FS=0.000;HaplotypeScore=0.0000;MLEAC=6;MLEAF=1.00;MQ=59.68;MQ0=0;QD=29.72;SB=-3.112e+03;VQSLOD=11.0322;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|1:0,54:54:99:1770,138,0:127"	"1|1:0,68:68:99:1750,138,0:127"	"1|1:0,54:54:99:1711,132,0:127"
+6	35346891	.	C	T	483.26	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=-6.402;DP=205;Dels=0.02;FS=214.154;HaplotypeScore=4.5086;MLEAC=3;MLEAF=0.500;MQ=51.07;MQ0=1;MQRankSum=-2.038;QD=2.36;ReadPosRankSum=-2.250;SB=-1.065e-02;VQSLOD=-116.9542;culprit=FS	GT:AD:DP:GQ:PL:TP	"0/1:48,31:79:99:257,0,635:80"	"0/1:40,22:62:99:185,0,308:80"	"0/1:44,16:60:80:80,0,534:80"
+17	5764764	rs2309483	C	G	4071.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=4.237;DB;DP=154;Dels=0.00;FS=0.000;HaplotypeScore=4.4102;MLEAC=5;MLEAF=0.833;MQ=58.88;MQ0=0;MQRankSum=0.456;QD=26.44;ReadPosRankSum=0.385;SB=-1.791e+03;VQSLOD=6.9458;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|1:0,61:62:99:2049,165,0:107"	"1|0:23,26:49:99:648,0,482:107"	"1|1:0,43:43:99:1374,108,0:107"
+12	48120010	rs3829317	A	C	4015.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=1.659;DB;DP=162;Dels=0.00;FS=1.828;HaplotypeScore=2.1844;MLEAC=5;MLEAF=0.833;MQ=59.48;MQ0=0;MQRankSum=0.154;QD=24.78;ReadPosRankSum=0.482;SB=-2.240e+03;VQSLOD=8.1337;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,63:63:99:2024,163,0:110"	"1|0:24,27:51:99:550,0,540:110"	"1|1:0,48:48:99:1441,111,0:110"
+4	6333669	rs35678078	G	T	2186.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=1.220;DB;DP=198;Dels=0.00;FS=1.754;HaplotypeScore=0.7779;MLEAC=3;MLEAF=0.500;MQ=59.27;MQ0=0;MQRankSum=-0.256;QD=11.04;ReadPosRankSum=-0.469;SB=-1.621e+03;VQSLOD=9.4086;culprit=QD	GT:AD:DP:GQ:PL:TP	"0/1:33,34:67:99:875,0,848:127"	"0/1:27,32:59:99:602,0,534:127"	"0/1:33,38:72:99:748,0,676:127"
+2	18016237	rs12710649	A	T	3950.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-0.037;DB;DP=250;Dels=0.00;FS=2.158;HaplotypeScore=2.0804;MLEAC=3;MLEAF=0.500;MQ=59.14;MQ0=0;MQRankSum=0.494;QD=15.80;ReadPosRankSum=0.705;SB=-2.142e+03;VQSLOD=8.1407;culprit=FS	GT:AD:DP:GQ:PL:TP	"0/1:46,59:105:99:1733,0,1505:127"	"0/1:39,37:76:99:925,0,1164:127"	"0/1:24,44:68:99:1292,0,628:127"
+3	1609737	rs2648459	A	G	6492.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=187;Dels=0.00;FS=0.000;HaplotypeScore=1.1795;MLEAC=6;MLEAF=1.00;MQ=59.90;MQ0=0;QD=34.72;SB=-3.251e+03;VQSLOD=11.5033;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,53:53:99:1943,150,0:127"	"1|1:0,62:62:99:2206,172,0:127"	"1|1:0,72:72:99:2343,181,0:127"
+5	29069162	rs658439	G	A	499.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=1.981;DB;DP=199;Dels=0.00;FS=11.196;HaplotypeScore=1.6038;MLEAC=1;MLEAF=0.167;MQ=52.70;MQ0=0;MQRankSum=-0.608;QD=9.42;ReadPosRankSum=-1.103;SB=-2.310e+02;VQSLOD=4.0183;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|0:86,0:86:99:0,211,2509:110"	"0|0:60,0:60:99:0,111,1240:110"	"0|1:30,23:53:99:534,0,523:110"
+2	36994439	rs11124542	A	C	1302.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-7.406;DB;DP=191;Dels=0.00;FS=3.335;HaplotypeScore=2.1785;MLEAC=3;MLEAF=0.500;MQ=58.93;MQ0=0;MQRankSum=-0.725;QD=6.82;ReadPosRankSum=0.302;SB=-1.006e+03;VQSLOD=7.9479;culprit=QD	GT:AD:DP:GQ:PL:TP	"0/1:32,28:60:99:710,0,1044:127"	"0/1:34,25:59:99:309,0,772:127"	"0/1:45,27:72:99:322,0,1096:127"
+4	57135985	rs1715504	G	A	1213.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=3.549;DB;DP=173;Dels=0.00;FS=4.099;HaplotypeScore=1.6305;MLEAC=2;MLEAF=0.333;MQ=58.44;MQ0=0;MQRankSum=-1.006;QD=10.28;ReadPosRankSum=-0.933;SB=-4.500e+02;VQSLOD=7.4115;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|0:54,0:55:99:0,135,1546:127"	"0|1:30,23:54:99:563,0,608:127"	"0|1:35,28:64:99:689,0,562:127"
+17	66991216	rs61697543	T	C	738.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-4.530;DB;DP=252;Dels=0.00;FS=1.490;HaplotypeScore=1.7074;MLEAC=1;MLEAF=0.167;MQ=59.36;MQ0=0;MQRankSum=0.771;QD=10.86;ReadPosRankSum=-0.724;SB=-3.930e+02;VQSLOD=8.8864;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|0:95,0:95:99:0,268,3511:127"	"0|0:89,0:89:99:0,235,3058:127"	"0|1:33,35:68:99:773,0,965:127"
+5	20435939	rs12697584	A	C	2286.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-5.396;DB;DP=246;Dels=0.00;FS=4.681;HaplotypeScore=0.8744;MLEAC=2;MLEAF=0.333;MQ=59.74;MQ0=0;MQRankSum=-0.850;QD=14.20;ReadPosRankSum=0.391;SB=-1.305e+03;VQSLOD=8.1327;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0|0:85,0:85:99:0,241,3183:127"	"0|1:41,37:78:99:1062,0,1304:127"	"0|1:39,44:83:99:1263,0,1222:127"
+11	26026566	rs7942277	T	C	5414.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=176;Dels=0.00;FS=0.000;HaplotypeScore=0.2447;MLEAC=6;MLEAF=1.00;MQ=58.89;MQ0=0;QD=30.76;SB=-2.812e+03;VQSLOD=11.0501;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|1:0,53:53:99:1707,132,0:122"	"1|1:0,53:53:99:1581,123,0:122"	"1|1:0,70:70:99:2126,163,0:122"
+9	2072356	rs4741641	T	G	2054.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-7.235;DB;DP=243;Dels=0.00;FS=0.000;HaplotypeScore=2.2089;MLEAC=2;MLEAF=0.333;MQ=59.64;MQ0=0;MQRankSum=1.166;QD=13.00;ReadPosRankSum=-0.475;SB=-1.004e+03;VQSLOD=9.0206;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|1:49,45:94:99:1245,0,1615:127"	"0|0:85,0:85:99:0,217,2818:127"	"1|0:32,32:64:99:848,0,936:127"
+20	51353834	rs241795	G	A	6115.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=7.909;DB;DP=268;Dels=0.00;FS=0.000;HaplotypeScore=0.2447;MLEAC=4;MLEAF=0.667;MQ=59.38;MQ0=0;MQRankSum=-0.518;QD=22.82;ReadPosRankSum=-0.253;SB=-3.328e+03;VQSLOD=8.3999;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|0:46,54:100:99:1663,0,1247:127"	"1|1:0,91:91:99:3189,247,0:127"	"0|1:36,41:77:99:1263,0,901:127"
+9	78741390	rs7049138	G	A	1797.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=6.235;DB;DP=168;Dels=0.00;FS=4.003;HaplotypeScore=1.0858;MLEAC=3;MLEAF=0.500;MQ=55.32;MQ0=2;MQRankSum=-1.673;QD=16.34;ReadPosRankSum=-0.626;SB=-7.740e+02;VQSLOD=5.1915;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|0:37,33:70:99:828,0,918:80"	"1|1:0,40:40:81:1014,81,0:80"	"0|0:58,0:58:99:0,129,1403:80"
+1	204945934	rs6657372	A	G	1311.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-6.582;DB;DP=126;Dels=0.00;FS=0.000;HaplotypeScore=2.7088;MLEAC=3;MLEAF=0.500;MQ=58.78;MQ0=0;MQRankSum=0.480;QD=15.43;ReadPosRankSum=1.284;SB=-6.370e+02;VQSLOD=7.8448;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|1:22,28:50:99:629,0,675:68"	"0|0:40,0:41:84:0,84,1057:68"	"1|1:0,35:35:69:727,69,0:68"
+GL000215.1	142616	.	T	C	976.25	VQSRTrancheSNP99.00to99.90	AC=6;AF=1.00;AN=6;DP=80;Dels=0.00;FS=0.000;HaplotypeScore=0.0000;MLEAC=6;MLEAF=1.00;MQ=21.04;MQ0=42;QD=12.20;SB=-8.001e+01;VQSLOD=-0.4104;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|1:0,33:33:42:516,42,0:19"	"1|1:0,21:21:24:272,24,0:19"	"1|1:0,26:26:21:226,21,0:19"
+X	95868251	.	G	A	108.36	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=1.436;DP=90;Dels=0.00;FS=4.210;HaplotypeScore=4.9383;MLEAC=2;MLEAF=0.333;MQ=44.60;MQ0=8;MQRankSum=-2.939;QD=1.55;ReadPosRankSum=2.865;SB=-7.411e+01;VQSLOD=-3.2422;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|1:29,9:38:99:126,0,251:23"	"0|0:20,0:20:24:0,24,266:23"	"1|0:27,5:32:21:21,0,97:23"
+12	122942070	rs10744217	A	G	1812.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.353;DB;DP=179;Dels=0.00;FS=0.663;HaplotypeScore=1.4184;MLEAC=3;MLEAF=0.500;MQ=58.69;MQ0=0;MQRankSum=0.992;QD=15.10;ReadPosRankSum=1.081;SB=-5.860e+02;VQSLOD=8.4750;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|0:35,36:71:99:762,0,1100:92"	"1|1:0,48:49:93:1095,93,0:92"	"0|0:59,0:59:99:0,120,1560:92"
+2	64848970	rs35473866	T	C	655.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=0.263;DB;DP=218;Dels=0.00;FS=8.014;HaplotypeScore=2.5836;MLEAC=1;MLEAF=0.167;MQ=58.36;MQ0=0;MQRankSum=-0.168;QD=8.29;ReadPosRankSum=-0.307;SB=-3.420e+02;VQSLOD=5.9179;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|0:78,0:78:99:0,208,2627:127"	"0|0:61,0:61:99:0,135,1725:127"	"0|1:35,42:79:99:690,0,1042:127"
+5	154441640	rs467330	A	C	1133.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.127;DB;DP=235;Dels=0.00;FS=2.103;HaplotypeScore=1.1893;MLEAC=1;MLEAF=0.167;MQ=59.65;MQ0=0;MQRankSum=0.766;QD=12.59;ReadPosRankSum=-0.535;SB=-6.500e+02;VQSLOD=9.8335;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0|0:61,0:61:99:0,172,2172:127"	"0|1:45,45:90:99:1168,0,1368:127"	"0|0:82,1:84:99:0,226,2825:127"
+10	29082980	.	G	C	42.53	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=-1.216;DP=107;Dels=0.00;FS=60.979;HaplotypeScore=1.0911;MLEAC=3;MLEAF=0.500;MQ=55.72;MQ0=0;MQRankSum=-0.633;QD=0.40;ReadPosRankSum=-4.307;SB=-2.798e-01;VQSLOD=-11.1718;culprit=FS	GT:AD:DP:GQ:PL:TP	"0/1:30,12:43:12:12,0,757:12"	"0/1:19,11:30:35:35,0,429:12"	"0/1:25,9:34:34:34,0,388:12"
+7	62232046	.	C	T	1155.24	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.643;DP=230;Dels=0.00;FS=6.304;HaplotypeScore=12.7679;MLEAC=1;MLEAF=0.167;MQ=58.61;MQ0=3;MQRankSum=-0.697;QD=15.20;ReadPosRankSum=-1.202;SB=-4.440e+02;VQSLOD=2.5725;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|0:77,1:78:99:0,217,2824:127"	"0|0:76,0:76:99:0,202,2604:127"	"0|1:34,42:76:99:1190,0,994:127"
+13	65275154	rs359338	G	A	1963.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.733;DB;DP=173;Dels=0.00;FS=3.628;HaplotypeScore=0.9480;MLEAC=2;MLEAF=0.333;MQ=59.49;MQ0=0;MQRankSum=-0.676;QD=14.54;ReadPosRankSum=0.399;SB=-1.054e+03;VQSLOD=8.4489;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|0:31,28:59:99:883,0,990:108"	"1|0:39,37:76:99:1119,0,1112:108"	"0|0:38,0:38:99:0,108,1390:108"
+10	19567676	rs61458006	G	T	599.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.610;DB;DP=195;Dels=0.00;FS=0.844;HaplotypeScore=0.8795;MLEAC=1;MLEAF=0.167;MQ=59.57;MQ0=0;MQRankSum=-0.191;QD=11.31;ReadPosRankSum=-1.635;SB=-2.780e+02;VQSLOD=9.3606;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|0:75,0:75:99:0,208,2645:127"	"0|1:30,23:53:99:634,0,915:127"	"0|0:67,0:67:99:0,199,2540:127"
+4	39062189	rs2566127	T	C	2641.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-2.019;DB;DP=201;Dels=0.00;FS=1.101;HaplotypeScore=2.8834;MLEAC=3;MLEAF=0.500;MQ=58.96;MQ0=0;MQRankSum=0.932;QD=13.14;ReadPosRankSum=-0.596;SB=-1.401e+03;VQSLOD=7.9734;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0/1:35,29:64:99:880,0,1168:127"	"0/1:37,32:70:99:796,0,1021:127"	"0/1:31,36:67:99:1004,0,877:127"
+9	109619207	rs4743032	A	T	3810.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-2.859;DB;DP=214;Dels=0.00;FS=10.284;HaplotypeScore=0.3222;MLEAC=3;MLEAF=0.500;MQ=59.59;MQ0=0;MQRankSum=0.557;QD=25.07;ReadPosRankSum=-0.836;SB=-2.019e+03;VQSLOD=8.1399;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|0:37,39:76:99:1185,0,1225:127"	"1|1:0,76:76:99:2625,202,0:127"	"0|0:62,0:62:99:0,156,2049:127"
+2	177175707	rs7355385	A	G	2590.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-0.866;DB;DP=206;Dels=0.00;FS=14.872;HaplotypeScore=0.3111;MLEAC=3;MLEAF=0.500;MQ=59.12;MQ0=0;MQRankSum=-0.937;QD=20.40;ReadPosRankSum=-0.287;SB=-8.970e+02;VQSLOD=6.8179;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|0:33,32:65:99:856,0,1069:127"	"1|1:0,62:62:99:1779,150,0:127"	"0|0:78,1:79:99:0,193,2411:127"
+14	20313371	rs10137604	A	C	2154.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-4.894;DB;DP=255;Dels=0.00;FS=0.000;HaplotypeScore=2.0503;MLEAC=2;MLEAF=0.333;MQ=56.32;MQ0=1;MQRankSum=1.608;QD=13.72;ReadPosRankSum=0.126;SB=-1.124e+03;VQSLOD=5.6223;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|1:40,48:88:99:1426,0,1229:127"	"0|0:98,0:98:99:0,268,3527:127"	"1|0:43,26:69:99:767,0,1284:127"
+4	21819269	rs4285068	C	G	7252.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=216;Dels=0.00;FS=0.000;HaplotypeScore=0.6511;MLEAC=6;MLEAF=1.00;MQ=55.91;MQ0=0;QD=33.57;SB=-3.284e+03;VQSLOD=8.5427;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,83:83:99:2859,226,0:127"	"1|1:0,73:73:99:2413,193,0:127"	"1|1:0,59:59:99:1980,156,0:127"
+8	123499998	rs9693135	T	C	926.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-7.820;DB;DP=207;Dels=0.00;FS=2.678;HaplotypeScore=1.2574;MLEAC=2;MLEAF=0.333;MQ=56.08;MQ0=0;MQRankSum=-2.729;QD=6.34;ReadPosRankSum=-0.269;SB=-8.230e+02;VQSLOD=4.3016;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|0:61,0:61:99:0,172,2301:127"	"0|1:37,35:72:99:622,0,769:127"	"0|1:48,26:74:99:343,0,1280:127"
+19	11730690	rs4804613	C	T	2578.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=5.057;DB;DP=197;Dels=0.00;FS=0.529;HaplotypeScore=0.0000;MLEAC=3;MLEAF=0.500;MQ=59.36;MQ0=0;MQRankSum=0.416;QD=13.09;ReadPosRankSum=-0.554;SB=-1.389e+03;VQSLOD=9.3908;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0/1:21,26:47:99:586,0,623:127"	"0/1:42,45:87:99:1192,0,1055:127"	"0/1:32,30:63:99:839,0,932:127"
+2	96514373	rs10186946	C	T	206.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=4.485;DB;DP=175;Dels=0.00;FS=2.805;HaplotypeScore=2.4200;MLEAC=2;MLEAF=0.333;MQ=39.07;MQ0=7;MQRankSum=-7.529;QD=1.61;ReadPosRankSum=0.813;SB=-2.501e+01;VQSLOD=-0.8655;culprit=QD	GT:AD:DP:GQ:PL:TP	"1|0:35,23:58:62:62,0,484:61"	"1|0:22,46:70:99:183,0,387:61"	"0|0:46,0:47:99:0,99,1162:61"
+19	37226152	rs3108217	G	C	2076.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=0.215;DB;DP=145;Dels=0.00;FS=2.159;HaplotypeScore=0.5869;MLEAC=4;MLEAF=0.667;MQ=58.59;MQ0=0;MQRankSum=1.160;QD=14.32;ReadPosRankSum=-0.725;SB=-1.027e+03;VQSLOD=7.4915;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|0:25,30:55:99:789,0,709:63"	"1|1:0,29:29:63:772,63,0:63"	"0|1:35,25:61:99:557,0,789:63"
+Y	59024923	.	A	T	1977.26	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=1.838;DP=745;DS;Dels=0.00;FS=0.367;HaplotypeScore=8.2957;MLEAC=3;MLEAF=0.500;MQ=43.53;MQ0=19;MQRankSum=2.499;QD=2.65;ReadPosRankSum=0.098;SB=-9.720e+02;VQSLOD=-36.7578;culprit=DP	GT:AD:DP:GQ:PL:TP	"0/1:208,42:250:99:730,0,6428:127"	"0/1:210,35:245:99:588,0,6218:127"	"0/1:208,42:250:99:698,0,6060:127"
+13	109990322	rs7328109	T	C	7198.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-2.487;DB;DP=245;Dels=0.00;FS=5.887;HaplotypeScore=1.8793;MLEAC=5;MLEAF=0.833;MQ=59.60;MQ0=0;MQRankSum=-0.236;QD=29.38;ReadPosRankSum=0.136;SB=-3.593e+03;VQSLOD=8.8925;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,79:79:99:2825,220,0:127"	"1|0:33,54:87:99:1591,0,933:127"	"1|1:0,79:79:99:2782,214,0:127"
+2	209758643	rs12992166	C	T	1534.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=6.178;DB;DP=163;Dels=0.00;FS=8.813;HaplotypeScore=2.3636;MLEAC=2;MLEAF=0.333;MQ=58.93;MQ0=0;MQRankSum=1.988;QD=12.08;ReadPosRankSum=1.075;SB=-4.720e+02;VQSLOD=6.8226;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|0:35,22:59:99:610,0,886:93"	"1|0:32,36:68:99:963,0,797:93"	"0|0:36,0:36:93:0,93,1058:93"
+2	117966808	rs333847	C	T	9037.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=269;Dels=0.00;FS=0.000;HaplotypeScore=3.7032;MLEAC=6;MLEAF=1.00;MQ=58.21;MQ0=0;QD=33.59;SB=-4.673e+03;VQSLOD=7.0546;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|1:0,78:78:99:2652,205,0:127"	"1|1:0,101:101:99:3158,247,0:127"	"1|1:0,89:90:99:3227,250,0:127"
+7	38984187	rs118081099	A	C	569.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-0.110;DB;DP=182;Dels=0.00;FS=6.196;HaplotypeScore=0.5533;MLEAC=1;MLEAF=0.167;MQ=54.22;MQ0=0;MQRankSum=1.675;QD=9.33;ReadPosRankSum=1.162;SB=-1.260e+02;VQSLOD=4.8877;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|0:72,0:72:99:0,196,2446:127"	"0|1:38,23:61:99:604,0,1196:127"	"0|0:48,1:49:99:0,138,1711:127"
+4	71449060	rs60358213	G	A	2269.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=5.704;DB;DP=227;Dels=0.00;FS=13.048;HaplotypeScore=20.1360;MLEAC=2;MLEAF=0.333;MQ=55.35;MQ0=0;MQRankSum=0.477;QD=13.19;ReadPosRankSum=2.295;SB=-8.910e+02;VQSLOD=1.8937;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|0:60,40:100:99:1221,0,1476:127"	"1|0:37,35:72:99:1087,0,987:127"	"0|0:53,1:54:99:0,157,2026:127"
+8	14463368	rs1355302	T	A	2523.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=6.793;DB;DP=236;Dels=0.00;FS=3.776;HaplotypeScore=0.3245;MLEAC=2;MLEAF=0.333;MQ=59.14;MQ0=0;MQRankSum=-0.381;QD=15.97;ReadPosRankSum=-0.045;SB=-1.421e+03;VQSLOD=7.6920;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|1:36,43:79:99:1332,0,1176:127"	"0|0:78,0:78:99:0,214,2749:127"	"1|0:35,44:79:99:1230,0,1162:127"
+6	18687376	rs9383429	A	T	1162.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.746;DB;DP=232;Dels=0.00;FS=0.638;HaplotypeScore=0.2774;MLEAC=1;MLEAF=0.167;MQ=59.42;MQ0=0;MQRankSum=-0.733;QD=15.71;ReadPosRankSum=-0.146;SB=-6.490e+02;VQSLOD=9.4317;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|0:82,0:82:99:0,241,3181:127"	"0|0:76,0:76:99:0,217,2832:127"	"0|1:33,41:74:99:1197,0,1008:127"
+3	128140891	rs73201490	C	T	1315.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=5.394;DB;DP=142;Dels=0.00;FS=0.667;HaplotypeScore=3.4886;MLEAC=2;MLEAF=0.333;MQ=58.69;MQ0=0;MQRankSum=1.733;QD=14.30;ReadPosRankSum=0.758;SB=-6.400e+02;VQSLOD=6.7020;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|1:29,24:53:99:636,0,670:104"	"0|0:50,0:50:99:0,105,1188:104"	"1|0:12,27:39:99:718,0,250:104"
+11	10741836	rs72853043	G	A	175.24	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=0.127;DB;DP=174;Dels=0.00;FS=7.087;HaplotypeScore=7.4618;MLEAC=1;MLEAF=0.167;MQ=55.72;MQ0=1;MQRankSum=-1.291;QD=3.44;ReadPosRankSum=-1.185;SB=-2.220e+02;VQSLOD=1.6095;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|0:78,0:78:99:0,105,1278:65"	"0|0:42,0:45:66:0,66,802:65"	"0|1:21,29:51:99:210,0,469:65"
+10	85258657	rs4454662	C	A	7638.01	PASS	AC=6;AF=1.00;AN=6;BaseQRankSum=1.716;DB;DP=223;Dels=0.00;FS=4.523;HaplotypeScore=1.1326;MLEAC=6;MLEAF=1.00;MQ=58.32;MQ0=0;MQRankSum=-1.230;QD=34.25;ReadPosRankSum=1.152;SB=-2.841e+03;VQSLOD=7.6461;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:1,64:65:99:2156,169,0:127"	"1|1:0,89:89:99:2982,238,0:127"	"1|1:0,69:69:99:2500,196,0:127"
+17	55158811	rs7217371	G	A	2849.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=8.616;DB;DP=206;Dels=0.00;FS=0.511;HaplotypeScore=1.0970;MLEAC=3;MLEAF=0.500;MQ=59.66;MQ0=0;MQRankSum=0.103;QD=13.83;ReadPosRankSum=0.958;SB=-1.448e+03;VQSLOD=9.9440;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0/1:40,31:72:99:982,0,1147:127"	"0/1:35,40:75:99:1236,0,984:127"	"0/1:32,27:59:99:670,0,882:127"
+17	14096866	.	C	T	489.26	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=4.537;DP=181;Dels=0.00;FS=33.896;HaplotypeScore=1.0782;MLEAC=3;MLEAF=0.500;MQ=24.52;MQ0=71;MQRankSum=0.353;QD=2.70;ReadPosRankSum=0.385;SB=-1.450e+02;VQSLOD=-6.2174;culprit=QD	GT:AD:DP:GQ:PL:TP	"0/1:48,17:66:99:228,0,822:63"	"0/1:42,16:58:99:237,0,389:63"	"0/1:44,13:57:63:63,0,523:63"
+5	58243302	rs457566	A	C	6237.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-1.663;DB;DP=233;Dels=0.00;FS=3.429;HaplotypeScore=0.8859;MLEAC=5;MLEAF=0.833;MQ=59.70;MQ0=0;MQRankSum=-0.232;QD=26.77;ReadPosRankSum=0.957;SB=-2.566e+03;VQSLOD=9.3537;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|1:0,87:87:99:2923,229,0:127"	"1|0:36,50:86:99:1429,0,1006:127"	"1|1:0,60:60:99:1885,147,0:127"
+6	154006585	rs7752561	G	A	919.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.323;DB;DP=223;Dels=0.00;FS=0.000;HaplotypeScore=0.8254;MLEAC=1;MLEAF=0.167;MQ=59.35;MQ0=0;MQRankSum=-0.749;QD=10.45;ReadPosRankSum=-0.155;SB=-5.260e+02;VQSLOD=8.8368;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|0:70,0:70:99:0,202,2601:127"	"0|1:51,37:88:99:954,0,1475:127"	"0|0:65,0:65:99:0,175,2269:127"
+X	66290558	rs1606094	C	T	2602.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=2.169;DB;DP=213;Dels=0.00;FS=13.125;HaplotypeScore=0.0000;MLEAC=3;MLEAF=0.500;MQ=59.59;MQ0=0;MQRankSum=1.343;QD=18.86;ReadPosRankSum=2.274;SB=-1.122e+03;VQSLOD=5.9967;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|0:54,47:101:99:1381,0,1762:99"	"1|1:0,37:37:99:1266,99,0:99"	"0|0:75,0:75:99:0,205,2705:99"
+8	90278211	rs11998540	A	T	357.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-1.457;DB;DP=69;Dels=0.00;FS=1.289;HaplotypeScore=0.0000;MLEAC=2;MLEAF=0.333;MQ=58.96;MQ0=0;MQRankSum=1.415;QD=8.12;ReadPosRankSum=1.258;SB=-9.501e+01;VQSLOD=5.9584;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|1:12,7:19:99:185,0,416:60"	"0|0:25,0:25:60:0,60,805:60"	"1|0:16,9:25:99:211,0,500:60"
+4	82427976	rs6841516	G	A	561.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.022;DB;DP=166;Dels=0.00;FS=0.000;HaplotypeScore=1.4715;MLEAC=1;MLEAF=0.167;MQ=59.56;MQ0=0;MQRankSum=-1.555;QD=11.00;ReadPosRankSum=0.016;SB=-3.880e+02;VQSLOD=8.0989;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|0:51,0:51:99:0,132,1705:127"	"0|1:22,29:51:99:596,0,483:127"	"0|0:64,0:64:99:0,135,1755:127"
+3	48757773	rs61137521	A	G	3103.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-0.794;DB;DP=172;Dels=0.00;FS=0.000;HaplotypeScore=1.8954;MLEAC=4;MLEAF=0.667;MQ=59.34;MQ0=0;MQRankSum=-0.693;QD=18.04;ReadPosRankSum=-1.667;SB=-1.874e+03;VQSLOD=7.9241;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,50:51:99:1723,141,0:127"	"1|0:31,34:65:99:745,0,814:127"	"1|0:24,32:56:99:677,0,603:127"
+16	30509723	rs7193693	A	G	497.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-4.054;DB;DP=167;Dels=0.00;FS=0.000;HaplotypeScore=1.1605;MLEAC=1;MLEAF=0.167;MQ=57.89;MQ0=0;MQRankSum=-0.545;QD=9.38;ReadPosRankSum=0.541;SB=-2.410e+02;VQSLOD=8.4265;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|0:57,0:57:99:0,153,2009:101"	"0|0:57,0:57:99:0,102,1304:101"	"0|1:26,27:53:99:532,0,526:101"
+3	158557110	rs34445802	G	A	2374.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.805;DB;DP=237;Dels=0.00;FS=1.025;HaplotypeScore=1.6572;MLEAC=2;MLEAF=0.333;MQ=57.48;MQ0=0;MQRankSum=0.558;QD=14.05;ReadPosRankSum=-1.147;SB=-1.505e+03;VQSLOD=7.1338;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|0:43,56:99:99:1624,0,1344:127"	"1|0:33,37:70:99:789,0,916:127"	"0|0:68,0:68:99:0,156,2014:127"
+12	130522866	rs1613499	C	T	3975.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=130;Dels=0.00;FS=0.000;HaplotypeScore=0.6332;MLEAC=6;MLEAF=1.00;MQ=59.11;MQ0=0;QD=30.58;SB=-1.386e+03;VQSLOD=10.2250;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,57:57:99:1939,144,0:73"	"1|1:0,34:34:75:990,75,0:73"	"1|1:0,39:39:78:1046,78,0:73"
+3	99106655	rs2623376	A	G	1093.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.490;DB;DP=191;Dels=0.00;FS=2.283;HaplotypeScore=0.6267;MLEAC=2;MLEAF=0.333;MQ=59.76;MQ0=0;MQRankSum=-1.141;QD=9.51;ReadPosRankSum=0.079;SB=-5.610e+02;VQSLOD=8.1455;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|1:30,22:52:99:653,0,970:127"	"0|0:76,0:76:99:0,193,2462:127"	"1|0:44,19:63:99:479,0,1261:127"
+13	37484693	rs1571317	T	C	971.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.315;DB;DP=229;Dels=0.00;FS=3.052;HaplotypeScore=0.6603;MLEAC=1;MLEAF=0.167;MQ=58.51;MQ0=0;MQRankSum=1.885;QD=12.78;ReadPosRankSum=-0.343;SB=-5.750e+02;VQSLOD=7.3064;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|0:94,0:94:99:0,253,3258:127"	"0|1:35,41:76:99:1006,0,924:127"	"0|0:59,0:59:99:0,147,1872:127"
+2	9240279	rs56249990	A	G	3978.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=1.695;DB;DP=213;Dels=0.00;FS=7.834;HaplotypeScore=1.1897;MLEAC=3;MLEAF=0.500;MQ=59.40;MQ0=0;MQRankSum=0.143;QD=27.25;ReadPosRankSum=-0.097;SB=-1.991e+03;VQSLOD=9.1447;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|1:33,42:75:99:1400,0,1031:127"	"0|0:67,0:67:99:0,178,2277:127"	"1|1:0,71:71:99:2578,199,0:127"
+14	87263523	rs2542229	A	C	8104.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=239;Dels=0.00;FS=0.000;HaplotypeScore=0.6305;MLEAC=6;MLEAF=1.00;MQ=59.17;MQ0=0;QD=33.91;SB=-4.393e+03;VQSLOD=11.3001;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,77:77:99:2810,214,0:127"	"1|1:0,85:85:99:2877,223,0:127"	"1|1:0,77:77:99:2417,187,0:127"
+Y	13265732	.	C	T	356.72	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=2.823;DP=142;Dels=0.00;FS=7.941;HaplotypeScore=19.8229;MLEAC=2;MLEAF=0.333;MQ=38.22;MQ0=11;MQRankSum=-2.145;QD=5.10;ReadPosRankSum=1.491;SB=-1.466e+00;VQSLOD=-14.4273;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0|1:35,15:50:99:327,0,624:5"	"0|0:65,7:72:4:0,4,1831:5"	"1|0:15,5:20:67:67,0,227:5"
+7	152208470	rs6464236	G	C	4321.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=5.233;DB;DP=169;Dels=0.00;FS=1.635;HaplotypeScore=1.3568;MLEAC=5;MLEAF=0.833;MQ=57.18;MQ0=1;MQRankSum=1.907;QD=25.57;ReadPosRankSum=0.892;SB=-2.137e+03;VQSLOD=6.7602;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|1:1,56:57:99:1949,150,0:122"	"1|1:0,54:54:99:1557,123,0:122"	"1|0:30,28:58:99:815,0,715:122"
+11	35980461	rs263087	A	T	3494.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-0.701;DB;DP=186;Dels=0.00;FS=0.000;HaplotypeScore=2.9570;MLEAC=4;MLEAF=0.667;MQ=59.34;MQ0=0;MQRankSum=0.836;QD=18.79;ReadPosRankSum=0.007;SB=-1.535e+03;VQSLOD=7.6407;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|1:36,35:71:99:1001,0,1165:127"	"0|1:30,26:56:99:710,0,796:127"	"1|1:0,59:59:99:1783,144,0:127"
+20	21523349	rs73127889	A	G	2286.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-6.469;DB;DP=253;Dels=0.00;FS=3.735;HaplotypeScore=1.5402;MLEAC=2;MLEAF=0.333;MQ=59.31;MQ0=0;MQRankSum=0.821;QD=13.69;ReadPosRankSum=1.510;SB=-8.640e+02;VQSLOD=7.8358;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"0|1:44,48:92:99:1319,0,1356:127"	"0|0:86,0:86:99:0,235,2994:127"	"1|0:37,38:75:99:1006,0,1111:127"
+5	93119893	rs6879620	G	A	4262.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=4.930;DB;DP=239;Dels=0.00;FS=1.050;HaplotypeScore=2.1583;MLEAC=4;MLEAF=0.667;MQ=59.81;MQ0=0;MQRankSum=0.891;QD=17.83;ReadPosRankSum=-2.670;SB=-2.596e+03;VQSLOD=7.0681;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"0|1:49,42:91:99:1098,0,1410:127"	"0|1:36,38:74:99:890,0,1008:127"	"1|1:0,74:74:99:2274,178,0:127"
+6	71018445	rs1321063	C	A	518.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=2.668;DB;DP=185;Dels=0.00;FS=1.618;HaplotypeScore=0.6919;MLEAC=1;MLEAF=0.167;MQ=58.93;MQ0=0;MQRankSum=0.355;QD=8.78;ReadPosRankSum=1.306;SB=-4.020e+02;VQSLOD=7.7510;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|0:67,0:67:99:0,184,2404:127"	"0|0:59,0:59:99:0,160,2065:127"	"0|1:29,30:59:99:553,0,809:127"
+13	21520045	rs9509464	A	C	5103.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=195;Dels=0.00;FS=0.000;HaplotypeScore=1.6144;MLEAC=6;MLEAF=1.00;MQ=47.37;MQ0=0;QD=26.17;SB=-2.582e+03;VQSLOD=5.1918;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|1:0,71:71:99:2106,186,0:98"	"1|1:0,78:78:99:1856,162,0:98"	"1|1:0,46:46:99:1141,99,0:98"
+20	12166868	rs7272217	C	T	926.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.444;DB;DP=200;Dels=0.00;FS=2.627;HaplotypeScore=0.8413;MLEAC=1;MLEAF=0.167;MQ=58.94;MQ0=0;MQRankSum=-1.362;QD=13.23;ReadPosRankSum=-1.055;SB=-4.040e+02;VQSLOD=7.6219;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|0:68,0:68:99:0,190,2486:127"	"0|0:62,0:62:99:0,169,2218:127"	"0|1:33,37:70:99:961,0,870:127"
+X	116855730	rs980389	A	G	2366.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.939;DB;DP=173;Dels=0.00;FS=3.510;HaplotypeScore=0.9076;MLEAC=3;MLEAF=0.500;MQ=59.87;MQ0=0;MQRankSum=0.653;QD=21.51;ReadPosRankSum=0.730;SB=-1.218e+03;VQSLOD=7.9588;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|0:37,33:70:99:965,0,1249:114"	"1|1:0,40:40:99:1446,114,0:114"	"0|0:63,0:63:99:0,175,2284:114"
+22	34204930	rs13053313	T	C	435.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.517;DB;DP=82;Dels=0.00;FS=5.843;HaplotypeScore=0.5328;MLEAC=1;MLEAF=0.167;MQ=58.65;MQ0=0;MQRankSum=1.117;QD=12.80;ReadPosRankSum=-1.270;SB=-1.170e+02;VQSLOD=6.4410;culprit=DP	GT:AD:DP:GQ:PL:TP	"0|0:12,0:12:27:0,27,360:27"	"0|1:16,18:34:99:470,0,403:27"	"0|0:36,0:36:93:0,93,1230:27"
+12	58867437	rs140632614	G	T	829.25	VQSRTrancheSNP99.00to99.90	AC=4;AF=0.667;AN=6;BaseQRankSum=1.409;DB;DP=144;Dels=0.00;FS=68.612;HaplotypeScore=0.8667;MLEAC=4;MLEAF=0.667;MQ=35.15;MQ0=16;MQRankSum=-7.440;QD=5.76;ReadPosRankSum=-0.245;SB=-1.011e+00;VQSLOD=-16.4891;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|1:34,24:58:99:291,0,1100:44"	"0|1:42,8:50:61:61,0,1319:44"	"1|1:1,35:36:45:519,45,0:44"
+12	29935607	rs7305813	A	C	810.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=0.307;DB;DP=203;Dels=0.00;FS=14.326;HaplotypeScore=1.9820;MLEAC=1;MLEAF=0.167;MQ=59.57;MQ0=0;MQRankSum=-0.164;QD=12.86;ReadPosRankSum=-0.733;SB=-2.950e+02;VQSLOD=7.9009;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|0:71,0:71:99:0,193,2479:127"	"0|0:69,0:69:99:0,196,2464:127"	"0|1:28,35:63:99:845,0,847:127"
+9	130235282	.	A	G	166.26	VQSRTrancheSNP99.90to100.00	AC=2;AF=0.333;AN=6;BaseQRankSum=-8.543;DP=232;Dels=0.00;FS=233.037;HaplotypeScore=2.9977;MLEAC=2;MLEAF=0.333;MQ=59.04;MQ0=0;MQRankSum=-2.038;QD=1.15;ReadPosRankSum=-7.649;SB=-3.100e-03;VQSLOD=-139.8496;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|0:74,14:88:99:0,108,2160:59"	"0|1:42,36:79:60:60,0,966:59"	"0|1:47,18:65:99:145,0,922:59"
+6	1620147	rs2569882	T	C	252.3	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-0.862;DB;DP=38;Dels=0.00;FS=8.023;HaplotypeScore=0.2217;MLEAC=5;MLEAF=0.833;MQ=57.65;MQ0=0;MQRankSum=-0.918;QD=9.34;ReadPosRankSum=0.584;SB=-4.005e+01;VQSLOD=4.3258;culprit=DP	GT:AD:DP:GQ:PL:TP	"1|1:0,17:17:21:254,21,0:4"	"1|0:3,8:11:2:0,3,40:4"	"1|1:0,10:10:3:39,3,0:4"
+8	21736923	rs13256921	G	A	217.24	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=1.884;DB;DP=93;Dels=0.00;FS=5.533;HaplotypeScore=6.4995;MLEAC=1;MLEAF=0.167;MQ=42.13;MQ0=3;MQRankSum=0.517;QD=6.79;ReadPosRankSum=1.706;SB=-1.980e+02;VQSLOD=-2.6430;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|0:34,0:34:66:0,66,691:41"	"0|1:15,17:32:99:252,0,211:41"	"0|0:27,0:27:42:0,42,425:41"
+14	47568119	rs1952206	T	C	3399.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-9.721;DB;DP=230;Dels=0.00;FS=0.483;HaplotypeScore=0.6577;MLEAC=3;MLEAF=0.500;MQ=59.54;MQ0=0;MQRankSum=-0.479;QD=14.78;ReadPosRankSum=1.261;SB=-1.667e+03;VQSLOD=9.1589;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"0/1:41,43:84:99:1239,0,1315:127"	"0/1:28,43:71:99:1178,0,816:127"	"0/1:40,35:75:99:982,0,1314:127"
+10	56495833	rs6481118	G	A	7633.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=212;Dels=0.00;FS=0.000;HaplotypeScore=0.3328;MLEAC=6;MLEAF=1.00;MQ=54.64;MQ0=0;QD=36.00;SB=-2.091e+03;VQSLOD=8.6651;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,62:62:99:2383,184,0:127"	"1|1:1,67:68:99:2375,184,0:127"	"1|1:0,82:82:99:2875,223,0:127"
+18	41449098	rs2045671	C	T	8380.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=237;Dels=0.00;FS=0.000;HaplotypeScore=1.3482;MLEAC=6;MLEAF=1.00;MQ=59.65;MQ0=0;QD=35.36;SB=-4.462e+03;VQSLOD=11.6464;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,76:76:99:2756,214,0:127"	"1|1:0,75:75:99:2635,202,0:127"	"1|1:0,86:86:99:2989,229,0:127"
+10	132949760	rs10829924	A	C	684.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.328;DB;DP=215;Dels=0.00;FS=15.464;HaplotypeScore=1.3183;MLEAC=1;MLEAF=0.167;MQ=59.70;MQ0=0;MQRankSum=-1.053;QD=10.53;ReadPosRankSum=-2.893;SB=-2.920e+02;VQSLOD=5.8891;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"0|0:80,0:81:99:0,229,2999:127"	"0|0:69,0:69:99:0,175,2268:127"	"0|1:35,30:65:99:719,0,1046:127"
+4	64522064	rs4860541	A	G	5942.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=188;Dels=0.00;FS=0.000;HaplotypeScore=0.2889;MLEAC=6;MLEAF=1.00;MQ=56.20;MQ0=0;QD=31.61;SB=-3.348e+03;VQSLOD=8.5367;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,68:68:99:2119,169,0:127"	"1|1:0,52:53:99:1661,132,0:127"	"1|1:0,67:67:99:2162,172,0:127"
+15	92857342	rs12101550	A	G	2734.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-7.995;DB;DP=226;Dels=0.00;FS=3.761;HaplotypeScore=1.5682;MLEAC=3;MLEAF=0.500;MQ=59.41;MQ0=0;MQRankSum=0.761;QD=12.10;ReadPosRankSum=-0.587;SB=-1.469e+03;VQSLOD=9.1510;culprit=FS	GT:AD:DP:GQ:PL:TP	"0/1:45,37:82:99:853,0,1356:127"	"0/1:29,40:69:99:966,0,852:127"	"0/1:38,37:75:99:954,0,1085:127"
+X	150239197	rs6627349	T	C	4677.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=0.731;DB;DP=179;Dels=0.00;FS=0.000;HaplotypeScore=1.6094;MLEAC=5;MLEAF=0.833;MQ=59.69;MQ0=0;MQRankSum=0.676;QD=26.13;ReadPosRankSum=0.494;SB=-2.442e+03;VQSLOD=10.5525;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,66:66:99:2387,190,0:99"	"1|1:0,40:40:99:1243,99,0:99"	"1|0:36,37:73:99:1047,0,1039:99"
+5	144321895	rs35068704	A	T	1535.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=6.048;DB;DP=203;Dels=0.00;FS=13.289;HaplotypeScore=0.5075;MLEAC=2;MLEAF=0.333;MQ=57.36;MQ0=0;MQRankSum=2.191;QD=11.37;ReadPosRankSum=-1.361;SB=-7.640e+02;VQSLOD=5.7211;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|1:34,25:59:99:595,0,976:127"	"0|0:68,0:68:99:0,190,2435:127"	"1|0:39,37:76:99:979,0,1274:127"
+1	59635894	rs331648	T	A	839.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-4.038;DB;DP=211;Dels=0.00;FS=1.427;HaplotypeScore=1.5485;MLEAC=1;MLEAF=0.167;MQ=58.68;MQ0=0;MQRankSum=-0.422;QD=11.82;ReadPosRankSum=-0.180;SB=-5.520e+02;VQSLOD=7.9477;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|0:78,0:78:99:0,199,2578:127"	"0|0:62,0:62:99:0,169,2205:127"	"0|1:33,38:71:99:874,0,897:127"
+6	162459664	rs2849564	C	T	1819.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=8.399;DB;DP=201;Dels=0.00;FS=3.295;HaplotypeScore=2.5591;MLEAC=2;MLEAF=0.333;MQ=59.38;MQ0=0;MQRankSum=1.792;QD=12.90;ReadPosRankSum=-1.045;SB=-1.068e+03;VQSLOD=8.1160;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|0:28,40:68:99:1007,0,793:120"	"1|0:38,35:73:99:851,0,831:120"	"0|0:60,0:60:99:0,120,1421:120"
+7	79508376	rs2525826	G	T	716.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=2.152;DB;DP=196;Dels=0.00;FS=0.000;HaplotypeScore=0.8658;MLEAC=1;MLEAF=0.167;MQ=59.48;MQ0=0;MQRankSum=1.420;QD=13.51;ReadPosRankSum=0.263;SB=-4.080e+02;VQSLOD=9.5728;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|0:65,0:65:99:0,181,2312:127"	"0|0:78,0:78:99:0,226,2916:127"	"0|1:27,26:53:99:751,0,845:127"
+16	34610294	rs72812776	C	T	603.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.361;DB;DP=270;Dels=0.00;FS=6.065;HaplotypeScore=3.1650;MLEAC=1;MLEAF=0.167;MQ=59.66;MQ0=0;MQRankSum=1.603;QD=7.83;ReadPosRankSum=0.296;SB=-2.820e+02;VQSLOD=3.3685;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|0:123,0:123:99:0,343,4443:127"	"0|0:69,1:70:99:0,184,2397:127"	"0|1:48,29:77:99:638,0,1483:127"
+3	68765638	rs1504297	C	G	4623.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-5.561;DB;DP=225;Dels=0.00;FS=3.176;HaplotypeScore=0.8432;MLEAC=4;MLEAF=0.667;MQ=59.80;MQ0=0;MQRankSum=-0.619;QD=20.55;ReadPosRankSum=-1.001;SB=-2.371e+03;VQSLOD=8.7354;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|0:40,39:79:99:1220,0,1330:127"	"1|1:0,75:75:99:2518,205,0:127"	"0|1:37,34:71:99:885,0,1185:127"
+2	144289763	rs7607879	C	T	3308.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=1.386;DB;DP=225;Dels=0.00;FS=9.723;HaplotypeScore=1.4969;MLEAC=3;MLEAF=0.500;MQ=59.53;MQ0=0;MQRankSum=0.283;QD=14.70;ReadPosRankSum=1.392;SB=-1.760e+03;VQSLOD=8.2418;culprit=FS	GT:AD:DP:GQ:PL:TP	"0/1:41,39:81:99:1190,0,1312:127"	"0/1:28,36:64:99:1057,0,834:127"	"0/1:44,36:80:99:1061,0,1275:127"
+1	216407409	rs3767692	A	G	8820.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-0.803;DB;DP=295;Dels=0.00;FS=1.345;HaplotypeScore=2.5841;MLEAC=5;MLEAF=0.833;MQ=59.28;MQ0=0;MQRankSum=-0.375;QD=29.90;ReadPosRankSum=-0.363;SB=-4.445e+03;VQSLOD=7.0549;culprit=DP	GT:AD:DP:GQ:PL:TP	"1|1:1,115:116:99:4251,328,0:127"	"1|0:39,51:90:99:1430,0,1275:127"	"1|1:0,89:89:99:3139,241,0:127"
+12	5922552	rs17786352	C	G	1874.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-7.386;DB;DP=231;Dels=0.00;FS=0.000;HaplotypeScore=0.3053;MLEAC=2;MLEAF=0.333;MQ=54.49;MQ0=0;MQRankSum=2.656;QD=13.11;ReadPosRankSum=1.042;SB=-9.400e+02;VQSLOD=4.7495;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|0:44,35:79:99:897,0,1383:127"	"1|0:28,36:64:99:1016,0,734:127"	"0|0:88,0:88:99:0,238,3004:127"
+3	86234718	rs2324883	T	C	7655.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=234;Dels=0.00;FS=0.000;HaplotypeScore=0.6487;MLEAC=6;MLEAF=1.00;MQ=59.51;MQ0=0;QD=32.71;SB=-4.142e+03;VQSLOD=11.2111;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,80:80:99:2857,223,0:127"	"1|1:0,76:77:99:2512,196,0:127"	"1|1:0,77:77:99:2286,178,0:127"
+17	21547285	rs62049731	A	C	1322.26	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=-0.987;DB;DP=569;Dels=0.00;FS=2.322;HaplotypeScore=42.4511;MLEAC=3;MLEAF=0.500;MQ=44.59;MQ0=24;MQRankSum=-6.240;QD=2.32;ReadPosRankSum=-5.171;SB=-6.369e+02;VQSLOD=-39.5319;culprit=DP	GT:AD:DP:GQ:PL:TP	"0/1:146,28:174:99:217,0,4187:127"	"0/1:162,56:218:99:804,0,4298:127"	"0/1:139,38:177:99:340,0,3842:127"
+10	74020452	rs72806301	C	A	1116.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-2.155;DB;DP=135;Dels=0.00;FS=3.279;HaplotypeScore=0.8720;MLEAC=2;MLEAF=0.333;MQ=58.76;MQ0=0;MQRankSum=-0.818;QD=11.88;ReadPosRankSum=1.484;SB=-6.800e+02;VQSLOD=7.2668;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"0|1:20,27:47:99:658,0,446:104"	"0|0:41,0:41:99:0,105,1324:104"	"1|0:25,22:47:99:497,0,482:104"
+10	95435201	rs2422323	C	T	4017.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=6.438;DB;DP=203;Dels=0.00;FS=13.125;HaplotypeScore=3.2358;MLEAC=4;MLEAF=0.667;MQ=55.24;MQ0=0;MQRankSum=1.174;QD=19.79;ReadPosRankSum=-0.655;SB=-2.177e+03;VQSLOD=4.5957;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|0:38,45:83:99:1327,0,931:127"	"1|1:1,63:64:99:1966,156,0:127"	"0|1:30,25:56:99:724,0,807:127"
+7	158686803	rs55765467	T	C	200.26	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=-10.112;DB;DP=310;Dels=0.00;FS=2.596;HaplotypeScore=1.2829;MLEAC=3;MLEAF=0.500;MQ=47.32;MQ0=0;MQRankSum=-4.959;QD=0.65;ReadPosRankSum=-10.956;SB=-1.206e+03;VQSLOD=-17.6411;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"0/1:64,33:97:99:148,0,1949:32"	"0/1:73,45:118:58:58,0,2287:32"	"0/1:65,30:95:33:33,0,1910:32"
+5	102962771	rs6866105	A	G	5087.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-2.665;DB;DP=200;Dels=0.00;FS=8.083;HaplotypeScore=2.2837;MLEAC=5;MLEAF=0.833;MQ=58.71;MQ0=0;MQRankSum=-0.503;QD=25.44;ReadPosRankSum=-0.482;SB=-2.172e+03;VQSLOD=7.2212;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,75:75:99:2373,184,0:127"	"1|1:0,59:59:99:1776,141,0:127"	"1|0:31,35:66:99:938,0,803:127"
+13	101976707	rs527328	A	T	9240.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=259;Dels=0.00;FS=0.000;HaplotypeScore=0.2447;MLEAC=6;MLEAF=1.00;MQ=53.28;MQ0=0;QD=35.68;SB=-4.696e+03;VQSLOD=7.5241;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|1:0,92:92:99:3410,262,0:127"	"1|1:0,88:88:99:3195,247,0:127"	"1|1:1,78:79:99:2635,202,0:127"
+6	45421630	rs1343799	C	T	5422.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=3.419;DB;DP=240;Dels=0.00;FS=10.689;HaplotypeScore=0.7979;MLEAC=4;MLEAF=0.667;MQ=59.46;MQ0=0;MQRankSum=1.089;QD=22.59;ReadPosRankSum=1.252;SB=-2.647e+03;VQSLOD=7.7035;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|1:29,43:72:99:1445,0,843:127"	"0|1:43,37:80:99:1121,0,1302:127"	"1|1:0,88:88:99:2856,220,0:127"
+9	69810010	rs113063015	A	C	280.26	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=-1.223;DB;DP=716;DS;Dels=0.00;FS=8.996;HaplotypeScore=39.8350;MLEAC=3;MLEAF=0.500;MQ=37.32;MQ0=64;MQRankSum=-3.574;QD=0.39;ReadPosRankSum=-0.897;SB=-1.065e-02;VQSLOD=-68.1677;culprit=DP	GT:AD:DP:GQ:PL:TP	"0/1:218,23:241:73:73,0,3591:70"	"0/1:188,39:227:99:172,0,4233:70"	"0/1:217,31:248:74:74,0,5042:70"
+6	143691852	rs17792267	C	T	3641.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-1.465;DB;DP=203;Dels=0.00;FS=2.413;HaplotypeScore=0.3222;MLEAC=3;MLEAF=0.500;MQ=59.54;MQ0=0;MQRankSum=1.198;QD=27.17;ReadPosRankSum=-1.140;SB=-1.772e+03;VQSLOD=8.8712;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|0:29,33:62:99:1131,0,803:127"	"1|1:0,72:72:99:2510,196,0:127"	"0|0:69,0:69:99:0,190,2480:127"
+14	38160457	rs2181345	A	C	4683.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=169;Dels=0.00;FS=0.000;HaplotypeScore=2.5449;MLEAC=6;MLEAF=1.00;MQ=59.00;MQ0=0;QD=27.71;SB=-2.390e+03;VQSLOD=9.9888;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,56:56:99:1818,141,0:107"	"1|1:0,58:58:99:1523,123,0:107"	"1|1:0,53:55:99:1342,108,0:107"
+20	3199373	rs2422861	G	A	896.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.452;DB;DP=135;Dels=0.00;FS=0.664;HaplotypeScore=2.8371;MLEAC=3;MLEAF=0.500;MQ=58.47;MQ0=0;MQRankSum=-0.217;QD=6.64;ReadPosRankSum=0.111;SB=-6.080e+02;VQSLOD=7.7118;culprit=QD	GT:AD:DP:GQ:PL:TP	"0/1:32,24:56:99:472,0,640:127"	"0/1:25,15:40:99:229,0,603:127"	"0/1:20,19:39:99:234,0,379:127"
+3	137840974	rs2622698	C	A	6792.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=232;Dels=0.00;FS=0.000;HaplotypeScore=2.6477;MLEAC=6;MLEAF=1.00;MQ=59.04;MQ0=0;QD=29.28;SB=-3.999e+03;VQSLOD=9.7681;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,79:79:99:2640,205,0:127"	"1|1:0,78:78:99:2229,178,0:127"	"1|1:0,75:75:99:1923,153,0:127"
+8	132727531	rs7000409	G	A	2050.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=5.475;DB;DP=220;Dels=0.00;FS=5.203;HaplotypeScore=1.9424;MLEAC=2;MLEAF=0.333;MQ=59.71;MQ0=0;MQRankSum=1.230;QD=14.14;ReadPosRankSum=-0.871;SB=-1.080e+03;VQSLOD=7.7925;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0|1:29,35:64:99:1215,0,785:127"	"0|0:75,0:75:99:0,190,2423:127"	"1|0:50,31:81:99:874,0,1611:127"
+8	113376378	rs41340951	T	C	4379.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-8.019;DB;DP=211;Dels=0.00;FS=1.826;HaplotypeScore=0.2629;MLEAC=4;MLEAF=0.667;MQ=59.85;MQ0=0;MQRankSum=1.273;QD=20.75;ReadPosRankSum=0.144;SB=-1.893e+03;VQSLOD=8.8374;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|1:0,67:67:99:2221,187,0:127"	"1|0:32,37:69:99:1083,0,1066:127"	"1|0:35,40:75:99:1075,0,1108:127"
+5	36740339	rs36676	T	G	6995.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=230;Dels=0.00;FS=0.000;HaplotypeScore=2.0768;MLEAC=6;MLEAF=1.00;MQ=59.46;MQ0=0;QD=30.41;SB=-3.034e+03;VQSLOD=10.9208;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,75:75:99:2261,195,0:127"	"1|1:0,83:83:99:2579,217,0:127"	"1|1:0,71:72:99:2155,181,0:127"
+5	3276081	rs4866540	G	A	3653.01	VQSRTrancheSNP99.00to99.90	AC=4;AF=0.667;AN=6;BaseQRankSum=5.002;DB;DP=176;Dels=0.00;FS=2.778;HaplotypeScore=19.0040;MLEAC=4;MLEAF=0.667;MQ=57.74;MQ0=0;MQRankSum=-0.569;QD=20.76;ReadPosRankSum=1.308;SB=-6.610e+02;VQSLOD=3.1833;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|1:1,71:72:99:2337,175,0:127"	"1|0:26,25:51:99:719,0,601:127"	"1|0:26,27:53:99:597,0,662:127"
+9	16302655	rs9298755	T	G	1394.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=3.356;DB;DP=200;Dels=0.00;FS=0.000;HaplotypeScore=3.1863;MLEAC=2;MLEAF=0.333;MQ=59.33;MQ0=0;MQRankSum=0.586;QD=10.03;ReadPosRankSum=-0.771;SB=-8.720e+02;VQSLOD=7.7724;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|0:60,1:61:99:0,165,2004:127"	"0|1:29,28:57:99:494,0,759:127"	"0|1:41,40:82:99:939,0,1069:127"
+2	28790711	rs34787802	T	G	731.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-4.421;DB;DP=232;Dels=0.00;FS=2.403;HaplotypeScore=1.5189;MLEAC=1;MLEAF=0.167;MQ=57.98;MQ0=0;MQRankSum=0.447;QD=10.30;ReadPosRankSum=-1.833;SB=-4.550e+02;VQSLOD=6.8853;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|0:81,0:81:99:0,223,2877:127"	"0|1:36,35:71:99:766,0,947:127"	"0|0:79,0:80:99:0,205,2640:127"
+1	243135892	rs7517403	C	T	2313.25	VQSRTrancheSNP99.00to99.90	AC=4;AF=0.667;AN=6;BaseQRankSum=7.051;DB;DP=168;Dels=0.00;FS=0.000;HaplotypeScore=0.5884;MLEAC=4;MLEAF=0.667;MQ=37.62;MQ0=11;MQRankSum=-5.659;QD=13.77;ReadPosRankSum=-0.977;SB=-9.200e+02;VQSLOD=2.2480;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|0:31,24:55:99:501,0,891:123"	"1|1:0,58:58:99:1263,123,0:123"	"0|1:28,27:55:99:591,0,714:123"
+21	25702950	rs2260875	C	G	3462.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.156;DB;DP=237;Dels=0.00;FS=2.900;HaplotypeScore=1.5444;MLEAC=3;MLEAF=0.500;MQ=59.04;MQ0=0;MQRankSum=0.386;QD=14.61;ReadPosRankSum=-1.455;SB=-1.683e+03;VQSLOD=8.0501;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"0/1:37,40:77:99:1282,0,1101:127"	"0/1:43,36:79:99:1114,0,1317:127"	"0/1:45,36:81:99:1066,0,1329:127"
+7	144383888	rs73161092	T	C	689.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-7.434;DB;DP=254;Dels=0.00;FS=8.629;HaplotypeScore=0.0000;MLEAC=1;MLEAF=0.167;MQ=59.54;MQ0=0;MQRankSum=0.163;QD=8.62;ReadPosRankSum=-1.802;SB=-3.560e+02;VQSLOD=6.4544;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|0:90,0:90:99:0,268,3553:127"	"0|1:47,33:80:99:724,0,1392:127"	"0|0:84,0:84:99:0,202,2644:127"
+18	20025030	rs4800406	A	G	1113.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.700;DB;DP=230;Dels=0.00;FS=0.000;HaplotypeScore=1.6804;MLEAC=1;MLEAF=0.167;MQ=59.56;MQ0=0;MQRankSum=1.643;QD=12.65;ReadPosRankSum=-1.166;SB=-6.160e+02;VQSLOD=8.6574;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|0:78,0:78:99:0,223,2978:127"	"0|1:46,42:88:99:1148,0,1460:127"	"0|0:64,0:64:99:0,175,2303:127"
+3	76722766	rs264537	C	G	845.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=3.666;DB;DP=202;Dels=0.00;FS=0.000;HaplotypeScore=0.2774;MLEAC=1;MLEAF=0.167;MQ=59.79;MQ0=0;MQRankSum=-0.795;QD=13.21;ReadPosRankSum=1.049;SB=-2.910e+02;VQSLOD=8.5280;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|0:70,0:70:99:0,208,2570:127"	"0|0:68,0:68:99:0,193,2332:127"	"0|1:34,30:64:99:880,0,995:127"
+20	29566945	rs6119037	C	G	1427.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=-3.826;DB;DP=271;Dels=0.00;FS=1.151;HaplotypeScore=2.7598;MLEAC=2;MLEAF=0.333;MQ=47.42;MQ0=21;MQRankSum=2.420;QD=8.06;ReadPosRankSum=0.363;SB=-7.560e+02;VQSLOD=1.7908;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|0:59,32:91:99:782,0,1210:127"	"1|0:55,31:86:99:684,0,1422:127"	"0|0:94,0:94:99:0,208,2592:127"
+10	125452232	rs7900707	A	G	3211.24	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-6.610;DB;DP=189;Dels=0.00;FS=17.742;HaplotypeScore=0.0000;MLEAC=4;MLEAF=0.667;MQ=59.66;MQ0=0;MQRankSum=0.614;QD=16.99;ReadPosRankSum=-0.321;SB=-1.553e+03;VQSLOD=6.9018;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|1:0,61:61:99:1944,168,0:127"	"1|0:44,26:70:99:627,0,1357:127"	"1|0:29,29:58:99:682,0,862:127"
+7	110843795	rs214455	A	G	8548.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=258;Dels=0.00;FS=0.000;HaplotypeScore=2.3561;MLEAC=6;MLEAF=1.00;MQ=59.35;MQ0=0;QD=33.13;SB=-4.197e+03;VQSLOD=10.7627;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,106:106:99:3535,301,0:127"	"1|1:0,66:66:99:2270,193,0:127"	"1|1:0,86:86:99:2743,229,0:127"
+6	55412503	rs12201934	T	C	882.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.280;DB;DP=182;Dels=0.00;FS=0.744;HaplotypeScore=0.3332;MLEAC=1;MLEAF=0.167;MQ=59.64;MQ0=0;MQRankSum=-0.765;QD=13.57;ReadPosRankSum=0.147;SB=-4.590e+02;VQSLOD=9.3766;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|0:61,0:61:99:0,181,2371:127"	"0|1:35,30:65:99:917,0,1046:127"	"0|0:56,0:56:99:0,150,1969:127"
+10	11560326	rs4424580	C	T	1027.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-0.178;DB;DP=207;Dels=0.00;FS=0.573;HaplotypeScore=2.1981;MLEAC=2;MLEAF=0.333;MQ=59.24;MQ0=0;MQRankSum=-0.988;QD=7.78;ReadPosRankSum=-0.492;SB=-7.450e+02;VQSLOD=8.4594;culprit=QD	GT:AD:DP:GQ:PL:TP	"1|0:41,32:73:99:609,0,930:96"	"1|0:29,30:59:99:457,0,570:96"	"0|0:74,1:75:96:0,96,1185:96"
+1	175207612	rs11484568	C	T	1920.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=5.643;DB;DP=216;Dels=0.00;FS=0.537;HaplotypeScore=2.2467;MLEAC=2;MLEAF=0.333;MQ=58.99;MQ0=0;MQRankSum=0.383;QD=14.12;ReadPosRankSum=0.169;SB=-1.064e+03;VQSLOD=8.5912;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|1:34,40:74:99:1152,0,995:127"	"0|0:80,0:80:99:0,208,2602:127"	"1|0:34,28:62:99:807,0,998:127"
+17	33513649	rs3744366	A	G	3743.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-3.729;DB;DP=213;Dels=0.00;FS=0.526;HaplotypeScore=2.9053;MLEAC=4;MLEAF=0.667;MQ=58.99;MQ0=0;MQRankSum=-0.152;QD=17.57;ReadPosRankSum=0.530;SB=-2.067e+03;VQSLOD=8.0191;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|0:44,40:84:99:1083,0,1341:127"	"1|1:0,67:67:99:2074,162,0:127"	"0|1:37,24:62:99:586,0,1015:127"
+1	69502962	rs12724640	T	C	1868.23	VQSRTrancheSNP99.00to99.90	AC=6;AF=1.00;AN=6;BaseQRankSum=-1.732;DB;DP=110;Dels=0.00;FS=4.721;HaplotypeScore=1.9269;MLEAC=6;MLEAF=1.00;MQ=29.46;MQ0=22;MQRankSum=1.652;QD=16.98;ReadPosRankSum=-0.564;SB=-8.110e+02;VQSLOD=0.2103;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|1:5,23:29:63:693,63,0:50"	"1|1:5,38:43:66:675,66,0:50"	"1|1:9,29:38:51:538,51,0:50"
+8	66327344	rs13282622	G	A	3918.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=4.514;DB;DP=192;Dels=0.00;FS=3.531;HaplotypeScore=1.6541;MLEAC=4;MLEAF=0.667;MQ=58.91;MQ0=0;MQRankSum=0.706;QD=20.41;ReadPosRankSum=-0.327;SB=-2.091e+03;VQSLOD=8.6266;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|1:34,37:71:99:1137,0,923:127"	"0|1:32,28:61:99:806,0,988:127"	"1|1:0,60:60:99:1975,153,0:127"
+2	127445050	rs113647072	A	G	1773.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-3.856;DB;DP=154;Dels=0.00;FS=4.202;HaplotypeScore=2.2701;MLEAC=4;MLEAF=0.667;MQ=59.16;MQ0=0;MQRankSum=0.759;QD=11.51;ReadPosRankSum=1.290;SB=-1.402e+03;VQSLOD=7.9185;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|1:26,28:54:99:652,0,472:78"	"0|1:26,22:49:99:350,0,462:78"	"1|1:0,50:51:78:813,78,0:78"
+11	75978490	rs655877	G	C	2986.25	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-0.846;DB;DP=127;Dels=0.00;FS=5.433;HaplotypeScore=0.2629;MLEAC=5;MLEAF=0.833;MQ=59.42;MQ0=0;MQRankSum=0.026;QD=23.51;ReadPosRankSum=0.168;SB=-1.613e+03;VQSLOD=7.0404;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|1:0,50:50:99:1405,111,0:101"	"1|1:0,45:46:99:1269,102,0:101"	"1|0:17,14:31:99:354,0,469:101"
+14	68051087	rs11628035	G	A	4028.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=3.928;DB;DP=236;Dels=0.00;FS=8.184;HaplotypeScore=1.3296;MLEAC=3;MLEAF=0.500;MQ=58.83;MQ0=0;MQRankSum=1.834;QD=25.49;ReadPosRankSum=2.590;SB=-1.989e+03;VQSLOD=6.7911;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"1|0:38,39:77:99:1265,0,1112:127"	"1|1:0,81:81:99:2763,214,0:127"	"0|0:78,0:78:99:0,208,2673:127"
+10	106444111	rs72813617	A	G	632.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-0.838;DB;DP=197;Dels=0.00;FS=4.121;HaplotypeScore=1.8154;MLEAC=1;MLEAF=0.167;MQ=59.35;MQ0=0;MQRankSum=-1.142;QD=12.40;ReadPosRankSum=-1.947;SB=-2.390e+02;VQSLOD=7.6230;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"0|0:84,0:84:99:0,241,3129:127"	"0|0:62,0:62:99:0,159,2008:127"	"0|1:27,24:51:99:667,0,584:127"
+X	42192093	rs58959554	T	C	1058.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-5.464;DB;DP=190;Dels=0.00;FS=6.809;HaplotypeScore=1.8813;MLEAC=1;MLEAF=0.167;MQ=59.41;MQ0=0;MQRankSum=-0.212;QD=15.34;ReadPosRankSum=-0.173;SB=-3.970e+02;VQSLOD=8.0569;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|0:70,1:71:99:0,182,2683:127"	"0|0:50,0:50:99:0,138,1794:127"	"0|1:31,38:69:99:1093,0,947:127"
+11	123470819	rs1148095	T	C	6964.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-0.850;DB;DP=242;Dels=0.00;FS=1.477;HaplotypeScore=1.3868;MLEAC=5;MLEAF=0.833;MQ=59.25;MQ0=0;MQRankSum=-1.734;QD=28.78;ReadPosRankSum=-0.749;SB=-3.242e+03;VQSLOD=8.7854;culprit=MQRankSum	GT:AD:DP:GQ:PL:TP	"1|1:0,92:92:99:3408,265,0:127"	"1|0:35,51:86:99:1520,0,1059:127"	"1|1:0,64:64:99:2036,157,0:127"
+14	106085773	rs2955055	C	T	2115.26	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=-0.746;DB;DP=172;Dels=0.00;FS=18.420;HaplotypeScore=2.9489;MLEAC=3;MLEAF=0.500;MQ=35.68;MQ0=18;MQRankSum=3.251;QD=12.30;ReadPosRankSum=0.100;SB=-5.530e+02;VQSLOD=1.2866;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0/1:32,33:65:99:600,0,554:80"	"0/1:30,42:72:99:1001,0,400:80"	"0/1:12,23:35:80:553,0,80:80"
+4	48922864	rs7697262	G	C	1383.23	VQSRTrancheSNP99.00to99.90	AC=6;AF=1.00;AN=6;DB;DP=100;Dels=0.00;FS=0.000;HaplotypeScore=0.0000;MLEAC=6;MLEAF=1.00;MQ=20.20;MQ0=24;QD=13.83;SB=-3.860e+02;VQSLOD=-0.3210;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|1:3,38:41:57:625,57,0:32"	"1|1:0,28:28:33:368,33,0:32"	"1|1:2,29:31:39:428,39,0:32"
+X	135282092	rs5974586	G	C	2193.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=4.257;DB;DP=203;Dels=0.00;FS=0.540;HaplotypeScore=0.6589;MLEAC=2;MLEAF=0.333;MQ=59.47;MQ0=0;MQRankSum=1.000;QD=13.46;ReadPosRankSum=1.343;SB=-1.069e+03;VQSLOD=9.0929;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"0|1:47,33:80:99:1026,0,1466:116"	"0|0:40,0:40:99:0,117,1486:116"	"1|0:43,40:83:99:1206,0,1311:116"
+11	103989190	rs1545865	T	C	4915.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-4.030;DB;DP=219;Dels=0.00;FS=1.231;HaplotypeScore=1.2090;MLEAC=4;MLEAF=0.667;MQ=59.37;MQ0=0;MQRankSum=1.103;QD=22.44;ReadPosRankSum=0.773;SB=-2.213e+03;VQSLOD=8.9081;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"0|1:23,40:63:99:1203,0,669:127"	"0|1:36,52:88:99:1433,0,1136:127"	"1|1:0,68:68:99:2279,178,0:127"
+2	45429089	rs13418430	C	A	2341.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=0.861;DB;DP=283;Dels=0.00;FS=2.854;HaplotypeScore=1.3288;MLEAC=2;MLEAF=0.333;MQ=59.62;MQ0=0;MQRankSum=-0.939;QD=12.52;ReadPosRankSum=-1.869;SB=-1.156e+03;VQSLOD=7.1503;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|0:60,49:109:99:1406,0,2061:127"	"1|0:41,37:78:99:974,0,1238:127"	"0|0:96,0:96:99:0,256,3312:127"
+7	56584972	rs34475770	C	T	2465.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-0.103;DB;DP=255;Dels=0.00;FS=2.230;HaplotypeScore=0.8840;MLEAC=2;MLEAF=0.333;MQ=58.76;MQ0=0;MQRankSum=1.766;QD=15.03;ReadPosRankSum=1.126;SB=-1.412e+03;VQSLOD=6.5725;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|0:91,0:91:99:0,259,3369:127"	"0|1:36,49:85:99:1444,0,1000:127"	"0|1:38,41:79:99:1060,0,1084:127"
+4	190538070	rs62323772	G	A	106.69	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=0.099;DB;DP=19;Dels=0.00;FS=0.000;HaplotypeScore=4.3562;MLEAC=3;MLEAF=0.500;MQ=33.71;MQ0=0;MQRankSum=0.591;QD=5.93;ReadPosRankSum=-0.394;SB=-7.601e+01;VQSLOD=-1.3921;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|1:4,9:13:69:69,0,92:3"	"0|0:1,0:1:3:0,3,33:3"	"1|1:0,4:5:6:77,6,0:3"
+16	55910673	rs17265788	G	C	2345.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=2.657;DB;DP=208;Dels=0.00;FS=3.162;HaplotypeScore=1.9213;MLEAC=3;MLEAF=0.500;MQ=59.67;MQ0=0;MQRankSum=-0.333;QD=16.63;ReadPosRankSum=-0.425;SB=-1.468e+03;VQSLOD=8.3665;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0|1:33,33:66:99:769,0,761:122"	"0|0:67,0:67:99:0,123,1506:122"	"1|1:0,75:75:99:1621,132,0:122"
+2	54408283	rs55993481	T	G	2128.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.961;DB;DP=222;Dels=0.00;FS=1.744;HaplotypeScore=3.9553;MLEAC=2;MLEAF=0.333;MQ=59.69;MQ0=0;MQRankSum=0.670;QD=14.28;ReadPosRankSum=1.313;SB=-1.076e+03;VQSLOD=6.5064;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|0:35,46:81:99:1392,0,921:127"	"1|0:35,33:68:99:775,0,878:127"	"0|0:73,0:73:99:0,175,2164:127"
+16	83153777	rs4395063	T	C	3143.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-1.771;DB;DP=205;Dels=0.00;FS=1.805;HaplotypeScore=1.0370;MLEAC=4;MLEAF=0.667;MQ=59.55;MQ0=0;MQRankSum=-1.380;QD=15.33;ReadPosRankSum=0.424;SB=-2.104e+03;VQSLOD=8.8241;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|1:31,31:62:99:867,0,865:127"	"0|1:45,28:73:99:412,0,801:127"	"1|1:0,70:70:99:1906,150,0:127"
+15	71657506	.	A	G	140.4	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=-1.611;DP=133;Dels=0.00;FS=35.593;HaplotypeScore=4.0622;MLEAC=2;MLEAF=0.333;MQ=51.29;MQ0=1;MQRankSum=-3.344;QD=1.53;ReadPosRankSum=-3.999;SB=-5.015e+01;VQSLOD=-4.8050;culprit=QD	GT:AD:DP:GQ:PL:TP	"1|0:46,11:57:93:93,0,851:15"	"1|0:23,12:35:86:86,0,299:15"	"0|0:33,8:41:15:0,15,503:15"
+18	67950442	rs62091919	T	G	1779.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-2.517;DB;DP=195;Dels=0.00;FS=0.562;HaplotypeScore=1.5454;MLEAC=2;MLEAF=0.333;MQ=59.26;MQ0=0;MQRankSum=0.006;QD=12.89;ReadPosRankSum=-0.268;SB=-9.170e+02;VQSLOD=9.6268;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"0|1:40,32:72:99:967,0,1318:127"	"0|0:55,2:57:99:0,141,1865:127"	"1|0:36,30:66:99:851,0,1042:127"
+16	5754758	rs11644707	C	T	1012.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.777;DB;DP=161;Dels=0.00;FS=0.000;HaplotypeScore=2.4572;MLEAC=2;MLEAF=0.333;MQ=59.71;MQ0=0;MQRankSum=0.699;QD=9.64;ReadPosRankSum=2.624;SB=-5.580e+02;VQSLOD=7.0970;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"0|1:31,26:57:99:627,0,943:125"	"0|0:56,0:56:99:0,126,1597:125"	"1|0:32,16:48:99:424,0,785:125"
+15	62088952	rs35033959	A	T	3546.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.220;DB;DP=241;Dels=0.00;FS=14.286;HaplotypeScore=0.2774;MLEAC=3;MLEAF=0.500;MQ=59.77;MQ0=0;MQRankSum=-1.969;QD=14.71;ReadPosRankSum=0.341;SB=-1.970e+03;VQSLOD=6.3785;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0/1:45,44:89:99:1265,0,1533:127"	"0/1:34,38:72:99:1133,0,1137:127"	"0/1:41,39:80:99:1148,0,1303:127"
+7	124589684	rs12113765	G	C	4948.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-2.607;DB;DP=243;Dels=0.00;FS=1.040;HaplotypeScore=3.3790;MLEAC=4;MLEAF=0.667;MQ=58.74;MQ0=0;MQRankSum=1.246;QD=20.36;ReadPosRankSum=-0.387;SB=-2.411e+03;VQSLOD=7.0507;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|0:44,27:71:99:796,0,1350:127"	"1|1:0,84:85:99:2760,217,0:127"	"0|1:41,46:87:99:1392,0,1180:127"
+4	122900130	rs4833786	C	T	2361.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-0.390;DB;DP=244;Dels=0.00;FS=0.495;HaplotypeScore=0.5427;MLEAC=2;MLEAF=0.333;MQ=59.91;MQ0=0;MQRankSum=-0.628;QD=15.23;ReadPosRankSum=1.221;SB=-1.282e+03;VQSLOD=8.8105;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0|0:89,0:89:99:0,250,3286:127"	"0|1:42,44:86:99:1257,0,1325:127"	"0|1:32,37:69:99:1143,0,941:127"
+7	29544610	rs6462145	A	T	4020.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=0.326;DB;DP=189;Dels=0.00;FS=5.388;HaplotypeScore=1.2974;MLEAC=4;MLEAF=0.667;MQ=58.54;MQ0=0;MQRankSum=1.295;QD=21.27;ReadPosRankSum=-1.212;SB=-1.878e+03;VQSLOD=7.3155;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|0:27,49:77:99:1466,0,733:127"	"1|1:0,64:64:99:1888,147,0:127"	"0|1:18,27:48:99:666,0,410:127"
+1	17032814	rs2773183	T	C	2828.26	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.879;DB;DP=322;Dels=0.00;FS=2.430;HaplotypeScore=15.4499;MLEAC=3;MLEAF=0.500;MQ=56.86;MQ0=0;MQRankSum=2.916;QD=8.78;ReadPosRankSum=-1.245;SB=-1.943e+03;VQSLOD=-1.4207;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0/1:63,59:122:99:1434,0,1831:127"	"0/1:53,56:109:99:910,0,871:127"	"0/1:61,30:91:99:523,0,1257:127"
+13	74611546	rs73214804	C	T	639.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-0.487;DB;DP=164;Dels=0.00;FS=0.000;HaplotypeScore=1.4071;MLEAC=1;MLEAF=0.167;MQ=58.95;MQ0=0;MQRankSum=0.902;QD=11.21;ReadPosRankSum=-0.541;SB=-3.000e+02;VQSLOD=8.8824;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|0:53,0:53:99:0,135,1773:110"	"0|0:53,1:54:99:0,111,1440:110"	"0|1:24,33:57:99:674,0,388:110"
+1	146610795	rs58742099	C	T	2831.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.298;DB;DP=261;Dels=0.00;FS=7.033;HaplotypeScore=13.9060;MLEAC=2;MLEAF=0.333;MQ=59.62;MQ0=0;MQRankSum=0.753;QD=16.27;ReadPosRankSum=-1.405;SB=-1.481e+03;VQSLOD=3.4221;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|0:39,43:82:99:1329,0,1080:127"	"1|0:40,52:92:99:1541,0,1241:127"	"0|0:87,0:87:99:0,238,3098:127"
+16	65776985	rs72784548	T	C	3527.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=5.439;DB;DP=195;Dels=0.00;FS=1.228;HaplotypeScore=0.8795;MLEAC=4;MLEAF=0.667;MQ=58.78;MQ0=0;MQRankSum=1.630;QD=18.09;ReadPosRankSum=1.358;SB=-1.904e+03;VQSLOD=7.6763;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"1|1:0,68:68:99:2351,181,0:127"	"1|0:33,28:61:99:586,0,710:127"	"1|0:31,35:66:99:590,0,468:127"
+6	79887872	rs6454101	C	T	2130.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.355;DB;DP=204;Dels=0.00;FS=11.823;HaplotypeScore=2.3806;MLEAC=3;MLEAF=0.500;MQ=59.68;MQ0=0;MQRankSum=1.011;QD=10.44;ReadPosRankSum=-0.769;SB=-1.370e+03;VQSLOD=7.5187;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0/1:31,31:62:99:806,0,990:127"	"0/1:42,31:73:99:606,0,921:127"	"0/1:29,40:69:99:757,0,749:127"
+20	41560394	rs761027	A	G	5634.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-4.444;DB;DP=222;Dels=0.00;FS=0.829;HaplotypeScore=1.1428;MLEAC=5;MLEAF=0.833;MQ=59.60;MQ0=0;MQRankSum=0.392;QD=25.38;ReadPosRankSum=-0.064;SB=-3.048e+03;VQSLOD=10.0362;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,72:72:99:2228,187,0:127"	"1|1:0,82:82:99:2435,211,0:127"	"1|0:25,43:68:99:971,0,567:127"
+1	226163330	rs10915914	C	G	747.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-3.123;DB;DP=121;Dels=0.00;FS=0.863;HaplotypeScore=0.8289;MLEAC=2;MLEAF=0.333;MQ=58.96;MQ0=0;MQRankSum=-0.478;QD=9.70;ReadPosRankSum=-0.134;SB=-2.780e+02;VQSLOD=8.0849;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|0:43,1:44:99:0,117,1447:116"	"0|1:17,15:32:99:289,0,390:116"	"0|1:26,19:45:99:497,0,677:116"
+5	174249229	rs11739079	C	G	1613.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-4.540;DB;DP=190;Dels=0.00;FS=6.482;HaplotypeScore=2.0416;MLEAC=2;MLEAF=0.333;MQ=59.51;MQ0=0;MQRankSum=-0.898;QD=11.86;ReadPosRankSum=0.601;SB=-8.320e+02;VQSLOD=7.7782;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|1:32,43:75:99:1069,0,928:123"	"0|0:54,0:54:99:0,123,1554:123"	"1|0:33,27:61:99:583,0,883:123"
+15	23743658	rs142070302	T	A	1007.26	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.164;DB;DP=408;Dels=0.00;FS=166.853;HaplotypeScore=53.5447;MLEAC=3;MLEAF=0.500;MQ=38.96;MQ0=14;MQRankSum=-6.283;QD=2.47;ReadPosRankSum=2.486;SB=-1.079e-02;VQSLOD=-304.7942;culprit=FS	GT:AD:DP:GQ:PL:TP	"0/1:104,39:143:99:365,0,2802:45"	"0/1:99,40:139:99:636,0,2335:45"	"0/1:97,28:126:45:45,0,2324:45"
+3	60283791	rs10154846	T	C	669.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.270;DB;DP=204;Dels=0.00;FS=1.585;HaplotypeScore=1.6639;MLEAC=1;MLEAF=0.167;MQ=59.39;MQ0=0;MQRankSum=0.370;QD=10.14;ReadPosRankSum=1.636;SB=-2.690e+02;VQSLOD=8.9468;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|0:63,0:63:99:0,190,2440:127"	"0|1:34,32:66:99:704,0,1020:127"	"0|0:74,0:75:99:0,190,2372:127"
+15	100799787	rs4965610	C	T	2133.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=8.373;DB;DP=230;Dels=0.00;FS=1.037;HaplotypeScore=0.5427;MLEAC=3;MLEAF=0.500;MQ=58.84;MQ0=0;MQRankSum=0.169;QD=9.28;ReadPosRankSum=-0.098;SB=-1.328e+03;VQSLOD=7.8802;culprit=QD	GT:AD:DP:GQ:PL:TP	"0/1:40,36:76:99:948,0,701:127"	"0/1:45,38:83:99:761,0,635:127"	"0/1:35,36:71:99:463,0,706:127"
+21	10750991	.	C	T	602.26	VQSRTrancheSNP99.90to100.00	AC=2;AF=0.333;AN=6;BaseQRankSum=10.103;DP=735;DS;Dels=0.00;FS=27.020;HaplotypeScore=107.2731;MLEAC=2;MLEAF=0.333;MQ=44.40;MQ0=2;MQRankSum=-14.560;QD=1.24;ReadPosRankSum=0.063;SB=-8.430e+02;VQSLOD=-100.9480;culprit=DP	GT:AD:DP:GQ:PL:TP	"1|0:164,78:243:99:357,0,5193:103"	"1|0:187,55:242:99:284,0,5252:103"	"0|0:199,50:250:99:0,103,5864:103"
+18	1629264	rs5025369	A	G	86.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=-1.739;DB;DP=149;Dels=0.00;FS=15.359;HaplotypeScore=7.1355;MLEAC=2;MLEAF=0.333;MQ=39.72;MQ0=11;MQRankSum=-2.543;QD=0.81;ReadPosRankSum=0.088;SB=-3.380e+01;VQSLOD=-6.2052;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|1:51,15:66:50:50,0,1143:49"	"0|0:37,5:42:81:0,81,941:49"	"1|0:35,6:41:75:75,0,818:49"
+X	84165195	rs5923187	C	A	1009.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.103;DB;DP=194;Dels=0.00;FS=3.070;HaplotypeScore=2.8168;MLEAC=1;MLEAF=0.167;MQ=59.31;MQ0=0;MQRankSum=-0.675;QD=12.01;ReadPosRankSum=-1.463;SB=-5.890e+02;VQSLOD=8.2395;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|0:79,1:80:99:0,223,2856:60"	"0|0:30,0:30:60:0,60,764:60"	"0|1:40,44:84:99:1044,0,1007:60"
+14	56951735	rs1189276	G	A	6939.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=3.878;DB;DP=235;Dels=0.00;FS=9.373;HaplotypeScore=0.9063;MLEAC=5;MLEAF=0.833;MQ=59.52;MQ0=0;MQRankSum=-0.550;QD=29.53;ReadPosRankSum=1.104;SB=-3.438e+03;VQSLOD=8.7592;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:1,92:93:99:3558,274,0:127"	"1|1:0,60:60:99:2120,165,0:127"	"1|0:40,42:82:99:1261,0,1194:127"
+2	155726628	.	T	G	1351.23	VQSRTrancheSNP99.00to99.90	AC=6;AF=1.00;AN=6;BaseQRankSum=0.207;DP=193;Dels=0.00;FS=9.246;HaplotypeScore=0.5220;MLEAC=6;MLEAF=1.00;MQ=16.17;MQ0=87;MQRankSum=2.396;QD=7.00;ReadPosRankSum=1.069;SB=-4.420e+02;VQSLOD=-2.7874;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|1:3,56:59:60:591,60,0:27"	"1|1:8,49:57:27:245,27,0:27"	"1|1:12,65:77:57:553,57,0:27"
+5	49438828	rs137880658	G	A	424.24	VQSRTrancheSNP99.90to100.00	AC=1;AF=0.167;AN=6;BaseQRankSum=-4.376;DB;DP=748;DS;Dels=0.00;FS=7.184;HaplotypeScore=20.6618;MLEAC=1;MLEAF=0.167;MQ=19.63;MQ0=158;MQRankSum=3.819;QD=1.70;ReadPosRankSum=1.191;SB=-2.220e+02;VQSLOD=-98.2155;culprit=DP	GT:AD:DP:GQ:PL:TP	"0|0:249,0:249:99:0,555,4848:127"	"0|1:204,46:250:99:459,0,2894:127"	"0|0:249,0:249:99:0,480,4326:127"
+9	98491693	rs12337935	C	A	1474.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=2.098;DB;DP=97;Dels=0.00;FS=14.282;HaplotypeScore=1.7726;MLEAC=4;MLEAF=0.667;MQ=58.64;MQ0=0;MQRankSum=-0.224;QD=15.20;ReadPosRankSum=1.166;SB=-6.430e+02;VQSLOD=5.7986;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|0:14,12:26:99:348,0,352:63"	"1|1:0,28:29:63:781,63,0:63"	"0|1:17,25:42:99:387,0,364:63"
+8	140651779	rs1469039	G	A	1879.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-2.189;DB;DP=145;Dels=0.00;FS=0.000;HaplotypeScore=1.7695;MLEAC=3;MLEAF=0.500;MQ=58.39;MQ0=0;MQRankSum=0.745;QD=12.96;ReadPosRankSum=-0.159;SB=-9.360e+02;VQSLOD=9.0059;culprit=FS	GT:AD:DP:GQ:PL:TP	"0/1:23,24:47:99:612,0,740:127"	"0/1:21,31:52:99:684,0,478:127"	"0/1:20,26:46:99:622,0,367:127"
+3	197056886	rs7612900	G	A	7880.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=229;Dels=0.00;FS=0.000;HaplotypeScore=0.6106;MLEAC=6;MLEAF=1.00;MQ=59.18;MQ0=0;QD=34.41;SB=-3.459e+03;VQSLOD=11.8130;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,75:75:99:2786,214,0:127"	"1|1:0,81:81:99:2598,202,0:127"	"1|1:0,73:73:99:2496,193,0:127"
+7	101161506	rs2158739	C	T	4522.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=1.698;DB;DP=172;Dels=0.00;FS=4.280;HaplotypeScore=1.5077;MLEAC=5;MLEAF=0.833;MQ=58.18;MQ0=0;MQRankSum=-0.295;QD=26.29;ReadPosRankSum=0.974;SB=-2.287e+03;VQSLOD=8.2831;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,72:73:99:2443,202,0:110"	"1|0:23,26:50:99:711,0,586:110"	"1|1:0,48:49:99:1368,111,0:110"
+2	85513238	rs62162679	C	T	742.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.162;DB;DP=137;Dels=0.00;FS=4.474;HaplotypeScore=1.3905;MLEAC=2;MLEAF=0.333;MQ=57.50;MQ0=0;MQRankSum=0.479;QD=7.57;ReadPosRankSum=-0.272;SB=-5.520e+02;VQSLOD=7.1288;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|0:39,0:39:99:0,105,1267:104"	"0|1:23,23:47:99:430,0,551:104"	"0|1:31,20:51:99:351,0,633:104"
+X	4712340	rs5915814	C	A	2233.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=8.784;DB;DP=176;Dels=0.00;FS=0.000;HaplotypeScore=0.4434;MLEAC=2;MLEAF=0.333;MQ=59.50;MQ0=0;MQRankSum=-1.782;QD=15.73;ReadPosRankSum=0.359;SB=-1.240e+03;VQSLOD=8.3937;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|1:32,37:69:99:1114,0,859:81"	"0|0:34,0:34:81:0,81,948:81"	"1|0:32,41:73:99:1158,0,575:81"
+22	17351507	rs5748687	G	A	4244.01	VQSRTrancheSNP99.00to99.90	AC=5;AF=0.833;AN=6;BaseQRankSum=-0.224;DB;DP=261;Dels=0.00;FS=0.710;HaplotypeScore=1.7170;MLEAC=5;MLEAF=0.833;MQ=28.84;MQ0=57;MQRankSum=-7.852;QD=16.26;ReadPosRankSum=-1.243;SB=-2.174e+03;VQSLOD=-1.7101;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|1:0,92:92:99:1529,141,0:127"	"1|0:34,49:83:99:727,0,1065:127"	"1|1:0,86:86:99:1988,180,0:127"
+6	120734422	rs62424426	T	C	1091.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.268;DB;DP=208;Dels=0.00;FS=4.347;HaplotypeScore=0.7034;MLEAC=1;MLEAF=0.167;MQ=59.71;MQ0=0;MQRankSum=-0.188;QD=14.36;ReadPosRankSum=-0.149;SB=-5.560e+02;VQSLOD=8.6529;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0|0:70,1:71:99:0,205,2692:127"	"0|0:61,0:61:99:0,175,2298:127"	"0|1:39,37:76:99:1126,0,1140:127"
+5	10958957	rs852590	T	C	8430.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=243;Dels=0.00;FS=0.000;HaplotypeScore=1.8272;MLEAC=6;MLEAF=1.00;MQ=59.31;MQ0=0;QD=34.69;SB=-4.118e+03;VQSLOD=10.8702;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:1,96:97:99:3594,277,0:127"	"1|1:1,73:74:99:2318,181,0:127"	"1|1:0,72:72:99:2518,196,0:127"
+11	65339346	rs1194104	C	T	1804.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-2.465;DB;DP=189;Dels=0.00;FS=8.432;HaplotypeScore=2.2718;MLEAC=2;MLEAF=0.333;MQ=59.31;MQ0=0;MQRankSum=-0.120;QD=13.67;ReadPosRankSum=-0.306;SB=-1.061e+03;VQSLOD=7.9509;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|0:57,0:57:99:0,157,2050:127"	"0|1:30,35:65:99:781,0,822:127"	"0|1:23,44:67:99:1062,0,690:127"
+1	80481528	rs61774278	G	C	1775.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-1.614;DB;DP=168;Dels=0.00;FS=8.292;HaplotypeScore=2.0470;MLEAC=3;MLEAF=0.500;MQ=54.28;MQ0=0;MQRankSum=-0.052;QD=16.75;ReadPosRankSum=1.544;SB=-1.133e+03;VQSLOD=4.7735;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0|1:35,26:61:99:767,0,778:80"	"0|0:62,0:62:84:0,84,1046:80"	"1|1:0,45:45:84:1053,84,0:80"
+12	90856710	rs825945	T	C	1096.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-6.342;DB;DP=193;Dels=0.00;FS=2.164;HaplotypeScore=0.0000;MLEAC=2;MLEAF=0.333;MQ=59.64;MQ0=0;MQRankSum=2.071;QD=9.70;ReadPosRankSum=-1.697;SB=-5.710e+02;VQSLOD=7.3118;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|0:80,0:80:99:0,232,3042:127"	"0|1:30,21:51:99:511,0,921:127"	"0|1:36,26:62:99:624,0,1085:127"
+7	12502849	rs848025	C	G	4109.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-8.809;DB;DP=220;Dels=0.00;FS=1.141;HaplotypeScore=1.8049;MLEAC=4;MLEAF=0.667;MQ=59.56;MQ0=0;MQRankSum=0.625;QD=18.68;ReadPosRankSum=-0.019;SB=-1.989e+03;VQSLOD=8.7123;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|0:47,45:92:99:1216,0,1501:127"	"1|1:0,71:71:99:2145,184,0:127"	"0|1:27,30:57:99:748,0,743:127"
+12	39118960	rs79977305	G	A	1330.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=6.307;DB;DP=263;Dels=0.00;FS=0.597;HaplotypeScore=1.4583;MLEAC=1;MLEAF=0.167;MQ=58.83;MQ0=0;MQRankSum=1.925;QD=13.57;ReadPosRankSum=-0.548;SB=-7.360e+02;VQSLOD=7.3733;culprit=MQRankSum	GT:AD:DP:GQ:PL:TP	"0|0:81,0:81:99:0,241,2869:127"	"0|0:84,0:84:99:0,229,2712:127"	"0|1:51,47:98:99:1365,0,1343:127"
+1	47818917	rs12749507	A	G	1285.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.707;DB;DP=252;Dels=0.00;FS=2.139;HaplotypeScore=0.6661;MLEAC=1;MLEAF=0.167;MQ=59.83;MQ0=0;MQRankSum=-0.467;QD=13.39;ReadPosRankSum=0.535;SB=-6.730e+02;VQSLOD=9.2738;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0|0:81,0:81:99:0,241,3171:127"	"0|1:53,42:96:99:1320,0,1615:127"	"0|0:75,0:75:99:0,217,2762:127"
+1	186656152	rs4422959	G	A	1342.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=7.230;DB;DP=270;Dels=0.00;FS=7.290;HaplotypeScore=1.1750;MLEAC=1;MLEAF=0.167;MQ=59.71;MQ0=0;MQRankSum=0.399;QD=17.21;ReadPosRankSum=-0.869;SB=-6.320e+02;VQSLOD=7.6734;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0|0:99,0:99:99:0,283,3341:127"	"0|0:93,0:93:99:0,256,3022:127"	"0|1:33,45:78:99:1377,0,917:127"
+5	80900719	rs2917540	G	T	4938.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=3.261;DB;DP=240;Dels=0.00;FS=0.489;HaplotypeScore=0.5959;MLEAC=4;MLEAF=0.667;MQ=59.63;MQ0=0;MQRankSum=-2.115;QD=20.58;ReadPosRankSum=0.288;SB=-2.548e+03;VQSLOD=8.4417;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0|1:52,40:92:99:1207,0,1768:127"	"0|1:37,33:70:99:960,0,1205:127"	"1|1:0,78:78:99:2771,211,0:127"
+8	56608897	rs57623198	C	T	1911.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-1.515;DB;DP=229;Dels=0.00;FS=0.000;HaplotypeScore=1.1327;MLEAC=2;MLEAF=0.333;MQ=59.80;MQ0=0;MQRankSum=0.336;QD=12.66;ReadPosRankSum=-2.326;SB=-9.730e+02;VQSLOD=8.5587;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|0:78,0:78:99:0,229,2989:127"	"0|1:44,30:74:99:897,0,1444:127"	"0|1:44,33:77:99:1053,0,1400:127"
+11	132780959	rs61906922	C	T	1342.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=6.221;DB;DP=263;Dels=0.00;FS=0.601;HaplotypeScore=1.8444;MLEAC=1;MLEAF=0.167;MQ=59.58;MQ0=0;MQRankSum=0.997;QD=15.25;ReadPosRankSum=-0.746;SB=-6.890e+02;VQSLOD=8.8133;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"0|0:87,0:87:99:0,250,2877:127"	"0|0:87,0:88:99:0,253,3009:127"	"0|1:43,45:88:99:1377,0,1138:127"
+11	86061661	rs11825046	T	C	6014.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-3.250;DB;DP=282;Dels=0.00;FS=0.960;HaplotypeScore=1.6440;MLEAC=4;MLEAF=0.667;MQ=59.57;MQ0=0;MQRankSum=1.057;QD=21.33;ReadPosRankSum=-1.763;SB=-3.081e+03;VQSLOD=7.3485;culprit=DP	GT:AD:DP:GQ:PL:TP	"1|0:54,49:103:99:1498,0,1848:127"	"1|1:0,83:83:99:2924,223,0:127"	"0|1:44,52:96:99:1592,0,1380:127"
+9	25201692	rs9408058	C	T	8643.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=245;Dels=0.00;FS=0.000;HaplotypeScore=0.8982;MLEAC=6;MLEAF=1.00;MQ=59.13;MQ0=0;QD=35.28;SB=-4.398e+03;VQSLOD=12.1738;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,89:89:99:3312,256,0:127"	"1|1:0,81:81:99:2771,223,0:127"	"1|1:0,75:75:99:2560,202,0:127"
+5	132377304	rs72801439	A	T	858.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.113;DB;DP=219;Dels=0.00;FS=10.632;HaplotypeScore=0.6638;MLEAC=1;MLEAF=0.167;MQ=59.41;MQ0=0;MQRankSum=-0.881;QD=11.29;ReadPosRankSum=0.435;SB=-3.050e+02;VQSLOD=7.6837;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|0:67,0:67:99:0,163,2149:127"	"0|1:43,33:76:99:893,0,1280:127"	"0|0:76,0:76:99:0,199,2553:127"
+8	78181000	rs1563030	A	G	5178.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-0.030;DB;DP=192;Dels=0.00;FS=4.675;HaplotypeScore=2.9473;MLEAC=5;MLEAF=0.833;MQ=59.62;MQ0=0;MQRankSum=-0.467;QD=26.97;ReadPosRankSum=-0.855;SB=-2.617e+03;VQSLOD=7.3445;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|1:0,59:59:99:1954,150,0:127"	"1|0:32,37:70:99:1198,0,888:127"	"1|1:0,63:63:99:2026,156,0:127"
+12	21328424	rs4149040	G	C	2565.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=0.888;DB;DP=252;Dels=0.00;FS=9.753;HaplotypeScore=0.6082;MLEAC=2;MLEAF=0.333;MQ=59.49;MQ0=0;MQRankSum=1.166;QD=15.18;ReadPosRankSum=0.966;SB=-1.181e+03;VQSLOD=7.5539;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|1:40,49:89:99:1534,0,1308:127"	"0|0:83,0:83:99:0,241,3117:127"	"1|0:45,35:80:99:1070,0,1402:127"
+4	141514835	rs55984232	C	T	1645.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=7.144;DB;DP=191;Dels=0.00;FS=2.756;HaplotypeScore=1.0735;MLEAC=2;MLEAF=0.333;MQ=59.26;MQ0=0;MQRankSum=0.726;QD=13.06;ReadPosRankSum=-0.789;SB=-8.550e+02;VQSLOD=8.9425;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|1:32,28:60:99:913,0,820:127"	"0|0:65,0:65:99:0,156,1886:127"	"1|0:34,32:66:99:771,0,750:127"
+2	198567638	rs12619333	C	G	2201.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-0.028;DB;DP=240;Dels=0.00;FS=4.757;HaplotypeScore=1.3741;MLEAC=2;MLEAF=0.333;MQ=59.37;MQ0=1;MQRankSum=0.131;QD=13.42;ReadPosRankSum=0.123;SB=-1.051e+03;VQSLOD=8.1261;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|0:38,45:84:99:1298,0,1249:127"	"1|0:45,35:80:99:942,0,1493:127"	"0|0:76,0:76:99:0,196,2542:127"
+12	101460237	rs7965836	C	T	3485.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-2.070;DB;DP=247;Dels=0.00;FS=2.895;HaplotypeScore=0.6556;MLEAC=3;MLEAF=0.500;MQ=59.83;MQ0=0;MQRankSum=-0.655;QD=14.11;ReadPosRankSum=-0.983;SB=-1.581e+03;VQSLOD=8.4872;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0/1:40,43:83:99:1287,0,1179:127"	"0/1:44,36:80:99:1068,0,1363:127"	"0/1:43,41:84:99:1130,0,1321:127"
+11	55040918	rs187118824	A	T	1019.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.079;DB;DP=65;Dels=0.02;FS=12.723;HaplotypeScore=0.9771;MLEAC=2;MLEAF=0.333;MQ=56.64;MQ0=1;MQRankSum=0.323;QD=25.48;ReadPosRankSum=0.873;SB=-2.060e+01;VQSLOD=4.4200;culprit=DP	GT:AD:DP:GQ:PL:TP	"0|1:2,9:11:48:325,0,48:50"	"0|0:24,1:25:63:0,63,833:50"	"1|0:6,22:28:51:733,0,51:50"
+21	18433036	rs969905	A	G	781.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-6.610;DB;DP=229;Dels=0.00;FS=2.230;HaplotypeScore=1.2866;MLEAC=1;MLEAF=0.167;MQ=59.55;MQ0=0;MQRankSum=0.300;QD=10.15;ReadPosRankSum=-0.384;SB=-4.990e+02;VQSLOD=9.5768;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|0:62,0:63:99:0,181,2380:127"	"0|0:89,0:89:99:0,244,3177:127"	"0|1:39,38:77:99:816,0,1256:127"
+8	102355800	rs10103956	G	T	1756.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=0.927;DB;DP=189;Dels=0.00;FS=5.921;HaplotypeScore=1.5445;MLEAC=2;MLEAF=0.333;MQ=59.66;MQ0=0;MQRankSum=-0.420;QD=13.41;ReadPosRankSum=-0.019;SB=-5.470e+02;VQSLOD=8.1563;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|0:32,38:70:99:1078,0,999:127"	"1|0:35,26:61:99:717,0,1103:127"	"0|0:57,0:58:99:0,156,2011:127"
+5	70856663	rs157045	T	C	2040.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-7.809;DB;DP=234;Dels=0.00;FS=1.824;HaplotypeScore=1.0544;MLEAC=2;MLEAF=0.333;MQ=58.65;MQ0=0;MQRankSum=0.989;QD=13.16;ReadPosRankSum=0.719;SB=-8.820e+02;VQSLOD=7.3513;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|0:44,41:85:99:1087,0,1448:127"	"1|0:28,42:70:99:992,0,789:127"	"0|0:79,0:79:99:0,181,2342:127"
+19	20782710	rs10413568	T	C	6304.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=203;Dels=0.00;FS=0.000;HaplotypeScore=0.6919;MLEAC=6;MLEAF=1.00;MQ=59.56;MQ0=0;QD=31.05;SB=-2.367e+03;VQSLOD=10.7708;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,74:74:99:2375,214,0:127"	"1|1:0,80:80:99:2480,217,0:127"	"1|1:0,49:49:99:1449,129,0:127"
+22	50309915	rs9616205	A	T	1712.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-0.936;DB;DP=162;Dels=0.00;FS=2.857;HaplotypeScore=2.1490;MLEAC=2;MLEAF=0.333;MQ=56.21;MQ0=5;MQRankSum=0.892;QD=13.92;ReadPosRankSum=-1.040;SB=-9.940e+02;VQSLOD=6.2766;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0|1:39,33:72:99:777,0,994:78"	"0|0:39,0:39:78:0,78,1010:78"	"1|0:16,35:51:99:974,0,257:78"
+8	8974322	rs28440961	G	A	1682.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.716;DB;DP=190;Dels=0.00;FS=0.579;HaplotypeScore=1.5434;MLEAC=2;MLEAF=0.333;MQ=59.33;MQ0=0;MQRankSum=-0.652;QD=12.65;ReadPosRankSum=0.746;SB=-7.040e+02;VQSLOD=9.3708;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"1|0:32,32:64:99:790,0,1002:125"	"1|0:33,36:69:99:931,0,866:125"	"0|0:57,0:57:99:0,126,1622:125"
+6	131725921	.	G	A	64.24	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=3.650;DP=182;Dels=0.00;FS=3.535;HaplotypeScore=2.2441;MLEAC=1;MLEAF=0.167;MQ=50.85;MQ0=1;MQRankSum=-6.039;QD=1.31;ReadPosRankSum=-1.757;SB=-4.901e+01;VQSLOD=-0.6667;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|0:59,0:60:99:0,168,1897:98"	"0|1:33,16:49:99:99,0,790:98"	"0|0:73,0:73:99:0,156,1824:98"
+10	65355538	rs10733794	A	G	2464.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-8.392;DB;DP=193;Dels=0.00;FS=7.473;HaplotypeScore=2.5434;MLEAC=3;MLEAF=0.500;MQ=58.06;MQ0=2;MQRankSum=0.999;QD=18.96;ReadPosRankSum=-1.229;SB=-1.065e+03;VQSLOD=6.3934;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|0:33,32:65:99:830,0,1039:127"	"1|1:1,64:65:99:1679,153,0:127"	"0|0:63,0:63:99:0,159,2042:127"
+11	44985620	rs7106313	C	T	338.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=2.185;DB;DP=162;Dels=0.00;FS=4.840;HaplotypeScore=2.0046;MLEAC=1;MLEAF=0.167;MQ=56.94;MQ0=0;MQRankSum=2.019;QD=8.67;ReadPosRankSum=0.983;SB=-2.190e+02;VQSLOD=6.6624;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|0:79,0:80:99:0,174,2084:72"	"0|0:43,0:43:72:0,72,877:72"	"0|1:20,18:39:99:373,0,365:72"
+1	90146546	rs7512447	C	T	8721.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=241;Dels=0.00;FS=0.000;HaplotypeScore=0.0000;MLEAC=6;MLEAF=1.00;MQ=59.40;MQ0=0;QD=36.19;SB=-4.084e+03;VQSLOD=11.3217;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|1:0,71:71:99:2599,196,0:127"	"1|1:0,86:86:99:3042,235,0:127"	"1|1:0,84:84:99:3080,238,0:127"
+16	88914235	rs12932521	C	T	329.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=1.978;DB;DP=114;Dels=0.00;FS=1.931;HaplotypeScore=0.9402;MLEAC=1;MLEAF=0.167;MQ=58.60;MQ0=0;MQRankSum=0.854;QD=7.84;ReadPosRankSum=-0.339;SB=-2.970e+02;VQSLOD=8.1036;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|0:43,0:43:99:0,102,1192:39"	"0|0:29,0:29:39:0,39,468:39"	"0|1:15,26:42:99:364,0,105:39"
+13	28463938	rs954750	C	T	2740.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=3.206;DB;DP=242;Dels=0.00;FS=0.000;HaplotypeScore=4.0078;MLEAC=2;MLEAF=0.333;MQ=59.46;MQ0=0;MQRankSum=0.880;QD=16.61;ReadPosRankSum=-0.617;SB=-1.312e+03;VQSLOD=6.7692;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|0:40,43:83:99:1362,0,1242:127"	"1|0:35,47:82:99:1417,0,1010:127"	"0|0:76,0:77:99:0,205,2635:127"
+17	44809197	rs116187585	A	G	8703.01	PASS	AC=6;AF=1.00;AN=6;BaseQRankSum=-0.554;DB;DP=254;Dels=0.00;FS=3.487;HaplotypeScore=4.0582;MLEAC=6;MLEAF=1.00;MQ=59.58;MQ0=0;MQRankSum=1.677;QD=34.26;ReadPosRankSum=1.483;SB=-4.228e+03;VQSLOD=6.6144;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|1:1,96:97:99:3470,268,0:127"	"1|1:0,82:84:99:2846,220,0:127"	"1|1:0,73:73:99:2387,184,0:127"
+6	26687649	.	G	C	1654.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=9.718;DP=410;Dels=0.00;FS=5.973;HaplotypeScore=5.0786;MLEAC=2;MLEAF=0.333;MQ=28.19;MQ0=32;MQRankSum=0.048;QD=6.17;ReadPosRankSum=0.408;SB=-5.110e+02;VQSLOD=-8.7346;culprit=DP	GT:AD:DP:GQ:PL:TP	"0|1:117,49:166:99:1013,0,2495:127"	"0|0:141,1:142:99:0,244,2576:127"	"1|0:70,32:102:99:680,0,1048:127"
+5	112750674	rs9716322	A	C	598.24	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=-0.293;DB;DP=199;Dels=0.00;FS=2.948;HaplotypeScore=0.3328;MLEAC=1;MLEAF=0.167;MQ=45.61;MQ0=2;MQRankSum=-2.398;QD=12.21;ReadPosRankSum=1.159;SB=-8.101e+01;VQSLOD=2.7717;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0|0:81,0:81:99:0,196,2534:127"	"0|1:23,26:49:99:633,0,479:127"	"0|0:68,1:69:99:0,174,2191:127"
+9	138617823	rs55724592	C	T	53.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-0.380;DB;DP=72;Dels=0.00;FS=8.078;HaplotypeScore=1.0225;MLEAC=1;MLEAF=0.167;MQ=58.90;MQ0=0;MQRankSum=0.851;QD=2.66;ReadPosRankSum=-0.344;SB=-9.096e+01;VQSLOD=4.2652;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|0:20,0:20:48:0,48,580:44"	"0|0:32,0:32:48:0,48,577:44"	"0|1:10,10:20:88:88,0,199:44"
+7	89752110	rs39232	T	G	3944.01	VQSRTrancheSNP99.00to99.90	AC=6;AF=1.00;AN=6;DB;DP=216;Dels=0.00;FS=0.000;HaplotypeScore=1.4477;MLEAC=6;MLEAF=1.00;MQ=38.19;MQ0=21;QD=18.26;SB=-2.716e+03;VQSLOD=2.6638;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|1:0,70:70:99:1564,132,0:101"	"1|1:0,79:79:99:1258,108,0:101"	"1|1:0,66:66:99:1122,102,0:101"
+16	11397080	rs1019552	T	C	2295.44	PASS	AC=6;AF=1.00;AN=6;DB;DP=169;Dels=0.01;FS=0.000;HaplotypeScore=8.2178;MLEAC=6;MLEAF=1.00;MQ=59.32;MQ0=0;QD=13.58;SB=-2.379e+03;VQSLOD=4.3801;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|1:0,71:71:96:1220,96,0:9"	"1|1:0,48:48:9:78,9,0:9"	"1|1:0,48:48:81:1035,81,0:9"
+2	187694833	rs10191094	T	C	1006.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-7.181;DB;DP=236;Dels=0.00;FS=9.083;HaplotypeScore=2.2688;MLEAC=1;MLEAF=0.167;MQ=59.73;MQ0=0;MQRankSum=-0.218;QD=13.07;ReadPosRankSum=-0.877;SB=-5.830e+02;VQSLOD=7.6003;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0|0:82,0:82:99:0,232,3021:127"	"0|0:77,0:77:99:0,217,2790:127"	"0|1:33,44:77:99:1041,0,988:127"
+19	3739001	rs56138006	C	T	976.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=4.634;DB;DP=118;Dels=0.00;FS=3.676;HaplotypeScore=1.4356;MLEAC=2;MLEAF=0.333;MQ=58.66;MQ0=0;MQRankSum=0.753;QD=11.22;ReadPosRankSum=1.107;SB=-6.380e+02;VQSLOD=7.4541;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|1:30,22:52:99:612,0,559:45"	"0|0:31,0:31:45:0,45,527:45"	"1|0:12,23:35:93:403,0,93:45"
+3	148344553	rs62274102	C	A	3191.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-1.860;DB;DP=232;Dels=0.00;FS=12.061;HaplotypeScore=2.3659;MLEAC=3;MLEAF=0.500;MQ=59.32;MQ0=0;MQRankSum=-0.551;QD=19.58;ReadPosRankSum=2.411;SB=-1.757e+03;VQSLOD=6.2908;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"1|0:46,39:85:99:985,0,1339:127"	"1|1:0,78:78:99:2251,175,0:127"	"0|0:69,0:69:99:0,153,2018:127"
+8	4048009	rs7007410	C	T	2713.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.954;DB;DP=197;Dels=0.00;FS=2.483;HaplotypeScore=0.7125;MLEAC=3;MLEAF=0.500;MQ=57.03;MQ0=0;MQRankSum=0.882;QD=13.77;ReadPosRankSum=-0.496;SB=-1.406e+03;VQSLOD=6.5035;culprit=FS	GT:AD:DP:GQ:PL:TP	"0/1:38,30:68:99:847,0,1168:127"	"0/1:30,30:60:99:916,0,921:127"	"0/1:32,36:69:99:989,0,882:127"
+4	161180100	rs167176	G	C	2497.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=6.811;DB;DP=191;Dels=0.00;FS=5.370;HaplotypeScore=0.7812;MLEAC=3;MLEAF=0.500;MQ=59.78;MQ0=0;MQRankSum=-0.584;QD=13.07;ReadPosRankSum=0.756;SB=-1.206e+03;VQSLOD=8.0012;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0/1:32,36:68:99:1100,0,895:127"	"0/1:41,35:76:99:987,0,1028:127"	"0/1:29,17:47:99:449,0,820:127"
+4	184811263	rs2871379	A	G	6376.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=211;Dels=0.00;FS=0.000;HaplotypeScore=0.5084;MLEAC=6;MLEAF=1.00;MQ=58.38;MQ0=0;QD=30.22;SB=-3.472e+03;VQSLOD=10.4879;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,78:78:99:2539,199,0:127"	"1|1:0,67:67:99:2072,165,0:127"	"1|1:0,66:66:99:1765,135,0:127"
+7	48862174	rs965346	A	G	877.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-6.250;DB;DP=194;Dels=0.00;FS=6.112;HaplotypeScore=0.6489;MLEAC=1;MLEAF=0.167;MQ=57.54;MQ0=0;MQRankSum=2.058;QD=16.25;ReadPosRankSum=-1.204;SB=-4.040e+02;VQSLOD=6.2372;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|0:82,0:82:99:0,232,3007:127"	"0|0:58,0:58:99:0,160,2067:127"	"0|1:22,32:54:99:912,0,686:127"
+3	108612711	rs2399252	T	A	3430.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-0.783;DB;DP=239;Dels=0.00;FS=4.436;HaplotypeScore=0.6593;MLEAC=3;MLEAF=0.500;MQ=59.64;MQ0=0;MQRankSum=-0.269;QD=14.35;ReadPosRankSum=-0.701;SB=-1.733e+03;VQSLOD=8.5079;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0/1:48,34:82:99:1066,0,1620:127"	"0/1:45,43:88:99:1370,0,1452:127"	"0/1:36,32:69:99:994,0,1128:127"
+4	169085855	rs2251558	A	G	1161.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=0.721;DB;DP=244;Dels=0.00;FS=5.247;HaplotypeScore=0.4893;MLEAC=1;MLEAF=0.167;MQ=59.91;MQ0=0;MQRankSum=1.574;QD=13.99;ReadPosRankSum=0.454;SB=-5.590e+02;VQSLOD=7.4222;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0|0:77,0:77:99:0,226,2915:127"	"0|1:43,40:83:99:1196,0,1294:127"	"0|0:84,0:84:99:0,232,2950:127"
+13	92742124	rs2148446	G	A	1884.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-2.340;DB;DP=213;Dels=0.00;FS=0.000;HaplotypeScore=0.3156;MLEAC=2;MLEAF=0.333;MQ=59.37;MQ0=0;MQRankSum=-2.935;QD=12.99;ReadPosRankSum=-0.579;SB=-9.540e+02;VQSLOD=7.2833;culprit=MQRankSum	GT:AD:DP:GQ:PL:TP	"0|1:38,38:76:99:1130,0,1190:127"	"0|0:68,0:68:99:0,190,2454:127"	"1|0:38,31:69:99:793,0,1094:127"
+19	54644879	rs36636	G	A	1790.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=2.505;DB;DP=187;Dels=0.00;FS=4.408;HaplotypeScore=1.5043;MLEAC=2;MLEAF=0.333;MQ=59.51;MQ0=0;MQRankSum=-1.266;QD=13.88;ReadPosRankSum=-1.226;SB=-1.081e+03;VQSLOD=7.8045;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|0:30,27:57:99:811,0,726:127"	"1|0:31,41:72:99:1018,0,730:127"	"0|0:58,0:58:99:0,144,1815:127"
+4	12652343	rs13114660	G	T	610.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.176;DB;DP=127;Dels=0.00;FS=0.000;HaplotypeScore=1.5681;MLEAC=1;MLEAF=0.167;MQ=58.86;MQ0=0;MQRankSum=-0.468;QD=16.06;ReadPosRankSum=1.246;SB=-3.060e+02;VQSLOD=7.8400;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|0:43,0:43:99:0,120,1561:102"	"0|1:15,23:38:99:645,0,407:102"	"0|0:44,1:46:99:0,103,1539:102"
+21	42833227	rs460904	T	C	3179.23	PASS	AC=6;AF=1.00;AN=6;DB;DP=155;Dels=0.00;FS=0.000;HaplotypeScore=2.4559;MLEAC=6;MLEAF=1.00;MQ=58.18;MQ0=0;QD=20.51;SB=-2.173e+03;VQSLOD=7.7042;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,60:60:90:1085,90,0:74"	"1|1:0,54:54:96:1172,96,0:74"	"1|1:0,41:41:75:960,75,0:74"
+3	26960556	rs4422260	T	C	878.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=-2.140;DB;DP=220;Dels=0.00;FS=1.108;HaplotypeScore=1.7204;MLEAC=2;MLEAF=0.333;MQ=41.87;MQ0=3;MQRankSum=-6.679;QD=5.97;ReadPosRankSum=-0.031;SB=-4.600e+02;VQSLOD=0.7170;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0|0:73,0:73:99:0,208,2660:127"	"0|1:32,48:80:99:759,0,915:127"	"0|1:37,30:67:99:158,0,1092:127"
+15	53677501	.	T	G	770.26	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=-8.969;DP=210;Dels=0.00;FS=347.467;HaplotypeScore=2.0911;MLEAC=3;MLEAF=0.500;MQ=58.31;MQ0=0;MQRankSum=0.438;QD=3.67;ReadPosRankSum=-6.409;SB=-5.499e-03;VQSLOD=-307.0964;culprit=FS	GT:AD:DP:GQ:PL:TP	"0/1:59,20:79:94:94,0,1389:94"	"0/1:41,31:72:99:438,0,721:94"	"0/1:37,21:59:99:277,0,521:94"
+7	4683258	rs62450857	G	A	1127.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-0.991;DB;DP=191;Dels=0.00;FS=3.236;HaplotypeScore=0.2774;MLEAC=1;MLEAF=0.167;MQ=57.16;MQ0=0;MQRankSum=1.297;QD=14.09;ReadPosRankSum=0.469;SB=-4.730e+02;VQSLOD=6.6182;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|0:66,0:66:99:0,196,2495:120"	"0|1:38,42:80:99:1162,0,1016:120"	"0|0:45,0:45:99:0,120,1531:120"
+22	43356130	rs6519353	A	C	3526.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.809;DB;DP=228;Dels=0.00;FS=6.336;HaplotypeScore=1.6306;MLEAC=3;MLEAF=0.500;MQ=59.41;MQ0=0;MQRankSum=-0.146;QD=22.46;ReadPosRankSum=2.034;SB=-1.954e+03;VQSLOD=8.5009;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"1|0:40,41:81:99:1020,0,1222:127"	"1|1:0,76:76:99:2506,196,0:127"	"0|0:71,0:71:99:0,165,2091:127"
+19	28150587	rs4404191	A	G	7419.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=209;Dels=0.00;FS=0.000;HaplotypeScore=0.2447;MLEAC=6;MLEAF=1.00;MQ=59.61;MQ0=0;QD=35.50;SB=-3.717e+03;VQSLOD=11.9901;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|1:0,70:70:99:2584,202,0:127"	"1|1:0,74:74:99:2509,193,0:127"	"1|1:0,65:65:99:2326,181,0:127"
+13	83670546	.	G	A	169.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=5.301;DP=178;Dels=0.00;FS=0.000;HaplotypeScore=36.5059;MLEAC=2;MLEAF=0.333;MQ=42.20;MQ0=11;MQRankSum=-6.654;QD=1.38;ReadPosRankSum=-0.761;SB=-1.340e+02;VQSLOD=-20.4053;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|1:37,16:53:99:139,0,523:90"	"0|0:51,4:55:91:0,91,1393:90"	"1|0:58,12:70:69:69,0,1214:90"
+3	8399330	rs6770171	G	A	6816.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=4.689;DB;DP=253;Dels=0.00;FS=0.637;HaplotypeScore=1.2788;MLEAC=5;MLEAF=0.833;MQ=58.42;MQ0=0;MQRankSum=0.607;QD=26.94;ReadPosRankSum=-0.503;SB=-3.369e+03;VQSLOD=8.0141;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"1|1:0,106:106:99:3784,292,0:127"	"1|1:0,72:72:99:2164,169,0:127"	"1|0:42,33:75:99:868,0,1146:127"
+10	4588547	rs313427	C	T	1985.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=3.695;DB;DP=204;Dels=0.00;FS=1.813;HaplotypeScore=0.6137;MLEAC=2;MLEAF=0.333;MQ=59.73;MQ0=0;MQRankSum=0.241;QD=14.18;ReadPosRankSum=0.717;SB=-1.082e+03;VQSLOD=9.7784;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|0:39,35:74:99:1029,0,1182:127"	"1|0:32,34:66:99:995,0,1024:127"	"0|0:64,0:64:99:0,175,2242:127"
+1	100763317	rs6681810	G	C	5583.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=196;Dels=0.00;FS=0.000;HaplotypeScore=3.7201;MLEAC=6;MLEAF=1.00;MQ=58.52;MQ0=0;QD=28.48;SB=-2.737e+03;VQSLOD=7.9151;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|1:1,76:77:99:2211,192,0:127"	"1|1:0,56:56:99:1593,141,0:127"	"1|1:0,62:62:99:1779,156,0:127"
+18	50973169	rs11661305	A	G	5320.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=2.753;DB;DP=196;Dels=0.00;FS=2.568;HaplotypeScore=1.1306;MLEAC=5;MLEAF=0.833;MQ=57.73;MQ0=0;MQRankSum=0.246;QD=27.14;ReadPosRankSum=0.186;SB=-2.411e+03;VQSLOD=7.5009;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|1:0,74:74:99:2621,202,0:127"	"1|0:30,37:67:99:1009,0,842:127"	"1|1:0,55:55:99:1690,132,0:127"
+12	12560642	rs10772559	G	T	501.28	VQSRTrancheSNP99.00to99.90	AC=4;AF=0.667;AN=6;BaseQRankSum=0.747;DB;DP=229;Dels=0.04;FS=17.409;HaplotypeScore=19.6989;MLEAC=4;MLEAF=0.667;MQ=49.37;MQ0=0;MQRankSum=-3.656;QD=2.19;ReadPosRankSum=-5.397;SB=-2.196e+03;VQSLOD=-10.1992;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"1|1:0,66:66:24:273,24,0:24"	"1|0:29,45:74:99:148,0,702:24"	"1|0:33,46:80:99:122,0,781:24"
+1	195392852	rs2119441	T	G	5369.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-2.284;DB;DP=241;Dels=0.00;FS=3.312;HaplotypeScore=1.8710;MLEAC=4;MLEAF=0.667;MQ=58.35;MQ0=0;MQRankSum=-0.643;QD=22.28;ReadPosRankSum=0.178;SB=-2.332e+03;VQSLOD=7.8524;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|0:37,42:79:99:1233,0,1145:127"	"1|1:0,84:84:99:2741,211,0:127"	"0|1:31,47:78:99:1395,0,804:127"
+12	79238948	rs10778234	C	T	3719.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=8.187;DB;DP=241;Dels=0.00;FS=7.073;HaplotypeScore=0.2447;MLEAC=3;MLEAF=0.500;MQ=59.41;MQ0=0;MQRankSum=-0.381;QD=15.43;ReadPosRankSum=0.579;SB=-1.864e+03;VQSLOD=7.8136;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0/1:42,35:77:99:1049,0,1213:127"	"0/1:37,32:69:99:988,0,957:127"	"0/1:42,53:95:99:1682,0,1062:127"
+2	228532558	rs6436725	G	A	3484.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=7.160;DB;DP=263;Dels=0.00;FS=1.547;HaplotypeScore=4.9679;MLEAC=3;MLEAF=0.500;MQ=58.60;MQ0=0;MQRankSum=1.137;QD=21.91;ReadPosRankSum=-0.416;SB=-1.472e+03;VQSLOD=5.4377;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|1:42,47:89:99:1549,0,932:127"	"0|0:104,0:104:99:0,247,2939:127"	"1|1:0,69:70:99:1935,156,0:127"
+21	34546711	rs11701692	T	C	1030.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-1.884;DB;DP=152;Dels=0.00;FS=8.325;HaplotypeScore=1.9325;MLEAC=2;MLEAF=0.333;MQ=57.61;MQ0=0;MQRankSum=-0.291;QD=10.51;ReadPosRankSum=0.258;SB=-4.600e+02;VQSLOD=6.4601;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|0:35,25:61:99:574,0,1137:127"	"1|0:19,18:37:99:495,0,498:127"	"0|0:54,0:54:99:0,141,1811:127"
+7	69334430	rs917719	C	T	1223.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=5.841;DB;DP=193;Dels=0.00;FS=6.656;HaplotypeScore=0.8147;MLEAC=2;MLEAF=0.333;MQ=59.81;MQ0=0;MQRankSum=1.631;QD=9.63;ReadPosRankSum=1.458;SB=-7.370e+02;VQSLOD=7.0004;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|0:38,39:77:99:770,0,1258:127"	"1|0:26,24:50:99:492,0,840:127"	"0|0:66,0:66:99:0,172,2210:127"
+2	237156689	rs13390270	G	A	852.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.150;DB;DP=205;Dels=0.00;FS=0.710;HaplotypeScore=1.7295;MLEAC=1;MLEAF=0.167;MQ=59.06;MQ0=0;MQRankSum=-0.193;QD=11.67;ReadPosRankSum=1.262;SB=-4.790e+02;VQSLOD=8.4962;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|0:73,0:73:99:0,202,2606:108"	"0|1:39,34:73:99:887,0,1027:108"	"0|0:59,0:59:99:0,108,1384:108"
+4	103859292	rs7676943	C	G	7573.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=235;Dels=0.00;FS=0.000;HaplotypeScore=0.0000;MLEAC=6;MLEAF=1.00;MQ=58.63;MQ0=0;QD=32.23;SB=-3.953e+03;VQSLOD=10.3945;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|1:1,95:96:99:3289,256,0:127"	"1|1:0,73:73:99:2137,166,0:127"	"1|1:0,66:66:99:2147,166,0:127"
+2	167166899	.	T	A	1064.78	VQSRTrancheSNP99.00to99.90	AC=5;AF=0.833;AN=6;BaseQRankSum=0.023;DP=278;Dels=0.00;FS=9.890;HaplotypeScore=0.2774;MLEAC=6;MLEAF=1.00;MQ=10.47;MQ0=239;MQRankSum=1.643;QD=3.83;ReadPosRankSum=0.347;SB=-1.083e-02;VQSLOD=-6.9449;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|1:174,12:186:36:401,36,0:4"	"1|1:37,14:52:39:431,39,0:4"	"1|0:31,9:40:3:271,0,3:4"
+6	110345430	rs56272355	T	C	882.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-7.241;DB;DP=230;Dels=0.00;FS=2.159;HaplotypeScore=1.7615;MLEAC=1;MLEAF=0.167;MQ=59.70;MQ0=0;MQRankSum=-0.200;QD=11.46;ReadPosRankSum=-0.480;SB=-5.580e+02;VQSLOD=8.9824;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0|0:77,0:77:99:0,220,2860:127"	"0|0:75,0:76:99:0,184,2321:127"	"0|1:35,42:77:99:917,0,926:127"
+5	164600452	rs7711548	C	A	588.32	VQSRTrancheSNP99.00to99.90	AC=6;AF=1.00;AN=6;BaseQRankSum=-3.291;DB;DP=192;Dels=0.02;FS=2.319;HaplotypeScore=32.6662;MLEAC=6;MLEAF=1.00;MQ=57.55;MQ0=0;MQRankSum=1.536;QD=3.06;ReadPosRankSum=-1.533;SB=-2.085e+03;VQSLOD=-1.4325;culprit=QD	GT:AD:DP:GQ:PL:TP	"1|1:15,52:69:18:155,18,0:15"	"1|1:11,55:66:36:296,36,0:15"	"1|1:18,36:54:15:175,15,0:15"
+4	132671861	rs6856716	C	G	2622.26	VQSRTrancheSNP99.90to100.00	AC=2;AF=0.333;AN=6;BaseQRankSum=3.143;DB;DP=617;DS;Dels=0.00;FS=5.808;HaplotypeScore=34.4109;MLEAC=2;MLEAF=0.333;MQ=24.78;MQ0=42;MQRankSum=3.293;QD=5.89;ReadPosRankSum=-0.736;SB=-1.412e+03;VQSLOD=-77.3455;culprit=DP	GT:AD:DP:GQ:PL:TP	"0|1:125,98:223:99:1761,0,1486:127"	"0|0:171,0:172:99:0,300,2641:127"	"1|0:152,70:222:99:900,0,2086:127"
+4	30898977	rs4386561	G	A	2449.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=3.817;DB;DP=231;Dels=0.00;FS=0.000;HaplotypeScore=0.9382;MLEAC=2;MLEAF=0.333;MQ=58.94;MQ0=0;MQRankSum=0.173;QD=15.70;ReadPosRankSum=1.051;SB=-1.131e+03;VQSLOD=8.3611;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|1:33,46:79:99:1380,0,944:127"	"0|0:75,0:75:99:0,202,2608:127"	"1|0:43,34:77:99:1108,0,1335:127"
+6	9408051	rs11751621	C	G	5140.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-2.350;DB;DP=241;Dels=0.00;FS=0.000;HaplotypeScore=0.6637;MLEAC=4;MLEAF=0.667;MQ=59.81;MQ0=0;MQRankSum=-0.205;QD=21.33;ReadPosRankSum=-0.033;SB=-2.552e+03;VQSLOD=8.9881;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|1:42,40:82:99:1156,0,1352:127"	"0|1:36,45:81:99:1253,0,1134:127"	"1|1:0,78:78:99:2731,214,0:127"
+12	112830546	rs150699511	C	A	487.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.014;DB;DP=179;Dels=0.00;FS=0.860;HaplotypeScore=2.3392;MLEAC=1;MLEAF=0.167;MQ=59.16;MQ0=0;MQRankSum=1.141;QD=8.86;ReadPosRankSum=0.950;SB=-2.870e+02;VQSLOD=8.1138;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|0:62,0:62:99:0,166,2141:127"	"0|1:34,21:55:99:522,0,751:127"	"0|0:62,0:62:99:0,141,1808:127"
+6	89947117	rs9942462	A	G	5019.01	PASS	AC=6;AF=1.00;AN=6;BaseQRankSum=1.654;DB;DP=181;Dels=0.00;FS=0.000;HaplotypeScore=3.3205;MLEAC=6;MLEAF=1.00;MQ=53.30;MQ0=0;MQRankSum=0.428;QD=27.73;ReadPosRankSum=1.090;SB=-3.151e+03;VQSLOD=5.6763;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|1:0,59:60:99:1715,138,0:92"	"1|1:1,55:56:93:1401,93,0:92"	"1|1:0,65:65:99:1903,153,0:92"
+1	8216712	rs11121115	A	G	1540.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.917;DB;DP=131;Dels=0.00;FS=11.669;HaplotypeScore=3.3539;MLEAC=3;MLEAF=0.500;MQ=57.74;MQ0=1;MQRankSum=0.427;QD=11.76;ReadPosRankSum=-0.219;SB=-9.390e+02;VQSLOD=5.5346;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0/1:23,28:51:99:681,0,668:127"	"0/1:16,18:34:99:338,0,244:127"	"0/1:24,22:46:99:560,0,323:127"
+2	1143476	rs4998209	C	T	1483.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-4.814;DB;DP=189;Dels=0.00;FS=5.611;HaplotypeScore=0.3245;MLEAC=2;MLEAF=0.333;MQ=58.36;MQ0=0;MQRankSum=1.579;QD=12.06;ReadPosRankSum=0.326;SB=-9.320e+02;VQSLOD=6.8071;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|0:66,0:66:99:0,178,2264:127"	"0|1:33,38:71:99:844,0,1024:127"	"0|1:26,26:52:99:678,0,719:127"
+20	59978756	rs1892320	T	C	3967.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-2.562;DB;DP=206;Dels=0.00;FS=14.249;HaplotypeScore=1.3838;MLEAC=4;MLEAF=0.667;MQ=59.89;MQ0=0;MQRankSum=-0.289;QD=19.26;ReadPosRankSum=0.221;SB=-2.292e+03;VQSLOD=7.6238;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|1:0,72:72:99:2337,181,0:127"	"1|0:38,29:67:99:743,0,1180:127"	"1|0:31,36:67:99:887,0,873:127"
+GL000212.1	28454	.	T	C	2248.99	VQSRTrancheSNP99.00to99.90	AC=4;AF=1.00;AN=4;BaseQRankSum=1.691;DP=94;Dels=0.00;FS=3.274;HaplotypeScore=0.9622;MLEAC=4;MLEAF=1.00;MQ=36.99;MQ0=7;MQRankSum=-0.428;QD=24.18;ReadPosRankSum=-1.284;SB=-1.053e+03;VQSLOD=1.2364;culprit=MQ	GT:AD:DP:GQ:PL:TP	"1|1:0,29:29:63:755,63,0:63"	./.	"1|1:1,63:64:99:1530,135,0:63"
+14	96490389	rs72702859	C	G	3394.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-6.529;DB;DP=264;Dels=0.00;FS=2.746;HaplotypeScore=3.1300;MLEAC=3;MLEAF=0.500;MQ=59.49;MQ0=0;MQRankSum=-1.258;QD=18.25;ReadPosRankSum=-0.961;SB=-1.966e+03;VQSLOD=6.3356;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"1|0:34,52:86:99:1358,0,886:127"	"1|1:0,100:100:99:2036,180,0:127"	"0|0:78,0:78:99:0,184,2393:127"
+1	165431906	rs7528908	G	T	2381.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=6.008;DB;DP=259;Dels=0.00;FS=4.727;HaplotypeScore=0.9857;MLEAC=2;MLEAF=0.333;MQ=59.75;MQ0=0;MQRankSum=0.916;QD=14.34;ReadPosRankSum=-0.907;SB=-9.050e+02;VQSLOD=8.1270;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0|1:48,40:88:99:1142,0,1428:127"	"0|0:93,0:93:99:0,259,3166:127"	"1|0:38,40:78:99:1278,0,1075:127"
+9	89010476	rs164937	T	C	736.24	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.977;DB;DP=216;Dels=0.00;FS=1.481;HaplotypeScore=1.0649;MLEAC=1;MLEAF=0.167;MQ=39.79;MQ0=9;MQRankSum=-3.028;QD=9.56;ReadPosRankSum=0.542;SB=-4.240e+02;VQSLOD=2.0772;culprit=MQ	GT:AD:DP:GQ:PL:TP	"0|0:66,0:66:99:0,174,2097:127"	"0|1:40,37:77:99:771,0,876:127"	"0|0:73,0:73:99:0,183,2147:127"
+3	189981901	.	A	G	179.25	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=2.258;DP=274;Dels=0.00;FS=73.736;HaplotypeScore=1.8333;MLEAC=1;MLEAF=0.167;MQ=54.08;MQ0=6;MQRankSum=-2.651;QD=1.97;ReadPosRankSum=-6.101;SB=-6.400e+01;VQSLOD=-18.1951;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"1|0:64,27:91:99:214,0,679:51"	"1|0:78,10:88:0:0,21,1685:51"	"0|0:86,9:95:74:0,74,1891:51"
+GL000214.1	115144	.	C	T	102.07	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=0.854;DP=103;Dels=0.00;FS=14.185;HaplotypeScore=14.9478;MLEAC=2;MLEAF=0.333;MQ=38.45;MQ0=1;MQRankSum=-2.314;QD=1.05;ReadPosRankSum=1.480;SB=-6.153e+01;VQSLOD=-14.7562;culprit=QD	GT:AD:DP:GQ:PL:TP	"0|0:6,0:6:3:0,3,22:4"	"0|1:9,11:20:16:81,0,16:4"	"0|1:63,14:77:58:58,0,908:4"
+9	44998848	.	C	G	254.43	VQSRTrancheSNP99.00to99.90	AC=5;AF=0.833;AN=6;BaseQRankSum=2.203;DP=193;Dels=0.00;FS=10.822;HaplotypeScore=0.2447;MLEAC=5;MLEAF=0.833;MQ=6.48;MQ0=163;MQRankSum=-1.206;QD=1.32;ReadPosRankSum=0.790;SB=-1.372e+02;VQSLOD=-6.6319;culprit=QD	GT:AD:DP:GQ:PL:TP	"1|0:39,27:66:23:132,0,23:8"	"1|1:36,16:52:15:118,15,0:8"	"0|1:53,22:75:1:45,6,0:8"
+8	42044954	rs1058720	G	A	2760.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=4.313;DB;DP=157;Dels=0.00;FS=0.000;HaplotypeScore=2.0979;MLEAC=4;MLEAF=0.667;MQ=58.82;MQ0=0;MQRankSum=-2.021;QD=17.58;ReadPosRankSum=-0.462;SB=-1.377e+03;VQSLOD=7.5777;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,56:56:99:1820,147,0:127"	"1|0:24,27:51:99:555,0,233:127"	"1|0:26,24:50:99:427,0,458:127"
+3	179020937	rs13082816	C	T	1116.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=5.603;DB;DP=82;Dels=0.00;FS=0.000;HaplotypeScore=0.6358;MLEAC=4;MLEAF=0.667;MQ=54.57;MQ0=1;MQRankSum=0.374;QD=13.61;ReadPosRankSum=-0.037;SB=-2.010e+02;VQSLOD=6.0907;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|0:13,13:26:99:388,0,178:36"	"1|1:0,24:24:36:442,36,0:36"	"0|1:13,19:32:99:328,0,179:36"
+10	38560911	rs80189231	T	A	1072.26	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=0.103;DB;DP=356;Dels=0.00;FS=12.038;HaplotypeScore=5.4015;MLEAC=3;MLEAF=0.500;MQ=49.74;MQ0=6;MQRankSum=-2.686;QD=3.01;ReadPosRankSum=0.797;SB=-1.690e+02;VQSLOD=-3.5129;culprit=QD	GT:AD:DP:GQ:PL:TP	"0/1:109,26:135:99:389,0,2879:127"	"0/1:84,27:111:99:539,0,2214:127"	"0/1:93,17:110:99:183,0,2277:127"
+18	10010426	rs4797393	T	C	4197.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=0.425;DB;DP=210;Dels=0.00;FS=1.132;HaplotypeScore=1.2660;MLEAC=4;MLEAF=0.667;MQ=59.43;MQ0=0;MQRankSum=-2.916;QD=19.99;ReadPosRankSum=0.379;SB=-2.001e+03;VQSLOD=7.0312;culprit=MQRankSum	GT:AD:DP:GQ:PL:TP	"1|1:0,65:65:99:2247,181,0:127"	"1|0:35,39:75:99:1170,0,967:127"	"1|0:41,29:70:99:780,0,1052:127"
+1	156248265	rs12038203	C	T	643.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-0.311;DB;DP=145;Dels=0.00;FS=4.568;HaplotypeScore=0.2774;MLEAC=1;MLEAF=0.167;MQ=59.08;MQ0=0;MQRankSum=0.862;QD=12.86;ReadPosRankSum=0.177;SB=-3.450e+02;VQSLOD=7.5008;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	"0|0:47,0:47:99:0,123,1604:110"	"0|0:48,0:48:99:0,111,1433:110"	"0|1:25,25:50:99:678,0,694:110"
+11	19325064	rs793250	G	A	5752.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=5.080;DB;DP=203;Dels=0.00;FS=2.530;HaplotypeScore=0.8165;MLEAC=5;MLEAF=0.833;MQ=59.35;MQ0=0;MQRankSum=-0.061;QD=28.34;ReadPosRankSum=0.095;SB=-3.093e+03;VQSLOD=9.4617;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,71:71:99:2527,190,0:127"	"1|1:0,78:78:99:2626,205,0:127"	"1|0:32,22:54:99:599,0,768:127"
+13	56456878	rs2997102	C	A	9454.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=257;Dels=0.00;FS=0.000;HaplotypeScore=0.9537;MLEAC=6;MLEAF=1.00;MQ=59.57;MQ0=0;QD=36.79;SB=-4.826e+03;VQSLOD=11.5149;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,99:99:99:3692,280,0:127"	"1|1:0,88:88:99:3239,253,0:127"	"1|1:0,70:70:99:2523,193,0:127"
+10	116646860	rs4752347	T	A	4159.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-3.459;DB;DP=197;Dels=0.00;FS=3.519;HaplotypeScore=0.6313;MLEAC=4;MLEAF=0.667;MQ=59.27;MQ0=0;MQRankSum=1.049;QD=21.11;ReadPosRankSum=-1.271;SB=-2.347e+03;VQSLOD=8.3322;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	"1|1:0,63:63:99:2191,169,0:127"	"1|0:31,35:66:99:1031,0,863:127"	"1|0:31,37:68:99:937,0,774:127"
+1	110091282	rs1279195	C	T	952.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=2.646;DB;DP=101;Dels=0.00;FS=19.666;HaplotypeScore=1.9160;MLEAC=2;MLEAF=0.333;MQ=56.72;MQ0=0;MQRankSum=-0.345;QD=12.37;ReadPosRankSum=0.567;SB=-5.350e+02;VQSLOD=4.1741;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|0:14,29:46:99:726,0,219:42"	"1|0:13,12:31:99:265,0,298:42"	"0|0:18,0:24:42:0,42,522:42"
+3	17501103	.	T	G	45.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=-6.477;DP=156;Dels=0.00;FS=71.755;HaplotypeScore=1.5253;MLEAC=2;MLEAF=0.333;MQ=58.02;MQ0=0;MQRankSum=-0.156;QD=0.43;ReadPosRankSum=-3.974;SB=-1.474e-02;VQSLOD=-14.1451;culprit=FS	GT:AD:DP:GQ:PL:TP	"0|0:43,8:51:99:0,114,1252:33"	"0|1:22,24:46:34:34,0,492:33"	"0|1:24,34:59:50:50,0,492:33"
+5	121302662	.	G	T	143.72	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=1.413;DP=150;Dels=0.02;FS=161.482;HaplotypeScore=2.8631;MLEAC=3;MLEAF=0.500;MQ=35.76;MQ0=1;MQRankSum=0.422;QD=0.96;ReadPosRankSum=-5.675;SB=-1.466e+00;VQSLOD=-77.2440;culprit=FS	GT:AD:DP:GQ:PL:TP	"0/1:32,21:53:99:120,0,251:5"	"0/1:35,12:47:57:57,0,271:5"	"0/1:35,12:47:4:4,0,259:5"
+4	177855678	rs1545090	A	G	7065.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=229;Dels=0.00;FS=0.000;HaplotypeScore=1.1696;MLEAC=6;MLEAF=1.00;MQ=59.50;MQ0=0;QD=30.85;SB=-3.799e+03;VQSLOD=11.0069;culprit=FS	GT:AD:DP:GQ:PL:TP	"1|1:0,84:84:99:2701,235,0:127"	"1|1:0,79:80:99:2401,211,0:127"	"1|1:0,65:65:99:1963,165,0:127"
+11	113825129	rs1150234	G	A	2441.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=3.977;DB;DP=210;Dels=0.00;FS=0.000;HaplotypeScore=2.0700;MLEAC=3;MLEAF=0.500;MQ=59.49;MQ0=0;MQRankSum=0.877;QD=11.63;ReadPosRankSum=0.262;SB=-1.513e+03;VQSLOD=9.0378;culprit=FS	GT:AD:DP:GQ:PL:TP	"0/1:30,33:63:99:881,0,774:127"	"0/1:46,33:80:99:726,0,1020:127"	"0/1:32,35:67:99:873,0,759:127"
\ No newline at end of file
diff --git a/testdata/net/sf/picard/vcf/CEUTrio-snps.vcf b/testdata/picard/vcf/CEUTrio-snps.vcf
similarity index 100%
rename from testdata/net/sf/picard/vcf/CEUTrio-snps.vcf
rename to testdata/picard/vcf/CEUTrio-snps.vcf
diff --git a/testdata/net/sf/picard/vcf/CEUTrio-snps.vcf.idx b/testdata/picard/vcf/CEUTrio-snps.vcf.idx
similarity index 100%
rename from testdata/net/sf/picard/vcf/CEUTrio-snps.vcf.idx
rename to testdata/picard/vcf/CEUTrio-snps.vcf.idx
diff --git a/testdata/picard/vcf/CEUTrio-snps_CEUTrio-snps_del_line_GtConcordanceDiff.genotype_concordance_contingency_metrics b/testdata/picard/vcf/CEUTrio-snps_CEUTrio-snps_del_line_GtConcordanceDiff.genotype_concordance_contingency_metrics
new file mode 100644
index 0000000..8b5c633
--- /dev/null
+++ b/testdata/picard/vcf/CEUTrio-snps_CEUTrio-snps_del_line_GtConcordanceDiff.genotype_concordance_contingency_metrics
@@ -0,0 +1,11 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.vcf.GenotypeConcordance TRUTH_VCF=testdata/picard/vcf/CEUTrio-snps.vcf CALL_VCF=testdata/picard/vcf/CEUTrio-snps_del_line.vcf OUTPUT=testdata/picard/vcf/CEUTrio-snps_CEUTrio-snps_del_line_GtConcordanceDiff TRUTH_SAMPLE=NA12878 CALL_SAMPLE=NA12878    INTERSECT_INTERVALS=true MIN_GQ=0 MIN_DP=0 OUTPUT_ALL_ROWS=false USE_VCF_INDEX=false VERBOSITY=INFO QUIET=false VALIDATION_STRINGENCY=STRICT COMPRESSION_LEVEL=5 MAX_RECORDS_IN_RAM=500000 CREATE_INDEX=false CREATE_MD5_FILE=false
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Tue Nov 04 11:44:20 EST 2014
+
+## METRICS CLASS	picard.vcf.GenotypeConcordanceContingencyMetrics
+VARIANT_TYPE	TRUTH_SAMPLE	CALL_SAMPLE	TP_COUNT	TN_COUNT	FP_COUNT	FN_COUNT	EMPTY_COUNT
+SNP	NA12878	NA12878	162	104	0	1	40
+INDEL	NA12878	NA12878	0	0	0	0	0
+
+
diff --git a/testdata/picard/vcf/CEUTrio-snps_CEUTrio-snps_del_line_GtConcordanceDiff.genotype_concordance_detail_metrics b/testdata/picard/vcf/CEUTrio-snps_CEUTrio-snps_del_line_GtConcordanceDiff.genotype_concordance_detail_metrics
new file mode 100644
index 0000000..2bf1d65
--- /dev/null
+++ b/testdata/picard/vcf/CEUTrio-snps_CEUTrio-snps_del_line_GtConcordanceDiff.genotype_concordance_detail_metrics
@@ -0,0 +1,13 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.vcf.GenotypeConcordance TRUTH_VCF=testdata/picard/vcf/CEUTrio-snps.vcf CALL_VCF=testdata/picard/vcf/CEUTrio-snps_del_line.vcf OUTPUT=testdata/picard/vcf/CEUTrio-snps_CEUTrio-snps_del_line_GtConcordanceDiff TRUTH_SAMPLE=NA12878 CALL_SAMPLE=NA12878    INTERSECT_INTERVALS=true MIN_GQ=0 MIN_DP=0 OUTPUT_ALL_ROWS=false USE_VCF_INDEX=false VERBOSITY=INFO QUIET=false VALIDATION_STRINGENCY=STRICT COMPRESSION_LEVEL=5 MAX_RECORDS_IN_RAM=500000 CREATE_INDEX=false CREATE_MD5_FILE=false
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Tue Nov 04 11:44:20 EST 2014
+
+## METRICS CLASS	picard.vcf.GenotypeConcordanceDetailMetrics
+VARIANT_TYPE	TRUTH_SAMPLE	CALL_SAMPLE	TRUTH_STATE	CALL_STATE	COUNT	CONTINGENCY_VALUES
+SNP	NA12878	NA12878	HET_REF_VAR1	HET_REF_VAR1	104	TP,TN
+SNP	NA12878	NA12878	HOM_VAR1	MISSING	1	FN
+SNP	NA12878	NA12878	HOM_VAR1	HOM_VAR1	58	TP
+SNP	NA12878	NA12878	VC_FILTERED	VC_FILTERED	40	EMPTY
+
+
diff --git a/testdata/picard/vcf/CEUTrio-snps_CEUTrio-snps_del_line_GtConcordanceDiff.genotype_concordance_summary_metrics b/testdata/picard/vcf/CEUTrio-snps_CEUTrio-snps_del_line_GtConcordanceDiff.genotype_concordance_summary_metrics
new file mode 100644
index 0000000..941314a
--- /dev/null
+++ b/testdata/picard/vcf/CEUTrio-snps_CEUTrio-snps_del_line_GtConcordanceDiff.genotype_concordance_summary_metrics
@@ -0,0 +1,11 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.vcf.GenotypeConcordance TRUTH_VCF=/Users/kbergin/picard/testdata/picard/vcf/CEUTrio-snps.vcf CALL_VCF=/Users/kbergin/picard/testdata/picard/vcf/CEUTrio-snps_del_line.vcf OUTPUT=/Users/kbergin/picard/testdata/picard/vcf/CEUTrio-snps_CEUTrio-snps_del_line_GtConcordanceDiff TRUTH_SAMPLE=NA12878 CALL_SAMPLE=NA12878    INTERSECT_INTERVALS=true MIN_GQ=0 MIN_DP=0 OUTPUT_ALL_ROWS=false USE_VCF_INDEX=false MISSING_SITES_HOM_REF=false VERBOSITY=INFO QUIET=false VALIDATION_STRINGENCY=STRIC [...]
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Wed Jul 29 14:04:55 EDT 2015
+
+## METRICS CLASS	picard.vcf.GenotypeConcordanceSummaryMetrics
+VARIANT_TYPE	TRUTH_SAMPLE	CALL_SAMPLE	HET_SENSITIVITY	HET_PPV	HET_SPECIFICITY	HOMVAR_SENSITIVITY	HOMVAR_PPV	HOMVAR_SPECIFICITY	VAR_SENSITIVITY	VAR_PPV	VAR_SPECIFICITY	GENOTYPE_CONCORDANCE	NON_REF_GENOTYPE_CONCORDANCE
+SNP	NA12878	NA12878	1	1	?	0.983051	1	?	0.993865	1	1	1	1
+INDEL	NA12878	NA12878	?	?	?	?	?	?	?	?	?	?	?
+
+
diff --git a/testdata/picard/vcf/CEUTrio-snps_CEUTrio-snps_first_line_GtConcordanceDiff.genotype_concordance_contingency_metrics b/testdata/picard/vcf/CEUTrio-snps_CEUTrio-snps_first_line_GtConcordanceDiff.genotype_concordance_contingency_metrics
new file mode 100644
index 0000000..ab82ddf
--- /dev/null
+++ b/testdata/picard/vcf/CEUTrio-snps_CEUTrio-snps_first_line_GtConcordanceDiff.genotype_concordance_contingency_metrics
@@ -0,0 +1,11 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.vcf.GenotypeConcordance TRUTH_VCF=testdata/picard/vcf/CEUTrio-snps.vcf CALL_VCF=testdata/picard/vcf/CEUTrio-snps_first_line_diff.vcf OUTPUT=testdata/picard/vcf/CEUTrio-snps_CEUTrio-snps_first_line_GtConcordanceDiff TRUTH_SAMPLE=NA12878 CALL_SAMPLE=NA12878    INTERSECT_INTERVALS=true MIN_GQ=0 MIN_DP=0 OUTPUT_ALL_ROWS=false USE_VCF_INDEX=false VERBOSITY=INFO QUIET=false VALIDATION_STRINGENCY=STRICT COMPRESSION_LEVEL=5 MAX_RECORDS_IN_RAM=500000 CREATE_INDEX=false CREATE_MD5_FILE=false
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Tue Nov 04 11:44:19 EST 2014
+
+## METRICS CLASS	picard.vcf.GenotypeConcordanceContingencyMetrics
+VARIANT_TYPE	TRUTH_SAMPLE	CALL_SAMPLE	TP_COUNT	TN_COUNT	FP_COUNT	FN_COUNT	EMPTY_COUNT
+SNP	NA12878	NA12878	162	104	0	1	40
+INDEL	NA12878	NA12878	0	0	0	0	0
+
+
diff --git a/testdata/picard/vcf/CEUTrio-snps_CEUTrio-snps_first_line_GtConcordanceDiff.genotype_concordance_detail_metrics b/testdata/picard/vcf/CEUTrio-snps_CEUTrio-snps_first_line_GtConcordanceDiff.genotype_concordance_detail_metrics
new file mode 100644
index 0000000..0b94fa0
--- /dev/null
+++ b/testdata/picard/vcf/CEUTrio-snps_CEUTrio-snps_first_line_GtConcordanceDiff.genotype_concordance_detail_metrics
@@ -0,0 +1,13 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.vcf.GenotypeConcordance TRUTH_VCF=testdata/picard/vcf/CEUTrio-snps.vcf CALL_VCF=testdata/picard/vcf/CEUTrio-snps_first_line_diff.vcf OUTPUT=testdata/picard/vcf/CEUTrio-snps_CEUTrio-snps_first_line_GtConcordanceDiff TRUTH_SAMPLE=NA12878 CALL_SAMPLE=NA12878    INTERSECT_INTERVALS=true MIN_GQ=0 MIN_DP=0 OUTPUT_ALL_ROWS=false USE_VCF_INDEX=false VERBOSITY=INFO QUIET=false VALIDATION_STRINGENCY=STRICT COMPRESSION_LEVEL=5 MAX_RECORDS_IN_RAM=500000 CREATE_INDEX=false CREATE_MD5_FILE=false
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Tue Nov 04 11:44:19 EST 2014
+
+## METRICS CLASS	picard.vcf.GenotypeConcordanceDetailMetrics
+VARIANT_TYPE	TRUTH_SAMPLE	CALL_SAMPLE	TRUTH_STATE	CALL_STATE	COUNT	CONTINGENCY_VALUES
+SNP	NA12878	NA12878	HET_REF_VAR1	HOM_REF	1	TN,FN
+SNP	NA12878	NA12878	HET_REF_VAR1	HET_REF_VAR1	103	TP,TN
+SNP	NA12878	NA12878	HOM_VAR1	HOM_VAR1	59	TP
+SNP	NA12878	NA12878	VC_FILTERED	VC_FILTERED	40	EMPTY
+
+
diff --git a/testdata/picard/vcf/CEUTrio-snps_CEUTrio-snps_first_line_GtConcordanceDiff.genotype_concordance_summary_metrics b/testdata/picard/vcf/CEUTrio-snps_CEUTrio-snps_first_line_GtConcordanceDiff.genotype_concordance_summary_metrics
new file mode 100644
index 0000000..65b94a1
--- /dev/null
+++ b/testdata/picard/vcf/CEUTrio-snps_CEUTrio-snps_first_line_GtConcordanceDiff.genotype_concordance_summary_metrics
@@ -0,0 +1,11 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.vcf.GenotypeConcordance TRUTH_VCF=/Users/kbergin/picard/testdata/picard/vcf/CEUTrio-snps.vcf CALL_VCF=/Users/kbergin/picard/testdata/picard/vcf/CEUTrio-snps_first_line_diff.vcf OUTPUT=/Users/kbergin/picard/testdata/picard/vcf/CEUTrio-snps_CEUTrio-snps_first_line_GtConcordanceDiff TRUTH_SAMPLE=NA12878 CALL_SAMPLE=NA12878    INTERSECT_INTERVALS=true MIN_GQ=0 MIN_DP=0 OUTPUT_ALL_ROWS=false USE_VCF_INDEX=false MISSING_SITES_HOM_REF=false VERBOSITY=INFO QUIET=false VALIDATION_STRINGE [...]
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Wed Jul 29 14:05:19 EDT 2015
+
+## METRICS CLASS	picard.vcf.GenotypeConcordanceSummaryMetrics
+VARIANT_TYPE	TRUTH_SAMPLE	CALL_SAMPLE	HET_SENSITIVITY	HET_PPV	HET_SPECIFICITY	HOMVAR_SENSITIVITY	HOMVAR_PPV	HOMVAR_SPECIFICITY	VAR_SENSITIVITY	VAR_PPV	VAR_SPECIFICITY	GENOTYPE_CONCORDANCE	NON_REF_GENOTYPE_CONCORDANCE
+SNP	NA12878	NA12878	0.990385	1	?	1	1	?	0.993865	1	1	0.995074	0.993865
+INDEL	NA12878	NA12878	?	?	?	?	?	?	?	?	?	?	?
+
+
diff --git a/testdata/picard/vcf/CEUTrio-snps_CEUTrio-snps_last_line_GtConcordanceDiff.genotype_concordance_contingency_metrics b/testdata/picard/vcf/CEUTrio-snps_CEUTrio-snps_last_line_GtConcordanceDiff.genotype_concordance_contingency_metrics
new file mode 100644
index 0000000..8ac9937
--- /dev/null
+++ b/testdata/picard/vcf/CEUTrio-snps_CEUTrio-snps_last_line_GtConcordanceDiff.genotype_concordance_contingency_metrics
@@ -0,0 +1,11 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.vcf.GenotypeConcordance TRUTH_VCF=testdata/picard/vcf/CEUTrio-snps.vcf CALL_VCF=testdata/picard/vcf/CEUTrio-snps_last_line_diff.vcf OUTPUT=testdata/picard/vcf/CEUTrio-snps_CEUTrio-snps_last_line_GtConcordanceDiff TRUTH_SAMPLE=NA12878 CALL_SAMPLE=NA12878    INTERSECT_INTERVALS=true MIN_GQ=0 MIN_DP=0 OUTPUT_ALL_ROWS=false USE_VCF_INDEX=false VERBOSITY=INFO QUIET=false VALIDATION_STRINGENCY=STRICT COMPRESSION_LEVEL=5 MAX_RECORDS_IN_RAM=500000 CREATE_INDEX=false CREATE_MD5_FILE=false
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Tue Nov 04 11:44:19 EST 2014
+
+## METRICS CLASS	picard.vcf.GenotypeConcordanceContingencyMetrics
+VARIANT_TYPE	TRUTH_SAMPLE	CALL_SAMPLE	TP_COUNT	TN_COUNT	FP_COUNT	FN_COUNT	EMPTY_COUNT
+SNP	NA12878	NA12878	163	104	0	0	40
+INDEL	NA12878	NA12878	0	0	0	0	0
+
+
diff --git a/testdata/picard/vcf/CEUTrio-snps_CEUTrio-snps_last_line_GtConcordanceDiff.genotype_concordance_detail_metrics b/testdata/picard/vcf/CEUTrio-snps_CEUTrio-snps_last_line_GtConcordanceDiff.genotype_concordance_detail_metrics
new file mode 100644
index 0000000..a66d8f7
--- /dev/null
+++ b/testdata/picard/vcf/CEUTrio-snps_CEUTrio-snps_last_line_GtConcordanceDiff.genotype_concordance_detail_metrics
@@ -0,0 +1,13 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.vcf.GenotypeConcordance TRUTH_VCF=testdata/picard/vcf/CEUTrio-snps.vcf CALL_VCF=testdata/picard/vcf/CEUTrio-snps_last_line_diff.vcf OUTPUT=testdata/picard/vcf/CEUTrio-snps_CEUTrio-snps_last_line_GtConcordanceDiff TRUTH_SAMPLE=NA12878 CALL_SAMPLE=NA12878    INTERSECT_INTERVALS=true MIN_GQ=0 MIN_DP=0 OUTPUT_ALL_ROWS=false USE_VCF_INDEX=false VERBOSITY=INFO QUIET=false VALIDATION_STRINGENCY=STRICT COMPRESSION_LEVEL=5 MAX_RECORDS_IN_RAM=500000 CREATE_INDEX=false CREATE_MD5_FILE=false
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Tue Nov 04 11:44:19 EST 2014
+
+## METRICS CLASS	picard.vcf.GenotypeConcordanceDetailMetrics
+VARIANT_TYPE	TRUTH_SAMPLE	CALL_SAMPLE	TRUTH_STATE	CALL_STATE	COUNT	CONTINGENCY_VALUES
+SNP	NA12878	NA12878	HET_REF_VAR1	HET_REF_VAR1	104	TP,TN
+SNP	NA12878	NA12878	HOM_VAR1	HOM_VAR1	59	TP
+SNP	NA12878	NA12878	VC_FILTERED	HOM_VAR1	1	EMPTY
+SNP	NA12878	NA12878	VC_FILTERED	VC_FILTERED	39	EMPTY
+
+
diff --git a/testdata/picard/vcf/CEUTrio-snps_CEUTrio-snps_last_line_GtConcordanceDiff.genotype_concordance_summary_metrics b/testdata/picard/vcf/CEUTrio-snps_CEUTrio-snps_last_line_GtConcordanceDiff.genotype_concordance_summary_metrics
new file mode 100644
index 0000000..bc09f0e
--- /dev/null
+++ b/testdata/picard/vcf/CEUTrio-snps_CEUTrio-snps_last_line_GtConcordanceDiff.genotype_concordance_summary_metrics
@@ -0,0 +1,11 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.vcf.GenotypeConcordance TRUTH_VCF=/Users/kbergin/picard/testdata/picard/vcf/CEUTrio-snps.vcf CALL_VCF=/Users/kbergin/picard/testdata/picard/vcf/CEUTrio-snps_last_line_diff.vcf OUTPUT=/Users/kbergin/picard/testdata/picard/vcf/CEUTrio-snps_CEUTrio-snps_last_line_GtConcordanceDiff TRUTH_SAMPLE=NA12878 CALL_SAMPLE=NA12878    INTERSECT_INTERVALS=true MIN_GQ=0 MIN_DP=0 OUTPUT_ALL_ROWS=false USE_VCF_INDEX=false MISSING_SITES_HOM_REF=false VERBOSITY=INFO QUIET=false VALIDATION_STRINGENC [...]
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Wed Jul 29 14:05:40 EDT 2015
+
+## METRICS CLASS	picard.vcf.GenotypeConcordanceSummaryMetrics
+VARIANT_TYPE	TRUTH_SAMPLE	CALL_SAMPLE	HET_SENSITIVITY	HET_PPV	HET_SPECIFICITY	HOMVAR_SENSITIVITY	HOMVAR_PPV	HOMVAR_SPECIFICITY	VAR_SENSITIVITY	VAR_PPV	VAR_SPECIFICITY	GENOTYPE_CONCORDANCE	NON_REF_GENOTYPE_CONCORDANCE
+SNP	NA12878	NA12878	1	1	?	1	1	?	1	1	1	0.995074	0.993902
+INDEL	NA12878	NA12878	?	?	?	?	?	?	?	?	?	?	?
+
+
diff --git a/testdata/picard/vcf/CEUTrio-snps_del_line.vcf b/testdata/picard/vcf/CEUTrio-snps_del_line.vcf
new file mode 100644
index 0000000..4545b1a
--- /dev/null
+++ b/testdata/picard/vcf/CEUTrio-snps_del_line.vcf
@@ -0,0 +1,405 @@
+##fileformat=VCFv4.1
+##ApplyRecalibration="analysis_type=ApplyRecalibration input_file=[] read_buffer_size=null phone_home=NO_ET gatk_key=/humgen/gsa-hpprojects/GATK/data/gatk_user_keys/gsamembers_broadinstitute.org.key read_filter=[] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta nonDeterministicRandomSeed=false downsampling_type=BY_SAMPLE downsample_to_fraction=null do [...]
+##CombineVariants="analysis_type=CombineVariants input_file=[] read_buffer_size=null phone_home=STANDARD gatk_key=null read_filter=[] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta nonDeterministicRandomSeed=false downsampling_type=BY_SAMPLE downsample_to_fraction=null downsample_to_coverage=1000 baq=OFF baqGapOpenPenalty=40.0 performanceLog=null use [...]
+##FILTER=<ID=LowQual,Description="Low quality">
+##FILTER=<ID=VQSRTrancheINDEL99.00to99.90,Description="Truth sensitivity tranche level for INDEL model at VQS Lod: -4.1718 <= x < -0.8611">
+##FILTER=<ID=VQSRTrancheINDEL99.90to100.00+,Description="Truth sensitivity tranche level for INDEL model at VQS Lod < -727.2136">
+##FILTER=<ID=VQSRTrancheINDEL99.90to100.00,Description="Truth sensitivity tranche level for INDEL model at VQS Lod: -727.2136 <= x < -4.1718">
+##FILTER=<ID=VQSRTrancheSNP99.00to99.90,Description="Truth sensitivity tranche level for SNP model at VQS Lod: -25.4561 <= x < 3.2489">
+##FILTER=<ID=VQSRTrancheSNP99.90to100.00+,Description="Truth sensitivity tranche level for SNP model at VQS Lod < -38672.7015">
+##FILTER=<ID=VQSRTrancheSNP99.90to100.00,Description="Truth sensitivity tranche level for SNP model at VQS Lod: -38672.7015 <= x < -25.4561">
+##FORMAT=<ID=AD,Number=.,Type=Integer,Description="Allelic depths for the ref and alt alleles in the order listed">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth (reads with MQ=255 or with bad mates are filtered)">
+##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##FORMAT=<ID=PL,Number=G,Type=Integer,Description="Normalized, Phred-scaled likelihoods for genotypes as defined in the VCF specification">
+##FORMAT=<ID=TP,Number=1,Type=Integer,Description="Phred score of the genotype combination and phase given that the genotypes are correct">
+##INFO=<ID=AC,Number=A,Type=Integer,Description="Allele count in genotypes, for each ALT allele, in the same order as listed">
+##INFO=<ID=AF,Number=A,Type=Float,Description="Allele Frequency, for each ALT allele, in the same order as listed">
+##INFO=<ID=AN,Number=1,Type=Integer,Description="Total number of alleles in called genotypes">
+##INFO=<ID=BaseQRankSum,Number=1,Type=Float,Description="Z-score from Wilcoxon rank sum test of Alt Vs. Ref base qualities">
+##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP Membership">
+##INFO=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth; some reads may have been filtered">
+##INFO=<ID=DS,Number=0,Type=Flag,Description="Were any of the samples downsampled?">
+##INFO=<ID=Dels,Number=1,Type=Float,Description="Fraction of Reads Containing Spanning Deletions">
+##INFO=<ID=END,Number=1,Type=Integer,Description="Stop position of the interval">
+##INFO=<ID=FS,Number=1,Type=Float,Description="Phred-scaled p-value using Fisher's exact test to detect strand bias">
+##INFO=<ID=HaplotypeScore,Number=1,Type=Float,Description="Consistency of the site with at most two segregating haplotypes">
+##INFO=<ID=InbreedingCoeff,Number=1,Type=Float,Description="Inbreeding coefficient as estimated from the genotype likelihoods per-sample when compared against the Hardy-Weinberg expectation">
+##INFO=<ID=MLEAC,Number=A,Type=Integer,Description="Maximum likelihood expectation (MLE) for the allele counts (not necessarily the same as the AC), for each ALT allele, in the same order as listed">
+##INFO=<ID=MLEAF,Number=A,Type=Float,Description="Maximum likelihood expectation (MLE) for the allele frequency (not necessarily the same as the AF), for each ALT allele, in the same order as listed">
+##INFO=<ID=MQ,Number=1,Type=Float,Description="RMS Mapping Quality">
+##INFO=<ID=MQ0,Number=1,Type=Integer,Description="Total Mapping Quality Zero Reads">
+##INFO=<ID=MQRankSum,Number=1,Type=Float,Description="Z-score From Wilcoxon rank sum test of Alt vs. Ref read mapping qualities">
+##INFO=<ID=QD,Number=1,Type=Float,Description="Variant Confidence/Quality by Depth">
+##INFO=<ID=RPA,Number=.,Type=Integer,Description="Number of times tandem repeat unit is repeated, for each allele (including reference)">
+##INFO=<ID=RU,Number=1,Type=String,Description="Tandem repeat unit (bases)">
+##INFO=<ID=ReadPosRankSum,Number=1,Type=Float,Description="Z-score from Wilcoxon rank sum test of Alt vs. Ref read position bias">
+##INFO=<ID=SB,Number=1,Type=Float,Description="Strand Bias">
+##INFO=<ID=STR,Number=0,Type=Flag,Description="Variant is a short tandem repeat">
+##INFO=<ID=VQSLOD,Number=1,Type=Float,Description="Log odds ratio of being a true variant versus being false under the trained gaussian mixture model">
+##INFO=<ID=culprit,Number=1,Type=String,Description="The annotation which was the worst performing in the Gaussian mixture model, likely the reason why the variant was filtered out">
+##INFO=<ID=set,Number=1,Type=String,Description="Source VCF for the merged record in CombineVariants">
+##PhaseByTransmission="analysis_type=PhaseByTransmission input_file=[] read_buffer_size=null phone_home=STANDARD gatk_key=null read_filter=[] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta nonDeterministicRandomSeed=false downsampling_type=BY_SAMPLE downsample_to_fraction=null downsample_to_coverage=1000 baq=OFF baqGapOpenPenalty=40.0 performanceLog= [...]
+##UnifiedGenotyper="analysis_type=UnifiedGenotyper input_file=[/humgen/gsa-hpprojects/NA12878Collection/bams/CEUTrio.HiSeq.WGS.b37.list] read_buffer_size=null phone_home=NO_ET gatk_key=/humgen/gsa-hpprojects/GATK/data/gatk_user_keys/gsamembers_broadinstitute.org.key read_filter=[] intervals=[/broad/hptmp/ami/tmp/queueScatterGather/.qlog/CEUTrio.indelcall-sg/temp_020_of_300/scatter.intervals] excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_s [...]
+##contig=<ID=1,length=249250621,assembly=b37>
+##contig=<ID=2,length=243199373,assembly=b37>
+##contig=<ID=3,length=198022430,assembly=b37>
+##contig=<ID=4,length=191154276,assembly=b37>
+##contig=<ID=5,length=180915260,assembly=b37>
+##contig=<ID=6,length=171115067,assembly=b37>
+##contig=<ID=7,length=159138663,assembly=b37>
+##contig=<ID=8,length=146364022,assembly=b37>
+##contig=<ID=9,length=141213431,assembly=b37>
+##contig=<ID=10,length=135534747,assembly=b37>
+##contig=<ID=11,length=135006516,assembly=b37>
+##contig=<ID=12,length=133851895,assembly=b37>
+##contig=<ID=13,length=115169878,assembly=b37>
+##contig=<ID=14,length=107349540,assembly=b37>
+##contig=<ID=15,length=102531392,assembly=b37>
+##contig=<ID=16,length=90354753,assembly=b37>
+##contig=<ID=17,length=81195210,assembly=b37>
+##contig=<ID=18,length=78077248,assembly=b37>
+##contig=<ID=19,length=59128983,assembly=b37>
+##contig=<ID=20,length=63025520,assembly=b37>
+##contig=<ID=21,length=48129895,assembly=b37>
+##contig=<ID=22,length=51304566,assembly=b37>
+##contig=<ID=X,length=155270560,assembly=b37>
+##contig=<ID=Y,length=59373566,assembly=b37>
+##contig=<ID=MT,length=16569,assembly=b37>
+##contig=<ID=GL000207.1,length=4262,assembly=b37>
+##contig=<ID=GL000226.1,length=15008,assembly=b37>
+##contig=<ID=GL000229.1,length=19913,assembly=b37>
+##contig=<ID=GL000231.1,length=27386,assembly=b37>
+##contig=<ID=GL000210.1,length=27682,assembly=b37>
+##contig=<ID=GL000239.1,length=33824,assembly=b37>
+##contig=<ID=GL000235.1,length=34474,assembly=b37>
+##contig=<ID=GL000201.1,length=36148,assembly=b37>
+##contig=<ID=GL000247.1,length=36422,assembly=b37>
+##contig=<ID=GL000245.1,length=36651,assembly=b37>
+##contig=<ID=GL000197.1,length=37175,assembly=b37>
+##contig=<ID=GL000203.1,length=37498,assembly=b37>
+##contig=<ID=GL000246.1,length=38154,assembly=b37>
+##contig=<ID=GL000249.1,length=38502,assembly=b37>
+##contig=<ID=GL000196.1,length=38914,assembly=b37>
+##contig=<ID=GL000248.1,length=39786,assembly=b37>
+##contig=<ID=GL000244.1,length=39929,assembly=b37>
+##contig=<ID=GL000238.1,length=39939,assembly=b37>
+##contig=<ID=GL000202.1,length=40103,assembly=b37>
+##contig=<ID=GL000234.1,length=40531,assembly=b37>
+##contig=<ID=GL000232.1,length=40652,assembly=b37>
+##contig=<ID=GL000206.1,length=41001,assembly=b37>
+##contig=<ID=GL000240.1,length=41933,assembly=b37>
+##contig=<ID=GL000236.1,length=41934,assembly=b37>
+##contig=<ID=GL000241.1,length=42152,assembly=b37>
+##contig=<ID=GL000243.1,length=43341,assembly=b37>
+##contig=<ID=GL000242.1,length=43523,assembly=b37>
+##contig=<ID=GL000230.1,length=43691,assembly=b37>
+##contig=<ID=GL000237.1,length=45867,assembly=b37>
+##contig=<ID=GL000233.1,length=45941,assembly=b37>
+##contig=<ID=GL000204.1,length=81310,assembly=b37>
+##contig=<ID=GL000198.1,length=90085,assembly=b37>
+##contig=<ID=GL000208.1,length=92689,assembly=b37>
+##contig=<ID=GL000191.1,length=106433,assembly=b37>
+##contig=<ID=GL000227.1,length=128374,assembly=b37>
+##contig=<ID=GL000228.1,length=129120,assembly=b37>
+##contig=<ID=GL000214.1,length=137718,assembly=b37>
+##contig=<ID=GL000221.1,length=155397,assembly=b37>
+##contig=<ID=GL000209.1,length=159169,assembly=b37>
+##contig=<ID=GL000218.1,length=161147,assembly=b37>
+##contig=<ID=GL000220.1,length=161802,assembly=b37>
+##contig=<ID=GL000213.1,length=164239,assembly=b37>
+##contig=<ID=GL000211.1,length=166566,assembly=b37>
+##contig=<ID=GL000199.1,length=169874,assembly=b37>
+##contig=<ID=GL000217.1,length=172149,assembly=b37>
+##contig=<ID=GL000216.1,length=172294,assembly=b37>
+##contig=<ID=GL000215.1,length=172545,assembly=b37>
+##contig=<ID=GL000205.1,length=174588,assembly=b37>
+##contig=<ID=GL000219.1,length=179198,assembly=b37>
+##contig=<ID=GL000224.1,length=179693,assembly=b37>
+##contig=<ID=GL000223.1,length=180455,assembly=b37>
+##contig=<ID=GL000195.1,length=182896,assembly=b37>
+##contig=<ID=GL000212.1,length=186858,assembly=b37>
+##contig=<ID=GL000222.1,length=186861,assembly=b37>
+##contig=<ID=GL000200.1,length=187035,assembly=b37>
+##contig=<ID=GL000193.1,length=189789,assembly=b37>
+##contig=<ID=GL000194.1,length=191469,assembly=b37>
+##contig=<ID=GL000225.1,length=211173,assembly=b37>
+##contig=<ID=GL000192.1,length=547496,assembly=b37>
+##reference=file:///humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta
+##source=PhaseByTransmission
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	NA12878	NA12891	NA12892
+1	8216712	rs11121115	A	G	1540.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.917;DB;DP=131;Dels=0.00;FS=11.669;HaplotypeScore=3.3539;MLEAC=3;MLEAF=0.500;MQ=57.74;MQ0=1;MQRankSum=0.427;QD=11.76;ReadPosRankSum=-0.219;SB=-9.390e+02;VQSLOD=5.5346;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:23,28:51:99:681,0,668:127	0/1:16,18:34:99:338,0,244:127	0/1:24,22:46:99:560,0,323:127
+1	17032814	rs2773183	T	C	2828.26	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.879;DB;DP=322;Dels=0.00;FS=2.430;HaplotypeScore=15.4499;MLEAC=3;MLEAF=0.500;MQ=56.86;MQ0=0;MQRankSum=2.916;QD=8.78;ReadPosRankSum=-1.245;SB=-1.943e+03;VQSLOD=-1.4207;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:63,59:122:99:1434,0,1831:127	0/1:53,56:109:99:910,0,871:127	0/1:61,30:91:99:523,0,1257:127
+1	47818917	rs12749507	A	G	1285.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.707;DB;DP=252;Dels=0.00;FS=2.139;HaplotypeScore=0.6661;MLEAC=1;MLEAF=0.167;MQ=59.83;MQ0=0;MQRankSum=-0.467;QD=13.39;ReadPosRankSum=0.535;SB=-6.730e+02;VQSLOD=9.2738;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:81,0:81:99:0,241,3171:127	0|1:53,42:96:99:1320,0,1615:127	0|0:75,0:75:99:0,217,2762:127
+1	59635894	rs331648	T	A	839.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-4.038;DB;DP=211;Dels=0.00;FS=1.427;HaplotypeScore=1.5485;MLEAC=1;MLEAF=0.167;MQ=58.68;MQ0=0;MQRankSum=-0.422;QD=11.82;ReadPosRankSum=-0.180;SB=-5.520e+02;VQSLOD=7.9477;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:78,0:78:99:0,199,2578:127	0|0:62,0:62:99:0,169,2205:127	0|1:33,38:71:99:874,0,897:127
+1	69502962	rs12724640	T	C	1868.23	VQSRTrancheSNP99.00to99.90	AC=6;AF=1.00;AN=6;BaseQRankSum=-1.732;DB;DP=110;Dels=0.00;FS=4.721;HaplotypeScore=1.9269;MLEAC=6;MLEAF=1.00;MQ=29.46;MQ0=22;MQRankSum=1.652;QD=16.98;ReadPosRankSum=-0.564;SB=-8.110e+02;VQSLOD=0.2103;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:5,23:29:63:693,63,0:50	1|1:5,38:43:66:675,66,0:50	1|1:9,29:38:51:538,51,0:50
+1	80481528	rs61774278	G	C	1775.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-1.614;DB;DP=168;Dels=0.00;FS=8.292;HaplotypeScore=2.0470;MLEAC=3;MLEAF=0.500;MQ=54.28;MQ0=0;MQRankSum=-0.052;QD=16.75;ReadPosRankSum=1.544;SB=-1.133e+03;VQSLOD=4.7735;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|1:35,26:61:99:767,0,778:80	0|0:62,0:62:84:0,84,1046:80	1|1:0,45:45:84:1053,84,0:80
+1	90146546	rs7512447	C	T	8721.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=241;Dels=0.00;FS=0.000;HaplotypeScore=0.0000;MLEAC=6;MLEAF=1.00;MQ=59.40;MQ0=0;QD=36.19;SB=-4.084e+03;VQSLOD=11.3217;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,71:71:99:2599,196,0:127	1|1:0,86:86:99:3042,235,0:127	1|1:0,84:84:99:3080,238,0:127
+1	100763317	rs6681810	G	C	5583.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=196;Dels=0.00;FS=0.000;HaplotypeScore=3.7201;MLEAC=6;MLEAF=1.00;MQ=58.52;MQ0=0;QD=28.48;SB=-2.737e+03;VQSLOD=7.9151;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:1,76:77:99:2211,192,0:127	1|1:0,56:56:99:1593,141,0:127	1|1:0,62:62:99:1779,156,0:127
+1	110091282	rs1279195	C	T	952.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=2.646;DB;DP=101;Dels=0.00;FS=19.666;HaplotypeScore=1.9160;MLEAC=2;MLEAF=0.333;MQ=56.72;MQ0=0;MQRankSum=-0.345;QD=12.37;ReadPosRankSum=0.567;SB=-5.350e+02;VQSLOD=4.1741;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:14,29:46:99:726,0,219:42	1|0:13,12:31:99:265,0,298:42	0|0:18,0:24:42:0,42,522:42
+1	146610795	rs58742099	C	T	2831.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.298;DB;DP=261;Dels=0.00;FS=7.033;HaplotypeScore=13.9060;MLEAC=2;MLEAF=0.333;MQ=59.62;MQ0=0;MQRankSum=0.753;QD=16.27;ReadPosRankSum=-1.405;SB=-1.481e+03;VQSLOD=3.4221;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:39,43:82:99:1329,0,1080:127	1|0:40,52:92:99:1541,0,1241:127	0|0:87,0:87:99:0,238,3098:127
+1	156248265	rs12038203	C	T	643.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-0.311;DB;DP=145;Dels=0.00;FS=4.568;HaplotypeScore=0.2774;MLEAC=1;MLEAF=0.167;MQ=59.08;MQ0=0;MQRankSum=0.862;QD=12.86;ReadPosRankSum=0.177;SB=-3.450e+02;VQSLOD=7.5008;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:47,0:47:99:0,123,1604:110	0|0:48,0:48:99:0,111,1433:110	0|1:25,25:50:99:678,0,694:110
+1	165431906	rs7528908	G	T	2381.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=6.008;DB;DP=259;Dels=0.00;FS=4.727;HaplotypeScore=0.9857;MLEAC=2;MLEAF=0.333;MQ=59.75;MQ0=0;MQRankSum=0.916;QD=14.34;ReadPosRankSum=-0.907;SB=-9.050e+02;VQSLOD=8.1270;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|1:48,40:88:99:1142,0,1428:127	0|0:93,0:93:99:0,259,3166:127	1|0:38,40:78:99:1278,0,1075:127
+1	175207612	rs11484568	C	T	1920.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=5.643;DB;DP=216;Dels=0.00;FS=0.537;HaplotypeScore=2.2467;MLEAC=2;MLEAF=0.333;MQ=58.99;MQ0=0;MQRankSum=0.383;QD=14.12;ReadPosRankSum=0.169;SB=-1.064e+03;VQSLOD=8.5912;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:34,40:74:99:1152,0,995:127	0|0:80,0:80:99:0,208,2602:127	1|0:34,28:62:99:807,0,998:127
+1	186656152	rs4422959	G	A	1342.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=7.230;DB;DP=270;Dels=0.00;FS=7.290;HaplotypeScore=1.1750;MLEAC=1;MLEAF=0.167;MQ=59.71;MQ0=0;MQRankSum=0.399;QD=17.21;ReadPosRankSum=-0.869;SB=-6.320e+02;VQSLOD=7.6734;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:99,0:99:99:0,283,3341:127	0|0:93,0:93:99:0,256,3022:127	0|1:33,45:78:99:1377,0,917:127
+1	195392852	rs2119441	T	G	5369.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-2.284;DB;DP=241;Dels=0.00;FS=3.312;HaplotypeScore=1.8710;MLEAC=4;MLEAF=0.667;MQ=58.35;MQ0=0;MQRankSum=-0.643;QD=22.28;ReadPosRankSum=0.178;SB=-2.332e+03;VQSLOD=7.8524;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:37,42:79:99:1233,0,1145:127	1|1:0,84:84:99:2741,211,0:127	0|1:31,47:78:99:1395,0,804:127
+1	204945934	rs6657372	A	G	1311.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-6.582;DB;DP=126;Dels=0.00;FS=0.000;HaplotypeScore=2.7088;MLEAC=3;MLEAF=0.500;MQ=58.78;MQ0=0;MQRankSum=0.480;QD=15.43;ReadPosRankSum=1.284;SB=-6.370e+02;VQSLOD=7.8448;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:22,28:50:99:629,0,675:68	0|0:40,0:41:84:0,84,1057:68	1|1:0,35:35:69:727,69,0:68
+1	216407409	rs3767692	A	G	8820.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-0.803;DB;DP=295;Dels=0.00;FS=1.345;HaplotypeScore=2.5841;MLEAC=5;MLEAF=0.833;MQ=59.28;MQ0=0;MQRankSum=-0.375;QD=29.90;ReadPosRankSum=-0.363;SB=-4.445e+03;VQSLOD=7.0549;culprit=DP	GT:AD:DP:GQ:PL:TP	1|1:1,115:116:99:4251,328,0:127	1|0:39,51:90:99:1430,0,1275:127	1|1:0,89:89:99:3139,241,0:127
+1	226163330	rs10915914	C	G	747.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-3.123;DB;DP=121;Dels=0.00;FS=0.863;HaplotypeScore=0.8289;MLEAC=2;MLEAF=0.333;MQ=58.96;MQ0=0;MQRankSum=-0.478;QD=9.70;ReadPosRankSum=-0.134;SB=-2.780e+02;VQSLOD=8.0849;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:43,1:44:99:0,117,1447:116	0|1:17,15:32:99:289,0,390:116	0|1:26,19:45:99:497,0,677:116
+1	243135892	rs7517403	C	T	2313.25	VQSRTrancheSNP99.00to99.90	AC=4;AF=0.667;AN=6;BaseQRankSum=7.051;DB;DP=168;Dels=0.00;FS=0.000;HaplotypeScore=0.5884;MLEAC=4;MLEAF=0.667;MQ=37.62;MQ0=11;MQRankSum=-5.659;QD=13.77;ReadPosRankSum=-0.977;SB=-9.200e+02;VQSLOD=2.2480;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:31,24:55:99:501,0,891:123	1|1:0,58:58:99:1263,123,0:123	0|1:28,27:55:99:591,0,714:123
+2	1143476	rs4998209	C	T	1483.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-4.814;DB;DP=189;Dels=0.00;FS=5.611;HaplotypeScore=0.3245;MLEAC=2;MLEAF=0.333;MQ=58.36;MQ0=0;MQRankSum=1.579;QD=12.06;ReadPosRankSum=0.326;SB=-9.320e+02;VQSLOD=6.8071;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:66,0:66:99:0,178,2264:127	0|1:33,38:71:99:844,0,1024:127	0|1:26,26:52:99:678,0,719:127
+2	9240279	rs56249990	A	G	3978.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=1.695;DB;DP=213;Dels=0.00;FS=7.834;HaplotypeScore=1.1897;MLEAC=3;MLEAF=0.500;MQ=59.40;MQ0=0;MQRankSum=0.143;QD=27.25;ReadPosRankSum=-0.097;SB=-1.991e+03;VQSLOD=9.1447;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:33,42:75:99:1400,0,1031:127	0|0:67,0:67:99:0,178,2277:127	1|1:0,71:71:99:2578,199,0:127
+2	18016237	rs12710649	A	T	3950.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-0.037;DB;DP=250;Dels=0.00;FS=2.158;HaplotypeScore=2.0804;MLEAC=3;MLEAF=0.500;MQ=59.14;MQ0=0;MQRankSum=0.494;QD=15.80;ReadPosRankSum=0.705;SB=-2.142e+03;VQSLOD=8.1407;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:46,59:105:99:1733,0,1505:127	0/1:39,37:76:99:925,0,1164:127	0/1:24,44:68:99:1292,0,628:127
+2	28790711	rs34787802	T	G	731.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-4.421;DB;DP=232;Dels=0.00;FS=2.403;HaplotypeScore=1.5189;MLEAC=1;MLEAF=0.167;MQ=57.98;MQ0=0;MQRankSum=0.447;QD=10.30;ReadPosRankSum=-1.833;SB=-4.550e+02;VQSLOD=6.8853;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:81,0:81:99:0,223,2877:127	0|1:36,35:71:99:766,0,947:127	0|0:79,0:80:99:0,205,2640:127
+2	36994439	rs11124542	A	C	1302.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-7.406;DB;DP=191;Dels=0.00;FS=3.335;HaplotypeScore=2.1785;MLEAC=3;MLEAF=0.500;MQ=58.93;MQ0=0;MQRankSum=-0.725;QD=6.82;ReadPosRankSum=0.302;SB=-1.006e+03;VQSLOD=7.9479;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:32,28:60:99:710,0,1044:127	0/1:34,25:59:99:309,0,772:127	0/1:45,27:72:99:322,0,1096:127
+2	45429089	rs13418430	C	A	2341.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=0.861;DB;DP=283;Dels=0.00;FS=2.854;HaplotypeScore=1.3288;MLEAC=2;MLEAF=0.333;MQ=59.62;MQ0=0;MQRankSum=-0.939;QD=12.52;ReadPosRankSum=-1.869;SB=-1.156e+03;VQSLOD=7.1503;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:60,49:109:99:1406,0,2061:127	1|0:41,37:78:99:974,0,1238:127	0|0:96,0:96:99:0,256,3312:127
+2	54408283	rs55993481	T	G	2128.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.961;DB;DP=222;Dels=0.00;FS=1.744;HaplotypeScore=3.9553;MLEAC=2;MLEAF=0.333;MQ=59.69;MQ0=0;MQRankSum=0.670;QD=14.28;ReadPosRankSum=1.313;SB=-1.076e+03;VQSLOD=6.5064;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:35,46:81:99:1392,0,921:127	1|0:35,33:68:99:775,0,878:127	0|0:73,0:73:99:0,175,2164:127
+2	64848970	rs35473866	T	C	655.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=0.263;DB;DP=218;Dels=0.00;FS=8.014;HaplotypeScore=2.5836;MLEAC=1;MLEAF=0.167;MQ=58.36;MQ0=0;MQRankSum=-0.168;QD=8.29;ReadPosRankSum=-0.307;SB=-3.420e+02;VQSLOD=5.9179;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:78,0:78:99:0,208,2627:127	0|0:61,0:61:99:0,135,1725:127	0|1:35,42:79:99:690,0,1042:127
+2	85513238	rs62162679	C	T	742.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.162;DB;DP=137;Dels=0.00;FS=4.474;HaplotypeScore=1.3905;MLEAC=2;MLEAF=0.333;MQ=57.50;MQ0=0;MQRankSum=0.479;QD=7.57;ReadPosRankSum=-0.272;SB=-5.520e+02;VQSLOD=7.1288;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:39,0:39:99:0,105,1267:104	0|1:23,23:47:99:430,0,551:104	0|1:31,20:51:99:351,0,633:104
+2	96514373	rs10186946	C	T	206.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=4.485;DB;DP=175;Dels=0.00;FS=2.805;HaplotypeScore=2.4200;MLEAC=2;MLEAF=0.333;MQ=39.07;MQ0=7;MQRankSum=-7.529;QD=1.61;ReadPosRankSum=0.813;SB=-2.501e+01;VQSLOD=-0.8655;culprit=QD	GT:AD:DP:GQ:PL:TP	1|0:35,23:58:62:62,0,484:61	1|0:22,46:70:99:183,0,387:61	0|0:46,0:47:99:0,99,1162:61
+2	117966808	rs333847	C	T	9037.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=269;Dels=0.00;FS=0.000;HaplotypeScore=3.7032;MLEAC=6;MLEAF=1.00;MQ=58.21;MQ0=0;QD=33.59;SB=-4.673e+03;VQSLOD=7.0546;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,78:78:99:2652,205,0:127	1|1:0,101:101:99:3158,247,0:127	1|1:0,89:90:99:3227,250,0:127
+2	127445050	rs113647072	A	G	1773.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-3.856;DB;DP=154;Dels=0.00;FS=4.202;HaplotypeScore=2.2701;MLEAC=4;MLEAF=0.667;MQ=59.16;MQ0=0;MQRankSum=0.759;QD=11.51;ReadPosRankSum=1.290;SB=-1.402e+03;VQSLOD=7.9185;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:26,28:54:99:652,0,472:78	0|1:26,22:49:99:350,0,462:78	1|1:0,50:51:78:813,78,0:78
+2	144289763	rs7607879	C	T	3308.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=1.386;DB;DP=225;Dels=0.00;FS=9.723;HaplotypeScore=1.4969;MLEAC=3;MLEAF=0.500;MQ=59.53;MQ0=0;MQRankSum=0.283;QD=14.70;ReadPosRankSum=1.392;SB=-1.760e+03;VQSLOD=8.2418;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:41,39:81:99:1190,0,1312:127	0/1:28,36:64:99:1057,0,834:127	0/1:44,36:80:99:1061,0,1275:127
+2	155726628	.	T	G	1351.23	VQSRTrancheSNP99.00to99.90	AC=6;AF=1.00;AN=6;BaseQRankSum=0.207;DP=193;Dels=0.00;FS=9.246;HaplotypeScore=0.5220;MLEAC=6;MLEAF=1.00;MQ=16.17;MQ0=87;MQRankSum=2.396;QD=7.00;ReadPosRankSum=1.069;SB=-4.420e+02;VQSLOD=-2.7874;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:3,56:59:60:591,60,0:27	1|1:8,49:57:27:245,27,0:27	1|1:12,65:77:57:553,57,0:27
+2	167166899	.	T	A	1064.78	VQSRTrancheSNP99.00to99.90	AC=5;AF=0.833;AN=6;BaseQRankSum=0.023;DP=278;Dels=0.00;FS=9.890;HaplotypeScore=0.2774;MLEAC=6;MLEAF=1.00;MQ=10.47;MQ0=239;MQRankSum=1.643;QD=3.83;ReadPosRankSum=0.347;SB=-1.083e-02;VQSLOD=-6.9449;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:174,12:186:36:401,36,0:4	1|1:37,14:52:39:431,39,0:4	1|0:31,9:40:3:271,0,3:4
+2	177175707	rs7355385	A	G	2590.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-0.866;DB;DP=206;Dels=0.00;FS=14.872;HaplotypeScore=0.3111;MLEAC=3;MLEAF=0.500;MQ=59.12;MQ0=0;MQRankSum=-0.937;QD=20.40;ReadPosRankSum=-0.287;SB=-8.970e+02;VQSLOD=6.8179;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:33,32:65:99:856,0,1069:127	1|1:0,62:62:99:1779,150,0:127	0|0:78,1:79:99:0,193,2411:127
+2	187694833	rs10191094	T	C	1006.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-7.181;DB;DP=236;Dels=0.00;FS=9.083;HaplotypeScore=2.2688;MLEAC=1;MLEAF=0.167;MQ=59.73;MQ0=0;MQRankSum=-0.218;QD=13.07;ReadPosRankSum=-0.877;SB=-5.830e+02;VQSLOD=7.6003;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:82,0:82:99:0,232,3021:127	0|0:77,0:77:99:0,217,2790:127	0|1:33,44:77:99:1041,0,988:127
+2	198567638	rs12619333	C	G	2201.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-0.028;DB;DP=240;Dels=0.00;FS=4.757;HaplotypeScore=1.3741;MLEAC=2;MLEAF=0.333;MQ=59.37;MQ0=1;MQRankSum=0.131;QD=13.42;ReadPosRankSum=0.123;SB=-1.051e+03;VQSLOD=8.1261;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:38,45:84:99:1298,0,1249:127	1|0:45,35:80:99:942,0,1493:127	0|0:76,0:76:99:0,196,2542:127
+2	209758643	rs12992166	C	T	1534.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=6.178;DB;DP=163;Dels=0.00;FS=8.813;HaplotypeScore=2.3636;MLEAC=2;MLEAF=0.333;MQ=58.93;MQ0=0;MQRankSum=1.988;QD=12.08;ReadPosRankSum=1.075;SB=-4.720e+02;VQSLOD=6.8226;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:35,22:59:99:610,0,886:93	1|0:32,36:68:99:963,0,797:93	0|0:36,0:36:93:0,93,1058:93
+2	228532558	rs6436725	G	A	3484.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=7.160;DB;DP=263;Dels=0.00;FS=1.547;HaplotypeScore=4.9679;MLEAC=3;MLEAF=0.500;MQ=58.60;MQ0=0;MQRankSum=1.137;QD=21.91;ReadPosRankSum=-0.416;SB=-1.472e+03;VQSLOD=5.4377;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:42,47:89:99:1549,0,932:127	0|0:104,0:104:99:0,247,2939:127	1|1:0,69:70:99:1935,156,0:127
+2	237156689	rs13390270	G	A	852.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.150;DB;DP=205;Dels=0.00;FS=0.710;HaplotypeScore=1.7295;MLEAC=1;MLEAF=0.167;MQ=59.06;MQ0=0;MQRankSum=-0.193;QD=11.67;ReadPosRankSum=1.262;SB=-4.790e+02;VQSLOD=8.4962;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:73,0:73:99:0,202,2606:108	0|1:39,34:73:99:887,0,1027:108	0|0:59,0:59:99:0,108,1384:108
+3	1609737	rs2648459	A	G	6492.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=187;Dels=0.00;FS=0.000;HaplotypeScore=1.1795;MLEAC=6;MLEAF=1.00;MQ=59.90;MQ0=0;QD=34.72;SB=-3.251e+03;VQSLOD=11.5033;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,53:53:99:1943,150,0:127	1|1:0,62:62:99:2206,172,0:127	1|1:0,72:72:99:2343,181,0:127
+3	8399330	rs6770171	G	A	6816.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=4.689;DB;DP=253;Dels=0.00;FS=0.637;HaplotypeScore=1.2788;MLEAC=5;MLEAF=0.833;MQ=58.42;MQ0=0;MQRankSum=0.607;QD=26.94;ReadPosRankSum=-0.503;SB=-3.369e+03;VQSLOD=8.0141;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|1:0,106:106:99:3784,292,0:127	1|1:0,72:72:99:2164,169,0:127	1|0:42,33:75:99:868,0,1146:127
+3	17501103	.	T	G	45.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=-6.477;DP=156;Dels=0.00;FS=71.755;HaplotypeScore=1.5253;MLEAC=2;MLEAF=0.333;MQ=58.02;MQ0=0;MQRankSum=-0.156;QD=0.43;ReadPosRankSum=-3.974;SB=-1.474e-02;VQSLOD=-14.1451;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:43,8:51:99:0,114,1252:33	0|1:22,24:46:34:34,0,492:33	0|1:24,34:59:50:50,0,492:33
+3	26960556	rs4422260	T	C	878.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=-2.140;DB;DP=220;Dels=0.00;FS=1.108;HaplotypeScore=1.7204;MLEAC=2;MLEAF=0.333;MQ=41.87;MQ0=3;MQRankSum=-6.679;QD=5.97;ReadPosRankSum=-0.031;SB=-4.600e+02;VQSLOD=0.7170;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:73,0:73:99:0,208,2660:127	0|1:32,48:80:99:759,0,915:127	0|1:37,30:67:99:158,0,1092:127
+3	48757773	rs61137521	A	G	3103.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-0.794;DB;DP=172;Dels=0.00;FS=0.000;HaplotypeScore=1.8954;MLEAC=4;MLEAF=0.667;MQ=59.34;MQ0=0;MQRankSum=-0.693;QD=18.04;ReadPosRankSum=-1.667;SB=-1.874e+03;VQSLOD=7.9241;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,50:51:99:1723,141,0:127	1|0:31,34:65:99:745,0,814:127	1|0:24,32:56:99:677,0,603:127
+3	60283791	rs10154846	T	C	669.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.270;DB;DP=204;Dels=0.00;FS=1.585;HaplotypeScore=1.6639;MLEAC=1;MLEAF=0.167;MQ=59.39;MQ0=0;MQRankSum=0.370;QD=10.14;ReadPosRankSum=1.636;SB=-2.690e+02;VQSLOD=8.9468;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:63,0:63:99:0,190,2440:127	0|1:34,32:66:99:704,0,1020:127	0|0:74,0:75:99:0,190,2372:127
+3	68765638	rs1504297	C	G	4623.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-5.561;DB;DP=225;Dels=0.00;FS=3.176;HaplotypeScore=0.8432;MLEAC=4;MLEAF=0.667;MQ=59.80;MQ0=0;MQRankSum=-0.619;QD=20.55;ReadPosRankSum=-1.001;SB=-2.371e+03;VQSLOD=8.7354;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:40,39:79:99:1220,0,1330:127	1|1:0,75:75:99:2518,205,0:127	0|1:37,34:71:99:885,0,1185:127
+3	76722766	rs264537	C	G	845.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=3.666;DB;DP=202;Dels=0.00;FS=0.000;HaplotypeScore=0.2774;MLEAC=1;MLEAF=0.167;MQ=59.79;MQ0=0;MQRankSum=-0.795;QD=13.21;ReadPosRankSum=1.049;SB=-2.910e+02;VQSLOD=8.5280;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:70,0:70:99:0,208,2570:127	0|0:68,0:68:99:0,193,2332:127	0|1:34,30:64:99:880,0,995:127
+3	86234718	rs2324883	T	C	7655.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=234;Dels=0.00;FS=0.000;HaplotypeScore=0.6487;MLEAC=6;MLEAF=1.00;MQ=59.51;MQ0=0;QD=32.71;SB=-4.142e+03;VQSLOD=11.2111;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,80:80:99:2857,223,0:127	1|1:0,76:77:99:2512,196,0:127	1|1:0,77:77:99:2286,178,0:127
+3	99106655	rs2623376	A	G	1093.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.490;DB;DP=191;Dels=0.00;FS=2.283;HaplotypeScore=0.6267;MLEAC=2;MLEAF=0.333;MQ=59.76;MQ0=0;MQRankSum=-1.141;QD=9.51;ReadPosRankSum=0.079;SB=-5.610e+02;VQSLOD=8.1455;culprit=QD	GT:AD:DP:GQ:PL:TP	0|1:30,22:52:99:653,0,970:127	0|0:76,0:76:99:0,193,2462:127	1|0:44,19:63:99:479,0,1261:127
+3	108612711	rs2399252	T	A	3430.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-0.783;DB;DP=239;Dels=0.00;FS=4.436;HaplotypeScore=0.6593;MLEAC=3;MLEAF=0.500;MQ=59.64;MQ0=0;MQRankSum=-0.269;QD=14.35;ReadPosRankSum=-0.701;SB=-1.733e+03;VQSLOD=8.5079;culprit=MQ	GT:AD:DP:GQ:PL:TP	0/1:48,34:82:99:1066,0,1620:127	0/1:45,43:88:99:1370,0,1452:127	0/1:36,32:69:99:994,0,1128:127
+3	128140891	rs73201490	C	T	1315.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=5.394;DB;DP=142;Dels=0.00;FS=0.667;HaplotypeScore=3.4886;MLEAC=2;MLEAF=0.333;MQ=58.69;MQ0=0;MQRankSum=1.733;QD=14.30;ReadPosRankSum=0.758;SB=-6.400e+02;VQSLOD=6.7020;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:29,24:53:99:636,0,670:104	0|0:50,0:50:99:0,105,1188:104	1|0:12,27:39:99:718,0,250:104
+3	137840974	rs2622698	C	A	6792.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=232;Dels=0.00;FS=0.000;HaplotypeScore=2.6477;MLEAC=6;MLEAF=1.00;MQ=59.04;MQ0=0;QD=29.28;SB=-3.999e+03;VQSLOD=9.7681;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,79:79:99:2640,205,0:127	1|1:0,78:78:99:2229,178,0:127	1|1:0,75:75:99:1923,153,0:127
+3	148344553	rs62274102	C	A	3191.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-1.860;DB;DP=232;Dels=0.00;FS=12.061;HaplotypeScore=2.3659;MLEAC=3;MLEAF=0.500;MQ=59.32;MQ0=0;MQRankSum=-0.551;QD=19.58;ReadPosRankSum=2.411;SB=-1.757e+03;VQSLOD=6.2908;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|0:46,39:85:99:985,0,1339:127	1|1:0,78:78:99:2251,175,0:127	0|0:69,0:69:99:0,153,2018:127
+3	158557110	rs34445802	G	A	2374.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.805;DB;DP=237;Dels=0.00;FS=1.025;HaplotypeScore=1.6572;MLEAC=2;MLEAF=0.333;MQ=57.48;MQ0=0;MQRankSum=0.558;QD=14.05;ReadPosRankSum=-1.147;SB=-1.505e+03;VQSLOD=7.1338;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:43,56:99:99:1624,0,1344:127	1|0:33,37:70:99:789,0,916:127	0|0:68,0:68:99:0,156,2014:127
+3	179020937	rs13082816	C	T	1116.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=5.603;DB;DP=82;Dels=0.00;FS=0.000;HaplotypeScore=0.6358;MLEAC=4;MLEAF=0.667;MQ=54.57;MQ0=1;MQRankSum=0.374;QD=13.61;ReadPosRankSum=-0.037;SB=-2.010e+02;VQSLOD=6.0907;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:13,13:26:99:388,0,178:36	1|1:0,24:24:36:442,36,0:36	0|1:13,19:32:99:328,0,179:36
+3	189981901	.	A	G	179.25	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=2.258;DP=274;Dels=0.00;FS=73.736;HaplotypeScore=1.8333;MLEAC=1;MLEAF=0.167;MQ=54.08;MQ0=6;MQRankSum=-2.651;QD=1.97;ReadPosRankSum=-6.101;SB=-6.400e+01;VQSLOD=-18.1951;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|0:64,27:91:99:214,0,679:51	1|0:78,10:88:0:0,21,1685:51	0|0:86,9:95:74:0,74,1891:51
+3	197056886	rs7612900	G	A	7880.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=229;Dels=0.00;FS=0.000;HaplotypeScore=0.6106;MLEAC=6;MLEAF=1.00;MQ=59.18;MQ0=0;QD=34.41;SB=-3.459e+03;VQSLOD=11.8130;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,75:75:99:2786,214,0:127	1|1:0,81:81:99:2598,202,0:127	1|1:0,73:73:99:2496,193,0:127
+4	6333669	rs35678078	G	T	2186.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=1.220;DB;DP=198;Dels=0.00;FS=1.754;HaplotypeScore=0.7779;MLEAC=3;MLEAF=0.500;MQ=59.27;MQ0=0;MQRankSum=-0.256;QD=11.04;ReadPosRankSum=-0.469;SB=-1.621e+03;VQSLOD=9.4086;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:33,34:67:99:875,0,848:127	0/1:27,32:59:99:602,0,534:127	0/1:33,38:72:99:748,0,676:127
+4	12652343	rs13114660	G	T	610.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.176;DB;DP=127;Dels=0.00;FS=0.000;HaplotypeScore=1.5681;MLEAC=1;MLEAF=0.167;MQ=58.86;MQ0=0;MQRankSum=-0.468;QD=16.06;ReadPosRankSum=1.246;SB=-3.060e+02;VQSLOD=7.8400;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:43,0:43:99:0,120,1561:102	0|1:15,23:38:99:645,0,407:102	0|0:44,1:46:99:0,103,1539:102
+4	30898977	rs4386561	G	A	2449.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=3.817;DB;DP=231;Dels=0.00;FS=0.000;HaplotypeScore=0.9382;MLEAC=2;MLEAF=0.333;MQ=58.94;MQ0=0;MQRankSum=0.173;QD=15.70;ReadPosRankSum=1.051;SB=-1.131e+03;VQSLOD=8.3611;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:33,46:79:99:1380,0,944:127	0|0:75,0:75:99:0,202,2608:127	1|0:43,34:77:99:1108,0,1335:127
+4	39062189	rs2566127	T	C	2641.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-2.019;DB;DP=201;Dels=0.00;FS=1.101;HaplotypeScore=2.8834;MLEAC=3;MLEAF=0.500;MQ=58.96;MQ0=0;MQRankSum=0.932;QD=13.14;ReadPosRankSum=-0.596;SB=-1.401e+03;VQSLOD=7.9734;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:35,29:64:99:880,0,1168:127	0/1:37,32:70:99:796,0,1021:127	0/1:31,36:67:99:1004,0,877:127
+4	48922864	rs7697262	G	C	1383.23	VQSRTrancheSNP99.00to99.90	AC=6;AF=1.00;AN=6;DB;DP=100;Dels=0.00;FS=0.000;HaplotypeScore=0.0000;MLEAC=6;MLEAF=1.00;MQ=20.20;MQ0=24;QD=13.83;SB=-3.860e+02;VQSLOD=-0.3210;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:3,38:41:57:625,57,0:32	1|1:0,28:28:33:368,33,0:32	1|1:2,29:31:39:428,39,0:32
+4	57135985	rs1715504	G	A	1213.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=3.549;DB;DP=173;Dels=0.00;FS=4.099;HaplotypeScore=1.6305;MLEAC=2;MLEAF=0.333;MQ=58.44;MQ0=0;MQRankSum=-1.006;QD=10.28;ReadPosRankSum=-0.933;SB=-4.500e+02;VQSLOD=7.4115;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:54,0:55:99:0,135,1546:127	0|1:30,23:54:99:563,0,608:127	0|1:35,28:64:99:689,0,562:127
+4	64522064	rs4860541	A	G	5942.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=188;Dels=0.00;FS=0.000;HaplotypeScore=0.2889;MLEAC=6;MLEAF=1.00;MQ=56.20;MQ0=0;QD=31.61;SB=-3.348e+03;VQSLOD=8.5367;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,68:68:99:2119,169,0:127	1|1:0,52:53:99:1661,132,0:127	1|1:0,67:67:99:2162,172,0:127
+4	71449060	rs60358213	G	A	2269.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=5.704;DB;DP=227;Dels=0.00;FS=13.048;HaplotypeScore=20.1360;MLEAC=2;MLEAF=0.333;MQ=55.35;MQ0=0;MQRankSum=0.477;QD=13.19;ReadPosRankSum=2.295;SB=-8.910e+02;VQSLOD=1.8937;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:60,40:100:99:1221,0,1476:127	1|0:37,35:72:99:1087,0,987:127	0|0:53,1:54:99:0,157,2026:127
+4	82427976	rs6841516	G	A	561.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.022;DB;DP=166;Dels=0.00;FS=0.000;HaplotypeScore=1.4715;MLEAC=1;MLEAF=0.167;MQ=59.56;MQ0=0;MQRankSum=-1.555;QD=11.00;ReadPosRankSum=0.016;SB=-3.880e+02;VQSLOD=8.0989;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:51,0:51:99:0,132,1705:127	0|1:22,29:51:99:596,0,483:127	0|0:64,0:64:99:0,135,1755:127
+4	103859292	rs7676943	C	G	7573.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=235;Dels=0.00;FS=0.000;HaplotypeScore=0.0000;MLEAC=6;MLEAF=1.00;MQ=58.63;MQ0=0;QD=32.23;SB=-3.953e+03;VQSLOD=10.3945;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:1,95:96:99:3289,256,0:127	1|1:0,73:73:99:2137,166,0:127	1|1:0,66:66:99:2147,166,0:127
+4	122900130	rs4833786	C	T	2361.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-0.390;DB;DP=244;Dels=0.00;FS=0.495;HaplotypeScore=0.5427;MLEAC=2;MLEAF=0.333;MQ=59.91;MQ0=0;MQRankSum=-0.628;QD=15.23;ReadPosRankSum=1.221;SB=-1.282e+03;VQSLOD=8.8105;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:89,0:89:99:0,250,3286:127	0|1:42,44:86:99:1257,0,1325:127	0|1:32,37:69:99:1143,0,941:127
+4	132671861	rs6856716	C	G	2622.26	VQSRTrancheSNP99.90to100.00	AC=2;AF=0.333;AN=6;BaseQRankSum=3.143;DB;DP=617;DS;Dels=0.00;FS=5.808;HaplotypeScore=34.4109;MLEAC=2;MLEAF=0.333;MQ=24.78;MQ0=42;MQRankSum=3.293;QD=5.89;ReadPosRankSum=-0.736;SB=-1.412e+03;VQSLOD=-77.3455;culprit=DP	GT:AD:DP:GQ:PL:TP	0|1:125,98:223:99:1761,0,1486:127	0|0:171,0:172:99:0,300,2641:127	1|0:152,70:222:99:900,0,2086:127
+4	141514835	rs55984232	C	T	1645.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=7.144;DB;DP=191;Dels=0.00;FS=2.756;HaplotypeScore=1.0735;MLEAC=2;MLEAF=0.333;MQ=59.26;MQ0=0;MQRankSum=0.726;QD=13.06;ReadPosRankSum=-0.789;SB=-8.550e+02;VQSLOD=8.9425;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:32,28:60:99:913,0,820:127	0|0:65,0:65:99:0,156,1886:127	1|0:34,32:66:99:771,0,750:127
+4	161180100	rs167176	G	C	2497.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=6.811;DB;DP=191;Dels=0.00;FS=5.370;HaplotypeScore=0.7812;MLEAC=3;MLEAF=0.500;MQ=59.78;MQ0=0;MQRankSum=-0.584;QD=13.07;ReadPosRankSum=0.756;SB=-1.206e+03;VQSLOD=8.0012;culprit=MQ	GT:AD:DP:GQ:PL:TP	0/1:32,36:68:99:1100,0,895:127	0/1:41,35:76:99:987,0,1028:127	0/1:29,17:47:99:449,0,820:127
+4	169085855	rs2251558	A	G	1161.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=0.721;DB;DP=244;Dels=0.00;FS=5.247;HaplotypeScore=0.4893;MLEAC=1;MLEAF=0.167;MQ=59.91;MQ0=0;MQRankSum=1.574;QD=13.99;ReadPosRankSum=0.454;SB=-5.590e+02;VQSLOD=7.4222;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:77,0:77:99:0,226,2915:127	0|1:43,40:83:99:1196,0,1294:127	0|0:84,0:84:99:0,232,2950:127
+4	177855678	rs1545090	A	G	7065.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=229;Dels=0.00;FS=0.000;HaplotypeScore=1.1696;MLEAC=6;MLEAF=1.00;MQ=59.50;MQ0=0;QD=30.85;SB=-3.799e+03;VQSLOD=11.0069;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,84:84:99:2701,235,0:127	1|1:0,79:80:99:2401,211,0:127	1|1:0,65:65:99:1963,165,0:127
+4	184811263	rs2871379	A	G	6376.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=211;Dels=0.00;FS=0.000;HaplotypeScore=0.5084;MLEAC=6;MLEAF=1.00;MQ=58.38;MQ0=0;QD=30.22;SB=-3.472e+03;VQSLOD=10.4879;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,78:78:99:2539,199,0:127	1|1:0,67:67:99:2072,165,0:127	1|1:0,66:66:99:1765,135,0:127
+4	190538070	rs62323772	G	A	106.69	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=0.099;DB;DP=19;Dels=0.00;FS=0.000;HaplotypeScore=4.3562;MLEAC=3;MLEAF=0.500;MQ=33.71;MQ0=0;MQRankSum=0.591;QD=5.93;ReadPosRankSum=-0.394;SB=-7.601e+01;VQSLOD=-1.3921;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:4,9:13:69:69,0,92:3	0|0:1,0:1:3:0,3,33:3	1|1:0,4:5:6:77,6,0:3
+5	3276081	rs4866540	G	A	3653.01	VQSRTrancheSNP99.00to99.90	AC=4;AF=0.667;AN=6;BaseQRankSum=5.002;DB;DP=176;Dels=0.00;FS=2.778;HaplotypeScore=19.0040;MLEAC=4;MLEAF=0.667;MQ=57.74;MQ0=0;MQRankSum=-0.569;QD=20.76;ReadPosRankSum=1.308;SB=-6.610e+02;VQSLOD=3.1833;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:1,71:72:99:2337,175,0:127	1|0:26,25:51:99:719,0,601:127	1|0:26,27:53:99:597,0,662:127
+5	10958957	rs852590	T	C	8430.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=243;Dels=0.00;FS=0.000;HaplotypeScore=1.8272;MLEAC=6;MLEAF=1.00;MQ=59.31;MQ0=0;QD=34.69;SB=-4.118e+03;VQSLOD=10.8702;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:1,96:97:99:3594,277,0:127	1|1:1,73:74:99:2318,181,0:127	1|1:0,72:72:99:2518,196,0:127
+5	20435939	rs12697584	A	C	2286.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-5.396;DB;DP=246;Dels=0.00;FS=4.681;HaplotypeScore=0.8744;MLEAC=2;MLEAF=0.333;MQ=59.74;MQ0=0;MQRankSum=-0.850;QD=14.20;ReadPosRankSum=0.391;SB=-1.305e+03;VQSLOD=8.1327;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:85,0:85:99:0,241,3183:127	0|1:41,37:78:99:1062,0,1304:127	0|1:39,44:83:99:1263,0,1222:127
+5	29069162	rs658439	G	A	499.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=1.981;DB;DP=199;Dels=0.00;FS=11.196;HaplotypeScore=1.6038;MLEAC=1;MLEAF=0.167;MQ=52.70;MQ0=0;MQRankSum=-0.608;QD=9.42;ReadPosRankSum=-1.103;SB=-2.310e+02;VQSLOD=4.0183;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:86,0:86:99:0,211,2509:110	0|0:60,0:60:99:0,111,1240:110	0|1:30,23:53:99:534,0,523:110
+5	36740339	rs36676	T	G	6995.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=230;Dels=0.00;FS=0.000;HaplotypeScore=2.0768;MLEAC=6;MLEAF=1.00;MQ=59.46;MQ0=0;QD=30.41;SB=-3.034e+03;VQSLOD=10.9208;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,75:75:99:2261,195,0:127	1|1:0,83:83:99:2579,217,0:127	1|1:0,71:72:99:2155,181,0:127
+5	49438828	rs137880658	G	A	424.24	VQSRTrancheSNP99.90to100.00	AC=1;AF=0.167;AN=6;BaseQRankSum=-4.376;DB;DP=748;DS;Dels=0.00;FS=7.184;HaplotypeScore=20.6618;MLEAC=1;MLEAF=0.167;MQ=19.63;MQ0=158;MQRankSum=3.819;QD=1.70;ReadPosRankSum=1.191;SB=-2.220e+02;VQSLOD=-98.2155;culprit=DP	GT:AD:DP:GQ:PL:TP	0|0:249,0:249:99:0,555,4848:127	0|1:204,46:250:99:459,0,2894:127	0|0:249,0:249:99:0,480,4326:127
+5	58243302	rs457566	A	C	6237.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-1.663;DB;DP=233;Dels=0.00;FS=3.429;HaplotypeScore=0.8859;MLEAC=5;MLEAF=0.833;MQ=59.70;MQ0=0;MQRankSum=-0.232;QD=26.77;ReadPosRankSum=0.957;SB=-2.566e+03;VQSLOD=9.3537;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:0,87:87:99:2923,229,0:127	1|0:36,50:86:99:1429,0,1006:127	1|1:0,60:60:99:1885,147,0:127
+5	70856663	rs157045	T	C	2040.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-7.809;DB;DP=234;Dels=0.00;FS=1.824;HaplotypeScore=1.0544;MLEAC=2;MLEAF=0.333;MQ=58.65;MQ0=0;MQRankSum=0.989;QD=13.16;ReadPosRankSum=0.719;SB=-8.820e+02;VQSLOD=7.3513;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:44,41:85:99:1087,0,1448:127	1|0:28,42:70:99:992,0,789:127	0|0:79,0:79:99:0,181,2342:127
+5	80900719	rs2917540	G	T	4938.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=3.261;DB;DP=240;Dels=0.00;FS=0.489;HaplotypeScore=0.5959;MLEAC=4;MLEAF=0.667;MQ=59.63;MQ0=0;MQRankSum=-2.115;QD=20.58;ReadPosRankSum=0.288;SB=-2.548e+03;VQSLOD=8.4417;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|1:52,40:92:99:1207,0,1768:127	0|1:37,33:70:99:960,0,1205:127	1|1:0,78:78:99:2771,211,0:127
+5	93119893	rs6879620	G	A	4262.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=4.930;DB;DP=239;Dels=0.00;FS=1.050;HaplotypeScore=2.1583;MLEAC=4;MLEAF=0.667;MQ=59.81;MQ0=0;MQRankSum=0.891;QD=17.83;ReadPosRankSum=-2.670;SB=-2.596e+03;VQSLOD=7.0681;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|1:49,42:91:99:1098,0,1410:127	0|1:36,38:74:99:890,0,1008:127	1|1:0,74:74:99:2274,178,0:127
+5	102962771	rs6866105	A	G	5087.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-2.665;DB;DP=200;Dels=0.00;FS=8.083;HaplotypeScore=2.2837;MLEAC=5;MLEAF=0.833;MQ=58.71;MQ0=0;MQRankSum=-0.503;QD=25.44;ReadPosRankSum=-0.482;SB=-2.172e+03;VQSLOD=7.2212;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,75:75:99:2373,184,0:127	1|1:0,59:59:99:1776,141,0:127	1|0:31,35:66:99:938,0,803:127
+5	112750674	rs9716322	A	C	598.24	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=-0.293;DB;DP=199;Dels=0.00;FS=2.948;HaplotypeScore=0.3328;MLEAC=1;MLEAF=0.167;MQ=45.61;MQ0=2;MQRankSum=-2.398;QD=12.21;ReadPosRankSum=1.159;SB=-8.101e+01;VQSLOD=2.7717;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:81,0:81:99:0,196,2534:127	0|1:23,26:49:99:633,0,479:127	0|0:68,1:69:99:0,174,2191:127
+5	121302662	.	G	T	143.72	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=1.413;DP=150;Dels=0.02;FS=161.482;HaplotypeScore=2.8631;MLEAC=3;MLEAF=0.500;MQ=35.76;MQ0=1;MQRankSum=0.422;QD=0.96;ReadPosRankSum=-5.675;SB=-1.466e+00;VQSLOD=-77.2440;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:32,21:53:99:120,0,251:5	0/1:35,12:47:57:57,0,271:5	0/1:35,12:47:4:4,0,259:5
+5	132377304	rs72801439	A	T	858.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.113;DB;DP=219;Dels=0.00;FS=10.632;HaplotypeScore=0.6638;MLEAC=1;MLEAF=0.167;MQ=59.41;MQ0=0;MQRankSum=-0.881;QD=11.29;ReadPosRankSum=0.435;SB=-3.050e+02;VQSLOD=7.6837;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:67,0:67:99:0,163,2149:127	0|1:43,33:76:99:893,0,1280:127	0|0:76,0:76:99:0,199,2553:127
+5	144321895	rs35068704	A	T	1535.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=6.048;DB;DP=203;Dels=0.00;FS=13.289;HaplotypeScore=0.5075;MLEAC=2;MLEAF=0.333;MQ=57.36;MQ0=0;MQRankSum=2.191;QD=11.37;ReadPosRankSum=-1.361;SB=-7.640e+02;VQSLOD=5.7211;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:34,25:59:99:595,0,976:127	0|0:68,0:68:99:0,190,2435:127	1|0:39,37:76:99:979,0,1274:127
+5	154441640	rs467330	A	C	1133.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.127;DB;DP=235;Dels=0.00;FS=2.103;HaplotypeScore=1.1893;MLEAC=1;MLEAF=0.167;MQ=59.65;MQ0=0;MQRankSum=0.766;QD=12.59;ReadPosRankSum=-0.535;SB=-6.500e+02;VQSLOD=9.8335;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:61,0:61:99:0,172,2172:127	0|1:45,45:90:99:1168,0,1368:127	0|0:82,1:84:99:0,226,2825:127
+5	164600452	rs7711548	C	A	588.32	VQSRTrancheSNP99.00to99.90	AC=6;AF=1.00;AN=6;BaseQRankSum=-3.291;DB;DP=192;Dels=0.02;FS=2.319;HaplotypeScore=32.6662;MLEAC=6;MLEAF=1.00;MQ=57.55;MQ0=0;MQRankSum=1.536;QD=3.06;ReadPosRankSum=-1.533;SB=-2.085e+03;VQSLOD=-1.4325;culprit=QD	GT:AD:DP:GQ:PL:TP	1|1:15,52:69:18:155,18,0:15	1|1:11,55:66:36:296,36,0:15	1|1:18,36:54:15:175,15,0:15
+5	174249229	rs11739079	C	G	1613.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-4.540;DB;DP=190;Dels=0.00;FS=6.482;HaplotypeScore=2.0416;MLEAC=2;MLEAF=0.333;MQ=59.51;MQ0=0;MQRankSum=-0.898;QD=11.86;ReadPosRankSum=0.601;SB=-8.320e+02;VQSLOD=7.7782;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:32,43:75:99:1069,0,928:123	0|0:54,0:54:99:0,123,1554:123	1|0:33,27:61:99:583,0,883:123
+6	1620147	rs2569882	T	C	252.30	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-0.862;DB;DP=38;Dels=0.00;FS=8.023;HaplotypeScore=0.2217;MLEAC=5;MLEAF=0.833;MQ=57.65;MQ0=0;MQRankSum=-0.918;QD=9.34;ReadPosRankSum=0.584;SB=-4.005e+01;VQSLOD=4.3258;culprit=DP	GT:AD:DP:GQ:PL:TP	1|1:0,17:17:21:254,21,0:4	1|0:3,8:11:2:0,3,40:4	1|1:0,10:10:3:39,3,0:4
+6	9408051	rs11751621	C	G	5140.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-2.350;DB;DP=241;Dels=0.00;FS=0.000;HaplotypeScore=0.6637;MLEAC=4;MLEAF=0.667;MQ=59.81;MQ0=0;MQRankSum=-0.205;QD=21.33;ReadPosRankSum=-0.033;SB=-2.552e+03;VQSLOD=8.9881;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:42,40:82:99:1156,0,1352:127	0|1:36,45:81:99:1253,0,1134:127	1|1:0,78:78:99:2731,214,0:127
+6	18687376	rs9383429	A	T	1162.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.746;DB;DP=232;Dels=0.00;FS=0.638;HaplotypeScore=0.2774;MLEAC=1;MLEAF=0.167;MQ=59.42;MQ0=0;MQRankSum=-0.733;QD=15.71;ReadPosRankSum=-0.146;SB=-6.490e+02;VQSLOD=9.4317;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:82,0:82:99:0,241,3181:127	0|0:76,0:76:99:0,217,2832:127	0|1:33,41:74:99:1197,0,1008:127
+6	26687649	.	G	C	1654.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=9.718;DP=410;Dels=0.00;FS=5.973;HaplotypeScore=5.0786;MLEAC=2;MLEAF=0.333;MQ=28.19;MQ0=32;MQRankSum=0.048;QD=6.17;ReadPosRankSum=0.408;SB=-5.110e+02;VQSLOD=-8.7346;culprit=DP	GT:AD:DP:GQ:PL:TP	0|1:117,49:166:99:1013,0,2495:127	0|0:141,1:142:99:0,244,2576:127	1|0:70,32:102:99:680,0,1048:127
+6	35346891	.	C	T	483.26	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=-6.402;DP=205;Dels=0.02;FS=214.154;HaplotypeScore=4.5086;MLEAC=3;MLEAF=0.500;MQ=51.07;MQ0=1;MQRankSum=-2.038;QD=2.36;ReadPosRankSum=-2.250;SB=-1.065e-02;VQSLOD=-116.9542;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:48,31:79:99:257,0,635:80	0/1:40,22:62:99:185,0,308:80	0/1:44,16:60:80:80,0,534:80
+6	45421630	rs1343799	C	T	5422.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=3.419;DB;DP=240;Dels=0.00;FS=10.689;HaplotypeScore=0.7979;MLEAC=4;MLEAF=0.667;MQ=59.46;MQ0=0;MQRankSum=1.089;QD=22.59;ReadPosRankSum=1.252;SB=-2.647e+03;VQSLOD=7.7035;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:29,43:72:99:1445,0,843:127	0|1:43,37:80:99:1121,0,1302:127	1|1:0,88:88:99:2856,220,0:127
+6	55412503	rs12201934	T	C	882.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.280;DB;DP=182;Dels=0.00;FS=0.744;HaplotypeScore=0.3332;MLEAC=1;MLEAF=0.167;MQ=59.64;MQ0=0;MQRankSum=-0.765;QD=13.57;ReadPosRankSum=0.147;SB=-4.590e+02;VQSLOD=9.3766;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:61,0:61:99:0,181,2371:127	0|1:35,30:65:99:917,0,1046:127	0|0:56,0:56:99:0,150,1969:127
+6	71018445	rs1321063	C	A	518.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=2.668;DB;DP=185;Dels=0.00;FS=1.618;HaplotypeScore=0.6919;MLEAC=1;MLEAF=0.167;MQ=58.93;MQ0=0;MQRankSum=0.355;QD=8.78;ReadPosRankSum=1.306;SB=-4.020e+02;VQSLOD=7.7510;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:67,0:67:99:0,184,2404:127	0|0:59,0:59:99:0,160,2065:127	0|1:29,30:59:99:553,0,809:127
+6	79887872	rs6454101	C	T	2130.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.355;DB;DP=204;Dels=0.00;FS=11.823;HaplotypeScore=2.3806;MLEAC=3;MLEAF=0.500;MQ=59.68;MQ0=0;MQRankSum=1.011;QD=10.44;ReadPosRankSum=-0.769;SB=-1.370e+03;VQSLOD=7.5187;culprit=MQ	GT:AD:DP:GQ:PL:TP	0/1:31,31:62:99:806,0,990:127	0/1:42,31:73:99:606,0,921:127	0/1:29,40:69:99:757,0,749:127
+6	89947117	rs9942462	A	G	5019.01	PASS	AC=6;AF=1.00;AN=6;BaseQRankSum=1.654;DB;DP=181;Dels=0.00;FS=0.000;HaplotypeScore=3.3205;MLEAC=6;MLEAF=1.00;MQ=53.30;MQ0=0;MQRankSum=0.428;QD=27.73;ReadPosRankSum=1.090;SB=-3.151e+03;VQSLOD=5.6763;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,59:60:99:1715,138,0:92	1|1:1,55:56:93:1401,93,0:92	1|1:0,65:65:99:1903,153,0:92
+6	110345430	rs56272355	T	C	882.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-7.241;DB;DP=230;Dels=0.00;FS=2.159;HaplotypeScore=1.7615;MLEAC=1;MLEAF=0.167;MQ=59.70;MQ0=0;MQRankSum=-0.200;QD=11.46;ReadPosRankSum=-0.480;SB=-5.580e+02;VQSLOD=8.9824;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:77,0:77:99:0,220,2860:127	0|0:75,0:76:99:0,184,2321:127	0|1:35,42:77:99:917,0,926:127
+6	120734422	rs62424426	T	C	1091.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.268;DB;DP=208;Dels=0.00;FS=4.347;HaplotypeScore=0.7034;MLEAC=1;MLEAF=0.167;MQ=59.71;MQ0=0;MQRankSum=-0.188;QD=14.36;ReadPosRankSum=-0.149;SB=-5.560e+02;VQSLOD=8.6529;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:70,1:71:99:0,205,2692:127	0|0:61,0:61:99:0,175,2298:127	0|1:39,37:76:99:1126,0,1140:127
+6	131725921	.	G	A	64.24	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=3.650;DP=182;Dels=0.00;FS=3.535;HaplotypeScore=2.2441;MLEAC=1;MLEAF=0.167;MQ=50.85;MQ0=1;MQRankSum=-6.039;QD=1.31;ReadPosRankSum=-1.757;SB=-4.901e+01;VQSLOD=-0.6667;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:59,0:60:99:0,168,1897:98	0|1:33,16:49:99:99,0,790:98	0|0:73,0:73:99:0,156,1824:98
+6	143691852	rs17792267	C	T	3641.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-1.465;DB;DP=203;Dels=0.00;FS=2.413;HaplotypeScore=0.3222;MLEAC=3;MLEAF=0.500;MQ=59.54;MQ0=0;MQRankSum=1.198;QD=27.17;ReadPosRankSum=-1.140;SB=-1.772e+03;VQSLOD=8.8712;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:29,33:62:99:1131,0,803:127	1|1:0,72:72:99:2510,196,0:127	0|0:69,0:69:99:0,190,2480:127
+6	154006585	rs7752561	G	A	919.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.323;DB;DP=223;Dels=0.00;FS=0.000;HaplotypeScore=0.8254;MLEAC=1;MLEAF=0.167;MQ=59.35;MQ0=0;MQRankSum=-0.749;QD=10.45;ReadPosRankSum=-0.155;SB=-5.260e+02;VQSLOD=8.8368;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:70,0:70:99:0,202,2601:127	0|1:51,37:88:99:954,0,1475:127	0|0:65,0:65:99:0,175,2269:127
+6	162459664	rs2849564	C	T	1819.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=8.399;DB;DP=201;Dels=0.00;FS=3.295;HaplotypeScore=2.5591;MLEAC=2;MLEAF=0.333;MQ=59.38;MQ0=0;MQRankSum=1.792;QD=12.90;ReadPosRankSum=-1.045;SB=-1.068e+03;VQSLOD=8.1160;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:28,40:68:99:1007,0,793:120	1|0:38,35:73:99:851,0,831:120	0|0:60,0:60:99:0,120,1421:120
+7	4683258	rs62450857	G	A	1127.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-0.991;DB;DP=191;Dels=0.00;FS=3.236;HaplotypeScore=0.2774;MLEAC=1;MLEAF=0.167;MQ=57.16;MQ0=0;MQRankSum=1.297;QD=14.09;ReadPosRankSum=0.469;SB=-4.730e+02;VQSLOD=6.6182;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:66,0:66:99:0,196,2495:120	0|1:38,42:80:99:1162,0,1016:120	0|0:45,0:45:99:0,120,1531:120
+7	12502849	rs848025	C	G	4109.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-8.809;DB;DP=220;Dels=0.00;FS=1.141;HaplotypeScore=1.8049;MLEAC=4;MLEAF=0.667;MQ=59.56;MQ0=0;MQRankSum=0.625;QD=18.68;ReadPosRankSum=-0.019;SB=-1.989e+03;VQSLOD=8.7123;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:47,45:92:99:1216,0,1501:127	1|1:0,71:71:99:2145,184,0:127	0|1:27,30:57:99:748,0,743:127
+7	29544610	rs6462145	A	T	4020.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=0.326;DB;DP=189;Dels=0.00;FS=5.388;HaplotypeScore=1.2974;MLEAC=4;MLEAF=0.667;MQ=58.54;MQ0=0;MQRankSum=1.295;QD=21.27;ReadPosRankSum=-1.212;SB=-1.878e+03;VQSLOD=7.3155;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:27,49:77:99:1466,0,733:127	1|1:0,64:64:99:1888,147,0:127	0|1:18,27:48:99:666,0,410:127
+7	38984187	rs118081099	A	C	569.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-0.110;DB;DP=182;Dels=0.00;FS=6.196;HaplotypeScore=0.5533;MLEAC=1;MLEAF=0.167;MQ=54.22;MQ0=0;MQRankSum=1.675;QD=9.33;ReadPosRankSum=1.162;SB=-1.260e+02;VQSLOD=4.8877;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:72,0:72:99:0,196,2446:127	0|1:38,23:61:99:604,0,1196:127	0|0:48,1:49:99:0,138,1711:127
+7	48862174	rs965346	A	G	877.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-6.250;DB;DP=194;Dels=0.00;FS=6.112;HaplotypeScore=0.6489;MLEAC=1;MLEAF=0.167;MQ=57.54;MQ0=0;MQRankSum=2.058;QD=16.25;ReadPosRankSum=-1.204;SB=-4.040e+02;VQSLOD=6.2372;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:82,0:82:99:0,232,3007:127	0|0:58,0:58:99:0,160,2067:127	0|1:22,32:54:99:912,0,686:127
+7	56584972	rs34475770	C	T	2465.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-0.103;DB;DP=255;Dels=0.00;FS=2.230;HaplotypeScore=0.8840;MLEAC=2;MLEAF=0.333;MQ=58.76;MQ0=0;MQRankSum=1.766;QD=15.03;ReadPosRankSum=1.126;SB=-1.412e+03;VQSLOD=6.5725;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:91,0:91:99:0,259,3369:127	0|1:36,49:85:99:1444,0,1000:127	0|1:38,41:79:99:1060,0,1084:127
+7	62232046	.	C	T	1155.24	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.643;DP=230;Dels=0.00;FS=6.304;HaplotypeScore=12.7679;MLEAC=1;MLEAF=0.167;MQ=58.61;MQ0=3;MQRankSum=-0.697;QD=15.20;ReadPosRankSum=-1.202;SB=-4.440e+02;VQSLOD=2.5725;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:77,1:78:99:0,217,2824:127	0|0:76,0:76:99:0,202,2604:127	0|1:34,42:76:99:1190,0,994:127
+7	69334430	rs917719	C	T	1223.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=5.841;DB;DP=193;Dels=0.00;FS=6.656;HaplotypeScore=0.8147;MLEAC=2;MLEAF=0.333;MQ=59.81;MQ0=0;MQRankSum=1.631;QD=9.63;ReadPosRankSum=1.458;SB=-7.370e+02;VQSLOD=7.0004;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:38,39:77:99:770,0,1258:127	1|0:26,24:50:99:492,0,840:127	0|0:66,0:66:99:0,172,2210:127
+7	79508376	rs2525826	G	T	716.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=2.152;DB;DP=196;Dels=0.00;FS=0.000;HaplotypeScore=0.8658;MLEAC=1;MLEAF=0.167;MQ=59.48;MQ0=0;MQRankSum=1.420;QD=13.51;ReadPosRankSum=0.263;SB=-4.080e+02;VQSLOD=9.5728;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:65,0:65:99:0,181,2312:127	0|0:78,0:78:99:0,226,2916:127	0|1:27,26:53:99:751,0,845:127
+7	89752110	rs39232	T	G	3944.01	VQSRTrancheSNP99.00to99.90	AC=6;AF=1.00;AN=6;DB;DP=216;Dels=0.00;FS=0.000;HaplotypeScore=1.4477;MLEAC=6;MLEAF=1.00;MQ=38.19;MQ0=21;QD=18.26;SB=-2.716e+03;VQSLOD=2.6638;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:0,70:70:99:1564,132,0:101	1|1:0,79:79:99:1258,108,0:101	1|1:0,66:66:99:1122,102,0:101
+7	101161506	rs2158739	C	T	4522.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=1.698;DB;DP=172;Dels=0.00;FS=4.280;HaplotypeScore=1.5077;MLEAC=5;MLEAF=0.833;MQ=58.18;MQ0=0;MQRankSum=-0.295;QD=26.29;ReadPosRankSum=0.974;SB=-2.287e+03;VQSLOD=8.2831;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,72:73:99:2443,202,0:110	1|0:23,26:50:99:711,0,586:110	1|1:0,48:49:99:1368,111,0:110
+7	110843795	rs214455	A	G	8548.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=258;Dels=0.00;FS=0.000;HaplotypeScore=2.3561;MLEAC=6;MLEAF=1.00;MQ=59.35;MQ0=0;QD=33.13;SB=-4.197e+03;VQSLOD=10.7627;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,106:106:99:3535,301,0:127	1|1:0,66:66:99:2270,193,0:127	1|1:0,86:86:99:2743,229,0:127
+7	124589684	rs12113765	G	C	4948.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-2.607;DB;DP=243;Dels=0.00;FS=1.040;HaplotypeScore=3.3790;MLEAC=4;MLEAF=0.667;MQ=58.74;MQ0=0;MQRankSum=1.246;QD=20.36;ReadPosRankSum=-0.387;SB=-2.411e+03;VQSLOD=7.0507;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:44,27:71:99:796,0,1350:127	1|1:0,84:85:99:2760,217,0:127	0|1:41,46:87:99:1392,0,1180:127
+7	144383888	rs73161092	T	C	689.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-7.434;DB;DP=254;Dels=0.00;FS=8.629;HaplotypeScore=0.0000;MLEAC=1;MLEAF=0.167;MQ=59.54;MQ0=0;MQRankSum=0.163;QD=8.62;ReadPosRankSum=-1.802;SB=-3.560e+02;VQSLOD=6.4544;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:90,0:90:99:0,268,3553:127	0|1:47,33:80:99:724,0,1392:127	0|0:84,0:84:99:0,202,2644:127
+7	152208470	rs6464236	G	C	4321.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=5.233;DB;DP=169;Dels=0.00;FS=1.635;HaplotypeScore=1.3568;MLEAC=5;MLEAF=0.833;MQ=57.18;MQ0=1;MQRankSum=1.907;QD=25.57;ReadPosRankSum=0.892;SB=-2.137e+03;VQSLOD=6.7602;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:1,56:57:99:1949,150,0:122	1|1:0,54:54:99:1557,123,0:122	1|0:30,28:58:99:815,0,715:122
+7	158686803	rs55765467	T	C	200.26	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=-10.112;DB;DP=310;Dels=0.00;FS=2.596;HaplotypeScore=1.2829;MLEAC=3;MLEAF=0.500;MQ=47.32;MQ0=0;MQRankSum=-4.959;QD=0.65;ReadPosRankSum=-10.956;SB=-1.206e+03;VQSLOD=-17.6411;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0/1:64,33:97:99:148,0,1949:32	0/1:73,45:118:58:58,0,2287:32	0/1:65,30:95:33:33,0,1910:32
+8	4048009	rs7007410	C	T	2713.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.954;DB;DP=197;Dels=0.00;FS=2.483;HaplotypeScore=0.7125;MLEAC=3;MLEAF=0.500;MQ=57.03;MQ0=0;MQRankSum=0.882;QD=13.77;ReadPosRankSum=-0.496;SB=-1.406e+03;VQSLOD=6.5035;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:38,30:68:99:847,0,1168:127	0/1:30,30:60:99:916,0,921:127	0/1:32,36:69:99:989,0,882:127
+8	8974322	rs28440961	G	A	1682.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.716;DB;DP=190;Dels=0.00;FS=0.579;HaplotypeScore=1.5434;MLEAC=2;MLEAF=0.333;MQ=59.33;MQ0=0;MQRankSum=-0.652;QD=12.65;ReadPosRankSum=0.746;SB=-7.040e+02;VQSLOD=9.3708;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|0:32,32:64:99:790,0,1002:125	1|0:33,36:69:99:931,0,866:125	0|0:57,0:57:99:0,126,1622:125
+8	14463368	rs1355302	T	A	2523.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=6.793;DB;DP=236;Dels=0.00;FS=3.776;HaplotypeScore=0.3245;MLEAC=2;MLEAF=0.333;MQ=59.14;MQ0=0;MQRankSum=-0.381;QD=15.97;ReadPosRankSum=-0.045;SB=-1.421e+03;VQSLOD=7.6920;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:36,43:79:99:1332,0,1176:127	0|0:78,0:78:99:0,214,2749:127	1|0:35,44:79:99:1230,0,1162:127
+8	21736923	rs13256921	G	A	217.24	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=1.884;DB;DP=93;Dels=0.00;FS=5.533;HaplotypeScore=6.4995;MLEAC=1;MLEAF=0.167;MQ=42.13;MQ0=3;MQRankSum=0.517;QD=6.79;ReadPosRankSum=1.706;SB=-1.980e+02;VQSLOD=-2.6430;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:34,0:34:66:0,66,691:41	0|1:15,17:32:99:252,0,211:41	0|0:27,0:27:42:0,42,425:41
+8	42044954	rs1058720	G	A	2760.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=4.313;DB;DP=157;Dels=0.00;FS=0.000;HaplotypeScore=2.0979;MLEAC=4;MLEAF=0.667;MQ=58.82;MQ0=0;MQRankSum=-2.021;QD=17.58;ReadPosRankSum=-0.462;SB=-1.377e+03;VQSLOD=7.5777;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,56:56:99:1820,147,0:127	1|0:24,27:51:99:555,0,233:127	1|0:26,24:50:99:427,0,458:127
+8	56608897	rs57623198	C	T	1911.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-1.515;DB;DP=229;Dels=0.00;FS=0.000;HaplotypeScore=1.1327;MLEAC=2;MLEAF=0.333;MQ=59.80;MQ0=0;MQRankSum=0.336;QD=12.66;ReadPosRankSum=-2.326;SB=-9.730e+02;VQSLOD=8.5587;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:78,0:78:99:0,229,2989:127	0|1:44,30:74:99:897,0,1444:127	0|1:44,33:77:99:1053,0,1400:127
+8	66327344	rs13282622	G	A	3918.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=4.514;DB;DP=192;Dels=0.00;FS=3.531;HaplotypeScore=1.6541;MLEAC=4;MLEAF=0.667;MQ=58.91;MQ0=0;MQRankSum=0.706;QD=20.41;ReadPosRankSum=-0.327;SB=-2.091e+03;VQSLOD=8.6266;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:34,37:71:99:1137,0,923:127	0|1:32,28:61:99:806,0,988:127	1|1:0,60:60:99:1975,153,0:127
+8	78181000	rs1563030	A	G	5178.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-0.030;DB;DP=192;Dels=0.00;FS=4.675;HaplotypeScore=2.9473;MLEAC=5;MLEAF=0.833;MQ=59.62;MQ0=0;MQRankSum=-0.467;QD=26.97;ReadPosRankSum=-0.855;SB=-2.617e+03;VQSLOD=7.3445;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,59:59:99:1954,150,0:127	1|0:32,37:70:99:1198,0,888:127	1|1:0,63:63:99:2026,156,0:127
+8	90278211	rs11998540	A	T	357.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-1.457;DB;DP=69;Dels=0.00;FS=1.289;HaplotypeScore=0.0000;MLEAC=2;MLEAF=0.333;MQ=58.96;MQ0=0;MQRankSum=1.415;QD=8.12;ReadPosRankSum=1.258;SB=-9.501e+01;VQSLOD=5.9584;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:12,7:19:99:185,0,416:60	0|0:25,0:25:60:0,60,805:60	1|0:16,9:25:99:211,0,500:60
+8	102355800	rs10103956	G	T	1756.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=0.927;DB;DP=189;Dels=0.00;FS=5.921;HaplotypeScore=1.5445;MLEAC=2;MLEAF=0.333;MQ=59.66;MQ0=0;MQRankSum=-0.420;QD=13.41;ReadPosRankSum=-0.019;SB=-5.470e+02;VQSLOD=8.1563;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:32,38:70:99:1078,0,999:127	1|0:35,26:61:99:717,0,1103:127	0|0:57,0:58:99:0,156,2011:127
+8	113376378	rs41340951	T	C	4379.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-8.019;DB;DP=211;Dels=0.00;FS=1.826;HaplotypeScore=0.2629;MLEAC=4;MLEAF=0.667;MQ=59.85;MQ0=0;MQRankSum=1.273;QD=20.75;ReadPosRankSum=0.144;SB=-1.893e+03;VQSLOD=8.8374;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,67:67:99:2221,187,0:127	1|0:32,37:69:99:1083,0,1066:127	1|0:35,40:75:99:1075,0,1108:127
+8	123499998	rs9693135	T	C	926.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-7.820;DB;DP=207;Dels=0.00;FS=2.678;HaplotypeScore=1.2574;MLEAC=2;MLEAF=0.333;MQ=56.08;MQ0=0;MQRankSum=-2.729;QD=6.34;ReadPosRankSum=-0.269;SB=-8.230e+02;VQSLOD=4.3016;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:61,0:61:99:0,172,2301:127	0|1:37,35:72:99:622,0,769:127	0|1:48,26:74:99:343,0,1280:127
+8	132727531	rs7000409	G	A	2050.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=5.475;DB;DP=220;Dels=0.00;FS=5.203;HaplotypeScore=1.9424;MLEAC=2;MLEAF=0.333;MQ=59.71;MQ0=0;MQRankSum=1.230;QD=14.14;ReadPosRankSum=-0.871;SB=-1.080e+03;VQSLOD=7.7925;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|1:29,35:64:99:1215,0,785:127	0|0:75,0:75:99:0,190,2423:127	1|0:50,31:81:99:874,0,1611:127
+8	140651779	rs1469039	G	A	1879.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-2.189;DB;DP=145;Dels=0.00;FS=0.000;HaplotypeScore=1.7695;MLEAC=3;MLEAF=0.500;MQ=58.39;MQ0=0;MQRankSum=0.745;QD=12.96;ReadPosRankSum=-0.159;SB=-9.360e+02;VQSLOD=9.0059;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:23,24:47:99:612,0,740:127	0/1:21,31:52:99:684,0,478:127	0/1:20,26:46:99:622,0,367:127
+9	2072356	rs4741641	T	G	2054.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-7.235;DB;DP=243;Dels=0.00;FS=0.000;HaplotypeScore=2.2089;MLEAC=2;MLEAF=0.333;MQ=59.64;MQ0=0;MQRankSum=1.166;QD=13.00;ReadPosRankSum=-0.475;SB=-1.004e+03;VQSLOD=9.0206;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:49,45:94:99:1245,0,1615:127	0|0:85,0:85:99:0,217,2818:127	1|0:32,32:64:99:848,0,936:127
+9	16302655	rs9298755	T	G	1394.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=3.356;DB;DP=200;Dels=0.00;FS=0.000;HaplotypeScore=3.1863;MLEAC=2;MLEAF=0.333;MQ=59.33;MQ0=0;MQRankSum=0.586;QD=10.03;ReadPosRankSum=-0.771;SB=-8.720e+02;VQSLOD=7.7724;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:60,1:61:99:0,165,2004:127	0|1:29,28:57:99:494,0,759:127	0|1:41,40:82:99:939,0,1069:127
+9	25201692	rs9408058	C	T	8643.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=245;Dels=0.00;FS=0.000;HaplotypeScore=0.8982;MLEAC=6;MLEAF=1.00;MQ=59.13;MQ0=0;QD=35.28;SB=-4.398e+03;VQSLOD=12.1738;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,89:89:99:3312,256,0:127	1|1:0,81:81:99:2771,223,0:127	1|1:0,75:75:99:2560,202,0:127
+9	44998848	.	C	G	254.43	VQSRTrancheSNP99.00to99.90	AC=5;AF=0.833;AN=6;BaseQRankSum=2.203;DP=193;Dels=0.00;FS=10.822;HaplotypeScore=0.2447;MLEAC=5;MLEAF=0.833;MQ=6.48;MQ0=163;MQRankSum=-1.206;QD=1.32;ReadPosRankSum=0.790;SB=-1.372e+02;VQSLOD=-6.6319;culprit=QD	GT:AD:DP:GQ:PL:TP	1|0:39,27:66:23:132,0,23:8	1|1:36,16:52:15:118,15,0:8	0|1:53,22:75:1:45,6,0:8
+9	69810010	rs113063015	A	C	280.26	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=-1.223;DB;DP=716;DS;Dels=0.00;FS=8.996;HaplotypeScore=39.8350;MLEAC=3;MLEAF=0.500;MQ=37.32;MQ0=64;MQRankSum=-3.574;QD=0.39;ReadPosRankSum=-0.897;SB=-1.065e-02;VQSLOD=-68.1677;culprit=DP	GT:AD:DP:GQ:PL:TP	0/1:218,23:241:73:73,0,3591:70	0/1:188,39:227:99:172,0,4233:70	0/1:217,31:248:74:74,0,5042:70
+9	78741390	rs7049138	G	A	1797.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=6.235;DB;DP=168;Dels=0.00;FS=4.003;HaplotypeScore=1.0858;MLEAC=3;MLEAF=0.500;MQ=55.32;MQ0=2;MQRankSum=-1.673;QD=16.34;ReadPosRankSum=-0.626;SB=-7.740e+02;VQSLOD=5.1915;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:37,33:70:99:828,0,918:80	1|1:0,40:40:81:1014,81,0:80	0|0:58,0:58:99:0,129,1403:80
+9	89010476	rs164937	T	C	736.24	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.977;DB;DP=216;Dels=0.00;FS=1.481;HaplotypeScore=1.0649;MLEAC=1;MLEAF=0.167;MQ=39.79;MQ0=9;MQRankSum=-3.028;QD=9.56;ReadPosRankSum=0.542;SB=-4.240e+02;VQSLOD=2.0772;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:66,0:66:99:0,174,2097:127	0|1:40,37:77:99:771,0,876:127	0|0:73,0:73:99:0,183,2147:127
+9	98491693	rs12337935	C	A	1474.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=2.098;DB;DP=97;Dels=0.00;FS=14.282;HaplotypeScore=1.7726;MLEAC=4;MLEAF=0.667;MQ=58.64;MQ0=0;MQRankSum=-0.224;QD=15.20;ReadPosRankSum=1.166;SB=-6.430e+02;VQSLOD=5.7986;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:14,12:26:99:348,0,352:63	1|1:0,28:29:63:781,63,0:63	0|1:17,25:42:99:387,0,364:63
+9	109619207	rs4743032	A	T	3810.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-2.859;DB;DP=214;Dels=0.00;FS=10.284;HaplotypeScore=0.3222;MLEAC=3;MLEAF=0.500;MQ=59.59;MQ0=0;MQRankSum=0.557;QD=25.07;ReadPosRankSum=-0.836;SB=-2.019e+03;VQSLOD=8.1399;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:37,39:76:99:1185,0,1225:127	1|1:0,76:76:99:2625,202,0:127	0|0:62,0:62:99:0,156,2049:127
+9	130235282	.	A	G	166.26	VQSRTrancheSNP99.90to100.00	AC=2;AF=0.333;AN=6;BaseQRankSum=-8.543;DP=232;Dels=0.00;FS=233.037;HaplotypeScore=2.9977;MLEAC=2;MLEAF=0.333;MQ=59.04;MQ0=0;MQRankSum=-2.038;QD=1.15;ReadPosRankSum=-7.649;SB=-3.100e-03;VQSLOD=-139.8496;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:74,14:88:99:0,108,2160:59	0|1:42,36:79:60:60,0,966:59	0|1:47,18:65:99:145,0,922:59
+9	138617823	rs55724592	C	T	53.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-0.380;DB;DP=72;Dels=0.00;FS=8.078;HaplotypeScore=1.0225;MLEAC=1;MLEAF=0.167;MQ=58.90;MQ0=0;MQRankSum=0.851;QD=2.66;ReadPosRankSum=-0.344;SB=-9.096e+01;VQSLOD=4.2652;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:20,0:20:48:0,48,580:44	0|0:32,0:32:48:0,48,577:44	0|1:10,10:20:88:88,0,199:44
+10	4588547	rs313427	C	T	1985.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=3.695;DB;DP=204;Dels=0.00;FS=1.813;HaplotypeScore=0.6137;MLEAC=2;MLEAF=0.333;MQ=59.73;MQ0=0;MQRankSum=0.241;QD=14.18;ReadPosRankSum=0.717;SB=-1.082e+03;VQSLOD=9.7784;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:39,35:74:99:1029,0,1182:127	1|0:32,34:66:99:995,0,1024:127	0|0:64,0:64:99:0,175,2242:127
+10	11560326	rs4424580	C	T	1027.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-0.178;DB;DP=207;Dels=0.00;FS=0.573;HaplotypeScore=2.1981;MLEAC=2;MLEAF=0.333;MQ=59.24;MQ0=0;MQRankSum=-0.988;QD=7.78;ReadPosRankSum=-0.492;SB=-7.450e+02;VQSLOD=8.4594;culprit=QD	GT:AD:DP:GQ:PL:TP	1|0:41,32:73:99:609,0,930:96	1|0:29,30:59:99:457,0,570:96	0|0:74,1:75:96:0,96,1185:96
+10	19567676	rs61458006	G	T	599.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.610;DB;DP=195;Dels=0.00;FS=0.844;HaplotypeScore=0.8795;MLEAC=1;MLEAF=0.167;MQ=59.57;MQ0=0;MQRankSum=-0.191;QD=11.31;ReadPosRankSum=-1.635;SB=-2.780e+02;VQSLOD=9.3606;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:75,0:75:99:0,208,2645:127	0|1:30,23:53:99:634,0,915:127	0|0:67,0:67:99:0,199,2540:127
+10	29082980	.	G	C	42.53	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=-1.216;DP=107;Dels=0.00;FS=60.979;HaplotypeScore=1.0911;MLEAC=3;MLEAF=0.500;MQ=55.72;MQ0=0;MQRankSum=-0.633;QD=0.40;ReadPosRankSum=-4.307;SB=-2.798e-01;VQSLOD=-11.1718;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:30,12:43:12:12,0,757:12	0/1:19,11:30:35:35,0,429:12	0/1:25,9:34:34:34,0,388:12
+10	38560911	rs80189231	T	A	1072.26	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=0.103;DB;DP=356;Dels=0.00;FS=12.038;HaplotypeScore=5.4015;MLEAC=3;MLEAF=0.500;MQ=49.74;MQ0=6;MQRankSum=-2.686;QD=3.01;ReadPosRankSum=0.797;SB=-1.690e+02;VQSLOD=-3.5129;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:109,26:135:99:389,0,2879:127	0/1:84,27:111:99:539,0,2214:127	0/1:93,17:110:99:183,0,2277:127
+10	56495833	rs6481118	G	A	7633.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=212;Dels=0.00;FS=0.000;HaplotypeScore=0.3328;MLEAC=6;MLEAF=1.00;MQ=54.64;MQ0=0;QD=36.00;SB=-2.091e+03;VQSLOD=8.6651;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,62:62:99:2383,184,0:127	1|1:1,67:68:99:2375,184,0:127	1|1:0,82:82:99:2875,223,0:127
+10	65355538	rs10733794	A	G	2464.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-8.392;DB;DP=193;Dels=0.00;FS=7.473;HaplotypeScore=2.5434;MLEAC=3;MLEAF=0.500;MQ=58.06;MQ0=2;MQRankSum=0.999;QD=18.96;ReadPosRankSum=-1.229;SB=-1.065e+03;VQSLOD=6.3934;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:33,32:65:99:830,0,1039:127	1|1:1,64:65:99:1679,153,0:127	0|0:63,0:63:99:0,159,2042:127
+10	74020452	rs72806301	C	A	1116.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-2.155;DB;DP=135;Dels=0.00;FS=3.279;HaplotypeScore=0.8720;MLEAC=2;MLEAF=0.333;MQ=58.76;MQ0=0;MQRankSum=-0.818;QD=11.88;ReadPosRankSum=1.484;SB=-6.800e+02;VQSLOD=7.2668;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|1:20,27:47:99:658,0,446:104	0|0:41,0:41:99:0,105,1324:104	1|0:25,22:47:99:497,0,482:104
+10	85258657	rs4454662	C	A	7638.01	PASS	AC=6;AF=1.00;AN=6;BaseQRankSum=1.716;DB;DP=223;Dels=0.00;FS=4.523;HaplotypeScore=1.1326;MLEAC=6;MLEAF=1.00;MQ=58.32;MQ0=0;MQRankSum=-1.230;QD=34.25;ReadPosRankSum=1.152;SB=-2.841e+03;VQSLOD=7.6461;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:1,64:65:99:2156,169,0:127	1|1:0,89:89:99:2982,238,0:127	1|1:0,69:69:99:2500,196,0:127
+10	95435201	rs2422323	C	T	4017.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=6.438;DB;DP=203;Dels=0.00;FS=13.125;HaplotypeScore=3.2358;MLEAC=4;MLEAF=0.667;MQ=55.24;MQ0=0;MQRankSum=1.174;QD=19.79;ReadPosRankSum=-0.655;SB=-2.177e+03;VQSLOD=4.5957;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:38,45:83:99:1327,0,931:127	1|1:1,63:64:99:1966,156,0:127	0|1:30,25:56:99:724,0,807:127
+10	106444111	rs72813617	A	G	632.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-0.838;DB;DP=197;Dels=0.00;FS=4.121;HaplotypeScore=1.8154;MLEAC=1;MLEAF=0.167;MQ=59.35;MQ0=0;MQRankSum=-1.142;QD=12.40;ReadPosRankSum=-1.947;SB=-2.390e+02;VQSLOD=7.6230;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|0:84,0:84:99:0,241,3129:127	0|0:62,0:62:99:0,159,2008:127	0|1:27,24:51:99:667,0,584:127
+10	116646860	rs4752347	T	A	4159.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-3.459;DB;DP=197;Dels=0.00;FS=3.519;HaplotypeScore=0.6313;MLEAC=4;MLEAF=0.667;MQ=59.27;MQ0=0;MQRankSum=1.049;QD=21.11;ReadPosRankSum=-1.271;SB=-2.347e+03;VQSLOD=8.3322;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|1:0,63:63:99:2191,169,0:127	1|0:31,35:66:99:1031,0,863:127	1|0:31,37:68:99:937,0,774:127
+10	125452232	rs7900707	A	G	3211.24	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-6.610;DB;DP=189;Dels=0.00;FS=17.742;HaplotypeScore=0.0000;MLEAC=4;MLEAF=0.667;MQ=59.66;MQ0=0;MQRankSum=0.614;QD=16.99;ReadPosRankSum=-0.321;SB=-1.553e+03;VQSLOD=6.9018;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,61:61:99:1944,168,0:127	1|0:44,26:70:99:627,0,1357:127	1|0:29,29:58:99:682,0,862:127
+10	132949760	rs10829924	A	C	684.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.328;DB;DP=215;Dels=0.00;FS=15.464;HaplotypeScore=1.3183;MLEAC=1;MLEAF=0.167;MQ=59.70;MQ0=0;MQRankSum=-1.053;QD=10.53;ReadPosRankSum=-2.893;SB=-2.920e+02;VQSLOD=5.8891;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|0:80,0:81:99:0,229,2999:127	0|0:69,0:69:99:0,175,2268:127	0|1:35,30:65:99:719,0,1046:127
+11	10741836	rs72853043	G	A	175.24	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=0.127;DB;DP=174;Dels=0.00;FS=7.087;HaplotypeScore=7.4618;MLEAC=1;MLEAF=0.167;MQ=55.72;MQ0=1;MQRankSum=-1.291;QD=3.44;ReadPosRankSum=-1.185;SB=-2.220e+02;VQSLOD=1.6095;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:78,0:78:99:0,105,1278:65	0|0:42,0:45:66:0,66,802:65	0|1:21,29:51:99:210,0,469:65
+11	19325064	rs793250	G	A	5752.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=5.080;DB;DP=203;Dels=0.00;FS=2.530;HaplotypeScore=0.8165;MLEAC=5;MLEAF=0.833;MQ=59.35;MQ0=0;MQRankSum=-0.061;QD=28.34;ReadPosRankSum=0.095;SB=-3.093e+03;VQSLOD=9.4617;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,71:71:99:2527,190,0:127	1|1:0,78:78:99:2626,205,0:127	1|0:32,22:54:99:599,0,768:127
+11	26026566	rs7942277	T	C	5414.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=176;Dels=0.00;FS=0.000;HaplotypeScore=0.2447;MLEAC=6;MLEAF=1.00;MQ=58.89;MQ0=0;QD=30.76;SB=-2.812e+03;VQSLOD=11.0501;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,53:53:99:1707,132,0:122	1|1:0,53:53:99:1581,123,0:122	1|1:0,70:70:99:2126,163,0:122
+11	35980461	rs263087	A	T	3494.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-0.701;DB;DP=186;Dels=0.00;FS=0.000;HaplotypeScore=2.9570;MLEAC=4;MLEAF=0.667;MQ=59.34;MQ0=0;MQRankSum=0.836;QD=18.79;ReadPosRankSum=0.007;SB=-1.535e+03;VQSLOD=7.6407;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:36,35:71:99:1001,0,1165:127	0|1:30,26:56:99:710,0,796:127	1|1:0,59:59:99:1783,144,0:127
+11	44985620	rs7106313	C	T	338.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=2.185;DB;DP=162;Dels=0.00;FS=4.840;HaplotypeScore=2.0046;MLEAC=1;MLEAF=0.167;MQ=56.94;MQ0=0;MQRankSum=2.019;QD=8.67;ReadPosRankSum=0.983;SB=-2.190e+02;VQSLOD=6.6624;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:79,0:80:99:0,174,2084:72	0|0:43,0:43:72:0,72,877:72	0|1:20,18:39:99:373,0,365:72
+11	55040918	rs187118824	A	T	1019.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.079;DB;DP=65;Dels=0.02;FS=12.723;HaplotypeScore=0.9771;MLEAC=2;MLEAF=0.333;MQ=56.64;MQ0=1;MQRankSum=0.323;QD=25.48;ReadPosRankSum=0.873;SB=-2.060e+01;VQSLOD=4.4200;culprit=DP	GT:AD:DP:GQ:PL:TP	0|1:2,9:11:48:325,0,48:50	0|0:24,1:25:63:0,63,833:50	1|0:6,22:28:51:733,0,51:50
+11	65339346	rs1194104	C	T	1804.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-2.465;DB;DP=189;Dels=0.00;FS=8.432;HaplotypeScore=2.2718;MLEAC=2;MLEAF=0.333;MQ=59.31;MQ0=0;MQRankSum=-0.120;QD=13.67;ReadPosRankSum=-0.306;SB=-1.061e+03;VQSLOD=7.9509;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:57,0:57:99:0,157,2050:127	0|1:30,35:65:99:781,0,822:127	0|1:23,44:67:99:1062,0,690:127
+11	75978490	rs655877	G	C	2986.25	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-0.846;DB;DP=127;Dels=0.00;FS=5.433;HaplotypeScore=0.2629;MLEAC=5;MLEAF=0.833;MQ=59.42;MQ0=0;MQRankSum=0.026;QD=23.51;ReadPosRankSum=0.168;SB=-1.613e+03;VQSLOD=7.0404;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,50:50:99:1405,111,0:101	1|1:0,45:46:99:1269,102,0:101	1|0:17,14:31:99:354,0,469:101
+11	86061661	rs11825046	T	C	6014.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-3.250;DB;DP=282;Dels=0.00;FS=0.960;HaplotypeScore=1.6440;MLEAC=4;MLEAF=0.667;MQ=59.57;MQ0=0;MQRankSum=1.057;QD=21.33;ReadPosRankSum=-1.763;SB=-3.081e+03;VQSLOD=7.3485;culprit=DP	GT:AD:DP:GQ:PL:TP	1|0:54,49:103:99:1498,0,1848:127	1|1:0,83:83:99:2924,223,0:127	0|1:44,52:96:99:1592,0,1380:127
+11	103989190	rs1545865	T	C	4915.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-4.030;DB;DP=219;Dels=0.00;FS=1.231;HaplotypeScore=1.2090;MLEAC=4;MLEAF=0.667;MQ=59.37;MQ0=0;MQRankSum=1.103;QD=22.44;ReadPosRankSum=0.773;SB=-2.213e+03;VQSLOD=8.9081;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|1:23,40:63:99:1203,0,669:127	0|1:36,52:88:99:1433,0,1136:127	1|1:0,68:68:99:2279,178,0:127
+11	113825129	rs1150234	G	A	2441.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=3.977;DB;DP=210;Dels=0.00;FS=0.000;HaplotypeScore=2.0700;MLEAC=3;MLEAF=0.500;MQ=59.49;MQ0=0;MQRankSum=0.877;QD=11.63;ReadPosRankSum=0.262;SB=-1.513e+03;VQSLOD=9.0378;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:30,33:63:99:881,0,774:127	0/1:46,33:80:99:726,0,1020:127	0/1:32,35:67:99:873,0,759:127
+11	123470819	rs1148095	T	C	6964.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-0.850;DB;DP=242;Dels=0.00;FS=1.477;HaplotypeScore=1.3868;MLEAC=5;MLEAF=0.833;MQ=59.25;MQ0=0;MQRankSum=-1.734;QD=28.78;ReadPosRankSum=-0.749;SB=-3.242e+03;VQSLOD=8.7854;culprit=MQRankSum	GT:AD:DP:GQ:PL:TP	1|1:0,92:92:99:3408,265,0:127	1|0:35,51:86:99:1520,0,1059:127	1|1:0,64:64:99:2036,157,0:127
+11	132780959	rs61906922	C	T	1342.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=6.221;DB;DP=263;Dels=0.00;FS=0.601;HaplotypeScore=1.8444;MLEAC=1;MLEAF=0.167;MQ=59.58;MQ0=0;MQRankSum=0.997;QD=15.25;ReadPosRankSum=-0.746;SB=-6.890e+02;VQSLOD=8.8133;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|0:87,0:87:99:0,250,2877:127	0|0:87,0:88:99:0,253,3009:127	0|1:43,45:88:99:1377,0,1138:127
+12	5922552	rs17786352	C	G	1874.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-7.386;DB;DP=231;Dels=0.00;FS=0.000;HaplotypeScore=0.3053;MLEAC=2;MLEAF=0.333;MQ=54.49;MQ0=0;MQRankSum=2.656;QD=13.11;ReadPosRankSum=1.042;SB=-9.400e+02;VQSLOD=4.7495;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:44,35:79:99:897,0,1383:127	1|0:28,36:64:99:1016,0,734:127	0|0:88,0:88:99:0,238,3004:127
+12	12560642	rs10772559	G	T	501.28	VQSRTrancheSNP99.00to99.90	AC=4;AF=0.667;AN=6;BaseQRankSum=0.747;DB;DP=229;Dels=0.04;FS=17.409;HaplotypeScore=19.6989;MLEAC=4;MLEAF=0.667;MQ=49.37;MQ0=0;MQRankSum=-3.656;QD=2.19;ReadPosRankSum=-5.397;SB=-2.196e+03;VQSLOD=-10.1992;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|1:0,66:66:24:273,24,0:24	1|0:29,45:74:99:148,0,702:24	1|0:33,46:80:99:122,0,781:24
+12	21328424	rs4149040	G	C	2565.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=0.888;DB;DP=252;Dels=0.00;FS=9.753;HaplotypeScore=0.6082;MLEAC=2;MLEAF=0.333;MQ=59.49;MQ0=0;MQRankSum=1.166;QD=15.18;ReadPosRankSum=0.966;SB=-1.181e+03;VQSLOD=7.5539;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:40,49:89:99:1534,0,1308:127	0|0:83,0:83:99:0,241,3117:127	1|0:45,35:80:99:1070,0,1402:127
+12	29935607	rs7305813	A	C	810.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=0.307;DB;DP=203;Dels=0.00;FS=14.326;HaplotypeScore=1.9820;MLEAC=1;MLEAF=0.167;MQ=59.57;MQ0=0;MQRankSum=-0.164;QD=12.86;ReadPosRankSum=-0.733;SB=-2.950e+02;VQSLOD=7.9009;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:71,0:71:99:0,193,2479:127	0|0:69,0:69:99:0,196,2464:127	0|1:28,35:63:99:845,0,847:127
+12	39118960	rs79977305	G	A	1330.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=6.307;DB;DP=263;Dels=0.00;FS=0.597;HaplotypeScore=1.4583;MLEAC=1;MLEAF=0.167;MQ=58.83;MQ0=0;MQRankSum=1.925;QD=13.57;ReadPosRankSum=-0.548;SB=-7.360e+02;VQSLOD=7.3733;culprit=MQRankSum	GT:AD:DP:GQ:PL:TP	0|0:81,0:81:99:0,241,2869:127	0|0:84,0:84:99:0,229,2712:127	0|1:51,47:98:99:1365,0,1343:127
+12	48120010	rs3829317	A	C	4015.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=1.659;DB;DP=162;Dels=0.00;FS=1.828;HaplotypeScore=2.1844;MLEAC=5;MLEAF=0.833;MQ=59.48;MQ0=0;MQRankSum=0.154;QD=24.78;ReadPosRankSum=0.482;SB=-2.240e+03;VQSLOD=8.1337;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,63:63:99:2024,163,0:110	1|0:24,27:51:99:550,0,540:110	1|1:0,48:48:99:1441,111,0:110
+12	58867437	rs140632614	G	T	829.25	VQSRTrancheSNP99.00to99.90	AC=4;AF=0.667;AN=6;BaseQRankSum=1.409;DB;DP=144;Dels=0.00;FS=68.612;HaplotypeScore=0.8667;MLEAC=4;MLEAF=0.667;MQ=35.15;MQ0=16;MQRankSum=-7.440;QD=5.76;ReadPosRankSum=-0.245;SB=-1.011e+00;VQSLOD=-16.4891;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:34,24:58:99:291,0,1100:44	0|1:42,8:50:61:61,0,1319:44	1|1:1,35:36:45:519,45,0:44
+12	79238948	rs10778234	C	T	3719.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=8.187;DB;DP=241;Dels=0.00;FS=7.073;HaplotypeScore=0.2447;MLEAC=3;MLEAF=0.500;MQ=59.41;MQ0=0;MQRankSum=-0.381;QD=15.43;ReadPosRankSum=0.579;SB=-1.864e+03;VQSLOD=7.8136;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:42,35:77:99:1049,0,1213:127	0/1:37,32:69:99:988,0,957:127	0/1:42,53:95:99:1682,0,1062:127
+12	90856710	rs825945	T	C	1096.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-6.342;DB;DP=193;Dels=0.00;FS=2.164;HaplotypeScore=0.0000;MLEAC=2;MLEAF=0.333;MQ=59.64;MQ0=0;MQRankSum=2.071;QD=9.70;ReadPosRankSum=-1.697;SB=-5.710e+02;VQSLOD=7.3118;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:80,0:80:99:0,232,3042:127	0|1:30,21:51:99:511,0,921:127	0|1:36,26:62:99:624,0,1085:127
+12	101460237	rs7965836	C	T	3485.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-2.070;DB;DP=247;Dels=0.00;FS=2.895;HaplotypeScore=0.6556;MLEAC=3;MLEAF=0.500;MQ=59.83;MQ0=0;MQRankSum=-0.655;QD=14.11;ReadPosRankSum=-0.983;SB=-1.581e+03;VQSLOD=8.4872;culprit=MQ	GT:AD:DP:GQ:PL:TP	0/1:40,43:83:99:1287,0,1179:127	0/1:44,36:80:99:1068,0,1363:127	0/1:43,41:84:99:1130,0,1321:127
+12	112830546	rs150699511	C	A	487.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.014;DB;DP=179;Dels=0.00;FS=0.860;HaplotypeScore=2.3392;MLEAC=1;MLEAF=0.167;MQ=59.16;MQ0=0;MQRankSum=1.141;QD=8.86;ReadPosRankSum=0.950;SB=-2.870e+02;VQSLOD=8.1138;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:62,0:62:99:0,166,2141:127	0|1:34,21:55:99:522,0,751:127	0|0:62,0:62:99:0,141,1808:127
+12	122942070	rs10744217	A	G	1812.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.353;DB;DP=179;Dels=0.00;FS=0.663;HaplotypeScore=1.4184;MLEAC=3;MLEAF=0.500;MQ=58.69;MQ0=0;MQRankSum=0.992;QD=15.10;ReadPosRankSum=1.081;SB=-5.860e+02;VQSLOD=8.4750;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:35,36:71:99:762,0,1100:92	1|1:0,48:49:93:1095,93,0:92	0|0:59,0:59:99:0,120,1560:92
+12	130522866	rs1613499	C	T	3975.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=130;Dels=0.00;FS=0.000;HaplotypeScore=0.6332;MLEAC=6;MLEAF=1.00;MQ=59.11;MQ0=0;QD=30.58;SB=-1.386e+03;VQSLOD=10.2250;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,57:57:99:1939,144,0:73	1|1:0,34:34:75:990,75,0:73	1|1:0,39:39:78:1046,78,0:73
+13	21520045	rs9509464	A	C	5103.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=195;Dels=0.00;FS=0.000;HaplotypeScore=1.6144;MLEAC=6;MLEAF=1.00;MQ=47.37;MQ0=0;QD=26.17;SB=-2.582e+03;VQSLOD=5.1918;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:0,71:71:99:2106,186,0:98	1|1:0,78:78:99:1856,162,0:98	1|1:0,46:46:99:1141,99,0:98
+13	28463938	rs954750	C	T	2740.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=3.206;DB;DP=242;Dels=0.00;FS=0.000;HaplotypeScore=4.0078;MLEAC=2;MLEAF=0.333;MQ=59.46;MQ0=0;MQRankSum=0.880;QD=16.61;ReadPosRankSum=-0.617;SB=-1.312e+03;VQSLOD=6.7692;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:40,43:83:99:1362,0,1242:127	1|0:35,47:82:99:1417,0,1010:127	0|0:76,0:77:99:0,205,2635:127
+13	37484693	rs1571317	T	C	971.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.315;DB;DP=229;Dels=0.00;FS=3.052;HaplotypeScore=0.6603;MLEAC=1;MLEAF=0.167;MQ=58.51;MQ0=0;MQRankSum=1.885;QD=12.78;ReadPosRankSum=-0.343;SB=-5.750e+02;VQSLOD=7.3064;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:94,0:94:99:0,253,3258:127	0|1:35,41:76:99:1006,0,924:127	0|0:59,0:59:99:0,147,1872:127
+13	46407442	rs11147990	G	A	2668.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=1.227;DB;DP=199;Dels=0.00;FS=0.530;HaplotypeScore=1.8025;MLEAC=3;MLEAF=0.500;MQ=58.99;MQ0=0;MQRankSum=0.023;QD=20.21;ReadPosRankSum=-0.452;SB=-1.651e+03;VQSLOD=9.2006;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|1:36,33:69:99:994,0,1056:127	0|0:67,0:67:99:0,141,1821:127	1|1:0,63:63:99:1719,135,0:127
+13	56456878	rs2997102	C	A	9454.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=257;Dels=0.00;FS=0.000;HaplotypeScore=0.9537;MLEAC=6;MLEAF=1.00;MQ=59.57;MQ0=0;QD=36.79;SB=-4.826e+03;VQSLOD=11.5149;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,99:99:99:3692,280,0:127	1|1:0,88:88:99:3239,253,0:127	1|1:0,70:70:99:2523,193,0:127
+13	65275154	rs359338	G	A	1963.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.733;DB;DP=173;Dels=0.00;FS=3.628;HaplotypeScore=0.9480;MLEAC=2;MLEAF=0.333;MQ=59.49;MQ0=0;MQRankSum=-0.676;QD=14.54;ReadPosRankSum=0.399;SB=-1.054e+03;VQSLOD=8.4489;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:31,28:59:99:883,0,990:108	1|0:39,37:76:99:1119,0,1112:108	0|0:38,0:38:99:0,108,1390:108
+13	74611546	rs73214804	C	T	639.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-0.487;DB;DP=164;Dels=0.00;FS=0.000;HaplotypeScore=1.4071;MLEAC=1;MLEAF=0.167;MQ=58.95;MQ0=0;MQRankSum=0.902;QD=11.21;ReadPosRankSum=-0.541;SB=-3.000e+02;VQSLOD=8.8824;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:53,0:53:99:0,135,1773:110	0|0:53,1:54:99:0,111,1440:110	0|1:24,33:57:99:674,0,388:110
+13	83670546	.	G	A	169.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=5.301;DP=178;Dels=0.00;FS=0.000;HaplotypeScore=36.5059;MLEAC=2;MLEAF=0.333;MQ=42.20;MQ0=11;MQRankSum=-6.654;QD=1.38;ReadPosRankSum=-0.761;SB=-1.340e+02;VQSLOD=-20.4053;culprit=QD	GT:AD:DP:GQ:PL:TP	0|1:37,16:53:99:139,0,523:90	0|0:51,4:55:91:0,91,1393:90	1|0:58,12:70:69:69,0,1214:90
+13	92742124	rs2148446	G	A	1884.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-2.340;DB;DP=213;Dels=0.00;FS=0.000;HaplotypeScore=0.3156;MLEAC=2;MLEAF=0.333;MQ=59.37;MQ0=0;MQRankSum=-2.935;QD=12.99;ReadPosRankSum=-0.579;SB=-9.540e+02;VQSLOD=7.2833;culprit=MQRankSum	GT:AD:DP:GQ:PL:TP	0|1:38,38:76:99:1130,0,1190:127	0|0:68,0:68:99:0,190,2454:127	1|0:38,31:69:99:793,0,1094:127
+13	101976707	rs527328	A	T	9240.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=259;Dels=0.00;FS=0.000;HaplotypeScore=0.2447;MLEAC=6;MLEAF=1.00;MQ=53.28;MQ0=0;QD=35.68;SB=-4.696e+03;VQSLOD=7.5241;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,92:92:99:3410,262,0:127	1|1:0,88:88:99:3195,247,0:127	1|1:1,78:79:99:2635,202,0:127
+13	109990322	rs7328109	T	C	7198.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-2.487;DB;DP=245;Dels=0.00;FS=5.887;HaplotypeScore=1.8793;MLEAC=5;MLEAF=0.833;MQ=59.60;MQ0=0;MQRankSum=-0.236;QD=29.38;ReadPosRankSum=0.136;SB=-3.593e+03;VQSLOD=8.8925;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,79:79:99:2825,220,0:127	1|0:33,54:87:99:1591,0,933:127	1|1:0,79:79:99:2782,214,0:127
+14	20313371	rs10137604	A	C	2154.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-4.894;DB;DP=255;Dels=0.00;FS=0.000;HaplotypeScore=2.0503;MLEAC=2;MLEAF=0.333;MQ=56.32;MQ0=1;MQRankSum=1.608;QD=13.72;ReadPosRankSum=0.126;SB=-1.124e+03;VQSLOD=5.6223;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:40,48:88:99:1426,0,1229:127	0|0:98,0:98:99:0,268,3527:127	1|0:43,26:69:99:767,0,1284:127
+14	38160457	rs2181345	A	C	4683.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=169;Dels=0.00;FS=0.000;HaplotypeScore=2.5449;MLEAC=6;MLEAF=1.00;MQ=59.00;MQ0=0;QD=27.71;SB=-2.390e+03;VQSLOD=9.9888;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,56:56:99:1818,141,0:107	1|1:0,58:58:99:1523,123,0:107	1|1:0,53:55:99:1342,108,0:107
+14	47568119	rs1952206	T	C	3399.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-9.721;DB;DP=230;Dels=0.00;FS=0.483;HaplotypeScore=0.6577;MLEAC=3;MLEAF=0.500;MQ=59.54;MQ0=0;MQRankSum=-0.479;QD=14.78;ReadPosRankSum=1.261;SB=-1.667e+03;VQSLOD=9.1589;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0/1:41,43:84:99:1239,0,1315:127	0/1:28,43:71:99:1178,0,816:127	0/1:40,35:75:99:982,0,1314:127
+14	56951735	rs1189276	G	A	6939.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=3.878;DB;DP=235;Dels=0.00;FS=9.373;HaplotypeScore=0.9063;MLEAC=5;MLEAF=0.833;MQ=59.52;MQ0=0;MQRankSum=-0.550;QD=29.53;ReadPosRankSum=1.104;SB=-3.438e+03;VQSLOD=8.7592;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:1,92:93:99:3558,274,0:127	1|1:0,60:60:99:2120,165,0:127	1|0:40,42:82:99:1261,0,1194:127
+14	68051087	rs11628035	G	A	4028.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=3.928;DB;DP=236;Dels=0.00;FS=8.184;HaplotypeScore=1.3296;MLEAC=3;MLEAF=0.500;MQ=58.83;MQ0=0;MQRankSum=1.834;QD=25.49;ReadPosRankSum=2.590;SB=-1.989e+03;VQSLOD=6.7911;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|0:38,39:77:99:1265,0,1112:127	1|1:0,81:81:99:2763,214,0:127	0|0:78,0:78:99:0,208,2673:127
+14	87263523	rs2542229	A	C	8104.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=239;Dels=0.00;FS=0.000;HaplotypeScore=0.6305;MLEAC=6;MLEAF=1.00;MQ=59.17;MQ0=0;QD=33.91;SB=-4.393e+03;VQSLOD=11.3001;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,77:77:99:2810,214,0:127	1|1:0,85:85:99:2877,223,0:127	1|1:0,77:77:99:2417,187,0:127
+14	96490389	rs72702859	C	G	3394.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-6.529;DB;DP=264;Dels=0.00;FS=2.746;HaplotypeScore=3.1300;MLEAC=3;MLEAF=0.500;MQ=59.49;MQ0=0;MQRankSum=-1.258;QD=18.25;ReadPosRankSum=-0.961;SB=-1.966e+03;VQSLOD=6.3356;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:34,52:86:99:1358,0,886:127	1|1:0,100:100:99:2036,180,0:127	0|0:78,0:78:99:0,184,2393:127
+14	106085773	rs2955055	C	T	2115.26	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=-0.746;DB;DP=172;Dels=0.00;FS=18.420;HaplotypeScore=2.9489;MLEAC=3;MLEAF=0.500;MQ=35.68;MQ0=18;MQRankSum=3.251;QD=12.30;ReadPosRankSum=0.100;SB=-5.530e+02;VQSLOD=1.2866;culprit=MQ	GT:AD:DP:GQ:PL:TP	0/1:32,33:65:99:600,0,554:80	0/1:30,42:72:99:1001,0,400:80	0/1:12,23:35:80:553,0,80:80
+15	23743658	rs142070302	T	A	1007.26	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.164;DB;DP=408;Dels=0.00;FS=166.853;HaplotypeScore=53.5447;MLEAC=3;MLEAF=0.500;MQ=38.96;MQ0=14;MQRankSum=-6.283;QD=2.47;ReadPosRankSum=2.486;SB=-1.079e-02;VQSLOD=-304.7942;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:104,39:143:99:365,0,2802:45	0/1:99,40:139:99:636,0,2335:45	0/1:97,28:126:45:45,0,2324:45
+15	42065422	rs2925337	A	C	5231.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=176;Dels=0.00;FS=0.000;HaplotypeScore=0.0000;MLEAC=6;MLEAF=1.00;MQ=59.68;MQ0=0;QD=29.72;SB=-3.112e+03;VQSLOD=11.0322;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,54:54:99:1770,138,0:127	1|1:0,68:68:99:1750,138,0:127	1|1:0,54:54:99:1711,132,0:127
+15	53677501	.	T	G	770.26	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=-8.969;DP=210;Dels=0.00;FS=347.467;HaplotypeScore=2.0911;MLEAC=3;MLEAF=0.500;MQ=58.31;MQ0=0;MQRankSum=0.438;QD=3.67;ReadPosRankSum=-6.409;SB=-5.499e-03;VQSLOD=-307.0964;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:59,20:79:94:94,0,1389:94	0/1:41,31:72:99:438,0,721:94	0/1:37,21:59:99:277,0,521:94
+15	62088952	rs35033959	A	T	3546.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.220;DB;DP=241;Dels=0.00;FS=14.286;HaplotypeScore=0.2774;MLEAC=3;MLEAF=0.500;MQ=59.77;MQ0=0;MQRankSum=-1.969;QD=14.71;ReadPosRankSum=0.341;SB=-1.970e+03;VQSLOD=6.3785;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:45,44:89:99:1265,0,1533:127	0/1:34,38:72:99:1133,0,1137:127	0/1:41,39:80:99:1148,0,1303:127
+15	71657506	.	A	G	140.40	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=-1.611;DP=133;Dels=0.00;FS=35.593;HaplotypeScore=4.0622;MLEAC=2;MLEAF=0.333;MQ=51.29;MQ0=1;MQRankSum=-3.344;QD=1.53;ReadPosRankSum=-3.999;SB=-5.015e+01;VQSLOD=-4.8050;culprit=QD	GT:AD:DP:GQ:PL:TP	1|0:46,11:57:93:93,0,851:15	1|0:23,12:35:86:86,0,299:15	0|0:33,8:41:15:0,15,503:15
+15	92857342	rs12101550	A	G	2734.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-7.995;DB;DP=226;Dels=0.00;FS=3.761;HaplotypeScore=1.5682;MLEAC=3;MLEAF=0.500;MQ=59.41;MQ0=0;MQRankSum=0.761;QD=12.10;ReadPosRankSum=-0.587;SB=-1.469e+03;VQSLOD=9.1510;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:45,37:82:99:853,0,1356:127	0/1:29,40:69:99:966,0,852:127	0/1:38,37:75:99:954,0,1085:127
+15	100799787	rs4965610	C	T	2133.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=8.373;DB;DP=230;Dels=0.00;FS=1.037;HaplotypeScore=0.5427;MLEAC=3;MLEAF=0.500;MQ=58.84;MQ0=0;MQRankSum=0.169;QD=9.28;ReadPosRankSum=-0.098;SB=-1.328e+03;VQSLOD=7.8802;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:40,36:76:99:948,0,701:127	0/1:45,38:83:99:761,0,635:127	0/1:35,36:71:99:463,0,706:127
+16	5754758	rs11644707	C	T	1012.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.777;DB;DP=161;Dels=0.00;FS=0.000;HaplotypeScore=2.4572;MLEAC=2;MLEAF=0.333;MQ=59.71;MQ0=0;MQRankSum=0.699;QD=9.64;ReadPosRankSum=2.624;SB=-5.580e+02;VQSLOD=7.0970;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|1:31,26:57:99:627,0,943:125	0|0:56,0:56:99:0,126,1597:125	1|0:32,16:48:99:424,0,785:125
+16	11397080	rs1019552	T	C	2295.44	PASS	AC=6;AF=1.00;AN=6;DB;DP=169;Dels=0.01;FS=0.000;HaplotypeScore=8.2178;MLEAC=6;MLEAF=1.00;MQ=59.32;MQ0=0;QD=13.58;SB=-2.379e+03;VQSLOD=4.3801;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,71:71:96:1220,96,0:9	1|1:0,48:48:9:78,9,0:9	1|1:0,48:48:81:1035,81,0:9
+16	30509723	rs7193693	A	G	497.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-4.054;DB;DP=167;Dels=0.00;FS=0.000;HaplotypeScore=1.1605;MLEAC=1;MLEAF=0.167;MQ=57.89;MQ0=0;MQRankSum=-0.545;QD=9.38;ReadPosRankSum=0.541;SB=-2.410e+02;VQSLOD=8.4265;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:57,0:57:99:0,153,2009:101	0|0:57,0:57:99:0,102,1304:101	0|1:26,27:53:99:532,0,526:101
+16	34610294	rs72812776	C	T	603.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.361;DB;DP=270;Dels=0.00;FS=6.065;HaplotypeScore=3.1650;MLEAC=1;MLEAF=0.167;MQ=59.66;MQ0=0;MQRankSum=1.603;QD=7.83;ReadPosRankSum=0.296;SB=-2.820e+02;VQSLOD=3.3685;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:123,0:123:99:0,343,4443:127	0|0:69,1:70:99:0,184,2397:127	0|1:48,29:77:99:638,0,1483:127
+16	55910673	rs17265788	G	C	2345.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=2.657;DB;DP=208;Dels=0.00;FS=3.162;HaplotypeScore=1.9213;MLEAC=3;MLEAF=0.500;MQ=59.67;MQ0=0;MQRankSum=-0.333;QD=16.63;ReadPosRankSum=-0.425;SB=-1.468e+03;VQSLOD=8.3665;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|1:33,33:66:99:769,0,761:122	0|0:67,0:67:99:0,123,1506:122	1|1:0,75:75:99:1621,132,0:122
+16	65776985	rs72784548	T	C	3527.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=5.439;DB;DP=195;Dels=0.00;FS=1.228;HaplotypeScore=0.8795;MLEAC=4;MLEAF=0.667;MQ=58.78;MQ0=0;MQRankSum=1.630;QD=18.09;ReadPosRankSum=1.358;SB=-1.904e+03;VQSLOD=7.6763;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|1:0,68:68:99:2351,181,0:127	1|0:33,28:61:99:586,0,710:127	1|0:31,35:66:99:590,0,468:127
+16	83153777	rs4395063	T	C	3143.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-1.771;DB;DP=205;Dels=0.00;FS=1.805;HaplotypeScore=1.0370;MLEAC=4;MLEAF=0.667;MQ=59.55;MQ0=0;MQRankSum=-1.380;QD=15.33;ReadPosRankSum=0.424;SB=-2.104e+03;VQSLOD=8.8241;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:31,31:62:99:867,0,865:127	0|1:45,28:73:99:412,0,801:127	1|1:0,70:70:99:1906,150,0:127
+16	88914235	rs12932521	C	T	329.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=1.978;DB;DP=114;Dels=0.00;FS=1.931;HaplotypeScore=0.9402;MLEAC=1;MLEAF=0.167;MQ=58.60;MQ0=0;MQRankSum=0.854;QD=7.84;ReadPosRankSum=-0.339;SB=-2.970e+02;VQSLOD=8.1036;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:43,0:43:99:0,102,1192:39	0|0:29,0:29:39:0,39,468:39	0|1:15,26:42:99:364,0,105:39
+17	5764764	rs2309483	C	G	4071.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=4.237;DB;DP=154;Dels=0.00;FS=0.000;HaplotypeScore=4.4102;MLEAC=5;MLEAF=0.833;MQ=58.88;MQ0=0;MQRankSum=0.456;QD=26.44;ReadPosRankSum=0.385;SB=-1.791e+03;VQSLOD=6.9458;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,61:62:99:2049,165,0:107	1|0:23,26:49:99:648,0,482:107	1|1:0,43:43:99:1374,108,0:107
+17	14096866	.	C	T	489.26	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=4.537;DP=181;Dels=0.00;FS=33.896;HaplotypeScore=1.0782;MLEAC=3;MLEAF=0.500;MQ=24.52;MQ0=71;MQRankSum=0.353;QD=2.70;ReadPosRankSum=0.385;SB=-1.450e+02;VQSLOD=-6.2174;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:48,17:66:99:228,0,822:63	0/1:42,16:58:99:237,0,389:63	0/1:44,13:57:63:63,0,523:63
+17	21547285	rs62049731	A	C	1322.26	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=-0.987;DB;DP=569;Dels=0.00;FS=2.322;HaplotypeScore=42.4511;MLEAC=3;MLEAF=0.500;MQ=44.59;MQ0=24;MQRankSum=-6.240;QD=2.32;ReadPosRankSum=-5.171;SB=-6.369e+02;VQSLOD=-39.5319;culprit=DP	GT:AD:DP:GQ:PL:TP	0/1:146,28:174:99:217,0,4187:127	0/1:162,56:218:99:804,0,4298:127	0/1:139,38:177:99:340,0,3842:127
+17	33513649	rs3744366	A	G	3743.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-3.729;DB;DP=213;Dels=0.00;FS=0.526;HaplotypeScore=2.9053;MLEAC=4;MLEAF=0.667;MQ=58.99;MQ0=0;MQRankSum=-0.152;QD=17.57;ReadPosRankSum=0.530;SB=-2.067e+03;VQSLOD=8.0191;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:44,40:84:99:1083,0,1341:127	1|1:0,67:67:99:2074,162,0:127	0|1:37,24:62:99:586,0,1015:127
+17	44809197	rs116187585	A	G	8703.01	PASS	AC=6;AF=1.00;AN=6;BaseQRankSum=-0.554;DB;DP=254;Dels=0.00;FS=3.487;HaplotypeScore=4.0582;MLEAC=6;MLEAF=1.00;MQ=59.58;MQ0=0;MQRankSum=1.677;QD=34.26;ReadPosRankSum=1.483;SB=-4.228e+03;VQSLOD=6.6144;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:1,96:97:99:3470,268,0:127	1|1:0,82:84:99:2846,220,0:127	1|1:0,73:73:99:2387,184,0:127
+17	55158811	rs7217371	G	A	2849.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=8.616;DB;DP=206;Dels=0.00;FS=0.511;HaplotypeScore=1.0970;MLEAC=3;MLEAF=0.500;MQ=59.66;MQ0=0;MQRankSum=0.103;QD=13.83;ReadPosRankSum=0.958;SB=-1.448e+03;VQSLOD=9.9440;culprit=MQ	GT:AD:DP:GQ:PL:TP	0/1:40,31:72:99:982,0,1147:127	0/1:35,40:75:99:1236,0,984:127	0/1:32,27:59:99:670,0,882:127
+17	66991216	rs61697543	T	C	738.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-4.530;DB;DP=252;Dels=0.00;FS=1.490;HaplotypeScore=1.7074;MLEAC=1;MLEAF=0.167;MQ=59.36;MQ0=0;MQRankSum=0.771;QD=10.86;ReadPosRankSum=-0.724;SB=-3.930e+02;VQSLOD=8.8864;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:95,0:95:99:0,268,3511:127	0|0:89,0:89:99:0,235,3058:127	0|1:33,35:68:99:773,0,965:127
+18	1629264	rs5025369	A	G	86.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=-1.739;DB;DP=149;Dels=0.00;FS=15.359;HaplotypeScore=7.1355;MLEAC=2;MLEAF=0.333;MQ=39.72;MQ0=11;MQRankSum=-2.543;QD=0.81;ReadPosRankSum=0.088;SB=-3.380e+01;VQSLOD=-6.2052;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:51,15:66:50:50,0,1143:49	0|0:37,5:42:81:0,81,941:49	1|0:35,6:41:75:75,0,818:49
+18	10010426	rs4797393	T	C	4197.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=0.425;DB;DP=210;Dels=0.00;FS=1.132;HaplotypeScore=1.2660;MLEAC=4;MLEAF=0.667;MQ=59.43;MQ0=0;MQRankSum=-2.916;QD=19.99;ReadPosRankSum=0.379;SB=-2.001e+03;VQSLOD=7.0312;culprit=MQRankSum	GT:AD:DP:GQ:PL:TP	1|1:0,65:65:99:2247,181,0:127	1|0:35,39:75:99:1170,0,967:127	1|0:41,29:70:99:780,0,1052:127
+18	20025030	rs4800406	A	G	1113.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.700;DB;DP=230;Dels=0.00;FS=0.000;HaplotypeScore=1.6804;MLEAC=1;MLEAF=0.167;MQ=59.56;MQ0=0;MQRankSum=1.643;QD=12.65;ReadPosRankSum=-1.166;SB=-6.160e+02;VQSLOD=8.6574;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:78,0:78:99:0,223,2978:127	0|1:46,42:88:99:1148,0,1460:127	0|0:64,0:64:99:0,175,2303:127
+18	41449098	rs2045671	C	T	8380.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=237;Dels=0.00;FS=0.000;HaplotypeScore=1.3482;MLEAC=6;MLEAF=1.00;MQ=59.65;MQ0=0;QD=35.36;SB=-4.462e+03;VQSLOD=11.6464;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,76:76:99:2756,214,0:127	1|1:0,75:75:99:2635,202,0:127	1|1:0,86:86:99:2989,229,0:127
+18	50973169	rs11661305	A	G	5320.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=2.753;DB;DP=196;Dels=0.00;FS=2.568;HaplotypeScore=1.1306;MLEAC=5;MLEAF=0.833;MQ=57.73;MQ0=0;MQRankSum=0.246;QD=27.14;ReadPosRankSum=0.186;SB=-2.411e+03;VQSLOD=7.5009;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:0,74:74:99:2621,202,0:127	1|0:30,37:67:99:1009,0,842:127	1|1:0,55:55:99:1690,132,0:127
+18	67950442	rs62091919	T	G	1779.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-2.517;DB;DP=195;Dels=0.00;FS=0.562;HaplotypeScore=1.5454;MLEAC=2;MLEAF=0.333;MQ=59.26;MQ0=0;MQRankSum=0.006;QD=12.89;ReadPosRankSum=-0.268;SB=-9.170e+02;VQSLOD=9.6268;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|1:40,32:72:99:967,0,1318:127	0|0:55,2:57:99:0,141,1865:127	1|0:36,30:66:99:851,0,1042:127
+18	75204349	rs9948476	C	T	646.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=1.965;DB;DP=185;Dels=0.00;FS=0.817;HaplotypeScore=1.3995;MLEAC=1;MLEAF=0.167;MQ=59.35;MQ0=0;MQRankSum=0.276;QD=10.95;ReadPosRankSum=-0.158;SB=-3.210e+02;VQSLOD=9.3748;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:65,0:66:99:0,168,2026:127	0|0:60,0:60:99:0,147,1768:127	0|1:34,25:59:99:681,0,893:127
+19	3739001	rs56138006	C	T	976.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=4.634;DB;DP=118;Dels=0.00;FS=3.676;HaplotypeScore=1.4356;MLEAC=2;MLEAF=0.333;MQ=58.66;MQ0=0;MQRankSum=0.753;QD=11.22;ReadPosRankSum=1.107;SB=-6.380e+02;VQSLOD=7.4541;culprit=QD	GT:AD:DP:GQ:PL:TP	0|1:30,22:52:99:612,0,559:45	0|0:31,0:31:45:0,45,527:45	1|0:12,23:35:93:403,0,93:45
+19	11730690	rs4804613	C	T	2578.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=5.057;DB;DP=197;Dels=0.00;FS=0.529;HaplotypeScore=0.0000;MLEAC=3;MLEAF=0.500;MQ=59.36;MQ0=0;MQRankSum=0.416;QD=13.09;ReadPosRankSum=-0.554;SB=-1.389e+03;VQSLOD=9.3908;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:21,26:47:99:586,0,623:127	0/1:42,45:87:99:1192,0,1055:127	0/1:32,30:63:99:839,0,932:127
+19	20782710	rs10413568	T	C	6304.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=203;Dels=0.00;FS=0.000;HaplotypeScore=0.6919;MLEAC=6;MLEAF=1.00;MQ=59.56;MQ0=0;QD=31.05;SB=-2.367e+03;VQSLOD=10.7708;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,74:74:99:2375,214,0:127	1|1:0,80:80:99:2480,217,0:127	1|1:0,49:49:99:1449,129,0:127
+19	28150587	rs4404191	A	G	7419.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=209;Dels=0.00;FS=0.000;HaplotypeScore=0.2447;MLEAC=6;MLEAF=1.00;MQ=59.61;MQ0=0;QD=35.50;SB=-3.717e+03;VQSLOD=11.9901;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,70:70:99:2584,202,0:127	1|1:0,74:74:99:2509,193,0:127	1|1:0,65:65:99:2326,181,0:127
+19	37226152	rs3108217	G	C	2076.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=0.215;DB;DP=145;Dels=0.00;FS=2.159;HaplotypeScore=0.5869;MLEAC=4;MLEAF=0.667;MQ=58.59;MQ0=0;MQRankSum=1.160;QD=14.32;ReadPosRankSum=-0.725;SB=-1.027e+03;VQSLOD=7.4915;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:25,30:55:99:789,0,709:63	1|1:0,29:29:63:772,63,0:63	0|1:35,25:61:99:557,0,789:63
+19	54644879	rs36636	G	A	1790.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=2.505;DB;DP=187;Dels=0.00;FS=4.408;HaplotypeScore=1.5043;MLEAC=2;MLEAF=0.333;MQ=59.51;MQ0=0;MQRankSum=-1.266;QD=13.88;ReadPosRankSum=-1.226;SB=-1.081e+03;VQSLOD=7.8045;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:30,27:57:99:811,0,726:127	1|0:31,41:72:99:1018,0,730:127	0|0:58,0:58:99:0,144,1815:127
+20	3199373	rs2422861	G	A	896.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.452;DB;DP=135;Dels=0.00;FS=0.664;HaplotypeScore=2.8371;MLEAC=3;MLEAF=0.500;MQ=58.47;MQ0=0;MQRankSum=-0.217;QD=6.64;ReadPosRankSum=0.111;SB=-6.080e+02;VQSLOD=7.7118;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:32,24:56:99:472,0,640:127	0/1:25,15:40:99:229,0,603:127	0/1:20,19:39:99:234,0,379:127
+20	12166868	rs7272217	C	T	926.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.444;DB;DP=200;Dels=0.00;FS=2.627;HaplotypeScore=0.8413;MLEAC=1;MLEAF=0.167;MQ=58.94;MQ0=0;MQRankSum=-1.362;QD=13.23;ReadPosRankSum=-1.055;SB=-4.040e+02;VQSLOD=7.6219;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:68,0:68:99:0,190,2486:127	0|0:62,0:62:99:0,169,2218:127	0|1:33,37:70:99:961,0,870:127
+20	21523349	rs73127889	A	G	2286.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-6.469;DB;DP=253;Dels=0.00;FS=3.735;HaplotypeScore=1.5402;MLEAC=2;MLEAF=0.333;MQ=59.31;MQ0=0;MQRankSum=0.821;QD=13.69;ReadPosRankSum=1.510;SB=-8.640e+02;VQSLOD=7.8358;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|1:44,48:92:99:1319,0,1356:127	0|0:86,0:86:99:0,235,2994:127	1|0:37,38:75:99:1006,0,1111:127
+20	29566945	rs6119037	C	G	1427.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=-3.826;DB;DP=271;Dels=0.00;FS=1.151;HaplotypeScore=2.7598;MLEAC=2;MLEAF=0.333;MQ=47.42;MQ0=21;MQRankSum=2.420;QD=8.06;ReadPosRankSum=0.363;SB=-7.560e+02;VQSLOD=1.7908;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:59,32:91:99:782,0,1210:127	1|0:55,31:86:99:684,0,1422:127	0|0:94,0:94:99:0,208,2592:127
+20	41560394	rs761027	A	G	5634.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-4.444;DB;DP=222;Dels=0.00;FS=0.829;HaplotypeScore=1.1428;MLEAC=5;MLEAF=0.833;MQ=59.60;MQ0=0;MQRankSum=0.392;QD=25.38;ReadPosRankSum=-0.064;SB=-3.048e+03;VQSLOD=10.0362;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,72:72:99:2228,187,0:127	1|1:0,82:82:99:2435,211,0:127	1|0:25,43:68:99:971,0,567:127
+20	51353834	rs241795	G	A	6115.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=7.909;DB;DP=268;Dels=0.00;FS=0.000;HaplotypeScore=0.2447;MLEAC=4;MLEAF=0.667;MQ=59.38;MQ0=0;MQRankSum=-0.518;QD=22.82;ReadPosRankSum=-0.253;SB=-3.328e+03;VQSLOD=8.3999;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:46,54:100:99:1663,0,1247:127	1|1:0,91:91:99:3189,247,0:127	0|1:36,41:77:99:1263,0,901:127
+20	59978756	rs1892320	T	C	3967.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-2.562;DB;DP=206;Dels=0.00;FS=14.249;HaplotypeScore=1.3838;MLEAC=4;MLEAF=0.667;MQ=59.89;MQ0=0;MQRankSum=-0.289;QD=19.26;ReadPosRankSum=0.221;SB=-2.292e+03;VQSLOD=7.6238;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:0,72:72:99:2337,181,0:127	1|0:38,29:67:99:743,0,1180:127	1|0:31,36:67:99:887,0,873:127
+21	10750991	.	C	T	602.26	VQSRTrancheSNP99.90to100.00	AC=2;AF=0.333;AN=6;BaseQRankSum=10.103;DP=735;DS;Dels=0.00;FS=27.020;HaplotypeScore=107.2731;MLEAC=2;MLEAF=0.333;MQ=44.40;MQ0=2;MQRankSum=-14.560;QD=1.24;ReadPosRankSum=0.063;SB=-8.430e+02;VQSLOD=-100.9480;culprit=DP	GT:AD:DP:GQ:PL:TP	1|0:164,78:243:99:357,0,5193:103	1|0:187,55:242:99:284,0,5252:103	0|0:199,50:250:99:0,103,5864:103
+21	18433036	rs969905	A	G	781.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-6.610;DB;DP=229;Dels=0.00;FS=2.230;HaplotypeScore=1.2866;MLEAC=1;MLEAF=0.167;MQ=59.55;MQ0=0;MQRankSum=0.300;QD=10.15;ReadPosRankSum=-0.384;SB=-4.990e+02;VQSLOD=9.5768;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:62,0:63:99:0,181,2380:127	0|0:89,0:89:99:0,244,3177:127	0|1:39,38:77:99:816,0,1256:127
+21	25702950	rs2260875	C	G	3462.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.156;DB;DP=237;Dels=0.00;FS=2.900;HaplotypeScore=1.5444;MLEAC=3;MLEAF=0.500;MQ=59.04;MQ0=0;MQRankSum=0.386;QD=14.61;ReadPosRankSum=-1.455;SB=-1.683e+03;VQSLOD=8.0501;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0/1:37,40:77:99:1282,0,1101:127	0/1:43,36:79:99:1114,0,1317:127	0/1:45,36:81:99:1066,0,1329:127
+21	34546711	rs11701692	T	C	1030.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-1.884;DB;DP=152;Dels=0.00;FS=8.325;HaplotypeScore=1.9325;MLEAC=2;MLEAF=0.333;MQ=57.61;MQ0=0;MQRankSum=-0.291;QD=10.51;ReadPosRankSum=0.258;SB=-4.600e+02;VQSLOD=6.4601;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:35,25:61:99:574,0,1137:127	1|0:19,18:37:99:495,0,498:127	0|0:54,0:54:99:0,141,1811:127
+21	42833227	rs460904	T	C	3179.23	PASS	AC=6;AF=1.00;AN=6;DB;DP=155;Dels=0.00;FS=0.000;HaplotypeScore=2.4559;MLEAC=6;MLEAF=1.00;MQ=58.18;MQ0=0;QD=20.51;SB=-2.173e+03;VQSLOD=7.7042;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,60:60:90:1085,90,0:74	1|1:0,54:54:96:1172,96,0:74	1|1:0,41:41:75:960,75,0:74
+22	17351507	rs5748687	G	A	4244.01	VQSRTrancheSNP99.00to99.90	AC=5;AF=0.833;AN=6;BaseQRankSum=-0.224;DB;DP=261;Dels=0.00;FS=0.710;HaplotypeScore=1.7170;MLEAC=5;MLEAF=0.833;MQ=28.84;MQ0=57;MQRankSum=-7.852;QD=16.26;ReadPosRankSum=-1.243;SB=-2.174e+03;VQSLOD=-1.7101;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:0,92:92:99:1529,141,0:127	1|0:34,49:83:99:727,0,1065:127	1|1:0,86:86:99:1988,180,0:127
+22	34204930	rs13053313	T	C	435.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.517;DB;DP=82;Dels=0.00;FS=5.843;HaplotypeScore=0.5328;MLEAC=1;MLEAF=0.167;MQ=58.65;MQ0=0;MQRankSum=1.117;QD=12.80;ReadPosRankSum=-1.270;SB=-1.170e+02;VQSLOD=6.4410;culprit=DP	GT:AD:DP:GQ:PL:TP	0|0:12,0:12:27:0,27,360:27	0|1:16,18:34:99:470,0,403:27	0|0:36,0:36:93:0,93,1230:27
+22	43356130	rs6519353	A	C	3526.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.809;DB;DP=228;Dels=0.00;FS=6.336;HaplotypeScore=1.6306;MLEAC=3;MLEAF=0.500;MQ=59.41;MQ0=0;MQRankSum=-0.146;QD=22.46;ReadPosRankSum=2.034;SB=-1.954e+03;VQSLOD=8.5009;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|0:40,41:81:99:1020,0,1222:127	1|1:0,76:76:99:2506,196,0:127	0|0:71,0:71:99:0,165,2091:127
+22	50309915	rs9616205	A	T	1712.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-0.936;DB;DP=162;Dels=0.00;FS=2.857;HaplotypeScore=2.1490;MLEAC=2;MLEAF=0.333;MQ=56.21;MQ0=5;MQRankSum=0.892;QD=13.92;ReadPosRankSum=-1.040;SB=-9.940e+02;VQSLOD=6.2766;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|1:39,33:72:99:777,0,994:78	0|0:39,0:39:78:0,78,1010:78	1|0:16,35:51:99:974,0,257:78
+X	4712340	rs5915814	C	A	2233.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=8.784;DB;DP=176;Dels=0.00;FS=0.000;HaplotypeScore=0.4434;MLEAC=2;MLEAF=0.333;MQ=59.50;MQ0=0;MQRankSum=-1.782;QD=15.73;ReadPosRankSum=0.359;SB=-1.240e+03;VQSLOD=8.3937;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:32,37:69:99:1114,0,859:81	0|0:34,0:34:81:0,81,948:81	1|0:32,41:73:99:1158,0,575:81
+X	42192093	rs58959554	T	C	1058.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-5.464;DB;DP=190;Dels=0.00;FS=6.809;HaplotypeScore=1.8813;MLEAC=1;MLEAF=0.167;MQ=59.41;MQ0=0;MQRankSum=-0.212;QD=15.34;ReadPosRankSum=-0.173;SB=-3.970e+02;VQSLOD=8.0569;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:70,1:71:99:0,182,2683:127	0|0:50,0:50:99:0,138,1794:127	0|1:31,38:69:99:1093,0,947:127
+X	66290558	rs1606094	C	T	2602.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=2.169;DB;DP=213;Dels=0.00;FS=13.125;HaplotypeScore=0.0000;MLEAC=3;MLEAF=0.500;MQ=59.59;MQ0=0;MQRankSum=1.343;QD=18.86;ReadPosRankSum=2.274;SB=-1.122e+03;VQSLOD=5.9967;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:54,47:101:99:1381,0,1762:99	1|1:0,37:37:99:1266,99,0:99	0|0:75,0:75:99:0,205,2705:99
+X	84165195	rs5923187	C	A	1009.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.103;DB;DP=194;Dels=0.00;FS=3.070;HaplotypeScore=2.8168;MLEAC=1;MLEAF=0.167;MQ=59.31;MQ0=0;MQRankSum=-0.675;QD=12.01;ReadPosRankSum=-1.463;SB=-5.890e+02;VQSLOD=8.2395;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:79,1:80:99:0,223,2856:60	0|0:30,0:30:60:0,60,764:60	0|1:40,44:84:99:1044,0,1007:60
+X	95868251	.	G	A	108.36	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=1.436;DP=90;Dels=0.00;FS=4.210;HaplotypeScore=4.9383;MLEAC=2;MLEAF=0.333;MQ=44.60;MQ0=8;MQRankSum=-2.939;QD=1.55;ReadPosRankSum=2.865;SB=-7.411e+01;VQSLOD=-3.2422;culprit=QD	GT:AD:DP:GQ:PL:TP	0|1:29,9:38:99:126,0,251:23	0|0:20,0:20:24:0,24,266:23	1|0:27,5:32:21:21,0,97:23
+X	116855730	rs980389	A	G	2366.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.939;DB;DP=173;Dels=0.00;FS=3.510;HaplotypeScore=0.9076;MLEAC=3;MLEAF=0.500;MQ=59.87;MQ0=0;MQRankSum=0.653;QD=21.51;ReadPosRankSum=0.730;SB=-1.218e+03;VQSLOD=7.9588;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:37,33:70:99:965,0,1249:114	1|1:0,40:40:99:1446,114,0:114	0|0:63,0:63:99:0,175,2284:114
+X	135282092	rs5974586	G	C	2193.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=4.257;DB;DP=203;Dels=0.00;FS=0.540;HaplotypeScore=0.6589;MLEAC=2;MLEAF=0.333;MQ=59.47;MQ0=0;MQRankSum=1.000;QD=13.46;ReadPosRankSum=1.343;SB=-1.069e+03;VQSLOD=9.0929;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|1:47,33:80:99:1026,0,1466:116	0|0:40,0:40:99:0,117,1486:116	1|0:43,40:83:99:1206,0,1311:116
+X	150239197	rs6627349	T	C	4677.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=0.731;DB;DP=179;Dels=0.00;FS=0.000;HaplotypeScore=1.6094;MLEAC=5;MLEAF=0.833;MQ=59.69;MQ0=0;MQRankSum=0.676;QD=26.13;ReadPosRankSum=0.494;SB=-2.442e+03;VQSLOD=10.5525;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,66:66:99:2387,190,0:99	1|1:0,40:40:99:1243,99,0:99	1|0:36,37:73:99:1047,0,1039:99
+Y	13265732	.	C	T	356.72	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=2.823;DP=142;Dels=0.00;FS=7.941;HaplotypeScore=19.8229;MLEAC=2;MLEAF=0.333;MQ=38.22;MQ0=11;MQRankSum=-2.145;QD=5.10;ReadPosRankSum=1.491;SB=-1.466e+00;VQSLOD=-14.4273;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|1:35,15:50:99:327,0,624:5	0|0:65,7:72:4:0,4,1831:5	1|0:15,5:20:67:67,0,227:5
+Y	59024923	.	A	T	1977.26	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=1.838;DP=745;DS;Dels=0.00;FS=0.367;HaplotypeScore=8.2957;MLEAC=3;MLEAF=0.500;MQ=43.53;MQ0=19;MQRankSum=2.499;QD=2.65;ReadPosRankSum=0.098;SB=-9.720e+02;VQSLOD=-36.7578;culprit=DP	GT:AD:DP:GQ:PL:TP	0/1:208,42:250:99:730,0,6428:127	0/1:210,35:245:99:588,0,6218:127	0/1:208,42:250:99:698,0,6060:127
+GL000214.1	115144	.	C	T	102.07	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=0.854;DP=103;Dels=0.00;FS=14.185;HaplotypeScore=14.9478;MLEAC=2;MLEAF=0.333;MQ=38.45;MQ0=1;MQRankSum=-2.314;QD=1.05;ReadPosRankSum=1.480;SB=-6.153e+01;VQSLOD=-14.7562;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:6,0:6:3:0,3,22:4	0|1:9,11:20:16:81,0,16:4	0|1:63,14:77:58:58,0,908:4
+GL000215.1	142616	.	T	C	976.25	VQSRTrancheSNP99.00to99.90	AC=6;AF=1.00;AN=6;DP=80;Dels=0.00;FS=0.000;HaplotypeScore=0.0000;MLEAC=6;MLEAF=1.00;MQ=21.04;MQ0=42;QD=12.20;SB=-8.001e+01;VQSLOD=-0.4104;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:0,33:33:42:516,42,0:19	1|1:0,21:21:24:272,24,0:19	1|1:0,26:26:21:226,21,0:19
+GL000212.1	28454	.	T	C	2248.99	VQSRTrancheSNP99.00to99.90	AC=4;AF=1.00;AN=4;BaseQRankSum=1.691;DP=94;Dels=0.00;FS=3.274;HaplotypeScore=0.9622;MLEAC=4;MLEAF=1.00;MQ=36.99;MQ0=7;MQRankSum=-0.428;QD=24.18;ReadPosRankSum=-1.284;SB=-1.053e+03;VQSLOD=1.2364;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:0,29:29:63:755,63,0:63	./.	1|1:1,63:64:99:1530,135,0:63
diff --git a/testdata/picard/vcf/CEUTrio-snps_first_line_diff.vcf b/testdata/picard/vcf/CEUTrio-snps_first_line_diff.vcf
new file mode 100644
index 0000000..20d2b85
--- /dev/null
+++ b/testdata/picard/vcf/CEUTrio-snps_first_line_diff.vcf
@@ -0,0 +1,406 @@
+##fileformat=VCFv4.1
+##ApplyRecalibration="analysis_type=ApplyRecalibration input_file=[] read_buffer_size=null phone_home=NO_ET gatk_key=/humgen/gsa-hpprojects/GATK/data/gatk_user_keys/gsamembers_broadinstitute.org.key read_filter=[] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta nonDeterministicRandomSeed=false downsampling_type=BY_SAMPLE downsample_to_fraction=null do [...]
+##CombineVariants="analysis_type=CombineVariants input_file=[] read_buffer_size=null phone_home=STANDARD gatk_key=null read_filter=[] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta nonDeterministicRandomSeed=false downsampling_type=BY_SAMPLE downsample_to_fraction=null downsample_to_coverage=1000 baq=OFF baqGapOpenPenalty=40.0 performanceLog=null use [...]
+##FILTER=<ID=LowQual,Description="Low quality">
+##FILTER=<ID=VQSRTrancheINDEL99.00to99.90,Description="Truth sensitivity tranche level for INDEL model at VQS Lod: -4.1718 <= x < -0.8611">
+##FILTER=<ID=VQSRTrancheINDEL99.90to100.00+,Description="Truth sensitivity tranche level for INDEL model at VQS Lod < -727.2136">
+##FILTER=<ID=VQSRTrancheINDEL99.90to100.00,Description="Truth sensitivity tranche level for INDEL model at VQS Lod: -727.2136 <= x < -4.1718">
+##FILTER=<ID=VQSRTrancheSNP99.00to99.90,Description="Truth sensitivity tranche level for SNP model at VQS Lod: -25.4561 <= x < 3.2489">
+##FILTER=<ID=VQSRTrancheSNP99.90to100.00+,Description="Truth sensitivity tranche level for SNP model at VQS Lod < -38672.7015">
+##FILTER=<ID=VQSRTrancheSNP99.90to100.00,Description="Truth sensitivity tranche level for SNP model at VQS Lod: -38672.7015 <= x < -25.4561">
+##FORMAT=<ID=AD,Number=.,Type=Integer,Description="Allelic depths for the ref and alt alleles in the order listed">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth (reads with MQ=255 or with bad mates are filtered)">
+##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##FORMAT=<ID=PL,Number=G,Type=Integer,Description="Normalized, Phred-scaled likelihoods for genotypes as defined in the VCF specification">
+##FORMAT=<ID=TP,Number=1,Type=Integer,Description="Phred score of the genotype combination and phase given that the genotypes are correct">
+##INFO=<ID=AC,Number=A,Type=Integer,Description="Allele count in genotypes, for each ALT allele, in the same order as listed">
+##INFO=<ID=AF,Number=A,Type=Float,Description="Allele Frequency, for each ALT allele, in the same order as listed">
+##INFO=<ID=AN,Number=1,Type=Integer,Description="Total number of alleles in called genotypes">
+##INFO=<ID=BaseQRankSum,Number=1,Type=Float,Description="Z-score from Wilcoxon rank sum test of Alt Vs. Ref base qualities">
+##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP Membership">
+##INFO=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth; some reads may have been filtered">
+##INFO=<ID=DS,Number=0,Type=Flag,Description="Were any of the samples downsampled?">
+##INFO=<ID=Dels,Number=1,Type=Float,Description="Fraction of Reads Containing Spanning Deletions">
+##INFO=<ID=END,Number=1,Type=Integer,Description="Stop position of the interval">
+##INFO=<ID=FS,Number=1,Type=Float,Description="Phred-scaled p-value using Fisher's exact test to detect strand bias">
+##INFO=<ID=HaplotypeScore,Number=1,Type=Float,Description="Consistency of the site with at most two segregating haplotypes">
+##INFO=<ID=InbreedingCoeff,Number=1,Type=Float,Description="Inbreeding coefficient as estimated from the genotype likelihoods per-sample when compared against the Hardy-Weinberg expectation">
+##INFO=<ID=MLEAC,Number=A,Type=Integer,Description="Maximum likelihood expectation (MLE) for the allele counts (not necessarily the same as the AC), for each ALT allele, in the same order as listed">
+##INFO=<ID=MLEAF,Number=A,Type=Float,Description="Maximum likelihood expectation (MLE) for the allele frequency (not necessarily the same as the AF), for each ALT allele, in the same order as listed">
+##INFO=<ID=MQ,Number=1,Type=Float,Description="RMS Mapping Quality">
+##INFO=<ID=MQ0,Number=1,Type=Integer,Description="Total Mapping Quality Zero Reads">
+##INFO=<ID=MQRankSum,Number=1,Type=Float,Description="Z-score From Wilcoxon rank sum test of Alt vs. Ref read mapping qualities">
+##INFO=<ID=QD,Number=1,Type=Float,Description="Variant Confidence/Quality by Depth">
+##INFO=<ID=RPA,Number=.,Type=Integer,Description="Number of times tandem repeat unit is repeated, for each allele (including reference)">
+##INFO=<ID=RU,Number=1,Type=String,Description="Tandem repeat unit (bases)">
+##INFO=<ID=ReadPosRankSum,Number=1,Type=Float,Description="Z-score from Wilcoxon rank sum test of Alt vs. Ref read position bias">
+##INFO=<ID=SB,Number=1,Type=Float,Description="Strand Bias">
+##INFO=<ID=STR,Number=0,Type=Flag,Description="Variant is a short tandem repeat">
+##INFO=<ID=VQSLOD,Number=1,Type=Float,Description="Log odds ratio of being a true variant versus being false under the trained gaussian mixture model">
+##INFO=<ID=culprit,Number=1,Type=String,Description="The annotation which was the worst performing in the Gaussian mixture model, likely the reason why the variant was filtered out">
+##INFO=<ID=set,Number=1,Type=String,Description="Source VCF for the merged record in CombineVariants">
+##PhaseByTransmission="analysis_type=PhaseByTransmission input_file=[] read_buffer_size=null phone_home=STANDARD gatk_key=null read_filter=[] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta nonDeterministicRandomSeed=false downsampling_type=BY_SAMPLE downsample_to_fraction=null downsample_to_coverage=1000 baq=OFF baqGapOpenPenalty=40.0 performanceLog= [...]
+##UnifiedGenotyper="analysis_type=UnifiedGenotyper input_file=[/humgen/gsa-hpprojects/NA12878Collection/bams/CEUTrio.HiSeq.WGS.b37.list] read_buffer_size=null phone_home=NO_ET gatk_key=/humgen/gsa-hpprojects/GATK/data/gatk_user_keys/gsamembers_broadinstitute.org.key read_filter=[] intervals=[/broad/hptmp/ami/tmp/queueScatterGather/.qlog/CEUTrio.indelcall-sg/temp_020_of_300/scatter.intervals] excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_s [...]
+##contig=<ID=1,length=249250621,assembly=b37>
+##contig=<ID=2,length=243199373,assembly=b37>
+##contig=<ID=3,length=198022430,assembly=b37>
+##contig=<ID=4,length=191154276,assembly=b37>
+##contig=<ID=5,length=180915260,assembly=b37>
+##contig=<ID=6,length=171115067,assembly=b37>
+##contig=<ID=7,length=159138663,assembly=b37>
+##contig=<ID=8,length=146364022,assembly=b37>
+##contig=<ID=9,length=141213431,assembly=b37>
+##contig=<ID=10,length=135534747,assembly=b37>
+##contig=<ID=11,length=135006516,assembly=b37>
+##contig=<ID=12,length=133851895,assembly=b37>
+##contig=<ID=13,length=115169878,assembly=b37>
+##contig=<ID=14,length=107349540,assembly=b37>
+##contig=<ID=15,length=102531392,assembly=b37>
+##contig=<ID=16,length=90354753,assembly=b37>
+##contig=<ID=17,length=81195210,assembly=b37>
+##contig=<ID=18,length=78077248,assembly=b37>
+##contig=<ID=19,length=59128983,assembly=b37>
+##contig=<ID=20,length=63025520,assembly=b37>
+##contig=<ID=21,length=48129895,assembly=b37>
+##contig=<ID=22,length=51304566,assembly=b37>
+##contig=<ID=X,length=155270560,assembly=b37>
+##contig=<ID=Y,length=59373566,assembly=b37>
+##contig=<ID=MT,length=16569,assembly=b37>
+##contig=<ID=GL000207.1,length=4262,assembly=b37>
+##contig=<ID=GL000226.1,length=15008,assembly=b37>
+##contig=<ID=GL000229.1,length=19913,assembly=b37>
+##contig=<ID=GL000231.1,length=27386,assembly=b37>
+##contig=<ID=GL000210.1,length=27682,assembly=b37>
+##contig=<ID=GL000239.1,length=33824,assembly=b37>
+##contig=<ID=GL000235.1,length=34474,assembly=b37>
+##contig=<ID=GL000201.1,length=36148,assembly=b37>
+##contig=<ID=GL000247.1,length=36422,assembly=b37>
+##contig=<ID=GL000245.1,length=36651,assembly=b37>
+##contig=<ID=GL000197.1,length=37175,assembly=b37>
+##contig=<ID=GL000203.1,length=37498,assembly=b37>
+##contig=<ID=GL000246.1,length=38154,assembly=b37>
+##contig=<ID=GL000249.1,length=38502,assembly=b37>
+##contig=<ID=GL000196.1,length=38914,assembly=b37>
+##contig=<ID=GL000248.1,length=39786,assembly=b37>
+##contig=<ID=GL000244.1,length=39929,assembly=b37>
+##contig=<ID=GL000238.1,length=39939,assembly=b37>
+##contig=<ID=GL000202.1,length=40103,assembly=b37>
+##contig=<ID=GL000234.1,length=40531,assembly=b37>
+##contig=<ID=GL000232.1,length=40652,assembly=b37>
+##contig=<ID=GL000206.1,length=41001,assembly=b37>
+##contig=<ID=GL000240.1,length=41933,assembly=b37>
+##contig=<ID=GL000236.1,length=41934,assembly=b37>
+##contig=<ID=GL000241.1,length=42152,assembly=b37>
+##contig=<ID=GL000243.1,length=43341,assembly=b37>
+##contig=<ID=GL000242.1,length=43523,assembly=b37>
+##contig=<ID=GL000230.1,length=43691,assembly=b37>
+##contig=<ID=GL000237.1,length=45867,assembly=b37>
+##contig=<ID=GL000233.1,length=45941,assembly=b37>
+##contig=<ID=GL000204.1,length=81310,assembly=b37>
+##contig=<ID=GL000198.1,length=90085,assembly=b37>
+##contig=<ID=GL000208.1,length=92689,assembly=b37>
+##contig=<ID=GL000191.1,length=106433,assembly=b37>
+##contig=<ID=GL000227.1,length=128374,assembly=b37>
+##contig=<ID=GL000228.1,length=129120,assembly=b37>
+##contig=<ID=GL000214.1,length=137718,assembly=b37>
+##contig=<ID=GL000221.1,length=155397,assembly=b37>
+##contig=<ID=GL000209.1,length=159169,assembly=b37>
+##contig=<ID=GL000218.1,length=161147,assembly=b37>
+##contig=<ID=GL000220.1,length=161802,assembly=b37>
+##contig=<ID=GL000213.1,length=164239,assembly=b37>
+##contig=<ID=GL000211.1,length=166566,assembly=b37>
+##contig=<ID=GL000199.1,length=169874,assembly=b37>
+##contig=<ID=GL000217.1,length=172149,assembly=b37>
+##contig=<ID=GL000216.1,length=172294,assembly=b37>
+##contig=<ID=GL000215.1,length=172545,assembly=b37>
+##contig=<ID=GL000205.1,length=174588,assembly=b37>
+##contig=<ID=GL000219.1,length=179198,assembly=b37>
+##contig=<ID=GL000224.1,length=179693,assembly=b37>
+##contig=<ID=GL000223.1,length=180455,assembly=b37>
+##contig=<ID=GL000195.1,length=182896,assembly=b37>
+##contig=<ID=GL000212.1,length=186858,assembly=b37>
+##contig=<ID=GL000222.1,length=186861,assembly=b37>
+##contig=<ID=GL000200.1,length=187035,assembly=b37>
+##contig=<ID=GL000193.1,length=189789,assembly=b37>
+##contig=<ID=GL000194.1,length=191469,assembly=b37>
+##contig=<ID=GL000225.1,length=211173,assembly=b37>
+##contig=<ID=GL000192.1,length=547496,assembly=b37>
+##reference=file:///humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta
+##source=PhaseByTransmission
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	NA12878	NA12891	NA12892
+1	8216712	rs11121115	A	G	1540.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.917;DB;DP=131;Dels=0.00;FS=11.669;HaplotypeScore=3.3539;MLEAC=3;MLEAF=0.500;MQ=57.74;MQ0=1;MQRankSum=0.427;QD=11.76;ReadPosRankSum=-0.219;SB=-9.390e+02;VQSLOD=5.5346;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/0:23,28:51:99:681,0,668:127	0/1:16,18:34:99:338,0,244:127	0/1:24,22:46:99:560,0,323:127
+1	17032814	rs2773183	T	C	2828.26	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.879;DB;DP=322;Dels=0.00;FS=2.430;HaplotypeScore=15.4499;MLEAC=3;MLEAF=0.500;MQ=56.86;MQ0=0;MQRankSum=2.916;QD=8.78;ReadPosRankSum=-1.245;SB=-1.943e+03;VQSLOD=-1.4207;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:63,59:122:99:1434,0,1831:127	0/1:53,56:109:99:910,0,871:127	0/1:61,30:91:99:523,0,1257:127
+1	47818917	rs12749507	A	G	1285.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.707;DB;DP=252;Dels=0.00;FS=2.139;HaplotypeScore=0.6661;MLEAC=1;MLEAF=0.167;MQ=59.83;MQ0=0;MQRankSum=-0.467;QD=13.39;ReadPosRankSum=0.535;SB=-6.730e+02;VQSLOD=9.2738;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:81,0:81:99:0,241,3171:127	0|1:53,42:96:99:1320,0,1615:127	0|0:75,0:75:99:0,217,2762:127
+1	59635894	rs331648	T	A	839.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-4.038;DB;DP=211;Dels=0.00;FS=1.427;HaplotypeScore=1.5485;MLEAC=1;MLEAF=0.167;MQ=58.68;MQ0=0;MQRankSum=-0.422;QD=11.82;ReadPosRankSum=-0.180;SB=-5.520e+02;VQSLOD=7.9477;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:78,0:78:99:0,199,2578:127	0|0:62,0:62:99:0,169,2205:127	0|1:33,38:71:99:874,0,897:127
+1	69502962	rs12724640	T	C	1868.23	VQSRTrancheSNP99.00to99.90	AC=6;AF=1.00;AN=6;BaseQRankSum=-1.732;DB;DP=110;Dels=0.00;FS=4.721;HaplotypeScore=1.9269;MLEAC=6;MLEAF=1.00;MQ=29.46;MQ0=22;MQRankSum=1.652;QD=16.98;ReadPosRankSum=-0.564;SB=-8.110e+02;VQSLOD=0.2103;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:5,23:29:63:693,63,0:50	1|1:5,38:43:66:675,66,0:50	1|1:9,29:38:51:538,51,0:50
+1	80481528	rs61774278	G	C	1775.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-1.614;DB;DP=168;Dels=0.00;FS=8.292;HaplotypeScore=2.0470;MLEAC=3;MLEAF=0.500;MQ=54.28;MQ0=0;MQRankSum=-0.052;QD=16.75;ReadPosRankSum=1.544;SB=-1.133e+03;VQSLOD=4.7735;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|1:35,26:61:99:767,0,778:80	0|0:62,0:62:84:0,84,1046:80	1|1:0,45:45:84:1053,84,0:80
+1	90146546	rs7512447	C	T	8721.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=241;Dels=0.00;FS=0.000;HaplotypeScore=0.0000;MLEAC=6;MLEAF=1.00;MQ=59.40;MQ0=0;QD=36.19;SB=-4.084e+03;VQSLOD=11.3217;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,71:71:99:2599,196,0:127	1|1:0,86:86:99:3042,235,0:127	1|1:0,84:84:99:3080,238,0:127
+1	100763317	rs6681810	G	C	5583.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=196;Dels=0.00;FS=0.000;HaplotypeScore=3.7201;MLEAC=6;MLEAF=1.00;MQ=58.52;MQ0=0;QD=28.48;SB=-2.737e+03;VQSLOD=7.9151;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:1,76:77:99:2211,192,0:127	1|1:0,56:56:99:1593,141,0:127	1|1:0,62:62:99:1779,156,0:127
+1	110091282	rs1279195	C	T	952.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=2.646;DB;DP=101;Dels=0.00;FS=19.666;HaplotypeScore=1.9160;MLEAC=2;MLEAF=0.333;MQ=56.72;MQ0=0;MQRankSum=-0.345;QD=12.37;ReadPosRankSum=0.567;SB=-5.350e+02;VQSLOD=4.1741;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:14,29:46:99:726,0,219:42	1|0:13,12:31:99:265,0,298:42	0|0:18,0:24:42:0,42,522:42
+1	146610795	rs58742099	C	T	2831.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.298;DB;DP=261;Dels=0.00;FS=7.033;HaplotypeScore=13.9060;MLEAC=2;MLEAF=0.333;MQ=59.62;MQ0=0;MQRankSum=0.753;QD=16.27;ReadPosRankSum=-1.405;SB=-1.481e+03;VQSLOD=3.4221;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:39,43:82:99:1329,0,1080:127	1|0:40,52:92:99:1541,0,1241:127	0|0:87,0:87:99:0,238,3098:127
+1	156248265	rs12038203	C	T	643.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-0.311;DB;DP=145;Dels=0.00;FS=4.568;HaplotypeScore=0.2774;MLEAC=1;MLEAF=0.167;MQ=59.08;MQ0=0;MQRankSum=0.862;QD=12.86;ReadPosRankSum=0.177;SB=-3.450e+02;VQSLOD=7.5008;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:47,0:47:99:0,123,1604:110	0|0:48,0:48:99:0,111,1433:110	0|1:25,25:50:99:678,0,694:110
+1	165431906	rs7528908	G	T	2381.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=6.008;DB;DP=259;Dels=0.00;FS=4.727;HaplotypeScore=0.9857;MLEAC=2;MLEAF=0.333;MQ=59.75;MQ0=0;MQRankSum=0.916;QD=14.34;ReadPosRankSum=-0.907;SB=-9.050e+02;VQSLOD=8.1270;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|1:48,40:88:99:1142,0,1428:127	0|0:93,0:93:99:0,259,3166:127	1|0:38,40:78:99:1278,0,1075:127
+1	175207612	rs11484568	C	T	1920.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=5.643;DB;DP=216;Dels=0.00;FS=0.537;HaplotypeScore=2.2467;MLEAC=2;MLEAF=0.333;MQ=58.99;MQ0=0;MQRankSum=0.383;QD=14.12;ReadPosRankSum=0.169;SB=-1.064e+03;VQSLOD=8.5912;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:34,40:74:99:1152,0,995:127	0|0:80,0:80:99:0,208,2602:127	1|0:34,28:62:99:807,0,998:127
+1	186656152	rs4422959	G	A	1342.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=7.230;DB;DP=270;Dels=0.00;FS=7.290;HaplotypeScore=1.1750;MLEAC=1;MLEAF=0.167;MQ=59.71;MQ0=0;MQRankSum=0.399;QD=17.21;ReadPosRankSum=-0.869;SB=-6.320e+02;VQSLOD=7.6734;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:99,0:99:99:0,283,3341:127	0|0:93,0:93:99:0,256,3022:127	0|1:33,45:78:99:1377,0,917:127
+1	195392852	rs2119441	T	G	5369.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-2.284;DB;DP=241;Dels=0.00;FS=3.312;HaplotypeScore=1.8710;MLEAC=4;MLEAF=0.667;MQ=58.35;MQ0=0;MQRankSum=-0.643;QD=22.28;ReadPosRankSum=0.178;SB=-2.332e+03;VQSLOD=7.8524;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:37,42:79:99:1233,0,1145:127	1|1:0,84:84:99:2741,211,0:127	0|1:31,47:78:99:1395,0,804:127
+1	204945934	rs6657372	A	G	1311.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-6.582;DB;DP=126;Dels=0.00;FS=0.000;HaplotypeScore=2.7088;MLEAC=3;MLEAF=0.500;MQ=58.78;MQ0=0;MQRankSum=0.480;QD=15.43;ReadPosRankSum=1.284;SB=-6.370e+02;VQSLOD=7.8448;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:22,28:50:99:629,0,675:68	0|0:40,0:41:84:0,84,1057:68	1|1:0,35:35:69:727,69,0:68
+1	216407409	rs3767692	A	G	8820.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-0.803;DB;DP=295;Dels=0.00;FS=1.345;HaplotypeScore=2.5841;MLEAC=5;MLEAF=0.833;MQ=59.28;MQ0=0;MQRankSum=-0.375;QD=29.90;ReadPosRankSum=-0.363;SB=-4.445e+03;VQSLOD=7.0549;culprit=DP	GT:AD:DP:GQ:PL:TP	1|1:1,115:116:99:4251,328,0:127	1|0:39,51:90:99:1430,0,1275:127	1|1:0,89:89:99:3139,241,0:127
+1	226163330	rs10915914	C	G	747.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-3.123;DB;DP=121;Dels=0.00;FS=0.863;HaplotypeScore=0.8289;MLEAC=2;MLEAF=0.333;MQ=58.96;MQ0=0;MQRankSum=-0.478;QD=9.70;ReadPosRankSum=-0.134;SB=-2.780e+02;VQSLOD=8.0849;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:43,1:44:99:0,117,1447:116	0|1:17,15:32:99:289,0,390:116	0|1:26,19:45:99:497,0,677:116
+1	243135892	rs7517403	C	T	2313.25	VQSRTrancheSNP99.00to99.90	AC=4;AF=0.667;AN=6;BaseQRankSum=7.051;DB;DP=168;Dels=0.00;FS=0.000;HaplotypeScore=0.5884;MLEAC=4;MLEAF=0.667;MQ=37.62;MQ0=11;MQRankSum=-5.659;QD=13.77;ReadPosRankSum=-0.977;SB=-9.200e+02;VQSLOD=2.2480;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:31,24:55:99:501,0,891:123	1|1:0,58:58:99:1263,123,0:123	0|1:28,27:55:99:591,0,714:123
+2	1143476	rs4998209	C	T	1483.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-4.814;DB;DP=189;Dels=0.00;FS=5.611;HaplotypeScore=0.3245;MLEAC=2;MLEAF=0.333;MQ=58.36;MQ0=0;MQRankSum=1.579;QD=12.06;ReadPosRankSum=0.326;SB=-9.320e+02;VQSLOD=6.8071;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:66,0:66:99:0,178,2264:127	0|1:33,38:71:99:844,0,1024:127	0|1:26,26:52:99:678,0,719:127
+2	9240279	rs56249990	A	G	3978.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=1.695;DB;DP=213;Dels=0.00;FS=7.834;HaplotypeScore=1.1897;MLEAC=3;MLEAF=0.500;MQ=59.40;MQ0=0;MQRankSum=0.143;QD=27.25;ReadPosRankSum=-0.097;SB=-1.991e+03;VQSLOD=9.1447;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:33,42:75:99:1400,0,1031:127	0|0:67,0:67:99:0,178,2277:127	1|1:0,71:71:99:2578,199,0:127
+2	18016237	rs12710649	A	T	3950.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-0.037;DB;DP=250;Dels=0.00;FS=2.158;HaplotypeScore=2.0804;MLEAC=3;MLEAF=0.500;MQ=59.14;MQ0=0;MQRankSum=0.494;QD=15.80;ReadPosRankSum=0.705;SB=-2.142e+03;VQSLOD=8.1407;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:46,59:105:99:1733,0,1505:127	0/1:39,37:76:99:925,0,1164:127	0/1:24,44:68:99:1292,0,628:127
+2	28790711	rs34787802	T	G	731.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-4.421;DB;DP=232;Dels=0.00;FS=2.403;HaplotypeScore=1.5189;MLEAC=1;MLEAF=0.167;MQ=57.98;MQ0=0;MQRankSum=0.447;QD=10.30;ReadPosRankSum=-1.833;SB=-4.550e+02;VQSLOD=6.8853;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:81,0:81:99:0,223,2877:127	0|1:36,35:71:99:766,0,947:127	0|0:79,0:80:99:0,205,2640:127
+2	36994439	rs11124542	A	C	1302.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-7.406;DB;DP=191;Dels=0.00;FS=3.335;HaplotypeScore=2.1785;MLEAC=3;MLEAF=0.500;MQ=58.93;MQ0=0;MQRankSum=-0.725;QD=6.82;ReadPosRankSum=0.302;SB=-1.006e+03;VQSLOD=7.9479;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:32,28:60:99:710,0,1044:127	0/1:34,25:59:99:309,0,772:127	0/1:45,27:72:99:322,0,1096:127
+2	45429089	rs13418430	C	A	2341.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=0.861;DB;DP=283;Dels=0.00;FS=2.854;HaplotypeScore=1.3288;MLEAC=2;MLEAF=0.333;MQ=59.62;MQ0=0;MQRankSum=-0.939;QD=12.52;ReadPosRankSum=-1.869;SB=-1.156e+03;VQSLOD=7.1503;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:60,49:109:99:1406,0,2061:127	1|0:41,37:78:99:974,0,1238:127	0|0:96,0:96:99:0,256,3312:127
+2	54408283	rs55993481	T	G	2128.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.961;DB;DP=222;Dels=0.00;FS=1.744;HaplotypeScore=3.9553;MLEAC=2;MLEAF=0.333;MQ=59.69;MQ0=0;MQRankSum=0.670;QD=14.28;ReadPosRankSum=1.313;SB=-1.076e+03;VQSLOD=6.5064;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:35,46:81:99:1392,0,921:127	1|0:35,33:68:99:775,0,878:127	0|0:73,0:73:99:0,175,2164:127
+2	64848970	rs35473866	T	C	655.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=0.263;DB;DP=218;Dels=0.00;FS=8.014;HaplotypeScore=2.5836;MLEAC=1;MLEAF=0.167;MQ=58.36;MQ0=0;MQRankSum=-0.168;QD=8.29;ReadPosRankSum=-0.307;SB=-3.420e+02;VQSLOD=5.9179;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:78,0:78:99:0,208,2627:127	0|0:61,0:61:99:0,135,1725:127	0|1:35,42:79:99:690,0,1042:127
+2	85513238	rs62162679	C	T	742.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.162;DB;DP=137;Dels=0.00;FS=4.474;HaplotypeScore=1.3905;MLEAC=2;MLEAF=0.333;MQ=57.50;MQ0=0;MQRankSum=0.479;QD=7.57;ReadPosRankSum=-0.272;SB=-5.520e+02;VQSLOD=7.1288;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:39,0:39:99:0,105,1267:104	0|1:23,23:47:99:430,0,551:104	0|1:31,20:51:99:351,0,633:104
+2	96514373	rs10186946	C	T	206.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=4.485;DB;DP=175;Dels=0.00;FS=2.805;HaplotypeScore=2.4200;MLEAC=2;MLEAF=0.333;MQ=39.07;MQ0=7;MQRankSum=-7.529;QD=1.61;ReadPosRankSum=0.813;SB=-2.501e+01;VQSLOD=-0.8655;culprit=QD	GT:AD:DP:GQ:PL:TP	1|0:35,23:58:62:62,0,484:61	1|0:22,46:70:99:183,0,387:61	0|0:46,0:47:99:0,99,1162:61
+2	117966808	rs333847	C	T	9037.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=269;Dels=0.00;FS=0.000;HaplotypeScore=3.7032;MLEAC=6;MLEAF=1.00;MQ=58.21;MQ0=0;QD=33.59;SB=-4.673e+03;VQSLOD=7.0546;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,78:78:99:2652,205,0:127	1|1:0,101:101:99:3158,247,0:127	1|1:0,89:90:99:3227,250,0:127
+2	127445050	rs113647072	A	G	1773.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-3.856;DB;DP=154;Dels=0.00;FS=4.202;HaplotypeScore=2.2701;MLEAC=4;MLEAF=0.667;MQ=59.16;MQ0=0;MQRankSum=0.759;QD=11.51;ReadPosRankSum=1.290;SB=-1.402e+03;VQSLOD=7.9185;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:26,28:54:99:652,0,472:78	0|1:26,22:49:99:350,0,462:78	1|1:0,50:51:78:813,78,0:78
+2	144289763	rs7607879	C	T	3308.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=1.386;DB;DP=225;Dels=0.00;FS=9.723;HaplotypeScore=1.4969;MLEAC=3;MLEAF=0.500;MQ=59.53;MQ0=0;MQRankSum=0.283;QD=14.70;ReadPosRankSum=1.392;SB=-1.760e+03;VQSLOD=8.2418;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:41,39:81:99:1190,0,1312:127	0/1:28,36:64:99:1057,0,834:127	0/1:44,36:80:99:1061,0,1275:127
+2	155726628	.	T	G	1351.23	VQSRTrancheSNP99.00to99.90	AC=6;AF=1.00;AN=6;BaseQRankSum=0.207;DP=193;Dels=0.00;FS=9.246;HaplotypeScore=0.5220;MLEAC=6;MLEAF=1.00;MQ=16.17;MQ0=87;MQRankSum=2.396;QD=7.00;ReadPosRankSum=1.069;SB=-4.420e+02;VQSLOD=-2.7874;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:3,56:59:60:591,60,0:27	1|1:8,49:57:27:245,27,0:27	1|1:12,65:77:57:553,57,0:27
+2	167166899	.	T	A	1064.78	VQSRTrancheSNP99.00to99.90	AC=5;AF=0.833;AN=6;BaseQRankSum=0.023;DP=278;Dels=0.00;FS=9.890;HaplotypeScore=0.2774;MLEAC=6;MLEAF=1.00;MQ=10.47;MQ0=239;MQRankSum=1.643;QD=3.83;ReadPosRankSum=0.347;SB=-1.083e-02;VQSLOD=-6.9449;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:174,12:186:36:401,36,0:4	1|1:37,14:52:39:431,39,0:4	1|0:31,9:40:3:271,0,3:4
+2	177175707	rs7355385	A	G	2590.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-0.866;DB;DP=206;Dels=0.00;FS=14.872;HaplotypeScore=0.3111;MLEAC=3;MLEAF=0.500;MQ=59.12;MQ0=0;MQRankSum=-0.937;QD=20.40;ReadPosRankSum=-0.287;SB=-8.970e+02;VQSLOD=6.8179;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:33,32:65:99:856,0,1069:127	1|1:0,62:62:99:1779,150,0:127	0|0:78,1:79:99:0,193,2411:127
+2	187694833	rs10191094	T	C	1006.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-7.181;DB;DP=236;Dels=0.00;FS=9.083;HaplotypeScore=2.2688;MLEAC=1;MLEAF=0.167;MQ=59.73;MQ0=0;MQRankSum=-0.218;QD=13.07;ReadPosRankSum=-0.877;SB=-5.830e+02;VQSLOD=7.6003;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:82,0:82:99:0,232,3021:127	0|0:77,0:77:99:0,217,2790:127	0|1:33,44:77:99:1041,0,988:127
+2	198567638	rs12619333	C	G	2201.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-0.028;DB;DP=240;Dels=0.00;FS=4.757;HaplotypeScore=1.3741;MLEAC=2;MLEAF=0.333;MQ=59.37;MQ0=1;MQRankSum=0.131;QD=13.42;ReadPosRankSum=0.123;SB=-1.051e+03;VQSLOD=8.1261;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:38,45:84:99:1298,0,1249:127	1|0:45,35:80:99:942,0,1493:127	0|0:76,0:76:99:0,196,2542:127
+2	209758643	rs12992166	C	T	1534.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=6.178;DB;DP=163;Dels=0.00;FS=8.813;HaplotypeScore=2.3636;MLEAC=2;MLEAF=0.333;MQ=58.93;MQ0=0;MQRankSum=1.988;QD=12.08;ReadPosRankSum=1.075;SB=-4.720e+02;VQSLOD=6.8226;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:35,22:59:99:610,0,886:93	1|0:32,36:68:99:963,0,797:93	0|0:36,0:36:93:0,93,1058:93
+2	228532558	rs6436725	G	A	3484.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=7.160;DB;DP=263;Dels=0.00;FS=1.547;HaplotypeScore=4.9679;MLEAC=3;MLEAF=0.500;MQ=58.60;MQ0=0;MQRankSum=1.137;QD=21.91;ReadPosRankSum=-0.416;SB=-1.472e+03;VQSLOD=5.4377;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:42,47:89:99:1549,0,932:127	0|0:104,0:104:99:0,247,2939:127	1|1:0,69:70:99:1935,156,0:127
+2	237156689	rs13390270	G	A	852.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.150;DB;DP=205;Dels=0.00;FS=0.710;HaplotypeScore=1.7295;MLEAC=1;MLEAF=0.167;MQ=59.06;MQ0=0;MQRankSum=-0.193;QD=11.67;ReadPosRankSum=1.262;SB=-4.790e+02;VQSLOD=8.4962;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:73,0:73:99:0,202,2606:108	0|1:39,34:73:99:887,0,1027:108	0|0:59,0:59:99:0,108,1384:108
+3	1609737	rs2648459	A	G	6492.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=187;Dels=0.00;FS=0.000;HaplotypeScore=1.1795;MLEAC=6;MLEAF=1.00;MQ=59.90;MQ0=0;QD=34.72;SB=-3.251e+03;VQSLOD=11.5033;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,53:53:99:1943,150,0:127	1|1:0,62:62:99:2206,172,0:127	1|1:0,72:72:99:2343,181,0:127
+3	8399330	rs6770171	G	A	6816.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=4.689;DB;DP=253;Dels=0.00;FS=0.637;HaplotypeScore=1.2788;MLEAC=5;MLEAF=0.833;MQ=58.42;MQ0=0;MQRankSum=0.607;QD=26.94;ReadPosRankSum=-0.503;SB=-3.369e+03;VQSLOD=8.0141;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|1:0,106:106:99:3784,292,0:127	1|1:0,72:72:99:2164,169,0:127	1|0:42,33:75:99:868,0,1146:127
+3	17501103	.	T	G	45.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=-6.477;DP=156;Dels=0.00;FS=71.755;HaplotypeScore=1.5253;MLEAC=2;MLEAF=0.333;MQ=58.02;MQ0=0;MQRankSum=-0.156;QD=0.43;ReadPosRankSum=-3.974;SB=-1.474e-02;VQSLOD=-14.1451;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:43,8:51:99:0,114,1252:33	0|1:22,24:46:34:34,0,492:33	0|1:24,34:59:50:50,0,492:33
+3	26960556	rs4422260	T	C	878.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=-2.140;DB;DP=220;Dels=0.00;FS=1.108;HaplotypeScore=1.7204;MLEAC=2;MLEAF=0.333;MQ=41.87;MQ0=3;MQRankSum=-6.679;QD=5.97;ReadPosRankSum=-0.031;SB=-4.600e+02;VQSLOD=0.7170;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:73,0:73:99:0,208,2660:127	0|1:32,48:80:99:759,0,915:127	0|1:37,30:67:99:158,0,1092:127
+3	48757773	rs61137521	A	G	3103.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-0.794;DB;DP=172;Dels=0.00;FS=0.000;HaplotypeScore=1.8954;MLEAC=4;MLEAF=0.667;MQ=59.34;MQ0=0;MQRankSum=-0.693;QD=18.04;ReadPosRankSum=-1.667;SB=-1.874e+03;VQSLOD=7.9241;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,50:51:99:1723,141,0:127	1|0:31,34:65:99:745,0,814:127	1|0:24,32:56:99:677,0,603:127
+3	60283791	rs10154846	T	C	669.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.270;DB;DP=204;Dels=0.00;FS=1.585;HaplotypeScore=1.6639;MLEAC=1;MLEAF=0.167;MQ=59.39;MQ0=0;MQRankSum=0.370;QD=10.14;ReadPosRankSum=1.636;SB=-2.690e+02;VQSLOD=8.9468;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:63,0:63:99:0,190,2440:127	0|1:34,32:66:99:704,0,1020:127	0|0:74,0:75:99:0,190,2372:127
+3	68765638	rs1504297	C	G	4623.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-5.561;DB;DP=225;Dels=0.00;FS=3.176;HaplotypeScore=0.8432;MLEAC=4;MLEAF=0.667;MQ=59.80;MQ0=0;MQRankSum=-0.619;QD=20.55;ReadPosRankSum=-1.001;SB=-2.371e+03;VQSLOD=8.7354;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:40,39:79:99:1220,0,1330:127	1|1:0,75:75:99:2518,205,0:127	0|1:37,34:71:99:885,0,1185:127
+3	76722766	rs264537	C	G	845.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=3.666;DB;DP=202;Dels=0.00;FS=0.000;HaplotypeScore=0.2774;MLEAC=1;MLEAF=0.167;MQ=59.79;MQ0=0;MQRankSum=-0.795;QD=13.21;ReadPosRankSum=1.049;SB=-2.910e+02;VQSLOD=8.5280;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:70,0:70:99:0,208,2570:127	0|0:68,0:68:99:0,193,2332:127	0|1:34,30:64:99:880,0,995:127
+3	86234718	rs2324883	T	C	7655.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=234;Dels=0.00;FS=0.000;HaplotypeScore=0.6487;MLEAC=6;MLEAF=1.00;MQ=59.51;MQ0=0;QD=32.71;SB=-4.142e+03;VQSLOD=11.2111;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,80:80:99:2857,223,0:127	1|1:0,76:77:99:2512,196,0:127	1|1:0,77:77:99:2286,178,0:127
+3	99106655	rs2623376	A	G	1093.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.490;DB;DP=191;Dels=0.00;FS=2.283;HaplotypeScore=0.6267;MLEAC=2;MLEAF=0.333;MQ=59.76;MQ0=0;MQRankSum=-1.141;QD=9.51;ReadPosRankSum=0.079;SB=-5.610e+02;VQSLOD=8.1455;culprit=QD	GT:AD:DP:GQ:PL:TP	0|1:30,22:52:99:653,0,970:127	0|0:76,0:76:99:0,193,2462:127	1|0:44,19:63:99:479,0,1261:127
+3	108612711	rs2399252	T	A	3430.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-0.783;DB;DP=239;Dels=0.00;FS=4.436;HaplotypeScore=0.6593;MLEAC=3;MLEAF=0.500;MQ=59.64;MQ0=0;MQRankSum=-0.269;QD=14.35;ReadPosRankSum=-0.701;SB=-1.733e+03;VQSLOD=8.5079;culprit=MQ	GT:AD:DP:GQ:PL:TP	0/1:48,34:82:99:1066,0,1620:127	0/1:45,43:88:99:1370,0,1452:127	0/1:36,32:69:99:994,0,1128:127
+3	128140891	rs73201490	C	T	1315.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=5.394;DB;DP=142;Dels=0.00;FS=0.667;HaplotypeScore=3.4886;MLEAC=2;MLEAF=0.333;MQ=58.69;MQ0=0;MQRankSum=1.733;QD=14.30;ReadPosRankSum=0.758;SB=-6.400e+02;VQSLOD=6.7020;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:29,24:53:99:636,0,670:104	0|0:50,0:50:99:0,105,1188:104	1|0:12,27:39:99:718,0,250:104
+3	137840974	rs2622698	C	A	6792.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=232;Dels=0.00;FS=0.000;HaplotypeScore=2.6477;MLEAC=6;MLEAF=1.00;MQ=59.04;MQ0=0;QD=29.28;SB=-3.999e+03;VQSLOD=9.7681;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,79:79:99:2640,205,0:127	1|1:0,78:78:99:2229,178,0:127	1|1:0,75:75:99:1923,153,0:127
+3	148344553	rs62274102	C	A	3191.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-1.860;DB;DP=232;Dels=0.00;FS=12.061;HaplotypeScore=2.3659;MLEAC=3;MLEAF=0.500;MQ=59.32;MQ0=0;MQRankSum=-0.551;QD=19.58;ReadPosRankSum=2.411;SB=-1.757e+03;VQSLOD=6.2908;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|0:46,39:85:99:985,0,1339:127	1|1:0,78:78:99:2251,175,0:127	0|0:69,0:69:99:0,153,2018:127
+3	158557110	rs34445802	G	A	2374.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.805;DB;DP=237;Dels=0.00;FS=1.025;HaplotypeScore=1.6572;MLEAC=2;MLEAF=0.333;MQ=57.48;MQ0=0;MQRankSum=0.558;QD=14.05;ReadPosRankSum=-1.147;SB=-1.505e+03;VQSLOD=7.1338;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:43,56:99:99:1624,0,1344:127	1|0:33,37:70:99:789,0,916:127	0|0:68,0:68:99:0,156,2014:127
+3	179020937	rs13082816	C	T	1116.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=5.603;DB;DP=82;Dels=0.00;FS=0.000;HaplotypeScore=0.6358;MLEAC=4;MLEAF=0.667;MQ=54.57;MQ0=1;MQRankSum=0.374;QD=13.61;ReadPosRankSum=-0.037;SB=-2.010e+02;VQSLOD=6.0907;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:13,13:26:99:388,0,178:36	1|1:0,24:24:36:442,36,0:36	0|1:13,19:32:99:328,0,179:36
+3	189981901	.	A	G	179.25	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=2.258;DP=274;Dels=0.00;FS=73.736;HaplotypeScore=1.8333;MLEAC=1;MLEAF=0.167;MQ=54.08;MQ0=6;MQRankSum=-2.651;QD=1.97;ReadPosRankSum=-6.101;SB=-6.400e+01;VQSLOD=-18.1951;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|0:64,27:91:99:214,0,679:51	1|0:78,10:88:0:0,21,1685:51	0|0:86,9:95:74:0,74,1891:51
+3	197056886	rs7612900	G	A	7880.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=229;Dels=0.00;FS=0.000;HaplotypeScore=0.6106;MLEAC=6;MLEAF=1.00;MQ=59.18;MQ0=0;QD=34.41;SB=-3.459e+03;VQSLOD=11.8130;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,75:75:99:2786,214,0:127	1|1:0,81:81:99:2598,202,0:127	1|1:0,73:73:99:2496,193,0:127
+4	6333669	rs35678078	G	T	2186.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=1.220;DB;DP=198;Dels=0.00;FS=1.754;HaplotypeScore=0.7779;MLEAC=3;MLEAF=0.500;MQ=59.27;MQ0=0;MQRankSum=-0.256;QD=11.04;ReadPosRankSum=-0.469;SB=-1.621e+03;VQSLOD=9.4086;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:33,34:67:99:875,0,848:127	0/1:27,32:59:99:602,0,534:127	0/1:33,38:72:99:748,0,676:127
+4	12652343	rs13114660	G	T	610.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.176;DB;DP=127;Dels=0.00;FS=0.000;HaplotypeScore=1.5681;MLEAC=1;MLEAF=0.167;MQ=58.86;MQ0=0;MQRankSum=-0.468;QD=16.06;ReadPosRankSum=1.246;SB=-3.060e+02;VQSLOD=7.8400;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:43,0:43:99:0,120,1561:102	0|1:15,23:38:99:645,0,407:102	0|0:44,1:46:99:0,103,1539:102
+4	21819269	rs4285068	C	G	7252.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=216;Dels=0.00;FS=0.000;HaplotypeScore=0.6511;MLEAC=6;MLEAF=1.00;MQ=55.91;MQ0=0;QD=33.57;SB=-3.284e+03;VQSLOD=8.5427;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,83:83:99:2859,226,0:127	1|1:0,73:73:99:2413,193,0:127	1|1:0,59:59:99:1980,156,0:127
+4	30898977	rs4386561	G	A	2449.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=3.817;DB;DP=231;Dels=0.00;FS=0.000;HaplotypeScore=0.9382;MLEAC=2;MLEAF=0.333;MQ=58.94;MQ0=0;MQRankSum=0.173;QD=15.70;ReadPosRankSum=1.051;SB=-1.131e+03;VQSLOD=8.3611;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:33,46:79:99:1380,0,944:127	0|0:75,0:75:99:0,202,2608:127	1|0:43,34:77:99:1108,0,1335:127
+4	39062189	rs2566127	T	C	2641.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-2.019;DB;DP=201;Dels=0.00;FS=1.101;HaplotypeScore=2.8834;MLEAC=3;MLEAF=0.500;MQ=58.96;MQ0=0;MQRankSum=0.932;QD=13.14;ReadPosRankSum=-0.596;SB=-1.401e+03;VQSLOD=7.9734;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:35,29:64:99:880,0,1168:127	0/1:37,32:70:99:796,0,1021:127	0/1:31,36:67:99:1004,0,877:127
+4	48922864	rs7697262	G	C	1383.23	VQSRTrancheSNP99.00to99.90	AC=6;AF=1.00;AN=6;DB;DP=100;Dels=0.00;FS=0.000;HaplotypeScore=0.0000;MLEAC=6;MLEAF=1.00;MQ=20.20;MQ0=24;QD=13.83;SB=-3.860e+02;VQSLOD=-0.3210;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:3,38:41:57:625,57,0:32	1|1:0,28:28:33:368,33,0:32	1|1:2,29:31:39:428,39,0:32
+4	57135985	rs1715504	G	A	1213.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=3.549;DB;DP=173;Dels=0.00;FS=4.099;HaplotypeScore=1.6305;MLEAC=2;MLEAF=0.333;MQ=58.44;MQ0=0;MQRankSum=-1.006;QD=10.28;ReadPosRankSum=-0.933;SB=-4.500e+02;VQSLOD=7.4115;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:54,0:55:99:0,135,1546:127	0|1:30,23:54:99:563,0,608:127	0|1:35,28:64:99:689,0,562:127
+4	64522064	rs4860541	A	G	5942.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=188;Dels=0.00;FS=0.000;HaplotypeScore=0.2889;MLEAC=6;MLEAF=1.00;MQ=56.20;MQ0=0;QD=31.61;SB=-3.348e+03;VQSLOD=8.5367;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,68:68:99:2119,169,0:127	1|1:0,52:53:99:1661,132,0:127	1|1:0,67:67:99:2162,172,0:127
+4	71449060	rs60358213	G	A	2269.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=5.704;DB;DP=227;Dels=0.00;FS=13.048;HaplotypeScore=20.1360;MLEAC=2;MLEAF=0.333;MQ=55.35;MQ0=0;MQRankSum=0.477;QD=13.19;ReadPosRankSum=2.295;SB=-8.910e+02;VQSLOD=1.8937;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:60,40:100:99:1221,0,1476:127	1|0:37,35:72:99:1087,0,987:127	0|0:53,1:54:99:0,157,2026:127
+4	82427976	rs6841516	G	A	561.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.022;DB;DP=166;Dels=0.00;FS=0.000;HaplotypeScore=1.4715;MLEAC=1;MLEAF=0.167;MQ=59.56;MQ0=0;MQRankSum=-1.555;QD=11.00;ReadPosRankSum=0.016;SB=-3.880e+02;VQSLOD=8.0989;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:51,0:51:99:0,132,1705:127	0|1:22,29:51:99:596,0,483:127	0|0:64,0:64:99:0,135,1755:127
+4	103859292	rs7676943	C	G	7573.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=235;Dels=0.00;FS=0.000;HaplotypeScore=0.0000;MLEAC=6;MLEAF=1.00;MQ=58.63;MQ0=0;QD=32.23;SB=-3.953e+03;VQSLOD=10.3945;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:1,95:96:99:3289,256,0:127	1|1:0,73:73:99:2137,166,0:127	1|1:0,66:66:99:2147,166,0:127
+4	122900130	rs4833786	C	T	2361.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-0.390;DB;DP=244;Dels=0.00;FS=0.495;HaplotypeScore=0.5427;MLEAC=2;MLEAF=0.333;MQ=59.91;MQ0=0;MQRankSum=-0.628;QD=15.23;ReadPosRankSum=1.221;SB=-1.282e+03;VQSLOD=8.8105;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:89,0:89:99:0,250,3286:127	0|1:42,44:86:99:1257,0,1325:127	0|1:32,37:69:99:1143,0,941:127
+4	132671861	rs6856716	C	G	2622.26	VQSRTrancheSNP99.90to100.00	AC=2;AF=0.333;AN=6;BaseQRankSum=3.143;DB;DP=617;DS;Dels=0.00;FS=5.808;HaplotypeScore=34.4109;MLEAC=2;MLEAF=0.333;MQ=24.78;MQ0=42;MQRankSum=3.293;QD=5.89;ReadPosRankSum=-0.736;SB=-1.412e+03;VQSLOD=-77.3455;culprit=DP	GT:AD:DP:GQ:PL:TP	0|1:125,98:223:99:1761,0,1486:127	0|0:171,0:172:99:0,300,2641:127	1|0:152,70:222:99:900,0,2086:127
+4	141514835	rs55984232	C	T	1645.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=7.144;DB;DP=191;Dels=0.00;FS=2.756;HaplotypeScore=1.0735;MLEAC=2;MLEAF=0.333;MQ=59.26;MQ0=0;MQRankSum=0.726;QD=13.06;ReadPosRankSum=-0.789;SB=-8.550e+02;VQSLOD=8.9425;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:32,28:60:99:913,0,820:127	0|0:65,0:65:99:0,156,1886:127	1|0:34,32:66:99:771,0,750:127
+4	161180100	rs167176	G	C	2497.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=6.811;DB;DP=191;Dels=0.00;FS=5.370;HaplotypeScore=0.7812;MLEAC=3;MLEAF=0.500;MQ=59.78;MQ0=0;MQRankSum=-0.584;QD=13.07;ReadPosRankSum=0.756;SB=-1.206e+03;VQSLOD=8.0012;culprit=MQ	GT:AD:DP:GQ:PL:TP	0/1:32,36:68:99:1100,0,895:127	0/1:41,35:76:99:987,0,1028:127	0/1:29,17:47:99:449,0,820:127
+4	169085855	rs2251558	A	G	1161.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=0.721;DB;DP=244;Dels=0.00;FS=5.247;HaplotypeScore=0.4893;MLEAC=1;MLEAF=0.167;MQ=59.91;MQ0=0;MQRankSum=1.574;QD=13.99;ReadPosRankSum=0.454;SB=-5.590e+02;VQSLOD=7.4222;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:77,0:77:99:0,226,2915:127	0|1:43,40:83:99:1196,0,1294:127	0|0:84,0:84:99:0,232,2950:127
+4	177855678	rs1545090	A	G	7065.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=229;Dels=0.00;FS=0.000;HaplotypeScore=1.1696;MLEAC=6;MLEAF=1.00;MQ=59.50;MQ0=0;QD=30.85;SB=-3.799e+03;VQSLOD=11.0069;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,84:84:99:2701,235,0:127	1|1:0,79:80:99:2401,211,0:127	1|1:0,65:65:99:1963,165,0:127
+4	184811263	rs2871379	A	G	6376.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=211;Dels=0.00;FS=0.000;HaplotypeScore=0.5084;MLEAC=6;MLEAF=1.00;MQ=58.38;MQ0=0;QD=30.22;SB=-3.472e+03;VQSLOD=10.4879;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,78:78:99:2539,199,0:127	1|1:0,67:67:99:2072,165,0:127	1|1:0,66:66:99:1765,135,0:127
+4	190538070	rs62323772	G	A	106.69	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=0.099;DB;DP=19;Dels=0.00;FS=0.000;HaplotypeScore=4.3562;MLEAC=3;MLEAF=0.500;MQ=33.71;MQ0=0;MQRankSum=0.591;QD=5.93;ReadPosRankSum=-0.394;SB=-7.601e+01;VQSLOD=-1.3921;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:4,9:13:69:69,0,92:3	0|0:1,0:1:3:0,3,33:3	1|1:0,4:5:6:77,6,0:3
+5	3276081	rs4866540	G	A	3653.01	VQSRTrancheSNP99.00to99.90	AC=4;AF=0.667;AN=6;BaseQRankSum=5.002;DB;DP=176;Dels=0.00;FS=2.778;HaplotypeScore=19.0040;MLEAC=4;MLEAF=0.667;MQ=57.74;MQ0=0;MQRankSum=-0.569;QD=20.76;ReadPosRankSum=1.308;SB=-6.610e+02;VQSLOD=3.1833;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:1,71:72:99:2337,175,0:127	1|0:26,25:51:99:719,0,601:127	1|0:26,27:53:99:597,0,662:127
+5	10958957	rs852590	T	C	8430.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=243;Dels=0.00;FS=0.000;HaplotypeScore=1.8272;MLEAC=6;MLEAF=1.00;MQ=59.31;MQ0=0;QD=34.69;SB=-4.118e+03;VQSLOD=10.8702;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:1,96:97:99:3594,277,0:127	1|1:1,73:74:99:2318,181,0:127	1|1:0,72:72:99:2518,196,0:127
+5	20435939	rs12697584	A	C	2286.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-5.396;DB;DP=246;Dels=0.00;FS=4.681;HaplotypeScore=0.8744;MLEAC=2;MLEAF=0.333;MQ=59.74;MQ0=0;MQRankSum=-0.850;QD=14.20;ReadPosRankSum=0.391;SB=-1.305e+03;VQSLOD=8.1327;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:85,0:85:99:0,241,3183:127	0|1:41,37:78:99:1062,0,1304:127	0|1:39,44:83:99:1263,0,1222:127
+5	29069162	rs658439	G	A	499.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=1.981;DB;DP=199;Dels=0.00;FS=11.196;HaplotypeScore=1.6038;MLEAC=1;MLEAF=0.167;MQ=52.70;MQ0=0;MQRankSum=-0.608;QD=9.42;ReadPosRankSum=-1.103;SB=-2.310e+02;VQSLOD=4.0183;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:86,0:86:99:0,211,2509:110	0|0:60,0:60:99:0,111,1240:110	0|1:30,23:53:99:534,0,523:110
+5	36740339	rs36676	T	G	6995.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=230;Dels=0.00;FS=0.000;HaplotypeScore=2.0768;MLEAC=6;MLEAF=1.00;MQ=59.46;MQ0=0;QD=30.41;SB=-3.034e+03;VQSLOD=10.9208;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,75:75:99:2261,195,0:127	1|1:0,83:83:99:2579,217,0:127	1|1:0,71:72:99:2155,181,0:127
+5	49438828	rs137880658	G	A	424.24	VQSRTrancheSNP99.90to100.00	AC=1;AF=0.167;AN=6;BaseQRankSum=-4.376;DB;DP=748;DS;Dels=0.00;FS=7.184;HaplotypeScore=20.6618;MLEAC=1;MLEAF=0.167;MQ=19.63;MQ0=158;MQRankSum=3.819;QD=1.70;ReadPosRankSum=1.191;SB=-2.220e+02;VQSLOD=-98.2155;culprit=DP	GT:AD:DP:GQ:PL:TP	0|0:249,0:249:99:0,555,4848:127	0|1:204,46:250:99:459,0,2894:127	0|0:249,0:249:99:0,480,4326:127
+5	58243302	rs457566	A	C	6237.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-1.663;DB;DP=233;Dels=0.00;FS=3.429;HaplotypeScore=0.8859;MLEAC=5;MLEAF=0.833;MQ=59.70;MQ0=0;MQRankSum=-0.232;QD=26.77;ReadPosRankSum=0.957;SB=-2.566e+03;VQSLOD=9.3537;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:0,87:87:99:2923,229,0:127	1|0:36,50:86:99:1429,0,1006:127	1|1:0,60:60:99:1885,147,0:127
+5	70856663	rs157045	T	C	2040.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-7.809;DB;DP=234;Dels=0.00;FS=1.824;HaplotypeScore=1.0544;MLEAC=2;MLEAF=0.333;MQ=58.65;MQ0=0;MQRankSum=0.989;QD=13.16;ReadPosRankSum=0.719;SB=-8.820e+02;VQSLOD=7.3513;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:44,41:85:99:1087,0,1448:127	1|0:28,42:70:99:992,0,789:127	0|0:79,0:79:99:0,181,2342:127
+5	80900719	rs2917540	G	T	4938.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=3.261;DB;DP=240;Dels=0.00;FS=0.489;HaplotypeScore=0.5959;MLEAC=4;MLEAF=0.667;MQ=59.63;MQ0=0;MQRankSum=-2.115;QD=20.58;ReadPosRankSum=0.288;SB=-2.548e+03;VQSLOD=8.4417;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|1:52,40:92:99:1207,0,1768:127	0|1:37,33:70:99:960,0,1205:127	1|1:0,78:78:99:2771,211,0:127
+5	93119893	rs6879620	G	A	4262.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=4.930;DB;DP=239;Dels=0.00;FS=1.050;HaplotypeScore=2.1583;MLEAC=4;MLEAF=0.667;MQ=59.81;MQ0=0;MQRankSum=0.891;QD=17.83;ReadPosRankSum=-2.670;SB=-2.596e+03;VQSLOD=7.0681;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|1:49,42:91:99:1098,0,1410:127	0|1:36,38:74:99:890,0,1008:127	1|1:0,74:74:99:2274,178,0:127
+5	102962771	rs6866105	A	G	5087.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-2.665;DB;DP=200;Dels=0.00;FS=8.083;HaplotypeScore=2.2837;MLEAC=5;MLEAF=0.833;MQ=58.71;MQ0=0;MQRankSum=-0.503;QD=25.44;ReadPosRankSum=-0.482;SB=-2.172e+03;VQSLOD=7.2212;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,75:75:99:2373,184,0:127	1|1:0,59:59:99:1776,141,0:127	1|0:31,35:66:99:938,0,803:127
+5	112750674	rs9716322	A	C	598.24	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=-0.293;DB;DP=199;Dels=0.00;FS=2.948;HaplotypeScore=0.3328;MLEAC=1;MLEAF=0.167;MQ=45.61;MQ0=2;MQRankSum=-2.398;QD=12.21;ReadPosRankSum=1.159;SB=-8.101e+01;VQSLOD=2.7717;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:81,0:81:99:0,196,2534:127	0|1:23,26:49:99:633,0,479:127	0|0:68,1:69:99:0,174,2191:127
+5	121302662	.	G	T	143.72	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=1.413;DP=150;Dels=0.02;FS=161.482;HaplotypeScore=2.8631;MLEAC=3;MLEAF=0.500;MQ=35.76;MQ0=1;MQRankSum=0.422;QD=0.96;ReadPosRankSum=-5.675;SB=-1.466e+00;VQSLOD=-77.2440;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:32,21:53:99:120,0,251:5	0/1:35,12:47:57:57,0,271:5	0/1:35,12:47:4:4,0,259:5
+5	132377304	rs72801439	A	T	858.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.113;DB;DP=219;Dels=0.00;FS=10.632;HaplotypeScore=0.6638;MLEAC=1;MLEAF=0.167;MQ=59.41;MQ0=0;MQRankSum=-0.881;QD=11.29;ReadPosRankSum=0.435;SB=-3.050e+02;VQSLOD=7.6837;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:67,0:67:99:0,163,2149:127	0|1:43,33:76:99:893,0,1280:127	0|0:76,0:76:99:0,199,2553:127
+5	144321895	rs35068704	A	T	1535.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=6.048;DB;DP=203;Dels=0.00;FS=13.289;HaplotypeScore=0.5075;MLEAC=2;MLEAF=0.333;MQ=57.36;MQ0=0;MQRankSum=2.191;QD=11.37;ReadPosRankSum=-1.361;SB=-7.640e+02;VQSLOD=5.7211;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:34,25:59:99:595,0,976:127	0|0:68,0:68:99:0,190,2435:127	1|0:39,37:76:99:979,0,1274:127
+5	154441640	rs467330	A	C	1133.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.127;DB;DP=235;Dels=0.00;FS=2.103;HaplotypeScore=1.1893;MLEAC=1;MLEAF=0.167;MQ=59.65;MQ0=0;MQRankSum=0.766;QD=12.59;ReadPosRankSum=-0.535;SB=-6.500e+02;VQSLOD=9.8335;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:61,0:61:99:0,172,2172:127	0|1:45,45:90:99:1168,0,1368:127	0|0:82,1:84:99:0,226,2825:127
+5	164600452	rs7711548	C	A	588.32	VQSRTrancheSNP99.00to99.90	AC=6;AF=1.00;AN=6;BaseQRankSum=-3.291;DB;DP=192;Dels=0.02;FS=2.319;HaplotypeScore=32.6662;MLEAC=6;MLEAF=1.00;MQ=57.55;MQ0=0;MQRankSum=1.536;QD=3.06;ReadPosRankSum=-1.533;SB=-2.085e+03;VQSLOD=-1.4325;culprit=QD	GT:AD:DP:GQ:PL:TP	1|1:15,52:69:18:155,18,0:15	1|1:11,55:66:36:296,36,0:15	1|1:18,36:54:15:175,15,0:15
+5	174249229	rs11739079	C	G	1613.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-4.540;DB;DP=190;Dels=0.00;FS=6.482;HaplotypeScore=2.0416;MLEAC=2;MLEAF=0.333;MQ=59.51;MQ0=0;MQRankSum=-0.898;QD=11.86;ReadPosRankSum=0.601;SB=-8.320e+02;VQSLOD=7.7782;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:32,43:75:99:1069,0,928:123	0|0:54,0:54:99:0,123,1554:123	1|0:33,27:61:99:583,0,883:123
+6	1620147	rs2569882	T	C	252.30	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-0.862;DB;DP=38;Dels=0.00;FS=8.023;HaplotypeScore=0.2217;MLEAC=5;MLEAF=0.833;MQ=57.65;MQ0=0;MQRankSum=-0.918;QD=9.34;ReadPosRankSum=0.584;SB=-4.005e+01;VQSLOD=4.3258;culprit=DP	GT:AD:DP:GQ:PL:TP	1|1:0,17:17:21:254,21,0:4	1|0:3,8:11:2:0,3,40:4	1|1:0,10:10:3:39,3,0:4
+6	9408051	rs11751621	C	G	5140.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-2.350;DB;DP=241;Dels=0.00;FS=0.000;HaplotypeScore=0.6637;MLEAC=4;MLEAF=0.667;MQ=59.81;MQ0=0;MQRankSum=-0.205;QD=21.33;ReadPosRankSum=-0.033;SB=-2.552e+03;VQSLOD=8.9881;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:42,40:82:99:1156,0,1352:127	0|1:36,45:81:99:1253,0,1134:127	1|1:0,78:78:99:2731,214,0:127
+6	18687376	rs9383429	A	T	1162.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.746;DB;DP=232;Dels=0.00;FS=0.638;HaplotypeScore=0.2774;MLEAC=1;MLEAF=0.167;MQ=59.42;MQ0=0;MQRankSum=-0.733;QD=15.71;ReadPosRankSum=-0.146;SB=-6.490e+02;VQSLOD=9.4317;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:82,0:82:99:0,241,3181:127	0|0:76,0:76:99:0,217,2832:127	0|1:33,41:74:99:1197,0,1008:127
+6	26687649	.	G	C	1654.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=9.718;DP=410;Dels=0.00;FS=5.973;HaplotypeScore=5.0786;MLEAC=2;MLEAF=0.333;MQ=28.19;MQ0=32;MQRankSum=0.048;QD=6.17;ReadPosRankSum=0.408;SB=-5.110e+02;VQSLOD=-8.7346;culprit=DP	GT:AD:DP:GQ:PL:TP	0|1:117,49:166:99:1013,0,2495:127	0|0:141,1:142:99:0,244,2576:127	1|0:70,32:102:99:680,0,1048:127
+6	35346891	.	C	T	483.26	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=-6.402;DP=205;Dels=0.02;FS=214.154;HaplotypeScore=4.5086;MLEAC=3;MLEAF=0.500;MQ=51.07;MQ0=1;MQRankSum=-2.038;QD=2.36;ReadPosRankSum=-2.250;SB=-1.065e-02;VQSLOD=-116.9542;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:48,31:79:99:257,0,635:80	0/1:40,22:62:99:185,0,308:80	0/1:44,16:60:80:80,0,534:80
+6	45421630	rs1343799	C	T	5422.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=3.419;DB;DP=240;Dels=0.00;FS=10.689;HaplotypeScore=0.7979;MLEAC=4;MLEAF=0.667;MQ=59.46;MQ0=0;MQRankSum=1.089;QD=22.59;ReadPosRankSum=1.252;SB=-2.647e+03;VQSLOD=7.7035;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:29,43:72:99:1445,0,843:127	0|1:43,37:80:99:1121,0,1302:127	1|1:0,88:88:99:2856,220,0:127
+6	55412503	rs12201934	T	C	882.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.280;DB;DP=182;Dels=0.00;FS=0.744;HaplotypeScore=0.3332;MLEAC=1;MLEAF=0.167;MQ=59.64;MQ0=0;MQRankSum=-0.765;QD=13.57;ReadPosRankSum=0.147;SB=-4.590e+02;VQSLOD=9.3766;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:61,0:61:99:0,181,2371:127	0|1:35,30:65:99:917,0,1046:127	0|0:56,0:56:99:0,150,1969:127
+6	71018445	rs1321063	C	A	518.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=2.668;DB;DP=185;Dels=0.00;FS=1.618;HaplotypeScore=0.6919;MLEAC=1;MLEAF=0.167;MQ=58.93;MQ0=0;MQRankSum=0.355;QD=8.78;ReadPosRankSum=1.306;SB=-4.020e+02;VQSLOD=7.7510;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:67,0:67:99:0,184,2404:127	0|0:59,0:59:99:0,160,2065:127	0|1:29,30:59:99:553,0,809:127
+6	79887872	rs6454101	C	T	2130.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.355;DB;DP=204;Dels=0.00;FS=11.823;HaplotypeScore=2.3806;MLEAC=3;MLEAF=0.500;MQ=59.68;MQ0=0;MQRankSum=1.011;QD=10.44;ReadPosRankSum=-0.769;SB=-1.370e+03;VQSLOD=7.5187;culprit=MQ	GT:AD:DP:GQ:PL:TP	0/1:31,31:62:99:806,0,990:127	0/1:42,31:73:99:606,0,921:127	0/1:29,40:69:99:757,0,749:127
+6	89947117	rs9942462	A	G	5019.01	PASS	AC=6;AF=1.00;AN=6;BaseQRankSum=1.654;DB;DP=181;Dels=0.00;FS=0.000;HaplotypeScore=3.3205;MLEAC=6;MLEAF=1.00;MQ=53.30;MQ0=0;MQRankSum=0.428;QD=27.73;ReadPosRankSum=1.090;SB=-3.151e+03;VQSLOD=5.6763;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,59:60:99:1715,138,0:92	1|1:1,55:56:93:1401,93,0:92	1|1:0,65:65:99:1903,153,0:92
+6	110345430	rs56272355	T	C	882.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-7.241;DB;DP=230;Dels=0.00;FS=2.159;HaplotypeScore=1.7615;MLEAC=1;MLEAF=0.167;MQ=59.70;MQ0=0;MQRankSum=-0.200;QD=11.46;ReadPosRankSum=-0.480;SB=-5.580e+02;VQSLOD=8.9824;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:77,0:77:99:0,220,2860:127	0|0:75,0:76:99:0,184,2321:127	0|1:35,42:77:99:917,0,926:127
+6	120734422	rs62424426	T	C	1091.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.268;DB;DP=208;Dels=0.00;FS=4.347;HaplotypeScore=0.7034;MLEAC=1;MLEAF=0.167;MQ=59.71;MQ0=0;MQRankSum=-0.188;QD=14.36;ReadPosRankSum=-0.149;SB=-5.560e+02;VQSLOD=8.6529;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:70,1:71:99:0,205,2692:127	0|0:61,0:61:99:0,175,2298:127	0|1:39,37:76:99:1126,0,1140:127
+6	131725921	.	G	A	64.24	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=3.650;DP=182;Dels=0.00;FS=3.535;HaplotypeScore=2.2441;MLEAC=1;MLEAF=0.167;MQ=50.85;MQ0=1;MQRankSum=-6.039;QD=1.31;ReadPosRankSum=-1.757;SB=-4.901e+01;VQSLOD=-0.6667;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:59,0:60:99:0,168,1897:98	0|1:33,16:49:99:99,0,790:98	0|0:73,0:73:99:0,156,1824:98
+6	143691852	rs17792267	C	T	3641.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-1.465;DB;DP=203;Dels=0.00;FS=2.413;HaplotypeScore=0.3222;MLEAC=3;MLEAF=0.500;MQ=59.54;MQ0=0;MQRankSum=1.198;QD=27.17;ReadPosRankSum=-1.140;SB=-1.772e+03;VQSLOD=8.8712;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:29,33:62:99:1131,0,803:127	1|1:0,72:72:99:2510,196,0:127	0|0:69,0:69:99:0,190,2480:127
+6	154006585	rs7752561	G	A	919.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.323;DB;DP=223;Dels=0.00;FS=0.000;HaplotypeScore=0.8254;MLEAC=1;MLEAF=0.167;MQ=59.35;MQ0=0;MQRankSum=-0.749;QD=10.45;ReadPosRankSum=-0.155;SB=-5.260e+02;VQSLOD=8.8368;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:70,0:70:99:0,202,2601:127	0|1:51,37:88:99:954,0,1475:127	0|0:65,0:65:99:0,175,2269:127
+6	162459664	rs2849564	C	T	1819.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=8.399;DB;DP=201;Dels=0.00;FS=3.295;HaplotypeScore=2.5591;MLEAC=2;MLEAF=0.333;MQ=59.38;MQ0=0;MQRankSum=1.792;QD=12.90;ReadPosRankSum=-1.045;SB=-1.068e+03;VQSLOD=8.1160;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:28,40:68:99:1007,0,793:120	1|0:38,35:73:99:851,0,831:120	0|0:60,0:60:99:0,120,1421:120
+7	4683258	rs62450857	G	A	1127.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-0.991;DB;DP=191;Dels=0.00;FS=3.236;HaplotypeScore=0.2774;MLEAC=1;MLEAF=0.167;MQ=57.16;MQ0=0;MQRankSum=1.297;QD=14.09;ReadPosRankSum=0.469;SB=-4.730e+02;VQSLOD=6.6182;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:66,0:66:99:0,196,2495:120	0|1:38,42:80:99:1162,0,1016:120	0|0:45,0:45:99:0,120,1531:120
+7	12502849	rs848025	C	G	4109.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-8.809;DB;DP=220;Dels=0.00;FS=1.141;HaplotypeScore=1.8049;MLEAC=4;MLEAF=0.667;MQ=59.56;MQ0=0;MQRankSum=0.625;QD=18.68;ReadPosRankSum=-0.019;SB=-1.989e+03;VQSLOD=8.7123;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:47,45:92:99:1216,0,1501:127	1|1:0,71:71:99:2145,184,0:127	0|1:27,30:57:99:748,0,743:127
+7	29544610	rs6462145	A	T	4020.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=0.326;DB;DP=189;Dels=0.00;FS=5.388;HaplotypeScore=1.2974;MLEAC=4;MLEAF=0.667;MQ=58.54;MQ0=0;MQRankSum=1.295;QD=21.27;ReadPosRankSum=-1.212;SB=-1.878e+03;VQSLOD=7.3155;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:27,49:77:99:1466,0,733:127	1|1:0,64:64:99:1888,147,0:127	0|1:18,27:48:99:666,0,410:127
+7	38984187	rs118081099	A	C	569.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-0.110;DB;DP=182;Dels=0.00;FS=6.196;HaplotypeScore=0.5533;MLEAC=1;MLEAF=0.167;MQ=54.22;MQ0=0;MQRankSum=1.675;QD=9.33;ReadPosRankSum=1.162;SB=-1.260e+02;VQSLOD=4.8877;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:72,0:72:99:0,196,2446:127	0|1:38,23:61:99:604,0,1196:127	0|0:48,1:49:99:0,138,1711:127
+7	48862174	rs965346	A	G	877.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-6.250;DB;DP=194;Dels=0.00;FS=6.112;HaplotypeScore=0.6489;MLEAC=1;MLEAF=0.167;MQ=57.54;MQ0=0;MQRankSum=2.058;QD=16.25;ReadPosRankSum=-1.204;SB=-4.040e+02;VQSLOD=6.2372;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:82,0:82:99:0,232,3007:127	0|0:58,0:58:99:0,160,2067:127	0|1:22,32:54:99:912,0,686:127
+7	56584972	rs34475770	C	T	2465.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-0.103;DB;DP=255;Dels=0.00;FS=2.230;HaplotypeScore=0.8840;MLEAC=2;MLEAF=0.333;MQ=58.76;MQ0=0;MQRankSum=1.766;QD=15.03;ReadPosRankSum=1.126;SB=-1.412e+03;VQSLOD=6.5725;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:91,0:91:99:0,259,3369:127	0|1:36,49:85:99:1444,0,1000:127	0|1:38,41:79:99:1060,0,1084:127
+7	62232046	.	C	T	1155.24	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.643;DP=230;Dels=0.00;FS=6.304;HaplotypeScore=12.7679;MLEAC=1;MLEAF=0.167;MQ=58.61;MQ0=3;MQRankSum=-0.697;QD=15.20;ReadPosRankSum=-1.202;SB=-4.440e+02;VQSLOD=2.5725;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:77,1:78:99:0,217,2824:127	0|0:76,0:76:99:0,202,2604:127	0|1:34,42:76:99:1190,0,994:127
+7	69334430	rs917719	C	T	1223.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=5.841;DB;DP=193;Dels=0.00;FS=6.656;HaplotypeScore=0.8147;MLEAC=2;MLEAF=0.333;MQ=59.81;MQ0=0;MQRankSum=1.631;QD=9.63;ReadPosRankSum=1.458;SB=-7.370e+02;VQSLOD=7.0004;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:38,39:77:99:770,0,1258:127	1|0:26,24:50:99:492,0,840:127	0|0:66,0:66:99:0,172,2210:127
+7	79508376	rs2525826	G	T	716.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=2.152;DB;DP=196;Dels=0.00;FS=0.000;HaplotypeScore=0.8658;MLEAC=1;MLEAF=0.167;MQ=59.48;MQ0=0;MQRankSum=1.420;QD=13.51;ReadPosRankSum=0.263;SB=-4.080e+02;VQSLOD=9.5728;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:65,0:65:99:0,181,2312:127	0|0:78,0:78:99:0,226,2916:127	0|1:27,26:53:99:751,0,845:127
+7	89752110	rs39232	T	G	3944.01	VQSRTrancheSNP99.00to99.90	AC=6;AF=1.00;AN=6;DB;DP=216;Dels=0.00;FS=0.000;HaplotypeScore=1.4477;MLEAC=6;MLEAF=1.00;MQ=38.19;MQ0=21;QD=18.26;SB=-2.716e+03;VQSLOD=2.6638;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:0,70:70:99:1564,132,0:101	1|1:0,79:79:99:1258,108,0:101	1|1:0,66:66:99:1122,102,0:101
+7	101161506	rs2158739	C	T	4522.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=1.698;DB;DP=172;Dels=0.00;FS=4.280;HaplotypeScore=1.5077;MLEAC=5;MLEAF=0.833;MQ=58.18;MQ0=0;MQRankSum=-0.295;QD=26.29;ReadPosRankSum=0.974;SB=-2.287e+03;VQSLOD=8.2831;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,72:73:99:2443,202,0:110	1|0:23,26:50:99:711,0,586:110	1|1:0,48:49:99:1368,111,0:110
+7	110843795	rs214455	A	G	8548.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=258;Dels=0.00;FS=0.000;HaplotypeScore=2.3561;MLEAC=6;MLEAF=1.00;MQ=59.35;MQ0=0;QD=33.13;SB=-4.197e+03;VQSLOD=10.7627;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,106:106:99:3535,301,0:127	1|1:0,66:66:99:2270,193,0:127	1|1:0,86:86:99:2743,229,0:127
+7	124589684	rs12113765	G	C	4948.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-2.607;DB;DP=243;Dels=0.00;FS=1.040;HaplotypeScore=3.3790;MLEAC=4;MLEAF=0.667;MQ=58.74;MQ0=0;MQRankSum=1.246;QD=20.36;ReadPosRankSum=-0.387;SB=-2.411e+03;VQSLOD=7.0507;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:44,27:71:99:796,0,1350:127	1|1:0,84:85:99:2760,217,0:127	0|1:41,46:87:99:1392,0,1180:127
+7	144383888	rs73161092	T	C	689.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-7.434;DB;DP=254;Dels=0.00;FS=8.629;HaplotypeScore=0.0000;MLEAC=1;MLEAF=0.167;MQ=59.54;MQ0=0;MQRankSum=0.163;QD=8.62;ReadPosRankSum=-1.802;SB=-3.560e+02;VQSLOD=6.4544;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:90,0:90:99:0,268,3553:127	0|1:47,33:80:99:724,0,1392:127	0|0:84,0:84:99:0,202,2644:127
+7	152208470	rs6464236	G	C	4321.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=5.233;DB;DP=169;Dels=0.00;FS=1.635;HaplotypeScore=1.3568;MLEAC=5;MLEAF=0.833;MQ=57.18;MQ0=1;MQRankSum=1.907;QD=25.57;ReadPosRankSum=0.892;SB=-2.137e+03;VQSLOD=6.7602;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:1,56:57:99:1949,150,0:122	1|1:0,54:54:99:1557,123,0:122	1|0:30,28:58:99:815,0,715:122
+7	158686803	rs55765467	T	C	200.26	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=-10.112;DB;DP=310;Dels=0.00;FS=2.596;HaplotypeScore=1.2829;MLEAC=3;MLEAF=0.500;MQ=47.32;MQ0=0;MQRankSum=-4.959;QD=0.65;ReadPosRankSum=-10.956;SB=-1.206e+03;VQSLOD=-17.6411;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0/1:64,33:97:99:148,0,1949:32	0/1:73,45:118:58:58,0,2287:32	0/1:65,30:95:33:33,0,1910:32
+8	4048009	rs7007410	C	T	2713.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.954;DB;DP=197;Dels=0.00;FS=2.483;HaplotypeScore=0.7125;MLEAC=3;MLEAF=0.500;MQ=57.03;MQ0=0;MQRankSum=0.882;QD=13.77;ReadPosRankSum=-0.496;SB=-1.406e+03;VQSLOD=6.5035;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:38,30:68:99:847,0,1168:127	0/1:30,30:60:99:916,0,921:127	0/1:32,36:69:99:989,0,882:127
+8	8974322	rs28440961	G	A	1682.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.716;DB;DP=190;Dels=0.00;FS=0.579;HaplotypeScore=1.5434;MLEAC=2;MLEAF=0.333;MQ=59.33;MQ0=0;MQRankSum=-0.652;QD=12.65;ReadPosRankSum=0.746;SB=-7.040e+02;VQSLOD=9.3708;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|0:32,32:64:99:790,0,1002:125	1|0:33,36:69:99:931,0,866:125	0|0:57,0:57:99:0,126,1622:125
+8	14463368	rs1355302	T	A	2523.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=6.793;DB;DP=236;Dels=0.00;FS=3.776;HaplotypeScore=0.3245;MLEAC=2;MLEAF=0.333;MQ=59.14;MQ0=0;MQRankSum=-0.381;QD=15.97;ReadPosRankSum=-0.045;SB=-1.421e+03;VQSLOD=7.6920;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:36,43:79:99:1332,0,1176:127	0|0:78,0:78:99:0,214,2749:127	1|0:35,44:79:99:1230,0,1162:127
+8	21736923	rs13256921	G	A	217.24	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=1.884;DB;DP=93;Dels=0.00;FS=5.533;HaplotypeScore=6.4995;MLEAC=1;MLEAF=0.167;MQ=42.13;MQ0=3;MQRankSum=0.517;QD=6.79;ReadPosRankSum=1.706;SB=-1.980e+02;VQSLOD=-2.6430;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:34,0:34:66:0,66,691:41	0|1:15,17:32:99:252,0,211:41	0|0:27,0:27:42:0,42,425:41
+8	42044954	rs1058720	G	A	2760.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=4.313;DB;DP=157;Dels=0.00;FS=0.000;HaplotypeScore=2.0979;MLEAC=4;MLEAF=0.667;MQ=58.82;MQ0=0;MQRankSum=-2.021;QD=17.58;ReadPosRankSum=-0.462;SB=-1.377e+03;VQSLOD=7.5777;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,56:56:99:1820,147,0:127	1|0:24,27:51:99:555,0,233:127	1|0:26,24:50:99:427,0,458:127
+8	56608897	rs57623198	C	T	1911.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-1.515;DB;DP=229;Dels=0.00;FS=0.000;HaplotypeScore=1.1327;MLEAC=2;MLEAF=0.333;MQ=59.80;MQ0=0;MQRankSum=0.336;QD=12.66;ReadPosRankSum=-2.326;SB=-9.730e+02;VQSLOD=8.5587;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:78,0:78:99:0,229,2989:127	0|1:44,30:74:99:897,0,1444:127	0|1:44,33:77:99:1053,0,1400:127
+8	66327344	rs13282622	G	A	3918.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=4.514;DB;DP=192;Dels=0.00;FS=3.531;HaplotypeScore=1.6541;MLEAC=4;MLEAF=0.667;MQ=58.91;MQ0=0;MQRankSum=0.706;QD=20.41;ReadPosRankSum=-0.327;SB=-2.091e+03;VQSLOD=8.6266;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:34,37:71:99:1137,0,923:127	0|1:32,28:61:99:806,0,988:127	1|1:0,60:60:99:1975,153,0:127
+8	78181000	rs1563030	A	G	5178.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-0.030;DB;DP=192;Dels=0.00;FS=4.675;HaplotypeScore=2.9473;MLEAC=5;MLEAF=0.833;MQ=59.62;MQ0=0;MQRankSum=-0.467;QD=26.97;ReadPosRankSum=-0.855;SB=-2.617e+03;VQSLOD=7.3445;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,59:59:99:1954,150,0:127	1|0:32,37:70:99:1198,0,888:127	1|1:0,63:63:99:2026,156,0:127
+8	90278211	rs11998540	A	T	357.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-1.457;DB;DP=69;Dels=0.00;FS=1.289;HaplotypeScore=0.0000;MLEAC=2;MLEAF=0.333;MQ=58.96;MQ0=0;MQRankSum=1.415;QD=8.12;ReadPosRankSum=1.258;SB=-9.501e+01;VQSLOD=5.9584;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:12,7:19:99:185,0,416:60	0|0:25,0:25:60:0,60,805:60	1|0:16,9:25:99:211,0,500:60
+8	102355800	rs10103956	G	T	1756.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=0.927;DB;DP=189;Dels=0.00;FS=5.921;HaplotypeScore=1.5445;MLEAC=2;MLEAF=0.333;MQ=59.66;MQ0=0;MQRankSum=-0.420;QD=13.41;ReadPosRankSum=-0.019;SB=-5.470e+02;VQSLOD=8.1563;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:32,38:70:99:1078,0,999:127	1|0:35,26:61:99:717,0,1103:127	0|0:57,0:58:99:0,156,2011:127
+8	113376378	rs41340951	T	C	4379.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-8.019;DB;DP=211;Dels=0.00;FS=1.826;HaplotypeScore=0.2629;MLEAC=4;MLEAF=0.667;MQ=59.85;MQ0=0;MQRankSum=1.273;QD=20.75;ReadPosRankSum=0.144;SB=-1.893e+03;VQSLOD=8.8374;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,67:67:99:2221,187,0:127	1|0:32,37:69:99:1083,0,1066:127	1|0:35,40:75:99:1075,0,1108:127
+8	123499998	rs9693135	T	C	926.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-7.820;DB;DP=207;Dels=0.00;FS=2.678;HaplotypeScore=1.2574;MLEAC=2;MLEAF=0.333;MQ=56.08;MQ0=0;MQRankSum=-2.729;QD=6.34;ReadPosRankSum=-0.269;SB=-8.230e+02;VQSLOD=4.3016;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:61,0:61:99:0,172,2301:127	0|1:37,35:72:99:622,0,769:127	0|1:48,26:74:99:343,0,1280:127
+8	132727531	rs7000409	G	A	2050.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=5.475;DB;DP=220;Dels=0.00;FS=5.203;HaplotypeScore=1.9424;MLEAC=2;MLEAF=0.333;MQ=59.71;MQ0=0;MQRankSum=1.230;QD=14.14;ReadPosRankSum=-0.871;SB=-1.080e+03;VQSLOD=7.7925;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|1:29,35:64:99:1215,0,785:127	0|0:75,0:75:99:0,190,2423:127	1|0:50,31:81:99:874,0,1611:127
+8	140651779	rs1469039	G	A	1879.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-2.189;DB;DP=145;Dels=0.00;FS=0.000;HaplotypeScore=1.7695;MLEAC=3;MLEAF=0.500;MQ=58.39;MQ0=0;MQRankSum=0.745;QD=12.96;ReadPosRankSum=-0.159;SB=-9.360e+02;VQSLOD=9.0059;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:23,24:47:99:612,0,740:127	0/1:21,31:52:99:684,0,478:127	0/1:20,26:46:99:622,0,367:127
+9	2072356	rs4741641	T	G	2054.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-7.235;DB;DP=243;Dels=0.00;FS=0.000;HaplotypeScore=2.2089;MLEAC=2;MLEAF=0.333;MQ=59.64;MQ0=0;MQRankSum=1.166;QD=13.00;ReadPosRankSum=-0.475;SB=-1.004e+03;VQSLOD=9.0206;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:49,45:94:99:1245,0,1615:127	0|0:85,0:85:99:0,217,2818:127	1|0:32,32:64:99:848,0,936:127
+9	16302655	rs9298755	T	G	1394.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=3.356;DB;DP=200;Dels=0.00;FS=0.000;HaplotypeScore=3.1863;MLEAC=2;MLEAF=0.333;MQ=59.33;MQ0=0;MQRankSum=0.586;QD=10.03;ReadPosRankSum=-0.771;SB=-8.720e+02;VQSLOD=7.7724;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:60,1:61:99:0,165,2004:127	0|1:29,28:57:99:494,0,759:127	0|1:41,40:82:99:939,0,1069:127
+9	25201692	rs9408058	C	T	8643.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=245;Dels=0.00;FS=0.000;HaplotypeScore=0.8982;MLEAC=6;MLEAF=1.00;MQ=59.13;MQ0=0;QD=35.28;SB=-4.398e+03;VQSLOD=12.1738;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,89:89:99:3312,256,0:127	1|1:0,81:81:99:2771,223,0:127	1|1:0,75:75:99:2560,202,0:127
+9	44998848	.	C	G	254.43	VQSRTrancheSNP99.00to99.90	AC=5;AF=0.833;AN=6;BaseQRankSum=2.203;DP=193;Dels=0.00;FS=10.822;HaplotypeScore=0.2447;MLEAC=5;MLEAF=0.833;MQ=6.48;MQ0=163;MQRankSum=-1.206;QD=1.32;ReadPosRankSum=0.790;SB=-1.372e+02;VQSLOD=-6.6319;culprit=QD	GT:AD:DP:GQ:PL:TP	1|0:39,27:66:23:132,0,23:8	1|1:36,16:52:15:118,15,0:8	0|1:53,22:75:1:45,6,0:8
+9	69810010	rs113063015	A	C	280.26	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=-1.223;DB;DP=716;DS;Dels=0.00;FS=8.996;HaplotypeScore=39.8350;MLEAC=3;MLEAF=0.500;MQ=37.32;MQ0=64;MQRankSum=-3.574;QD=0.39;ReadPosRankSum=-0.897;SB=-1.065e-02;VQSLOD=-68.1677;culprit=DP	GT:AD:DP:GQ:PL:TP	0/1:218,23:241:73:73,0,3591:70	0/1:188,39:227:99:172,0,4233:70	0/1:217,31:248:74:74,0,5042:70
+9	78741390	rs7049138	G	A	1797.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=6.235;DB;DP=168;Dels=0.00;FS=4.003;HaplotypeScore=1.0858;MLEAC=3;MLEAF=0.500;MQ=55.32;MQ0=2;MQRankSum=-1.673;QD=16.34;ReadPosRankSum=-0.626;SB=-7.740e+02;VQSLOD=5.1915;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:37,33:70:99:828,0,918:80	1|1:0,40:40:81:1014,81,0:80	0|0:58,0:58:99:0,129,1403:80
+9	89010476	rs164937	T	C	736.24	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.977;DB;DP=216;Dels=0.00;FS=1.481;HaplotypeScore=1.0649;MLEAC=1;MLEAF=0.167;MQ=39.79;MQ0=9;MQRankSum=-3.028;QD=9.56;ReadPosRankSum=0.542;SB=-4.240e+02;VQSLOD=2.0772;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:66,0:66:99:0,174,2097:127	0|1:40,37:77:99:771,0,876:127	0|0:73,0:73:99:0,183,2147:127
+9	98491693	rs12337935	C	A	1474.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=2.098;DB;DP=97;Dels=0.00;FS=14.282;HaplotypeScore=1.7726;MLEAC=4;MLEAF=0.667;MQ=58.64;MQ0=0;MQRankSum=-0.224;QD=15.20;ReadPosRankSum=1.166;SB=-6.430e+02;VQSLOD=5.7986;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:14,12:26:99:348,0,352:63	1|1:0,28:29:63:781,63,0:63	0|1:17,25:42:99:387,0,364:63
+9	109619207	rs4743032	A	T	3810.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-2.859;DB;DP=214;Dels=0.00;FS=10.284;HaplotypeScore=0.3222;MLEAC=3;MLEAF=0.500;MQ=59.59;MQ0=0;MQRankSum=0.557;QD=25.07;ReadPosRankSum=-0.836;SB=-2.019e+03;VQSLOD=8.1399;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:37,39:76:99:1185,0,1225:127	1|1:0,76:76:99:2625,202,0:127	0|0:62,0:62:99:0,156,2049:127
+9	130235282	.	A	G	166.26	VQSRTrancheSNP99.90to100.00	AC=2;AF=0.333;AN=6;BaseQRankSum=-8.543;DP=232;Dels=0.00;FS=233.037;HaplotypeScore=2.9977;MLEAC=2;MLEAF=0.333;MQ=59.04;MQ0=0;MQRankSum=-2.038;QD=1.15;ReadPosRankSum=-7.649;SB=-3.100e-03;VQSLOD=-139.8496;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:74,14:88:99:0,108,2160:59	0|1:42,36:79:60:60,0,966:59	0|1:47,18:65:99:145,0,922:59
+9	138617823	rs55724592	C	T	53.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-0.380;DB;DP=72;Dels=0.00;FS=8.078;HaplotypeScore=1.0225;MLEAC=1;MLEAF=0.167;MQ=58.90;MQ0=0;MQRankSum=0.851;QD=2.66;ReadPosRankSum=-0.344;SB=-9.096e+01;VQSLOD=4.2652;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:20,0:20:48:0,48,580:44	0|0:32,0:32:48:0,48,577:44	0|1:10,10:20:88:88,0,199:44
+10	4588547	rs313427	C	T	1985.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=3.695;DB;DP=204;Dels=0.00;FS=1.813;HaplotypeScore=0.6137;MLEAC=2;MLEAF=0.333;MQ=59.73;MQ0=0;MQRankSum=0.241;QD=14.18;ReadPosRankSum=0.717;SB=-1.082e+03;VQSLOD=9.7784;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:39,35:74:99:1029,0,1182:127	1|0:32,34:66:99:995,0,1024:127	0|0:64,0:64:99:0,175,2242:127
+10	11560326	rs4424580	C	T	1027.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-0.178;DB;DP=207;Dels=0.00;FS=0.573;HaplotypeScore=2.1981;MLEAC=2;MLEAF=0.333;MQ=59.24;MQ0=0;MQRankSum=-0.988;QD=7.78;ReadPosRankSum=-0.492;SB=-7.450e+02;VQSLOD=8.4594;culprit=QD	GT:AD:DP:GQ:PL:TP	1|0:41,32:73:99:609,0,930:96	1|0:29,30:59:99:457,0,570:96	0|0:74,1:75:96:0,96,1185:96
+10	19567676	rs61458006	G	T	599.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.610;DB;DP=195;Dels=0.00;FS=0.844;HaplotypeScore=0.8795;MLEAC=1;MLEAF=0.167;MQ=59.57;MQ0=0;MQRankSum=-0.191;QD=11.31;ReadPosRankSum=-1.635;SB=-2.780e+02;VQSLOD=9.3606;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:75,0:75:99:0,208,2645:127	0|1:30,23:53:99:634,0,915:127	0|0:67,0:67:99:0,199,2540:127
+10	29082980	.	G	C	42.53	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=-1.216;DP=107;Dels=0.00;FS=60.979;HaplotypeScore=1.0911;MLEAC=3;MLEAF=0.500;MQ=55.72;MQ0=0;MQRankSum=-0.633;QD=0.40;ReadPosRankSum=-4.307;SB=-2.798e-01;VQSLOD=-11.1718;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:30,12:43:12:12,0,757:12	0/1:19,11:30:35:35,0,429:12	0/1:25,9:34:34:34,0,388:12
+10	38560911	rs80189231	T	A	1072.26	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=0.103;DB;DP=356;Dels=0.00;FS=12.038;HaplotypeScore=5.4015;MLEAC=3;MLEAF=0.500;MQ=49.74;MQ0=6;MQRankSum=-2.686;QD=3.01;ReadPosRankSum=0.797;SB=-1.690e+02;VQSLOD=-3.5129;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:109,26:135:99:389,0,2879:127	0/1:84,27:111:99:539,0,2214:127	0/1:93,17:110:99:183,0,2277:127
+10	56495833	rs6481118	G	A	7633.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=212;Dels=0.00;FS=0.000;HaplotypeScore=0.3328;MLEAC=6;MLEAF=1.00;MQ=54.64;MQ0=0;QD=36.00;SB=-2.091e+03;VQSLOD=8.6651;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,62:62:99:2383,184,0:127	1|1:1,67:68:99:2375,184,0:127	1|1:0,82:82:99:2875,223,0:127
+10	65355538	rs10733794	A	G	2464.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-8.392;DB;DP=193;Dels=0.00;FS=7.473;HaplotypeScore=2.5434;MLEAC=3;MLEAF=0.500;MQ=58.06;MQ0=2;MQRankSum=0.999;QD=18.96;ReadPosRankSum=-1.229;SB=-1.065e+03;VQSLOD=6.3934;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:33,32:65:99:830,0,1039:127	1|1:1,64:65:99:1679,153,0:127	0|0:63,0:63:99:0,159,2042:127
+10	74020452	rs72806301	C	A	1116.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-2.155;DB;DP=135;Dels=0.00;FS=3.279;HaplotypeScore=0.8720;MLEAC=2;MLEAF=0.333;MQ=58.76;MQ0=0;MQRankSum=-0.818;QD=11.88;ReadPosRankSum=1.484;SB=-6.800e+02;VQSLOD=7.2668;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|1:20,27:47:99:658,0,446:104	0|0:41,0:41:99:0,105,1324:104	1|0:25,22:47:99:497,0,482:104
+10	85258657	rs4454662	C	A	7638.01	PASS	AC=6;AF=1.00;AN=6;BaseQRankSum=1.716;DB;DP=223;Dels=0.00;FS=4.523;HaplotypeScore=1.1326;MLEAC=6;MLEAF=1.00;MQ=58.32;MQ0=0;MQRankSum=-1.230;QD=34.25;ReadPosRankSum=1.152;SB=-2.841e+03;VQSLOD=7.6461;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:1,64:65:99:2156,169,0:127	1|1:0,89:89:99:2982,238,0:127	1|1:0,69:69:99:2500,196,0:127
+10	95435201	rs2422323	C	T	4017.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=6.438;DB;DP=203;Dels=0.00;FS=13.125;HaplotypeScore=3.2358;MLEAC=4;MLEAF=0.667;MQ=55.24;MQ0=0;MQRankSum=1.174;QD=19.79;ReadPosRankSum=-0.655;SB=-2.177e+03;VQSLOD=4.5957;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:38,45:83:99:1327,0,931:127	1|1:1,63:64:99:1966,156,0:127	0|1:30,25:56:99:724,0,807:127
+10	106444111	rs72813617	A	G	632.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-0.838;DB;DP=197;Dels=0.00;FS=4.121;HaplotypeScore=1.8154;MLEAC=1;MLEAF=0.167;MQ=59.35;MQ0=0;MQRankSum=-1.142;QD=12.40;ReadPosRankSum=-1.947;SB=-2.390e+02;VQSLOD=7.6230;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|0:84,0:84:99:0,241,3129:127	0|0:62,0:62:99:0,159,2008:127	0|1:27,24:51:99:667,0,584:127
+10	116646860	rs4752347	T	A	4159.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-3.459;DB;DP=197;Dels=0.00;FS=3.519;HaplotypeScore=0.6313;MLEAC=4;MLEAF=0.667;MQ=59.27;MQ0=0;MQRankSum=1.049;QD=21.11;ReadPosRankSum=-1.271;SB=-2.347e+03;VQSLOD=8.3322;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|1:0,63:63:99:2191,169,0:127	1|0:31,35:66:99:1031,0,863:127	1|0:31,37:68:99:937,0,774:127
+10	125452232	rs7900707	A	G	3211.24	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-6.610;DB;DP=189;Dels=0.00;FS=17.742;HaplotypeScore=0.0000;MLEAC=4;MLEAF=0.667;MQ=59.66;MQ0=0;MQRankSum=0.614;QD=16.99;ReadPosRankSum=-0.321;SB=-1.553e+03;VQSLOD=6.9018;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,61:61:99:1944,168,0:127	1|0:44,26:70:99:627,0,1357:127	1|0:29,29:58:99:682,0,862:127
+10	132949760	rs10829924	A	C	684.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.328;DB;DP=215;Dels=0.00;FS=15.464;HaplotypeScore=1.3183;MLEAC=1;MLEAF=0.167;MQ=59.70;MQ0=0;MQRankSum=-1.053;QD=10.53;ReadPosRankSum=-2.893;SB=-2.920e+02;VQSLOD=5.8891;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|0:80,0:81:99:0,229,2999:127	0|0:69,0:69:99:0,175,2268:127	0|1:35,30:65:99:719,0,1046:127
+11	10741836	rs72853043	G	A	175.24	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=0.127;DB;DP=174;Dels=0.00;FS=7.087;HaplotypeScore=7.4618;MLEAC=1;MLEAF=0.167;MQ=55.72;MQ0=1;MQRankSum=-1.291;QD=3.44;ReadPosRankSum=-1.185;SB=-2.220e+02;VQSLOD=1.6095;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:78,0:78:99:0,105,1278:65	0|0:42,0:45:66:0,66,802:65	0|1:21,29:51:99:210,0,469:65
+11	19325064	rs793250	G	A	5752.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=5.080;DB;DP=203;Dels=0.00;FS=2.530;HaplotypeScore=0.8165;MLEAC=5;MLEAF=0.833;MQ=59.35;MQ0=0;MQRankSum=-0.061;QD=28.34;ReadPosRankSum=0.095;SB=-3.093e+03;VQSLOD=9.4617;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,71:71:99:2527,190,0:127	1|1:0,78:78:99:2626,205,0:127	1|0:32,22:54:99:599,0,768:127
+11	26026566	rs7942277	T	C	5414.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=176;Dels=0.00;FS=0.000;HaplotypeScore=0.2447;MLEAC=6;MLEAF=1.00;MQ=58.89;MQ0=0;QD=30.76;SB=-2.812e+03;VQSLOD=11.0501;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,53:53:99:1707,132,0:122	1|1:0,53:53:99:1581,123,0:122	1|1:0,70:70:99:2126,163,0:122
+11	35980461	rs263087	A	T	3494.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-0.701;DB;DP=186;Dels=0.00;FS=0.000;HaplotypeScore=2.9570;MLEAC=4;MLEAF=0.667;MQ=59.34;MQ0=0;MQRankSum=0.836;QD=18.79;ReadPosRankSum=0.007;SB=-1.535e+03;VQSLOD=7.6407;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:36,35:71:99:1001,0,1165:127	0|1:30,26:56:99:710,0,796:127	1|1:0,59:59:99:1783,144,0:127
+11	44985620	rs7106313	C	T	338.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=2.185;DB;DP=162;Dels=0.00;FS=4.840;HaplotypeScore=2.0046;MLEAC=1;MLEAF=0.167;MQ=56.94;MQ0=0;MQRankSum=2.019;QD=8.67;ReadPosRankSum=0.983;SB=-2.190e+02;VQSLOD=6.6624;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:79,0:80:99:0,174,2084:72	0|0:43,0:43:72:0,72,877:72	0|1:20,18:39:99:373,0,365:72
+11	55040918	rs187118824	A	T	1019.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.079;DB;DP=65;Dels=0.02;FS=12.723;HaplotypeScore=0.9771;MLEAC=2;MLEAF=0.333;MQ=56.64;MQ0=1;MQRankSum=0.323;QD=25.48;ReadPosRankSum=0.873;SB=-2.060e+01;VQSLOD=4.4200;culprit=DP	GT:AD:DP:GQ:PL:TP	0|1:2,9:11:48:325,0,48:50	0|0:24,1:25:63:0,63,833:50	1|0:6,22:28:51:733,0,51:50
+11	65339346	rs1194104	C	T	1804.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-2.465;DB;DP=189;Dels=0.00;FS=8.432;HaplotypeScore=2.2718;MLEAC=2;MLEAF=0.333;MQ=59.31;MQ0=0;MQRankSum=-0.120;QD=13.67;ReadPosRankSum=-0.306;SB=-1.061e+03;VQSLOD=7.9509;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:57,0:57:99:0,157,2050:127	0|1:30,35:65:99:781,0,822:127	0|1:23,44:67:99:1062,0,690:127
+11	75978490	rs655877	G	C	2986.25	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-0.846;DB;DP=127;Dels=0.00;FS=5.433;HaplotypeScore=0.2629;MLEAC=5;MLEAF=0.833;MQ=59.42;MQ0=0;MQRankSum=0.026;QD=23.51;ReadPosRankSum=0.168;SB=-1.613e+03;VQSLOD=7.0404;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,50:50:99:1405,111,0:101	1|1:0,45:46:99:1269,102,0:101	1|0:17,14:31:99:354,0,469:101
+11	86061661	rs11825046	T	C	6014.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-3.250;DB;DP=282;Dels=0.00;FS=0.960;HaplotypeScore=1.6440;MLEAC=4;MLEAF=0.667;MQ=59.57;MQ0=0;MQRankSum=1.057;QD=21.33;ReadPosRankSum=-1.763;SB=-3.081e+03;VQSLOD=7.3485;culprit=DP	GT:AD:DP:GQ:PL:TP	1|0:54,49:103:99:1498,0,1848:127	1|1:0,83:83:99:2924,223,0:127	0|1:44,52:96:99:1592,0,1380:127
+11	103989190	rs1545865	T	C	4915.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-4.030;DB;DP=219;Dels=0.00;FS=1.231;HaplotypeScore=1.2090;MLEAC=4;MLEAF=0.667;MQ=59.37;MQ0=0;MQRankSum=1.103;QD=22.44;ReadPosRankSum=0.773;SB=-2.213e+03;VQSLOD=8.9081;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|1:23,40:63:99:1203,0,669:127	0|1:36,52:88:99:1433,0,1136:127	1|1:0,68:68:99:2279,178,0:127
+11	113825129	rs1150234	G	A	2441.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=3.977;DB;DP=210;Dels=0.00;FS=0.000;HaplotypeScore=2.0700;MLEAC=3;MLEAF=0.500;MQ=59.49;MQ0=0;MQRankSum=0.877;QD=11.63;ReadPosRankSum=0.262;SB=-1.513e+03;VQSLOD=9.0378;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:30,33:63:99:881,0,774:127	0/1:46,33:80:99:726,0,1020:127	0/1:32,35:67:99:873,0,759:127
+11	123470819	rs1148095	T	C	6964.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-0.850;DB;DP=242;Dels=0.00;FS=1.477;HaplotypeScore=1.3868;MLEAC=5;MLEAF=0.833;MQ=59.25;MQ0=0;MQRankSum=-1.734;QD=28.78;ReadPosRankSum=-0.749;SB=-3.242e+03;VQSLOD=8.7854;culprit=MQRankSum	GT:AD:DP:GQ:PL:TP	1|1:0,92:92:99:3408,265,0:127	1|0:35,51:86:99:1520,0,1059:127	1|1:0,64:64:99:2036,157,0:127
+11	132780959	rs61906922	C	T	1342.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=6.221;DB;DP=263;Dels=0.00;FS=0.601;HaplotypeScore=1.8444;MLEAC=1;MLEAF=0.167;MQ=59.58;MQ0=0;MQRankSum=0.997;QD=15.25;ReadPosRankSum=-0.746;SB=-6.890e+02;VQSLOD=8.8133;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|0:87,0:87:99:0,250,2877:127	0|0:87,0:88:99:0,253,3009:127	0|1:43,45:88:99:1377,0,1138:127
+12	5922552	rs17786352	C	G	1874.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-7.386;DB;DP=231;Dels=0.00;FS=0.000;HaplotypeScore=0.3053;MLEAC=2;MLEAF=0.333;MQ=54.49;MQ0=0;MQRankSum=2.656;QD=13.11;ReadPosRankSum=1.042;SB=-9.400e+02;VQSLOD=4.7495;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:44,35:79:99:897,0,1383:127	1|0:28,36:64:99:1016,0,734:127	0|0:88,0:88:99:0,238,3004:127
+12	12560642	rs10772559	G	T	501.28	VQSRTrancheSNP99.00to99.90	AC=4;AF=0.667;AN=6;BaseQRankSum=0.747;DB;DP=229;Dels=0.04;FS=17.409;HaplotypeScore=19.6989;MLEAC=4;MLEAF=0.667;MQ=49.37;MQ0=0;MQRankSum=-3.656;QD=2.19;ReadPosRankSum=-5.397;SB=-2.196e+03;VQSLOD=-10.1992;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|1:0,66:66:24:273,24,0:24	1|0:29,45:74:99:148,0,702:24	1|0:33,46:80:99:122,0,781:24
+12	21328424	rs4149040	G	C	2565.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=0.888;DB;DP=252;Dels=0.00;FS=9.753;HaplotypeScore=0.6082;MLEAC=2;MLEAF=0.333;MQ=59.49;MQ0=0;MQRankSum=1.166;QD=15.18;ReadPosRankSum=0.966;SB=-1.181e+03;VQSLOD=7.5539;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:40,49:89:99:1534,0,1308:127	0|0:83,0:83:99:0,241,3117:127	1|0:45,35:80:99:1070,0,1402:127
+12	29935607	rs7305813	A	C	810.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=0.307;DB;DP=203;Dels=0.00;FS=14.326;HaplotypeScore=1.9820;MLEAC=1;MLEAF=0.167;MQ=59.57;MQ0=0;MQRankSum=-0.164;QD=12.86;ReadPosRankSum=-0.733;SB=-2.950e+02;VQSLOD=7.9009;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:71,0:71:99:0,193,2479:127	0|0:69,0:69:99:0,196,2464:127	0|1:28,35:63:99:845,0,847:127
+12	39118960	rs79977305	G	A	1330.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=6.307;DB;DP=263;Dels=0.00;FS=0.597;HaplotypeScore=1.4583;MLEAC=1;MLEAF=0.167;MQ=58.83;MQ0=0;MQRankSum=1.925;QD=13.57;ReadPosRankSum=-0.548;SB=-7.360e+02;VQSLOD=7.3733;culprit=MQRankSum	GT:AD:DP:GQ:PL:TP	0|0:81,0:81:99:0,241,2869:127	0|0:84,0:84:99:0,229,2712:127	0|1:51,47:98:99:1365,0,1343:127
+12	48120010	rs3829317	A	C	4015.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=1.659;DB;DP=162;Dels=0.00;FS=1.828;HaplotypeScore=2.1844;MLEAC=5;MLEAF=0.833;MQ=59.48;MQ0=0;MQRankSum=0.154;QD=24.78;ReadPosRankSum=0.482;SB=-2.240e+03;VQSLOD=8.1337;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,63:63:99:2024,163,0:110	1|0:24,27:51:99:550,0,540:110	1|1:0,48:48:99:1441,111,0:110
+12	58867437	rs140632614	G	T	829.25	VQSRTrancheSNP99.00to99.90	AC=4;AF=0.667;AN=6;BaseQRankSum=1.409;DB;DP=144;Dels=0.00;FS=68.612;HaplotypeScore=0.8667;MLEAC=4;MLEAF=0.667;MQ=35.15;MQ0=16;MQRankSum=-7.440;QD=5.76;ReadPosRankSum=-0.245;SB=-1.011e+00;VQSLOD=-16.4891;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:34,24:58:99:291,0,1100:44	0|1:42,8:50:61:61,0,1319:44	1|1:1,35:36:45:519,45,0:44
+12	79238948	rs10778234	C	T	3719.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=8.187;DB;DP=241;Dels=0.00;FS=7.073;HaplotypeScore=0.2447;MLEAC=3;MLEAF=0.500;MQ=59.41;MQ0=0;MQRankSum=-0.381;QD=15.43;ReadPosRankSum=0.579;SB=-1.864e+03;VQSLOD=7.8136;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:42,35:77:99:1049,0,1213:127	0/1:37,32:69:99:988,0,957:127	0/1:42,53:95:99:1682,0,1062:127
+12	90856710	rs825945	T	C	1096.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-6.342;DB;DP=193;Dels=0.00;FS=2.164;HaplotypeScore=0.0000;MLEAC=2;MLEAF=0.333;MQ=59.64;MQ0=0;MQRankSum=2.071;QD=9.70;ReadPosRankSum=-1.697;SB=-5.710e+02;VQSLOD=7.3118;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:80,0:80:99:0,232,3042:127	0|1:30,21:51:99:511,0,921:127	0|1:36,26:62:99:624,0,1085:127
+12	101460237	rs7965836	C	T	3485.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-2.070;DB;DP=247;Dels=0.00;FS=2.895;HaplotypeScore=0.6556;MLEAC=3;MLEAF=0.500;MQ=59.83;MQ0=0;MQRankSum=-0.655;QD=14.11;ReadPosRankSum=-0.983;SB=-1.581e+03;VQSLOD=8.4872;culprit=MQ	GT:AD:DP:GQ:PL:TP	0/1:40,43:83:99:1287,0,1179:127	0/1:44,36:80:99:1068,0,1363:127	0/1:43,41:84:99:1130,0,1321:127
+12	112830546	rs150699511	C	A	487.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.014;DB;DP=179;Dels=0.00;FS=0.860;HaplotypeScore=2.3392;MLEAC=1;MLEAF=0.167;MQ=59.16;MQ0=0;MQRankSum=1.141;QD=8.86;ReadPosRankSum=0.950;SB=-2.870e+02;VQSLOD=8.1138;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:62,0:62:99:0,166,2141:127	0|1:34,21:55:99:522,0,751:127	0|0:62,0:62:99:0,141,1808:127
+12	122942070	rs10744217	A	G	1812.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.353;DB;DP=179;Dels=0.00;FS=0.663;HaplotypeScore=1.4184;MLEAC=3;MLEAF=0.500;MQ=58.69;MQ0=0;MQRankSum=0.992;QD=15.10;ReadPosRankSum=1.081;SB=-5.860e+02;VQSLOD=8.4750;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:35,36:71:99:762,0,1100:92	1|1:0,48:49:93:1095,93,0:92	0|0:59,0:59:99:0,120,1560:92
+12	130522866	rs1613499	C	T	3975.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=130;Dels=0.00;FS=0.000;HaplotypeScore=0.6332;MLEAC=6;MLEAF=1.00;MQ=59.11;MQ0=0;QD=30.58;SB=-1.386e+03;VQSLOD=10.2250;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,57:57:99:1939,144,0:73	1|1:0,34:34:75:990,75,0:73	1|1:0,39:39:78:1046,78,0:73
+13	21520045	rs9509464	A	C	5103.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=195;Dels=0.00;FS=0.000;HaplotypeScore=1.6144;MLEAC=6;MLEAF=1.00;MQ=47.37;MQ0=0;QD=26.17;SB=-2.582e+03;VQSLOD=5.1918;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:0,71:71:99:2106,186,0:98	1|1:0,78:78:99:1856,162,0:98	1|1:0,46:46:99:1141,99,0:98
+13	28463938	rs954750	C	T	2740.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=3.206;DB;DP=242;Dels=0.00;FS=0.000;HaplotypeScore=4.0078;MLEAC=2;MLEAF=0.333;MQ=59.46;MQ0=0;MQRankSum=0.880;QD=16.61;ReadPosRankSum=-0.617;SB=-1.312e+03;VQSLOD=6.7692;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:40,43:83:99:1362,0,1242:127	1|0:35,47:82:99:1417,0,1010:127	0|0:76,0:77:99:0,205,2635:127
+13	37484693	rs1571317	T	C	971.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.315;DB;DP=229;Dels=0.00;FS=3.052;HaplotypeScore=0.6603;MLEAC=1;MLEAF=0.167;MQ=58.51;MQ0=0;MQRankSum=1.885;QD=12.78;ReadPosRankSum=-0.343;SB=-5.750e+02;VQSLOD=7.3064;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:94,0:94:99:0,253,3258:127	0|1:35,41:76:99:1006,0,924:127	0|0:59,0:59:99:0,147,1872:127
+13	46407442	rs11147990	G	A	2668.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=1.227;DB;DP=199;Dels=0.00;FS=0.530;HaplotypeScore=1.8025;MLEAC=3;MLEAF=0.500;MQ=58.99;MQ0=0;MQRankSum=0.023;QD=20.21;ReadPosRankSum=-0.452;SB=-1.651e+03;VQSLOD=9.2006;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|1:36,33:69:99:994,0,1056:127	0|0:67,0:67:99:0,141,1821:127	1|1:0,63:63:99:1719,135,0:127
+13	56456878	rs2997102	C	A	9454.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=257;Dels=0.00;FS=0.000;HaplotypeScore=0.9537;MLEAC=6;MLEAF=1.00;MQ=59.57;MQ0=0;QD=36.79;SB=-4.826e+03;VQSLOD=11.5149;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,99:99:99:3692,280,0:127	1|1:0,88:88:99:3239,253,0:127	1|1:0,70:70:99:2523,193,0:127
+13	65275154	rs359338	G	A	1963.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.733;DB;DP=173;Dels=0.00;FS=3.628;HaplotypeScore=0.9480;MLEAC=2;MLEAF=0.333;MQ=59.49;MQ0=0;MQRankSum=-0.676;QD=14.54;ReadPosRankSum=0.399;SB=-1.054e+03;VQSLOD=8.4489;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:31,28:59:99:883,0,990:108	1|0:39,37:76:99:1119,0,1112:108	0|0:38,0:38:99:0,108,1390:108
+13	74611546	rs73214804	C	T	639.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-0.487;DB;DP=164;Dels=0.00;FS=0.000;HaplotypeScore=1.4071;MLEAC=1;MLEAF=0.167;MQ=58.95;MQ0=0;MQRankSum=0.902;QD=11.21;ReadPosRankSum=-0.541;SB=-3.000e+02;VQSLOD=8.8824;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:53,0:53:99:0,135,1773:110	0|0:53,1:54:99:0,111,1440:110	0|1:24,33:57:99:674,0,388:110
+13	83670546	.	G	A	169.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=5.301;DP=178;Dels=0.00;FS=0.000;HaplotypeScore=36.5059;MLEAC=2;MLEAF=0.333;MQ=42.20;MQ0=11;MQRankSum=-6.654;QD=1.38;ReadPosRankSum=-0.761;SB=-1.340e+02;VQSLOD=-20.4053;culprit=QD	GT:AD:DP:GQ:PL:TP	0|1:37,16:53:99:139,0,523:90	0|0:51,4:55:91:0,91,1393:90	1|0:58,12:70:69:69,0,1214:90
+13	92742124	rs2148446	G	A	1884.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-2.340;DB;DP=213;Dels=0.00;FS=0.000;HaplotypeScore=0.3156;MLEAC=2;MLEAF=0.333;MQ=59.37;MQ0=0;MQRankSum=-2.935;QD=12.99;ReadPosRankSum=-0.579;SB=-9.540e+02;VQSLOD=7.2833;culprit=MQRankSum	GT:AD:DP:GQ:PL:TP	0|1:38,38:76:99:1130,0,1190:127	0|0:68,0:68:99:0,190,2454:127	1|0:38,31:69:99:793,0,1094:127
+13	101976707	rs527328	A	T	9240.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=259;Dels=0.00;FS=0.000;HaplotypeScore=0.2447;MLEAC=6;MLEAF=1.00;MQ=53.28;MQ0=0;QD=35.68;SB=-4.696e+03;VQSLOD=7.5241;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,92:92:99:3410,262,0:127	1|1:0,88:88:99:3195,247,0:127	1|1:1,78:79:99:2635,202,0:127
+13	109990322	rs7328109	T	C	7198.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-2.487;DB;DP=245;Dels=0.00;FS=5.887;HaplotypeScore=1.8793;MLEAC=5;MLEAF=0.833;MQ=59.60;MQ0=0;MQRankSum=-0.236;QD=29.38;ReadPosRankSum=0.136;SB=-3.593e+03;VQSLOD=8.8925;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,79:79:99:2825,220,0:127	1|0:33,54:87:99:1591,0,933:127	1|1:0,79:79:99:2782,214,0:127
+14	20313371	rs10137604	A	C	2154.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-4.894;DB;DP=255;Dels=0.00;FS=0.000;HaplotypeScore=2.0503;MLEAC=2;MLEAF=0.333;MQ=56.32;MQ0=1;MQRankSum=1.608;QD=13.72;ReadPosRankSum=0.126;SB=-1.124e+03;VQSLOD=5.6223;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:40,48:88:99:1426,0,1229:127	0|0:98,0:98:99:0,268,3527:127	1|0:43,26:69:99:767,0,1284:127
+14	38160457	rs2181345	A	C	4683.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=169;Dels=0.00;FS=0.000;HaplotypeScore=2.5449;MLEAC=6;MLEAF=1.00;MQ=59.00;MQ0=0;QD=27.71;SB=-2.390e+03;VQSLOD=9.9888;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,56:56:99:1818,141,0:107	1|1:0,58:58:99:1523,123,0:107	1|1:0,53:55:99:1342,108,0:107
+14	47568119	rs1952206	T	C	3399.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-9.721;DB;DP=230;Dels=0.00;FS=0.483;HaplotypeScore=0.6577;MLEAC=3;MLEAF=0.500;MQ=59.54;MQ0=0;MQRankSum=-0.479;QD=14.78;ReadPosRankSum=1.261;SB=-1.667e+03;VQSLOD=9.1589;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0/1:41,43:84:99:1239,0,1315:127	0/1:28,43:71:99:1178,0,816:127	0/1:40,35:75:99:982,0,1314:127
+14	56951735	rs1189276	G	A	6939.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=3.878;DB;DP=235;Dels=0.00;FS=9.373;HaplotypeScore=0.9063;MLEAC=5;MLEAF=0.833;MQ=59.52;MQ0=0;MQRankSum=-0.550;QD=29.53;ReadPosRankSum=1.104;SB=-3.438e+03;VQSLOD=8.7592;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:1,92:93:99:3558,274,0:127	1|1:0,60:60:99:2120,165,0:127	1|0:40,42:82:99:1261,0,1194:127
+14	68051087	rs11628035	G	A	4028.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=3.928;DB;DP=236;Dels=0.00;FS=8.184;HaplotypeScore=1.3296;MLEAC=3;MLEAF=0.500;MQ=58.83;MQ0=0;MQRankSum=1.834;QD=25.49;ReadPosRankSum=2.590;SB=-1.989e+03;VQSLOD=6.7911;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|0:38,39:77:99:1265,0,1112:127	1|1:0,81:81:99:2763,214,0:127	0|0:78,0:78:99:0,208,2673:127
+14	87263523	rs2542229	A	C	8104.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=239;Dels=0.00;FS=0.000;HaplotypeScore=0.6305;MLEAC=6;MLEAF=1.00;MQ=59.17;MQ0=0;QD=33.91;SB=-4.393e+03;VQSLOD=11.3001;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,77:77:99:2810,214,0:127	1|1:0,85:85:99:2877,223,0:127	1|1:0,77:77:99:2417,187,0:127
+14	96490389	rs72702859	C	G	3394.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-6.529;DB;DP=264;Dels=0.00;FS=2.746;HaplotypeScore=3.1300;MLEAC=3;MLEAF=0.500;MQ=59.49;MQ0=0;MQRankSum=-1.258;QD=18.25;ReadPosRankSum=-0.961;SB=-1.966e+03;VQSLOD=6.3356;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:34,52:86:99:1358,0,886:127	1|1:0,100:100:99:2036,180,0:127	0|0:78,0:78:99:0,184,2393:127
+14	106085773	rs2955055	C	T	2115.26	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=-0.746;DB;DP=172;Dels=0.00;FS=18.420;HaplotypeScore=2.9489;MLEAC=3;MLEAF=0.500;MQ=35.68;MQ0=18;MQRankSum=3.251;QD=12.30;ReadPosRankSum=0.100;SB=-5.530e+02;VQSLOD=1.2866;culprit=MQ	GT:AD:DP:GQ:PL:TP	0/1:32,33:65:99:600,0,554:80	0/1:30,42:72:99:1001,0,400:80	0/1:12,23:35:80:553,0,80:80
+15	23743658	rs142070302	T	A	1007.26	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.164;DB;DP=408;Dels=0.00;FS=166.853;HaplotypeScore=53.5447;MLEAC=3;MLEAF=0.500;MQ=38.96;MQ0=14;MQRankSum=-6.283;QD=2.47;ReadPosRankSum=2.486;SB=-1.079e-02;VQSLOD=-304.7942;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:104,39:143:99:365,0,2802:45	0/1:99,40:139:99:636,0,2335:45	0/1:97,28:126:45:45,0,2324:45
+15	42065422	rs2925337	A	C	5231.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=176;Dels=0.00;FS=0.000;HaplotypeScore=0.0000;MLEAC=6;MLEAF=1.00;MQ=59.68;MQ0=0;QD=29.72;SB=-3.112e+03;VQSLOD=11.0322;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,54:54:99:1770,138,0:127	1|1:0,68:68:99:1750,138,0:127	1|1:0,54:54:99:1711,132,0:127
+15	53677501	.	T	G	770.26	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=-8.969;DP=210;Dels=0.00;FS=347.467;HaplotypeScore=2.0911;MLEAC=3;MLEAF=0.500;MQ=58.31;MQ0=0;MQRankSum=0.438;QD=3.67;ReadPosRankSum=-6.409;SB=-5.499e-03;VQSLOD=-307.0964;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:59,20:79:94:94,0,1389:94	0/1:41,31:72:99:438,0,721:94	0/1:37,21:59:99:277,0,521:94
+15	62088952	rs35033959	A	T	3546.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.220;DB;DP=241;Dels=0.00;FS=14.286;HaplotypeScore=0.2774;MLEAC=3;MLEAF=0.500;MQ=59.77;MQ0=0;MQRankSum=-1.969;QD=14.71;ReadPosRankSum=0.341;SB=-1.970e+03;VQSLOD=6.3785;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:45,44:89:99:1265,0,1533:127	0/1:34,38:72:99:1133,0,1137:127	0/1:41,39:80:99:1148,0,1303:127
+15	71657506	.	A	G	140.40	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=-1.611;DP=133;Dels=0.00;FS=35.593;HaplotypeScore=4.0622;MLEAC=2;MLEAF=0.333;MQ=51.29;MQ0=1;MQRankSum=-3.344;QD=1.53;ReadPosRankSum=-3.999;SB=-5.015e+01;VQSLOD=-4.8050;culprit=QD	GT:AD:DP:GQ:PL:TP	1|0:46,11:57:93:93,0,851:15	1|0:23,12:35:86:86,0,299:15	0|0:33,8:41:15:0,15,503:15
+15	92857342	rs12101550	A	G	2734.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-7.995;DB;DP=226;Dels=0.00;FS=3.761;HaplotypeScore=1.5682;MLEAC=3;MLEAF=0.500;MQ=59.41;MQ0=0;MQRankSum=0.761;QD=12.10;ReadPosRankSum=-0.587;SB=-1.469e+03;VQSLOD=9.1510;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:45,37:82:99:853,0,1356:127	0/1:29,40:69:99:966,0,852:127	0/1:38,37:75:99:954,0,1085:127
+15	100799787	rs4965610	C	T	2133.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=8.373;DB;DP=230;Dels=0.00;FS=1.037;HaplotypeScore=0.5427;MLEAC=3;MLEAF=0.500;MQ=58.84;MQ0=0;MQRankSum=0.169;QD=9.28;ReadPosRankSum=-0.098;SB=-1.328e+03;VQSLOD=7.8802;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:40,36:76:99:948,0,701:127	0/1:45,38:83:99:761,0,635:127	0/1:35,36:71:99:463,0,706:127
+16	5754758	rs11644707	C	T	1012.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.777;DB;DP=161;Dels=0.00;FS=0.000;HaplotypeScore=2.4572;MLEAC=2;MLEAF=0.333;MQ=59.71;MQ0=0;MQRankSum=0.699;QD=9.64;ReadPosRankSum=2.624;SB=-5.580e+02;VQSLOD=7.0970;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|1:31,26:57:99:627,0,943:125	0|0:56,0:56:99:0,126,1597:125	1|0:32,16:48:99:424,0,785:125
+16	11397080	rs1019552	T	C	2295.44	PASS	AC=6;AF=1.00;AN=6;DB;DP=169;Dels=0.01;FS=0.000;HaplotypeScore=8.2178;MLEAC=6;MLEAF=1.00;MQ=59.32;MQ0=0;QD=13.58;SB=-2.379e+03;VQSLOD=4.3801;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,71:71:96:1220,96,0:9	1|1:0,48:48:9:78,9,0:9	1|1:0,48:48:81:1035,81,0:9
+16	30509723	rs7193693	A	G	497.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-4.054;DB;DP=167;Dels=0.00;FS=0.000;HaplotypeScore=1.1605;MLEAC=1;MLEAF=0.167;MQ=57.89;MQ0=0;MQRankSum=-0.545;QD=9.38;ReadPosRankSum=0.541;SB=-2.410e+02;VQSLOD=8.4265;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:57,0:57:99:0,153,2009:101	0|0:57,0:57:99:0,102,1304:101	0|1:26,27:53:99:532,0,526:101
+16	34610294	rs72812776	C	T	603.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.361;DB;DP=270;Dels=0.00;FS=6.065;HaplotypeScore=3.1650;MLEAC=1;MLEAF=0.167;MQ=59.66;MQ0=0;MQRankSum=1.603;QD=7.83;ReadPosRankSum=0.296;SB=-2.820e+02;VQSLOD=3.3685;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:123,0:123:99:0,343,4443:127	0|0:69,1:70:99:0,184,2397:127	0|1:48,29:77:99:638,0,1483:127
+16	55910673	rs17265788	G	C	2345.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=2.657;DB;DP=208;Dels=0.00;FS=3.162;HaplotypeScore=1.9213;MLEAC=3;MLEAF=0.500;MQ=59.67;MQ0=0;MQRankSum=-0.333;QD=16.63;ReadPosRankSum=-0.425;SB=-1.468e+03;VQSLOD=8.3665;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|1:33,33:66:99:769,0,761:122	0|0:67,0:67:99:0,123,1506:122	1|1:0,75:75:99:1621,132,0:122
+16	65776985	rs72784548	T	C	3527.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=5.439;DB;DP=195;Dels=0.00;FS=1.228;HaplotypeScore=0.8795;MLEAC=4;MLEAF=0.667;MQ=58.78;MQ0=0;MQRankSum=1.630;QD=18.09;ReadPosRankSum=1.358;SB=-1.904e+03;VQSLOD=7.6763;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|1:0,68:68:99:2351,181,0:127	1|0:33,28:61:99:586,0,710:127	1|0:31,35:66:99:590,0,468:127
+16	83153777	rs4395063	T	C	3143.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-1.771;DB;DP=205;Dels=0.00;FS=1.805;HaplotypeScore=1.0370;MLEAC=4;MLEAF=0.667;MQ=59.55;MQ0=0;MQRankSum=-1.380;QD=15.33;ReadPosRankSum=0.424;SB=-2.104e+03;VQSLOD=8.8241;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:31,31:62:99:867,0,865:127	0|1:45,28:73:99:412,0,801:127	1|1:0,70:70:99:1906,150,0:127
+16	88914235	rs12932521	C	T	329.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=1.978;DB;DP=114;Dels=0.00;FS=1.931;HaplotypeScore=0.9402;MLEAC=1;MLEAF=0.167;MQ=58.60;MQ0=0;MQRankSum=0.854;QD=7.84;ReadPosRankSum=-0.339;SB=-2.970e+02;VQSLOD=8.1036;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:43,0:43:99:0,102,1192:39	0|0:29,0:29:39:0,39,468:39	0|1:15,26:42:99:364,0,105:39
+17	5764764	rs2309483	C	G	4071.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=4.237;DB;DP=154;Dels=0.00;FS=0.000;HaplotypeScore=4.4102;MLEAC=5;MLEAF=0.833;MQ=58.88;MQ0=0;MQRankSum=0.456;QD=26.44;ReadPosRankSum=0.385;SB=-1.791e+03;VQSLOD=6.9458;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,61:62:99:2049,165,0:107	1|0:23,26:49:99:648,0,482:107	1|1:0,43:43:99:1374,108,0:107
+17	14096866	.	C	T	489.26	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=4.537;DP=181;Dels=0.00;FS=33.896;HaplotypeScore=1.0782;MLEAC=3;MLEAF=0.500;MQ=24.52;MQ0=71;MQRankSum=0.353;QD=2.70;ReadPosRankSum=0.385;SB=-1.450e+02;VQSLOD=-6.2174;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:48,17:66:99:228,0,822:63	0/1:42,16:58:99:237,0,389:63	0/1:44,13:57:63:63,0,523:63
+17	21547285	rs62049731	A	C	1322.26	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=-0.987;DB;DP=569;Dels=0.00;FS=2.322;HaplotypeScore=42.4511;MLEAC=3;MLEAF=0.500;MQ=44.59;MQ0=24;MQRankSum=-6.240;QD=2.32;ReadPosRankSum=-5.171;SB=-6.369e+02;VQSLOD=-39.5319;culprit=DP	GT:AD:DP:GQ:PL:TP	0/1:146,28:174:99:217,0,4187:127	0/1:162,56:218:99:804,0,4298:127	0/1:139,38:177:99:340,0,3842:127
+17	33513649	rs3744366	A	G	3743.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-3.729;DB;DP=213;Dels=0.00;FS=0.526;HaplotypeScore=2.9053;MLEAC=4;MLEAF=0.667;MQ=58.99;MQ0=0;MQRankSum=-0.152;QD=17.57;ReadPosRankSum=0.530;SB=-2.067e+03;VQSLOD=8.0191;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:44,40:84:99:1083,0,1341:127	1|1:0,67:67:99:2074,162,0:127	0|1:37,24:62:99:586,0,1015:127
+17	44809197	rs116187585	A	G	8703.01	PASS	AC=6;AF=1.00;AN=6;BaseQRankSum=-0.554;DB;DP=254;Dels=0.00;FS=3.487;HaplotypeScore=4.0582;MLEAC=6;MLEAF=1.00;MQ=59.58;MQ0=0;MQRankSum=1.677;QD=34.26;ReadPosRankSum=1.483;SB=-4.228e+03;VQSLOD=6.6144;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:1,96:97:99:3470,268,0:127	1|1:0,82:84:99:2846,220,0:127	1|1:0,73:73:99:2387,184,0:127
+17	55158811	rs7217371	G	A	2849.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=8.616;DB;DP=206;Dels=0.00;FS=0.511;HaplotypeScore=1.0970;MLEAC=3;MLEAF=0.500;MQ=59.66;MQ0=0;MQRankSum=0.103;QD=13.83;ReadPosRankSum=0.958;SB=-1.448e+03;VQSLOD=9.9440;culprit=MQ	GT:AD:DP:GQ:PL:TP	0/1:40,31:72:99:982,0,1147:127	0/1:35,40:75:99:1236,0,984:127	0/1:32,27:59:99:670,0,882:127
+17	66991216	rs61697543	T	C	738.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-4.530;DB;DP=252;Dels=0.00;FS=1.490;HaplotypeScore=1.7074;MLEAC=1;MLEAF=0.167;MQ=59.36;MQ0=0;MQRankSum=0.771;QD=10.86;ReadPosRankSum=-0.724;SB=-3.930e+02;VQSLOD=8.8864;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:95,0:95:99:0,268,3511:127	0|0:89,0:89:99:0,235,3058:127	0|1:33,35:68:99:773,0,965:127
+18	1629264	rs5025369	A	G	86.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=-1.739;DB;DP=149;Dels=0.00;FS=15.359;HaplotypeScore=7.1355;MLEAC=2;MLEAF=0.333;MQ=39.72;MQ0=11;MQRankSum=-2.543;QD=0.81;ReadPosRankSum=0.088;SB=-3.380e+01;VQSLOD=-6.2052;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:51,15:66:50:50,0,1143:49	0|0:37,5:42:81:0,81,941:49	1|0:35,6:41:75:75,0,818:49
+18	10010426	rs4797393	T	C	4197.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=0.425;DB;DP=210;Dels=0.00;FS=1.132;HaplotypeScore=1.2660;MLEAC=4;MLEAF=0.667;MQ=59.43;MQ0=0;MQRankSum=-2.916;QD=19.99;ReadPosRankSum=0.379;SB=-2.001e+03;VQSLOD=7.0312;culprit=MQRankSum	GT:AD:DP:GQ:PL:TP	1|1:0,65:65:99:2247,181,0:127	1|0:35,39:75:99:1170,0,967:127	1|0:41,29:70:99:780,0,1052:127
+18	20025030	rs4800406	A	G	1113.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.700;DB;DP=230;Dels=0.00;FS=0.000;HaplotypeScore=1.6804;MLEAC=1;MLEAF=0.167;MQ=59.56;MQ0=0;MQRankSum=1.643;QD=12.65;ReadPosRankSum=-1.166;SB=-6.160e+02;VQSLOD=8.6574;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:78,0:78:99:0,223,2978:127	0|1:46,42:88:99:1148,0,1460:127	0|0:64,0:64:99:0,175,2303:127
+18	41449098	rs2045671	C	T	8380.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=237;Dels=0.00;FS=0.000;HaplotypeScore=1.3482;MLEAC=6;MLEAF=1.00;MQ=59.65;MQ0=0;QD=35.36;SB=-4.462e+03;VQSLOD=11.6464;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,76:76:99:2756,214,0:127	1|1:0,75:75:99:2635,202,0:127	1|1:0,86:86:99:2989,229,0:127
+18	50973169	rs11661305	A	G	5320.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=2.753;DB;DP=196;Dels=0.00;FS=2.568;HaplotypeScore=1.1306;MLEAC=5;MLEAF=0.833;MQ=57.73;MQ0=0;MQRankSum=0.246;QD=27.14;ReadPosRankSum=0.186;SB=-2.411e+03;VQSLOD=7.5009;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:0,74:74:99:2621,202,0:127	1|0:30,37:67:99:1009,0,842:127	1|1:0,55:55:99:1690,132,0:127
+18	67950442	rs62091919	T	G	1779.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-2.517;DB;DP=195;Dels=0.00;FS=0.562;HaplotypeScore=1.5454;MLEAC=2;MLEAF=0.333;MQ=59.26;MQ0=0;MQRankSum=0.006;QD=12.89;ReadPosRankSum=-0.268;SB=-9.170e+02;VQSLOD=9.6268;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|1:40,32:72:99:967,0,1318:127	0|0:55,2:57:99:0,141,1865:127	1|0:36,30:66:99:851,0,1042:127
+18	75204349	rs9948476	C	T	646.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=1.965;DB;DP=185;Dels=0.00;FS=0.817;HaplotypeScore=1.3995;MLEAC=1;MLEAF=0.167;MQ=59.35;MQ0=0;MQRankSum=0.276;QD=10.95;ReadPosRankSum=-0.158;SB=-3.210e+02;VQSLOD=9.3748;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:65,0:66:99:0,168,2026:127	0|0:60,0:60:99:0,147,1768:127	0|1:34,25:59:99:681,0,893:127
+19	3739001	rs56138006	C	T	976.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=4.634;DB;DP=118;Dels=0.00;FS=3.676;HaplotypeScore=1.4356;MLEAC=2;MLEAF=0.333;MQ=58.66;MQ0=0;MQRankSum=0.753;QD=11.22;ReadPosRankSum=1.107;SB=-6.380e+02;VQSLOD=7.4541;culprit=QD	GT:AD:DP:GQ:PL:TP	0|1:30,22:52:99:612,0,559:45	0|0:31,0:31:45:0,45,527:45	1|0:12,23:35:93:403,0,93:45
+19	11730690	rs4804613	C	T	2578.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=5.057;DB;DP=197;Dels=0.00;FS=0.529;HaplotypeScore=0.0000;MLEAC=3;MLEAF=0.500;MQ=59.36;MQ0=0;MQRankSum=0.416;QD=13.09;ReadPosRankSum=-0.554;SB=-1.389e+03;VQSLOD=9.3908;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:21,26:47:99:586,0,623:127	0/1:42,45:87:99:1192,0,1055:127	0/1:32,30:63:99:839,0,932:127
+19	20782710	rs10413568	T	C	6304.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=203;Dels=0.00;FS=0.000;HaplotypeScore=0.6919;MLEAC=6;MLEAF=1.00;MQ=59.56;MQ0=0;QD=31.05;SB=-2.367e+03;VQSLOD=10.7708;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,74:74:99:2375,214,0:127	1|1:0,80:80:99:2480,217,0:127	1|1:0,49:49:99:1449,129,0:127
+19	28150587	rs4404191	A	G	7419.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=209;Dels=0.00;FS=0.000;HaplotypeScore=0.2447;MLEAC=6;MLEAF=1.00;MQ=59.61;MQ0=0;QD=35.50;SB=-3.717e+03;VQSLOD=11.9901;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,70:70:99:2584,202,0:127	1|1:0,74:74:99:2509,193,0:127	1|1:0,65:65:99:2326,181,0:127
+19	37226152	rs3108217	G	C	2076.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=0.215;DB;DP=145;Dels=0.00;FS=2.159;HaplotypeScore=0.5869;MLEAC=4;MLEAF=0.667;MQ=58.59;MQ0=0;MQRankSum=1.160;QD=14.32;ReadPosRankSum=-0.725;SB=-1.027e+03;VQSLOD=7.4915;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:25,30:55:99:789,0,709:63	1|1:0,29:29:63:772,63,0:63	0|1:35,25:61:99:557,0,789:63
+19	54644879	rs36636	G	A	1790.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=2.505;DB;DP=187;Dels=0.00;FS=4.408;HaplotypeScore=1.5043;MLEAC=2;MLEAF=0.333;MQ=59.51;MQ0=0;MQRankSum=-1.266;QD=13.88;ReadPosRankSum=-1.226;SB=-1.081e+03;VQSLOD=7.8045;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:30,27:57:99:811,0,726:127	1|0:31,41:72:99:1018,0,730:127	0|0:58,0:58:99:0,144,1815:127
+20	3199373	rs2422861	G	A	896.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.452;DB;DP=135;Dels=0.00;FS=0.664;HaplotypeScore=2.8371;MLEAC=3;MLEAF=0.500;MQ=58.47;MQ0=0;MQRankSum=-0.217;QD=6.64;ReadPosRankSum=0.111;SB=-6.080e+02;VQSLOD=7.7118;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:32,24:56:99:472,0,640:127	0/1:25,15:40:99:229,0,603:127	0/1:20,19:39:99:234,0,379:127
+20	12166868	rs7272217	C	T	926.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.444;DB;DP=200;Dels=0.00;FS=2.627;HaplotypeScore=0.8413;MLEAC=1;MLEAF=0.167;MQ=58.94;MQ0=0;MQRankSum=-1.362;QD=13.23;ReadPosRankSum=-1.055;SB=-4.040e+02;VQSLOD=7.6219;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:68,0:68:99:0,190,2486:127	0|0:62,0:62:99:0,169,2218:127	0|1:33,37:70:99:961,0,870:127
+20	21523349	rs73127889	A	G	2286.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-6.469;DB;DP=253;Dels=0.00;FS=3.735;HaplotypeScore=1.5402;MLEAC=2;MLEAF=0.333;MQ=59.31;MQ0=0;MQRankSum=0.821;QD=13.69;ReadPosRankSum=1.510;SB=-8.640e+02;VQSLOD=7.8358;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|1:44,48:92:99:1319,0,1356:127	0|0:86,0:86:99:0,235,2994:127	1|0:37,38:75:99:1006,0,1111:127
+20	29566945	rs6119037	C	G	1427.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=-3.826;DB;DP=271;Dels=0.00;FS=1.151;HaplotypeScore=2.7598;MLEAC=2;MLEAF=0.333;MQ=47.42;MQ0=21;MQRankSum=2.420;QD=8.06;ReadPosRankSum=0.363;SB=-7.560e+02;VQSLOD=1.7908;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:59,32:91:99:782,0,1210:127	1|0:55,31:86:99:684,0,1422:127	0|0:94,0:94:99:0,208,2592:127
+20	41560394	rs761027	A	G	5634.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-4.444;DB;DP=222;Dels=0.00;FS=0.829;HaplotypeScore=1.1428;MLEAC=5;MLEAF=0.833;MQ=59.60;MQ0=0;MQRankSum=0.392;QD=25.38;ReadPosRankSum=-0.064;SB=-3.048e+03;VQSLOD=10.0362;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,72:72:99:2228,187,0:127	1|1:0,82:82:99:2435,211,0:127	1|0:25,43:68:99:971,0,567:127
+20	51353834	rs241795	G	A	6115.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=7.909;DB;DP=268;Dels=0.00;FS=0.000;HaplotypeScore=0.2447;MLEAC=4;MLEAF=0.667;MQ=59.38;MQ0=0;MQRankSum=-0.518;QD=22.82;ReadPosRankSum=-0.253;SB=-3.328e+03;VQSLOD=8.3999;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:46,54:100:99:1663,0,1247:127	1|1:0,91:91:99:3189,247,0:127	0|1:36,41:77:99:1263,0,901:127
+20	59978756	rs1892320	T	C	3967.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-2.562;DB;DP=206;Dels=0.00;FS=14.249;HaplotypeScore=1.3838;MLEAC=4;MLEAF=0.667;MQ=59.89;MQ0=0;MQRankSum=-0.289;QD=19.26;ReadPosRankSum=0.221;SB=-2.292e+03;VQSLOD=7.6238;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:0,72:72:99:2337,181,0:127	1|0:38,29:67:99:743,0,1180:127	1|0:31,36:67:99:887,0,873:127
+21	10750991	.	C	T	602.26	VQSRTrancheSNP99.90to100.00	AC=2;AF=0.333;AN=6;BaseQRankSum=10.103;DP=735;DS;Dels=0.00;FS=27.020;HaplotypeScore=107.2731;MLEAC=2;MLEAF=0.333;MQ=44.40;MQ0=2;MQRankSum=-14.560;QD=1.24;ReadPosRankSum=0.063;SB=-8.430e+02;VQSLOD=-100.9480;culprit=DP	GT:AD:DP:GQ:PL:TP	1|0:164,78:243:99:357,0,5193:103	1|0:187,55:242:99:284,0,5252:103	0|0:199,50:250:99:0,103,5864:103
+21	18433036	rs969905	A	G	781.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-6.610;DB;DP=229;Dels=0.00;FS=2.230;HaplotypeScore=1.2866;MLEAC=1;MLEAF=0.167;MQ=59.55;MQ0=0;MQRankSum=0.300;QD=10.15;ReadPosRankSum=-0.384;SB=-4.990e+02;VQSLOD=9.5768;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:62,0:63:99:0,181,2380:127	0|0:89,0:89:99:0,244,3177:127	0|1:39,38:77:99:816,0,1256:127
+21	25702950	rs2260875	C	G	3462.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.156;DB;DP=237;Dels=0.00;FS=2.900;HaplotypeScore=1.5444;MLEAC=3;MLEAF=0.500;MQ=59.04;MQ0=0;MQRankSum=0.386;QD=14.61;ReadPosRankSum=-1.455;SB=-1.683e+03;VQSLOD=8.0501;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0/1:37,40:77:99:1282,0,1101:127	0/1:43,36:79:99:1114,0,1317:127	0/1:45,36:81:99:1066,0,1329:127
+21	34546711	rs11701692	T	C	1030.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-1.884;DB;DP=152;Dels=0.00;FS=8.325;HaplotypeScore=1.9325;MLEAC=2;MLEAF=0.333;MQ=57.61;MQ0=0;MQRankSum=-0.291;QD=10.51;ReadPosRankSum=0.258;SB=-4.600e+02;VQSLOD=6.4601;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:35,25:61:99:574,0,1137:127	1|0:19,18:37:99:495,0,498:127	0|0:54,0:54:99:0,141,1811:127
+21	42833227	rs460904	T	C	3179.23	PASS	AC=6;AF=1.00;AN=6;DB;DP=155;Dels=0.00;FS=0.000;HaplotypeScore=2.4559;MLEAC=6;MLEAF=1.00;MQ=58.18;MQ0=0;QD=20.51;SB=-2.173e+03;VQSLOD=7.7042;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,60:60:90:1085,90,0:74	1|1:0,54:54:96:1172,96,0:74	1|1:0,41:41:75:960,75,0:74
+22	17351507	rs5748687	G	A	4244.01	VQSRTrancheSNP99.00to99.90	AC=5;AF=0.833;AN=6;BaseQRankSum=-0.224;DB;DP=261;Dels=0.00;FS=0.710;HaplotypeScore=1.7170;MLEAC=5;MLEAF=0.833;MQ=28.84;MQ0=57;MQRankSum=-7.852;QD=16.26;ReadPosRankSum=-1.243;SB=-2.174e+03;VQSLOD=-1.7101;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:0,92:92:99:1529,141,0:127	1|0:34,49:83:99:727,0,1065:127	1|1:0,86:86:99:1988,180,0:127
+22	34204930	rs13053313	T	C	435.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.517;DB;DP=82;Dels=0.00;FS=5.843;HaplotypeScore=0.5328;MLEAC=1;MLEAF=0.167;MQ=58.65;MQ0=0;MQRankSum=1.117;QD=12.80;ReadPosRankSum=-1.270;SB=-1.170e+02;VQSLOD=6.4410;culprit=DP	GT:AD:DP:GQ:PL:TP	0|0:12,0:12:27:0,27,360:27	0|1:16,18:34:99:470,0,403:27	0|0:36,0:36:93:0,93,1230:27
+22	43356130	rs6519353	A	C	3526.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.809;DB;DP=228;Dels=0.00;FS=6.336;HaplotypeScore=1.6306;MLEAC=3;MLEAF=0.500;MQ=59.41;MQ0=0;MQRankSum=-0.146;QD=22.46;ReadPosRankSum=2.034;SB=-1.954e+03;VQSLOD=8.5009;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|0:40,41:81:99:1020,0,1222:127	1|1:0,76:76:99:2506,196,0:127	0|0:71,0:71:99:0,165,2091:127
+22	50309915	rs9616205	A	T	1712.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-0.936;DB;DP=162;Dels=0.00;FS=2.857;HaplotypeScore=2.1490;MLEAC=2;MLEAF=0.333;MQ=56.21;MQ0=5;MQRankSum=0.892;QD=13.92;ReadPosRankSum=-1.040;SB=-9.940e+02;VQSLOD=6.2766;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|1:39,33:72:99:777,0,994:78	0|0:39,0:39:78:0,78,1010:78	1|0:16,35:51:99:974,0,257:78
+X	4712340	rs5915814	C	A	2233.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=8.784;DB;DP=176;Dels=0.00;FS=0.000;HaplotypeScore=0.4434;MLEAC=2;MLEAF=0.333;MQ=59.50;MQ0=0;MQRankSum=-1.782;QD=15.73;ReadPosRankSum=0.359;SB=-1.240e+03;VQSLOD=8.3937;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:32,37:69:99:1114,0,859:81	0|0:34,0:34:81:0,81,948:81	1|0:32,41:73:99:1158,0,575:81
+X	42192093	rs58959554	T	C	1058.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-5.464;DB;DP=190;Dels=0.00;FS=6.809;HaplotypeScore=1.8813;MLEAC=1;MLEAF=0.167;MQ=59.41;MQ0=0;MQRankSum=-0.212;QD=15.34;ReadPosRankSum=-0.173;SB=-3.970e+02;VQSLOD=8.0569;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:70,1:71:99:0,182,2683:127	0|0:50,0:50:99:0,138,1794:127	0|1:31,38:69:99:1093,0,947:127
+X	66290558	rs1606094	C	T	2602.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=2.169;DB;DP=213;Dels=0.00;FS=13.125;HaplotypeScore=0.0000;MLEAC=3;MLEAF=0.500;MQ=59.59;MQ0=0;MQRankSum=1.343;QD=18.86;ReadPosRankSum=2.274;SB=-1.122e+03;VQSLOD=5.9967;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:54,47:101:99:1381,0,1762:99	1|1:0,37:37:99:1266,99,0:99	0|0:75,0:75:99:0,205,2705:99
+X	84165195	rs5923187	C	A	1009.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.103;DB;DP=194;Dels=0.00;FS=3.070;HaplotypeScore=2.8168;MLEAC=1;MLEAF=0.167;MQ=59.31;MQ0=0;MQRankSum=-0.675;QD=12.01;ReadPosRankSum=-1.463;SB=-5.890e+02;VQSLOD=8.2395;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:79,1:80:99:0,223,2856:60	0|0:30,0:30:60:0,60,764:60	0|1:40,44:84:99:1044,0,1007:60
+X	95868251	.	G	A	108.36	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=1.436;DP=90;Dels=0.00;FS=4.210;HaplotypeScore=4.9383;MLEAC=2;MLEAF=0.333;MQ=44.60;MQ0=8;MQRankSum=-2.939;QD=1.55;ReadPosRankSum=2.865;SB=-7.411e+01;VQSLOD=-3.2422;culprit=QD	GT:AD:DP:GQ:PL:TP	0|1:29,9:38:99:126,0,251:23	0|0:20,0:20:24:0,24,266:23	1|0:27,5:32:21:21,0,97:23
+X	116855730	rs980389	A	G	2366.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.939;DB;DP=173;Dels=0.00;FS=3.510;HaplotypeScore=0.9076;MLEAC=3;MLEAF=0.500;MQ=59.87;MQ0=0;MQRankSum=0.653;QD=21.51;ReadPosRankSum=0.730;SB=-1.218e+03;VQSLOD=7.9588;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:37,33:70:99:965,0,1249:114	1|1:0,40:40:99:1446,114,0:114	0|0:63,0:63:99:0,175,2284:114
+X	135282092	rs5974586	G	C	2193.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=4.257;DB;DP=203;Dels=0.00;FS=0.540;HaplotypeScore=0.6589;MLEAC=2;MLEAF=0.333;MQ=59.47;MQ0=0;MQRankSum=1.000;QD=13.46;ReadPosRankSum=1.343;SB=-1.069e+03;VQSLOD=9.0929;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|1:47,33:80:99:1026,0,1466:116	0|0:40,0:40:99:0,117,1486:116	1|0:43,40:83:99:1206,0,1311:116
+X	150239197	rs6627349	T	C	4677.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=0.731;DB;DP=179;Dels=0.00;FS=0.000;HaplotypeScore=1.6094;MLEAC=5;MLEAF=0.833;MQ=59.69;MQ0=0;MQRankSum=0.676;QD=26.13;ReadPosRankSum=0.494;SB=-2.442e+03;VQSLOD=10.5525;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,66:66:99:2387,190,0:99	1|1:0,40:40:99:1243,99,0:99	1|0:36,37:73:99:1047,0,1039:99
+Y	13265732	.	C	T	356.72	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=2.823;DP=142;Dels=0.00;FS=7.941;HaplotypeScore=19.8229;MLEAC=2;MLEAF=0.333;MQ=38.22;MQ0=11;MQRankSum=-2.145;QD=5.10;ReadPosRankSum=1.491;SB=-1.466e+00;VQSLOD=-14.4273;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|1:35,15:50:99:327,0,624:5	0|0:65,7:72:4:0,4,1831:5	1|0:15,5:20:67:67,0,227:5
+Y	59024923	.	A	T	1977.26	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=1.838;DP=745;DS;Dels=0.00;FS=0.367;HaplotypeScore=8.2957;MLEAC=3;MLEAF=0.500;MQ=43.53;MQ0=19;MQRankSum=2.499;QD=2.65;ReadPosRankSum=0.098;SB=-9.720e+02;VQSLOD=-36.7578;culprit=DP	GT:AD:DP:GQ:PL:TP	0/1:208,42:250:99:730,0,6428:127	0/1:210,35:245:99:588,0,6218:127	0/1:208,42:250:99:698,0,6060:127
+GL000214.1	115144	.	C	T	102.07	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=0.854;DP=103;Dels=0.00;FS=14.185;HaplotypeScore=14.9478;MLEAC=2;MLEAF=0.333;MQ=38.45;MQ0=1;MQRankSum=-2.314;QD=1.05;ReadPosRankSum=1.480;SB=-6.153e+01;VQSLOD=-14.7562;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:6,0:6:3:0,3,22:4	0|1:9,11:20:16:81,0,16:4	0|1:63,14:77:58:58,0,908:4
+GL000215.1	142616	.	T	C	976.25	VQSRTrancheSNP99.00to99.90	AC=6;AF=1.00;AN=6;DP=80;Dels=0.00;FS=0.000;HaplotypeScore=0.0000;MLEAC=6;MLEAF=1.00;MQ=21.04;MQ0=42;QD=12.20;SB=-8.001e+01;VQSLOD=-0.4104;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:0,33:33:42:516,42,0:19	1|1:0,21:21:24:272,24,0:19	1|1:0,26:26:21:226,21,0:19
+GL000212.1	28454	.	T	C	2248.99	VQSRTrancheSNP99.00to99.90	AC=4;AF=1.00;AN=4;BaseQRankSum=1.691;DP=94;Dels=0.00;FS=3.274;HaplotypeScore=0.9622;MLEAC=4;MLEAF=1.00;MQ=36.99;MQ0=7;MQRankSum=-0.428;QD=24.18;ReadPosRankSum=-1.284;SB=-1.053e+03;VQSLOD=1.2364;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:0,29:29:63:755,63,0:63	./.	1|1:1,63:64:99:1530,135,0:63
diff --git a/testdata/picard/vcf/CEUTrio-snps_last_line_diff.vcf b/testdata/picard/vcf/CEUTrio-snps_last_line_diff.vcf
new file mode 100644
index 0000000..0f9e380
--- /dev/null
+++ b/testdata/picard/vcf/CEUTrio-snps_last_line_diff.vcf
@@ -0,0 +1,406 @@
+##fileformat=VCFv4.1
+##ApplyRecalibration="analysis_type=ApplyRecalibration input_file=[] read_buffer_size=null phone_home=NO_ET gatk_key=/humgen/gsa-hpprojects/GATK/data/gatk_user_keys/gsamembers_broadinstitute.org.key read_filter=[] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta nonDeterministicRandomSeed=false downsampling_type=BY_SAMPLE downsample_to_fraction=null do [...]
+##CombineVariants="analysis_type=CombineVariants input_file=[] read_buffer_size=null phone_home=STANDARD gatk_key=null read_filter=[] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta nonDeterministicRandomSeed=false downsampling_type=BY_SAMPLE downsample_to_fraction=null downsample_to_coverage=1000 baq=OFF baqGapOpenPenalty=40.0 performanceLog=null use [...]
+##FILTER=<ID=LowQual,Description="Low quality">
+##FILTER=<ID=VQSRTrancheINDEL99.00to99.90,Description="Truth sensitivity tranche level for INDEL model at VQS Lod: -4.1718 <= x < -0.8611">
+##FILTER=<ID=VQSRTrancheINDEL99.90to100.00+,Description="Truth sensitivity tranche level for INDEL model at VQS Lod < -727.2136">
+##FILTER=<ID=VQSRTrancheINDEL99.90to100.00,Description="Truth sensitivity tranche level for INDEL model at VQS Lod: -727.2136 <= x < -4.1718">
+##FILTER=<ID=VQSRTrancheSNP99.00to99.90,Description="Truth sensitivity tranche level for SNP model at VQS Lod: -25.4561 <= x < 3.2489">
+##FILTER=<ID=VQSRTrancheSNP99.90to100.00+,Description="Truth sensitivity tranche level for SNP model at VQS Lod < -38672.7015">
+##FILTER=<ID=VQSRTrancheSNP99.90to100.00,Description="Truth sensitivity tranche level for SNP model at VQS Lod: -38672.7015 <= x < -25.4561">
+##FORMAT=<ID=AD,Number=.,Type=Integer,Description="Allelic depths for the ref and alt alleles in the order listed">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth (reads with MQ=255 or with bad mates are filtered)">
+##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##FORMAT=<ID=PL,Number=G,Type=Integer,Description="Normalized, Phred-scaled likelihoods for genotypes as defined in the VCF specification">
+##FORMAT=<ID=TP,Number=1,Type=Integer,Description="Phred score of the genotype combination and phase given that the genotypes are correct">
+##INFO=<ID=AC,Number=A,Type=Integer,Description="Allele count in genotypes, for each ALT allele, in the same order as listed">
+##INFO=<ID=AF,Number=A,Type=Float,Description="Allele Frequency, for each ALT allele, in the same order as listed">
+##INFO=<ID=AN,Number=1,Type=Integer,Description="Total number of alleles in called genotypes">
+##INFO=<ID=BaseQRankSum,Number=1,Type=Float,Description="Z-score from Wilcoxon rank sum test of Alt Vs. Ref base qualities">
+##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP Membership">
+##INFO=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth; some reads may have been filtered">
+##INFO=<ID=DS,Number=0,Type=Flag,Description="Were any of the samples downsampled?">
+##INFO=<ID=Dels,Number=1,Type=Float,Description="Fraction of Reads Containing Spanning Deletions">
+##INFO=<ID=END,Number=1,Type=Integer,Description="Stop position of the interval">
+##INFO=<ID=FS,Number=1,Type=Float,Description="Phred-scaled p-value using Fisher's exact test to detect strand bias">
+##INFO=<ID=HaplotypeScore,Number=1,Type=Float,Description="Consistency of the site with at most two segregating haplotypes">
+##INFO=<ID=InbreedingCoeff,Number=1,Type=Float,Description="Inbreeding coefficient as estimated from the genotype likelihoods per-sample when compared against the Hardy-Weinberg expectation">
+##INFO=<ID=MLEAC,Number=A,Type=Integer,Description="Maximum likelihood expectation (MLE) for the allele counts (not necessarily the same as the AC), for each ALT allele, in the same order as listed">
+##INFO=<ID=MLEAF,Number=A,Type=Float,Description="Maximum likelihood expectation (MLE) for the allele frequency (not necessarily the same as the AF), for each ALT allele, in the same order as listed">
+##INFO=<ID=MQ,Number=1,Type=Float,Description="RMS Mapping Quality">
+##INFO=<ID=MQ0,Number=1,Type=Integer,Description="Total Mapping Quality Zero Reads">
+##INFO=<ID=MQRankSum,Number=1,Type=Float,Description="Z-score From Wilcoxon rank sum test of Alt vs. Ref read mapping qualities">
+##INFO=<ID=QD,Number=1,Type=Float,Description="Variant Confidence/Quality by Depth">
+##INFO=<ID=RPA,Number=.,Type=Integer,Description="Number of times tandem repeat unit is repeated, for each allele (including reference)">
+##INFO=<ID=RU,Number=1,Type=String,Description="Tandem repeat unit (bases)">
+##INFO=<ID=ReadPosRankSum,Number=1,Type=Float,Description="Z-score from Wilcoxon rank sum test of Alt vs. Ref read position bias">
+##INFO=<ID=SB,Number=1,Type=Float,Description="Strand Bias">
+##INFO=<ID=STR,Number=0,Type=Flag,Description="Variant is a short tandem repeat">
+##INFO=<ID=VQSLOD,Number=1,Type=Float,Description="Log odds ratio of being a true variant versus being false under the trained gaussian mixture model">
+##INFO=<ID=culprit,Number=1,Type=String,Description="The annotation which was the worst performing in the Gaussian mixture model, likely the reason why the variant was filtered out">
+##INFO=<ID=set,Number=1,Type=String,Description="Source VCF for the merged record in CombineVariants">
+##PhaseByTransmission="analysis_type=PhaseByTransmission input_file=[] read_buffer_size=null phone_home=STANDARD gatk_key=null read_filter=[] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta nonDeterministicRandomSeed=false downsampling_type=BY_SAMPLE downsample_to_fraction=null downsample_to_coverage=1000 baq=OFF baqGapOpenPenalty=40.0 performanceLog= [...]
+##UnifiedGenotyper="analysis_type=UnifiedGenotyper input_file=[/humgen/gsa-hpprojects/NA12878Collection/bams/CEUTrio.HiSeq.WGS.b37.list] read_buffer_size=null phone_home=NO_ET gatk_key=/humgen/gsa-hpprojects/GATK/data/gatk_user_keys/gsamembers_broadinstitute.org.key read_filter=[] intervals=[/broad/hptmp/ami/tmp/queueScatterGather/.qlog/CEUTrio.indelcall-sg/temp_020_of_300/scatter.intervals] excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_s [...]
+##contig=<ID=1,length=249250621,assembly=b37>
+##contig=<ID=2,length=243199373,assembly=b37>
+##contig=<ID=3,length=198022430,assembly=b37>
+##contig=<ID=4,length=191154276,assembly=b37>
+##contig=<ID=5,length=180915260,assembly=b37>
+##contig=<ID=6,length=171115067,assembly=b37>
+##contig=<ID=7,length=159138663,assembly=b37>
+##contig=<ID=8,length=146364022,assembly=b37>
+##contig=<ID=9,length=141213431,assembly=b37>
+##contig=<ID=10,length=135534747,assembly=b37>
+##contig=<ID=11,length=135006516,assembly=b37>
+##contig=<ID=12,length=133851895,assembly=b37>
+##contig=<ID=13,length=115169878,assembly=b37>
+##contig=<ID=14,length=107349540,assembly=b37>
+##contig=<ID=15,length=102531392,assembly=b37>
+##contig=<ID=16,length=90354753,assembly=b37>
+##contig=<ID=17,length=81195210,assembly=b37>
+##contig=<ID=18,length=78077248,assembly=b37>
+##contig=<ID=19,length=59128983,assembly=b37>
+##contig=<ID=20,length=63025520,assembly=b37>
+##contig=<ID=21,length=48129895,assembly=b37>
+##contig=<ID=22,length=51304566,assembly=b37>
+##contig=<ID=X,length=155270560,assembly=b37>
+##contig=<ID=Y,length=59373566,assembly=b37>
+##contig=<ID=MT,length=16569,assembly=b37>
+##contig=<ID=GL000207.1,length=4262,assembly=b37>
+##contig=<ID=GL000226.1,length=15008,assembly=b37>
+##contig=<ID=GL000229.1,length=19913,assembly=b37>
+##contig=<ID=GL000231.1,length=27386,assembly=b37>
+##contig=<ID=GL000210.1,length=27682,assembly=b37>
+##contig=<ID=GL000239.1,length=33824,assembly=b37>
+##contig=<ID=GL000235.1,length=34474,assembly=b37>
+##contig=<ID=GL000201.1,length=36148,assembly=b37>
+##contig=<ID=GL000247.1,length=36422,assembly=b37>
+##contig=<ID=GL000245.1,length=36651,assembly=b37>
+##contig=<ID=GL000197.1,length=37175,assembly=b37>
+##contig=<ID=GL000203.1,length=37498,assembly=b37>
+##contig=<ID=GL000246.1,length=38154,assembly=b37>
+##contig=<ID=GL000249.1,length=38502,assembly=b37>
+##contig=<ID=GL000196.1,length=38914,assembly=b37>
+##contig=<ID=GL000248.1,length=39786,assembly=b37>
+##contig=<ID=GL000244.1,length=39929,assembly=b37>
+##contig=<ID=GL000238.1,length=39939,assembly=b37>
+##contig=<ID=GL000202.1,length=40103,assembly=b37>
+##contig=<ID=GL000234.1,length=40531,assembly=b37>
+##contig=<ID=GL000232.1,length=40652,assembly=b37>
+##contig=<ID=GL000206.1,length=41001,assembly=b37>
+##contig=<ID=GL000240.1,length=41933,assembly=b37>
+##contig=<ID=GL000236.1,length=41934,assembly=b37>
+##contig=<ID=GL000241.1,length=42152,assembly=b37>
+##contig=<ID=GL000243.1,length=43341,assembly=b37>
+##contig=<ID=GL000242.1,length=43523,assembly=b37>
+##contig=<ID=GL000230.1,length=43691,assembly=b37>
+##contig=<ID=GL000237.1,length=45867,assembly=b37>
+##contig=<ID=GL000233.1,length=45941,assembly=b37>
+##contig=<ID=GL000204.1,length=81310,assembly=b37>
+##contig=<ID=GL000198.1,length=90085,assembly=b37>
+##contig=<ID=GL000208.1,length=92689,assembly=b37>
+##contig=<ID=GL000191.1,length=106433,assembly=b37>
+##contig=<ID=GL000227.1,length=128374,assembly=b37>
+##contig=<ID=GL000228.1,length=129120,assembly=b37>
+##contig=<ID=GL000214.1,length=137718,assembly=b37>
+##contig=<ID=GL000221.1,length=155397,assembly=b37>
+##contig=<ID=GL000209.1,length=159169,assembly=b37>
+##contig=<ID=GL000218.1,length=161147,assembly=b37>
+##contig=<ID=GL000220.1,length=161802,assembly=b37>
+##contig=<ID=GL000213.1,length=164239,assembly=b37>
+##contig=<ID=GL000211.1,length=166566,assembly=b37>
+##contig=<ID=GL000199.1,length=169874,assembly=b37>
+##contig=<ID=GL000217.1,length=172149,assembly=b37>
+##contig=<ID=GL000216.1,length=172294,assembly=b37>
+##contig=<ID=GL000215.1,length=172545,assembly=b37>
+##contig=<ID=GL000205.1,length=174588,assembly=b37>
+##contig=<ID=GL000219.1,length=179198,assembly=b37>
+##contig=<ID=GL000224.1,length=179693,assembly=b37>
+##contig=<ID=GL000223.1,length=180455,assembly=b37>
+##contig=<ID=GL000195.1,length=182896,assembly=b37>
+##contig=<ID=GL000212.1,length=186858,assembly=b37>
+##contig=<ID=GL000222.1,length=186861,assembly=b37>
+##contig=<ID=GL000200.1,length=187035,assembly=b37>
+##contig=<ID=GL000193.1,length=189789,assembly=b37>
+##contig=<ID=GL000194.1,length=191469,assembly=b37>
+##contig=<ID=GL000225.1,length=211173,assembly=b37>
+##contig=<ID=GL000192.1,length=547496,assembly=b37>
+##reference=file:///humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta
+##source=PhaseByTransmission
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	NA12878	NA12891	NA12892
+1	8216712	rs11121115	A	G	1540.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.917;DB;DP=131;Dels=0.00;FS=11.669;HaplotypeScore=3.3539;MLEAC=3;MLEAF=0.500;MQ=57.74;MQ0=1;MQRankSum=0.427;QD=11.76;ReadPosRankSum=-0.219;SB=-9.390e+02;VQSLOD=5.5346;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:23,28:51:99:681,0,668:127	0/1:16,18:34:99:338,0,244:127	0/1:24,22:46:99:560,0,323:127
+1	17032814	rs2773183	T	C	2828.26	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.879;DB;DP=322;Dels=0.00;FS=2.430;HaplotypeScore=15.4499;MLEAC=3;MLEAF=0.500;MQ=56.86;MQ0=0;MQRankSum=2.916;QD=8.78;ReadPosRankSum=-1.245;SB=-1.943e+03;VQSLOD=-1.4207;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:63,59:122:99:1434,0,1831:127	0/1:53,56:109:99:910,0,871:127	0/1:61,30:91:99:523,0,1257:127
+1	47818917	rs12749507	A	G	1285.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.707;DB;DP=252;Dels=0.00;FS=2.139;HaplotypeScore=0.6661;MLEAC=1;MLEAF=0.167;MQ=59.83;MQ0=0;MQRankSum=-0.467;QD=13.39;ReadPosRankSum=0.535;SB=-6.730e+02;VQSLOD=9.2738;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:81,0:81:99:0,241,3171:127	0|1:53,42:96:99:1320,0,1615:127	0|0:75,0:75:99:0,217,2762:127
+1	59635894	rs331648	T	A	839.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-4.038;DB;DP=211;Dels=0.00;FS=1.427;HaplotypeScore=1.5485;MLEAC=1;MLEAF=0.167;MQ=58.68;MQ0=0;MQRankSum=-0.422;QD=11.82;ReadPosRankSum=-0.180;SB=-5.520e+02;VQSLOD=7.9477;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:78,0:78:99:0,199,2578:127	0|0:62,0:62:99:0,169,2205:127	0|1:33,38:71:99:874,0,897:127
+1	69502962	rs12724640	T	C	1868.23	VQSRTrancheSNP99.00to99.90	AC=6;AF=1.00;AN=6;BaseQRankSum=-1.732;DB;DP=110;Dels=0.00;FS=4.721;HaplotypeScore=1.9269;MLEAC=6;MLEAF=1.00;MQ=29.46;MQ0=22;MQRankSum=1.652;QD=16.98;ReadPosRankSum=-0.564;SB=-8.110e+02;VQSLOD=0.2103;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:5,23:29:63:693,63,0:50	1|1:5,38:43:66:675,66,0:50	1|1:9,29:38:51:538,51,0:50
+1	80481528	rs61774278	G	C	1775.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-1.614;DB;DP=168;Dels=0.00;FS=8.292;HaplotypeScore=2.0470;MLEAC=3;MLEAF=0.500;MQ=54.28;MQ0=0;MQRankSum=-0.052;QD=16.75;ReadPosRankSum=1.544;SB=-1.133e+03;VQSLOD=4.7735;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|1:35,26:61:99:767,0,778:80	0|0:62,0:62:84:0,84,1046:80	1|1:0,45:45:84:1053,84,0:80
+1	90146546	rs7512447	C	T	8721.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=241;Dels=0.00;FS=0.000;HaplotypeScore=0.0000;MLEAC=6;MLEAF=1.00;MQ=59.40;MQ0=0;QD=36.19;SB=-4.084e+03;VQSLOD=11.3217;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,71:71:99:2599,196,0:127	1|1:0,86:86:99:3042,235,0:127	1|1:0,84:84:99:3080,238,0:127
+1	100763317	rs6681810	G	C	5583.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=196;Dels=0.00;FS=0.000;HaplotypeScore=3.7201;MLEAC=6;MLEAF=1.00;MQ=58.52;MQ0=0;QD=28.48;SB=-2.737e+03;VQSLOD=7.9151;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:1,76:77:99:2211,192,0:127	1|1:0,56:56:99:1593,141,0:127	1|1:0,62:62:99:1779,156,0:127
+1	110091282	rs1279195	C	T	952.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=2.646;DB;DP=101;Dels=0.00;FS=19.666;HaplotypeScore=1.9160;MLEAC=2;MLEAF=0.333;MQ=56.72;MQ0=0;MQRankSum=-0.345;QD=12.37;ReadPosRankSum=0.567;SB=-5.350e+02;VQSLOD=4.1741;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:14,29:46:99:726,0,219:42	1|0:13,12:31:99:265,0,298:42	0|0:18,0:24:42:0,42,522:42
+1	146610795	rs58742099	C	T	2831.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.298;DB;DP=261;Dels=0.00;FS=7.033;HaplotypeScore=13.9060;MLEAC=2;MLEAF=0.333;MQ=59.62;MQ0=0;MQRankSum=0.753;QD=16.27;ReadPosRankSum=-1.405;SB=-1.481e+03;VQSLOD=3.4221;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:39,43:82:99:1329,0,1080:127	1|0:40,52:92:99:1541,0,1241:127	0|0:87,0:87:99:0,238,3098:127
+1	156248265	rs12038203	C	T	643.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-0.311;DB;DP=145;Dels=0.00;FS=4.568;HaplotypeScore=0.2774;MLEAC=1;MLEAF=0.167;MQ=59.08;MQ0=0;MQRankSum=0.862;QD=12.86;ReadPosRankSum=0.177;SB=-3.450e+02;VQSLOD=7.5008;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:47,0:47:99:0,123,1604:110	0|0:48,0:48:99:0,111,1433:110	0|1:25,25:50:99:678,0,694:110
+1	165431906	rs7528908	G	T	2381.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=6.008;DB;DP=259;Dels=0.00;FS=4.727;HaplotypeScore=0.9857;MLEAC=2;MLEAF=0.333;MQ=59.75;MQ0=0;MQRankSum=0.916;QD=14.34;ReadPosRankSum=-0.907;SB=-9.050e+02;VQSLOD=8.1270;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|1:48,40:88:99:1142,0,1428:127	0|0:93,0:93:99:0,259,3166:127	1|0:38,40:78:99:1278,0,1075:127
+1	175207612	rs11484568	C	T	1920.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=5.643;DB;DP=216;Dels=0.00;FS=0.537;HaplotypeScore=2.2467;MLEAC=2;MLEAF=0.333;MQ=58.99;MQ0=0;MQRankSum=0.383;QD=14.12;ReadPosRankSum=0.169;SB=-1.064e+03;VQSLOD=8.5912;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:34,40:74:99:1152,0,995:127	0|0:80,0:80:99:0,208,2602:127	1|0:34,28:62:99:807,0,998:127
+1	186656152	rs4422959	G	A	1342.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=7.230;DB;DP=270;Dels=0.00;FS=7.290;HaplotypeScore=1.1750;MLEAC=1;MLEAF=0.167;MQ=59.71;MQ0=0;MQRankSum=0.399;QD=17.21;ReadPosRankSum=-0.869;SB=-6.320e+02;VQSLOD=7.6734;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:99,0:99:99:0,283,3341:127	0|0:93,0:93:99:0,256,3022:127	0|1:33,45:78:99:1377,0,917:127
+1	195392852	rs2119441	T	G	5369.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-2.284;DB;DP=241;Dels=0.00;FS=3.312;HaplotypeScore=1.8710;MLEAC=4;MLEAF=0.667;MQ=58.35;MQ0=0;MQRankSum=-0.643;QD=22.28;ReadPosRankSum=0.178;SB=-2.332e+03;VQSLOD=7.8524;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:37,42:79:99:1233,0,1145:127	1|1:0,84:84:99:2741,211,0:127	0|1:31,47:78:99:1395,0,804:127
+1	204945934	rs6657372	A	G	1311.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-6.582;DB;DP=126;Dels=0.00;FS=0.000;HaplotypeScore=2.7088;MLEAC=3;MLEAF=0.500;MQ=58.78;MQ0=0;MQRankSum=0.480;QD=15.43;ReadPosRankSum=1.284;SB=-6.370e+02;VQSLOD=7.8448;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:22,28:50:99:629,0,675:68	0|0:40,0:41:84:0,84,1057:68	1|1:0,35:35:69:727,69,0:68
+1	216407409	rs3767692	A	G	8820.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-0.803;DB;DP=295;Dels=0.00;FS=1.345;HaplotypeScore=2.5841;MLEAC=5;MLEAF=0.833;MQ=59.28;MQ0=0;MQRankSum=-0.375;QD=29.90;ReadPosRankSum=-0.363;SB=-4.445e+03;VQSLOD=7.0549;culprit=DP	GT:AD:DP:GQ:PL:TP	1|1:1,115:116:99:4251,328,0:127	1|0:39,51:90:99:1430,0,1275:127	1|1:0,89:89:99:3139,241,0:127
+1	226163330	rs10915914	C	G	747.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-3.123;DB;DP=121;Dels=0.00;FS=0.863;HaplotypeScore=0.8289;MLEAC=2;MLEAF=0.333;MQ=58.96;MQ0=0;MQRankSum=-0.478;QD=9.70;ReadPosRankSum=-0.134;SB=-2.780e+02;VQSLOD=8.0849;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:43,1:44:99:0,117,1447:116	0|1:17,15:32:99:289,0,390:116	0|1:26,19:45:99:497,0,677:116
+1	243135892	rs7517403	C	T	2313.25	VQSRTrancheSNP99.00to99.90	AC=4;AF=0.667;AN=6;BaseQRankSum=7.051;DB;DP=168;Dels=0.00;FS=0.000;HaplotypeScore=0.5884;MLEAC=4;MLEAF=0.667;MQ=37.62;MQ0=11;MQRankSum=-5.659;QD=13.77;ReadPosRankSum=-0.977;SB=-9.200e+02;VQSLOD=2.2480;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:31,24:55:99:501,0,891:123	1|1:0,58:58:99:1263,123,0:123	0|1:28,27:55:99:591,0,714:123
+2	1143476	rs4998209	C	T	1483.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-4.814;DB;DP=189;Dels=0.00;FS=5.611;HaplotypeScore=0.3245;MLEAC=2;MLEAF=0.333;MQ=58.36;MQ0=0;MQRankSum=1.579;QD=12.06;ReadPosRankSum=0.326;SB=-9.320e+02;VQSLOD=6.8071;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:66,0:66:99:0,178,2264:127	0|1:33,38:71:99:844,0,1024:127	0|1:26,26:52:99:678,0,719:127
+2	9240279	rs56249990	A	G	3978.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=1.695;DB;DP=213;Dels=0.00;FS=7.834;HaplotypeScore=1.1897;MLEAC=3;MLEAF=0.500;MQ=59.40;MQ0=0;MQRankSum=0.143;QD=27.25;ReadPosRankSum=-0.097;SB=-1.991e+03;VQSLOD=9.1447;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:33,42:75:99:1400,0,1031:127	0|0:67,0:67:99:0,178,2277:127	1|1:0,71:71:99:2578,199,0:127
+2	18016237	rs12710649	A	T	3950.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-0.037;DB;DP=250;Dels=0.00;FS=2.158;HaplotypeScore=2.0804;MLEAC=3;MLEAF=0.500;MQ=59.14;MQ0=0;MQRankSum=0.494;QD=15.80;ReadPosRankSum=0.705;SB=-2.142e+03;VQSLOD=8.1407;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:46,59:105:99:1733,0,1505:127	0/1:39,37:76:99:925,0,1164:127	0/1:24,44:68:99:1292,0,628:127
+2	28790711	rs34787802	T	G	731.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-4.421;DB;DP=232;Dels=0.00;FS=2.403;HaplotypeScore=1.5189;MLEAC=1;MLEAF=0.167;MQ=57.98;MQ0=0;MQRankSum=0.447;QD=10.30;ReadPosRankSum=-1.833;SB=-4.550e+02;VQSLOD=6.8853;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:81,0:81:99:0,223,2877:127	0|1:36,35:71:99:766,0,947:127	0|0:79,0:80:99:0,205,2640:127
+2	36994439	rs11124542	A	C	1302.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-7.406;DB;DP=191;Dels=0.00;FS=3.335;HaplotypeScore=2.1785;MLEAC=3;MLEAF=0.500;MQ=58.93;MQ0=0;MQRankSum=-0.725;QD=6.82;ReadPosRankSum=0.302;SB=-1.006e+03;VQSLOD=7.9479;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:32,28:60:99:710,0,1044:127	0/1:34,25:59:99:309,0,772:127	0/1:45,27:72:99:322,0,1096:127
+2	45429089	rs13418430	C	A	2341.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=0.861;DB;DP=283;Dels=0.00;FS=2.854;HaplotypeScore=1.3288;MLEAC=2;MLEAF=0.333;MQ=59.62;MQ0=0;MQRankSum=-0.939;QD=12.52;ReadPosRankSum=-1.869;SB=-1.156e+03;VQSLOD=7.1503;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:60,49:109:99:1406,0,2061:127	1|0:41,37:78:99:974,0,1238:127	0|0:96,0:96:99:0,256,3312:127
+2	54408283	rs55993481	T	G	2128.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.961;DB;DP=222;Dels=0.00;FS=1.744;HaplotypeScore=3.9553;MLEAC=2;MLEAF=0.333;MQ=59.69;MQ0=0;MQRankSum=0.670;QD=14.28;ReadPosRankSum=1.313;SB=-1.076e+03;VQSLOD=6.5064;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:35,46:81:99:1392,0,921:127	1|0:35,33:68:99:775,0,878:127	0|0:73,0:73:99:0,175,2164:127
+2	64848970	rs35473866	T	C	655.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=0.263;DB;DP=218;Dels=0.00;FS=8.014;HaplotypeScore=2.5836;MLEAC=1;MLEAF=0.167;MQ=58.36;MQ0=0;MQRankSum=-0.168;QD=8.29;ReadPosRankSum=-0.307;SB=-3.420e+02;VQSLOD=5.9179;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:78,0:78:99:0,208,2627:127	0|0:61,0:61:99:0,135,1725:127	0|1:35,42:79:99:690,0,1042:127
+2	85513238	rs62162679	C	T	742.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.162;DB;DP=137;Dels=0.00;FS=4.474;HaplotypeScore=1.3905;MLEAC=2;MLEAF=0.333;MQ=57.50;MQ0=0;MQRankSum=0.479;QD=7.57;ReadPosRankSum=-0.272;SB=-5.520e+02;VQSLOD=7.1288;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:39,0:39:99:0,105,1267:104	0|1:23,23:47:99:430,0,551:104	0|1:31,20:51:99:351,0,633:104
+2	96514373	rs10186946	C	T	206.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=4.485;DB;DP=175;Dels=0.00;FS=2.805;HaplotypeScore=2.4200;MLEAC=2;MLEAF=0.333;MQ=39.07;MQ0=7;MQRankSum=-7.529;QD=1.61;ReadPosRankSum=0.813;SB=-2.501e+01;VQSLOD=-0.8655;culprit=QD	GT:AD:DP:GQ:PL:TP	1|0:35,23:58:62:62,0,484:61	1|0:22,46:70:99:183,0,387:61	0|0:46,0:47:99:0,99,1162:61
+2	117966808	rs333847	C	T	9037.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=269;Dels=0.00;FS=0.000;HaplotypeScore=3.7032;MLEAC=6;MLEAF=1.00;MQ=58.21;MQ0=0;QD=33.59;SB=-4.673e+03;VQSLOD=7.0546;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,78:78:99:2652,205,0:127	1|1:0,101:101:99:3158,247,0:127	1|1:0,89:90:99:3227,250,0:127
+2	127445050	rs113647072	A	G	1773.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-3.856;DB;DP=154;Dels=0.00;FS=4.202;HaplotypeScore=2.2701;MLEAC=4;MLEAF=0.667;MQ=59.16;MQ0=0;MQRankSum=0.759;QD=11.51;ReadPosRankSum=1.290;SB=-1.402e+03;VQSLOD=7.9185;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:26,28:54:99:652,0,472:78	0|1:26,22:49:99:350,0,462:78	1|1:0,50:51:78:813,78,0:78
+2	144289763	rs7607879	C	T	3308.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=1.386;DB;DP=225;Dels=0.00;FS=9.723;HaplotypeScore=1.4969;MLEAC=3;MLEAF=0.500;MQ=59.53;MQ0=0;MQRankSum=0.283;QD=14.70;ReadPosRankSum=1.392;SB=-1.760e+03;VQSLOD=8.2418;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:41,39:81:99:1190,0,1312:127	0/1:28,36:64:99:1057,0,834:127	0/1:44,36:80:99:1061,0,1275:127
+2	155726628	.	T	G	1351.23	VQSRTrancheSNP99.00to99.90	AC=6;AF=1.00;AN=6;BaseQRankSum=0.207;DP=193;Dels=0.00;FS=9.246;HaplotypeScore=0.5220;MLEAC=6;MLEAF=1.00;MQ=16.17;MQ0=87;MQRankSum=2.396;QD=7.00;ReadPosRankSum=1.069;SB=-4.420e+02;VQSLOD=-2.7874;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:3,56:59:60:591,60,0:27	1|1:8,49:57:27:245,27,0:27	1|1:12,65:77:57:553,57,0:27
+2	167166899	.	T	A	1064.78	VQSRTrancheSNP99.00to99.90	AC=5;AF=0.833;AN=6;BaseQRankSum=0.023;DP=278;Dels=0.00;FS=9.890;HaplotypeScore=0.2774;MLEAC=6;MLEAF=1.00;MQ=10.47;MQ0=239;MQRankSum=1.643;QD=3.83;ReadPosRankSum=0.347;SB=-1.083e-02;VQSLOD=-6.9449;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:174,12:186:36:401,36,0:4	1|1:37,14:52:39:431,39,0:4	1|0:31,9:40:3:271,0,3:4
+2	177175707	rs7355385	A	G	2590.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-0.866;DB;DP=206;Dels=0.00;FS=14.872;HaplotypeScore=0.3111;MLEAC=3;MLEAF=0.500;MQ=59.12;MQ0=0;MQRankSum=-0.937;QD=20.40;ReadPosRankSum=-0.287;SB=-8.970e+02;VQSLOD=6.8179;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:33,32:65:99:856,0,1069:127	1|1:0,62:62:99:1779,150,0:127	0|0:78,1:79:99:0,193,2411:127
+2	187694833	rs10191094	T	C	1006.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-7.181;DB;DP=236;Dels=0.00;FS=9.083;HaplotypeScore=2.2688;MLEAC=1;MLEAF=0.167;MQ=59.73;MQ0=0;MQRankSum=-0.218;QD=13.07;ReadPosRankSum=-0.877;SB=-5.830e+02;VQSLOD=7.6003;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:82,0:82:99:0,232,3021:127	0|0:77,0:77:99:0,217,2790:127	0|1:33,44:77:99:1041,0,988:127
+2	198567638	rs12619333	C	G	2201.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-0.028;DB;DP=240;Dels=0.00;FS=4.757;HaplotypeScore=1.3741;MLEAC=2;MLEAF=0.333;MQ=59.37;MQ0=1;MQRankSum=0.131;QD=13.42;ReadPosRankSum=0.123;SB=-1.051e+03;VQSLOD=8.1261;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:38,45:84:99:1298,0,1249:127	1|0:45,35:80:99:942,0,1493:127	0|0:76,0:76:99:0,196,2542:127
+2	209758643	rs12992166	C	T	1534.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=6.178;DB;DP=163;Dels=0.00;FS=8.813;HaplotypeScore=2.3636;MLEAC=2;MLEAF=0.333;MQ=58.93;MQ0=0;MQRankSum=1.988;QD=12.08;ReadPosRankSum=1.075;SB=-4.720e+02;VQSLOD=6.8226;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:35,22:59:99:610,0,886:93	1|0:32,36:68:99:963,0,797:93	0|0:36,0:36:93:0,93,1058:93
+2	228532558	rs6436725	G	A	3484.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=7.160;DB;DP=263;Dels=0.00;FS=1.547;HaplotypeScore=4.9679;MLEAC=3;MLEAF=0.500;MQ=58.60;MQ0=0;MQRankSum=1.137;QD=21.91;ReadPosRankSum=-0.416;SB=-1.472e+03;VQSLOD=5.4377;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:42,47:89:99:1549,0,932:127	0|0:104,0:104:99:0,247,2939:127	1|1:0,69:70:99:1935,156,0:127
+2	237156689	rs13390270	G	A	852.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.150;DB;DP=205;Dels=0.00;FS=0.710;HaplotypeScore=1.7295;MLEAC=1;MLEAF=0.167;MQ=59.06;MQ0=0;MQRankSum=-0.193;QD=11.67;ReadPosRankSum=1.262;SB=-4.790e+02;VQSLOD=8.4962;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:73,0:73:99:0,202,2606:108	0|1:39,34:73:99:887,0,1027:108	0|0:59,0:59:99:0,108,1384:108
+3	1609737	rs2648459	A	G	6492.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=187;Dels=0.00;FS=0.000;HaplotypeScore=1.1795;MLEAC=6;MLEAF=1.00;MQ=59.90;MQ0=0;QD=34.72;SB=-3.251e+03;VQSLOD=11.5033;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,53:53:99:1943,150,0:127	1|1:0,62:62:99:2206,172,0:127	1|1:0,72:72:99:2343,181,0:127
+3	8399330	rs6770171	G	A	6816.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=4.689;DB;DP=253;Dels=0.00;FS=0.637;HaplotypeScore=1.2788;MLEAC=5;MLEAF=0.833;MQ=58.42;MQ0=0;MQRankSum=0.607;QD=26.94;ReadPosRankSum=-0.503;SB=-3.369e+03;VQSLOD=8.0141;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|1:0,106:106:99:3784,292,0:127	1|1:0,72:72:99:2164,169,0:127	1|0:42,33:75:99:868,0,1146:127
+3	17501103	.	T	G	45.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=-6.477;DP=156;Dels=0.00;FS=71.755;HaplotypeScore=1.5253;MLEAC=2;MLEAF=0.333;MQ=58.02;MQ0=0;MQRankSum=-0.156;QD=0.43;ReadPosRankSum=-3.974;SB=-1.474e-02;VQSLOD=-14.1451;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:43,8:51:99:0,114,1252:33	0|1:22,24:46:34:34,0,492:33	0|1:24,34:59:50:50,0,492:33
+3	26960556	rs4422260	T	C	878.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=-2.140;DB;DP=220;Dels=0.00;FS=1.108;HaplotypeScore=1.7204;MLEAC=2;MLEAF=0.333;MQ=41.87;MQ0=3;MQRankSum=-6.679;QD=5.97;ReadPosRankSum=-0.031;SB=-4.600e+02;VQSLOD=0.7170;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:73,0:73:99:0,208,2660:127	0|1:32,48:80:99:759,0,915:127	0|1:37,30:67:99:158,0,1092:127
+3	48757773	rs61137521	A	G	3103.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-0.794;DB;DP=172;Dels=0.00;FS=0.000;HaplotypeScore=1.8954;MLEAC=4;MLEAF=0.667;MQ=59.34;MQ0=0;MQRankSum=-0.693;QD=18.04;ReadPosRankSum=-1.667;SB=-1.874e+03;VQSLOD=7.9241;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,50:51:99:1723,141,0:127	1|0:31,34:65:99:745,0,814:127	1|0:24,32:56:99:677,0,603:127
+3	60283791	rs10154846	T	C	669.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.270;DB;DP=204;Dels=0.00;FS=1.585;HaplotypeScore=1.6639;MLEAC=1;MLEAF=0.167;MQ=59.39;MQ0=0;MQRankSum=0.370;QD=10.14;ReadPosRankSum=1.636;SB=-2.690e+02;VQSLOD=8.9468;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:63,0:63:99:0,190,2440:127	0|1:34,32:66:99:704,0,1020:127	0|0:74,0:75:99:0,190,2372:127
+3	68765638	rs1504297	C	G	4623.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-5.561;DB;DP=225;Dels=0.00;FS=3.176;HaplotypeScore=0.8432;MLEAC=4;MLEAF=0.667;MQ=59.80;MQ0=0;MQRankSum=-0.619;QD=20.55;ReadPosRankSum=-1.001;SB=-2.371e+03;VQSLOD=8.7354;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:40,39:79:99:1220,0,1330:127	1|1:0,75:75:99:2518,205,0:127	0|1:37,34:71:99:885,0,1185:127
+3	76722766	rs264537	C	G	845.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=3.666;DB;DP=202;Dels=0.00;FS=0.000;HaplotypeScore=0.2774;MLEAC=1;MLEAF=0.167;MQ=59.79;MQ0=0;MQRankSum=-0.795;QD=13.21;ReadPosRankSum=1.049;SB=-2.910e+02;VQSLOD=8.5280;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:70,0:70:99:0,208,2570:127	0|0:68,0:68:99:0,193,2332:127	0|1:34,30:64:99:880,0,995:127
+3	86234718	rs2324883	T	C	7655.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=234;Dels=0.00;FS=0.000;HaplotypeScore=0.6487;MLEAC=6;MLEAF=1.00;MQ=59.51;MQ0=0;QD=32.71;SB=-4.142e+03;VQSLOD=11.2111;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,80:80:99:2857,223,0:127	1|1:0,76:77:99:2512,196,0:127	1|1:0,77:77:99:2286,178,0:127
+3	99106655	rs2623376	A	G	1093.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.490;DB;DP=191;Dels=0.00;FS=2.283;HaplotypeScore=0.6267;MLEAC=2;MLEAF=0.333;MQ=59.76;MQ0=0;MQRankSum=-1.141;QD=9.51;ReadPosRankSum=0.079;SB=-5.610e+02;VQSLOD=8.1455;culprit=QD	GT:AD:DP:GQ:PL:TP	0|1:30,22:52:99:653,0,970:127	0|0:76,0:76:99:0,193,2462:127	1|0:44,19:63:99:479,0,1261:127
+3	108612711	rs2399252	T	A	3430.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-0.783;DB;DP=239;Dels=0.00;FS=4.436;HaplotypeScore=0.6593;MLEAC=3;MLEAF=0.500;MQ=59.64;MQ0=0;MQRankSum=-0.269;QD=14.35;ReadPosRankSum=-0.701;SB=-1.733e+03;VQSLOD=8.5079;culprit=MQ	GT:AD:DP:GQ:PL:TP	0/1:48,34:82:99:1066,0,1620:127	0/1:45,43:88:99:1370,0,1452:127	0/1:36,32:69:99:994,0,1128:127
+3	128140891	rs73201490	C	T	1315.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=5.394;DB;DP=142;Dels=0.00;FS=0.667;HaplotypeScore=3.4886;MLEAC=2;MLEAF=0.333;MQ=58.69;MQ0=0;MQRankSum=1.733;QD=14.30;ReadPosRankSum=0.758;SB=-6.400e+02;VQSLOD=6.7020;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:29,24:53:99:636,0,670:104	0|0:50,0:50:99:0,105,1188:104	1|0:12,27:39:99:718,0,250:104
+3	137840974	rs2622698	C	A	6792.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=232;Dels=0.00;FS=0.000;HaplotypeScore=2.6477;MLEAC=6;MLEAF=1.00;MQ=59.04;MQ0=0;QD=29.28;SB=-3.999e+03;VQSLOD=9.7681;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,79:79:99:2640,205,0:127	1|1:0,78:78:99:2229,178,0:127	1|1:0,75:75:99:1923,153,0:127
+3	148344553	rs62274102	C	A	3191.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-1.860;DB;DP=232;Dels=0.00;FS=12.061;HaplotypeScore=2.3659;MLEAC=3;MLEAF=0.500;MQ=59.32;MQ0=0;MQRankSum=-0.551;QD=19.58;ReadPosRankSum=2.411;SB=-1.757e+03;VQSLOD=6.2908;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|0:46,39:85:99:985,0,1339:127	1|1:0,78:78:99:2251,175,0:127	0|0:69,0:69:99:0,153,2018:127
+3	158557110	rs34445802	G	A	2374.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.805;DB;DP=237;Dels=0.00;FS=1.025;HaplotypeScore=1.6572;MLEAC=2;MLEAF=0.333;MQ=57.48;MQ0=0;MQRankSum=0.558;QD=14.05;ReadPosRankSum=-1.147;SB=-1.505e+03;VQSLOD=7.1338;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:43,56:99:99:1624,0,1344:127	1|0:33,37:70:99:789,0,916:127	0|0:68,0:68:99:0,156,2014:127
+3	179020937	rs13082816	C	T	1116.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=5.603;DB;DP=82;Dels=0.00;FS=0.000;HaplotypeScore=0.6358;MLEAC=4;MLEAF=0.667;MQ=54.57;MQ0=1;MQRankSum=0.374;QD=13.61;ReadPosRankSum=-0.037;SB=-2.010e+02;VQSLOD=6.0907;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:13,13:26:99:388,0,178:36	1|1:0,24:24:36:442,36,0:36	0|1:13,19:32:99:328,0,179:36
+3	189981901	.	A	G	179.25	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=2.258;DP=274;Dels=0.00;FS=73.736;HaplotypeScore=1.8333;MLEAC=1;MLEAF=0.167;MQ=54.08;MQ0=6;MQRankSum=-2.651;QD=1.97;ReadPosRankSum=-6.101;SB=-6.400e+01;VQSLOD=-18.1951;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|0:64,27:91:99:214,0,679:51	1|0:78,10:88:0:0,21,1685:51	0|0:86,9:95:74:0,74,1891:51
+3	197056886	rs7612900	G	A	7880.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=229;Dels=0.00;FS=0.000;HaplotypeScore=0.6106;MLEAC=6;MLEAF=1.00;MQ=59.18;MQ0=0;QD=34.41;SB=-3.459e+03;VQSLOD=11.8130;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,75:75:99:2786,214,0:127	1|1:0,81:81:99:2598,202,0:127	1|1:0,73:73:99:2496,193,0:127
+4	6333669	rs35678078	G	T	2186.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=1.220;DB;DP=198;Dels=0.00;FS=1.754;HaplotypeScore=0.7779;MLEAC=3;MLEAF=0.500;MQ=59.27;MQ0=0;MQRankSum=-0.256;QD=11.04;ReadPosRankSum=-0.469;SB=-1.621e+03;VQSLOD=9.4086;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:33,34:67:99:875,0,848:127	0/1:27,32:59:99:602,0,534:127	0/1:33,38:72:99:748,0,676:127
+4	12652343	rs13114660	G	T	610.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.176;DB;DP=127;Dels=0.00;FS=0.000;HaplotypeScore=1.5681;MLEAC=1;MLEAF=0.167;MQ=58.86;MQ0=0;MQRankSum=-0.468;QD=16.06;ReadPosRankSum=1.246;SB=-3.060e+02;VQSLOD=7.8400;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:43,0:43:99:0,120,1561:102	0|1:15,23:38:99:645,0,407:102	0|0:44,1:46:99:0,103,1539:102
+4	21819269	rs4285068	C	G	7252.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=216;Dels=0.00;FS=0.000;HaplotypeScore=0.6511;MLEAC=6;MLEAF=1.00;MQ=55.91;MQ0=0;QD=33.57;SB=-3.284e+03;VQSLOD=8.5427;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,83:83:99:2859,226,0:127	1|1:0,73:73:99:2413,193,0:127	1|1:0,59:59:99:1980,156,0:127
+4	30898977	rs4386561	G	A	2449.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=3.817;DB;DP=231;Dels=0.00;FS=0.000;HaplotypeScore=0.9382;MLEAC=2;MLEAF=0.333;MQ=58.94;MQ0=0;MQRankSum=0.173;QD=15.70;ReadPosRankSum=1.051;SB=-1.131e+03;VQSLOD=8.3611;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:33,46:79:99:1380,0,944:127	0|0:75,0:75:99:0,202,2608:127	1|0:43,34:77:99:1108,0,1335:127
+4	39062189	rs2566127	T	C	2641.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-2.019;DB;DP=201;Dels=0.00;FS=1.101;HaplotypeScore=2.8834;MLEAC=3;MLEAF=0.500;MQ=58.96;MQ0=0;MQRankSum=0.932;QD=13.14;ReadPosRankSum=-0.596;SB=-1.401e+03;VQSLOD=7.9734;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:35,29:64:99:880,0,1168:127	0/1:37,32:70:99:796,0,1021:127	0/1:31,36:67:99:1004,0,877:127
+4	48922864	rs7697262	G	C	1383.23	VQSRTrancheSNP99.00to99.90	AC=6;AF=1.00;AN=6;DB;DP=100;Dels=0.00;FS=0.000;HaplotypeScore=0.0000;MLEAC=6;MLEAF=1.00;MQ=20.20;MQ0=24;QD=13.83;SB=-3.860e+02;VQSLOD=-0.3210;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:3,38:41:57:625,57,0:32	1|1:0,28:28:33:368,33,0:32	1|1:2,29:31:39:428,39,0:32
+4	57135985	rs1715504	G	A	1213.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=3.549;DB;DP=173;Dels=0.00;FS=4.099;HaplotypeScore=1.6305;MLEAC=2;MLEAF=0.333;MQ=58.44;MQ0=0;MQRankSum=-1.006;QD=10.28;ReadPosRankSum=-0.933;SB=-4.500e+02;VQSLOD=7.4115;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:54,0:55:99:0,135,1546:127	0|1:30,23:54:99:563,0,608:127	0|1:35,28:64:99:689,0,562:127
+4	64522064	rs4860541	A	G	5942.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=188;Dels=0.00;FS=0.000;HaplotypeScore=0.2889;MLEAC=6;MLEAF=1.00;MQ=56.20;MQ0=0;QD=31.61;SB=-3.348e+03;VQSLOD=8.5367;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,68:68:99:2119,169,0:127	1|1:0,52:53:99:1661,132,0:127	1|1:0,67:67:99:2162,172,0:127
+4	71449060	rs60358213	G	A	2269.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=5.704;DB;DP=227;Dels=0.00;FS=13.048;HaplotypeScore=20.1360;MLEAC=2;MLEAF=0.333;MQ=55.35;MQ0=0;MQRankSum=0.477;QD=13.19;ReadPosRankSum=2.295;SB=-8.910e+02;VQSLOD=1.8937;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:60,40:100:99:1221,0,1476:127	1|0:37,35:72:99:1087,0,987:127	0|0:53,1:54:99:0,157,2026:127
+4	82427976	rs6841516	G	A	561.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.022;DB;DP=166;Dels=0.00;FS=0.000;HaplotypeScore=1.4715;MLEAC=1;MLEAF=0.167;MQ=59.56;MQ0=0;MQRankSum=-1.555;QD=11.00;ReadPosRankSum=0.016;SB=-3.880e+02;VQSLOD=8.0989;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:51,0:51:99:0,132,1705:127	0|1:22,29:51:99:596,0,483:127	0|0:64,0:64:99:0,135,1755:127
+4	103859292	rs7676943	C	G	7573.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=235;Dels=0.00;FS=0.000;HaplotypeScore=0.0000;MLEAC=6;MLEAF=1.00;MQ=58.63;MQ0=0;QD=32.23;SB=-3.953e+03;VQSLOD=10.3945;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:1,95:96:99:3289,256,0:127	1|1:0,73:73:99:2137,166,0:127	1|1:0,66:66:99:2147,166,0:127
+4	122900130	rs4833786	C	T	2361.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-0.390;DB;DP=244;Dels=0.00;FS=0.495;HaplotypeScore=0.5427;MLEAC=2;MLEAF=0.333;MQ=59.91;MQ0=0;MQRankSum=-0.628;QD=15.23;ReadPosRankSum=1.221;SB=-1.282e+03;VQSLOD=8.8105;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:89,0:89:99:0,250,3286:127	0|1:42,44:86:99:1257,0,1325:127	0|1:32,37:69:99:1143,0,941:127
+4	132671861	rs6856716	C	G	2622.26	VQSRTrancheSNP99.90to100.00	AC=2;AF=0.333;AN=6;BaseQRankSum=3.143;DB;DP=617;DS;Dels=0.00;FS=5.808;HaplotypeScore=34.4109;MLEAC=2;MLEAF=0.333;MQ=24.78;MQ0=42;MQRankSum=3.293;QD=5.89;ReadPosRankSum=-0.736;SB=-1.412e+03;VQSLOD=-77.3455;culprit=DP	GT:AD:DP:GQ:PL:TP	0|1:125,98:223:99:1761,0,1486:127	0|0:171,0:172:99:0,300,2641:127	1|0:152,70:222:99:900,0,2086:127
+4	141514835	rs55984232	C	T	1645.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=7.144;DB;DP=191;Dels=0.00;FS=2.756;HaplotypeScore=1.0735;MLEAC=2;MLEAF=0.333;MQ=59.26;MQ0=0;MQRankSum=0.726;QD=13.06;ReadPosRankSum=-0.789;SB=-8.550e+02;VQSLOD=8.9425;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:32,28:60:99:913,0,820:127	0|0:65,0:65:99:0,156,1886:127	1|0:34,32:66:99:771,0,750:127
+4	161180100	rs167176	G	C	2497.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=6.811;DB;DP=191;Dels=0.00;FS=5.370;HaplotypeScore=0.7812;MLEAC=3;MLEAF=0.500;MQ=59.78;MQ0=0;MQRankSum=-0.584;QD=13.07;ReadPosRankSum=0.756;SB=-1.206e+03;VQSLOD=8.0012;culprit=MQ	GT:AD:DP:GQ:PL:TP	0/1:32,36:68:99:1100,0,895:127	0/1:41,35:76:99:987,0,1028:127	0/1:29,17:47:99:449,0,820:127
+4	169085855	rs2251558	A	G	1161.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=0.721;DB;DP=244;Dels=0.00;FS=5.247;HaplotypeScore=0.4893;MLEAC=1;MLEAF=0.167;MQ=59.91;MQ0=0;MQRankSum=1.574;QD=13.99;ReadPosRankSum=0.454;SB=-5.590e+02;VQSLOD=7.4222;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:77,0:77:99:0,226,2915:127	0|1:43,40:83:99:1196,0,1294:127	0|0:84,0:84:99:0,232,2950:127
+4	177855678	rs1545090	A	G	7065.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=229;Dels=0.00;FS=0.000;HaplotypeScore=1.1696;MLEAC=6;MLEAF=1.00;MQ=59.50;MQ0=0;QD=30.85;SB=-3.799e+03;VQSLOD=11.0069;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,84:84:99:2701,235,0:127	1|1:0,79:80:99:2401,211,0:127	1|1:0,65:65:99:1963,165,0:127
+4	184811263	rs2871379	A	G	6376.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=211;Dels=0.00;FS=0.000;HaplotypeScore=0.5084;MLEAC=6;MLEAF=1.00;MQ=58.38;MQ0=0;QD=30.22;SB=-3.472e+03;VQSLOD=10.4879;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,78:78:99:2539,199,0:127	1|1:0,67:67:99:2072,165,0:127	1|1:0,66:66:99:1765,135,0:127
+4	190538070	rs62323772	G	A	106.69	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=0.099;DB;DP=19;Dels=0.00;FS=0.000;HaplotypeScore=4.3562;MLEAC=3;MLEAF=0.500;MQ=33.71;MQ0=0;MQRankSum=0.591;QD=5.93;ReadPosRankSum=-0.394;SB=-7.601e+01;VQSLOD=-1.3921;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:4,9:13:69:69,0,92:3	0|0:1,0:1:3:0,3,33:3	1|1:0,4:5:6:77,6,0:3
+5	3276081	rs4866540	G	A	3653.01	VQSRTrancheSNP99.00to99.90	AC=4;AF=0.667;AN=6;BaseQRankSum=5.002;DB;DP=176;Dels=0.00;FS=2.778;HaplotypeScore=19.0040;MLEAC=4;MLEAF=0.667;MQ=57.74;MQ0=0;MQRankSum=-0.569;QD=20.76;ReadPosRankSum=1.308;SB=-6.610e+02;VQSLOD=3.1833;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:1,71:72:99:2337,175,0:127	1|0:26,25:51:99:719,0,601:127	1|0:26,27:53:99:597,0,662:127
+5	10958957	rs852590	T	C	8430.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=243;Dels=0.00;FS=0.000;HaplotypeScore=1.8272;MLEAC=6;MLEAF=1.00;MQ=59.31;MQ0=0;QD=34.69;SB=-4.118e+03;VQSLOD=10.8702;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:1,96:97:99:3594,277,0:127	1|1:1,73:74:99:2318,181,0:127	1|1:0,72:72:99:2518,196,0:127
+5	20435939	rs12697584	A	C	2286.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-5.396;DB;DP=246;Dels=0.00;FS=4.681;HaplotypeScore=0.8744;MLEAC=2;MLEAF=0.333;MQ=59.74;MQ0=0;MQRankSum=-0.850;QD=14.20;ReadPosRankSum=0.391;SB=-1.305e+03;VQSLOD=8.1327;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:85,0:85:99:0,241,3183:127	0|1:41,37:78:99:1062,0,1304:127	0|1:39,44:83:99:1263,0,1222:127
+5	29069162	rs658439	G	A	499.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=1.981;DB;DP=199;Dels=0.00;FS=11.196;HaplotypeScore=1.6038;MLEAC=1;MLEAF=0.167;MQ=52.70;MQ0=0;MQRankSum=-0.608;QD=9.42;ReadPosRankSum=-1.103;SB=-2.310e+02;VQSLOD=4.0183;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:86,0:86:99:0,211,2509:110	0|0:60,0:60:99:0,111,1240:110	0|1:30,23:53:99:534,0,523:110
+5	36740339	rs36676	T	G	6995.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=230;Dels=0.00;FS=0.000;HaplotypeScore=2.0768;MLEAC=6;MLEAF=1.00;MQ=59.46;MQ0=0;QD=30.41;SB=-3.034e+03;VQSLOD=10.9208;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,75:75:99:2261,195,0:127	1|1:0,83:83:99:2579,217,0:127	1|1:0,71:72:99:2155,181,0:127
+5	49438828	rs137880658	G	A	424.24	VQSRTrancheSNP99.90to100.00	AC=1;AF=0.167;AN=6;BaseQRankSum=-4.376;DB;DP=748;DS;Dels=0.00;FS=7.184;HaplotypeScore=20.6618;MLEAC=1;MLEAF=0.167;MQ=19.63;MQ0=158;MQRankSum=3.819;QD=1.70;ReadPosRankSum=1.191;SB=-2.220e+02;VQSLOD=-98.2155;culprit=DP	GT:AD:DP:GQ:PL:TP	0|0:249,0:249:99:0,555,4848:127	0|1:204,46:250:99:459,0,2894:127	0|0:249,0:249:99:0,480,4326:127
+5	58243302	rs457566	A	C	6237.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-1.663;DB;DP=233;Dels=0.00;FS=3.429;HaplotypeScore=0.8859;MLEAC=5;MLEAF=0.833;MQ=59.70;MQ0=0;MQRankSum=-0.232;QD=26.77;ReadPosRankSum=0.957;SB=-2.566e+03;VQSLOD=9.3537;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:0,87:87:99:2923,229,0:127	1|0:36,50:86:99:1429,0,1006:127	1|1:0,60:60:99:1885,147,0:127
+5	70856663	rs157045	T	C	2040.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-7.809;DB;DP=234;Dels=0.00;FS=1.824;HaplotypeScore=1.0544;MLEAC=2;MLEAF=0.333;MQ=58.65;MQ0=0;MQRankSum=0.989;QD=13.16;ReadPosRankSum=0.719;SB=-8.820e+02;VQSLOD=7.3513;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:44,41:85:99:1087,0,1448:127	1|0:28,42:70:99:992,0,789:127	0|0:79,0:79:99:0,181,2342:127
+5	80900719	rs2917540	G	T	4938.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=3.261;DB;DP=240;Dels=0.00;FS=0.489;HaplotypeScore=0.5959;MLEAC=4;MLEAF=0.667;MQ=59.63;MQ0=0;MQRankSum=-2.115;QD=20.58;ReadPosRankSum=0.288;SB=-2.548e+03;VQSLOD=8.4417;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|1:52,40:92:99:1207,0,1768:127	0|1:37,33:70:99:960,0,1205:127	1|1:0,78:78:99:2771,211,0:127
+5	93119893	rs6879620	G	A	4262.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=4.930;DB;DP=239;Dels=0.00;FS=1.050;HaplotypeScore=2.1583;MLEAC=4;MLEAF=0.667;MQ=59.81;MQ0=0;MQRankSum=0.891;QD=17.83;ReadPosRankSum=-2.670;SB=-2.596e+03;VQSLOD=7.0681;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|1:49,42:91:99:1098,0,1410:127	0|1:36,38:74:99:890,0,1008:127	1|1:0,74:74:99:2274,178,0:127
+5	102962771	rs6866105	A	G	5087.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-2.665;DB;DP=200;Dels=0.00;FS=8.083;HaplotypeScore=2.2837;MLEAC=5;MLEAF=0.833;MQ=58.71;MQ0=0;MQRankSum=-0.503;QD=25.44;ReadPosRankSum=-0.482;SB=-2.172e+03;VQSLOD=7.2212;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,75:75:99:2373,184,0:127	1|1:0,59:59:99:1776,141,0:127	1|0:31,35:66:99:938,0,803:127
+5	112750674	rs9716322	A	C	598.24	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=-0.293;DB;DP=199;Dels=0.00;FS=2.948;HaplotypeScore=0.3328;MLEAC=1;MLEAF=0.167;MQ=45.61;MQ0=2;MQRankSum=-2.398;QD=12.21;ReadPosRankSum=1.159;SB=-8.101e+01;VQSLOD=2.7717;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:81,0:81:99:0,196,2534:127	0|1:23,26:49:99:633,0,479:127	0|0:68,1:69:99:0,174,2191:127
+5	121302662	.	G	T	143.72	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=1.413;DP=150;Dels=0.02;FS=161.482;HaplotypeScore=2.8631;MLEAC=3;MLEAF=0.500;MQ=35.76;MQ0=1;MQRankSum=0.422;QD=0.96;ReadPosRankSum=-5.675;SB=-1.466e+00;VQSLOD=-77.2440;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:32,21:53:99:120,0,251:5	0/1:35,12:47:57:57,0,271:5	0/1:35,12:47:4:4,0,259:5
+5	132377304	rs72801439	A	T	858.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.113;DB;DP=219;Dels=0.00;FS=10.632;HaplotypeScore=0.6638;MLEAC=1;MLEAF=0.167;MQ=59.41;MQ0=0;MQRankSum=-0.881;QD=11.29;ReadPosRankSum=0.435;SB=-3.050e+02;VQSLOD=7.6837;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:67,0:67:99:0,163,2149:127	0|1:43,33:76:99:893,0,1280:127	0|0:76,0:76:99:0,199,2553:127
+5	144321895	rs35068704	A	T	1535.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=6.048;DB;DP=203;Dels=0.00;FS=13.289;HaplotypeScore=0.5075;MLEAC=2;MLEAF=0.333;MQ=57.36;MQ0=0;MQRankSum=2.191;QD=11.37;ReadPosRankSum=-1.361;SB=-7.640e+02;VQSLOD=5.7211;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:34,25:59:99:595,0,976:127	0|0:68,0:68:99:0,190,2435:127	1|0:39,37:76:99:979,0,1274:127
+5	154441640	rs467330	A	C	1133.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.127;DB;DP=235;Dels=0.00;FS=2.103;HaplotypeScore=1.1893;MLEAC=1;MLEAF=0.167;MQ=59.65;MQ0=0;MQRankSum=0.766;QD=12.59;ReadPosRankSum=-0.535;SB=-6.500e+02;VQSLOD=9.8335;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:61,0:61:99:0,172,2172:127	0|1:45,45:90:99:1168,0,1368:127	0|0:82,1:84:99:0,226,2825:127
+5	164600452	rs7711548	C	A	588.32	VQSRTrancheSNP99.00to99.90	AC=6;AF=1.00;AN=6;BaseQRankSum=-3.291;DB;DP=192;Dels=0.02;FS=2.319;HaplotypeScore=32.6662;MLEAC=6;MLEAF=1.00;MQ=57.55;MQ0=0;MQRankSum=1.536;QD=3.06;ReadPosRankSum=-1.533;SB=-2.085e+03;VQSLOD=-1.4325;culprit=QD	GT:AD:DP:GQ:PL:TP	1|1:15,52:69:18:155,18,0:15	1|1:11,55:66:36:296,36,0:15	1|1:18,36:54:15:175,15,0:15
+5	174249229	rs11739079	C	G	1613.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-4.540;DB;DP=190;Dels=0.00;FS=6.482;HaplotypeScore=2.0416;MLEAC=2;MLEAF=0.333;MQ=59.51;MQ0=0;MQRankSum=-0.898;QD=11.86;ReadPosRankSum=0.601;SB=-8.320e+02;VQSLOD=7.7782;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:32,43:75:99:1069,0,928:123	0|0:54,0:54:99:0,123,1554:123	1|0:33,27:61:99:583,0,883:123
+6	1620147	rs2569882	T	C	252.30	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-0.862;DB;DP=38;Dels=0.00;FS=8.023;HaplotypeScore=0.2217;MLEAC=5;MLEAF=0.833;MQ=57.65;MQ0=0;MQRankSum=-0.918;QD=9.34;ReadPosRankSum=0.584;SB=-4.005e+01;VQSLOD=4.3258;culprit=DP	GT:AD:DP:GQ:PL:TP	1|1:0,17:17:21:254,21,0:4	1|0:3,8:11:2:0,3,40:4	1|1:0,10:10:3:39,3,0:4
+6	9408051	rs11751621	C	G	5140.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-2.350;DB;DP=241;Dels=0.00;FS=0.000;HaplotypeScore=0.6637;MLEAC=4;MLEAF=0.667;MQ=59.81;MQ0=0;MQRankSum=-0.205;QD=21.33;ReadPosRankSum=-0.033;SB=-2.552e+03;VQSLOD=8.9881;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:42,40:82:99:1156,0,1352:127	0|1:36,45:81:99:1253,0,1134:127	1|1:0,78:78:99:2731,214,0:127
+6	18687376	rs9383429	A	T	1162.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.746;DB;DP=232;Dels=0.00;FS=0.638;HaplotypeScore=0.2774;MLEAC=1;MLEAF=0.167;MQ=59.42;MQ0=0;MQRankSum=-0.733;QD=15.71;ReadPosRankSum=-0.146;SB=-6.490e+02;VQSLOD=9.4317;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:82,0:82:99:0,241,3181:127	0|0:76,0:76:99:0,217,2832:127	0|1:33,41:74:99:1197,0,1008:127
+6	26687649	.	G	C	1654.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=9.718;DP=410;Dels=0.00;FS=5.973;HaplotypeScore=5.0786;MLEAC=2;MLEAF=0.333;MQ=28.19;MQ0=32;MQRankSum=0.048;QD=6.17;ReadPosRankSum=0.408;SB=-5.110e+02;VQSLOD=-8.7346;culprit=DP	GT:AD:DP:GQ:PL:TP	0|1:117,49:166:99:1013,0,2495:127	0|0:141,1:142:99:0,244,2576:127	1|0:70,32:102:99:680,0,1048:127
+6	35346891	.	C	T	483.26	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=-6.402;DP=205;Dels=0.02;FS=214.154;HaplotypeScore=4.5086;MLEAC=3;MLEAF=0.500;MQ=51.07;MQ0=1;MQRankSum=-2.038;QD=2.36;ReadPosRankSum=-2.250;SB=-1.065e-02;VQSLOD=-116.9542;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:48,31:79:99:257,0,635:80	0/1:40,22:62:99:185,0,308:80	0/1:44,16:60:80:80,0,534:80
+6	45421630	rs1343799	C	T	5422.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=3.419;DB;DP=240;Dels=0.00;FS=10.689;HaplotypeScore=0.7979;MLEAC=4;MLEAF=0.667;MQ=59.46;MQ0=0;MQRankSum=1.089;QD=22.59;ReadPosRankSum=1.252;SB=-2.647e+03;VQSLOD=7.7035;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:29,43:72:99:1445,0,843:127	0|1:43,37:80:99:1121,0,1302:127	1|1:0,88:88:99:2856,220,0:127
+6	55412503	rs12201934	T	C	882.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.280;DB;DP=182;Dels=0.00;FS=0.744;HaplotypeScore=0.3332;MLEAC=1;MLEAF=0.167;MQ=59.64;MQ0=0;MQRankSum=-0.765;QD=13.57;ReadPosRankSum=0.147;SB=-4.590e+02;VQSLOD=9.3766;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:61,0:61:99:0,181,2371:127	0|1:35,30:65:99:917,0,1046:127	0|0:56,0:56:99:0,150,1969:127
+6	71018445	rs1321063	C	A	518.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=2.668;DB;DP=185;Dels=0.00;FS=1.618;HaplotypeScore=0.6919;MLEAC=1;MLEAF=0.167;MQ=58.93;MQ0=0;MQRankSum=0.355;QD=8.78;ReadPosRankSum=1.306;SB=-4.020e+02;VQSLOD=7.7510;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:67,0:67:99:0,184,2404:127	0|0:59,0:59:99:0,160,2065:127	0|1:29,30:59:99:553,0,809:127
+6	79887872	rs6454101	C	T	2130.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.355;DB;DP=204;Dels=0.00;FS=11.823;HaplotypeScore=2.3806;MLEAC=3;MLEAF=0.500;MQ=59.68;MQ0=0;MQRankSum=1.011;QD=10.44;ReadPosRankSum=-0.769;SB=-1.370e+03;VQSLOD=7.5187;culprit=MQ	GT:AD:DP:GQ:PL:TP	0/1:31,31:62:99:806,0,990:127	0/1:42,31:73:99:606,0,921:127	0/1:29,40:69:99:757,0,749:127
+6	89947117	rs9942462	A	G	5019.01	PASS	AC=6;AF=1.00;AN=6;BaseQRankSum=1.654;DB;DP=181;Dels=0.00;FS=0.000;HaplotypeScore=3.3205;MLEAC=6;MLEAF=1.00;MQ=53.30;MQ0=0;MQRankSum=0.428;QD=27.73;ReadPosRankSum=1.090;SB=-3.151e+03;VQSLOD=5.6763;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,59:60:99:1715,138,0:92	1|1:1,55:56:93:1401,93,0:92	1|1:0,65:65:99:1903,153,0:92
+6	110345430	rs56272355	T	C	882.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-7.241;DB;DP=230;Dels=0.00;FS=2.159;HaplotypeScore=1.7615;MLEAC=1;MLEAF=0.167;MQ=59.70;MQ0=0;MQRankSum=-0.200;QD=11.46;ReadPosRankSum=-0.480;SB=-5.580e+02;VQSLOD=8.9824;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:77,0:77:99:0,220,2860:127	0|0:75,0:76:99:0,184,2321:127	0|1:35,42:77:99:917,0,926:127
+6	120734422	rs62424426	T	C	1091.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.268;DB;DP=208;Dels=0.00;FS=4.347;HaplotypeScore=0.7034;MLEAC=1;MLEAF=0.167;MQ=59.71;MQ0=0;MQRankSum=-0.188;QD=14.36;ReadPosRankSum=-0.149;SB=-5.560e+02;VQSLOD=8.6529;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:70,1:71:99:0,205,2692:127	0|0:61,0:61:99:0,175,2298:127	0|1:39,37:76:99:1126,0,1140:127
+6	131725921	.	G	A	64.24	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=3.650;DP=182;Dels=0.00;FS=3.535;HaplotypeScore=2.2441;MLEAC=1;MLEAF=0.167;MQ=50.85;MQ0=1;MQRankSum=-6.039;QD=1.31;ReadPosRankSum=-1.757;SB=-4.901e+01;VQSLOD=-0.6667;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:59,0:60:99:0,168,1897:98	0|1:33,16:49:99:99,0,790:98	0|0:73,0:73:99:0,156,1824:98
+6	143691852	rs17792267	C	T	3641.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-1.465;DB;DP=203;Dels=0.00;FS=2.413;HaplotypeScore=0.3222;MLEAC=3;MLEAF=0.500;MQ=59.54;MQ0=0;MQRankSum=1.198;QD=27.17;ReadPosRankSum=-1.140;SB=-1.772e+03;VQSLOD=8.8712;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:29,33:62:99:1131,0,803:127	1|1:0,72:72:99:2510,196,0:127	0|0:69,0:69:99:0,190,2480:127
+6	154006585	rs7752561	G	A	919.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.323;DB;DP=223;Dels=0.00;FS=0.000;HaplotypeScore=0.8254;MLEAC=1;MLEAF=0.167;MQ=59.35;MQ0=0;MQRankSum=-0.749;QD=10.45;ReadPosRankSum=-0.155;SB=-5.260e+02;VQSLOD=8.8368;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:70,0:70:99:0,202,2601:127	0|1:51,37:88:99:954,0,1475:127	0|0:65,0:65:99:0,175,2269:127
+6	162459664	rs2849564	C	T	1819.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=8.399;DB;DP=201;Dels=0.00;FS=3.295;HaplotypeScore=2.5591;MLEAC=2;MLEAF=0.333;MQ=59.38;MQ0=0;MQRankSum=1.792;QD=12.90;ReadPosRankSum=-1.045;SB=-1.068e+03;VQSLOD=8.1160;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:28,40:68:99:1007,0,793:120	1|0:38,35:73:99:851,0,831:120	0|0:60,0:60:99:0,120,1421:120
+7	4683258	rs62450857	G	A	1127.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-0.991;DB;DP=191;Dels=0.00;FS=3.236;HaplotypeScore=0.2774;MLEAC=1;MLEAF=0.167;MQ=57.16;MQ0=0;MQRankSum=1.297;QD=14.09;ReadPosRankSum=0.469;SB=-4.730e+02;VQSLOD=6.6182;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:66,0:66:99:0,196,2495:120	0|1:38,42:80:99:1162,0,1016:120	0|0:45,0:45:99:0,120,1531:120
+7	12502849	rs848025	C	G	4109.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-8.809;DB;DP=220;Dels=0.00;FS=1.141;HaplotypeScore=1.8049;MLEAC=4;MLEAF=0.667;MQ=59.56;MQ0=0;MQRankSum=0.625;QD=18.68;ReadPosRankSum=-0.019;SB=-1.989e+03;VQSLOD=8.7123;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:47,45:92:99:1216,0,1501:127	1|1:0,71:71:99:2145,184,0:127	0|1:27,30:57:99:748,0,743:127
+7	29544610	rs6462145	A	T	4020.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=0.326;DB;DP=189;Dels=0.00;FS=5.388;HaplotypeScore=1.2974;MLEAC=4;MLEAF=0.667;MQ=58.54;MQ0=0;MQRankSum=1.295;QD=21.27;ReadPosRankSum=-1.212;SB=-1.878e+03;VQSLOD=7.3155;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:27,49:77:99:1466,0,733:127	1|1:0,64:64:99:1888,147,0:127	0|1:18,27:48:99:666,0,410:127
+7	38984187	rs118081099	A	C	569.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-0.110;DB;DP=182;Dels=0.00;FS=6.196;HaplotypeScore=0.5533;MLEAC=1;MLEAF=0.167;MQ=54.22;MQ0=0;MQRankSum=1.675;QD=9.33;ReadPosRankSum=1.162;SB=-1.260e+02;VQSLOD=4.8877;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:72,0:72:99:0,196,2446:127	0|1:38,23:61:99:604,0,1196:127	0|0:48,1:49:99:0,138,1711:127
+7	48862174	rs965346	A	G	877.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-6.250;DB;DP=194;Dels=0.00;FS=6.112;HaplotypeScore=0.6489;MLEAC=1;MLEAF=0.167;MQ=57.54;MQ0=0;MQRankSum=2.058;QD=16.25;ReadPosRankSum=-1.204;SB=-4.040e+02;VQSLOD=6.2372;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:82,0:82:99:0,232,3007:127	0|0:58,0:58:99:0,160,2067:127	0|1:22,32:54:99:912,0,686:127
+7	56584972	rs34475770	C	T	2465.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-0.103;DB;DP=255;Dels=0.00;FS=2.230;HaplotypeScore=0.8840;MLEAC=2;MLEAF=0.333;MQ=58.76;MQ0=0;MQRankSum=1.766;QD=15.03;ReadPosRankSum=1.126;SB=-1.412e+03;VQSLOD=6.5725;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:91,0:91:99:0,259,3369:127	0|1:36,49:85:99:1444,0,1000:127	0|1:38,41:79:99:1060,0,1084:127
+7	62232046	.	C	T	1155.24	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.643;DP=230;Dels=0.00;FS=6.304;HaplotypeScore=12.7679;MLEAC=1;MLEAF=0.167;MQ=58.61;MQ0=3;MQRankSum=-0.697;QD=15.20;ReadPosRankSum=-1.202;SB=-4.440e+02;VQSLOD=2.5725;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:77,1:78:99:0,217,2824:127	0|0:76,0:76:99:0,202,2604:127	0|1:34,42:76:99:1190,0,994:127
+7	69334430	rs917719	C	T	1223.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=5.841;DB;DP=193;Dels=0.00;FS=6.656;HaplotypeScore=0.8147;MLEAC=2;MLEAF=0.333;MQ=59.81;MQ0=0;MQRankSum=1.631;QD=9.63;ReadPosRankSum=1.458;SB=-7.370e+02;VQSLOD=7.0004;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:38,39:77:99:770,0,1258:127	1|0:26,24:50:99:492,0,840:127	0|0:66,0:66:99:0,172,2210:127
+7	79508376	rs2525826	G	T	716.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=2.152;DB;DP=196;Dels=0.00;FS=0.000;HaplotypeScore=0.8658;MLEAC=1;MLEAF=0.167;MQ=59.48;MQ0=0;MQRankSum=1.420;QD=13.51;ReadPosRankSum=0.263;SB=-4.080e+02;VQSLOD=9.5728;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:65,0:65:99:0,181,2312:127	0|0:78,0:78:99:0,226,2916:127	0|1:27,26:53:99:751,0,845:127
+7	89752110	rs39232	T	G	3944.01	VQSRTrancheSNP99.00to99.90	AC=6;AF=1.00;AN=6;DB;DP=216;Dels=0.00;FS=0.000;HaplotypeScore=1.4477;MLEAC=6;MLEAF=1.00;MQ=38.19;MQ0=21;QD=18.26;SB=-2.716e+03;VQSLOD=2.6638;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:0,70:70:99:1564,132,0:101	1|1:0,79:79:99:1258,108,0:101	1|1:0,66:66:99:1122,102,0:101
+7	101161506	rs2158739	C	T	4522.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=1.698;DB;DP=172;Dels=0.00;FS=4.280;HaplotypeScore=1.5077;MLEAC=5;MLEAF=0.833;MQ=58.18;MQ0=0;MQRankSum=-0.295;QD=26.29;ReadPosRankSum=0.974;SB=-2.287e+03;VQSLOD=8.2831;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,72:73:99:2443,202,0:110	1|0:23,26:50:99:711,0,586:110	1|1:0,48:49:99:1368,111,0:110
+7	110843795	rs214455	A	G	8548.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=258;Dels=0.00;FS=0.000;HaplotypeScore=2.3561;MLEAC=6;MLEAF=1.00;MQ=59.35;MQ0=0;QD=33.13;SB=-4.197e+03;VQSLOD=10.7627;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,106:106:99:3535,301,0:127	1|1:0,66:66:99:2270,193,0:127	1|1:0,86:86:99:2743,229,0:127
+7	124589684	rs12113765	G	C	4948.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-2.607;DB;DP=243;Dels=0.00;FS=1.040;HaplotypeScore=3.3790;MLEAC=4;MLEAF=0.667;MQ=58.74;MQ0=0;MQRankSum=1.246;QD=20.36;ReadPosRankSum=-0.387;SB=-2.411e+03;VQSLOD=7.0507;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:44,27:71:99:796,0,1350:127	1|1:0,84:85:99:2760,217,0:127	0|1:41,46:87:99:1392,0,1180:127
+7	144383888	rs73161092	T	C	689.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-7.434;DB;DP=254;Dels=0.00;FS=8.629;HaplotypeScore=0.0000;MLEAC=1;MLEAF=0.167;MQ=59.54;MQ0=0;MQRankSum=0.163;QD=8.62;ReadPosRankSum=-1.802;SB=-3.560e+02;VQSLOD=6.4544;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:90,0:90:99:0,268,3553:127	0|1:47,33:80:99:724,0,1392:127	0|0:84,0:84:99:0,202,2644:127
+7	152208470	rs6464236	G	C	4321.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=5.233;DB;DP=169;Dels=0.00;FS=1.635;HaplotypeScore=1.3568;MLEAC=5;MLEAF=0.833;MQ=57.18;MQ0=1;MQRankSum=1.907;QD=25.57;ReadPosRankSum=0.892;SB=-2.137e+03;VQSLOD=6.7602;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:1,56:57:99:1949,150,0:122	1|1:0,54:54:99:1557,123,0:122	1|0:30,28:58:99:815,0,715:122
+7	158686803	rs55765467	T	C	200.26	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=-10.112;DB;DP=310;Dels=0.00;FS=2.596;HaplotypeScore=1.2829;MLEAC=3;MLEAF=0.500;MQ=47.32;MQ0=0;MQRankSum=-4.959;QD=0.65;ReadPosRankSum=-10.956;SB=-1.206e+03;VQSLOD=-17.6411;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0/1:64,33:97:99:148,0,1949:32	0/1:73,45:118:58:58,0,2287:32	0/1:65,30:95:33:33,0,1910:32
+8	4048009	rs7007410	C	T	2713.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.954;DB;DP=197;Dels=0.00;FS=2.483;HaplotypeScore=0.7125;MLEAC=3;MLEAF=0.500;MQ=57.03;MQ0=0;MQRankSum=0.882;QD=13.77;ReadPosRankSum=-0.496;SB=-1.406e+03;VQSLOD=6.5035;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:38,30:68:99:847,0,1168:127	0/1:30,30:60:99:916,0,921:127	0/1:32,36:69:99:989,0,882:127
+8	8974322	rs28440961	G	A	1682.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.716;DB;DP=190;Dels=0.00;FS=0.579;HaplotypeScore=1.5434;MLEAC=2;MLEAF=0.333;MQ=59.33;MQ0=0;MQRankSum=-0.652;QD=12.65;ReadPosRankSum=0.746;SB=-7.040e+02;VQSLOD=9.3708;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|0:32,32:64:99:790,0,1002:125	1|0:33,36:69:99:931,0,866:125	0|0:57,0:57:99:0,126,1622:125
+8	14463368	rs1355302	T	A	2523.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=6.793;DB;DP=236;Dels=0.00;FS=3.776;HaplotypeScore=0.3245;MLEAC=2;MLEAF=0.333;MQ=59.14;MQ0=0;MQRankSum=-0.381;QD=15.97;ReadPosRankSum=-0.045;SB=-1.421e+03;VQSLOD=7.6920;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:36,43:79:99:1332,0,1176:127	0|0:78,0:78:99:0,214,2749:127	1|0:35,44:79:99:1230,0,1162:127
+8	21736923	rs13256921	G	A	217.24	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=1.884;DB;DP=93;Dels=0.00;FS=5.533;HaplotypeScore=6.4995;MLEAC=1;MLEAF=0.167;MQ=42.13;MQ0=3;MQRankSum=0.517;QD=6.79;ReadPosRankSum=1.706;SB=-1.980e+02;VQSLOD=-2.6430;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:34,0:34:66:0,66,691:41	0|1:15,17:32:99:252,0,211:41	0|0:27,0:27:42:0,42,425:41
+8	42044954	rs1058720	G	A	2760.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=4.313;DB;DP=157;Dels=0.00;FS=0.000;HaplotypeScore=2.0979;MLEAC=4;MLEAF=0.667;MQ=58.82;MQ0=0;MQRankSum=-2.021;QD=17.58;ReadPosRankSum=-0.462;SB=-1.377e+03;VQSLOD=7.5777;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,56:56:99:1820,147,0:127	1|0:24,27:51:99:555,0,233:127	1|0:26,24:50:99:427,0,458:127
+8	56608897	rs57623198	C	T	1911.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-1.515;DB;DP=229;Dels=0.00;FS=0.000;HaplotypeScore=1.1327;MLEAC=2;MLEAF=0.333;MQ=59.80;MQ0=0;MQRankSum=0.336;QD=12.66;ReadPosRankSum=-2.326;SB=-9.730e+02;VQSLOD=8.5587;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:78,0:78:99:0,229,2989:127	0|1:44,30:74:99:897,0,1444:127	0|1:44,33:77:99:1053,0,1400:127
+8	66327344	rs13282622	G	A	3918.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=4.514;DB;DP=192;Dels=0.00;FS=3.531;HaplotypeScore=1.6541;MLEAC=4;MLEAF=0.667;MQ=58.91;MQ0=0;MQRankSum=0.706;QD=20.41;ReadPosRankSum=-0.327;SB=-2.091e+03;VQSLOD=8.6266;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:34,37:71:99:1137,0,923:127	0|1:32,28:61:99:806,0,988:127	1|1:0,60:60:99:1975,153,0:127
+8	78181000	rs1563030	A	G	5178.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-0.030;DB;DP=192;Dels=0.00;FS=4.675;HaplotypeScore=2.9473;MLEAC=5;MLEAF=0.833;MQ=59.62;MQ0=0;MQRankSum=-0.467;QD=26.97;ReadPosRankSum=-0.855;SB=-2.617e+03;VQSLOD=7.3445;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,59:59:99:1954,150,0:127	1|0:32,37:70:99:1198,0,888:127	1|1:0,63:63:99:2026,156,0:127
+8	90278211	rs11998540	A	T	357.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-1.457;DB;DP=69;Dels=0.00;FS=1.289;HaplotypeScore=0.0000;MLEAC=2;MLEAF=0.333;MQ=58.96;MQ0=0;MQRankSum=1.415;QD=8.12;ReadPosRankSum=1.258;SB=-9.501e+01;VQSLOD=5.9584;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:12,7:19:99:185,0,416:60	0|0:25,0:25:60:0,60,805:60	1|0:16,9:25:99:211,0,500:60
+8	102355800	rs10103956	G	T	1756.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=0.927;DB;DP=189;Dels=0.00;FS=5.921;HaplotypeScore=1.5445;MLEAC=2;MLEAF=0.333;MQ=59.66;MQ0=0;MQRankSum=-0.420;QD=13.41;ReadPosRankSum=-0.019;SB=-5.470e+02;VQSLOD=8.1563;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:32,38:70:99:1078,0,999:127	1|0:35,26:61:99:717,0,1103:127	0|0:57,0:58:99:0,156,2011:127
+8	113376378	rs41340951	T	C	4379.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-8.019;DB;DP=211;Dels=0.00;FS=1.826;HaplotypeScore=0.2629;MLEAC=4;MLEAF=0.667;MQ=59.85;MQ0=0;MQRankSum=1.273;QD=20.75;ReadPosRankSum=0.144;SB=-1.893e+03;VQSLOD=8.8374;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,67:67:99:2221,187,0:127	1|0:32,37:69:99:1083,0,1066:127	1|0:35,40:75:99:1075,0,1108:127
+8	123499998	rs9693135	T	C	926.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-7.820;DB;DP=207;Dels=0.00;FS=2.678;HaplotypeScore=1.2574;MLEAC=2;MLEAF=0.333;MQ=56.08;MQ0=0;MQRankSum=-2.729;QD=6.34;ReadPosRankSum=-0.269;SB=-8.230e+02;VQSLOD=4.3016;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:61,0:61:99:0,172,2301:127	0|1:37,35:72:99:622,0,769:127	0|1:48,26:74:99:343,0,1280:127
+8	132727531	rs7000409	G	A	2050.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=5.475;DB;DP=220;Dels=0.00;FS=5.203;HaplotypeScore=1.9424;MLEAC=2;MLEAF=0.333;MQ=59.71;MQ0=0;MQRankSum=1.230;QD=14.14;ReadPosRankSum=-0.871;SB=-1.080e+03;VQSLOD=7.7925;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|1:29,35:64:99:1215,0,785:127	0|0:75,0:75:99:0,190,2423:127	1|0:50,31:81:99:874,0,1611:127
+8	140651779	rs1469039	G	A	1879.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-2.189;DB;DP=145;Dels=0.00;FS=0.000;HaplotypeScore=1.7695;MLEAC=3;MLEAF=0.500;MQ=58.39;MQ0=0;MQRankSum=0.745;QD=12.96;ReadPosRankSum=-0.159;SB=-9.360e+02;VQSLOD=9.0059;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:23,24:47:99:612,0,740:127	0/1:21,31:52:99:684,0,478:127	0/1:20,26:46:99:622,0,367:127
+9	2072356	rs4741641	T	G	2054.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-7.235;DB;DP=243;Dels=0.00;FS=0.000;HaplotypeScore=2.2089;MLEAC=2;MLEAF=0.333;MQ=59.64;MQ0=0;MQRankSum=1.166;QD=13.00;ReadPosRankSum=-0.475;SB=-1.004e+03;VQSLOD=9.0206;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:49,45:94:99:1245,0,1615:127	0|0:85,0:85:99:0,217,2818:127	1|0:32,32:64:99:848,0,936:127
+9	16302655	rs9298755	T	G	1394.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=3.356;DB;DP=200;Dels=0.00;FS=0.000;HaplotypeScore=3.1863;MLEAC=2;MLEAF=0.333;MQ=59.33;MQ0=0;MQRankSum=0.586;QD=10.03;ReadPosRankSum=-0.771;SB=-8.720e+02;VQSLOD=7.7724;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:60,1:61:99:0,165,2004:127	0|1:29,28:57:99:494,0,759:127	0|1:41,40:82:99:939,0,1069:127
+9	25201692	rs9408058	C	T	8643.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=245;Dels=0.00;FS=0.000;HaplotypeScore=0.8982;MLEAC=6;MLEAF=1.00;MQ=59.13;MQ0=0;QD=35.28;SB=-4.398e+03;VQSLOD=12.1738;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,89:89:99:3312,256,0:127	1|1:0,81:81:99:2771,223,0:127	1|1:0,75:75:99:2560,202,0:127
+9	44998848	.	C	G	254.43	VQSRTrancheSNP99.00to99.90	AC=5;AF=0.833;AN=6;BaseQRankSum=2.203;DP=193;Dels=0.00;FS=10.822;HaplotypeScore=0.2447;MLEAC=5;MLEAF=0.833;MQ=6.48;MQ0=163;MQRankSum=-1.206;QD=1.32;ReadPosRankSum=0.790;SB=-1.372e+02;VQSLOD=-6.6319;culprit=QD	GT:AD:DP:GQ:PL:TP	1|0:39,27:66:23:132,0,23:8	1|1:36,16:52:15:118,15,0:8	0|1:53,22:75:1:45,6,0:8
+9	69810010	rs113063015	A	C	280.26	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=-1.223;DB;DP=716;DS;Dels=0.00;FS=8.996;HaplotypeScore=39.8350;MLEAC=3;MLEAF=0.500;MQ=37.32;MQ0=64;MQRankSum=-3.574;QD=0.39;ReadPosRankSum=-0.897;SB=-1.065e-02;VQSLOD=-68.1677;culprit=DP	GT:AD:DP:GQ:PL:TP	0/1:218,23:241:73:73,0,3591:70	0/1:188,39:227:99:172,0,4233:70	0/1:217,31:248:74:74,0,5042:70
+9	78741390	rs7049138	G	A	1797.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=6.235;DB;DP=168;Dels=0.00;FS=4.003;HaplotypeScore=1.0858;MLEAC=3;MLEAF=0.500;MQ=55.32;MQ0=2;MQRankSum=-1.673;QD=16.34;ReadPosRankSum=-0.626;SB=-7.740e+02;VQSLOD=5.1915;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:37,33:70:99:828,0,918:80	1|1:0,40:40:81:1014,81,0:80	0|0:58,0:58:99:0,129,1403:80
+9	89010476	rs164937	T	C	736.24	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.977;DB;DP=216;Dels=0.00;FS=1.481;HaplotypeScore=1.0649;MLEAC=1;MLEAF=0.167;MQ=39.79;MQ0=9;MQRankSum=-3.028;QD=9.56;ReadPosRankSum=0.542;SB=-4.240e+02;VQSLOD=2.0772;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:66,0:66:99:0,174,2097:127	0|1:40,37:77:99:771,0,876:127	0|0:73,0:73:99:0,183,2147:127
+9	98491693	rs12337935	C	A	1474.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=2.098;DB;DP=97;Dels=0.00;FS=14.282;HaplotypeScore=1.7726;MLEAC=4;MLEAF=0.667;MQ=58.64;MQ0=0;MQRankSum=-0.224;QD=15.20;ReadPosRankSum=1.166;SB=-6.430e+02;VQSLOD=5.7986;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:14,12:26:99:348,0,352:63	1|1:0,28:29:63:781,63,0:63	0|1:17,25:42:99:387,0,364:63
+9	109619207	rs4743032	A	T	3810.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-2.859;DB;DP=214;Dels=0.00;FS=10.284;HaplotypeScore=0.3222;MLEAC=3;MLEAF=0.500;MQ=59.59;MQ0=0;MQRankSum=0.557;QD=25.07;ReadPosRankSum=-0.836;SB=-2.019e+03;VQSLOD=8.1399;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:37,39:76:99:1185,0,1225:127	1|1:0,76:76:99:2625,202,0:127	0|0:62,0:62:99:0,156,2049:127
+9	130235282	.	A	G	166.26	VQSRTrancheSNP99.90to100.00	AC=2;AF=0.333;AN=6;BaseQRankSum=-8.543;DP=232;Dels=0.00;FS=233.037;HaplotypeScore=2.9977;MLEAC=2;MLEAF=0.333;MQ=59.04;MQ0=0;MQRankSum=-2.038;QD=1.15;ReadPosRankSum=-7.649;SB=-3.100e-03;VQSLOD=-139.8496;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:74,14:88:99:0,108,2160:59	0|1:42,36:79:60:60,0,966:59	0|1:47,18:65:99:145,0,922:59
+9	138617823	rs55724592	C	T	53.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-0.380;DB;DP=72;Dels=0.00;FS=8.078;HaplotypeScore=1.0225;MLEAC=1;MLEAF=0.167;MQ=58.90;MQ0=0;MQRankSum=0.851;QD=2.66;ReadPosRankSum=-0.344;SB=-9.096e+01;VQSLOD=4.2652;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:20,0:20:48:0,48,580:44	0|0:32,0:32:48:0,48,577:44	0|1:10,10:20:88:88,0,199:44
+10	4588547	rs313427	C	T	1985.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=3.695;DB;DP=204;Dels=0.00;FS=1.813;HaplotypeScore=0.6137;MLEAC=2;MLEAF=0.333;MQ=59.73;MQ0=0;MQRankSum=0.241;QD=14.18;ReadPosRankSum=0.717;SB=-1.082e+03;VQSLOD=9.7784;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:39,35:74:99:1029,0,1182:127	1|0:32,34:66:99:995,0,1024:127	0|0:64,0:64:99:0,175,2242:127
+10	11560326	rs4424580	C	T	1027.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-0.178;DB;DP=207;Dels=0.00;FS=0.573;HaplotypeScore=2.1981;MLEAC=2;MLEAF=0.333;MQ=59.24;MQ0=0;MQRankSum=-0.988;QD=7.78;ReadPosRankSum=-0.492;SB=-7.450e+02;VQSLOD=8.4594;culprit=QD	GT:AD:DP:GQ:PL:TP	1|0:41,32:73:99:609,0,930:96	1|0:29,30:59:99:457,0,570:96	0|0:74,1:75:96:0,96,1185:96
+10	19567676	rs61458006	G	T	599.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.610;DB;DP=195;Dels=0.00;FS=0.844;HaplotypeScore=0.8795;MLEAC=1;MLEAF=0.167;MQ=59.57;MQ0=0;MQRankSum=-0.191;QD=11.31;ReadPosRankSum=-1.635;SB=-2.780e+02;VQSLOD=9.3606;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:75,0:75:99:0,208,2645:127	0|1:30,23:53:99:634,0,915:127	0|0:67,0:67:99:0,199,2540:127
+10	29082980	.	G	C	42.53	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=-1.216;DP=107;Dels=0.00;FS=60.979;HaplotypeScore=1.0911;MLEAC=3;MLEAF=0.500;MQ=55.72;MQ0=0;MQRankSum=-0.633;QD=0.40;ReadPosRankSum=-4.307;SB=-2.798e-01;VQSLOD=-11.1718;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:30,12:43:12:12,0,757:12	0/1:19,11:30:35:35,0,429:12	0/1:25,9:34:34:34,0,388:12
+10	38560911	rs80189231	T	A	1072.26	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=0.103;DB;DP=356;Dels=0.00;FS=12.038;HaplotypeScore=5.4015;MLEAC=3;MLEAF=0.500;MQ=49.74;MQ0=6;MQRankSum=-2.686;QD=3.01;ReadPosRankSum=0.797;SB=-1.690e+02;VQSLOD=-3.5129;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:109,26:135:99:389,0,2879:127	0/1:84,27:111:99:539,0,2214:127	0/1:93,17:110:99:183,0,2277:127
+10	56495833	rs6481118	G	A	7633.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=212;Dels=0.00;FS=0.000;HaplotypeScore=0.3328;MLEAC=6;MLEAF=1.00;MQ=54.64;MQ0=0;QD=36.00;SB=-2.091e+03;VQSLOD=8.6651;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,62:62:99:2383,184,0:127	1|1:1,67:68:99:2375,184,0:127	1|1:0,82:82:99:2875,223,0:127
+10	65355538	rs10733794	A	G	2464.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-8.392;DB;DP=193;Dels=0.00;FS=7.473;HaplotypeScore=2.5434;MLEAC=3;MLEAF=0.500;MQ=58.06;MQ0=2;MQRankSum=0.999;QD=18.96;ReadPosRankSum=-1.229;SB=-1.065e+03;VQSLOD=6.3934;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:33,32:65:99:830,0,1039:127	1|1:1,64:65:99:1679,153,0:127	0|0:63,0:63:99:0,159,2042:127
+10	74020452	rs72806301	C	A	1116.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-2.155;DB;DP=135;Dels=0.00;FS=3.279;HaplotypeScore=0.8720;MLEAC=2;MLEAF=0.333;MQ=58.76;MQ0=0;MQRankSum=-0.818;QD=11.88;ReadPosRankSum=1.484;SB=-6.800e+02;VQSLOD=7.2668;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|1:20,27:47:99:658,0,446:104	0|0:41,0:41:99:0,105,1324:104	1|0:25,22:47:99:497,0,482:104
+10	85258657	rs4454662	C	A	7638.01	PASS	AC=6;AF=1.00;AN=6;BaseQRankSum=1.716;DB;DP=223;Dels=0.00;FS=4.523;HaplotypeScore=1.1326;MLEAC=6;MLEAF=1.00;MQ=58.32;MQ0=0;MQRankSum=-1.230;QD=34.25;ReadPosRankSum=1.152;SB=-2.841e+03;VQSLOD=7.6461;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:1,64:65:99:2156,169,0:127	1|1:0,89:89:99:2982,238,0:127	1|1:0,69:69:99:2500,196,0:127
+10	95435201	rs2422323	C	T	4017.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=6.438;DB;DP=203;Dels=0.00;FS=13.125;HaplotypeScore=3.2358;MLEAC=4;MLEAF=0.667;MQ=55.24;MQ0=0;MQRankSum=1.174;QD=19.79;ReadPosRankSum=-0.655;SB=-2.177e+03;VQSLOD=4.5957;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:38,45:83:99:1327,0,931:127	1|1:1,63:64:99:1966,156,0:127	0|1:30,25:56:99:724,0,807:127
+10	106444111	rs72813617	A	G	632.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-0.838;DB;DP=197;Dels=0.00;FS=4.121;HaplotypeScore=1.8154;MLEAC=1;MLEAF=0.167;MQ=59.35;MQ0=0;MQRankSum=-1.142;QD=12.40;ReadPosRankSum=-1.947;SB=-2.390e+02;VQSLOD=7.6230;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|0:84,0:84:99:0,241,3129:127	0|0:62,0:62:99:0,159,2008:127	0|1:27,24:51:99:667,0,584:127
+10	116646860	rs4752347	T	A	4159.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-3.459;DB;DP=197;Dels=0.00;FS=3.519;HaplotypeScore=0.6313;MLEAC=4;MLEAF=0.667;MQ=59.27;MQ0=0;MQRankSum=1.049;QD=21.11;ReadPosRankSum=-1.271;SB=-2.347e+03;VQSLOD=8.3322;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|1:0,63:63:99:2191,169,0:127	1|0:31,35:66:99:1031,0,863:127	1|0:31,37:68:99:937,0,774:127
+10	125452232	rs7900707	A	G	3211.24	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-6.610;DB;DP=189;Dels=0.00;FS=17.742;HaplotypeScore=0.0000;MLEAC=4;MLEAF=0.667;MQ=59.66;MQ0=0;MQRankSum=0.614;QD=16.99;ReadPosRankSum=-0.321;SB=-1.553e+03;VQSLOD=6.9018;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,61:61:99:1944,168,0:127	1|0:44,26:70:99:627,0,1357:127	1|0:29,29:58:99:682,0,862:127
+10	132949760	rs10829924	A	C	684.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.328;DB;DP=215;Dels=0.00;FS=15.464;HaplotypeScore=1.3183;MLEAC=1;MLEAF=0.167;MQ=59.70;MQ0=0;MQRankSum=-1.053;QD=10.53;ReadPosRankSum=-2.893;SB=-2.920e+02;VQSLOD=5.8891;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|0:80,0:81:99:0,229,2999:127	0|0:69,0:69:99:0,175,2268:127	0|1:35,30:65:99:719,0,1046:127
+11	10741836	rs72853043	G	A	175.24	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=0.127;DB;DP=174;Dels=0.00;FS=7.087;HaplotypeScore=7.4618;MLEAC=1;MLEAF=0.167;MQ=55.72;MQ0=1;MQRankSum=-1.291;QD=3.44;ReadPosRankSum=-1.185;SB=-2.220e+02;VQSLOD=1.6095;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:78,0:78:99:0,105,1278:65	0|0:42,0:45:66:0,66,802:65	0|1:21,29:51:99:210,0,469:65
+11	19325064	rs793250	G	A	5752.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=5.080;DB;DP=203;Dels=0.00;FS=2.530;HaplotypeScore=0.8165;MLEAC=5;MLEAF=0.833;MQ=59.35;MQ0=0;MQRankSum=-0.061;QD=28.34;ReadPosRankSum=0.095;SB=-3.093e+03;VQSLOD=9.4617;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,71:71:99:2527,190,0:127	1|1:0,78:78:99:2626,205,0:127	1|0:32,22:54:99:599,0,768:127
+11	26026566	rs7942277	T	C	5414.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=176;Dels=0.00;FS=0.000;HaplotypeScore=0.2447;MLEAC=6;MLEAF=1.00;MQ=58.89;MQ0=0;QD=30.76;SB=-2.812e+03;VQSLOD=11.0501;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,53:53:99:1707,132,0:122	1|1:0,53:53:99:1581,123,0:122	1|1:0,70:70:99:2126,163,0:122
+11	35980461	rs263087	A	T	3494.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-0.701;DB;DP=186;Dels=0.00;FS=0.000;HaplotypeScore=2.9570;MLEAC=4;MLEAF=0.667;MQ=59.34;MQ0=0;MQRankSum=0.836;QD=18.79;ReadPosRankSum=0.007;SB=-1.535e+03;VQSLOD=7.6407;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:36,35:71:99:1001,0,1165:127	0|1:30,26:56:99:710,0,796:127	1|1:0,59:59:99:1783,144,0:127
+11	44985620	rs7106313	C	T	338.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=2.185;DB;DP=162;Dels=0.00;FS=4.840;HaplotypeScore=2.0046;MLEAC=1;MLEAF=0.167;MQ=56.94;MQ0=0;MQRankSum=2.019;QD=8.67;ReadPosRankSum=0.983;SB=-2.190e+02;VQSLOD=6.6624;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:79,0:80:99:0,174,2084:72	0|0:43,0:43:72:0,72,877:72	0|1:20,18:39:99:373,0,365:72
+11	55040918	rs187118824	A	T	1019.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.079;DB;DP=65;Dels=0.02;FS=12.723;HaplotypeScore=0.9771;MLEAC=2;MLEAF=0.333;MQ=56.64;MQ0=1;MQRankSum=0.323;QD=25.48;ReadPosRankSum=0.873;SB=-2.060e+01;VQSLOD=4.4200;culprit=DP	GT:AD:DP:GQ:PL:TP	0|1:2,9:11:48:325,0,48:50	0|0:24,1:25:63:0,63,833:50	1|0:6,22:28:51:733,0,51:50
+11	65339346	rs1194104	C	T	1804.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-2.465;DB;DP=189;Dels=0.00;FS=8.432;HaplotypeScore=2.2718;MLEAC=2;MLEAF=0.333;MQ=59.31;MQ0=0;MQRankSum=-0.120;QD=13.67;ReadPosRankSum=-0.306;SB=-1.061e+03;VQSLOD=7.9509;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:57,0:57:99:0,157,2050:127	0|1:30,35:65:99:781,0,822:127	0|1:23,44:67:99:1062,0,690:127
+11	75978490	rs655877	G	C	2986.25	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-0.846;DB;DP=127;Dels=0.00;FS=5.433;HaplotypeScore=0.2629;MLEAC=5;MLEAF=0.833;MQ=59.42;MQ0=0;MQRankSum=0.026;QD=23.51;ReadPosRankSum=0.168;SB=-1.613e+03;VQSLOD=7.0404;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,50:50:99:1405,111,0:101	1|1:0,45:46:99:1269,102,0:101	1|0:17,14:31:99:354,0,469:101
+11	86061661	rs11825046	T	C	6014.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-3.250;DB;DP=282;Dels=0.00;FS=0.960;HaplotypeScore=1.6440;MLEAC=4;MLEAF=0.667;MQ=59.57;MQ0=0;MQRankSum=1.057;QD=21.33;ReadPosRankSum=-1.763;SB=-3.081e+03;VQSLOD=7.3485;culprit=DP	GT:AD:DP:GQ:PL:TP	1|0:54,49:103:99:1498,0,1848:127	1|1:0,83:83:99:2924,223,0:127	0|1:44,52:96:99:1592,0,1380:127
+11	103989190	rs1545865	T	C	4915.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-4.030;DB;DP=219;Dels=0.00;FS=1.231;HaplotypeScore=1.2090;MLEAC=4;MLEAF=0.667;MQ=59.37;MQ0=0;MQRankSum=1.103;QD=22.44;ReadPosRankSum=0.773;SB=-2.213e+03;VQSLOD=8.9081;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|1:23,40:63:99:1203,0,669:127	0|1:36,52:88:99:1433,0,1136:127	1|1:0,68:68:99:2279,178,0:127
+11	113825129	rs1150234	G	A	2441.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=3.977;DB;DP=210;Dels=0.00;FS=0.000;HaplotypeScore=2.0700;MLEAC=3;MLEAF=0.500;MQ=59.49;MQ0=0;MQRankSum=0.877;QD=11.63;ReadPosRankSum=0.262;SB=-1.513e+03;VQSLOD=9.0378;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:30,33:63:99:881,0,774:127	0/1:46,33:80:99:726,0,1020:127	0/1:32,35:67:99:873,0,759:127
+11	123470819	rs1148095	T	C	6964.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-0.850;DB;DP=242;Dels=0.00;FS=1.477;HaplotypeScore=1.3868;MLEAC=5;MLEAF=0.833;MQ=59.25;MQ0=0;MQRankSum=-1.734;QD=28.78;ReadPosRankSum=-0.749;SB=-3.242e+03;VQSLOD=8.7854;culprit=MQRankSum	GT:AD:DP:GQ:PL:TP	1|1:0,92:92:99:3408,265,0:127	1|0:35,51:86:99:1520,0,1059:127	1|1:0,64:64:99:2036,157,0:127
+11	132780959	rs61906922	C	T	1342.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=6.221;DB;DP=263;Dels=0.00;FS=0.601;HaplotypeScore=1.8444;MLEAC=1;MLEAF=0.167;MQ=59.58;MQ0=0;MQRankSum=0.997;QD=15.25;ReadPosRankSum=-0.746;SB=-6.890e+02;VQSLOD=8.8133;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|0:87,0:87:99:0,250,2877:127	0|0:87,0:88:99:0,253,3009:127	0|1:43,45:88:99:1377,0,1138:127
+12	5922552	rs17786352	C	G	1874.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-7.386;DB;DP=231;Dels=0.00;FS=0.000;HaplotypeScore=0.3053;MLEAC=2;MLEAF=0.333;MQ=54.49;MQ0=0;MQRankSum=2.656;QD=13.11;ReadPosRankSum=1.042;SB=-9.400e+02;VQSLOD=4.7495;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:44,35:79:99:897,0,1383:127	1|0:28,36:64:99:1016,0,734:127	0|0:88,0:88:99:0,238,3004:127
+12	12560642	rs10772559	G	T	501.28	VQSRTrancheSNP99.00to99.90	AC=4;AF=0.667;AN=6;BaseQRankSum=0.747;DB;DP=229;Dels=0.04;FS=17.409;HaplotypeScore=19.6989;MLEAC=4;MLEAF=0.667;MQ=49.37;MQ0=0;MQRankSum=-3.656;QD=2.19;ReadPosRankSum=-5.397;SB=-2.196e+03;VQSLOD=-10.1992;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|1:0,66:66:24:273,24,0:24	1|0:29,45:74:99:148,0,702:24	1|0:33,46:80:99:122,0,781:24
+12	21328424	rs4149040	G	C	2565.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=0.888;DB;DP=252;Dels=0.00;FS=9.753;HaplotypeScore=0.6082;MLEAC=2;MLEAF=0.333;MQ=59.49;MQ0=0;MQRankSum=1.166;QD=15.18;ReadPosRankSum=0.966;SB=-1.181e+03;VQSLOD=7.5539;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:40,49:89:99:1534,0,1308:127	0|0:83,0:83:99:0,241,3117:127	1|0:45,35:80:99:1070,0,1402:127
+12	29935607	rs7305813	A	C	810.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=0.307;DB;DP=203;Dels=0.00;FS=14.326;HaplotypeScore=1.9820;MLEAC=1;MLEAF=0.167;MQ=59.57;MQ0=0;MQRankSum=-0.164;QD=12.86;ReadPosRankSum=-0.733;SB=-2.950e+02;VQSLOD=7.9009;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:71,0:71:99:0,193,2479:127	0|0:69,0:69:99:0,196,2464:127	0|1:28,35:63:99:845,0,847:127
+12	39118960	rs79977305	G	A	1330.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=6.307;DB;DP=263;Dels=0.00;FS=0.597;HaplotypeScore=1.4583;MLEAC=1;MLEAF=0.167;MQ=58.83;MQ0=0;MQRankSum=1.925;QD=13.57;ReadPosRankSum=-0.548;SB=-7.360e+02;VQSLOD=7.3733;culprit=MQRankSum	GT:AD:DP:GQ:PL:TP	0|0:81,0:81:99:0,241,2869:127	0|0:84,0:84:99:0,229,2712:127	0|1:51,47:98:99:1365,0,1343:127
+12	48120010	rs3829317	A	C	4015.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=1.659;DB;DP=162;Dels=0.00;FS=1.828;HaplotypeScore=2.1844;MLEAC=5;MLEAF=0.833;MQ=59.48;MQ0=0;MQRankSum=0.154;QD=24.78;ReadPosRankSum=0.482;SB=-2.240e+03;VQSLOD=8.1337;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,63:63:99:2024,163,0:110	1|0:24,27:51:99:550,0,540:110	1|1:0,48:48:99:1441,111,0:110
+12	58867437	rs140632614	G	T	829.25	VQSRTrancheSNP99.00to99.90	AC=4;AF=0.667;AN=6;BaseQRankSum=1.409;DB;DP=144;Dels=0.00;FS=68.612;HaplotypeScore=0.8667;MLEAC=4;MLEAF=0.667;MQ=35.15;MQ0=16;MQRankSum=-7.440;QD=5.76;ReadPosRankSum=-0.245;SB=-1.011e+00;VQSLOD=-16.4891;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:34,24:58:99:291,0,1100:44	0|1:42,8:50:61:61,0,1319:44	1|1:1,35:36:45:519,45,0:44
+12	79238948	rs10778234	C	T	3719.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=8.187;DB;DP=241;Dels=0.00;FS=7.073;HaplotypeScore=0.2447;MLEAC=3;MLEAF=0.500;MQ=59.41;MQ0=0;MQRankSum=-0.381;QD=15.43;ReadPosRankSum=0.579;SB=-1.864e+03;VQSLOD=7.8136;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:42,35:77:99:1049,0,1213:127	0/1:37,32:69:99:988,0,957:127	0/1:42,53:95:99:1682,0,1062:127
+12	90856710	rs825945	T	C	1096.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-6.342;DB;DP=193;Dels=0.00;FS=2.164;HaplotypeScore=0.0000;MLEAC=2;MLEAF=0.333;MQ=59.64;MQ0=0;MQRankSum=2.071;QD=9.70;ReadPosRankSum=-1.697;SB=-5.710e+02;VQSLOD=7.3118;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:80,0:80:99:0,232,3042:127	0|1:30,21:51:99:511,0,921:127	0|1:36,26:62:99:624,0,1085:127
+12	101460237	rs7965836	C	T	3485.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-2.070;DB;DP=247;Dels=0.00;FS=2.895;HaplotypeScore=0.6556;MLEAC=3;MLEAF=0.500;MQ=59.83;MQ0=0;MQRankSum=-0.655;QD=14.11;ReadPosRankSum=-0.983;SB=-1.581e+03;VQSLOD=8.4872;culprit=MQ	GT:AD:DP:GQ:PL:TP	0/1:40,43:83:99:1287,0,1179:127	0/1:44,36:80:99:1068,0,1363:127	0/1:43,41:84:99:1130,0,1321:127
+12	112830546	rs150699511	C	A	487.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.014;DB;DP=179;Dels=0.00;FS=0.860;HaplotypeScore=2.3392;MLEAC=1;MLEAF=0.167;MQ=59.16;MQ0=0;MQRankSum=1.141;QD=8.86;ReadPosRankSum=0.950;SB=-2.870e+02;VQSLOD=8.1138;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:62,0:62:99:0,166,2141:127	0|1:34,21:55:99:522,0,751:127	0|0:62,0:62:99:0,141,1808:127
+12	122942070	rs10744217	A	G	1812.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.353;DB;DP=179;Dels=0.00;FS=0.663;HaplotypeScore=1.4184;MLEAC=3;MLEAF=0.500;MQ=58.69;MQ0=0;MQRankSum=0.992;QD=15.10;ReadPosRankSum=1.081;SB=-5.860e+02;VQSLOD=8.4750;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:35,36:71:99:762,0,1100:92	1|1:0,48:49:93:1095,93,0:92	0|0:59,0:59:99:0,120,1560:92
+12	130522866	rs1613499	C	T	3975.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=130;Dels=0.00;FS=0.000;HaplotypeScore=0.6332;MLEAC=6;MLEAF=1.00;MQ=59.11;MQ0=0;QD=30.58;SB=-1.386e+03;VQSLOD=10.2250;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,57:57:99:1939,144,0:73	1|1:0,34:34:75:990,75,0:73	1|1:0,39:39:78:1046,78,0:73
+13	21520045	rs9509464	A	C	5103.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=195;Dels=0.00;FS=0.000;HaplotypeScore=1.6144;MLEAC=6;MLEAF=1.00;MQ=47.37;MQ0=0;QD=26.17;SB=-2.582e+03;VQSLOD=5.1918;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:0,71:71:99:2106,186,0:98	1|1:0,78:78:99:1856,162,0:98	1|1:0,46:46:99:1141,99,0:98
+13	28463938	rs954750	C	T	2740.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=3.206;DB;DP=242;Dels=0.00;FS=0.000;HaplotypeScore=4.0078;MLEAC=2;MLEAF=0.333;MQ=59.46;MQ0=0;MQRankSum=0.880;QD=16.61;ReadPosRankSum=-0.617;SB=-1.312e+03;VQSLOD=6.7692;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:40,43:83:99:1362,0,1242:127	1|0:35,47:82:99:1417,0,1010:127	0|0:76,0:77:99:0,205,2635:127
+13	37484693	rs1571317	T	C	971.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.315;DB;DP=229;Dels=0.00;FS=3.052;HaplotypeScore=0.6603;MLEAC=1;MLEAF=0.167;MQ=58.51;MQ0=0;MQRankSum=1.885;QD=12.78;ReadPosRankSum=-0.343;SB=-5.750e+02;VQSLOD=7.3064;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:94,0:94:99:0,253,3258:127	0|1:35,41:76:99:1006,0,924:127	0|0:59,0:59:99:0,147,1872:127
+13	46407442	rs11147990	G	A	2668.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=1.227;DB;DP=199;Dels=0.00;FS=0.530;HaplotypeScore=1.8025;MLEAC=3;MLEAF=0.500;MQ=58.99;MQ0=0;MQRankSum=0.023;QD=20.21;ReadPosRankSum=-0.452;SB=-1.651e+03;VQSLOD=9.2006;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|1:36,33:69:99:994,0,1056:127	0|0:67,0:67:99:0,141,1821:127	1|1:0,63:63:99:1719,135,0:127
+13	56456878	rs2997102	C	A	9454.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=257;Dels=0.00;FS=0.000;HaplotypeScore=0.9537;MLEAC=6;MLEAF=1.00;MQ=59.57;MQ0=0;QD=36.79;SB=-4.826e+03;VQSLOD=11.5149;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,99:99:99:3692,280,0:127	1|1:0,88:88:99:3239,253,0:127	1|1:0,70:70:99:2523,193,0:127
+13	65275154	rs359338	G	A	1963.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.733;DB;DP=173;Dels=0.00;FS=3.628;HaplotypeScore=0.9480;MLEAC=2;MLEAF=0.333;MQ=59.49;MQ0=0;MQRankSum=-0.676;QD=14.54;ReadPosRankSum=0.399;SB=-1.054e+03;VQSLOD=8.4489;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:31,28:59:99:883,0,990:108	1|0:39,37:76:99:1119,0,1112:108	0|0:38,0:38:99:0,108,1390:108
+13	74611546	rs73214804	C	T	639.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-0.487;DB;DP=164;Dels=0.00;FS=0.000;HaplotypeScore=1.4071;MLEAC=1;MLEAF=0.167;MQ=58.95;MQ0=0;MQRankSum=0.902;QD=11.21;ReadPosRankSum=-0.541;SB=-3.000e+02;VQSLOD=8.8824;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:53,0:53:99:0,135,1773:110	0|0:53,1:54:99:0,111,1440:110	0|1:24,33:57:99:674,0,388:110
+13	83670546	.	G	A	169.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=5.301;DP=178;Dels=0.00;FS=0.000;HaplotypeScore=36.5059;MLEAC=2;MLEAF=0.333;MQ=42.20;MQ0=11;MQRankSum=-6.654;QD=1.38;ReadPosRankSum=-0.761;SB=-1.340e+02;VQSLOD=-20.4053;culprit=QD	GT:AD:DP:GQ:PL:TP	0|1:37,16:53:99:139,0,523:90	0|0:51,4:55:91:0,91,1393:90	1|0:58,12:70:69:69,0,1214:90
+13	92742124	rs2148446	G	A	1884.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-2.340;DB;DP=213;Dels=0.00;FS=0.000;HaplotypeScore=0.3156;MLEAC=2;MLEAF=0.333;MQ=59.37;MQ0=0;MQRankSum=-2.935;QD=12.99;ReadPosRankSum=-0.579;SB=-9.540e+02;VQSLOD=7.2833;culprit=MQRankSum	GT:AD:DP:GQ:PL:TP	0|1:38,38:76:99:1130,0,1190:127	0|0:68,0:68:99:0,190,2454:127	1|0:38,31:69:99:793,0,1094:127
+13	101976707	rs527328	A	T	9240.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=259;Dels=0.00;FS=0.000;HaplotypeScore=0.2447;MLEAC=6;MLEAF=1.00;MQ=53.28;MQ0=0;QD=35.68;SB=-4.696e+03;VQSLOD=7.5241;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,92:92:99:3410,262,0:127	1|1:0,88:88:99:3195,247,0:127	1|1:1,78:79:99:2635,202,0:127
+13	109990322	rs7328109	T	C	7198.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-2.487;DB;DP=245;Dels=0.00;FS=5.887;HaplotypeScore=1.8793;MLEAC=5;MLEAF=0.833;MQ=59.60;MQ0=0;MQRankSum=-0.236;QD=29.38;ReadPosRankSum=0.136;SB=-3.593e+03;VQSLOD=8.8925;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,79:79:99:2825,220,0:127	1|0:33,54:87:99:1591,0,933:127	1|1:0,79:79:99:2782,214,0:127
+14	20313371	rs10137604	A	C	2154.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-4.894;DB;DP=255;Dels=0.00;FS=0.000;HaplotypeScore=2.0503;MLEAC=2;MLEAF=0.333;MQ=56.32;MQ0=1;MQRankSum=1.608;QD=13.72;ReadPosRankSum=0.126;SB=-1.124e+03;VQSLOD=5.6223;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:40,48:88:99:1426,0,1229:127	0|0:98,0:98:99:0,268,3527:127	1|0:43,26:69:99:767,0,1284:127
+14	38160457	rs2181345	A	C	4683.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=169;Dels=0.00;FS=0.000;HaplotypeScore=2.5449;MLEAC=6;MLEAF=1.00;MQ=59.00;MQ0=0;QD=27.71;SB=-2.390e+03;VQSLOD=9.9888;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,56:56:99:1818,141,0:107	1|1:0,58:58:99:1523,123,0:107	1|1:0,53:55:99:1342,108,0:107
+14	47568119	rs1952206	T	C	3399.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-9.721;DB;DP=230;Dels=0.00;FS=0.483;HaplotypeScore=0.6577;MLEAC=3;MLEAF=0.500;MQ=59.54;MQ0=0;MQRankSum=-0.479;QD=14.78;ReadPosRankSum=1.261;SB=-1.667e+03;VQSLOD=9.1589;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0/1:41,43:84:99:1239,0,1315:127	0/1:28,43:71:99:1178,0,816:127	0/1:40,35:75:99:982,0,1314:127
+14	56951735	rs1189276	G	A	6939.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=3.878;DB;DP=235;Dels=0.00;FS=9.373;HaplotypeScore=0.9063;MLEAC=5;MLEAF=0.833;MQ=59.52;MQ0=0;MQRankSum=-0.550;QD=29.53;ReadPosRankSum=1.104;SB=-3.438e+03;VQSLOD=8.7592;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:1,92:93:99:3558,274,0:127	1|1:0,60:60:99:2120,165,0:127	1|0:40,42:82:99:1261,0,1194:127
+14	68051087	rs11628035	G	A	4028.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=3.928;DB;DP=236;Dels=0.00;FS=8.184;HaplotypeScore=1.3296;MLEAC=3;MLEAF=0.500;MQ=58.83;MQ0=0;MQRankSum=1.834;QD=25.49;ReadPosRankSum=2.590;SB=-1.989e+03;VQSLOD=6.7911;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|0:38,39:77:99:1265,0,1112:127	1|1:0,81:81:99:2763,214,0:127	0|0:78,0:78:99:0,208,2673:127
+14	87263523	rs2542229	A	C	8104.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=239;Dels=0.00;FS=0.000;HaplotypeScore=0.6305;MLEAC=6;MLEAF=1.00;MQ=59.17;MQ0=0;QD=33.91;SB=-4.393e+03;VQSLOD=11.3001;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,77:77:99:2810,214,0:127	1|1:0,85:85:99:2877,223,0:127	1|1:0,77:77:99:2417,187,0:127
+14	96490389	rs72702859	C	G	3394.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-6.529;DB;DP=264;Dels=0.00;FS=2.746;HaplotypeScore=3.1300;MLEAC=3;MLEAF=0.500;MQ=59.49;MQ0=0;MQRankSum=-1.258;QD=18.25;ReadPosRankSum=-0.961;SB=-1.966e+03;VQSLOD=6.3356;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:34,52:86:99:1358,0,886:127	1|1:0,100:100:99:2036,180,0:127	0|0:78,0:78:99:0,184,2393:127
+14	106085773	rs2955055	C	T	2115.26	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=-0.746;DB;DP=172;Dels=0.00;FS=18.420;HaplotypeScore=2.9489;MLEAC=3;MLEAF=0.500;MQ=35.68;MQ0=18;MQRankSum=3.251;QD=12.30;ReadPosRankSum=0.100;SB=-5.530e+02;VQSLOD=1.2866;culprit=MQ	GT:AD:DP:GQ:PL:TP	0/1:32,33:65:99:600,0,554:80	0/1:30,42:72:99:1001,0,400:80	0/1:12,23:35:80:553,0,80:80
+15	23743658	rs142070302	T	A	1007.26	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.164;DB;DP=408;Dels=0.00;FS=166.853;HaplotypeScore=53.5447;MLEAC=3;MLEAF=0.500;MQ=38.96;MQ0=14;MQRankSum=-6.283;QD=2.47;ReadPosRankSum=2.486;SB=-1.079e-02;VQSLOD=-304.7942;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:104,39:143:99:365,0,2802:45	0/1:99,40:139:99:636,0,2335:45	0/1:97,28:126:45:45,0,2324:45
+15	42065422	rs2925337	A	C	5231.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=176;Dels=0.00;FS=0.000;HaplotypeScore=0.0000;MLEAC=6;MLEAF=1.00;MQ=59.68;MQ0=0;QD=29.72;SB=-3.112e+03;VQSLOD=11.0322;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,54:54:99:1770,138,0:127	1|1:0,68:68:99:1750,138,0:127	1|1:0,54:54:99:1711,132,0:127
+15	53677501	.	T	G	770.26	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=-8.969;DP=210;Dels=0.00;FS=347.467;HaplotypeScore=2.0911;MLEAC=3;MLEAF=0.500;MQ=58.31;MQ0=0;MQRankSum=0.438;QD=3.67;ReadPosRankSum=-6.409;SB=-5.499e-03;VQSLOD=-307.0964;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:59,20:79:94:94,0,1389:94	0/1:41,31:72:99:438,0,721:94	0/1:37,21:59:99:277,0,521:94
+15	62088952	rs35033959	A	T	3546.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.220;DB;DP=241;Dels=0.00;FS=14.286;HaplotypeScore=0.2774;MLEAC=3;MLEAF=0.500;MQ=59.77;MQ0=0;MQRankSum=-1.969;QD=14.71;ReadPosRankSum=0.341;SB=-1.970e+03;VQSLOD=6.3785;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:45,44:89:99:1265,0,1533:127	0/1:34,38:72:99:1133,0,1137:127	0/1:41,39:80:99:1148,0,1303:127
+15	71657506	.	A	G	140.40	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=-1.611;DP=133;Dels=0.00;FS=35.593;HaplotypeScore=4.0622;MLEAC=2;MLEAF=0.333;MQ=51.29;MQ0=1;MQRankSum=-3.344;QD=1.53;ReadPosRankSum=-3.999;SB=-5.015e+01;VQSLOD=-4.8050;culprit=QD	GT:AD:DP:GQ:PL:TP	1|0:46,11:57:93:93,0,851:15	1|0:23,12:35:86:86,0,299:15	0|0:33,8:41:15:0,15,503:15
+15	92857342	rs12101550	A	G	2734.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-7.995;DB;DP=226;Dels=0.00;FS=3.761;HaplotypeScore=1.5682;MLEAC=3;MLEAF=0.500;MQ=59.41;MQ0=0;MQRankSum=0.761;QD=12.10;ReadPosRankSum=-0.587;SB=-1.469e+03;VQSLOD=9.1510;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:45,37:82:99:853,0,1356:127	0/1:29,40:69:99:966,0,852:127	0/1:38,37:75:99:954,0,1085:127
+15	100799787	rs4965610	C	T	2133.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=8.373;DB;DP=230;Dels=0.00;FS=1.037;HaplotypeScore=0.5427;MLEAC=3;MLEAF=0.500;MQ=58.84;MQ0=0;MQRankSum=0.169;QD=9.28;ReadPosRankSum=-0.098;SB=-1.328e+03;VQSLOD=7.8802;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:40,36:76:99:948,0,701:127	0/1:45,38:83:99:761,0,635:127	0/1:35,36:71:99:463,0,706:127
+16	5754758	rs11644707	C	T	1012.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.777;DB;DP=161;Dels=0.00;FS=0.000;HaplotypeScore=2.4572;MLEAC=2;MLEAF=0.333;MQ=59.71;MQ0=0;MQRankSum=0.699;QD=9.64;ReadPosRankSum=2.624;SB=-5.580e+02;VQSLOD=7.0970;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|1:31,26:57:99:627,0,943:125	0|0:56,0:56:99:0,126,1597:125	1|0:32,16:48:99:424,0,785:125
+16	11397080	rs1019552	T	C	2295.44	PASS	AC=6;AF=1.00;AN=6;DB;DP=169;Dels=0.01;FS=0.000;HaplotypeScore=8.2178;MLEAC=6;MLEAF=1.00;MQ=59.32;MQ0=0;QD=13.58;SB=-2.379e+03;VQSLOD=4.3801;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,71:71:96:1220,96,0:9	1|1:0,48:48:9:78,9,0:9	1|1:0,48:48:81:1035,81,0:9
+16	30509723	rs7193693	A	G	497.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-4.054;DB;DP=167;Dels=0.00;FS=0.000;HaplotypeScore=1.1605;MLEAC=1;MLEAF=0.167;MQ=57.89;MQ0=0;MQRankSum=-0.545;QD=9.38;ReadPosRankSum=0.541;SB=-2.410e+02;VQSLOD=8.4265;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:57,0:57:99:0,153,2009:101	0|0:57,0:57:99:0,102,1304:101	0|1:26,27:53:99:532,0,526:101
+16	34610294	rs72812776	C	T	603.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.361;DB;DP=270;Dels=0.00;FS=6.065;HaplotypeScore=3.1650;MLEAC=1;MLEAF=0.167;MQ=59.66;MQ0=0;MQRankSum=1.603;QD=7.83;ReadPosRankSum=0.296;SB=-2.820e+02;VQSLOD=3.3685;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:123,0:123:99:0,343,4443:127	0|0:69,1:70:99:0,184,2397:127	0|1:48,29:77:99:638,0,1483:127
+16	55910673	rs17265788	G	C	2345.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=2.657;DB;DP=208;Dels=0.00;FS=3.162;HaplotypeScore=1.9213;MLEAC=3;MLEAF=0.500;MQ=59.67;MQ0=0;MQRankSum=-0.333;QD=16.63;ReadPosRankSum=-0.425;SB=-1.468e+03;VQSLOD=8.3665;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|1:33,33:66:99:769,0,761:122	0|0:67,0:67:99:0,123,1506:122	1|1:0,75:75:99:1621,132,0:122
+16	65776985	rs72784548	T	C	3527.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=5.439;DB;DP=195;Dels=0.00;FS=1.228;HaplotypeScore=0.8795;MLEAC=4;MLEAF=0.667;MQ=58.78;MQ0=0;MQRankSum=1.630;QD=18.09;ReadPosRankSum=1.358;SB=-1.904e+03;VQSLOD=7.6763;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|1:0,68:68:99:2351,181,0:127	1|0:33,28:61:99:586,0,710:127	1|0:31,35:66:99:590,0,468:127
+16	83153777	rs4395063	T	C	3143.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-1.771;DB;DP=205;Dels=0.00;FS=1.805;HaplotypeScore=1.0370;MLEAC=4;MLEAF=0.667;MQ=59.55;MQ0=0;MQRankSum=-1.380;QD=15.33;ReadPosRankSum=0.424;SB=-2.104e+03;VQSLOD=8.8241;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:31,31:62:99:867,0,865:127	0|1:45,28:73:99:412,0,801:127	1|1:0,70:70:99:1906,150,0:127
+16	88914235	rs12932521	C	T	329.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=1.978;DB;DP=114;Dels=0.00;FS=1.931;HaplotypeScore=0.9402;MLEAC=1;MLEAF=0.167;MQ=58.60;MQ0=0;MQRankSum=0.854;QD=7.84;ReadPosRankSum=-0.339;SB=-2.970e+02;VQSLOD=8.1036;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:43,0:43:99:0,102,1192:39	0|0:29,0:29:39:0,39,468:39	0|1:15,26:42:99:364,0,105:39
+17	5764764	rs2309483	C	G	4071.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=4.237;DB;DP=154;Dels=0.00;FS=0.000;HaplotypeScore=4.4102;MLEAC=5;MLEAF=0.833;MQ=58.88;MQ0=0;MQRankSum=0.456;QD=26.44;ReadPosRankSum=0.385;SB=-1.791e+03;VQSLOD=6.9458;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,61:62:99:2049,165,0:107	1|0:23,26:49:99:648,0,482:107	1|1:0,43:43:99:1374,108,0:107
+17	14096866	.	C	T	489.26	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=4.537;DP=181;Dels=0.00;FS=33.896;HaplotypeScore=1.0782;MLEAC=3;MLEAF=0.500;MQ=24.52;MQ0=71;MQRankSum=0.353;QD=2.70;ReadPosRankSum=0.385;SB=-1.450e+02;VQSLOD=-6.2174;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:48,17:66:99:228,0,822:63	0/1:42,16:58:99:237,0,389:63	0/1:44,13:57:63:63,0,523:63
+17	21547285	rs62049731	A	C	1322.26	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=-0.987;DB;DP=569;Dels=0.00;FS=2.322;HaplotypeScore=42.4511;MLEAC=3;MLEAF=0.500;MQ=44.59;MQ0=24;MQRankSum=-6.240;QD=2.32;ReadPosRankSum=-5.171;SB=-6.369e+02;VQSLOD=-39.5319;culprit=DP	GT:AD:DP:GQ:PL:TP	0/1:146,28:174:99:217,0,4187:127	0/1:162,56:218:99:804,0,4298:127	0/1:139,38:177:99:340,0,3842:127
+17	33513649	rs3744366	A	G	3743.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-3.729;DB;DP=213;Dels=0.00;FS=0.526;HaplotypeScore=2.9053;MLEAC=4;MLEAF=0.667;MQ=58.99;MQ0=0;MQRankSum=-0.152;QD=17.57;ReadPosRankSum=0.530;SB=-2.067e+03;VQSLOD=8.0191;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:44,40:84:99:1083,0,1341:127	1|1:0,67:67:99:2074,162,0:127	0|1:37,24:62:99:586,0,1015:127
+17	44809197	rs116187585	A	G	8703.01	PASS	AC=6;AF=1.00;AN=6;BaseQRankSum=-0.554;DB;DP=254;Dels=0.00;FS=3.487;HaplotypeScore=4.0582;MLEAC=6;MLEAF=1.00;MQ=59.58;MQ0=0;MQRankSum=1.677;QD=34.26;ReadPosRankSum=1.483;SB=-4.228e+03;VQSLOD=6.6144;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:1,96:97:99:3470,268,0:127	1|1:0,82:84:99:2846,220,0:127	1|1:0,73:73:99:2387,184,0:127
+17	55158811	rs7217371	G	A	2849.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=8.616;DB;DP=206;Dels=0.00;FS=0.511;HaplotypeScore=1.0970;MLEAC=3;MLEAF=0.500;MQ=59.66;MQ0=0;MQRankSum=0.103;QD=13.83;ReadPosRankSum=0.958;SB=-1.448e+03;VQSLOD=9.9440;culprit=MQ	GT:AD:DP:GQ:PL:TP	0/1:40,31:72:99:982,0,1147:127	0/1:35,40:75:99:1236,0,984:127	0/1:32,27:59:99:670,0,882:127
+17	66991216	rs61697543	T	C	738.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-4.530;DB;DP=252;Dels=0.00;FS=1.490;HaplotypeScore=1.7074;MLEAC=1;MLEAF=0.167;MQ=59.36;MQ0=0;MQRankSum=0.771;QD=10.86;ReadPosRankSum=-0.724;SB=-3.930e+02;VQSLOD=8.8864;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:95,0:95:99:0,268,3511:127	0|0:89,0:89:99:0,235,3058:127	0|1:33,35:68:99:773,0,965:127
+18	1629264	rs5025369	A	G	86.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=-1.739;DB;DP=149;Dels=0.00;FS=15.359;HaplotypeScore=7.1355;MLEAC=2;MLEAF=0.333;MQ=39.72;MQ0=11;MQRankSum=-2.543;QD=0.81;ReadPosRankSum=0.088;SB=-3.380e+01;VQSLOD=-6.2052;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:51,15:66:50:50,0,1143:49	0|0:37,5:42:81:0,81,941:49	1|0:35,6:41:75:75,0,818:49
+18	10010426	rs4797393	T	C	4197.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=0.425;DB;DP=210;Dels=0.00;FS=1.132;HaplotypeScore=1.2660;MLEAC=4;MLEAF=0.667;MQ=59.43;MQ0=0;MQRankSum=-2.916;QD=19.99;ReadPosRankSum=0.379;SB=-2.001e+03;VQSLOD=7.0312;culprit=MQRankSum	GT:AD:DP:GQ:PL:TP	1|1:0,65:65:99:2247,181,0:127	1|0:35,39:75:99:1170,0,967:127	1|0:41,29:70:99:780,0,1052:127
+18	20025030	rs4800406	A	G	1113.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.700;DB;DP=230;Dels=0.00;FS=0.000;HaplotypeScore=1.6804;MLEAC=1;MLEAF=0.167;MQ=59.56;MQ0=0;MQRankSum=1.643;QD=12.65;ReadPosRankSum=-1.166;SB=-6.160e+02;VQSLOD=8.6574;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:78,0:78:99:0,223,2978:127	0|1:46,42:88:99:1148,0,1460:127	0|0:64,0:64:99:0,175,2303:127
+18	41449098	rs2045671	C	T	8380.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=237;Dels=0.00;FS=0.000;HaplotypeScore=1.3482;MLEAC=6;MLEAF=1.00;MQ=59.65;MQ0=0;QD=35.36;SB=-4.462e+03;VQSLOD=11.6464;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,76:76:99:2756,214,0:127	1|1:0,75:75:99:2635,202,0:127	1|1:0,86:86:99:2989,229,0:127
+18	50973169	rs11661305	A	G	5320.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=2.753;DB;DP=196;Dels=0.00;FS=2.568;HaplotypeScore=1.1306;MLEAC=5;MLEAF=0.833;MQ=57.73;MQ0=0;MQRankSum=0.246;QD=27.14;ReadPosRankSum=0.186;SB=-2.411e+03;VQSLOD=7.5009;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:0,74:74:99:2621,202,0:127	1|0:30,37:67:99:1009,0,842:127	1|1:0,55:55:99:1690,132,0:127
+18	67950442	rs62091919	T	G	1779.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-2.517;DB;DP=195;Dels=0.00;FS=0.562;HaplotypeScore=1.5454;MLEAC=2;MLEAF=0.333;MQ=59.26;MQ0=0;MQRankSum=0.006;QD=12.89;ReadPosRankSum=-0.268;SB=-9.170e+02;VQSLOD=9.6268;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|1:40,32:72:99:967,0,1318:127	0|0:55,2:57:99:0,141,1865:127	1|0:36,30:66:99:851,0,1042:127
+18	75204349	rs9948476	C	T	646.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=1.965;DB;DP=185;Dels=0.00;FS=0.817;HaplotypeScore=1.3995;MLEAC=1;MLEAF=0.167;MQ=59.35;MQ0=0;MQRankSum=0.276;QD=10.95;ReadPosRankSum=-0.158;SB=-3.210e+02;VQSLOD=9.3748;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:65,0:66:99:0,168,2026:127	0|0:60,0:60:99:0,147,1768:127	0|1:34,25:59:99:681,0,893:127
+19	3739001	rs56138006	C	T	976.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=4.634;DB;DP=118;Dels=0.00;FS=3.676;HaplotypeScore=1.4356;MLEAC=2;MLEAF=0.333;MQ=58.66;MQ0=0;MQRankSum=0.753;QD=11.22;ReadPosRankSum=1.107;SB=-6.380e+02;VQSLOD=7.4541;culprit=QD	GT:AD:DP:GQ:PL:TP	0|1:30,22:52:99:612,0,559:45	0|0:31,0:31:45:0,45,527:45	1|0:12,23:35:93:403,0,93:45
+19	11730690	rs4804613	C	T	2578.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=5.057;DB;DP=197;Dels=0.00;FS=0.529;HaplotypeScore=0.0000;MLEAC=3;MLEAF=0.500;MQ=59.36;MQ0=0;MQRankSum=0.416;QD=13.09;ReadPosRankSum=-0.554;SB=-1.389e+03;VQSLOD=9.3908;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:21,26:47:99:586,0,623:127	0/1:42,45:87:99:1192,0,1055:127	0/1:32,30:63:99:839,0,932:127
+19	20782710	rs10413568	T	C	6304.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=203;Dels=0.00;FS=0.000;HaplotypeScore=0.6919;MLEAC=6;MLEAF=1.00;MQ=59.56;MQ0=0;QD=31.05;SB=-2.367e+03;VQSLOD=10.7708;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,74:74:99:2375,214,0:127	1|1:0,80:80:99:2480,217,0:127	1|1:0,49:49:99:1449,129,0:127
+19	28150587	rs4404191	A	G	7419.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=209;Dels=0.00;FS=0.000;HaplotypeScore=0.2447;MLEAC=6;MLEAF=1.00;MQ=59.61;MQ0=0;QD=35.50;SB=-3.717e+03;VQSLOD=11.9901;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,70:70:99:2584,202,0:127	1|1:0,74:74:99:2509,193,0:127	1|1:0,65:65:99:2326,181,0:127
+19	37226152	rs3108217	G	C	2076.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=0.215;DB;DP=145;Dels=0.00;FS=2.159;HaplotypeScore=0.5869;MLEAC=4;MLEAF=0.667;MQ=58.59;MQ0=0;MQRankSum=1.160;QD=14.32;ReadPosRankSum=-0.725;SB=-1.027e+03;VQSLOD=7.4915;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:25,30:55:99:789,0,709:63	1|1:0,29:29:63:772,63,0:63	0|1:35,25:61:99:557,0,789:63
+19	54644879	rs36636	G	A	1790.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=2.505;DB;DP=187;Dels=0.00;FS=4.408;HaplotypeScore=1.5043;MLEAC=2;MLEAF=0.333;MQ=59.51;MQ0=0;MQRankSum=-1.266;QD=13.88;ReadPosRankSum=-1.226;SB=-1.081e+03;VQSLOD=7.8045;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:30,27:57:99:811,0,726:127	1|0:31,41:72:99:1018,0,730:127	0|0:58,0:58:99:0,144,1815:127
+20	3199373	rs2422861	G	A	896.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.452;DB;DP=135;Dels=0.00;FS=0.664;HaplotypeScore=2.8371;MLEAC=3;MLEAF=0.500;MQ=58.47;MQ0=0;MQRankSum=-0.217;QD=6.64;ReadPosRankSum=0.111;SB=-6.080e+02;VQSLOD=7.7118;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:32,24:56:99:472,0,640:127	0/1:25,15:40:99:229,0,603:127	0/1:20,19:39:99:234,0,379:127
+20	12166868	rs7272217	C	T	926.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.444;DB;DP=200;Dels=0.00;FS=2.627;HaplotypeScore=0.8413;MLEAC=1;MLEAF=0.167;MQ=58.94;MQ0=0;MQRankSum=-1.362;QD=13.23;ReadPosRankSum=-1.055;SB=-4.040e+02;VQSLOD=7.6219;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:68,0:68:99:0,190,2486:127	0|0:62,0:62:99:0,169,2218:127	0|1:33,37:70:99:961,0,870:127
+20	21523349	rs73127889	A	G	2286.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-6.469;DB;DP=253;Dels=0.00;FS=3.735;HaplotypeScore=1.5402;MLEAC=2;MLEAF=0.333;MQ=59.31;MQ0=0;MQRankSum=0.821;QD=13.69;ReadPosRankSum=1.510;SB=-8.640e+02;VQSLOD=7.8358;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|1:44,48:92:99:1319,0,1356:127	0|0:86,0:86:99:0,235,2994:127	1|0:37,38:75:99:1006,0,1111:127
+20	29566945	rs6119037	C	G	1427.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=-3.826;DB;DP=271;Dels=0.00;FS=1.151;HaplotypeScore=2.7598;MLEAC=2;MLEAF=0.333;MQ=47.42;MQ0=21;MQRankSum=2.420;QD=8.06;ReadPosRankSum=0.363;SB=-7.560e+02;VQSLOD=1.7908;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:59,32:91:99:782,0,1210:127	1|0:55,31:86:99:684,0,1422:127	0|0:94,0:94:99:0,208,2592:127
+20	41560394	rs761027	A	G	5634.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-4.444;DB;DP=222;Dels=0.00;FS=0.829;HaplotypeScore=1.1428;MLEAC=5;MLEAF=0.833;MQ=59.60;MQ0=0;MQRankSum=0.392;QD=25.38;ReadPosRankSum=-0.064;SB=-3.048e+03;VQSLOD=10.0362;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,72:72:99:2228,187,0:127	1|1:0,82:82:99:2435,211,0:127	1|0:25,43:68:99:971,0,567:127
+20	51353834	rs241795	G	A	6115.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=7.909;DB;DP=268;Dels=0.00;FS=0.000;HaplotypeScore=0.2447;MLEAC=4;MLEAF=0.667;MQ=59.38;MQ0=0;MQRankSum=-0.518;QD=22.82;ReadPosRankSum=-0.253;SB=-3.328e+03;VQSLOD=8.3999;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:46,54:100:99:1663,0,1247:127	1|1:0,91:91:99:3189,247,0:127	0|1:36,41:77:99:1263,0,901:127
+20	59978756	rs1892320	T	C	3967.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-2.562;DB;DP=206;Dels=0.00;FS=14.249;HaplotypeScore=1.3838;MLEAC=4;MLEAF=0.667;MQ=59.89;MQ0=0;MQRankSum=-0.289;QD=19.26;ReadPosRankSum=0.221;SB=-2.292e+03;VQSLOD=7.6238;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:0,72:72:99:2337,181,0:127	1|0:38,29:67:99:743,0,1180:127	1|0:31,36:67:99:887,0,873:127
+21	10750991	.	C	T	602.26	VQSRTrancheSNP99.90to100.00	AC=2;AF=0.333;AN=6;BaseQRankSum=10.103;DP=735;DS;Dels=0.00;FS=27.020;HaplotypeScore=107.2731;MLEAC=2;MLEAF=0.333;MQ=44.40;MQ0=2;MQRankSum=-14.560;QD=1.24;ReadPosRankSum=0.063;SB=-8.430e+02;VQSLOD=-100.9480;culprit=DP	GT:AD:DP:GQ:PL:TP	1|0:164,78:243:99:357,0,5193:103	1|0:187,55:242:99:284,0,5252:103	0|0:199,50:250:99:0,103,5864:103
+21	18433036	rs969905	A	G	781.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-6.610;DB;DP=229;Dels=0.00;FS=2.230;HaplotypeScore=1.2866;MLEAC=1;MLEAF=0.167;MQ=59.55;MQ0=0;MQRankSum=0.300;QD=10.15;ReadPosRankSum=-0.384;SB=-4.990e+02;VQSLOD=9.5768;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:62,0:63:99:0,181,2380:127	0|0:89,0:89:99:0,244,3177:127	0|1:39,38:77:99:816,0,1256:127
+21	25702950	rs2260875	C	G	3462.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.156;DB;DP=237;Dels=0.00;FS=2.900;HaplotypeScore=1.5444;MLEAC=3;MLEAF=0.500;MQ=59.04;MQ0=0;MQRankSum=0.386;QD=14.61;ReadPosRankSum=-1.455;SB=-1.683e+03;VQSLOD=8.0501;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0/1:37,40:77:99:1282,0,1101:127	0/1:43,36:79:99:1114,0,1317:127	0/1:45,36:81:99:1066,0,1329:127
+21	34546711	rs11701692	T	C	1030.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-1.884;DB;DP=152;Dels=0.00;FS=8.325;HaplotypeScore=1.9325;MLEAC=2;MLEAF=0.333;MQ=57.61;MQ0=0;MQRankSum=-0.291;QD=10.51;ReadPosRankSum=0.258;SB=-4.600e+02;VQSLOD=6.4601;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:35,25:61:99:574,0,1137:127	1|0:19,18:37:99:495,0,498:127	0|0:54,0:54:99:0,141,1811:127
+21	42833227	rs460904	T	C	3179.23	PASS	AC=6;AF=1.00;AN=6;DB;DP=155;Dels=0.00;FS=0.000;HaplotypeScore=2.4559;MLEAC=6;MLEAF=1.00;MQ=58.18;MQ0=0;QD=20.51;SB=-2.173e+03;VQSLOD=7.7042;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,60:60:90:1085,90,0:74	1|1:0,54:54:96:1172,96,0:74	1|1:0,41:41:75:960,75,0:74
+22	17351507	rs5748687	G	A	4244.01	VQSRTrancheSNP99.00to99.90	AC=5;AF=0.833;AN=6;BaseQRankSum=-0.224;DB;DP=261;Dels=0.00;FS=0.710;HaplotypeScore=1.7170;MLEAC=5;MLEAF=0.833;MQ=28.84;MQ0=57;MQRankSum=-7.852;QD=16.26;ReadPosRankSum=-1.243;SB=-2.174e+03;VQSLOD=-1.7101;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:0,92:92:99:1529,141,0:127	1|0:34,49:83:99:727,0,1065:127	1|1:0,86:86:99:1988,180,0:127
+22	34204930	rs13053313	T	C	435.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.517;DB;DP=82;Dels=0.00;FS=5.843;HaplotypeScore=0.5328;MLEAC=1;MLEAF=0.167;MQ=58.65;MQ0=0;MQRankSum=1.117;QD=12.80;ReadPosRankSum=-1.270;SB=-1.170e+02;VQSLOD=6.4410;culprit=DP	GT:AD:DP:GQ:PL:TP	0|0:12,0:12:27:0,27,360:27	0|1:16,18:34:99:470,0,403:27	0|0:36,0:36:93:0,93,1230:27
+22	43356130	rs6519353	A	C	3526.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.809;DB;DP=228;Dels=0.00;FS=6.336;HaplotypeScore=1.6306;MLEAC=3;MLEAF=0.500;MQ=59.41;MQ0=0;MQRankSum=-0.146;QD=22.46;ReadPosRankSum=2.034;SB=-1.954e+03;VQSLOD=8.5009;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|0:40,41:81:99:1020,0,1222:127	1|1:0,76:76:99:2506,196,0:127	0|0:71,0:71:99:0,165,2091:127
+22	50309915	rs9616205	A	T	1712.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-0.936;DB;DP=162;Dels=0.00;FS=2.857;HaplotypeScore=2.1490;MLEAC=2;MLEAF=0.333;MQ=56.21;MQ0=5;MQRankSum=0.892;QD=13.92;ReadPosRankSum=-1.040;SB=-9.940e+02;VQSLOD=6.2766;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|1:39,33:72:99:777,0,994:78	0|0:39,0:39:78:0,78,1010:78	1|0:16,35:51:99:974,0,257:78
+X	4712340	rs5915814	C	A	2233.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=8.784;DB;DP=176;Dels=0.00;FS=0.000;HaplotypeScore=0.4434;MLEAC=2;MLEAF=0.333;MQ=59.50;MQ0=0;MQRankSum=-1.782;QD=15.73;ReadPosRankSum=0.359;SB=-1.240e+03;VQSLOD=8.3937;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:32,37:69:99:1114,0,859:81	0|0:34,0:34:81:0,81,948:81	1|0:32,41:73:99:1158,0,575:81
+X	42192093	rs58959554	T	C	1058.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-5.464;DB;DP=190;Dels=0.00;FS=6.809;HaplotypeScore=1.8813;MLEAC=1;MLEAF=0.167;MQ=59.41;MQ0=0;MQRankSum=-0.212;QD=15.34;ReadPosRankSum=-0.173;SB=-3.970e+02;VQSLOD=8.0569;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:70,1:71:99:0,182,2683:127	0|0:50,0:50:99:0,138,1794:127	0|1:31,38:69:99:1093,0,947:127
+X	66290558	rs1606094	C	T	2602.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=2.169;DB;DP=213;Dels=0.00;FS=13.125;HaplotypeScore=0.0000;MLEAC=3;MLEAF=0.500;MQ=59.59;MQ0=0;MQRankSum=1.343;QD=18.86;ReadPosRankSum=2.274;SB=-1.122e+03;VQSLOD=5.9967;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:54,47:101:99:1381,0,1762:99	1|1:0,37:37:99:1266,99,0:99	0|0:75,0:75:99:0,205,2705:99
+X	84165195	rs5923187	C	A	1009.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.103;DB;DP=194;Dels=0.00;FS=3.070;HaplotypeScore=2.8168;MLEAC=1;MLEAF=0.167;MQ=59.31;MQ0=0;MQRankSum=-0.675;QD=12.01;ReadPosRankSum=-1.463;SB=-5.890e+02;VQSLOD=8.2395;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:79,1:80:99:0,223,2856:60	0|0:30,0:30:60:0,60,764:60	0|1:40,44:84:99:1044,0,1007:60
+X	95868251	.	G	A	108.36	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=1.436;DP=90;Dels=0.00;FS=4.210;HaplotypeScore=4.9383;MLEAC=2;MLEAF=0.333;MQ=44.60;MQ0=8;MQRankSum=-2.939;QD=1.55;ReadPosRankSum=2.865;SB=-7.411e+01;VQSLOD=-3.2422;culprit=QD	GT:AD:DP:GQ:PL:TP	0|1:29,9:38:99:126,0,251:23	0|0:20,0:20:24:0,24,266:23	1|0:27,5:32:21:21,0,97:23
+X	116855730	rs980389	A	G	2366.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.939;DB;DP=173;Dels=0.00;FS=3.510;HaplotypeScore=0.9076;MLEAC=3;MLEAF=0.500;MQ=59.87;MQ0=0;MQRankSum=0.653;QD=21.51;ReadPosRankSum=0.730;SB=-1.218e+03;VQSLOD=7.9588;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:37,33:70:99:965,0,1249:114	1|1:0,40:40:99:1446,114,0:114	0|0:63,0:63:99:0,175,2284:114
+X	135282092	rs5974586	G	C	2193.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=4.257;DB;DP=203;Dels=0.00;FS=0.540;HaplotypeScore=0.6589;MLEAC=2;MLEAF=0.333;MQ=59.47;MQ0=0;MQRankSum=1.000;QD=13.46;ReadPosRankSum=1.343;SB=-1.069e+03;VQSLOD=9.0929;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|1:47,33:80:99:1026,0,1466:116	0|0:40,0:40:99:0,117,1486:116	1|0:43,40:83:99:1206,0,1311:116
+X	150239197	rs6627349	T	C	4677.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=0.731;DB;DP=179;Dels=0.00;FS=0.000;HaplotypeScore=1.6094;MLEAC=5;MLEAF=0.833;MQ=59.69;MQ0=0;MQRankSum=0.676;QD=26.13;ReadPosRankSum=0.494;SB=-2.442e+03;VQSLOD=10.5525;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,66:66:99:2387,190,0:99	1|1:0,40:40:99:1243,99,0:99	1|0:36,37:73:99:1047,0,1039:99
+Y	13265732	.	C	T	356.72	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=2.823;DP=142;Dels=0.00;FS=7.941;HaplotypeScore=19.8229;MLEAC=2;MLEAF=0.333;MQ=38.22;MQ0=11;MQRankSum=-2.145;QD=5.10;ReadPosRankSum=1.491;SB=-1.466e+00;VQSLOD=-14.4273;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|1:35,15:50:99:327,0,624:5	0|0:65,7:72:4:0,4,1831:5	1|0:15,5:20:67:67,0,227:5
+Y	59024923	.	A	T	1977.26	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=1.838;DP=745;DS;Dels=0.00;FS=0.367;HaplotypeScore=8.2957;MLEAC=3;MLEAF=0.500;MQ=43.53;MQ0=19;MQRankSum=2.499;QD=2.65;ReadPosRankSum=0.098;SB=-9.720e+02;VQSLOD=-36.7578;culprit=DP	GT:AD:DP:GQ:PL:TP	0/1:208,42:250:99:730,0,6428:127	0/1:210,35:245:99:588,0,6218:127	0/1:208,42:250:99:698,0,6060:127
+GL000214.1	115144	.	C	T	102.07	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=0.854;DP=103;Dels=0.00;FS=14.185;HaplotypeScore=14.9478;MLEAC=2;MLEAF=0.333;MQ=38.45;MQ0=1;MQRankSum=-2.314;QD=1.05;ReadPosRankSum=1.480;SB=-6.153e+01;VQSLOD=-14.7562;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:6,0:6:3:0,3,22:4	0|1:9,11:20:16:81,0,16:4	0|1:63,14:77:58:58,0,908:4
+GL000215.1	142616	.	T	C	976.25	VQSRTrancheSNP99.00to99.90	AC=6;AF=1.00;AN=6;DP=80;Dels=0.00;FS=0.000;HaplotypeScore=0.0000;MLEAC=6;MLEAF=1.00;MQ=21.04;MQ0=42;QD=12.20;SB=-8.001e+01;VQSLOD=-0.4104;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:0,33:33:42:516,42,0:19	1|1:0,21:21:24:272,24,0:19	1|1:0,26:26:21:226,21,0:19
+GL000212.1	28454	.	T	C	2248.99	PASS	AC=4;AF=1.00;AN=4;BaseQRankSum=1.691;DP=94;Dels=0.00;FS=3.274;HaplotypeScore=0.9622;MLEAC=4;MLEAF=1.00;MQ=36.99;MQ0=7;MQRankSum=-0.428;QD=24.18;ReadPosRankSum=-1.284;SB=-1.053e+03;VQSLOD=1.2364;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:0,29:29:63:755,63,0:63	./.	1|1:1,63:64:99:1530,135,0:63
diff --git a/testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff.genotype_concordance_contingency_metrics b/testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff.genotype_concordance_contingency_metrics
new file mode 100644
index 0000000..1caf5a8
--- /dev/null
+++ b/testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff.genotype_concordance_contingency_metrics
@@ -0,0 +1,11 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.vcf.GenotypeConcordance TRUTH_VCF=testdata/picard/vcf/CEUTrio-snps.vcf CALL_VCF=testdata/picard/vcf/CEUTrio-snps.vcf OUTPUT=testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff TRUTH_SAMPLE=NA12878 CALL_SAMPLE=NA12878    INTERSECT_INTERVALS=true MIN_GQ=0 MIN_DP=0 OUTPUT_ALL_ROWS=false USE_VCF_INDEX=false VERBOSITY=INFO QUIET=false VALIDATION_STRINGENCY=STRICT COMPRESSION_LEVEL=5 MAX_RECORDS_IN_RAM=500000 CREATE_INDEX=false CREATE_MD5_FILE=false
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Tue Nov 04 11:44:18 EST 2014
+
+## METRICS CLASS	picard.vcf.GenotypeConcordanceContingencyMetrics
+VARIANT_TYPE	TRUTH_SAMPLE	CALL_SAMPLE	TP_COUNT	TN_COUNT	FP_COUNT	FN_COUNT	EMPTY_COUNT
+SNP	NA12878	NA12878	163	104	0	0	40
+INDEL	NA12878	NA12878	0	0	0	0	0
+
+
diff --git a/testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff.genotype_concordance_detail_metrics b/testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff.genotype_concordance_detail_metrics
new file mode 100644
index 0000000..ba81911
--- /dev/null
+++ b/testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff.genotype_concordance_detail_metrics
@@ -0,0 +1,12 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.vcf.GenotypeConcordance TRUTH_VCF=testdata/picard/vcf/CEUTrio-snps.vcf CALL_VCF=testdata/picard/vcf/CEUTrio-snps.vcf OUTPUT=testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff TRUTH_SAMPLE=NA12878 CALL_SAMPLE=NA12878    INTERSECT_INTERVALS=true MIN_GQ=0 MIN_DP=0 OUTPUT_ALL_ROWS=false USE_VCF_INDEX=false VERBOSITY=INFO QUIET=false VALIDATION_STRINGENCY=STRICT COMPRESSION_LEVEL=5 MAX_RECORDS_IN_RAM=500000 CREATE_INDEX=false CREATE_MD5_FILE=false
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Tue Nov 04 11:44:18 EST 2014
+
+## METRICS CLASS	picard.vcf.GenotypeConcordanceDetailMetrics
+VARIANT_TYPE	TRUTH_SAMPLE	CALL_SAMPLE	TRUTH_STATE	CALL_STATE	COUNT	CONTINGENCY_VALUES
+SNP	NA12878	NA12878	HET_REF_VAR1	HET_REF_VAR1	104	TP,TN
+SNP	NA12878	NA12878	HOM_VAR1	HOM_VAR1	59	TP
+SNP	NA12878	NA12878	VC_FILTERED	VC_FILTERED	40	EMPTY
+
+
diff --git a/testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff.genotype_concordance_summary_metrics b/testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff.genotype_concordance_summary_metrics
new file mode 100644
index 0000000..fd2c926
--- /dev/null
+++ b/testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff.genotype_concordance_summary_metrics
@@ -0,0 +1,11 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.vcf.GenotypeConcordance TRUTH_VCF=/Users/kbergin/picard/testdata/picard/vcf/CEUTrio-snps.vcf CALL_VCF=/Users/kbergin/picard/testdata/picard/vcf/CEUTrio-snps.vcf OUTPUT=/Users/kbergin/picard/testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff TRUTH_SAMPLE=NA12878 CALL_SAMPLE=NA12878    INTERSECT_INTERVALS=true MIN_GQ=0 MIN_DP=0 OUTPUT_ALL_ROWS=false USE_VCF_INDEX=false MISSING_SITES_HOM_REF=false VERBOSITY=INFO QUIET=false VALIDATION_STRINGENCY=STRICT COMPRESSION_L [...]
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Wed Jul 29 14:01:26 EDT 2015
+
+## METRICS CLASS	picard.vcf.GenotypeConcordanceSummaryMetrics
+VARIANT_TYPE	TRUTH_SAMPLE	CALL_SAMPLE	HET_SENSITIVITY	HET_PPV	HET_SPECIFICITY	HOMVAR_SENSITIVITY	HOMVAR_PPV	HOMVAR_SPECIFICITY	VAR_SENSITIVITY	VAR_PPV	VAR_SPECIFICITY	GENOTYPE_CONCORDANCE	NON_REF_GENOTYPE_CONCORDANCE
+SNP	NA12878	NA12878	1	1	?	1	1	?	1	1	1	1	1
+INDEL	NA12878	NA12878	?	?	?	?	?	?	?	?	?	?	?
+
+
diff --git a/testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff_AllRows.genotype_concordance_contingency_metrics b/testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff_AllRows.genotype_concordance_contingency_metrics
new file mode 100644
index 0000000..2260f84
--- /dev/null
+++ b/testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff_AllRows.genotype_concordance_contingency_metrics
@@ -0,0 +1,11 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.vcf.GenotypeConcordance TRUTH_VCF=testdata/picard/vcf/CEUTrio-snps.vcf CALL_VCF=testdata/picard/vcf/CEUTrio-snps.vcf OUTPUT=testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff_AllRows TRUTH_SAMPLE=NA12878 CALL_SAMPLE=NA12878 OUTPUT_ALL_ROWS=true    INTERSECT_INTERVALS=true MIN_GQ=0 MIN_DP=0 USE_VCF_INDEX=false VERBOSITY=INFO QUIET=false VALIDATION_STRINGENCY=STRICT COMPRESSION_LEVEL=5 MAX_RECORDS_IN_RAM=500000 CREATE_INDEX=false CREATE_MD5_FILE=false
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Tue Nov 04 11:44:20 EST 2014
+
+## METRICS CLASS	picard.vcf.GenotypeConcordanceContingencyMetrics
+VARIANT_TYPE	TRUTH_SAMPLE	CALL_SAMPLE	TP_COUNT	TN_COUNT	FP_COUNT	FN_COUNT	EMPTY_COUNT
+SNP	NA12878	NA12878	163	104	0	0	40
+INDEL	NA12878	NA12878	0	0	0	0	0
+
+
diff --git a/testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff_AllRows.genotype_concordance_detail_metrics b/testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff_AllRows.genotype_concordance_detail_metrics
new file mode 100644
index 0000000..8f34dfe
--- /dev/null
+++ b/testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff_AllRows.genotype_concordance_detail_metrics
@@ -0,0 +1,383 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.vcf.GenotypeConcordance TRUTH_VCF=/Users/kbergin/picard/testdata/picard/vcf/CEUTrio-snps.vcf CALL_VCF=/Users/kbergin/picard/testdata/picard/vcf/CEUTrio-snps.vcf OUTPUT=/Users/kbergin/picard/testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff_AllRows TRUTH_SAMPLE=NA12878 CALL_SAMPLE=NA12878 OUTPUT_ALL_ROWS=true    INTERSECT_INTERVALS=true MIN_GQ=0 MIN_DP=0 USE_VCF_INDEX=false MISSING_SITES_HOM_REF=false VERBOSITY=INFO QUIET=false VALIDATION_STRINGENCY=STRICT COMPRE [...]
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Thu Jul 30 11:13:00 EDT 2015
+
+## METRICS CLASS	picard.vcf.GenotypeConcordanceDetailMetrics
+VARIANT_TYPE	TRUTH_SAMPLE	CALL_SAMPLE	TRUTH_STATE	CALL_STATE	COUNT	CONTINGENCY_VALUES
+SNP	NA12878	NA12878	MISSING	MISSING	0	NA
+SNP	NA12878	NA12878	MISSING	HOM_REF	0	TN
+SNP	NA12878	NA12878	MISSING	HET_REF_VAR1	0	FP,TN
+SNP	NA12878	NA12878	MISSING	HET_VAR1_VAR2	0	FP
+SNP	NA12878	NA12878	MISSING	HOM_VAR1	0	FP
+SNP	NA12878	NA12878	MISSING	HET_REF_VAR2	0	NA
+SNP	NA12878	NA12878	MISSING	HET_REF_VAR3	0	NA
+SNP	NA12878	NA12878	MISSING	HET_VAR1_VAR3	0	NA
+SNP	NA12878	NA12878	MISSING	HET_VAR3_VAR4	0	FP
+SNP	NA12878	NA12878	MISSING	HOM_VAR2	0	NA
+SNP	NA12878	NA12878	MISSING	HOM_VAR3	0	NA
+SNP	NA12878	NA12878	MISSING	NO_CALL	0	EMPTY
+SNP	NA12878	NA12878	MISSING	LOW_GQ	0	EMPTY
+SNP	NA12878	NA12878	MISSING	LOW_DP	0	EMPTY
+SNP	NA12878	NA12878	MISSING	VC_FILTERED	0	EMPTY
+SNP	NA12878	NA12878	MISSING	GT_FILTERED	0	EMPTY
+SNP	NA12878	NA12878	MISSING	IS_MIXED	0	EMPTY
+SNP	NA12878	NA12878	HOM_REF	MISSING	0	TN
+SNP	NA12878	NA12878	HOM_REF	HOM_REF	0	TN
+SNP	NA12878	NA12878	HOM_REF	HET_REF_VAR1	0	FP,TN
+SNP	NA12878	NA12878	HOM_REF	HET_VAR1_VAR2	0	FP
+SNP	NA12878	NA12878	HOM_REF	HOM_VAR1	0	FP
+SNP	NA12878	NA12878	HOM_REF	HET_REF_VAR2	0	NA
+SNP	NA12878	NA12878	HOM_REF	HET_REF_VAR3	0	NA
+SNP	NA12878	NA12878	HOM_REF	HET_VAR1_VAR3	0	NA
+SNP	NA12878	NA12878	HOM_REF	HET_VAR3_VAR4	0	FP
+SNP	NA12878	NA12878	HOM_REF	HOM_VAR2	0	NA
+SNP	NA12878	NA12878	HOM_REF	HOM_VAR3	0	NA
+SNP	NA12878	NA12878	HOM_REF	NO_CALL	0	EMPTY
+SNP	NA12878	NA12878	HOM_REF	LOW_GQ	0	TN
+SNP	NA12878	NA12878	HOM_REF	LOW_DP	0	TN
+SNP	NA12878	NA12878	HOM_REF	VC_FILTERED	0	TN
+SNP	NA12878	NA12878	HOM_REF	GT_FILTERED	0	TN
+SNP	NA12878	NA12878	HOM_REF	IS_MIXED	0	EMPTY
+SNP	NA12878	NA12878	HET_REF_VAR1	MISSING	0	TN,FN
+SNP	NA12878	NA12878	HET_REF_VAR1	HOM_REF	0	TN,FN
+SNP	NA12878	NA12878	HET_REF_VAR1	HET_REF_VAR1	104	TP,TN
+SNP	NA12878	NA12878	HET_REF_VAR1	HET_VAR1_VAR2	0	TP,FP
+SNP	NA12878	NA12878	HET_REF_VAR1	HOM_VAR1	0	TP,FP
+SNP	NA12878	NA12878	HET_REF_VAR1	HET_REF_VAR2	0	FP,TN,FN
+SNP	NA12878	NA12878	HET_REF_VAR1	HET_REF_VAR3	0	NA
+SNP	NA12878	NA12878	HET_REF_VAR1	HET_VAR1_VAR3	0	NA
+SNP	NA12878	NA12878	HET_REF_VAR1	HET_VAR3_VAR4	0	FP,FN
+SNP	NA12878	NA12878	HET_REF_VAR1	HOM_VAR2	0	FP,FN
+SNP	NA12878	NA12878	HET_REF_VAR1	HOM_VAR3	0	NA
+SNP	NA12878	NA12878	HET_REF_VAR1	NO_CALL	0	EMPTY
+SNP	NA12878	NA12878	HET_REF_VAR1	LOW_GQ	0	TN,FN
+SNP	NA12878	NA12878	HET_REF_VAR1	LOW_DP	0	TN,FN
+SNP	NA12878	NA12878	HET_REF_VAR1	VC_FILTERED	0	TN,FN
+SNP	NA12878	NA12878	HET_REF_VAR1	GT_FILTERED	0	TN,FN
+SNP	NA12878	NA12878	HET_REF_VAR1	IS_MIXED	0	EMPTY
+SNP	NA12878	NA12878	HET_VAR1_VAR2	MISSING	0	FN
+SNP	NA12878	NA12878	HET_VAR1_VAR2	HOM_REF	0	FN
+SNP	NA12878	NA12878	HET_VAR1_VAR2	HET_REF_VAR1	0	TP,FN
+SNP	NA12878	NA12878	HET_VAR1_VAR2	HET_VAR1_VAR2	0	TP
+SNP	NA12878	NA12878	HET_VAR1_VAR2	HOM_VAR1	0	TP,FN
+SNP	NA12878	NA12878	HET_VAR1_VAR2	HET_REF_VAR2	0	NA
+SNP	NA12878	NA12878	HET_VAR1_VAR2	HET_REF_VAR3	0	FP,FN
+SNP	NA12878	NA12878	HET_VAR1_VAR2	HET_VAR1_VAR3	0	TP,FP,FN
+SNP	NA12878	NA12878	HET_VAR1_VAR2	HET_VAR3_VAR4	0	FP,FN
+SNP	NA12878	NA12878	HET_VAR1_VAR2	HOM_VAR2	0	TP,FN
+SNP	NA12878	NA12878	HET_VAR1_VAR2	HOM_VAR3	0	FP,FN
+SNP	NA12878	NA12878	HET_VAR1_VAR2	NO_CALL	0	EMPTY
+SNP	NA12878	NA12878	HET_VAR1_VAR2	LOW_GQ	0	FN
+SNP	NA12878	NA12878	HET_VAR1_VAR2	LOW_DP	0	FN
+SNP	NA12878	NA12878	HET_VAR1_VAR2	VC_FILTERED	0	FN
+SNP	NA12878	NA12878	HET_VAR1_VAR2	GT_FILTERED	0	FN
+SNP	NA12878	NA12878	HET_VAR1_VAR2	IS_MIXED	0	EMPTY
+SNP	NA12878	NA12878	HOM_VAR1	MISSING	0	FN
+SNP	NA12878	NA12878	HOM_VAR1	HOM_REF	0	FN
+SNP	NA12878	NA12878	HOM_VAR1	HET_REF_VAR1	0	TP,FN
+SNP	NA12878	NA12878	HOM_VAR1	HET_VAR1_VAR2	0	TP,FP,FN
+SNP	NA12878	NA12878	HOM_VAR1	HOM_VAR1	59	TP
+SNP	NA12878	NA12878	HOM_VAR1	HET_REF_VAR2	0	FP,FN
+SNP	NA12878	NA12878	HOM_VAR1	HET_REF_VAR3	0	NA
+SNP	NA12878	NA12878	HOM_VAR1	HET_VAR1_VAR3	0	NA
+SNP	NA12878	NA12878	HOM_VAR1	HET_VAR3_VAR4	0	FP,FN
+SNP	NA12878	NA12878	HOM_VAR1	HOM_VAR2	0	FP,FN
+SNP	NA12878	NA12878	HOM_VAR1	HOM_VAR3	0	NA
+SNP	NA12878	NA12878	HOM_VAR1	NO_CALL	0	EMPTY
+SNP	NA12878	NA12878	HOM_VAR1	LOW_GQ	0	FN
+SNP	NA12878	NA12878	HOM_VAR1	LOW_DP	0	FN
+SNP	NA12878	NA12878	HOM_VAR1	VC_FILTERED	0	FN
+SNP	NA12878	NA12878	HOM_VAR1	GT_FILTERED	0	FN
+SNP	NA12878	NA12878	HOM_VAR1	IS_MIXED	0	EMPTY
+SNP	NA12878	NA12878	NO_CALL	MISSING	0	EMPTY
+SNP	NA12878	NA12878	NO_CALL	HOM_REF	0	EMPTY
+SNP	NA12878	NA12878	NO_CALL	HET_REF_VAR1	0	EMPTY
+SNP	NA12878	NA12878	NO_CALL	HET_VAR1_VAR2	0	EMPTY
+SNP	NA12878	NA12878	NO_CALL	HOM_VAR1	0	EMPTY
+SNP	NA12878	NA12878	NO_CALL	HET_REF_VAR2	0	NA
+SNP	NA12878	NA12878	NO_CALL	HET_REF_VAR3	0	NA
+SNP	NA12878	NA12878	NO_CALL	HET_VAR1_VAR3	0	NA
+SNP	NA12878	NA12878	NO_CALL	HET_VAR3_VAR4	0	NA
+SNP	NA12878	NA12878	NO_CALL	HOM_VAR2	0	NA
+SNP	NA12878	NA12878	NO_CALL	HOM_VAR3	0	NA
+SNP	NA12878	NA12878	NO_CALL	NO_CALL	0	EMPTY
+SNP	NA12878	NA12878	NO_CALL	LOW_GQ	0	EMPTY
+SNP	NA12878	NA12878	NO_CALL	LOW_DP	0	EMPTY
+SNP	NA12878	NA12878	NO_CALL	VC_FILTERED	0	EMPTY
+SNP	NA12878	NA12878	NO_CALL	GT_FILTERED	0	EMPTY
+SNP	NA12878	NA12878	NO_CALL	IS_MIXED	0	EMPTY
+SNP	NA12878	NA12878	LOW_GQ	MISSING	0	EMPTY
+SNP	NA12878	NA12878	LOW_GQ	HOM_REF	0	EMPTY
+SNP	NA12878	NA12878	LOW_GQ	HET_REF_VAR1	0	EMPTY
+SNP	NA12878	NA12878	LOW_GQ	HET_VAR1_VAR2	0	EMPTY
+SNP	NA12878	NA12878	LOW_GQ	HOM_VAR1	0	EMPTY
+SNP	NA12878	NA12878	LOW_GQ	HET_REF_VAR2	0	NA
+SNP	NA12878	NA12878	LOW_GQ	HET_REF_VAR3	0	NA
+SNP	NA12878	NA12878	LOW_GQ	HET_VAR1_VAR3	0	NA
+SNP	NA12878	NA12878	LOW_GQ	HET_VAR3_VAR4	0	NA
+SNP	NA12878	NA12878	LOW_GQ	HOM_VAR2	0	NA
+SNP	NA12878	NA12878	LOW_GQ	HOM_VAR3	0	NA
+SNP	NA12878	NA12878	LOW_GQ	NO_CALL	0	EMPTY
+SNP	NA12878	NA12878	LOW_GQ	LOW_GQ	0	EMPTY
+SNP	NA12878	NA12878	LOW_GQ	LOW_DP	0	EMPTY
+SNP	NA12878	NA12878	LOW_GQ	VC_FILTERED	0	EMPTY
+SNP	NA12878	NA12878	LOW_GQ	GT_FILTERED	0	EMPTY
+SNP	NA12878	NA12878	LOW_GQ	IS_MIXED	0	EMPTY
+SNP	NA12878	NA12878	LOW_DP	MISSING	0	EMPTY
+SNP	NA12878	NA12878	LOW_DP	HOM_REF	0	EMPTY
+SNP	NA12878	NA12878	LOW_DP	HET_REF_VAR1	0	EMPTY
+SNP	NA12878	NA12878	LOW_DP	HET_VAR1_VAR2	0	EMPTY
+SNP	NA12878	NA12878	LOW_DP	HOM_VAR1	0	EMPTY
+SNP	NA12878	NA12878	LOW_DP	HET_REF_VAR2	0	NA
+SNP	NA12878	NA12878	LOW_DP	HET_REF_VAR3	0	NA
+SNP	NA12878	NA12878	LOW_DP	HET_VAR1_VAR3	0	NA
+SNP	NA12878	NA12878	LOW_DP	HET_VAR3_VAR4	0	NA
+SNP	NA12878	NA12878	LOW_DP	HOM_VAR2	0	NA
+SNP	NA12878	NA12878	LOW_DP	HOM_VAR3	0	NA
+SNP	NA12878	NA12878	LOW_DP	NO_CALL	0	EMPTY
+SNP	NA12878	NA12878	LOW_DP	LOW_GQ	0	EMPTY
+SNP	NA12878	NA12878	LOW_DP	LOW_DP	0	EMPTY
+SNP	NA12878	NA12878	LOW_DP	VC_FILTERED	0	EMPTY
+SNP	NA12878	NA12878	LOW_DP	GT_FILTERED	0	EMPTY
+SNP	NA12878	NA12878	LOW_DP	IS_MIXED	0	EMPTY
+SNP	NA12878	NA12878	VC_FILTERED	MISSING	0	EMPTY
+SNP	NA12878	NA12878	VC_FILTERED	HOM_REF	0	EMPTY
+SNP	NA12878	NA12878	VC_FILTERED	HET_REF_VAR1	0	EMPTY
+SNP	NA12878	NA12878	VC_FILTERED	HET_VAR1_VAR2	0	EMPTY
+SNP	NA12878	NA12878	VC_FILTERED	HOM_VAR1	0	EMPTY
+SNP	NA12878	NA12878	VC_FILTERED	HET_REF_VAR2	0	NA
+SNP	NA12878	NA12878	VC_FILTERED	HET_REF_VAR3	0	NA
+SNP	NA12878	NA12878	VC_FILTERED	HET_VAR1_VAR3	0	NA
+SNP	NA12878	NA12878	VC_FILTERED	HET_VAR3_VAR4	0	NA
+SNP	NA12878	NA12878	VC_FILTERED	HOM_VAR2	0	NA
+SNP	NA12878	NA12878	VC_FILTERED	HOM_VAR3	0	NA
+SNP	NA12878	NA12878	VC_FILTERED	NO_CALL	0	EMPTY
+SNP	NA12878	NA12878	VC_FILTERED	LOW_GQ	0	EMPTY
+SNP	NA12878	NA12878	VC_FILTERED	LOW_DP	0	EMPTY
+SNP	NA12878	NA12878	VC_FILTERED	VC_FILTERED	40	EMPTY
+SNP	NA12878	NA12878	VC_FILTERED	GT_FILTERED	0	EMPTY
+SNP	NA12878	NA12878	VC_FILTERED	IS_MIXED	0	EMPTY
+SNP	NA12878	NA12878	GT_FILTERED	MISSING	0	EMPTY
+SNP	NA12878	NA12878	GT_FILTERED	HOM_REF	0	EMPTY
+SNP	NA12878	NA12878	GT_FILTERED	HET_REF_VAR1	0	EMPTY
+SNP	NA12878	NA12878	GT_FILTERED	HET_VAR1_VAR2	0	EMPTY
+SNP	NA12878	NA12878	GT_FILTERED	HOM_VAR1	0	EMPTY
+SNP	NA12878	NA12878	GT_FILTERED	HET_REF_VAR2	0	NA
+SNP	NA12878	NA12878	GT_FILTERED	HET_REF_VAR3	0	NA
+SNP	NA12878	NA12878	GT_FILTERED	HET_VAR1_VAR3	0	NA
+SNP	NA12878	NA12878	GT_FILTERED	HET_VAR3_VAR4	0	NA
+SNP	NA12878	NA12878	GT_FILTERED	HOM_VAR2	0	NA
+SNP	NA12878	NA12878	GT_FILTERED	HOM_VAR3	0	NA
+SNP	NA12878	NA12878	GT_FILTERED	NO_CALL	0	EMPTY
+SNP	NA12878	NA12878	GT_FILTERED	LOW_GQ	0	EMPTY
+SNP	NA12878	NA12878	GT_FILTERED	LOW_DP	0	EMPTY
+SNP	NA12878	NA12878	GT_FILTERED	VC_FILTERED	0	EMPTY
+SNP	NA12878	NA12878	GT_FILTERED	GT_FILTERED	0	EMPTY
+SNP	NA12878	NA12878	GT_FILTERED	IS_MIXED	0	EMPTY
+SNP	NA12878	NA12878	IS_MIXED	MISSING	0	EMPTY
+SNP	NA12878	NA12878	IS_MIXED	HOM_REF	0	EMPTY
+SNP	NA12878	NA12878	IS_MIXED	HET_REF_VAR1	0	EMPTY
+SNP	NA12878	NA12878	IS_MIXED	HET_VAR1_VAR2	0	EMPTY
+SNP	NA12878	NA12878	IS_MIXED	HOM_VAR1	0	EMPTY
+SNP	NA12878	NA12878	IS_MIXED	HET_REF_VAR2	0	NA
+SNP	NA12878	NA12878	IS_MIXED	HET_REF_VAR3	0	NA
+SNP	NA12878	NA12878	IS_MIXED	HET_VAR1_VAR3	0	NA
+SNP	NA12878	NA12878	IS_MIXED	HET_VAR3_VAR4	0	NA
+SNP	NA12878	NA12878	IS_MIXED	HOM_VAR2	0	NA
+SNP	NA12878	NA12878	IS_MIXED	HOM_VAR3	0	NA
+SNP	NA12878	NA12878	IS_MIXED	NO_CALL	0	EMPTY
+SNP	NA12878	NA12878	IS_MIXED	LOW_GQ	0	EMPTY
+SNP	NA12878	NA12878	IS_MIXED	LOW_DP	0	EMPTY
+SNP	NA12878	NA12878	IS_MIXED	VC_FILTERED	0	EMPTY
+SNP	NA12878	NA12878	IS_MIXED	GT_FILTERED	0	EMPTY
+SNP	NA12878	NA12878	IS_MIXED	IS_MIXED	0	EMPTY
+INDEL	NA12878	NA12878	MISSING	MISSING	0	NA
+INDEL	NA12878	NA12878	MISSING	HOM_REF	0	TN
+INDEL	NA12878	NA12878	MISSING	HET_REF_VAR1	0	FP,TN
+INDEL	NA12878	NA12878	MISSING	HET_VAR1_VAR2	0	FP
+INDEL	NA12878	NA12878	MISSING	HOM_VAR1	0	FP
+INDEL	NA12878	NA12878	MISSING	HET_REF_VAR2	0	NA
+INDEL	NA12878	NA12878	MISSING	HET_REF_VAR3	0	NA
+INDEL	NA12878	NA12878	MISSING	HET_VAR1_VAR3	0	NA
+INDEL	NA12878	NA12878	MISSING	HET_VAR3_VAR4	0	FP
+INDEL	NA12878	NA12878	MISSING	HOM_VAR2	0	NA
+INDEL	NA12878	NA12878	MISSING	HOM_VAR3	0	NA
+INDEL	NA12878	NA12878	MISSING	NO_CALL	0	EMPTY
+INDEL	NA12878	NA12878	MISSING	LOW_GQ	0	EMPTY
+INDEL	NA12878	NA12878	MISSING	LOW_DP	0	EMPTY
+INDEL	NA12878	NA12878	MISSING	VC_FILTERED	0	EMPTY
+INDEL	NA12878	NA12878	MISSING	GT_FILTERED	0	EMPTY
+INDEL	NA12878	NA12878	MISSING	IS_MIXED	0	EMPTY
+INDEL	NA12878	NA12878	HOM_REF	MISSING	0	TN
+INDEL	NA12878	NA12878	HOM_REF	HOM_REF	0	TN
+INDEL	NA12878	NA12878	HOM_REF	HET_REF_VAR1	0	FP,TN
+INDEL	NA12878	NA12878	HOM_REF	HET_VAR1_VAR2	0	FP
+INDEL	NA12878	NA12878	HOM_REF	HOM_VAR1	0	FP
+INDEL	NA12878	NA12878	HOM_REF	HET_REF_VAR2	0	NA
+INDEL	NA12878	NA12878	HOM_REF	HET_REF_VAR3	0	NA
+INDEL	NA12878	NA12878	HOM_REF	HET_VAR1_VAR3	0	NA
+INDEL	NA12878	NA12878	HOM_REF	HET_VAR3_VAR4	0	FP
+INDEL	NA12878	NA12878	HOM_REF	HOM_VAR2	0	NA
+INDEL	NA12878	NA12878	HOM_REF	HOM_VAR3	0	NA
+INDEL	NA12878	NA12878	HOM_REF	NO_CALL	0	EMPTY
+INDEL	NA12878	NA12878	HOM_REF	LOW_GQ	0	TN
+INDEL	NA12878	NA12878	HOM_REF	LOW_DP	0	TN
+INDEL	NA12878	NA12878	HOM_REF	VC_FILTERED	0	TN
+INDEL	NA12878	NA12878	HOM_REF	GT_FILTERED	0	TN
+INDEL	NA12878	NA12878	HOM_REF	IS_MIXED	0	EMPTY
+INDEL	NA12878	NA12878	HET_REF_VAR1	MISSING	0	TN,FN
+INDEL	NA12878	NA12878	HET_REF_VAR1	HOM_REF	0	TN,FN
+INDEL	NA12878	NA12878	HET_REF_VAR1	HET_REF_VAR1	0	TP,TN
+INDEL	NA12878	NA12878	HET_REF_VAR1	HET_VAR1_VAR2	0	TP,FP
+INDEL	NA12878	NA12878	HET_REF_VAR1	HOM_VAR1	0	TP,FP
+INDEL	NA12878	NA12878	HET_REF_VAR1	HET_REF_VAR2	0	FP,TN,FN
+INDEL	NA12878	NA12878	HET_REF_VAR1	HET_REF_VAR3	0	NA
+INDEL	NA12878	NA12878	HET_REF_VAR1	HET_VAR1_VAR3	0	NA
+INDEL	NA12878	NA12878	HET_REF_VAR1	HET_VAR3_VAR4	0	FP,FN
+INDEL	NA12878	NA12878	HET_REF_VAR1	HOM_VAR2	0	FP,FN
+INDEL	NA12878	NA12878	HET_REF_VAR1	HOM_VAR3	0	NA
+INDEL	NA12878	NA12878	HET_REF_VAR1	NO_CALL	0	EMPTY
+INDEL	NA12878	NA12878	HET_REF_VAR1	LOW_GQ	0	TN,FN
+INDEL	NA12878	NA12878	HET_REF_VAR1	LOW_DP	0	TN,FN
+INDEL	NA12878	NA12878	HET_REF_VAR1	VC_FILTERED	0	TN,FN
+INDEL	NA12878	NA12878	HET_REF_VAR1	GT_FILTERED	0	TN,FN
+INDEL	NA12878	NA12878	HET_REF_VAR1	IS_MIXED	0	EMPTY
+INDEL	NA12878	NA12878	HET_VAR1_VAR2	MISSING	0	FN
+INDEL	NA12878	NA12878	HET_VAR1_VAR2	HOM_REF	0	FN
+INDEL	NA12878	NA12878	HET_VAR1_VAR2	HET_REF_VAR1	0	TP,FN
+INDEL	NA12878	NA12878	HET_VAR1_VAR2	HET_VAR1_VAR2	0	TP
+INDEL	NA12878	NA12878	HET_VAR1_VAR2	HOM_VAR1	0	TP,FN
+INDEL	NA12878	NA12878	HET_VAR1_VAR2	HET_REF_VAR2	0	NA
+INDEL	NA12878	NA12878	HET_VAR1_VAR2	HET_REF_VAR3	0	FP,FN
+INDEL	NA12878	NA12878	HET_VAR1_VAR2	HET_VAR1_VAR3	0	TP,FP,FN
+INDEL	NA12878	NA12878	HET_VAR1_VAR2	HET_VAR3_VAR4	0	FP,FN
+INDEL	NA12878	NA12878	HET_VAR1_VAR2	HOM_VAR2	0	TP,FN
+INDEL	NA12878	NA12878	HET_VAR1_VAR2	HOM_VAR3	0	FP,FN
+INDEL	NA12878	NA12878	HET_VAR1_VAR2	NO_CALL	0	EMPTY
+INDEL	NA12878	NA12878	HET_VAR1_VAR2	LOW_GQ	0	FN
+INDEL	NA12878	NA12878	HET_VAR1_VAR2	LOW_DP	0	FN
+INDEL	NA12878	NA12878	HET_VAR1_VAR2	VC_FILTERED	0	FN
+INDEL	NA12878	NA12878	HET_VAR1_VAR2	GT_FILTERED	0	FN
+INDEL	NA12878	NA12878	HET_VAR1_VAR2	IS_MIXED	0	EMPTY
+INDEL	NA12878	NA12878	HOM_VAR1	MISSING	0	FN
+INDEL	NA12878	NA12878	HOM_VAR1	HOM_REF	0	FN
+INDEL	NA12878	NA12878	HOM_VAR1	HET_REF_VAR1	0	TP,FN
+INDEL	NA12878	NA12878	HOM_VAR1	HET_VAR1_VAR2	0	TP,FP,FN
+INDEL	NA12878	NA12878	HOM_VAR1	HOM_VAR1	0	TP
+INDEL	NA12878	NA12878	HOM_VAR1	HET_REF_VAR2	0	FP,FN
+INDEL	NA12878	NA12878	HOM_VAR1	HET_REF_VAR3	0	NA
+INDEL	NA12878	NA12878	HOM_VAR1	HET_VAR1_VAR3	0	NA
+INDEL	NA12878	NA12878	HOM_VAR1	HET_VAR3_VAR4	0	FP,FN
+INDEL	NA12878	NA12878	HOM_VAR1	HOM_VAR2	0	FP,FN
+INDEL	NA12878	NA12878	HOM_VAR1	HOM_VAR3	0	NA
+INDEL	NA12878	NA12878	HOM_VAR1	NO_CALL	0	EMPTY
+INDEL	NA12878	NA12878	HOM_VAR1	LOW_GQ	0	FN
+INDEL	NA12878	NA12878	HOM_VAR1	LOW_DP	0	FN
+INDEL	NA12878	NA12878	HOM_VAR1	VC_FILTERED	0	FN
+INDEL	NA12878	NA12878	HOM_VAR1	GT_FILTERED	0	FN
+INDEL	NA12878	NA12878	HOM_VAR1	IS_MIXED	0	EMPTY
+INDEL	NA12878	NA12878	NO_CALL	MISSING	0	EMPTY
+INDEL	NA12878	NA12878	NO_CALL	HOM_REF	0	EMPTY
+INDEL	NA12878	NA12878	NO_CALL	HET_REF_VAR1	0	EMPTY
+INDEL	NA12878	NA12878	NO_CALL	HET_VAR1_VAR2	0	EMPTY
+INDEL	NA12878	NA12878	NO_CALL	HOM_VAR1	0	EMPTY
+INDEL	NA12878	NA12878	NO_CALL	HET_REF_VAR2	0	NA
+INDEL	NA12878	NA12878	NO_CALL	HET_REF_VAR3	0	NA
+INDEL	NA12878	NA12878	NO_CALL	HET_VAR1_VAR3	0	NA
+INDEL	NA12878	NA12878	NO_CALL	HET_VAR3_VAR4	0	NA
+INDEL	NA12878	NA12878	NO_CALL	HOM_VAR2	0	NA
+INDEL	NA12878	NA12878	NO_CALL	HOM_VAR3	0	NA
+INDEL	NA12878	NA12878	NO_CALL	NO_CALL	0	EMPTY
+INDEL	NA12878	NA12878	NO_CALL	LOW_GQ	0	EMPTY
+INDEL	NA12878	NA12878	NO_CALL	LOW_DP	0	EMPTY
+INDEL	NA12878	NA12878	NO_CALL	VC_FILTERED	0	EMPTY
+INDEL	NA12878	NA12878	NO_CALL	GT_FILTERED	0	EMPTY
+INDEL	NA12878	NA12878	NO_CALL	IS_MIXED	0	EMPTY
+INDEL	NA12878	NA12878	LOW_GQ	MISSING	0	EMPTY
+INDEL	NA12878	NA12878	LOW_GQ	HOM_REF	0	EMPTY
+INDEL	NA12878	NA12878	LOW_GQ	HET_REF_VAR1	0	EMPTY
+INDEL	NA12878	NA12878	LOW_GQ	HET_VAR1_VAR2	0	EMPTY
+INDEL	NA12878	NA12878	LOW_GQ	HOM_VAR1	0	EMPTY
+INDEL	NA12878	NA12878	LOW_GQ	HET_REF_VAR2	0	NA
+INDEL	NA12878	NA12878	LOW_GQ	HET_REF_VAR3	0	NA
+INDEL	NA12878	NA12878	LOW_GQ	HET_VAR1_VAR3	0	NA
+INDEL	NA12878	NA12878	LOW_GQ	HET_VAR3_VAR4	0	NA
+INDEL	NA12878	NA12878	LOW_GQ	HOM_VAR2	0	NA
+INDEL	NA12878	NA12878	LOW_GQ	HOM_VAR3	0	NA
+INDEL	NA12878	NA12878	LOW_GQ	NO_CALL	0	EMPTY
+INDEL	NA12878	NA12878	LOW_GQ	LOW_GQ	0	EMPTY
+INDEL	NA12878	NA12878	LOW_GQ	LOW_DP	0	EMPTY
+INDEL	NA12878	NA12878	LOW_GQ	VC_FILTERED	0	EMPTY
+INDEL	NA12878	NA12878	LOW_GQ	GT_FILTERED	0	EMPTY
+INDEL	NA12878	NA12878	LOW_GQ	IS_MIXED	0	EMPTY
+INDEL	NA12878	NA12878	LOW_DP	MISSING	0	EMPTY
+INDEL	NA12878	NA12878	LOW_DP	HOM_REF	0	EMPTY
+INDEL	NA12878	NA12878	LOW_DP	HET_REF_VAR1	0	EMPTY
+INDEL	NA12878	NA12878	LOW_DP	HET_VAR1_VAR2	0	EMPTY
+INDEL	NA12878	NA12878	LOW_DP	HOM_VAR1	0	EMPTY
+INDEL	NA12878	NA12878	LOW_DP	HET_REF_VAR2	0	NA
+INDEL	NA12878	NA12878	LOW_DP	HET_REF_VAR3	0	NA
+INDEL	NA12878	NA12878	LOW_DP	HET_VAR1_VAR3	0	NA
+INDEL	NA12878	NA12878	LOW_DP	HET_VAR3_VAR4	0	NA
+INDEL	NA12878	NA12878	LOW_DP	HOM_VAR2	0	NA
+INDEL	NA12878	NA12878	LOW_DP	HOM_VAR3	0	NA
+INDEL	NA12878	NA12878	LOW_DP	NO_CALL	0	EMPTY
+INDEL	NA12878	NA12878	LOW_DP	LOW_GQ	0	EMPTY
+INDEL	NA12878	NA12878	LOW_DP	LOW_DP	0	EMPTY
+INDEL	NA12878	NA12878	LOW_DP	VC_FILTERED	0	EMPTY
+INDEL	NA12878	NA12878	LOW_DP	GT_FILTERED	0	EMPTY
+INDEL	NA12878	NA12878	LOW_DP	IS_MIXED	0	EMPTY
+INDEL	NA12878	NA12878	VC_FILTERED	MISSING	0	EMPTY
+INDEL	NA12878	NA12878	VC_FILTERED	HOM_REF	0	EMPTY
+INDEL	NA12878	NA12878	VC_FILTERED	HET_REF_VAR1	0	EMPTY
+INDEL	NA12878	NA12878	VC_FILTERED	HET_VAR1_VAR2	0	EMPTY
+INDEL	NA12878	NA12878	VC_FILTERED	HOM_VAR1	0	EMPTY
+INDEL	NA12878	NA12878	VC_FILTERED	HET_REF_VAR2	0	NA
+INDEL	NA12878	NA12878	VC_FILTERED	HET_REF_VAR3	0	NA
+INDEL	NA12878	NA12878	VC_FILTERED	HET_VAR1_VAR3	0	NA
+INDEL	NA12878	NA12878	VC_FILTERED	HET_VAR3_VAR4	0	NA
+INDEL	NA12878	NA12878	VC_FILTERED	HOM_VAR2	0	NA
+INDEL	NA12878	NA12878	VC_FILTERED	HOM_VAR3	0	NA
+INDEL	NA12878	NA12878	VC_FILTERED	NO_CALL	0	EMPTY
+INDEL	NA12878	NA12878	VC_FILTERED	LOW_GQ	0	EMPTY
+INDEL	NA12878	NA12878	VC_FILTERED	LOW_DP	0	EMPTY
+INDEL	NA12878	NA12878	VC_FILTERED	VC_FILTERED	0	EMPTY
+INDEL	NA12878	NA12878	VC_FILTERED	GT_FILTERED	0	EMPTY
+INDEL	NA12878	NA12878	VC_FILTERED	IS_MIXED	0	EMPTY
+INDEL	NA12878	NA12878	GT_FILTERED	MISSING	0	EMPTY
+INDEL	NA12878	NA12878	GT_FILTERED	HOM_REF	0	EMPTY
+INDEL	NA12878	NA12878	GT_FILTERED	HET_REF_VAR1	0	EMPTY
+INDEL	NA12878	NA12878	GT_FILTERED	HET_VAR1_VAR2	0	EMPTY
+INDEL	NA12878	NA12878	GT_FILTERED	HOM_VAR1	0	EMPTY
+INDEL	NA12878	NA12878	GT_FILTERED	HET_REF_VAR2	0	NA
+INDEL	NA12878	NA12878	GT_FILTERED	HET_REF_VAR3	0	NA
+INDEL	NA12878	NA12878	GT_FILTERED	HET_VAR1_VAR3	0	NA
+INDEL	NA12878	NA12878	GT_FILTERED	HET_VAR3_VAR4	0	NA
+INDEL	NA12878	NA12878	GT_FILTERED	HOM_VAR2	0	NA
+INDEL	NA12878	NA12878	GT_FILTERED	HOM_VAR3	0	NA
+INDEL	NA12878	NA12878	GT_FILTERED	NO_CALL	0	EMPTY
+INDEL	NA12878	NA12878	GT_FILTERED	LOW_GQ	0	EMPTY
+INDEL	NA12878	NA12878	GT_FILTERED	LOW_DP	0	EMPTY
+INDEL	NA12878	NA12878	GT_FILTERED	VC_FILTERED	0	EMPTY
+INDEL	NA12878	NA12878	GT_FILTERED	GT_FILTERED	0	EMPTY
+INDEL	NA12878	NA12878	GT_FILTERED	IS_MIXED	0	EMPTY
+INDEL	NA12878	NA12878	IS_MIXED	MISSING	0	EMPTY
+INDEL	NA12878	NA12878	IS_MIXED	HOM_REF	0	EMPTY
+INDEL	NA12878	NA12878	IS_MIXED	HET_REF_VAR1	0	EMPTY
+INDEL	NA12878	NA12878	IS_MIXED	HET_VAR1_VAR2	0	EMPTY
+INDEL	NA12878	NA12878	IS_MIXED	HOM_VAR1	0	EMPTY
+INDEL	NA12878	NA12878	IS_MIXED	HET_REF_VAR2	0	NA
+INDEL	NA12878	NA12878	IS_MIXED	HET_REF_VAR3	0	NA
+INDEL	NA12878	NA12878	IS_MIXED	HET_VAR1_VAR3	0	NA
+INDEL	NA12878	NA12878	IS_MIXED	HET_VAR3_VAR4	0	NA
+INDEL	NA12878	NA12878	IS_MIXED	HOM_VAR2	0	NA
+INDEL	NA12878	NA12878	IS_MIXED	HOM_VAR3	0	NA
+INDEL	NA12878	NA12878	IS_MIXED	NO_CALL	0	EMPTY
+INDEL	NA12878	NA12878	IS_MIXED	LOW_GQ	0	EMPTY
+INDEL	NA12878	NA12878	IS_MIXED	LOW_DP	0	EMPTY
+INDEL	NA12878	NA12878	IS_MIXED	VC_FILTERED	0	EMPTY
+INDEL	NA12878	NA12878	IS_MIXED	GT_FILTERED	0	EMPTY
+INDEL	NA12878	NA12878	IS_MIXED	IS_MIXED	0	EMPTY
+
+
diff --git a/testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff_AllRows.genotype_concordance_summary_metrics b/testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff_AllRows.genotype_concordance_summary_metrics
new file mode 100644
index 0000000..ce0ed9f
--- /dev/null
+++ b/testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff_AllRows.genotype_concordance_summary_metrics
@@ -0,0 +1,11 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.vcf.GenotypeConcordance TRUTH_VCF=/Users/kbergin/picard/testdata/picard/vcf/CEUTrio-snps.vcf CALL_VCF=/Users/kbergin/picard/testdata/picard/vcf/CEUTrio-snps.vcf OUTPUT=/Users/kbergin/picard/testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff_AllRows TRUTH_SAMPLE=NA12878 CALL_SAMPLE=NA12878 OUTPUT_ALL_ROWS=true    INTERSECT_INTERVALS=true MIN_GQ=0 MIN_DP=0 USE_VCF_INDEX=false MISSING_SITES_HOM_REF=false VERBOSITY=INFO QUIET=false VALIDATION_STRINGENCY=STRICT COMPRE [...]
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Wed Jul 29 14:06:56 EDT 2015
+
+## METRICS CLASS	picard.vcf.GenotypeConcordanceSummaryMetrics
+VARIANT_TYPE	TRUTH_SAMPLE	CALL_SAMPLE	HET_SENSITIVITY	HET_PPV	HET_SPECIFICITY	HOMVAR_SENSITIVITY	HOMVAR_PPV	HOMVAR_SPECIFICITY	VAR_SENSITIVITY	VAR_PPV	VAR_SPECIFICITY	GENOTYPE_CONCORDANCE	NON_REF_GENOTYPE_CONCORDANCE
+SNP	NA12878	NA12878	1	1	?	1	1	?	1	1	1	1	1
+INDEL	NA12878	NA12878	?	?	?	?	?	?	?	?	?	?	?
+
+
diff --git a/testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff_MinDp.genotype_concordance_contingency_metrics b/testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff_MinDp.genotype_concordance_contingency_metrics
new file mode 100644
index 0000000..b638158
--- /dev/null
+++ b/testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff_MinDp.genotype_concordance_contingency_metrics
@@ -0,0 +1,11 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.vcf.GenotypeConcordance TRUTH_VCF=testdata/picard/vcf/CEUTrio-snps.vcf CALL_VCF=testdata/picard/vcf/CEUTrio-snps.vcf OUTPUT=testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff_MinDp TRUTH_SAMPLE=NA12878 CALL_SAMPLE=NA12891 MIN_DP=40    INTERSECT_INTERVALS=true MIN_GQ=0 OUTPUT_ALL_ROWS=false USE_VCF_INDEX=false VERBOSITY=INFO QUIET=false VALIDATION_STRINGENCY=STRICT COMPRESSION_LEVEL=5 MAX_RECORDS_IN_RAM=500000 CREATE_INDEX=false CREATE_MD5_FILE=false
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Tue Nov 04 11:44:23 EST 2014
+
+## METRICS CLASS	picard.vcf.GenotypeConcordanceContingencyMetrics
+VARIANT_TYPE	TRUTH_SAMPLE	CALL_SAMPLE	TP_COUNT	TN_COUNT	FP_COUNT	FN_COUNT	EMPTY_COUNT
+SNP	NA12878	NA12891	124	109	47	51	56
+INDEL	NA12878	NA12891	0	0	0	0	0
+
+
diff --git a/testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff_MinDp.genotype_concordance_detail_metrics b/testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff_MinDp.genotype_concordance_detail_metrics
new file mode 100644
index 0000000..26fe562
--- /dev/null
+++ b/testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff_MinDp.genotype_concordance_detail_metrics
@@ -0,0 +1,21 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.vcf.GenotypeConcordance TRUTH_VCF=testdata/picard/vcf/CEUTrio-snps.vcf CALL_VCF=testdata/picard/vcf/CEUTrio-snps.vcf OUTPUT=testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff_MinDp TRUTH_SAMPLE=NA12878 CALL_SAMPLE=NA12891 MIN_DP=40    INTERSECT_INTERVALS=true MIN_GQ=0 OUTPUT_ALL_ROWS=false USE_VCF_INDEX=false VERBOSITY=INFO QUIET=false VALIDATION_STRINGENCY=STRICT COMPRESSION_LEVEL=5 MAX_RECORDS_IN_RAM=500000 CREATE_INDEX=false CREATE_MD5_FILE=false
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Tue Nov 04 11:44:23 EST 2014
+
+## METRICS CLASS	picard.vcf.GenotypeConcordanceDetailMetrics
+VARIANT_TYPE	TRUTH_SAMPLE	CALL_SAMPLE	TRUTH_STATE	CALL_STATE	COUNT	CONTINGENCY_VALUES
+SNP	NA12878	NA12891	HOM_REF	HET_REF_VAR1	27	FP,TN
+SNP	NA12878	NA12891	HOM_REF	LOW_DP	2	TN
+SNP	NA12878	NA12891	HET_REF_VAR1	HOM_REF	25	TN,FN
+SNP	NA12878	NA12891	HET_REF_VAR1	HET_REF_VAR1	47	TP,TN
+SNP	NA12878	NA12891	HET_REF_VAR1	HOM_VAR1	20	TP,FP
+SNP	NA12878	NA12891	HET_REF_VAR1	LOW_DP	8	TN,FN
+SNP	NA12878	NA12891	HOM_VAR1	HET_REF_VAR1	17	TP,FN
+SNP	NA12878	NA12891	HOM_VAR1	HOM_VAR1	40	TP
+SNP	NA12878	NA12891	HOM_VAR1	LOW_DP	1	FN
+SNP	NA12878	NA12891	LOW_DP	HET_REF_VAR1	1	EMPTY
+SNP	NA12878	NA12891	LOW_DP	LOW_DP	6	EMPTY
+SNP	NA12878	NA12891	VC_FILTERED	VC_FILTERED	49	EMPTY
+
+
diff --git a/testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff_MinDp.genotype_concordance_summary_metrics b/testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff_MinDp.genotype_concordance_summary_metrics
new file mode 100644
index 0000000..6300e2b
--- /dev/null
+++ b/testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff_MinDp.genotype_concordance_summary_metrics
@@ -0,0 +1,11 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.vcf.GenotypeConcordance TRUTH_VCF=/Users/kbergin/picard/testdata/picard/vcf/CEUTrio-snps.vcf CALL_VCF=/Users/kbergin/picard/testdata/picard/vcf/CEUTrio-snps.vcf OUTPUT=/Users/kbergin/picard/testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff_MinDp TRUTH_SAMPLE=NA12878 CALL_SAMPLE=NA12891 MIN_DP=40    INTERSECT_INTERVALS=true MIN_GQ=0 OUTPUT_ALL_ROWS=false USE_VCF_INDEX=false MISSING_SITES_HOM_REF=false VERBOSITY=INFO QUIET=false VALIDATION_STRINGENCY=STRICT COMPRE [...]
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Wed Jul 29 14:07:32 EDT 2015
+
+## METRICS CLASS	picard.vcf.GenotypeConcordanceSummaryMetrics
+VARIANT_TYPE	TRUTH_SAMPLE	CALL_SAMPLE	HET_SENSITIVITY	HET_PPV	HET_SPECIFICITY	HOMVAR_SENSITIVITY	HOMVAR_PPV	HOMVAR_SPECIFICITY	VAR_SENSITIVITY	VAR_PPV	VAR_SPECIFICITY	GENOTYPE_CONCORDANCE	NON_REF_GENOTYPE_CONCORDANCE
+SNP	NA12878	NA12891	0.67	0.703297	?	0.76	0.75	?	0.708571	0.725146	0.698718	0.584362	0.467742
+INDEL	NA12878	NA12891	?	?	?	?	?	?	?	?	?	?	?
+
+
diff --git a/testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff_MinGq.genotype_concordance_contingency_metrics b/testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff_MinGq.genotype_concordance_contingency_metrics
new file mode 100644
index 0000000..674c3bc
--- /dev/null
+++ b/testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff_MinGq.genotype_concordance_contingency_metrics
@@ -0,0 +1,11 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.vcf.GenotypeConcordance TRUTH_VCF=testdata/picard/vcf/CEUTrio-snps.vcf CALL_VCF=testdata/picard/vcf/CEUTrio-snps.vcf OUTPUT=testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff_MinGq TRUTH_SAMPLE=NA12878 CALL_SAMPLE=NA12891 MIN_GQ=40    INTERSECT_INTERVALS=true MIN_DP=0 OUTPUT_ALL_ROWS=false USE_VCF_INDEX=false VERBOSITY=INFO QUIET=false VALIDATION_STRINGENCY=STRICT COMPRESSION_LEVEL=5 MAX_RECORDS_IN_RAM=500000 CREATE_INDEX=false CREATE_MD5_FILE=false
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Tue Nov 04 11:44:21 EST 2014
+
+## METRICS CLASS	picard.vcf.GenotypeConcordanceContingencyMetrics
+VARIANT_TYPE	TRUTH_SAMPLE	CALL_SAMPLE	TP_COUNT	TN_COUNT	FP_COUNT	FN_COUNT	EMPTY_COUNT
+SNP	NA12878	NA12891	130	111	53	49	51
+INDEL	NA12878	NA12891	0	0	0	0	0
+
+
diff --git a/testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff_MinGq.genotype_concordance_detail_metrics b/testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff_MinGq.genotype_concordance_detail_metrics
new file mode 100644
index 0000000..f0d7e0f
--- /dev/null
+++ b/testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff_MinGq.genotype_concordance_detail_metrics
@@ -0,0 +1,20 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.vcf.GenotypeConcordance TRUTH_VCF=testdata/picard/vcf/CEUTrio-snps.vcf CALL_VCF=testdata/picard/vcf/CEUTrio-snps.vcf OUTPUT=testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff_MinGq TRUTH_SAMPLE=NA12878 CALL_SAMPLE=NA12891 MIN_GQ=40    INTERSECT_INTERVALS=true MIN_DP=0 OUTPUT_ALL_ROWS=false USE_VCF_INDEX=false VERBOSITY=INFO QUIET=false VALIDATION_STRINGENCY=STRICT COMPRESSION_LEVEL=5 MAX_RECORDS_IN_RAM=500000 CREATE_INDEX=false CREATE_MD5_FILE=false
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Tue Nov 04 11:44:21 EST 2014
+
+## METRICS CLASS	picard.vcf.GenotypeConcordanceDetailMetrics
+VARIANT_TYPE	TRUTH_SAMPLE	CALL_SAMPLE	TRUTH_STATE	CALL_STATE	COUNT	CONTINGENCY_VALUES
+SNP	NA12878	NA12891	HOM_REF	HET_REF_VAR1	30	FP,TN
+SNP	NA12878	NA12891	HET_REF_VAR1	HOM_REF	30	TN,FN
+SNP	NA12878	NA12891	HET_REF_VAR1	HET_REF_VAR1	50	TP,TN
+SNP	NA12878	NA12891	HET_REF_VAR1	HOM_VAR1	23	TP,FP
+SNP	NA12878	NA12891	HET_REF_VAR1	LOW_GQ	1	TN,FN
+SNP	NA12878	NA12891	HOM_VAR1	HET_REF_VAR1	17	TP,FN
+SNP	NA12878	NA12891	HOM_VAR1	HOM_VAR1	40	TP
+SNP	NA12878	NA12891	HOM_VAR1	LOW_GQ	1	FN
+SNP	NA12878	NA12891	LOW_GQ	HET_REF_VAR1	1	EMPTY
+SNP	NA12878	NA12891	LOW_GQ	LOW_GQ	1	EMPTY
+SNP	NA12878	NA12891	VC_FILTERED	VC_FILTERED	49	EMPTY
+
+
diff --git a/testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff_MinGq.genotype_concordance_summary_metrics b/testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff_MinGq.genotype_concordance_summary_metrics
new file mode 100644
index 0000000..1c5d38e
--- /dev/null
+++ b/testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff_MinGq.genotype_concordance_summary_metrics
@@ -0,0 +1,11 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.vcf.GenotypeConcordance TRUTH_VCF=/Users/kbergin/picard/testdata/picard/vcf/CEUTrio-snps.vcf CALL_VCF=/Users/kbergin/picard/testdata/picard/vcf/CEUTrio-snps.vcf OUTPUT=/Users/kbergin/picard/testdata/picard/vcf/CEUTrio-snps_vs_CEUTrio-snps_GtConcordanceDiff_MinGq TRUTH_SAMPLE=NA12878 CALL_SAMPLE=NA12891 MIN_GQ=40    INTERSECT_INTERVALS=true MIN_DP=0 OUTPUT_ALL_ROWS=false USE_VCF_INDEX=false MISSING_SITES_HOM_REF=false VERBOSITY=INFO QUIET=false VALIDATION_STRINGENCY=STRICT COMPRE [...]
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Wed Jul 29 14:08:00 EDT 2015
+
+## METRICS CLASS	picard.vcf.GenotypeConcordanceSummaryMetrics
+VARIANT_TYPE	TRUTH_SAMPLE	CALL_SAMPLE	HET_SENSITIVITY	HET_PPV	HET_SPECIFICITY	HOMVAR_SENSITIVITY	HOMVAR_PPV	HOMVAR_SPECIFICITY	VAR_SENSITIVITY	VAR_PPV	VAR_SPECIFICITY	GENOTYPE_CONCORDANCE	NON_REF_GENOTYPE_CONCORDANCE
+SNP	NA12878	NA12891	0.701923	0.690722	?	0.76	0.732558	?	0.726257	0.710383	0.676829	0.576132	0.466321
+INDEL	NA12878	NA12891	?	?	?	?	?	?	?	?	?	?	?
+
+
diff --git a/testdata/picard/vcf/IntervalList1PerChrom.interval_list b/testdata/picard/vcf/IntervalList1PerChrom.interval_list
new file mode 100644
index 0000000..60b3225
--- /dev/null
+++ b/testdata/picard/vcf/IntervalList1PerChrom.interval_list
@@ -0,0 +1,103 @@
+ at HD	VN:1.4	SO:unsorted
+ at SQ	SN:1	LN:249250621
+ at SQ	SN:2	LN:243199373
+ at SQ	SN:3	LN:198022430
+ at SQ	SN:4	LN:191154276
+ at SQ	SN:5	LN:180915260
+ at SQ	SN:6	LN:171115067
+ at SQ	SN:7	LN:159138663
+ at SQ	SN:8	LN:146364022
+ at SQ	SN:9	LN:141213431
+ at SQ	SN:10	LN:135534747
+ at SQ	SN:11	LN:135006516
+ at SQ	SN:12	LN:133851895
+ at SQ	SN:13	LN:115169878
+ at SQ	SN:14	LN:107349540
+ at SQ	SN:15	LN:102531392
+ at SQ	SN:16	LN:90354753
+ at SQ	SN:17	LN:81195210
+ at SQ	SN:18	LN:78077248
+ at SQ	SN:19	LN:59128983
+ at SQ	SN:20	LN:63025520
+ at SQ	SN:21	LN:48129895
+ at SQ	SN:22	LN:51304566
+ at SQ	SN:X	LN:155270560
+ at SQ	SN:Y	LN:59373566
+ at SQ	SN:MT	LN:16569
+ at SQ	SN:GL000207.1	LN:4262
+ at SQ	SN:GL000226.1	LN:15008
+ at SQ	SN:GL000229.1	LN:19913
+ at SQ	SN:GL000231.1	LN:27386
+ at SQ	SN:GL000210.1	LN:27682
+ at SQ	SN:GL000239.1	LN:33824
+ at SQ	SN:GL000235.1	LN:34474
+ at SQ	SN:GL000201.1	LN:36148
+ at SQ	SN:GL000247.1	LN:36422
+ at SQ	SN:GL000245.1	LN:36651
+ at SQ	SN:GL000197.1	LN:37175
+ at SQ	SN:GL000203.1	LN:37498
+ at SQ	SN:GL000246.1	LN:38154
+ at SQ	SN:GL000249.1	LN:38502
+ at SQ	SN:GL000196.1	LN:38914
+ at SQ	SN:GL000248.1	LN:39786
+ at SQ	SN:GL000244.1	LN:39929
+ at SQ	SN:GL000238.1	LN:39939
+ at SQ	SN:GL000202.1	LN:40103
+ at SQ	SN:GL000234.1	LN:40531
+ at SQ	SN:GL000232.1	LN:40652
+ at SQ	SN:GL000206.1	LN:41001
+ at SQ	SN:GL000240.1	LN:41933
+ at SQ	SN:GL000236.1	LN:41934
+ at SQ	SN:GL000241.1	LN:42152
+ at SQ	SN:GL000243.1	LN:43341
+ at SQ	SN:GL000242.1	LN:43523
+ at SQ	SN:GL000230.1	LN:43691
+ at SQ	SN:GL000237.1	LN:45867
+ at SQ	SN:GL000233.1	LN:45941
+ at SQ	SN:GL000204.1	LN:81310
+ at SQ	SN:GL000198.1	LN:90085
+ at SQ	SN:GL000208.1	LN:92689
+ at SQ	SN:GL000191.1	LN:106433
+ at SQ	SN:GL000227.1	LN:128374
+ at SQ	SN:GL000228.1	LN:129120
+ at SQ	SN:GL000214.1	LN:137718
+ at SQ	SN:GL000221.1	LN:155397
+ at SQ	SN:GL000209.1	LN:159169
+ at SQ	SN:GL000218.1	LN:161147
+ at SQ	SN:GL000220.1	LN:161802
+ at SQ	SN:GL000213.1	LN:164239
+ at SQ	SN:GL000211.1	LN:166566
+ at SQ	SN:GL000199.1	LN:169874
+ at SQ	SN:GL000217.1	LN:172149
+ at SQ	SN:GL000216.1	LN:172294
+ at SQ	SN:GL000215.1	LN:172545
+ at SQ	SN:GL000205.1	LN:174588
+ at SQ	SN:GL000219.1	LN:179198
+ at SQ	SN:GL000224.1	LN:179693
+ at SQ	SN:GL000223.1	LN:180455
+ at SQ	SN:GL000195.1	LN:182896
+ at SQ	SN:GL000212.1	LN:186858
+ at SQ	SN:GL000222.1	LN:186861
+ at SQ	SN:GL000200.1	LN:187035
+ at SQ	SN:GL000193.1	LN:189789
+ at SQ	SN:GL000194.1	LN:191469
+ at SQ	SN:GL000225.1	LN:211173
+ at SQ	SN:GL000192.1	LN:547496
+1	7000000	70000000	+	.
+1	90146500	90146600	+	.
+2	198567600	198567700	+	.
+3	158557100	158557200	+	.
+4	141514800	141514900	+	.
+5	58243300	58243400	+	.
+6	89947100	89947200	+	.
+7	29544600	29544700	+	.
+8	132727500	132727600	+	.
+10	56495800	56495900	+	.
+11	132781000	132781000	+	.
+12	79238900	79239000	+	.
+13	28463900	28464000	+	.
+14	87263500	87263600	+	.
+15	92857300	92857400	+	.
+17	33513600	33513700	+	.
+19	3739000	3739100	+	.
+20	21523300	21523400	+	.
\ No newline at end of file
diff --git a/testdata/picard/vcf/IntervalListChr1Small.interval_list b/testdata/picard/vcf/IntervalListChr1Small.interval_list
new file mode 100644
index 0000000..aeaf43b
--- /dev/null
+++ b/testdata/picard/vcf/IntervalListChr1Small.interval_list
@@ -0,0 +1,86 @@
+ at HD	VN:1.5	SO:unsorted
+ at SQ	SN:1	LN:249250621
+ at SQ	SN:2	LN:243199373
+ at SQ	SN:3	LN:198022430
+ at SQ	SN:4	LN:191154276
+ at SQ	SN:5	LN:180915260
+ at SQ	SN:6	LN:171115067
+ at SQ	SN:7	LN:159138663
+ at SQ	SN:8	LN:146364022
+ at SQ	SN:9	LN:141213431
+ at SQ	SN:10	LN:135534747
+ at SQ	SN:11	LN:135006516
+ at SQ	SN:12	LN:133851895
+ at SQ	SN:13	LN:115169878
+ at SQ	SN:14	LN:107349540
+ at SQ	SN:15	LN:102531392
+ at SQ	SN:16	LN:90354753
+ at SQ	SN:17	LN:81195210
+ at SQ	SN:18	LN:78077248
+ at SQ	SN:19	LN:59128983
+ at SQ	SN:20	LN:63025520
+ at SQ	SN:21	LN:48129895
+ at SQ	SN:22	LN:51304566
+ at SQ	SN:X	LN:155270560
+ at SQ	SN:Y	LN:59373566
+ at SQ	SN:MT	LN:16569
+ at SQ	SN:GL000207.1	LN:4262
+ at SQ	SN:GL000226.1	LN:15008
+ at SQ	SN:GL000229.1	LN:19913
+ at SQ	SN:GL000231.1	LN:27386
+ at SQ	SN:GL000210.1	LN:27682
+ at SQ	SN:GL000239.1	LN:33824
+ at SQ	SN:GL000235.1	LN:34474
+ at SQ	SN:GL000201.1	LN:36148
+ at SQ	SN:GL000247.1	LN:36422
+ at SQ	SN:GL000245.1	LN:36651
+ at SQ	SN:GL000197.1	LN:37175
+ at SQ	SN:GL000203.1	LN:37498
+ at SQ	SN:GL000246.1	LN:38154
+ at SQ	SN:GL000249.1	LN:38502
+ at SQ	SN:GL000196.1	LN:38914
+ at SQ	SN:GL000248.1	LN:39786
+ at SQ	SN:GL000244.1	LN:39929
+ at SQ	SN:GL000238.1	LN:39939
+ at SQ	SN:GL000202.1	LN:40103
+ at SQ	SN:GL000234.1	LN:40531
+ at SQ	SN:GL000232.1	LN:40652
+ at SQ	SN:GL000206.1	LN:41001
+ at SQ	SN:GL000240.1	LN:41933
+ at SQ	SN:GL000236.1	LN:41934
+ at SQ	SN:GL000241.1	LN:42152
+ at SQ	SN:GL000243.1	LN:43341
+ at SQ	SN:GL000242.1	LN:43523
+ at SQ	SN:GL000230.1	LN:43691
+ at SQ	SN:GL000237.1	LN:45867
+ at SQ	SN:GL000233.1	LN:45941
+ at SQ	SN:GL000204.1	LN:81310
+ at SQ	SN:GL000198.1	LN:90085
+ at SQ	SN:GL000208.1	LN:92689
+ at SQ	SN:GL000191.1	LN:106433
+ at SQ	SN:GL000227.1	LN:128374
+ at SQ	SN:GL000228.1	LN:129120
+ at SQ	SN:GL000214.1	LN:137718
+ at SQ	SN:GL000221.1	LN:155397
+ at SQ	SN:GL000209.1	LN:159169
+ at SQ	SN:GL000218.1	LN:161147
+ at SQ	SN:GL000220.1	LN:161802
+ at SQ	SN:GL000213.1	LN:164239
+ at SQ	SN:GL000211.1	LN:166566
+ at SQ	SN:GL000199.1	LN:169874
+ at SQ	SN:GL000217.1	LN:172149
+ at SQ	SN:GL000216.1	LN:172294
+ at SQ	SN:GL000215.1	LN:172545
+ at SQ	SN:GL000205.1	LN:174588
+ at SQ	SN:GL000219.1	LN:179198
+ at SQ	SN:GL000224.1	LN:179693
+ at SQ	SN:GL000223.1	LN:180455
+ at SQ	SN:GL000195.1	LN:182896
+ at SQ	SN:GL000212.1	LN:186858
+ at SQ	SN:GL000222.1	LN:186861
+ at SQ	SN:GL000200.1	LN:187035
+ at SQ	SN:GL000193.1	LN:189789
+ at SQ	SN:GL000194.1	LN:191469
+ at SQ	SN:GL000225.1	LN:211173
+ at SQ	SN:GL000192.1	LN:547496
+1	7000000	70000000	+	.
diff --git a/testdata/picard/vcf/NIST-truth-snps_vs_CEUTrio-snps_GtConcordanceDiff.genotype_concordance_contingency_metrics b/testdata/picard/vcf/NIST-truth-snps_vs_CEUTrio-snps_GtConcordanceDiff.genotype_concordance_contingency_metrics
new file mode 100644
index 0000000..abe7d13
--- /dev/null
+++ b/testdata/picard/vcf/NIST-truth-snps_vs_CEUTrio-snps_GtConcordanceDiff.genotype_concordance_contingency_metrics
@@ -0,0 +1,11 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.vcf.GenotypeConcordance TRUTH_VCF=/Users/kbergin/picard/testdata/picard/vcf/NIST.selected.vcf CALL_VCF=/Users/kbergin/picard/testdata/picard/vcf/CEUTrio-snps.vcf OUTPUT=/Users/kbergin/picard/testdata/picard/vcf/NIST-truth-snps_vs_CEUTrio-snps_GtConcordanceDiff TRUTH_SAMPLE=NA12878 CALL_SAMPLE=NA12878 INTERVALS=[/Users/kbergin/picard/testdata/picard/vcf/IntervalList1PerChrom.interval_list] MISSING_SITES_HOM_REF=true    INTERSECT_INTERVALS=true MIN_GQ=0 MIN_DP=0 OUTPUT_ALL_ROWS=fa [...]
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Wed Jul 29 14:15:59 EDT 2015
+
+## METRICS CLASS	picard.vcf.GenotypeConcordanceContingencyMetrics
+VARIANT_TYPE	TRUTH_SAMPLE	CALL_SAMPLE	TP_COUNT	TN_COUNT	FP_COUNT	FN_COUNT	EMPTY_COUNT
+SNP	NA12878	NA12878	16	63001609	1	5	0
+INDEL	NA12878	NA12878	0	63001618	0	0	0
+
+
diff --git a/testdata/picard/vcf/NIST-truth-snps_vs_CEUTrio-snps_GtConcordanceDiff.genotype_concordance_detail_metrics b/testdata/picard/vcf/NIST-truth-snps_vs_CEUTrio-snps_GtConcordanceDiff.genotype_concordance_detail_metrics
new file mode 100644
index 0000000..93d39d4
--- /dev/null
+++ b/testdata/picard/vcf/NIST-truth-snps_vs_CEUTrio-snps_GtConcordanceDiff.genotype_concordance_detail_metrics
@@ -0,0 +1,17 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.vcf.GenotypeConcordance TRUTH_VCF=/Users/kbergin/picard/testdata/picard/vcf/NIST.selected.vcf CALL_VCF=/Users/kbergin/picard/testdata/picard/vcf/CEUTrio-snps.vcf OUTPUT=/Users/kbergin/picard/testdata/picard/vcf/NIST-truth-snps_vs_CEUTrio-snps_GtConcordanceDiff TRUTH_SAMPLE=NA12878 CALL_SAMPLE=NA12878 INTERVALS=[/Users/kbergin/picard/testdata/picard/vcf/IntervalList1PerChrom.interval_list] MISSING_SITES_HOM_REF=true    INTERSECT_INTERVALS=true MIN_GQ=0 MIN_DP=0 OUTPUT_ALL_ROWS=fa [...]
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Wed Jul 29 14:15:59 EDT 2015
+
+## METRICS CLASS	picard.vcf.GenotypeConcordanceDetailMetrics
+VARIANT_TYPE	TRUTH_SAMPLE	CALL_SAMPLE	TRUTH_STATE	CALL_STATE	COUNT	CONTINGENCY_VALUES
+SNP	NA12878	NA12878	MISSING	MISSING	63001594	TN
+SNP	NA12878	NA12878	MISSING	HET_REF_VAR1	1	FP,TN
+SNP	NA12878	NA12878	MISSING	VC_FILTERED	2	TN
+SNP	NA12878	NA12878	HET_REF_VAR1	MISSING	1	TN,FN
+SNP	NA12878	NA12878	HET_REF_VAR1	HET_REF_VAR1	11	TP,TN
+SNP	NA12878	NA12878	HOM_VAR1	MISSING	4	FN
+SNP	NA12878	NA12878	HOM_VAR1	HOM_VAR1	5	TP
+INDEL	NA12878	NA12878	MISSING	MISSING	63001618	TN
+
+
diff --git a/testdata/picard/vcf/NIST-truth-snps_vs_CEUTrio-snps_GtConcordanceDiff.genotype_concordance_summary_metrics b/testdata/picard/vcf/NIST-truth-snps_vs_CEUTrio-snps_GtConcordanceDiff.genotype_concordance_summary_metrics
new file mode 100644
index 0000000..159e735
--- /dev/null
+++ b/testdata/picard/vcf/NIST-truth-snps_vs_CEUTrio-snps_GtConcordanceDiff.genotype_concordance_summary_metrics
@@ -0,0 +1,11 @@
+## htsjdk.samtools.metrics.StringHeader
+# picard.vcf.GenotypeConcordance TRUTH_VCF=/Users/kbergin/picard/testdata/picard/vcf/NIST.selected.vcf CALL_VCF=/Users/kbergin/picard/testdata/picard/vcf/CEUTrio-snps.vcf OUTPUT=/Users/kbergin/picard/testdata/picard/vcf/NIST-truth-snps_vs_CEUTrio-snps_GtConcordanceDiff TRUTH_SAMPLE=NA12878 CALL_SAMPLE=NA12878 INTERVALS=[/Users/kbergin/picard/testdata/picard/vcf/IntervalList1PerChrom.interval_list] MISSING_SITES_HOM_REF=true    INTERSECT_INTERVALS=true MIN_GQ=0 MIN_DP=0 OUTPUT_ALL_ROWS=fa [...]
+## htsjdk.samtools.metrics.StringHeader
+# Started on: Wed Jul 29 14:15:59 EDT 2015
+
+## METRICS CLASS	picard.vcf.GenotypeConcordanceSummaryMetrics
+VARIANT_TYPE	TRUTH_SAMPLE	CALL_SAMPLE	HET_SENSITIVITY	HET_PPV	HET_SPECIFICITY	HOMVAR_SENSITIVITY	HOMVAR_PPV	HOMVAR_SPECIFICITY	VAR_SENSITIVITY	VAR_PPV	VAR_SPECIFICITY	GENOTYPE_CONCORDANCE	NON_REF_GENOTYPE_CONCORDANCE
+SNP	NA12878	NA12878	0.916667	0.916667	?	0.555556	1	?	0.761905	0.941176	1	1	0.727273
+INDEL	NA12878	NA12878	?	?	?	?	?	?	?	?	1	1	?
+
+
diff --git a/testdata/picard/vcf/NIST.selected.vcf b/testdata/picard/vcf/NIST.selected.vcf
new file mode 100644
index 0000000..d0c1102
--- /dev/null
+++ b/testdata/picard/vcf/NIST.selected.vcf
@@ -0,0 +1,195 @@
+##fileformat=VCFv4.1
+##FILTER=<ID=Uncertain,Description="Uncertain genotype due to reason in filter INFO field">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Total read depth summed across all datasets, excluding MQ0 reads">
+##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Net Genotype quality across all datasets, defined as difference between most likely and next most likely genotype likelihoods">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Net Genotype across all datasets">
+##FORMAT=<ID=PL,Number=G,Type=Integer,Description="Normalized, Phred-scaled likelihoods summed across all unfiltered datasets for genotypes as defined in the VCF specification">
+##GATKCommandLine.SelectVariants=<ID=SelectVariants,Version=3.4-33-g9cd2cd4,Date="Wed Jun 24 13:34:15 EDT 2015",Epoch=1435167255521,CommandLineOptions="analysis_type=SelectVariants input_file=[] showFullBamList=false read_buffer_size=null phone_home=AWS gatk_key=null tag=NA read_filter=[] disable_read_filter=[] intervals=[/seq/tng/kbergin/genotype_concordance_tests/NIST_test.interval_list] excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_seq [...]
+##GATKCommandLine=<ID=CombineVariants,Version=3.3-112-g49c8efd,Date="Thu Jan 22 15:25:05 EST 2015",Epoch=1421958305028,CommandLineOptions="analysis_type=CombineVariants input_file=[] showFullBamList=false read_buffer_size=null phone_home=AWS gatk_key=null tag=NA read_filter=[] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/humgen/1kg/reference/human_g1k_v37.fasta nonDeterministicRandomSeed=false disableDithering=fa [...]
+##INFO=<ID=AC,Number=A,Type=Integer,Description="Allele count in genotypes, for each ALT allele, in the same order as listed">
+##INFO=<ID=AF,Number=A,Type=Float,Description="Allele Frequency, for each ALT allele, in the same order as listed">
+##INFO=<ID=AN,Number=1,Type=Integer,Description="Total number of alleles in called genotypes">
+##INFO=<ID=BasesToClosestVariant,Number=1,Type=Integer,Description="Number of bases to the closest variant in the file.">
+##INFO=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth; some reads may have been filtered">
+##INFO=<ID=DPSum,Number=1,Type=Integer,Description="Total read depth summed across all datasets, excluding MQ0 reads">
+##INFO=<ID=Entropy,Number=1,Type=Float,Description="Shannon entropy of variant flanking regions, 12bp on both sides">
+##INFO=<ID=HRun,Number=1,Type=Integer,Description="Largest Contiguous Homopolymer Run of Variant Allele In Either Direction">
+##INFO=<ID=HapNoVar,Number=1,Type=Integer,Description="Number of datasets for which HaplotypeCaller called a variant within 35bp and did not call a variant at this location">
+##INFO=<ID=LEN,Number=A,Type=Integer,Description="allele length">
+##INFO=<ID=NoCG,Number=0,Type=Flag,Description="Present if no consensus reached, so looked at all datasets except Complete Genomics since it may have a different representation of complex variants">
+##INFO=<ID=NoPLTot,Number=1,Type=Integer,Description="Number of datasets with likelihood ratio > 20 for a genotype different from the called genotype">
+##INFO=<ID=PL454WG,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~16x 454 whole genome sequencing from 1000 Genomes Project, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLCG,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~73x Complete Genomics whole genome sequencing, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLHSWEx,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~66x 2x100bp Illumina exome sequencing from Broad Institute, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLHSWG,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~68x 2x100bp Illumina whole genome sequencing from Broad Institute, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLILL250,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~50x 2x250bp Illumina PCR-free whole genome sequencing from Broad Institute, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLILLCLIA,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~80x 2x100bp Illumina whole genome sequencing from Illumina CLIA lab, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLILLWEx,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~30x 2x54bp Illumina exome sequencing from Broad Institute, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLILLWG,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~39x 2x44bp Illumina whole genome sequencing from Broad Institute, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLIllPCRFree,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~56x 2x100bp Illumina PCR-free whole genome sequencing from Illumina Platinum Genomes Project, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLIonEx,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~80x mean 237bp Ion Torrent exome sequencing from Life Technologies, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLPlatGen,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~190x 2x100bp Illumina PCR-free whole genome sequencing from Illumina Platinum Genomes Project, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLXIll,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~37x 2x100bp Illumina whole genome sequencing from X Prize, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLXPSolWGLS,Number=.,Type=String,Description="Genotype likelihoods (PL) for ~24x 50bpx35bp SOLiD whole genome sequencing from X Prize, preceded by filtering info if this dataset was not used due to evidence of bias">
+##INFO=<ID=PLminsum,Number=1,Type=Integer,Description="Net Genotype quality across all datasets, defined as difference between most likely and next most likely genotype likelihoods">
+##INFO=<ID=PLminsumOverDP,Number=1,Type=Float,Description="Net Genotype quality across all datasets, defined as difference between most likely and next most likely genotype likelihoods, divided by the depth of coverage">
+##INFO=<ID=RPA,Number=.,Type=Integer,Description="Number of times tandem repeat unit is repeated, for each allele (including reference)">
+##INFO=<ID=RU,Number=1,Type=String,Description="Tandem repeat unit (bases)">
+##INFO=<ID=TYPE,Number=A,Type=String,Description="The type of allele, either snp, mnp, ins, del, or complex.">
+##INFO=<ID=TrancheABQDmin2,Number=1,Type=Float,Description="2nd lowest VQSR tranche for the called genotype for annotations associated with abnormal allele balance (AB and QD)">
+##INFO=<ID=TrancheAlignmin2,Number=1,Type=Float,Description="2nd lowest VQSR tranche for the called genotype for annotations associated with local alignment errors (distance from the end of the read and clipping)">
+##INFO=<ID=TrancheMapmin2,Number=1,Type=Float,Description="2nd lowest VQSR tranche for the called genotype for annotations associated with mapping errors (mapping quality and depth of coverage)">
+##INFO=<ID=TrancheSSEmin2,Number=1,Type=Float,Description="2nd lowest VQSR tranche for the called genotype for annotations associated with systematic sequencing errors (strand bias and neighboring base quality)">
+##INFO=<ID=YesPLtot,Number=1,Type=Integer,Description="Number of datasets with likelihood ratio > 20 for the called genotype">
+##INFO=<ID=allalts,Number=1,Type=Integer,Description="All ALT alleles originally considered at this position">
+##INFO=<ID=datasetcalls,Number=1,Type=Integer,Description="Number of datasets with any genotype call at this position">
+##INFO=<ID=filter,Number=1,Type=String,Description="Reason for filtering this genotype as uncertain">
+##INFO=<ID=geno,Number=1,Type=Integer,Description="Most probable genotype, corresponding to the minimum entry in the PL field (e.g., 1=0/0,2=0/1,3=1/1,4=0/2,etc)">
+##INFO=<ID=genoMapGood,Number=1,Type=Integer,Description="Number of datasets calling this genotype with VQSR mapping tranche <= 95">
+##INFO=<ID=platformbias,Number=.,Type=String,Description="Names of platforms that have at more than twice as many incorrect than correct genotypes at this location, indicating platform-specific bias (ill=Illumina,sol=SOLiD,454=454,ion=Ion Torrent,cg=Complete Genomics)">
+##INFO=<ID=platformnames,Number=.,Type=String,Description="Names of platforms that called this genotype (ill=Illumina,sol=SOLiD,454=454,ion=Ion Torrent,cg=Complete Genomics)">
+##INFO=<ID=platforms,Number=1,Type=Integer,Description="Number of different platforms that called this genotype">
+##INFO=<ID=set,Number=1,Type=String,Description="Source VCF for the merged record in CombineVariants">
+##INFO=<ID=varType,Number=1,Type=String,Description="Type of variant">
+##SelectVariants="analysis_type=SelectVariants input_file=[] read_buffer_size=null phone_home=STANDARD gatk_key=null tag=NA read_filter=[] intervals=[/projects/scratch-data-backup/justin.zook/NA12878/bed/union13callableMQonlymerged_addcert_nouncert_excludesimplerep_excludesegdups_excludedecoy_excludeRepSeqSTRs_noCNVs_v2.18_2mindatasets_5minYesNoRatio.bed] excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/projects/scratch-data-backup [...]
+##contig=<ID=1,length=249250621>
+##contig=<ID=2,length=243199373>
+##contig=<ID=3,length=198022430>
+##contig=<ID=4,length=191154276>
+##contig=<ID=5,length=180915260>
+##contig=<ID=6,length=171115067>
+##contig=<ID=7,length=159138663>
+##contig=<ID=8,length=146364022>
+##contig=<ID=9,length=141213431>
+##contig=<ID=10,length=135534747>
+##contig=<ID=11,length=135006516>
+##contig=<ID=12,length=133851895>
+##contig=<ID=13,length=115169878>
+##contig=<ID=14,length=107349540>
+##contig=<ID=15,length=102531392>
+##contig=<ID=16,length=90354753>
+##contig=<ID=17,length=81195210>
+##contig=<ID=18,length=78077248>
+##contig=<ID=19,length=59128983>
+##contig=<ID=20,length=63025520>
+##contig=<ID=21,length=48129895>
+##contig=<ID=22,length=51304566>
+##contig=<ID=X,length=155270560>
+##contig=<ID=Y,length=59373566>
+##contig=<ID=MT,length=16569>
+##contig=<ID=GL000207.1,length=4262>
+##contig=<ID=GL000226.1,length=15008>
+##contig=<ID=GL000229.1,length=19913>
+##contig=<ID=GL000231.1,length=27386>
+##contig=<ID=GL000210.1,length=27682>
+##contig=<ID=GL000239.1,length=33824>
+##contig=<ID=GL000235.1,length=34474>
+##contig=<ID=GL000201.1,length=36148>
+##contig=<ID=GL000247.1,length=36422>
+##contig=<ID=GL000245.1,length=36651>
+##contig=<ID=GL000197.1,length=37175>
+##contig=<ID=GL000203.1,length=37498>
+##contig=<ID=GL000246.1,length=38154>
+##contig=<ID=GL000249.1,length=38502>
+##contig=<ID=GL000196.1,length=38914>
+##contig=<ID=GL000248.1,length=39786>
+##contig=<ID=GL000244.1,length=39929>
+##contig=<ID=GL000238.1,length=39939>
+##contig=<ID=GL000202.1,length=40103>
+##contig=<ID=GL000234.1,length=40531>
+##contig=<ID=GL000232.1,length=40652>
+##contig=<ID=GL000206.1,length=41001>
+##contig=<ID=GL000240.1,length=41933>
+##contig=<ID=GL000236.1,length=41934>
+##contig=<ID=GL000241.1,length=42152>
+##contig=<ID=GL000243.1,length=43341>
+##contig=<ID=GL000242.1,length=43523>
+##contig=<ID=GL000230.1,length=43691>
+##contig=<ID=GL000237.1,length=45867>
+##contig=<ID=GL000233.1,length=45941>
+##contig=<ID=GL000204.1,length=81310>
+##contig=<ID=GL000198.1,length=90085>
+##contig=<ID=GL000208.1,length=92689>
+##contig=<ID=GL000191.1,length=106433>
+##contig=<ID=GL000227.1,length=128374>
+##contig=<ID=GL000228.1,length=129120>
+##contig=<ID=GL000214.1,length=137718>
+##contig=<ID=GL000221.1,length=155397>
+##contig=<ID=GL000209.1,length=159169>
+##contig=<ID=GL000218.1,length=161147>
+##contig=<ID=GL000220.1,length=161802>
+##contig=<ID=GL000213.1,length=164239>
+##contig=<ID=GL000211.1,length=166566>
+##contig=<ID=GL000199.1,length=169874>
+##contig=<ID=GL000217.1,length=172149>
+##contig=<ID=GL000216.1,length=172294>
+##contig=<ID=GL000215.1,length=172545>
+##contig=<ID=GL000205.1,length=174588>
+##contig=<ID=GL000219.1,length=179198>
+##contig=<ID=GL000224.1,length=179693>
+##contig=<ID=GL000223.1,length=180455>
+##contig=<ID=GL000195.1,length=182896>
+##contig=<ID=GL000212.1,length=186858>
+##contig=<ID=GL000222.1,length=186861>
+##contig=<ID=GL000200.1,length=187035>
+##contig=<ID=GL000193.1,length=189789>
+##contig=<ID=GL000194.1,length=191469>
+##contig=<ID=GL000225.1,length=211173>
+##contig=<ID=GL000192.1,length=547496>
+##fileDate=20130719
+##phasing=none
+##reference=file:///seq/references/Homo_sapiens_assembly19/v1/Homo_sapiens_assembly19.fasta
+##source=SelectVariants
+##variants_justified=left
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	NA12878
+1	90146546	.	C	T	22132	PASS	set=Intersection	GT:GQ	1/1:99
+1	165431906	.	G	T	10461	PASS	set=Intersection	GT:GQ	0/1:99
+1	175207612	.	C	T	10310	PASS	set=Intersection	GT:GQ	0/1:99
+1	204945934	.	A	G	10817	PASS	set=Intersection	GT:GQ	0/1:99
+1	216407409	.	A	G	27263	PASS	set=Intersection	GT:GQ	1/1:99
+2	18016237	.	A	T	10777	PASS	set=Intersection	GT:GQ	0/1:99
+2	36994439	.	A	C	11382	PASS	set=Intersection	GT:GQ	0/1:99
+2	117966808	.	C	T	19486	PASS	set=Intersection	GT:GQ	1/1:99
+2	198567638	.	C	G	10926	PASS	set=Intersection	GT:GQ	0/1:99
+3	1609737	.	A	G	22117	PASS	set=Intersection	GT:GQ	1/1:99
+3	8399330	.	G	A	26241	PASS	set=Intersection	GT:GQ	1/1:99
+3	86234718	.	T	C	26189	PASS	set=Intersection	GT:GQ	1/1:99
+3	158557110	.	G	A	11082	PASS	set=Intersection	GT:GQ	0/1:99
+4	141514835	.	C	T	10121	PASS	set=Intersection	GT:GQ	0/1:99
+5	36740339	.	T	G	26764	PASS	set=Intersection	GT:GQ	1/1:99
+5	58243302	.	A	C	25714	PASS	set=Intersection	GT:GQ	1/1:99
+5	58243332	.	A	G	25595	PASS	set=Intersection	GT:GQ	1/1:99
+5	80900719	.	G	T	10479	PASS	set=Intersection	GT:GQ	0/1:99
+6	1620147	.	T	C	11746	PASS	set=Intersection	GT:GQ	1/1:99
+6	45421630	.	C	T	10594	PASS	set=Intersection	GT:GQ	0/1:99
+6	89947113	.	T	C	20994	PASS	set=Intersection	GT:GQ	1/1:99
+6	89947117	.	A	G	21732	PASS	set=Intersection	GT:GQ	1/1:99
+6	89947132	.	T	C	20282	PASS	set=Intersection	GT:GQ	1/1:99
+7	29544610	.	A	T	11708	PASS	set=Intersection	GT:GQ	0/1:99
+8	78181000	.	A	G	21324	PASS	set=Intersection	GT:GQ	1/1:99
+8	132727531	.	G	A	10322	PASS	set=Intersection	GT:GQ	0/1:99
+10	4588547	.	C	T	10251	PASS	set=Intersection	GT:GQ	0/1:99
+10	11560326	.	C	T	10908	PASS	set=Intersection	GT:GQ	0/1:99
+10	56495833	.	G	A	20583	PASS	set=Intersection	GT:GQ	1/1:99
+10	125452232	.	A	G	23683	PASS	set=Intersection	GT:GQ	1/1:99
+11	113825164	.	A	G	19625	PASS	set=Intersection	GT:GQ	1/1:99
+11	123470819	.	T	C	28494	PASS	set=Intersection	GT:GQ	1/1:99
+11	132781000	.	A	G	22301	PASS	set=Intersection	GT:GQ	1/1:99
+12	21328424	.	G	C	10421	PASS	set=Intersection	GT:GQ	0/1:99
+12	79238948	.	C	T	10286	PASS	set=Intersection	GT:GQ	0/1:99
+13	21520045	.	A	C	21480	PASS	set=Intersection	GT:GQ	1/1:99
+13	28463938	.	C	T	10331	PASS	set=Intersection	GT:GQ	0/1:99
+13	28463951	.	T	C	10701	PASS	set=Intersection	GT:GQ	0/1:99
+13	101976707	.	A	T	25942	PASS	set=Intersection	GT:GQ	1/1:99
+13	109990322	.	T	C	23492	PASS	set=Intersection	GT:GQ	1/1:99
+14	56951735	.	G	A	25351	PASS	set=Intersection	GT:GQ	1/1:99
+14	87263523	.	A	C	22724	PASS	set=Intersection	GT:GQ	1/1:99
+15	42065422	.	A	C	25928	PASS	set=Intersection	GT:GQ	1/1:99
+15	92857342	.	A	G	11592	PASS	set=Intersection	GT:GQ	0/1:99
+17	33513649	.	A	G	12636	PASS	set=Intersection	GT:GQ	0/1:99
+17	55158811	.	G	A	10653	PASS	set=Intersection	GT:GQ	0/1:99
+18	10010426	.	T	C	21171	PASS	set=Intersection	GT:GQ	1/1:99
+18	67950442	.	T	G	11593	PASS	set=Intersection	GT:GQ	0/1:99
+19	3739001	.	C	T	11767	PASS	set=Intersection	GT:GQ	0/1:99
+20	21523349	.	A	G	10349	PASS	set=Intersection	GT:GQ	0/1:99
+20	51353834	.	G	A	10496	PASS	set=Intersection	GT:GQ	0/1:99
diff --git a/testdata/picard/vcf/NIST.selected.vcf.idx b/testdata/picard/vcf/NIST.selected.vcf.idx
new file mode 100644
index 0000000..3a0f3d9
Binary files /dev/null and b/testdata/picard/vcf/NIST.selected.vcf.idx differ
diff --git a/testdata/picard/vcf/chunking/multi_allelic_at_10M.vcf b/testdata/picard/vcf/chunking/multi_allelic_at_10M.vcf
new file mode 100644
index 0000000..b80d059
--- /dev/null
+++ b/testdata/picard/vcf/chunking/multi_allelic_at_10M.vcf
@@ -0,0 +1,171 @@
+##fileformat=VCFv4.1
+##ApplyRecalibration="analysis_type=ApplyRecalibration input_file=[] read_buffer_size=null phone_home=NO_ET gatk_key=/humgen/gsa-hpprojects/GATK/data/gatk_user_keys/gsamembers_broadinstitute.org.key read_filter=[] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta nonDeterministicRandomSeed=false downsampling_type=BY_SAMPLE downsample_to_fraction=null do [...]
+##CombineVariants="analysis_type=CombineVariants input_file=[] read_buffer_size=null phone_home=STANDARD gatk_key=null read_filter=[] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta nonDeterministicRandomSeed=false downsampling_type=BY_SAMPLE downsample_to_fraction=null downsample_to_coverage=1000 baq=OFF baqGapOpenPenalty=40.0 performanceLog=null use [...]
+##FILTER=<ID=LowQual,Description="Low quality">
+##FILTER=<ID=VQSRTrancheINDEL99.00to99.90,Description="Truth sensitivity tranche level for INDEL model at VQS Lod: -4.1718 <= x < -0.8611">
+##FILTER=<ID=VQSRTrancheINDEL99.90to100.00+,Description="Truth sensitivity tranche level for INDEL model at VQS Lod < -727.2136">
+##FILTER=<ID=VQSRTrancheINDEL99.90to100.00,Description="Truth sensitivity tranche level for INDEL model at VQS Lod: -727.2136 <= x < -4.1718">
+##FILTER=<ID=VQSRTrancheSNP99.00to99.90,Description="Truth sensitivity tranche level for SNP model at VQS Lod: -25.4561 <= x < 3.2489">
+##FILTER=<ID=VQSRTrancheSNP99.90to100.00+,Description="Truth sensitivity tranche level for SNP model at VQS Lod < -38672.7015">
+##FILTER=<ID=VQSRTrancheSNP99.90to100.00,Description="Truth sensitivity tranche level for SNP model at VQS Lod: -38672.7015 <= x < -25.4561">
+##FORMAT=<ID=AD,Number=.,Type=Integer,Description="Allelic depths for the ref and alt alleles in the order listed">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth (reads with MQ=255 or with bad mates are filtered)">
+##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##FORMAT=<ID=PL,Number=G,Type=Integer,Description="Normalized, Phred-scaled likelihoods for genotypes as defined in the VCF specification">
+##FORMAT=<ID=TP,Number=1,Type=Integer,Description="Phred score of the genotype combination and phase given that the genotypes are correct">
+##INFO=<ID=AC,Number=A,Type=Integer,Description="Allele count in genotypes, for each ALT allele, in the same order as listed">
+##INFO=<ID=AF,Number=A,Type=Float,Description="Allele Frequency, for each ALT allele, in the same order as listed">
+##INFO=<ID=AN,Number=1,Type=Integer,Description="Total number of alleles in called genotypes">
+##INFO=<ID=BaseQRankSum,Number=1,Type=Float,Description="Z-score from Wilcoxon rank sum test of Alt Vs. Ref base qualities">
+##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP Membership">
+##INFO=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth; some reads may have been filtered">
+##INFO=<ID=DS,Number=0,Type=Flag,Description="Were any of the samples downsampled?">
+##INFO=<ID=Dels,Number=1,Type=Float,Description="Fraction of Reads Containing Spanning Deletions">
+##INFO=<ID=END,Number=1,Type=Integer,Description="Stop position of the interval">
+##INFO=<ID=FS,Number=1,Type=Float,Description="Phred-scaled p-value using Fisher's exact test to detect strand bias">
+##INFO=<ID=HaplotypeScore,Number=1,Type=Float,Description="Consistency of the site with at most two segregating haplotypes">
+##INFO=<ID=InbreedingCoeff,Number=1,Type=Float,Description="Inbreeding coefficient as estimated from the genotype likelihoods per-sample when compared against the Hardy-Weinberg expectation">
+##INFO=<ID=MLEAC,Number=A,Type=Integer,Description="Maximum likelihood expectation (MLE) for the allele counts (not necessarily the same as the AC), for each ALT allele, in the same order as listed">
+##INFO=<ID=MLEAF,Number=A,Type=Float,Description="Maximum likelihood expectation (MLE) for the allele frequency (not necessarily the same as the AF), for each ALT allele, in the same order as listed">
+##INFO=<ID=MQ,Number=1,Type=Float,Description="RMS Mapping Quality">
+##INFO=<ID=MQ0,Number=1,Type=Integer,Description="Total Mapping Quality Zero Reads">
+##INFO=<ID=MQRankSum,Number=1,Type=Float,Description="Z-score From Wilcoxon rank sum test of Alt vs. Ref read mapping qualities">
+##INFO=<ID=QD,Number=1,Type=Float,Description="Variant Confidence/Quality by Depth">
+##INFO=<ID=RPA,Number=.,Type=Integer,Description="Number of times tandem repeat unit is repeated, for each allele (including reference)">
+##INFO=<ID=RU,Number=1,Type=String,Description="Tandem repeat unit (bases)">
+##INFO=<ID=ReadPosRankSum,Number=1,Type=Float,Description="Z-score from Wilcoxon rank sum test of Alt vs. Ref read position bias">
+##INFO=<ID=SB,Number=1,Type=Float,Description="Strand Bias">
+##INFO=<ID=STR,Number=0,Type=Flag,Description="Variant is a short tandem repeat">
+##INFO=<ID=VQSLOD,Number=1,Type=Float,Description="Log odds ratio of being a true variant versus being false under the trained gaussian mixture model">
+##INFO=<ID=culprit,Number=1,Type=String,Description="The annotation which was the worst performing in the Gaussian mixture model, likely the reason why the variant was filtered out">
+##INFO=<ID=set,Number=1,Type=String,Description="Source VCF for the merged record in CombineVariants">
+##PhaseByTransmission="analysis_type=PhaseByTransmission input_file=[] read_buffer_size=null phone_home=STANDARD gatk_key=null read_filter=[] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta nonDeterministicRandomSeed=false downsampling_type=BY_SAMPLE downsample_to_fraction=null downsample_to_coverage=1000 baq=OFF baqGapOpenPenalty=40.0 performanceLog= [...]
+##UnifiedGenotyper="analysis_type=UnifiedGenotyper input_file=[/humgen/gsa-hpprojects/NA12878Collection/bams/CEUTrio.HiSeq.WGS.b37.list] read_buffer_size=null phone_home=NO_ET gatk_key=/humgen/gsa-hpprojects/GATK/data/gatk_user_keys/gsamembers_broadinstitute.org.key read_filter=[] intervals=[/broad/hptmp/ami/tmp/queueScatterGather/.qlog/CEUTrio.indelcall-sg/temp_020_of_300/scatter.intervals] excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_s [...]
+##contig=<ID=1,length=249250621,assembly=b37>
+##contig=<ID=2,length=243199373,assembly=b37>
+##contig=<ID=3,length=198022430,assembly=b37>
+##contig=<ID=4,length=191154276,assembly=b37>
+##contig=<ID=5,length=180915260,assembly=b37>
+##contig=<ID=6,length=171115067,assembly=b37>
+##contig=<ID=7,length=159138663,assembly=b37>
+##contig=<ID=8,length=146364022,assembly=b37>
+##contig=<ID=9,length=141213431,assembly=b37>
+##contig=<ID=10,length=135534747,assembly=b37>
+##contig=<ID=11,length=135006516,assembly=b37>
+##contig=<ID=12,length=133851895,assembly=b37>
+##contig=<ID=13,length=115169878,assembly=b37>
+##contig=<ID=14,length=107349540,assembly=b37>
+##contig=<ID=15,length=102531392,assembly=b37>
+##contig=<ID=16,length=90354753,assembly=b37>
+##contig=<ID=17,length=81195210,assembly=b37>
+##contig=<ID=18,length=78077248,assembly=b37>
+##contig=<ID=19,length=59128983,assembly=b37>
+##contig=<ID=20,length=63025520,assembly=b37>
+##contig=<ID=21,length=48129895,assembly=b37>
+##contig=<ID=22,length=51304566,assembly=b37>
+##contig=<ID=X,length=155270560,assembly=b37>
+##contig=<ID=Y,length=59373566,assembly=b37>
+##contig=<ID=MT,length=16569,assembly=b37>
+##contig=<ID=GL000207.1,length=4262,assembly=b37>
+##contig=<ID=GL000226.1,length=15008,assembly=b37>
+##contig=<ID=GL000229.1,length=19913,assembly=b37>
+##contig=<ID=GL000231.1,length=27386,assembly=b37>
+##contig=<ID=GL000210.1,length=27682,assembly=b37>
+##contig=<ID=GL000239.1,length=33824,assembly=b37>
+##contig=<ID=GL000235.1,length=34474,assembly=b37>
+##contig=<ID=GL000201.1,length=36148,assembly=b37>
+##contig=<ID=GL000247.1,length=36422,assembly=b37>
+##contig=<ID=GL000245.1,length=36651,assembly=b37>
+##contig=<ID=GL000197.1,length=37175,assembly=b37>
+##contig=<ID=GL000203.1,length=37498,assembly=b37>
+##contig=<ID=GL000246.1,length=38154,assembly=b37>
+##contig=<ID=GL000249.1,length=38502,assembly=b37>
+##contig=<ID=GL000196.1,length=38914,assembly=b37>
+##contig=<ID=GL000248.1,length=39786,assembly=b37>
+##contig=<ID=GL000244.1,length=39929,assembly=b37>
+##contig=<ID=GL000238.1,length=39939,assembly=b37>
+##contig=<ID=GL000202.1,length=40103,assembly=b37>
+##contig=<ID=GL000234.1,length=40531,assembly=b37>
+##contig=<ID=GL000232.1,length=40652,assembly=b37>
+##contig=<ID=GL000206.1,length=41001,assembly=b37>
+##contig=<ID=GL000240.1,length=41933,assembly=b37>
+##contig=<ID=GL000236.1,length=41934,assembly=b37>
+##contig=<ID=GL000241.1,length=42152,assembly=b37>
+##contig=<ID=GL000243.1,length=43341,assembly=b37>
+##contig=<ID=GL000242.1,length=43523,assembly=b37>
+##contig=<ID=GL000230.1,length=43691,assembly=b37>
+##contig=<ID=GL000237.1,length=45867,assembly=b37>
+##contig=<ID=GL000233.1,length=45941,assembly=b37>
+##contig=<ID=GL000204.1,length=81310,assembly=b37>
+##contig=<ID=GL000198.1,length=90085,assembly=b37>
+##contig=<ID=GL000208.1,length=92689,assembly=b37>
+##contig=<ID=GL000191.1,length=106433,assembly=b37>
+##contig=<ID=GL000227.1,length=128374,assembly=b37>
+##contig=<ID=GL000228.1,length=129120,assembly=b37>
+##contig=<ID=GL000214.1,length=137718,assembly=b37>
+##contig=<ID=GL000221.1,length=155397,assembly=b37>
+##contig=<ID=GL000209.1,length=159169,assembly=b37>
+##contig=<ID=GL000218.1,length=161147,assembly=b37>
+##contig=<ID=GL000220.1,length=161802,assembly=b37>
+##contig=<ID=GL000213.1,length=164239,assembly=b37>
+##contig=<ID=GL000211.1,length=166566,assembly=b37>
+##contig=<ID=GL000199.1,length=169874,assembly=b37>
+##contig=<ID=GL000217.1,length=172149,assembly=b37>
+##contig=<ID=GL000216.1,length=172294,assembly=b37>
+##contig=<ID=GL000215.1,length=172545,assembly=b37>
+##contig=<ID=GL000205.1,length=174588,assembly=b37>
+##contig=<ID=GL000219.1,length=179198,assembly=b37>
+##contig=<ID=GL000224.1,length=179693,assembly=b37>
+##contig=<ID=GL000223.1,length=180455,assembly=b37>
+##contig=<ID=GL000195.1,length=182896,assembly=b37>
+##contig=<ID=GL000212.1,length=186858,assembly=b37>
+##contig=<ID=GL000222.1,length=186861,assembly=b37>
+##contig=<ID=GL000200.1,length=187035,assembly=b37>
+##contig=<ID=GL000193.1,length=189789,assembly=b37>
+##contig=<ID=GL000194.1,length=191469,assembly=b37>
+##contig=<ID=GL000225.1,length=211173,assembly=b37>
+##contig=<ID=GL000192.1,length=547496,assembly=b37>
+##reference=file:///humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta
+##source=PhaseByTransmission
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	NA12878	NA12891
+1	10000000	mikes_made_up_variant	GTTGTG	G	743.25	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=3.321;DB;DP=214;FS=2.265;HaplotypeScore=77.3263;MLEAC=3;MLEAF=0.500;MQ=55.48;MQ0=0;MQRankSum=0.114;QD=3.47;RPA=19,18;RU=T;ReadPosRankSum=0.884;SB=-3.070e+02;STR;VQSLOD=2.0987;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:60,12:82:67:292,0,67:18	0/1:55,7:69:42:245,0,42:18
+1	36900350	rs72008966	C	CA	137.53	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.837;DB;DP=139;FS=0.000;HaplotypeScore=32.7946;MLEAC=3;MLEAF=0.500;MQ=49.20;MQ0=3;MQRankSum=0.772;QD=0.99;RPA=22,23;RU=A;ReadPosRankSum=-3.220;SB=-4.273e+01;STR;VQSLOD=1.8721;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:35,7:44:41:70,0,41:9	0/1:48,0:47:20:20,0,41:9
+1	120811174	.	C	CA	74.77	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-1.393;DP=148;FS=0.000;HaplotypeScore=20.3510;MLEAC=5;MLEAF=0.833;MQ=15.79;MQ0=88;MQRankSum=-0.348;QD=0.51;RPA=24,25;RU=A;ReadPosRankSum=-1.044;SB=-1.531e+01;STR;VQSLOD=5.0896;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:47,5:9:11:53,11,0:3	1|0:51,0:15:5:37,0,5:3
+1	235750933	rs111686144	GA	G	679.19	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=2.042;DB;DP=64;FS=7.388;HaplotypeScore=400.1973;MLEAC=4;MLEAF=0.667;MQ=32.98;MQ0=0;MQRankSum=-0.059;QD=10.61;ReadPosRankSum=2.445;SB=-1.575e+02;VQSLOD=-0.3140;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:12,0:12:6:110,0,6:6	1|1:9,9:19:31:491,31,0:6
+2	75490647	rs112304545	T	TGG	1000.21	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=0.322;DB;DP=188;FS=0.785;HaplotypeScore=58.7199;MLEAC=4;MLEAF=0.667;MQ=57.19;MQ0=0;MQRankSum=-0.229;QD=5.32;RPA=10,12;RU=G;ReadPosRankSum=-2.534;SB=-4.650e+02;STR;VQSLOD=2.6886;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:33,35:76:57:976,57,0:56	1|0:39,3:49:38:38,0,730:56
+2	107234623	rs35291621	GTA	G	7569	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=2.652;DB;DP=242;FS=7.837;HaplotypeScore=19.3113;MLEAC=4;MLEAF=0.667;MQ=60.04;MQ0=1;MQRankSum=-0.157;QD=31.28;ReadPosRankSum=1.661;SB=-3.633e+03;VQSLOD=4.2975;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:46,30:76:99:1290,0,2120:127	0|1:35,66:102:99:2998,0,1435:127
+2	133338909	rs72548244	CT	C	2103.21	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=0.444;DB;DP=212;FS=5.224;HaplotypeScore=27.6263;MLEAC=5;MLEAF=0.833;MQ=59.64;MQ0=0;MQRankSum=2.430;QD=9.92;RPA=15,14;RU=T;ReadPosRankSum=2.784;SB=-1.050e+03;STR;VQSLOD=2.6610;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:17,39:59:61:837,61,0:60	1|0:47,22:72:99:241,0,444:60
+2	218911764	.	TA	T	229.22	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.591;DP=218;FS=1.761;HaplotypeScore=32.5745;MLEAC=3;MLEAF=0.500;MQ=57.41;MQ0=0;MQRankSum=1.792;QD=1.05;RPA=19,18;RU=A;ReadPosRankSum=0.676;SB=-1.060e+02;STR;VQSLOD=2.3065;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:56,5:65:99:101,0,313:70	0/1:59,18:82:99:105,0,395:70
+3	37334187	rs112182713	G	GGTT	1235.20	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=0.420;DB;DP=233;FS=10.653;HaplotypeScore=68.3055;MLEAC=1;MLEAF=0.167;MQ=56.19;MQ0=0;MQRankSum=-1.868;QD=17.65;RPA=1,2;RU=GTT;ReadPosRankSum=1.383;SB=-4.490e+02;STR;VQSLOD=3.1411;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:83,0:83:99:0,244,4702:127	0|0:79,0:77:99:0,220,4149:127
+3	118367863	rs71617664	TAGATAGATTA	T	12039	PASS	AC=6;AF=1.00;AN=6;BaseQRankSum=1.121;DB;DP=201;FS=9.449;HaplotypeScore=212.5016;MLEAC=6;MLEAF=1.00;MQ=55.55;MQ0=1;MQRankSum=1.584;QD=59.90;ReadPosRankSum=0.721;SB=-5.599e+03;VQSLOD=-0.4074;culprit=QD	GT:AD:DP:GQ:PL:TP	1|1:13,57:71:99:4299,164,0:127	1|1:60,4:64:99:3312,174,0:127
+3	168108331	rs35075740	TA	T	51.36	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=1.784;DB;DP=162;FS=3.973;HaplotypeScore=20.3755;MLEAC=3;MLEAF=0.500;MQ=55.92;MQ0=0;MQRankSum=3.470;QD=0.32;RPA=18,17;RU=A;ReadPosRankSum=1.956;SB=-7.120e+00;STR;VQSLOD=2.1011;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:46,5:53:16:16,0,313:15	0/1:46,12:60:61:61,0,267:15
+4	92648168	rs61329801	A	ATTTG	7717	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=0.947;DB;DP=186;FS=8.292;HaplotypeScore=7.8810;MLEAC=4;MLEAF=0.667;MQ=56.58;MQ0=0;MQRankSum=-0.174;QD=41.49;ReadPosRankSum=-0.444;SB=-3.591e+03;VQSLOD=3.5165;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:45,35:80:99:2213,0,2213:127	1|1:3,59:62:99:4128,181,0:127
+4	114869733	rs11381039	A	AT	2798.22	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.957;DB;DP=267;FS=4.371;HaplotypeScore=26.3590;MLEAC=3;MLEAF=0.500;MQ=59.97;MQ0=0;MQRankSum=0.673;QD=10.48;RPA=8,9;RU=T;ReadPosRankSum=-1.351;SB=-1.173e+03;STR;VQSLOD=5.5505;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:47,41:89:99:994,0,1219:127	0/1:50,41:92:99:1063,0,1043:127
+4	152029268	.	CT	C	358.22	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=2.688;DP=199;FS=13.724;HaplotypeScore=32.5739;MLEAC=2;MLEAF=0.333;MQ=55.17;MQ0=0;MQRankSum=-0.915;QD=2.42;RPA=17,16;RU=T;ReadPosRankSum=0.548;SB=-1.419e+02;STR;VQSLOD=0.3925;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:50,15:75:99:301,0,225:38	1|0:56,11:72:99:105,0,209:38
+6	31390139	rs72548006	T	TA	2159.22	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=0.491;DB;DP=257;FS=2.384;HaplotypeScore=26.8869;MLEAC=2;MLEAF=0.333;MQ=59.99;MQ0=0;MQRankSum=1.589;QD=12.85;RPA=5,6;RU=A;ReadPosRankSum=1.851;SB=-9.710e+02;STR;VQSLOD=5.5307;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:51,37:89:99:1076,0,1364:127	0|0:89,0:89:99:0,256,3112:127
+6	63303894	rs34270846	T	TC	7366	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=1.312;DB;DP=202;FS=2.807;HaplotypeScore=88.2916;MLEAC=5;MLEAF=0.833;MQ=61.10;MQ0=0;MQRankSum=-0.390;QD=36.47;ReadPosRankSum=-0.315;SB=-2.762e+03;VQSLOD=3.8558;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,89:89:99:3885,265,0:127	1|0:29,25:54:99:999,0,1050:127
+6	100462085	rs113348222	G	GT	5284	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-0.046;DB;DP=285;FS=7.484;HaplotypeScore=252.0890;MLEAC=5;MLEAF=0.833;MQ=60.07;MQ0=0;MQRankSum=1.241;QD=18.54;RPA=10,11;RU=T;ReadPosRankSum=-2.539;SB=-2.505e+03;STR;VQSLOD=2.2089;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|1:8,79:94:99:2218,200,0:127	1|0:54,37:97:99:818,0,914:127
+6	169196022	.	T	TG	229.23	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=0.887;DP=84;FS=7.129;HaplotypeScore=6.4344;MLEAC=2;MLEAF=0.333;MQ=39.46;MQ0=16;MQRankSum=2.277;QD=3.82;RPA=6,7;RU=G;ReadPosRankSum=-0.983;SB=-2.849e+01;STR;VQSLOD=1.3456;culprit=QD	GT:AD:DP:GQ:PL:TP	1|0:19,10:15:78:78,0,88:27	1|0:17,13:21:99:199,0,172:27
+7	20767781	rs150977587	TA	T	2754.21	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=6.295;DB;DP=259;FS=0.000;HaplotypeScore=122.4991;MLEAC=4;MLEAF=0.667;MQ=59.41;MQ0=1;MQRankSum=-0.640;QD=10.63;RPA=13,12;RU=A;ReadPosRankSum=0.189;SB=-1.344e+03;STR;VQSLOD=3.3002;culprit=QD	GT:AD:DP:GQ:PL:TP	1|0:59,45:107:99:923,0,795:116	1|1:15,54:72:99:1313,116,0:116
+7	134269995	rs67235184	G	GA	2917.20	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.835;DB;DP=219;FS=1.093;HaplotypeScore=39.1434;MLEAC=3;MLEAF=0.500;MQ=59.44;MQ0=0;MQRankSum=-0.037;QD=19.19;RPA=7,8;RU=A;ReadPosRankSum=-0.921;SB=-1.316e+03;STR;VQSLOD=5.1149;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:51,33:84:99:916,0,1151:127	1|1:2,65:68:99:2055,192,0:127
+8	30862954	rs149290124	C	CA	3883	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-1.321;DB;DP=261;FS=0.755;HaplotypeScore=37.2657;MLEAC=5;MLEAF=0.833;MQ=58.08;MQ0=0;MQRankSum=0.330;QD=14.88;RPA=11,12;RU=A;ReadPosRankSum=-0.578;SB=-1.926e+03;STR;VQSLOD=5.3659;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:21,76:105:99:1980,179,0:91	1|0:51,22:75:99:597,0,485:91
+9	9066127	rs57751104	ATATT	A	4412	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-0.088;DB;DP=214;FS=8.470;HaplotypeScore=16.5868;MLEAC=2;MLEAF=0.333;MQ=58.75;MQ0=0;MQRankSum=0.462;QD=29.61;RPA=2,1;RU=TATT;ReadPosRankSum=1.377;SB=-1.837e+03;STR;VQSLOD=4.4209;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:41,36:79:99:2129,0,2123:127	1|0:32,38:70:99:2283,0,1679:127
+9	33446281	.	C	CT	31.72	VQSRTrancheINDEL99.90to100.00	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.119;DP=178;FS=127.572;HaplotypeScore=21.5544;MLEAC=1;MLEAF=0.167;MQ=58.69;MQ0=0;MQRankSum=1.608;QD=0.62;RPA=2,3;RU=T;ReadPosRankSum=-5.268;SB=-4.493e+00;STR;VQSLOD=-10.5680;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:77,0:79:73:0,73,2094:6	0|0:46,0:48:5:0,5,958:6
+9	118670009	rs66523513	CT	C	5633	PASS	AC=6;AF=1.00;AN=6;BaseQRankSum=-0.066;DB;DP=222;FS=6.403;HaplotypeScore=30.7213;MLEAC=6;MLEAF=1.00;MQ=59.97;MQ0=0;MQRankSum=0.490;QD=25.37;RPA=11,10;RU=T;ReadPosRankSum=2.429;SB=-2.667e+03;STR;VQSLOD=3.3873;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:6,71:78:99:2079,216,0:120	1|1:10,54:65:99:1524,120,0:120
+10	46605359	.	CT	C	883.20	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=1.618;DP=136;FS=9.661;HaplotypeScore=4.7050;MLEAC=3;MLEAF=0.500;MQ=22.12;MQ0=1;MQRankSum=0.368;QD=8.57;RPA=7,6;RU=T;ReadPosRankSum=-1.076;SB=-1.190e+02;STR;VQSLOD=2.5501;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:33,0:32:90:0,90,1016:25	0|1:66,15:81:99:303,0,1810:25
+11	3839556	rs5789310	CA	C	803.10	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.138;DB;DP=170;FS=4.498;HaplotypeScore=36.6392;MLEAC=3;MLEAF=0.500;MQ=55.95;MQ0=2;MQRankSum=2.278;QD=4.72;RPA=17,16;RU=A;ReadPosRankSum=3.210;SB=-3.839e+02;STR;VQSLOD=1.8082;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:35,17:55:32:329,0,32:3	0/1:45,9:57:8:276,0,8:3
+11	96559202	rs72048706	C	CAA	373.24	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-0.796;DB;DP=121;FS=1.541;HaplotypeScore=64.5478;MLEAC=4;MLEAF=0.667;MQ=39.96;MQ0=6;MQRankSum=-0.539;QD=3.08;RPA=21,23;RU=A;ReadPosRankSum=-3.583;SB=-1.985e+02;STR;VQSLOD=1.3071;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|0:20,8:32:24:111,0,24:22	1|1:40,0:41:29:180,29,0:22
+12	68921960	.	TATTTTC	T	803.22	VQSRTrancheINDEL99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=9.862;DP=270;FS=190.603;HaplotypeScore=223.0660;MLEAC=3;MLEAF=0.500;MQ=54.84;MQ0=1;MQRankSum=-4.552;QD=2.97;ReadPosRankSum=-6.674;SB=-1.330e-03;VQSLOD=-17.7657;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:69,22:95:99:394,0,4974:101	0/1:87,0:86:99:355,0,5072:101
+14	28032147	rs67442200	AT	A	9959	PASS	AC=6;AF=1.00;AN=6;DB;DP=259;FS=0.000;HaplotypeScore=15.2854;MLEAC=6;MLEAF=1.00;MQ=60.66;MQ0=0;QD=38.45;RPA=3,2;RU=T;SB=-4.646e+03;STR;VQSLOD=6.0102;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:2,86:91:99:3493,259,0:127	1|1:3,76:79:99:3025,226,0:12
+14	77813103	rs59474357	G	GT	328.58	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-2.653;DB;DP=164;FS=5.220;HaplotypeScore=117.8567;MLEAC=5;MLEAF=0.833;MQ=52.18;MQ0=0;MQRankSum=1.259;QD=2.00;RPA=24,25;RU=T;ReadPosRankSum=-1.030;SB=-1.639e+02;STR;VQSLOD=2.1577;culprit=QD	GT:AD:DP:GQ:PL:TP	1|0:51,1:53:18:105,0,18:6	1|1:58,1:59:13:150,13,0:6
+15	32615218	.	G	GA	82.61	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.361;DP=225;FS=0.000;HaplotypeScore=2.4894;MLEAC=4;MLEAF=0.667;MQ=5.76;MQ0=211;MQRankSum=-0.876;QD=0.56;RPA=9,10;RU=A;ReadPosRankSum=-1.159;SB=-1.330e-03;STR;VQSLOD=3.7374;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:41,19:3:9:88,9,0:5	1|0:62,24:5:44:44,0,77:5
+15	83241984	rs11336258	AT	A	1748.21	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-1.821;DB;DP=199;FS=5.740;HaplotypeScore=29.9449;MLEAC=4;MLEAF=0.667;MQ=59.67;MQ0=0;MQRankSum=1.120;QD=8.78;RPA=15,14;RU=T;ReadPosRankSum=-1.763;SB=-7.830e+02;STR;VQSLOD=3.4938;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:41,27:72:99:434,0,434:118	0|1:36,26:66:99:470,0,275:118
+16	19633462	rs11371821	C	CT	239.23	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-4.097;DB;DP=182;FS=1.344;HaplotypeScore=21.2638;MLEAC=4;MLEAF=0.667;MQ=50.55;MQ0=0;MQRankSum=-1.358;QD=1.31;RPA=22,23;RU=T;ReadPosRankSum=-3.963;SB=-9.798e+01;STR;VQSLOD=2.3127;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|0:61,0:63:45:70,0,45:24	1|1:44,15:58:28:192,28,0:24
+16	77418810	rs71137811	T	TG	7389	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=0.643;DB;DP=244;FS=2.246;HaplotypeScore=114.4097;MLEAC=5;MLEAF=0.833;MQ=61.09;MQ0=0;MQRankSum=2.492;QD=30.28;ReadPosRankSum=2.982;SB=-2.597e+03;VQSLOD=2.9140;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:8,84:93:99:3558,264,0:127	1|1:8,65:75:99:2723,179,0:127
+17	75679403	.	TGTG	T	1024.22	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=8.617;DP=161;FS=1.686;HaplotypeScore=259.3227;MLEAC=2;MLEAF=0.333;MQ=51.57;MQ0=0;MQRankSum=-8.617;QD=9.48;ReadPosRankSum=-0.498;SB=-4.680e+02;VQSLOD=1.7645;culprit=QD	GT:AD:DP:GQ:PL:TP	1|0:29,19:58:99:711,0,1547:127	1|0:34,11:50:99:361,0,1922:127
+18	30361151	rs35024407	T	TTG	9768	PASS	AC=6;AF=1.00;AN=6;DB;DP=234;FS=0.000;HaplotypeScore=13.0982;MLEAC=6;MLEAF=1.00;MQ=60.40;MQ0=2;QD=41.74;RPA=3,4;RU=TG;SB=-4.721e+03;STR;VQSLOD=5.5040;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:7,80:86:99:3686,241,0:127	1|1:8,77:85:99:3454,229,0:127
+18	59836086	.	A	AT	575.46	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-1.815;DP=231;FS=20.458;HaplotypeScore=140.1975;MLEAC=3;MLEAF=0.500;MQ=56.52;MQ0=0;MQRankSum=1.203;QD=2.49;RPA=20,21;RU=T;ReadPosRankSum=-1.968;SB=-2.575e+02;STR;VQSLOD=-0.3166;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:52,29:86:11:309,0,11:9	0/1:72,2:82:63:109,0,63:9
+19	47012249	rs60424854	ATTTTT	A	1121.22	VQSRTrancheINDEL99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=-1.922;DB;DP=144;FS=61.853;HaplotypeScore=338.7352;MLEAC=2;MLEAF=0.333;MQ=44.50;MQ0=1;MQRankSum=-2.345;QD=10.29;RPA=16,11;RU=T;ReadPosRankSum=5.636;SB=-1.090e+02;STR;VQSLOD=-2.3986;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|0:30,9:43:99:371,0,961:89	1|0:44,15:63:99:798,0,1293:89
+22	24416101	rs66532277	C	CTT	458.98	VQSRTrancheINDEL99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=-4.190;DB;DP=251;FS=68.550;HaplotypeScore=55.3088;MLEAC=3;MLEAF=0.500;MQ=51.85;MQ0=3;MQRankSum=2.417;QD=1.83;RPA=23,25;RU=T;ReadPosRankSum=2.881;SB=-3.571e+01;STR;VQSLOD=-2.0279;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:68,20:91:65:207,0,65:3	0/1:84,0:83:0:184,0,0:3
+X	23948720	rs35152285	C	CA	535.35	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.538;DB;DP=148;FS=0.000;HaplotypeScore=24.3157;MLEAC=3;MLEAF=0.500;MQ=53.02;MQ0=0;MQRankSum=0.234;QD=3.62;RPA=16,17;RU=A;ReadPosRankSum=-1.638;SB=-2.841e+02;STR;VQSLOD=3.0203;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:37,27:68:62:391,0,62:13	0/1:16,8:25:13:102,0,13:13
diff --git a/testdata/picard/vcf/chunking/multi_allelic_at_10M.vcf.idx b/testdata/picard/vcf/chunking/multi_allelic_at_10M.vcf.idx
new file mode 100644
index 0000000..2fb81fe
Binary files /dev/null and b/testdata/picard/vcf/chunking/multi_allelic_at_10M.vcf.idx differ
diff --git a/testdata/picard/vcf/filter/testFiltering.vcf b/testdata/picard/vcf/filter/testFiltering.vcf
new file mode 100644
index 0000000..c07e0f7
--- /dev/null
+++ b/testdata/picard/vcf/filter/testFiltering.vcf
@@ -0,0 +1,150 @@
+##fileformat=VCFv4.1
+##ALT=<ID=NON_REF,Description="Represents any possible alternative allele at this location">
+##FILTER=<ID=LowQual,Description="Low quality">
+##FORMAT=<ID=AD,Number=.,Type=Integer,Description="Allelic depths for the ref and alt alleles in the order listed">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth (reads with MQ=255 or with bad mates are filtered)">
+##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##FORMAT=<ID=MIN_DP,Number=1,Type=Integer,Description="Minimum DP observed within the GVCF block">
+##FORMAT=<ID=PGT,Number=1,Type=String,Description="Physical phasing haplotype information, describing how the alternate alleles are phased in relation to one another">
+##FORMAT=<ID=PID,Number=1,Type=String,Description="Physical phasing ID information, where each unique ID within a given sample (but not across samples) connects records within a phasing group">
+##FORMAT=<ID=PL,Number=G,Type=Integer,Description="Normalized, Phred-scaled likelihoods for genotypes as defined in the VCF specification">
+##FORMAT=<ID=SB,Number=4,Type=Integer,Description="Per-sample component statistics which comprise the Fisher's Exact Test to detect strand bias.">
+##GATKCommandLine=<ID=GenotypeGVCFs,Version=3.2-77-gbf8aa36,Date="Fri Aug 29 09:15:21 EDT 2014",Epoch=1409318121531,CommandLineOptions="analysis_type=GenotypeGVCFs input_file=[] showFullBamList=false read_buffer_size=null phone_home=AWS gatk_key=null tag=NA read_filter=[] intervals=[/seq/references/Homo_sapiens_assembly19/v1/variant_calling/exome_calling_regions.v1.interval_list] excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/seq [...]
+##GATKCommandLine=<ID=HaplotypeCaller,Version=3.2-77-gbf8aa36,Date="Thu Aug 28 10:36:15 EDT 2014",Epoch=1409236575395,CommandLineOptions="analysis_type=HaplotypeCaller input_file=[RP697.NA12878.bam] showFullBamList=false read_buffer_size=null phone_home=AWS gatk_key=null tag=NA read_filter=[] intervals=[/seq/references/Homo_sapiens_assembly19/v1/variant_calling/exome_calling_regions.v1.interval_list] excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 re [...]
+##GVCFBlock=minGQ=0(inclusive),maxGQ=1(exclusive)
+##INFO=<ID=AC,Number=A,Type=Integer,Description="Allele count in genotypes, for each ALT allele, in the same order as listed">
+##INFO=<ID=AF,Number=A,Type=Float,Description="Allele Frequency, for each ALT allele, in the same order as listed">
+##INFO=<ID=AN,Number=1,Type=Integer,Description="Total number of alleles in called genotypes">
+##INFO=<ID=BaseQRankSum,Number=1,Type=Float,Description="Z-score from Wilcoxon rank sum test of Alt Vs. Ref base qualities">
+##INFO=<ID=CCC,Number=1,Type=Integer,Description="Number of called chromosomes">
+##INFO=<ID=ClippingRankSum,Number=1,Type=Float,Description="Z-score From Wilcoxon rank sum test of Alt vs. Ref number of hard clipped bases">
+##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP Membership">
+##INFO=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth; some reads may have been filtered">
+##INFO=<ID=DS,Number=0,Type=Flag,Description="Were any of the samples downsampled?">
+##INFO=<ID=END,Number=1,Type=Integer,Description="Stop position of the interval">
+##INFO=<ID=FS,Number=1,Type=Float,Description="Phred-scaled p-value using Fisher's exact test to detect strand bias">
+##INFO=<ID=GQ_MEAN,Number=1,Type=Float,Description="Mean of all GQ values">
+##INFO=<ID=GQ_STDDEV,Number=1,Type=Float,Description="Standard deviation of all GQ values">
+##INFO=<ID=HWP,Number=1,Type=Float,Description="P value from test of Hardy Weinberg Equilibrium">
+##INFO=<ID=HaplotypeScore,Number=1,Type=Float,Description="Consistency of the site with at most two segregating haplotypes">
+##INFO=<ID=InbreedingCoeff,Number=1,Type=Float,Description="Inbreeding coefficient as estimated from the genotype likelihoods per-sample when compared against the Hardy-Weinberg expectation">
+##INFO=<ID=MLEAC,Number=A,Type=Integer,Description="Maximum likelihood expectation (MLE) for the allele counts (not necessarily the same as the AC), for each ALT allele, in the same order as listed">
+##INFO=<ID=MLEAF,Number=A,Type=Float,Description="Maximum likelihood expectation (MLE) for the allele frequency (not necessarily the same as the AF), for each ALT allele, in the same order as listed">
+##INFO=<ID=MQ,Number=1,Type=Float,Description="RMS Mapping Quality">
+##INFO=<ID=MQ0,Number=1,Type=Integer,Description="Total Mapping Quality Zero Reads">
+##INFO=<ID=MQRankSum,Number=1,Type=Float,Description="Z-score From Wilcoxon rank sum test of Alt vs. Ref read mapping qualities">
+##INFO=<ID=NCC,Number=1,Type=Integer,Description="Number of no-called samples">
+##INFO=<ID=QD,Number=1,Type=Float,Description="Variant Confidence/Quality by Depth">
+##INFO=<ID=ReadPosRankSum,Number=1,Type=Float,Description="Z-score from Wilcoxon rank sum test of Alt vs. Ref read position bias">
+##INFO=<ID=SOR,Number=1,Type=Float,Description="Symmetric Odds Ratio of 2x2 contingency table to detect strand bias">
+##contig=<ID=1,length=249250621>
+##contig=<ID=2,length=243199373>
+##contig=<ID=3,length=198022430>
+##contig=<ID=4,length=191154276>
+##contig=<ID=5,length=180915260>
+##contig=<ID=6,length=171115067>
+##contig=<ID=7,length=159138663>
+##contig=<ID=8,length=146364022>
+##contig=<ID=9,length=141213431>
+##contig=<ID=10,length=135534747>
+##contig=<ID=11,length=135006516>
+##contig=<ID=12,length=133851895>
+##contig=<ID=13,length=115169878>
+##contig=<ID=14,length=107349540>
+##contig=<ID=15,length=102531392>
+##contig=<ID=16,length=90354753>
+##contig=<ID=17,length=81195210>
+##contig=<ID=18,length=78077248>
+##contig=<ID=19,length=59128983>
+##contig=<ID=20,length=63025520>
+##contig=<ID=21,length=48129895>
+##contig=<ID=22,length=51304566>
+##contig=<ID=X,length=155270560>
+##contig=<ID=Y,length=59373566>
+##contig=<ID=MT,length=16569>
+##contig=<ID=GL000207.1,length=4262>
+##contig=<ID=GL000226.1,length=15008>
+##contig=<ID=GL000229.1,length=19913>
+##contig=<ID=GL000231.1,length=27386>
+##contig=<ID=GL000210.1,length=27682>
+##contig=<ID=GL000239.1,length=33824>
+##contig=<ID=GL000235.1,length=34474>
+##contig=<ID=GL000201.1,length=36148>
+##contig=<ID=GL000247.1,length=36422>
+##contig=<ID=GL000245.1,length=36651>
+##contig=<ID=GL000197.1,length=37175>
+##contig=<ID=GL000203.1,length=37498>
+##contig=<ID=GL000246.1,length=38154>
+##contig=<ID=GL000249.1,length=38502>
+##contig=<ID=GL000196.1,length=38914>
+##contig=<ID=GL000248.1,length=39786>
+##contig=<ID=GL000244.1,length=39929>
+##contig=<ID=GL000238.1,length=39939>
+##contig=<ID=GL000202.1,length=40103>
+##contig=<ID=GL000234.1,length=40531>
+##contig=<ID=GL000232.1,length=40652>
+##contig=<ID=GL000206.1,length=41001>
+##contig=<ID=GL000240.1,length=41933>
+##contig=<ID=GL000236.1,length=41934>
+##contig=<ID=GL000241.1,length=42152>
+##contig=<ID=GL000243.1,length=43341>
+##contig=<ID=GL000242.1,length=43523>
+##contig=<ID=GL000230.1,length=43691>
+##contig=<ID=GL000237.1,length=45867>
+##contig=<ID=GL000233.1,length=45941>
+##contig=<ID=GL000204.1,length=81310>
+##contig=<ID=GL000198.1,length=90085>
+##contig=<ID=GL000208.1,length=92689>
+##contig=<ID=GL000191.1,length=106433>
+##contig=<ID=GL000227.1,length=128374>
+##contig=<ID=GL000228.1,length=129120>
+##contig=<ID=GL000214.1,length=137718>
+##contig=<ID=GL000221.1,length=155397>
+##contig=<ID=GL000209.1,length=159169>
+##contig=<ID=GL000218.1,length=161147>
+##contig=<ID=GL000220.1,length=161802>
+##contig=<ID=GL000213.1,length=164239>
+##contig=<ID=GL000211.1,length=166566>
+##contig=<ID=GL000199.1,length=169874>
+##contig=<ID=GL000217.1,length=172149>
+##contig=<ID=GL000216.1,length=172294>
+##contig=<ID=GL000215.1,length=172545>
+##contig=<ID=GL000205.1,length=174588>
+##contig=<ID=GL000219.1,length=179198>
+##contig=<ID=GL000224.1,length=179693>
+##contig=<ID=GL000223.1,length=180455>
+##contig=<ID=GL000195.1,length=182896>
+##contig=<ID=GL000212.1,length=186858>
+##contig=<ID=GL000222.1,length=186861>
+##contig=<ID=GL000200.1,length=187035>
+##contig=<ID=GL000193.1,length=189789>
+##contig=<ID=GL000194.1,length=191469>
+##contig=<ID=GL000225.1,length=211173>
+##contig=<ID=GL000192.1,length=547496>
+##contig=<ID=NC_007605,length=171823>
+##reference=file:///seq/references/Homo_sapiens_assembly19/v1/Homo_sapiens_assembly19.fasta
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	NA12878
+1	324822	tf1	A	T	2213.77	.	AC=2;AF=1.00;AN=2;DP=79;FS=0.000;GQ_MEAN=234.00;MLEAC=2;MLEAF=1.00;MQ=25.61;MQ0=0;NCC=0;QD=28.38;SOR=0.855	GT:AD:DP:GQ:PL	1/1:0,78:78:99:2242,234,0
+1	883899	rs72631890	T	G	1315.77	.	AC=1;AF=0.500;AN=2;BaseQRankSum=3.58;ClippingRankSum=-1.034e+00;DB;DP=123;FS=0.000;GQ_MEAN=1344.00;MLEAC=1;MLEAF=0.500;MQ=57.87;MQ0=0;MQRankSum=-3.820e-01;NCC=0;QD=10.70;ReadPosRankSum=0.085;SOR=0.765	GT:AD:DP:GQ:PL	0/1:72,51:123:99:1344,0,1858
+1	899942	rs71509448	G	A	172.80	.	AC=2;AF=1.00;AN=2;DB;DP=11;FS=0.000;GQ_MEAN=21.00;MLEAC=2;MLEAF=1.00;MQ=50.96;MQ0=0;NCC=0;QD=15.71;SOR=4.977	GT:AD:DP:GQ:PGT:PID:PL	1/1:0,11:11:21:1|1:899928_G_C:201,21,0
+1	900298	rs71628926	C	G	165.77	.	AC=1;AF=0.500;AN=2;BaseQRankSum=-2.793e+00;ClippingRankSum=0.135;DB;DP=12;FS=0.000;GQ_MEAN=147.00;MLEAC=1;MLEAF=0.500;MQ=56.04;MQ0=0;MQRankSum=0.135;NCC=0;QD=13.81;ReadPosRankSum=0.135;SOR=1.022	GT:AD:DP:GQ:PL	0/1:5,7:12:99:194,0,147
+1	909419	rs28548431	C	T	522.77	.	AC=1;AF=0.500;AN=2;BaseQRankSum=2.61;ClippingRankSum=-2.420e-01;DB;DP=54;FS=5.418;GQ_MEAN=551.00;MLEAC=1;MLEAF=0.500;MQ=60.00;MQ0=0;MQRankSum=1.28;NCC=0;QD=9.68;ReadPosRankSum=-5.110e-01;SOR=2.066	GT:AD:DP:GQ:PL	0/1:34,20:54:99:551,0,978
+1	912049	rs9803103	T	C	336.77	.	AC=1;AF=0.500;AN=2;BaseQRankSum=-1.522e+00;ClippingRankSum=-2.082e+00;DB;DP=41;FS=0.000;GQ_MEAN=365.00;MLEAC=1;MLEAF=0.500;MQ=58.87;MQ0=0;MQRankSum=0.612;NCC=0;QD=9.90;ReadPosRankSum=1.07;SOR=1.179	GT:AD:DP:GQ:PL	0/1:20,14:34:99:365,0,564
+1	914333	rs13302979	C	G	151.77	.	AC=1;AF=0.500;AN=2;BaseQRankSum=1.23;ClippingRankSum=-2.130e+00;DB;DP=14;FS=0.000;GQ_MEAN=180.00;MLEAC=1;MLEAF=0.500;MQ=60.00;MQ0=0;MQRankSum=-9.680e-01;NCC=0;QD=10.84;ReadPosRankSum=-1.226e+00;SOR=0.412	GT:AD:DP:GQ:PL	0/1:8,6:14:99:180,0,224
+1	914414	tf2	CGAA	C	97.77	.	AC=1;AF=0.500;AN=2;BaseQRankSum=-9.030e-01;ClippingRankSum=-2.650e-01;DP=21;FS=0.000;GQ_MEAN=126.00;MLEAC=1;MLEAF=0.500;MQ=57.06;MQ0=0;MQRankSum=-2.650e-01;NCC=0;QD=5.43;ReadPosRankSum=-6.230e-01;SOR=0.892	GT:AD:DP:GQ:PL	0/1:14,4:18:99:126,0,575
+1	914852	rs13303368	G	C	664.77	.	AC=1;AF=0.500;AN=2;BaseQRankSum=-9.500e-02;ClippingRankSum=1.13;DB;DP=40;FS=3.468;GQ_MEAN=546.00;MLEAC=1;MLEAF=0.500;MQ=58.36;MQ0=0;MQRankSum=0.829;NCC=0;QD=16.62;ReadPosRankSum=-9.380e-01;SOR=2.019	GT:AD:DP:GQ:PL	0/1:18,22:40:99:693,0,546
+1	914876	rs13302983	T	C	2241.77	.	AC=2;AF=1.00;AN=2;DB;DP=61;FS=0.000;GQ_MEAN=189.00;MLEAC=2;MLEAF=1.00;MQ=59.62;MQ0=0;NCC=0;QD=30.09;SOR=2.948	GT:AD:DP:GQ:PL	1/1:0,61:61:99:2270,189,0
+1	914940	rs13303033	T	C	1330.77	.	AC=1;AF=0.500;AN=2;BaseQRankSum=2.60;ClippingRankSum=-1.980e-01;DB;DP=98;FS=5.001;GQ_MEAN=1170.00;MLEAC=1;MLEAF=0.500;MQ=58.76;MQ0=0;MQRankSum=0.344;NCC=0;QD=13.86;ReadPosRankSum=2.22;SOR=0.603	GT:AD:DP:GQ:PL	0/1:47,49:96:99:1359,0,1170
+1	915227	rs13303355	A	G	6323.77	.	AC=2;AF=1.00;AN=2;DB;DP=168;FS=0.000;GQ_MEAN=508.00;MLEAC=2;MLEAF=1.00;MQ=59.73;MQ0=0;NCC=0;QD=31.26;SOR=3.456	GT:AD:DP:GQ:PL	1/1:0,168:168:99:6352,508,0
+1	916549	rs6660139	A	G	1033.77	.	AC=1;AF=0.500;AN=2;BaseQRankSum=2.85;ClippingRankSum=0.722;DB;DP=98;FS=0.000;GQ_MEAN=1062.00;MLEAC=1;MLEAF=0.500;MQ=59.34;MQ0=0;MQRankSum=-3.550e-01;NCC=0;QD=10.66;ReadPosRankSum=-7.950e-01;SOR=0.773	GT:AD:DP:GQ:PL	0/1:57,40:97:99:1062,0,1626
+1	916590	rs28566954	G	A	793.77	.	AC=1;AF=0.500;AN=2;BaseQRankSum=-4.441e+00;ClippingRankSum=-1.191e+00;DB;DP=41;FS=0.000;GQ_MEAN=372.00;MLEAC=1;MLEAF=0.500;MQ=59.44;MQ0=0;MQRankSum=0.154;NCC=0;QD=19.36;ReadPosRankSum=0.042;SOR=0.346	GT:AD:DP:GQ:PL	0/1:13,28:41:99:822,0,372
+1	935222	rs2298214	C	A	1381.77	.	AC=1;AF=0.500;AN=2;BaseQRankSum=-6.667e+00;ClippingRankSum=-1.069e+00;DB;DP=104;FS=2.093;GQ_MEAN=1410.00;MLEAC=1;MLEAF=0.500;MQ=59.78;MQ0=0;MQRankSum=0.595;NCC=0;QD=13.29;ReadPosRankSum=1.23;SOR=1.673	GT:AD:DP:GQ:PL	0/1:52,52:104:99:1410,0,1574
+1	948921	rs15842	T	C	1963.77	.	AC=2;AF=1.00;AN=2;DB;DP=62;FS=0.000;GQ_MEAN=186.00;MLEAC=2;MLEAF=1.00;MQ=51.79;MQ0=0;NCC=0;QD=31.67;SOR=1.057	GT:AD:DP:GQ:PL	1/1:0,62:62:99:1992,186,0
+1	948929	tf3	GGCCCACA	G	777.77	.	AC=1;AF=0.500;AN=2;BaseQRankSum=1.94;ClippingRankSum=-5.070e-01;DP=67;FS=0.000;GQ_MEAN=806.00;MLEAC=1;MLEAF=0.500;MQ=51.26;MQ0=0;MQRankSum=-4.852e+00;NCC=0;QD=6.94;ReadPosRankSum=0.209;SOR=0.730	GT:AD:DP:GQ:PL	0/1:26,22:48:99:806,0,981
+1	949608	rs1921	G	A	1741.77	.	AC=1;AF=0.500;AN=2;BaseQRankSum=-6.267e+00;ClippingRankSum=-4.930e-01;DB;DP=131;FS=3.479;GQ_MEAN=1770.00;MLEAC=1;MLEAF=0.500;MQ=58.32;MQ0=0;MQRankSum=-1.115e+00;NCC=0;QD=13.50;ReadPosRankSum=0.884;SOR=1.050	GT:AD:DP:GQ:PL	0/1:67,62:129:99:1770,0,2109
+1	949654	rs8997	A	G	7066.77	.	AC=2;AF=1.00;AN=2;DB;DP=201;FS=0.000;GQ_MEAN=596.00;MLEAC=2;MLEAF=1.00;MQ=59.03;MQ0=0;NCC=0;QD=29.00;SOR=1.863	GT:AD:DP:GQ:PL	1/1:0,198:198:99:7095,596,0
+1	977330	rs2799066	T	C	1397.77	.	AC=1;AF=0.500;AN=2;BaseQRankSum=5.53;ClippingRankSum=0.116;DB;DP=128;FS=8.556;GQ_MEAN=1426.00;MLEAC=1;MLEAF=0.500;MQ=59.23;MQ0=0;MQRankSum=1.03;NCC=0;QD=11.75;ReadPosRankSum=2.08;SOR=1.516	GT:AD:DP:GQ:PL	0/1:69,50:119:99:1426,0,1861
+1	977570	rs2710876	G	A	251.77	.	AC=1;AF=0.500;AN=2;BaseQRankSum=-1.002e+00;ClippingRankSum=-7.660e-01;DB;DP=15;FS=0.000;GQ_MEAN=174.00;MLEAC=1;MLEAF=0.500;MQ=60.00;MQ0=0;MQRankSum=0.059;NCC=0;QD=16.78;ReadPosRankSum=-1.355e+00;SOR=1.112	GT:AD:DP:GQ:PL	0/1:6,9:15:99:280,0,174
+1	978603	rs138543546	CCT	C	1281.77	.	AC=1;AF=0.500;AN=2;BaseQRankSum=-1.863e+00;ClippingRankSum=0.545;DB;DP=65;FS=0.000;GQ_MEAN=1253.00;MLEAC=1;MLEAF=0.500;MQ=58.98;MQ0=0;MQRankSum=-1.083e+00;NCC=0;QD=20.03;ReadPosRankSum=-2.830e-01;SOR=0.263	GT:AD:DP:GQ:PL	0/1:30,34:64:99:1310,0,1253
+1	981087	rs3128098	A	G	712.77	.	AC=1;AF=0.500;AN=2;BaseQRankSum=0.874;ClippingRankSum=-2.870e-01;DB;DP=69;FS=3.654;GQ_MEAN=741.00;MLEAC=1;MLEAF=0.500;MQ=59.39;MQ0=0;MQRankSum=0.336;NCC=0;QD=10.33;ReadPosRankSum=-1.770e-01;SOR=1.296	GT:AD:DP:GQ:PL	0/1:41,28:69:99:741,0,1074
diff --git a/testdata/picard/vcf/mini.dbsnp.vcf b/testdata/picard/vcf/mini.dbsnp.vcf
new file mode 100755
index 0000000..20fc3eb
--- /dev/null
+++ b/testdata/picard/vcf/mini.dbsnp.vcf
@@ -0,0 +1,639 @@
+##fileformat=VCFv4.1
+##ApplyRecalibration="analysis_type=ApplyRecalibration input_file=[] read_buffer_size=null phone_home=STANDARD gatk_key=null tag=NA read_filter=[] intervals=[/seq/tng/mccowan/VARIANT_CALLING_FAUXCELL/v1/VARIANT_CALLING_FAUXCELL.padded.interval_list] excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/seq/references/Homo_sapiens_assembly19/v1/Homo_sapiens_assembly19.fasta nonDeterministicRandomSeed=false disableRandomization=false maxR [...]
+##FILTER=<ID=Indel_FS,Description="FS>200.0">
+##FILTER=<ID=Indel_InbreedingCoeff,Description="InbreedingCoeff<-0.8">
+##FILTER=<ID=Indel_QD,Description="QD<2.0">
+##FILTER=<ID=Indel_ReadPosRankSum,Description="ReadPosRankSum<-20.0">
+##FILTER=<ID=LowQual,Description="Low quality">
+##FILTER=<ID=VQSRTrancheSNP98.50to98.60,Description="Truth sensitivity tranche level for SNP model at VQS Lod: 0.6803 <= x < 0.8195">
+##FILTER=<ID=VQSRTrancheSNP98.60to98.80,Description="Truth sensitivity tranche level for SNP model at VQS Lod: 0.391 <= x < 0.6803">
+##FILTER=<ID=VQSRTrancheSNP98.80to98.90,Description="Truth sensitivity tranche level for SNP model at VQS Lod: 0.2076 <= x < 0.391">
+##FILTER=<ID=VQSRTrancheSNP98.90to99.00,Description="Truth sensitivity tranche level for SNP model at VQS Lod: 0.0125 <= x < 0.2076">
+##FILTER=<ID=VQSRTrancheSNP99.00to99.30,Description="Truth sensitivity tranche level for SNP model at VQS Lod: -0.92 <= x < 0.0125">
+##FILTER=<ID=VQSRTrancheSNP99.30to99.50,Description="Truth sensitivity tranche level for SNP model at VQS Lod: -2.0012 <= x < -0.92">
+##FILTER=<ID=VQSRTrancheSNP99.50to99.90,Description="Truth sensitivity tranche level for SNP model at VQS Lod: -47.4391 <= x < -2.0012">
+##FILTER=<ID=VQSRTrancheSNP99.90to100.00+,Description="Truth sensitivity tranche level for SNP model at VQS Lod < -3283.311">
+##FILTER=<ID=VQSRTrancheSNP99.90to100.00,Description="Truth sensitivity tranche level for SNP model at VQS Lod: -3283.311 <= x < -47.4391">
+##FORMAT=<ID=AD,Number=.,Type=Integer,Description="Allelic depths for the ref and alt alleles in the order listed">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth (reads with MQ=255 or with bad mates are filtered)">
+##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##FORMAT=<ID=PL,Number=G,Type=Integer,Description="Normalized, Phred-scaled likelihoods for genotypes as defined in the VCF specification">
+##INFO=<ID=AC,Number=A,Type=Integer,Description="Allele count in genotypes, for each ALT allele, in the same order as listed">
+##INFO=<ID=AF,Number=A,Type=Float,Description="Allele Frequency, for each ALT allele, in the same order as listed">
+##INFO=<ID=AN,Number=1,Type=Integer,Description="Total number of alleles in called genotypes">
+##INFO=<ID=BaseQRankSum,Number=1,Type=Float,Description="Z-score from Wilcoxon rank sum test of Alt Vs. Ref base qualities">
+##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP Membership">
+##INFO=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth; some reads may have been filtered">
+##INFO=<ID=DS,Number=0,Type=Flag,Description="Were any of the samples downsampled?">
+##INFO=<ID=Dels,Number=1,Type=Float,Description="Fraction of Reads Containing Spanning Deletions">
+##INFO=<ID=END,Number=1,Type=Integer,Description="Stop position of the interval">
+##INFO=<ID=FS,Number=1,Type=Float,Description="Phred-scaled p-value using Fisher's exact test to detect strand bias">
+##INFO=<ID=HaplotypeScore,Number=1,Type=Float,Description="Consistency of the site with at most two segregating haplotypes">
+##INFO=<ID=InbreedingCoeff,Number=1,Type=Float,Description="Inbreeding coefficient as estimated from the genotype likelihoods per-sample when compared against the Hardy-Weinberg expectation">
+##INFO=<ID=MLEAC,Number=A,Type=Integer,Description="Maximum likelihood expectation (MLE) for the allele counts (not necessarily the same as the AC), for each ALT allele, in the same order as listed">
+##INFO=<ID=MLEAF,Number=A,Type=Float,Description="Maximum likelihood expectation (MLE) for the allele frequency (not necessarily the same as the AF), for each ALT allele, in the same order as listed">
+##INFO=<ID=MQ,Number=1,Type=Float,Description="RMS Mapping Quality">
+##INFO=<ID=MQ0,Number=1,Type=Integer,Description="Total Mapping Quality Zero Reads">
+##INFO=<ID=MQRankSum,Number=1,Type=Float,Description="Z-score From Wilcoxon rank sum test of Alt vs. Ref read mapping qualities">
+##INFO=<ID=QD,Number=1,Type=Float,Description="Variant Confidence/Quality by Depth">
+##INFO=<ID=RPA,Number=.,Type=Integer,Description="Number of times tandem repeat unit is repeated, for each allele (including reference)">
+##INFO=<ID=RU,Number=1,Type=String,Description="Tandem repeat unit (bases)">
+##INFO=<ID=ReadPosRankSum,Number=1,Type=Float,Description="Z-score from Wilcoxon rank sum test of Alt vs. Ref read position bias">
+##INFO=<ID=SNPEFF_AMINO_ACID_CHANGE,Number=1,Type=String,Description="Old/New amino acid for the highest-impact effect resulting from the current variant (in HGVS style)">
+##INFO=<ID=SNPEFF_CODON_CHANGE,Number=1,Type=String,Description="Old/New codon for the highest-impact effect resulting from the current variant">
+##INFO=<ID=SNPEFF_EFFECT,Number=1,Type=String,Description="The highest-impact effect resulting from the current variant (or one of the highest-impact effects, if there is a tie)">
+##INFO=<ID=SNPEFF_EXON_ID,Number=1,Type=String,Description="Exon ID for the highest-impact effect resulting from the current variant">
+##INFO=<ID=SNPEFF_FUNCTIONAL_CLASS,Number=1,Type=String,Description="Functional class of the highest-impact effect resulting from the current variant: [NONE, SILENT, MISSENSE, NONSENSE]">
+##INFO=<ID=SNPEFF_GENE_BIOTYPE,Number=1,Type=String,Description="Gene biotype for the highest-impact effect resulting from the current variant">
+##INFO=<ID=SNPEFF_GENE_NAME,Number=1,Type=String,Description="Gene name for the highest-impact effect resulting from the current variant">
+##INFO=<ID=SNPEFF_IMPACT,Number=1,Type=String,Description="Impact of the highest-impact effect resulting from the current variant [MODIFIER, LOW, MODERATE, HIGH]">
+##INFO=<ID=SNPEFF_TRANSCRIPT_ID,Number=1,Type=String,Description="Transcript ID for the highest-impact effect resulting from the current variant">
+##INFO=<ID=STR,Number=0,Type=Flag,Description="Variant is a short tandem repeat">
+##INFO=<ID=VQSLOD,Number=1,Type=Float,Description="Log odds ratio of being a true variant versus being false under the trained gaussian mixture model">
+##INFO=<ID=culprit,Number=1,Type=String,Description="The annotation which was the worst performing in the Gaussian mixture model, likely the reason why the variant was filtered out">
+##OriginalSnpEffCmd="SnpEff eff -v -onlyCoding true -c /seq/references/Homo_sapiens_assembly19/v1/snpEff/Homo_sapiens_assembly19.snpEff.config -i vcf -o vcf GRCh37.64 /seq/tng/mccowan/VARIANT_CALLING_FAUXCELL/v1/VARIANT_CALLING_FAUXCELL.unannotated.vcf "
+##OriginalSnpEffVersion="2.0.5 (build 2011-12-24), by Pablo Cingolani"
+##UnifiedGenotyper="analysis_type=UnifiedGenotyper input_file=[/seq/tng/mccowan/VARIANT_CALLING_FAUXCELL/v1/VARIANT_CALLING_FAUXCELL.bam.list] read_buffer_size=null phone_home=STANDARD gatk_key=null tag=NA read_filter=[] intervals=[/seq/tng/mccowan/VARIANT_CALLING_FAUXCELL/v1/scatter/temp_0001_of_50/scattered.intervals] excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/seq/references/Homo_sapiens_assembly19/v1/Homo_sapiens_assembly1 [...]
+##VariantAnnotator="analysis_type=VariantAnnotator input_file=[] read_buffer_size=null phone_home=STANDARD gatk_key=null tag=NA read_filter=[] intervals=[/seq/references/HybSelOligos/whole_exome_agilent_1.1_refseq_plus_3_boosters/whole_exome_agilent_1.1_refseq_plus_3_boosters.Homo_sapiens_assembly19.targets.interval_list] excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=50 reference_sequence=/seq/references/Homo_sapiens_assembly19/v1/Homo_sapiens_assemb [...]
+##VariantFiltration="analysis_type=VariantFiltration input_file=[] read_buffer_size=null phone_home=STANDARD gatk_key=null tag=NA read_filter=[] intervals=[/seq/tng/mccowan/VARIANT_CALLING_FAUXCELL/v1/VARIANT_CALLING_FAUXCELL.padded.interval_list] excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/seq/references/Homo_sapiens_assembly19/v1/Homo_sapiens_assembly19.fasta nonDeterministicRandomSeed=false disableRandomization=false maxRun [...]
+##contig=<ID=1,length=249250621>
+##contig=<ID=2,length=243199373>
+##contig=<ID=3,length=198022430>
+##contig=<ID=4,length=191154276>
+##contig=<ID=5,length=180915260>
+##contig=<ID=6,length=171115067>
+##contig=<ID=7,length=159138663>
+##contig=<ID=8,length=146364022>
+##contig=<ID=9,length=141213431>
+##contig=<ID=10,length=135534747>
+##contig=<ID=11,length=135006516>
+##contig=<ID=12,length=133851895>
+##contig=<ID=13,length=115169878>
+##contig=<ID=14,length=107349540>
+##contig=<ID=15,length=102531392>
+##contig=<ID=16,length=90354753>
+##contig=<ID=17,length=81195210>
+##contig=<ID=18,length=78077248>
+##contig=<ID=19,length=59128983>
+##contig=<ID=20,length=63025520>
+##contig=<ID=21,length=48129895>
+##contig=<ID=22,length=51304566>
+##contig=<ID=X,length=155270560>
+##contig=<ID=Y,length=59373566>
+##contig=<ID=MT,length=16569>
+##contig=<ID=GL000207.1,length=4262>
+##contig=<ID=GL000226.1,length=15008>
+##contig=<ID=GL000229.1,length=19913>
+##contig=<ID=GL000231.1,length=27386>
+##contig=<ID=GL000210.1,length=27682>
+##contig=<ID=GL000239.1,length=33824>
+##contig=<ID=GL000235.1,length=34474>
+##contig=<ID=GL000201.1,length=36148>
+##contig=<ID=GL000247.1,length=36422>
+##contig=<ID=GL000245.1,length=36651>
+##contig=<ID=GL000197.1,length=37175>
+##contig=<ID=GL000203.1,length=37498>
+##contig=<ID=GL000246.1,length=38154>
+##contig=<ID=GL000249.1,length=38502>
+##contig=<ID=GL000196.1,length=38914>
+##contig=<ID=GL000248.1,length=39786>
+##contig=<ID=GL000244.1,length=39929>
+##contig=<ID=GL000238.1,length=39939>
+##contig=<ID=GL000202.1,length=40103>
+##contig=<ID=GL000234.1,length=40531>
+##contig=<ID=GL000232.1,length=40652>
+##contig=<ID=GL000206.1,length=41001>
+##contig=<ID=GL000240.1,length=41933>
+##contig=<ID=GL000236.1,length=41934>
+##contig=<ID=GL000241.1,length=42152>
+##contig=<ID=GL000243.1,length=43341>
+##contig=<ID=GL000242.1,length=43523>
+##contig=<ID=GL000230.1,length=43691>
+##contig=<ID=GL000237.1,length=45867>
+##contig=<ID=GL000233.1,length=45941>
+##contig=<ID=GL000204.1,length=81310>
+##contig=<ID=GL000198.1,length=90085>
+##contig=<ID=GL000208.1,length=92689>
+##contig=<ID=GL000191.1,length=106433>
+##contig=<ID=GL000227.1,length=128374>
+##contig=<ID=GL000228.1,length=129120>
+##contig=<ID=GL000214.1,length=137718>
+##contig=<ID=GL000221.1,length=155397>
+##contig=<ID=GL000209.1,length=159169>
+##contig=<ID=GL000218.1,length=161147>
+##contig=<ID=GL000220.1,length=161802>
+##contig=<ID=GL000213.1,length=164239>
+##contig=<ID=GL000211.1,length=166566>
+##contig=<ID=GL000199.1,length=169874>
+##contig=<ID=GL000217.1,length=172149>
+##contig=<ID=GL000216.1,length=172294>
+##contig=<ID=GL000215.1,length=172545>
+##contig=<ID=GL000205.1,length=174588>
+##contig=<ID=GL000219.1,length=179198>
+##contig=<ID=GL000224.1,length=179693>
+##contig=<ID=GL000223.1,length=180455>
+##contig=<ID=GL000195.1,length=182896>
+##contig=<ID=GL000212.1,length=186858>
+##contig=<ID=GL000222.1,length=186861>
+##contig=<ID=GL000200.1,length=187035>
+##contig=<ID=GL000193.1,length=189789>
+##contig=<ID=GL000194.1,length=191469>
+##contig=<ID=GL000225.1,length=211173>
+##contig=<ID=GL000192.1,length=547496>
+##contig=<ID=NC_007605,length=171823>
+##reference=file:///seq/references/Homo_sapiens_assembly19/v1/Homo_sapiens_assembly19.fasta
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	HG00116	HG00123	HG00158	HG00160	HG00265	HG00311	HG00371	HG00380	HG00404	HG00551	HG00610	HG00628	HG00635	HG01048	HG01079	HG01094	HG01247	HG01256	HG01260	HG01461	HG01488	NA06989	NA11918	NA11919	NA12341	NA18510	NA18520	NA18522	NA18574	NA18634	NA18867	NA18960	NA18986	NA19004	NA19067	NA19092	NA19102	NA19474	NA19675	NA19703	NA19711	NA19725	NA19819	NA19908	NA19920	NA20787	NA20798	NA20801	NA20803	NA20805
+1	877831	rs6672356	T	C	3102.44	PASS	AC=68;AF=1.00;AN=68;DB;DP=94;Dels=0.00;FS=0.000;HaplotypeScore=0.0284;InbreedingCoeff=-0.1003;MLEAC=68;MLEAF=1.00;MQ=58.69;MQ0=0;QD=33.00;SNPEFF_AMINO_ACID_CHANGE=W343R;SNPEFF_CODON_CHANGE=Tgg/Cgg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_877790_877868;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SAMD11;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCRIPT_ID=ENST00000342066;VQSLOD=1.94;culprit=MQ	GT:AD:DP:GQ: [...]
+1	878296	rs72902601	C	G	55.37	PASS	AC=1;AF=0.010;AN=98;BaseQRankSum=-0.120;DB;DP=230;Dels=0.00;FS=2.395;HaplotypeScore=0.1272;InbreedingCoeff=-0.0578;MLEAC=1;MLEAF=0.010;MQ=58.94;MQ0=1;MQRankSum=0.978;QD=13.84;ReadPosRankSum=0.647;SNPEFF_AMINO_ACID_CHANGE=P474;SNPEFF_CODON_CHANGE=ccC/ccG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_877939_878438;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SAMD11;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST00 [...]
+1	878314	rs142558220	G	C	186.97	PASS	AC=4;AF=0.042;AN=96;BaseQRankSum=1.858;DB;DP=216;Dels=0.00;FS=17.207;HaplotypeScore=0.2218;InbreedingCoeff=-0.0963;MLEAC=4;MLEAF=0.042;MQ=58.83;MQ0=1;MQRankSum=1.218;QD=10.39;ReadPosRankSum=-0.676;SNPEFF_AMINO_ACID_CHANGE=G480;SNPEFF_CODON_CHANGE=ggG/ggC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_877939_878438;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SAMD11;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENS [...]
+1	878325	rs114478480	C	T	83.06	PASS	AC=3;AF=0.031;AN=96;BaseQRankSum=-1.893;DB;DP=231;Dels=0.00;FS=4.104;HaplotypeScore=0.1668;InbreedingCoeff=-0.0829;MLEAC=3;MLEAF=0.031;MQ=58.89;MQ0=1;MQRankSum=-0.574;QD=4.15;ReadPosRankSum=-0.163;SNPEFF_AMINO_ACID_CHANGE=P484L;SNPEFF_CODON_CHANGE=cCc/cTc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_877939_878438;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SAMD11;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSC [...]
+1	878474	rs183873661	C	T	121.32	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.830;DB;DP=748;Dels=0.00;FS=1.693;HaplotypeScore=0.3639;InbreedingCoeff=-0.0159;MLEAC=1;MLEAF=0.010;MQ=58.79;MQ0=0;MQRankSum=0.174;QD=7.58;ReadPosRankSum=-0.713;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000327044;VQSLOD=5.77;culprit=MQ	GT:AD:DP:GQ:PL	0/0:18,0:18:54:0,54,635	0/0:20,0:20:57:0,5 [...]
+1	878744	rs138897766	G	C	89.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=0.438;DB;DP=2067;Dels=0.00;FS=3.836;HaplotypeScore=0.4141;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.03;MQ0=0;MQRankSum=-0.098;QD=4.05;ReadPosRankSum=-0.621;SNPEFF_AMINO_ACID_CHANGE=G559A;SNPEFF_CODON_CHANGE=gGa/gCa;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_878633_878757;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SAMD11;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANS [...]
+1	878745	rs72902602	A	C	100.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.454;DB;DP=1926;Dels=0.00;FS=3.888;HaplotypeScore=0.4593;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.01;MQ0=0;MQRankSum=0.858;QD=7.16;ReadPosRankSum=-0.443;SNPEFF_AMINO_ACID_CHANGE=G559;SNPEFF_CODON_CHANGE=ggA/ggC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_878633_878757;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SAMD11;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENS [...]
+1	878784	rs142929357	C	G	270.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=2.915;DB;DP=1593;Dels=0.00;FS=1.545;HaplotypeScore=0.2502;InbreedingCoeff=-0.0102;MLEAC=1;MLEAF=0.010;MQ=58.73;MQ0=0;MQRankSum=0.339;QD=10.01;ReadPosRankSum=-2.756;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000327044;VQSLOD=6.04;culprit=MQ	GT:AD:DP:GQ:PL	0/0:16,0:16:48:0,48,520	0/0:48,0:48:99:0, [...]
+1	879276	rs115454328	A	G	151.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.178;DB;DP=2740;Dels=0.00;FS=3.247;HaplotypeScore=0.1855;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.08;MQ0=0;MQRankSum=0.941;QD=6.30;ReadPosRankSum=-1.171;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000327044;VQSLOD=6.84;culprit=QD	GT:AD:DP:GQ:PL	0/0:44,0:44:99:0,132,1543	0/0:60,0:60:99: [...]
+1	879317	rs7523549	C	T	4951.54	PASS	AC=8;AF=0.080;AN=100;BaseQRankSum=-1.693;DB;DP=1892;Dels=0.00;FS=1.332;HaplotypeScore=0.2180;InbreedingCoeff=0.1848;MLEAC=8;MLEAF=0.080;MQ=58.70;MQ0=0;MQRankSum=0.898;QD=16.78;ReadPosRankSum=-3.262;SNPEFF_AMINO_ACID_CHANGE=Y610;SNPEFF_CODON_CHANGE=taC/taT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_879288_879955;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SAMD11;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENS [...]
+1	879481	rs113383096	G	C	504.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-4.767;DB;DP=3723;Dels=0.00;FS=2.965;HaplotypeScore=1.1122;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.21;MQ0=0;MQRankSum=0.926;QD=11.46;ReadPosRankSum=-2.192;SNPEFF_AMINO_ACID_CHANGE=G665A;SNPEFF_CODON_CHANGE=gGg/gCg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_879288_879955;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SAMD11;SNPEFF_IMPACT=MODERATE;SNPEFF_TRA [...]
+1	879482	rs149880798	G	C	718.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=3.504;DB;DP=3666;Dels=0.00;FS=0.000;HaplotypeScore=1.0927;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.21;MQ0=0;MQRankSum=2.840;QD=10.88;ReadPosRankSum=-2.568;SNPEFF_AMINO_ACID_CHANGE=G665;SNPEFF_CODON_CHANGE=ggG/ggC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_879288_879955;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SAMD11;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=EN [...]
+1	879576	rs115979567	C	T	185.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.148;DB;DP=1276;Dels=0.00;FS=1.725;HaplotypeScore=0.7692;InbreedingCoeff=-0.0102;MLEAC=1;MLEAF=0.010;MQ=58.90;MQ0=0;MQRankSum=1.288;QD=9.26;ReadPosRankSum=1.063;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000327044;VQSLOD=6.38;culprit=MQ	GT:AD:DP:GQ:PL	0/0:23,0:23:69:0,69,851	0/0:34,0:34:84:0,8 [...]
+1	880390	rs3748593	C	A	4237.18	PASS	AC=7;AF=0.070;AN=100;BaseQRankSum=-10.508;DB;DP=2405;Dels=0.00;FS=0.416;HaplotypeScore=0.2833;InbreedingCoeff=0.2319;MLEAC=7;MLEAF=0.070;MQ=59.37;MQ0=0;MQRankSum=0.217;QD=14.46;ReadPosRankSum=-0.126;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000496938;VQSLOD=6.83;culprit=FS	GT:AD:DP:GQ:PL	0/0:44,0:44:99:0,132,1590	0/0:33,0:33:99: [...]
+1	881602	rs148962722	C	T	978.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.505;DB;DP=2402;Dels=0.00;FS=0.603;HaplotypeScore=0.5423;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=58.26;MQ0=1;MQRankSum=1.118;QD=13.04;ReadPosRankSum=-1.738;SNPEFF_AMINO_ACID_CHANGE=R623H;SNPEFF_CODON_CHANGE=cGc/cAc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_881553_881666;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=MODERATE;SNPEF [...]
+1	881627	rs2272757	G	A	23520.38	PASS	AC=51;AF=0.510;AN=100;BaseQRankSum=-4.753;DB;DP=1519;Dels=0.00;FS=5.729;HaplotypeScore=0.7095;InbreedingCoeff=0.3997;MLEAC=51;MLEAF=0.510;MQ=58.10;MQ0=1;MQRankSum=0.712;QD=25.93;ReadPosRankSum=0.192;SNPEFF_AMINO_ACID_CHANGE=L615;SNPEFF_CODON_CHANGE=Ctg/Ttg;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_881553_881666;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT [...]
+1	881687	.	AG	A	2168.07	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=-2.090;DP=1778;FS=66.380;HaplotypeScore=12.4080;InbreedingCoeff=-0.0309;MLEAC=3;MLEAF=0.030;MQ=58.26;MQ0=0;MQRankSum=3.167;QD=14.26;RPA=3,2;RU=G;ReadPosRankSum=-1.383;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SAMD11;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000342066;STR	GT:AD:DP:GQ:PL	0/0:35,0:35:99:0,105,1424	0/0:23,0:23:69:0,69,706	0/0:26,0:26:78:0,78, [...]
+1	881734	rs74045012	T	C	2215.28	PASS	AC=4;AF=0.040;AN=100;BaseQRankSum=4.677;DB;DP=2256;Dels=0.00;FS=14.813;HaplotypeScore=0.7323;InbreedingCoeff=-0.0417;MLEAC=4;MLEAF=0.040;MQ=57.33;MQ0=0;MQRankSum=2.661;QD=12.38;ReadPosRankSum=-5.774;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SAMD11;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000342066;VQSLOD=3.56;culprit=FS	GT:AD:DP:GQ:PL	0/0:45,0:45:99:0,135,1586	0/0:36,0:36:99:0,10 [...]
+1	881740	.	G	T	412.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-5.131;DP=2368;Dels=0.00;FS=7.786;HaplotypeScore=0.8197;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=57.22;MQ0=0;MQRankSum=1.662;QD=15.27;ReadPosRankSum=1.950;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SAMD11;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000342066;VQSLOD=2.84;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:50,0:50:99:0,150,1890	0/0:38,0:38:99:0,114, [...]
+1	881876	.	A	C	50.32	VQSRTrancheSNP99.50to99.90	AC=2;AF=0.020;AN=100;BaseQRankSum=-7.198;DP=1572;Dels=0.00;FS=120.673;HaplotypeScore=0.2562;InbreedingCoeff=-0.0218;MLEAC=2;MLEAF=0.020;MQ=49.50;MQ0=10;MQRankSum=-0.486;QD=1.26;ReadPosRankSum=-5.281;SNPEFF_AMINO_ACID_CHANGE=V570G;SNPEFF_CODON_CHANGE=gTg/gGg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_881782_881925;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=MOD [...]
+1	897738	rs6696971	C	T	6080.89	PASS	AC=10;AF=0.100;AN=100;BaseQRankSum=-12.884;DB;DP=2318;Dels=0.00;FS=0.000;HaplotypeScore=2.7649;InbreedingCoeff=-0.1111;MLEAC=10;MLEAF=0.100;MQ=59.36;MQ0=0;MQRankSum=0.982;QD=12.67;ReadPosRankSum=-1.164;SNPEFF_AMINO_ACID_CHANGE=L115;SNPEFF_CODON_CHANGE=Ctg/Ttg;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_897735_897851;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID [...]
+1	897879	rs79008338	C	T	1384.64	PASS	AC=6;AF=0.060;AN=100;BaseQRankSum=-9.582;DB;DP=976;Dels=0.00;FS=14.068;HaplotypeScore=0.4332;InbreedingCoeff=-0.0665;MLEAC=6;MLEAF=0.060;MQ=59.14;MQ0=0;MQRankSum=0.349;QD=10.18;ReadPosRankSum=-3.450;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000463212;VQSLOD=5.27;culprit=FS	GT:AD:DP:GQ:PL	0/0:16,0:16:42:0,42,516	0/0:13,0:13:39:0,39,4 [...]
+1	898119	rs79110607	C	T	1074.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.682;DB;DP=1495;Dels=0.00;FS=0.000;HaplotypeScore=0.4314;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.08;MQ0=0;MQRankSum=1.532;QD=14.32;ReadPosRankSum=-2.202;SNPEFF_AMINO_ACID_CHANGE=R11;SNPEFF_CODON_CHANGE=cgC/cgT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_898084_898297;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=EN [...]
+1	898323	rs6605071	T	C	17653.25	PASS	AC=93;AF=0.930;AN=100;BaseQRankSum=3.580;DB;DP=505;Dels=0.00;FS=1.868;HaplotypeScore=0.4755;InbreedingCoeff=0.1259;MLEAC=94;MLEAF=0.940;MQ=58.73;MQ0=0;MQRankSum=1.621;QD=35.17;ReadPosRankSum=1.496;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000463212;VQSLOD=3.83;culprit=MQ	GT:AD:DP:GQ:PL	0/1:2,5:7:49:148,0,49	1/1:0,12:12:36:453,36,0	1 [...]
+1	898466	rs191140912	C	T	171.28	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.481;DB;DP=687;Dels=0.00;FS=0.000;HaplotypeScore=0.3867;InbreedingCoeff=-0.0155;MLEAC=1;MLEAF=0.010;MQ=59.27;MQ0=0;MQRankSum=0.400;QD=10.08;ReadPosRankSum=0.449;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000463212;VQSLOD=7.92;culprit=FS	GT:AD:DP:GQ:PL	0/0:11,0:11:33:0,33,421	0/0:7,0:7:21:0,21,248	0 [...]
+1	898467	rs41285808	C	T	569.47	PASS	AC=6;AF=0.060;AN=100;BaseQRankSum=-0.569;DB;DP=696;Dels=0.00;FS=7.160;HaplotypeScore=0.3633;InbreedingCoeff=0.2490;MLEAC=5;MLEAF=0.050;MQ=59.21;MQ0=0;MQRankSum=1.587;QD=11.86;ReadPosRankSum=0.640;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000463212;VQSLOD=5.29;culprit=MQRankSum	GT:AD:DP:GQ:PL	0/1:5,6:11:99:197,0,147	0/0:8,0:8:24:0,24, [...]
+1	898603	.	C	G	273.63	VQSRTrancheSNP99.50to99.90	AC=22;AF=0.220;AN=100;BaseQRankSum=-9.185;DP=665;Dels=0.00;FS=221.601;HaplotypeScore=1.0766;InbreedingCoeff=-0.2547;MLEAC=18;MLEAF=0.180;MQ=57.61;MQ0=0;MQRankSum=0.626;QD=1.13;ReadPosRankSum=-9.808;SNPEFF_AMINO_ACID_CHANGE=A109G;SNPEFF_CODON_CHANGE=gCg/gGg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_898489_898633;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=MODERATE [...]
+1	898606	.	T	G	49.47	VQSRTrancheSNP99.50to99.90	AC=7;AF=0.070;AN=100;BaseQRankSum=-8.782;DP=638;Dels=0.00;FS=101.186;HaplotypeScore=1.2273;InbreedingCoeff=-0.0936;MLEAC=5;MLEAF=0.050;MQ=58.28;MQ0=0;MQRankSum=0.112;QD=0.85;ReadPosRankSum=-9.334;SNPEFF_AMINO_ACID_CHANGE=V110G;SNPEFF_CODON_CHANGE=gTg/gGg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_898489_898633;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=MODERATE;SN [...]
+1	898613	rs61746776	C	T	95.25	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.379;DB;DP=656;Dels=0.00;FS=4.282;HaplotypeScore=0.7603;InbreedingCoeff=-0.0146;MLEAC=1;MLEAF=0.010;MQ=58.90;MQ0=0;MQRankSum=0.494;QD=10.58;ReadPosRankSum=-1.113;SNPEFF_AMINO_ACID_CHANGE=N112;SNPEFF_CODON_CHANGE=aaC/aaT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_898489_898633;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST [...]
+1	898852	rs117269332	C	T	611.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=2.664;DB;DP=1798;Dels=0.00;FS=5.676;HaplotypeScore=0.1257;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=59.28;MQ0=0;MQRankSum=3.408;QD=14.22;ReadPosRankSum=-3.839;SNPEFF_AMINO_ACID_CHANGE=A164;SNPEFF_CODON_CHANGE=gcC/gcT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_898717_898884;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=EN [...]
+1	898914	rs114880602	G	C	317.21	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=0.904;DB;DP=1250;Dels=0.00;FS=1.574;HaplotypeScore=0.2733;InbreedingCoeff=-0.0113;MLEAC=1;MLEAF=0.010;MQ=58.75;MQ0=0;MQRankSum=1.664;QD=13.22;ReadPosRankSum=-0.195;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000463212;VQSLOD=6.42;culprit=MQ	GT:AD:DP:GQ:PL	0/0:20,0:20:60:0,60,723	0/0:23,0:23:69:0,69,85 [...]
+1	899928	rs6677386	G	C	1232.27	VQSRTrancheSNP98.80to98.90	AC=57;AF=0.838;AN=68;BaseQRankSum=-1.435;DB;DP=68;Dels=0.00;FS=0.000;HaplotypeScore=0.2032;InbreedingCoeff=0.2608;MLEAC=50;MLEAF=0.735;MQ=43.71;MQ0=0;MQRankSum=-2.804;QD=22.00;ReadPosRankSum=1.097;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000463212;VQSLOD=0.210;culprit=MQ	GT:AD:DP:GQ:PL	./.	1/1:0,1:1:3:33,3,0	1/ [...]
+1	899937	rs143296006	G	T	918.93	VQSRTrancheSNP98.90to99.00	AC=47;AF=0.758;AN=62;BaseQRankSum=-1.521;DB;DP=47;Dels=0.00;FS=0.000;HaplotypeScore=0.3418;InbreedingCoeff=0.3113;MLEAC=47;MLEAF=0.758;MQ=46.89;MQ0=0;MQRankSum=-2.129;QD=27.03;ReadPosRankSum=3.477;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000463212;VQSLOD=0.203;culprit=MQ	GT:AD:DP:GQ:PL	0/0:1,0:1:3:0,3,27	1/1:0 [...]
+1	899938	rs147467971	G	C	994.56	VQSRTrancheSNP98.90to99.00	AC=47;AF=0.758;AN=62;BaseQRankSum=0.617;DB;DP=48;Dels=0.00;FS=0.000;HaplotypeScore=0.2794;InbreedingCoeff=0.3163;MLEAC=47;MLEAF=0.758;MQ=46.89;MQ0=0;MQRankSum=-2.109;QD=28.42;ReadPosRankSum=3.344;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000463212;VQSLOD=0.175;culprit=MQ	GT:AD:DP:GQ:PL	0/0:1,0:1:3:0,3,36	1/1:0, [...]
+1	899942	rs71509448	G	A	1074.04	VQSRTrancheSNP98.80to98.90	AC=51;AF=0.773;AN=66;BaseQRankSum=0.939;DB;DP=50;Dels=0.00;FS=0.000;HaplotypeScore=0.2033;InbreedingCoeff=0.1917;MLEAC=50;MLEAF=0.758;MQ=45.23;MQ0=0;MQRankSum=-1.565;QD=27.54;ReadPosRankSum=2.967;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000463212;VQSLOD=0.239;culprit=MQ	GT:AD:DP:GQ:PL	0/0:1,0:1:3:0,3,38	1/1:0, [...]
+1	899949	rs144694530	C	T	175.27	VQSRTrancheSNP98.80to98.90	AC=10;AF=0.152;AN=66;BaseQRankSum=-3.029;DB;DP=54;Dels=0.00;FS=3.117;HaplotypeScore=0.3766;InbreedingCoeff=0.2800;MLEAC=9;MLEAF=0.136;MQ=44.25;MQ0=0;MQRankSum=2.310;QD=21.91;ReadPosRankSum=-2.697;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000463212;VQSLOD=0.291;culprit=MQ	GT:AD:DP:GQ:PL	0/0:1,0:1:3:0,3,40	0/0:3, [...]
+1	899960	.	T	C	52.99	VQSRTrancheSNP98.90to99.00	AC=6;AF=0.111;AN=54;BaseQRankSum=-2.225;DP=41;Dels=0.00;FS=0.000;HaplotypeScore=0.2410;InbreedingCoeff=0.0143;MLEAC=6;MLEAF=0.111;MQ=46.23;MQ0=0;MQRankSum=-1.492;QD=7.57;ReadPosRankSum=-0.514;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000463212;VQSLOD=0.177;culprit=MQ	GT:AD:DP:GQ:PL	0/0:1,0:1:3:0,3,38	0/0:2,0:2:6:0,6,61	0/ [...]
+1	900298	rs71628926	C	G	161.47	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-2.988;DB;DP=513;Dels=0.00;FS=6.422;HaplotypeScore=0.4198;InbreedingCoeff=-0.0287;MLEAC=2;MLEAF=0.020;MQ=57.02;MQ0=0;MQRankSum=0.928;QD=10.76;ReadPosRankSum=0.395;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000463212;VQSLOD=3.32;culprit=MQ	GT:AD:DP:GQ:PL	0/0:14,0:14:39:0,39,478	0/0:19,0:19:54:0,54,693	 [...]
+1	900319	rs80351873	G	A	2325.78	PASS	AC=8;AF=0.080;AN=100;BaseQRankSum=-3.149;DB;DP=743;Dels=0.00;FS=12.818;HaplotypeScore=0.7728;InbreedingCoeff=-0.0900;MLEAC=8;MLEAF=0.080;MQ=57.30;MQ0=0;MQRankSum=1.723;QD=14.36;ReadPosRankSum=-0.558;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000463212;VQSLOD=4.11;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:20,0:20:57:0,57,693	0/0:25,0: [...]
+1	900397	rs111560052	C	T	1077.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-4.621;DB;DP=2133;Dels=0.00;FS=6.242;HaplotypeScore=0.3667;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=58.38;MQ0=0;MQRankSum=1.853;QD=11.71;ReadPosRankSum=-2.552;SNPEFF_AMINO_ACID_CHANGE=N461;SNPEFF_CODON_CHANGE=aaC/aaT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_900343_901094;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID= [...]
+1	900427	rs115741058	G	A	1296.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-6.326;DB;DP=3246;Dels=0.00;FS=9.839;HaplotypeScore=0.4884;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=58.46;MQ0=0;MQRankSum=2.823;QD=11.78;ReadPosRankSum=-0.507;SNPEFF_AMINO_ACID_CHANGE=E471;SNPEFF_CODON_CHANGE=gaG/gaA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_900343_901094;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID= [...]
+1	900505	rs28705211	G	C	5409.04	PASS	AC=12;AF=0.120;AN=100;BaseQRankSum=1.477;DB;DP=1746;Dels=0.00;FS=0.000;HaplotypeScore=1.7312;InbreedingCoeff=0.2424;MLEAC=12;MLEAF=0.120;MQ=58.93;MQ0=0;MQRankSum=-1.383;QD=16.90;ReadPosRankSum=-2.250;SNPEFF_AMINO_ACID_CHANGE=V497;SNPEFF_CODON_CHANGE=gtG/gtC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_900343_901094;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID= [...]
+1	900557	.	T	C	450	VQSRTrancheSNP99.50to99.90	AC=18;AF=0.180;AN=100;BaseQRankSum=-10.340;DP=795;Dels=0.00;FS=174.326;HaplotypeScore=0.8661;InbreedingCoeff=-0.2301;MLEAC=17;MLEAF=0.170;MQ=57.67;MQ0=0;MQRankSum=-1.081;QD=1.81;ReadPosRankSum=0.678;SNPEFF_AMINO_ACID_CHANGE=S515P;SNPEFF_CODON_CHANGE=Tcc/Ccc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_900343_901094;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=MODERATE;S [...]
+1	900560	rs188543688	A	C	5889.86	VQSRTrancheSNP99.90to100.00	AC=42;AF=0.420;AN=100;BaseQRankSum=-14.853;DB;DP=1195;Dels=0.00;FS=671.452;HaplotypeScore=1.0796;InbreedingCoeff=-0.7377;MLEAC=43;MLEAF=0.430;MQ=57.06;MQ0=0;MQRankSum=-1.062;QD=5.48;ReadPosRankSum=-0.749;SNPEFF_AMINO_ACID_CHANGE=T516P;SNPEFF_CODON_CHANGE=Acc/Ccc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_900343_901094;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPE [...]
+1	901919	.	A	C	75.68	VQSRTrancheSNP99.90to100.00	AC=9;AF=0.090;AN=100;BaseQRankSum=-11.755;DP=823;Dels=0.00;FS=637.319;HaplotypeScore=2.0002;InbreedingCoeff=-0.0995;MLEAC=6;MLEAF=0.060;MQ=59.06;MQ0=1;MQRankSum=-0.634;QD=0.49;ReadPosRankSum=-11.491;SNPEFF_AMINO_ACID_CHANGE=N3T;SNPEFF_CODON_CHANGE=aAc/aCc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_901877_901994;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PLEKHN1;SNPEFF_IMPACT=MODERATE [...]
+1	901922	rs62639980	G	A	492.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.416;DB;DP=1209;Dels=0.00;FS=2.971;HaplotypeScore=2.0709;InbreedingCoeff=-0.0102;MLEAC=1;MLEAF=0.010;MQ=58.99;MQ0=1;MQRankSum=0.498;QD=10.70;ReadPosRankSum=2.443;SNPEFF_AMINO_ACID_CHANGE=S4N;SNPEFF_CODON_CHANGE=aGc/aAc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_901877_901994;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PLEKHN1;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSC [...]
+1	901923	rs149741186	C	A	540.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.870;DB;DP=1246;Dels=0.00;FS=5.234;HaplotypeScore=2.1419;InbreedingCoeff=-0.0102;MLEAC=1;MLEAF=0.010;MQ=58.99;MQ0=1;MQRankSum=0.854;QD=11.49;ReadPosRankSum=2.199;SNPEFF_AMINO_ACID_CHANGE=S4R;SNPEFF_CODON_CHANGE=agC/agA;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_901877_901994;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PLEKHN1;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANS [...]
+1	902024	rs181910588	G	A	177.78	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.925;DB;DP=366;Dels=0.00;FS=0.000;HaplotypeScore=0.4056;InbreedingCoeff=-0.0381;MLEAC=1;MLEAF=0.010;MQ=59.21;MQ0=0;MQRankSum=-0.015;QD=17.78;ReadPosRankSum=-2.279;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000338591;VQSLOD=5.41;culprit=FS	GT:AD:DP:GQ:PL	0/0:8,0:8:24:0,24,303	0/0:9,0:9:27:0,27,332	0 [...]
+1	902025	rs186208904	C	A,T	207.86	PASS	AC=1,2;AF=0.010,0.020;AN=100;BaseQRankSum=2.579;DB;DP=347;Dels=0.00;FS=2.417;HaplotypeScore=0.2858;InbreedingCoeff=0.0268;MLEAC=1,1;MLEAF=0.010,0.010;MQ=59.17;MQ0=0;MQRankSum=0.418;QD=7.99;ReadPosRankSum=-2.442;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000338591;VQSLOD=5.23;culprit=QD	GT:AD:DP:GQ:PL	0/0:7,0,0:7:21:0,21,212,21,212, [...]
+1	909768	rs2340593	A	G	153994.17	PASS	AC=100;AF=1.00;AN=100;DB;DP=4084;Dels=0.00;FS=0.000;HaplotypeScore=0.0000;InbreedingCoeff=-0.0000;MLEAC=100;MLEAF=1.00;MQ=59.89;MQ0=0;QD=37.71;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=C1orf170;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000341290;VQSLOD=4.76;culprit=FS	GT:AD:DP:GQ:PL	1/1:0,96:96:99:3468,289,0	1/1:0,72:72:99:2721,217,0	1/1:0,61:61:99:2256,184,0	1/1:0,84:84:99:3240, [...]
+1	934918	.	C	T	557.31	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.137;DP=635;Dels=0.00;FS=6.666;HaplotypeScore=0.4096;InbreedingCoeff=-0.0167;MLEAC=1;MLEAF=0.010;MQ=59.05;MQ0=0;MQRankSum=-0.319;QD=15.06;ReadPosRankSum=-0.276;SNPEFF_AMINO_ACID_CHANGE=V120M;SNPEFF_CODON_CHANGE=Gtg/Atg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_934906_934993;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=HES4;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCRIPT_ID=ENST [...]
+1	934990	.	A	G	135.42	VQSRTrancheSNP99.50to99.90	AC=10;AF=0.102;AN=98;BaseQRankSum=-9.706;DP=493;Dels=0.00;FS=132.442;HaplotypeScore=0.6505;InbreedingCoeff=-0.1225;MLEAC=8;MLEAF=0.082;MQ=57.58;MQ0=0;MQRankSum=1.060;QD=1.17;ReadPosRankSum=-7.855;SNPEFF_AMINO_ACID_CHANGE=S38P;SNPEFF_CODON_CHANGE=Tcc/Ccc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_934906_934993;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=HES4;SNPEFF_IMPACT=MODERATE;SNPE [...]
+1	935046	rs113602214	G	A	727.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-5.596;DB;DP=1581;Dels=0.00;FS=0.735;HaplotypeScore=0.6869;InbreedingCoeff=-0.0207;MLEAC=2;MLEAF=0.020;MQ=58.78;MQ0=0;MQRankSum=1.713;QD=9.09;ReadPosRankSum=-1.877;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=HES4;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000304952;VQSLOD=6.47;culprit=MQ	GT:AD:DP:GQ:PL	0/0:21,0:21:63:0,63,779	0/0:32,0:32:90:0,90,1127	0/0 [...]
+1	935222	rs2298214	C	A	7220.31	PASS	AC=54;AF=0.563;AN=96;BaseQRankSum=-7.782;DB;DP=433;Dels=0.00;FS=5.377;HaplotypeScore=0.2198;InbreedingCoeff=0.5158;MLEAC=55;MLEAF=0.573;MQ=57.88;MQ0=0;MQRankSum=1.735;QD=26.07;ReadPosRankSum=2.200;SNPEFF_AMINO_ACID_CHANGE=R44S;SNPEFF_CODON_CHANGE=agG/agT;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_935072_935552;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=HES4;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCRIP [...]
+1	948921	rs15842	T	C	66632.77	PASS	AC=87;AF=0.870;AN=100;BaseQRankSum=-1.000;DB;DP=2347;Dels=0.00;FS=19.732;HaplotypeScore=1.2466;InbreedingCoeff=0.0274;MLEAC=87;MLEAF=0.870;MQ=58.47;MQ0=0;MQRankSum=0.438;QD=29.41;ReadPosRankSum=0.831;SNPEFF_EFFECT=UTR_5_PRIME;SNPEFF_EXON_ID=exon_1_948803_948956;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ISG15;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000379389;VQSLOD=3.32;culprit=HaplotypeScore	GT:AD:DP:GQ:P [...]
+1	949422	rs143888043	G	A	791.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-4.530;DB;DP=3475;Dels=0.00;FS=7.578;HaplotypeScore=0.0383;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.48;MQ0=0;MQRankSum=0.333;QD=10.55;ReadPosRankSum=-4.488;SNPEFF_AMINO_ACID_CHANGE=S21N;SNPEFF_CODON_CHANGE=aGc/aAc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_949364_949920;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ISG15;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANS [...]
+1	949608	rs1921	G	A	24069.41	PASS	AC=29;AF=0.290;AN=100;BaseQRankSum=-14.730;DB;DP=3299;Dels=0.00;FS=1.209;HaplotypeScore=0.8114;InbreedingCoeff=0.1744;MLEAC=29;MLEAF=0.290;MQ=59.39;MQ0=0;MQRankSum=-0.491;QD=19.75;ReadPosRankSum=-2.856;SNPEFF_AMINO_ACID_CHANGE=S83N;SNPEFF_CODON_CHANGE=aGc/aAc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_949364_949920;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ISG15;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANS [...]
+1	949654	rs8997	A	G	93729.39	PASS	AC=82;AF=0.820;AN=100;BaseQRankSum=18.995;DB;DP=3288;Dels=0.00;FS=20.351;HaplotypeScore=0.8710;InbreedingCoeff=0.4580;MLEAC=82;MLEAF=0.820;MQ=59.30;MQ0=0;MQRankSum=-0.403;QD=34.37;ReadPosRankSum=1.456;SNPEFF_AMINO_ACID_CHANGE=V98;SNPEFF_CODON_CHANGE=gtA/gtG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_949364_949920;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ISG15;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST [...]
+1	949889	rs3829742	G	A	666.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.032;DB;DP=1383;Dels=0.00;FS=1.503;HaplotypeScore=0.4451;InbreedingCoeff=-0.0102;MLEAC=1;MLEAF=0.010;MQ=59.13;MQ0=0;MQRankSum=1.923;QD=14.17;ReadPosRankSum=-1.208;SNPEFF_EFFECT=UTR_3_PRIME;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ISG15;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000379389;VQSLOD=7.11;culprit=FS	GT:AD:DP:GQ:PL	0/0:22,0:22:66:0,66,814	0/0:32,0:32:96:0,96,123 [...]
+1	955597	rs115173026	G	T	117.08	PASS	AC=10;AF=0.278;AN=36;BaseQRankSum=1.445;DB;DP=25;Dels=0.00;FS=0.000;HaplotypeScore=0.0553;InbreedingCoeff=0.3411;MLEAC=9;MLEAF=0.250;MQ=56.16;MQ0=0;MQRankSum=1.528;QD=23.42;ReadPosRankSum=-0.124;SNPEFF_AMINO_ACID_CHANGE=P15;SNPEFF_CODON_CHANGE=ccG/ccT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_955503_955753;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST0000 [...]
+1	957568	rs115704555	A	G	882.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-7.119;DB;DP=5035;Dels=0.00;FS=0.000;HaplotypeScore=0.0195;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.33;MQ0=0;MQRankSum=0.747;QD=11.76;ReadPosRankSum=-4.449;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000379370;VQSLOD=7.68;culprit=FS	GT:AD:DP:GQ:PL	0/0:109,0:109:99:0,328,3938	0/0:108,0:108:99:0,325, [...]
+1	957640	rs6657048	C	T	2004.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-2.658;DB;DP=6097;Dels=0.00;FS=1.366;HaplotypeScore=0.1112;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=59.46;MQ0=0;MQRankSum=1.866;QD=13.36;ReadPosRankSum=-5.575;SNPEFF_AMINO_ACID_CHANGE=D87;SNPEFF_CODON_CHANGE=gaC/gaT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_957581_957842;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST0 [...]
+1	976514	rs79290478	C	A	465.05	VQSRTrancheSNP98.60to98.80	AC=26;AF=0.929;AN=28;BaseQRankSum=-1.735;DB;DP=17;Dels=0.00;FS=0.000;HaplotypeScore=0.0712;InbreedingCoeff=0.0352;MLEAC=27;MLEAF=0.964;MQ=54.13;MQ0=0;MQRankSum=0.651;QD=31.00;ReadPosRankSum=-0.217;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000477585;VQSLOD=0.457;culprit=MQ	GT:AD:DP:GQ:PL	./.	1/1:0,1:1:3:28,3,0	./.	 [...]
+1	976627	.	G	T	49.49	PASS	AC=2;AF=0.032;AN=62;BaseQRankSum=-2.576;DP=60;Dels=0.00;FS=0.000;HaplotypeScore=0.0965;InbreedingCoeff=0.0539;MLEAC=1;MLEAF=0.016;MQ=58.16;MQ0=0;MQRankSum=-1.202;QD=16.50;ReadPosRankSum=-2.747;SNPEFF_AMINO_ACID_CHANGE=A268S;SNPEFF_CODON_CHANGE=Gcc/Tcc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_976553_976777;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCRIPT_ID=ENST0000 [...]
+1	976629	rs113789806	C	T	89.72	PASS	AC=3;AF=0.047;AN=64;BaseQRankSum=0.487;DB;DP=64;Dels=0.00;FS=4.771;HaplotypeScore=0.0934;InbreedingCoeff=0.0068;MLEAC=3;MLEAF=0.047;MQ=57.45;MQ0=0;MQRankSum=-0.704;QD=17.94;ReadPosRankSum=0.541;SNPEFF_AMINO_ACID_CHANGE=A268;SNPEFF_CODON_CHANGE=gcC/gcT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_976553_976777;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST00000 [...]
+1	976808	.	C	T	41.19	PASS	AC=1;AF=0.011;AN=88;BaseQRankSum=-2.132;DP=146;Dels=0.00;FS=0.000;HaplotypeScore=0.1023;InbreedingCoeff=-0.1019;MLEAC=1;MLEAF=0.011;MQ=56.91;MQ0=0;MQRankSum=0.703;QD=10.30;ReadPosRankSum=-0.967;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000469403;VQSLOD=2.70;culprit=MQ	GT:AD:DP:GQ:PL	0/0:2,0:2:6:0,6,59	0/0:2,0:2:6:0,6,64	0/0:2,0:2:6:0,6,76	0/0:3, [...]
+1	977028	rs138031468	G	T	181.20	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.626;DB;DP=1523;Dels=0.00;FS=1.202;HaplotypeScore=0.5212;InbreedingCoeff=-0.0109;MLEAC=1;MLEAF=0.010;MQ=58.16;MQ0=1;MQRankSum=1.708;QD=7.25;ReadPosRankSum=-0.988;SNPEFF_AMINO_ACID_CHANGE=A375S;SNPEFF_CODON_CHANGE=Gcc/Tcc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_976858_977082;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSC [...]
+1	977330	rs2799066	T	C	47146.04	PASS	AC=83;AF=0.830;AN=100;BaseQRankSum=15.170;DB;DP=1899;Dels=0.00;FS=0.000;HaplotypeScore=0.6567;InbreedingCoeff=0.3621;MLEAC=83;MLEAF=0.830;MQ=58.74;MQ0=0;MQRankSum=1.279;QD=31.49;ReadPosRankSum=1.596;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000469403;VQSLOD=4.05;culprit=MQ	GT:AD:DP:GQ:PL	1/1:0,30:30:90:1109,90,0	1/1:0,26:26:75:919,75, [...]
+1	977570	rs2710876	G	A	11493.18	PASS	AC=77;AF=0.770;AN=100;BaseQRankSum=-3.532;DB;DP=555;Dels=0.00;FS=6.674;HaplotypeScore=0.7412;InbreedingCoeff=0.4656;MLEAC=76;MLEAF=0.760;MQ=57.77;MQ0=0;MQRankSum=-1.243;QD=26.36;ReadPosRankSum=1.173;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000469403;VQSLOD=3.55;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	1/1:0,7:7:21:247,21,0	1/1:0,7:7:21: [...]
+1	978603	rs138543546	CCT	C	9600.32	PASS	AC=51;AF=0.510;AN=100;BaseQRankSum=-0.865;DB;DP=444;FS=32.481;HaplotypeScore=3.3877;InbreedingCoeff=0.4345;MLEAC=50;MLEAF=0.500;MQ=59.25;MQ0=0;MQRankSum=2.669;QD=37.50;ReadPosRankSum=-1.299;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000469403	GT:AD:DP:GQ:PL	0/0:8,0:8:24:0,24,421	0/1:3,5:8:99:232,0,132	1/1:0,7:7:21:387,21,0	0/0:6,0:6 [...]
+1	978718	.	C	G	117.19	VQSRTrancheSNP99.50to99.90	AC=9;AF=0.090;AN=100;BaseQRankSum=-2.309;DP=424;Dels=0.00;FS=108.436;HaplotypeScore=0.3257;InbreedingCoeff=-0.1148;MLEAC=8;MLEAF=0.080;MQ=59.06;MQ0=0;MQRankSum=0.236;QD=1.92;ReadPosRankSum=-2.895;SNPEFF_AMINO_ACID_CHANGE=S495W;SNPEFF_CODON_CHANGE=tCg/tGg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_978619_978837;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODERATE;SNP [...]
+1	978850	.	T	G	442.22	VQSRTrancheSNP99.50to99.90	AC=24;AF=0.240;AN=100;BaseQRankSum=-6.855;DP=511;Dels=0.00;FS=193.190;HaplotypeScore=0.9245;InbreedingCoeff=-0.3335;MLEAC=24;MLEAF=0.240;MQ=57.80;MQ0=0;MQRankSum=-0.677;QD=1.60;ReadPosRankSum=-9.883;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000469403;VQSLOD=-1.458e+01;culprit=FS	GT:AD:DP:GQ:PL	0/1:10,2:12:33:33,0,315	0/1:9 [...]
+1	978856	rs115191992	G	A	382.31	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-4.120;DB;DP=567;Dels=0.00;FS=8.922;HaplotypeScore=1.6111;InbreedingCoeff=-0.0170;MLEAC=1;MLEAF=0.010;MQ=58.22;MQ0=0;MQRankSum=0.445;QD=15.29;ReadPosRankSum=0.158;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000469403;VQSLOD=3.18;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:11,0:11:33:0,33,389	0/0:16,0:16:4 [...]
+1	979245	.	C	T	117.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.312;DP=1817;Dels=0.00;FS=0.000;HaplotypeScore=0.6797;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=58.94;MQ0=0;MQRankSum=1.268;QD=6.89;ReadPosRankSum=-1.211;SNPEFF_AMINO_ACID_CHANGE=S614F;SNPEFF_CODON_CHANGE=tCc/tTc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_979203_979403;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCRIPT_ID=ENST0 [...]
+1	979556	rs139886237	G	A	936.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-5.964;DB;DP=5041;Dels=0.00;FS=3.185;HaplotypeScore=0.1048;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.89;MQ0=0;MQRankSum=1.962;QD=13.00;ReadPosRankSum=-6.007;SNPEFF_AMINO_ACID_CHANGE=Q689;SNPEFF_CODON_CHANGE=caG/caA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_979489_979637;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENS [...]
+1	979669	rs113671331	G	A	717.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.158;DB;DP=2446;Dels=0.00;FS=19.190;HaplotypeScore=0.3423;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.52;MQ0=0;MQRankSum=0.833;QD=10.55;ReadPosRankSum=-2.181;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000469403;VQSLOD=5.58;culprit=FS	GT:AD:DP:GQ:PL	0/0:36,0:36:99:0,108,1269	0/0:42,0:42:99:0,126 [...]
+1	979690	rs115413462	G	A	1283.12	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=-5.949;DB;DP=1925;Dels=0.00;FS=0.000;HaplotypeScore=0.3627;InbreedingCoeff=-0.0310;MLEAC=3;MLEAF=0.030;MQ=59.01;MQ0=0;MQRankSum=-0.548;QD=10.35;ReadPosRankSum=-4.800;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000469403;VQSLOD=6.13;culprit=FS	GT:AD:DP:GQ:PL	0/0:33,0:33:99:0,99,1192	0/0:37,0:37:99:0,108 [...]
+1	979748	rs113288277	A	T	963.46	PASS	AC=5;AF=0.050;AN=100;BaseQRankSum=-4.154;DB;DP=1880;Dels=0.00;FS=3.164;HaplotypeScore=0.4187;InbreedingCoeff=-0.0527;MLEAC=5;MLEAF=0.050;MQ=59.23;MQ0=0;MQRankSum=1.849;QD=10.59;ReadPosRankSum=-2.048;SNPEFF_AMINO_ACID_CHANGE=E728V;SNPEFF_CODON_CHANGE=gAg/gTg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_979714_979819;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANS [...]
+1	979835	rs114389542	G	A	637.50	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=-2.599;DB;DP=617;Dels=0.00;FS=0.000;HaplotypeScore=0.3875;InbreedingCoeff=-0.0402;MLEAC=3;MLEAF=0.030;MQ=58.31;MQ0=0;MQRankSum=3.266;QD=15.55;ReadPosRankSum=1.104;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000469403;VQSLOD=4.93;culprit=FS	GT:AD:DP:GQ:PL	0/0:15,0:15:45:0,45,542	0/0:8,0:8:24:0,24,282	0/0 [...]
+1	980776	.	C	G	74.46	VQSRTrancheSNP99.50to99.90	AC=11;AF=0.110;AN=100;BaseQRankSum=-5.988;DP=439;Dels=0.00;FS=71.287;HaplotypeScore=0.8452;InbreedingCoeff=-0.1629;MLEAC=10;MLEAF=0.100;MQ=57.96;MQ0=0;MQRankSum=-0.107;QD=0.97;ReadPosRankSum=-3.005;SNPEFF_AMINO_ACID_CHANGE=G803;SNPEFF_CODON_CHANGE=ggC/ggG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_980739_980903;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCR [...]
+1	980784	.	A	C	80.26	VQSRTrancheSNP99.50to99.90	AC=11;AF=0.110;AN=100;BaseQRankSum=-6.659;DP=490;Dels=0.00;FS=103.640;HaplotypeScore=0.8030;InbreedingCoeff=-0.1257;MLEAC=8;MLEAF=0.080;MQ=58.29;MQ0=0;MQRankSum=0.878;QD=0.98;ReadPosRankSum=-2.250;SNPEFF_AMINO_ACID_CHANGE=D806A;SNPEFF_CODON_CHANGE=gAc/gCc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_980739_980903;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODERATE;SNP [...]
+1	980824	rs112039851	G	C	1069.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-3.331;DB;DP=1769;Dels=0.00;FS=5.595;HaplotypeScore=0.8300;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=58.91;MQ0=0;MQRankSum=2.172;QD=11.75;ReadPosRankSum=-2.279;SNPEFF_AMINO_ACID_CHANGE=G819;SNPEFF_CODON_CHANGE=ggG/ggC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_980739_980903;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=EN [...]
+1	980955	rs139005472	AC	A	694.11	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=-0.461;DB;DP=979;FS=64.640;HaplotypeScore=7.7724;InbreedingCoeff=-0.0321;MLEAC=3;MLEAF=0.030;MQ=59.08;MQ0=0;MQRankSum=1.386;QD=9.92;RPA=5,4;RU=C;ReadPosRankSum=-0.725;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000469403;STR	GT:AD:DP:GQ:PL	0/0:19,0:19:57:0,57,705	0/0:10,0:10:30:0,30,312	0/0:19,0:21:57: [...]
+1	981087	rs3128098	A	G	71791.08	PASS	AC=83;AF=0.830;AN=100;BaseQRankSum=-9.449;DB;DP=2837;Dels=0.00;FS=0.304;HaplotypeScore=0.6543;InbreedingCoeff=0.0787;MLEAC=83;MLEAF=0.830;MQ=59.38;MQ0=0;MQRankSum=0.669;QD=27.05;ReadPosRankSum=1.276;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000469403;VQSLOD=6.42;culprit=FS	GT:AD:DP:GQ:PL	1/1:0,54:54:99:1755,162,0	1/1:0,50:50:99:1672,1 [...]
+1	981131	rs9697293	A	G	2519.12	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=-5.251;DB;DP=4516;Dels=0.00;FS=0.427;HaplotypeScore=0.6990;InbreedingCoeff=-0.0309;MLEAC=3;MLEAF=0.030;MQ=59.41;MQ0=0;MQRankSum=0.463;QD=11.40;ReadPosRankSum=-4.089;SNPEFF_AMINO_ACID_CHANGE=Q852R;SNPEFF_CODON_CHANGE=cAa/cGa;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_981113_981256;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSC [...]
+1	981310	.	C	G	57.63	VQSRTrancheSNP99.90to100.00	AC=5;AF=0.050;AN=100;BaseQRankSum=-13.235;DP=1756;Dels=0.00;FS=661.835;HaplotypeScore=2.4875;InbreedingCoeff=-0.0545;MLEAC=4;MLEAF=0.040;MQ=57.94;MQ0=0;MQRankSum=-2.110;QD=0.29;ReadPosRankSum=-11.970;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000469403;VQSLOD=-1.365e+02;culprit=FS	GT:AD:DP:GQ:PL	0/0:25,4:28:66:0,66,798	0/0: [...]
+1	981931	rs2465128	A	G	25023.30	PASS	AC=79;AF=0.790;AN=100;BaseQRankSum=0.003;DB;DP=1130;Dels=0.00;FS=3.119;HaplotypeScore=0.4877;InbreedingCoeff=0.4554;MLEAC=79;MLEAF=0.790;MQ=59.12;MQ0=0;MQRankSum=0.727;QD=27.17;ReadPosRankSum=-0.178;SNPEFF_AMINO_ACID_CHANGE=S1022;SNPEFF_CODON_CHANGE=tcA/tcG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_981777_982115;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=EN [...]
+1	982213	rs150132566	G	C	241.08	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-2.122;DB;DP=335;Dels=0.00;FS=2.637;HaplotypeScore=0.2214;InbreedingCoeff=-0.0476;MLEAC=2;MLEAF=0.020;MQ=59.17;MQ0=0;MQRankSum=0.048;QD=12.05;ReadPosRankSum=-0.086;SNPEFF_AMINO_ACID_CHANGE=L1088F;SNPEFF_CODON_CHANGE=ttG/ttC;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_982200_982337;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANS [...]
+1	982380	rs183929080	G	T	103.95	PASS	AC=3;AF=0.032;AN=94;BaseQRankSum=-2.624;DB;DP=214;Dels=0.00;FS=0.000;HaplotypeScore=0.0950;InbreedingCoeff=0.1828;MLEAC=2;MLEAF=0.021;MQ=59.30;MQ0=0;MQRankSum=1.767;QD=12.99;ReadPosRankSum=-1.767;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000479707;VQSLOD=5.26;culprit=FS	GT:AD:DP:GQ:PL	0/0:2,0:2:6:0,6,76	0/0:8,0:8:24:0,24,302	0/0:7,0:7 [...]
+1	982783	rs146358566	T	C	1055.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=3.103;DB;DP=3310;Dels=0.00;FS=35.844;HaplotypeScore=0.3795;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.11;MQ0=0;MQRankSum=0.675;QD=14.07;ReadPosRankSum=-2.797;SNPEFF_AMINO_ACID_CHANGE=A1155;SNPEFF_CODON_CHANGE=gcT/gcC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_982707_982834;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=E [...]
+1	982844	rs76264143	G	C	1826.28	PASS	AC=4;AF=0.040;AN=100;BaseQRankSum=-5.313;DB;DP=2660;Dels=0.00;FS=5.401;HaplotypeScore=0.4417;InbreedingCoeff=-0.0417;MLEAC=4;MLEAF=0.040;MQ=59.54;MQ0=0;MQRankSum=-0.660;QD=12.86;ReadPosRankSum=-3.444;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000479707;VQSLOD=7.29;culprit=InbreedingCoeff	GT:AD:DP:GQ:PL	0/0:58,0:58:99:0,175,2145	0/0:34, [...]
+1	982921	rs140939425	C	T	303.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.832;DB;DP=1732;Dels=0.00;FS=6.485;HaplotypeScore=1.2241;InbreedingCoeff=-0.0102;MLEAC=1;MLEAF=0.010;MQ=59.14;MQ0=0;MQRankSum=1.190;QD=10.45;ReadPosRankSum=-0.639;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000479707;VQSLOD=5.13;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:24,0:24:72:0,72,802	0/0:18,0:18 [...]
+1	982941	rs3128102	T	C	68937.62	PASS	AC=78;AF=0.780;AN=100;BaseQRankSum=8.975;DB;DP=2796;Dels=0.00;FS=39.838;HaplotypeScore=1.0331;InbreedingCoeff=0.4172;MLEAC=78;MLEAF=0.780;MQ=59.43;MQ0=0;MQRankSum=0.281;QD=30.69;ReadPosRankSum=-1.070;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000479707;VQSLOD=0.959;culprit=FS	GT:AD:DP:GQ:PL	1/1:0,53:53:99:1960,159,0	1/1:0,45:45:99:1701 [...]
+1	982994	rs10267	T	C	108225.07	PASS	AC=81;AF=0.810;AN=100;BaseQRankSum=14.669;DB;DP=3820;Dels=0.00;FS=16.758;HaplotypeScore=0.5747;InbreedingCoeff=0.2853;MLEAC=81;MLEAF=0.810;MQ=59.41;MQ0=0;MQRankSum=0.337;QD=32.22;ReadPosRankSum=0.569;SNPEFF_AMINO_ACID_CHANGE=F1186;SNPEFF_CODON_CHANGE=ttT/ttC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_982953_983067;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=EN [...]
+1	983149	.	T	C	96.73	VQSRTrancheSNP99.50to99.90	AC=13;AF=0.130;AN=100;BaseQRankSum=-5.923;DP=496;Dels=0.00;FS=32.307;HaplotypeScore=0.2942;InbreedingCoeff=-0.1570;MLEAC=11;MLEAF=0.110;MQ=58.61;MQ0=0;MQRankSum=1.926;QD=1.01;ReadPosRankSum=-3.735;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000479707;VQSLOD=-3.018e+00;culprit=QD	GT:AD:DP:GQ:PL	0/1:9,1:11:2:2,0,237	0/0:11,4:15 [...]
+1	983243	rs142620337	C	T	58.51	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.123;DB;DP=456;Dels=0.00;FS=0.000;HaplotypeScore=0.3617;InbreedingCoeff=-0.0248;MLEAC=1;MLEAF=0.010;MQ=57.19;MQ0=0;MQRankSum=1.902;QD=5.85;ReadPosRankSum=-0.454;SNPEFF_AMINO_ACID_CHANGE=P1240L;SNPEFF_CODON_CHANGE=cCg/cTg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_983156_983275;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCR [...]
+1	983274	rs138818746	T	C	156.53	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=1.591;DB;DP=381;Dels=0.00;FS=0.000;HaplotypeScore=0.1397;InbreedingCoeff=-0.0279;MLEAC=1;MLEAF=0.010;MQ=57.42;MQ0=0;MQRankSum=1.871;QD=19.57;ReadPosRankSum=1.672;SNPEFF_AMINO_ACID_CHANGE=F1250;SNPEFF_CODON_CHANGE=ttT/ttC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_983156_983275;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST0 [...]
+1	983506	rs139294803	C	T	42.70	PASS	AC=1;AF=0.011;AN=92;BaseQRankSum=0.220;DB;DP=215;Dels=0.00;FS=0.000;HaplotypeScore=0.3543;InbreedingCoeff=-0.0969;MLEAC=1;MLEAF=0.011;MQ=56.99;MQ0=0;MQRankSum=1.099;QD=3.88;ReadPosRankSum=0.767;SNPEFF_AMINO_ACID_CHANGE=P1289L;SNPEFF_CODON_CHANGE=cCg/cTg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_983392_983745;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCRIPT [...]
+1	984302	rs9442391	T	C	4145.31	PASS	AC=55;AF=0.550;AN=100;BaseQRankSum=1.569;DB;DP=259;Dels=0.00;FS=1.672;HaplotypeScore=0.1354;InbreedingCoeff=0.4788;MLEAC=54;MLEAF=0.540;MQ=58.09;MQ0=0;MQRankSum=0.824;QD=27.64;ReadPosRankSum=-0.866;SNPEFF_AMINO_ACID_CHANGE=T1387;SNPEFF_CODON_CHANGE=acT/acC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_984247_984439;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST [...]
+1	984579	.	C	A	45.31	PASS	AC=2;AF=0.023;AN=88;BaseQRankSum=-1.957;DP=179;Dels=0.00;FS=0.000;HaplotypeScore=0.1073;InbreedingCoeff=-0.0958;MLEAC=2;MLEAF=0.023;MQ=58.43;MQ0=0;MQRankSum=1.560;QD=3.78;ReadPosRankSum=-1.440;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000466223;VQSLOD=3.30;culprit=QD	GT:AD:DP:GQ:PL	0/0:3,0:3:9:0,9,116	0/0:4,0:4:12:0,12,145	0/0:1,0:1:3:0,3,39	0/0 [...]
+1	984660	.	C	T	253.76	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.379;DP=465;Dels=0.00;FS=3.325;HaplotypeScore=0.3265;InbreedingCoeff=-0.0356;MLEAC=1;MLEAF=0.010;MQ=58.83;MQ0=0;MQRankSum=0.520;QD=12.08;ReadPosRankSum=0.196;SNPEFF_AMINO_ACID_CHANGE=P1448L;SNPEFF_CODON_CHANGE=cCg/cTg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_984616_984831;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCRIPT_ID=ENST0 [...]
+1	984752	.	G	A	183.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=1.576;DP=1540;Dels=0.00;FS=0.000;HaplotypeScore=0.4200;InbreedingCoeff=-0.0103;MLEAC=1;MLEAF=0.010;MQ=59.24;MQ0=0;MQRankSum=2.697;QD=11.45;ReadPosRankSum=-0.897;SNPEFF_AMINO_ACID_CHANGE=E1479K;SNPEFF_CODON_CHANGE=Gag/Aag;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_984616_984831;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCRIPT_ID=ENST [...]
+1	984847	rs112917612	G	C	1861.40	PASS	AC=4;AF=0.040;AN=100;BaseQRankSum=-7.130;DB;DP=1003;Dels=0.00;FS=2.687;HaplotypeScore=0.6865;InbreedingCoeff=-0.0444;MLEAC=4;MLEAF=0.040;MQ=59.28;MQ0=0;MQRankSum=3.864;QD=12.66;ReadPosRankSum=-1.407;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000466223;VQSLOD=5.75;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:29,0:29:87:0,87,1088	0/0:16,0: [...]
+1	985171	rs115019873	C	T	267.76	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-2.523;DB;DP=463;Dels=0.00;FS=1.361;HaplotypeScore=0.2723;InbreedingCoeff=0.0246;MLEAC=2;MLEAF=0.020;MQ=58.30;MQ0=0;MQRankSum=0.881;QD=13.39;ReadPosRankSum=-1.194;SNPEFF_AMINO_ACID_CHANGE=R1580;SNPEFF_CODON_CHANGE=cgC/cgT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_984946_985175;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST [...]
+1	985239	rs115192323	C	T	1101.30	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-3.754;DB;DP=1161;Dels=0.00;FS=9.709;HaplotypeScore=0.3394;InbreedingCoeff=-0.0223;MLEAC=2;MLEAF=0.020;MQ=59.03;MQ0=0;MQRankSum=2.144;QD=13.60;ReadPosRankSum=-0.375;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000466223;VQSLOD=7.20;culprit=MQ	GT:AD:DP:GQ:PL	0/0:10,0:10:30:0,30,360	0/0:10,0:10:30:0,30,35 [...]
+1	985266	rs2275813	C	T	19151.74	PASS	AC=51;AF=0.510;AN=100;BaseQRankSum=-2.655;DB;DP=1453;Dels=0.00;FS=1.032;HaplotypeScore=0.4190;InbreedingCoeff=0.2384;MLEAC=51;MLEAF=0.510;MQ=59.28;MQ0=0;MQRankSum=4.926;QD=22.35;ReadPosRankSum=-1.534;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000466223;VQSLOD=3.43;culprit=FS	GT:AD:DP:GQ:PL	0/0:21,0:21:63:0,63,759	1/1:0,11:11:33:410,33, [...]
+1	985377	rs113020870	C	T	131.21	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=2.877;DB;DP=946;Dels=0.00;FS=0.000;HaplotypeScore=0.5711;InbreedingCoeff=-0.0114;MLEAC=1;MLEAF=0.010;MQ=59.35;MQ0=0;MQRankSum=1.294;QD=7.29;ReadPosRankSum=-2.187;SNPEFF_AMINO_ACID_CHANGE=C1613;SNPEFF_CODON_CHANGE=tgC/tgT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_985283_985417;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST0 [...]
+1	985443	rs71576592	AG	A	1666.26	PASS	AC=56;AF=0.651;AN=86;BaseQRankSum=-0.304;DB;DP=179;FS=3.739;HaplotypeScore=13.0598;InbreedingCoeff=0.1155;MLEAC=60;MLEAF=0.698;MQ=53.87;MQ0=0;MQRankSum=-0.873;QD=11.34;RPA=15,14;RU=G;ReadPosRankSum=-0.534;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000466223;STR	GT:AD:DP:GQ:PL	1/1:0,3:5:9:73,9,0	0/0:0,0:4:0:0,0,1	0/0:0,0:3:1:0,1,1	0/1: [...]
+1	985446	rs2275812	G	T	1019.88	PASS	AC=23;AF=0.256;AN=90;BaseQRankSum=-6.476;DB;DP=176;Dels=0.00;FS=28.544;HaplotypeScore=2.2684;InbreedingCoeff=0.3262;MLEAC=21;MLEAF=0.233;MQ=51.95;MQ0=0;MQRankSum=2.575;QD=15.45;ReadPosRankSum=1.628;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000466223;VQSLOD=1.80;culprit=MQ	GT:AD:DP:GQ:PL	0/0:5,0:5:15:0,15,182	1/1:0,5:5:15:167,15,0	1/1:0 [...]
+1	985447	.	G	T	43.33	VQSRTrancheSNP98.90to99.00	AC=5;AF=0.054;AN=92;BaseQRankSum=-3.356;DP=174;Dels=0.00;FS=7.679;HaplotypeScore=2.1988;InbreedingCoeff=-0.1176;MLEAC=5;MLEAF=0.054;MQ=51.84;MQ0=0;MQRankSum=-2.494;QD=2.28;ReadPosRankSum=0.457;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000466223;VQSLOD=0.083;culprit=QD	GT:AD:DP:GQ:PL	0/0:6,0:6:18:0,18,217	0/0:5,0:5:15:0,15,1 [...]
+1	985449	rs56255212	G	A	1749.09	PASS	AC=43;AF=0.467;AN=92;BaseQRankSum=-7.334;DB;DP=175;Dels=0.00;FS=18.432;HaplotypeScore=1.0005;InbreedingCoeff=-0.1046;MLEAC=41;MLEAF=0.446;MQ=52.47;MQ0=0;MQRankSum=1.914;QD=13.56;ReadPosRankSum=-0.484;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000466223;VQSLOD=0.851;culprit=MQ	GT:AD:DP:GQ:PL	0/0:5,0:5:15:0,15,167	1/1:0,5:5:15:172,15,0	1 [...]
+1	985450	.	G	A	2316.82	PASS	AC=47;AF=0.500;AN=94;BaseQRankSum=-7.697;DP=183;Dels=0.00;FS=11.816;HaplotypeScore=3.8258;InbreedingCoeff=-0.0235;MLEAC=49;MLEAF=0.521;MQ=52.73;MQ0=0;MQRankSum=1.234;QD=15.04;ReadPosRankSum=1.316;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000466223;VQSLOD=0.879;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	1/1:1,5:6:9:104,9,0	0/0:5,0:5:15:0,15,185	0/0: [...]
+1	985460	rs2275811	T	C	2962.99	PASS	AC=27;AF=0.270;AN=100;BaseQRankSum=5.374;DB;DP=280;Dels=0.00;FS=0.000;HaplotypeScore=1.3809;InbreedingCoeff=0.3112;MLEAC=29;MLEAF=0.290;MQ=54.31;MQ0=0;MQRankSum=-3.872;QD=19.89;ReadPosRankSum=-0.890;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000466223;VQSLOD=1.68;culprit=MQ	GT:AD:DP:GQ:PL	0/0:8,0:8:24:0,24,262	0/0:8,0:8:24:0,24,260	0/0: [...]
+1	985626	rs139400715	C	T	788.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=0.990;DB;DP=3936;Dels=0.00;FS=3.913;HaplotypeScore=1.3126;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.26;MQ0=0;MQRankSum=1.831;QD=10.95;ReadPosRankSum=0.226;SNPEFF_AMINO_ACID_CHANGE=D1631;SNPEFF_CODON_CHANGE=gaC/gaT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_985613_985709;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST [...]
+1	985797	rs142286944	A	G	572.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-3.785;DB;DP=1567;Dels=0.00;FS=5.649;HaplotypeScore=0.3128;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=59.32;MQ0=0;MQRankSum=1.849;QD=11.92;ReadPosRankSum=-0.687;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000466223;VQSLOD=8.00;culprit=InbreedingCoeff	GT:AD:DP:GQ:PL	0/0:28,0:28:84:0,84,1002	0/0:35,0: [...]
+1	985826	rs17160775	G	A	2760.44	PASS	AC=5;AF=0.050;AN=100;BaseQRankSum=-8.955;DB;DP=1611;Dels=0.00;FS=6.081;HaplotypeScore=0.4089;InbreedingCoeff=0.3684;MLEAC=5;MLEAF=0.050;MQ=59.33;MQ0=0;MQRankSum=-0.137;QD=14.23;ReadPosRankSum=0.527;SNPEFF_AMINO_ACID_CHANGE=V1666I;SNPEFF_CODON_CHANGE=Gtc/Atc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_985807_985971;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANS [...]
+1	985900	rs17160776	C	T	2924.12	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=0.587;DB;DP=2417;Dels=0.00;FS=2.340;HaplotypeScore=0.4268;InbreedingCoeff=-0.0309;MLEAC=3;MLEAF=0.030;MQ=59.25;MQ0=0;MQRankSum=-0.881;QD=13.17;ReadPosRankSum=-1.106;SNPEFF_AMINO_ACID_CHANGE=F1690;SNPEFF_CODON_CHANGE=ttC/ttT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_985807_985971;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=EN [...]
+1	985999	rs111726760	G	T	2007.14	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=-5.020;DB;DP=1342;Dels=0.00;FS=0.000;HaplotypeScore=0.5814;InbreedingCoeff=-0.0315;MLEAC=3;MLEAF=0.030;MQ=59.22;MQ0=0;MQRankSum=-0.141;QD=13.94;ReadPosRankSum=-1.586;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000466223;VQSLOD=7.27;culprit=FS	GT:AD:DP:GQ:PL	0/0:16,0:16:48:0,48,564	0/0:23,0:23:69:0,69,8 [...]
+1	986010	rs116257587	T	C	1466.45	PASS	AC=5;AF=0.050;AN=100;BaseQRankSum=-5.826;DB;DP=1187;Dels=0.00;FS=0.695;HaplotypeScore=0.9650;InbreedingCoeff=0.3677;MLEAC=5;MLEAF=0.050;MQ=59.26;MQ0=0;MQRankSum=-1.433;QD=11.92;ReadPosRankSum=-2.805;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000466223;VQSLOD=4.38;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:20,0:20:60:0,60,687	0/0:21,0:2 [...]
+1	986056	rs28545735	C	T	219.30	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.301;DB;DP=618;Dels=0.00;FS=8.387;HaplotypeScore=0.3670;InbreedingCoeff=-0.0163;MLEAC=1;MLEAF=0.010;MQ=58.85;MQ0=0;MQRankSum=-0.560;QD=10.44;ReadPosRankSum=-2.790;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000466223;VQSLOD=5.59;culprit=MQ	GT:AD:DP:GQ:PL	0/0:12,0:12:36:0,36,390	0/0:12,0:12:36:0,36,404	 [...]
+1	986731	rs112073270	C	T	168.52	PASS	AC=1;AF=0.010;AN=98;BaseQRankSum=-0.026;DB;DP=251;Dels=0.00;FS=3.382;HaplotypeScore=0.5293;InbreedingCoeff=-0.0640;MLEAC=1;MLEAF=0.010;MQ=57.67;MQ0=0;MQRankSum=1.303;QD=14.04;ReadPosRankSum=-0.517;SNPEFF_AMINO_ACID_CHANGE=F127;SNPEFF_CODON_CHANGE=ttC/ttT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_986633_986749;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST0 [...]
+1	986737	rs17160781	T	C	466.10	PASS	AC=4;AF=0.042;AN=96;BaseQRankSum=-0.523;DB;DP=232;Dels=0.00;FS=7.765;HaplotypeScore=0.5174;InbreedingCoeff=-0.1029;MLEAC=4;MLEAF=0.042;MQ=57.81;MQ0=0;MQRankSum=2.606;QD=16.07;ReadPosRankSum=-2.501;SNPEFF_AMINO_ACID_CHANGE=G129;SNPEFF_CODON_CHANGE=ggT/ggC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_986633_986749;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST00 [...]
+1	986885	.	T	G	441.47	VQSRTrancheSNP99.50to99.90	AC=19;AF=0.198;AN=96;BaseQRankSum=-7.503;DP=235;Dels=0.00;FS=141.555;HaplotypeScore=0.1373;InbreedingCoeff=-0.2318;MLEAC=21;MLEAF=0.219;MQ=59.05;MQ0=0;MQRankSum=2.350;QD=4.01;ReadPosRankSum=-7.910;SNPEFF_AMINO_ACID_CHANGE=V151G;SNPEFF_CODON_CHANGE=gTg/gGg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_986833_987025;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODERATE;SN [...]
+1	987076	rs143046493	C	T	120.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.567;DB;DP=1311;Dels=0.00;FS=2.262;HaplotypeScore=0.3259;InbreedingCoeff=-0.0106;MLEAC=1;MLEAF=0.010;MQ=59.31;MQ0=0;MQRankSum=1.248;QD=7.51;ReadPosRankSum=-0.295;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000466223;VQSLOD=6.87;culprit=QD	GT:AD:DP:GQ:PL	0/1:10,6:16:99:160,0,294	0/0:31,0:31:93:0,93,112 [...]
+1	987142	rs17778478	C	T	928.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.711;DB;DP=2776;Dels=0.00;FS=1.468;HaplotypeScore=0.4996;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.28;MQ0=0;MQRankSum=1.557;QD=12.71;ReadPosRankSum=-0.092;SNPEFF_AMINO_ACID_CHANGE=T1866;SNPEFF_CODON_CHANGE=acC/acT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_987108_987195;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENS [...]
+1	987200	rs9803031	C	T	39368.64	PASS	AC=78;AF=0.780;AN=100;BaseQRankSum=7.389;DB;DP=1656;Dels=0.00;FS=10.170;HaplotypeScore=0.5690;InbreedingCoeff=0.3007;MLEAC=78;MLEAF=0.780;MQ=59.44;MQ0=0;MQRankSum=0.167;QD=27.63;ReadPosRankSum=2.023;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000466223;VQSLOD=5.59;culprit=FS	GT:AD:DP:GQ:PL	1/1:0,25:25:75:881,75,0	1/1:0,35:35:99:1265,105 [...]
+1	990280	rs4275402	C	T	2285.57	PASS	AC=54;AF=0.600;AN=90;BaseQRankSum=3.564;DB;DP=149;Dels=0.00;FS=1.108;HaplotypeScore=0.2197;InbreedingCoeff=0.4198;MLEAC=53;MLEAF=0.589;MQ=58.20;MQ0=0;MQRankSum=0.621;QD=22.63;ReadPosRankSum=0.707;SNPEFF_AMINO_ACID_CHANGE=D2019;SNPEFF_CODON_CHANGE=gaC/gaT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_990204_991496;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST00 [...]
+1	990380	rs3121561	C	T	1289.03	PASS	AC=38;AF=0.413;AN=92;BaseQRankSum=2.240;DB;DP=134;Dels=0.00;FS=9.245;HaplotypeScore=0.1459;InbreedingCoeff=0.4029;MLEAC=36;MLEAF=0.391;MQ=56.54;MQ0=0;MQRankSum=1.845;QD=21.48;ReadPosRankSum=1.141;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000461111;VQSLOD=3.77;culprit=MQ	GT:AD:DP:GQ:PL	1/1:0,5:5:15:172,15,0	0/0:2,0:2:6:0,6,59	0/0:1,0:1: [...]
+1	1019314	rs115613719	G	T	80.45	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=2.398;DB;DP=380;Dels=0.00;FS=2.415;HaplotypeScore=0.1312;InbreedingCoeff=-0.0260;MLEAC=1;MLEAF=0.010;MQ=58.41;MQ0=0;MQRankSum=0.738;QD=8.04;ReadPosRankSum=-1.491;SNPEFF_AMINO_ACID_CHANGE=R194;SNPEFF_CODON_CHANGE=Cgg/Agg;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1019295_1019391;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=C1orf159;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID= [...]
+1	1019717	.	C	T	219.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.621;DP=1213;Dels=0.00;FS=6.649;HaplotypeScore=0.3895;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.42;MQ0=0;MQRankSum=0.405;QD=9.96;ReadPosRankSum=-1.859;SNPEFF_AMINO_ACID_CHANGE=R173H;SNPEFF_CODON_CHANGE=cGc/cAc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1019295_1019763;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=C1orf159;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCRIPT_I [...]
+1	1021249	rs61520960	G	A	565.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=2.547;DB;DP=1236;Dels=0.00;FS=0.000;HaplotypeScore=0.4088;InbreedingCoeff=-0.0205;MLEAC=2;MLEAF=0.020;MQ=58.93;MQ0=0;MQRankSum=1.104;QD=12.03;ReadPosRankSum=-2.817;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=C1orf159;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000427787;VQSLOD=7.29;culprit=MQ	GT:AD:DP:GQ:PL	0/0:25,0:25:75:0,75,812	0/0:30,0:30:90:0,90, [...]
+1	1021346	rs10907177	A	G	14466.05	PASS	AC=20;AF=0.200;AN=100;BaseQRankSum=19.709;DB;DP=2081;Dels=0.00;FS=2.032;HaplotypeScore=0.6786;InbreedingCoeff=-0.0000;MLEAC=20;MLEAF=0.200;MQ=58.86;MQ0=0;MQRankSum=0.655;QD=17.35;ReadPosRankSum=-0.572;SNPEFF_AMINO_ACID_CHANGE=I119;SNPEFF_CODON_CHANGE=atT/atC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1021258_1021392;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=C1orf159;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCR [...]
+1	1021408	rs11260587	G	A	5476.87	PASS	AC=10;AF=0.100;AN=100;BaseQRankSum=-10.418;DB;DP=1361;Dels=0.00;FS=2.722;HaplotypeScore=3.7841;InbreedingCoeff=0.1111;MLEAC=10;MLEAF=0.100;MQ=58.95;MQ0=0;MQRankSum=-0.507;QD=15.05;ReadPosRankSum=-0.885;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=C1orf159;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000427787;VQSLOD=2.01;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:18,0:18:51:0,51,631	0/0 [...]
+1	1021415	rs3737728	A	G	31297.26	PASS	AC=77;AF=0.770;AN=100;BaseQRankSum=4.762;DB;DP=1211;Dels=0.00;FS=14.650;HaplotypeScore=3.2284;InbreedingCoeff=-0.0702;MLEAC=77;MLEAF=0.770;MQ=59.03;MQ0=0;MQRankSum=-1.622;QD=26.86;ReadPosRankSum=0.942;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=C1orf159;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000427787;VQSLOD=1.56;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	1/1:0,18:18:51:619,51,0	1/1: [...]
+1	1115461	rs116383664	C	T	216.43	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.632;DB;DP=558;Dels=0.00;FS=2.782;HaplotypeScore=0.2055;InbreedingCoeff=-0.0225;MLEAC=1;MLEAF=0.010;MQ=58.89;MQ0=0;MQRankSum=0.016;QD=8.66;ReadPosRankSum=-0.833;SNPEFF_AMINO_ACID_CHANGE=R10W;SNPEFF_CODON_CHANGE=Cgg/Tgg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1115414_1115720;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=TTLL10;SNPEFF_IMPACT=MODERATE;SNPE [...]
+1	1115503	rs111751804	T	C	119.81	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=-3.346;DB;DP=816;Dels=0.00;FS=6.651;HaplotypeScore=0.2278;InbreedingCoeff=-0.0298;MLEAC=2;MLEAF=0.020;MQ=59.15;MQ0=0;MQRankSum=-0.990;QD=3.00;ReadPosRankSum=-0.508;SNPEFF_AMINO_ACID_CHANGE=C24R;SNPEFF_CODON_CHANGE=Tgt/Cgt;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1115414_1115720;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=TTLL10;SNPEFF_IMPACT=MODERATE;SNP [...]
+1	1115548	rs114390380	G	A	44.30	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=0.321;DB;DP=616;Dels=0.00;FS=4.626;HaplotypeScore=0.1976;InbreedingCoeff=-0.0164;MLEAC=1;MLEAF=0.010;MQ=58.76;MQ0=0;MQRankSum=1.640;QD=4.92;ReadPosRankSum=0.271;SNPEFF_AMINO_ACID_CHANGE=G112R;SNPEFF_CODON_CHANGE=Gga/Aga;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1115414_1115720;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=TTLL10;SNPEFF_IMPACT=MODERATE;SNPEFF [...]
+1	1115994	rs13376597	G	A	1981.08	PASS	AC=36;AF=0.400;AN=90;BaseQRankSum=0.825;DB;DP=155;Dels=0.00;FS=0.000;HaplotypeScore=0.0768;InbreedingCoeff=0.2755;MLEAC=36;MLEAF=0.400;MQ=59.41;MQ0=0;MQRankSum=0.543;QD=21.53;ReadPosRankSum=-0.106;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=TTLL10;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000379288;VQSLOD=6.55;culprit=FS	GT:AD:DP:GQ:PL	0/0:3,0:3:9:0,9,97	0/0:4,0:4:12:0,12,130	0/0 [...]
+1	1116005	rs112517367	C	T	78.65	PASS	AC=4;AF=0.043;AN=92;BaseQRankSum=-1.231;DB;DP=169;Dels=0.00;FS=6.189;HaplotypeScore=0.0638;InbreedingCoeff=0.0473;MLEAC=3;MLEAF=0.033;MQ=59.02;MQ0=0;MQRankSum=0.337;QD=9.83;ReadPosRankSum=-0.619;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=TTLL10;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000379288;VQSLOD=5.59;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:3,0:3:9:0,9,100	0/0:3,0:3:9:0,9 [...]
+1	1116189	rs137938349	G	A	259.70	PASS	AC=1;AF=0.010;AN=98;BaseQRankSum=0.051;DB;DP=469;Dels=0.00;FS=1.585;HaplotypeScore=0.2633;InbreedingCoeff=-0.0302;MLEAC=1;MLEAF=0.010;MQ=58.77;MQ0=0;MQRankSum=0.355;QD=11.80;ReadPosRankSum=-1.003;SNPEFF_AMINO_ACID_CHANGE=R162Q;SNPEFF_CODON_CHANGE=cGg/cAg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1116111_1116240;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=TTLL10;SNPEFF_IMPACT=MODERATE;SNPE [...]
+1	1116231	rs13374146	T	C	1902.60	PASS	AC=21;AF=0.228;AN=92;BaseQRankSum=3.944;DB;DP=220;Dels=0.00;FS=0.000;HaplotypeScore=0.5092;InbreedingCoeff=0.1624;MLEAC=22;MLEAF=0.239;MQ=58.70;MQ0=0;MQRankSum=0.514;QD=19.22;ReadPosRankSum=-1.908;SNPEFF_AMINO_ACID_CHANGE=V176A;SNPEFF_CODON_CHANGE=gTc/gCc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1116111_1116240;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=TTLL10;SNPEFF_IMPACT=MODERATE;SNP [...]
+1	1117111	rs140479651	T	C	201.36	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=1.436;DB;DP=471;Dels=0.00;FS=12.324;HaplotypeScore=0.1182;InbreedingCoeff=-0.0196;MLEAC=1;MLEAF=0.010;MQ=59.24;MQ0=0;MQRankSum=1.933;QD=8.75;ReadPosRankSum=-0.757;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=TTLL10;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000514695;VQSLOD=6.53;culprit=FS	GT:AD:DP:GQ:PL	0/0:4,0:4:12:0,12,154	0/0:11,0:11:27:0,2 [...]
+1	1117709	rs112895009	G	A	1399.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-5.319;DB;DP=2759;Dels=0.00;FS=1.311;HaplotypeScore=0.4317;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=59.73;MQ0=0;MQRankSum=0.189;QD=14.73;ReadPosRankSum=-2.345;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=TTLL10;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000514695;VQSLOD=7.39;culprit=FS	GT:AD:DP:GQ:PL	0/0:56,0:56:99:0,169,2117	0/0:54,0:54 [...]
+1	1118212	rs10907171	T	C	4570.83	PASS	AC=55;AF=0.573;AN=96;BaseQRankSum=1.399;DB;DP=225;Dels=0.00;FS=2.180;HaplotypeScore=0.0763;InbreedingCoeff=0.4741;MLEAC=56;MLEAF=0.583;MQ=59.00;MQ0=0;MQRankSum=0.957;QD=27.54;ReadPosRankSum=1.962;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=TTLL10;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000514695;VQSLOD=5.88;culprit=MQ	GT:AD:DP:GQ:PL	0/0:6,0:6:18:0,18,222	0/0:3,0:3:9:0,9,111 [...]
+1	1118275	rs61733845	C	T	3765.19	PASS	AC=23;AF=0.230;AN=100;BaseQRankSum=-9.799;DB;DP=464;Dels=0.00;FS=10.169;HaplotypeScore=0.2958;InbreedingCoeff=0.3216;MLEAC=24;MLEAF=0.240;MQ=58.83;MQ0=0;MQRankSum=0.829;QD=21.27;ReadPosRankSum=-0.343;SNPEFF_AMINO_ACID_CHANGE=C239;SNPEFF_CODON_CHANGE=tgC/tgT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1118256_1118427;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=TTLL10;SNPEFF_IMPACT=LOW;SNPEFF_TRANS [...]
+1	1118475	.	C	G	95.18	PASS	AC=2;AF=0.023;AN=86;BaseQRankSum=1.836;DP=135;Dels=0.00;FS=9.454;HaplotypeScore=0.2094;InbreedingCoeff=0.1015;MLEAC=1;MLEAF=0.012;MQ=58.64;MQ0=0;MQRankSum=-0.009;QD=19.04;ReadPosRankSum=1.508;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=TTLL10;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000514695;VQSLOD=3.75;culprit=MQ	GT:AD:DP:GQ:PL	0/0:1,0:1:3:0,3,31	0/0:3,0:3:9:0,9,90	0/0:2,0:2:6:0,6,79 [...]
+1	1119361	rs143930968	A	G	831.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.139;DB;DP=6393;Dels=0.00;FS=6.831;HaplotypeScore=0.0316;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.99;MQ0=0;MQRankSum=0.961;QD=11.08;ReadPosRankSum=-4.052;SNPEFF_AMINO_ACID_CHANGE=I311V;SNPEFF_CODON_CHANGE=Att/Gtt;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1119300_1119471;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=TTLL10;SNPEFF_IMPACT=MODERATE;S [...]
+1	1120307	rs7539911	G	A	1769.63	VQSRTrancheSNP99.00to99.30	AC=31;AF=0.316;AN=98;BaseQRankSum=9.676;DB;DP=592;Dels=0.00;FS=2.748;HaplotypeScore=0.1408;InbreedingCoeff=-0.0273;MLEAC=30;MLEAF=0.306;MQ=31.70;MQ0=88;MQRankSum=-0.795;QD=4.35;ReadPosRankSum=1.177;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=TTLL10;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000460998;VQSLOD=-8.879e-01;culprit=MQ	GT:AD:DP:GQ:PL	0/1:17,4:20: [...]
+1	1120370	rs74046640	C	G	637.12	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=0.595;DB;DP=1533;Dels=0.00;FS=4.312;HaplotypeScore=0.4421;InbreedingCoeff=-0.0309;MLEAC=3;MLEAF=0.030;MQ=55.77;MQ0=0;MQRankSum=1.366;QD=10.80;ReadPosRankSum=0.970;SNPEFF_AMINO_ACID_CHANGE=L355V;SNPEFF_CODON_CHANGE=Ctg/Gtg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1120349_1121244;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=TTLL10;SNPEFF_IMPACT=MODERATE;SNPE [...]
+1	1120377	rs116321663	T	A	220.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=2.263;DB;DP=1631;Dels=0.00;FS=0.000;HaplotypeScore=0.4840;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=55.37;MQ0=0;MQRankSum=2.741;QD=12.23;ReadPosRankSum=-0.441;SNPEFF_AMINO_ACID_CHANGE=M357K;SNPEFF_CODON_CHANGE=aTg/aAg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1120349_1121244;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=TTLL10;SNPEFF_IMPACT=MODERATE;SN [...]
+1	1120431	rs1320571	G	A	14417.02	PASS	AC=20;AF=0.200;AN=100;BaseQRankSum=-12.760;DB;DP=1876;Dels=0.00;FS=4.673;HaplotypeScore=0.3230;InbreedingCoeff=0.1250;MLEAC=20;MLEAF=0.200;MQ=56.40;MQ0=0;MQRankSum=3.518;QD=20.25;ReadPosRankSum=-2.166;SNPEFF_AMINO_ACID_CHANGE=S375N;SNPEFF_CODON_CHANGE=aGt/aAt;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1120349_1121244;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=TTLL10;SNPEFF_IMPACT=MODERATE [...]
+1	1120488	rs74475385	A	C	641.98	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-1.440;DB;DP=1912;Dels=0.00;FS=6.318;HaplotypeScore=0.5771;InbreedingCoeff=-0.0187;MLEAC=1;MLEAF=0.010;MQ=57.56;MQ0=0;MQRankSum=2.697;QD=8.02;ReadPosRankSum=-1.265;SNPEFF_AMINO_ACID_CHANGE=K394T;SNPEFF_CODON_CHANGE=aAg/aCg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1120349_1121244;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=TTLL10;SNPEFF_IMPACT=MODERATE;SNP [...]
+1	1120503	rs116251234	G	A	305.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-6.195;DB;DP=1869;Dels=0.00;FS=8.945;HaplotypeScore=0.4827;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=57.84;MQ0=0;MQRankSum=1.103;QD=3.72;ReadPosRankSum=-1.793;SNPEFF_AMINO_ACID_CHANGE=C399Y;SNPEFF_CODON_CHANGE=tGc/tAc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1120349_1121244;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=TTLL10;SNPEFF_IMPACT=MODERATE;SN [...]
+1	1120536	rs77950429	G	A	2662.47	PASS	AC=5;AF=0.050;AN=100;BaseQRankSum=-0.987;DB;DP=1475;Dels=0.00;FS=3.207;HaplotypeScore=0.3647;InbreedingCoeff=-0.0529;MLEAC=5;MLEAF=0.050;MQ=57.96;MQ0=0;MQRankSum=0.529;QD=13.80;ReadPosRankSum=-1.922;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=TTLL10;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000460998;VQSLOD=4.94;culprit=MQ	GT:AD:DP:GQ:PL	0/0:24,0:24:69:0,69,817	0/0:28,0:28:84 [...]
+1	1139202	rs2298213	T	C	1239.37	PASS	AC=16;AF=0.163;AN=98;BaseQRankSum=1.124;DB;DP=276;Dels=0.00;FS=2.200;HaplotypeScore=0.2314;InbreedingCoeff=0.1054;MLEAC=15;MLEAF=0.153;MQ=58.26;MQ0=0;MQRankSum=0.247;QD=11.37;ReadPosRankSum=-1.776;SNPEFF_AMINO_ACID_CHANGE=P179;SNPEFF_CODON_CHANGE=ccA/ccG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1138888_1139340;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TNFRSF18;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID [...]
+1	1139498	rs11466693	C	T	292.34	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-2.184;DB;DP=688;Dels=0.00;FS=4.192;HaplotypeScore=0.4994;InbreedingCoeff=-0.0240;MLEAC=2;MLEAF=0.020;MQ=59.41;MQ0=0;MQRankSum=-0.078;QD=9.74;ReadPosRankSum=0.429;SNPEFF_AMINO_ACID_CHANGE=V173M;SNPEFF_CODON_CHANGE=Gtg/Atg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1139435_1139616;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TNFRSF18;SNPEFF_IMPACT=MODERATE;SNPEFF_T [...]
+1	1139547	.	C	T	31.26	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.063;DP=630;Dels=0.00;FS=2.593;HaplotypeScore=0.4362;InbreedingCoeff=-0.0144;MLEAC=1;MLEAF=0.010;MQ=58.81;MQ0=0;MQRankSum=1.373;QD=3.91;ReadPosRankSum=0.742;SNPEFF_AMINO_ACID_CHANGE=G156;SNPEFF_CODON_CHANGE=ggG/ggA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1139435_1139616;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TNFRSF18;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST000003792 [...]
+1	1139565	rs61761323	G	A	567.31	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-2.312;DB;DP=745;Dels=0.00;FS=0.000;HaplotypeScore=0.3168;InbreedingCoeff=-0.0228;MLEAC=2;MLEAF=0.020;MQ=58.81;MQ0=0;MQRankSum=1.159;QD=13.19;ReadPosRankSum=1.412;SNPEFF_AMINO_ACID_CHANGE=N150;SNPEFF_CODON_CHANGE=aaC/aaT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1139435_1139616;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TNFRSF18;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID [...]
+1	1139862	rs11466691	T	C	395.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=4.920;DB;DP=1988;Dels=0.00;FS=1.293;HaplotypeScore=0.3883;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.04;MQ0=0;MQRankSum=0.336;QD=15.20;ReadPosRankSum=-0.918;SNPEFF_AMINO_ACID_CHANGE=K105;SNPEFF_CODON_CHANGE=aaA/aaG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1139779_1139866;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TNFRSF18;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_I [...]
+1	1141723	rs11466678	A	G	112.49	PASS	AC=4;AF=0.065;AN=62;BaseQRankSum=1.989;DB;DP=64;Dels=0.00;FS=5.756;HaplotypeScore=0.0000;InbreedingCoeff=-0.0243;MLEAC=4;MLEAF=0.065;MQ=58.28;MQ0=0;MQRankSum=0.057;QD=14.06;ReadPosRankSum=-0.663;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TNFRSF4;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000379236;VQSLOD=5.64;culprit=MQ	GT:AD:DP:GQ:PL	0/0:2,0:2:6:0,6,69	0/0:2,0:2:6:0,6,71	0/0:3,0:3: [...]
+1	1141824	rs11466676	G	C	94.64	PASS	AC=7;AF=0.113;AN=62;BaseQRankSum=0.022;DB;DP=55;Dels=0.00;FS=3.310;HaplotypeScore=0.0509;InbreedingCoeff=0.1317;MLEAC=6;MLEAF=0.097;MQ=58.44;MQ0=0;MQRankSum=-0.373;QD=9.46;ReadPosRankSum=1.076;SNPEFF_AMINO_ACID_CHANGE=T43R;SNPEFF_CODON_CHANGE=aCg/aGg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1141765_1141951;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TNFRSF18;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCR [...]
+1	1147108	.	G	C	452.93	VQSRTrancheSNP99.50to99.90	AC=23;AF=0.245;AN=94;BaseQRankSum=-5.961;DP=290;Dels=0.00;FS=54.941;HaplotypeScore=0.2645;InbreedingCoeff=-0.3669;MLEAC=24;MLEAF=0.255;MQ=57.70;MQ0=0;MQRankSum=1.865;QD=2.54;ReadPosRankSum=-1.650;SNPEFF_AMINO_ACID_CHANGE=P247A;SNPEFF_CODON_CHANGE=Ccc/Gcc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1147084_1147212;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TNFRSF4;SNPEFF_IMPACT=MODERA [...]
+1	1147243	rs2298211	A	C	721.18	PASS	AC=14;AF=0.143;AN=98;BaseQRankSum=4.461;DB;DP=255;Dels=0.00;FS=5.837;HaplotypeScore=0.2488;InbreedingCoeff=0.3908;MLEAC=12;MLEAF=0.122;MQ=57.98;MQ0=0;MQRankSum=1.434;QD=20.03;ReadPosRankSum=-3.805;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TNFRSF4;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000379236;VQSLOD=4.26;culprit=MQ	GT:AD:DP:GQ:PL	0/0:2,0:2:6:0,6,71	0/0:7,0:7:21:0,21,244	0/0:6,0:6: [...]
+1	1147296	.	C	T	170.29	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=-2.163;DP=331;Dels=0.00;FS=15.996;HaplotypeScore=0.3569;InbreedingCoeff=0.2751;MLEAC=2;MLEAF=0.020;MQ=58.06;MQ0=0;MQRankSum=0.454;QD=18.92;ReadPosRankSum=-0.262;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000360001;VQSLOD=2.99;culprit=FS	GT:AD:DP:GQ:PL	0/0:3,0:3:9:0,9,106	0/0:5,0:5:15:0,15,189	0/0:4,0:4:12:0,12, [...]
+1	1147297	rs2298212	G	A	938.06	PASS	AC=14;AF=0.140;AN=100;BaseQRankSum=2.937;DB;DP=337;Dels=0.00;FS=1.810;HaplotypeScore=0.3569;InbreedingCoeff=0.3434;MLEAC=12;MLEAF=0.120;MQ=58.13;MQ0=0;MQRankSum=1.579;QD=14.89;ReadPosRankSum=-0.993;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000360001;VQSLOD=5.19;culprit=MQ	GT:AD:DP:GQ:PL	0/0:5,0:5:15:0,15,167	0/0:5,0:5:15:0,15,162	0/0:4 [...]
+1	1147422	rs17568	C	T	16834.05	PASS	AC=40;AF=0.400;AN=100;BaseQRankSum=-12.108;DB;DP=1219;Dels=0.00;FS=0.942;HaplotypeScore=0.6440;InbreedingCoeff=0.2496;MLEAC=40;MLEAF=0.400;MQ=58.89;MQ0=0;MQRankSum=0.957;QD=22.57;ReadPosRankSum=-1.370;SNPEFF_AMINO_ACID_CHANGE=E178;SNPEFF_CODON_CHANGE=gaG/gaA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1147322_1147518;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TNFRSF4;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ [...]
+1	1147486	rs150220682	G	A	964.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=0.199;DB;DP=1578;Dels=0.00;FS=1.348;HaplotypeScore=0.9890;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=58.43;MQ0=0;MQRankSum=2.785;QD=13.39;ReadPosRankSum=1.265;SNPEFF_AMINO_ACID_CHANGE=P157L;SNPEFF_CODON_CHANGE=cCg/cTg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1147322_1147518;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TNFRSF4;SNPEFF_IMPACT=MODERATE;SNPEFF_T [...]
+1	1147983	rs11260559	C	T	115.86	PASS	AC=5;AF=0.100;AN=50;BaseQRankSum=-1.063;DB;DP=47;Dels=0.00;FS=0.000;HaplotypeScore=0.3581;InbreedingCoeff=0.1233;MLEAC=5;MLEAF=0.100;MQ=56.71;MQ0=0;MQRankSum=0.000;QD=19.31;ReadPosRankSum=-1.472;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000263741;VQSLOD=3.18;culprit=MQ	GT:AD:DP:GQ:PL	./.	0/0:1,0:1:3:0,3,39	./.	./.	./.	./.	./.	./.	./.	 [...]
+1	1147985	rs11260560	C	A	167.52	PASS	AC=5;AF=0.093;AN=54;BaseQRankSum=-2.503;DB;DP=52;Dels=0.00;FS=0.000;HaplotypeScore=0.2951;InbreedingCoeff=0.1304;MLEAC=5;MLEAF=0.093;MQ=57.06;MQ0=0;MQRankSum=1.669;QD=20.94;ReadPosRankSum=-1.283;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000263741;VQSLOD=3.68;culprit=MQ	GT:AD:DP:GQ:PL	./.	0/0:1,0:1:3:0,3,39	0/0:2,0:2:6:0,6,74	./.	./.	. [...]
+1	1148100	rs34108055	G	C	352.12	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-1.796;DB;DP=360;Dels=0.00;FS=1.079;HaplotypeScore=0.2761;InbreedingCoeff=-0.0482;MLEAC=2;MLEAF=0.020;MQ=58.23;MQ0=0;MQRankSum=-0.442;QD=14.08;ReadPosRankSum=-2.256;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000263741;VQSLOD=5.22;culprit=FS	GT:AD:DP:GQ:PL	0/0:1,0:1:3:0,3,39	0/0:7,0:7:21:0,21,265	0/0:8, [...]
+1	1148358	rs35033502	G	A	895.54	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-5.649;DB;DP=756;Dels=0.00;FS=2.874;HaplotypeScore=0.6591;InbreedingCoeff=-0.0303;MLEAC=2;MLEAF=0.020;MQ=59.52;MQ0=0;MQRankSum=0.522;QD=13.99;ReadPosRankSum=-0.698;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000263741;VQSLOD=7.83;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:15,0:15:45:0,45,555	0/0:21,0:21: [...]
+1	1149316	rs35737009	C	G	1416.42	PASS	AC=8;AF=0.080;AN=100;BaseQRankSum=-4.698;DB;DP=389;Dels=0.00;FS=13.861;HaplotypeScore=0.3927;InbreedingCoeff=0.0899;MLEAC=8;MLEAF=0.080;MQ=58.25;MQ0=0;MQRankSum=1.010;QD=15.40;ReadPosRankSum=0.133;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000263741;VQSLOD=4.57;culprit=FS	GT:AD:DP:GQ:PL	0/0:7,0:7:21:0,21,265	0/0:6,0:6:18:0,18,227	0/0: [...]
+1	1153009	rs116328547	G	A	858.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=1.224;DB;DP=3871;Dels=0.00;FS=6.160;HaplotypeScore=0.2069;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.31;MQ0=0;MQRankSum=-0.494;QD=11.44;ReadPosRankSum=-2.576;SNPEFF_AMINO_ACID_CHANGE=A324;SNPEFF_CODON_CHANGE=gcC/gcT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1152288_1153068;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID= [...]
+1	1153039	rs139426313	G	A	782.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.817;DB;DP=4234;Dels=0.00;FS=0.000;HaplotypeScore=0.3295;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.46;MQ0=0;MQRankSum=-0.799;QD=10.43;ReadPosRankSum=1.030;SNPEFF_AMINO_ACID_CHANGE=N314;SNPEFF_CODON_CHANGE=aaC/aaT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1152288_1153068;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID= [...]
+1	1153077	rs150377323	G	A	648.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.125;DB;DP=3584;Dels=0.00;FS=9.107;HaplotypeScore=0.8191;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.31;MQ0=0;MQRankSum=-1.067;QD=10.45;ReadPosRankSum=-2.836;SNPEFF_AMINO_ACID_CHANGE=L340;SNPEFF_CODON_CHANGE=ctC/ctT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1152311_1153184;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID [...]
+1	1153113	rs12036216	G	A	7802.77	PASS	AC=13;AF=0.130;AN=100;BaseQRankSum=-2.491;DB;DP=1685;Dels=0.00;FS=2.703;HaplotypeScore=1.5024;InbreedingCoeff=0.0274;MLEAC=13;MLEAF=0.130;MQ=58.78;MQ0=0;MQRankSum=-0.128;QD=18.36;ReadPosRankSum=1.871;SNPEFF_AMINO_ACID_CHANGE=L328;SNPEFF_CODON_CHANGE=ctC/ctT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1152311_1153184;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID [...]
+1	1154121	rs112680577	G	A	490.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=3.690;DB;DP=3513;Dels=0.00;FS=1.344;HaplotypeScore=0.1529;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.67;MQ0=0;MQRankSum=-0.016;QD=12.57;ReadPosRankSum=-1.528;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000545427;VQSLOD=9.43;culprit=FS	GT:AD:DP:GQ:PL	0/0:59,0:59:99:0,177,1917	0/0:71,0:71:99:0,214 [...]
+1	1154318	.	C	T	606.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=1.427;DP=4220;Dels=0.00;FS=1.794;HaplotypeScore=0.1369;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.80;MQ0=0;MQRankSum=2.357;QD=8.08;ReadPosRankSum=-2.836;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000545427;VQSLOD=6.53;culprit=QD	GT:AD:DP:GQ:PL	0/0:94,0:94:99:0,283,3055	0/0:80,0:80:99:0,241,2600	0/0:80,0: [...]
+1	1158631	rs6603781	A	G	87610.56	PASS	AC=92;AF=0.920;AN=100;BaseQRankSum=-10.313;DB;DP=2899;Dels=0.00;FS=19.158;HaplotypeScore=0.5914;InbreedingCoeff=-0.0870;MLEAC=92;MLEAF=0.920;MQ=59.55;MQ0=0;MQRankSum=-0.875;QD=30.22;ReadPosRankSum=0.175;SNPEFF_AMINO_ACID_CHANGE=D190;SNPEFF_CODON_CHANGE=gaT/gaC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1158624_1158737;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT [...]
+1	1158667	rs59813672	G	A	705.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=1.231;DB;DP=4346;Dels=0.00;FS=0.000;HaplotypeScore=0.2481;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.44;MQ0=0;MQRankSum=1.458;QD=18.56;ReadPosRankSum=-2.507;SNPEFF_AMINO_ACID_CHANGE=A178;SNPEFF_CODON_CHANGE=gcC/gcT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1158624_1158737;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=EN [...]
+1	1163804	rs7515488	C	T	3114.64	PASS	AC=20;AF=0.200;AN=100;BaseQRankSum=-8.635;DB;DP=629;Dels=0.00;FS=2.559;HaplotypeScore=1.6667;InbreedingCoeff=-0.1364;MLEAC=20;MLEAF=0.200;MQ=57.83;MQ0=0;MQRankSum=0.696;QD=11.71;ReadPosRankSum=1.175;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000263741;VQSLOD=4.12;culprit=InbreedingCoeff	GT:AD:DP:GQ:PL	0/0:13,0:14:36:0,36,433	0/0:18,0:18:54 [...]
+1	1163811	rs3831195	G	GGACA	3714.19	PASS	AC=16;AF=0.160;AN=100;BaseQRankSum=-3.663;DB;DP=741;FS=12.198;HaplotypeScore=14.1352;InbreedingCoeff=0.0859;MLEAC=15;MLEAF=0.150;MQ=58.09;MQ0=0;MQRankSum=-5.029;QD=19.86;RPA=1,2;RU=GACA;ReadPosRankSum=0.005;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000263741;STR	GT:AD:DP:GQ:PL	0/0:14,0:14:42:0,42,874	0/0:19,0:19:57:0,57,2026	0/0:11,0: [...]
+1	1163964	rs78548753	G	A	1451.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=4.790;DB;DP=3750;Dels=0.00;FS=2.183;HaplotypeScore=0.0720;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=59.61;MQ0=0;MQRankSum=-0.132;QD=11.52;ReadPosRankSum=-1.228;SNPEFF_AMINO_ACID_CHANGE=D70;SNPEFF_CODON_CHANGE=gaC/gaT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1163848_1164326;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=E [...]
+1	1164031	rs61744664	A	G	3294.28	PASS	AC=4;AF=0.040;AN=100;BaseQRankSum=10.935;DB;DP=4190;Dels=0.00;FS=0.000;HaplotypeScore=0.1389;InbreedingCoeff=-0.0417;MLEAC=4;MLEAF=0.040;MQ=59.19;MQ0=0;MQRankSum=0.384;QD=12.62;ReadPosRankSum=-3.406;SNPEFF_AMINO_ACID_CHANGE=V48A;SNPEFF_CODON_CHANGE=gTa/gCa;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1163848_1164326;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=MODERATE;SNPEFF_TRA [...]
+1	1164072	rs61745645	C	T	2434.28	PASS	AC=4;AF=0.040;AN=100;BaseQRankSum=4.907;DB;DP=2634;Dels=0.00;FS=9.141;HaplotypeScore=0.1683;InbreedingCoeff=-0.0417;MLEAC=4;MLEAF=0.040;MQ=59.47;MQ0=0;MQRankSum=-0.446;QD=12.36;ReadPosRankSum=-3.326;SNPEFF_AMINO_ACID_CHANGE=A34;SNPEFF_CODON_CHANGE=gcG/gcA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1163848_1164326;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=E [...]
+1	1164090	rs61745652	T	C	1875.28	PASS	AC=4;AF=0.040;AN=100;BaseQRankSum=-4.382;DB;DP=1996;Dels=0.00;FS=5.493;HaplotypeScore=0.3177;InbreedingCoeff=-0.0417;MLEAC=4;MLEAF=0.040;MQ=59.72;MQ0=0;MQRankSum=0.417;QD=10.42;ReadPosRankSum=-4.229;SNPEFF_AMINO_ACID_CHANGE=A28;SNPEFF_CODON_CHANGE=gcA/gcG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1163848_1164326;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=E [...]
+1	1164179	rs76230175	G	A	1172.75	PASS	AC=4;AF=0.040;AN=100;BaseQRankSum=-0.309;DB;DP=629;Dels=0.00;FS=0.000;HaplotypeScore=0.4909;InbreedingCoeff=-0.0514;MLEAC=4;MLEAF=0.040;MQ=58.59;MQ0=0;MQRankSum=1.204;QD=15.04;ReadPosRankSum=-1.439;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000459994;VQSLOD=6.14;culprit=MQ	GT:AD:DP:GQ:PL	0/0:13,0:13:39:0,39,481	0/0:18,0:18:45:0,45,570 [...]
+1	1168180	rs12085009	G	C	1325.78	PASS	AC=11;AF=0.110;AN=100;BaseQRankSum=1.659;DB;DP=262;Dels=0.00;FS=5.929;HaplotypeScore=0.0894;InbreedingCoeff=0.0222;MLEAC=11;MLEAF=0.110;MQ=58.65;MQ0=0;MQRankSum=3.434;QD=15.07;ReadPosRankSum=-0.612;SNPEFF_AMINO_ACID_CHANGE=E174D;SNPEFF_CODON_CHANGE=gaG/gaC;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1167629_1170421;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=B3GALT6;SNPEFF_IMPACT=MODERATE;SNPEFF_ [...]
+1	1177918	rs139102213	CT	C	326.60	PASS	AC=8;AF=0.091;AN=88;BaseQRankSum=-1.557;DB;DP=157;FS=19.564;HaplotypeScore=2.8667;InbreedingCoeff=0.1163;MLEAC=7;MLEAF=0.080;MQ=57.60;MQ0=0;MQRankSum=1.933;QD=17.19;ReadPosRankSum=-2.531;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=FAM132A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000468365	GT:AD:DP:GQ:PL	0/0:3,0:3:9:0,9,98	0/0:5,0:5:15:0,15,227	0/0:2,0:2:6:0,6,65	1/1:0,2:2:6 [...]
+1	1177981	rs59852185	C	T	235.94	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=-1.118;DB;DP=299;Dels=0.00;FS=1.607;HaplotypeScore=0.1710;InbreedingCoeff=-0.0718;MLEAC=3;MLEAF=0.030;MQ=58.77;MQ0=0;MQRankSum=1.351;QD=9.44;ReadPosRankSum=-1.332;SNPEFF_AMINO_ACID_CHANGE=V286I;SNPEFF_CODON_CHANGE=Gtc/Atc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1177833_1178026;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=FAM132A;SNPEFF_IMPACT=MODERATE;SNP [...]
+1	1178244	rs74511182	G	C	1317.12	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=1.347;DB;DP=1516;Dels=0.00;FS=0.000;HaplotypeScore=1.9453;InbreedingCoeff=-0.0309;MLEAC=3;MLEAF=0.030;MQ=59.30;MQ0=0;MQRankSum=-0.331;QD=11.26;ReadPosRankSum=0.100;SNPEFF_AMINO_ACID_CHANGE=L261V;SNPEFF_CODON_CHANGE=Cta/Gta;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1178215_1178293;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=FAM132A;SNPEFF_IMPACT=MODERATE;S [...]
+1	1178245	rs11260566	C	T	4707.77	PASS	AC=13;AF=0.130;AN=100;BaseQRankSum=1.821;DB;DP=1497;Dels=0.00;FS=2.148;HaplotypeScore=1.8178;InbreedingCoeff=0.0274;MLEAC=13;MLEAF=0.130;MQ=59.30;MQ0=0;MQRankSum=-0.888;QD=11.80;ReadPosRankSum=-1.408;SNPEFF_AMINO_ACID_CHANGE=T260;SNPEFF_CODON_CHANGE=acG/acA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1178215_1178293;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=FAM132A;SNPEFF_IMPACT=LOW;SNPEFF_TRAN [...]
+1	1178266	rs77651834	C	T	1361.28	PASS	AC=4;AF=0.040;AN=100;BaseQRankSum=-6.912;DB;DP=1455;Dels=0.00;FS=2.693;HaplotypeScore=0.7635;InbreedingCoeff=-0.0417;MLEAC=4;MLEAF=0.040;MQ=59.61;MQ0=0;MQRankSum=1.230;QD=11.16;ReadPosRankSum=-0.554;SNPEFF_AMINO_ACID_CHANGE=E253;SNPEFF_CODON_CHANGE=gaG/gaA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1178215_1178293;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=FAM132A;SNPEFF_IMPACT=LOW;SNPEFF_TRANS [...]
+1	1178482	rs78555129	A	G	646.55	PASS	AC=12;AF=0.120;AN=100;BaseQRankSum=3.052;DB;DP=366;Dels=0.00;FS=0.000;HaplotypeScore=0.2874;InbreedingCoeff=-0.0196;MLEAC=11;MLEAF=0.110;MQ=58.65;MQ0=0;MQRankSum=2.865;QD=7.61;ReadPosRankSum=-2.541;SNPEFF_AMINO_ACID_CHANGE=C231R;SNPEFF_CODON_CHANGE=Tgt/Cgt;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1178442_1178532;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=FAM132A;SNPEFF_IMPACT=MODERATE;SN [...]
+1	1178925	rs12093154	G	A	224.49	PASS	AC=9;AF=0.098;AN=92;BaseQRankSum=-3.680;DB;DP=143;Dels=0.00;FS=0.000;HaplotypeScore=0.0867;InbreedingCoeff=0.0361;MLEAC=9;MLEAF=0.098;MQ=59.06;MQ0=0;MQRankSum=-0.020;QD=10.69;ReadPosRankSum=0.180;SNPEFF_AMINO_ACID_CHANGE=A180V;SNPEFF_CODON_CHANGE=gCc/gTc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1178824_1178932;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=FAM132A;SNPEFF_IMPACT=MODERATE;SNPE [...]
+1	1179309	rs113164957	G	A	762.33	PASS	AC=9;AF=0.092;AN=98;BaseQRankSum=2.196;DB;DP=388;Dels=0.00;FS=0.826;HaplotypeScore=0.3006;InbreedingCoeff=0.0684;MLEAC=9;MLEAF=0.092;MQ=57.81;MQ0=0;MQRankSum=0.882;QD=11.05;ReadPosRankSum=0.346;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=FAM132A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000486627;VQSLOD=4.70;culprit=MQ	GT:AD:DP:GQ:PL	0/0:9,0:9:27:0,27,292	0/0:10,0:10:30:0,30, [...]
+1	1179416	.	A	C	452.21	VQSRTrancheSNP99.50to99.90	AC=20;AF=0.200;AN=100;BaseQRankSum=-7.343;DP=373;Dels=0.00;FS=263.651;HaplotypeScore=0.5212;InbreedingCoeff=-0.2857;MLEAC=20;MLEAF=0.200;MQ=57.68;MQ0=0;MQRankSum=-2.506;QD=2.43;ReadPosRankSum=-2.504;SNPEFF_AMINO_ACID_CHANGE=V150G;SNPEFF_CODON_CHANGE=gTg/gGg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1179334_1179485;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=FAM132A;SNPEFF_IMPA [...]
+1	1179720	.	G	A	398.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-5.843;DP=1449;Dels=0.00;FS=0.000;HaplotypeScore=0.1730;InbreedingCoeff=-0.0104;MLEAC=1;MLEAF=0.010;MQ=59.32;MQ0=0;MQRankSum=0.759;QD=12.84;ReadPosRankSum=-0.811;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=FAM132A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000330388;VQSLOD=7.66;culprit=FS	GT:AD:DP:GQ:PL	0/0:25,0:25:75:0,75,945	0/0:29,0:29:87:0,87,1072	0/0:2 [...]
+1	1179747	rs139237071	C	T	119.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=0.890;DB;DP=1386;Dels=0.00;FS=1.272;HaplotypeScore=0.1482;InbreedingCoeff=-0.0102;MLEAC=1;MLEAF=0.010;MQ=59.44;MQ0=0;MQRankSum=-0.214;QD=7.01;ReadPosRankSum=-1.629;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=FAM132A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000330388;VQSLOD=7.54;culprit=QD	GT:AD:DP:GQ:PL	0/0:21,0:21:63:0,63,721	0/0:23,0:23:69:0,6 [...]
+1	1179800	rs115586508	G	A	164.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=1.862;DB;DP=1304;Dels=0.00;FS=3.739;HaplotypeScore=0.3207;InbreedingCoeff=-0.0105;MLEAC=1;MLEAF=0.010;MQ=59.14;MQ0=0;MQRankSum=0.195;QD=10.95;ReadPosRankSum=0.915;SNPEFF_AMINO_ACID_CHANGE=G85;SNPEFF_CODON_CHANGE=ggC/ggT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1179761_1179877;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=FAM132A;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRI [...]
+1	1179887	.	C	T	769.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=3.251;DP=2822;Dels=0.00;FS=4.261;HaplotypeScore=0.3507;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.17;MQ0=0;MQRankSum=0.091;QD=10.39;ReadPosRankSum=0.804;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=FAM132A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000330388;VQSLOD=6.55;culprit=InbreedingCoeff	GT:AD:DP:GQ:PL	0/0:43,0:43:99:0,129,1438	0/0:36,0:36:99:0, [...]
+1	1190685	rs41303853	G	A	968.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=3.043;DB;DP=4078;Dels=0.00;FS=21.159;HaplotypeScore=0.0388;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.43;MQ0=0;MQRankSum=1.839;QD=13.08;ReadPosRankSum=-3.079;SNPEFF_AMINO_ACID_CHANGE=H174;SNPEFF_CODON_CHANGE=caC/caT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1189294_1190867;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=nonsense_mediated_decay;SNPEFF_GENE_NAME=UBE2J2;SNPEFF_IMPACT=LOW;SNPEFF_TRAN [...]
+1	1190772	rs142877043	G	A	853.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=2.344;DB;DP=4939;Dels=0.00;FS=2.044;HaplotypeScore=0.0383;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.96;MQ0=0;MQRankSum=1.323;QD=11.38;ReadPosRankSum=-4.114;SNPEFF_AMINO_ACID_CHANGE=L145;SNPEFF_CODON_CHANGE=ctC/ctT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1189294_1190867;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=nonsense_mediated_decay;SNPEFF_GENE_NAME=UBE2J2;SNPEFF_IMPACT=LOW;SNPEFF_TRAN [...]
+1	1190913	rs35025185	CT	C	5352.41	Indel_FS	AC=5;AF=0.050;AN=100;BaseQRankSum=-0.641;DB;DP=2103;FS=916.231;HaplotypeScore=3.2018;InbreedingCoeff=-0.0526;MLEAC=5;MLEAF=0.050;MQ=60.01;MQ0=0;MQRankSum=-0.789;QD=20.20;RPA=3,2;RU=T;ReadPosRankSum=-2.742;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=nonsense_mediated_decay;SNPEFF_GENE_NAME=UBE2J2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000422076;STR	GT:AD:DP:GQ:PL	0/0:58,0:58:99:0,175,2359	0/0:49,0:49:99:0, [...]
+1	1192515	rs7524470	A	G	4166.46	PASS	AC=5;AF=0.050;AN=100;BaseQRankSum=-0.197;DB;DP=4240;Dels=0.00;FS=0.393;HaplotypeScore=0.2293;InbreedingCoeff=-0.0526;MLEAC=5;MLEAF=0.050;MQ=58.70;MQ0=0;MQRankSum=3.687;QD=12.29;ReadPosRankSum=-4.441;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=nonsense_mediated_decay;SNPEFF_GENE_NAME=UBE2J2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000422076;VQSLOD=6.12;culprit=MQ	GT:AD:DP:GQ:PL	0/0:94,0:94:99:0,283,3396	0/0:87,0:8 [...]
+1	1203271	rs34496935	G	A	2883.12	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=8.615;DB;DP=6182;Dels=0.00;FS=1.371;HaplotypeScore=0.0772;InbreedingCoeff=-0.0309;MLEAC=3;MLEAF=0.030;MQ=59.40;MQ0=0;MQRankSum=1.327;QD=12.81;ReadPosRankSum=-2.692;SNPEFF_AMINO_ACID_CHANGE=A34;SNPEFF_CODON_CHANGE=gcC/gcT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1203242_1203372;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=nonsense_mediated_decay;SNPEFF_GENE_NAME=UBE2J2;SNPEFF_IMPACT=LOW;SNPEFF_TRANS [...]
+1	1203387	rs60981775	G	A	6133.20	PASS	AC=7;AF=0.070;AN=100;BaseQRankSum=-3.383;DB;DP=5980;Dels=0.00;FS=6.158;HaplotypeScore=0.6739;InbreedingCoeff=-0.0753;MLEAC=7;MLEAF=0.070;MQ=59.68;MQ0=0;MQRankSum=0.617;QD=12.70;ReadPosRankSum=-1.401;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=nonsense_mediated_decay;SNPEFF_GENE_NAME=UBE2J2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000347370;VQSLOD=5.98;culprit=InbreedingCoeff	GT:AD:DP:GQ:PL	0/0:127,0:127:99:0,382,447 [...]
+1	1219382	rs114582555	C	G	88.07	PASS	AC=1;AF=0.011;AN=90;BaseQRankSum=-0.452;DB;DP=190;Dels=0.00;FS=2.449;HaplotypeScore=0.1048;InbreedingCoeff=-0.0739;MLEAC=1;MLEAF=0.011;MQ=56.67;MQ0=0;MQRankSum=1.103;QD=12.58;ReadPosRankSum=-2.846;SNPEFF_AMINO_ACID_CHANGE=S29*;SNPEFF_CODON_CHANGE=tCa/tGa;SNPEFF_EFFECT=STOP_GAINED;SNPEFF_EXON_ID=exon_1_1219358_1219470;SNPEFF_FUNCTIONAL_CLASS=NONSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SCNN1D;SNPEFF_IMPACT=HIGH;SNPEFF_TRANSCRIPT_ID=ENST [...]
+1	1219477	.	T	G	36.11	VQSRTrancheSNP98.60to98.80	AC=6;AF=0.077;AN=78;BaseQRankSum=0.033;DP=101;Dels=0.00;FS=0.000;HaplotypeScore=0.2421;InbreedingCoeff=-0.0718;MLEAC=6;MLEAF=0.077;MQ=56.11;MQ0=0;MQRankSum=-1.583;QD=1.90;ReadPosRankSum=-1.911;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SCNN1D;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000325425;VQSLOD=0.678;culprit=QD	GT:AD:DP:GQ:PL	0/0:2,0:2:6:0,6,74	0/0:1,0:1:3:0,3,33	0/0: [...]
+1	1221302	rs113398060	A	G	106.79	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=1.035;DB;DP=328;Dels=0.00;FS=1.834;HaplotypeScore=0.1742;InbreedingCoeff=-0.0378;MLEAC=1;MLEAF=0.010;MQ=58.35;MQ0=0;MQRankSum=0.755;QD=11.87;ReadPosRankSum=-0.525;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SCNN1D;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000467651;VQSLOD=6.36;culprit=MQ	GT:AD:DP:GQ:PL	0/0:3,0:3:9:0,9,108	0/0:14,0:14:42:0,42,506	0/ [...]
+1	1222267	rs11260579	G	C	16654.33	PASS	AC=23;AF=0.230;AN=100;BaseQRankSum=10.931;DB;DP=2576;Dels=0.00;FS=17.053;HaplotypeScore=1.6904;InbreedingCoeff=0.3789;MLEAC=23;MLEAF=0.230;MQ=58.83;MQ0=0;MQRankSum=1.663;QD=19.23;ReadPosRankSum=-2.692;SNPEFF_AMINO_ACID_CHANGE=R180P;SNPEFF_CODON_CHANGE=cGc/cCc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1222148_1222355;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SCNN1D;SNPEFF_IMPACT=MODERATE;SNPE [...]
+1	1222598	rs74046669	C	T	707.32	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=2.110;DB;DP=679;Dels=0.00;FS=0.000;HaplotypeScore=0.4005;InbreedingCoeff=-0.0364;MLEAC=3;MLEAF=0.030;MQ=59.14;MQ0=0;MQRankSum=0.423;QD=13.60;ReadPosRankSum=-2.986;SNPEFF_AMINO_ACID_CHANGE=A246V;SNPEFF_CODON_CHANGE=gCg/gTg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1222489_1222679;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SCNN1D;SNPEFF_IMPACT=MODERATE;SNPEFF_TRA [...]
+1	1222690	rs115316182	C	T	149.71	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=0.632;DB;DP=486;Dels=0.00;FS=0.000;HaplotypeScore=0.7057;InbreedingCoeff=0.0582;MLEAC=2;MLEAF=0.020;MQ=58.09;MQ0=0;MQRankSum=1.446;QD=10.69;ReadPosRankSum=0.068;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SCNN1D;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000467651;VQSLOD=4.27;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/1:3,6:9:7:148,0,7	0/0:16,0:16:48:0 [...]
+1	1222695	rs910556	G	A,C	3136.58	PASS	AC=1,30;AF=0.010,0.306;AN=98;BaseQRankSum=-8.335;DB;DP=399;Dels=0.00;FS=3.725;HaplotypeScore=0.5375;InbreedingCoeff=0.3717;MLEAC=1,27;MLEAF=0.010,0.276;MQ=58.47;MQ0=0;MQRankSum=3.912;QD=16.77;ReadPosRankSum=0.033;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SCNN1D;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000467651;VQSLOD=3.00;culprit=MQ	GT:AD:DP:GQ:PL	0/0:10,0,0:10:30:0,30,356,30,3 [...]
+1	1222958	rs111819661	C	T	753.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=2.335;DB;DP=1554;Dels=0.00;FS=26.039;HaplotypeScore=0.5055;InbreedingCoeff=-0.0205;MLEAC=2;MLEAF=0.020;MQ=59.26;MQ0=0;MQRankSum=1.368;QD=13.70;ReadPosRankSum=-1.939;SNPEFF_AMINO_ACID_CHANGE=R297C;SNPEFF_CODON_CHANGE=Cgc/Tgc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1222888_1222976;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SCNN1D;SNPEFF_IMPACT=MODERATE;SNPEFF_ [...]
+1	1222979	.	G	C	537.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-5.388;DP=1361;Dels=0.00;FS=1.902;HaplotypeScore=1.6463;InbreedingCoeff=-0.0102;MLEAC=1;MLEAF=0.010;MQ=58.88;MQ0=0;MQRankSum=1.693;QD=9.26;ReadPosRankSum=1.479;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000353662;VQSLOD=2.96;culprit=MQ	GT:AD:DP:GQ:PL	0/0:21,0:21:57:0,57,671	0/0:24,0:24:66:0,66,819	0/0:19,0:19: [...]
+1	1223248	rs137916996	C	T	49.24	PASS	AC=1;AF=0.011;AN=94;BaseQRankSum=-2.383;DB;DP=183;Dels=0.00;FS=0.000;HaplotypeScore=0.0723;InbreedingCoeff=-0.0855;MLEAC=1;MLEAF=0.011;MQ=57.45;MQ0=0;MQRankSum=1.124;QD=9.85;ReadPosRankSum=-1.056;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000353662;VQSLOD=3.10;culprit=MQ	GT:AD:DP:GQ:PL	0/0:1,0:1:3:0,3,39	0/0:8,0:8:24:0,24,309	0/0:2,0: [...]
+1	1223385	rs75809000	G	C	747.24	PASS	AC=14;AF=0.194;AN=72;BaseQRankSum=1.485;DB;DP=108;Dels=0.00;FS=0.000;HaplotypeScore=0.1209;InbreedingCoeff=0.3797;MLEAC=14;MLEAF=0.194;MQ=56.31;MQ0=0;MQRankSum=0.767;QD=26.69;ReadPosRankSum=-1.386;SNPEFF_AMINO_ACID_CHANGE=E380Q;SNPEFF_CODON_CHANGE=Gag/Cag;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1223319_1223417;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SCNN1D;SNPEFF_IMPACT=MODERATE;SNPEFF_TRA [...]
+1	1223427	rs13306645	G	A	68.49	PASS	AC=2;AF=0.026;AN=76;BaseQRankSum=-0.709;DB;DP=108;Dels=0.00;FS=0.000;HaplotypeScore=0.1002;InbreedingCoeff=-0.1338;MLEAC=2;MLEAF=0.026;MQ=56.37;MQ0=0;MQRankSum=2.431;QD=7.61;ReadPosRankSum=0.174;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000353662;VQSLOD=4.18;culprit=MQ	GT:AD:DP:GQ:PL	0/0:1,0:1:3:0,3,39	0/0:1,0:1:3:0,3,40	0/0:3,0:3:9:0 [...]
+1	1226307	.	G	C	64.13	VQSRTrancheSNP99.50to99.90	AC=11;AF=0.110;AN=100;BaseQRankSum=-10.181;DP=627;Dels=0.00;FS=242.902;HaplotypeScore=0.5136;InbreedingCoeff=-0.1322;MLEAC=9;MLEAF=0.090;MQ=59.27;MQ0=0;MQRankSum=0.459;QD=0.59;ReadPosRankSum=-0.392;SNPEFF_AMINO_ACID_CHANGE=G486;SNPEFF_CODON_CHANGE=ggG/ggC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1226275_1226333;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SCNN1D;SNPEFF_IMPACT=LOW;SNPEFF_TR [...]
+1	1226512	rs114257304	G	A	106.84	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-0.900;DB;DP=986;Dels=0.00;FS=0.000;HaplotypeScore=0.5586;InbreedingCoeff=-0.0187;MLEAC=1;MLEAF=0.010;MQ=59.69;MQ0=0;MQRankSum=-0.130;QD=5.09;ReadPosRankSum=-0.081;SNPEFF_AMINO_ACID_CHANGE=V518M;SNPEFF_CODON_CHANGE=Gtg/Atg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1226445_1226520;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SCNN1D;SNPEFF_IMPACT=MODERATE;SNPEFF_T [...]
+1	1226690	rs114720027	C	T	351.49	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=0.773;DB;DP=550;Dels=0.00;FS=4.262;HaplotypeScore=0.1621;InbreedingCoeff=-0.0295;MLEAC=2;MLEAF=0.020;MQ=58.87;MQ0=0;MQRankSum=1.640;QD=11.34;ReadPosRankSum=-1.568;SNPEFF_AMINO_ACID_CHANGE=S539;SNPEFF_CODON_CHANGE=tcC/tcT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1226634_1227404;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SCNN1D;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID= [...]
+1	1226757	rs6690013	G	A	1749.79	PASS	AC=15;AF=0.150;AN=100;BaseQRankSum=1.042;DB;DP=619;Dels=0.00;FS=12.041;HaplotypeScore=0.3167;InbreedingCoeff=-0.0313;MLEAC=15;MLEAF=0.150;MQ=58.25;MQ0=0;MQRankSum=-0.068;QD=11.82;ReadPosRankSum=-2.367;SNPEFF_AMINO_ACID_CHANGE=G562S;SNPEFF_CODON_CHANGE=Ggc/Agc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1226634_1227404;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SCNN1D;SNPEFF_IMPACT=MODERATE;SNPEFF [...]
+1	1226851	rs61730205	C	T	630.15	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=-1.472;DB;DP=1013;Dels=0.00;FS=0.834;HaplotypeScore=0.3216;InbreedingCoeff=0.0159;MLEAC=3;MLEAF=0.030;MQ=59.07;MQ0=0;MQRankSum=-0.293;QD=13.70;ReadPosRankSum=-0.829;SNPEFF_AMINO_ACID_CHANGE=P593L;SNPEFF_CODON_CHANGE=cCg/cTg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1226634_1227404;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SCNN1D;SNPEFF_IMPACT=MODERATE;SNPEFF_T [...]
+1	1226889	rs609805	G	A	5555.09	PASS	AC=16;AF=0.160;AN=100;BaseQRankSum=5.838;DB;DP=1216;Dels=0.00;FS=0.359;HaplotypeScore=0.4783;InbreedingCoeff=0.1058;MLEAC=16;MLEAF=0.160;MQ=59.16;MQ0=0;MQRankSum=0.413;QD=16.63;ReadPosRankSum=-2.001;SNPEFF_AMINO_ACID_CHANGE=G606R;SNPEFF_CODON_CHANGE=Ggg/Agg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1226634_1227404;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SCNN1D;SNPEFF_IMPACT=MODERATE;SNPEFF_TR [...]
+1	1226971	rs75670559	T	C	828.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=4.484;DB;DP=1649;Dels=0.00;FS=7.459;HaplotypeScore=0.3037;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=59.38;MQ0=0;MQRankSum=1.277;QD=13.80;ReadPosRankSum=-1.432;SNPEFF_AMINO_ACID_CHANGE=L633P;SNPEFF_CODON_CHANGE=cTt/cCt;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1226634_1227404;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SCNN1D;SNPEFF_IMPACT=MODERATE;SNPEFF_TR [...]
+1	1233912	.	A	G	321.40	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=2.955;DP=656;Dels=0.00;FS=9.470;HaplotypeScore=0.4190;InbreedingCoeff=-0.0204;MLEAC=1;MLEAF=0.010;MQ=59.01;MQ0=0;MQRankSum=0.788;QD=11.08;ReadPosRankSum=-0.829;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000354980;VQSLOD=6.00;culprit=MQ	GT:AD:DP:GQ:PL	0/0:12,0:12:36:0,36,412	0/0:10,0:10:30:0,30,354	0/0:11,0:11: [...]
+1	1233921	.	G	A	573.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=1.298;DP=1114;Dels=0.00;FS=7.313;HaplotypeScore=0.4787;InbreedingCoeff=-0.0105;MLEAC=1;MLEAF=0.010;MQ=58.92;MQ0=0;MQRankSum=-0.852;QD=12.46;ReadPosRankSum=-1.628;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000354980;VQSLOD=5.37;culprit=MQ	GT:AD:DP:GQ:PL	0/0:21,0:21:63:0,63,663	0/0:19,0:19:57:0,57,606	0/0:13,0:1 [...]
+1	1233941	rs1739855	T	C	37046.38	PASS	AC=44;AF=0.440;AN=100;BaseQRankSum=6.371;DB;DP=2355;Dels=0.00;FS=1.559;HaplotypeScore=0.9307;InbreedingCoeff=0.4318;MLEAC=44;MLEAF=0.440;MQ=59.11;MQ0=0;MQRankSum=-1.651;QD=26.48;ReadPosRankSum=-0.024;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000354980;VQSLOD=4.50;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:50,0:50:99:0,150,1849	0/1:20 [...]
+1	1233955	rs140458556	T	A	260.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=1.302;DB;DP=3190;Dels=0.00;FS=0.000;HaplotypeScore=0.8920;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.12;MQ0=0;MQRankSum=0.256;QD=9.29;ReadPosRankSum=0.208;SNPEFF_AMINO_ACID_CHANGE=T243;SNPEFF_CODON_CHANGE=acA/acT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1233947_1234059;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=EN [...]
+1	1234762	rs143899579	AG	A	1858.62	PASS	AC=18;AF=0.180;AN=100;BaseQRankSum=-1.186;DB;DP=401;FS=73.267;HaplotypeScore=3.2309;InbreedingCoeff=0.1907;MLEAC=16;MLEAF=0.160;MQ=59.58;MQ0=0;MQRankSum=0.302;QD=15.89;RPA=5,4;RU=G;ReadPosRankSum=-1.551;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000354980;STR	GT:AD:DP:GQ:PL	0/0:9,0:10:27:0,27,336	0/1:1,5:6:19:174,0,19	0/0:8,0:8:24: [...]
+1	1235511	rs144299532	G	C	926.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=0.054;DB;DP=2389;Dels=0.00;FS=14.956;HaplotypeScore=0.2037;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=58.61;MQ0=0;MQRankSum=1.171;QD=11.87;ReadPosRankSum=-2.547;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000354980;VQSLOD=6.44;culprit=MQ	GT:AD:DP:GQ:PL	0/0:41,0:41:99:0,123,1516	0/0:43,0:43:99:0,12 [...]
+1	1235604	rs75245886	G	A	82.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.801;DB;DP=1222;Dels=0.00;FS=0.000;HaplotypeScore=0.3318;InbreedingCoeff=-0.0102;MLEAC=1;MLEAF=0.010;MQ=59.09;MQ0=0;MQRankSum=0.009;QD=8.22;ReadPosRankSum=-1.114;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000354980;VQSLOD=7.52;culprit=FS	GT:AD:DP:GQ:PL	0/0:24,0:24:72:0,72,887	0/0:20,0:20:60:0,60,765	 [...]
+1	1235845	rs60785581	C	T	1897.26	PASS	AC=4;AF=0.040;AN=100;BaseQRankSum=-2.520;DB;DP=1321;Dels=0.00;FS=0.877;HaplotypeScore=0.4379;InbreedingCoeff=0.4784;MLEAC=4;MLEAF=0.040;MQ=59.37;MQ0=0;MQRankSum=-0.404;QD=20.85;ReadPosRankSum=1.724;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000354980;VQSLOD=5.67;culprit=FS	GT:AD:DP:GQ:PL	0/0:26,0:26:78:0,78,939	0/0:17,0:17:48:0,48,61 [...]
+1	1238492	rs12408158	G	A	1233.58	PASS	AC=13;AF=0.133;AN=98;BaseQRankSum=2.281;DB;DP=298;Dels=0.00;FS=5.926;HaplotypeScore=0.2458;InbreedingCoeff=0.0952;MLEAC=13;MLEAF=0.133;MQ=58.74;MQ0=0;MQRankSum=1.026;QD=18.14;ReadPosRankSum=-0.045;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000438966;VQSLOD=6.24;culprit=MQ	GT:AD:DP:GQ:PL	0/0:6,0:6:18:0,18,184	0/0:9,0:9:27:0,27,315	0/0 [...]
+1	1238583	rs145087137	G	A	163.28	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=0.803;DB;DP=594;Dels=0.00;FS=9.862;HaplotypeScore=0.5034;InbreedingCoeff=-0.0156;MLEAC=1;MLEAF=0.010;MQ=59.18;MQ0=0;MQRankSum=0.540;QD=9.60;ReadPosRankSum=-0.464;SNPEFF_AMINO_ACID_CHANGE=R20C;SNPEFF_CODON_CHANGE=Cgc/Tgc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1238542_1238661;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANS [...]
+1	1244627	.	C	T	178.75	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.223;DP=364;Dels=0.00;FS=8.500;HaplotypeScore=0.4031;InbreedingCoeff=-0.0379;MLEAC=1;MLEAF=0.010;MQ=58.29;MQ0=0;MQRankSum=1.785;QD=11.17;ReadPosRankSum=-0.175;SNPEFF_AMINO_ACID_CHANGE=N99;SNPEFF_CODON_CHANGE=aaC/aaT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1244466_1244653;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PUSL1;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST0000037903 [...]
+1	1244638	rs12094447	G	A	430.65	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=0.278;DB;DP=351;Dels=0.00;FS=0.000;HaplotypeScore=0.2510;InbreedingCoeff=-0.0648;MLEAC=3;MLEAF=0.030;MQ=58.49;MQ0=0;MQRankSum=1.055;QD=13.46;ReadPosRankSum=-0.559;SNPEFF_AMINO_ACID_CHANGE=R103Q;SNPEFF_CODON_CHANGE=cGg/cAg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1244466_1244653;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PUSL1;SNPEFF_IMPACT=MODERATE;SNPEFF_TRAN [...]
+1	1244924	.	T	G	44.87	VQSRTrancheSNP99.50to99.90	AC=9;AF=0.090;AN=100;BaseQRankSum=-4.592;DP=358;Dels=0.00;FS=87.843;HaplotypeScore=0.4217;InbreedingCoeff=-0.1319;MLEAC=8;MLEAF=0.080;MQ=58.51;MQ0=0;MQRankSum=2.155;QD=0.79;ReadPosRankSum=-3.434;SNPEFF_AMINO_ACID_CHANGE=C138W;SNPEFF_CODON_CHANGE=tgT/tgG;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1244834_1244983;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PUSL1;SNPEFF_IMPACT=MODERATE;S [...]
+1	1245176	rs34738574	C	T	389.27	PASS	AC=4;AF=0.044;AN=90;BaseQRankSum=0.969;DB;DP=196;Dels=0.00;FS=3.010;HaplotypeScore=0.1265;InbreedingCoeff=0.1584;MLEAC=4;MLEAF=0.044;MQ=57.81;MQ0=0;MQRankSum=0.817;QD=16.92;ReadPosRankSum=-3.533;SNPEFF_AMINO_ACID_CHANGE=R197W;SNPEFF_CODON_CHANGE=Cgg/Tgg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1245061_1245231;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PUSL1;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSC [...]
+1	1246004	rs2296474	A	G	228650.47	PASS	AC=94;AF=0.940;AN=100;BaseQRankSum=13.172;DB;DP=6275;Dels=0.00;FS=1.095;HaplotypeScore=0.3126;InbreedingCoeff=-0.0638;MLEAC=94;MLEAF=0.940;MQ=59.31;MQ0=0;MQRankSum=-2.817;QD=36.44;ReadPosRankSum=2.787;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=CPSF3L;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000294579;VQSLOD=4.22;culprit=MQRankSum	GT:AD:DP:GQ:PL	1/1:0,127:127:99:4800,382,0	0/1:4 [...]
+1	1246256	rs142589758	CGGCTCTGGGTCACAGGT	C	722.20	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-0.990;DB;DP=4535;FS=184.849;HaplotypeScore=32.8539;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=49.49;MQ0=0;MQRankSum=2.223;QD=6.17;RPA=2,1;RU=GGCTCTGGGTCACAGGT;ReadPosRankSum=-3.495;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=CPSF3L;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000294579;STR	GT:AD:DP:GQ:PL	0/1:29,8:46:99:295,0,449 [...]
+1	1246303	rs41285824	G	A	2870.12	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=0.171;DB;DP=5086;Dels=0.00;FS=4.676;HaplotypeScore=0.7060;InbreedingCoeff=-0.0309;MLEAC=3;MLEAF=0.030;MQ=50.88;MQ0=9;MQRankSum=5.683;QD=14.42;ReadPosRankSum=0.472;SNPEFF_AMINO_ACID_CHANGE=T238;SNPEFF_CODON_CHANGE=acG/acA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1246289_1246451;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PUSL1;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=E [...]
+1	1246487	rs78028248	G	A	1800.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-10.302;DB;DP=2023;Dels=0.00;FS=3.829;HaplotypeScore=1.9729;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=57.79;MQ0=0;MQRankSum=4.543;QD=15.79;ReadPosRankSum=-4.889;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=CPSF3L;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000294579;VQSLOD=3.43;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:42,0:42:99:0,126,1553	0/0: [...]
+1	1247494	rs12103	T	C	3788.14	PASS	AC=40;AF=0.400;AN=100;BaseQRankSum=-4.750;DB;DP=494;Dels=0.00;FS=4.386;HaplotypeScore=0.1702;InbreedingCoeff=0.3632;MLEAC=39;MLEAF=0.390;MQ=58.72;MQ0=0;MQRankSum=-0.625;QD=16.76;ReadPosRankSum=-0.103;SNPEFF_AMINO_ACID_CHANGE=P349;SNPEFF_CODON_CHANGE=ccA/ccG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1247398_1247527;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=CPSF3L;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID [...]
+1	1247555	rs113412865	C	T	508.19	PASS	AC=5;AF=0.051;AN=98;BaseQRankSum=-2.750;DB;DP=248;Dels=0.00;FS=6.263;HaplotypeScore=0.3093;InbreedingCoeff=0.0758;MLEAC=4;MLEAF=0.041;MQ=59.17;MQ0=0;MQRankSum=1.717;QD=12.10;ReadPosRankSum=0.257;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=CPSF3L;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000430786;VQSLOD=5.92;culprit=MQRankSum	GT:AD:DP:GQ:PL	0/0:5,0:5:15:0,15,185	0/0:6,0:6:18:0,18, [...]
+1	1254841	rs10907179	C	G	111191.07	PASS	AC=69;AF=0.690;AN=100;BaseQRankSum=-3.024;DB;DP=4492;Dels=0.00;FS=3.636;HaplotypeScore=0.5490;InbreedingCoeff=0.4857;MLEAC=69;MLEAF=0.690;MQ=59.38;MQ0=0;MQRankSum=0.691;QD=31.88;ReadPosRankSum=-1.030;SNPEFF_AMINO_ACID_CHANGE=G100;SNPEFF_CODON_CHANGE=ggG/ggC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1254713_1254904;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=CPSF3L;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRI [...]
+1	1256507	.	G	GC	647.13	Indel_FS	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.999;DP=1861;FS=218.924;HaplotypeScore=1.7167;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.32;MQ0=0;MQRankSum=-0.191;QD=11.16;RPA=6,7;RU=C;ReadPosRankSum=-2.162;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=CPSF3L;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000530233;STR	GT:AD:DP:GQ:PL	0/0:26,0:26:78:0,78,916	0/0:24,0:24:72:0,72,846	0/0:34,0:34:99:0 [...]
+1	1262276	rs113667133	C	T	3467.10	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=2.521;DB;DP=2831;Dels=0.00;FS=4.811;HaplotypeScore=0.0710;InbreedingCoeff=0.6564;MLEAC=3;MLEAF=0.030;MQ=59.62;MQ0=0;MQRankSum=0.661;QD=26.27;ReadPosRankSum=-1.135;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=GLTPD1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000464957;VQSLOD=6.78;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:54,0:54:99:0,162,1904	0 [...]
+1	1262571	rs147108733	C	T	505.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-4.490;DB;DP=1250;Dels=0.00;FS=0.000;HaplotypeScore=0.5523;InbreedingCoeff=-0.0104;MLEAC=1;MLEAF=0.010;MQ=59.44;MQ0=0;MQRankSum=0.538;QD=11.75;ReadPosRankSum=1.730;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=GLTPD1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000343938;VQSLOD=6.66;culprit=FS	GT:AD:DP:GQ:PL	0/0:22,0:22:60:0,60,720	0/0:38,0:38:99:0,10 [...]
+1	1262591	rs2296472	C	T	22943.98	PASS	AC=67;AF=0.670;AN=100;BaseQRankSum=-6.221;DB;DP=1285;Dels=0.00;FS=11.713;HaplotypeScore=0.8526;InbreedingCoeff=0.4136;MLEAC=67;MLEAF=0.670;MQ=59.47;MQ0=0;MQRankSum=-1.634;QD=23.95;ReadPosRankSum=0.808;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=GLTPD1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000343938;VQSLOD=4.03;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	1/1:1,24:26:72:761,72,0	0/1: [...]
+1	1262695	rs148629756	G	A	750.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-4.914;DB;DP=1699;Dels=0.00;FS=3.457;HaplotypeScore=0.2702;InbreedingCoeff=-0.0206;MLEAC=2;MLEAF=0.020;MQ=59.54;MQ0=0;MQRankSum=1.397;QD=11.91;ReadPosRankSum=-2.277;SNPEFF_AMINO_ACID_CHANGE=R66H;SNPEFF_CODON_CHANGE=cGc/cAc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1262621_1264277;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=GLTPD1;SNPEFF_IMPACT=MODERATE;SN [...]
+1	1262966	rs307349	C	T	15751.52	PASS	AC=71;AF=0.710;AN=100;BaseQRankSum=-7.103;DB;DP=741;Dels=0.00;FS=1.306;HaplotypeScore=0.2878;InbreedingCoeff=0.4231;MLEAC=71;MLEAF=0.710;MQ=59.01;MQ0=0;MQRankSum=-1.199;QD=28.03;ReadPosRankSum=0.530;SNPEFF_AMINO_ACID_CHANGE=R156;SNPEFF_CODON_CHANGE=cgC/cgT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1262621_1264277;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=GLTPD1;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCR [...]
+1	1267651	rs111615792	G	A	1183.78	PASS	AC=6;AF=0.060;AN=100;BaseQRankSum=-1.023;DB;DP=637;Dels=0.00;FS=0.000;HaplotypeScore=0.4612;InbreedingCoeff=-0.0686;MLEAC=6;MLEAF=0.060;MQ=58.79;MQ0=0;MQRankSum=-1.028;QD=10.29;ReadPosRankSum=-0.120;SNPEFF_AMINO_ACID_CHANGE=R247H;SNPEFF_CODON_CHANGE=cGt/cAt;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1267404_1268186;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TAS1R3;SNPEFF_IMPACT=MODERATE;SNPEFF [...]
+1	1267993	.	TGGA	T	326.14	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.096;DP=1175;FS=29.175;HaplotypeScore=8.4510;InbreedingCoeff=-0.0107;MLEAC=1;MLEAF=0.010;MQ=59.35;MQ0=0;MQRankSum=0.370;QD=14.82;RPA=3,2;RU=GGA;ReadPosRankSum=-1.828;SNPEFF_AMINO_ACID_CHANGE=LE361L;SNPEFF_CODON_CHANGE=ctggag/ctg;SNPEFF_EFFECT=CODON_DELETION;SNPEFF_EXON_ID=exon_1_1267404_1268186;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TAS1R3;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCRIPT_ [...]
+1	1268000	.	G	C	602.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.811;DP=1121;Dels=0.00;FS=0.997;HaplotypeScore=1.3484;InbreedingCoeff=-0.0107;MLEAC=1;MLEAF=0.010;MQ=59.36;MQ0=0;MQRankSum=0.325;QD=13.69;ReadPosRankSum=-0.411;SNPEFF_AMINO_ACID_CHANGE=E363D;SNPEFF_CODON_CHANGE=gaG/gaC;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1267404_1268186;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TAS1R3;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCRIPT_ID [...]
+1	1268010	rs147600530	G	T	290.29	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-4.409;DB;DP=1025;Dels=0.00;FS=8.338;HaplotypeScore=1.1633;InbreedingCoeff=-0.0145;MLEAC=1;MLEAF=0.010;MQ=59.36;MQ0=0;MQRankSum=-0.861;QD=10.75;ReadPosRankSum=0.634;SNPEFF_AMINO_ACID_CHANGE=G367C;SNPEFF_CODON_CHANGE=Ggc/Tgc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1267404_1268186;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TAS1R3;SNPEFF_IMPACT=MODERATE;SNPEFF_ [...]
+1	1290581	rs189632301	G	A	556.33	PASS	AC=6;AF=0.075;AN=80;BaseQRankSum=-4.492;DB;DP=182;Dels=0.00;FS=7.387;HaplotypeScore=0.1711;InbreedingCoeff=-0.0299;MLEAC=6;MLEAF=0.075;MQ=56.07;MQ0=0;MQRankSum=-1.981;QD=12.36;ReadPosRankSum=-3.520;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=MXRA8;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000309212;VQSLOD=1.54;culprit=MQ	GT:AD:DP:GQ:PL	./.	0/0:2,0:2:6:0,6,77	0/0:3,0:3:9:0,9,106	0 [...]
+1	1290592	.	CGGGAGCTG	C	1028.07	PASS	AC=4;AF=0.043;AN=94;BaseQRankSum=0.814;DP=281;FS=0.000;HaplotypeScore=3.3594;InbreedingCoeff=-0.1121;MLEAC=4;MLEAF=0.043;MQ=55.90;MQ0=0;MQRankSum=-4.547;QD=23.91;ReadPosRankSum=0.564;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=MXRA8;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000309212	GT:AD:DP:GQ:PL	0/0:2,0:2:6:0,6,219	0/0:5,0:5:15:0,15,372	0/0:3,0:3:9:0,9,328	0/0:3,0:3:9:0,9,328	0 [...]
+1	1291159	.	GA	G	519.73	PASS	AC=24;AF=1.00;AN=24;DP=15;FS=0.000;HaplotypeScore=0.6904;InbreedingCoeff=-0.1855;MLEAC=24;MLEAF=1.00;MQ=57.16;MQ0=0;QD=37.12;RPA=2,1;RU=A;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=MXRA8;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000309212;STR	GT:AD:DP:GQ:PL	./.	1/1:0,1:1:3:42,3,0	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	1/1:0,1:1:3:42,3,0	1/1:0,1:1:3:42,3,0	./.	./.	./.	./.	1/1 [...]
+1	1291161	.	A	G	132.73	PASS	AC=9;AF=0.409;AN=22;BaseQRankSum=0.696;DP=14;Dels=0.00;FS=0.000;HaplotypeScore=0.0000;InbreedingCoeff=0.1996;MLEAC=9;MLEAF=0.409;MQ=56.95;MQ0=0;MQRankSum=0.978;QD=18.96;ReadPosRankSum=-2.163;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=MXRA8;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000309212;VQSLOD=3.22;culprit=MQ	GT:AD:DP:GQ:PL	./.	0/0:1,0:1:3:0,3,39	./.	./.	./.	./.	./.	./.	./.	./.	./.	./ [...]
+1	1292131	rs141676214	A	G	177.90	PASS	AC=2;AF=0.020;AN=98;BaseQRankSum=-0.513;DB;DP=327;Dels=0.00;FS=1.439;HaplotypeScore=0.1625;InbreedingCoeff=-0.0669;MLEAC=2;MLEAF=0.020;MQ=59.46;MQ0=0;MQRankSum=1.984;QD=12.71;ReadPosRankSum=-1.192;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=MXRA8;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000309212;VQSLOD=5.77;culprit=FS	GT:AD:DP:GQ:PL	0/0:4,0:4:12:0,12,145	0/0:2,0:2:6:0,6,69	0/0: [...]
+1	1309185	rs111933693	T	C	2421.12	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=7.758;DB;DP=2440;Dels=0.00;FS=3.905;HaplotypeScore=0.1768;InbreedingCoeff=-0.0309;MLEAC=3;MLEAF=0.030;MQ=59.81;MQ0=0;MQRankSum=-0.470;QD=13.68;ReadPosRankSum=-0.815;SNPEFF_AMINO_ACID_CHANGE=K199R;SNPEFF_CODON_CHANGE=aAa/aGa;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1309112_1309282;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AURKAIP1;SNPEFF_IMPACT=MODERATE;SNPE [...]
+1	1309405	rs150194697	T	C	724.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=2.867;DB;DP=4072;Dels=0.00;FS=15.411;HaplotypeScore=0.3207;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.51;MQ0=0;MQRankSum=0.146;QD=12.07;ReadPosRankSum=-1.880;SNPEFF_AMINO_ACID_CHANGE=Q158R;SNPEFF_CODON_CHANGE=cAg/cGg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1309380_1309825;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AURKAIP1;SNPEFF_IMPACT=MODERATE;SNPEF [...]
+1	1309458	rs8146	G	A	2748.12	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=-11.382;DB;DP=4713;Dels=0.00;FS=0.920;HaplotypeScore=0.1779;InbreedingCoeff=-0.0309;MLEAC=3;MLEAF=0.030;MQ=59.19;MQ0=0;MQRankSum=1.733;QD=13.15;ReadPosRankSum=-2.871;SNPEFF_AMINO_ACID_CHANGE=H140;SNPEFF_CODON_CHANGE=caC/caT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1309380_1309825;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AURKAIP1;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID [...]
+1	1309514	rs189539985	C	T	104.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-4.552;DB;DP=4493;Dels=0.00;FS=2.446;HaplotypeScore=0.1300;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.78;MQ0=0;MQRankSum=-0.005;QD=1.39;ReadPosRankSum=0.053;SNPEFF_AMINO_ACID_CHANGE=A122T;SNPEFF_CODON_CHANGE=Gcg/Acg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1309380_1309825;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AURKAIP1;SNPEFF_IMPACT=MODERATE;SNPEFF [...]
+1	1310074	rs2765035	C	G	5721.05	PASS	AC=81;AF=0.844;AN=96;BaseQRankSum=1.039;DB;DP=221;Dels=0.00;FS=1.775;HaplotypeScore=0.0840;InbreedingCoeff=0.0032;MLEAC=80;MLEAF=0.833;MQ=58.58;MQ0=0;MQRankSum=0.804;QD=27.91;ReadPosRankSum=1.578;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AURKAIP1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000321751;VQSLOD=3.99;culprit=MQ	GT:AD:DP:GQ:PL	1/1:0,2:2:6:77,6,0	0/0:3,0:3:9:0,9,111	1/1:0,4:4:1 [...]
+1	1310149	.	G	C	40.68	VQSRTrancheSNP99.50to99.90	AC=8;AF=0.121;AN=66;BaseQRankSum=-3.331;DP=86;Dels=0.00;FS=34.551;HaplotypeScore=0.1365;InbreedingCoeff=-0.1599;MLEAC=8;MLEAF=0.121;MQ=59.57;MQ0=0;MQRankSum=1.000;QD=1.23;ReadPosRankSum=-2.868;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AURKAIP1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000470457;VQSLOD=-2.846e+00;culprit=QD	GT:AD:DP:GQ:PL	0/0:1,0:1:3:0,3,39	./.	0/0:1,0: [...]
+1	1310181	rs112533928	A	G	512.39	PASS	AC=13;AF=0.141;AN=92;BaseQRankSum=2.266;DB;DP=125;Dels=0.00;FS=0.000;HaplotypeScore=0.0217;InbreedingCoeff=0.3007;MLEAC=10;MLEAF=0.109;MQ=59.57;MQ0=0;MQRankSum=1.323;QD=23.29;ReadPosRankSum=0.612;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AURKAIP1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000321751;VQSLOD=6.09;culprit=FS	GT:AD:DP:GQ:PL	0/0:2,0:2:6:0,6,74	0/0:4,0:4:12:0,12,145	0/0:4,0: [...]
+1	1323143	rs141100746	CCT	C	13311.34	PASS	AC=45;AF=0.450;AN=100;BaseQRankSum=-1.765;DB;DP=629;FS=21.384;HaplotypeScore=5.6584;InbreedingCoeff=0.5423;MLEAC=45;MLEAF=0.450;MQ=59.47;MQ0=0;MQRankSum=-0.984;QD=42.39;ReadPosRankSum=-1.669;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=CCNL2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000408918	GT:AD:DP:GQ:PL	1/1:0,23:23:69:1269,69,0	0/1:7,8:15:99:396,0,341	1/1:0,11:11:33:60 [...]
+1	1323143	.	C	G	157.57	VQSRTrancheSNP99.50to99.90	AC=11;AF=0.110;AN=100;BaseQRankSum=-3.824;DP=629;Dels=0.00;FS=6.116;HaplotypeScore=9.2030;InbreedingCoeff=-0.1264;MLEAC=9;MLEAF=0.090;MQ=59.47;MQ0=0;MQRankSum=-0.399;QD=1.19;ReadPosRankSum=-6.920;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=CCNL2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000408918;VQSLOD=-2.575e+00;culprit=QD	GT:AD:DP:GQ:PL	0/1:18,5:22:70:70,0,538	 [...]
+1	1323393	rs145080018	C	T	1347.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-4.383;DB;DP=5257;Dels=0.00;FS=7.366;HaplotypeScore=0.0653;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=59.79;MQ0=0;MQRankSum=0.583;QD=9.23;ReadPosRankSum=-3.717;SNPEFF_AMINO_ACID_CHANGE=K180;SNPEFF_CODON_CHANGE=aaG/aaA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1323334_1323445;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=CCNL2;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCR [...]
+1	1325990	rs147017832	G	A	1953.12	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=-10.170;DB;DP=2022;Dels=0.00;FS=3.580;HaplotypeScore=0.0892;InbreedingCoeff=-0.0309;MLEAC=3;MLEAF=0.030;MQ=59.66;MQ0=0;MQRankSum=1.750;QD=13.20;ReadPosRankSum=-2.037;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=CCNL2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000408918;VQSLOD=7.72;culprit=MQRankSum	GT:AD:DP:GQ:PL	0/0:49,0:49:99:0,147,1852	0/0: [...]
+1	1330726	rs1240746	A	G	10759.94	PASS	AC=59;AF=0.590;AN=100;BaseQRankSum=-5.597;DB;DP=529;Dels=0.00;FS=6.475;HaplotypeScore=0.3413;InbreedingCoeff=0.5729;MLEAC=61;MLEAF=0.610;MQ=58.80;MQ0=0;MQRankSum=0.420;QD=26.77;ReadPosRankSum=-0.470;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=CCNL2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000497013;VQSLOD=6.10;culprit=MQ	GT:AD:DP:GQ:PL	0/0:16,0:16:45:0,45,539	0/1:6,4:10:93:9 [...]
+1	1333597	rs190049110	G	C	1129.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.787;DB;DP=3439;Dels=0.00;FS=0.000;HaplotypeScore=1.0137;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.68;MQ0=0;MQRankSum=0.918;QD=15.06;ReadPosRankSum=-2.925;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MRPL20;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000344843;VQSLOD=6.18;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:96,0:96:99:0,289,3703	0/0:7 [...]
+1	1333598	rs35242196	C	A	33118.31	PASS	AC=29;AF=0.290;AN=100;BaseQRankSum=-13.526;DB;DP=3456;Dels=0.00;FS=0.496;HaplotypeScore=0.9537;InbreedingCoeff=0.6600;MLEAC=29;MLEAF=0.290;MQ=59.68;MQ0=0;MQRankSum=-0.103;QD=28.07;ReadPosRankSum=1.217;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MRPL20;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000344843;VQSLOD=3.24;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:94,0:94:99:0,283,3553	0/0 [...]
+1	1334052	rs3831366	CTAGAG	C	14597.42	Indel_FS	AC=9;AF=0.090;AN=100;BaseQRankSum=-2.943;DB;DP=4458;FS=1675.569;HaplotypeScore=4.3498;InbreedingCoeff=-0.0989;MLEAC=9;MLEAF=0.090;MQ=52.32;MQ0=0;MQRankSum=-16.106;QD=24.87;ReadPosRankSum=-0.810;SNPEFF_EFFECT=SPLICE_SITE_ACCEPTOR;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=CCNL2;SNPEFF_IMPACT=HIGH;SNPEFF_TRANSCRIPT_ID=ENST00000488340	GT:AD:DP:GQ:PL	0/0:98,0:98:99:0,295,7688	0/1:39,23:75:99:1599,0,294 [...]
+1	1334383	.	G	C	52.97	VQSRTrancheSNP98.80to98.90	AC=5;AF=0.057;AN=88;BaseQRankSum=-2.715;DP=193;Dels=0.00;FS=0.000;HaplotypeScore=0.1488;InbreedingCoeff=-0.1450;MLEAC=5;MLEAF=0.057;MQ=49.42;MQ0=0;MQRankSum=-0.363;QD=2.21;ReadPosRankSum=-3.279;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MRPL20;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000344843;VQSLOD=0.234;culprit=QD	GT:AD:DP:GQ:PL	0/0:3,0:3:6:0,6,64	0/0:3,0:3:9:0,9,92 [...]
+1	1334409	.	C	G	473.66	VQSRTrancheSNP99.00to99.30	AC=27;AF=0.300;AN=90;BaseQRankSum=-6.456;DP=177;Dels=0.00;FS=21.834;HaplotypeScore=0.3396;InbreedingCoeff=-0.2393;MLEAC=25;MLEAF=0.278;MQ=54.43;MQ0=0;MQRankSum=-3.607;QD=4.51;ReadPosRankSum=-6.896;SNPEFF_AMINO_ACID_CHANGE=R93P;SNPEFF_CODON_CHANGE=cGc/cCc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1334399_1334692;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=CCNL2;SNPEFF_IMPACT=MO [...]
+1	1334412	.	A	G	62.06	VQSRTrancheSNP98.90to99.00	AC=8;AF=0.085;AN=94;BaseQRankSum=-1.658;DP=176;Dels=0.00;FS=0.000;HaplotypeScore=0.2033;InbreedingCoeff=-0.0556;MLEAC=8;MLEAF=0.085;MQ=58.31;MQ0=0;MQRankSum=-0.750;QD=2.48;ReadPosRankSum=-3.998;SNPEFF_AMINO_ACID_CHANGE=L92P;SNPEFF_CODON_CHANGE=cTc/cCc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1334399_1334692;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=CCNL2;SNPEFF_IMPACT=MODERA [...]
+1	1334519	rs114112990	G	C	871.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=5.348;DB;DP=2805;Dels=0.00;FS=1.586;HaplotypeScore=0.1594;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=57.63;MQ0=0;MQRankSum=2.248;QD=11.62;ReadPosRankSum=-0.067;SNPEFF_AMINO_ACID_CHANGE=D56E;SNPEFF_CODON_CHANGE=gaC/gaG;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1334399_1334692;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=CCNL2;SNPEFF_IMPACT=MODERATE;SNPE [...]
+1	1334700	rs112789149	C	T	208.53	PASS	AC=2;AF=0.050;AN=40;BaseQRankSum=-2.069;DB;DP=58;Dels=0.00;FS=2.623;HaplotypeScore=0.1915;InbreedingCoeff=-0.1497;MLEAC=2;MLEAF=0.050;MQ=55.25;MQ0=0;MQRankSum=1.756;QD=18.96;ReadPosRankSum=-1.548;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MRPL20;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000344843;VQSLOD=1.83;culprit=MQ	GT:AD:DP:GQ:PL	./.	0/0:1,0:1:3:0,3,39	0/0:1,0:1:3:0,3,38	./.	. [...]
+1	1337527	.	G	A	665.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-5.247;DP=5818;Dels=0.00;FS=1.048;HaplotypeScore=0.0438;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.82;MQ0=0;MQRankSum=-1.059;QD=9.24;ReadPosRankSum=-3.629;SNPEFF_AMINO_ACID_CHANGE=A129V;SNPEFF_CODON_CHANGE=gCt/gTt;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1337288_1337636;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MRPL20;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCRIPT_ID [...]
+1	1337592	.	G	C	1079.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=4.392;DP=3526;Dels=0.00;FS=0.000;HaplotypeScore=0.0000;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.97;MQ0=0;MQRankSum=-0.053;QD=15.64;ReadPosRankSum=-4.160;SNPEFF_AMINO_ACID_CHANGE=I107M;SNPEFF_CODON_CHANGE=atC/atG;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1337288_1337636;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MRPL20;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCRIPT_I [...]
+1	1337687	rs141850625	G	A	269.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.669;DB;DP=1105;Dels=0.00;FS=0.000;HaplotypeScore=0.1656;InbreedingCoeff=-0.0103;MLEAC=1;MLEAF=0.010;MQ=59.67;MQ0=0;MQRankSum=-0.661;QD=10.77;ReadPosRankSum=-1.696;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MRPL20;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000477686;VQSLOD=8.00;culprit=FS	GT:AD:DP:GQ:PL	0/0:29,0:29:87:0,87,1096	0/0:37,0:37:99:0,1 [...]
+1	1341185	rs17160977	A	G	873.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-5.963;DB;DP=5520;Dels=0.00;FS=1.020;HaplotypeScore=0.0385;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.58;MQ0=0;MQRankSum=2.761;QD=11.64;ReadPosRankSum=-1.514;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MRPL20;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000477686;VQSLOD=8.51;culprit=FS	GT:AD:DP:GQ:PL	0/0:127,0:127:99:0,382,4696	0/0:126,0:126:99: [...]
+1	1342271	.	TC	T	304.13	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.667;DP=3006;FS=0.000;HaplotypeScore=7.2508;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.73;MQ0=0;MQRankSum=-0.821;QD=9.50;RPA=3,2;RU=C;ReadPosRankSum=-1.076;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MRPL20;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000344843;STR	GT:AD:DP:GQ:PL	0/0:52,0:52:99:0,156,1596	0/0:59,0:62:99:0,178,2355	0/0:44,0:44:99:0,132,179 [...]
+1	1342394	rs11548045	G	A	2793.12	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=-8.131;DB;DP=5927;Dels=0.00;FS=0.000;HaplotypeScore=0.1339;InbreedingCoeff=-0.0309;MLEAC=3;MLEAF=0.030;MQ=59.40;MQ0=0;MQRankSum=2.753;QD=12.64;ReadPosRankSum=-4.290;SNPEFF_AMINO_ACID_CHANGE=F31;SNPEFF_CODON_CHANGE=ttC/ttT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1342289_1342399;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MRPL20;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID [...]
+1	1342612	rs2275915	G	C	3359.61	PASS	AC=34;AF=0.347;AN=98;BaseQRankSum=-5.688;DB;DP=411;Dels=0.00;FS=0.716;HaplotypeScore=0.4018;InbreedingCoeff=0.5425;MLEAC=32;MLEAF=0.327;MQ=59.08;MQ0=0;MQRankSum=2.121;QD=22.10;ReadPosRankSum=-0.849;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MRPL20;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000477686;VQSLOD=5.99;culprit=FS	GT:AD:DP:GQ:PL	0/1:4,2:6:53:53,0,93	0/0:8,0:8:24:0,24,275	0/0 [...]
+1	1372668	rs140319325	C	T	351.23	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.878;DB;DP=699;Dels=0.00;FS=2.168;HaplotypeScore=0.2973;InbreedingCoeff=-0.0127;MLEAC=1;MLEAF=0.010;MQ=58.85;MQ0=0;MQRankSum=0.108;QD=12.54;ReadPosRankSum=-1.190;SNPEFF_AMINO_ACID_CHANGE=G145;SNPEFF_CODON_CHANGE=ggC/ggT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1372307_1372864;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=VWA1;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIP [...]
+1	1374436	rs35368272	C	T	141.23	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.370;DB;DP=770;Dels=0.00;FS=4.576;HaplotypeScore=0.4376;InbreedingCoeff=-0.0128;MLEAC=1;MLEAF=0.010;MQ=59.06;MQ0=0;MQRankSum=2.073;QD=12.84;ReadPosRankSum=0.268;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=VWA1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000471398;VQSLOD=7.18;culprit=MQRankSum	GT:AD:DP:GQ:PL	0/0:12,0:12:36:0,36,431	0/0:10,0:10: [...]
+1	1374451	.	C	T	195.23	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.792;DP=852;Dels=0.00;FS=0.000;HaplotypeScore=0.4411;InbreedingCoeff=-0.0127;MLEAC=1;MLEAF=0.010;MQ=59.02;MQ0=0;MQRankSum=1.257;QD=11.48;ReadPosRankSum=-0.210;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=VWA1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000471398;VQSLOD=5.87;culprit=FS	GT:AD:DP:GQ:PL	0/0:9,0:10:27:0,27,323	0/1:8,9:17:99:235,0,219	0/0:9,0 [...]
+1	1374762	.	G	A	47.10	PASS	AC=3;AF=0.038;AN=80;BaseQRankSum=-1.087;DP=118;Dels=0.00;FS=0.000;HaplotypeScore=0.1537;InbreedingCoeff=0.0544;MLEAC=2;MLEAF=0.025;MQ=58.30;MQ0=0;MQRankSum=0.222;QD=11.77;ReadPosRankSum=0.296;SNPEFF_AMINO_ACID_CHANGE=S311;SNPEFF_CODON_CHANGE=tcG/tcA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1374461_1378262;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=VWA1;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST00000476 [...]
+1	1374805	rs2275916	G	C	124.32	PASS	AC=6;AF=0.167;AN=36;BaseQRankSum=2.050;DB;DP=26;Dels=0.00;FS=0.000;HaplotypeScore=0.0000;InbreedingCoeff=0.0155;MLEAC=6;MLEAF=0.167;MQ=59.44;MQ0=0;MQRankSum=-0.634;QD=13.81;ReadPosRankSum=1.528;SNPEFF_AMINO_ACID_CHANGE=A114P;SNPEFF_CODON_CHANGE=Gcc/Ccc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1374461_1378262;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=VWA1;SNPEFF_IMPACT=MODERATE;SNPEFF_TRA [...]
+1	1374834	rs1892289	A	G	499.07	PASS	AC=27;AF=0.750;AN=36;BaseQRankSum=-1.858;DB;DP=26;Dels=0.00;FS=0.000;HaplotypeScore=0.0555;InbreedingCoeff=0.2144;MLEAC=21;MLEAF=0.583;MQ=58.64;MQ0=0;MQRankSum=0.289;QD=23.77;ReadPosRankSum=0.702;SNPEFF_AMINO_ACID_CHANGE=P123;SNPEFF_CODON_CHANGE=ccA/ccG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1374461_1378262;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=VWA1;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID [...]
+1	1375062	.	C	G	40.36	PASS	AC=2;AF=0.067;AN=30;BaseQRankSum=1.302;DP=22;Dels=0.00;FS=0.000;HaplotypeScore=0.0664;InbreedingCoeff=0.1106;MLEAC=1;MLEAF=0.033;MQ=58.55;MQ0=0;MQRankSum=-0.434;QD=20.18;ReadPosRankSum=1.519;SNPEFF_AMINO_ACID_CHANGE=R199;SNPEFF_CODON_CHANGE=cgC/cgG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1374461_1378262;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=VWA1;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST000004047 [...]
+1	1375185	rs1240699	G	C	285.09	PASS	AC=15;AF=0.375;AN=40;BaseQRankSum=-0.673;DB;DP=32;Dels=0.00;FS=0.000;HaplotypeScore=0.0000;InbreedingCoeff=0.3509;MLEAC=14;MLEAF=0.350;MQ=59.77;MQ0=0;MQRankSum=-0.439;QD=23.76;ReadPosRankSum=-0.966;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=VWA1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000471398;VQSLOD=4.61;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:2,0:2:6:0,6,71	0/0:1,0:1:3: [...]
+1	1375207	rs140247431	T	C	55.74	PASS	AC=4;AF=0.087;AN=46;BaseQRankSum=-0.043;DB;DP=46;Dels=0.00;FS=0.000;HaplotypeScore=0.0869;InbreedingCoeff=0.2174;MLEAC=3;MLEAF=0.065;MQ=59.80;MQ0=0;MQRankSum=-0.904;QD=18.58;ReadPosRankSum=-0.645;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=VWA1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000471398;VQSLOD=5.15;culprit=FS	GT:AD:DP:GQ:PL	0/0:2,0:2:6:0,6,63	0/0:1,0:1:3:0,3,39	./.	0/ [...]
+1	1398008	rs189474682	G	A	321.28	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=1.285;DB;DP=880;Dels=0.00;FS=1.026;HaplotypeScore=0.2535;InbreedingCoeff=-0.0217;MLEAC=2;MLEAF=0.020;MQ=58.94;MQ0=0;MQRankSum=0.944;QD=8.24;ReadPosRankSum=-1.912;SNPEFF_AMINO_ACID_CHANGE=G337R;SNPEFF_CODON_CHANGE=Ggg/Agg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1397980_1398088;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3C;SNPEFF_IMPACT=MODERATE;SNPEFF_TRA [...]
+1	1398032	rs181068440	C	G	180.27	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=2.357;DB;DP=885;Dels=0.00;FS=5.208;HaplotypeScore=0.3278;InbreedingCoeff=-0.0213;MLEAC=2;MLEAF=0.020;MQ=59.43;MQ0=0;MQRankSum=1.463;QD=7.21;ReadPosRankSum=-2.179;SNPEFF_AMINO_ACID_CHANGE=R345G;SNPEFF_CODON_CHANGE=Cgg/Ggg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1397980_1398088;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3C;SNPEFF_IMPACT=MODERATE;SNPEFF_TRA [...]
+1	1398035	rs186498073	C	T	436.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-4.900;DB;DP=886;Dels=0.00;FS=8.274;HaplotypeScore=0.2796;InbreedingCoeff=-0.0107;MLEAC=1;MLEAF=0.010;MQ=59.50;MQ0=0;MQRankSum=1.395;QD=14.54;ReadPosRankSum=1.157;SNPEFF_AMINO_ACID_CHANGE=L346;SNPEFF_CODON_CHANGE=Ctg/Ttg;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1397980_1398088;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3C;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID= [...]
+1	1403772	rs144333159	G	A	583.19	VQSRTrancheSNP98.50to98.60	AC=1;AF=0.010;AN=100;BaseQRankSum=0.835;DB;DP=1170;Dels=0.00;FS=0.833;HaplotypeScore=0.7575;InbreedingCoeff=-0.0103;MLEAC=1;MLEAF=0.010;MQ=50.12;MQ0=7;MQRankSum=2.366;QD=12.41;ReadPosRankSum=1.580;SNPEFF_AMINO_ACID_CHANGE=A366;SNPEFF_CODON_CHANGE=gcG/gcA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1403764_1405538;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3C;SNPEFF_IMPACT=LOW [...]
+1	1403814	rs146537972	C	T	3054.93	PASS	AC=10;AF=0.100;AN=100;BaseQRankSum=-0.791;DB;DP=1361;Dels=0.00;FS=3.107;HaplotypeScore=0.6870;InbreedingCoeff=-0.1113;MLEAC=10;MLEAF=0.100;MQ=52.14;MQ0=0;MQRankSum=-0.322;QD=10.76;ReadPosRankSum=-0.072;SNPEFF_AMINO_ACID_CHANGE=D380;SNPEFF_CODON_CHANGE=gaC/gaT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1403764_1405538;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3C;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRI [...]
+1	1403820	rs111835061	C	T	343.32	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=0.080;DB;DP=1330;Dels=0.00;FS=2.170;HaplotypeScore=0.7434;InbreedingCoeff=-0.0149;MLEAC=1;MLEAF=0.010;MQ=52.20;MQ0=0;MQRankSum=-0.004;QD=13.73;ReadPosRankSum=-0.660;SNPEFF_AMINO_ACID_CHANGE=C382;SNPEFF_CODON_CHANGE=tgC/tgT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1403764_1405538;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3C;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_I [...]
+1	1403887	rs149946098	G	A	830.13	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=-1.786;DB;DP=852;Dels=0.00;FS=0.704;HaplotypeScore=0.8035;InbreedingCoeff=-0.0314;MLEAC=3;MLEAF=0.030;MQ=47.17;MQ0=38;MQRankSum=1.012;QD=10.12;ReadPosRankSum=-0.411;SNPEFF_AMINO_ACID_CHANGE=E405K;SNPEFF_CODON_CHANGE=Gag/Aag;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1403764_1405538;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3C;SNPEFF_IMPACT=MODERATE;SNPEFF_ [...]
+1	1403894	rs145079480	A	G	265.22	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=0.648;DB;DP=790;Dels=0.00;FS=4.077;HaplotypeScore=0.6679;InbreedingCoeff=-0.0120;MLEAC=1;MLEAF=0.010;MQ=44.58;MQ0=62;MQRankSum=-0.139;QD=10.20;ReadPosRankSum=-1.079;SNPEFF_AMINO_ACID_CHANGE=E407G;SNPEFF_CODON_CHANGE=gAg/gGg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1403764_1405538;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3C;SNPEFF_IMPACT=MODERATE;SNPEFF_ [...]
+1	1403972	rs111566296	C	CG	6155.76	PASS	AC=39;AF=0.390;AN=100;BaseQRankSum=1.303;DB;DP=677;FS=5.716;HaplotypeScore=8.2453;InbreedingCoeff=0.2320;MLEAC=39;MLEAF=0.390;MQ=26.73;MQ0=0;MQRankSum=-0.020;QD=13.24;RPA=2,3;RU=G;ReadPosRankSum=-0.860;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3C;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000484537;STR	GT:AD:DP:GQ:PL	0/0:3,0:3:9:0,9,115	0/0:7,0:7:21:0,21,355	0/0:9,0:9:27:0,2 [...]
+1	1404001	rs149123833	G	T	813.05	VQSRTrancheSNP98.50to98.60	AC=9;AF=0.090;AN=100;BaseQRankSum=3.894;DB;DP=751;Dels=0.00;FS=13.258;HaplotypeScore=0.4328;InbreedingCoeff=-0.1056;MLEAC=9;MLEAF=0.090;MQ=36.60;MQ0=162;MQRankSum=1.710;QD=5.69;ReadPosRankSum=-2.329;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3C;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000484537;VQSLOD=0.725;culprit=MQ	GT:AD:DP:GQ:PL	0/0:11,0:11:27:0,27,2 [...]
+1	1404016	rs12089719	G	A	5585.21	VQSRTrancheSNP99.00to99.30	AC=22;AF=0.220;AN=100;BaseQRankSum=5.688;DB;DP=778;Dels=0.00;FS=46.403;HaplotypeScore=0.6541;InbreedingCoeff=0.3869;MLEAC=22;MLEAF=0.220;MQ=41.20;MQ0=108;MQRankSum=0.582;QD=16.10;ReadPosRankSum=-0.183;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3C;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000484537;VQSLOD=-1.039e-01;culprit=FS	GT:AD:DP:GQ:PL	0/0:13,0:13:30 [...]
+1	1404053	.	C	CG	39.94	Indel_QD	AC=4;AF=0.040;AN=100;BaseQRankSum=3.636;DP=720;FS=53.688;HaplotypeScore=10.8209;InbreedingCoeff=-0.0568;MLEAC=3;MLEAF=0.030;MQ=48.68;MQ0=0;MQRankSum=1.313;QD=0.91;RPA=4,5;RU=G;ReadPosRankSum=-3.619;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3C;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000484537;STR	GT:AD:DP:GQ:PL	0/0:15,1:16:39:0,39,541	0/0:2,0:2:6:0,6,41	0/0:12,0:13:36:0,36,462	0/0 [...]
+1	1404076	.	C	A	243.31	VQSRTrancheSNP98.90to99.00	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.635;DP=646;Dels=0.00;FS=1.469;HaplotypeScore=0.2198;InbreedingCoeff=-0.0169;MLEAC=1;MLEAF=0.010;MQ=42.78;MQ0=62;MQRankSum=1.530;QD=8.39;ReadPosRankSum=0.452;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3C;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000484537;VQSLOD=0.142;culprit=MQ	GT:AD:DP:GQ:PL	0/0:17,0:17:24:0,24,308	0/0:3,0:3:9: [...]
+1	1412659	rs146343349	G	T	1349.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=5.456;DB;DP=1886;Dels=0.00;FS=0.000;HaplotypeScore=0.0934;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=57.05;MQ0=0;MQRankSum=2.018;QD=14.35;ReadPosRankSum=-4.364;SNPEFF_AMINO_ACID_CHANGE=A71S;SNPEFF_CODON_CHANGE=Gcc/Tcc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1412654_1412730;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODERATE;SNPEFF_T [...]
+1	1412761	rs112572711	G	A	573.24	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=0.363;DB;DP=1663;Dels=0.00;FS=5.913;HaplotypeScore=0.2278;InbreedingCoeff=-0.0126;MLEAC=1;MLEAF=0.010;MQ=56.91;MQ0=0;MQRankSum=2.675;QD=15.09;ReadPosRankSum=-1.983;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000308647;VQSLOD=4.74;culprit=MQ	GT:AD:DP:GQ:PL	0/0:40,0:40:99:0,120,1456	0/0:26,0:26:78:0,78,936 [...]
+1	1416222	rs147329037	C	T	951.69	VQSRTrancheSNP99.50to99.90	AC=3;AF=0.031;AN=96;BaseQRankSum=-2.937;DB;DP=1817;Dels=0.00;FS=1.522;HaplotypeScore=0.2027;InbreedingCoeff=0.6251;MLEAC=3;MLEAF=0.031;MQ=22.90;MQ0=307;MQRankSum=0.808;QD=10.81;ReadPosRankSum=2.746;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000308647;VQSLOD=-4.666e+00;culprit=MQ	GT:AD:DP:GQ:PL	0/0:44,0:44:99:0,132, [...]
+1	1416235	.	GCTT	G	1256.99	PASS	AC=4;AF=0.042;AN=96;BaseQRankSum=0.001;DP=2031;FS=25.307;HaplotypeScore=7.1005;InbreedingCoeff=0.4615;MLEAC=4;MLEAF=0.042;MQ=21.02;MQ0=0;MQRankSum=3.632;QD=6.35;RPA=2,1;RU=CTT;ReadPosRankSum=-1.166;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000308647;STR	GT:AD:DP:GQ:PL	0/0:49,0:49:99:0,147,1474	0/0:29,0:29:87:0,87,872	0/0:37,0:37:99:0,111,213 [...]
+1	1416236	rs192308564	C	G	224.37	VQSRTrancheSNP99.50to99.90	AC=1;AF=0.010;AN=96;BaseQRankSum=1.162;DB;DP=2096;Dels=0.04;FS=0.000;HaplotypeScore=2.4425;InbreedingCoeff=-0.0113;MLEAC=1;MLEAF=0.010;MQ=21.00;MQ0=369;MQRankSum=2.565;QD=3.03;ReadPosRankSum=2.843;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000308647;VQSLOD=-3.394e+00;culprit=QD	GT:AD:DP:GQ:PL	0/0:51,0:51:99:0,153,1 [...]
+1	1416358	.	G	A	216.80	VQSRTrancheSNP99.50to99.90	AC=3;AF=0.031;AN=98;BaseQRankSum=-3.682;DP=1343;Dels=0.00;FS=0.000;HaplotypeScore=0.6448;InbreedingCoeff=0.4754;MLEAC=3;MLEAF=0.031;MQ=26.11;MQ0=162;MQRankSum=-1.791;QD=3.87;ReadPosRankSum=-2.273;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000308647;VQSLOD=-3.925e+00;culprit=QD	GT:AD:DP:GQ:PL	0/0:47,0:47:99:0,141,1657	0/0:28, [...]
+1	1417662	rs143114169	A	G	367.19	VQSRTrancheSNP99.00to99.30	AC=1;AF=0.010;AN=100;BaseQRankSum=1.446;DB;DP=1370;Dels=0.00;FS=1.919;HaplotypeScore=0.4093;InbreedingCoeff=-0.0105;MLEAC=1;MLEAF=0.010;MQ=34.18;MQ0=71;MQRankSum=-2.257;QD=7.06;ReadPosRankSum=-0.090;SNPEFF_AMINO_ACID_CHANGE=Q114R;SNPEFF_CODON_CHANGE=cAg/cGg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1417654_1417683;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_I [...]
+1	1417696	rs819970	C	G	3427.28	VQSRTrancheSNP99.50to99.90	AC=73;AF=0.777;AN=94;BaseQRankSum=-2.326;DB;DP=481;Dels=0.00;FS=6.189;HaplotypeScore=0.2872;InbreedingCoeff=0.4787;MLEAC=72;MLEAF=0.766;MQ=30.06;MQ0=124;MQRankSum=-12.476;QD=9.96;ReadPosRankSum=-0.368;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000308647;VQSLOD=-4.339e+00;culprit=MQ	GT:AD:DP:GQ:PL	1/1:0,2:2:6:63,6,0	0 [...]
+1	1417927	rs141143061	C	T	581.18	VQSRTrancheSNP99.00to99.30	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.647;DB;DP=4283;Dels=0.00;FS=6.388;HaplotypeScore=0.2720;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=35.90;MQ0=30;MQRankSum=-1.563;QD=7.75;ReadPosRankSum=1.461;SNPEFF_AMINO_ACID_CHANGE=T122M;SNPEFF_CODON_CHANGE=aCg/aTg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1417925_1417994;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_I [...]
+1	1418004	rs819972	T	C	7985.23	VQSRTrancheSNP99.50to99.90	AC=41;AF=0.410;AN=100;BaseQRankSum=13.999;DB;DP=2489;Dels=0.00;FS=2.886;HaplotypeScore=0.5463;InbreedingCoeff=0.4485;MLEAC=41;MLEAF=0.410;MQ=36.07;MQ0=196;MQRankSum=-25.569;QD=7.17;ReadPosRankSum=3.163;SNPEFF_AMINO_ACID_CHANGE=F86L;SNPEFF_CODON_CHANGE=Ttc/Ctc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1417925_1418042;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_I [...]
+1	1418015	.	G	C	120.18	VQSRTrancheSNP99.30to99.50	AC=1;AF=0.010;AN=100;BaseQRankSum=-5.372;DP=2151;Dels=0.00;FS=2.140;HaplotypeScore=0.5893;InbreedingCoeff=-0.0102;MLEAC=1;MLEAF=0.010;MQ=36.55;MQ0=168;MQRankSum=-4.142;QD=1.72;ReadPosRankSum=0.479;SNPEFF_AMINO_ACID_CHANGE=Q89H;SNPEFF_CODON_CHANGE=caG/caC;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1417925_1418042;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODERAT [...]
+1	1420366	.	C	T	212.39	VQSRTrancheSNP99.50to99.90	AC=2;AF=0.037;AN=54;BaseQRankSum=-0.522;DP=475;Dels=0.00;FS=5.209;HaplotypeScore=0.2966;InbreedingCoeff=-0.0907;MLEAC=2;MLEAF=0.037;MQ=14.97;MQ0=180;MQRankSum=0.293;QD=1.93;ReadPosRankSum=-1.452;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378736;VQSLOD=-4.575e+00;culprit=QD	GT:AD:DP:GQ:PL	0/0:4,0:4:12:0,12,115	0/0:5,0: [...]
+1	1420453	rs150679247	G	A	37.68	VQSRTrancheSNP99.00to99.30	AC=1;AF=0.010;AN=98;BaseQRankSum=0.158;DB;DP=485;Dels=0.00;FS=7.172;HaplotypeScore=0.2560;InbreedingCoeff=-0.0267;MLEAC=1;MLEAF=0.010;MQ=31.75;MQ0=39;MQRankSum=0.526;QD=4.71;ReadPosRankSum=-1.128;SNPEFF_AMINO_ACID_CHANGE=V164I;SNPEFF_CODON_CHANGE=Gtc/Atc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1420396_1420551;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPAC [...]
+1	1420532	rs185762308	C	T	1335.22	VQSRTrancheSNP99.00to99.30	AC=3;AF=0.030;AN=100;BaseQRankSum=-0.224;DB;DP=1361;Dels=0.00;FS=1.702;HaplotypeScore=0.7451;InbreedingCoeff=-0.0335;MLEAC=3;MLEAF=0.030;MQ=35.28;MQ0=20;MQRankSum=3.341;QD=9.08;ReadPosRankSum=1.472;SNPEFF_AMINO_ACID_CHANGE=A111V;SNPEFF_CODON_CHANGE=gCg/gTg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1420396_1420551;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_I [...]
+1	1420568	.	G	C	112.25	VQSRTrancheSNP99.00to99.30	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.936;DP=953;Dels=0.00;FS=0.000;HaplotypeScore=1.3774;InbreedingCoeff=-0.0136;MLEAC=1;MLEAF=0.010;MQ=36.24;MQ0=27;MQRankSum=-1.313;QD=5.91;ReadPosRankSum=-2.790;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378736;VQSLOD=-5.889e-01;culprit=MQ	GT:AD:DP:GQ:PL	0/0:17,0:17:51:0,51,567	0/0:1 [...]
+1	1421128	.	T	G	276.13	VQSRTrancheSNP99.50to99.90	AC=13;AF=0.130;AN=100;BaseQRankSum=-7.555;DP=393;Dels=0.00;FS=68.315;HaplotypeScore=0.7827;InbreedingCoeff=-0.1731;MLEAC=12;MLEAF=0.120;MQ=46.06;MQ0=8;MQRankSum=-4.746;QD=2.28;ReadPosRankSum=-9.849;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378736;VQSLOD=-2.256e+00;culprit=FS	GT:AD:DP:GQ:PL	0/0:7,0:7:21:0,21,236	0/0:4 [...]
+1	1421153	rs188705235	C	T	77.20	VQSRTrancheSNP98.80to98.90	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.657;DB;DP=1003;Dels=0.00;FS=3.683;HaplotypeScore=0.4801;InbreedingCoeff=-0.0111;MLEAC=1;MLEAF=0.010;MQ=46.73;MQ0=8;MQRankSum=0.753;QD=3.22;ReadPosRankSum=-0.643;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378736;VQSLOD=0.343;culprit=QD	GT:AD:DP:GQ:PL	0/0:22,0:22:66:0,66,805 [...]
+1	1421188	rs112490584	C	A	133.18	VQSRTrancheSNP99.00to99.30	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.543;DB;DP=1647;Dels=0.00;FS=1.483;HaplotypeScore=1.1780;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=40.64;MQ0=46;MQRankSum=-1.252;QD=6.34;ReadPosRankSum=0.094;SNPEFF_AMINO_ACID_CHANGE=P126;SNPEFF_CODON_CHANGE=ccC/ccA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1421162_1421224;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=L [...]
+1	1421248	rs145894390	T	C	1684.45	VQSRTrancheSNP99.00to99.30	AC=6;AF=0.060;AN=100;BaseQRankSum=-0.183;DB;DP=1547;Dels=0.00;FS=19.153;HaplotypeScore=0.3628;InbreedingCoeff=0.2906;MLEAC=6;MLEAF=0.060;MQ=46.12;MQ0=10;MQRankSum=-5.604;QD=8.77;ReadPosRankSum=-2.781;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378736;VQSLOD=-6.542e-01;culprit=MQ	GT:AD:DP:GQ:PL	0/0:27,0:27:81 [...]
+1	1421531	rs819976	C	A	54816.70	VQSRTrancheSNP98.90to99.00	AC=46;AF=0.460;AN=100;BaseQRankSum=-18.634;DB;DP=3675;Dels=0.00;FS=7.754;HaplotypeScore=0.8461;InbreedingCoeff=0.2754;MLEAC=46;MLEAF=0.460;MQ=52.66;MQ0=8;MQRankSum=-6.282;QD=23.36;ReadPosRankSum=2.204;SNPEFF_AMINO_ACID_CHANGE=T152;SNPEFF_CODON_CHANGE=acC/acA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1421490_1421615;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT= [...]
+1	1421579	rs142840431	T	C	4065.26	VQSRTrancheSNP99.30to99.50	AC=4;AF=0.040;AN=100;BaseQRankSum=1.924;DB;DP=3196;Dels=0.00;FS=0.000;HaplotypeScore=0.6807;InbreedingCoeff=0.4792;MLEAC=4;MLEAF=0.040;MQ=53.43;MQ0=7;MQRankSum=-8.089;QD=19.54;ReadPosRankSum=-0.037;SNPEFF_AMINO_ACID_CHANGE=Y168;SNPEFF_CODON_CHANGE=taT/taC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1421490_1421615;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=L [...]
+1	1421916	.	T	C	7110.06	VQSRTrancheSNP99.50to99.90	AC=31;AF=0.310;AN=100;BaseQRankSum=13.113;DP=3246;Dels=0.00;FS=174.485;HaplotypeScore=1.2890;InbreedingCoeff=-0.4526;MLEAC=31;MLEAF=0.310;MQ=25.28;MQ0=802;MQRankSum=-8.780;QD=3.13;ReadPosRankSum=2.018;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378736;VQSLOD=-1.532e+01;culprit=FS	GT:AD:DP:GQ:PL	0/1:52,23:72:99:294,0,9 [...]
+1	1421954	rs137911966	G	A	305.25	VQSRTrancheSNP99.50to99.90	AC=2;AF=0.020;AN=100;BaseQRankSum=-6.408;DB;DP=2879;Dels=0.00;FS=0.000;HaplotypeScore=0.9177;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=17.92;MQ0=1278;MQRankSum=1.314;QD=2.21;ReadPosRankSum=-1.783;SNPEFF_AMINO_ACID_CHANGE=A191T;SNPEFF_CODON_CHANGE=Gcc/Acc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1421924_1422048;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF [...]
+1	1421991	rs860213	G	A	6436.80	VQSRTrancheSNP99.50to99.90	AC=35;AF=0.357;AN=98;BaseQRankSum=-7.502;DB;DP=2136;Dels=0.00;FS=1.101;HaplotypeScore=1.2296;InbreedingCoeff=0.0434;MLEAC=35;MLEAF=0.357;MQ=18.20;MQ0=842;MQRankSum=3.214;QD=4.48;ReadPosRankSum=0.116;SNPEFF_AMINO_ACID_CHANGE=R203Q;SNPEFF_CODON_CHANGE=cGg/cAg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1421924_1422048;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMP [...]
+1	1423229	rs145173454	T	C	746.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=2.642;DB;DP=4986;Dels=0.00;FS=0.770;HaplotypeScore=1.1541;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=55.56;MQ0=1;MQRankSum=-1.229;QD=9.95;ReadPosRankSum=2.322;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378736;VQSLOD=1.83;culprit=MQ	GT:AD:DP:GQ:PL	0/0:118,0:117:99:0,352,4347	0/0:107,0:106:99:0 [...]
+1	1423237	rs187809296	T	C	843.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=4.239;DB;DP=5139;Dels=0.00;FS=0.000;HaplotypeScore=1.3000;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=55.76;MQ0=1;MQRankSum=-2.295;QD=11.24;ReadPosRankSum=0.151;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378736;VQSLOD=0.876;culprit=MQ	GT:AD:DP:GQ:PL	0/0:121,0:120:99:0,361,4379	0/0:110,0:109:99 [...]
+1	1423267	rs819977	A	G	54080.08	VQSRTrancheSNP98.90to99.00	AC=47;AF=0.470;AN=100;BaseQRankSum=-15.475;DB;DP=3489;Dels=0.00;FS=0.655;HaplotypeScore=2.7184;InbreedingCoeff=0.3175;MLEAC=47;MLEAF=0.470;MQ=55.37;MQ0=1;MQRankSum=-5.926;QD=23.64;ReadPosRankSum=-11.494;SNPEFF_AMINO_ACID_CHANGE=A413;SNPEFF_CODON_CHANGE=gcA/gcG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1423243_1423294;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPAC [...]
+1	1423282	.	GAAGC	G	2049.23	Indel_FS	AC=4;AF=0.040;AN=100;BaseQRankSum=-10.989;DP=2367;FS=555.690;HaplotypeScore=78.2953;InbreedingCoeff=-0.0417;MLEAC=4;MLEAF=0.040;MQ=55.17;MQ0=0;MQRankSum=-1.048;QD=8.20;ReadPosRankSum=-14.511;SNPEFF_EFFECT=FRAME_SHIFT;SNPEFF_EXON_ID=exon_1_1423243_1423294;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=HIGH;SNPEFF_TRANSCRIPT_ID=ENST00000308647	GT:AD:DP:GQ:PL	0/0:48,0:49:99:0,144,3108	0/0:53,0:53:99: [...]
+1	1423286	.	C	G	17541.69	VQSRTrancheSNP99.90to100.00	AC=44;AF=0.440;AN=100;BaseQRankSum=-11.866;DP=2875;Dels=0.03;FS=3200.000;HaplotypeScore=10.9869;InbreedingCoeff=-0.7857;MLEAC=44;MLEAF=0.440;MQ=51.52;MQ0=16;MQRankSum=-14.757;QD=6.80;ReadPosRankSum=-24.129;SNPEFF_AMINO_ACID_CHANGE=R420G;SNPEFF_CODON_CHANGE=Cga/Gga;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1423243_1423294;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_I [...]
+1	1423294	rs142126053	T	C	728.18	VQSRTrancheSNP99.00to99.30	AC=1;AF=0.010;AN=100;BaseQRankSum=-6.358;DB;DP=3390;Dels=0.00;FS=0.731;HaplotypeScore=7.3617;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=48.23;MQ0=34;MQRankSum=-3.379;QD=9.71;ReadPosRankSum=-1.079;SNPEFF_AMINO_ACID_CHANGE=T422;SNPEFF_CODON_CHANGE=acT/acC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1423243_1423294;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT= [...]
+1	1424695	rs144622790	G	A	1741.12	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=-7.085;DB;DP=2938;Dels=0.00;FS=1.744;HaplotypeScore=0.3042;InbreedingCoeff=-0.0309;MLEAC=3;MLEAF=0.030;MQ=59.42;MQ0=0;MQRankSum=0.940;QD=13.60;ReadPosRankSum=-4.527;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000308647;VQSLOD=7.29;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL	0/0:51,0:51:99:0,153,1798	0/0:53,0: [...]
+1	1425667	rs61737193	T	C	246.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.710;DB;DP=2740;Dels=0.00;FS=1.212;HaplotypeScore=0.9236;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=58.42;MQ0=0;MQRankSum=1.689;QD=9.12;ReadPosRankSum=-1.717;SNPEFF_AMINO_ACID_CHANGE=P259;SNPEFF_CODON_CHANGE=ccT/ccC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1425634_1425804;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID= [...]
+1	1425676	rs61737191	C	T	512.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.098;DB;DP=2613;Dels=0.00;FS=7.843;HaplotypeScore=1.0466;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=58.51;MQ0=0;MQRankSum=0.165;QD=10.90;ReadPosRankSum=0.791;SNPEFF_AMINO_ACID_CHANGE=F262;SNPEFF_CODON_CHANGE=ttC/ttT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1425634_1425804;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID= [...]
+1	1425700	rs819980	T	C	39181.08	PASS	AC=47;AF=0.470;AN=100;BaseQRankSum=1.832;DB;DP=2230;Dels=0.00;FS=3.196;HaplotypeScore=1.0702;InbreedingCoeff=0.3175;MLEAC=47;MLEAF=0.470;MQ=58.58;MQ0=0;MQRankSum=-0.283;QD=24.46;ReadPosRankSum=-1.579;SNPEFF_AMINO_ACID_CHANGE=I270;SNPEFF_CODON_CHANGE=atT/atC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1425634_1425804;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_I [...]
+1	1425753	rs145313947	T	C	419.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.727;DB;DP=2451;Dels=0.00;FS=0.832;HaplotypeScore=0.4628;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=58.86;MQ0=0;MQRankSum=0.888;QD=9.53;ReadPosRankSum=-1.852;SNPEFF_AMINO_ACID_CHANGE=V288A;SNPEFF_CODON_CHANGE=gTg/gCg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1425634_1425804;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODERATE;SNPEFF_T [...]
+1	1425816	rs149187984	G	A	3510.90	PASS	AC=10;AF=0.100;AN=100;BaseQRankSum=-8.599;DB;DP=1301;Dels=0.00;FS=3.484;HaplotypeScore=0.9964;InbreedingCoeff=-0.1112;MLEAC=10;MLEAF=0.100;MQ=56.72;MQ0=0;MQRankSum=2.741;QD=11.04;ReadPosRankSum=3.352;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000308647;VQSLOD=3.54;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:23,0:23:69:0,69,841	0/0:21,0:2 [...]
+1	1426002	.	C	T	177.26	VQSRTrancheSNP99.50to99.90	AC=1;AF=0.010;AN=100;BaseQRankSum=1.622;DP=937;Dels=0.00;FS=0.000;HaplotypeScore=0.4703;InbreedingCoeff=-0.0144;MLEAC=1;MLEAF=0.010;MQ=24.30;MQ0=278;MQRankSum=2.163;QD=2.57;ReadPosRankSum=0.181;SNPEFF_AMINO_ACID_CHANGE=T356M;SNPEFF_CODON_CHANGE=aCg/aTg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1425850_1426051;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODERATE; [...]
+1	1426003	rs143153541	G	A	1109.79	VQSRTrancheSNP99.50to99.90	AC=6;AF=0.060;AN=100;BaseQRankSum=-0.214;DB;DP=937;Dels=0.00;FS=2.936;HaplotypeScore=0.5164;InbreedingCoeff=0.2629;MLEAC=6;MLEAF=0.060;MQ=24.34;MQ0=278;MQRankSum=0.214;QD=6.73;ReadPosRankSum=0.746;SNPEFF_AMINO_ACID_CHANGE=T356;SNPEFF_CODON_CHANGE=acG/acA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1425850_1426051;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=LO [...]
+1	1426098	rs112579524	G	A	228.99	VQSRTrancheSNP99.00to99.30	AC=3;AF=0.030;AN=100;BaseQRankSum=-2.982;DB;DP=371;Dels=0.00;FS=5.553;HaplotypeScore=0.1307;InbreedingCoeff=-0.0735;MLEAC=3;MLEAF=0.030;MQ=28.05;MQ0=115;MQRankSum=1.598;QD=6.03;ReadPosRankSum=0.061;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000308647;VQSLOD=-3.431e-01;culprit=MQ	GT:AD:DP:GQ:PL	0/0:7,0:7:6:0,6,69	0/ [...]
+1	1430971	rs147286181	C	T	1276.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=2.820;DB;DP=2863;Dels=0.00;FS=11.733;HaplotypeScore=0.5863;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=58.96;MQ0=5;MQRankSum=0.396;QD=12.51;ReadPosRankSum=-2.546;SNPEFF_AMINO_ACID_CHANGE=A408V;SNPEFF_CODON_CHANGE=gCg/gTg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1430865_1431581;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODERATE;SNPEFF [...]
+1	1430985	rs139902189	C	T	6084.89	PASS	AC=10;AF=0.100;AN=100;BaseQRankSum=6.004;DB;DP=2316;Dels=0.00;FS=0.393;HaplotypeScore=0.6138;InbreedingCoeff=-0.1111;MLEAC=10;MLEAF=0.100;MQ=59.05;MQ0=3;MQRankSum=2.105;QD=11.66;ReadPosRankSum=-0.895;SNPEFF_AMINO_ACID_CHANGE=R413C;SNPEFF_CODON_CHANGE=Cgc/Tgc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1430865_1431581;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODERATE;SNPEF [...]
+1	1431007	rs149788676	C	T	506.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-5.543;DB;DP=1759;Dels=0.00;FS=5.605;HaplotypeScore=0.8697;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=58.61;MQ0=0;MQRankSum=1.886;QD=12.05;ReadPosRankSum=-1.526;SNPEFF_AMINO_ACID_CHANGE=S420F;SNPEFF_CODON_CHANGE=tCc/tTc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1430865_1431581;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODERATE;SNPEFF_ [...]
+1	1431060	rs9792997	T	C	124.99	VQSRTrancheSNP99.50to99.90	AC=13;AF=0.130;AN=100;BaseQRankSum=10.352;DB;DP=1340;Dels=0.00;FS=176.177;HaplotypeScore=0.7633;InbreedingCoeff=-0.1369;MLEAC=9;MLEAF=0.090;MQ=53.26;MQ0=39;MQRankSum=-14.396;QD=0.43;ReadPosRankSum=-0.769;SNPEFF_AMINO_ACID_CHANGE=Y438H;SNPEFF_CODON_CHANGE=Tac/Cac;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1430865_1431581;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEF [...]
+1	1431075	rs79205801	G	A	424.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=2.462;DB;DP=1597;Dels=0.00;FS=9.400;HaplotypeScore=0.7016;InbreedingCoeff=-0.0103;MLEAC=1;MLEAF=0.010;MQ=50.45;MQ0=45;MQRankSum=0.957;QD=10.88;ReadPosRankSum=-1.411;SNPEFF_AMINO_ACID_CHANGE=G443S;SNPEFF_CODON_CHANGE=Ggc/Agc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1430865_1431581;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODERATE;SNPEFF_T [...]
+1	1431105	.	A	G	115.30	VQSRTrancheSNP99.30to99.50	AC=3;AF=0.030;AN=100;BaseQRankSum=7.242;DP=2265;Dels=0.00;FS=68.246;HaplotypeScore=1.8282;InbreedingCoeff=-0.0311;MLEAC=3;MLEAF=0.030;MQ=49.68;MQ0=41;MQRankSum=-5.059;QD=0.77;ReadPosRankSum=0.649;SNPEFF_AMINO_ACID_CHANGE=M453V;SNPEFF_CODON_CHANGE=Atg/Gtg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1430865_1431581;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODERAT [...]
+1	1431109	rs144198445	G	A	273.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-4.337;DB;DP=2290;Dels=0.00;FS=4.834;HaplotypeScore=2.0661;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=49.72;MQ0=39;MQRankSum=1.426;QD=2.68;ReadPosRankSum=-0.727;SNPEFF_AMINO_ACID_CHANGE=G454E;SNPEFF_CODON_CHANGE=gGg/gAg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1430865_1431581;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODERATE;SNPEFF_ [...]
+1	1431163	rs140441570	G	A	60.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.216;DB;DP=1722;Dels=0.00;FS=4.244;HaplotypeScore=2.5782;InbreedingCoeff=-0.0102;MLEAC=1;MLEAF=0.010;MQ=51.34;MQ0=59;MQRankSum=0.886;QD=3.17;ReadPosRankSum=-0.482;SNPEFF_AMINO_ACID_CHANGE=R472Q;SNPEFF_CODON_CHANGE=cGg/cAg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1430865_1431581;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODERATE;SNPEFF_T [...]
+1	1431165	rs9792879	C	T	8551.23	VQSRTrancheSNP99.00to99.30	AC=35;AF=0.350;AN=100;BaseQRankSum=-5.942;DB;DP=1681;Dels=0.00;FS=0.000;HaplotypeScore=2.3589;InbreedingCoeff=-0.5388;MLEAC=35;MLEAF=0.350;MQ=50.88;MQ0=57;MQRankSum=-3.121;QD=6.62;ReadPosRankSum=4.093;SNPEFF_AMINO_ACID_CHANGE=P473S;SNPEFF_CODON_CHANGE=Ccg/Tcg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1430865_1431581;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_ [...]
+1	1447692	rs2274435	G	A	214.71	PASS	AC=9;AF=0.150;AN=60;BaseQRankSum=-2.637;DB;DP=75;Dels=0.00;FS=0.000;HaplotypeScore=0.3060;InbreedingCoeff=0.0818;MLEAC=9;MLEAF=0.150;MQ=43.83;MQ0=0;MQRankSum=-0.652;QD=9.34;ReadPosRankSum=-0.302;SNPEFF_AMINO_ACID_CHANGE=G15D;SNPEFF_CODON_CHANGE=gGc/gAc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1447555_1447853;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCR [...]
+1	1447693	.	C	T	115.43	VQSRTrancheSNP99.00to99.30	AC=2;AF=0.036;AN=56;BaseQRankSum=0.116;DP=68;Dels=0.00;FS=0.000;HaplotypeScore=0.3041;InbreedingCoeff=0.0706;MLEAC=2;MLEAF=0.036;MQ=44.18;MQ0=0;MQRankSum=1.767;QD=23.09;ReadPosRankSum=-0.083;SNPEFF_AMINO_ACID_CHANGE=G15;SNPEFF_CODON_CHANGE=ggC/ggT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1447555_1447853;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIP [...]
+1	1451380	rs9439458	T	C	31300.68	PASS	AC=46;AF=0.460;AN=100;BaseQRankSum=6.904;DB;DP=1675;Dels=0.00;FS=10.137;HaplotypeScore=0.7101;InbreedingCoeff=0.3559;MLEAC=46;MLEAF=0.460;MQ=45.91;MQ0=11;MQRankSum=-1.905;QD=26.21;ReadPosRankSum=0.850;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378755;VQSLOD=1.31;culprit=MQ	GT:AD:DP:GQ:PL	0/0:39,0:39:99:0,114,1437	0/0:32,0:32:96:0,96, [...]
+1	1451489	rs76717221	T	C	9495.78	VQSRTrancheSNP99.00to99.30	AC=22;AF=0.220;AN=100;BaseQRankSum=12.478;DB;DP=1582;Dels=0.00;FS=1.129;HaplotypeScore=1.6089;InbreedingCoeff=0.0666;MLEAC=22;MLEAF=0.220;MQ=27.05;MQ0=285;MQRankSum=-1.239;QD=12.00;ReadPosRankSum=-0.069;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378755;VQSLOD=-5.066e-01;culprit=MQ	GT:AD:DP:GQ:PL	0/0:30,0:30:87:0 [...]
+1	1451490	rs9439460	G	A	8114.19	VQSRTrancheSNP99.00to99.30	AC=20;AF=0.200;AN=100;BaseQRankSum=-7.277;DB;DP=1587;Dels=0.00;FS=0.000;HaplotypeScore=1.5510;InbreedingCoeff=0.1230;MLEAC=20;MLEAF=0.200;MQ=27.16;MQ0=286;MQRankSum=-2.754;QD=11.86;ReadPosRankSum=-0.294;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378755;VQSLOD=-5.326e-01;culprit=MQ	GT:AD:DP:GQ:PL	0/0:31,0:31:90:0, [...]
+1	1454272	rs10159059	T	A	11008.01	VQSRTrancheSNP98.60to98.80	AC=16;AF=0.160;AN=100;BaseQRankSum=-11.336;DB;DP=3111;Dels=0.00;FS=11.158;HaplotypeScore=0.5487;InbreedingCoeff=0.2559;MLEAC=16;MLEAF=0.160;MQ=38.59;MQ0=137;MQRankSum=0.317;QD=13.71;ReadPosRankSum=1.177;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000439513;VQSLOD=0.569;culprit=MQ	GT:AD:DP:GQ:PL	0/0:50,0:50:99:0 [...]
+1	1454412	.	G	A	716.18	VQSRTrancheSNP99.30to99.50	AC=1;AF=0.010;AN=100;BaseQRankSum=-4.069;DP=2648;Dels=0.00;FS=0.000;HaplotypeScore=0.7287;InbreedingCoeff=-0.0102;MLEAC=1;MLEAF=0.010;MQ=34.00;MQ0=26;MQRankSum=-4.553;QD=10.53;ReadPosRankSum=1.449;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000439513;VQSLOD=-1.465e+00;culprit=MQ	GT:AD:DP:GQ:PL	0/0:45,0:45:99:0,108,1127	0/ [...]
+1	1455477	rs3128349	C	T	145.09	VQSRTrancheSNP99.00to99.30	AC=4;AF=0.040;AN=100;BaseQRankSum=-2.805;DB;DP=394;Dels=0.00;FS=3.727;HaplotypeScore=0.1860;InbreedingCoeff=-0.0620;MLEAC=3;MLEAF=0.030;MQ=41.03;MQ0=16;MQRankSum=-3.505;QD=2.74;ReadPosRankSum=-0.492;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000439513;VQSLOD=-1.674e-01;culprit=QD	GT:AD:DP:GQ:PL	0/0:3,0:3:9:0,9,97 [...]
+1	1455533	rs141500603	G	A	385.39	VQSRTrancheSNP99.00to99.30	AC=2;AF=0.020;AN=100;BaseQRankSum=3.924;DB;DP=775;Dels=0.00;FS=6.987;HaplotypeScore=0.2125;InbreedingCoeff=-0.0258;MLEAC=2;MLEAF=0.020;MQ=31.79;MQ0=53;MQRankSum=1.658;QD=6.42;ReadPosRankSum=-0.813;SNPEFF_AMINO_ACID_CHANGE=R176Q;SNPEFF_CODON_CHANGE=cGg/cAg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1455521_1455686;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMP [...]
+1	1455586	rs182976525	C	T	473.26	VQSRTrancheSNP98.90to99.00	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.136;DB;DP=960;Dels=0.00;FS=1.031;HaplotypeScore=0.7750;InbreedingCoeff=-0.0141;MLEAC=1;MLEAF=0.010;MQ=40.48;MQ0=47;MQRankSum=0.526;QD=17.53;ReadPosRankSum=-2.065;SNPEFF_AMINO_ACID_CHANGE=R115W;SNPEFF_CODON_CHANGE=Cgg/Tgg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1455521_1455686;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_I [...]
+1	1458255	rs28675990	T	G	622.67	VQSRTrancheSNP99.50to99.90	AC=14;AF=0.140;AN=100;BaseQRankSum=7.122;DB;DP=1041;Dels=0.00;FS=39.354;HaplotypeScore=0.5928;InbreedingCoeff=0.3090;MLEAC=12;MLEAF=0.120;MQ=35.19;MQ0=149;MQRankSum=-7.184;QD=3.23;ReadPosRankSum=0.155;SNPEFF_AMINO_ACID_CHANGE=L215;SNPEFF_CODON_CHANGE=ctT/ctG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1458124_1458279;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMPACT= [...]
+1	1458285	rs6675874	A	G	1117.66	VQSRTrancheSNP99.50to99.90	AC=18;AF=0.188;AN=96;BaseQRankSum=5.914;DB;DP=843;Dels=0.00;FS=85.621;HaplotypeScore=0.5349;InbreedingCoeff=0.4162;MLEAC=17;MLEAF=0.177;MQ=41.07;MQ0=31;MQRankSum=-8.792;QD=6.24;ReadPosRankSum=0.569;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000429957;VQSLOD=-4.991e+00;culprit=FS	GT:AD:DP:GQ:PL	0/0:10,0:10:30:0,3 [...]
+1	1458857	.	T	G	336.58	VQSRTrancheSNP99.30to99.50	AC=20;AF=0.213;AN=94;BaseQRankSum=-3.780;DP=188;Dels=0.00;FS=68.446;HaplotypeScore=0.2355;InbreedingCoeff=-0.2761;MLEAC=22;MLEAF=0.234;MQ=56.56;MQ0=0;MQRankSum=-1.865;QD=3.47;ReadPosRankSum=-8.265;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000429957;VQSLOD=-1.730e+00;culprit=FS	GT:AD:DP:GQ:PL	0/0:5,0:5:15:0,15,167	0/0:2, [...]
+1	1458954	rs3737714	C	T	4709.41	PASS	AC=15;AF=0.150;AN=100;BaseQRankSum=3.673;DB;DP=1295;Dels=0.00;FS=0.000;HaplotypeScore=0.7616;InbreedingCoeff=0.0873;MLEAC=14;MLEAF=0.140;MQ=55.71;MQ0=2;MQRankSum=4.171;QD=13.34;ReadPosRankSum=-0.458;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000429957;VQSLOD=3.27;culprit=MQ	GT:AD:DP:GQ:PL	0/0:22,0:22:66:0,66,756	0/0:29,0:29:87:0,87,9 [...]
+1	1459352	.	C	T	728.18	VQSRTrancheSNP99.00to99.30	AC=1;AF=0.010;AN=100;BaseQRankSum=3.978;DP=2702;Dels=0.00;FS=1.086;HaplotypeScore=0.1930;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=39.84;MQ0=54;MQRankSum=-2.708;QD=9.71;ReadPosRankSum=-1.300;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000429957;VQSLOD=-2.084e-01;culprit=MQ	GT:AD:DP:GQ:PL	0/0:48,0:48:99:0,138,1531	0/0 [...]
+1	1460581	rs10465902	T	C	1058.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=6.199;DB;DP=3356;Dels=0.00;FS=10.675;HaplotypeScore=0.2881;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=58.35;MQ0=0;MQRankSum=3.690;QD=14.11;ReadPosRankSum=-2.664;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000429957;VQSLOD=5.58;culprit=MQ	GT:AD:DP:GQ:PL	0/0:66,0:66:99:0,199,2207	0/0:67,0:67:99:0,2 [...]
+1	1575836	rs72468213	C	G	7320.75	VQSRTrancheSNP99.50to99.90	AC=39;AF=0.390;AN=100;BaseQRankSum=23.099;DB;DP=1984;Dels=0.00;FS=2.174;HaplotypeScore=0.8905;InbreedingCoeff=-0.6467;MLEAC=39;MLEAF=0.390;MQ=27.24;MQ0=265;MQRankSum=-0.617;QD=4.26;ReadPosRankSum=1.675;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=unprocessed_pseudogene;SNPEFF_GENE_NAME=AL691432.2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000317673;VQSLOD=-4.325e+00;culprit=MQ	GT:AD:DP:GQ:PL	0 [...]
+1	1575863	rs142965371	A	T	1920.72	VQSRTrancheSNP99.30to99.50	AC=12;AF=0.120;AN=100;BaseQRankSum=-10.826;DB;DP=1310;Dels=0.00;FS=2.776;HaplotypeScore=0.8060;InbreedingCoeff=-0.1410;MLEAC=12;MLEAF=0.120;MQ=29.88;MQ0=20;MQRankSum=-5.555;QD=4.19;ReadPosRankSum=0.122;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=unprocessed_pseudogene;SNPEFF_GENE_NAME=AL691432.2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000317673;VQSLOD=-1.961e+00;culprit=MQ	GT:AD:DP:GQ:PL	 [...]
+1	1580524	.	C	T	186.26	VQSRTrancheSNP99.50to99.90	AC=8;AF=0.100;AN=80;BaseQRankSum=-2.944;DP=626;Dels=0.00;FS=0.000;HaplotypeScore=0.2064;InbreedingCoeff=-0.1295;MLEAC=8;MLEAF=0.100;MQ=15.29;MQ0=161;MQRankSum=-0.395;QD=1.51;ReadPosRankSum=-0.597;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=unprocessed_pseudogene;SNPEFF_GENE_NAME=AL691432.2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000317673;VQSLOD=-4.374e+00;culprit=QD	GT:AD:DP:GQ:PL	0/0:24,8:31:6:0,6 [...]
+1	1580738	rs149767621	T	A	8238.16	VQSRTrancheSNP99.50to99.90	AC=45;AF=0.459;AN=98;BaseQRankSum=-20.476;DB;DP=1414;Dels=0.00;FS=4.533;HaplotypeScore=0.3951;InbreedingCoeff=-0.7670;MLEAC=45;MLEAF=0.459;MQ=23.99;MQ0=227;MQRankSum=0.402;QD=6.55;ReadPosRankSum=-0.255;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=unprocessed_pseudogene;SNPEFF_GENE_NAME=AL691432.2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000317673;VQSLOD=-5.630e+00;culprit=MQ	GT:AD:DP:GQ:PL	 [...]
+1	1580748	.	A	G	157.41	VQSRTrancheSNP99.50to99.90	AC=1;AF=0.010;AN=98;BaseQRankSum=0.760;DP=971;Dels=0.00;FS=0.000;HaplotypeScore=0.2415;InbreedingCoeff=-0.0152;MLEAC=1;MLEAF=0.010;MQ=22.37;MQ0=242;MQRankSum=0.673;QD=6.05;ReadPosRankSum=-2.117;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=unprocessed_pseudogene;SNPEFF_GENE_NAME=AL691432.2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000317673;VQSLOD=-2.656e+00;culprit=MQ	GT:AD:DP:GQ:PL	0/0:35,0:35:57:0,57 [...]
+1	1582106	rs79942991	T	C	115843.77	VQSRTrancheSNP99.50to99.90	AC=89;AF=0.890;AN=100;BaseQRankSum=7.365;DB;DP=4103;Dels=0.00;FS=3.878;HaplotypeScore=0.3014;InbreedingCoeff=-0.1236;MLEAC=89;MLEAF=0.890;MQ=36.39;MQ0=114;MQRankSum=-18.692;QD=28.23;ReadPosRankSum=1.360;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=unprocessed_pseudogene;SNPEFF_GENE_NAME=AL691432.2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000317673;VQSLOD=-5.066e+00;culprit=MQRankSum	GT:AD: [...]
+1	1582146	.	T	C	441.18	VQSRTrancheSNP99.00to99.30	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.540;DP=7445;Dels=0.00;FS=4.249;HaplotypeScore=1.3339;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=40.58;MQ0=49;MQRankSum=-1.530;QD=5.88;ReadPosRankSum=1.450;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=unprocessed_pseudogene;SNPEFF_GENE_NAME=AL691432.2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000317673;VQSLOD=-5.753e-01;culprit=MQ	GT:AD:DP:GQ:PL	0/0:201,0:201:99: [...]
+1	1582198	.	C	G	906.12	VQSRTrancheSNP99.30to99.50	AC=3;AF=0.030;AN=100;BaseQRankSum=-4.291;DP=3749;Dels=0.00;FS=2.432;HaplotypeScore=2.4143;InbreedingCoeff=-0.0309;MLEAC=3;MLEAF=0.030;MQ=32.93;MQ0=575;MQRankSum=2.067;QD=4.36;ReadPosRankSum=0.935;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=unprocessed_pseudogene;SNPEFF_GENE_NAME=AL691432.2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000317673;VQSLOD=-1.260e+00;culprit=MQ	GT:AD:DP:GQ:PL	0/0:75,0:75:99:0, [...]
+1	1582302	rs191403755	C	A	87.18	VQSRTrancheSNP99.00to99.30	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.515;DB;DP=2944;Dels=0.00;FS=1.732;HaplotypeScore=0.0773;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=30.88;MQ0=30;MQRankSum=-0.500;QD=3.79;ReadPosRankSum=-0.961;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=unprocessed_pseudogene;SNPEFF_GENE_NAME=AL691432.2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000317673;VQSLOD=-7.997e-01;culprit=QD	GT:AD:DP:GQ:PL	0/0: [...]
+1	1585597	rs7531938	A	G	4359.96	PASS	AC=55;AF=0.561;AN=98;BaseQRankSum=-1.073;DB;DP=302;Dels=0.00;FS=0.542;HaplotypeScore=0.1116;InbreedingCoeff=0.1130;MLEAC=53;MLEAF=0.541;MQ=58.81;MQ0=0;MQRankSum=0.214;QD=21.27;ReadPosRankSum=-0.558;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=unprocessed_pseudogene;SNPEFF_GENE_NAME=AL691432.2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000317673;VQSLOD=5.84;culprit=MQ	GT:AD:DP:GQ:PL	1/1:0,5:5:15:167,15,0	0/1:5,6:11:9 [...]
+1	1585642	rs3936009	G	T	3846.92	PASS	AC=49;AF=0.544;AN=90;BaseQRankSum=-8.942;DB;DP=261;Dels=0.00;FS=2.337;HaplotypeScore=0.0881;InbreedingCoeff=0.0934;MLEAC=48;MLEAF=0.533;MQ=59.22;MQ0=0;MQRankSum=0.655;QD=21.25;ReadPosRankSum=0.621;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=unprocessed_pseudogene;SNPEFF_GENE_NAME=AL691432.2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000317673;VQSLOD=6.38;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	1/1:0,11:11:33:388,33,0 [...]
+1	1586816	rs115880964	C	T	568.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.917;DB;DP=1773;Dels=0.00;FS=0.824;HaplotypeScore=0.2600;InbreedingCoeff=-0.0103;MLEAC=1;MLEAF=0.010;MQ=48.37;MQ0=49;MQRankSum=-0.621;QD=12.63;ReadPosRankSum=-2.095;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=unprocessed_pseudogene;SNPEFF_GENE_NAME=AL691432.2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000317673;VQSLOD=0.932;culprit=MQ	GT:AD:DP:GQ:PL	0/0:51,0:51:99:0,153,1843	0/0 [...]
+1	1586953	rs145224189	G	A	144.19	VQSRTrancheSNP99.30to99.50	AC=1;AF=0.010;AN=100;BaseQRankSum=-4.645;DB;DP=1168;Dels=0.00;FS=0.000;HaplotypeScore=0.0598;InbreedingCoeff=-0.0104;MLEAC=1;MLEAF=0.010;MQ=29.08;MQ0=60;MQRankSum=-0.909;QD=4.37;ReadPosRankSum=-2.328;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=unprocessed_pseudogene;SNPEFF_GENE_NAME=AL691432.2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000317673;VQSLOD=-9.213e-01;culprit=MQ	GT:AD:DP:GQ:PL	0/0 [...]
+1	1634881	.	G	C	91.76	VQSRTrancheSNP99.50to99.90	AC=7;AF=0.206;AN=34;BaseQRankSum=-0.637;DP=202;Dels=0.00;FS=0.000;HaplotypeScore=0.2856;InbreedingCoeff=-0.2039;MLEAC=7;MLEAF=0.206;MQ=15.12;MQ0=85;MQRankSum=0.892;QD=2.29;ReadPosRankSum=-3.797;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378635;VQSLOD=-4.313e+00;culprit=QD	GT:AD:DP:GQ:PL	./.	0/0:3,0:3:3:0,3,33	./.	./.	0 [...]
+1	1635004	rs874516	T	C	8506.33	VQSRTrancheSNP99.00to99.30	AC=53;AF=0.564;AN=94;BaseQRankSum=8.473;DB;DP=634;Dels=0.00;FS=3.427;HaplotypeScore=0.4463;InbreedingCoeff=0.2369;MLEAC=52;MLEAF=0.553;MQ=38.87;MQ0=18;MQRankSum=-4.597;QD=18.95;ReadPosRankSum=2.567;SNPEFF_AMINO_ACID_CHANGE=K44;SNPEFF_CODON_CHANGE=aaA/aaG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1634915_1635008;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=LOW;S [...]
+1	1635011	rs1059811	A	G	104.66	VQSRTrancheSNP99.30to99.50	AC=5;AF=0.053;AN=94;BaseQRankSum=3.424;DB;DP=656;Dels=0.00;FS=3.635;HaplotypeScore=0.4455;InbreedingCoeff=0.2754;MLEAC=3;MLEAF=0.032;MQ=39.37;MQ0=20;MQRankSum=-3.813;QD=2.91;ReadPosRankSum=0.378;SNPEFF_AMINO_ACID_CHANGE=V621A;SNPEFF_CODON_CHANGE=gTa/gCa;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1634915_1635063;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT= [...]
+1	1635022	rs1136978	A	G	420.94	VQSRTrancheSNP99.50to99.90	AC=17;AF=0.170;AN=100;BaseQRankSum=-3.483;DB;DP=659;Dels=0.00;FS=15.735;HaplotypeScore=0.3202;InbreedingCoeff=0.4522;MLEAC=11;MLEAF=0.110;MQ=40.11;MQ0=6;MQRankSum=-4.414;QD=4.53;ReadPosRankSum=-2.463;SNPEFF_AMINO_ACID_CHANGE=S617;SNPEFF_CODON_CHANGE=agT/agC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1634915_1635063;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=LO [...]
+1	1635061	rs1136980	C	A	55.49	VQSRTrancheSNP98.80to98.90	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.973;DB;DP=446;Dels=0.00;FS=1.858;HaplotypeScore=0.1171;InbreedingCoeff=-0.0246;MLEAC=1;MLEAF=0.010;MQ=43.48;MQ0=5;MQRankSum=-2.673;QD=4.27;ReadPosRankSum=0.067;SNPEFF_AMINO_ACID_CHANGE=E604D;SNPEFF_CODON_CHANGE=gaG/gaT;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1634915_1635063;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT [...]
+1	1635085	.	A	C	50.91	VQSRTrancheSNP99.50to99.90	AC=11;AF=0.115;AN=96;BaseQRankSum=-4.622;DP=311;Dels=0.00;FS=116.218;HaplotypeScore=0.3479;InbreedingCoeff=-0.0539;MLEAC=9;MLEAF=0.094;MQ=38.48;MQ0=31;MQRankSum=-3.888;QD=0.73;ReadPosRankSum=-5.613;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378635;VQSLOD=-4.963e+00;culprit=FS	GT:AD:DP:GQ:PL	0/0:13,1:14:16:0,16,446	0/0: [...]
+1	1635108	rs11488590	G	A	934.35	VQSRTrancheSNP99.50to99.90	AC=14;AF=0.146;AN=96;BaseQRankSum=-1.891;DB;DP=472;Dels=0.00;FS=69.983;HaplotypeScore=0.2181;InbreedingCoeff=-0.0511;MLEAC=14;MLEAF=0.146;MQ=29.62;MQ0=109;MQRankSum=-1.492;QD=5.37;ReadPosRankSum=1.004;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378635;VQSLOD=-3.114e+00;culprit=FS	GT:AD:DP:GQ:PL	0/0:16,0:16:39: [...]
+1	1635407	rs74045976	A	G	4760.18	PASS	AC=7;AF=0.070;AN=100;BaseQRankSum=4.103;DB;DP=1853;Dels=0.00;FS=0.473;HaplotypeScore=0.4719;InbreedingCoeff=0.2319;MLEAC=7;MLEAF=0.070;MQ=55.05;MQ0=2;MQRankSum=-0.284;QD=17.90;ReadPosRankSum=-2.734;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378635;VQSLOD=2.03;culprit=MQ	GT:AD:DP:GQ:PL	0/0:42,0:42:99:0,126,1529	0/0:43,0:43:99:0,12 [...]
+1	1635421	rs72901761	G	A	1037.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-3.736;DB;DP=1462;Dels=0.00;FS=0.652;HaplotypeScore=0.3273;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=53.53;MQ0=4;MQRankSum=-2.222;QD=11.65;ReadPosRankSum=-1.050;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378635;VQSLOD=1.82;culprit=MQ	GT:AD:DP:GQ:PL	0/0:39,0:39:99:0,117,1326	0/0:29,0:29:87:0, [...]
+1	1635439	.	A	G	362.18	VQSRTrancheSNP98.80to98.90	AC=1;AF=0.010;AN=100;BaseQRankSum=0.964;DP=1238;Dels=0.00;FS=2.198;HaplotypeScore=0.3145;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=52.58;MQ0=4;MQRankSum=-3.064;QD=11.68;ReadPosRankSum=1.459;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378635;VQSLOD=0.268;culprit=MQ	GT:AD:DP:GQ:PL	0/1:14,17:30:99:402,0,395	0/0:22,0: [...]
+1	1635507	.	G	A	405.20	VQSRTrancheSNP98.60to98.80	AC=1;AF=0.010;AN=100;BaseQRankSum=2.584;DP=1298;Dels=0.00;FS=0.000;HaplotypeScore=0.5480;InbreedingCoeff=-0.0108;MLEAC=1;MLEAF=0.010;MQ=50.53;MQ0=5;MQRankSum=1.387;QD=10.39;ReadPosRankSum=-0.627;SNPEFF_AMINO_ACID_CHANGE=R555C;SNPEFF_CODON_CHANGE=Cgc/Tgc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1635478_1635585;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODERATE [...]
+1	1635565	rs11488591	C	T	10687.11	PASS	AC=17;AF=0.170;AN=100;BaseQRankSum=-5.755;DB;DP=1407;Dels=0.00;FS=20.884;HaplotypeScore=0.8088;InbreedingCoeff=0.0782;MLEAC=17;MLEAF=0.170;MQ=50.79;MQ0=7;MQRankSum=1.284;QD=16.52;ReadPosRankSum=0.476;SNPEFF_AMINO_ACID_CHANGE=A535;SNPEFF_CODON_CHANGE=gcG/gcA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1635478_1635585;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT [...]
+1	1635617	rs115354721	C	T	748.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-3.816;DB;DP=1547;Dels=0.00;FS=1.493;HaplotypeScore=1.5279;InbreedingCoeff=-0.0207;MLEAC=2;MLEAF=0.020;MQ=50.80;MQ0=0;MQRankSum=2.325;QD=7.56;ReadPosRankSum=-0.952;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378635;VQSLOD=1.07;culprit=MQ	GT:AD:DP:GQ:PL	0/0:15,0:15:45:0,45,529	0/0:26,0:26:78:0,78,9 [...]
+1	1635619	rs2076329	T	C	37299	PASS	AC=65;AF=0.650;AN=100;BaseQRankSum=3.725;DB;DP=1683;Dels=0.00;FS=3.612;HaplotypeScore=1.6660;InbreedingCoeff=0.0769;MLEAC=65;MLEAF=0.650;MQ=50.64;MQ0=0;MQRankSum=-3.676;QD=24.55;ReadPosRankSum=0.233;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378635;VQSLOD=0.839;culprit=MQ	GT:AD:DP:GQ:PL	0/0:18,0:18:54:0,54,650	1/1:0,30:30:90:1058,90 [...]
+1	1635749	rs55880629	C	A	10910.33	VQSRTrancheSNP99.30to99.50	AC=47;AF=0.470;AN=100;BaseQRankSum=-15.926;DB;DP=1525;Dels=0.00;FS=7.922;HaplotypeScore=0.7731;InbreedingCoeff=0.0759;MLEAC=47;MLEAF=0.470;MQ=42.30;MQ0=40;MQRankSum=-10.985;QD=11.96;ReadPosRankSum=1.160;SNPEFF_AMINO_ACID_CHANGE=R499;SNPEFF_CODON_CHANGE=cgG/cgT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1635662_1635783;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMP [...]
+1	1635943	rs1534950	A	C	1501.42	VQSRTrancheSNP98.80to98.90	AC=17;AF=0.170;AN=100;BaseQRankSum=6.957;DB;DP=426;Dels=0.00;FS=0.000;HaplotypeScore=0.1954;InbreedingCoeff=0.0437;MLEAC=17;MLEAF=0.170;MQ=45.75;MQ0=0;MQRankSum=-4.592;QD=9.69;ReadPosRankSum=-0.426;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378635;VQSLOD=0.298;culprit=MQ	GT:AD:DP:GQ:PL	0/0:7,0:7:21:0,21,240	0 [...]
+1	1635979	rs1534951	G	C	3048.61	VQSRTrancheSNP98.90to99.00	AC=17;AF=0.170;AN=100;BaseQRankSum=5.210;DB;DP=673;Dels=0.00;FS=0.000;HaplotypeScore=0.5137;InbreedingCoeff=0.0713;MLEAC=17;MLEAF=0.170;MQ=44.90;MQ0=14;MQRankSum=-4.420;QD=12.19;ReadPosRankSum=0.530;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378635;VQSLOD=0.107;culprit=MQ	GT:AD:DP:GQ:PL	0/0:9,0:9:27:0,27,292	 [...]
+1	1636044	rs1059822	G	A	7368.94	VQSRTrancheSNP99.30to99.50	AC=61;AF=0.610;AN=100;BaseQRankSum=-0.556;DB;DP=714;Dels=0.00;FS=21.519;HaplotypeScore=0.3671;InbreedingCoeff=0.1238;MLEAC=61;MLEAF=0.610;MQ=41.21;MQ0=41;MQRankSum=-11.770;QD=14.36;ReadPosRankSum=0.096;SNPEFF_AMINO_ACID_CHANGE=Y469;SNPEFF_CODON_CHANGE=taC/taT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1635989_1636094;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT [...]
+1	1636112	rs4288535	G	A	1456.58	VQSRTrancheSNP98.90to99.00	AC=16;AF=0.163;AN=98;BaseQRankSum=-8.473;DB;DP=582;Dels=0.00;FS=4.438;HaplotypeScore=0.4121;InbreedingCoeff=-0.0638;MLEAC=16;MLEAF=0.163;MQ=33.54;MQ0=98;MQRankSum=-2.009;QD=5.95;ReadPosRankSum=2.219;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378635;VQSLOD=0.030;culprit=MQ	GT:AD:DP:GQ:PL	0/0:16,0:16:33:0,33,36 [...]
+1	1636307	.	T	C	887.27	VQSRTrancheSNP98.80to98.90	AC=1;AF=0.010;AN=98;BaseQRankSum=5.066;DP=5425;Dels=0.00;FS=0.000;HaplotypeScore=1.1038;InbreedingCoeff=-0.0103;MLEAC=1;MLEAF=0.010;MQ=43.97;MQ0=22;MQRankSum=1.527;QD=11.83;ReadPosRankSum=-3.911;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378635;VQSLOD=0.252;culprit=MQ	GT:AD:DP:GQ:PL	0/0:236,0:236:99:0,710,8527	0/0:122 [...]
+1	1636352	rs141881351	G	C	1618.40	VQSRTrancheSNP99.30to99.50	AC=2;AF=0.020;AN=98;BaseQRankSum=3.137;DB;DP=6223;Dels=0.00;FS=1.145;HaplotypeScore=1.6113;InbreedingCoeff=1.0000;MLEAC=2;MLEAF=0.020;MQ=44.84;MQ0=133;MQRankSum=2.388;QD=23.80;ReadPosRankSum=0.222;SNPEFF_AMINO_ACID_CHANGE=V449;SNPEFF_CODON_CHANGE=gtC/gtG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1636343_1636464;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=LO [...]
+1	1636355	rs2377226	A	G	987.40	VQSRTrancheSNP99.50to99.90	AC=2;AF=0.020;AN=98;BaseQRankSum=5.437;DB;DP=6036;Dels=0.00;FS=127.218;HaplotypeScore=1.5540;InbreedingCoeff=1.0000;MLEAC=2;MLEAF=0.020;MQ=44.72;MQ0=139;MQRankSum=-12.525;QD=13.91;ReadPosRankSum=-1.082;SNPEFF_AMINO_ACID_CHANGE=I448;SNPEFF_CODON_CHANGE=atT/atC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1636343_1636464;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT= [...]
+1	1636400	rs144690660	G	A	282.20	VQSRTrancheSNP99.50to99.90	AC=4;AF=0.041;AN=98;BaseQRankSum=-3.052;DB;DP=5444;Dels=0.00;FS=169.855;HaplotypeScore=0.4806;InbreedingCoeff=-0.0507;MLEAC=4;MLEAF=0.041;MQ=37.94;MQ0=162;MQRankSum=-13.143;QD=0.94;ReadPosRankSum=2.063;SNPEFF_AMINO_ACID_CHANGE=S433;SNPEFF_CODON_CHANGE=tcC/tcT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1636343_1636464;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPAC [...]
+1	1638897	.	A	G	68.27	VQSRTrancheSNP99.30to99.50	AC=1;AF=0.010;AN=100;BaseQRankSum=2.422;DP=1826;Dels=0.00;FS=27.238;HaplotypeScore=0.6964;InbreedingCoeff=-0.0137;MLEAC=1;MLEAF=0.010;MQ=38.73;MQ0=13;MQRankSum=0.445;QD=1.95;ReadPosRankSum=-0.385;SNPEFF_AMINO_ACID_CHANGE=L365S;SNPEFF_CODON_CHANGE=tTg/tCg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1638848_1639023;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODERATE [...]
+1	1638925	.	C	T	7081.97	VQSRTrancheSNP99.30to99.50	AC=17;AF=0.170;AN=100;BaseQRankSum=3.088;DP=1619;Dels=0.00;FS=0.609;HaplotypeScore=0.6107;InbreedingCoeff=0.0736;MLEAC=17;MLEAF=0.170;MQ=32.23;MQ0=230;MQRankSum=-1.352;QD=9.93;ReadPosRankSum=1.471;SNPEFF_AMINO_ACID_CHANGE=D356N;SNPEFF_CODON_CHANGE=Gac/Aac;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1638848_1639023;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODER [...]
+1	1638994	rs139262276	C	T	3722.63	VQSRTrancheSNP99.50to99.90	AC=27;AF=0.276;AN=98;BaseQRankSum=4.165;DB;DP=1412;Dels=0.00;FS=43.176;HaplotypeScore=0.4009;InbreedingCoeff=0.4134;MLEAC=27;MLEAF=0.276;MQ=16.67;MQ0=641;MQRankSum=0.607;QD=4.58;ReadPosRankSum=-1.355;SNPEFF_AMINO_ACID_CHANGE=G333R;SNPEFF_CODON_CHANGE=Ggg/Agg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1638848_1639023;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF [...]
+1	1639046	rs138369165	C	G	4405.12	VQSRTrancheSNP99.50to99.90	AC=47;AF=0.490;AN=96;BaseQRankSum=11.990;DB;DP=810;Dels=0.00;FS=21.488;HaplotypeScore=0.3049;InbreedingCoeff=0.4502;MLEAC=46;MLEAF=0.479;MQ=25.71;MQ0=218;MQRankSum=-3.993;QD=9.33;ReadPosRankSum=-4.570;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000341028;VQSLOD=-3.258e+00;culprit=MQ	GT:AD:DP:GQ:PL	0/0:24,0:24:69:0, [...]
+1	1639062	rs149613000	T	C	747.63	VQSRTrancheSNP99.50to99.90	AC=21;AF=0.239;AN=88;BaseQRankSum=7.959;DB;DP=539;Dels=0.00;FS=14.404;HaplotypeScore=0.2679;InbreedingCoeff=0.5296;MLEAC=17;MLEAF=0.193;MQ=31.98;MQ0=38;MQRankSum=1.017;QD=6.80;ReadPosRankSum=-1.235;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000341028;VQSLOD=-2.868e+00;culprit=MQ	GT:AD:DP:GQ:PL	0/0:25,0:25:75:0,75,7 [...]
+1	1639073	.	A	T	175.81	VQSRTrancheSNP99.50to99.90	AC=9;AF=0.107;AN=84;BaseQRankSum=-2.705;DP=421;Dels=0.00;FS=0.000;HaplotypeScore=0.3008;InbreedingCoeff=0.4176;MLEAC=6;MLEAF=0.071;MQ=30.68;MQ0=36;MQRankSum=-0.024;QD=5.49;ReadPosRankSum=0.538;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000341028;VQSLOD=-2.791e+00;culprit=MQ	GT:AD:DP:GQ:PL	0/0:21,0:21:63:0,63,671	./.	0/0:8,0: [...]
+1	1639570	rs141165289	C	T	883.43	VQSRTrancheSNP99.50to99.90	AC=15;AF=0.250;AN=60;BaseQRankSum=-5.650;DB;DP=770;Dels=0.00;FS=0.678;HaplotypeScore=0.4057;InbreedingCoeff=-0.0481;MLEAC=15;MLEAF=0.250;MQ=14.16;MQ0=429;MQRankSum=-1.209;QD=2.39;ReadPosRankSum=-0.601;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000341028;VQSLOD=-4.394e+00;culprit=QD	GT:AD:DP:GQ:PL	0/0:11,0:11:18:0,1 [...]
+1	1639608	.	G	A	58.98	VQSRTrancheSNP99.50to99.90	AC=2;AF=0.032;AN=62;BaseQRankSum=-2.551;DP=1403;Dels=0.00;FS=1.326;HaplotypeScore=0.4675;InbreedingCoeff=-0.0735;MLEAC=2;MLEAF=0.032;MQ=11.11;MQ0=927;MQRankSum=1.280;QD=0.54;ReadPosRankSum=0.534;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000341028;VQSLOD=-5.890e+00;culprit=MQ	GT:AD:DP:GQ:PL	./.	0/0:40,0:40:9:0,9,78	0/0:26,0:2 [...]
+1	1639687	.	G	A	473.42	VQSRTrancheSNP99.50to99.90	AC=11;AF=0.204;AN=54;BaseQRankSum=-11.169;DP=1398;Dels=0.00;FS=23.198;HaplotypeScore=0.2334;InbreedingCoeff=-0.2824;MLEAC=11;MLEAF=0.204;MQ=11.20;MQ0=898;MQRankSum=-1.547;QD=0.70;ReadPosRankSum=1.112;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000341028;VQSLOD=-6.460e+00;culprit=MQ	GT:AD:DP:GQ:PL	0/0:24,0:24:3:0,3,33	0/0:36,0 [...]
+1	1639702	.	C	T	110.94	VQSRTrancheSNP99.50to99.90	AC=3;AF=0.060;AN=50;BaseQRankSum=-1.482;DP=1127;Dels=0.00;FS=3.889;HaplotypeScore=0.1458;InbreedingCoeff=-0.0818;MLEAC=3;MLEAF=0.060;MQ=10.55;MQ0=723;MQRankSum=1.431;QD=0.98;ReadPosRankSum=-0.782;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000341028;VQSLOD=-5.670e+00;culprit=QD	GT:AD:DP:GQ:PL	0/0:19,0:19:3:0,3,33	0/0:24,0:24: [...]
+1	1647745	rs72634830	G	A	17639.24	VQSRTrancheSNP99.50to99.90	AC=48;AF=0.480;AN=100;BaseQRankSum=21.762;DB;DP=3417;Dels=0.00;FS=230.666;HaplotypeScore=1.6377;InbreedingCoeff=-0.9082;MLEAC=48;MLEAF=0.480;MQ=52.75;MQ0=0;MQRankSum=-34.123;QD=5.36;ReadPosRankSum=-8.152;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000479362;VQSLOD=-2.883e+01;culprit=FS	GT:AD:DP:GQ:PL	0/1:50,25: [...]
+1	1647753	rs74045984	C	T	19316.52	VQSRTrancheSNP99.50to99.90	AC=47;AF=0.470;AN=100;BaseQRankSum=-32.228;DB;DP=3494;Dels=0.00;FS=143.909;HaplotypeScore=1.4824;InbreedingCoeff=-0.8873;MLEAC=47;MLEAF=0.470;MQ=53.15;MQ0=0;MQRankSum=-32.262;QD=5.87;ReadPosRankSum=-7.739;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000479362;VQSLOD=-1.945e+01;culprit=FS	GT:AD:DP:GQ:PL	0/1:53,22 [...]
+1	1647778	rs72901773	C	G	25507.74	VQSRTrancheSNP99.50to99.90	AC=49;AF=0.490;AN=100;BaseQRankSum=-30.365;DB;DP=3670;Dels=0.00;FS=13.015;HaplotypeScore=1.8006;InbreedingCoeff=-0.9605;MLEAC=49;MLEAF=0.490;MQ=53.28;MQ0=0;MQRankSum=-27.906;QD=7.07;ReadPosRankSum=-5.158;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000479362;VQSLOD=-1.367e+01;culprit=MQRankSum	GT:AD:DP:GQ:PL	0/1 [...]
+1	1647814	rs72901775	T	C	37323.72	VQSRTrancheSNP99.50to99.90	AC=49;AF=0.490;AN=100;BaseQRankSum=27.187;DB;DP=3738;Dels=0.00;FS=44.966;HaplotypeScore=1.1191;InbreedingCoeff=-0.9608;MLEAC=49;MLEAF=0.490;MQ=52.47;MQ0=0;MQRankSum=-26.757;QD=10.19;ReadPosRankSum=0.422;SNPEFF_AMINO_ACID_CHANGE=N9D;SNPEFF_CODON_CHANGE=Aat/Gat;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1647785_1647917;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEF [...]
+1	1647871	rs72909014	T	C	24074.97	VQSRTrancheSNP99.50to99.90	AC=48;AF=0.480;AN=100;BaseQRankSum=30.488;DB;DP=3314;Dels=0.00;FS=34.352;HaplotypeScore=2.3042;InbreedingCoeff=-0.9231;MLEAC=48;MLEAF=0.480;MQ=52.62;MQ0=0;MQRankSum=-28.834;QD=7.55;ReadPosRankSum=-1.891;SNPEFF_AMINO_ACID_CHANGE=R100;SNPEFF_CODON_CHANGE=cgA/cgG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1647785_1647917;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMP [...]
+1	1647873	.	G	T	326.30	VQSRTrancheSNP99.00to99.30	AC=4;AF=0.040;AN=100;BaseQRankSum=2.140;DP=3316;Dels=0.00;FS=0.546;HaplotypeScore=2.2918;InbreedingCoeff=-0.0417;MLEAC=4;MLEAF=0.040;MQ=52.23;MQ0=0;MQRankSum=-5.574;QD=1.17;ReadPosRankSum=-0.122;SNPEFF_AMINO_ACID_CHANGE=R100;SNPEFF_CODON_CHANGE=Cga/Aga;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1647785_1647917;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=LOW;SNPEFF_TRAN [...]
+1	1650832	rs72909030	A	G	45541.73	VQSRTrancheSNP99.50to99.90	AC=49;AF=0.490;AN=100;BaseQRankSum=23.916;DB;DP=3747;Dels=0.00;FS=18.898;HaplotypeScore=1.0621;InbreedingCoeff=-0.9608;MLEAC=49;MLEAF=0.490;MQ=54.25;MQ0=0;MQRankSum=-21.030;QD=12.40;ReadPosRankSum=-0.870;SNPEFF_AMINO_ACID_CHANGE=V63A;SNPEFF_CODON_CHANGE=gTt/gCt;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1650767_1650894;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNP [...]
+1	1650845	rs1059831	G	A	43007.97	VQSRTrancheSNP99.50to99.90	AC=48;AF=0.480;AN=100;BaseQRankSum=11.982;DB;DP=3824;Dels=0.00;FS=3.720;HaplotypeScore=0.8692;InbreedingCoeff=-0.9231;MLEAC=48;MLEAF=0.480;MQ=54.19;MQ0=0;MQRankSum=24.187;QD=11.95;ReadPosRankSum=0.117;SNPEFF_AMINO_ACID_CHANGE=R59W;SNPEFF_CODON_CHANGE=Cgg/Tgg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1650767_1650894;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_ [...]
+1	1650917	rs148518955	T	C	307.18	VQSRTrancheSNP98.60to98.80	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.768;DB;DP=3870;Dels=0.00;FS=1.094;HaplotypeScore=1.3740;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=51.37;MQ0=0;MQRankSum=5.296;QD=4.15;ReadPosRankSum=1.379;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000401096;VQSLOD=0.572;culprit=QD	GT:AD:DP:GQ:PL	0/0:75,0:75:99:0,220,25 [...]
+1	1650920	rs36191908	G	A	18368.04	VQSRTrancheSNP99.50to99.90	AC=39;AF=0.390;AN=100;BaseQRankSum=-16.414;DB;DP=3830;Dels=0.00;FS=40.941;HaplotypeScore=1.4810;InbreedingCoeff=-0.6438;MLEAC=39;MLEAF=0.390;MQ=51.23;MQ0=0;MQRankSum=-25.997;QD=6.36;ReadPosRankSum=-1.670;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000401096;VQSLOD=-1.026e+01;culprit=MQRankSum	GT:AD:DP:GQ:PL	0/1 [...]
+1	1650939	.	G	A	22870.97	VQSRTrancheSNP99.50to99.90	AC=48;AF=0.480;AN=100;BaseQRankSum=-18.935;DP=3421;Dels=0.02;FS=60.007;HaplotypeScore=6.7725;InbreedingCoeff=-0.9231;MLEAC=48;MLEAF=0.480;MQ=51.35;MQ0=0;MQRankSum=-45.584;QD=6.95;ReadPosRankSum=14.146;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000401096;VQSLOD=-2.814e+01;culprit=MQRankSum	GT:AD:DP:GQ:PL	0/1:45,28:70:99 [...]
+1	1650940	rs74345479	G	A	22714.97	VQSRTrancheSNP99.50to99.90	AC=48;AF=0.480;AN=100;BaseQRankSum=-30.655;DB;DP=3446;Dels=0.02;FS=52.004;HaplotypeScore=6.8009;InbreedingCoeff=-0.9231;MLEAC=48;MLEAF=0.480;MQ=51.41;MQ0=0;MQRankSum=-45.783;QD=6.86;ReadPosRankSum=15.177;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000401096;VQSLOD=-2.857e+01;culprit=MQRankSum	GT:AD:DP:GQ:PL	0/1 [...]
+1	1850654	.	G	C	40.22	PASS	AC=4;AF=0.080;AN=50;BaseQRankSum=0.167;DP=37;Dels=0.00;FS=0.000;HaplotypeScore=0.0000;InbreedingCoeff=-0.0817;MLEAC=4;MLEAF=0.080;MQ=56.34;MQ0=0;MQRankSum=0.501;QD=5.75;ReadPosRankSum=-0.969;SNPEFF_AMINO_ACID_CHANGE=S15C;SNPEFF_CODON_CHANGE=tCc/tGc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1850484_1850697;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TMEM52;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCRIPT_ID=ENST00 [...]
+1	1853863	rs28680721	T	C	14790.08	PASS	AC=19;AF=0.190;AN=100;BaseQRankSum=14.525;DB;DP=1741;Dels=0.00;FS=0.000;HaplotypeScore=0.7362;InbreedingCoeff=0.2851;MLEAC=19;MLEAF=0.190;MQ=58.07;MQ0=0;MQRankSum=1.097;QD=21.40;ReadPosRankSum=-3.808;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000493964;VQSLOD=4.14;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:39,0:39:99:0,117,1409	0/0:3 [...]
+1	1854109	rs2803348	A	G	51305.44	PASS	AC=50;AF=0.500;AN=100;BaseQRankSum=24.670;DB;DP=2880;Dels=0.00;FS=2.519;HaplotypeScore=1.1021;InbreedingCoeff=-0.2000;MLEAC=50;MLEAF=0.500;MQ=59.24;MQ0=0;MQRankSum=-0.088;QD=22.51;ReadPosRankSum=-0.904;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000493964;VQSLOD=5.12;culprit=InbreedingCoeff	GT:AD:DP:GQ:PL	0/1:24,34:55:99:1012,0,649	0/ [...]
+1	1854546	rs28633659	C	T	12300.07	PASS	AC=19;AF=0.190;AN=100;BaseQRankSum=-8.444;DB;DP=1617;Dels=0.00;FS=0.000;HaplotypeScore=0.5320;InbreedingCoeff=0.2852;MLEAC=19;MLEAF=0.190;MQ=59.21;MQ0=0;MQRankSum=2.435;QD=18.25;ReadPosRankSum=-2.346;SNPEFF_AMINO_ACID_CHANGE=E794K;SNPEFF_CODON_CHANGE=Gag/Aag;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1854424_1854554;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODERATE;SN [...]
+1	1854572	.	G	T	174.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.538;DP=1268;Dels=0.00;FS=0.000;HaplotypeScore=0.9881;InbreedingCoeff=-0.0103;MLEAC=1;MLEAF=0.010;MQ=58.77;MQ0=0;MQRankSum=1.477;QD=12.44;ReadPosRankSum=0.396;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000493964;VQSLOD=5.07;culprit=MQ	GT:AD:DP:GQ:PL	0/0:19,0:19:48:0,48,607	0/0:24,0:24:72:0,72,905	0/0:18,0:18 [...]
+1	1854579	rs115047896	A	G	222.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=0.037;DB;DP=1131;Dels=0.00;FS=0.000;HaplotypeScore=0.8070;InbreedingCoeff=-0.0207;MLEAC=2;MLEAF=0.020;MQ=58.75;MQ0=0;MQRankSum=-0.189;QD=10.10;ReadPosRankSum=0.028;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000493964;VQSLOD=6.42;culprit=MQ	GT:AD:DP:GQ:PL	0/0:18,0:18:48:0,48,612	0/0:26,0:26:78:0,78,96 [...]
+1	1854765	rs188186459	G	A	187.21	PASS	AC=1;AF=0.011;AN=90;BaseQRankSum=1.193;DB;DP=249;Dels=0.00;FS=1.872;HaplotypeScore=0.1355;InbreedingCoeff=-0.0475;MLEAC=1;MLEAF=0.011;MQ=57.94;MQ0=0;MQRankSum=1.012;QD=11.70;ReadPosRankSum=0.094;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000493964;VQSLOD=4.15;culprit=MQ	GT:AD:DP:GQ:PL	0/0:6,0:6:18:0,18,187	0/0:6,0:6:18:0,18,184	0/0:6 [...]
+1	1855319	rs2295362	C	T	26718.41	PASS	AC=18;AF=0.180;AN=100;BaseQRankSum=-9.177;DB;DP=3695;Dels=0.00;FS=3.377;HaplotypeScore=0.6567;InbreedingCoeff=0.3225;MLEAC=18;MLEAF=0.180;MQ=59.63;MQ0=0;MQRankSum=1.412;QD=23.58;ReadPosRankSum=-2.580;SNPEFF_AMINO_ACID_CHANGE=K711;SNPEFF_CODON_CHANGE=aaG/aaA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1855214_1855368;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRI [...]
+1	1857211	rs28521843	G	A	670.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=5.451;DB;DP=1568;Dels=0.00;FS=10.997;HaplotypeScore=0.0752;InbreedingCoeff=-0.0206;MLEAC=2;MLEAF=0.020;MQ=59.66;MQ0=0;MQRankSum=1.004;QD=13.41;ReadPosRankSum=-1.863;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000493964;VQSLOD=7.74;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:21,0:21:63:0,63,663	0/0:34,0:3 [...]
+1	1887019	rs28548017	A	G	150764.25	VQSRTrancheSNP99.50to99.90	AC=79;AF=0.790;AN=100;BaseQRankSum=18.762;DB;DP=4939;Dels=0.00;FS=92.030;HaplotypeScore=0.6975;InbreedingCoeff=-0.0247;MLEAC=79;MLEAF=0.790;MQ=59.70;MQ0=0;MQRankSum=1.805;QD=32.18;ReadPosRankSum=-7.436;SNPEFF_AMINO_ACID_CHANGE=*763Q;SNPEFF_CODON_CHANGE=Tag/Cag;SNPEFF_EFFECT=STOP_LOST;SNPEFF_EXON_ID=exon_1_1884752_1887289;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPAC [...]
+1	1887091	rs139735565	CG	C	11461.89	Indel_FS	AC=26;AF=0.260;AN=100;BaseQRankSum=-0.440;DB;DP=3493;FS=322.923;HaplotypeScore=20.3961;InbreedingCoeff=-0.0396;MLEAC=26;MLEAF=0.260;MQ=58.64;MQ0=0;MQRankSum=-3.052;QD=9.92;ReadPosRankSum=-2.824;SNPEFF_EFFECT=FRAME_SHIFT;SNPEFF_EXON_ID=exon_1_1884752_1887289;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=HIGH;SNPEFF_TRANSCRIPT_ID=ENST00000270720	GT:AD:DP:GQ:PL	1/1:0,27:28:81:1149,81,0	0/ [...]
+1	1887111	rs141242161	GC	G	8958.88	Indel_FS	AC=26;AF=0.260;AN=100;BaseQRankSum=3.014;DB;DP=3234;FS=424.686;HaplotypeScore=22.9125;InbreedingCoeff=-0.0395;MLEAC=26;MLEAF=0.260;MQ=57.82;MQ0=0;MQRankSum=0.421;QD=8.09;RPA=2,1;RU=C;ReadPosRankSum=-9.687;SNPEFF_EFFECT=FRAME_SHIFT;SNPEFF_EXON_ID=exon_1_1884752_1887289;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=HIGH;SNPEFF_TRANSCRIPT_ID=ENST00000270720;STR	GT:AD:DP:GQ:PL	1/1:0,15:27:4 [...]
+1	1887245	rs28575980	G	A	15682.54	PASS	AC=25;AF=0.250;AN=100;BaseQRankSum=-0.390;DB;DP=2315;Dels=0.00;FS=4.788;HaplotypeScore=0.6817;InbreedingCoeff=-0.1200;MLEAC=25;MLEAF=0.250;MQ=58.68;MQ0=0;MQRankSum=-1.555;QD=16.07;ReadPosRankSum=1.024;SNPEFF_AMINO_ACID_CHANGE=A134;SNPEFF_CODON_CHANGE=gcC/gcT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1887150_1887289;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=LOW;SNPEFF_TRANSC [...]
+1	1887300	rs115884258	G	A	224.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.937;DB;DP=1592;Dels=0.00;FS=4.030;HaplotypeScore=0.3130;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.12;MQ0=0;MQRankSum=0.709;QD=8.97;ReadPosRankSum=-0.167;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000270720;VQSLOD=8.09;culprit=QD	GT:AD:DP:GQ:PL	0/0:32,0:32:90:0,90,1101	0/0:33,0:33:99:0,99,1 [...]
+1	1888024	rs79784725	C	G	940.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=5.079;DB;DP=1810;Dels=0.00;FS=9.030;HaplotypeScore=0.2720;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.19;MQ0=0;MQRankSum=0.316;QD=14.46;ReadPosRankSum=0.269;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000270720;VQSLOD=7.34;culprit=InbreedingCoeff	GT:AD:DP:GQ:PL	0/0:45,0:45:99:0,135,1626	0/0:31,0: [...]
+1	1888193	rs3820011	C	A	8338.62	PASS	AC=25;AF=0.250;AN=100;BaseQRankSum=6.606;DB;DP=1179;Dels=0.00;FS=0.000;HaplotypeScore=0.4560;InbreedingCoeff=-0.0142;MLEAC=25;MLEAF=0.250;MQ=59.30;MQ0=0;MQRankSum=0.157;QD=16.13;ReadPosRankSum=3.386;SNPEFF_AMINO_ACID_CHANGE=G628C;SNPEFF_CODON_CHANGE=Ggc/Tgc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1888059_1888223;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODERATE;SNPEF [...]
+1	1888237	rs139739570	T	C	418.22	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.939;DB;DP=899;Dels=0.00;FS=1.100;HaplotypeScore=0.2628;InbreedingCoeff=-0.0122;MLEAC=1;MLEAF=0.010;MQ=59.60;MQ0=0;MQRankSum=0.003;QD=10.46;ReadPosRankSum=-1.338;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000270720;VQSLOD=7.99;culprit=FS	GT:AD:DP:GQ:PL	0/0:14,0:14:42:0,42,481	0/0:14,0:14:39:0,39,49 [...]
+1	1888273	rs114981028	G	T	376.29	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-4.990;DB;DP=627;Dels=0.00;FS=0.000;HaplotypeScore=0.2840;InbreedingCoeff=-0.0158;MLEAC=1;MLEAF=0.010;MQ=59.26;MQ0=0;MQRankSum=0.371;QD=12.54;ReadPosRankSum=-2.140;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000270720;VQSLOD=7.60;culprit=FS	GT:AD:DP:GQ:PL	0/0:5,0:5:15:0,15,181	0/0:14,0:14:39:0,39,490	 [...]
+1	1890559	rs146150343	C	T	1499.12	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=0.399;DB;DP=3082;Dels=0.00;FS=22.965;HaplotypeScore=0.4642;InbreedingCoeff=-0.0309;MLEAC=3;MLEAF=0.030;MQ=59.20;MQ0=0;MQRankSum=1.746;QD=11.27;ReadPosRankSum=-3.431;SNPEFF_AMINO_ACID_CHANGE=S617;SNPEFF_CODON_CHANGE=tcG/tcA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1890559_1890648;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRI [...]
+1	1890604	rs75297543	C	T	709.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=3.631;DB;DP=4460;Dels=0.00;FS=6.550;HaplotypeScore=0.3434;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.16;MQ0=0;MQRankSum=0.792;QD=9.58;ReadPosRankSum=-0.776;SNPEFF_AMINO_ACID_CHANGE=T49;SNPEFF_CODON_CHANGE=acG/acA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1890559_1890648;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID [...]
+1	1891477	rs2748972	A	G	7909.71	PASS	AC=22;AF=0.220;AN=100;BaseQRankSum=14.325;DB;DP=1305;Dels=0.00;FS=5.023;HaplotypeScore=1.5993;InbreedingCoeff=0.0675;MLEAC=22;MLEAF=0.220;MQ=58.80;MQ0=0;MQRankSum=-0.664;QD=15.66;ReadPosRankSum=-1.079;SNPEFF_AMINO_ACID_CHANGE=S10P;SNPEFF_CODON_CHANGE=Tcc/Ccc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1891403_1891504;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODERATE;SNPE [...]
+1	1891486	rs113160895	A	G	1694.48	PASS	AC=6;AF=0.060;AN=100;BaseQRankSum=5.837;DB;DP=1152;Dels=0.00;FS=0.673;HaplotypeScore=1.7650;InbreedingCoeff=-0.0639;MLEAC=6;MLEAF=0.060;MQ=58.80;MQ0=0;MQRankSum=0.379;QD=12.02;ReadPosRankSum=-0.720;SNPEFF_AMINO_ACID_CHANGE=W7R;SNPEFF_CODON_CHANGE=Tgg/Cgg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1891403_1891504;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODERATE;SNPEFF [...]
+1	1895177	rs7523728	C	T	18866.39	PASS	AC=23;AF=0.230;AN=100;BaseQRankSum=2.316;DB;DP=3390;Dels=0.00;FS=0.546;HaplotypeScore=0.3873;InbreedingCoeff=0.0401;MLEAC=23;MLEAF=0.230;MQ=59.68;MQ0=0;MQRankSum=0.727;QD=18.05;ReadPosRankSum=-0.786;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000270720;VQSLOD=6.95;culprit=FS	GT:AD:DP:GQ:PL	1/1:0,55:55:99:2079,166,0	0/0:62,0:62:99:0,18 [...]
+1	1896333	rs61734005	G	A	4491.52	PASS	AC=8;AF=0.080;AN=100;BaseQRankSum=-6.307;DB;DP=1697;Dels=0.00;FS=12.547;HaplotypeScore=0.4063;InbreedingCoeff=0.4565;MLEAC=8;MLEAF=0.080;MQ=58.32;MQ0=0;MQRankSum=1.282;QD=16.10;ReadPosRankSum=-0.673;SNPEFF_AMINO_ACID_CHANGE=H523;SNPEFF_CODON_CHANGE=caC/caT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1896327_1896500;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIP [...]
+1	1896379	rs61734006	C	T	483.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=0.623;DB;DP=1305;Dels=0.00;FS=4.694;HaplotypeScore=0.2476;InbreedingCoeff=-0.0102;MLEAC=1;MLEAF=0.010;MQ=58.31;MQ0=0;MQRankSum=1.250;QD=11.50;ReadPosRankSum=0.386;SNPEFF_AMINO_ACID_CHANGE=R508H;SNPEFF_CODON_CHANGE=cGt/cAt;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1896327_1896500;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODERATE;SNPEFF_ [...]
+1	1897889	rs61734007	G	C	1841.28	PASS	AC=4;AF=0.040;AN=100;BaseQRankSum=-8.826;DB;DP=1545;Dels=0.00;FS=0.000;HaplotypeScore=0.5198;InbreedingCoeff=-0.0417;MLEAC=4;MLEAF=0.040;MQ=58.62;MQ0=0;MQRankSum=2.410;QD=11.58;ReadPosRankSum=0.364;SNPEFF_AMINO_ACID_CHANGE=P441R;SNPEFF_CODON_CHANGE=cCc/cGc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1897810_1897965;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODERATE;SNPEF [...]
+1	1897960	rs61734009	G	A	69.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.744;DB;DP=1196;Dels=0.00;FS=2.361;HaplotypeScore=0.4735;InbreedingCoeff=-0.0102;MLEAC=1;MLEAF=0.010;MQ=58.04;MQ0=0;MQRankSum=0.756;QD=8.65;ReadPosRankSum=-2.117;SNPEFF_AMINO_ACID_CHANGE=Y417;SNPEFF_CODON_CHANGE=taC/taT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1897810_1897965;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_I [...]
+1	1900024	rs56985589	TG	T	34001.90	PASS	AC=29;AF=0.290;AN=100;BaseQRankSum=-4.625;DB;DP=3473;FS=33.708;HaplotypeScore=19.1752;InbreedingCoeff=0.0680;MLEAC=29;MLEAF=0.290;MQ=58.34;MQ0=0;MQRankSum=-3.279;QD=23.43;ReadPosRankSum=-0.519;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000270720	GT:AD:DP:GQ:PL	1/1:0,69:69:99:3091,208,0	0/0:85,0:85:99:0,256,3014	0/1:35,33:71:99:1222 [...]
+1	1900083	rs61734010	C	T	1026.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.513;DB;DP=4963;Dels=0.00;FS=0.626;HaplotypeScore=1.0971;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=57.40;MQ0=0;MQRankSum=3.504;QD=13.68;ReadPosRankSum=-0.731;SNPEFF_AMINO_ACID_CHANGE=T412;SNPEFF_CODON_CHANGE=acG/acA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1900074_1900272;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIP [...]
+1	1900106	rs61233860	T	TCTC	53695.38	Indel_FS	AC=29;AF=0.290;AN=100;BaseQRankSum=-4.539;DB;DP=5111;FS=1274.991;HaplotypeScore=15.3591;InbreedingCoeff=0.0772;MLEAC=29;MLEAF=0.290;MQ=56.96;MQ0=0;MQRankSum=-7.285;QD=29.91;ReadPosRankSum=-0.826;SNPEFF_AMINO_ACID_CHANGE=K404KR;SNPEFF_CODON_CHANGE=aag/aaGAGg;SNPEFF_EFFECT=CODON_INSERTION;SNPEFF_EXON_ID=exon_1_1900074_1900272;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODERATE;SNPEFF [...]
+1	1900186	rs35269416	T	C	26612.08	PASS	AC=17;AF=0.170;AN=100;BaseQRankSum=15.129;DB;DP=5644;Dels=0.00;FS=2.051;HaplotypeScore=0.9407;InbreedingCoeff=0.0787;MLEAC=17;MLEAF=0.170;MQ=58.60;MQ0=0;MQRankSum=2.639;QD=20.81;ReadPosRankSum=-1.035;SNPEFF_AMINO_ACID_CHANGE=K378R;SNPEFF_CODON_CHANGE=aAa/aGa;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1900074_1900272;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODERATE;SN [...]
+1	1900211	rs78791970	C	T	850.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-5.317;DB;DP=5092;Dels=0.00;FS=0.000;HaplotypeScore=1.0293;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=58.63;MQ0=0;MQRankSum=2.381;QD=11.81;ReadPosRankSum=-0.996;SNPEFF_AMINO_ACID_CHANGE=E370K;SNPEFF_CODON_CHANGE=Gag/Aag;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1900074_1900272;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODERATE;SNPEF [...]
+1	1900225	rs72636304	C	T	689.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=3.355;DB;DP=4850;Dels=0.00;FS=1.828;HaplotypeScore=1.5262;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=58.60;MQ0=0;MQRankSum=0.345;QD=13.25;ReadPosRankSum=0.779;SNPEFF_AMINO_ACID_CHANGE=R365Q;SNPEFF_CODON_CHANGE=cGg/cAg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1900074_1900272;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODERATE;SNPEFF_ [...]
+1	1900232	rs16824588	T	C	72609.14	PASS	AC=47;AF=0.470;AN=100;BaseQRankSum=-13.056;DB;DP=4674;Dels=0.00;FS=4.915;HaplotypeScore=1.2678;InbreedingCoeff=0.0767;MLEAC=47;MLEAF=0.470;MQ=58.67;MQ0=0;MQRankSum=-0.362;QD=23.54;ReadPosRankSum=-1.796;SNPEFF_AMINO_ACID_CHANGE=I363V;SNPEFF_CODON_CHANGE=Atc/Gtc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1900074_1900272;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODERATE; [...]
+1	1900308	rs114206046	T	C	1362.12	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=6.772;DB;DP=1287;Dels=0.00;FS=7.651;HaplotypeScore=0.6800;InbreedingCoeff=-0.0311;MLEAC=3;MLEAF=0.030;MQ=58.64;MQ0=0;MQRankSum=1.892;QD=13.10;ReadPosRankSum=-1.879;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000270720;VQSLOD=6.66;culprit=MQ	GT:AD:DP:GQ:PL	0/0:39,1:39:99:0,111,1253	0/0:34,0:34:96:0,96 [...]
+1	1903373	rs117921686	C	T	723.61	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=-2.355;DB;DP=1241;Dels=0.00;FS=1.104;HaplotypeScore=1.0785;InbreedingCoeff=-0.0308;MLEAC=3;MLEAF=0.030;MQ=59.00;MQ0=0;MQRankSum=0.107;QD=11.67;ReadPosRankSum=-1.042;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000270720;VQSLOD=6.56;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:29,0:29:84:0,84,1042	0/0:28,0 [...]
+1	1903400	.	T	G	1066.92	VQSRTrancheSNP99.50to99.90	AC=31;AF=0.310;AN=100;BaseQRankSum=-15.042;DP=1110;Dels=0.00;FS=159.527;HaplotypeScore=1.0567;InbreedingCoeff=-0.4165;MLEAC=29;MLEAF=0.290;MQ=58.36;MQ0=0;MQRankSum=1.810;QD=1.48;ReadPosRankSum=-13.563;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000270720;VQSLOD=-1.156e+01;culprit=FS	GT:AD:DP:GQ:PL	0/0:15,10:24:18:0,18,424 [...]
+1	1956362	rs2376805	G	A	71015.04	PASS	AC=83;AF=0.830;AN=100;BaseQRankSum=10.972;DB;DP=2501;Dels=0.00;FS=11.665;HaplotypeScore=0.3263;InbreedingCoeff=0.3621;MLEAC=83;MLEAF=0.830;MQ=59.05;MQ0=0;MQRankSum=0.640;QD=31.87;ReadPosRankSum=3.782;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=GABRD;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378585;VQSLOD=4.03;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL	0/1:21,13:32:99:382,0,479	1/1:0,30:3 [...]
+1	1956733	rs188089835	G	A	868.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.998;DB;DP=2977;Dels=0.00;FS=1.871;HaplotypeScore=0.5884;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.31;MQ0=0;MQRankSum=0.654;QD=11.58;ReadPosRankSum=-3.335;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=GABRD;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378585;VQSLOD=6.16;culprit=InbreedingCoeff	GT:AD:DP:GQ:PL	0/0:60,0:60:99:0,181,2168	0/0:57,0:5 [...]
+1	1956850	.	A	C	664.91	VQSRTrancheSNP99.50to99.90	AC=22;AF=0.220;AN=100;BaseQRankSum=-21.336;DP=2255;Dels=0.00;FS=351.602;HaplotypeScore=2.1819;InbreedingCoeff=-0.2778;MLEAC=21;MLEAF=0.210;MQ=58.85;MQ0=0;MQRankSum=6.650;QD=0.58;ReadPosRankSum=-5.172;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=GABRD;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378585;VQSLOD=-3.563e+01;culprit=FS	GT:AD:DP:GQ:PL	0/0:36,15:49:29:0,29,976	0/0:4 [...]
+1	1957037	rs2229110	T	C	70543.40	PASS	AC=64;AF=0.640;AN=100;BaseQRankSum=16.739;DB;DP=3212;Dels=0.00;FS=3.065;HaplotypeScore=2.3687;InbreedingCoeff=0.2187;MLEAC=64;MLEAF=0.640;MQ=59.26;MQ0=0;MQRankSum=-0.198;QD=27.04;ReadPosRankSum=0.465;SNPEFF_AMINO_ACID_CHANGE=G110;SNPEFF_CODON_CHANGE=ggT/ggC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1956957_1957177;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=GABRD;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_I [...]
+1	1957219	rs140980040	CG	C	3487.20	Indel_FS	AC=12;AF=0.120;AN=100;BaseQRankSum=-0.962;DB;DP=873;FS=354.599;HaplotypeScore=4.0037;InbreedingCoeff=0.0497;MLEAC=12;MLEAF=0.120;MQ=58.78;MQ0=0;MQRankSum=1.434;QD=17.98;RPA=3,2;RU=G;ReadPosRankSum=-2.351;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=GABRD;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378585;STR	GT:AD:DP:GQ:PL	0/0:22,0:22:66:0,66,895	0/0:23,0:23:69:0,69,926	0/1:9,7:1 [...]
+1	1958993	rs150102040	C	T	122.20	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.968;DB;DP=911;Dels=0.00;FS=17.837;HaplotypeScore=0.2512;InbreedingCoeff=-0.0110;MLEAC=1;MLEAF=0.010;MQ=59.00;MQ0=0;MQRankSum=1.864;QD=7.64;ReadPosRankSum=-0.095;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=GABRD;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378585;VQSLOD=4.30;culprit=FS	GT:AD:DP:GQ:PL	0/0:19,0:19:57:0,57,703	0/0:21,0:21:63:0,63,794	0/ [...]
+1	1959121	rs3795279	T	C	2677.48	PASS	AC=5;AF=0.050;AN=100;BaseQRankSum=9.933;DB;DP=1066;Dels=0.00;FS=4.101;HaplotypeScore=0.3335;InbreedingCoeff=-0.0530;MLEAC=5;MLEAF=0.050;MQ=59.22;MQ0=0;MQRankSum=0.944;QD=14.87;ReadPosRankSum=-1.734;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=GABRD;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378585;VQSLOD=7.15;culprit=InbreedingCoeff	GT:AD:DP:GQ:PL	0/0:23,0:23:69:0,69,811	0/0:27,0:27:81 [...]
+1	1959698	rs139300921	C	T	112.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=2.525;DB;DP=1038;Dels=0.00;FS=2.291;HaplotypeScore=0.5319;InbreedingCoeff=-0.0104;MLEAC=1;MLEAF=0.010;MQ=58.91;MQ0=0;MQRankSum=0.884;QD=10.20;ReadPosRankSum=-0.322;SNPEFF_AMINO_ACID_CHANGE=R220C;SNPEFF_CODON_CHANGE=Cgc/Tgc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1959594_1959731;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=GABRD;SNPEFF_IMPACT=MODERATE;SNPEFF_TR [...]
+1	1959699	rs41307846	G	A	210.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.134;DB;DP=999;Dels=0.00;FS=0.000;HaplotypeScore=0.5319;InbreedingCoeff=-0.0104;MLEAC=1;MLEAF=0.010;MQ=58.80;MQ0=0;MQRankSum=1.468;QD=19.11;ReadPosRankSum=-1.548;SNPEFF_AMINO_ACID_CHANGE=R220H;SNPEFF_CODON_CHANGE=cGc/cAc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1959594_1959731;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=GABRD;SNPEFF_IMPACT=MODERATE;SNPEFF_TRA [...]
+1	1960674	rs28408173	C	T	2980.27	PASS	AC=23;AF=0.230;AN=100;BaseQRankSum=-7.583;DB;DP=410;Dels=0.00;FS=0.000;HaplotypeScore=0.2047;InbreedingCoeff=0.1983;MLEAC=22;MLEAF=0.220;MQ=58.36;MQ0=0;MQRankSum=2.906;QD=17.43;ReadPosRankSum=-1.056;SNPEFF_AMINO_ACID_CHANGE=S272;SNPEFF_CODON_CHANGE=agC/agT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1960550_1960705;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=GABRD;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID [...]
+1	1960964	rs116197762	A	G	2939.28	PASS	AC=4;AF=0.040;AN=100;BaseQRankSum=9.622;DB;DP=2005;Dels=0.00;FS=10.345;HaplotypeScore=0.5699;InbreedingCoeff=-0.0417;MLEAC=4;MLEAF=0.040;MQ=58.96;MQ0=0;MQRankSum=-0.092;QD=13.36;ReadPosRankSum=-2.028;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=GABRD;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378585;VQSLOD=6.71;culprit=MQ	GT:AD:DP:GQ:PL	0/0:38,0:38:99:0,111,1314	0/0:43,0:43:99:0,123, [...]
+1	1961239	rs28507434	G	A	181.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.178;DB;DP=1196;Dels=0.00;FS=2.212;HaplotypeScore=0.2632;InbreedingCoeff=-0.0104;MLEAC=1;MLEAF=0.010;MQ=59.68;MQ0=0;MQRankSum=-0.953;QD=15.10;ReadPosRankSum=-1.138;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=GABRD;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378585;VQSLOD=7.30;culprit=MQRankSum	GT:AD:DP:GQ:PL	0/0:19,0:19:57:0,57,703	0/0:27,0:27:81:0,8 [...]
+1	1961408	rs28431879	C	T	12677.23	PASS	AC=21;AF=0.210;AN=100;BaseQRankSum=-0.060;DB;DP=2453;Dels=0.00;FS=9.731;HaplotypeScore=0.6274;InbreedingCoeff=0.0958;MLEAC=21;MLEAF=0.210;MQ=58.82;MQ0=0;MQRankSum=0.121;QD=15.50;ReadPosRankSum=-1.337;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=GABRD;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378585;VQSLOD=5.25;culprit=MQ	GT:AD:DP:GQ:PL	0/1:23,22:43:99:645,0,560	0/1:19,13:31:99:373,0 [...]
+1	1961466	rs28398772	C	T	3049.46	PASS	AC=5;AF=0.050;AN=100;BaseQRankSum=2.707;DB;DP=2245;Dels=0.00;FS=15.097;HaplotypeScore=0.6637;InbreedingCoeff=-0.0526;MLEAC=5;MLEAF=0.050;MQ=59.16;MQ0=0;MQRankSum=-0.078;QD=12.81;ReadPosRankSum=-2.229;SNPEFF_AMINO_ACID_CHANGE=A368;SNPEFF_CODON_CHANGE=gcC/gcT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1961422_1962192;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=GABRD;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_I [...]
+1	1986954	rs35271800	G	A	626.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=4.370;DB;DP=1965;Dels=0.00;FS=1.853;HaplotypeScore=0.0984;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.68;MQ0=0;MQRankSum=0.301;QD=11.60;ReadPosRankSum=-2.289;SNPEFF_AMINO_ACID_CHANGE=R3H;SNPEFF_CODON_CHANGE=cGt/cAt;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1986880_1987001;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PRKCZ;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANS [...]
+1	1987889	rs70937051	C	T	286.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.998;DB;DP=1365;Dels=0.00;FS=0.000;HaplotypeScore=0.3534;InbreedingCoeff=-0.0102;MLEAC=1;MLEAF=0.010;MQ=59.62;MQ0=0;MQRankSum=-2.065;QD=11.45;ReadPosRankSum=-1.702;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PRKCZ;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000484419;VQSLOD=6.69;culprit=MQRankSum	GT:AD:DP:GQ:PL	0/0:27,0:27:81:0,81,998	0/0:19,0:19:51 [...]
+1	2234874	rs143561187	CG	C	532.13	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=0.309;DB;DP=3338;FS=90.583;HaplotypeScore=17.7870;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=58.53;MQ0=0;MQRankSum=0.017;QD=12.98;RPA=5,4;RU=G;ReadPosRankSum=-2.092;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SKI;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000478223;STR	GT:AD:DP:GQ:PL	0/0:70,0:70:99:0,211,2619	0/0:70,0:73:99:0,211,2608	0/0:63,0: [...]
+1	2235451	.	C	G	226.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.707;DP=1158;Dels=0.00;FS=6.994;HaplotypeScore=0.9115;InbreedingCoeff=-0.0104;MLEAC=1;MLEAF=0.010;MQ=59.39;MQ0=0;MQRankSum=-0.169;QD=12.57;ReadPosRankSum=-1.595;SNPEFF_AMINO_ACID_CHANGE=P462A;SNPEFF_CODON_CHANGE=Cca/Gca;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_2235279_2235541;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SKI;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCRIPT_ID=E [...]
+1	2235477	rs150985728	C	T	447.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=0.924;DB;DP=987;Dels=0.00;FS=0.000;HaplotypeScore=0.8674;InbreedingCoeff=-0.0108;MLEAC=1;MLEAF=0.010;MQ=58.91;MQ0=0;MQRankSum=0.361;QD=12.78;ReadPosRankSum=-0.484;SNPEFF_AMINO_ACID_CHANGE=P470;SNPEFF_CODON_CHANGE=ccC/ccT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_2235279_2235541;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SKI;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENS [...]
+1	2237614	.	G	A	63.78	PASS	AC=1;AF=0.010;AN=98;BaseQRankSum=-0.828;DP=319;Dels=0.00;FS=0.000;HaplotypeScore=0.1893;InbreedingCoeff=-0.0338;MLEAC=1;MLEAF=0.010;MQ=59.16;MQ0=0;MQRankSum=0.368;QD=15.95;ReadPosRankSum=-0.476;SNPEFF_AMINO_ACID_CHANGE=L641;SNPEFF_CODON_CHANGE=ctG/ctA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_2237459_2237689;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SKI;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST00000378536;V [...]
+1	2238237	rs2230008	A	T	83.67	PASS	AC=6;AF=0.150;AN=40;BaseQRankSum=-0.106;DB;DP=28;Dels=0.00;FS=0.000;HaplotypeScore=0.0000;InbreedingCoeff=0.2420;MLEAC=5;MLEAF=0.125;MQ=57.15;MQ0=0;MQRankSum=-1.694;QD=20.92;ReadPosRankSum=-0.529;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SKI;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000478223;VQSLOD=3.72;culprit=MQ	GT:AD:DP:GQ:PL	./.	./.	./.	./.	./.	./.	./.	./.	0/0:1,0:1:3:0,3,34	./ [...]
+1	2255489	rs3831908	CCAGA	C	619.14	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-2.623;DB;DP=386;FS=0.000;HaplotypeScore=3.5051;InbreedingCoeff=0.4499;MLEAC=2;MLEAF=0.020;MQ=58.60;MQ0=0;MQRankSum=0.402;QD=56.29;ReadPosRankSum=-0.970;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MORN1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378531	GT:AD:DP:GQ:PL	0/0:8,0:8:24:0,24,555	0/0:8,0:8:24:0,24,555	0/0:3,0:3:9:0,9,81	0/0:3,0:3:9:0,9,208 [...]
+1	2255633	rs3737639	G	A	1457.31	PASS	AC=11;AF=0.110;AN=100;BaseQRankSum=-4.330;DB;DP=338;Dels=0.00;FS=7.069;HaplotypeScore=0.1797;InbreedingCoeff=0.1803;MLEAC=11;MLEAF=0.110;MQ=58.86;MQ0=0;MQRankSum=1.090;QD=16.01;ReadPosRankSum=-1.385;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MORN1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378531;VQSLOD=6.36;culprit=MQ	GT:AD:DP:GQ:PL	0/0:4,0:4:12:0,12,151	0/0:12,0:11:33:0,33,393	0/0: [...]
diff --git a/testdata/picard/vcf/mini.dbsnp.vcf.idx b/testdata/picard/vcf/mini.dbsnp.vcf.idx
new file mode 100644
index 0000000..710aa2f
Binary files /dev/null and b/testdata/picard/vcf/mini.dbsnp.vcf.idx differ
diff --git a/testdata/picard/vcf/mini.vcf b/testdata/picard/vcf/mini.vcf
new file mode 100755
index 0000000..45b9708
--- /dev/null
+++ b/testdata/picard/vcf/mini.vcf
@@ -0,0 +1,1000 @@
+##fileformat=VCFv4.1
+##ApplyRecalibration="analysis_type=ApplyRecalibration input_file=[] read_buffer_size=null phone_home=STANDARD gatk_key=null tag=NA read_filter=[] intervals=[/seq/tng/mccowan/VARIANT_CALLING_FAUXCELL/v1/VARIANT_CALLING_FAUXCELL.padded.interval_list] excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/seq/references/Homo_sapiens_assembly19/v1/Homo_sapiens_assembly19.fasta nonDeterministicRandomSeed=false disableRandomization=false maxR [...]
+##FILTER=<ID=Indel_FS,Description="FS>200.0">
+##FILTER=<ID=Indel_InbreedingCoeff,Description="InbreedingCoeff<-0.8">
+##FILTER=<ID=Indel_QD,Description="QD<2.0">
+##FILTER=<ID=Indel_ReadPosRankSum,Description="ReadPosRankSum<-20.0">
+##FILTER=<ID=LowQual,Description="Low quality">
+##FILTER=<ID=VQSRTrancheSNP98.50to98.60,Description="Truth sensitivity tranche level for SNP model at VQS Lod: 0.6803 <= x < 0.8195">
+##FILTER=<ID=VQSRTrancheSNP98.60to98.80,Description="Truth sensitivity tranche level for SNP model at VQS Lod: 0.391 <= x < 0.6803">
+##FILTER=<ID=VQSRTrancheSNP98.80to98.90,Description="Truth sensitivity tranche level for SNP model at VQS Lod: 0.2076 <= x < 0.391">
+##FILTER=<ID=VQSRTrancheSNP98.90to99.00,Description="Truth sensitivity tranche level for SNP model at VQS Lod: 0.0125 <= x < 0.2076">
+##FILTER=<ID=VQSRTrancheSNP99.00to99.30,Description="Truth sensitivity tranche level for SNP model at VQS Lod: -0.92 <= x < 0.0125">
+##FILTER=<ID=VQSRTrancheSNP99.30to99.50,Description="Truth sensitivity tranche level for SNP model at VQS Lod: -2.0012 <= x < -0.92">
+##FILTER=<ID=VQSRTrancheSNP99.50to99.90,Description="Truth sensitivity tranche level for SNP model at VQS Lod: -47.4391 <= x < -2.0012">
+##FILTER=<ID=VQSRTrancheSNP99.90to100.00+,Description="Truth sensitivity tranche level for SNP model at VQS Lod < -3283.311">
+##FILTER=<ID=VQSRTrancheSNP99.90to100.00,Description="Truth sensitivity tranche level for SNP model at VQS Lod: -3283.311 <= x < -47.4391">
+##FORMAT=<ID=AD,Number=.,Type=Integer,Description="Allelic depths for the ref and alt alleles in the order listed">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth (reads with MQ=255 or with bad mates are filtered)">
+##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##FORMAT=<ID=PL,Number=G,Type=Integer,Description="Normalized, Phred-scaled likelihoods for genotypes as defined in the VCF specification">
+##INFO=<ID=AC,Number=A,Type=Integer,Description="Allele count in genotypes, for each ALT allele, in the same order as listed">
+##INFO=<ID=AF,Number=A,Type=Float,Description="Allele Frequency, for each ALT allele, in the same order as listed">
+##INFO=<ID=AN,Number=1,Type=Integer,Description="Total number of alleles in called genotypes">
+##INFO=<ID=BaseQRankSum,Number=1,Type=Float,Description="Z-score from Wilcoxon rank sum test of Alt Vs. Ref base qualities">
+##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP Membership">
+##INFO=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth; some reads may have been filtered">
+##INFO=<ID=DS,Number=0,Type=Flag,Description="Were any of the samples downsampled?">
+##INFO=<ID=Dels,Number=1,Type=Float,Description="Fraction of Reads Containing Spanning Deletions">
+##INFO=<ID=END,Number=1,Type=Integer,Description="Stop position of the interval">
+##INFO=<ID=FS,Number=1,Type=Float,Description="Phred-scaled p-value using Fisher's exact test to detect strand bias">
+##INFO=<ID=HaplotypeScore,Number=1,Type=Float,Description="Consistency of the site with at most two segregating haplotypes">
+##INFO=<ID=InbreedingCoeff,Number=1,Type=Float,Description="Inbreeding coefficient as estimated from the genotype likelihoods per-sample when compared against the Hardy-Weinberg expectation">
+##INFO=<ID=MLEAC,Number=A,Type=Integer,Description="Maximum likelihood expectation (MLE) for the allele counts (not necessarily the same as the AC), for each ALT allele, in the same order as listed">
+##INFO=<ID=MLEAF,Number=A,Type=Float,Description="Maximum likelihood expectation (MLE) for the allele frequency (not necessarily the same as the AF), for each ALT allele, in the same order as listed">
+##INFO=<ID=MQ,Number=1,Type=Float,Description="RMS Mapping Quality">
+##INFO=<ID=MQ0,Number=1,Type=Integer,Description="Total Mapping Quality Zero Reads">
+##INFO=<ID=MQRankSum,Number=1,Type=Float,Description="Z-score From Wilcoxon rank sum test of Alt vs. Ref read mapping qualities">
+##INFO=<ID=QD,Number=1,Type=Float,Description="Variant Confidence/Quality by Depth">
+##INFO=<ID=RPA,Number=.,Type=Integer,Description="Number of times tandem repeat unit is repeated, for each allele (including reference)">
+##INFO=<ID=RU,Number=1,Type=String,Description="Tandem repeat unit (bases)">
+##INFO=<ID=ReadPosRankSum,Number=1,Type=Float,Description="Z-score from Wilcoxon rank sum test of Alt vs. Ref read position bias">
+##INFO=<ID=SNPEFF_AMINO_ACID_CHANGE,Number=1,Type=String,Description="Old/New amino acid for the highest-impact effect resulting from the current variant (in HGVS style)">
+##INFO=<ID=SNPEFF_CODON_CHANGE,Number=1,Type=String,Description="Old/New codon for the highest-impact effect resulting from the current variant">
+##INFO=<ID=SNPEFF_EFFECT,Number=1,Type=String,Description="The highest-impact effect resulting from the current variant (or one of the highest-impact effects, if there is a tie)">
+##INFO=<ID=SNPEFF_EXON_ID,Number=1,Type=String,Description="Exon ID for the highest-impact effect resulting from the current variant">
+##INFO=<ID=SNPEFF_FUNCTIONAL_CLASS,Number=1,Type=String,Description="Functional class of the highest-impact effect resulting from the current variant: [NONE, SILENT, MISSENSE, NONSENSE]">
+##INFO=<ID=SNPEFF_GENE_BIOTYPE,Number=1,Type=String,Description="Gene biotype for the highest-impact effect resulting from the current variant">
+##INFO=<ID=SNPEFF_GENE_NAME,Number=1,Type=String,Description="Gene name for the highest-impact effect resulting from the current variant">
+##INFO=<ID=SNPEFF_IMPACT,Number=1,Type=String,Description="Impact of the highest-impact effect resulting from the current variant [MODIFIER, LOW, MODERATE, HIGH]">
+##INFO=<ID=SNPEFF_TRANSCRIPT_ID,Number=1,Type=String,Description="Transcript ID for the highest-impact effect resulting from the current variant">
+##INFO=<ID=STR,Number=0,Type=Flag,Description="Variant is a short tandem repeat">
+##INFO=<ID=VQSLOD,Number=1,Type=Float,Description="Log odds ratio of being a true variant versus being false under the trained gaussian mixture model">
+##INFO=<ID=culprit,Number=1,Type=String,Description="The annotation which was the worst performing in the Gaussian mixture model, likely the reason why the variant was filtered out">
+##OriginalSnpEffCmd="SnpEff eff -v -onlyCoding true -c /seq/references/Homo_sapiens_assembly19/v1/snpEff/Homo_sapiens_assembly19.snpEff.config -i vcf -o vcf GRCh37.64 /seq/tng/mccowan/VARIANT_CALLING_FAUXCELL/v1/VARIANT_CALLING_FAUXCELL.unannotated.vcf "
+##OriginalSnpEffVersion="2.0.5 (build 2011-12-24), by Pablo Cingolani"
+##UnifiedGenotyper="analysis_type=UnifiedGenotyper input_file=[/seq/tng/mccowan/VARIANT_CALLING_FAUXCELL/v1/VARIANT_CALLING_FAUXCELL.bam.list] read_buffer_size=null phone_home=STANDARD gatk_key=null tag=NA read_filter=[] intervals=[/seq/tng/mccowan/VARIANT_CALLING_FAUXCELL/v1/scatter/temp_0001_of_50/scattered.intervals] excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/seq/references/Homo_sapiens_assembly19/v1/Homo_sapiens_assembly1 [...]
+##VariantAnnotator="analysis_type=VariantAnnotator input_file=[] read_buffer_size=null phone_home=STANDARD gatk_key=null tag=NA read_filter=[] intervals=[/seq/references/HybSelOligos/whole_exome_agilent_1.1_refseq_plus_3_boosters/whole_exome_agilent_1.1_refseq_plus_3_boosters.Homo_sapiens_assembly19.targets.interval_list] excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=50 reference_sequence=/seq/references/Homo_sapiens_assembly19/v1/Homo_sapiens_assemb [...]
+##VariantFiltration="analysis_type=VariantFiltration input_file=[] read_buffer_size=null phone_home=STANDARD gatk_key=null tag=NA read_filter=[] intervals=[/seq/tng/mccowan/VARIANT_CALLING_FAUXCELL/v1/VARIANT_CALLING_FAUXCELL.padded.interval_list] excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/seq/references/Homo_sapiens_assembly19/v1/Homo_sapiens_assembly19.fasta nonDeterministicRandomSeed=false disableRandomization=false maxRun [...]
+##contig=<ID=1,length=249250621>
+##contig=<ID=2,length=243199373>
+##contig=<ID=3,length=198022430>
+##contig=<ID=4,length=191154276>
+##contig=<ID=5,length=180915260>
+##contig=<ID=6,length=171115067>
+##contig=<ID=7,length=159138663>
+##contig=<ID=8,length=146364022>
+##contig=<ID=9,length=141213431>
+##contig=<ID=10,length=135534747>
+##contig=<ID=11,length=135006516>
+##contig=<ID=12,length=133851895>
+##contig=<ID=13,length=115169878>
+##contig=<ID=14,length=107349540>
+##contig=<ID=15,length=102531392>
+##contig=<ID=16,length=90354753>
+##contig=<ID=17,length=81195210>
+##contig=<ID=18,length=78077248>
+##contig=<ID=19,length=59128983>
+##contig=<ID=20,length=63025520>
+##contig=<ID=21,length=48129895>
+##contig=<ID=22,length=51304566>
+##contig=<ID=X,length=155270560>
+##contig=<ID=Y,length=59373566>
+##contig=<ID=MT,length=16569>
+##contig=<ID=GL000207.1,length=4262>
+##contig=<ID=GL000226.1,length=15008>
+##contig=<ID=GL000229.1,length=19913>
+##contig=<ID=GL000231.1,length=27386>
+##contig=<ID=GL000210.1,length=27682>
+##contig=<ID=GL000239.1,length=33824>
+##contig=<ID=GL000235.1,length=34474>
+##contig=<ID=GL000201.1,length=36148>
+##contig=<ID=GL000247.1,length=36422>
+##contig=<ID=GL000245.1,length=36651>
+##contig=<ID=GL000197.1,length=37175>
+##contig=<ID=GL000203.1,length=37498>
+##contig=<ID=GL000246.1,length=38154>
+##contig=<ID=GL000249.1,length=38502>
+##contig=<ID=GL000196.1,length=38914>
+##contig=<ID=GL000248.1,length=39786>
+##contig=<ID=GL000244.1,length=39929>
+##contig=<ID=GL000238.1,length=39939>
+##contig=<ID=GL000202.1,length=40103>
+##contig=<ID=GL000234.1,length=40531>
+##contig=<ID=GL000232.1,length=40652>
+##contig=<ID=GL000206.1,length=41001>
+##contig=<ID=GL000240.1,length=41933>
+##contig=<ID=GL000236.1,length=41934>
+##contig=<ID=GL000241.1,length=42152>
+##contig=<ID=GL000243.1,length=43341>
+##contig=<ID=GL000242.1,length=43523>
+##contig=<ID=GL000230.1,length=43691>
+##contig=<ID=GL000237.1,length=45867>
+##contig=<ID=GL000233.1,length=45941>
+##contig=<ID=GL000204.1,length=81310>
+##contig=<ID=GL000198.1,length=90085>
+##contig=<ID=GL000208.1,length=92689>
+##contig=<ID=GL000191.1,length=106433>
+##contig=<ID=GL000227.1,length=128374>
+##contig=<ID=GL000228.1,length=129120>
+##contig=<ID=GL000214.1,length=137718>
+##contig=<ID=GL000221.1,length=155397>
+##contig=<ID=GL000209.1,length=159169>
+##contig=<ID=GL000218.1,length=161147>
+##contig=<ID=GL000220.1,length=161802>
+##contig=<ID=GL000213.1,length=164239>
+##contig=<ID=GL000211.1,length=166566>
+##contig=<ID=GL000199.1,length=169874>
+##contig=<ID=GL000217.1,length=172149>
+##contig=<ID=GL000216.1,length=172294>
+##contig=<ID=GL000215.1,length=172545>
+##contig=<ID=GL000205.1,length=174588>
+##contig=<ID=GL000219.1,length=179198>
+##contig=<ID=GL000224.1,length=179693>
+##contig=<ID=GL000223.1,length=180455>
+##contig=<ID=GL000195.1,length=182896>
+##contig=<ID=GL000212.1,length=186858>
+##contig=<ID=GL000222.1,length=186861>
+##contig=<ID=GL000200.1,length=187035>
+##contig=<ID=GL000193.1,length=189789>
+##contig=<ID=GL000194.1,length=191469>
+##contig=<ID=GL000225.1,length=211173>
+##contig=<ID=GL000192.1,length=547496>
+##contig=<ID=NC_007605,length=171823>
+##reference=file:///seq/references/Homo_sapiens_assembly19/v1/Homo_sapiens_assembly19.fasta
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	HG00116	HG00123	HG00158	HG00160	HG00265	HG00311	HG00371	HG00380	HG00404	HG00551	HG00610	HG00628	HG00635	HG01048	HG01079	HG01094	HG01247	HG01256	HG01260	HG01461	HG01488	NA06989	NA11918	NA11919	NA12341	NA18510	NA18520	NA18522	NA18574	NA18634	NA18867	NA18960	NA18986	NA19004	NA19067	NA19092	NA19102	NA19474	NA19675	NA19703	NA19711	NA19725	NA19819	NA19908	NA19920	NA20787	NA20798	NA20801	NA20803	NA20805
+1	69270	.	A	G	569.98	VQSRTrancheSNP99.50to99.90	AC=23;AF=0.767;AN=30;BaseQRankSum=-2.920;DP=4121;Dels=0.00;FS=0.000;HaplotypeScore=0.0000;InbreedingCoeff=0.3609;MLEAC=24;MLEAF=0.800;MQ=3.91;MQ0=1518;MQRankSum=0.523;QD=0.55;ReadPosRankSum=-0.861;SNPEFF_AMINO_ACID_CHANGE=S108;SNPEFF_CODON_CHANGE=tcA/tcG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_69037_69829;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=OR4F5;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIP [...]
+1	69428	rs140739101	T	G	1071.90	VQSRTrancheSNP99.50to99.90	AC=2;AF=0.036;AN=56;BaseQRankSum=1.668;DB;DP=4947;Dels=0.00;FS=0.000;HaplotypeScore=0.0704;InbreedingCoeff=0.6789;MLEAC=2;MLEAF=0.036;MQ=18.90;MQ0=341;MQRankSum=-1.379;QD=20.61;ReadPosRankSum=1.363;SNPEFF_AMINO_ACID_CHANGE=F113C;SNPEFF_CODON_CHANGE=tTt/tGt;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_69091_70008;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=OR4F5;SNPEFF_IMPACT=M [...]
+1	69511	rs75062661	A	G	21665.58	VQSRTrancheSNP99.50to99.90	AC=47;AF=0.904;AN=52;BaseQRankSum=8.056;DB;DP=1895;Dels=0.00;FS=2.126;HaplotypeScore=1.5401;InbreedingCoeff=0.3037;MLEAC=47;MLEAF=0.904;MQ=27.34;MQ0=178;MQRankSum=-9.596;QD=16.69;ReadPosRankSum=-3.561;SNPEFF_AMINO_ACID_CHANGE=T141A;SNPEFF_CODON_CHANGE=Aca/Gca;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_69091_70008;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=OR4F5;SNPEFF_IMPAC [...]
+1	69897	.	T	C	63.03	VQSRTrancheSNP99.50to99.90	AC=3;AF=0.375;AN=8;BaseQRankSum=-0.684;DP=5111;Dels=0.00;FS=7.368;HaplotypeScore=0.1663;MLEAC=3;MLEAF=0.375;MQ=2.25;MQ0=1721;MQRankSum=0.322;QD=0.42;ReadPosRankSum=1.920;SNPEFF_AMINO_ACID_CHANGE=S269;SNPEFF_CODON_CHANGE=tcT/tcC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_69091_70008;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=OR4F5;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST00000335137;VQSLOD= [...]
+1	865584	rs148711625	G	A	281.07	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=0.940;DB;DP=330;Dels=0.00;FS=3.530;HaplotypeScore=0.2625;InbreedingCoeff=-0.0538;MLEAC=2;MLEAF=0.020;MQ=58.85;MQ0=0;MQRankSum=0.042;QD=10.41;ReadPosRankSum=-1.347;SNPEFF_AMINO_ACID_CHANGE=R41Q;SNPEFF_CODON_CHANGE=cGg/cAg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_865535_865716;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SAMD11;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSC [...]
+1	865628	rs41285790	G	A	196.36	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.599;DB;DP=594;Dels=0.00;FS=9.508;HaplotypeScore=0.3491;InbreedingCoeff=-0.0196;MLEAC=1;MLEAF=0.010;MQ=58.96;MQ0=0;MQRankSum=0.966;QD=16.36;ReadPosRankSum=0.286;SNPEFF_AMINO_ACID_CHANGE=G56S;SNPEFF_CODON_CHANGE=Ggt/Agt;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_865535_865716;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SAMD11;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCR [...]
+1	865662	rs140751899	G	A	256.39	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.324;DB;DP=574;Dels=0.00;FS=0.000;HaplotypeScore=0.4317;InbreedingCoeff=-0.0190;MLEAC=1;MLEAF=0.010;MQ=58.98;MQ0=0;MQRankSum=0.719;QD=17.09;ReadPosRankSum=-2.664;SNPEFF_AMINO_ACID_CHANGE=R67Q;SNPEFF_CODON_CHANGE=cGg/cAg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_865535_865716;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SAMD11;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANS [...]
+1	865694	rs9988179	C	T	1322.83	PASS	AC=8;AF=0.080;AN=100;BaseQRankSum=-6.966;DB;DP=570;Dels=0.00;FS=4.942;HaplotypeScore=0.3866;InbreedingCoeff=-0.0906;MLEAC=8;MLEAF=0.080;MQ=59.05;MQ0=0;MQRankSum=0.264;QD=11.92;ReadPosRankSum=-0.281;SNPEFF_AMINO_ACID_CHANGE=H78Y;SNPEFF_CODON_CHANGE=Cac/Tac;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_865535_865716;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SAMD11;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSC [...]
+1	866422	rs139210662	C	T	438.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-4.574;DB;DP=3979;Dels=0.00;FS=0.914;HaplotypeScore=0.1297;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=58.54;MQ0=0;MQRankSum=3.015;QD=7.55;ReadPosRankSum=-1.870;SNPEFF_AMINO_ACID_CHANGE=V86;SNPEFF_CODON_CHANGE=gtC/gtT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_866419_866469;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SAMD11;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENS [...]
+1	866511	rs60722469	C	CCCCT	15676.17	Indel_FS	AC=56;AF=0.560;AN=100;BaseQRankSum=-1.522;DB;DP=1260;FS=441.806;HaplotypeScore=7.6647;InbreedingCoeff=0.0194;MLEAC=56;MLEAF=0.560;MQ=57.18;MQ0=0;MQRankSum=-1.263;QD=17.10;RPA=3,4;RU=CCCT;ReadPosRankSum=-2.911;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SAMD11;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000342066;STR	GT:AD:DP:GQ:PL	1/1:0,6:17:18:334,18,0	0/1:6,1:12:42:42,0,274	1/1 [...]
+1	871129	.	C	T	830.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.859;DP=5520;Dels=0.00;FS=1.888;HaplotypeScore=0.0611;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.58;MQ0=0;MQRankSum=1.724;QD=11.37;ReadPosRankSum=-4.488;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SAMD11;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000342066;VQSLOD=7.53;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:106,0:106:99:0,319,3920	0/0:127,0:127:99:0,382 [...]
+1	871215	rs28419423	C	G	7238.56	PASS	AC=8;AF=0.080;AN=100;BaseQRankSum=16.371;DB;DP=3815;Dels=0.00;FS=9.061;HaplotypeScore=0.8732;InbreedingCoeff=-0.0870;MLEAC=8;MLEAF=0.080;MQ=59.54;MQ0=0;MQRankSum=-1.629;QD=14.45;ReadPosRankSum=-7.987;SNPEFF_AMINO_ACID_CHANGE=P123;SNPEFF_CODON_CHANGE=ccC/ccG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_871152_871276;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SAMD11;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID= [...]
+1	871229	rs149944086	G	C	465.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.006;DB;DP=3174;Dels=0.00;FS=2.438;HaplotypeScore=0.8862;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.41;MQ0=0;MQRankSum=1.255;QD=13.29;ReadPosRankSum=0.621;SNPEFF_AMINO_ACID_CHANGE=R128P;SNPEFF_CODON_CHANGE=cGc/cCc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_871152_871276;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SAMD11;SNPEFF_IMPACT=MODERATE;SNPEFF_TRAN [...]
+1	871239	rs147616064	C	T	765.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-4.313;DB;DP=2598;Dels=0.00;FS=0.000;HaplotypeScore=0.8739;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.47;MQ0=0;MQRankSum=0.500;QD=13.66;ReadPosRankSum=-2.733;SNPEFF_AMINO_ACID_CHANGE=F131;SNPEFF_CODON_CHANGE=ttC/ttT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_871152_871276;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SAMD11;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=E [...]
+1	871269	.	A	C	174.48	PASS	AC=11;AF=0.110;AN=100;BaseQRankSum=-4.684;DP=701;Dels=0.00;FS=4.083;HaplotypeScore=0.6184;InbreedingCoeff=-0.1097;MLEAC=6;MLEAF=0.060;MQ=59.29;MQ0=0;MQRankSum=0.486;QD=1.03;ReadPosRankSum=-1.798;SNPEFF_AMINO_ACID_CHANGE=R141;SNPEFF_CODON_CHANGE=cgA/cgC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_871152_871276;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SAMD11;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST00000342066 [...]
+1	874665	rs74047413	G	A	286.03	PASS	AC=3;AF=0.031;AN=98;BaseQRankSum=-4.381;DB;DP=423;Dels=0.00;FS=0.000;HaplotypeScore=0.2324;InbreedingCoeff=-0.0476;MLEAC=3;MLEAF=0.031;MQ=58.60;MQ0=0;MQRankSum=0.197;QD=9.86;ReadPosRankSum=-0.087;SNPEFF_AMINO_ACID_CHANGE=L177;SNPEFF_CODON_CHANGE=ctG/ctA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_874655_874840;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SAMD11;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST0 [...]
+1	874816	.	C	CT	155.15	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=0.690;DP=1569;FS=2.369;HaplotypeScore=10.3381;InbreedingCoeff=-0.0109;MLEAC=1;MLEAF=0.010;MQ=56.17;MQ0=0;MQRankSum=-0.174;QD=6.75;ReadPosRankSum=0.958;SNPEFF_EFFECT=FRAME_SHIFT;SNPEFF_EXON_ID=exon_1_874655_874840;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SAMD11;SNPEFF_IMPACT=HIGH;SNPEFF_TRANSCRIPT_ID=ENST00000342066	GT:AD:DP:GQ:PL	0/0:22,0:22:66:0,66,970	0/0:18,0:18:53:0,53,690	0/0:24,0:2 [...]
+1	874864	rs141512630	CT	C	724.43	PASS	AC=7;AF=0.070;AN=100;BaseQRankSum=2.383;DB;DP=824;FS=6.340;HaplotypeScore=8.7541;InbreedingCoeff=-0.0758;MLEAC=6;MLEAF=0.060;MQ=54.92;MQ0=0;MQRankSum=-0.931;QD=4.24;ReadPosRankSum=-3.208;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000327044	GT:AD:DP:GQ:PL	0/0:12,0:12:36:0,36,510	0/0:11,0:11:33:0,33,452	0/0:17,0:17:51:0,51,726	0/ [...]
+1	874878	.	T	C	79.06	VQSRTrancheSNP99.30to99.50	AC=11;AF=0.110;AN=100;BaseQRankSum=-8.603;DP=655;Dels=0.00;FS=95.933;HaplotypeScore=0.5290;InbreedingCoeff=-0.1283;MLEAC=8;MLEAF=0.080;MQ=55.06;MQ0=0;MQRankSum=4.367;QD=0.52;ReadPosRankSum=-3.160;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000327044;VQSLOD=-1.815e+00;culprit=FS	GT:AD:DP:GQ:PL	0/1:8,2:10:23:23,0,247	0/0 [...]
+1	876499	rs4372192	A	G	10242.08	PASS	AC=90;AF=0.938;AN=96;BaseQRankSum=3.543;DB;DP=321;Dels=0.00;FS=2.156;HaplotypeScore=0.2158;InbreedingCoeff=0.1473;MLEAC=91;MLEAF=0.948;MQ=58.03;MQ0=0;MQRankSum=2.219;QD=32.72;ReadPosRankSum=-0.183;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000327044;VQSLOD=4.16;culprit=MQ	GT:AD:DP:GQ:PL	1/1:0,4:4:9:109,9,0	1/1:0,9:9:24:294,24,0	 [...]
+1	877782	rs79037098	C	G	63.89	PASS	AC=5;AF=0.071;AN=70;BaseQRankSum=-1.733;DB;DP=80;Dels=0.00;FS=2.644;HaplotypeScore=0.0838;InbreedingCoeff=-0.1972;MLEAC=6;MLEAF=0.086;MQ=57.68;MQ0=0;MQRankSum=-0.559;QD=4.56;ReadPosRankSum=-2.077;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000327044;VQSLOD=3.07;culprit=InbreedingCoeff	GT:AD:DP:GQ:PL	./.	0/0:2,0:2:6:0,6,61	0/0:2,0:2 [...]
+1	877831	rs6672356	T	C	3102.44	PASS	AC=68;AF=1.00;AN=68;DB;DP=94;Dels=0.00;FS=0.000;HaplotypeScore=0.0284;InbreedingCoeff=-0.1003;MLEAC=68;MLEAF=1.00;MQ=58.69;MQ0=0;QD=33.00;SNPEFF_AMINO_ACID_CHANGE=W343R;SNPEFF_CODON_CHANGE=Tgg/Cgg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_877790_877868;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SAMD11;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCRIPT_ID=ENST00000342066;VQSLOD=1.94;culprit=MQ	GT:AD:DP:GQ: [...]
+1	878296	rs72902601	C	G	55.37	PASS	AC=1;AF=0.010;AN=98;BaseQRankSum=-0.120;DB;DP=230;Dels=0.00;FS=2.395;HaplotypeScore=0.1272;InbreedingCoeff=-0.0578;MLEAC=1;MLEAF=0.010;MQ=58.94;MQ0=1;MQRankSum=0.978;QD=13.84;ReadPosRankSum=0.647;SNPEFF_AMINO_ACID_CHANGE=P474;SNPEFF_CODON_CHANGE=ccC/ccG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_877939_878438;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SAMD11;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST00 [...]
+1	878314	rs142558220	G	C	186.97	PASS	AC=4;AF=0.042;AN=96;BaseQRankSum=1.858;DB;DP=216;Dels=0.00;FS=17.207;HaplotypeScore=0.2218;InbreedingCoeff=-0.0963;MLEAC=4;MLEAF=0.042;MQ=58.83;MQ0=1;MQRankSum=1.218;QD=10.39;ReadPosRankSum=-0.676;SNPEFF_AMINO_ACID_CHANGE=G480;SNPEFF_CODON_CHANGE=ggG/ggC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_877939_878438;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SAMD11;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENS [...]
+1	878325	rs114478480	C	T	83.06	PASS	AC=3;AF=0.031;AN=96;BaseQRankSum=-1.893;DB;DP=231;Dels=0.00;FS=4.104;HaplotypeScore=0.1668;InbreedingCoeff=-0.0829;MLEAC=3;MLEAF=0.031;MQ=58.89;MQ0=1;MQRankSum=-0.574;QD=4.15;ReadPosRankSum=-0.163;SNPEFF_AMINO_ACID_CHANGE=P484L;SNPEFF_CODON_CHANGE=cCc/cTc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_877939_878438;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SAMD11;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSC [...]
+1	878474	rs183873661	C	T	121.32	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.830;DB;DP=748;Dels=0.00;FS=1.693;HaplotypeScore=0.3639;InbreedingCoeff=-0.0159;MLEAC=1;MLEAF=0.010;MQ=58.79;MQ0=0;MQRankSum=0.174;QD=7.58;ReadPosRankSum=-0.713;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000327044;VQSLOD=5.77;culprit=MQ	GT:AD:DP:GQ:PL	0/0:18,0:18:54:0,54,635	0/0:20,0:20:57:0,5 [...]
+1	878744	rs138897766	G	C	89.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=0.438;DB;DP=2067;Dels=0.00;FS=3.836;HaplotypeScore=0.4141;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.03;MQ0=0;MQRankSum=-0.098;QD=4.05;ReadPosRankSum=-0.621;SNPEFF_AMINO_ACID_CHANGE=G559A;SNPEFF_CODON_CHANGE=gGa/gCa;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_878633_878757;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SAMD11;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANS [...]
+1	878745	rs72902602	A	C	100.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.454;DB;DP=1926;Dels=0.00;FS=3.888;HaplotypeScore=0.4593;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.01;MQ0=0;MQRankSum=0.858;QD=7.16;ReadPosRankSum=-0.443;SNPEFF_AMINO_ACID_CHANGE=G559;SNPEFF_CODON_CHANGE=ggA/ggC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_878633_878757;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SAMD11;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENS [...]
+1	878784	rs142929357	C	G	270.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=2.915;DB;DP=1593;Dels=0.00;FS=1.545;HaplotypeScore=0.2502;InbreedingCoeff=-0.0102;MLEAC=1;MLEAF=0.010;MQ=58.73;MQ0=0;MQRankSum=0.339;QD=10.01;ReadPosRankSum=-2.756;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000327044;VQSLOD=6.04;culprit=MQ	GT:AD:DP:GQ:PL	0/0:16,0:16:48:0,48,520	0/0:48,0:48:99:0, [...]
+1	879276	rs115454328	A	G	151.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.178;DB;DP=2740;Dels=0.00;FS=3.247;HaplotypeScore=0.1855;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.08;MQ0=0;MQRankSum=0.941;QD=6.30;ReadPosRankSum=-1.171;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000327044;VQSLOD=6.84;culprit=QD	GT:AD:DP:GQ:PL	0/0:44,0:44:99:0,132,1543	0/0:60,0:60:99: [...]
+1	879317	rs7523549	C	T	4951.54	PASS	AC=8;AF=0.080;AN=100;BaseQRankSum=-1.693;DB;DP=1892;Dels=0.00;FS=1.332;HaplotypeScore=0.2180;InbreedingCoeff=0.1848;MLEAC=8;MLEAF=0.080;MQ=58.70;MQ0=0;MQRankSum=0.898;QD=16.78;ReadPosRankSum=-3.262;SNPEFF_AMINO_ACID_CHANGE=Y610;SNPEFF_CODON_CHANGE=taC/taT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_879288_879955;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SAMD11;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENS [...]
+1	879481	rs113383096	G	C	504.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-4.767;DB;DP=3723;Dels=0.00;FS=2.965;HaplotypeScore=1.1122;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.21;MQ0=0;MQRankSum=0.926;QD=11.46;ReadPosRankSum=-2.192;SNPEFF_AMINO_ACID_CHANGE=G665A;SNPEFF_CODON_CHANGE=gGg/gCg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_879288_879955;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SAMD11;SNPEFF_IMPACT=MODERATE;SNPEFF_TRA [...]
+1	879482	rs149880798	G	C	718.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=3.504;DB;DP=3666;Dels=0.00;FS=0.000;HaplotypeScore=1.0927;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.21;MQ0=0;MQRankSum=2.840;QD=10.88;ReadPosRankSum=-2.568;SNPEFF_AMINO_ACID_CHANGE=G665;SNPEFF_CODON_CHANGE=ggG/ggC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_879288_879955;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SAMD11;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=EN [...]
+1	879576	rs115979567	C	T	185.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.148;DB;DP=1276;Dels=0.00;FS=1.725;HaplotypeScore=0.7692;InbreedingCoeff=-0.0102;MLEAC=1;MLEAF=0.010;MQ=58.90;MQ0=0;MQRankSum=1.288;QD=9.26;ReadPosRankSum=1.063;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000327044;VQSLOD=6.38;culprit=MQ	GT:AD:DP:GQ:PL	0/0:23,0:23:69:0,69,851	0/0:34,0:34:84:0,8 [...]
+1	880390	rs3748593	C	A	4237.18	PASS	AC=7;AF=0.070;AN=100;BaseQRankSum=-10.508;DB;DP=2405;Dels=0.00;FS=0.416;HaplotypeScore=0.2833;InbreedingCoeff=0.2319;MLEAC=7;MLEAF=0.070;MQ=59.37;MQ0=0;MQRankSum=0.217;QD=14.46;ReadPosRankSum=-0.126;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000496938;VQSLOD=6.83;culprit=FS	GT:AD:DP:GQ:PL	0/0:44,0:44:99:0,132,1590	0/0:33,0:33:99: [...]
+1	881602	rs148962722	C	T	978.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.505;DB;DP=2402;Dels=0.00;FS=0.603;HaplotypeScore=0.5423;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=58.26;MQ0=1;MQRankSum=1.118;QD=13.04;ReadPosRankSum=-1.738;SNPEFF_AMINO_ACID_CHANGE=R623H;SNPEFF_CODON_CHANGE=cGc/cAc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_881553_881666;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=MODERATE;SNPEF [...]
+1	881627	rs2272757	G	A	23520.38	PASS	AC=51;AF=0.510;AN=100;BaseQRankSum=-4.753;DB;DP=1519;Dels=0.00;FS=5.729;HaplotypeScore=0.7095;InbreedingCoeff=0.3997;MLEAC=51;MLEAF=0.510;MQ=58.10;MQ0=1;MQRankSum=0.712;QD=25.93;ReadPosRankSum=0.192;SNPEFF_AMINO_ACID_CHANGE=L615;SNPEFF_CODON_CHANGE=Ctg/Ttg;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_881553_881666;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT [...]
+1	881687	.	AG	A	2168.07	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=-2.090;DP=1778;FS=66.380;HaplotypeScore=12.4080;InbreedingCoeff=-0.0309;MLEAC=3;MLEAF=0.030;MQ=58.26;MQ0=0;MQRankSum=3.167;QD=14.26;RPA=3,2;RU=G;ReadPosRankSum=-1.383;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SAMD11;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000342066;STR	GT:AD:DP:GQ:PL	0/0:35,0:35:99:0,105,1424	0/0:23,0:23:69:0,69,706	0/0:26,0:26:78:0,78, [...]
+1	881734	rs74045012	T	C	2215.28	PASS	AC=4;AF=0.040;AN=100;BaseQRankSum=4.677;DB;DP=2256;Dels=0.00;FS=14.813;HaplotypeScore=0.7323;InbreedingCoeff=-0.0417;MLEAC=4;MLEAF=0.040;MQ=57.33;MQ0=0;MQRankSum=2.661;QD=12.38;ReadPosRankSum=-5.774;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SAMD11;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000342066;VQSLOD=3.56;culprit=FS	GT:AD:DP:GQ:PL	0/0:45,0:45:99:0,135,1586	0/0:36,0:36:99:0,10 [...]
+1	881740	.	G	T	412.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-5.131;DP=2368;Dels=0.00;FS=7.786;HaplotypeScore=0.8197;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=57.22;MQ0=0;MQRankSum=1.662;QD=15.27;ReadPosRankSum=1.950;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SAMD11;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000342066;VQSLOD=2.84;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:50,0:50:99:0,150,1890	0/0:38,0:38:99:0,114, [...]
+1	881876	.	A	C	50.32	VQSRTrancheSNP99.50to99.90	AC=2;AF=0.020;AN=100;BaseQRankSum=-7.198;DP=1572;Dels=0.00;FS=120.673;HaplotypeScore=0.2562;InbreedingCoeff=-0.0218;MLEAC=2;MLEAF=0.020;MQ=49.50;MQ0=10;MQRankSum=-0.486;QD=1.26;ReadPosRankSum=-5.281;SNPEFF_AMINO_ACID_CHANGE=V570G;SNPEFF_CODON_CHANGE=gTg/gGg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_881782_881925;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=MOD [...]
+1	881918	rs35471880	G	A	1686.46	PASS	AC=5;AF=0.050;AN=100;BaseQRankSum=1.860;DB;DP=2149;Dels=0.00;FS=10.576;HaplotypeScore=0.4374;InbreedingCoeff=-0.0526;MLEAC=5;MLEAF=0.050;MQ=55.41;MQ0=6;MQRankSum=4.809;QD=12.59;ReadPosRankSum=0.615;SNPEFF_AMINO_ACID_CHANGE=S556L;SNPEFF_CODON_CHANGE=tCg/tTg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_881782_881925;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=MODERATE;SNPEFF [...]
+1	883625	rs4970378	A	G	13489.44	PASS	AC=98;AF=1.00;AN=98;DB;DP=375;Dels=0.00;FS=0.000;HaplotypeScore=0.1752;InbreedingCoeff=-0.0230;MLEAC=98;MLEAF=1.00;MQ=56.66;MQ0=0;QD=35.97;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SAMD11;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000342066;VQSLOD=3.02;culprit=MQ	GT:AD:DP:GQ:PL	1/1:0,10:10:27:345,27,0	1/1:0,9:9:27:340,27,0	1/1:0,15:15:36:472,36,0	1/1:0,4:4:12:148,12,0	1/1:0,4:4:12: [...]
+1	886477	rs74045017	G	A	207.51	PASS	AC=3;AF=0.031;AN=98;BaseQRankSum=-2.158;DB;DP=247;Dels=0.00;FS=2.269;HaplotypeScore=0.1311;InbreedingCoeff=-0.0775;MLEAC=3;MLEAF=0.031;MQ=57.97;MQ0=0;MQRankSum=1.760;QD=13.83;ReadPosRankSum=0.226;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000487214;VQSLOD=4.81;culprit=InbreedingCoeff	GT:AD:DP:GQ:PL	0/0:2,0:2:6:0,6,79	0/0:5,0:5:15 [...]
+1	887471	rs114187206	G	A	823.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.675;DB;DP=2519;Dels=0.00;FS=10.809;HaplotypeScore=0.0345;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.63;MQ0=0;MQRankSum=-0.222;QD=10.98;ReadPosRankSum=-1.139;SNPEFF_AMINO_ACID_CHANGE=L414;SNPEFF_CODON_CHANGE=Ctg/Ttg;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_887380_887519;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRI [...]
+1	887537	rs74045020	C	T	1588.12	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=4.351;DB;DP=1489;Dels=0.00;FS=5.624;HaplotypeScore=0.3670;InbreedingCoeff=-0.0309;MLEAC=3;MLEAF=0.030;MQ=59.25;MQ0=0;MQRankSum=1.300;QD=13.02;ReadPosRankSum=-2.245;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000487214;VQSLOD=7.74;culprit=MQRankSum	GT:AD:DP:GQ:PL	0/0:38,0:38:99:0,105,1134	0/0:28,0 [...]
+1	887560	rs3748595	A	C	45200.48	PASS	AC=94;AF=0.940;AN=100;BaseQRankSum=9.552;DB;DP=1276;Dels=0.00;FS=5.173;HaplotypeScore=0.3777;InbreedingCoeff=-0.0639;MLEAC=94;MLEAF=0.940;MQ=59.39;MQ0=0;MQRankSum=-0.406;QD=35.42;ReadPosRankSum=2.078;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000487214;VQSLOD=5.43;culprit=InbreedingCoeff	GT:AD:DP:GQ:PL	0/1:16,7:22:99:170,0,536	1 [...]
+1	887801	rs3828047	A	G	74274.21	PASS	AC=93;AF=0.930;AN=100;BaseQRankSum=8.491;DB;DP=2142;Dels=0.00;FS=1.347;HaplotypeScore=0.4702;InbreedingCoeff=0.2319;MLEAC=93;MLEAF=0.930;MQ=54.98;MQ0=2;MQRankSum=-2.839;QD=34.95;ReadPosRankSum=1.490;SNPEFF_AMINO_ACID_CHANGE=T394;SNPEFF_CODON_CHANGE=acT/acC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_887792_887980;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT [...]
+1	888639	rs3748596	T	C	71471.47	VQSRTrancheSNP98.60to98.80	AC=94;AF=0.940;AN=100;BaseQRankSum=2.803;DB;DP=2048;Dels=0.00;FS=12.518;HaplotypeScore=0.2140;InbreedingCoeff=-0.0638;MLEAC=94;MLEAF=0.940;MQ=53.97;MQ0=2;MQRankSum=-3.618;QD=34.90;ReadPosRankSum=3.412;SNPEFF_AMINO_ACID_CHANGE=E306;SNPEFF_CODON_CHANGE=gaA/gaG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_888555_888668;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPA [...]
+1	888659	rs3748597	T	C	56082.48	VQSRTrancheSNP98.60to98.80	AC=94;AF=0.940;AN=100;BaseQRankSum=8.813;DB;DP=1626;Dels=0.00;FS=9.209;HaplotypeScore=0.1726;InbreedingCoeff=-0.0640;MLEAC=94;MLEAF=0.940;MQ=54.84;MQ0=2;MQRankSum=-4.854;QD=34.49;ReadPosRankSum=3.067;SNPEFF_AMINO_ACID_CHANGE=I300V;SNPEFF_CODON_CHANGE=Atc/Gtc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_888555_888668;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEF [...]
+1	889131	rs3828048	A	G	2073.61	PASS	AC=8;AF=0.080;AN=100;BaseQRankSum=6.344;DB;DP=996;Dels=0.00;FS=10.927;HaplotypeScore=0.5391;InbreedingCoeff=-0.0877;MLEAC=8;MLEAF=0.080;MQ=58.41;MQ0=0;MQRankSum=0.173;QD=12.06;ReadPosRankSum=-2.857;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000469563;VQSLOD=4.36;culprit=MQ	GT:AD:DP:GQ:PL	0/0:17,0:17:51:0,51,592	0/0:24,0:24:72:0,7 [...]
+1	889158	rs56262069	G	C	50255.20	PASS	AC=93;AF=0.930;AN=100;BaseQRankSum=7.949;DB;DP=1539;Dels=0.00;FS=2.076;HaplotypeScore=0.8621;InbreedingCoeff=-0.0753;MLEAC=93;MLEAF=0.930;MQ=58.36;MQ0=0;MQRankSum=-0.051;QD=32.65;ReadPosRankSum=3.538;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000469563;VQSLOD=3.27;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/1:16,13:28:99:386,0,408	 [...]
+1	889159	rs13302945	A	C	51764.20	PASS	AC=93;AF=0.930;AN=100;BaseQRankSum=7.263;DB;DP=1576;Dels=0.00;FS=1.447;HaplotypeScore=0.8933;InbreedingCoeff=-0.0753;MLEAC=93;MLEAF=0.930;MQ=58.40;MQ0=0;MQRankSum=-0.605;QD=32.85;ReadPosRankSum=4.262;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000469563;VQSLOD=3.06;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/1:16,13:28:99:389,0,408	 [...]
+1	889238	rs3828049	G	A	2010.46	PASS	AC=5;AF=0.050;AN=100;BaseQRankSum=3.547;DB;DP=2429;Dels=0.00;FS=3.924;HaplotypeScore=0.3188;InbreedingCoeff=-0.0526;MLEAC=5;MLEAF=0.050;MQ=59.41;MQ0=0;MQRankSum=0.790;QD=12.89;ReadPosRankSum=-0.826;SNPEFF_AMINO_ACID_CHANGE=A271V;SNPEFF_CODON_CHANGE=gCg/gTg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_889162_889272;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=MODERATE;SNPEFF_ [...]
+1	889286	rs138652400	G	A	2265.12	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=-8.036;DB;DP=2910;Dels=0.00;FS=3.765;HaplotypeScore=0.2592;InbreedingCoeff=-0.0309;MLEAC=3;MLEAF=0.030;MQ=59.11;MQ0=0;MQRankSum=2.692;QD=12.18;ReadPosRankSum=-1.550;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000469563;VQSLOD=7.31;culprit=MQRankSum	GT:AD:DP:GQ:PL	0/0:66,0:66:99:0,199,2492	0/0:59 [...]
+1	889450	rs58931985	C	A	579.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=5.360;DB;DP=3289;Dels=0.00;FS=9.745;HaplotypeScore=0.2307;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.81;MQ0=0;MQRankSum=1.123;QD=15.65;ReadPosRankSum=-2.476;SNPEFF_AMINO_ACID_CHANGE=P237;SNPEFF_CODON_CHANGE=ccG/ccT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_889384_889462;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_I [...]
+1	889472	rs137873233	G	C	1059.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=5.928;DB;DP=2794;Dels=0.00;FS=12.641;HaplotypeScore=0.1752;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.73;MQ0=0;MQRankSum=1.123;QD=15.81;ReadPosRankSum=-3.313;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000469563;VQSLOD=5.87;culprit=FS	GT:AD:DP:GQ:PL	0/0:61,0:61:99:0,184,2150	0/0:51,0:51:9 [...]
+1	889513	rs191707067	G	A	364.23	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.931;DB;DP=1333;Dels=0.00;FS=6.151;HaplotypeScore=0.3067;InbreedingCoeff=-0.0122;MLEAC=1;MLEAF=0.010;MQ=59.61;MQ0=0;MQRankSum=1.402;QD=13.01;ReadPosRankSum=-2.515;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000469563;VQSLOD=7.02;culprit=InbreedingCoeff	GT:AD:DP:GQ:PL	0/0:29,0:29:87:0,87,1096	0/ [...]
+1	891277	rs77608078	C	T	763.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.689;DB;DP=1411;Dels=0.00;FS=0.000;HaplotypeScore=0.3319;InbreedingCoeff=-0.0102;MLEAC=1;MLEAF=0.010;MQ=59.15;MQ0=0;MQRankSum=2.865;QD=19.08;ReadPosRankSum=-1.149;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000469563;VQSLOD=5.59;culprit=FS	GT:AD:DP:GQ:PL	0/0:26,0:26:78:0,78,943	0/0:32,0:32:96:0, [...]
+1	891401	rs148943976	G	A	862.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=4.388;DB;DP=4801;Dels=0.00;FS=0.000;HaplotypeScore=0.0341;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.26;MQ0=0;MQRankSum=2.531;QD=11.50;ReadPosRankSum=-4.238;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000469563;VQSLOD=7.99;culprit=FS	GT:AD:DP:GQ:PL	0/0:127,0:127:99:0,382,4246	0/0:98,0:98:9 [...]
+1	892231	.	T	C	296.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=4.371;DP=4701;Dels=0.00;FS=2.097;HaplotypeScore=0.3644;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.64;MQ0=0;MQRankSum=0.038;QD=10.21;ReadPosRankSum=-1.533;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000469563;VQSLOD=6.50;culprit=InbreedingCoeff	GT:AD:DP:GQ:PL	0/0:103,0:103:99:0,310,3775	0/0:91,0:91:9 [...]
+1	892460	rs41285802	G	C	11897.54	PASS	AC=8;AF=0.080;AN=100;BaseQRankSum=6.973;DB;DP=6269;Dels=0.00;FS=4.261;HaplotypeScore=0.3955;InbreedingCoeff=0.1848;MLEAC=8;MLEAF=0.080;MQ=59.60;MQ0=0;MQRankSum=0.972;QD=20.66;ReadPosRankSum=-2.214;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000469563;VQSLOD=6.63;culprit=InbreedingCoeff	GT:AD:DP:GQ:PL	0/0:127,0:127:99:0,382,4696	 [...]
+1	892471	rs41285804	G	A	641.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.236;DB;DP=6288;Dels=0.00;FS=7.367;HaplotypeScore=0.2694;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.60;MQ0=0;MQRankSum=1.314;QD=8.91;ReadPosRankSum=-1.135;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000469563;VQSLOD=7.88;culprit=QD	GT:AD:DP:GQ:PL	0/0:127,0:127:99:0,382,4363	0/0:127,0:127: [...]
+1	892569	rs41285806	C	T	877.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-4.567;DB;DP=5705;Dels=0.00;FS=4.958;HaplotypeScore=0.0968;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.08;MQ0=0;MQRankSum=1.331;QD=11.70;ReadPosRankSum=-4.936;SNPEFF_AMINO_ACID_CHANGE=Q88;SNPEFF_CODON_CHANGE=caG/caA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_892479_892653;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_I [...]
+1	894565	.	G	A	187.21	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.294;DP=938;Dels=0.00;FS=2.962;HaplotypeScore=0.6090;InbreedingCoeff=-0.0118;MLEAC=1;MLEAF=0.010;MQ=57.54;MQ0=0;MQRankSum=0.069;QD=9.36;ReadPosRankSum=-1.214;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000327044;VQSLOD=2.73;culprit=MQ	GT:AD:DP:GQ:PL	0/0:14,0:14:39:0,39,483	0/0:13,0:13:39:0,39,501	0/0:16,0:16 [...]
+1	894573	rs13303010	G	A	14374.07	PASS	AC=64;AF=0.640;AN=100;BaseQRankSum=3.664;DB;DP=877;Dels=0.00;FS=6.422;HaplotypeScore=0.4577;InbreedingCoeff=0.4801;MLEAC=64;MLEAF=0.640;MQ=57.55;MQ0=0;MQRankSum=0.803;QD=27.02;ReadPosRankSum=0.219;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000327044;VQSLOD=4.28;culprit=MQ	GT:AD:DP:GQ:PL	0/1:1,9:10:7:298,0,7	1/1:0,11:11:33:416,33,0	 [...]
+1	894613	.	G	C	127.40	VQSRTrancheSNP99.00to99.30	AC=8;AF=0.085;AN=94;BaseQRankSum=-3.199;DP=222;Dels=0.00;FS=20.789;HaplotypeScore=0.4203;InbreedingCoeff=-0.0425;MLEAC=7;MLEAF=0.074;MQ=57.66;MQ0=0;MQRankSum=0.321;QD=2.12;ReadPosRankSum=-0.967;SNPEFF_AMINO_ACID_CHANGE=A3G;SNPEFF_CODON_CHANGE=gCt/gGt;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_894595_894670;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=MODERATE; [...]
+1	894646	.	A	T	166.59	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=2.726;DP=435;Dels=0.00;FS=0.000;HaplotypeScore=0.2778;InbreedingCoeff=-0.0307;MLEAC=1;MLEAF=0.010;MQ=58.24;MQ0=0;MQRankSum=0.581;QD=11.90;ReadPosRankSum=-0.917;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=NOC2L;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000487214;VQSLOD=4.76;culprit=FS	GT:AD:DP:GQ:PL	0/0:6,0:6:18:0,18,207	0/0:7,0:7:21:0,21,253	0/0:9,0:9:2 [...]
+1	896950	rs74045023	C	A	2043.12	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=3.857;DB;DP=2273;Dels=0.00;FS=1.018;HaplotypeScore=0.1320;InbreedingCoeff=-0.0309;MLEAC=3;MLEAF=0.030;MQ=59.41;MQ0=0;MQRankSum=0.479;QD=13.01;ReadPosRankSum=-1.514;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000338591;VQSLOD=7.99;culprit=FS	GT:AD:DP:GQ:PL	0/0:35,0:35:99:0,105,1170	0/0:44,0:44:99:0,132,155 [...]
+1	897325	rs4970441	G	C	129103.21	PASS	AC=87;AF=0.870;AN=100;BaseQRankSum=9.548;DB;DP=4017;Dels=0.00;FS=5.192;HaplotypeScore=0.8007;InbreedingCoeff=0.0262;MLEAC=87;MLEAF=0.870;MQ=59.50;MQ0=0;MQRankSum=-1.404;QD=32.63;ReadPosRankSum=0.634;SNPEFF_AMINO_ACID_CHANGE=A203;SNPEFF_CODON_CHANGE=gcG/gcC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_897206_897427;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID= [...]
+1	897337	rs115985665	C	T	656.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=0.457;DB;DP=3980;Dels=0.00;FS=1.738;HaplotypeScore=0.9428;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.48;MQ0=0;MQRankSum=1.127;QD=12.87;ReadPosRankSum=-0.713;SNPEFF_AMINO_ACID_CHANGE=S207;SNPEFF_CODON_CHANGE=agC/agT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_897206_897427;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=EN [...]
+1	897475	.	AGTCTTT	A	360.41	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.561;DP=342;FS=25.032;HaplotypeScore=3.5490;InbreedingCoeff=-0.0657;MLEAC=1;MLEAF=0.010;MQ=58.87;MQ0=0;MQRankSum=-3.796;QD=32.76;RPA=2,1;RU=GTCTTT;ReadPosRankSum=0.089;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000338591;STR	GT:AD:DP:GQ:PL	0/0:6,0:6:18:0,18,518	0/0:6,0:6:18:0,18,518	0/0:1,0:1:3:0,3,86	0/0: [...]
+1	897730	rs7549631	C	T	4170.18	PASS	AC=7;AF=0.070;AN=100;BaseQRankSum=-10.740;DB;DP=2303;Dels=0.00;FS=7.022;HaplotypeScore=2.9911;InbreedingCoeff=0.2320;MLEAC=7;MLEAF=0.070;MQ=59.28;MQ0=0;MQRankSum=0.522;QD=14.18;ReadPosRankSum=1.158;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000338591;VQSLOD=3.00;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:37,0:37:99:0,105,1280	0/0:38,0:38:9 [...]
+1	897738	rs6696971	C	T	6080.89	PASS	AC=10;AF=0.100;AN=100;BaseQRankSum=-12.884;DB;DP=2318;Dels=0.00;FS=0.000;HaplotypeScore=2.7649;InbreedingCoeff=-0.1111;MLEAC=10;MLEAF=0.100;MQ=59.36;MQ0=0;MQRankSum=0.982;QD=12.67;ReadPosRankSum=-1.164;SNPEFF_AMINO_ACID_CHANGE=L115;SNPEFF_CODON_CHANGE=Ctg/Ttg;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_897735_897851;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID [...]
+1	897879	rs79008338	C	T	1384.64	PASS	AC=6;AF=0.060;AN=100;BaseQRankSum=-9.582;DB;DP=976;Dels=0.00;FS=14.068;HaplotypeScore=0.4332;InbreedingCoeff=-0.0665;MLEAC=6;MLEAF=0.060;MQ=59.14;MQ0=0;MQRankSum=0.349;QD=10.18;ReadPosRankSum=-3.450;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000463212;VQSLOD=5.27;culprit=FS	GT:AD:DP:GQ:PL	0/0:16,0:16:42:0,42,516	0/0:13,0:13:39:0,39,4 [...]
+1	898119	rs79110607	C	T	1074.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.682;DB;DP=1495;Dels=0.00;FS=0.000;HaplotypeScore=0.4314;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.08;MQ0=0;MQRankSum=1.532;QD=14.32;ReadPosRankSum=-2.202;SNPEFF_AMINO_ACID_CHANGE=R11;SNPEFF_CODON_CHANGE=cgC/cgT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_898084_898297;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=EN [...]
+1	898323	rs6605071	T	C	17653.25	PASS	AC=93;AF=0.930;AN=100;BaseQRankSum=3.580;DB;DP=505;Dels=0.00;FS=1.868;HaplotypeScore=0.4755;InbreedingCoeff=0.1259;MLEAC=94;MLEAF=0.940;MQ=58.73;MQ0=0;MQRankSum=1.621;QD=35.17;ReadPosRankSum=1.496;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000463212;VQSLOD=3.83;culprit=MQ	GT:AD:DP:GQ:PL	0/1:2,5:7:49:148,0,49	1/1:0,12:12:36:453,36,0	1 [...]
+1	898466	rs191140912	C	T	171.28	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.481;DB;DP=687;Dels=0.00;FS=0.000;HaplotypeScore=0.3867;InbreedingCoeff=-0.0155;MLEAC=1;MLEAF=0.010;MQ=59.27;MQ0=0;MQRankSum=0.400;QD=10.08;ReadPosRankSum=0.449;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000463212;VQSLOD=7.92;culprit=FS	GT:AD:DP:GQ:PL	0/0:11,0:11:33:0,33,421	0/0:7,0:7:21:0,21,248	0 [...]
+1	898467	rs41285808	C	T	569.47	PASS	AC=6;AF=0.060;AN=100;BaseQRankSum=-0.569;DB;DP=696;Dels=0.00;FS=7.160;HaplotypeScore=0.3633;InbreedingCoeff=0.2490;MLEAC=5;MLEAF=0.050;MQ=59.21;MQ0=0;MQRankSum=1.587;QD=11.86;ReadPosRankSum=0.640;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000463212;VQSLOD=5.29;culprit=MQRankSum	GT:AD:DP:GQ:PL	0/1:5,6:11:99:197,0,147	0/0:8,0:8:24:0,24, [...]
+1	898603	.	C	G	273.63	VQSRTrancheSNP99.50to99.90	AC=22;AF=0.220;AN=100;BaseQRankSum=-9.185;DP=665;Dels=0.00;FS=221.601;HaplotypeScore=1.0766;InbreedingCoeff=-0.2547;MLEAC=18;MLEAF=0.180;MQ=57.61;MQ0=0;MQRankSum=0.626;QD=1.13;ReadPosRankSum=-9.808;SNPEFF_AMINO_ACID_CHANGE=A109G;SNPEFF_CODON_CHANGE=gCg/gGg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_898489_898633;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=MODERATE [...]
+1	898606	.	T	G	49.47	VQSRTrancheSNP99.50to99.90	AC=7;AF=0.070;AN=100;BaseQRankSum=-8.782;DP=638;Dels=0.00;FS=101.186;HaplotypeScore=1.2273;InbreedingCoeff=-0.0936;MLEAC=5;MLEAF=0.050;MQ=58.28;MQ0=0;MQRankSum=0.112;QD=0.85;ReadPosRankSum=-9.334;SNPEFF_AMINO_ACID_CHANGE=V110G;SNPEFF_CODON_CHANGE=gTg/gGg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_898489_898633;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=MODERATE;SN [...]
+1	898613	rs61746776	C	T	95.25	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.379;DB;DP=656;Dels=0.00;FS=4.282;HaplotypeScore=0.7603;InbreedingCoeff=-0.0146;MLEAC=1;MLEAF=0.010;MQ=58.90;MQ0=0;MQRankSum=0.494;QD=10.58;ReadPosRankSum=-1.113;SNPEFF_AMINO_ACID_CHANGE=N112;SNPEFF_CODON_CHANGE=aaC/aaT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_898489_898633;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST [...]
+1	898852	rs117269332	C	T	611.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=2.664;DB;DP=1798;Dels=0.00;FS=5.676;HaplotypeScore=0.1257;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=59.28;MQ0=0;MQRankSum=3.408;QD=14.22;ReadPosRankSum=-3.839;SNPEFF_AMINO_ACID_CHANGE=A164;SNPEFF_CODON_CHANGE=gcC/gcT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_898717_898884;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=EN [...]
+1	898914	rs114880602	G	C	317.21	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=0.904;DB;DP=1250;Dels=0.00;FS=1.574;HaplotypeScore=0.2733;InbreedingCoeff=-0.0113;MLEAC=1;MLEAF=0.010;MQ=58.75;MQ0=0;MQRankSum=1.664;QD=13.22;ReadPosRankSum=-0.195;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000463212;VQSLOD=6.42;culprit=MQ	GT:AD:DP:GQ:PL	0/0:20,0:20:60:0,60,723	0/0:23,0:23:69:0,69,85 [...]
+1	899928	rs6677386	G	C	1232.27	VQSRTrancheSNP98.80to98.90	AC=57;AF=0.838;AN=68;BaseQRankSum=-1.435;DB;DP=68;Dels=0.00;FS=0.000;HaplotypeScore=0.2032;InbreedingCoeff=0.2608;MLEAC=50;MLEAF=0.735;MQ=43.71;MQ0=0;MQRankSum=-2.804;QD=22.00;ReadPosRankSum=1.097;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000463212;VQSLOD=0.210;culprit=MQ	GT:AD:DP:GQ:PL	./.	1/1:0,1:1:3:33,3,0	1/ [...]
+1	899937	rs143296006	G	T	918.93	VQSRTrancheSNP98.90to99.00	AC=47;AF=0.758;AN=62;BaseQRankSum=-1.521;DB;DP=47;Dels=0.00;FS=0.000;HaplotypeScore=0.3418;InbreedingCoeff=0.3113;MLEAC=47;MLEAF=0.758;MQ=46.89;MQ0=0;MQRankSum=-2.129;QD=27.03;ReadPosRankSum=3.477;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000463212;VQSLOD=0.203;culprit=MQ	GT:AD:DP:GQ:PL	0/0:1,0:1:3:0,3,27	1/1:0 [...]
+1	899938	rs147467971	G	C	994.56	VQSRTrancheSNP98.90to99.00	AC=47;AF=0.758;AN=62;BaseQRankSum=0.617;DB;DP=48;Dels=0.00;FS=0.000;HaplotypeScore=0.2794;InbreedingCoeff=0.3163;MLEAC=47;MLEAF=0.758;MQ=46.89;MQ0=0;MQRankSum=-2.109;QD=28.42;ReadPosRankSum=3.344;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000463212;VQSLOD=0.175;culprit=MQ	GT:AD:DP:GQ:PL	0/0:1,0:1:3:0,3,36	1/1:0, [...]
+1	899942	rs71509448	G	A	1074.04	VQSRTrancheSNP98.80to98.90	AC=51;AF=0.773;AN=66;BaseQRankSum=0.939;DB;DP=50;Dels=0.00;FS=0.000;HaplotypeScore=0.2033;InbreedingCoeff=0.1917;MLEAC=50;MLEAF=0.758;MQ=45.23;MQ0=0;MQRankSum=-1.565;QD=27.54;ReadPosRankSum=2.967;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000463212;VQSLOD=0.239;culprit=MQ	GT:AD:DP:GQ:PL	0/0:1,0:1:3:0,3,38	1/1:0, [...]
+1	899949	rs144694530	C	T	175.27	VQSRTrancheSNP98.80to98.90	AC=10;AF=0.152;AN=66;BaseQRankSum=-3.029;DB;DP=54;Dels=0.00;FS=3.117;HaplotypeScore=0.3766;InbreedingCoeff=0.2800;MLEAC=9;MLEAF=0.136;MQ=44.25;MQ0=0;MQRankSum=2.310;QD=21.91;ReadPosRankSum=-2.697;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000463212;VQSLOD=0.291;culprit=MQ	GT:AD:DP:GQ:PL	0/0:1,0:1:3:0,3,40	0/0:3, [...]
+1	899960	.	T	C	52.99	VQSRTrancheSNP98.90to99.00	AC=6;AF=0.111;AN=54;BaseQRankSum=-2.225;DP=41;Dels=0.00;FS=0.000;HaplotypeScore=0.2410;InbreedingCoeff=0.0143;MLEAC=6;MLEAF=0.111;MQ=46.23;MQ0=0;MQRankSum=-1.492;QD=7.57;ReadPosRankSum=-0.514;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000463212;VQSLOD=0.177;culprit=MQ	GT:AD:DP:GQ:PL	0/0:1,0:1:3:0,3,38	0/0:2,0:2:6:0,6,61	0/ [...]
+1	900298	rs71628926	C	G	161.47	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-2.988;DB;DP=513;Dels=0.00;FS=6.422;HaplotypeScore=0.4198;InbreedingCoeff=-0.0287;MLEAC=2;MLEAF=0.020;MQ=57.02;MQ0=0;MQRankSum=0.928;QD=10.76;ReadPosRankSum=0.395;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000463212;VQSLOD=3.32;culprit=MQ	GT:AD:DP:GQ:PL	0/0:14,0:14:39:0,39,478	0/0:19,0:19:54:0,54,693	 [...]
+1	900319	rs80351873	G	A	2325.78	PASS	AC=8;AF=0.080;AN=100;BaseQRankSum=-3.149;DB;DP=743;Dels=0.00;FS=12.818;HaplotypeScore=0.7728;InbreedingCoeff=-0.0900;MLEAC=8;MLEAF=0.080;MQ=57.30;MQ0=0;MQRankSum=1.723;QD=14.36;ReadPosRankSum=-0.558;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000463212;VQSLOD=4.11;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:20,0:20:57:0,57,693	0/0:25,0: [...]
+1	900397	rs111560052	C	T	1077.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-4.621;DB;DP=2133;Dels=0.00;FS=6.242;HaplotypeScore=0.3667;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=58.38;MQ0=0;MQRankSum=1.853;QD=11.71;ReadPosRankSum=-2.552;SNPEFF_AMINO_ACID_CHANGE=N461;SNPEFF_CODON_CHANGE=aaC/aaT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_900343_901094;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID= [...]
+1	900427	rs115741058	G	A	1296.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-6.326;DB;DP=3246;Dels=0.00;FS=9.839;HaplotypeScore=0.4884;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=58.46;MQ0=0;MQRankSum=2.823;QD=11.78;ReadPosRankSum=-0.507;SNPEFF_AMINO_ACID_CHANGE=E471;SNPEFF_CODON_CHANGE=gaG/gaA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_900343_901094;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID= [...]
+1	900505	rs28705211	G	C	5409.04	PASS	AC=12;AF=0.120;AN=100;BaseQRankSum=1.477;DB;DP=1746;Dels=0.00;FS=0.000;HaplotypeScore=1.7312;InbreedingCoeff=0.2424;MLEAC=12;MLEAF=0.120;MQ=58.93;MQ0=0;MQRankSum=-1.383;QD=16.90;ReadPosRankSum=-2.250;SNPEFF_AMINO_ACID_CHANGE=V497;SNPEFF_CODON_CHANGE=gtG/gtC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_900343_901094;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID= [...]
+1	900557	.	T	C	450	VQSRTrancheSNP99.50to99.90	AC=18;AF=0.180;AN=100;BaseQRankSum=-10.340;DP=795;Dels=0.00;FS=174.326;HaplotypeScore=0.8661;InbreedingCoeff=-0.2301;MLEAC=17;MLEAF=0.170;MQ=57.67;MQ0=0;MQRankSum=-1.081;QD=1.81;ReadPosRankSum=0.678;SNPEFF_AMINO_ACID_CHANGE=S515P;SNPEFF_CODON_CHANGE=Tcc/Ccc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_900343_901094;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=MODERATE;S [...]
+1	900560	rs188543688	A	C	5889.86	VQSRTrancheSNP99.90to100.00	AC=42;AF=0.420;AN=100;BaseQRankSum=-14.853;DB;DP=1195;Dels=0.00;FS=671.452;HaplotypeScore=1.0796;InbreedingCoeff=-0.7377;MLEAC=43;MLEAF=0.430;MQ=57.06;MQ0=0;MQRankSum=-1.062;QD=5.48;ReadPosRankSum=-0.749;SNPEFF_AMINO_ACID_CHANGE=T516P;SNPEFF_CODON_CHANGE=Acc/Ccc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_900343_901094;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPE [...]
+1	901919	.	A	C	75.68	VQSRTrancheSNP99.90to100.00	AC=9;AF=0.090;AN=100;BaseQRankSum=-11.755;DP=823;Dels=0.00;FS=637.319;HaplotypeScore=2.0002;InbreedingCoeff=-0.0995;MLEAC=6;MLEAF=0.060;MQ=59.06;MQ0=1;MQRankSum=-0.634;QD=0.49;ReadPosRankSum=-11.491;SNPEFF_AMINO_ACID_CHANGE=N3T;SNPEFF_CODON_CHANGE=aAc/aCc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_901877_901994;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PLEKHN1;SNPEFF_IMPACT=MODERATE [...]
+1	901922	rs62639980	G	A	492.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.416;DB;DP=1209;Dels=0.00;FS=2.971;HaplotypeScore=2.0709;InbreedingCoeff=-0.0102;MLEAC=1;MLEAF=0.010;MQ=58.99;MQ0=1;MQRankSum=0.498;QD=10.70;ReadPosRankSum=2.443;SNPEFF_AMINO_ACID_CHANGE=S4N;SNPEFF_CODON_CHANGE=aGc/aAc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_901877_901994;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PLEKHN1;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSC [...]
+1	901923	rs149741186	C	A	540.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.870;DB;DP=1246;Dels=0.00;FS=5.234;HaplotypeScore=2.1419;InbreedingCoeff=-0.0102;MLEAC=1;MLEAF=0.010;MQ=58.99;MQ0=1;MQRankSum=0.854;QD=11.49;ReadPosRankSum=2.199;SNPEFF_AMINO_ACID_CHANGE=S4R;SNPEFF_CODON_CHANGE=agC/agA;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_901877_901994;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PLEKHN1;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANS [...]
+1	902024	rs181910588	G	A	177.78	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.925;DB;DP=366;Dels=0.00;FS=0.000;HaplotypeScore=0.4056;InbreedingCoeff=-0.0381;MLEAC=1;MLEAF=0.010;MQ=59.21;MQ0=0;MQRankSum=-0.015;QD=17.78;ReadPosRankSum=-2.279;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000338591;VQSLOD=5.41;culprit=FS	GT:AD:DP:GQ:PL	0/0:8,0:8:24:0,24,303	0/0:9,0:9:27:0,27,332	0 [...]
+1	902025	rs186208904	C	A,T	207.86	PASS	AC=1,2;AF=0.010,0.020;AN=100;BaseQRankSum=2.579;DB;DP=347;Dels=0.00;FS=2.417;HaplotypeScore=0.2858;InbreedingCoeff=0.0268;MLEAC=1,1;MLEAF=0.010,0.010;MQ=59.17;MQ0=0;MQRankSum=0.418;QD=7.99;ReadPosRankSum=-2.442;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000338591;VQSLOD=5.23;culprit=QD	GT:AD:DP:GQ:PL	0/0:7,0,0:7:21:0,21,212,21,212, [...]
+1	902069	rs116147894	T	C	700.79	PASS	AC=6;AF=0.061;AN=98;BaseQRankSum=4.614;DB;DP=337;Dels=0.00;FS=0.945;HaplotypeScore=0.1625;InbreedingCoeff=0.0968;MLEAC=5;MLEAF=0.051;MQ=57.93;MQ0=0;MQRankSum=0.349;QD=19.47;ReadPosRankSum=-1.532;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=KLHL17;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000338591;VQSLOD=4.71;culprit=FS	GT:AD:DP:GQ:PL	0/0:6,0:6:18:0,18,193	0/0:5,0:5:15:0,15,193	0/0:6 [...]
+1	902108	rs62639981	C	T	43.64	PASS	AC=3;AF=0.033;AN=92;BaseQRankSum=1.610;DB;DP=196;Dels=0.00;FS=0.000;HaplotypeScore=0.1209;InbreedingCoeff=0.1451;MLEAC=2;MLEAF=0.022;MQ=58.31;MQ0=0;MQRankSum=-0.016;QD=8.73;ReadPosRankSum=-1.041;SNPEFF_AMINO_ACID_CHANGE=A36;SNPEFF_CODON_CHANGE=gcC/gcT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_902084_902183;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PLEKHN1;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST000 [...]
+1	902128	rs28499371	C	T	599.21	PASS	AC=7;AF=0.083;AN=84;BaseQRankSum=-4.351;DB;DP=170;Dels=0.00;FS=0.000;HaplotypeScore=0.0826;InbreedingCoeff=-0.1304;MLEAC=7;MLEAF=0.083;MQ=58.43;MQ0=0;MQRankSum=0.128;QD=13.94;ReadPosRankSum=-0.563;SNPEFF_AMINO_ACID_CHANGE=A43V;SNPEFF_CODON_CHANGE=gCt/gTt;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_902084_902183;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PLEKHN1;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSC [...]
+1	906122	rs41285812	C	T	410.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=4.729;DB;DP=3298;Dels=0.00;FS=9.974;HaplotypeScore=0.0200;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.28;MQ0=0;MQRankSum=0.295;QD=12.43;ReadPosRankSum=-2.496;SNPEFF_AMINO_ACID_CHANGE=H156;SNPEFF_CODON_CHANGE=caC/caT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_906066_906138;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PLEKHN1;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=EN [...]
+1	906272	rs28507236	A	C	5776.82	PASS	AC=22;AF=0.220;AN=100;BaseQRankSum=7.841;DB;DP=1005;Dels=0.00;FS=14.346;HaplotypeScore=0.8551;InbreedingCoeff=-0.1662;MLEAC=22;MLEAF=0.220;MQ=58.75;MQ0=0;MQRankSum=1.111;QD=12.61;ReadPosRankSum=-0.249;SNPEFF_AMINO_ACID_CHANGE=A166;SNPEFF_CODON_CHANGE=gcA/gcC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_906259_906386;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PLEKHN1;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_I [...]
+1	907622	rs59928984	G	C	3990.79	PASS	AC=11;AF=0.110;AN=100;BaseQRankSum=2.432;DB;DP=1107;Dels=0.00;FS=0.385;HaplotypeScore=1.1346;InbreedingCoeff=-0.1238;MLEAC=11;MLEAF=0.110;MQ=58.72;MQ0=0;MQRankSum=0.498;QD=13.48;ReadPosRankSum=1.245;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=C1orf170;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000341290;VQSLOD=2.80;culprit=MQ	GT:AD:DP:GQ:PL	0/0:17,0:17:48:0,48,596	0/0:25,1:25:75:0,75 [...]
+1	907799	rs111909377	T	C	153.70	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=1.056;DB;DP=326;Dels=0.00;FS=2.154;HaplotypeScore=0.2345;InbreedingCoeff=-0.0412;MLEAC=1;MLEAF=0.010;MQ=58.27;MQ0=0;MQRankSum=1.965;QD=11.82;ReadPosRankSum=-1.105;SNPEFF_AMINO_ACID_CHANGE=S333P;SNPEFF_CODON_CHANGE=Tcg/Ccg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_907668_907804;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PLEKHN1;SNPEFF_IMPACT=MODERATE;SNPEFF_TRAN [...]
+1	908275	rs145574509	G	A	76.27	PASS	AC=3;AF=0.032;AN=94;BaseQRankSum=-1.747;DB;DP=206;Dels=0.00;FS=0.000;HaplotypeScore=0.0978;InbreedingCoeff=0.1666;MLEAC=2;MLEAF=0.021;MQ=58.35;MQ0=0;MQRankSum=1.669;QD=12.71;ReadPosRankSum=1.415;SNPEFF_AMINO_ACID_CHANGE=G346D;SNPEFF_CODON_CHANGE=gGc/gAc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_908241_908390;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PLEKHN1;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCR [...]
+1	908322	.	CGCA	C	284.90	Indel_FS	AC=12;AF=0.128;AN=94;BaseQRankSum=4.504;DP=203;FS=237.541;HaplotypeScore=3.7688;InbreedingCoeff=-0.2039;MLEAC=13;MLEAF=0.138;MQ=58.89;MQ0=0;MQRankSum=0.445;QD=4.75;ReadPosRankSum=-5.028;SNPEFF_AMINO_ACID_CHANGE=RT362P;SNPEFF_CODON_CHANGE=cgcacc/ccc;SNPEFF_EFFECT=CODON_CHANGE_PLUS_CODON_DELETION;SNPEFF_EXON_ID=exon_1_908241_908390;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PLEKHN1;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCR [...]
+1	908323	rs61732689	G	A,C	151.92	VQSRTrancheSNP99.50to99.90	AC=1,9;AF=0.011,0.096;AN=94;BaseQRankSum=1.165;DB;DP=199;Dels=0.04;FS=159.574;HaplotypeScore=0.5305;InbreedingCoeff=-0.0681;MLEAC=1,9;MLEAF=0.011,0.096;MQ=58.78;MQ0=0;MQRankSum=1.258;QD=3.62;ReadPosRankSum=-3.835;SNPEFF_AMINO_ACID_CHANGE=R362H;SNPEFF_CODON_CHANGE=cGc/cAc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_908241_908390;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PLE [...]
+1	908325	rs181207265	A	C	226.31	VQSRTrancheSNP99.50to99.90	AC=13;AF=0.135;AN=96;BaseQRankSum=-3.162;DB;DP=222;Dels=0.03;FS=256.491;HaplotypeScore=0.5957;InbreedingCoeff=-0.2137;MLEAC=14;MLEAF=0.146;MQ=58.79;MQ0=0;MQRankSum=-0.253;QD=3.84;ReadPosRankSum=-4.790;SNPEFF_AMINO_ACID_CHANGE=T363P;SNPEFF_CODON_CHANGE=Acc/Ccc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_908241_908390;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PLEKHN1;SNPEFF_I [...]
+1	908414	rs28504611	C	T	1709.29	PASS	AC=17;AF=0.173;AN=98;BaseQRankSum=2.882;DB;DP=420;Dels=0.00;FS=0.000;HaplotypeScore=0.1721;InbreedingCoeff=0.1705;MLEAC=17;MLEAF=0.173;MQ=59.03;MQ0=0;MQRankSum=-0.054;QD=13.57;ReadPosRankSum=0.145;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=C1orf170;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000341290;VQSLOD=6.34;culprit=FS	GT:AD:DP:GQ:PL	0/0:10,0:10:27:0,27,307	0/0:9,0:9:27:0,27,267 [...]
+1	908749	rs111919992	C	T	392.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=0.015;DB;DP=1051;Dels=0.00;FS=0.000;HaplotypeScore=0.3382;InbreedingCoeff=-0.0106;MLEAC=1;MLEAF=0.010;MQ=59.40;MQ0=0;MQRankSum=0.124;QD=12.26;ReadPosRankSum=-2.440;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=C1orf170;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000341290;VQSLOD=7.98;culprit=FS	GT:AD:DP:GQ:PL	0/0:16,0:16:48:0,48,582	0/0:24,0:24:72:0,72, [...]
+1	909221	rs62639985	T	C	1566.28	PASS	AC=4;AF=0.040;AN=100;BaseQRankSum=1.732;DB;DP=1587;Dels=0.00;FS=2.369;HaplotypeScore=2.5512;InbreedingCoeff=-0.0417;MLEAC=4;MLEAF=0.040;MQ=58.96;MQ0=0;MQRankSum=0.723;QD=15.66;ReadPosRankSum=-0.967;SNPEFF_AMINO_ACID_CHANGE=S446;SNPEFF_CODON_CHANGE=agT/agC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_909213_909431;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PLEKHN1;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=E [...]
+1	909222	rs56185812	G	A	1342.27	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=-9.640;DB;DP=1592;Dels=0.00;FS=2.455;HaplotypeScore=2.5638;InbreedingCoeff=0.0472;MLEAC=3;MLEAF=0.030;MQ=58.97;MQ0=0;MQRankSum=-0.083;QD=12.91;ReadPosRankSum=0.550;SNPEFF_AMINO_ACID_CHANGE=A447T;SNPEFF_CODON_CHANGE=Gcc/Acc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_909213_909431;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PLEKHN1;SNPEFF_IMPACT=MODERATE;SNPEFF_TRA [...]
+1	909238	rs3829740	G	C	38081.79	PASS	AC=68;AF=0.680;AN=100;BaseQRankSum=18.220;DB;DP=1634;Dels=0.00;FS=17.823;HaplotypeScore=6.3782;InbreedingCoeff=0.2647;MLEAC=68;MLEAF=0.680;MQ=58.89;MQ0=0;MQRankSum=0.785;QD=27.07;ReadPosRankSum=0.636;SNPEFF_AMINO_ACID_CHANGE=R452P;SNPEFF_CODON_CHANGE=cGt/cCt;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_909213_909431;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PLEKHN1;SNPEFF_IMPACT=MODERATE;SNPEFF_T [...]
+1	909242	rs3829739	A	G	6612.81	PASS	AC=13;AF=0.130;AN=100;BaseQRankSum=10.280;DB;DP=1615;Dels=0.00;FS=23.439;HaplotypeScore=6.4656;InbreedingCoeff=-0.1495;MLEAC=13;MLEAF=0.130;MQ=58.89;MQ0=0;MQRankSum=-0.277;QD=12.89;ReadPosRankSum=0.631;SNPEFF_AMINO_ACID_CHANGE=G453;SNPEFF_CODON_CHANGE=ggA/ggG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_909213_909431;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PLEKHN1;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_I [...]
+1	909309	rs3829738	T	C	4240.79	PASS	AC=13;AF=0.130;AN=100;BaseQRankSum=8.541;DB;DP=1546;Dels=0.00;FS=0.000;HaplotypeScore=0.6199;InbreedingCoeff=-0.1495;MLEAC=13;MLEAF=0.130;MQ=59.39;MQ0=0;MQRankSum=0.982;QD=12.08;ReadPosRankSum=-2.253;SNPEFF_AMINO_ACID_CHANGE=S476P;SNPEFF_CODON_CHANGE=Tcc/Ccc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_909213_909431;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PLEKHN1;SNPEFF_IMPACT=MODERATE;SNPEFF_TR [...]
+1	909326	rs61573829	C	T	2749.49	PASS	AC=6;AF=0.060;AN=100;BaseQRankSum=-8.226;DB;DP=1240;Dels=0.00;FS=4.104;HaplotypeScore=0.4291;InbreedingCoeff=0.2892;MLEAC=6;MLEAF=0.060;MQ=59.43;MQ0=0;MQRankSum=1.233;QD=17.29;ReadPosRankSum=-0.763;SNPEFF_AMINO_ACID_CHANGE=G481;SNPEFF_CODON_CHANGE=ggC/ggT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_909213_909431;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PLEKHN1;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=E [...]
+1	909363	rs62639990	A	C	143.33	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-2.855;DB;DP=818;Dels=0.00;FS=0.000;HaplotypeScore=0.3826;InbreedingCoeff=-0.0235;MLEAC=2;MLEAF=0.020;MQ=59.37;MQ0=0;MQRankSum=0.763;QD=7.17;ReadPosRankSum=-2.094;SNPEFF_AMINO_ACID_CHANGE=R494;SNPEFF_CODON_CHANGE=Aga/Cga;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_909213_909431;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PLEKHN1;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENS [...]
+1	909419	rs28548431	C	T	1771.29	PASS	AC=11;AF=0.110;AN=100;BaseQRankSum=5.023;DB;DP=450;Dels=0.00;FS=1.945;HaplotypeScore=0.2123;InbreedingCoeff=0.0315;MLEAC=11;MLEAF=0.110;MQ=58.44;MQ0=0;MQRankSum=0.157;QD=17.54;ReadPosRankSum=-0.138;SNPEFF_AMINO_ACID_CHANGE=D512;SNPEFF_CODON_CHANGE=gaC/gaT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_909213_909431;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PLEKHN1;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=E [...]
+1	909768	rs2340593	A	G	153994.17	PASS	AC=100;AF=1.00;AN=100;DB;DP=4084;Dels=0.00;FS=0.000;HaplotypeScore=0.0000;InbreedingCoeff=-0.0000;MLEAC=100;MLEAF=1.00;MQ=59.89;MQ0=0;QD=37.71;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=C1orf170;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000341290;VQSLOD=4.76;culprit=FS	GT:AD:DP:GQ:PL	1/1:0,96:96:99:3468,289,0	1/1:0,72:72:99:2721,217,0	1/1:0,61:61:99:2256,184,0	1/1:0,84:84:99:3240, [...]
+1	934918	.	C	T	557.31	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.137;DP=635;Dels=0.00;FS=6.666;HaplotypeScore=0.4096;InbreedingCoeff=-0.0167;MLEAC=1;MLEAF=0.010;MQ=59.05;MQ0=0;MQRankSum=-0.319;QD=15.06;ReadPosRankSum=-0.276;SNPEFF_AMINO_ACID_CHANGE=V120M;SNPEFF_CODON_CHANGE=Gtg/Atg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_934906_934993;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=HES4;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCRIPT_ID=ENST [...]
+1	934990	.	A	G	135.42	VQSRTrancheSNP99.50to99.90	AC=10;AF=0.102;AN=98;BaseQRankSum=-9.706;DP=493;Dels=0.00;FS=132.442;HaplotypeScore=0.6505;InbreedingCoeff=-0.1225;MLEAC=8;MLEAF=0.082;MQ=57.58;MQ0=0;MQRankSum=1.060;QD=1.17;ReadPosRankSum=-7.855;SNPEFF_AMINO_ACID_CHANGE=S38P;SNPEFF_CODON_CHANGE=Tcc/Ccc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_934906_934993;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=HES4;SNPEFF_IMPACT=MODERATE;SNPE [...]
+1	935046	rs113602214	G	A	727.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-5.596;DB;DP=1581;Dels=0.00;FS=0.735;HaplotypeScore=0.6869;InbreedingCoeff=-0.0207;MLEAC=2;MLEAF=0.020;MQ=58.78;MQ0=0;MQRankSum=1.713;QD=9.09;ReadPosRankSum=-1.877;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=HES4;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000304952;VQSLOD=6.47;culprit=MQ	GT:AD:DP:GQ:PL	0/0:21,0:21:63:0,63,779	0/0:32,0:32:90:0,90,1127	0/0 [...]
+1	935222	rs2298214	C	A	7220.31	PASS	AC=54;AF=0.563;AN=96;BaseQRankSum=-7.782;DB;DP=433;Dels=0.00;FS=5.377;HaplotypeScore=0.2198;InbreedingCoeff=0.5158;MLEAC=55;MLEAF=0.573;MQ=57.88;MQ0=0;MQRankSum=1.735;QD=26.07;ReadPosRankSum=2.200;SNPEFF_AMINO_ACID_CHANGE=R44S;SNPEFF_CODON_CHANGE=agG/agT;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_935072_935552;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=HES4;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCRIP [...]
+1	948921	rs15842	T	C	66632.77	PASS	AC=87;AF=0.870;AN=100;BaseQRankSum=-1.000;DB;DP=2347;Dels=0.00;FS=19.732;HaplotypeScore=1.2466;InbreedingCoeff=0.0274;MLEAC=87;MLEAF=0.870;MQ=58.47;MQ0=0;MQRankSum=0.438;QD=29.41;ReadPosRankSum=0.831;SNPEFF_EFFECT=UTR_5_PRIME;SNPEFF_EXON_ID=exon_1_948803_948956;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ISG15;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000379389;VQSLOD=3.32;culprit=HaplotypeScore	GT:AD:DP:GQ:P [...]
+1	949422	rs143888043	G	A	791.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-4.530;DB;DP=3475;Dels=0.00;FS=7.578;HaplotypeScore=0.0383;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.48;MQ0=0;MQRankSum=0.333;QD=10.55;ReadPosRankSum=-4.488;SNPEFF_AMINO_ACID_CHANGE=S21N;SNPEFF_CODON_CHANGE=aGc/aAc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_949364_949920;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ISG15;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANS [...]
+1	949608	rs1921	G	A	24069.41	PASS	AC=29;AF=0.290;AN=100;BaseQRankSum=-14.730;DB;DP=3299;Dels=0.00;FS=1.209;HaplotypeScore=0.8114;InbreedingCoeff=0.1744;MLEAC=29;MLEAF=0.290;MQ=59.39;MQ0=0;MQRankSum=-0.491;QD=19.75;ReadPosRankSum=-2.856;SNPEFF_AMINO_ACID_CHANGE=S83N;SNPEFF_CODON_CHANGE=aGc/aAc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_949364_949920;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ISG15;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANS [...]
+1	949654	rs8997	A	G	93729.39	PASS	AC=82;AF=0.820;AN=100;BaseQRankSum=18.995;DB;DP=3288;Dels=0.00;FS=20.351;HaplotypeScore=0.8710;InbreedingCoeff=0.4580;MLEAC=82;MLEAF=0.820;MQ=59.30;MQ0=0;MQRankSum=-0.403;QD=34.37;ReadPosRankSum=1.456;SNPEFF_AMINO_ACID_CHANGE=V98;SNPEFF_CODON_CHANGE=gtA/gtG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_949364_949920;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ISG15;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST [...]
+1	949889	rs3829742	G	A	666.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.032;DB;DP=1383;Dels=0.00;FS=1.503;HaplotypeScore=0.4451;InbreedingCoeff=-0.0102;MLEAC=1;MLEAF=0.010;MQ=59.13;MQ0=0;MQRankSum=1.923;QD=14.17;ReadPosRankSum=-1.208;SNPEFF_EFFECT=UTR_3_PRIME;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ISG15;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000379389;VQSLOD=7.11;culprit=FS	GT:AD:DP:GQ:PL	0/0:22,0:22:66:0,66,814	0/0:32,0:32:96:0,96,123 [...]
+1	955597	rs115173026	G	T	117.08	PASS	AC=10;AF=0.278;AN=36;BaseQRankSum=1.445;DB;DP=25;Dels=0.00;FS=0.000;HaplotypeScore=0.0553;InbreedingCoeff=0.3411;MLEAC=9;MLEAF=0.250;MQ=56.16;MQ0=0;MQRankSum=1.528;QD=23.42;ReadPosRankSum=-0.124;SNPEFF_AMINO_ACID_CHANGE=P15;SNPEFF_CODON_CHANGE=ccG/ccT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_955503_955753;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST0000 [...]
+1	957568	rs115704555	A	G	882.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-7.119;DB;DP=5035;Dels=0.00;FS=0.000;HaplotypeScore=0.0195;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.33;MQ0=0;MQRankSum=0.747;QD=11.76;ReadPosRankSum=-4.449;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000379370;VQSLOD=7.68;culprit=FS	GT:AD:DP:GQ:PL	0/0:109,0:109:99:0,328,3938	0/0:108,0:108:99:0,325, [...]
+1	957640	rs6657048	C	T	2004.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-2.658;DB;DP=6097;Dels=0.00;FS=1.366;HaplotypeScore=0.1112;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=59.46;MQ0=0;MQRankSum=1.866;QD=13.36;ReadPosRankSum=-5.575;SNPEFF_AMINO_ACID_CHANGE=D87;SNPEFF_CODON_CHANGE=gaC/gaT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_957581_957842;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST0 [...]
+1	976514	rs79290478	C	A	465.05	VQSRTrancheSNP98.60to98.80	AC=26;AF=0.929;AN=28;BaseQRankSum=-1.735;DB;DP=17;Dels=0.00;FS=0.000;HaplotypeScore=0.0712;InbreedingCoeff=0.0352;MLEAC=27;MLEAF=0.964;MQ=54.13;MQ0=0;MQRankSum=0.651;QD=31.00;ReadPosRankSum=-0.217;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000477585;VQSLOD=0.457;culprit=MQ	GT:AD:DP:GQ:PL	./.	1/1:0,1:1:3:28,3,0	./.	 [...]
+1	976627	.	G	T	49.49	PASS	AC=2;AF=0.032;AN=62;BaseQRankSum=-2.576;DP=60;Dels=0.00;FS=0.000;HaplotypeScore=0.0965;InbreedingCoeff=0.0539;MLEAC=1;MLEAF=0.016;MQ=58.16;MQ0=0;MQRankSum=-1.202;QD=16.50;ReadPosRankSum=-2.747;SNPEFF_AMINO_ACID_CHANGE=A268S;SNPEFF_CODON_CHANGE=Gcc/Tcc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_976553_976777;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCRIPT_ID=ENST0000 [...]
+1	976629	rs113789806	C	T	89.72	PASS	AC=3;AF=0.047;AN=64;BaseQRankSum=0.487;DB;DP=64;Dels=0.00;FS=4.771;HaplotypeScore=0.0934;InbreedingCoeff=0.0068;MLEAC=3;MLEAF=0.047;MQ=57.45;MQ0=0;MQRankSum=-0.704;QD=17.94;ReadPosRankSum=0.541;SNPEFF_AMINO_ACID_CHANGE=A268;SNPEFF_CODON_CHANGE=gcC/gcT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_976553_976777;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST00000 [...]
+1	976808	.	C	T	41.19	PASS	AC=1;AF=0.011;AN=88;BaseQRankSum=-2.132;DP=146;Dels=0.00;FS=0.000;HaplotypeScore=0.1023;InbreedingCoeff=-0.1019;MLEAC=1;MLEAF=0.011;MQ=56.91;MQ0=0;MQRankSum=0.703;QD=10.30;ReadPosRankSum=-0.967;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000469403;VQSLOD=2.70;culprit=MQ	GT:AD:DP:GQ:PL	0/0:2,0:2:6:0,6,59	0/0:2,0:2:6:0,6,64	0/0:2,0:2:6:0,6,76	0/0:3, [...]
+1	977028	rs138031468	G	T	181.20	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.626;DB;DP=1523;Dels=0.00;FS=1.202;HaplotypeScore=0.5212;InbreedingCoeff=-0.0109;MLEAC=1;MLEAF=0.010;MQ=58.16;MQ0=1;MQRankSum=1.708;QD=7.25;ReadPosRankSum=-0.988;SNPEFF_AMINO_ACID_CHANGE=A375S;SNPEFF_CODON_CHANGE=Gcc/Tcc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_976858_977082;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSC [...]
+1	977330	rs2799066	T	C	47146.04	PASS	AC=83;AF=0.830;AN=100;BaseQRankSum=15.170;DB;DP=1899;Dels=0.00;FS=0.000;HaplotypeScore=0.6567;InbreedingCoeff=0.3621;MLEAC=83;MLEAF=0.830;MQ=58.74;MQ0=0;MQRankSum=1.279;QD=31.49;ReadPosRankSum=1.596;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000469403;VQSLOD=4.05;culprit=MQ	GT:AD:DP:GQ:PL	1/1:0,30:30:90:1109,90,0	1/1:0,26:26:75:919,75, [...]
+1	977570	rs2710876	G	A	11493.18	PASS	AC=77;AF=0.770;AN=100;BaseQRankSum=-3.532;DB;DP=555;Dels=0.00;FS=6.674;HaplotypeScore=0.7412;InbreedingCoeff=0.4656;MLEAC=76;MLEAF=0.760;MQ=57.77;MQ0=0;MQRankSum=-1.243;QD=26.36;ReadPosRankSum=1.173;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000469403;VQSLOD=3.55;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	1/1:0,7:7:21:247,21,0	1/1:0,7:7:21: [...]
+1	978603	rs138543546	CCT	C	9600.32	PASS	AC=51;AF=0.510;AN=100;BaseQRankSum=-0.865;DB;DP=444;FS=32.481;HaplotypeScore=3.3877;InbreedingCoeff=0.4345;MLEAC=50;MLEAF=0.500;MQ=59.25;MQ0=0;MQRankSum=2.669;QD=37.50;ReadPosRankSum=-1.299;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000469403	GT:AD:DP:GQ:PL	0/0:8,0:8:24:0,24,421	0/1:3,5:8:99:232,0,132	1/1:0,7:7:21:387,21,0	0/0:6,0:6 [...]
+1	978718	.	C	G	117.19	VQSRTrancheSNP99.50to99.90	AC=9;AF=0.090;AN=100;BaseQRankSum=-2.309;DP=424;Dels=0.00;FS=108.436;HaplotypeScore=0.3257;InbreedingCoeff=-0.1148;MLEAC=8;MLEAF=0.080;MQ=59.06;MQ0=0;MQRankSum=0.236;QD=1.92;ReadPosRankSum=-2.895;SNPEFF_AMINO_ACID_CHANGE=S495W;SNPEFF_CODON_CHANGE=tCg/tGg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_978619_978837;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODERATE;SNP [...]
+1	978850	.	T	G	442.22	VQSRTrancheSNP99.50to99.90	AC=24;AF=0.240;AN=100;BaseQRankSum=-6.855;DP=511;Dels=0.00;FS=193.190;HaplotypeScore=0.9245;InbreedingCoeff=-0.3335;MLEAC=24;MLEAF=0.240;MQ=57.80;MQ0=0;MQRankSum=-0.677;QD=1.60;ReadPosRankSum=-9.883;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000469403;VQSLOD=-1.458e+01;culprit=FS	GT:AD:DP:GQ:PL	0/1:10,2:12:33:33,0,315	0/1:9 [...]
+1	978856	rs115191992	G	A	382.31	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-4.120;DB;DP=567;Dels=0.00;FS=8.922;HaplotypeScore=1.6111;InbreedingCoeff=-0.0170;MLEAC=1;MLEAF=0.010;MQ=58.22;MQ0=0;MQRankSum=0.445;QD=15.29;ReadPosRankSum=0.158;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000469403;VQSLOD=3.18;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:11,0:11:33:0,33,389	0/0:16,0:16:4 [...]
+1	979245	.	C	T	117.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.312;DP=1817;Dels=0.00;FS=0.000;HaplotypeScore=0.6797;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=58.94;MQ0=0;MQRankSum=1.268;QD=6.89;ReadPosRankSum=-1.211;SNPEFF_AMINO_ACID_CHANGE=S614F;SNPEFF_CODON_CHANGE=tCc/tTc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_979203_979403;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCRIPT_ID=ENST0 [...]
+1	979556	rs139886237	G	A	936.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-5.964;DB;DP=5041;Dels=0.00;FS=3.185;HaplotypeScore=0.1048;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.89;MQ0=0;MQRankSum=1.962;QD=13.00;ReadPosRankSum=-6.007;SNPEFF_AMINO_ACID_CHANGE=Q689;SNPEFF_CODON_CHANGE=caG/caA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_979489_979637;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENS [...]
+1	979669	rs113671331	G	A	717.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.158;DB;DP=2446;Dels=0.00;FS=19.190;HaplotypeScore=0.3423;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.52;MQ0=0;MQRankSum=0.833;QD=10.55;ReadPosRankSum=-2.181;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000469403;VQSLOD=5.58;culprit=FS	GT:AD:DP:GQ:PL	0/0:36,0:36:99:0,108,1269	0/0:42,0:42:99:0,126 [...]
+1	979690	rs115413462	G	A	1283.12	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=-5.949;DB;DP=1925;Dels=0.00;FS=0.000;HaplotypeScore=0.3627;InbreedingCoeff=-0.0310;MLEAC=3;MLEAF=0.030;MQ=59.01;MQ0=0;MQRankSum=-0.548;QD=10.35;ReadPosRankSum=-4.800;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000469403;VQSLOD=6.13;culprit=FS	GT:AD:DP:GQ:PL	0/0:33,0:33:99:0,99,1192	0/0:37,0:37:99:0,108 [...]
+1	979748	rs113288277	A	T	963.46	PASS	AC=5;AF=0.050;AN=100;BaseQRankSum=-4.154;DB;DP=1880;Dels=0.00;FS=3.164;HaplotypeScore=0.4187;InbreedingCoeff=-0.0527;MLEAC=5;MLEAF=0.050;MQ=59.23;MQ0=0;MQRankSum=1.849;QD=10.59;ReadPosRankSum=-2.048;SNPEFF_AMINO_ACID_CHANGE=E728V;SNPEFF_CODON_CHANGE=gAg/gTg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_979714_979819;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANS [...]
+1	979835	rs114389542	G	A	637.50	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=-2.599;DB;DP=617;Dels=0.00;FS=0.000;HaplotypeScore=0.3875;InbreedingCoeff=-0.0402;MLEAC=3;MLEAF=0.030;MQ=58.31;MQ0=0;MQRankSum=3.266;QD=15.55;ReadPosRankSum=1.104;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000469403;VQSLOD=4.93;culprit=FS	GT:AD:DP:GQ:PL	0/0:15,0:15:45:0,45,542	0/0:8,0:8:24:0,24,282	0/0 [...]
+1	980776	.	C	G	74.46	VQSRTrancheSNP99.50to99.90	AC=11;AF=0.110;AN=100;BaseQRankSum=-5.988;DP=439;Dels=0.00;FS=71.287;HaplotypeScore=0.8452;InbreedingCoeff=-0.1629;MLEAC=10;MLEAF=0.100;MQ=57.96;MQ0=0;MQRankSum=-0.107;QD=0.97;ReadPosRankSum=-3.005;SNPEFF_AMINO_ACID_CHANGE=G803;SNPEFF_CODON_CHANGE=ggC/ggG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_980739_980903;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCR [...]
+1	980784	.	A	C	80.26	VQSRTrancheSNP99.50to99.90	AC=11;AF=0.110;AN=100;BaseQRankSum=-6.659;DP=490;Dels=0.00;FS=103.640;HaplotypeScore=0.8030;InbreedingCoeff=-0.1257;MLEAC=8;MLEAF=0.080;MQ=58.29;MQ0=0;MQRankSum=0.878;QD=0.98;ReadPosRankSum=-2.250;SNPEFF_AMINO_ACID_CHANGE=D806A;SNPEFF_CODON_CHANGE=gAc/gCc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_980739_980903;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODERATE;SNP [...]
+1	980824	rs112039851	G	C	1069.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-3.331;DB;DP=1769;Dels=0.00;FS=5.595;HaplotypeScore=0.8300;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=58.91;MQ0=0;MQRankSum=2.172;QD=11.75;ReadPosRankSum=-2.279;SNPEFF_AMINO_ACID_CHANGE=G819;SNPEFF_CODON_CHANGE=ggG/ggC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_980739_980903;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=EN [...]
+1	980955	rs139005472	AC	A	694.11	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=-0.461;DB;DP=979;FS=64.640;HaplotypeScore=7.7724;InbreedingCoeff=-0.0321;MLEAC=3;MLEAF=0.030;MQ=59.08;MQ0=0;MQRankSum=1.386;QD=9.92;RPA=5,4;RU=C;ReadPosRankSum=-0.725;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000469403;STR	GT:AD:DP:GQ:PL	0/0:19,0:19:57:0,57,705	0/0:10,0:10:30:0,30,312	0/0:19,0:21:57: [...]
+1	981087	rs3128098	A	G	71791.08	PASS	AC=83;AF=0.830;AN=100;BaseQRankSum=-9.449;DB;DP=2837;Dels=0.00;FS=0.304;HaplotypeScore=0.6543;InbreedingCoeff=0.0787;MLEAC=83;MLEAF=0.830;MQ=59.38;MQ0=0;MQRankSum=0.669;QD=27.05;ReadPosRankSum=1.276;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000469403;VQSLOD=6.42;culprit=FS	GT:AD:DP:GQ:PL	1/1:0,54:54:99:1755,162,0	1/1:0,50:50:99:1672,1 [...]
+1	981131	rs9697293	A	G	2519.12	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=-5.251;DB;DP=4516;Dels=0.00;FS=0.427;HaplotypeScore=0.6990;InbreedingCoeff=-0.0309;MLEAC=3;MLEAF=0.030;MQ=59.41;MQ0=0;MQRankSum=0.463;QD=11.40;ReadPosRankSum=-4.089;SNPEFF_AMINO_ACID_CHANGE=Q852R;SNPEFF_CODON_CHANGE=cAa/cGa;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_981113_981256;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSC [...]
+1	981310	.	C	G	57.63	VQSRTrancheSNP99.90to100.00	AC=5;AF=0.050;AN=100;BaseQRankSum=-13.235;DP=1756;Dels=0.00;FS=661.835;HaplotypeScore=2.4875;InbreedingCoeff=-0.0545;MLEAC=4;MLEAF=0.040;MQ=57.94;MQ0=0;MQRankSum=-2.110;QD=0.29;ReadPosRankSum=-11.970;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000469403;VQSLOD=-1.365e+02;culprit=FS	GT:AD:DP:GQ:PL	0/0:25,4:28:66:0,66,798	0/0: [...]
+1	981931	rs2465128	A	G	25023.30	PASS	AC=79;AF=0.790;AN=100;BaseQRankSum=0.003;DB;DP=1130;Dels=0.00;FS=3.119;HaplotypeScore=0.4877;InbreedingCoeff=0.4554;MLEAC=79;MLEAF=0.790;MQ=59.12;MQ0=0;MQRankSum=0.727;QD=27.17;ReadPosRankSum=-0.178;SNPEFF_AMINO_ACID_CHANGE=S1022;SNPEFF_CODON_CHANGE=tcA/tcG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_981777_982115;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=EN [...]
+1	982213	rs150132566	G	C	241.08	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-2.122;DB;DP=335;Dels=0.00;FS=2.637;HaplotypeScore=0.2214;InbreedingCoeff=-0.0476;MLEAC=2;MLEAF=0.020;MQ=59.17;MQ0=0;MQRankSum=0.048;QD=12.05;ReadPosRankSum=-0.086;SNPEFF_AMINO_ACID_CHANGE=L1088F;SNPEFF_CODON_CHANGE=ttG/ttC;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_982200_982337;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANS [...]
+1	982380	rs183929080	G	T	103.95	PASS	AC=3;AF=0.032;AN=94;BaseQRankSum=-2.624;DB;DP=214;Dels=0.00;FS=0.000;HaplotypeScore=0.0950;InbreedingCoeff=0.1828;MLEAC=2;MLEAF=0.021;MQ=59.30;MQ0=0;MQRankSum=1.767;QD=12.99;ReadPosRankSum=-1.767;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000479707;VQSLOD=5.26;culprit=FS	GT:AD:DP:GQ:PL	0/0:2,0:2:6:0,6,76	0/0:8,0:8:24:0,24,302	0/0:7,0:7 [...]
+1	982783	rs146358566	T	C	1055.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=3.103;DB;DP=3310;Dels=0.00;FS=35.844;HaplotypeScore=0.3795;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.11;MQ0=0;MQRankSum=0.675;QD=14.07;ReadPosRankSum=-2.797;SNPEFF_AMINO_ACID_CHANGE=A1155;SNPEFF_CODON_CHANGE=gcT/gcC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_982707_982834;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=E [...]
+1	982844	rs76264143	G	C	1826.28	PASS	AC=4;AF=0.040;AN=100;BaseQRankSum=-5.313;DB;DP=2660;Dels=0.00;FS=5.401;HaplotypeScore=0.4417;InbreedingCoeff=-0.0417;MLEAC=4;MLEAF=0.040;MQ=59.54;MQ0=0;MQRankSum=-0.660;QD=12.86;ReadPosRankSum=-3.444;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000479707;VQSLOD=7.29;culprit=InbreedingCoeff	GT:AD:DP:GQ:PL	0/0:58,0:58:99:0,175,2145	0/0:34, [...]
+1	982921	rs140939425	C	T	303.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.832;DB;DP=1732;Dels=0.00;FS=6.485;HaplotypeScore=1.2241;InbreedingCoeff=-0.0102;MLEAC=1;MLEAF=0.010;MQ=59.14;MQ0=0;MQRankSum=1.190;QD=10.45;ReadPosRankSum=-0.639;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000479707;VQSLOD=5.13;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:24,0:24:72:0,72,802	0/0:18,0:18 [...]
+1	982941	rs3128102	T	C	68937.62	PASS	AC=78;AF=0.780;AN=100;BaseQRankSum=8.975;DB;DP=2796;Dels=0.00;FS=39.838;HaplotypeScore=1.0331;InbreedingCoeff=0.4172;MLEAC=78;MLEAF=0.780;MQ=59.43;MQ0=0;MQRankSum=0.281;QD=30.69;ReadPosRankSum=-1.070;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000479707;VQSLOD=0.959;culprit=FS	GT:AD:DP:GQ:PL	1/1:0,53:53:99:1960,159,0	1/1:0,45:45:99:1701 [...]
+1	982994	rs10267	T	C	108225.07	PASS	AC=81;AF=0.810;AN=100;BaseQRankSum=14.669;DB;DP=3820;Dels=0.00;FS=16.758;HaplotypeScore=0.5747;InbreedingCoeff=0.2853;MLEAC=81;MLEAF=0.810;MQ=59.41;MQ0=0;MQRankSum=0.337;QD=32.22;ReadPosRankSum=0.569;SNPEFF_AMINO_ACID_CHANGE=F1186;SNPEFF_CODON_CHANGE=ttT/ttC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_982953_983067;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=EN [...]
+1	983149	.	T	C	96.73	VQSRTrancheSNP99.50to99.90	AC=13;AF=0.130;AN=100;BaseQRankSum=-5.923;DP=496;Dels=0.00;FS=32.307;HaplotypeScore=0.2942;InbreedingCoeff=-0.1570;MLEAC=11;MLEAF=0.110;MQ=58.61;MQ0=0;MQRankSum=1.926;QD=1.01;ReadPosRankSum=-3.735;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000479707;VQSLOD=-3.018e+00;culprit=QD	GT:AD:DP:GQ:PL	0/1:9,1:11:2:2,0,237	0/0:11,4:15 [...]
+1	983243	rs142620337	C	T	58.51	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.123;DB;DP=456;Dels=0.00;FS=0.000;HaplotypeScore=0.3617;InbreedingCoeff=-0.0248;MLEAC=1;MLEAF=0.010;MQ=57.19;MQ0=0;MQRankSum=1.902;QD=5.85;ReadPosRankSum=-0.454;SNPEFF_AMINO_ACID_CHANGE=P1240L;SNPEFF_CODON_CHANGE=cCg/cTg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_983156_983275;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCR [...]
+1	983274	rs138818746	T	C	156.53	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=1.591;DB;DP=381;Dels=0.00;FS=0.000;HaplotypeScore=0.1397;InbreedingCoeff=-0.0279;MLEAC=1;MLEAF=0.010;MQ=57.42;MQ0=0;MQRankSum=1.871;QD=19.57;ReadPosRankSum=1.672;SNPEFF_AMINO_ACID_CHANGE=F1250;SNPEFF_CODON_CHANGE=ttT/ttC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_983156_983275;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST0 [...]
+1	983506	rs139294803	C	T	42.70	PASS	AC=1;AF=0.011;AN=92;BaseQRankSum=0.220;DB;DP=215;Dels=0.00;FS=0.000;HaplotypeScore=0.3543;InbreedingCoeff=-0.0969;MLEAC=1;MLEAF=0.011;MQ=56.99;MQ0=0;MQRankSum=1.099;QD=3.88;ReadPosRankSum=0.767;SNPEFF_AMINO_ACID_CHANGE=P1289L;SNPEFF_CODON_CHANGE=cCg/cTg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_983392_983745;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCRIPT [...]
+1	984302	rs9442391	T	C	4145.31	PASS	AC=55;AF=0.550;AN=100;BaseQRankSum=1.569;DB;DP=259;Dels=0.00;FS=1.672;HaplotypeScore=0.1354;InbreedingCoeff=0.4788;MLEAC=54;MLEAF=0.540;MQ=58.09;MQ0=0;MQRankSum=0.824;QD=27.64;ReadPosRankSum=-0.866;SNPEFF_AMINO_ACID_CHANGE=T1387;SNPEFF_CODON_CHANGE=acT/acC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_984247_984439;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST [...]
+1	984579	.	C	A	45.31	PASS	AC=2;AF=0.023;AN=88;BaseQRankSum=-1.957;DP=179;Dels=0.00;FS=0.000;HaplotypeScore=0.1073;InbreedingCoeff=-0.0958;MLEAC=2;MLEAF=0.023;MQ=58.43;MQ0=0;MQRankSum=1.560;QD=3.78;ReadPosRankSum=-1.440;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000466223;VQSLOD=3.30;culprit=QD	GT:AD:DP:GQ:PL	0/0:3,0:3:9:0,9,116	0/0:4,0:4:12:0,12,145	0/0:1,0:1:3:0,3,39	0/0 [...]
+1	984660	.	C	T	253.76	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.379;DP=465;Dels=0.00;FS=3.325;HaplotypeScore=0.3265;InbreedingCoeff=-0.0356;MLEAC=1;MLEAF=0.010;MQ=58.83;MQ0=0;MQRankSum=0.520;QD=12.08;ReadPosRankSum=0.196;SNPEFF_AMINO_ACID_CHANGE=P1448L;SNPEFF_CODON_CHANGE=cCg/cTg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_984616_984831;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCRIPT_ID=ENST0 [...]
+1	984752	.	G	A	183.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=1.576;DP=1540;Dels=0.00;FS=0.000;HaplotypeScore=0.4200;InbreedingCoeff=-0.0103;MLEAC=1;MLEAF=0.010;MQ=59.24;MQ0=0;MQRankSum=2.697;QD=11.45;ReadPosRankSum=-0.897;SNPEFF_AMINO_ACID_CHANGE=E1479K;SNPEFF_CODON_CHANGE=Gag/Aag;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_984616_984831;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCRIPT_ID=ENST [...]
+1	984847	rs112917612	G	C	1861.40	PASS	AC=4;AF=0.040;AN=100;BaseQRankSum=-7.130;DB;DP=1003;Dels=0.00;FS=2.687;HaplotypeScore=0.6865;InbreedingCoeff=-0.0444;MLEAC=4;MLEAF=0.040;MQ=59.28;MQ0=0;MQRankSum=3.864;QD=12.66;ReadPosRankSum=-1.407;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000466223;VQSLOD=5.75;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:29,0:29:87:0,87,1088	0/0:16,0: [...]
+1	985171	rs115019873	C	T	267.76	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-2.523;DB;DP=463;Dels=0.00;FS=1.361;HaplotypeScore=0.2723;InbreedingCoeff=0.0246;MLEAC=2;MLEAF=0.020;MQ=58.30;MQ0=0;MQRankSum=0.881;QD=13.39;ReadPosRankSum=-1.194;SNPEFF_AMINO_ACID_CHANGE=R1580;SNPEFF_CODON_CHANGE=cgC/cgT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_984946_985175;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST [...]
+1	985239	rs115192323	C	T	1101.30	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-3.754;DB;DP=1161;Dels=0.00;FS=9.709;HaplotypeScore=0.3394;InbreedingCoeff=-0.0223;MLEAC=2;MLEAF=0.020;MQ=59.03;MQ0=0;MQRankSum=2.144;QD=13.60;ReadPosRankSum=-0.375;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000466223;VQSLOD=7.20;culprit=MQ	GT:AD:DP:GQ:PL	0/0:10,0:10:30:0,30,360	0/0:10,0:10:30:0,30,35 [...]
+1	985266	rs2275813	C	T	19151.74	PASS	AC=51;AF=0.510;AN=100;BaseQRankSum=-2.655;DB;DP=1453;Dels=0.00;FS=1.032;HaplotypeScore=0.4190;InbreedingCoeff=0.2384;MLEAC=51;MLEAF=0.510;MQ=59.28;MQ0=0;MQRankSum=4.926;QD=22.35;ReadPosRankSum=-1.534;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000466223;VQSLOD=3.43;culprit=FS	GT:AD:DP:GQ:PL	0/0:21,0:21:63:0,63,759	1/1:0,11:11:33:410,33, [...]
+1	985377	rs113020870	C	T	131.21	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=2.877;DB;DP=946;Dels=0.00;FS=0.000;HaplotypeScore=0.5711;InbreedingCoeff=-0.0114;MLEAC=1;MLEAF=0.010;MQ=59.35;MQ0=0;MQRankSum=1.294;QD=7.29;ReadPosRankSum=-2.187;SNPEFF_AMINO_ACID_CHANGE=C1613;SNPEFF_CODON_CHANGE=tgC/tgT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_985283_985417;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST0 [...]
+1	985443	rs71576592	AG	A	1666.26	PASS	AC=56;AF=0.651;AN=86;BaseQRankSum=-0.304;DB;DP=179;FS=3.739;HaplotypeScore=13.0598;InbreedingCoeff=0.1155;MLEAC=60;MLEAF=0.698;MQ=53.87;MQ0=0;MQRankSum=-0.873;QD=11.34;RPA=15,14;RU=G;ReadPosRankSum=-0.534;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000466223;STR	GT:AD:DP:GQ:PL	1/1:0,3:5:9:73,9,0	0/0:0,0:4:0:0,0,1	0/0:0,0:3:1:0,1,1	0/1: [...]
+1	985446	rs2275812	G	T	1019.88	PASS	AC=23;AF=0.256;AN=90;BaseQRankSum=-6.476;DB;DP=176;Dels=0.00;FS=28.544;HaplotypeScore=2.2684;InbreedingCoeff=0.3262;MLEAC=21;MLEAF=0.233;MQ=51.95;MQ0=0;MQRankSum=2.575;QD=15.45;ReadPosRankSum=1.628;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000466223;VQSLOD=1.80;culprit=MQ	GT:AD:DP:GQ:PL	0/0:5,0:5:15:0,15,182	1/1:0,5:5:15:167,15,0	1/1:0 [...]
+1	985447	.	G	T	43.33	VQSRTrancheSNP98.90to99.00	AC=5;AF=0.054;AN=92;BaseQRankSum=-3.356;DP=174;Dels=0.00;FS=7.679;HaplotypeScore=2.1988;InbreedingCoeff=-0.1176;MLEAC=5;MLEAF=0.054;MQ=51.84;MQ0=0;MQRankSum=-2.494;QD=2.28;ReadPosRankSum=0.457;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000466223;VQSLOD=0.083;culprit=QD	GT:AD:DP:GQ:PL	0/0:6,0:6:18:0,18,217	0/0:5,0:5:15:0,15,1 [...]
+1	985449	rs56255212	G	A	1749.09	PASS	AC=43;AF=0.467;AN=92;BaseQRankSum=-7.334;DB;DP=175;Dels=0.00;FS=18.432;HaplotypeScore=1.0005;InbreedingCoeff=-0.1046;MLEAC=41;MLEAF=0.446;MQ=52.47;MQ0=0;MQRankSum=1.914;QD=13.56;ReadPosRankSum=-0.484;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000466223;VQSLOD=0.851;culprit=MQ	GT:AD:DP:GQ:PL	0/0:5,0:5:15:0,15,167	1/1:0,5:5:15:172,15,0	1 [...]
+1	985450	.	G	A	2316.82	PASS	AC=47;AF=0.500;AN=94;BaseQRankSum=-7.697;DP=183;Dels=0.00;FS=11.816;HaplotypeScore=3.8258;InbreedingCoeff=-0.0235;MLEAC=49;MLEAF=0.521;MQ=52.73;MQ0=0;MQRankSum=1.234;QD=15.04;ReadPosRankSum=1.316;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000466223;VQSLOD=0.879;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	1/1:1,5:6:9:104,9,0	0/0:5,0:5:15:0,15,185	0/0: [...]
+1	985460	rs2275811	T	C	2962.99	PASS	AC=27;AF=0.270;AN=100;BaseQRankSum=5.374;DB;DP=280;Dels=0.00;FS=0.000;HaplotypeScore=1.3809;InbreedingCoeff=0.3112;MLEAC=29;MLEAF=0.290;MQ=54.31;MQ0=0;MQRankSum=-3.872;QD=19.89;ReadPosRankSum=-0.890;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000466223;VQSLOD=1.68;culprit=MQ	GT:AD:DP:GQ:PL	0/0:8,0:8:24:0,24,262	0/0:8,0:8:24:0,24,260	0/0: [...]
+1	985626	rs139400715	C	T	788.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=0.990;DB;DP=3936;Dels=0.00;FS=3.913;HaplotypeScore=1.3126;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.26;MQ0=0;MQRankSum=1.831;QD=10.95;ReadPosRankSum=0.226;SNPEFF_AMINO_ACID_CHANGE=D1631;SNPEFF_CODON_CHANGE=gaC/gaT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_985613_985709;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST [...]
+1	985797	rs142286944	A	G	572.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-3.785;DB;DP=1567;Dels=0.00;FS=5.649;HaplotypeScore=0.3128;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=59.32;MQ0=0;MQRankSum=1.849;QD=11.92;ReadPosRankSum=-0.687;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000466223;VQSLOD=8.00;culprit=InbreedingCoeff	GT:AD:DP:GQ:PL	0/0:28,0:28:84:0,84,1002	0/0:35,0: [...]
+1	985826	rs17160775	G	A	2760.44	PASS	AC=5;AF=0.050;AN=100;BaseQRankSum=-8.955;DB;DP=1611;Dels=0.00;FS=6.081;HaplotypeScore=0.4089;InbreedingCoeff=0.3684;MLEAC=5;MLEAF=0.050;MQ=59.33;MQ0=0;MQRankSum=-0.137;QD=14.23;ReadPosRankSum=0.527;SNPEFF_AMINO_ACID_CHANGE=V1666I;SNPEFF_CODON_CHANGE=Gtc/Atc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_985807_985971;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANS [...]
+1	985900	rs17160776	C	T	2924.12	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=0.587;DB;DP=2417;Dels=0.00;FS=2.340;HaplotypeScore=0.4268;InbreedingCoeff=-0.0309;MLEAC=3;MLEAF=0.030;MQ=59.25;MQ0=0;MQRankSum=-0.881;QD=13.17;ReadPosRankSum=-1.106;SNPEFF_AMINO_ACID_CHANGE=F1690;SNPEFF_CODON_CHANGE=ttC/ttT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_985807_985971;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=EN [...]
+1	985999	rs111726760	G	T	2007.14	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=-5.020;DB;DP=1342;Dels=0.00;FS=0.000;HaplotypeScore=0.5814;InbreedingCoeff=-0.0315;MLEAC=3;MLEAF=0.030;MQ=59.22;MQ0=0;MQRankSum=-0.141;QD=13.94;ReadPosRankSum=-1.586;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000466223;VQSLOD=7.27;culprit=FS	GT:AD:DP:GQ:PL	0/0:16,0:16:48:0,48,564	0/0:23,0:23:69:0,69,8 [...]
+1	986010	rs116257587	T	C	1466.45	PASS	AC=5;AF=0.050;AN=100;BaseQRankSum=-5.826;DB;DP=1187;Dels=0.00;FS=0.695;HaplotypeScore=0.9650;InbreedingCoeff=0.3677;MLEAC=5;MLEAF=0.050;MQ=59.26;MQ0=0;MQRankSum=-1.433;QD=11.92;ReadPosRankSum=-2.805;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000466223;VQSLOD=4.38;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:20,0:20:60:0,60,687	0/0:21,0:2 [...]
+1	986056	rs28545735	C	T	219.30	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.301;DB;DP=618;Dels=0.00;FS=8.387;HaplotypeScore=0.3670;InbreedingCoeff=-0.0163;MLEAC=1;MLEAF=0.010;MQ=58.85;MQ0=0;MQRankSum=-0.560;QD=10.44;ReadPosRankSum=-2.790;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000466223;VQSLOD=5.59;culprit=MQ	GT:AD:DP:GQ:PL	0/0:12,0:12:36:0,36,390	0/0:12,0:12:36:0,36,404	 [...]
+1	986731	rs112073270	C	T	168.52	PASS	AC=1;AF=0.010;AN=98;BaseQRankSum=-0.026;DB;DP=251;Dels=0.00;FS=3.382;HaplotypeScore=0.5293;InbreedingCoeff=-0.0640;MLEAC=1;MLEAF=0.010;MQ=57.67;MQ0=0;MQRankSum=1.303;QD=14.04;ReadPosRankSum=-0.517;SNPEFF_AMINO_ACID_CHANGE=F127;SNPEFF_CODON_CHANGE=ttC/ttT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_986633_986749;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST0 [...]
+1	986737	rs17160781	T	C	466.10	PASS	AC=4;AF=0.042;AN=96;BaseQRankSum=-0.523;DB;DP=232;Dels=0.00;FS=7.765;HaplotypeScore=0.5174;InbreedingCoeff=-0.1029;MLEAC=4;MLEAF=0.042;MQ=57.81;MQ0=0;MQRankSum=2.606;QD=16.07;ReadPosRankSum=-2.501;SNPEFF_AMINO_ACID_CHANGE=G129;SNPEFF_CODON_CHANGE=ggT/ggC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_986633_986749;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST00 [...]
+1	986885	.	T	G	441.47	VQSRTrancheSNP99.50to99.90	AC=19;AF=0.198;AN=96;BaseQRankSum=-7.503;DP=235;Dels=0.00;FS=141.555;HaplotypeScore=0.1373;InbreedingCoeff=-0.2318;MLEAC=21;MLEAF=0.219;MQ=59.05;MQ0=0;MQRankSum=2.350;QD=4.01;ReadPosRankSum=-7.910;SNPEFF_AMINO_ACID_CHANGE=V151G;SNPEFF_CODON_CHANGE=gTg/gGg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_986833_987025;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODERATE;SN [...]
+1	987076	rs143046493	C	T	120.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.567;DB;DP=1311;Dels=0.00;FS=2.262;HaplotypeScore=0.3259;InbreedingCoeff=-0.0106;MLEAC=1;MLEAF=0.010;MQ=59.31;MQ0=0;MQRankSum=1.248;QD=7.51;ReadPosRankSum=-0.295;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000466223;VQSLOD=6.87;culprit=QD	GT:AD:DP:GQ:PL	0/1:10,6:16:99:160,0,294	0/0:31,0:31:93:0,93,112 [...]
+1	987142	rs17778478	C	T	928.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.711;DB;DP=2776;Dels=0.00;FS=1.468;HaplotypeScore=0.4996;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.28;MQ0=0;MQRankSum=1.557;QD=12.71;ReadPosRankSum=-0.092;SNPEFF_AMINO_ACID_CHANGE=T1866;SNPEFF_CODON_CHANGE=acC/acT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_987108_987195;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENS [...]
+1	987200	rs9803031	C	T	39368.64	PASS	AC=78;AF=0.780;AN=100;BaseQRankSum=7.389;DB;DP=1656;Dels=0.00;FS=10.170;HaplotypeScore=0.5690;InbreedingCoeff=0.3007;MLEAC=78;MLEAF=0.780;MQ=59.44;MQ0=0;MQRankSum=0.167;QD=27.63;ReadPosRankSum=2.023;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000466223;VQSLOD=5.59;culprit=FS	GT:AD:DP:GQ:PL	1/1:0,25:25:75:881,75,0	1/1:0,35:35:99:1265,105 [...]
+1	990280	rs4275402	C	T	2285.57	PASS	AC=54;AF=0.600;AN=90;BaseQRankSum=3.564;DB;DP=149;Dels=0.00;FS=1.108;HaplotypeScore=0.2197;InbreedingCoeff=0.4198;MLEAC=53;MLEAF=0.589;MQ=58.20;MQ0=0;MQRankSum=0.621;QD=22.63;ReadPosRankSum=0.707;SNPEFF_AMINO_ACID_CHANGE=D2019;SNPEFF_CODON_CHANGE=gaC/gaT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_990204_991496;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST00 [...]
+1	990380	rs3121561	C	T	1289.03	PASS	AC=38;AF=0.413;AN=92;BaseQRankSum=2.240;DB;DP=134;Dels=0.00;FS=9.245;HaplotypeScore=0.1459;InbreedingCoeff=0.4029;MLEAC=36;MLEAF=0.391;MQ=56.54;MQ0=0;MQRankSum=1.845;QD=21.48;ReadPosRankSum=1.141;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AGRN;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000461111;VQSLOD=3.77;culprit=MQ	GT:AD:DP:GQ:PL	1/1:0,5:5:15:172,15,0	0/0:2,0:2:6:0,6,59	0/0:1,0:1: [...]
+1	1019314	rs115613719	G	T	80.45	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=2.398;DB;DP=380;Dels=0.00;FS=2.415;HaplotypeScore=0.1312;InbreedingCoeff=-0.0260;MLEAC=1;MLEAF=0.010;MQ=58.41;MQ0=0;MQRankSum=0.738;QD=8.04;ReadPosRankSum=-1.491;SNPEFF_AMINO_ACID_CHANGE=R194;SNPEFF_CODON_CHANGE=Cgg/Agg;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1019295_1019391;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=C1orf159;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID= [...]
+1	1019717	.	C	T	219.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.621;DP=1213;Dels=0.00;FS=6.649;HaplotypeScore=0.3895;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.42;MQ0=0;MQRankSum=0.405;QD=9.96;ReadPosRankSum=-1.859;SNPEFF_AMINO_ACID_CHANGE=R173H;SNPEFF_CODON_CHANGE=cGc/cAc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1019295_1019763;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=C1orf159;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCRIPT_I [...]
+1	1021249	rs61520960	G	A	565.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=2.547;DB;DP=1236;Dels=0.00;FS=0.000;HaplotypeScore=0.4088;InbreedingCoeff=-0.0205;MLEAC=2;MLEAF=0.020;MQ=58.93;MQ0=0;MQRankSum=1.104;QD=12.03;ReadPosRankSum=-2.817;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=C1orf159;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000427787;VQSLOD=7.29;culprit=MQ	GT:AD:DP:GQ:PL	0/0:25,0:25:75:0,75,812	0/0:30,0:30:90:0,90, [...]
+1	1021346	rs10907177	A	G	14466.05	PASS	AC=20;AF=0.200;AN=100;BaseQRankSum=19.709;DB;DP=2081;Dels=0.00;FS=2.032;HaplotypeScore=0.6786;InbreedingCoeff=-0.0000;MLEAC=20;MLEAF=0.200;MQ=58.86;MQ0=0;MQRankSum=0.655;QD=17.35;ReadPosRankSum=-0.572;SNPEFF_AMINO_ACID_CHANGE=I119;SNPEFF_CODON_CHANGE=atT/atC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1021258_1021392;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=C1orf159;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCR [...]
+1	1021408	rs11260587	G	A	5476.87	PASS	AC=10;AF=0.100;AN=100;BaseQRankSum=-10.418;DB;DP=1361;Dels=0.00;FS=2.722;HaplotypeScore=3.7841;InbreedingCoeff=0.1111;MLEAC=10;MLEAF=0.100;MQ=58.95;MQ0=0;MQRankSum=-0.507;QD=15.05;ReadPosRankSum=-0.885;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=C1orf159;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000427787;VQSLOD=2.01;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:18,0:18:51:0,51,631	0/0 [...]
+1	1021415	rs3737728	A	G	31297.26	PASS	AC=77;AF=0.770;AN=100;BaseQRankSum=4.762;DB;DP=1211;Dels=0.00;FS=14.650;HaplotypeScore=3.2284;InbreedingCoeff=-0.0702;MLEAC=77;MLEAF=0.770;MQ=59.03;MQ0=0;MQRankSum=-1.622;QD=26.86;ReadPosRankSum=0.942;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=C1orf159;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000427787;VQSLOD=1.56;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	1/1:0,18:18:51:619,51,0	1/1: [...]
+1	1115461	rs116383664	C	T	216.43	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.632;DB;DP=558;Dels=0.00;FS=2.782;HaplotypeScore=0.2055;InbreedingCoeff=-0.0225;MLEAC=1;MLEAF=0.010;MQ=58.89;MQ0=0;MQRankSum=0.016;QD=8.66;ReadPosRankSum=-0.833;SNPEFF_AMINO_ACID_CHANGE=R10W;SNPEFF_CODON_CHANGE=Cgg/Tgg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1115414_1115720;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=TTLL10;SNPEFF_IMPACT=MODERATE;SNPE [...]
+1	1115503	rs111751804	T	C	119.81	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=-3.346;DB;DP=816;Dels=0.00;FS=6.651;HaplotypeScore=0.2278;InbreedingCoeff=-0.0298;MLEAC=2;MLEAF=0.020;MQ=59.15;MQ0=0;MQRankSum=-0.990;QD=3.00;ReadPosRankSum=-0.508;SNPEFF_AMINO_ACID_CHANGE=C24R;SNPEFF_CODON_CHANGE=Tgt/Cgt;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1115414_1115720;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=TTLL10;SNPEFF_IMPACT=MODERATE;SNP [...]
+1	1115548	rs114390380	G	A	44.30	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=0.321;DB;DP=616;Dels=0.00;FS=4.626;HaplotypeScore=0.1976;InbreedingCoeff=-0.0164;MLEAC=1;MLEAF=0.010;MQ=58.76;MQ0=0;MQRankSum=1.640;QD=4.92;ReadPosRankSum=0.271;SNPEFF_AMINO_ACID_CHANGE=G112R;SNPEFF_CODON_CHANGE=Gga/Aga;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1115414_1115720;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=TTLL10;SNPEFF_IMPACT=MODERATE;SNPEFF [...]
+1	1115994	rs13376597	G	A	1981.08	PASS	AC=36;AF=0.400;AN=90;BaseQRankSum=0.825;DB;DP=155;Dels=0.00;FS=0.000;HaplotypeScore=0.0768;InbreedingCoeff=0.2755;MLEAC=36;MLEAF=0.400;MQ=59.41;MQ0=0;MQRankSum=0.543;QD=21.53;ReadPosRankSum=-0.106;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=TTLL10;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000379288;VQSLOD=6.55;culprit=FS	GT:AD:DP:GQ:PL	0/0:3,0:3:9:0,9,97	0/0:4,0:4:12:0,12,130	0/0 [...]
+1	1116005	rs112517367	C	T	78.65	PASS	AC=4;AF=0.043;AN=92;BaseQRankSum=-1.231;DB;DP=169;Dels=0.00;FS=6.189;HaplotypeScore=0.0638;InbreedingCoeff=0.0473;MLEAC=3;MLEAF=0.033;MQ=59.02;MQ0=0;MQRankSum=0.337;QD=9.83;ReadPosRankSum=-0.619;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=TTLL10;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000379288;VQSLOD=5.59;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:3,0:3:9:0,9,100	0/0:3,0:3:9:0,9 [...]
+1	1116189	rs137938349	G	A	259.70	PASS	AC=1;AF=0.010;AN=98;BaseQRankSum=0.051;DB;DP=469;Dels=0.00;FS=1.585;HaplotypeScore=0.2633;InbreedingCoeff=-0.0302;MLEAC=1;MLEAF=0.010;MQ=58.77;MQ0=0;MQRankSum=0.355;QD=11.80;ReadPosRankSum=-1.003;SNPEFF_AMINO_ACID_CHANGE=R162Q;SNPEFF_CODON_CHANGE=cGg/cAg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1116111_1116240;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=TTLL10;SNPEFF_IMPACT=MODERATE;SNPE [...]
+1	1116231	rs13374146	T	C	1902.60	PASS	AC=21;AF=0.228;AN=92;BaseQRankSum=3.944;DB;DP=220;Dels=0.00;FS=0.000;HaplotypeScore=0.5092;InbreedingCoeff=0.1624;MLEAC=22;MLEAF=0.239;MQ=58.70;MQ0=0;MQRankSum=0.514;QD=19.22;ReadPosRankSum=-1.908;SNPEFF_AMINO_ACID_CHANGE=V176A;SNPEFF_CODON_CHANGE=gTc/gCc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1116111_1116240;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=TTLL10;SNPEFF_IMPACT=MODERATE;SNP [...]
+1	1117111	rs140479651	T	C	201.36	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=1.436;DB;DP=471;Dels=0.00;FS=12.324;HaplotypeScore=0.1182;InbreedingCoeff=-0.0196;MLEAC=1;MLEAF=0.010;MQ=59.24;MQ0=0;MQRankSum=1.933;QD=8.75;ReadPosRankSum=-0.757;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=TTLL10;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000514695;VQSLOD=6.53;culprit=FS	GT:AD:DP:GQ:PL	0/0:4,0:4:12:0,12,154	0/0:11,0:11:27:0,2 [...]
+1	1117709	rs112895009	G	A	1399.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-5.319;DB;DP=2759;Dels=0.00;FS=1.311;HaplotypeScore=0.4317;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=59.73;MQ0=0;MQRankSum=0.189;QD=14.73;ReadPosRankSum=-2.345;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=TTLL10;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000514695;VQSLOD=7.39;culprit=FS	GT:AD:DP:GQ:PL	0/0:56,0:56:99:0,169,2117	0/0:54,0:54 [...]
+1	1118212	rs10907171	T	C	4570.83	PASS	AC=55;AF=0.573;AN=96;BaseQRankSum=1.399;DB;DP=225;Dels=0.00;FS=2.180;HaplotypeScore=0.0763;InbreedingCoeff=0.4741;MLEAC=56;MLEAF=0.583;MQ=59.00;MQ0=0;MQRankSum=0.957;QD=27.54;ReadPosRankSum=1.962;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=TTLL10;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000514695;VQSLOD=5.88;culprit=MQ	GT:AD:DP:GQ:PL	0/0:6,0:6:18:0,18,222	0/0:3,0:3:9:0,9,111 [...]
+1	1118275	rs61733845	C	T	3765.19	PASS	AC=23;AF=0.230;AN=100;BaseQRankSum=-9.799;DB;DP=464;Dels=0.00;FS=10.169;HaplotypeScore=0.2958;InbreedingCoeff=0.3216;MLEAC=24;MLEAF=0.240;MQ=58.83;MQ0=0;MQRankSum=0.829;QD=21.27;ReadPosRankSum=-0.343;SNPEFF_AMINO_ACID_CHANGE=C239;SNPEFF_CODON_CHANGE=tgC/tgT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1118256_1118427;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=TTLL10;SNPEFF_IMPACT=LOW;SNPEFF_TRANS [...]
+1	1118475	.	C	G	95.18	PASS	AC=2;AF=0.023;AN=86;BaseQRankSum=1.836;DP=135;Dels=0.00;FS=9.454;HaplotypeScore=0.2094;InbreedingCoeff=0.1015;MLEAC=1;MLEAF=0.012;MQ=58.64;MQ0=0;MQRankSum=-0.009;QD=19.04;ReadPosRankSum=1.508;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=TTLL10;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000514695;VQSLOD=3.75;culprit=MQ	GT:AD:DP:GQ:PL	0/0:1,0:1:3:0,3,31	0/0:3,0:3:9:0,9,90	0/0:2,0:2:6:0,6,79 [...]
+1	1119361	rs143930968	A	G	831.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.139;DB;DP=6393;Dels=0.00;FS=6.831;HaplotypeScore=0.0316;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.99;MQ0=0;MQRankSum=0.961;QD=11.08;ReadPosRankSum=-4.052;SNPEFF_AMINO_ACID_CHANGE=I311V;SNPEFF_CODON_CHANGE=Att/Gtt;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1119300_1119471;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=TTLL10;SNPEFF_IMPACT=MODERATE;S [...]
+1	1120307	rs7539911	G	A	1769.63	VQSRTrancheSNP99.00to99.30	AC=31;AF=0.316;AN=98;BaseQRankSum=9.676;DB;DP=592;Dels=0.00;FS=2.748;HaplotypeScore=0.1408;InbreedingCoeff=-0.0273;MLEAC=30;MLEAF=0.306;MQ=31.70;MQ0=88;MQRankSum=-0.795;QD=4.35;ReadPosRankSum=1.177;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=TTLL10;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000460998;VQSLOD=-8.879e-01;culprit=MQ	GT:AD:DP:GQ:PL	0/1:17,4:20: [...]
+1	1120370	rs74046640	C	G	637.12	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=0.595;DB;DP=1533;Dels=0.00;FS=4.312;HaplotypeScore=0.4421;InbreedingCoeff=-0.0309;MLEAC=3;MLEAF=0.030;MQ=55.77;MQ0=0;MQRankSum=1.366;QD=10.80;ReadPosRankSum=0.970;SNPEFF_AMINO_ACID_CHANGE=L355V;SNPEFF_CODON_CHANGE=Ctg/Gtg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1120349_1121244;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=TTLL10;SNPEFF_IMPACT=MODERATE;SNPE [...]
+1	1120377	rs116321663	T	A	220.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=2.263;DB;DP=1631;Dels=0.00;FS=0.000;HaplotypeScore=0.4840;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=55.37;MQ0=0;MQRankSum=2.741;QD=12.23;ReadPosRankSum=-0.441;SNPEFF_AMINO_ACID_CHANGE=M357K;SNPEFF_CODON_CHANGE=aTg/aAg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1120349_1121244;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=TTLL10;SNPEFF_IMPACT=MODERATE;SN [...]
+1	1120431	rs1320571	G	A	14417.02	PASS	AC=20;AF=0.200;AN=100;BaseQRankSum=-12.760;DB;DP=1876;Dels=0.00;FS=4.673;HaplotypeScore=0.3230;InbreedingCoeff=0.1250;MLEAC=20;MLEAF=0.200;MQ=56.40;MQ0=0;MQRankSum=3.518;QD=20.25;ReadPosRankSum=-2.166;SNPEFF_AMINO_ACID_CHANGE=S375N;SNPEFF_CODON_CHANGE=aGt/aAt;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1120349_1121244;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=TTLL10;SNPEFF_IMPACT=MODERATE [...]
+1	1120488	rs74475385	A	C	641.98	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-1.440;DB;DP=1912;Dels=0.00;FS=6.318;HaplotypeScore=0.5771;InbreedingCoeff=-0.0187;MLEAC=1;MLEAF=0.010;MQ=57.56;MQ0=0;MQRankSum=2.697;QD=8.02;ReadPosRankSum=-1.265;SNPEFF_AMINO_ACID_CHANGE=K394T;SNPEFF_CODON_CHANGE=aAg/aCg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1120349_1121244;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=TTLL10;SNPEFF_IMPACT=MODERATE;SNP [...]
+1	1120503	rs116251234	G	A	305.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-6.195;DB;DP=1869;Dels=0.00;FS=8.945;HaplotypeScore=0.4827;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=57.84;MQ0=0;MQRankSum=1.103;QD=3.72;ReadPosRankSum=-1.793;SNPEFF_AMINO_ACID_CHANGE=C399Y;SNPEFF_CODON_CHANGE=tGc/tAc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1120349_1121244;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=TTLL10;SNPEFF_IMPACT=MODERATE;SN [...]
+1	1120536	rs77950429	G	A	2662.47	PASS	AC=5;AF=0.050;AN=100;BaseQRankSum=-0.987;DB;DP=1475;Dels=0.00;FS=3.207;HaplotypeScore=0.3647;InbreedingCoeff=-0.0529;MLEAC=5;MLEAF=0.050;MQ=57.96;MQ0=0;MQRankSum=0.529;QD=13.80;ReadPosRankSum=-1.922;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=TTLL10;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000460998;VQSLOD=4.94;culprit=MQ	GT:AD:DP:GQ:PL	0/0:24,0:24:69:0,69,817	0/0:28,0:28:84 [...]
+1	1139202	rs2298213	T	C	1239.37	PASS	AC=16;AF=0.163;AN=98;BaseQRankSum=1.124;DB;DP=276;Dels=0.00;FS=2.200;HaplotypeScore=0.2314;InbreedingCoeff=0.1054;MLEAC=15;MLEAF=0.153;MQ=58.26;MQ0=0;MQRankSum=0.247;QD=11.37;ReadPosRankSum=-1.776;SNPEFF_AMINO_ACID_CHANGE=P179;SNPEFF_CODON_CHANGE=ccA/ccG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1138888_1139340;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TNFRSF18;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID [...]
+1	1139498	rs11466693	C	T	292.34	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-2.184;DB;DP=688;Dels=0.00;FS=4.192;HaplotypeScore=0.4994;InbreedingCoeff=-0.0240;MLEAC=2;MLEAF=0.020;MQ=59.41;MQ0=0;MQRankSum=-0.078;QD=9.74;ReadPosRankSum=0.429;SNPEFF_AMINO_ACID_CHANGE=V173M;SNPEFF_CODON_CHANGE=Gtg/Atg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1139435_1139616;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TNFRSF18;SNPEFF_IMPACT=MODERATE;SNPEFF_T [...]
+1	1139547	.	C	T	31.26	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.063;DP=630;Dels=0.00;FS=2.593;HaplotypeScore=0.4362;InbreedingCoeff=-0.0144;MLEAC=1;MLEAF=0.010;MQ=58.81;MQ0=0;MQRankSum=1.373;QD=3.91;ReadPosRankSum=0.742;SNPEFF_AMINO_ACID_CHANGE=G156;SNPEFF_CODON_CHANGE=ggG/ggA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1139435_1139616;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TNFRSF18;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST000003792 [...]
+1	1139565	rs61761323	G	A	567.31	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-2.312;DB;DP=745;Dels=0.00;FS=0.000;HaplotypeScore=0.3168;InbreedingCoeff=-0.0228;MLEAC=2;MLEAF=0.020;MQ=58.81;MQ0=0;MQRankSum=1.159;QD=13.19;ReadPosRankSum=1.412;SNPEFF_AMINO_ACID_CHANGE=N150;SNPEFF_CODON_CHANGE=aaC/aaT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1139435_1139616;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TNFRSF18;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID [...]
+1	1139862	rs11466691	T	C	395.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=4.920;DB;DP=1988;Dels=0.00;FS=1.293;HaplotypeScore=0.3883;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.04;MQ0=0;MQRankSum=0.336;QD=15.20;ReadPosRankSum=-0.918;SNPEFF_AMINO_ACID_CHANGE=K105;SNPEFF_CODON_CHANGE=aaA/aaG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1139779_1139866;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TNFRSF18;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_I [...]
+1	1141723	rs11466678	A	G	112.49	PASS	AC=4;AF=0.065;AN=62;BaseQRankSum=1.989;DB;DP=64;Dels=0.00;FS=5.756;HaplotypeScore=0.0000;InbreedingCoeff=-0.0243;MLEAC=4;MLEAF=0.065;MQ=58.28;MQ0=0;MQRankSum=0.057;QD=14.06;ReadPosRankSum=-0.663;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TNFRSF4;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000379236;VQSLOD=5.64;culprit=MQ	GT:AD:DP:GQ:PL	0/0:2,0:2:6:0,6,69	0/0:2,0:2:6:0,6,71	0/0:3,0:3: [...]
+1	1141824	rs11466676	G	C	94.64	PASS	AC=7;AF=0.113;AN=62;BaseQRankSum=0.022;DB;DP=55;Dels=0.00;FS=3.310;HaplotypeScore=0.0509;InbreedingCoeff=0.1317;MLEAC=6;MLEAF=0.097;MQ=58.44;MQ0=0;MQRankSum=-0.373;QD=9.46;ReadPosRankSum=1.076;SNPEFF_AMINO_ACID_CHANGE=T43R;SNPEFF_CODON_CHANGE=aCg/aGg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1141765_1141951;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TNFRSF18;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCR [...]
+1	1147108	.	G	C	452.93	VQSRTrancheSNP99.50to99.90	AC=23;AF=0.245;AN=94;BaseQRankSum=-5.961;DP=290;Dels=0.00;FS=54.941;HaplotypeScore=0.2645;InbreedingCoeff=-0.3669;MLEAC=24;MLEAF=0.255;MQ=57.70;MQ0=0;MQRankSum=1.865;QD=2.54;ReadPosRankSum=-1.650;SNPEFF_AMINO_ACID_CHANGE=P247A;SNPEFF_CODON_CHANGE=Ccc/Gcc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1147084_1147212;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TNFRSF4;SNPEFF_IMPACT=MODERA [...]
+1	1147243	rs2298211	A	C	721.18	PASS	AC=14;AF=0.143;AN=98;BaseQRankSum=4.461;DB;DP=255;Dels=0.00;FS=5.837;HaplotypeScore=0.2488;InbreedingCoeff=0.3908;MLEAC=12;MLEAF=0.122;MQ=57.98;MQ0=0;MQRankSum=1.434;QD=20.03;ReadPosRankSum=-3.805;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TNFRSF4;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000379236;VQSLOD=4.26;culprit=MQ	GT:AD:DP:GQ:PL	0/0:2,0:2:6:0,6,71	0/0:7,0:7:21:0,21,244	0/0:6,0:6: [...]
+1	1147296	.	C	T	170.29	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=-2.163;DP=331;Dels=0.00;FS=15.996;HaplotypeScore=0.3569;InbreedingCoeff=0.2751;MLEAC=2;MLEAF=0.020;MQ=58.06;MQ0=0;MQRankSum=0.454;QD=18.92;ReadPosRankSum=-0.262;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000360001;VQSLOD=2.99;culprit=FS	GT:AD:DP:GQ:PL	0/0:3,0:3:9:0,9,106	0/0:5,0:5:15:0,15,189	0/0:4,0:4:12:0,12, [...]
+1	1147297	rs2298212	G	A	938.06	PASS	AC=14;AF=0.140;AN=100;BaseQRankSum=2.937;DB;DP=337;Dels=0.00;FS=1.810;HaplotypeScore=0.3569;InbreedingCoeff=0.3434;MLEAC=12;MLEAF=0.120;MQ=58.13;MQ0=0;MQRankSum=1.579;QD=14.89;ReadPosRankSum=-0.993;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000360001;VQSLOD=5.19;culprit=MQ	GT:AD:DP:GQ:PL	0/0:5,0:5:15:0,15,167	0/0:5,0:5:15:0,15,162	0/0:4 [...]
+1	1147422	rs17568	C	T	16834.05	PASS	AC=40;AF=0.400;AN=100;BaseQRankSum=-12.108;DB;DP=1219;Dels=0.00;FS=0.942;HaplotypeScore=0.6440;InbreedingCoeff=0.2496;MLEAC=40;MLEAF=0.400;MQ=58.89;MQ0=0;MQRankSum=0.957;QD=22.57;ReadPosRankSum=-1.370;SNPEFF_AMINO_ACID_CHANGE=E178;SNPEFF_CODON_CHANGE=gaG/gaA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1147322_1147518;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TNFRSF4;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ [...]
+1	1147486	rs150220682	G	A	964.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=0.199;DB;DP=1578;Dels=0.00;FS=1.348;HaplotypeScore=0.9890;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=58.43;MQ0=0;MQRankSum=2.785;QD=13.39;ReadPosRankSum=1.265;SNPEFF_AMINO_ACID_CHANGE=P157L;SNPEFF_CODON_CHANGE=cCg/cTg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1147322_1147518;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TNFRSF4;SNPEFF_IMPACT=MODERATE;SNPEFF_T [...]
+1	1147983	rs11260559	C	T	115.86	PASS	AC=5;AF=0.100;AN=50;BaseQRankSum=-1.063;DB;DP=47;Dels=0.00;FS=0.000;HaplotypeScore=0.3581;InbreedingCoeff=0.1233;MLEAC=5;MLEAF=0.100;MQ=56.71;MQ0=0;MQRankSum=0.000;QD=19.31;ReadPosRankSum=-1.472;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000263741;VQSLOD=3.18;culprit=MQ	GT:AD:DP:GQ:PL	./.	0/0:1,0:1:3:0,3,39	./.	./.	./.	./.	./.	./.	./.	 [...]
+1	1147985	rs11260560	C	A	167.52	PASS	AC=5;AF=0.093;AN=54;BaseQRankSum=-2.503;DB;DP=52;Dels=0.00;FS=0.000;HaplotypeScore=0.2951;InbreedingCoeff=0.1304;MLEAC=5;MLEAF=0.093;MQ=57.06;MQ0=0;MQRankSum=1.669;QD=20.94;ReadPosRankSum=-1.283;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000263741;VQSLOD=3.68;culprit=MQ	GT:AD:DP:GQ:PL	./.	0/0:1,0:1:3:0,3,39	0/0:2,0:2:6:0,6,74	./.	./.	. [...]
+1	1148100	rs34108055	G	C	352.12	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-1.796;DB;DP=360;Dels=0.00;FS=1.079;HaplotypeScore=0.2761;InbreedingCoeff=-0.0482;MLEAC=2;MLEAF=0.020;MQ=58.23;MQ0=0;MQRankSum=-0.442;QD=14.08;ReadPosRankSum=-2.256;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000263741;VQSLOD=5.22;culprit=FS	GT:AD:DP:GQ:PL	0/0:1,0:1:3:0,3,39	0/0:7,0:7:21:0,21,265	0/0:8, [...]
+1	1148358	rs35033502	G	A	895.54	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-5.649;DB;DP=756;Dels=0.00;FS=2.874;HaplotypeScore=0.6591;InbreedingCoeff=-0.0303;MLEAC=2;MLEAF=0.020;MQ=59.52;MQ0=0;MQRankSum=0.522;QD=13.99;ReadPosRankSum=-0.698;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000263741;VQSLOD=7.83;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:15,0:15:45:0,45,555	0/0:21,0:21: [...]
+1	1149316	rs35737009	C	G	1416.42	PASS	AC=8;AF=0.080;AN=100;BaseQRankSum=-4.698;DB;DP=389;Dels=0.00;FS=13.861;HaplotypeScore=0.3927;InbreedingCoeff=0.0899;MLEAC=8;MLEAF=0.080;MQ=58.25;MQ0=0;MQRankSum=1.010;QD=15.40;ReadPosRankSum=0.133;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000263741;VQSLOD=4.57;culprit=FS	GT:AD:DP:GQ:PL	0/0:7,0:7:21:0,21,265	0/0:6,0:6:18:0,18,227	0/0: [...]
+1	1153009	rs116328547	G	A	858.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=1.224;DB;DP=3871;Dels=0.00;FS=6.160;HaplotypeScore=0.2069;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.31;MQ0=0;MQRankSum=-0.494;QD=11.44;ReadPosRankSum=-2.576;SNPEFF_AMINO_ACID_CHANGE=A324;SNPEFF_CODON_CHANGE=gcC/gcT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1152288_1153068;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID= [...]
+1	1153039	rs139426313	G	A	782.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.817;DB;DP=4234;Dels=0.00;FS=0.000;HaplotypeScore=0.3295;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.46;MQ0=0;MQRankSum=-0.799;QD=10.43;ReadPosRankSum=1.030;SNPEFF_AMINO_ACID_CHANGE=N314;SNPEFF_CODON_CHANGE=aaC/aaT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1152288_1153068;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID= [...]
+1	1153077	rs150377323	G	A	648.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.125;DB;DP=3584;Dels=0.00;FS=9.107;HaplotypeScore=0.8191;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.31;MQ0=0;MQRankSum=-1.067;QD=10.45;ReadPosRankSum=-2.836;SNPEFF_AMINO_ACID_CHANGE=L340;SNPEFF_CODON_CHANGE=ctC/ctT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1152311_1153184;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID [...]
+1	1153113	rs12036216	G	A	7802.77	PASS	AC=13;AF=0.130;AN=100;BaseQRankSum=-2.491;DB;DP=1685;Dels=0.00;FS=2.703;HaplotypeScore=1.5024;InbreedingCoeff=0.0274;MLEAC=13;MLEAF=0.130;MQ=58.78;MQ0=0;MQRankSum=-0.128;QD=18.36;ReadPosRankSum=1.871;SNPEFF_AMINO_ACID_CHANGE=L328;SNPEFF_CODON_CHANGE=ctC/ctT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1152311_1153184;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID [...]
+1	1154121	rs112680577	G	A	490.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=3.690;DB;DP=3513;Dels=0.00;FS=1.344;HaplotypeScore=0.1529;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.67;MQ0=0;MQRankSum=-0.016;QD=12.57;ReadPosRankSum=-1.528;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000545427;VQSLOD=9.43;culprit=FS	GT:AD:DP:GQ:PL	0/0:59,0:59:99:0,177,1917	0/0:71,0:71:99:0,214 [...]
+1	1154318	.	C	T	606.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=1.427;DP=4220;Dels=0.00;FS=1.794;HaplotypeScore=0.1369;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.80;MQ0=0;MQRankSum=2.357;QD=8.08;ReadPosRankSum=-2.836;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000545427;VQSLOD=6.53;culprit=QD	GT:AD:DP:GQ:PL	0/0:94,0:94:99:0,283,3055	0/0:80,0:80:99:0,241,2600	0/0:80,0: [...]
+1	1158631	rs6603781	A	G	87610.56	PASS	AC=92;AF=0.920;AN=100;BaseQRankSum=-10.313;DB;DP=2899;Dels=0.00;FS=19.158;HaplotypeScore=0.5914;InbreedingCoeff=-0.0870;MLEAC=92;MLEAF=0.920;MQ=59.55;MQ0=0;MQRankSum=-0.875;QD=30.22;ReadPosRankSum=0.175;SNPEFF_AMINO_ACID_CHANGE=D190;SNPEFF_CODON_CHANGE=gaT/gaC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1158624_1158737;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT [...]
+1	1158667	rs59813672	G	A	705.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=1.231;DB;DP=4346;Dels=0.00;FS=0.000;HaplotypeScore=0.2481;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.44;MQ0=0;MQRankSum=1.458;QD=18.56;ReadPosRankSum=-2.507;SNPEFF_AMINO_ACID_CHANGE=A178;SNPEFF_CODON_CHANGE=gcC/gcT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1158624_1158737;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=EN [...]
+1	1163804	rs7515488	C	T	3114.64	PASS	AC=20;AF=0.200;AN=100;BaseQRankSum=-8.635;DB;DP=629;Dels=0.00;FS=2.559;HaplotypeScore=1.6667;InbreedingCoeff=-0.1364;MLEAC=20;MLEAF=0.200;MQ=57.83;MQ0=0;MQRankSum=0.696;QD=11.71;ReadPosRankSum=1.175;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000263741;VQSLOD=4.12;culprit=InbreedingCoeff	GT:AD:DP:GQ:PL	0/0:13,0:14:36:0,36,433	0/0:18,0:18:54 [...]
+1	1163811	rs3831195	G	GGACA	3714.19	PASS	AC=16;AF=0.160;AN=100;BaseQRankSum=-3.663;DB;DP=741;FS=12.198;HaplotypeScore=14.1352;InbreedingCoeff=0.0859;MLEAC=15;MLEAF=0.150;MQ=58.09;MQ0=0;MQRankSum=-5.029;QD=19.86;RPA=1,2;RU=GACA;ReadPosRankSum=0.005;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000263741;STR	GT:AD:DP:GQ:PL	0/0:14,0:14:42:0,42,874	0/0:19,0:19:57:0,57,2026	0/0:11,0: [...]
+1	1163964	rs78548753	G	A	1451.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=4.790;DB;DP=3750;Dels=0.00;FS=2.183;HaplotypeScore=0.0720;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=59.61;MQ0=0;MQRankSum=-0.132;QD=11.52;ReadPosRankSum=-1.228;SNPEFF_AMINO_ACID_CHANGE=D70;SNPEFF_CODON_CHANGE=gaC/gaT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1163848_1164326;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=E [...]
+1	1164031	rs61744664	A	G	3294.28	PASS	AC=4;AF=0.040;AN=100;BaseQRankSum=10.935;DB;DP=4190;Dels=0.00;FS=0.000;HaplotypeScore=0.1389;InbreedingCoeff=-0.0417;MLEAC=4;MLEAF=0.040;MQ=59.19;MQ0=0;MQRankSum=0.384;QD=12.62;ReadPosRankSum=-3.406;SNPEFF_AMINO_ACID_CHANGE=V48A;SNPEFF_CODON_CHANGE=gTa/gCa;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1163848_1164326;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=MODERATE;SNPEFF_TRA [...]
+1	1164072	rs61745645	C	T	2434.28	PASS	AC=4;AF=0.040;AN=100;BaseQRankSum=4.907;DB;DP=2634;Dels=0.00;FS=9.141;HaplotypeScore=0.1683;InbreedingCoeff=-0.0417;MLEAC=4;MLEAF=0.040;MQ=59.47;MQ0=0;MQRankSum=-0.446;QD=12.36;ReadPosRankSum=-3.326;SNPEFF_AMINO_ACID_CHANGE=A34;SNPEFF_CODON_CHANGE=gcG/gcA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1163848_1164326;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=E [...]
+1	1164090	rs61745652	T	C	1875.28	PASS	AC=4;AF=0.040;AN=100;BaseQRankSum=-4.382;DB;DP=1996;Dels=0.00;FS=5.493;HaplotypeScore=0.3177;InbreedingCoeff=-0.0417;MLEAC=4;MLEAF=0.040;MQ=59.72;MQ0=0;MQRankSum=0.417;QD=10.42;ReadPosRankSum=-4.229;SNPEFF_AMINO_ACID_CHANGE=A28;SNPEFF_CODON_CHANGE=gcA/gcG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1163848_1164326;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=E [...]
+1	1164179	rs76230175	G	A	1172.75	PASS	AC=4;AF=0.040;AN=100;BaseQRankSum=-0.309;DB;DP=629;Dels=0.00;FS=0.000;HaplotypeScore=0.4909;InbreedingCoeff=-0.0514;MLEAC=4;MLEAF=0.040;MQ=58.59;MQ0=0;MQRankSum=1.204;QD=15.04;ReadPosRankSum=-1.439;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SDF4;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000459994;VQSLOD=6.14;culprit=MQ	GT:AD:DP:GQ:PL	0/0:13,0:13:39:0,39,481	0/0:18,0:18:45:0,45,570 [...]
+1	1168180	rs12085009	G	C	1325.78	PASS	AC=11;AF=0.110;AN=100;BaseQRankSum=1.659;DB;DP=262;Dels=0.00;FS=5.929;HaplotypeScore=0.0894;InbreedingCoeff=0.0222;MLEAC=11;MLEAF=0.110;MQ=58.65;MQ0=0;MQRankSum=3.434;QD=15.07;ReadPosRankSum=-0.612;SNPEFF_AMINO_ACID_CHANGE=E174D;SNPEFF_CODON_CHANGE=gaG/gaC;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1167629_1170421;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=B3GALT6;SNPEFF_IMPACT=MODERATE;SNPEFF_ [...]
+1	1177918	rs139102213	CT	C	326.60	PASS	AC=8;AF=0.091;AN=88;BaseQRankSum=-1.557;DB;DP=157;FS=19.564;HaplotypeScore=2.8667;InbreedingCoeff=0.1163;MLEAC=7;MLEAF=0.080;MQ=57.60;MQ0=0;MQRankSum=1.933;QD=17.19;ReadPosRankSum=-2.531;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=FAM132A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000468365	GT:AD:DP:GQ:PL	0/0:3,0:3:9:0,9,98	0/0:5,0:5:15:0,15,227	0/0:2,0:2:6:0,6,65	1/1:0,2:2:6 [...]
+1	1177981	rs59852185	C	T	235.94	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=-1.118;DB;DP=299;Dels=0.00;FS=1.607;HaplotypeScore=0.1710;InbreedingCoeff=-0.0718;MLEAC=3;MLEAF=0.030;MQ=58.77;MQ0=0;MQRankSum=1.351;QD=9.44;ReadPosRankSum=-1.332;SNPEFF_AMINO_ACID_CHANGE=V286I;SNPEFF_CODON_CHANGE=Gtc/Atc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1177833_1178026;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=FAM132A;SNPEFF_IMPACT=MODERATE;SNP [...]
+1	1178244	rs74511182	G	C	1317.12	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=1.347;DB;DP=1516;Dels=0.00;FS=0.000;HaplotypeScore=1.9453;InbreedingCoeff=-0.0309;MLEAC=3;MLEAF=0.030;MQ=59.30;MQ0=0;MQRankSum=-0.331;QD=11.26;ReadPosRankSum=0.100;SNPEFF_AMINO_ACID_CHANGE=L261V;SNPEFF_CODON_CHANGE=Cta/Gta;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1178215_1178293;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=FAM132A;SNPEFF_IMPACT=MODERATE;S [...]
+1	1178245	rs11260566	C	T	4707.77	PASS	AC=13;AF=0.130;AN=100;BaseQRankSum=1.821;DB;DP=1497;Dels=0.00;FS=2.148;HaplotypeScore=1.8178;InbreedingCoeff=0.0274;MLEAC=13;MLEAF=0.130;MQ=59.30;MQ0=0;MQRankSum=-0.888;QD=11.80;ReadPosRankSum=-1.408;SNPEFF_AMINO_ACID_CHANGE=T260;SNPEFF_CODON_CHANGE=acG/acA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1178215_1178293;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=FAM132A;SNPEFF_IMPACT=LOW;SNPEFF_TRAN [...]
+1	1178266	rs77651834	C	T	1361.28	PASS	AC=4;AF=0.040;AN=100;BaseQRankSum=-6.912;DB;DP=1455;Dels=0.00;FS=2.693;HaplotypeScore=0.7635;InbreedingCoeff=-0.0417;MLEAC=4;MLEAF=0.040;MQ=59.61;MQ0=0;MQRankSum=1.230;QD=11.16;ReadPosRankSum=-0.554;SNPEFF_AMINO_ACID_CHANGE=E253;SNPEFF_CODON_CHANGE=gaG/gaA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1178215_1178293;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=FAM132A;SNPEFF_IMPACT=LOW;SNPEFF_TRANS [...]
+1	1178482	rs78555129	A	G	646.55	PASS	AC=12;AF=0.120;AN=100;BaseQRankSum=3.052;DB;DP=366;Dels=0.00;FS=0.000;HaplotypeScore=0.2874;InbreedingCoeff=-0.0196;MLEAC=11;MLEAF=0.110;MQ=58.65;MQ0=0;MQRankSum=2.865;QD=7.61;ReadPosRankSum=-2.541;SNPEFF_AMINO_ACID_CHANGE=C231R;SNPEFF_CODON_CHANGE=Tgt/Cgt;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1178442_1178532;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=FAM132A;SNPEFF_IMPACT=MODERATE;SN [...]
+1	1178925	rs12093154	G	A	224.49	PASS	AC=9;AF=0.098;AN=92;BaseQRankSum=-3.680;DB;DP=143;Dels=0.00;FS=0.000;HaplotypeScore=0.0867;InbreedingCoeff=0.0361;MLEAC=9;MLEAF=0.098;MQ=59.06;MQ0=0;MQRankSum=-0.020;QD=10.69;ReadPosRankSum=0.180;SNPEFF_AMINO_ACID_CHANGE=A180V;SNPEFF_CODON_CHANGE=gCc/gTc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1178824_1178932;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=FAM132A;SNPEFF_IMPACT=MODERATE;SNPE [...]
+1	1179309	rs113164957	G	A	762.33	PASS	AC=9;AF=0.092;AN=98;BaseQRankSum=2.196;DB;DP=388;Dels=0.00;FS=0.826;HaplotypeScore=0.3006;InbreedingCoeff=0.0684;MLEAC=9;MLEAF=0.092;MQ=57.81;MQ0=0;MQRankSum=0.882;QD=11.05;ReadPosRankSum=0.346;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=FAM132A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000486627;VQSLOD=4.70;culprit=MQ	GT:AD:DP:GQ:PL	0/0:9,0:9:27:0,27,292	0/0:10,0:10:30:0,30, [...]
+1	1179416	.	A	C	452.21	VQSRTrancheSNP99.50to99.90	AC=20;AF=0.200;AN=100;BaseQRankSum=-7.343;DP=373;Dels=0.00;FS=263.651;HaplotypeScore=0.5212;InbreedingCoeff=-0.2857;MLEAC=20;MLEAF=0.200;MQ=57.68;MQ0=0;MQRankSum=-2.506;QD=2.43;ReadPosRankSum=-2.504;SNPEFF_AMINO_ACID_CHANGE=V150G;SNPEFF_CODON_CHANGE=gTg/gGg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1179334_1179485;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=FAM132A;SNPEFF_IMPA [...]
+1	1179720	.	G	A	398.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-5.843;DP=1449;Dels=0.00;FS=0.000;HaplotypeScore=0.1730;InbreedingCoeff=-0.0104;MLEAC=1;MLEAF=0.010;MQ=59.32;MQ0=0;MQRankSum=0.759;QD=12.84;ReadPosRankSum=-0.811;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=FAM132A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000330388;VQSLOD=7.66;culprit=FS	GT:AD:DP:GQ:PL	0/0:25,0:25:75:0,75,945	0/0:29,0:29:87:0,87,1072	0/0:2 [...]
+1	1179747	rs139237071	C	T	119.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=0.890;DB;DP=1386;Dels=0.00;FS=1.272;HaplotypeScore=0.1482;InbreedingCoeff=-0.0102;MLEAC=1;MLEAF=0.010;MQ=59.44;MQ0=0;MQRankSum=-0.214;QD=7.01;ReadPosRankSum=-1.629;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=FAM132A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000330388;VQSLOD=7.54;culprit=QD	GT:AD:DP:GQ:PL	0/0:21,0:21:63:0,63,721	0/0:23,0:23:69:0,6 [...]
+1	1179800	rs115586508	G	A	164.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=1.862;DB;DP=1304;Dels=0.00;FS=3.739;HaplotypeScore=0.3207;InbreedingCoeff=-0.0105;MLEAC=1;MLEAF=0.010;MQ=59.14;MQ0=0;MQRankSum=0.195;QD=10.95;ReadPosRankSum=0.915;SNPEFF_AMINO_ACID_CHANGE=G85;SNPEFF_CODON_CHANGE=ggC/ggT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1179761_1179877;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=FAM132A;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRI [...]
+1	1179887	.	C	T	769.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=3.251;DP=2822;Dels=0.00;FS=4.261;HaplotypeScore=0.3507;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.17;MQ0=0;MQRankSum=0.091;QD=10.39;ReadPosRankSum=0.804;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=FAM132A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000330388;VQSLOD=6.55;culprit=InbreedingCoeff	GT:AD:DP:GQ:PL	0/0:43,0:43:99:0,129,1438	0/0:36,0:36:99:0, [...]
+1	1190685	rs41303853	G	A	968.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=3.043;DB;DP=4078;Dels=0.00;FS=21.159;HaplotypeScore=0.0388;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.43;MQ0=0;MQRankSum=1.839;QD=13.08;ReadPosRankSum=-3.079;SNPEFF_AMINO_ACID_CHANGE=H174;SNPEFF_CODON_CHANGE=caC/caT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1189294_1190867;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=nonsense_mediated_decay;SNPEFF_GENE_NAME=UBE2J2;SNPEFF_IMPACT=LOW;SNPEFF_TRAN [...]
+1	1190772	rs142877043	G	A	853.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=2.344;DB;DP=4939;Dels=0.00;FS=2.044;HaplotypeScore=0.0383;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.96;MQ0=0;MQRankSum=1.323;QD=11.38;ReadPosRankSum=-4.114;SNPEFF_AMINO_ACID_CHANGE=L145;SNPEFF_CODON_CHANGE=ctC/ctT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1189294_1190867;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=nonsense_mediated_decay;SNPEFF_GENE_NAME=UBE2J2;SNPEFF_IMPACT=LOW;SNPEFF_TRAN [...]
+1	1190913	rs35025185	CT	C	5352.41	Indel_FS	AC=5;AF=0.050;AN=100;BaseQRankSum=-0.641;DB;DP=2103;FS=916.231;HaplotypeScore=3.2018;InbreedingCoeff=-0.0526;MLEAC=5;MLEAF=0.050;MQ=60.01;MQ0=0;MQRankSum=-0.789;QD=20.20;RPA=3,2;RU=T;ReadPosRankSum=-2.742;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=nonsense_mediated_decay;SNPEFF_GENE_NAME=UBE2J2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000422076;STR	GT:AD:DP:GQ:PL	0/0:58,0:58:99:0,175,2359	0/0:49,0:49:99:0, [...]
+1	1192515	rs7524470	A	G	4166.46	PASS	AC=5;AF=0.050;AN=100;BaseQRankSum=-0.197;DB;DP=4240;Dels=0.00;FS=0.393;HaplotypeScore=0.2293;InbreedingCoeff=-0.0526;MLEAC=5;MLEAF=0.050;MQ=58.70;MQ0=0;MQRankSum=3.687;QD=12.29;ReadPosRankSum=-4.441;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=nonsense_mediated_decay;SNPEFF_GENE_NAME=UBE2J2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000422076;VQSLOD=6.12;culprit=MQ	GT:AD:DP:GQ:PL	0/0:94,0:94:99:0,283,3396	0/0:87,0:8 [...]
+1	1203271	rs34496935	G	A	2883.12	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=8.615;DB;DP=6182;Dels=0.00;FS=1.371;HaplotypeScore=0.0772;InbreedingCoeff=-0.0309;MLEAC=3;MLEAF=0.030;MQ=59.40;MQ0=0;MQRankSum=1.327;QD=12.81;ReadPosRankSum=-2.692;SNPEFF_AMINO_ACID_CHANGE=A34;SNPEFF_CODON_CHANGE=gcC/gcT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1203242_1203372;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=nonsense_mediated_decay;SNPEFF_GENE_NAME=UBE2J2;SNPEFF_IMPACT=LOW;SNPEFF_TRANS [...]
+1	1203387	rs60981775	G	A	6133.20	PASS	AC=7;AF=0.070;AN=100;BaseQRankSum=-3.383;DB;DP=5980;Dels=0.00;FS=6.158;HaplotypeScore=0.6739;InbreedingCoeff=-0.0753;MLEAC=7;MLEAF=0.070;MQ=59.68;MQ0=0;MQRankSum=0.617;QD=12.70;ReadPosRankSum=-1.401;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=nonsense_mediated_decay;SNPEFF_GENE_NAME=UBE2J2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000347370;VQSLOD=5.98;culprit=InbreedingCoeff	GT:AD:DP:GQ:PL	0/0:127,0:127:99:0,382,447 [...]
+1	1219382	rs114582555	C	G	88.07	PASS	AC=1;AF=0.011;AN=90;BaseQRankSum=-0.452;DB;DP=190;Dels=0.00;FS=2.449;HaplotypeScore=0.1048;InbreedingCoeff=-0.0739;MLEAC=1;MLEAF=0.011;MQ=56.67;MQ0=0;MQRankSum=1.103;QD=12.58;ReadPosRankSum=-2.846;SNPEFF_AMINO_ACID_CHANGE=S29*;SNPEFF_CODON_CHANGE=tCa/tGa;SNPEFF_EFFECT=STOP_GAINED;SNPEFF_EXON_ID=exon_1_1219358_1219470;SNPEFF_FUNCTIONAL_CLASS=NONSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SCNN1D;SNPEFF_IMPACT=HIGH;SNPEFF_TRANSCRIPT_ID=ENST [...]
+1	1219477	.	T	G	36.11	VQSRTrancheSNP98.60to98.80	AC=6;AF=0.077;AN=78;BaseQRankSum=0.033;DP=101;Dels=0.00;FS=0.000;HaplotypeScore=0.2421;InbreedingCoeff=-0.0718;MLEAC=6;MLEAF=0.077;MQ=56.11;MQ0=0;MQRankSum=-1.583;QD=1.90;ReadPosRankSum=-1.911;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SCNN1D;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000325425;VQSLOD=0.678;culprit=QD	GT:AD:DP:GQ:PL	0/0:2,0:2:6:0,6,74	0/0:1,0:1:3:0,3,33	0/0: [...]
+1	1221302	rs113398060	A	G	106.79	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=1.035;DB;DP=328;Dels=0.00;FS=1.834;HaplotypeScore=0.1742;InbreedingCoeff=-0.0378;MLEAC=1;MLEAF=0.010;MQ=58.35;MQ0=0;MQRankSum=0.755;QD=11.87;ReadPosRankSum=-0.525;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SCNN1D;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000467651;VQSLOD=6.36;culprit=MQ	GT:AD:DP:GQ:PL	0/0:3,0:3:9:0,9,108	0/0:14,0:14:42:0,42,506	0/ [...]
+1	1222267	rs11260579	G	C	16654.33	PASS	AC=23;AF=0.230;AN=100;BaseQRankSum=10.931;DB;DP=2576;Dels=0.00;FS=17.053;HaplotypeScore=1.6904;InbreedingCoeff=0.3789;MLEAC=23;MLEAF=0.230;MQ=58.83;MQ0=0;MQRankSum=1.663;QD=19.23;ReadPosRankSum=-2.692;SNPEFF_AMINO_ACID_CHANGE=R180P;SNPEFF_CODON_CHANGE=cGc/cCc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1222148_1222355;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SCNN1D;SNPEFF_IMPACT=MODERATE;SNPE [...]
+1	1222598	rs74046669	C	T	707.32	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=2.110;DB;DP=679;Dels=0.00;FS=0.000;HaplotypeScore=0.4005;InbreedingCoeff=-0.0364;MLEAC=3;MLEAF=0.030;MQ=59.14;MQ0=0;MQRankSum=0.423;QD=13.60;ReadPosRankSum=-2.986;SNPEFF_AMINO_ACID_CHANGE=A246V;SNPEFF_CODON_CHANGE=gCg/gTg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1222489_1222679;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SCNN1D;SNPEFF_IMPACT=MODERATE;SNPEFF_TRA [...]
+1	1222690	rs115316182	C	T	149.71	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=0.632;DB;DP=486;Dels=0.00;FS=0.000;HaplotypeScore=0.7057;InbreedingCoeff=0.0582;MLEAC=2;MLEAF=0.020;MQ=58.09;MQ0=0;MQRankSum=1.446;QD=10.69;ReadPosRankSum=0.068;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SCNN1D;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000467651;VQSLOD=4.27;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/1:3,6:9:7:148,0,7	0/0:16,0:16:48:0 [...]
+1	1222695	rs910556	G	A,C	3136.58	PASS	AC=1,30;AF=0.010,0.306;AN=98;BaseQRankSum=-8.335;DB;DP=399;Dels=0.00;FS=3.725;HaplotypeScore=0.5375;InbreedingCoeff=0.3717;MLEAC=1,27;MLEAF=0.010,0.276;MQ=58.47;MQ0=0;MQRankSum=3.912;QD=16.77;ReadPosRankSum=0.033;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SCNN1D;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000467651;VQSLOD=3.00;culprit=MQ	GT:AD:DP:GQ:PL	0/0:10,0,0:10:30:0,30,356,30,3 [...]
+1	1222958	rs111819661	C	T	753.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=2.335;DB;DP=1554;Dels=0.00;FS=26.039;HaplotypeScore=0.5055;InbreedingCoeff=-0.0205;MLEAC=2;MLEAF=0.020;MQ=59.26;MQ0=0;MQRankSum=1.368;QD=13.70;ReadPosRankSum=-1.939;SNPEFF_AMINO_ACID_CHANGE=R297C;SNPEFF_CODON_CHANGE=Cgc/Tgc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1222888_1222976;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SCNN1D;SNPEFF_IMPACT=MODERATE;SNPEFF_ [...]
+1	1222979	.	G	C	537.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-5.388;DP=1361;Dels=0.00;FS=1.902;HaplotypeScore=1.6463;InbreedingCoeff=-0.0102;MLEAC=1;MLEAF=0.010;MQ=58.88;MQ0=0;MQRankSum=1.693;QD=9.26;ReadPosRankSum=1.479;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000353662;VQSLOD=2.96;culprit=MQ	GT:AD:DP:GQ:PL	0/0:21,0:21:57:0,57,671	0/0:24,0:24:66:0,66,819	0/0:19,0:19: [...]
+1	1223248	rs137916996	C	T	49.24	PASS	AC=1;AF=0.011;AN=94;BaseQRankSum=-2.383;DB;DP=183;Dels=0.00;FS=0.000;HaplotypeScore=0.0723;InbreedingCoeff=-0.0855;MLEAC=1;MLEAF=0.011;MQ=57.45;MQ0=0;MQRankSum=1.124;QD=9.85;ReadPosRankSum=-1.056;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000353662;VQSLOD=3.10;culprit=MQ	GT:AD:DP:GQ:PL	0/0:1,0:1:3:0,3,39	0/0:8,0:8:24:0,24,309	0/0:2,0: [...]
+1	1223385	rs75809000	G	C	747.24	PASS	AC=14;AF=0.194;AN=72;BaseQRankSum=1.485;DB;DP=108;Dels=0.00;FS=0.000;HaplotypeScore=0.1209;InbreedingCoeff=0.3797;MLEAC=14;MLEAF=0.194;MQ=56.31;MQ0=0;MQRankSum=0.767;QD=26.69;ReadPosRankSum=-1.386;SNPEFF_AMINO_ACID_CHANGE=E380Q;SNPEFF_CODON_CHANGE=Gag/Cag;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1223319_1223417;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SCNN1D;SNPEFF_IMPACT=MODERATE;SNPEFF_TRA [...]
+1	1223427	rs13306645	G	A	68.49	PASS	AC=2;AF=0.026;AN=76;BaseQRankSum=-0.709;DB;DP=108;Dels=0.00;FS=0.000;HaplotypeScore=0.1002;InbreedingCoeff=-0.1338;MLEAC=2;MLEAF=0.026;MQ=56.37;MQ0=0;MQRankSum=2.431;QD=7.61;ReadPosRankSum=0.174;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000353662;VQSLOD=4.18;culprit=MQ	GT:AD:DP:GQ:PL	0/0:1,0:1:3:0,3,39	0/0:1,0:1:3:0,3,40	0/0:3,0:3:9:0 [...]
+1	1223465	rs138693320	GC	G	330.34	PASS	AC=12;AF=0.231;AN=52;BaseQRankSum=2.497;DB;DP=51;FS=29.179;HaplotypeScore=1.6007;InbreedingCoeff=0.2611;MLEAC=11;MLEAF=0.212;MQ=55.58;MQ0=0;MQRankSum=1.366;QD=23.60;RPA=2,1;RU=C;ReadPosRankSum=-2.183;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000353662;STR	GT:AD:DP:GQ:PL	0/0:2,0:2:6:0,6,85	./.	0/0:2,0:2:6:0,6,85	./.	./.	./.	./.	0/0: [...]
+1	1225612	rs1570866	G	A	6059.79	PASS	AC=22;AF=0.220;AN=100;BaseQRankSum=6.651;DB;DP=1461;Dels=0.00;FS=5.069;HaplotypeScore=0.7979;InbreedingCoeff=-0.1657;MLEAC=22;MLEAF=0.220;MQ=57.31;MQ0=0;MQRankSum=4.309;QD=10.92;ReadPosRankSum=0.568;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000353662;VQSLOD=3.95;culprit=InbreedingCoeff	GT:AD:DP:GQ:PL	0/0:25,0:25:75:0,75,818	0/1:19,13 [...]
+1	1225641	rs2748384	C	A	30492.68	PASS	AC=46;AF=0.460;AN=100;BaseQRankSum=-16.000;DB;DP=1816;Dels=0.00;FS=1.320;HaplotypeScore=0.9545;InbreedingCoeff=0.3559;MLEAC=46;MLEAF=0.460;MQ=57.54;MQ0=0;MQRankSum=2.918;QD=24.41;ReadPosRankSum=-0.318;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000353662;VQSLOD=4.15;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:34,0:34:99:0,102,1287	0/1:2 [...]
+1	1225707	.	C	A	110.95	VQSRTrancheSNP99.50to99.90	AC=6;AF=0.060;AN=100;BaseQRankSum=-8.360;DP=1294;Dels=0.00;FS=275.202;HaplotypeScore=1.1456;InbreedingCoeff=-0.0635;MLEAC=4;MLEAF=0.040;MQ=56.84;MQ0=0;MQRankSum=2.351;QD=1.09;ReadPosRankSum=-8.895;SNPEFF_AMINO_ACID_CHANGE=Y409*;SNPEFF_CODON_CHANGE=taC/taA;SNPEFF_EFFECT=STOP_GAINED;SNPEFF_EXON_ID=exon_1_1225651_1225768;SNPEFF_FUNCTIONAL_CLASS=NONSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SCNN1D;SNPEFF_IMPACT=HIGH;SNPEFF_TRAN [...]
+1	1225725	rs151184625	G	A	527.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=0.880;DB;DP=1669;Dels=0.00;FS=3.113;HaplotypeScore=0.4579;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=57.28;MQ0=0;MQRankSum=0.845;QD=11.46;ReadPosRankSum=0.511;SNPEFF_AMINO_ACID_CHANGE=P415;SNPEFF_CODON_CHANGE=ccG/ccA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1225651_1225768;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SCNN1D;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID= [...]
+1	1225807	.	A	C	897.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=3.597;DP=3314;Dels=0.00;FS=0.000;HaplotypeScore=2.0294;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=58.33;MQ0=0;MQRankSum=1.643;QD=13.80;ReadPosRankSum=1.391;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000353662;VQSLOD=2.55;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/1:31,33:63:99:937,0,901	0/0:60,0:60:99:0,181,2 [...]
+1	1225810	rs5772040	C	CGG	2418.41	PASS	AC=5;AF=0.050;AN=100;BaseQRankSum=1.280;DB;DP=3310;FS=129.611;HaplotypeScore=12.4007;InbreedingCoeff=-0.0526;MLEAC=5;MLEAF=0.050;MQ=58.52;MQ0=0;MQRankSum=1.895;QD=8.23;RPA=6,8;RU=G;ReadPosRankSum=-4.470;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000353662;STR	GT:AD:DP:GQ:PL	0/0:59,0:65:99:0,178,2647	0/0:61,0:61:99:0,184,2759	0/0:53, [...]
+1	1225824	rs115732504	G	A	772.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=2.797;DB;DP=3467;Dels=0.00;FS=2.828;HaplotypeScore=0.5985;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=58.77;MQ0=0;MQRankSum=-2.151;QD=6.83;ReadPosRankSum=-3.265;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000353662;VQSLOD=3.71;culprit=MQ	GT:AD:DP:GQ:PL	0/0:74,0:74:99:0,210,2233	0/0:69,0:69:99:0,208 [...]
+1	1225945	rs79772714	G	C	3977.47	PASS	AC=6;AF=0.060;AN=100;BaseQRankSum=-5.335;DB;DP=2857;Dels=0.00;FS=51.712;HaplotypeScore=0.7129;InbreedingCoeff=-0.0638;MLEAC=6;MLEAF=0.060;MQ=58.95;MQ0=0;MQRankSum=-0.285;QD=12.28;ReadPosRankSum=-1.738;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000353662;VQSLOD=0.996;culprit=FS	GT:AD:DP:GQ:PL	0/0:66,0:66:99:0,199,2441	0/0:67,0:67:99:0 [...]
+1	1225959	rs1570867	C	G	49652.70	VQSRTrancheSNP98.80to98.90	AC=54;AF=0.540;AN=100;BaseQRankSum=11.168;DB;DP=2689;Dels=0.00;FS=82.204;HaplotypeScore=1.0724;InbreedingCoeff=0.2754;MLEAC=54;MLEAF=0.540;MQ=59.08;MQ0=0;MQRankSum=-1.083;QD=25.79;ReadPosRankSum=0.236;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000353662;VQSLOD=0.223;culprit=FS	GT:AD:DP:GQ:PL	0/0:57,0:57:99:0,171 [...]
+1	1225986	rs13306650	G	A	428.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=1.569;DB;DP=2962;Dels=0.00;FS=8.714;HaplotypeScore=1.6241;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=58.99;MQ0=0;MQRankSum=1.163;QD=7.65;ReadPosRankSum=-0.086;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000353662;VQSLOD=3.20;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:52,0:52:99:0,156,1739	0/0:63,0:6 [...]
+1	1225991	rs115582722	A	G	386.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-4.565;DB;DP=2998;Dels=0.00;FS=0.000;HaplotypeScore=1.8031;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.04;MQ0=0;MQRankSum=1.252;QD=8.98;ReadPosRankSum=-2.537;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000353662;VQSLOD=2.98;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:50,0:50:99:0,150,1806	0/0:62,0 [...]
+1	1226102	rs2273274	G	A	12467.30	PASS	AC=24;AF=0.240;AN=100;BaseQRankSum=-11.211;DB;DP=1601;Dels=0.00;FS=0.000;HaplotypeScore=0.7788;InbreedingCoeff=0.2324;MLEAC=24;MLEAF=0.240;MQ=59.02;MQ0=0;MQRankSum=1.892;QD=18.39;ReadPosRankSum=-0.153;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000353662;VQSLOD=5.06;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:35,0:35:99:0,105,1234	0/0:3 [...]
+1	1226231	rs13306638	G	A	1030.27	PASS	AC=8;AF=0.080;AN=100;BaseQRankSum=-5.950;DB;DP=563;Dels=0.00;FS=1.368;HaplotypeScore=1.9117;InbreedingCoeff=-0.0955;MLEAC=8;MLEAF=0.080;MQ=58.43;MQ0=0;MQRankSum=2.423;QD=10.30;ReadPosRankSum=-0.588;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000353662;VQSLOD=4.10;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:17,0:17:51:0,51,632	0/0:21,0:2 [...]
+1	1226233	rs113099499	G	A	532.74	PASS	AC=4;AF=0.040;AN=100;BaseQRankSum=-4.137;DB;DP=559;Dels=0.00;FS=0.000;HaplotypeScore=1.1002;InbreedingCoeff=-0.0515;MLEAC=4;MLEAF=0.040;MQ=58.42;MQ0=0;MQRankSum=2.019;QD=10.05;ReadPosRankSum=0.211;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000353662;VQSLOD=3.81;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:15,0:15:45:0,45,541	0/0:20,0:20 [...]
+1	1226267	rs13306640	G	A	890.18	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=2.523;DB;DP=722;Dels=0.00;FS=2.445;HaplotypeScore=0.5283;InbreedingCoeff=-0.0328;MLEAC=3;MLEAF=0.030;MQ=58.96;MQ0=0;MQRankSum=-0.552;QD=12.36;ReadPosRankSum=-0.873;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000353662;VQSLOD=7.06;culprit=MQ	GT:AD:DP:GQ:PL	0/0:13,0:13:39:0,39,440	0/0:24,0:24:72:0,72,828 [...]
+1	1226292	rs2273276	G	A	2155.27	PASS	AC=13;AF=0.130;AN=100;BaseQRankSum=2.053;DB;DP=575;Dels=0.00;FS=1.302;HaplotypeScore=0.4650;InbreedingCoeff=0.5299;MLEAC=13;MLEAF=0.130;MQ=59.05;MQ0=0;MQRankSum=0.725;QD=21.99;ReadPosRankSum=-1.288;SNPEFF_AMINO_ACID_CHANGE=T481;SNPEFF_CODON_CHANGE=acG/acA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1226275_1226333;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SCNN1D;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID= [...]
+1	1226307	.	G	C	64.13	VQSRTrancheSNP99.50to99.90	AC=11;AF=0.110;AN=100;BaseQRankSum=-10.181;DP=627;Dels=0.00;FS=242.902;HaplotypeScore=0.5136;InbreedingCoeff=-0.1322;MLEAC=9;MLEAF=0.090;MQ=59.27;MQ0=0;MQRankSum=0.459;QD=0.59;ReadPosRankSum=-0.392;SNPEFF_AMINO_ACID_CHANGE=G486;SNPEFF_CODON_CHANGE=ggG/ggC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1226275_1226333;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SCNN1D;SNPEFF_IMPACT=LOW;SNPEFF_TR [...]
+1	1226348	rs586965	C	G	8426.55	PASS	AC=49;AF=0.490;AN=100;BaseQRankSum=-4.884;DB;DP=534;Dels=0.00;FS=1.745;HaplotypeScore=0.9320;InbreedingCoeff=0.2932;MLEAC=49;MLEAF=0.490;MQ=59.15;MQ0=0;MQRankSum=-0.320;QD=23.34;ReadPosRankSum=0.426;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000353662;VQSLOD=4.54;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:9,0:9:24:0,24,301	0/1:7,8:15:99 [...]
+1	1226350	rs114416421	C	T	630.48	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=-3.227;DB;DP=560;Dels=0.00;FS=4.583;HaplotypeScore=0.9048;InbreedingCoeff=-0.0405;MLEAC=3;MLEAF=0.030;MQ=59.23;MQ0=0;MQRankSum=0.413;QD=14.33;ReadPosRankSum=-0.306;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000353662;VQSLOD=6.75;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:10,0:10:30:0,30,359	0/0:15,0:1 [...]
+1	1226418	.	C	T	62.24	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.875;DP=717;Dels=0.00;FS=0.000;HaplotypeScore=0.5164;InbreedingCoeff=-0.0137;MLEAC=1;MLEAF=0.010;MQ=59.29;MQ0=0;MQRankSum=0.353;QD=4.79;ReadPosRankSum=0.601;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000353662;VQSLOD=4.04;culprit=QD	GT:AD:DP:GQ:PL	0/0:8,0:8:21:0,21,257	0/0:5,0:5:15:0,15,176	0/0:10,0:10:27:0,2 [...]
+1	1226419	.	G	A	51.22	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=2.129;DP=749;Dels=0.00;FS=2.886;HaplotypeScore=0.4541;InbreedingCoeff=-0.0124;MLEAC=1;MLEAF=0.010;MQ=59.24;MQ0=0;MQRankSum=1.689;QD=7.32;ReadPosRankSum=0.289;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000353662;VQSLOD=5.03;culprit=QD	GT:AD:DP:GQ:PL	0/0:8,0:8:21:0,21,219	0/0:5,0:5:15:0,15,158	0/0:10,0:10:24:0,24 [...]
+1	1226423	rs12743218	T	C	257	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=2.120;DB;DP=799;Dels=0.00;FS=0.000;HaplotypeScore=0.4344;InbreedingCoeff=0.6171;MLEAC=2;MLEAF=0.020;MQ=59.30;MQ0=0;MQRankSum=0.135;QD=16.06;ReadPosRankSum=1.529;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000353662;VQSLOD=4.24;culprit=FS	GT:AD:DP:GQ:PL	0/0:9,0:9:24:0,24,300	0/0:8,0:8:24:0,24,296	0/0:10,0: [...]
+1	1226508	.	G	A	197.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.528;DP=1042;Dels=0.00;FS=3.316;HaplotypeScore=0.5013;InbreedingCoeff=-0.0104;MLEAC=1;MLEAF=0.010;MQ=59.75;MQ0=0;MQRankSum=0.292;QD=10.95;ReadPosRankSum=-1.764;SNPEFF_AMINO_ACID_CHANGE=A516;SNPEFF_CODON_CHANGE=gcG/gcA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1226445_1226520;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SCNN1D;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST0000033 [...]
+1	1226512	rs114257304	G	A	106.84	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-0.900;DB;DP=986;Dels=0.00;FS=0.000;HaplotypeScore=0.5586;InbreedingCoeff=-0.0187;MLEAC=1;MLEAF=0.010;MQ=59.69;MQ0=0;MQRankSum=-0.130;QD=5.09;ReadPosRankSum=-0.081;SNPEFF_AMINO_ACID_CHANGE=V518M;SNPEFF_CODON_CHANGE=Gtg/Atg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1226445_1226520;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SCNN1D;SNPEFF_IMPACT=MODERATE;SNPEFF_T [...]
+1	1226690	rs114720027	C	T	351.49	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=0.773;DB;DP=550;Dels=0.00;FS=4.262;HaplotypeScore=0.1621;InbreedingCoeff=-0.0295;MLEAC=2;MLEAF=0.020;MQ=58.87;MQ0=0;MQRankSum=1.640;QD=11.34;ReadPosRankSum=-1.568;SNPEFF_AMINO_ACID_CHANGE=S539;SNPEFF_CODON_CHANGE=tcC/tcT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1226634_1227404;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SCNN1D;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID= [...]
+1	1226757	rs6690013	G	A	1749.79	PASS	AC=15;AF=0.150;AN=100;BaseQRankSum=1.042;DB;DP=619;Dels=0.00;FS=12.041;HaplotypeScore=0.3167;InbreedingCoeff=-0.0313;MLEAC=15;MLEAF=0.150;MQ=58.25;MQ0=0;MQRankSum=-0.068;QD=11.82;ReadPosRankSum=-2.367;SNPEFF_AMINO_ACID_CHANGE=G562S;SNPEFF_CODON_CHANGE=Ggc/Agc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1226634_1227404;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SCNN1D;SNPEFF_IMPACT=MODERATE;SNPEFF [...]
+1	1226851	rs61730205	C	T	630.15	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=-1.472;DB;DP=1013;Dels=0.00;FS=0.834;HaplotypeScore=0.3216;InbreedingCoeff=0.0159;MLEAC=3;MLEAF=0.030;MQ=59.07;MQ0=0;MQRankSum=-0.293;QD=13.70;ReadPosRankSum=-0.829;SNPEFF_AMINO_ACID_CHANGE=P593L;SNPEFF_CODON_CHANGE=cCg/cTg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1226634_1227404;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SCNN1D;SNPEFF_IMPACT=MODERATE;SNPEFF_T [...]
+1	1226889	rs609805	G	A	5555.09	PASS	AC=16;AF=0.160;AN=100;BaseQRankSum=5.838;DB;DP=1216;Dels=0.00;FS=0.359;HaplotypeScore=0.4783;InbreedingCoeff=0.1058;MLEAC=16;MLEAF=0.160;MQ=59.16;MQ0=0;MQRankSum=0.413;QD=16.63;ReadPosRankSum=-2.001;SNPEFF_AMINO_ACID_CHANGE=G606R;SNPEFF_CODON_CHANGE=Ggg/Agg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1226634_1227404;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SCNN1D;SNPEFF_IMPACT=MODERATE;SNPEFF_TR [...]
+1	1226971	rs75670559	T	C	828.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=4.484;DB;DP=1649;Dels=0.00;FS=7.459;HaplotypeScore=0.3037;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=59.38;MQ0=0;MQRankSum=1.277;QD=13.80;ReadPosRankSum=-1.432;SNPEFF_AMINO_ACID_CHANGE=L633P;SNPEFF_CODON_CHANGE=cTt/cCt;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1226634_1227404;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SCNN1D;SNPEFF_IMPACT=MODERATE;SNPEFF_TR [...]
+1	1229114	rs2281459	C	A	180.39	PASS	AC=5;AF=0.096;AN=52;BaseQRankSum=-2.513;DB;DP=71;Dels=0.00;FS=8.922;HaplotypeScore=0.2838;InbreedingCoeff=-0.0121;MLEAC=6;MLEAF=0.115;MQ=54.10;MQ0=3;MQRankSum=0.100;QD=9.02;ReadPosRankSum=-0.963;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000379037;VQSLOD=2.04;culprit=MQ	GT:AD:DP:GQ:PL	./.	0/0:1,0:1:3:0,3,39	0/0:2,0:2:6:0,6,80	./.	0/0:4 [...]
+1	1229538	rs148138514	C	T	49.97	PASS	AC=1;AF=0.010;AN=98;BaseQRankSum=0.185;DB;DP=337;Dels=0.00;FS=0.000;HaplotypeScore=0.1842;InbreedingCoeff=-0.0432;MLEAC=1;MLEAF=0.010;MQ=59.00;MQ0=0;MQRankSum=1.305;QD=6.25;ReadPosRankSum=-1.135;SNPEFF_AMINO_ACID_CHANGE=A652;SNPEFF_CODON_CHANGE=gcG/gcA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1229470_1229579;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST [...]
+1	1229770	rs6669227	T	C	344.92	PASS	AC=3;AF=0.032;AN=94;BaseQRankSum=0.348;DB;DP=230;Dels=0.00;FS=1.761;HaplotypeScore=0.2132;InbreedingCoeff=0.2016;MLEAC=3;MLEAF=0.032;MQ=58.68;MQ0=0;MQRankSum=1.304;QD=24.64;ReadPosRankSum=-1.017;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000379037;VQSLOD=5.97;culprit=MQ	GT:AD:DP:GQ:PL	0/0:7,0:7:21:0,21,240	0/0:8,0:8:24:0,24,282	0/0:2,0 [...]
+1	1231334	rs74045416	A	G	2239.12	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=5.291;DB;DP=2958;Dels=0.00;FS=0.000;HaplotypeScore=0.0581;InbreedingCoeff=-0.0309;MLEAC=3;MLEAF=0.030;MQ=59.33;MQ0=0;MQRankSum=1.917;QD=16.23;ReadPosRankSum=-3.308;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000354980;VQSLOD=6.95;culprit=FS	GT:AD:DP:GQ:PL	0/0:59,0:59:99:0,178,2080	0/0:49,0:49:99:0,147 [...]
+1	1231507	rs619608	G	A	4389.09	PASS	AC=17;AF=0.170;AN=100;BaseQRankSum=-8.367;DB;DP=1068;Dels=0.00;FS=12.775;HaplotypeScore=0.2660;InbreedingCoeff=0.0786;MLEAC=17;MLEAF=0.170;MQ=59.65;MQ0=0;MQRankSum=0.732;QD=15.13;ReadPosRankSum=-3.131;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000354980;VQSLOD=5.72;culprit=FS	GT:AD:DP:GQ:PL	0/0:21,0:21:63:0,63,759	0/1:7,7:14:99:222,0,1 [...]
+1	1231587	rs139600717	G	A	236.35	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=-1.876;DB;DP=427;Dels=0.00;FS=3.324;HaplotypeScore=0.1459;InbreedingCoeff=-0.0480;MLEAC=3;MLEAF=0.030;MQ=59.04;MQ0=0;MQRankSum=2.214;QD=8.15;ReadPosRankSum=-1.338;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000354980;VQSLOD=6.23;culprit=QD	GT:AD:DP:GQ:PL	0/0:8,0:8:24:0,24,289	0/0:9,0:9:27:0,27,312	0/0 [...]
+1	1231656	rs1749951	G	A	748.97	PASS	AC=8;AF=0.083;AN=96;BaseQRankSum=-0.808;DB;DP=271;Dels=0.00;FS=0.000;HaplotypeScore=0.1307;InbreedingCoeff=0.0346;MLEAC=7;MLEAF=0.073;MQ=58.76;MQ0=0;MQRankSum=-0.489;QD=14.69;ReadPosRankSum=-2.196;SNPEFF_AMINO_ACID_CHANGE=L406;SNPEFF_CODON_CHANGE=Ctg/Ttg;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1231591_1231660;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENS [...]
+1	1233332	rs111910661	C	T	236.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=1.292;DB;DP=922;Dels=0.00;FS=0.000;HaplotypeScore=0.2175;InbreedingCoeff=-0.0107;MLEAC=1;MLEAF=0.010;MQ=57.62;MQ0=0;MQRankSum=1.205;QD=11.25;ReadPosRankSum=-0.589;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000354980;VQSLOD=3.68;culprit=MQ	GT:AD:DP:GQ:PL	0/0:15,0:15:42:0,42,442	0/0:16,0:16:48:0,48,520 [...]
+1	1233431	rs72896223	G	A	526.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=0.918;DB;DP=1116;Dels=0.00;FS=0.000;HaplotypeScore=0.2622;InbreedingCoeff=-0.0105;MLEAC=1;MLEAF=0.010;MQ=59.01;MQ0=0;MQRankSum=1.370;QD=11.69;ReadPosRankSum=-0.414;SNPEFF_AMINO_ACID_CHANGE=I284;SNPEFF_CODON_CHANGE=atC/atT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1233393_1233493;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=E [...]
+1	1233912	.	A	G	321.40	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=2.955;DP=656;Dels=0.00;FS=9.470;HaplotypeScore=0.4190;InbreedingCoeff=-0.0204;MLEAC=1;MLEAF=0.010;MQ=59.01;MQ0=0;MQRankSum=0.788;QD=11.08;ReadPosRankSum=-0.829;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000354980;VQSLOD=6.00;culprit=MQ	GT:AD:DP:GQ:PL	0/0:12,0:12:36:0,36,412	0/0:10,0:10:30:0,30,354	0/0:11,0:11: [...]
+1	1233921	.	G	A	573.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=1.298;DP=1114;Dels=0.00;FS=7.313;HaplotypeScore=0.4787;InbreedingCoeff=-0.0105;MLEAC=1;MLEAF=0.010;MQ=58.92;MQ0=0;MQRankSum=-0.852;QD=12.46;ReadPosRankSum=-1.628;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000354980;VQSLOD=5.37;culprit=MQ	GT:AD:DP:GQ:PL	0/0:21,0:21:63:0,63,663	0/0:19,0:19:57:0,57,606	0/0:13,0:1 [...]
+1	1233941	rs1739855	T	C	37046.38	PASS	AC=44;AF=0.440;AN=100;BaseQRankSum=6.371;DB;DP=2355;Dels=0.00;FS=1.559;HaplotypeScore=0.9307;InbreedingCoeff=0.4318;MLEAC=44;MLEAF=0.440;MQ=59.11;MQ0=0;MQRankSum=-1.651;QD=26.48;ReadPosRankSum=-0.024;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000354980;VQSLOD=4.50;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:50,0:50:99:0,150,1849	0/1:20 [...]
+1	1233955	rs140458556	T	A	260.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=1.302;DB;DP=3190;Dels=0.00;FS=0.000;HaplotypeScore=0.8920;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.12;MQ0=0;MQRankSum=0.256;QD=9.29;ReadPosRankSum=0.208;SNPEFF_AMINO_ACID_CHANGE=T243;SNPEFF_CODON_CHANGE=acA/acT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1233947_1234059;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=EN [...]
+1	1234762	rs143899579	AG	A	1858.62	PASS	AC=18;AF=0.180;AN=100;BaseQRankSum=-1.186;DB;DP=401;FS=73.267;HaplotypeScore=3.2309;InbreedingCoeff=0.1907;MLEAC=16;MLEAF=0.160;MQ=59.58;MQ0=0;MQRankSum=0.302;QD=15.89;RPA=5,4;RU=G;ReadPosRankSum=-1.551;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000354980;STR	GT:AD:DP:GQ:PL	0/0:9,0:10:27:0,27,336	0/1:1,5:6:19:174,0,19	0/0:8,0:8:24: [...]
+1	1235511	rs144299532	G	C	926.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=0.054;DB;DP=2389;Dels=0.00;FS=14.956;HaplotypeScore=0.2037;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=58.61;MQ0=0;MQRankSum=1.171;QD=11.87;ReadPosRankSum=-2.547;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000354980;VQSLOD=6.44;culprit=MQ	GT:AD:DP:GQ:PL	0/0:41,0:41:99:0,123,1516	0/0:43,0:43:99:0,12 [...]
+1	1235604	rs75245886	G	A	82.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.801;DB;DP=1222;Dels=0.00;FS=0.000;HaplotypeScore=0.3318;InbreedingCoeff=-0.0102;MLEAC=1;MLEAF=0.010;MQ=59.09;MQ0=0;MQRankSum=0.009;QD=8.22;ReadPosRankSum=-1.114;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000354980;VQSLOD=7.52;culprit=FS	GT:AD:DP:GQ:PL	0/0:24,0:24:72:0,72,887	0/0:20,0:20:60:0,60,765	 [...]
+1	1235845	rs60785581	C	T	1897.26	PASS	AC=4;AF=0.040;AN=100;BaseQRankSum=-2.520;DB;DP=1321;Dels=0.00;FS=0.877;HaplotypeScore=0.4379;InbreedingCoeff=0.4784;MLEAC=4;MLEAF=0.040;MQ=59.37;MQ0=0;MQRankSum=-0.404;QD=20.85;ReadPosRankSum=1.724;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000354980;VQSLOD=5.67;culprit=FS	GT:AD:DP:GQ:PL	0/0:26,0:26:78:0,78,939	0/0:17,0:17:48:0,48,61 [...]
+1	1238492	rs12408158	G	A	1233.58	PASS	AC=13;AF=0.133;AN=98;BaseQRankSum=2.281;DB;DP=298;Dels=0.00;FS=5.926;HaplotypeScore=0.2458;InbreedingCoeff=0.0952;MLEAC=13;MLEAF=0.133;MQ=58.74;MQ0=0;MQRankSum=1.026;QD=18.14;ReadPosRankSum=-0.045;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000438966;VQSLOD=6.24;culprit=MQ	GT:AD:DP:GQ:PL	0/0:6,0:6:18:0,18,184	0/0:9,0:9:27:0,27,315	0/0 [...]
+1	1238583	rs145087137	G	A	163.28	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=0.803;DB;DP=594;Dels=0.00;FS=9.862;HaplotypeScore=0.5034;InbreedingCoeff=-0.0156;MLEAC=1;MLEAF=0.010;MQ=59.18;MQ0=0;MQRankSum=0.540;QD=9.60;ReadPosRankSum=-0.464;SNPEFF_AMINO_ACID_CHANGE=R20C;SNPEFF_CODON_CHANGE=Cgc/Tgc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1238542_1238661;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ACAP3;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANS [...]
+1	1244627	.	C	T	178.75	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.223;DP=364;Dels=0.00;FS=8.500;HaplotypeScore=0.4031;InbreedingCoeff=-0.0379;MLEAC=1;MLEAF=0.010;MQ=58.29;MQ0=0;MQRankSum=1.785;QD=11.17;ReadPosRankSum=-0.175;SNPEFF_AMINO_ACID_CHANGE=N99;SNPEFF_CODON_CHANGE=aaC/aaT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1244466_1244653;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PUSL1;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST0000037903 [...]
+1	1244638	rs12094447	G	A	430.65	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=0.278;DB;DP=351;Dels=0.00;FS=0.000;HaplotypeScore=0.2510;InbreedingCoeff=-0.0648;MLEAC=3;MLEAF=0.030;MQ=58.49;MQ0=0;MQRankSum=1.055;QD=13.46;ReadPosRankSum=-0.559;SNPEFF_AMINO_ACID_CHANGE=R103Q;SNPEFF_CODON_CHANGE=cGg/cAg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1244466_1244653;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PUSL1;SNPEFF_IMPACT=MODERATE;SNPEFF_TRAN [...]
+1	1244924	.	T	G	44.87	VQSRTrancheSNP99.50to99.90	AC=9;AF=0.090;AN=100;BaseQRankSum=-4.592;DP=358;Dels=0.00;FS=87.843;HaplotypeScore=0.4217;InbreedingCoeff=-0.1319;MLEAC=8;MLEAF=0.080;MQ=58.51;MQ0=0;MQRankSum=2.155;QD=0.79;ReadPosRankSum=-3.434;SNPEFF_AMINO_ACID_CHANGE=C138W;SNPEFF_CODON_CHANGE=tgT/tgG;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1244834_1244983;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PUSL1;SNPEFF_IMPACT=MODERATE;S [...]
+1	1245176	rs34738574	C	T	389.27	PASS	AC=4;AF=0.044;AN=90;BaseQRankSum=0.969;DB;DP=196;Dels=0.00;FS=3.010;HaplotypeScore=0.1265;InbreedingCoeff=0.1584;MLEAC=4;MLEAF=0.044;MQ=57.81;MQ0=0;MQRankSum=0.817;QD=16.92;ReadPosRankSum=-3.533;SNPEFF_AMINO_ACID_CHANGE=R197W;SNPEFF_CODON_CHANGE=Cgg/Tgg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1245061_1245231;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PUSL1;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSC [...]
+1	1246004	rs2296474	A	G	228650.47	PASS	AC=94;AF=0.940;AN=100;BaseQRankSum=13.172;DB;DP=6275;Dels=0.00;FS=1.095;HaplotypeScore=0.3126;InbreedingCoeff=-0.0638;MLEAC=94;MLEAF=0.940;MQ=59.31;MQ0=0;MQRankSum=-2.817;QD=36.44;ReadPosRankSum=2.787;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=CPSF3L;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000294579;VQSLOD=4.22;culprit=MQRankSum	GT:AD:DP:GQ:PL	1/1:0,127:127:99:4800,382,0	0/1:4 [...]
+1	1246256	rs142589758	CGGCTCTGGGTCACAGGT	C	722.20	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-0.990;DB;DP=4535;FS=184.849;HaplotypeScore=32.8539;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=49.49;MQ0=0;MQRankSum=2.223;QD=6.17;RPA=2,1;RU=GGCTCTGGGTCACAGGT;ReadPosRankSum=-3.495;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=CPSF3L;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000294579;STR	GT:AD:DP:GQ:PL	0/1:29,8:46:99:295,0,449 [...]
+1	1246303	rs41285824	G	A	2870.12	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=0.171;DB;DP=5086;Dels=0.00;FS=4.676;HaplotypeScore=0.7060;InbreedingCoeff=-0.0309;MLEAC=3;MLEAF=0.030;MQ=50.88;MQ0=9;MQRankSum=5.683;QD=14.42;ReadPosRankSum=0.472;SNPEFF_AMINO_ACID_CHANGE=T238;SNPEFF_CODON_CHANGE=acG/acA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1246289_1246451;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PUSL1;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=E [...]
+1	1246438	rs115163464	G	A	839.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-5.161;DB;DP=4467;Dels=0.00;FS=0.000;HaplotypeScore=0.7353;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=57.21;MQ0=0;MQRankSum=3.392;QD=11.50;ReadPosRankSum=-1.923;SNPEFF_AMINO_ACID_CHANGE=L283;SNPEFF_CODON_CHANGE=ctG/ctA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1246289_1246451;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PUSL1;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID [...]
+1	1246444	.	G	T	618.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-6.051;DP=4216;Dels=0.00;FS=2.053;HaplotypeScore=0.8977;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=57.39;MQ0=0;MQRankSum=1.516;QD=8.47;ReadPosRankSum=-5.360;SNPEFF_AMINO_ACID_CHANGE=G285;SNPEFF_CODON_CHANGE=ggG/ggT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1246289_1246451;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PUSL1;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST000003790 [...]
+1	1246484	rs112356049	T	C	2099.28	PASS	AC=4;AF=0.040;AN=100;BaseQRankSum=-8.047;DB;DP=2127;Dels=0.00;FS=0.653;HaplotypeScore=1.9599;InbreedingCoeff=-0.0417;MLEAC=4;MLEAF=0.040;MQ=57.79;MQ0=0;MQRankSum=0.814;QD=11.79;ReadPosRankSum=-2.848;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=CPSF3L;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000294579;VQSLOD=3.86;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:42,0:42:99:0,126,1517	0/0: [...]
+1	1246487	rs78028248	G	A	1800.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-10.302;DB;DP=2023;Dels=0.00;FS=3.829;HaplotypeScore=1.9729;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=57.79;MQ0=0;MQRankSum=4.543;QD=15.79;ReadPosRankSum=-4.889;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=CPSF3L;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000294579;VQSLOD=3.43;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:42,0:42:99:0,126,1553	0/0: [...]
+1	1247494	rs12103	T	C	3788.14	PASS	AC=40;AF=0.400;AN=100;BaseQRankSum=-4.750;DB;DP=494;Dels=0.00;FS=4.386;HaplotypeScore=0.1702;InbreedingCoeff=0.3632;MLEAC=39;MLEAF=0.390;MQ=58.72;MQ0=0;MQRankSum=-0.625;QD=16.76;ReadPosRankSum=-0.103;SNPEFF_AMINO_ACID_CHANGE=P349;SNPEFF_CODON_CHANGE=ccA/ccG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1247398_1247527;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=CPSF3L;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID [...]
+1	1247555	rs113412865	C	T	508.19	PASS	AC=5;AF=0.051;AN=98;BaseQRankSum=-2.750;DB;DP=248;Dels=0.00;FS=6.263;HaplotypeScore=0.3093;InbreedingCoeff=0.0758;MLEAC=4;MLEAF=0.041;MQ=59.17;MQ0=0;MQRankSum=1.717;QD=12.10;ReadPosRankSum=0.257;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=CPSF3L;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000430786;VQSLOD=5.92;culprit=MQRankSum	GT:AD:DP:GQ:PL	0/0:5,0:5:15:0,15,185	0/0:6,0:6:18:0,18, [...]
+1	1247578	rs70949570	TG	TGGGGGG,T	530.77	PASS	AC=11,9;AF=0.212,0.173;AN=52;BaseQRankSum=-1.410;DB;DP=140;FS=0.000;HaplotypeScore=3.7797;InbreedingCoeff=0.5288;MLEAC=9,9;MLEAF=0.173,0.173;MQ=57.47;MQ0=0;MQRankSum=0.902;QD=7.58;RPA=10,15,9;RU=G;ReadPosRankSum=-0.754;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=CPSF3L;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000430786;STR	GT:AD:DP:GQ:PL	./.	1/2:0,1,3:6:19:103,84,154,26,0 [...]
+1	1249187	rs12142199	G	A	48424.78	PASS	AC=39;AF=0.390;AN=100;BaseQRankSum=5.699;DB;DP=4320;Dels=0.00;FS=2.858;HaplotypeScore=0.4817;InbreedingCoeff=0.3695;MLEAC=39;MLEAF=0.390;MQ=59.47;MQ0=0;MQRankSum=-0.066;QD=24.06;ReadPosRankSum=0.317;SNPEFF_AMINO_ACID_CHANGE=F187;SNPEFF_CODON_CHANGE=ttC/ttT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1249112_1249301;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=CPSF3L;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT [...]
+1	1250228	rs2296473	G	A	4417.23	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-0.086;DB;DP=2966;Dels=0.00;FS=0.000;HaplotypeScore=0.0499;InbreedingCoeff=1.0000;MLEAC=2;MLEAF=0.020;MQ=59.70;MQ0=0;MQRankSum=0.450;QD=34.78;ReadPosRankSum=1.636;SNPEFF_AMINO_ACID_CHANGE=H102;SNPEFF_CODON_CHANGE=caC/caT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1250207_1250342;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=CPSF3L;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID= [...]
+1	1250318	rs12095333	G	A	2382.28	PASS	AC=4;AF=0.040;AN=100;BaseQRankSum=-10.612;DB;DP=2544;Dels=0.00;FS=6.334;HaplotypeScore=0.3067;InbreedingCoeff=-0.0417;MLEAC=4;MLEAF=0.040;MQ=59.58;MQ0=0;MQRankSum=-0.572;QD=12.74;ReadPosRankSum=-1.631;SNPEFF_AMINO_ACID_CHANGE=R167;SNPEFF_CODON_CHANGE=cgC/cgT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1250204_1250342;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=CPSF3L;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIP [...]
+1	1250957	rs34054191	G	A	787.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.274;DB;DP=3028;Dels=0.00;FS=5.938;HaplotypeScore=0.1910;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.89;MQ0=0;MQRankSum=-0.727;QD=11.41;ReadPosRankSum=0.555;SNPEFF_AMINO_ACID_CHANGE=H128;SNPEFF_CODON_CHANGE=caC/caT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1250900_1250998;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=CPSF3L;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_I [...]
+1	1254841	rs10907179	C	G	111191.07	PASS	AC=69;AF=0.690;AN=100;BaseQRankSum=-3.024;DB;DP=4492;Dels=0.00;FS=3.636;HaplotypeScore=0.5490;InbreedingCoeff=0.4857;MLEAC=69;MLEAF=0.690;MQ=59.38;MQ0=0;MQRankSum=0.691;QD=31.88;ReadPosRankSum=-1.030;SNPEFF_AMINO_ACID_CHANGE=G100;SNPEFF_CODON_CHANGE=ggG/ggC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1254713_1254904;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=CPSF3L;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRI [...]
+1	1256507	.	G	GC	647.13	Indel_FS	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.999;DP=1861;FS=218.924;HaplotypeScore=1.7167;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.32;MQ0=0;MQRankSum=-0.191;QD=11.16;RPA=6,7;RU=C;ReadPosRankSum=-2.162;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=CPSF3L;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000530233;STR	GT:AD:DP:GQ:PL	0/0:26,0:26:78:0,78,916	0/0:24,0:24:72:0,72,846	0/0:34,0:34:99:0 [...]
+1	1262276	rs113667133	C	T	3467.10	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=2.521;DB;DP=2831;Dels=0.00;FS=4.811;HaplotypeScore=0.0710;InbreedingCoeff=0.6564;MLEAC=3;MLEAF=0.030;MQ=59.62;MQ0=0;MQRankSum=0.661;QD=26.27;ReadPosRankSum=-1.135;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=GLTPD1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000464957;VQSLOD=6.78;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:54,0:54:99:0,162,1904	0 [...]
+1	1262571	rs147108733	C	T	505.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-4.490;DB;DP=1250;Dels=0.00;FS=0.000;HaplotypeScore=0.5523;InbreedingCoeff=-0.0104;MLEAC=1;MLEAF=0.010;MQ=59.44;MQ0=0;MQRankSum=0.538;QD=11.75;ReadPosRankSum=1.730;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=GLTPD1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000343938;VQSLOD=6.66;culprit=FS	GT:AD:DP:GQ:PL	0/0:22,0:22:60:0,60,720	0/0:38,0:38:99:0,10 [...]
+1	1262591	rs2296472	C	T	22943.98	PASS	AC=67;AF=0.670;AN=100;BaseQRankSum=-6.221;DB;DP=1285;Dels=0.00;FS=11.713;HaplotypeScore=0.8526;InbreedingCoeff=0.4136;MLEAC=67;MLEAF=0.670;MQ=59.47;MQ0=0;MQRankSum=-1.634;QD=23.95;ReadPosRankSum=0.808;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=GLTPD1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000343938;VQSLOD=4.03;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	1/1:1,24:26:72:761,72,0	0/1: [...]
+1	1262695	rs148629756	G	A	750.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-4.914;DB;DP=1699;Dels=0.00;FS=3.457;HaplotypeScore=0.2702;InbreedingCoeff=-0.0206;MLEAC=2;MLEAF=0.020;MQ=59.54;MQ0=0;MQRankSum=1.397;QD=11.91;ReadPosRankSum=-2.277;SNPEFF_AMINO_ACID_CHANGE=R66H;SNPEFF_CODON_CHANGE=cGc/cAc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1262621_1264277;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=GLTPD1;SNPEFF_IMPACT=MODERATE;SN [...]
+1	1262966	rs307349	C	T	15751.52	PASS	AC=71;AF=0.710;AN=100;BaseQRankSum=-7.103;DB;DP=741;Dels=0.00;FS=1.306;HaplotypeScore=0.2878;InbreedingCoeff=0.4231;MLEAC=71;MLEAF=0.710;MQ=59.01;MQ0=0;MQRankSum=-1.199;QD=28.03;ReadPosRankSum=0.530;SNPEFF_AMINO_ACID_CHANGE=R156;SNPEFF_CODON_CHANGE=cgC/cgT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1262621_1264277;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=GLTPD1;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCR [...]
+1	1263144	rs307350	G	A	61577.11	PASS	AC=81;AF=0.810;AN=100;BaseQRankSum=-7.493;DB;DP=2366;Dels=0.00;FS=0.000;HaplotypeScore=0.5978;InbreedingCoeff=0.0253;MLEAC=81;MLEAF=0.810;MQ=59.20;MQ0=0;MQRankSum=-0.798;QD=26.88;ReadPosRankSum=-1.953;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=GLTPD1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000488011;VQSLOD=5.43;culprit=FS	GT:AD:DP:GQ:PL	1/1:0,26:26:78:917,78,0	0/1:26,26:52: [...]
+1	1263194	.	G	A	402.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.657;DP=1430;Dels=0.00;FS=0.000;HaplotypeScore=0.4640;InbreedingCoeff=-0.0103;MLEAC=1;MLEAF=0.010;MQ=59.71;MQ0=0;MQRankSum=0.634;QD=14.36;ReadPosRankSum=0.564;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=GLTPD1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000488011;VQSLOD=5.37;culprit=FS	GT:AD:DP:GQ:PL	0/0:24,0:24:72:0,72,846	0/0:23,0:23:69:0,69,833	0/0: [...]
+1	1266738	rs76755863	G	A	321.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-4.891;DB;DP=1409;Dels=0.00;FS=0.000;HaplotypeScore=0.4947;InbreedingCoeff=-0.0206;MLEAC=2;MLEAF=0.020;MQ=59.27;MQ0=0;MQRankSum=0.793;QD=7.65;ReadPosRankSum=-0.075;SNPEFF_AMINO_ACID_CHANGE=A5T;SNPEFF_CODON_CHANGE=Gct/Act;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1266694_1266916;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TAS1R3;SNPEFF_IMPACT=MODERATE;SNPEFF_TRAN [...]
+1	1266740	rs141430443	T	A	392.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=0.086;DB;DP=1420;Dels=0.00;FS=0.000;HaplotypeScore=0.4761;InbreedingCoeff=-0.0206;MLEAC=2;MLEAF=0.020;MQ=59.26;MQ0=0;MQRankSum=0.586;QD=9.34;ReadPosRankSum=-0.509;SNPEFF_AMINO_ACID_CHANGE=A5;SNPEFF_CODON_CHANGE=gcT/gcA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1266694_1266916;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TAS1R3;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=EN [...]
+1	1267325	.	G	GC	7409.93	Indel_FS	AC=21;AF=0.210;AN=100;BaseQRankSum=-1.327;DP=1251;FS=497.083;HaplotypeScore=6.8430;InbreedingCoeff=0.5697;MLEAC=20;MLEAF=0.200;MQ=59.15;MQ0=0;MQRankSum=0.920;QD=19.05;RPA=6,7;RU=C;ReadPosRankSum=-3.890;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=DVL1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000263743;STR	GT:AD:DP:GQ:PL	0/0:15,0:15:45:0,45,529	0/0:31,0:31:93:0,93,1392	0/0:21,0:21:63:0, [...]
+1	1267332	.	A	C	168.13	VQSRTrancheSNP99.30to99.50	AC=5;AF=0.050;AN=100;BaseQRankSum=4.858;DP=1288;Dels=0.00;FS=25.392;HaplotypeScore=4.3986;InbreedingCoeff=-0.0569;MLEAC=5;MLEAF=0.050;MQ=59.00;MQ0=0;MQRankSum=-0.292;QD=1.32;ReadPosRankSum=-6.418;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=DVL1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000263743;VQSLOD=-1.073e+00;culprit=QD	GT:AD:DP:GQ:PL	0/0:19,0:19:57:0,57,635	0/0:31, [...]
+1	1267651	rs111615792	G	A	1183.78	PASS	AC=6;AF=0.060;AN=100;BaseQRankSum=-1.023;DB;DP=637;Dels=0.00;FS=0.000;HaplotypeScore=0.4612;InbreedingCoeff=-0.0686;MLEAC=6;MLEAF=0.060;MQ=58.79;MQ0=0;MQRankSum=-1.028;QD=10.29;ReadPosRankSum=-0.120;SNPEFF_AMINO_ACID_CHANGE=R247H;SNPEFF_CODON_CHANGE=cGt/cAt;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1267404_1268186;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TAS1R3;SNPEFF_IMPACT=MODERATE;SNPEFF [...]
+1	1267993	.	TGGA	T	326.14	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.096;DP=1175;FS=29.175;HaplotypeScore=8.4510;InbreedingCoeff=-0.0107;MLEAC=1;MLEAF=0.010;MQ=59.35;MQ0=0;MQRankSum=0.370;QD=14.82;RPA=3,2;RU=GGA;ReadPosRankSum=-1.828;SNPEFF_AMINO_ACID_CHANGE=LE361L;SNPEFF_CODON_CHANGE=ctggag/ctg;SNPEFF_EFFECT=CODON_DELETION;SNPEFF_EXON_ID=exon_1_1267404_1268186;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TAS1R3;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCRIPT_ [...]
+1	1268000	.	G	C	602.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.811;DP=1121;Dels=0.00;FS=0.997;HaplotypeScore=1.3484;InbreedingCoeff=-0.0107;MLEAC=1;MLEAF=0.010;MQ=59.36;MQ0=0;MQRankSum=0.325;QD=13.69;ReadPosRankSum=-0.411;SNPEFF_AMINO_ACID_CHANGE=E363D;SNPEFF_CODON_CHANGE=gaG/gaC;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1267404_1268186;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TAS1R3;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCRIPT_ID [...]
+1	1268010	rs147600530	G	T	290.29	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-4.409;DB;DP=1025;Dels=0.00;FS=8.338;HaplotypeScore=1.1633;InbreedingCoeff=-0.0145;MLEAC=1;MLEAF=0.010;MQ=59.36;MQ0=0;MQRankSum=-0.861;QD=10.75;ReadPosRankSum=0.634;SNPEFF_AMINO_ACID_CHANGE=G367C;SNPEFF_CODON_CHANGE=Ggc/Tgc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1267404_1268186;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TAS1R3;SNPEFF_IMPACT=MODERATE;SNPEFF_ [...]
+1	1268017	rs143359998	G	A	286.21	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.905;DB;DP=960;Dels=0.00;FS=2.709;HaplotypeScore=0.5907;InbreedingCoeff=-0.0115;MLEAC=1;MLEAF=0.010;MQ=59.77;MQ0=0;MQRankSum=0.016;QD=11.45;ReadPosRankSum=-0.961;SNPEFF_AMINO_ACID_CHANGE=R369H;SNPEFF_CODON_CHANGE=cGc/cAc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1267404_1268186;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TAS1R3;SNPEFF_IMPACT=MODERATE;SNPEFF_T [...]
+1	1268051	.	C	T	144.21	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=1.139;DP=879;Dels=0.00;FS=1.544;HaplotypeScore=0.3612;InbreedingCoeff=-0.0114;MLEAC=1;MLEAF=0.010;MQ=59.46;MQ0=0;MQRankSum=0.027;QD=14.42;ReadPosRankSum=-2.357;SNPEFF_AMINO_ACID_CHANGE=N380;SNPEFF_CODON_CHANGE=aaC/aaT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1267404_1268186;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TAS1R3;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST000003393 [...]
+1	1268159	rs3813210	C	T	6718.03	PASS	AC=20;AF=0.200;AN=100;BaseQRankSum=-0.934;DB;DP=1366;Dels=0.00;FS=27.328;HaplotypeScore=0.8998;InbreedingCoeff=0.1250;MLEAC=20;MLEAF=0.200;MQ=59.18;MQ0=0;MQRankSum=-0.415;QD=13.82;ReadPosRankSum=-1.526;SNPEFF_AMINO_ACID_CHANGE=P416;SNPEFF_CODON_CHANGE=ccC/ccT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1267404_1268186;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TAS1R3;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT [...]
+1	1268195	rs3813211	G	A	5562.50	PASS	AC=18;AF=0.180;AN=100;BaseQRankSum=-1.330;DB;DP=1099;Dels=0.00;FS=13.361;HaplotypeScore=0.6632;InbreedingCoeff=0.1864;MLEAC=18;MLEAF=0.180;MQ=59.03;MQ0=0;MQRankSum=-0.338;QD=15.49;ReadPosRankSum=0.704;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=DVL1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000263743;VQSLOD=4.54;culprit=FS	GT:AD:DP:GQ:PL	0/0:27,0:27:75:0,75,848	0/0:17,0:17:51:0,51,6 [...]
+1	1268348	rs111703380	G	A	780.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=3.310;DB;DP=1481;Dels=0.00;FS=2.499;HaplotypeScore=1.2066;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=58.91;MQ0=0;MQRankSum=-0.488;QD=10.69;ReadPosRankSum=1.568;SNPEFF_AMINO_ACID_CHANGE=P441;SNPEFF_CODON_CHANGE=ccG/ccA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1268301_1268504;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TAS1R3;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID [...]
+1	1268462	rs138915131	G	A	82.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.037;DB;DP=1172;Dels=0.00;FS=0.000;HaplotypeScore=0.4810;InbreedingCoeff=-0.0107;MLEAC=1;MLEAF=0.010;MQ=59.22;MQ0=0;MQRankSum=-0.386;QD=5.48;ReadPosRankSum=-1.225;SNPEFF_AMINO_ACID_CHANGE=R479;SNPEFF_CODON_CHANGE=agG/agA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1268301_1268504;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TAS1R3;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID [...]
+1	1268550	rs61766206	C	T	296.29	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=2.770;DB;DP=551;Dels=0.00;FS=3.105;HaplotypeScore=0.3878;InbreedingCoeff=-0.0163;MLEAC=1;MLEAF=0.010;MQ=58.96;MQ0=0;MQRankSum=0.460;QD=12.88;ReadPosRankSum=-0.272;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=DVL1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000263743;VQSLOD=6.66;culprit=MQ	GT:AD:DP:GQ:PL	0/0:10,0:10:30:0,30,327	0/0:13,0:13:39:0,39,422	0 [...]
+1	1268847	rs307378	T	G	62834.20	PASS	AC=93;AF=0.930;AN=100;BaseQRankSum=10.235;DB;DP=1783;Dels=0.00;FS=0.598;HaplotypeScore=0.4196;InbreedingCoeff=-0.0753;MLEAC=93;MLEAF=0.930;MQ=59.49;MQ0=1;MQRankSum=0.451;QD=35.24;ReadPosRankSum=1.530;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=DVL1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000263743;VQSLOD=5.66;culprit=FS	GT:AD:DP:GQ:PL	1/1:0,38:38:99:1405,114,0	0/1:12,12:24:99:391, [...]
+1	1269004	rs140035477	C	T	446.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-4.471;DB;DP=1432;Dels=0.00;FS=2.169;HaplotypeScore=0.1274;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=58.98;MQ0=0;MQRankSum=0.910;QD=21.25;ReadPosRankSum=-1.511;SNPEFF_AMINO_ACID_CHANGE=L573;SNPEFF_CODON_CHANGE=ctC/ctT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1268886_1270686;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TAS1R3;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_I [...]
+1	1269076	rs148260692	A	C	182.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=2.654;DB;DP=1016;Dels=0.00;FS=0.000;HaplotypeScore=0.2893;InbreedingCoeff=-0.0108;MLEAC=1;MLEAF=0.010;MQ=58.87;MQ0=0;MQRankSum=1.027;QD=9.59;ReadPosRankSum=0.741;SNPEFF_AMINO_ACID_CHANGE=P597;SNPEFF_CODON_CHANGE=ccA/ccC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1268886_1270686;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TAS1R3;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=E [...]
+1	1269432	rs147441599	C	A	45.29	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=2.608;DB;DP=763;Dels=0.00;FS=0.000;HaplotypeScore=0.3492;InbreedingCoeff=-0.0155;MLEAC=1;MLEAF=0.010;MQ=58.44;MQ0=0;MQRankSum=0.085;QD=5.66;ReadPosRankSum=-0.535;SNPEFF_AMINO_ACID_CHANGE=T716K;SNPEFF_CODON_CHANGE=aCg/aAg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1268886_1270686;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TAS1R3;SNPEFF_IMPACT=MODERATE;SNPEFF_TRAN [...]
+1	1269488	rs112507608	G	A	474.53	PASS	AC=5;AF=0.050;AN=100;BaseQRankSum=-0.648;DB;DP=437;Dels=0.00;FS=2.915;HaplotypeScore=0.2120;InbreedingCoeff=-0.0708;MLEAC=5;MLEAF=0.050;MQ=58.50;MQ0=0;MQRankSum=-0.889;QD=9.13;ReadPosRankSum=-0.766;SNPEFF_AMINO_ACID_CHANGE=A735T;SNPEFF_CODON_CHANGE=Gcc/Acc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1268886_1270686;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TAS1R3;SNPEFF_IMPACT=MODERATE;SNPEFF_T [...]
+1	1269554	rs307377	T	C	16502.08	PASS	AC=93;AF=0.930;AN=100;BaseQRankSum=1.110;DB;DP=508;Dels=0.00;FS=25.352;HaplotypeScore=0.3549;InbreedingCoeff=-0.0867;MLEAC=93;MLEAF=0.930;MQ=58.90;MQ0=0;MQRankSum=-1.026;QD=32.48;ReadPosRankSum=1.238;SNPEFF_AMINO_ACID_CHANGE=C757R;SNPEFF_CODON_CHANGE=Tgc/Cgc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1268886_1270686;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TAS1R3;SNPEFF_IMPACT=MODERATE;SNPEFF_ [...]
+1	1269675	.	C	T	167.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.920;DP=1204;Dels=0.00;FS=8.321;HaplotypeScore=0.3420;InbreedingCoeff=-0.0102;MLEAC=1;MLEAF=0.010;MQ=59.40;MQ0=0;MQRankSum=-0.521;QD=10.45;ReadPosRankSum=0.952;SNPEFF_AMINO_ACID_CHANGE=A797V;SNPEFF_CODON_CHANGE=gCc/gTc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1268886_1270686;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TAS1R3;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCRIPT_ID [...]
+1	1269888	rs139522421	C	A	191.64	PASS	AC=4;AF=0.043;AN=94;BaseQRankSum=0.967;DB;DP=231;Dels=0.00;FS=4.036;HaplotypeScore=0.0721;InbreedingCoeff=0.4148;MLEAC=3;MLEAF=0.032;MQ=59.30;MQ0=0;MQRankSum=0.098;QD=21.29;ReadPosRankSum=-0.098;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=DVL1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000263743;VQSLOD=5.71;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	1/1:0,1:1:3:32,3,0	0/0:6,0:6:18:0,18,1 [...]
+1	1271636	rs34935417	G	A	56.84	PASS	AC=3;AF=0.031;AN=96;BaseQRankSum=-1.900;DB;DP=223;Dels=0.00;FS=12.430;HaplotypeScore=0.3484;InbreedingCoeff=-0.0864;MLEAC=3;MLEAF=0.031;MQ=58.23;MQ0=0;MQRankSum=2.787;QD=3.55;ReadPosRankSum=0.145;SNPEFF_AMINO_ACID_CHANGE=P316;SNPEFF_CODON_CHANGE=ccC/ccT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1270659_1271895;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=DVL1;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST0 [...]
+1	1271853	rs113005319	G	C	86.20	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.913;DB;DP=991;Dels=0.00;FS=0.000;HaplotypeScore=0.5224;InbreedingCoeff=-0.0111;MLEAC=1;MLEAF=0.010;MQ=59.03;MQ0=0;MQRankSum=0.678;QD=5.75;ReadPosRankSum=-1.559;SNPEFF_AMINO_ACID_CHANGE=P244R;SNPEFF_CODON_CHANGE=cCg/cGg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1270659_1271895;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=DVL1;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANS [...]
+1	1271924	rs140192690	G	A	56.34	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.447;DB;DP=696;Dels=0.00;FS=0.000;HaplotypeScore=0.6160;InbreedingCoeff=-0.0183;MLEAC=1;MLEAF=0.010;MQ=58.35;MQ0=0;MQRankSum=0.018;QD=2.68;ReadPosRankSum=-0.243;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TAS1R3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000339381;VQSLOD=1.42;culprit=QD	GT:AD:DP:GQ:PL	0/0:10,0:10:30:0,30,344	0/0:5,0:5:15:0,15,190	0 [...]
+1	1271940	rs149812757	C	T	93.38	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.380;DB;DP=642;Dels=0.00;FS=1.887;HaplotypeScore=0.7596;InbreedingCoeff=-0.0196;MLEAC=1;MLEAF=0.010;MQ=58.69;MQ0=0;MQRankSum=-1.778;QD=8.49;ReadPosRankSum=0.088;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TAS1R3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000339381;VQSLOD=3.95;culprit=MQ	GT:AD:DP:GQ:PL	0/0:8,0:8:24:0,24,296	0/0:4,0:4:12:0,12,141	0/0 [...]
+1	1271942	rs111315662	C	T	2820.16	PASS	AC=16;AF=0.160;AN=100;BaseQRankSum=4.139;DB;DP=610;Dels=0.00;FS=0.502;HaplotypeScore=0.7802;InbreedingCoeff=0.0742;MLEAC=16;MLEAF=0.160;MQ=58.66;MQ0=0;MQRankSum=0.383;QD=14.39;ReadPosRankSum=-1.620;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TAS1R3;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000339381;VQSLOD=3.37;culprit=MQ	GT:AD:DP:GQ:PL	0/0:8,0:8:24:0,24,260	0/0:4,0:4:12:0,12,130	 [...]
+1	1273621	rs137945460	C	T	1441.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.928;DB;DP=1001;Dels=0.00;FS=14.362;HaplotypeScore=0.6691;InbreedingCoeff=-0.0108;MLEAC=1;MLEAF=0.010;MQ=58.24;MQ0=0;MQRankSum=3.877;QD=19.22;ReadPosRankSum=-1.143;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=DVL1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000472445;VQSLOD=3.20;culprit=FS	GT:AD:DP:GQ:PL	0/0:14,0:14:36:0,36,446	0/0:20,0:20:60:0,60, [...]
+1	1273703	.	T	A	836.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=0.975;DP=2566;Dels=0.00;FS=3.399;HaplotypeScore=0.3857;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=58.84;MQ0=0;MQRankSum=0.426;QD=11.78;ReadPosRankSum=-1.822;SNPEFF_AMINO_ACID_CHANGE=N143Y;SNPEFF_CODON_CHANGE=Aac/Tac;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1273649_1273816;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=DVL1;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCRIPT_ID=EN [...]
+1	1273874	rs186806059	C	T	188.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.853;DB;DP=1592;Dels=0.00;FS=8.213;HaplotypeScore=0.2724;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.35;MQ0=0;MQRankSum=0.825;QD=11.76;ReadPosRankSum=-1.283;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=DVL1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000472445;VQSLOD=7.11;culprit=InbreedingCoeff	GT:AD:DP:GQ:PL	0/0:23,0:23:69:0,69,811	0/0:35,0: [...]
+1	1274972	rs139346691	G	A	837.14	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=2.678;DB;DP=982;Dels=0.00;FS=1.640;HaplotypeScore=0.4300;InbreedingCoeff=-0.0316;MLEAC=3;MLEAF=0.030;MQ=59.30;MQ0=0;MQRankSum=0.374;QD=10.46;ReadPosRankSum=0.088;SNPEFF_AMINO_ACID_CHANGE=T31;SNPEFF_CODON_CHANGE=acC/acT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1274962_1275192;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=DVL1;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST [...]
+1	1275082	.	T	C	642.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=0.242;DP=1330;Dels=0.00;FS=0.000;HaplotypeScore=0.2949;InbreedingCoeff=-0.0103;MLEAC=1;MLEAF=0.010;MQ=58.65;MQ0=0;MQRankSum=1.142;QD=11.68;ReadPosRankSum=0.652;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=DVL1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000472445;VQSLOD=5.58;culprit=MQ	GT:AD:DP:GQ:PL	0/0:22,0:22:66:0,66,776	0/0:25,0:25:75:0,75,924	0/0:11,0:11:3 [...]
+1	1275688	rs139844875	G	A	129.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.341;DB;DP=2734;Dels=0.00;FS=0.000;HaplotypeScore=0.5069;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.30;MQ0=0;MQRankSum=1.145;QD=4.45;ReadPosRankSum=-0.452;SNPEFF_AMINO_ACID_CHANGE=S236;SNPEFF_CODON_CHANGE=tcC/tcT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1275627_1275696;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=DVL1;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=E [...]
+1	1275716	rs112871502	T	A	5261.46	PASS	AC=11;AF=0.110;AN=100;BaseQRankSum=7.334;DB;DP=1743;Dels=0.00;FS=6.841;HaplotypeScore=0.7649;InbreedingCoeff=-0.1285;MLEAC=11;MLEAF=0.110;MQ=59.26;MQ0=0;MQRankSum=0.791;QD=13.29;ReadPosRankSum=-2.510;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=DVL1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000472445;VQSLOD=4.83;culprit=InbreedingCoeff	GT:AD:DP:GQ:PL	0/0:26,0:26:78:0,78,917	0/0:38, [...]
+1	1275730	rs147874931	G	A	651.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.138;DB;DP=1329;Dels=0.00;FS=3.299;HaplotypeScore=1.0273;InbreedingCoeff=-0.0102;MLEAC=1;MLEAF=0.010;MQ=59.22;MQ0=0;MQRankSum=0.440;QD=12.06;ReadPosRankSum=-0.547;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=DVL1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000472445;VQSLOD=6.96;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:21,0:21:63:0,63,753	0/0:26,0:2 [...]
+1	1275739	.	C	T	440.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=2.215;DP=1138;Dels=0.00;FS=10.836;HaplotypeScore=0.8347;InbreedingCoeff=-0.0107;MLEAC=1;MLEAF=0.010;MQ=59.34;MQ0=0;MQRankSum=0.002;QD=13.76;ReadPosRankSum=0.111;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=DVL1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000472445;VQSLOD=5.52;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:18,0:18:54:0,54,631	0/0:26,0:26:78:0,78,853	 [...]
+1	1275797	.	G	C	308.52	VQSRTrancheSNP99.50to99.90	AC=17;AF=0.170;AN=100;BaseQRankSum=-8.650;DP=555;Dels=0.00;FS=334.274;HaplotypeScore=0.5644;InbreedingCoeff=-0.2104;MLEAC=15;MLEAF=0.150;MQ=57.66;MQ0=0;MQRankSum=-2.377;QD=1.52;ReadPosRankSum=-6.578;SNPEFF_AMINO_ACID_CHANGE=A231G;SNPEFF_CODON_CHANGE=gCg/gGg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1275790_1275883;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=DVL1;SNPEFF_IMPACT=MODERA [...]
+1	1275888	.	G	A	220.31	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.282;DP=625;Dels=0.00;FS=0.000;HaplotypeScore=0.2270;InbreedingCoeff=-0.0166;MLEAC=1;MLEAF=0.010;MQ=59.17;MQ0=0;MQRankSum=1.831;QD=18.36;ReadPosRankSum=-0.033;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=DVL1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000472445;VQSLOD=5.48;culprit=FS	GT:AD:DP:GQ:PL	0/0:12,0:12:36:0,36,454	0/0:8,0:8:24:0,24,283	0/0:15,0:15:45 [...]
+1	1277183	rs61735963	C	T	797.99	PASS	AC=5;AF=0.050;AN=100;BaseQRankSum=-0.404;DB;DP=503;Dels=0.00;FS=0.768;HaplotypeScore=0.5298;InbreedingCoeff=-0.0626;MLEAC=5;MLEAF=0.050;MQ=57.30;MQ0=0;MQRankSum=2.684;QD=10.78;ReadPosRankSum=-0.724;SNPEFF_AMINO_ACID_CHANGE=A157T;SNPEFF_CODON_CHANGE=Gcc/Acc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1277047_1277185;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=DVL1;SNPEFF_IMPACT=MODERATE;SNPEFF_TRAN [...]
+1	1277184	.	G	A	56.34	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.258;DP=496;Dels=0.00;FS=0.000;HaplotypeScore=0.5907;InbreedingCoeff=-0.0181;MLEAC=1;MLEAF=0.010;MQ=57.44;MQ0=0;MQRankSum=1.086;QD=14.09;ReadPosRankSum=0.314;SNPEFF_AMINO_ACID_CHANGE=A156;SNPEFF_CODON_CHANGE=gcC/gcT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1277047_1277185;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=DVL1;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST00000345100; [...]
+1	1277469	.	G	A	80.39	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=0.161;DP=471;Dels=0.00;FS=0.000;HaplotypeScore=0.2602;InbreedingCoeff=-0.0211;MLEAC=1;MLEAF=0.010;MQ=59.44;MQ0=0;MQRankSum=-0.161;QD=8.04;ReadPosRankSum=0.084;SNPEFF_AMINO_ACID_CHANGE=R144W;SNPEFF_CODON_CHANGE=Cgg/Tgg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1277433_1277536;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=DVL1;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCRIPT_ID=ENST0 [...]
+1	1277533	rs307362	T	C	7137.94	PASS	AC=96;AF=0.980;AN=98;BaseQRankSum=-2.633;DB;DP=219;Dels=0.00;FS=10.003;HaplotypeScore=0.0900;InbreedingCoeff=-0.0745;MLEAC=97;MLEAF=0.990;MQ=59.15;MQ0=0;MQRankSum=0.774;QD=32.59;ReadPosRankSum=-0.195;SNPEFF_AMINO_ACID_CHANGE=P122;SNPEFF_CODON_CHANGE=ccA/ccG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1277433_1277536;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=DVL1;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=E [...]
+1	1277832	.	C	T	57.31	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=1.919;DP=573;Dels=0.00;FS=9.693;HaplotypeScore=0.1662;InbreedingCoeff=-0.0172;MLEAC=1;MLEAF=0.010;MQ=58.87;MQ0=0;MQRankSum=0.430;QD=8.19;ReadPosRankSum=-0.864;SNPEFF_AMINO_ACID_CHANGE=A91;SNPEFF_CODON_CHANGE=gcG/gcA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1277743_1277864;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=DVL1;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST00000345100;VQ [...]
+1	1278047	rs143423496	G	A	450.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.833;DB;DP=1684;Dels=0.00;FS=3.121;HaplotypeScore=0.2475;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.44;MQ0=0;MQRankSum=0.641;QD=9.00;ReadPosRankSum=-1.705;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=DVL1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000263743;VQSLOD=8.82;culprit=QD	GT:AD:DP:GQ:PL	0/0:38,0:38:99:0,111,1339	0/0:33,0:33:99:0,99,1247	 [...]
+1	1284490	rs150789461	G	A	5156.89	PASS	AC=70;AF=0.814;AN=86;BaseQRankSum=-0.503;DB;DP=203;Dels=0.00;FS=0.000;HaplotypeScore=0.1698;InbreedingCoeff=0.4197;MLEAC=68;MLEAF=0.791;MQ=59.35;MQ0=0;MQRankSum=-0.445;QD=33.27;ReadPosRankSum=-2.781;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=MXRA8;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000309212;VQSLOD=3.68;culprit=FS	GT:AD:DP:GQ:PL	1/1:0,2:2:6:76,6,0	1/1:0,2:2:6:77,6,0	 [...]
+1	1289205	.	C	T	68.87	PASS	AC=2;AF=0.020;AN=98;BaseQRankSum=-1.260;DP=390;Dels=0.00;FS=0.000;HaplotypeScore=0.1612;InbreedingCoeff=0.5284;MLEAC=1;MLEAF=0.010;MQ=58.59;MQ0=0;MQRankSum=-1.487;QD=17.22;ReadPosRankSum=1.522;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=MXRA8;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000460473;VQSLOD=2.96;culprit=MQ	GT:AD:DP:GQ:PL	0/0:6,0:6:18:0,18,222	0/0:16,0:16:48:0,48,605	0/0:6,0:6: [...]
+1	1289367	rs138188378	CTG	C	43221.37	PASS	AC=77;AF=0.770;AN=100;BaseQRankSum=0.046;DB;DP=1223;FS=58.559;HaplotypeScore=9.4698;InbreedingCoeff=0.1525;MLEAC=77;MLEAF=0.770;MQ=58.71;MQ0=0;MQRankSum=-0.571;QD=39.44;ReadPosRankSum=1.137;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=MXRA8;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000460473	GT:AD:DP:GQ:PL	1/1:0,17:18:51:941,51,0	0/1:13,13:27:99:637,0,667	1/1:0,20:20:60:10 [...]
+1	1289911	rs4970365	G	A	38815.38	PASS	AC=77;AF=0.770;AN=100;BaseQRankSum=-9.461;DB;DP=1447;Dels=0.00;FS=4.512;HaplotypeScore=0.9114;InbreedingCoeff=0.1529;MLEAC=77;MLEAF=0.770;MQ=59.01;MQ0=0;MQRankSum=-0.369;QD=28.77;ReadPosRankSum=1.904;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=MXRA8;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000460473;VQSLOD=4.85;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	1/1:0,29:29:87:1096,87,0	0 [...]
+1	1290089	.	A	G	145.93	VQSRTrancheSNP99.50to99.90	AC=12;AF=0.136;AN=88;BaseQRankSum=-4.365;DP=217;Dels=0.00;FS=53.192;HaplotypeScore=0.2784;InbreedingCoeff=-0.2228;MLEAC=12;MLEAF=0.136;MQ=56.45;MQ0=0;MQRankSum=0.680;QD=1.70;ReadPosRankSum=-5.666;SNPEFF_AMINO_ACID_CHANGE=S207P;SNPEFF_CODON_CHANGE=Tcc/Ccc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1290062_1290532;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=MXRA8;SNPEFF_IMPACT=MO [...]
+1	1290408	rs147996767	A	G	1363.49	PASS	AC=6;AF=0.060;AN=100;BaseQRankSum=3.898;DB;DP=587;Dels=0.00;FS=5.213;HaplotypeScore=0.5114;InbreedingCoeff=-0.0783;MLEAC=6;MLEAF=0.060;MQ=57.97;MQ0=0;MQRankSum=2.047;QD=9.60;ReadPosRankSum=-2.372;SNPEFF_AMINO_ACID_CHANGE=A100;SNPEFF_CODON_CHANGE=gcT/gcC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1290062_1290532;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=MXRA8;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIP [...]
+1	1290556	rs183729313	G	C	133.71	PASS	AC=1;AF=0.024;AN=42;BaseQRankSum=0.283;DB;DP=132;Dels=0.00;FS=0.000;HaplotypeScore=0.3929;InbreedingCoeff=-0.0950;MLEAC=1;MLEAF=0.024;MQ=58.79;MQ0=0;MQRankSum=0.731;QD=13.37;ReadPosRankSum=-0.244;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=MXRA8;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000309212;VQSLOD=4.70;culprit=MQ	GT:AD:DP:GQ:PL	./.	./.	0/0:1,0:1:3:0,3,40	./.	./.	0/0:1,0:1:3 [...]
+1	1290581	rs189632301	G	A	556.33	PASS	AC=6;AF=0.075;AN=80;BaseQRankSum=-4.492;DB;DP=182;Dels=0.00;FS=7.387;HaplotypeScore=0.1711;InbreedingCoeff=-0.0299;MLEAC=6;MLEAF=0.075;MQ=56.07;MQ0=0;MQRankSum=-1.981;QD=12.36;ReadPosRankSum=-3.520;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=MXRA8;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000309212;VQSLOD=1.54;culprit=MQ	GT:AD:DP:GQ:PL	./.	0/0:2,0:2:6:0,6,77	0/0:3,0:3:9:0,9,106	0 [...]
+1	1290592	.	CGGGAGCTG	C	1028.07	PASS	AC=4;AF=0.043;AN=94;BaseQRankSum=0.814;DP=281;FS=0.000;HaplotypeScore=3.3594;InbreedingCoeff=-0.1121;MLEAC=4;MLEAF=0.043;MQ=55.90;MQ0=0;MQRankSum=-4.547;QD=23.91;ReadPosRankSum=0.564;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=MXRA8;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000309212	GT:AD:DP:GQ:PL	0/0:2,0:2:6:0,6,219	0/0:5,0:5:15:0,15,372	0/0:3,0:3:9:0,9,328	0/0:3,0:3:9:0,9,328	0 [...]
+1	1291159	.	GA	G	519.73	PASS	AC=24;AF=1.00;AN=24;DP=15;FS=0.000;HaplotypeScore=0.6904;InbreedingCoeff=-0.1855;MLEAC=24;MLEAF=1.00;MQ=57.16;MQ0=0;QD=37.12;RPA=2,1;RU=A;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=MXRA8;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000309212;STR	GT:AD:DP:GQ:PL	./.	1/1:0,1:1:3:42,3,0	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	1/1:0,1:1:3:42,3,0	1/1:0,1:1:3:42,3,0	./.	./.	./.	./.	1/1 [...]
+1	1291161	.	A	G	132.73	PASS	AC=9;AF=0.409;AN=22;BaseQRankSum=0.696;DP=14;Dels=0.00;FS=0.000;HaplotypeScore=0.0000;InbreedingCoeff=0.1996;MLEAC=9;MLEAF=0.409;MQ=56.95;MQ0=0;MQRankSum=0.978;QD=18.96;ReadPosRankSum=-2.163;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=MXRA8;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000309212;VQSLOD=3.22;culprit=MQ	GT:AD:DP:GQ:PL	./.	0/0:1,0:1:3:0,3,39	./.	./.	./.	./.	./.	./.	./.	./.	./.	./ [...]
+1	1292131	rs141676214	A	G	177.90	PASS	AC=2;AF=0.020;AN=98;BaseQRankSum=-0.513;DB;DP=327;Dels=0.00;FS=1.439;HaplotypeScore=0.1625;InbreedingCoeff=-0.0669;MLEAC=2;MLEAF=0.020;MQ=59.46;MQ0=0;MQRankSum=1.984;QD=12.71;ReadPosRankSum=-1.192;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=MXRA8;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000309212;VQSLOD=5.77;culprit=FS	GT:AD:DP:GQ:PL	0/0:4,0:4:12:0,12,145	0/0:2,0:2:6:0,6,69	0/0: [...]
+1	1309185	rs111933693	T	C	2421.12	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=7.758;DB;DP=2440;Dels=0.00;FS=3.905;HaplotypeScore=0.1768;InbreedingCoeff=-0.0309;MLEAC=3;MLEAF=0.030;MQ=59.81;MQ0=0;MQRankSum=-0.470;QD=13.68;ReadPosRankSum=-0.815;SNPEFF_AMINO_ACID_CHANGE=K199R;SNPEFF_CODON_CHANGE=aAa/aGa;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1309112_1309282;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AURKAIP1;SNPEFF_IMPACT=MODERATE;SNPE [...]
+1	1309405	rs150194697	T	C	724.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=2.867;DB;DP=4072;Dels=0.00;FS=15.411;HaplotypeScore=0.3207;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.51;MQ0=0;MQRankSum=0.146;QD=12.07;ReadPosRankSum=-1.880;SNPEFF_AMINO_ACID_CHANGE=Q158R;SNPEFF_CODON_CHANGE=cAg/cGg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1309380_1309825;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AURKAIP1;SNPEFF_IMPACT=MODERATE;SNPEF [...]
+1	1309458	rs8146	G	A	2748.12	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=-11.382;DB;DP=4713;Dels=0.00;FS=0.920;HaplotypeScore=0.1779;InbreedingCoeff=-0.0309;MLEAC=3;MLEAF=0.030;MQ=59.19;MQ0=0;MQRankSum=1.733;QD=13.15;ReadPosRankSum=-2.871;SNPEFF_AMINO_ACID_CHANGE=H140;SNPEFF_CODON_CHANGE=caC/caT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1309380_1309825;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AURKAIP1;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID [...]
+1	1309514	rs189539985	C	T	104.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-4.552;DB;DP=4493;Dels=0.00;FS=2.446;HaplotypeScore=0.1300;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.78;MQ0=0;MQRankSum=-0.005;QD=1.39;ReadPosRankSum=0.053;SNPEFF_AMINO_ACID_CHANGE=A122T;SNPEFF_CODON_CHANGE=Gcg/Acg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1309380_1309825;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AURKAIP1;SNPEFF_IMPACT=MODERATE;SNPEFF [...]
+1	1310074	rs2765035	C	G	5721.05	PASS	AC=81;AF=0.844;AN=96;BaseQRankSum=1.039;DB;DP=221;Dels=0.00;FS=1.775;HaplotypeScore=0.0840;InbreedingCoeff=0.0032;MLEAC=80;MLEAF=0.833;MQ=58.58;MQ0=0;MQRankSum=0.804;QD=27.91;ReadPosRankSum=1.578;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AURKAIP1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000321751;VQSLOD=3.99;culprit=MQ	GT:AD:DP:GQ:PL	1/1:0,2:2:6:77,6,0	0/0:3,0:3:9:0,9,111	1/1:0,4:4:1 [...]
+1	1310149	.	G	C	40.68	VQSRTrancheSNP99.50to99.90	AC=8;AF=0.121;AN=66;BaseQRankSum=-3.331;DP=86;Dels=0.00;FS=34.551;HaplotypeScore=0.1365;InbreedingCoeff=-0.1599;MLEAC=8;MLEAF=0.121;MQ=59.57;MQ0=0;MQRankSum=1.000;QD=1.23;ReadPosRankSum=-2.868;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AURKAIP1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000470457;VQSLOD=-2.846e+00;culprit=QD	GT:AD:DP:GQ:PL	0/0:1,0:1:3:0,3,39	./.	0/0:1,0: [...]
+1	1310181	rs112533928	A	G	512.39	PASS	AC=13;AF=0.141;AN=92;BaseQRankSum=2.266;DB;DP=125;Dels=0.00;FS=0.000;HaplotypeScore=0.0217;InbreedingCoeff=0.3007;MLEAC=10;MLEAF=0.109;MQ=59.57;MQ0=0;MQRankSum=1.323;QD=23.29;ReadPosRankSum=0.612;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=AURKAIP1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000321751;VQSLOD=6.09;culprit=FS	GT:AD:DP:GQ:PL	0/0:2,0:2:6:0,6,74	0/0:4,0:4:12:0,12,145	0/0:4,0: [...]
+1	1323143	rs141100746	CCT	C	13311.34	PASS	AC=45;AF=0.450;AN=100;BaseQRankSum=-1.765;DB;DP=629;FS=21.384;HaplotypeScore=5.6584;InbreedingCoeff=0.5423;MLEAC=45;MLEAF=0.450;MQ=59.47;MQ0=0;MQRankSum=-0.984;QD=42.39;ReadPosRankSum=-1.669;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=CCNL2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000408918	GT:AD:DP:GQ:PL	1/1:0,23:23:69:1269,69,0	0/1:7,8:15:99:396,0,341	1/1:0,11:11:33:60 [...]
+1	1323143	.	C	G	157.57	VQSRTrancheSNP99.50to99.90	AC=11;AF=0.110;AN=100;BaseQRankSum=-3.824;DP=629;Dels=0.00;FS=6.116;HaplotypeScore=9.2030;InbreedingCoeff=-0.1264;MLEAC=9;MLEAF=0.090;MQ=59.47;MQ0=0;MQRankSum=-0.399;QD=1.19;ReadPosRankSum=-6.920;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=CCNL2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000408918;VQSLOD=-2.575e+00;culprit=QD	GT:AD:DP:GQ:PL	0/1:18,5:22:70:70,0,538	 [...]
+1	1323393	rs145080018	C	T	1347.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-4.383;DB;DP=5257;Dels=0.00;FS=7.366;HaplotypeScore=0.0653;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=59.79;MQ0=0;MQRankSum=0.583;QD=9.23;ReadPosRankSum=-3.717;SNPEFF_AMINO_ACID_CHANGE=K180;SNPEFF_CODON_CHANGE=aaG/aaA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1323334_1323445;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=CCNL2;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCR [...]
+1	1325990	rs147017832	G	A	1953.12	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=-10.170;DB;DP=2022;Dels=0.00;FS=3.580;HaplotypeScore=0.0892;InbreedingCoeff=-0.0309;MLEAC=3;MLEAF=0.030;MQ=59.66;MQ0=0;MQRankSum=1.750;QD=13.20;ReadPosRankSum=-2.037;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=CCNL2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000408918;VQSLOD=7.72;culprit=MQRankSum	GT:AD:DP:GQ:PL	0/0:49,0:49:99:0,147,1852	0/0: [...]
+1	1330726	rs1240746	A	G	10759.94	PASS	AC=59;AF=0.590;AN=100;BaseQRankSum=-5.597;DB;DP=529;Dels=0.00;FS=6.475;HaplotypeScore=0.3413;InbreedingCoeff=0.5729;MLEAC=61;MLEAF=0.610;MQ=58.80;MQ0=0;MQRankSum=0.420;QD=26.77;ReadPosRankSum=-0.470;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=CCNL2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000497013;VQSLOD=6.10;culprit=MQ	GT:AD:DP:GQ:PL	0/0:16,0:16:45:0,45,539	0/1:6,4:10:93:9 [...]
+1	1333597	rs190049110	G	C	1129.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.787;DB;DP=3439;Dels=0.00;FS=0.000;HaplotypeScore=1.0137;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.68;MQ0=0;MQRankSum=0.918;QD=15.06;ReadPosRankSum=-2.925;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MRPL20;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000344843;VQSLOD=6.18;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:96,0:96:99:0,289,3703	0/0:7 [...]
+1	1333598	rs35242196	C	A	33118.31	PASS	AC=29;AF=0.290;AN=100;BaseQRankSum=-13.526;DB;DP=3456;Dels=0.00;FS=0.496;HaplotypeScore=0.9537;InbreedingCoeff=0.6600;MLEAC=29;MLEAF=0.290;MQ=59.68;MQ0=0;MQRankSum=-0.103;QD=28.07;ReadPosRankSum=1.217;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MRPL20;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000344843;VQSLOD=3.24;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:94,0:94:99:0,283,3553	0/0 [...]
+1	1334052	rs3831366	CTAGAG	C	14597.42	Indel_FS	AC=9;AF=0.090;AN=100;BaseQRankSum=-2.943;DB;DP=4458;FS=1675.569;HaplotypeScore=4.3498;InbreedingCoeff=-0.0989;MLEAC=9;MLEAF=0.090;MQ=52.32;MQ0=0;MQRankSum=-16.106;QD=24.87;ReadPosRankSum=-0.810;SNPEFF_EFFECT=SPLICE_SITE_ACCEPTOR;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=CCNL2;SNPEFF_IMPACT=HIGH;SNPEFF_TRANSCRIPT_ID=ENST00000488340	GT:AD:DP:GQ:PL	0/0:98,0:98:99:0,295,7688	0/1:39,23:75:99:1599,0,294 [...]
+1	1334383	.	G	C	52.97	VQSRTrancheSNP98.80to98.90	AC=5;AF=0.057;AN=88;BaseQRankSum=-2.715;DP=193;Dels=0.00;FS=0.000;HaplotypeScore=0.1488;InbreedingCoeff=-0.1450;MLEAC=5;MLEAF=0.057;MQ=49.42;MQ0=0;MQRankSum=-0.363;QD=2.21;ReadPosRankSum=-3.279;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MRPL20;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000344843;VQSLOD=0.234;culprit=QD	GT:AD:DP:GQ:PL	0/0:3,0:3:6:0,6,64	0/0:3,0:3:9:0,9,92 [...]
+1	1334409	.	C	G	473.66	VQSRTrancheSNP99.00to99.30	AC=27;AF=0.300;AN=90;BaseQRankSum=-6.456;DP=177;Dels=0.00;FS=21.834;HaplotypeScore=0.3396;InbreedingCoeff=-0.2393;MLEAC=25;MLEAF=0.278;MQ=54.43;MQ0=0;MQRankSum=-3.607;QD=4.51;ReadPosRankSum=-6.896;SNPEFF_AMINO_ACID_CHANGE=R93P;SNPEFF_CODON_CHANGE=cGc/cCc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1334399_1334692;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=CCNL2;SNPEFF_IMPACT=MO [...]
+1	1334412	.	A	G	62.06	VQSRTrancheSNP98.90to99.00	AC=8;AF=0.085;AN=94;BaseQRankSum=-1.658;DP=176;Dels=0.00;FS=0.000;HaplotypeScore=0.2033;InbreedingCoeff=-0.0556;MLEAC=8;MLEAF=0.085;MQ=58.31;MQ0=0;MQRankSum=-0.750;QD=2.48;ReadPosRankSum=-3.998;SNPEFF_AMINO_ACID_CHANGE=L92P;SNPEFF_CODON_CHANGE=cTc/cCc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1334399_1334692;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=CCNL2;SNPEFF_IMPACT=MODERA [...]
+1	1334519	rs114112990	G	C	871.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=5.348;DB;DP=2805;Dels=0.00;FS=1.586;HaplotypeScore=0.1594;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=57.63;MQ0=0;MQRankSum=2.248;QD=11.62;ReadPosRankSum=-0.067;SNPEFF_AMINO_ACID_CHANGE=D56E;SNPEFF_CODON_CHANGE=gaC/gaG;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1334399_1334692;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=CCNL2;SNPEFF_IMPACT=MODERATE;SNPE [...]
+1	1334700	rs112789149	C	T	208.53	PASS	AC=2;AF=0.050;AN=40;BaseQRankSum=-2.069;DB;DP=58;Dels=0.00;FS=2.623;HaplotypeScore=0.1915;InbreedingCoeff=-0.1497;MLEAC=2;MLEAF=0.050;MQ=55.25;MQ0=0;MQRankSum=1.756;QD=18.96;ReadPosRankSum=-1.548;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MRPL20;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000344843;VQSLOD=1.83;culprit=MQ	GT:AD:DP:GQ:PL	./.	0/0:1,0:1:3:0,3,39	0/0:1,0:1:3:0,3,38	./.	. [...]
+1	1337527	.	G	A	665.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-5.247;DP=5818;Dels=0.00;FS=1.048;HaplotypeScore=0.0438;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.82;MQ0=0;MQRankSum=-1.059;QD=9.24;ReadPosRankSum=-3.629;SNPEFF_AMINO_ACID_CHANGE=A129V;SNPEFF_CODON_CHANGE=gCt/gTt;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1337288_1337636;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MRPL20;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCRIPT_ID [...]
+1	1337592	.	G	C	1079.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=4.392;DP=3526;Dels=0.00;FS=0.000;HaplotypeScore=0.0000;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.97;MQ0=0;MQRankSum=-0.053;QD=15.64;ReadPosRankSum=-4.160;SNPEFF_AMINO_ACID_CHANGE=I107M;SNPEFF_CODON_CHANGE=atC/atG;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1337288_1337636;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MRPL20;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCRIPT_I [...]
+1	1337687	rs141850625	G	A	269.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.669;DB;DP=1105;Dels=0.00;FS=0.000;HaplotypeScore=0.1656;InbreedingCoeff=-0.0103;MLEAC=1;MLEAF=0.010;MQ=59.67;MQ0=0;MQRankSum=-0.661;QD=10.77;ReadPosRankSum=-1.696;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MRPL20;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000477686;VQSLOD=8.00;culprit=FS	GT:AD:DP:GQ:PL	0/0:29,0:29:87:0,87,1096	0/0:37,0:37:99:0,1 [...]
+1	1341185	rs17160977	A	G	873.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-5.963;DB;DP=5520;Dels=0.00;FS=1.020;HaplotypeScore=0.0385;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.58;MQ0=0;MQRankSum=2.761;QD=11.64;ReadPosRankSum=-1.514;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MRPL20;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000477686;VQSLOD=8.51;culprit=FS	GT:AD:DP:GQ:PL	0/0:127,0:127:99:0,382,4696	0/0:126,0:126:99: [...]
+1	1342271	.	TC	T	304.13	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.667;DP=3006;FS=0.000;HaplotypeScore=7.2508;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.73;MQ0=0;MQRankSum=-0.821;QD=9.50;RPA=3,2;RU=C;ReadPosRankSum=-1.076;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MRPL20;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000344843;STR	GT:AD:DP:GQ:PL	0/0:52,0:52:99:0,156,1596	0/0:59,0:62:99:0,178,2355	0/0:44,0:44:99:0,132,179 [...]
+1	1342394	rs11548045	G	A	2793.12	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=-8.131;DB;DP=5927;Dels=0.00;FS=0.000;HaplotypeScore=0.1339;InbreedingCoeff=-0.0309;MLEAC=3;MLEAF=0.030;MQ=59.40;MQ0=0;MQRankSum=2.753;QD=12.64;ReadPosRankSum=-4.290;SNPEFF_AMINO_ACID_CHANGE=F31;SNPEFF_CODON_CHANGE=ttC/ttT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1342289_1342399;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MRPL20;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID [...]
+1	1342612	rs2275915	G	C	3359.61	PASS	AC=34;AF=0.347;AN=98;BaseQRankSum=-5.688;DB;DP=411;Dels=0.00;FS=0.716;HaplotypeScore=0.4018;InbreedingCoeff=0.5425;MLEAC=32;MLEAF=0.327;MQ=59.08;MQ0=0;MQRankSum=2.121;QD=22.10;ReadPosRankSum=-0.849;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MRPL20;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000477686;VQSLOD=5.99;culprit=FS	GT:AD:DP:GQ:PL	0/1:4,2:6:53:53,0,93	0/0:8,0:8:24:0,24,275	0/0 [...]
+1	1372668	rs140319325	C	T	351.23	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.878;DB;DP=699;Dels=0.00;FS=2.168;HaplotypeScore=0.2973;InbreedingCoeff=-0.0127;MLEAC=1;MLEAF=0.010;MQ=58.85;MQ0=0;MQRankSum=0.108;QD=12.54;ReadPosRankSum=-1.190;SNPEFF_AMINO_ACID_CHANGE=G145;SNPEFF_CODON_CHANGE=ggC/ggT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1372307_1372864;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=VWA1;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIP [...]
+1	1374436	rs35368272	C	T	141.23	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.370;DB;DP=770;Dels=0.00;FS=4.576;HaplotypeScore=0.4376;InbreedingCoeff=-0.0128;MLEAC=1;MLEAF=0.010;MQ=59.06;MQ0=0;MQRankSum=2.073;QD=12.84;ReadPosRankSum=0.268;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=VWA1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000471398;VQSLOD=7.18;culprit=MQRankSum	GT:AD:DP:GQ:PL	0/0:12,0:12:36:0,36,431	0/0:10,0:10: [...]
+1	1374451	.	C	T	195.23	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.792;DP=852;Dels=0.00;FS=0.000;HaplotypeScore=0.4411;InbreedingCoeff=-0.0127;MLEAC=1;MLEAF=0.010;MQ=59.02;MQ0=0;MQRankSum=1.257;QD=11.48;ReadPosRankSum=-0.210;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=VWA1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000471398;VQSLOD=5.87;culprit=FS	GT:AD:DP:GQ:PL	0/0:9,0:10:27:0,27,323	0/1:8,9:17:99:235,0,219	0/0:9,0 [...]
+1	1374762	.	G	A	47.10	PASS	AC=3;AF=0.038;AN=80;BaseQRankSum=-1.087;DP=118;Dels=0.00;FS=0.000;HaplotypeScore=0.1537;InbreedingCoeff=0.0544;MLEAC=2;MLEAF=0.025;MQ=58.30;MQ0=0;MQRankSum=0.222;QD=11.77;ReadPosRankSum=0.296;SNPEFF_AMINO_ACID_CHANGE=S311;SNPEFF_CODON_CHANGE=tcG/tcA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1374461_1378262;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=VWA1;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST00000476 [...]
+1	1374805	rs2275916	G	C	124.32	PASS	AC=6;AF=0.167;AN=36;BaseQRankSum=2.050;DB;DP=26;Dels=0.00;FS=0.000;HaplotypeScore=0.0000;InbreedingCoeff=0.0155;MLEAC=6;MLEAF=0.167;MQ=59.44;MQ0=0;MQRankSum=-0.634;QD=13.81;ReadPosRankSum=1.528;SNPEFF_AMINO_ACID_CHANGE=A114P;SNPEFF_CODON_CHANGE=Gcc/Ccc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1374461_1378262;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=VWA1;SNPEFF_IMPACT=MODERATE;SNPEFF_TRA [...]
+1	1374834	rs1892289	A	G	499.07	PASS	AC=27;AF=0.750;AN=36;BaseQRankSum=-1.858;DB;DP=26;Dels=0.00;FS=0.000;HaplotypeScore=0.0555;InbreedingCoeff=0.2144;MLEAC=21;MLEAF=0.583;MQ=58.64;MQ0=0;MQRankSum=0.289;QD=23.77;ReadPosRankSum=0.702;SNPEFF_AMINO_ACID_CHANGE=P123;SNPEFF_CODON_CHANGE=ccA/ccG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1374461_1378262;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=VWA1;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID [...]
+1	1375062	.	C	G	40.36	PASS	AC=2;AF=0.067;AN=30;BaseQRankSum=1.302;DP=22;Dels=0.00;FS=0.000;HaplotypeScore=0.0664;InbreedingCoeff=0.1106;MLEAC=1;MLEAF=0.033;MQ=58.55;MQ0=0;MQRankSum=-0.434;QD=20.18;ReadPosRankSum=1.519;SNPEFF_AMINO_ACID_CHANGE=R199;SNPEFF_CODON_CHANGE=cgC/cgG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1374461_1378262;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=VWA1;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST000004047 [...]
+1	1375185	rs1240699	G	C	285.09	PASS	AC=15;AF=0.375;AN=40;BaseQRankSum=-0.673;DB;DP=32;Dels=0.00;FS=0.000;HaplotypeScore=0.0000;InbreedingCoeff=0.3509;MLEAC=14;MLEAF=0.350;MQ=59.77;MQ0=0;MQRankSum=-0.439;QD=23.76;ReadPosRankSum=-0.966;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=VWA1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000471398;VQSLOD=4.61;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:2,0:2:6:0,6,71	0/0:1,0:1:3: [...]
+1	1375207	rs140247431	T	C	55.74	PASS	AC=4;AF=0.087;AN=46;BaseQRankSum=-0.043;DB;DP=46;Dels=0.00;FS=0.000;HaplotypeScore=0.0869;InbreedingCoeff=0.2174;MLEAC=3;MLEAF=0.065;MQ=59.80;MQ0=0;MQRankSum=-0.904;QD=18.58;ReadPosRankSum=-0.645;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=VWA1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000471398;VQSLOD=5.15;culprit=FS	GT:AD:DP:GQ:PL	0/0:2,0:2:6:0,6,63	0/0:1,0:1:3:0,3,39	./.	0/ [...]
+1	1398008	rs189474682	G	A	321.28	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=1.285;DB;DP=880;Dels=0.00;FS=1.026;HaplotypeScore=0.2535;InbreedingCoeff=-0.0217;MLEAC=2;MLEAF=0.020;MQ=58.94;MQ0=0;MQRankSum=0.944;QD=8.24;ReadPosRankSum=-1.912;SNPEFF_AMINO_ACID_CHANGE=G337R;SNPEFF_CODON_CHANGE=Ggg/Agg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1397980_1398088;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3C;SNPEFF_IMPACT=MODERATE;SNPEFF_TRA [...]
+1	1398032	rs181068440	C	G	180.27	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=2.357;DB;DP=885;Dels=0.00;FS=5.208;HaplotypeScore=0.3278;InbreedingCoeff=-0.0213;MLEAC=2;MLEAF=0.020;MQ=59.43;MQ0=0;MQRankSum=1.463;QD=7.21;ReadPosRankSum=-2.179;SNPEFF_AMINO_ACID_CHANGE=R345G;SNPEFF_CODON_CHANGE=Cgg/Ggg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1397980_1398088;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3C;SNPEFF_IMPACT=MODERATE;SNPEFF_TRA [...]
+1	1398035	rs186498073	C	T	436.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-4.900;DB;DP=886;Dels=0.00;FS=8.274;HaplotypeScore=0.2796;InbreedingCoeff=-0.0107;MLEAC=1;MLEAF=0.010;MQ=59.50;MQ0=0;MQRankSum=1.395;QD=14.54;ReadPosRankSum=1.157;SNPEFF_AMINO_ACID_CHANGE=L346;SNPEFF_CODON_CHANGE=Ctg/Ttg;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1397980_1398088;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3C;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID= [...]
+1	1403772	rs144333159	G	A	583.19	VQSRTrancheSNP98.50to98.60	AC=1;AF=0.010;AN=100;BaseQRankSum=0.835;DB;DP=1170;Dels=0.00;FS=0.833;HaplotypeScore=0.7575;InbreedingCoeff=-0.0103;MLEAC=1;MLEAF=0.010;MQ=50.12;MQ0=7;MQRankSum=2.366;QD=12.41;ReadPosRankSum=1.580;SNPEFF_AMINO_ACID_CHANGE=A366;SNPEFF_CODON_CHANGE=gcG/gcA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1403764_1405538;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3C;SNPEFF_IMPACT=LOW [...]
+1	1403814	rs146537972	C	T	3054.93	PASS	AC=10;AF=0.100;AN=100;BaseQRankSum=-0.791;DB;DP=1361;Dels=0.00;FS=3.107;HaplotypeScore=0.6870;InbreedingCoeff=-0.1113;MLEAC=10;MLEAF=0.100;MQ=52.14;MQ0=0;MQRankSum=-0.322;QD=10.76;ReadPosRankSum=-0.072;SNPEFF_AMINO_ACID_CHANGE=D380;SNPEFF_CODON_CHANGE=gaC/gaT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1403764_1405538;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3C;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRI [...]
+1	1403820	rs111835061	C	T	343.32	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=0.080;DB;DP=1330;Dels=0.00;FS=2.170;HaplotypeScore=0.7434;InbreedingCoeff=-0.0149;MLEAC=1;MLEAF=0.010;MQ=52.20;MQ0=0;MQRankSum=-0.004;QD=13.73;ReadPosRankSum=-0.660;SNPEFF_AMINO_ACID_CHANGE=C382;SNPEFF_CODON_CHANGE=tgC/tgT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1403764_1405538;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3C;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_I [...]
+1	1403887	rs149946098	G	A	830.13	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=-1.786;DB;DP=852;Dels=0.00;FS=0.704;HaplotypeScore=0.8035;InbreedingCoeff=-0.0314;MLEAC=3;MLEAF=0.030;MQ=47.17;MQ0=38;MQRankSum=1.012;QD=10.12;ReadPosRankSum=-0.411;SNPEFF_AMINO_ACID_CHANGE=E405K;SNPEFF_CODON_CHANGE=Gag/Aag;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1403764_1405538;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3C;SNPEFF_IMPACT=MODERATE;SNPEFF_ [...]
+1	1403894	rs145079480	A	G	265.22	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=0.648;DB;DP=790;Dels=0.00;FS=4.077;HaplotypeScore=0.6679;InbreedingCoeff=-0.0120;MLEAC=1;MLEAF=0.010;MQ=44.58;MQ0=62;MQRankSum=-0.139;QD=10.20;ReadPosRankSum=-1.079;SNPEFF_AMINO_ACID_CHANGE=E407G;SNPEFF_CODON_CHANGE=gAg/gGg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1403764_1405538;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3C;SNPEFF_IMPACT=MODERATE;SNPEFF_ [...]
+1	1403972	rs111566296	C	CG	6155.76	PASS	AC=39;AF=0.390;AN=100;BaseQRankSum=1.303;DB;DP=677;FS=5.716;HaplotypeScore=8.2453;InbreedingCoeff=0.2320;MLEAC=39;MLEAF=0.390;MQ=26.73;MQ0=0;MQRankSum=-0.020;QD=13.24;RPA=2,3;RU=G;ReadPosRankSum=-0.860;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3C;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000484537;STR	GT:AD:DP:GQ:PL	0/0:3,0:3:9:0,9,115	0/0:7,0:7:21:0,21,355	0/0:9,0:9:27:0,2 [...]
+1	1404001	rs149123833	G	T	813.05	VQSRTrancheSNP98.50to98.60	AC=9;AF=0.090;AN=100;BaseQRankSum=3.894;DB;DP=751;Dels=0.00;FS=13.258;HaplotypeScore=0.4328;InbreedingCoeff=-0.1056;MLEAC=9;MLEAF=0.090;MQ=36.60;MQ0=162;MQRankSum=1.710;QD=5.69;ReadPosRankSum=-2.329;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3C;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000484537;VQSLOD=0.725;culprit=MQ	GT:AD:DP:GQ:PL	0/0:11,0:11:27:0,27,2 [...]
+1	1404016	rs12089719	G	A	5585.21	VQSRTrancheSNP99.00to99.30	AC=22;AF=0.220;AN=100;BaseQRankSum=5.688;DB;DP=778;Dels=0.00;FS=46.403;HaplotypeScore=0.6541;InbreedingCoeff=0.3869;MLEAC=22;MLEAF=0.220;MQ=41.20;MQ0=108;MQRankSum=0.582;QD=16.10;ReadPosRankSum=-0.183;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3C;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000484537;VQSLOD=-1.039e-01;culprit=FS	GT:AD:DP:GQ:PL	0/0:13,0:13:30 [...]
+1	1404053	.	C	CG	39.94	Indel_QD	AC=4;AF=0.040;AN=100;BaseQRankSum=3.636;DP=720;FS=53.688;HaplotypeScore=10.8209;InbreedingCoeff=-0.0568;MLEAC=3;MLEAF=0.030;MQ=48.68;MQ0=0;MQRankSum=1.313;QD=0.91;RPA=4,5;RU=G;ReadPosRankSum=-3.619;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3C;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000484537;STR	GT:AD:DP:GQ:PL	0/0:15,1:16:39:0,39,541	0/0:2,0:2:6:0,6,41	0/0:12,0:13:36:0,36,462	0/0 [...]
+1	1404076	.	C	A	243.31	VQSRTrancheSNP98.90to99.00	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.635;DP=646;Dels=0.00;FS=1.469;HaplotypeScore=0.2198;InbreedingCoeff=-0.0169;MLEAC=1;MLEAF=0.010;MQ=42.78;MQ0=62;MQRankSum=1.530;QD=8.39;ReadPosRankSum=0.452;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3C;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000484537;VQSLOD=0.142;culprit=MQ	GT:AD:DP:GQ:PL	0/0:17,0:17:24:0,24,308	0/0:3,0:3:9: [...]
+1	1412659	rs146343349	G	T	1349.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=5.456;DB;DP=1886;Dels=0.00;FS=0.000;HaplotypeScore=0.0934;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=57.05;MQ0=0;MQRankSum=2.018;QD=14.35;ReadPosRankSum=-4.364;SNPEFF_AMINO_ACID_CHANGE=A71S;SNPEFF_CODON_CHANGE=Gcc/Tcc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1412654_1412730;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODERATE;SNPEFF_T [...]
+1	1412761	rs112572711	G	A	573.24	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=0.363;DB;DP=1663;Dels=0.00;FS=5.913;HaplotypeScore=0.2278;InbreedingCoeff=-0.0126;MLEAC=1;MLEAF=0.010;MQ=56.91;MQ0=0;MQRankSum=2.675;QD=15.09;ReadPosRankSum=-1.983;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000308647;VQSLOD=4.74;culprit=MQ	GT:AD:DP:GQ:PL	0/0:40,0:40:99:0,120,1456	0/0:26,0:26:78:0,78,936 [...]
+1	1416222	rs147329037	C	T	951.69	VQSRTrancheSNP99.50to99.90	AC=3;AF=0.031;AN=96;BaseQRankSum=-2.937;DB;DP=1817;Dels=0.00;FS=1.522;HaplotypeScore=0.2027;InbreedingCoeff=0.6251;MLEAC=3;MLEAF=0.031;MQ=22.90;MQ0=307;MQRankSum=0.808;QD=10.81;ReadPosRankSum=2.746;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000308647;VQSLOD=-4.666e+00;culprit=MQ	GT:AD:DP:GQ:PL	0/0:44,0:44:99:0,132, [...]
+1	1416235	.	GCTT	G	1256.99	PASS	AC=4;AF=0.042;AN=96;BaseQRankSum=0.001;DP=2031;FS=25.307;HaplotypeScore=7.1005;InbreedingCoeff=0.4615;MLEAC=4;MLEAF=0.042;MQ=21.02;MQ0=0;MQRankSum=3.632;QD=6.35;RPA=2,1;RU=CTT;ReadPosRankSum=-1.166;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000308647;STR	GT:AD:DP:GQ:PL	0/0:49,0:49:99:0,147,1474	0/0:29,0:29:87:0,87,872	0/0:37,0:37:99:0,111,213 [...]
+1	1416236	rs192308564	C	G	224.37	VQSRTrancheSNP99.50to99.90	AC=1;AF=0.010;AN=96;BaseQRankSum=1.162;DB;DP=2096;Dels=0.04;FS=0.000;HaplotypeScore=2.4425;InbreedingCoeff=-0.0113;MLEAC=1;MLEAF=0.010;MQ=21.00;MQ0=369;MQRankSum=2.565;QD=3.03;ReadPosRankSum=2.843;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000308647;VQSLOD=-3.394e+00;culprit=QD	GT:AD:DP:GQ:PL	0/0:51,0:51:99:0,153,1 [...]
+1	1416358	.	G	A	216.80	VQSRTrancheSNP99.50to99.90	AC=3;AF=0.031;AN=98;BaseQRankSum=-3.682;DP=1343;Dels=0.00;FS=0.000;HaplotypeScore=0.6448;InbreedingCoeff=0.4754;MLEAC=3;MLEAF=0.031;MQ=26.11;MQ0=162;MQRankSum=-1.791;QD=3.87;ReadPosRankSum=-2.273;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000308647;VQSLOD=-3.925e+00;culprit=QD	GT:AD:DP:GQ:PL	0/0:47,0:47:99:0,141,1657	0/0:28, [...]
+1	1417662	rs143114169	A	G	367.19	VQSRTrancheSNP99.00to99.30	AC=1;AF=0.010;AN=100;BaseQRankSum=1.446;DB;DP=1370;Dels=0.00;FS=1.919;HaplotypeScore=0.4093;InbreedingCoeff=-0.0105;MLEAC=1;MLEAF=0.010;MQ=34.18;MQ0=71;MQRankSum=-2.257;QD=7.06;ReadPosRankSum=-0.090;SNPEFF_AMINO_ACID_CHANGE=Q114R;SNPEFF_CODON_CHANGE=cAg/cGg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1417654_1417683;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_I [...]
+1	1417696	rs819970	C	G	3427.28	VQSRTrancheSNP99.50to99.90	AC=73;AF=0.777;AN=94;BaseQRankSum=-2.326;DB;DP=481;Dels=0.00;FS=6.189;HaplotypeScore=0.2872;InbreedingCoeff=0.4787;MLEAC=72;MLEAF=0.766;MQ=30.06;MQ0=124;MQRankSum=-12.476;QD=9.96;ReadPosRankSum=-0.368;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000308647;VQSLOD=-4.339e+00;culprit=MQ	GT:AD:DP:GQ:PL	1/1:0,2:2:6:63,6,0	0 [...]
+1	1417927	rs141143061	C	T	581.18	VQSRTrancheSNP99.00to99.30	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.647;DB;DP=4283;Dels=0.00;FS=6.388;HaplotypeScore=0.2720;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=35.90;MQ0=30;MQRankSum=-1.563;QD=7.75;ReadPosRankSum=1.461;SNPEFF_AMINO_ACID_CHANGE=T122M;SNPEFF_CODON_CHANGE=aCg/aTg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1417925_1417994;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_I [...]
+1	1418004	rs819972	T	C	7985.23	VQSRTrancheSNP99.50to99.90	AC=41;AF=0.410;AN=100;BaseQRankSum=13.999;DB;DP=2489;Dels=0.00;FS=2.886;HaplotypeScore=0.5463;InbreedingCoeff=0.4485;MLEAC=41;MLEAF=0.410;MQ=36.07;MQ0=196;MQRankSum=-25.569;QD=7.17;ReadPosRankSum=3.163;SNPEFF_AMINO_ACID_CHANGE=F86L;SNPEFF_CODON_CHANGE=Ttc/Ctc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1417925_1418042;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_I [...]
+1	1418015	.	G	C	120.18	VQSRTrancheSNP99.30to99.50	AC=1;AF=0.010;AN=100;BaseQRankSum=-5.372;DP=2151;Dels=0.00;FS=2.140;HaplotypeScore=0.5893;InbreedingCoeff=-0.0102;MLEAC=1;MLEAF=0.010;MQ=36.55;MQ0=168;MQRankSum=-4.142;QD=1.72;ReadPosRankSum=0.479;SNPEFF_AMINO_ACID_CHANGE=Q89H;SNPEFF_CODON_CHANGE=caG/caC;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1417925_1418042;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODERAT [...]
+1	1420366	.	C	T	212.39	VQSRTrancheSNP99.50to99.90	AC=2;AF=0.037;AN=54;BaseQRankSum=-0.522;DP=475;Dels=0.00;FS=5.209;HaplotypeScore=0.2966;InbreedingCoeff=-0.0907;MLEAC=2;MLEAF=0.037;MQ=14.97;MQ0=180;MQRankSum=0.293;QD=1.93;ReadPosRankSum=-1.452;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378736;VQSLOD=-4.575e+00;culprit=QD	GT:AD:DP:GQ:PL	0/0:4,0:4:12:0,12,115	0/0:5,0: [...]
+1	1420453	rs150679247	G	A	37.68	VQSRTrancheSNP99.00to99.30	AC=1;AF=0.010;AN=98;BaseQRankSum=0.158;DB;DP=485;Dels=0.00;FS=7.172;HaplotypeScore=0.2560;InbreedingCoeff=-0.0267;MLEAC=1;MLEAF=0.010;MQ=31.75;MQ0=39;MQRankSum=0.526;QD=4.71;ReadPosRankSum=-1.128;SNPEFF_AMINO_ACID_CHANGE=V164I;SNPEFF_CODON_CHANGE=Gtc/Atc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1420396_1420551;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPAC [...]
+1	1420532	rs185762308	C	T	1335.22	VQSRTrancheSNP99.00to99.30	AC=3;AF=0.030;AN=100;BaseQRankSum=-0.224;DB;DP=1361;Dels=0.00;FS=1.702;HaplotypeScore=0.7451;InbreedingCoeff=-0.0335;MLEAC=3;MLEAF=0.030;MQ=35.28;MQ0=20;MQRankSum=3.341;QD=9.08;ReadPosRankSum=1.472;SNPEFF_AMINO_ACID_CHANGE=A111V;SNPEFF_CODON_CHANGE=gCg/gTg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1420396_1420551;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_I [...]
+1	1420568	.	G	C	112.25	VQSRTrancheSNP99.00to99.30	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.936;DP=953;Dels=0.00;FS=0.000;HaplotypeScore=1.3774;InbreedingCoeff=-0.0136;MLEAC=1;MLEAF=0.010;MQ=36.24;MQ0=27;MQRankSum=-1.313;QD=5.91;ReadPosRankSum=-2.790;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378736;VQSLOD=-5.889e-01;culprit=MQ	GT:AD:DP:GQ:PL	0/0:17,0:17:51:0,51,567	0/0:1 [...]
+1	1421128	.	T	G	276.13	VQSRTrancheSNP99.50to99.90	AC=13;AF=0.130;AN=100;BaseQRankSum=-7.555;DP=393;Dels=0.00;FS=68.315;HaplotypeScore=0.7827;InbreedingCoeff=-0.1731;MLEAC=12;MLEAF=0.120;MQ=46.06;MQ0=8;MQRankSum=-4.746;QD=2.28;ReadPosRankSum=-9.849;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378736;VQSLOD=-2.256e+00;culprit=FS	GT:AD:DP:GQ:PL	0/0:7,0:7:21:0,21,236	0/0:4 [...]
+1	1421153	rs188705235	C	T	77.20	VQSRTrancheSNP98.80to98.90	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.657;DB;DP=1003;Dels=0.00;FS=3.683;HaplotypeScore=0.4801;InbreedingCoeff=-0.0111;MLEAC=1;MLEAF=0.010;MQ=46.73;MQ0=8;MQRankSum=0.753;QD=3.22;ReadPosRankSum=-0.643;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378736;VQSLOD=0.343;culprit=QD	GT:AD:DP:GQ:PL	0/0:22,0:22:66:0,66,805 [...]
+1	1421188	rs112490584	C	A	133.18	VQSRTrancheSNP99.00to99.30	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.543;DB;DP=1647;Dels=0.00;FS=1.483;HaplotypeScore=1.1780;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=40.64;MQ0=46;MQRankSum=-1.252;QD=6.34;ReadPosRankSum=0.094;SNPEFF_AMINO_ACID_CHANGE=P126;SNPEFF_CODON_CHANGE=ccC/ccA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1421162_1421224;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=L [...]
+1	1421248	rs145894390	T	C	1684.45	VQSRTrancheSNP99.00to99.30	AC=6;AF=0.060;AN=100;BaseQRankSum=-0.183;DB;DP=1547;Dels=0.00;FS=19.153;HaplotypeScore=0.3628;InbreedingCoeff=0.2906;MLEAC=6;MLEAF=0.060;MQ=46.12;MQ0=10;MQRankSum=-5.604;QD=8.77;ReadPosRankSum=-2.781;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378736;VQSLOD=-6.542e-01;culprit=MQ	GT:AD:DP:GQ:PL	0/0:27,0:27:81 [...]
+1	1421531	rs819976	C	A	54816.70	VQSRTrancheSNP98.90to99.00	AC=46;AF=0.460;AN=100;BaseQRankSum=-18.634;DB;DP=3675;Dels=0.00;FS=7.754;HaplotypeScore=0.8461;InbreedingCoeff=0.2754;MLEAC=46;MLEAF=0.460;MQ=52.66;MQ0=8;MQRankSum=-6.282;QD=23.36;ReadPosRankSum=2.204;SNPEFF_AMINO_ACID_CHANGE=T152;SNPEFF_CODON_CHANGE=acC/acA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1421490_1421615;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT= [...]
+1	1421579	rs142840431	T	C	4065.26	VQSRTrancheSNP99.30to99.50	AC=4;AF=0.040;AN=100;BaseQRankSum=1.924;DB;DP=3196;Dels=0.00;FS=0.000;HaplotypeScore=0.6807;InbreedingCoeff=0.4792;MLEAC=4;MLEAF=0.040;MQ=53.43;MQ0=7;MQRankSum=-8.089;QD=19.54;ReadPosRankSum=-0.037;SNPEFF_AMINO_ACID_CHANGE=Y168;SNPEFF_CODON_CHANGE=taT/taC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1421490_1421615;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=L [...]
+1	1421916	.	T	C	7110.06	VQSRTrancheSNP99.50to99.90	AC=31;AF=0.310;AN=100;BaseQRankSum=13.113;DP=3246;Dels=0.00;FS=174.485;HaplotypeScore=1.2890;InbreedingCoeff=-0.4526;MLEAC=31;MLEAF=0.310;MQ=25.28;MQ0=802;MQRankSum=-8.780;QD=3.13;ReadPosRankSum=2.018;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378736;VQSLOD=-1.532e+01;culprit=FS	GT:AD:DP:GQ:PL	0/1:52,23:72:99:294,0,9 [...]
+1	1421954	rs137911966	G	A	305.25	VQSRTrancheSNP99.50to99.90	AC=2;AF=0.020;AN=100;BaseQRankSum=-6.408;DB;DP=2879;Dels=0.00;FS=0.000;HaplotypeScore=0.9177;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=17.92;MQ0=1278;MQRankSum=1.314;QD=2.21;ReadPosRankSum=-1.783;SNPEFF_AMINO_ACID_CHANGE=A191T;SNPEFF_CODON_CHANGE=Gcc/Acc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1421924_1422048;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF [...]
+1	1421991	rs860213	G	A	6436.80	VQSRTrancheSNP99.50to99.90	AC=35;AF=0.357;AN=98;BaseQRankSum=-7.502;DB;DP=2136;Dels=0.00;FS=1.101;HaplotypeScore=1.2296;InbreedingCoeff=0.0434;MLEAC=35;MLEAF=0.357;MQ=18.20;MQ0=842;MQRankSum=3.214;QD=4.48;ReadPosRankSum=0.116;SNPEFF_AMINO_ACID_CHANGE=R203Q;SNPEFF_CODON_CHANGE=cGg/cAg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1421924_1422048;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMP [...]
+1	1423229	rs145173454	T	C	746.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=2.642;DB;DP=4986;Dels=0.00;FS=0.770;HaplotypeScore=1.1541;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=55.56;MQ0=1;MQRankSum=-1.229;QD=9.95;ReadPosRankSum=2.322;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378736;VQSLOD=1.83;culprit=MQ	GT:AD:DP:GQ:PL	0/0:118,0:117:99:0,352,4347	0/0:107,0:106:99:0 [...]
+1	1423237	rs187809296	T	C	843.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=4.239;DB;DP=5139;Dels=0.00;FS=0.000;HaplotypeScore=1.3000;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=55.76;MQ0=1;MQRankSum=-2.295;QD=11.24;ReadPosRankSum=0.151;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378736;VQSLOD=0.876;culprit=MQ	GT:AD:DP:GQ:PL	0/0:121,0:120:99:0,361,4379	0/0:110,0:109:99 [...]
+1	1423267	rs819977	A	G	54080.08	VQSRTrancheSNP98.90to99.00	AC=47;AF=0.470;AN=100;BaseQRankSum=-15.475;DB;DP=3489;Dels=0.00;FS=0.655;HaplotypeScore=2.7184;InbreedingCoeff=0.3175;MLEAC=47;MLEAF=0.470;MQ=55.37;MQ0=1;MQRankSum=-5.926;QD=23.64;ReadPosRankSum=-11.494;SNPEFF_AMINO_ACID_CHANGE=A413;SNPEFF_CODON_CHANGE=gcA/gcG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1423243_1423294;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPAC [...]
+1	1423282	.	GAAGC	G	2049.23	Indel_FS	AC=4;AF=0.040;AN=100;BaseQRankSum=-10.989;DP=2367;FS=555.690;HaplotypeScore=78.2953;InbreedingCoeff=-0.0417;MLEAC=4;MLEAF=0.040;MQ=55.17;MQ0=0;MQRankSum=-1.048;QD=8.20;ReadPosRankSum=-14.511;SNPEFF_EFFECT=FRAME_SHIFT;SNPEFF_EXON_ID=exon_1_1423243_1423294;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=HIGH;SNPEFF_TRANSCRIPT_ID=ENST00000308647	GT:AD:DP:GQ:PL	0/0:48,0:49:99:0,144,3108	0/0:53,0:53:99: [...]
+1	1423286	.	C	G	17541.69	VQSRTrancheSNP99.90to100.00	AC=44;AF=0.440;AN=100;BaseQRankSum=-11.866;DP=2875;Dels=0.03;FS=3200.000;HaplotypeScore=10.9869;InbreedingCoeff=-0.7857;MLEAC=44;MLEAF=0.440;MQ=51.52;MQ0=16;MQRankSum=-14.757;QD=6.80;ReadPosRankSum=-24.129;SNPEFF_AMINO_ACID_CHANGE=R420G;SNPEFF_CODON_CHANGE=Cga/Gga;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1423243_1423294;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_I [...]
+1	1423294	rs142126053	T	C	728.18	VQSRTrancheSNP99.00to99.30	AC=1;AF=0.010;AN=100;BaseQRankSum=-6.358;DB;DP=3390;Dels=0.00;FS=0.731;HaplotypeScore=7.3617;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=48.23;MQ0=34;MQRankSum=-3.379;QD=9.71;ReadPosRankSum=-1.079;SNPEFF_AMINO_ACID_CHANGE=T422;SNPEFF_CODON_CHANGE=acT/acC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1423243_1423294;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT= [...]
+1	1424695	rs144622790	G	A	1741.12	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=-7.085;DB;DP=2938;Dels=0.00;FS=1.744;HaplotypeScore=0.3042;InbreedingCoeff=-0.0309;MLEAC=3;MLEAF=0.030;MQ=59.42;MQ0=0;MQRankSum=0.940;QD=13.60;ReadPosRankSum=-4.527;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000308647;VQSLOD=7.29;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL	0/0:51,0:51:99:0,153,1798	0/0:53,0: [...]
+1	1425667	rs61737193	T	C	246.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.710;DB;DP=2740;Dels=0.00;FS=1.212;HaplotypeScore=0.9236;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=58.42;MQ0=0;MQRankSum=1.689;QD=9.12;ReadPosRankSum=-1.717;SNPEFF_AMINO_ACID_CHANGE=P259;SNPEFF_CODON_CHANGE=ccT/ccC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1425634_1425804;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID= [...]
+1	1425676	rs61737191	C	T	512.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.098;DB;DP=2613;Dels=0.00;FS=7.843;HaplotypeScore=1.0466;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=58.51;MQ0=0;MQRankSum=0.165;QD=10.90;ReadPosRankSum=0.791;SNPEFF_AMINO_ACID_CHANGE=F262;SNPEFF_CODON_CHANGE=ttC/ttT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1425634_1425804;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID= [...]
+1	1425700	rs819980	T	C	39181.08	PASS	AC=47;AF=0.470;AN=100;BaseQRankSum=1.832;DB;DP=2230;Dels=0.00;FS=3.196;HaplotypeScore=1.0702;InbreedingCoeff=0.3175;MLEAC=47;MLEAF=0.470;MQ=58.58;MQ0=0;MQRankSum=-0.283;QD=24.46;ReadPosRankSum=-1.579;SNPEFF_AMINO_ACID_CHANGE=I270;SNPEFF_CODON_CHANGE=atT/atC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1425634_1425804;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_I [...]
+1	1425753	rs145313947	T	C	419.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.727;DB;DP=2451;Dels=0.00;FS=0.832;HaplotypeScore=0.4628;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=58.86;MQ0=0;MQRankSum=0.888;QD=9.53;ReadPosRankSum=-1.852;SNPEFF_AMINO_ACID_CHANGE=V288A;SNPEFF_CODON_CHANGE=gTg/gCg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1425634_1425804;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODERATE;SNPEFF_T [...]
+1	1425816	rs149187984	G	A	3510.90	PASS	AC=10;AF=0.100;AN=100;BaseQRankSum=-8.599;DB;DP=1301;Dels=0.00;FS=3.484;HaplotypeScore=0.9964;InbreedingCoeff=-0.1112;MLEAC=10;MLEAF=0.100;MQ=56.72;MQ0=0;MQRankSum=2.741;QD=11.04;ReadPosRankSum=3.352;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000308647;VQSLOD=3.54;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:23,0:23:69:0,69,841	0/0:21,0:2 [...]
+1	1426002	.	C	T	177.26	VQSRTrancheSNP99.50to99.90	AC=1;AF=0.010;AN=100;BaseQRankSum=1.622;DP=937;Dels=0.00;FS=0.000;HaplotypeScore=0.4703;InbreedingCoeff=-0.0144;MLEAC=1;MLEAF=0.010;MQ=24.30;MQ0=278;MQRankSum=2.163;QD=2.57;ReadPosRankSum=0.181;SNPEFF_AMINO_ACID_CHANGE=T356M;SNPEFF_CODON_CHANGE=aCg/aTg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1425850_1426051;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODERATE; [...]
+1	1426003	rs143153541	G	A	1109.79	VQSRTrancheSNP99.50to99.90	AC=6;AF=0.060;AN=100;BaseQRankSum=-0.214;DB;DP=937;Dels=0.00;FS=2.936;HaplotypeScore=0.5164;InbreedingCoeff=0.2629;MLEAC=6;MLEAF=0.060;MQ=24.34;MQ0=278;MQRankSum=0.214;QD=6.73;ReadPosRankSum=0.746;SNPEFF_AMINO_ACID_CHANGE=T356;SNPEFF_CODON_CHANGE=acG/acA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1425850_1426051;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=LO [...]
+1	1426098	rs112579524	G	A	228.99	VQSRTrancheSNP99.00to99.30	AC=3;AF=0.030;AN=100;BaseQRankSum=-2.982;DB;DP=371;Dels=0.00;FS=5.553;HaplotypeScore=0.1307;InbreedingCoeff=-0.0735;MLEAC=3;MLEAF=0.030;MQ=28.05;MQ0=115;MQRankSum=1.598;QD=6.03;ReadPosRankSum=0.061;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000308647;VQSLOD=-3.431e-01;culprit=MQ	GT:AD:DP:GQ:PL	0/0:7,0:7:6:0,6,69	0/ [...]
+1	1430971	rs147286181	C	T	1276.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=2.820;DB;DP=2863;Dels=0.00;FS=11.733;HaplotypeScore=0.5863;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=58.96;MQ0=5;MQRankSum=0.396;QD=12.51;ReadPosRankSum=-2.546;SNPEFF_AMINO_ACID_CHANGE=A408V;SNPEFF_CODON_CHANGE=gCg/gTg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1430865_1431581;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODERATE;SNPEFF [...]
+1	1430985	rs139902189	C	T	6084.89	PASS	AC=10;AF=0.100;AN=100;BaseQRankSum=6.004;DB;DP=2316;Dels=0.00;FS=0.393;HaplotypeScore=0.6138;InbreedingCoeff=-0.1111;MLEAC=10;MLEAF=0.100;MQ=59.05;MQ0=3;MQRankSum=2.105;QD=11.66;ReadPosRankSum=-0.895;SNPEFF_AMINO_ACID_CHANGE=R413C;SNPEFF_CODON_CHANGE=Cgc/Tgc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1430865_1431581;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODERATE;SNPEF [...]
+1	1431007	rs149788676	C	T	506.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-5.543;DB;DP=1759;Dels=0.00;FS=5.605;HaplotypeScore=0.8697;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=58.61;MQ0=0;MQRankSum=1.886;QD=12.05;ReadPosRankSum=-1.526;SNPEFF_AMINO_ACID_CHANGE=S420F;SNPEFF_CODON_CHANGE=tCc/tTc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1430865_1431581;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODERATE;SNPEFF_ [...]
+1	1431060	rs9792997	T	C	124.99	VQSRTrancheSNP99.50to99.90	AC=13;AF=0.130;AN=100;BaseQRankSum=10.352;DB;DP=1340;Dels=0.00;FS=176.177;HaplotypeScore=0.7633;InbreedingCoeff=-0.1369;MLEAC=9;MLEAF=0.090;MQ=53.26;MQ0=39;MQRankSum=-14.396;QD=0.43;ReadPosRankSum=-0.769;SNPEFF_AMINO_ACID_CHANGE=Y438H;SNPEFF_CODON_CHANGE=Tac/Cac;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1430865_1431581;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEF [...]
+1	1431075	rs79205801	G	A	424.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=2.462;DB;DP=1597;Dels=0.00;FS=9.400;HaplotypeScore=0.7016;InbreedingCoeff=-0.0103;MLEAC=1;MLEAF=0.010;MQ=50.45;MQ0=45;MQRankSum=0.957;QD=10.88;ReadPosRankSum=-1.411;SNPEFF_AMINO_ACID_CHANGE=G443S;SNPEFF_CODON_CHANGE=Ggc/Agc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1430865_1431581;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODERATE;SNPEFF_T [...]
+1	1431105	.	A	G	115.30	VQSRTrancheSNP99.30to99.50	AC=3;AF=0.030;AN=100;BaseQRankSum=7.242;DP=2265;Dels=0.00;FS=68.246;HaplotypeScore=1.8282;InbreedingCoeff=-0.0311;MLEAC=3;MLEAF=0.030;MQ=49.68;MQ0=41;MQRankSum=-5.059;QD=0.77;ReadPosRankSum=0.649;SNPEFF_AMINO_ACID_CHANGE=M453V;SNPEFF_CODON_CHANGE=Atg/Gtg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1430865_1431581;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODERAT [...]
+1	1431109	rs144198445	G	A	273.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-4.337;DB;DP=2290;Dels=0.00;FS=4.834;HaplotypeScore=2.0661;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=49.72;MQ0=39;MQRankSum=1.426;QD=2.68;ReadPosRankSum=-0.727;SNPEFF_AMINO_ACID_CHANGE=G454E;SNPEFF_CODON_CHANGE=gGg/gAg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1430865_1431581;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODERATE;SNPEFF_ [...]
+1	1431163	rs140441570	G	A	60.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.216;DB;DP=1722;Dels=0.00;FS=4.244;HaplotypeScore=2.5782;InbreedingCoeff=-0.0102;MLEAC=1;MLEAF=0.010;MQ=51.34;MQ0=59;MQRankSum=0.886;QD=3.17;ReadPosRankSum=-0.482;SNPEFF_AMINO_ACID_CHANGE=R472Q;SNPEFF_CODON_CHANGE=cGg/cAg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1430865_1431581;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_IMPACT=MODERATE;SNPEFF_T [...]
+1	1431165	rs9792879	C	T	8551.23	VQSRTrancheSNP99.00to99.30	AC=35;AF=0.350;AN=100;BaseQRankSum=-5.942;DB;DP=1681;Dels=0.00;FS=0.000;HaplotypeScore=2.3589;InbreedingCoeff=-0.5388;MLEAC=35;MLEAF=0.350;MQ=50.88;MQ0=57;MQRankSum=-3.121;QD=6.62;ReadPosRankSum=4.093;SNPEFF_AMINO_ACID_CHANGE=P473S;SNPEFF_CODON_CHANGE=Ccg/Tcg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1430865_1431581;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3B;SNPEFF_ [...]
+1	1447692	rs2274435	G	A	214.71	PASS	AC=9;AF=0.150;AN=60;BaseQRankSum=-2.637;DB;DP=75;Dels=0.00;FS=0.000;HaplotypeScore=0.3060;InbreedingCoeff=0.0818;MLEAC=9;MLEAF=0.150;MQ=43.83;MQ0=0;MQRankSum=-0.652;QD=9.34;ReadPosRankSum=-0.302;SNPEFF_AMINO_ACID_CHANGE=G15D;SNPEFF_CODON_CHANGE=gGc/gAc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1447555_1447853;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCR [...]
+1	1447693	.	C	T	115.43	VQSRTrancheSNP99.00to99.30	AC=2;AF=0.036;AN=56;BaseQRankSum=0.116;DP=68;Dels=0.00;FS=0.000;HaplotypeScore=0.3041;InbreedingCoeff=0.0706;MLEAC=2;MLEAF=0.036;MQ=44.18;MQ0=0;MQRankSum=1.767;QD=23.09;ReadPosRankSum=-0.083;SNPEFF_AMINO_ACID_CHANGE=G15;SNPEFF_CODON_CHANGE=ggC/ggT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1447555_1447853;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIP [...]
+1	1451380	rs9439458	T	C	31300.68	PASS	AC=46;AF=0.460;AN=100;BaseQRankSum=6.904;DB;DP=1675;Dels=0.00;FS=10.137;HaplotypeScore=0.7101;InbreedingCoeff=0.3559;MLEAC=46;MLEAF=0.460;MQ=45.91;MQ0=11;MQRankSum=-1.905;QD=26.21;ReadPosRankSum=0.850;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378755;VQSLOD=1.31;culprit=MQ	GT:AD:DP:GQ:PL	0/0:39,0:39:99:0,114,1437	0/0:32,0:32:96:0,96, [...]
+1	1451489	rs76717221	T	C	9495.78	VQSRTrancheSNP99.00to99.30	AC=22;AF=0.220;AN=100;BaseQRankSum=12.478;DB;DP=1582;Dels=0.00;FS=1.129;HaplotypeScore=1.6089;InbreedingCoeff=0.0666;MLEAC=22;MLEAF=0.220;MQ=27.05;MQ0=285;MQRankSum=-1.239;QD=12.00;ReadPosRankSum=-0.069;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378755;VQSLOD=-5.066e-01;culprit=MQ	GT:AD:DP:GQ:PL	0/0:30,0:30:87:0 [...]
+1	1451490	rs9439460	G	A	8114.19	VQSRTrancheSNP99.00to99.30	AC=20;AF=0.200;AN=100;BaseQRankSum=-7.277;DB;DP=1587;Dels=0.00;FS=0.000;HaplotypeScore=1.5510;InbreedingCoeff=0.1230;MLEAC=20;MLEAF=0.200;MQ=27.16;MQ0=286;MQRankSum=-2.754;QD=11.86;ReadPosRankSum=-0.294;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378755;VQSLOD=-5.326e-01;culprit=MQ	GT:AD:DP:GQ:PL	0/0:31,0:31:90:0, [...]
+1	1454272	rs10159059	T	A	11008.01	VQSRTrancheSNP98.60to98.80	AC=16;AF=0.160;AN=100;BaseQRankSum=-11.336;DB;DP=3111;Dels=0.00;FS=11.158;HaplotypeScore=0.5487;InbreedingCoeff=0.2559;MLEAC=16;MLEAF=0.160;MQ=38.59;MQ0=137;MQRankSum=0.317;QD=13.71;ReadPosRankSum=1.177;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000439513;VQSLOD=0.569;culprit=MQ	GT:AD:DP:GQ:PL	0/0:50,0:50:99:0 [...]
+1	1454412	.	G	A	716.18	VQSRTrancheSNP99.30to99.50	AC=1;AF=0.010;AN=100;BaseQRankSum=-4.069;DP=2648;Dels=0.00;FS=0.000;HaplotypeScore=0.7287;InbreedingCoeff=-0.0102;MLEAC=1;MLEAF=0.010;MQ=34.00;MQ0=26;MQRankSum=-4.553;QD=10.53;ReadPosRankSum=1.449;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000439513;VQSLOD=-1.465e+00;culprit=MQ	GT:AD:DP:GQ:PL	0/0:45,0:45:99:0,108,1127	0/ [...]
+1	1455477	rs3128349	C	T	145.09	VQSRTrancheSNP99.00to99.30	AC=4;AF=0.040;AN=100;BaseQRankSum=-2.805;DB;DP=394;Dels=0.00;FS=3.727;HaplotypeScore=0.1860;InbreedingCoeff=-0.0620;MLEAC=3;MLEAF=0.030;MQ=41.03;MQ0=16;MQRankSum=-3.505;QD=2.74;ReadPosRankSum=-0.492;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000439513;VQSLOD=-1.674e-01;culprit=QD	GT:AD:DP:GQ:PL	0/0:3,0:3:9:0,9,97 [...]
+1	1455533	rs141500603	G	A	385.39	VQSRTrancheSNP99.00to99.30	AC=2;AF=0.020;AN=100;BaseQRankSum=3.924;DB;DP=775;Dels=0.00;FS=6.987;HaplotypeScore=0.2125;InbreedingCoeff=-0.0258;MLEAC=2;MLEAF=0.020;MQ=31.79;MQ0=53;MQRankSum=1.658;QD=6.42;ReadPosRankSum=-0.813;SNPEFF_AMINO_ACID_CHANGE=R176Q;SNPEFF_CODON_CHANGE=cGg/cAg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1455521_1455686;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMP [...]
+1	1455586	rs182976525	C	T	473.26	VQSRTrancheSNP98.90to99.00	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.136;DB;DP=960;Dels=0.00;FS=1.031;HaplotypeScore=0.7750;InbreedingCoeff=-0.0141;MLEAC=1;MLEAF=0.010;MQ=40.48;MQ0=47;MQRankSum=0.526;QD=17.53;ReadPosRankSum=-2.065;SNPEFF_AMINO_ACID_CHANGE=R115W;SNPEFF_CODON_CHANGE=Cgg/Tgg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1455521_1455686;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_I [...]
+1	1455698	rs12065730	C	T	408.25	VQSRTrancheSNP99.00to99.30	AC=2;AF=0.020;AN=100;BaseQRankSum=2.764;DB;DP=1901;Dels=0.00;FS=2.458;HaplotypeScore=0.8946;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=41.71;MQ0=39;MQRankSum=3.827;QD=3.85;ReadPosRankSum=0.010;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000439513;VQSLOD=-5.950e-02;culprit=QD	GT:AD:DP:GQ:PL	0/0:35,0:35:99:0,10 [...]
+1	1455710	rs45605537	C	T	357.25	VQSRTrancheSNP99.00to99.30	AC=2;AF=0.020;AN=100;BaseQRankSum=3.592;DB;DP=1838;Dels=0.00;FS=1.967;HaplotypeScore=0.9073;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=38.17;MQ0=41;MQRankSum=-0.395;QD=6.16;ReadPosRankSum=-2.127;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000439513;VQSLOD=-1.526e-01;culprit=MQ	GT:AD:DP:GQ:PL	0/0:40,0:40:99:0, [...]
+1	1456039	rs2002374	G	A	904.25	VQSRTrancheSNP99.00to99.30	AC=2;AF=0.020;AN=100;BaseQRankSum=-5.601;DB;DP=1479;Dels=0.00;FS=0.000;HaplotypeScore=0.3116;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=37.32;MQ0=28;MQRankSum=-1.993;QD=10.39;ReadPosRankSum=-1.750;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000439513;VQSLOD=-4.850e-02;culprit=MQ	GT:AD:DP:GQ:PL	0/0:32,0:32:96:0 [...]
+1	1458073	rs3118507	A	G	1423.02	VQSRTrancheSNP99.00to99.30	AC=11;AF=0.110;AN=100;BaseQRankSum=6.575;DB;DP=1343;Dels=0.00;FS=0.600;HaplotypeScore=0.4303;InbreedingCoeff=0.0777;MLEAC=11;MLEAF=0.110;MQ=46.28;MQ0=9;MQRankSum=-8.146;QD=9.36;ReadPosRankSum=-1.642;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000439513;VQSLOD=-5.554e-01;culprit=MQ	GT:AD:DP:GQ:PL	0/0:26,0:26:78:0, [...]
+1	1458109	rs185493637	G	A	264.19	VQSRTrancheSNP98.80to98.90	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.956;DB;DP=1710;Dels=0.00;FS=8.142;HaplotypeScore=0.5425;InbreedingCoeff=-0.0104;MLEAC=1;MLEAF=0.010;MQ=41.63;MQ0=50;MQRankSum=1.685;QD=12.01;ReadPosRankSum=-1.531;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000439513;VQSLOD=0.312;culprit=MQ	GT:AD:DP:GQ:PL	0/0:29,0:29:63:0,63, [...]
+1	1458150	rs1135025	T	C	430.25	VQSRTrancheSNP98.60to98.80	AC=2;AF=0.020;AN=100;BaseQRankSum=-3.306;DB;DP=1338;Dels=0.00;FS=0.000;HaplotypeScore=1.5888;InbreedingCoeff=-0.0205;MLEAC=2;MLEAF=0.020;MQ=49.60;MQ0=1;MQRankSum=-1.679;QD=6.83;ReadPosRankSum=1.663;SNPEFF_AMINO_ACID_CHANGE=V141;SNPEFF_CODON_CHANGE=gtT/gtC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1458124_1458160;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMPACT=LOW; [...]
+1	1458237	rs138532467	G	A	1185.54	VQSRTrancheSNP99.00to99.30	AC=4;AF=0.040;AN=100;BaseQRankSum=-2.489;DB;DP=1035;Dels=0.00;FS=11.747;HaplotypeScore=0.4739;InbreedingCoeff=0.4584;MLEAC=4;MLEAF=0.040;MQ=33.91;MQ0=167;MQRankSum=1.814;QD=12.75;ReadPosRankSum=-0.277;SNPEFF_AMINO_ACID_CHANGE=T209;SNPEFF_CODON_CHANGE=acG/acA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1458124_1458279;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMPAC [...]
+1	1458255	rs28675990	T	G	622.67	VQSRTrancheSNP99.50to99.90	AC=14;AF=0.140;AN=100;BaseQRankSum=7.122;DB;DP=1041;Dels=0.00;FS=39.354;HaplotypeScore=0.5928;InbreedingCoeff=0.3090;MLEAC=12;MLEAF=0.120;MQ=35.19;MQ0=149;MQRankSum=-7.184;QD=3.23;ReadPosRankSum=0.155;SNPEFF_AMINO_ACID_CHANGE=L215;SNPEFF_CODON_CHANGE=ctT/ctG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1458124_1458279;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMPACT= [...]
+1	1458285	rs6675874	A	G	1117.66	VQSRTrancheSNP99.50to99.90	AC=18;AF=0.188;AN=96;BaseQRankSum=5.914;DB;DP=843;Dels=0.00;FS=85.621;HaplotypeScore=0.5349;InbreedingCoeff=0.4162;MLEAC=17;MLEAF=0.177;MQ=41.07;MQ0=31;MQRankSum=-8.792;QD=6.24;ReadPosRankSum=0.569;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000429957;VQSLOD=-4.991e+00;culprit=FS	GT:AD:DP:GQ:PL	0/0:10,0:10:30:0,3 [...]
+1	1458857	.	T	G	336.58	VQSRTrancheSNP99.30to99.50	AC=20;AF=0.213;AN=94;BaseQRankSum=-3.780;DP=188;Dels=0.00;FS=68.446;HaplotypeScore=0.2355;InbreedingCoeff=-0.2761;MLEAC=22;MLEAF=0.234;MQ=56.56;MQ0=0;MQRankSum=-1.865;QD=3.47;ReadPosRankSum=-8.265;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000429957;VQSLOD=-1.730e+00;culprit=FS	GT:AD:DP:GQ:PL	0/0:5,0:5:15:0,15,167	0/0:2, [...]
+1	1458954	rs3737714	C	T	4709.41	PASS	AC=15;AF=0.150;AN=100;BaseQRankSum=3.673;DB;DP=1295;Dels=0.00;FS=0.000;HaplotypeScore=0.7616;InbreedingCoeff=0.0873;MLEAC=14;MLEAF=0.140;MQ=55.71;MQ0=2;MQRankSum=4.171;QD=13.34;ReadPosRankSum=-0.458;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000429957;VQSLOD=3.27;culprit=MQ	GT:AD:DP:GQ:PL	0/0:22,0:22:66:0,66,756	0/0:29,0:29:87:0,87,9 [...]
+1	1459352	.	C	T	728.18	VQSRTrancheSNP99.00to99.30	AC=1;AF=0.010;AN=100;BaseQRankSum=3.978;DP=2702;Dels=0.00;FS=1.086;HaplotypeScore=0.1930;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=39.84;MQ0=54;MQRankSum=-2.708;QD=9.71;ReadPosRankSum=-1.300;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000429957;VQSLOD=-2.084e-01;culprit=MQ	GT:AD:DP:GQ:PL	0/0:48,0:48:99:0,138,1531	0/0 [...]
+1	1460581	rs10465902	T	C	1058.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=6.199;DB;DP=3356;Dels=0.00;FS=10.675;HaplotypeScore=0.2881;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=58.35;MQ0=0;MQRankSum=3.690;QD=14.11;ReadPosRankSum=-2.664;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000429957;VQSLOD=5.58;culprit=MQ	GT:AD:DP:GQ:PL	0/0:66,0:66:99:0,199,2207	0/0:67,0:67:99:0,2 [...]
+1	1460614	rs112869160	T	C	782.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=6.572;DB;DP=4702;Dels=0.00;FS=5.972;HaplotypeScore=0.2182;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=57.42;MQ0=0;MQRankSum=-3.192;QD=10.43;ReadPosRankSum=-2.758;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000429957;VQSLOD=1.57;culprit=MQRankSum	GT:AD:DP:GQ:PL	0/0:94,0:94:99:0,283,3396	0/0:99,0:99 [...]
+1	1460703	.	G	A	866.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.218;DP=3264;Dels=0.00;FS=1.199;HaplotypeScore=0.0873;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=57.71;MQ0=0;MQRankSum=0.701;QD=11.55;ReadPosRankSum=-1.799;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000429957;VQSLOD=3.21;culprit=MQ	GT:AD:DP:GQ:PL	0/0:58,0:58:99:0,175,2145	0/0:52,0:52:99:0,156,1965	0/0:6 [...]
+1	1469263	rs6681228	G	T	3003.62	VQSRTrancheSNP99.30to99.50	AC=25;AF=0.250;AN=100;BaseQRankSum=-10.664;DB;DP=693;Dels=0.00;FS=0.000;HaplotypeScore=0.3343;InbreedingCoeff=0.3902;MLEAC=25;MLEAF=0.250;MQ=32.83;MQ0=94;MQRankSum=-0.095;QD=12.21;ReadPosRankSum=2.361;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000400830;VQSLOD=-1.539e+00;culprit=MQ	GT:AD:DP:GQ:PL	0/0:10,0:10:30: [...]
+1	1469289	rs28370384	G	C	10059.26	VQSRTrancheSNP99.50to99.90	AC=47;AF=0.470;AN=100;BaseQRankSum=-1.836;DB;DP=906;Dels=0.00;FS=109.391;HaplotypeScore=0.6061;InbreedingCoeff=0.3928;MLEAC=47;MLEAF=0.470;MQ=42.98;MQ0=5;MQRankSum=-7.096;QD=19.49;ReadPosRankSum=1.899;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000400830;VQSLOD=-4.335e+00;culprit=FS	GT:AD:DP:GQ:PL	0/0:16,0:16:4 [...]
+1	1469341	rs141883472	C	T	1471.25	VQSRTrancheSNP98.90to99.00	AC=2;AF=0.020;AN=100;BaseQRankSum=0.403;DB;DP=2122;Dels=0.00;FS=3.739;HaplotypeScore=0.5763;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=40.95;MQ0=80;MQRankSum=1.115;QD=9.81;ReadPosRankSum=0.183;SNPEFF_AMINO_ACID_CHANGE=T227;SNPEFF_CODON_CHANGE=acC/acT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1469306_1470064;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMPACT=LO [...]
+1	1469412	rs145341309	C	T	1650.25	VQSRTrancheSNP98.50to98.60	AC=2;AF=0.020;AN=100;BaseQRankSum=2.060;DB;DP=2849;Dels=0.00;FS=2.371;HaplotypeScore=0.2823;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=49.22;MQ0=2;MQRankSum=-2.005;QD=12.22;ReadPosRankSum=-0.798;SNPEFF_AMINO_ACID_CHANGE=A251V;SNPEFF_CODON_CHANGE=gCg/gTg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1469306_1470064;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_ [...]
+1	1469427	rs117930150	G	A	605.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.577;DB;DP=2599;Dels=0.00;FS=0.804;HaplotypeScore=0.2501;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=48.74;MQ0=1;MQRankSum=0.934;QD=12.61;ReadPosRankSum=-1.442;SNPEFF_AMINO_ACID_CHANGE=R256H;SNPEFF_CODON_CHANGE=cGt/cAt;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1469306_1470064;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMPACT=MODERATE;SNPEFF_ [...]
+1	1469472	rs115508211	G	C	2196.23	VQSRTrancheSNP99.50to99.90	AC=2;AF=0.020;AN=100;BaseQRankSum=-0.702;DB;DP=1799;Dels=0.00;FS=0.000;HaplotypeScore=0.1760;InbreedingCoeff=0.9978;MLEAC=2;MLEAF=0.020;MQ=49.27;MQ0=1;MQRankSum=-0.247;QD=36.00;ReadPosRankSum=1.712;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=ATAD3A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000400830;VQSLOD=-2.006e+00;culprit=MQ	GT:AD:DP:GQ:PL	0/0:25,0:25:75:0 [...]
+1	1479231	.	G	A	829.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.421;DP=3807;Dels=0.00;FS=9.608;HaplotypeScore=1.2141;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=57.62;MQ0=0;MQRankSum=2.143;QD=11.06;ReadPosRankSum=-1.010;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SSU72;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378725;VQSLOD=3.01;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:82,0:82:99:0,241,2686	0/0:64,0:64:99:0,193 [...]
+1	1479240	rs188372356	G	C	1363.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-1.672;DB;DP=3839;Dels=0.00;FS=20.626;HaplotypeScore=1.1578;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=57.77;MQ0=0;MQRankSum=0.394;QD=11.27;ReadPosRankSum=-1.388;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SSU72;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378725;VQSLOD=2.34;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:84,0:84:99:0,250,3043	0/0:6 [...]
+1	1479333	rs7533	A	G	60021.35	PASS	AC=59;AF=0.590;AN=100;BaseQRankSum=-4.594;DB;DP=2845;Dels=0.00;FS=2.645;HaplotypeScore=0.5403;InbreedingCoeff=0.1319;MLEAC=59;MLEAF=0.590;MQ=58.46;MQ0=0;MQRankSum=-0.451;QD=25.50;ReadPosRankSum=6.130;SNPEFF_AMINO_ACID_CHANGE=P133;SNPEFF_CODON_CHANGE=ccT/ccC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1479249_1479367;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SSU72;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=E [...]
+1	1480226	rs116703397	C	T	6204.20	PASS	AC=7;AF=0.070;AN=100;BaseQRankSum=-9.059;DB;DP=4151;Dels=0.00;FS=1.000;HaplotypeScore=0.4236;InbreedingCoeff=-0.0753;MLEAC=7;MLEAF=0.070;MQ=59.74;MQ0=0;MQRankSum=0.785;QD=12.64;ReadPosRankSum=-3.144;SNPEFF_AMINO_ACID_CHANGE=A127;SNPEFF_CODON_CHANGE=gcG/gcA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1480018_1480382;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SSU72;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_I [...]
+1	1509825	rs6666293	A	G	9439.48	PASS	AC=62;AF=0.620;AN=100;BaseQRankSum=-6.948;DB;DP=459;Dels=0.00;FS=0.000;HaplotypeScore=0.3034;InbreedingCoeff=0.0876;MLEAC=62;MLEAF=0.620;MQ=58.97;MQ0=0;MQRankSum=0.176;QD=23.08;ReadPosRankSum=-0.208;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SSU72;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000291386;VQSLOD=5.79;culprit=MQ	GT:AD:DP:GQ:PL	0/1:6,4:10:94:94,0,160	0/0:4,0:4:12:0,12,142	1/1:0 [...]
+1	1551927	rs7418389	T	C	6794.27	PASS	AC=55;AF=0.550;AN=100;BaseQRankSum=5.713;DB;DP=379;Dels=0.00;FS=2.082;HaplotypeScore=0.5005;InbreedingCoeff=0.0873;MLEAC=56;MLEAF=0.560;MQ=58.96;MQ0=0;MQRankSum=-1.273;QD=22.57;ReadPosRankSum=0.594;SNPEFF_AMINO_ACID_CHANGE=F15L;SNPEFF_CODON_CHANGE=Ttc/Ctc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1551888_1551994;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MIB2;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANS [...]
+1	1558792	rs12755088	T	C	14375.35	PASS	AC=78;AF=0.796;AN=98;BaseQRankSum=-0.296;DB;DP=621;Dels=0.00;FS=12.259;HaplotypeScore=0.6382;InbreedingCoeff=0.2079;MLEAC=78;MLEAF=0.796;MQ=57.72;MQ0=0;MQRankSum=1.818;QD=24.91;ReadPosRankSum=0.301;SNPEFF_AMINO_ACID_CHANGE=M1T;SNPEFF_CODON_CHANGE=aTg/aCg;SNPEFF_EFFECT=START_LOST;SNPEFF_EXON_ID=exon_1_1558769_1559079;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MIB2;SNPEFF_IMPACT=HIGH;SNPEFF_TRANSCRIPT_ID=ENST0 [...]
+1	1559209	rs28681667	G	T	341.33	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-5.495;DB;DP=886;Dels=0.00;FS=4.827;HaplotypeScore=0.4186;InbreedingCoeff=-0.0235;MLEAC=2;MLEAF=0.020;MQ=58.98;MQ0=0;MQRankSum=-0.667;QD=8.53;ReadPosRankSum=-1.247;SNPEFF_AMINO_ACID_CHANGE=G101;SNPEFF_CODON_CHANGE=ggG/ggT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1559154_1559325;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MIB2;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=EN [...]
+1	1559227	rs28414017	T	C	110.32	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=0.797;DB;DP=916;Dels=0.00;FS=3.895;HaplotypeScore=0.5123;InbreedingCoeff=-0.0230;MLEAC=2;MLEAF=0.020;MQ=59.12;MQ0=0;MQRankSum=0.422;QD=5.52;ReadPosRankSum=-0.153;SNPEFF_AMINO_ACID_CHANGE=R107;SNPEFF_CODON_CHANGE=cgT/cgC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1559154_1559325;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MIB2;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST [...]
+1	1560351	.	G	T	355.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.716;DP=1996;Dels=0.00;FS=0.000;HaplotypeScore=0.4526;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.48;MQ0=0;MQRankSum=0.581;QD=16.14;ReadPosRankSum=-1.743;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MIB2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000502470;VQSLOD=5.61;culprit=FS	GT:AD:DP:GQ:PL	0/0:32,0:32:96:0,96,1156	0/0:30,0:30:90:0,90,1109	0/0:35,0: [...]
+1	1560569	rs148874530	T	G	1106.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=4.856;DB;DP=2021;Dels=0.00;FS=2.291;HaplotypeScore=0.2710;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=58.72;MQ0=0;MQRankSum=-0.062;QD=13.49;ReadPosRankSum=-3.836;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MIB2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000502470;VQSLOD=5.66;culprit=MQ	GT:AD:DP:GQ:PL	0/0:41,0:41:99:0,120,1397	0/0:34,0:34:99:0,10 [...]
+1	1560751	rs182928518	T	C	153.47	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-1.852;DB;DP=453;Dels=0.00;FS=1.466;HaplotypeScore=0.2913;InbreedingCoeff=0.7409;MLEAC=1;MLEAF=0.010;MQ=58.39;MQ0=0;MQRankSum=1.039;QD=19.18;ReadPosRankSum=-1.258;SNPEFF_AMINO_ACID_CHANGE=T204;SNPEFF_CODON_CHANGE=acT/acC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1560666_1560808;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MIB2;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=EN [...]
+1	1560778	.	C	G	36.75	VQSRTrancheSNP99.50to99.90	AC=5;AF=0.050;AN=100;BaseQRankSum=-2.184;DP=275;Dels=0.00;FS=51.291;HaplotypeScore=0.1524;InbreedingCoeff=-0.0819;MLEAC=4;MLEAF=0.040;MQ=58.79;MQ0=0;MQRankSum=2.082;QD=1.08;ReadPosRankSum=-3.669;SNPEFF_AMINO_ACID_CHANGE=G213;SNPEFF_CODON_CHANGE=ggC/ggG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1560666_1560808;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MIB2;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCR [...]
+1	1560844	rs72897888	C	T	33.02	PASS	AC=2;AF=0.021;AN=96;BaseQRankSum=-1.773;DB;DP=238;Dels=0.00;FS=1.775;HaplotypeScore=0.1074;InbreedingCoeff=-0.0624;MLEAC=2;MLEAF=0.021;MQ=57.78;MQ0=0;MQRankSum=0.984;QD=4.13;ReadPosRankSum=-1.475;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MIB2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000502470;VQSLOD=3.94;culprit=QD	GT:AD:DP:GQ:PL	0/0:8,0:8:21:0,21,257	0/0:2,0:2:6:0,6,79	0/0:6,0:6: [...]
+1	1560858	rs72897889	C	T	99.47	PASS	AC=2;AF=0.022;AN=92;BaseQRankSum=0.955;DB;DP=221;Dels=0.00;FS=0.000;HaplotypeScore=0.0982;InbreedingCoeff=-0.0670;MLEAC=2;MLEAF=0.022;MQ=57.84;MQ0=0;MQRankSum=1.039;QD=11.05;ReadPosRankSum=-1.345;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MIB2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000502470;VQSLOD=4.69;culprit=MQ	GT:AD:DP:GQ:PL	0/0:7,0:7:18:0,18,202	0/0:2,0:2:6:0,6,79	0/0:6,0:6: [...]
+1	1562072	rs184093072	G	A	61.20	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=2.006;DB;DP=1065;Dels=0.00;FS=0.000;HaplotypeScore=0.7494;InbreedingCoeff=-0.0108;MLEAC=1;MLEAF=0.010;MQ=58.14;MQ0=0;MQRankSum=0.976;QD=3.40;ReadPosRankSum=0.213;SNPEFF_AMINO_ACID_CHANGE=D274N;SNPEFF_CODON_CHANGE=Gac/Aac;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1562030_1562134;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MIB2;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSC [...]
+1	1562128	.	G	T	155.58	PASS	AC=1;AF=0.010;AN=98;BaseQRankSum=-2.833;DP=510;Dels=0.00;FS=0.000;HaplotypeScore=0.3063;InbreedingCoeff=-0.0254;MLEAC=1;MLEAF=0.010;MQ=58.63;MQ0=0;MQRankSum=0.009;QD=17.29;ReadPosRankSum=0.055;SNPEFF_AMINO_ACID_CHANGE=M292I;SNPEFF_CODON_CHANGE=atG/atT;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1562030_1562134;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MIB2;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCRIPT_ID=ENST [...]
+1	1562153	.	C	T	154.28	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.305;DP=323;Dels=0.00;FS=1.653;HaplotypeScore=0.3263;InbreedingCoeff=-0.0577;MLEAC=1;MLEAF=0.010;MQ=57.22;MQ0=0;MQRankSum=1.754;QD=19.29;ReadPosRankSum=0.388;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MIB2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000467597;VQSLOD=3.14;culprit=MQ	GT:AD:DP:GQ:PL	0/0:5,0:5:15:0,15,176	0/0:6,0:6:18:0,18,222	0/0:1,0:1:3:0,3,3 [...]
+1	1562437	rs28510084	C	G	5400.19	PASS	AC=33;AF=0.344;AN=96;BaseQRankSum=-8.127;DB;DP=500;Dels=0.00;FS=2.557;HaplotypeScore=0.2929;InbreedingCoeff=0.1084;MLEAC=33;MLEAF=0.344;MQ=58.56;MQ0=0;MQRankSum=-0.003;QD=18.95;ReadPosRankSum=-1.399;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MIB2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000467597;VQSLOD=5.94;culprit=MQ	GT:AD:DP:GQ:PL	0/1:3,3:6:73:73,0,83	0/0:9,0:9:27:0,27,350	0/0 [...]
+1	1562536	rs11544452	G	A	1007.91	PASS	AC=13;AF=0.130;AN=100;BaseQRankSum=-0.180;DB;DP=474;Dels=0.00;FS=5.546;HaplotypeScore=0.5387;InbreedingCoeff=0.1626;MLEAC=12;MLEAF=0.120;MQ=58.19;MQ0=0;MQRankSum=1.309;QD=12.44;ReadPosRankSum=-1.003;SNPEFF_AMINO_ACID_CHANGE=A376;SNPEFF_CODON_CHANGE=gcG/gcA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1562454_1562587;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MIB2;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID= [...]
+1	1562548	rs143944834	A	G	151.42	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.489;DB;DP=451;Dels=0.00;FS=6.120;HaplotypeScore=0.4829;InbreedingCoeff=-0.0223;MLEAC=1;MLEAF=0.010;MQ=58.39;MQ0=0;MQRankSum=0.802;QD=12.62;ReadPosRankSum=-3.043;SNPEFF_AMINO_ACID_CHANGE=A380;SNPEFF_CODON_CHANGE=gcA/gcG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1562454_1562587;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MIB2;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=E [...]
+1	1562573	.	A	G	92.28	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=2.276;DP=606;Dels=0.00;FS=2.294;HaplotypeScore=0.3420;InbreedingCoeff=-0.0157;MLEAC=1;MLEAF=0.010;MQ=59.01;MQ0=0;MQRankSum=0.508;QD=9.23;ReadPosRankSum=-0.071;SNPEFF_AMINO_ACID_CHANGE=R389G;SNPEFF_CODON_CHANGE=Agg/Ggg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1562454_1562587;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MIB2;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCRIPT_ID=ENST0 [...]
+1	1562677	.	T	G	79.84	VQSRTrancheSNP99.50to99.90	AC=7;AF=0.070;AN=100;BaseQRankSum=-14.207;DP=1651;Dels=0.00;FS=109.892;HaplotypeScore=1.4497;InbreedingCoeff=-0.0775;MLEAC=6;MLEAF=0.060;MQ=58.48;MQ0=0;MQRankSum=0.290;QD=0.30;ReadPosRankSum=-11.142;SNPEFF_AMINO_ACID_CHANGE=V394G;SNPEFF_CODON_CHANGE=gTg/gGg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1562676_1562824;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MIB2;SNPEFF_IMPACT=MODERAT [...]
+1	1562702	rs75147751	C	T	239.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.427;DB;DP=2039;Dels=0.00;FS=1.258;HaplotypeScore=1.0287;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=58.71;MQ0=0;MQRankSum=1.468;QD=9.97;ReadPosRankSum=-0.248;SNPEFF_AMINO_ACID_CHANGE=T402;SNPEFF_CODON_CHANGE=acC/acT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1562676_1562824;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MIB2;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=EN [...]
+1	1562852	.	G	A	136.38	VQSRTrancheSNP98.80to98.90	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.567;DP=830;Dels=0.00;FS=0.000;HaplotypeScore=0.6748;InbreedingCoeff=-0.0200;MLEAC=1;MLEAF=0.010;MQ=51.74;MQ0=16;MQRankSum=2.321;QD=5.68;ReadPosRankSum=-0.864;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MIB2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000467597;VQSLOD=0.262;culprit=MQ	GT:AD:DP:GQ:PL	0/0:16,0:16:39:0,39,493	0/0:14,0:14:4 [...]
+1	1563100	rs76957527	C	T	70.36	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.576;DB;DP=589;Dels=0.00;FS=0.000;HaplotypeScore=0.5085;InbreedingCoeff=-0.0227;MLEAC=1;MLEAF=0.010;MQ=58.77;MQ0=0;MQRankSum=-0.568;QD=7.04;ReadPosRankSum=-0.432;SNPEFF_AMINO_ACID_CHANGE=A459V;SNPEFF_CODON_CHANGE=gCg/gTg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1563053_1563209;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MIB2;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANS [...]
+1	1563105	rs74808013	G	A	93.43	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.343;DB;DP=595;Dels=0.00;FS=4.080;HaplotypeScore=0.4613;InbreedingCoeff=-0.0223;MLEAC=1;MLEAF=0.010;MQ=58.98;MQ0=0;MQRankSum=0.988;QD=9.34;ReadPosRankSum=-0.042;SNPEFF_AMINO_ACID_CHANGE=A461T;SNPEFF_CODON_CHANGE=Gcc/Acc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1563053_1563209;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MIB2;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSC [...]
+1	1563401	rs74047812	C	T	262.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.182;DB;DP=1859;Dels=0.00;FS=0.000;HaplotypeScore=0.4129;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.43;MQ0=0;MQRankSum=0.103;QD=8.19;ReadPosRankSum=-0.696;SNPEFF_AMINO_ACID_CHANGE=D496;SNPEFF_CODON_CHANGE=gaC/gaT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1563399_1563559;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MIB2;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=EN [...]
+1	1563434	.	C	T	104.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.992;DP=1850;Dels=0.00;FS=6.011;HaplotypeScore=0.2732;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.31;MQ0=0;MQRankSum=1.462;QD=3.59;ReadPosRankSum=-0.724;SNPEFF_AMINO_ACID_CHANGE=I507;SNPEFF_CODON_CHANGE=atC/atT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1563399_1563559;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MIB2;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST0000037871 [...]
+1	1563702	rs142836393	A	G	711.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=5.782;DB;DP=1132;Dels=0.00;FS=7.552;HaplotypeScore=0.4248;InbreedingCoeff=-0.0105;MLEAC=1;MLEAF=0.010;MQ=59.50;MQ0=0;MQRankSum=0.401;QD=14.22;ReadPosRankSum=-0.049;SNPEFF_AMINO_ACID_CHANGE=K566E;SNPEFF_CODON_CHANGE=Aag/Gag;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1563653_1563779;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MIB2;SNPEFF_IMPACT=MODERATE;SNPEFF_TRA [...]
+1	1563789	rs74892851	C	A	3708.51	PASS	AC=19;AF=0.190;AN=100;BaseQRankSum=8.254;DB;DP=920;Dels=0.00;FS=1.263;HaplotypeScore=0.4106;InbreedingCoeff=-0.2358;MLEAC=19;MLEAF=0.190;MQ=58.69;MQ0=0;MQRankSum=1.368;QD=12.36;ReadPosRankSum=0.529;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MIB2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000467597;VQSLOD=5.24;culprit=MQ	GT:AD:DP:GQ:PL	0/0:12,0:12:36:0,36,401	0/1:9,8:17:99:248,0,244 [...]
+1	1564641	.	C	T	261.95	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.092;DP=368;Dels=0.00;FS=0.000;HaplotypeScore=0.1732;InbreedingCoeff=-0.0451;MLEAC=1;MLEAF=0.010;MQ=59.07;MQ0=0;MQRankSum=1.059;QD=10.48;ReadPosRankSum=-3.759;SNPEFF_AMINO_ACID_CHANGE=A712;SNPEFF_CODON_CHANGE=gcC/gcT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1564513_1564691;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MIB2;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST0000037871 [...]
+1	1564712	rs61774907	G	T	650.21	PASS	AC=14;AF=0.149;AN=94;BaseQRankSum=-5.247;DB;DP=301;Dels=0.00;FS=9.243;HaplotypeScore=0.4423;InbreedingCoeff=0.1087;MLEAC=14;MLEAF=0.149;MQ=58.42;MQ0=0;MQRankSum=3.194;QD=12.27;ReadPosRankSum=-0.970;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MIB2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000464570;VQSLOD=4.70;culprit=MQ	GT:AD:DP:GQ:PL	0/0:1,0:1:3:0,3,33	0/1:1,1:2:26:26,0,34	0/0:3,0: [...]
+1	1564769	.	C	T	49.10	PASS	AC=1;AF=0.013;AN=80;BaseQRankSum=0.070;DP=164;Dels=0.00;FS=0.000;HaplotypeScore=0.1680;InbreedingCoeff=-0.0923;MLEAC=1;MLEAF=0.013;MQ=58.21;MQ0=0;MQRankSum=1.150;QD=9.82;ReadPosRankSum=-0.750;SNPEFF_AMINO_ACID_CHANGE=R760W;SNPEFF_CODON_CHANGE=Cgg/Tgg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1564765_1564946;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MIB2;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCRIPT_ID=ENST00 [...]
+1	1564952	rs112177324	TG	T	1418.76	PASS	AC=22;AF=0.224;AN=98;BaseQRankSum=-0.564;DB;DP=323;FS=7.516;HaplotypeScore=4.1421;InbreedingCoeff=0.1477;MLEAC=19;MLEAF=0.194;MQ=60.04;MQ0=0;MQRankSum=2.617;QD=16.12;RPA=6,5;RU=G;ReadPosRankSum=-1.605;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MIB2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000464570;STR	GT:AD:DP:GQ:PL	0/0:3,0:3:9:0,9,74	0/1:2,5:8:50:163,0,50	0/1:3,1:4:17:17,0,95 [...]
+1	1565942	rs116306698	C	G	557.79	PASS	AC=2;AF=0.020;AN=98;BaseQRankSum=6.996;DB;DP=394;Dels=0.00;FS=0.000;HaplotypeScore=0.1004;InbreedingCoeff=-0.0614;MLEAC=2;MLEAF=0.020;MQ=59.00;MQ0=0;MQRankSum=0.626;QD=14.68;ReadPosRankSum=-1.012;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MIB2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000464570;VQSLOD=6.43;culprit=FS	GT:AD:DP:GQ:PL	0/0:6,0:6:18:0,18,201	0/0:4,0:4:12:0,12,129	0/0:4 [...]
+1	1569784	.	C	G	35.69	VQSRTrancheSNP99.50to99.90	AC=7;AF=0.140;AN=50;BaseQRankSum=2.233;DP=127;Dels=0.00;FS=6.842;HaplotypeScore=0.1196;InbreedingCoeff=0.0972;MLEAC=6;MLEAF=0.120;MQ=28.09;MQ0=20;MQRankSum=-1.916;QD=1.37;ReadPosRankSum=-1.251;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MIB2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000355826;VQSLOD=-2.110e+00;culprit=QD	GT:AD:DP:GQ:PL	./.	0/0:4,0:4:12:0,12,155	1/1:0,1:1 [...]
+1	1571660	.	C	G	40.73	VQSRTrancheSNP99.50to99.90	AC=2;AF=0.027;AN=74;BaseQRankSum=-1.263;DP=417;Dels=0.00;FS=0.000;HaplotypeScore=0.3899;InbreedingCoeff=0.1904;MLEAC=1;MLEAF=0.014;MQ=18.02;MQ0=239;MQRankSum=-0.816;QD=4.07;ReadPosRankSum=0.863;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MMP23B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000356026;VQSLOD=-4.305e+00;culprit=MQ	GT:AD:DP:GQ:PL	0/0:12,0:12:12:0,12,134	0/0:8,0: [...]
+1	1571661	.	G	C	495.47	VQSRTrancheSNP99.50to99.90	AC=22;AF=0.379;AN=58;BaseQRankSum=-1.358;DP=316;Dels=0.00;FS=0.000;HaplotypeScore=0.4288;InbreedingCoeff=0.0333;MLEAC=22;MLEAF=0.379;MQ=15.96;MQ0=191;MQRankSum=1.153;QD=3.51;ReadPosRankSum=-4.144;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MMP23B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000356026;VQSLOD=-4.086e+00;culprit=MQ	GT:AD:DP:GQ:PL	1/1:7,1:8:3:33,3,0	./.	1/1:4, [...]
+1	1571802	rs116527252	G	A	102.28	VQSRTrancheSNP98.90to99.00	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.382;DB;DP=1148;Dels=0.00;FS=6.513;HaplotypeScore=0.4852;InbreedingCoeff=-0.0150;MLEAC=1;MLEAF=0.010;MQ=42.99;MQ0=10;MQRankSum=-1.164;QD=3.01;ReadPosRankSum=-1.157;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MMP23B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000356026;VQSLOD=0.017;culprit=QD	GT:AD:DP:GQ:PL	0/0:32,0:32:96:0,96, [...]
+1	1571829	rs147836863	A	G	1091.87	VQSRTrancheSNP99.00to99.30	AC=14;AF=0.140;AN=100;BaseQRankSum=9.140;DB;DP=896;Dels=0.00;FS=27.714;HaplotypeScore=0.4002;InbreedingCoeff=-0.1647;MLEAC=14;MLEAF=0.140;MQ=43.86;MQ0=12;MQRankSum=-5.083;QD=2.74;ReadPosRankSum=-3.941;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MMP23B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000356026;VQSLOD=-3.691e-01;culprit=QD	GT:AD:DP:GQ:PL	0/0:26,0:26:7 [...]
+1	1571841	rs150949339	A	C	105.98	VQSRTrancheSNP99.30to99.50	AC=6;AF=0.060;AN=100;BaseQRankSum=5.936;DB;DP=718;Dels=0.00;FS=30.375;HaplotypeScore=0.3256;InbreedingCoeff=-0.0744;MLEAC=4;MLEAF=0.040;MQ=44.58;MQ0=11;MQRankSum=-7.291;QD=0.76;ReadPosRankSum=-2.858;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MMP23B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000356026;VQSLOD=-1.065e+00;culprit=QD	GT:AD:DP:GQ:PL	0/0:21,0:21:63:0 [...]
+1	1571865	.	A	C	200.36	VQSRTrancheSNP99.50to99.90	AC=18;AF=0.180;AN=100;BaseQRankSum=-6.695;DP=502;Dels=0.00;FS=200.401;HaplotypeScore=0.3255;InbreedingCoeff=-0.2185;MLEAC=15;MLEAF=0.150;MQ=39.87;MQ0=41;MQRankSum=-7.440;QD=1.00;ReadPosRankSum=-8.681;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MMP23B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000356026;VQSLOD=-1.388e+01;culprit=FS	GT:AD:DP:GQ:PL	0/0:14,4:18:32:0,32,367	0 [...]
+1	1571888	.	G	A	97.09	VQSRTrancheSNP99.50to99.90	AC=5;AF=0.050;AN=100;BaseQRankSum=-5.574;DP=739;Dels=0.00;FS=61.390;HaplotypeScore=0.5499;InbreedingCoeff=-0.0735;MLEAC=5;MLEAF=0.050;MQ=30.99;MQ0=135;MQRankSum=-0.378;QD=0.92;ReadPosRankSum=-2.327;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MMP23B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000356026;VQSLOD=-3.143e+00;culprit=QD	GT:AD:DP:GQ:PL	0/0:24,0:24:51:0,51,603	0/0: [...]
+1	1572035	rs74047814	C	T	445.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.945;DB;DP=2577;Dels=0.00;FS=0.000;HaplotypeScore=0.3019;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=58.20;MQ0=0;MQRankSum=-1.069;QD=13.91;ReadPosRankSum=-0.994;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MMP23B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000356026;VQSLOD=4.86;culprit=FS	GT:AD:DP:GQ:PL	0/0:71,0:71:99:0,208,2577	0/0:45,0:45:99:0,1 [...]
+1	1572125	.	A	G	1123.25	VQSRTrancheSNP98.80to98.90	AC=2;AF=0.020;AN=100;BaseQRankSum=8.997;DP=3765;Dels=0.00;FS=0.698;HaplotypeScore=0.0906;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=53.30;MQ0=3;MQRankSum=-4.966;QD=11.35;ReadPosRankSum=-2.103;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MMP23B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000356026;VQSLOD=0.242;culprit=MQ	GT:AD:DP:GQ:PL	0/0:115,0:115:99:0,346,3951	0/0:6 [...]
+1	1572241	.	C	CA	752.15	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.093;DP=1448;FS=71.784;HaplotypeScore=6.7056;InbreedingCoeff=-0.0113;MLEAC=1;MLEAF=0.010;MQ=52.70;MQ0=0;MQRankSum=3.032;QD=15.67;RPA=1,2;RU=A;ReadPosRankSum=-2.991;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MMP23B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000356026;STR	GT:AD:DP:GQ:PL	0/0:45,0:45:99:0,135,1887	0/0:35,0:35:99:0,105,1933	0/0:18,0:18:54:0,54 [...]
+1	1572255	rs191114998	T	G	331.20	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.525;DB;DP=1420;Dels=0.00;FS=1.039;HaplotypeScore=0.2458;InbreedingCoeff=-0.0109;MLEAC=1;MLEAF=0.010;MQ=51.34;MQ0=8;MQRankSum=-0.697;QD=13.80;ReadPosRankSum=-1.839;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MMP23B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000356026;VQSLOD=1.04;culprit=MQ	GT:AD:DP:GQ:PL	0/0:42,0:42:99:0,117,1340	0/0:30,0:30:90:0, [...]
+1	1572287	.	C	T	300.18	VQSRTrancheSNP98.60to98.80	AC=1;AF=0.010;AN=100;BaseQRankSum=0.864;DP=1493;Dels=0.00;FS=0.964;HaplotypeScore=0.2735;InbreedingCoeff=-0.0102;MLEAC=1;MLEAF=0.010;MQ=52.01;MQ0=4;MQRankSum=2.514;QD=6.13;ReadPosRankSum=-1.718;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MMP23B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000356026;VQSLOD=0.545;culprit=MQ	GT:AD:DP:GQ:PL	0/1:33,16:47:99:340,0,884	0/0:29,0:2 [...]
+1	1572384	rs146043578	C	T	815.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.015;DB;DP=1735;Dels=0.00;FS=1.630;HaplotypeScore=0.3277;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=52.70;MQ0=1;MQRankSum=2.094;QD=12.54;ReadPosRankSum=-0.913;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MMP23B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000356026;VQSLOD=1.12;culprit=MQ	GT:AD:DP:GQ:PL	0/0:51,0:51:99:0,153,1798	0/0:22,0:22:66:0,6 [...]
+1	1572417	rs188330435	G	T	402.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-5.511;DB;DP=2011;Dels=0.00;FS=0.937;HaplotypeScore=0.2597;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=50.14;MQ0=12;MQRankSum=-1.055;QD=11.17;ReadPosRankSum=1.247;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MMP23B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000356026;VQSLOD=0.870;culprit=MQ	GT:AD:DP:GQ:PL	0/0:48,0:48:99:0,144,1775	0/0:35,0:35:99:0 [...]
+1	1572893	.	G	A	93.34	VQSRTrancheSNP99.30to99.50	AC=5;AF=0.050;AN=100;BaseQRankSum=-6.548;DP=757;Dels=0.00;FS=0.693;HaplotypeScore=0.3418;InbreedingCoeff=-0.0699;MLEAC=4;MLEAF=0.040;MQ=32.58;MQ0=86;MQRankSum=-5.014;QD=0.82;ReadPosRankSum=0.472;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MMP23B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000356026;VQSLOD=-1.905e+00;culprit=QD	GT:AD:DP:GQ:PL	0/0:14,0:14:42:0,42,516	0/0:14, [...]
+1	1573078	.	A	G	459.12	VQSRTrancheSNP99.50to99.90	AC=3;AF=0.030;AN=100;BaseQRankSum=-7.275;DP=5460;Dels=0.00;FS=0.000;HaplotypeScore=0.5645;InbreedingCoeff=-0.0309;MLEAC=3;MLEAF=0.030;MQ=41.19;MQ0=54;MQRankSum=-8.777;QD=2.04;ReadPosRankSum=-0.901;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MMP23B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000356026;VQSLOD=-2.119e+00;culprit=QD	GT:AD:DP:GQ:PL	0/0:127,0:127:99:0,382,4588	 [...]
+1	1573178	rs117061368	C	G	920.18	VQSRTrancheSNP98.80to98.90	AC=1;AF=0.010;AN=100;BaseQRankSum=2.374;DB;DP=5438;Dels=0.00;FS=1.406;HaplotypeScore=1.4722;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=40.75;MQ0=63;MQRankSum=-2.251;QD=12.27;ReadPosRankSum=-1.262;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MMP23B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000356026;VQSLOD=0.318;culprit=MQ	GT:AD:DP:GQ:PL	0/0:127,0:127:99:0,3 [...]
+1	1573181	rs138980727	C	A	156.26	VQSRTrancheSNP99.50to99.90	AC=2;AF=0.020;AN=100;BaseQRankSum=5.896;DB;DP=5407;Dels=0.00;FS=4.339;HaplotypeScore=1.3657;InbreedingCoeff=-0.0210;MLEAC=2;MLEAF=0.020;MQ=40.36;MQ0=72;MQRankSum=-13.238;QD=1.04;ReadPosRankSum=-0.075;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MMP23B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000356026;VQSLOD=-3.694e+00;culprit=QD	GT:AD:DP:GQ:PL	0/0:127,0:127:9 [...]
+1	1575616	rs80012316	T	C	6681.50	VQSRTrancheSNP99.50to99.90	AC=83;AF=0.847;AN=98;BaseQRankSum=6.586;DB;DP=724;Dels=0.00;FS=95.690;HaplotypeScore=0.3152;InbreedingCoeff=0.1467;MLEAC=84;MLEAF=0.857;MQ=30.23;MQ0=141;MQRankSum=-17.027;QD=10.83;ReadPosRankSum=0.692;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MMP23B;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000490017;VQSLOD=-7.700e+00;culprit=FS	GT:AD:DP:GQ:PL	1/1:0,17:17:21 [...]
+1	1575784	.	C	T	640.70	VQSRTrancheSNP99.50to99.90	AC=12;AF=0.120;AN=100;BaseQRankSum=3.053;DP=2036;Dels=0.00;FS=27.053;HaplotypeScore=0.6394;InbreedingCoeff=-0.1439;MLEAC=11;MLEAF=0.110;MQ=16.56;MQ0=814;MQRankSum=-0.445;QD=0.87;ReadPosRankSum=0.444;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=unprocessed_pseudogene;SNPEFF_GENE_NAME=AL691432.2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000317673;VQSLOD=-5.260e+00;culprit=QD	GT:AD:DP:GQ:PL	0/0:18,0:18:54 [...]
+1	1575836	rs72468213	C	G	7320.75	VQSRTrancheSNP99.50to99.90	AC=39;AF=0.390;AN=100;BaseQRankSum=23.099;DB;DP=1984;Dels=0.00;FS=2.174;HaplotypeScore=0.8905;InbreedingCoeff=-0.6467;MLEAC=39;MLEAF=0.390;MQ=27.24;MQ0=265;MQRankSum=-0.617;QD=4.26;ReadPosRankSum=1.675;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=unprocessed_pseudogene;SNPEFF_GENE_NAME=AL691432.2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000317673;VQSLOD=-4.325e+00;culprit=MQ	GT:AD:DP:GQ:PL	0 [...]
+1	1575863	rs142965371	A	T	1920.72	VQSRTrancheSNP99.30to99.50	AC=12;AF=0.120;AN=100;BaseQRankSum=-10.826;DB;DP=1310;Dels=0.00;FS=2.776;HaplotypeScore=0.8060;InbreedingCoeff=-0.1410;MLEAC=12;MLEAF=0.120;MQ=29.88;MQ0=20;MQRankSum=-5.555;QD=4.19;ReadPosRankSum=0.122;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=unprocessed_pseudogene;SNPEFF_GENE_NAME=AL691432.2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000317673;VQSLOD=-1.961e+00;culprit=MQ	GT:AD:DP:GQ:PL	 [...]
+1	1580524	.	C	T	186.26	VQSRTrancheSNP99.50to99.90	AC=8;AF=0.100;AN=80;BaseQRankSum=-2.944;DP=626;Dels=0.00;FS=0.000;HaplotypeScore=0.2064;InbreedingCoeff=-0.1295;MLEAC=8;MLEAF=0.100;MQ=15.29;MQ0=161;MQRankSum=-0.395;QD=1.51;ReadPosRankSum=-0.597;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=unprocessed_pseudogene;SNPEFF_GENE_NAME=AL691432.2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000317673;VQSLOD=-4.374e+00;culprit=QD	GT:AD:DP:GQ:PL	0/0:24,8:31:6:0,6 [...]
+1	1580738	rs149767621	T	A	8238.16	VQSRTrancheSNP99.50to99.90	AC=45;AF=0.459;AN=98;BaseQRankSum=-20.476;DB;DP=1414;Dels=0.00;FS=4.533;HaplotypeScore=0.3951;InbreedingCoeff=-0.7670;MLEAC=45;MLEAF=0.459;MQ=23.99;MQ0=227;MQRankSum=0.402;QD=6.55;ReadPosRankSum=-0.255;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=unprocessed_pseudogene;SNPEFF_GENE_NAME=AL691432.2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000317673;VQSLOD=-5.630e+00;culprit=MQ	GT:AD:DP:GQ:PL	 [...]
+1	1580748	.	A	G	157.41	VQSRTrancheSNP99.50to99.90	AC=1;AF=0.010;AN=98;BaseQRankSum=0.760;DP=971;Dels=0.00;FS=0.000;HaplotypeScore=0.2415;InbreedingCoeff=-0.0152;MLEAC=1;MLEAF=0.010;MQ=22.37;MQ0=242;MQRankSum=0.673;QD=6.05;ReadPosRankSum=-2.117;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=unprocessed_pseudogene;SNPEFF_GENE_NAME=AL691432.2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000317673;VQSLOD=-2.656e+00;culprit=MQ	GT:AD:DP:GQ:PL	0/0:35,0:35:57:0,57 [...]
+1	1582106	rs79942991	T	C	115843.77	VQSRTrancheSNP99.50to99.90	AC=89;AF=0.890;AN=100;BaseQRankSum=7.365;DB;DP=4103;Dels=0.00;FS=3.878;HaplotypeScore=0.3014;InbreedingCoeff=-0.1236;MLEAC=89;MLEAF=0.890;MQ=36.39;MQ0=114;MQRankSum=-18.692;QD=28.23;ReadPosRankSum=1.360;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=unprocessed_pseudogene;SNPEFF_GENE_NAME=AL691432.2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000317673;VQSLOD=-5.066e+00;culprit=MQRankSum	GT:AD: [...]
+1	1582146	.	T	C	441.18	VQSRTrancheSNP99.00to99.30	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.540;DP=7445;Dels=0.00;FS=4.249;HaplotypeScore=1.3339;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=40.58;MQ0=49;MQRankSum=-1.530;QD=5.88;ReadPosRankSum=1.450;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=unprocessed_pseudogene;SNPEFF_GENE_NAME=AL691432.2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000317673;VQSLOD=-5.753e-01;culprit=MQ	GT:AD:DP:GQ:PL	0/0:201,0:201:99: [...]
+1	1582198	.	C	G	906.12	VQSRTrancheSNP99.30to99.50	AC=3;AF=0.030;AN=100;BaseQRankSum=-4.291;DP=3749;Dels=0.00;FS=2.432;HaplotypeScore=2.4143;InbreedingCoeff=-0.0309;MLEAC=3;MLEAF=0.030;MQ=32.93;MQ0=575;MQRankSum=2.067;QD=4.36;ReadPosRankSum=0.935;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=unprocessed_pseudogene;SNPEFF_GENE_NAME=AL691432.2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000317673;VQSLOD=-1.260e+00;culprit=MQ	GT:AD:DP:GQ:PL	0/0:75,0:75:99:0, [...]
+1	1582302	rs191403755	C	A	87.18	VQSRTrancheSNP99.00to99.30	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.515;DB;DP=2944;Dels=0.00;FS=1.732;HaplotypeScore=0.0773;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=30.88;MQ0=30;MQRankSum=-0.500;QD=3.79;ReadPosRankSum=-0.961;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=unprocessed_pseudogene;SNPEFF_GENE_NAME=AL691432.2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000317673;VQSLOD=-7.997e-01;culprit=QD	GT:AD:DP:GQ:PL	0/0: [...]
+1	1585597	rs7531938	A	G	4359.96	PASS	AC=55;AF=0.561;AN=98;BaseQRankSum=-1.073;DB;DP=302;Dels=0.00;FS=0.542;HaplotypeScore=0.1116;InbreedingCoeff=0.1130;MLEAC=53;MLEAF=0.541;MQ=58.81;MQ0=0;MQRankSum=0.214;QD=21.27;ReadPosRankSum=-0.558;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=unprocessed_pseudogene;SNPEFF_GENE_NAME=AL691432.2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000317673;VQSLOD=5.84;culprit=MQ	GT:AD:DP:GQ:PL	1/1:0,5:5:15:167,15,0	0/1:5,6:11:9 [...]
+1	1585642	rs3936009	G	T	3846.92	PASS	AC=49;AF=0.544;AN=90;BaseQRankSum=-8.942;DB;DP=261;Dels=0.00;FS=2.337;HaplotypeScore=0.0881;InbreedingCoeff=0.0934;MLEAC=48;MLEAF=0.533;MQ=59.22;MQ0=0;MQRankSum=0.655;QD=21.25;ReadPosRankSum=0.621;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=unprocessed_pseudogene;SNPEFF_GENE_NAME=AL691432.2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000317673;VQSLOD=6.38;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	1/1:0,11:11:33:388,33,0 [...]
+1	1586816	rs115880964	C	T	568.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.917;DB;DP=1773;Dels=0.00;FS=0.824;HaplotypeScore=0.2600;InbreedingCoeff=-0.0103;MLEAC=1;MLEAF=0.010;MQ=48.37;MQ0=49;MQRankSum=-0.621;QD=12.63;ReadPosRankSum=-2.095;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=unprocessed_pseudogene;SNPEFF_GENE_NAME=AL691432.2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000317673;VQSLOD=0.932;culprit=MQ	GT:AD:DP:GQ:PL	0/0:51,0:51:99:0,153,1843	0/0 [...]
+1	1586953	rs145224189	G	A	144.19	VQSRTrancheSNP99.30to99.50	AC=1;AF=0.010;AN=100;BaseQRankSum=-4.645;DB;DP=1168;Dels=0.00;FS=0.000;HaplotypeScore=0.0598;InbreedingCoeff=-0.0104;MLEAC=1;MLEAF=0.010;MQ=29.08;MQ0=60;MQRankSum=-0.909;QD=4.37;ReadPosRankSum=-2.328;SNPEFF_EFFECT=TRANSCRIPT;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=unprocessed_pseudogene;SNPEFF_GENE_NAME=AL691432.2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000317673;VQSLOD=-9.213e-01;culprit=MQ	GT:AD:DP:GQ:PL	0/0 [...]
+1	1634881	.	G	C	91.76	VQSRTrancheSNP99.50to99.90	AC=7;AF=0.206;AN=34;BaseQRankSum=-0.637;DP=202;Dels=0.00;FS=0.000;HaplotypeScore=0.2856;InbreedingCoeff=-0.2039;MLEAC=7;MLEAF=0.206;MQ=15.12;MQ0=85;MQRankSum=0.892;QD=2.29;ReadPosRankSum=-3.797;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378635;VQSLOD=-4.313e+00;culprit=QD	GT:AD:DP:GQ:PL	./.	0/0:3,0:3:3:0,3,33	./.	./.	0 [...]
+1	1635004	rs874516	T	C	8506.33	VQSRTrancheSNP99.00to99.30	AC=53;AF=0.564;AN=94;BaseQRankSum=8.473;DB;DP=634;Dels=0.00;FS=3.427;HaplotypeScore=0.4463;InbreedingCoeff=0.2369;MLEAC=52;MLEAF=0.553;MQ=38.87;MQ0=18;MQRankSum=-4.597;QD=18.95;ReadPosRankSum=2.567;SNPEFF_AMINO_ACID_CHANGE=K44;SNPEFF_CODON_CHANGE=aaA/aaG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1634915_1635008;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=LOW;S [...]
+1	1635011	rs1059811	A	G	104.66	VQSRTrancheSNP99.30to99.50	AC=5;AF=0.053;AN=94;BaseQRankSum=3.424;DB;DP=656;Dels=0.00;FS=3.635;HaplotypeScore=0.4455;InbreedingCoeff=0.2754;MLEAC=3;MLEAF=0.032;MQ=39.37;MQ0=20;MQRankSum=-3.813;QD=2.91;ReadPosRankSum=0.378;SNPEFF_AMINO_ACID_CHANGE=V621A;SNPEFF_CODON_CHANGE=gTa/gCa;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1634915_1635063;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT= [...]
+1	1635022	rs1136978	A	G	420.94	VQSRTrancheSNP99.50to99.90	AC=17;AF=0.170;AN=100;BaseQRankSum=-3.483;DB;DP=659;Dels=0.00;FS=15.735;HaplotypeScore=0.3202;InbreedingCoeff=0.4522;MLEAC=11;MLEAF=0.110;MQ=40.11;MQ0=6;MQRankSum=-4.414;QD=4.53;ReadPosRankSum=-2.463;SNPEFF_AMINO_ACID_CHANGE=S617;SNPEFF_CODON_CHANGE=agT/agC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1634915_1635063;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=LO [...]
+1	1635061	rs1136980	C	A	55.49	VQSRTrancheSNP98.80to98.90	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.973;DB;DP=446;Dels=0.00;FS=1.858;HaplotypeScore=0.1171;InbreedingCoeff=-0.0246;MLEAC=1;MLEAF=0.010;MQ=43.48;MQ0=5;MQRankSum=-2.673;QD=4.27;ReadPosRankSum=0.067;SNPEFF_AMINO_ACID_CHANGE=E604D;SNPEFF_CODON_CHANGE=gaG/gaT;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1634915_1635063;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT [...]
+1	1635085	.	A	C	50.91	VQSRTrancheSNP99.50to99.90	AC=11;AF=0.115;AN=96;BaseQRankSum=-4.622;DP=311;Dels=0.00;FS=116.218;HaplotypeScore=0.3479;InbreedingCoeff=-0.0539;MLEAC=9;MLEAF=0.094;MQ=38.48;MQ0=31;MQRankSum=-3.888;QD=0.73;ReadPosRankSum=-5.613;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378635;VQSLOD=-4.963e+00;culprit=FS	GT:AD:DP:GQ:PL	0/0:13,1:14:16:0,16,446	0/0: [...]
+1	1635108	rs11488590	G	A	934.35	VQSRTrancheSNP99.50to99.90	AC=14;AF=0.146;AN=96;BaseQRankSum=-1.891;DB;DP=472;Dels=0.00;FS=69.983;HaplotypeScore=0.2181;InbreedingCoeff=-0.0511;MLEAC=14;MLEAF=0.146;MQ=29.62;MQ0=109;MQRankSum=-1.492;QD=5.37;ReadPosRankSum=1.004;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378635;VQSLOD=-3.114e+00;culprit=FS	GT:AD:DP:GQ:PL	0/0:16,0:16:39: [...]
+1	1635407	rs74045976	A	G	4760.18	PASS	AC=7;AF=0.070;AN=100;BaseQRankSum=4.103;DB;DP=1853;Dels=0.00;FS=0.473;HaplotypeScore=0.4719;InbreedingCoeff=0.2319;MLEAC=7;MLEAF=0.070;MQ=55.05;MQ0=2;MQRankSum=-0.284;QD=17.90;ReadPosRankSum=-2.734;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378635;VQSLOD=2.03;culprit=MQ	GT:AD:DP:GQ:PL	0/0:42,0:42:99:0,126,1529	0/0:43,0:43:99:0,12 [...]
+1	1635421	rs72901761	G	A	1037.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-3.736;DB;DP=1462;Dels=0.00;FS=0.652;HaplotypeScore=0.3273;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=53.53;MQ0=4;MQRankSum=-2.222;QD=11.65;ReadPosRankSum=-1.050;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378635;VQSLOD=1.82;culprit=MQ	GT:AD:DP:GQ:PL	0/0:39,0:39:99:0,117,1326	0/0:29,0:29:87:0, [...]
+1	1635439	.	A	G	362.18	VQSRTrancheSNP98.80to98.90	AC=1;AF=0.010;AN=100;BaseQRankSum=0.964;DP=1238;Dels=0.00;FS=2.198;HaplotypeScore=0.3145;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=52.58;MQ0=4;MQRankSum=-3.064;QD=11.68;ReadPosRankSum=1.459;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378635;VQSLOD=0.268;culprit=MQ	GT:AD:DP:GQ:PL	0/1:14,17:30:99:402,0,395	0/0:22,0: [...]
+1	1635507	.	G	A	405.20	VQSRTrancheSNP98.60to98.80	AC=1;AF=0.010;AN=100;BaseQRankSum=2.584;DP=1298;Dels=0.00;FS=0.000;HaplotypeScore=0.5480;InbreedingCoeff=-0.0108;MLEAC=1;MLEAF=0.010;MQ=50.53;MQ0=5;MQRankSum=1.387;QD=10.39;ReadPosRankSum=-0.627;SNPEFF_AMINO_ACID_CHANGE=R555C;SNPEFF_CODON_CHANGE=Cgc/Tgc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1635478_1635585;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODERATE [...]
+1	1635565	rs11488591	C	T	10687.11	PASS	AC=17;AF=0.170;AN=100;BaseQRankSum=-5.755;DB;DP=1407;Dels=0.00;FS=20.884;HaplotypeScore=0.8088;InbreedingCoeff=0.0782;MLEAC=17;MLEAF=0.170;MQ=50.79;MQ0=7;MQRankSum=1.284;QD=16.52;ReadPosRankSum=0.476;SNPEFF_AMINO_ACID_CHANGE=A535;SNPEFF_CODON_CHANGE=gcG/gcA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1635478_1635585;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT [...]
+1	1635617	rs115354721	C	T	748.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-3.816;DB;DP=1547;Dels=0.00;FS=1.493;HaplotypeScore=1.5279;InbreedingCoeff=-0.0207;MLEAC=2;MLEAF=0.020;MQ=50.80;MQ0=0;MQRankSum=2.325;QD=7.56;ReadPosRankSum=-0.952;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378635;VQSLOD=1.07;culprit=MQ	GT:AD:DP:GQ:PL	0/0:15,0:15:45:0,45,529	0/0:26,0:26:78:0,78,9 [...]
+1	1635619	rs2076329	T	C	37299	PASS	AC=65;AF=0.650;AN=100;BaseQRankSum=3.725;DB;DP=1683;Dels=0.00;FS=3.612;HaplotypeScore=1.6660;InbreedingCoeff=0.0769;MLEAC=65;MLEAF=0.650;MQ=50.64;MQ0=0;MQRankSum=-3.676;QD=24.55;ReadPosRankSum=0.233;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378635;VQSLOD=0.839;culprit=MQ	GT:AD:DP:GQ:PL	0/0:18,0:18:54:0,54,650	1/1:0,30:30:90:1058,90 [...]
+1	1635749	rs55880629	C	A	10910.33	VQSRTrancheSNP99.30to99.50	AC=47;AF=0.470;AN=100;BaseQRankSum=-15.926;DB;DP=1525;Dels=0.00;FS=7.922;HaplotypeScore=0.7731;InbreedingCoeff=0.0759;MLEAC=47;MLEAF=0.470;MQ=42.30;MQ0=40;MQRankSum=-10.985;QD=11.96;ReadPosRankSum=1.160;SNPEFF_AMINO_ACID_CHANGE=R499;SNPEFF_CODON_CHANGE=cgG/cgT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1635662_1635783;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMP [...]
+1	1635943	rs1534950	A	C	1501.42	VQSRTrancheSNP98.80to98.90	AC=17;AF=0.170;AN=100;BaseQRankSum=6.957;DB;DP=426;Dels=0.00;FS=0.000;HaplotypeScore=0.1954;InbreedingCoeff=0.0437;MLEAC=17;MLEAF=0.170;MQ=45.75;MQ0=0;MQRankSum=-4.592;QD=9.69;ReadPosRankSum=-0.426;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378635;VQSLOD=0.298;culprit=MQ	GT:AD:DP:GQ:PL	0/0:7,0:7:21:0,21,240	0 [...]
+1	1635979	rs1534951	G	C	3048.61	VQSRTrancheSNP98.90to99.00	AC=17;AF=0.170;AN=100;BaseQRankSum=5.210;DB;DP=673;Dels=0.00;FS=0.000;HaplotypeScore=0.5137;InbreedingCoeff=0.0713;MLEAC=17;MLEAF=0.170;MQ=44.90;MQ0=14;MQRankSum=-4.420;QD=12.19;ReadPosRankSum=0.530;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378635;VQSLOD=0.107;culprit=MQ	GT:AD:DP:GQ:PL	0/0:9,0:9:27:0,27,292	 [...]
+1	1636044	rs1059822	G	A	7368.94	VQSRTrancheSNP99.30to99.50	AC=61;AF=0.610;AN=100;BaseQRankSum=-0.556;DB;DP=714;Dels=0.00;FS=21.519;HaplotypeScore=0.3671;InbreedingCoeff=0.1238;MLEAC=61;MLEAF=0.610;MQ=41.21;MQ0=41;MQRankSum=-11.770;QD=14.36;ReadPosRankSum=0.096;SNPEFF_AMINO_ACID_CHANGE=Y469;SNPEFF_CODON_CHANGE=taC/taT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1635989_1636094;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT [...]
+1	1636112	rs4288535	G	A	1456.58	VQSRTrancheSNP98.90to99.00	AC=16;AF=0.163;AN=98;BaseQRankSum=-8.473;DB;DP=582;Dels=0.00;FS=4.438;HaplotypeScore=0.4121;InbreedingCoeff=-0.0638;MLEAC=16;MLEAF=0.163;MQ=33.54;MQ0=98;MQRankSum=-2.009;QD=5.95;ReadPosRankSum=2.219;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378635;VQSLOD=0.030;culprit=MQ	GT:AD:DP:GQ:PL	0/0:16,0:16:33:0,33,36 [...]
+1	1636307	.	T	C	887.27	VQSRTrancheSNP98.80to98.90	AC=1;AF=0.010;AN=98;BaseQRankSum=5.066;DP=5425;Dels=0.00;FS=0.000;HaplotypeScore=1.1038;InbreedingCoeff=-0.0103;MLEAC=1;MLEAF=0.010;MQ=43.97;MQ0=22;MQRankSum=1.527;QD=11.83;ReadPosRankSum=-3.911;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378635;VQSLOD=0.252;culprit=MQ	GT:AD:DP:GQ:PL	0/0:236,0:236:99:0,710,8527	0/0:122 [...]
+1	1636352	rs141881351	G	C	1618.40	VQSRTrancheSNP99.30to99.50	AC=2;AF=0.020;AN=98;BaseQRankSum=3.137;DB;DP=6223;Dels=0.00;FS=1.145;HaplotypeScore=1.6113;InbreedingCoeff=1.0000;MLEAC=2;MLEAF=0.020;MQ=44.84;MQ0=133;MQRankSum=2.388;QD=23.80;ReadPosRankSum=0.222;SNPEFF_AMINO_ACID_CHANGE=V449;SNPEFF_CODON_CHANGE=gtC/gtG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1636343_1636464;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=LO [...]
+1	1636355	rs2377226	A	G	987.40	VQSRTrancheSNP99.50to99.90	AC=2;AF=0.020;AN=98;BaseQRankSum=5.437;DB;DP=6036;Dels=0.00;FS=127.218;HaplotypeScore=1.5540;InbreedingCoeff=1.0000;MLEAC=2;MLEAF=0.020;MQ=44.72;MQ0=139;MQRankSum=-12.525;QD=13.91;ReadPosRankSum=-1.082;SNPEFF_AMINO_ACID_CHANGE=I448;SNPEFF_CODON_CHANGE=atT/atC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1636343_1636464;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT= [...]
+1	1636400	rs144690660	G	A	282.20	VQSRTrancheSNP99.50to99.90	AC=4;AF=0.041;AN=98;BaseQRankSum=-3.052;DB;DP=5444;Dels=0.00;FS=169.855;HaplotypeScore=0.4806;InbreedingCoeff=-0.0507;MLEAC=4;MLEAF=0.041;MQ=37.94;MQ0=162;MQRankSum=-13.143;QD=0.94;ReadPosRankSum=2.063;SNPEFF_AMINO_ACID_CHANGE=S433;SNPEFF_CODON_CHANGE=tcC/tcT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1636343_1636464;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPAC [...]
+1	1638897	.	A	G	68.27	VQSRTrancheSNP99.30to99.50	AC=1;AF=0.010;AN=100;BaseQRankSum=2.422;DP=1826;Dels=0.00;FS=27.238;HaplotypeScore=0.6964;InbreedingCoeff=-0.0137;MLEAC=1;MLEAF=0.010;MQ=38.73;MQ0=13;MQRankSum=0.445;QD=1.95;ReadPosRankSum=-0.385;SNPEFF_AMINO_ACID_CHANGE=L365S;SNPEFF_CODON_CHANGE=tTg/tCg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1638848_1639023;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODERATE [...]
+1	1638925	.	C	T	7081.97	VQSRTrancheSNP99.30to99.50	AC=17;AF=0.170;AN=100;BaseQRankSum=3.088;DP=1619;Dels=0.00;FS=0.609;HaplotypeScore=0.6107;InbreedingCoeff=0.0736;MLEAC=17;MLEAF=0.170;MQ=32.23;MQ0=230;MQRankSum=-1.352;QD=9.93;ReadPosRankSum=1.471;SNPEFF_AMINO_ACID_CHANGE=D356N;SNPEFF_CODON_CHANGE=Gac/Aac;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1638848_1639023;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODER [...]
+1	1638994	rs139262276	C	T	3722.63	VQSRTrancheSNP99.50to99.90	AC=27;AF=0.276;AN=98;BaseQRankSum=4.165;DB;DP=1412;Dels=0.00;FS=43.176;HaplotypeScore=0.4009;InbreedingCoeff=0.4134;MLEAC=27;MLEAF=0.276;MQ=16.67;MQ0=641;MQRankSum=0.607;QD=4.58;ReadPosRankSum=-1.355;SNPEFF_AMINO_ACID_CHANGE=G333R;SNPEFF_CODON_CHANGE=Ggg/Agg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1638848_1639023;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF [...]
+1	1639046	rs138369165	C	G	4405.12	VQSRTrancheSNP99.50to99.90	AC=47;AF=0.490;AN=96;BaseQRankSum=11.990;DB;DP=810;Dels=0.00;FS=21.488;HaplotypeScore=0.3049;InbreedingCoeff=0.4502;MLEAC=46;MLEAF=0.479;MQ=25.71;MQ0=218;MQRankSum=-3.993;QD=9.33;ReadPosRankSum=-4.570;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000341028;VQSLOD=-3.258e+00;culprit=MQ	GT:AD:DP:GQ:PL	0/0:24,0:24:69:0, [...]
+1	1639062	rs149613000	T	C	747.63	VQSRTrancheSNP99.50to99.90	AC=21;AF=0.239;AN=88;BaseQRankSum=7.959;DB;DP=539;Dels=0.00;FS=14.404;HaplotypeScore=0.2679;InbreedingCoeff=0.5296;MLEAC=17;MLEAF=0.193;MQ=31.98;MQ0=38;MQRankSum=1.017;QD=6.80;ReadPosRankSum=-1.235;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000341028;VQSLOD=-2.868e+00;culprit=MQ	GT:AD:DP:GQ:PL	0/0:25,0:25:75:0,75,7 [...]
+1	1639073	.	A	T	175.81	VQSRTrancheSNP99.50to99.90	AC=9;AF=0.107;AN=84;BaseQRankSum=-2.705;DP=421;Dels=0.00;FS=0.000;HaplotypeScore=0.3008;InbreedingCoeff=0.4176;MLEAC=6;MLEAF=0.071;MQ=30.68;MQ0=36;MQRankSum=-0.024;QD=5.49;ReadPosRankSum=0.538;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000341028;VQSLOD=-2.791e+00;culprit=MQ	GT:AD:DP:GQ:PL	0/0:21,0:21:63:0,63,671	./.	0/0:8,0: [...]
+1	1639570	rs141165289	C	T	883.43	VQSRTrancheSNP99.50to99.90	AC=15;AF=0.250;AN=60;BaseQRankSum=-5.650;DB;DP=770;Dels=0.00;FS=0.678;HaplotypeScore=0.4057;InbreedingCoeff=-0.0481;MLEAC=15;MLEAF=0.250;MQ=14.16;MQ0=429;MQRankSum=-1.209;QD=2.39;ReadPosRankSum=-0.601;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000341028;VQSLOD=-4.394e+00;culprit=QD	GT:AD:DP:GQ:PL	0/0:11,0:11:18:0,1 [...]
+1	1639608	.	G	A	58.98	VQSRTrancheSNP99.50to99.90	AC=2;AF=0.032;AN=62;BaseQRankSum=-2.551;DP=1403;Dels=0.00;FS=1.326;HaplotypeScore=0.4675;InbreedingCoeff=-0.0735;MLEAC=2;MLEAF=0.032;MQ=11.11;MQ0=927;MQRankSum=1.280;QD=0.54;ReadPosRankSum=0.534;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000341028;VQSLOD=-5.890e+00;culprit=MQ	GT:AD:DP:GQ:PL	./.	0/0:40,0:40:9:0,9,78	0/0:26,0:2 [...]
+1	1639687	.	G	A	473.42	VQSRTrancheSNP99.50to99.90	AC=11;AF=0.204;AN=54;BaseQRankSum=-11.169;DP=1398;Dels=0.00;FS=23.198;HaplotypeScore=0.2334;InbreedingCoeff=-0.2824;MLEAC=11;MLEAF=0.204;MQ=11.20;MQ0=898;MQRankSum=-1.547;QD=0.70;ReadPosRankSum=1.112;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000341028;VQSLOD=-6.460e+00;culprit=MQ	GT:AD:DP:GQ:PL	0/0:24,0:24:3:0,3,33	0/0:36,0 [...]
+1	1639702	.	C	T	110.94	VQSRTrancheSNP99.50to99.90	AC=3;AF=0.060;AN=50;BaseQRankSum=-1.482;DP=1127;Dels=0.00;FS=3.889;HaplotypeScore=0.1458;InbreedingCoeff=-0.0818;MLEAC=3;MLEAF=0.060;MQ=10.55;MQ0=723;MQRankSum=1.431;QD=0.98;ReadPosRankSum=-0.782;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000341028;VQSLOD=-5.670e+00;culprit=QD	GT:AD:DP:GQ:PL	0/0:19,0:19:3:0,3,33	0/0:24,0:24: [...]
+1	1647745	rs72634830	G	A	17639.24	VQSRTrancheSNP99.50to99.90	AC=48;AF=0.480;AN=100;BaseQRankSum=21.762;DB;DP=3417;Dels=0.00;FS=230.666;HaplotypeScore=1.6377;InbreedingCoeff=-0.9082;MLEAC=48;MLEAF=0.480;MQ=52.75;MQ0=0;MQRankSum=-34.123;QD=5.36;ReadPosRankSum=-8.152;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000479362;VQSLOD=-2.883e+01;culprit=FS	GT:AD:DP:GQ:PL	0/1:50,25: [...]
+1	1647753	rs74045984	C	T	19316.52	VQSRTrancheSNP99.50to99.90	AC=47;AF=0.470;AN=100;BaseQRankSum=-32.228;DB;DP=3494;Dels=0.00;FS=143.909;HaplotypeScore=1.4824;InbreedingCoeff=-0.8873;MLEAC=47;MLEAF=0.470;MQ=53.15;MQ0=0;MQRankSum=-32.262;QD=5.87;ReadPosRankSum=-7.739;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000479362;VQSLOD=-1.945e+01;culprit=FS	GT:AD:DP:GQ:PL	0/1:53,22 [...]
+1	1647778	rs72901773	C	G	25507.74	VQSRTrancheSNP99.50to99.90	AC=49;AF=0.490;AN=100;BaseQRankSum=-30.365;DB;DP=3670;Dels=0.00;FS=13.015;HaplotypeScore=1.8006;InbreedingCoeff=-0.9605;MLEAC=49;MLEAF=0.490;MQ=53.28;MQ0=0;MQRankSum=-27.906;QD=7.07;ReadPosRankSum=-5.158;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000479362;VQSLOD=-1.367e+01;culprit=MQRankSum	GT:AD:DP:GQ:PL	0/1 [...]
+1	1647814	rs72901775	T	C	37323.72	VQSRTrancheSNP99.50to99.90	AC=49;AF=0.490;AN=100;BaseQRankSum=27.187;DB;DP=3738;Dels=0.00;FS=44.966;HaplotypeScore=1.1191;InbreedingCoeff=-0.9608;MLEAC=49;MLEAF=0.490;MQ=52.47;MQ0=0;MQRankSum=-26.757;QD=10.19;ReadPosRankSum=0.422;SNPEFF_AMINO_ACID_CHANGE=N9D;SNPEFF_CODON_CHANGE=Aat/Gat;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1647785_1647917;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEF [...]
+1	1647871	rs72909014	T	C	24074.97	VQSRTrancheSNP99.50to99.90	AC=48;AF=0.480;AN=100;BaseQRankSum=30.488;DB;DP=3314;Dels=0.00;FS=34.352;HaplotypeScore=2.3042;InbreedingCoeff=-0.9231;MLEAC=48;MLEAF=0.480;MQ=52.62;MQ0=0;MQRankSum=-28.834;QD=7.55;ReadPosRankSum=-1.891;SNPEFF_AMINO_ACID_CHANGE=R100;SNPEFF_CODON_CHANGE=cgA/cgG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1647785_1647917;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMP [...]
+1	1647873	.	G	T	326.30	VQSRTrancheSNP99.00to99.30	AC=4;AF=0.040;AN=100;BaseQRankSum=2.140;DP=3316;Dels=0.00;FS=0.546;HaplotypeScore=2.2918;InbreedingCoeff=-0.0417;MLEAC=4;MLEAF=0.040;MQ=52.23;MQ0=0;MQRankSum=-5.574;QD=1.17;ReadPosRankSum=-0.122;SNPEFF_AMINO_ACID_CHANGE=R100;SNPEFF_CODON_CHANGE=Cga/Aga;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1647785_1647917;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=LOW;SNPEFF_TRAN [...]
+1	1647893	.	C	CTTTCTT	29503.61	Indel_InbreedingCoeff	AC=50;AF=0.500;AN=100;BaseQRankSum=7.438;DP=2880;FS=123.827;HaplotypeScore=74.0717;InbreedingCoeff=-0.9998;MLEAC=50;MLEAF=0.500;MQ=52.58;MQ0=0;MQRankSum=-24.719;QD=10.24;RPA=1,2;RU=TTTCTT;ReadPosRankSum=-3.813;SNPEFF_AMINO_ACID_CHANGE=-117KK;SNPEFF_CODON_CHANGE=-/AAGAAA;SNPEFF_EFFECT=CODON_INSERTION;SNPEFF_EXON_ID=exon_1_1647785_1647917;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPAC [...]
+1	1647928	rs1883424	A	G	16401.62	VQSRTrancheSNP99.00to99.30	AC=27;AF=0.270;AN=100;BaseQRankSum=23.253;DB;DP=2545;Dels=0.00;FS=8.254;HaplotypeScore=0.8474;InbreedingCoeff=-0.3699;MLEAC=27;MLEAF=0.270;MQ=52.19;MQ0=0;MQRankSum=13.729;QD=11.95;ReadPosRankSum=-1.511;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000496482;VQSLOD=-3.286e-01;culprit=MQ	GT:AD:DP:GQ:PL	0/1:30,42:69: [...]
+1	1650787	rs1137003	T	C	29321.65	VQSRTrancheSNP99.50to99.90	AC=50;AF=0.500;AN=100;BaseQRankSum=-19.649;DB;DP=3566;Dels=0.00;FS=51.506;HaplotypeScore=1.7889;InbreedingCoeff=-1.0000;MLEAC=50;MLEAF=0.500;MQ=54.54;MQ0=0;MQRankSum=-23.847;QD=8.22;ReadPosRankSum=-4.337;SNPEFF_AMINO_ACID_CHANGE=H112R;SNPEFF_CODON_CHANGE=cAt/cGt;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1650767_1650894;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNP [...]
+1	1650797	rs1059830	A	G	39627.65	VQSRTrancheSNP99.50to99.90	AC=50;AF=0.500;AN=100;BaseQRankSum=-11.681;DB;DP=3738;Dels=0.00;FS=0.000;HaplotypeScore=8.3174;InbreedingCoeff=-1.0000;MLEAC=50;MLEAF=0.500;MQ=54.19;MQ0=0;MQRankSum=-22.448;QD=10.60;ReadPosRankSum=-7.769;SNPEFF_AMINO_ACID_CHANGE=W109R;SNPEFF_CODON_CHANGE=Tgg/Cgg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1650797_1650894;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNP [...]
+1	1650801	rs1137004	T	C	43899.65	VQSRTrancheSNP99.50to99.90	AC=50;AF=0.500;AN=100;BaseQRankSum=15.445;DB;DP=3737;Dels=0.00;FS=2.311;HaplotypeScore=8.2322;InbreedingCoeff=-1.0000;MLEAC=50;MLEAF=0.500;MQ=54.20;MQ0=0;MQRankSum=-21.513;QD=11.75;ReadPosRankSum=-7.922;SNPEFF_AMINO_ACID_CHANGE=E107;SNPEFF_CODON_CHANGE=gaA/gaG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1650797_1650894;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPA [...]
+1	1650807	rs1137005	T	C	47319.97	VQSRTrancheSNP99.50to99.90	AC=48;AF=0.480;AN=100;BaseQRankSum=28.791;DB;DP=3729;Dels=0.00;FS=4.101;HaplotypeScore=6.7523;InbreedingCoeff=-0.9231;MLEAC=48;MLEAF=0.480;MQ=54.53;MQ0=0;MQRankSum=22.620;QD=13.21;ReadPosRankSum=3.828;SNPEFF_AMINO_ACID_CHANGE=R105;SNPEFF_CODON_CHANGE=agA/agG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1650797_1650894;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT [...]
+1	1650832	rs72909030	A	G	45541.73	VQSRTrancheSNP99.50to99.90	AC=49;AF=0.490;AN=100;BaseQRankSum=23.916;DB;DP=3747;Dels=0.00;FS=18.898;HaplotypeScore=1.0621;InbreedingCoeff=-0.9608;MLEAC=49;MLEAF=0.490;MQ=54.25;MQ0=0;MQRankSum=-21.030;QD=12.40;ReadPosRankSum=-0.870;SNPEFF_AMINO_ACID_CHANGE=V63A;SNPEFF_CODON_CHANGE=gTt/gCt;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1650767_1650894;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNP [...]
+1	1650845	rs1059831	G	A	43007.97	VQSRTrancheSNP99.50to99.90	AC=48;AF=0.480;AN=100;BaseQRankSum=11.982;DB;DP=3824;Dels=0.00;FS=3.720;HaplotypeScore=0.8692;InbreedingCoeff=-0.9231;MLEAC=48;MLEAF=0.480;MQ=54.19;MQ0=0;MQRankSum=24.187;QD=11.95;ReadPosRankSum=0.117;SNPEFF_AMINO_ACID_CHANGE=R59W;SNPEFF_CODON_CHANGE=Cgg/Tgg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1650767_1650894;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_ [...]
+1	1650917	rs148518955	T	C	307.18	VQSRTrancheSNP98.60to98.80	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.768;DB;DP=3870;Dels=0.00;FS=1.094;HaplotypeScore=1.3740;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=51.37;MQ0=0;MQRankSum=5.296;QD=4.15;ReadPosRankSum=1.379;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000401096;VQSLOD=0.572;culprit=QD	GT:AD:DP:GQ:PL	0/0:75,0:75:99:0,220,25 [...]
+1	1650920	rs36191908	G	A	18368.04	VQSRTrancheSNP99.50to99.90	AC=39;AF=0.390;AN=100;BaseQRankSum=-16.414;DB;DP=3830;Dels=0.00;FS=40.941;HaplotypeScore=1.4810;InbreedingCoeff=-0.6438;MLEAC=39;MLEAF=0.390;MQ=51.23;MQ0=0;MQRankSum=-25.997;QD=6.36;ReadPosRankSum=-1.670;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000401096;VQSLOD=-1.026e+01;culprit=MQRankSum	GT:AD:DP:GQ:PL	0/1 [...]
+1	1650939	.	G	A	22870.97	VQSRTrancheSNP99.50to99.90	AC=48;AF=0.480;AN=100;BaseQRankSum=-18.935;DP=3421;Dels=0.02;FS=60.007;HaplotypeScore=6.7725;InbreedingCoeff=-0.9231;MLEAC=48;MLEAF=0.480;MQ=51.35;MQ0=0;MQRankSum=-45.584;QD=6.95;ReadPosRankSum=14.146;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000401096;VQSLOD=-2.814e+01;culprit=MQRankSum	GT:AD:DP:GQ:PL	0/1:45,28:70:99 [...]
+1	1650940	rs74345479	G	A	22714.97	VQSRTrancheSNP99.50to99.90	AC=48;AF=0.480;AN=100;BaseQRankSum=-30.655;DB;DP=3446;Dels=0.02;FS=52.004;HaplotypeScore=6.8009;InbreedingCoeff=-0.9231;MLEAC=48;MLEAF=0.480;MQ=51.41;MQ0=0;MQRankSum=-45.783;QD=6.86;ReadPosRankSum=15.177;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000401096;VQSLOD=-2.857e+01;culprit=MQRankSum	GT:AD:DP:GQ:PL	0/1 [...]
+1	1650942	rs75972011	A	G	22621.97	VQSRTrancheSNP99.50to99.90	AC=48;AF=0.480;AN=100;BaseQRankSum=35.443;DB;DP=3465;Dels=0.00;FS=68.250;HaplotypeScore=6.8826;InbreedingCoeff=-0.9231;MLEAC=48;MLEAF=0.480;MQ=51.49;MQ0=0;MQRankSum=-45.726;QD=6.79;ReadPosRankSum=17.400;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000401096;VQSLOD=-2.959e+01;culprit=MQRankSum	GT:AD:DP:GQ:PL	0/1: [...]
+1	1653004	rs36039898	T	C	25911.51	VQSRTrancheSNP99.50to99.90	AC=82;AF=0.820;AN=100;BaseQRankSum=14.196;DB;DP=1348;Dels=0.00;FS=4.023;HaplotypeScore=0.8196;InbreedingCoeff=0.0507;MLEAC=82;MLEAF=0.820;MQ=39.48;MQ0=75;MQRankSum=-18.492;QD=20.81;ReadPosRankSum=3.813;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000401096;VQSLOD=-4.216e+00;culprit=MQRankSum	GT:AD:DP:GQ:PL	1/1:0 [...]
+1	1653026	rs184721773	T	A	322.18	VQSRTrancheSNP98.90to99.00	AC=1;AF=0.010;AN=100;BaseQRankSum=4.677;DB;DP=2021;Dels=0.00;FS=0.000;HaplotypeScore=0.8118;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=42.11;MQ0=59;MQRankSum=-0.125;QD=7.86;ReadPosRankSum=-0.936;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000401096;VQSLOD=0.207;culprit=MQ	GT:AD:DP:GQ:PL	0/0:44,0:44:99:0,132, [...]
+1	1653028	rs16825265	C	T	49197.45	VQSRTrancheSNP99.50to99.90	AC=82;AF=0.820;AN=100;BaseQRankSum=0.506;DB;DP=2119;Dels=0.00;FS=2.019;HaplotypeScore=0.8833;InbreedingCoeff=0.0515;MLEAC=82;MLEAF=0.820;MQ=42.84;MQ0=54;MQRankSum=-13.690;QD=24.91;ReadPosRankSum=1.481;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000401096;VQSLOD=-2.223e+00;culprit=MQRankSum	GT:AD:DP:GQ:PL	1/1:0, [...]
+1	1654007	.	A	T	109	VQSRTrancheSNP99.00to99.30	AC=9;AF=0.096;AN=94;BaseQRankSum=-1.124;DP=1298;Dels=0.00;FS=10.111;HaplotypeScore=0.3449;InbreedingCoeff=-0.1697;MLEAC=10;MLEAF=0.106;MQ=45.56;MQ0=23;MQRankSum=-4.240;QD=3.89;ReadPosRankSum=-3.572;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000401096;VQSLOD=-3.358e-01;culprit=QD	GT:AD:DP:GQ:PL	0/1:4,1:5:18:18,0,106	0/0:2,0: [...]
+1	1654013	rs74045997	C	G	4090.45	VQSRTrancheSNP99.50to99.90	AC=63;AF=0.656;AN=96;BaseQRankSum=-1.915;DB;DP=1293;Dels=0.00;FS=20.320;HaplotypeScore=0.3046;InbreedingCoeff=0.5967;MLEAC=49;MLEAF=0.510;MQ=45.71;MQ0=14;MQRankSum=-10.599;QD=20.05;ReadPosRankSum=-8.422;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000401096;VQSLOD=-2.286e+00;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL	 [...]
+1	1654038	rs61777494	G	A	3401.91	VQSRTrancheSNP99.50to99.90	AC=49;AF=0.510;AN=96;BaseQRankSum=-12.791;DB;DP=1512;Dels=0.00;FS=102.915;HaplotypeScore=0.2656;InbreedingCoeff=0.3615;MLEAC=45;MLEAF=0.469;MQ=33.56;MQ0=312;MQRankSum=-13.932;QD=10.06;ReadPosRankSum=5.224;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000401096;VQSLOD=-7.709e+00;culprit=FS	GT:AD:DP:GQ:PL	1/1:6,4:10 [...]
+1	1654058	rs61777495	C	T	3639.35	VQSRTrancheSNP99.50to99.90	AC=46;AF=0.489;AN=94;BaseQRankSum=-11.748;DB;DP=1567;Dels=0.00;FS=144.517;HaplotypeScore=0.0869;InbreedingCoeff=0.3278;MLEAC=43;MLEAF=0.457;MQ=28.10;MQ0=483;MQRankSum=-12.183;QD=8.16;ReadPosRankSum=5.418;SNPEFF_EFFECT=START_GAINED;SNPEFF_EXON_ID=exon_1_1654027_1654270;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST00000356200;VQSLOD=-1.138e+01;cu [...]
+1	1654064	.	A	T	3160.59	VQSRTrancheSNP99.50to99.90	AC=48;AF=0.500;AN=96;BaseQRankSum=-8.714;DP=1549;Dels=0.00;FS=99.554;HaplotypeScore=0.1477;InbreedingCoeff=0.2331;MLEAC=44;MLEAF=0.458;MQ=27.68;MQ0=509;MQRankSum=-5.629;QD=6.48;ReadPosRankSum=1.100;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000401096;VQSLOD=-6.566e+00;culprit=FS	GT:AD:DP:GQ:PL	1/1:15,6:20:15:167,15,0	0/ [...]
+1	1654065	rs35174499	AGCG	A	7398.04	PASS	AC=59;AF=0.590;AN=100;BaseQRankSum=16.032;DB;DP=1573;FS=16.220;HaplotypeScore=26.4475;InbreedingCoeff=0.0438;MLEAC=56;MLEAF=0.560;MQ=27.55;MQ0=0;MQRankSum=-4.436;QD=8.15;ReadPosRankSum=-0.436;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CDK11A;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000401096	GT:AD:DP:GQ:PL	1/1:0,6:6:18:334,18,0	0/1:2,7:9:99:417,0,104	0/1:2,2:4:99:119,0,119	0/1 [...]
+1	1663851	rs2294486	G	C	3567.82	PASS	AC=24;AF=0.240;AN=100;BaseQRankSum=-3.299;DB;DP=436;Dels=0.00;FS=12.316;HaplotypeScore=0.1548;InbreedingCoeff=-0.1289;MLEAC=24;MLEAF=0.240;MQ=58.21;MQ0=0;MQRankSum=1.638;QD=18.30;ReadPosRankSum=1.629;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SLC35E2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000355439;VQSLOD=3.08;culprit=InbreedingCoeff	GT:AD:DP:GQ:PL	0/1:5,2:7:58:58,0,164	0/0:10,0:10: [...]
+1	1663861	rs2294487	G	A	4215.91	PASS	AC=24;AF=0.240;AN=100;BaseQRankSum=11.359;DB;DP=518;Dels=0.00;FS=0.699;HaplotypeScore=0.3234;InbreedingCoeff=-0.1262;MLEAC=24;MLEAF=0.240;MQ=58.69;MQ0=0;MQRankSum=-0.064;QD=17.28;ReadPosRankSum=1.907;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SLC35E2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000355439;VQSLOD=4.83;culprit=MQ	GT:AD:DP:GQ:PL	0/1:6,2:8:56:56,0,138	0/0:10,0:10:30:0,30,325	0 [...]
+1	1666167	rs146479779	C	T	57.62	VQSRTrancheSNP99.50to99.90	AC=1;AF=0.011;AN=92;BaseQRankSum=-2.845;DB;DP=2313;Dels=0.00;FS=2.222;HaplotypeScore=0.7519;InbreedingCoeff=-0.0153;MLEAC=1;MLEAF=0.011;MQ=14.66;MQ0=1154;MQRankSum=-0.403;QD=1.60;ReadPosRankSum=1.318;SNPEFF_AMINO_ACID_CHANGE=V232I;SNPEFF_CODON_CHANGE=Gta/Ata;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1666129_1666274;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SLC35E2;SNPEFF_ [...]
+1	1666175	rs61777509	C	T	995.42	VQSRTrancheSNP99.50to99.90	AC=25;AF=0.266;AN=94;BaseQRankSum=-9.577;DB;DP=2376;Dels=0.00;FS=80.566;HaplotypeScore=0.7276;InbreedingCoeff=-0.3795;MLEAC=25;MLEAF=0.266;MQ=15.15;MQ0=1134;MQRankSum=-7.539;QD=0.76;ReadPosRankSum=-0.718;SNPEFF_AMINO_ACID_CHANGE=R229H;SNPEFF_CODON_CHANGE=cGt/cAt;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1666129_1666274;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SLC35E2;SNP [...]
+1	1666251	rs77655487	G	A	2010.72	VQSRTrancheSNP99.90to100.00	AC=22;AF=0.220;AN=100;BaseQRankSum=-4.281;DB;DP=3474;Dels=0.00;FS=617.622;HaplotypeScore=0.9335;InbreedingCoeff=-0.2819;MLEAC=22;MLEAF=0.220;MQ=27.54;MQ0=493;MQRankSum=3.013;QD=1.59;ReadPosRankSum=-2.129;SNPEFF_AMINO_ACID_CHANGE=R204W;SNPEFF_CODON_CHANGE=Cgg/Tgg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1666129_1666274;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SLC35E2;S [...]
+1	1666303	rs114928632	T	C	847.30	VQSRTrancheSNP99.50to99.90	AC=4;AF=0.040;AN=100;BaseQRankSum=-14.446;DB;DP=2563;Dels=0.00;FS=4.535;HaplotypeScore=0.5398;InbreedingCoeff=-0.0422;MLEAC=4;MLEAF=0.040;MQ=32.46;MQ0=470;MQRankSum=-16.357;QD=4.24;ReadPosRankSum=-9.345;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SLC35E2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000246421;VQSLOD=-4.776e+00;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL	0/0 [...]
+1	1669726	rs144330443	C	T	193.36	VQSRTrancheSNP99.00to99.30	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.217;DB;DP=719;Dels=0.00;FS=1.857;HaplotypeScore=0.4298;InbreedingCoeff=-0.0161;MLEAC=1;MLEAF=0.010;MQ=35.45;MQ0=69;MQRankSum=-0.078;QD=8.79;ReadPosRankSum=-0.758;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SLC35E2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000246421;VQSLOD=-3.425e-01;culprit=MQ	GT:AD:DP:GQ:PL	0/0:15,0:15:36:0,36 [...]
+1	1669734	rs80140081	G	T	13632.61	VQSRTrancheSNP99.00to99.30	AC=46;AF=0.460;AN=100;BaseQRankSum=-17.392;DB;DP=929;Dels=0.00;FS=0.000;HaplotypeScore=0.5257;InbreedingCoeff=0.0367;MLEAC=46;MLEAF=0.460;MQ=36.58;MQ0=45;MQRankSum=1.231;QD=20.20;ReadPosRankSum=3.362;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SLC35E2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000246421;VQSLOD=-6.116e-01;culprit=MQ	GT:AD:DP:GQ:PL	0/1:6,11:17:99:34 [...]
+1	1669748	rs115554296	A	G	4726.11	VQSRTrancheSNP99.00to99.30	AC=25;AF=0.250;AN=100;BaseQRankSum=-8.276;DB;DP=1168;Dels=0.00;FS=6.425;HaplotypeScore=0.8387;InbreedingCoeff=-0.0192;MLEAC=25;MLEAF=0.250;MQ=36.75;MQ0=22;MQRankSum=-2.273;QD=9.95;ReadPosRankSum=-1.059;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SLC35E2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000246421;VQSLOD=-4.300e-01;culprit=MQ	GT:AD:DP:GQ:PL	0/1:19,6:24:57: [...]
+1	1670537	.	C	T	122.25	VQSRTrancheSNP99.30to99.50	AC=2;AF=0.020;AN=100;BaseQRankSum=-3.237;DP=1649;Dels=0.00;FS=1.098;HaplotypeScore=1.8725;InbreedingCoeff=-0.0206;MLEAC=2;MLEAF=0.020;MQ=29.35;MQ0=158;MQRankSum=0.505;QD=0.95;ReadPosRankSum=-1.385;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SLC35E2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000246421;VQSLOD=-1.668e+00;culprit=QD	GT:AD:DP:GQ:PL	0/0:30,0:30:90:0,90,770	0/0:47, [...]
+1	1670546	.	G	A	704.25	VQSRTrancheSNP99.30to99.50	AC=2;AF=0.020;AN=100;BaseQRankSum=-7.620;DP=1595;Dels=0.00;FS=0.937;HaplotypeScore=1.6971;InbreedingCoeff=-0.0206;MLEAC=2;MLEAF=0.020;MQ=29.89;MQ0=162;MQRankSum=3.539;QD=9.03;ReadPosRankSum=1.057;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SLC35E2;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000246421;VQSLOD=-1.636e+00;culprit=MQ	GT:AD:DP:GQ:PL	0/0:26,0:26:78:0,78,668	0/0:43,0 [...]
+1	1670958	rs146637450	C	G	74.91	VQSRTrancheSNP99.50to99.90	AC=3;AF=0.750;AN=4;BaseQRankSum=-2.637;DB;DP=864;Dels=0.00;FS=0.000;HaplotypeScore=0.3325;MLEAC=3;MLEAF=0.750;MQ=5.32;MQ0=107;MQRankSum=0.000;QD=0.76;ReadPosRankSum=-0.929;SNPEFF_AMINO_ACID_CHANGE=L13;SNPEFF_CODON_CHANGE=ctG/ctC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1670675_1671143;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SLC35E2;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST [...]
+1	1684311	rs148074846	C	T	212.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=2.642;DB;DP=1378;Dels=0.00;FS=0.000;HaplotypeScore=0.5565;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.02;MQ0=0;MQRankSum=0.146;QD=15.16;ReadPosRankSum=-1.046;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=NADK;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000400922;VQSLOD=6.62;culprit=FS	GT:AD:DP:GQ:PL	0/0:35,0:34:99:0,102,1131	0/0:27,0:27:81:0,81,8 [...]
+1	1684322	rs141226719	G	C	509.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.312;DB;DP=1214;Dels=0.00;FS=1.081;HaplotypeScore=0.6775;InbreedingCoeff=-0.0103;MLEAC=1;MLEAF=0.010;MQ=58.81;MQ0=0;MQRankSum=1.444;QD=14.98;ReadPosRankSum=-2.788;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=NADK;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000400922;VQSLOD=5.46;culprit=MQ	GT:AD:DP:GQ:PL	0/0:34,0:33:99:0,99,1179	0/0:22,0:22:57:0,57,7 [...]
+1	1684347	rs112506726	CCCT	C,CCCTCCT	3443.37	PASS	AC=10,32;AF=0.100,0.320;AN=100;BaseQRankSum=-0.332;DB;DP=811;FS=67.848;HaplotypeScore=6.4272;InbreedingCoeff=0.1268;MLEAC=9,29;MLEAF=0.090,0.290;MQ=58.99;MQ0=0;MQRankSum=2.827;QD=6.14;RPA=9,8,10;RU=CCT;ReadPosRankSum=-2.297;SNPEFF_AMINO_ACID_CHANGE=EG413G;SNPEFF_CODON_CHANGE=gagggc/ggc;SNPEFF_EFFECT=CODON_CHANGE_PLUS_CODON_DELETION;SNPEFF_EXON_ID=exon_1_1683910_1684499;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF [...]
+1	1684472	rs7407	C	T	6064.99	PASS	AC=28;AF=0.280;AN=100;BaseQRankSum=-4.551;DB;DP=975;Dels=0.00;FS=3.454;HaplotypeScore=0.5177;InbreedingCoeff=-0.1940;MLEAC=28;MLEAF=0.280;MQ=58.44;MQ0=0;MQRankSum=0.933;QD=12.64;ReadPosRankSum=0.125;SNPEFF_AMINO_ACID_CHANGE=P372;SNPEFF_CODON_CHANGE=ccG/ccA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1683910_1684499;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=NADK;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST [...]
+1	1685959	rs116741728	C	T	1979.12	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=-2.129;DB;DP=2130;Dels=0.00;FS=1.994;HaplotypeScore=1.1019;InbreedingCoeff=-0.0309;MLEAC=3;MLEAF=0.030;MQ=54.24;MQ0=0;MQRankSum=5.347;QD=15.11;ReadPosRankSum=0.624;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=NADK;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000400922;VQSLOD=1.90;culprit=MQ	GT:AD:DP:GQ:PL	0/0:35,0:35:99:0,105,1232	0/0:45,0:45:99:0,132 [...]
+1	1686040	rs4751	G	T	50317.91	PASS	AC=42;AF=0.420;AN=100;BaseQRankSum=27.740;DB;DP=3685;Dels=0.00;FS=0.600;HaplotypeScore=3.4769;InbreedingCoeff=0.0148;MLEAC=42;MLEAF=0.420;MQ=58.61;MQ0=0;MQRankSum=3.368;QD=22.01;ReadPosRankSum=1.862;SNPEFF_AMINO_ACID_CHANGE=N230K;SNPEFF_CODON_CHANGE=aaC/aaA;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1685983_1686137;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=NADK;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANS [...]
+1	1686081	rs75816936	G	A	4607.46	PASS	AC=5;AF=0.050;AN=100;BaseQRankSum=5.562;DB;DP=4880;Dels=0.00;FS=0.299;HaplotypeScore=1.2781;InbreedingCoeff=-0.0526;MLEAC=5;MLEAF=0.050;MQ=58.94;MQ0=0;MQRankSum=2.082;QD=13.09;ReadPosRankSum=-3.051;SNPEFF_AMINO_ACID_CHANGE=R217W;SNPEFF_CODON_CHANGE=Cgg/Tgg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1685983_1686137;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=NADK;SNPEFF_IMPACT=MODERATE;SNPEFF_TRA [...]
+1	1686769	rs76477378	G	A	3034.12	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=4.707;DB;DP=6941;Dels=0.00;FS=20.156;HaplotypeScore=0.1307;InbreedingCoeff=-0.0309;MLEAC=3;MLEAF=0.030;MQ=59.81;MQ0=0;MQRankSum=-1.387;QD=13.55;ReadPosRankSum=-2.394;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=NADK;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000460602;VQSLOD=6.51;culprit=FS	GT:AD:DP:GQ:PL	0/0:127,0:127:99:0,382,4127	0/0:125,0:125:99: [...]
+1	1686943	rs2072929	T	C	56242.19	PASS	AC=53;AF=0.530;AN=100;BaseQRankSum=-21.513;DB;DP=3641;Dels=0.00;FS=6.442;HaplotypeScore=1.3969;InbreedingCoeff=-0.0839;MLEAC=53;MLEAF=0.530;MQ=59.40;MQ0=0;MQRankSum=1.324;QD=20.05;ReadPosRankSum=0.492;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=NADK;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000460602;VQSLOD=4.34;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/1:39,33:70:99:827,0,1058	0/1:3 [...]
+1	1686958	rs74046213	C	T	1340.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-7.488;DB;DP=2846;Dels=0.00;FS=0.000;HaplotypeScore=2.5767;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=59.33;MQ0=0;MQRankSum=-0.585;QD=12.89;ReadPosRankSum=-2.553;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=NADK;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000460602;VQSLOD=3.42;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:64,0:64:99:0,193,2305	0/0:58, [...]
+1	1686962	rs2076327	C	T	44196.50	PASS	AC=51;AF=0.510;AN=100;BaseQRankSum=19.679;DB;DP=2859;Dels=0.00;FS=0.000;HaplotypeScore=2.3341;InbreedingCoeff=-0.0804;MLEAC=51;MLEAF=0.510;MQ=59.38;MQ0=0;MQRankSum=-0.661;QD=20.30;ReadPosRankSum=2.455;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=NADK;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000460602;VQSLOD=3.45;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/1:39,30:66:99:857,0,945	0/1:31 [...]
+1	1687791	rs72634840	C	T	1423.12	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=-10.927;DB;DP=3181;Dels=0.00;FS=1.045;HaplotypeScore=0.1503;InbreedingCoeff=-0.0309;MLEAC=3;MLEAF=0.030;MQ=59.61;MQ0=0;MQRankSum=1.998;QD=11.29;ReadPosRankSum=-2.415;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=NADK;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000460602;VQSLOD=7.58;culprit=FS	GT:AD:DP:GQ:PL	0/0:69,0:69:99:0,208,2662	0/0:66,0:66:99:0,19 [...]
+1	1687828	rs34258219	C	T	3408.45	PASS	AC=6;AF=0.060;AN=100;BaseQRankSum=-7.857;DB;DP=1835;Dels=0.00;FS=2.386;HaplotypeScore=0.2249;InbreedingCoeff=0.2907;MLEAC=6;MLEAF=0.060;MQ=59.46;MQ0=0;MQRankSum=1.913;QD=14.82;ReadPosRankSum=-1.271;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=NADK;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000460602;VQSLOD=6.37;culprit=MQRankSum	GT:AD:DP:GQ:PL	0/0:40,0:40:99:0,120,1479	0/0:37,0:37:99 [...]
+1	1688096	rs72634841	C	T	144.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.350;DB;DP=1262;Dels=0.00;FS=0.000;HaplotypeScore=0.3415;InbreedingCoeff=-0.0102;MLEAC=1;MLEAF=0.010;MQ=59.61;MQ0=0;MQRankSum=2.373;QD=11.09;ReadPosRankSum=-1.161;SNPEFF_AMINO_ACID_CHANGE=P260;SNPEFF_CODON_CHANGE=ccG/ccA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1687942_1688096;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=NADK;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=E [...]
+1	1688579	rs116006782	C	A	39.89	PASS	AC=3;AF=0.039;AN=76;BaseQRankSum=-1.494;DB;DP=135;Dels=0.00;FS=0.000;HaplotypeScore=0.1657;InbreedingCoeff=0.0594;MLEAC=2;MLEAF=0.026;MQ=58.14;MQ0=0;MQRankSum=-0.940;QD=7.98;ReadPosRankSum=0.530;SNPEFF_AMINO_ACID_CHANGE=G249V;SNPEFF_CODON_CHANGE=gGa/gTa;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1688546_1688749;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=NADK;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCR [...]
+1	1689762	rs2235537	T	C	30571.82	PASS	AC=54;AF=0.540;AN=100;BaseQRankSum=19.205;DB;DP=1843;Dels=0.00;FS=12.970;HaplotypeScore=1.1693;InbreedingCoeff=-0.2077;MLEAC=54;MLEAF=0.540;MQ=59.25;MQ0=0;MQRankSum=-0.480;QD=20.41;ReadPosRankSum=-2.437;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=NADK;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000464373;VQSLOD=3.83;culprit=InbreedingCoeff	GT:AD:DP:GQ:PL	0/1:20,17:36:99:495,0,549	0/1 [...]
+1	1690544	rs116344604	T	C	266.01	PASS	AC=4;AF=0.045;AN=88;BaseQRankSum=1.059;DB;DP=162;Dels=0.00;FS=0.000;HaplotypeScore=0.0406;InbreedingCoeff=0.1353;MLEAC=4;MLEAF=0.045;MQ=59.76;MQ0=0;MQRankSum=0.115;QD=22.17;ReadPosRankSum=-2.108;SNPEFF_AMINO_ACID_CHANGE=T191A;SNPEFF_CODON_CHANGE=Act/Gct;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1690540_1690682;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=NADK;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSC [...]
+1	1690661	.	C	T	76.67	PASS	AC=1;AF=0.010;AN=96;BaseQRankSum=-1.686;DP=390;Dels=0.00;FS=0.000;HaplotypeScore=0.1080;InbreedingCoeff=-0.0251;MLEAC=1;MLEAF=0.010;MQ=59.49;MQ0=0;MQRankSum=1.283;QD=9.58;ReadPosRankSum=1.329;SNPEFF_AMINO_ACID_CHANGE=A152T;SNPEFF_CODON_CHANGE=Gcg/Acg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1690540_1690682;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=NADK;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCRIPT_ID=ENST00 [...]
+1	1691139	.	C	A	40.40	PASS	AC=3;AF=0.033;AN=90;BaseQRankSum=-1.920;DP=157;Dels=0.00;FS=0.000;HaplotypeScore=0.0663;InbreedingCoeff=0.0889;MLEAC=2;MLEAF=0.022;MQ=59.22;MQ0=0;MQRankSum=-0.755;QD=8.08;ReadPosRankSum=1.232;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=NADK;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000464373;VQSLOD=3.19;culprit=FS	GT:AD:DP:GQ:PL	0/0:3,0:3:9:0,9,116	0/0:5,0:5:15:0,15,180	0/0:6,0:5:15:0,15,188	 [...]
+1	1691176	rs143521678	T	G	48.61	PASS	AC=2;AF=0.023;AN=86;BaseQRankSum=-1.192;DB;DP=188;Dels=0.00;FS=0.000;HaplotypeScore=0.1684;InbreedingCoeff=-0.0762;MLEAC=2;MLEAF=0.023;MQ=59.13;MQ0=0;MQRankSum=0.144;QD=6.94;ReadPosRankSum=-0.076;SNPEFF_AMINO_ACID_CHANGE=E143D;SNPEFF_CODON_CHANGE=gaA/gaC;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1691173_1691341;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=NADK;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSC [...]
+1	1696620	rs188820597	T	C	1102.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=4.984;DB;DP=3527;Dels=0.00;FS=0.000;HaplotypeScore=0.2788;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.45;MQ0=0;MQRankSum=0.198;QD=14.70;ReadPosRankSum=-2.285;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=NADK;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000341426;VQSLOD=8.31;culprit=FS	GT:AD:DP:GQ:PL	0/0:67,0:67:99:0,202,2362	0/0:53,0:53:99:0,159,191 [...]
+1	1696659	rs75906779	A	G	129350.75	PASS	AC=87;AF=0.870;AN=100;BaseQRankSum=-9.340;DB;DP=4343;Dels=0.00;FS=0.276;HaplotypeScore=0.3141;InbreedingCoeff=0.2042;MLEAC=87;MLEAF=0.870;MQ=59.49;MQ0=0;MQRankSum=-0.237;QD=31.37;ReadPosRankSum=0.070;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=NADK;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000341426;VQSLOD=6.79;culprit=FS	GT:AD:DP:GQ:PL	1/1:0,89:89:99:3057,268,0	1/1:0,75:75:99:2576,2 [...]
+1	1720547	rs151315046	A	G	830.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.997;DB;DP=3798;Dels=0.00;FS=1.672;HaplotypeScore=0.0686;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.83;MQ0=0;MQRankSum=1.013;QD=11.37;ReadPosRankSum=-4.690;SNPEFF_AMINO_ACID_CHANGE=A187;SNPEFF_CODON_CHANGE=gcT/gcC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1720492_1720708;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=GNB1;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID= [...]
+1	1722048	rs76013166	C	T	949.28	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=3.867;DB;DP=1249;Dels=0.00;FS=5.308;HaplotypeScore=0.2243;InbreedingCoeff=-0.0217;MLEAC=2;MLEAF=0.020;MQ=58.79;MQ0=0;MQRankSum=1.270;QD=11.87;ReadPosRankSum=-2.964;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=GNB1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378606;VQSLOD=7.44;culprit=MQ	GT:AD:DP:GQ:PL	0/0:34,0:34:99:0,99,1075	0/0:32,0:32:96:0,96,1040	0/ [...]
+1	1724719	rs77027087	G	A	467.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-5.620;DB;DP=1624;Dels=0.00;FS=1.764;HaplotypeScore=0.3679;InbreedingCoeff=-0.0205;MLEAC=2;MLEAF=0.020;MQ=59.38;MQ0=0;MQRankSum=0.664;QD=6.77;ReadPosRankSum=-1.311;SNPEFF_AMINO_ACID_CHANGE=D154;SNPEFF_CODON_CHANGE=gaC/gaT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1724684_1724750;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=GNB1;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=EN [...]
+1	1737895	rs77354509	G	A	1633.28	PASS	AC=4;AF=0.040;AN=100;BaseQRankSum=-5.937;DB;DP=1805;Dels=0.00;FS=5.868;HaplotypeScore=0.1227;InbreedingCoeff=-0.0417;MLEAC=4;MLEAF=0.040;MQ=59.39;MQ0=0;MQRankSum=0.732;QD=13.73;ReadPosRankSum=-2.274;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=GNB1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378606;VQSLOD=7.65;culprit=InbreedingCoeff	GT:AD:DP:GQ:PL	0/0:45,0:45:99:0,135,1701	0/0:39,0:39 [...]
+1	1737900	rs17363334	C	T	1671.28	PASS	AC=4;AF=0.040;AN=100;BaseQRankSum=-7.672;DB;DP=1905;Dels=0.00;FS=5.296;HaplotypeScore=0.1387;InbreedingCoeff=-0.0417;MLEAC=4;MLEAF=0.040;MQ=59.28;MQ0=0;MQRankSum=-0.330;QD=13.06;ReadPosRankSum=-1.960;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=GNB1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378606;VQSLOD=7.47;culprit=InbreedingCoeff	GT:AD:DP:GQ:PL	0/0:47,0:47:99:0,141,1776	0/0:43,0:4 [...]
+1	1749224	rs143149194	G	A	125.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=3.000;DB;DP=1280;Dels=0.00;FS=2.902;HaplotypeScore=0.1914;InbreedingCoeff=-0.0102;MLEAC=1;MLEAF=0.010;MQ=59.75;MQ0=0;MQRankSum=0.872;QD=7.82;ReadPosRankSum=-0.998;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=GNB1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378606;VQSLOD=8.66;culprit=QD	GT:AD:DP:GQ:PL	0/0:33,0:33:99:0,99,1041	0/0:26,0:26:78:0,78,820	0/0 [...]
+1	1756864	rs76273614	T	C	16811.40	VQSRTrancheSNP99.90to100.00	AC=49;AF=0.490;AN=100;BaseQRankSum=-43.471;DB;DP=3747;Dels=0.00;FS=3200.000;HaplotypeScore=2.4214;InbreedingCoeff=-0.9516;MLEAC=49;MLEAF=0.490;MQ=58.81;MQ0=0;MQRankSum=4.692;QD=4.58;ReadPosRankSum=-40.435;SNPEFF_AMINO_ACID_CHANGE=E10G;SNPEFF_CODON_CHANGE=gAg/gGg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1756836_1756938;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=GNB1;SNP [...]
+1	1846710	rs140034981	G	C	147.28	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=1.139;DB;DP=305;Dels=0.00;FS=0.000;HaplotypeScore=0.1919;InbreedingCoeff=-0.0519;MLEAC=2;MLEAF=0.020;MQ=59.06;MQ0=0;MQRankSum=-1.210;QD=7.01;ReadPosRankSum=0.352;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TMEM52;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000310991;VQSLOD=4.90;culprit=QD	GT:AD:DP:GQ:PL	0/0:3,0:3:6:0,6,79	0/0:10,0:10:24:0,24,322	0/0: [...]
+1	1846765	rs2247560	G	A	2024.64	PASS	AC=31;AF=0.310;AN=100;BaseQRankSum=-0.214;DB;DP=256;Dels=0.00;FS=0.000;HaplotypeScore=0.1116;InbreedingCoeff=0.0048;MLEAC=30;MLEAF=0.300;MQ=58.30;MQ0=0;MQRankSum=1.514;QD=17.16;ReadPosRankSum=0.331;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TMEM52;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000310991;VQSLOD=5.53;culprit=FS	GT:AD:DP:GQ:PL	0/1:1,2:3:30:70,0,30	0/1:4,6:10:99:176,0,101	0 [...]
+1	1847181	rs112170912	C	T	712.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.558;DB;DP=1720;Dels=0.00;FS=13.291;HaplotypeScore=0.3365;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=58.96;MQ0=0;MQRankSum=1.414;QD=11.30;ReadPosRankSum=-3.188;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TMEM52;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000310991;VQSLOD=5.80;culprit=FS	GT:AD:DP:GQ:PL	0/0:30,0:30:90:0,90,1152	0/0:29,0:29:87:0,8 [...]
+1	1847856	rs2748986	G	T	3725.01	PASS	AC=49;AF=0.500;AN=98;BaseQRankSum=-7.579;DB;DP=245;Dels=0.00;FS=3.632;HaplotypeScore=0.2157;InbreedingCoeff=-0.1298;MLEAC=50;MLEAF=0.510;MQ=58.94;MQ0=0;MQRankSum=0.710;QD=18.17;ReadPosRankSum=0.760;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TMEM52;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000310991;VQSLOD=5.79;culprit=InbreedingCoeff	GT:AD:DP:GQ:PL	0/1:4,1:5:22:22,0,140	0/1:8,4:12: [...]
+1	1847886	rs75687095	C	T	99.12	PASS	AC=1;AF=0.010;AN=98;BaseQRankSum=-0.608;DB;DP=303;Dels=0.00;FS=7.850;HaplotypeScore=0.1561;InbreedingCoeff=-0.0477;MLEAC=1;MLEAF=0.010;MQ=58.82;MQ0=0;MQRankSum=-0.298;QD=12.39;ReadPosRankSum=-0.481;SNPEFF_AMINO_ACID_CHANGE=R12C;SNPEFF_CODON_CHANGE=Cgc/Tgc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1847880_1848054;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CALML6;SNPEFF_IMPACT=MODERATE;SNPEFF_TRAN [...]
+1	1847979	rs28581776	T	C	8266.07	PASS	AC=17;AF=0.170;AN=100;BaseQRankSum=9.385;DB;DP=1324;Dels=0.00;FS=1.561;HaplotypeScore=0.4855;InbreedingCoeff=0.2202;MLEAC=17;MLEAF=0.170;MQ=59.08;MQ0=0;MQRankSum=0.595;QD=17.51;ReadPosRankSum=-1.205;SNPEFF_AMINO_ACID_CHANGE=W43R;SNPEFF_CODON_CHANGE=Tgg/Cgg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1847880_1848054;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CALML6;SNPEFF_IMPACT=MODERATE;SNPEFF_T [...]
+1	1848071	.	A	G	1458.59	VQSRTrancheSNP99.50to99.90	AC=20;AF=0.200;AN=100;BaseQRankSum=-16.189;DP=2005;Dels=0.00;FS=198.357;HaplotypeScore=3.9687;InbreedingCoeff=-0.2771;MLEAC=20;MLEAF=0.200;MQ=57.13;MQ0=0;MQRankSum=1.237;QD=1.93;ReadPosRankSum=-12.529;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TMEM52;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000310991;VQSLOD=-1.345e+01;culprit=FS	GT:AD:DP:GQ:PL	0/0:46,12:56:28:0,28,10 [...]
+1	1848160	rs28634421	A	G	27719.06	PASS	AC=17;AF=0.170;AN=100;BaseQRankSum=-6.974;DB;DP=6442;Dels=0.00;FS=17.393;HaplotypeScore=1.2565;InbreedingCoeff=0.2204;MLEAC=17;MLEAF=0.170;MQ=59.47;MQ0=0;MQRankSum=-0.725;QD=20.87;ReadPosRankSum=-3.501;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TMEM52;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000310991;VQSLOD=3.95;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:145,0:145:99:0,430,5162	 [...]
+1	1848197	rs74773083	G	C	935.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-6.513;DB;DP=6650;Dels=0.00;FS=0.623;HaplotypeScore=0.3801;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.24;MQ0=0;MQRankSum=0.412;QD=12.47;ReadPosRankSum=-0.170;SNPEFF_AMINO_ACID_CHANGE=G70A;SNPEFF_CODON_CHANGE=gGg/gCg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1848191_1848335;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CALML6;SNPEFF_IMPACT=MODERATE;SNPEFF_TR [...]
+1	1848225	rs35971167	A	G	2788.12	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=0.074;DB;DP=6357;Dels=0.00;FS=6.317;HaplotypeScore=0.7386;InbreedingCoeff=-0.0309;MLEAC=3;MLEAF=0.030;MQ=59.37;MQ0=0;MQRankSum=1.470;QD=12.39;ReadPosRankSum=0.276;SNPEFF_AMINO_ACID_CHANGE=A79;SNPEFF_CODON_CHANGE=gcA/gcG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1848191_1848335;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CALML6;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=E [...]
+1	1848231	.	G	A	820.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.441;DP=6275;Dels=0.00;FS=5.955;HaplotypeScore=0.9101;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.39;MQ0=0;MQRankSum=-0.088;QD=10.94;ReadPosRankSum=0.730;SNPEFF_AMINO_ACID_CHANGE=M81I;SNPEFF_CODON_CHANGE=atG/atA;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1848191_1848335;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CALML6;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCRIPT_ID= [...]
+1	1848243	rs75157634	T	C	835.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-4.151;DB;DP=6196;Dels=0.00;FS=0.687;HaplotypeScore=0.2217;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.55;MQ0=0;MQRankSum=0.853;QD=11.14;ReadPosRankSum=-2.385;SNPEFF_AMINO_ACID_CHANGE=H102;SNPEFF_CODON_CHANGE=caT/caC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1848191_1848335;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CALML6;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID [...]
+1	1848398	.	C	T	262.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=3.301;DP=2231;Dels=0.00;FS=3.127;HaplotypeScore=0.0779;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.73;MQ0=0;MQRankSum=0.716;QD=10.08;ReadPosRankSum=-1.576;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000464311;VQSLOD=7.94;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:50,0:50:99:0,150,1578	0/0:46,0:46:99:0, [...]
+1	1848601	rs111582404	T	C	290.33	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.613;DB;DP=531;Dels=0.00;FS=2.834;HaplotypeScore=0.1893;InbreedingCoeff=-0.0178;MLEAC=1;MLEAF=0.010;MQ=58.79;MQ0=0;MQRankSum=-0.310;QD=13.20;ReadPosRankSum=0.058;SNPEFF_AMINO_ACID_CHANGE=M155T;SNPEFF_CODON_CHANGE=aTg/aCg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1848586_1848733;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=CALML6;SNPEFF_IMPACT=MODERATE;SNPEFF_T [...]
+1	1849529	rs28640257	A	G	30026.74	VQSRTrancheSNP98.90to99.00	AC=30;AF=0.300;AN=100;BaseQRankSum=17.195;DB;DP=3580;Dels=0.00;FS=6.847;HaplotypeScore=8.4133;InbreedingCoeff=-0.1429;MLEAC=30;MLEAF=0.300;MQ=59.52;MQ0=0;MQRankSum=1.694;QD=17.07;ReadPosRankSum=0.946;SNPEFF_AMINO_ACID_CHANGE=M126T;SNPEFF_CODON_CHANGE=aTg/aCg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1849029_1849601;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TMEM52;SNPEFF [...]
+1	1849530	rs4459050	T	C	19900.06	PASS	AC=17;AF=0.170;AN=100;BaseQRankSum=-17.682;DB;DP=3577;Dels=0.00;FS=3.515;HaplotypeScore=8.4831;InbreedingCoeff=0.2204;MLEAC=17;MLEAF=0.170;MQ=59.53;MQ0=0;MQRankSum=-1.114;QD=19.06;ReadPosRankSum=-0.110;SNPEFF_AMINO_ACID_CHANGE=M126V;SNPEFF_CODON_CHANGE=Atg/Gtg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1849029_1849601;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TMEM52;SNPEFF_IMPACT=MODERATE;SNPE [...]
+1	1849744	rs1884455	G	A	14423.06	PASS	AC=17;AF=0.170;AN=100;BaseQRankSum=2.735;DB;DP=2283;Dels=0.00;FS=2.098;HaplotypeScore=1.3198;InbreedingCoeff=0.2204;MLEAC=17;MLEAF=0.170;MQ=59.00;MQ0=0;MQRankSum=0.027;QD=18.68;ReadPosRankSum=-1.454;SNPEFF_AMINO_ACID_CHANGE=D84;SNPEFF_CODON_CHANGE=gaC/gaT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1849692_1850236;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TMEM52;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID [...]
+1	1850597	.	G	A	52.03	PASS	AC=1;AF=0.013;AN=80;BaseQRankSum=-0.129;DP=149;Dels=0.00;FS=2.707;HaplotypeScore=0.1246;InbreedingCoeff=-0.0916;MLEAC=1;MLEAF=0.013;MQ=57.04;MQ0=0;MQRankSum=0.472;QD=8.67;ReadPosRankSum=-2.501;SNPEFF_AMINO_ACID_CHANGE=S34L;SNPEFF_CODON_CHANGE=tCg/tTg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1850484_1850697;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TMEM52;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCRIPT_ID=ENST [...]
+1	1850654	.	G	C	40.22	PASS	AC=4;AF=0.080;AN=50;BaseQRankSum=0.167;DP=37;Dels=0.00;FS=0.000;HaplotypeScore=0.0000;InbreedingCoeff=-0.0817;MLEAC=4;MLEAF=0.080;MQ=56.34;MQ0=0;MQRankSum=0.501;QD=5.75;ReadPosRankSum=-0.969;SNPEFF_AMINO_ACID_CHANGE=S15C;SNPEFF_CODON_CHANGE=tCc/tGc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1850484_1850697;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=TMEM52;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCRIPT_ID=ENST00 [...]
+1	1853863	rs28680721	T	C	14790.08	PASS	AC=19;AF=0.190;AN=100;BaseQRankSum=14.525;DB;DP=1741;Dels=0.00;FS=0.000;HaplotypeScore=0.7362;InbreedingCoeff=0.2851;MLEAC=19;MLEAF=0.190;MQ=58.07;MQ0=0;MQRankSum=1.097;QD=21.40;ReadPosRankSum=-3.808;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000493964;VQSLOD=4.14;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:39,0:39:99:0,117,1409	0/0:3 [...]
+1	1854109	rs2803348	A	G	51305.44	PASS	AC=50;AF=0.500;AN=100;BaseQRankSum=24.670;DB;DP=2880;Dels=0.00;FS=2.519;HaplotypeScore=1.1021;InbreedingCoeff=-0.2000;MLEAC=50;MLEAF=0.500;MQ=59.24;MQ0=0;MQRankSum=-0.088;QD=22.51;ReadPosRankSum=-0.904;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000493964;VQSLOD=5.12;culprit=InbreedingCoeff	GT:AD:DP:GQ:PL	0/1:24,34:55:99:1012,0,649	0/ [...]
+1	1854546	rs28633659	C	T	12300.07	PASS	AC=19;AF=0.190;AN=100;BaseQRankSum=-8.444;DB;DP=1617;Dels=0.00;FS=0.000;HaplotypeScore=0.5320;InbreedingCoeff=0.2852;MLEAC=19;MLEAF=0.190;MQ=59.21;MQ0=0;MQRankSum=2.435;QD=18.25;ReadPosRankSum=-2.346;SNPEFF_AMINO_ACID_CHANGE=E794K;SNPEFF_CODON_CHANGE=Gag/Aag;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1854424_1854554;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODERATE;SN [...]
+1	1854572	.	G	T	174.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.538;DP=1268;Dels=0.00;FS=0.000;HaplotypeScore=0.9881;InbreedingCoeff=-0.0103;MLEAC=1;MLEAF=0.010;MQ=58.77;MQ0=0;MQRankSum=1.477;QD=12.44;ReadPosRankSum=0.396;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000493964;VQSLOD=5.07;culprit=MQ	GT:AD:DP:GQ:PL	0/0:19,0:19:48:0,48,607	0/0:24,0:24:72:0,72,905	0/0:18,0:18 [...]
+1	1854579	rs115047896	A	G	222.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=0.037;DB;DP=1131;Dels=0.00;FS=0.000;HaplotypeScore=0.8070;InbreedingCoeff=-0.0207;MLEAC=2;MLEAF=0.020;MQ=58.75;MQ0=0;MQRankSum=-0.189;QD=10.10;ReadPosRankSum=0.028;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000493964;VQSLOD=6.42;culprit=MQ	GT:AD:DP:GQ:PL	0/0:18,0:18:48:0,48,612	0/0:26,0:26:78:0,78,96 [...]
+1	1854765	rs188186459	G	A	187.21	PASS	AC=1;AF=0.011;AN=90;BaseQRankSum=1.193;DB;DP=249;Dels=0.00;FS=1.872;HaplotypeScore=0.1355;InbreedingCoeff=-0.0475;MLEAC=1;MLEAF=0.011;MQ=57.94;MQ0=0;MQRankSum=1.012;QD=11.70;ReadPosRankSum=0.094;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000493964;VQSLOD=4.15;culprit=MQ	GT:AD:DP:GQ:PL	0/0:6,0:6:18:0,18,187	0/0:6,0:6:18:0,18,184	0/0:6 [...]
+1	1855319	rs2295362	C	T	26718.41	PASS	AC=18;AF=0.180;AN=100;BaseQRankSum=-9.177;DB;DP=3695;Dels=0.00;FS=3.377;HaplotypeScore=0.6567;InbreedingCoeff=0.3225;MLEAC=18;MLEAF=0.180;MQ=59.63;MQ0=0;MQRankSum=1.412;QD=23.58;ReadPosRankSum=-2.580;SNPEFF_AMINO_ACID_CHANGE=K711;SNPEFF_CODON_CHANGE=aaG/aaA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1855214_1855368;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRI [...]
+1	1857211	rs28521843	G	A	670.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=5.451;DB;DP=1568;Dels=0.00;FS=10.997;HaplotypeScore=0.0752;InbreedingCoeff=-0.0206;MLEAC=2;MLEAF=0.020;MQ=59.66;MQ0=0;MQRankSum=1.004;QD=13.41;ReadPosRankSum=-1.863;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000493964;VQSLOD=7.74;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:21,0:21:63:0,63,663	0/0:34,0:3 [...]
+1	1887019	rs28548017	A	G	150764.25	VQSRTrancheSNP99.50to99.90	AC=79;AF=0.790;AN=100;BaseQRankSum=18.762;DB;DP=4939;Dels=0.00;FS=92.030;HaplotypeScore=0.6975;InbreedingCoeff=-0.0247;MLEAC=79;MLEAF=0.790;MQ=59.70;MQ0=0;MQRankSum=1.805;QD=32.18;ReadPosRankSum=-7.436;SNPEFF_AMINO_ACID_CHANGE=*763Q;SNPEFF_CODON_CHANGE=Tag/Cag;SNPEFF_EFFECT=STOP_LOST;SNPEFF_EXON_ID=exon_1_1884752_1887289;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPAC [...]
+1	1887091	rs139735565	CG	C	11461.89	Indel_FS	AC=26;AF=0.260;AN=100;BaseQRankSum=-0.440;DB;DP=3493;FS=322.923;HaplotypeScore=20.3961;InbreedingCoeff=-0.0396;MLEAC=26;MLEAF=0.260;MQ=58.64;MQ0=0;MQRankSum=-3.052;QD=9.92;ReadPosRankSum=-2.824;SNPEFF_EFFECT=FRAME_SHIFT;SNPEFF_EXON_ID=exon_1_1884752_1887289;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=HIGH;SNPEFF_TRANSCRIPT_ID=ENST00000270720	GT:AD:DP:GQ:PL	1/1:0,27:28:81:1149,81,0	0/ [...]
+1	1887111	rs141242161	GC	G	8958.88	Indel_FS	AC=26;AF=0.260;AN=100;BaseQRankSum=3.014;DB;DP=3234;FS=424.686;HaplotypeScore=22.9125;InbreedingCoeff=-0.0395;MLEAC=26;MLEAF=0.260;MQ=57.82;MQ0=0;MQRankSum=0.421;QD=8.09;RPA=2,1;RU=C;ReadPosRankSum=-9.687;SNPEFF_EFFECT=FRAME_SHIFT;SNPEFF_EXON_ID=exon_1_1884752_1887289;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=HIGH;SNPEFF_TRANSCRIPT_ID=ENST00000270720;STR	GT:AD:DP:GQ:PL	1/1:0,15:27:4 [...]
+1	1887245	rs28575980	G	A	15682.54	PASS	AC=25;AF=0.250;AN=100;BaseQRankSum=-0.390;DB;DP=2315;Dels=0.00;FS=4.788;HaplotypeScore=0.6817;InbreedingCoeff=-0.1200;MLEAC=25;MLEAF=0.250;MQ=58.68;MQ0=0;MQRankSum=-1.555;QD=16.07;ReadPosRankSum=1.024;SNPEFF_AMINO_ACID_CHANGE=A134;SNPEFF_CODON_CHANGE=gcC/gcT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1887150_1887289;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=LOW;SNPEFF_TRANSC [...]
+1	1887300	rs115884258	G	A	224.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.937;DB;DP=1592;Dels=0.00;FS=4.030;HaplotypeScore=0.3130;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.12;MQ0=0;MQRankSum=0.709;QD=8.97;ReadPosRankSum=-0.167;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000270720;VQSLOD=8.09;culprit=QD	GT:AD:DP:GQ:PL	0/0:32,0:32:90:0,90,1101	0/0:33,0:33:99:0,99,1 [...]
+1	1888024	rs79784725	C	G	940.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=5.079;DB;DP=1810;Dels=0.00;FS=9.030;HaplotypeScore=0.2720;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.19;MQ0=0;MQRankSum=0.316;QD=14.46;ReadPosRankSum=0.269;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000270720;VQSLOD=7.34;culprit=InbreedingCoeff	GT:AD:DP:GQ:PL	0/0:45,0:45:99:0,135,1626	0/0:31,0: [...]
+1	1888193	rs3820011	C	A	8338.62	PASS	AC=25;AF=0.250;AN=100;BaseQRankSum=6.606;DB;DP=1179;Dels=0.00;FS=0.000;HaplotypeScore=0.4560;InbreedingCoeff=-0.0142;MLEAC=25;MLEAF=0.250;MQ=59.30;MQ0=0;MQRankSum=0.157;QD=16.13;ReadPosRankSum=3.386;SNPEFF_AMINO_ACID_CHANGE=G628C;SNPEFF_CODON_CHANGE=Ggc/Tgc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1888059_1888223;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODERATE;SNPEF [...]
+1	1888237	rs139739570	T	C	418.22	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.939;DB;DP=899;Dels=0.00;FS=1.100;HaplotypeScore=0.2628;InbreedingCoeff=-0.0122;MLEAC=1;MLEAF=0.010;MQ=59.60;MQ0=0;MQRankSum=0.003;QD=10.46;ReadPosRankSum=-1.338;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000270720;VQSLOD=7.99;culprit=FS	GT:AD:DP:GQ:PL	0/0:14,0:14:42:0,42,481	0/0:14,0:14:39:0,39,49 [...]
+1	1888273	rs114981028	G	T	376.29	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-4.990;DB;DP=627;Dels=0.00;FS=0.000;HaplotypeScore=0.2840;InbreedingCoeff=-0.0158;MLEAC=1;MLEAF=0.010;MQ=59.26;MQ0=0;MQRankSum=0.371;QD=12.54;ReadPosRankSum=-2.140;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000270720;VQSLOD=7.60;culprit=FS	GT:AD:DP:GQ:PL	0/0:5,0:5:15:0,15,181	0/0:14,0:14:39:0,39,490	 [...]
+1	1890559	rs146150343	C	T	1499.12	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=0.399;DB;DP=3082;Dels=0.00;FS=22.965;HaplotypeScore=0.4642;InbreedingCoeff=-0.0309;MLEAC=3;MLEAF=0.030;MQ=59.20;MQ0=0;MQRankSum=1.746;QD=11.27;ReadPosRankSum=-3.431;SNPEFF_AMINO_ACID_CHANGE=S617;SNPEFF_CODON_CHANGE=tcG/tcA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1890559_1890648;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRI [...]
+1	1890604	rs75297543	C	T	709.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=3.631;DB;DP=4460;Dels=0.00;FS=6.550;HaplotypeScore=0.3434;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.16;MQ0=0;MQRankSum=0.792;QD=9.58;ReadPosRankSum=-0.776;SNPEFF_AMINO_ACID_CHANGE=T49;SNPEFF_CODON_CHANGE=acG/acA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1890559_1890648;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID [...]
+1	1891477	rs2748972	A	G	7909.71	PASS	AC=22;AF=0.220;AN=100;BaseQRankSum=14.325;DB;DP=1305;Dels=0.00;FS=5.023;HaplotypeScore=1.5993;InbreedingCoeff=0.0675;MLEAC=22;MLEAF=0.220;MQ=58.80;MQ0=0;MQRankSum=-0.664;QD=15.66;ReadPosRankSum=-1.079;SNPEFF_AMINO_ACID_CHANGE=S10P;SNPEFF_CODON_CHANGE=Tcc/Ccc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1891403_1891504;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODERATE;SNPE [...]
+1	1891486	rs113160895	A	G	1694.48	PASS	AC=6;AF=0.060;AN=100;BaseQRankSum=5.837;DB;DP=1152;Dels=0.00;FS=0.673;HaplotypeScore=1.7650;InbreedingCoeff=-0.0639;MLEAC=6;MLEAF=0.060;MQ=58.80;MQ0=0;MQRankSum=0.379;QD=12.02;ReadPosRankSum=-0.720;SNPEFF_AMINO_ACID_CHANGE=W7R;SNPEFF_CODON_CHANGE=Tgg/Cgg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1891403_1891504;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODERATE;SNPEFF [...]
+1	1895177	rs7523728	C	T	18866.39	PASS	AC=23;AF=0.230;AN=100;BaseQRankSum=2.316;DB;DP=3390;Dels=0.00;FS=0.546;HaplotypeScore=0.3873;InbreedingCoeff=0.0401;MLEAC=23;MLEAF=0.230;MQ=59.68;MQ0=0;MQRankSum=0.727;QD=18.05;ReadPosRankSum=-0.786;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000270720;VQSLOD=6.95;culprit=FS	GT:AD:DP:GQ:PL	1/1:0,55:55:99:2079,166,0	0/0:62,0:62:99:0,18 [...]
+1	1896333	rs61734005	G	A	4491.52	PASS	AC=8;AF=0.080;AN=100;BaseQRankSum=-6.307;DB;DP=1697;Dels=0.00;FS=12.547;HaplotypeScore=0.4063;InbreedingCoeff=0.4565;MLEAC=8;MLEAF=0.080;MQ=58.32;MQ0=0;MQRankSum=1.282;QD=16.10;ReadPosRankSum=-0.673;SNPEFF_AMINO_ACID_CHANGE=H523;SNPEFF_CODON_CHANGE=caC/caT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1896327_1896500;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIP [...]
+1	1896379	rs61734006	C	T	483.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=0.623;DB;DP=1305;Dels=0.00;FS=4.694;HaplotypeScore=0.2476;InbreedingCoeff=-0.0102;MLEAC=1;MLEAF=0.010;MQ=58.31;MQ0=0;MQRankSum=1.250;QD=11.50;ReadPosRankSum=0.386;SNPEFF_AMINO_ACID_CHANGE=R508H;SNPEFF_CODON_CHANGE=cGt/cAt;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1896327_1896500;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODERATE;SNPEFF_ [...]
+1	1896440	rs16824585	G	A	9521.71	PASS	AC=29;AF=0.290;AN=100;BaseQRankSum=-6.015;DB;DP=1326;Dels=0.00;FS=4.692;HaplotypeScore=0.3370;InbreedingCoeff=-0.0146;MLEAC=29;MLEAF=0.290;MQ=59.06;MQ0=0;MQRankSum=0.301;QD=17.28;ReadPosRankSum=-2.158;SNPEFF_AMINO_ACID_CHANGE=L488;SNPEFF_CODON_CHANGE=Ctg/Ttg;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1896327_1896500;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCR [...]
+1	1897822	.	G	T	89.86	VQSRTrancheSNP99.90to100.00	AC=9;AF=0.090;AN=100;BaseQRankSum=-20.355;DP=1874;Dels=0.00;FS=1931.320;HaplotypeScore=1.6794;InbreedingCoeff=-0.0913;MLEAC=6;MLEAF=0.060;MQ=58.79;MQ0=0;MQRankSum=4.459;QD=0.34;ReadPosRankSum=-22.255;SNPEFF_AMINO_ACID_CHANGE=Y463*;SNPEFF_CODON_CHANGE=taC/taA;SNPEFF_EFFECT=STOP_GAINED;SNPEFF_EXON_ID=exon_1_1897810_1897965;SNPEFF_FUNCTIONAL_CLASS=NONSENSE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=HIGH;SNPEF [...]
+1	1897832	rs144739795	T	C	756.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=5.168;DB;DP=1828;Dels=0.00;FS=0.000;HaplotypeScore=0.8664;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=58.77;MQ0=0;MQRankSum=0.622;QD=12.82;ReadPosRankSum=-0.824;SNPEFF_AMINO_ACID_CHANGE=N460S;SNPEFF_CODON_CHANGE=aAt/aGt;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1897810_1897965;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODERATE;SNPEF [...]
+1	1897889	rs61734007	G	C	1841.28	PASS	AC=4;AF=0.040;AN=100;BaseQRankSum=-8.826;DB;DP=1545;Dels=0.00;FS=0.000;HaplotypeScore=0.5198;InbreedingCoeff=-0.0417;MLEAC=4;MLEAF=0.040;MQ=58.62;MQ0=0;MQRankSum=2.410;QD=11.58;ReadPosRankSum=0.364;SNPEFF_AMINO_ACID_CHANGE=P441R;SNPEFF_CODON_CHANGE=cCc/cGc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1897810_1897965;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODERATE;SNPEF [...]
+1	1897960	rs61734009	G	A	69.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.744;DB;DP=1196;Dels=0.00;FS=2.361;HaplotypeScore=0.4735;InbreedingCoeff=-0.0102;MLEAC=1;MLEAF=0.010;MQ=58.04;MQ0=0;MQRankSum=0.756;QD=8.65;ReadPosRankSum=-2.117;SNPEFF_AMINO_ACID_CHANGE=Y417;SNPEFF_CODON_CHANGE=taC/taT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1897810_1897965;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_I [...]
+1	1900024	rs56985589	TG	T	34001.90	PASS	AC=29;AF=0.290;AN=100;BaseQRankSum=-4.625;DB;DP=3473;FS=33.708;HaplotypeScore=19.1752;InbreedingCoeff=0.0680;MLEAC=29;MLEAF=0.290;MQ=58.34;MQ0=0;MQRankSum=-3.279;QD=23.43;ReadPosRankSum=-0.519;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000270720	GT:AD:DP:GQ:PL	1/1:0,69:69:99:3091,208,0	0/0:85,0:85:99:0,256,3014	0/1:35,33:71:99:1222 [...]
+1	1900083	rs61734010	C	T	1026.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-0.513;DB;DP=4963;Dels=0.00;FS=0.626;HaplotypeScore=1.0971;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=57.40;MQ0=0;MQRankSum=3.504;QD=13.68;ReadPosRankSum=-0.731;SNPEFF_AMINO_ACID_CHANGE=T412;SNPEFF_CODON_CHANGE=acG/acA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1900074_1900272;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIP [...]
+1	1900106	rs61233860	T	TCTC	53695.38	Indel_FS	AC=29;AF=0.290;AN=100;BaseQRankSum=-4.539;DB;DP=5111;FS=1274.991;HaplotypeScore=15.3591;InbreedingCoeff=0.0772;MLEAC=29;MLEAF=0.290;MQ=56.96;MQ0=0;MQRankSum=-7.285;QD=29.91;ReadPosRankSum=-0.826;SNPEFF_AMINO_ACID_CHANGE=K404KR;SNPEFF_CODON_CHANGE=aag/aaGAGg;SNPEFF_EFFECT=CODON_INSERTION;SNPEFF_EXON_ID=exon_1_1900074_1900272;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODERATE;SNPEFF [...]
+1	1900186	rs35269416	T	C	26612.08	PASS	AC=17;AF=0.170;AN=100;BaseQRankSum=15.129;DB;DP=5644;Dels=0.00;FS=2.051;HaplotypeScore=0.9407;InbreedingCoeff=0.0787;MLEAC=17;MLEAF=0.170;MQ=58.60;MQ0=0;MQRankSum=2.639;QD=20.81;ReadPosRankSum=-1.035;SNPEFF_AMINO_ACID_CHANGE=K378R;SNPEFF_CODON_CHANGE=aAa/aGa;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1900074_1900272;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODERATE;SN [...]
+1	1900211	rs78791970	C	T	850.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-5.317;DB;DP=5092;Dels=0.00;FS=0.000;HaplotypeScore=1.0293;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=58.63;MQ0=0;MQRankSum=2.381;QD=11.81;ReadPosRankSum=-0.996;SNPEFF_AMINO_ACID_CHANGE=E370K;SNPEFF_CODON_CHANGE=Gag/Aag;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1900074_1900272;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODERATE;SNPEF [...]
+1	1900225	rs72636304	C	T	689.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=3.355;DB;DP=4850;Dels=0.00;FS=1.828;HaplotypeScore=1.5262;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=58.60;MQ0=0;MQRankSum=0.345;QD=13.25;ReadPosRankSum=0.779;SNPEFF_AMINO_ACID_CHANGE=R365Q;SNPEFF_CODON_CHANGE=cGg/cAg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1900074_1900272;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODERATE;SNPEFF_ [...]
+1	1900232	rs16824588	T	C	72609.14	PASS	AC=47;AF=0.470;AN=100;BaseQRankSum=-13.056;DB;DP=4674;Dels=0.00;FS=4.915;HaplotypeScore=1.2678;InbreedingCoeff=0.0767;MLEAC=47;MLEAF=0.470;MQ=58.67;MQ0=0;MQRankSum=-0.362;QD=23.54;ReadPosRankSum=-1.796;SNPEFF_AMINO_ACID_CHANGE=I363V;SNPEFF_CODON_CHANGE=Atc/Gtc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1900074_1900272;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODERATE; [...]
+1	1900308	rs114206046	T	C	1362.12	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=6.772;DB;DP=1287;Dels=0.00;FS=7.651;HaplotypeScore=0.6800;InbreedingCoeff=-0.0311;MLEAC=3;MLEAF=0.030;MQ=58.64;MQ0=0;MQRankSum=1.892;QD=13.10;ReadPosRankSum=-1.879;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000270720;VQSLOD=6.66;culprit=MQ	GT:AD:DP:GQ:PL	0/0:39,1:39:99:0,111,1253	0/0:34,0:34:96:0,96 [...]
+1	1903373	rs117921686	C	T	723.61	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=-2.355;DB;DP=1241;Dels=0.00;FS=1.104;HaplotypeScore=1.0785;InbreedingCoeff=-0.0308;MLEAC=3;MLEAF=0.030;MQ=59.00;MQ0=0;MQRankSum=0.107;QD=11.67;ReadPosRankSum=-1.042;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000270720;VQSLOD=6.56;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/0:29,0:29:84:0,84,1042	0/0:28,0 [...]
+1	1903400	.	T	G	1066.92	VQSRTrancheSNP99.50to99.90	AC=31;AF=0.310;AN=100;BaseQRankSum=-15.042;DP=1110;Dels=0.00;FS=159.527;HaplotypeScore=1.0567;InbreedingCoeff=-0.4165;MLEAC=29;MLEAF=0.290;MQ=58.36;MQ0=0;MQRankSum=1.810;QD=1.48;ReadPosRankSum=-13.563;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000270720;VQSLOD=-1.156e+01;culprit=FS	GT:AD:DP:GQ:PL	0/0:15,10:24:18:0,18,424 [...]
+1	1903408	rs116259649	C	T	178.20	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.299;DB;DP=992;Dels=0.00;FS=1.460;HaplotypeScore=1.5170;InbreedingCoeff=-0.0112;MLEAC=1;MLEAF=0.010;MQ=58.72;MQ0=0;MQRankSum=0.361;QD=11.88;ReadPosRankSum=-0.791;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000270720;VQSLOD=4.09;culprit=MQ	GT:AD:DP:GQ:PL	0/0:18,0:18:48:0,48,578	0/0:18,0:18:48:0,48,52 [...]
+1	1903470	rs144786593	C	T	633.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-3.969;DB;DP=3533;Dels=0.00;FS=19.228;HaplotypeScore=0.5360;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=58.99;MQ0=0;MQRankSum=0.480;QD=10.38;ReadPosRankSum=1.252;SNPEFF_AMINO_ACID_CHANGE=R279;SNPEFF_CODON_CHANGE=agG/agA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1903419_1903521;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIP [...]
+1	1904357	rs143627362	C	T	676.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-4.431;DB;DP=1574;Dels=0.00;FS=0.000;HaplotypeScore=0.2661;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=58.89;MQ0=0;MQRankSum=1.468;QD=11.27;ReadPosRankSum=-2.624;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000270720;VQSLOD=7.53;culprit=MQ	GT:AD:DP:GQ:PL	0/0:24,0:24:72:0,72,862	0/0:25,0:25:75:0,75,9 [...]
+1	1905556	rs61733994	C	T	1950.12	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=0.222;DB;DP=2127;Dels=0.00;FS=10.164;HaplotypeScore=1.5441;InbreedingCoeff=-0.0309;MLEAC=3;MLEAF=0.030;MQ=58.70;MQ0=0;MQRankSum=0.448;QD=14.23;ReadPosRankSum=-0.221;SNPEFF_AMINO_ACID_CHANGE=T194;SNPEFF_CODON_CHANGE=acG/acA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1905464_1905637;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIP [...]
+1	1905565	rs77196972	C	T	1745.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-3.508;DB;DP=2354;Dels=0.00;FS=1.188;HaplotypeScore=1.7448;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=58.55;MQ0=0;MQRankSum=-0.361;QD=14.31;ReadPosRankSum=-0.283;SNPEFF_AMINO_ACID_CHANGE=V191;SNPEFF_CODON_CHANGE=gtG/gtA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1905464_1905637;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRI [...]
+1	1916782	rs3795282	C	A	8233.83	PASS	AC=10;AF=0.100;AN=100;BaseQRankSum=-13.977;DB;DP=2297;Dels=0.00;FS=0.000;HaplotypeScore=0.3487;InbreedingCoeff=0.5556;MLEAC=10;MLEAF=0.100;MQ=59.41;MQ0=0;MQRankSum=0.258;QD=21.22;ReadPosRankSum=-1.990;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378590;VQSLOD=6.36;culprit=FS	GT:AD:DP:GQ:PL	0/0:57,0:57:99:0,172,2108	0/0:44,0:44:99 [...]
+1	1916806	rs3795281	C	T	12040.83	PASS	AC=10;AF=0.100;AN=100;BaseQRankSum=-3.466;DB;DP=3132;Dels=0.00;FS=6.201;HaplotypeScore=0.4590;InbreedingCoeff=0.5556;MLEAC=10;MLEAF=0.100;MQ=59.06;MQ0=0;MQRankSum=0.460;QD=24.67;ReadPosRankSum=-0.128;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378590;VQSLOD=6.27;culprit=InbreedingCoeff	GT:AD:DP:GQ:PL	0/0:68,0:68:99:0,205,2457	0 [...]
+1	1916855	.	G	A	72.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.246;DP=3838;Dels=0.00;FS=0.000;HaplotypeScore=0.8434;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.25;MQ0=0;MQRankSum=1.732;QD=0.96;ReadPosRankSum=-1.504;SNPEFF_AMINO_ACID_CHANGE=S157L;SNPEFF_CODON_CHANGE=tCg/tTg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1916825_1916929;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCRIPT_I [...]
+1	1916890	rs3795280	C	T	50541.72	PASS	AC=46;AF=0.460;AN=100;BaseQRankSum=-25.470;DB;DP=3695;Dels=0.00;FS=10.106;HaplotypeScore=0.7583;InbreedingCoeff=0.1948;MLEAC=46;MLEAF=0.460;MQ=59.20;MQ0=0;MQRankSum=0.175;QD=21.57;ReadPosRankSum=-0.665;SNPEFF_AMINO_ACID_CHANGE=L145;SNPEFF_CODON_CHANGE=ctG/ctA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1916825_1916929;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=LOW;SNPEFF_TRANSC [...]
+1	1916959	rs74594142	G	A	573.25	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-4.181;DB;DP=1422;Dels=0.00;FS=0.000;HaplotypeScore=0.2665;InbreedingCoeff=-0.0204;MLEAC=2;MLEAF=0.020;MQ=59.28;MQ0=0;MQRankSum=-0.068;QD=9.55;ReadPosRankSum=-1.486;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378590;VQSLOD=8.46;culprit=FS	GT:AD:DP:GQ:PL	0/0:27,0:27:81:0,81,978	0/0:23,0:23:69:0,6 [...]
+1	1918362	rs144006794	C	T	869.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-6.130;DB;DP=4633;Dels=0.00;FS=7.545;HaplotypeScore=0.9887;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=58.69;MQ0=0;MQRankSum=1.612;QD=11.91;ReadPosRankSum=1.321;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378590;VQSLOD=5.13;culprit=MQ	GT:AD:DP:GQ:PL	0/0:107,0:107:99:0,316,3912	0/0:94,0:94:99 [...]
+1	1918368	.	C	G	612.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.139;DP=4684;Dels=0.00;FS=0.000;HaplotypeScore=1.0328;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=58.68;MQ0=0;MQRankSum=0.412;QD=13.03;ReadPosRankSum=0.283;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378590;VQSLOD=4.76;culprit=MQ	GT:AD:DP:GQ:PL	0/0:102,0:102:99:0,304,3721	0/0:97,0:97:99:0,292,3666	0 [...]
+1	1918488	rs4350140	A	G	66193.72	PASS	AC=67;AF=0.670;AN=100;BaseQRankSum=20.807;DB;DP=2739;Dels=0.00;FS=0.753;HaplotypeScore=1.0616;InbreedingCoeff=-0.0403;MLEAC=67;MLEAF=0.670;MQ=59.28;MQ0=0;MQRankSum=1.448;QD=26.46;ReadPosRankSum=1.038;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378590;VQSLOD=5.13;culprit=HaplotypeScore	GT:AD:DP:GQ:PL	0/1:28,28:56:99:822,0,764	0/ [...]
+1	1920434	rs144487103	TA	T	3352.64	PASS	AC=39;AF=0.390;AN=100;BaseQRankSum=1.147;DB;DP=1874;FS=2.258;HaplotypeScore=10.7985;InbreedingCoeff=-0.6358;MLEAC=39;MLEAF=0.390;MQ=59.32;MQ0=0;MQRankSum=0.475;QD=2.21;RPA=14,13;RU=A;ReadPosRankSum=0.826;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000270720;STR	GT:AD:DP:GQ:PL	0/0:0,0:36:10:0,10,320	0/1:0,0:42:40:40,0,457	0/1:0,0:18: [...]
+1	1922303	rs13303195	C	T	52962.72	PASS	AC=70;AF=0.700;AN=100;BaseQRankSum=-8.284;DB;DP=2098;Dels=0.00;FS=6.763;HaplotypeScore=0.3122;InbreedingCoeff=-0.0477;MLEAC=70;MLEAF=0.700;MQ=59.64;MQ0=0;MQRankSum=-0.363;QD=26.74;ReadPosRankSum=-0.540;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=retained_intron;SNPEFF_GENE_NAME=C1orf222;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000270720;VQSLOD=5.13;culprit=InbreedingCoeff	GT:AD:DP:GQ:PL	0/1:19,28:45:99:842,0,552	1/ [...]
+1	1956362	rs2376805	G	A	71015.04	PASS	AC=83;AF=0.830;AN=100;BaseQRankSum=10.972;DB;DP=2501;Dels=0.00;FS=11.665;HaplotypeScore=0.3263;InbreedingCoeff=0.3621;MLEAC=83;MLEAF=0.830;MQ=59.05;MQ0=0;MQRankSum=0.640;QD=31.87;ReadPosRankSum=3.782;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=GABRD;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378585;VQSLOD=4.03;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL	0/1:21,13:32:99:382,0,479	1/1:0,30:3 [...]
+1	1956733	rs188089835	G	A	868.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.998;DB;DP=2977;Dels=0.00;FS=1.871;HaplotypeScore=0.5884;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.31;MQ0=0;MQRankSum=0.654;QD=11.58;ReadPosRankSum=-3.335;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=GABRD;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378585;VQSLOD=6.16;culprit=InbreedingCoeff	GT:AD:DP:GQ:PL	0/0:60,0:60:99:0,181,2168	0/0:57,0:5 [...]
+1	1956850	.	A	C	664.91	VQSRTrancheSNP99.50to99.90	AC=22;AF=0.220;AN=100;BaseQRankSum=-21.336;DP=2255;Dels=0.00;FS=351.602;HaplotypeScore=2.1819;InbreedingCoeff=-0.2778;MLEAC=21;MLEAF=0.210;MQ=58.85;MQ0=0;MQRankSum=6.650;QD=0.58;ReadPosRankSum=-5.172;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=GABRD;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378585;VQSLOD=-3.563e+01;culprit=FS	GT:AD:DP:GQ:PL	0/0:36,15:49:29:0,29,976	0/0:4 [...]
+1	1957037	rs2229110	T	C	70543.40	PASS	AC=64;AF=0.640;AN=100;BaseQRankSum=16.739;DB;DP=3212;Dels=0.00;FS=3.065;HaplotypeScore=2.3687;InbreedingCoeff=0.2187;MLEAC=64;MLEAF=0.640;MQ=59.26;MQ0=0;MQRankSum=-0.198;QD=27.04;ReadPosRankSum=0.465;SNPEFF_AMINO_ACID_CHANGE=G110;SNPEFF_CODON_CHANGE=ggT/ggC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1956957_1957177;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=GABRD;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_I [...]
+1	1957219	rs140980040	CG	C	3487.20	Indel_FS	AC=12;AF=0.120;AN=100;BaseQRankSum=-0.962;DB;DP=873;FS=354.599;HaplotypeScore=4.0037;InbreedingCoeff=0.0497;MLEAC=12;MLEAF=0.120;MQ=58.78;MQ0=0;MQRankSum=1.434;QD=17.98;RPA=3,2;RU=G;ReadPosRankSum=-2.351;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=GABRD;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378585;STR	GT:AD:DP:GQ:PL	0/0:22,0:22:66:0,66,895	0/0:23,0:23:69:0,69,926	0/1:9,7:1 [...]
+1	1958993	rs150102040	C	T	122.20	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.968;DB;DP=911;Dels=0.00;FS=17.837;HaplotypeScore=0.2512;InbreedingCoeff=-0.0110;MLEAC=1;MLEAF=0.010;MQ=59.00;MQ0=0;MQRankSum=1.864;QD=7.64;ReadPosRankSum=-0.095;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=GABRD;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378585;VQSLOD=4.30;culprit=FS	GT:AD:DP:GQ:PL	0/0:19,0:19:57:0,57,703	0/0:21,0:21:63:0,63,794	0/ [...]
+1	1959121	rs3795279	T	C	2677.48	PASS	AC=5;AF=0.050;AN=100;BaseQRankSum=9.933;DB;DP=1066;Dels=0.00;FS=4.101;HaplotypeScore=0.3335;InbreedingCoeff=-0.0530;MLEAC=5;MLEAF=0.050;MQ=59.22;MQ0=0;MQRankSum=0.944;QD=14.87;ReadPosRankSum=-1.734;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=GABRD;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378585;VQSLOD=7.15;culprit=InbreedingCoeff	GT:AD:DP:GQ:PL	0/0:23,0:23:69:0,69,811	0/0:27,0:27:81 [...]
+1	1959698	rs139300921	C	T	112.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=2.525;DB;DP=1038;Dels=0.00;FS=2.291;HaplotypeScore=0.5319;InbreedingCoeff=-0.0104;MLEAC=1;MLEAF=0.010;MQ=58.91;MQ0=0;MQRankSum=0.884;QD=10.20;ReadPosRankSum=-0.322;SNPEFF_AMINO_ACID_CHANGE=R220C;SNPEFF_CODON_CHANGE=Cgc/Tgc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1959594_1959731;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=GABRD;SNPEFF_IMPACT=MODERATE;SNPEFF_TR [...]
+1	1959699	rs41307846	G	A	210.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.134;DB;DP=999;Dels=0.00;FS=0.000;HaplotypeScore=0.5319;InbreedingCoeff=-0.0104;MLEAC=1;MLEAF=0.010;MQ=58.80;MQ0=0;MQRankSum=1.468;QD=19.11;ReadPosRankSum=-1.548;SNPEFF_AMINO_ACID_CHANGE=R220H;SNPEFF_CODON_CHANGE=cGc/cAc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1959594_1959731;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=GABRD;SNPEFF_IMPACT=MODERATE;SNPEFF_TRA [...]
+1	1960674	rs28408173	C	T	2980.27	PASS	AC=23;AF=0.230;AN=100;BaseQRankSum=-7.583;DB;DP=410;Dels=0.00;FS=0.000;HaplotypeScore=0.2047;InbreedingCoeff=0.1983;MLEAC=22;MLEAF=0.220;MQ=58.36;MQ0=0;MQRankSum=2.906;QD=17.43;ReadPosRankSum=-1.056;SNPEFF_AMINO_ACID_CHANGE=S272;SNPEFF_CODON_CHANGE=agC/agT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1960550_1960705;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=GABRD;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID [...]
+1	1960964	rs116197762	A	G	2939.28	PASS	AC=4;AF=0.040;AN=100;BaseQRankSum=9.622;DB;DP=2005;Dels=0.00;FS=10.345;HaplotypeScore=0.5699;InbreedingCoeff=-0.0417;MLEAC=4;MLEAF=0.040;MQ=58.96;MQ0=0;MQRankSum=-0.092;QD=13.36;ReadPosRankSum=-2.028;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=GABRD;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378585;VQSLOD=6.71;culprit=MQ	GT:AD:DP:GQ:PL	0/0:38,0:38:99:0,111,1314	0/0:43,0:43:99:0,123, [...]
+1	1961239	rs28507434	G	A	181.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.178;DB;DP=1196;Dels=0.00;FS=2.212;HaplotypeScore=0.2632;InbreedingCoeff=-0.0104;MLEAC=1;MLEAF=0.010;MQ=59.68;MQ0=0;MQRankSum=-0.953;QD=15.10;ReadPosRankSum=-1.138;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=GABRD;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378585;VQSLOD=7.30;culprit=MQRankSum	GT:AD:DP:GQ:PL	0/0:19,0:19:57:0,57,703	0/0:27,0:27:81:0,8 [...]
+1	1961408	rs28431879	C	T	12677.23	PASS	AC=21;AF=0.210;AN=100;BaseQRankSum=-0.060;DB;DP=2453;Dels=0.00;FS=9.731;HaplotypeScore=0.6274;InbreedingCoeff=0.0958;MLEAC=21;MLEAF=0.210;MQ=58.82;MQ0=0;MQRankSum=0.121;QD=15.50;ReadPosRankSum=-1.337;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=GABRD;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378585;VQSLOD=5.25;culprit=MQ	GT:AD:DP:GQ:PL	0/1:23,22:43:99:645,0,560	0/1:19,13:31:99:373,0 [...]
+1	1961466	rs28398772	C	T	3049.46	PASS	AC=5;AF=0.050;AN=100;BaseQRankSum=2.707;DB;DP=2245;Dels=0.00;FS=15.097;HaplotypeScore=0.6637;InbreedingCoeff=-0.0526;MLEAC=5;MLEAF=0.050;MQ=59.16;MQ0=0;MQRankSum=-0.078;QD=12.81;ReadPosRankSum=-2.229;SNPEFF_AMINO_ACID_CHANGE=A368;SNPEFF_CODON_CHANGE=gcC/gcT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1961422_1962192;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=GABRD;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_I [...]
+1	1986954	rs35271800	G	A	626.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=4.370;DB;DP=1965;Dels=0.00;FS=1.853;HaplotypeScore=0.0984;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.68;MQ0=0;MQRankSum=0.301;QD=11.60;ReadPosRankSum=-2.289;SNPEFF_AMINO_ACID_CHANGE=R3H;SNPEFF_CODON_CHANGE=cGt/cAt;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1986880_1987001;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PRKCZ;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANS [...]
+1	1987889	rs70937051	C	T	286.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.998;DB;DP=1365;Dels=0.00;FS=0.000;HaplotypeScore=0.3534;InbreedingCoeff=-0.0102;MLEAC=1;MLEAF=0.010;MQ=59.62;MQ0=0;MQRankSum=-2.065;QD=11.45;ReadPosRankSum=-1.702;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PRKCZ;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000484419;VQSLOD=6.69;culprit=MQRankSum	GT:AD:DP:GQ:PL	0/0:27,0:27:81:0,81,998	0/0:19,0:19:51 [...]
+1	1987993	rs12184	T	C	57473.70	PASS	AC=66;AF=0.660;AN=100;BaseQRankSum=-7.941;DB;DP=2388;Dels=0.00;FS=0.833;HaplotypeScore=0.6716;InbreedingCoeff=0.2870;MLEAC=66;MLEAF=0.660;MQ=59.33;MQ0=0;MQRankSum=1.022;QD=28.16;ReadPosRankSum=-0.012;SNPEFF_AMINO_ACID_CHANGE=D42;SNPEFF_CODON_CHANGE=gaT/gaC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1987923_1988012;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PRKCZ;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=E [...]
+1	1988044	rs3820005	G	C	2910.92	PASS	AC=10;AF=0.100;AN=100;BaseQRankSum=-11.091;DB;DP=1213;Dels=0.00;FS=0.000;HaplotypeScore=0.6194;InbreedingCoeff=0.1102;MLEAC=10;MLEAF=0.100;MQ=59.57;MQ0=0;MQRankSum=0.904;QD=14.85;ReadPosRankSum=-0.951;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PRKCZ;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000484419;VQSLOD=6.64;culprit=FS	GT:AD:DP:GQ:PL	0/1:12,15:26:99:381,0,345	0/0:23,0:23:66:0,6 [...]
+1	1991013	.	C	T	764.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.967;DP=2590;Dels=0.00;FS=13.418;HaplotypeScore=2.5785;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=58.34;MQ0=0;MQRankSum=-0.170;QD=13.41;ReadPosRankSum=3.457;SNPEFF_AMINO_ACID_CHANGE=P106L;SNPEFF_CODON_CHANGE=cCa/cTa;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1990980_1991030;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PRKCZ;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCRIPT_ID [...]
+1	1991014	rs1878745	A	G	17582.73	PASS	AC=30;AF=0.300;AN=100;BaseQRankSum=-0.494;DB;DP=2599;Dels=0.00;FS=0.000;HaplotypeScore=2.5845;InbreedingCoeff=-0.0477;MLEAC=30;MLEAF=0.300;MQ=58.34;MQ0=0;MQRankSum=1.880;QD=14.08;ReadPosRankSum=0.017;SNPEFF_AMINO_ACID_CHANGE=P106;SNPEFF_CODON_CHANGE=ccA/ccG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_1990980_1991030;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PRKCZ;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_I [...]
+1	2002807	rs113197144	C	T	55.63	PASS	AC=1;AF=0.011;AN=94;BaseQRankSum=-0.619;DB;DP=175;Dels=0.00;FS=5.392;HaplotypeScore=0.1374;InbreedingCoeff=-0.0827;MLEAC=1;MLEAF=0.011;MQ=58.76;MQ0=0;MQRankSum=0.081;QD=9.27;ReadPosRankSum=-0.153;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PRKCZ;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378567;VQSLOD=4.50;culprit=MQ	GT:AD:DP:GQ:PL	0/0:1,0:1:3:0,3,25	0/0:4,0:4:12:0,12,148	0/0:2,0:2:6: [...]
+1	2075814	rs3128303	C	T	161.76	PASS	AC=7;AF=0.080;AN=88;BaseQRankSum=0.381;DB;DP=115;Dels=0.00;FS=6.310;HaplotypeScore=0.0659;InbreedingCoeff=-0.0583;MLEAC=7;MLEAF=0.080;MQ=58.55;MQ0=0;MQRankSum=0.381;QD=10.11;ReadPosRankSum=0.883;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PRKCZ;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378567;VQSLOD=5.37;culprit=MQ	GT:AD:DP:GQ:PL	0/1:1,1:2:20:20,0,28	0/0:2,0:2:6:0,6,59	0/0:2,0:2:6:0,6 [...]
+1	2077490	.	C	G	935.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=2.410;DP=3482;Dels=0.00;FS=4.801;HaplotypeScore=0.1840;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.87;MQ0=0;MQRankSum=0.476;QD=12.47;ReadPosRankSum=-0.060;SNPEFF_AMINO_ACID_CHANGE=P10A;SNPEFF_CODON_CHANGE=Cct/Gct;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_2077466_2077547;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PRKCZ;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCRIPT_ID=EN [...]
+1	2082184	rs11583093	G	A	813.12	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=5.161;DB;DP=2360;Dels=0.00;FS=9.924;HaplotypeScore=0.3601;InbreedingCoeff=-0.0309;MLEAC=3;MLEAF=0.030;MQ=59.39;MQ0=0;MQRankSum=-0.381;QD=11.62;ReadPosRankSum=-2.780;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PRKCZ;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000466352;VQSLOD=7.44;culprit=FS	GT:AD:DP:GQ:PL	0/0:43,0:43:99:0,129,1397	0/0:72,0:72:99:0,217 [...]
+1	2082458	rs262670	C	T	7277.27	PASS	AC=20;AF=0.200;AN=100;BaseQRankSum=10.145;DB;DP=1091;Dels=0.00;FS=9.590;HaplotypeScore=0.3189;InbreedingCoeff=0.1515;MLEAC=20;MLEAF=0.200;MQ=59.05;MQ0=0;MQRankSum=-0.140;QD=19.10;ReadPosRankSum=-2.059;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PRKCZ;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000419838;VQSLOD=6.08;culprit=MQ	GT:AD:DP:GQ:PL	0/0:28,0:28:81:0,81,869	0/1:12,16:27:99:421,0 [...]
+1	2087413	.	A	C	1052.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=6.334;DP=5739;Dels=0.00;FS=1.203;HaplotypeScore=0.0200;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.96;MQ0=0;MQRankSum=0.900;QD=14.03;ReadPosRankSum=-4.895;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PRKCZ;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000470986;VQSLOD=7.55;culprit=FS	GT:AD:DP:GQ:PL	0/0:127,0:127:99:0,382,4588	0/0:127,0:127:99:0,382,4696	0/ [...]
+1	2087557	rs3123592	T	C	8611.89	PASS	AC=10;AF=0.100;AN=100;BaseQRankSum=20.045;DB;DP=3575;Dels=0.00;FS=3.905;HaplotypeScore=0.2225;InbreedingCoeff=-0.1111;MLEAC=10;MLEAF=0.100;MQ=59.64;MQ0=0;MQRankSum=1.037;QD=15.41;ReadPosRankSum=-1.766;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PRKCZ;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000486681;VQSLOD=6.76;culprit=InbreedingCoeff	GT:AD:DP:GQ:PL	0/1:46,25:68:99:789,0,1305	0/0: [...]
+1	2101059	rs3737633	C	G	249.09	PASS	AC=7;AF=0.088;AN=80;BaseQRankSum=4.500;DB;DP=93;Dels=0.00;FS=5.055;HaplotypeScore=0.0748;InbreedingCoeff=0.0682;MLEAC=7;MLEAF=0.088;MQ=57.69;MQ0=0;MQRankSum=2.360;QD=15.57;ReadPosRankSum=-1.039;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PRKCZ;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378567;VQSLOD=4.81;culprit=MQ	GT:AD:DP:GQ:PL	1/1:0,2:2:6:76,6,0	0/0:5,0:5:15:0,15,172	./.	./.	0/1:1,1 [...]
+1	2101091	rs113136694	T	C	34.22	PASS	AC=1;AF=0.015;AN=66;BaseQRankSum=-0.667;DB;DP=69;Dels=0.00;FS=7.533;HaplotypeScore=0.1098;InbreedingCoeff=-0.1420;MLEAC=1;MLEAF=0.015;MQ=58.23;MQ0=0;MQRankSum=-0.489;QD=8.56;ReadPosRankSum=-2.447;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PRKCZ;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378567;VQSLOD=3.17;culprit=InbreedingCoeff	GT:AD:DP:GQ:PL	0/0:1,0:1:3:0,3,39	0/0:3,0:3:9:0,9,113	0 [...]
+1	2103506	rs2280272	C	G	1654.28	PASS	AC=4;AF=0.040;AN=100;BaseQRankSum=-2.301;DB;DP=2170;Dels=0.00;FS=8.345;HaplotypeScore=0.2935;InbreedingCoeff=-0.0417;MLEAC=4;MLEAF=0.040;MQ=59.42;MQ0=0;MQRankSum=2.739;QD=10.47;ReadPosRankSum=-1.244;SNPEFF_AMINO_ACID_CHANGE=A175;SNPEFF_CODON_CHANGE=gcC/gcG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_2103494_2103629;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PRKCZ;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID= [...]
+1	2105477	rs114496009	C	T	683.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=4.391;DB;DP=2112;Dels=0.00;FS=2.851;HaplotypeScore=0.4955;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.29;MQ0=0;MQRankSum=0.221;QD=10.51;ReadPosRankSum=-1.444;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PRKCZ;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000472017;VQSLOD=6.34;culprit=InbreedingCoeff	GT:AD:DP:GQ:PL	0/0:52,0:52:99:0,156,1739	0/0:43, [...]
+1	2106679	.	TCGGCTG	T	265.12	Indel_QD	AC=11;AF=0.110;AN=100;BaseQRankSum=-5.312;DP=1987;FS=138.344;HaplotypeScore=9.0959;InbreedingCoeff=-0.1292;MLEAC=10;MLEAF=0.100;MQ=58.20;MQ0=0;MQRankSum=-0.022;QD=0.54;ReadPosRankSum=-10.941;SNPEFF_AMINO_ACID_CHANGE=LGC318L;SNPEFF_CODON_CHANGE=ctcggctgc/ctc;SNPEFF_EFFECT=CODON_DELETION;SNPEFF_EXON_ID=exon_1_2106663_2106752;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PRKCZ;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCRIPT_I [...]
+1	2106681	.	G	C	143.25	VQSRTrancheSNP99.90to100.00	AC=9;AF=0.090;AN=100;BaseQRankSum=-7.761;DP=1223;Dels=0.02;FS=691.230;HaplotypeScore=3.5897;InbreedingCoeff=-0.1087;MLEAC=8;MLEAF=0.080;MQ=59.12;MQ0=0;MQRankSum=0.620;QD=0.80;ReadPosRankSum=-13.164;SNPEFF_AMINO_ACID_CHANGE=G319R;SNPEFF_CODON_CHANGE=Ggc/Cgc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_2106663_2106752;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PRKCZ;SNPEFF_IMPACT=MODER [...]
+1	2106762	rs262640	C	A	1773.23	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-2.243;DB;DP=1324;Dels=0.00;FS=0.000;HaplotypeScore=0.2332;InbreedingCoeff=0.9929;MLEAC=2;MLEAF=0.020;MQ=58.15;MQ0=0;MQRankSum=0.264;QD=34.10;ReadPosRankSum=-0.403;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PRKCZ;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000472017;VQSLOD=3.80;culprit=InbreedingCoeff	GT:AD:DP:GQ:PL	0/0:19,0:19:57:0,57,718	0/0:22,0:22 [...]
+1	2106763	rs112493944	A	G	726.12	PASS	AC=3;AF=0.030;AN=100;BaseQRankSum=5.441;DB;DP=1312;Dels=0.00;FS=3.149;HaplotypeScore=0.1935;InbreedingCoeff=-0.0311;MLEAC=3;MLEAF=0.030;MQ=58.16;MQ0=0;MQRankSum=0.834;QD=15.13;ReadPosRankSum=0.457;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PRKCZ;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000472017;VQSLOD=5.42;culprit=MQ	GT:AD:DP:GQ:PL	0/0:18,0:18:54:0,54,635	0/0:22,0:22:66:0,66,759 [...]
+1	2116002	.	TCTC	T	1008.13	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-4.465;DP=1094;FS=0.000;HaplotypeScore=6.4704;InbreedingCoeff=-0.0103;MLEAC=1;MLEAF=0.010;MQ=59.00;MQ0=0;MQRankSum=-2.182;QD=31.50;ReadPosRankSum=-1.665;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=C1orf86;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378543	GT:AD:DP:GQ:PL	0/0:20,0:20:60:0,60,1213	0/0:23,0:24:69:0,69,1201	0/0:21,0:21:63:0,63,1274	0/0 [...]
+1	2116175	rs185563823	C	T	139.32	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=2.340;DB;DP=615;Dels=0.00;FS=5.693;HaplotypeScore=0.2492;InbreedingCoeff=-0.0168;MLEAC=1;MLEAF=0.010;MQ=59.15;MQ0=0;MQRankSum=0.607;QD=9.29;ReadPosRankSum=0.189;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=C1orf86;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378543;VQSLOD=7.31;culprit=QD	GT:AD:DP:GQ:PL	0/0:14,0:14:42:0,42,449	0/0:13,0:13:39:0, [...]
+1	2116433	rs116408566	C	T	362.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=2.713;DB;DP=1164;Dels=0.00;FS=0.000;HaplotypeScore=0.3164;InbreedingCoeff=-0.0102;MLEAC=1;MLEAF=0.010;MQ=59.28;MQ0=0;MQRankSum=0.905;QD=12.07;ReadPosRankSum=-1.699;SNPEFF_AMINO_ACID_CHANGE=T405;SNPEFF_CODON_CHANGE=acC/acT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_2116361_2116832;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=PRKCZ;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID= [...]
+1	2121118	rs2503701	C	T	19913.98	PASS	AC=60;AF=0.600;AN=100;BaseQRankSum=-1.412;DB;DP=988;Dels=0.00;FS=2.297;HaplotypeScore=0.6282;InbreedingCoeff=0.1563;MLEAC=60;MLEAF=0.600;MQ=58.31;MQ0=0;MQRankSum=2.004;QD=24.95;ReadPosRankSum=0.642;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=C1orf86;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000497675;VQSLOD=4.91;culprit=MQ	GT:AD:DP:GQ:PL	1/1:0,13:13:36:449,36,0	0/1:4,6:10:90: [...]
+1	2125086	rs114983157	G	C	1086.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=4.729;DB;DP=2380;Dels=0.00;FS=2.270;HaplotypeScore=0.3220;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=58.99;MQ0=0;MQRankSum=0.293;QD=14.48;ReadPosRankSum=-1.515;SNPEFF_AMINO_ACID_CHANGE=S109W;SNPEFF_CODON_CHANGE=tCg/tGg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_2125078_2125349;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=C1orf86;SNPEFF_IMPACT=MODERATE; [...]
+1	2125172	rs1058411	G	A	9823.05	PASS	AC=20;AF=0.200;AN=100;BaseQRankSum=-12.550;DB;DP=1429;Dels=0.00;FS=6.427;HaplotypeScore=0.5441;InbreedingCoeff=0.1249;MLEAC=20;MLEAF=0.200;MQ=59.20;MQ0=0;MQRankSum=0.412;QD=17.54;ReadPosRankSum=-0.649;SNPEFF_AMINO_ACID_CHANGE=P126S;SNPEFF_CODON_CHANGE=Ccc/Tcc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_2125078_2125349;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=C1orf86;SNPEFF_IMPACT=MODERATE [...]
+1	2125205	.	C	A	958.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.979;DP=1359;Dels=0.00;FS=4.384;HaplotypeScore=0.5383;InbreedingCoeff=-0.0104;MLEAC=1;MLEAF=0.010;MQ=59.02;MQ0=0;MQRankSum=-0.530;QD=13.31;ReadPosRankSum=-1.699;SNPEFF_AMINO_ACID_CHANGE=A115S;SNPEFF_CODON_CHANGE=Gcc/Tcc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_2125078_2125349;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=processed_transcript;SNPEFF_GENE_NAME=C1orf86;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANS [...]
+1	2160223	.	C	G	43.29	PASS	AC=5;AF=0.208;AN=24;BaseQRankSum=-1.606;DP=16;Dels=0.00;FS=0.000;HaplotypeScore=0.0554;InbreedingCoeff=0.0852;MLEAC=5;MLEAF=0.208;MQ=55.11;MQ0=0;MQRankSum=0.423;QD=10.82;ReadPosRankSum=-1.437;SNPEFF_AMINO_ACID_CHANGE=G6;SNPEFF_CODON_CHANGE=ggC/ggG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_2160134_2161174;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SKI;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST00000378536;VQSLO [...]
+1	2160499	rs115746142	C	T	174.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-1.732;DB;DP=1206;Dels=0.00;FS=0.000;HaplotypeScore=0.3051;InbreedingCoeff=-0.0103;MLEAC=1;MLEAF=0.010;MQ=59.39;MQ0=0;MQRankSum=-0.257;QD=12.44;ReadPosRankSum=-2.448;SNPEFF_AMINO_ACID_CHANGE=T98;SNPEFF_CODON_CHANGE=acC/acT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_2160134_2161174;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SKI;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=E [...]
+1	2161016	.	A	C	440.97	VQSRTrancheSNP99.90to100.00	AC=14;AF=0.140;AN=100;BaseQRankSum=-5.760;DP=1089;Dels=0.01;FS=970.095;HaplotypeScore=2.2183;InbreedingCoeff=-0.1826;MLEAC=13;MLEAF=0.130;MQ=58.89;MQ0=0;MQRankSum=-0.442;QD=1.54;ReadPosRankSum=-11.824;SNPEFF_AMINO_ACID_CHANGE=T271P;SNPEFF_CODON_CHANGE=Acc/Ccc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_2160134_2161174;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SKI;SNPEFF_IMPACT=MODE [...]
+1	2234681	rs184459808	G	T	1966.97	VQSRTrancheSNP99.90to100.00	AC=14;AF=0.140;AN=100;BaseQRankSum=-24.744;DB;DP=3064;Dels=0.00;FS=466.420;HaplotypeScore=3.3634;InbreedingCoeff=-0.1602;MLEAC=13;MLEAF=0.130;MQ=57.44;MQ0=0;MQRankSum=-3.204;QD=2.30;ReadPosRankSum=-23.739;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SKI;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000508416;VQSLOD=-7.287e+01;culprit=FS	GT:AD:DP:GQ:PL	0/0:51,7:56 [...]
+1	2234791	rs75280988	C	T	1085.18	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=4.037;DB;DP=6933;Dels=0.00;FS=0.000;HaplotypeScore=0.3779;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=59.00;MQ0=0;MQRankSum=0.841;QD=15.28;ReadPosRankSum=-2.588;SNPEFF_AMINO_ACID_CHANGE=A388V;SNPEFF_CODON_CHANGE=gCg/gTg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_2234724_2234839;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SKI;SNPEFF_IMPACT=MODERATE;SNPEFF_TRAN [...]
+1	2234850	rs115186522	G	C	154.37	VQSRTrancheSNP99.00to99.30	AC=3;AF=0.030;AN=100;BaseQRankSum=-8.115;DB;DP=2388;Dels=0.00;FS=22.346;HaplotypeScore=1.3928;InbreedingCoeff=-0.0339;MLEAC=3;MLEAF=0.030;MQ=57.93;MQ0=0;MQRankSum=0.803;QD=1.16;ReadPosRankSum=-4.880;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SKI;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000478223;VQSLOD=-3.415e-01;culprit=QD	GT:AD:DP:GQ:PL	0/0:39,0:39:99:0,11 [...]
+1	2234874	rs143561187	CG	C	532.13	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=0.309;DB;DP=3338;FS=90.583;HaplotypeScore=17.7870;InbreedingCoeff=-0.0101;MLEAC=1;MLEAF=0.010;MQ=58.53;MQ0=0;MQRankSum=0.017;QD=12.98;RPA=5,4;RU=G;ReadPosRankSum=-2.092;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SKI;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000478223;STR	GT:AD:DP:GQ:PL	0/0:70,0:70:99:0,211,2619	0/0:70,0:73:99:0,211,2608	0/0:63,0: [...]
+1	2235451	.	C	G	226.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=-2.707;DP=1158;Dels=0.00;FS=6.994;HaplotypeScore=0.9115;InbreedingCoeff=-0.0104;MLEAC=1;MLEAF=0.010;MQ=59.39;MQ0=0;MQRankSum=-0.169;QD=12.57;ReadPosRankSum=-1.595;SNPEFF_AMINO_ACID_CHANGE=P462A;SNPEFF_CODON_CHANGE=Cca/Gca;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_2235279_2235541;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SKI;SNPEFF_IMPACT=MODERATE;SNPEFF_TRANSCRIPT_ID=E [...]
+1	2235477	rs150985728	C	T	447.19	PASS	AC=1;AF=0.010;AN=100;BaseQRankSum=0.924;DB;DP=987;Dels=0.00;FS=0.000;HaplotypeScore=0.8674;InbreedingCoeff=-0.0108;MLEAC=1;MLEAF=0.010;MQ=58.91;MQ0=0;MQRankSum=0.361;QD=12.78;ReadPosRankSum=-0.484;SNPEFF_AMINO_ACID_CHANGE=P470;SNPEFF_CODON_CHANGE=ccC/ccT;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_2235279_2235541;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SKI;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENS [...]
+1	2237614	.	G	A	63.78	PASS	AC=1;AF=0.010;AN=98;BaseQRankSum=-0.828;DP=319;Dels=0.00;FS=0.000;HaplotypeScore=0.1893;InbreedingCoeff=-0.0338;MLEAC=1;MLEAF=0.010;MQ=59.16;MQ0=0;MQRankSum=0.368;QD=15.95;ReadPosRankSum=-0.476;SNPEFF_AMINO_ACID_CHANGE=L641;SNPEFF_CODON_CHANGE=ctG/ctA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_2237459_2237689;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SKI;SNPEFF_IMPACT=LOW;SNPEFF_TRANSCRIPT_ID=ENST00000378536;V [...]
+1	2238237	rs2230008	A	T	83.67	PASS	AC=6;AF=0.150;AN=40;BaseQRankSum=-0.106;DB;DP=28;Dels=0.00;FS=0.000;HaplotypeScore=0.0000;InbreedingCoeff=0.2420;MLEAC=5;MLEAF=0.125;MQ=57.15;MQ0=0;MQRankSum=-1.694;QD=20.92;ReadPosRankSum=-0.529;SNPEFF_EFFECT=DOWNSTREAM;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=SKI;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000478223;VQSLOD=3.72;culprit=MQ	GT:AD:DP:GQ:PL	./.	./.	./.	./.	./.	./.	./.	./.	0/0:1,0:1:3:0,3,34	./ [...]
+1	2255489	rs3831908	CCAGA	C	619.14	PASS	AC=2;AF=0.020;AN=100;BaseQRankSum=-2.623;DB;DP=386;FS=0.000;HaplotypeScore=3.5051;InbreedingCoeff=0.4499;MLEAC=2;MLEAF=0.020;MQ=58.60;MQ0=0;MQRankSum=0.402;QD=56.29;ReadPosRankSum=-0.970;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MORN1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378531	GT:AD:DP:GQ:PL	0/0:8,0:8:24:0,24,555	0/0:8,0:8:24:0,24,555	0/0:3,0:3:9:0,9,81	0/0:3,0:3:9:0,9,208 [...]
+1	2255633	rs3737639	G	A	1457.31	PASS	AC=11;AF=0.110;AN=100;BaseQRankSum=-4.330;DB;DP=338;Dels=0.00;FS=7.069;HaplotypeScore=0.1797;InbreedingCoeff=0.1803;MLEAC=11;MLEAF=0.110;MQ=58.86;MQ0=0;MQRankSum=1.090;QD=16.01;ReadPosRankSum=-1.385;SNPEFF_EFFECT=INTRON;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=MORN1;SNPEFF_IMPACT=MODIFIER;SNPEFF_TRANSCRIPT_ID=ENST00000378531;VQSLOD=6.36;culprit=MQ	GT:AD:DP:GQ:PL	0/0:4,0:4:12:0,12,151	0/0:12,0:11:33:0,33,393	0/0: [...]
diff --git a/testdata/picard/vcf/mini.vcf.idx b/testdata/picard/vcf/mini.vcf.idx
new file mode 100644
index 0000000..14f1ba5
Binary files /dev/null and b/testdata/picard/vcf/mini.vcf.idx differ
diff --git a/testdata/picard/vcf/vcfFormatTest.bad_dict.vcf b/testdata/picard/vcf/vcfFormatTest.bad_dict.vcf
new file mode 100644
index 0000000..bd1e303
--- /dev/null
+++ b/testdata/picard/vcf/vcfFormatTest.bad_dict.vcf
@@ -0,0 +1,444 @@
+##fileformat=VCFv4.2
+##ApplyRecalibration="analysis_type=ApplyRecalibration input_file=[] read_buffer_size=null phone_home=NO_ET gatk_key=/humgen/gsa-hpprojects/GATK/data/gatk_user_keys/gsamembers_broadinstitute.org.key read_filter=[] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta nonDeterministicRandomSeed=false downsampling_type=BY_SAMPLE downsample_to_fraction=null do [...]
+##CombineVariants="analysis_type=CombineVariants input_file=[] read_buffer_size=null phone_home=STANDARD gatk_key=null read_filter=[] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta nonDeterministicRandomSeed=false downsampling_type=BY_SAMPLE downsample_to_fraction=null downsample_to_coverage=1000 baq=OFF baqGapOpenPenalty=40.0 performanceLog=null use [...]
+##FILTER=<ID=LowQual,Description="Low quality">
+##FILTER=<ID=VQSRTrancheINDEL99.00to99.90,Description="Truth sensitivity tranche level for INDEL model at VQS Lod: -4.1718 <= x < -0.8611">
+##FILTER=<ID=VQSRTrancheINDEL99.90to100.00+,Description="Truth sensitivity tranche level for INDEL model at VQS Lod < -727.2136">
+##FILTER=<ID=VQSRTrancheINDEL99.90to100.00,Description="Truth sensitivity tranche level for INDEL model at VQS Lod: -727.2136 <= x < -4.1718">
+##FILTER=<ID=VQSRTrancheSNP99.00to99.90,Description="Truth sensitivity tranche level for SNP model at VQS Lod: -25.4561 <= x < 3.2489">
+##FILTER=<ID=VQSRTrancheSNP99.90to100.00+,Description="Truth sensitivity tranche level for SNP model at VQS Lod < -38672.7015">
+##FILTER=<ID=VQSRTrancheSNP99.90to100.00,Description="Truth sensitivity tranche level for SNP model at VQS Lod: -38672.7015 <= x < -25.4561">
+##FORMAT=<ID=AD,Number=.,Type=Integer,Description="Allelic depths for the ref and alt alleles in the order listed">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth (reads with MQ=255 or with bad mates are filtered)">
+##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##FORMAT=<ID=PL,Number=G,Type=Integer,Description="Normalized, Phred-scaled likelihoods for genotypes as defined in the VCF specification">
+##FORMAT=<ID=TP,Number=1,Type=Integer,Description="Phred score of the genotype combination and phase given that the genotypes are correct">
+##INFO=<ID=AC,Number=A,Type=Integer,Description="Allele count in genotypes, for each ALT allele, in the same order as listed">
+##INFO=<ID=AF,Number=A,Type=Float,Description="Allele Frequency, for each ALT allele, in the same order as listed">
+##INFO=<ID=AN,Number=1,Type=Integer,Description="Total number of alleles in called genotypes">
+##INFO=<ID=BaseQRankSum,Number=1,Type=Float,Description="Z-score from Wilcoxon rank sum test of Alt Vs. Ref base qualities">
+##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP Membership">
+##INFO=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth; some reads may have been filtered">
+##INFO=<ID=DS,Number=0,Type=Flag,Description="Were any of the samples downsampled?">
+##INFO=<ID=Dels,Number=1,Type=Float,Description="Fraction of Reads Containing Spanning Deletions">
+##INFO=<ID=END,Number=1,Type=Integer,Description="Stop position of the interval">
+##INFO=<ID=FS,Number=1,Type=Float,Description="Phred-scaled p-value using Fisher's exact test to detect strand bias">
+##INFO=<ID=HaplotypeScore,Number=1,Type=Float,Description="Consistency of the site with at most two segregating haplotypes">
+##INFO=<ID=InbreedingCoeff,Number=1,Type=Float,Description="Inbreeding coefficient as estimated from the genotype likelihoods per-sample when compared against the Hardy-Weinberg expectation">
+##INFO=<ID=MLEAC,Number=A,Type=Integer,Description="Maximum likelihood expectation (MLE) for the allele counts (not necessarily the same as the AC), for each ALT allele, in the same order as listed">
+##INFO=<ID=MLEAF,Number=A,Type=Float,Description="Maximum likelihood expectation (MLE) for the allele frequency (not necessarily the same as the AF), for each ALT allele, in the same order as listed">
+##INFO=<ID=MQ,Number=1,Type=Float,Description="RMS Mapping Quality">
+##INFO=<ID=MQ0,Number=1,Type=Integer,Description="Total Mapping Quality Zero Reads">
+##INFO=<ID=MQRankSum,Number=1,Type=Float,Description="Z-score From Wilcoxon rank sum test of Alt vs. Ref read mapping qualities">
+##INFO=<ID=QD,Number=1,Type=Float,Description="Variant Confidence/Quality by Depth">
+##INFO=<ID=RPA,Number=.,Type=Integer,Description="Number of times tandem repeat unit is repeated, for each allele (including reference)">
+##INFO=<ID=RU,Number=1,Type=String,Description="Tandem repeat unit (bases)">
+##INFO=<ID=ReadPosRankSum,Number=1,Type=Float,Description="Z-score from Wilcoxon rank sum test of Alt vs. Ref read position bias">
+##INFO=<ID=SB,Number=1,Type=Float,Description="Strand Bias">
+##INFO=<ID=STR,Number=0,Type=Flag,Description="Variant is a short tandem repeat">
+##INFO=<ID=VQSLOD,Number=1,Type=Float,Description="Log odds ratio of being a true variant versus being false under the trained gaussian mixture model">
+##INFO=<ID=culprit,Number=1,Type=String,Description="The annotation which was the worst performing in the Gaussian mixture model, likely the reason why the variant was filtered out">
+##INFO=<ID=set,Number=1,Type=String,Description="Source VCF for the merged record in CombineVariants">
+##PhaseByTransmission="analysis_type=PhaseByTransmission input_file=[] read_buffer_size=null phone_home=STANDARD gatk_key=null read_filter=[] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta nonDeterministicRandomSeed=false downsampling_type=BY_SAMPLE downsample_to_fraction=null downsample_to_coverage=1000 baq=OFF baqGapOpenPenalty=40.0 performanceLog= [...]
+##UnifiedGenotyper="analysis_type=UnifiedGenotyper input_file=[/humgen/gsa-hpprojects/NA12878Collection/bams/CEUTrio.HiSeq.WGS.b37.list] read_buffer_size=null phone_home=NO_ET gatk_key=/humgen/gsa-hpprojects/GATK/data/gatk_user_keys/gsamembers_broadinstitute.org.key read_filter=[] intervals=[/broad/hptmp/ami/tmp/queueScatterGather/.qlog/CEUTrio.indelcall-sg/temp_020_of_300/scatter.intervals] excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_s [...]
+##contig=<ID=1,length=249250621,assembly=b37>
+##contig=<ID=2,length=243199373,assembly=b37>
+##contig=<ID=3,length=198022430,assembly=b37>
+##contig=<ID=4,length=191154276,assembly=b37>
+##contig=<ID=5,length=180915260,assembly=b37>
+##contig=<ID=8,length=146364022,assembly=b37>
+##contig=<ID=9,length=141213431,assembly=b37>
+##contig=<ID=10,length=135534747,assembly=b37>
+##contig=<ID=11,length=135006516,assembly=b37>
+##contig=<ID=12,length=133851895,assembly=b37>
+##contig=<ID=13,length=115169878,assembly=b37>
+##contig=<ID=14,length=107349540,assembly=b37>
+##contig=<ID=15,length=102531392,assembly=b37>
+##contig=<ID=16,length=90354753,assembly=b37>
+##contig=<ID=17,length=81195210,assembly=b37>
+##contig=<ID=18,length=78077248,assembly=b37>
+##contig=<ID=19,length=59128983,assembly=b37>
+##contig=<ID=20,length=63025520,assembly=b37>
+##contig=<ID=21,length=48129895,assembly=b37>
+##contig=<ID=22,length=51304566,assembly=b37>
+##contig=<ID=X,length=155270560,assembly=b37>
+##contig=<ID=Y,length=59373566,assembly=b37>
+##contig=<ID=MT,length=16569,assembly=b37>
+##contig=<ID=GL000207.1,length=4262,assembly=b37>
+##contig=<ID=GL000226.1,length=15008,assembly=b37>
+##contig=<ID=GL000229.1,length=19913,assembly=b37>
+##contig=<ID=GL000231.1,length=27386,assembly=b37>
+##contig=<ID=GL000210.1,length=27682,assembly=b37>
+##contig=<ID=GL000239.1,length=33824,assembly=b37>
+##contig=<ID=GL000235.1,length=34474,assembly=b37>
+##contig=<ID=GL000201.1,length=36148,assembly=b37>
+##contig=<ID=GL000247.1,length=36422,assembly=b37>
+##contig=<ID=GL000245.1,length=36651,assembly=b37>
+##contig=<ID=GL000197.1,length=37175,assembly=b37>
+##contig=<ID=GL000203.1,length=37498,assembly=b37>
+##contig=<ID=GL000246.1,length=38154,assembly=b37>
+##contig=<ID=GL000249.1,length=38502,assembly=b37>
+##contig=<ID=GL000196.1,length=38914,assembly=b37>
+##contig=<ID=GL000248.1,length=39786,assembly=b37>
+##contig=<ID=GL000244.1,length=39929,assembly=b37>
+##contig=<ID=GL000238.1,length=39939,assembly=b37>
+##contig=<ID=GL000202.1,length=40103,assembly=b37>
+##contig=<ID=GL000234.1,length=40531,assembly=b37>
+##contig=<ID=GL000232.1,length=40652,assembly=b37>
+##contig=<ID=GL000206.1,length=41001,assembly=b37>
+##contig=<ID=GL000240.1,length=41933,assembly=b37>
+##contig=<ID=GL000236.1,length=41934,assembly=b37>
+##contig=<ID=GL000241.1,length=42152,assembly=b37>
+##contig=<ID=GL000243.1,length=43341,assembly=b37>
+##contig=<ID=GL000242.1,length=43523,assembly=b37>
+##contig=<ID=GL000230.1,length=43691,assembly=b37>
+##contig=<ID=GL000237.1,length=45867,assembly=b37>
+##contig=<ID=GL000233.1,length=45941,assembly=b37>
+##contig=<ID=GL000204.1,length=81310,assembly=b37>
+##contig=<ID=GL000198.1,length=90085,assembly=b37>
+##contig=<ID=GL000208.1,length=92689,assembly=b37>
+##contig=<ID=GL000191.1,length=106433,assembly=b37>
+##contig=<ID=GL000227.1,length=128374,assembly=b37>
+##contig=<ID=GL000228.1,length=129120,assembly=b37>
+##contig=<ID=GL000214.1,length=137718,assembly=b37>
+##contig=<ID=GL000221.1,length=155397,assembly=b37>
+##contig=<ID=GL000209.1,length=159169,assembly=b37>
+##contig=<ID=GL000218.1,length=161147,assembly=b37>
+##contig=<ID=GL000220.1,length=161802,assembly=b37>
+##contig=<ID=GL000213.1,length=164239,assembly=b37>
+##contig=<ID=GL000211.1,length=166566,assembly=b37>
+##contig=<ID=GL000199.1,length=169874,assembly=b37>
+##contig=<ID=GL000217.1,length=172149,assembly=b37>
+##contig=<ID=GL000216.1,length=172294,assembly=b37>
+##contig=<ID=GL000215.1,length=172545,assembly=b37>
+##contig=<ID=GL000205.1,length=174588,assembly=b37>
+##contig=<ID=GL000219.1,length=179198,assembly=b37>
+##contig=<ID=GL000224.1,length=179693,assembly=b37>
+##contig=<ID=GL000223.1,length=180455,assembly=b37>
+##contig=<ID=GL000195.1,length=182896,assembly=b37>
+##contig=<ID=GL000212.1,length=186858,assembly=b37>
+##contig=<ID=GL000222.1,length=186861,assembly=b37>
+##contig=<ID=GL000200.1,length=187035,assembly=b37>
+##contig=<ID=GL000193.1,length=189789,assembly=b37>
+##contig=<ID=GL000194.1,length=191469,assembly=b37>
+##contig=<ID=GL000225.1,length=211173,assembly=b37>
+##contig=<ID=GL000192.1,length=547496,assembly=b37>
+##reference=file:///humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta
+##source=PhaseByTransmission
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	NA12878	NA12891	NA12892
+1	8216712	rs11121115	A	G	1540.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.917;DB;DP=131;Dels=0.00;FS=11.67;HaplotypeScore=3.35;MLEAC=3;MLEAF=0.500;MQ=57.74;MQ0=1;MQRankSum=0.427;QD=11.76;ReadPosRankSum=-2.190e-01;SB=-9.390e+02;VQSLOD=5.53;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:23,28:51:99:681,0,668:127	0/1:16,18:34:99:338,0,244:127	0/1:24,22:46:99:560,0,323:127
+1	17032814	rs2773183	T	C	2828.26	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.879e+00;DB;DP=322;Dels=0.00;FS=2.43;HaplotypeScore=15.45;MLEAC=3;MLEAF=0.500;MQ=56.86;MQ0=0;MQRankSum=2.92;QD=8.78;ReadPosRankSum=-1.245e+00;SB=-1.943e+03;VQSLOD=-1.421e+00;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:63,59:122:99:1434,0,1831:127	0/1:53,56:109:99:910,0,871:127	0/1:61,30:91:99:523,0,1257:127
+1	25154033	rs55822956	GT	G	743.25	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=3.32;DB;DP=214;FS=2.27;HaplotypeScore=77.33;MLEAC=3;MLEAF=0.500;MQ=55.48;MQ0=0;MQRankSum=0.114;QD=3.47;RPA=19,18;RU=T;ReadPosRankSum=0.884;SB=-3.070e+02;STR;VQSLOD=2.10;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:60,12:82:67:292,0,67:18	0/1:55,7:69:42:245,0,42:18	0/1:37,21:60:18:254,0,18:18
+1	36900350	rs72008966	C	CA	137.53	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.837e+00;DB;DP=139;FS=0.00;HaplotypeScore=32.79;MLEAC=3;MLEAF=0.500;MQ=49.20;MQ0=3;MQRankSum=0.772;QD=0.990;RPA=22,23;RU=A;ReadPosRankSum=-3.220e+00;SB=-4.273e+01;STR;VQSLOD=1.87;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:35,7:44:41:70,0,41:9	0/1:48,0:47:20:20,0,41:9	0/1:32,12:42:9:95,0,9:9
+1	47818917	rs12749507	A	G	1285.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.707e+00;DB;DP=252;Dels=0.00;FS=2.14;HaplotypeScore=0.666;MLEAC=1;MLEAF=0.167;MQ=59.83;MQ0=0;MQRankSum=-4.670e-01;QD=13.39;ReadPosRankSum=0.535;SB=-6.730e+02;VQSLOD=9.27;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:81,0:81:99:0,241,3171:127	0|1:53,42:96:99:1320,0,1615:127	0|0:75,0:75:99:0,217,2762:127
+1	59635894	rs331648	T	A	839.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-4.038e+00;DB;DP=211;Dels=0.00;FS=1.43;HaplotypeScore=1.55;MLEAC=1;MLEAF=0.167;MQ=58.68;MQ0=0;MQRankSum=-4.220e-01;QD=11.82;ReadPosRankSum=-1.800e-01;SB=-5.520e+02;VQSLOD=7.95;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:78,0:78:99:0,199,2578:127	0|0:62,0:62:99:0,169,2205:127	0|1:33,38:71:99:874,0,897:127
+1	69502962	rs12724640	T	C	1868.23	VQSRTrancheSNP99.00to99.90	AC=6;AF=1.00;AN=6;BaseQRankSum=-1.732e+00;DB;DP=110;Dels=0.00;FS=4.72;HaplotypeScore=1.93;MLEAC=6;MLEAF=1.00;MQ=29.46;MQ0=22;MQRankSum=1.65;QD=16.98;ReadPosRankSum=-5.640e-01;SB=-8.110e+02;VQSLOD=0.210;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:5,23:29:63:693,63,0:50	1|1:5,38:43:66:675,66,0:50	1|1:9,29:38:51:538,51,0:50
+1	80481528	rs61774278	G	C	1775.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-1.614e+00;DB;DP=168;Dels=0.00;FS=8.29;HaplotypeScore=2.05;MLEAC=3;MLEAF=0.500;MQ=54.28;MQ0=0;MQRankSum=-5.200e-02;QD=16.75;ReadPosRankSum=1.54;SB=-1.133e+03;VQSLOD=4.77;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|1:35,26:61:99:767,0,778:80	0|0:62,0:62:84:0,84,1046:80	1|1:0,45:45:84:1053,84,0:80
+1	90146546	rs7512447	C	T	8721.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=241;Dels=0.00;FS=0.00;HaplotypeScore=0.00;MLEAC=6;MLEAF=1.00;MQ=59.40;MQ0=0;QD=36.19;SB=-4.084e+03;VQSLOD=11.32;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,71:71:99:2599,196,0:127	1|1:0,86:86:99:3042,235,0:127	1|1:0,84:84:99:3080,238,0:127
+1	100763317	rs6681810	G	C	5583.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=196;Dels=0.00;FS=0.00;HaplotypeScore=3.72;MLEAC=6;MLEAF=1.00;MQ=58.52;MQ0=0;QD=28.48;SB=-2.737e+03;VQSLOD=7.92;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:1,76:77:99:2211,192,0:127	1|1:0,56:56:99:1593,141,0:127	1|1:0,62:62:99:1779,156,0:127
+1	110091282	rs1279195	C	T	952.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=2.65;DB;DP=101;Dels=0.00;FS=19.67;HaplotypeScore=1.92;MLEAC=2;MLEAF=0.333;MQ=56.72;MQ0=0;MQRankSum=-3.450e-01;QD=12.37;ReadPosRankSum=0.567;SB=-5.350e+02;VQSLOD=4.17;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:14,29:46:99:726,0,219:42	1|0:13,12:31:99:265,0,298:42	0|0:18,0:24:42:0,42,522:42
+1	120811174	.	C	CA	74.77	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-1.393e+00;DP=148;FS=0.00;HaplotypeScore=20.35;MLEAC=5;MLEAF=0.833;MQ=15.79;MQ0=88;MQRankSum=-3.480e-01;QD=0.510;RPA=24,25;RU=A;ReadPosRankSum=-1.044e+00;SB=-1.531e+01;STR;VQSLOD=5.09;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:47,5:9:11:53,11,0:3	1|0:51,0:15:5:37,0,5:3	1|1:43,0:8:6:32,6,0:3
+1	146610795	rs58742099	C	T	2831.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.30;DB;DP=261;Dels=0.00;FS=7.03;HaplotypeScore=13.91;MLEAC=2;MLEAF=0.333;MQ=59.62;MQ0=0;MQRankSum=0.753;QD=16.27;ReadPosRankSum=-1.405e+00;SB=-1.481e+03;VQSLOD=3.42;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:39,43:82:99:1329,0,1080:127	1|0:40,52:92:99:1541,0,1241:127	0|0:87,0:87:99:0,238,3098:127
+1	156248265	rs12038203	C	T	643.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.110e-01;DB;DP=145;Dels=0.00;FS=4.57;HaplotypeScore=0.277;MLEAC=1;MLEAF=0.167;MQ=59.08;MQ0=0;MQRankSum=0.862;QD=12.86;ReadPosRankSum=0.177;SB=-3.450e+02;VQSLOD=7.50;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:47,0:47:99:0,123,1604:110	0|0:48,0:48:99:0,111,1433:110	0|1:25,25:50:99:678,0,694:110
+1	165431906	rs7528908	G	T	2381.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=6.01;DB;DP=259;Dels=0.00;FS=4.73;HaplotypeScore=0.986;MLEAC=2;MLEAF=0.333;MQ=59.75;MQ0=0;MQRankSum=0.916;QD=14.34;ReadPosRankSum=-9.070e-01;SB=-9.050e+02;VQSLOD=8.13;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|1:48,40:88:99:1142,0,1428:127	0|0:93,0:93:99:0,259,3166:127	1|0:38,40:78:99:1278,0,1075:127
+1	175207612	rs11484568	C	T	1920.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=5.64;DB;DP=216;Dels=0.00;FS=0.537;HaplotypeScore=2.25;MLEAC=2;MLEAF=0.333;MQ=58.99;MQ0=0;MQRankSum=0.383;QD=14.12;ReadPosRankSum=0.169;SB=-1.064e+03;VQSLOD=8.59;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:34,40:74:99:1152,0,995:127	0|0:80,0:80:99:0,208,2602:127	1|0:34,28:62:99:807,0,998:127
+1	186656152	rs4422959	G	A	1342.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=7.23;DB;DP=270;Dels=0.00;FS=7.29;HaplotypeScore=1.17;MLEAC=1;MLEAF=0.167;MQ=59.71;MQ0=0;MQRankSum=0.399;QD=17.21;ReadPosRankSum=-8.690e-01;SB=-6.320e+02;VQSLOD=7.67;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:99,0:99:99:0,283,3341:127	0|0:93,0:93:99:0,256,3022:127	0|1:33,45:78:99:1377,0,917:127
+1	195392852	rs2119441	T	G	5369.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-2.284e+00;DB;DP=241;Dels=0.00;FS=3.31;HaplotypeScore=1.87;MLEAC=4;MLEAF=0.667;MQ=58.35;MQ0=0;MQRankSum=-6.430e-01;QD=22.28;ReadPosRankSum=0.178;SB=-2.332e+03;VQSLOD=7.85;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:37,42:79:99:1233,0,1145:127	1|1:0,84:84:99:2741,211,0:127	0|1:31,47:78:99:1395,0,804:127
+1	204945934	rs6657372	A	G	1311.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-6.582e+00;DB;DP=126;Dels=0.00;FS=0.00;HaplotypeScore=2.71;MLEAC=3;MLEAF=0.500;MQ=58.78;MQ0=0;MQRankSum=0.480;QD=15.43;ReadPosRankSum=1.28;SB=-6.370e+02;VQSLOD=7.84;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:22,28:50:99:629,0,675:68	0|0:40,0:41:84:0,84,1057:68	1|1:0,35:35:69:727,69,0:68
+1	216407409	rs3767692	A	G	8820.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-8.030e-01;DB;DP=295;Dels=0.00;FS=1.35;HaplotypeScore=2.58;MLEAC=5;MLEAF=0.833;MQ=59.28;MQ0=0;MQRankSum=-3.750e-01;QD=29.90;ReadPosRankSum=-3.630e-01;SB=-4.445e+03;VQSLOD=7.05;culprit=DP	GT:AD:DP:GQ:PL:TP	1|1:1,115:116:99:4251,328,0:127	1|0:39,51:90:99:1430,0,1275:127	1|1:0,89:89:99:3139,241,0:127
+1	226163330	rs10915914	C	G	747.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-3.123e+00;DB;DP=121;Dels=0.00;FS=0.863;HaplotypeScore=0.829;MLEAC=2;MLEAF=0.333;MQ=58.96;MQ0=0;MQRankSum=-4.780e-01;QD=9.70;ReadPosRankSum=-1.340e-01;SB=-2.780e+02;VQSLOD=8.08;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:43,1:44:99:0,117,1447:116	0|1:17,15:32:99:289,0,390:116	0|1:26,19:45:99:497,0,677:116
+1	235750933	rs111686144	GA	G	679.19	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=2.04;DB;DP=64;FS=7.39;HaplotypeScore=400.20;MLEAC=4;MLEAF=0.667;MQ=32.98;MQ0=0;MQRankSum=-5.900e-02;QD=10.61;ReadPosRankSum=2.44;SB=-1.575e+02;VQSLOD=-3.140e-01;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:12,0:12:6:110,0,6:6	1|1:9,9:19:31:491,31,0:6	0|1:31,0:32:99:128,0,160:6
+1	243135892	rs7517403	C	T	2313.25	VQSRTrancheSNP99.00to99.90	AC=4;AF=0.667;AN=6;BaseQRankSum=7.05;DB;DP=168;Dels=0.00;FS=0.00;HaplotypeScore=0.588;MLEAC=4;MLEAF=0.667;MQ=37.62;MQ0=11;MQRankSum=-5.659e+00;QD=13.77;ReadPosRankSum=-9.770e-01;SB=-9.200e+02;VQSLOD=2.25;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:31,24:55:99:501,0,891:123	1|1:0,58:58:99:1263,123,0:123	0|1:28,27:55:99:591,0,714:123
+2	1143476	rs4998209	C	T	1483.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-4.814e+00;DB;DP=189;Dels=0.00;FS=5.61;HaplotypeScore=0.324;MLEAC=2;MLEAF=0.333;MQ=58.36;MQ0=0;MQRankSum=1.58;QD=12.06;ReadPosRankSum=0.326;SB=-9.320e+02;VQSLOD=6.81;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:66,0:66:99:0,178,2264:127	0|1:33,38:71:99:844,0,1024:127	0|1:26,26:52:99:678,0,719:127
+2	9240279	rs56249990	A	G	3978.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=1.70;DB;DP=213;Dels=0.00;FS=7.83;HaplotypeScore=1.19;MLEAC=3;MLEAF=0.500;MQ=59.40;MQ0=0;MQRankSum=0.143;QD=27.25;ReadPosRankSum=-9.700e-02;SB=-1.991e+03;VQSLOD=9.14;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:33,42:75:99:1400,0,1031:127	0|0:67,0:67:99:0,178,2277:127	1|1:0,71:71:99:2578,199,0:127
+2	18016237	rs12710649	A	T	3950.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.700e-02;DB;DP=250;Dels=0.00;FS=2.16;HaplotypeScore=2.08;MLEAC=3;MLEAF=0.500;MQ=59.14;MQ0=0;MQRankSum=0.494;QD=15.80;ReadPosRankSum=0.705;SB=-2.142e+03;VQSLOD=8.14;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:46,59:105:99:1733,0,1505:127	0/1:39,37:76:99:925,0,1164:127	0/1:24,44:68:99:1292,0,628:127
+2	28790711	rs34787802	T	G	731.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-4.421e+00;DB;DP=232;Dels=0.00;FS=2.40;HaplotypeScore=1.52;MLEAC=1;MLEAF=0.167;MQ=57.98;MQ0=0;MQRankSum=0.447;QD=10.30;ReadPosRankSum=-1.833e+00;SB=-4.550e+02;VQSLOD=6.89;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:81,0:81:99:0,223,2877:127	0|1:36,35:71:99:766,0,947:127	0|0:79,0:80:99:0,205,2640:127
+2	36994439	rs11124542	A	C	1302.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-7.406e+00;DB;DP=191;Dels=0.00;FS=3.34;HaplotypeScore=2.18;MLEAC=3;MLEAF=0.500;MQ=58.93;MQ0=0;MQRankSum=-7.250e-01;QD=6.82;ReadPosRankSum=0.302;SB=-1.006e+03;VQSLOD=7.95;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:32,28:60:99:710,0,1044:127	0/1:34,25:59:99:309,0,772:127	0/1:45,27:72:99:322,0,1096:127
+2	45429089	rs13418430	C	A	2341.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=0.861;DB;DP=283;Dels=0.00;FS=2.85;HaplotypeScore=1.33;MLEAC=2;MLEAF=0.333;MQ=59.62;MQ0=0;MQRankSum=-9.390e-01;QD=12.52;ReadPosRankSum=-1.869e+00;SB=-1.156e+03;VQSLOD=7.15;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:60,49:109:99:1406,0,2061:127	1|0:41,37:78:99:974,0,1238:127	0|0:96,0:96:99:0,256,3312:127
+2	54408283	rs55993481	T	G	2128.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.96;DB;DP=222;Dels=0.00;FS=1.74;HaplotypeScore=3.96;MLEAC=2;MLEAF=0.333;MQ=59.69;MQ0=0;MQRankSum=0.670;QD=14.28;ReadPosRankSum=1.31;SB=-1.076e+03;VQSLOD=6.51;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:35,46:81:99:1392,0,921:127	1|0:35,33:68:99:775,0,878:127	0|0:73,0:73:99:0,175,2164:127
+2	64848970	rs35473866	T	C	655.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=0.263;DB;DP=218;Dels=0.00;FS=8.01;HaplotypeScore=2.58;MLEAC=1;MLEAF=0.167;MQ=58.36;MQ0=0;MQRankSum=-1.680e-01;QD=8.29;ReadPosRankSum=-3.070e-01;SB=-3.420e+02;VQSLOD=5.92;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:78,0:78:99:0,208,2627:127	0|0:61,0:61:99:0,135,1725:127	0|1:35,42:79:99:690,0,1042:127
+2	75490647	rs112304545	T	TGG	1000.21	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=0.322;DB;DP=188;FS=0.785;HaplotypeScore=58.72;MLEAC=4;MLEAF=0.667;MQ=57.19;MQ0=0;MQRankSum=-2.290e-01;QD=5.32;RPA=10,12;RU=G;ReadPosRankSum=-2.534e+00;SB=-4.650e+02;STR;VQSLOD=2.69;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:33,35:76:57:976,57,0:56	1|0:39,3:49:38:38,0,730:56	1|0:50,4:63:37:37,0,900:56
+2	85513238	rs62162679	C	T	742.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.16;DB;DP=137;Dels=0.00;FS=4.47;HaplotypeScore=1.39;MLEAC=2;MLEAF=0.333;MQ=57.50;MQ0=0;MQRankSum=0.479;QD=7.57;ReadPosRankSum=-2.720e-01;SB=-5.520e+02;VQSLOD=7.13;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:39,0:39:99:0,105,1267:104	0|1:23,23:47:99:430,0,551:104	0|1:31,20:51:99:351,0,633:104
+2	96514373	rs10186946	C	T	206.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=4.49;DB;DP=175;Dels=0.00;FS=2.81;HaplotypeScore=2.42;MLEAC=2;MLEAF=0.333;MQ=39.07;MQ0=7;MQRankSum=-7.529e+00;QD=1.61;ReadPosRankSum=0.813;SB=-2.501e+01;VQSLOD=-8.655e-01;culprit=QD	GT:AD:DP:GQ:PL:TP	1|0:35,23:58:62:62,0,484:61	1|0:22,46:70:99:183,0,387:61	0|0:46,0:47:99:0,99,1162:61
+2	107234623	rs35291621	GTA	G	7569	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=2.65;DB;DP=242;FS=7.84;HaplotypeScore=19.31;MLEAC=4;MLEAF=0.667;MQ=60.04;MQ0=1;MQRankSum=-1.570e-01;QD=31.28;ReadPosRankSum=1.66;SB=-3.633e+03;VQSLOD=4.30;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:46,30:76:99:1290,0,2120:127	0|1:35,66:102:99:2998,0,1435:127	1|1:0,63:63:99:3281,190,0:127
+2	117966808	rs333847	C	T	9037.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=269;Dels=0.00;FS=0.00;HaplotypeScore=3.70;MLEAC=6;MLEAF=1.00;MQ=58.21;MQ0=0;QD=33.59;SB=-4.673e+03;VQSLOD=7.05;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,78:78:99:2652,205,0:127	1|1:0,101:101:99:3158,247,0:127	1|1:0,89:90:99:3227,250,0:127
+2	127445050	rs113647072	A	G	1773.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-3.856e+00;DB;DP=154;Dels=0.00;FS=4.20;HaplotypeScore=2.27;MLEAC=4;MLEAF=0.667;MQ=59.16;MQ0=0;MQRankSum=0.759;QD=11.51;ReadPosRankSum=1.29;SB=-1.402e+03;VQSLOD=7.92;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:26,28:54:99:652,0,472:78	0|1:26,22:49:99:350,0,462:78	1|1:0,50:51:78:813,78,0:78
+2	133338909	rs72548244	CT	C	2103.21	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=0.444;DB;DP=212;FS=5.22;HaplotypeScore=27.63;MLEAC=5;MLEAF=0.833;MQ=59.64;MQ0=0;MQRankSum=2.43;QD=9.92;RPA=15,14;RU=T;ReadPosRankSum=2.78;SB=-1.050e+03;STR;VQSLOD=2.66;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:17,39:59:61:837,61,0:60	1|0:47,22:72:99:241,0,444:60	1|1:20,58:81:74:1076,74,0:60
+2	144289763	rs7607879	C	T	3308.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=1.39;DB;DP=225;Dels=0.00;FS=9.72;HaplotypeScore=1.50;MLEAC=3;MLEAF=0.500;MQ=59.53;MQ0=0;MQRankSum=0.283;QD=14.70;ReadPosRankSum=1.39;SB=-1.760e+03;VQSLOD=8.24;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:41,39:81:99:1190,0,1312:127	0/1:28,36:64:99:1057,0,834:127	0/1:44,36:80:99:1061,0,1275:127
+2	155726628	.	T	G	1351.23	VQSRTrancheSNP99.00to99.90	AC=6;AF=1.00;AN=6;BaseQRankSum=0.207;DP=193;Dels=0.00;FS=9.25;HaplotypeScore=0.522;MLEAC=6;MLEAF=1.00;MQ=16.17;MQ0=87;MQRankSum=2.40;QD=7.00;ReadPosRankSum=1.07;SB=-4.420e+02;VQSLOD=-2.787e+00;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:3,56:59:60:591,60,0:27	1|1:8,49:57:27:245,27,0:27	1|1:12,65:77:57:553,57,0:27
+2	167166899	.	T	A	1064.78	VQSRTrancheSNP99.00to99.90	AC=5;AF=0.833;AN=6;BaseQRankSum=0.023;DP=278;Dels=0.00;FS=9.89;HaplotypeScore=0.277;MLEAC=6;MLEAF=1.00;MQ=10.47;MQ0=239;MQRankSum=1.64;QD=3.83;ReadPosRankSum=0.347;SB=-1.083e-02;VQSLOD=-6.945e+00;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:174,12:186:36:401,36,0:4	1|1:37,14:52:39:431,39,0:4	1|0:31,9:40:3:271,0,3:4
+2	177175707	rs7355385	A	G	2590.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-8.660e-01;DB;DP=206;Dels=0.00;FS=14.87;HaplotypeScore=0.311;MLEAC=3;MLEAF=0.500;MQ=59.12;MQ0=0;MQRankSum=-9.370e-01;QD=20.40;ReadPosRankSum=-2.870e-01;SB=-8.970e+02;VQSLOD=6.82;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:33,32:65:99:856,0,1069:127	1|1:0,62:62:99:1779,150,0:127	0|0:78,1:79:99:0,193,2411:127
+2	187694833	rs10191094	T	C	1006.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-7.181e+00;DB;DP=236;Dels=0.00;FS=9.08;HaplotypeScore=2.27;MLEAC=1;MLEAF=0.167;MQ=59.73;MQ0=0;MQRankSum=-2.180e-01;QD=13.07;ReadPosRankSum=-8.770e-01;SB=-5.830e+02;VQSLOD=7.60;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:82,0:82:99:0,232,3021:127	0|0:77,0:77:99:0,217,2790:127	0|1:33,44:77:99:1041,0,988:127
+2	198567638	rs12619333	C	G	2201.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-2.800e-02;DB;DP=240;Dels=0.00;FS=4.76;HaplotypeScore=1.37;MLEAC=2;MLEAF=0.333;MQ=59.37;MQ0=1;MQRankSum=0.131;QD=13.42;ReadPosRankSum=0.123;SB=-1.051e+03;VQSLOD=8.13;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:38,45:84:99:1298,0,1249:127	1|0:45,35:80:99:942,0,1493:127	0|0:76,0:76:99:0,196,2542:127
+2	209758643	rs12992166	C	T	1534.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=6.18;DB;DP=163;Dels=0.00;FS=8.81;HaplotypeScore=2.36;MLEAC=2;MLEAF=0.333;MQ=58.93;MQ0=0;MQRankSum=1.99;QD=12.08;ReadPosRankSum=1.08;SB=-4.720e+02;VQSLOD=6.82;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:35,22:59:99:610,0,886:93	1|0:32,36:68:99:963,0,797:93	0|0:36,0:36:93:0,93,1058:93
+2	218911764	.	TA	T	229.22	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.591;DP=218;FS=1.76;HaplotypeScore=32.57;MLEAC=3;MLEAF=0.500;MQ=57.41;MQ0=0;MQRankSum=1.79;QD=1.05;RPA=19,18;RU=A;ReadPosRankSum=0.676;SB=-1.060e+02;STR;VQSLOD=2.31;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:56,5:65:99:101,0,313:70	0/1:59,18:82:99:105,0,395:70	0/1:64,4:70:71:71,0,263:70
+2	228532558	rs6436725	G	A	3484.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=7.16;DB;DP=263;Dels=0.00;FS=1.55;HaplotypeScore=4.97;MLEAC=3;MLEAF=0.500;MQ=58.60;MQ0=0;MQRankSum=1.14;QD=21.91;ReadPosRankSum=-4.160e-01;SB=-1.472e+03;VQSLOD=5.44;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:42,47:89:99:1549,0,932:127	0|0:104,0:104:99:0,247,2939:127	1|1:0,69:70:99:1935,156,0:127
+2	237156689	rs13390270	G	A	852.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.150e+00;DB;DP=205;Dels=0.00;FS=0.710;HaplotypeScore=1.73;MLEAC=1;MLEAF=0.167;MQ=59.06;MQ0=0;MQRankSum=-1.930e-01;QD=11.67;ReadPosRankSum=1.26;SB=-4.790e+02;VQSLOD=8.50;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:73,0:73:99:0,202,2606:108	0|1:39,34:73:99:887,0,1027:108	0|0:59,0:59:99:0,108,1384:108
+3	1609737	rs2648459	A	G	6492.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=187;Dels=0.00;FS=0.00;HaplotypeScore=1.18;MLEAC=6;MLEAF=1.00;MQ=59.90;MQ0=0;QD=34.72;SB=-3.251e+03;VQSLOD=11.50;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,53:53:99:1943,150,0:127	1|1:0,62:62:99:2206,172,0:127	1|1:0,72:72:99:2343,181,0:127
+3	8399330	rs6770171	G	A	6816.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=4.69;DB;DP=253;Dels=0.00;FS=0.637;HaplotypeScore=1.28;MLEAC=5;MLEAF=0.833;MQ=58.42;MQ0=0;MQRankSum=0.607;QD=26.94;ReadPosRankSum=-5.030e-01;SB=-3.369e+03;VQSLOD=8.01;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|1:0,106:106:99:3784,292,0:127	1|1:0,72:72:99:2164,169,0:127	1|0:42,33:75:99:868,0,1146:127
+3	17501103	.	T	G	45.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=-6.477e+00;DP=156;Dels=0.00;FS=71.75;HaplotypeScore=1.53;MLEAC=2;MLEAF=0.333;MQ=58.02;MQ0=0;MQRankSum=-1.560e-01;QD=0.430;ReadPosRankSum=-3.974e+00;SB=-1.474e-02;VQSLOD=-1.415e+01;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:43,8:51:99:0,114,1252:33	0|1:22,24:46:34:34,0,492:33	0|1:24,34:59:50:50,0,492:33
+3	26960556	rs4422260	T	C	878.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=-2.140e+00;DB;DP=220;Dels=0.00;FS=1.11;HaplotypeScore=1.72;MLEAC=2;MLEAF=0.333;MQ=41.87;MQ0=3;MQRankSum=-6.679e+00;QD=5.97;ReadPosRankSum=-3.100e-02;SB=-4.600e+02;VQSLOD=0.717;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:73,0:73:99:0,208,2660:127	0|1:32,48:80:99:759,0,915:127	0|1:37,30:67:99:158,0,1092:127
+3	37334187	rs112182713	G	GGTT	1235.20	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=0.420;DB;DP=233;FS=10.65;HaplotypeScore=68.31;MLEAC=1;MLEAF=0.167;MQ=56.19;MQ0=0;MQRankSum=-1.868e+00;QD=17.65;RPA=1,2;RU=GTT;ReadPosRankSum=1.38;SB=-4.490e+02;STR;VQSLOD=3.14;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:83,0:83:99:0,244,4702:127	0|0:79,0:77:99:0,220,4149:127	0|1:40,23:68:99:1279,0,1696:127
+3	48757773	rs61137521	A	G	3103.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-7.940e-01;DB;DP=172;Dels=0.00;FS=0.00;HaplotypeScore=1.90;MLEAC=4;MLEAF=0.667;MQ=59.34;MQ0=0;MQRankSum=-6.930e-01;QD=18.04;ReadPosRankSum=-1.667e+00;SB=-1.874e+03;VQSLOD=7.92;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,50:51:99:1723,141,0:127	1|0:31,34:65:99:745,0,814:127	1|0:24,32:56:99:677,0,603:127
+3	60283791	rs10154846	T	C	669.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.270e+00;DB;DP=204;Dels=0.00;FS=1.59;HaplotypeScore=1.66;MLEAC=1;MLEAF=0.167;MQ=59.39;MQ0=0;MQRankSum=0.370;QD=10.14;ReadPosRankSum=1.64;SB=-2.690e+02;VQSLOD=8.95;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:63,0:63:99:0,190,2440:127	0|1:34,32:66:99:704,0,1020:127	0|0:74,0:75:99:0,190,2372:127
+3	68765638	rs1504297	C	G	4623.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-5.561e+00;DB;DP=225;Dels=0.00;FS=3.18;HaplotypeScore=0.843;MLEAC=4;MLEAF=0.667;MQ=59.80;MQ0=0;MQRankSum=-6.190e-01;QD=20.55;ReadPosRankSum=-1.001e+00;SB=-2.371e+03;VQSLOD=8.74;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:40,39:79:99:1220,0,1330:127	1|1:0,75:75:99:2518,205,0:127	0|1:37,34:71:99:885,0,1185:127
+3	76722766	rs264537	C	G	845.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=3.67;DB;DP=202;Dels=0.00;FS=0.00;HaplotypeScore=0.277;MLEAC=1;MLEAF=0.167;MQ=59.79;MQ0=0;MQRankSum=-7.950e-01;QD=13.21;ReadPosRankSum=1.05;SB=-2.910e+02;VQSLOD=8.53;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:70,0:70:99:0,208,2570:127	0|0:68,0:68:99:0,193,2332:127	0|1:34,30:64:99:880,0,995:127
+3	86234718	rs2324883	T	C	7655.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=234;Dels=0.00;FS=0.00;HaplotypeScore=0.649;MLEAC=6;MLEAF=1.00;MQ=59.51;MQ0=0;QD=32.71;SB=-4.142e+03;VQSLOD=11.21;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,80:80:99:2857,223,0:127	1|1:0,76:77:99:2512,196,0:127	1|1:0,77:77:99:2286,178,0:127
+3	99106655	rs2623376	A	G	1093.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.49;DB;DP=191;Dels=0.00;FS=2.28;HaplotypeScore=0.627;MLEAC=2;MLEAF=0.333;MQ=59.76;MQ0=0;MQRankSum=-1.141e+00;QD=9.51;ReadPosRankSum=0.079;SB=-5.610e+02;VQSLOD=8.15;culprit=QD	GT:AD:DP:GQ:PL:TP	0|1:30,22:52:99:653,0,970:127	0|0:76,0:76:99:0,193,2462:127	1|0:44,19:63:99:479,0,1261:127
+3	108612711	rs2399252	T	A	3430.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-7.830e-01;DB;DP=239;Dels=0.00;FS=4.44;HaplotypeScore=0.659;MLEAC=3;MLEAF=0.500;MQ=59.64;MQ0=0;MQRankSum=-2.690e-01;QD=14.35;ReadPosRankSum=-7.010e-01;SB=-1.733e+03;VQSLOD=8.51;culprit=MQ	GT:AD:DP:GQ:PL:TP	0/1:48,34:82:99:1066,0,1620:127	0/1:45,43:88:99:1370,0,1452:127	0/1:36,32:69:99:994,0,1128:127
+3	118367863	rs71617664	TAGATAGATTA	T	12039	PASS	AC=6;AF=1.00;AN=6;BaseQRankSum=1.12;DB;DP=201;FS=9.45;HaplotypeScore=212.50;MLEAC=6;MLEAF=1.00;MQ=55.55;MQ0=1;MQRankSum=1.58;QD=59.90;ReadPosRankSum=0.721;SB=-5.599e+03;VQSLOD=-4.074e-01;culprit=QD	GT:AD:DP:GQ:PL:TP	1|1:13,57:71:99:4299,164,0:127	1|1:60,4:64:99:3312,174,0:127	1|1:9,50:64:99:4428,177,0:127
+3	128140891	rs73201490	C	T	1315.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=5.39;DB;DP=142;Dels=0.00;FS=0.667;HaplotypeScore=3.49;MLEAC=2;MLEAF=0.333;MQ=58.69;MQ0=0;MQRankSum=1.73;QD=14.30;ReadPosRankSum=0.758;SB=-6.400e+02;VQSLOD=6.70;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:29,24:53:99:636,0,670:104	0|0:50,0:50:99:0,105,1188:104	1|0:12,27:39:99:718,0,250:104
+3	137840974	rs2622698	C	A	6792.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=232;Dels=0.00;FS=0.00;HaplotypeScore=2.65;MLEAC=6;MLEAF=1.00;MQ=59.04;MQ0=0;QD=29.28;SB=-3.999e+03;VQSLOD=9.77;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,79:79:99:2640,205,0:127	1|1:0,78:78:99:2229,178,0:127	1|1:0,75:75:99:1923,153,0:127
+3	148344553	rs62274102	C	A	3191.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-1.860e+00;DB;DP=232;Dels=0.00;FS=12.06;HaplotypeScore=2.37;MLEAC=3;MLEAF=0.500;MQ=59.32;MQ0=0;MQRankSum=-5.510e-01;QD=19.58;ReadPosRankSum=2.41;SB=-1.757e+03;VQSLOD=6.29;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|0:46,39:85:99:985,0,1339:127	1|1:0,78:78:99:2251,175,0:127	0|0:69,0:69:99:0,153,2018:127
+3	158557110	rs34445802	G	A	2374.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.80;DB;DP=237;Dels=0.00;FS=1.02;HaplotypeScore=1.66;MLEAC=2;MLEAF=0.333;MQ=57.48;MQ0=0;MQRankSum=0.558;QD=14.05;ReadPosRankSum=-1.147e+00;SB=-1.505e+03;VQSLOD=7.13;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:43,56:99:99:1624,0,1344:127	1|0:33,37:70:99:789,0,916:127	0|0:68,0:68:99:0,156,2014:127
+3	168108331	rs35075740	TA	T	51.36	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=1.78;DB;DP=162;FS=3.97;HaplotypeScore=20.38;MLEAC=3;MLEAF=0.500;MQ=55.92;MQ0=0;MQRankSum=3.47;QD=0.320;RPA=18,17;RU=A;ReadPosRankSum=1.96;SB=-7.120e+00;STR;VQSLOD=2.10;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:46,5:53:16:16,0,313:15	0/1:46,12:60:61:61,0,267:15	0/1:40,6:47:22:22,0,255:15
+3	179020937	rs13082816	C	T	1116.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=5.60;DB;DP=82;Dels=0.00;FS=0.00;HaplotypeScore=0.636;MLEAC=4;MLEAF=0.667;MQ=54.57;MQ0=1;MQRankSum=0.374;QD=13.61;ReadPosRankSum=-3.700e-02;SB=-2.010e+02;VQSLOD=6.09;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:13,13:26:99:388,0,178:36	1|1:0,24:24:36:442,36,0:36	0|1:13,19:32:99:328,0,179:36
+3	189981901	.	A	G	179.25	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=2.26;DP=274;Dels=0.00;FS=73.74;HaplotypeScore=1.83;MLEAC=1;MLEAF=0.167;MQ=54.08;MQ0=6;MQRankSum=-2.651e+00;QD=1.97;ReadPosRankSum=-6.101e+00;SB=-6.400e+01;VQSLOD=-1.820e+01;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|0:64,27:91:99:214,0,679:51	1|0:78,10:88:0:0,21,1685:51	0|0:86,9:95:74:0,74,1891:51
+3	197056886	rs7612900	G	A	7880.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=229;Dels=0.00;FS=0.00;HaplotypeScore=0.611;MLEAC=6;MLEAF=1.00;MQ=59.18;MQ0=0;QD=34.41;SB=-3.459e+03;VQSLOD=11.81;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,75:75:99:2786,214,0:127	1|1:0,81:81:99:2598,202,0:127	1|1:0,73:73:99:2496,193,0:127
+4	6333669	rs35678078	G	T	2186.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=1.22;DB;DP=198;Dels=0.00;FS=1.75;HaplotypeScore=0.778;MLEAC=3;MLEAF=0.500;MQ=59.27;MQ0=0;MQRankSum=-2.560e-01;QD=11.04;ReadPosRankSum=-4.690e-01;SB=-1.621e+03;VQSLOD=9.41;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:33,34:67:99:875,0,848:127	0/1:27,32:59:99:602,0,534:127	0/1:33,38:72:99:748,0,676:127
+4	12652343	rs13114660	G	T	610.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.176e+00;DB;DP=127;Dels=0.00;FS=0.00;HaplotypeScore=1.57;MLEAC=1;MLEAF=0.167;MQ=58.86;MQ0=0;MQRankSum=-4.680e-01;QD=16.06;ReadPosRankSum=1.25;SB=-3.060e+02;VQSLOD=7.84;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:43,0:43:99:0,120,1561:102	0|1:15,23:38:99:645,0,407:102	0|0:44,1:46:99:0,103,1539:102
+4	21819269	rs4285068	C	G	7252.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=216;Dels=0.00;FS=0.00;HaplotypeScore=0.651;MLEAC=6;MLEAF=1.00;MQ=55.91;MQ0=0;QD=33.57;SB=-3.284e+03;VQSLOD=8.54;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,83:83:99:2859,226,0:127	1|1:0,73:73:99:2413,193,0:127	1|1:0,59:59:99:1980,156,0:127
+4	30898977	rs4386561	G	A	2449.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=3.82;DB;DP=231;Dels=0.00;FS=0.00;HaplotypeScore=0.938;MLEAC=2;MLEAF=0.333;MQ=58.94;MQ0=0;MQRankSum=0.173;QD=15.70;ReadPosRankSum=1.05;SB=-1.131e+03;VQSLOD=8.36;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:33,46:79:99:1380,0,944:127	0|0:75,0:75:99:0,202,2608:127	1|0:43,34:77:99:1108,0,1335:127
+4	39062189	rs2566127	T	C	2641.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-2.019e+00;DB;DP=201;Dels=0.00;FS=1.10;HaplotypeScore=2.88;MLEAC=3;MLEAF=0.500;MQ=58.96;MQ0=0;MQRankSum=0.932;QD=13.14;ReadPosRankSum=-5.960e-01;SB=-1.401e+03;VQSLOD=7.97;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:35,29:64:99:880,0,1168:127	0/1:37,32:70:99:796,0,1021:127	0/1:31,36:67:99:1004,0,877:127
+4	48922864	rs7697262	G	C	1383.23	VQSRTrancheSNP99.00to99.90	AC=6;AF=1.00;AN=6;DB;DP=100;Dels=0.00;FS=0.00;HaplotypeScore=0.00;MLEAC=6;MLEAF=1.00;MQ=20.20;MQ0=24;QD=13.83;SB=-3.860e+02;VQSLOD=-3.210e-01;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:3,38:41:57:625,57,0:32	1|1:0,28:28:33:368,33,0:32	1|1:2,29:31:39:428,39,0:32
+4	57135985	rs1715504	G	A	1213.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=3.55;DB;DP=173;Dels=0.00;FS=4.10;HaplotypeScore=1.63;MLEAC=2;MLEAF=0.333;MQ=58.44;MQ0=0;MQRankSum=-1.006e+00;QD=10.28;ReadPosRankSum=-9.330e-01;SB=-4.500e+02;VQSLOD=7.41;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:54,0:55:99:0,135,1546:127	0|1:30,23:54:99:563,0,608:127	0|1:35,28:64:99:689,0,562:127
+4	64522064	rs4860541	A	G	5942.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=188;Dels=0.00;FS=0.00;HaplotypeScore=0.289;MLEAC=6;MLEAF=1.00;MQ=56.20;MQ0=0;QD=31.61;SB=-3.348e+03;VQSLOD=8.54;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,68:68:99:2119,169,0:127	1|1:0,52:53:99:1661,132,0:127	1|1:0,67:67:99:2162,172,0:127
+4	71449060	rs60358213	G	A	2269.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=5.70;DB;DP=227;Dels=0.00;FS=13.05;HaplotypeScore=20.14;MLEAC=2;MLEAF=0.333;MQ=55.35;MQ0=0;MQRankSum=0.477;QD=13.19;ReadPosRankSum=2.30;SB=-8.910e+02;VQSLOD=1.89;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:60,40:100:99:1221,0,1476:127	1|0:37,35:72:99:1087,0,987:127	0|0:53,1:54:99:0,157,2026:127
+4	82427976	rs6841516	G	A	561.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.022e+00;DB;DP=166;Dels=0.00;FS=0.00;HaplotypeScore=1.47;MLEAC=1;MLEAF=0.167;MQ=59.56;MQ0=0;MQRankSum=-1.555e+00;QD=11.00;ReadPosRankSum=0.016;SB=-3.880e+02;VQSLOD=8.10;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:51,0:51:99:0,132,1705:127	0|1:22,29:51:99:596,0,483:127	0|0:64,0:64:99:0,135,1755:127
+4	92648168	rs61329801	A	ATTTG	7717	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=0.947;DB;DP=186;FS=8.29;HaplotypeScore=7.88;MLEAC=4;MLEAF=0.667;MQ=56.58;MQ0=0;MQRankSum=-1.740e-01;QD=41.49;ReadPosRankSum=-4.440e-01;SB=-3.591e+03;VQSLOD=3.52;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:45,35:80:99:2213,0,2213:127	1|1:3,59:62:99:4128,181,0:127	0|1:22,22:44:99:1376,0,1181:127
+4	103859292	rs7676943	C	G	7573.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=235;Dels=0.00;FS=0.00;HaplotypeScore=0.00;MLEAC=6;MLEAF=1.00;MQ=58.63;MQ0=0;QD=32.23;SB=-3.953e+03;VQSLOD=10.39;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:1,95:96:99:3289,256,0:127	1|1:0,73:73:99:2137,166,0:127	1|1:0,66:66:99:2147,166,0:127
+4	114869733	rs11381039	A	AT	2798.22	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.957;DB;DP=267;FS=4.37;HaplotypeScore=26.36;MLEAC=3;MLEAF=0.500;MQ=59.97;MQ0=0;MQRankSum=0.673;QD=10.48;RPA=8,9;RU=T;ReadPosRankSum=-1.351e+00;SB=-1.173e+03;STR;VQSLOD=5.55;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:47,41:89:99:994,0,1219:127	0/1:50,41:92:99:1063,0,1043:127	0/1:50,34:86:99:789,0,1153:127
+4	122900130	rs4833786	C	T	2361.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-3.900e-01;DB;DP=244;Dels=0.00;FS=0.495;HaplotypeScore=0.543;MLEAC=2;MLEAF=0.333;MQ=59.91;MQ0=0;MQRankSum=-6.280e-01;QD=15.23;ReadPosRankSum=1.22;SB=-1.282e+03;VQSLOD=8.81;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:89,0:89:99:0,250,3286:127	0|1:42,44:86:99:1257,0,1325:127	0|1:32,37:69:99:1143,0,941:127
+4	132671861	rs6856716	C	G	2622.26	VQSRTrancheSNP99.90to100.00	AC=2;AF=0.333;AN=6;BaseQRankSum=3.14;DB;DP=617;DS;Dels=0.00;FS=5.81;HaplotypeScore=34.41;MLEAC=2;MLEAF=0.333;MQ=24.78;MQ0=42;MQRankSum=3.29;QD=5.89;ReadPosRankSum=-7.360e-01;SB=-1.412e+03;VQSLOD=-7.735e+01;culprit=DP	GT:AD:DP:GQ:PL:TP	0|1:125,98:223:99:1761,0,1486:127	0|0:171,0:172:99:0,300,2641:127	1|0:152,70:222:99:900,0,2086:127
+4	141514835	rs55984232	C	T	1645.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=7.14;DB;DP=191;Dels=0.00;FS=2.76;HaplotypeScore=1.07;MLEAC=2;MLEAF=0.333;MQ=59.26;MQ0=0;MQRankSum=0.726;QD=13.06;ReadPosRankSum=-7.890e-01;SB=-8.550e+02;VQSLOD=8.94;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:32,28:60:99:913,0,820:127	0|0:65,0:65:99:0,156,1886:127	1|0:34,32:66:99:771,0,750:127
+4	152029268	.	CT	C	358.22	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=2.69;DP=199;FS=13.72;HaplotypeScore=32.57;MLEAC=2;MLEAF=0.333;MQ=55.17;MQ0=0;MQRankSum=-9.150e-01;QD=2.42;RPA=17,16;RU=T;ReadPosRankSum=0.548;SB=-1.419e+02;STR;VQSLOD=0.393;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:50,15:75:99:301,0,225:38	1|0:56,11:72:99:105,0,209:38	0|0:46,2:51:38:0,38,284:38
+4	161180100	rs167176	G	C	2497.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=6.81;DB;DP=191;Dels=0.00;FS=5.37;HaplotypeScore=0.781;MLEAC=3;MLEAF=0.500;MQ=59.78;MQ0=0;MQRankSum=-5.840e-01;QD=13.07;ReadPosRankSum=0.756;SB=-1.206e+03;VQSLOD=8.00;culprit=MQ	GT:AD:DP:GQ:PL:TP	0/1:32,36:68:99:1100,0,895:127	0/1:41,35:76:99:987,0,1028:127	0/1:29,17:47:99:449,0,820:127
+4	169085855	rs2251558	A	G	1161.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=0.721;DB;DP=244;Dels=0.00;FS=5.25;HaplotypeScore=0.489;MLEAC=1;MLEAF=0.167;MQ=59.91;MQ0=0;MQRankSum=1.57;QD=13.99;ReadPosRankSum=0.454;SB=-5.590e+02;VQSLOD=7.42;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:77,0:77:99:0,226,2915:127	0|1:43,40:83:99:1196,0,1294:127	0|0:84,0:84:99:0,232,2950:127
+4	177855678	rs1545090	A	G	7065.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=229;Dels=0.00;FS=0.00;HaplotypeScore=1.17;MLEAC=6;MLEAF=1.00;MQ=59.50;MQ0=0;QD=30.85;SB=-3.799e+03;VQSLOD=11.01;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,84:84:99:2701,235,0:127	1|1:0,79:80:99:2401,211,0:127	1|1:0,65:65:99:1963,165,0:127
+4	184811263	rs2871379	A	G	6376.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=211;Dels=0.00;FS=0.00;HaplotypeScore=0.508;MLEAC=6;MLEAF=1.00;MQ=58.38;MQ0=0;QD=30.22;SB=-3.472e+03;VQSLOD=10.49;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,78:78:99:2539,199,0:127	1|1:0,67:67:99:2072,165,0:127	1|1:0,66:66:99:1765,135,0:127
+4	190538070	rs62323772	G	A	106.69	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=0.099;DB;DP=19;Dels=0.00;FS=0.00;HaplotypeScore=4.36;MLEAC=3;MLEAF=0.500;MQ=33.71;MQ0=0;MQRankSum=0.591;QD=5.93;ReadPosRankSum=-3.940e-01;SB=-7.601e+01;VQSLOD=-1.392e+00;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:4,9:13:69:69,0,92:3	0|0:1,0:1:3:0,3,33:3	1|1:0,4:5:6:77,6,0:3
+5	3276081	rs4866540	G	A	3653.01	VQSRTrancheSNP99.00to99.90	AC=4;AF=0.667;AN=6;BaseQRankSum=5.00;DB;DP=176;Dels=0.00;FS=2.78;HaplotypeScore=19.00;MLEAC=4;MLEAF=0.667;MQ=57.74;MQ0=0;MQRankSum=-5.690e-01;QD=20.76;ReadPosRankSum=1.31;SB=-6.610e+02;VQSLOD=3.18;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:1,71:72:99:2337,175,0:127	1|0:26,25:51:99:719,0,601:127	1|0:26,27:53:99:597,0,662:127
+5	10958957	rs852590	T	C	8430.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=243;Dels=0.00;FS=0.00;HaplotypeScore=1.83;MLEAC=6;MLEAF=1.00;MQ=59.31;MQ0=0;QD=34.69;SB=-4.118e+03;VQSLOD=10.87;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:1,96:97:99:3594,277,0:127	1|1:1,73:74:99:2318,181,0:127	1|1:0,72:72:99:2518,196,0:127
+5	20435939	rs12697584	A	C	2286.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-5.396e+00;DB;DP=246;Dels=0.00;FS=4.68;HaplotypeScore=0.874;MLEAC=2;MLEAF=0.333;MQ=59.74;MQ0=0;MQRankSum=-8.500e-01;QD=14.20;ReadPosRankSum=0.391;SB=-1.305e+03;VQSLOD=8.13;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:85,0:85:99:0,241,3183:127	0|1:41,37:78:99:1062,0,1304:127	0|1:39,44:83:99:1263,0,1222:127
+5	29069162	rs658439	G	A	499.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=1.98;DB;DP=199;Dels=0.00;FS=11.20;HaplotypeScore=1.60;MLEAC=1;MLEAF=0.167;MQ=52.70;MQ0=0;MQRankSum=-6.080e-01;QD=9.42;ReadPosRankSum=-1.103e+00;SB=-2.310e+02;VQSLOD=4.02;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:86,0:86:99:0,211,2509:110	0|0:60,0:60:99:0,111,1240:110	0|1:30,23:53:99:534,0,523:110
+5	36740339	rs36676	T	G	6995.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=230;Dels=0.00;FS=0.00;HaplotypeScore=2.08;MLEAC=6;MLEAF=1.00;MQ=59.46;MQ0=0;QD=30.41;SB=-3.034e+03;VQSLOD=10.92;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,75:75:99:2261,195,0:127	1|1:0,83:83:99:2579,217,0:127	1|1:0,71:72:99:2155,181,0:127
+5	49438828	rs137880658	G	A	424.24	VQSRTrancheSNP99.90to100.00	AC=1;AF=0.167;AN=6;BaseQRankSum=-4.376e+00;DB;DP=748;DS;Dels=0.00;FS=7.18;HaplotypeScore=20.66;MLEAC=1;MLEAF=0.167;MQ=19.63;MQ0=158;MQRankSum=3.82;QD=1.70;ReadPosRankSum=1.19;SB=-2.220e+02;VQSLOD=-9.822e+01;culprit=DP	GT:AD:DP:GQ:PL:TP	0|0:249,0:249:99:0,555,4848:127	0|1:204,46:250:99:459,0,2894:127	0|0:249,0:249:99:0,480,4326:127
+5	58243302	rs457566	A	C	6237.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-1.663e+00;DB;DP=233;Dels=0.00;FS=3.43;HaplotypeScore=0.886;MLEAC=5;MLEAF=0.833;MQ=59.70;MQ0=0;MQRankSum=-2.320e-01;QD=26.77;ReadPosRankSum=0.957;SB=-2.566e+03;VQSLOD=9.35;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:0,87:87:99:2923,229,0:127	1|0:36,50:86:99:1429,0,1006:127	1|1:0,60:60:99:1885,147,0:127
+5	70856663	rs157045	T	C	2040.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-7.809e+00;DB;DP=234;Dels=0.00;FS=1.82;HaplotypeScore=1.05;MLEAC=2;MLEAF=0.333;MQ=58.65;MQ0=0;MQRankSum=0.989;QD=13.16;ReadPosRankSum=0.719;SB=-8.820e+02;VQSLOD=7.35;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:44,41:85:99:1087,0,1448:127	1|0:28,42:70:99:992,0,789:127	0|0:79,0:79:99:0,181,2342:127
+5	80900719	rs2917540	G	T	4938.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=3.26;DB;DP=240;Dels=0.00;FS=0.489;HaplotypeScore=0.596;MLEAC=4;MLEAF=0.667;MQ=59.63;MQ0=0;MQRankSum=-2.115e+00;QD=20.58;ReadPosRankSum=0.288;SB=-2.548e+03;VQSLOD=8.44;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|1:52,40:92:99:1207,0,1768:127	0|1:37,33:70:99:960,0,1205:127	1|1:0,78:78:99:2771,211,0:127
+5	93119893	rs6879620	G	A	4262.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=4.93;DB;DP=239;Dels=0.00;FS=1.05;HaplotypeScore=2.16;MLEAC=4;MLEAF=0.667;MQ=59.81;MQ0=0;MQRankSum=0.891;QD=17.83;ReadPosRankSum=-2.670e+00;SB=-2.596e+03;VQSLOD=7.07;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|1:49,42:91:99:1098,0,1410:127	0|1:36,38:74:99:890,0,1008:127	1|1:0,74:74:99:2274,178,0:127
+5	102962771	rs6866105	A	G	5087.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-2.665e+00;DB;DP=200;Dels=0.00;FS=8.08;HaplotypeScore=2.28;MLEAC=5;MLEAF=0.833;MQ=58.71;MQ0=0;MQRankSum=-5.030e-01;QD=25.44;ReadPosRankSum=-4.820e-01;SB=-2.172e+03;VQSLOD=7.22;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,75:75:99:2373,184,0:127	1|1:0,59:59:99:1776,141,0:127	1|0:31,35:66:99:938,0,803:127
+5	112750674	rs9716322	A	C	598.24	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.930e-01;DB;DP=199;Dels=0.00;FS=2.95;HaplotypeScore=0.333;MLEAC=1;MLEAF=0.167;MQ=45.61;MQ0=2;MQRankSum=-2.398e+00;QD=12.21;ReadPosRankSum=1.16;SB=-8.101e+01;VQSLOD=2.77;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:81,0:81:99:0,196,2534:127	0|1:23,26:49:99:633,0,479:127	0|0:68,1:69:99:0,174,2191:127
+5	121302662	.	G	T	143.72	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=1.41;DP=150;Dels=0.020;FS=161.48;HaplotypeScore=2.86;MLEAC=3;MLEAF=0.500;MQ=35.76;MQ0=1;MQRankSum=0.422;QD=0.960;ReadPosRankSum=-5.675e+00;SB=-1.466e+00;VQSLOD=-7.724e+01;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:32,21:53:99:120,0,251:5	0/1:35,12:47:57:57,0,271:5	0/1:35,12:47:4:4,0,259:5
+5	132377304	rs72801439	A	T	858.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.113e+00;DB;DP=219;Dels=0.00;FS=10.63;HaplotypeScore=0.664;MLEAC=1;MLEAF=0.167;MQ=59.41;MQ0=0;MQRankSum=-8.810e-01;QD=11.29;ReadPosRankSum=0.435;SB=-3.050e+02;VQSLOD=7.68;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:67,0:67:99:0,163,2149:127	0|1:43,33:76:99:893,0,1280:127	0|0:76,0:76:99:0,199,2553:127
+5	144321895	rs35068704	A	T	1535.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=6.05;DB;DP=203;Dels=0.00;FS=13.29;HaplotypeScore=0.507;MLEAC=2;MLEAF=0.333;MQ=57.36;MQ0=0;MQRankSum=2.19;QD=11.37;ReadPosRankSum=-1.361e+00;SB=-7.640e+02;VQSLOD=5.72;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:34,25:59:99:595,0,976:127	0|0:68,0:68:99:0,190,2435:127	1|0:39,37:76:99:979,0,1274:127
+5	154441640	rs467330	A	C	1133.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.127e+00;DB;DP=235;Dels=0.00;FS=2.10;HaplotypeScore=1.19;MLEAC=1;MLEAF=0.167;MQ=59.65;MQ0=0;MQRankSum=0.766;QD=12.59;ReadPosRankSum=-5.350e-01;SB=-6.500e+02;VQSLOD=9.83;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:61,0:61:99:0,172,2172:127	0|1:45,45:90:99:1168,0,1368:127	0|0:82,1:84:99:0,226,2825:127
+5	164600452	rs7711548	C	A	588.32	VQSRTrancheSNP99.00to99.90	AC=6;AF=1.00;AN=6;BaseQRankSum=-3.291e+00;DB;DP=192;Dels=0.020;FS=2.32;HaplotypeScore=32.67;MLEAC=6;MLEAF=1.00;MQ=57.55;MQ0=0;MQRankSum=1.54;QD=3.06;ReadPosRankSum=-1.533e+00;SB=-2.085e+03;VQSLOD=-1.433e+00;culprit=QD	GT:AD:DP:GQ:PL:TP	1|1:15,52:69:18:155,18,0:15	1|1:11,55:66:36:296,36,0:15	1|1:18,36:54:15:175,15,0:15
+5	174249229	rs11739079	C	G	1613.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-4.540e+00;DB;DP=190;Dels=0.00;FS=6.48;HaplotypeScore=2.04;MLEAC=2;MLEAF=0.333;MQ=59.51;MQ0=0;MQRankSum=-8.980e-01;QD=11.86;ReadPosRankSum=0.601;SB=-8.320e+02;VQSLOD=7.78;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:32,43:75:99:1069,0,928:123	0|0:54,0:54:99:0,123,1554:123	1|0:33,27:61:99:583,0,883:123
+6	1620147	rs2569882	T	C	252.30	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-8.620e-01;DB;DP=38;Dels=0.00;FS=8.02;HaplotypeScore=0.222;MLEAC=5;MLEAF=0.833;MQ=57.65;MQ0=0;MQRankSum=-9.180e-01;QD=9.34;ReadPosRankSum=0.584;SB=-4.005e+01;VQSLOD=4.33;culprit=DP	GT:AD:DP:GQ:PL:TP	1|1:0,17:17:21:254,21,0:4	1|0:3,8:11:2:0,3,40:4	1|1:0,10:10:3:39,3,0:4
+6	9408051	rs11751621	C	G	5140.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-2.350e+00;DB;DP=241;Dels=0.00;FS=0.00;HaplotypeScore=0.664;MLEAC=4;MLEAF=0.667;MQ=59.81;MQ0=0;MQRankSum=-2.050e-01;QD=21.33;ReadPosRankSum=-3.300e-02;SB=-2.552e+03;VQSLOD=8.99;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:42,40:82:99:1156,0,1352:127	0|1:36,45:81:99:1253,0,1134:127	1|1:0,78:78:99:2731,214,0:127
+6	18687376	rs9383429	A	T	1162.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.746e+00;DB;DP=232;Dels=0.00;FS=0.638;HaplotypeScore=0.277;MLEAC=1;MLEAF=0.167;MQ=59.42;MQ0=0;MQRankSum=-7.330e-01;QD=15.71;ReadPosRankSum=-1.460e-01;SB=-6.490e+02;VQSLOD=9.43;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:82,0:82:99:0,241,3181:127	0|0:76,0:76:99:0,217,2832:127	0|1:33,41:74:99:1197,0,1008:127
+6	26687649	.	G	C	1654.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=9.72;DP=410;Dels=0.00;FS=5.97;HaplotypeScore=5.08;MLEAC=2;MLEAF=0.333;MQ=28.19;MQ0=32;MQRankSum=0.048;QD=6.17;ReadPosRankSum=0.408;SB=-5.110e+02;VQSLOD=-8.735e+00;culprit=DP	GT:AD:DP:GQ:PL:TP	0|1:117,49:166:99:1013,0,2495:127	0|0:141,1:142:99:0,244,2576:127	1|0:70,32:102:99:680,0,1048:127
+6	31390139	rs72548006	T	TA	2159.22	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=0.491;DB;DP=257;FS=2.38;HaplotypeScore=26.89;MLEAC=2;MLEAF=0.333;MQ=59.99;MQ0=0;MQRankSum=1.59;QD=12.85;RPA=5,6;RU=A;ReadPosRankSum=1.85;SB=-9.710e+02;STR;VQSLOD=5.53;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:51,37:89:99:1076,0,1364:127	0|0:89,0:89:99:0,256,3112:127	1|0:41,38:79:99:1131,0,1103:127
+6	35346891	.	C	T	483.26	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=-6.402e+00;DP=205;Dels=0.020;FS=214.15;HaplotypeScore=4.51;MLEAC=3;MLEAF=0.500;MQ=51.07;MQ0=1;MQRankSum=-2.038e+00;QD=2.36;ReadPosRankSum=-2.250e+00;SB=-1.065e-02;VQSLOD=-1.170e+02;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:48,31:79:99:257,0,635:80	0/1:40,22:62:99:185,0,308:80	0/1:44,16:60:80:80,0,534:80
+6	45421630	rs1343799	C	T	5422.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=3.42;DB;DP=240;Dels=0.00;FS=10.69;HaplotypeScore=0.798;MLEAC=4;MLEAF=0.667;MQ=59.46;MQ0=0;MQRankSum=1.09;QD=22.59;ReadPosRankSum=1.25;SB=-2.647e+03;VQSLOD=7.70;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:29,43:72:99:1445,0,843:127	0|1:43,37:80:99:1121,0,1302:127	1|1:0,88:88:99:2856,220,0:127
+6	55412503	rs12201934	T	C	882.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.280e+00;DB;DP=182;Dels=0.00;FS=0.744;HaplotypeScore=0.333;MLEAC=1;MLEAF=0.167;MQ=59.64;MQ0=0;MQRankSum=-7.650e-01;QD=13.57;ReadPosRankSum=0.147;SB=-4.590e+02;VQSLOD=9.38;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:61,0:61:99:0,181,2371:127	0|1:35,30:65:99:917,0,1046:127	0|0:56,0:56:99:0,150,1969:127
+6	63303894	rs34270846	T	TC	7366	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=1.31;DB;DP=202;FS=2.81;HaplotypeScore=88.29;MLEAC=5;MLEAF=0.833;MQ=61.10;MQ0=0;MQRankSum=-3.900e-01;QD=36.47;ReadPosRankSum=-3.150e-01;SB=-2.762e+03;VQSLOD=3.86;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,89:89:99:3885,265,0:127	1|0:29,25:54:99:999,0,1050:127	1|1:0,57:59:99:2482,169,0:127
+6	71018445	rs1321063	C	A	518.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=2.67;DB;DP=185;Dels=0.00;FS=1.62;HaplotypeScore=0.692;MLEAC=1;MLEAF=0.167;MQ=58.93;MQ0=0;MQRankSum=0.355;QD=8.78;ReadPosRankSum=1.31;SB=-4.020e+02;VQSLOD=7.75;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:67,0:67:99:0,184,2404:127	0|0:59,0:59:99:0,160,2065:127	0|1:29,30:59:99:553,0,809:127
+6	79887872	rs6454101	C	T	2130.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.355e+00;DB;DP=204;Dels=0.00;FS=11.82;HaplotypeScore=2.38;MLEAC=3;MLEAF=0.500;MQ=59.68;MQ0=0;MQRankSum=1.01;QD=10.44;ReadPosRankSum=-7.690e-01;SB=-1.370e+03;VQSLOD=7.52;culprit=MQ	GT:AD:DP:GQ:PL:TP	0/1:31,31:62:99:806,0,990:127	0/1:42,31:73:99:606,0,921:127	0/1:29,40:69:99:757,0,749:127
+6	89947117	rs9942462	A	G	5019.01	PASS	AC=6;AF=1.00;AN=6;BaseQRankSum=1.65;DB;DP=181;Dels=0.00;FS=0.00;HaplotypeScore=3.32;MLEAC=6;MLEAF=1.00;MQ=53.30;MQ0=0;MQRankSum=0.428;QD=27.73;ReadPosRankSum=1.09;SB=-3.151e+03;VQSLOD=5.68;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,59:60:99:1715,138,0:92	1|1:1,55:56:93:1401,93,0:92	1|1:0,65:65:99:1903,153,0:92
+6	100462085	rs113348222	G	GT	5284	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-4.600e-02;DB;DP=285;FS=7.48;HaplotypeScore=252.09;MLEAC=5;MLEAF=0.833;MQ=60.07;MQ0=0;MQRankSum=1.24;QD=18.54;RPA=10,11;RU=T;ReadPosRankSum=-2.539e+00;SB=-2.505e+03;STR;VQSLOD=2.21;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|1:8,79:94:99:2218,200,0:127	1|0:54,37:97:99:818,0,914:127	1|1:10,83:94:99:2248,221,0:127
+6	110345430	rs56272355	T	C	882.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-7.241e+00;DB;DP=230;Dels=0.00;FS=2.16;HaplotypeScore=1.76;MLEAC=1;MLEAF=0.167;MQ=59.70;MQ0=0;MQRankSum=-2.000e-01;QD=11.46;ReadPosRankSum=-4.800e-01;SB=-5.580e+02;VQSLOD=8.98;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:77,0:77:99:0,220,2860:127	0|0:75,0:76:99:0,184,2321:127	0|1:35,42:77:99:917,0,926:127
+6	120734422	rs62424426	T	C	1091.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.268e+00;DB;DP=208;Dels=0.00;FS=4.35;HaplotypeScore=0.703;MLEAC=1;MLEAF=0.167;MQ=59.71;MQ0=0;MQRankSum=-1.880e-01;QD=14.36;ReadPosRankSum=-1.490e-01;SB=-5.560e+02;VQSLOD=8.65;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:70,1:71:99:0,205,2692:127	0|0:61,0:61:99:0,175,2298:127	0|1:39,37:76:99:1126,0,1140:127
+6	131725921	.	G	A	64.24	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=3.65;DP=182;Dels=0.00;FS=3.54;HaplotypeScore=2.24;MLEAC=1;MLEAF=0.167;MQ=50.85;MQ0=1;MQRankSum=-6.039e+00;QD=1.31;ReadPosRankSum=-1.757e+00;SB=-4.901e+01;VQSLOD=-6.667e-01;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:59,0:60:99:0,168,1897:98	0|1:33,16:49:99:99,0,790:98	0|0:73,0:73:99:0,156,1824:98
+6	143691852	rs17792267	C	T	3641.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-1.465e+00;DB;DP=203;Dels=0.00;FS=2.41;HaplotypeScore=0.322;MLEAC=3;MLEAF=0.500;MQ=59.54;MQ0=0;MQRankSum=1.20;QD=27.17;ReadPosRankSum=-1.140e+00;SB=-1.772e+03;VQSLOD=8.87;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:29,33:62:99:1131,0,803:127	1|1:0,72:72:99:2510,196,0:127	0|0:69,0:69:99:0,190,2480:127
+6	154006585	rs7752561	G	A	919.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.323e+00;DB;DP=223;Dels=0.00;FS=0.00;HaplotypeScore=0.825;MLEAC=1;MLEAF=0.167;MQ=59.35;MQ0=0;MQRankSum=-7.490e-01;QD=10.45;ReadPosRankSum=-1.550e-01;SB=-5.260e+02;VQSLOD=8.84;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:70,0:70:99:0,202,2601:127	0|1:51,37:88:99:954,0,1475:127	0|0:65,0:65:99:0,175,2269:127
+6	162459664	rs2849564	C	T	1819.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=8.40;DB;DP=201;Dels=0.00;FS=3.30;HaplotypeScore=2.56;MLEAC=2;MLEAF=0.333;MQ=59.38;MQ0=0;MQRankSum=1.79;QD=12.90;ReadPosRankSum=-1.045e+00;SB=-1.068e+03;VQSLOD=8.12;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:28,40:68:99:1007,0,793:120	1|0:38,35:73:99:851,0,831:120	0|0:60,0:60:99:0,120,1421:120
+6	169196022	.	T	TG	229.23	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=0.887;DP=84;FS=7.13;HaplotypeScore=6.43;MLEAC=2;MLEAF=0.333;MQ=39.46;MQ0=16;MQRankSum=2.28;QD=3.82;RPA=6,7;RU=G;ReadPosRankSum=-9.830e-01;SB=-2.849e+01;STR;VQSLOD=1.35;culprit=QD	GT:AD:DP:GQ:PL:TP	1|0:19,10:15:78:78,0,88:27	1|0:17,13:21:99:199,0,172:27	0|0:24,0:15:27:0,27,308:27
+7	4683258	rs62450857	G	A	1127.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-9.910e-01;DB;DP=191;Dels=0.00;FS=3.24;HaplotypeScore=0.277;MLEAC=1;MLEAF=0.167;MQ=57.16;MQ0=0;MQRankSum=1.30;QD=14.09;ReadPosRankSum=0.469;SB=-4.730e+02;VQSLOD=6.62;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:66,0:66:99:0,196,2495:120	0|1:38,42:80:99:1162,0,1016:120	0|0:45,0:45:99:0,120,1531:120
+7	12502849	rs848025	C	G	4109.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-8.809e+00;DB;DP=220;Dels=0.00;FS=1.14;HaplotypeScore=1.80;MLEAC=4;MLEAF=0.667;MQ=59.56;MQ0=0;MQRankSum=0.625;QD=18.68;ReadPosRankSum=-1.900e-02;SB=-1.989e+03;VQSLOD=8.71;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:47,45:92:99:1216,0,1501:127	1|1:0,71:71:99:2145,184,0:127	0|1:27,30:57:99:748,0,743:127
+7	20767781	rs150977587	TA	T	2754.21	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=6.30;DB;DP=259;FS=0.00;HaplotypeScore=122.50;MLEAC=4;MLEAF=0.667;MQ=59.41;MQ0=1;MQRankSum=-6.400e-01;QD=10.63;RPA=13,12;RU=A;ReadPosRankSum=0.189;SB=-1.344e+03;STR;VQSLOD=3.30;culprit=QD	GT:AD:DP:GQ:PL:TP	1|0:59,45:107:99:923,0,795:116	1|1:15,54:72:99:1313,116,0:116	0|1:44,31:79:99:569,0,617:116
+7	29544610	rs6462145	A	T	4020.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=0.326;DB;DP=189;Dels=0.00;FS=5.39;HaplotypeScore=1.30;MLEAC=4;MLEAF=0.667;MQ=58.54;MQ0=0;MQRankSum=1.29;QD=21.27;ReadPosRankSum=-1.212e+00;SB=-1.878e+03;VQSLOD=7.32;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:27,49:77:99:1466,0,733:127	1|1:0,64:64:99:1888,147,0:127	0|1:18,27:48:99:666,0,410:127
+7	38984187	rs118081099	A	C	569.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.100e-01;DB;DP=182;Dels=0.00;FS=6.20;HaplotypeScore=0.553;MLEAC=1;MLEAF=0.167;MQ=54.22;MQ0=0;MQRankSum=1.67;QD=9.33;ReadPosRankSum=1.16;SB=-1.260e+02;VQSLOD=4.89;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:72,0:72:99:0,196,2446:127	0|1:38,23:61:99:604,0,1196:127	0|0:48,1:49:99:0,138,1711:127
+7	48862174	rs965346	A	G	877.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-6.250e+00;DB;DP=194;Dels=0.00;FS=6.11;HaplotypeScore=0.649;MLEAC=1;MLEAF=0.167;MQ=57.54;MQ0=0;MQRankSum=2.06;QD=16.25;ReadPosRankSum=-1.204e+00;SB=-4.040e+02;VQSLOD=6.24;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:82,0:82:99:0,232,3007:127	0|0:58,0:58:99:0,160,2067:127	0|1:22,32:54:99:912,0,686:127
+7	56584972	rs34475770	C	T	2465.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-1.030e-01;DB;DP=255;Dels=0.00;FS=2.23;HaplotypeScore=0.884;MLEAC=2;MLEAF=0.333;MQ=58.76;MQ0=0;MQRankSum=1.77;QD=15.03;ReadPosRankSum=1.13;SB=-1.412e+03;VQSLOD=6.57;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:91,0:91:99:0,259,3369:127	0|1:36,49:85:99:1444,0,1000:127	0|1:38,41:79:99:1060,0,1084:127
+7	62232046	.	C	T	1155.24	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.643e+00;DP=230;Dels=0.00;FS=6.30;HaplotypeScore=12.77;MLEAC=1;MLEAF=0.167;MQ=58.61;MQ0=3;MQRankSum=-6.970e-01;QD=15.20;ReadPosRankSum=-1.202e+00;SB=-4.440e+02;VQSLOD=2.57;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:77,1:78:99:0,217,2824:127	0|0:76,0:76:99:0,202,2604:127	0|1:34,42:76:99:1190,0,994:127
+7	69334430	rs917719	C	T	1223.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=5.84;DB;DP=193;Dels=0.00;FS=6.66;HaplotypeScore=0.815;MLEAC=2;MLEAF=0.333;MQ=59.81;MQ0=0;MQRankSum=1.63;QD=9.63;ReadPosRankSum=1.46;SB=-7.370e+02;VQSLOD=7.00;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:38,39:77:99:770,0,1258:127	1|0:26,24:50:99:492,0,840:127	0|0:66,0:66:99:0,172,2210:127
+7	79508376	rs2525826	G	T	716.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=2.15;DB;DP=196;Dels=0.00;FS=0.00;HaplotypeScore=0.866;MLEAC=1;MLEAF=0.167;MQ=59.48;MQ0=0;MQRankSum=1.42;QD=13.51;ReadPosRankSum=0.263;SB=-4.080e+02;VQSLOD=9.57;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:65,0:65:99:0,181,2312:127	0|0:78,0:78:99:0,226,2916:127	0|1:27,26:53:99:751,0,845:127
+7	89752110	rs39232	T	G	3944.01	VQSRTrancheSNP99.00to99.90	AC=6;AF=1.00;AN=6;DB;DP=216;Dels=0.00;FS=0.00;HaplotypeScore=1.45;MLEAC=6;MLEAF=1.00;MQ=38.19;MQ0=21;QD=18.26;SB=-2.716e+03;VQSLOD=2.66;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:0,70:70:99:1564,132,0:101	1|1:0,79:79:99:1258,108,0:101	1|1:0,66:66:99:1122,102,0:101
+7	101161506	rs2158739	C	T	4522.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=1.70;DB;DP=172;Dels=0.00;FS=4.28;HaplotypeScore=1.51;MLEAC=5;MLEAF=0.833;MQ=58.18;MQ0=0;MQRankSum=-2.950e-01;QD=26.29;ReadPosRankSum=0.974;SB=-2.287e+03;VQSLOD=8.28;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,72:73:99:2443,202,0:110	1|0:23,26:50:99:711,0,586:110	1|1:0,48:49:99:1368,111,0:110
+7	110843795	rs214455	A	G	8548.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=258;Dels=0.00;FS=0.00;HaplotypeScore=2.36;MLEAC=6;MLEAF=1.00;MQ=59.35;MQ0=0;QD=33.13;SB=-4.197e+03;VQSLOD=10.76;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,106:106:99:3535,301,0:127	1|1:0,66:66:99:2270,193,0:127	1|1:0,86:86:99:2743,229,0:127
+7	124589684	rs12113765	G	C	4948.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-2.607e+00;DB;DP=243;Dels=0.00;FS=1.04;HaplotypeScore=3.38;MLEAC=4;MLEAF=0.667;MQ=58.74;MQ0=0;MQRankSum=1.25;QD=20.36;ReadPosRankSum=-3.870e-01;SB=-2.411e+03;VQSLOD=7.05;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:44,27:71:99:796,0,1350:127	1|1:0,84:85:99:2760,217,0:127	0|1:41,46:87:99:1392,0,1180:127
+7	134269995	rs67235184	G	GA	2917.20	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.835;DB;DP=219;FS=1.09;HaplotypeScore=39.14;MLEAC=3;MLEAF=0.500;MQ=59.44;MQ0=0;MQRankSum=-3.700e-02;QD=19.19;RPA=7,8;RU=A;ReadPosRankSum=-9.210e-01;SB=-1.316e+03;STR;VQSLOD=5.11;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:51,33:84:99:916,0,1151:127	1|1:2,65:68:99:2055,192,0:127	0|0:65,0:67:99:0,186,2051:127
+7	144383888	rs73161092	T	C	689.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-7.434e+00;DB;DP=254;Dels=0.00;FS=8.63;HaplotypeScore=0.00;MLEAC=1;MLEAF=0.167;MQ=59.54;MQ0=0;MQRankSum=0.163;QD=8.62;ReadPosRankSum=-1.802e+00;SB=-3.560e+02;VQSLOD=6.45;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:90,0:90:99:0,268,3553:127	0|1:47,33:80:99:724,0,1392:127	0|0:84,0:84:99:0,202,2644:127
+7	152208470	rs6464236	G	C	4321.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=5.23;DB;DP=169;Dels=0.00;FS=1.63;HaplotypeScore=1.36;MLEAC=5;MLEAF=0.833;MQ=57.18;MQ0=1;MQRankSum=1.91;QD=25.57;ReadPosRankSum=0.892;SB=-2.137e+03;VQSLOD=6.76;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:1,56:57:99:1949,150,0:122	1|1:0,54:54:99:1557,123,0:122	1|0:30,28:58:99:815,0,715:122
+7	158686803	rs55765467	T	C	200.26	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=-1.011e+01;DB;DP=310;Dels=0.00;FS=2.60;HaplotypeScore=1.28;MLEAC=3;MLEAF=0.500;MQ=47.32;MQ0=0;MQRankSum=-4.959e+00;QD=0.650;ReadPosRankSum=-1.096e+01;SB=-1.206e+03;VQSLOD=-1.764e+01;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0/1:64,33:97:99:148,0,1949:32	0/1:73,45:118:58:58,0,2287:32	0/1:65,30:95:33:33,0,1910:32
+8	4048009	rs7007410	C	T	2713.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.954;DB;DP=197;Dels=0.00;FS=2.48;HaplotypeScore=0.712;MLEAC=3;MLEAF=0.500;MQ=57.03;MQ0=0;MQRankSum=0.882;QD=13.77;ReadPosRankSum=-4.960e-01;SB=-1.406e+03;VQSLOD=6.50;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:38,30:68:99:847,0,1168:127	0/1:30,30:60:99:916,0,921:127	0/1:32,36:69:99:989,0,882:127
+8	8974322	rs28440961	G	A	1682.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.72;DB;DP=190;Dels=0.00;FS=0.579;HaplotypeScore=1.54;MLEAC=2;MLEAF=0.333;MQ=59.33;MQ0=0;MQRankSum=-6.520e-01;QD=12.65;ReadPosRankSum=0.746;SB=-7.040e+02;VQSLOD=9.37;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|0:32,32:64:99:790,0,1002:125	1|0:33,36:69:99:931,0,866:125	0|0:57,0:57:99:0,126,1622:125
+8	14463368	rs1355302	T	A	2523.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=6.79;DB;DP=236;Dels=0.00;FS=3.78;HaplotypeScore=0.324;MLEAC=2;MLEAF=0.333;MQ=59.14;MQ0=0;MQRankSum=-3.810e-01;QD=15.97;ReadPosRankSum=-4.500e-02;SB=-1.421e+03;VQSLOD=7.69;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:36,43:79:99:1332,0,1176:127	0|0:78,0:78:99:0,214,2749:127	1|0:35,44:79:99:1230,0,1162:127
+8	21736923	rs13256921	G	A	217.24	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=1.88;DB;DP=93;Dels=0.00;FS=5.53;HaplotypeScore=6.50;MLEAC=1;MLEAF=0.167;MQ=42.13;MQ0=3;MQRankSum=0.517;QD=6.79;ReadPosRankSum=1.71;SB=-1.980e+02;VQSLOD=-2.643e+00;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:34,0:34:66:0,66,691:41	0|1:15,17:32:99:252,0,211:41	0|0:27,0:27:42:0,42,425:41
+8	30862954	rs149290124	C	CA	3883	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-1.321e+00;DB;DP=261;FS=0.755;HaplotypeScore=37.27;MLEAC=5;MLEAF=0.833;MQ=58.08;MQ0=0;MQRankSum=0.330;QD=14.88;RPA=11,12;RU=A;ReadPosRankSum=-5.780e-01;SB=-1.926e+03;STR;VQSLOD=5.37;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:21,76:105:99:1980,179,0:91	1|0:51,22:75:99:597,0,485:91	1|1:24,54:81:92:1306,92,0:91
+8	42044954	rs1058720	G	A	2760.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=4.31;DB;DP=157;Dels=0.00;FS=0.00;HaplotypeScore=2.10;MLEAC=4;MLEAF=0.667;MQ=58.82;MQ0=0;MQRankSum=-2.021e+00;QD=17.58;ReadPosRankSum=-4.620e-01;SB=-1.377e+03;VQSLOD=7.58;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,56:56:99:1820,147,0:127	1|0:24,27:51:99:555,0,233:127	1|0:26,24:50:99:427,0,458:127
+8	56608897	rs57623198	C	T	1911.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-1.515e+00;DB;DP=229;Dels=0.00;FS=0.00;HaplotypeScore=1.13;MLEAC=2;MLEAF=0.333;MQ=59.80;MQ0=0;MQRankSum=0.336;QD=12.66;ReadPosRankSum=-2.326e+00;SB=-9.730e+02;VQSLOD=8.56;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:78,0:78:99:0,229,2989:127	0|1:44,30:74:99:897,0,1444:127	0|1:44,33:77:99:1053,0,1400:127
+8	66327344	rs13282622	G	A	3918.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=4.51;DB;DP=192;Dels=0.00;FS=3.53;HaplotypeScore=1.65;MLEAC=4;MLEAF=0.667;MQ=58.91;MQ0=0;MQRankSum=0.706;QD=20.41;ReadPosRankSum=-3.270e-01;SB=-2.091e+03;VQSLOD=8.63;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:34,37:71:99:1137,0,923:127	0|1:32,28:61:99:806,0,988:127	1|1:0,60:60:99:1975,153,0:127
+8	78181000	rs1563030	A	G	5178.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-3.000e-02;DB;DP=192;Dels=0.00;FS=4.68;HaplotypeScore=2.95;MLEAC=5;MLEAF=0.833;MQ=59.62;MQ0=0;MQRankSum=-4.670e-01;QD=26.97;ReadPosRankSum=-8.550e-01;SB=-2.617e+03;VQSLOD=7.34;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,59:59:99:1954,150,0:127	1|0:32,37:70:99:1198,0,888:127	1|1:0,63:63:99:2026,156,0:127
+8	90278211	rs11998540	A	T	357.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-1.457e+00;DB;DP=69;Dels=0.00;FS=1.29;HaplotypeScore=0.00;MLEAC=2;MLEAF=0.333;MQ=58.96;MQ0=0;MQRankSum=1.41;QD=8.12;ReadPosRankSum=1.26;SB=-9.501e+01;VQSLOD=5.96;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:12,7:19:99:185,0,416:60	0|0:25,0:25:60:0,60,805:60	1|0:16,9:25:99:211,0,500:60
+8	102355800	rs10103956	G	T	1756.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=0.927;DB;DP=189;Dels=0.00;FS=5.92;HaplotypeScore=1.54;MLEAC=2;MLEAF=0.333;MQ=59.66;MQ0=0;MQRankSum=-4.200e-01;QD=13.41;ReadPosRankSum=-1.900e-02;SB=-5.470e+02;VQSLOD=8.16;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:32,38:70:99:1078,0,999:127	1|0:35,26:61:99:717,0,1103:127	0|0:57,0:58:99:0,156,2011:127
+8	113376378	rs41340951	T	C	4379.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-8.019e+00;DB;DP=211;Dels=0.00;FS=1.83;HaplotypeScore=0.263;MLEAC=4;MLEAF=0.667;MQ=59.85;MQ0=0;MQRankSum=1.27;QD=20.75;ReadPosRankSum=0.144;SB=-1.893e+03;VQSLOD=8.84;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,67:67:99:2221,187,0:127	1|0:32,37:69:99:1083,0,1066:127	1|0:35,40:75:99:1075,0,1108:127
+8	123499998	rs9693135	T	C	926.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-7.820e+00;DB;DP=207;Dels=0.00;FS=2.68;HaplotypeScore=1.26;MLEAC=2;MLEAF=0.333;MQ=56.08;MQ0=0;MQRankSum=-2.729e+00;QD=6.34;ReadPosRankSum=-2.690e-01;SB=-8.230e+02;VQSLOD=4.30;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:61,0:61:99:0,172,2301:127	0|1:37,35:72:99:622,0,769:127	0|1:48,26:74:99:343,0,1280:127
+8	132727531	rs7000409	G	A	2050.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=5.47;DB;DP=220;Dels=0.00;FS=5.20;HaplotypeScore=1.94;MLEAC=2;MLEAF=0.333;MQ=59.71;MQ0=0;MQRankSum=1.23;QD=14.14;ReadPosRankSum=-8.710e-01;SB=-1.080e+03;VQSLOD=7.79;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|1:29,35:64:99:1215,0,785:127	0|0:75,0:75:99:0,190,2423:127	1|0:50,31:81:99:874,0,1611:127
+8	140651779	rs1469039	G	A	1879.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-2.189e+00;DB;DP=145;Dels=0.00;FS=0.00;HaplotypeScore=1.77;MLEAC=3;MLEAF=0.500;MQ=58.39;MQ0=0;MQRankSum=0.745;QD=12.96;ReadPosRankSum=-1.590e-01;SB=-9.360e+02;VQSLOD=9.01;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:23,24:47:99:612,0,740:127	0/1:21,31:52:99:684,0,478:127	0/1:20,26:46:99:622,0,367:127
+9	2072356	rs4741641	T	G	2054.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-7.235e+00;DB;DP=243;Dels=0.00;FS=0.00;HaplotypeScore=2.21;MLEAC=2;MLEAF=0.333;MQ=59.64;MQ0=0;MQRankSum=1.17;QD=13.00;ReadPosRankSum=-4.750e-01;SB=-1.004e+03;VQSLOD=9.02;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:49,45:94:99:1245,0,1615:127	0|0:85,0:85:99:0,217,2818:127	1|0:32,32:64:99:848,0,936:127
+9	9066127	rs57751104	ATATT	A	4412	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-8.800e-02;DB;DP=214;FS=8.47;HaplotypeScore=16.59;MLEAC=2;MLEAF=0.333;MQ=58.75;MQ0=0;MQRankSum=0.462;QD=29.61;RPA=2,1;RU=TATT;ReadPosRankSum=1.38;SB=-1.837e+03;STR;VQSLOD=4.42;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:41,36:79:99:2129,0,2123:127	1|0:32,38:70:99:2283,0,1679:127	0|0:65,0:65:99:0,184,4023:127
+9	16302655	rs9298755	T	G	1394.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=3.36;DB;DP=200;Dels=0.00;FS=0.00;HaplotypeScore=3.19;MLEAC=2;MLEAF=0.333;MQ=59.33;MQ0=0;MQRankSum=0.586;QD=10.03;ReadPosRankSum=-7.710e-01;SB=-8.720e+02;VQSLOD=7.77;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:60,1:61:99:0,165,2004:127	0|1:29,28:57:99:494,0,759:127	0|1:41,40:82:99:939,0,1069:127
+9	25201692	rs9408058	C	T	8643.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=245;Dels=0.00;FS=0.00;HaplotypeScore=0.898;MLEAC=6;MLEAF=1.00;MQ=59.13;MQ0=0;QD=35.28;SB=-4.398e+03;VQSLOD=12.17;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,89:89:99:3312,256,0:127	1|1:0,81:81:99:2771,223,0:127	1|1:0,75:75:99:2560,202,0:127
+9	33446281	.	C	CT	31.72	VQSRTrancheINDEL99.90to100.00	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.119e+00;DP=178;FS=127.57;HaplotypeScore=21.55;MLEAC=1;MLEAF=0.167;MQ=58.69;MQ0=0;MQRankSum=1.61;QD=0.620;RPA=2,3;RU=T;ReadPosRankSum=-5.268e+00;SB=-4.493e+00;STR;VQSLOD=-1.057e+01;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:77,0:79:73:0,73,2094:6	0|0:46,0:48:5:0,5,958:6	0|1:35,15:51:75:75,0,1073:6
+9	44998848	.	C	G	254.43	VQSRTrancheSNP99.00to99.90	AC=5;AF=0.833;AN=6;BaseQRankSum=2.20;DP=193;Dels=0.00;FS=10.82;HaplotypeScore=0.245;MLEAC=5;MLEAF=0.833;MQ=6.48;MQ0=163;MQRankSum=-1.206e+00;QD=1.32;ReadPosRankSum=0.790;SB=-1.372e+02;VQSLOD=-6.632e+00;culprit=QD	GT:AD:DP:GQ:PL:TP	1|0:39,27:66:23:132,0,23:8	1|1:36,16:52:15:118,15,0:8	0|1:53,22:75:1:45,6,0:8
+9	69810010	rs113063015	A	C	280.26	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=-1.223e+00;DB;DP=716;DS;Dels=0.00;FS=9.00;HaplotypeScore=39.83;MLEAC=3;MLEAF=0.500;MQ=37.32;MQ0=64;MQRankSum=-3.574e+00;QD=0.390;ReadPosRankSum=-8.970e-01;SB=-1.065e-02;VQSLOD=-6.817e+01;culprit=DP	GT:AD:DP:GQ:PL:TP	0/1:218,23:241:73:73,0,3591:70	0/1:188,39:227:99:172,0,4233:70	0/1:217,31:248:74:74,0,5042:70
+9	78741390	rs7049138	G	A	1797.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=6.24;DB;DP=168;Dels=0.00;FS=4.00;HaplotypeScore=1.09;MLEAC=3;MLEAF=0.500;MQ=55.32;MQ0=2;MQRankSum=-1.673e+00;QD=16.34;ReadPosRankSum=-6.260e-01;SB=-7.740e+02;VQSLOD=5.19;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:37,33:70:99:828,0,918:80	1|1:0,40:40:81:1014,81,0:80	0|0:58,0:58:99:0,129,1403:80
+9	89010476	rs164937	T	C	736.24	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.977e+00;DB;DP=216;Dels=0.00;FS=1.48;HaplotypeScore=1.06;MLEAC=1;MLEAF=0.167;MQ=39.79;MQ0=9;MQRankSum=-3.028e+00;QD=9.56;ReadPosRankSum=0.542;SB=-4.240e+02;VQSLOD=2.08;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:66,0:66:99:0,174,2097:127	0|1:40,37:77:99:771,0,876:127	0|0:73,0:73:99:0,183,2147:127
+9	98491693	rs12337935	C	A	1474.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=2.10;DB;DP=97;Dels=0.00;FS=14.28;HaplotypeScore=1.77;MLEAC=4;MLEAF=0.667;MQ=58.64;MQ0=0;MQRankSum=-2.240e-01;QD=15.20;ReadPosRankSum=1.17;SB=-6.430e+02;VQSLOD=5.80;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:14,12:26:99:348,0,352:63	1|1:0,28:29:63:781,63,0:63	0|1:17,25:42:99:387,0,364:63
+9	109619207	rs4743032	A	T	3810.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-2.859e+00;DB;DP=214;Dels=0.00;FS=10.28;HaplotypeScore=0.322;MLEAC=3;MLEAF=0.500;MQ=59.59;MQ0=0;MQRankSum=0.557;QD=25.07;ReadPosRankSum=-8.360e-01;SB=-2.019e+03;VQSLOD=8.14;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:37,39:76:99:1185,0,1225:127	1|1:0,76:76:99:2625,202,0:127	0|0:62,0:62:99:0,156,2049:127
+9	118670009	rs66523513	CT	C	5633	PASS	AC=6;AF=1.00;AN=6;BaseQRankSum=-6.600e-02;DB;DP=222;FS=6.40;HaplotypeScore=30.72;MLEAC=6;MLEAF=1.00;MQ=59.97;MQ0=0;MQRankSum=0.490;QD=25.37;RPA=11,10;RU=T;ReadPosRankSum=2.43;SB=-2.667e+03;STR;VQSLOD=3.39;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:6,71:78:99:2079,216,0:120	1|1:10,54:65:99:1524,120,0:120	1|1:9,69:79:99:2030,209,0:120
+9	130235282	.	A	G	166.26	VQSRTrancheSNP99.90to100.00	AC=2;AF=0.333;AN=6;BaseQRankSum=-8.543e+00;DP=232;Dels=0.00;FS=233.04;HaplotypeScore=3.00;MLEAC=2;MLEAF=0.333;MQ=59.04;MQ0=0;MQRankSum=-2.038e+00;QD=1.15;ReadPosRankSum=-7.649e+00;SB=-3.100e-03;VQSLOD=-1.398e+02;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:74,14:88:99:0,108,2160:59	0|1:42,36:79:60:60,0,966:59	0|1:47,18:65:99:145,0,922:59
+9	138617823	rs55724592	C	T	53.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.800e-01;DB;DP=72;Dels=0.00;FS=8.08;HaplotypeScore=1.02;MLEAC=1;MLEAF=0.167;MQ=58.90;MQ0=0;MQRankSum=0.851;QD=2.66;ReadPosRankSum=-3.440e-01;SB=-9.096e+01;VQSLOD=4.27;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:20,0:20:48:0,48,580:44	0|0:32,0:32:48:0,48,577:44	0|1:10,10:20:88:88,0,199:44
+10	4588547	rs313427	C	T	1985.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=3.69;DB;DP=204;Dels=0.00;FS=1.81;HaplotypeScore=0.614;MLEAC=2;MLEAF=0.333;MQ=59.73;MQ0=0;MQRankSum=0.241;QD=14.18;ReadPosRankSum=0.717;SB=-1.082e+03;VQSLOD=9.78;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:39,35:74:99:1029,0,1182:127	1|0:32,34:66:99:995,0,1024:127	0|0:64,0:64:99:0,175,2242:127
+10	11560326	rs4424580	C	T	1027.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-1.780e-01;DB;DP=207;Dels=0.00;FS=0.573;HaplotypeScore=2.20;MLEAC=2;MLEAF=0.333;MQ=59.24;MQ0=0;MQRankSum=-9.880e-01;QD=7.78;ReadPosRankSum=-4.920e-01;SB=-7.450e+02;VQSLOD=8.46;culprit=QD	GT:AD:DP:GQ:PL:TP	1|0:41,32:73:99:609,0,930:96	1|0:29,30:59:99:457,0,570:96	0|0:74,1:75:96:0,96,1185:96
+10	19567676	rs61458006	G	T	599.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.610e+00;DB;DP=195;Dels=0.00;FS=0.844;HaplotypeScore=0.879;MLEAC=1;MLEAF=0.167;MQ=59.57;MQ0=0;MQRankSum=-1.910e-01;QD=11.31;ReadPosRankSum=-1.635e+00;SB=-2.780e+02;VQSLOD=9.36;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:75,0:75:99:0,208,2645:127	0|1:30,23:53:99:634,0,915:127	0|0:67,0:67:99:0,199,2540:127
+10	29082980	.	G	C	42.53	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=-1.216e+00;DP=107;Dels=0.00;FS=60.98;HaplotypeScore=1.09;MLEAC=3;MLEAF=0.500;MQ=55.72;MQ0=0;MQRankSum=-6.330e-01;QD=0.400;ReadPosRankSum=-4.307e+00;SB=-2.798e-01;VQSLOD=-1.117e+01;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:30,12:43:12:12,0,757:12	0/1:19,11:30:35:35,0,429:12	0/1:25,9:34:34:34,0,388:12
+10	38560911	rs80189231	T	A	1072.26	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=0.103;DB;DP=356;Dels=0.00;FS=12.04;HaplotypeScore=5.40;MLEAC=3;MLEAF=0.500;MQ=49.74;MQ0=6;MQRankSum=-2.686e+00;QD=3.01;ReadPosRankSum=0.797;SB=-1.690e+02;VQSLOD=-3.513e+00;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:109,26:135:99:389,0,2879:127	0/1:84,27:111:99:539,0,2214:127	0/1:93,17:110:99:183,0,2277:127
+10	46605359	.	CT	C	883.20	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=1.62;DP=136;FS=9.66;HaplotypeScore=4.70;MLEAC=3;MLEAF=0.500;MQ=22.12;MQ0=1;MQRankSum=0.368;QD=8.57;RPA=7,6;RU=T;ReadPosRankSum=-1.076e+00;SB=-1.190e+02;STR;VQSLOD=2.55;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:33,0:32:90:0,90,1016:25	0|1:66,15:81:99:303,0,1810:25	0|1:2,19:20:0:634,54,0:25
+10	56495833	rs6481118	G	A	7633.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=212;Dels=0.00;FS=0.00;HaplotypeScore=0.333;MLEAC=6;MLEAF=1.00;MQ=54.64;MQ0=0;QD=36.00;SB=-2.091e+03;VQSLOD=8.67;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,62:62:99:2383,184,0:127	1|1:1,67:68:99:2375,184,0:127	1|1:0,82:82:99:2875,223,0:127
+10	65355538	rs10733794	A	G	2464.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-8.392e+00;DB;DP=193;Dels=0.00;FS=7.47;HaplotypeScore=2.54;MLEAC=3;MLEAF=0.500;MQ=58.06;MQ0=2;MQRankSum=0.999;QD=18.96;ReadPosRankSum=-1.229e+00;SB=-1.065e+03;VQSLOD=6.39;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:33,32:65:99:830,0,1039:127	1|1:1,64:65:99:1679,153,0:127	0|0:63,0:63:99:0,159,2042:127
+10	74020452	rs72806301	C	A	1116.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-2.155e+00;DB;DP=135;Dels=0.00;FS=3.28;HaplotypeScore=0.872;MLEAC=2;MLEAF=0.333;MQ=58.76;MQ0=0;MQRankSum=-8.180e-01;QD=11.88;ReadPosRankSum=1.48;SB=-6.800e+02;VQSLOD=7.27;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|1:20,27:47:99:658,0,446:104	0|0:41,0:41:99:0,105,1324:104	1|0:25,22:47:99:497,0,482:104
+10	85258657	rs4454662	C	A	7638.01	PASS	AC=6;AF=1.00;AN=6;BaseQRankSum=1.72;DB;DP=223;Dels=0.00;FS=4.52;HaplotypeScore=1.13;MLEAC=6;MLEAF=1.00;MQ=58.32;MQ0=0;MQRankSum=-1.230e+00;QD=34.25;ReadPosRankSum=1.15;SB=-2.841e+03;VQSLOD=7.65;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:1,64:65:99:2156,169,0:127	1|1:0,89:89:99:2982,238,0:127	1|1:0,69:69:99:2500,196,0:127
+10	95435201	rs2422323	C	T	4017.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=6.44;DB;DP=203;Dels=0.00;FS=13.13;HaplotypeScore=3.24;MLEAC=4;MLEAF=0.667;MQ=55.24;MQ0=0;MQRankSum=1.17;QD=19.79;ReadPosRankSum=-6.550e-01;SB=-2.177e+03;VQSLOD=4.60;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:38,45:83:99:1327,0,931:127	1|1:1,63:64:99:1966,156,0:127	0|1:30,25:56:99:724,0,807:127
+10	106444111	rs72813617	A	G	632.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-8.380e-01;DB;DP=197;Dels=0.00;FS=4.12;HaplotypeScore=1.82;MLEAC=1;MLEAF=0.167;MQ=59.35;MQ0=0;MQRankSum=-1.142e+00;QD=12.40;ReadPosRankSum=-1.947e+00;SB=-2.390e+02;VQSLOD=7.62;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|0:84,0:84:99:0,241,3129:127	0|0:62,0:62:99:0,159,2008:127	0|1:27,24:51:99:667,0,584:127
+10	116646860	rs4752347	T	A	4159.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-3.459e+00;DB;DP=197;Dels=0.00;FS=3.52;HaplotypeScore=0.631;MLEAC=4;MLEAF=0.667;MQ=59.27;MQ0=0;MQRankSum=1.05;QD=21.11;ReadPosRankSum=-1.271e+00;SB=-2.347e+03;VQSLOD=8.33;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|1:0,63:63:99:2191,169,0:127	1|0:31,35:66:99:1031,0,863:127	1|0:31,37:68:99:937,0,774:127
+10	125452232	rs7900707	A	G	3211.24	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-6.610e+00;DB;DP=189;Dels=0.00;FS=17.74;HaplotypeScore=0.00;MLEAC=4;MLEAF=0.667;MQ=59.66;MQ0=0;MQRankSum=0.614;QD=16.99;ReadPosRankSum=-3.210e-01;SB=-1.553e+03;VQSLOD=6.90;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,61:61:99:1944,168,0:127	1|0:44,26:70:99:627,0,1357:127	1|0:29,29:58:99:682,0,862:127
+10	132949760	rs10829924	A	C	684.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.328e+00;DB;DP=215;Dels=0.00;FS=15.46;HaplotypeScore=1.32;MLEAC=1;MLEAF=0.167;MQ=59.70;MQ0=0;MQRankSum=-1.053e+00;QD=10.53;ReadPosRankSum=-2.893e+00;SB=-2.920e+02;VQSLOD=5.89;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|0:80,0:81:99:0,229,2999:127	0|0:69,0:69:99:0,175,2268:127	0|1:35,30:65:99:719,0,1046:127
+11	3839556	rs5789310	CA	C	803.10	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.138;DB;DP=170;FS=4.50;HaplotypeScore=36.64;MLEAC=3;MLEAF=0.500;MQ=55.95;MQ0=2;MQRankSum=2.28;QD=4.72;RPA=17,16;RU=A;ReadPosRankSum=3.21;SB=-3.839e+02;STR;VQSLOD=1.81;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:35,17:55:32:329,0,32:3	0/1:45,9:57:8:276,0,8:3	0/1:30,19:52:1:244,0,1:3
+11	10741836	rs72853043	G	A	175.24	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=0.127;DB;DP=174;Dels=0.00;FS=7.09;HaplotypeScore=7.46;MLEAC=1;MLEAF=0.167;MQ=55.72;MQ0=1;MQRankSum=-1.291e+00;QD=3.44;ReadPosRankSum=-1.185e+00;SB=-2.220e+02;VQSLOD=1.61;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:78,0:78:99:0,105,1278:65	0|0:42,0:45:66:0,66,802:65	0|1:21,29:51:99:210,0,469:65
+11	19325064	rs793250	G	A	5752.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=5.08;DB;DP=203;Dels=0.00;FS=2.53;HaplotypeScore=0.817;MLEAC=5;MLEAF=0.833;MQ=59.35;MQ0=0;MQRankSum=-6.100e-02;QD=28.34;ReadPosRankSum=0.095;SB=-3.093e+03;VQSLOD=9.46;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,71:71:99:2527,190,0:127	1|1:0,78:78:99:2626,205,0:127	1|0:32,22:54:99:599,0,768:127
+11	26026566	rs7942277	T	C	5414.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=176;Dels=0.00;FS=0.00;HaplotypeScore=0.245;MLEAC=6;MLEAF=1.00;MQ=58.89;MQ0=0;QD=30.76;SB=-2.812e+03;VQSLOD=11.05;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,53:53:99:1707,132,0:122	1|1:0,53:53:99:1581,123,0:122	1|1:0,70:70:99:2126,163,0:122
+11	35980461	rs263087	A	T	3494.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-7.010e-01;DB;DP=186;Dels=0.00;FS=0.00;HaplotypeScore=2.96;MLEAC=4;MLEAF=0.667;MQ=59.34;MQ0=0;MQRankSum=0.836;QD=18.79;ReadPosRankSum=7.000e-03;SB=-1.535e+03;VQSLOD=7.64;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:36,35:71:99:1001,0,1165:127	0|1:30,26:56:99:710,0,796:127	1|1:0,59:59:99:1783,144,0:127
+11	44985620	rs7106313	C	T	338.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=2.18;DB;DP=162;Dels=0.00;FS=4.84;HaplotypeScore=2.00;MLEAC=1;MLEAF=0.167;MQ=56.94;MQ0=0;MQRankSum=2.02;QD=8.67;ReadPosRankSum=0.983;SB=-2.190e+02;VQSLOD=6.66;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:79,0:80:99:0,174,2084:72	0|0:43,0:43:72:0,72,877:72	0|1:20,18:39:99:373,0,365:72
+11	55040918	rs187118824	A	T	1019.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.08;DB;DP=65;Dels=0.020;FS=12.72;HaplotypeScore=0.977;MLEAC=2;MLEAF=0.333;MQ=56.64;MQ0=1;MQRankSum=0.323;QD=25.48;ReadPosRankSum=0.873;SB=-2.060e+01;VQSLOD=4.42;culprit=DP	GT:AD:DP:GQ:PL:TP	0|1:2,9:11:48:325,0,48:50	0|0:24,1:25:63:0,63,833:50	1|0:6,22:28:51:733,0,51:50
+11	65339346	rs1194104	C	T	1804.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-2.465e+00;DB;DP=189;Dels=0.00;FS=8.43;HaplotypeScore=2.27;MLEAC=2;MLEAF=0.333;MQ=59.31;MQ0=0;MQRankSum=-1.200e-01;QD=13.67;ReadPosRankSum=-3.060e-01;SB=-1.061e+03;VQSLOD=7.95;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:57,0:57:99:0,157,2050:127	0|1:30,35:65:99:781,0,822:127	0|1:23,44:67:99:1062,0,690:127
+11	75978490	rs655877	G	C	2986.25	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-8.460e-01;DB;DP=127;Dels=0.00;FS=5.43;HaplotypeScore=0.263;MLEAC=5;MLEAF=0.833;MQ=59.42;MQ0=0;MQRankSum=0.026;QD=23.51;ReadPosRankSum=0.168;SB=-1.613e+03;VQSLOD=7.04;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,50:50:99:1405,111,0:101	1|1:0,45:46:99:1269,102,0:101	1|0:17,14:31:99:354,0,469:101
+11	86061661	rs11825046	T	C	6014.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-3.250e+00;DB;DP=282;Dels=0.00;FS=0.960;HaplotypeScore=1.64;MLEAC=4;MLEAF=0.667;MQ=59.57;MQ0=0;MQRankSum=1.06;QD=21.33;ReadPosRankSum=-1.763e+00;SB=-3.081e+03;VQSLOD=7.35;culprit=DP	GT:AD:DP:GQ:PL:TP	1|0:54,49:103:99:1498,0,1848:127	1|1:0,83:83:99:2924,223,0:127	0|1:44,52:96:99:1592,0,1380:127
+11	96559202	rs72048706	C	CAA	373.24	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-7.960e-01;DB;DP=121;FS=1.54;HaplotypeScore=64.55;MLEAC=4;MLEAF=0.667;MQ=39.96;MQ0=6;MQRankSum=-5.390e-01;QD=3.08;RPA=21,23;RU=A;ReadPosRankSum=-3.583e+00;SB=-1.985e+02;STR;VQSLOD=1.31;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|0:20,8:32:24:111,0,24:22	1|1:40,0:41:29:180,29,0:22	0|1:39,0:39:41:133,0,41:22
+11	103989190	rs1545865	T	C	4915.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-4.030e+00;DB;DP=219;Dels=0.00;FS=1.23;HaplotypeScore=1.21;MLEAC=4;MLEAF=0.667;MQ=59.37;MQ0=0;MQRankSum=1.10;QD=22.44;ReadPosRankSum=0.773;SB=-2.213e+03;VQSLOD=8.91;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|1:23,40:63:99:1203,0,669:127	0|1:36,52:88:99:1433,0,1136:127	1|1:0,68:68:99:2279,178,0:127
+11	113825129	rs1150234	G	A	2441.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=3.98;DB;DP=210;Dels=0.00;FS=0.00;HaplotypeScore=2.07;MLEAC=3;MLEAF=0.500;MQ=59.49;MQ0=0;MQRankSum=0.877;QD=11.63;ReadPosRankSum=0.262;SB=-1.513e+03;VQSLOD=9.04;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:30,33:63:99:881,0,774:127	0/1:46,33:80:99:726,0,1020:127	0/1:32,35:67:99:873,0,759:127
+11	123470819	rs1148095	T	C	6964.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-8.500e-01;DB;DP=242;Dels=0.00;FS=1.48;HaplotypeScore=1.39;MLEAC=5;MLEAF=0.833;MQ=59.25;MQ0=0;MQRankSum=-1.734e+00;QD=28.78;ReadPosRankSum=-7.490e-01;SB=-3.242e+03;VQSLOD=8.79;culprit=MQRankSum	GT:AD:DP:GQ:PL:TP	1|1:0,92:92:99:3408,265,0:127	1|0:35,51:86:99:1520,0,1059:127	1|1:0,64:64:99:2036,157,0:127
+11	132780959	rs61906922	C	T	1342.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=6.22;DB;DP=263;Dels=0.00;FS=0.601;HaplotypeScore=1.84;MLEAC=1;MLEAF=0.167;MQ=59.58;MQ0=0;MQRankSum=0.997;QD=15.25;ReadPosRankSum=-7.460e-01;SB=-6.890e+02;VQSLOD=8.81;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|0:87,0:87:99:0,250,2877:127	0|0:87,0:88:99:0,253,3009:127	0|1:43,45:88:99:1377,0,1138:127
+12	5922552	rs17786352	C	G	1874.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-7.386e+00;DB;DP=231;Dels=0.00;FS=0.00;HaplotypeScore=0.305;MLEAC=2;MLEAF=0.333;MQ=54.49;MQ0=0;MQRankSum=2.66;QD=13.11;ReadPosRankSum=1.04;SB=-9.400e+02;VQSLOD=4.75;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:44,35:79:99:897,0,1383:127	1|0:28,36:64:99:1016,0,734:127	0|0:88,0:88:99:0,238,3004:127
+12	12560642	rs10772559	G	T	501.28	VQSRTrancheSNP99.00to99.90	AC=4;AF=0.667;AN=6;BaseQRankSum=0.747;DB;DP=229;Dels=0.040;FS=17.41;HaplotypeScore=19.70;MLEAC=4;MLEAF=0.667;MQ=49.37;MQ0=0;MQRankSum=-3.656e+00;QD=2.19;ReadPosRankSum=-5.397e+00;SB=-2.196e+03;VQSLOD=-1.020e+01;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|1:0,66:66:24:273,24,0:24	1|0:29,45:74:99:148,0,702:24	1|0:33,46:80:99:122,0,781:24
+12	21328424	rs4149040	G	C	2565.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=0.888;DB;DP=252;Dels=0.00;FS=9.75;HaplotypeScore=0.608;MLEAC=2;MLEAF=0.333;MQ=59.49;MQ0=0;MQRankSum=1.17;QD=15.18;ReadPosRankSum=0.966;SB=-1.181e+03;VQSLOD=7.55;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:40,49:89:99:1534,0,1308:127	0|0:83,0:83:99:0,241,3117:127	1|0:45,35:80:99:1070,0,1402:127
+12	29935607	rs7305813	A	C	810.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=0.307;DB;DP=203;Dels=0.00;FS=14.33;HaplotypeScore=1.98;MLEAC=1;MLEAF=0.167;MQ=59.57;MQ0=0;MQRankSum=-1.640e-01;QD=12.86;ReadPosRankSum=-7.330e-01;SB=-2.950e+02;VQSLOD=7.90;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:71,0:71:99:0,193,2479:127	0|0:69,0:69:99:0,196,2464:127	0|1:28,35:63:99:845,0,847:127
+12	39118960	rs79977305	G	A	1330.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=6.31;DB;DP=263;Dels=0.00;FS=0.597;HaplotypeScore=1.46;MLEAC=1;MLEAF=0.167;MQ=58.83;MQ0=0;MQRankSum=1.92;QD=13.57;ReadPosRankSum=-5.480e-01;SB=-7.360e+02;VQSLOD=7.37;culprit=MQRankSum	GT:AD:DP:GQ:PL:TP	0|0:81,0:81:99:0,241,2869:127	0|0:84,0:84:99:0,229,2712:127	0|1:51,47:98:99:1365,0,1343:127
+12	48120010	rs3829317	A	C	4015.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=1.66;DB;DP=162;Dels=0.00;FS=1.83;HaplotypeScore=2.18;MLEAC=5;MLEAF=0.833;MQ=59.48;MQ0=0;MQRankSum=0.154;QD=24.78;ReadPosRankSum=0.482;SB=-2.240e+03;VQSLOD=8.13;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,63:63:99:2024,163,0:110	1|0:24,27:51:99:550,0,540:110	1|1:0,48:48:99:1441,111,0:110
+12	58867437	rs140632614	G	T	829.25	VQSRTrancheSNP99.00to99.90	AC=4;AF=0.667;AN=6;BaseQRankSum=1.41;DB;DP=144;Dels=0.00;FS=68.61;HaplotypeScore=0.867;MLEAC=4;MLEAF=0.667;MQ=35.15;MQ0=16;MQRankSum=-7.440e+00;QD=5.76;ReadPosRankSum=-2.450e-01;SB=-1.011e+00;VQSLOD=-1.649e+01;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:34,24:58:99:291,0,1100:44	0|1:42,8:50:61:61,0,1319:44	1|1:1,35:36:45:519,45,0:44
+12	68921960	.	TATTTTC	T	803.22	VQSRTrancheINDEL99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=9.86;DP=270;FS=190.60;HaplotypeScore=223.07;MLEAC=3;MLEAF=0.500;MQ=54.84;MQ0=1;MQRankSum=-4.552e+00;QD=2.97;ReadPosRankSum=-6.674e+00;SB=-1.330e-03;VQSLOD=-1.777e+01;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:69,22:95:99:394,0,4974:101	0/1:87,0:86:99:355,0,5072:101	0/1:83,0:84:99:102,0,5546:101
+12	79238948	rs10778234	C	T	3719.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=8.19;DB;DP=241;Dels=0.00;FS=7.07;HaplotypeScore=0.245;MLEAC=3;MLEAF=0.500;MQ=59.41;MQ0=0;MQRankSum=-3.810e-01;QD=15.43;ReadPosRankSum=0.579;SB=-1.864e+03;VQSLOD=7.81;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:42,35:77:99:1049,0,1213:127	0/1:37,32:69:99:988,0,957:127	0/1:42,53:95:99:1682,0,1062:127
+12	90856710	rs825945	T	C	1096.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-6.342e+00;DB;DP=193;Dels=0.00;FS=2.16;HaplotypeScore=0.00;MLEAC=2;MLEAF=0.333;MQ=59.64;MQ0=0;MQRankSum=2.07;QD=9.70;ReadPosRankSum=-1.697e+00;SB=-5.710e+02;VQSLOD=7.31;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:80,0:80:99:0,232,3042:127	0|1:30,21:51:99:511,0,921:127	0|1:36,26:62:99:624,0,1085:127
+12	101460237	rs7965836	C	T	3485.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-2.070e+00;DB;DP=247;Dels=0.00;FS=2.89;HaplotypeScore=0.656;MLEAC=3;MLEAF=0.500;MQ=59.83;MQ0=0;MQRankSum=-6.550e-01;QD=14.11;ReadPosRankSum=-9.830e-01;SB=-1.581e+03;VQSLOD=8.49;culprit=MQ	GT:AD:DP:GQ:PL:TP	0/1:40,43:83:99:1287,0,1179:127	0/1:44,36:80:99:1068,0,1363:127	0/1:43,41:84:99:1130,0,1321:127
+12	112830546	rs150699511	C	A	487.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.014e+00;DB;DP=179;Dels=0.00;FS=0.860;HaplotypeScore=2.34;MLEAC=1;MLEAF=0.167;MQ=59.16;MQ0=0;MQRankSum=1.14;QD=8.86;ReadPosRankSum=0.950;SB=-2.870e+02;VQSLOD=8.11;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:62,0:62:99:0,166,2141:127	0|1:34,21:55:99:522,0,751:127	0|0:62,0:62:99:0,141,1808:127
+12	122942070	rs10744217	A	G	1812.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.353e+00;DB;DP=179;Dels=0.00;FS=0.663;HaplotypeScore=1.42;MLEAC=3;MLEAF=0.500;MQ=58.69;MQ0=0;MQRankSum=0.992;QD=15.10;ReadPosRankSum=1.08;SB=-5.860e+02;VQSLOD=8.48;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:35,36:71:99:762,0,1100:92	1|1:0,48:49:93:1095,93,0:92	0|0:59,0:59:99:0,120,1560:92
+12	130522866	rs1613499	C	T	3975.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=130;Dels=0.00;FS=0.00;HaplotypeScore=0.633;MLEAC=6;MLEAF=1.00;MQ=59.11;MQ0=0;QD=30.58;SB=-1.386e+03;VQSLOD=10.23;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,57:57:99:1939,144,0:73	1|1:0,34:34:75:990,75,0:73	1|1:0,39:39:78:1046,78,0:73
+13	21520045	rs9509464	A	C	5103.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=195;Dels=0.00;FS=0.00;HaplotypeScore=1.61;MLEAC=6;MLEAF=1.00;MQ=47.37;MQ0=0;QD=26.17;SB=-2.582e+03;VQSLOD=5.19;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:0,71:71:99:2106,186,0:98	1|1:0,78:78:99:1856,162,0:98	1|1:0,46:46:99:1141,99,0:98
+13	28463938	rs954750	C	T	2740.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=3.21;DB;DP=242;Dels=0.00;FS=0.00;HaplotypeScore=4.01;MLEAC=2;MLEAF=0.333;MQ=59.46;MQ0=0;MQRankSum=0.880;QD=16.61;ReadPosRankSum=-6.170e-01;SB=-1.312e+03;VQSLOD=6.77;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:40,43:83:99:1362,0,1242:127	1|0:35,47:82:99:1417,0,1010:127	0|0:76,0:77:99:0,205,2635:127
+13	37484693	rs1571317	T	C	971.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.315e+00;DB;DP=229;Dels=0.00;FS=3.05;HaplotypeScore=0.660;MLEAC=1;MLEAF=0.167;MQ=58.51;MQ0=0;MQRankSum=1.88;QD=12.78;ReadPosRankSum=-3.430e-01;SB=-5.750e+02;VQSLOD=7.31;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:94,0:94:99:0,253,3258:127	0|1:35,41:76:99:1006,0,924:127	0|0:59,0:59:99:0,147,1872:127
+13	46407442	rs11147990	G	A	2668.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=1.23;DB;DP=199;Dels=0.00;FS=0.530;HaplotypeScore=1.80;MLEAC=3;MLEAF=0.500;MQ=58.99;MQ0=0;MQRankSum=0.023;QD=20.21;ReadPosRankSum=-4.520e-01;SB=-1.651e+03;VQSLOD=9.20;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|1:36,33:69:99:994,0,1056:127	0|0:67,0:67:99:0,141,1821:127	1|1:0,63:63:99:1719,135,0:127
+13	56456878	rs2997102	C	A	9454.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=257;Dels=0.00;FS=0.00;HaplotypeScore=0.954;MLEAC=6;MLEAF=1.00;MQ=59.57;MQ0=0;QD=36.79;SB=-4.826e+03;VQSLOD=11.51;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,99:99:99:3692,280,0:127	1|1:0,88:88:99:3239,253,0:127	1|1:0,70:70:99:2523,193,0:127
+13	65275154	rs359338	G	A	1963.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.73;DB;DP=173;Dels=0.00;FS=3.63;HaplotypeScore=0.948;MLEAC=2;MLEAF=0.333;MQ=59.49;MQ0=0;MQRankSum=-6.760e-01;QD=14.54;ReadPosRankSum=0.399;SB=-1.054e+03;VQSLOD=8.45;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:31,28:59:99:883,0,990:108	1|0:39,37:76:99:1119,0,1112:108	0|0:38,0:38:99:0,108,1390:108
+13	74611546	rs73214804	C	T	639.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-4.870e-01;DB;DP=164;Dels=0.00;FS=0.00;HaplotypeScore=1.41;MLEAC=1;MLEAF=0.167;MQ=58.95;MQ0=0;MQRankSum=0.902;QD=11.21;ReadPosRankSum=-5.410e-01;SB=-3.000e+02;VQSLOD=8.88;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:53,0:53:99:0,135,1773:110	0|0:53,1:54:99:0,111,1440:110	0|1:24,33:57:99:674,0,388:110
+13	83670546	.	G	A	169.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=5.30;DP=178;Dels=0.00;FS=0.00;HaplotypeScore=36.51;MLEAC=2;MLEAF=0.333;MQ=42.20;MQ0=11;MQRankSum=-6.654e+00;QD=1.38;ReadPosRankSum=-7.610e-01;SB=-1.340e+02;VQSLOD=-2.041e+01;culprit=QD	GT:AD:DP:GQ:PL:TP	0|1:37,16:53:99:139,0,523:90	0|0:51,4:55:91:0,91,1393:90	1|0:58,12:70:69:69,0,1214:90
+13	92742124	rs2148446	G	A	1884.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-2.340e+00;DB;DP=213;Dels=0.00;FS=0.00;HaplotypeScore=0.316;MLEAC=2;MLEAF=0.333;MQ=59.37;MQ0=0;MQRankSum=-2.935e+00;QD=12.99;ReadPosRankSum=-5.790e-01;SB=-9.540e+02;VQSLOD=7.28;culprit=MQRankSum	GT:AD:DP:GQ:PL:TP	0|1:38,38:76:99:1130,0,1190:127	0|0:68,0:68:99:0,190,2454:127	1|0:38,31:69:99:793,0,1094:127
+13	101976707	rs527328	A	T	9240.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=259;Dels=0.00;FS=0.00;HaplotypeScore=0.245;MLEAC=6;MLEAF=1.00;MQ=53.28;MQ0=0;QD=35.68;SB=-4.696e+03;VQSLOD=7.52;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,92:92:99:3410,262,0:127	1|1:0,88:88:99:3195,247,0:127	1|1:1,78:79:99:2635,202,0:127
+13	109990322	rs7328109	T	C	7198.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-2.487e+00;DB;DP=245;Dels=0.00;FS=5.89;HaplotypeScore=1.88;MLEAC=5;MLEAF=0.833;MQ=59.60;MQ0=0;MQRankSum=-2.360e-01;QD=29.38;ReadPosRankSum=0.136;SB=-3.593e+03;VQSLOD=8.89;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,79:79:99:2825,220,0:127	1|0:33,54:87:99:1591,0,933:127	1|1:0,79:79:99:2782,214,0:127
+14	20313371	rs10137604	A	C	2154.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-4.894e+00;DB;DP=255;Dels=0.00;FS=0.00;HaplotypeScore=2.05;MLEAC=2;MLEAF=0.333;MQ=56.32;MQ0=1;MQRankSum=1.61;QD=13.72;ReadPosRankSum=0.126;SB=-1.124e+03;VQSLOD=5.62;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:40,48:88:99:1426,0,1229:127	0|0:98,0:98:99:0,268,3527:127	1|0:43,26:69:99:767,0,1284:127
+14	28032147	rs67442200	AT	A	9959	PASS	AC=6;AF=1.00;AN=6;DB;DP=259;FS=0.00;HaplotypeScore=15.29;MLEAC=6;MLEAF=1.00;MQ=60.66;MQ0=0;QD=38.45;RPA=3,2;RU=T;SB=-4.646e+03;STR;VQSLOD=6.01;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:2,86:91:99:3493,259,0:127	1|1:3,76:79:99:3025,226,0:127	1|1:3,86:89:99:3441,256,0:127
+14	38160457	rs2181345	A	C	4683.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=169;Dels=0.00;FS=0.00;HaplotypeScore=2.54;MLEAC=6;MLEAF=1.00;MQ=59.00;MQ0=0;QD=27.71;SB=-2.390e+03;VQSLOD=9.99;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,56:56:99:1818,141,0:107	1|1:0,58:58:99:1523,123,0:107	1|1:0,53:55:99:1342,108,0:107
+14	47568119	rs1952206	T	C	3399.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-9.721e+00;DB;DP=230;Dels=0.00;FS=0.483;HaplotypeScore=0.658;MLEAC=3;MLEAF=0.500;MQ=59.54;MQ0=0;MQRankSum=-4.790e-01;QD=14.78;ReadPosRankSum=1.26;SB=-1.667e+03;VQSLOD=9.16;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0/1:41,43:84:99:1239,0,1315:127	0/1:28,43:71:99:1178,0,816:127	0/1:40,35:75:99:982,0,1314:127
+14	56951735	rs1189276	G	A	6939.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=3.88;DB;DP=235;Dels=0.00;FS=9.37;HaplotypeScore=0.906;MLEAC=5;MLEAF=0.833;MQ=59.52;MQ0=0;MQRankSum=-5.500e-01;QD=29.53;ReadPosRankSum=1.10;SB=-3.438e+03;VQSLOD=8.76;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:1,92:93:99:3558,274,0:127	1|1:0,60:60:99:2120,165,0:127	1|0:40,42:82:99:1261,0,1194:127
+14	68051087	rs11628035	G	A	4028.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=3.93;DB;DP=236;Dels=0.00;FS=8.18;HaplotypeScore=1.33;MLEAC=3;MLEAF=0.500;MQ=58.83;MQ0=0;MQRankSum=1.83;QD=25.49;ReadPosRankSum=2.59;SB=-1.989e+03;VQSLOD=6.79;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|0:38,39:77:99:1265,0,1112:127	1|1:0,81:81:99:2763,214,0:127	0|0:78,0:78:99:0,208,2673:127
+14	77813103	rs59474357	G	GT	328.58	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-2.653e+00;DB;DP=164;FS=5.22;HaplotypeScore=117.86;MLEAC=5;MLEAF=0.833;MQ=52.18;MQ0=0;MQRankSum=1.26;QD=2.00;RPA=24,25;RU=T;ReadPosRankSum=-1.030e+00;SB=-1.639e+02;STR;VQSLOD=2.16;culprit=QD	GT:AD:DP:GQ:PL:TP	1|0:51,1:53:18:105,0,18:6	1|1:58,1:59:13:150,13,0:6	0|1:34,13:52:1:123,6,0:6
+14	87263523	rs2542229	A	C	8104.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=239;Dels=0.00;FS=0.00;HaplotypeScore=0.631;MLEAC=6;MLEAF=1.00;MQ=59.17;MQ0=0;QD=33.91;SB=-4.393e+03;VQSLOD=11.30;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,77:77:99:2810,214,0:127	1|1:0,85:85:99:2877,223,0:127	1|1:0,77:77:99:2417,187,0:127
+14	96490389	rs72702859	C	G	3394.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-6.529e+00;DB;DP=264;Dels=0.00;FS=2.75;HaplotypeScore=3.13;MLEAC=3;MLEAF=0.500;MQ=59.49;MQ0=0;MQRankSum=-1.258e+00;QD=18.25;ReadPosRankSum=-9.610e-01;SB=-1.966e+03;VQSLOD=6.34;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:34,52:86:99:1358,0,886:127	1|1:0,100:100:99:2036,180,0:127	0|0:78,0:78:99:0,184,2393:127
+14	106085773	rs2955055	C	T	2115.26	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=-7.460e-01;DB;DP=172;Dels=0.00;FS=18.42;HaplotypeScore=2.95;MLEAC=3;MLEAF=0.500;MQ=35.68;MQ0=18;MQRankSum=3.25;QD=12.30;ReadPosRankSum=0.100;SB=-5.530e+02;VQSLOD=1.29;culprit=MQ	GT:AD:DP:GQ:PL:TP	0/1:32,33:65:99:600,0,554:80	0/1:30,42:72:99:1001,0,400:80	0/1:12,23:35:80:553,0,80:80
+15	23743658	rs142070302	T	A	1007.26	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.164e+00;DB;DP=408;Dels=0.00;FS=166.85;HaplotypeScore=53.54;MLEAC=3;MLEAF=0.500;MQ=38.96;MQ0=14;MQRankSum=-6.283e+00;QD=2.47;ReadPosRankSum=2.49;SB=-1.079e-02;VQSLOD=-3.048e+02;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:104,39:143:99:365,0,2802:45	0/1:99,40:139:99:636,0,2335:45	0/1:97,28:126:45:45,0,2324:45
+15	32615218	.	G	GA	82.61	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.361;DP=225;FS=0.00;HaplotypeScore=2.49;MLEAC=4;MLEAF=0.667;MQ=5.76;MQ0=211;MQRankSum=-8.760e-01;QD=0.560;RPA=9,10;RU=A;ReadPosRankSum=-1.159e+00;SB=-1.330e-03;STR;VQSLOD=3.74;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:41,19:3:9:88,9,0:5	1|0:62,24:5:44:44,0,77:5	1|0:76,0:1:2:0,3,31:5
+15	42065422	rs2925337	A	C	5231.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=176;Dels=0.00;FS=0.00;HaplotypeScore=0.00;MLEAC=6;MLEAF=1.00;MQ=59.68;MQ0=0;QD=29.72;SB=-3.112e+03;VQSLOD=11.03;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,54:54:99:1770,138,0:127	1|1:0,68:68:99:1750,138,0:127	1|1:0,54:54:99:1711,132,0:127
+15	53677501	.	T	G	770.26	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=-8.969e+00;DP=210;Dels=0.00;FS=347.47;HaplotypeScore=2.09;MLEAC=3;MLEAF=0.500;MQ=58.31;MQ0=0;MQRankSum=0.438;QD=3.67;ReadPosRankSum=-6.409e+00;SB=-5.499e-03;VQSLOD=-3.071e+02;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:59,20:79:94:94,0,1389:94	0/1:41,31:72:99:438,0,721:94	0/1:37,21:59:99:277,0,521:94
+15	62088952	rs35033959	A	T	3546.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.220e+00;DB;DP=241;Dels=0.00;FS=14.29;HaplotypeScore=0.277;MLEAC=3;MLEAF=0.500;MQ=59.77;MQ0=0;MQRankSum=-1.969e+00;QD=14.71;ReadPosRankSum=0.341;SB=-1.970e+03;VQSLOD=6.38;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:45,44:89:99:1265,0,1533:127	0/1:34,38:72:99:1133,0,1137:127	0/1:41,39:80:99:1148,0,1303:127
+15	71657506	.	A	G	140.40	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=-1.611e+00;DP=133;Dels=0.00;FS=35.59;HaplotypeScore=4.06;MLEAC=2;MLEAF=0.333;MQ=51.29;MQ0=1;MQRankSum=-3.344e+00;QD=1.53;ReadPosRankSum=-3.999e+00;SB=-5.015e+01;VQSLOD=-4.805e+00;culprit=QD	GT:AD:DP:GQ:PL:TP	1|0:46,11:57:93:93,0,851:15	1|0:23,12:35:86:86,0,299:15	0|0:33,8:41:15:0,15,503:15
+15	83241984	rs11336258	AT	A	1748.21	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-1.821e+00;DB;DP=199;FS=5.74;HaplotypeScore=29.94;MLEAC=4;MLEAF=0.667;MQ=59.67;MQ0=0;MQRankSum=1.12;QD=8.78;RPA=15,14;RU=T;ReadPosRankSum=-1.763e+00;SB=-7.830e+02;STR;VQSLOD=3.49;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:41,27:72:99:434,0,434:118	0|1:36,26:66:99:470,0,275:118	1|1:11,44:61:99:895,118,0:118
+15	92857342	rs12101550	A	G	2734.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-7.995e+00;DB;DP=226;Dels=0.00;FS=3.76;HaplotypeScore=1.57;MLEAC=3;MLEAF=0.500;MQ=59.41;MQ0=0;MQRankSum=0.761;QD=12.10;ReadPosRankSum=-5.870e-01;SB=-1.469e+03;VQSLOD=9.15;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:45,37:82:99:853,0,1356:127	0/1:29,40:69:99:966,0,852:127	0/1:38,37:75:99:954,0,1085:127
+15	100799787	rs4965610	C	T	2133.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=8.37;DB;DP=230;Dels=0.00;FS=1.04;HaplotypeScore=0.543;MLEAC=3;MLEAF=0.500;MQ=58.84;MQ0=0;MQRankSum=0.169;QD=9.28;ReadPosRankSum=-9.800e-02;SB=-1.328e+03;VQSLOD=7.88;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:40,36:76:99:948,0,701:127	0/1:45,38:83:99:761,0,635:127	0/1:35,36:71:99:463,0,706:127
+16	5754758	rs11644707	C	T	1012.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.78;DB;DP=161;Dels=0.00;FS=0.00;HaplotypeScore=2.46;MLEAC=2;MLEAF=0.333;MQ=59.71;MQ0=0;MQRankSum=0.699;QD=9.64;ReadPosRankSum=2.62;SB=-5.580e+02;VQSLOD=7.10;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|1:31,26:57:99:627,0,943:125	0|0:56,0:56:99:0,126,1597:125	1|0:32,16:48:99:424,0,785:125
+16	11397080	rs1019552	T	C	2295.44	PASS	AC=6;AF=1.00;AN=6;DB;DP=169;Dels=1.000e-02;FS=0.00;HaplotypeScore=8.22;MLEAC=6;MLEAF=1.00;MQ=59.32;MQ0=0;QD=13.58;SB=-2.379e+03;VQSLOD=4.38;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,71:71:96:1220,96,0:9	1|1:0,48:48:9:78,9,0:9	1|1:0,48:48:81:1035,81,0:9
+16	19633462	rs11371821	C	CT	239.23	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-4.097e+00;DB;DP=182;FS=1.34;HaplotypeScore=21.26;MLEAC=4;MLEAF=0.667;MQ=50.55;MQ0=0;MQRankSum=-1.358e+00;QD=1.31;RPA=22,23;RU=T;ReadPosRankSum=-3.963e+00;SB=-9.798e+01;STR;VQSLOD=2.31;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|0:61,0:63:45:70,0,45:24	1|1:44,15:58:28:192,28,0:24	0|1:52,0:60:28:28,0,37:24
+16	30509723	rs7193693	A	G	497.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-4.054e+00;DB;DP=167;Dels=0.00;FS=0.00;HaplotypeScore=1.16;MLEAC=1;MLEAF=0.167;MQ=57.89;MQ0=0;MQRankSum=-5.450e-01;QD=9.38;ReadPosRankSum=0.541;SB=-2.410e+02;VQSLOD=8.43;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:57,0:57:99:0,153,2009:101	0|0:57,0:57:99:0,102,1304:101	0|1:26,27:53:99:532,0,526:101
+16	34610294	rs72812776	C	T	603.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.361e+00;DB;DP=270;Dels=0.00;FS=6.07;HaplotypeScore=3.16;MLEAC=1;MLEAF=0.167;MQ=59.66;MQ0=0;MQRankSum=1.60;QD=7.83;ReadPosRankSum=0.296;SB=-2.820e+02;VQSLOD=3.37;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:123,0:123:99:0,343,4443:127	0|0:69,1:70:99:0,184,2397:127	0|1:48,29:77:99:638,0,1483:127
+16	55910673	rs17265788	G	C	2345.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=2.66;DB;DP=208;Dels=0.00;FS=3.16;HaplotypeScore=1.92;MLEAC=3;MLEAF=0.500;MQ=59.67;MQ0=0;MQRankSum=-3.330e-01;QD=16.63;ReadPosRankSum=-4.250e-01;SB=-1.468e+03;VQSLOD=8.37;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|1:33,33:66:99:769,0,761:122	0|0:67,0:67:99:0,123,1506:122	1|1:0,75:75:99:1621,132,0:122
+16	65776985	rs72784548	T	C	3527.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=5.44;DB;DP=195;Dels=0.00;FS=1.23;HaplotypeScore=0.879;MLEAC=4;MLEAF=0.667;MQ=58.78;MQ0=0;MQRankSum=1.63;QD=18.09;ReadPosRankSum=1.36;SB=-1.904e+03;VQSLOD=7.68;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|1:0,68:68:99:2351,181,0:127	1|0:33,28:61:99:586,0,710:127	1|0:31,35:66:99:590,0,468:127
+16	77418810	rs71137811	T	TG	7389	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=0.643;DB;DP=244;FS=2.25;HaplotypeScore=114.41;MLEAC=5;MLEAF=0.833;MQ=61.09;MQ0=0;MQRankSum=2.49;QD=30.28;ReadPosRankSum=2.98;SB=-2.597e+03;VQSLOD=2.91;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:8,84:93:99:3558,264,0:127	1|1:8,65:75:99:2723,179,0:127	1|0:42,32:76:99:1108,0,899:127
+16	83153777	rs4395063	T	C	3143.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-1.771e+00;DB;DP=205;Dels=0.00;FS=1.80;HaplotypeScore=1.04;MLEAC=4;MLEAF=0.667;MQ=59.55;MQ0=0;MQRankSum=-1.380e+00;QD=15.33;ReadPosRankSum=0.424;SB=-2.104e+03;VQSLOD=8.82;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:31,31:62:99:867,0,865:127	0|1:45,28:73:99:412,0,801:127	1|1:0,70:70:99:1906,150,0:127
+16	88914235	rs12932521	C	T	329.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=1.98;DB;DP=114;Dels=0.00;FS=1.93;HaplotypeScore=0.940;MLEAC=1;MLEAF=0.167;MQ=58.60;MQ0=0;MQRankSum=0.854;QD=7.84;ReadPosRankSum=-3.390e-01;SB=-2.970e+02;VQSLOD=8.10;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:43,0:43:99:0,102,1192:39	0|0:29,0:29:39:0,39,468:39	0|1:15,26:42:99:364,0,105:39
+17	5764764	rs2309483	C	G	4071.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=4.24;DB;DP=154;Dels=0.00;FS=0.00;HaplotypeScore=4.41;MLEAC=5;MLEAF=0.833;MQ=58.88;MQ0=0;MQRankSum=0.456;QD=26.44;ReadPosRankSum=0.385;SB=-1.791e+03;VQSLOD=6.95;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,61:62:99:2049,165,0:107	1|0:23,26:49:99:648,0,482:107	1|1:0,43:43:99:1374,108,0:107
+17	14096866	.	C	T	489.26	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=4.54;DP=181;Dels=0.00;FS=33.90;HaplotypeScore=1.08;MLEAC=3;MLEAF=0.500;MQ=24.52;MQ0=71;MQRankSum=0.353;QD=2.70;ReadPosRankSum=0.385;SB=-1.450e+02;VQSLOD=-6.217e+00;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:48,17:66:99:228,0,822:63	0/1:42,16:58:99:237,0,389:63	0/1:44,13:57:63:63,0,523:63
+17	21547285	rs62049731	A	C	1322.26	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=-9.870e-01;DB;DP=569;Dels=0.00;FS=2.32;HaplotypeScore=42.45;MLEAC=3;MLEAF=0.500;MQ=44.59;MQ0=24;MQRankSum=-6.240e+00;QD=2.32;ReadPosRankSum=-5.171e+00;SB=-6.369e+02;VQSLOD=-3.953e+01;culprit=DP	GT:AD:DP:GQ:PL:TP	0/1:146,28:174:99:217,0,4187:127	0/1:162,56:218:99:804,0,4298:127	0/1:139,38:177:99:340,0,3842:127
+17	33513649	rs3744366	A	G	3743.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-3.729e+00;DB;DP=213;Dels=0.00;FS=0.526;HaplotypeScore=2.91;MLEAC=4;MLEAF=0.667;MQ=58.99;MQ0=0;MQRankSum=-1.520e-01;QD=17.57;ReadPosRankSum=0.530;SB=-2.067e+03;VQSLOD=8.02;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:44,40:84:99:1083,0,1341:127	1|1:0,67:67:99:2074,162,0:127	0|1:37,24:62:99:586,0,1015:127
+17	44809197	rs116187585	A	G	8703.01	PASS	AC=6;AF=1.00;AN=6;BaseQRankSum=-5.540e-01;DB;DP=254;Dels=0.00;FS=3.49;HaplotypeScore=4.06;MLEAC=6;MLEAF=1.00;MQ=59.58;MQ0=0;MQRankSum=1.68;QD=34.26;ReadPosRankSum=1.48;SB=-4.228e+03;VQSLOD=6.61;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:1,96:97:99:3470,268,0:127	1|1:0,82:84:99:2846,220,0:127	1|1:0,73:73:99:2387,184,0:127
+17	55158811	rs7217371	G	A	2849.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=8.62;DB;DP=206;Dels=0.00;FS=0.511;HaplotypeScore=1.10;MLEAC=3;MLEAF=0.500;MQ=59.66;MQ0=0;MQRankSum=0.103;QD=13.83;ReadPosRankSum=0.958;SB=-1.448e+03;VQSLOD=9.94;culprit=MQ	GT:AD:DP:GQ:PL:TP	0/1:40,31:72:99:982,0,1147:127	0/1:35,40:75:99:1236,0,984:127	0/1:32,27:59:99:670,0,882:127
+17	66991216	rs61697543	T	C	738.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-4.530e+00;DB;DP=252;Dels=0.00;FS=1.49;HaplotypeScore=1.71;MLEAC=1;MLEAF=0.167;MQ=59.36;MQ0=0;MQRankSum=0.771;QD=10.86;ReadPosRankSum=-7.240e-01;SB=-3.930e+02;VQSLOD=8.89;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:95,0:95:99:0,268,3511:127	0|0:89,0:89:99:0,235,3058:127	0|1:33,35:68:99:773,0,965:127
+17	75679403	.	TGTG	T	1024.22	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=8.62;DP=161;FS=1.69;HaplotypeScore=259.32;MLEAC=2;MLEAF=0.333;MQ=51.57;MQ0=0;MQRankSum=-8.617e+00;QD=9.48;ReadPosRankSum=-4.980e-01;SB=-4.680e+02;VQSLOD=1.76;culprit=QD	GT:AD:DP:GQ:PL:TP	1|0:29,19:58:99:711,0,1547:127	1|0:34,11:50:99:361,0,1922:127	0|0:53,0:53:99:0,157,3186:127
+18	1629264	rs5025369	A	G	86.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=-1.739e+00;DB;DP=149;Dels=0.00;FS=15.36;HaplotypeScore=7.14;MLEAC=2;MLEAF=0.333;MQ=39.72;MQ0=11;MQRankSum=-2.543e+00;QD=0.810;ReadPosRankSum=0.088;SB=-3.380e+01;VQSLOD=-6.205e+00;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:51,15:66:50:50,0,1143:49	0|0:37,5:42:81:0,81,941:49	1|0:35,6:41:75:75,0,818:49
+18	10010426	rs4797393	T	C	4197.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=0.425;DB;DP=210;Dels=0.00;FS=1.13;HaplotypeScore=1.27;MLEAC=4;MLEAF=0.667;MQ=59.43;MQ0=0;MQRankSum=-2.916e+00;QD=19.99;ReadPosRankSum=0.379;SB=-2.001e+03;VQSLOD=7.03;culprit=MQRankSum	GT:AD:DP:GQ:PL:TP	1|1:0,65:65:99:2247,181,0:127	1|0:35,39:75:99:1170,0,967:127	1|0:41,29:70:99:780,0,1052:127
+18	20025030	rs4800406	A	G	1113.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.700e+00;DB;DP=230;Dels=0.00;FS=0.00;HaplotypeScore=1.68;MLEAC=1;MLEAF=0.167;MQ=59.56;MQ0=0;MQRankSum=1.64;QD=12.65;ReadPosRankSum=-1.166e+00;SB=-6.160e+02;VQSLOD=8.66;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:78,0:78:99:0,223,2978:127	0|1:46,42:88:99:1148,0,1460:127	0|0:64,0:64:99:0,175,2303:127
+18	30361151	rs35024407	T	TTG	9768	PASS	AC=6;AF=1.00;AN=6;DB;DP=234;FS=0.00;HaplotypeScore=13.10;MLEAC=6;MLEAF=1.00;MQ=60.40;MQ0=2;QD=41.74;RPA=3,4;RU=TG;SB=-4.721e+03;STR;VQSLOD=5.50;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:7,80:86:99:3686,241,0:127	1|1:8,77:85:99:3454,229,0:127	1|1:3,58:61:99:2628,172,0:127
+18	41449098	rs2045671	C	T	8380.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=237;Dels=0.00;FS=0.00;HaplotypeScore=1.35;MLEAC=6;MLEAF=1.00;MQ=59.65;MQ0=0;QD=35.36;SB=-4.462e+03;VQSLOD=11.65;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,76:76:99:2756,214,0:127	1|1:0,75:75:99:2635,202,0:127	1|1:0,86:86:99:2989,229,0:127
+18	50973169	rs11661305	A	G	5320.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=2.75;DB;DP=196;Dels=0.00;FS=2.57;HaplotypeScore=1.13;MLEAC=5;MLEAF=0.833;MQ=57.73;MQ0=0;MQRankSum=0.246;QD=27.14;ReadPosRankSum=0.186;SB=-2.411e+03;VQSLOD=7.50;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:0,74:74:99:2621,202,0:127	1|0:30,37:67:99:1009,0,842:127	1|1:0,55:55:99:1690,132,0:127
+18	59836086	.	A	AT	575.46	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-1.815e+00;DP=231;FS=20.46;HaplotypeScore=140.20;MLEAC=3;MLEAF=0.500;MQ=56.52;MQ0=0;MQRankSum=1.20;QD=2.49;RPA=20,21;RU=T;ReadPosRankSum=-1.968e+00;SB=-2.575e+02;STR;VQSLOD=-3.166e-01;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:52,29:86:11:309,0,11:9	0/1:72,2:82:63:109,0,63:9	0/1:31,24:63:15:205,0,15:9
+18	67950442	rs62091919	T	G	1779.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-2.517e+00;DB;DP=195;Dels=0.00;FS=0.562;HaplotypeScore=1.55;MLEAC=2;MLEAF=0.333;MQ=59.26;MQ0=0;MQRankSum=6.000e-03;QD=12.89;ReadPosRankSum=-2.680e-01;SB=-9.170e+02;VQSLOD=9.63;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|1:40,32:72:99:967,0,1318:127	0|0:55,2:57:99:0,141,1865:127	1|0:36,30:66:99:851,0,1042:127
+18	75204349	rs9948476	C	T	646.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=1.97;DB;DP=185;Dels=0.00;FS=0.817;HaplotypeScore=1.40;MLEAC=1;MLEAF=0.167;MQ=59.35;MQ0=0;MQRankSum=0.276;QD=10.95;ReadPosRankSum=-1.580e-01;SB=-3.210e+02;VQSLOD=9.37;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:65,0:66:99:0,168,2026:127	0|0:60,0:60:99:0,147,1768:127	0|1:34,25:59:99:681,0,893:127
+19	3739001	rs56138006	C	T	976.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=4.63;DB;DP=118;Dels=0.00;FS=3.68;HaplotypeScore=1.44;MLEAC=2;MLEAF=0.333;MQ=58.66;MQ0=0;MQRankSum=0.753;QD=11.22;ReadPosRankSum=1.11;SB=-6.380e+02;VQSLOD=7.45;culprit=QD	GT:AD:DP:GQ:PL:TP	0|1:30,22:52:99:612,0,559:45	0|0:31,0:31:45:0,45,527:45	1|0:12,23:35:93:403,0,93:45
+19	11730690	rs4804613	C	T	2578.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=5.06;DB;DP=197;Dels=0.00;FS=0.529;HaplotypeScore=0.00;MLEAC=3;MLEAF=0.500;MQ=59.36;MQ0=0;MQRankSum=0.416;QD=13.09;ReadPosRankSum=-5.540e-01;SB=-1.389e+03;VQSLOD=9.39;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:21,26:47:99:586,0,623:127	0/1:42,45:87:99:1192,0,1055:127	0/1:32,30:63:99:839,0,932:127
+19	20782710	rs10413568	T	C	6304.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=203;Dels=0.00;FS=0.00;HaplotypeScore=0.692;MLEAC=6;MLEAF=1.00;MQ=59.56;MQ0=0;QD=31.05;SB=-2.367e+03;VQSLOD=10.77;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,74:74:99:2375,214,0:127	1|1:0,80:80:99:2480,217,0:127	1|1:0,49:49:99:1449,129,0:127
+19	28150587	rs4404191	A	G	7419.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=209;Dels=0.00;FS=0.00;HaplotypeScore=0.245;MLEAC=6;MLEAF=1.00;MQ=59.61;MQ0=0;QD=35.50;SB=-3.717e+03;VQSLOD=11.99;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,70:70:99:2584,202,0:127	1|1:0,74:74:99:2509,193,0:127	1|1:0,65:65:99:2326,181,0:127
+19	37226152	rs3108217	G	C	2076.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=0.215;DB;DP=145;Dels=0.00;FS=2.16;HaplotypeScore=0.587;MLEAC=4;MLEAF=0.667;MQ=58.59;MQ0=0;MQRankSum=1.16;QD=14.32;ReadPosRankSum=-7.250e-01;SB=-1.027e+03;VQSLOD=7.49;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:25,30:55:99:789,0,709:63	1|1:0,29:29:63:772,63,0:63	0|1:35,25:61:99:557,0,789:63
+19	47012249	rs60424854	ATTTTT	A	1121.22	VQSRTrancheINDEL99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=-1.922e+00;DB;DP=144;FS=61.85;HaplotypeScore=338.74;MLEAC=2;MLEAF=0.333;MQ=44.50;MQ0=1;MQRankSum=-2.345e+00;QD=10.29;RPA=16,11;RU=T;ReadPosRankSum=5.64;SB=-1.090e+02;STR;VQSLOD=-2.399e+00;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|0:30,9:43:99:371,0,961:89	1|0:44,15:63:99:798,0,1293:89	0|0:32,0:33:89:0,89,1424:89
+19	54644879	rs36636	G	A	1790.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=2.51;DB;DP=187;Dels=0.00;FS=4.41;HaplotypeScore=1.50;MLEAC=2;MLEAF=0.333;MQ=59.51;MQ0=0;MQRankSum=-1.266e+00;QD=13.88;ReadPosRankSum=-1.226e+00;SB=-1.081e+03;VQSLOD=7.80;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:30,27:57:99:811,0,726:127	1|0:31,41:72:99:1018,0,730:127	0|0:58,0:58:99:0,144,1815:127
+20	3199373	rs2422861	G	A	896.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.452;DB;DP=135;Dels=0.00;FS=0.664;HaplotypeScore=2.84;MLEAC=3;MLEAF=0.500;MQ=58.47;MQ0=0;MQRankSum=-2.170e-01;QD=6.64;ReadPosRankSum=0.111;SB=-6.080e+02;VQSLOD=7.71;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:32,24:56:99:472,0,640:127	0/1:25,15:40:99:229,0,603:127	0/1:20,19:39:99:234,0,379:127
+20	12166868	rs7272217	C	T	926.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.444e+00;DB;DP=200;Dels=0.00;FS=2.63;HaplotypeScore=0.841;MLEAC=1;MLEAF=0.167;MQ=58.94;MQ0=0;MQRankSum=-1.362e+00;QD=13.23;ReadPosRankSum=-1.055e+00;SB=-4.040e+02;VQSLOD=7.62;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:68,0:68:99:0,190,2486:127	0|0:62,0:62:99:0,169,2218:127	0|1:33,37:70:99:961,0,870:127
+20	21523349	rs73127889	A	G	2286.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-6.469e+00;DB;DP=253;Dels=0.00;FS=3.73;HaplotypeScore=1.54;MLEAC=2;MLEAF=0.333;MQ=59.31;MQ0=0;MQRankSum=0.821;QD=13.69;ReadPosRankSum=1.51;SB=-8.640e+02;VQSLOD=7.84;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|1:44,48:92:99:1319,0,1356:127	0|0:86,0:86:99:0,235,2994:127	1|0:37,38:75:99:1006,0,1111:127
+20	29566945	rs6119037	C	G	1427.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=-3.826e+00;DB;DP=271;Dels=0.00;FS=1.15;HaplotypeScore=2.76;MLEAC=2;MLEAF=0.333;MQ=47.42;MQ0=21;MQRankSum=2.42;QD=8.06;ReadPosRankSum=0.363;SB=-7.560e+02;VQSLOD=1.79;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:59,32:91:99:782,0,1210:127	1|0:55,31:86:99:684,0,1422:127	0|0:94,0:94:99:0,208,2592:127
+20	41560394	rs761027	A	G	5634.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-4.444e+00;DB;DP=222;Dels=0.00;FS=0.829;HaplotypeScore=1.14;MLEAC=5;MLEAF=0.833;MQ=59.60;MQ0=0;MQRankSum=0.392;QD=25.38;ReadPosRankSum=-6.400e-02;SB=-3.048e+03;VQSLOD=10.04;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,72:72:99:2228,187,0:127	1|1:0,82:82:99:2435,211,0:127	1|0:25,43:68:99:971,0,567:127
+20	51353834	rs241795	G	A	6115.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=7.91;DB;DP=268;Dels=0.00;FS=0.00;HaplotypeScore=0.245;MLEAC=4;MLEAF=0.667;MQ=59.38;MQ0=0;MQRankSum=-5.180e-01;QD=22.82;ReadPosRankSum=-2.530e-01;SB=-3.328e+03;VQSLOD=8.40;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:46,54:100:99:1663,0,1247:127	1|1:0,91:91:99:3189,247,0:127	0|1:36,41:77:99:1263,0,901:127
+20	59978756	rs1892320	T	C	3967.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-2.562e+00;DB;DP=206;Dels=0.00;FS=14.25;HaplotypeScore=1.38;MLEAC=4;MLEAF=0.667;MQ=59.89;MQ0=0;MQRankSum=-2.890e-01;QD=19.26;ReadPosRankSum=0.221;SB=-2.292e+03;VQSLOD=7.62;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:0,72:72:99:2337,181,0:127	1|0:38,29:67:99:743,0,1180:127	1|0:31,36:67:99:887,0,873:127
+21	10750991	.	C	T	602.26	VQSRTrancheSNP99.90to100.00	AC=2;AF=0.333;AN=6;BaseQRankSum=10.10;DP=735;DS;Dels=0.00;FS=27.02;HaplotypeScore=107.27;MLEAC=2;MLEAF=0.333;MQ=44.40;MQ0=2;MQRankSum=-1.456e+01;QD=1.24;ReadPosRankSum=0.063;SB=-8.430e+02;VQSLOD=-1.009e+02;culprit=DP	GT:AD:DP:GQ:PL:TP	1|0:164,78:243:99:357,0,5193:103	1|0:187,55:242:99:284,0,5252:103	0|0:199,50:250:99:0,103,5864:103
+21	18433036	rs969905	A	G	781.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-6.610e+00;DB;DP=229;Dels=0.00;FS=2.23;HaplotypeScore=1.29;MLEAC=1;MLEAF=0.167;MQ=59.55;MQ0=0;MQRankSum=0.300;QD=10.15;ReadPosRankSum=-3.840e-01;SB=-4.990e+02;VQSLOD=9.58;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:62,0:63:99:0,181,2380:127	0|0:89,0:89:99:0,244,3177:127	0|1:39,38:77:99:816,0,1256:127
+21	25702950	rs2260875	C	G	3462.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.156;DB;DP=237;Dels=0.00;FS=2.90;HaplotypeScore=1.54;MLEAC=3;MLEAF=0.500;MQ=59.04;MQ0=0;MQRankSum=0.386;QD=14.61;ReadPosRankSum=-1.455e+00;SB=-1.683e+03;VQSLOD=8.05;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0/1:37,40:77:99:1282,0,1101:127	0/1:43,36:79:99:1114,0,1317:127	0/1:45,36:81:99:1066,0,1329:127
+21	34546711	rs11701692	T	C	1030.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-1.884e+00;DB;DP=152;Dels=0.00;FS=8.32;HaplotypeScore=1.93;MLEAC=2;MLEAF=0.333;MQ=57.61;MQ0=0;MQRankSum=-2.910e-01;QD=10.51;ReadPosRankSum=0.258;SB=-4.600e+02;VQSLOD=6.46;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:35,25:61:99:574,0,1137:127	1|0:19,18:37:99:495,0,498:127	0|0:54,0:54:99:0,141,1811:127
+21	42833227	rs460904	T	C	3179.23	PASS	AC=6;AF=1.00;AN=6;DB;DP=155;Dels=0.00;FS=0.00;HaplotypeScore=2.46;MLEAC=6;MLEAF=1.00;MQ=58.18;MQ0=0;QD=20.51;SB=-2.173e+03;VQSLOD=7.70;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,60:60:90:1085,90,0:74	1|1:0,54:54:96:1172,96,0:74	1|1:0,41:41:75:960,75,0:74
+22	17351507	rs5748687	G	A	4244.01	VQSRTrancheSNP99.00to99.90	AC=5;AF=0.833;AN=6;BaseQRankSum=-2.240e-01;DB;DP=261;Dels=0.00;FS=0.710;HaplotypeScore=1.72;MLEAC=5;MLEAF=0.833;MQ=28.84;MQ0=57;MQRankSum=-7.852e+00;QD=16.26;ReadPosRankSum=-1.243e+00;SB=-2.174e+03;VQSLOD=-1.710e+00;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:0,92:92:99:1529,141,0:127	1|0:34,49:83:99:727,0,1065:127	1|1:0,86:86:99:1988,180,0:127
+22	24416101	rs66532277	C	CTT	458.98	VQSRTrancheINDEL99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=-4.190e+00;DB;DP=251;FS=68.55;HaplotypeScore=55.31;MLEAC=3;MLEAF=0.500;MQ=51.85;MQ0=3;MQRankSum=2.42;QD=1.83;RPA=23,25;RU=T;ReadPosRankSum=2.88;SB=-3.571e+01;STR;VQSLOD=-2.028e+00;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:68,20:91:65:207,0,65:3	0/1:84,0:83:0:184,0,0:3	0/1:72,0:72:83:114,0,83:3
+22	34204930	rs13053313	T	C	435.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.517e+00;DB;DP=82;Dels=0.00;FS=5.84;HaplotypeScore=0.533;MLEAC=1;MLEAF=0.167;MQ=58.65;MQ0=0;MQRankSum=1.12;QD=12.80;ReadPosRankSum=-1.270e+00;SB=-1.170e+02;VQSLOD=6.44;culprit=DP	GT:AD:DP:GQ:PL:TP	0|0:12,0:12:27:0,27,360:27	0|1:16,18:34:99:470,0,403:27	0|0:36,0:36:93:0,93,1230:27
+22	43356130	rs6519353	A	C	3526.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.809;DB;DP=228;Dels=0.00;FS=6.34;HaplotypeScore=1.63;MLEAC=3;MLEAF=0.500;MQ=59.41;MQ0=0;MQRankSum=-1.460e-01;QD=22.46;ReadPosRankSum=2.03;SB=-1.954e+03;VQSLOD=8.50;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|0:40,41:81:99:1020,0,1222:127	1|1:0,76:76:99:2506,196,0:127	0|0:71,0:71:99:0,165,2091:127
+22	50309915	rs9616205	A	T	1712.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-9.360e-01;DB;DP=162;Dels=0.00;FS=2.86;HaplotypeScore=2.15;MLEAC=2;MLEAF=0.333;MQ=56.21;MQ0=5;MQRankSum=0.892;QD=13.92;ReadPosRankSum=-1.040e+00;SB=-9.940e+02;VQSLOD=6.28;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|1:39,33:72:99:777,0,994:78	0|0:39,0:39:78:0,78,1010:78	1|0:16,35:51:99:974,0,257:78
+X	4712340	rs5915814	C	A	2233.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=8.78;DB;DP=176;Dels=0.00;FS=0.00;HaplotypeScore=0.443;MLEAC=2;MLEAF=0.333;MQ=59.50;MQ0=0;MQRankSum=-1.782e+00;QD=15.73;ReadPosRankSum=0.359;SB=-1.240e+03;VQSLOD=8.39;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:32,37:69:99:1114,0,859:81	0|0:34,0:34:81:0,81,948:81	1|0:32,41:73:99:1158,0,575:81
+X	23948720	rs35152285	C	CA	535.35	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.538e+00;DB;DP=148;FS=0.00;HaplotypeScore=24.32;MLEAC=3;MLEAF=0.500;MQ=53.02;MQ0=0;MQRankSum=0.234;QD=3.62;RPA=16,17;RU=A;ReadPosRankSum=-1.638e+00;SB=-2.841e+02;STR;VQSLOD=3.02;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:37,27:68:62:391,0,62:13	0/1:16,8:25:13:102,0,13:13	0/1:47,4:53:90:90,0,142:13
+X	42192093	rs58959554	T	C	1058.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-5.464e+00;DB;DP=190;Dels=0.00;FS=6.81;HaplotypeScore=1.88;MLEAC=1;MLEAF=0.167;MQ=59.41;MQ0=0;MQRankSum=-2.120e-01;QD=15.34;ReadPosRankSum=-1.730e-01;SB=-3.970e+02;VQSLOD=8.06;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:70,1:71:99:0,182,2683:127	0|0:50,0:50:99:0,138,1794:127	0|1:31,38:69:99:1093,0,947:127
+X	66290558	rs1606094	C	T	2602.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=2.17;DB;DP=213;Dels=0.00;FS=13.13;HaplotypeScore=0.00;MLEAC=3;MLEAF=0.500;MQ=59.59;MQ0=0;MQRankSum=1.34;QD=18.86;ReadPosRankSum=2.27;SB=-1.122e+03;VQSLOD=6.00;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:54,47:101:99:1381,0,1762:99	1|1:0,37:37:99:1266,99,0:99	0|0:75,0:75:99:0,205,2705:99
+X	84165195	rs5923187	C	A	1009.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.103e+00;DB;DP=194;Dels=0.00;FS=3.07;HaplotypeScore=2.82;MLEAC=1;MLEAF=0.167;MQ=59.31;MQ0=0;MQRankSum=-6.750e-01;QD=12.01;ReadPosRankSum=-1.463e+00;SB=-5.890e+02;VQSLOD=8.24;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:79,1:80:99:0,223,2856:60	0|0:30,0:30:60:0,60,764:60	0|1:40,44:84:99:1044,0,1007:60
+X	95868251	.	G	A	108.36	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=1.44;DP=90;Dels=0.00;FS=4.21;HaplotypeScore=4.94;MLEAC=2;MLEAF=0.333;MQ=44.60;MQ0=8;MQRankSum=-2.939e+00;QD=1.55;ReadPosRankSum=2.87;SB=-7.411e+01;VQSLOD=-3.242e+00;culprit=QD	GT:AD:DP:GQ:PL:TP	0|1:29,9:38:99:126,0,251:23	0|0:20,0:20:24:0,24,266:23	1|0:27,5:32:21:21,0,97:23
+X	116855730	rs980389	A	G	2366.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.939e+00;DB;DP=173;Dels=0.00;FS=3.51;HaplotypeScore=0.908;MLEAC=3;MLEAF=0.500;MQ=59.87;MQ0=0;MQRankSum=0.653;QD=21.51;ReadPosRankSum=0.730;SB=-1.218e+03;VQSLOD=7.96;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:37,33:70:99:965,0,1249:114	1|1:0,40:40:99:1446,114,0:114	0|0:63,0:63:99:0,175,2284:114
+X	135282092	rs5974586	G	C	2193.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=4.26;DB;DP=203;Dels=0.00;FS=0.540;HaplotypeScore=0.659;MLEAC=2;MLEAF=0.333;MQ=59.47;MQ0=0;MQRankSum=1.00;QD=13.46;ReadPosRankSum=1.34;SB=-1.069e+03;VQSLOD=9.09;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|1:47,33:80:99:1026,0,1466:116	0|0:40,0:40:99:0,117,1486:116	1|0:43,40:83:99:1206,0,1311:116
+X	150239197	rs6627349	T	C	4677.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=0.731;DB;DP=179;Dels=0.00;FS=0.00;HaplotypeScore=1.61;MLEAC=5;MLEAF=0.833;MQ=59.69;MQ0=0;MQRankSum=0.676;QD=26.13;ReadPosRankSum=0.494;SB=-2.442e+03;VQSLOD=10.55;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,66:66:99:2387,190,0:99	1|1:0,40:40:99:1243,99,0:99	1|0:36,37:73:99:1047,0,1039:99
+Y	13265732	.	C	T	356.72	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=2.82;DP=142;Dels=0.00;FS=7.94;HaplotypeScore=19.82;MLEAC=2;MLEAF=0.333;MQ=38.22;MQ0=11;MQRankSum=-2.145e+00;QD=5.10;ReadPosRankSum=1.49;SB=-1.466e+00;VQSLOD=-1.443e+01;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|1:35,15:50:99:327,0,624:5	0|0:65,7:72:4:0,4,1831:5	1|0:15,5:20:67:67,0,227:5
+Y	59024923	.	A	T	1977.26	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=1.84;DP=745;DS;Dels=0.00;FS=0.367;HaplotypeScore=8.30;MLEAC=3;MLEAF=0.500;MQ=43.53;MQ0=19;MQRankSum=2.50;QD=2.65;ReadPosRankSum=0.098;SB=-9.720e+02;VQSLOD=-3.676e+01;culprit=DP	GT:AD:DP:GQ:PL:TP	0/1:208,42:250:99:730,0,6428:127	0/1:210,35:245:99:588,0,6218:127	0/1:208,42:250:99:698,0,6060:127
+GL000214.1	115144	.	C	T	102.07	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=0.854;DP=103;Dels=0.00;FS=14.19;HaplotypeScore=14.95;MLEAC=2;MLEAF=0.333;MQ=38.45;MQ0=1;MQRankSum=-2.314e+00;QD=1.05;ReadPosRankSum=1.48;SB=-6.153e+01;VQSLOD=-1.476e+01;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:6,0:6:3:0,3,22:4	0|1:9,11:20:16:81,0,16:4	0|1:63,14:77:58:58,0,908:4
+GL000215.1	142616	.	T	C	976.25	VQSRTrancheSNP99.00to99.90	AC=6;AF=1.00;AN=6;DP=80;Dels=0.00;FS=0.00;HaplotypeScore=0.00;MLEAC=6;MLEAF=1.00;MQ=21.04;MQ0=42;QD=12.20;SB=-8.001e+01;VQSLOD=-4.104e-01;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:0,33:33:42:516,42,0:19	1|1:0,21:21:24:272,24,0:19	1|1:0,26:26:21:226,21,0:19
+GL000212.1	28454	.	T	C	2248.99	VQSRTrancheSNP99.00to99.90	AC=4;AF=1.00;AN=4;BaseQRankSum=1.69;DP=94;Dels=0.00;FS=3.27;HaplotypeScore=0.962;MLEAC=4;MLEAF=1.00;MQ=36.99;MQ0=7;MQRankSum=-4.280e-01;QD=24.18;ReadPosRankSum=-1.284e+00;SB=-1.053e+03;VQSLOD=1.24;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:0,29:29:63:755,63,0:63	./.	1|1:1,63:64:99:1530,135,0:63
diff --git a/testdata/net/sf/picard/vcf/vcfFormatTest.bcf b/testdata/picard/vcf/vcfFormatTest.bcf
similarity index 100%
rename from testdata/net/sf/picard/vcf/vcfFormatTest.bcf
rename to testdata/picard/vcf/vcfFormatTest.bcf
diff --git a/testdata/net/sf/picard/vcf/vcfFormatTest.bcf.idx b/testdata/picard/vcf/vcfFormatTest.bcf.idx
similarity index 100%
rename from testdata/net/sf/picard/vcf/vcfFormatTest.bcf.idx
rename to testdata/picard/vcf/vcfFormatTest.bcf.idx
diff --git a/testdata/picard/vcf/vcfFormatTest.scrambled.vcf b/testdata/picard/vcf/vcfFormatTest.scrambled.vcf
new file mode 100644
index 0000000..e188ad2
--- /dev/null
+++ b/testdata/picard/vcf/vcfFormatTest.scrambled.vcf
@@ -0,0 +1,446 @@
+##fileformat=VCFv4.1
+##ApplyRecalibration="analysis_type=ApplyRecalibration input_file=[] read_buffer_size=null phone_home=NO_ET gatk_key=/humgen/gsa-hpprojects/GATK/data/gatk_user_keys/gsamembers_broadinstitute.org.key read_filter=[] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta nonDeterministicRandomSeed=false downsampling_type=BY_SAMPLE downsample_to_fraction=null do [...]
+##CombineVariants="analysis_type=CombineVariants input_file=[] read_buffer_size=null phone_home=STANDARD gatk_key=null read_filter=[] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta nonDeterministicRandomSeed=false downsampling_type=BY_SAMPLE downsample_to_fraction=null downsample_to_coverage=1000 baq=OFF baqGapOpenPenalty=40.0 performanceLog=null use [...]
+##FILTER=<ID=LowQual,Description="Low quality">
+##FILTER=<ID=VQSRTrancheINDEL99.00to99.90,Description="Truth sensitivity tranche level for INDEL model at VQS Lod: -4.1718 <= x < -0.8611">
+##FILTER=<ID=VQSRTrancheINDEL99.90to100.00+,Description="Truth sensitivity tranche level for INDEL model at VQS Lod < -727.2136">
+##FILTER=<ID=VQSRTrancheINDEL99.90to100.00,Description="Truth sensitivity tranche level for INDEL model at VQS Lod: -727.2136 <= x < -4.1718">
+##FILTER=<ID=VQSRTrancheSNP99.00to99.90,Description="Truth sensitivity tranche level for SNP model at VQS Lod: -25.4561 <= x < 3.2489">
+##FILTER=<ID=VQSRTrancheSNP99.90to100.00+,Description="Truth sensitivity tranche level for SNP model at VQS Lod < -38672.7015">
+##FILTER=<ID=VQSRTrancheSNP99.90to100.00,Description="Truth sensitivity tranche level for SNP model at VQS Lod: -38672.7015 <= x < -25.4561">
+##FORMAT=<ID=AD,Number=.,Type=Integer,Description="Allelic depths for the ref and alt alleles in the order listed">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth (reads with MQ=255 or with bad mates are filtered)">
+##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##FORMAT=<ID=PL,Number=G,Type=Integer,Description="Normalized, Phred-scaled likelihoods for genotypes as defined in the VCF specification">
+##FORMAT=<ID=TP,Number=1,Type=Integer,Description="Phred score of the genotype combination and phase given that the genotypes are correct">
+##INFO=<ID=AC,Number=A,Type=Integer,Description="Allele count in genotypes, for each ALT allele, in the same order as listed">
+##INFO=<ID=AF,Number=A,Type=Float,Description="Allele Frequency, for each ALT allele, in the same order as listed">
+##INFO=<ID=AN,Number=1,Type=Integer,Description="Total number of alleles in called genotypes">
+##INFO=<ID=BaseQRankSum,Number=1,Type=Float,Description="Z-score from Wilcoxon rank sum test of Alt Vs. Ref base qualities">
+##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP Membership">
+##INFO=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth; some reads may have been filtered">
+##INFO=<ID=DS,Number=0,Type=Flag,Description="Were any of the samples downsampled?">
+##INFO=<ID=Dels,Number=1,Type=Float,Description="Fraction of Reads Containing Spanning Deletions">
+##INFO=<ID=END,Number=1,Type=Integer,Description="Stop position of the interval">
+##INFO=<ID=FS,Number=1,Type=Float,Description="Phred-scaled p-value using Fisher's exact test to detect strand bias">
+##INFO=<ID=HaplotypeScore,Number=1,Type=Float,Description="Consistency of the site with at most two segregating haplotypes">
+##INFO=<ID=InbreedingCoeff,Number=1,Type=Float,Description="Inbreeding coefficient as estimated from the genotype likelihoods per-sample when compared against the Hardy-Weinberg expectation">
+##INFO=<ID=MLEAC,Number=A,Type=Integer,Description="Maximum likelihood expectation (MLE) for the allele counts (not necessarily the same as the AC), for each ALT allele, in the same order as listed">
+##INFO=<ID=MLEAF,Number=A,Type=Float,Description="Maximum likelihood expectation (MLE) for the allele frequency (not necessarily the same as the AF), for each ALT allele, in the same order as listed">
+##INFO=<ID=MQ,Number=1,Type=Float,Description="RMS Mapping Quality">
+##INFO=<ID=MQ0,Number=1,Type=Integer,Description="Total Mapping Quality Zero Reads">
+##INFO=<ID=MQRankSum,Number=1,Type=Float,Description="Z-score From Wilcoxon rank sum test of Alt vs. Ref read mapping qualities">
+##INFO=<ID=QD,Number=1,Type=Float,Description="Variant Confidence/Quality by Depth">
+##INFO=<ID=RPA,Number=.,Type=Integer,Description="Number of times tandem repeat unit is repeated, for each allele (including reference)">
+##INFO=<ID=RU,Number=1,Type=String,Description="Tandem repeat unit (bases)">
+##INFO=<ID=ReadPosRankSum,Number=1,Type=Float,Description="Z-score from Wilcoxon rank sum test of Alt vs. Ref read position bias">
+##INFO=<ID=SB,Number=1,Type=Float,Description="Strand Bias">
+##INFO=<ID=STR,Number=0,Type=Flag,Description="Variant is a short tandem repeat">
+##INFO=<ID=VQSLOD,Number=1,Type=Float,Description="Log odds ratio of being a true variant versus being false under the trained gaussian mixture model">
+##INFO=<ID=culprit,Number=1,Type=String,Description="The annotation which was the worst performing in the Gaussian mixture model, likely the reason why the variant was filtered out">
+##INFO=<ID=set,Number=1,Type=String,Description="Source VCF for the merged record in CombineVariants">
+##PhaseByTransmission="analysis_type=PhaseByTransmission input_file=[] read_buffer_size=null phone_home=STANDARD gatk_key=null read_filter=[] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta nonDeterministicRandomSeed=false downsampling_type=BY_SAMPLE downsample_to_fraction=null downsample_to_coverage=1000 baq=OFF baqGapOpenPenalty=40.0 performanceLog= [...]
+##UnifiedGenotyper="analysis_type=UnifiedGenotyper input_file=[/humgen/gsa-hpprojects/NA12878Collection/bams/CEUTrio.HiSeq.WGS.b37.list] read_buffer_size=null phone_home=NO_ET gatk_key=/humgen/gsa-hpprojects/GATK/data/gatk_user_keys/gsamembers_broadinstitute.org.key read_filter=[] intervals=[/broad/hptmp/ami/tmp/queueScatterGather/.qlog/CEUTrio.indelcall-sg/temp_020_of_300/scatter.intervals] excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_s [...]
+##contig=<ID=1,length=249250621,assembly=b37>
+##contig=<ID=2,length=243199373,assembly=b37>
+##contig=<ID=3,length=198022430,assembly=b37>
+##contig=<ID=4,length=191154276,assembly=b37>
+##contig=<ID=5,length=180915260,assembly=b37>
+##contig=<ID=6,length=171115067,assembly=b37>
+##contig=<ID=7,length=159138663,assembly=b37>
+##contig=<ID=8,length=146364022,assembly=b37>
+##contig=<ID=9,length=141213431,assembly=b37>
+##contig=<ID=10,length=135534747,assembly=b37>
+##contig=<ID=11,length=135006516,assembly=b37>
+##contig=<ID=12,length=133851895,assembly=b37>
+##contig=<ID=13,length=115169878,assembly=b37>
+##contig=<ID=14,length=107349540,assembly=b37>
+##contig=<ID=15,length=102531392,assembly=b37>
+##contig=<ID=16,length=90354753,assembly=b37>
+##contig=<ID=17,length=81195210,assembly=b37>
+##contig=<ID=18,length=78077248,assembly=b37>
+##contig=<ID=19,length=59128983,assembly=b37>
+##contig=<ID=20,length=63025520,assembly=b37>
+##contig=<ID=21,length=48129895,assembly=b37>
+##contig=<ID=22,length=51304566,assembly=b37>
+##contig=<ID=X,length=155270560,assembly=b37>
+##contig=<ID=Y,length=59373566,assembly=b37>
+##contig=<ID=MT,length=16569,assembly=b37>
+##contig=<ID=GL000207.1,length=4262,assembly=b37>
+##contig=<ID=GL000226.1,length=15008,assembly=b37>
+##contig=<ID=GL000229.1,length=19913,assembly=b37>
+##contig=<ID=GL000231.1,length=27386,assembly=b37>
+##contig=<ID=GL000210.1,length=27682,assembly=b37>
+##contig=<ID=GL000239.1,length=33824,assembly=b37>
+##contig=<ID=GL000235.1,length=34474,assembly=b37>
+##contig=<ID=GL000201.1,length=36148,assembly=b37>
+##contig=<ID=GL000247.1,length=36422,assembly=b37>
+##contig=<ID=GL000245.1,length=36651,assembly=b37>
+##contig=<ID=GL000197.1,length=37175,assembly=b37>
+##contig=<ID=GL000203.1,length=37498,assembly=b37>
+##contig=<ID=GL000246.1,length=38154,assembly=b37>
+##contig=<ID=GL000249.1,length=38502,assembly=b37>
+##contig=<ID=GL000196.1,length=38914,assembly=b37>
+##contig=<ID=GL000248.1,length=39786,assembly=b37>
+##contig=<ID=GL000244.1,length=39929,assembly=b37>
+##contig=<ID=GL000238.1,length=39939,assembly=b37>
+##contig=<ID=GL000202.1,length=40103,assembly=b37>
+##contig=<ID=GL000234.1,length=40531,assembly=b37>
+##contig=<ID=GL000232.1,length=40652,assembly=b37>
+##contig=<ID=GL000206.1,length=41001,assembly=b37>
+##contig=<ID=GL000240.1,length=41933,assembly=b37>
+##contig=<ID=GL000236.1,length=41934,assembly=b37>
+##contig=<ID=GL000241.1,length=42152,assembly=b37>
+##contig=<ID=GL000243.1,length=43341,assembly=b37>
+##contig=<ID=GL000242.1,length=43523,assembly=b37>
+##contig=<ID=GL000230.1,length=43691,assembly=b37>
+##contig=<ID=GL000237.1,length=45867,assembly=b37>
+##contig=<ID=GL000233.1,length=45941,assembly=b37>
+##contig=<ID=GL000204.1,length=81310,assembly=b37>
+##contig=<ID=GL000198.1,length=90085,assembly=b37>
+##contig=<ID=GL000208.1,length=92689,assembly=b37>
+##contig=<ID=GL000191.1,length=106433,assembly=b37>
+##contig=<ID=GL000227.1,length=128374,assembly=b37>
+##contig=<ID=GL000228.1,length=129120,assembly=b37>
+##contig=<ID=GL000214.1,length=137718,assembly=b37>
+##contig=<ID=GL000221.1,length=155397,assembly=b37>
+##contig=<ID=GL000209.1,length=159169,assembly=b37>
+##contig=<ID=GL000218.1,length=161147,assembly=b37>
+##contig=<ID=GL000220.1,length=161802,assembly=b37>
+##contig=<ID=GL000213.1,length=164239,assembly=b37>
+##contig=<ID=GL000211.1,length=166566,assembly=b37>
+##contig=<ID=GL000199.1,length=169874,assembly=b37>
+##contig=<ID=GL000217.1,length=172149,assembly=b37>
+##contig=<ID=GL000216.1,length=172294,assembly=b37>
+##contig=<ID=GL000215.1,length=172545,assembly=b37>
+##contig=<ID=GL000205.1,length=174588,assembly=b37>
+##contig=<ID=GL000219.1,length=179198,assembly=b37>
+##contig=<ID=GL000224.1,length=179693,assembly=b37>
+##contig=<ID=GL000223.1,length=180455,assembly=b37>
+##contig=<ID=GL000195.1,length=182896,assembly=b37>
+##contig=<ID=GL000212.1,length=186858,assembly=b37>
+##contig=<ID=GL000222.1,length=186861,assembly=b37>
+##contig=<ID=GL000200.1,length=187035,assembly=b37>
+##contig=<ID=GL000193.1,length=189789,assembly=b37>
+##contig=<ID=GL000194.1,length=191469,assembly=b37>
+##contig=<ID=GL000225.1,length=211173,assembly=b37>
+##contig=<ID=GL000192.1,length=547496,assembly=b37>
+##reference=file:///humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta
+##source=PhaseByTransmission
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	NA12878	NA12891	NA12892
+X	135282092	rs5974586	G	C	2193.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=4.26;DB;DP=203;Dels=0.00;FS=0.540;HaplotypeScore=0.659;MLEAC=2;MLEAF=0.333;MQ=59.47;MQ0=0;MQRankSum=1.00;QD=13.46;ReadPosRankSum=1.34;SB=-1.069e+03;VQSLOD=9.09;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|1:47,33:80:99:1026,0,1466:116	0|0:40,0:40:99:0,117,1486:116	1|0:43,40:83:99:1206,0,1311:116
+3	68765638	rs1504297	C	G	4623.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-5.561e+00;DB;DP=225;Dels=0.00;FS=3.18;HaplotypeScore=0.843;MLEAC=4;MLEAF=0.667;MQ=59.80;MQ0=0;MQRankSum=-6.190e-01;QD=20.55;ReadPosRankSum=-1.001e+00;SB=-2.371e+03;VQSLOD=8.74;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:40,39:79:99:1220,0,1330:127	1|1:0,75:75:99:2518,205,0:127	0|1:37,34:71:99:885,0,1185:127
+12	48120010	rs3829317	A	C	4015.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=1.66;DB;DP=162;Dels=0.00;FS=1.83;HaplotypeScore=2.18;MLEAC=5;MLEAF=0.833;MQ=59.48;MQ0=0;MQRankSum=0.154;QD=24.78;ReadPosRankSum=0.482;SB=-2.240e+03;VQSLOD=8.13;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,63:63:99:2024,163,0:110	1|0:24,27:51:99:550,0,540:110	1|1:0,48:48:99:1441,111,0:110
+11	65339346	rs1194104	C	T	1804.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-2.465e+00;DB;DP=189;Dels=0.00;FS=8.43;HaplotypeScore=2.27;MLEAC=2;MLEAF=0.333;MQ=59.31;MQ0=0;MQRankSum=-1.200e-01;QD=13.67;ReadPosRankSum=-3.060e-01;SB=-1.061e+03;VQSLOD=7.95;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:57,0:57:99:0,157,2050:127	0|1:30,35:65:99:781,0,822:127	0|1:23,44:67:99:1062,0,690:127
+4	152029268	.	CT	C	358.22	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=2.69;DP=199;FS=13.72;HaplotypeScore=32.57;MLEAC=2;MLEAF=0.333;MQ=55.17;MQ0=0;MQRankSum=-9.150e-01;QD=2.42;RPA=17,16;RU=T;ReadPosRankSum=0.548;SB=-1.419e+02;STR;VQSLOD=0.393;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:50,15:75:99:301,0,225:38	1|0:56,11:72:99:105,0,209:38	0|0:46,2:51:38:0,38,284:38
+2	1143476	rs4998209	C	T	1483.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-4.814e+00;DB;DP=189;Dels=0.00;FS=5.61;HaplotypeScore=0.324;MLEAC=2;MLEAF=0.333;MQ=58.36;MQ0=0;MQRankSum=1.58;QD=12.06;ReadPosRankSum=0.326;SB=-9.320e+02;VQSLOD=6.81;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:66,0:66:99:0,178,2264:127	0|1:33,38:71:99:844,0,1024:127	0|1:26,26:52:99:678,0,719:127
+14	38160457	rs2181345	A	C	4683.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=169;Dels=0.00;FS=0.00;HaplotypeScore=2.54;MLEAC=6;MLEAF=1.00;MQ=59.00;MQ0=0;QD=27.71;SB=-2.390e+03;VQSLOD=9.99;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,56:56:99:1818,141,0:107	1|1:0,58:58:99:1523,123,0:107	1|1:0,53:55:99:1342,108,0:107
+2	198567638	rs12619333	C	G	2201.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-2.800e-02;DB;DP=240;Dels=0.00;FS=4.76;HaplotypeScore=1.37;MLEAC=2;MLEAF=0.333;MQ=59.37;MQ0=1;MQRankSum=0.131;QD=13.42;ReadPosRankSum=0.123;SB=-1.051e+03;VQSLOD=8.13;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:38,45:84:99:1298,0,1249:127	1|0:45,35:80:99:942,0,1493:127	0|0:76,0:76:99:0,196,2542:127
+5	80900719	rs2917540	G	T	4938.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=3.26;DB;DP=240;Dels=0.00;FS=0.489;HaplotypeScore=0.596;MLEAC=4;MLEAF=0.667;MQ=59.63;MQ0=0;MQRankSum=-2.115e+00;QD=20.58;ReadPosRankSum=0.288;SB=-2.548e+03;VQSLOD=8.44;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|1:52,40:92:99:1207,0,1768:127	0|1:37,33:70:99:960,0,1205:127	1|1:0,78:78:99:2771,211,0:127
+11	10741836	rs72853043	G	A	175.24	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=0.127;DB;DP=174;Dels=0.00;FS=7.09;HaplotypeScore=7.46;MLEAC=1;MLEAF=0.167;MQ=55.72;MQ0=1;MQRankSum=-1.291e+00;QD=3.44;ReadPosRankSum=-1.185e+00;SB=-2.220e+02;VQSLOD=1.61;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:78,0:78:99:0,105,1278:65	0|0:42,0:45:66:0,66,802:65	0|1:21,29:51:99:210,0,469:65
+7	158686803	rs55765467	T	C	200.26	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=-1.011e+01;DB;DP=310;Dels=0.00;FS=2.60;HaplotypeScore=1.28;MLEAC=3;MLEAF=0.500;MQ=47.32;MQ0=0;MQRankSum=-4.959e+00;QD=0.650;ReadPosRankSum=-1.096e+01;SB=-1.206e+03;VQSLOD=-1.764e+01;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0/1:64,33:97:99:148,0,1949:32	0/1:73,45:118:58:58,0,2287:32	0/1:65,30:95:33:33,0,1910:32
+1	59635894	rs331648	T	A	839.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-4.038e+00;DB;DP=211;Dels=0.00;FS=1.43;HaplotypeScore=1.55;MLEAC=1;MLEAF=0.167;MQ=58.68;MQ0=0;MQRankSum=-4.220e-01;QD=11.82;ReadPosRankSum=-1.800e-01;SB=-5.520e+02;VQSLOD=7.95;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:78,0:78:99:0,199,2578:127	0|0:62,0:62:99:0,169,2205:127	0|1:33,38:71:99:874,0,897:127
+8	113376378	rs41340951	T	C	4379.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-8.019e+00;DB;DP=211;Dels=0.00;FS=1.83;HaplotypeScore=0.263;MLEAC=4;MLEAF=0.667;MQ=59.85;MQ0=0;MQRankSum=1.27;QD=20.75;ReadPosRankSum=0.144;SB=-1.893e+03;VQSLOD=8.84;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,67:67:99:2221,187,0:127	1|0:32,37:69:99:1083,0,1066:127	1|0:35,40:75:99:1075,0,1108:127
+8	56608897	rs57623198	C	T	1911.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-1.515e+00;DB;DP=229;Dels=0.00;FS=0.00;HaplotypeScore=1.13;MLEAC=2;MLEAF=0.333;MQ=59.80;MQ0=0;MQRankSum=0.336;QD=12.66;ReadPosRankSum=-2.326e+00;SB=-9.730e+02;VQSLOD=8.56;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:78,0:78:99:0,229,2989:127	0|1:44,30:74:99:897,0,1444:127	0|1:44,33:77:99:1053,0,1400:127
+8	14463368	rs1355302	T	A	2523.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=6.79;DB;DP=236;Dels=0.00;FS=3.78;HaplotypeScore=0.324;MLEAC=2;MLEAF=0.333;MQ=59.14;MQ0=0;MQRankSum=-3.810e-01;QD=15.97;ReadPosRankSum=-4.500e-02;SB=-1.421e+03;VQSLOD=7.69;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:36,43:79:99:1332,0,1176:127	0|0:78,0:78:99:0,214,2749:127	1|0:35,44:79:99:1230,0,1162:127
+20	51353834	rs241795	G	A	6115.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=7.91;DB;DP=268;Dels=0.00;FS=0.00;HaplotypeScore=0.245;MLEAC=4;MLEAF=0.667;MQ=59.38;MQ0=0;MQRankSum=-5.180e-01;QD=22.82;ReadPosRankSum=-2.530e-01;SB=-3.328e+03;VQSLOD=8.40;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:46,54:100:99:1663,0,1247:127	1|1:0,91:91:99:3189,247,0:127	0|1:36,41:77:99:1263,0,901:127
+3	99106655	rs2623376	A	G	1093.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.49;DB;DP=191;Dels=0.00;FS=2.28;HaplotypeScore=0.627;MLEAC=2;MLEAF=0.333;MQ=59.76;MQ0=0;MQRankSum=-1.141e+00;QD=9.51;ReadPosRankSum=0.079;SB=-5.610e+02;VQSLOD=8.15;culprit=QD	GT:AD:DP:GQ:PL:TP	0|1:30,22:52:99:653,0,970:127	0|0:76,0:76:99:0,193,2462:127	1|0:44,19:63:99:479,0,1261:127
+6	26687649	.	G	C	1654.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=9.72;DP=410;Dels=0.00;FS=5.97;HaplotypeScore=5.08;MLEAC=2;MLEAF=0.333;MQ=28.19;MQ0=32;MQRankSum=0.048;QD=6.17;ReadPosRankSum=0.408;SB=-5.110e+02;VQSLOD=-8.735e+00;culprit=DP	GT:AD:DP:GQ:PL:TP	0|1:117,49:166:99:1013,0,2495:127	0|0:141,1:142:99:0,244,2576:127	1|0:70,32:102:99:680,0,1048:127
+2	133338909	rs72548244	CT	C	2103.21	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=0.444;DB;DP=212;FS=5.22;HaplotypeScore=27.63;MLEAC=5;MLEAF=0.833;MQ=59.64;MQ0=0;MQRankSum=2.43;QD=9.92;RPA=15,14;RU=T;ReadPosRankSum=2.78;SB=-1.050e+03;STR;VQSLOD=2.66;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:17,39:59:61:837,61,0:60	1|0:47,22:72:99:241,0,444:60	1|1:20,58:81:74:1076,74,0:60
+1	25154033	rs55822956	GT	G	743.25	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=3.32;DB;DP=214;FS=2.27;HaplotypeScore=77.33;MLEAC=3;MLEAF=0.500;MQ=55.48;MQ0=0;MQRankSum=0.114;QD=3.47;RPA=19,18;RU=T;ReadPosRankSum=0.884;SB=-3.070e+02;STR;VQSLOD=2.10;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:60,12:82:67:292,0,67:18	0/1:55,7:69:42:245,0,42:18	0/1:37,21:60:18:254,0,18:18
+7	79508376	rs2525826	G	T	716.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=2.15;DB;DP=196;Dels=0.00;FS=0.00;HaplotypeScore=0.866;MLEAC=1;MLEAF=0.167;MQ=59.48;MQ0=0;MQRankSum=1.42;QD=13.51;ReadPosRankSum=0.263;SB=-4.080e+02;VQSLOD=9.57;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:65,0:65:99:0,181,2312:127	0|0:78,0:78:99:0,226,2916:127	0|1:27,26:53:99:751,0,845:127
+15	100799787	rs4965610	C	T	2133.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=8.37;DB;DP=230;Dels=0.00;FS=1.04;HaplotypeScore=0.543;MLEAC=3;MLEAF=0.500;MQ=58.84;MQ0=0;MQRankSum=0.169;QD=9.28;ReadPosRankSum=-9.800e-02;SB=-1.328e+03;VQSLOD=7.88;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:40,36:76:99:948,0,701:127	0/1:45,38:83:99:761,0,635:127	0/1:35,36:71:99:463,0,706:127
+3	189981901	.	A	G	179.25	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=2.26;DP=274;Dels=0.00;FS=73.74;HaplotypeScore=1.83;MLEAC=1;MLEAF=0.167;MQ=54.08;MQ0=6;MQRankSum=-2.651e+00;QD=1.97;ReadPosRankSum=-6.101e+00;SB=-6.400e+01;VQSLOD=-1.820e+01;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|0:64,27:91:99:214,0,679:51	1|0:78,10:88:0:0,21,1685:51	0|0:86,9:95:74:0,74,1891:51
+5	102962771	rs6866105	A	G	5087.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-2.665e+00;DB;DP=200;Dels=0.00;FS=8.08;HaplotypeScore=2.28;MLEAC=5;MLEAF=0.833;MQ=58.71;MQ0=0;MQRankSum=-5.030e-01;QD=25.44;ReadPosRankSum=-4.820e-01;SB=-2.172e+03;VQSLOD=7.22;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,75:75:99:2373,184,0:127	1|1:0,59:59:99:1776,141,0:127	1|0:31,35:66:99:938,0,803:127
+22	34204930	rs13053313	T	C	435.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.517e+00;DB;DP=82;Dels=0.00;FS=5.84;HaplotypeScore=0.533;MLEAC=1;MLEAF=0.167;MQ=58.65;MQ0=0;MQRankSum=1.12;QD=12.80;ReadPosRankSum=-1.270e+00;SB=-1.170e+02;VQSLOD=6.44;culprit=DP	GT:AD:DP:GQ:PL:TP	0|0:12,0:12:27:0,27,360:27	0|1:16,18:34:99:470,0,403:27	0|0:36,0:36:93:0,93,1230:27
+12	29935607	rs7305813	A	C	810.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=0.307;DB;DP=203;Dels=0.00;FS=14.33;HaplotypeScore=1.98;MLEAC=1;MLEAF=0.167;MQ=59.57;MQ0=0;MQRankSum=-1.640e-01;QD=12.86;ReadPosRankSum=-7.330e-01;SB=-2.950e+02;VQSLOD=7.90;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:71,0:71:99:0,193,2479:127	0|0:69,0:69:99:0,196,2464:127	0|1:28,35:63:99:845,0,847:127
+20	41560394	rs761027	A	G	5634.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-4.444e+00;DB;DP=222;Dels=0.00;FS=0.829;HaplotypeScore=1.14;MLEAC=5;MLEAF=0.833;MQ=59.60;MQ0=0;MQRankSum=0.392;QD=25.38;ReadPosRankSum=-6.400e-02;SB=-3.048e+03;VQSLOD=10.04;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,72:72:99:2228,187,0:127	1|1:0,82:82:99:2435,211,0:127	1|0:25,43:68:99:971,0,567:127
+4	39062189	rs2566127	T	C	2641.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-2.019e+00;DB;DP=201;Dels=0.00;FS=1.10;HaplotypeScore=2.88;MLEAC=3;MLEAF=0.500;MQ=58.96;MQ0=0;MQRankSum=0.932;QD=13.14;ReadPosRankSum=-5.960e-01;SB=-1.401e+03;VQSLOD=7.97;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:35,29:64:99:880,0,1168:127	0/1:37,32:70:99:796,0,1021:127	0/1:31,36:67:99:1004,0,877:127
+10	19567676	rs61458006	G	T	599.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.610e+00;DB;DP=195;Dels=0.00;FS=0.844;HaplotypeScore=0.879;MLEAC=1;MLEAF=0.167;MQ=59.57;MQ0=0;MQRankSum=-1.910e-01;QD=11.31;ReadPosRankSum=-1.635e+00;SB=-2.780e+02;VQSLOD=9.36;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:75,0:75:99:0,208,2645:127	0|1:30,23:53:99:634,0,915:127	0|0:67,0:67:99:0,199,2540:127
+1	110091282	rs1279195	C	T	952.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=2.65;DB;DP=101;Dels=0.00;FS=19.67;HaplotypeScore=1.92;MLEAC=2;MLEAF=0.333;MQ=56.72;MQ0=0;MQRankSum=-3.450e-01;QD=12.37;ReadPosRankSum=0.567;SB=-5.350e+02;VQSLOD=4.17;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:14,29:46:99:726,0,219:42	1|0:13,12:31:99:265,0,298:42	0|0:18,0:24:42:0,42,522:42
+7	12502849	rs848025	C	G	4109.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-8.809e+00;DB;DP=220;Dels=0.00;FS=1.14;HaplotypeScore=1.80;MLEAC=4;MLEAF=0.667;MQ=59.56;MQ0=0;MQRankSum=0.625;QD=18.68;ReadPosRankSum=-1.900e-02;SB=-1.989e+03;VQSLOD=8.71;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:47,45:92:99:1216,0,1501:127	1|1:0,71:71:99:2145,184,0:127	0|1:27,30:57:99:748,0,743:127
+8	4048009	rs7007410	C	T	2713.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.954;DB;DP=197;Dels=0.00;FS=2.48;HaplotypeScore=0.712;MLEAC=3;MLEAF=0.500;MQ=57.03;MQ0=0;MQRankSum=0.882;QD=13.77;ReadPosRankSum=-4.960e-01;SB=-1.406e+03;VQSLOD=6.50;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:38,30:68:99:847,0,1168:127	0/1:30,30:60:99:916,0,921:127	0/1:32,36:69:99:989,0,882:127
+19	28150587	rs4404191	A	G	7419.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=209;Dels=0.00;FS=0.00;HaplotypeScore=0.245;MLEAC=6;MLEAF=1.00;MQ=59.61;MQ0=0;QD=35.50;SB=-3.717e+03;VQSLOD=11.99;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,70:70:99:2584,202,0:127	1|1:0,74:74:99:2509,193,0:127	1|1:0,65:65:99:2326,181,0:127
+2	144289763	rs7607879	C	T	3308.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=1.39;DB;DP=225;Dels=0.00;FS=9.72;HaplotypeScore=1.50;MLEAC=3;MLEAF=0.500;MQ=59.53;MQ0=0;MQRankSum=0.283;QD=14.70;ReadPosRankSum=1.39;SB=-1.760e+03;VQSLOD=8.24;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:41,39:81:99:1190,0,1312:127	0/1:28,36:64:99:1057,0,834:127	0/1:44,36:80:99:1061,0,1275:127
+18	50973169	rs11661305	A	G	5320.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=2.75;DB;DP=196;Dels=0.00;FS=2.57;HaplotypeScore=1.13;MLEAC=5;MLEAF=0.833;MQ=57.73;MQ0=0;MQRankSum=0.246;QD=27.14;ReadPosRankSum=0.186;SB=-2.411e+03;VQSLOD=7.50;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:0,74:74:99:2621,202,0:127	1|0:30,37:67:99:1009,0,842:127	1|1:0,55:55:99:1690,132,0:127
+20	29566945	rs6119037	C	G	1427.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=-3.826e+00;DB;DP=271;Dels=0.00;FS=1.15;HaplotypeScore=2.76;MLEAC=2;MLEAF=0.333;MQ=47.42;MQ0=21;MQRankSum=2.42;QD=8.06;ReadPosRankSum=0.363;SB=-7.560e+02;VQSLOD=1.79;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:59,32:91:99:782,0,1210:127	1|0:55,31:86:99:684,0,1422:127	0|0:94,0:94:99:0,208,2592:127
+1	8216712	rs11121115	A	G	1540.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.917;DB;DP=131;Dels=0.00;FS=11.67;HaplotypeScore=3.35;MLEAC=3;MLEAF=0.500;MQ=57.74;MQ0=1;MQRankSum=0.427;QD=11.76;ReadPosRankSum=-2.190e-01;SB=-9.390e+02;VQSLOD=5.53;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:23,28:51:99:681,0,668:127	0/1:16,18:34:99:338,0,244:127	0/1:24,22:46:99:560,0,323:127
+6	1620147	rs2569882	T	C	252.3	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-8.620e-01;DB;DP=38;Dels=0.00;FS=8.02;HaplotypeScore=0.222;MLEAC=5;MLEAF=0.833;MQ=57.65;MQ0=0;MQRankSum=-9.180e-01;QD=9.34;ReadPosRankSum=0.584;SB=-4.005e+01;VQSLOD=4.33;culprit=DP	GT:AD:DP:GQ:PL:TP	1|1:0,17:17:21:254,21,0:4	1|0:3,8:11:2:0,3,40:4	1|1:0,10:10:3:39,3,0:4
+15	71657506	.	A	G	140.4	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=-1.611e+00;DP=133;Dels=0.00;FS=35.59;HaplotypeScore=4.06;MLEAC=2;MLEAF=0.333;MQ=51.29;MQ0=1;MQRankSum=-3.344e+00;QD=1.53;ReadPosRankSum=-3.999e+00;SB=-5.015e+01;VQSLOD=-4.805e+00;culprit=QD	GT:AD:DP:GQ:PL:TP	1|0:46,11:57:93:93,0,851:15	1|0:23,12:35:86:86,0,299:15	0|0:33,8:41:15:0,15,503:15
+10	116646860	rs4752347	T	A	4159.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-3.459e+00;DB;DP=197;Dels=0.00;FS=3.52;HaplotypeScore=0.631;MLEAC=4;MLEAF=0.667;MQ=59.27;MQ0=0;MQRankSum=1.05;QD=21.11;ReadPosRankSum=-1.271e+00;SB=-2.347e+03;VQSLOD=8.33;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|1:0,63:63:99:2191,169,0:127	1|0:31,35:66:99:1031,0,863:127	1|0:31,37:68:99:937,0,774:127
+1	226163330	rs10915914	C	G	747.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-3.123e+00;DB;DP=121;Dels=0.00;FS=0.863;HaplotypeScore=0.829;MLEAC=2;MLEAF=0.333;MQ=58.96;MQ0=0;MQRankSum=-4.780e-01;QD=9.70;ReadPosRankSum=-1.340e-01;SB=-2.780e+02;VQSLOD=8.08;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:43,1:44:99:0,117,1447:116	0|1:17,15:32:99:289,0,390:116	0|1:26,19:45:99:497,0,677:116
+10	29082980	.	G	C	42.53	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=-1.216e+00;DP=107;Dels=0.00;FS=60.98;HaplotypeScore=1.09;MLEAC=3;MLEAF=0.500;MQ=55.72;MQ0=0;MQRankSum=-6.330e-01;QD=0.400;ReadPosRankSum=-4.307e+00;SB=-2.798e-01;VQSLOD=-1.117e+01;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:30,12:43:12:12,0,757:12	0/1:19,11:30:35:35,0,429:12	0/1:25,9:34:34:34,0,388:12
+8	102355800	rs10103956	G	T	1756.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=0.927;DB;DP=189;Dels=0.00;FS=5.92;HaplotypeScore=1.54;MLEAC=2;MLEAF=0.333;MQ=59.66;MQ0=0;MQRankSum=-4.200e-01;QD=13.41;ReadPosRankSum=-1.900e-02;SB=-5.470e+02;VQSLOD=8.16;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:32,38:70:99:1078,0,999:127	1|0:35,26:61:99:717,0,1103:127	0|0:57,0:58:99:0,156,2011:127
+7	38984187	rs118081099	A	C	569.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.100e-01;DB;DP=182;Dels=0.00;FS=6.20;HaplotypeScore=0.553;MLEAC=1;MLEAF=0.167;MQ=54.22;MQ0=0;MQRankSum=1.67;QD=9.33;ReadPosRankSum=1.16;SB=-1.260e+02;VQSLOD=4.89;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:72,0:72:99:0,196,2446:127	0|1:38,23:61:99:604,0,1196:127	0|0:48,1:49:99:0,138,1711:127
+7	4683258	rs62450857	G	A	1127.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-9.910e-01;DB;DP=191;Dels=0.00;FS=3.24;HaplotypeScore=0.277;MLEAC=1;MLEAF=0.167;MQ=57.16;MQ0=0;MQRankSum=1.30;QD=14.09;ReadPosRankSum=0.469;SB=-4.730e+02;VQSLOD=6.62;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:66,0:66:99:0,196,2495:120	0|1:38,42:80:99:1162,0,1016:120	0|0:45,0:45:99:0,120,1531:120
+7	101161506	rs2158739	C	T	4522.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=1.70;DB;DP=172;Dels=0.00;FS=4.28;HaplotypeScore=1.51;MLEAC=5;MLEAF=0.833;MQ=58.18;MQ0=0;MQRankSum=-2.950e-01;QD=26.29;ReadPosRankSum=0.974;SB=-2.287e+03;VQSLOD=8.28;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,72:73:99:2443,202,0:110	1|0:23,26:50:99:711,0,586:110	1|1:0,48:49:99:1368,111,0:110
+2	228532558	rs6436725	G	A	3484.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=7.16;DB;DP=263;Dels=0.00;FS=1.55;HaplotypeScore=4.97;MLEAC=3;MLEAF=0.500;MQ=58.60;MQ0=0;MQRankSum=1.14;QD=21.91;ReadPosRankSum=-4.160e-01;SB=-1.472e+03;VQSLOD=5.44;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:42,47:89:99:1549,0,932:127	0|0:104,0:104:99:0,247,2939:127	1|1:0,69:70:99:1935,156,0:127
+3	76722766	rs264537	C	G	845.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=3.67;DB;DP=202;Dels=0.00;FS=0.00;HaplotypeScore=0.277;MLEAC=1;MLEAF=0.167;MQ=59.79;MQ0=0;MQRankSum=-7.950e-01;QD=13.21;ReadPosRankSum=1.05;SB=-2.910e+02;VQSLOD=8.53;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:70,0:70:99:0,208,2570:127	0|0:68,0:68:99:0,193,2332:127	0|1:34,30:64:99:880,0,995:127
+9	78741390	rs7049138	G	A	1797.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=6.24;DB;DP=168;Dels=0.00;FS=4.00;HaplotypeScore=1.09;MLEAC=3;MLEAF=0.500;MQ=55.32;MQ0=2;MQRankSum=-1.673e+00;QD=16.34;ReadPosRankSum=-6.260e-01;SB=-7.740e+02;VQSLOD=5.19;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:37,33:70:99:828,0,918:80	1|1:0,40:40:81:1014,81,0:80	0|0:58,0:58:99:0,129,1403:80
+17	21547285	rs62049731	A	C	1322.26	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=-9.870e-01;DB;DP=569;Dels=0.00;FS=2.32;HaplotypeScore=42.45;MLEAC=3;MLEAF=0.500;MQ=44.59;MQ0=24;MQRankSum=-6.240e+00;QD=2.32;ReadPosRankSum=-5.171e+00;SB=-6.369e+02;VQSLOD=-3.953e+01;culprit=DP	GT:AD:DP:GQ:PL:TP	0/1:146,28:174:99:217,0,4187:127	0/1:162,56:218:99:804,0,4298:127	0/1:139,38:177:99:340,0,3842:127
+1	100763317	rs6681810	G	C	5583.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=196;Dels=0.00;FS=0.00;HaplotypeScore=3.72;MLEAC=6;MLEAF=1.00;MQ=58.52;MQ0=0;QD=28.48;SB=-2.737e+03;VQSLOD=7.92;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:1,76:77:99:2211,192,0:127	1|1:0,56:56:99:1593,141,0:127	1|1:0,62:62:99:1779,156,0:127
+1	235750933	rs111686144	GA	G	679.19	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=2.04;DB;DP=64;FS=7.39;HaplotypeScore=400.20;MLEAC=4;MLEAF=0.667;MQ=32.98;MQ0=0;MQRankSum=-5.900e-02;QD=10.61;ReadPosRankSum=2.44;SB=-1.575e+02;VQSLOD=-3.140e-01;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:12,0:12:6:110,0,6:6	1|1:9,9:19:31:491,31,0:6	0|1:31,0:32:99:128,0,160:6
+18	67950442	rs62091919	T	G	1779.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-2.517e+00;DB;DP=195;Dels=0.00;FS=0.562;HaplotypeScore=1.55;MLEAC=2;MLEAF=0.333;MQ=59.26;MQ0=0;MQRankSum=6.000e-03;QD=12.89;ReadPosRankSum=-2.680e-01;SB=-9.170e+02;VQSLOD=9.63;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|1:40,32:72:99:967,0,1318:127	0|0:55,2:57:99:0,141,1865:127	1|0:36,30:66:99:851,0,1042:127
+2	96514373	rs10186946	C	T	206.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=4.49;DB;DP=175;Dels=0.00;FS=2.81;HaplotypeScore=2.42;MLEAC=2;MLEAF=0.333;MQ=39.07;MQ0=7;MQRankSum=-7.529e+00;QD=1.61;ReadPosRankSum=0.813;SB=-2.501e+01;VQSLOD=-8.655e-01;culprit=QD	GT:AD:DP:GQ:PL:TP	1|0:35,23:58:62:62,0,484:61	1|0:22,46:70:99:183,0,387:61	0|0:46,0:47:99:0,99,1162:61
+13	28463938	rs954750	C	T	2740.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=3.21;DB;DP=242;Dels=0.00;FS=0.00;HaplotypeScore=4.01;MLEAC=2;MLEAF=0.333;MQ=59.46;MQ0=0;MQRankSum=0.880;QD=16.61;ReadPosRankSum=-6.170e-01;SB=-1.312e+03;VQSLOD=6.77;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:40,43:83:99:1362,0,1242:127	1|0:35,47:82:99:1417,0,1010:127	0|0:76,0:77:99:0,205,2635:127
+5	132377304	rs72801439	A	T	858.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.113e+00;DB;DP=219;Dels=0.00;FS=10.63;HaplotypeScore=0.664;MLEAC=1;MLEAF=0.167;MQ=59.41;MQ0=0;MQRankSum=-8.810e-01;QD=11.29;ReadPosRankSum=0.435;SB=-3.050e+02;VQSLOD=7.68;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:67,0:67:99:0,163,2149:127	0|1:43,33:76:99:893,0,1280:127	0|0:76,0:76:99:0,199,2553:127
+19	54644879	rs36636	G	A	1790.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=2.51;DB;DP=187;Dels=0.00;FS=4.41;HaplotypeScore=1.50;MLEAC=2;MLEAF=0.333;MQ=59.51;MQ0=0;MQRankSum=-1.266e+00;QD=13.88;ReadPosRankSum=-1.226e+00;SB=-1.081e+03;VQSLOD=7.80;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:30,27:57:99:811,0,726:127	1|0:31,41:72:99:1018,0,730:127	0|0:58,0:58:99:0,144,1815:127
+9	130235282	.	A	G	166.26	VQSRTrancheSNP99.90to100.00	AC=2;AF=0.333;AN=6;BaseQRankSum=-8.543e+00;DP=232;Dels=0.00;FS=233.04;HaplotypeScore=3.00;MLEAC=2;MLEAF=0.333;MQ=59.04;MQ0=0;MQRankSum=-2.038e+00;QD=1.15;ReadPosRankSum=-7.649e+00;SB=-3.100e-03;VQSLOD=-1.398e+02;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:74,14:88:99:0,108,2160:59	0|1:42,36:79:60:60,0,966:59	0|1:47,18:65:99:145,0,922:59
+6	162459664	rs2849564	C	T	1819.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=8.40;DB;DP=201;Dels=0.00;FS=3.30;HaplotypeScore=2.56;MLEAC=2;MLEAF=0.333;MQ=59.38;MQ0=0;MQRankSum=1.79;QD=12.90;ReadPosRankSum=-1.045e+00;SB=-1.068e+03;VQSLOD=8.12;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:28,40:68:99:1007,0,793:120	1|0:38,35:73:99:851,0,831:120	0|0:60,0:60:99:0,120,1421:120
+12	112830546	rs150699511	C	A	487.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.014e+00;DB;DP=179;Dels=0.00;FS=0.860;HaplotypeScore=2.34;MLEAC=1;MLEAF=0.167;MQ=59.16;MQ0=0;MQRankSum=1.14;QD=8.86;ReadPosRankSum=0.950;SB=-2.870e+02;VQSLOD=8.11;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:62,0:62:99:0,166,2141:127	0|1:34,21:55:99:522,0,751:127	0|0:62,0:62:99:0,141,1808:127
+4	122900130	rs4833786	C	T	2361.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-3.900e-01;DB;DP=244;Dels=0.00;FS=0.495;HaplotypeScore=0.543;MLEAC=2;MLEAF=0.333;MQ=59.91;MQ0=0;MQRankSum=-6.280e-01;QD=15.23;ReadPosRankSum=1.22;SB=-1.282e+03;VQSLOD=8.81;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:89,0:89:99:0,250,3286:127	0|1:42,44:86:99:1257,0,1325:127	0|1:32,37:69:99:1143,0,941:127
+11	86061661	rs11825046	T	C	6014.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-3.250e+00;DB;DP=282;Dels=0.00;FS=0.960;HaplotypeScore=1.64;MLEAC=4;MLEAF=0.667;MQ=59.57;MQ0=0;MQRankSum=1.06;QD=21.33;ReadPosRankSum=-1.763e+00;SB=-3.081e+03;VQSLOD=7.35;culprit=DP	GT:AD:DP:GQ:PL:TP	1|0:54,49:103:99:1498,0,1848:127	1|1:0,83:83:99:2924,223,0:127	0|1:44,52:96:99:1592,0,1380:127
+7	62232046	.	C	T	1155.24	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.643e+00;DP=230;Dels=0.00;FS=6.30;HaplotypeScore=12.77;MLEAC=1;MLEAF=0.167;MQ=58.61;MQ0=3;MQRankSum=-6.970e-01;QD=15.20;ReadPosRankSum=-1.202e+00;SB=-4.440e+02;VQSLOD=2.57;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:77,1:78:99:0,217,2824:127	0|0:76,0:76:99:0,202,2604:127	0|1:34,42:76:99:1190,0,994:127
+14	87263523	rs2542229	A	C	8104.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=239;Dels=0.00;FS=0.00;HaplotypeScore=0.631;MLEAC=6;MLEAF=1.00;MQ=59.17;MQ0=0;QD=33.91;SB=-4.393e+03;VQSLOD=11.30;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,77:77:99:2810,214,0:127	1|1:0,85:85:99:2877,223,0:127	1|1:0,77:77:99:2417,187,0:127
+9	16302655	rs9298755	T	G	1394.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=3.36;DB;DP=200;Dels=0.00;FS=0.00;HaplotypeScore=3.19;MLEAC=2;MLEAF=0.333;MQ=59.33;MQ0=0;MQRankSum=0.586;QD=10.03;ReadPosRankSum=-7.710e-01;SB=-8.720e+02;VQSLOD=7.77;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:60,1:61:99:0,165,2004:127	0|1:29,28:57:99:494,0,759:127	0|1:41,40:82:99:939,0,1069:127
+9	138617823	rs55724592	C	T	53.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.800e-01;DB;DP=72;Dels=0.00;FS=8.08;HaplotypeScore=1.02;MLEAC=1;MLEAF=0.167;MQ=58.90;MQ0=0;MQRankSum=0.851;QD=2.66;ReadPosRankSum=-3.440e-01;SB=-9.096e+01;VQSLOD=4.27;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:20,0:20:48:0,48,580:44	0|0:32,0:32:48:0,48,577:44	0|1:10,10:20:88:88,0,199:44
+2	75490647	rs112304545	T	TGG	1000.21	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=0.322;DB;DP=188;FS=0.785;HaplotypeScore=58.72;MLEAC=4;MLEAF=0.667;MQ=57.19;MQ0=0;MQRankSum=-2.290e-01;QD=5.32;RPA=10,12;RU=G;ReadPosRankSum=-2.534e+00;SB=-4.650e+02;STR;VQSLOD=2.69;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:33,35:76:57:976,57,0:56	1|0:39,3:49:38:38,0,730:56	1|0:50,4:63:37:37,0,900:56
+4	161180100	rs167176	G	C	2497.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=6.81;DB;DP=191;Dels=0.00;FS=5.37;HaplotypeScore=0.781;MLEAC=3;MLEAF=0.500;MQ=59.78;MQ0=0;MQRankSum=-5.840e-01;QD=13.07;ReadPosRankSum=0.756;SB=-1.206e+03;VQSLOD=8.00;culprit=MQ	GT:AD:DP:GQ:PL:TP	0/1:32,36:68:99:1100,0,895:127	0/1:41,35:76:99:987,0,1028:127	0/1:29,17:47:99:449,0,820:127
+4	48922864	rs7697262	G	C	1383.23	VQSRTrancheSNP99.00to99.90	AC=6;AF=1.00;AN=6;DB;DP=100;Dels=0.00;FS=0.00;HaplotypeScore=0.00;MLEAC=6;MLEAF=1.00;MQ=20.20;MQ0=24;QD=13.83;SB=-3.860e+02;VQSLOD=-3.210e-01;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:3,38:41:57:625,57,0:32	1|1:0,28:28:33:368,33,0:32	1|1:2,29:31:39:428,39,0:32
+19	3739001	rs56138006	C	T	976.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=4.63;DB;DP=118;Dels=0.00;FS=3.68;HaplotypeScore=1.44;MLEAC=2;MLEAF=0.333;MQ=58.66;MQ0=0;MQRankSum=0.753;QD=11.22;ReadPosRankSum=1.11;SB=-6.380e+02;VQSLOD=7.45;culprit=QD	GT:AD:DP:GQ:PL:TP	0|1:30,22:52:99:612,0,559:45	0|0:31,0:31:45:0,45,527:45	1|0:12,23:35:93:403,0,93:45
+1	204945934	rs6657372	A	G	1311.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-6.582e+00;DB;DP=126;Dels=0.00;FS=0.00;HaplotypeScore=2.71;MLEAC=3;MLEAF=0.500;MQ=58.78;MQ0=0;MQRankSum=0.480;QD=15.43;ReadPosRankSum=1.28;SB=-6.370e+02;VQSLOD=7.84;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:22,28:50:99:629,0,675:68	0|0:40,0:41:84:0,84,1057:68	1|1:0,35:35:69:727,69,0:68
+12	101460237	rs7965836	C	T	3485.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-2.070e+00;DB;DP=247;Dels=0.00;FS=2.89;HaplotypeScore=0.656;MLEAC=3;MLEAF=0.500;MQ=59.83;MQ0=0;MQRankSum=-6.550e-01;QD=14.11;ReadPosRankSum=-9.830e-01;SB=-1.581e+03;VQSLOD=8.49;culprit=MQ	GT:AD:DP:GQ:PL:TP	0/1:40,43:83:99:1287,0,1179:127	0/1:44,36:80:99:1068,0,1363:127	0/1:43,41:84:99:1130,0,1321:127
+22	24416101	rs66532277	C	CTT	458.98	VQSRTrancheINDEL99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=-4.190e+00;DB;DP=251;FS=68.55;HaplotypeScore=55.31;MLEAC=3;MLEAF=0.500;MQ=51.85;MQ0=3;MQRankSum=2.42;QD=1.83;RPA=23,25;RU=T;ReadPosRankSum=2.88;SB=-3.571e+01;STR;VQSLOD=-2.028e+00;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:68,20:91:65:207,0,65:3	0/1:84,0:83:0:184,0,0:3	0/1:72,0:72:83:114,0,83:3
+13	83670546	.	G	A	169.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=5.30;DP=178;Dels=0.00;FS=0.00;HaplotypeScore=36.51;MLEAC=2;MLEAF=0.333;MQ=42.20;MQ0=11;MQRankSum=-6.654e+00;QD=1.38;ReadPosRankSum=-7.610e-01;SB=-1.340e+02;VQSLOD=-2.041e+01;culprit=QD	GT:AD:DP:GQ:PL:TP	0|1:37,16:53:99:139,0,523:90	0|0:51,4:55:91:0,91,1393:90	1|0:58,12:70:69:69,0,1214:90
+Y	59024923	.	A	T	1977.26	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=1.84;DP=745;DS;Dels=0.00;FS=0.367;HaplotypeScore=8.30;MLEAC=3;MLEAF=0.500;MQ=43.53;MQ0=19;MQRankSum=2.50;QD=2.65;ReadPosRankSum=0.098;SB=-9.720e+02;VQSLOD=-3.676e+01;culprit=DP	GT:AD:DP:GQ:PL:TP	0/1:208,42:250:99:730,0,6428:127	0/1:210,35:245:99:588,0,6218:127	0/1:208,42:250:99:698,0,6060:127
+12	90856710	rs825945	T	C	1096.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-6.342e+00;DB;DP=193;Dels=0.00;FS=2.16;HaplotypeScore=0.00;MLEAC=2;MLEAF=0.333;MQ=59.64;MQ0=0;MQRankSum=2.07;QD=9.70;ReadPosRankSum=-1.697e+00;SB=-5.710e+02;VQSLOD=7.31;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:80,0:80:99:0,232,3042:127	0|1:30,21:51:99:511,0,921:127	0|1:36,26:62:99:624,0,1085:127
+3	168108331	rs35075740	TA	T	51.36	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=1.78;DB;DP=162;FS=3.97;HaplotypeScore=20.38;MLEAC=3;MLEAF=0.500;MQ=55.92;MQ0=0;MQRankSum=3.47;QD=0.320;RPA=18,17;RU=A;ReadPosRankSum=1.96;SB=-7.120e+00;STR;VQSLOD=2.10;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:46,5:53:16:16,0,313:15	0/1:46,12:60:61:61,0,267:15	0/1:40,6:47:22:22,0,255:15
+3	60283791	rs10154846	T	C	669.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.270e+00;DB;DP=204;Dels=0.00;FS=1.59;HaplotypeScore=1.66;MLEAC=1;MLEAF=0.167;MQ=59.39;MQ0=0;MQRankSum=0.370;QD=10.14;ReadPosRankSum=1.64;SB=-2.690e+02;VQSLOD=8.95;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:63,0:63:99:0,190,2440:127	0|1:34,32:66:99:704,0,1020:127	0|0:74,0:75:99:0,190,2372:127
+19	37226152	rs3108217	G	C	2076.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=0.215;DB;DP=145;Dels=0.00;FS=2.16;HaplotypeScore=0.587;MLEAC=4;MLEAF=0.667;MQ=58.59;MQ0=0;MQRankSum=1.16;QD=14.32;ReadPosRankSum=-7.250e-01;SB=-1.027e+03;VQSLOD=7.49;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:25,30:55:99:789,0,709:63	1|1:0,29:29:63:772,63,0:63	0|1:35,25:61:99:557,0,789:63
+3	1609737	rs2648459	A	G	6492.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=187;Dels=0.00;FS=0.00;HaplotypeScore=1.18;MLEAC=6;MLEAF=1.00;MQ=59.90;MQ0=0;QD=34.72;SB=-3.251e+03;VQSLOD=11.50;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,53:53:99:1943,150,0:127	1|1:0,62:62:99:2206,172,0:127	1|1:0,72:72:99:2343,181,0:127
+13	37484693	rs1571317	T	C	971.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.315e+00;DB;DP=229;Dels=0.00;FS=3.05;HaplotypeScore=0.660;MLEAC=1;MLEAF=0.167;MQ=58.51;MQ0=0;MQRankSum=1.88;QD=12.78;ReadPosRankSum=-3.430e-01;SB=-5.750e+02;VQSLOD=7.31;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:94,0:94:99:0,253,3258:127	0|1:35,41:76:99:1006,0,924:127	0|0:59,0:59:99:0,147,1872:127
+3	108612711	rs2399252	T	A	3430.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-7.830e-01;DB;DP=239;Dels=0.00;FS=4.44;HaplotypeScore=0.659;MLEAC=3;MLEAF=0.500;MQ=59.64;MQ0=0;MQRankSum=-2.690e-01;QD=14.35;ReadPosRankSum=-7.010e-01;SB=-1.733e+03;VQSLOD=8.51;culprit=MQ	GT:AD:DP:GQ:PL:TP	0/1:48,34:82:99:1066,0,1620:127	0/1:45,43:88:99:1370,0,1452:127	0/1:36,32:69:99:994,0,1128:127
+4	190538070	rs62323772	G	A	106.69	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=0.099;DB;DP=19;Dels=0.00;FS=0.00;HaplotypeScore=4.36;MLEAC=3;MLEAF=0.500;MQ=33.71;MQ0=0;MQRankSum=0.591;QD=5.93;ReadPosRankSum=-3.940e-01;SB=-7.601e+01;VQSLOD=-1.392e+00;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:4,9:13:69:69,0,92:3	0|0:1,0:1:3:0,3,33:3	1|1:0,4:5:6:77,6,0:3
+15	32615218	.	G	GA	82.61	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.361;DP=225;FS=0.00;HaplotypeScore=2.49;MLEAC=4;MLEAF=0.667;MQ=5.76;MQ0=211;MQRankSum=-8.760e-01;QD=0.560;RPA=9,10;RU=A;ReadPosRankSum=-1.159e+00;SB=-1.330e-03;STR;VQSLOD=3.74;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:41,19:3:9:88,9,0:5	1|0:62,24:5:44:44,0,77:5	1|0:76,0:1:2:0,3,31:5
+8	132727531	rs7000409	G	A	2050.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=5.47;DB;DP=220;Dels=0.00;FS=5.20;HaplotypeScore=1.94;MLEAC=2;MLEAF=0.333;MQ=59.71;MQ0=0;MQRankSum=1.23;QD=14.14;ReadPosRankSum=-8.710e-01;SB=-1.080e+03;VQSLOD=7.79;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|1:29,35:64:99:1215,0,785:127	0|0:75,0:75:99:0,190,2423:127	1|0:50,31:81:99:874,0,1611:127
+5	70856663	rs157045	T	C	2040.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-7.809e+00;DB;DP=234;Dels=0.00;FS=1.82;HaplotypeScore=1.05;MLEAC=2;MLEAF=0.333;MQ=58.65;MQ0=0;MQRankSum=0.989;QD=13.16;ReadPosRankSum=0.719;SB=-8.820e+02;VQSLOD=7.35;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:44,41:85:99:1087,0,1448:127	1|0:28,42:70:99:992,0,789:127	0|0:79,0:79:99:0,181,2342:127
+1	69502962	rs12724640	T	C	1868.23	VQSRTrancheSNP99.00to99.90	AC=6;AF=1.00;AN=6;BaseQRankSum=-1.732e+00;DB;DP=110;Dels=0.00;FS=4.72;HaplotypeScore=1.93;MLEAC=6;MLEAF=1.00;MQ=29.46;MQ0=22;MQRankSum=1.65;QD=16.98;ReadPosRankSum=-5.640e-01;SB=-8.110e+02;VQSLOD=0.210;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:5,23:29:63:693,63,0:50	1|1:5,38:43:66:675,66,0:50	1|1:9,29:38:51:538,51,0:50
+4	141514835	rs55984232	C	T	1645.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=7.14;DB;DP=191;Dels=0.00;FS=2.76;HaplotypeScore=1.07;MLEAC=2;MLEAF=0.333;MQ=59.26;MQ0=0;MQRankSum=0.726;QD=13.06;ReadPosRankSum=-7.890e-01;SB=-8.550e+02;VQSLOD=8.94;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:32,28:60:99:913,0,820:127	0|0:65,0:65:99:0,156,1886:127	1|0:34,32:66:99:771,0,750:127
+1	195392852	rs2119441	T	G	5369.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-2.284e+00;DB;DP=241;Dels=0.00;FS=3.31;HaplotypeScore=1.87;MLEAC=4;MLEAF=0.667;MQ=58.35;MQ0=0;MQRankSum=-6.430e-01;QD=22.28;ReadPosRankSum=0.178;SB=-2.332e+03;VQSLOD=7.85;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:37,42:79:99:1233,0,1145:127	1|1:0,84:84:99:2741,211,0:127	0|1:31,47:78:99:1395,0,804:127
+Y	13265732	.	C	T	356.72	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=2.82;DP=142;Dels=0.00;FS=7.94;HaplotypeScore=19.82;MLEAC=2;MLEAF=0.333;MQ=38.22;MQ0=11;MQRankSum=-2.145e+00;QD=5.10;ReadPosRankSum=1.49;SB=-1.466e+00;VQSLOD=-1.443e+01;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|1:35,15:50:99:327,0,624:5	0|0:65,7:72:4:0,4,1831:5	1|0:15,5:20:67:67,0,227:5
+5	174249229	rs11739079	C	G	1613.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-4.540e+00;DB;DP=190;Dels=0.00;FS=6.48;HaplotypeScore=2.04;MLEAC=2;MLEAF=0.333;MQ=59.51;MQ0=0;MQRankSum=-8.980e-01;QD=11.86;ReadPosRankSum=0.601;SB=-8.320e+02;VQSLOD=7.78;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:32,43:75:99:1069,0,928:123	0|0:54,0:54:99:0,123,1554:123	1|0:33,27:61:99:583,0,883:123
+1	80481528	rs61774278	G	C	1775.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-1.614e+00;DB;DP=168;Dels=0.00;FS=8.29;HaplotypeScore=2.05;MLEAC=3;MLEAF=0.500;MQ=54.28;MQ0=0;MQRankSum=-5.200e-02;QD=16.75;ReadPosRankSum=1.54;SB=-1.133e+03;VQSLOD=4.77;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|1:35,26:61:99:767,0,778:80	0|0:62,0:62:84:0,84,1046:80	1|1:0,45:45:84:1053,84,0:80
+9	2072356	rs4741641	T	G	2054.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-7.235e+00;DB;DP=243;Dels=0.00;FS=0.00;HaplotypeScore=2.21;MLEAC=2;MLEAF=0.333;MQ=59.64;MQ0=0;MQRankSum=1.17;QD=13.00;ReadPosRankSum=-4.750e-01;SB=-1.004e+03;VQSLOD=9.02;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:49,45:94:99:1245,0,1615:127	0|0:85,0:85:99:0,217,2818:127	1|0:32,32:64:99:848,0,936:127
+12	58867437	rs140632614	G	T	829.25	VQSRTrancheSNP99.00to99.90	AC=4;AF=0.667;AN=6;BaseQRankSum=1.41;DB;DP=144;Dels=0.00;FS=68.61;HaplotypeScore=0.867;MLEAC=4;MLEAF=0.667;MQ=35.15;MQ0=16;MQRankSum=-7.440e+00;QD=5.76;ReadPosRankSum=-2.450e-01;SB=-1.011e+00;VQSLOD=-1.649e+01;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:34,24:58:99:291,0,1100:44	0|1:42,8:50:61:61,0,1319:44	1|1:1,35:36:45:519,45,0:44
+4	64522064	rs4860541	A	G	5942.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=188;Dels=0.00;FS=0.00;HaplotypeScore=0.289;MLEAC=6;MLEAF=1.00;MQ=56.20;MQ0=0;QD=31.61;SB=-3.348e+03;VQSLOD=8.54;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,68:68:99:2119,169,0:127	1|1:0,52:53:99:1661,132,0:127	1|1:0,67:67:99:2162,172,0:127
+8	66327344	rs13282622	G	A	3918.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=4.51;DB;DP=192;Dels=0.00;FS=3.53;HaplotypeScore=1.65;MLEAC=4;MLEAF=0.667;MQ=58.91;MQ0=0;MQRankSum=0.706;QD=20.41;ReadPosRankSum=-3.270e-01;SB=-2.091e+03;VQSLOD=8.63;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:34,37:71:99:1137,0,923:127	0|1:32,28:61:99:806,0,988:127	1|1:0,60:60:99:1975,153,0:127
+8	78181000	rs1563030	A	G	5178.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-3.000e-02;DB;DP=192;Dels=0.00;FS=4.68;HaplotypeScore=2.95;MLEAC=5;MLEAF=0.833;MQ=59.62;MQ0=0;MQRankSum=-4.670e-01;QD=26.97;ReadPosRankSum=-8.550e-01;SB=-2.617e+03;VQSLOD=7.34;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,59:59:99:1954,150,0:127	1|0:32,37:70:99:1198,0,888:127	1|1:0,63:63:99:2026,156,0:127
+9	9066127	rs57751104	ATATT	A	4412	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-8.800e-02;DB;DP=214;FS=8.47;HaplotypeScore=16.59;MLEAC=2;MLEAF=0.333;MQ=58.75;MQ0=0;MQRankSum=0.462;QD=29.61;RPA=2,1;RU=TATT;ReadPosRankSum=1.38;SB=-1.837e+03;STR;VQSLOD=4.42;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:41,36:79:99:2129,0,2123:127	1|0:32,38:70:99:2283,0,1679:127	0|0:65,0:65:99:0,184,4023:127
+6	169196022	.	T	TG	229.23	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=0.887;DP=84;FS=7.13;HaplotypeScore=6.43;MLEAC=2;MLEAF=0.333;MQ=39.46;MQ0=16;MQRankSum=2.28;QD=3.82;RPA=6,7;RU=G;ReadPosRankSum=-9.830e-01;SB=-2.849e+01;STR;VQSLOD=1.35;culprit=QD	GT:AD:DP:GQ:PL:TP	1|0:19,10:15:78:78,0,88:27	1|0:17,13:21:99:199,0,172:27	0|0:24,0:15:27:0,27,308:27
+2	117966808	rs333847	C	T	9037.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=269;Dels=0.00;FS=0.00;HaplotypeScore=3.70;MLEAC=6;MLEAF=1.00;MQ=58.21;MQ0=0;QD=33.59;SB=-4.673e+03;VQSLOD=7.05;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,78:78:99:2652,205,0:127	1|1:0,101:101:99:3158,247,0:127	1|1:0,89:90:99:3227,250,0:127
+X	95868251	.	G	A	108.36	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=1.44;DP=90;Dels=0.00;FS=4.21;HaplotypeScore=4.94;MLEAC=2;MLEAF=0.333;MQ=44.60;MQ0=8;MQRankSum=-2.939e+00;QD=1.55;ReadPosRankSum=2.87;SB=-7.411e+01;VQSLOD=-3.242e+00;culprit=QD	GT:AD:DP:GQ:PL:TP	0|1:29,9:38:99:126,0,251:23	0|0:20,0:20:24:0,24,266:23	1|0:27,5:32:21:21,0,97:23
+7	134269995	rs67235184	G	GA	2917.2	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.835;DB;DP=219;FS=1.09;HaplotypeScore=39.14;MLEAC=3;MLEAF=0.500;MQ=59.44;MQ0=0;MQRankSum=-3.700e-02;QD=19.19;RPA=7,8;RU=A;ReadPosRankSum=-9.210e-01;SB=-1.316e+03;STR;VQSLOD=5.11;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:51,33:84:99:916,0,1151:127	1|1:2,65:68:99:2055,192,0:127	0|0:65,0:67:99:0,186,2051:127
+1	36900350	rs72008966	C	CA	137.53	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.837e+00;DB;DP=139;FS=0.00;HaplotypeScore=32.79;MLEAC=3;MLEAF=0.500;MQ=49.20;MQ0=3;MQRankSum=0.772;QD=0.990;RPA=22,23;RU=A;ReadPosRankSum=-3.220e+00;SB=-4.273e+01;STR;VQSLOD=1.87;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:35,7:44:41:70,0,41:9	0/1:48,0:47:20:20,0,41:9	0/1:32,12:42:9:95,0,9:9
+5	29069162	rs658439	G	A	499.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=1.98;DB;DP=199;Dels=0.00;FS=11.20;HaplotypeScore=1.60;MLEAC=1;MLEAF=0.167;MQ=52.70;MQ0=0;MQRankSum=-6.080e-01;QD=9.42;ReadPosRankSum=-1.103e+00;SB=-2.310e+02;VQSLOD=4.02;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:86,0:86:99:0,211,2509:110	0|0:60,0:60:99:0,111,1240:110	0|1:30,23:53:99:534,0,523:110
+7	48862174	rs965346	A	G	877.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-6.250e+00;DB;DP=194;Dels=0.00;FS=6.11;HaplotypeScore=0.649;MLEAC=1;MLEAF=0.167;MQ=57.54;MQ0=0;MQRankSum=2.06;QD=16.25;ReadPosRankSum=-1.204e+00;SB=-4.040e+02;VQSLOD=6.24;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:82,0:82:99:0,232,3007:127	0|0:58,0:58:99:0,160,2067:127	0|1:22,32:54:99:912,0,686:127
+11	75978490	rs655877	G	C	2986.25	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-8.460e-01;DB;DP=127;Dels=0.00;FS=5.43;HaplotypeScore=0.263;MLEAC=5;MLEAF=0.833;MQ=59.42;MQ0=0;MQRankSum=0.026;QD=23.51;ReadPosRankSum=0.168;SB=-1.613e+03;VQSLOD=7.04;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,50:50:99:1405,111,0:101	1|1:0,45:46:99:1269,102,0:101	1|0:17,14:31:99:354,0,469:101
+6	120734422	rs62424426	T	C	1091.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.268e+00;DB;DP=208;Dels=0.00;FS=4.35;HaplotypeScore=0.703;MLEAC=1;MLEAF=0.167;MQ=59.71;MQ0=0;MQRankSum=-1.880e-01;QD=14.36;ReadPosRankSum=-1.490e-01;SB=-5.560e+02;VQSLOD=8.65;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:70,1:71:99:0,205,2692:127	0|0:61,0:61:99:0,175,2298:127	0|1:39,37:76:99:1126,0,1140:127
+17	44809197	rs116187585	A	G	8703.01	PASS	AC=6;AF=1.00;AN=6;BaseQRankSum=-5.540e-01;DB;DP=254;Dels=0.00;FS=3.49;HaplotypeScore=4.06;MLEAC=6;MLEAF=1.00;MQ=59.58;MQ0=0;MQRankSum=1.68;QD=34.26;ReadPosRankSum=1.48;SB=-4.228e+03;VQSLOD=6.61;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:1,96:97:99:3470,268,0:127	1|1:0,82:84:99:2846,220,0:127	1|1:0,73:73:99:2387,184,0:127
+X	42192093	rs58959554	T	C	1058.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-5.464e+00;DB;DP=190;Dels=0.00;FS=6.81;HaplotypeScore=1.88;MLEAC=1;MLEAF=0.167;MQ=59.41;MQ0=0;MQRankSum=-2.120e-01;QD=15.34;ReadPosRankSum=-1.730e-01;SB=-3.970e+02;VQSLOD=8.06;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:70,1:71:99:0,182,2683:127	0|0:50,0:50:99:0,138,1794:127	0|1:31,38:69:99:1093,0,947:127
+5	49438828	rs137880658	G	A	424.24	VQSRTrancheSNP99.90to100.00	AC=1;AF=0.167;AN=6;BaseQRankSum=-4.376e+00;DB;DP=748;DS;Dels=0.00;FS=7.18;HaplotypeScore=20.66;MLEAC=1;MLEAF=0.167;MQ=19.63;MQ0=158;MQRankSum=3.82;QD=1.70;ReadPosRankSum=1.19;SB=-2.220e+02;VQSLOD=-9.822e+01;culprit=DP	GT:AD:DP:GQ:PL:TP	0|0:249,0:249:99:0,555,4848:127	0|1:204,46:250:99:459,0,2894:127	0|0:249,0:249:99:0,480,4326:127
+6	89947117	rs9942462	A	G	5019.01	PASS	AC=6;AF=1.00;AN=6;BaseQRankSum=1.65;DB;DP=181;Dels=0.00;FS=0.00;HaplotypeScore=3.32;MLEAC=6;MLEAF=1.00;MQ=53.30;MQ0=0;MQRankSum=0.428;QD=27.73;ReadPosRankSum=1.09;SB=-3.151e+03;VQSLOD=5.68;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,59:60:99:1715,138,0:92	1|1:1,55:56:93:1401,93,0:92	1|1:0,65:65:99:1903,153,0:92
+12	5922552	rs17786352	C	G	1874.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-7.386e+00;DB;DP=231;Dels=0.00;FS=0.00;HaplotypeScore=0.305;MLEAC=2;MLEAF=0.333;MQ=54.49;MQ0=0;MQRankSum=2.66;QD=13.11;ReadPosRankSum=1.04;SB=-9.400e+02;VQSLOD=4.75;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:44,35:79:99:897,0,1383:127	1|0:28,36:64:99:1016,0,734:127	0|0:88,0:88:99:0,238,3004:127
+4	184811263	rs2871379	A	G	6376.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=211;Dels=0.00;FS=0.00;HaplotypeScore=0.508;MLEAC=6;MLEAF=1.00;MQ=58.38;MQ0=0;QD=30.22;SB=-3.472e+03;VQSLOD=10.49;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,78:78:99:2539,199,0:127	1|1:0,67:67:99:2072,165,0:127	1|1:0,66:66:99:1765,135,0:127
+7	110843795	rs214455	A	G	8548.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=258;Dels=0.00;FS=0.00;HaplotypeScore=2.36;MLEAC=6;MLEAF=1.00;MQ=59.35;MQ0=0;QD=33.13;SB=-4.197e+03;VQSLOD=10.76;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,106:106:99:3535,301,0:127	1|1:0,66:66:99:2270,193,0:127	1|1:0,86:86:99:2743,229,0:127
+2	107234623	rs35291621	GTA	G	7569	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=2.65;DB;DP=242;FS=7.84;HaplotypeScore=19.31;MLEAC=4;MLEAF=0.667;MQ=60.04;MQ0=1;MQRankSum=-1.570e-01;QD=31.28;ReadPosRankSum=1.66;SB=-3.633e+03;VQSLOD=4.30;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:46,30:76:99:1290,0,2120:127	0|1:35,66:102:99:2998,0,1435:127	1|1:0,63:63:99:3281,190,0:127
+9	44998848	.	C	G	254.43	VQSRTrancheSNP99.00to99.90	AC=5;AF=0.833;AN=6;BaseQRankSum=2.20;DP=193;Dels=0.00;FS=10.82;HaplotypeScore=0.245;MLEAC=5;MLEAF=0.833;MQ=6.48;MQ0=163;MQRankSum=-1.206e+00;QD=1.32;ReadPosRankSum=0.790;SB=-1.372e+02;VQSLOD=-6.632e+00;culprit=QD	GT:AD:DP:GQ:PL:TP	1|0:39,27:66:23:132,0,23:8	1|1:36,16:52:15:118,15,0:8	0|1:53,22:75:1:45,6,0:8
+18	20025030	rs4800406	A	G	1113.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.700e+00;DB;DP=230;Dels=0.00;FS=0.00;HaplotypeScore=1.68;MLEAC=1;MLEAF=0.167;MQ=59.56;MQ0=0;MQRankSum=1.64;QD=12.65;ReadPosRankSum=-1.166e+00;SB=-6.160e+02;VQSLOD=8.66;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:78,0:78:99:0,223,2978:127	0|1:46,42:88:99:1148,0,1460:127	0|0:64,0:64:99:0,175,2303:127
+18	1629264	rs5025369	A	G	86.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=-1.739e+00;DB;DP=149;Dels=0.00;FS=15.36;HaplotypeScore=7.14;MLEAC=2;MLEAF=0.333;MQ=39.72;MQ0=11;MQRankSum=-2.543e+00;QD=0.810;ReadPosRankSum=0.088;SB=-3.380e+01;VQSLOD=-6.205e+00;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:51,15:66:50:50,0,1143:49	0|0:37,5:42:81:0,81,941:49	1|0:35,6:41:75:75,0,818:49
+5	164600452	rs7711548	C	A	588.32	VQSRTrancheSNP99.00to99.90	AC=6;AF=1.00;AN=6;BaseQRankSum=-3.291e+00;DB;DP=192;Dels=0.020;FS=2.32;HaplotypeScore=32.67;MLEAC=6;MLEAF=1.00;MQ=57.55;MQ0=0;MQRankSum=1.54;QD=3.06;ReadPosRankSum=-1.533e+00;SB=-2.085e+03;VQSLOD=-1.433e+00;culprit=QD	GT:AD:DP:GQ:PL:TP	1|1:15,52:69:18:155,18,0:15	1|1:11,55:66:36:296,36,0:15	1|1:18,36:54:15:175,15,0:15
+10	11560326	rs4424580	C	T	1027.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-1.780e-01;DB;DP=207;Dels=0.00;FS=0.573;HaplotypeScore=2.20;MLEAC=2;MLEAF=0.333;MQ=59.24;MQ0=0;MQRankSum=-9.880e-01;QD=7.78;ReadPosRankSum=-4.920e-01;SB=-7.450e+02;VQSLOD=8.46;culprit=QD	GT:AD:DP:GQ:PL:TP	1|0:41,32:73:99:609,0,930:96	1|0:29,30:59:99:457,0,570:96	0|0:74,1:75:96:0,96,1185:96
+X	84165195	rs5923187	C	A	1009.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.103e+00;DB;DP=194;Dels=0.00;FS=3.07;HaplotypeScore=2.82;MLEAC=1;MLEAF=0.167;MQ=59.31;MQ0=0;MQRankSum=-6.750e-01;QD=12.01;ReadPosRankSum=-1.463e+00;SB=-5.890e+02;VQSLOD=8.24;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:79,1:80:99:0,223,2856:60	0|0:30,0:30:60:0,60,764:60	0|1:40,44:84:99:1044,0,1007:60
+13	109990322	rs7328109	T	C	7198.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-2.487e+00;DB;DP=245;Dels=0.00;FS=5.89;HaplotypeScore=1.88;MLEAC=5;MLEAF=0.833;MQ=59.60;MQ0=0;MQRankSum=-2.360e-01;QD=29.38;ReadPosRankSum=0.136;SB=-3.593e+03;VQSLOD=8.89;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,79:79:99:2825,220,0:127	1|0:33,54:87:99:1591,0,933:127	1|1:0,79:79:99:2782,214,0:127
+6	18687376	rs9383429	A	T	1162.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.746e+00;DB;DP=232;Dels=0.00;FS=0.638;HaplotypeScore=0.277;MLEAC=1;MLEAF=0.167;MQ=59.42;MQ0=0;MQRankSum=-7.330e-01;QD=15.71;ReadPosRankSum=-1.460e-01;SB=-6.490e+02;VQSLOD=9.43;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:82,0:82:99:0,241,3181:127	0|0:76,0:76:99:0,217,2832:127	0|1:33,41:74:99:1197,0,1008:127
+X	66290558	rs1606094	C	T	2602.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=2.17;DB;DP=213;Dels=0.00;FS=13.13;HaplotypeScore=0.00;MLEAC=3;MLEAF=0.500;MQ=59.59;MQ0=0;MQRankSum=1.34;QD=18.86;ReadPosRankSum=2.27;SB=-1.122e+03;VQSLOD=6.00;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:54,47:101:99:1381,0,1762:99	1|1:0,37:37:99:1266,99,0:99	0|0:75,0:75:99:0,205,2705:99
+2	177175707	rs7355385	A	G	2590.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-8.660e-01;DB;DP=206;Dels=0.00;FS=14.87;HaplotypeScore=0.311;MLEAC=3;MLEAF=0.500;MQ=59.12;MQ0=0;MQRankSum=-9.370e-01;QD=20.40;ReadPosRankSum=-2.870e-01;SB=-8.970e+02;VQSLOD=6.82;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:33,32:65:99:856,0,1069:127	1|1:0,62:62:99:1779,150,0:127	0|0:78,1:79:99:0,193,2411:127
+3	148344553	rs62274102	C	A	3191.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-1.860e+00;DB;DP=232;Dels=0.00;FS=12.06;HaplotypeScore=2.37;MLEAC=3;MLEAF=0.500;MQ=59.32;MQ0=0;MQRankSum=-5.510e-01;QD=19.58;ReadPosRankSum=2.41;SB=-1.757e+03;VQSLOD=6.29;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|0:46,39:85:99:985,0,1339:127	1|1:0,78:78:99:2251,175,0:127	0|0:69,0:69:99:0,153,2018:127
+2	28790711	rs34787802	T	G	731.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-4.421e+00;DB;DP=232;Dels=0.00;FS=2.40;HaplotypeScore=1.52;MLEAC=1;MLEAF=0.167;MQ=57.98;MQ0=0;MQRankSum=0.447;QD=10.30;ReadPosRankSum=-1.833e+00;SB=-4.550e+02;VQSLOD=6.89;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:81,0:81:99:0,223,2877:127	0|1:36,35:71:99:766,0,947:127	0|0:79,0:80:99:0,205,2640:127
+2	9240279	rs56249990	A	G	3978.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=1.70;DB;DP=213;Dels=0.00;FS=7.83;HaplotypeScore=1.19;MLEAC=3;MLEAF=0.500;MQ=59.40;MQ0=0;MQRankSum=0.143;QD=27.25;ReadPosRankSum=-9.700e-02;SB=-1.991e+03;VQSLOD=9.14;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:33,42:75:99:1400,0,1031:127	0|0:67,0:67:99:0,178,2277:127	1|1:0,71:71:99:2578,199,0:127
+5	58243302	rs457566	A	C	6237.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-1.663e+00;DB;DP=233;Dels=0.00;FS=3.43;HaplotypeScore=0.886;MLEAC=5;MLEAF=0.833;MQ=59.70;MQ0=0;MQRankSum=-2.320e-01;QD=26.77;ReadPosRankSum=0.957;SB=-2.566e+03;VQSLOD=9.35;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:0,87:87:99:2923,229,0:127	1|0:36,50:86:99:1429,0,1006:127	1|1:0,60:60:99:1885,147,0:127
+6	71018445	rs1321063	C	A	518.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=2.67;DB;DP=185;Dels=0.00;FS=1.62;HaplotypeScore=0.692;MLEAC=1;MLEAF=0.167;MQ=58.93;MQ0=0;MQRankSum=0.355;QD=8.78;ReadPosRankSum=1.31;SB=-4.020e+02;VQSLOD=7.75;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:67,0:67:99:0,184,2404:127	0|0:59,0:59:99:0,160,2065:127	0|1:29,30:59:99:553,0,809:127
+8	42044954	rs1058720	G	A	2760.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=4.31;DB;DP=157;Dels=0.00;FS=0.00;HaplotypeScore=2.10;MLEAC=4;MLEAF=0.667;MQ=58.82;MQ0=0;MQRankSum=-2.021e+00;QD=17.58;ReadPosRankSum=-4.620e-01;SB=-1.377e+03;VQSLOD=7.58;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,56:56:99:1820,147,0:127	1|0:24,27:51:99:555,0,233:127	1|0:26,24:50:99:427,0,458:127
+15	23743658	rs142070302	T	A	1007.26	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.164e+00;DB;DP=408;Dels=0.00;FS=166.85;HaplotypeScore=53.54;MLEAC=3;MLEAF=0.500;MQ=38.96;MQ0=14;MQRankSum=-6.283e+00;QD=2.47;ReadPosRankSum=2.49;SB=-1.079e-02;VQSLOD=-3.048e+02;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:104,39:143:99:365,0,2802:45	0/1:99,40:139:99:636,0,2335:45	0/1:97,28:126:45:45,0,2324:45
+6	45421630	rs1343799	C	T	5422.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=3.42;DB;DP=240;Dels=0.00;FS=10.69;HaplotypeScore=0.798;MLEAC=4;MLEAF=0.667;MQ=59.46;MQ0=0;MQRankSum=1.09;QD=22.59;ReadPosRankSum=1.25;SB=-2.647e+03;VQSLOD=7.70;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:29,43:72:99:1445,0,843:127	0|1:43,37:80:99:1121,0,1302:127	1|1:0,88:88:99:2856,220,0:127
+4	177855678	rs1545090	A	G	7065.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=229;Dels=0.00;FS=0.00;HaplotypeScore=1.17;MLEAC=6;MLEAF=1.00;MQ=59.50;MQ0=0;QD=30.85;SB=-3.799e+03;VQSLOD=11.01;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,84:84:99:2701,235,0:127	1|1:0,79:80:99:2401,211,0:127	1|1:0,65:65:99:1963,165,0:127
+4	92648168	rs61329801	A	ATTTG	7717	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=0.947;DB;DP=186;FS=8.29;HaplotypeScore=7.88;MLEAC=4;MLEAF=0.667;MQ=56.58;MQ0=0;MQRankSum=-1.740e-01;QD=41.49;ReadPosRankSum=-4.440e-01;SB=-3.591e+03;VQSLOD=3.52;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:45,35:80:99:2213,0,2213:127	1|1:3,59:62:99:4128,181,0:127	0|1:22,22:44:99:1376,0,1181:127
+12	79238948	rs10778234	C	T	3719.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=8.19;DB;DP=241;Dels=0.00;FS=7.07;HaplotypeScore=0.245;MLEAC=3;MLEAF=0.500;MQ=59.41;MQ0=0;MQRankSum=-3.810e-01;QD=15.43;ReadPosRankSum=0.579;SB=-1.864e+03;VQSLOD=7.81;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:42,35:77:99:1049,0,1213:127	0/1:37,32:69:99:988,0,957:127	0/1:42,53:95:99:1682,0,1062:127
+2	64848970	rs35473866	T	C	655.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=0.263;DB;DP=218;Dels=0.00;FS=8.01;HaplotypeScore=2.58;MLEAC=1;MLEAF=0.167;MQ=58.36;MQ0=0;MQRankSum=-1.680e-01;QD=8.29;ReadPosRankSum=-3.070e-01;SB=-3.420e+02;VQSLOD=5.92;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:78,0:78:99:0,208,2627:127	0|0:61,0:61:99:0,135,1725:127	0|1:35,42:79:99:690,0,1042:127
+13	21520045	rs9509464	A	C	5103.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=195;Dels=0.00;FS=0.00;HaplotypeScore=1.61;MLEAC=6;MLEAF=1.00;MQ=47.37;MQ0=0;QD=26.17;SB=-2.582e+03;VQSLOD=5.19;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:0,71:71:99:2106,186,0:98	1|1:0,78:78:99:1856,162,0:98	1|1:0,46:46:99:1141,99,0:98
+14	106085773	rs2955055	C	T	2115.26	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=-7.460e-01;DB;DP=172;Dels=0.00;FS=18.42;HaplotypeScore=2.95;MLEAC=3;MLEAF=0.500;MQ=35.68;MQ0=18;MQRankSum=3.25;QD=12.30;ReadPosRankSum=0.100;SB=-5.530e+02;VQSLOD=1.29;culprit=MQ	GT:AD:DP:GQ:PL:TP	0/1:32,33:65:99:600,0,554:80	0/1:30,42:72:99:1001,0,400:80	0/1:12,23:35:80:553,0,80:80
+16	77418810	rs71137811	T	TG	7389	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=0.643;DB;DP=244;FS=2.25;HaplotypeScore=114.41;MLEAC=5;MLEAF=0.833;MQ=61.09;MQ0=0;MQRankSum=2.49;QD=30.28;ReadPosRankSum=2.98;SB=-2.597e+03;VQSLOD=2.91;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:8,84:93:99:3558,264,0:127	1|1:8,65:75:99:2723,179,0:127	1|0:42,32:76:99:1108,0,899:127
+3	118367863	rs71617664	TAGATAGATTA	T	12039	PASS	AC=6;AF=1.00;AN=6;BaseQRankSum=1.12;DB;DP=201;FS=9.45;HaplotypeScore=212.50;MLEAC=6;MLEAF=1.00;MQ=55.55;MQ0=1;MQRankSum=1.58;QD=59.90;ReadPosRankSum=0.721;SB=-5.599e+03;VQSLOD=-4.074e-01;culprit=QD	GT:AD:DP:GQ:PL:TP	1|1:13,57:71:99:4299,164,0:127	1|1:60,4:64:99:3312,174,0:127	1|1:9,50:64:99:4428,177,0:127
+12	21328424	rs4149040	G	C	2565.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=0.888;DB;DP=252;Dels=0.00;FS=9.75;HaplotypeScore=0.608;MLEAC=2;MLEAF=0.333;MQ=59.49;MQ0=0;MQRankSum=1.17;QD=15.18;ReadPosRankSum=0.966;SB=-1.181e+03;VQSLOD=7.55;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:40,49:89:99:1534,0,1308:127	0|0:83,0:83:99:0,241,3117:127	1|0:45,35:80:99:1070,0,1402:127
+3	8399330	rs6770171	G	A	6816.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=4.69;DB;DP=253;Dels=0.00;FS=0.637;HaplotypeScore=1.28;MLEAC=5;MLEAF=0.833;MQ=58.42;MQ0=0;MQRankSum=0.607;QD=26.94;ReadPosRankSum=-5.030e-01;SB=-3.369e+03;VQSLOD=8.01;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|1:0,106:106:99:3784,292,0:127	1|1:0,72:72:99:2164,169,0:127	1|0:42,33:75:99:868,0,1146:127
+1	17032814	rs2773183	T	C	2828.26	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.879e+00;DB;DP=322;Dels=0.00;FS=2.43;HaplotypeScore=15.45;MLEAC=3;MLEAF=0.500;MQ=56.86;MQ0=0;MQRankSum=2.92;QD=8.78;ReadPosRankSum=-1.245e+00;SB=-1.943e+03;VQSLOD=-1.421e+00;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:63,59:122:99:1434,0,1831:127	0/1:53,56:109:99:910,0,871:127	0/1:61,30:91:99:523,0,1257:127
+11	44985620	rs7106313	C	T	338.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=2.18;DB;DP=162;Dels=0.00;FS=4.84;HaplotypeScore=2.00;MLEAC=1;MLEAF=0.167;MQ=56.94;MQ0=0;MQRankSum=2.02;QD=8.67;ReadPosRankSum=0.983;SB=-2.190e+02;VQSLOD=6.66;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:79,0:80:99:0,174,2084:72	0|0:43,0:43:72:0,72,877:72	0|1:20,18:39:99:373,0,365:72
+20	21523349	rs73127889	A	G	2286.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-6.469e+00;DB;DP=253;Dels=0.00;FS=3.73;HaplotypeScore=1.54;MLEAC=2;MLEAF=0.333;MQ=59.31;MQ0=0;MQRankSum=0.821;QD=13.69;ReadPosRankSum=1.51;SB=-8.640e+02;VQSLOD=7.84;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|1:44,48:92:99:1319,0,1356:127	0|0:86,0:86:99:0,235,2994:127	1|0:37,38:75:99:1006,0,1111:127
+13	65275154	rs359338	G	A	1963.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.73;DB;DP=173;Dels=0.00;FS=3.63;HaplotypeScore=0.948;MLEAC=2;MLEAF=0.333;MQ=59.49;MQ0=0;MQRankSum=-6.760e-01;QD=14.54;ReadPosRankSum=0.399;SB=-1.054e+03;VQSLOD=8.45;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:31,28:59:99:883,0,990:108	1|0:39,37:76:99:1119,0,1112:108	0|0:38,0:38:99:0,108,1390:108
+5	93119893	rs6879620	G	A	4262.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=4.93;DB;DP=239;Dels=0.00;FS=1.05;HaplotypeScore=2.16;MLEAC=4;MLEAF=0.667;MQ=59.81;MQ0=0;MQRankSum=0.891;QD=17.83;ReadPosRankSum=-2.670e+00;SB=-2.596e+03;VQSLOD=7.07;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|1:49,42:91:99:1098,0,1410:127	0|1:36,38:74:99:890,0,1008:127	1|1:0,74:74:99:2274,178,0:127
+1	216407409	rs3767692	A	G	8820.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-8.030e-01;DB;DP=295;Dels=0.00;FS=1.35;HaplotypeScore=2.58;MLEAC=5;MLEAF=0.833;MQ=59.28;MQ0=0;MQRankSum=-3.750e-01;QD=29.90;ReadPosRankSum=-3.630e-01;SB=-4.445e+03;VQSLOD=7.05;culprit=DP	GT:AD:DP:GQ:PL:TP	1|1:1,115:116:99:4251,328,0:127	1|0:39,51:90:99:1430,0,1275:127	1|1:0,89:89:99:3139,241,0:127
+X	116855730	rs980389	A	G	2366.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.939e+00;DB;DP=173;Dels=0.00;FS=3.51;HaplotypeScore=0.908;MLEAC=3;MLEAF=0.500;MQ=59.87;MQ0=0;MQRankSum=0.653;QD=21.51;ReadPosRankSum=0.730;SB=-1.218e+03;VQSLOD=7.96;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:37,33:70:99:965,0,1249:114	1|1:0,40:40:99:1446,114,0:114	0|0:63,0:63:99:0,175,2284:114
+13	92742124	rs2148446	G	A	1884.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-2.340e+00;DB;DP=213;Dels=0.00;FS=0.00;HaplotypeScore=0.316;MLEAC=2;MLEAF=0.333;MQ=59.37;MQ0=0;MQRankSum=-2.935e+00;QD=12.99;ReadPosRankSum=-5.790e-01;SB=-9.540e+02;VQSLOD=7.28;culprit=MQRankSum	GT:AD:DP:GQ:PL:TP	0|1:38,38:76:99:1130,0,1190:127	0|0:68,0:68:99:0,190,2454:127	1|0:38,31:69:99:793,0,1094:127
+10	38560911	rs80189231	T	A	1072.26	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=0.103;DB;DP=356;Dels=0.00;FS=12.04;HaplotypeScore=5.40;MLEAC=3;MLEAF=0.500;MQ=49.74;MQ0=6;MQRankSum=-2.686e+00;QD=3.01;ReadPosRankSum=0.797;SB=-1.690e+02;VQSLOD=-3.513e+00;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:109,26:135:99:389,0,2879:127	0/1:84,27:111:99:539,0,2214:127	0/1:93,17:110:99:183,0,2277:127
+X	23948720	rs35152285	C	CA	535.35	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.538e+00;DB;DP=148;FS=0.00;HaplotypeScore=24.32;MLEAC=3;MLEAF=0.500;MQ=53.02;MQ0=0;MQRankSum=0.234;QD=3.62;RPA=16,17;RU=A;ReadPosRankSum=-1.638e+00;SB=-2.841e+02;STR;VQSLOD=3.02;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:37,27:68:62:391,0,62:13	0/1:16,8:25:13:102,0,13:13	0/1:47,4:53:90:90,0,142:13
+6	79887872	rs6454101	C	T	2130.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.355e+00;DB;DP=204;Dels=0.00;FS=11.82;HaplotypeScore=2.38;MLEAC=3;MLEAF=0.500;MQ=59.68;MQ0=0;MQRankSum=1.01;QD=10.44;ReadPosRankSum=-7.690e-01;SB=-1.370e+03;VQSLOD=7.52;culprit=MQ	GT:AD:DP:GQ:PL:TP	0/1:31,31:62:99:806,0,990:127	0/1:42,31:73:99:606,0,921:127	0/1:29,40:69:99:757,0,749:127
+9	33446281	.	C	CT	31.72	VQSRTrancheINDEL99.90to100.00	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.119e+00;DP=178;FS=127.57;HaplotypeScore=21.55;MLEAC=1;MLEAF=0.167;MQ=58.69;MQ0=0;MQRankSum=1.61;QD=0.620;RPA=2,3;RU=T;ReadPosRankSum=-5.268e+00;SB=-4.493e+00;STR;VQSLOD=-1.057e+01;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:77,0:79:73:0,73,2094:6	0|0:46,0:48:5:0,5,958:6	0|1:35,15:51:75:75,0,1073:6
+21	34546711	rs11701692	T	C	1030.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-1.884e+00;DB;DP=152;Dels=0.00;FS=8.32;HaplotypeScore=1.93;MLEAC=2;MLEAF=0.333;MQ=57.61;MQ0=0;MQRankSum=-2.910e-01;QD=10.51;ReadPosRankSum=0.258;SB=-4.600e+02;VQSLOD=6.46;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:35,25:61:99:574,0,1137:127	1|0:19,18:37:99:495,0,498:127	0|0:54,0:54:99:0,141,1811:127
+7	20767781	rs150977587	TA	T	2754.21	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=6.30;DB;DP=259;FS=0.00;HaplotypeScore=122.50;MLEAC=4;MLEAF=0.667;MQ=59.41;MQ0=1;MQRankSum=-6.400e-01;QD=10.63;RPA=13,12;RU=A;ReadPosRankSum=0.189;SB=-1.344e+03;STR;VQSLOD=3.30;culprit=QD	GT:AD:DP:GQ:PL:TP	1|0:59,45:107:99:923,0,795:116	1|1:15,54:72:99:1313,116,0:116	0|1:44,31:79:99:569,0,617:116
+11	26026566	rs7942277	T	C	5414.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=176;Dels=0.00;FS=0.00;HaplotypeScore=0.245;MLEAC=6;MLEAF=1.00;MQ=58.89;MQ0=0;QD=30.76;SB=-2.812e+03;VQSLOD=11.05;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,53:53:99:1707,132,0:122	1|1:0,53:53:99:1581,123,0:122	1|1:0,70:70:99:2126,163,0:122
+9	69810010	rs113063015	A	C	280.26	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=-1.223e+00;DB;DP=716;DS;Dels=0.00;FS=9.00;HaplotypeScore=39.83;MLEAC=3;MLEAF=0.500;MQ=37.32;MQ0=64;MQRankSum=-3.574e+00;QD=0.390;ReadPosRankSum=-8.970e-01;SB=-1.065e-02;VQSLOD=-6.817e+01;culprit=DP	GT:AD:DP:GQ:PL:TP	0/1:218,23:241:73:73,0,3591:70	0/1:188,39:227:99:172,0,4233:70	0/1:217,31:248:74:74,0,5042:70
+1	90146546	rs7512447	C	T	8721.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=241;Dels=0.00;FS=0.00;HaplotypeScore=0.00;MLEAC=6;MLEAF=1.00;MQ=59.40;MQ0=0;QD=36.19;SB=-4.084e+03;VQSLOD=11.32;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,71:71:99:2599,196,0:127	1|1:0,86:86:99:3042,235,0:127	1|1:0,84:84:99:3080,238,0:127
+20	3199373	rs2422861	G	A	896.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.452;DB;DP=135;Dels=0.00;FS=0.664;HaplotypeScore=2.84;MLEAC=3;MLEAF=0.500;MQ=58.47;MQ0=0;MQRankSum=-2.170e-01;QD=6.64;ReadPosRankSum=0.111;SB=-6.080e+02;VQSLOD=7.71;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:32,24:56:99:472,0,640:127	0/1:25,15:40:99:229,0,603:127	0/1:20,19:39:99:234,0,379:127
+16	11397080	rs1019552	T	C	2295.44	PASS	AC=6;AF=1.00;AN=6;DB;DP=169;Dels=1.000e-02;FS=0.00;HaplotypeScore=8.22;MLEAC=6;MLEAF=1.00;MQ=59.32;MQ0=0;QD=13.58;SB=-2.379e+03;VQSLOD=4.38;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,71:71:96:1220,96,0:9	1|1:0,48:48:9:78,9,0:9	1|1:0,48:48:81:1035,81,0:9
+16	5754758	rs11644707	C	T	1012.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.78;DB;DP=161;Dels=0.00;FS=0.00;HaplotypeScore=2.46;MLEAC=2;MLEAF=0.333;MQ=59.71;MQ0=0;MQRankSum=0.699;QD=9.64;ReadPosRankSum=2.62;SB=-5.580e+02;VQSLOD=7.10;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|1:31,26:57:99:627,0,943:125	0|0:56,0:56:99:0,126,1597:125	1|0:32,16:48:99:424,0,785:125
+3	86234718	rs2324883	T	C	7655.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=234;Dels=0.00;FS=0.00;HaplotypeScore=0.649;MLEAC=6;MLEAF=1.00;MQ=59.51;MQ0=0;QD=32.71;SB=-4.142e+03;VQSLOD=11.21;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,80:80:99:2857,223,0:127	1|1:0,76:77:99:2512,196,0:127	1|1:0,77:77:99:2286,178,0:127
+2	85513238	rs62162679	C	T	742.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.16;DB;DP=137;Dels=0.00;FS=4.47;HaplotypeScore=1.39;MLEAC=2;MLEAF=0.333;MQ=57.50;MQ0=0;MQRankSum=0.479;QD=7.57;ReadPosRankSum=-2.720e-01;SB=-5.520e+02;VQSLOD=7.13;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:39,0:39:99:0,105,1267:104	0|1:23,23:47:99:430,0,551:104	0|1:31,20:51:99:351,0,633:104
+5	3276081	rs4866540	G	A	3653.01	VQSRTrancheSNP99.00to99.90	AC=4;AF=0.667;AN=6;BaseQRankSum=5.00;DB;DP=176;Dels=0.00;FS=2.78;HaplotypeScore=19.00;MLEAC=4;MLEAF=0.667;MQ=57.74;MQ0=0;MQRankSum=-5.690e-01;QD=20.76;ReadPosRankSum=1.31;SB=-6.610e+02;VQSLOD=3.18;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:1,71:72:99:2337,175,0:127	1|0:26,25:51:99:719,0,601:127	1|0:26,27:53:99:597,0,662:127
+19	11730690	rs4804613	C	T	2578.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=5.06;DB;DP=197;Dels=0.00;FS=0.529;HaplotypeScore=0.00;MLEAC=3;MLEAF=0.500;MQ=59.36;MQ0=0;MQRankSum=0.416;QD=13.09;ReadPosRankSum=-5.540e-01;SB=-1.389e+03;VQSLOD=9.39;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:21,26:47:99:586,0,623:127	0/1:42,45:87:99:1192,0,1055:127	0/1:32,30:63:99:839,0,932:127
+13	56456878	rs2997102	C	A	9454.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=257;Dels=0.00;FS=0.00;HaplotypeScore=0.954;MLEAC=6;MLEAF=1.00;MQ=59.57;MQ0=0;QD=36.79;SB=-4.826e+03;VQSLOD=11.51;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,99:99:99:3692,280,0:127	1|1:0,88:88:99:3239,253,0:127	1|1:0,70:70:99:2523,193,0:127
+3	48757773	rs61137521	A	G	3103.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-7.940e-01;DB;DP=172;Dels=0.00;FS=0.00;HaplotypeScore=1.90;MLEAC=4;MLEAF=0.667;MQ=59.34;MQ0=0;MQRankSum=-6.930e-01;QD=18.04;ReadPosRankSum=-1.667e+00;SB=-1.874e+03;VQSLOD=7.92;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,50:51:99:1723,141,0:127	1|0:31,34:65:99:745,0,814:127	1|0:24,32:56:99:677,0,603:127
+4	71449060	rs60358213	G	A	2269.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=5.70;DB;DP=227;Dels=0.00;FS=13.05;HaplotypeScore=20.14;MLEAC=2;MLEAF=0.333;MQ=55.35;MQ0=0;MQRankSum=0.477;QD=13.19;ReadPosRankSum=2.30;SB=-8.910e+02;VQSLOD=1.89;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:60,40:100:99:1221,0,1476:127	1|0:37,35:72:99:1087,0,987:127	0|0:53,1:54:99:0,157,2026:127
+19	20782710	rs10413568	T	C	6304.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=203;Dels=0.00;FS=0.00;HaplotypeScore=0.692;MLEAC=6;MLEAF=1.00;MQ=59.56;MQ0=0;QD=31.05;SB=-2.367e+03;VQSLOD=10.77;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,74:74:99:2375,214,0:127	1|1:0,80:80:99:2480,217,0:127	1|1:0,49:49:99:1449,129,0:127
+3	37334187	rs112182713	G	GGTT	1235.2	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=0.420;DB;DP=233;FS=10.65;HaplotypeScore=68.31;MLEAC=1;MLEAF=0.167;MQ=56.19;MQ0=0;MQRankSum=-1.868e+00;QD=17.65;RPA=1,2;RU=GTT;ReadPosRankSum=1.38;SB=-4.490e+02;STR;VQSLOD=3.14;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:83,0:83:99:0,244,4702:127	0|0:79,0:77:99:0,220,4149:127	0|1:40,23:68:99:1279,0,1696:127
+1	175207612	rs11484568	C	T	1920.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=5.64;DB;DP=216;Dels=0.00;FS=0.537;HaplotypeScore=2.25;MLEAC=2;MLEAF=0.333;MQ=58.99;MQ0=0;MQRankSum=0.383;QD=14.12;ReadPosRankSum=0.169;SB=-1.064e+03;VQSLOD=8.59;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:34,40:74:99:1152,0,995:127	0|0:80,0:80:99:0,208,2602:127	1|0:34,28:62:99:807,0,998:127
+2	209758643	rs12992166	C	T	1534.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=6.18;DB;DP=163;Dels=0.00;FS=8.81;HaplotypeScore=2.36;MLEAC=2;MLEAF=0.333;MQ=58.93;MQ0=0;MQRankSum=1.99;QD=12.08;ReadPosRankSum=1.08;SB=-4.720e+02;VQSLOD=6.82;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:35,22:59:99:610,0,886:93	1|0:32,36:68:99:963,0,797:93	0|0:36,0:36:93:0,93,1058:93
+4	82427976	rs6841516	G	A	561.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.022e+00;DB;DP=166;Dels=0.00;FS=0.00;HaplotypeScore=1.47;MLEAC=1;MLEAF=0.167;MQ=59.56;MQ0=0;MQRankSum=-1.555e+00;QD=11.00;ReadPosRankSum=0.016;SB=-3.880e+02;VQSLOD=8.10;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:51,0:51:99:0,132,1705:127	0|1:22,29:51:99:596,0,483:127	0|0:64,0:64:99:0,135,1755:127
+3	26960556	rs4422260	T	C	878.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=-2.140e+00;DB;DP=220;Dels=0.00;FS=1.11;HaplotypeScore=1.72;MLEAC=2;MLEAF=0.333;MQ=41.87;MQ0=3;MQRankSum=-6.679e+00;QD=5.97;ReadPosRankSum=-3.100e-02;SB=-4.600e+02;VQSLOD=0.717;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:73,0:73:99:0,208,2660:127	0|1:32,48:80:99:759,0,915:127	0|1:37,30:67:99:158,0,1092:127
+17	14096866	.	C	T	489.26	VQSRTrancheSNP99.00to99.90	AC=3;AF=0.500;AN=6;BaseQRankSum=4.54;DP=181;Dels=0.00;FS=33.90;HaplotypeScore=1.08;MLEAC=3;MLEAF=0.500;MQ=24.52;MQ0=71;MQRankSum=0.353;QD=2.70;ReadPosRankSum=0.385;SB=-1.450e+02;VQSLOD=-6.217e+00;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:48,17:66:99:228,0,822:63	0/1:42,16:58:99:237,0,389:63	0/1:44,13:57:63:63,0,523:63
+11	96559202	rs72048706	C	CAA	373.24	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-7.960e-01;DB;DP=121;FS=1.54;HaplotypeScore=64.55;MLEAC=4;MLEAF=0.667;MQ=39.96;MQ0=6;MQRankSum=-5.390e-01;QD=3.08;RPA=21,23;RU=A;ReadPosRankSum=-3.583e+00;SB=-1.985e+02;STR;VQSLOD=1.31;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|0:20,8:32:24:111,0,24:22	1|1:40,0:41:29:180,29,0:22	0|1:39,0:39:41:133,0,41:22
+GL000215.1	142616	.	T	C	976.25	VQSRTrancheSNP99.00to99.90	AC=6;AF=1.00;AN=6;DP=80;Dels=0.00;FS=0.00;HaplotypeScore=0.00;MLEAC=6;MLEAF=1.00;MQ=21.04;MQ0=42;QD=12.20;SB=-8.001e+01;VQSLOD=-4.104e-01;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:0,33:33:42:516,42,0:19	1|1:0,21:21:24:272,24,0:19	1|1:0,26:26:21:226,21,0:19
+21	18433036	rs969905	A	G	781.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-6.610e+00;DB;DP=229;Dels=0.00;FS=2.23;HaplotypeScore=1.29;MLEAC=1;MLEAF=0.167;MQ=59.55;MQ0=0;MQRankSum=0.300;QD=10.15;ReadPosRankSum=-3.840e-01;SB=-4.990e+02;VQSLOD=9.58;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:62,0:63:99:0,181,2380:127	0|0:89,0:89:99:0,244,3177:127	0|1:39,38:77:99:816,0,1256:127
+14	20313371	rs10137604	A	C	2154.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-4.894e+00;DB;DP=255;Dels=0.00;FS=0.00;HaplotypeScore=2.05;MLEAC=2;MLEAF=0.333;MQ=56.32;MQ0=1;MQRankSum=1.61;QD=13.72;ReadPosRankSum=0.126;SB=-1.124e+03;VQSLOD=5.62;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:40,48:88:99:1426,0,1229:127	0|0:98,0:98:99:0,268,3527:127	1|0:43,26:69:99:767,0,1284:127
+10	74020452	rs72806301	C	A	1116.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-2.155e+00;DB;DP=135;Dels=0.00;FS=3.28;HaplotypeScore=0.872;MLEAC=2;MLEAF=0.333;MQ=58.76;MQ0=0;MQRankSum=-8.180e-01;QD=11.88;ReadPosRankSum=1.48;SB=-6.800e+02;VQSLOD=7.27;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|1:20,27:47:99:658,0,446:104	0|0:41,0:41:99:0,105,1324:104	1|0:25,22:47:99:497,0,482:104
+3	17501103	.	T	G	45.26	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=-6.477e+00;DP=156;Dels=0.00;FS=71.75;HaplotypeScore=1.53;MLEAC=2;MLEAF=0.333;MQ=58.02;MQ0=0;MQRankSum=-1.560e-01;QD=0.430;ReadPosRankSum=-3.974e+00;SB=-1.474e-02;VQSLOD=-1.415e+01;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:43,8:51:99:0,114,1252:33	0|1:22,24:46:34:34,0,492:33	0|1:24,34:59:50:50,0,492:33
+9	109619207	rs4743032	A	T	3810.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-2.859e+00;DB;DP=214;Dels=0.00;FS=10.28;HaplotypeScore=0.322;MLEAC=3;MLEAF=0.500;MQ=59.59;MQ0=0;MQRankSum=0.557;QD=25.07;ReadPosRankSum=-8.360e-01;SB=-2.019e+03;VQSLOD=8.14;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:37,39:76:99:1185,0,1225:127	1|1:0,76:76:99:2625,202,0:127	0|0:62,0:62:99:0,156,2049:127
+1	156248265	rs12038203	C	T	643.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.110e-01;DB;DP=145;Dels=0.00;FS=4.57;HaplotypeScore=0.277;MLEAC=1;MLEAF=0.167;MQ=59.08;MQ0=0;MQRankSum=0.862;QD=12.86;ReadPosRankSum=0.177;SB=-3.450e+02;VQSLOD=7.50;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:47,0:47:99:0,123,1604:110	0|0:48,0:48:99:0,111,1433:110	0|1:25,25:50:99:678,0,694:110
+3	128140891	rs73201490	C	T	1315.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=5.39;DB;DP=142;Dels=0.00;FS=0.667;HaplotypeScore=3.49;MLEAC=2;MLEAF=0.333;MQ=58.69;MQ0=0;MQRankSum=1.73;QD=14.30;ReadPosRankSum=0.758;SB=-6.400e+02;VQSLOD=6.70;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:29,24:53:99:636,0,670:104	0|0:50,0:50:99:0,105,1188:104	1|0:12,27:39:99:718,0,250:104
+10	65355538	rs10733794	A	G	2464.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-8.392e+00;DB;DP=193;Dels=0.00;FS=7.47;HaplotypeScore=2.54;MLEAC=3;MLEAF=0.500;MQ=58.06;MQ0=2;MQRankSum=0.999;QD=18.96;ReadPosRankSum=-1.229e+00;SB=-1.065e+03;VQSLOD=6.39;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:33,32:65:99:830,0,1039:127	1|1:1,64:65:99:1679,153,0:127	0|0:63,0:63:99:0,159,2042:127
+12	68921960	.	TATTTTC	T	803.22	VQSRTrancheINDEL99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=9.86;DP=270;FS=190.60;HaplotypeScore=223.07;MLEAC=3;MLEAF=0.500;MQ=54.84;MQ0=1;MQRankSum=-4.552e+00;QD=2.97;ReadPosRankSum=-6.674e+00;SB=-1.330e-03;VQSLOD=-1.777e+01;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:69,22:95:99:394,0,4974:101	0/1:87,0:86:99:355,0,5072:101	0/1:83,0:84:99:102,0,5546:101
+16	83153777	rs4395063	T	C	3143.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-1.771e+00;DB;DP=205;Dels=0.00;FS=1.80;HaplotypeScore=1.04;MLEAC=4;MLEAF=0.667;MQ=59.55;MQ0=0;MQRankSum=-1.380e+00;QD=15.33;ReadPosRankSum=0.424;SB=-2.104e+03;VQSLOD=8.82;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:31,31:62:99:867,0,865:127	0|1:45,28:73:99:412,0,801:127	1|1:0,70:70:99:1906,150,0:127
+16	65776985	rs72784548	T	C	3527.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=5.44;DB;DP=195;Dels=0.00;FS=1.23;HaplotypeScore=0.879;MLEAC=4;MLEAF=0.667;MQ=58.78;MQ0=0;MQRankSum=1.63;QD=18.09;ReadPosRankSum=1.36;SB=-1.904e+03;VQSLOD=7.68;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|1:0,68:68:99:2351,181,0:127	1|0:33,28:61:99:586,0,710:127	1|0:31,35:66:99:590,0,468:127
+10	132949760	rs10829924	A	C	684.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.328e+00;DB;DP=215;Dels=0.00;FS=15.46;HaplotypeScore=1.32;MLEAC=1;MLEAF=0.167;MQ=59.70;MQ0=0;MQRankSum=-1.053e+00;QD=10.53;ReadPosRankSum=-2.893e+00;SB=-2.920e+02;VQSLOD=5.89;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|0:80,0:81:99:0,229,2999:127	0|0:69,0:69:99:0,175,2268:127	0|1:35,30:65:99:719,0,1046:127
+17	66991216	rs61697543	T	C	738.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-4.530e+00;DB;DP=252;Dels=0.00;FS=1.49;HaplotypeScore=1.71;MLEAC=1;MLEAF=0.167;MQ=59.36;MQ0=0;MQRankSum=0.771;QD=10.86;ReadPosRankSum=-7.240e-01;SB=-3.930e+02;VQSLOD=8.89;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:95,0:95:99:0,268,3511:127	0|0:89,0:89:99:0,235,3058:127	0|1:33,35:68:99:773,0,965:127
+7	152208470	rs6464236	G	C	4321.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=5.23;DB;DP=169;Dels=0.00;FS=1.63;HaplotypeScore=1.36;MLEAC=5;MLEAF=0.833;MQ=57.18;MQ0=1;MQRankSum=1.91;QD=25.57;ReadPosRankSum=0.892;SB=-2.137e+03;VQSLOD=6.76;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:1,56:57:99:1949,150,0:122	1|1:0,54:54:99:1557,123,0:122	1|0:30,28:58:99:815,0,715:122
+18	41449098	rs2045671	C	T	8380.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=237;Dels=0.00;FS=0.00;HaplotypeScore=1.35;MLEAC=6;MLEAF=1.00;MQ=59.65;MQ0=0;QD=35.36;SB=-4.462e+03;VQSLOD=11.65;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,76:76:99:2756,214,0:127	1|1:0,75:75:99:2635,202,0:127	1|1:0,86:86:99:2989,229,0:127
+9	89010476	rs164937	T	C	736.24	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.977e+00;DB;DP=216;Dels=0.00;FS=1.48;HaplotypeScore=1.06;MLEAC=1;MLEAF=0.167;MQ=39.79;MQ0=9;MQRankSum=-3.028e+00;QD=9.56;ReadPosRankSum=0.542;SB=-4.240e+02;VQSLOD=2.08;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:66,0:66:99:0,174,2097:127	0|1:40,37:77:99:771,0,876:127	0|0:73,0:73:99:0,183,2147:127
+17	75679403	.	TGTG	T	1024.22	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=8.62;DP=161;FS=1.69;HaplotypeScore=259.32;MLEAC=2;MLEAF=0.333;MQ=51.57;MQ0=0;MQRankSum=-8.617e+00;QD=9.48;ReadPosRankSum=-4.980e-01;SB=-4.680e+02;VQSLOD=1.76;culprit=QD	GT:AD:DP:GQ:PL:TP	1|0:29,19:58:99:711,0,1547:127	1|0:34,11:50:99:361,0,1922:127	0|0:53,0:53:99:0,157,3186:127
+6	35346891	.	C	T	483.26	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=-6.402e+00;DP=205;Dels=0.020;FS=214.15;HaplotypeScore=4.51;MLEAC=3;MLEAF=0.500;MQ=51.07;MQ0=1;MQRankSum=-2.038e+00;QD=2.36;ReadPosRankSum=-2.250e+00;SB=-1.065e-02;VQSLOD=-1.170e+02;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:48,31:79:99:257,0,635:80	0/1:40,22:62:99:185,0,308:80	0/1:44,16:60:80:80,0,534:80
+3	179020937	rs13082816	C	T	1116.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=5.60;DB;DP=82;Dels=0.00;FS=0.00;HaplotypeScore=0.636;MLEAC=4;MLEAF=0.667;MQ=54.57;MQ0=1;MQRankSum=0.374;QD=13.61;ReadPosRankSum=-3.700e-02;SB=-2.010e+02;VQSLOD=6.09;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:13,13:26:99:388,0,178:36	1|1:0,24:24:36:442,36,0:36	0|1:13,19:32:99:328,0,179:36
+22	50309915	rs9616205	A	T	1712.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-9.360e-01;DB;DP=162;Dels=0.00;FS=2.86;HaplotypeScore=2.15;MLEAC=2;MLEAF=0.333;MQ=56.21;MQ0=5;MQRankSum=0.892;QD=13.92;ReadPosRankSum=-1.040e+00;SB=-9.940e+02;VQSLOD=6.28;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|1:39,33:72:99:777,0,994:78	0|0:39,0:39:78:0,78,1010:78	1|0:16,35:51:99:974,0,257:78
+2	36994439	rs11124542	A	C	1302.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-7.406e+00;DB;DP=191;Dels=0.00;FS=3.34;HaplotypeScore=2.18;MLEAC=3;MLEAF=0.500;MQ=58.93;MQ0=0;MQRankSum=-7.250e-01;QD=6.82;ReadPosRankSum=0.302;SB=-1.006e+03;VQSLOD=7.95;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:32,28:60:99:710,0,1044:127	0/1:34,25:59:99:309,0,772:127	0/1:45,27:72:99:322,0,1096:127
+14	77813103	rs59474357	G	GT	328.58	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-2.653e+00;DB;DP=164;FS=5.22;HaplotypeScore=117.86;MLEAC=5;MLEAF=0.833;MQ=52.18;MQ0=0;MQRankSum=1.26;QD=2.00;RPA=24,25;RU=T;ReadPosRankSum=-1.030e+00;SB=-1.639e+02;STR;VQSLOD=2.16;culprit=QD	GT:AD:DP:GQ:PL:TP	1|0:51,1:53:18:105,0,18:6	1|1:58,1:59:13:150,13,0:6	0|1:34,13:52:1:123,6,0:6
+21	10750991	.	C	T	602.26	VQSRTrancheSNP99.90to100.00	AC=2;AF=0.333;AN=6;BaseQRankSum=10.10;DP=735;DS;Dels=0.00;FS=27.02;HaplotypeScore=107.27;MLEAC=2;MLEAF=0.333;MQ=44.40;MQ0=2;MQRankSum=-1.456e+01;QD=1.24;ReadPosRankSum=0.063;SB=-8.430e+02;VQSLOD=-1.009e+02;culprit=DP	GT:AD:DP:GQ:PL:TP	1|0:164,78:243:99:357,0,5193:103	1|0:187,55:242:99:284,0,5252:103	0|0:199,50:250:99:0,103,5864:103
+3	137840974	rs2622698	C	A	6792.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=232;Dels=0.00;FS=0.00;HaplotypeScore=2.65;MLEAC=6;MLEAF=1.00;MQ=59.04;MQ0=0;QD=29.28;SB=-3.999e+03;VQSLOD=9.77;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,79:79:99:2640,205,0:127	1|1:0,78:78:99:2229,178,0:127	1|1:0,75:75:99:1923,153,0:127
+11	19325064	rs793250	G	A	5752.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=5.08;DB;DP=203;Dels=0.00;FS=2.53;HaplotypeScore=0.817;MLEAC=5;MLEAF=0.833;MQ=59.35;MQ0=0;MQRankSum=-6.100e-02;QD=28.34;ReadPosRankSum=0.095;SB=-3.093e+03;VQSLOD=9.46;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,71:71:99:2527,190,0:127	1|1:0,78:78:99:2626,205,0:127	1|0:32,22:54:99:599,0,768:127
+11	35980461	rs263087	A	T	3494.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-7.010e-01;DB;DP=186;Dels=0.00;FS=0.00;HaplotypeScore=2.96;MLEAC=4;MLEAF=0.667;MQ=59.34;MQ0=0;MQRankSum=0.836;QD=18.79;ReadPosRankSum=7.000e-03;SB=-1.535e+03;VQSLOD=7.64;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:36,35:71:99:1001,0,1165:127	0|1:30,26:56:99:710,0,796:127	1|1:0,59:59:99:1783,144,0:127
+16	55910673	rs17265788	G	C	2345.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=2.66;DB;DP=208;Dels=0.00;FS=3.16;HaplotypeScore=1.92;MLEAC=3;MLEAF=0.500;MQ=59.67;MQ0=0;MQRankSum=-3.330e-01;QD=16.63;ReadPosRankSum=-4.250e-01;SB=-1.468e+03;VQSLOD=8.37;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|1:33,33:66:99:769,0,761:122	0|0:67,0:67:99:0,123,1506:122	1|1:0,75:75:99:1621,132,0:122
+11	3839556	rs5789310	CA	C	803.1	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.138;DB;DP=170;FS=4.50;HaplotypeScore=36.64;MLEAC=3;MLEAF=0.500;MQ=55.95;MQ0=2;MQRankSum=2.28;QD=4.72;RPA=17,16;RU=A;ReadPosRankSum=3.21;SB=-3.839e+02;STR;VQSLOD=1.81;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:35,17:55:32:329,0,32:3	0/1:45,9:57:8:276,0,8:3	0/1:30,19:52:1:244,0,1:3
+20	12166868	rs7272217	C	T	926.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.444e+00;DB;DP=200;Dels=0.00;FS=2.63;HaplotypeScore=0.841;MLEAC=1;MLEAF=0.167;MQ=58.94;MQ0=0;MQRankSum=-1.362e+00;QD=13.23;ReadPosRankSum=-1.055e+00;SB=-4.040e+02;VQSLOD=7.62;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:68,0:68:99:0,190,2486:127	0|0:62,0:62:99:0,169,2218:127	0|1:33,37:70:99:961,0,870:127
+10	46605359	.	CT	C	883.2	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=1.62;DP=136;FS=9.66;HaplotypeScore=4.70;MLEAC=3;MLEAF=0.500;MQ=22.12;MQ0=1;MQRankSum=0.368;QD=8.57;RPA=7,6;RU=T;ReadPosRankSum=-1.076e+00;SB=-1.190e+02;STR;VQSLOD=2.55;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:33,0:32:90:0,90,1016:25	0|1:66,15:81:99:303,0,1810:25	0|1:2,19:20:0:634,54,0:25
+2	45429089	rs13418430	C	A	2341.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=0.861;DB;DP=283;Dels=0.00;FS=2.85;HaplotypeScore=1.33;MLEAC=2;MLEAF=0.333;MQ=59.62;MQ0=0;MQRankSum=-9.390e-01;QD=12.52;ReadPosRankSum=-1.869e+00;SB=-1.156e+03;VQSLOD=7.15;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:60,49:109:99:1406,0,2061:127	1|0:41,37:78:99:974,0,1238:127	0|0:96,0:96:99:0,256,3312:127
+4	21819269	rs4285068	C	G	7252.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=216;Dels=0.00;FS=0.00;HaplotypeScore=0.651;MLEAC=6;MLEAF=1.00;MQ=55.91;MQ0=0;QD=33.57;SB=-3.284e+03;VQSLOD=8.54;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,83:83:99:2859,226,0:127	1|1:0,73:73:99:2413,193,0:127	1|1:0,59:59:99:1980,156,0:127
+18	30361151	rs35024407	T	TTG	9768	PASS	AC=6;AF=1.00;AN=6;DB;DP=234;FS=0.00;HaplotypeScore=13.10;MLEAC=6;MLEAF=1.00;MQ=60.40;MQ0=2;QD=41.74;RPA=3,4;RU=TG;SB=-4.721e+03;STR;VQSLOD=5.50;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:7,80:86:99:3686,241,0:127	1|1:8,77:85:99:3454,229,0:127	1|1:3,58:61:99:2628,172,0:127
+20	59978756	rs1892320	T	C	3967.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-2.562e+00;DB;DP=206;Dels=0.00;FS=14.25;HaplotypeScore=1.38;MLEAC=4;MLEAF=0.667;MQ=59.89;MQ0=0;MQRankSum=-2.890e-01;QD=19.26;ReadPosRankSum=0.221;SB=-2.292e+03;VQSLOD=7.62;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:0,72:72:99:2337,181,0:127	1|0:38,29:67:99:743,0,1180:127	1|0:31,36:67:99:887,0,873:127
+2	54408283	rs55993481	T	G	2128.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.96;DB;DP=222;Dels=0.00;FS=1.74;HaplotypeScore=3.96;MLEAC=2;MLEAF=0.333;MQ=59.69;MQ0=0;MQRankSum=0.670;QD=14.28;ReadPosRankSum=1.31;SB=-1.076e+03;VQSLOD=6.51;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:35,46:81:99:1392,0,921:127	1|0:35,33:68:99:775,0,878:127	0|0:73,0:73:99:0,175,2164:127
+8	30862954	rs149290124	C	CA	3883	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-1.321e+00;DB;DP=261;FS=0.755;HaplotypeScore=37.27;MLEAC=5;MLEAF=0.833;MQ=58.08;MQ0=0;MQRankSum=0.330;QD=14.88;RPA=11,12;RU=A;ReadPosRankSum=-5.780e-01;SB=-1.926e+03;STR;VQSLOD=5.37;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:21,76:105:99:1980,179,0:91	1|0:51,22:75:99:597,0,485:91	1|1:24,54:81:92:1306,92,0:91
+13	74611546	rs73214804	C	T	639.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-4.870e-01;DB;DP=164;Dels=0.00;FS=0.00;HaplotypeScore=1.41;MLEAC=1;MLEAF=0.167;MQ=58.95;MQ0=0;MQRankSum=0.902;QD=11.21;ReadPosRankSum=-5.410e-01;SB=-3.000e+02;VQSLOD=8.88;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:53,0:53:99:0,135,1773:110	0|0:53,1:54:99:0,111,1440:110	0|1:24,33:57:99:674,0,388:110
+2	167166899	.	T	A	1064.78	VQSRTrancheSNP99.00to99.90	AC=5;AF=0.833;AN=6;BaseQRankSum=0.023;DP=278;Dels=0.00;FS=9.89;HaplotypeScore=0.277;MLEAC=6;MLEAF=1.00;MQ=10.47;MQ0=239;MQRankSum=1.64;QD=3.83;ReadPosRankSum=0.347;SB=-1.083e-02;VQSLOD=-6.945e+00;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:174,12:186:36:401,36,0:4	1|1:37,14:52:39:431,39,0:4	1|0:31,9:40:3:271,0,3:4
+2	218911764	.	TA	T	229.22	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.591;DP=218;FS=1.76;HaplotypeScore=32.57;MLEAC=3;MLEAF=0.500;MQ=57.41;MQ0=0;MQRankSum=1.79;QD=1.05;RPA=19,18;RU=A;ReadPosRankSum=0.676;SB=-1.060e+02;STR;VQSLOD=2.31;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:56,5:65:99:101,0,313:70	0/1:59,18:82:99:105,0,395:70	0/1:64,4:70:71:71,0,263:70
+8	123499998	rs9693135	T	C	926.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-7.820e+00;DB;DP=207;Dels=0.00;FS=2.68;HaplotypeScore=1.26;MLEAC=2;MLEAF=0.333;MQ=56.08;MQ0=0;MQRankSum=-2.729e+00;QD=6.34;ReadPosRankSum=-2.690e-01;SB=-8.230e+02;VQSLOD=4.30;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:61,0:61:99:0,172,2301:127	0|1:37,35:72:99:622,0,769:127	0|1:48,26:74:99:343,0,1280:127
+15	83241984	rs11336258	AT	A	1748.21	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-1.821e+00;DB;DP=199;FS=5.74;HaplotypeScore=29.94;MLEAC=4;MLEAF=0.667;MQ=59.67;MQ0=0;MQRankSum=1.12;QD=8.78;RPA=15,14;RU=T;ReadPosRankSum=-1.763e+00;SB=-7.830e+02;STR;VQSLOD=3.49;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:41,27:72:99:434,0,434:118	0|1:36,26:66:99:470,0,275:118	1|1:11,44:61:99:895,118,0:118
+15	42065422	rs2925337	A	C	5231.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=176;Dels=0.00;FS=0.00;HaplotypeScore=0.00;MLEAC=6;MLEAF=1.00;MQ=59.68;MQ0=0;QD=29.72;SB=-3.112e+03;VQSLOD=11.03;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,54:54:99:1770,138,0:127	1|1:0,68:68:99:1750,138,0:127	1|1:0,54:54:99:1711,132,0:127
+11	103989190	rs1545865	T	C	4915.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-4.030e+00;DB;DP=219;Dels=0.00;FS=1.23;HaplotypeScore=1.21;MLEAC=4;MLEAF=0.667;MQ=59.37;MQ0=0;MQRankSum=1.10;QD=22.44;ReadPosRankSum=0.773;SB=-2.213e+03;VQSLOD=8.91;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|1:23,40:63:99:1203,0,669:127	0|1:36,52:88:99:1433,0,1136:127	1|1:0,68:68:99:2279,178,0:127
+6	143691852	rs17792267	C	T	3641.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-1.465e+00;DB;DP=203;Dels=0.00;FS=2.41;HaplotypeScore=0.322;MLEAC=3;MLEAF=0.500;MQ=59.54;MQ0=0;MQRankSum=1.20;QD=27.17;ReadPosRankSum=-1.140e+00;SB=-1.772e+03;VQSLOD=8.87;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:29,33:62:99:1131,0,803:127	1|1:0,72:72:99:2510,196,0:127	0|0:69,0:69:99:0,190,2480:127
+17	55158811	rs7217371	G	A	2849.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=8.62;DB;DP=206;Dels=0.00;FS=0.511;HaplotypeScore=1.10;MLEAC=3;MLEAF=0.500;MQ=59.66;MQ0=0;MQRankSum=0.103;QD=13.83;ReadPosRankSum=0.958;SB=-1.448e+03;VQSLOD=9.94;culprit=MQ	GT:AD:DP:GQ:PL:TP	0/1:40,31:72:99:982,0,1147:127	0/1:35,40:75:99:1236,0,984:127	0/1:32,27:59:99:670,0,882:127
+10	95435201	rs2422323	C	T	4017.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=6.44;DB;DP=203;Dels=0.00;FS=13.13;HaplotypeScore=3.24;MLEAC=4;MLEAF=0.667;MQ=55.24;MQ0=0;MQRankSum=1.17;QD=19.79;ReadPosRankSum=-6.550e-01;SB=-2.177e+03;VQSLOD=4.60;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:38,45:83:99:1327,0,931:127	1|1:1,63:64:99:1966,156,0:127	0|1:30,25:56:99:724,0,807:127
+2	127445050	rs113647072	A	G	1773.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-3.856e+00;DB;DP=154;Dels=0.00;FS=4.20;HaplotypeScore=2.27;MLEAC=4;MLEAF=0.667;MQ=59.16;MQ0=0;MQRankSum=0.759;QD=11.51;ReadPosRankSum=1.29;SB=-1.402e+03;VQSLOD=7.92;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:26,28:54:99:652,0,472:78	0|1:26,22:49:99:350,0,462:78	1|1:0,50:51:78:813,78,0:78
+22	17351507	rs5748687	G	A	4244.01	VQSRTrancheSNP99.00to99.90	AC=5;AF=0.833;AN=6;BaseQRankSum=-2.240e-01;DB;DP=261;Dels=0.00;FS=0.710;HaplotypeScore=1.72;MLEAC=5;MLEAF=0.833;MQ=28.84;MQ0=57;MQRankSum=-7.852e+00;QD=16.26;ReadPosRankSum=-1.243e+00;SB=-2.174e+03;VQSLOD=-1.710e+00;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:0,92:92:99:1529,141,0:127	1|0:34,49:83:99:727,0,1065:127	1|1:0,86:86:99:1988,180,0:127
+2	18016237	rs12710649	A	T	3950.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.700e-02;DB;DP=250;Dels=0.00;FS=2.16;HaplotypeScore=2.08;MLEAC=3;MLEAF=0.500;MQ=59.14;MQ0=0;MQRankSum=0.494;QD=15.80;ReadPosRankSum=0.705;SB=-2.142e+03;VQSLOD=8.14;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:46,59:105:99:1733,0,1505:127	0/1:39,37:76:99:925,0,1164:127	0/1:24,44:68:99:1292,0,628:127
+6	63303894	rs34270846	T	TC	7366	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=1.31;DB;DP=202;FS=2.81;HaplotypeScore=88.29;MLEAC=5;MLEAF=0.833;MQ=61.10;MQ0=0;MQRankSum=-3.900e-01;QD=36.47;ReadPosRankSum=-3.150e-01;SB=-2.762e+03;VQSLOD=3.86;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,89:89:99:3885,265,0:127	1|0:29,25:54:99:999,0,1050:127	1|1:0,57:59:99:2482,169,0:127
+6	31390139	rs72548006	T	TA	2159.22	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=0.491;DB;DP=257;FS=2.38;HaplotypeScore=26.89;MLEAC=2;MLEAF=0.333;MQ=59.99;MQ0=0;MQRankSum=1.59;QD=12.85;RPA=5,6;RU=A;ReadPosRankSum=1.85;SB=-9.710e+02;STR;VQSLOD=5.53;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:51,37:89:99:1076,0,1364:127	0|0:89,0:89:99:0,256,3112:127	1|0:41,38:79:99:1131,0,1103:127
+6	55412503	rs12201934	T	C	882.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.280e+00;DB;DP=182;Dels=0.00;FS=0.744;HaplotypeScore=0.333;MLEAC=1;MLEAF=0.167;MQ=59.64;MQ0=0;MQRankSum=-7.650e-01;QD=13.57;ReadPosRankSum=0.147;SB=-4.590e+02;VQSLOD=9.38;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:61,0:61:99:0,181,2371:127	0|1:35,30:65:99:917,0,1046:127	0|0:56,0:56:99:0,150,1969:127
+4	6333669	rs35678078	G	T	2186.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=1.22;DB;DP=198;Dels=0.00;FS=1.75;HaplotypeScore=0.778;MLEAC=3;MLEAF=0.500;MQ=59.27;MQ0=0;MQRankSum=-2.560e-01;QD=11.04;ReadPosRankSum=-4.690e-01;SB=-1.621e+03;VQSLOD=9.41;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:33,34:67:99:875,0,848:127	0/1:27,32:59:99:602,0,534:127	0/1:33,38:72:99:748,0,676:127
+15	53677501	.	T	G	770.26	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=-8.969e+00;DP=210;Dels=0.00;FS=347.47;HaplotypeScore=2.09;MLEAC=3;MLEAF=0.500;MQ=58.31;MQ0=0;MQRankSum=0.438;QD=3.67;ReadPosRankSum=-6.409e+00;SB=-5.499e-03;VQSLOD=-3.071e+02;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:59,20:79:94:94,0,1389:94	0/1:41,31:72:99:438,0,721:94	0/1:37,21:59:99:277,0,521:94
+X	4712340	rs5915814	C	A	2233.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=8.78;DB;DP=176;Dels=0.00;FS=0.00;HaplotypeScore=0.443;MLEAC=2;MLEAF=0.333;MQ=59.50;MQ0=0;MQRankSum=-1.782e+00;QD=15.73;ReadPosRankSum=0.359;SB=-1.240e+03;VQSLOD=8.39;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:32,37:69:99:1114,0,859:81	0|0:34,0:34:81:0,81,948:81	1|0:32,41:73:99:1158,0,575:81
+16	19633462	rs11371821	C	CT	239.23	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-4.097e+00;DB;DP=182;FS=1.34;HaplotypeScore=21.26;MLEAC=4;MLEAF=0.667;MQ=50.55;MQ0=0;MQRankSum=-1.358e+00;QD=1.31;RPA=22,23;RU=T;ReadPosRankSum=-3.963e+00;SB=-9.798e+01;STR;VQSLOD=2.31;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|0:61,0:63:45:70,0,45:24	1|1:44,15:58:28:192,28,0:24	0|1:52,0:60:28:28,0,37:24
+6	110345430	rs56272355	T	C	882.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-7.241e+00;DB;DP=230;Dels=0.00;FS=2.16;HaplotypeScore=1.76;MLEAC=1;MLEAF=0.167;MQ=59.70;MQ0=0;MQRankSum=-2.000e-01;QD=11.46;ReadPosRankSum=-4.800e-01;SB=-5.580e+02;VQSLOD=8.98;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:77,0:77:99:0,220,2860:127	0|0:75,0:76:99:0,184,2321:127	0|1:35,42:77:99:917,0,926:127
+9	98491693	rs12337935	C	A	1474.25	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=2.10;DB;DP=97;Dels=0.00;FS=14.28;HaplotypeScore=1.77;MLEAC=4;MLEAF=0.667;MQ=58.64;MQ0=0;MQRankSum=-2.240e-01;QD=15.20;ReadPosRankSum=1.17;SB=-6.430e+02;VQSLOD=5.80;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:14,12:26:99:348,0,352:63	1|1:0,28:29:63:781,63,0:63	0|1:17,25:42:99:387,0,364:63
+10	125452232	rs7900707	A	G	3211.24	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-6.610e+00;DB;DP=189;Dels=0.00;FS=17.74;HaplotypeScore=0.00;MLEAC=4;MLEAF=0.667;MQ=59.66;MQ0=0;MQRankSum=0.614;QD=16.99;ReadPosRankSum=-3.210e-01;SB=-1.553e+03;VQSLOD=6.90;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,61:61:99:1944,168,0:127	1|0:44,26:70:99:627,0,1357:127	1|0:29,29:58:99:682,0,862:127
+6	131725921	.	G	A	64.24	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=3.65;DP=182;Dels=0.00;FS=3.54;HaplotypeScore=2.24;MLEAC=1;MLEAF=0.167;MQ=50.85;MQ0=1;MQRankSum=-6.039e+00;QD=1.31;ReadPosRankSum=-1.757e+00;SB=-4.901e+01;VQSLOD=-6.667e-01;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:59,0:60:99:0,168,1897:98	0|1:33,16:49:99:99,0,790:98	0|0:73,0:73:99:0,156,1824:98
+6	100462085	rs113348222	G	GT	5284	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-4.600e-02;DB;DP=285;FS=7.48;HaplotypeScore=252.09;MLEAC=5;MLEAF=0.833;MQ=60.07;MQ0=0;MQRankSum=1.24;QD=18.54;RPA=10,11;RU=T;ReadPosRankSum=-2.539e+00;SB=-2.505e+03;STR;VQSLOD=2.21;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|1:8,79:94:99:2218,200,0:127	1|0:54,37:97:99:818,0,914:127	1|1:10,83:94:99:2248,221,0:127
+7	89752110	rs39232	T	G	3944.01	VQSRTrancheSNP99.00to99.90	AC=6;AF=1.00;AN=6;DB;DP=216;Dels=0.00;FS=0.00;HaplotypeScore=1.45;MLEAC=6;MLEAF=1.00;MQ=38.19;MQ0=21;QD=18.26;SB=-2.716e+03;VQSLOD=2.66;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:0,70:70:99:1564,132,0:101	1|1:0,79:79:99:1258,108,0:101	1|1:0,66:66:99:1122,102,0:101
+11	113825129	rs1150234	G	A	2441.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=3.98;DB;DP=210;Dels=0.00;FS=0.00;HaplotypeScore=2.07;MLEAC=3;MLEAF=0.500;MQ=59.49;MQ0=0;MQRankSum=0.877;QD=11.63;ReadPosRankSum=0.262;SB=-1.513e+03;VQSLOD=9.04;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:30,33:63:99:881,0,774:127	0/1:46,33:80:99:726,0,1020:127	0/1:32,35:67:99:873,0,759:127
+10	4588547	rs313427	C	T	1985.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=3.69;DB;DP=204;Dels=0.00;FS=1.81;HaplotypeScore=0.614;MLEAC=2;MLEAF=0.333;MQ=59.73;MQ0=0;MQRankSum=0.241;QD=14.18;ReadPosRankSum=0.717;SB=-1.082e+03;VQSLOD=9.78;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:39,35:74:99:1029,0,1182:127	1|0:32,34:66:99:995,0,1024:127	0|0:64,0:64:99:0,175,2242:127
+4	169085855	rs2251558	A	G	1161.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=0.721;DB;DP=244;Dels=0.00;FS=5.25;HaplotypeScore=0.489;MLEAC=1;MLEAF=0.167;MQ=59.91;MQ0=0;MQRankSum=1.57;QD=13.99;ReadPosRankSum=0.454;SB=-5.590e+02;VQSLOD=7.42;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:77,0:77:99:0,226,2915:127	0|1:43,40:83:99:1196,0,1294:127	0|0:84,0:84:99:0,232,2950:127
+4	132671861	rs6856716	C	G	2622.26	VQSRTrancheSNP99.90to100.00	AC=2;AF=0.333;AN=6;BaseQRankSum=3.14;DB;DP=617;DS;Dels=0.00;FS=5.81;HaplotypeScore=34.41;MLEAC=2;MLEAF=0.333;MQ=24.78;MQ0=42;MQRankSum=3.29;QD=5.89;ReadPosRankSum=-7.360e-01;SB=-1.412e+03;VQSLOD=-7.735e+01;culprit=DP	GT:AD:DP:GQ:PL:TP	0|1:125,98:223:99:1761,0,1486:127	0|0:171,0:172:99:0,300,2641:127	1|0:152,70:222:99:900,0,2086:127
+16	30509723	rs7193693	A	G	497.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-4.054e+00;DB;DP=167;Dels=0.00;FS=0.00;HaplotypeScore=1.16;MLEAC=1;MLEAF=0.167;MQ=57.89;MQ0=0;MQRankSum=-5.450e-01;QD=9.38;ReadPosRankSum=0.541;SB=-2.410e+02;VQSLOD=8.43;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:57,0:57:99:0,153,2009:101	0|0:57,0:57:99:0,102,1304:101	0|1:26,27:53:99:532,0,526:101
+12	122942070	rs10744217	A	G	1812.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.353e+00;DB;DP=179;Dels=0.00;FS=0.663;HaplotypeScore=1.42;MLEAC=3;MLEAF=0.500;MQ=58.69;MQ0=0;MQRankSum=0.992;QD=15.10;ReadPosRankSum=1.08;SB=-5.860e+02;VQSLOD=8.48;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:35,36:71:99:762,0,1100:92	1|1:0,48:49:93:1095,93,0:92	0|0:59,0:59:99:0,120,1560:92
+14	28032147	rs67442200	AT	A	9959	PASS	AC=6;AF=1.00;AN=6;DB;DP=259;FS=0.00;HaplotypeScore=15.29;MLEAC=6;MLEAF=1.00;MQ=60.66;MQ0=0;QD=38.45;RPA=3,2;RU=T;SB=-4.646e+03;STR;VQSLOD=6.01;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:2,86:91:99:3493,259,0:127	1|1:3,76:79:99:3025,226,0:127	1|1:3,86:89:99:3441,256,0:127
+19	47012249	rs60424854	ATTTTT	A	1121.22	VQSRTrancheINDEL99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=-1.922e+00;DB;DP=144;FS=61.85;HaplotypeScore=338.74;MLEAC=2;MLEAF=0.333;MQ=44.50;MQ0=1;MQRankSum=-2.345e+00;QD=10.29;RPA=16,11;RU=T;ReadPosRankSum=5.64;SB=-1.090e+02;STR;VQSLOD=-2.399e+00;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|0:30,9:43:99:371,0,961:89	1|0:44,15:63:99:798,0,1293:89	0|0:32,0:33:89:0,89,1424:89
+1	146610795	rs58742099	C	T	2831.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.30;DB;DP=261;Dels=0.00;FS=7.03;HaplotypeScore=13.91;MLEAC=2;MLEAF=0.333;MQ=59.62;MQ0=0;MQRankSum=0.753;QD=16.27;ReadPosRankSum=-1.405e+00;SB=-1.481e+03;VQSLOD=3.42;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:39,43:82:99:1329,0,1080:127	1|0:40,52:92:99:1541,0,1241:127	0|0:87,0:87:99:0,238,3098:127
+1	120811174	.	C	CA	74.77	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-1.393e+00;DP=148;FS=0.00;HaplotypeScore=20.35;MLEAC=5;MLEAF=0.833;MQ=15.79;MQ0=88;MQRankSum=-3.480e-01;QD=0.510;RPA=24,25;RU=A;ReadPosRankSum=-1.044e+00;SB=-1.531e+01;STR;VQSLOD=5.09;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:47,5:9:11:53,11,0:3	1|0:51,0:15:5:37,0,5:3	1|1:43,0:8:6:32,6,0:3
+1	186656152	rs4422959	G	A	1342.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=7.23;DB;DP=270;Dels=0.00;FS=7.29;HaplotypeScore=1.17;MLEAC=1;MLEAF=0.167;MQ=59.71;MQ0=0;MQRankSum=0.399;QD=17.21;ReadPosRankSum=-8.690e-01;SB=-6.320e+02;VQSLOD=7.67;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:99,0:99:99:0,283,3341:127	0|0:93,0:93:99:0,256,3022:127	0|1:33,45:78:99:1377,0,917:127
+2	237156689	rs13390270	G	A	852.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.150e+00;DB;DP=205;Dels=0.00;FS=0.710;HaplotypeScore=1.73;MLEAC=1;MLEAF=0.167;MQ=59.06;MQ0=0;MQRankSum=-1.930e-01;QD=11.67;ReadPosRankSum=1.26;SB=-4.790e+02;VQSLOD=8.50;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:73,0:73:99:0,202,2606:108	0|1:39,34:73:99:887,0,1027:108	0|0:59,0:59:99:0,108,1384:108
+4	114869733	rs11381039	A	AT	2798.22	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.957;DB;DP=267;FS=4.37;HaplotypeScore=26.36;MLEAC=3;MLEAF=0.500;MQ=59.97;MQ0=0;MQRankSum=0.673;QD=10.48;RPA=8,9;RU=T;ReadPosRankSum=-1.351e+00;SB=-1.173e+03;STR;VQSLOD=5.55;culprit=QD	GT:AD:DP:GQ:PL:TP	0/1:47,41:89:99:994,0,1219:127	0/1:50,41:92:99:1063,0,1043:127	0/1:50,34:86:99:789,0,1153:127
+5	112750674	rs9716322	A	C	598.24	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.930e-01;DB;DP=199;Dels=0.00;FS=2.95;HaplotypeScore=0.333;MLEAC=1;MLEAF=0.167;MQ=45.61;MQ0=2;MQRankSum=-2.398e+00;QD=12.21;ReadPosRankSum=1.16;SB=-8.101e+01;VQSLOD=2.77;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:81,0:81:99:0,196,2534:127	0|1:23,26:49:99:633,0,479:127	0|0:68,1:69:99:0,174,2191:127
+15	62088952	rs35033959	A	T	3546.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-3.220e+00;DB;DP=241;Dels=0.00;FS=14.29;HaplotypeScore=0.277;MLEAC=3;MLEAF=0.500;MQ=59.77;MQ0=0;MQRankSum=-1.969e+00;QD=14.71;ReadPosRankSum=0.341;SB=-1.970e+03;VQSLOD=6.38;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0/1:45,44:89:99:1265,0,1533:127	0/1:34,38:72:99:1133,0,1137:127	0/1:41,39:80:99:1148,0,1303:127
+18	75204349	rs9948476	C	T	646.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=1.97;DB;DP=185;Dels=0.00;FS=0.817;HaplotypeScore=1.40;MLEAC=1;MLEAF=0.167;MQ=59.35;MQ0=0;MQRankSum=0.276;QD=10.95;ReadPosRankSum=-1.580e-01;SB=-3.210e+02;VQSLOD=9.37;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:65,0:66:99:0,168,2026:127	0|0:60,0:60:99:0,147,1768:127	0|1:34,25:59:99:681,0,893:127
+22	43356130	rs6519353	A	C	3526.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.809;DB;DP=228;Dels=0.00;FS=6.34;HaplotypeScore=1.63;MLEAC=3;MLEAF=0.500;MQ=59.41;MQ0=0;MQRankSum=-1.460e-01;QD=22.46;ReadPosRankSum=2.03;SB=-1.954e+03;VQSLOD=8.50;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|0:40,41:81:99:1020,0,1222:127	1|1:0,76:76:99:2506,196,0:127	0|0:71,0:71:99:0,165,2091:127
+5	154441640	rs467330	A	C	1133.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.127e+00;DB;DP=235;Dels=0.00;FS=2.10;HaplotypeScore=1.19;MLEAC=1;MLEAF=0.167;MQ=59.65;MQ0=0;MQRankSum=0.766;QD=12.59;ReadPosRankSum=-5.350e-01;SB=-6.500e+02;VQSLOD=9.83;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:61,0:61:99:0,172,2172:127	0|1:45,45:90:99:1168,0,1368:127	0|0:82,1:84:99:0,226,2825:127
+9	25201692	rs9408058	C	T	8643.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=245;Dels=0.00;FS=0.00;HaplotypeScore=0.898;MLEAC=6;MLEAF=1.00;MQ=59.13;MQ0=0;QD=35.28;SB=-4.398e+03;VQSLOD=12.17;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,89:89:99:3312,256,0:127	1|1:0,81:81:99:2771,223,0:127	1|1:0,75:75:99:2560,202,0:127
+8	140651779	rs1469039	G	A	1879.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-2.189e+00;DB;DP=145;Dels=0.00;FS=0.00;HaplotypeScore=1.77;MLEAC=3;MLEAF=0.500;MQ=58.39;MQ0=0;MQRankSum=0.745;QD=12.96;ReadPosRankSum=-1.590e-01;SB=-9.360e+02;VQSLOD=9.01;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:23,24:47:99:612,0,740:127	0/1:21,31:52:99:684,0,478:127	0/1:20,26:46:99:622,0,367:127
+21	42833227	rs460904	T	C	3179.23	PASS	AC=6;AF=1.00;AN=6;DB;DP=155;Dels=0.00;FS=0.00;HaplotypeScore=2.46;MLEAC=6;MLEAF=1.00;MQ=58.18;MQ0=0;QD=20.51;SB=-2.173e+03;VQSLOD=7.70;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,60:60:90:1085,90,0:74	1|1:0,54:54:96:1172,96,0:74	1|1:0,41:41:75:960,75,0:74
+GL000212.1	28454	.	T	C	2248.99	VQSRTrancheSNP99.00to99.90	AC=4;AF=1.00;AN=4;BaseQRankSum=1.69;DP=94;Dels=0.00;FS=3.27;HaplotypeScore=0.962;MLEAC=4;MLEAF=1.00;MQ=36.99;MQ0=7;MQRankSum=-4.280e-01;QD=24.18;ReadPosRankSum=-1.284e+00;SB=-1.053e+03;VQSLOD=1.24;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:0,29:29:63:755,63,0:63	./.	1|1:1,63:64:99:1530,135,0:63
+10	56495833	rs6481118	G	A	7633.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=212;Dels=0.00;FS=0.00;HaplotypeScore=0.333;MLEAC=6;MLEAF=1.00;MQ=54.64;MQ0=0;QD=36.00;SB=-2.091e+03;VQSLOD=8.67;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,62:62:99:2383,184,0:127	1|1:1,67:68:99:2375,184,0:127	1|1:0,82:82:99:2875,223,0:127
+10	106444111	rs72813617	A	G	632.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-8.380e-01;DB;DP=197;Dels=0.00;FS=4.12;HaplotypeScore=1.82;MLEAC=1;MLEAF=0.167;MQ=59.35;MQ0=0;MQRankSum=-1.142e+00;QD=12.40;ReadPosRankSum=-1.947e+00;SB=-2.390e+02;VQSLOD=7.62;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|0:84,0:84:99:0,241,3129:127	0|0:62,0:62:99:0,159,2008:127	0|1:27,24:51:99:667,0,584:127
+11	132780959	rs61906922	C	T	1342.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=6.22;DB;DP=263;Dels=0.00;FS=0.601;HaplotypeScore=1.84;MLEAC=1;MLEAF=0.167;MQ=59.58;MQ0=0;MQRankSum=0.997;QD=15.25;ReadPosRankSum=-7.460e-01;SB=-6.890e+02;VQSLOD=8.81;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|0:87,0:87:99:0,250,2877:127	0|0:87,0:88:99:0,253,3009:127	0|1:43,45:88:99:1377,0,1138:127
+15	92857342	rs12101550	A	G	2734.26	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-7.995e+00;DB;DP=226;Dels=0.00;FS=3.76;HaplotypeScore=1.57;MLEAC=3;MLEAF=0.500;MQ=59.41;MQ0=0;MQRankSum=0.761;QD=12.10;ReadPosRankSum=-5.870e-01;SB=-1.469e+03;VQSLOD=9.15;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:45,37:82:99:853,0,1356:127	0/1:29,40:69:99:966,0,852:127	0/1:38,37:75:99:954,0,1085:127
+12	39118960	rs79977305	G	A	1330.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=6.31;DB;DP=263;Dels=0.00;FS=0.597;HaplotypeScore=1.46;MLEAC=1;MLEAF=0.167;MQ=58.83;MQ0=0;MQRankSum=1.92;QD=13.57;ReadPosRankSum=-5.480e-01;SB=-7.360e+02;VQSLOD=7.37;culprit=MQRankSum	GT:AD:DP:GQ:PL:TP	0|0:81,0:81:99:0,241,2869:127	0|0:84,0:84:99:0,229,2712:127	0|1:51,47:98:99:1365,0,1343:127
+5	144321895	rs35068704	A	T	1535.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=6.05;DB;DP=203;Dels=0.00;FS=13.29;HaplotypeScore=0.507;MLEAC=2;MLEAF=0.333;MQ=57.36;MQ0=0;MQRankSum=2.19;QD=11.37;ReadPosRankSum=-1.361e+00;SB=-7.640e+02;VQSLOD=5.72;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:34,25:59:99:595,0,976:127	0|0:68,0:68:99:0,190,2435:127	1|0:39,37:76:99:979,0,1274:127
+14	56951735	rs1189276	G	A	6939.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=3.88;DB;DP=235;Dels=0.00;FS=9.37;HaplotypeScore=0.906;MLEAC=5;MLEAF=0.833;MQ=59.52;MQ0=0;MQRankSum=-5.500e-01;QD=29.53;ReadPosRankSum=1.10;SB=-3.438e+03;VQSLOD=8.76;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:1,92:93:99:3558,274,0:127	1|1:0,60:60:99:2120,165,0:127	1|0:40,42:82:99:1261,0,1194:127
+1	47818917	rs12749507	A	G	1285.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.707e+00;DB;DP=252;Dels=0.00;FS=2.14;HaplotypeScore=0.666;MLEAC=1;MLEAF=0.167;MQ=59.83;MQ0=0;MQRankSum=-4.670e-01;QD=13.39;ReadPosRankSum=0.535;SB=-6.730e+02;VQSLOD=9.27;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:81,0:81:99:0,241,3171:127	0|1:53,42:96:99:1320,0,1615:127	0|0:75,0:75:99:0,217,2762:127
+5	10958957	rs852590	T	C	8430.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=243;Dels=0.00;FS=0.00;HaplotypeScore=1.83;MLEAC=6;MLEAF=1.00;MQ=59.31;MQ0=0;QD=34.69;SB=-4.118e+03;VQSLOD=10.87;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:1,96:97:99:3594,277,0:127	1|1:1,73:74:99:2318,181,0:127	1|1:0,72:72:99:2518,196,0:127
+21	25702950	rs2260875	C	G	3462.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=0.156;DB;DP=237;Dels=0.00;FS=2.90;HaplotypeScore=1.54;MLEAC=3;MLEAF=0.500;MQ=59.04;MQ0=0;MQRankSum=0.386;QD=14.61;ReadPosRankSum=-1.455e+00;SB=-1.683e+03;VQSLOD=8.05;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0/1:37,40:77:99:1282,0,1101:127	0/1:43,36:79:99:1114,0,1317:127	0/1:45,36:81:99:1066,0,1329:127
+2	187694833	rs10191094	T	C	1006.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-7.181e+00;DB;DP=236;Dels=0.00;FS=9.08;HaplotypeScore=2.27;MLEAC=1;MLEAF=0.167;MQ=59.73;MQ0=0;MQRankSum=-2.180e-01;QD=13.07;ReadPosRankSum=-8.770e-01;SB=-5.830e+02;VQSLOD=7.60;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:82,0:82:99:0,232,3021:127	0|0:77,0:77:99:0,217,2790:127	0|1:33,44:77:99:1041,0,988:127
+7	56584972	rs34475770	C	T	2465.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-1.030e-01;DB;DP=255;Dels=0.00;FS=2.23;HaplotypeScore=0.884;MLEAC=2;MLEAF=0.333;MQ=58.76;MQ0=0;MQRankSum=1.77;QD=15.03;ReadPosRankSum=1.13;SB=-1.412e+03;VQSLOD=6.57;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:91,0:91:99:0,259,3369:127	0|1:36,49:85:99:1444,0,1000:127	0|1:38,41:79:99:1060,0,1084:127
+5	20435939	rs12697584	A	C	2286.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-5.396e+00;DB;DP=246;Dels=0.00;FS=4.68;HaplotypeScore=0.874;MLEAC=2;MLEAF=0.333;MQ=59.74;MQ0=0;MQRankSum=-8.500e-01;QD=14.20;ReadPosRankSum=0.391;SB=-1.305e+03;VQSLOD=8.13;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|0:85,0:85:99:0,241,3183:127	0|1:41,37:78:99:1062,0,1304:127	0|1:39,44:83:99:1263,0,1222:127
+7	144383888	rs73161092	T	C	689.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-7.434e+00;DB;DP=254;Dels=0.00;FS=8.63;HaplotypeScore=0.00;MLEAC=1;MLEAF=0.167;MQ=59.54;MQ0=0;MQRankSum=0.163;QD=8.62;ReadPosRankSum=-1.802e+00;SB=-3.560e+02;VQSLOD=6.45;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:90,0:90:99:0,268,3553:127	0|1:47,33:80:99:724,0,1392:127	0|0:84,0:84:99:0,202,2644:127
+9	118670009	rs66523513	CT	C	5633	PASS	AC=6;AF=1.00;AN=6;BaseQRankSum=-6.600e-02;DB;DP=222;FS=6.40;HaplotypeScore=30.72;MLEAC=6;MLEAF=1.00;MQ=59.97;MQ0=0;MQRankSum=0.490;QD=25.37;RPA=11,10;RU=T;ReadPosRankSum=2.43;SB=-2.667e+03;STR;VQSLOD=3.39;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:6,71:78:99:2079,216,0:120	1|1:10,54:65:99:1524,120,0:120	1|1:9,69:79:99:2030,209,0:120
+4	12652343	rs13114660	G	T	610.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-3.176e+00;DB;DP=127;Dels=0.00;FS=0.00;HaplotypeScore=1.57;MLEAC=1;MLEAF=0.167;MQ=58.86;MQ0=0;MQRankSum=-4.680e-01;QD=16.06;ReadPosRankSum=1.25;SB=-3.060e+02;VQSLOD=7.84;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:43,0:43:99:0,120,1561:102	0|1:15,23:38:99:645,0,407:102	0|0:44,1:46:99:0,103,1539:102
+14	47568119	rs1952206	T	C	3399.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-9.721e+00;DB;DP=230;Dels=0.00;FS=0.483;HaplotypeScore=0.658;MLEAC=3;MLEAF=0.500;MQ=59.54;MQ0=0;MQRankSum=-4.790e-01;QD=14.78;ReadPosRankSum=1.26;SB=-1.667e+03;VQSLOD=9.16;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0/1:41,43:84:99:1239,0,1315:127	0/1:28,43:71:99:1178,0,816:127	0/1:40,35:75:99:982,0,1314:127
+4	57135985	rs1715504	G	A	1213.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=3.55;DB;DP=173;Dels=0.00;FS=4.10;HaplotypeScore=1.63;MLEAC=2;MLEAF=0.333;MQ=58.44;MQ0=0;MQRankSum=-1.006e+00;QD=10.28;ReadPosRankSum=-9.330e-01;SB=-4.500e+02;VQSLOD=7.41;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:54,0:55:99:0,135,1546:127	0|1:30,23:54:99:563,0,608:127	0|1:35,28:64:99:689,0,562:127
+6	154006585	rs7752561	G	A	919.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-2.323e+00;DB;DP=223;Dels=0.00;FS=0.00;HaplotypeScore=0.825;MLEAC=1;MLEAF=0.167;MQ=59.35;MQ0=0;MQRankSum=-7.490e-01;QD=10.45;ReadPosRankSum=-1.550e-01;SB=-5.260e+02;VQSLOD=8.84;culprit=FS	GT:AD:DP:GQ:PL:TP	0|0:70,0:70:99:0,202,2601:127	0|1:51,37:88:99:954,0,1475:127	0|0:65,0:65:99:0,175,2269:127
+GL000214.1	115144	.	C	T	102.07	VQSRTrancheSNP99.00to99.90	AC=2;AF=0.333;AN=6;BaseQRankSum=0.854;DP=103;Dels=0.00;FS=14.19;HaplotypeScore=14.95;MLEAC=2;MLEAF=0.333;MQ=38.45;MQ0=1;MQRankSum=-2.314e+00;QD=1.05;ReadPosRankSum=1.48;SB=-6.153e+01;VQSLOD=-1.476e+01;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:6,0:6:3:0,3,22:4	0|1:9,11:20:16:81,0,16:4	0|1:63,14:77:58:58,0,908:4
+8	90278211	rs11998540	A	T	357.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=-1.457e+00;DB;DP=69;Dels=0.00;FS=1.29;HaplotypeScore=0.00;MLEAC=2;MLEAF=0.333;MQ=58.96;MQ0=0;MQRankSum=1.41;QD=8.12;ReadPosRankSum=1.26;SB=-9.501e+01;VQSLOD=5.96;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|1:12,7:19:99:185,0,416:60	0|0:25,0:25:60:0,60,805:60	1|0:16,9:25:99:211,0,500:60
+8	8974322	rs28440961	G	A	1682.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.72;DB;DP=190;Dels=0.00;FS=0.579;HaplotypeScore=1.54;MLEAC=2;MLEAF=0.333;MQ=59.33;MQ0=0;MQRankSum=-6.520e-01;QD=12.65;ReadPosRankSum=0.746;SB=-7.040e+02;VQSLOD=9.37;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|0:32,32:64:99:790,0,1002:125	1|0:33,36:69:99:931,0,866:125	0|0:57,0:57:99:0,126,1622:125
+16	34610294	rs72812776	C	T	603.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=-1.361e+00;DB;DP=270;Dels=0.00;FS=6.07;HaplotypeScore=3.16;MLEAC=1;MLEAF=0.167;MQ=59.66;MQ0=0;MQRankSum=1.60;QD=7.83;ReadPosRankSum=0.296;SB=-2.820e+02;VQSLOD=3.37;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:123,0:123:99:0,343,4443:127	0|0:69,1:70:99:0,184,2397:127	0|1:48,29:77:99:638,0,1483:127
+11	55040918	rs187118824	A	T	1019.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.08;DB;DP=65;Dels=0.020;FS=12.72;HaplotypeScore=0.977;MLEAC=2;MLEAF=0.333;MQ=56.64;MQ0=1;MQRankSum=0.323;QD=25.48;ReadPosRankSum=0.873;SB=-2.060e+01;VQSLOD=4.42;culprit=DP	GT:AD:DP:GQ:PL:TP	0|1:2,9:11:48:325,0,48:50	0|0:24,1:25:63:0,63,833:50	1|0:6,22:28:51:733,0,51:50
+12	12560642	rs10772559	G	T	501.28	VQSRTrancheSNP99.00to99.90	AC=4;AF=0.667;AN=6;BaseQRankSum=0.747;DB;DP=229;Dels=0.040;FS=17.41;HaplotypeScore=19.70;MLEAC=4;MLEAF=0.667;MQ=49.37;MQ0=0;MQRankSum=-3.656e+00;QD=2.19;ReadPosRankSum=-5.397e+00;SB=-2.196e+03;VQSLOD=-1.020e+01;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|1:0,66:66:24:273,24,0:24	1|0:29,45:74:99:148,0,702:24	1|0:33,46:80:99:122,0,781:24
+7	29544610	rs6462145	A	T	4020.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=0.326;DB;DP=189;Dels=0.00;FS=5.39;HaplotypeScore=1.30;MLEAC=4;MLEAF=0.667;MQ=58.54;MQ0=0;MQRankSum=1.29;QD=21.27;ReadPosRankSum=-1.212e+00;SB=-1.878e+03;VQSLOD=7.32;culprit=FS	GT:AD:DP:GQ:PL:TP	1|0:27,49:77:99:1466,0,733:127	1|1:0,64:64:99:1888,147,0:127	0|1:18,27:48:99:666,0,410:127
+8	21736923	rs13256921	G	A	217.24	VQSRTrancheSNP99.00to99.90	AC=1;AF=0.167;AN=6;BaseQRankSum=1.88;DB;DP=93;Dels=0.00;FS=5.53;HaplotypeScore=6.50;MLEAC=1;MLEAF=0.167;MQ=42.13;MQ0=3;MQRankSum=0.517;QD=6.79;ReadPosRankSum=1.71;SB=-1.980e+02;VQSLOD=-2.643e+00;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	0|0:34,0:34:66:0,66,691:41	0|1:15,17:32:99:252,0,211:41	0|0:27,0:27:42:0,42,425:41
+4	30898977	rs4386561	G	A	2449.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=3.82;DB;DP=231;Dels=0.00;FS=0.00;HaplotypeScore=0.938;MLEAC=2;MLEAF=0.333;MQ=58.94;MQ0=0;MQRankSum=0.173;QD=15.70;ReadPosRankSum=1.05;SB=-1.131e+03;VQSLOD=8.36;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:33,46:79:99:1380,0,944:127	0|0:75,0:75:99:0,202,2608:127	1|0:43,34:77:99:1108,0,1335:127
+6	9408051	rs11751621	C	G	5140.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-2.350e+00;DB;DP=241;Dels=0.00;FS=0.00;HaplotypeScore=0.664;MLEAC=4;MLEAF=0.667;MQ=59.81;MQ0=0;MQRankSum=-2.050e-01;QD=21.33;ReadPosRankSum=-3.300e-02;SB=-2.552e+03;VQSLOD=8.99;culprit=FS	GT:AD:DP:GQ:PL:TP	0|1:42,40:82:99:1156,0,1352:127	0|1:36,45:81:99:1253,0,1134:127	1|1:0,78:78:99:2731,214,0:127
+11	123470819	rs1148095	T	C	6964.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=-8.500e-01;DB;DP=242;Dels=0.00;FS=1.48;HaplotypeScore=1.39;MLEAC=5;MLEAF=0.833;MQ=59.25;MQ0=0;MQRankSum=-1.734e+00;QD=28.78;ReadPosRankSum=-7.490e-01;SB=-3.242e+03;VQSLOD=8.79;culprit=MQRankSum	GT:AD:DP:GQ:PL:TP	1|1:0,92:92:99:3408,265,0:127	1|0:35,51:86:99:1520,0,1059:127	1|1:0,64:64:99:2036,157,0:127
+2	155726628	.	T	G	1351.23	VQSRTrancheSNP99.00to99.90	AC=6;AF=1.00;AN=6;BaseQRankSum=0.207;DP=193;Dels=0.00;FS=9.25;HaplotypeScore=0.522;MLEAC=6;MLEAF=1.00;MQ=16.17;MQ0=87;MQRankSum=2.40;QD=7.00;ReadPosRankSum=1.07;SB=-4.420e+02;VQSLOD=-2.787e+00;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|1:3,56:59:60:591,60,0:27	1|1:8,49:57:27:245,27,0:27	1|1:12,65:77:57:553,57,0:27
+12	130522866	rs1613499	C	T	3975.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=130;Dels=0.00;FS=0.00;HaplotypeScore=0.633;MLEAC=6;MLEAF=1.00;MQ=59.11;MQ0=0;QD=30.58;SB=-1.386e+03;VQSLOD=10.23;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,57:57:99:1939,144,0:73	1|1:0,34:34:75:990,75,0:73	1|1:0,39:39:78:1046,78,0:73
+7	69334430	rs917719	C	T	1223.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=5.84;DB;DP=193;Dels=0.00;FS=6.66;HaplotypeScore=0.815;MLEAC=2;MLEAF=0.333;MQ=59.81;MQ0=0;MQRankSum=1.63;QD=9.63;ReadPosRankSum=1.46;SB=-7.370e+02;VQSLOD=7.00;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:38,39:77:99:770,0,1258:127	1|0:26,24:50:99:492,0,840:127	0|0:66,0:66:99:0,172,2210:127
+3	158557110	rs34445802	G	A	2374.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=1.80;DB;DP=237;Dels=0.00;FS=1.02;HaplotypeScore=1.66;MLEAC=2;MLEAF=0.333;MQ=57.48;MQ0=0;MQRankSum=0.558;QD=14.05;ReadPosRankSum=-1.147e+00;SB=-1.505e+03;VQSLOD=7.13;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:43,56:99:99:1624,0,1344:127	1|0:33,37:70:99:789,0,916:127	0|0:68,0:68:99:0,156,2014:127
+5	36740339	rs36676	T	G	6995.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=230;Dels=0.00;FS=0.00;HaplotypeScore=2.08;MLEAC=6;MLEAF=1.00;MQ=59.46;MQ0=0;QD=30.41;SB=-3.034e+03;VQSLOD=10.92;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,75:75:99:2261,195,0:127	1|1:0,83:83:99:2579,217,0:127	1|1:0,71:72:99:2155,181,0:127
+17	5764764	rs2309483	C	G	4071.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=4.24;DB;DP=154;Dels=0.00;FS=0.00;HaplotypeScore=4.41;MLEAC=5;MLEAF=0.833;MQ=58.88;MQ0=0;MQRankSum=0.456;QD=26.44;ReadPosRankSum=0.385;SB=-1.791e+03;VQSLOD=6.95;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,61:62:99:2049,165,0:107	1|0:23,26:49:99:648,0,482:107	1|1:0,43:43:99:1374,108,0:107
+3	197056886	rs7612900	G	A	7880.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=229;Dels=0.00;FS=0.00;HaplotypeScore=0.611;MLEAC=6;MLEAF=1.00;MQ=59.18;MQ0=0;QD=34.41;SB=-3.459e+03;VQSLOD=11.81;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,75:75:99:2786,214,0:127	1|1:0,81:81:99:2598,202,0:127	1|1:0,73:73:99:2496,193,0:127
+18	59836086	.	A	AT	575.46	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-1.815e+00;DP=231;FS=20.46;HaplotypeScore=140.20;MLEAC=3;MLEAF=0.500;MQ=56.52;MQ0=0;MQRankSum=1.20;QD=2.49;RPA=20,21;RU=T;ReadPosRankSum=-1.968e+00;SB=-2.575e+02;STR;VQSLOD=-3.166e-01;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:52,29:86:11:309,0,11:9	0/1:72,2:82:63:109,0,63:9	0/1:31,24:63:15:205,0,15:9
+1	243135892	rs7517403	C	T	2313.25	VQSRTrancheSNP99.00to99.90	AC=4;AF=0.667;AN=6;BaseQRankSum=7.05;DB;DP=168;Dels=0.00;FS=0.00;HaplotypeScore=0.588;MLEAC=4;MLEAF=0.667;MQ=37.62;MQ0=11;MQRankSum=-5.659e+00;QD=13.77;ReadPosRankSum=-9.770e-01;SB=-9.200e+02;VQSLOD=2.25;culprit=MQ	GT:AD:DP:GQ:PL:TP	1|0:31,24:55:99:501,0,891:123	1|1:0,58:58:99:1263,123,0:123	0|1:28,27:55:99:591,0,714:123
+5	121302662	.	G	T	143.72	VQSRTrancheSNP99.90to100.00	AC=3;AF=0.500;AN=6;BaseQRankSum=1.41;DP=150;Dels=0.020;FS=161.48;HaplotypeScore=2.86;MLEAC=3;MLEAF=0.500;MQ=35.76;MQ0=1;MQRankSum=0.422;QD=0.960;ReadPosRankSum=-5.675e+00;SB=-1.466e+00;VQSLOD=-7.724e+01;culprit=FS	GT:AD:DP:GQ:PL:TP	0/1:32,21:53:99:120,0,251:5	0/1:35,12:47:57:57,0,271:5	0/1:35,12:47:4:4,0,259:5
+4	103859292	rs7676943	C	G	7573.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=235;Dels=0.00;FS=0.00;HaplotypeScore=0.00;MLEAC=6;MLEAF=1.00;MQ=58.63;MQ0=0;QD=32.23;SB=-3.953e+03;VQSLOD=10.39;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:1,95:96:99:3289,256,0:127	1|1:0,73:73:99:2137,166,0:127	1|1:0,66:66:99:2147,166,0:127
+X	150239197	rs6627349	T	C	4677.01	PASS	AC=5;AF=0.833;AN=6;BaseQRankSum=0.731;DB;DP=179;Dels=0.00;FS=0.00;HaplotypeScore=1.61;MLEAC=5;MLEAF=0.833;MQ=59.69;MQ0=0;MQRankSum=0.676;QD=26.13;ReadPosRankSum=0.494;SB=-2.442e+03;VQSLOD=10.55;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:0,66:66:99:2387,190,0:99	1|1:0,40:40:99:1243,99,0:99	1|0:36,37:73:99:1047,0,1039:99
+14	96490389	rs72702859	C	G	3394.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=-6.529e+00;DB;DP=264;Dels=0.00;FS=2.75;HaplotypeScore=3.13;MLEAC=3;MLEAF=0.500;MQ=59.49;MQ0=0;MQRankSum=-1.258e+00;QD=18.25;ReadPosRankSum=-9.610e-01;SB=-1.966e+03;VQSLOD=6.34;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:34,52:86:99:1358,0,886:127	1|1:0,100:100:99:2036,180,0:127	0|0:78,0:78:99:0,184,2393:127
+1	165431906	rs7528908	G	T	2381.26	PASS	AC=2;AF=0.333;AN=6;BaseQRankSum=6.01;DB;DP=259;Dels=0.00;FS=4.73;HaplotypeScore=0.986;MLEAC=2;MLEAF=0.333;MQ=59.75;MQ0=0;MQRankSum=0.916;QD=14.34;ReadPosRankSum=-9.070e-01;SB=-9.050e+02;VQSLOD=8.13;culprit=MQ	GT:AD:DP:GQ:PL:TP	0|1:48,40:88:99:1142,0,1428:127	0|0:93,0:93:99:0,259,3166:127	1|0:38,40:78:99:1278,0,1075:127
+17	33513649	rs3744366	A	G	3743.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-3.729e+00;DB;DP=213;Dels=0.00;FS=0.526;HaplotypeScore=2.91;MLEAC=4;MLEAF=0.667;MQ=58.99;MQ0=0;MQRankSum=-1.520e-01;QD=17.57;ReadPosRankSum=0.530;SB=-2.067e+03;VQSLOD=8.02;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:44,40:84:99:1083,0,1341:127	1|1:0,67:67:99:2074,162,0:127	0|1:37,24:62:99:586,0,1015:127
+13	46407442	rs11147990	G	A	2668.24	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=1.23;DB;DP=199;Dels=0.00;FS=0.530;HaplotypeScore=1.80;MLEAC=3;MLEAF=0.500;MQ=58.99;MQ0=0;MQRankSum=0.023;QD=20.21;ReadPosRankSum=-4.520e-01;SB=-1.651e+03;VQSLOD=9.20;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	0|1:36,33:69:99:994,0,1056:127	0|0:67,0:67:99:0,141,1821:127	1|1:0,63:63:99:1719,135,0:127
+7	124589684	rs12113765	G	C	4948.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=-2.607e+00;DB;DP=243;Dels=0.00;FS=1.04;HaplotypeScore=3.38;MLEAC=4;MLEAF=0.667;MQ=58.74;MQ0=0;MQRankSum=1.25;QD=20.36;ReadPosRankSum=-3.870e-01;SB=-2.411e+03;VQSLOD=7.05;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|0:44,27:71:99:796,0,1350:127	1|1:0,84:85:99:2760,217,0:127	0|1:41,46:87:99:1392,0,1180:127
+16	88914235	rs12932521	C	T	329.24	PASS	AC=1;AF=0.167;AN=6;BaseQRankSum=1.98;DB;DP=114;Dels=0.00;FS=1.93;HaplotypeScore=0.940;MLEAC=1;MLEAF=0.167;MQ=58.60;MQ0=0;MQRankSum=0.854;QD=7.84;ReadPosRankSum=-3.390e-01;SB=-2.970e+02;VQSLOD=8.10;culprit=QD	GT:AD:DP:GQ:PL:TP	0|0:43,0:43:99:0,102,1192:39	0|0:29,0:29:39:0,39,468:39	0|1:15,26:42:99:364,0,105:39
+13	101976707	rs527328	A	T	9240.01	PASS	AC=6;AF=1.00;AN=6;DB;DP=259;Dels=0.00;FS=0.00;HaplotypeScore=0.245;MLEAC=6;MLEAF=1.00;MQ=53.28;MQ0=0;QD=35.68;SB=-4.696e+03;VQSLOD=7.52;culprit=HaplotypeScore	GT:AD:DP:GQ:PL:TP	1|1:0,92:92:99:3410,262,0:127	1|1:0,88:88:99:3195,247,0:127	1|1:1,78:79:99:2635,202,0:127
+14	68051087	rs11628035	G	A	4028.01	PASS	AC=3;AF=0.500;AN=6;BaseQRankSum=3.93;DB;DP=236;Dels=0.00;FS=8.18;HaplotypeScore=1.33;MLEAC=3;MLEAF=0.500;MQ=58.83;MQ0=0;MQRankSum=1.83;QD=25.49;ReadPosRankSum=2.59;SB=-1.989e+03;VQSLOD=6.79;culprit=ReadPosRankSum	GT:AD:DP:GQ:PL:TP	1|0:38,39:77:99:1265,0,1112:127	1|1:0,81:81:99:2763,214,0:127	0|0:78,0:78:99:0,208,2673:127
+18	10010426	rs4797393	T	C	4197.01	PASS	AC=4;AF=0.667;AN=6;BaseQRankSum=0.425;DB;DP=210;Dels=0.00;FS=1.13;HaplotypeScore=1.27;MLEAC=4;MLEAF=0.667;MQ=59.43;MQ0=0;MQRankSum=-2.916e+00;QD=19.99;ReadPosRankSum=0.379;SB=-2.001e+03;VQSLOD=7.03;culprit=MQRankSum	GT:AD:DP:GQ:PL:TP	1|1:0,65:65:99:2247,181,0:127	1|0:35,39:75:99:1170,0,967:127	1|0:41,29:70:99:780,0,1052:127
+10	85258657	rs4454662	C	A	7638.01	PASS	AC=6;AF=1.00;AN=6;BaseQRankSum=1.72;DB;DP=223;Dels=0.00;FS=4.52;HaplotypeScore=1.13;MLEAC=6;MLEAF=1.00;MQ=58.32;MQ0=0;MQRankSum=-1.230e+00;QD=34.25;ReadPosRankSum=1.15;SB=-2.841e+03;VQSLOD=7.65;culprit=FS	GT:AD:DP:GQ:PL:TP	1|1:1,64:65:99:2156,169,0:127	1|1:0,89:89:99:2982,238,0:127	1|1:0,69:69:99:2500,196,0:127
diff --git a/testdata/net/sf/picard/vcf/vcfFormatTest.vcf b/testdata/picard/vcf/vcfFormatTest.vcf
similarity index 100%
rename from testdata/net/sf/picard/vcf/vcfFormatTest.vcf
rename to testdata/picard/vcf/vcfFormatTest.vcf
diff --git a/testdata/net/sf/picard/vcf/vcfFormatTest.vcf.idx b/testdata/picard/vcf/vcfFormatTest.vcf.idx
similarity index 100%
rename from testdata/net/sf/picard/vcf/vcfFormatTest.vcf.idx
rename to testdata/picard/vcf/vcfFormatTest.vcf.idx
diff --git a/testdata/tribble/Tb.vcf.idx b/testdata/tribble/Tb.vcf.idx
deleted file mode 100644
index daf3430..0000000
Binary files a/testdata/tribble/Tb.vcf.idx and /dev/null differ
diff --git a/testdata/tribble/basicDbSNP.dbsnp b/testdata/tribble/basicDbSNP.dbsnp
deleted file mode 100644
index fd1fc5e..0000000
--- a/testdata/tribble/basicDbSNP.dbsnp
+++ /dev/null
@@ -1,43 +0,0 @@
-#bin	chrom	chromStart	chromEnd	name	score	strand	refNCBI	refUCSC	observed	molType	class	valid	avHet	avHetSE	func	locType	weight	
-585	1	259	260	rs72477211	0	+	C	C	A/G	genomic	single	unknown	0	0	unknown	exact	3
-585	1	433	433	rs56289060	0	+	-	-	-/C	genomic	insertion	unknown	0	0	unknown	between	1	
-585	1	491	492	rs55998931	0	+	C	C	C/T	genomic	single	unknown	0	0	unknown	exact	1
-585	1	518	519	rs62636508	0	+	G	G	C/G	genomic	single	unknown	0	0	unknown	exact	1
-585	1	582	583	rs58108140	0	+	G	G	A/G	genomic	single	unknown	0	0	unknown	exact	1
-585	1	690	691	rs10218492	0	+	G	G	A/G	genomic	single	by-cluster	0	0	unknown	exact	1
-585	1	766	767	rs10218493	0	+	G	G	A/G	genomic	single	by-cluster	0	0	unknown	exact	1
-585	1	789	790	rs10218527	0	+	A	A	A/G	genomic	single	by-cluster	0	0	unknown	exact	1
-585	1	800	801	rs28853987	0	+	G	G	A/G	genomic	single	unknown	0	0	unknown	exact	1
-585	1	876	877	rs28484712	0	+	G	G	A/G	genomic	single	unknown	0	0	unknown	exact	1
-585	1	884	885	rs28775022	0	+	G	G	A/G	genomic	single	unknown	0	0	unknown	exact	1
-585	1	884	885	rs62636509	0	+	G	G	A/G	genomic	single	unknown	0	0	unknown	exact	3
-585	1	943	944	rs10218495	0	+	G	G	G/T	genomic	single	by-cluster	0	0	unknown	exact	3
-585	1	1016	1017	rs62635278	0	+	A	A	A/C	genomic	single	unknown	0	0	unknown	exact	3
-585	1	1029	1030	rs62635279	0	+	C	C	A/C	genomic	single	unknown	0	0	unknown	exact	3
-585	1	1271	1272	rs2441671	0	-	A	A	C/T	genomic	single	unknown	0	0	unknown	exact	3
-585	1	1271	1272	rs9803797	0	+	A	A	A/G	genomic	single	by-cluster	0	0	unknown	exact	3
-585	1	1319	1320	rs2758124	0	-	C	C	C/G	genomic	single	unknown	0	0	unknown	exact	3
-585	1	1332	1333	rs3950659	0	-	G	G	C/T	genomic	single	unknown	0	0	unknown	exact	3
-585	1	1370	1371	rs3877545	0	-	A	A	C/T	genomic	single	unknown	0	0	unknown	exact	3
-585	1	1404	1405	rs2758123	0	-	A	A	A/T	genomic	single	unknown	0	0	unknown	exact	3
-585	1	1427	1428	rs2691333	0	-	G	G	A/C	genomic	single	unknown	0	0	unknown	exact	3
-585	1	1468	1469	rs62162368	0	-	A	A	C/T	genomic	single	unknown	0	0	unknown	exact	3
-585	1	1539	1540	rs4030196	0	-	G	G	C/G	genomic	single	unknown	0	0	unknown	exact	3
-585	1	1554	1555	rs2363296	0	-	A	A	G/T	genomic	single	unknown	0	0	unknown	exact	3
-585	1	1591	1592	rs4592209	0	+	T	T	C/T	genomic	single	unknown	0	0	unknown	exact	3
-585	1	1643	1644	rs61427470	0	-	C	C	A/G	genomic	single	unknown	0	0	unknown	exact	3
-585	1	1643	1644	rs62162367	0	-	C	C	A/G	genomic	single	unknown	0	0	unknown	exact	3
-585	1	1649	1650	rs57905273	0	-	T	T	-/A	genomic	deletion	unknown	0	0	unknown	exact	3
-585	1	1665	1666	rs62162366	0	-	T	T	A/G	genomic	single	unknown	0	0	unknown	exact	3
-585	1	1730	1731	rs11510383	0	-	C	C	A/G	genomic	single	unknown	0	0	unknown	exact	3
-585	1	1757	1758	rs4030194	0	-	G	G	C/T	genomic	single	unknown	0	0	unknown	exact	3
-585	1	1783	1784	rs57442816	0	-	T	T	A/G	genomic	single	unknown	0	0	unknown	exact	3
-585	1	1808	1809	rs4849250	0	-	C	C	A/G	genomic	single	by-2hit-2allele	0	0	unknown	exact	3
-585	1	1809	1810	rs7564627	0	-	G	G	C/T	genomic	single	by-cluster	0	0	unknown	exact	3
-585	1	1822	1823	rs71234145	0	+	C	C	C/T	genomic	single	unknown	0	0	unknown	exact	3
-585	1	1823	1824	rs2981848	0	-	G	G	C/T	genomic	single	unknown	0	0	unknown	exact	3
-585	1	1825	1826	rs2462500	0	-	G	G	A/C	genomic	single	by-cluster	0	0	unknown	exact	3
-585	1	1832	1833	rs7357973	0	-	A	A	C/T	genomic	single	by-cluster	0	0	unknown	exact	3
-585	1	1863	1864	rs62028714	0	+	C	C	C/G	genomic	single	unknown	0	0	unknown	exact	3
-585	1	1911	1912	rs7357889	0	-	C	C	C/G	genomic	single	by-cluster	0	0	unknown	exact	3
-585	1	1936	1937	rs11510263	0	-	T	T	A/G	genomic	single	unknown	0	0	unknown	exact	3
diff --git a/testdata/tribble/bed/NA12878.deletions.10kbp.het.gq99.hand_curated.hg19.bed b/testdata/tribble/bed/NA12878.deletions.10kbp.het.gq99.hand_curated.hg19.bed
deleted file mode 100644
index 36959bb..0000000
--- a/testdata/tribble/bed/NA12878.deletions.10kbp.het.gq99.hand_curated.hg19.bed
+++ /dev/null
@@ -1,35 +0,0 @@
-#comment
-1	25592413	25657872
-1	35101420	35111976
-1	110226277	110241477
-1	152555536	152587611
-2	34695828	34736559
-3	65188868	65214748
-3	162512133	162626335
-3	192875328	192885405
-4	10210770	10234599
-4	70130411	70231411
-4	116166903	116177179
-5	104432112	104503671
-6	55825956	55846709
-6	67008726	67048918
-6	78967153	79036479
-6	103737463	103762885
-7	141767909	141785939
-8	24972431	24990943
-8	39232073	39387227
-8	144700483	144714692
-9	23362800	23377775
-9	44242964	44280939
-10	53203675	53214217
-10	71281002	71291092
-11	51341924	51362954
-11	55366389	55376449
-11	55388020	55431449
-11	55445865	55456751
-14	73996607	74025282
-16	19945549	19967579
-19	20595809	20717976
-19	52133806	52150233
-20	1560965		1594435
-20	52647063	52658002
diff --git a/testdata/tribble/bed/NA12878.deletions.10kbp.het.gq99.hand_curated.hg19_fixed.bed b/testdata/tribble/bed/NA12878.deletions.10kbp.het.gq99.hand_curated.hg19_fixed.bed
deleted file mode 100644
index ea34a83..0000000
--- a/testdata/tribble/bed/NA12878.deletions.10kbp.het.gq99.hand_curated.hg19_fixed.bed
+++ /dev/null
@@ -1,36 +0,0 @@
-##########
-1	25592413	25657872
-1	35101420	35111976
-1	110226277	110241477
-1	152555536	152587611
-2	34695828	34736559
-3	65188868	65214748
-3	162512133	162626335
-3	192875328	192885405
-4	10210770	10234599
-4	70130411	70231411
-4	116166903	116177179
-5	104432112	104503671
-6	55825956	55846709
-6	67008726	67048918
-6	78967153	79036479
-6	103737463	103762885
-#########
-7	141767909	141785939
-8	24972431	24990943
-8	39232073	39387227
-8	144700483	144714692
-9	23362800	23377775
-9	44242964	44280939
-10	53203675	53214217
-10	71281002	71291092
-11	51341924	51362954
-11	55366389	55376449
-11	55388020	55431449
-11	55445865	55456751
-14	73996607	74025282
-16	19945549	19967579
-19	20595809	20717976
-19	52133806	52150233
-20	1560965	1594435
-20	52647063	52658002
diff --git a/testdata/tribble/bed/Unigene.sample.bed b/testdata/tribble/bed/Unigene.sample.bed
deleted file mode 100644
index 1628199..0000000
--- a/testdata/tribble/bed/Unigene.sample.bed
+++ /dev/null
@@ -1,72 +0,0 @@
-chr2	1	200000000	LONG_FEATURE	0	+	178707289	178707561	0	3	85,177,8,	0,87,264,
-chr2	178707289	178707561	Hs.666133	0	+	178707289	178707561	0	3	85,177,8,	0,87,264,
-chr2	178709699	178711955	Hs.377257	0	+	178709699	178711955	0	1	2256,	0,
-chr2	178711404	178712057	Hs.688767	0	-	178711404	178712057	0	1	653,	0,
-chr2	178777793	178778272	Hs.541631	0	-	178777793	178778272	0	1	479,	0,
-chr2	178908612	178916376	Hs.318775	0	+	178908612	178916376	0	4	2644,3067,464,1588,	0,2645,5712,6176,
-chr2	178969501	178972156	Hs.593061	0	+	178969501	178972156	0	2	1262,1393,	0,1262,
-chr2	178969902	178971077	Hs.712020	0	-	178969902	178971077	0	1	1175,	0,
-chr2	178973806	178974450	Hs.634282	0	+	178973806	178974450	0	1	644,	0,
-chr2	178974749	178975493	Hs.323349	0	+	178974749	178975493	0	4	337,389,4,13,	0,337,726,731,
-chr2	179004517	179006503	Hs.632540	0	-	179004517	179006503	0	1	1986,	0,
-chr2	179004764	179005050	Hs.625283	0	+	179004764	179005050	0	2	9,276,	0,10,
-chr2	179007083	179007837	Hs.684082	0	+	179007083	179007837	0	5	28,30,20,226,79,	0,72,117,449,675,
-chr2	179008250	179008984	Hs.685223	0	+	179008250	179008984	0	1	734,	0,
-chr2	179008373	179013032	Hs.570274	0	+	179008373	179013032	0	3	2710,583,1365,	0,2711,3294,
-chr2	179011106	179011819	Hs.662660	0	+	179011106	179011819	0	8	556,6,22,98,12,6,6,5,	0,558,564,586,684,696,702,708,
-chr2	179012189	179013184	Hs.658781	0	-	179012189	179013184	0	7	5,9,22,99,844,4,6,	0,6,16,39,139,984,989,
-chr2	179018046	179018564	Hs.633180	0	-	179018046	179018564	0	1	518,	0,
-chr2	179020446	179020899	Hs.605693	0	-	179020446	179020899	0	1	453,	0,
-chr2	179026223	179034260	Hs.87734	0	+	179026223	179034260	0	5	1276,142,118,99,306,	0,2759,5259,7097,7731,
-chr2	179033863	179034261	Hs.607684	0	-	179033863	179034261	0	1	398,	0,
-chr2	179036643	179037341	Hs.645700	0	+	179036643	179037341	0	2	678,19,	0,679,
-chr2	179037911	179051526	Hs.410378	0	-	179037911	179051526	0	5	813,179,134,152,275,	0,814,4713,12123,13340,
-chr2	179052287	179052856	Hs.560940	0	-	179052287	179052856	0	2	291,277,	0,292,
-chr2	179053444	179078029	Hs.41086	0	+	179053444	179078029	0	8	438,117,156,137,165,44,116,1297,	0,5169,10187,13381,15024,18739,20589,23288,
-chr2	179053611	179058730	Hs.560270	0	+	179053611	179058730	0	7	105,37,4,23,99,9,107,	0,105,144,148,172,5002,5012,
-chr2	179078066	179078770	Hs.600801	0	-	179078066	179078770	0	2	350,8,	0,696,
-chr2	179078529	179079064	Hs.541630	0	+	179078529	179079064	0	1	535,	0,
-chr2	179087076	179087882	Hs.560768	0	+	179087076	179087882	0	11	586,90,17,10,22,7,14,23,8,13,10,	0,586,680,697,708,730,738,752,775,783,796,
-chr2	179088297	179088941	Hs.612551	0	+	179088297	179088941	0	7	383,4,214,16,6,5,12,	0,384,389,603,620,626,632,
-chr2	179088778	179089441	Hs.712123	0	-	179088778	179089441	0	8	7,6,8,7,9,12,17,588,	0,9,17,26,34,44,57,75,
-chr2	179088997	179089435	Hs.470769	0	-	179088997	179089435	0	1	438,	0,
-chr2	179095799	179178377	Hs.714450	0	+	179095799	179178377	0	17	34,185,97,331,1193,63,140,135,191,398,421,176,86,118,157,192,675,	0,625,12905,14534,15871,17280,19395,59745,60164,60697,61746,68312,74768,75728,76766,77648,81903,
-chr2	179098961	179380395	Hs.134602	0	-	179098961	179380395	0	314	1319,303,154,692,157,5609,594,306,576,300,306,585,303,303,300,288,594,282,306,306,297,291,306,303,2067,300,288,294,1767,306,303,300,288,297,303,588,297,17106,303,588,297,198,105,588,288,291,288,306,303,297,288,300,303,300,276,303,300,285,321,2967,294,300,282,309,303,300,282,303,303,38,243,151,149,315,300,295,27,292,300,130,33,149,309,430,191,309,300,294,285,297,300,303,363,303,300,279,306,197,106,300,300,116,187,297,288,122 [...]
-chr2	179114097	179114772	Hs.596354	0	-	179114097	179114772	0	1	675,	0,
-chr2	179115873	179116818	Hs.622912	0	-	179115873	179116818	0	2	67,603,	0,342,
-chr2	179121907	179122356	Hs.609542	0	-	179121907	179122356	0	2	224,224,	0,225,
-chr2	179122873	179123656	Hs.621944	0	-	179122873	179123656	0	1	783,	0,
-chr2	179123897	179124349	Hs.619377	0	-	179123897	179124349	0	1	452,	0,
-chr2	179127533	179131939	Hs.640473	0	+	179127533	179131939	0	1	4406,	0,
-chr2	179150961	179151480	Hs.609295	0	-	179150961	179151480	0	1	519,	0,
-chr2	179189619	179190087	Hs.710694	0	+	179189619	179190087	0	12	33,37,18,29,11,179,33,13,34,16,5,52,	0,34,72,91,120,131,311,344,358,393,409,416,
-chr2	179204887	179205401	Hs.661496	0	-	179204887	179205401	0	2	16,498,	0,16,
-chr2	179209546	179287210	Hs.620337	0	-	179209546	179287210	0	5	124,358,6,11,109,	0,77179,77537,77544,77555,
-chr2	179217688	179218151	Hs.603086	0	-	179217688	179218151	0	1	463,	0,
-chr2	179227481	179235392	Hs.678928	0	-	179227481	179235392	0	12	6,15,2,11,72,85,5,79,81,73,8,83,	0,7,23,235,247,402,990,7254,7438,7632,7705,7828,
-chr2	179266309	179266748	Hs.609465	0	-	179266309	179266748	0	1	439,	0,
-chr2	179296428	179300012	Hs.623987	0	+	179296428	179300012	0	1	3584,	0,
-chr2	179302952	179303488	Hs.594545	0	-	179302952	179303488	0	1	536,	0,
-chr2	179305908	179308754	Hs.595834	0	+	179305908	179308754	0	6	121,194,124,4,13,40,	0,701,1567,1691,2793,2806,
-chr2	179315565	179317384	Hs.628418	0	-	179315565	179317384	0	1	1819,	0,
-chr2	179315565	179316076	Hs.670754	0	+	179315565	179316076	0	1	511,	0,
-chr2	179317750	179337584	Hs.589824	0	+	179317750	179337584	0	6	64,57,54,75,373,53,	0,11487,14212,16161,19407,19781,
-chr2	179349897	179352934	Hs.570275	0	+	179349897	179352934	0	2	1830,125,	0,2912,
-chr2	179360386	179361066	Hs.711672	0	+	179360386	179361066	0	1	680,	0,
-chr2	179405591	179445166	Hs.324341	0	-	179405591	179445166	0	13	1821,236,352,117,113,184,195,141,150,180,189,126,62,	0,4274,4773,13006,17429,20821,22727,23637,33147,35406,36497,38807,39513,
-chr2	179433849	179434307	Hs.663044	0	-	179433849	179434307	0	1	458,	0,
-chr2	179445992	179623031	Hs.591627	0	-	179445992	179623031	0	19	283,2269,402,296,353,208,10,1299,192,120,142,173,195,117,254,109,192,123,220,	0,283,2553,2955,3252,3605,3813,3824,11880,13731,15506,32308,45692,71514,88209,102036,105463,174263,176819,
-chr2	179531336	179531470	Hs.610180	0	+	179531336	179531470	0	1	134,	0,
-chr2	179531674	179531995	Hs.610180	0	+	179531674	179531995	0	4	6,17,164,130,	0,10,27,191,
-chr2	179674663	179837595	Hs.30977	0	-	179674663	179837595	0	18	8337,122,192,123,82,160,115,195,123,212,56,98,114,114,91,109,80,125,	0,11032,13373,14976,15840,20078,22023,22672,30612,41900,44710,47605,49586,70428,74756,81388,90095,162807,
-chr2	179675396	179681310	Hs.714518	0	+	179675396	179681310	0	2	435,41,	0,5873,
-chr2	179675483	179675797	Hs.609408	0	+	179675483	179675797	0	1	314,	0,
-chr2	179698890	179699454	Hs.667783	0	-	179698890	179699454	0	2	436,125,	0,439,
-chr2	179702362	179702797	Hs.602509	0	+	179702362	179702797	0	1	435,	0,
-chr2	179714478	179714731	Hs.679403	0	-	179714478	179714731	0	1	253,	0,
-chr2	179720333	179721089	Hs.686454	0	+	179720333	179721089	0	1	756,	0,
-chr2	179820582	179821132	Hs.671087	0	+	179820582	179821132	0	1	550,	0,
-chr2	179820805	179821282	Hs.621019	0	-	179820805	179821282	0	2	264,205,	0,272,
-chr2	179908392	179909870	Hs.516555	0	-	179908392	179909870	0	3	227,147,6,	0,1115,1472,
-chr2	179929123	179929744	Hs.541629	0	-	179929123	179929744	0	4	18,41,385,164,	0,30,71,457,
-chr2	179972131	179973464	Hs.179697	0	-	179972131	179973464	0	3	4,1011,317,	0,5,1016,
diff --git a/testdata/tribble/bed/disconcontigs.bed b/testdata/tribble/bed/disconcontigs.bed
deleted file mode 100644
index 9f3334b..0000000
--- a/testdata/tribble/bed/disconcontigs.bed
+++ /dev/null
@@ -1,5 +0,0 @@
-chr2	178707289	178707561	Hs.666133	0	+	178707289	178707561	0	3	85,177,8,	0,87,264,
-chr1	178709699	178711955	Hs.377257	0	+	178709699	178711955	0	1	2256,	0,
-chr1	178711404	178712057	Hs.688767	0	-	178711404	178712057	0	1	653,	0,
-chr2	178777793	178778272	Hs.541631	0	-	178777793	178778272	0	1	479,	0,
-chr2	178908612	178916376	Hs.318775	0	+	178908612	178916376	0	4	2644,3067,464,1588,	0,2645,5712,6176,
\ No newline at end of file
diff --git a/testdata/tribble/bed/unsorted.bed b/testdata/tribble/bed/unsorted.bed
deleted file mode 100644
index 42500d8..0000000
--- a/testdata/tribble/bed/unsorted.bed
+++ /dev/null
@@ -1,5 +0,0 @@
-chr2	178707289	178707561	Hs.666133	0	+	178707289	178707561	0	3	85,177,8,	0,87,264,
-chr2	178709699	178711955	Hs.377257	0	+	178709699	178711955	0	1	2256,	0,
-chr2	178711404	178712057	Hs.688767	0	-	178711404	178712057	0	1	653,	0,
-chr2	178908612	178916376	Hs.318775	0	+	178908612	178916376	0	4	2644,3067,464,1588,	0,2645,5712,6176,
-chr2	178777793	178778272	Hs.541631	0	-	178777793	178778272	0	1	479,	0,
\ No newline at end of file
diff --git a/testdata/tribble/complexExample.vcf b/testdata/tribble/complexExample.vcf
deleted file mode 100644
index fb76a8d..0000000
--- a/testdata/tribble/complexExample.vcf
+++ /dev/null
@@ -1,23 +0,0 @@
-##format=VCRv3.3
-##source=ArbitrarySource
-##FORMAT=DP,1,Integer,"Read Depth (only filtered reads used for calling)"
-##FORMAT=GQ,1,Integer,"Genotype Quality"
-##FORMAT=GT,1,String,"Genotype"
-##INFO=AB,1,Float,"Allele Balance for hets (ref/(ref+alt))"
-##INFO=AF,1,Float,"Allele Frequency"
-##INFO=DP,1,Integer,"Total Depth"
-##INFO=Dels,1,Float,"Fraction of Reads Containing Spanning Deletions"
-##reference=human_b36_both.fasta
-#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	NA00001	NA00002	NA00003	
-1	10001292	testid1	G	A	12.22	0	AF=0.50;AlleleBalance=0.57;DoC=23;HomopolymerRun=0;MAPQ0=8;NS=1;RMSMAPQ=46.31;SB=-24.92;SpanningDeletions=0	GT:DP:GQ	1/0:23:19.27	./.	./.
-1	10002963	.	C	G	22.22	.	AF=0.50;AlleleBalance=0.47;DoC=30;HomopolymerRun=0;MAPQ0=0;NS=1;RMSMAPQ=81.91;SB=-41.73;SpanningDeletions=0	GT:DP:GQ	0/1:30:33.07	./.	./.
-1	10005008	.	A	T,C	123.78	0	AF=1.00;DoC=30;HomopolymerRun=6;MAPQ0=2;NS=1;RMSMAPQ=61.05;SB=-75.45;SpanningDeletions=1	GT:DP:GQ	1/1:27:4.03	0/1:26:3.0	0/0:16:2.0
-1	10006296	.	C	T	42.23	0	AF=0.50;AlleleBalance=0.33;DoC=7;HomopolymerRun=0;MAPQ0=11;NS=1;RMSMAPQ=46.62;SB=-0.04;SpanningDeletions=0	GT:DP:GQ	0/1:7:2000000	./.	./.
-1	10023478	.	G	C,A,T	84.23	.	AF=1.00;DoC=27;HomopolymerRun=1;MAPQ0=10;NS=1;RMSMAPQ=42.16;SB=-48.38;SpanningDeletions=0	GT:DP:GQ	1/1:27:4.03	2/2:26:3.0	0/3:16:2.0
-1	10029362	.	T	C	52.22	.	AF=0.50;AlleleBalance=0.52;DoC=44;HomopolymerRun=0;MAPQ0=0;NS=1;RMSMAPQ=81.28;SB=-42.22;SpanningDeletions=0	GT:DP:GQ	./.	1/0:-1:36.62	./.
-1	10042312	.	G	C	31.81	.	AF=0.50;AlleleBalance=0.70;DoC=24;HomopolymerRun=1;MAPQ0=0;NS=1;RMSMAPQ=85.07;SB=0.00;SpanningDeletions=0	GT:DP:GQ	1/0::5.85	0/0::	0/1:4:
-1	10044557	.	C	T	62.22	.	AF=0.50;AlleleBalance=0.68;DoC=31;HomopolymerRun=16;MAPQ0=0;NS=1;RMSMAPQ=85.34;SB=-0.00;SpanningDeletions=0	GT:DP:GQ	./.	./.	0/1:31:15.01
-1	10045603	.	A	D3	40.26	0	AF=0.50	GT:DP:GQ	0/1:15:7.94	0/0:15:7.94	1/1:15:7.94
-1	10045604	.	A	ICAT	41.26	0	AF=0.50	GT:DP:GQ	1/1:14:6.94	0/0:15:7.94	1/0:15:7.94
-1	10048142	.	A	G	126.81	foo	AF=1.00;DoC=36;HomopolymerRun=4;MAPQ0=0;NS=1;RMSMAPQ=82.11;SB=-85.45;SpanningDeletions=0	GT:DP:GQ	0/1:15:7.94	0/0:15:7.94	1/1:15:7.94
-1	10048580	.	T	A	72.22	bar;baz	AF=0.50;AlleleBalance=0.69;DoC=33;HomopolymerRun=6;MAPQ0=0;NS=1;RMSMAPQ=84.45;SB=-27.41;SpanningDeletions=0	GT:DP:GQ	0/1:15:7.94	0/0:15:7.94	1/1:15:7.94
diff --git a/testdata/tribble/fakeBed.bed b/testdata/tribble/fakeBed.bed
deleted file mode 100644
index 0c46b81..0000000
--- a/testdata/tribble/fakeBed.bed
+++ /dev/null
@@ -1,51 +0,0 @@
-chrM 1 1 TITLE
-chr1 1 1 TITLE
-chr1 101 101 TITLE
-chr1 201 201 TITLE
-chr1 301 301 TITLE
-chr1 401 401 TITLE
-chr1 501 501 TITLE
-chr1 601 601 TITLE
-chr1 701 701 TITLE
-chr1 801 801 TITLE
-chr1 901 901 TITLE
-chr1 1001 1001 TITLE
-chr1 1101 1101 TITLE
-chr1 1201 1201 TITLE
-chr1 1301 1301 TITLE
-chr1 1401 1401 TITLE
-chr1 1501 1501 TITLE
-chr1 1601 1601 TITLE
-chr1 1701 1701 TITLE
-chr1 1801 1801 TITLE
-chr1 1901 1901 TITLE
-chr1 2001 2001 TITLE
-chr1 2101 2101 TITLE
-chr1 2201 2201 TITLE
-chr1 2301 2301 TITLE
-chr1 2401 2401 TITLE
-chr1 2501 2501 TITLE
-chr1 2601 2601 TITLE
-chr1 2701 2701 TITLE
-chr1 2801 2801 TITLE
-chr1 2901 2901 TITLE
-chr1 3001 3001 TITLE
-chr1 3101 3101 TITLE
-chr1 3201 3201 TITLE
-chr1 3301 3301 TITLE
-chr1 3401 3401 TITLE
-chr1 3501 3501 TITLE
-chr1 3601 3601 TITLE
-chr1 3701 3701 TITLE
-chr1 3801 3801 TITLE
-chr1 3901 3901 TITLE
-chr1 4001 4001 TITLE
-chr1 4101 4101 TITLE
-chr1 4201 4201 TITLE
-chr1 4301 4301 TITLE
-chr1 4401 4401 TITLE
-chr1 4501 4501 TITLE
-chr1 4601 4601 TITLE
-chr1 4701 4701 TITLE
-chr1 4801 4801 TITLE
-chr1 4901 4901 TITLE
diff --git a/testdata/tribble/fakeVCF.vcf.gz b/testdata/tribble/fakeVCF.vcf.gz
deleted file mode 100644
index e8c7465..0000000
Binary files a/testdata/tribble/fakeVCF.vcf.gz and /dev/null differ
diff --git a/testdata/tribble/fakeVCF.vcf.gz.tbi b/testdata/tribble/fakeVCF.vcf.gz.tbi
deleted file mode 100644
index 0f71973..0000000
Binary files a/testdata/tribble/fakeVCF.vcf.gz.tbi and /dev/null differ
diff --git a/testdata/tribble/gwas/smallp.gwas b/testdata/tribble/gwas/smallp.gwas
deleted file mode 100644
index 0344a98..0000000
--- a/testdata/tribble/gwas/smallp.gwas
+++ /dev/null
@@ -1,20 +0,0 @@
-SNP     CHR     BP      P
-rs1233367       6       29622220        2.28235e-32
-rs29228 6       29623739        0.931148124684
-rs29228 6       29623739        1.70737e-89
-rs3130250       6       29625001        7.18775027174e-05
-rs2535260       6       29628883        0.00246256208471
-rs3129063       6       29645613        3.32185e-97
-rs387642        6       29645634        8.0006e-123
-rs385492        6       29649547        7.60380647336e-12
-rs3129045       6       29652576        4.16094765754e-07
-rs3129090       6       29664131        9.31671032411e-06
-rs3131886       6       29664452        1.85639e-21
-rs3129190       6       29669443        6.50202338003e-05
-rs6456993       6       29670536        5.71059057921e-05
-rs3129046       6       29670652        8.48154e-66
-rs3116788       6       29674197        2.1088206692e-07
-rs3131862       6       29675227        1.81790802347e-05
-rs1610584       6       29675615        7.97182551082e-08
-rs1610585       6       29675676        1.44138539548e-07
-rs9258126       6       29675791        0.000193925445894
\ No newline at end of file
diff --git a/testdata/tribble/index/chrY_Y4_small.bed b/testdata/tribble/index/chrY_Y4_small.bed
deleted file mode 100644
index b85a841..0000000
--- a/testdata/tribble/index/chrY_Y4_small.bed
+++ /dev/null
@@ -1,5000 +0,0 @@
-track name="chrY_Y4 Sequences" description="Illumina bowtie-aligned reads - Y4" visibility=4 priority=10 itemRgb="On"
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770199	2770251	CATGGCCCGGGGCCCCAAGAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCA	0	+	2770199	2770251	255,0,0	
-chrY	2770217	2770269	GAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCATTGGATGCTTGCCAAACT	0	+	2770217	2770269	255,0,0	
-chrY	2770217	2770269	GAAGCACTTAAAGCGTGTTGCAGCGCCGAAGCATTGGCTGCTTGACAAATT	0	+	2770217	2770269	255,0,0	
-chrY	2770220	2770272	GCNCTTAAAGCGTGTTGCAGCGCCGAAGCATTGGATGCTTGACAAACTAAC	0	+	2770220	2770272	255,0,0	
-chrY	2770220	2770272	GCACTTAAAGCGTGTTGCAGCGCCGAAGCATTGGATGCTTGACAAAATAAC	0	+	2770220	2770272	255,0,0	
-chrY	2770222	2770274	ACTTAAAGCGTGTTGCAGCGCCGAAGCATTGGATGCTTGACAAACTAACGG	0	+	2770222	2770274	255,0,0	
-chrY	2770222	2770274	ACTTAAAGCGTGTTGCAGCGCCGAAGCATTGGATGCTTGACAAACTAACGG	0	+	2770222	2770274	255,0,0	
-chrY	2770226	2770278	AAAGCGTGTTGCAGCGCCGAAGCATTGGATGCTTGACAAACTAACGGGTGT	0	+	2770226	2770278	255,0,0	
-chrY	2770226	2770278	AAAGCGTGTTGCAGCGCCGAAGCATTGGATGCTTGACAAACTAACGGGTGT	0	+	2770226	2770278	255,0,0	
-chrY	2770226	2770278	AAAGCGTGTTGCAGCGCCGAAGCATTGGATGCTTGACAAACTAACGGGTGT	0	+	2770226	2770278	255,0,0	
-chrY	2770226	2770278	AAAGCGTGTTGCAGCGCCGAAGCATTGGATGCTTGACAAACTAACGGGTGT	0	+	2770226	2770278	255,0,0	
-chrY	2770226	2770278	AAAGCGTGTTGCAGCGCCGAAGCATTGGATGCTTGACAAACTAACGGGTGT	0	+	2770226	2770278	255,0,0	
-chrY	2770226	2770278	AAAGCGTGTTGCAGCGCCGAAGCATTGGATGCTTGACAAACTAACGGGTGT	0	+	2770226	2770278	255,0,0	
-chrY	2770226	2770278	AAAGCGTGTTGCAGCGCCGAAGCATTGGATGCTTGACAAACTAACGGGTGT	0	+	2770226	2770278	255,0,0	
-chrY	2770226	2770278	AAAGCGTGTTGCAGCGCCGAAGCATTGGATGCTTGACAAACTAACGGGTGT	0	+	2770226	2770278	255,0,0	
-chrY	2770226	2770278	AAAGCGTGTTGCAGCGCCGAAGCATTGGATGCTTGACAAACTAACGGGTGT	0	+	2770226	2770278	255,0,0	
-chrY	2770226	2770278	AAAGCGTGTTGCAGCGCCGAAGCATTGGATGCTTGACAAACTAACGGGTGT	0	+	2770226	2770278	255,0,0	
-chrY	2770226	2770278	AAAGCGTGTTGCAGCGCCGAAGCATTGGATGCTTGACAAACTAACGGGTGT	0	+	2770226	2770278	255,0,0	
-chrY	2770226	2770278	AAAGCGTGTTGCAGCGCCGAAGCATTGGATGCTTGACAAACTAACGGGTGT	0	+	2770226	2770278	255,0,0	
-chrY	2770226	2770278	AAAGCGTGTTGCAGCGCCGAAGCATTGGATGCTTGACAAACTAACGGGTGT	0	+	2770226	2770278	255,0,0	
-chrY	2770226	2770278	AAAGCGTGTTGCAGCGCCGAAGCATTGGATGCTTGACAAACTAACGGGTGT	0	+	2770226	2770278	255,0,0	
-chrY	2770226	2770278	AAAGCGTGTTGCAGCGCCGAAGCATTGGATGCTTGACAAACTAACGGGTGT	0	+	2770226	2770278	255,0,0	
-chrY	2770226	2770278	AAAGCGTGTTGCAGCGCCGAAGCATTGGATGCTTGACAAACTAACGGGTGT	0	+	2770226	2770278	255,0,0	
-chrY	2770226	2770278	AAAGCGTGTTGCAGCGCCGAAGCATTGGATGCTTGACAAACTAACGGGTGT	0	+	2770226	2770278	255,0,0	
-chrY	2770226	2770278	AAAGCGTGTTGCAGCGCCGAAGCATTGGATGCTTGACAAACTAACGGGTGT	0	+	2770226	2770278	255,0,0	
-chrY	2770226	2770278	AAAGCGTGTTGCAGCGCCGAAGCATTGGATGCTTGACAAACTAACGGGTGT	0	+	2770226	2770278	255,0,0	
-chrY	2770229	2770281	GCGTGTTGCAGCGCCGAAGCATTGGATGCTTGACAAACTAACGGGGGTATT	0	+	2770229	2770281	255,0,0	
-chrY	2772150	2772202	GGAATGTCTTCCTCTGATCGTCTTCCTCAGGAATAGGCTCAAGTATGCGTG	0	-	2772150	2772202	0,0,255	
-chrY	2772150	2772202	GGAAGGTCTTCCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTG	0	-	2772150	2772202	0,0,255	
-chrY	2772157	2772209	CTTCCTCTGATCGTCTTCCTCAGGAATCGACTCAAGTATGCGTTGACTGGA	0	+	2772157	2772209	255,0,0	
-chrY	2772157	2772209	CCTCCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGA	0	+	2772157	2772209	255,0,0	
-chrY	2772157	2772209	CTTCCTCTGATGGTCTTCCCCGGGAATAGACTCAAGTATGCGTTGACTGGA	0	+	2772157	2772209	255,0,0	
-chrY	2772157	2772209	CTTCCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGG	0	+	2772157	2772209	255,0,0	
-chrY	2772158	2772210	TTCCTCTGATCGGCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAG	0	-	2772158	2772210	0,0,255	
-chrY	2772158	2772210	TTCCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAA	0	-	2772158	2772210	0,0,255	
-chrY	2772158	2772210	TTCCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAA	0	-	2772158	2772210	0,0,255	
-chrY	2772158	2772210	TTCCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAA	0	-	2772158	2772210	0,0,255	
-chrY	2772158	2772210	TTCCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAA	0	-	2772158	2772210	0,0,255	
-chrY	2772158	2772210	TTCCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAA	0	-	2772158	2772210	0,0,255	
-chrY	2772158	2772210	TTCCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAA	0	-	2772158	2772210	0,0,255	
-chrY	2772158	2772210	TTCCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAA	0	-	2772158	2772210	0,0,255	
-chrY	2772158	2772210	TTCCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAA	0	-	2772158	2772210	0,0,255	
-chrY	2772158	2772210	TTCCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGGCTGGAA	0	-	2772158	2772210	0,0,255	
-chrY	2772158	2772210	TTCCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAA	0	-	2772158	2772210	0,0,255	
-chrY	2772158	2772210	TTCCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAA	0	-	2772158	2772210	0,0,255	
-chrY	2772158	2772210	TTCCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAA	0	-	2772158	2772210	0,0,255	
-chrY	2772158	2772210	TTCCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAA	0	-	2772158	2772210	0,0,255	
-chrY	2772158	2772210	TTCCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAA	0	-	2772158	2772210	0,0,255	
-chrY	2772158	2772210	TTCCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAA	0	-	2772158	2772210	0,0,255	
-chrY	2772158	2772210	TTCCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAA	0	-	2772158	2772210	0,0,255	
-chrY	2772158	2772210	TTCCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAA	0	-	2772158	2772210	0,0,255	
-chrY	2772158	2772210	TTCCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAA	0	-	2772158	2772210	0,0,255	
-chrY	2772158	2772210	TTCCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAA	0	-	2772158	2772210	0,0,255	
-chrY	2772158	2772210	TTCCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAA	0	-	2772158	2772210	0,0,255	
-chrY	2772158	2772210	TTCCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAA	0	-	2772158	2772210	0,0,255	
-chrY	2772158	2772210	TTCCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAA	0	-	2772158	2772210	0,0,255	
-chrY	2772158	2772210	TTCCTCTGATCGTCTTCCTCAGGAATAGATTCAAGTATGCGTTGACTGGAA	0	-	2772158	2772210	0,0,255	
-chrY	2772158	2772210	TTCCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAA	0	-	2772158	2772210	0,0,255	
-chrY	2772158	2772210	TTCCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAA	0	-	2772158	2772210	0,0,255	
-chrY	2772158	2772210	TTCCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAA	0	-	2772158	2772210	0,0,255	
-chrY	2772158	2772210	TTCCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAA	0	-	2772158	2772210	0,0,255	
-chrY	2772160	2772212	TCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAGAT	0	+	2772160	2772212	255,0,0	
-chrY	2772160	2772212	TCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAGAT	0	+	2772160	2772212	255,0,0	
-chrY	2772160	2772212	TCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAGAT	0	+	2772160	2772212	255,0,0	
-chrY	2772160	2772212	TCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAGAT	0	+	2772160	2772212	255,0,0	
-chrY	2772160	2772212	TCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAGAT	0	+	2772160	2772212	255,0,0	
-chrY	2772160	2772212	TCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAGAT	0	+	2772160	2772212	255,0,0	
-chrY	2772160	2772212	TCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAGAT	0	+	2772160	2772212	255,0,0	
-chrY	2772160	2772212	TCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAGAT	0	+	2772160	2772212	255,0,0	
-chrY	2772160	2772212	TCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAGAT	0	+	2772160	2772212	255,0,0	
-chrY	2772160	2772212	TCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAGAT	0	+	2772160	2772212	255,0,0	
-chrY	2772160	2772212	TCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAGAT	0	+	2772160	2772212	255,0,0	
-chrY	2772160	2772212	TCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAGAT	0	+	2772160	2772212	255,0,0	
-chrY	2772160	2772212	TCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAGAT	0	+	2772160	2772212	255,0,0	
-chrY	2772160	2772212	TCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAGAT	0	+	2772160	2772212	255,0,0	
-chrY	2772160	2772212	TCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAGAT	0	+	2772160	2772212	255,0,0	
-chrY	2772160	2772212	TCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAGAT	0	+	2772160	2772212	255,0,0	
-chrY	2772160	2772212	TCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAGAT	0	+	2772160	2772212	255,0,0	
-chrY	2772160	2772212	TCTCTGATCGTCTTCCTCAGGAATAGACTCAAGTATGCGTTGACTGGAGAT	0	+	2772160	2772212	255,0,0	
-chrY	2772187	2772239	CTCAAGCATGCGTTGACTGGAGATGAGGAAAAGAAGATATGTATGCAACGT	0	+	2772187	2772239	255,0,0	
-chrY	2772201	2772253	GACCGGAGATGAGGTAAAGAAGATATGTATGCAACGTTTCATCAAAATTGA	0	-	2772201	2772253	0,0,255	
-chrY	2772214	2772266	GTAAAGAAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGATCGA	0	+	2772214	2772266	255,0,0	
-chrY	2772214	2772266	GTAAAGACGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGA	0	+	2772214	2772266	255,0,0	
-chrY	2772215	2772267	AAAAGAAGATATGTATGCAACGTTTCATCAAAATAGATGGCAAGGTTCGAG	0	-	2772215	2772267	0,0,255	
-chrY	2772215	2772267	TAAAGAAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCTAG	0	-	2772215	2772267	0,0,255	
-chrY	2772215	2772267	TAAAGAAGATATGTATGCAACGTTTCATCAAAATTGGTGGCAAGGTTCGAG	0	-	2772215	2772267	0,0,255	
-chrY	2772215	2772267	TAAAGAGGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAG	0	-	2772215	2772267	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGACGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAATGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTAGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGAGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATAGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	+	2772220	2772272	255,0,0	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772220	2772272	AAGATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGAT	0	-	2772220	2772272	0,0,255	
-chrY	2772223	2772275	ATATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTC	0	-	2772223	2772275	0,0,255	
-chrY	2772224	2772276	TATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCA	0	-	2772224	2772276	0,0,255	
-chrY	2772224	2772276	TATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCA	0	-	2772224	2772276	0,0,255	
-chrY	2772224	2772276	TATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCA	0	-	2772224	2772276	0,0,255	
-chrY	2772224	2772276	TATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCA	0	-	2772224	2772276	0,0,255	
-chrY	2772224	2772276	TATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCA	0	-	2772224	2772276	0,0,255	
-chrY	2772224	2772276	TATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCA	0	-	2772224	2772276	0,0,255	
-chrY	2772224	2772276	TATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCA	0	-	2772224	2772276	0,0,255	
-chrY	2772224	2772276	TATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCA	0	-	2772224	2772276	0,0,255	
-chrY	2772224	2772276	TATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCA	0	-	2772224	2772276	0,0,255	
-chrY	2772224	2772276	TATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCA	0	-	2772224	2772276	0,0,255	
-chrY	2772224	2772276	TATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCA	0	-	2772224	2772276	0,0,255	
-chrY	2772224	2772276	TATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCA	0	-	2772224	2772276	0,0,255	
-chrY	2772224	2772276	TATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCA	0	-	2772224	2772276	0,0,255	
-chrY	2772224	2772276	TATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCA	0	-	2772224	2772276	0,0,255	
-chrY	2772224	2772276	TATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCA	0	-	2772224	2772276	0,0,255	
-chrY	2772224	2772276	TATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCA	0	-	2772224	2772276	0,0,255	
-chrY	2772224	2772276	TATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCA	0	-	2772224	2772276	0,0,255	
-chrY	2772224	2772276	TATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCA	0	-	2772224	2772276	0,0,255	
-chrY	2772224	2772276	TATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCA	0	-	2772224	2772276	0,0,255	
-chrY	2772224	2772276	TATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCA	0	-	2772224	2772276	0,0,255	
-chrY	2772224	2772276	TATGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCA	0	-	2772224	2772276	0,0,255	
-chrY	2772226	2772278	TGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACA	0	+	2772226	2772278	255,0,0	
-chrY	2772226	2772278	TGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACA	0	+	2772226	2772278	255,0,0	
-chrY	2772226	2772278	TGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACA	0	+	2772226	2772278	255,0,0	
-chrY	2772226	2772278	TGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACA	0	+	2772226	2772278	255,0,0	
-chrY	2772226	2772278	TGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACA	0	+	2772226	2772278	255,0,0	
-chrY	2772226	2772278	TGTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACA	0	+	2772226	2772278	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAGGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGCCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	NTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGATTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772227	2772279	GTATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACAT	0	+	2772227	2772279	255,0,0	
-chrY	2772229	2772281	ATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATAC	0	+	2772229	2772281	255,0,0	
-chrY	2772229	2772281	ATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATAC	0	+	2772229	2772281	255,0,0	
-chrY	2772229	2772281	ATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATAC	0	+	2772229	2772281	255,0,0	
-chrY	2772229	2772281	ATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATAC	0	+	2772229	2772281	255,0,0	
-chrY	2772229	2772281	ATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATAC	0	+	2772229	2772281	255,0,0	
-chrY	2772229	2772281	ATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATAC	0	+	2772229	2772281	255,0,0	
-chrY	2772229	2772281	ATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATAC	0	+	2772229	2772281	255,0,0	
-chrY	2772229	2772281	ATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATAC	0	+	2772229	2772281	255,0,0	
-chrY	2772229	2772281	ATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATAC	0	+	2772229	2772281	255,0,0	
-chrY	2772229	2772281	ATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATAC	0	+	2772229	2772281	255,0,0	
-chrY	2772229	2772281	ATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATAC	0	+	2772229	2772281	255,0,0	
-chrY	2772229	2772281	ATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATAC	0	+	2772229	2772281	255,0,0	
-chrY	2772229	2772281	ATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATAC	0	+	2772229	2772281	255,0,0	
-chrY	2772229	2772281	ATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATAC	0	+	2772229	2772281	255,0,0	
-chrY	2772229	2772281	ATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATAC	0	+	2772229	2772281	255,0,0	
-chrY	2772229	2772281	ATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATAC	0	+	2772229	2772281	255,0,0	
-chrY	2772229	2772281	ATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATAC	0	+	2772229	2772281	255,0,0	
-chrY	2772229	2772281	ATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATAC	0	+	2772229	2772281	255,0,0	
-chrY	2772229	2772281	ATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATAC	0	+	2772229	2772281	255,0,0	
-chrY	2772229	2772281	ATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATAC	0	+	2772229	2772281	255,0,0	
-chrY	2772229	2772281	ATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATAC	0	+	2772229	2772281	255,0,0	
-chrY	2772229	2772281	ATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATAC	0	+	2772229	2772281	255,0,0	
-chrY	2772229	2772281	ATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATAC	0	+	2772229	2772281	255,0,0	
-chrY	2772229	2772281	ATGCAACGTTTCATCAAAATTGATGGCAAAGTTCGAGTGGATGTCACATAC	0	+	2772229	2772281	255,0,0	
-chrY	2772229	2772281	ATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATAC	0	+	2772229	2772281	255,0,0	
-chrY	2772229	2772281	ATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATAC	0	+	2772229	2772281	255,0,0	
-chrY	2772229	2772281	ATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATAC	0	+	2772229	2772281	255,0,0	
-chrY	2772229	2772281	ATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGGCACATAC	0	+	2772229	2772281	255,0,0	
-chrY	2772229	2772281	ATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATAC	0	+	2772229	2772281	255,0,0	
-chrY	2772229	2772281	ATGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATAC	0	+	2772229	2772281	255,0,0	
-chrY	2772230	2772282	TGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACC	0	+	2772230	2772282	255,0,0	
-chrY	2772230	2772282	TGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACC	0	+	2772230	2772282	255,0,0	
-chrY	2772230	2772282	TGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACC	0	+	2772230	2772282	255,0,0	
-chrY	2772230	2772282	TGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACC	0	+	2772230	2772282	255,0,0	
-chrY	2772230	2772282	TGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACC	0	+	2772230	2772282	255,0,0	
-chrY	2772230	2772282	TGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACC	0	+	2772230	2772282	255,0,0	
-chrY	2772230	2772282	TGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACC	0	+	2772230	2772282	255,0,0	
-chrY	2772230	2772282	TGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACC	0	+	2772230	2772282	255,0,0	
-chrY	2772230	2772282	TGCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACC	0	+	2772230	2772282	255,0,0	
-chrY	2772231	2772283	GCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCC	0	+	2772231	2772283	255,0,0	
-chrY	2772231	2772283	GCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCC	0	+	2772231	2772283	255,0,0	
-chrY	2772231	2772283	GCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCC	0	+	2772231	2772283	255,0,0	
-chrY	2772231	2772283	GCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCC	0	+	2772231	2772283	255,0,0	
-chrY	2772231	2772283	GCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCC	0	+	2772231	2772283	255,0,0	
-chrY	2772231	2772283	GCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCC	0	+	2772231	2772283	255,0,0	
-chrY	2772231	2772283	GCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCC	0	+	2772231	2772283	255,0,0	
-chrY	2772231	2772283	GCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCC	0	+	2772231	2772283	255,0,0	
-chrY	2772231	2772283	GCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCC	0	+	2772231	2772283	255,0,0	
-chrY	2772231	2772283	GCAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCC	0	+	2772231	2772283	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCG	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCG	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCG	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCG	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCG	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCC	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCG	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCC	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCC	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCC	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCG	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCG	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCC	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCG	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCG	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCG	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCC	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCG	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGTATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCC	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCC	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCG	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCG	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCG	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCC	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCG	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCG	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCG	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCC	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCC	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCC	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCC	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCG	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGAGGATGTCACATACCAT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCG	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCG	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGCTGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCC	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCG	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCG	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCG	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCC	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCC	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCC	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCC	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCC	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCC	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCC	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCC	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCC	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCC	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCC	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCC	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCC	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCC	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCC	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCC	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCC	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCC	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCC	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCC	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCC	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCC	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCC	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCC	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCC	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCC	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCC	0	-	2772232	2772284	0,0,255	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCT	0	+	2772232	2772284	255,0,0	
-chrY	2772232	2772284	CAACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCC	0	-	2772232	2772284	0,0,255	
-chrY	2772233	2772285	AACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTG	0	-	2772233	2772285	0,0,255	
-chrY	2772233	2772285	AACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTG	0	-	2772233	2772285	0,0,255	
-chrY	2772233	2772285	AACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTG	0	-	2772233	2772285	0,0,255	
-chrY	2772233	2772285	AACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTG	0	-	2772233	2772285	0,0,255	
-chrY	2772233	2772285	AACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTG	0	-	2772233	2772285	0,0,255	
-chrY	2772233	2772285	AACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTG	0	-	2772233	2772285	0,0,255	
-chrY	2772233	2772285	AACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTG	0	-	2772233	2772285	0,0,255	
-chrY	2772233	2772285	AACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTG	0	-	2772233	2772285	0,0,255	
-chrY	2772233	2772285	AACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTG	0	-	2772233	2772285	0,0,255	
-chrY	2772233	2772285	AACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTG	0	-	2772233	2772285	0,0,255	
-chrY	2772233	2772285	AACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTG	0	-	2772233	2772285	0,0,255	
-chrY	2772233	2772285	AACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTG	0	-	2772233	2772285	0,0,255	
-chrY	2772233	2772285	AACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTG	0	-	2772233	2772285	0,0,255	
-chrY	2772233	2772285	AACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTG	0	-	2772233	2772285	0,0,255	
-chrY	2772233	2772285	AACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTG	0	-	2772233	2772285	0,0,255	
-chrY	2772233	2772285	AACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTG	0	-	2772233	2772285	0,0,255	
-chrY	2772233	2772285	AACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTG	0	-	2772233	2772285	0,0,255	
-chrY	2772233	2772285	AACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTG	0	-	2772233	2772285	0,0,255	
-chrY	2772233	2772285	AACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTG	0	-	2772233	2772285	0,0,255	
-chrY	2772233	2772285	AACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTG	0	-	2772233	2772285	0,0,255	
-chrY	2772234	2772286	ACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGC	0	-	2772234	2772286	0,0,255	
-chrY	2772234	2772286	ACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGC	0	-	2772234	2772286	0,0,255	
-chrY	2772234	2772286	ACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGC	0	-	2772234	2772286	0,0,255	
-chrY	2772234	2772286	ACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGC	0	-	2772234	2772286	0,0,255	
-chrY	2772234	2772286	ACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGC	0	-	2772234	2772286	0,0,255	
-chrY	2772234	2772286	ACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGC	0	-	2772234	2772286	0,0,255	
-chrY	2772234	2772286	ACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGC	0	-	2772234	2772286	0,0,255	
-chrY	2772234	2772286	ACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGC	0	-	2772234	2772286	0,0,255	
-chrY	2772234	2772286	ACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGC	0	-	2772234	2772286	0,0,255	
-chrY	2772234	2772286	ACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGC	0	-	2772234	2772286	0,0,255	
-chrY	2772234	2772286	ACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGC	0	-	2772234	2772286	0,0,255	
-chrY	2772234	2772286	ACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGC	0	-	2772234	2772286	0,0,255	
-chrY	2772234	2772286	ACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGC	0	-	2772234	2772286	0,0,255	
-chrY	2772234	2772286	ACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGC	0	-	2772234	2772286	0,0,255	
-chrY	2772234	2772286	ACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGC	0	-	2772234	2772286	0,0,255	
-chrY	2772234	2772286	ACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGC	0	-	2772234	2772286	0,0,255	
-chrY	2772234	2772286	ACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGC	0	-	2772234	2772286	0,0,255	
-chrY	2772234	2772286	ACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGC	0	-	2772234	2772286	0,0,255	
-chrY	2772234	2772286	ACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGC	0	-	2772234	2772286	0,0,255	
-chrY	2772234	2772286	ACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGC	0	-	2772234	2772286	0,0,255	
-chrY	2772234	2772286	ACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGC	0	-	2772234	2772286	0,0,255	
-chrY	2772234	2772286	ACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGC	0	-	2772234	2772286	0,0,255	
-chrY	2772234	2772286	ACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGC	0	-	2772234	2772286	0,0,255	
-chrY	2772234	2772286	ACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGC	0	-	2772234	2772286	0,0,255	
-chrY	2772234	2772286	ACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGC	0	-	2772234	2772286	0,0,255	
-chrY	2772234	2772286	ACGTTTCATCAAAATCGATGGCAAGGTTCGAGTGGATGTCACATACCCTGC	0	-	2772234	2772286	0,0,255	
-chrY	2772234	2772286	ACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGC	0	-	2772234	2772286	0,0,255	
-chrY	2772234	2772286	ACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGC	0	-	2772234	2772286	0,0,255	
-chrY	2772234	2772286	ACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGC	0	-	2772234	2772286	0,0,255	
-chrY	2772234	2772286	ACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGC	0	-	2772234	2772286	0,0,255	
-chrY	2772234	2772286	ACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGC	0	-	2772234	2772286	0,0,255	
-chrY	2772234	2772286	ACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGC	0	-	2772234	2772286	0,0,255	
-chrY	2772234	2772286	ACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGC	0	-	2772234	2772286	0,0,255	
-chrY	2772234	2772286	ACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGC	0	-	2772234	2772286	0,0,255	
-chrY	2772234	2772286	ACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGC	0	-	2772234	2772286	0,0,255	
-chrY	2772234	2772286	ACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGN	0	-	2772234	2772286	0,0,255	
-chrY	2772234	2772286	ACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGC	0	-	2772234	2772286	0,0,255	
-chrY	2772234	2772286	ACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGC	0	-	2772234	2772286	0,0,255	
-chrY	2772234	2772286	ACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGC	0	-	2772234	2772286	0,0,255	
-chrY	2772234	2772286	ACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGC	0	-	2772234	2772286	0,0,255	
-chrY	2772234	2772286	ACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGC	0	-	2772234	2772286	0,0,255	
-chrY	2772234	2772286	ACGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGC	0	-	2772234	2772286	0,0,255	
-chrY	2772235	2772287	CGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCG	0	-	2772235	2772287	0,0,255	
-chrY	2772235	2772287	CGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCG	0	-	2772235	2772287	0,0,255	
-chrY	2772235	2772287	CGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCG	0	-	2772235	2772287	0,0,255	
-chrY	2772235	2772287	CGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCG	0	-	2772235	2772287	0,0,255	
-chrY	2772235	2772287	CGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCT	0	+	2772235	2772287	255,0,0	
-chrY	2772235	2772287	CGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCT	0	+	2772235	2772287	255,0,0	
-chrY	2772235	2772287	CGTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCT	0	+	2772235	2772287	255,0,0	
-chrY	2772236	2772288	GTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCTG	0	+	2772236	2772288	255,0,0	
-chrY	2772236	2772288	GTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCTG	0	+	2772236	2772288	255,0,0	
-chrY	2772236	2772288	GTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCTG	0	+	2772236	2772288	255,0,0	
-chrY	2772236	2772288	GTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCTG	0	+	2772236	2772288	255,0,0	
-chrY	2772236	2772288	GTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCTG	0	+	2772236	2772288	255,0,0	
-chrY	2772236	2772288	GTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCTG	0	+	2772236	2772288	255,0,0	
-chrY	2772236	2772288	GTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCTG	0	+	2772236	2772288	255,0,0	
-chrY	2772236	2772288	GTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCTG	0	+	2772236	2772288	255,0,0	
-chrY	2772236	2772288	GTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCTG	0	+	2772236	2772288	255,0,0	
-chrY	2772236	2772288	GTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCTG	0	+	2772236	2772288	255,0,0	
-chrY	2772236	2772288	GTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCTG	0	+	2772236	2772288	255,0,0	
-chrY	2772236	2772288	GTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCTG	0	+	2772236	2772288	255,0,0	
-chrY	2772236	2772288	GTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCTG	0	+	2772236	2772288	255,0,0	
-chrY	2772236	2772288	GTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCTG	0	+	2772236	2772288	255,0,0	
-chrY	2772236	2772288	GTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCTG	0	+	2772236	2772288	255,0,0	
-chrY	2772236	2772288	GTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCTG	0	+	2772236	2772288	255,0,0	
-chrY	2772236	2772288	GTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCTG	0	+	2772236	2772288	255,0,0	
-chrY	2772236	2772288	GTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCTG	0	+	2772236	2772288	255,0,0	
-chrY	2772236	2772288	GTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCTG	0	+	2772236	2772288	255,0,0	
-chrY	2772236	2772288	GTTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCTG	0	+	2772236	2772288	255,0,0	
-chrY	2772237	2772289	TTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCTGG	0	-	2772237	2772289	0,0,255	
-chrY	2772237	2772289	TTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCTGG	0	-	2772237	2772289	0,0,255	
-chrY	2772237	2772289	TTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCTGG	0	-	2772237	2772289	0,0,255	
-chrY	2772237	2772289	TTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCTGG	0	-	2772237	2772289	0,0,255	
-chrY	2772237	2772289	TTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCTGG	0	-	2772237	2772289	0,0,255	
-chrY	2772237	2772289	TTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCTGG	0	-	2772237	2772289	0,0,255	
-chrY	2772237	2772289	TTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCTGG	0	-	2772237	2772289	0,0,255	
-chrY	2772237	2772289	TTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCTGG	0	-	2772237	2772289	0,0,255	
-chrY	2772237	2772289	TTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCTGG	0	-	2772237	2772289	0,0,255	
-chrY	2772237	2772289	TTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCTGG	0	-	2772237	2772289	0,0,255	
-chrY	2772237	2772289	TTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCTGG	0	-	2772237	2772289	0,0,255	
-chrY	2772237	2772289	TTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCTGG	0	-	2772237	2772289	0,0,255	
-chrY	2772237	2772289	TTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCTGG	0	-	2772237	2772289	0,0,255	
-chrY	2772237	2772289	TTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCTGG	0	-	2772237	2772289	0,0,255	
-chrY	2772237	2772289	TTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCTGG	0	-	2772237	2772289	0,0,255	
-chrY	2772237	2772289	TTTCATCAAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCTGG	0	-	2772237	2772289	0,0,255	
-chrY	2772244	2772296	AAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCTGGAGTCATG	0	-	2772244	2772296	0,0,255	
-chrY	2772244	2772296	AAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCGGGATTCATG	0	-	2772244	2772296	0,0,255	
-chrY	2772244	2772296	AAAAGTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCTGGATTCATG	0	-	2772244	2772296	0,0,255	
-chrY	2772244	2772296	AAAAGTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCTGGATTCATG	0	-	2772244	2772296	0,0,255	
-chrY	2772244	2772296	AAAAGTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCTGGATTCATG	0	-	2772244	2772296	0,0,255	
-chrY	2772244	2772296	AAAATTGATGGCAAGGTTCGAGTGGATGTCACATACCCTGCTGGCTTCATG	0	+	2772244	2772296	255,0,0	
-chrY	2772244	2772296	AAAATTGATGGCAAGGTTCGAGTGGATGTCACATGCCCTGCTGGATTCATG	0	-	2772244	2772296	0,0,255	
-chrY	2772245	2772297	AAATTGATGGCAAGGTTCGAGTGGATGTCACGTACCCTGCTGGATTCATGG	0	+	2772245	2772297	255,0,0	
-chrY	2772245	2772297	AAATTGATGGCAAGGTTTGAGTGGATGTCACATACCCTGCTGGATTCATGG	0	+	2772245	2772297	255,0,0	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTTGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	GTCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ANCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773689	2773741	ATCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAG	0	-	2773689	2773741	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	+	2773690	2773742	255,0,0	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	+	2773690	2773742	255,0,0	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	+	2773690	2773742	255,0,0	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	+	2773690	2773742	255,0,0	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	+	2773690	2773742	255,0,0	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	+	2773690	2773742	255,0,0	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	+	2773690	2773742	255,0,0	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	+	2773690	2773742	255,0,0	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	+	2773690	2773742	255,0,0	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	+	2773690	2773742	255,0,0	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	+	2773690	2773742	255,0,0	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	+	2773690	2773742	255,0,0	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	+	2773690	2773742	255,0,0	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	+	2773690	2773742	255,0,0	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	+	2773690	2773742	255,0,0	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	+	2773690	2773742	255,0,0	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	+	2773690	2773742	255,0,0	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	+	2773690	2773742	255,0,0	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	+	2773690	2773742	255,0,0	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	+	2773690	2773742	255,0,0	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	+	2773690	2773742	255,0,0	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	+	2773690	2773742	255,0,0	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	+	2773690	2773742	255,0,0	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	+	2773690	2773742	255,0,0	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	+	2773690	2773742	255,0,0	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	+	2773690	2773742	255,0,0	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	+	2773690	2773742	255,0,0	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	+	2773690	2773742	255,0,0	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCACGG	0	+	2773690	2773742	255,0,0	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	+	2773690	2773742	255,0,0	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	+	2773690	2773742	255,0,0	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	+	2773690	2773742	255,0,0	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	+	2773690	2773742	255,0,0	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	+	2773690	2773742	255,0,0	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	+	2773690	2773742	255,0,0	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	+	2773690	2773742	255,0,0	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	+	2773690	2773742	255,0,0	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	+	2773690	2773742	255,0,0	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	+	2773690	2773742	255,0,0	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	+	2773690	2773742	255,0,0	
-chrY	2773690	2773742	TCAGCATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGG	0	-	2773690	2773742	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCA	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCA	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCA	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCG	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCA	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCA	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCA	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCA	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCA	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCG	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCG	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCA	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCA	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCA	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCG	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCG	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCA	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCA	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCA	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCG	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCA	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCG	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCA	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCG	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCA	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCA	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCG	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCA	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCA	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCA	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCA	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCA	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCA	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCG	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCG	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCG	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCA	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCA	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCA	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCG	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCG	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCA	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCA	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCG	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCG	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCG	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCG	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCG	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCA	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCG	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCA	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCA	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCA	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCA	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCG	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGAGCCA	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCG	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCG	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCA	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCG	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCG	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCA	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCA	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCG	0	-	2773694	2773746	0,0,255	
-chrY	2773694	2773746	CATCGAGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCA	0	-	2773694	2773746	0,0,255	
-chrY	2773699	2773751	AGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTG	0	+	2773699	2773751	255,0,0	
-chrY	2773699	2773751	AGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTG	0	+	2773699	2773751	255,0,0	
-chrY	2773699	2773751	AGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTG	0	+	2773699	2773751	255,0,0	
-chrY	2773699	2773751	AGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTG	0	+	2773699	2773751	255,0,0	
-chrY	2773699	2773751	AGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTG	0	+	2773699	2773751	255,0,0	
-chrY	2773699	2773751	AGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTG	0	+	2773699	2773751	255,0,0	
-chrY	2773699	2773751	AGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTG	0	+	2773699	2773751	255,0,0	
-chrY	2773699	2773751	AGAAGACAGGTGAACATTTCCGCCTGGTTTATGACACCAAGGGCCGTTTTG	0	+	2773699	2773751	255,0,0	
-chrY	2773699	2773751	AGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTG	0	+	2773699	2773751	255,0,0	
-chrY	2773699	2773751	AGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTG	0	+	2773699	2773751	255,0,0	
-chrY	2773699	2773751	AGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTG	0	+	2773699	2773751	255,0,0	
-chrY	2773699	2773751	AGAAGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTG	0	+	2773699	2773751	255,0,0	
-chrY	2773702	2773754	AGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTG	0	+	2773702	2773754	255,0,0	
-chrY	2773702	2773754	AGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTG	0	+	2773702	2773754	255,0,0	
-chrY	2773702	2773754	AGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTG	0	+	2773702	2773754	255,0,0	
-chrY	2773702	2773754	AGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTG	0	+	2773702	2773754	255,0,0	
-chrY	2773702	2773754	AGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTG	0	+	2773702	2773754	255,0,0	
-chrY	2773702	2773754	AGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTG	0	+	2773702	2773754	255,0,0	
-chrY	2773702	2773754	AGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTG	0	+	2773702	2773754	255,0,0	
-chrY	2773702	2773754	AGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTG	0	+	2773702	2773754	255,0,0	
-chrY	2773702	2773754	AGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTG	0	+	2773702	2773754	255,0,0	
-chrY	2773702	2773754	AGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTG	0	+	2773702	2773754	255,0,0	
-chrY	2773702	2773754	AGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTG	0	+	2773702	2773754	255,0,0	
-chrY	2773702	2773754	GGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTG	0	+	2773702	2773754	255,0,0	
-chrY	2773702	2773754	AGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTG	0	+	2773702	2773754	255,0,0	
-chrY	2773702	2773754	AGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTG	0	+	2773702	2773754	255,0,0	
-chrY	2773702	2773754	AGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTG	0	+	2773702	2773754	255,0,0	
-chrY	2773702	2773754	AGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTG	0	+	2773702	2773754	255,0,0	
-chrY	2773702	2773754	AGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTG	0	+	2773702	2773754	255,0,0	
-chrY	2773702	2773754	AGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTG	0	+	2773702	2773754	255,0,0	
-chrY	2773702	2773754	AGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTG	0	+	2773702	2773754	255,0,0	
-chrY	2773702	2773754	AGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTG	0	+	2773702	2773754	255,0,0	
-chrY	2773702	2773754	AGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTG	0	+	2773702	2773754	255,0,0	
-chrY	2773702	2773754	AGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTG	0	+	2773702	2773754	255,0,0	
-chrY	2773702	2773754	AGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTG	0	+	2773702	2773754	255,0,0	
-chrY	2773702	2773754	AGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTG	0	+	2773702	2773754	255,0,0	
-chrY	2773702	2773754	AGACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTG	0	+	2773702	2773754	255,0,0	
-chrY	2773703	2773755	GACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGT	0	+	2773703	2773755	255,0,0	
-chrY	2773703	2773755	GACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGT	0	+	2773703	2773755	255,0,0	
-chrY	2773703	2773755	GACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGT	0	+	2773703	2773755	255,0,0	
-chrY	2773703	2773755	GACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGT	0	+	2773703	2773755	255,0,0	
-chrY	2773703	2773755	GACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGT	0	+	2773703	2773755	255,0,0	
-chrY	2773703	2773755	GACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGT	0	+	2773703	2773755	255,0,0	
-chrY	2773703	2773755	GACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGT	0	+	2773703	2773755	255,0,0	
-chrY	2773703	2773755	GACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGT	0	+	2773703	2773755	255,0,0	
-chrY	2773703	2773755	GACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGT	0	+	2773703	2773755	255,0,0	
-chrY	2773703	2773755	GACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGT	0	+	2773703	2773755	255,0,0	
-chrY	2773703	2773755	GACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGT	0	+	2773703	2773755	255,0,0	
-chrY	2773703	2773755	GACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGT	0	+	2773703	2773755	255,0,0	
-chrY	2773703	2773755	GACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGT	0	+	2773703	2773755	255,0,0	
-chrY	2773703	2773755	GACAGGTGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGT	0	+	2773703	2773755	255,0,0	
-chrY	2773709	2773761	TGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCG	0	+	2773709	2773761	255,0,0	
-chrY	2773709	2773761	TGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCG	0	+	2773709	2773761	255,0,0	
-chrY	2773709	2773761	TGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCG	0	+	2773709	2773761	255,0,0	
-chrY	2773709	2773761	TGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCG	0	+	2773709	2773761	255,0,0	
-chrY	2773709	2773761	TGAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCG	0	+	2773709	2773761	255,0,0	
-chrY	2773710	2773762	GAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGC	0	-	2773710	2773762	0,0,255	
-chrY	2773710	2773762	GAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGC	0	-	2773710	2773762	0,0,255	
-chrY	2773710	2773762	GAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGC	0	-	2773710	2773762	0,0,255	
-chrY	2773710	2773762	GAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGC	0	-	2773710	2773762	0,0,255	
-chrY	2773710	2773762	GAACATTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGC	0	-	2773710	2773762	0,0,255	
-chrY	2773715	2773767	TTTCCNCCTGGTCTATGACACCAAGGGCCGTTTTGCNGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773715	2773767	TTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773715	2773767	TTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773715	2773767	TTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773715	2773767	TTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773715	2773767	TTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773715	2773767	TTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773715	2773767	TTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773715	2773767	TTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773715	2773767	TTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773715	2773767	TTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773715	2773767	TTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773715	2773767	TTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773715	2773767	TTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773715	2773767	TTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773715	2773767	TTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773715	2773767	TTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773715	2773767	TTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773715	2773767	TTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773715	2773767	TTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773715	2773767	TTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773715	2773767	TTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773715	2773767	TTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773715	2773767	TTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773715	2773767	TTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773715	2773767	TTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773715	2773767	TTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773715	2773767	TTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773715	2773767	TTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773715	2773767	TTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773715	2773767	TTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773715	2773767	TTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773715	2773767	TTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773715	2773767	TTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773715	2773767	TTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773715	2773767	TTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773715	2773767	TTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773715	2773767	TTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773715	2773767	TTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773715	2773767	TTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773715	2773767	TTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773715	2773767	TTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773715	2773767	TTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773715	2773767	TTTCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCAC	0	+	2773715	2773767	255,0,0	
-chrY	2773717	2773769	TCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAG	0	-	2773717	2773769	0,0,255	
-chrY	2773717	2773769	TCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAG	0	-	2773717	2773769	0,0,255	
-chrY	2773717	2773769	TCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAG	0	-	2773717	2773769	0,0,255	
-chrY	2773717	2773769	TCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAG	0	-	2773717	2773769	0,0,255	
-chrY	2773717	2773769	TCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAG	0	-	2773717	2773769	0,0,255	
-chrY	2773717	2773769	TCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAG	0	-	2773717	2773769	0,0,255	
-chrY	2773717	2773769	TCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAG	0	-	2773717	2773769	0,0,255	
-chrY	2773717	2773769	TCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAG	0	-	2773717	2773769	0,0,255	
-chrY	2773717	2773769	TCCGCCTGGTCTATGACACCAAGGGCCATTTTGCTGTTCACCGCATCACAG	0	-	2773717	2773769	0,0,255	
-chrY	2773717	2773769	TCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAG	0	-	2773717	2773769	0,0,255	
-chrY	2773717	2773769	TCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAG	0	-	2773717	2773769	0,0,255	
-chrY	2773717	2773769	TCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAG	0	-	2773717	2773769	0,0,255	
-chrY	2773717	2773769	TCCGCCTGGTCTATGACACCAAGGGCCATTTTGCTGTTCACCGCATCACAG	0	-	2773717	2773769	0,0,255	
-chrY	2773717	2773769	TCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAG	0	-	2773717	2773769	0,0,255	
-chrY	2773717	2773769	TCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAG	0	-	2773717	2773769	0,0,255	
-chrY	2773717	2773769	TCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAG	0	-	2773717	2773769	0,0,255	
-chrY	2773717	2773769	TCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAG	0	-	2773717	2773769	0,0,255	
-chrY	2773717	2773769	TCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAG	0	-	2773717	2773769	0,0,255	
-chrY	2773717	2773769	TCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAG	0	-	2773717	2773769	0,0,255	
-chrY	2773717	2773769	TCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAG	0	-	2773717	2773769	0,0,255	
-chrY	2773717	2773769	TCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAG	0	-	2773717	2773769	0,0,255	
-chrY	2773717	2773769	TCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAG	0	-	2773717	2773769	0,0,255	
-chrY	2773717	2773769	TCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAG	0	-	2773717	2773769	0,0,255	
-chrY	2773717	2773769	TCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAG	0	-	2773717	2773769	0,0,255	
-chrY	2773717	2773769	TCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAG	0	-	2773717	2773769	0,0,255	
-chrY	2773717	2773769	TCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAG	0	-	2773717	2773769	0,0,255	
-chrY	2773717	2773769	TCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAG	0	-	2773717	2773769	0,0,255	
-chrY	2773717	2773769	TCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAG	0	-	2773717	2773769	0,0,255	
-chrY	2773717	2773769	TCCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAG	0	-	2773717	2773769	0,0,255	
-chrY	2773718	2773770	CCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGT	0	+	2773718	2773770	255,0,0	
-chrY	2773718	2773770	CCGCCTGGTCTATGACACCAAGGGCCGTTTTTCTGTTCACCGCATCACAGT	0	+	2773718	2773770	255,0,0	
-chrY	2773718	2773770	CCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGT	0	+	2773718	2773770	255,0,0	
-chrY	2773718	2773770	CCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGT	0	+	2773718	2773770	255,0,0	
-chrY	2773718	2773770	CCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGT	0	+	2773718	2773770	255,0,0	
-chrY	2773718	2773770	CCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGT	0	+	2773718	2773770	255,0,0	
-chrY	2773718	2773770	CCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGT	0	+	2773718	2773770	255,0,0	
-chrY	2773718	2773770	CCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGT	0	+	2773718	2773770	255,0,0	
-chrY	2773718	2773770	CCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGT	0	+	2773718	2773770	255,0,0	
-chrY	2773718	2773770	CCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGT	0	+	2773718	2773770	255,0,0	
-chrY	2773718	2773770	CCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGT	0	+	2773718	2773770	255,0,0	
-chrY	2773718	2773770	CCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGT	0	+	2773718	2773770	255,0,0	
-chrY	2773718	2773770	CCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGT	0	+	2773718	2773770	255,0,0	
-chrY	2773718	2773770	CCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGT	0	+	2773718	2773770	255,0,0	
-chrY	2773718	2773770	CCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGT	0	+	2773718	2773770	255,0,0	
-chrY	2773718	2773770	CCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGT	0	+	2773718	2773770	255,0,0	
-chrY	2773718	2773770	CCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGT	0	+	2773718	2773770	255,0,0	
-chrY	2773718	2773770	CCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGT	0	+	2773718	2773770	255,0,0	
-chrY	2773718	2773770	CCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGT	0	+	2773718	2773770	255,0,0	
-chrY	2773718	2773770	CCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGT	0	+	2773718	2773770	255,0,0	
-chrY	2773718	2773770	CCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGT	0	+	2773718	2773770	255,0,0	
-chrY	2773718	2773770	CCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGT	0	+	2773718	2773770	255,0,0	
-chrY	2773718	2773770	CCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGT	0	+	2773718	2773770	255,0,0	
-chrY	2773718	2773770	CCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGT	0	+	2773718	2773770	255,0,0	
-chrY	2773718	2773770	CCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGT	0	+	2773718	2773770	255,0,0	
-chrY	2773718	2773770	CCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGT	0	+	2773718	2773770	255,0,0	
-chrY	2773718	2773770	CCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGT	0	+	2773718	2773770	255,0,0	
-chrY	2773718	2773770	CCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGT	0	+	2773718	2773770	255,0,0	
-chrY	2773718	2773770	CCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGT	0	+	2773718	2773770	255,0,0	
-chrY	2773718	2773770	CCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGT	0	+	2773718	2773770	255,0,0	
-chrY	2773718	2773770	CCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGT	0	+	2773718	2773770	255,0,0	
-chrY	2773718	2773770	CCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGT	0	+	2773718	2773770	255,0,0	
-chrY	2773718	2773770	CCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGT	0	+	2773718	2773770	255,0,0	
-chrY	2773718	2773770	CCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGT	0	+	2773718	2773770	255,0,0	
-chrY	2773718	2773770	CCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGT	0	+	2773718	2773770	255,0,0	
-chrY	2773718	2773770	CCGCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGT	0	+	2773718	2773770	255,0,0	
-chrY	2773720	2773772	GCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGG	0	+	2773720	2773772	255,0,0	
-chrY	2773720	2773772	GCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGG	0	+	2773720	2773772	255,0,0	
-chrY	2773720	2773772	GCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGG	0	+	2773720	2773772	255,0,0	
-chrY	2773720	2773772	GCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGG	0	+	2773720	2773772	255,0,0	
-chrY	2773720	2773772	GCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGG	0	+	2773720	2773772	255,0,0	
-chrY	2773720	2773772	GCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGG	0	+	2773720	2773772	255,0,0	
-chrY	2773720	2773772	GCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGG	0	+	2773720	2773772	255,0,0	
-chrY	2773720	2773772	GCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGG	0	+	2773720	2773772	255,0,0	
-chrY	2773720	2773772	GCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGG	0	+	2773720	2773772	255,0,0	
-chrY	2773720	2773772	GCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGG	0	+	2773720	2773772	255,0,0	
-chrY	2773720	2773772	GCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGG	0	+	2773720	2773772	255,0,0	
-chrY	2773720	2773772	GCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGG	0	+	2773720	2773772	255,0,0	
-chrY	2773720	2773772	GCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGG	0	+	2773720	2773772	255,0,0	
-chrY	2773720	2773772	GCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGG	0	+	2773720	2773772	255,0,0	
-chrY	2773720	2773772	GCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGG	0	+	2773720	2773772	255,0,0	
-chrY	2773720	2773772	GCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGG	0	+	2773720	2773772	255,0,0	
-chrY	2773720	2773772	GCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGG	0	+	2773720	2773772	255,0,0	
-chrY	2773720	2773772	GCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGG	0	+	2773720	2773772	255,0,0	
-chrY	2773720	2773772	GCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGG	0	+	2773720	2773772	255,0,0	
-chrY	2773720	2773772	GCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGG	0	+	2773720	2773772	255,0,0	
-chrY	2773720	2773772	GCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGG	0	+	2773720	2773772	255,0,0	
-chrY	2773720	2773772	GCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGG	0	+	2773720	2773772	255,0,0	
-chrY	2773720	2773772	GCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGG	0	+	2773720	2773772	255,0,0	
-chrY	2773720	2773772	GCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGG	0	+	2773720	2773772	255,0,0	
-chrY	2773720	2773772	GCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGG	0	+	2773720	2773772	255,0,0	
-chrY	2773720	2773772	GCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGG	0	+	2773720	2773772	255,0,0	
-chrY	2773720	2773772	GCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGG	0	+	2773720	2773772	255,0,0	
-chrY	2773720	2773772	GCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGG	0	+	2773720	2773772	255,0,0	
-chrY	2773720	2773772	GCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGG	0	+	2773720	2773772	255,0,0	
-chrY	2773720	2773772	GCCTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGG	0	+	2773720	2773772	255,0,0	
-chrY	2773722	2773774	CTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAA	0	-	2773722	2773774	0,0,255	
-chrY	2773722	2773774	CTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAA	0	-	2773722	2773774	0,0,255	
-chrY	2773722	2773774	CTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAA	0	-	2773722	2773774	0,0,255	
-chrY	2773722	2773774	CTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAA	0	-	2773722	2773774	0,0,255	
-chrY	2773722	2773774	CTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAA	0	-	2773722	2773774	0,0,255	
-chrY	2773722	2773774	CTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAA	0	-	2773722	2773774	0,0,255	
-chrY	2773722	2773774	CTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAA	0	-	2773722	2773774	0,0,255	
-chrY	2773722	2773774	CTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAA	0	-	2773722	2773774	0,0,255	
-chrY	2773722	2773774	CTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAA	0	-	2773722	2773774	0,0,255	
-chrY	2773722	2773774	CTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAA	0	-	2773722	2773774	0,0,255	
-chrY	2773722	2773774	CTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAA	0	-	2773722	2773774	0,0,255	
-chrY	2773722	2773774	CTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAA	0	-	2773722	2773774	0,0,255	
-chrY	2773722	2773774	CTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAA	0	-	2773722	2773774	0,0,255	
-chrY	2773722	2773774	CTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAA	0	-	2773722	2773774	0,0,255	
-chrY	2773722	2773774	CTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAA	0	-	2773722	2773774	0,0,255	
-chrY	2773722	2773774	CTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAA	0	-	2773722	2773774	0,0,255	
-chrY	2773722	2773774	CTGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAA	0	-	2773722	2773774	0,0,255	
-chrY	2773723	2773775	TGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAG	0	-	2773723	2773775	0,0,255	
-chrY	2773723	2773775	TGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAG	0	-	2773723	2773775	0,0,255	
-chrY	2773723	2773775	TGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAG	0	-	2773723	2773775	0,0,255	
-chrY	2773723	2773775	TGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAG	0	-	2773723	2773775	0,0,255	
-chrY	2773723	2773775	TGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAG	0	-	2773723	2773775	0,0,255	
-chrY	2773723	2773775	TGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAG	0	-	2773723	2773775	0,0,255	
-chrY	2773723	2773775	TGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAG	0	-	2773723	2773775	0,0,255	
-chrY	2773723	2773775	TGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAG	0	-	2773723	2773775	0,0,255	
-chrY	2773723	2773775	TGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAG	0	-	2773723	2773775	0,0,255	
-chrY	2773723	2773775	TGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAG	0	-	2773723	2773775	0,0,255	
-chrY	2773723	2773775	TGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAG	0	-	2773723	2773775	0,0,255	
-chrY	2773723	2773775	TGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAG	0	-	2773723	2773775	0,0,255	
-chrY	2773723	2773775	TGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAG	0	-	2773723	2773775	0,0,255	
-chrY	2773723	2773775	TGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAG	0	-	2773723	2773775	0,0,255	
-chrY	2773723	2773775	TGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAG	0	-	2773723	2773775	0,0,255	
-chrY	2773723	2773775	TGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAG	0	-	2773723	2773775	0,0,255	
-chrY	2773723	2773775	TGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAG	0	-	2773723	2773775	0,0,255	
-chrY	2773723	2773775	TGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAG	0	-	2773723	2773775	0,0,255	
-chrY	2773723	2773775	TGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAG	0	-	2773723	2773775	0,0,255	
-chrY	2773723	2773775	TGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAG	0	-	2773723	2773775	0,0,255	
-chrY	2773723	2773775	TGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAG	0	-	2773723	2773775	0,0,255	
-chrY	2773723	2773775	TGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAG	0	-	2773723	2773775	0,0,255	
-chrY	2773723	2773775	TGGTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAG	0	-	2773723	2773775	0,0,255	
-chrY	2773725	2773777	GTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAG	0	-	2773725	2773777	0,0,255	
-chrY	2773725	2773777	GTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAG	0	-	2773725	2773777	0,0,255	
-chrY	2773725	2773777	GTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAG	0	-	2773725	2773777	0,0,255	
-chrY	2773725	2773777	GTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAG	0	-	2773725	2773777	0,0,255	
-chrY	2773725	2773777	GTCTATGACACGAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAG	0	-	2773725	2773777	0,0,255	
-chrY	2773725	2773777	GTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAG	0	-	2773725	2773777	0,0,255	
-chrY	2773725	2773777	GTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAG	0	-	2773725	2773777	0,0,255	
-chrY	2773725	2773777	GTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAG	0	-	2773725	2773777	0,0,255	
-chrY	2773725	2773777	GTCTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAG	0	-	2773725	2773777	0,0,255	
-chrY	2773727	2773779	CTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGC	0	-	2773727	2773779	0,0,255	
-chrY	2773727	2773779	CTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGC	0	-	2773727	2773779	0,0,255	
-chrY	2773727	2773779	CTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGC	0	-	2773727	2773779	0,0,255	
-chrY	2773727	2773779	CTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGC	0	-	2773727	2773779	0,0,255	
-chrY	2773727	2773779	CTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGC	0	-	2773727	2773779	0,0,255	
-chrY	2773727	2773779	CTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGC	0	-	2773727	2773779	0,0,255	
-chrY	2773727	2773779	CTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGC	0	-	2773727	2773779	0,0,255	
-chrY	2773727	2773779	CTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGC	0	-	2773727	2773779	0,0,255	
-chrY	2773727	2773779	CTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGC	0	-	2773727	2773779	0,0,255	
-chrY	2773727	2773779	CTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGC	0	-	2773727	2773779	0,0,255	
-chrY	2773727	2773779	CTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGC	0	-	2773727	2773779	0,0,255	
-chrY	2773727	2773779	CTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGC	0	-	2773727	2773779	0,0,255	
-chrY	2773727	2773779	CTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGC	0	-	2773727	2773779	0,0,255	
-chrY	2773727	2773779	CTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGC	0	-	2773727	2773779	0,0,255	
-chrY	2773727	2773779	CTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGC	0	-	2773727	2773779	0,0,255	
-chrY	2773727	2773779	CTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGC	0	-	2773727	2773779	0,0,255	
-chrY	2773727	2773779	CTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGC	0	-	2773727	2773779	0,0,255	
-chrY	2773727	2773779	CTATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGC	0	-	2773727	2773779	0,0,255	
-chrY	2773729	2773781	ATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCAA	0	+	2773729	2773781	255,0,0	
-chrY	2773729	2773781	ATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCAA	0	+	2773729	2773781	255,0,0	
-chrY	2773729	2773781	ATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCAA	0	+	2773729	2773781	255,0,0	
-chrY	2773729	2773781	ATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCAA	0	+	2773729	2773781	255,0,0	
-chrY	2773729	2773781	ATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCAA	0	+	2773729	2773781	255,0,0	
-chrY	2773729	2773781	ATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCAA	0	+	2773729	2773781	255,0,0	
-chrY	2773729	2773781	ATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCAA	0	+	2773729	2773781	255,0,0	
-chrY	2773729	2773781	ATGACACCNNGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCNA	0	+	2773729	2773781	255,0,0	
-chrY	2773729	2773781	ATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCAA	0	+	2773729	2773781	255,0,0	
-chrY	2773729	2773781	ATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCAA	0	+	2773729	2773781	255,0,0	
-chrY	2773729	2773781	ATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCAA	0	+	2773729	2773781	255,0,0	
-chrY	2773729	2773781	ATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCAA	0	+	2773729	2773781	255,0,0	
-chrY	2773729	2773781	ATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCAA	0	+	2773729	2773781	255,0,0	
-chrY	2773729	2773781	ATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCAA	0	+	2773729	2773781	255,0,0	
-chrY	2773729	2773781	ATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCAA	0	+	2773729	2773781	255,0,0	
-chrY	2773729	2773781	ATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCAA	0	+	2773729	2773781	255,0,0	
-chrY	2773729	2773781	ATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCAA	0	+	2773729	2773781	255,0,0	
-chrY	2773729	2773781	ATGACACCAAGGGCCGTTTTCCTGTTCACCGCATCCCAGTGGAAGAGCCAA	0	+	2773729	2773781	255,0,0	
-chrY	2773729	2773781	ATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCAA	0	+	2773729	2773781	255,0,0	
-chrY	2773729	2773781	ATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCAA	0	+	2773729	2773781	255,0,0	
-chrY	2773729	2773781	ATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCAA	0	+	2773729	2773781	255,0,0	
-chrY	2773729	2773781	ATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCAA	0	+	2773729	2773781	255,0,0	
-chrY	2773729	2773781	ATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCAA	0	+	2773729	2773781	255,0,0	
-chrY	2773729	2773781	ATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCAA	0	+	2773729	2773781	255,0,0	
-chrY	2773729	2773781	ATGACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGCCAA	0	+	2773729	2773781	255,0,0	
-chrY	2773731	2773783	GACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCAAAG	0	-	2773731	2773783	0,0,255	
-chrY	2773731	2773783	GACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCAAAG	0	-	2773731	2773783	0,0,255	
-chrY	2773731	2773783	GACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCAAAG	0	-	2773731	2773783	0,0,255	
-chrY	2773731	2773783	GACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCAAAG	0	-	2773731	2773783	0,0,255	
-chrY	2773731	2773783	GACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCAAAG	0	-	2773731	2773783	0,0,255	
-chrY	2773731	2773783	GACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCAAAG	0	-	2773731	2773783	0,0,255	
-chrY	2773731	2773783	GACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCAAAG	0	-	2773731	2773783	0,0,255	
-chrY	2773731	2773783	GACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCAAAG	0	-	2773731	2773783	0,0,255	
-chrY	2773731	2773783	GACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCAAAG	0	-	2773731	2773783	0,0,255	
-chrY	2773731	2773783	GACACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCAAAG	0	-	2773731	2773783	0,0,255	
-chrY	2773733	2773785	CACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCAAAGTA	0	+	2773733	2773785	255,0,0	
-chrY	2773733	2773785	CACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCAAAGTA	0	+	2773733	2773785	255,0,0	
-chrY	2773733	2773785	CACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCAAAGTA	0	+	2773733	2773785	255,0,0	
-chrY	2773733	2773785	CACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCAAAGTA	0	+	2773733	2773785	255,0,0	
-chrY	2773733	2773785	CACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCAAAGTA	0	+	2773733	2773785	255,0,0	
-chrY	2773733	2773785	CACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCAAAGTA	0	+	2773733	2773785	255,0,0	
-chrY	2773733	2773785	CACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCAAAGTA	0	+	2773733	2773785	255,0,0	
-chrY	2773733	2773785	CACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCAAAGTA	0	+	2773733	2773785	255,0,0	
-chrY	2773733	2773785	CACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCAAAGTA	0	+	2773733	2773785	255,0,0	
-chrY	2773733	2773785	CACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCAAAGTA	0	+	2773733	2773785	255,0,0	
-chrY	2773733	2773785	CACCAAGGGCCGTTTTGCTGTTCACCGCATCACAGTGGAAGAGGCAAAGTA	0	+	2773733	2773785	255,0,0	
-chrY	2774693	2774745	TTCGCCCACAGGAGGTACTATGTTTTAGATGATAGGAACTAGGCCTTGAAT	0	+	2774693	2774745	255,0,0	
-chrY	2774693	2774745	TTCGCCCACAGGAGGTACTTTGTTTTAGATGATAGGAACTAGGCCTTGAAT	0	+	2774693	2774745	255,0,0	
-chrY	2774693	2774745	TTCGCCCACAGGAGGTACTTTGTTTTAGATGATAGGAACTAGGCCTTGAAT	0	+	2774693	2774745	255,0,0	
-chrY	2774693	2774745	TTCGCCCACAGGAGGTACTTTGTTTTAGATGATAGGAACTAGGCCTTGAAT	0	+	2774693	2774745	255,0,0	
-chrY	2774693	2774745	TTCGCCCACAGGAGGTACTTTGTTTTAGATGATAGGAACTAGGCCTTGAAT	0	+	2774693	2774745	255,0,0	
-chrY	2774693	2774745	TTCGCCCACAGGAGGTACTTTGTTTTAGATGATAGGAACTAGGCCTTGAAT	0	+	2774693	2774745	255,0,0	
-chrY	2774693	2774745	TTCGCCCACAGGAGGTACTTTGTTTTAGATGATAGGAACTAGGCCTTGAAT	0	+	2774693	2774745	255,0,0	
-chrY	2774693	2774745	TTCGCCCACAGGAGGTACTTTGTTTTAGATGATAGGAACTAGGCCTTGAAT	0	+	2774693	2774745	255,0,0	
-chrY	2774693	2774745	TTCGCCCACAGGAGGTACTTTGTTTTAGATGATAGGAACTAGGCCTTGAAT	0	+	2774693	2774745	255,0,0	
-chrY	2774693	2774745	TTCGCCCACAGGAGGTACTTTGTTTTAGATGATAGGAACTAGGCCTTGAAT	0	+	2774693	2774745	255,0,0	
-chrY	2774693	2774745	TTCGCCCACAGGAGGTACTTTGTTTTAGATGATAGGAACTAGGCCTTGAAT	0	+	2774693	2774745	255,0,0	
-chrY	2774693	2774745	TTCGCCCACAGGAGGTACTTTGTTTTAGATGATAGGAACTAGGCCTTGAAT	0	+	2774693	2774745	255,0,0	
-chrY	2774693	2774745	TTCGCCCACAGGAGGTACTTTGTTTTAGATGATAGGAACTAGGCCTTGAAT	0	+	2774693	2774745	255,0,0	
-chrY	2774693	2774745	TTCGCCCACAGGAGGTACTTTGTTTTAGATGATAGGAACTAGGCCTTGAAT	0	+	2774693	2774745	255,0,0	
-chrY	2774693	2774745	TTCGCCCACAGGAGGTACTTTGTTTTAGATGATAGGAACTAGGCCTTGAAT	0	+	2774693	2774745	255,0,0	
-chrY	2774693	2774745	TTCGCCCACAGGAGGTACTTTGTTTTAGATGATAGGAACTAGGCCTTGAAT	0	+	2774693	2774745	255,0,0	
-chrY	2774693	2774745	TTCGCCCACAGGAGGTACTTTGTTTTAGATGATAGGAACTAGGCCTTGAAT	0	+	2774693	2774745	255,0,0	
-chrY	2774693	2774745	TTCGCCCACAGGAGGTACTTTGTTTTAGATGATAGGAACTAGGCCTTGAAT	0	+	2774693	2774745	255,0,0	
-chrY	2774693	2774745	TTCGCCCACAGGAGGTACTTTGTTTTAGATGATAGGAACTAGGCCTTGAAT	0	+	2774693	2774745	255,0,0	
-chrY	2774811	2774863	AAATCAAAGCTGATGACTGGTTTCTGCTTTTGTATGGAATTTGGATCTCAA	0	-	2774811	2774863	0,0,255	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCCGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGACCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGNGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCTGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCCGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2774930	2774982	CTGGAGTGTTGTTAATACCTAGTACTGGCCCTACCAGATTGGCCAGCCAGG	0	+	2774930	2774982	255,0,0	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	TCGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCAGTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775049	2775101	ACGGTATTGGCCTTATCCTTGTGTAACAGGTGAGAGACTTGGGAAGTTTTG	0	-	2775049	2775101	0,0,255	
-chrY	2775260	2775312	CAGGGAGCCTTTTCATAGTTTATTAATCCACCAGGTAGCATAGGTTAGTGG	0	+	2775260	2775312	255,0,0	
-chrY	2775260	2775312	CAGGGAGCCTTTTCATAGTTTATTAATCCACCAGGTAGCATAGGTTAGTGG	0	+	2775260	2775312	255,0,0	
-chrY	2775260	2775312	CAGGGAGCCTTTTCATAGTTTATTAATCCACCAGGTAGCATAGGTTAGTGG	0	+	2775260	2775312	255,0,0	
-chrY	2775260	2775312	CAGGGAGCCTTTTCATAGTTTATTAATCCACCAGGTAGCATAGGTTAGTGG	0	+	2775260	2775312	255,0,0	
-chrY	2775260	2775312	CAGGGAGCCTTTTCATAGTTTATTAATCCACCAGGTAGCATAGGTTAGTGG	0	+	2775260	2775312	255,0,0	
-chrY	2775362	2775414	GTGGTATTTTGTGGGTCTTGGGAAAACAGCCTGATGGATTTCAGACATAAT	0	-	2775362	2775414	0,0,255	
-chrY	2775362	2775414	GTGGTATTTTGTGGGTCTTGGGAAAACAGCCTGATGGATTTCAGACATAAT	0	-	2775362	2775414	0,0,255	
-chrY	2775362	2775414	GTGGTATTTTGTGGGTCTTGGGAAAACAGCCTGATGGATTTCAGACATAAT	0	-	2775362	2775414	0,0,255	
-chrY	2775362	2775414	GTGGTATTTTGTGGGTCTTGGGAAAACAGCCTGATGGATTTCAGACATAAT	0	-	2775362	2775414	0,0,255	
-chrY	2775362	2775414	GTGGTATTTTGTGGGTCTTGGGAAAACAGCCTGATGGATTTCAGACATAAT	0	-	2775362	2775414	0,0,255	
-chrY	2776928	2776980	GTGTAGTTATTTTTATCCCTGGCCCCCTCCCAACCTCCCTCATCTGGGTCT	0	+	2776928	2776980	255,0,0	
-chrY	2776928	2776980	GTGTAGTTATTTTTATCCCTGGCCCCCTCCCAACCTCCCTCATCTGGGTCT	0	+	2776928	2776980	255,0,0	
-chrY	2776928	2776980	GTGTAGTTATTTTTATCCCTGGCCCCCTCCCAACCTCCCTCATCTGGGTCT	0	+	2776928	2776980	255,0,0	
-chrY	2776928	2776980	GTGTAGTTATTTTTATCCCTGGCCCCCTCCCAACCTCCCTCATCTGGGTCT	0	+	2776928	2776980	255,0,0	
-chrY	2776928	2776980	GTGTAGTTATTTTTATCCCTGGCCCCCTCCCAACCTCCCTCATCTGGGTCT	0	+	2776928	2776980	255,0,0	
-chrY	2776928	2776980	GTGTAGTTATTTTTATCCCTGGCCCCCTCCCAACCTCCCTCATCTGGGTCT	0	+	2776928	2776980	255,0,0	
-chrY	2776928	2776980	GTGTAGTTATTTTTATCCCTGGCCCCCTCCCAACCTCCCTCATCTGGGTCT	0	+	2776928	2776980	255,0,0	
-chrY	2777048	2777100	ACTCATAGCAAGATAGGGGTTTTGGTTTTCCACTCCTGTGTTATTTCACTT	0	-	2777048	2777100	0,0,255	
-chrY	2777048	2777100	ACTCATAGCAAGATGGGGGTTTTGGTTTTCCACTCCTGTGTTATTTCACTT	0	-	2777048	2777100	0,0,255	
-chrY	2777048	2777100	ACTCATAGCAAGATAGGGGTTTTGGTTTTCCACTCCTGTGTTATTTCACTT	0	-	2777048	2777100	0,0,255	
-chrY	2777048	2777100	ACTCATAGCAAGATAGGGGTTTTGGTTTTCCACTCCTGTGTTATTTCACTT	0	-	2777048	2777100	0,0,255	
-chrY	2777048	2777100	ACTCATAGCAAGATAGGGGTTTTGGTTTTCCACTCCTGTGTTATTTCACTT	0	-	2777048	2777100	0,0,255	
-chrY	2777048	2777100	ACTCATAGCAAGATAGGGGTTTTGGTTTTCCACTCCTGTGTTATTTCACTT	0	-	2777048	2777100	0,0,255	
-chrY	2777048	2777100	ACTCATAGCAAGATAGGGGTTTTGGTTTTCCACTCCTGTGTTATTTCACTT	0	-	2777048	2777100	0,0,255	
-chrY	2777447	2777499	CTCAATCCGAACTCTGATTCCTTTACCACATAGAGGCTGAGCCCCATACTA	0	+	2777447	2777499	255,0,0	
-chrY	2777447	2777499	CTCAATCCGAACTCTGATTCCTTTACCACATAGAGGCTGAGCCCCATACTA	0	+	2777447	2777499	255,0,0	
-chrY	2777447	2777499	CTCAATCCGAACTCTGATTCCTTTACCACATAGAGGCTGAGCCCCATACTA	0	+	2777447	2777499	255,0,0	
-chrY	2777447	2777499	CTCAATCCGAACTCTGATTCCTTTACCACATAGAGGCTGAGCCCCATACTA	0	+	2777447	2777499	255,0,0	
-chrY	2777447	2777499	CTCAATCCGAACTCTGATTCCTTTACCACATAGAGGCTGAGCCCCATACTA	0	+	2777447	2777499	255,0,0	
-chrY	2777447	2777499	CTCAATCCGAACTCTGATTCCTTTACCACATAGAGGCTGAGCCCCATACTA	0	+	2777447	2777499	255,0,0	
-chrY	2777447	2777499	CTCAATCCGAACTCTGATTCCTTTACCACATAGAGGCTGAGCCCCATACTA	0	+	2777447	2777499	255,0,0	
-chrY	2777447	2777499	CTCAATCCGAACTCTGATTCCTTTACCACATAGAGGCTGAGCCCCATACTA	0	+	2777447	2777499	255,0,0	
-chrY	2777447	2777499	CTCAATCCGAACTCTGATTCCTTTACCACATAGAGGCTGAGCCCCATACTA	0	+	2777447	2777499	255,0,0	
-chrY	2777447	2777499	CTCAATCCGAACTCTGATTCCTTTACCACATAGAGGCTGAGCCCCATACTA	0	+	2777447	2777499	255,0,0	
-chrY	2777447	2777499	CTCAATCCGAACTCTGATTCCTTTACCACATAGAGGCTGAGCCCCATACTA	0	+	2777447	2777499	255,0,0	
-chrY	2777447	2777499	CTCAATCCGAACTCTGATTCCTTTACCACATAGAGGCTGAGCCCCATACTA	0	+	2777447	2777499	255,0,0	
-chrY	2777447	2777499	CTCAATCCGAACTCTGATTCCTTTACCACATAGAGGCTGAGCCCCATACTA	0	+	2777447	2777499	255,0,0	
-chrY	2777447	2777499	CTCAATCCGAACTCTGATTCCTTTACCACATAGAGGCTGAGCCCCATACTA	0	+	2777447	2777499	255,0,0	
-chrY	2777447	2777499	CTCAATCCGAACTCTGATTCCTTTACCACATAGAGGCTGAGCCCCATACTA	0	+	2777447	2777499	255,0,0	
-chrY	2777447	2777499	CTCAATCCGAACTCTGATTCCTTTACCACATAGAGGCTGAGCCCCATACTA	0	+	2777447	2777499	255,0,0	
-chrY	2777447	2777499	CTCAATCCGAACTCTGATTCCTTTACCACATAGAGGCTGAGCCCCATACTA	0	+	2777447	2777499	255,0,0	
-chrY	2777447	2777499	CTCAATCCGAACTCTGATTCCTTTACCACATAGAGGCTGAGCCCCATACTA	0	+	2777447	2777499	255,0,0	
-chrY	2777447	2777499	CTCAATCCGAACTCTGATTCCTTTACCACATAGAGGCTGAGCCCCATACTA	0	+	2777447	2777499	255,0,0	
-chrY	2777447	2777499	CTCAATCCGAACTCTGATTCCTTTACCACATAGAGGCTGAGCCCCATACTA	0	+	2777447	2777499	255,0,0	
-chrY	2777447	2777499	CTCAATCCGAACTCTGATTCCTTTACCACATAGAGGCTGAGCCCCATACTA	0	+	2777447	2777499	255,0,0	
-chrY	2777447	2777499	CTCAATCCGAACTCTGATTCCTTTACCACATAGAGGCTGAGCCCCATACTA	0	+	2777447	2777499	255,0,0	
-chrY	2777447	2777499	CTCAATCCGAACTCTGATTCCTTTACCACATAGAGGCTGAGCCCCATACTA	0	+	2777447	2777499	255,0,0	
-chrY	2777447	2777499	CTCAATCCGAACTCTGATTCCTTTACCACATAGAGGCTGAGCCCCATACTA	0	+	2777447	2777499	255,0,0	
-chrY	2777453	2777505	CCGAACTCTGATTCCTTTACCGCATAGAGGCTGAGCCCCATACTAGGAACT	0	+	2777453	2777505	255,0,0	
-chrY	2777453	2777505	CCGAACTCTGATTCCTTTACCACATAGAGGCTGAGCCCCATACTAGGAACT	0	+	2777453	2777505	255,0,0	
-chrY	2777453	2777505	CCGAACTCTGATTCCTTTACCACATAGAGGCTGAGCCCCATACTAGGAACT	0	+	2777453	2777505	255,0,0	
-chrY	2777453	2777505	CCGAACTCTGATTCCTTTACCACATAGAGGCTGAGCCCCATACTAGGAACT	0	+	2777453	2777505	255,0,0	
-chrY	2777453	2777505	CCGAACTCTGATTCCTTTACCACATAGAGGCTGAGCCCCATACTAGGAACT	0	+	2777453	2777505	255,0,0	
-chrY	2777453	2777505	CCGAACTCTGATTCCTTTACCACATAGAGGCTGAGCCCCATACTAGGAACT	0	+	2777453	2777505	255,0,0	
-chrY	2777453	2777505	CCGAACTCTGATTCCTTTACCACATAGAGGCTGAGCCCCATACTAGGAACT	0	+	2777453	2777505	255,0,0	
-chrY	2777453	2777505	CCGAACTCTGATTCCTTTACCACATAGAGGCTGAGCCCCATACTAGGAACT	0	+	2777453	2777505	255,0,0	
-chrY	2777453	2777505	CCGAACTCTGATTCCTTTACCACATAGAGGCTGAGCCCCATACTAGGAACT	0	+	2777453	2777505	255,0,0	
-chrY	2777453	2777505	CCGAACTCTGATTCCTTTACCACATAGAGGCTGAGCCCCATACTAGGAACT	0	+	2777453	2777505	255,0,0	
-chrY	2777539	2777591	CATTGTTGTGCCTTTCTCACTTGCCAGTGGTGACTCAGAGGGCCCTACAGT	0	+	2777539	2777591	255,0,0	
-chrY	2777539	2777591	CATTGTTGTGCCTTTCTCACTTGCCAGTGGTGACTCAGAGGGCCCTACAGT	0	+	2777539	2777591	255,0,0	
-chrY	2777539	2777591	CATTGTTGTGCCTTTCTCACTTGCCAGTGGTGACTCAGAGGGCCCTACAGT	0	+	2777539	2777591	255,0,0	
-chrY	2777539	2777591	CATTGTTGTGCCTTTCTCACTTGCCAGTGGTGACTCAGAGGGCCCTACAGT	0	+	2777539	2777591	255,0,0	
-chrY	2777539	2777591	CATTGTTGTGCCTTTCTCACTTGCCAGTGGTGACTCAGAGGGCCCTACAGT	0	+	2777539	2777591	255,0,0	
-chrY	2777539	2777591	CATTGTTGTGCCTTTCTCACTTGCCAGTGGTGACTCAGAGGGCCCTACAGT	0	+	2777539	2777591	255,0,0	
-chrY	2777539	2777591	CATTGTTGTGCCTTTCTCACTTGCCAGTGGTGACTCAGAGGGCCCTACAGT	0	+	2777539	2777591	255,0,0	
-chrY	2777539	2777591	CATTGTTGTGCCTTTCTCACTTGCCAGTGGTGACTCAGAGGGCCCTACAGT	0	+	2777539	2777591	255,0,0	
-chrY	2777539	2777591	CATTGTTGTGCCTTTCTCACTTGCCAGTGGTGACTCAGAGGGCCCTACAGT	0	+	2777539	2777591	255,0,0	
-chrY	2777539	2777591	CATTGTTGTGCCTTTCTCACTTGCCAGTGGTGACTCAGAGGGCCCTACAGT	0	+	2777539	2777591	255,0,0	
-chrY	2777539	2777591	CATTGTTGTGCCTTTCTCACTTGCCAGTGGTGACTCAGAGGGCCCTACAGT	0	+	2777539	2777591	255,0,0	
-chrY	2777539	2777591	CATTGTTGTGCCTTTCTCACTTGCCAGTGGTGACTCAGAGGGCCCTACAGT	0	+	2777539	2777591	255,0,0	
-chrY	2777539	2777591	CATTGTTGTGCCTTTCTCACTTGCCAGTGGTGACTCAGAGGGCCCTACAGT	0	+	2777539	2777591	255,0,0	
-chrY	2777539	2777591	CATTGTTGTGCCTTTCTCACTTGCCAGTGGTGACTCAGAGGGCCCTACAGT	0	+	2777539	2777591	255,0,0	
-chrY	2777539	2777591	CATTGTTGTGCCTTTCTCACTTGCCAGTGGTGACTCAGAGGGCCCTACAGT	0	+	2777539	2777591	255,0,0	
-chrY	2777539	2777591	CATTGTTGTGCCTTTCTCACTTGCCAGTGGTGACTCAGAGGGCCCTACAGT	0	+	2777539	2777591	255,0,0	
-chrY	2777539	2777591	CATTGTTGTGCCTTTCTCACTTGCCAGTGGTGACTCAGAGGGCCCTACAGT	0	+	2777539	2777591	255,0,0	
-chrY	2777539	2777591	CATTGTTGTGCCTTTCTCACTTGCCAGTGGTGACTCAGAGGGCCCTACAGT	0	+	2777539	2777591	255,0,0	
-chrY	2777539	2777591	CATTGTTGTGCCTTTCTCACTTGCCAGTGGTGACTCAGAGGGCCCTACAGT	0	+	2777539	2777591	255,0,0	
-chrY	2777539	2777591	CATTGTTGTGCCTTTCTCACTTGCCAGTGGTGACTCAGAGGGCCCTACAGT	0	+	2777539	2777591	255,0,0	
-chrY	2777539	2777591	CATTGTTGTGCCTTTCTCACTTGCCAGTGGTGACTCAGAGGGCCCTACAGT	0	+	2777539	2777591	255,0,0	
-chrY	2777539	2777591	CATTGTTGTGCCTTTCTCACTTGCCAGTGGTGACTCAGAGGGCCCTACAGT	0	+	2777539	2777591	255,0,0	
-chrY	2777539	2777591	CATTGTTGTGCCTTTCTCACTTGCCAGTGGTGACTCAGAGGGCCCTACAGT	0	+	2777539	2777591	255,0,0	
-chrY	2777539	2777591	CATTGTTGTGCCTTTCTCACTTGCCAGTGGTGACTCAGAGGGCCCTACAGT	0	+	2777539	2777591	255,0,0	
-chrY	2777539	2777591	CATTGTTGTGCCTTTCTCACTTGCCAGTGGTGACTCAGAGGGCCCTACAGT	0	+	2777539	2777591	255,0,0	
-chrY	2777539	2777591	CATTGTTGTGCCTTTCTCACTTGCCAGTGGTGACTCAGAGGGCCCTACAGT	0	+	2777539	2777591	255,0,0	
-chrY	2777539	2777591	CATTGTTGTGCCTTTCTCACTTGCCAGTGGTGACTCAGAGGGCCCTACAGT	0	+	2777539	2777591	255,0,0	
-chrY	2777539	2777591	CATTGTTGTGCCTTTCTCACTTGCCAGTGGTGACTCAGAGGGCCCTACAGT	0	+	2777539	2777591	255,0,0	
-chrY	2777539	2777591	CATTGTTGTGCCTTTCTCACTTGCCAGTGGTGACTCAGAGGGCCCTACAGT	0	+	2777539	2777591	255,0,0	
-chrY	2777539	2777591	CATTGTTGTGCCTTTCTCACTTGCCAGTGGTGACTCAGAGGGCCCTACAGT	0	+	2777539	2777591	255,0,0	
-chrY	2777539	2777591	CATTGTTGTGCCTTTCTCACTTGCCAGTGGTGACTCAGAGGGCCCTACAGT	0	+	2777539	2777591	255,0,0	
-chrY	2777539	2777591	CATTGTTGTGCCTTTCTCACTTGCCAGTGGTGACTCAGAGGGCCCTACAGT	0	+	2777539	2777591	255,0,0	
-chrY	2777539	2777591	CATTGTTGTGCCTTTCTCACTTGCCAGTGGTGACTCAGAGGGCCCTACAGT	0	+	2777539	2777591	255,0,0	
-chrY	2777539	2777591	CATTGTTGTGCCTTTCTCACTTGCCAGTGGTGACTCAGAGGGCCCTACAGT	0	+	2777539	2777591	255,0,0	
-chrY	2777539	2777591	CATTGTTGTGCCTTTCTCACTTGCCAGTGGTGACTCAGAGGGCCCTACAGT	0	+	2777539	2777591	255,0,0	
-chrY	2777539	2777591	CATTGTTGTGCCTTTCTCACTTGCCAGTGGTGACTCAGAGGGCCCTACAGT	0	+	2777539	2777591	255,0,0	
-chrY	2777539	2777591	CATTGTTGTGCCTTTCTCACTTGCCAGTGGTGACTCAGAGGGCCCTACAGT	0	+	2777539	2777591	255,0,0	
-chrY	2777539	2777591	CATTGTTGTGCCTTTCTCACTTGCCAGTGGTGACTCAGAGGGCCCTACAGT	0	+	2777539	2777591	255,0,0	
-chrY	2777539	2777591	CATTGTTGTGCCTTTCTCACTTGCCAGTGGTGACTCAGAGGGCCCTACAGT	0	+	2777539	2777591	255,0,0	
-chrY	2777539	2777591	CATTGTTGTGCCTTTCTCACTTGCCAGTGGTGACTCAGAGGGCCCTACAGT	0	+	2777539	2777591	255,0,0	
-chrY	2777539	2777591	CATTGTTGTGCCTTTCTCACTTGCCAGTGGTGACTCAGAGGGCCCTACAGT	0	+	2777539	2777591	255,0,0	
-chrY	2777539	2777591	CATTGTTGTGCCTTTCTCACTTGCCAGTGGTGACTCAGAGGGCCCTACAGT	0	+	2777539	2777591	255,0,0	
-chrY	2777539	2777591	CATTGTTGTGCCTTTCTCACTTGCCAGTGGTGACTCAGAGGGCCCTACAGT	0	+	2777539	2777591	255,0,0	
-chrY	2777561	2777613	GCCAGTGGTGACTCAGAGGGCCCTACAGTCTTTGGGAGTCTTGGGGCTGGA	0	-	2777561	2777613	0,0,255	
-chrY	2777561	2777613	GCCAGTGGTGACTCAGAGGGCCCTACAGTCTTTGGGAGTCTTGGGGCTGGA	0	-	2777561	2777613	0,0,255	
-chrY	2777561	2777613	GCCAGTGGTGACTCAGAGGGCCCTACAGTCTTTGGGAGTCTTGGGGCTGGA	0	-	2777561	2777613	0,0,255	
-chrY	2777561	2777613	GCCAGTGGTGACTCAGAGGGCCCTACAGTCTTTGGGAGTCTTGGGGCTGGA	0	-	2777561	2777613	0,0,255	
-chrY	2777561	2777613	GCCAGTGGTGACTCAGAGGGCCCTACAGTCTTTGGGAGTCTTGGGGCTGGA	0	-	2777561	2777613	0,0,255	
-chrY	2777561	2777613	GCCAGTGGTGACTCAGAGGGCCCTACAGTCTTTGGGAGTCTTGGGGCTGGA	0	-	2777561	2777613	0,0,255	
-chrY	2777561	2777613	GCCAGTGGTGACTCAGAGGGCCCTACAGTCTTTGGGAGTCTTGGGGCTGGA	0	-	2777561	2777613	0,0,255	
-chrY	2777561	2777613	GCCAGTGGTGACTCAGAGGGCCCTACAGTCTTTGGGAGTCTTGGGGCTGGA	0	-	2777561	2777613	0,0,255	
-chrY	2777561	2777613	GCCAGTGGTGACTCAGAGGGCCCTACAGTCTTTGGGAGTCTTGGGGCTGGA	0	-	2777561	2777613	0,0,255	
-chrY	2777561	2777613	GCCAGTGGTGACTCAGAGGGCCCTACAGTCTTTGGGAGTCTTGGGGCTGGA	0	-	2777561	2777613	0,0,255	
-chrY	2777561	2777613	GCCAGTGGTGACTCAGAGGGCCCTACAGTCTTTGGGAGTCTTGGGGCTGGA	0	-	2777561	2777613	0,0,255	
-chrY	2777561	2777613	GCCAGTGGTGACTCAGAGGGCCCTACAGTCTTTGGGAGTCTTGGGGCTGGA	0	-	2777561	2777613	0,0,255	
-chrY	2777561	2777613	GCCAGTGGTGACTCAGAGGGCCCTACAGTCTTTGGGAGTCTTGGGGCTGGA	0	-	2777561	2777613	0,0,255	
-chrY	2777561	2777613	GCCAGTGGTGACTCAGAGGGCCCTACAGTCTTTGGGAGTCTTGGGGCTGGA	0	-	2777561	2777613	0,0,255	
-chrY	2777561	2777613	GCCAGTGGTGACTCAGAGGGCCCTACAGTCTTTGGGAGTCTTGGGGCTGGA	0	-	2777561	2777613	0,0,255	
-chrY	2777561	2777613	GCCAGTGGTGACTCAGAGGGCCCTACAGTCTTTGGGAGTCTTGGGGCTGGA	0	-	2777561	2777613	0,0,255	
-chrY	2777561	2777613	GCCAGTGGTGACTCAGAGGGCCCTACAGTCTTTGGGAGTCTTGGGGCTGGA	0	-	2777561	2777613	0,0,255	
-chrY	2777561	2777613	GCCAGTGGTGACTCAGAGGGCCCTACAGTCTTTGGGAGTCTTGGGGCTGGA	0	-	2777561	2777613	0,0,255	
-chrY	2777561	2777613	GCCAGTGGTGACTCAGAGGGCCCTACAGTCTTTGGGAGTCTTGGGGCTGGA	0	-	2777561	2777613	0,0,255	
-chrY	2777561	2777613	GCCAGTGGTGGCGCAGAGGGCCCTACAGTCTTTGGGAGTCTTGGGGCTGGA	0	-	2777561	2777613	0,0,255	
-chrY	2777561	2777613	GCCAGTGGTGACTCAGAGGGCCCTACAGTCTTTGGGAGTCTTGGGGCTGGA	0	-	2777561	2777613	0,0,255	
-chrY	2777561	2777613	GCCAGTGGTGACTCAGAGGGCCCTACAGTCTTTGGGAGTCTTGGGGCTGGA	0	-	2777561	2777613	0,0,255	
-chrY	2777561	2777613	GCCAGTGGTGACTCAGAGGGCCCTACAGTCTTTGGGAGTCTTGGGGCTGGA	0	-	2777561	2777613	0,0,255	
-chrY	2777561	2777613	GCCAGGGGTGACTCAGAGGGCCCTACAGTCTTTGGGAGTCTTGGGGCTGGA	0	-	2777561	2777613	0,0,255	
-chrY	2777581	2777633	CCCTACAGTCTTTGGGAGTCTTGGGGCTGGAGGACAGAAGGTGATGGGGTG	0	-	2777581	2777633	0,0,255	
-chrY	2777581	2777633	CCCTACAGTCTTTGGGAGTCTTGGGGCTGGAGGACAGAAGGTGATGGGGTG	0	-	2777581	2777633	0,0,255	
-chrY	2777581	2777633	CCCTACAGTCTTTGGGAGTCTTGGGGCTGGAGGACAGAAGGTGATGGGGTG	0	-	2777581	2777633	0,0,255	
-chrY	2777581	2777633	CCCTACAGTCTTTGGGAGTCTTGGGGCTGGAGGACAGAAGGTGATGGGGTG	0	-	2777581	2777633	0,0,255	
-chrY	2777581	2777633	CCCTACAGTCTTTGGGAGTCTTGGGGCTGGAGGACAGAAGGTGATGGGGTG	0	-	2777581	2777633	0,0,255	
-chrY	2777581	2777633	CCCTACAGTCTTTGGGAGTCTTGGGGCTGGAGGACAGAAGGTGATGGGGTG	0	-	2777581	2777633	0,0,255	
-chrY	2777581	2777633	CCCTACAGTCTTTGGGAGTCTTGGGGCTGGAGGACAGAAGGTGATGGGGTG	0	-	2777581	2777633	0,0,255	
-chrY	2777581	2777633	CCCTACAGTCTTTGGGAGTCTTGGGGCTGGAGGACAGAAGGTGATGGGGTG	0	-	2777581	2777633	0,0,255	
-chrY	2777581	2777633	CCCTACAGTCTTTGGGAGTCTTGGGGCTGGAGGACAGAAGGTGATGGGGTG	0	-	2777581	2777633	0,0,255	
-chrY	2777581	2777633	CCCTACAGTCTTTGGGAGTCTTGGGGCTGGAGGACAGAAGGTGATGGGGTG	0	-	2777581	2777633	0,0,255	
-chrY	2777631	2777683	GTCACATCTTTAAAATCTGAAGACAGTCTTTTCAGCTGTGGGACAGAGGAA	0	+	2777631	2777683	255,0,0	
-chrY	2777631	2777683	GTCACATCTTTAAAATCTGAAGACAGTCTTTTCAGCTGTGGGACAGAGGAA	0	+	2777631	2777683	255,0,0	
-chrY	2777631	2777683	GTCACATCTTTAAAATCTGAAGACAGTCTTTTCAGCTGTGGGACAGAGGAA	0	+	2777631	2777683	255,0,0	
-chrY	2777631	2777683	GTCACATCTTTAAAATCTAAAGACAGTCTTTTCAGCTGTGGGACAGAGGAA	0	+	2777631	2777683	255,0,0	
-chrY	2777631	2777683	GTCACATCTTTAAAATCTGAAGACAGTCTTTTCAGCTGTGGGACAGAGGAA	0	+	2777631	2777683	255,0,0	
-chrY	2777631	2777683	GTCACATCTTTAAAATCTGAAGACAGTCTTTTCAGCTGTGGGACAGAGGAA	0	+	2777631	2777683	255,0,0	
-chrY	2777631	2777683	GTCACATCTTTAAAATCTGAAGACAGTCTTTTCAGCTGTGGGACAGAGGAA	0	+	2777631	2777683	255,0,0	
-chrY	2777631	2777683	GTCACATCTTTAAAATCTGAAGACAGTCTTTTCAGCTGTGGGACAGAGGAA	0	+	2777631	2777683	255,0,0	
-chrY	2777631	2777683	GTCACATCTTTAAAATCTGAAGACAGTCTTTTCAGCTGTGGGACAGAGGAA	0	+	2777631	2777683	255,0,0	
-chrY	2777631	2777683	GTTACATCTTTAAAATCTGAAGACAGTCTTTTCAGCTGTGGGACAGAGGAA	0	+	2777631	2777683	255,0,0	
-chrY	2777631	2777683	GTCACATCTTTAAAATCTGAAGACAGTCTTTTCAGCTGTGGGACAGAGGAA	0	+	2777631	2777683	255,0,0	
-chrY	2777667	2777719	TGTGGGACAGAGGAAAAATAATTGGTTTTCTGCAGATGTTGAGGCTACCCC	0	-	2777667	2777719	0,0,255	
-chrY	2777667	2777719	TGTGGGACAGAGGAAAAATAATTGGTTTTCTGCAGATGTTGAGGCTACCCC	0	-	2777667	2777719	0,0,255	
-chrY	2777667	2777719	TGTGGGACAGAGGAAAAATAATTGGTTTTCTGCAGATGTTGAGGCTACCCC	0	-	2777667	2777719	0,0,255	
-chrY	2777667	2777719	TGTGGGACAGAGGAAAAATAATTGGTTTTCTGCAGATGTTGAGGCTACCCC	0	-	2777667	2777719	0,0,255	
-chrY	2777667	2777719	TGTGGGACAGAGGAAAAATAATTGGTTTTCTGCAGATGTTGAGGCTACCCC	0	-	2777667	2777719	0,0,255	
-chrY	2777667	2777719	TGTGGGACAGAGGAAAAATAATTGGTTTTCTGCAGATGTTGAGGCTACCCC	0	-	2777667	2777719	0,0,255	
-chrY	2777667	2777719	TGTGGGACAGAGGAAAAATAATTGGTTTTCTGCAGATGTTGAGGCTACCCC	0	-	2777667	2777719	0,0,255	
-chrY	2777667	2777719	TGTGGGACAGAGGAAAAATAATTGGTTTTCTGCAGATGTTGAGGCTACCCC	0	-	2777667	2777719	0,0,255	
-chrY	2777667	2777719	TGTGGGACAGAGGAAAAATAATTGGTTTTCTGCAGATGTTGAGGCTACCCC	0	-	2777667	2777719	0,0,255	
-chrY	2777667	2777719	TGTGGGACAGAGGAAAAATAATTGGTTTTCTGCAGATGTTGAGGCTACCCC	0	-	2777667	2777719	0,0,255	
-chrY	2777667	2777719	TGTGGGACAGAGGAAAAATAATTGGTTTTCTGCAGATGTTGAGGCTACCCC	0	-	2777667	2777719	0,0,255	
-chrY	2777667	2777719	TGTGGGACAGAGGAAAAATAATTGGTTTTCTGCAGATGTTGAGGCTACCCC	0	-	2777667	2777719	0,0,255	
-chrY	2777667	2777719	TGTGGGACAGAGGAAAAATAATTGGTTTTCTGCAGATGTTGAGGCTACCCC	0	-	2777667	2777719	0,0,255	
-chrY	2777667	2777719	TGTGGGACAGAGGAAAAATAATTGGTTTTCTGCAGATGTTGAGGCTACCCC	0	-	2777667	2777719	0,0,255	
-chrY	2777667	2777719	TGTGGGACAGAGGAAAAATAATTGGTTTTCTGCAGATGTTGAGGCTACCCC	0	-	2777667	2777719	0,0,255	
-chrY	2777667	2777719	TGTGGGACAGAGGAAAAATAATTGGTTTTCTGCAGATGTTGAGGCTACCCC	0	-	2777667	2777719	0,0,255	
-chrY	2777667	2777719	TGTGGGACAGAGGAAAAATAATTGGTTTTCTGCAGATGTTGAGGCTACCCC	0	-	2777667	2777719	0,0,255	
-chrY	2777667	2777719	TGTGGGACAGAGGAAAAATAATTGGTTTTCTGCAGATGTTGAGGCTACCCC	0	-	2777667	2777719	0,0,255	
-chrY	2777667	2777719	TGTGGGACAGAGGAAAAATAATTGGTTTTCTGCAGATGTTGAGGCTACCCC	0	-	2777667	2777719	0,0,255	
-chrY	2777667	2777719	TGTGGGACAGAGGAAAAATAATTGGTTTTCTGCAGATGTTGAGGCTACCCC	0	-	2777667	2777719	0,0,255	
-chrY	2777667	2777719	TGTGGGACAGAGGAAAAATAATTGGTTTTCTGCAGATGTTGAGGCTACCCC	0	-	2777667	2777719	0,0,255	
-chrY	2777667	2777719	TGTGGGACAGAGGAAAAATAGTTGGTTTTCTGCAGATGTTGAGGCTACCCC	0	-	2777667	2777719	0,0,255	
-chrY	2777667	2777719	TGTGGGACAGAGGAAAAATAATTGGTTTTCTGCAGATGTTGAGGCTACCCC	0	-	2777667	2777719	0,0,255	
-chrY	2777667	2777719	TGTGGGACAGAGGAAAAATAATTGGTTTTCTGCAGATGTTGAGGCTACCCC	0	-	2777667	2777719	0,0,255	
-chrY	2777667	2777719	CGTGGGACAGAGGAAAAATAATTGGTTTTCTGCAGATGTTGAGGCTACCCC	0	-	2777667	2777719	0,0,255	
-chrY	2777667	2777719	TGTGGGACAGAGGAAAAATAATTGGTTTTCTGCAGATGTTGAGGCTACCCC	0	-	2777667	2777719	0,0,255	
-chrY	2777667	2777719	TGTGGGACAGAGGAAAAATAATTGGTTTTCTGCAGATGTTGAGGCTACCCC	0	-	2777667	2777719	0,0,255	
-chrY	2777667	2777719	TGTGGGACAGAGGAAAAATAATTGGTTTTCTGCAGATGTTGAGGCTACCCC	0	-	2777667	2777719	0,0,255	
-chrY	2777667	2777719	TGTGGGACAGAGGAAAAATAATTGGTTTTCTGCAGATGTTGAGGCTACCCC	0	-	2777667	2777719	0,0,255	
-chrY	2777667	2777719	TGTGGGACAGAGGAAAAATAATTGGTTTTCTGCAGATGTTGAGGCTACCCC	0	-	2777667	2777719	0,0,255	
-chrY	2777667	2777719	TGTGGGACAGAGGAAAAATAATTGGTTTTCTGCAGATGTTGAGGCTACCCC	0	-	2777667	2777719	0,0,255	
-chrY	2777667	2777719	TGTGGGACAGAGGAAAAATAATTGGTTTTCTGCAGATGTTGAGGCTACCCC	0	-	2777667	2777719	0,0,255	
-chrY	2777667	2777719	TGTGGGACAGAGGAAAAATAATTGGTTTTCTGCAGATGTTGAGGCTACCCC	0	-	2777667	2777719	0,0,255	
-chrY	2777667	2777719	TGTGGGACAGAGGAAAAATAATTGGTTTTCTGCAGATGTTGAGGCTACCCC	0	-	2777667	2777719	0,0,255	
-chrY	2777667	2777719	TGTGGGACAGAGGAAAAATAATTGGTTTTCTGCAGATGTTGAGGCTACCCC	0	-	2777667	2777719	0,0,255	
-chrY	2777667	2777719	TGCGGGACAGAGGAAAAATAATTGGTTTTCTGCAGATGTTGAGGCTACCCC	0	-	2777667	2777719	0,0,255	
-chrY	2777667	2777719	TGTGGGACAGAGGAAAAATAATTGGTTTTCTGCAGATGTTGAGGCTACCCC	0	-	2777667	2777719	0,0,255	
-chrY	2777667	2777719	TGTGGGACAGAGGAAAAATAATTGGTTTTCTGCAGATGTTGAGGCTACCCC	0	-	2777667	2777719	0,0,255	
-chrY	2777667	2777719	TGTGGGACAGAGGAAAAATAATTGGTTTTCTGCAGATGTTGAGGCTACCCC	0	-	2777667	2777719	0,0,255	
-chrY	2777667	2777719	TGTGGGACAGAGGAAAAATAATTGGTTTTCTGCAGATGTTGAGGCTACCCC	0	-	2777667	2777719	0,0,255	
-chrY	2777667	2777719	TGTGGGACAGAGGAAAAATAATTGGTTTTCTGCAGATGTTGAGGCTACCCC	0	-	2777667	2777719	0,0,255	
-chrY	2777667	2777719	TGTGGGACAGAGGAAAAATAATTGGTTTTCTGCAGATGTTGAGGCTACCCC	0	-	2777667	2777719	0,0,255	
-chrY	2777745	2777797	AGTTCCCCTCATGATATGGCCAGTCTTACCCTTAGTGAACCTCTAGTTTCC	0	-	2777745	2777797	0,0,255	
-chrY	2777745	2777797	AGTTCCCCTCATGATATGGCCAGTCTTACCCTTAGTGAACCTCTAGTTTCC	0	-	2777745	2777797	0,0,255	
-chrY	2777745	2777797	AGTTCCCCTCATGATATGGCCAGTCTTACCCTTAGTGAACCTCTAGTTTCC	0	-	2777745	2777797	0,0,255	
-chrY	2777745	2777797	AGTTCCCCTCATGATATGGCCAGTCTTACCCTTAGTGAACCTCTAGTTTCC	0	-	2777745	2777797	0,0,255	
-chrY	2777745	2777797	AGTTCCCCTCATGATATGGCCAGTCTTACCCTTAGTGAACCTCTAGTTTCC	0	-	2777745	2777797	0,0,255	
-chrY	2777745	2777797	AGTTCCCCTCATGATATGGCCAGTCTTACCCTTAGTGAACCTCTAGTTTCC	0	-	2777745	2777797	0,0,255	
-chrY	2777745	2777797	AGTTCCCCTCATGATATGGCCAGTCTTACCCTTAGTGAACCTCTAGTTTCC	0	-	2777745	2777797	0,0,255	
-chrY	2777745	2777797	AGTTCCCCTCATGATATGGCCAGTCTTACCCTTAGTGAACCTCTAGTTTCC	0	-	2777745	2777797	0,0,255	
-chrY	2777745	2777797	AGTTCCCCTCATGATATGGCCAGTCTTACCCTTAGTGAACCTCTAGTTTCC	0	-	2777745	2777797	0,0,255	
-chrY	2777745	2777797	AGTTCCCCTCATGATATGGCCAGTCTTACCCTTAGTGAACCTCTAGTTTCC	0	-	2777745	2777797	0,0,255	
-chrY	2777745	2777797	AGTTCCCCTCATGATATGGCCAGTCTTACCCTTAGTGAACCTCTAGTTTCC	0	-	2777745	2777797	0,0,255	
-chrY	2778418	2778470	AAAGTTTTTACTTGTTTTGTTTTTGCTGTCTTTCTCCTGACTGTCAGCAGT	0	+	2778418	2778470	255,0,0	
-chrY	2778418	2778470	AAAGTTTTTACTTGTTTTGTTTTTGCTGTCTTTCTCCTGACTGTCAGCAGT	0	+	2778418	2778470	255,0,0	
-chrY	2778418	2778470	AAAGTTTTTACTTGTTTTGTTTTTGCTGTCTTTCTCCTGACTGTCAGCAGT	0	+	2778418	2778470	255,0,0	
-chrY	2778418	2778470	AAAGTTTTTACTTGTTTTGTTTTTGCTGTCTTTCTCCTGACTGTCAGCAGT	0	+	2778418	2778470	255,0,0	
-chrY	2778418	2778470	AAAGTTTTTACTTGTTTTGTTTTTGCTGTCTTTCTCCTGACTGTCAGCAGT	0	+	2778418	2778470	255,0,0	
-chrY	2778418	2778470	AAAGTTTTTACTTGTTTTGTTTTTGCTGTCTTTCTCCTGACTGTCAGCAGT	0	+	2778418	2778470	255,0,0	
-chrY	2778418	2778470	AAAGTTTTTACTTGTTTTGTTTTTGCTGTCTTTCTCCTGACTGTCAGCAGT	0	+	2778418	2778470	255,0,0	
-chrY	2778418	2778470	AAAGTTTTTACTTGTTTTGTTTTTGCTGTCTTTCTCCTGACTGTCAGCAGT	0	+	2778418	2778470	255,0,0	
-chrY	2778418	2778470	AAAGTTTTTACTTGTTTTGTTTTTGCTGTCTTTCTCCTGACTGTCAGCAGT	0	+	2778418	2778470	255,0,0	
-chrY	2778418	2778470	AAAGTTTTTACTTGTTTTGTTTTTGCTGTCTTTCTCCTGACTGTCAGCAGT	0	+	2778418	2778470	255,0,0	
-chrY	2778418	2778470	AAAGTTTTTACTTGTTTTGTTTTTGCTGTCTTTCTCCTGACTGTCAGCAGT	0	+	2778418	2778470	255,0,0	
-chrY	2778418	2778470	AAAGTTTTTACTTGTTTTGTTTTTGCTGTCTTTCTCCTGACTGTCAGCAGT	0	+	2778418	2778470	255,0,0	
-chrY	2778418	2778470	AAAGTTTTTACTTGTTTTGTTTTTGCTGTCTTTCTCCTGACTGTCAGCAGT	0	+	2778418	2778470	255,0,0	
-chrY	2778418	2778470	AAAGTTTTTACTTGTTTTGTTTTTGCTGTCTTTCTCCTGACTGTCAGCAGT	0	+	2778418	2778470	255,0,0	
-chrY	2778418	2778470	AAAGTTTTTACTTGTTTTGTTTTTGCTGTCTTTCTCCTGACTGTCAGCAGT	0	+	2778418	2778470	255,0,0	
-chrY	2778418	2778470	AAAGTTTTTACTTGTTTTGTTTTTGCTGTCTTTCTCCTGACTGTCAGCAGT	0	+	2778418	2778470	255,0,0	
-chrY	2778418	2778470	AAAGTTTTTACTTGTTTTGTTTTTGCTGTCTTTCTCCTGACTGTCAGCAGT	0	+	2778418	2778470	255,0,0	
-chrY	2778418	2778470	AAAGTTTTTACTTGTTTTGTTTTTGCTGTCTTTCTCCTGACTGTCAGCAGT	0	+	2778418	2778470	255,0,0	
-chrY	2778418	2778470	AAAGTTTTTACTTGTTTTGTTTTTGCTGTCTTTCTCCTGACTGTCAGCAGT	0	+	2778418	2778470	255,0,0	
-chrY	2778418	2778470	AAAGTTTTTACTTGTTTTGTTTTTGCTGTCTTTCTCCTGACTGTCAGCAGT	0	+	2778418	2778470	255,0,0	
-chrY	2778418	2778470	AAAGTTTTTACTTGTTTTGTTTTTGCTGTCTTTCTCCTGACTGTCAGCAGT	0	+	2778418	2778470	255,0,0	
-chrY	2778418	2778470	AAAGTTTTTACTTGTTTTGTTTTTGCTGTCTTTCTCCTGACTGTCAGCAGT	0	+	2778418	2778470	255,0,0	
-chrY	2778418	2778470	AAAGTTTTTACTTGTTTTGTTTTTGCTGTCTTTCTCCTGACTGTCAGCAGT	0	+	2778418	2778470	255,0,0	
-chrY	2778418	2778470	AAAGTTTTTACTTGTTTTGTTTTTGCTGTCTTTCTCCTGACTGTCAGCAGT	0	+	2778418	2778470	255,0,0	
-chrY	2778418	2778470	AAAGTTTTTACTTGTTTTGTTTTTGCTGTCTTTCTCCTGACTGTCAGCAGT	0	+	2778418	2778470	255,0,0	
-chrY	2778418	2778470	AAAGTTTTTACTTGTTTTGTTTTTGCTGTCTTTCTCCTGACTGTCAGCAGT	0	+	2778418	2778470	255,0,0	
-chrY	2778418	2778470	AAAGTTTTTACTTGTTTTGTTTTTGCTGTCTTTCTCCTGACTGTCAGCAGT	0	+	2778418	2778470	255,0,0	
-chrY	2778418	2778470	AAAGTTTTTACTTGTTTTGTTTTTGCTGTCTTTCTCCTGACTGTCAGCAGT	0	+	2778418	2778470	255,0,0	
-chrY	2778418	2778470	AAAGTTTTTACTTGTTTTGTTTTTGCTGTCTTTCTCCTGACTGTCAGCAGT	0	+	2778418	2778470	255,0,0	
-chrY	2778418	2778470	AAAGTTTTTACTTATTTTGTTTTTGCTGTCTTTCTCCTGACTGTCAGCAGT	0	+	2778418	2778470	255,0,0	
-chrY	2778418	2778470	AAAGTTTTTACTTGTTTTGTTTTTGCTGTCTTTCTCCTGACTGTCAGCAGT	0	+	2778418	2778470	255,0,0	
-chrY	2778418	2778470	AAAGTTTTTACTTGTTTTGTTTTTGCTGTCTTTCTCCTGACTGTCAGCAGT	0	+	2778418	2778470	255,0,0	
-chrY	2778418	2778470	AAAGTTTTTACTTGTTTTGTTTTTGCTGTCTTTCTCCTGACTGTCAGCAGT	0	+	2778418	2778470	255,0,0	
-chrY	2778418	2778470	AAAGTTTTTACTTGTTTTGTTTTTGCTGTCTTTCTCCTGACTGTCAGCAGT	0	+	2778418	2778470	255,0,0	
-chrY	2778418	2778470	AAAGTTTTTACTTGTTTTGTTTTTGCTGTCTTTCTCCTGACTGTCAGCAGT	0	+	2778418	2778470	255,0,0	
-chrY	2778418	2778470	AAAGTTTTTACTTGTTTTGTTTTTGCTGTCTTTCTCCTGACTGTCAGCAGT	0	+	2778418	2778470	255,0,0	
-chrY	2778418	2778470	AAAGTTTTTACTTGTTTTGTTTTTGCTGTCTTTCTCCTGACTGTCAGCAGT	0	+	2778418	2778470	255,0,0	
-chrY	2778418	2778470	AAAGTTTTTACTTGTTTTGTTTTTGCTGTCTTTCTCCTGACTGTCAGCAGT	0	+	2778418	2778470	255,0,0	
-chrY	2778418	2778470	AAAGTTTTTACTTGTTTTGTTTTTGCTGTCTTTCTCCTGACTGTCAGCAGT	0	+	2778418	2778470	255,0,0	
-chrY	2778697	2778749	TTAGAATCACCCAAGTAGGTTCAGGATGTCACATACAAAAAATGTGGAGGA	0	+	2778697	2778749	255,0,0	
-chrY	2778697	2778749	TTAGAATCACCCAAGTAGGTTCAGGATGTCACATACAAAAAATGTGGAGGA	0	+	2778697	2778749	255,0,0	
-chrY	2778697	2778749	TTAGAATCACCCAAGTAGGTTCAGGATGTCACATACAAAAAATGTGGAGGA	0	+	2778697	2778749	255,0,0	
-chrY	2778697	2778749	TTAGAATCACCCAAGTAGGTTCAGGATGTCACATACAAAAAATGTGGAGGA	0	+	2778697	2778749	255,0,0	
-chrY	2778697	2778749	TTAGAATCACCCAAGTAGGTTCAGGATGTCACATACAAAAAATGTGGAGGA	0	+	2778697	2778749	255,0,0	
-chrY	2778798	2778850	TCATGAAGTTGGAGGGGCAGAGGTAGAGAGCTTGCATTTCAGAGTTCTTTC	0	-	2778798	2778850	0,0,255	
-chrY	2778798	2778850	TCATGAAGTTGGAGGGGCAGAGGTAGAGAGCTTGCATTTCAGAGTTCTTTC	0	-	2778798	2778850	0,0,255	
-chrY	2778798	2778850	TCATGAAGTTGGAGGGGCAGAGGTAGAGAGCTTGCATTTCAGAGTTCTTTC	0	-	2778798	2778850	0,0,255	
-chrY	2778798	2778850	TCATGAAGTTGGAGGGGCAGAGGTAGAGAGCTTGCATTTCAGAGTTCTTTC	0	-	2778798	2778850	0,0,255	
-chrY	2778798	2778850	TCATGAAGTTGGAGGGGCAGAGGTAGAGAGCTTGCATTTCAGAGTTCTTTC	0	-	2778798	2778850	0,0,255	
-chrY	2779169	2779221	CCGCGCCCGGCCCAGAGGGTTTCTTATATCTAGCGTGGAGTAGAGCTGGAG	0	+	2779169	2779221	255,0,0	
-chrY	2779169	2779221	CCGCGCCCGGCCCAGAGGGTTTCTTATATCTAGCGTGGAGTAGAGCTGGAG	0	+	2779169	2779221	255,0,0	
-chrY	2779169	2779221	CCGCGCCCGGCCCAGAGGGTTTCTTATATCTAGCGTGGAGTAGAGCTGGAG	0	+	2779169	2779221	255,0,0	
-chrY	2779169	2779221	CCGCGCCCGGCCCAGAGGGTTTCTTATATCTAGCGTGGAGTAGAGCTGGAG	0	+	2779169	2779221	255,0,0	
-chrY	2779169	2779221	CCGCGCCCGGCCCAGAGGGTTTCTTATATCTAGCGTGGAGTAGAGCTGGAG	0	+	2779169	2779221	255,0,0	
-chrY	2779169	2779221	CCGCGCCCGGCCCAGAGGGTTTCTTATATCTAGCGTGGAGTAGAGCTGGAG	0	+	2779169	2779221	255,0,0	
-chrY	2779169	2779221	CCGCGCCCGGCCCAGAGGGTTTCTTATATCTAGCGTGGAGTAGAGCTGGAG	0	+	2779169	2779221	255,0,0	
-chrY	2779169	2779221	CCGCGCCCGGCCCAGAGGGTTTCTTATATCTAGCGTGGAGTAGAGCTGGAG	0	+	2779169	2779221	255,0,0	
-chrY	2779169	2779221	CCGCGCCCGGCCCAGAGGGTTTCTTATATCTAGCGTGGAGTAGAGCTGGAG	0	+	2779169	2779221	255,0,0	
-chrY	2779169	2779221	CCGCGCCCGGCCCAGAGGGTTTCTTATATCTAGCGTGGAGTAGAGCTGGAG	0	+	2779169	2779221	255,0,0	
-chrY	2779169	2779221	CCGCGCCCGGCCCAGAGGGTTTCTTATATCTAGCGTGGAGTAGAGCTGGAG	0	+	2779169	2779221	255,0,0	
-chrY	2779169	2779221	CCGCGCCCGGCCCAGAGGGTTTCTTATATCTAGCGTGGAGTAGAGCTGGAG	0	+	2779169	2779221	255,0,0	
-chrY	2779169	2779221	CCGCGCCCGGCCCAGAGGGTTTCTTATATCTAGCGTGGAGTAGAGCTGGAG	0	+	2779169	2779221	255,0,0	
-chrY	2779169	2779221	CCGCGCCCGGCCCAGAGGGTTTCTTATATCTAGCGTGGAGTAGAGCTGGAG	0	+	2779169	2779221	255,0,0	
-chrY	2779169	2779221	CCGCGCCCGGCCCAGAGGGTTTCTTATATCTAGCGTGGAGTAGAGCTGGAG	0	+	2779169	2779221	255,0,0	
-chrY	2779169	2779221	CCGCGCCCGGCCCAGAGGGTTTCTTATATCTAGCGTGGAGTAGAGCTGGAG	0	+	2779169	2779221	255,0,0	
-chrY	2779169	2779221	CCGCGCCCGGCCCAGAGGGTTTCTTATATCTAGCGTGGAGTAGAGCTGGAG	0	+	2779169	2779221	255,0,0	
-chrY	2779169	2779221	CCGCGCCCGGCCCAGAGGGTTTCTTATATCTAGCGTGGAGTAGAGCTGGAG	0	+	2779169	2779221	255,0,0	
-chrY	2779169	2779221	CCGCGCCCGGCCCAGAGGGTTTCTTATATCTAGCGTGGAGTAGAGCTGGAG	0	+	2779169	2779221	255,0,0	
-chrY	2779169	2779221	CCGCGCCCGGCCCAGAGGGTTTCTTATATCTAGCGTGGAGTAGAGCTGGAG	0	+	2779169	2779221	255,0,0	
-chrY	2779169	2779221	CCGCGCCCGGCCCAGAGGGTTTCTTATATCTAGCGTGGAGTAGAGCTGGAG	0	+	2779169	2779221	255,0,0	
-chrY	2779277	2779329	GTGGTCACTGGATTGGTACTGATGATTGGATAGCACATTTTAAAGGTAAAG	0	-	2779277	2779329	0,0,255	
-chrY	2779277	2779329	GTGGTCACTGGATTGGTACTGATGATTGGATAGCACATTTTAAAGGTAAAG	0	-	2779277	2779329	0,0,255	
-chrY	2779277	2779329	GTGGTCACTGGATTGGTACTGATGATTGGATAGCACATTTTAAAGGTAAAG	0	-	2779277	2779329	0,0,255	
-chrY	2779277	2779329	GTGGTCACTGGATTGGTACTGATGATTGGATAGCACATTTTAAAGGTAAAG	0	-	2779277	2779329	0,0,255	
-chrY	2779277	2779329	GTGGTCACTGGATTGGTACTGATGATTGGATAGCACATTTTAAAGGTAAAG	0	-	2779277	2779329	0,0,255	
-chrY	2779277	2779329	GTGGTCACTGGATTGGTACTGATGATTGGATAGCACATTTTAAAGGTAAAG	0	-	2779277	2779329	0,0,255	
-chrY	2779277	2779329	GTGGTCACTGGATTGGTACTGATGATTGGATAGCACATTTTAAAGGTAAAG	0	-	2779277	2779329	0,0,255	
-chrY	2779277	2779329	GTGGTCACTGGATTGGTACTGATGATTGGATAGCACATTTTAAAGGTAAAG	0	-	2779277	2779329	0,0,255	
-chrY	2779277	2779329	GTGGTCACTGGATTGGTACTGATGATTGGATAGCACATTTTAAAGGTAAAG	0	-	2779277	2779329	0,0,255	
-chrY	2779277	2779329	GTGGTCACTGGATTGGTACTGATGATTGGATAGCACATTTTAAAGGTAAAG	0	-	2779277	2779329	0,0,255	
-chrY	2779277	2779329	GTGGTCACTGGATTGGTACTGATGATTGGATAGCACATTTTAAAGGTAAAG	0	-	2779277	2779329	0,0,255	
-chrY	2779277	2779329	GTGGTCACTGGATTGGTACTGATGATTGGATAGCACATTTTAAAGGTAAAG	0	-	2779277	2779329	0,0,255	
-chrY	2779277	2779329	GTGGTCACTGGATTGGTACTGATGATTGGATAGCACATTTTAAAGGTAAAG	0	-	2779277	2779329	0,0,255	
-chrY	2779277	2779329	GTGGTCACTGGATTGGTACTGATGATTGGATAGCACATTTTAAAGGTAAAG	0	-	2779277	2779329	0,0,255	
-chrY	2779277	2779329	GTGGTCACTGGATTGGTACTGATGATTGGATAGCACATTTTAAAGGTAAAG	0	-	2779277	2779329	0,0,255	
-chrY	2779277	2779329	GTGGTCACTGGATTGGTACTGATGATTGGATAGCACATTTTAAAGGTAAAG	0	-	2779277	2779329	0,0,255	
-chrY	2779277	2779329	GTGGTCACTGGATTGGTACTGATGATTGGATAGCACATTTTAAAGGTAAAG	0	-	2779277	2779329	0,0,255	
-chrY	2779277	2779329	GTGGTCACTGGATTGGTACTGATGATTGGATAGCACATTTTAAAGGTAAAG	0	-	2779277	2779329	0,0,255	
-chrY	2779277	2779329	GTGGTCACTGGATTGGTACTGATGATTGGATAGCACATTTTAAAGGTAAAG	0	-	2779277	2779329	0,0,255	
-chrY	2779277	2779329	GTGGTCACTGGATTGGTACTGATGATTGGATAGCACATTTTAAAGGTAAAG	0	-	2779277	2779329	0,0,255	
-chrY	2779277	2779329	GTGGTCACTGGATTGGTACTGATGATTGGATAGCACATTTTAAAGGTAAAG	0	-	2779277	2779329	0,0,255	
-chrY	2779315	2779367	TTTAAAGGTAAAGTGCAAGTTACTCTTTTAAATGAGGATGGAAGAGTGAAG	0	+	2779315	2779367	255,0,0	
-chrY	2779315	2779367	TTTAAAGGTAAAGTGCAAGTTACTCTTTTAAATGAGGATGGAAGAGTGAAG	0	+	2779315	2779367	255,0,0	
-chrY	2779315	2779367	TTTAAAGGTAAAGTGCAAGTTACTCTTTTAAATGAGGATGGAAGAGTGAAG	0	+	2779315	2779367	255,0,0	
-chrY	2779315	2779367	TTTAAAGGTAAAGTGCAAGTTACTCTTTTAAATGAGGATGGAAGAGTGAAG	0	+	2779315	2779367	255,0,0	
-chrY	2779315	2779367	TTTAAAGGTAAAGTGCAAGTTACTCTTTTAAATGAGGATGGAAGAGTGAAG	0	+	2779315	2779367	255,0,0	
-chrY	2779315	2779367	TTTAAAGGTAAAGTGCAAGTTACTCTTTTAAATGAGGATGGAAGAGTGAAG	0	+	2779315	2779367	255,0,0	
-chrY	2779315	2779367	TTTAAAGGTAAAGTGCAAGTTACTCTTTTAAATGAGGATGGAAGAGTGAAG	0	+	2779315	2779367	255,0,0	
-chrY	2779315	2779367	TTTAAAGGTAAAGTGCAAGTTACTCTTTTAAATGAGGATGGAAGAGTGAAG	0	+	2779315	2779367	255,0,0	
-chrY	2779315	2779367	TTTAAAGGTAAAGTGCAAGTTACTCTTTTAAATGAGGATGGAAGAGTGAAG	0	+	2779315	2779367	255,0,0	
-chrY	2779315	2779367	TTTAAAGGTAAAGTGCAAGTTACTCTTTTAAATGAGGATGGAAGAGTGAAG	0	+	2779315	2779367	255,0,0	
-chrY	2779315	2779367	TTTAAAGGTAAAGTGCAAGTTACTCTTTTAAATGAGGATGGAAGAGTGAAG	0	+	2779315	2779367	255,0,0	
-chrY	2779315	2779367	TTTAAAGGTAAAGTGCAAGTTACTCTTTTAAATGAGGATGGAAGAGTGAAG	0	+	2779315	2779367	255,0,0	
-chrY	2779315	2779367	TTTAAAGGTAAAGTGCAAGTTACTCTTTTAAATGAGGATGGAAGAGTGAAG	0	+	2779315	2779367	255,0,0	
-chrY	2779315	2779367	TTTAAAGGTAAAGTGCAAGTTACTCTTTTAAATGAGGATGGAAGAGTGAAG	0	+	2779315	2779367	255,0,0	
-chrY	2779315	2779367	TTTAAAGGTAAAGTGCAAGTTACTCTTTTAAATGAGGATGGAAGAGTGAAG	0	+	2779315	2779367	255,0,0	
-chrY	2779315	2779367	TTTAAAGGTAAAGTGCAAGTTACTCTTTTAAATGAGGATGGAAGAGTGAAG	0	+	2779315	2779367	255,0,0	
-chrY	2779315	2779367	TTTAAAGGTAAAGTGCAAGTTACTCTTTTAAATGAGGATGGAAGAGTGAAG	0	+	2779315	2779367	255,0,0	
-chrY	2779315	2779367	TTTAAAGGTAAAGTGCAAGTTACTCTTTTAAATGAGGATGGAAGAGTGAAG	0	+	2779315	2779367	255,0,0	
-chrY	2779315	2779367	TTTAAAGGTAAAGTGCAAGTTACTCTTTTAAATGAGGATGGAAGAGTGAAG	0	+	2779315	2779367	255,0,0	
-chrY	2779315	2779367	TTTAAAGGTAAAGTGCAAGTTACTCTTTTAAATGAGGATGGAAGAGTGAAG	0	+	2779315	2779367	255,0,0	
-chrY	2779315	2779367	TTTAAAGGTAAAGTGCAAGTTACTCTTTTAAATGAGGATGGAAGAGTGAAG	0	+	2779315	2779367	255,0,0	
-chrY	2779315	2779367	TTTAAAGGTAAAGTGCAAGTTACTCTTTTAAATGAGGATGGAAGAGTGAAG	0	+	2779315	2779367	255,0,0	
-chrY	2779315	2779367	TTTAAAGGTAAAGTGCAAGTTACTCTTTTAAATGAGGATGGAAGAGTGAAG	0	+	2779315	2779367	255,0,0	
-chrY	2779315	2779367	TTTAAAGGTAAAGTGCAAGTTACTCTTTTAAATGAGGATGGAAGAGTGAAG	0	+	2779315	2779367	255,0,0	
-chrY	2779315	2779367	TTTAAAGGTAAAGTGCAAGTTACTCTTTTAAATGAGGATGGAAGAGTGAAG	0	+	2779315	2779367	255,0,0	
-chrY	2779315	2779367	TTTAAAGGTAAAGTGCAAGTTACTCTTTTAAATGAGGATGGAAGAGTGAAG	0	+	2779315	2779367	255,0,0	
-chrY	2779315	2779367	TTTAAAGGTAAAGTGCAAGTTACTCTTTTAAATGAGGATGGAAGAGTGAAG	0	+	2779315	2779367	255,0,0	
-chrY	2779315	2779367	TTTAAAGGTAAAGTGCAAGTTACTCTTTTAAATGAGGATGGAAGAGTGAAG	0	+	2779315	2779367	255,0,0	
-chrY	2779315	2779367	TTTAAAGGTAAAGTGCAAGTTACTCTTTTAAATGAGGATGGAAGAGTGAAG	0	+	2779315	2779367	255,0,0	
-chrY	2779315	2779367	TTTAAAGGTAAAGTGCAAGTTACTCTTTTAAATGAGGATGGAAGAGTGAAG	0	+	2779315	2779367	255,0,0	
-chrY	2779315	2779367	TTTAAAGGTAAAGTGCAAGTTACTCTTTTAAATGAGGATGGAAGAGTGAAG	0	+	2779315	2779367	255,0,0	
-chrY	2779315	2779367	TTTAAAGGTAAAGTGCAAGTTACTCTTTTAAATGAGGATGGAAGAGTGAAG	0	+	2779315	2779367	255,0,0	
-chrY	2779315	2779367	TTTAAAGGTAAAGTGCAAGTTACTCTTTTAAATGAGGATGGAAGAGTGAAG	0	+	2779315	2779367	255,0,0	
-chrY	2779315	2779367	TTTAAAGGTAAAGTGCAAGTTACTCTTTTAAATGAGGATGGAAGAGTGAAG	0	+	2779315	2779367	255,0,0	
-chrY	2779315	2779367	TTTAAAGGTAAAGTGCAAGTTACTCTTTTAAATGAGGATGGAAGAGTGAAG	0	+	2779315	2779367	255,0,0	
-chrY	2779315	2779367	TTTAAAGGTAAAGTGCAAGTTACTCTTTTAAATGAGGATGGAAGAGTGAAG	0	+	2779315	2779367	255,0,0	
-chrY	2779315	2779367	TTTAAAGGTAAAGTGCAAGTTACTCTTTTAAATGAGGATGGAAGAGTGAAG	0	+	2779315	2779367	255,0,0	
-chrY	2779428	2779480	TTTCTTATGGTTTGGTCCCAGGGCTTCGGGAGGTATAAGGGGAAAATGTGT	0	-	2779428	2779480	0,0,255	
-chrY	2779428	2779480	TTTCTTATGGTTTGGTCCCAGGGCTTCGGGAGGTATAAGGGGAAAATGTGT	0	-	2779428	2779480	0,0,255	
-chrY	2779428	2779480	TTTCTTATGGTTTGGTCCCAGGGCTTCGGGAGGTATAAGGGGAAAATGTGT	0	-	2779428	2779480	0,0,255	
-chrY	2779428	2779480	TTTCTTATGGTTTGGTCCCAGGGCTTCGGGAGGTATAAGGGGAAAATGTGT	0	-	2779428	2779480	0,0,255	
-chrY	2779428	2779480	TTTCTTATGGTTTGGTCCCAGGGCTTCGGGAGGTATAAGGGGAAAAGGTGT	0	-	2779428	2779480	0,0,255	
-chrY	2779428	2779480	TTTCTTATGGTTTGGTCCCAGGGCTTCGGGAGGTATAAGGGGAAAATGTGT	0	-	2779428	2779480	0,0,255	
-chrY	2779428	2779480	TTTCTTATGGTTTGGTCCCAGGGCTTCGGGAGGTATAAGGGGAAAATGTGT	0	-	2779428	2779480	0,0,255	
-chrY	2779428	2779480	TTTCTTATGGTTTGGTCCCAGGGCTTCGGGAGGTATAAGGGGAAAATGTGT	0	-	2779428	2779480	0,0,255	
-chrY	2779428	2779480	TTTCTTATGGTTTGGTCCCAGGGCTTCGGGAGGTATAAGGGGAAAATGTGT	0	-	2779428	2779480	0,0,255	
-chrY	2779428	2779480	TTTCTTATGGTTTGGTCCCAGGGCTTCGGGAGGTATAAGGGGAAAATGTGT	0	-	2779428	2779480	0,0,255	
-chrY	2779428	2779480	TTTCTTATGGTTTGGTCCCAGGGCTTCGGGAGGTATAAGGGGAAAATGTGT	0	-	2779428	2779480	0,0,255	
-chrY	2779428	2779480	TTTCTTATGGTTTGGTCCCAGGGCTTCGGGAGGTATAAGGGGAAAATGTGT	0	-	2779428	2779480	0,0,255	
-chrY	2779428	2779480	TTTCTTATGGTTTGGTCCCAGGGCTTCGGGAGGTATAAGGGGAAAATGTGT	0	-	2779428	2779480	0,0,255	
-chrY	2779428	2779480	TTTCTTATGGTTTGGTCCCAGGGCTTCGGGAGGTATAAGGGGAAAATGTGT	0	-	2779428	2779480	0,0,255	
-chrY	2779428	2779480	TTTCTTATGGTTTGGTCCCAGGGCTTCGGGAGGTATAAGGGGAAAATGTGT	0	-	2779428	2779480	0,0,255	
-chrY	2779428	2779480	TTTCTTATGGTTTGGTCCCAGGGCTTCGGGAGGTATAAGGGGAAAATGTGT	0	-	2779428	2779480	0,0,255	
-chrY	2779428	2779480	TTTCTTATGGTTTGGTCCCAGGGCTTCGGGAGGTATAAGGGGAAAATGTGT	0	-	2779428	2779480	0,0,255	
-chrY	2779428	2779480	TTTCTTATGGTTTGGTCCCAGGGCTTCGGGAGGTATAAGGGGAAAATGTGT	0	-	2779428	2779480	0,0,255	
-chrY	2779428	2779480	TTTCTTATGGTTTGGTCCCAGGGCTTCGGGAGGTATAAGGGGAAAATGTGT	0	-	2779428	2779480	0,0,255	
-chrY	2779428	2779480	TTTCTTATGGTTTGGTCCCAGGGCTTCGGGAGGTATAAGGGGAAAATGTGT	0	-	2779428	2779480	0,0,255	
-chrY	2779428	2779480	TTTCTTATGGTTTGGTCCCAGGGCTTCGGGAGGTATAAGGGGAAAATGTGT	0	-	2779428	2779480	0,0,255	
-chrY	2779428	2779480	TTTCTTATGGTTTGGTCCCAGGGCTTCGGGAGGTATAAGGGGAAAATGTGT	0	-	2779428	2779480	0,0,255	
-chrY	2779428	2779480	TTTCTTATGGTTTGGTCCCAGGGCTTCGGGAGGTATAAGGGGAAAATGTGT	0	-	2779428	2779480	0,0,255	
-chrY	2779428	2779480	TTTCTTATGGTTTGGTCCCAGGGCTTCGGGAGGTATAAGGGGAAAATGTGT	0	-	2779428	2779480	0,0,255	
-chrY	2779428	2779480	TTTCTTATGGTTTGGTCCCAGGGCTTCGGGAGGTATAAGGGGAAAATGTGT	0	-	2779428	2779480	0,0,255	
-chrY	2779428	2779480	TTTCTTATGGTTTGGTCCCAGGGCTTCGGGAGGTATAAGGGGAAAATGTGT	0	-	2779428	2779480	0,0,255	
-chrY	2779428	2779480	TTTCTTATGGTTTGGTCCCAGGGCTTCGGGAGGTATAAGGGGAAAATGTGT	0	-	2779428	2779480	0,0,255	
-chrY	2779428	2779480	TTTCTTATGGTTTGGTCCCAGGGCTTCGGGAGGTATAAGGGGAAAATGTGT	0	-	2779428	2779480	0,0,255	
-chrY	2779428	2779480	TTTCTTATGGTTTGGTCCCAGGGCTTCGGGAGGTATAAGGGGAAAATGTGT	0	-	2779428	2779480	0,0,255	
-chrY	2779428	2779480	TTTCTTGTGGTTTGGTCCCAGGGCTTCGGGAGGTATAAGGGGAAAATGTGT	0	-	2779428	2779480	0,0,255	
-chrY	2779428	2779480	TTTCTTATGGTTTGGTCCCAGGGCTTCGGGAGGTATAAGGGGAAAATGTGT	0	-	2779428	2779480	0,0,255	
-chrY	2779428	2779480	TTTCTTATGGTTTGGTCCCAGGGCTTCGGGAGGTATAAGGGGAAAATGTGT	0	-	2779428	2779480	0,0,255	
-chrY	2779428	2779480	TTTCTTATGGTTTGGTCCCAGGGCTTCGGGAGGTATAAGGGGAAAATGTGT	0	-	2779428	2779480	0,0,255	
-chrY	2779428	2779480	TTTCTTATGGTTTGGTCCCAGGGCTTCGGGAGGTATAAGGGGAAAATGTGT	0	-	2779428	2779480	0,0,255	
-chrY	2779428	2779480	TTTCTTATGGTTTGGTCCCAGGGCTTCGGGAGGTATAAGGGGAAAATGTGT	0	-	2779428	2779480	0,0,255	
-chrY	2779428	2779480	TTTCTTATGGTTTGGTCCCAGGGCTTCGGGAGGTATAAGGGGAAAATGTGT	0	-	2779428	2779480	0,0,255	
-chrY	2779428	2779480	TTTCTTATGGTTTGGTCCCAGGGCTTCGGGAGGTATAAGGGGAAAATGTGT	0	-	2779428	2779480	0,0,255	
-chrY	2779683	2779735	ATCCCTCTGTGCCCTTGTTATATCATTTATTGTCTGAGGCAGTTCTGCTTG	0	+	2779683	2779735	255,0,0	
-chrY	2779683	2779735	ATCCCTCTGTGCCCTTGTTATATCATTTATTGTCTGAGGCAGTTCTGCTTG	0	+	2779683	2779735	255,0,0	
-chrY	2779683	2779735	ATCCCTCTGTGCCCTTGTTATATCATTTATTGTCTGAGGCAGTTCTGCTTG	0	+	2779683	2779735	255,0,0	
-chrY	2779695	2779747	CCTTGTTATATCATTTATTGTCTGAGGCAGTTCTGCTTGGCTGCTTAGTGA	0	+	2779695	2779747	255,0,0	
-chrY	2779695	2779747	CCTTGTTATATCATTTATTGTCTGAGGCAGTTCTGCTTGGCTGCTTAGTGA	0	+	2779695	2779747	255,0,0	
-chrY	2779695	2779747	CCTTGTTATATCATTTATTGTCTGAGGCAGTTCTGCTTGGCTGCTTAGTGA	0	+	2779695	2779747	255,0,0	
-chrY	2779695	2779747	CCTTGTTATATCATTTATTGTCTGAGGCAGTTCTGCTTGGCTGCTTAGTGA	0	+	2779695	2779747	255,0,0	
-chrY	2779695	2779747	CCTTGTTATATCATTTATTGTCTGAGGCAGTTCTGCTTGGCTGCTTAGTGA	0	+	2779695	2779747	255,0,0	
-chrY	2779695	2779747	CCTTGTTATATCATTTATTGTCTGAGGCAGTTCTGCTTGGCTGCTTAGTGA	0	+	2779695	2779747	255,0,0	
-chrY	2779695	2779747	CCTTGTTATATCATTTATTGTCTGAGGCAGTTCTGCTTGGCTGCTTAGTGA	0	+	2779695	2779747	255,0,0	
-chrY	2779695	2779747	CCTTGTTATATCATTTATTGTCTGAGGCAGTTCTGCTTGGCTGCTTAGTGA	0	+	2779695	2779747	255,0,0	
-chrY	2779695	2779747	CCTTGTTATATCATTTATTGTCTGAGGCAGTTCTGCTTGGCTGCTTAGTGA	0	+	2779695	2779747	255,0,0	
-chrY	2779695	2779747	CCTTGTTATATCATTTATTGTCTGAGGCAGTTCTGCTTGGCTGCTTAGTGA	0	+	2779695	2779747	255,0,0	
-chrY	2779695	2779747	CCTTGTTATATCATTTATTGTCTGAGGCAGTTCTGCTTGGCTGCTTAGTGA	0	+	2779695	2779747	255,0,0	
-chrY	2779695	2779747	CCTTGTTATATCATTTATTGTCTGAGGCAGTTCTGCTTGGCTGCTTAGTGA	0	+	2779695	2779747	255,0,0	
-chrY	2779695	2779747	CCTTGTTATATCATTTATTGTCTGAGGCAGTTCTGCTTGGCTGCTTAGTGA	0	+	2779695	2779747	255,0,0	
-chrY	2779695	2779747	CCTTGTTATATCATTTATTGTCTGAGGCAGTTCTGCTTGGCTGCTTAGTGA	0	+	2779695	2779747	255,0,0	
-chrY	2779695	2779747	CCTTGTTATATCATTTATTGTCTGAGGCAGTTCTGCTTGGCTGCTTAGTGA	0	+	2779695	2779747	255,0,0	
-chrY	2779695	2779747	CCTTGTTATATCATTTATTGTCTGAGGCAGTTCTGCTTGGCTGCTTAGTGA	0	+	2779695	2779747	255,0,0	
-chrY	2779695	2779747	CCTTGTTATATCATTTATTGTCTGAGGCAGTTCTGCTTGGCTGCTTAGTGA	0	+	2779695	2779747	255,0,0	
-chrY	2779695	2779747	CCTTGTTATATCATTTATTGTCTGAGGCAGTTCTGCTTGGCTGCTTAGTGA	0	+	2779695	2779747	255,0,0	
-chrY	2779695	2779747	CCTTGTTATATCATTTATTGTCTGAGGCAGTTCTGCTTGGCTGCTTAGTGA	0	+	2779695	2779747	255,0,0	
-chrY	2779735	2779787	CTGCTTAGTGAACCTCCTTTCAGTACCCTGGACACTCTGTGTCTGTGTCCA	0	-	2779735	2779787	0,0,255	
-chrY	2779735	2779787	CTGCTTAGTGAACCTCCTTTCAGTACCCTGGACACTCTGTGTCTGTGTCCA	0	-	2779735	2779787	0,0,255	
-chrY	2779735	2779787	CTGCTTAGTGAACCTCCTTTCAGTACCCTGGACACTCTGTGTCTGTGTCCA	0	-	2779735	2779787	0,0,255	
-chrY	2779789	2779841	TCTCCCTCTGCCTCATCTCACGTAAGTATTTTGCCTACTGTAGCACCACAG	0	+	2779789	2779841	255,0,0	
-chrY	2779789	2779841	TCTCCCTCTGCCTCATCTCACGTAAGTATTTTGCCTACTGTAGCACCACAG	0	+	2779789	2779841	255,0,0	
-chrY	2779789	2779841	TCTCCCTCTGCCTCATCTCACGTAAGTATTTTGCCTACTGTAGCACCACAG	0	+	2779789	2779841	255,0,0	
-chrY	2779789	2779841	TCTCCCTCTGCCTCATCTCACGTAAGTATTTTGCCTACTGTAGCACCACAG	0	+	2779789	2779841	255,0,0	
-chrY	2779789	2779841	TCTCCCTCTGCCTCATCTCACGTAAGTATTTTGCCTACTGTAGCACCACAG	0	+	2779789	2779841	255,0,0	
-chrY	2779789	2779841	TCTCCCTCTGCCTCATCTCACGTAAGTATTTTGCCTACTGTAGCACCACAG	0	+	2779789	2779841	255,0,0	
-chrY	2779789	2779841	TCTCCCTCTGCCTCATCTCACGTAAGTATTTTGCCTACTGTAGCACCACAG	0	+	2779789	2779841	255,0,0	
-chrY	2779789	2779841	TCTCCCTCTGCCTCATCTCACGTAAGTATTTTGCCTACTGTAGCACCACAG	0	+	2779789	2779841	255,0,0	
-chrY	2779789	2779841	TCTCCCTCTGCCTCATCTCACGTAAGTATTTTGCCTACTGTAGCACCACAG	0	+	2779789	2779841	255,0,0	
-chrY	2779789	2779841	TCTCCCTCTGCCTCATCTCACGTAAGTATTTTGCCTACTGTAGCACCACAG	0	+	2779789	2779841	255,0,0	
-chrY	2779789	2779841	TCTCCCTCTGCCTCATCTCACGTAAGTATTTTGCCTACTGTAGCACCACAG	0	+	2779789	2779841	255,0,0	
-chrY	2779789	2779841	TCTCCCTCTGCCTCATCTCACGTAAGTATTTTGCCTACTGTAGCACCACAG	0	+	2779789	2779841	255,0,0	
-chrY	2779789	2779841	TCTCCCTCTGCCTCATCTCACGTAAGTATTTTGCCTACTGTAGCACCACAG	0	+	2779789	2779841	255,0,0	
-chrY	2779789	2779841	TCTCCCTCTGCCTCATCTCACGTAAGTATTTTGCCTACTGTAGCACCACAG	0	+	2779789	2779841	255,0,0	
-chrY	2779789	2779841	TCTCCCTCTGCCTCATCTCACGTAAGTATTTTGCCTACTGTAGCACCACAG	0	+	2779789	2779841	255,0,0	
-chrY	2779789	2779841	TCTCCCTCTGCCTCATCTCACGTAAGTATTTTGCCTACTGTAGCACCACAG	0	+	2779789	2779841	255,0,0	
-chrY	2779789	2779841	TCTCCCTCTGCCTCATCTCACGTAAGTATTTTGCCTACTGTAGCACCACAG	0	+	2779789	2779841	255,0,0	
-chrY	2779789	2779841	TCTCCCTCTGCCTCATCTCACGTAAGTATTTTGCCTACTGTAGCACCACAG	0	+	2779789	2779841	255,0,0	
-chrY	2779789	2779841	TCTCCCTCTGCCTCATCTCACGTAAGTATTTTGCCTACTGTAGCACCACAG	0	+	2779789	2779841	255,0,0	
-chrY	2779789	2779841	TCTCCCTCTGCCTCATCTCACGTAAGTATTTTGCCTACTGTAGCACCACAG	0	+	2779789	2779841	255,0,0	
-chrY	2779810	2779862	GTAAGTATTTTGCCTACTGTAGCACCACAGCTTGATGATTTTCTGTTCTGG	0	-	2779810	2779862	0,0,255	
-chrY	2779810	2779862	GTAAGTATTTTGCCTACTGTAGCACCACAGCTTGATGATTTTCTGTTCTGG	0	-	2779810	2779862	0,0,255	
-chrY	2779810	2779862	GTAAGTATTTTGCCTACTGTAGCACCACAGCTTGATGATTTTCTGTTCTGG	0	-	2779810	2779862	0,0,255	
-chrY	2779810	2779862	GTAAGTATTTTGCCTACTGTAGCACCACAGCTTGATGATTTTCTGTTCTGG	0	-	2779810	2779862	0,0,255	
-chrY	2779810	2779862	GTAAGTATTTTGCCTACTGTAGCACCACAGCTTGATGATTTTCTGTTCTGG	0	-	2779810	2779862	0,0,255	
-chrY	2779810	2779862	GTAAGTATTTTGCCTACTGTAGCACCACAGCTTGATGATTTTCTGTTCTGG	0	-	2779810	2779862	0,0,255	
-chrY	2779810	2779862	GTAAGTATTTTGCCTACTGTAGCACCACAGCTTGATGATTTTCTGTTCTGG	0	-	2779810	2779862	0,0,255	
-chrY	2779810	2779862	GTAAGTATTTTGCCTACTGTAGCACCACAGCTTGATGATTTTCTGTTCTGG	0	-	2779810	2779862	0,0,255	
-chrY	2779810	2779862	GTAAGTATTTTGCCTACTGTAGCACCACAGCTTGATGATTTTCTGTTCTGG	0	-	2779810	2779862	0,0,255	
-chrY	2779810	2779862	GTAAGTATTTTGCCTACTGTAGCACCACAGCTTGATGATTTTCTGTTCTGG	0	-	2779810	2779862	0,0,255	
-chrY	2779810	2779862	GTAAGTATTTTGCCTACTGTAGCACCACAGCTTGATGATTTTCTGTTCTGG	0	-	2779810	2779862	0,0,255	
-chrY	2779810	2779862	GTAAGTATTTTGCCTACTGTAGCACCACAGCTTGATGATTTTCTGTTCTGG	0	-	2779810	2779862	0,0,255	
-chrY	2779810	2779862	GTAAGTATTTTGCCTACTGTAGCACCACAGCTTGATGATTTTCTGTTCTGG	0	-	2779810	2779862	0,0,255	
-chrY	2779810	2779862	GTAAGTATTTTGCCTACTGTAGCACCACAGCTTGATGATTTTCTGTTCTGG	0	-	2779810	2779862	0,0,255	
-chrY	2779810	2779862	GTAAGTATTTTGCCTACTGTAGCACCACAGCTTGATGATTTTCTGTTCTGG	0	-	2779810	2779862	0,0,255	
-chrY	2779810	2779862	GTAAGTATTTTGCCTACTGTAGCACCACAGCTTGATGATTTTCTGTTCTGG	0	-	2779810	2779862	0,0,255	
-chrY	2779810	2779862	GTAAGTATTTTGCCTACTGTAGCACCACAGCTTGATGATTTTCTGTTCTGG	0	-	2779810	2779862	0,0,255	
-chrY	2779810	2779862	GTAAGTATTTTGCCTACTGTAGCACCACAGCTTGATGATTTTCTGTTCTGG	0	-	2779810	2779862	0,0,255	
-chrY	2779810	2779862	GTAAGTATTTTGCCTACTGTAGCACCACAGCTTGATGATTTTCTGTTCTGG	0	-	2779810	2779862	0,0,255	
-chrY	2779899	2779951	TCTGTCTTCTCTTATGGGGATGTTTATACCTGATTGGAAGGAATGTGCCAA	0	-	2779899	2779951	0,0,255	
-chrY	2779899	2779951	TCTGTCTTCTCTTATGGGGATGTTTATACCTGATTGGAAGGAATGTGCCAA	0	-	2779899	2779951	0,0,255	
-chrY	2779899	2779951	TCTGTCTTCTCTTATGGGGATGTTTATACCTGATTGGAAGGAATGTGCCAA	0	-	2779899	2779951	0,0,255	
-chrY	2779899	2779951	TCTGTCTTCTCTTATGGGGATGTTTATACCTGATTGGAAGGAATGTGCCAA	0	-	2779899	2779951	0,0,255	
-chrY	2779899	2779951	TCTGTCTTCTCTTATGGGGATGTTTATACCTGATTGGAAGGAATGTGCCAA	0	-	2779899	2779951	0,0,255	
-chrY	2779899	2779951	TCTGTCTTCTCTTATGGGGATGTTTATACCTGATTGGAAGGAATGTGCCAA	0	-	2779899	2779951	0,0,255	
-chrY	2779899	2779951	TCTGTCTTCTCTTATGGGGATGTTTATACCTGATTGGAAGGAATGTGCCAA	0	-	2779899	2779951	0,0,255	
-chrY	2779899	2779951	TCTGTCTTCTCTTATGGGGATGTTTATACCTGATTGGAAGGAATGTGCCAA	0	-	2779899	2779951	0,0,255	
-chrY	2779899	2779951	TCTGTCTTCTCTTATGGGGATGTTTATACCTGATTGGAAGGAATGTGCCAA	0	-	2779899	2779951	0,0,255	
-chrY	2779899	2779951	TCTGTCTTCTCTTATGGGGATGTTTATACCTGATTGGAAGGAATGTGCCAA	0	-	2779899	2779951	0,0,255	
-chrY	2779899	2779951	TCTGTCTTCTCTTATGGGGATGTTTATACCTGATTGGAAGGAATGTGCCAA	0	-	2779899	2779951	0,0,255	
-chrY	2779899	2779951	TCTGTCTTCTCTTATGGGGATGTTTATACCTGATTGGAAGGAATGTGCCAA	0	-	2779899	2779951	0,0,255	
-chrY	2779899	2779951	TCTGTCTTCTCTTATGGGGATGTTTATACCTGATTGGAAGGAATGTGCCAA	0	-	2779899	2779951	0,0,255	
-chrY	2779899	2779951	TCTGTCTTCTCTTATGGGGATGTTTATACCTGATTGGAAGGAATGTGCCAA	0	-	2779899	2779951	0,0,255	
-chrY	2779899	2779951	TCTGTCTTCTCTTATGGGGATGTTTATACCTGATTGGAAGGAATGTGCCAA	0	-	2779899	2779951	0,0,255	
-chrY	2779899	2779951	TCTGTCTTCTCTTATGGGGATGTTTATACCTGATTGGAAGGAATGTGCCAA	0	-	2779899	2779951	0,0,255	
-chrY	2779899	2779951	TCTGTCTTCTCTTATGGGGATGTTTATACCTGATTGGAAGGAATGTGCCAA	0	-	2779899	2779951	0,0,255	
-chrY	2779899	2779951	TCTGTCTTCTCTTATGGGGATGTTTATACCTGATTGGAAGGAATGTGCCAA	0	-	2779899	2779951	0,0,255	
-chrY	2779899	2779951	TCTGTCTTCTCTTATGGGGATGTTTATACCTGATTGGAAGGAATGTGCCAA	0	-	2779899	2779951	0,0,255	
-chrY	2779899	2779951	TCTGTCTTCTCTTATGGGGATGTTTATACCTGATTGGAAGGAATGTGCCAA	0	-	2779899	2779951	0,0,255	
-chrY	2780254	2780306	ATTGTCCTTTAGGGCCAAGTTCTGGACCCAAAGGCATTCCTAAAGTTAATT	0	+	2780254	2780306	255,0,0	
-chrY	2780254	2780306	ATTGTCCTTTAGGGCCAAGTTCTGGACCCAAAGGCATTCCTAAAGTTAATT	0	+	2780254	2780306	255,0,0	
-chrY	2780254	2780306	ATTGTCCTTTAGGGCCAAGTTCTGGACCCAAAGGCATTCCTAAAGTTAATT	0	+	2780254	2780306	255,0,0	
-chrY	2780254	2780306	ATTGTCCTTTAGGGCCAAGTTCTGGACCCAAAGGCATTCCTAAAGTTAATT	0	+	2780254	2780306	255,0,0	
-chrY	2780254	2780306	ATTGTCCTTTAGGGCCAAGTTCTGGACCCAAAGGCATTCCTAAAGTTAATT	0	+	2780254	2780306	255,0,0	
-chrY	2780254	2780306	ATTGTCCTTTAGGGCCAAGTTCTGGACCCAAAGGCATTCCTAAAGTTAATT	0	+	2780254	2780306	255,0,0	
-chrY	2780254	2780306	ATTGTCCTTTAGGGCCAAGTTCTGGACCCAAAGGCATTCCTAAAGTTAATT	0	+	2780254	2780306	255,0,0	
-chrY	2780254	2780306	ATTGTCCTTTAGGGCCAAGTTCTGGACCCAAAGGCATTCCTAAAGTTAATT	0	+	2780254	2780306	255,0,0	
-chrY	2780254	2780306	ATTGTCCTTTAGGGCCAAGTTCTGGACCCAAAGGCATTCCTAAAGTTAATT	0	+	2780254	2780306	255,0,0	
-chrY	2780254	2780306	ATTGTCCTTTAGGGCCAAGTTCTGGACCCAAAGGCATTCCTAAAGTTAATT	0	+	2780254	2780306	255,0,0	
-chrY	2780385	2780437	TCAGCCTAATTGTCCCTTGAAGTGCTTCCAACTTTTCTTTTAAGAGCTTTA	0	-	2780385	2780437	0,0,255	
-chrY	2780385	2780437	TCAGCCTAATTGTCCCTTGAAGTGCTTCCAACTTTTCTTTTAAGAGCTTTA	0	-	2780385	2780437	0,0,255	
-chrY	2780385	2780437	TCAGCCTAATTGTCCCTTGAAGTGCTTCCAACTTTTCTTTTAAGAGCTTTA	0	-	2780385	2780437	0,0,255	
-chrY	2780385	2780437	TCAGCCTAATTGTCCCTTGAAGTGCTTCCAACTTTTCTTTTAAGAGCTTTA	0	-	2780385	2780437	0,0,255	
-chrY	2780385	2780437	TCAGCCTAATTGTCCCTTGAAGTGCTTCCAACTTTTCTTTTAAGAGCTTTA	0	-	2780385	2780437	0,0,255	
-chrY	2780385	2780437	TCAGCCTAATTGTCCCTTGAAGTGCTTCCAACTTTTCTTTTAAGAGCTTTA	0	-	2780385	2780437	0,0,255	
-chrY	2780385	2780437	TCAGCCTAATTGTCCCTTGAAGTGCTTCCAACTTTTCTTTTAAGAGCTTTA	0	-	2780385	2780437	0,0,255	
-chrY	2780385	2780437	TCAGCCTAATTGTCCCTTGAAGTGCTTCCAACTTTTCTTTTAAGAGCTTTA	0	-	2780385	2780437	0,0,255	
-chrY	2780385	2780437	TCAGCCTAATTGTCCCTTGAAGTGCTTCCAACTTTTCTTTTAAGAGCTTTA	0	-	2780385	2780437	0,0,255	
-chrY	2780385	2780437	TCAGCCTAATTGTCCCTTGAAGTGCTTCCAACTTTTCTTTTAAGAGCTTTA	0	-	2780385	2780437	0,0,255	
-chrY	2780563	2780615	GCAGCTTTCAATTCTTTGCTTAACTCACTGGCCAGGAAAGCTGGAAATGAT	0	+	2780563	2780615	255,0,0	
-chrY	2780563	2780615	GCAGCTTTCAATTCTTTGCTTAACTCACTGGCCAGGAAAGCTGGAAATGAT	0	+	2780563	2780615	255,0,0	
-chrY	2780563	2780615	GCAGCTTTCAATTCTTTGCTTAACTCACTGGCCAGGAAAGCTGGAAATGAT	0	+	2780563	2780615	255,0,0	
-chrY	2780563	2780615	GCAGCTTTCAATTCTTTGCTTAACTCACTGGCCAGGAAAGCTGGAAATGAT	0	+	2780563	2780615	255,0,0	
-chrY	2780563	2780615	GCAGCTTTCAATTCTTTGCTTAACTCACTGGCCAGGAAAGCTGGAAATGAT	0	+	2780563	2780615	255,0,0	
-chrY	2780563	2780615	GCAGCTTTCAATTCTTTGCTTAACTCACTGGCCAGGAAAGCTGGAAATGAT	0	+	2780563	2780615	255,0,0	
-chrY	2780563	2780615	GCAGCTTTCAATTCTTTGCTTAACTCACTGGCCAGGAAAGCTGGAAATGAT	0	+	2780563	2780615	255,0,0	
-chrY	2780563	2780615	GCAGCTTTCAATTCTTTGCTTAACTCACTGGCCAGGAAAGCTGGAAATGAT	0	+	2780563	2780615	255,0,0	
-chrY	2780563	2780615	GCAGCTTTCAATTCTTTGCTTAACTCACTGGCCAGGAAAGCTGGAAATGAT	0	+	2780563	2780615	255,0,0	
-chrY	2780563	2780615	GCAGCTTTCAATTCTTTGCTTAACTCACTGGCCAGGAAAGCTGGAAATGAT	0	+	2780563	2780615	255,0,0	
-chrY	2780563	2780615	GCAGCTTTCAATTCTTTGCTTAACTCACTGGCCAGGAAAGCTGGAAATGAT	0	+	2780563	2780615	255,0,0	
-chrY	2780563	2780615	GCAGCTTTCAATTCTTTGCTTAACTCACTGGCCAGGAACGCTGGCAATGAT	0	+	2780563	2780615	255,0,0	
-chrY	2780563	2780615	GCAGCTTTCAATTCTTTGCTTAACTCACTGGCCAGGAAAGCTGGAAATGAT	0	+	2780563	2780615	255,0,0	
-chrY	2780563	2780615	GCAGCTTTCAATTCTTTGCTTAACTCACTGGCCAGGAAAGCTGGAAATGAT	0	+	2780563	2780615	255,0,0	
-chrY	2780640	2780692	AAATATGAGGTGGTGGTGGCAAACAAACTGACCACTCATTGGAGAATGCCT	0	+	2780640	2780692	255,0,0	
-chrY	2780640	2780692	AAATATGAGGTGGTGGTGGCAAACAAACTGAACACTCATTGGAGAATGCCT	0	+	2780640	2780692	255,0,0	
-chrY	2780640	2780692	AAATATGAGGTGGTGGTGGCAAACAAACTGAACACTCATTGGAGAATGCCT	0	+	2780640	2780692	255,0,0	
-chrY	2780640	2780692	AAATATGAGGTGGTGGTGGCAAACAAACTGAACACTCATTGGAGAATGCCT	0	+	2780640	2780692	255,0,0	
-chrY	2780640	2780692	AAATATGAGGTGGTGGTGGCAAACAAACTGAACACTCATTGGAGAATGCCT	0	+	2780640	2780692	255,0,0	
-chrY	2780640	2780692	AAATATGAGGTGGTGGTGGCAAACAAACTGAACACTCATTGGAGAATGCCT	0	+	2780640	2780692	255,0,0	
-chrY	2780701	2780753	GTCAACTGTGAAGTTTTGATTTGAAGAGCGTGCTCTCATTAGATTGACTGC	0	-	2780701	2780753	0,0,255	
-chrY	2780701	2780753	GTCAACTGTGAAGTTTTGATTTGAAGAGCGTGCTCTCATTAGATTGACTGC	0	-	2780701	2780753	0,0,255	
-chrY	2780701	2780753	GTCAACTGTGAAGTTTTGATTTGAAGAGCGTGCTCTCATTAGATTGACTGC	0	-	2780701	2780753	0,0,255	
-chrY	2780701	2780753	GTCAACTGTGAAGTTTTGATTTGAAGAGCGTGCTCTCATTAGATTGACTGC	0	-	2780701	2780753	0,0,255	
-chrY	2780701	2780753	GTCAACTGTGAAGTTTTGATTTGAAGAGCGTGCTCTCATTAGATTGACTGC	0	-	2780701	2780753	0,0,255	
-chrY	2780701	2780753	GTCAACTGTGAAGTTTTGATTTGAAGAGCGTGCTCTCATTAGATTGACTGC	0	-	2780701	2780753	0,0,255	
-chrY	2780701	2780753	GTCAACTGTGAAGTTTTGATTTGAAGAGCGTGCTCTCATTAGATTGACTGC	0	-	2780701	2780753	0,0,255	
-chrY	2780701	2780753	GTCAACTGTGAAGTTTTGATTTGAAGAGCGTGCTCTCATTAGATTGACTGC	0	-	2780701	2780753	0,0,255	
-chrY	2780701	2780753	GTCAACTGTGAAGTTTTGATTTGAAGAGCGTGCTCTCATTAGATTGACTGC	0	-	2780701	2780753	0,0,255	
-chrY	2780701	2780753	GTCAACTGTGAAGTTTTGATTTGAAGAGCGTGCTCTCATTAGATTGACTGC	0	-	2780701	2780753	0,0,255	
-chrY	2780701	2780753	GTCAACTGTGAAGTTTTGATTTGAAGAGCGTGCTCTCATTAGATTGACTGC	0	-	2780701	2780753	0,0,255	
-chrY	2780701	2780753	GTCAACTGTGAAGTTTTGATTTGAAGAGCGTGCTCTCATTAGATTGACTGC	0	-	2780701	2780753	0,0,255	
-chrY	2780701	2780753	GTCAACTGTGAAGTTTTGATTTGAAGAGCGTGCTCTCATTAGATTGACTGC	0	-	2780701	2780753	0,0,255	
-chrY	2780701	2780753	GTCAACTGTGAAGTTTTGATTTGAAGAGCGTGCTCTCATTAGATTGACTGC	0	-	2780701	2780753	0,0,255	
-chrY	2781475	2781527	CAAAGCTGAAAGAAAACCCACTTTGTCACTTCTGAGCGGTGACAGTCCATG	0	+	2781475	2781527	255,0,0	
-chrY	2781475	2781527	CAAAGCTGAAAGAAAACCCACTTTGTCACTTCTGAGCGGTGACAGTCCATG	0	+	2781475	2781527	255,0,0	
-chrY	2781475	2781527	CAAAGCTGAAAGAAAACCCACTTTGTCACTTCTGAGCGGTGACAGTCCATG	0	+	2781475	2781527	255,0,0	
-chrY	2781475	2781527	CAAAGCTGAAAGAAAACCCACTTTGTCACTTCTGAGCGGTGACAGTCCATG	0	+	2781475	2781527	255,0,0	
-chrY	2781475	2781527	CAAAGCTGAAAGAAAACCCACTTTGTCACTTCTGAGCGGTGACAGTCCATG	0	+	2781475	2781527	255,0,0	
-chrY	2781475	2781527	CAAAGCTGAAAGAAAACCCACTTTGTCACTTCTGAGCGGTGACAGTCCATG	0	+	2781475	2781527	255,0,0	
-chrY	2781475	2781527	CAAAGCTGAAAGAAAACCCACTTTGTCACTTCTGAGCGGTGACAGTCCATG	0	+	2781475	2781527	255,0,0	
-chrY	2781475	2781527	CAAAGCTGAAAGAAAACCCACTTTGTCACTTCTGAGCGGTGACAGTCCATG	0	+	2781475	2781527	255,0,0	
-chrY	2781475	2781527	CAAAGCTGAAAGAAAACCCACTTTGTCACTTCTGAGCGGTGACAGTCCATG	0	+	2781475	2781527	255,0,0	
-chrY	2781475	2781527	CAAAGCTGAAAGAAAACCCACTTTGTCACTTCTGAGCGGTGACAGTCCATG	0	+	2781475	2781527	255,0,0	
-chrY	2781572	2781624	TATGTTTGTTTGAGATTACATAGTGTACCATTTGAATCTCCTGAAAATTGC	0	-	2781572	2781624	0,0,255	
-chrY	2781572	2781624	TATGTTTGTTTGAGATTACATAGTGTACCATTTGAATCTCCTGAAAATTGC	0	-	2781572	2781624	0,0,255	
-chrY	2781572	2781624	TATGTTTGTTTGAGATTACATAGTGTACCATTTGAATCTCCTGAAAATTGC	0	-	2781572	2781624	0,0,255	
-chrY	2781572	2781624	TATGTTTGTTTGAGATTACATAGTGTACCATTTGAATCTCCTGAAAATTGC	0	-	2781572	2781624	0,0,255	
-chrY	2781572	2781624	TATGTTGGTTTGAGATTACATAGTGTACCATTTGAATCTCCTGAAAATTGC	0	-	2781572	2781624	0,0,255	
-chrY	2781572	2781624	TATGTTTGTTTGAGATTACATAGTGTACCATTTGAATCTCCTGAAAATTGC	0	-	2781572	2781624	0,0,255	
-chrY	2781572	2781624	TATGTTTGTTTGAGATTACATAGTGTACCATTTGAATCTCCTGAAAATTGC	0	-	2781572	2781624	0,0,255	
-chrY	2781572	2781624	TATGTTTGTTTGAGATTACATAGTGTACCATTTGAATCTCCTGAAAATTGC	0	-	2781572	2781624	0,0,255	
-chrY	2781572	2781624	TATGTTTGTTTGAGATTACATAGTGTACCATTTGAATCTCCTGAAAATTGC	0	-	2781572	2781624	0,0,255	
-chrY	2781572	2781624	TATGTTTGTTTGAGATTACATAGTGTACCATTTGAATCTCCTGAAAATTGC	0	-	2781572	2781624	0,0,255	
-chrY	2781670	2781722	CTTGGTATGAGACATTTTGAACTCCTCCTGCTGATAGATGTCACGAGCAAC	0	+	2781670	2781722	255,0,0	
-chrY	2781670	2781722	CTTGGTATGAGACATTTTGAACTCCTCCTGCTGATAGATGTCACGAGCAAC	0	+	2781670	2781722	255,0,0	
-chrY	2781670	2781722	CTTGGTATGAGACATTTTGAACTCCTCCTGCTGATAGATGTCACGAGCAAC	0	+	2781670	2781722	255,0,0	
-chrY	2781670	2781722	CTTGGTATGAGACATTTTGAACTCCTCCTGCTGATAGATGTCACGAGCAAC	0	+	2781670	2781722	255,0,0	
-chrY	2781670	2781722	CTTGGTATGAGACATTTTGAACTCCTCCTGCTGATAGATGTCACGAGCAAC	0	+	2781670	2781722	255,0,0	
-chrY	2781670	2781722	CTTGGTATGAGACATTTTGAACTCCTCCTGCTGATAGATGTCACGAGCAAC	0	+	2781670	2781722	255,0,0	
-chrY	2781670	2781722	CTTGGTATGAGACATTTTGAACTCCTCCTGCTGATAGATGTCACGAGCAAC	0	+	2781670	2781722	255,0,0	
-chrY	2781670	2781722	CTTGGTATGAGACATTTTGAACTCCTCCTGCTGATAGATGTCACGAGCAAC	0	+	2781670	2781722	255,0,0	
-chrY	2781670	2781722	CTTGGTATGAGACATTTTGAACTCCTCCTGCTGATAGATGTCACGAGCAAC	0	+	2781670	2781722	255,0,0	
-chrY	2781670	2781722	CTTGGTATGAGACATTTTGAACTCCTCCTGCTGATAGATGTCACGAGCAAC	0	+	2781670	2781722	255,0,0	
-chrY	2781670	2781722	CTTGGTATGAGACATTTTGAACTCCTCCTGCTGATAGATGTCACGAGCAAC	0	+	2781670	2781722	255,0,0	
-chrY	2781670	2781722	CTTGGTATGAGACATTTTGAACTCCTCCTGCTGATAGATGTCACGAGCAAC	0	+	2781670	2781722	255,0,0	
-chrY	2781670	2781722	CTTGGTATGAGACATTTTGAACTCCTCCTGCTGATAGATGTCACGAGCAAC	0	+	2781670	2781722	255,0,0	
-chrY	2781670	2781722	CTTGGTATGAGACATTTTGAACTCCTCCTGCTGATAGATGTCACGAGCAAC	0	+	2781670	2781722	255,0,0	
-chrY	2781670	2781722	CTTGGTATGAGACATTTTGAACTCCTCCTGCTGATAGATGTCACGAGCAAC	0	+	2781670	2781722	255,0,0	
-chrY	2781670	2781722	CTTGGTATGAGACATTTTGAACTCCTCCTGCTGATAGATGTCACGAGCAAC	0	+	2781670	2781722	255,0,0	
-chrY	2781670	2781722	CTTGGTATGAGACATTTTGAACTCCTCCTGCTGATAGATGTCACGAGCAAC	0	+	2781670	2781722	255,0,0	
-chrY	2781670	2781722	CTTGGTATGAGACATTTTGAACTCCTCCTGCTGATAGATGTCACGAGCAAC	0	+	2781670	2781722	255,0,0	
-chrY	2781670	2781722	CTTGGTATGAGACATTTTGAACTCCTCCTGCTGATAGATGTCACGAGCAAC	0	+	2781670	2781722	255,0,0	
-chrY	2781670	2781722	CTTGGTATGAGACATTTTGAACTCCTCCTGCTGATAGATGTCACGAGCAAC	0	+	2781670	2781722	255,0,0	
-chrY	2781670	2781722	CTTGGTATGAGACATTTTGAACTCCTCCTGCTGATAGATGTCACGAGCAAC	0	+	2781670	2781722	255,0,0	
-chrY	2781670	2781722	CTTGGTATGAGACATTTTGAACTCCTCCTGCTGATAGATGTCACGAGCAAC	0	+	2781670	2781722	255,0,0	
-chrY	2781670	2781722	CTTGGTATGAGACATTTTGAACTCCTCCTGCTGATAGATGTCACGAGCAAC	0	+	2781670	2781722	255,0,0	
-chrY	2781670	2781722	CTTGGTATGAGACATTTTGAACTCCTCCTGCTGATAGATGTCACGAGCAAC	0	+	2781670	2781722	255,0,0	
-chrY	2781670	2781722	CTTGGTATGAGACATTTTGAACTCCTCCTGCTGATAGATGTCACGAGCAAC	0	+	2781670	2781722	255,0,0	
-chrY	2781670	2781722	CTTGGTATGAGACATTTTGAACTCCTCCTGCTGATAGATGTCACGAGCAAC	0	+	2781670	2781722	255,0,0	
-chrY	2781670	2781722	CTTGGTATGAGACATTTTGAACTCCTCCTGCTGATAGATGTCACGAGCAAC	0	+	2781670	2781722	255,0,0	
-chrY	2781670	2781722	CTTGGTATGAGACATTTTGAACTCCTCCTGCTGATAGATGTCACGAGCAAC	0	+	2781670	2781722	255,0,0	
-chrY	2781670	2781722	CTTGGTATGAGACATTTTGAACTCCTCCTGCTGATAGATGTCACGAGCAAC	0	+	2781670	2781722	255,0,0	
-chrY	2781670	2781722	CTTGGTATGAGACATTTTGAACTCCTCCTGCTGATAGATGTCACGAGCAAC	0	+	2781670	2781722	255,0,0	
-chrY	2781670	2781722	CTTGGTATGAGACATTTTGAACTCCTCCTGCTGATAGATGTCACGAGCAAC	0	+	2781670	2781722	255,0,0	
-chrY	2781670	2781722	CTTGGTATGAGACATTTTGAACTCCTCCTGCTGATAGATGTCACGAGCAAC	0	+	2781670	2781722	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781743	2781795	AAGGAATAAAGCAAGTAGTTAATGGGTTGTGCCATTTAAAAATGAGATGAG	0	+	2781743	2781795	255,0,0	
-chrY	2781797	2781849	GAGCAGCATTGTGTACAGAAAGCATGTAGCTGGCCGAGACAGCTGTTTTAC	0	-	2781797	2781849	0,0,255	
-chrY	2781797	2781849	GAGCAGCATTGTGTACAGAAAGCATGTAGCTGGCCGAGACAGCTGTTTTAC	0	-	2781797	2781849	0,0,255	
-chrY	2781797	2781849	GAGCAGCATTGTGTACAGAAAGCATGTAGCTGGCCGAGACAGCTGTTTTAC	0	-	2781797	2781849	0,0,255	
-chrY	2781797	2781849	GAGCAGCATTGTGTACAGAAAGCATGTAGCTGGCCGAGACAGCTGTTTTAC	0	-	2781797	2781849	0,0,255	
-chrY	2781797	2781849	GAGCAGCATTGTGTACAGAAAGCATGTAGCTGGCCGAGACAGCTGTTTTAC	0	-	2781797	2781849	0,0,255	
-chrY	2781797	2781849	GAGCAGCATTGTGTACAGAAAGCATGTAGCTGGCCGAGACAGCTGTTTTAC	0	-	2781797	2781849	0,0,255	
-chrY	2781797	2781849	GAGCAGCATTGTGTACAGAAAGCATGTAGCTGGCCGAGACAGCTGTTTTAC	0	-	2781797	2781849	0,0,255	
-chrY	2781797	2781849	GAGCAGCATTGTGTACAGAAAGCATGTAGCTGGCCGAGACAGCTGTTTTAC	0	-	2781797	2781849	0,0,255	
-chrY	2781797	2781849	GAGCAGCATTGTGTACAGAAAGCATGTAGCTGGCCGAGACAGCTGTTTTAC	0	-	2781797	2781849	0,0,255	
-chrY	2781797	2781849	GAGCAGCATTGTGTACAGAAAGCATGTAGCTGGCCGAGACAGCTGTTTTAC	0	-	2781797	2781849	0,0,255	
-chrY	2781797	2781849	GAGCAGCATTGTGTACAGAAAGCATGTAGCTGGCCGAGACAGCTGTTTTAC	0	-	2781797	2781849	0,0,255	
-chrY	2781797	2781849	GAGCAGCATTGTGTACAGAAAGCATGTAGCTGGCCGAGACAGCTGTTTTAC	0	-	2781797	2781849	0,0,255	
-chrY	2781797	2781849	GAGCAGCATTGTGTACAGAAAGCATGTAGCTGGCCGAGACAGCTGTTTTAC	0	-	2781797	2781849	0,0,255	
-chrY	2781797	2781849	GAGCAGCATTGTGTACAGAAAGCATGTAGCTGGCCGAGACAGCTGTTTTAC	0	-	2781797	2781849	0,0,255	
-chrY	2781797	2781849	GAGCAGCATTGTGTACAGAAAGCATGTAGCTGGCCGAGACAGCTGTTTTAC	0	-	2781797	2781849	0,0,255	
-chrY	2781797	2781849	GAGCAGCATTGTGTACAGAAAGCATGTAGCTGGCCGAGACAGCTGTTTTAC	0	-	2781797	2781849	0,0,255	
-chrY	2781797	2781849	GAGCAGCATTGTGTACAGAAAGCATGTAGCTGGCCGAGACAGCTGTTTTAC	0	-	2781797	2781849	0,0,255	
-chrY	2781797	2781849	GAGCAGCATTGTGTACAGAAAGCATGTAGCTGGCCGAGACAGCTGTTTTAC	0	-	2781797	2781849	0,0,255	
-chrY	2781797	2781849	GAGCAGCATTGTGTACAGAAAGCATGTAGCTGGCCGAGACAGCTGTTTTAC	0	-	2781797	2781849	0,0,255	
-chrY	2781797	2781849	GAGCAGCATTGTGTACAGAAAGCATGTAGCTGGCCGAGACAGCTGTTTTAC	0	-	2781797	2781849	0,0,255	
-chrY	2781797	2781849	GAGCAGCATTGTGTACAGAAAGCATGTAGCTGGCCGAGACAGCTGTTTTAC	0	-	2781797	2781849	0,0,255	
-chrY	2781797	2781849	GAGCAGCATTGTGTACAGAAAGCATGTAGCTGGCCGAGACAGCTGTTTTAC	0	-	2781797	2781849	0,0,255	
-chrY	2781797	2781849	GAGCAGCATTGTGTACAGAAAGCATGTAGCTGGCCGAGACAGCTGTTTTAC	0	-	2781797	2781849	0,0,255	
-chrY	2781797	2781849	GAGCAGCATTGTGTACAGAAAGCATGTAGCTGGCCGAGACAGCTGTTTTAC	0	-	2781797	2781849	0,0,255	
-chrY	2781797	2781849	GAGCAGCATTGTGTACAGAAAGCATGTAGCTGGCCGAGACAGCTGTTTTAC	0	-	2781797	2781849	0,0,255	
-chrY	2781797	2781849	GAGCAGCATTGTGTACAGAAAGCATGTAGCTGGCCGAGACAGCTGTTTTAC	0	-	2781797	2781849	0,0,255	
-chrY	2781797	2781849	GAGCAGCATTGTGTACAGAAAGCATGTAGCTGGCCGAGACAGCTGTTTTAC	0	-	2781797	2781849	0,0,255	
-chrY	2781797	2781849	GAGCAGCATTGTGTACAGAAAGCATGTAGCTGGCCGAGACAGCTGTTTTAC	0	-	2781797	2781849	0,0,255	
-chrY	2781797	2781849	GAGCAGCATTGTGTACAGAAAGCATGTAGCTGGCCGAGACAGCTGTTTTAC	0	-	2781797	2781849	0,0,255	
-chrY	2781797	2781849	GAGCAGCATTGTGTACAGAAAGCATGTAGCTGGCCGAGACAGCTGTTTTAC	0	-	2781797	2781849	0,0,255	
-chrY	2781797	2781849	GAGCAGCATTGTGTACAGAAAGCATGTAGCTGGCCGAGACAGCTGTTTTAC	0	-	2781797	2781849	0,0,255	
-chrY	2781797	2781849	GAGCAGCATTGTGTACAGAAAGCATGTAGCTGGCCGAGACAGCTGTTTTAC	0	-	2781797	2781849	0,0,255	
-chrY	2781864	2781916	AGCCTCATGATTTTTTTTTTTTTTGAGACAGAGTTTCACTCTTGTTGCCCA	0	-	2781864	2781916	0,0,255	
-chrY	2781864	2781916	AGCCTCATGATTTTTTTTTTTTTTGAGACAGAGTTTCACTCTTGTTGCCCA	0	-	2781864	2781916	0,0,255	
-chrY	2781864	2781916	AGCCTCATGATTTTTTTTTTTTTTGAGACAGAGTTTCACTCTTGTTGCCCA	0	-	2781864	2781916	0,0,255	
-chrY	2781864	2781916	AGCCTCATGATTTTTTTTTTTTTTGAGACAGAGTTTCACTCTTGTTGCCCA	0	-	2781864	2781916	0,0,255	
-chrY	2781864	2781916	AGCCTCATGATTTTTTTTTTTTTTGAGACAGAGTTTCACTCTTGTTGCCCA	0	-	2781864	2781916	0,0,255	
-chrY	2781973	2782025	CGACTTTCCTGCCTCAGCCTCCCGAGTAGGTGGGATTACAGGCTTGTGCCC	0	+	2781973	2782025	255,0,0	
-chrY	2782189	2782241	GTTCTTAGTAGTGGTAGAGTTAAGTTTGTCTCTGGGGCTCTTTGTTACCAC	0	-	2782189	2782241	0,0,255	
-chrY	2782189	2782241	GTTCTTAGTAGTGGTAGAGTTAAGTTTGTCTCTGGGGCTCTTTGTTACCAC	0	-	2782189	2782241	0,0,255	
-chrY	2782189	2782241	GTTCTTAGTAGTGGTAGAGTTAAGTTTGTCTCTGGGGCTCTTTGTTACCAC	0	-	2782189	2782241	0,0,255	
-chrY	2782189	2782241	GTTCTTAGTAGTGGTAGAGTTAAGTTTGTCTCTGGGGCTCTTTGTTACCAC	0	-	2782189	2782241	0,0,255	
-chrY	2782189	2782241	GTTCTTAGTAGTGGTAGAGTTAAGTTTGTCTCTGGGGCTCTTTGTTACCAC	0	-	2782189	2782241	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCCGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782506	2782558	GTTTTTCCCAAGAGCACTCCTTCTCTGACCGAGGAAATGCTGGAAATCGAT	0	-	2782506	2782558	0,0,255	
-chrY	2782528	2782580	CTCTGACCGAGGAAATGCTGGAAATCGATGGGATAAGTAATGTCTGGGTGA	0	+	2782528	2782580	255,0,0	
-chrY	2782537	2782589	AGGAAATGCTGGAAATCGATGGGATAAGTAATGTCTGGGTGACTGCTTTAG	0	-	2782537	2782589	0,0,255	
-chrY	2782582	2782634	CTTTAGGCTGGCTTTGTGTTTACATATTGAATTGATTTTCCTTGCTGTGTT	0	+	2782582	2782634	255,0,0	
-chrY	2782582	2782634	CTTTAGGCTGGCTTTGTGTTTACATATTGAATTGATTTTCCTTGCTGTGTT	0	+	2782582	2782634	255,0,0	
-chrY	2782582	2782634	CTTTAGGCTGGCTTTGTGTTTACATATTGAATTGATTTTCCTTGCTGTGTT	0	+	2782582	2782634	255,0,0	
-chrY	2782582	2782634	CTTTAGGCTGGCTTTGTGTTTACATATTGAATTGATTTTCCTTGCTGTGTT	0	+	2782582	2782634	255,0,0	
-chrY	2782582	2782634	CTTTAGGCTGGCTTTGTGTTTACATATTGAATTGATTTTCCTTGCTGTGTT	0	+	2782582	2782634	255,0,0	
-chrY	2782582	2782634	CTTTAGGCTGGCTTTGTGTTTACATATTGAATTGATTTTCCTTGCTGTGTT	0	+	2782582	2782634	255,0,0	
-chrY	2782582	2782634	CTTTAGGCTGGCTTTGTGTTTACATATTGAATTGATTTTCCTTGCTGTGTT	0	+	2782582	2782634	255,0,0	
-chrY	2782582	2782634	CTTTAGGCTGGCTTTGTGTTTACATATTGAATTGATTTTCCTTGCTGTGTT	0	+	2782582	2782634	255,0,0	
-chrY	2782582	2782634	CTTTAGGCTGGCTTTGTGTTTACATATTGAATTGATTTTCCTTGCTGTGTT	0	+	2782582	2782634	255,0,0	
-chrY	2782582	2782634	CTTTAGGCTGGCTTTGTGTTTACATATTGAATTGATTTTCCTTGCTGTGTT	0	+	2782582	2782634	255,0,0	
-chrY	2782582	2782634	CTTTAGGCTGGCTTTGTGTTTACATATTGAATTGATTTTCCTTGCTGTGTT	0	+	2782582	2782634	255,0,0	
-chrY	2782589	2782641	CTGGCTTTGTGTTTACATATTGAATTGATTTTCCTTGCTGTGTTTATAGTA	0	+	2782589	2782641	255,0,0	
-chrY	2782589	2782641	CTGGCTTTGTGTTTACATATTGAATTGATTTTCCTTGCTGTGTTTATAGTA	0	+	2782589	2782641	255,0,0	
-chrY	2782589	2782641	CTGGCTTTGTGTTTACATATTGAATTGATTTTCCTTGCTGTGTTTATAGTA	0	+	2782589	2782641	255,0,0	
-chrY	2782589	2782641	CTGGCTTTGTGTTTACATATTGAATTGATTTTCCTTGCTGTGTTTATAGTA	0	+	2782589	2782641	255,0,0	
-chrY	2782589	2782641	CTGGCTTTGTGTTTACATATTGAATTGATTTTCCTTGCTGTGTTTATAGTA	0	+	2782589	2782641	255,0,0	
-chrY	2782589	2782641	CTGGCTTTGTGTTTACATATTGAATTGATTTTCCTTGCTGTGTTTATAGTA	0	+	2782589	2782641	255,0,0	
-chrY	2782589	2782641	CTGGCTTTGTGTTTACATATTGAATTGATTTTCCTTGCTGTGTTTATAGTA	0	+	2782589	2782641	255,0,0	
-chrY	2782589	2782641	CTGGCTTTGTGTTTACATATTGAATTGATTTTCCTTGCTGTGTTTATAGTA	0	+	2782589	2782641	255,0,0	
-chrY	2782589	2782641	CTGGCTTTGTGTTTACATATTGAATTGATTTTCCTTGCTGTGTTTATAGTA	0	+	2782589	2782641	255,0,0	
-chrY	2782589	2782641	CTGGCTTTGTGTTTACATATTGAATTGATTTTCCTTGCTGTGTTTATAGTA	0	+	2782589	2782641	255,0,0	
-chrY	2782589	2782641	CTGGCTTTGTGTTTACATATTGAATTGATTTTCCTTGCTGTGTTTATAGTA	0	+	2782589	2782641	255,0,0	
-chrY	2782589	2782641	CTGGCTTTGTGTTTACATATTGAATTGATTTTCCTTGCTGTGTTTATAGTA	0	+	2782589	2782641	255,0,0	
-chrY	2782589	2782641	CTGGCTTTGTGTTTACATATTGAATTGATTTTCCTTGCTGTGTTTATAGTA	0	+	2782589	2782641	255,0,0	
-chrY	2782589	2782641	CTGGCTTTGTGTTTACATATTGAATTGATTTTCCTTGCTGTGTTTATAGTA	0	+	2782589	2782641	255,0,0	
-chrY	2782589	2782641	CTGGCTTTGTGTTTACATATTGAATTGATTTTCCTTGCTGTGTTTATAGTA	0	+	2782589	2782641	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	ACAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782632	2782684	GCAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGA	0	+	2782632	2782684	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGCACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782633	2782685	CAAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAA	0	+	2782633	2782685	255,0,0	
-chrY	2782634	2782686	AAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAAT	0	-	2782634	2782686	0,0,255	
-chrY	2782634	2782686	AAAGTACAAGTTGTGTAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAAT	0	-	2782634	2782686	0,0,255	
-chrY	2782634	2782686	AAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAAT	0	-	2782634	2782686	0,0,255	
-chrY	2782634	2782686	AAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAAT	0	-	2782634	2782686	0,0,255	
-chrY	2782634	2782686	AAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAAT	0	-	2782634	2782686	0,0,255	
-chrY	2782634	2782686	AAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAAT	0	-	2782634	2782686	0,0,255	
-chrY	2782634	2782686	AAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAAT	0	-	2782634	2782686	0,0,255	
-chrY	2782634	2782686	AAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAAT	0	-	2782634	2782686	0,0,255	
-chrY	2782634	2782686	AAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAAT	0	-	2782634	2782686	0,0,255	
-chrY	2782634	2782686	AAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTCGGAGTGAAGGGAAT	0	-	2782634	2782686	0,0,255	
-chrY	2782634	2782686	AAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTCGGAGTGAAGGGAAT	0	-	2782634	2782686	0,0,255	
-chrY	2782634	2782686	AAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTCGGAGTGAAGGGAAT	0	-	2782634	2782686	0,0,255	
-chrY	2782634	2782686	AAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTCGGAGTGAAGGGAAT	0	-	2782634	2782686	0,0,255	
-chrY	2782634	2782686	AAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTCGGAGTGAAGGGAAT	0	-	2782634	2782686	0,0,255	
-chrY	2782634	2782686	AAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTCGGAGTGAAGGGAAT	0	-	2782634	2782686	0,0,255	
-chrY	2782634	2782686	AAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTCGGAGTGAAGGGAAT	0	-	2782634	2782686	0,0,255	
-chrY	2782634	2782686	AAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTCGGAGTGAAGGGAAT	0	-	2782634	2782686	0,0,255	
-chrY	2782634	2782686	AAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTCGGAGTGAAGGGAAT	0	-	2782634	2782686	0,0,255	
-chrY	2782634	2782686	AAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTCGGAGTGAAGGGAAT	0	-	2782634	2782686	0,0,255	
-chrY	2782634	2782686	AAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTCGGAGTGAAGGGAAT	0	-	2782634	2782686	0,0,255	
-chrY	2782634	2782686	AAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTCGGAGTGAAGGGAAT	0	-	2782634	2782686	0,0,255	
-chrY	2782634	2782686	AAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTCGGAGTGAAGGGAAT	0	-	2782634	2782686	0,0,255	
-chrY	2782634	2782686	AAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTCGGAGTGAAGGGAAT	0	-	2782634	2782686	0,0,255	
-chrY	2782634	2782686	AAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTCGGAGTGAAGGGAAT	0	-	2782634	2782686	0,0,255	
-chrY	2782634	2782686	AAAGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTCGGAGTGAAGGGAAT	0	-	2782634	2782686	0,0,255	
-chrY	2782636	2782688	AGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCC	0	-	2782636	2782688	0,0,255	
-chrY	2782636	2782688	AGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCC	0	-	2782636	2782688	0,0,255	
-chrY	2782636	2782688	AGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCC	0	-	2782636	2782688	0,0,255	
-chrY	2782636	2782688	AGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCC	0	-	2782636	2782688	0,0,255	
-chrY	2782636	2782688	AGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCC	0	-	2782636	2782688	0,0,255	
-chrY	2782636	2782688	AGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCC	0	-	2782636	2782688	0,0,255	
-chrY	2782636	2782688	AGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCC	0	-	2782636	2782688	0,0,255	
-chrY	2782636	2782688	AGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCC	0	-	2782636	2782688	0,0,255	
-chrY	2782636	2782688	AGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCC	0	-	2782636	2782688	0,0,255	
-chrY	2782636	2782688	AGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCC	0	-	2782636	2782688	0,0,255	
-chrY	2782636	2782688	AGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCC	0	-	2782636	2782688	0,0,255	
-chrY	2782636	2782688	AGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCC	0	-	2782636	2782688	0,0,255	
-chrY	2782636	2782688	AGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCC	0	-	2782636	2782688	0,0,255	
-chrY	2782636	2782688	AGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCC	0	-	2782636	2782688	0,0,255	
-chrY	2782636	2782688	AGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCC	0	-	2782636	2782688	0,0,255	
-chrY	2782636	2782688	AGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCC	0	-	2782636	2782688	0,0,255	
-chrY	2782636	2782688	AGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCC	0	-	2782636	2782688	0,0,255	
-chrY	2782636	2782688	AGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCC	0	-	2782636	2782688	0,0,255	
-chrY	2782636	2782688	AGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCC	0	-	2782636	2782688	0,0,255	
-chrY	2782636	2782688	AGTACAAGTCGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCC	0	-	2782636	2782688	0,0,255	
-chrY	2782636	2782688	AGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCC	0	-	2782636	2782688	0,0,255	
-chrY	2782636	2782688	AGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCC	0	-	2782636	2782688	0,0,255	
-chrY	2782636	2782688	AGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCC	0	-	2782636	2782688	0,0,255	
-chrY	2782636	2782688	AGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCC	0	-	2782636	2782688	0,0,255	
-chrY	2782636	2782688	AGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCC	0	-	2782636	2782688	0,0,255	
-chrY	2782636	2782688	AGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCC	0	-	2782636	2782688	0,0,255	
-chrY	2782636	2782688	AGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCC	0	-	2782636	2782688	0,0,255	
-chrY	2782636	2782688	AGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCC	0	-	2782636	2782688	0,0,255	
-chrY	2782636	2782688	AGTACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCC	0	-	2782636	2782688	0,0,255	
-chrY	2782638	2782690	TACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCT	0	+	2782638	2782690	255,0,0	
-chrY	2782638	2782690	TACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCT	0	+	2782638	2782690	255,0,0	
-chrY	2782638	2782690	TACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCT	0	+	2782638	2782690	255,0,0	
-chrY	2782638	2782690	TACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCT	0	+	2782638	2782690	255,0,0	
-chrY	2782638	2782690	TACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCT	0	+	2782638	2782690	255,0,0	
-chrY	2782638	2782690	TACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCT	0	+	2782638	2782690	255,0,0	
-chrY	2782638	2782690	TACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCT	0	+	2782638	2782690	255,0,0	
-chrY	2782638	2782690	TACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCT	0	+	2782638	2782690	255,0,0	
-chrY	2782638	2782690	TACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCT	0	+	2782638	2782690	255,0,0	
-chrY	2782638	2782690	TACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCT	0	+	2782638	2782690	255,0,0	
-chrY	2782638	2782690	TACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCT	0	+	2782638	2782690	255,0,0	
-chrY	2782638	2782690	TACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCT	0	+	2782638	2782690	255,0,0	
-chrY	2782638	2782690	TACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCT	0	+	2782638	2782690	255,0,0	
-chrY	2782638	2782690	TACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCT	0	+	2782638	2782690	255,0,0	
-chrY	2782638	2782690	TACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCT	0	+	2782638	2782690	255,0,0	
-chrY	2782638	2782690	TACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCT	0	+	2782638	2782690	255,0,0	
-chrY	2782638	2782690	TACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCT	0	+	2782638	2782690	255,0,0	
-chrY	2782638	2782690	TACAAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCT	0	+	2782638	2782690	255,0,0	
-chrY	2782641	2782693	AAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCAC	0	+	2782641	2782693	255,0,0	
-chrY	2782641	2782693	AAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCAC	0	+	2782641	2782693	255,0,0	
-chrY	2782641	2782693	AAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCAC	0	+	2782641	2782693	255,0,0	
-chrY	2782641	2782693	AAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCAC	0	+	2782641	2782693	255,0,0	
-chrY	2782641	2782693	AAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCAC	0	+	2782641	2782693	255,0,0	
-chrY	2782641	2782693	AAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCAC	0	+	2782641	2782693	255,0,0	
-chrY	2782641	2782693	AAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCAC	0	+	2782641	2782693	255,0,0	
-chrY	2782641	2782693	AAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCAC	0	+	2782641	2782693	255,0,0	
-chrY	2782641	2782693	AAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCAC	0	+	2782641	2782693	255,0,0	
-chrY	2782641	2782693	AAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCAC	0	+	2782641	2782693	255,0,0	
-chrY	2782641	2782693	AAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCAC	0	+	2782641	2782693	255,0,0	
-chrY	2782641	2782693	AAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCAC	0	+	2782641	2782693	255,0,0	
-chrY	2782641	2782693	AAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCAC	0	+	2782641	2782693	255,0,0	
-chrY	2782641	2782693	AAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCAC	0	+	2782641	2782693	255,0,0	
-chrY	2782641	2782693	AAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCAC	0	+	2782641	2782693	255,0,0	
-chrY	2782641	2782693	AAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCAC	0	+	2782641	2782693	255,0,0	
-chrY	2782641	2782693	AAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCAC	0	+	2782641	2782693	255,0,0	
-chrY	2782641	2782693	AAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCAC	0	+	2782641	2782693	255,0,0	
-chrY	2782641	2782693	AAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCAC	0	+	2782641	2782693	255,0,0	
-chrY	2782641	2782693	AAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCAC	0	+	2782641	2782693	255,0,0	
-chrY	2782641	2782693	AAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCAC	0	+	2782641	2782693	255,0,0	
-chrY	2782641	2782693	AAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCAC	0	+	2782641	2782693	255,0,0	
-chrY	2782641	2782693	AAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCAC	0	+	2782641	2782693	255,0,0	
-chrY	2782641	2782693	AAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCAC	0	+	2782641	2782693	255,0,0	
-chrY	2782641	2782693	AAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCAC	0	+	2782641	2782693	255,0,0	
-chrY	2782641	2782693	AAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCAC	0	+	2782641	2782693	255,0,0	
-chrY	2782641	2782693	AAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCAC	0	+	2782641	2782693	255,0,0	
-chrY	2782641	2782693	AAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCAC	0	+	2782641	2782693	255,0,0	
-chrY	2782641	2782693	AAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCAC	0	+	2782641	2782693	255,0,0	
-chrY	2782641	2782693	AAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCAC	0	+	2782641	2782693	255,0,0	
-chrY	2782641	2782693	AAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCAC	0	+	2782641	2782693	255,0,0	
-chrY	2782641	2782693	AAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCAC	0	+	2782641	2782693	255,0,0	
-chrY	2782641	2782693	AAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCAC	0	+	2782641	2782693	255,0,0	
-chrY	2782641	2782693	AAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCAC	0	+	2782641	2782693	255,0,0	
-chrY	2782641	2782693	AAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCAC	0	+	2782641	2782693	255,0,0	
-chrY	2782641	2782693	AAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCAC	0	+	2782641	2782693	255,0,0	
-chrY	2782641	2782693	AAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCAC	0	+	2782641	2782693	255,0,0	
-chrY	2782641	2782693	AAGTTGTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCAC	0	+	2782641	2782693	255,0,0	
-chrY	2782646	2782698	GTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGT	0	+	2782646	2782698	255,0,0	
-chrY	2782646	2782698	GTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGT	0	+	2782646	2782698	255,0,0	
-chrY	2782646	2782698	GTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGT	0	+	2782646	2782698	255,0,0	
-chrY	2782646	2782698	GTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGT	0	+	2782646	2782698	255,0,0	
-chrY	2782646	2782698	GTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGT	0	+	2782646	2782698	255,0,0	
-chrY	2782646	2782698	GTGCAAAGTGAGGAAGTTTACTGTGGGAGTGAAGGGAATCCCTCACCTGGT	0	+	2782646	2782698	255,0,0	
-chrY	2782646	2782698	GTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGT	0	+	2782646	2782698	255,0,0	
-chrY	2782646	2782698	GTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGT	0	+	2782646	2782698	255,0,0	
-chrY	2782646	2782698	GTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGT	0	+	2782646	2782698	255,0,0	
-chrY	2782646	2782698	GTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGT	0	+	2782646	2782698	255,0,0	
-chrY	2782646	2782698	GTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGT	0	+	2782646	2782698	255,0,0	
-chrY	2782646	2782698	GTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGT	0	+	2782646	2782698	255,0,0	
-chrY	2782646	2782698	GTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGT	0	+	2782646	2782698	255,0,0	
-chrY	2782646	2782698	GTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGT	0	+	2782646	2782698	255,0,0	
-chrY	2782646	2782698	GTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGT	0	+	2782646	2782698	255,0,0	
-chrY	2782646	2782698	GTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGT	0	+	2782646	2782698	255,0,0	
-chrY	2782646	2782698	GTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGT	0	+	2782646	2782698	255,0,0	
-chrY	2782646	2782698	GTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGT	0	+	2782646	2782698	255,0,0	
-chrY	2782646	2782698	GTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGT	0	+	2782646	2782698	255,0,0	
-chrY	2782646	2782698	GTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGT	0	+	2782646	2782698	255,0,0	
-chrY	2782646	2782698	GTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGT	0	+	2782646	2782698	255,0,0	
-chrY	2782646	2782698	GTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGT	0	+	2782646	2782698	255,0,0	
-chrY	2782646	2782698	GTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGT	0	+	2782646	2782698	255,0,0	
-chrY	2782646	2782698	GTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGT	0	+	2782646	2782698	255,0,0	
-chrY	2782646	2782698	GTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGT	0	+	2782646	2782698	255,0,0	
-chrY	2782646	2782698	GTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGT	0	+	2782646	2782698	255,0,0	
-chrY	2782646	2782698	GTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGT	0	+	2782646	2782698	255,0,0	
-chrY	2782646	2782698	GTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGT	0	+	2782646	2782698	255,0,0	
-chrY	2782646	2782698	GTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGT	0	+	2782646	2782698	255,0,0	
-chrY	2782646	2782698	GTGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGT	0	+	2782646	2782698	255,0,0	
-chrY	2782647	2782699	TGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTG	0	-	2782647	2782699	0,0,255	
-chrY	2782647	2782699	TGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTG	0	-	2782647	2782699	0,0,255	
-chrY	2782647	2782699	TGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTG	0	-	2782647	2782699	0,0,255	
-chrY	2782647	2782699	TGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTG	0	-	2782647	2782699	0,0,255	
-chrY	2782647	2782699	TGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTG	0	-	2782647	2782699	0,0,255	
-chrY	2782647	2782699	TGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTG	0	-	2782647	2782699	0,0,255	
-chrY	2782647	2782699	TGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTG	0	-	2782647	2782699	0,0,255	
-chrY	2782647	2782699	TGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTG	0	-	2782647	2782699	0,0,255	
-chrY	2782647	2782699	TGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTG	0	-	2782647	2782699	0,0,255	
-chrY	2782647	2782699	TGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTG	0	-	2782647	2782699	0,0,255	
-chrY	2782647	2782699	TGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTG	0	-	2782647	2782699	0,0,255	
-chrY	2782647	2782699	TGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTG	0	-	2782647	2782699	0,0,255	
-chrY	2782647	2782699	TGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTG	0	-	2782647	2782699	0,0,255	
-chrY	2782647	2782699	TGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTG	0	-	2782647	2782699	0,0,255	
-chrY	2782647	2782699	TGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTG	0	-	2782647	2782699	0,0,255	
-chrY	2782647	2782699	TGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTG	0	-	2782647	2782699	0,0,255	
-chrY	2782647	2782699	TGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTG	0	-	2782647	2782699	0,0,255	
-chrY	2782647	2782699	TGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTG	0	-	2782647	2782699	0,0,255	
-chrY	2782647	2782699	TGCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTG	0	-	2782647	2782699	0,0,255	
-chrY	2782648	2782700	GCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGA	0	+	2782648	2782700	255,0,0	
-chrY	2782648	2782700	GCAAAGTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGA	0	+	2782648	2782700	255,0,0	
-chrY	2782653	2782705	GTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCAT	0	-	2782653	2782705	0,0,255	
-chrY	2782653	2782705	GTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCAT	0	-	2782653	2782705	0,0,255	
-chrY	2782653	2782705	GTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCAT	0	-	2782653	2782705	0,0,255	
-chrY	2782653	2782705	GTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCAT	0	-	2782653	2782705	0,0,255	
-chrY	2782653	2782705	GTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCAT	0	-	2782653	2782705	0,0,255	
-chrY	2782653	2782705	GTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCAT	0	-	2782653	2782705	0,0,255	
-chrY	2782653	2782705	GTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCAT	0	-	2782653	2782705	0,0,255	
-chrY	2782653	2782705	GTGAGGAAGATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCAT	0	-	2782653	2782705	0,0,255	
-chrY	2782661	2782713	GATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCG	0	-	2782661	2782713	0,0,255	
-chrY	2782661	2782713	GATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCG	0	-	2782661	2782713	0,0,255	
-chrY	2782661	2782713	GATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCG	0	-	2782661	2782713	0,0,255	
-chrY	2782661	2782713	GATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCG	0	-	2782661	2782713	0,0,255	
-chrY	2782661	2782713	GATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCG	0	-	2782661	2782713	0,0,255	
-chrY	2782661	2782713	GATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCG	0	-	2782661	2782713	0,0,255	
-chrY	2782661	2782713	GATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCG	0	-	2782661	2782713	0,0,255	
-chrY	2782661	2782713	GATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCG	0	-	2782661	2782713	0,0,255	
-chrY	2782661	2782713	GATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCG	0	-	2782661	2782713	0,0,255	
-chrY	2782661	2782713	GATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCG	0	-	2782661	2782713	0,0,255	
-chrY	2782661	2782713	GATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCG	0	-	2782661	2782713	0,0,255	
-chrY	2782661	2782713	GATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCG	0	-	2782661	2782713	0,0,255	
-chrY	2782661	2782713	GATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCG	0	-	2782661	2782713	0,0,255	
-chrY	2782661	2782713	GATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCG	0	-	2782661	2782713	0,0,255	
-chrY	2782661	2782713	GATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCG	0	-	2782661	2782713	0,0,255	
-chrY	2782661	2782713	GATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCG	0	-	2782661	2782713	0,0,255	
-chrY	2782661	2782713	GATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCG	0	-	2782661	2782713	0,0,255	
-chrY	2782661	2782713	GATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCG	0	-	2782661	2782713	0,0,255	
-chrY	2782661	2782713	GATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCG	0	-	2782661	2782713	0,0,255	
-chrY	2782661	2782713	GATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCG	0	-	2782661	2782713	0,0,255	
-chrY	2782662	2782714	ATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGA	0	+	2782662	2782714	255,0,0	
-chrY	2782662	2782714	ATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGA	0	+	2782662	2782714	255,0,0	
-chrY	2782662	2782714	ATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGA	0	+	2782662	2782714	255,0,0	
-chrY	2782662	2782714	ATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACCCATGATGCTCGA	0	+	2782662	2782714	255,0,0	
-chrY	2782662	2782714	ATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGA	0	+	2782662	2782714	255,0,0	
-chrY	2782662	2782714	ATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGA	0	+	2782662	2782714	255,0,0	
-chrY	2782662	2782714	ATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGA	0	+	2782662	2782714	255,0,0	
-chrY	2782662	2782714	ATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGAGTCATGATGCTCGA	0	+	2782662	2782714	255,0,0	
-chrY	2782662	2782714	ATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGA	0	+	2782662	2782714	255,0,0	
-chrY	2782662	2782714	ATTACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGA	0	+	2782662	2782714	255,0,0	
-chrY	2782664	2782716	TACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAAC	0	-	2782664	2782716	0,0,255	
-chrY	2782664	2782716	TACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAAC	0	-	2782664	2782716	0,0,255	
-chrY	2782664	2782716	TACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAAC	0	-	2782664	2782716	0,0,255	
-chrY	2782664	2782716	TACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAAC	0	-	2782664	2782716	0,0,255	
-chrY	2782664	2782716	TACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAAC	0	-	2782664	2782716	0,0,255	
-chrY	2782664	2782716	TACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAAC	0	-	2782664	2782716	0,0,255	
-chrY	2782664	2782716	TACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAAC	0	-	2782664	2782716	0,0,255	
-chrY	2782664	2782716	TACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAAC	0	-	2782664	2782716	0,0,255	
-chrY	2782664	2782716	TACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAAC	0	-	2782664	2782716	0,0,255	
-chrY	2782664	2782716	TACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAAC	0	-	2782664	2782716	0,0,255	
-chrY	2782664	2782716	TACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAAC	0	-	2782664	2782716	0,0,255	
-chrY	2782664	2782716	TACTGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAAC	0	-	2782664	2782716	0,0,255	
-chrY	2782667	2782719	TGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCAC	0	-	2782667	2782719	0,0,255	
-chrY	2782667	2782719	TGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCAC	0	-	2782667	2782719	0,0,255	
-chrY	2782667	2782719	TGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCAC	0	-	2782667	2782719	0,0,255	
-chrY	2782667	2782719	TGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCAC	0	-	2782667	2782719	0,0,255	
-chrY	2782667	2782719	TGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCAC	0	-	2782667	2782719	0,0,255	
-chrY	2782667	2782719	TGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCAC	0	-	2782667	2782719	0,0,255	
-chrY	2782667	2782719	TGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCAC	0	-	2782667	2782719	0,0,255	
-chrY	2782667	2782719	TGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCAC	0	-	2782667	2782719	0,0,255	
-chrY	2782667	2782719	TGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCAC	0	-	2782667	2782719	0,0,255	
-chrY	2782667	2782719	TGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCAC	0	-	2782667	2782719	0,0,255	
-chrY	2782667	2782719	TGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCAC	0	-	2782667	2782719	0,0,255	
-chrY	2782667	2782719	TGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCAC	0	-	2782667	2782719	0,0,255	
-chrY	2782667	2782719	TGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCAC	0	-	2782667	2782719	0,0,255	
-chrY	2782667	2782719	TGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCAC	0	-	2782667	2782719	0,0,255	
-chrY	2782667	2782719	TGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCAC	0	-	2782667	2782719	0,0,255	
-chrY	2782667	2782719	TGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCAC	0	-	2782667	2782719	0,0,255	
-chrY	2782667	2782719	TGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCAC	0	-	2782667	2782719	0,0,255	
-chrY	2782667	2782719	TGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCAC	0	-	2782667	2782719	0,0,255	
-chrY	2782667	2782719	TGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCAC	0	-	2782667	2782719	0,0,255	
-chrY	2782667	2782719	TGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCAC	0	-	2782667	2782719	0,0,255	
-chrY	2782667	2782719	TGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCAC	0	-	2782667	2782719	0,0,255	
-chrY	2782667	2782719	TGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCAC	0	-	2782667	2782719	0,0,255	
-chrY	2782667	2782719	TGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCAC	0	-	2782667	2782719	0,0,255	
-chrY	2782667	2782719	TGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCAC	0	-	2782667	2782719	0,0,255	
-chrY	2782667	2782719	TGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCAC	0	-	2782667	2782719	0,0,255	
-chrY	2782667	2782719	TGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCAC	0	-	2782667	2782719	0,0,255	
-chrY	2782667	2782719	TGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCAC	0	-	2782667	2782719	0,0,255	
-chrY	2782667	2782719	TGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCAC	0	-	2782667	2782719	0,0,255	
-chrY	2782667	2782719	TGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCAC	0	-	2782667	2782719	0,0,255	
-chrY	2782667	2782719	TGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCAC	0	-	2782667	2782719	0,0,255	
-chrY	2782667	2782719	TGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCAC	0	-	2782667	2782719	0,0,255	
-chrY	2782667	2782719	TGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCAC	0	-	2782667	2782719	0,0,255	
-chrY	2782667	2782719	TGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCAC	0	-	2782667	2782719	0,0,255	
-chrY	2782667	2782719	TGTGGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCAC	0	-	2782667	2782719	0,0,255	
-chrY	2782670	2782722	GGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCATCCG	0	+	2782670	2782722	255,0,0	
-chrY	2782670	2782722	GGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCATCCG	0	+	2782670	2782722	255,0,0	
-chrY	2782670	2782722	GGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCATCCG	0	-	2782670	2782722	0,0,255	
-chrY	2782670	2782722	GGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCATCCG	0	-	2782670	2782722	0,0,255	
-chrY	2782670	2782722	GGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCATCCG	0	-	2782670	2782722	0,0,255	
-chrY	2782670	2782722	GGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCATCCG	0	-	2782670	2782722	0,0,255	
-chrY	2782670	2782722	GGGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCATCCG	0	-	2782670	2782722	0,0,255	
-chrY	2782671	2782723	GATCTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCATCCGC	0	-	2782671	2782723	0,0,255	
-chrY	2782671	2782723	GGAGTGAAGGGAATCCCTCACCTGGCGACTCATGATGCTCGAACCATCCGC	0	-	2782671	2782723	0,0,255	
-chrY	2782671	2782723	GGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCATCCGC	0	-	2782671	2782723	0,0,255	
-chrY	2782671	2782723	GGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCATCCGC	0	-	2782671	2782723	0,0,255	
-chrY	2782671	2782723	GGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCATCCGC	0	-	2782671	2782723	0,0,255	
-chrY	2782671	2782723	GGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCATCCGC	0	-	2782671	2782723	0,0,255	
-chrY	2782671	2782723	GGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCATCCGC	0	-	2782671	2782723	0,0,255	
-chrY	2782671	2782723	GGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCATCCGC	0	-	2782671	2782723	0,0,255	
-chrY	2782671	2782723	GGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCATCCGC	0	-	2782671	2782723	0,0,255	
-chrY	2782671	2782723	GGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCATCCGC	0	-	2782671	2782723	0,0,255	
-chrY	2782671	2782723	GGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCATCCGC	0	-	2782671	2782723	0,0,255	
-chrY	2782671	2782723	GGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCATCCGC	0	-	2782671	2782723	0,0,255	
-chrY	2782671	2782723	GGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCATCCGC	0	-	2782671	2782723	0,0,255	
-chrY	2782671	2782723	GGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCATCCGC	0	-	2782671	2782723	0,0,255	
-chrY	2782671	2782723	GGAGTGAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCATCCGC	0	-	2782671	2782723	0,0,255	
-chrY	2782676	2782728	GAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCATCCGCTACCC	0	+	2782676	2782728	255,0,0	
-chrY	2782676	2782728	GAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCATCCGCTACCC	0	+	2782676	2782728	255,0,0	
-chrY	2782676	2782728	GAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCATCCGCTACCC	0	+	2782676	2782728	255,0,0	
-chrY	2782676	2782728	GAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCATCCGCTACCC	0	-	2782676	2782728	0,0,255	
-chrY	2782676	2782728	GAAGGGAATCCCTCACCTGGTGACTCATGATGCTCGAACCATCCGCTACCC	0	+	2782676	2782728	255,0,0	
-chrY	2782685	2782737	CCCTCACCTGGTGACTCATCATGCTCGAACCATCCGCTACCCAGATCCTGT	0	+	2782685	2782737	255,0,0	
-chrY	2782685	2782737	CCCTCACCTGGTGACTCATGATGCTCGAACCATCCGCTACCCAGATCCTGT	0	+	2782685	2782737	255,0,0	
-chrY	2782685	2782737	CCCTCACCTGGTGACTCATGATGCTCGAACCATCCGCTACCCAGATCCTGT	0	+	2782685	2782737	255,0,0	
-chrY	2782685	2782737	CCCTCACCTGGTGACTCATGATGCTCGAACCATCCGCTACCCAGATCCTGT	0	+	2782685	2782737	255,0,0	
-chrY	2782686	2782738	CCTCACCTGGTGACTCATGATGCTCGAACCATCCGCTATCCAGATCCTGTC	0	+	2782686	2782738	255,0,0	
-chrY	2782690	2782742	CCCTGGTGACTCATGATGCTCGACCCATCCGCTACCCAGATCCTGTCATCA	0	-	2782690	2782742	0,0,255	
-chrY	2782710	2782762	CAACCCATCCGCTACCCAGATCCTGTCATCAAGGTGAACGATACTGTGCAG	0	-	2782710	2782762	0,0,255	
-chrY	2782710	2782762	CAACCCATCCGCTACCCAGATCCTGTCATCAAGGTGAACGATACTGTGCAG	0	-	2782710	2782762	0,0,255	
-chrY	2782710	2782762	CCACCCACCCGCTACCCAGATCCTGTCATCAAGGTGAACGATACTGTGCAG	0	-	2782710	2782762	0,0,255	
-chrY	2782710	2782762	AGACCCATCCGCTCCCCAGATCCTGTCATCAAGGTGAACGATACTGTGCAG	0	-	2782710	2782762	0,0,255	
-chrY	2782716	2782768	ATCCGCTACCCAGATCCTGTCATCAAGGTGAACGAAACTGTGCAGATTTAT	0	+	2782716	2782768	255,0,0	
-chrY	2782718	2782770	CCGCCACCCAGATCCTGTCATCAAGGTGAACGATACCGTGCAGCTTGATTT	0	+	2782718	2782770	255,0,0	
-chrY	2782755	2782807	GTGCAGATTGAATTAGGGGCTGGCAAGATAATCAACTTTATCAAATTTGAT	0	-	2782755	2782807	0,0,255	
-chrY	2782755	2782807	GTGTAGATTGATTTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGAT	0	-	2782755	2782807	0,0,255	
-chrY	2782756	2782808	TGCAGATTGATTTAGGGACTGGCAAGATAAACAACTTTATCAAATTTGATA	0	+	2782756	2782808	255,0,0	
-chrY	2782760	2782812	GATTGATTTAGGGACTGGCAAGATAATCAACTTTATCAAAGTTGATACAGG	0	-	2782760	2782812	0,0,255	
-chrY	2782760	2782812	GATTGATTTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACTGG	0	-	2782760	2782812	0,0,255	
-chrY	2782762	2782814	TTGATTTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCG	0	-	2782762	2782814	0,0,255	
-chrY	2782762	2782814	TTGATTTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCG	0	-	2782762	2782814	0,0,255	
-chrY	2782762	2782814	TTGATTTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCG	0	-	2782762	2782814	0,0,255	
-chrY	2782762	2782814	TTGATTTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCG	0	-	2782762	2782814	0,0,255	
-chrY	2782762	2782814	TTGATTTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCG	0	-	2782762	2782814	0,0,255	
-chrY	2782762	2782814	TTGATTTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCG	0	-	2782762	2782814	0,0,255	
-chrY	2782762	2782814	TTGATTTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCG	0	-	2782762	2782814	0,0,255	
-chrY	2782762	2782814	TTGATTTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCG	0	-	2782762	2782814	0,0,255	
-chrY	2782762	2782814	TTGATTTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCG	0	-	2782762	2782814	0,0,255	
-chrY	2782762	2782814	TTGATTTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCG	0	-	2782762	2782814	0,0,255	
-chrY	2782762	2782814	TTGATTTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCG	0	-	2782762	2782814	0,0,255	
-chrY	2782762	2782814	TTGATTTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCG	0	-	2782762	2782814	0,0,255	
-chrY	2782762	2782814	TTGATTTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCG	0	-	2782762	2782814	0,0,255	
-chrY	2782762	2782814	TTGATTTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCG	0	-	2782762	2782814	0,0,255	
-chrY	2782762	2782814	TTGATTTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCG	0	-	2782762	2782814	0,0,255	
-chrY	2782762	2782814	TTGATTTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCG	0	-	2782762	2782814	0,0,255	
-chrY	2782762	2782814	TTGATTTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCG	0	-	2782762	2782814	0,0,255	
-chrY	2782762	2782814	TTGATTTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCG	0	-	2782762	2782814	0,0,255	
-chrY	2782762	2782814	TTGATTTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCG	0	-	2782762	2782814	0,0,255	
-chrY	2782762	2782814	TTGATTTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCG	0	-	2782762	2782814	0,0,255	
-chrY	2782762	2782814	TTGATTTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCG	0	-	2782762	2782814	0,0,255	
-chrY	2782762	2782814	TTGATTTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCG	0	-	2782762	2782814	0,0,255	
-chrY	2782762	2782814	TTGATTTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCG	0	-	2782762	2782814	0,0,255	
-chrY	2782762	2782814	TTGATTTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCG	0	-	2782762	2782814	0,0,255	
-chrY	2782762	2782814	TTGATTTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCG	0	-	2782762	2782814	0,0,255	
-chrY	2782762	2782814	TTGATTTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCG	0	-	2782762	2782814	0,0,255	
-chrY	2782762	2782814	TTGATTTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCG	0	-	2782762	2782814	0,0,255	
-chrY	2782762	2782814	TTGATTTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCG	0	-	2782762	2782814	0,0,255	
-chrY	2782762	2782814	TTGATTTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCG	0	-	2782762	2782814	0,0,255	
-chrY	2782762	2782814	TTGATTTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCG	0	-	2782762	2782814	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2782767	2782819	TTAGGGACTGGCAAGATAATCAACTTTATCAAATTTGATACAGGCAATTTG	0	-	2782767	2782819	0,0,255	
-chrY	2789679	2789731	GTTTCATTCTTGTTGCCTAGGCTGGACTGCAGTGGTGACATCTCTGCTCAC	0	+	2789679	2789731	255,0,0	
-chrY	2789679	2789731	GTTTCATTCTTGTTGCCTAGGCTGGACTGCAGTGGTGACATCTCTGCTCAC	0	+	2789679	2789731	255,0,0	
-chrY	2789679	2789731	GTTTCATTCTTGTTGCCTAGGCTGGACTGCAGTGGTGACATCTCTGCTCAC	0	+	2789679	2789731	255,0,0	
-chrY	2789679	2789731	GTTTCATTCTTGTTGCCTGGGCTGGACTGCAGTGGTGACATCTCTGCTCAC	0	+	2789679	2789731	255,0,0	
-chrY	2789679	2789731	GTTTCATTCTTGTTGCCTAGGCTGGACTGCAGTGGTGACATCTCTGCTCAC	0	+	2789679	2789731	255,0,0	
-chrY	2789679	2789731	GTTTCATTCTTGTTGCCTAGGCTGGACTGCAGTGGTGACATCTCTGCTCAC	0	+	2789679	2789731	255,0,0	
-chrY	2789679	2789731	GTTTCATTCTTGTTGCCTAGGCTGGACTGCAGTGGTGACATCTCTGCTCAC	0	+	2789679	2789731	255,0,0	
-chrY	2789679	2789731	GTTTCATTCTTGTTGCCTAGGCTGGACTGCAGTGGTGACATCTCTGCTCAC	0	+	2789679	2789731	255,0,0	
-chrY	2789679	2789731	GTTTCATTCTTGTTGCCTAGGCTGGACTGCAGTGGTGACATCTCTGCTCAC	0	+	2789679	2789731	255,0,0	
-chrY	2790238	2790290	GTGCCACCATGCCTAGCTGTGATCCACTGCAGTAGAAAATTTTGTTTTCAC	0	-	2790238	2790290	0,0,255	
-chrY	2790238	2790290	GTGCCACCATGCCTAGCTGTGATCCACTGCAGTAGAAAATTTTGTTTTCAC	0	-	2790238	2790290	0,0,255	
-chrY	2790238	2790290	GTGCCACCATGCCTAGCTGTGATCCACTGCAGTAGAAAATTTTGTTTTCAC	0	-	2790238	2790290	0,0,255	
-chrY	2790238	2790290	GTGCCACCATGCCTAGCTGTGATCCACTGCAGTAGAAAATTTTGTTTTCAC	0	-	2790238	2790290	0,0,255	
-chrY	2790238	2790290	GTGCCACCATGCCTAGCTGTGATCCACTGCAGTAGAAAATTTTGTTTTCAC	0	-	2790238	2790290	0,0,255	
-chrY	2790238	2790290	GTGCCACCATGCCTAGCTGTGATCCACTGCAGTAGAAAATTTTGTTTTCAC	0	-	2790238	2790290	0,0,255	
-chrY	2790238	2790290	GTGCCACCATGCCTAGCTGTGATCCACTGCAGTAGAAAATTTTGTTTTCAC	0	-	2790238	2790290	0,0,255	
-chrY	2790238	2790290	GTGCCACCATGCCTAGCTGTGATCCACTGCAGTAGAAAATTTTGTTTTCAC	0	-	2790238	2790290	0,0,255	
-chrY	2790238	2790290	GTGCCACCATGCCTAGCTGTGATCCACTGCAGTAGAAAATTTTGTTTTCAC	0	-	2790238	2790290	0,0,255	
-chrY	2790238	2790290	GTGCCACCATGCCTAGCTGTGATCCACTGCAGTAGAAAATTTTGTTTTCAC	0	-	2790238	2790290	0,0,255	
-chrY	2790238	2790290	GTGCCACCATGCCTAGCTGTGATCCACTGCAGTAGAAAATTTTGTTTTCAC	0	-	2790238	2790290	0,0,255	
-chrY	2790238	2790290	GTGCCACCATGCCTAGCTGTGATCCACTGCAGTAGAAAATTTTGTTTTCAC	0	-	2790238	2790290	0,0,255	
-chrY	2790238	2790290	GTGCCACCATGCCTAGCTGTGATCCACTGCAGTAGAAAATTTTGTTTTCAC	0	-	2790238	2790290	0,0,255	
-chrY	2790238	2790290	GTGCCACCATGCCTAGCTGTGATCCACTGCAGTAGAAAATTTTGTTTTCAC	0	-	2790238	2790290	0,0,255	
-chrY	2790238	2790290	GTGCCACCATGCCTAGCTGTGATCCACTGCAGTAGAAAATTTTGTTTTCAC	0	-	2790238	2790290	0,0,255	
-chrY	2790238	2790290	GTGCCACCATGCCTAGCTGTGATCCACTGCAGTAGAAAATTTTGTTTTCAC	0	-	2790238	2790290	0,0,255	
-chrY	2790238	2790290	GTGCCACCATGCCTAGCTGTGATCCACTGCAGTAGAAAATTTTGTTTTCAC	0	-	2790238	2790290	0,0,255	
-chrY	2790238	2790290	GTGCCACCATGCCTAGCTGTGATCCACTGCAGTAGAAAATTTTGTTTTCAC	0	-	2790238	2790290	0,0,255	
-chrY	2790238	2790290	GTGCCACCATGCCTAGCTGTGATCCACTGCAGTAGAAAATTTTGTTTTCAC	0	-	2790238	2790290	0,0,255	
-chrY	2790238	2790290	GTGCCACCATGCCTAGCTGTGATCCACTGCAGTAGAAAATTTTGTTTTCAC	0	-	2790238	2790290	0,0,255	
-chrY	2793126	2793178	GCAATTTGTGTATGGTGATTGGTGGAGCCAACCTCGGTCGTGTTGGTGTGA	0	+	2793126	2793178	255,0,0	
-chrY	2793126	2793178	GCAATTTGTGTATGGTGATTGGTGGAGCCAACCTCGGTCGTGTTGGTGTGA	0	+	2793126	2793178	255,0,0	
-chrY	2793126	2793178	GCAATTTGTGTATGGTGATTGGTGGAGCCAACCTCGGTCGTGTTGGTGTGA	0	+	2793126	2793178	255,0,0	
-chrY	2793126	2793178	GCAATTTGTGTATGGTGATTGGTGGAGCCAACCTCGGTCGTGTTGGTGTGA	0	+	2793126	2793178	255,0,0	
-chrY	2793126	2793178	GCAATTTGTGTATGGTGATTGGTGGAGCCAACCTCGGTCGTGTTGGTGTGA	0	+	2793126	2793178	255,0,0	
-chrY	2793126	2793178	GCAATTTGTGTATGGTGATTGGTGGAGCCAACCTCGGTCGTGTTGGTGTGA	0	+	2793126	2793178	255,0,0	
-chrY	2793126	2793178	GCAATTTGTGTATGGTGATTGGTGGAGCCAACCTCGGTCGTGTTGGTGTGA	0	+	2793126	2793178	255,0,0	
-chrY	2793126	2793178	GCAATTTGTGTATGGTGATTGGTGGAGCCAACCTCGGTCGTGTTGGTGTGA	0	+	2793126	2793178	255,0,0	
-chrY	2793126	2793178	GCAATTTGTGTATGGTGATTGGTGGAGCCAACCTCGGTCGTGTTGGTGTGA	0	+	2793126	2793178	255,0,0	
-chrY	2793126	2793178	GCAATTTGTGTATGGTGATTGGTGGAGCCAACCTCGGTCGTGTTGGTGTGA	0	+	2793126	2793178	255,0,0	
-chrY	2793126	2793178	GCAATTTGTGTATGGTGATTGGTGGAGCCAACCTCGGTCGTGTTGGTGTGA	0	+	2793126	2793178	255,0,0	
-chrY	2793126	2793178	GCAATTTGTGTATGGTGATTGGTGGAGCCAACCTCGGTCGTGTTGGTGTGA	0	+	2793126	2793178	255,0,0	
-chrY	2793126	2793178	GCAATTTGTGTATGGTGATTGGTGGAGCCAACCTCGGTCGTGTTGGTGTGA	0	+	2793126	2793178	255,0,0	
-chrY	2793126	2793178	GCAATTTGTGTATGGTGATTGGTGGAGCCAACCTCGGTCGTGTTGGTGTGA	0	+	2793126	2793178	255,0,0	
-chrY	2793126	2793178	GCAATTTGTGTATGGTGATTGGTGGAGCCAACCTCGGTCGTGTTGGTGTGA	0	+	2793126	2793178	255,0,0	
-chrY	2793126	2793178	GCAATTTGTGTATGGTGATTGGTGGAGCCAACCTCGGTCGTGTTGGTGTGA	0	+	2793126	2793178	255,0,0	
-chrY	2793126	2793178	GCAATTTGTGTATGGTGATTGGTGGAGCCAACCTCGGTCGTGTTGGTGTGA	0	+	2793126	2793178	255,0,0	
-chrY	2793126	2793178	GCAATTTGTGTATGGTGATTGGTGGAGCCAACCTCGGTCGTGTTGGTGTGA	0	+	2793126	2793178	255,0,0	
-chrY	2793126	2793178	GCAATTTGTGTATGGTGATTGGTGGAGCCAACCTCGGTCGTGTTGGTGTGA	0	+	2793126	2793178	255,0,0	
-chrY	2793126	2793178	GCAATTTGTGTATGGTGATTGGTGGAGCCAACCTCGGTCGTGTTGGTGTGA	0	+	2793126	2793178	255,0,0	
-chrY	2793126	2793178	GCAATTTGTGTATGGTGATTGGTGGAGCCAACCTCGGTCGTGTTGGTGTGA	0	+	2793126	2793178	255,0,0	
-chrY	2793126	2793178	GCAATTTGTGTATGGTGATTGGTGGAGCCAACCTCGGTCGTGTTGGTGTGA	0	+	2793126	2793178	255,0,0	
-chrY	2793126	2793178	GCAATTTGTGTATGGTGATTGGTGGAGCCAACCTCGGTCGTGTTGGTGTGA	0	+	2793126	2793178	255,0,0	
-chrY	2793126	2793178	GCAATTTGTGTATGGTGATTGGTGGAGCCAACCTCGGTCGTGTTGGTGTGA	0	+	2793126	2793178	255,0,0	
-chrY	2793126	2793178	GCAATTTGTGTATGGTGATTGGTGGAGCCAACCTCGGTCGTGTTGGTGTGA	0	+	2793126	2793178	255,0,0	
-chrY	2793126	2793178	GCAATTTGTGTATGGTGATTGGTGGAGCCAACCTCGGTCGTGTTGGTGTGA	0	+	2793126	2793178	255,0,0	
-chrY	2793133	2793185	GTGTATGGTGATTGGTGGAGCCAACCTCGGTCGTGTTGGTGTGATCACCAA	0	+	2793133	2793185	255,0,0	
-chrY	2793144	2793196	TGTGTGGGGCCAACCTCGGTCGTGTTGGTGTGATCACCAACAGGGAAAGAC	0	-	2793144	2793196	0,0,255	
-chrY	2793144	2793196	TTGGGGGAGCCAACCTCGGTCGTGTTGGTGTGATCACCAACAGGGAAAGAC	0	-	2793144	2793196	0,0,255	
-chrY	2793144	2793196	TGGGTGGAGCCAACCTCGGTCGTGTTGGTGTGATCACCAACAGGGAAAGAC	0	-	2793144	2793196	0,0,255	
-chrY	2793150	2793202	GAGCCTGCCTCGGTCGTGTTGGTGTGATCTCCAACAGGGAAAGACATCCTG	0	-	2793150	2793202	0,0,255	
-chrY	2793150	2793202	GAGCCAACCTCGGTCGTGTTGGTGTGATCAACAAAAGGGAAAGACATCCTG	0	+	2793150	2793202	255,0,0	
-chrY	2793150	2793202	GAGCCAACCTCGGTCGCGTTGGTGTGATCACCAACAGGGAACGACATCCTG	0	+	2793150	2793202	255,0,0	
-chrY	2793159	2793211	TCGGTCGTGTTGGTGTGATCCCCAACAGGGAAAGACATCCTGGTTCTTTTG	0	-	2793159	2793211	0,0,255	
-chrY	2793170	2793222	GGTGTGATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCAT	0	+	2793170	2793222	255,0,0	
-chrY	2793170	2793222	GGTGTGATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCAT	0	+	2793170	2793222	255,0,0	
-chrY	2793170	2793222	GGTGTGATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCAT	0	+	2793170	2793222	255,0,0	
-chrY	2793170	2793222	GGTGTGATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCAT	0	+	2793170	2793222	255,0,0	
-chrY	2793170	2793222	GGTGTGATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCAT	0	+	2793170	2793222	255,0,0	
-chrY	2793170	2793222	GGTGTGATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCAT	0	+	2793170	2793222	255,0,0	
-chrY	2793170	2793222	GGTGTGATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCAT	0	+	2793170	2793222	255,0,0	
-chrY	2793170	2793222	GGTGTGATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCAT	0	+	2793170	2793222	255,0,0	
-chrY	2793170	2793222	GGTGTGATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCAT	0	+	2793170	2793222	255,0,0	
-chrY	2793170	2793222	GGTGTGATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCAT	0	+	2793170	2793222	255,0,0	
-chrY	2793170	2793222	GGTGTGATCACCAACAGGGAAAGACATCCTGGATCTTTTGATGTGGTGCAT	0	+	2793170	2793222	255,0,0	
-chrY	2793170	2793222	GGTGTGATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCAT	0	+	2793170	2793222	255,0,0	
-chrY	2793170	2793222	GGTGTGATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCAT	0	+	2793170	2793222	255,0,0	
-chrY	2793170	2793222	GGTGTGATCACCAACAGGGAAAGACAACCTGGTTCTTTTGATGTGGTGCAT	0	+	2793170	2793222	255,0,0	
-chrY	2793173	2793225	GTGATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTG	0	-	2793173	2793225	0,0,255	
-chrY	2793173	2793225	GTGATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTG	0	-	2793173	2793225	0,0,255	
-chrY	2793173	2793225	GTGATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTG	0	-	2793173	2793225	0,0,255	
-chrY	2793173	2793225	GTGATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTG	0	-	2793173	2793225	0,0,255	
-chrY	2793173	2793225	GTGATCGCCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTG	0	-	2793173	2793225	0,0,255	
-chrY	2793173	2793225	GTGATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTG	0	-	2793173	2793225	0,0,255	
-chrY	2793173	2793225	GTGATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTG	0	-	2793173	2793225	0,0,255	
-chrY	2793173	2793225	GTGATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTG	0	-	2793173	2793225	0,0,255	
-chrY	2793173	2793225	GTGATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTG	0	-	2793173	2793225	0,0,255	
-chrY	2793173	2793225	GTGATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTG	0	-	2793173	2793225	0,0,255	
-chrY	2793173	2793225	GTGATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTG	0	-	2793173	2793225	0,0,255	
-chrY	2793173	2793225	GTGATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTG	0	+	2793173	2793225	255,0,0	
-chrY	2793173	2793225	GTGATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTG	0	+	2793173	2793225	255,0,0	
-chrY	2793173	2793225	GTGATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTG	0	+	2793173	2793225	255,0,0	
-chrY	2793173	2793225	GTGATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTG	0	+	2793173	2793225	255,0,0	
-chrY	2793173	2793225	GTGATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTG	0	+	2793173	2793225	255,0,0	
-chrY	2793173	2793225	GTGATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTG	0	+	2793173	2793225	255,0,0	
-chrY	2793173	2793225	GTGATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTG	0	+	2793173	2793225	255,0,0	
-chrY	2793173	2793225	GTGATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTG	0	+	2793173	2793225	255,0,0	
-chrY	2793173	2793225	GTGATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTG	0	+	2793173	2793225	255,0,0	
-chrY	2793173	2793225	GTGATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTG	0	+	2793173	2793225	255,0,0	
-chrY	2793173	2793225	GTGATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTG	0	+	2793173	2793225	255,0,0	
-chrY	2793173	2793225	GTGATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTG	0	+	2793173	2793225	255,0,0	
-chrY	2793173	2793225	GTGATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTG	0	+	2793173	2793225	255,0,0	
-chrY	2793173	2793225	GTGATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTG	0	+	2793173	2793225	255,0,0	
-chrY	2793173	2793225	GTGATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTG	0	+	2793173	2793225	255,0,0	
-chrY	2793173	2793225	GTGATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTG	0	+	2793173	2793225	255,0,0	
-chrY	2793175	2793227	GATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAA	0	-	2793175	2793227	0,0,255	
-chrY	2793175	2793227	GATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAA	0	-	2793175	2793227	0,0,255	
-chrY	2793175	2793227	GATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAA	0	-	2793175	2793227	0,0,255	
-chrY	2793175	2793227	GATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAA	0	-	2793175	2793227	0,0,255	
-chrY	2793175	2793227	GATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAA	0	-	2793175	2793227	0,0,255	
-chrY	2793175	2793227	GATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAA	0	-	2793175	2793227	0,0,255	
-chrY	2793175	2793227	GATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAA	0	-	2793175	2793227	0,0,255	
-chrY	2793175	2793227	GATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAA	0	-	2793175	2793227	0,0,255	
-chrY	2793175	2793227	GATCACCAACGGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAN	0	-	2793175	2793227	0,0,255	
-chrY	2793175	2793227	GATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAA	0	-	2793175	2793227	0,0,255	
-chrY	2793175	2793227	GATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAA	0	-	2793175	2793227	0,0,255	
-chrY	2793175	2793227	GATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAA	0	-	2793175	2793227	0,0,255	
-chrY	2793175	2793227	GATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAA	0	-	2793175	2793227	0,0,255	
-chrY	2793175	2793227	GATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAA	0	-	2793175	2793227	0,0,255	
-chrY	2793175	2793227	GATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAA	0	-	2793175	2793227	0,0,255	
-chrY	2793175	2793227	GATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAA	0	-	2793175	2793227	0,0,255	
-chrY	2793175	2793227	GATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAA	0	-	2793175	2793227	0,0,255	
-chrY	2793175	2793227	GATCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAA	0	-	2793175	2793227	0,0,255	
-chrY	2793177	2793229	TCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGG	0	-	2793177	2793229	0,0,255	
-chrY	2793177	2793229	TCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGG	0	-	2793177	2793229	0,0,255	
-chrY	2793177	2793229	TCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGG	0	-	2793177	2793229	0,0,255	
-chrY	2793177	2793229	TCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGG	0	-	2793177	2793229	0,0,255	
-chrY	2793177	2793229	TCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGG	0	-	2793177	2793229	0,0,255	
-chrY	2793177	2793229	TCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGG	0	-	2793177	2793229	0,0,255	
-chrY	2793177	2793229	TCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGG	0	-	2793177	2793229	0,0,255	
-chrY	2793177	2793229	TCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGG	0	-	2793177	2793229	0,0,255	
-chrY	2793177	2793229	TCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGG	0	-	2793177	2793229	0,0,255	
-chrY	2793177	2793229	TCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGG	0	-	2793177	2793229	0,0,255	
-chrY	2793177	2793229	TCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGG	0	-	2793177	2793229	0,0,255	
-chrY	2793177	2793229	TCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGG	0	-	2793177	2793229	0,0,255	
-chrY	2793177	2793229	TCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGG	0	-	2793177	2793229	0,0,255	
-chrY	2793177	2793229	TCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGG	0	-	2793177	2793229	0,0,255	
-chrY	2793177	2793229	TCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGG	0	-	2793177	2793229	0,0,255	
-chrY	2793177	2793229	TCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGG	0	-	2793177	2793229	0,0,255	
-chrY	2793177	2793229	TCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGG	0	-	2793177	2793229	0,0,255	
-chrY	2793177	2793229	TCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGG	0	-	2793177	2793229	0,0,255	
-chrY	2793177	2793229	TCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGG	0	-	2793177	2793229	0,0,255	
-chrY	2793177	2793229	TCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATATGAAGG	0	-	2793177	2793229	0,0,255	
-chrY	2793177	2793229	TCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGG	0	-	2793177	2793229	0,0,255	
-chrY	2793177	2793229	TCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGG	0	-	2793177	2793229	0,0,255	
-chrY	2793177	2793229	TCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGG	0	-	2793177	2793229	0,0,255	
-chrY	2793177	2793229	TCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGG	0	-	2793177	2793229	0,0,255	
-chrY	2793177	2793229	TCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGG	0	-	2793177	2793229	0,0,255	
-chrY	2793177	2793229	TCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGG	0	-	2793177	2793229	0,0,255	
-chrY	2793177	2793229	TCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGG	0	-	2793177	2793229	0,0,255	
-chrY	2793177	2793229	TCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGG	0	-	2793177	2793229	0,0,255	
-chrY	2793177	2793229	TCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGG	0	-	2793177	2793229	0,0,255	
-chrY	2793177	2793229	TCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGG	0	-	2793177	2793229	0,0,255	
-chrY	2793177	2793229	TCACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGG	0	-	2793177	2793229	0,0,255	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	-	2793178	2793230	0,0,255	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	-	2793178	2793230	0,0,255	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	-	2793178	2793230	0,0,255	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	-	2793178	2793230	0,0,255	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	-	2793178	2793230	0,0,255	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	-	2793178	2793230	0,0,255	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	-	2793178	2793230	0,0,255	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	-	2793178	2793230	0,0,255	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	-	2793178	2793230	0,0,255	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	-	2793178	2793230	0,0,255	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCANGTGANGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793178	2793230	CACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGA	0	+	2793178	2793230	255,0,0	
-chrY	2793179	2793231	ACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGAT	0	-	2793179	2793231	0,0,255	
-chrY	2793179	2793231	ACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGAT	0	-	2793179	2793231	0,0,255	
-chrY	2793179	2793231	ACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGAT	0	-	2793179	2793231	0,0,255	
-chrY	2793179	2793231	ACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGAT	0	-	2793179	2793231	0,0,255	
-chrY	2793179	2793231	ACCAACAGGGAAAGACATACTGGTTCTTTTGATGTGGTGCATGTGAAGGAT	0	-	2793179	2793231	0,0,255	
-chrY	2793179	2793231	ACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGAT	0	-	2793179	2793231	0,0,255	
-chrY	2793179	2793231	ACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGAT	0	-	2793179	2793231	0,0,255	
-chrY	2793179	2793231	ACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGAT	0	-	2793179	2793231	0,0,255	
-chrY	2793179	2793231	ACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGAT	0	-	2793179	2793231	0,0,255	
-chrY	2793179	2793231	ACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGAT	0	-	2793179	2793231	0,0,255	
-chrY	2793179	2793231	ACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGAT	0	-	2793179	2793231	0,0,255	
-chrY	2793179	2793231	ACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGAT	0	-	2793179	2793231	0,0,255	
-chrY	2793179	2793231	ACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGAT	0	-	2793179	2793231	0,0,255	
-chrY	2793179	2793231	ACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGAT	0	-	2793179	2793231	0,0,255	
-chrY	2793179	2793231	ACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGAT	0	-	2793179	2793231	0,0,255	
-chrY	2793179	2793231	ACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGAT	0	-	2793179	2793231	0,0,255	
-chrY	2793179	2793231	ACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGAT	0	-	2793179	2793231	0,0,255	
-chrY	2793179	2793231	ACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGAT	0	-	2793179	2793231	0,0,255	
-chrY	2793179	2793231	ACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGAT	0	-	2793179	2793231	0,0,255	
-chrY	2793179	2793231	ACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGAT	0	-	2793179	2793231	0,0,255	
-chrY	2793179	2793231	ACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGAT	0	-	2793179	2793231	0,0,255	
-chrY	2793179	2793231	ACCAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGAT	0	-	2793179	2793231	0,0,255	
-chrY	2793181	2793233	CAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGATGC	0	+	2793181	2793233	255,0,0	
-chrY	2793181	2793233	CAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGATGC	0	+	2793181	2793233	255,0,0	
-chrY	2793181	2793233	CAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGATGC	0	+	2793181	2793233	255,0,0	
-chrY	2793181	2793233	CAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGATGC	0	+	2793181	2793233	255,0,0	
-chrY	2793181	2793233	CAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGATGC	0	+	2793181	2793233	255,0,0	
-chrY	2793181	2793233	CAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGATGC	0	+	2793181	2793233	255,0,0	
-chrY	2793181	2793233	CAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGATGC	0	+	2793181	2793233	255,0,0	
-chrY	2793181	2793233	CAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGATGC	0	+	2793181	2793233	255,0,0	
-chrY	2793181	2793233	CAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGATGC	0	+	2793181	2793233	255,0,0	
-chrY	2793181	2793233	CAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGCAGGATGC	0	+	2793181	2793233	255,0,0	
-chrY	2793181	2793233	NAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGATGC	0	+	2793181	2793233	255,0,0	
-chrY	2793181	2793233	CAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGATGC	0	+	2793181	2793233	255,0,0	
-chrY	2793181	2793233	CAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGATGC	0	+	2793181	2793233	255,0,0	
-chrY	2793181	2793233	CAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGATGC	0	+	2793181	2793233	255,0,0	
-chrY	2793181	2793233	CAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGATGC	0	+	2793181	2793233	255,0,0	
-chrY	2793181	2793233	CAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGATGC	0	+	2793181	2793233	255,0,0	
-chrY	2793181	2793233	CAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGATGC	0	+	2793181	2793233	255,0,0	
-chrY	2793181	2793233	CAACAGGGAAAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGATGC	0	+	2793181	2793233	255,0,0	
-chrY	2793190	2793242	AAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAA	0	+	2793190	2793242	255,0,0	
-chrY	2793190	2793242	AAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAA	0	+	2793190	2793242	255,0,0	
-chrY	2793190	2793242	AAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAA	0	+	2793190	2793242	255,0,0	
-chrY	2793190	2793242	AAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAA	0	+	2793190	2793242	255,0,0	
-chrY	2793190	2793242	AAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAA	0	+	2793190	2793242	255,0,0	
-chrY	2793190	2793242	AAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAA	0	+	2793190	2793242	255,0,0	
-chrY	2793190	2793242	AAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAA	0	+	2793190	2793242	255,0,0	
-chrY	2793190	2793242	AAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAA	0	+	2793190	2793242	255,0,0	
-chrY	2793190	2793242	AAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAA	0	+	2793190	2793242	255,0,0	
-chrY	2793190	2793242	AAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAA	0	+	2793190	2793242	255,0,0	
-chrY	2793190	2793242	AAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAA	0	+	2793190	2793242	255,0,0	
-chrY	2793190	2793242	AAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAA	0	+	2793190	2793242	255,0,0	
-chrY	2793190	2793242	AAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAA	0	+	2793190	2793242	255,0,0	
-chrY	2793190	2793242	AAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAA	0	+	2793190	2793242	255,0,0	
-chrY	2793190	2793242	AAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAA	0	+	2793190	2793242	255,0,0	
-chrY	2793190	2793242	AAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAA	0	+	2793190	2793242	255,0,0	
-chrY	2793190	2793242	AAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAA	0	+	2793190	2793242	255,0,0	
-chrY	2793190	2793242	AAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAA	0	+	2793190	2793242	255,0,0	
-chrY	2793190	2793242	AAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAA	0	+	2793190	2793242	255,0,0	
-chrY	2793190	2793242	AAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAA	0	+	2793190	2793242	255,0,0	
-chrY	2793190	2793242	AAGACATCCTGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAA	0	+	2793190	2793242	255,0,0	
-chrY	2793199	2793251	TGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGC	0	+	2793199	2793251	255,0,0	
-chrY	2793199	2793251	TGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGC	0	+	2793199	2793251	255,0,0	
-chrY	2793199	2793251	TGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGC	0	+	2793199	2793251	255,0,0	
-chrY	2793199	2793251	TGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGC	0	+	2793199	2793251	255,0,0	
-chrY	2793199	2793251	TGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGC	0	+	2793199	2793251	255,0,0	
-chrY	2793199	2793251	TGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGC	0	+	2793199	2793251	255,0,0	
-chrY	2793199	2793251	TGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGC	0	+	2793199	2793251	255,0,0	
-chrY	2793199	2793251	TGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGC	0	+	2793199	2793251	255,0,0	
-chrY	2793199	2793251	TGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGC	0	+	2793199	2793251	255,0,0	
-chrY	2793199	2793251	TGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGC	0	+	2793199	2793251	255,0,0	
-chrY	2793199	2793251	TGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGC	0	+	2793199	2793251	255,0,0	
-chrY	2793199	2793251	TGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGC	0	+	2793199	2793251	255,0,0	
-chrY	2793199	2793251	TGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGC	0	+	2793199	2793251	255,0,0	
-chrY	2793199	2793251	TGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGC	0	+	2793199	2793251	255,0,0	
-chrY	2793199	2793251	TGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGC	0	+	2793199	2793251	255,0,0	
-chrY	2793199	2793251	TGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGC	0	+	2793199	2793251	255,0,0	
-chrY	2793199	2793251	TGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGC	0	+	2793199	2793251	255,0,0	
-chrY	2793199	2793251	TGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGC	0	+	2793199	2793251	255,0,0	
-chrY	2793199	2793251	TGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGC	0	+	2793199	2793251	255,0,0	
-chrY	2793199	2793251	TGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGC	0	+	2793199	2793251	255,0,0	
-chrY	2793199	2793251	TGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGC	0	+	2793199	2793251	255,0,0	
-chrY	2793199	2793251	TGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGC	0	+	2793199	2793251	255,0,0	
-chrY	2793199	2793251	TGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGC	0	+	2793199	2793251	255,0,0	
-chrY	2793199	2793251	TGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGC	0	+	2793199	2793251	255,0,0	
-chrY	2793199	2793251	TGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGC	0	+	2793199	2793251	255,0,0	
-chrY	2793199	2793251	TGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGC	0	+	2793199	2793251	255,0,0	
-chrY	2793199	2793251	TGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGC	0	+	2793199	2793251	255,0,0	
-chrY	2793199	2793251	TGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGC	0	+	2793199	2793251	255,0,0	
-chrY	2793199	2793251	TGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGC	0	+	2793199	2793251	255,0,0	
-chrY	2793199	2793251	TGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGC	0	+	2793199	2793251	255,0,0	
-chrY	2793199	2793251	TGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGC	0	+	2793199	2793251	255,0,0	
-chrY	2793199	2793251	TGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGC	0	+	2793199	2793251	255,0,0	
-chrY	2793199	2793251	TGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGC	0	+	2793199	2793251	255,0,0	
-chrY	2793199	2793251	TGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGC	0	+	2793199	2793251	255,0,0	
-chrY	2793199	2793251	TGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGC	0	+	2793199	2793251	255,0,0	
-chrY	2793199	2793251	TGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGC	0	+	2793199	2793251	255,0,0	
-chrY	2793199	2793251	TGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGC	0	+	2793199	2793251	255,0,0	
-chrY	2793199	2793251	TGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGC	0	+	2793199	2793251	255,0,0	
-chrY	2793199	2793251	TGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGC	0	+	2793199	2793251	255,0,0	
-chrY	2793199	2793251	TGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGC	0	+	2793199	2793251	255,0,0	
-chrY	2793199	2793251	TGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGC	0	+	2793199	2793251	255,0,0	
-chrY	2793199	2793251	TGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGC	0	+	2793199	2793251	255,0,0	
-chrY	2793199	2793251	TGGTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGC	0	+	2793199	2793251	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GCTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGATGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	-	2793201	2793253	0,0,255	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	-	2793201	2793253	0,0,255	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	-	2793201	2793253	0,0,255	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	-	2793201	2793253	0,0,255	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	-	2793201	2793253	0,0,255	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	-	2793201	2793253	0,0,255	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	-	2793201	2793253	0,0,255	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	+	2793201	2793253	255,0,0	
-chrY	2793201	2793253	GTTCTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCA	0	-	2793201	2793253	0,0,255	
-chrY	2793204	2793256	CTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGA	0	+	2793204	2793256	255,0,0	
-chrY	2793204	2793256	CTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGA	0	+	2793204	2793256	255,0,0	
-chrY	2793204	2793256	CTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGA	0	+	2793204	2793256	255,0,0	
-chrY	2793204	2793256	CTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGA	0	+	2793204	2793256	255,0,0	
-chrY	2793204	2793256	CTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGA	0	+	2793204	2793256	255,0,0	
-chrY	2793204	2793256	CTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGA	0	+	2793204	2793256	255,0,0	
-chrY	2793204	2793256	CTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGA	0	+	2793204	2793256	255,0,0	
-chrY	2793204	2793256	CTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGA	0	+	2793204	2793256	255,0,0	
-chrY	2793204	2793256	CTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGA	0	+	2793204	2793256	255,0,0	
-chrY	2793204	2793256	CTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGA	0	+	2793204	2793256	255,0,0	
-chrY	2793204	2793256	CTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCAAGA	0	+	2793204	2793256	255,0,0	
-chrY	2793204	2793256	CTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGA	0	+	2793204	2793256	255,0,0	
-chrY	2793204	2793256	CTTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGA	0	+	2793204	2793256	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATCGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	-	2793205	2793257	0,0,255	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	-	2793205	2793257	0,0,255	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	-	2793205	2793257	0,0,255	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCACTGGCAACAGCTTTGCCACGCG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCAACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793205	2793257	TTTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAG	0	+	2793205	2793257	255,0,0	
-chrY	2793206	2793258	TTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGG	0	+	2793206	2793258	255,0,0	
-chrY	2793206	2793258	TTTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGG	0	+	2793206	2793258	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TCGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGACAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793207	2793259	TTGATGTGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGC	0	+	2793207	2793259	255,0,0	
-chrY	2793213	2793265	TGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCA	0	-	2793213	2793265	0,0,255	
-chrY	2793213	2793265	TGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCA	0	-	2793213	2793265	0,0,255	
-chrY	2793213	2793265	TGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCA	0	-	2793213	2793265	0,0,255	
-chrY	2793213	2793265	TGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCA	0	-	2793213	2793265	0,0,255	
-chrY	2793213	2793265	TGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCA	0	-	2793213	2793265	0,0,255	
-chrY	2793213	2793265	TGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCA	0	-	2793213	2793265	0,0,255	
-chrY	2793213	2793265	TGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCA	0	-	2793213	2793265	0,0,255	
-chrY	2793213	2793265	TGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCA	0	-	2793213	2793265	0,0,255	
-chrY	2793213	2793265	TGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCA	0	-	2793213	2793265	0,0,255	
-chrY	2793213	2793265	TGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCA	0	-	2793213	2793265	0,0,255	
-chrY	2793213	2793265	TGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCA	0	-	2793213	2793265	0,0,255	
-chrY	2793213	2793265	TGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCA	0	-	2793213	2793265	0,0,255	
-chrY	2793213	2793265	TGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCA	0	-	2793213	2793265	0,0,255	
-chrY	2793213	2793265	TGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCA	0	-	2793213	2793265	0,0,255	
-chrY	2793213	2793265	TGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCA	0	-	2793213	2793265	0,0,255	
-chrY	2793213	2793265	TGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCA	0	-	2793213	2793265	0,0,255	
-chrY	2793213	2793265	TGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCA	0	-	2793213	2793265	0,0,255	
-chrY	2793213	2793265	TGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCA	0	-	2793213	2793265	0,0,255	
-chrY	2793213	2793265	TGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCA	0	-	2793213	2793265	0,0,255	
-chrY	2793213	2793265	TGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCA	0	-	2793213	2793265	0,0,255	
-chrY	2793213	2793265	TGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCA	0	-	2793213	2793265	0,0,255	
-chrY	2793213	2793265	TGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCA	0	-	2793213	2793265	0,0,255	
-chrY	2793213	2793265	TGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCA	0	-	2793213	2793265	0,0,255	
-chrY	2793213	2793265	TGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCA	0	-	2793213	2793265	0,0,255	
-chrY	2793213	2793265	TGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCA	0	-	2793213	2793265	0,0,255	
-chrY	2793213	2793265	TGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCA	0	-	2793213	2793265	0,0,255	
-chrY	2793213	2793265	TGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCA	0	-	2793213	2793265	0,0,255	
-chrY	2793213	2793265	TGGTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCA	0	-	2793213	2793265	0,0,255	
-chrY	2793215	2793267	GTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCAAC	0	+	2793215	2793267	255,0,0	
-chrY	2793215	2793267	GTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCAAC	0	+	2793215	2793267	255,0,0	
-chrY	2793215	2793267	GTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCAAC	0	+	2793215	2793267	255,0,0	
-chrY	2793215	2793267	GTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCAAC	0	+	2793215	2793267	255,0,0	
-chrY	2793215	2793267	GTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCAAC	0	+	2793215	2793267	255,0,0	
-chrY	2793215	2793267	GTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCAAC	0	+	2793215	2793267	255,0,0	
-chrY	2793215	2793267	GTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCAAC	0	+	2793215	2793267	255,0,0	
-chrY	2793215	2793267	GTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCAAC	0	+	2793215	2793267	255,0,0	
-chrY	2793215	2793267	GTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCAAC	0	+	2793215	2793267	255,0,0	
-chrY	2793215	2793267	GTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCAAC	0	+	2793215	2793267	255,0,0	
-chrY	2793215	2793267	GTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCAAC	0	+	2793215	2793267	255,0,0	
-chrY	2793215	2793267	GTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCAAC	0	+	2793215	2793267	255,0,0	
-chrY	2793215	2793267	GTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCAAC	0	+	2793215	2793267	255,0,0	
-chrY	2793215	2793267	GTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCAAC	0	+	2793215	2793267	255,0,0	
-chrY	2793215	2793267	GTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCAAC	0	+	2793215	2793267	255,0,0	
-chrY	2793215	2793267	GTGCATGTGAAGGATGCCAATGGCAACAGCTTTGTCACGAGGCTTTCCAAC	0	+	2793215	2793267	255,0,0	
-chrY	2793215	2793267	GTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCAAC	0	+	2793215	2793267	255,0,0	
-chrY	2793215	2793267	GTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCAAC	0	+	2793215	2793267	255,0,0	
-chrY	2793215	2793267	GTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCAAC	0	+	2793215	2793267	255,0,0	
-chrY	2793215	2793267	GTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCAAC	0	+	2793215	2793267	255,0,0	
-chrY	2793215	2793267	GTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCAAC	0	-	2793215	2793267	0,0,255	
-chrY	2793215	2793267	GTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCAAC	0	-	2793215	2793267	0,0,255	
-chrY	2793215	2793267	GTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCAAC	0	-	2793215	2793267	0,0,255	
-chrY	2793215	2793267	GTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCAAC	0	+	2793215	2793267	255,0,0	
-chrY	2793215	2793267	GTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCAAC	0	-	2793215	2793267	0,0,255	
-chrY	2793215	2793267	GTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCAAC	0	-	2793215	2793267	0,0,255	
-chrY	2793215	2793267	GTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCAAC	0	-	2793215	2793267	0,0,255	
-chrY	2793215	2793267	GTGCATGTGAAGGATGCCAATGGCAATAGCTTTGCCACGAGGCTTTCCAAC	0	-	2793215	2793267	0,0,255	
-chrY	2793215	2793267	GTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCAAC	0	-	2793215	2793267	0,0,255	
-chrY	2793215	2793267	GTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCAAC	0	-	2793215	2793267	0,0,255	
-chrY	2793215	2793267	GTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCAAC	0	-	2793215	2793267	0,0,255	
-chrY	2793215	2793267	GTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCAAC	0	-	2793215	2793267	0,0,255	
-chrY	2793215	2793267	GTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCAAC	0	-	2793215	2793267	0,0,255	
-chrY	2793215	2793267	GTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCAAC	0	-	2793215	2793267	0,0,255	
-chrY	2793215	2793267	GTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCAAC	0	-	2793215	2793267	0,0,255	
-chrY	2793215	2793267	GTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCAAC	0	-	2793215	2793267	0,0,255	
-chrY	2793215	2793267	GTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCAAC	0	-	2793215	2793267	0,0,255	
-chrY	2793215	2793267	GTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCAAC	0	-	2793215	2793267	0,0,255	
-chrY	2793215	2793267	GTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCAAC	0	+	2793215	2793267	255,0,0	
-chrY	2793215	2793267	GTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCAAC	0	-	2793215	2793267	0,0,255	
-chrY	2793215	2793267	GTGCATGTGAAGGATGCCAATGGCAACAGCTTTGCCACGAGGCTTTCCAAC	0	-	2793215	2793267	0,0,255	
-chrY	2793221	2793273	GTGAAGGATGCCAATGAAAACAGCTTTGCCACGAGGATTTCCAACATTTTT	0	+	2793221	2793273	255,0,0	
-chrY	2793223	2793275	GAAGGATGCCAATGGCAACAGCTTTGCCACGGGGCTTTCCAACATTTTTGT	0	+	2793223	2793275	255,0,0	
-chrY	2793231	2793283	CCAATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGTCATCGGCA	0	-	2793231	2793283	0,0,255	
-chrY	2793232	2793284	CAATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGTCATTGGCAN	0	-	2793232	2793284	0,0,255	
-chrY	2793232	2793284	CAATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGTCGTTGGCAA	0	-	2793232	2793284	0,0,255	
-chrY	2793232	2793284	CAATGGCAACAGCTTTGCCACGAGGCTTTCGAACATTTTTGTCATTGGCAA	0	-	2793232	2793284	0,0,255	
-chrY	2793233	2793285	AATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGTCATTGGCAAC	0	-	2793233	2793285	0,0,255	
-chrY	2793233	2793285	AATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGTCATTGGCAAC	0	-	2793233	2793285	0,0,255	
-chrY	2793233	2793285	AATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGTCATTGGCAAC	0	-	2793233	2793285	0,0,255	
-chrY	2793233	2793285	AATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGTCATTGGCAAC	0	-	2793233	2793285	0,0,255	
-chrY	2793233	2793285	AATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGTCATTGGCAAC	0	-	2793233	2793285	0,0,255	
-chrY	2793233	2793285	AATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGTCATTGGCAAC	0	-	2793233	2793285	0,0,255	
-chrY	2793233	2793285	AATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGTCATTGGCAAC	0	-	2793233	2793285	0,0,255	
-chrY	2793233	2793285	AATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGTCATTGGCAAC	0	-	2793233	2793285	0,0,255	
-chrY	2793233	2793285	AATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGTCATTGGCAAC	0	-	2793233	2793285	0,0,255	
-chrY	2793233	2793285	AATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGTCATTGGCAAC	0	-	2793233	2793285	0,0,255	
-chrY	2793233	2793285	AATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGTCATTGGCAAC	0	-	2793233	2793285	0,0,255	
-chrY	2793233	2793285	AATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGTCATTGGCAAC	0	-	2793233	2793285	0,0,255	
-chrY	2793233	2793285	AATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGTCATTGGCAAC	0	-	2793233	2793285	0,0,255	
-chrY	2793233	2793285	AATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGTCATTGGCAAC	0	-	2793233	2793285	0,0,255	
-chrY	2793233	2793285	AATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGTCATTGGCAAC	0	-	2793233	2793285	0,0,255	
-chrY	2793233	2793285	AATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGTCATTGGCAAC	0	-	2793233	2793285	0,0,255	
-chrY	2793233	2793285	AATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGTCATTGGCAAC	0	-	2793233	2793285	0,0,255	
-chrY	2793233	2793285	AATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGTCATTGGCAAC	0	-	2793233	2793285	0,0,255	
-chrY	2793233	2793285	AATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGTCATTGGCAAC	0	-	2793233	2793285	0,0,255	
-chrY	2793233	2793285	AATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGTCATTGGCAAC	0	-	2793233	2793285	0,0,255	
-chrY	2793233	2793285	AATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGTCATTGGCAAC	0	-	2793233	2793285	0,0,255	
-chrY	2793233	2793285	AATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGTCATTGGCAAC	0	-	2793233	2793285	0,0,255	
-chrY	2793233	2793285	AATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGTCATTGGCAAC	0	-	2793233	2793285	0,0,255	
-chrY	2793233	2793285	AATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGTCATTGGCAAC	0	-	2793233	2793285	0,0,255	
-chrY	2793233	2793285	AATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGTCATTGGCAAC	0	-	2793233	2793285	0,0,255	
-chrY	2793233	2793285	AATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGTCATTGGCAAC	0	-	2793233	2793285	0,0,255	
-chrY	2793233	2793285	AATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGTCATTGGCAAC	0	-	2793233	2793285	0,0,255	
-chrY	2793233	2793285	AATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGTCATTGGCAAC	0	-	2793233	2793285	0,0,255	
-chrY	2793233	2793285	AATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGTCATTGGCAAC	0	-	2793233	2793285	0,0,255	
-chrY	2793233	2793285	AATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGTCATTGGCAAC	0	-	2793233	2793285	0,0,255	
-chrY	2793233	2793285	AATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGTCATTGGCAAC	0	-	2793233	2793285	0,0,255	
-chrY	2793233	2793285	AATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGCCATTGGCAAC	0	-	2793233	2793285	0,0,255	
-chrY	2793233	2793285	AATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGTCATTGGCAAC	0	-	2793233	2793285	0,0,255	
-chrY	2793233	2793285	AATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGTCATTGGCAAC	0	-	2793233	2793285	0,0,255	
-chrY	2793233	2793285	AATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGTCATTGGCAAC	0	-	2793233	2793285	0,0,255	
-chrY	2793233	2793285	AATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGTCATTGGCAAC	0	-	2793233	2793285	0,0,255	
-chrY	2793233	2793285	AATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGTCATTGGCAAC	0	-	2793233	2793285	0,0,255	
-chrY	2793233	2793285	AATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGTCATTGGCAAC	0	-	2793233	2793285	0,0,255	
-chrY	2793233	2793285	AATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGTCATTGGCAAC	0	-	2793233	2793285	0,0,255	
-chrY	2793233	2793285	AATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGTCATTGGCAAC	0	-	2793233	2793285	0,0,255	
-chrY	2793233	2793285	AATGGCAACAGCTTTGCCACGAGGCTTTCCAACATTTTTGTCATTGGCAAC	0	-	2793233	2793285	0,0,255	
-chrY	2793336	2793388	ATAAAGACCTGCATCCACTACTGGTGTTTGTCTGTTTGTTCTTTTTCCAGT	0	+	2793336	2793388	255,0,0	
-chrY	2793336	2793388	ATAAAGACCTGCATCCACTACTGGTGTTTGTCTGTTTGTTCTTTTTCCAGT	0	+	2793336	2793388	255,0,0	
-chrY	2793336	2793388	ATAAAGACCTGCATCCACTACTGGTGTTTGTCTGTTTGTTCTTTTTCCAGT	0	+	2793336	2793388	255,0,0	
-chrY	2793336	2793388	ATAAAGACCTGCATCCACTACTGGTGTTTGTCTGTTTGTTCTTTTTCCAGT	0	+	2793336	2793388	255,0,0	
-chrY	2793336	2793388	ATAAAGACCTGCATCCACTACTGGTGTTTGTCTGTTTGTTCTTTTTCCAGT	0	+	2793336	2793388	255,0,0	
-chrY	2793336	2793388	ATAAAGACCTGCATCCACTACTGGTGTTTGTCTGTTTGTTCTTTTTCCAGT	0	+	2793336	2793388	255,0,0	
-chrY	2793336	2793388	ATAAAGACCTGCATCCACTACTGGTGTTTGTCTGTTTGTTCTTTTTCCAGT	0	+	2793336	2793388	255,0,0	
-chrY	2793336	2793388	ATAAAGACCTGCATCCACTACTGGTGTTTGTCTGTTTGTTCTTTTTCCAGT	0	+	2793336	2793388	255,0,0	
-chrY	2793336	2793388	ATAAAGACCTGCATCCACTACTGGTGTTTGTCTGTTTGTTCTTTTTCCAGT	0	+	2793336	2793388	255,0,0	
-chrY	2793336	2793388	ATAAAGACCTGCATCCACTACTGGTGTTTGTCTGTTTGTTCTTTTTCCAGT	0	+	2793336	2793388	255,0,0	
-chrY	2793336	2793388	ATAAAGACCTGCATCCACTACTGGTGTTTGTCTGTTTGTTCTTTTTCCAGT	0	+	2793336	2793388	255,0,0	
-chrY	2793336	2793388	ATAAAGACCTGCATCCACTACTGGTGTTTGTCTGTTTGTTCTTTTTCCAGT	0	+	2793336	2793388	255,0,0	
-chrY	2793336	2793388	ATAAAGACCTGCATCCACTACTGGTGTTTGTCTGTTTGTTCTTTTTCCAGT	0	+	2793336	2793388	255,0,0	
-chrY	2793336	2793388	ATAAAGACCTGCATCCACTACTGGTGTTTGTCTGTTTGTTCTTTTTCCAGT	0	+	2793336	2793388	255,0,0	
-chrY	2793336	2793388	ATAAAGACCTGCATCCACTACTGGTGTTTGTCTGTTTGTTCTTTTTCCAGT	0	+	2793336	2793388	255,0,0	
-chrY	2793447	2793499	AGATCTAGAGCCTTACACCTGCCTCTTCAGGTGGTCTGTGTGAGATGCCAG	0	-	2793447	2793499	0,0,255	
-chrY	2793447	2793499	AGAGCTAGAGCCTTACACCTGCCTCTTCAGGTGGTCTGTGTGAGATGCCAG	0	-	2793447	2793499	0,0,255	
-chrY	2793447	2793499	AGATCTAGAGCCTTACACCTGCCTCTTCAGGTGGTCTGTGTGAGATGCCAG	0	-	2793447	2793499	0,0,255	
-chrY	2793447	2793499	AGATCTAGAACCTTACACCTGCCTCTTCAGGTGGTCTGTGTGAGATGCCAG	0	-	2793447	2793499	0,0,255	
-chrY	2793447	2793499	AGATCTAGAGCCTTACACCTGCCTCTTCAGGTGGTCTGTGTGAGATGCCAG	0	-	2793447	2793499	0,0,255	
-chrY	2793447	2793499	AGATCTAGAGCCTTACACCTGCCTCTTCAGGTGGTCTGTGTGAGATGCCAG	0	-	2793447	2793499	0,0,255	
-chrY	2793447	2793499	AGATCTAGAGCCTTACACCTGCCTCTTCAGGTGGTCTGTGTGAGATGCCAG	0	-	2793447	2793499	0,0,255	
-chrY	2793447	2793499	AGATCTAGAGCCTTACACCTGCCTCTTCAGGTGGTCTGTGTGAGATGCCAG	0	-	2793447	2793499	0,0,255	
-chrY	2793447	2793499	AGATCTAGAGCCTTACACCTGCCTCTTCAGGTGGTCTGTGTGAGATGCCAG	0	-	2793447	2793499	0,0,255	
-chrY	2793447	2793499	AGATCTAGAGCCTTACACCTGCCTCTTCAGGTGGTCTGTGTGAGATGCCAG	0	-	2793447	2793499	0,0,255	
-chrY	2793447	2793499	AGATCTAGAGCCTTACACCTGCCTCTTCAGGTGGTCTGTGTGAGATGCCAG	0	-	2793447	2793499	0,0,255	
-chrY	2793447	2793499	AGATCTAGAGCCTTACACCTGCCTCTTCAGGTGGTCTGTGTGAGATGCCAG	0	-	2793447	2793499	0,0,255	
-chrY	2793447	2793499	AGATCTAGAGCCTTACACCTGCCTCTTCAGGTGGTCTGTGTGAGATGCCAG	0	-	2793447	2793499	0,0,255	
-chrY	2793447	2793499	AGATCTAGAGCCTTACACCTGCCTCTTCAGGTGGTCTGTGTGAGATGCCAG	0	-	2793447	2793499	0,0,255	
-chrY	2793447	2793499	AGATCTAGAGCCTTACACCTGCCTCTTCAGGTGGTCTGTGTGAGATGCCAG	0	-	2793447	2793499	0,0,255	
-chrY	2793566	2793618	GCTGGATTAAGGTCACTGGCTCCAATCCTGGTAGTGCTGTGCCCCCTTAAT	0	+	2793566	2793618	255,0,0	
-chrY	2793566	2793618	GCTGGATTAAGGTCACTGGCTCCAATCCTGGTAGTGCTGTGCCCCCTTAAT	0	+	2793566	2793618	255,0,0	
-chrY	2793566	2793618	GCTGGATTAAGGTCACTGGCTCCAATCCTGGTAGTGCTGTGCCCCCTTAAT	0	+	2793566	2793618	255,0,0	
-chrY	2793566	2793618	GCTGGATTAAGGTCACTGGCTCCAATCCTGGTAGTGCTGTGCCCCCTTAAT	0	+	2793566	2793618	255,0,0	
-chrY	2793566	2793618	GCTGGATTAGGGTCACTGGCTCCAATCCTGGTAGTGCTGTGCCCCCTTAAT	0	+	2793566	2793618	255,0,0	
-chrY	2793566	2793618	GCTGGATTAAGGTCACTGGCTCCAATCCTGGTAGTGCTGTGCCCCCTTAAT	0	+	2793566	2793618	255,0,0	
-chrY	2793566	2793618	GCTGGATTAAGGTCACTGGCTCCAATCCTGGTAGTGCTGTGCCCCCTTAAT	0	+	2793566	2793618	255,0,0	
-chrY	2793566	2793618	GCTGGATTAAGGTCACTGGCTCCAATCCTGGTAGTGCTGTGCCCCCTTAAT	0	+	2793566	2793618	255,0,0	
-chrY	2793566	2793618	GCTGGATTAAGGTCACTGGCTCCAATCCTGGTAGTGCTGTGCCCCCTTAAT	0	+	2793566	2793618	255,0,0	
-chrY	2793566	2793618	GCTGGATTAAGGTCACTGGCTCCAATCCTGGTAGTGCTGTGCCCCCTTAAT	0	+	2793566	2793618	255,0,0	
-chrY	2793566	2793618	GCTGGATTAAGGTCACTGGCTCCAATCCTGGTAGTGCTGTGCCCCCTTAAT	0	+	2793566	2793618	255,0,0	
-chrY	2793566	2793618	GCTGGATTAAGGTCACTGGCTCCAATCCTGGTAGTGCTGTGCCCCCTTAAT	0	+	2793566	2793618	255,0,0	
-chrY	2793566	2793618	GCTGGATTAAGGTCACTGGCTCCAATCCTGGTAGTGCTGTGCCCCCTTAAT	0	+	2793566	2793618	255,0,0	
-chrY	2793566	2793618	GCTGGATTAAGGTCACTGGCTCCAATCCTGGTAGTGCTGTGCCCCCTTAAT	0	+	2793566	2793618	255,0,0	
-chrY	2793566	2793618	GCTGGATTAAGGTCACTGGCTCCAATCCTGGTAGTGCTGTGCCCCCTTAAT	0	+	2793566	2793618	255,0,0	
-chrY	2793566	2793618	GCTGGATTAAGGTCACTGGCTCCAATCCTGGTAGTGCTGTGCCCCCTTAAT	0	+	2793566	2793618	255,0,0	
-chrY	2793566	2793618	GCTGGATTAAGGTCACTGGCTCCAATCCTGGTAGTGCTGTGCCCCCTTAAT	0	+	2793566	2793618	255,0,0	
-chrY	2793566	2793618	GCTGGATTAAGGTCACTGGCTCCAATCCTGGTAGTGCTGTGCCCCCTTAAT	0	+	2793566	2793618	255,0,0	
-chrY	2793566	2793618	GCTGGATTAAGGTCACTGGCTCCAATCCTGGTAGTGCTGTGCCCCCTTAAT	0	+	2793566	2793618	255,0,0	
-chrY	2793566	2793618	GCTGGATTAAGGTCACTGGCTCCAATCCTGGTAGTGCTGTGCCCCCTTAAT	0	+	2793566	2793618	255,0,0	
-chrY	2793566	2793618	GCTGGATTAAGGTCACTGGCTCCAATCCTGGTAGTGCTGTGCCCCCTTAAT	0	+	2793566	2793618	255,0,0	
-chrY	2793566	2793618	GCTGGATTAAGGTCACTGGCTCCAATCCTGGTAGTGCTGTGCCCCCTTAAT	0	+	2793566	2793618	255,0,0	
-chrY	2793566	2793618	GCTGGATTAAGGTCACTGGCTCCAATCCTGGTAGTGCTGTGCCCCCTTAAT	0	+	2793566	2793618	255,0,0	
-chrY	2793566	2793618	GCTGGATTAAGGTCACTGGCTCCAATCCTGGTAGTGCTGTGCCCCCTTAAT	0	+	2793566	2793618	255,0,0	
-chrY	2793684	2793736	ATGGAGATTGATGCAAGGGGGCTATGAGTGAGTTGCTAATTTGAGAATAAG	0	-	2793684	2793736	0,0,255	
-chrY	2793684	2793736	ATGGAGATTGATGCAAGGGGGCTATGAGTGAGTTGCTAATTTGAGAATAAG	0	-	2793684	2793736	0,0,255	
-chrY	2793684	2793736	ATGGAGATTGATGCAAGGGGGCTATGAGTGAGTTGCTAATTTGAGAATAAG	0	-	2793684	2793736	0,0,255	
-chrY	2793684	2793736	ATGGAGATTGATGCAAGGGGGCTATGAGTGAGTTGCTAATTTGAGAATAAG	0	-	2793684	2793736	0,0,255	
-chrY	2793684	2793736	ATGGAGATTGATGCAAGGGGGCTATGAGTGAGTTGCTAATTTGAGAATAAG	0	-	2793684	2793736	0,0,255	
-chrY	2793684	2793736	ATGGAGATTGATGCAAGGGGGCTATGAGTGAGTTGCTAATTTGAGAATAAG	0	-	2793684	2793736	0,0,255	
-chrY	2793684	2793736	ATGGAGATTGATGCAAGGGGGCTATGAGTGAGTTGCTAATTTGAGAATAAG	0	-	2793684	2793736	0,0,255	
-chrY	2793684	2793736	ATGGAGATTGATGCAAGGGGGCTATGAGTGAGTTGCTAATTTGAGAATAAG	0	-	2793684	2793736	0,0,255	
-chrY	2793684	2793736	ATGGAGATTGATGCAAGGGGGCTATGAGTGAGTTGCTAATTTGAGAATAAG	0	-	2793684	2793736	0,0,255	
-chrY	2793684	2793736	ATGGAGATTGATGCAAGGGGGCTATGAGTGAGTTGCTAATTTGAGAATAAG	0	-	2793684	2793736	0,0,255	
-chrY	2793684	2793736	ATGGAGATTGATGCAAGGGGGCTATGAGTGAGTTGCTAATTTGAGAATAAG	0	-	2793684	2793736	0,0,255	
-chrY	2793684	2793736	ATGGAGATTGATGCAAGGGGGCTATGAGTGAGTTGCTAATTTGAGAATAAG	0	-	2793684	2793736	0,0,255	
-chrY	2793684	2793736	ATGGAGATTGATGCAAGGGGGCTATGAGTGAGTTGCTAATTTGAGAATAAG	0	-	2793684	2793736	0,0,255	
-chrY	2793684	2793736	ATGGAGATTGATGCAAGGGGGCTATGAGTGAGTTGCTAATTTGAGAATAAG	0	-	2793684	2793736	0,0,255	
-chrY	2793684	2793736	ATGGAGATTGATGCAAGGGGGCTATGAGTGAGTTGCTAATTTGAGAATAAG	0	-	2793684	2793736	0,0,255	
-chrY	2793684	2793736	ATGGAGATTGATGCAAGGGGGCTATGAGTGAGTTGCTAATTTGAGAATAAG	0	-	2793684	2793736	0,0,255	
-chrY	2793684	2793736	ATGGAGATTGATGCAAGGGGGCTATGAGTGAGTTGCTAATTTGAGAATAAG	0	-	2793684	2793736	0,0,255	
-chrY	2793684	2793736	ATGGAGATTGATGCAAGGGGGCTATGAGTGAGTTGCTAATTTGAGAATAAG	0	-	2793684	2793736	0,0,255	
-chrY	2793684	2793736	ATGGAGATTGATGCAAGGGGGCTATGAGTGAGTTGCTAATTTGAGAATAAG	0	-	2793684	2793736	0,0,255	
-chrY	2793684	2793736	ATGGAGATTGATGCAAGGGGGCTATGAGTGAGTTGCTAATTTGAGAATAAG	0	-	2793684	2793736	0,0,255	
-chrY	2793684	2793736	ATGGAGATTGATGCAAGGGGGCTATGAGTGAGTTGCTAATTTGAGAATAAG	0	-	2793684	2793736	0,0,255	
-chrY	2793684	2793736	ATGGAGATTGATGCAAGGGGGCTATGAGTGAGTTGCTAATTTGAGAATAAG	0	-	2793684	2793736	0,0,255	
-chrY	2793684	2793736	ATGGAGATTGATGCAAGGGGGCTATGAGTGAGTTGCTAATTTGAGAATAAG	0	-	2793684	2793736	0,0,255	
-chrY	2793684	2793736	ATGGAGATTGATGCAAGGGGGCTATGAGTGAGTTGCTAATTTGAGAATAAG	0	-	2793684	2793736	0,0,255	
-chrY	2793788	2793840	CTCTGGGATCTTTTGAGACCTTTTCAGTGAAGGAGCACCTCTGAAATCATG	0	+	2793788	2793840	255,0,0	
-chrY	2793788	2793840	CTCTGGGATCTTTTGAGACCTTTTCAGTGAAGGAGCACCTCTGAAATCATG	0	+	2793788	2793840	255,0,0	
-chrY	2793788	2793840	CTCTGGGATCTTTTGAGACCTTTTCAGTGAAGGAGCACCTCTGAAATCATG	0	+	2793788	2793840	255,0,0	
-chrY	2793788	2793840	CTCTGGGATCTTTTGAGACCTTTTCAGTGAAGGAGCACCTCTGAAATCATG	0	+	2793788	2793840	255,0,0	
-chrY	2793797	2793849	CTTTTGAGACCTTTTCAGTGAAGGAGCACCTCTGAAATCATGCAGTATCCT	0	+	2793797	2793849	255,0,0	
-chrY	2793868	2793920	CAAGACTTAAGGAAAGGGCAACGGACATAATTGAAAAGGCTTTTTATTTTT	0	+	2793868	2793920	255,0,0	
-chrY	2793868	2793920	CAAGACTTAAGGAAAGGGCAACGGACATAATTGAAAAGGCTTTTTATTTTT	0	+	2793868	2793920	255,0,0	
-chrY	2793868	2793920	CAAGACTTAAGGAAAGGGCAACGGACATAATTGAAAAGGCTTTTTATTTTT	0	+	2793868	2793920	255,0,0	
-chrY	2793868	2793920	CAAGACTTAAGGAAAGGGCAACGGACATAATTGAAAAGGCTTTTTATTTTT	0	+	2793868	2793920	255,0,0	
-chrY	2793894	2793946	ATAATTGAAAAGGCTTTTTATTTTTATTTATTTATTTATTTTTTGAGACGG	0	-	2793894	2793946	0,0,255	
-chrY	2793895	2793947	TAATTGAAAAGGCTTTTTATTTTTATTTATTTATTTATTTTTTGAGACGGA	0	-	2793895	2793947	0,0,255	
-chrY	2793895	2793947	TAATTGAAAAGGCTTTTTATTTTTATTTATTTATTTATTTTTTGAGACGGA	0	-	2793895	2793947	0,0,255	
-chrY	2793895	2793947	TAATTGAAAAGGCTTTTTATTTTTATTTATTTATTTATTTTTTGAGACGGA	0	-	2793895	2793947	0,0,255	
-chrY	2793895	2793947	TAATTGAAAAGGCTTTTTATTTTTATTTATTTATTTATTTTTTGAGACGGA	0	-	2793895	2793947	0,0,255	
-chrY	2793897	2793949	ATTGAAAAGGCTTTTTATTTTTATTTATTTATTTATTTTTTGAGACGGAAT	0	+	2793897	2793949	255,0,0	
-chrY	2793897	2793949	ATTGAAAAGGCTTTTTATTTTTATTTATTTATTTATTTTTTGAGACGGAAT	0	+	2793897	2793949	255,0,0	
-chrY	2793897	2793949	ATTGAAAAGGCTTTTTATTTTTATTTATTTATTTATTTTTTGAGACGGAAT	0	+	2793897	2793949	255,0,0	
-chrY	2793897	2793949	ATTGAAAAGGCTTTTTATTTTTATTTATTTATTTATTTTTTGAGACGGAAT	0	+	2793897	2793949	255,0,0	
-chrY	2793897	2793949	ATTGAAAAGGCTTTTTATTTTTATTTATTTATTTATTTTTTGAGACGGAAT	0	+	2793897	2793949	255,0,0	
-chrY	2793897	2793949	ATTGAAAAGGCTTTTTATTTTTATTTATTTATTTATTTTTTGAGACGGAAT	0	+	2793897	2793949	255,0,0	
-chrY	2793897	2793949	ATTGAAAAGGCTTTTTATTTTTATTTATTTATTTATTTTTTGAGACGGAAT	0	+	2793897	2793949	255,0,0	
-chrY	2793897	2793949	ATTGAAAAGGCTTTTTATTTTTATTTATTTATTTATTTTTTGAGACGGAAT	0	+	2793897	2793949	255,0,0	
-chrY	2793897	2793949	ATTGAAAAGGCTTTTTATTTTTATTTATTTATTTATTTTTTGAGACGGAAT	0	+	2793897	2793949	255,0,0	
-chrY	2793897	2793949	ATTGAAAAGGCTTTTTATTTTTATTTATTTATTTATTTTTTGAGACGGAAT	0	+	2793897	2793949	255,0,0	
-chrY	2793897	2793949	ATTGAAAAGGCTTTTTATTTTTATTTATTTATTTATTTTTTGAGACGGAAT	0	+	2793897	2793949	255,0,0	
-chrY	2793897	2793949	ATTGAAAAGGCTTTTTATTTTTATTTATTTATTTATTTTTTGAGACGGAAT	0	+	2793897	2793949	255,0,0	
-chrY	2793897	2793949	ATTGAAAAGGCTTTTTATTTTTATTTATTTATTTATTTTTTGAGACGGAAT	0	+	2793897	2793949	255,0,0	
-chrY	2794051	2794103	CTGGGACTAAGGCGCCCGCCACCAGACCTGGCTAATTTCTTTTTGTATTTT	0	+	2794051	2794103	255,0,0	
-chrY	2794051	2794103	CTGGGACTAAGGCGCCCGCCACCAGACCTGGCTAATTTCTTTTTGTATTTT	0	+	2794051	2794103	255,0,0	
-chrY	2794124	2794176	TGTTAGCCAGGATGGTTTCGATCTCCTGACCTGGTGATCACCCAACTTGGC	0	-	2794124	2794176	0,0,255	
-chrY	2794124	2794176	TGTTAGCCAGGATGGTTTCGATCTCCTGACCTGGTGATCACCCAACTTGGC	0	-	2794124	2794176	0,0,255	
-chrY	2794124	2794176	TGTTAGCCAGGATGGTTTCGATCTCCTGACCTGGTGATCACCCAACTTGGC	0	-	2794124	2794176	0,0,255	
-chrY	2794124	2794176	TGTTAGCCAGGATGGTTTCGATCTCCTGACCTGGTGATCACCCAACTTGGC	0	-	2794124	2794176	0,0,255	
-chrY	2794124	2794176	TGTTAGCCAGGATGGTTTCGATCTCCTGACCTGGTGATCACCCAACTTGGC	0	-	2794124	2794176	0,0,255	
-chrY	2794124	2794176	TGTTAGCCAGGATGGTTTCGATCTCCTGACCTGGTGATCACCCAACTTGGC	0	-	2794124	2794176	0,0,255	
-chrY	2794124	2794176	TGTTAGCCAGGATGGTTTCGATCTCCTGACCTGGTGATCACCCAACTTGGC	0	-	2794124	2794176	0,0,255	
-chrY	2794124	2794176	TGTTAGCCAGGATGGTTTCGATCTCCTGACCTGGTGATCACCCAACTTGGC	0	-	2794124	2794176	0,0,255	
-chrY	2794124	2794176	TGTTAGCCAGGATGGTTTCGATCTCCTGACCTGGTGATCACCCAACTTGGC	0	-	2794124	2794176	0,0,255	
-chrY	2794124	2794176	TGTTAGCCAGGATGGTTTCGATCTCCTGACCTGGTGATCACCCAACTTGGC	0	-	2794124	2794176	0,0,255	
-chrY	2794124	2794176	TGTTAGCCAGGATGGTTTCGATATCCTGACCTGGTGATCAACCAGCTTGGC	0	-	2794124	2794176	0,0,255	
-chrY	2794124	2794176	TGTTAGCCAGGATGGTTTCGATCTCCTGACCTGGTGATCACCCAACTTGGC	0	-	2794124	2794176	0,0,255	
-chrY	2794124	2794176	TGTTAGCCAGGATGGTTTCGATCTCCTGACCTGGTGATCACCCAACTTGGC	0	-	2794124	2794176	0,0,255	
-chrY	2794124	2794176	TGTTAGCCAGGATGGTTTCGATCTCCTGACCTGGTGATCACCCAACTTGGC	0	-	2794124	2794176	0,0,255	
-chrY	2794124	2794176	TGTTAGCCAGGATGGTTTCGATCTCCTGACCTGGTGATCACCCAACTTGGC	0	-	2794124	2794176	0,0,255	
-chrY	2794124	2794176	TGTTAGCCAGGATGGTTTCGATCTCCTGACCTGGTGATCACCCAACTTGGC	0	-	2794124	2794176	0,0,255	
-chrY	2794138	2794190	GTTTCGATCTCCTGACCTGGTGATCACCCAACTTGGCCTCCCAAAGTGCAG	0	-	2794138	2794190	0,0,255	
-chrY	2794138	2794190	GTTTCGATCTCCTGACCTGGTGATCACCCAACTTGGCCTCCCAAAGTGCAG	0	-	2794138	2794190	0,0,255	
-chrY	2794216	2794268	GGCCAACTGAAAAGCTTTTCATCAAGCTATTCAGCCCCGGGAGCAGCATCT	0	+	2794216	2794268	255,0,0	
-chrY	2794216	2794268	GGCCAACTGAAAAGCTTTTCATCAAGCTATTCAGCCCCGGGAGCAGCATCT	0	+	2794216	2794268	255,0,0	
-chrY	2794297	2794349	TTTGAGAGAAGTGGTACAGAGGCGAAGCCTGCTGTTGTTTTTTTGGCTGTG	0	+	2794297	2794349	255,0,0	
-chrY	2794297	2794349	TTTGAGAGAAGTGGTACAGAGGCGAAGCCTGCTGTTGTTTTTTTGGCTGTG	0	+	2794297	2794349	255,0,0	
-chrY	2794297	2794349	TTTGAGAGAAGTGGTACAGAGGCGAAGCCTGCTGTTGTTTTTTTGGCTGTG	0	+	2794297	2794349	255,0,0	
-chrY	2794297	2794349	TTTGAGAGAAGTGGTACAGAGGCGAAGCCTGCTGTTGTTTTTTTGGCTGTG	0	+	2794297	2794349	255,0,0	
-chrY	2794297	2794349	TTTGAGAGAAGTGGTACAGAGGCGAAGCCTGCTGTTGTTTTTTTGGCTGTG	0	+	2794297	2794349	255,0,0	
-chrY	2794297	2794349	TTTGAGAGAAGTGGTACAGAGGCGAAGCCTGCTGTTGTTTTTTTGGCTGTG	0	+	2794297	2794349	255,0,0	
-chrY	2794312	2794364	ACAGAGGCGAAGCCTGCTGTTGTTTTTTTGGCTGTGCCACTCAGAAGCTCT	0	-	2794312	2794364	0,0,255	
-chrY	2794312	2794364	ACAGAGGCGAAGCCTGCTGTTGTTTTTTTGGCTGTGCCACTCAGAAGCTCT	0	-	2794312	2794364	0,0,255	
-chrY	2794400	2794452	AAACCTCAGTTTATACCTTTGAAAGCAGGGGATCAGGGAAGTGAGTAAATG	0	-	2794400	2794452	0,0,255	
-chrY	2794400	2794452	AAACCTCAGTTTATACCTTTGAAAGCAGGGGATCAGGGAAGTGAGTAAATG	0	-	2794400	2794452	0,0,255	
-chrY	2794400	2794452	AAACCTCAGTTTATACCTTTGAAAGCAGGGGATCAGGGAAGTGAGTAAATG	0	-	2794400	2794452	0,0,255	
-chrY	2794400	2794452	AAACCTCAGTTTATACCTTTGAAAGCAGGGGATCAGGGAAGTGAGTAAATG	0	-	2794400	2794452	0,0,255	
-chrY	2794400	2794452	AAACCTCAGTTTATACCTTTGAAAGCAGGGGATCAGGGAAGTGAGTAAATG	0	-	2794400	2794452	0,0,255	
-chrY	2794400	2794452	AAACCTCAGTTTATACCTTTGAAAGCAGGGGATCAGGGAAGTGAGTAAATG	0	-	2794400	2794452	0,0,255	
-chrY	2794517	2794569	CTGAAGTTAGTGGCCTTGCCTTTAAAGATGCTTATGAAAAACTTGTTGGCT	0	+	2794517	2794569	255,0,0	
-chrY	2794517	2794569	CTGAAGTTAGTGGCCTTGCCTTTAAAGATGCTTATGAAAAACTTGTTGGCT	0	+	2794517	2794569	255,0,0	
-chrY	2794517	2794569	CTGAAGTTAGTGGCCTTGCCTTTAAAGATGCTTATGAAAAACTTGTTGGCT	0	+	2794517	2794569	255,0,0	
-chrY	2794517	2794569	CTGAAGTTAGTGGCCTTGCCTTTAAAGATGCTTATGAAAAACTTGTTGGCT	0	+	2794517	2794569	255,0,0	
-chrY	2794517	2794569	CTGAAGTTAGTGGCCTTGCCTTTAAAGATGCTTATGAAAAACTTGTTGGCT	0	+	2794517	2794569	255,0,0	
-chrY	2794517	2794569	CTGAAGTTAGTGGCCTTGCCTTTAAAGATGCTTATGAAAAACTTGTTGGCT	0	+	2794517	2794569	255,0,0	
-chrY	2794517	2794569	CTGAAGTTAGTGGCCTTGCCTTTAAAGATGCTTATGAAAAACTTGTTGGCT	0	+	2794517	2794569	255,0,0	
-chrY	2794517	2794569	CTGAAGTTAGTGGCCTTGCCTTTAAAGATGCTTATGAAAAACTTGTTGGCT	0	+	2794517	2794569	255,0,0	
-chrY	2794517	2794569	CTGAAGTTAGTGGCCTTGCCTTTAAAGATGCTTATGAAAAACTTGTTGGCT	0	+	2794517	2794569	255,0,0	
-chrY	2794517	2794569	CTGAAGTTAGTGGCCTTGCCTTTAAAGATGCTTATGAAAAACTTGTTGGCT	0	+	2794517	2794569	255,0,0	
-chrY	2794517	2794569	CTGAAGTTAGTGGCCTTGCCTTTAAAGATGCTTATGAAAAACTTGTTGGCT	0	+	2794517	2794569	255,0,0	
-chrY	2794517	2794569	CTGAAGTTAGTGGCCTTGCCTTTAAAGATGCTTATGAAAAACTTGTTGGCT	0	+	2794517	2794569	255,0,0	
-chrY	2794517	2794569	CTGAAGTTAGTGGCCTTGCCTTTAAAGATGCTTATGAAAAACTTGTTGGCT	0	+	2794517	2794569	255,0,0	
-chrY	2794517	2794569	CTGAAGTTAGTGGCCTTGCCTTTAAAGATGCTTAAGAAAAACTTGTTGGCT	0	+	2794517	2794569	255,0,0	
-chrY	2794517	2794569	CTGAAGTTAGTGGCCTTGCCTTTAAAGATGCTTATGAAAAACTTGTTGGCT	0	+	2794517	2794569	255,0,0	
-chrY	2794517	2794569	CTGAAGTTAGTGGCCTTGCCTTTAAAGATGCTTATGAAAAACTTGTTGGCT	0	+	2794517	2794569	255,0,0	
-chrY	2794517	2794569	CTGAAGTTAGTGGCCTTGCCTTTAAAGATGCTTATGAAAAACTTGTTGGCT	0	+	2794517	2794569	255,0,0	
-chrY	2794573	2794625	CTTCACATAAAATAGAAGCAGGAAGACCTTTATTTAGCAGCTCAGCAGTGA	0	+	2794573	2794625	255,0,0	
-chrY	2794573	2794625	CTTCACATAAAATAGAAGCAGGAAGACCTTTATTTAGCAGCTCAGCAGTGA	0	+	2794573	2794625	255,0,0	
-chrY	2794573	2794625	CTTCACATAAAATAGAAGCAGGAAGACCTTTATTTAGCAGCTCAGCAGTGA	0	+	2794573	2794625	255,0,0	
-chrY	2794573	2794625	CTTCACATAAAATAGAAGCAGGAAGACCTTTATTTAGCAGCTCAGCAGTGA	0	+	2794573	2794625	255,0,0	
-chrY	2794573	2794625	CTTCACATAAAATAGAAGCAGGAAGACCTTTATTTAGCAGCTCAGCAGTGA	0	+	2794573	2794625	255,0,0	
-chrY	2794573	2794625	CTTCACATAAAATAGAAGCAGGAAGACCTTTATTTAGCAGCTCAGCAGTGA	0	+	2794573	2794625	255,0,0	
-chrY	2794627	2794679	GTGGGAGGGACTGTGAGAGGCAGATAACCTCTCAGGAGACATGTATAAGGA	0	-	2794627	2794679	0,0,255	
-chrY	2794627	2794679	GTGGGAGGGACTGTGAGAGGCAGATAACCTCTCAGGAGACATGTATAAGGA	0	-	2794627	2794679	0,0,255	
-chrY	2794627	2794679	GTGGGAGGGACTGTGAGAGGCAGATAACCTCTCAGGAGACATGTATAAGGA	0	-	2794627	2794679	0,0,255	
-chrY	2794627	2794679	GTGGGAGGGACTGTGAGAGGCAGATAACCTCTCAGGAGACATGTATAAGGA	0	-	2794627	2794679	0,0,255	
-chrY	2794627	2794679	GTGGGAGGGACTGTGAGAGGCAGATAACCTCTCAGGAGACATGTATAAGGA	0	-	2794627	2794679	0,0,255	
-chrY	2794627	2794679	GTGGGAGGGACTGTGAGAGGCAGATAACCTCTCAGGAGACATGTATAAGGA	0	-	2794627	2794679	0,0,255	
-chrY	2794627	2794679	GTGGGAGGGACTGTGAGAGGCAGATAACCTCTCAGGAGACATGTATAAGGA	0	-	2794627	2794679	0,0,255	
-chrY	2794627	2794679	GTGGGAGGGACTGTGAGAGGCAGATAACCTCTCAGGAGACATGTATAAGGA	0	-	2794627	2794679	0,0,255	
-chrY	2794627	2794679	GTGGGAGGGACTGTGAGAGGCAGATAACCTCTCAGGAGACATGTATAAGGA	0	-	2794627	2794679	0,0,255	
-chrY	2794627	2794679	GTGGGAGGGACTGTGAGAGGCAGATAACCTCTCAGGAGACATGTATAAGGA	0	-	2794627	2794679	0,0,255	
-chrY	2794627	2794679	GTGGGAGGGACTGTGAGAGGCAGATAACCTCTCAGGAGACATGTATAAGGA	0	-	2794627	2794679	0,0,255	
-chrY	2794627	2794679	GTGGGAGGGACTGTGAGAGGCAGATAACCTCTCAGGAGACATGTATAAGGA	0	-	2794627	2794679	0,0,255	
-chrY	2794627	2794679	GTGGGAGGGACTGTGAGAGGCAGATAACCTCTCAGGAGACATGTATAAGGA	0	-	2794627	2794679	0,0,255	
-chrY	2794627	2794679	GTGGGAGGGACTGTGAGAGGCAGATAACCTCTCAGGAGACATGTATAAGGA	0	-	2794627	2794679	0,0,255	
-chrY	2794627	2794679	GTGGGAGGGACTGTGAGAGGCAGATAACCTCTCAGGAGACATGTATAAGGA	0	-	2794627	2794679	0,0,255	
-chrY	2794627	2794679	GTGGGAGGGACTGTGAGAGGCAGATAACCTCTCAGGAGACATGTATAAGGA	0	-	2794627	2794679	0,0,255	
-chrY	2794667	2794719	ATGTATAAGGAAGTGTTTATTTTGTTTTAGATTTTGTTGGGTGGTGGTCTG	0	-	2794667	2794719	0,0,255	
-chrY	2794667	2794719	ATGTATAAGGAAGTGTTTATTTTGTTTTAGATTTTGTTGGGTGGTGGTCTG	0	-	2794667	2794719	0,0,255	
-chrY	2794667	2794719	ATGTATAAGGAAGTGTTTATTTTGTTTTAGATTGTGTTGGGTGGTGGTCTG	0	-	2794667	2794719	0,0,255	
-chrY	2794667	2794719	ATGTATAAGGAAGTGTTTATTTTGTTTTAGATTTTGTTGGGTGGTGGTCTG	0	-	2794667	2794719	0,0,255	
-chrY	2794667	2794719	ATGTATAAGGAAGTGTTTATTTTGTTTTAGATTTTGTTGGGTGGTGGTCTG	0	-	2794667	2794719	0,0,255	
-chrY	2794667	2794719	ATGTATAAGGAAGTGTTTATTTTGTTTTAGATTTTGTTGGGTGGTGGTCTG	0	-	2794667	2794719	0,0,255	
-chrY	2794704	2794756	TGGGTGGTGGTCTGTTAGCTGGCTATTAATGTGAAGGAAGGTATGAGGCAT	0	-	2794704	2794756	0,0,255	
-chrY	2794704	2794756	TGGGTGGTGGTCTGTTAGCTGGCTATTAATGTGAAGGAAGGTATGAGGCAT	0	-	2794704	2794756	0,0,255	
-chrY	2794704	2794756	TGGGTGGTGGTCTGTTAGCTGGCTATTAATGTGAAGGAAGGTATGAGGCAT	0	-	2794704	2794756	0,0,255	
-chrY	2794704	2794756	TGGGTGGTGGTCTGTTAGCTGGCTATTAATGTGAAGGAAGGTATGAGGCAT	0	-	2794704	2794756	0,0,255	
-chrY	2794704	2794756	TGGGTGGTGGTCTGTTAGCTGGCTATTAATGTGAAGGAAGGTATGAGGCAT	0	-	2794704	2794756	0,0,255	
-chrY	2794704	2794756	TGGGTGGTGGTCTGTTAGCTGGCTATTAATGTGAAGGAAGGTATGAGGCAT	0	-	2794704	2794756	0,0,255	
-chrY	2794704	2794756	TGGGTGGTGGTCTGTTAGCTGGCTATTAATGTGAAGGAAGGTATGAGGCAT	0	-	2794704	2794756	0,0,255	
-chrY	2794704	2794756	TGGGTGGTGGTCTGTTAGCTGGCTATTAATGTGAAGGAAGGTATGAGGCAT	0	-	2794704	2794756	0,0,255	
-chrY	2794704	2794756	TGGGTGGTGGTCTGTTAGCTGGCTATTAATGTGAAGGAAGGTATGAGGCAT	0	-	2794704	2794756	0,0,255	
-chrY	2794704	2794756	TGGGTGGTGGTCTGTTAGCTGGCTATTAATGTGAAGGAAGGTATGAGGCAT	0	-	2794704	2794756	0,0,255	
-chrY	2794704	2794756	TGGGTGGTGGTCTGTTAGCTGGCTATTAATGTGAAGGAAGGTATGAGGCAT	0	-	2794704	2794756	0,0,255	
-chrY	2794704	2794756	TGGGTGGTGGTCTGTTAGCTGGCTATTAATGTGAAGGAAGGTATGAGGCAT	0	-	2794704	2794756	0,0,255	
-chrY	2794704	2794756	TGGGTGGTGGTCTGTTAGCTGGCTATTAATGTGAAGGAAGGTATGAGGCAT	0	-	2794704	2794756	0,0,255	
-chrY	2794704	2794756	TGGGTGGTGGTCTGTTAGCTGGCTATTAATGTGAAGGAAGGTATGAGGCAT	0	-	2794704	2794756	0,0,255	
-chrY	2794704	2794756	TGGGTGGTGGTCTGTTAGCTGGCTATTAATGTGAAGGAAGGTATGAGGCAT	0	-	2794704	2794756	0,0,255	
-chrY	2794704	2794756	TGGGTGGTGGTCTGTTAGCTGGCTATTAATGTGAAGGAAGGTATGAGGCAT	0	-	2794704	2794756	0,0,255	
-chrY	2794704	2794756	TGGGTGGTGGTCTGTTAGCTGGCTATTAATGTGAAGGAAGGTATGAGGCAT	0	-	2794704	2794756	0,0,255	
-chrY	2794727	2794779	TATTAATGTGAAGGAAGGTATGAGGCATGTGTGTTTTGGTGGGATGTTGTT	0	+	2794727	2794779	255,0,0	
-chrY	2794727	2794779	TATTAATGTGAAGGAAGGTATGAGGCATGTGTGTTTTGGTGGGATGTTGTT	0	+	2794727	2794779	255,0,0	
-chrY	2794727	2794779	TATTAATGTGAAGGAAGGTATGAGGCATGTGTGTTTTGGTGGGATGTTGTT	0	+	2794727	2794779	255,0,0	
-chrY	2794727	2794779	TATTAATGTGAAGGAAGGTATGAGGCATGTGTGTTTTGGTGGGATGTTGTT	0	+	2794727	2794779	255,0,0	
-chrY	2794727	2794779	TATTAATGTGAAGGAAGGTATGAGGCATGTGTGTTTTGGTGGGATGTTGTT	0	+	2794727	2794779	255,0,0	
-chrY	2794727	2794779	TATTAATGTGAAGGAAGGTATGAGGCATGTGTGTTTTGGTGGGATGTTGTT	0	+	2794727	2794779	255,0,0	
-chrY	2794727	2794779	TATTAATGTGAAGGAAGGTATGAGGCATGTGTGTTTTGGTGGGATGTTGTT	0	+	2794727	2794779	255,0,0	
-chrY	2794727	2794779	TATTAATGTGAAGGAAGGTATGAGGCATGTGTGTTTTGGTGGGATGTTGTT	0	+	2794727	2794779	255,0,0	
-chrY	2794727	2794779	TATTAATGTGAAGGAAGGTATGAGGCATGTGTGTTTTGGTGGGATGTTGTT	0	+	2794727	2794779	255,0,0	
-chrY	2794727	2794779	TATTAATGTGAAGGAAGGTATGAGGCATGTGTGTTTTGGTGGGATGTTGTT	0	+	2794727	2794779	255,0,0	
-chrY	2794727	2794779	TATTAATGTGAAGGAAGGTATGAGGCATGTGTGTTTTGGTGGGATGTTGTT	0	+	2794727	2794779	255,0,0	
-chrY	2794727	2794779	TATTAATGTGAAGGAAGGTATGAGGCATGTGTGTTTTGGTGGGATGTTGTT	0	+	2794727	2794779	255,0,0	
-chrY	2794727	2794779	TATTAATGTGAAGGAAGGTATGAGGCATGTGTGTTTTGGTGGGATGTTGTT	0	+	2794727	2794779	255,0,0	
-chrY	2794727	2794779	TATTAATGTGAAGGAAGGTATGAGGCATGTGTGTTTTGGTGGGATGTTGTT	0	+	2794727	2794779	255,0,0	
-chrY	2794727	2794779	TATTAATGTGAAGGAAGGTATGAGGCATGTGTGTTTTGGTGGGATGTTGTT	0	+	2794727	2794779	255,0,0	
-chrY	2794759	2794811	GTTTTGGTGGGATGTTGTTTTTCTCTCCTCCCTTTCTTTCTGTACTTACTT	0	+	2794759	2794811	255,0,0	
-chrY	2794759	2794811	GTTTTGGTGGGATGTTGTTTTTCTCTCCTCCCTTTCTTTCTGTACTTACTT	0	+	2794759	2794811	255,0,0	
-chrY	2794845	2794897	GATTTCCCTGCCCAGGGGAAAGGGCATTCGACTTACTGTCTCTGAAGAGAG	0	-	2794845	2794897	0,0,255	
-chrY	2794845	2794897	GATTTCCCTGCCCAGGGGAAAGGGCATTCGACTTACTGTCTCTGAAGAGAG	0	-	2794845	2794897	0,0,255	
-chrY	2794845	2794897	GATTTCCCTGCCCAGGGGAAAGGGCATTCGACTTACTGTCTCTGAAGAGAG	0	-	2794845	2794897	0,0,255	
-chrY	2794845	2794897	GATTTCCCTGCCCAGGGGAAAGGGCATTCGACTTACTGTCTCTGAAGAGAG	0	-	2794845	2794897	0,0,255	
-chrY	2794845	2794897	GATTTCCCTGCCCAGGGGAAAGGGCATTCGACTTACTGTCTCTGAAGAGAG	0	-	2794845	2794897	0,0,255	
-chrY	2794845	2794897	GATTTCCCTGCCCAGGGGAAAGGGCATTCGACTTACTGTCTCTGAAGAGAG	0	-	2794845	2794897	0,0,255	
-chrY	2794845	2794897	GATTTCCCTGCCCAGGGGAAAGGGCATTCGACTTACTGTCTCTGAAGAGAG	0	-	2794845	2794897	0,0,255	
-chrY	2794845	2794897	GATTTCCCTGCCCAGGGGAAAGGGCATTCGACTTACTGTCTCTGAAGAGAG	0	-	2794845	2794897	0,0,255	
-chrY	2794845	2794897	GATTTCCCTGCCCAGGGGAAAGGGCATTCGACTTACTGTCTCTGAAGAGAG	0	-	2794845	2794897	0,0,255	
-chrY	2794845	2794897	GATTTCCCTGCCCAGGGGAAAGGGCATTCGACTTACTGTCTCTGAAGAGAG	0	-	2794845	2794897	0,0,255	
-chrY	2794845	2794897	GATTTCCCTGCCCAGGGGAAAGGGCATTCGACTTACTGTCTCTGAAGAGAG	0	-	2794845	2794897	0,0,255	
-chrY	2794845	2794897	GATTTCCCTGCCCAGGGGAAAGGGCATTCGACTTACTGTCTCTGAAGAGAG	0	-	2794845	2794897	0,0,255	
-chrY	2794845	2794897	GATTTCCCTGCCCAGGGGAAAGGGCATTCGACTTACTGTCTCTGAAGAGAG	0	-	2794845	2794897	0,0,255	
-chrY	2794845	2794897	GATTTCCCTGCCCAGGGGAAAGGGCATTCGACTTACTGTCTCTGAAGAGAG	0	-	2794845	2794897	0,0,255	
-chrY	2794845	2794897	GATTTCCCTGCCCAGGGGAAAGGGCATTCGACTTACTGTCTCTGAAGAGAG	0	-	2794845	2794897	0,0,255	
-chrY	2794845	2794897	GATTTCCCTGCCCAGGGGAAAGGGCATTCGACTTACTGTCTCTGAAGAGAG	0	-	2794845	2794897	0,0,255	
-chrY	2794845	2794897	GATTTCCCTGCCCAGGGGAAAGGGCATTCGACTTACTGTCTCTGAAGAGAG	0	-	2794845	2794897	0,0,255	
-chrY	2794845	2794897	GATTTCCCTGCCCAGGGGAAAGGGCATTCGACTTACTGTCTCTGAAGAGAG	0	-	2794845	2794897	0,0,255	
-chrY	2794845	2794897	GATTTCCCTGCCCAGGGGAAAGGGCATTCGACTTACTGTCTCTGAAGAGAG	0	-	2794845	2794897	0,0,255	
-chrY	2794845	2794897	GATTTCCCTGCCCAGGGGAAAGGGCATTCGACTTACTGTCTCTGAAGAGAG	0	-	2794845	2794897	0,0,255	
-chrY	2794845	2794897	GATTTCCCTGCCCAGGGGAAAGGGCATTCGACTTACTGTCTCTGAAGAGAG	0	-	2794845	2794897	0,0,255	
-chrY	2794845	2794897	GATTTCCCTGCCCAGGGGAAAGGGCATTCGACTTACTGTCTCTGAAGAGAG	0	-	2794845	2794897	0,0,255	
-chrY	2794845	2794897	GATTTCCCTGCCCAGGGGAAAGGGCATTCGACTTACTGTCTCTGAAGAGAG	0	-	2794845	2794897	0,0,255	
-chrY	2794845	2794897	GATTTCCCTGCCCAGGGGAAAGGGCATTCGACTTACTGTCTCTGAAGAGAG	0	-	2794845	2794897	0,0,255	
-chrY	2794845	2794897	GATTTCCCTGCCCAGGGGAAAGGGCATTCGACTTACTGTCTCTGAAGAGAG	0	-	2794845	2794897	0,0,255	
-chrY	2794845	2794897	GATTTCCCTGCCCAGGGGAAAGGGCATTCGACTTACTGTCTCTGAAGAGAG	0	-	2794845	2794897	0,0,255	
-chrY	2794845	2794897	GATTTCCCTGCCCAGGGGAAAGGGCATTCGACTTACTGTCTCTGAAGAGAG	0	-	2794845	2794897	0,0,255	
-chrY	2794845	2794897	GATTTCCCTGCCCAGGGGAAAGGGCATTCGACTTACTGTCTCTGAAGAGAG	0	-	2794845	2794897	0,0,255	
-chrY	2794845	2794897	GATTTCCCTGCCCAGGGGAAAGGGCATTCGACTTACTGTCTCTGAAGAGAG	0	-	2794845	2794897	0,0,255	
-chrY	2794845	2794897	GATTTCCCTGCCCAGGGGAAAGGGCATTCGACTTACTGTCTCTGAAGAGAG	0	-	2794845	2794897	0,0,255	
-chrY	2794852	2794904	TTGCCCAGGGGAAAGGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAG	0	-	2794852	2794904	0,0,255	
-chrY	2794858	2794910	AGGGGAAAGGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTA	0	-	2794858	2794910	0,0,255	
-chrY	2794862	2794914	GAAAGGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCA	0	-	2794862	2794914	0,0,255	
-chrY	2794862	2794914	GAAAGGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCA	0	-	2794862	2794914	0,0,255	
-chrY	2794862	2794914	GAAAGGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCA	0	-	2794862	2794914	0,0,255	
-chrY	2794862	2794914	GAAAGGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCA	0	-	2794862	2794914	0,0,255	
-chrY	2794862	2794914	GAAAGGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCA	0	-	2794862	2794914	0,0,255	
-chrY	2794862	2794914	GAAAGGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCA	0	-	2794862	2794914	0,0,255	
-chrY	2794866	2794918	GGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAA	0	-	2794866	2794918	0,0,255	
-chrY	2794866	2794918	GGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAA	0	-	2794866	2794918	0,0,255	
-chrY	2794866	2794918	GGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAA	0	-	2794866	2794918	0,0,255	
-chrY	2794866	2794918	GGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAA	0	-	2794866	2794918	0,0,255	
-chrY	2794866	2794918	GGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAA	0	-	2794866	2794918	0,0,255	
-chrY	2794866	2794918	GGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAA	0	-	2794866	2794918	0,0,255	
-chrY	2794866	2794918	GGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAA	0	-	2794866	2794918	0,0,255	
-chrY	2794866	2794918	GGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAA	0	-	2794866	2794918	0,0,255	
-chrY	2794866	2794918	GGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAA	0	-	2794866	2794918	0,0,255	
-chrY	2794866	2794918	GGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAA	0	-	2794866	2794918	0,0,255	
-chrY	2794866	2794918	GGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAA	0	-	2794866	2794918	0,0,255	
-chrY	2794866	2794918	GGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAA	0	-	2794866	2794918	0,0,255	
-chrY	2794866	2794918	GGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAA	0	-	2794866	2794918	0,0,255	
-chrY	2794866	2794918	GGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAA	0	-	2794866	2794918	0,0,255	
-chrY	2794866	2794918	GGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAA	0	-	2794866	2794918	0,0,255	
-chrY	2794866	2794918	GGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAA	0	-	2794866	2794918	0,0,255	
-chrY	2794866	2794918	GGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAA	0	-	2794866	2794918	0,0,255	
-chrY	2794866	2794918	GGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAA	0	-	2794866	2794918	0,0,255	
-chrY	2794866	2794918	GGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAA	0	-	2794866	2794918	0,0,255	
-chrY	2794866	2794918	GGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAA	0	-	2794866	2794918	0,0,255	
-chrY	2794866	2794918	GGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAA	0	-	2794866	2794918	0,0,255	
-chrY	2794866	2794918	GGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAA	0	-	2794866	2794918	0,0,255	
-chrY	2794866	2794918	GGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAA	0	-	2794866	2794918	0,0,255	
-chrY	2794866	2794918	GGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAA	0	-	2794866	2794918	0,0,255	
-chrY	2794866	2794918	GGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAA	0	-	2794866	2794918	0,0,255	
-chrY	2794866	2794918	GGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAA	0	-	2794866	2794918	0,0,255	
-chrY	2794866	2794918	GGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAA	0	-	2794866	2794918	0,0,255	
-chrY	2794866	2794918	GGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAA	0	-	2794866	2794918	0,0,255	
-chrY	2794866	2794918	GGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAA	0	-	2794866	2794918	0,0,255	
-chrY	2794866	2794918	GGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAA	0	-	2794866	2794918	0,0,255	
-chrY	2794866	2794918	GGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAA	0	-	2794866	2794918	0,0,255	
-chrY	2794866	2794918	GGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAA	0	-	2794866	2794918	0,0,255	
-chrY	2794866	2794918	GGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAA	0	-	2794866	2794918	0,0,255	
-chrY	2794866	2794918	GGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAA	0	-	2794866	2794918	0,0,255	
-chrY	2794866	2794918	GGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAA	0	-	2794866	2794918	0,0,255	
-chrY	2794866	2794918	GGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAA	0	-	2794866	2794918	0,0,255	
-chrY	2794866	2794918	GGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAA	0	-	2794866	2794918	0,0,255	
-chrY	2794866	2794918	GGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAA	0	-	2794866	2794918	0,0,255	
-chrY	2794866	2794918	GGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAA	0	-	2794866	2794918	0,0,255	
-chrY	2794866	2794918	GGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAA	0	-	2794866	2794918	0,0,255	
-chrY	2794866	2794918	GGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAA	0	-	2794866	2794918	0,0,255	
-chrY	2794866	2794918	GGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAA	0	-	2794866	2794918	0,0,255	
-chrY	2794866	2794918	GGGCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAA	0	-	2794866	2794918	0,0,255	
-chrY	2794868	2794920	GCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAAC	0	-	2794868	2794920	0,0,255	
-chrY	2794868	2794920	GCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAAC	0	-	2794868	2794920	0,0,255	
-chrY	2794868	2794920	GCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAAC	0	-	2794868	2794920	0,0,255	
-chrY	2794868	2794920	GCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAAC	0	-	2794868	2794920	0,0,255	
-chrY	2794868	2794920	GCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAAC	0	-	2794868	2794920	0,0,255	
-chrY	2794868	2794920	GCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAAC	0	-	2794868	2794920	0,0,255	
-chrY	2794868	2794920	GCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAAC	0	-	2794868	2794920	0,0,255	
-chrY	2794868	2794920	GCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAAC	0	-	2794868	2794920	0,0,255	
-chrY	2794868	2794920	GCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAAC	0	-	2794868	2794920	0,0,255	
-chrY	2794868	2794920	GCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAAC	0	-	2794868	2794920	0,0,255	
-chrY	2794868	2794920	GCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAAC	0	-	2794868	2794920	0,0,255	
-chrY	2794868	2794920	GCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAAC	0	-	2794868	2794920	0,0,255	
-chrY	2794868	2794920	GCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAAC	0	-	2794868	2794920	0,0,255	
-chrY	2794868	2794920	GCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAAC	0	-	2794868	2794920	0,0,255	
-chrY	2794868	2794920	GCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAAC	0	-	2794868	2794920	0,0,255	
-chrY	2794868	2794920	GCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAAC	0	-	2794868	2794920	0,0,255	
-chrY	2794868	2794920	GCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAAC	0	-	2794868	2794920	0,0,255	
-chrY	2794868	2794920	GCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAAC	0	-	2794868	2794920	0,0,255	
-chrY	2794868	2794920	GCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAAC	0	-	2794868	2794920	0,0,255	
-chrY	2794868	2794920	GCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAAC	0	-	2794868	2794920	0,0,255	
-chrY	2794868	2794920	GCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAAC	0	-	2794868	2794920	0,0,255	
-chrY	2794868	2794920	GCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAAC	0	-	2794868	2794920	0,0,255	
-chrY	2794868	2794920	GCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAAC	0	-	2794868	2794920	0,0,255	
-chrY	2794868	2794920	GCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAAC	0	-	2794868	2794920	0,0,255	
-chrY	2794868	2794920	GCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAAC	0	-	2794868	2794920	0,0,255	
-chrY	2794868	2794920	GCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAAC	0	-	2794868	2794920	0,0,255	
-chrY	2794868	2794920	GCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAAC	0	-	2794868	2794920	0,0,255	
-chrY	2794868	2794920	GCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAAC	0	-	2794868	2794920	0,0,255	
-chrY	2794868	2794920	GCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAAC	0	-	2794868	2794920	0,0,255	
-chrY	2794868	2794920	GCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAAC	0	-	2794868	2794920	0,0,255	
-chrY	2794868	2794920	GCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAAC	0	-	2794868	2794920	0,0,255	
-chrY	2794868	2794920	GCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAAC	0	-	2794868	2794920	0,0,255	
-chrY	2794868	2794920	GCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAAC	0	-	2794868	2794920	0,0,255	
-chrY	2794868	2794920	GCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAAC	0	-	2794868	2794920	0,0,255	
-chrY	2794868	2794920	GCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAAC	0	-	2794868	2794920	0,0,255	
-chrY	2794868	2794920	GCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAAC	0	-	2794868	2794920	0,0,255	
-chrY	2794868	2794920	GCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAAC	0	-	2794868	2794920	0,0,255	
-chrY	2794868	2794920	GCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAAC	0	-	2794868	2794920	0,0,255	
-chrY	2794868	2794920	GCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAAC	0	-	2794868	2794920	0,0,255	
-chrY	2794868	2794920	GCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAAC	0	-	2794868	2794920	0,0,255	
-chrY	2794868	2794920	GCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAAC	0	-	2794868	2794920	0,0,255	
-chrY	2794868	2794920	GCATTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAAC	0	-	2794868	2794920	0,0,255	
-chrY	2794871	2794923	TTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGA	0	-	2794871	2794923	0,0,255	
-chrY	2794871	2794923	TTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGA	0	-	2794871	2794923	0,0,255	
-chrY	2794871	2794923	TTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGA	0	-	2794871	2794923	0,0,255	
-chrY	2794871	2794923	TTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGA	0	-	2794871	2794923	0,0,255	
-chrY	2794871	2794923	TTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGA	0	-	2794871	2794923	0,0,255	
-chrY	2794871	2794923	TTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGA	0	-	2794871	2794923	0,0,255	
-chrY	2794871	2794923	TTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGA	0	-	2794871	2794923	0,0,255	
-chrY	2794871	2794923	TTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGA	0	-	2794871	2794923	0,0,255	
-chrY	2794871	2794923	TTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGA	0	-	2794871	2794923	0,0,255	
-chrY	2794871	2794923	TTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGA	0	-	2794871	2794923	0,0,255	
-chrY	2794871	2794923	TTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGA	0	-	2794871	2794923	0,0,255	
-chrY	2794871	2794923	TTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGA	0	-	2794871	2794923	0,0,255	
-chrY	2794871	2794923	TTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGA	0	-	2794871	2794923	0,0,255	
-chrY	2794871	2794923	TTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGA	0	-	2794871	2794923	0,0,255	
-chrY	2794871	2794923	TTCGACTTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGA	0	-	2794871	2794923	0,0,255	
-chrY	2794877	2794929	TTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTG	0	-	2794877	2794929	0,0,255	
-chrY	2794877	2794929	TTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTG	0	-	2794877	2794929	0,0,255	
-chrY	2794877	2794929	TTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTG	0	-	2794877	2794929	0,0,255	
-chrY	2794877	2794929	TTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTG	0	-	2794877	2794929	0,0,255	
-chrY	2794877	2794929	TTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTG	0	-	2794877	2794929	0,0,255	
-chrY	2794877	2794929	TTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTG	0	-	2794877	2794929	0,0,255	
-chrY	2794877	2794929	TTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTG	0	-	2794877	2794929	0,0,255	
-chrY	2794877	2794929	TTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTG	0	-	2794877	2794929	0,0,255	
-chrY	2794877	2794929	TTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTG	0	-	2794877	2794929	0,0,255	
-chrY	2794877	2794929	TTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTG	0	-	2794877	2794929	0,0,255	
-chrY	2794877	2794929	TTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTG	0	-	2794877	2794929	0,0,255	
-chrY	2794877	2794929	TTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTG	0	-	2794877	2794929	0,0,255	
-chrY	2794877	2794929	TTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTG	0	-	2794877	2794929	0,0,255	
-chrY	2794877	2794929	TTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTG	0	-	2794877	2794929	0,0,255	
-chrY	2794877	2794929	TTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTG	0	-	2794877	2794929	0,0,255	
-chrY	2794877	2794929	TTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTG	0	-	2794877	2794929	0,0,255	
-chrY	2794877	2794929	TTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTG	0	-	2794877	2794929	0,0,255	
-chrY	2794877	2794929	TTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTG	0	-	2794877	2794929	0,0,255	
-chrY	2794877	2794929	TTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTG	0	-	2794877	2794929	0,0,255	
-chrY	2794877	2794929	TTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTG	0	-	2794877	2794929	0,0,255	
-chrY	2794877	2794929	TTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTG	0	-	2794877	2794929	0,0,255	
-chrY	2794877	2794929	TTACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTG	0	-	2794877	2794929	0,0,255	
-chrY	2794878	2794930	TACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGG	0	-	2794878	2794930	0,0,255	
-chrY	2794878	2794930	TACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGG	0	-	2794878	2794930	0,0,255	
-chrY	2794878	2794930	TACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGG	0	-	2794878	2794930	0,0,255	
-chrY	2794878	2794930	TACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGG	0	-	2794878	2794930	0,0,255	
-chrY	2794878	2794930	TACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGG	0	-	2794878	2794930	0,0,255	
-chrY	2794878	2794930	TACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGG	0	-	2794878	2794930	0,0,255	
-chrY	2794878	2794930	TACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGG	0	-	2794878	2794930	0,0,255	
-chrY	2794878	2794930	TACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGG	0	-	2794878	2794930	0,0,255	
-chrY	2794878	2794930	TACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGG	0	-	2794878	2794930	0,0,255	
-chrY	2794878	2794930	TACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGG	0	-	2794878	2794930	0,0,255	
-chrY	2794878	2794930	TACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGG	0	-	2794878	2794930	0,0,255	
-chrY	2794878	2794930	TACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGG	0	-	2794878	2794930	0,0,255	
-chrY	2794878	2794930	TACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGG	0	-	2794878	2794930	0,0,255	
-chrY	2794878	2794930	TACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGG	0	-	2794878	2794930	0,0,255	
-chrY	2794878	2794930	TACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGG	0	-	2794878	2794930	0,0,255	
-chrY	2794878	2794930	TACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGG	0	-	2794878	2794930	0,0,255	
-chrY	2794878	2794930	TACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGG	0	-	2794878	2794930	0,0,255	
-chrY	2794878	2794930	TACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGG	0	-	2794878	2794930	0,0,255	
-chrY	2794878	2794930	TACTGTTGCTGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGG	0	-	2794878	2794930	0,0,255	
-chrY	2794887	2794939	TGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGC	0	-	2794887	2794939	0,0,255	
-chrY	2794887	2794939	TGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGC	0	-	2794887	2794939	0,0,255	
-chrY	2794887	2794939	TGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGC	0	-	2794887	2794939	0,0,255	
-chrY	2794887	2794939	GGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGC	0	-	2794887	2794939	0,0,255	
-chrY	2794887	2794939	TGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGC	0	-	2794887	2794939	0,0,255	
-chrY	2794887	2794939	TGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGC	0	-	2794887	2794939	0,0,255	
-chrY	2794887	2794939	TGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGC	0	-	2794887	2794939	0,0,255	
-chrY	2794887	2794939	TGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGC	0	-	2794887	2794939	0,0,255	
-chrY	2794887	2794939	TGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGC	0	-	2794887	2794939	0,0,255	
-chrY	2794887	2794939	TGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGC	0	-	2794887	2794939	0,0,255	
-chrY	2794887	2794939	TGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGC	0	-	2794887	2794939	0,0,255	
-chrY	2794887	2794939	TGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGC	0	-	2794887	2794939	0,0,255	
-chrY	2794887	2794939	TGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGC	0	-	2794887	2794939	0,0,255	
-chrY	2794887	2794939	TGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGC	0	-	2794887	2794939	0,0,255	
-chrY	2794887	2794939	TGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGC	0	-	2794887	2794939	0,0,255	
-chrY	2794887	2794939	TGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGC	0	-	2794887	2794939	0,0,255	
-chrY	2794887	2794939	TGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGC	0	-	2794887	2794939	0,0,255	
-chrY	2794887	2794939	TGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGC	0	-	2794887	2794939	0,0,255	
-chrY	2794887	2794939	TGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGC	0	-	2794887	2794939	0,0,255	
-chrY	2794887	2794939	TGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGC	0	-	2794887	2794939	0,0,255	
-chrY	2794887	2794939	TGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGC	0	-	2794887	2794939	0,0,255	
-chrY	2794887	2794939	TGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGC	0	-	2794887	2794939	0,0,255	
-chrY	2794887	2794939	TGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGC	0	-	2794887	2794939	0,0,255	
-chrY	2794887	2794939	TGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGC	0	-	2794887	2794939	0,0,255	
-chrY	2794887	2794939	TGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGC	0	-	2794887	2794939	0,0,255	
-chrY	2794887	2794939	TGAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGC	0	-	2794887	2794939	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAAAGGTTGGCCACCAAACAAAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794888	2794940	GAAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCA	0	-	2794888	2794940	0,0,255	
-chrY	2794889	2794941	AAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAG	0	-	2794889	2794941	0,0,255	
-chrY	2794889	2794941	AAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAG	0	-	2794889	2794941	0,0,255	
-chrY	2794889	2794941	AAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAG	0	-	2794889	2794941	0,0,255	
-chrY	2794889	2794941	AAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAG	0	-	2794889	2794941	0,0,255	
-chrY	2794889	2794941	AAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAG	0	-	2794889	2794941	0,0,255	
-chrY	2794889	2794941	AAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAG	0	-	2794889	2794941	0,0,255	
-chrY	2794889	2794941	AAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAG	0	-	2794889	2794941	0,0,255	
-chrY	2794889	2794941	AAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAG	0	-	2794889	2794941	0,0,255	
-chrY	2794889	2794941	AAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAG	0	-	2794889	2794941	0,0,255	
-chrY	2794889	2794941	AAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAG	0	-	2794889	2794941	0,0,255	
-chrY	2794889	2794941	AAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAG	0	-	2794889	2794941	0,0,255	
-chrY	2794889	2794941	AAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAG	0	-	2794889	2794941	0,0,255	
-chrY	2794889	2794941	AAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAG	0	-	2794889	2794941	0,0,255	
-chrY	2794889	2794941	AAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAG	0	-	2794889	2794941	0,0,255	
-chrY	2794889	2794941	AAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAG	0	-	2794889	2794941	0,0,255	
-chrY	2794889	2794941	AAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAG	0	-	2794889	2794941	0,0,255	
-chrY	2794889	2794941	AAGAGAGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAG	0	-	2794889	2794941	0,0,255	
-chrY	2794894	2794946	AGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCA	0	-	2794894	2794946	0,0,255	
-chrY	2794894	2794946	AGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCC	0	-	2794894	2794946	0,0,255	
-chrY	2794894	2794946	AGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCC	0	-	2794894	2794946	0,0,255	
-chrY	2794894	2794946	AGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCC	0	-	2794894	2794946	0,0,255	
-chrY	2794894	2794946	AGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCC	0	-	2794894	2794946	0,0,255	
-chrY	2794894	2794946	AGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCC	0	-	2794894	2794946	0,0,255	
-chrY	2794894	2794946	AGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCA	0	-	2794894	2794946	0,0,255	
-chrY	2794894	2794946	AGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCA	0	-	2794894	2794946	0,0,255	
-chrY	2794894	2794946	AGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCA	0	-	2794894	2794946	0,0,255	
-chrY	2794894	2794946	AGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCC	0	-	2794894	2794946	0,0,255	
-chrY	2794894	2794946	AGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCC	0	-	2794894	2794946	0,0,255	
-chrY	2794894	2794946	AGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCC	0	-	2794894	2794946	0,0,255	
-chrY	2794894	2794946	AGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCA	0	-	2794894	2794946	0,0,255	
-chrY	2794894	2794946	AGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCC	0	-	2794894	2794946	0,0,255	
-chrY	2794894	2794946	AGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCA	0	-	2794894	2794946	0,0,255	
-chrY	2794894	2794946	AGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCA	0	-	2794894	2794946	0,0,255	
-chrY	2794894	2794946	AGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCC	0	-	2794894	2794946	0,0,255	
-chrY	2794894	2794946	AGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCC	0	-	2794894	2794946	0,0,255	
-chrY	2794894	2794946	AGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCC	0	-	2794894	2794946	0,0,255	
-chrY	2794894	2794946	AGAGATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCC	0	-	2794894	2794946	0,0,255	
-chrY	2794897	2794949	GATAAGAGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCAGCG	0	-	2794897	2794949	0,0,255	
-chrY	2794903	2794955	AGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTT	0	-	2794903	2794955	0,0,255	
-chrY	2794903	2794955	AGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTT	0	-	2794903	2794955	0,0,255	
-chrY	2794903	2794955	AGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTT	0	-	2794903	2794955	0,0,255	
-chrY	2794903	2794955	AGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTT	0	-	2794903	2794955	0,0,255	
-chrY	2794903	2794955	AGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTT	0	-	2794903	2794955	0,0,255	
-chrY	2794903	2794955	AGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTT	0	-	2794903	2794955	0,0,255	
-chrY	2794903	2794955	AGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTT	0	-	2794903	2794955	0,0,255	
-chrY	2794903	2794955	AGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTT	0	-	2794903	2794955	0,0,255	
-chrY	2794903	2794955	AGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTT	0	-	2794903	2794955	0,0,255	
-chrY	2794903	2794955	AGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTT	0	-	2794903	2794955	0,0,255	
-chrY	2794903	2794955	AGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTT	0	-	2794903	2794955	0,0,255	
-chrY	2794903	2794955	AGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTT	0	-	2794903	2794955	0,0,255	
-chrY	2794903	2794955	AGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTT	0	-	2794903	2794955	0,0,255	
-chrY	2794903	2794955	AGGCTGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTT	0	-	2794903	2794955	0,0,255	
-chrY	2794907	2794959	TGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTTTTTT	0	-	2794907	2794959	0,0,255	
-chrY	2794907	2794959	TGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTTTTTT	0	-	2794907	2794959	0,0,255	
-chrY	2794907	2794959	TGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTTTTTT	0	-	2794907	2794959	0,0,255	
-chrY	2794907	2794959	TGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTTTTTT	0	-	2794907	2794959	0,0,255	
-chrY	2794907	2794959	TGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTTTTTT	0	-	2794907	2794959	0,0,255	
-chrY	2794907	2794959	TGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTTTTTT	0	-	2794907	2794959	0,0,255	
-chrY	2794907	2794959	TGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTTTTTT	0	-	2794907	2794959	0,0,255	
-chrY	2794907	2794959	TGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTTTTTT	0	-	2794907	2794959	0,0,255	
-chrY	2794907	2794959	TGGCCACCAAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTTTTTT	0	-	2794907	2794959	0,0,255	
-chrY	2794915	2794967	AAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCA	0	-	2794915	2794967	0,0,255	
-chrY	2794915	2794967	AAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCA	0	-	2794915	2794967	0,0,255	
-chrY	2794915	2794967	AAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCA	0	-	2794915	2794967	0,0,255	
-chrY	2794915	2794967	AAACAGAGCAGTGGCTAAATTGCAGAAGCAGCATATCTTTTTTTCTTTGCA	0	-	2794915	2794967	0,0,255	
-chrY	2794915	2794967	AAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCA	0	-	2794915	2794967	0,0,255	
-chrY	2794915	2794967	AAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCA	0	-	2794915	2794967	0,0,255	
-chrY	2794915	2794967	AAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCA	0	-	2794915	2794967	0,0,255	
-chrY	2794915	2794967	AAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCA	0	-	2794915	2794967	0,0,255	
-chrY	2794915	2794967	AAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCA	0	-	2794915	2794967	0,0,255	
-chrY	2794915	2794967	AAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCA	0	-	2794915	2794967	0,0,255	
-chrY	2794915	2794967	AAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCA	0	-	2794915	2794967	0,0,255	
-chrY	2794915	2794967	AAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCA	0	-	2794915	2794967	0,0,255	
-chrY	2794915	2794967	AAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCA	0	-	2794915	2794967	0,0,255	
-chrY	2794915	2794967	AAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCA	0	-	2794915	2794967	0,0,255	
-chrY	2794915	2794967	AAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCA	0	-	2794915	2794967	0,0,255	
-chrY	2794915	2794967	AAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCA	0	-	2794915	2794967	0,0,255	
-chrY	2794915	2794967	AAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCA	0	-	2794915	2794967	0,0,255	
-chrY	2794915	2794967	AAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCA	0	-	2794915	2794967	0,0,255	
-chrY	2794915	2794967	AAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCA	0	-	2794915	2794967	0,0,255	
-chrY	2794915	2794967	AAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCA	0	-	2794915	2794967	0,0,255	
-chrY	2794915	2794967	AAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCA	0	-	2794915	2794967	0,0,255	
-chrY	2794915	2794967	AAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCA	0	-	2794915	2794967	0,0,255	
-chrY	2794915	2794967	AAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCA	0	-	2794915	2794967	0,0,255	
-chrY	2794915	2794967	AAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCA	0	-	2794915	2794967	0,0,255	
-chrY	2794915	2794967	AAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCA	0	-	2794915	2794967	0,0,255	
-chrY	2794915	2794967	AAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCA	0	-	2794915	2794967	0,0,255	
-chrY	2794915	2794967	AAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCA	0	-	2794915	2794967	0,0,255	
-chrY	2794915	2794967	AAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCA	0	-	2794915	2794967	0,0,255	
-chrY	2794915	2794967	AAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCA	0	-	2794915	2794967	0,0,255	
-chrY	2794915	2794967	AAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCA	0	-	2794915	2794967	0,0,255	
-chrY	2794915	2794967	AAACAGAGCAGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCA	0	-	2794915	2794967	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATGGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794924	2794976	AGTGGCTAAATTGCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAAC	0	-	2794924	2794976	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCG	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCG	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCG	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCG	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCG	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCG	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCG	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTCTGCACAAATAAACAGTGAATTCTCG	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCG	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCG	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCG	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCG	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCG	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCG	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCG	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCG	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCG	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCG	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCG	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCG	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCG	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCG	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCG	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCG	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCG	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCG	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCG	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GNAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCG	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCG	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2794936	2794988	GCAGTAGCAGCATATCTTTTTTTCTTTGCACAAATAAACAGTGAATTCTCA	0	-	2794936	2794988	0,0,255	
-chrY	2857835	2857887	TTCAACGTGAAATTCTAAGACAAAACTCATAGGCTGGCCAGCATGTGAGAA	0	+	2857835	2857887	255,0,0	
-chrY	2863491	2863543	CCCGCGTGCCCCCGCGGCCGCGGGGCCTAGTGCGCGCGCAGTAACCTGTTT	0	+	2863491	2863543	255,0,0	
-chrY	2863491	2863543	CCCGCGTGCCCCCGCGGCCGCGGGGCCTCGCTCGCGCGCAGTAACCTGTTT	0	+	2863491	2863543	255,0,0	
-chrY	2863491	2863543	CCCGCGTGCCCCCGCGGCCGCGGGGCCTAGTGCGCGCGCAGTAACCTGTTT	0	+	2863491	2863543	255,0,0	
-chrY	2863491	2863543	CCCGCGTGCCCCCGCGGCCGCGGGGCCTAGTGCGCGCGCAGTAACCTGTTT	0	+	2863491	2863543	255,0,0	
-chrY	2863491	2863543	CCCGCGTGCCCCCGCGGCCGCGGGGCCTAGTGCGCGCGCAGTAACCTGTTT	0	+	2863491	2863543	255,0,0	
-chrY	2863491	2863543	CCCGCGTGCCCCCGCGGCCGCGGGGCCTAGTGCGCGCGCAGTAACCTGTTT	0	+	2863491	2863543	255,0,0	
-chrY	2863491	2863543	CCCGCGTGCCCCCGCGGCCGCGGGGCCTAGTGCGCGCGCAGTAACCTGTTT	0	+	2863491	2863543	255,0,0	
-chrY	2863491	2863543	CCCGCGTGCCCCCGCGGCCGCGGGGCCTAGTGCGCGCGCAGTAACCTGTTT	0	+	2863491	2863543	255,0,0	
-chrY	2863491	2863543	CCCGCGTGCCCCCGCGGCCGCGGGGCCTAGTGCGCGCGCAGTAACCTGTTT	0	+	2863491	2863543	255,0,0	
-chrY	2863491	2863543	CCCGCGTGCCCCCGCGGCCGCGGGGCCTAGTGCGCGCGCAGTAACCTGTTT	0	+	2863491	2863543	255,0,0	
-chrY	2863491	2863543	CCCGCGTGCCCCCGCGGCCGCGGGGCCTAGTGCGCGCGCAGTAACCTGTTT	0	+	2863491	2863543	255,0,0	
-chrY	2863491	2863543	CCCGCGTGCCCCCGCGGCCGCGGGGCCTAGTGCGCGCGCAGTAACCTGTTT	0	+	2863491	2863543	255,0,0	
-chrY	2863491	2863543	CCCGCGTGCCCCCGCGGCCGCGGGGCCTAGTGCGCGCGCAGTAACCTGTTT	0	+	2863491	2863543	255,0,0	
-chrY	2863491	2863543	CCCGCGTGCCCCCGCGGCCGCGGGGCCTAGTGCGCGCGCAGTAACCTGTTT	0	+	2863491	2863543	255,0,0	
-chrY	2863491	2863543	CCCGCGTGCCCCCGCGGCCGCGGGGCCTAGTGCGCGCGCAGTAACCTGTTT	0	+	2863491	2863543	255,0,0	
-chrY	2863491	2863543	CCCGCGTGCCCCCGCGGCCGCGGGGCCTAGTGCGCGCGCAGTAACCTGTTT	0	+	2863491	2863543	255,0,0	
-chrY	2863491	2863543	CCCGCGTGCCCCCGCGGCCGCGGGGCCTAGTGCGCGCGCAGTAACCTGTTT	0	+	2863491	2863543	255,0,0	
-chrY	2863491	2863543	CCCGCGTGCCCCCGCGGCCGCGGGGCCTAGTGCGCGCGCAGTAACCTGTTT	0	+	2863491	2863543	255,0,0	
-chrY	2863491	2863543	CCCGCGTGCCCCCGCGGCCGCGGGGCCTAGTGCGCGCGCAGTAACCTGTTT	0	+	2863491	2863543	255,0,0	
-chrY	2863491	2863543	CCCGCGTGCCCCCGCGGCCGCGGGGCCTAGTGCGCGCGCAGTAACCTGTTT	0	+	2863491	2863543	255,0,0	
-chrY	2863539	2863591	TTTGTGGCCTGGTCGGCGTCCCGTAGGGCGCCCTCCCGCGCTAGGCCGGCC	0	-	2863539	2863591	0,0,255	
-chrY	2863539	2863591	TTTGTGGCCTGGTCGGCGTCCCGTAGGGCGCCCTCCCGCGCTAGGCCGGCC	0	-	2863539	2863591	0,0,255	
-chrY	2863539	2863591	TTTGTGGCCTGGTCGGCGTCCCGTAGGGCGCCCTCCCGCGCTAGGCCGGCC	0	-	2863539	2863591	0,0,255	
-chrY	2863539	2863591	TTTGTGGCCTGGTCGGCGTCCCGTAGGGCGCCCTCCCGCGCTAGGCCGGCC	0	-	2863539	2863591	0,0,255	
-chrY	2863539	2863591	TTTGTGGCCTGGTCGGCGTCCCGTAGGGCGCCCTCCCGCGCTAGGCCGGCC	0	-	2863539	2863591	0,0,255	
-chrY	2863539	2863591	TGTGTGGCCTGGTCGGCGTCCCGTAGGGCGCCCGCCCGCGCTAGGCCGGCC	0	-	2863539	2863591	0,0,255	
-chrY	2863539	2863591	TTTGTGGCCTGGTCGGCGTCCCGTAGGGCGCCCTCCCGCGCTAGGCCGGCC	0	-	2863539	2863591	0,0,255	
-chrY	2863539	2863591	TTTGTGGCCTGGTCGGCGTCCCGTAGGGCGCCCTCCCGCGCTAGGCCGGCC	0	-	2863539	2863591	0,0,255	
-chrY	2863539	2863591	TTTGTGGCCGGGTCGGCGTCCCGGAGGGCGCCCTCCCGCGCTAGGCCGGAC	0	-	2863539	2863591	0,0,255	
-chrY	2863539	2863591	TTTGTGGCCTGGTCGGCGTCCCGTAGGGCGCCCTCCCGCGCTAGGCCGGCC	0	-	2863539	2863591	0,0,255	
-chrY	2863539	2863591	TTGGGGGCCTGGTCGGCGTCCCGTAGGGCGCCCTCCCGCGCTAGGCCGGCC	0	-	2863539	2863591	0,0,255	
-chrY	2863606	2863658	CCGAACAGGCCCCGAGGAGGCCGCAGTTAGGCCTAGTGATTATCCAGTTGC	0	-	2863606	2863658	0,0,255	
-chrY	2863606	2863658	CCGAACAGGCCCCGAGGAGGCCGCAGTTAGGCCTAGTGATTATCCAGTTGC	0	-	2863606	2863658	0,0,255	
-chrY	2863606	2863658	CCGAACAGGCCCCGAGGAGGCCGCAGTTAGGCCTAGTGATTATCCAGTTGC	0	-	2863606	2863658	0,0,255	
-chrY	2863606	2863658	CCGAACAGGCCCCGAGGAGGCCGCAGTTAGGCCTAGTGATTATCCAGTTGC	0	-	2863606	2863658	0,0,255	
-chrY	2863606	2863658	CCGAACAGGCCCCGAGGAGGCCGCAGTTAGGCCTAGTGATTATCCAGTTGC	0	-	2863606	2863658	0,0,255	
-chrY	2863606	2863658	CCGAACAGGCCCCGAGGAGGCCGCAGTTAGGCCTAGTGATTATCCAGTTGC	0	-	2863606	2863658	0,0,255	
-chrY	2863606	2863658	CCGAACAGGCCCCGAGGAGGCCGCAGTTAGGCCTAGTGATTATCCAGTTGC	0	-	2863606	2863658	0,0,255	
-chrY	2863606	2863658	CCGAACAGGCCCCGAGGAGGCCGCAGTTAGGCCTAGTGATTATCCAGTTGC	0	-	2863606	2863658	0,0,255	
-chrY	2863606	2863658	CCGAACAGGCCCCGAGGAGGCCGCAGTTAGGCCTAGTGATTATCCAGTTGC	0	-	2863606	2863658	0,0,255	
-chrY	2863606	2863658	CCGAACAGGCCCCGAGGAGGCCGCAGTTAGGCCTAGTGATTATCCAGTTGC	0	-	2863606	2863658	0,0,255	
-chrY	2863606	2863658	CCGAACAGGCCCCGAGGAGGCCGCAGTTAGGCCTAGTGATTATCCAGTTGC	0	-	2863606	2863658	0,0,255	
-chrY	2863606	2863658	CCGAACAGGCCCCGAGGAGGCCGCAGTTAGGCCTAGTGATTATCCAGTTGC	0	-	2863606	2863658	0,0,255	
-chrY	2863606	2863658	CCGAACAGGCCCCGAGGAGGCCGCAGTTAGGCCTAGTGATTATCCAGTTGC	0	-	2863606	2863658	0,0,255	
-chrY	2863606	2863658	CGGAACAGGCCCCGAGGAGGCCGCAGTTAGGCCTAGTGATTATCCAGTTGC	0	-	2863606	2863658	0,0,255	
-chrY	2863606	2863658	CCGAACAGGCCCCGAGGAGGCCGCAGTTAGGCCTAGTGATTATCCAGTTGC	0	-	2863606	2863658	0,0,255	
-chrY	2863606	2863658	CCGAACAGGCCCCGAGGAGGCCGCAGTTAGGCCTAGTGATTATCCAGTTGC	0	-	2863606	2863658	0,0,255	
-chrY	2863606	2863658	CCGAACAGGCCCCGAGGAGGCCGCAGTTAGGCCTAGTGATTATCCAGTTGC	0	-	2863606	2863658	0,0,255	
-chrY	2863606	2863658	CCGAACAGGCCCCGAGGAGGCCGCAGTTAGGCCTAGTGATTATCCAGTTGC	0	-	2863606	2863658	0,0,255	
-chrY	2863606	2863658	CCGAACAGGCCCCGAGGAGGCCGCAGTTAGGCCTAGTGATTATCCAGTTGC	0	-	2863606	2863658	0,0,255	
-chrY	2863606	2863658	CCGAACAGGCCCCGAGGAGGCCGCAGTTAGGCCTAGTGATTATCCAGTTGC	0	-	2863606	2863658	0,0,255	
-chrY	2865129	2865181	CACACCTCAGTTTATGCTGAGCTCTGGCTGCAGCTGTTACAAAAGTTTAAA	0	+	2865129	2865181	255,0,0	
-chrY	2865129	2865181	CACACCTCAGTTTATGCTGAGCTCTGGCTGCAGCTGTTACAAAAGTTTAAA	0	+	2865129	2865181	255,0,0	
-chrY	2865129	2865181	CACACCTCAGTTTATGCTGAGCTCTGGCTGCAGCTGTTACAAAAGTTTAAA	0	+	2865129	2865181	255,0,0	
-chrY	2865129	2865181	CACACCTCAGTTTATGCTGAGCTCTGGCTGCAGCTGTTACAAAAGTTTAAC	0	+	2865129	2865181	255,0,0	
-chrY	2865129	2865181	CACACCTCAGTTTATGCTGAGCTCTGGCTGCAGCTGTTACAAAAGTTTAAA	0	+	2865129	2865181	255,0,0	
-chrY	2865129	2865181	CACACCTCAGTTTATGCTGAGCTCTGGCTGCAGCTGTTACAAAAGTTTAAA	0	+	2865129	2865181	255,0,0	
-chrY	2865129	2865181	CACACCTCAGTTTATGCTGAGCTCTGGCTGCAGCTGTTACAAAAGTTTAAA	0	+	2865129	2865181	255,0,0	
-chrY	2865129	2865181	CACACCTCAGTTTATGCTGAGCTCTGGCTGCAGCTGTTACAAAAGTTTAAA	0	+	2865129	2865181	255,0,0	
-chrY	2865129	2865181	CACACCTCAGTTTATGCTGAGCTCTGGCTGCAGCTGTTACAAAAGTTTAAA	0	+	2865129	2865181	255,0,0	
-chrY	2865241	2865293	CAAGAAGGTAGCTGTTTTTTGGCCAGGTGCGGTGACTCACGCCTGTAATCC	0	-	2865241	2865293	0,0,255	
-chrY	2865241	2865293	CAAGAAGGTAGCTGTTTTTTGGCCAGGTGCGGTGACTCACGCCTGTAATCC	0	-	2865241	2865293	0,0,255	
-chrY	2865241	2865293	CAAGAAGGTAGCTGTTTTTTGGCCAGGTGCGGTGACTCACGCCTGTAATCC	0	-	2865241	2865293	0,0,255	
-chrY	2865241	2865293	CAAGAAGGTAGCTGTTTTTTGGCCAGGTGCGGTGACTCACGCCTGTAATCC	0	-	2865241	2865293	0,0,255	
-chrY	2865241	2865293	CAAGAAGGTAGCTGTTTTTTGGCCAGGTGCGGTGACTCACGCCTGTAATCC	0	-	2865241	2865293	0,0,255	
-chrY	2865241	2865293	CAAGAAGGTAGCTGTTTTTTGGCCAGGTGCGGTGACTCACGCCTGTAATCC	0	-	2865241	2865293	0,0,255	
-chrY	2865241	2865293	CAAGAAGGTAGCTGTTTTTTGGCCAGGTGCGGTGACTCACGCCTGTAATCC	0	-	2865241	2865293	0,0,255	
-chrY	2865241	2865293	CAAGAAGGTAGCTGTTTTTTGGCCAGGTGCGGTGACTCACGCCTGTAATCC	0	-	2865241	2865293	0,0,255	
-chrY	2865241	2865293	CAAGAAGGTAGCTGTTTTTTGGCCAGGTGCGGTGACTCACGCCTGTAATCC	0	-	2865241	2865293	0,0,255	
-chrY	2865316	2865368	GCGGATCACCCGAGGTCAGGAGTTCGAATCCAGCTCGAGACCAGCTGGAGA	0	+	2865316	2865368	255,0,0	
-chrY	2865316	2865368	GCGGATCACCCGAGGTCAGGAGTTCGAATCCAGCTCGAGACCAGCTGGAGA	0	+	2865316	2865368	255,0,0	
-chrY	2865316	2865368	GCGGATCACCCGAGGTCAGGAGTTCGAATCCAGCTCGAGACCAGCTGGAGA	0	+	2865316	2865368	255,0,0	
-chrY	2865316	2865368	GCGGATCACCCGAGGTCAGGAGTTCGAATCCAGCTCGAGACCAGCTGGAGA	0	+	2865316	2865368	255,0,0	
-chrY	2865316	2865368	GCGGATCACCCGAGGTCAGGAGTTCGAATCCAGCTCGAGACCAGCTGGAGA	0	+	2865316	2865368	255,0,0	
-chrY	2865316	2865368	GCGGATCACCCGAGGTCAGGAGTTCGAATCCAGCTCGAGACCAGCTGGAGA	0	+	2865316	2865368	255,0,0	
-chrY	2865316	2865368	GCGGATCACCCGAGGTCAGGAGTTCGAATCCAGCTCGAGACCAGCTGGAGA	0	+	2865316	2865368	255,0,0	
-chrY	2865316	2865368	GCGGATCACCCGAGGTCAGGAGTTCGAATCCAGCTCGAGACCAGCTGGAGA	0	+	2865316	2865368	255,0,0	
-chrY	2865316	2865368	GCGGATCACCCGAGGTCAGGAGTTCGAATCCAGCTCGAGACCAGCTGGAGA	0	+	2865316	2865368	255,0,0	
-chrY	2865423	2865475	CGGCGCGCGCCTGTAATCCCAGGTACTTTGAAGGCGGAGGTTGCAGTGAGC	0	-	2865423	2865475	0,0,255	
-chrY	2865423	2865475	CGGCGCGCGCCTGTAATCCCAGGTACTTTGAAGGCGGAGGTTGCAGTGAGC	0	-	2865423	2865475	0,0,255	
-chrY	2865423	2865475	CGGCGCGCGCCTGTAATCCCAGGTACTTTGAAGGCGGAGGTTGCAGTGAGC	0	-	2865423	2865475	0,0,255	
-chrY	2865423	2865475	CGGCGCGCGCCTGTAATCCCAGGTACTTTGAAGGCGGAGGTTGCAGTGAGC	0	-	2865423	2865475	0,0,255	
-chrY	2865423	2865475	CGGCGCGCGCCTGTAATCCCAGGTACTTTGAAGGCGGAGGTTGCAGTGAGC	0	-	2865423	2865475	0,0,255	
-chrY	2865423	2865475	CGGCGCGCGCCTGTAATCCCAGGTACTTTGAAGGCGGAGGTTGCAGTGAGC	0	-	2865423	2865475	0,0,255	
-chrY	2865423	2865475	CGGCGCGCGCCTGTAATCCCAGGTACTTTGAAGGCGGAGGTTGCAGTGAGC	0	-	2865423	2865475	0,0,255	
-chrY	2865423	2865475	CGGCGCGCGCCGGTAATCCCAGGTACTTTGAAGGCGGAGGTTGCAGTGAGC	0	-	2865423	2865475	0,0,255	
-chrY	2865423	2865475	CGGCGCGCGCCTGTAATCCCAGGTACTTTGAAGGCGGAGGTTGCAGTGAGC	0	-	2865423	2865475	0,0,255	
-chrY	2865423	2865475	CGGCGCGCGCCTGTAATCCCAGGTACTTTGAAGGCGGAGGTTGCAGTGAGC	0	-	2865423	2865475	0,0,255	
-chrY	2866382	2866434	CTTGCTAAGGGGTCAGCATAAACTGTAGAGGTAGTTGCCTTATATCTTGAC	0	+	2866382	2866434	255,0,0	
-chrY	2866382	2866434	CTTGCTAAGGGGTCAGCATAAACTGTAGAGGTAGTTGCCTTATATCTTGAC	0	+	2866382	2866434	255,0,0	
-chrY	2866382	2866434	CTTGCTAAGGGGTCAGCATAAACTGTAGAGGTAGTTGCCTTATATCTTGAC	0	+	2866382	2866434	255,0,0	
-chrY	2866382	2866434	CTTGCTAAGGGGTCAGCATAAACTGTAGAGGTAGTTGCCTTATATCTTGAC	0	+	2866382	2866434	255,0,0	
-chrY	2866382	2866434	CTTGCTAAGGGGTCAGCATAAACTGTAGAGGTAGTTGCCTTATATCTTGAC	0	+	2866382	2866434	255,0,0	
-chrY	2866382	2866434	CTTGCTAAGGGGTCAGCATAAACTGTAGAGGTAGTTGCCTTATATCTTGAC	0	+	2866382	2866434	255,0,0	
-chrY	2866382	2866434	CTTGCTAAGGGGTCAGCATAAACTGTAGAGGTAGTTGCCTTATATCTTGAC	0	+	2866382	2866434	255,0,0	
-chrY	2866382	2866434	CTTGCTAAGGGGTCAGCATAAACTGTAGAGGTAGTTGCCTTATATCTTGAC	0	+	2866382	2866434	255,0,0	
-chrY	2866382	2866434	CTTGCTAAGGGGTCAGCATAAACTGTAGAGGTAGTTGCCTTATATCTTGAC	0	+	2866382	2866434	255,0,0	
-chrY	2866472	2866524	CAGTACAGCAGCTGTAGATGTTCCAGTACATCAGCAGTGGATGTGCAAAAA	0	-	2866472	2866524	0,0,255	
-chrY	2866472	2866524	CAGTACAGCAGCTGTAGATGTTCCAGTACATCAGCAGTGGATGTGCAAAAA	0	-	2866472	2866524	0,0,255	
-chrY	2866472	2866524	CAGTACAGCAGCTGTAGATGTTCCAGTACATCAGCAGTGGATGTGCAAAAA	0	-	2866472	2866524	0,0,255	
-chrY	2866472	2866524	CAGTACAGCAGCTGTAGATGTTCCAGTACATCAGCAGTGGATGTGCAAAAA	0	-	2866472	2866524	0,0,255	
-chrY	2866472	2866524	CAGTACAGCAGCTGTAGATGTTCCAGTACATCAGCAGTGGATGTGCAAAAA	0	-	2866472	2866524	0,0,255	
-chrY	2866472	2866524	CAGTACAGCAGCTGTAGATGTTCCAGTACATCAGCAGTGGATGTGCAAAAA	0	-	2866472	2866524	0,0,255	
-chrY	2866472	2866524	CAGTACAGCAGCTGTAGATGTTCCAGTACATCAGCAGTGGATGTGCAAAAA	0	-	2866472	2866524	0,0,255	
-chrY	2866472	2866524	CAGTACAGCAGCTGTAGATGTTCCAGTACATCAGCAGTGGATGTGCAAAAA	0	-	2866472	2866524	0,0,255	
-chrY	2866472	2866524	CAGTACAGCAGCTGTAGATGTTCCAGTACATCAGCAGTGGATGTGCAAAAA	0	-	2866472	2866524	0,0,255	
-chrY	2871012	2871064	CAAAAAGTTATACTTACCAGTTGTTGTAATTTATAATAGAAATCCTATTGA	0	+	2871012	2871064	255,0,0	
-chrY	2871012	2871064	CAAAAAGTTATACTTACCAGTTGTTGTAATTTATAATAGAAATCCTATTGA	0	+	2871012	2871064	255,0,0	
-chrY	2871012	2871064	CAAAAAGTTATACTTACCAGTTGTTGTAATTTATAATAGAAATCCTATTGA	0	+	2871012	2871064	255,0,0	
-chrY	2871012	2871064	CAAAAAGTTATACTTACCAGTTGTTGTAATTTATAATAGAAATCCTATTGA	0	+	2871012	2871064	255,0,0	
-chrY	2871012	2871064	CAAAAAGTTATACTTACCAGTTGTTGTAATTTATAATAGAAATCCTATTGA	0	+	2871012	2871064	255,0,0	
-chrY	2871012	2871064	CAAAAAGTTATACTTACCAGTTGTTGTAATTTATAATAGAAATCCTATTGA	0	+	2871012	2871064	255,0,0	
-chrY	2871111	2871163	GAGATGTATAAATCTTCATATTTTAGCACTTCTAAAATCTGAATGTATTTT	0	-	2871111	2871163	0,0,255	
-chrY	2871111	2871163	GAGATGTATAAATCTTCATATTTTAGCACTTCTAAAATCTGAATGTATTTT	0	-	2871111	2871163	0,0,255	
-chrY	2871111	2871163	GAGATGTATAAATCTTCATATTTTAGCACTTCTAAAATCTGAATGTATTTT	0	-	2871111	2871163	0,0,255	
-chrY	2871111	2871163	GAGATGTATAAATCTTCATATTTTAGCACTTCTAAAATCTGAATGTATTTT	0	-	2871111	2871163	0,0,255	
-chrY	2871111	2871163	GAGATGTATAAATCTTCATATTTTAGCACTTCTAAAATCTGAATGTATTTT	0	-	2871111	2871163	0,0,255	
-chrY	2871111	2871163	GAGATGTATAAATCTTCATATTTTAGCACTTCTAAAATCTGAATGTATTTT	0	-	2871111	2871163	0,0,255	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTGAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876103	2876155	GTGAAACAACTGAAACTAGAGAATAAGGAATTAAAAGATTAAAAAATAAGT	0	+	2876103	2876155	255,0,0	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2876229	2876281	CTTGGTGGTTTGACACCATAAATGAAAGATCTTCTTTTGCCATAGTGTGTC	0	-	2876229	2876281	0,0,255	
-chrY	2880278	2880330	TTTTATTAGAACTAATGAAATTGCTGTTTTTAGGAAAATTGGAAGGTCACT	0	+	2880278	2880330	255,0,0	
-chrY	2880278	2880330	TTTTATTAGAACTAATGAAATTGCTGTTTTTAGGAAAATTGGAAGGTCACT	0	+	2880278	2880330	255,0,0	
-chrY	2880278	2880330	TTTTATTAGAACTAATGAAATTGCTGTTTTTAGGAAAATTGGAAGGTCACT	0	+	2880278	2880330	255,0,0	
-chrY	2880278	2880330	TTTTATTAGAACTAATGAAATTGCTGTTTTTAGGAAAATTGGAAGGTCACT	0	+	2880278	2880330	255,0,0	
-chrY	2880278	2880330	TTTTATTAGAACTAATGAAATTGCTGTTTTTAGGAAAATTGGAAGGTCACT	0	+	2880278	2880330	255,0,0	
-chrY	2880278	2880330	TTTTATTAGAACTAATGAAATTGCTGTTTTTAGGAAAATTGGAAGGTCACT	0	+	2880278	2880330	255,0,0	
-chrY	2880278	2880330	TTTTATTAGAACTAATGAAATTGCTGTTTTTAGGAAAATTGGAAGGTCACT	0	+	2880278	2880330	255,0,0	
-chrY	2880278	2880330	TTTTATTAGAACTAATGAAATTGCTGTTTTTAGGAAAATTGGAAGGTCACT	0	+	2880278	2880330	255,0,0	
-chrY	2880278	2880330	TTTTATTAGAACTAATGAAATTGCTGTTTTTAGGAAAATTGGAAGGTCACT	0	+	2880278	2880330	255,0,0	
-chrY	2880278	2880330	TTTTATTAGAACTAATGAAATTGCTGTTTTTAGGAAAATTGGAAGGNNACT	0	+	2880278	2880330	255,0,0	
-chrY	2880278	2880330	TTTTATTAGAACTAATGAAATTGCTGTTTTTAGGAAAATTGGAAGGTCACT	0	+	2880278	2880330	255,0,0	
-chrY	2880278	2880330	TTTTATTAGAACTAATGAAATTGCTGTTTTTAGGAAAATTGGAAGGTCACT	0	+	2880278	2880330	255,0,0	
-chrY	2880278	2880330	TTTTATTAGAACTAATGAAATTGCTGTTTTTAGGAAAATTGGAAGGTCACT	0	+	2880278	2880330	255,0,0	
-chrY	2880395	2880447	TTATGCAGAGAAGATTAGTTTGCATTTATAATTTTATAATTACATTTTTTT	0	-	2880395	2880447	0,0,255	
-chrY	2880395	2880447	ATAAGCAGAGAAGATTAGTTTGCATTTATAATTTTATAATTACATTTTTTT	0	-	2880395	2880447	0,0,255	
-chrY	2880395	2880447	TTATGCAGAGAAGATTAGTTTGCATTTATAATTTTATAATTACATTTTTTT	0	-	2880395	2880447	0,0,255	
-chrY	2880395	2880447	TTATGCAGAGAAGATTAGTTTGCATTTATAATTTTATAATTACATTTTTTT	0	-	2880395	2880447	0,0,255	
-chrY	2880395	2880447	TTATGCAGAGAAGATTAGTTTGCATTTATAATTTTATAATTACATTTTTTT	0	-	2880395	2880447	0,0,255	
-chrY	2880395	2880447	TTATGCAGAGAAGATTAGTTTGCATTTATAATTTTATAATTACATTTTTTT	0	-	2880395	2880447	0,0,255	
-chrY	2880395	2880447	TTATGCAGAGAAGATTAGTTTGCATTTATAATTTTATAATTACATTTTTTT	0	-	2880395	2880447	0,0,255	
-chrY	2880395	2880447	TTATGCAGAGAAGATTAGTTTGCATTTATAATTTTATAATTACATTTTTTT	0	-	2880395	2880447	0,0,255	
-chrY	2880395	2880447	TTATGCAGAGAAGATTAGTTTGCATTTATAATTTTATAATTACATTTTTTT	0	-	2880395	2880447	0,0,255	
-chrY	2880395	2880447	TTATGCAGAGAAGATTAGTTTGCATTTATAATTTTATAATTACATTTTTTT	0	-	2880395	2880447	0,0,255	
-chrY	2880395	2880447	TTATGCAGAGAAGATTAGTTTGCATTTATAATTTTATAATTACATTTTTTT	0	-	2880395	2880447	0,0,255	
-chrY	2880395	2880447	TTATGCAGAGAAGATTAGTTTGCATTTATAATTTTATAATTACATTTTTTT	0	-	2880395	2880447	0,0,255	
-chrY	2881985	2882037	ATGAATTTGAATTGCAGCCACAAGAGCCAAACTCATTTTTTGATGGAATAG	0	+	2881985	2882037	255,0,0	
-chrY	2881985	2882037	ATGAATTTGAATTGCAGCCACAAGAGCCAAACTCATTTTTTGATGGAATAG	0	+	2881985	2882037	255,0,0	
-chrY	2881985	2882037	ATGAATTTGAATTGCAGCCACAAGAGCCAAACTCATTTTTTGATGGAATAG	0	+	2881985	2882037	255,0,0	
-chrY	2881985	2882037	ATGAATTTGAATTGCAGCCACAAGAGCCAAACTCATTTTTTGATGGAATAG	0	+	2881985	2882037	255,0,0	
-chrY	2881985	2882037	ATGAATTTGAATTGCAGCCACAAGAGCCAAACTCATTTTTTGATGGAATAG	0	+	2881985	2882037	255,0,0	
-chrY	2881985	2882037	ATGAATTTGAATTGCAGCCACAAGAGCCAAACTCATTTTTTGATGGAATAG	0	+	2881985	2882037	255,0,0	
-chrY	2881985	2882037	ATGAATTTGAATTGCAGCCACAAGAGCCAAACTCATTTTTTGATGGAATAG	0	+	2881985	2882037	255,0,0	
-chrY	2881985	2882037	ATGAATTTGAATTGCAGCCACAAGAGCCAAACTCATTTTTTGATGGAATAG	0	+	2881985	2882037	255,0,0	
-chrY	2881985	2882037	ATGAATTTGAATTGCAGCCACAAGAGCCAAACTCATTTTTTGATGGAATAG	0	+	2881985	2882037	255,0,0	
-chrY	2881985	2882037	ATGAATTTGAATTGCAGCCACAAGAGCCAAACTCATTTTTTGATGGAATAG	0	+	2881985	2882037	255,0,0	
-chrY	2881985	2882037	ATGAATTTGAATTGCAGCCACAAGAGCCAAACTCATTTTTTGATGGAATAG	0	+	2881985	2882037	255,0,0	
-chrY	2881985	2882037	ATGAATTTGAATTGCAGCCACAAGAGCCAAACTCATTTTTTGATGGAATAG	0	+	2881985	2882037	255,0,0	
-chrY	2881985	2882037	ATGAATTTGAATTGCAGCCACAAGAGCCAAACTCATTTTTTGATGGAATAG	0	+	2881985	2882037	255,0,0	
-chrY	2881985	2882037	ATGAATTTGAATTGCAGCCACAAGAGCCAAACTCATTTTTTGATGGAATAG	0	+	2881985	2882037	255,0,0	
-chrY	2881985	2882037	ATGAATTTGAATTGCAGCCACAAGAGCCAAACTCATTTTTTGATGGAATAG	0	+	2881985	2882037	255,0,0	
-chrY	2881985	2882037	ATGAATTTGAATTGCAGCCACAAGAGCCAAACTCATTTTTTGATGGAATAG	0	+	2881985	2882037	255,0,0	
-chrY	2881985	2882037	ATGAATTTGAATTGCAGCCACAAGAGCCAAACTCATTTTTTGATGGAATAG	0	+	2881985	2882037	255,0,0	
-chrY	2889166	2889218	CAGTTTTTGTTTCTAATATTGTGGATTCTGACATAACTGTGCATAACTTTG	0	-	2889166	2889218	0,0,255	
-chrY	2889166	2889218	CAGTTTTTGTTTCTAATATTGTGGATTCTGACATAACTGTGCATAACTTTG	0	-	2889166	2889218	0,0,255	
-chrY	2889166	2889218	CAGTTTTTGTTTCTAATATTGTGGATTCTGACATAACTGTGCATAACTTTG	0	-	2889166	2889218	0,0,255	
-chrY	2889166	2889218	CAGTTTTTGTTTCTAATATTGTGGATTCTGACATAACTGTGCATAACTTTG	0	-	2889166	2889218	0,0,255	
-chrY	2889166	2889218	CAGTTTTTGTTTCTAATATTGTGGATTCTGACATAACTGTGCATAACTTTG	0	-	2889166	2889218	0,0,255	
-chrY	2889166	2889218	CAGTTTTTGTTTCTAATATTGTGGATTCTGACATAACTGTGCATAACTTTG	0	-	2889166	2889218	0,0,255	
-chrY	2889166	2889218	CAGTTTTTGTTTCTAATATTGTGGATTCTGACATAACTGTGCATAACTTTG	0	-	2889166	2889218	0,0,255	
-chrY	2889166	2889218	CAGTTTTTGTTTCTAATATTGTGGATTCTGACATAACTGTGCATAACTTTG	0	-	2889166	2889218	0,0,255	
-chrY	2889166	2889218	CAGTTTTTGTTTCTAATATTGTGGATTCTGACATAACTGTGCATAACTTTG	0	-	2889166	2889218	0,0,255	
-chrY	2889166	2889218	CAGTTTTTGTTTCTAATATTGTGGATTCTGACATAACTGTGCATAACTTTG	0	-	2889166	2889218	0,0,255	
-chrY	2889166	2889218	CAGTTTTTGTTTCTAATATTGTGGATTCTGACATAACTGTGCATAACTTTG	0	-	2889166	2889218	0,0,255	
-chrY	2889166	2889218	CAGTTTTTGTTTCTAATATTGTGGATTCTGACATAACTGTGCATAACTTTG	0	-	2889166	2889218	0,0,255	
-chrY	2889166	2889218	CAGTTTTTGTTTCTAATATTGTGGATTCTGACATAACTGTGCATAACTTTG	0	-	2889166	2889218	0,0,255	
-chrY	2889166	2889218	CAGTTTTTGTTTCTAATATTGTGGATTCTGACATAACTGTGCATAACTTTG	0	-	2889166	2889218	0,0,255	
-chrY	2889166	2889218	CAGTTTTTGTTTCTAATATTGTGGATTCTGACATAACTGTGCATAACTTTG	0	-	2889166	2889218	0,0,255	
-chrY	2889166	2889218	CAGTTTTTGTTTCTAATATTGTGGATTCTGACATAACTGTGCATAACTTTG	0	-	2889166	2889218	0,0,255	
-chrY	2889166	2889218	CAGTTTTTGTTTCTAATATTGTGGATTCTGACATAACTGTGCATAACTTTG	0	-	2889166	2889218	0,0,255	
-chrY	2890047	2890099	TTTCCCCTTTTTTTCTACCTTATTGTCCGTTTTCTCTTTAAGTAATGATTT	0	+	2890047	2890099	255,0,0	
-chrY	2890134	2890186	AAATCTAGTGAATTCTCTGAAATACAGTGGTCTCACCAAGACCATCAACCG	0	-	2890134	2890186	0,0,255	
-chrY	2898706	2898758	CAGACATCCTTCTCATTTCCTCACCTCTCCCTTTCGTAGCTGATTGGCTTG	0	+	2898706	2898758	255,0,0	
-chrY	2898706	2898758	CAGACATCCTTCTCATTTCCTCACCTCTCCCTTTCGTAGCTGATTGGCTTG	0	+	2898706	2898758	255,0,0	
-chrY	2898706	2898758	CAGACATCCTTCTCATTTCCTCACCTCTCCCTTTCGTAGCTGATTGGCTTG	0	+	2898706	2898758	255,0,0	
-chrY	2898706	2898758	CAGACATCCTTCTCATTTCCTCACCTCTCCCTTTCGTAGCTGATTGGCTTG	0	+	2898706	2898758	255,0,0	
-chrY	2898706	2898758	CAGACATCCTTCTCATTTCCTCACCTCTCCCTTTCGTAGCTGATTGGCTTG	0	+	2898706	2898758	255,0,0	
-chrY	2898706	2898758	CAGACATCCTTCTCATTTCCTCACCTCTCCCTTTCGTAGCTGATTGGCTTG	0	+	2898706	2898758	255,0,0	
-chrY	2898706	2898758	CAGACATCCTTCTCATTTCCTCACCTCTCCCTTTCGTAGCTGATTGGCTTG	0	+	2898706	2898758	255,0,0	
-chrY	2898706	2898758	CAGACATCCTTCTCATTTCCTCACCTCTCCCTTTCGTAGCTGATTGGCTTG	0	+	2898706	2898758	255,0,0	
-chrY	2898706	2898758	CAGACATCCTTCTCATTTCCTCACCTCTCCCTTTCGTAGCTGATTGGCTTG	0	+	2898706	2898758	255,0,0	
-chrY	2898706	2898758	CAGACATCCTTCTCATTTCCTCACCTCTCCCTTTCGTAGCTGATTGGCTTG	0	+	2898706	2898758	255,0,0	
-chrY	2898706	2898758	CAGACATCCTTCTCATTTCCTCACCTCTCCCTTTCGTAGCTGATTGGCTTG	0	+	2898706	2898758	255,0,0	
-chrY	2898706	2898758	CAGACATCCTTCTCATTTCCTCACCTCTCCCTTTCGTAGCTGATTGGCTTG	0	+	2898706	2898758	255,0,0	
-chrY	2898706	2898758	CAGACATCCTTCTCATTTCCTCACCTCTCCCTTTCGTAGCTGATTGGCTTG	0	+	2898706	2898758	255,0,0	
-chrY	2898706	2898758	CAGACATCCTTCTCATTTCCTCACCTCTCCCTTTCGTAGCTGATTGGCTTG	0	+	2898706	2898758	255,0,0	
-chrY	2898706	2898758	CAGACATCCTTCTCATTTCCTCACCTCTCCCTTTCGTAGCTGATTGGCTTG	0	+	2898706	2898758	255,0,0	
-chrY	2898706	2898758	CAGACATCCTTCTCATTTCCTCACCTCTCCCTTTCGTAGCTGATTGGCTTG	0	+	2898706	2898758	255,0,0	
-chrY	2898706	2898758	CAGACATCCTTCTCATTTCCTCACCTCTCCCTTTCGTAGCTGATTGGCTTG	0	+	2898706	2898758	255,0,0	
-chrY	2898706	2898758	CAGACATCCTTCTCATTTCCTCACCTCTCCCTTTCGTAGCTGATTGGCTTG	0	+	2898706	2898758	255,0,0	
-chrY	2898706	2898758	CAGACATCCTTCTCATTTCCTCACCTCTCCCTTTCGTAGCTGATTGGCTTG	0	+	2898706	2898758	255,0,0	
-chrY	2898850	2898902	TAGGTTAATTTGTGAATTCTTTCTTGCCCCTGCCTTAAATTGTAATCTCAC	0	-	2898850	2898902	0,0,255	
-chrY	2898850	2898902	TAGGTTAATTTGTGAATTCTTTCTTGCCCCTGCCTTAAATTGTAATCTCAC	0	-	2898850	2898902	0,0,255	
-chrY	2898850	2898902	TAGGTTAATTTGTGAATTCTTTCTTGCCCCTGCCTTAAATTGTAATCTCAC	0	-	2898850	2898902	0,0,255	
-chrY	2898850	2898902	TAGGTTAATTTGTGAATTCTTTCTTGCCCCTGCCTTAAATTGTAATCTCAC	0	-	2898850	2898902	0,0,255	
-chrY	2898850	2898902	TAGGTTAATTTGTGAATTCTTTCTTGCCCCTGCCTTAAATTGTAATCTCAC	0	-	2898850	2898902	0,0,255	
-chrY	2898850	2898902	TAGGTTAATTTGTGAATTCTTTCTTGCCCCTGCCTTAAATTGTAATCTCAC	0	-	2898850	2898902	0,0,255	
-chrY	2898850	2898902	TAGGTTAATTTGTGAATTCTTTCTTGCCCCTGCCTTAAATTGTAATCTCAC	0	-	2898850	2898902	0,0,255	
-chrY	2898850	2898902	TAGGTTAATTTGTGAATTCTTTCTTGCCCCTGCCTTAAATTGTAATCTCAC	0	-	2898850	2898902	0,0,255	
-chrY	2898850	2898902	TAGGTTAATTTGTGAATTCTTTCTTGCCCCTGCCTTAAATTGTAATCTCAC	0	-	2898850	2898902	0,0,255	
-chrY	2898850	2898902	TAGGTTAATTTGTGAATTCTTTCTTGCCCCTGCCTTAAATTGTAATCTCAC	0	-	2898850	2898902	0,0,255	
-chrY	2898850	2898902	TAGGTTAATTTGTGAATTCTTTCTTGCCCCTGCCTTAAATTGTAATCTCAC	0	-	2898850	2898902	0,0,255	
-chrY	2898850	2898902	TAGGTTAATTTGTGAATTCTTTCTTGCCCCTGCCTTAAATTGTAATCTCAC	0	-	2898850	2898902	0,0,255	
-chrY	2898850	2898902	TAGGTTAATTTGTGAATTCTTTCTTGCCCCTGCCTTAAATTGTAATCTCAC	0	-	2898850	2898902	0,0,255	
-chrY	2898850	2898902	TAGGTTAATTTGTGAATTCTTTCTTGCCCCTGCCTTAAATTGTAATCTCAC	0	-	2898850	2898902	0,0,255	
-chrY	2898850	2898902	TAGGTTAATTTGTGAATTCTTTCTTGCCCCTGCCTTAAATTGTAATCTCAC	0	-	2898850	2898902	0,0,255	
-chrY	2898850	2898902	TAGGTTAATTTGTGAATTCTTTCTTGCCCCTGCCTTAAATTGTAATCTCAC	0	-	2898850	2898902	0,0,255	
-chrY	2898850	2898902	TAGGTTAATTTGTGAATTCTTTCTTGCCCCTGCCTTAAATTGTAATCTCAC	0	-	2898850	2898902	0,0,255	
-chrY	2898850	2898902	TAGGTTAATTTGTGAATTCTTTCTTGCCCCTGCCTTAAATTGTAATCTCAC	0	-	2898850	2898902	0,0,255	
-chrY	2898850	2898902	TAGGTTAATTTGTGAATTCTTTCTTGCCCCTGCCTTAAATTGTAATCTCAC	0	-	2898850	2898902	0,0,255	
-chrY	2902594	2902646	TTGTATTCAGAAGTACTGAATGTTAGGTAATGCTCATAAAATATATTAGGA	0	+	2902594	2902646	255,0,0	
-chrY	2902594	2902646	TTGTATTCAGAAGTACTGAATGTTAGGTAATGCTCATAAAATATATTAGGA	0	+	2902594	2902646	255,0,0	
-chrY	2902594	2902646	TTGTATTCAGAAGTACTGAATGTTAGGTAATGCTCATAAAATATATTAGGA	0	+	2902594	2902646	255,0,0	
-chrY	2902594	2902646	TTGTATTCAGAAGTACTGAATGTTAGGTAATGCTCATAAAATATATTAGGA	0	+	2902594	2902646	255,0,0	
-chrY	2902594	2902646	TTGTATTCAGAAGTACTGAATGTTAGGTAATGCTCATAAAATATATTAGGA	0	+	2902594	2902646	255,0,0	
-chrY	2902594	2902646	TTGTATTCAGAAGTACTGAATGTTAGGTAATGCTCATAAAATATATTAGGA	0	+	2902594	2902646	255,0,0	
-chrY	2902594	2902646	TTGTATTCAGAAGTACTGAATGTTAGGTAATGCTCATAAAATATATTAGGA	0	+	2902594	2902646	255,0,0	
-chrY	2902594	2902646	TTGTATTCAGAAGTACTGAATGTTAGGTAATGCTCATAAAATATATTAGGA	0	+	2902594	2902646	255,0,0	
-chrY	2902594	2902646	TTGTATTCAGAAGTACTGAATGTTAGGTAATGCTCATAAAATATATTAGGA	0	+	2902594	2902646	255,0,0	
-chrY	2902594	2902646	TTGTATTCAGAAGTACTGAATGTTAGGTAATGCTCATAAAATATATTAGGA	0	+	2902594	2902646	255,0,0	
-chrY	2902594	2902646	TTGTATTCAGAAGTACTGAATGTTAGGTAATGCTCATAAAATATATTAGGA	0	+	2902594	2902646	255,0,0	
-chrY	2902594	2902646	TTGTATTCAGAAGTACTGAATGTTAGGTAATGCTCATAAAATATATTAGGA	0	+	2902594	2902646	255,0,0	
-chrY	2902594	2902646	TTGTATTCAGAAGTACTGAATGTTAGGTAATGCTCATAAAATATATTAGGA	0	+	2902594	2902646	255,0,0	
-chrY	2904753	2904805	GAGAGGAGGATGCTGCTGTTGCAGCAGCAGCAGCTGCTGTGCATGAGCAGC	0	+	2904753	2904805	255,0,0	
-chrY	2904753	2904805	GAGAGGAGGATGCTGCTGTTGCAGCAGCAGCAGCTGCTGTGCCTGAGCCGC	0	+	2904753	2904805	255,0,0	
-chrY	2907254	2907306	TCATATTTGTGTGGAGTGTGGTAAAGGTTTCCGACACCCGTCGGAACTGAG	0	-	2907254	2907306	0,0,255	
-chrY	2907254	2907306	TCATATTTGTGTGGAGTGTGGTAAAGGTTTCCGACACCCGTCGGAACTGAG	0	-	2907254	2907306	0,0,255	
-chrY	2907254	2907306	TCATATTTGTGTGGAGTGTGGTAAAGGTTTCCGACACCCGTCGGAACTGAG	0	-	2907254	2907306	0,0,255	
-chrY	2907254	2907306	TCATATTTGTGTGGAGTGTGGTAAAGGTTTCCGACACCCGTCGGAACTGAG	0	-	2907254	2907306	0,0,255	
-chrY	2907254	2907306	TCATATTTGTGTGGAGTGTGGTAAAGGTTTCCGACACCCGTCGGAACTGAG	0	-	2907254	2907306	0,0,255	
-chrY	2907254	2907306	TCATATTTGTGTGGAGTGTGGTAAAGGTTTCCGACACCCGTCGGAACTGAG	0	-	2907254	2907306	0,0,255	
-chrY	2907254	2907306	TCATATTTGTGTGGAGTGTGGTAAAGGTTTCCGACACCCGTCGGAACTGAG	0	-	2907254	2907306	0,0,255	
-chrY	2907254	2907306	TCATATTTGTGTGGAGTGTGGTAAAGGTTTCCGACACCCGTCGGAACTGAG	0	-	2907254	2907306	0,0,255	
-chrY	2907254	2907306	TCATATTTGTGTGGAGTGTGGTAAAGGTTTCCGACACCCGTCGGAACTGAG	0	-	2907254	2907306	0,0,255	
-chrY	2907254	2907306	TCATATTTGTGTGGAGTGTGGTAAAGGTTTCCGACACCCGTCGGAACTGAG	0	-	2907254	2907306	0,0,255	
-chrY	2907254	2907306	TCATATTTGTGTGGAGTGTGGTAAAGGTTTCCGACACCCGTCGGAACTGAG	0	-	2907254	2907306	0,0,255	
-chrY	2907254	2907306	TCATATTTGTGTGGAGTGTGGTAAAGGTTTCCGACACCCGTCGGAACTGAG	0	-	2907254	2907306	0,0,255	
-chrY	2907254	2907306	TCATATTTGTGTGGAGTGTGGTAAAGGTTTCCGACACCCGTCGGAACTGAG	0	-	2907254	2907306	0,0,255	
-chrY	2907254	2907306	TCATATTTGTGTGGAGTGTGGTAAAGGTTTCCGACACCCGTCGGAACTGAG	0	-	2907254	2907306	0,0,255	
-chrY	2907254	2907306	TCATATTTGTGTGGAGTGTGGTAAAGGTTTCCGACACCCGTCGGAACTGAG	0	-	2907254	2907306	0,0,255	
-chrY	2907254	2907306	TCATATTTGTGTGGAGTGTGGTAAAGGTTTCCGACACCCGTCGGAACTGAG	0	-	2907254	2907306	0,0,255	
-chrY	2907254	2907306	TCATATTTGTGTGGAGTGTGGTAAAGGTTTCCGACACCCGTCGGAACTGAG	0	-	2907254	2907306	0,0,255	
-chrY	2907254	2907306	TCATATTTGTGTGGAGTGTGGTAAAGGTTTCCGACACCCGTCGGAACTGAG	0	-	2907254	2907306	0,0,255	
-chrY	2907254	2907306	TCATATTTGTGTGGAGTGTGGTAAAGGTTTCCGACACCCGTCGGAACTGAG	0	-	2907254	2907306	0,0,255	
-chrY	2907254	2907306	TCATATTTGTGTGGAGTGTGGTAAAGGTTTCCGACACCCGTCGGAACTGAG	0	-	2907254	2907306	0,0,255	
-chrY	2907629	2907681	CAGGCCTTCAGAACTTAAGAAACATGTGGCTGTCCACAAAGGTAAAAAAAT	0	-	2907629	2907681	0,0,255	
-chrY	2907629	2907681	CAGGCCTTCAGAACTTAAGAAACATGTGGCTGTCCACAAAGGTAAAAAAAT	0	-	2907629	2907681	0,0,255	
-chrY	2907629	2907681	CAGGCCTTCAGAACTTAAGAAACATGTGGCTGTCCACAAAGGTAAAAAAAT	0	-	2907629	2907681	0,0,255	
-chrY	2907629	2907681	CAGGCCTTCAGAACTTAAGAAACATGTGGCTGTCCACAAAGGTAAAAAAAT	0	-	2907629	2907681	0,0,255	
-chrY	2907629	2907681	CAGGCCTTCAGAACTTAAGAAACATGTGGCTGTCCACAAAGGTAAAAAAAT	0	-	2907629	2907681	0,0,255	
-chrY	2907629	2907681	CAGGCCCTCAGAACTTAAGAAACATGTGGCTGTCCACAAAGGTAAAAAAAT	0	-	2907629	2907681	0,0,255	
-chrY	2907629	2907681	CAGGCCTTCAGAACTTAAGAAACATGTGGCTGTCCACAAAGGTAAAAAAAT	0	-	2907629	2907681	0,0,255	
-chrY	2907629	2907681	CAGGCCTTCAGAACTTAAGAAACATGTGGCTGTCCACAAAGGTAAAAAAAT	0	-	2907629	2907681	0,0,255	
-chrY	2907629	2907681	CAGGCCTTCAGAACTTAAGAAACATGTGGCTGTCCACAAAGGTAAAAAAAT	0	-	2907629	2907681	0,0,255	
-chrY	2907629	2907681	CAGGCCTTCAGAACTTAAGAAACATGTGGCTGTCCACAAAGGTAAAAAAAT	0	-	2907629	2907681	0,0,255	
-chrY	2907629	2907681	CAGGCCTTCAGAACTTAAGAAACATGTGGCTGTCCACAAAGGTAAAAAAAT	0	-	2907629	2907681	0,0,255	
-chrY	2907629	2907681	CAGGCCTTCAGAACTTAAGAAACATGTGGCTGTCCACAAAGGTAAAAAAAT	0	-	2907629	2907681	0,0,255	
-chrY	2907629	2907681	CAGGCCTTCAGAACTTAAGAAACATGTGGCTGTCCACAAAGGTAAAAAAAT	0	-	2907629	2907681	0,0,255	
-chrY	2907629	2907681	CAGGCCTTCAGAACTTAAGAAACATGTGGCTGTCCACAAAGGTAAAAAAAT	0	-	2907629	2907681	0,0,255	
-chrY	2907629	2907681	CAGGCCTTCAGAACTTAAGAAACATGTGGCTGTCCACAAAGGTAAAAAAAT	0	-	2907629	2907681	0,0,255	
-chrY	2907629	2907681	CAGGCCTTCAGAACTTAAGAAACATGTGGCTGTCCACAAAGGTAAAAAAAT	0	-	2907629	2907681	0,0,255	
-chrY	2907629	2907681	CAGGCCTTCAGAACTTAAGAAACATGTGGCTGTCCACAAAGGTAAAAAAAT	0	-	2907629	2907681	0,0,255	
-chrY	2907629	2907681	CAGGCCTTCAGAACTTAAGAAACATGTGGCTGTCCACAAAGGTAAAAAAAT	0	-	2907629	2907681	0,0,255	
-chrY	2907629	2907681	CAGGCCTTCAGAACTTAAGAAACATGTGGCTGTCCACAAAGGTAAAAAAAT	0	-	2907629	2907681	0,0,255	
-chrY	2907629	2907681	CAGGCCTTCAGAACTTAAGAAACATGTGGCTGTCCACAAAGGTAAAAAAAT	0	-	2907629	2907681	0,0,255	
-chrY	2907629	2907681	CAGGCCTTCAGAACTTAAGAAACATGTGGCTGTCCACAAAGGTAAAAAAAT	0	-	2907629	2907681	0,0,255	
-chrY	2907629	2907681	CAGGCCTTCAGAACTTAAGAAACATGTGGCTGTCCACAAAGGTAAAAAAAT	0	-	2907629	2907681	0,0,255	
-chrY	2907629	2907681	CAGGCCTTCAGAACTTAAGAAACATGTGGCTGTCCACAAAGGTAAAAAAAT	0	-	2907629	2907681	0,0,255	
-chrY	2907629	2907681	CAGGCCTTCAGAACTTAAGAAACATGTGGCTGTCCACAAAGGTAAAAAAAT	0	-	2907629	2907681	0,0,255	
-chrY	2907629	2907681	CAGGCCTTCAGAACTTAAGAAACATGTGGCTGTCCACAAAGGTAAAAAAAT	0	-	2907629	2907681	0,0,255	
-chrY	2907629	2907681	CAGGCCTTCAGAACTTAAGAAACATGTGGCTGTCCACAAAGGTAAAAAAAT	0	-	2907629	2907681	0,0,255	
-chrY	2907629	2907681	CAGGCCTTCAGAACTTAAGAAACATGTGGCTGTCCACAAAGGTAAAAAAAT	0	-	2907629	2907681	0,0,255	
-chrY	2907629	2907681	CAGGCCTTCAGAACTTAAGAAACATGTGGCTGTCCACAAAGGTAAAAAAAT	0	-	2907629	2907681	0,0,255	
-chrY	2908968	2909020	TTTGAGGTGAATAATTAAAAAGAAAAGGACATTAGGAGAGTGAAAATCTTC	0	+	2908968	2909020	255,0,0	
-chrY	2908968	2909020	TTTGAGGTGAATAATTAAAAAGAAAAGGACATTAGGAGAGTGAAAATCTTC	0	+	2908968	2909020	255,0,0	
-chrY	2908968	2909020	TTTGAGGTGAATAATTAAAAAGAAAAGGACATTAGGAGAGTGAAAATCTTC	0	+	2908968	2909020	255,0,0	
-chrY	2908968	2909020	TTTGAGGTGAATAATTAAAAAGAAAAGGACATTAGGAGAGTGAAAATCTTC	0	+	2908968	2909020	255,0,0	
-chrY	2908968	2909020	TTTGAGGTGAATAATTAAAAAGAAAAGGACATTAGGAGAGTGAAAATCTTC	0	+	2908968	2909020	255,0,0	
-chrY	2908968	2909020	TTTGAGGTGAATAATTAAAAAGAAAAGGACATTAGGAGAGTGAAAATCTTC	0	+	2908968	2909020	255,0,0	
-chrY	2908968	2909020	TTTGAGGTGAATAATTAAAAAGAAAAGGACATTAGGAGAGTGAAAATCTTC	0	+	2908968	2909020	255,0,0	
-chrY	2908968	2909020	TTTGAGGTGAATAATTAAAAAGAAAAGGACATTAGGAGAGTGAAAATCTTC	0	+	2908968	2909020	255,0,0	
-chrY	2908968	2909020	TTTGAGGTGAATAATTAAAAAGAAAAGGACATTAGGAGAGTGAAAATCTTC	0	+	2908968	2909020	255,0,0	
-chrY	2908968	2909020	TTTGAGGTGAATAATTAAAAAGAAAAGGACATTAGGAGAGTGAAAATCTTC	0	+	2908968	2909020	255,0,0	
-chrY	2908968	2909020	TTTGAGGTGAATAATTAAAAAGAAAAGGACATTAGGAGAGTGAAAATCTTC	0	+	2908968	2909020	255,0,0	
-chrY	2908968	2909020	TTTGAGGTGAATAATTAAAAAGAAAAGGACATTAGGAGAGTGAAAATCTTC	0	+	2908968	2909020	255,0,0	
-chrY	2908968	2909020	TTTGAGGTGAATAATTAAAAAGAAAAGGACATTAGGAGAGTGAAAATCTTC	0	+	2908968	2909020	255,0,0	
-chrY	2908968	2909020	TTTGAGGTGAATAATTAAAAAGAAAAGGACATTAGGAGAGTGAAAATCTTC	0	+	2908968	2909020	255,0,0	
-chrY	2908968	2909020	TTTGAGGTGAATAATTAAAAAGAAAAGGACATTAGGAGAGTGAAAATCTTC	0	+	2908968	2909020	255,0,0	
-chrY	2908968	2909020	TTTGAGGTGAATAATTAAAAAGAAAAGGACATTAGGAGAGTGAAAATCTTC	0	+	2908968	2909020	255,0,0	
-chrY	2908968	2909020	TTTGAGGTGAATAATTAAAAAGAAAAGGACATTAGGAGAGTGAAAATCTTC	0	+	2908968	2909020	255,0,0	
-chrY	2908968	2909020	TTTGAGGTGAATAATTAAAAAGAAAAGGACATTAGGAGAGTGAAAATCTTC	0	+	2908968	2909020	255,0,0	
-chrY	2908968	2909020	TTTGAGGTGAATAATTAAAAAGAAAAGGACATTAGGAGAGTGAAAATCTTC	0	+	2908968	2909020	255,0,0	
-chrY	2908968	2909020	TTTGAGGTGAATAATTAAAAAGAAAAGGACATTAGGAGAGTGAAAATCTTC	0	+	2908968	2909020	255,0,0	
-chrY	2908968	2909020	TTTGAGGTGAATAATTAAAAAGAAAAGGACATTAGGAGAGTGAAAATCTTC	0	+	2908968	2909020	255,0,0	
-chrY	2908968	2909020	TTTGAGGTGAATAATTAAAAAGAAAAGGACATTAGGAGAGTGAAAATCTTC	0	+	2908968	2909020	255,0,0	
-chrY	2908968	2909020	TTTGAGGTGAATAATTAAAAAGAAAAGGACATTAGGAGAGTGAAAATCTTC	0	+	2908968	2909020	255,0,0	
-chrY	2908968	2909020	TTTGAGGTGAATAATTAAAAAGAAAAGGACATTAGGAGAGTGAAAATCTTC	0	+	2908968	2909020	255,0,0	
-chrY	2908968	2909020	TTTGAGGTGAATAATTAAAAAGAAAAGGACATTAGGAGAGTGAAAATCTTC	0	+	2908968	2909020	255,0,0	
-chrY	2908968	2909020	TTTGAGGTGAATAATTAAAAAGAAAAGGACATTAGGAGAGTGAAAATCTTC	0	+	2908968	2909020	255,0,0	
-chrY	2908968	2909020	TTTGAGGTGAATAATTAAAAAGAAAAGGACATTAGGAGAGTGAAAATCTTC	0	+	2908968	2909020	255,0,0	
-chrY	2908968	2909020	TTTGAGGTGAATAATTAAAAAGAAAAGGACATTAGGAGAGTGAAAATCTTC	0	+	2908968	2909020	255,0,0	
-chrY	2908968	2909020	TTTGAGGTGAATAATTAAAAAGAAAAGGACATTAGGAGAGTGAAAATCTTC	0	+	2908968	2909020	255,0,0	
-chrY	2908968	2909020	TTTGAGGTGAATAATTAAAAAGAAAAGGACATTAGGAGAGTGAAAATCTTC	0	+	2908968	2909020	255,0,0	
-chrY	2908968	2909020	TTTGAGGTGAATAATTAAAAAGAAAAGGACATTAGGAGAGTGAAAATCTTC	0	+	2908968	2909020	255,0,0	
-chrY	2908968	2909020	TTTGAGGTGAATAATTAAAAAGAAAAGGACATTAGGAGAGTGAAAATCTTC	0	+	2908968	2909020	255,0,0	
-chrY	2908968	2909020	TTTGAGGTGAATAATTAAAAAGAAAAGGACATTAGGAGAGTGAAAATCTTC	0	+	2908968	2909020	255,0,0	
-chrY	2908968	2909020	TTTGAGGTGAATAATTAAAAAGAAAAGGACATTAGGAGAGTGAAAATCTTC	0	+	2908968	2909020	255,0,0	
-chrY	2908968	2909020	TTTGAGGTGAATAATTAAAAAGAAAAGGACATTAGGAGAGTGAAAATCTTC	0	+	2908968	2909020	255,0,0	
-chrY	2908968	2909020	TTTGAGGTGAATAATTAAAAAGAAAAGGACATTAGGAGAGTGAAAATCTTC	0	+	2908968	2909020	255,0,0	
-chrY	2908968	2909020	TTTGAGGTGAATAATTAAAAAGAAAAGGACATTAGGAGAGTGAAAATCTTC	0	+	2908968	2909020	255,0,0	
-chrY	2908968	2909020	TTTGAGGTGAATAATTAAAAAGAAAAGGACATTAGGAGAGTGAAAATCTTC	0	+	2908968	2909020	255,0,0	
-chrY	2908968	2909020	TTTGAGGTGAATAATTAAAAAGAAAAGGACATTAGGAGAGTGAAAATCTTC	0	+	2908968	2909020	255,0,0	
-chrY	2908968	2909020	TTTGAGGTGAATAATTAAAAAGAAAAGGACATTAGGAGAGTGAAAATCTTC	0	+	2908968	2909020	255,0,0	
-chrY	2909010	2909062	AAAATCTTCTCTTCAAATAATCTTTGATAGATAAAAATGGAAGGTAAGATG	0	+	2909010	2909062	255,0,0	
-chrY	2909010	2909062	AAAATCTTCTCTTCAAATAATCTTTGATAGATAAAAATGGAAGGTAAGATG	0	+	2909010	2909062	255,0,0	
-chrY	2909010	2909062	AAAATCTTCTCTTCAAATAATCTTTGATAGATAAAAATGGAAGGTAAGATG	0	+	2909010	2909062	255,0,0	
-chrY	2909010	2909062	AAAATCTTCTCTTCAAATAATCTTTGATAGATAAAAATGGAAGGTAAGATG	0	+	2909010	2909062	255,0,0	
-chrY	2909010	2909062	AAAATCTTCTCTTCAAATAATCTTTGATAGATAAAAATGGAAGGTAAGATG	0	+	2909010	2909062	255,0,0	
-chrY	2909010	2909062	AAAATCTTCTCTTCAAATAATCTTTGATAGATAAAAATGGAAGGTAAGATG	0	+	2909010	2909062	255,0,0	
-chrY	2909010	2909062	AAAATCTTCTCTTCAAATAATCTTTGATAGATAAAAATGGAAGGTAAGATG	0	+	2909010	2909062	255,0,0	
-chrY	2909010	2909062	AAAATCTTCTCTTCAAATAATCTTTGATAGATAAAAATGGAAGGTAAGATG	0	+	2909010	2909062	255,0,0	
-chrY	2909010	2909062	AAAATCTTCTCTTCAAATAATCTTTGATAGATAAAAATGGAAGGTAAGATG	0	+	2909010	2909062	255,0,0	
-chrY	2909010	2909062	AAAATCTTCTCTTCAAATAATCTTTGATAGATAAAAATGGAAGGTAAGATG	0	+	2909010	2909062	255,0,0	
-chrY	2909010	2909062	AAAATCTTCTCTTCAAATAATCTTTGATAGATAAAAATGGAAGGTAAGATG	0	+	2909010	2909062	255,0,0	
-chrY	2909010	2909062	AAAATCTTCTCTTCAAATAATCTTTGATAGATAAAAATGGAAGGTAAGATG	0	+	2909010	2909062	255,0,0	
-chrY	2909010	2909062	AAAATCTTCTCTTCAAATAATCTTTGATAGATAAAAATGGAAGGTAAGATG	0	+	2909010	2909062	255,0,0	
-chrY	2909010	2909062	AAAATCTTCTCTTCAAATAATCTTTGATAGATAAAAATGGAAGGTAAGATG	0	+	2909010	2909062	255,0,0	
-chrY	2909010	2909062	AAAATCTTCTCTTCGAATAATCTTTGATAGATAAAAATGGAAGGTAAGATG	0	+	2909010	2909062	255,0,0	
-chrY	2909010	2909062	AAAATCTTCTCTTCAAATAATCTTTGATAGATAAAAATGGAAGGTAAGATG	0	+	2909010	2909062	255,0,0	
-chrY	2909010	2909062	AAAATCTTCTCTTCAAATAATCTTTGATAGATAAAAATGGAAGGTAAGATG	0	+	2909010	2909062	255,0,0	
-chrY	2909010	2909062	AAAATCTTCTCTTCAAATAATCTTTGATAGATAAAAATGGAAGGTAAGATG	0	+	2909010	2909062	255,0,0	
-chrY	2909010	2909062	AAAATCTTCTCTTCAAATAATCTTTGATAGATAAAAATGGAAGGTAAGATG	0	+	2909010	2909062	255,0,0	
-chrY	2909010	2909062	AAAATCTTCTCTTCAAATAATCTTTGATAGATAAAAATGGAAGGTAAGATG	0	+	2909010	2909062	255,0,0	
-chrY	2909010	2909062	AAAATCTTCTCTTCAAATAATCTTTGATAGATAAAAATGGAAGGTAAGATG	0	+	2909010	2909062	255,0,0	
-chrY	2909010	2909062	AAAATCTTCTCTTCAAATAATCTTTGATAGATAAAAATGGAAGGTAAGATG	0	+	2909010	2909062	255,0,0	
-chrY	2909010	2909062	AAAATCTTCTCTTCAAATAATCTTTGATAGATAAAAATGGAAGGTAAGATG	0	+	2909010	2909062	255,0,0	
-chrY	2909010	2909062	AAAATCTTCTCTTCAAATAATCTTTGATAGATAAAAATGGAAGGTAAGATG	0	+	2909010	2909062	255,0,0	
-chrY	2909010	2909062	AAAATCTTCTCTTCAAATAATCTTTGATAGATAAAAATGGAAGGTAAGATG	0	+	2909010	2909062	255,0,0	
-chrY	2909010	2909062	AAAATCTTCTCTTCAAATAATCTTTGATAGATAAAAATGGAAGGTAAGATG	0	+	2909010	2909062	255,0,0	
-chrY	2909010	2909062	AAAATCTTCTCTTCAAATAATCTTTGATAGATAAAAATGGAAGGTAAGATG	0	+	2909010	2909062	255,0,0	
-chrY	2909010	2909062	AAAATCTTCTCTTCAAATAATCTTTGATAGATAAAAATGGAAGGTAAGATG	0	+	2909010	2909062	255,0,0	
-chrY	2909010	2909062	AAAATCTTCTCTTCAAATAATCTTTGATAGATAAAAATGGAAGGTAAGATG	0	+	2909010	2909062	255,0,0	
-chrY	2909010	2909062	AAAATCTTCTCTTCAAATAATCTTTGATAGATAAAAATGGAAGGTAAGATG	0	+	2909010	2909062	255,0,0	
-chrY	2909010	2909062	AAAATCTTCTCTTCAAATAATCTTTGATAGATAAAAATGGAAGGTAAGATG	0	+	2909010	2909062	255,0,0	
-chrY	2909010	2909062	AAAATCTTCTCTTCAAATAATCTTTGATAGATAAAAATGGAAGGTAAGATG	0	+	2909010	2909062	255,0,0	
-chrY	2909010	2909062	AAAATCTTCTCTTCAAATAATCTTTGATAGATAAAAATGGAAGGTAAGATG	0	+	2909010	2909062	255,0,0	
-chrY	2909010	2909062	AAAATCTTCTCTTCAAATAATCTTTGATAGATAAAAATGGAAGGTAAGATG	0	+	2909010	2909062	255,0,0	
-chrY	2909010	2909062	AAAATCTTCTCTTCAAATAATCTTTGATAGATAAAAATGGAAGGTAAGATG	0	+	2909010	2909062	255,0,0	
-chrY	2909010	2909062	AAAATCTTCTCTTCAAATAATCTTTGATAGATAAAAATGGAAGGTAAGATG	0	+	2909010	2909062	255,0,0	
-chrY	2909010	2909062	AAAATCTTCTCTTCAAATAATCTTTGATAGATAAAAATGGAAGGTAAGATG	0	+	2909010	2909062	255,0,0	
-chrY	2909010	2909062	AAAATCTTCTCTTCAAATAATCTTTGATAGATAAAAATGGAAGGTAAGATG	0	+	2909010	2909062	255,0,0	
-chrY	2909109	2909161	TTTCTGGAAAGCTATTTCAGACATAGATTTCATAGTATTTTTCTGAGAATC	0	-	2909109	2909161	0,0,255	
-chrY	2909109	2909161	TTTCTGGAAAGCTATTTCAGACATAGATTTCATAGTATTTTTCTGAGAATC	0	-	2909109	2909161	0,0,255	
-chrY	2909109	2909161	TTTCTGGAAAGCTATTTCAGACATAGATTTCATAGTATTTTTCTGAGAATC	0	-	2909109	2909161	0,0,255	
-chrY	2909109	2909161	TTTCTGGAAAGCTATTTCAGACATAGATTTCATAGTATTTTTCTGAGAATC	0	-	2909109	2909161	0,0,255	
-chrY	2909109	2909161	TTTCTGGAAAGCTATTTCAGACATAGATTTCATAGTATTTTTCTGAGAATC	0	-	2909109	2909161	0,0,255	
-chrY	2909109	2909161	TTTCTGGAAAGCTATTTCAGACATAGATTTCATAGTATTTTTCTGAGAATC	0	-	2909109	2909161	0,0,255	
-chrY	2909109	2909161	TTTCTGGAAAGCTATTTCAGACATAGATTTCATAGTATTTTTCTGAGAATC	0	-	2909109	2909161	0,0,255	
-chrY	2909109	2909161	TTTCTGGAAAGCTATTTCAGACATAGATTTCATAGTATTTTTCTGAGAATC	0	-	2909109	2909161	0,0,255	
-chrY	2909109	2909161	TTTCTGGAAAGCTATTTCAGACATAGATTTCATAGTATTTTTCTGAGAATC	0	-	2909109	2909161	0,0,255	
-chrY	2909109	2909161	TTTCTGGAAAGCTATTTCAGACATAGATTTCATAGTATTTTTCTGAGAATC	0	-	2909109	2909161	0,0,255	
-chrY	2909109	2909161	TTTCTGGAAAGCTATTTCAGACATAGATTTCATAGTATTTTTCTGAGAATC	0	-	2909109	2909161	0,0,255	
-chrY	2909109	2909161	TTTCTGGAAAGCTATTTCAGACATAGATTTCATAGTATTTTTCTGAGAATC	0	-	2909109	2909161	0,0,255	
-chrY	2909109	2909161	TTTCTGGAAAGCTATTTCAGACATAGATTTCATAGTATTTTTCTGAGAATC	0	-	2909109	2909161	0,0,255	
-chrY	2909109	2909161	TTTCTGGAAAGCTATTTCAGACATAGATTTCATAGTATTTTTCTGAGAATC	0	-	2909109	2909161	0,0,255	
-chrY	2909109	2909161	TTTCTGGAAAGCTATTTCAGACATAGATTTCATAGTATTTTTCTGAGAATC	0	-	2909109	2909161	0,0,255	
-chrY	2909109	2909161	TTTCTGGAAAGCTATTTCAGACATAGATTTCATAGTATTTTTCTGAGAATC	0	-	2909109	2909161	0,0,255	
-chrY	2909109	2909161	TTTCTGGAAAGCTATTTCAGACATAGATTTCATAGTATTTTTCTGAGAATC	0	-	2909109	2909161	0,0,255	
-chrY	2909109	2909161	TTTCTGGAAAGCTATTTCAGACATAGATTTCATAGTATTTTTCTGAGAATC	0	-	2909109	2909161	0,0,255	
-chrY	2909109	2909161	TTTCTGGAAAGCTATTTCAGACATAGATTTCATAGTATTTTTCTGAGAATC	0	-	2909109	2909161	0,0,255	
-chrY	2909109	2909161	TTTCTGGAAAGCTATTTCAGACATAGATTTCATAGTATTTTTCTGAGAATC	0	-	2909109	2909161	0,0,255	
-chrY	2909109	2909161	TTTCTGGAAAGCTATTTCAGACATAGATTTCATAGTATTTTTCTGAGAATC	0	-	2909109	2909161	0,0,255	
-chrY	2909109	2909161	TTTCTGGAAAGCTATTTCAGACATAGATTTCATAGTATTTTTCTGAGAATC	0	-	2909109	2909161	0,0,255	
-chrY	2909109	2909161	TTTCTGGAAAGCTATTTCAGACATAGATTTCATAGTATTTTTCTGAGAATC	0	-	2909109	2909161	0,0,255	
-chrY	2909109	2909161	TTTCTGGAAAGCTATTTCAGACATAGATTTCATAGTATTTTTCTGAGAATC	0	-	2909109	2909161	0,0,255	
-chrY	2909109	2909161	TTTCTGGAAAGCTATTTCAGACATAGATTTCATAGTATTTTTCTGAGAATC	0	-	2909109	2909161	0,0,255	
-chrY	2909109	2909161	TTTCTGGAAAGCTATTTCAGACATAGATTTCATAGTATTTTTCTGAGAATC	0	-	2909109	2909161	0,0,255	
-chrY	2909109	2909161	TTTCTGGAAAGCTATTTCAGACATAGATTTCATAGTATTTTTCTGAGAATC	0	-	2909109	2909161	0,0,255	
-chrY	2909109	2909161	TTTCTGGAAAGCTATTTCAGACATAGATTTCATAGTATTTTTCTGAGAATC	0	-	2909109	2909161	0,0,255	
-chrY	2909109	2909161	TTTCTGGAAAGCTATTTCAGACATAGATTTCATAGTATTTTTCTGAGAATC	0	-	2909109	2909161	0,0,255	
-chrY	2909109	2909161	TTTCTGGAAAGCTATTTCAGACATAGATTTCATAGTATTTTTCTGAGAATC	0	-	2909109	2909161	0,0,255	
-chrY	2909109	2909161	TTTCTGGAAAGCTATTTCAGACATAGATTTCATAGTATTTTTCTGAGAATC	0	-	2909109	2909161	0,0,255	
-chrY	2909109	2909161	TTTCTGGAAAGCTATTTCAGACATAGATTTCATAGTATTTTTCTGAGAATC	0	-	2909109	2909161	0,0,255	
-chrY	2909109	2909161	TTTCTGGAAAGCTATTTCAGACATAGATTTCATAGTATTTTTCTGAGAATC	0	-	2909109	2909161	0,0,255	
-chrY	2909109	2909161	TTTCTGGAAAGCTATTTCAGACATAGATTTCATAGTATTTTTCTGAGAATC	0	-	2909109	2909161	0,0,255	
-chrY	2909109	2909161	TTTCTGGAAAGCTATTTCAGACATAGATTTCATAGTATTTTTCTGAGAATC	0	-	2909109	2909161	0,0,255	
-chrY	2909109	2909161	TTTCTGGAAAGCTATTTCAGACATAGATTTCATAGTATTTTTCTGAGAATC	0	-	2909109	2909161	0,0,255	
-chrY	2909109	2909161	TTTCTGGAAAGCTATTTCAGACATAGATTTCATAGTATTTTTCTGAGAATC	0	-	2909109	2909161	0,0,255	
-chrY	2909109	2909161	TTTCTGGAAAGCTATTTCAGACATAGATTTCATAGTATTTTTCTGAGAATC	0	-	2909109	2909161	0,0,255	
-chrY	2909109	2909161	TTTCTGGAAAGCTATTTCAGACATAGATTTCATAGTATTTTTCTGAGAATC	0	-	2909109	2909161	0,0,255	
-chrY	2909109	2909161	TTTCTGGAAAGCTATTTCAGACATAGATTTCATAGTATTTTTCTGAGAATC	0	-	2909109	2909161	0,0,255	
-chrY	2909135	2909187	ATTTCATAGTATTTTTCTGAGAATCCTGTGAAGGAACGCTGTCTCTTTGCA	0	-	2909135	2909187	0,0,255	
-chrY	2909135	2909187	ATTTCATAGTATTTTTCTGAGAATCCTGTGAAGGAACGCTGTCTCTTTGCA	0	-	2909135	2909187	0,0,255	
-chrY	2909135	2909187	ATTTCATAGTATTTTTCTGAGAATCCTGTGAAGGAACGCTGTCTCTTTGCA	0	-	2909135	2909187	0,0,255	
-chrY	2909135	2909187	ATTTCATAGTATTTTTCTGAGAATCCTGTGAAGGAACGCTGTCTCTTTGCA	0	-	2909135	2909187	0,0,255	
-chrY	2909135	2909187	ATTTCATAGTATTTTTCTGAGAATCCTGTGAAGGAACGCTGTCTCTTTGCA	0	-	2909135	2909187	0,0,255	
-chrY	2909135	2909187	ATTTCATAGTATTTTTCTGAGAATCCTGTGAAGGAACGCTGTCTCTTTGCA	0	-	2909135	2909187	0,0,255	
-chrY	2909135	2909187	ATTTCATAGTATTTTTCTGAGAATCCTGTGAAGGAACGCTGTCTCTTTGCA	0	-	2909135	2909187	0,0,255	
-chrY	2909135	2909187	ATTTCATAGTATTTTTCTGAGAATCCTGTGAAGGAACGCTGTCTCTTTGCA	0	-	2909135	2909187	0,0,255	
-chrY	2909135	2909187	ATTTCATAGTATTTTTCTGAGAATCCTGTGAAGGAACGCTGTCTCTTTGCA	0	-	2909135	2909187	0,0,255	
-chrY	2909135	2909187	ATTTCATAGTATTTTTCTGAGAATCCTGTGAAGGAACGCTGTCTCTTTGCA	0	-	2909135	2909187	0,0,255	
-chrY	2909135	2909187	ATTTCATAGTATTTTTCTGAGAATCCTGTGAAGGAACGCTGTCTCTTTGCA	0	-	2909135	2909187	0,0,255	
-chrY	2909135	2909187	ATTTCATAGTATTTTTCTGAGAATCCTGTGAAGGAACGCTGTCTCTTTGCA	0	-	2909135	2909187	0,0,255	
-chrY	2909135	2909187	ATTTCATAGTATTTTTCTGAGAATCCTGTGAAGGAACGCTGTCTCTTCGCA	0	-	2909135	2909187	0,0,255	
-chrY	2909135	2909187	ATTTCATAGTATTTTTCTGAGAATCCTGTGAAGGAACGCTGTCTCTTTGCA	0	-	2909135	2909187	0,0,255	
-chrY	2909135	2909187	ATTTCATAGTATTTTTCTGAGAATCCTGTGAAGGAACGCTGTCTCTTTGCA	0	-	2909135	2909187	0,0,255	
-chrY	2909135	2909187	ATTTCATAGTATTTTTCTGAGAATCCTGTGAAGGAACGCTGTCTCTTTGCA	0	-	2909135	2909187	0,0,255	
-chrY	2909135	2909187	ATTTCATAGTATTTTTCTGAGAATCCTGTGAAGGAACGCTGTCTCTTTGCA	0	-	2909135	2909187	0,0,255	
-chrY	2909135	2909187	ATTTCATAGTATTTTTCTGAGAATCCTGTGAAGGAACGCTGTCTCTTTGCA	0	-	2909135	2909187	0,0,255	
-chrY	2909135	2909187	ATTTCATAGTATTTTTCTGAGAATCCTGTGAAGGAACGCTGTCTCTTTGCA	0	-	2909135	2909187	0,0,255	
-chrY	2909135	2909187	ATTTCATAGTATTTTTCTGAGAATCCTGTGAAGGAACGCTGTCTCTTTGCA	0	-	2909135	2909187	0,0,255	
-chrY	2909135	2909187	ATTTCATAGTATTTTTCTGAGAATCCTGTGAAGGAACGCTGTCTCTTTGCA	0	-	2909135	2909187	0,0,255	
-chrY	2909135	2909187	ATTTCATAGTATTTTTCTGAGAATCCTGTGAAGGAACGCTGTCTCTTTGCA	0	-	2909135	2909187	0,0,255	
-chrY	2909135	2909187	ATTTCATAGTATTTTTCTGAGAATCCTGTGAAGGAACGCTGTCTCTTTGCA	0	-	2909135	2909187	0,0,255	
-chrY	2909135	2909187	ATTTCATAGTATTTTTCTGAGAATCCTGTGAAGGAACGCTGTCTCTTTGCA	0	-	2909135	2909187	0,0,255	
-chrY	2909135	2909187	ATTTCATAGTATTTTTCTGAGAATCCTGTGAAGGAACGCTGTCTCTTTGCA	0	-	2909135	2909187	0,0,255	
-chrY	2909135	2909187	ATTTCATAGTATTTTTCTGAGAATCCTGTGAAGGAACGCTGTCTCTTTGCA	0	-	2909135	2909187	0,0,255	
-chrY	2909135	2909187	ATTTCATAGTATTTTTCTGAGAATCCTGTGAAGGAACGCTGTCTCTTTGCA	0	-	2909135	2909187	0,0,255	
-chrY	2909135	2909187	ATTTCATAGTATTTTTCTGAGAATCCTGTGAAGGAACGCTGTCTCTTTGCA	0	-	2909135	2909187	0,0,255	
-chrY	2909135	2909187	ATTTCATAGTATTTTTCTGAGAATCCTGTGAAGGAACGCTGTCTCTTTGCA	0	-	2909135	2909187	0,0,255	
-chrY	2909135	2909187	ATTTCATAGTATTTTTCTGAGAATCCTGTGAAGGAACGCTGTCTCTTTGCA	0	-	2909135	2909187	0,0,255	
-chrY	2909135	2909187	ATTTCATAGTATTTTTCTGAGAATCCTGTGAAGGAACGCTGTCTCTTTGCA	0	-	2909135	2909187	0,0,255	
-chrY	2909135	2909187	ATTTCATAGTATTTTTCTGAGAATCCTGTGAAGGAACGCTGTCTCTTTGCA	0	-	2909135	2909187	0,0,255	
-chrY	2909135	2909187	ATTTCATAGTATTTTTCTGAGAATCCTGTGAAGGAACGCTGTCTCTTTGCA	0	-	2909135	2909187	0,0,255	
-chrY	2909135	2909187	ATTTCATAGTATTTTTCTGAGAATCCTGTGAAGGAACGCTGTCTCTTTGCA	0	-	2909135	2909187	0,0,255	
-chrY	2909135	2909187	ATTTCATAGTATTTTTCTGAGAATCCTGTGAAGGAACGCTGTCTCTTTGCA	0	-	2909135	2909187	0,0,255	
-chrY	2909135	2909187	ATTTCATAGTATTTTTCTGAGAATCCTGTGAAGGAACGCTGTCTCTTTGCA	0	-	2909135	2909187	0,0,255	
-chrY	2909135	2909187	ATTTCATAGTATTTTTCTGAGAATCCTGTGAAGGAACGCTGTCTCTTTGCA	0	-	2909135	2909187	0,0,255	
-chrY	2909135	2909187	ATTTCATAGTATTTTTCTGAGAATCCTGTGAAGGAACGCTGTCTCTTTGCA	0	-	2909135	2909187	0,0,255	
-chrY	2909455	2909507	TATAAATTGAATTCATATAATTAAAAAGAATTTGGTTAATAAGAATTTGGA	0	+	2909455	2909507	255,0,0	
-chrY	2909455	2909507	TATAAATTGAATTCATATAATTAAAAAGAATTTGGTTAATAAGAATTTGGA	0	+	2909455	2909507	255,0,0	
-chrY	2909455	2909507	TATAAATTGAATTCATATAATTAAAAAGAATTTGGTTAATAAGAATTTGGA	0	+	2909455	2909507	255,0,0	
-chrY	2909455	2909507	TATAAATTGAATTCATATAATTAAAAAGAATTTGGTTAATAAGAATTTGGA	0	+	2909455	2909507	255,0,0	
-chrY	2909455	2909507	TATAAATTGAATTCATATAATTAAAAAGAATTTGGTTAATAAGAATTTGGA	0	+	2909455	2909507	255,0,0	
-chrY	2909455	2909507	TATAAATTGAATTCATATAATTAAAAAGAATTTGGTTAATAAGAATTTGGA	0	+	2909455	2909507	255,0,0	
-chrY	2909455	2909507	TATAAATTGAATTCATATAATTAAAAAGAATTTGGTTAATAAGAATTTGGA	0	+	2909455	2909507	255,0,0	
-chrY	2909455	2909507	TATAAATTGAATTCATATAATTAAAAAGAATTTGGTTAATAAGAATTTGGA	0	+	2909455	2909507	255,0,0	
-chrY	2909455	2909507	TATAAATTGAATTCATATAATTAAAAAGAATTTGGTTAATAAGAATTTGGA	0	+	2909455	2909507	255,0,0	
-chrY	2909455	2909507	TATAAATTGAATTCATATAATTAAAAAGAATTTGGTTAATAAGAATTTGGA	0	+	2909455	2909507	255,0,0	
-chrY	2909455	2909507	TATAAATTGAATTCATATAATTAAAAAGAATTTGGTTAATAAGAATTTGGA	0	+	2909455	2909507	255,0,0	
-chrY	2909455	2909507	TATAAATTGAATTCATATAATTAAAAAGAATTTGGTTAATAAGAATTTGGA	0	+	2909455	2909507	255,0,0	
-chrY	2909455	2909507	TATAAATTGAATTCATATAATTAAAAAGAATTTGGTTAATAAGAATTTGGA	0	+	2909455	2909507	255,0,0	
-chrY	2909455	2909507	TATAAATTGAATTCATATAATTAAAAAGAATTTGGTTAATAAGAATTTGGA	0	+	2909455	2909507	255,0,0	
-chrY	2909455	2909507	TATAAATTGAATTCATATAATTAAAAAGAATTTGGTTAATAAGAATTTGGA	0	+	2909455	2909507	255,0,0	
-chrY	2909455	2909507	TATAAATTGAATTCATATAATTAAAAAGAATTTGGTTAATAAGAATTTGGA	0	+	2909455	2909507	255,0,0	
-chrY	2909455	2909507	TATAAATTGAATTCATATAATTAAAAAGAATTTGGTTAATAAGAATTTGGA	0	+	2909455	2909507	255,0,0	
-chrY	2909455	2909507	TATAAATTGAATTCATATAATTAAAAAGAATTTGGTTAATAAGAATTTGGA	0	+	2909455	2909507	255,0,0	
-chrY	2909455	2909507	TATAAATTGAATTCATATAATTAAAAAGAATTTGGTTAATAAGAATTTGGA	0	+	2909455	2909507	255,0,0	
-chrY	2909455	2909507	TATAAATTGAATTCATATAATTAAAAAGAATTTGGTTAATAAGAATTTGGA	0	+	2909455	2909507	255,0,0	
-chrY	2909455	2909507	TATAAATTGAATTCATATAATTAAAAAGAATTTGGTTAATAAGAATTTGGA	0	+	2909455	2909507	255,0,0	
-chrY	2909455	2909507	TATAAATTGAATTCATATAATTAAAAAGAATTTGGTTAATAAGAATTTGGA	0	+	2909455	2909507	255,0,0	
-chrY	2909455	2909507	TATAAATTGAATTCATATAATTAAAAAGAATTTGGTTAATAAGAATTTGGA	0	+	2909455	2909507	255,0,0	
-chrY	2909485	2909537	TTTGGTTAATAAGAATTTGGAGAATGGAAAATACATTTTTAGGTTCCTTAA	0	+	2909485	2909537	255,0,0	
-chrY	2909485	2909537	TTTGGTTAATAAGAATTTGGAGAATGGAAAATACATTTTTAGGTTCCTTAA	0	+	2909485	2909537	255,0,0	
-chrY	2909485	2909537	TTTGGTTAATAAGAATTTGGAGAATGGAAAATACATTTTTAGGTTCCTTAA	0	+	2909485	2909537	255,0,0	
-chrY	2909485	2909537	TTTGGTTAATAAGAATTTGGAGAATGGAAAATACATTTTTAGGTTCCTTAA	0	+	2909485	2909537	255,0,0	
-chrY	2909485	2909537	TTTGGTTAATAAGAATTTGGAGAATGGAAAATACATTTTTAGGTTCCTTAA	0	+	2909485	2909537	255,0,0	
-chrY	2909485	2909537	TTTGGTTAATAAGAATTTGGAGAATGGAAAATACATTTTTAGGTTCCTTAA	0	+	2909485	2909537	255,0,0	
-chrY	2909485	2909537	TTTGGTTAATAAGAATTTGGAGAATGGAAAATACATTTTTAGGTTCCTTAA	0	+	2909485	2909537	255,0,0	
-chrY	2909485	2909537	TTTGGTTAATAAGAATTTGGAGAATGGAAAATACATTTTTAGGTTCCTTAA	0	+	2909485	2909537	255,0,0	
-chrY	2909485	2909537	TTTGGTTAATAAGAATTTGGAGAATGGAAAATACATTTTTAGGTTCCTTAA	0	+	2909485	2909537	255,0,0	
-chrY	2909485	2909537	TTTGGTTAATAAGAATTTGGAGAATGGAAAATACATTTTTAGGTTCCTTAA	0	+	2909485	2909537	255,0,0	
-chrY	2909485	2909537	TTTGGTTAATAAGAATTTGGAGAATGGAAAATACATTTTTAGGTTCCTTAA	0	+	2909485	2909537	255,0,0	
-chrY	2909485	2909537	TTTGGTTAATAAGAATTTGGAGAATGGAAAATACATTTTTAGGTTCCTTAA	0	+	2909485	2909537	255,0,0	
-chrY	2909485	2909537	TTTGGTTAATAAGAATTTGGAGAATGGAAAATACATTTTTAGGTTCCTTAA	0	+	2909485	2909537	255,0,0	
-chrY	2909485	2909537	TTTGGTTAATAAGAATTTGGAGAATGGAAAATACATTTTTAGGTTCCTTAA	0	+	2909485	2909537	255,0,0	
-chrY	2909485	2909537	TTTGGTTAATAAGAATTTGGAGAATGGAAAATACATTTTTAGGTTCCTTAA	0	+	2909485	2909537	255,0,0	
-chrY	2909485	2909537	TTTGGTTAATAAGAATTTGGAGAATGGAAAATACATTTTTAGGTTCCTTAA	0	+	2909485	2909537	255,0,0	
-chrY	2909485	2909537	TTTGGTTAATAAGAATTTGGAGAATGGAAAATACATTTTTAGGTTCCTTAA	0	+	2909485	2909537	255,0,0	
-chrY	2909485	2909537	TTTGGTTAATAAGAATTTGGAGAATGGAAAATACATTTTTAGGTTCCTTAA	0	+	2909485	2909537	255,0,0	
-chrY	2909485	2909537	TTTGGTTAATAAGAATTTGGAGAATGGAAAATACATTTTTAGGTTCCTTAA	0	+	2909485	2909537	255,0,0	
-chrY	2909485	2909537	TTTGGTTAATAAGAATTTGGAGAATGGAAAATACATTTTTAGGTTCCTTAA	0	+	2909485	2909537	255,0,0	
-chrY	2909485	2909537	TTTGGTTAATAAGAATTTGGAGAATGGAAAATACATTTTTAGGTTCCTTAA	0	+	2909485	2909537	255,0,0	
-chrY	2909485	2909537	TTTGGTTAATAAGAATTTGGAGAATGGAAAATACATTTTTAGGTTCCTTAA	0	+	2909485	2909537	255,0,0	
-chrY	2909485	2909537	TTTGGTTAATAAGAATTTGGAGAATGGAAAATACATTTTTAGGTTCCTTAA	0	+	2909485	2909537	255,0,0	
-chrY	2909485	2909537	TTTGGTTAATAAGAATTTGGAGAATGGAAAATACATTTTTAGGTTCCTTAA	0	+	2909485	2909537	255,0,0	
-chrY	2909485	2909537	TTTGGTTAATAAGAATTTGGAGAATGGAAAATACATTTTTAGGTTCCTTAA	0	+	2909485	2909537	255,0,0	
-chrY	2909485	2909537	TTTGGTTAATAAGAATTTGGAGAATGGAAAATACATTTTTAGGTTCCTTAA	0	+	2909485	2909537	255,0,0	
-chrY	2909485	2909537	TTTGGTTAATAAGAATTTGGAGAATGGAAAATACATTTTTAGGTTCCTTAA	0	+	2909485	2909537	255,0,0	
-chrY	2909485	2909537	TTTGGTTAATAAGAATTTGGAGAATGGAAAATACATTTTTAGGTTCCTTAA	0	+	2909485	2909537	255,0,0	
-chrY	2909485	2909537	TTTGGTTAATAAGAATTTGGAGAATGGAAAATACATTTTTAGGTTCCTTAA	0	+	2909485	2909537	255,0,0	
-chrY	2909485	2909537	TTTGGTTAATAAGAATTTGGAGAATGGAAAATACATTTTTAGGTTCCTTAA	0	+	2909485	2909537	255,0,0	
-chrY	2909485	2909537	TTTGGTTAATAAGAATTTGGAGAATGGAAAATACATTTTTAGGTTCCTTAA	0	+	2909485	2909537	255,0,0	
-chrY	2909485	2909537	TTTGGTTAATAAGAATTTGGAGAATGGAAAATACATTTTTAGGTTCCTTAA	0	+	2909485	2909537	255,0,0	
-chrY	2909485	2909537	TTTGGTTAATAAGAATTTGGAGAATGGAAAATACATTTTTAGGTTCCTTAA	0	+	2909485	2909537	255,0,0	
-chrY	2909485	2909537	TTTGGTTAATAAGAATTTGGAGAATGGAAAATACATTTTTAGGTTCCTTAA	0	+	2909485	2909537	255,0,0	
-chrY	2909485	2909537	TTTGGTTAATAAGAATTTGGAGAATGGAAAATACATTTTTAGGTTCCTTAA	0	+	2909485	2909537	255,0,0	
-chrY	2909485	2909537	TTTGGTTAATAAGAATTTGGAGAATGGAAAATACATTTTTAGGTTCCTTAA	0	+	2909485	2909537	255,0,0	
-chrY	2909485	2909537	TTTGGTTAATAAGAATTTGGAGAATGGAAAATACATTTTTAGGTTCCTTAA	0	+	2909485	2909537	255,0,0	
-chrY	2909485	2909537	TTTGGTTAATAAGAATTTGGAGAATGGAAAATACATTTTTAGGTTCCTTAA	0	+	2909485	2909537	255,0,0	
-chrY	2909485	2909537	TTTGGTTAATAAGAATTTGGAGAATGGAAAATACATTTTTAGGTTCCTTAA	0	+	2909485	2909537	255,0,0	
-chrY	2909485	2909537	TTTGGTTAATAAGAATTTGGAGAATGGAAAATACATTTCTAGGTTCCTTAA	0	+	2909485	2909537	255,0,0	
-chrY	2909596	2909648	ACATTACAGCTACCTTCTAGCTTTAGTATGGTAGTGCTTCATTCAACTTTT	0	-	2909596	2909648	0,0,255	
-chrY	2909596	2909648	ACATTACAGCTACCTTCTAGCTTTAGTATGGTAGTGCTTCATTCAACTTTT	0	-	2909596	2909648	0,0,255	
-chrY	2909596	2909648	ACATTACAGCTACCTTCTAGCTTTAGTATGGTAGTGCTTCATTCAACTTTT	0	-	2909596	2909648	0,0,255	
-chrY	2909596	2909648	ACATTACAGCTACCTTCTAGCTTTAGTATGGTAGTGCTTCATTCAACTTTT	0	-	2909596	2909648	0,0,255	
-chrY	2909596	2909648	ACATTACAGCTACCTTCTAGCTTTAGTATGGTAGTGCTTCATTCAACTTTT	0	-	2909596	2909648	0,0,255	
-chrY	2909596	2909648	ACATTACAGCTACCTTCTAGCTTTAGTATGGTAGTGCTTCATTCAACTTTT	0	-	2909596	2909648	0,0,255	
-chrY	2909596	2909648	ACATTACAGCTACCTTCTAGCTTTAGTATGGTAGTGCTTCATTCAACTTTT	0	-	2909596	2909648	0,0,255	
-chrY	2909596	2909648	ACATTACAGCTACCTTCTAGCTTTAGTATGGTAGTGCTTCATTCAACTTTT	0	-	2909596	2909648	0,0,255	
-chrY	2909596	2909648	ACATTACAGCTACCTTCTAGCTTTAGTATGGTAGTGCTTCATTCAACTTTT	0	-	2909596	2909648	0,0,255	
-chrY	2909596	2909648	ACATTACAGCTACCTTCTAGCTTTAGTATGGTAGTGCTTCATTCAACTTTT	0	-	2909596	2909648	0,0,255	
-chrY	2909596	2909648	ACATTACAGCTACCTTCTAGCTTTAGTATGGTAGTGCTTCATTCAACTTTT	0	-	2909596	2909648	0,0,255	
-chrY	2909596	2909648	ACATTACAGCTACCTTCTAGCTTTAGTATGGTAGTGCTTCATTCAACTTTT	0	-	2909596	2909648	0,0,255	
-chrY	2909596	2909648	ACATTACAGCTACCTTCTAGCTTTAGTATGGTAGTGCTTCATTCAACTTTT	0	-	2909596	2909648	0,0,255	
-chrY	2909596	2909648	ACATTACAGCTACCTTCTAGCTTTAGTATGGTAGTGCTTCATTCAACTTTT	0	-	2909596	2909648	0,0,255	
-chrY	2909596	2909648	ACATTACAGCTACCTTCTAGCTTTAGTATGGTAGTGCTTCATTCAACTTTT	0	-	2909596	2909648	0,0,255	
-chrY	2909596	2909648	ACATTACAGCTACCTTCTAGCTTTAGTATGGTAGTGCTTCATTCAACTTTT	0	-	2909596	2909648	0,0,255	
-chrY	2909596	2909648	ACATTACAGCTACCTTCTAGCTTTAGTATGGTAGTGCTTCATTCAACTTTT	0	-	2909596	2909648	0,0,255	
-chrY	2909596	2909648	ACATTACAGCTACCNTCTNGCTTTAGTATGGTAGTGCTTCATNCAACTTTT	0	-	2909596	2909648	0,0,255	
-chrY	2909596	2909648	ACATTACAGCTACCTTCTAGCTTTAGTATGGTAGTGCTTCATTCAACTTTT	0	-	2909596	2909648	0,0,255	
-chrY	2909596	2909648	ACATTACAGCTACCTTCTAGCTTTAGTATGGTAGTGCTTCATTCAACTTTT	0	-	2909596	2909648	0,0,255	
-chrY	2909596	2909648	ACATTACAGCTACCTTCTAGCTTTAGTATGGTAGTGCTTCATTCAACTTTT	0	-	2909596	2909648	0,0,255	
-chrY	2909596	2909648	ACATTACAGCTACCTTCTAGCTTTAGTATGGTAGTGCTTCATTCAACTTTT	0	-	2909596	2909648	0,0,255	
-chrY	2909596	2909648	ACATTACAGCTACCTTCTAGCTTTAGTATGGTAGTGCTTCATTCAACTTTT	0	-	2909596	2909648	0,0,255	
-chrY	2909596	2909648	ACATTACAGCTACCTTCTAGCTTTAGTATGGTAGTGCTTCATTCAACTTTT	0	-	2909596	2909648	0,0,255	
-chrY	2909618	2909670	TTAGTATGGTAGTGCTTCATTCAACTTTTGCTGTCAGGTTTTTATTTTCAC	0	-	2909618	2909670	0,0,255	
-chrY	2909618	2909670	TTAGTATGGTAGTGCTTCATTCAACTTTTGCTGTCAGGTTTTTATTTTCAC	0	-	2909618	2909670	0,0,255	
-chrY	2909618	2909670	TTAGTATGGTAGTGCTTCATTCAACTTTTGCTGTCAGGTTTTTATTTTCAC	0	-	2909618	2909670	0,0,255	
-chrY	2909618	2909670	TTAGTATGGTAGTGCTTCATTCAACTTTTGCTGTCAGGTTTTTATTTTCAC	0	-	2909618	2909670	0,0,255	
-chrY	2909618	2909670	TTAGTATGGTAGTGCTTCATTCAACTTTTGCTGTCAGGTTTTTATTTTCAC	0	-	2909618	2909670	0,0,255	
-chrY	2909618	2909670	TTAGTATGGTAGTGCTTCATTCAACTTTTGCTGTCAGGTTTTTATTTTCAC	0	-	2909618	2909670	0,0,255	
-chrY	2909618	2909670	TTAGTATGGTAGTGCTTCATTCAACTTTTGCTGTCAGGTTTTTATTTTCAC	0	-	2909618	2909670	0,0,255	
-chrY	2909618	2909670	TTAGTATGGTAGTGCTTCATTCAACTTTTGCTGTCAGGTTTTTATTTTCAC	0	-	2909618	2909670	0,0,255	
-chrY	2909618	2909670	TTAGTATGGTAGTGCTTCATTCAACTTTTGCTGTCAGGTTTTTATTTTCAC	0	-	2909618	2909670	0,0,255	
-chrY	2909618	2909670	TTAGTATGGTAGTGCTTCATTCAACTTTTGCTGTCAGGTTTTTATTTTCAC	0	-	2909618	2909670	0,0,255	
-chrY	2909618	2909670	TTAGTATGGTAGTGCTTCATTCAACTTTTGCTGTCAGGTTTTTATTTTCAC	0	-	2909618	2909670	0,0,255	
-chrY	2909618	2909670	TTAGTATGGTAGTGCTTCATTCAACTTTTGCTGTCAGGTTTTTATTTTCAC	0	-	2909618	2909670	0,0,255	
-chrY	2909618	2909670	TTAGTATGGTAGTGCTTCATTCAACTTTTGCTGTCAGGTTTTTATTTTCAC	0	-	2909618	2909670	0,0,255	
-chrY	2909618	2909670	TTAGTATGGTAGTGCTTCATTCAACTTTTGCTGTCAGGTTTTTATTTTCAC	0	-	2909618	2909670	0,0,255	
-chrY	2909618	2909670	TTAGTATGGTAGTGCTTCATTCAACTTTTGCTGTCAGGTTTTTATTTTCAC	0	-	2909618	2909670	0,0,255	
-chrY	2909618	2909670	TTAGTATGGTAGTGCTTCATTCAACTTTTGCTGTCAGGTTTTTATTTTCAC	0	-	2909618	2909670	0,0,255	
-chrY	2909618	2909670	TTAGTATGGTAGTGCTTCATTCAACTTTTGCTGTCAGGTTTTTATTTTCAC	0	-	2909618	2909670	0,0,255	
-chrY	2909618	2909670	TTAGTATGGTAGTGCTTCATTCAACTTTTGCTGTCAGGTTTTTATTTTCAC	0	-	2909618	2909670	0,0,255	
-chrY	2909618	2909670	TTAGTATGGTAGTGCTTCATTCAACTTTTGCTGTCAGGTTTTTATTTTCAC	0	-	2909618	2909670	0,0,255	
-chrY	2909618	2909670	TTAGTATGGTAGTGCTTCATTCAACTTTTGCTGTCAGGTTTTTATTTTCAC	0	-	2909618	2909670	0,0,255	
-chrY	2909618	2909670	TTAGTATGGTAGTGCTTCATTCAACTTTTGCTGTCAGGTTTTTATTTTCAC	0	-	2909618	2909670	0,0,255	
-chrY	2909618	2909670	TTAGTATGGTAGTGCTTCATTCAACTTTTGCTGTCAGGCTTTTATTTTCAC	0	-	2909618	2909670	0,0,255	
-chrY	2909618	2909670	ATAGTATGGTAGTGCTTCATTCAACTTTTGCTGTCAGGTTTTTATTTTCAC	0	-	2909618	2909670	0,0,255	
-chrY	2909618	2909670	TTAGTATGGTAGTGCTTCATTCAACTTTTGCTGTCAGGTTTTTATTTTCAC	0	-	2909618	2909670	0,0,255	
-chrY	2909618	2909670	TTAGTATGGTAGTGCTTCATTCAACTTTTGCTGTCAGGTTTTTATTTTCAC	0	-	2909618	2909670	0,0,255	
-chrY	2909618	2909670	TTAGTATGGTAGTGCTTCATTCAACTTTTGCTGTCAGGTTTTTATTTTCAC	0	-	2909618	2909670	0,0,255	
-chrY	2909618	2909670	TTAGTATGGTAGTGCTTCATTCAACTTTTGCTGTCAGGTTTTTATTTTCAC	0	-	2909618	2909670	0,0,255	
-chrY	2909618	2909670	TTAGTATGGTAGTGCTTCATTCAACTTTTGCTGTCAGGTTTTTATTTTCAC	0	-	2909618	2909670	0,0,255	
-chrY	2909618	2909670	TTAGTATGGTAGTGCTTCATTCAACTTTTGCTGTCAGGTTTTTATTTTCAC	0	-	2909618	2909670	0,0,255	
-chrY	2909618	2909670	TTAGTATGGTAGTGCTTCATTCAACTTTTGCTGTCAGGTTTTTATTTTCAC	0	-	2909618	2909670	0,0,255	
-chrY	2909618	2909670	TTAGTATGGTAGTGCTTCATTCAACTTTTGCTGTCAGGTTTTTATTTTCAC	0	-	2909618	2909670	0,0,255	
-chrY	2909618	2909670	TTAGTATGGTAGTGCTTCATTCAACTTTTGCTGTCAGGTTTTTATTTTCAC	0	-	2909618	2909670	0,0,255	
-chrY	2909618	2909670	TTAGTATGGTAGTGCTTCATTCAACTTTTGCTGTCAGGTTTTTATTTTCAC	0	-	2909618	2909670	0,0,255	
-chrY	2909618	2909670	TTAGTATGGTAGTGCTTCATTCAACTTTTGCTGTCAGGTTTTTATTTTCAC	0	-	2909618	2909670	0,0,255	
-chrY	2909618	2909670	TTAGTATGGTAGTGCTTCATTCAACTTTTGCTGTCAGGTTTTTATTTTCAC	0	-	2909618	2909670	0,0,255	
-chrY	2909618	2909670	TTAGTATGGTAGTGCTTCATTCAACTTTTGCTGTCAGGTTTTTATTTTCAC	0	-	2909618	2909670	0,0,255	
-chrY	2909618	2909670	TTAGTATGGTAGTGCTTCATTCAACTTTTGCTGTCAGGTTTTTATTTTCAC	0	-	2909618	2909670	0,0,255	
-chrY	2909618	2909670	TTAGTATGGTAGTGCTTCATTCAACTTTTGCTGTCAGGTTTTTATTTTCAC	0	-	2909618	2909670	0,0,255	
-chrY	2909618	2909670	TTAGTATGGTAGTGCTTCATTCAACTTTTGCTGTCAGGTTTTTATTTTCAC	0	-	2909618	2909670	0,0,255	
-chrY	2909618	2909670	TTAGTATGGTAGTGCTTCATTCAACTTTTGCTGTCAGGTTTTTATTTTCAC	0	-	2909618	2909670	0,0,255	
-chrY	2909655	2909707	GTTTTTATTTTCACCTTTTTCTGTGCCACCAATTCAAAAGTTATAGGATTA	0	+	2909655	2909707	255,0,0	
-chrY	2909655	2909707	GTTTTTATTTTCACCTTTTTCTGTGCCACCAATTCAAAAGTTATAGGATTA	0	+	2909655	2909707	255,0,0	
-chrY	2909655	2909707	GTTTTTATTTTCACCTTTTTCTGTGCCACCAATTCAAAAGTTATAGGATTA	0	+	2909655	2909707	255,0,0	
-chrY	2909655	2909707	GTTTTTATTTTCACCTTTTTCTGTGCCACCAATTCAAAAGTTATAGGATTA	0	+	2909655	2909707	255,0,0	
-chrY	2909655	2909707	GTTTTTATTTTCACCTTTTTCTGTGCCACCAATTCAAAAGTTATAGGATTA	0	+	2909655	2909707	255,0,0	
-chrY	2909655	2909707	GTTTTTATTTTCACCTTTTTCTGTGCCACCAATTCAAAAGTTATAGGATTA	0	+	2909655	2909707	255,0,0	
-chrY	2909655	2909707	GTTTTTATTTTCACCTTTTTCTGTGCCACCAATTCAAAAGTTATAGGATTA	0	+	2909655	2909707	255,0,0	
-chrY	2909655	2909707	GTTTTTATTTTCACCTTTTTCTGTGCCACCAATTCAAAAGTTATAGGATTA	0	+	2909655	2909707	255,0,0	
-chrY	2909655	2909707	GTTTTTATTTTCACCTTTTTCTGTGCCACCAATTCAAAAGTTATAGGATTA	0	+	2909655	2909707	255,0,0	
-chrY	2909655	2909707	GTTTTTATTTTCACCTTTTTCTGTGCCACCAATTCAAAAGTTATAGGATTA	0	+	2909655	2909707	255,0,0	
-chrY	2909655	2909707	GTTTTTATTTTCACCTTTTTCTGTGCCACCAATTCAAAAGTTATAGGATTA	0	+	2909655	2909707	255,0,0	
-chrY	2909655	2909707	GTTTTTATTTTCACCTTTTTCTGTGCCACCAATTCAAAAGTTATAGGATTA	0	+	2909655	2909707	255,0,0	
-chrY	2909655	2909707	GTTTTTATTTTCACCTTTTTCTGTGCCACCAATTCAAAAGTTATAGGATTA	0	+	2909655	2909707	255,0,0	
-chrY	2909735	2909787	CAGCCTCTGAAATGTTAGATTAATTTGATCTAGTTCTAAAGTGCTTTAGTC	0	+	2909735	2909787	255,0,0	
-chrY	2909735	2909787	CAGCCTCTGAAATGTTAGATTAATTTGATCTAGTTCTAAAGTGCTTTAGTC	0	+	2909735	2909787	255,0,0	
-chrY	2909735	2909787	CAGCCTCTGAAATGTTAGATTAATTTGATCTAGTTCTAAAGTGCTTTAGTC	0	+	2909735	2909787	255,0,0	
-chrY	2909735	2909787	CAGCCTCTGAAATGTTAGATTAATTTGATCTAGTTCTAAAGTGCTTTAGTC	0	+	2909735	2909787	255,0,0	
-chrY	2909735	2909787	CAGCCTCTGAAATGTTAGATTAATTTGATCTAGTTCTAAAGTGCTTTAGTC	0	+	2909735	2909787	255,0,0	
-chrY	2909735	2909787	CAGCCTCTGAAATGTTAGATTAATTTGATCTAGTTCTAAAGTGCTTTAGTC	0	+	2909735	2909787	255,0,0	
-chrY	2909735	2909787	CAGCCTCTGAAATGTTAGATTAATTTGATCTAGTTCTAAAGTGCTTTAGTC	0	+	2909735	2909787	255,0,0	
-chrY	2909735	2909787	CAGCCTCTGAAATGTTAGATTAATTTGATCTAGTTCTAAAGTGCTTTAGTC	0	+	2909735	2909787	255,0,0	
-chrY	2909735	2909787	CAGCCTCTGAAATGTTAGATTAATTTGATCTAGTTCTAAAGTGCTTTAGTC	0	+	2909735	2909787	255,0,0	
-chrY	2909735	2909787	CAGCCTCTGAAATGTTAGATTAATTTGATCTAGTTCTAAAGTGCTTTAGTC	0	+	2909735	2909787	255,0,0	
-chrY	2909760	2909812	TGATCTAGTTCTAAAGTGCTTTAGTCATATATGAATTTAAACCTAGTACCA	0	-	2909760	2909812	0,0,255	
-chrY	2909760	2909812	TGATCTAGTTCTAAAGTGCTTTAGTCATATATGAATTTAAACCTAGTACCA	0	-	2909760	2909812	0,0,255	
-chrY	2909760	2909812	TGATCTAGTTCTAAAGTGCTTTAGTCATATATGAATTTAAACCTAGTACCA	0	-	2909760	2909812	0,0,255	
-chrY	2909760	2909812	TGATCTAGTTCTAAAGTGCTTTAGTCATATATGAATTTAAACCTAGTACCA	0	-	2909760	2909812	0,0,255	
-chrY	2909760	2909812	TGATCTAGTTCTAAAGTGCTTTAGTCATATATGAATTTAAACCTAGTACCA	0	-	2909760	2909812	0,0,255	
-chrY	2909760	2909812	TGATCTAGTTCTAAAGTGCTTTAGTCATATATGAATTTAAACCTAGTACCA	0	-	2909760	2909812	0,0,255	
-chrY	2909760	2909812	TGATCTAGTTCTAAAGTGCTTTAGTCATATATGAATTTAAACCTAGTACCA	0	-	2909760	2909812	0,0,255	
-chrY	2909760	2909812	TGATCTAGTTCTAAAGTGCTTTAGTCATATATGAATTTAAACCTAGTACCA	0	-	2909760	2909812	0,0,255	
-chrY	2909760	2909812	TGATCTAGTTCTAAAGTGCTTTAGTCATATATGAATTTAAACCTAGTACCA	0	-	2909760	2909812	0,0,255	
-chrY	2909760	2909812	TGATCTAGTTCTAAAGTGCTTTAGTCATATATGAATTTAAACCTAGTACCA	0	-	2909760	2909812	0,0,255	
-chrY	2909760	2909812	TGATCTAGTTCTAAAGTGCTTTAGTCATATATGAATTTAAACCTAGTACCA	0	-	2909760	2909812	0,0,255	
-chrY	2909760	2909812	TGATCTAGTTCTAAAGTGCTTTAGTCATATATGAATTTAAACCTAGTACCA	0	-	2909760	2909812	0,0,255	
-chrY	2909760	2909812	TGATCTAGTTCTAAAGTGCTTTAGTCATATATGAATTTAAACCTAGTACCA	0	-	2909760	2909812	0,0,255	
-chrY	2909842	2909894	GTTAGGCCTTCTTAGCCTTTATACATGTCCCTACCTGATTTTTACTGTCCG	0	-	2909842	2909894	0,0,255	
-chrY	2909842	2909894	GTTAGGCCTTCTTAGCCTTTATACATGTCCCTACCTGATTTTTACTGTCCG	0	-	2909842	2909894	0,0,255	
-chrY	2909842	2909894	GTTAGGCCTTCTTAGCCTTTATACATGTCCCTACCTGATTTTTACTGTCCG	0	-	2909842	2909894	0,0,255	
-chrY	2909842	2909894	GTTAGGCCTTCTTAGCCTTTATACATGTCCCTACCTGATTTTTACTGTCCG	0	-	2909842	2909894	0,0,255	
-chrY	2909842	2909894	GTTAGGCCTTCTTAGCCTTTATACATGTCCCTACCTGATTTTTACTGTCCG	0	-	2909842	2909894	0,0,255	
-chrY	2909842	2909894	GTTAGGCCTTCTTAGCCTTTATACATGTCCCTACCTGATTTTTACTGTCCG	0	-	2909842	2909894	0,0,255	
-chrY	2909842	2909894	GTTAGGCCTTCTTAGCCTTTATACATGTCCCTACCTGATTTTTACTGTCCG	0	-	2909842	2909894	0,0,255	
-chrY	2909842	2909894	GTTAGGCCTTCTTAGCCTTTATACATGTCCCTACCTGATTTTTACTGTCCG	0	-	2909842	2909894	0,0,255	
-chrY	2909842	2909894	GTTAGGCCTTCTTAGCCTTTATACATGTCCCTACCTGATTTTTACTGTCCG	0	-	2909842	2909894	0,0,255	
-chrY	2909842	2909894	GTTAGGCCTTCTTAGCCTTTATACATGTCCCTACCTGATTTTTACTGTCCG	0	-	2909842	2909894	0,0,255	
-chrY	2910075	2910127	AAAAAACGTGACACTTTACATATTTCATATTTTTCATATAGTCTGGAGGTA	0	+	2910075	2910127	255,0,0	
-chrY	2910075	2910127	AAAAAACGTGACACTTTACATATTTCATATTTTTCATATAGTCTGGAGGTA	0	+	2910075	2910127	255,0,0	
-chrY	2910075	2910127	AAAAAACGTGACACTTTACATATTTCATATTTTTCATATAGTCTGGAGGTA	0	+	2910075	2910127	255,0,0	
-chrY	2910075	2910127	AAAAAACGTGACACTTTACATATTTCATATTTTTCATATAGTCTGGAGGNN	0	+	2910075	2910127	255,0,0	
-chrY	2910075	2910127	AAAAAACGTGACACTTTACATATTTCATATTTTTCATATAGTCTGGAGGTA	0	+	2910075	2910127	255,0,0	
-chrY	2910075	2910127	AAAAAACGTGACACTTTACATATTTCATATTTTTCATATAGTCTGGAGGTA	0	+	2910075	2910127	255,0,0	
-chrY	2910075	2910127	AAAAAACGTGACACTTTACATATTTCATATTTTTCATATAGTCTGGAGGTA	0	+	2910075	2910127	255,0,0	
-chrY	2910075	2910127	AAAAAACGTGACACTTTACATATTTCATATTTTTCATATAGTCTGGAGGTA	0	+	2910075	2910127	255,0,0	
-chrY	2910075	2910127	AAAAAACGTGACACTTTACATATTTCATATTTTTCATATAGTCTGGAGGTA	0	+	2910075	2910127	255,0,0	
-chrY	2910075	2910127	AAAAAACGTGACACTTTACATATTTCATATTTTTCATATAGTCTGGAGGTA	0	+	2910075	2910127	255,0,0	
-chrY	2910075	2910127	AAAAAACGTGACACTTTACATATTTCATATTTTTCATATAGTCTGGAGGTA	0	+	2910075	2910127	255,0,0	
-chrY	2910075	2910127	AAAAAACGTGACACTTTACATATTTCATATTTTTCATATAGTCTGGAGGTA	0	+	2910075	2910127	255,0,0	
-chrY	2910075	2910127	AAAAAACGTGACACTTTACATATTTCATATTTTTCATATAGTCTGGAGGTA	0	+	2910075	2910127	255,0,0	
-chrY	2910075	2910127	AAAAAACGTGACACTTTACATATTTCATATTTTTCATATAGTCTGGAGGTA	0	+	2910075	2910127	255,0,0	
-chrY	2910075	2910127	AAAAAACGTGACACTTTACATATTTCATATTTTTCATATAGTCTGGAGGTA	0	+	2910075	2910127	255,0,0	
-chrY	2910075	2910127	AAAAAACGTGACACTTTACATATTTCATATTTTTCATATAGTCTGGAGGTA	0	+	2910075	2910127	255,0,0	
-chrY	2910075	2910127	AAAAAACGTGACACTTTACATATTTCATATTTTTCATATAGTCTGGAGGTA	0	+	2910075	2910127	255,0,0	
-chrY	2910075	2910127	AAAAAACGTGACACTTTACATATTTCATATTTTTCATATAGTCTGGAGGTA	0	+	2910075	2910127	255,0,0	
-chrY	2910075	2910127	AAAAAACGTGACACTTTACATATTTCATATTTTTCATATAGTCTGGAGGTA	0	+	2910075	2910127	255,0,0	
-chrY	2910075	2910127	AAAAAACGTGACACTTTACATATTTCATATTTTTCATATAGTCTGGAGGTA	0	+	2910075	2910127	255,0,0	
-chrY	2910075	2910127	AAAAAACGTGACACTTTACATATTTCATATTTTTCATATAGTCTGGAGGTA	0	+	2910075	2910127	255,0,0	
-chrY	2910075	2910127	AAAAAACGTGACACTTTACATATTTCATATTTTTCATATAGTCTGGAGGTA	0	+	2910075	2910127	255,0,0	
-chrY	2910075	2910127	AAAAAACGTGACACTTTACATATTTCATACTTTTCATATAGTCTGGAGGTA	0	+	2910075	2910127	255,0,0	
-chrY	2910075	2910127	AAAAAACGTGACACTTTACATATTTCATATTTTTCATATAGTCTGGAGGTA	0	+	2910075	2910127	255,0,0	
-chrY	2910075	2910127	AAAAAACGTGACACTTTACATATTTCATATTTTTCATATAGTCTGGAGGTA	0	+	2910075	2910127	255,0,0	
-chrY	2910075	2910127	AAAAAACGTGACACTTTACATATTTCATATTTTTCATATAGTCTGGAGGTA	0	+	2910075	2910127	255,0,0	
-chrY	2910075	2910127	AAAAAACGTGACACTTTACATATTTCATATTTTTCATATAGTCTGGAGGTA	0	+	2910075	2910127	255,0,0	
-chrY	2910075	2910127	AAAAAACGTGACACTTTACATATTTCATATTTTTCATATAGTCTGGAGGTA	0	+	2910075	2910127	255,0,0	
-chrY	2910182	2910234	ATTTGGTCAAGTAAATATAGAACATTTGTATAAAGAAAGAAATGAAATTGT	0	-	2910182	2910234	0,0,255	
-chrY	2910182	2910234	ATTTGGTCAAGTAAATATAGAACATTTGTATAAAGAAAGAAATGAAATTGT	0	-	2910182	2910234	0,0,255	
-chrY	2910182	2910234	ATTTGGTCAAGTAAATATAGAACATTTGTATAAAGAAAGAAATGAAATTGT	0	-	2910182	2910234	0,0,255	
-chrY	2910182	2910234	ATTTGGTCAAGTAAATATAGAACATTTGTATAAAGAAAGAAATGAAATTGT	0	-	2910182	2910234	0,0,255	
-chrY	2910182	2910234	ATTTGGTCAAGTAAATATAGAACATTTGTATAAAGAAAGAAATGAAATTGT	0	-	2910182	2910234	0,0,255	
-chrY	2910182	2910234	ATTTGGTCAAGTAAATATAGAACATTTGTATAAAGAAAGAAATGAAATTGT	0	-	2910182	2910234	0,0,255	
-chrY	2910182	2910234	ATTTGGTCAAGTAAATATAGAACATTTGTATAAAGAAAGAAATGAAATTGT	0	-	2910182	2910234	0,0,255	
-chrY	2910182	2910234	ATTTGGTCAAGTAAATATAGAACATTTGTATAAAGAAAGAAATGAAATTGT	0	-	2910182	2910234	0,0,255	
-chrY	2910182	2910234	ATTTGGTCAAGTAAATATAGAACATTTGTATAAAGAAAGAAATGAAATTGT	0	-	2910182	2910234	0,0,255	
-chrY	2910182	2910234	ATTTGGTCAAGTAAATATAGAACATTTGTATAAAGAAAGAAATGAAATTGT	0	-	2910182	2910234	0,0,255	
-chrY	2910182	2910234	ATTTGGTCAAGTAAATATAGAACATTTGTATAAAGAAAGAAATGAAATTGT	0	-	2910182	2910234	0,0,255	
-chrY	2910182	2910234	ATTTGGTCAAGTAAATATAGAACATTTGTATAAAGAAAGAAATGAAATTGT	0	-	2910182	2910234	0,0,255	
-chrY	2910182	2910234	ATTTGGTCAAGTAAATATAGAACATTTGTATAAAGAAAGAAATGAAATTGT	0	-	2910182	2910234	0,0,255	
-chrY	2910182	2910234	ATTTGGTCAAGTAAATATAGAACATTTGTATAAAGAAAGAAATGAAATTGT	0	-	2910182	2910234	0,0,255	
-chrY	2910182	2910234	ATTTGGTCAAGTAAATATAGAACATTTGTATAAAGAAAGAAATGAAATTGT	0	-	2910182	2910234	0,0,255	
-chrY	2910182	2910234	ATTTGGTCAAGTAAATATAGAACATTTGTATAAAGAAAGAAATGAAATTGT	0	-	2910182	2910234	0,0,255	
-chrY	2910182	2910234	ATTTGGTCAAGTAAATATAGAACATTTGTATAAAGAAAGAAATGAAATTGT	0	-	2910182	2910234	0,0,255	
-chrY	2910182	2910234	ATTTGGTCAAGTAAATATAGAACATTTGTATAAAGAAAGAAATGAAATTGT	0	-	2910182	2910234	0,0,255	
-chrY	2910182	2910234	ATTTGGTCAAGTAAATATAGAACATTTGTATAAAGAAAGAAATGAAATTGT	0	-	2910182	2910234	0,0,255	
-chrY	2910182	2910234	ATTTGGTCAAGTAAATATAGAACATTTGTATAAAGAAAGAAATGAAATTGT	0	-	2910182	2910234	0,0,255	
-chrY	2910182	2910234	ATTTGGTCAAGTAAATATAGAACATTTGTATAAAGAAAGAAATGAAATTGT	0	-	2910182	2910234	0,0,255	
-chrY	2910182	2910234	ATTTGGTCAAGTAAATATAGAACATTTGTATAAAGAAAGAAATGAAATTGT	0	-	2910182	2910234	0,0,255	
-chrY	2910182	2910234	ATTTGGTCAAGTAAATATAGAACATTTGTATAAAGAAAGAAATGAAATTGT	0	-	2910182	2910234	0,0,255	
-chrY	2910182	2910234	ATTTGGTCAAGTAAATATAGAACATTTGTATAAAGAAAGAAATGAAATTGT	0	-	2910182	2910234	0,0,255	
-chrY	2910182	2910234	ATTTGGTCAAGTAAATATAGAACATTTGTATAAAGAAAGAAATGAAATTGT	0	-	2910182	2910234	0,0,255	
-chrY	2910182	2910234	ATTTGGTCAAGTAAATATAGAACATTTGTATAAAGAAAGAAATGAAATTGT	0	-	2910182	2910234	0,0,255	
-chrY	2910182	2910234	ATTTGGTCAAGTAAATATAGAACATTTGTATAAAGAAAGAAATGAAATTGT	0	-	2910182	2910234	0,0,255	
-chrY	2910182	2910234	ATTTGGTCAAGTAAATATAGAACATTTGTATAAAGAAAGAAATGAAATTGT	0	-	2910182	2910234	0,0,255	
-chrY	2910182	2910234	ATTTGGTCAAGTAAATATAGAACATTTGTATAAAGAAAGAAATGAAATTGT	0	-	2910182	2910234	0,0,255	
-chrY	2910224	2910276	TGAAATTGTGCTTAATGTTATATACTGTTATTATTTGCAGGCTGGTTTTAA	0	+	2910224	2910276	255,0,0	
-chrY	2910224	2910276	TGAAATTGTGCTTAATGTTATATACTGTTATTATTTGCAGGCTGGTTTTAA	0	+	2910224	2910276	255,0,0	
-chrY	2910224	2910276	TGAAATTGTGCTTAATGTTATATACTGTTATTATTTGCAGGCTGGTTTTAA	0	+	2910224	2910276	255,0,0	
-chrY	2910224	2910276	TGAAATTGTGCTTAATGTTATATACTGTTATTATTTGCAGGCTGGTTTTAA	0	+	2910224	2910276	255,0,0	
-chrY	2910224	2910276	TGAAATTGTGCTTAATGTTATATACTGTTATTATTTGCAGGCTGGTTTTAA	0	+	2910224	2910276	255,0,0	
-chrY	2910224	2910276	TGAAATTGTGCTTAATGTTATATACTGTTATTATTTGCAGGCTGGTTTTAA	0	+	2910224	2910276	255,0,0	
-chrY	2910224	2910276	TGAAATTGTGCTTAATGTTATATACTGTTATTATTTGCAGGCTGGTTTTAA	0	+	2910224	2910276	255,0,0	
-chrY	2910224	2910276	TGAAATTGTGCTTAATGTTATATACTGTTATTATTTGCAGGCTGGTTTTAA	0	+	2910224	2910276	255,0,0	
-chrY	2910224	2910276	TGAAATTGTGCTTAATGTTATATACTGTTATTATTTGCAGGCTGGTTTTAA	0	+	2910224	2910276	255,0,0	
-chrY	2910224	2910276	TGAAATTGTGCTTAATGTTATATACTGTTATTATTTGCAGGCTGGTTTTAA	0	+	2910224	2910276	255,0,0	
-chrY	2910224	2910276	TGAAATTGTGCTTAATGTTATATACTGTTATTATTTGCAGGCTGGGTTTAA	0	+	2910224	2910276	255,0,0	
-chrY	2910224	2910276	TGAAATTGTGCTTAATGTTATATACTGTTATTATTTGCAGGCTGGTTTTAA	0	+	2910224	2910276	255,0,0	
-chrY	2910224	2910276	TGAAATTGTGCTTAATGTTATATACTGTTATTATTTGCAGGCTGGTTTTAA	0	+	2910224	2910276	255,0,0	
-chrY	2910224	2910276	TGAAATTGTGCTTAATGTTATATACTGTTATTATTTACAGGCTGGTTTTAA	0	+	2910224	2910276	255,0,0	
-chrY	2910224	2910276	TGAAATTGTGCTTAATGTTATATACTGTTATTATTTGCAGGCTGGTTTTAA	0	+	2910224	2910276	255,0,0	
-chrY	2910224	2910276	TGAAATTGTGCTTAATGTTATATACTGTTATTATTTGCAGGCTGGTTTTAA	0	+	2910224	2910276	255,0,0	
-chrY	2910330	2910382	AGAGGTACAAAATCTTACAAGGACATAAATTATTATTTGGTTGAAAAATAG	0	-	2910330	2910382	0,0,255	
-chrY	2910330	2910382	AGAGGTACAAAATCTTACAAGGACATAAATTATTATTTGGTTGAAAAATAG	0	-	2910330	2910382	0,0,255	
-chrY	2910330	2910382	AGAGGTACAAAATCTTACAAGGACATAAATTATTATTTGGTTGAAAAATAG	0	-	2910330	2910382	0,0,255	
-chrY	2910330	2910382	AGAGGTACAAAATCTTACAAGGACATAAATTATTATTTGGTTGAAAAATAG	0	-	2910330	2910382	0,0,255	
-chrY	2910330	2910382	AGAGGTACAAAATCTTACAAGGACATAAATTATTATTTGGTTGAAAAATAG	0	-	2910330	2910382	0,0,255	
-chrY	2910330	2910382	AGAGGTACAAAATCTTACAAGGACATAAATTATTATTTGGTTGAAAAATAG	0	-	2910330	2910382	0,0,255	
-chrY	2910330	2910382	AGAGGTACAAAATCTTACAAGGACATAAATTATTATTTGGTTGAAAAATAG	0	-	2910330	2910382	0,0,255	
-chrY	2910330	2910382	AGAGGTACAAAATCTTACAAGGACATAAATTATTATTTGGTTGAAAAATAG	0	-	2910330	2910382	0,0,255	
-chrY	2910330	2910382	AGAGGTACAAAATCTTACAAGGACATAAATTATTATTTGGTTGAAAAATAG	0	-	2910330	2910382	0,0,255	
-chrY	2910330	2910382	AGAGGTACAAAATCTTACAAGGACATAAATTATTATTTGGTTGAAAAATAG	0	-	2910330	2910382	0,0,255	
-chrY	2910330	2910382	AGAGGTACAAAATCTTACAAGGACATAAATTATTATTTGGTTGAAAAATAG	0	-	2910330	2910382	0,0,255	
-chrY	2910330	2910382	AGAGGTACAAAATCTTACAAGGACATAAATTATTATTTGGTTGAAAAATAG	0	-	2910330	2910382	0,0,255	
-chrY	2910330	2910382	AGAGGTACAAAATCTTACAAGGACATAAATTATTATTTGGTTGAAAAATAG	0	-	2910330	2910382	0,0,255	
-chrY	2910330	2910382	AGAGGTACAAAATCTTACAAGGACATAAATTATTATTTGGTTGAAAAATAG	0	-	2910330	2910382	0,0,255	
-chrY	2910330	2910382	AGAGGTACAAAATCTTACAAGGACATAAATTATTATTTGGTTGAAAAATAG	0	-	2910330	2910382	0,0,255	
-chrY	2910330	2910382	AGAGGTACAAAATCTTACAAGGACATAAATTATTATTTGGTTGAAAAATAG	0	-	2910330	2910382	0,0,255	
-chrY	2910400	2910452	CCCTTCCTCTGTACAAATTGTAAAATACTTAAAATAACTATGAAGAATTCA	0	+	2910400	2910452	255,0,0	
-chrY	2910400	2910452	CCCTTCCTCTGTACAAATTGTAAAATACTTAAAATAACTATGAAGAATTCA	0	+	2910400	2910452	255,0,0	
-chrY	2910400	2910452	CCCTTCCTCTGTACAAATTGTAAAATACTTAAAATAACTATGAAGAATTCA	0	+	2910400	2910452	255,0,0	
-chrY	2910400	2910452	CCCTTCCTCTGTACAAATTGTAAAATACTTAAAATAACTCTGAAGCATTCA	0	+	2910400	2910452	255,0,0	
-chrY	2910400	2910452	CCCTTCCTCTGTACAAATTGTAAAATACTTAAAATAACTATGAAGAATTCA	0	+	2910400	2910452	255,0,0	
-chrY	2910400	2910452	CCCTTCCTCTGTACAAATTGTAAAATACTTAAAATAACTATGAAGAATTCA	0	+	2910400	2910452	255,0,0	
-chrY	2910400	2910452	CCCTTCCTCTGTACAAATTGTAAAATACTTAAAATAACTATGAAGAATTCA	0	+	2910400	2910452	255,0,0	
-chrY	2910400	2910452	CCCTTCCTCTGTACAAATTGTAAAATACTTAAAATAACTATGAAGAATTCA	0	+	2910400	2910452	255,0,0	
-chrY	2910400	2910452	CCCTTCCTCTGTACAAATTGTAAAATACTTAAAATAACTATGAAGAATTCA	0	+	2910400	2910452	255,0,0	
-chrY	3547861	3547913	CACACCTGGCTAATTTTTTATATTTTTAGTGGAGACAGGGCTCCACCGTGC	0	-	3547861	3547913	0,0,255	
-chrY	3547861	3547913	CACACCTGGCTAATTTTTTATATTTTTAGTGGAGACAGGGCTCCACCGTGC	0	-	3547861	3547913	0,0,255	
diff --git a/testdata/tribble/large.txt b/testdata/tribble/large.txt
deleted file mode 100644
index 5f4e1d4..0000000
--- a/testdata/tribble/large.txt
+++ /dev/null
@@ -1,165 +0,0 @@
-##fileformat=VCFv4.1
-##ApplyRecalibration="analysis_type=ApplyRecalibration input_file=[] read_buffer_size=null phone_home=STANDARD gatk_key=null tag=NA read_filter=[] intervals=[/seq/dax/t2d_genes/v1/t2d_genes.padded.interval_list] excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/seq/references/Homo_sapiens_assembly19/v1/Homo_sapiens_assembly19.fasta nonDeterministicRandomSeed=false disableRandomization=false maxRuntime=-1 maxRuntimeUnits=MINUTES down [...]
-##CombineVariants="analysis_type=CombineVariants input_file=[] read_buffer_size=null phone_home=STANDARD gatk_key=null tag=NA read_filter=[] intervals=[/seq/dax/t2d_genes/v1/t2d_genes.padded.interval_list] excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/seq/references/Homo_sapiens_assembly19/v1/Homo_sapiens_assembly19.fasta nonDeterministicRandomSeed=false disableRandomization=false maxRuntime=-1 maxRuntimeUnits=MINUTES downsampli [...]
-##FILTER=<ID=Indel_FS,Description="FS>200.0">
-##FILTER=<ID=Indel_InbreedingCoeff,Description="InbreedingCoeff<-0.8">
-##FILTER=<ID=Indel_QD,Description="QD<2.0">
-##FILTER=<ID=Indel_ReadPosRankSum,Description="ReadPosRankSum<-20.0">
-##FILTER=<ID=LowQual,Description="Low quality">
-##FILTER=<ID=VQSRTrancheSNP98.50to98.60,Description="Truth sensitivity tranche level for SNP model at VQS Lod: -0.9687 <= x < -0.8298">
-##FILTER=<ID=VQSRTrancheSNP98.60to98.80,Description="Truth sensitivity tranche level for SNP model at VQS Lod: -1.2821 <= x < -0.9687">
-##FILTER=<ID=VQSRTrancheSNP98.80to98.90,Description="Truth sensitivity tranche level for SNP model at VQS Lod: -1.5011 <= x < -1.2821">
-##FILTER=<ID=VQSRTrancheSNP98.90to99.00,Description="Truth sensitivity tranche level for SNP model at VQS Lod: -1.7494 <= x < -1.5011">
-##FILTER=<ID=VQSRTrancheSNP99.00to99.30,Description="Truth sensitivity tranche level for SNP model at VQS Lod: -2.9782 <= x < -1.7494">
-##FILTER=<ID=VQSRTrancheSNP99.30to99.50,Description="Truth sensitivity tranche level for SNP model at VQS Lod: -4.7694 <= x < -2.9782">
-##FILTER=<ID=VQSRTrancheSNP99.50to99.90,Description="Truth sensitivity tranche level for SNP model at VQS Lod: -15.7985 <= x < -4.7694">
-##FILTER=<ID=VQSRTrancheSNP99.90to100.00+,Description="Truth sensitivity tranche level for SNP model at VQS Lod < -4789.109">
-##FILTER=<ID=VQSRTrancheSNP99.90to100.00,Description="Truth sensitivity tranche level for SNP model at VQS Lod: -4789.109 <= x < -15.7985">
-##FORMAT=<ID=AD,Number=.,Type=Integer,Description="Allelic depths for the ref and alt alleles in the order listed">
-##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth (reads with MQ=255 or with bad mates are filtered)">
-##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
-##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
-##FORMAT=<ID=PL,Number=G,Type=Integer,Description="Normalized, Phred-scaled likelihoods for genotypes as defined in the VCF specification">
-##INFO=<ID=AC,Number=A,Type=Integer,Description="Allele count in genotypes, for each ALT allele, in the same order as listed">
-##INFO=<ID=AF,Number=A,Type=Float,Description="Allele Frequency, for each ALT allele, in the same order as listed">
-##INFO=<ID=AN,Number=1,Type=Integer,Description="Total number of alleles in called genotypes">
-##INFO=<ID=BaseQRankSum,Number=1,Type=Float,Description="Z-score from Wilcoxon rank sum test of Alt Vs. Ref base qualities">
-##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP Membership">
-##INFO=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth; some reads may have been filtered">
-##INFO=<ID=DS,Number=0,Type=Flag,Description="Were any of the samples downsampled?">
-##INFO=<ID=Dels,Number=1,Type=Float,Description="Fraction of Reads Containing Spanning Deletions">
-##INFO=<ID=END,Number=1,Type=Integer,Description="Stop position of the interval">
-##INFO=<ID=FS,Number=1,Type=Float,Description="Phred-scaled p-value using Fisher's exact test to detect strand bias">
-##INFO=<ID=HaplotypeScore,Number=1,Type=Float,Description="Consistency of the site with at most two segregating haplotypes">
-##INFO=<ID=InbreedingCoeff,Number=1,Type=Float,Description="Inbreeding coefficient as estimated from the genotype likelihoods per-sample when compared against the Hardy-Weinberg expectation">
-##INFO=<ID=MLEAC,Number=A,Type=Integer,Description="Maximum likelihood expectation (MLE) for the allele counts (not necessarily the same as the AC), for each ALT allele, in the same order as listed">
-##INFO=<ID=MLEAF,Number=A,Type=Float,Description="Maximum likelihood expectation (MLE) for the allele frequency (not necessarily the same as the AF), for each ALT allele, in the same order as listed">
-##INFO=<ID=MQ,Number=1,Type=Float,Description="RMS Mapping Quality">
-##INFO=<ID=MQ0,Number=1,Type=Integer,Description="Total Mapping Quality Zero Reads">
-##INFO=<ID=MQRankSum,Number=1,Type=Float,Description="Z-score From Wilcoxon rank sum test of Alt vs. Ref read mapping qualities">
-##INFO=<ID=QD,Number=1,Type=Float,Description="Variant Confidence/Quality by Depth">
-##INFO=<ID=RPA,Number=.,Type=Integer,Description="Number of times tandem repeat unit is repeated, for each allele (including reference)">
-##INFO=<ID=RU,Number=1,Type=String,Description="Tandem repeat unit (bases)">
-##INFO=<ID=ReadPosRankSum,Number=1,Type=Float,Description="Z-score from Wilcoxon rank sum test of Alt vs. Ref read position bias">
-##INFO=<ID=SNPEFF_AMINO_ACID_CHANGE,Number=1,Type=String,Description="Old/New amino acid for the highest-impact effect resulting from the current variant (in HGVS style)">
-##INFO=<ID=SNPEFF_CODON_CHANGE,Number=1,Type=String,Description="Old/New codon for the highest-impact effect resulting from the current variant">
-##INFO=<ID=SNPEFF_EFFECT,Number=1,Type=String,Description="The highest-impact effect resulting from the current variant (or one of the highest-impact effects, if there is a tie)">
-##INFO=<ID=SNPEFF_EXON_ID,Number=1,Type=String,Description="Exon ID for the highest-impact effect resulting from the current variant">
-##INFO=<ID=SNPEFF_FUNCTIONAL_CLASS,Number=1,Type=String,Description="Functional class of the highest-impact effect resulting from the current variant: [NONE, SILENT, MISSENSE, NONSENSE]">
-##INFO=<ID=SNPEFF_GENE_BIOTYPE,Number=1,Type=String,Description="Gene biotype for the highest-impact effect resulting from the current variant">
-##INFO=<ID=SNPEFF_GENE_NAME,Number=1,Type=String,Description="Gene name for the highest-impact effect resulting from the current variant">
-##INFO=<ID=SNPEFF_IMPACT,Number=1,Type=String,Description="Impact of the highest-impact effect resulting from the current variant [MODIFIER, LOW, MODERATE, HIGH]">
-##INFO=<ID=SNPEFF_TRANSCRIPT_ID,Number=1,Type=String,Description="Transcript ID for the highest-impact effect resulting from the current variant">
-##INFO=<ID=STR,Number=0,Type=Flag,Description="Variant is a short tandem repeat">
-##INFO=<ID=VQSLOD,Number=1,Type=Float,Description="Log odds ratio of being a true variant versus being false under the trained gaussian mixture model">
-##INFO=<ID=culprit,Number=1,Type=String,Description="The annotation which was the worst performing in the Gaussian mixture model, likely the reason why the variant was filtered out">
-##INFO=<ID=set,Number=1,Type=String,Description="Source VCF for the merged record in CombineVariants">
-##OriginalSnpEffCmd="SnpEff eff -v -onlyCoding true -c /seq/references/Homo_sapiens_assembly19/v1/snpEff/Homo_sapiens_assembly19.snpEff.config -i vcf -o vcf GRCh37.64 /seq/dax/t2d_genes/v1/t2d_genes.unannotated.vcf "
-##OriginalSnpEffVersion="2.0.5 (build 2011-12-24), by Pablo Cingolani"
-##SelectVariants="analysis_type=SelectVariants input_file=[] read_buffer_size=null phone_home=STANDARD gatk_key=null tag=NA read_filter=[] intervals=[/seq/dax/t2d_genes/v1/t2d_genes.padded.interval_list] excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/seq/references/Homo_sapiens_assembly19/v1/Homo_sapiens_assembly19.fasta nonDeterministicRandomSeed=false disableRandomization=false maxRuntime=-1 maxRuntimeUnits=MINUTES downsampling [...]
-##UnifiedGenotyper="analysis_type=UnifiedGenotyper input_file=[/seq/dax/t2d_genes/v1/t2d_genes.bam.list] read_buffer_size=null phone_home=STANDARD gatk_key=null tag=NA read_filter=[] intervals=[/seq/dax/t2d_genes/v1/scatter/temp_0001_of_2500/scattered.intervals] excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/seq/references/Homo_sapiens_assembly19/v1/Homo_sapiens_assembly19.fasta nonDeterministicRandomSeed=false disableRandomizati [...]
-##VariantAnnotator="analysis_type=VariantAnnotator input_file=[] read_buffer_size=null phone_home=STANDARD gatk_key=null tag=NA read_filter=[] intervals=[/seq/references/HybSelOligos/whole_exome_agilent_1.1_refseq_plus_3_boosters/whole_exome_agilent_1.1_refseq_plus_3_boosters.Homo_sapiens_assembly19.targets.interval_list] excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=50 reference_sequence=/seq/references/Homo_sapiens_assembly19/v1/Homo_sapiens_assemb [...]
-##VariantFiltration="analysis_type=VariantFiltration input_file=[] read_buffer_size=null phone_home=STANDARD gatk_key=null tag=NA read_filter=[] intervals=[/seq/dax/t2d_genes/v1/t2d_genes.padded.interval_list] excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/seq/references/Homo_sapiens_assembly19/v1/Homo_sapiens_assembly19.fasta nonDeterministicRandomSeed=false disableRandomization=false maxRuntime=-1 maxRuntimeUnits=MINUTES downsa [...]
-##contig=<ID=1,length=249250621>
-##contig=<ID=2,length=243199373>
-##contig=<ID=3,length=198022430>
-##contig=<ID=4,length=191154276>
-##contig=<ID=5,length=180915260>
-##contig=<ID=6,length=171115067>
-##contig=<ID=7,length=159138663>
-##contig=<ID=8,length=146364022>
-##contig=<ID=9,length=141213431>
-##contig=<ID=10,length=135534747>
-##contig=<ID=11,length=135006516>
-##contig=<ID=12,length=133851895>
-##contig=<ID=13,length=115169878>
-##contig=<ID=14,length=107349540>
-##contig=<ID=15,length=102531392>
-##contig=<ID=16,length=90354753>
-##contig=<ID=17,length=81195210>
-##contig=<ID=18,length=78077248>
-##contig=<ID=19,length=59128983>
-##contig=<ID=20,length=63025520>
-##contig=<ID=21,length=48129895>
-##contig=<ID=22,length=51304566>
-##contig=<ID=X,length=155270560>
-##contig=<ID=Y,length=59373566>
-##contig=<ID=MT,length=16569>
-##contig=<ID=GL000207.1,length=4262>
-##contig=<ID=GL000226.1,length=15008>
-##contig=<ID=GL000229.1,length=19913>
-##contig=<ID=GL000231.1,length=27386>
-##contig=<ID=GL000210.1,length=27682>
-##contig=<ID=GL000239.1,length=33824>
-##contig=<ID=GL000235.1,length=34474>
-##contig=<ID=GL000201.1,length=36148>
-##contig=<ID=GL000247.1,length=36422>
-##contig=<ID=GL000245.1,length=36651>
-##contig=<ID=GL000197.1,length=37175>
-##contig=<ID=GL000203.1,length=37498>
-##contig=<ID=GL000246.1,length=38154>
-##contig=<ID=GL000249.1,length=38502>
-##contig=<ID=GL000196.1,length=38914>
-##contig=<ID=GL000248.1,length=39786>
-##contig=<ID=GL000244.1,length=39929>
-##contig=<ID=GL000238.1,length=39939>
-##contig=<ID=GL000202.1,length=40103>
-##contig=<ID=GL000234.1,length=40531>
-##contig=<ID=GL000232.1,length=40652>
-##contig=<ID=GL000206.1,length=41001>
-##contig=<ID=GL000240.1,length=41933>
-##contig=<ID=GL000236.1,length=41934>
-##contig=<ID=GL000241.1,length=42152>
-##contig=<ID=GL000243.1,length=43341>
-##contig=<ID=GL000242.1,length=43523>
-##contig=<ID=GL000230.1,length=43691>
-##contig=<ID=GL000237.1,length=45867>
-##contig=<ID=GL000233.1,length=45941>
-##contig=<ID=GL000204.1,length=81310>
-##contig=<ID=GL000198.1,length=90085>
-##contig=<ID=GL000208.1,length=92689>
-##contig=<ID=GL000191.1,length=106433>
-##contig=<ID=GL000227.1,length=128374>
-##contig=<ID=GL000228.1,length=129120>
-##contig=<ID=GL000214.1,length=137718>
-##contig=<ID=GL000221.1,length=155397>
-##contig=<ID=GL000209.1,length=159169>
-##contig=<ID=GL000218.1,length=161147>
-##contig=<ID=GL000220.1,length=161802>
-##contig=<ID=GL000213.1,length=164239>
-##contig=<ID=GL000211.1,length=166566>
-##contig=<ID=GL000199.1,length=169874>
-##contig=<ID=GL000217.1,length=172149>
-##contig=<ID=GL000216.1,length=172294>
-##contig=<ID=GL000215.1,length=172545>
-##contig=<ID=GL000205.1,length=174588>
-##contig=<ID=GL000219.1,length=179198>
-##contig=<ID=GL000224.1,length=179693>
-##contig=<ID=GL000223.1,length=180455>
-##contig=<ID=GL000195.1,length=182896>
-##contig=<ID=GL000212.1,length=186858>
-##contig=<ID=GL000222.1,length=186861>
-##contig=<ID=GL000200.1,length=187035>
-##contig=<ID=GL000193.1,length=189789>
-##contig=<ID=GL000194.1,length=191469>
-##contig=<ID=GL000225.1,length=211173>
-##contig=<ID=GL000192.1,length=547496>
-##contig=<ID=NC_007605,length=171823>
-##reference=file:///seq/references/Homo_sapiens_assembly19/v1/Homo_sapiens_assembly19.fasta
-##source=SelectVariants
-#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	100	1000-10D	1001	1001-10D	10018	1002-10D	10029	1003-10D	10032	1004-10D	10046	10049	1005	1005-10D	10050	10059	1006-10D	10069	1007-10BD	1008-10D	10088	1009-10D	10090	1010-10D	10105	10109	1011-10D	10110	10114	10118	1012-10D	1013-10D	1014-10D	10148	1015-10D	1016-10D	1018-10D	1019-10D	10191	10194	10196	1020-10D	10204.0	1021-10D	10210	10211.0	10221	10268	1028	10282	10304	10326	10330	10339	10356	10371	10376	10388.0	10397	10402	10434	10447	10451	104 [...]
-1	69270	.	A	G	67802.61	VQSRTrancheSNP99.50to99.90	AC=4763;AF=0.736;AN=6468;BaseQRankSum=-29.966;DP=1452155;Dels=0.00;FS=0.000;HaplotypeScore=0.0519;InbreedingCoeff=0.3564;MLEAC=3470;MLEAF=0.536;MQ=2.72;MQ0=522186;MQRankSum=17.776;QD=0.32;ReadPosRankSum=-9.274;SNPEFF_AMINO_ACID_CHANGE=S108;SNPEFF_CODON_CHANGE=tcA/tcG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_69037_69829;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=OR4F5;SNPEFF_IMPACT=LOW;S [...]
-1	69335	.	G	A	97.21	VQSRTrancheSNP99.90to100.00	AC=1;AF=6.701e-05;AN=14924;BaseQRankSum=3.221;DP=1123713;Dels=0.00;FS=0.000;HaplotypeScore=0.0941;InbreedingCoeff=-0.0589;MLEAC=1;MLEAF=6.701e-05;MQ=4.99;MQ0=459016;MQRankSum=0.427;QD=1.30;ReadPosRankSum=-1.122;SNPEFF_AMINO_ACID_CHANGE=R130H;SNPEFF_CODON_CHANGE=cGc/cAc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_69037_69829;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=OR4F5;SNPEFF_IMPACT [...]
-1	69366	.	T	G	871.42	VQSRTrancheSNP99.50to99.90	AC=2;AF=1.239e-04;AN=16146;BaseQRankSum=-1.719;DP=990333;Dels=0.00;FS=0.000;HaplotypeScore=0.0933;InbreedingCoeff=-0.0247;MLEAC=2;MLEAF=1.239e-04;MQ=5.96;MQ0=407294;MQRankSum=0.001;QD=21.25;ReadPosRankSum=0.517;SNPEFF_AMINO_ACID_CHANGE=V140;SNPEFF_CODON_CHANGE=gtT/gtG;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_69037_69829;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=OR4F5;SNPEFF_IMPACT=LOW;SN [...]
-1	69409	.	A	G	4406.28	VQSRTrancheSNP99.50to99.90	AC=8;AF=4.147e-04;AN=19290;BaseQRankSum=13.621;DP=1362430;Dels=0.00;FS=26.031;HaplotypeScore=0.1448;InbreedingCoeff=0.0053;MLEAC=8;MLEAF=4.147e-04;MQ=11.68;MQ0=219922;MQRankSum=5.323;QD=9.71;ReadPosRankSum=-9.497;SNPEFF_AMINO_ACID_CHANGE=I107V;SNPEFF_CODON_CHANGE=Atc/Gtc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_69091_70008;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=OR4F5;SNPEFF_IMP [...]
-1	69428	rs140739101	T	G	419908.06	VQSRTrancheSNP99.50to99.90	AC=453;AF=0.022;AN=20242;BaseQRankSum=49.526;DB;DP=1394601;Dels=0.00;FS=975.380;HaplotypeScore=0.1195;InbreedingCoeff=0.2461;MLEAC=334;MLEAF=0.017;MQ=16.42;MQ0=138676;MQRankSum=-2.177;QD=17.57;ReadPosRankSum=-10.322;SNPEFF_AMINO_ACID_CHANGE=F113C;SNPEFF_CODON_CHANGE=tTt/tGt;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_69091_70008;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=O [...]
-1	69438	.	T	C	3107.59	VQSRTrancheSNP99.50to99.90	AC=2;AF=9.729e-05;AN=20558;BaseQRankSum=-2.899;DP=1379680;Dels=0.00;FS=8.925;HaplotypeScore=0.1499;InbreedingCoeff=0.0001;MLEAC=2;MLEAF=9.729e-05;MQ=22.72;MQ0=95489;MQRankSum=0.850;QD=24.66;ReadPosRankSum=-0.870;SNPEFF_AMINO_ACID_CHANGE=Y116;SNPEFF_CODON_CHANGE=taT/taC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_69091_70008;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=OR4F5;SNPEFF_IMPACT=LOW; [...]
-1	69453	rs142004627	G	A	923.30	VQSRTrancheSNP99.00to99.30	AC=141;AF=7.059e-03;AN=19974;BaseQRankSum=-19.711;DB;DP=1292464;Dels=0.00;FS=234.751;HaplotypeScore=0.2262;InbreedingCoeff=0.1247;MLEAC=44;MLEAF=2.203e-03;MQ=31.12;MQ0=15075;MQRankSum=-11.276;QD=1.14;ReadPosRankSum=-4.900;SNPEFF_AMINO_ACID_CHANGE=K121;SNPEFF_CODON_CHANGE=aaG/aaA;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_69091_70008;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=OR4F5 [...]
-1	69478	.	T	C	625.46	VQSRTrancheSNP99.50to99.90	AC=2;AF=9.713e-05;AN=20590;BaseQRankSum=-5.701;DP=1224140;Dels=0.00;FS=9.248;HaplotypeScore=0.1621;InbreedingCoeff=-0.0073;MLEAC=1;MLEAF=4.857e-05;MQ=28.40;MQ0=31089;MQRankSum=-0.497;QD=7.19;ReadPosRankSum=-4.289;SNPEFF_AMINO_ACID_CHANGE=C130R;SNPEFF_CODON_CHANGE=Tgt/Cgt;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_69091_70008;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=OR4F5;SNPEFF_IMPA [...]
-1	69489	.	A	C	1035.55	VQSRTrancheSNP99.50to99.90	AC=3;AF=1.469e-04;AN=20422;BaseQRankSum=4.705;DP=1117540;Dels=0.00;FS=2.442;HaplotypeScore=0.1773;InbreedingCoeff=-0.0003;MLEAC=2;MLEAF=9.793e-05;MQ=28.74;MQ0=29993;MQRankSum=-1.170;QD=12.78;ReadPosRankSum=-2.427;SNPEFF_AMINO_ACID_CHANGE=A133;SNPEFF_CODON_CHANGE=gcA/gcC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_69091_70008;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=OR4F5;SNPEFF_IMPACT=LOW [...]
-1	69496	rs150690004	G	A	74883.53	VQSRTrancheSNP99.00to99.30	AC=33;AF=1.628e-03;AN=20272;BaseQRankSum=-5.450;DB;DP=993841;Dels=0.00;FS=22.218;HaplotypeScore=0.2924;InbreedingCoeff=0.0259;MLEAC=17;MLEAF=8.386e-04;MQ=29.16;MQ0=27895;MQRankSum=10.649;QD=70.12;ReadPosRankSum=0.884;SNPEFF_AMINO_ACID_CHANGE=G136S;SNPEFF_CODON_CHANGE=Ggc/Agc;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_69091_70008;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=O [...]
-1	69496	.	GGCATTATGGCTGTCA	G	555413.58	Indel_FS	AC=2988;AF=0.148;AN=20226;BaseQRankSum=43.899;DP=993841;FS=Infinity;HaplotypeScore=20.7358;InbreedingCoeff=0.7977;MLEAC=3420;MLEAF=0.169;MQ=29.16;MQ0=0;MQRankSum=-13.694;QD=3.63;ReadPosRankSum=37.478;SNPEFF_AMINO_ACID_CHANGE=GIMAVT136A;SNPEFF_CODON_CHANGE=ggcattatggctgtcaca/gca;SNPEFF_EFFECT=CODON_CHANGE_PLUS_CODON_DELETION;SNPEFF_EXON_ID=exon_1_69091_70008;SNPEFF_FUNCTIONAL_CLASS=NONE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=OR4 [...]
-1	69502	.	A	G	509.73	VQSRTrancheSNP99.50to99.90	AC=2;AF=9.975e-05;AN=20050;BaseQRankSum=6.603;DP=919807;Dels=0.00;FS=1.954;HaplotypeScore=0.3679;InbreedingCoeff=-0.0070;MLEAC=1;MLEAF=4.988e-05;MQ=29.88;MQ0=25457;MQRankSum=-2.320;QD=6.22;ReadPosRankSum=-2.827;SNPEFF_AMINO_ACID_CHANGE=M138V;SNPEFF_CODON_CHANGE=Atg/Gtg;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_69091_70008;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=OR4F5;SNPEFF_IMPACT [...]
-1	69511	rs75062661	A	G	31383854.34	VQSRTrancheSNP99.50to99.90	AC=16694;AF=0.858;AN=19460;BaseQRankSum=60.147;DB;DP=773705;Dels=0.00;FS=138.417;HaplotypeScore=0.2818;InbreedingCoeff=0.5035;MLEAC=16887;MLEAF=0.868;MQ=31.39;MQ0=16811;MQRankSum=-164.893;QD=52.42;ReadPosRankSum=-36.782;SNPEFF_AMINO_ACID_CHANGE=T141A;SNPEFF_CODON_CHANGE=Aca/Gca;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_69091_70008;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_N [...]
-1	69521	.	T	C	722.77	VQSRTrancheSNP99.50to99.90	AC=2;AF=1.011e-04;AN=19776;BaseQRankSum=2.538;DP=915452;Dels=0.00;FS=1.110;HaplotypeScore=0.2063;InbreedingCoeff=-0.0088;MLEAC=2;MLEAF=1.011e-04;MQ=34.73;MQ0=15188;MQRankSum=-1.312;QD=4.82;ReadPosRankSum=-4.246;SNPEFF_AMINO_ACID_CHANGE=I144T;SNPEFF_CODON_CHANGE=aTt/aCt;SNPEFF_EFFECT=NON_SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_69091_70008;SNPEFF_FUNCTIONAL_CLASS=MISSENSE;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=OR4F5;SNPEFF_IMPACT [...]
-1	69534	rs190717287	T	C	10791.59	VQSRTrancheSNP99.50to99.90	AC=14;AF=7.034e-04;AN=19902;BaseQRankSum=15.572;DB;DP=1059436;Dels=0.00;FS=1.036;HaplotypeScore=0.1863;InbreedingCoeff=-0.0037;MLEAC=14;MLEAF=7.034e-04;MQ=35.59;MQ0=12762;MQRankSum=-2.121;QD=11.54;ReadPosRankSum=-6.516;SNPEFF_AMINO_ACID_CHANGE=H148;SNPEFF_CODON_CHANGE=caT/caC;SNPEFF_EFFECT=SYNONYMOUS_CODING;SNPEFF_EXON_ID=exon_1_69091_70008;SNPEFF_FUNCTIONAL_CLASS=SILENT;SNPEFF_GENE_BIOTYPE=protein_coding;SNPEFF_GENE_NAME=OR4F5; [...]
diff --git a/testdata/tribble/seekTest.txt b/testdata/tribble/seekTest.txt
deleted file mode 100644
index 194e3be..0000000
--- a/testdata/tribble/seekTest.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-aaaaaaaaa
-bbbbbbbbb
-ccccccccc
-ddddddddd
-eeeeeeeee
diff --git a/testdata/tribble/sites.bed b/testdata/tribble/sites.bed
deleted file mode 100644
index 3750b3f..0000000
--- a/testdata/tribble/sites.bed
+++ /dev/null
@@ -1,1000 +0,0 @@
-chr1	1245	1425	chr1.1	348	0.0432341
-chr1	1578	1818	chr1.2	430	0.314475
-chr1	2018	2318	chr1.3	345	0.038427
-chr1	10665	11465	chr1.4	478	0.589475
-chr1	18100	19780	chr1.5	558	1.22721
-chr1	81011	81491	chr1.6	460	0.474365
-chr1	227342	227822	chr1.7	415	0.245863
-chr1	409247	409627	chr1.8	349	0.045556
-chr1	481720	482000	chr1.9	415	0.245863
-chr1	501569	502049	chr1.10	415	0.245863
-chr1	580608	580888	chr1.11	465	0.502745
-chr1	580906	581246	chr1.12	418	0.256501
-chr1	604472	604712	chr1.13	446	0.395281
-chr1	604748	607828	chr1.14	564	1.28828
-chr1	607863	610103	chr1.15	558	1.2282
-chr1	613316	613496	chr1.16	380	0.118186
-chr1	613539	613919	chr1.17	415	0.245863
-chr1	659767	660147	chr1.18	349	0.045555
-chr1	753372	753552	chr1.19	430	0.312979
-chr1	753620	754600	chr1.20	773	4.13035
-chr1	763942	764200	chr1.21	442	0.372517
-chr1	766594	766939	chr1.22	546	1.11774
-chr1	792467	793007	chr1.23	433	0.330713
-chr1	801766	802806	chr1.24	580	1.44576
-chr1	802807	803681	chr1.25	575	1.39455
-chr1	815798	816776	chr1.26	447	0.398158
-chr1	817006	818146	chr1.27	520	0.897849
-chr1	819524	820204	chr1.28	488	0.65421
-chr1	832980	834171	chr1.29	520	0.897575
-chr1	834220	834309	chr1.30	346	0.0402192
-chr1	845033	845448	chr1.31	497	0.71717
-chr1	847812	848512	chr1.32	478	0.589475
-chr1	864905	865029	chr1.33	461	0.481443
-chr1	874965	875487	chr1.34	423	0.278914
-chr1	879344	880327	chr1.35	699	2.94227
-chr1	880399	880708	chr1.36	495	0.706021
-chr1	880819	881023	chr1.37	383	0.127674
-chr1	881317	881911	chr1.38	418	0.256617
-chr1	883868	883904	chr1.39	312	0.002659
-chr1	896391	896556	chr1.40	385	0.135142
-chr1	898579	898621	chr1.41	355	0.0577104
-chr1	898899	899244	chr1.42	465	0.502855
-chr1	899766	899825	chr1.43	370	0.090538
-chr1	900065	900365	chr1.44	380	0.120379
-chr1	915757	916630	chr1.46	503	0.763638
-chr1	916730	917500	chr1.47	497	0.717085
-chr1	918108	918284	chr1.48	364	0.076574
-chr1	933354	933459	chr1.49	334	0.022302
-chr1	934187	936901	chr1.50	633	2.05262
-chr1	941632	942976	chr1.51	724	3.32186
-chr1	950199	950539	chr1.52	379	0.116623
-chr1	950732	950911	chr1.53	397	0.173826
-chr1	951480	952193	chr1.54	540	1.06184
-chr1	959185	959967	chr1.55	547	1.1301
-chr1	974506	974514	chr1.56	464	0.498756
-chr1	974607	975915	chr1.57	511	0.820906
-chr1	976014	976607	chr1.58	520	0.896575
-chr1	977283	977586	chr1.59	476	0.570696
-chr1	977654	977656	chr1.60	321	0.00827205
-chr1	980210	980408	chr1.61	362	0.070928
-chr1	988439	989479	chr1.62	683	2.70895
-chr1	994719	995751	chr1.63	695	2.88776
-chr1	995982	996106	chr1.64	343	0.0347552
-chr1	1007846	1009215	chr1.65	543	1.09033
-chr1	1015954	1016662	chr1.66	844	5.46574
-chr1	1034335	1034386	chr1.67	352	0.0505361
-chr1	1034434	1035191	chr1.68	639	2.12808
-chr1	1035857	1035864	chr1.69	316	0.005078
-chr1	1038865	1039724	chr1.70	632	2.03877
-chr1	1043743	1045133	chr1.71	703	3.00446
-chr1	1045399	1045565	chr1.72	356	0.05951
-chr1	1051338	1055456	chr1.73	562	1.27378
-chr1	1066992	1067071	chr1.74	396	0.170616
-chr1	1074179	1074787	chr1.75	439	0.358819
-chr1	1074991	1075171	chr1.76	399	0.180898
-chr1	1090923	1092369	chr1.77	788	4.3897
-chr1	1092391	1092445	chr1.78	488	0.656287
-chr1	1097165	1097971	chr1.79	708	3.07697
-chr1	1109347	1109587	chr1.80	354	0.054381
-chr1	1111706	1111715	chr1.81	355	0.056866
-chr1	1112293	1113013	chr1.82	609	1.76339
-chr1	1114276	1114340	chr1.83	312	0.00306007
-chr1	1114376	1115977	chr1.84	557	1.22389
-chr1	1116001	1116077	chr1.85	356	0.0594875
-chr1	1116556	1116778	chr1.86	485	0.636473
-chr1	1119001	1120315	chr1.87	692	2.84254
-chr1	1132538	1133672	chr1.88	660	2.39289
-chr1	1147188	1147624	chr1.89	447	0.400542
-chr1	1148692	1149412	chr1.90	593	1.59091
-chr1	1150502	1150712	chr1.91	395	0.166746
-chr1	1175365	1175776	chr1.92	397	0.175746
-chr1	1175855	1175965	chr1.93	390	0.152057
-chr1	1175988	1176265	chr1.94	373	0.100502
-chr1	1176365	1177189	chr1.95	705	3.0325
-chr1	1179837	1179888	chr1.96	317	0.005669
-chr1	1181827	1181950	chr1.97	331	0.0186511
-chr1	1182204	1182342	chr1.98	372	0.096425
-chr1	1183309	1184620	chr1.99	596	1.62052
-chr1	1186006	1186106	chr1.100	387	0.141911
-chr1	1187635	1189712	chr1.101	466	0.512313
-chr1	1190211	1190243	chr1.102	341	0.0312
-chr1	1192080	1192764	chr1.103	514	0.847194
-chr1	1194721	1194953	chr1.104	413	0.23692
-chr1	1206466	1207907	chr1.105	964	8.1342
-chr1	1225896	1226676	chr1.106	677	2.62722
-chr1	1248823	1249818	chr1.107	679	2.65973
-chr1	1259437	1259474	chr1.108	373	0.099368
-chr1	1267142	1267455	chr1.109	467	0.518669
-chr1	1280573	1281286	chr1.110	546	1.12306
-chr1	1282929	1284571	chr1.111	782	4.2808
-chr1	1299611	1300483	chr1.113	508	0.80183
-chr1	1324330	1325361	chr1.114	655	2.33046
-chr1	1330452	1330468	chr1.115	334	0.0224878
-chr1	1330481	1331143	chr1.116	431	0.316867
-chr1	1346249	1347613	chr1.117	532	0.991835
-chr1	1347713	1347813	chr1.118	347	0.0411966
-chr1	1349983	1351025	chr1.119	545	1.10701
-chr1	1419517	1420926	chr1.120	629	1.99595
-chr1	1427488	1428398	chr1.121	525	0.935949
-chr1	1448100	1448474	chr1.122	470	0.536396
-chr1	1452780	1453180	chr1.123	364	0.076725
-chr1	1455704	1455804	chr1.124	345	0.03843
-chr1	1461588	1461788	chr1.125	402	0.193601
-chr1	1491957	1492840	chr1.126	539	1.05258
-chr1	1525496	1525636	chr1.127	366	0.081578
-chr1	1531949	1533247	chr1.128	799	4.59657
-chr1	1560514	1561514	chr1.129	619	1.87645
-chr1	1590384	1590764	chr1.130	410	0.223637
-chr1	1590893	1591133	chr1.131	421	0.273791
-chr1	1594138	1596142	chr1.132	778	4.21174
-chr1	1655537	1655677	chr1.133	377	0.109362
-chr1	1655705	1657274	chr1.134	561	1.26111
-chr1	1663663	1663999	chr1.135	364	0.076725
-chr1	1687411	1688491	chr1.136	608	1.75721
-chr1	1688694	1688834	chr1.137	354	0.054312
-chr1	1691755	1692664	chr1.138	526	0.947746
-chr1	1708812	1708952	chr1.139	377	0.109362
-chr1	1708980	1710540	chr1.140	557	1.22281
-chr1	1740616	1741256	chr1.141	419	0.264632
-chr1	1741318	1741356	chr1.142	319	0.00727334
-chr1	1741824	1743156	chr1.143	772	4.11305
-chr1	1743330	1744816	chr1.144	694	2.86169
-chr1	1746429	1746901	chr1.145	466	0.512036
-chr1	1747199	1747370	chr1.146	366	0.080847
-chr1	1807202	1807442	chr1.147	357	0.061208
-chr1	1808587	1808927	chr1.148	398	0.179818
-chr1	1822336	1822611	chr1.149	464	0.501034
-chr1	1844627	1844854	chr1.150	373	0.099617
-chr1	1852389	1852529	chr1.151	404	0.201567
-chr1	1852929	1853169	chr1.152	382	0.126305
-chr1	1853350	1855972	chr1.153	745	3.66134
-chr1	1869830	1869840	chr1.154	332	0.0200274
-chr1	1869854	1870110	chr1.155	421	0.2737
-chr1	1872207	1873215	chr1.157	847	5.52993
-chr1	1882469	1883811	chr1.158	882	6.24189
-chr1	1907330	1908222	chr1.159	558	1.23049
-chr1	1923744	1923940	chr1.160	390	0.152416
-chr1	1923977	1924078	chr1.161	448	0.405503
-chr1	1959820	1960149	chr1.162	410	0.225941
-chr1	1982813	1983428	chr1.163	494	0.69409
-chr1	1984368	1984428	chr1.164	362	0.071593
-chr1	1989288	1989779	chr1.165	470	0.535642
-chr1	2007586	2007647	chr1.166	400	0.185196
-chr1	2008131	2008215	chr1.167	433	0.328356
-chr1	2008217	2008948	chr1.168	605	1.71627
-chr1	2010135	2010260	chr1.169	350	0.047398
-chr1	2013529	2014584	chr1.170	979	8.49978
-chr1	2055212	2055259	chr1.171	382	0.124886
-chr1	2068581	2068781	chr1.172	381	0.122871
-chr1	2086746	2087226	chr1.173	418	0.25753
-chr1	2090656	2091256	chr1.174	414	0.242561
-chr1	2095779	2096421	chr1.175	536	1.03316
-chr1	2096481	2097513	chr1.176	878	6.17002
-chr1	2103292	2103757	chr1.177	412	0.231373
-chr1	2103804	2103951	chr1.178	390	0.151735
-chr1	2109803	2110443	chr1.179	466	0.507647
-chr1	2112092	2113186	chr1.180	628	1.98414
-chr1	2116483	2116895	chr1.181	556	1.21258
-chr1	2134155	2134284	chr1.182	359	0.064291
-chr1	2137988	2137998	chr1.183	333	0.0212074
-chr1	2138022	2138316	chr1.184	430	0.315656
-chr1	2152859	2153858	chr1.185	721	3.27329
-chr1	2158055	2159299	chr1.186	711	3.11241
-chr1	2162443	2163421	chr1.187	721	3.27972
-chr1	2168224	2169293	chr1.188	809	4.78985
-chr1	2175799	2176777	chr1.189	542	1.08667
-chr1	2190263	2190275	chr1.190	308	0.001444
-chr1	2190962	2191887	chr1.191	945	7.67556
-chr1	2191916	2192099	chr1.192	448	0.408285
-chr1	2192279	2192298	chr1.193	459	0.470934
-chr1	2192819	2196309	chr1.194	666	2.47055
-chr1	2196880	2196980	chr1.195	409	0.221254
-chr1	2197480	2198620	chr1.196	597	1.63065
-chr1	2200780	2201425	chr1.197	516	0.865186
-chr1	2201461	2201525	chr1.198	322	0.00900521
-chr1	2203957	2204865	chr1.199	495	0.703671
-chr1	2218787	2220327	chr1.200	629	2.00121
-chr1	2222381	2223142	chr1.201	508	0.799448
-chr1	2240080	2240229	chr1.202	336	0.024456
-chr1	2242187	2242252	chr1.203	339	0.028898
-chr1	2251956	2252371	chr1.204	470	0.533144
-chr1	2253682	2255082	chr1.205	631	2.01952
-chr1	2263846	2265446	chr1.206	802	4.65529
-chr1	2274218	2274318	chr1.207	394	0.16333
-chr1	2274518	2274818	chr1.208	400	0.184861
-chr1	2274918	2275118	chr1.209	405	0.205095
-chr1	2275146	2275641	chr1.210	462	0.489108
-chr1	2277948	2279581	chr1.211	694	2.86896
-chr1	2281005	2281170	chr1.212	355	0.057667
-chr1	2345305	2345741	chr1.213	584	1.48807
-chr1	2345971	2345977	chr1.214	463	0.493836
-chr1	2354701	2355774	chr1.215	899	6.63001
-chr1	2374003	2374258	chr1.216	379	0.116116
-chr1	2375777	2377035	chr1.217	948	7.74791
-chr1	2377735	2378575	chr1.218	692	2.84491
-chr1	2378809	2378949	chr1.219	406	0.207187
-chr1	2378999	2379885	chr1.220	504	0.768902
-chr1	2379906	2380606	chr1.221	541	1.07024
-chr1	2397286	2397294	chr1.222	348	0.042792
-chr1	2413260	2413261	chr1.223	438	0.352263
-chr1	2430347	2431135	chr1.224	441	0.367269
-chr1	2431624	2431978	chr1.225	424	0.284169
-chr1	2457576	2457707	chr1.226	346	0.039385
-chr1	2459172	2460272	chr1.227	552	1.17653
-chr1	2463388	2463823	chr1.228	417	0.253052
-chr1	2470454	2470461	chr1.229	390	0.150899
-chr1	2486936	2488236	chr1.230	636	2.09041
-chr1	2489257	2490776	chr1.231	817	4.93949
-chr1	2492492	2492761	chr1.232	364	0.0760051
-chr1	2493101	2493146	chr1.233	469	0.531862
-chr1	2493326	2493347	chr1.235	461	0.482003
-chr1	2494419	2494642	chr1.236	341	0.031532
-chr1	2507151	2507330	chr1.237	387	0.141125
-chr1	2509159	2512197	chr1.238	772	4.11993
-chr1	2512208	2512756	chr1.239	642	2.16565
-chr1	2512807	2513247	chr1.240	516	0.860853
-chr1	2528188	2529907	chr1.241	690	2.80766
-chr1	2530087	2530368	chr1.242	432	0.324825
-chr1	2541499	2541739	chr1.243	437	0.346076
-chr1	2541759	2542339	chr1.244	578	1.4257
-chr1	2547635	2548035	chr1.245	549	1.14232
-chr1	2548806	2551026	chr1.246	937	7.48971
-chr1	2592434	2592526	chr1.247	336	0.024189
-chr1	2598191	2598791	chr1.248	445	0.388726
-chr1	2605620	2607520	chr1.249	834	5.268
-chr1	2664089	2664689	chr1.250	471	0.543906
-chr1	2665089	2665155	chr1.251	323	0.0105816
-chr1	2665189	2665259	chr1.252	374	0.103334
-chr1	2665289	2665989	chr1.253	524	0.925015
-chr1	2726150	2726886	chr1.254	549	1.14798
-chr1	2741401	2741593	chr1.255	397	0.174468
-chr1	2761650	2762004	chr1.256	464	0.497814
-chr1	2779686	2780556	chr1.257	750	3.73479
-chr1	2787864	2787900	chr1.258	346	0.04022
-chr1	2803409	2803859	chr1.259	375	0.105857
-chr1	2807226	2807228	chr1.260	308	0.001362
-chr1	2825483	2825625	chr1.261	435	0.34042
-chr1	2834138	2834756	chr1.262	538	1.04609
-chr1	2838065	2838157	chr1.263	345	0.038829
-chr1	2861188	2862281	chr1.264	548	1.13627
-chr1	2952115	2952560	chr1.265	418	0.258463
-chr1	2972843	2973318	chr1.266	411	0.230882
-chr1	2989768	2989968	chr1.267	386	0.137707
-chr1	3009017	3009062	chr1.268	390	0.15157
-chr1	3017175	3017575	chr1.269	456	0.451931
-chr1	3100471	3100558	chr1.270	335	0.023096
-chr1	3100898	3100998	chr1.271	338	0.0268333
-chr1	3101023	3101198	chr1.272	379	0.115724
-chr1	3105089	3105689	chr1.273	448	0.406987
-chr1	3190046	3190546	chr1.274	391	0.155685
-chr1	3364248	3364299	chr1.275	337	0.0257644
-chr1	3364410	3364646	chr1.276	398	0.18047
-chr1	3392559	3393373	chr1.277	587	1.51733
-chr1	3393741	3393850	chr1.278	430	0.314211
-chr1	3394031	3394804	chr1.279	409	0.222675
-chr1	3395156	3395206	chr1.280	353	0.0526742
-chr1	3395208	3395317	chr1.281	385	0.135351
-chr1	3398334	3398339	chr1.282	320	0.00753599
-chr1	3416964	3417115	chr1.283	521	0.904628
-chr1	3423248	3424044	chr1.284	530	0.9811
-chr1	3430716	3431581	chr1.285	656	2.3428
-chr1	3441703	3441928	chr1.286	426	0.295677
-chr1	3470113	3471947	chr1.287	1000	11.4006
-chr1	3475465	3475504	chr1.288	374	0.101467
-chr1	3504471	3505271	chr1.289	527	0.953672
-chr1	3511697	3512037	chr1.290	459	0.466982
-chr1	3512150	3512990	chr1.291	537	1.04137
-chr1	3522919	3523619	chr1.292	433	0.326354
-chr1	3536918	3537783	chr1.293	633	2.04946
-chr1	3550327	3550461	chr1.294	330	0.0169024
-chr1	3550933	3551686	chr1.295	571	1.35693
-chr1	3558392	3559167	chr1.296	563	1.27809
-chr1	3563409	3563437	chr1.297	324	0.0106548
-chr1	3563440	3565944	chr1.298	1000	11.196
-chr1	3588610	3590407	chr1.300	768	4.04642
-chr1	3590997	3591377	chr1.301	376	0.107667
-chr1	3591959	3592119	chr1.302	338	0.0268488
-chr1	3592147	3592218	chr1.303	474	0.558572
-chr1	3596509	3596651	chr1.304	374	0.102515
-chr1	3635398	3635663	chr1.305	583	1.47628
-chr1	3643823	3643991	chr1.306	374	0.103457
-chr1	3663878	3664519	chr1.307	534	1.01189
-chr1	3686655	3687421	chr1.308	750	3.73117
-chr1	3711401	3713059	chr1.309	824	5.07398
-chr1	3715204	3715280	chr1.310	339	0.0290495
-chr1	3715304	3715504	chr1.311	390	0.151907
-chr1	3715577	3716104	chr1.312	540	1.06776
-chr1	3723440	3723532	chr1.313	320	0.00791382
-chr1	3723732	3724032	chr1.314	436	0.341917
-chr1	3724132	3724232	chr1.315	355	0.0573958
-chr1	3727297	3727730	chr1.316	424	0.285042
-chr1	3735696	3736832	chr1.317	824	5.06396
-chr1	3790191	3790391	chr1.318	397	0.173633
-chr1	3790591	3790791	chr1.319	377	0.111306
-chr1	3790891	3790991	chr1.320	363	0.074843
-chr1	3796408	3797763	chr1.321	980	8.53863
-chr1	3830679	3831134	chr1.322	430	0.315135
-chr1	3839363	3841336	chr1.323	781	4.26183
-chr1	3841840	3843168	chr1.324	588	1.52897
-chr1	4046527	4046867	chr1.325	447	0.399924
-chr1	4046958	4047138	chr1.326	414	0.24036
-chr1	4179552	4179952	chr1.327	416	0.249199
-chr1	4263232	4263472	chr1.328	394	0.16575
-chr1	4273382	4273755	chr1.329	746	3.66676
-chr1	4495319	4495376	chr1.330	343	0.03471
-chr1	4604953	4605053	chr1.331	369	0.088698
-chr1	4622971	4623877	chr1.332	552	1.178
-chr1	4744712	4745512	chr1.333	533	1.00327
-chr1	4940852	4941152	chr1.334	396	0.170009
-chr1	5047636	5047838	chr1.335	351	0.048973
-chr1	5048038	5048138	chr1.336	339	0.0282311
-chr1	5056002	5056102	chr1.337	362	0.072234
-chr1	5119853	5119944	chr1.338	330	0.016646
-chr1	5295783	5295854	chr1.339	340	0.030582
-chr1	5299567	5300031	chr1.340	462	0.484579
-chr1	5304398	5305198	chr1.341	521	0.90563
-chr1	5308358	5308368	chr1.342	318	0.006299
-chr1	5314173	5314313	chr1.343	359	0.06435
-chr1	5317356	5317596	chr1.344	412	0.231594
-chr1	5336290	5336503	chr1.345	341	0.032255
-chr1	5417389	5418189	chr1.346	489	0.662748
-chr1	5429980	5430720	chr1.347	501	0.747305
-chr1	5463124	5463804	chr1.348	438	0.352774
-chr1	5476109	5476633	chr1.349	485	0.633405
-chr1	5504277	5504573	chr1.350	433	0.329133
-chr1	5508837	5509421	chr1.351	562	1.26653
-chr1	5631634	5631785	chr1.352	380	0.118948
-chr1	5661217	5661497	chr1.353	384	0.131985
-chr1	5661536	5662716	chr1.354	544	1.09861
-chr1	5664507	5664525	chr1.355	409	0.219854
-chr1	5681109	5681436	chr1.356	358	0.062922
-chr1	5707550	5707830	chr1.357	418	0.258635
-chr1	5707893	5708339	chr1.358	411	0.230736
-chr1	5810885	5811785	chr1.359	487	0.646923
-chr1	5845657	5845897	chr1.360	383	0.128835
-chr1	5905304	5906204	chr1.361	540	1.06385
-chr1	5907432	5907824	chr1.362	470	0.538406
-chr1	5909947	5910847	chr1.363	558	1.2354
-chr1	5953137	5953377	chr1.364	384	0.130998
-chr1	5969567	5970207	chr1.365	435	0.33689
-chr1	5985436	5989627	chr1.366	937	7.48701
-chr1	6020073	6023367	chr1.367	763	3.95216
-chr1	6025268	6025914	chr1.369	416	0.250311
-chr1	6047083	6047181	chr1.370	381	0.123346
-chr1	6051121	6051151	chr1.371	349	0.045605
-chr1	6065059	6065145	chr1.372	367	0.084044
-chr1	6103157	6103198	chr1.373	393	0.160523
-chr1	6103280	6103514	chr1.374	400	0.184768
-chr1	6110849	6110906	chr1.375	322	0.00935
-chr1	6121907	6122607	chr1.376	566	1.3095
-chr1	6139611	6139786	chr1.377	350	0.047781
-chr1	6142543	6142589	chr1.378	347	0.0410937
-chr1	6142845	6143478	chr1.379	507	0.796213
-chr1	6174913	6174926	chr1.380	322	0.00919397
-chr1	6175613	6175672	chr1.381	344	0.037
-chr1	6179651	6179851	chr1.382	371	0.093017
-chr1	6193230	6194465	chr1.383	825	5.09165
-chr1	6194589	6194769	chr1.384	361	0.0694778
-chr1	6199507	6199764	chr1.385	542	1.08144
-chr1	6199776	6199845	chr1.386	470	0.532812
-chr1	6200213	6201182	chr1.387	470	0.532765
-chr1	6203569	6203691	chr1.388	326	0.013056
-chr1	6203924	6204029	chr1.389	427	0.298376
-chr1	6229736	6230720	chr1.390	663	2.43144
-chr1	6230962	6231102	chr1.391	397	0.175743
-chr1	6239308	6239343	chr1.392	490	0.671257
-chr1	6239348	6239881	chr1.393	609	1.76614
-chr1	6240252	6240434	chr1.394	359	0.0644718
-chr1	6240452	6241652	chr1.395	667	2.48376
-chr1	6254059	6254762	chr1.396	619	1.88495
-chr1	6255114	6255608	chr1.397	595	1.61068
-chr1	6276001	6276541	chr1.398	425	0.291287
-chr1	6342254	6343584	chr1.399	612	1.80057
-chr1	6353019	6354469	chr1.400	556	1.21155
-chr1	6359423	6359670	chr1.401	426	0.292977
-chr1	6387410	6388963	chr1.403	833	5.24564
-chr1	6398989	6399799	chr1.404	565	1.29732
-chr1	6408661	6409101	chr1.405	435	0.336793
-chr1	6413979	6414449	chr1.406	415	0.244244
-chr1	6414720	6414782	chr1.407	418	0.258695
-chr1	6417717	6419744	chr1.408	615	1.83352
-chr1	6431850	6432707	chr1.409	534	1.01216
-chr1	6434544	6435100	chr1.410	604	1.70279
-chr1	6441530	6442436	chr1.411	487	0.644963
-chr1	6443498	6444188	chr1.412	421	0.272466
-chr1	6444808	6444908	chr1.413	397	0.174494
-chr1	6453802	6455542	chr1.414	796	4.54512
-chr1	6458957	6460910	chr1.415	715	3.17974
-chr1	6469556	6470536	chr1.416	670	2.53514
-chr1	6479822	6480051	chr1.417	464	0.500152
-chr1	6480191	6481291	chr1.418	606	1.7329
-chr1	6484026	6485952	chr1.419	642	2.16671
-chr1	6485996	6486113	chr1.420	347	0.0424213
-chr1	6487684	6487830	chr1.421	375	0.104822
-chr1	6491298	6492410	chr1.422	690	2.80757
-chr1	6515040	6515180	chr1.423	329	0.016359
-chr1	6539345	6539585	chr1.424	439	0.358308
-chr1	6539609	6540252	chr1.425	549	1.14281
-chr1	6548511	6549715	chr1.426	713	3.1525
-chr1	6573604	6575104	chr1.427	805	4.70201
-chr1	6585740	6585839	chr1.428	354	0.054151
-chr1	6593261	6594397	chr1.429	564	1.28992
-chr1	6595174	6596474	chr1.430	693	2.85379
-chr1	6596574	6596606	chr1.431	335	0.0227389
-chr1	6596789	6598555	chr1.433	656	2.34421
-chr1	6606848	6609592	chr1.434	856	5.71167
-chr1	6618971	6620258	chr1.435	727	3.36245
-chr1	6640224	6640764	chr1.436	524	0.925278
-chr1	6640789	6641228	chr1.437	546	1.11628
-chr1	6645301	6645401	chr1.438	358	0.062647
-chr1	6645465	6645501	chr1.439	316	0.00506949
-chr1	6695708	6696512	chr1.440	700	2.9551
-chr1	6714442	6714554	chr1.441	356	0.059668
-chr1	6721933	6722127	chr1.442	369	0.089852
-chr1	6728819	6729659	chr1.443	523	0.919928
-chr1	6736584	6736598	chr1.444	319	0.007138
-chr1	6737420	6737700	chr1.445	444	0.384274
-chr1	6737762	6738402	chr1.446	485	0.633369
-chr1	6778180	6780361	chr1.447	924	7.17666
-chr1	6780589	6781263	chr1.448	432	0.325742
-chr1	6956891	6957167	chr1.449	397	0.174899
-chr1	6957391	6957964	chr1.450	504	0.769395
-chr1	7113515	7114155	chr1.451	440	0.363658
-chr1	7212679	7212780	chr1.452	336	0.024595
-chr1	7231995	7232034	chr1.453	314	0.004009
-chr1	7459398	7459598	chr1.454	372	0.096016
-chr1	7641508	7641952	chr1.455	553	1.18241
-chr1	7661729	7662412	chr1.456	530	0.979164
-chr1	7663793	7664125	chr1.457	452	0.430045
-chr1	7664193	7665093	chr1.458	492	0.679594
-chr1	7671588	7671988	chr1.459	396	0.172629
-chr1	7674459	7675524	chr1.460	582	1.47493
-chr1	7698392	7699989	chr1.461	672	2.55111
-chr1	7703712	7704052	chr1.462	338	0.027123
-chr1	7719286	7719826	chr1.463	436	0.343389
-chr1	7719860	7719966	chr1.464	318	0.00611124
-chr1	7720728	7721328	chr1.465	405	0.203769
-chr1	7727749	7728266	chr1.466	379	0.116645
-chr1	7730905	7731605	chr1.467	378	0.1146
-chr1	7746847	7747449	chr1.468	459	0.467609
-chr1	7761778	7761876	chr1.469	331	0.018436
-chr1	7764993	7765980	chr1.470	764	3.96799
-chr1	7776325	7776328	chr1.471	311	0.002269
-chr1	7777665	7779419	chr1.472	858	5.75116
-chr1	7821343	7822543	chr1.473	549	1.14715
-chr1	7880838	7881078	chr1.474	335	0.023662
-chr1	7897160	7897302	chr1.475	380	0.119257
-chr1	7897330	7897335	chr1.476	331	0.0180441
-chr1	7925170	7925557	chr1.477	462	0.485144
-chr1	7936502	7937182	chr1.478	539	1.06055
-chr1	7937244	7937484	chr1.479	421	0.272625
-chr1	7943310	7943950	chr1.480	537	1.04177
-chr1	7947986	7949355	chr1.481	660	2.39798
-chr1	7955338	7957402	chr1.482	824	5.07687
-chr1	7976547	7977227	chr1.483	536	1.03135
-chr1	8009415	8009785	chr1.484	428	0.305295
-chr1	8018822	8021099	chr1.485	612	1.80179
-chr1	8041607	8042107	chr1.486	376	0.10901
-chr1	8107706	8107849	chr1.487	372	0.096754
-chr1	8132243	8132543	chr1.488	382	0.125108
-chr1	8143554	8143894	chr1.489	433	0.327808
-chr1	8143933	8144213	chr1.490	480	0.597669
-chr1	8146312	8146674	chr1.491	439	0.358509
-chr1	8146925	8147810	chr1.492	582	1.47331
-chr1	8148073	8148653	chr1.493	499	0.732333
-chr1	8163643	8165099	chr1.494	652	2.28248
-chr1	8176501	8177381	chr1.495	624	1.93584
-chr1	8188192	8188532	chr1.496	425	0.289221
-chr1	8188549	8188889	chr1.497	403	0.197338
-chr1	8226358	8227023	chr1.498	493	0.690844
-chr1	8227114	8227294	chr1.499	431	0.318179
-chr1	8308676	8308954	chr1.500	430	0.315372
-chr1	8311985	8312979	chr1.501	709	3.08172
-chr1	8343035	8343828	chr1.502	627	1.97195
-chr1	8365384	8365684	chr1.503	399	0.180655
-chr1	8367944	8368781	chr1.504	392	0.158363
-chr1	8377207	8377958	chr1.505	485	0.633445
-chr1	8378241	8378299	chr1.506	319	0.00705539
-chr1	8389754	8391034	chr1.507	582	1.47437
-chr1	8391225	8391458	chr1.508	427	0.300652
-chr1	8391775	8392255	chr1.509	506	0.785274
-chr1	8392257	8392497	chr1.510	451	0.425152
-chr1	8401847	8401987	chr1.511	411	0.229506
-chr1	8401988	8403428	chr1.512	582	1.47017
-chr1	8403494	8403828	chr1.513	426	0.295087
-chr1	8406765	8406965	chr1.514	365	0.077851
-chr1	8413105	8413405	chr1.515	392	0.157024
-chr1	8415222	8415722	chr1.516	416	0.248503
-chr1	8416622	8419418	chr1.517	615	1.83419
-chr1	8421702	8422460	chr1.518	525	0.933497
-chr1	8443136	8443793	chr1.519	490	0.667712
-chr1	8445710	8446070	chr1.520	406	0.20897
-chr1	8455610	8455710	chr1.521	393	0.162064
-chr1	8455810	8456023	chr1.522	352	0.0506586
-chr1	8457410	8458110	chr1.523	481	0.60741
-chr1	8467012	8467112	chr1.524	392	0.15691
-chr1	8467212	8467289	chr1.525	309	0.00179666
-chr1	8473205	8473445	chr1.526	402	0.194979
-chr1	8504074	8505261	chr1.527	639	2.12098
-chr1	8505309	8505549	chr1.528	457	0.455829
-chr1	8518014	8521014	chr1.529	638	2.11
-chr1	8539553	8539588	chr1.530	308	0.001211
-chr1	8555596	8556022	chr1.531	407	0.211031
-chr1	8556483	8556583	chr1.532	338	0.027828
-chr1	8596816	8597258	chr1.533	505	0.774181
-chr1	8597269	8597809	chr1.534	540	1.06175
-chr1	8598776	8598916	chr1.535	402	0.193151
-chr1	8598936	8599276	chr1.536	431	0.316757
-chr1	8617713	8618353	chr1.537	421	0.272994
-chr1	8626317	8627317	chr1.538	549	1.14922
-chr1	8632762	8632902	chr1.539	385	0.133882
-chr1	8661178	8661718	chr1.540	438	0.353218
-chr1	8664366	8664706	chr1.541	407	0.211497
-chr1	8665732	8665919	chr1.542	372	0.096127
-chr1	8695228	8696331	chr1.543	715	3.176
-chr1	8697421	8698862	chr1.544	585	1.50209
-chr1	8698906	8699146	chr1.545	425	0.287892
-chr1	8706288	8707511	chr1.546	569	1.3331
-chr1	8731775	8731915	chr1.547	377	0.110385
-chr1	8731995	8732575	chr1.548	466	0.509635
-chr1	8809256	8809314	chr1.549	359	0.065604
-chr1	8810776	8813089	chr1.550	850	5.58414
-chr1	8824007	8824219	chr1.551	395	0.167879
-chr1	8843233	8843545	chr1.552	497	0.718104
-chr1	8853785	8854065	chr1.553	413	0.237218
-chr1	8855301	8855801	chr1.554	367	0.084444
-chr1	8868031	8868671	chr1.555	447	0.398462
-chr1	8872166	8873910	chr1.556	798	4.57685
-chr1	8894251	8894279	chr1.557	392	0.158434
-chr1	8894282	8894552	chr1.558	475	0.567848
-chr1	8907813	8908393	chr1.559	416	0.252026
-chr1	8912501	8912881	chr1.560	502	0.754464
-chr1	8920942	8921307	chr1.561	381	0.122501
-chr1	8939414	8940401	chr1.562	492	0.681736
-chr1	8957412	8957500	chr1.563	368	0.085716
-chr1	8961522	8961662	chr1.564	346	0.0405167
-chr1	8961759	8962339	chr1.565	448	0.408565
-chr1	8964588	8964813	chr1.566	416	0.248209
-chr1	8965060	8965759	chr1.567	592	1.57161
-chr1	8980485	8980585	chr1.568	326	0.012831
-chr1	8981022	8981340	chr1.569	424	0.287339
-chr1	8981392	8981424	chr1.570	402	0.193757
-chr1	8981992	8982827	chr1.571	545	1.1102
-chr1	8999149	8999943	chr1.572	580	1.44595
-chr1	9096355	9096448	chr1.573	349	0.044431
-chr1	9104051	9104214	chr1.574	333	0.021132
-chr1	9105039	9105050	chr1.575	322	0.00894791
-chr1	9105071	9105545	chr1.576	496	0.713335
-chr1	9116162	9116802	chr1.577	532	0.998398
-chr1	9122811	9124711	chr1.578	876	6.11381
-chr1	9136473	9136935	chr1.579	495	0.706033
-chr1	9175634	9176189	chr1.580	547	1.13023
-chr1	9176362	9176368	chr1.581	317	0.00586586
-chr1	9176450	9176468	chr1.582	331	0.018376
-chr1	9176470	9176541	chr1.583	325	0.0121209
-chr1	9177287	9177603	chr1.584	420	0.266916
-chr1	9190382	9191375	chr1.585	623	1.92201
-chr1	9195449	9196089	chr1.586	428	0.302592
-chr1	9228264	9229757	chr1.587	796	4.53492
-chr1	9229896	9229910	chr1.588	304	0.000402749
-chr1	9233829	9234632	chr1.589	525	0.934048
-chr1	9261379	9261919	chr1.590	519	0.889613
-chr1	9270017	9270163	chr1.591	490	0.66517
-chr1	9278539	9278796	chr1.592	454	0.438251
-chr1	9283189	9283674	chr1.593	456	0.452064
-chr1	9283688	9283928	chr1.594	394	0.166216
-chr1	9284257	9285108	chr1.595	431	0.320773
-chr1	9286721	9287687	chr1.596	650	2.25714
-chr1	9287823	9287962	chr1.597	492	0.679897
-chr1	9288179	9288206	chr1.598	347	0.0421743
-chr1	9288642	9289182	chr1.599	468	0.525884
-chr1	9289184	9289282	chr1.600	358	0.0623004
-chr1	9394854	9394931	chr1.601	333	0.020678
-chr1	9406782	9407951	chr1.602	539	1.05838
-chr1	9411837	9412817	chr1.603	579	1.43638
-chr1	9420268	9421248	chr1.604	679	2.64855
-chr1	9422600	9423877	chr1.605	717	3.21228
-chr1	9449753	9449853	chr1.606	341	0.0322128
-chr1	9449953	9450569	chr1.607	573	1.37542
-chr1	9467097	9467337	chr1.608	392	0.15655
-chr1	9467637	9467837	chr1.609	368	0.0858662
-chr1	9485361	9485821	chr1.610	513	0.840315
-chr1	9489645	9489876	chr1.611	413	0.235815
-chr1	9489953	9490033	chr1.612	415	0.247304
-chr1	9533273	9535021	chr1.613	709	3.08609
-chr1	9553064	9553181	chr1.614	350	0.0477783
-chr1	9553783	9554331	chr1.615	437	0.347944
-chr1	9568019	9568099	chr1.616	330	0.016923
-chr1	9582594	9583420	chr1.617	903	6.69798
-chr1	9583449	9584334	chr1.618	506	0.787083
-chr1	9610065	9610145	chr1.619	342	0.032849
-chr1	9610260	9610283	chr1.620	373	0.09963
-chr1	9621183	9621955	chr1.622	691	2.82618
-chr1	9622147	9622287	chr1.623	401	0.191001
-chr1	9622579	9624821	chr1.624	696	2.89883
-chr1	9645580	9646153	chr1.625	442	0.371898
-chr1	9646271	9648303	chr1.626	646	2.21344
-chr1	9648349	9649129	chr1.627	520	0.898129
-chr1	9649348	9650028	chr1.628	455	0.4443
-chr1	9681057	9681092	chr1.629	335	0.0229328
-chr1	9681190	9682723	chr1.630	582	1.47354
-chr1	9683237	9684175	chr1.631	732	3.45277
-chr1	9708410	9709147	chr1.632	562	1.27224
-chr1	9709689	9710489	chr1.633	529	0.968673
-chr1	9710538	9710589	chr1.634	343	0.0341791
-chr1	9711289	9711317	chr1.635	332	0.0199725
-chr1	9711389	9712729	chr1.636	770	4.0696
-chr1	9712751	9712891	chr1.637	398	0.178471
-chr1	9716067	9716402	chr1.638	429	0.309362
-chr1	9719049	9719682	chr1.639	549	1.14888
-chr1	9722503	9724028	chr1.640	651	2.27965
-chr1	9724115	9724128	chr1.641	309	0.0015425
-chr1	9766728	9766968	chr1.642	386	0.137728
-chr1	9778793	9779291	chr1.643	463	0.490789
-chr1	9782028	9782274	chr1.644	443	0.381381
-chr1	9817059	9817732	chr1.645	448	0.408183
-chr1	9817953	9820336	chr1.646	868	5.94748
-chr1	9820415	9820651	chr1.647	439	0.359755
-chr1	9830856	9831496	chr1.648	496	0.712757
-chr1	9844382	9845378	chr1.649	558	1.22972
-chr1	9861218	9862258	chr1.650	583	1.47632
-chr1	9868810	9869815	chr1.651	631	2.01853
-chr1	9876719	9877271	chr1.652	477	0.580527
-chr1	9903639	9905821	chr1.653	981	8.54314
-chr1	9926380	9926459	chr1.654	357	0.060471
-chr1	9936538	9938255	chr1.655	642	2.1585
-chr1	9944645	9945128	chr1.656	542	1.08591
-chr1	9991451	9991619	chr1.657	362	0.0722512
-chr1	9991905	9992075	chr1.658	430	0.312042
-chr1	10026446	10027898	chr1.659	901	6.66041
-chr1	10152497	10152897	chr1.660	415	0.244103
-chr1	10203931	10205596	chr1.661	844	5.46755
-chr1	10252928	10253558	chr1.662	453	0.436453
-chr1	10267847	10268147	chr1.663	398	0.179382
-chr1	10302008	10302908	chr1.664	555	1.20448
-chr1	10340217	10340457	chr1.665	380	0.118807
-chr1	10340474	10340654	chr1.666	353	0.0524881
-chr1	10368060	10368099	chr1.667	339	0.028562
-chr1	10392571	10395144	chr1.668	908	6.82367
-chr1	10422302	10422338	chr1.669	363	0.0739107
-chr1	10422348	10422721	chr1.670	535	1.02426
-chr1	10424138	10425705	chr1.671	776	4.17679
-chr1	10430996	10431476	chr1.672	414	0.242571
-chr1	10465584	10466024	chr1.673	422	0.276309
-chr1	10466142	10467509	chr1.674	701	2.9744
-chr1	10468986	10469846	chr1.675	639	2.11803
-chr1	10488894	10490094	chr1.676	637	2.09619
-chr1	10492577	10492817	chr1.677	354	0.054395
-chr1	10501511	10502108	chr1.678	445	0.390985
-chr1	10502491	10502504	chr1.679	348	0.042946
-chr1	10504244	10504584	chr1.680	431	0.318759
-chr1	10504616	10506302	chr1.681	680	2.67308
-chr1	10513400	10513700	chr1.682	395	0.167584
-chr1	10538500	10538537	chr1.683	308	0.00122817
-chr1	10538741	10538822	chr1.684	327	0.013649
-chr1	10589375	10589975	chr1.685	449	0.410125
-chr1	10632536	10633579	chr1.686	570	1.34375
-chr1	10646692	10646717	chr1.687	382	0.124599
-chr1	10661090	10661197	chr1.688	397	0.175384
-chr1	10686500	10689884	chr1.689	1000	9.21871
-chr1	10690597	10690937	chr1.690	347	0.041224
-chr1	10749912	10750903	chr1.691	614	1.81912
-chr1	10772740	10773080	chr1.692	377	0.109684
-chr1	10778350	10778391	chr1.693	318	0.005996
-chr1	10786017	10786025	chr1.694	324	0.010846
-chr1	10861097	10861213	chr1.695	444	0.384366
-chr1	10861380	10862435	chr1.696	640	2.1315
-chr1	10866122	10866302	chr1.697	371	0.095126
-chr1	10882982	10883087	chr1.698	426	0.294169
-chr1	10891540	10891604	chr1.699	320	0.007629
-chr1	10898133	10899553	chr1.700	514	0.849986
-chr1	10904157	10904210	chr1.701	410	0.224514
-chr1	10904269	10904564	chr1.702	469	0.528286
-chr1	10911375	10911665	chr1.703	431	0.316975
-chr1	10912049	10912921	chr1.704	516	0.861241
-chr1	10926584	10926733	chr1.705	359	0.065068
-chr1	10933863	10935019	chr1.706	510	0.817714
-chr1	10936200	10936966	chr1.707	506	0.786559
-chr1	10955303	10955741	chr1.708	543	1.09428
-chr1	10959321	10959801	chr1.709	477	0.583446
-chr1	10960104	10960341	chr1.710	425	0.290026
-chr1	10990398	10990778	chr1.711	405	0.206693
-chr1	11006124	11006152	chr1.712	338	0.0274196
-chr1	11006373	11008013	chr1.713	765	3.99066
-chr1	11018515	11019115	chr1.714	405	0.203476
-chr1	11024710	11024910	chr1.715	397	0.174439
-chr1	11031646	11032526	chr1.716	674	2.57742
-chr1	11032603	11032843	chr1.717	438	0.354543
-chr1	11053181	11053281	chr1.718	324	0.0114404
-chr1	11053875	11055539	chr1.719	935	7.44763
-chr1	11093526	11094719	chr1.720	760	3.90018
-chr1	11138750	11139150	chr1.721	452	0.428346
-chr1	11207178	11207878	chr1.722	487	0.64576
-chr1	11221841	11222026	chr1.723	380	0.1194
-chr1	11236089	11236216	chr1.724	452	0.429745
-chr1	11240175	11241255	chr1.725	549	1.14549
-chr1	11256285	11257525	chr1.726	833	5.23514
-chr1	11266912	11267010	chr1.727	440	0.363964
-chr1	11267052	11268289	chr1.728	720	3.26155
-chr1	11275264	11275760	chr1.729	511	0.826675
-chr1	11288942	11289089	chr1.730	364	0.076249
-chr1	11306190	11306330	chr1.732	391	0.153405
-chr1	11306357	11306597	chr1.733	454	0.438669
-chr1	11306897	11306997	chr1.734	331	0.0179042
-chr1	11314602	11314779	chr1.735	365	0.078178
-chr1	11331880	11331885	chr1.736	329	0.0160068
-chr1	11331990	11332094	chr1.737	354	0.053898
-chr1	11333774	11333923	chr1.738	403	0.197859
-chr1	11348931	11349031	chr1.739	359	0.0657591
-chr1	11349331	11349631	chr1.740	447	0.401474
-chr1	11378211	11378740	chr1.741	439	0.356991
-chr1	11472644	11473841	chr1.742	605	1.71862
-chr1	11474475	11474725	chr1.743	545	1.10582
-chr1	11532620	11532693	chr1.744	338	0.026821
-chr1	11548123	11548303	chr1.745	370	0.0902696
-chr1	11548367	11548507	chr1.746	391	0.154725
-chr1	11636532	11637090	chr1.747	528	0.962523
-chr1	11640057	11640342	chr1.748	545	1.11199
-chr1	11643261	11643263	chr1.749	454	0.442281
-chr1	11643310	11643450	chr1.750	372	0.0964662
-chr1	11644166	11645286	chr1.751	631	2.02555
-chr1	11648139	11648395	chr1.752	374	0.10208
-chr1	11648444	11649651	chr1.753	535	1.02368
-chr1	11649814	11649862	chr1.754	439	0.360995
-chr1	11658259	11659370	chr1.755	680	2.66911
-chr1	11674833	11676363	chr1.756	755	3.81803
-chr1	11685899	11685963	chr1.757	348	0.0427532
-chr1	11686103	11686203	chr1.758	386	0.137489
-chr1	11686723	11686803	chr1.759	358	0.0624899
-chr1	11687143	11687225	chr1.760	347	0.0419641
-chr1	11687275	11687853	chr1.761	421	0.270193
-chr1	11700314	11700321	chr1.762	320	0.007512
-chr1	11705512	11705965	chr1.763	454	0.440738
-chr1	11713519	11714464	chr1.764	641	2.14917
-chr1	11724399	11724538	chr1.765	324	0.0111745
-chr1	11724656	11725336	chr1.766	531	0.98641
-chr1	11730045	11731533	chr1.767	644	2.19209
-chr1	11734375	11735216	chr1.768	503	0.765884
-chr1	11735248	11735477	chr1.769	393	0.159503
-chr1	11743298	11743951	chr1.770	589	1.54117
-chr1	11756894	11757005	chr1.771	403	0.199074
-chr1	11797494	11798391	chr1.772	666	2.46757
-chr1	11798736	11799516	chr1.773	589	1.54157
-chr1	11799528	11801368	chr1.774	876	6.12942
-chr1	11832726	11833584	chr1.775	654	2.31091
-chr1	11839882	11840382	chr1.776	461	0.479399
-chr1	11853568	11854246	chr1.777	502	0.757542
-chr1	11888103	11888671	chr1.778	548	1.13601
-chr1	11900015	11900148	chr1.779	366	0.0825749
-chr1	11900247	11900335	chr1.780	400	0.18488
-chr1	11901991	11902909	chr1.781	608	1.7513
-chr1	11902976	11903612	chr1.782	711	3.12403
-chr1	11903696	11904564	chr1.783	518	0.882039
-chr1	11904863	11905003	chr1.784	396	0.170739
-chr1	11919310	11919389	chr1.785	352	0.050833
-chr1	11920555	11921134	chr1.786	637	2.09438
-chr1	11928312	11929587	chr1.787	706	3.04291
-chr1	11973919	11975541	chr1.788	778	4.21722
-chr1	11975727	11975967	chr1.789	434	0.332081
-chr1	12013365	12014345	chr1.790	869	5.96891
-chr1	12041403	12042004	chr1.791	453	0.435287
-chr1	12058298	12059198	chr1.792	505	0.780643
-chr1	12060328	12060406	chr1.793	321	0.00834494
-chr1	12060419	12060530	chr1.794	375	0.105754
-chr1	12072388	12072482	chr1.795	309	0.001827
-chr1	12081725	12083553	chr1.796	529	0.973503
-chr1	12083592	12084172	chr1.797	473	0.552283
-chr1	12100660	12100749	chr1.798	339	0.0294
-chr1	12112953	12113194	chr1.799	434	0.331642
-chr1	12119325	12119399	chr1.800	378	0.112809
-chr1	12127227	12127737	chr1.801	571	1.35524
-chr1	12137135	12138575	chr1.802	516	0.860251
-chr1	12144761	12145329	chr1.803	504	0.773191
-chr1	12146431	12146852	chr1.804	370	0.092743
-chr1	12147573	12148060	chr1.805	426	0.29298
-chr1	12152020	12152520	chr1.807	457	0.455083
-chr1	12154183	12154374	chr1.808	398	0.17961
-chr1	12155721	12155925	chr1.809	362	0.070915
-chr1	12156003	12156605	chr1.810	505	0.780809
-chr1	12160994	12161705	chr1.811	491	0.678695
-chr1	12162251	12162338	chr1.812	367	0.083161
-chr1	12166143	12166283	chr1.813	386	0.137527
-chr1	12166483	12166623	chr1.814	390	0.152242
-chr1	12166685	12166825	chr1.815	367	0.0831564
-chr1	12167125	12167365	chr1.816	365	0.0779965
-chr1	12167457	12168531	chr1.817	665	2.45889
-chr1	12171747	12172044	chr1.818	435	0.336281
-chr1	12172089	12173870	chr1.819	626	1.95922
-chr1	12183907	12183974	chr1.820	344	0.035861
-chr1	12197940	12198104	chr1.821	394	0.164764
-chr1	12198287	12199067	chr1.822	551	1.16823
-chr1	12202922	12203798	chr1.823	586	1.51165
-chr1	12204860	12205296	chr1.824	582	1.4676
-chr1	12223965	12223992	chr1.825	357	0.0617072
-chr1	12224082	12224704	chr1.826	776	4.18161
-chr1	12225014	12225192	chr1.827	360	0.0667278
-chr1	12225392	12225556	chr1.828	334	0.022319
-chr1	12237712	12238106	chr1.830	394	0.162787
-chr1	12238306	12238406	chr1.831	374	0.102884
-chr1	12250439	12251019	chr1.832	430	0.314475
-chr1	12296646	12296833	chr1.833	374	0.102431
-chr1	12308740	12309003	chr1.834	382	0.123975
-chr1	12332362	12333062	chr1.835	449	0.41104
-chr1	12336091	12336191	chr1.836	395	0.167755
-chr1	12336391	12336891	chr1.837	496	0.70959
-chr1	12338572	12340898	chr1.838	600	1.65857
-chr1	12379179	12380859	chr1.839	573	1.38276
-chr1	12402071	12402250	chr1.840	372	0.095808
-chr1	12404145	12404785	chr1.841	439	0.357204
-chr1	12427890	12428967	chr1.842	549	1.14903
-chr1	12429946	12430557	chr1.843	452	0.430647
-chr1	12430657	12430757	chr1.844	332	0.0193219
-chr1	12432758	12433138	chr1.845	450	0.419825
-chr1	12442728	12444136	chr1.846	576	1.40849
-chr1	12447658	12448191	chr1.847	393	0.159936
-chr1	12456074	12456274	chr1.849	381	0.123171
-chr1	12466961	12468243	chr1.850	579	1.44035
-chr1	12468308	12468343	chr1.851	317	0.00565047
-chr1	12469713	12470813	chr1.852	577	1.42181
-chr1	12472613	12473713	chr1.853	592	1.57865
-chr1	12474674	12475574	chr1.854	499	0.732854
-chr1	12504326	12505648	chr1.855	694	2.86522
-chr1	12507812	12508452	chr1.856	460	0.476398
-chr1	12589337	12590109	chr1.857	527	0.95416
-chr1	12595533	12595885	chr1.858	538	1.04484
-chr1	12595964	12596007	chr1.859	381	0.122329
-chr1	12598333	12599059	chr1.860	634	2.0554
-chr1	12602441	12602921	chr1.861	437	0.347268
-chr1	12609975	12615062	chr1.862	681	2.67612
-chr1	12628983	12629038	chr1.863	328	0.01499
-chr1	12653139	12653750	chr1.864	585	1.49641
-chr1	12709964	12710204	chr1.865	392	0.158386
-chr1	13536563	13536663	chr1.866	365	0.079255
-chr1	13648290	13648564	chr1.867	396	0.170599
-chr1	13648630	13648930	chr1.868	394	0.164951
-chr1	13662441	13662743	chr1.869	376	0.106974
-chr1	13664935	13665135	chr1.870	385	0.136126
-chr1	13737241	13738053	chr1.871	550	1.15861
-chr1	13771156	13773437	chr1.872	602	1.68301
-chr1	13774089	13774979	chr1.873	568	1.32514
-chr1	13802090	13803586	chr1.874	669	2.51079
-chr1	13805063	13805403	chr1.875	469	0.529197
-chr1	13805417	13805657	chr1.876	408	0.21799
-chr1	13806857	13807057	chr1.877	402	0.194273
-chr1	13807157	13807258	chr1.878	366	0.0805917
-chr1	13820234	13821790	chr1.879	863	5.85212
-chr1	13860441	13860681	chr1.881	405	0.206331
-chr1	13860716	13860994	chr1.882	425	0.289412
-chr1	13866367	13866907	chr1.883	419	0.263851
-chr1	13869148	13870002	chr1.884	499	0.730528
-chr1	14032227	14032506	chr1.885	412	0.232528
-chr1	14111264	14111804	chr1.886	402	0.192342
-chr1	14175862	14176462	chr1.887	401	0.190955
-chr1	14261116	14261256	chr1.888	348	0.043671
-chr1	14377545	14378045	chr1.889	447	0.398278
-chr1	14606946	14607186	chr1.890	354	0.054381
-chr1	14778554	14778888	chr1.891	414	0.240023
-chr1	14906714	14907214	chr1.892	434	0.333813
-chr1	14995701	14996075	chr1.893	565	1.3023
-chr1	14996277	14996382	chr1.894	466	0.512972
-chr1	15040834	15041229	chr1.895	431	0.319072
-chr1	15090292	15090325	chr1.896	331	0.018017
-chr1	15136259	15136736	chr1.897	448	0.404303
-chr1	15162138	15162749	chr1.898	409	0.221743
-chr1	15172653	15172993	chr1.899	443	0.377085
-chr1	15173052	15173192	chr1.900	393	0.160083
-chr1	15173226	15173392	chr1.901	352	0.0515823
-chr1	15200339	15200879	chr1.902	543	1.08883
-chr1	15209631	15210311	chr1.903	486	0.641895
-chr1	15257215	15257749	chr1.904	388	0.144293
-chr1	15276886	15277426	chr1.905	449	0.409087
-chr1	15394922	15395202	chr1.906	453	0.432337
-chr1	15395205	15395885	chr1.907	517	0.869571
-chr1	15395960	15396200	chr1.908	417	0.254147
-chr1	15404605	15405145	chr1.909	472	0.549452
-chr1	15413596	15414121	chr1.910	426	0.294237
-chr1	15417888	15418021	chr1.911	367	0.082711
-chr1	15480449	15480689	chr1.912	440	0.364072
-chr1	15480762	15483101	chr1.913	657	2.35582
-chr1	15483501	15484141	chr1.914	451	0.420121
-chr1	15488902	15489744	chr1.915	527	0.95526
-chr1	15502704	15503364	chr1.916	604	1.70467
-chr1	15523081	15523221	chr1.917	380	0.119752
-chr1	15595510	15597650	chr1.918	922	7.1369
-chr1	15597865	15599193	chr1.919	750	3.74345
-chr1	15649465	15650083	chr1.920	490	0.667183
-chr1	15650330	15651770	chr1.921	670	2.52282
-chr1	15655458	15655571	chr1.922	330	0.017011
-chr1	15656213	15656968	chr1.923	611	1.79092
-chr1	15674755	15675864	chr1.924	788	4.39598
-chr1	15688133	15690546	chr1.925	724	3.31213
-chr1	15733832	15734032	chr1.926	375	0.106116
-chr1	15755232	15755432	chr1.928	411	0.229849
-chr1	15755792	15757966	chr1.929	723	3.30323
-chr1	15768518	15769498	chr1.930	615	1.83402
-chr1	15769591	15769971	chr1.931	443	0.378344
-chr1	15812858	15813715	chr1.932	620	1.88854
-chr1	15828323	15828328	chr1.933	310	0.002096
-chr1	15829882	15830047	chr1.934	441	0.36691
-chr1	15830227	15830286	chr1.935	445	0.389135
-chr1	15830395	15830629	chr1.936	529	0.972392
-chr1	15863863	15864128	chr1.937	458	0.465222
-chr1	15875248	15875369	chr1.938	366	0.080629
-chr1	15887454	15887600	chr1.939	385	0.135358
-chr1	15905267	15905365	chr1.940	339	0.0289332
-chr1	15905461	15908288	chr1.941	827	5.1255
-chr1	15918864	15922205	chr1.942	738	3.54094
-chr1	15958522	15958769	chr1.943	419	0.264563
-chr1	15996735	15997035	chr1.944	414	0.239623
-chr1	16021081	16022481	chr1.945	707	3.05552
-chr1	16022581	16023617	chr1.946	452	0.430443
-chr1	16037778	16038658	chr1.947	505	0.776284
-chr1	16047135	16048662	chr1.948	774	4.14074
-chr1	16066441	16066479	chr1.949	331	0.018547
-chr1	16080746	16081381	chr1.950	441	0.371092
-chr1	16084523	16084632	chr1.951	456	0.450871
-chr1	16084650	16084783	chr1.952	344	0.0365067
-chr1	16127613	16128489	chr1.953	678	2.6351
-chr1	16142110	16142395	chr1.954	480	0.603216
-chr1	16145119	16145707	chr1.955	699	2.9408
-chr1	16145724	16145764	chr1.956	468	0.521564
-chr1	16150588	16151175	chr1.957	595	1.60769
-chr1	16215862	16216336	chr1.958	441	0.369728
-chr1	16226595	16227829	chr1.959	583	1.48114
-chr1	16229788	16230117	chr1.960	487	0.64524
-chr1	16231910	16232110	chr1.961	368	0.085952
-chr1	16233262	16233351	chr1.962	427	0.297411
-chr1	16233531	16234692	chr1.963	623	1.93145
-chr1	16239119	16240074	chr1.964	604	1.71212
-chr1	16259549	16259795	chr1.965	424	0.284513
-chr1	16259815	16259883	chr1.966	459	0.471239
-chr1	16277952	16279335	chr1.967	772	4.10972
-chr1	16287820	16289983	chr1.968	719	3.23859
-chr1	16307757	16309643	chr1.969	701	2.963
-chr1	16316085	16316553	chr1.970	459	0.469429
-chr1	16335846	16336486	chr1.971	442	0.372348
-chr1	16385123	16385373	chr1.972	375	0.105099
-chr1	16385463	16385803	chr1.973	369	0.0889854
-chr1	16423272	16424769	chr1.974	754	3.80381
-chr1	16424803	16425083	chr1.975	498	0.722923
-chr1	16438330	16440076	chr1.976	711	3.11638
-chr1	16448707	16448947	chr1.977	376	0.108169
-chr1	16458706	16458814	chr1.978	401	0.189876
-chr1	16459154	16459289	chr1.979	371	0.0930393
-chr1	16459554	16459754	chr1.980	372	0.0972496
-chr1	16492328	16492973	chr1.981	564	1.29202
-chr1	16511879	16513759	chr1.982	716	3.19559
-chr1	16524480	16524580	chr1.983	370	0.091235
-chr1	16567461	16567841	chr1.984	349	0.045555
-chr1	16570611	16571718	chr1.985	689	2.79814
-chr1	16584704	16585284	chr1.986	529	0.9694
-chr1	16585413	16586501	chr1.987	591	1.55995
-chr1	16586544	16587124	chr1.988	552	1.178
-chr1	16592295	16593134	chr1.989	526	0.945032
-chr1	16605956	16607226	chr1.990	578	1.42612
-chr1	16607330	16607426	chr1.991	331	0.018543
-chr1	16650721	16651561	chr1.992	495	0.703933
-chr1	16657017	16657717	chr1.993	447	0.399027
-chr1	16663475	16664375	chr1.994	538	1.05196
-chr1	16684068	16686560	chr1.995	820	4.99284
-chr1	16687546	16687708	chr1.996	348	0.043704
-chr1	16692836	16692860	chr1.997	395	0.16956
-chr1	16692903	16693329	chr1.998	557	1.21841
-chr1	16694833	16694937	chr1.999	372	0.097097
-chr1	16696709	16696711	chr1.1000	315	0.00459888
-chr1	16696773	16697030	chr1.1001	471	0.543454
-chr1	16703861	16703878	chr1.1003	312	0.002797
-chr1	16715636	16715735	chr1.1004	370	0.092628
-chr1	16715776	16717338	chr1.1005	868	5.95332
-chr1	16719238	16720038	chr1.1006	545	1.11388
-chr1	16724525	16725049	chr1.1007	379	0.116114
-chr1	16733239	16733339	chr1.1008	329	0.016083
-chr1	16737378	16737958	chr1.1009	536	1.02924
-chr1	16738014	16738594	chr1.1010	536	1.02924
-chr1	16738684	16739164	chr1.1011	512	0.83069
-chr1	16739206	16739786	chr1.1012	536	1.02924
-chr1	16770909	16770930	chr1.1013	376	0.108583
-chr1	16771358	16771728	chr1.1014	539	1.05694
-chr1	16771773	16772096	chr1.1015	373	0.0984549
-chr1	16772128	16773528	chr1.1016	617	1.85105
diff --git a/testdata/tribble/soapsnp.txt b/testdata/tribble/soapsnp.txt
deleted file mode 100644
index 906408c..0000000
--- a/testdata/tribble/soapsnp.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-chr1       00024553502     C       T       8       T       34      2       2       C       0       0       0       2       2       1.00000 1.00000 1
-chr1       00032906555     T       Y       0       C       34      1       1       T       0       0       0       1       1       0.00000 1.00000 1
-chr1       00043851998     T       C       11      C       34      1       1       T       0       0       0       1       1       1.00000 1.00000 1
-chr1       00085336726     A       G       9       G       34      1       1       A       0       0       0       1       1       1.00000 1.00000 1
-chr1       00089619960     G       T       15      T       34      1       1       G       0       0       0       1       1       1.00000 1.00000 1
-chr1       00150459311     T       C       25      C       18      2       2       T       0       0       0       2       2       1.00000 1.00000 1
-chr1       00150542507     C       M       0       C       34      1       1       G       0       0       0       1       1       0.00000 1.00000 1
-chr1       00155208036     T       G       8       G       34      2       2       T       0       0       0       2       2       1.00000 1.00000 1
-chr1       00159060586     G       C       15      C       34      2       2       G       0       0       0       2       2       1.00000 1.00000 1
-chr1       00159279214     G       A       4       A       34      1       1       G       0       0       0       1       1       1.00000 1.00000 1
-chr1       00173313412     A       G       10      G       35      1       1       A       0       0       0       1       1       1.00000 1.00000 1
-chr1       00184407924     G       A       12      A       34      1       1       G       0       0       0       1       1       1.00000 1.00000 1
-chr1       00205302577     G       A       2       A       34      1       1       G       0       0       0       1       1       1.00000 1.00000 1
-chr2       00057129003     G       A       1       A       35      1       1       G       0       0       0       1       1       1.00000 1.00000 1
-chr2       00068399444     T       G       14      G       32      1       1       T       0       0       0       1       1       1.00000 1.00000 1
-chr2       00068399489     C       G       4       G       2       2       2       C       0       0       0       2       2       1.00000 1.00000 1
-chr2       00074039384     A       T       11      T       34      1       1       A       0       0       0       1       1       1.00000 1.00000 1
-chr2       00099388952     C       A       2       A       34      2       2       C       0       0       0       2       2       1.00000 1.00000 0
-chr2       00129970560     G       A       2       A       34      2       2       G       0       0       0       2       2       1.00000 1.00000 0
-chr2       00172106557     T       C       20      C       33      2       2       T       0       0       0       2       2       1.00000 1.00000 1
-chr2       00190398016     G       A       6       A       34      1       1       G       0       0       0       1       1       1.00000 1.00000 1
-chr2       00202177606     C       T       32      T       32      1       1       C       0       0       0       1       1       1.00000 1.00000 1
-chr2       00230378724     C       A       2       A       31      2       2       C       0       0       0       2       2       1.00000 1.00000 0
-chr2       00239133677     G       A       0       A       33      1       1       G       0       0       0       1       1       1.00000 1.00000 1
diff --git a/testdata/tribble/split/test.bin.part1 b/testdata/tribble/split/test.bin.part1
deleted file mode 100644
index a128411..0000000
Binary files a/testdata/tribble/split/test.bin.part1 and /dev/null differ
diff --git a/testdata/tribble/split/test.bin.part2 b/testdata/tribble/split/test.bin.part2
deleted file mode 100644
index 011fd79..0000000
Binary files a/testdata/tribble/split/test.bin.part2 and /dev/null differ
diff --git a/testdata/tribble/split/test.bin.part3 b/testdata/tribble/split/test.bin.part3
deleted file mode 100644
index b8aa567..0000000
Binary files a/testdata/tribble/split/test.bin.part3 and /dev/null differ
diff --git a/testdata/tribble/split/test.bin.split b/testdata/tribble/split/test.bin.split
deleted file mode 100644
index 8d0fb5a..0000000
--- a/testdata/tribble/split/test.bin.split
+++ /dev/null
@@ -1,3 +0,0 @@
-test.bin.part1 4000
-test.bin.part2 4000
-test.bin.part3 4000
\ No newline at end of file
diff --git a/testdata/tribble/tabix/bigger.vcf.gz.tbi b/testdata/tribble/tabix/bigger.vcf.gz.tbi
deleted file mode 100644
index 232a1a2..0000000
Binary files a/testdata/tribble/tabix/bigger.vcf.gz.tbi and /dev/null differ
diff --git a/testdata/tribble/tabix/trioDup.vcf b/testdata/tribble/tabix/trioDup.vcf
deleted file mode 100644
index 39e4b90..0000000
--- a/testdata/tribble/tabix/trioDup.vcf
+++ /dev/null
@@ -1,75 +0,0 @@
-##fileformat=VCFv3.3
-##FILTER=GATK_STANDARD,"AB > 0.75 || DP > 360 || MQ0 > 40 || SB > -0.10,AB > 0.75 || DP > 360 || MQ0 > 40 || SB > -0.10,AB > 0.75 || DP > 360 || MQ0 > 40 || SB > -0.10"
-##FILTER=HARD_TO_VALIDATE,"MQ0 >= 4 && ((MQ0 / (1.0 * DP)) > 0.1),MQ0 >= 4 && ((MQ0 / (1.0 * DP)) > 0.1),MQ0 >= 4 && ((MQ0 / (1.0 * DP)) > 0.1)"
-##FILTER=SnpCluster,"SNPs found in clusters,SNPs found in clusters,SNPs found in clusters"
-##FILTER=match-0,"(set eq 'Intersection' || set eq 'filteredInBoth')"
-##FORMAT=DP,1,Integer,"Read Depth (only filtered reads used for calling)"
-##FORMAT=GQ,1,Integer,"Genotype Quality"
-##FORMAT=GT,1,String,"Genotype"
-##INFO=AB,1,Float,"Allele Balance for hets (ref/(ref+alt))"
-##INFO=AC,1,Integer,"Allele count in genotypes, for each ALT allele, in the same order as listed"
-##INFO=AF,1,Float,"Allele Frequency"
-##INFO=AN,1,Integer,"Total number of alleles in called genotypes"
-##INFO=DB,1,Integer,"dbSNP membership"
-##INFO=DP,1,Integer,"Total Depth"
-##INFO=Dels,1,Float,"Fraction of Reads Containing Spanning Deletions"
-##INFO=HRun,1,Integer,"Largest Contiguous Homopolymer Run of Variant Allele In Either Direction"
-##INFO=MQ,1,Float,"RMS Mapping Quality"
-##INFO=MQ0,1,Integer,"Total Mapping Quality Zero Reads"
-##INFO=QD,1,Float,"Variant Confidence/Quality by Depth"
-##INFO=SB,1,Float,"Strand Bias"
-##NA19238=../depthFilter/filtered.NA19238.chromX.SLX.maq.SRP000032.2009_07.glf
-##NA19239=../depthFilter/filtered.NA19239.chromX.SLX.maq.SRP000032.2009_11.glf
-##NA19240=../merged/NA19240.chromX.merged.glf
-##UG_assume_single_sample_reads=null
-##UG_base_model=EMPIRICAL
-##UG_genotype=false
-##UG_genotype_model=JOINT_ESTIMATE
-##UG_heterozygosity=0.0010
-##UG_include_experimental_annotations=false
-##UG_max_deletion_fraction=0.05
-##UG_max_mismatches_in_40bp_window=3
-##UG_min_base_quality_score=10
-##UG_min_confidence_threshold=50.0
-##UG_min_mapping_quality_score=10
-##UG_noSLOD=false
-##UG_output_all_callable_bases=false
-##UG_platform=SOLID
-##UG_poolSize=0
-##UG_use_reads_with_bad_mates=false
-##maxTotalDepth=1000
-##minMapQuality=30
-##minPosterior=0.9990
-##minTotalDepth=0
-##program=glfTrio
-##reference=human_b36_both.fasta
-##source=UnifiedGenotyper
-##source=VariantFiltration
-##source=VariantSelect
-##versionDate=Sun Sep 20 17:38:54 2009
-#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	NA19238	NA19239	NA19240	
-1	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-2	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-3	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-4	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-4	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-5	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-6	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-7	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-8	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-9	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-10	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-11	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-12	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-13	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-14	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-15	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-16	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-17	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-18	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-19	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-20	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-21	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-22	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-X	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-Y	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
diff --git a/testdata/tribble/tabix/trioDup.vcf.gz b/testdata/tribble/tabix/trioDup.vcf.gz
deleted file mode 100644
index ccda746..0000000
Binary files a/testdata/tribble/tabix/trioDup.vcf.gz and /dev/null differ
diff --git a/testdata/tribble/tabix/trioDup.vcf.gz.tbi b/testdata/tribble/tabix/trioDup.vcf.gz.tbi
deleted file mode 100644
index 6bc4be2..0000000
Binary files a/testdata/tribble/tabix/trioDup.vcf.gz.tbi and /dev/null differ
diff --git a/testdata/tribble/test.bed b/testdata/tribble/test.bed
deleted file mode 100644
index 2a68645..0000000
--- a/testdata/tribble/test.bed
+++ /dev/null
@@ -1,9 +0,0 @@
-track name="test bed"
-#a comment
-chr1	100	101
-chr1	200	201
-chr1	300	301
-chr1	100000	100010
-chr1	100020	100040
-chr2	1	10
-chr2	20	30
diff --git a/testdata/tribble/test.gff b/testdata/tribble/test.gff
deleted file mode 100644
index 6a24793..0000000
--- a/testdata/tribble/test.gff
+++ /dev/null
@@ -1,9 +0,0 @@
-#header
-#cont
-chr1    100   101
-chr1    200   201
-chr1    300   301
-chr1    100000   100010
-chr1    100020   100040
-chr2    1   10
-chr2    20   30
\ No newline at end of file
diff --git a/testdata/tribble/test.tabix.bed.gz b/testdata/tribble/test.tabix.bed.gz
deleted file mode 100644
index 7c3b419..0000000
Binary files a/testdata/tribble/test.tabix.bed.gz and /dev/null differ
diff --git a/testdata/tribble/test.tabix.bed.gz.tbi b/testdata/tribble/test.tabix.bed.gz.tbi
deleted file mode 100644
index b9d16c8..0000000
Binary files a/testdata/tribble/test.tabix.bed.gz.tbi and /dev/null differ
diff --git a/testdata/tribble/testGeliText.txt b/testdata/tribble/testGeliText.txt
deleted file mode 100644
index 6c3d5cc..0000000
--- a/testdata/tribble/testGeliText.txt
+++ /dev/null
@@ -1,50 +0,0 @@
-22	14438070	A	0	0	GG	33.2618	33.2618	0	0	0	0	0	0	0	33.2618	0	0
-22	14438200	G	0	0	AA	1.1886	1.1886	1.1886	0	0	0	0	0	0	0	0	0
-22	14441250	T	0	0	CC	53.483	53.483	0	0	0	0	53.483	0	0	0	0	0
-22	14447887	G	0	0	AA	12.4813	12.4813	12.4813	0	0	0	0	0	0	0	0	0
-22	14457860	C	0	0	AA	12.4084	12.4084	12.4084	0	0	0	0	0	0	0	0	0
-22	14458514	C	0	0	TT	7.5213	7.5213	0	0	0	0	0	0	0	0	0	7.5213
-22	14461115	T	0	0	AA	16.8074	16.8074	16.8074	0	0	0	0	0	0	0	0	0
-22	14461207	G	0	0	AA	16.2602	16.2602	16.2602	0	0	0	0	0	0	0	0	0
-22	14461877	G	0	0	CC	38.4419	38.4419	0	0	0	0	38.4419	0	0	0	0	0
-22	14477581	G	0	0	CC	100.1684	100.1684	0	0	0	0	100.1684	0	0	0	0	0
-22	14478631	C	0	0	GG	183.3861	183.3861	0	0	0	0	0	0	0	183.3861	0	0
-22	14481814	T	0	0	CC	85.2846	85.2846	0	0	0	0	85.2846	0	0	0	0	0
-22	14483033	G	0	0	AA	31.8788	31.8788	31.8788	0	0	0	0	0	0	0	0	0
-22	14483299	A	0	0	GG	77.8744	77.8744	0	0	0	0	0	0	0	77.8744	0	0
-22	14485386	T	0	0	CC	74.4269	74.4269	0	0	0	0	74.4269	0	0	0	0	0
-22	14485626	C	0	0	TT	113.7914	113.7914	0	0	0	0	0	0	0	0	0	113.7914
-22	14493000	C	0	0	AA	80.076	80.076	80.076	0	0	0	0	0	0	0	0	0
-22	14493115	T	0	0	CC	13.3876	13.3876	0	0	0	0	13.3876	0	0	0	0	0
-22	14493547	C	0	0	AA	66.7446	66.7446	66.7446	0	0	0	0	0	0	0	0	0
-22	14498096	C	0	0	TT	22.2114	22.2114	0	0	0	0	0	0	0	0	0	22.2114
-22	14500486	A	0	0	CC	40.1737	40.1737	0	0	0	0	40.1737	0	0	0	0	0
-22	14500558	C	0	0	AA	9.7267	9.7267	9.7267	0	0	0	0	0	0	0	0	0
-22	14513510	T	0	0	CC	0.371	0.371	0	0	0	0	0.371	0	0	0	0	0
-22	14515016	C	0	0	TT	18.3656	18.3656	0	0	0	0	0	0	0	0	0	18.3656
-22	14515375	C	0	0	AA	8.0465	8.0465	8.0465	0	0	0	0	0	0	0	0	0
-22	14518569	T	0	0	CC	7.0936	7.0936	0	0	0	0	7.0936	0	0	0	0	0
-22	14521164	G	0	0	AA	14.6779	14.6779	14.6779	0	0	0	0	0	0	0	0	0
-22	14521784	T	0	0	AA	103.5567	103.5567	103.5567	0	0	0	0	0	0	0	0	0
-22	14523455	G	0	0	AA	111.3576	111.3576	111.3576	0	0	0	0	0	0	0	0	0
-22	14523946	A	0	0	GG	557.6265	557.6265	0	0	0	0	0	0	0	557.6265	0	0
-22	14524113	T	0	0	CC	13.5924	13.5924	0	0	0	0	13.5924	0	0	0	0	0
-22	14529743	T	0	0	AA	14.9931	14.9931	14.9931	0	0	0	0	0	0	0	0	0
-22	14529851	G	0	0	AA	36.2328	36.2328	36.2328	0	0	0	0	0	0	0	0	0
-22	14530198	C	0	0	TT	10.9314	10.9314	0	0	0	0	0	0	0	0	0	10.9314
-22	14530589	C	0	0	AA	5.7191	5.7191	5.7191	0	0	0	0	0	0	0	0	0
-22	14532450	A	0	0	GG	36.3551	36.3551	0	0	0	0	0	0	0	36.3551	0	0
-22	14532603	G	0	0	CC	1.1431	1.1431	0	0	0	0	1.1431	0	0	0	0	0
-22	14533615	A	0	0	CC	76.6265	76.6265	0	0	0	0	76.6265	0	0	0	0	0
-22	14535726	A	0	0	GG	16.5307	16.5307	0	0	0	0	0	0	0	16.5307	0	0
-22	14537455	G	0	0	TT	8.0559	8.0559	0	0	0	0	0	0	0	0	0	8.0559
-22	14539060	G	0	0	AA	11.4875	11.4875	11.4875	0	0	0	0	0	0	0	0	0
-22	14539158	A	0	0	GG	8.9543	8.9543	0	0	0	0	0	0	0	8.9543	0	0
-22	14541357	T	0	0	CC	2.2916	2.2916	0	0	0	0	2.2916	0	0	0	0	0
-22	14543758	C	0	0	TT	5.108	5.108	0	0	0	0	0	0	0	0	0	5.108
-22	14556926	T	0	0	AA	101.0105	101.0105	101.0105	0	0	0	0	0	0	0	0	0
-22	14561744	T	0	0	CC	2.4103	2.4103	0	0	0	0	2.4103	0	0	0	0	0
-22	14579503	C	0	0	TT	49.7801	49.7801	0	0	0	0	0	0	0	0	0	49.7801
-22	14582170	C	0	0	TT	37.9647	37.9647	0	0	0	0	0	0	0	0	0	37.9647
-22	14591631	T	0	0	CC	2.5744	2.5744	0	0	0	0	2.5744	0	0	0	0	0
-22	14592250	A	0	0	GG	16.8241	16.8241	0	0	0	0	0	0	0	16.8241	0	0
diff --git a/testdata/tribble/testIntervalList.list b/testdata/tribble/testIntervalList.list
deleted file mode 100644
index 304d8fb..0000000
--- a/testdata/tribble/testIntervalList.list
+++ /dev/null
@@ -1,6 +0,0 @@
-chr1:1-100
-chr1:200-300
-chr1:500-600
-chr1:700-800
-chr1:900-1001
-chr1:1001-1002
diff --git a/testdata/tribble/tmp/.gitignore b/testdata/tribble/tmp/.gitignore
deleted file mode 100644
index e69de29..0000000
diff --git a/testdata/tribble/trio.vcf b/testdata/tribble/trio.vcf
deleted file mode 100644
index 8a24fb2..0000000
--- a/testdata/tribble/trio.vcf
+++ /dev/null
@@ -1,100 +0,0 @@
-##fileformat=VCFv3.2
-##fileformat=VCFv3.3
-##FILTER=GATK_STANDARD,"AB > 0.75 || DP > 360 || MQ0 > 40 || SB > -0.10,AB > 0.75 || DP > 360 || MQ0 > 40 || SB > -0.10,AB > 0.75 || DP > 360 || MQ0 > 40 || SB > -0.10"
-##FILTER=HARD_TO_VALIDATE,"MQ0 >= 4 && ((MQ0 / (1.0 * DP)) > 0.1),MQ0 >= 4 && ((MQ0 / (1.0 * DP)) > 0.1),MQ0 >= 4 && ((MQ0 / (1.0 * DP)) > 0.1)"
-##FILTER=SnpCluster,"SNPs found in clusters,SNPs found in clusters,SNPs found in clusters"
-##FILTER=match-0,"(set eq 'Intersection' || set eq 'filteredInBoth')"
-##FORMAT=DP,1,Integer,"Read Depth (only filtered reads used for calling)"
-##FORMAT=GQ,1,Integer,"Genotype Quality"
-##FORMAT=GT,1,String,"Genotype"
-##INFO=AB,1,Float,"Allele Balance for hets (ref/(ref+alt))"
-##INFO=AC,1,Integer,"Allele count in genotypes, for each ALT allele, in the same order as listed"
-##INFO=AF,1,Float,"Allele Frequency"
-##INFO=AN,1,Integer,"Total number of alleles in called genotypes"
-##INFO=DB,1,Integer,"dbSNP membership"
-##INFO=DP,1,Integer,"Total Depth"
-##INFO=Dels,1,Float,"Fraction of Reads Containing Spanning Deletions"
-##INFO=HRun,1,Integer,"Largest Contiguous Homopolymer Run of Variant Allele In Either Direction"
-##INFO=MQ,1,Float,"RMS Mapping Quality"
-##INFO=MQ0,1,Integer,"Total Mapping Quality Zero Reads"
-##INFO=QD,1,Float,"Variant Confidence/Quality by Depth"
-##INFO=SB,1,Float,"Strand Bias"
-##NA19238=../depthFilter/filtered.NA19238.chromX.SLX.maq.SRP000032.2009_07.glf
-##NA19239=../depthFilter/filtered.NA19239.chromX.SLX.maq.SRP000032.2009_11.glf
-##NA19240=../merged/NA19240.chromX.merged.glf
-##UG_assume_single_sample_reads=null
-##UG_base_model=EMPIRICAL
-##UG_genotype=false
-##UG_genotype_model=JOINT_ESTIMATE
-##UG_heterozygosity=0.0010
-##UG_include_experimental_annotations=false
-##UG_max_deletion_fraction=0.05
-##UG_max_mismatches_in_40bp_window=3
-##UG_min_base_quality_score=10
-##UG_min_confidence_threshold=50.0
-##UG_min_mapping_quality_score=10
-##UG_noSLOD=false
-##UG_output_all_callable_bases=false
-##UG_platform=SOLID
-##UG_poolSize=0
-##UG_use_reads_with_bad_mates=false
-##maxTotalDepth=1000
-##minMapQuality=30
-##minPosterior=0.9990
-##minTotalDepth=0
-##program=glfTrio
-##reference=human_b36_both.fasta
-##source=UnifiedGenotyper
-##source=VariantFiltration
-##source=VariantSelect
-##versionDate=Sun Sep 20 17:38:54 2009
-#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	NA19238	NA19239	NA19240	
-1	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-1	4793	rs6682385	A	G	1687.16	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.54;AC=3;AF=0.50;AN=6;DB=1;DP=242;Dels=0.00;HRun=0;MQ=77.94;MQ0=43;QD=6.97;SB=-891.19;set=filteredInBoth	GT:DP:GQ	0/1:15:4.94	0/1:58:99.00	0/1:73:99.00
-1	45162	rs10399749	C	T	634.21	HARD_TO_VALIDATE	AB=0.63;AC=3;AF=0.50;AN=6;DB=1;DP=67;Dels=0.00;HRun=0;MQ=115.93;MQ0=7;QD=12.44;SB=-359.74;set=filteredInBoth	GT:DP:GQ	1/1:6:18.05	0/0:12:35.94	0/1:35:99.00
-1	48677	.	G	A	1049.06	HARD_TO_VALIDATE	AB=0.48;AC=2;AF=0.33;AN=6;DB=0;DP=88;Dels=0.00;HRun=1;MQ=120.08;MQ0=12;QD=14.78;SB=-423.81;set=filteredInBoth	GT:DP:GQ	1/0:16:99.00	0/0:12:36.07	1/0:42:99.00
-1	56724	rs28375825	C	T	65.41	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.88;AC=1;AF=0.50;AN=2;DB=1;DP=145;Dels=0.00;HRun=0;MQ=42.19;MQ0=140;QD=1.01;SB=-44.70;set=filteredInBoth	GT:DP:GQ	./.	./.	0/1:4:16.39
-1	61969	.	T	C	98.69	GATK_STANDARD;HARD_TO_VALIDATE	AC=2;AF=1.00;AN=2;DB=0;DP=83;Dels=0.00;HRun=0;MQ=62.34;MQ0=78;QD=2.30;SB=-40.43;set=filteredInBoth	GT:DP:GQ	./.	./.	1/1:5:15.00
-1	66069	rs6672770	T	C	129.77	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.79;AC=1;AF=0.50;AN=2;DB=1;DP=81;Dels=0.00;HRun=1;MQ=79.82;MQ0=72;QD=3.24;SB=-34.43;set=filteredInBoth	GT:DP:GQ	./.	./.	1/0:8:49.36
-1	72824	.	C	T	442.04	HARD_TO_VALIDATE	AB=0.64;AC=2;AF=0.33;AN=6;DB=0;DP=77;Dels=0.00;HRun=1;MQ=110.14;MQ0=34;QD=7.76;SB=-223.18;set=filteredInBoth	GT:DP:GQ	0/1:8:45.25	0/0:6:17.89	0/1:19:99.00
-1	77053	rs1524602	G	A	550.09	GATK_STANDARD;HARD_TO_VALIDATE	AC=4;AF=0.67;AN=6;DB=1;DP=79;Dels=0.00;HRun=0;MQ=107.50;MQ0=42;QD=9.02;SB=-259.27;set=filteredInBoth	GT:DP:GQ	1/1:1:3.00	0/0:8:23.91	1/1:15:45.14
-1	77999	rs59529791	G	A	405.10	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.54;AC=1;AF=0.50;AN=2;DB=1;DP=149;Dels=0.00;HRun=0;MQ=97.90;MQ0=125;QD=4.82;SB=-212.96;set=filteredInBoth	GT:DP:GQ	./.	./.	1/0:18:99.00
-1	78032	rs940550	C	T	326.66	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.62;AC=2;AF=0.33;AN=6;DB=1;DP=166;Dels=0.00;HRun=0;MQ=106.31;MQ0=90;QD=2.68;SB=-159.68;set=filteredInBoth	GT:DP:GQ	0/1:9:55.54	0/0:13:19.59	0/1:36:99.00
-1	78201	rs55700207	G	A	727.51	HARD_TO_VALIDATE	AB=0.69;AC=2;AF=0.33;AN=6;DB=1;DP=156;Dels=0.00;HRun=1;MQ=123.99;MQ0=18;QD=6.11;SB=-313.22;set=filteredInBoth	GT:DP:GQ	1/0:15:71.23	0/0:30:89.75	1/0:76:99.00
-1	79870	rs6600761	G	A	446.08	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.79;AC=5;AF=0.83;AN=6;DB=1;DP=144;Dels=0.00;HRun=0;MQ=63.25;MQ0=120;QD=3.10;SB=-207.47;set=filteredInBoth	GT:DP:GQ	1/1:1:3.01	1/0:4:39.73	1/1:16:1.78
-1	79914	rs7545609	C	T	330.71	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.43;AC=3;AF=0.75;AN=4;DB=1;DP=113;Dels=0.00;HRun=1;MQ=52.52;MQ0=95;QD=3.31;SB=-87.43;set=filteredInBoth	GT:DP:GQ	./.	1/1:3:8.99	0/1:11:15.70
-1	81468	rs13328714	C	T	1069.45	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.62;AC=3;AF=0.50;AN=6;DB=1;DP=140;Dels=0.00;HRun=0;MQ=54.71;MQ0=81;QD=7.64;SB=-475.44;set=filteredInBoth	GT:DP:GQ	0/1:10:34.30	0/1:6:59.37	0/1:31:84.17
-1	98093	rs9726668	C	T	112.02	GATK_STANDARD;HARD_TO_VALIDATE	AC=2;AF=1.00;AN=2;DB=1;DP=129;Dels=0.00;HRun=1;MQ=44.79;MQ0=116;QD=2.15;SB=-79.41;set=filteredInBoth	GT:DP:GQ	./.	./.	1/1:4:12.04
-1	130294	.	A	T	197.39	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.86;AC=1;AF=0.50;AN=2;DB=0;DP=103;Dels=0.00;HRun=0;MQ=90.59;MQ0=90;QD=3.72;SB=-106.74;set=filteredInBoth	GT:DP:GQ	./.	./.	0/1:11:99.00
-1	235923	.	G	A	594.00	HARD_TO_VALIDATE	AB=0.60;AC=2;AF=0.33;AN=6;DB=0;DP=109;Dels=0.00;HRun=2;MQ=79.25;MQ0=18;QD=6.91;SB=-296.81;set=filteredInBoth	GT:DP:GQ	0/0:18:52.41	1/0:21:99.00	1/0:38:99.00
-1	526849	rs9918921	G	T	729.63	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.70;AC=3;AF=0.50;AN=6;DB=1;DP=144;Dels=0.00;HRun=1;MQ=58.35;MQ0=63;QD=5.07;SB=-386.25;set=filteredInBoth	GT:DP:GQ	0/1:22:99.00	0/1:9:5.72	0/1:32:99.00
-1	554535	rs2792856	A	C	460.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.98;AC=2;AF=0.33;AN=6;DB=1;DP=5992;Dels=0.00;HRun=0;MQ=24.07;MQ0=3765;QD=0.17;SB=-263.03;set=filteredInBoth	GT:DP:GQ	0/1:11:11.51	0/0:1904:99.00	0/1:49:99.00
-1	555454	rs7416152	C	T	337.28	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.69;AC=1;AF=0.17;AN=6;DB=1;DP=613;Dels=0.00;HRun=0;MQ=69.04;MQ0=411;QD=1.44;SB=-37.69;set=filteredInBoth	GT:DP:GQ	0/0:28:10.08	0/0:15:44.56	0/1:45:99.00
-1	556655	rs9283152	T	C	271.50	HARD_TO_VALIDATE	AB=0.56;AC=3;AF=0.50;AN=6;DB=1;DP=143;Dels=0.00;HRun=0;MQ=113.17;MQ0=28;QD=1.90;SB=-150.20;set=filteredInBoth	GT:DP:GQ	1/0:15:11.69	1/0:6:0.60	1/0:43:99.00
-1	556738	rs2185539	C	T	969.07	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.98;AC=2;AF=0.33;AN=6;DB=1;DP=6824;Dels=0.00;HRun=0;MQ=14.67;MQ0=6699;QD=0.19;SB=-473.67;set=filteredInBoth	GT:DP:GQ	0/1:12:41.37	0/0:10:29.98	0/1:49:99.00
-1	557239	rs1972376	G	A	206.76	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.99;AC=2;AF=0.33;AN=6;DB=1;DP=9777;Dels=0.00;HRun=0;MQ=14.50;MQ0=9698;QD=0.03;SB=-116.61;set=filteredInBoth	GT:DP:GQ	0/0:12:35.59	1/0:6:3.58	1/0:34:99.00
-1	558119	rs4098612	C	T	883.08	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.68;AC=3;AF=0.50;AN=6;DB=1;DP=846;Dels=0.00;HRun=0;MQ=61.17;MQ0=599;QD=1.04;SB=-257.60;set=filteredInBoth	GT:DP:GQ	0/1:38:99.00	0/1:29:99.00	0/1:89:99.00
-1	558554	rs8179256	T	C	148.11	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.83;AC=2;AF=0.33;AN=6;DB=1;DP=203;Dels=0.00;HRun=1;MQ=120.71;MQ0=124;QD=0.87;SB=-66.34;set=filteredInBoth	GT:DP:GQ	1/0:4:18.64	0/0:5:15.05	1/0:51:99.00
-1	558581	rs7417964	C	T	290.58	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.82;AC=2;AF=0.33;AN=6;DB=1;DP=265;Dels=0.00;HRun=0;MQ=111.81;MQ0=79;QD=1.49;SB=-93.95;set=filteredInBoth	GT:DP:GQ	0/1:13:14.08	0/0:22:47.05	0/1:77:99.00
-1	588696	.	T	C	218.82	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.54;AC=2;AF=0.33;AN=6;DB=0;DP=134;Dels=0.00;HRun=0;MQ=83.72;MQ0=47;QD=2.77;SB=-104.66;set=filteredInBoth	GT:DP:GQ	1/0:24:61.33	1/0:20:99.00	0/0:26:78.22
-1	593378	.	C	A	251.81	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.79;AC=3;AF=0.50;AN=6;DB=0;DP=87;Dels=0.00;HRun=0;MQ=89.00;MQ0=57;QD=3.87;SB=-90.25;set=filteredInBoth	GT:DP:GQ	0/0:1:3.01	1/1:2:6.01	1/0:18:99.00
-1	593379	.	C	A	264.50	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.80;AC=3;AF=0.50;AN=6;DB=0;DP=88;Dels=0.00;HRun=0;MQ=88.49;MQ0=59;QD=4.01;SB=-90.26;set=filteredInBoth	GT:DP:GQ	0/0:2:6.02	1/1:2:6.02	1/0:17:99.00
-1	625979	rs3871845	G	C	930.94	GATK_STANDARD;HARD_TO_VALIDATE	AC=6;AF=1.00;AN=6;DB=1;DP=107;Dels=0.00;HRun=0;MQ=52.60;MQ0=65;QD=8.70;SB=-330.39;set=filteredInBoth	GT:DP:GQ	1/1:2:6.02	1/1:13:3.64	1/1:13:39.08
-1	658074	.	G	A	158.20	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.85;AC=1;AF=0.50;AN=2;DB=0;DP=128;Dels=0.00;HRun=1;MQ=107.95;MQ0=103;QD=2.11;SB=-62.45;set=filteredInBoth	GT:DP:GQ	./.	./.	1/0:18:99.00
-1	670109	.	G	A	261.26	SnpCluster;HARD_TO_VALIDATE	AB=0.64;AC=3;AF=0.50;AN=6;DB=0;DP=50;Dels=0.00;HRun=0;MQ=57.55;MQ0=22;QD=7.92;SB=-162.18;set=filteredInBoth	GT:DP:GQ	0/0:6:17.87	1/1:4:12.03	1/0:10:99.00
-1	670115	.	A	G	95.67	SnpCluster;HARD_TO_VALIDATE	AB=0.47;AC=1;AF=0.17;AN=6;DB=0;DP=49;Dels=0.00;HRun=0;MQ=45.30;MQ0=22;QD=6.38;SB=-48.65;set=filteredInBoth	GT:DP:GQ	0/1:6:17.65	0/0:4:12.03	0/0:9:27.08
-1	695744	.	C	T	287.83	0	AB=0.53;AC=2;AF=0.33;AN=6;DB=0;DP=115;Dels=0.00;HRun=0;MQ=134.37;MQ0=4;QD=8.72;SB=-139.69;set=Intersection	GT:DP:GQ	0/1:6:39.04	0/1:17:99.00	0/0:67:99.00
-1	705134	.	G	C	479.55	HARD_TO_VALIDATE	AB=0.46;AC=2;AF=0.33;AN=6;DB=0;DP=115;Dels=0.00;HRun=0;MQ=103.92;MQ0=31;QD=8.56;SB=-251.32;set=filteredInBoth	GT:DP:GQ	1/0:7:14.41	1/0:20:99.00	0/0:40:99.00
-1	713682	rs11804171	T	A	146.13	0	AB=0.49;AC=2;AF=0.33;AN=6;DB=1;DP=137;Dels=0.00;HRun=1;MQ=162.31;MQ0=7;QD=3.32;SB=-73.71;set=Intersection	GT:DP:GQ	1/0:10:99.00	1/0:23:78.43	0/0:80:99.00
-1	714613	.	T	A	128.46	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.85;AC=1;AF=0.17;AN=6;DB=0;DP=312;Dels=0.00;HRun=0;MQ=62.11;MQ0=223;QD=1.01;SB=-96.00;set=filteredInBoth	GT:DP:GQ	0/0:8:23.94	0/0:8:24.02	1/0:30:99.00
-1	714914	.	G	C	1014.25	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.89;AC=3;AF=0.50;AN=6;DB=0;DP=1105;Dels=0.00;HRun=0;MQ=40.04;MQ0=802;QD=0.92;SB=-342.49;set=filteredInBoth	GT:DP:GQ	1/0:19:99.00	1/0:63:99.00	1/0:121:99.00
-1	714919	.	C	T	182.40	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.93;AC=2;AF=0.33;AN=6;DB=0;DP=1718;Dels=0.00;HRun=1;MQ=31.70;MQ0=1407;QD=0.14;SB=-70.23;set=filteredInBoth	GT:DP:GQ	0/0:16:13.44	0/1:47:99.00	0/1:116:71.35
-1	715102	.	C	T	464.73	SnpCluster;GATK_STANDARD;HARD_TO_VALIDATE	AB=0.91;AC=2;AF=0.33;AN=6;DB=0;DP=1683;Dels=0.00;HRun=1;MQ=35.16;MQ0=913;QD=0.40;SB=-83.11;set=filteredInBoth	GT:DP:GQ	0/0:84:37.60	0/1:133:36.77	0/1:137:99.00
-1	715843	.	C	T	246.91	SnpCluster;GATK_STANDARD;HARD_TO_VALIDATE	AB=0.57;AC=3;AF=0.75;AN=4;DB=0;DP=573;Dels=0.00;HRun=1;MQ=54.60;MQ0=530;QD=0.60;SB=-78.54;set=filteredInBoth	GT:DP:GQ	./.	1/1:2:6.00	0/1:21:99.00
-1	716461	.	A	T	15831.28	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.39;AC=3;AF=0.50;AN=6;DB=0;DP=4568;Dels=0.00;HRun=1;MQ=25.76;MQ0=2971;QD=3.47;SB=-4224.71;set=filteredInBoth	GT:DP:GQ	0/1:198:99.00	0/1:47:99.00	0/1:355:99.00
-1	716471	.	A	T	63.29	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.84;AC=2;AF=0.33;AN=6;DB=0;DP=1752;Dels=0.00;HRun=1;MQ=26.79;MQ0=1662;QD=0.05;SB=-6.09;set=filteredInBoth	GT:DP:GQ	0/1:2:22.36	0/0:5:15.04	0/1:31:67.13
-1	716513	.	G	T	355.52	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.87;AC=1;AF=0.17;AN=6;DB=0;DP=432;Dels=0.00;HRun=1;MQ=67.96;MQ0=365;QD=1.74;SB=-22.88;set=filteredInBoth	GT:DP:GQ	0/0:5:15.03	0/0:9:26.77	0/1:37:99.00
-1	716514	.	C	A	297.66	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.90;AC=1;AF=0.17;AN=6;DB=0;DP=384;Dels=0.00;HRun=1;MQ=72.11;MQ0=313;QD=1.60;SB=-30.31;set=filteredInBoth	GT:DP:GQ	0/0:6:9.42	0/0:11:24.43	1/0:38:99.00
-1	716758	.	A	G	95.95	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.51;AC=2;AF=0.33;AN=6;DB=0;DP=484;Dels=0.00;HRun=1;MQ=36.47;MQ0=449;QD=0.26;SB=-91.54;set=filteredInBoth	GT:DP:GQ	0/0:1:3.01	0/1:4:18.64	0/1:17:99.00
-1	723728	.	A	G	314.08	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.56;AC=2;AF=0.33;AN=6;DB=0;DP=87;Dels=0.00;HRun=2;MQ=78.26;MQ0=55;QD=4.69;SB=-169.71;set=filteredInBoth	GT:DP:GQ	0/0:3:8.98	0/1:5:19.54	0/1:16:99.00
-1	726158	.	A	T	365.11	0	AB=0.53;AC=2;AF=0.33;AN=6;DB=0;DP=73;Dels=0.01;HRun=6;MQ=84.48;MQ0=0;QD=8.11;SB=-183.35;set=Intersection	GT:DP:GQ	0/1:17:99.00	0/1:23:99.00	0/0:26:75.17
diff --git a/testdata/tribble/trio.vcf.idx b/testdata/tribble/trio.vcf.idx
deleted file mode 100644
index b3aaaff..0000000
Binary files a/testdata/tribble/trio.vcf.idx and /dev/null differ
diff --git a/testdata/tribble/trioDup.vcf b/testdata/tribble/trioDup.vcf
deleted file mode 100644
index 39e4b90..0000000
--- a/testdata/tribble/trioDup.vcf
+++ /dev/null
@@ -1,75 +0,0 @@
-##fileformat=VCFv3.3
-##FILTER=GATK_STANDARD,"AB > 0.75 || DP > 360 || MQ0 > 40 || SB > -0.10,AB > 0.75 || DP > 360 || MQ0 > 40 || SB > -0.10,AB > 0.75 || DP > 360 || MQ0 > 40 || SB > -0.10"
-##FILTER=HARD_TO_VALIDATE,"MQ0 >= 4 && ((MQ0 / (1.0 * DP)) > 0.1),MQ0 >= 4 && ((MQ0 / (1.0 * DP)) > 0.1),MQ0 >= 4 && ((MQ0 / (1.0 * DP)) > 0.1)"
-##FILTER=SnpCluster,"SNPs found in clusters,SNPs found in clusters,SNPs found in clusters"
-##FILTER=match-0,"(set eq 'Intersection' || set eq 'filteredInBoth')"
-##FORMAT=DP,1,Integer,"Read Depth (only filtered reads used for calling)"
-##FORMAT=GQ,1,Integer,"Genotype Quality"
-##FORMAT=GT,1,String,"Genotype"
-##INFO=AB,1,Float,"Allele Balance for hets (ref/(ref+alt))"
-##INFO=AC,1,Integer,"Allele count in genotypes, for each ALT allele, in the same order as listed"
-##INFO=AF,1,Float,"Allele Frequency"
-##INFO=AN,1,Integer,"Total number of alleles in called genotypes"
-##INFO=DB,1,Integer,"dbSNP membership"
-##INFO=DP,1,Integer,"Total Depth"
-##INFO=Dels,1,Float,"Fraction of Reads Containing Spanning Deletions"
-##INFO=HRun,1,Integer,"Largest Contiguous Homopolymer Run of Variant Allele In Either Direction"
-##INFO=MQ,1,Float,"RMS Mapping Quality"
-##INFO=MQ0,1,Integer,"Total Mapping Quality Zero Reads"
-##INFO=QD,1,Float,"Variant Confidence/Quality by Depth"
-##INFO=SB,1,Float,"Strand Bias"
-##NA19238=../depthFilter/filtered.NA19238.chromX.SLX.maq.SRP000032.2009_07.glf
-##NA19239=../depthFilter/filtered.NA19239.chromX.SLX.maq.SRP000032.2009_11.glf
-##NA19240=../merged/NA19240.chromX.merged.glf
-##UG_assume_single_sample_reads=null
-##UG_base_model=EMPIRICAL
-##UG_genotype=false
-##UG_genotype_model=JOINT_ESTIMATE
-##UG_heterozygosity=0.0010
-##UG_include_experimental_annotations=false
-##UG_max_deletion_fraction=0.05
-##UG_max_mismatches_in_40bp_window=3
-##UG_min_base_quality_score=10
-##UG_min_confidence_threshold=50.0
-##UG_min_mapping_quality_score=10
-##UG_noSLOD=false
-##UG_output_all_callable_bases=false
-##UG_platform=SOLID
-##UG_poolSize=0
-##UG_use_reads_with_bad_mates=false
-##maxTotalDepth=1000
-##minMapQuality=30
-##minPosterior=0.9990
-##minTotalDepth=0
-##program=glfTrio
-##reference=human_b36_both.fasta
-##source=UnifiedGenotyper
-##source=VariantFiltration
-##source=VariantSelect
-##versionDate=Sun Sep 20 17:38:54 2009
-#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	NA19238	NA19239	NA19240	
-1	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-2	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-3	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-4	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-4	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-5	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-6	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-7	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-8	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-9	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-10	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-11	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-12	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-13	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-14	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-15	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-16	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-17	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-18	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-19	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-20	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-21	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-22	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-X	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
-Y	327	.	T	C	666.18	GATK_STANDARD;HARD_TO_VALIDATE	AB=0.74;AC=3;AF=0.50;AN=6;DB=0;DP=936;Dels=0.00;HRun=3;MQ=34.66;MQ0=728;QD=0.71;SB=-268.74;set=filteredInBoth	GT:DP:GQ	1/0:10:62.65	1/0:37:99.00	1/0:53:99.00
diff --git a/testdata/tribble/vcfexample.vcf b/testdata/tribble/vcfexample.vcf
deleted file mode 100644
index 5d482c9..0000000
--- a/testdata/tribble/vcfexample.vcf
+++ /dev/null
@@ -1,12 +0,0 @@
-##format=VCRv3.2
-##fileDate=20090805
-##source=myImputationProgramV3.1
-##reference=1000GenomesPilot-NCBI36
-##phasing=partial
-#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	NA00001	NA00002	NA00003
-20	14370	rs6054257	G	A	29	0	NS=58;DP=258;AF=0.786	GT:GQ:DP:HQ	0|0:48:1:51,51	1|0:48:8:51,51	1/1:43:5
-20	15330	.	T	A	3	q10	NS=55;DP=202;AF=0.024	GT:GQ:DP:HQ	0|0:49:3:58,50	0|1:3:5:65,3	0/0:41:3
-20	111096	rs6040355	A	G	67	0	NS=55;DP=276;AF=0.421,0.579;AA=T	GT:GQ:DP:HQ	1|0:21:6:23,27	0|1:2:0:18,2	0/0:35:4
-20	120237	.	T	.	47	0	NS=57;DP=257;AA=T	GT:GQ:DP:HQ	0|0:54:7:56,60	0|0:48:4:51,51	0/0:61:2
-20	123456	microsat1	G	D4	50	0	NS=55;DP=250;AA=G	GT:GQ:DP	0/1:35:4	0/1:17:2	1/1:40:3
-20	123457	microsat1	G	IGA	50	0	NS=55;DP=250;AA=G	GT:GQ:DP	0/1:35:4	0/1:17:2	1/1:40:3
diff --git a/testdata/tribble/vcfexample.vcf.gz b/testdata/tribble/vcfexample.vcf.gz
deleted file mode 100644
index 9d2b1d0..0000000
Binary files a/testdata/tribble/vcfexample.vcf.gz and /dev/null differ
diff --git a/testdata/tribble/vcfexample.vcf.gz.tbi b/testdata/tribble/vcfexample.vcf.gz.tbi
deleted file mode 100644
index 194073c..0000000
Binary files a/testdata/tribble/vcfexample.vcf.gz.tbi and /dev/null differ
diff --git a/testdata/variant/HiSeq.10000.vcf b/testdata/variant/HiSeq.10000.vcf
deleted file mode 100644
index a304ba2..0000000
--- a/testdata/variant/HiSeq.10000.vcf
+++ /dev/null
@@ -1,10001 +0,0 @@
-##fileformat=VCFv4.0
-##FILTER=<ID=ABFilter,Description="AB  0.75 && DP  40">
-##FILTER=<ID=DPFilter,Description="DP  120 || SB  -0.10">
-##FILTER=<ID=FDRtranche0.00to0.10,Description="FDR tranche level at qual 0.06">
-##FILTER=<ID=FDRtranche0.10to1.00,Description="FDR tranche level at qual 0.03">
-##FILTER=<ID=FDRtranche1.00to2.00,Description="FDR tranche level at qual 0.02">
-##FILTER=<ID=FDRtranche2.00to10.00+,Description="FDR tranche level at qual > 0.06">
-##FILTER=<ID=FDRtranche2.00to10.00,Description="FDR tranche level at qual unknown">
-##FILTER=<ID=HARD_TO_VALIDATE,Description="MQ0 = 4 && ((MQ0 / (1.0 * DP))  0.1)">
-##FILTER=<ID=Indel,Description="Overlaps a user-input mask">
-##FILTER=<ID=LowQual,Description="Low quality">
-##FILTER=<ID=LowQual,Description="QUAL  50.0">
-##FILTER=<ID=SnpCluster,Description="SNPs found in clusters">
-##FORMAT=<ID=AD,Number=.,Type=Integer,Description="Allelic depths for the ref and alt alleles in the order listed">
-##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Read Depth (only filtered reads used for calling)">
-##FORMAT=<ID=GL,Number=3,Type=Float,Description="Log-scaled likelihoods for AA,AB,BB genotypes where A=ref and B=alt; not applicable if site is not biallelic">
-##FORMAT=<ID=GQ,Number=1,Type=Float,Description="Genotype Quality">
-##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
-##INFO=<ID=AC,Number=.,Type=Integer,Description="Allele count in genotypes, for each ALT allele, in the same order as listed">
-##INFO=<ID=AF,Number=.,Type=Float,Description="Allele Frequency, for each ALT allele, in the same order as listed">
-##INFO=<ID=AN,Number=1,Type=Integer,Description="Total number of alleles in called genotypes">
-##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP Membership">
-##INFO=<ID=DP,Number=1,Type=Integer,Description="Total Depth">
-##INFO=<ID=Dels,Number=1,Type=Float,Description="Fraction of Reads Containing Spanning Deletions">
-##INFO=<ID=HRun,Number=1,Type=Integer,Description="Largest Contiguous Homopolymer Run of Variant Allele In Either Direction">
-##INFO=<ID=HaplotypeScore,Number=1,Type=Float,Description="Consistency of the site with two (and only two) segregating haplotypes">
-##INFO=<ID=MQ,Number=1,Type=Float,Description="RMS Mapping Quality">
-##INFO=<ID=MQ0,Number=1,Type=Integer,Description="Total Mapping Quality Zero Reads">
-##INFO=<ID=OQ,Number=1,Type=Float,Description="The original variant quality score">
-##INFO=<ID=QD,Number=1,Type=Float,Description="Variant Confidence/Quality by Depth">
-##INFO=<ID=SB,Number=1,Type=Float,Description="Strand Bias">
-##UnifiedGenotyper="analysis_type=UnifiedGenotyper input_file=[/humgen/1kg/analysis/bamsForDataProcessingPapers/scriptsToMakeBams/Q-2970 at gsa2-1-temp-23/NA12878.HiSeq.WGS.bwa.cleaned.recal.bam, /humgen/1kg/analysis/bamsForDataProcessingPapers/scriptsToMakeBams/Q-2970 at gsa2-1-temp-24/NA12878.HiSeq.WGS.bwa.cleaned.recal.bam, /humgen/1kg/analysis/bamsForDataProcessingPapers/scriptsToMakeBams/Q-2970 at gsa2-1-temp-5/NA12878.HiSeq.WGS.bwa.cleaned.recal.bam, /humgen/1kg/analysis/bamsForDataProcessi [...]
-##VariantFiltration="analysis_type=VariantFiltration input_file=[] read_buffer_size=null read_filter=[] intervals=null excludeIntervals=[chrM, chrY] reference_sequence=/seq/references/Homo_sapiens_assembly18/v0/Homo_sapiens_assembly18.fasta rodBind=[variant,VCF,wgs.v9/HiSeq.WGS.cleaned.ug.snpfiltered.vcf, mask,Bed,wgs.v9/HiSeq.WGS.cleaned.indels.10.mask] rodToIntervalTrackName=null BTI_merge_rule=UNION DBSNP=null hapmap=null hapmap_chip=null out=wgs.v9/HiSeq.WGS.cleaned.ug.snpfiltered.in [...]
-##VariantFiltration="analysis_type=VariantFiltration input_file=[] read_buffer_size=null read_filter=[] intervals=null excludeIntervals=[chrM, chrY] reference_sequence=/seq/references/Homo_sapiens_assembly18/v0/Homo_sapiens_assembly18.fasta rodBind=[variant,VCF,wgs.v9/HiSeq.WGS.cleaned.ug.vcf] rodToIntervalTrackName=null BTI_merge_rule=UNION DBSNP=null hapmap=null hapmap_chip=null out=wgs.v9/HiSeq.WGS.cleaned.ug.snpfiltered.vcf err=null outerr=null filterZeroMappingQualityReads=false dow [...]
-##source=VariantOptimizer
-#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	NA12878	
-chr1	109	.	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=1019;Dels=0.00;HRun=0;HaplotypeScore=686.65;MQ=19.20;MQ0=288;OQ=2175.54;QD=2.13;SB=-1042.18	GT:AD:DP:GL:GQ	0/1:610,327:308:-316.30,-95.47,-803.03:99
-chr1	147	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=348;Dels=0.01;HRun=2;HaplotypeScore=268.66;MQ=20.23;MQ0=105;OQ=196.24;QD=0.56;SB=-76.48	GT:AD:DP:GL:GQ	0/1:294,49:118:-57.87,-34.96,-338.46:99
-chr1	177	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=432;Dels=0.02;HRun=2;HaplotypeScore=404.17;MQ=17.76;MQ0=153;OQ=697.20;QD=1.61;SB=-140.54	GT:AD:DP:GL:GQ	0/1:283,140:122:-108.58,-35.57,-292.84:99
-chr1	180	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=630;Dels=0.01;HRun=2;HaplotypeScore=495.41;MQ=14.22;MQ0=327;OQ=885.33;QD=1.41;SB=-412.44	GT:AD:DP:GL:GQ	0/1:466,154:104:-122.27,-30.46,-246.17:99
-chr1	234	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=336;Dels=0.00;HRun=1;HaplotypeScore=423.95;MQ=19.45;MQ0=111;OQ=596.60;QD=1.78;SB=-230.12	GT:AD:DP:GL:GQ	0/1:267,67:106:-94.87,-31.93,-297.68:99
-chr1	235	.	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=326;Dels=0.00;HRun=2;HaplotypeScore=391.04;MQ=19.68;MQ0=106;OQ=580.03;QD=1.78;SB=-219.50	GT:AD:DP:GL:GQ	0/1:274,47:105:-99.60,-38.31,-293.27:99
-chr1	250	.	A	C	22.88	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=182;Dels=0.01;HRun=3;HaplotypeScore=244.83;MQ=21.91;MQ0=52;QD=0.13;SB=-23.67	GT:AD:DP:GL:GQ	0/1:148,33:70:-26.66,-21.09,-215.78:55.69
-chr1	291	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=135;Dels=0.00;HRun=0;HaplotypeScore=284.50;MQ=20.72;MQ0=39;OQ=529.94;QD=3.93;SB=-160.31	GT:AD:DP:GL:GQ	0/1:87,43:32:-69.55,-13.28,-54.44:99
-chr1	297	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=123;Dels=0.00;HRun=0;HaplotypeScore=214.52;MQ=20.93;MQ0=36;OQ=101.21;QD=0.82;SB=-38.97	GT:AD:DP:GL:GQ	0/1:98,15:30:-33.20,-19.79,-87.91:99
-chr1	309	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=118;Dels=0.00;HRun=0;HaplotypeScore=153.70;MQ=21.12;MQ0=35;OQ=53.98;QD=0.46;SB=-50.01	GT:AD:DP:GL:GQ	0/1:103,9:32:-18.33,-9.64,-96.32:86.82
-chr1	321	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=203;Dels=0.00;HRun=0;HaplotypeScore=612.30;MQ=19.11;MQ0=29;OQ=136.39;QD=0.67;SB=-61.25	GT:AD:DP:GL:GQ	0/1:171,23:33:-33.14,-16.22,-92.98:99
-chr1	327	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=207;Dels=0.00;HRun=3;HaplotypeScore=227.75;MQ=19.74;MQ0=24;OQ=143.34;QD=0.69;SB=-63.56	GT:AD:DP:GL:GQ	0/1:183,21:38:-34.61,-16.99,-113.13:99
-chr1	352	.	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=325;Dels=0.00;HRun=1;HaplotypeScore=437.89;MQ=18.90;MQ0=142;OQ=774.23;QD=2.38;SB=-355.54	GT:AD:DP:GL:GQ	0/1:238,84:81:-104.82,-24.11,-183.81:99
-chr1	354	.	C	A	24.89	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=486;Dels=0.01;HRun=1;HaplotypeScore=281.11;MQ=16.12;MQ0=261;QD=0.05;SB=17.54	GT:AD:DP:GL:GQ	0/1:459,24:90:-32.28,-26.51,-269.47:57.71
-chr1	469	.	C	A	22.04	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=57;Dels=0.00;HRun=0;HaplotypeScore=82.51;MQ=26.50;MQ0=12;QD=0.39;SB=-7.00	GT:AD:DP:GL:GQ	0/1:34,21:20:-11.52,-6.03,-45.07:54.85
-chr1	664	.	C	G	30.66	PASS	AC=2;AF=1.00;AN=2;DP=2;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=29.00;MQ0=0;OQ=50.85;QD=25.42;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,2:2:-8.49,-0.60,-0.00:6.02
-chr1	666	.	C	G	10.99	LowQual	AC=1;AF=0.50;AN=2;DP=1;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=29.00;MQ0=0;QD=10.99;SB=-10.00	GT:AD:DP:GL:GQ	0/1:0,1:1:-4.35,-0.30,-0.00:1.76
-chr1	2646	rs62635284	G	A	0.15	PASS	AC=2;AF=1.00;AN=2;DB;DP=128;Dels=0.00;HRun=0;HaplotypeScore=9.27;MQ=6.23;MQ0=107;OQ=89.13;QD=0.70;SB=-10.00	GT:AD:DP:GL:GQ	1/1:53,75:3:-12.40,-0.90,-0.00:9.03
-chr1	2979	rs62635286	T	G	83.67	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=11.99;MQ0=41;OQ=300.29;QD=4.77;SB=-10.00	GT:AD:DP:GL:GQ	1/1:31,32:9:-33.61,-2.71,-0.00:27.09
-chr1	2981	rs62028691	A	G	14.69	PASS	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=11.89;MQ0=42;OQ=285.31;QD=4.46;SB=-10.00	GT:AD:DP:GL:GQ	1/1:31,33:9:-32.12,-2.71,-0.00:27.08
-chr1	3759	.	C	A	0.19	PASS	AC=1;AF=0.50;AN=2;DP=146;Dels=0.00;HRun=0;HaplotypeScore=1.16;MQ=9.71;MQ0=116;OQ=458.45;QD=3.14;SB=-211.61	GT:AD:DP:GL:GQ	0/1:106,40:25:-56.66,-7.53,-33.77:99
-chr1	4536	rs11582131	G	C	0.18	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=0;HaplotypeScore=9.63;MQ=12.37;MQ0=52;OQ=335.66;QD=4.48;SB=8.06	GT:AD:DP:GL:GQ	0/1:42,33:16:-41.67,-4.82,-26.29:99
-chr1	4540	.	G	A	47.71	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=71;Dels=0.00;HRun=2;HaplotypeScore=11.12;MQ=11.52;MQ0=49;QD=0.67;SB=8.05	GT:AD:DP:GL:GQ	0/1:66,5:13:-11.97,-3.92,-35.35:80.54
-chr1	4562	rs11490464	C	G	0.14	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=1;HaplotypeScore=2.62;MQ=11.28;MQ0=37;OQ=136.40;QD=2.44;SB=-10.00	GT:AD:DP:GL:GQ	0/1:26,30:9:-19.64,-2.72,-14.87:99
-chr1	4770	rs6682375	A	G	0.32	PASS	AC=2;AF=1.00;AN=2;DB;DP=121;Dels=0.00;HRun=1;HaplotypeScore=1.93;MQ=26.23;MQ0=31;OQ=2992.25;QD=24.73;SB=-1410.84	GT:AD:DP:GL:GQ	1/1:9,111:84:-306.27,-28.58,-3.46:99
-chr1	4793	rs6682385	A	G	0.15	PASS	AC=2;AF=1.00;AN=2;DB;DP=119;Dels=0.00;HRun=0;HaplotypeScore=8.98;MQ=29.61;MQ0=5;OQ=3517.41;QD=29.56;SB=-1722.01	GT:AD:DP:GL:GQ	1/1:4,115:109:-350.74,-32.88,-0.10:99
-chr1	5074	rs11586607	T	G	0.01	FDRtranche2.00to10.00	AC=2;AF=1.00;AN=2;DB;DP=126;Dels=0.00;HRun=1;HaplotypeScore=24.34;MQ=21.42;MQ0=68;OQ=1230.02;QD=9.76;SB=-234.94	GT:AD:DP:GL:GQ	1/1:29,97:39:-130.41,-11.75,-3.82:79.31
-chr1	5137	rs62636497	A	T	140.49	PASS	AC=2;AF=1.00;AN=2;DB;DP=82;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=21.69;MQ0=25;OQ=1453.92;QD=17.73;SB=-222.33	GT:AD:DP:GL:GQ	1/1:0,74:39:-148.99,-11.75,-0.01:99
-chr1	5966	.	T	G	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DP=129;Dels=0.18;HRun=5;HaplotypeScore=140.84;MQ=21.40;MQ0=8;OQ=1764.68;QD=13.68;SB=-234.42	GT:AD:DP:GL:GQ	1/1:0,106:53:-180.07,-15.66,-0.02:99
-chr1	6092	.	C	A	11.16	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=136;Dels=0.00;HRun=0;HaplotypeScore=9.08;MQ=27.90;MQ0=10;QD=0.08;SB=14.05	GT:AD:DP:GL:GQ	0/1:125,11:94:-32.68,-28.32,-307.61:43.65
-chr1	6120	rs11489794	G	C	0.46	PASS	AC=1;AF=0.50;AN=2;DB;DP=90;Dels=0.00;HRun=0;HaplotypeScore=3.83;MQ=27.31;MQ0=11;OQ=181.15;QD=2.01;SB=8.06	GT:AD:DP:GL:GQ	0/1:73,17:66:-41.29,-19.89,-251.91:99
-chr1	6151	rs62028673	C	G	0.34	PASS	AC=1;AF=0.50;AN=2;DB;DP=34;Dels=0.00;HRun=0;HaplotypeScore=0.10;MQ=22.13;MQ0=10;OQ=58.79;QD=1.73;SB=-6.99	GT:AD:DP:GL:GQ	0/1:24,10:14:-13.38,-4.22,-45.26:91.62
-chr1	6241	rs17041382	T	C	5.47	PASS	AC=1;AF=0.50;AN=2;DB;DP=138;Dels=0.00;HRun=0;HaplotypeScore=4.98;MQ=14.62;MQ0=74;OQ=755.36;QD=5.47;SB=-258.37	GT:AD:DP:GL:GQ	0/1:39,99:33:-88.77,-9.95,-20.05:99
-chr1	6358	rs3210724	G	C	0.04	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DB;DP=174;Dels=0.00;HRun=0;HaplotypeScore=19.20;MQ=25.41;MQ0=15;OQ=678.86;QD=3.90;SB=-150.77	GT:AD:DP:GL:GQ	0/1:131,42:113:-105.24,-34.07,-360.44:99
-chr1	6360	rs7359297	A	G	49.26	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DB;DP=171;Dels=0.00;HRun=2;HaplotypeScore=19.20;MQ=25.54;MQ0=15;QD=0.29;SB=20.10	GT:AD:DP:GL:GQ	0/1:155,16:111:-41.64,-33.43,-398.12:82.10
-chr1	6397	rs15642	C	T	157.37	PASS	AC=1;AF=0.50;AN=2;DB;DP=108;Dels=0.00;HRun=0;HaplotypeScore=0.97;MQ=21.39;MQ0=24;OQ=850.53;QD=7.88;SB=-122.64	GT:AD:DP:GL:GQ	0/1:45,63:33:-98.28,-9.94,-33.57:99
-chr1	7270	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=153;Dels=0.00;HRun=0;HaplotypeScore=18.12;MQ=8.37;MQ0=128;OQ=66.01;QD=0.43;SB=-47.55	GT:AD:DP:GL:GQ	0/1:137,16:8:-12.30,-2.42,-14.38:98.84
-chr1	7558	rs7357853	G	A	28.66	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DB;DP=123;Dels=0.00;HRun=0;HaplotypeScore=2.85;MQ=11.88;MQ0=88;QD=0.23;SB=-10.00	GT:AD:DP:GL:GQ	0/1:113,10:21:-12.48,-6.33,-62.63:61.49
-chr1	7609	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=120;Dels=0.00;HRun=1;HaplotypeScore=4.53;MQ=19.87;MQ0=60;OQ=69.47;QD=0.58;SB=-10.00	GT:AD:DP:GL:GQ	0/1:98,22:48:-24.69,-14.46,-166.38:99
-chr1	7766	.	C	T	24.46	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=69;Dels=0.00;HRun=0;HaplotypeScore=9.88;MQ=9.94;MQ0=60;QD=0.35;SB=-10.00	GT:AD:DP:GL:GQ	0/1:66,3:7:-7.84,-2.11,-15.08:57.28
-chr1	9089	rs28609851	T	A	1.71	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=1.90;MQ=14.01;MQ0=34;OQ=172.68;QD=2.93;SB=-37.66	GT:AD:DP:GL:GQ	0/1:50,9:19:-26.28,-5.72,-45.27:99
-chr1	9185	rs2974813	C	T	45.14	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DB;DP=69;Dels=0.00;HRun=0;HaplotypeScore=-0.06;MQ=3.92;MQ0=67;QD=0.65;SB=-47.56	GT:AD:DP:GL:GQ	1/1:67,2:2:-7.92,-0.60,-0.00:6.02
-chr1	9721	rs12354145	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=128;Dels=0.00;HRun=2;HaplotypeScore=26.09;MQ=12.03;MQ0=77;OQ=197.90;QD=1.55;SB=-10.00	GT:AD:DP:GL:GQ	0/1:97,31:18:-28.50,-5.42,-36.05:99
-chr1	9805	.	G	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=195;Dels=0.00;HRun=1;HaplotypeScore=1.10;MQ=10.83;MQ0=134;OQ=142.73;QD=0.73;SB=-10.00	GT:AD:DP:GL:GQ	0/1:171,24:24:-24.81,-7.25,-68.77:99
-chr1	9993	rs7354882	G	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DB;DP=155;Dels=0.00;HRun=0;HaplotypeScore=22.48;MQ=21.20;MQ0=19;OQ=727.76;QD=4.70;SB=-285.16	GT:AD:DP:GL:GQ	0/1:126,29:124:-113.46,-37.39,-308.40:99
-chr1	10108	rs6682921	G	A	129.70	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=249;Dels=0.00;HRun=1;HaplotypeScore=98.13;MQ=8.71;MQ0=185;QD=0.52;SB=-64.03	GT:AD:DP:GL:GQ	0/1:175,74:25:-23.78,-7.53,-70.54:99
-chr1	10113	rs11490226	T	C	60.45	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=252;Dels=0.00;HRun=0;HaplotypeScore=99.00;MQ=8.29;MQ0=191;QD=0.24;SB=-6.56	GT:AD:DP:GL:GQ	0/1:200,52:22:-15.96,-6.63,-68.61:93.28
-chr1	10117	.	G	A	27.78	DPFilter;HARD_TO_VALIDATE;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=251;Dels=0.00;HRun=0;HaplotypeScore=92.18;MQ=8.29;MQ0=191;QD=0.11;SB=-12.58	GT:AD:DP:GL:GQ	0/1:210,41:21:-12.39,-6.33,-58.67:60.61
-chr1	10375	rs6683179	G	T	0.05	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DB;DP=229;Dels=0.00;HRun=0;HaplotypeScore=2.35;MQ=7.78;MQ0=173;OQ=50.55;QD=0.22;SB=-10.00	GT:AD:DP:GL:GQ	0/1:152,76:16:-13.16,-4.82,-44.89:83.39
-chr1	10410	rs11489908	A	G	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DB;DP=236;Dels=0.00;HRun=2;HaplotypeScore=3.67;MQ=7.06;MQ0=196;OQ=84.39;QD=0.36;SB=-10.00	GT:AD:DP:GL:GQ	0/1:188,48:18:-17.15,-5.42,-52.83:99
-chr1	16862	rs376349	A	G	0.50	PASS	AC=2;AF=1.00;AN=2;DB;DP=16;Dels=0.00;HRun=2;HaplotypeScore=2.47;MQ=20.73;MQ0=3;OQ=399.27;QD=24.95;SB=-188.41	GT:AD:DP:GL:GQ	1/1:2,14:12:-43.52,-3.61,-0.00:36.11
-chr1	18110	rs4413987	G	A	0.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=114;Dels=0.00;HRun=0;HaplotypeScore=6.99;MQ=6.98;MQ0=101;OQ=80.12;QD=0.70;SB=-10.00	GT:AD:DP:GL:GQ	0/1:95,19:5:-12.80,-1.51,-7.39:58.87
-chr1	18357	.	T	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=101;Dels=0.00;HRun=0;HaplotypeScore=8.76;MQ=5.01;MQ0=96;OQ=60.18;QD=0.60;SB=-6.99	GT:AD:DP:GL:GQ	0/1:80,21:4:-10.51,-1.20,-3.97:27.63
-chr1	18421	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=78;Dels=0.00;HRun=0;HaplotypeScore=23.14;MQ=14.44;MQ0=48;OQ=339.38;QD=4.35;SB=-90.89	GT:AD:DP:GL:GQ	0/1:55,23:25:-44.76,-7.53,-46.87:99
-chr1	18426	rs4099234	A	G	0.05	FDRtranche0.10to1.00	AC=2;AF=1.00;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=22.14;MQ=14.77;MQ0=46;OQ=857.23;QD=11.13;SB=-429.56	GT:AD:DP:GL:GQ	1/1:24,53:25:-89.32,-7.53,-0.01:75.22
-chr1	18451	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=57;Dels=0.00;HRun=15;HaplotypeScore=19.76;MQ=19.64;MQ0=16;OQ=152.23;QD=2.67;SB=-85.40	GT:AD:DP:GL:GQ	0/1:45,12:33:-28.45,-9.95,-82.12:99
-chr1	18454	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=59;Dels=0.00;HRun=0;HaplotypeScore=47.13;MQ=19.20;MQ0=19;OQ=58.45;QD=0.99;SB=-20.71	GT:AD:DP:GL:GQ	0/1:53,6:35:-19.67,-10.55,-115.15:91.28
-chr1	18526	rs2418705	T	A	37.69	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=2.43;MQ=4.16;MQ0=59;QD=0.62;SB=-10.00	GT:AD:DP:GL:GQ	1/1:52,9:2:-7.18,-0.60,-0.00:6.02
-chr1	18698	rs3871714	A	G	0.86	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=1;HaplotypeScore=0.89;MQ=9.06;MQ0=38;OQ=98.37;QD=2.19;SB=-10.00	GT:AD:DP:GL:GQ	1/1:27,18:4:-13.37,-1.21,-0.00:12.03
-chr1	18726	rs16924801	C	A	45.81	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DB;DP=36;Dels=0.00;HRun=2;HaplotypeScore=3.57;MQ=10.40;MQ0=25;QD=1.27;SB=-10.00	GT:AD:DP:GL:GQ	1/1:31,5:2:-7.99,-0.60,-0.00:6.02
-chr1	20391	rs4248192	C	T	0.40	PASS	AC=1;AF=0.50;AN=2;DB;DP=106;Dels=0.00;HRun=0;HaplotypeScore=0.92;MQ=17.17;MQ0=74;OQ=114.21;QD=1.08;SB=-10.00	GT:AD:DP:GL:GQ	0/1:95,11:32:-24.34,-9.64,-88.28:99
-chr1	20411	rs62028215	T	G	8.08	PASS	AC=1;AF=0.50;AN=2;DB;DP=109;Dels=0.00;HRun=0;HaplotypeScore=3.84;MQ=18.51;MQ0=71;OQ=573.84;QD=5.26;SB=-10.00	GT:AD:DP:GL:GQ	0/1:56,53:38:-72.12,-11.45,-46.57:99
-chr1	20723	rs28673882	G	C	0.08	PASS	AC=1;AF=0.50;AN=2;DB;DP=113;Dels=0.00;HRun=0;HaplotypeScore=9.28;MQ=29.99;MQ0=37;OQ=163.32;QD=1.45;SB=40.84	GT:AD:DP:GL:GQ	0/1:100,13:69:-40.42,-20.80,-251.48:99
-chr1	20786	rs806731	G	T	139.58	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=1.96;MQ=34.31;MQ0=5;OQ=1407.60;QD=31.99;SB=-624.57	GT:AD:DP:GL:GQ	1/1:0,44:38:-144.35,-11.44,-0.01:99
-chr1	21158	rs806729	A	C	233.61	PASS	AC=2;AF=1.00;AN=2;DB;DP=9;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=18.41;MQ0=5;OQ=71.14;QD=7.90;SB=-10.00	GT:AD:DP:GL:GQ	1/1:6,3:3:-10.60,-0.90,-0.00:9.03
-chr1	30569	rs62101646	G	A	24.23	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=1.21;MQ=13.59;MQ0=55;QD=0.37;SB=-0.99	GT:AD:DP:GL:GQ	0/1:53,12:8:-8.12,-2.41,-18.79:57.05
-chr1	30757	rs56954914	G	A	38.24	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DB;DP=86;Dels=0.00;HRun=0;HaplotypeScore=2.00;MQ=7.79;MQ0=81;QD=0.44;SB=-10.00	GT:AD:DP:GL:GQ	0/1:56,30:4:-8.31,-1.20,-6.94:57.33
-chr1	30916	.	C	T	44.25	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DP=43;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=6.25;MQ0=41;QD=1.03;SB=-10.00	GT:AD:DP:GL:GQ	1/1:40,3:2:-7.83,-0.60,-0.00:6.02
-chr1	41536	rs2531251	T	C	28.51	LowQual	AC=1;AF=0.50;AN=2;DB;DP=6;Dels=0.00;HRun=2;HaplotypeScore=0.95;MQ=19.20;MQ0=3;QD=4.75;SB=-10.00	GT:AD:DP:GL:GQ	0/1:4,2:3:-7.04,-0.90,-3.46:25.52
-chr1	41761	.	C	A	0.43	PASS	AC=1;AF=0.50;AN=2;DP=31;Dels=0.00;HRun=0;HaplotypeScore=4.86;MQ=27.62;MQ0=8;OQ=172.06;QD=5.55;SB=14.07	GT:AD:DP:GL:GQ	0/1:17,14:19:-26.21,-5.72,-39.58:99
-chr1	41791	.	G	A	3.24	PASS	AC=1;AF=0.50;AN=2;DP=45;Dels=0.00;HRun=1;HaplotypeScore=1.83;MQ=30.13;MQ0=12;OQ=368.88;QD=8.20;SB=14.07	GT:AD:DP:GL:GQ	0/1:28,17:31:-49.51,-9.34,-69.71:99
-chr1	42101	rs2691277	T	G	379.72	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=32.14;MQ0=8;OQ=1117.45;QD=27.25;SB=-498.06	GT:AD:DP:GL:GQ	1/1:0,41:32:-115.34,-9.64,-0.01:96.29
-chr1	44243	rs2691279	T	C	13.38	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=44.42;MQ0=2;QD=0.32;SB=29.13	GT:AD:DP:GL:GQ	0/1:35,7:40:-16.65,-12.05,-143.10:46.01
-chr1	44449	.	T	C	10.02	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=40;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=30.96;MQ0=0;QD=0.25;SB=38.15	GT:AD:DP:GL:GQ	0/1:31,9:34:-14.48,-10.24,-121.45:42.40
-chr1	44539	rs2462492	C	T	2.85	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=48.14;MQ0=0;OQ=219.90;QD=4.40;SB=-111.03	GT:AD:DP:GL:GQ	0/1:40,10:50:-40.33,-15.06,-146.68:99
-chr1	44571	.	G	C	349.91	SnpCluster	AC=1;AF=0.50;AN=2;DP=61;Dels=0.00;HRun=0;HaplotypeScore=22.88;MQ=46.02;MQ0=0;QD=5.74;SB=-120.67	GT:AD:DP:GL:GQ	0/1:43,18:49:-53.04,-14.77,-155.67:99
-chr1	44573	.	A	T	77.97	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=64;Dels=0.00;HRun=5;HaplotypeScore=28.86;MQ=46.27;MQ0=0;QD=1.22;SB=18.79	GT:AD:DP:GL:GQ	0/1:55,9:53:-27.05,-15.97,-167.03:99
-chr1	44575	.	T	C	100.77	SnpCluster	AC=1;AF=0.50;AN=2;DP=66;Dels=0.00;HRun=0;HaplotypeScore=36.58;MQ=45.60;MQ0=1;QD=1.53;SB=-17.16	GT:AD:DP:GL:GQ	0/1:57,9:54:-29.63,-16.27,-179.47:99
-chr1	44579	.	C	T	185.88	SnpCluster	AC=1;AF=0.50;AN=2;DP=83;Dels=0.04;HRun=5;HaplotypeScore=85.91;MQ=43.82;MQ0=2;QD=2.24;SB=-100.05	GT:AD:DP:GL:GQ	0/1:66,14:58:-39.34,-17.47,-169.22:99
-chr1	44707	.	G	A	14.95	PASS	AC=1;AF=0.50;AN=2;DP=45;Dels=0.00;HRun=0;HaplotypeScore=1.13;MQ=25.67;MQ0=14;OQ=285.82;QD=6.35;SB=-102.92	GT:AD:DP:GL:GQ	0/1:29,16:26:-39.70,-7.83,-56.06:99
-chr1	44948	.	T	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=51;Dels=0.00;HRun=2;HaplotypeScore=3.69;MQ=36.35;MQ0=4;OQ=152.52;QD=2.99;SB=0.17	GT:AD:DP:GL:GQ	0/1:39,12:36:-29.38,-10.84,-106.91:99
-chr1	45027	rs3091274	C	A	22.40	PASS	AC=2;AF=1.00;AN=2;DB;DP=24;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=21.32;MQ0=9;OQ=324.14;QD=13.51;SB=-88.90	GT:AD:DP:GL:GQ	1/1:0,24:10:-36.00,-3.01,-0.00:30.09
-chr1	45162	rs10399749	C	T	268.24	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=1.16;MQ=27.59;MQ0=3;OQ=1749.04;QD=37.21;SB=-889.19	GT:AD:DP:GL:GQ	1/1:1,46:44:-178.50,-13.25,-0.01:99
-chr1	45189	rs3107975	T	C	528.74	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=30.64;MQ0=0;OQ=1690.04;QD=36.74;SB=-682.96	GT:AD:DP:GL:GQ	1/1:0,46:46:-172.60,-13.85,-0.01:99
-chr1	45408	rs28396308	C	T	25.10	PASS	AC=2;AF=1.00;AN=2;DB;DP=33;Dels=0.00;HRun=1;HaplotypeScore=0.67;MQ=23.65;MQ0=4;OQ=659.03;QD=19.97;SB=-174.67	GT:AD:DP:GL:GQ	1/1:0,33:17:-69.49,-5.12,-0.00:51.17
-chr1	46501	rs2691308	C	T	1.65	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=36.83;MQ0=2;OQ=218.70;QD=3.22;SB=47.17	GT:AD:DP:GL:GQ	0/1:55,13:65:-44.73,-19.58,-190.42:99
-chr1	46662	rs2691309	T	C	45.27	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DB;DP=35;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=41.65;MQ0=3;QD=1.29;SB=26.11	GT:AD:DP:GL:GQ	0/1:27,8:32:-17.45,-9.64,-107.04:78.10
-chr1	46896	rs2691311	T	C	94.73	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=47.00;MQ0=0;OQ=492.79;QD=6.48;SB=-211.35	GT:AD:DP:GL:GQ	0/1:55,21:75:-75.15,-22.59,-219.09:99
-chr1	46927	rs2548884	G	A	0.20	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=1;HaplotypeScore=0.87;MQ=44.33;MQ0=0;OQ=115.48;QD=1.89;SB=-71.32	GT:AD:DP:GL:GQ	0/1:53,8:60:-32.90,-18.07,-195.48:99
-chr1	47021	rs6658003	G	C	0.57	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=8.74;MQ0=44;OQ=79.96;QD=1.45;SB=-46.90	GT:AD:DP:GL:GQ	0/1:36,19:6:-13.09,-1.81,-12.99:99
-chr1	47109	rs2691313	C	G	35.94	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=1.23;MQ=36.99;MQ0=0;OQ=346.71;QD=6.80;SB=47.18	GT:AD:DP:GL:GQ	0/1:38,13:51:-53.32,-15.37,-164.95:99
-chr1	47155	.	C	T	135.45	PASS	AC=1;AF=0.50;AN=2;DP=73;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=34.92;MQ0=10;OQ=1281.86;QD=17.56;SB=-510.08	GT:AD:DP:GL:GQ	0/1:34,39:60:-149.57,-18.10,-69.03:99
-chr1	47239	rs2854673	C	T	32.39	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=43.73;MQ0=3;OQ=244.39;QD=4.61;SB=47.16	GT:AD:DP:GL:GQ	0/1:39,14:49:-42.48,-14.76,-140.73:99
-chr1	47719	.	T	A	0.78	PASS	AC=1;AF=0.50;AN=2;DP=79;Dels=0.00;HRun=2;HaplotypeScore=3.14;MQ=19.08;MQ0=29;OQ=670.79;QD=8.49;SB=-194.63	GT:AD:DP:GL:GQ	0/1:47,32:46:-84.22,-13.86,-89.29:99
-chr1	48074	rs2691335	A	G	2.10	PASS	AC=2;AF=1.00;AN=2;DB;DP=7;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=24.51;MQ0=2;OQ=156.22;QD=22.32;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,7:5:-19.18,-1.51,-0.00:15.05
-chr1	48634	.	T	C	2.39	PASS	AC=1;AF=0.50;AN=2;DP=60;Dels=0.00;HRun=2;HaplotypeScore=1.66;MQ=33.49;MQ0=8;OQ=733.26;QD=12.22;SB=-133.25	GT:AD:DP:GL:GQ	0/1:32,28:50:-91.67,-15.06,-103.96:99
-chr1	50195	rs62637816	T	C	137.58	PASS	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=0.87;MQ=17.45;MQ0=31;OQ=544.88;QD=7.46;SB=-273.42	GT:AD:DP:GL:GQ	0/1:46,26:42:-70.43,-12.65,-88.66:99
-chr1	50884	rs3844232	G	A	43.24	PASS	AC=1;AF=0.50;AN=2;DB;DP=18;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=19.69;MQ0=8;OQ=74.12;QD=4.12;SB=-10.00	GT:AD:DP:GL:GQ	0/1:11,7:6:-12.50,-1.81,-9.19:73.80
-chr1	51151	.	T	A	30.50	LowQual	AC=1;AF=0.50;AN=2;DP=6;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=24.43;MQ0=2;QD=5.08;SB=-37.96	GT:AD:DP:GL:GQ	0/1:4,2:4:-7.54,-1.20,-7.68:63.33
-chr1	51152	.	A	G	76.91	PASS	AC=1;AF=0.50;AN=2;DP=7;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=26.59;MQ0=2;OQ=62.44;QD=8.92;SB=-39.93	GT:AD:DP:GL:GQ	0/1:4,3:5:-11.03,-1.51,-8.33:68.29
-chr1	51305	rs2531261	A	G	318.95	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=33.94;MQ0=3;OQ=1035.37;QD=25.88;SB=-471.86	GT:AD:DP:GL:GQ	1/1:0,40:29:-107.13,-8.73,-0.01:87.27
-chr1	51850	.	A	G	82.68	PASS	AC=1;AF=0.50;AN=2;DP=59;Dels=0.00;HRun=0;HaplotypeScore=0.87;MQ=39.81;MQ0=7;OQ=720.99;QD=12.22;SB=-171.50	GT:AD:DP:GL:GQ	0/1:32,27:50:-90.45,-15.06,-94.52:99
-chr1	51852	.	G	C	25.49	PASS	AC=1;AF=0.50;AN=2;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.87;MQ=40.15;MQ0=6;OQ=1021.36;QD=17.61;SB=-245.09	GT:AD:DP:GL:GQ	0/1:31,27:50:-120.48,-15.06,-101.09:99
-chr1	52066	rs28402963	T	C	139.56	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=2.83;MQ=39.80;MQ0=3;OQ=684.28;QD=9.50;SB=-320.22	GT:AD:DP:GL:GQ	0/1:42,30:68:-92.19,-20.48,-169.52:99
-chr1	52134	rs28599927	A	G	180.85	PASS	AC=1;AF=0.50;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=1.03;MQ=31.13;MQ0=5;OQ=314.17;QD=8.73;SB=-124.71	GT:AD:DP:GL:GQ	0/1:23,13:30:-43.74,-9.04,-73.62:99
-chr1	52441	rs2531315	G	A	15.83	PASS	AC=2;AF=1.00;AN=2;DB;DP=16;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=19.89;MQ0=7;OQ=286.62;QD=17.91;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,16:8:-32.24,-2.41,-0.00:24.08
-chr1	52640	rs3844233	A	T	1.57	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=0.92;MQ=20.92;MQ0=32;OQ=114.33;QD=2.04;SB=-23.31	GT:AD:DP:GL:GQ	0/1:45,11:17:-19.84,-5.12,-46.79:99
-chr1	53560	.	T	C	39.15	PASS	AC=1;AF=0.50;AN=2;DP=82;Dels=0.00;HRun=0;HaplotypeScore=3.43;MQ=25.49;MQ0=11;OQ=919.76;QD=11.22;SB=-454.58	GT:AD:DP:GL:GQ	0/1:47,35:69:-116.05,-20.79,-145.77:99
-chr1	54476	rs1627939	T	A	0.03	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DB;DP=99;Dels=0.00;HRun=2;HaplotypeScore=1.16;MQ=27.48;MQ0=38;OQ=233.94;QD=2.36;SB=-139.05	GT:AD:DP:GL:GQ	0/1:84,15:50:-41.74,-15.06,-148.46:99
-chr1	54790	rs996010	G	T	31.78	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=1;HaplotypeScore=0.93;MQ=23.12;MQ0=20;QD=0.47;SB=29.08	GT:AD:DP:GL:GQ	0/1:55,13:40:-18.51,-12.05,-121.17:64.61
-chr1	54839	rs2854687	C	T	10.60	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=27.08;MQ0=0;OQ=1633.87;QD=34.04;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,48:40:-166.98,-12.05,-0.01:99
-chr1	55660	.	T	C	47.12	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=90;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=8.71;MQ0=70;QD=0.52;SB=-10.00	GT:AD:DP:GL:GQ	0/1:73,17:9:-10.71,-2.71,-24.43:79.96
-chr1	55735	.	T	G	0.03	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=72;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=7.24;MQ0=61;OQ=58.14;QD=0.81;SB=-10.00	GT:AD:DP:GL:GQ	0/1:55,17:5:-10.60,-1.51,-6.69:51.83
-chr1	56025	rs62639105	A	T	0.18	PASS	AC=1;AF=0.50;AN=2;DB;DP=12;Dels=0.00;HRun=3;HaplotypeScore=1.00;MQ=23.00;MQ0=0;OQ=377.29;QD=31.44;SB=-10.00	GT:AD:DP:GL:GQ	0/1:1,11:12:-44.38,-3.61,-3.44:2.23
-chr1	60591	.	C	T	1.69	PASS	AC=1;AF=0.50;AN=2;DP=74;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=14.15;MQ0=46;OQ=324.67;QD=4.39;SB=-159.64	GT:AD:DP:GL:GQ	0/1:50,24:28:-44.18,-8.43,-61.59:99
-chr1	60624	.	T	C	29.51	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=73;Dels=0.00;HRun=0;HaplotypeScore=1.62;MQ=5.38;MQ0=69;QD=0.40;SB=-6.99	GT:AD:DP:GL:GQ	0/1:53,20:3:-7.14,-0.90,-3.77:28.64
-chr1	63704	rs3020697	C	T	122.92	PASS	AC=2;AF=1.00;AN=2;DB;DP=13;Dels=0.00;HRun=0;HaplotypeScore=0.04;MQ=34.36;MQ0=1;OQ=168.10;QD=12.93;SB=-51.56	GT:AD:DP:GL:GQ	1/1:0,13:6:-20.39,-1.81,-0.01:18.05
-chr1	64418	.	A	G	43.84	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DP=98;Dels=0.00;HRun=1;HaplotypeScore=8.82;MQ=6.47;MQ0=82;QD=0.45;SB=-10.00	GT:AD:DP:GL:GQ	1/1:82,16:2:-7.79,-0.60,-0.00:6.02
-chr1	64433	.	T	A	31.10	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=94;Dels=0.00;HRun=0;HaplotypeScore=2.89;MQ=7.92;MQ0=71;QD=0.33;SB=-10.00	GT:AD:DP:GL:GQ	0/1:82,12:3:-7.30,-0.90,-3.84:29.36
-chr1	64544	rs13328683	G	T	4.16	PASS	AC=2;AF=1.00;AN=2;DB;DP=32;Dels=0.00;HRun=2;HaplotypeScore=1.57;MQ=18.78;MQ0=9;OQ=435.52;QD=13.61;SB=-10.00	GT:AD:DP:GL:GQ	1/1:10,22:12:-47.14,-3.61,-0.00:36.12
-chr1	67325	rs2462497	G	A	48.02	LowQual	AC=2;AF=1.00;AN=2;DB;DP=4;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=20.51;MQ0=2;QD=12.01;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,4:2:-8.21,-0.60,-0.00:6.02
-chr1	72009	.	A	G	32.65	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=19;Dels=0.00;HRun=0;HaplotypeScore=5.60;MQ=18.28;MQ0=7;QD=1.72;SB=-38.67	GT:AD:DP:GL:GQ	0/1:14,5:11:-9.86,-3.31,-31.53:65.48
-chr1	72112	rs1851945	A	G	1.46	PASS	AC=2;AF=1.00;AN=2;DB;DP=19;Dels=0.00;HRun=1;HaplotypeScore=0.48;MQ=25.77;MQ0=4;OQ=504.38;QD=26.55;SB=-10.00	GT:AD:DP:GL:GQ	1/1:4,15:15:-54.03,-4.52,-0.00:45.14
-chr1	72166	rs2907073	T	C	81.98	PASS	AC=2;AF=1.00;AN=2;DB;DP=14;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=27.95;MQ0=1;OQ=468.64;QD=33.47;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,14:13:-50.45,-3.91,-0.00:39.13
-chr1	72179	rs2260604	A	C	22.50	PASS	AC=2;AF=1.00;AN=2;DB;DP=14;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=24.51;MQ0=4;OQ=244.12;QD=17.44;SB=-10.00	GT:AD:DP:GL:GQ	1/1:4,10:10:-28.01,-3.01,-0.01:30.03
-chr1	72195	.	T	C	61.39	PASS	AC=1;AF=0.50;AN=2;DP=20;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=19.33;MQ0=10;OQ=206.79;QD=10.34;SB=-10.00	GT:AD:DP:GL:GQ	0/1:13,7:10:-26.97,-3.01,-11.90:88.90
-chr1	73690	.	A	G	59.97	Indel	AC=1;AF=0.50;AN=2;DP=14;Dels=0.00;HRun=0;HaplotypeScore=8.93;MQ=23.64;MQ0=3;QD=4.28;SB=-6.99	GT:AD:DP:GL:GQ	0/1:7,7:8:-11.69,-2.41,-21.22:92.80
-chr1	73692	.	G	A	71.09	Indel	AC=1;AF=0.50;AN=2;DP=14;Dels=0.00;HRun=3;HaplotypeScore=9.93;MQ=23.64;MQ0=3;QD=5.08;SB=-6.99	GT:AD:DP:GL:GQ	0/1:7,7:8:-12.80,-2.41,-18.45:99
-chr1	73996	.	A	T	22.55	PASS	AC=1;AF=0.50;AN=2;DP=63;Dels=0.00;HRun=0;HaplotypeScore=0.98;MQ=27.59;MQ0=22;OQ=466.23;QD=7.40;SB=-57.87	GT:AD:DP:GL:GQ	0/1:36,27:38:-61.35,-11.44,-82.94:99
-chr1	74170	rs4118012	C	A	85.72	PASS	AC=2;AF=1.00;AN=2;DB;DP=6;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=29.00;MQ0=0;OQ=197.97;QD=32.99;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,6:6:-23.37,-1.81,-0.00:18.06
-chr1	74355	rs3871778	C	G	11.43	PASS	AC=2;AF=1.00;AN=2;DB;DP=5;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=22.46;MQ0=2;OQ=92.52;QD=18.50;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,5:3:-12.74,-0.90,-0.00:9.03
-chr1	74885	.	G	A	80.42	PASS	AC=1;AF=0.50;AN=2;DP=41;Dels=0.00;HRun=0;HaplotypeScore=0.92;MQ=18.46;MQ0=14;OQ=538.01;QD=13.12;SB=-187.68	GT:AD:DP:GL:GQ	0/1:20,21:26:-64.92,-7.83,-36.63:99
-chr1	80719	.	G	A	41.54	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=35;Dels=0.00;HRun=0;HaplotypeScore=1.14;MQ=8.20;MQ0=31;QD=1.19;SB=-10.00	GT:AD:DP:GL:GQ	0/1:32,2:3:-8.34,-0.91,-2.50:15.90
-chr1	81004	rs4245761	G	T	39.81	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DB;DP=12;Dels=0.00;HRun=1;HaplotypeScore=0.89;MQ=13.75;MQ0=7;QD=3.32;SB=-10.00	GT:AD:DP:GL:GQ	1/1:7,5:2:-7.39,-0.60,-0.00:6.02
-chr1	81077	.	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=17;Dels=0.00;HRun=13;HaplotypeScore=2.26;MQ=18.21;MQ0=7;OQ=85.86;QD=5.05;SB=-62.92	GT:AD:DP:GL:GQ	0/1:11,6:5:-13.38,-1.51,-3.74:22.35
-chr1	81199	rs4245763	A	T	30.68	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DB;DP=10;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=13.70;MQ0=7;QD=3.07;SB=-10.00	GT:AD:DP:GL:GQ	1/1:6,4:2:-6.48,-0.60,-0.00:6.01
-chr1	81378	.	A	C	3.99	PASS	AC=1;AF=0.50;AN=2;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.97;MQ=33.30;MQ0=0;OQ=188.72;QD=4.72;SB=-114.61	GT:AD:DP:GL:GQ	0/1:31,9:34:-32.39,-10.24,-89.64:99
-chr1	81399	rs6702460	G	T	307.92	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=32.81;MQ0=0;OQ=1379.58;QD=33.65;SB=-370.87	GT:AD:DP:GL:GQ	1/1:0,41:37:-141.55,-11.14,-0.01:99
-chr1	81444	rs1524604	G	A	325.75	PASS	AC=2;AF=1.00;AN=2;DB;DP=30;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=30.68;MQ0=1;OQ=1101.93;QD=36.73;SB=-340.44	GT:AD:DP:GL:GQ	1/1:0,30:28:-113.78,-8.43,-0.01:84.28
-chr1	81611	rs4256762	C	T	100.30	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=17.29;MQ0=34;OQ=684.35;QD=12.01;SB=-10.00	GT:AD:DP:GL:GQ	1/1:14,43:19:-75.91,-5.72,-3.90:18.23
-chr1	82517	.	T	C	0.75	PASS	AC=2;AF=1.00;AN=2;DP=22;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=13.00;MQ0=6;OQ=70.17;QD=3.19;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,22:3:-10.51,-0.90,-0.00:9.03
-chr1	86134	.	C	G	0.28	PASS	AC=1;AF=0.50;AN=2;DP=90;Dels=0.00;HRun=0;HaplotypeScore=0.97;MQ=17.64;MQ0=31;OQ=214.58;QD=2.38;SB=-33.05	GT:AD:DP:GL:GQ	0/1:81,9:51:-40.11,-15.36,-187.83:99
-chr1	88546	.	G	A	0.08	PASS	AC=1;AF=0.50;AN=2;DP=37;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=24.25;MQ0=8;OQ=736.28;QD=19.90;SB=-10.00	GT:AD:DP:GL:GQ	0/1:13,24:26:-84.74,-7.83,-23.08:99
-chr1	88616	rs4504463	T	C	1.95	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=19.27;MQ0=29;OQ=80.37;QD=1.55;SB=-10.00	GT:AD:DP:GL:GQ	0/1:43,9:21:-17.65,-6.33,-64.09:99
-chr1	88704	.	G	A	26.43	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=35;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=13.14;MQ0=25;QD=0.76;SB=-10.00	GT:AD:DP:GL:GQ	0/1:33,2:8:-8.34,-2.41,-22.88:59.26
-chr1	88715	.	A	G	0.29	PASS	AC=1;AF=0.50;AN=2;DP=31;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=13.96;MQ0=21;OQ=53.96;QD=1.74;SB=-10.00	GT:AD:DP:GL:GQ	0/1:28,3:8:-11.09,-2.41,-20.54:86.80
-chr1	88808	.	C	T	3.03	PASS	AC=2;AF=1.00;AN=2;DP=25;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=19.56;MQ0=9;OQ=459.05;QD=18.36;SB=-49.56	GT:AD:DP:GL:GQ	1/1:1,24:12:-49.49,-3.61,-0.00:36.12
-chr1	88856	rs1851939	G	A	178.37	HARD_TO_VALIDATE;Indel	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.48;MQ=30.10;MQ0=10;QD=3.64;SB=-37.62	GT:AD:DP:GL:GQ	0/1:36,12:37:-32.26,-11.14,-102.50:99
-chr1	88918	.	C	A	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=85;Dels=0.00;HRun=0;HaplotypeScore=6.89;MQ=32.20;MQ0=8;OQ=309.74;QD=3.64;SB=-68.70	GT:AD:DP:GL:GQ	0/1:64,21:74:-56.55,-22.29,-199.33:99
-chr1	88963	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=111;Dels=0.00;HRun=0;HaplotypeScore=30.09;MQ=26.41;MQ0=31;OQ=291.13;QD=2.62;SB=-116.74	GT:AD:DP:GL:GQ	0/1:88,23:71:-53.80,-21.40,-203.68:99
-chr1	88966	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=109;Dels=0.00;HRun=0;HaplotypeScore=24.42;MQ=26.07;MQ0=32;OQ=253.10;QD=2.32;SB=-149.24	GT:AD:DP:GL:GQ	0/1:88,21:67:-48.78,-20.19,-197.64:99
-chr1	89000	.	A	G	0.14	PASS	AC=1;AF=0.50;AN=2;DP=57;Dels=0.00;HRun=0;HaplotypeScore=2.36;MQ=15.31;MQ0=39;OQ=157.34;QD=2.76;SB=-51.84	GT:AD:DP:GL:GQ	0/1:48,9:10:-22.04,-3.02,-12.09:90.71
-chr1	89029	.	C	T	23.46	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=66;Dels=0.00;HRun=1;HaplotypeScore=1.84;MQ=12.16;MQ0=50;QD=0.36;SB=5.02	GT:AD:DP:GL:GQ	0/1:50,16:9:-8.34,-2.71,-21.03:56.28
-chr1	89043	.	T	C	25.04	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=70;Dels=0.00;HRun=1;HaplotypeScore=0.97;MQ=9.57;MQ0=58;QD=0.36;SB=-0.97	GT:AD:DP:GL:GQ	0/1:54,16:6:-7.59,-1.81,-16.33:57.86
-chr1	89188	.	C	T	0.06	PASS	AC=1;AF=0.50;AN=2;DP=18;Dels=0.00;HRun=1;HaplotypeScore=2.43;MQ=17.90;MQ0=10;OQ=61.10;QD=3.39;SB=-10.00	GT:AD:DP:GL:GQ	0/1:15,3:7:-11.50,-2.11,-14.49:93.93
-chr1	89528	.	C	T	1.15	PASS	AC=2;AF=1.00;AN=2;DP=7;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=22.04;MQ0=0;OQ=168.19;QD=24.03;SB=-10.00	GT:AD:DP:GL:GQ	1/1:1,6:5:-20.38,-1.51,-0.00:15.05
-chr1	90974	rs62639107	G	T	14.16	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=1.57;MQ=10.20;MQ0=34;QD=0.33;SB=-0.97	GT:AD:DP:GL:GQ	0/1:33,10:6:-6.49,-1.81,-14.67:46.83
-chr1	91131	.	G	A	0.50	PASS	AC=1;AF=0.50;AN=2;DP=74;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=10.39;MQ0=55;OQ=206.73;QD=2.79;SB=-10.00	GT:AD:DP:GL:GQ	0/1:41,33:9:-26.67,-2.71,-7.60:48.84
-chr1	91212	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=134;Dels=0.01;HRun=13;HaplotypeScore=35.68;MQ=19.40;MQ0=63;OQ=147.19;QD=1.10;SB=-6.99	GT:AD:DP:GL:GQ	0/1:107,25:41:-30.37,-12.37,-109.55:99
-chr1	91252	.	A	C	43.23	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=148;Dels=0.00;HRun=1;HaplotypeScore=36.75;MQ=16.93;MQ0=85;QD=0.29;SB=-10.00	GT:AD:DP:GL:GQ	0/1:138,10:43:-20.56,-12.95,-127.64:76.06
-chr1	91549	.	A	G	49.47	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=209;Dels=0.00;HRun=0;HaplotypeScore=15.98;MQ=27.81;MQ0=39;QD=0.24;SB=65.80	GT:AD:DP:GL:GQ	0/1:179,30:144:-51.61,-43.38,-519.29:82.31
-chr1	91758	.	G	A	0.04	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=66;Dels=0.00;HRun=1;HaplotypeScore=1.60;MQ=22.49;MQ0=25;OQ=143.40;QD=2.17;SB=15.64	GT:AD:DP:GL:GQ	0/1:56,10:34:-27.86,-10.24,-97.22:99
-chr1	91835	.	T	C	60.94	PASS	AC=1;AF=0.50;AN=2;DP=75;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=20.01;MQ0=36;OQ=785.45;QD=10.47;SB=-10.00	GT:AD:DP:GL:GQ	0/1:43,32:33:-91.79,-9.96,-12.24:22.78
-chr1	91851	rs4109800	G	C	35.73	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=19.96;MQ0=33;OQ=1198.57;QD=15.98;SB=-10.00	GT:AD:DP:GL:GQ	0/1:41,34:33:-133.08,-9.94,-16.89:69.53
-chr1	91938	.	G	A	0.05	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=93;Dels=0.00;HRun=1;HaplotypeScore=2.53;MQ=14.92;MQ0=47;OQ=298.50;QD=3.21;SB=-10.00	GT:AD:DP:GL:GQ	0/1:77,15:21:-39.46,-6.32,-39.15:99
-chr1	92459	rs3912701	G	A	1.57	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=2;HaplotypeScore=1.98;MQ=17.65;MQ0=34;OQ=809.52;QD=14.99;SB=-10.00	GT:AD:DP:GL:GQ	1/1:30,24:20:-84.54,-6.02,-0.00:60.20
-chr1	92527	rs4618909	A	G	1.05	PASS	AC=1;AF=0.50;AN=2;DB;DP=102;Dels=0.00;HRun=1;HaplotypeScore=7.26;MQ=22.11;MQ0=40;OQ=1083.35;QD=10.62;SB=-10.00	GT:AD:DP:GL:GQ	0/1:55,47:51:-126.98,-15.36,-75.91:99
-chr1	92632	rs3872168	C	A	251.56	PASS	AC=2;AF=1.00;AN=2;DB;DP=25;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=17.40;MQ0=16;OQ=274.62;QD=10.98;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,25:9:-31.05,-2.71,-0.00:27.07
-chr1	92814	.	C	T	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=170;Dels=0.00;HRun=1;HaplotypeScore=9.83;MQ=30.05;MQ0=21;OQ=659.75;QD=3.88;SB=-292.33	GT:AD:DP:GL:GQ	0/1:135,35:144:-112.64,-43.38,-415.54:99
-chr1	93070	.	A	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=100;Dels=0.00;HRun=1;HaplotypeScore=8.90;MQ=17.00;MQ0=65;OQ=190.64;QD=1.91;SB=-10.00	GT:AD:DP:GL:GQ	0/1:83,17:34:-32.59,-10.25,-92.04:99
-chr1	93104	rs62642109	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=120;Dels=0.00;HRun=0;HaplotypeScore=24.91;MQ=20.20;MQ0=60;OQ=819.40;QD=6.83;SB=-0.98	GT:AD:DP:GL:GQ	0/1:72,48:57:-102.42,-17.19,-99.00:99
-chr1	93113	.	G	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=112;Dels=0.00;HRun=0;HaplotypeScore=17.60;MQ=21.02;MQ0=51;OQ=474.12;QD=4.23;SB=5.03	GT:AD:DP:GL:GQ	0/1:79,33:56:-67.57,-16.87,-129.01:99
-chr1	93181	.	T	C	7.86	PASS	AC=1;AF=0.50;AN=2;DP=106;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=15.97;MQ0=67;OQ=759.85;QD=7.17;SB=20.10	GT:AD:DP:GL:GQ	0/1:53,53:35:-89.81,-10.54,-44.53:99
-chr1	93248	rs62639110	G	A	30.22	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DB;DP=85;Dels=0.00;HRun=0;HaplotypeScore=2.42;MQ=8.07;MQ0=76;QD=0.36;SB=-10.00	GT:AD:DP:GL:GQ	0/1:62,22:6:-8.11,-1.81,-14.17:63.05
-chr1	93307	.	G	A	47.02	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DP=50;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=5.80;MQ0=48;QD=0.94;SB=-10.00	GT:AD:DP:GL:GQ	1/1:44,6:2:-8.11,-0.60,-0.00:6.02
-chr1	93757	.	T	C	30.28	LowQual	AC=2;AF=1.00;AN=2;DP=3;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=23.68;MQ0=1;QD=10.09;SB=-10.00	GT:AD:DP:GL:GQ	1/1:1,2:2:-6.44,-0.60,-0.00:6.01
-chr1	93896	rs4287120	T	C	0.17	PASS	AC=2;AF=1.00;AN=2;DB;DP=174;Dels=0.00;HRun=0;HaplotypeScore=2.70;MQ=4.84;MQ0=151;OQ=128.63;QD=0.74;SB=-81.37	GT:AD:DP:GL:GQ	1/1:41,133:5:-16.43,-1.51,-0.00:15.04
-chr1	93971	rs4492556	A	G	12.01	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DB;DP=81;Dels=0.00;HRun=0;HaplotypeScore=2.58;MQ=7.18;MQ0=71;QD=0.15;SB=-31.93	GT:AD:DP:GL:GQ	0/1:47,34:7:-6.57,-2.11,-19.60:44.57
-chr1	94001	.	G	T	0.94	PASS	AC=1;AF=0.50;AN=2;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.96;MQ=16.11;MQ0=45;OQ=194.11;QD=3.35;SB=-41.38	GT:AD:DP:GL:GQ	0/1:51,7:13:-26.61,-3.91,-21.51:99
-chr1	94049	rs4288537	T	C	0.39	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=10.96;MQ=20.93;MQ0=24;OQ=438.79;QD=10.45;SB=-71.88	GT:AD:DP:GL:GQ	0/1:18,24:17:-52.28,-5.12,-8.24:31.18
-chr1	94088	.	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=69;Dels=0.00;HRun=1;HaplotypeScore=3.06;MQ=13.40;MQ0=57;OQ=79.42;QD=1.15;SB=-38.36	GT:AD:DP:GL:GQ	0/1:64,5:10:-14.24,-3.02,-19.96:99
-chr1	94312	.	C	A	18.04	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=74;Dels=0.00;HRun=0;HaplotypeScore=2.87;MQ=10.70;MQ0=65;QD=0.24;SB=-10.00	GT:AD:DP:GL:GQ	0/1:72,2:9:-7.79,-2.71,-24.60:50.81
-chr1	98160	rs4109806	A	C	199.96	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=17.46;MQ0=21;OQ=505.68;QD=12.97;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,39:15:-54.16,-4.52,-0.00:45.14
-chr1	98173	.	T	C	2.30	PASS	AC=1;AF=0.50;AN=2;DP=36;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=16.05;MQ0=20;OQ=109.74;QD=3.05;SB=-45.95	GT:AD:DP:GL:GQ	0/1:14,22:12:-17.87,-3.61,-27.89:99
-chr1	98191	rs4109805	A	G	15.99	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DB;DP=32;Dels=0.00;HRun=0;HaplotypeScore=0.97;MQ=16.84;MQ0=14;QD=0.50;SB=5.05	GT:AD:DP:GL:GQ	0/1:28,4:15:-9.39,-4.52,-49.05:48.72
-chr1	98276	rs4457511	T	G	0.08	PASS	AC=1;AF=0.50;AN=2;DB;DP=105;Dels=0.00;HRun=0;HaplotypeScore=9.15;MQ=5.64;MQ0=97;OQ=125.84;QD=1.20;SB=-67.98	GT:AD:DP:GL:GQ	0/1:81,24:6:-17.67,-1.81,-3.90:20.89
-chr1	99188	.	T	C	0.10	PASS	AC=1;AF=0.50;AN=2;DP=89;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=8.00;MQ0=82;OQ=57.15;QD=0.64;SB=-10.00	GT:AD:DP:GL:GQ	0/1:85,4:6:-10.81,-1.81,-11.97:89.99
-chr1	99237	.	G	A	48.25	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DP=120;Dels=0.00;HRun=0;HaplotypeScore=2.00;MQ=4.41;MQ0=117;QD=0.40;SB=-10.00	GT:AD:DP:GL:GQ	1/1:114,6:2:-8.23,-0.60,-0.00:6.02
-chr1	99503	rs4126043	T	A	232.13	PASS	AC=2;AF=1.00;AN=2;DB;DP=7;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=24.79;MQ0=3;OQ=79.29;QD=11.33;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,7:3:-11.42,-0.90,-0.00:9.03
-chr1	110568	rs4117992	T	C	36.28	LowQual	AC=2;AF=1.00;AN=2;DB;DP=3;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=23.68;MQ0=1;QD=12.09;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,3:2:-7.04,-0.60,-0.00:6.02
-chr1	110846	.	C	T	29.97	PASS	AC=2;AF=1.00;AN=2;DP=14;Dels=0.00;HRun=1;HaplotypeScore=1.00;MQ=21.24;MQ0=9;OQ=175.53;QD=12.54;SB=-93.11	GT:AD:DP:GL:GQ	1/1:6,8:5:-21.11,-1.51,-0.00:15.05
-chr1	110872	rs1851943	C	T	61.13	PASS	AC=2;AF=1.00;AN=2;DB;DP=7;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=26.59;MQ0=3;OQ=127.11;QD=18.16;SB=-91.11	GT:AD:DP:GL:GQ	1/1:0,7:4:-16.25,-1.20,-0.00:12.04
-chr1	117436	.	G	A	0.05	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=124;Dels=0.00;HRun=0;HaplotypeScore=1.13;MQ=9.09;MQ0=104;OQ=195.33;QD=1.58;SB=-97.57	GT:AD:DP:GL:GQ	0/1:100,24:19:-28.54,-5.73,-40.13:99
-chr1	119192	.	C	G	13.29	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=23;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=6.87;MQ0=19;QD=0.58;SB=-10.00	GT:AD:DP:GL:GQ	0/1:15,8:1:-4.59,-0.30,-0.00:1.76
-chr1	125911	rs11531330	C	T	87.12	PASS	AC=2;AF=1.00;AN=2;DB;DP=8;Dels=0.00;HRun=0;HaplotypeScore=1.60;MQ=18.40;MQ0=3;OQ=89.79;QD=11.22;SB=-10.00	GT:AD:DP:GL:GQ	1/1:4,3:3:-12.47,-0.90,-0.00:9.03
-chr1	217782	.	A	T	46.88	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DP=8;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=14.40;MQ0=4;QD=5.86;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,8:2:-8.10,-0.60,-0.00:6.02
-chr1	219536	rs6678242	A	C	214.27	PASS	AC=2;AF=1.00;AN=2;DB;DP=17;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=14.88;MQ0=9;OQ=112.38;QD=6.61;SB=-45.01	GT:AD:DP:GL:GQ	1/1:0,17:4:-14.77,-1.20,-0.00:12.04
-chr1	219731	.	C	T	12.21	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=71;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=20.96;MQ0=44;QD=0.17;SB=38.14	GT:AD:DP:GL:GQ	0/1:62,9:27:-12.61,-8.14,-82.06:44.77
-chr1	219921	rs12239119	T	G	63.08	PASS	AC=2;AF=1.00;AN=2;DB;DP=24;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=23.26;MQ0=4;OQ=606.74;QD=25.28;SB=-312.56	GT:AD:DP:GL:GQ	1/1:0,24:18:-64.26,-5.42,-0.01:54.16
-chr1	221068	rs10047119	T	A	39.88	DPFilter;HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DB;DP=254;Dels=0.00;HRun=1;HaplotypeScore=6.12;MQ=8.79;MQ0=135;QD=0.16;SB=-10.00	GT:AD:DP:GL:GQ	1/1:167,87:2:-7.40,-0.60,-0.00:6.02
-chr1	221077	rs10047174	C	A	38.69	DPFilter;HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DB;DP=271;Dels=0.00;HRun=0;HaplotypeScore=6.64;MQ=8.55;MQ0=150;QD=0.14;SB=-10.00	GT:AD:DP:GL:GQ	1/1:181,90:2:-7.28,-0.60,-0.00:6.02
-chr1	221092	rs10047175	C	A	39.69	DPFilter;HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DB;DP=283;Dels=0.00;HRun=0;HaplotypeScore=2.31;MQ=7.57;MQ0=174;QD=0.14;SB=-10.00	GT:AD:DP:GL:GQ	1/1:201,82:2:-7.38,-0.60,-0.00:6.02
-chr1	221109	rs10047121	T	C	34.28	DPFilter;HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DB;DP=275;Dels=0.00;HRun=0;HaplotypeScore=3.23;MQ=7.06;MQ0=184;QD=0.12;SB=-10.00	GT:AD:DP:GL:GQ	1/1:197,78:2:-6.84,-0.60,-0.00:6.02
-chr1	221318	.	T	A	0.05	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=241;Dels=0.00;HRun=0;HaplotypeScore=2.80;MQ=19.94;MQ0=85;OQ=462.52;QD=1.92;SB=39.55	GT:AD:DP:GL:GQ	0/1:212,29:108:-82.07,-32.53,-323.83:99
-chr1	221343	.	G	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=261;Dels=0.00;HRun=0;HaplotypeScore=2.12;MQ=22.79;MQ0=47;OQ=408.64;QD=1.57;SB=-215.29	GT:AD:DP:GL:GQ	0/1:222,38:157:-91.46,-47.31,-595.18:99
-chr1	221367	rs10047230	G	A	0.14	PASS	AC=1;AF=0.50;AN=2;DB;DP=278;Dels=0.00;HRun=0;HaplotypeScore=11.19;MQ=25.20;MQ0=11;OQ=1571.46;QD=5.65;SB=-527.77	GT:AD:DP:GL:GQ	0/1:197,80:212:-224.34,-63.91,-509.11:99
-chr1	221389	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=260;Dels=0.00;HRun=1;HaplotypeScore=1.74;MQ=24.37;MQ0=22;OQ=840.34;QD=3.23;SB=-412.02	GT:AD:DP:GL:GQ	0/1:209,50:201:-147.86,-60.54,-597.88:99
-chr1	221420	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=210;Dels=0.00;HRun=1;HaplotypeScore=4.60;MQ=20.04;MQ0=77;OQ=83.18;QD=0.40;SB=26.98	GT:AD:DP:GL:GQ	0/1:192,14:117:-46.84,-35.24,-385.27:99
-chr1	222364	.	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=186;Dels=0.03;HRun=0;HaplotypeScore=32.96;MQ=22.76;MQ0=12;OQ=2072.95;QD=11.14;SB=59.21	GT:AD:DP:GL:GQ	0/1:70,111:137:-251.84,-41.26,-268.25:99
-chr1	222793	.	C	G	25.72	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=260;Dels=0.00;HRun=1;HaplotypeScore=1.63;MQ=16.62;MQ0=87;QD=0.10;SB=81.54	GT:AD:DP:GL:GQ	0/1:230,30:110:-38.99,-33.14,-447.79:58.55
-chr1	223336	.	C	G	28.20	PASS	AC=1;AF=0.50;AN=2;DP=90;Dels=0.00;HRun=0;HaplotypeScore=1.47;MQ=35.25;MQ0=2;OQ=1925.92;QD=21.40;SB=-854.31	GT:AD:DP:GL:GQ	0/1:39,51:87:-222.09,-26.21,-160.96:99
-chr1	224095	rs8179512	G	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DB;DP=229;Dels=0.00;HRun=2;HaplotypeScore=0.48;MQ=15.51;MQ0=125;OQ=91.58;QD=0.40;SB=-45.96	GT:AD:DP:GL:GQ	0/1:203,26:89:-39.28,-26.84,-255.40:99
-chr1	224171	rs7195389	A	G	40.71	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DB;DP=269;Dels=0.00;HRun=0;HaplotypeScore=47.18;MQ=22.11;MQ0=18;QD=0.15;SB=122.50	GT:AD:DP:GL:GQ	0/1:232,36:234:-77.87,-70.51,-842.48:73.55
-chr1	224176	rs56055731	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=276;Dels=0.00;HRun=1;HaplotypeScore=39.67;MQ=21.41;MQ0=32;OQ=545.76;QD=1.98;SB=-248.71	GT:AD:DP:GL:GQ	0/1:242,34:226:-125.93,-68.07,-709.89:99
-chr1	224241	rs62053733	A	G	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DB;DP=216;Dels=0.00;HRun=0;HaplotypeScore=20.29;MQ=17.49;MQ0=74;OQ=1752.30;QD=8.11;SB=-714.08	GT:AD:DP:GL:GQ	0/1:103,113:104:-209.87,-31.36,-152.51:99
-chr1	224344	rs8179403	T	A	166.23	PASS	AC=1;AF=0.50;AN=2;DB;DP=163;Dels=0.00;HRun=0;HaplotypeScore=2.75;MQ=23.92;MQ0=45;OQ=2824.26;QD=17.33;SB=-725.16	GT:AD:DP:GL:GQ	0/1:38,125:108:-318.26,-32.55,-66.31:99
-chr1	224419	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=187;Dels=0.00;HRun=1;HaplotypeScore=18.87;MQ=14.35;MQ0=100;OQ=127.03;QD=0.68;SB=8.05	GT:AD:DP:GL:GQ	0/1:161,26:49:-30.75,-14.76,-153.48:99
-chr1	224472	.	T	C	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=261;Dels=0.00;HRun=1;HaplotypeScore=6.53;MQ=15.44;MQ0=125;OQ=992.61;QD=3.80;SB=-39.67	GT:AD:DP:GL:GQ	0/1:177,84:84:-127.86,-25.32,-192.69:99
-chr1	224623	rs7548182	A	T	1.19	PASS	AC=1;AF=0.50;AN=2;DB;DP=107;Dels=0.00;HRun=3;HaplotypeScore=1.37;MQ=26.54;MQ0=23;OQ=863.08;QD=8.07;SB=50.19	GT:AD:DP:GL:GQ	0/1:39,68:64:-108.87,-19.28,-138.61:99
-chr1	225707	rs6603780	C	G	0.19	PASS	AC=1;AF=0.50;AN=2;DB;DP=278;Dels=0.00;HRun=0;HaplotypeScore=6.28;MQ=15.73;MQ0=150;OQ=1742.87;QD=6.27;SB=-566.38	GT:AD:DP:GL:GQ	0/1:147,131:57:-194.74,-17.17,-58.86:99
-chr1	225839	rs6422503	C	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DB;DP=215;Dels=0.00;HRun=0;HaplotypeScore=2.47;MQ=34.58;MQ0=26;OQ=4599.62;QD=21.39;SB=-1688.57	GT:AD:DP:GL:GQ	0/1:70,145:162:-458.96,-48.79,-124.49:99
-chr1	226216	.	T	C	24.03	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=181;Dels=0.00;HRun=0;HaplotypeScore=3.20;MQ=9.23;MQ0=93;QD=0.13;SB=-10.00	GT:AD:DP:GL:GQ	0/1:162,19:7:-7.79,-2.11,-21.54:56.85
-chr1	227048	.	C	A	43.64	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=155;Dels=0.00;HRun=1;HaplotypeScore=2.13;MQ=9.30;MQ0=121;QD=0.28;SB=-44.79	GT:AD:DP:GL:GQ	0/1:134,21:22:-14.27,-6.63,-62.25:76.48
-chr1	227333	.	G	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=141;Dels=0.00;HRun=0;HaplotypeScore=5.51;MQ=14.65;MQ0=59;OQ=58.63;QD=0.42;SB=-10.00	GT:AD:DP:GL:GQ	0/1:125,16:25:-16.68,-7.54,-70.62:91.47
-chr1	227353	.	C	A	20.49	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=140;Dels=0.00;HRun=1;HaplotypeScore=4.94;MQ=14.92;MQ0=62;QD=0.15;SB=-10.00	GT:AD:DP:GL:GQ	0/1:122,18:29:-14.07,-8.74,-90.83:53.29
-chr1	227461	rs28618397	A	G	0.05	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DB;DP=144;Dels=0.00;HRun=0;HaplotypeScore=6.94;MQ=8.17;MQ0=115;OQ=63.90;QD=0.44;SB=-10.00	GT:AD:DP:GL:GQ	0/1:131,13:8:-12.09,-2.41,-14.97:96.73
-chr1	227626	.	G	A	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=182;Dels=0.00;HRun=0;HaplotypeScore=4.92;MQ=20.49;MQ0=18;OQ=315.55;QD=1.73;SB=-168.42	GT:AD:DP:GL:GQ	0/1:163,19:138:-76.40,-41.57,-437.40:99
-chr1	227735	.	G	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=89;Dels=0.00;HRun=0;HaplotypeScore=14.30;MQ=17.08;MQ0=35;OQ=66.90;QD=0.75;SB=20.77	GT:AD:DP:GL:GQ	0/1:78,11:41:-22.33,-12.35,-159.24:99
-chr1	230298	.	C	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=129;Dels=0.00;HRun=1;HaplotypeScore=4.58;MQ=24.72;MQ0=17;OQ=319.24;QD=2.47;SB=-97.27	GT:AD:DP:GL:GQ	0/1:109,19:104:-66.59,-31.38,-356.71:99
-chr1	230890	.	G	A	0.28	PASS	AC=1;AF=0.50;AN=2;DP=120;Dels=0.00;HRun=0;HaplotypeScore=4.05;MQ=28.42;MQ0=10;OQ=452.11;QD=3.77;SB=-186.08	GT:AD:DP:GL:GQ	0/1:99,21:95:-77.11,-28.62,-272.62:99
-chr1	231027	rs1917217	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=16;HaplotypeScore=20.40;MQ=32.62;MQ0=10;OQ=363.52;QD=5.05;SB=32.11	GT:AD:DP:GL:GQ	0/1:47,24:50:-54.70,-15.07,-118.26:99
-chr1	231044	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=76;Dels=0.00;HRun=16;HaplotypeScore=28.71;MQ=27.06;MQ0=9;OQ=128.09;QD=1.69;SB=39.29	GT:AD:DP:GL:GQ	0/1:63,12:57:-36.63,-20.54,-166.03:99
-chr1	231045	.	A	T	16.10	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=72;Dels=0.00;HRun=0;HaplotypeScore=26.04;MQ=26.31;MQ0=9;QD=0.22;SB=44.16	GT:AD:DP:GL:GQ	0/1:63,8:54:-21.15,-16.27,-182.36:48.82
-chr1	231183	.	A	G	0.09	PASS	AC=1;AF=0.50;AN=2;DP=52;Dels=0.00;HRun=0;HaplotypeScore=8.45;MQ=28.02;MQ0=10;OQ=325.16;QD=6.25;SB=-110.63	GT:AD:DP:GL:GQ	0/1:19,32:27:-43.95,-8.15,-48.50:99
-chr1	231232	rs11490246	C	T	142.56	PASS	AC=2;AF=1.00;AN=2;DB;DP=60;Dels=0.00;HRun=1;HaplotypeScore=0.58;MQ=27.55;MQ0=9;OQ=1010.69;QD=16.84;SB=-258.84	GT:AD:DP:GL:GQ	1/1:0,59:26:-104.66,-7.83,-0.01:78.25
-chr1	234887	.	C	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=210;Dels=0.00;HRun=0;HaplotypeScore=14.30;MQ=23.11;MQ0=12;OQ=591.52;QD=2.82;SB=-248.32	GT:AD:DP:GL:GQ	0/1:173,36:184:-117.86,-55.42,-542.00:99
-chr1	235002	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=103;Dels=0.00;HRun=3;HaplotypeScore=1.45;MQ=7.75;MQ0=92;OQ=65.10;QD=0.63;SB=-6.99	GT:AD:DP:GL:GQ	0/1:88,15:7:-11.90,-2.11,-15.26:97.93
-chr1	235268	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=38;Dels=0.00;HRun=1;HaplotypeScore=31.21;MQ=26.04;MQ0=17;OQ=96.26;QD=2.53;SB=-57.31	GT:AD:DP:GL:GQ	0/1:24,12:15:-17.43,-4.52,-39.23:99
-chr1	235318	.	C	G	0.88	PASS	AC=1;AF=0.50;AN=2;DP=18;Dels=0.00;HRun=2;HaplotypeScore=0.73;MQ=31.66;MQ0=1;OQ=172.25;QD=9.57;SB=-27.84	GT:AD:DP:GL:GQ	0/1:12,6:17:-25.63,-5.12,-44.90:99
-chr1	237291	rs62639107	G	T	22.08	PASS	AC=1;AF=0.50;AN=2;DB;DP=126;Dels=0.00;HRun=0;HaplotypeScore=2.71;MQ=12.32;MQ0=83;OQ=830.85;QD=6.59;SB=-342.75	GT:AD:DP:GL:GQ	0/1:51,75:34:-96.61,-10.24,-28.48:99
-chr1	237573	.	T	C	21.25	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=174;Dels=0.00;HRun=0;HaplotypeScore=8.41;MQ=14.44;MQ0=98;QD=0.12;SB=17.09	GT:AD:DP:GL:GQ	0/1:155,19:37:-16.55,-11.15,-125.38:54.05
-chr1	238151	.	T	C	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=95;Dels=0.00;HRun=0;HaplotypeScore=0.87;MQ=9.86;MQ0=83;OQ=59.88;QD=0.63;SB=-10.00	GT:AD:DP:GL:GQ	0/1:91,4:10:-12.29,-3.01,-24.61:92.72
-chr1	238167	rs4109800	G	C	1.40	PASS	AC=1;AF=0.50;AN=2;DB;DP=94;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=9.69;MQ0=81;OQ=122.76;QD=1.31;SB=-10.00	GT:AD:DP:GL:GQ	0/1:83,11:9:-18.27,-2.71,-21.24:99
-chr1	238254	.	G	A	14.34	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=110;Dels=0.00;HRun=1;HaplotypeScore=1.20;MQ=10.94;MQ0=73;QD=0.13;SB=-10.00	GT:AD:DP:GL:GQ	0/1:101,9:10:-7.71,-3.01,-28.55:47.01
-chr1	242992	rs4109808	G	C	0.33	PASS	AC=1;AF=0.50;AN=2;DB;DP=205;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=17.96;MQ0=77;OQ=316.33;QD=1.54;SB=11.07	GT:AD:DP:GL:GQ	0/1:143,62:81:-59.32,-24.40,-284.11:99
-chr1	244543	rs62639119	A	G	39.09	PASS	AC=1;AF=0.50;AN=2;DB;DP=108;Dels=0.00;HRun=0;HaplotypeScore=1.69;MQ=13.13;MQ0=71;OQ=645.60;QD=5.98;SB=-100.72	GT:AD:DP:GL:GQ	0/1:56,52:34:-78.09,-10.25,-42.39:99
-chr1	244959	rs4096710	C	T	45.82	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DB;DP=85;Dels=0.00;HRun=0;HaplotypeScore=3.93;MQ=13.07;MQ0=59;QD=0.54;SB=-26.62	GT:AD:DP:GL:GQ	0/1:74,11:15:-12.39,-4.52,-39.32:78.66
-chr1	245030	rs4247528	T	G	34.76	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=14.80;MQ0=42;QD=0.49;SB=8.04	GT:AD:DP:GL:GQ	0/1:62,9:14:-10.98,-4.22,-38.66:67.59
-chr1	245496	.	A	G	44.84	LowQual	AC=2;AF=1.00;AN=2;DP=6;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=18.49;MQ0=2;QD=7.47;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,5:2:-7.89,-0.60,-0.00:6.02
-chr1	314685	.	A	T	13.26	PASS	AC=2;AF=1.00;AN=2;DP=27;Dels=0.00;HRun=1;HaplotypeScore=1.75;MQ=14.76;MQ0=13;OQ=314.43;QD=11.65;SB=-42.39	GT:AD:DP:GL:GQ	1/1:12,15:9:-35.03,-2.71,-0.00:27.09
-chr1	314938	.	G	C	1.97	PASS	AC=2;AF=1.00;AN=2;DP=25;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=12.45;MQ0=16;OQ=80.86;QD=3.23;SB=-10.00	GT:AD:DP:GL:GQ	1/1:16,9:3:-11.58,-0.91,-0.00:9.03
-chr1	314990	.	T	C	42.83	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DP=20;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=12.15;MQ0=12;QD=2.14;SB=-10.00	GT:AD:DP:GL:GQ	1/1:10,10:2:-7.69,-0.60,-0.00:6.02
-chr1	354114	rs3905534	G	T	4.20	PASS	AC=1;AF=0.50;AN=2;DB;DP=18;Dels=0.00;HRun=2;HaplotypeScore=1.96;MQ=17.14;MQ0=8;OQ=149.39;QD=8.30;SB=-10.00	GT:AD:DP:GL:GQ	0/1:10,8:10:-21.23,-3.01,-14.53:99
-chr1	374336	rs4959767	C	G	48.85	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DB;DP=85;Dels=0.00;HRun=0;HaplotypeScore=9.01;MQ=5.04;MQ0=75;QD=0.57;SB=-10.00	GT:AD:DP:GL:GQ	1/1:78,7:2:-8.29,-0.60,-0.00:6.02
-chr1	374388	rs4120938	C	T	0.16	PASS	AC=2;AF=1.00;AN=2;DB;DP=83;Dels=0.00;HRun=1;HaplotypeScore=7.85;MQ=3.88;MQ0=74;OQ=50.25;QD=0.61;SB=-10.00	GT:AD:DP:GL:GQ	1/1:76,7:2:-8.43,-0.60,-0.00:6.02
-chr1	374916	.	A	C	6.13	PASS	AC=2;AF=1.00;AN=2;DP=12;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=19.92;MQ0=3;OQ=209.71;QD=17.48;SB=-40.56	GT:AD:DP:GL:GQ	1/1:2,10:8:-24.56,-2.41,-0.01:24.03
-chr1	391491	.	T	G	33.28	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=74;Dels=0.00;HRun=1;HaplotypeScore=4.00;MQ=5.85;MQ0=67;QD=0.45;SB=-10.00	GT:AD:DP:GL:GQ	0/1:70,4:3:-7.51,-0.90,-3.44:25.36
-chr1	394166	.	C	T	0.46	PASS	AC=1;AF=0.50;AN=2;DP=102;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=7.89;MQ0=95;OQ=178.49;QD=1.75;SB=-10.00	GT:AD:DP:GL:GQ	0/1:96,6:7:-23.23,-2.11,-3.57:14.61
-chr1	394272	.	T	G	16.31	PASS	AC=1;AF=0.50;AN=2;DP=62;Dels=0.00;HRun=0;HaplotypeScore=0.74;MQ=17.93;MQ0=35;OQ=484.03;QD=7.81;SB=-10.00	GT:AD:DP:GL:GQ	0/1:39,23:22:-58.31,-6.63,-19.38:99
-chr1	394291	rs12121306	C	T	153.03	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=16.59;MQ0=30;OQ=364.11;QD=7.75;SB=-10.00	GT:AD:DP:GL:GQ	0/1:31,16:14:-43.91,-4.22,-11.01:67.92
-chr1	394310	.	C	T	0.18	PASS	AC=1;AF=0.50;AN=2;DP=46;Dels=0.00;HRun=1;HaplotypeScore=0.87;MQ=12.47;MQ0=36;OQ=147.86;QD=3.21;SB=-10.00	GT:AD:DP:GL:GQ	0/1:41,5:8:-20.48,-2.41,-10.61:81.97
-chr1	394537	.	G	A	2.58	PASS	AC=1;AF=0.50;AN=2;DP=105;Dels=0.00;HRun=0;HaplotypeScore=6.78;MQ=23.70;MQ0=52;OQ=1238.38;QD=11.79;SB=-421.21	GT:AD:DP:GL:GQ	0/1:65,40:50:-142.19,-15.07,-44.99:99
-chr1	394765	.	A	G	0.18	PASS	AC=1;AF=0.50;AN=2;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=7.43;MQ0=57;OQ=65.19;QD=1.07;SB=-10.00	GT:AD:DP:GL:GQ	0/1:58,3:4:-11.01,-1.20,-3.46:22.51
-chr1	394834	.	T	C	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=57;Dels=0.00;HRun=0;HaplotypeScore=7.99;MQ=12.79;MQ0=47;OQ=202.79;QD=3.56;SB=-10.00	GT:AD:DP:GL:GQ	0/1:49,8:10:-26.57,-3.01,-12.50:94.91
-chr1	394837	.	A	G	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=62;Dels=0.00;HRun=0;HaplotypeScore=7.99;MQ=12.80;MQ0=51;OQ=216.52;QD=3.49;SB=-10.00	GT:AD:DP:GL:GQ	0/1:48,14:11:-28.25,-3.31,-11.97:86.56
-chr1	404035	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=70;Dels=0.00;HRun=0;HaplotypeScore=20.45;MQ=17.63;MQ0=51;OQ=155.60;QD=2.22;SB=-84.79	GT:AD:DP:GL:GQ	0/1:62,8:17:-23.97,-5.12,-38.73:99
-chr1	511466	rs3902909	G	A	114.88	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=25.37;MQ0=1;OQ=299.83;QD=6.00;SB=-10.00	GT:AD:DP:GL:GQ	0/1:35,15:40:-45.34,-12.07,-85.80:99
-chr1	513688	rs61767343	C	T	0.33	PASS	AC=1;AF=0.50;AN=2;DB;DP=92;Dels=0.00;HRun=0;HaplotypeScore=5.41;MQ=21.22;MQ0=15;OQ=264.79;QD=2.88;SB=32.01	GT:AD:DP:GL:GQ	0/1:78,14:66:-49.68,-19.91,-161.21:99
-chr1	522943	.	G	A	31.72	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=95;Dels=0.00;HRun=14;HaplotypeScore=31.16;MQ=21.11;MQ0=30;QD=0.33;SB=74.23	GT:AD:DP:GL:GQ	0/1:84,11:55:-23.03,-16.58,-166.54:64.56
-chr1	523155	.	C	T	20.46	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=61;Dels=0.00;HRun=0;HaplotypeScore=7.86;MQ=11.23;MQ0=37;QD=0.34;SB=-10.00	GT:AD:DP:GL:GQ	0/1:56,5:10:-8.34,-3.02,-25.17:53.26
-chr1	523163	.	G	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=50;Dels=0.00;HRun=0;HaplotypeScore=7.11;MQ=11.49;MQ0=30;OQ=99.30;QD=1.99;SB=-10.00	GT:AD:DP:GL:GQ	0/1:37,13:9:-15.92,-2.71,-17.34:99
-chr1	523812	.	G	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=71;Dels=0.00;HRun=0;HaplotypeScore=9.50;MQ=11.52;MQ0=31;OQ=145.45;QD=2.05;SB=-10.00	GT:AD:DP:GL:GQ	0/1:61,10:10:-20.85,-3.02,-13.58:99
-chr1	523821	.	G	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=66;Dels=0.00;HRun=0;HaplotypeScore=9.21;MQ=15.64;MQ0=25;OQ=121.38;QD=1.84;SB=-10.00	GT:AD:DP:GL:GQ	0/1:57,9:12:-19.04,-3.62,-21.78:99
-chr1	523868	.	G	A	13.34	PASS	AC=1;AF=0.50;AN=2;DP=35;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=24.79;MQ0=4;OQ=177.69;QD=5.08;SB=-10.00	GT:AD:DP:GL:GQ	0/1:21,14:15:-25.58,-4.53,-24.67:99
-chr1	524029	.	T	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=73;Dels=0.00;HRun=1;HaplotypeScore=1.47;MQ=26.24;MQ0=29;OQ=72.18;QD=0.99;SB=-17.85	GT:AD:DP:GL:GQ	0/1:58,15:34:-20.75,-10.24,-100.17:99
-chr1	524055	rs6680723	C	T	0.11	PASS	AC=1;AF=0.50;AN=2;DB;DP=99;Dels=0.00;HRun=2;HaplotypeScore=11.94;MQ=30.97;MQ0=23;OQ=525.09;QD=5.30;SB=-269.67	GT:AD:DP:GL:GQ	0/1:68,31:65:-75.37,-19.58,-166.45:99
-chr1	524061	rs6680725	C	T	44.53	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DB;DP=105;Dels=0.00;HRun=0;HaplotypeScore=14.45;MQ=31.89;MQ0=22;QD=0.42;SB=98.20	GT:AD:DP:GL:GQ	0/1:92,13:70:-28.85,-21.11,-204.21:77.37
-chr1	524105	rs2792879	C	T	49.58	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DB;DP=124;Dels=0.00;HRun=0;HaplotypeScore=3.46;MQ=35.66;MQ0=5;QD=0.40;SB=82.58	GT:AD:DP:GL:GQ	0/1:106,18:95:-36.89,-28.65,-274.71:82.42
-chr1	524187	.	G	T	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=48;Dels=0.02;HRun=0;HaplotypeScore=13.69;MQ=38.72;MQ0=2;OQ=392.49;QD=8.18;SB=-133.62	GT:AD:DP:GL:GQ	0/1:25,22:25:-49.77,-7.23,-31.06:99
-chr1	524410	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=109;Dels=0.00;HRun=0;HaplotypeScore=27.66;MQ=40.25;MQ0=9;OQ=582.52;QD=5.34;SB=-205.05	GT:AD:DP:GL:GQ	0/1:82,27:83:-86.53,-25.00,-225.34:99
-chr1	524592	rs61767348	C	T	0.12	PASS	AC=1;AF=0.50;AN=2;DB;DP=125;Dels=0.00;HRun=1;HaplotypeScore=1.73;MQ=35.17;MQ0=0;OQ=230.33;QD=1.84;SB=-71.36	GT:AD:DP:GL:GQ	0/1:109,16:125:-63.96,-37.65,-391.79:99
-chr1	524704	.	C	G	0.30	PASS	AC=1;AF=0.50;AN=2;DP=76;Dels=0.00;HRun=0;HaplotypeScore=1.88;MQ=15.62;MQ0=42;OQ=247.71;QD=3.26;SB=-10.00	GT:AD:DP:GL:GQ	0/1:63,13:16:-32.88,-4.82,-37.64:99
-chr1	525671	.	A	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=125;Dels=0.00;HRun=0;HaplotypeScore=16.72;MQ=18.80;MQ0=44;OQ=189.70;QD=1.52;SB=-93.64	GT:AD:DP:GL:GQ	0/1:113,12:40:-34.30,-12.05,-118.97:99
-chr1	525779	.	A	G	0.63	PASS	AC=1;AF=0.50;AN=2;DP=84;Dels=0.00;HRun=0;HaplotypeScore=3.00;MQ=22.14;MQ0=11;OQ=348.30;QD=4.15;SB=-47.83	GT:AD:DP:GL:GQ	0/1:66,18:49:-52.88,-14.76,-137.92:99
-chr1	525958	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=99;Dels=0.00;HRun=0;HaplotypeScore=25.63;MQ=21.45;MQ0=28;OQ=60.59;QD=0.61;SB=-44.97	GT:AD:DP:GL:GQ	0/1:86,13:50:-24.43,-15.08,-139.15:93.42
-chr1	526007	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=141;Dels=0.00;HRun=0;HaplotypeScore=23.90;MQ=27.74;MQ0=20;OQ=72.77;QD=0.52;SB=-61.14	GT:AD:DP:GL:GQ	0/1:119,22:81:-34.97,-24.41,-279.63:99
-chr1	526679	.	C	T	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=97;Dels=0.00;HRun=0;HaplotypeScore=6.10;MQ=15.23;MQ0=50;OQ=159.06;QD=1.64;SB=-10.00	GT:AD:DP:GL:GQ	0/1:72,25:19:-24.93,-5.74,-37.85:99
-chr1	526910	.	C	T	33.12	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=107;Dels=0.00;HRun=0;HaplotypeScore=15.09;MQ=12.21;MQ0=78;QD=0.31;SB=8.05	GT:AD:DP:GL:GQ	0/1:95,11:28:-15.03,-8.43,-86.21:65.95
-chr1	527066	rs1109924	C	T	18.08	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DB;DP=82;Dels=0.00;HRun=0;HaplotypeScore=3.21;MQ=24.80;MQ0=20;QD=0.22;SB=56.20	GT:AD:DP:GL:GQ	0/1:74,8:55:-21.66,-16.57,-168.07:50.84
-chr1	527350	rs1105044	C	T	0.77	PASS	AC=1;AF=0.50;AN=2;DB;DP=28;Dels=0.00;HRun=0;HaplotypeScore=5.45;MQ=30.46;MQ0=9;OQ=109.38;QD=3.91;SB=5.03	GT:AD:DP:GL:GQ	0/1:19,9:14:-18.45,-4.22,-27.73:99
-chr1	527399	.	C	G	0.15	PASS	AC=1;AF=0.50;AN=2;DP=57;Dels=0.00;HRun=0;HaplotypeScore=4.45;MQ=22.48;MQ0=26;OQ=195.21;QD=3.42;SB=2.03	GT:AD:DP:GL:GQ	0/1:49,8:23:-29.74,-6.93,-66.80:99
-chr1	527400	.	A	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=60;Dels=0.00;HRun=1;HaplotypeScore=5.09;MQ=22.50;MQ0=26;OQ=149.94;QD=2.50;SB=3.82	GT:AD:DP:GL:GQ	0/1:51,8:23:-28.15,-9.87,-58.83:99
-chr1	527445	.	C	G	0.06	PASS	AC=1;AF=0.50;AN=2;DP=59;Dels=0.00;HRun=0;HaplotypeScore=2.13;MQ=15.27;MQ0=33;OQ=120.74;QD=2.05;SB=-43.89	GT:AD:DP:GL:GQ	0/1:47,12:21:-21.68,-6.33,-71.74:99
-chr1	530476	.	G	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=150;Dels=0.00;HRun=0;HaplotypeScore=1.88;MQ=20.30;MQ0=34;OQ=101.99;QD=0.68;SB=16.46	GT:AD:DP:GL:GQ	0/1:135,15:110:-46.63,-33.14,-338.24:99
-chr1	534258	rs61769278	G	A	0.04	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DB;DP=121;Dels=0.00;HRun=1;HaplotypeScore=0.95;MQ=9.91;MQ0=64;OQ=75.11;QD=0.62;SB=-10.00	GT:AD:DP:GL:GQ	0/1:81,40:6:-12.60,-1.81,-10.89:90.82
-chr1	534650	rs61769279	G	C	10.23	PASS	AC=1;AF=0.50;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=1.96;MQ=22.82;MQ0=11;OQ=171.47;QD=4.76;SB=-10.00	GT:AD:DP:GL:GQ	0/1:26,10:21:-26.76,-6.33,-62.71:99
-chr1	536560	rs12025928	A	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=3;HaplotypeScore=20.90;MQ=24.04;MQ0=6;OQ=206.19;QD=3.49;SB=8.06	GT:AD:DP:GL:GQ	0/1:26,33:37:-35.06,-11.16,-99.03:99
-chr1	536665	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=117;Dels=0.00;HRun=0;HaplotypeScore=53.76;MQ=25.56;MQ0=32;OQ=200.39;QD=1.71;SB=-106.47	GT:AD:DP:GL:GQ	0/1:92,25:66:-43.22,-19.90,-241.56:99
-chr1	536668	rs61769283	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=116;Dels=0.00;HRun=0;HaplotypeScore=52.49;MQ=25.44;MQ0=31;OQ=176.14;QD=1.52;SB=-101.57	GT:AD:DP:GL:GQ	0/1:89,25:62:-39.59,-18.70,-187.95:99
-chr1	536745	rs9438485	T	C	0.12	PASS	AC=1;AF=0.50;AN=2;DB;DP=88;Dels=0.00;HRun=0;HaplotypeScore=10.16;MQ=22.38;MQ0=21;OQ=208.92;QD=2.37;SB=-117.20	GT:AD:DP:GL:GQ	0/1:59,28:39:-35.93,-11.75,-108.78:99
-chr1	536815	rs9438487	T	C	0.71	PASS	AC=1;AF=0.50;AN=2;DB;DP=128;Dels=0.00;HRun=0;HaplotypeScore=5.65;MQ=26.07;MQ0=22;OQ=487.78;QD=3.81;SB=-195.14	GT:AD:DP:GL:GQ	0/1:76,52:82:-76.77,-24.71,-234.35:99
-chr1	536828	.	G	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=134;Dels=0.00;HRun=0;HaplotypeScore=2.07;MQ=25.55;MQ0=22;OQ=75.76;QD=0.57;SB=28.89	GT:AD:DP:GL:GQ	0/1:122,12:82:-35.59,-24.73,-235.80:99
-chr1	537100	.	G	A	12.85	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=103;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=13.16;MQ0=46;QD=0.12;SB=-7.00	GT:AD:DP:GL:GQ	0/1:81,22:25:-12.08,-7.53,-73.93:45.46
-chr1	537113	.	C	T	31	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=106;Dels=0.00;HRun=1;HaplotypeScore=0.95;MQ=12.14;MQ0=51;QD=0.29;SB=-6.99	GT:AD:DP:GL:GQ	0/1:84,22:18:-11.81,-5.42,-56.12:63.83
-chr1	537596	.	G	A	46.75	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=170;Dels=0.00;HRun=0;HaplotypeScore=23.62;MQ=12.88;MQ0=95;QD=0.28;SB=83.26	GT:AD:DP:GL:GQ	0/1:155,15:50:-23.03,-15.07,-148.87:79.59
-chr1	537643	rs9438495	T	C	0.24	PASS	AC=1;AF=0.50;AN=2;DB;DP=99;Dels=0.00;HRun=0;HaplotypeScore=0.98;MQ=12.92;MQ0=56;OQ=64.59;QD=0.65;SB=29.12	GT:AD:DP:GL:GQ	0/1:83,15:29:-18.49,-8.74,-88.70:97.43
-chr1	540378	.	T	C	1.66	PASS	AC=1;AF=0.50;AN=2;DP=89;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=10.44;MQ0=61;OQ=250.82;QD=2.82;SB=-10.00	GT:AD:DP:GL:GQ	0/1:69,20:17:-33.49,-5.12,-26.69:99
-chr1	543605	.	G	A	0.71	PASS	AC=1;AF=0.50;AN=2;DP=122;Dels=0.00;HRun=0;HaplotypeScore=2.16;MQ=19.26;MQ0=44;OQ=534.14;QD=4.38;SB=-165.55	GT:AD:DP:GL:GQ	0/1:95,27:72:-78.41,-21.71,-168.45:99
-chr1	544671	rs4120954	G	A	0.04	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DB;DP=119;Dels=0.00;HRun=1;HaplotypeScore=17.61;MQ=20.21;MQ0=40;OQ=184.77;QD=1.55;SB=-112.49	GT:AD:DP:GL:GQ	0/1:103,16:61:-40.15,-18.39,-172.29:99
-chr1	549231	.	A	G	0.07	PASS	AC=1;AF=0.50;AN=2;DP=81;Dels=0.00;HRun=0;HaplotypeScore=3.12;MQ=20.37;MQ0=37;OQ=179.14;QD=2.21;SB=30.55	GT:AD:DP:GL:GQ	0/1:67,14:40:-33.25,-12.05,-121.81:99
-chr1	549235	.	C	G	0.42	PASS	AC=1;AF=0.50;AN=2;DP=80;Dels=0.00;HRun=0;HaplotypeScore=3.80;MQ=21.34;MQ0=35;OQ=329.96;QD=4.12;SB=-9.65	GT:AD:DP:GL:GQ	0/1:65,15:43:-49.24,-12.96,-142.49:99
-chr1	549756	.	G	A	0.03	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=58;Dels=0.00;HRun=1;HaplotypeScore=4.27;MQ=22.29;MQ0=22;OQ=255.07;QD=4.40;SB=-111.11	GT:AD:DP:GL:GQ	0/1:45,13:33:-38.73,-9.94,-83.62:99
-chr1	551019	.	T	G	0.10	PASS	AC=1;AF=0.50;AN=2;DP=79;Dels=0.00;HRun=0;HaplotypeScore=3.16;MQ=26.98;MQ0=20;OQ=197.80;QD=2.50;SB=4.26	GT:AD:DP:GL:GQ	0/1:67,12:53:-39.03,-15.96,-159.29:99
-chr1	551526	rs3908981	C	A	0.27	PASS	AC=1;AF=0.50;AN=2;DB;DP=90;Dels=0.00;HRun=0;HaplotypeScore=1.15;MQ=9.51;MQ0=72;OQ=83.63;QD=0.93;SB=-10.00	GT:AD:DP:GL:GQ	0/1:72,18:8:-14.06,-2.41,-15.23:99
-chr1	552065	.	T	G	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=74;Dels=0.00;HRun=0;HaplotypeScore=3.65;MQ=19.90;MQ0=42;OQ=77.24;QD=1.04;SB=-15.93	GT:AD:DP:GL:GQ	0/1:68,6:22:-17.64,-6.63,-61.21:99
-chr1	553226	.	C	T	0.19	PASS	AC=1;AF=0.50;AN=2;DP=93;Dels=0.00;HRun=3;HaplotypeScore=1.62;MQ=24.97;MQ0=44;OQ=605.74;QD=6.51;SB=-203.18	GT:AD:DP:GL:GQ	0/1:67,26:42:-76.51,-12.65,-84.24:99
-chr1	553488	.	T	C	0.79	PASS	AC=2;AF=1.00;AN=2;DP=9;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=29.00;MQ0=0;OQ=309.81;QD=34.42;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,9:9:-34.57,-2.71,-0.00:27.09
-chr1	555282	rs55668158	C	G	1.90	PASS	AC=1;AF=0.50;AN=2;DB;DP=111;Dels=0.00;HRun=0;HaplotypeScore=7.94;MQ=40.12;MQ0=17;OQ=1152.38;QD=10.38;SB=-595.15	GT:AD:DP:GL:GQ	0/1:77,33:92:-146.24,-27.72,-249.40:99
-chr1	555454	rs7416152	C	T	0.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=134;Dels=0.00;HRun=0;HaplotypeScore=6.80;MQ=46.34;MQ0=10;OQ=133.21;QD=0.99;SB=31.52	GT:AD:DP:GL:GQ	0/1:100,33:107:-48.84,-32.23,-339.95:99
-chr1	555839	rs9283151	C	T	3.01	PASS	AC=1;AF=0.50;AN=2;DB;DP=135;Dels=0.00;HRun=0;HaplotypeScore=0.92;MQ=45.60;MQ0=9;OQ=549.78;QD=4.07;SB=-291.62	GT:AD:DP:GL:GQ	0/1:100,35:123:-95.32,-37.06,-353.94:99
-chr1	555911	rs6421780	G	A	0.18	PASS	AC=1;AF=0.50;AN=2;DB;DP=128;Dels=0.00;HRun=0;HaplotypeScore=11.39;MQ=39.59;MQ0=14;OQ=584.19;QD=4.56;SB=-299.10	GT:AD:DP:GL:GQ	0/1:90,32:104:-93.03,-31.32,-293.74:99
-chr1	557751	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=2961;Dels=0.00;HRun=2;HaplotypeScore=55.38;MQ=12.90;MQ0=2051;OQ=15633.32;QD=5.28;SB=59.42	GT:AD:DP:GL:GQ	0/1:109,2851:490:-1562.33,-147.66,-305.00:99
-chr1	558077	.	C	T	9.05	PASS	AC=1;AF=0.50;AN=2;DP=124;Dels=0.00;HRun=0;HaplotypeScore=3.52;MQ=45.73;MQ0=8;OQ=1080.95;QD=8.72;SB=-436.58	GT:AD:DP:GL:GQ	0/1:87,37:109:-144.24,-32.87,-230.68:99
-chr1	559290	rs55665739	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=606;Dels=0.00;HRun=3;HaplotypeScore=17.31;MQ=15.96;MQ0=469;OQ=1033.33;QD=1.71;SB=-487.92	GT:AD:DP:GL:GQ	0/1:561,45:103:-137.67,-31.06,-222.34:99
-chr1	559575	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=286;Dels=0.00;HRun=0;HaplotypeScore=67.59;MQ=29.40;MQ0=143;OQ=1081.89;QD=3.78;SB=-504.88	GT:AD:DP:GL:GQ	0/1:248,38:131:-150.96,-39.49,-301.87:99
-chr1	560501	rs3912527	T	C	0.59	PASS	AC=1;AF=0.50;AN=2;DB;DP=105;Dels=0.00;HRun=0;HaplotypeScore=2.99;MQ=42.53;MQ0=1;OQ=256.32;QD=2.44;SB=101.36	GT:AD:DP:GL:GQ	0/1:81,24:98:-58.45,-29.53,-320.39:99
-chr1	561486	rs4951848	T	G	0.07	PASS	AC=1;AF=0.50;AN=2;DB;DP=125;Dels=0.00;HRun=3;HaplotypeScore=1.10;MQ=14.41;MQ0=91;OQ=408.98;QD=3.27;SB=-10.00	GT:AD:DP:GL:GQ	0/1:75,49:28:-52.62,-8.43,-47.04:99
-chr1	561492	rs4951847	T	C	0.48	PASS	AC=1;AF=0.50;AN=2;DB;DP=117;Dels=0.00;HRun=1;HaplotypeScore=0.95;MQ=12.50;MQ0=93;OQ=266.80;QD=2.28;SB=-10.00	GT:AD:DP:GL:GQ	0/1:73,44:19:-35.69,-5.72,-37.10:99
-chr1	561756	rs4092521	C	A	0.10	PASS	AC=1;AF=0.50;AN=2;DB;DP=234;Dels=0.00;HRun=0;HaplotypeScore=3.92;MQ=28.08;MQ0=93;OQ=133.54;QD=0.57;SB=-15.37	GT:AD:DP:GL:GQ	0/1:211,23:136:-57.61,-40.97,-421.13:99
-chr1	574427	rs4317776	G	T	26.75	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DB;DP=197;Dels=0.00;HRun=9;HaplotypeScore=3.53;MQ=6.95;MQ0=179;QD=0.14;SB=-30.89	GT:AD:DP:GL:GQ	0/1:180,17:17:-11.08,-5.12,-48.02:59.57
-chr1	575363	.	A	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=108;Dels=0.00;HRun=0;HaplotypeScore=13.77;MQ=11.89;MQ0=66;OQ=93.79;QD=0.87;SB=-10.00	GT:AD:DP:GL:GQ	0/1:97,11:18:-18.09,-5.43,-51.57:99
-chr1	575571	.	A	G	44.95	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=91;Dels=0.00;HRun=0;HaplotypeScore=5.95;MQ=12.50;MQ0=35;QD=0.49;SB=-7.00	GT:AD:DP:GL:GQ	0/1:88,3:9:-10.49,-2.71,-23.69:77.78
-chr1	575656	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=119;Dels=0.00;HRun=0;HaplotypeScore=17.86;MQ=21.34;MQ0=33;OQ=102.29;QD=0.86;SB=-15.11	GT:AD:DP:GL:GQ	0/1:101,18:60:-31.59,-18.08,-183.63:99
-chr1	577203	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=76;Dels=0.00;HRun=2;HaplotypeScore=18.06;MQ=18.60;MQ0=50;OQ=68.56;QD=0.90;SB=-15.46	GT:AD:DP:GL:GQ	0/1:71,5:16:-14.96,-4.82,-42.28:99
-chr1	578945	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=108;Dels=0.01;HRun=3;HaplotypeScore=26.60;MQ=35.12;MQ0=11;OQ=422.46;QD=3.91;SB=-212.09	GT:AD:DP:GL:GQ	0/1:86,21:88:-72.04,-26.51,-252.61:99
-chr1	581862	rs428603	C	T	12.84	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DB;DP=117;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=16.17;MQ0=62;QD=0.11;SB=5.04	GT:AD:DP:GL:GQ	0/1:112,5:25:-12.07,-7.53,-76.64:45.44
-chr1	582131	rs2808300	G	T	0.12	PASS	AC=1;AF=0.50;AN=2;DB;DP=133;Dels=0.00;HRun=0;HaplotypeScore=1.92;MQ=20.19;MQ0=60;OQ=103.03;QD=0.77;SB=74.25	GT:AD:DP:GL:GQ	0/1:113,20:71:-34.97,-21.38,-223.52:99
-chr1	590341	.	G	A	2.32	PASS	AC=1;AF=0.50;AN=2;DP=118;Dels=0.00;HRun=0;HaplotypeScore=4.02;MQ=31.66;MQ0=1;OQ=697.92;QD=5.91;SB=-148.83	GT:AD:DP:GL:GQ	0/1:88,30:101:-103.52,-30.45,-248.69:99
-chr1	591004	.	C	T	96.57	PASS	AC=1;AF=0.50;AN=2;DP=92;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=34.15;MQ0=0;OQ=697.04;QD=7.58;SB=-276.23	GT:AD:DP:GL:GQ	0/1:66,26:89:-99.83,-26.84,-204.19:99
-chr1	591498	rs2531322	C	A	0.53	PASS	AC=1;AF=0.50;AN=2;DB;DP=129;Dels=0.00;HRun=1;HaplotypeScore=0.73;MQ=32.80;MQ0=0;OQ=356.51;QD=2.76;SB=131.06	GT:AD:DP:GL:GQ	0/1:108,21:125:-76.61,-37.67,-331.80:99
-chr1	592316	.	T	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=66;Dels=0.00;HRun=0;HaplotypeScore=5.89;MQ=8.09;MQ0=42;OQ=58.17;QD=0.88;SB=-10.00	GT:AD:DP:GL:GQ	0/1:52,12:5:-10.61,-1.51,-6.31:48.04
-chr1	592508	rs2686868	C	T	15.96	PASS	AC=1;AF=0.50;AN=2;DB;DP=119;Dels=0.00;HRun=1;HaplotypeScore=3.16;MQ=34.52;MQ0=0;OQ=1500.76;QD=12.61;SB=-645.23	GT:AD:DP:GL:GQ	0/1:71,48:113:-187.40,-34.04,-240.50:99
-chr1	616184	rs2808330	A	G	13.87	PASS	AC=1;AF=0.50;AN=2;DB;DP=103;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=40.61;MQ0=5;OQ=348.18;QD=3.38;SB=86.31	GT:AD:DP:GL:GQ	0/1:75,28:95:-66.73,-28.63,-299.16:99
-chr1	625884	rs3857304	G	A	2.14	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=6.38;MQ0=48;OQ=115.97;QD=2.23;SB=-51.67	GT:AD:DP:GL:GQ	1/1:47,5:4:-15.13,-1.21,-0.00:12.03
-chr1	625907	rs4030160	G	A	213.52	PASS	AC=2;AF=1.00;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=0.58;MQ=11.50;MQ0=27;OQ=320.38;QD=8.90;SB=-93.34	GT:AD:DP:GL:GQ	1/1:25,11:9:-35.62,-2.71,-0.00:27.09
-chr1	625979	rs3871845	G	C	249.04	PASS	AC=2;AF=1.00;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=1.16;MQ=11.96;MQ0=27;OQ=358.10;QD=9.68;SB=-129.40	GT:AD:DP:GL:GQ	1/1:26,11:9:-39.40,-2.71,-0.00:27.09
-chr1	626181	rs3873089	G	A	177.45	PASS	AC=2;AF=1.00;AN=2;DB;DP=13;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=25.43;MQ0=3;OQ=376.84;QD=28.99;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,13:10:-41.27,-3.01,-0.00:30.10
-chr1	638976	.	C	T	0.12	PASS	AC=2;AF=1.00;AN=2;DP=27;Dels=0.00;HRun=0;HaplotypeScore=4.06;MQ=23.85;MQ0=8;OQ=648.49;QD=24.02;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,27:17:-68.44,-5.12,-0.00:51.17
-chr1	640686	.	A	G	25.04	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=108;Dels=0.00;HRun=1;HaplotypeScore=1.00;MQ=6.84;MQ0=102;QD=0.23;SB=-10.00	GT:AD:DP:GL:GQ	0/1:98,10:6:-7.60,-1.81,-15.47:57.87
-chr1	641012	.	C	T	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=157;Dels=0.00;HRun=1;HaplotypeScore=5.72;MQ=12.45;MQ0=138;OQ=282.66;QD=1.80;SB=-113.62	GT:AD:DP:GL:GQ	0/1:142,15:18:-36.97,-5.42,-32.71:99
-chr1	647651	.	G	C	91.46	PASS	AC=2;AF=1.00;AN=2;DP=47;Dels=0.00;HRun=0;HaplotypeScore=1.68;MQ=15.14;MQ0=31;OQ=441.56;QD=9.39;SB=-238.61	GT:AD:DP:GL:GQ	1/1:28,19:11:-47.74,-3.31,-0.00:33.11
-chr1	652720	rs62639125	G	A	47.02	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=1.98;MQ=8.82;MQ0=19;QD=1.42;SB=-10.00	GT:AD:DP:GL:GQ	1/1:13,20:2:-8.11,-0.60,-0.00:6.02
-chr1	652960	rs61769340	G	C	105.13	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=1.78;MQ=20.58;MQ0=11;OQ=1522.59;QD=27.68;SB=-684.47	GT:AD:DP:GL:GQ	1/1:10,45:39:-155.88,-11.77,-0.03:99
-chr1	656406	.	G	A	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=112;Dels=0.00;HRun=0;HaplotypeScore=2.49;MQ=11.93;MQ0=83;OQ=127.34;QD=1.14;SB=-0.98	GT:AD:DP:GL:GQ	0/1:95,17:17:-21.14,-5.12,-45.67:99
-chr1	662072	.	G	A	11.72	PASS	AC=1;AF=0.50;AN=2;DP=134;Dels=0.00;HRun=0;HaplotypeScore=4.71;MQ=27.50;MQ0=7;OQ=1481.48;QD=11.06;SB=-511.41	GT:AD:DP:GL:GQ	0/1:80,54:118:-187.00,-35.57,-233.79:99
-chr1	662535	.	C	T	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=130;Dels=0.00;HRun=1;HaplotypeScore=4.63;MQ=12.94;MQ0=86;OQ=221.86;QD=1.71;SB=-10.00	GT:AD:DP:GL:GQ	0/1:117,13:31:-34.81,-9.34,-77.61:99
-chr1	664297	.	A	T	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=194;Dels=0.00;HRun=1;HaplotypeScore=8.91;MQ=25.89;MQ0=44;OQ=139.99;QD=0.72;SB=29.32	GT:AD:DP:GL:GQ	0/1:135,59:118:-52.83,-35.54,-396.03:99
-chr1	664319	.	G	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=197;Dels=0.00;HRun=1;HaplotypeScore=4.98;MQ=25.84;MQ0=39;OQ=562.89;QD=2.86;SB=-70.36	GT:AD:DP:GL:GQ	0/1:152,44:131:-101.81,-42.24,-385.33:99
-chr1	665009	.	G	A	0.15	PASS	AC=2;AF=1.00;AN=2;DP=62;Dels=0.00;HRun=0;HaplotypeScore=7.66;MQ=13.29;MQ0=30;OQ=394.21;QD=6.36;SB=-10.00	GT:AD:DP:GL:GQ	1/1:20,42:11:-43.01,-3.32,-0.01:33.10
-chr1	665981	.	C	T	314.88	PASS	AC=1;AF=0.50;AN=2;DP=80;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=21.49;MQ0=9;OQ=1228.86;QD=15.36;SB=-521.03	GT:AD:DP:GL:GQ	0/1:42,38:68:-146.65,-20.48,-114.04:99
-chr1	678857	.	T	C	37.39	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=64;Dels=0.00;HRun=0;HaplotypeScore=1.89;MQ=9.96;MQ0=52;QD=0.58;SB=-41.94	GT:AD:DP:GL:GQ	0/1:58,5:10:-10.04,-3.02,-24.70:70.23
-chr1	681407	.	T	A	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DP=56;Dels=0.00;HRun=13;HaplotypeScore=8.39;MQ=28.14;MQ0=23;OQ=991.49;QD=17.71;SB=-487.41	GT:AD:DP:GL:GQ	1/1:17,39:33:-109.19,-9.95,-6.46:34.91
-chr1	681927	.	C	G	40.97	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=76;Dels=0.00;HRun=0;HaplotypeScore=4.89;MQ=4.61;MQ0=72;QD=0.54;SB=-10.00	GT:AD:DP:GL:GQ	0/1:72,2:3:-8.29,-0.90,-4.05:31.44
-chr1	684740	rs1829739	A	C	31.20	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=3;HaplotypeScore=24.15;MQ=12.41;MQ0=41;QD=0.60;SB=-34.97	GT:AD:DP:GL:GQ	0/1:47,5:9:-9.12,-2.71,-21.21:64.03
-chr1	684742	.	C	A	14.57	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=52;Dels=0.00;HRun=0;HaplotypeScore=37.61;MQ=12.41;MQ0=41;QD=0.28;SB=-31.35	GT:AD:DP:GL:GQ	0/1:46,6:9:-7.44,-2.71,-24.53:47.25
-chr1	684781	.	C	T	48.14	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DP=48;Dels=0.00;HRun=2;HaplotypeScore=2.66;MQ=4.69;MQ0=46;QD=1.00;SB=-49.56	GT:AD:DP:GL:GQ	1/1:40,8:2:-8.22,-0.60,-0.00:6.02
-chr1	684978	.	A	T	38.37	PASS	AC=2;AF=1.00;AN=2;DP=6;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=21.29;MQ0=2;OQ=86.08;QD=14.35;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,6:3:-12.10,-0.90,-0.00:9.03
-chr1	690691	rs6685320	T	A	0.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=94;Dels=0.00;HRun=1;HaplotypeScore=0.87;MQ=41.41;MQ0=1;OQ=71.22;QD=0.76;SB=149.48	GT:AD:DP:GL:GQ	0/1:83,11:90:-37.51,-27.11,-298.94:99
-chr1	692785	.	C	T	0.89	PASS	AC=1;AF=0.50;AN=2;DP=123;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=27.63;MQ0=14;OQ=282.72;QD=2.30;SB=-80.41	GT:AD:DP:GL:GQ	0/1:107,16:98:-61.07,-29.52,-300.46:99
-chr1	692834	.	C	T	2.02	PASS	AC=1;AF=0.50;AN=2;DP=118;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=26.70;MQ0=10;OQ=722.71;QD=6.12;SB=-381.76	GT:AD:DP:GL:GQ	0/1:89,29:108:-108.08,-32.53,-294.03:99
-chr1	692878	rs12124557	G	C	71.38	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=18.28;MQ0=34;OQ=350.61;QD=4.61;SB=-168.38	GT:AD:DP:GL:GQ	0/1:61,15:41:-50.70,-12.35,-126.27:99
-chr1	694230	rs9727436	T	C	8.89	PASS	AC=2;AF=1.00;AN=2;DB;DP=19;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=32.48;MQ0=2;OQ=333.56;QD=17.56;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,18:12:-36.95,-3.62,-0.01:36.08
-chr1	695745	.	G	A	102.02	PASS	AC=1;AF=0.50;AN=2;DP=73;Dels=0.00;HRun=0;HaplotypeScore=2.14;MQ=41.82;MQ0=0;OQ=1169.68;QD=16.02;SB=-501.47	GT:AD:DP:GL:GQ	0/1:36,37:71:-141.66,-21.41,-112.07:99
-chr1	696231	rs12029736	A	G	92.82	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=1;HaplotypeScore=1.95;MQ=39.21;MQ0=1;OQ=1205.31;QD=20.78;SB=-587.73	GT:AD:DP:GL:GQ	0/1:5,53:49:-138.60,-14.79,-16.39:15.94
-chr1	696641	.	G	A	0.05	FDRtranche0.10to1.00	AC=2;AF=1.00;AN=2;DP=84;Dels=0.00;HRun=0;HaplotypeScore=11.92;MQ=21.76;MQ0=28;OQ=1527.01;QD=18.18;SB=-47.56	GT:AD:DP:GL:GQ	1/1:26,58:39:-156.30,-11.75,-0.02:99
-chr1	704290	rs12028261	G	A	67.98	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=1;HaplotypeScore=1.14;MQ=38.97;MQ0=0;OQ=1407.21;QD=35.18;SB=-656.37	GT:AD:DP:GL:GQ	1/1:0,40:36:-144.32,-10.85,-0.01:99
-chr1	705211	rs3131984	T	G	181.58	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=0.58;MQ=48.59;MQ0=0;OQ=1797.71;QD=32.69;SB=-808.10	GT:AD:DP:GL:GQ	1/1:0,55:52:-183.37,-15.66,-0.02:99
-chr1	705859	rs4614203	A	T	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=9;HaplotypeScore=9.09;MQ=20.66;MQ0=19;OQ=690.18;QD=13.80;SB=-46.39	GT:AD:DP:GL:GQ	1/1:1,48:20:-72.61,-6.03,-0.01:60.18
-chr1	708249	rs10900602	A	G	1.62	PASS	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.00;HRun=2;HaplotypeScore=0.93;MQ=25.93;MQ0=21;OQ=1118.18;QD=17.47;SB=-10.00	GT:AD:DP:GL:GQ	1/1:1,63:38:-115.46,-11.48,-0.05:99
-chr1	708418	rs10751453	T	C	415.24	PASS	AC=2;AF=1.00;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=48.69;MQ0=5;OQ=1667.51;QD=27.79;SB=-566.12	GT:AD:DP:GL:GQ	1/1:4,56:54:-174.43,-16.28,-4.09:99
-chr1	710103	rs3121393	T	C	439.85	PASS	AC=2;AF=1.00;AN=2;DB;DP=87;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=25.62;MQ0=19;OQ=1791.16;QD=20.59;SB=-717.22	GT:AD:DP:GL:GQ	1/1:0,87:51:-182.72,-15.36,-0.02:99
-chr1	710660	rs3115846	G	A	23.98	PASS	AC=2;AF=1.00;AN=2;DB;DP=56;Dels=0.00;HRun=3;HaplotypeScore=0.95;MQ=32.94;MQ0=7;OQ=1843.21;QD=32.91;SB=-738.02	GT:AD:DP:GL:GQ	1/1:0,56:47:-187.92,-14.16,-0.01:99
-chr1	713754	rs2977670	G	C	680.35	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=47.16;MQ0=0;OQ=1954.35;QD=36.87;SB=-819.16	GT:AD:DP:GL:GQ	1/1:0,53:49:-199.05,-14.78,-0.03:99
-chr1	714052	.	G	A	38.81	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=97;Dels=0.00;HRun=1;HaplotypeScore=27.06;MQ=47.82;MQ0=13;QD=0.40;SB=-19.66	GT:AD:DP:GL:GQ	0/1:88,9:69:-27.95,-20.79,-220.66:71.64
-chr1	714724	rs12123401	G	A	77.21	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=38.16;MQ=32.18;MQ0=19;QD=1.19;SB=53.18	GT:AD:DP:GL:GQ	0/1:50,14:32:-20.64,-9.64,-97.41:99
-chr1	714732	rs12735556	C	A	597.50	HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=1;HaplotypeScore=35.96;MQ=32.37;MQ0=15;QD=9.34;SB=-186.20	GT:AD:DP:GL:GQ	0/1:31,30:31:-72.37,-9.34,-42.36:99
-chr1	714734	rs12735557	C	G	606.51	HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=32.96;MQ=32.01;MQ0=15;QD=9.48;SB=-232.37	GT:AD:DP:GL:GQ	0/1:31,33:32:-73.58,-9.64,-63.94:99
-chr1	714811	.	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=96;Dels=0.00;HRun=1;HaplotypeScore=105.18;MQ=32.80;MQ0=13;OQ=394.82;QD=4.11;SB=-25.79	GT:AD:DP:GL:GQ	0/1:48,48:42:-55.42,-12.65,-93.88:99
-chr1	714830	.	G	A	44.58	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=97;Dels=0.00;HRun=2;HaplotypeScore=123.02;MQ=32.55;MQ0=17;QD=0.46;SB=2.03	GT:AD:DP:GL:GQ	0/1:60,27:26:-15.57,-7.83,-82.81:77.42
-chr1	714865	.	G	A	118.87	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=100;Dels=0.00;HRun=2;HaplotypeScore=72.07;MQ=36.16;MQ0=17;QD=1.19;SB=45.52	GT:AD:DP:GL:GQ	0/1:83,11:39:-26.94,-11.77,-99.77:99
-chr1	714869	.	G	A	210.22	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=101;Dels=0.00;HRun=0;HaplotypeScore=70.54;MQ=36.82;MQ0=18;QD=2.08;SB=89.30	GT:AD:DP:GL:GQ	0/1:78,22:52:-39.97,-15.66,-154.79:99
-chr1	714870	.	G	C	132.10	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=99;Dels=0.00;HRun=0;HaplotypeScore=64.77;MQ=36.96;MQ0=18;QD=1.33;SB=86.32	GT:AD:DP:GL:GQ	0/1:81,18:51:-31.86,-15.37,-195.72:99
-chr1	714885	.	T	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=75;Dels=0.00;HRun=1;HaplotypeScore=11.63;MQ=42.34;MQ0=19;OQ=59.67;QD=0.80;SB=57.28	GT:AD:DP:GL:GQ	0/1:59,16:42:-21.91,-12.66,-130.29:92.50
-chr1	714965	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=93;Dels=0.06;HRun=0;HaplotypeScore=109.90;MQ=37.50;MQ0=15;OQ=104.38;QD=1.12;SB=93.07	GT:AD:DP:GL:GQ	0/1:76,7:50:-34.61,-20.89,-189.48:99
-chr1	714987	.	A	T	75.82	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=80;Dels=0.03;HRun=1;HaplotypeScore=85.54;MQ=37.34;MQ0=12;QD=0.95;SB=77.28	GT:AD:DP:GL:GQ	0/1:70,6:44:-26.77,-15.90,-141.85:99
-chr1	714990	.	A	G	169.75	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=75;Dels=0.04;HRun=1;HaplotypeScore=76.84;MQ=38.08;MQ0=11;QD=2.26;SB=1.07	GT:AD:DP:GL:GQ	0/1:50,19:44:-36.22,-15.96,-136.58:99
-chr1	714991	.	A	G	49.83	DPFilter;HARD_TO_VALIDATE;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=75;Dels=0.01;HRun=0;HaplotypeScore=63.75;MQ=38.08;MQ0=11;QD=0.66;SB=86.30	GT:AD:DP:GL:GQ	0/1:68,6:44:-21.52,-13.26,-154.68:82.67
-chr1	714995	.	C	A	39.02	DPFilter;HARD_TO_VALIDATE;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=72;Dels=0.00;HRun=2;HaplotypeScore=68.11;MQ=38.07;MQ0=12;QD=0.54;SB=48.86	GT:AD:DP:GL:GQ	0/1:52,10:39:-31.66,-24.48,-125.33:71.86
-chr1	715012	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=61;Dels=0.00;HRun=1;HaplotypeScore=28.31;MQ=43.81;MQ0=11;OQ=81.07;QD=1.33;SB=77.26	GT:AD:DP:GL:GQ	0/1:50,6:42:-27.43,-16.04,-129.03:99
-chr1	715014	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=59;Dels=0.00;HRun=1;HaplotypeScore=28.31;MQ=44.76;MQ0=10;OQ=135.00;QD=2.29;SB=80.30	GT:AD:DP:GL:GQ	0/1:48,10:43:-29.74,-12.96,-149.46:99
-chr1	715704	.	T	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=118;Dels=0.00;HRun=1;HaplotypeScore=25.25;MQ=54.80;MQ0=2;OQ=145.06;QD=1.23;SB=-43.38	GT:AD:DP:GL:GQ	0/1:97,21:107:-50.01,-32.22,-342.89:99
-chr1	716048	.	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=178;Dels=0.00;HRun=1;HaplotypeScore=18.47;MQ=39.54;MQ0=8;OQ=52.50;QD=0.29;SB=34.27	GT:AD:DP:GL:GQ	0/1:78,99:81:-32.94,-24.40,-274.16:85.34
-chr1	716061	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=185;Dels=0.00;HRun=0;HaplotypeScore=21.67;MQ=39.51;MQ0=6;OQ=115.15;QD=0.62;SB=43.85	GT:AD:DP:GL:GQ	0/1:135,49:85:-40.41,-25.61,-331.38:99
-chr1	716222	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=118;Dels=0.00;HRun=2;HaplotypeScore=139.36;MQ=31.95;MQ0=27;OQ=92.92;QD=0.79;SB=-50.76	GT:AD:DP:GL:GQ	0/1:103,13:47:-26.73,-14.16,-149.22:99
-chr1	716344	rs3131980	T	G	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=76;Dels=0.00;HRun=1;HaplotypeScore=39.71;MQ=55.45;MQ0=6;OQ=2415.81;QD=31.79;SB=-1086.51	GT:AD:DP:GL:GQ	1/1:2,74:68:-245.18,-20.48,-0.02:99
-chr1	716802	rs4520358	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=160;Dels=0.00;HRun=0;HaplotypeScore=127.95;MQ=28.01;MQ0=48;OQ=1542.52;QD=9.64;SB=-717.92	GT:AD:DP:GL:GQ	0/1:109,49:76:-180.46,-22.93,-134.20:99
-chr1	716807	rs3131979	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=169;Dels=0.00;HRun=1;HaplotypeScore=146.45;MQ=27.53;MQ0=52;OQ=2520.74;QD=14.92;SB=-1257.54	GT:AD:DP:GL:GQ	0/1:69,89:79:-286.20,-30.85,-56.55:99
-chr1	717392	.	A	G	3.52	PASS	AC=1;AF=0.50;AN=2;DP=64;Dels=0.00;HRun=1;HaplotypeScore=3.37;MQ=24.74;MQ0=13;OQ=554.36;QD=8.66;SB=-175.95	GT:AD:DP:GL:GQ	0/1:36,28:38:-70.17,-11.45,-77.18:99
-chr1	717776	.	A	G	0.05	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=109;Dels=0.00;HRun=0;HaplotypeScore=2.77;MQ=36.84;MQ0=8;OQ=198.21;QD=1.82;SB=-48.31	GT:AD:DP:GL:GQ	0/1:82,26:93:-51.12,-28.02,-315.62:99
-chr1	717825	.	T	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=104;Dels=0.00;HRun=0;HaplotypeScore=2.36;MQ=45.12;MQ0=3;OQ=93.24;QD=0.90;SB=-41.95	GT:AD:DP:GL:GQ	0/1:87,17:97:-41.83,-29.22,-341.26:99
-chr1	718022	rs3131978	C	T	227.01	PASS	AC=2;AF=1.00;AN=2;DB;DP=79;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=24.78;MQ0=12;OQ=2206.38;QD=27.93;SB=-528.20	GT:AD:DP:GL:GQ	1/1:0,79:55:-224.24,-16.57,-0.01:99
-chr1	718105	rs3131977	C	G	701.77	PASS	AC=2;AF=1.00;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=30.42;MQ0=9;OQ=2564.24;QD=33.30;SB=-886.52	GT:AD:DP:GL:GQ	1/1:0,77:61:-260.03,-18.38,-0.02:99
-chr1	718468	rs2977661	C	A	0.97	PASS	AC=1;AF=0.50;AN=2;DB;DP=98;Dels=0.00;HRun=0;HaplotypeScore=2.62;MQ=44.88;MQ0=1;OQ=306.65;QD=3.13;SB=125.41	GT:AD:DP:GL:GQ	0/1:81,17:92:-61.67,-27.72,-254.10:99
-chr1	719542	rs4951859	C	G	20.03	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=3;HaplotypeScore=0.73;MQ=51.87;MQ0=0;OQ=2314.11;QD=40.60;SB=-1158.05	GT:AD:DP:GL:GQ	1/1:0,57:55:-235.02,-16.58,-0.02:99
-chr1	722635	.	G	A	178.90	PASS	AC=1;AF=0.50;AN=2;DP=75;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=30.65;MQ0=17;OQ=703.25;QD=9.38;SB=-329.31	GT:AD:DP:GL:GQ	0/1:40,35:48:-88.07,-14.46,-95.92:99
-chr1	723861	rs3094321	C	T	2.53	PASS	AC=2;AF=1.00;AN=2;DB;DP=31;Dels=0.00;HRun=1;HaplotypeScore=4.03;MQ=14.10;MQ0=13;OQ=171.30;QD=5.53;SB=-52.67	GT:AD:DP:GL:GQ	1/1:0,31:5:-20.69,-1.51,-0.00:15.05
-chr1	723905	rs3115866	G	A	435.39	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=36.45;MQ0=11;OQ=1488.74;QD=31.02;SB=-417.55	GT:AD:DP:GL:GQ	1/1:0,48:37:-152.47,-11.14,-0.01:99
-chr1	724152	rs2427932	G	A	28.59	PASS	AC=1;AF=0.50;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=1.89;MQ=40.65;MQ0=10;OQ=544.36;QD=7.78;SB=29.11	GT:AD:DP:GL:GQ	0/1:46,24:57:-74.91,-17.19,-123.40:99
-chr1	724325	rs12564807	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.02;HRun=14;HaplotypeScore=12.95;MQ=25.23;MQ0=25;OQ=486.84;QD=10.36;SB=-195.27	GT:AD:DP:GL:GQ	0/1:7,39:20:-57.99,-6.03,-17.33:99
-chr1	724354	rs7518433	T	C	213.81	PASS	AC=2;AF=1.00;AN=2;DB;DP=15;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=16.24;MQ0=8;OQ=108.50;QD=7.23;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,15:4:-14.38,-1.21,-0.00:12.04
-chr1	724429	.	G	A	5.67	PASS	AC=1;AF=0.50;AN=2;DP=118;Dels=0.00;HRun=1;HaplotypeScore=1.73;MQ=39.71;MQ0=12;OQ=1919.08;QD=16.26;SB=-856.39	GT:AD:DP:GL:GQ	0/1:56,62:102:-225.91,-30.72,-172.49:99
-chr1	724483	rs2427930	A	G	156.88	PASS	AC=1;AF=0.50;AN=2;DB;DP=120;Dels=0.00;HRun=0;HaplotypeScore=0.92;MQ=45.92;MQ0=8;OQ=1015.40;QD=8.46;SB=-368.74	GT:AD:DP:GL:GQ	0/1:73,47:110:-137.96,-33.13,-289.42:99
-chr1	724814	rs61770166	A	G	0.05	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DB;DP=100;Dels=0.01;HRun=0;HaplotypeScore=8.00;MQ=38.81;MQ0=11;OQ=57.16;QD=0.57;SB=101.37	GT:AD:DP:GL:GQ	0/1:74,25:85:-34.30,-25.30,-302.54:90
-chr1	725289	rs10900603	G	A	319.30	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=20.84;MQ0=12;OQ=1308.47;QD=22.56;SB=-614.32	GT:AD:DP:GL:GQ	1/1:0,58:33:-134.44,-9.94,-0.01:99
-chr1	727603	rs3893479	G	A	3.33	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=1.99;MQ=20.83;MQ0=35;OQ=241.46;QD=3.71;SB=-122.11	GT:AD:DP:GL:GQ	0/1:49,15:27:-35.56,-8.14,-65.14:99
-chr1	729005	rs2340527	T	A	17.56	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DB;DP=95;Dels=0.00;HRun=11;HaplotypeScore=0.00;MQ=42.93;MQ0=12;QD=0.18;SB=2.25	GT:AD:DP:GL:GQ	0/1:70,25:68:-25.52,-20.49,-222.57:50.31
-chr1	729073	rs2427917	A	G	0.66	PASS	AC=2;AF=1.00;AN=2;DB;DP=69;Dels=0.00;HRun=3;HaplotypeScore=1.32;MQ=36.83;MQ0=11;OQ=1725.34;QD=25.00;SB=-386.59	GT:AD:DP:GL:GQ	1/1:8,61:54:-180.20,-16.27,-4.08:99
-chr1	729289	rs3131973	A	G	242.97	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=20.01;MQ0=22;OQ=768.10;QD=13.48;SB=-48.96	GT:AD:DP:GL:GQ	1/1:0,57:23:-80.40,-6.93,-0.01:69.20
-chr1	729391	rs3094317	G	A	25.41	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=1;HaplotypeScore=1.00;MQ=29.31;MQ0=14;OQ=1050.45;QD=23.87;SB=-501.02	GT:AD:DP:GL:GQ	1/1:0,44:27:-108.64,-8.13,-0.01:81.26
-chr1	731442	rs3115865	T	C	10.98	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=1.44;MQ=14.78;MQ0=18;OQ=257.65;QD=3.79;SB=-147.73	GT:AD:DP:GL:GQ	1/1:0,68:9:-29.35,-2.71,-0.01:27.07
-chr1	732688	.	A	G	132.94	PASS	AC=1;AF=0.50;AN=2;DP=82;Dels=0.00;HRun=0;HaplotypeScore=1.14;MQ=40.79;MQ0=0;OQ=1231.30;QD=15.02;SB=-638.22	GT:AD:DP:GL:GQ	0/1:40,42:81:-150.81,-24.40,-157.55:99
-chr1	732884	rs2488925	T	C	45.12	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DB;DP=97;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=12.78;MQ0=54;QD=0.47;SB=-0.97	GT:AD:DP:GL:GQ	0/1:72,25:9:-10.51,-2.71,-24.07:77.96
-chr1	732935	rs2488505	C	A	405.73	PASS	AC=2;AF=1.00;AN=2;DB;DP=78;Dels=0.00;HRun=0;HaplotypeScore=0.91;MQ=25.42;MQ0=21;OQ=984.68;QD=12.62;SB=-456.35	GT:AD:DP:GL:GQ	1/1:10,68:28:-102.06,-8.43,-0.01:84.26
-chr1	734986	rs61823337	A	C	21.52	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DB;DP=121;Dels=0.00;HRun=1;HaplotypeScore=0.87;MQ=22.23;MQ0=45;QD=0.18;SB=23.10	GT:AD:DP:GL:GQ	0/1:104,17:71:-26.81,-21.38,-234.10:54.33
-chr1	735210	rs2488501	T	C	0.42	PASS	AC=1;AF=0.50;AN=2;DB;DP=117;Dels=0.00;HRun=0;HaplotypeScore=0.58;MQ=29.20;MQ0=16;OQ=204.37;QD=1.75;SB=-126.97	GT:AD:DP:GL:GQ	0/1:101,16:100:-53.85,-30.13,-340.21:99
-chr1	736231	rs3925106	C	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=2;HaplotypeScore=0.16;MQ=38.77;MQ0=4;OQ=87.62;QD=1.33;SB=28.85	GT:AD:DP:GL:GQ	0/1:58,8:62:-30.72,-18.67,-192.09:99
-chr1	736257	rs28622890	G	A	34.58	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DB;DP=81;Dels=0.00;HRun=0;HaplotypeScore=0.96;MQ=41.58;MQ0=5;QD=0.43;SB=53.57	GT:AD:DP:GL:GQ	0/1:73,8:73:-28.75,-22.01,-217.76:67.42
-chr1	737271	rs2427896	G	A	1.34	PASS	AC=1;AF=0.50;AN=2;DB;DP=100;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=22.89;MQ0=27;OQ=95.91;QD=0.96;SB=26.10	GT:AD:DP:GL:GQ	0/1:78,22:62:-31.55,-18.68,-198.47:99
-chr1	737583	rs2488922	A	G	0.48	PASS	AC=1;AF=0.50;AN=2;DB;DP=123;Dels=0.00;HRun=0;HaplotypeScore=2.70;MQ=42.10;MQ0=2;OQ=266.56;QD=2.17;SB=-121.05	GT:AD:DP:GL:GQ	0/1:92,31:105:-61.60,-31.66,-333.56:99
-chr1	738741	rs2519043	G	T	42.42	PASS	AC=2;AF=1.00;AN=2;DB;DP=72;Dels=0.00;HRun=1;HaplotypeScore=1.00;MQ=26.82;MQ0=11;OQ=2109.65;QD=29.30;SB=-875.26	GT:AD:DP:GL:GQ	1/1:7,65:57:-214.56,-17.17,-0.01:99
-chr1	739128	rs2519041	G	A	43.02	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DB;DP=70;Dels=0.00;HRun=1;HaplotypeScore=1.95;MQ=8.37;MQ0=49;QD=0.61;SB=-10.00	GT:AD:DP:GL:GQ	1/1:19,51:2:-7.71,-0.60,-0.00:6.02
-chr1	739546	rs12184332	C	T	184.94	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=2.72;MQ=12.22;MQ0=29;OQ=412.05;QD=9.81;SB=-172.22	GT:AD:DP:GL:GQ	1/1:0,15:11:-44.79,-3.31,-0.00:33.11
-chr1	739719	rs12409679	C	T	476.33	PASS	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=19.16;MQ0=31;OQ=1249.90;QD=19.53;SB=-559.74	GT:AD:DP:GL:GQ	1/1:9,55:32:-128.58,-9.64,-0.01:96.31
-chr1	739852	rs12409693	C	T	32.23	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DB;DP=25;Dels=0.00;HRun=4;HaplotypeScore=0.83;MQ=11.24;MQ0=16;QD=1.29;SB=-3.98	GT:AD:DP:GL:GQ	0/1:9,16:4:-7.71,-1.20,-7.59:63.88
-chr1	739860	rs12410209	A	G	6.46	PASS	AC=1;AF=0.50;AN=2;DB;DP=22;Dels=0.00;HRun=0;HaplotypeScore=0.83;MQ=11.03;MQ0=14;OQ=69.01;QD=3.14;SB=-6.99	GT:AD:DP:GL:GQ	0/1:7,15:4:-11.39,-1.20,-4.06:28.52
-chr1	742429	rs3094315	G	A	709.48	PASS	AC=2;AF=1.00;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=50.17;MQ0=0;OQ=3081.43;QD=40.02;SB=-1319.35	GT:AD:DP:GL:GQ	1/1:0,77:77:-311.75,-23.19,-0.02:99
-chr1	742584	rs3131972	A	G	25.55	PASS	AC=2;AF=1.00;AN=2;DB;DP=84;Dels=0.00;HRun=3;HaplotypeScore=0.95;MQ=43.52;MQ0=0;OQ=2970.98;QD=35.37;SB=-1399.49	GT:AD:DP:GL:GQ	1/1:0,84:83:-300.71,-25.00,-0.02:99
-chr1	742757	rs3131971	T	C	41.65	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=1;HaplotypeScore=1.21;MQ=23.17;MQ0=17;OQ=516.07;QD=12.59;SB=-10.00	GT:AD:DP:GL:GQ	1/1:4,37:19:-55.23,-5.74,-0.04:57.08
-chr1	743132	rs3115861	C	G	14.67	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=2.96;MQ=27.06;MQ0=17;OQ=1234.23;QD=26.26;SB=-15.29	GT:AD:DP:GL:GQ	1/1:0,46:29:-129.86,-11.46,-2.85:86.17
-chr1	743268	rs3115860	C	A	75.43	PASS	AC=2;AF=1.00;AN=2;DB;DP=22;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=21.75;MQ0=7;OQ=486.16;QD=22.10;SB=-153.55	GT:AD:DP:GL:GQ	1/1:0,22:14:-52.20,-4.22,-0.00:42.13
-chr1	743288	rs3131970	T	C	362.63	PASS	AC=2;AF=1.00;AN=2;DB;DP=20;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=18.31;MQ0=12;OQ=231.44;QD=11.57;SB=-100.85	GT:AD:DP:GL:GQ	1/1:0,20:8:-26.73,-2.41,-0.01:24.06
-chr1	743337	rs2073814	C	G	1.55	PASS	AC=2;AF=1.00;AN=2;DB;DP=37;Dels=0.00;HRun=4;HaplotypeScore=1.47;MQ=27.30;MQ0=10;OQ=1125.84;QD=30.43;SB=-429.30	GT:AD:DP:GL:GQ	1/1:1,36:27:-116.18,-8.13,-0.01:81.27
-chr1	743712	rs56101360	G	T	37.36	PASS	AC=2;AF=1.00;AN=2;DB;DP=21;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=10.96;MQ0=18;OQ=73.40;QD=3.50;SB=-44.39	GT:AD:DP:GL:GQ	1/1:0,21:3:-10.83,-0.90,-0.00:9.03
-chr1	744045	rs3131969	A	G	233.56	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=47.14;MQ0=6;OQ=1104.31;QD=23.50;SB=-502.19	GT:AD:DP:GL:GQ	1/1:0,47:36:-114.05,-10.86,-0.03:99
-chr1	744055	rs3131968	A	G	489.63	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=47.65;MQ0=5;OQ=1245.81;QD=27.08;SB=-566.90	GT:AD:DP:GL:GQ	1/1:0,46:40:-128.20,-12.07,-0.04:99
-chr1	744197	rs3131967	T	C	119.26	PASS	AC=2;AF=1.00;AN=2;DB;DP=75;Dels=0.00;HRun=0;HaplotypeScore=1.66;MQ=53.80;MQ0=2;OQ=2119.16;QD=28.26;SB=-841.48	GT:AD:DP:GL:GQ	1/1:1,74:67:-215.56,-20.21,-0.06:99
-chr1	744366	rs3115859	G	A	143.80	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=58.48;MQ0=0;OQ=2152.98;QD=37.77;SB=-958.79	GT:AD:DP:GL:GQ	1/1:0,55:55:-218.90,-16.57,-0.02:99
-chr1	744827	rs3131966	C	T	120.29	PASS	AC=2;AF=1.00;AN=2;DB;DP=74;Dels=0.00;HRun=1;HaplotypeScore=0.58;MQ=47.82;MQ0=1;OQ=2882.74;QD=38.96;SB=-1406.06	GT:AD:DP:GL:GQ	1/1:1,73:72:-291.88,-21.69,-0.02:99
-chr1	745638	rs3131965	A	G	37.34	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=3.96;MQ=59.56;MQ0=0;OQ=1308.09;QD=25.16;SB=-645.91	GT:AD:DP:GL:GQ	1/1:2,50:45:-138.61,-13.58,-4.21:93.63
-chr1	745750	rs3131964	C	G	3.97	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.26;MQ=53.42;MQ0=0;OQ=1959.71;QD=42.60;SB=-541.05	GT:AD:DP:GL:GQ	1/1:0,46:45:-199.57,-13.56,-0.01:99
-chr1	745753	rs3115858	A	T	53.72	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=1.80;MQ=52.51;MQ0=0;OQ=1749.78;QD=37.23;SB=-548.77	GT:AD:DP:GL:GQ	1/1:0,47:47:-178.57,-14.15,-0.01:99
-chr1	745791	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=77;Dels=0.00;HRun=2;HaplotypeScore=18.24;MQ=43.86;MQ0=9;OQ=50.05;QD=0.65;SB=68.26	GT:AD:DP:GL:GQ	0/1:71,6:65:-27.87,-19.59,-256.05:82.88
-chr1	745803	rs3115857	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=56.59;MQ=40.14;MQ0=10;OQ=1678.77;QD=22.69;SB=-752.72	GT:AD:DP:GL:GQ	0/1:24,50:53:-187.11,-15.98,-16.89:9.18
-chr1	745905	.	G	C	40.04	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=86;Dels=0.00;HRun=1;HaplotypeScore=109.46;MQ=39.52;MQ0=1;QD=0.47;SB=41.16	GT:AD:DP:GL:GQ	0/1:44,42:46:-21.15,-13.87,-174.52:72.88
-chr1	745926	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=86;Dels=0.00;HRun=1;HaplotypeScore=71.25;MQ=39.59;MQ0=1;OQ=190.93;QD=2.22;SB=53.16	GT:AD:DP:GL:GQ	0/1:47,39:55:-38.95,-16.57,-157.39:99
-chr1	745944	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=82;Dels=0.00;HRun=0;HaplotypeScore=34.08;MQ=37.55;MQ0=2;OQ=183.15;QD=2.23;SB=41.15	GT:AD:DP:GL:GQ	0/1:68,13:63:-40.58,-18.98,-189.40:99
-chr1	745947	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=82;Dels=0.00;HRun=0;HaplotypeScore=35.45;MQ=37.64;MQ0=2;OQ=144.60;QD=1.76;SB=41.13	GT:AD:DP:GL:GQ	0/1:61,21:63:-36.72,-18.98,-195.32:99
-chr1	745969	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=73;Dels=0.00;HRun=0;HaplotypeScore=26.39;MQ=43.31;MQ0=1;OQ=191.12;QD=2.62;SB=65.24	GT:AD:DP:GL:GQ	0/1:56,17:62:-41.07,-18.68,-205.74:99
-chr1	745970	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=74;Dels=0.00;HRun=0;HaplotypeScore=53.14;MQ=43.05;MQ0=1;OQ=181.87;QD=2.46;SB=65.22	GT:AD:DP:GL:GQ	0/1:57,13:62:-40.15,-18.68,-186.08:99
-chr1	746120	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=67;Dels=0.00;HRun=2;HaplotypeScore=45.83;MQ=41.92;MQ0=5;OQ=178.43;QD=2.66;SB=1.10	GT:AD:DP:GL:GQ	0/1:36,31:38:-32.58,-11.45,-99.35:99
-chr1	746127	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=70;Dels=0.00;HRun=0;HaplotypeScore=64.18;MQ=39.79;MQ0=5;OQ=90.17;QD=1.29;SB=23.10	GT:AD:DP:GL:GQ	0/1:61,9:40:-24.35,-12.05,-113.93:99
-chr1	746131	rs12567639	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=81;Dels=0.00;HRun=0;HaplotypeScore=86.22;MQ=40.15;MQ0=5;OQ=1193.97;QD=14.74;SB=-198.46	GT:AD:DP:GL:GQ	0/1:23,47:41:-137.40,-14.72,-24.14:94.15
-chr1	746140	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=101;Dels=0.00;HRun=0;HaplotypeScore=67.36;MQ=39.96;MQ0=6;OQ=451.51;QD=4.47;SB=-226.37	GT:AD:DP:GL:GQ	0/1:64,37:56:-65.31,-16.87,-128.04:99
-chr1	746183	rs61768169	G	A	45.64	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DB;DP=96;Dels=0.00;HRun=0;HaplotypeScore=15.14;MQ=43.93;MQ0=4;QD=0.48;SB=0.06	GT:AD:DP:GL:GQ	0/1:84,10:80:-31.96,-24.11,-251.75:78.48
-chr1	746197	.	C	T	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=86;Dels=0.00;HRun=0;HaplotypeScore=9.62;MQ=45.83;MQ0=2;OQ=266.46;QD=3.10;SB=-143.52	GT:AD:DP:GL:GQ	0/1:62,24:69:-50.72,-20.79,-191.84:99
-chr1	746210	.	C	G	29.36	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=76;Dels=0.00;HRun=1;HaplotypeScore=12.28;MQ=48.57;MQ0=1;QD=0.39;SB=83.30	GT:AD:DP:GL:GQ	0/1:61,15:60:-24.30,-18.08,-232.38:62.19
-chr1	746211	.	A	C	19.28	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=75;Dels=0.00;HRun=1;HaplotypeScore=12.28;MQ=48.88;MQ0=1;QD=0.26;SB=56.68	GT:AD:DP:GL:GQ	0/1:55,20:60:-23.28,-18.07,-191.05:52.07
-chr1	746241	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=94;Dels=0.00;HRun=1;HaplotypeScore=37.04;MQ=43.41;MQ0=2;OQ=460.88;QD=4.90;SB=-102.94	GT:AD:DP:GL:GQ	0/1:66,28:77:-72.58,-23.21,-260.56:99
-chr1	746243	rs3131963	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=108;Dels=0.00;HRun=0;HaplotypeScore=38.28;MQ=42.00;MQ0=2;OQ=2225.83;QD=20.61;SB=-986.67	GT:AD:DP:GL:GQ	0/1:37,71:77:-249.07,-23.20,-37.48:99
-chr1	746259	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=111;Dels=0.00;HRun=0;HaplotypeScore=53.13;MQ=42.82;MQ0=2;OQ=115.63;QD=1.04;SB=-45.40	GT:AD:DP:GL:GQ	0/1:89,21:81:-39.28,-24.43,-223.64:99
-chr1	746271	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=108;Dels=0.00;HRun=0;HaplotypeScore=62.70;MQ=43.89;MQ0=1;OQ=73.67;QD=0.68;SB=-12.36	GT:AD:DP:GL:GQ	0/1:82,19:79:-37.12,-26.47,-271.48:99
-chr1	746467	rs3131962	A	G	256.08	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=48.92;MQ0=2;OQ=1247.82;QD=23.54;SB=-557.88	GT:AD:DP:GL:GQ	1/1:1,52:40:-128.40,-12.06,-0.04:99
-chr1	747503	rs3115853	G	A	25.12	PASS	AC=2;AF=1.00;AN=2;DB;DP=82;Dels=0.00;HRun=1;HaplotypeScore=3.30;MQ=58.23;MQ0=2;OQ=3098.30;QD=37.78;SB=-1549.56	GT:AD:DP:GL:GQ	1/1:0,81:79:-317.18,-27.31,-3.76:99
-chr1	747597	rs4951929	C	T	626.13	PASS	AC=2;AF=1.00;AN=2;DB;DP=69;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.73;MQ0=0;OQ=2652.10;QD=38.44;SB=-1324.28	GT:AD:DP:GL:GQ	1/1:0,69:67:-268.81,-20.18,-0.02:99
-chr1	747799	rs4951862	C	A	77.67	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=-0.06;MQ=57.90;MQ0=0;OQ=1743.44;QD=32.90;SB=-442.30	GT:AD:DP:GL:GQ	1/1:0,53:51:-177.95,-15.36,-0.02:99
-chr1	748007	rs3131956	A	G	613.10	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.03;MQ0=0;OQ=1973.59;QD=34.03;SB=-931.61	GT:AD:DP:GL:GQ	1/1:0,58:58:-200.97,-17.48,-0.03:99
-chr1	748187	rs3131955	T	C	137.90	PASS	AC=2;AF=1.00;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=2.43;MQ=57.23;MQ0=0;OQ=1684.65;QD=30.08;SB=-868.87	GT:AD:DP:GL:GQ	1/1:0,56:51:-172.08,-15.37,-0.03:99
-chr1	748489	rs3131954	C	T	606.26	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.38;MQ0=0;OQ=1957.02;QD=37.63;SB=-957.97	GT:AD:DP:GL:GQ	1/1:0,52:51:-199.31,-15.37,-0.02:99
-chr1	749563	rs3115852	T	C	295.01	PASS	AC=2;AF=1.00;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=24.43;MQ0=19;OQ=1638.73;QD=24.46;SB=-694.62	GT:AD:DP:GL:GQ	1/1:0,67:46:-167.47,-13.85,-0.01:99
-chr1	749700	rs3115851	T	A	246.72	PASS	AC=2;AF=1.00;AN=2;DB;DP=75;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=37.92;MQ0=12;OQ=2113.34;QD=28.18;SB=-566.84	GT:AD:DP:GL:GQ	1/1:0,75:55:-214.93,-16.56,-0.01:99
-chr1	750775	rs1048488	C	T	147.65	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=2.94;MQ=55.79;MQ0=0;OQ=2544.23;QD=37.42;SB=-1282.72	GT:AD:DP:GL:GQ	1/1:0,68:64:-258.02,-19.28,-0.02:99
-chr1	751010	rs3115850	T	C	532.65	PASS	AC=2;AF=1.00;AN=2;DB;DP=70;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=53.77;MQ0=0;OQ=2501.23;QD=35.73;SB=-1116.81	GT:AD:DP:GL:GQ	1/1:0,70:69:-253.73,-20.78,-0.02:99
-chr1	751595	rs2286139	C	T	599.50	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=41.46;MQ0=7;OQ=1283.06;QD=32.08;SB=-543.21	GT:AD:DP:GL:GQ	1/1:0,40:32:-131.90,-9.64,-0.01:96.32
-chr1	751615	rs1057213	C	T	31.34	PASS	AC=2;AF=1.00;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=-0.06;MQ=31.78;MQ0=12;OQ=906.27;QD=25.17;SB=-453.10	GT:AD:DP:GL:GQ	1/1:0,36:23:-94.22,-6.93,-0.00:69.23
-chr1	751674	rs1057212	G	A	293.40	PASS	AC=2;AF=1.00;AN=2;DB;DP=17;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=15.73;MQ0=12;OQ=176.65;QD=10.39;SB=-51.56	GT:AD:DP:GL:GQ	1/1:0,17:5:-21.22,-1.51,-0.00:15.05
-chr1	752136	rs3115849	G	A	60.54	PASS	AC=2;AF=1.00;AN=2;DB;DP=28;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=27.04;MQ0=8;OQ=733.35;QD=26.19;SB=-160.21	GT:AD:DP:GL:GQ	1/1:0,28:19:-76.93,-5.73,-0.01:57.18
-chr1	752452	rs3115848	G	C	110.74	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=2.31;MQ=44.19;MQ0=1;OQ=1521.80;QD=34.59;SB=-621.54	GT:AD:DP:GL:GQ	1/1:1,43:40:-155.80,-12.08,-0.04:99
-chr1	752455	rs3131950	C	G	3.82	PASS	AC=2;AF=1.00;AN=2;DB;DP=43;Dels=0.00;HRun=1;HaplotypeScore=4.46;MQ=42.62;MQ0=2;OQ=1386.15;QD=32.24;SB=-555.07	GT:AD:DP:GL:GQ	1/1:1,42:36:-142.24,-10.87,-0.04:99
-chr1	752464	rs3131949	T	C	84.88	PASS	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=40.87;MQ0=2;OQ=1077.25;QD=28.35;SB=-454.51	GT:AD:DP:GL:GQ	1/1:1,37:32:-111.32,-9.64,-0.01:96.27
-chr1	752495	rs3131948	T	A	77.80	PASS	AC=2;AF=1.00;AN=2;DB;DP=32;Dels=0.00;HRun=0;HaplotypeScore=1.33;MQ=37.91;MQ0=2;OQ=926.17;QD=28.94;SB=-390.81	GT:AD:DP:GL:GQ	1/1:1,31:26:-96.21,-7.83,-0.01:78.23
-chr1	753257	rs3115847	G	A	0.46	PASS	AC=2;AF=1.00;AN=2;DB;DP=34;Dels=0.00;HRun=0;HaplotypeScore=4.58;MQ=27.21;MQ0=9;OQ=840.10;QD=24.71;SB=-20.92	GT:AD:DP:GL:GQ	1/1:5,28:22:-89.90,-8.89,-2.30:65.88
-chr1	755968	rs2519015	T	A	366.75	PASS	AC=2;AF=1.00;AN=2;DB;DP=79;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=18.21;MQ0=48;OQ=1019.18;QD=12.90;SB=-121.94	GT:AD:DP:GL:GQ	1/1:23,56:29:-105.51,-8.74,-0.01:87.26
-chr1	757643	rs2905042	G	A	71.81	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=1;HaplotypeScore=0.33;MQ=34.85;MQ0=1;OQ=1607.55;QD=32.81;SB=-663.38	GT:AD:DP:GL:GQ	1/1:0,49:41:-164.35,-12.35,-0.01:99
-chr1	758116	rs2977608	A	C	58.89	PASS	AC=2;AF=1.00;AN=2;DB;DP=79;Dels=0.00;HRun=1;HaplotypeScore=1.05;MQ=47.69;MQ0=11;OQ=2396.98;QD=30.34;SB=-914.67	GT:AD:DP:GL:GQ	1/1:4,75:68:-243.30,-20.48,-0.02:99
-chr1	759692	rs2977607	C	A	65.29	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=1;HaplotypeScore=0.32;MQ=47.39;MQ0=6;OQ=1539.69;QD=31.42;SB=-733.73	GT:AD:DP:GL:GQ	1/1:0,49:42:-157.56,-12.65,-0.01:99
-chr1	759938	rs2977606	C	T	514.72	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=29.63;MQ0=7;OQ=1693.07;QD=33.20;SB=-574.34	GT:AD:DP:GL:GQ	1/1:0,51:44:-172.91,-13.26,-0.01:99
-chr1	760431	rs3131943	A	G	213.11	PASS	AC=2;AF=1.00;AN=2;DB;DP=19;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=31.32;MQ0=2;OQ=527.61;QD=27.77;SB=-87.92	GT:AD:DP:GL:GQ	1/1:0,19:16:-56.35,-4.82,-0.00:48.14
-chr1	760781	rs3095826	T	G	40.05	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DB;DP=11;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=15.14;MQ0=8;QD=3.64;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,11:2:-7.41,-0.60,-0.00:6.02
-chr1	761273	rs2519006	C	T	29.93	PASS	AC=2;AF=1.00;AN=2;DB;DP=77;Dels=0.00;HRun=2;HaplotypeScore=0.96;MQ=27.71;MQ0=20;OQ=1719.34;QD=22.33;SB=-558.69	GT:AD:DP:GL:GQ	1/1:18,59:45:-179.00,-13.55,-3.48:99
-chr1	761686	rs2977605	T	C	284.90	PASS	AC=2;AF=1.00;AN=2;DB;DP=28;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=40.99;MQ0=4;OQ=744.87;QD=26.60;SB=-283.54	GT:AD:DP:GL:GQ	1/1:0,28:24:-78.09,-7.24,-0.02:72.16
-chr1	762618	rs2905039	A	C	494.84	PASS	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=53.90;MQ0=0;OQ=1864.52;QD=29.13;SB=-798.77	GT:AD:DP:GL:GQ	1/1:0,64:60:-190.09,-18.09,-0.06:99
-chr1	764599	rs28830877	A	C	154.63	PASS	AC=2;AF=1.00;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=1.79;MQ=49.78;MQ0=3;OQ=2217.13;QD=30.37;SB=-1008.12	GT:AD:DP:GL:GQ	1/1:0,73:64:-225.32,-19.28,-0.02:99
-chr1	764648	rs28873693	G	A	193.89	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=1.41;MQ=40.27;MQ0=2;OQ=1900.97;QD=32.22;SB=-951.98	GT:AD:DP:GL:GQ	1/1:0,59:49:-193.70,-14.76,-0.02:99
-chr1	764732	rs55994826	G	A	15.73	DPFilter;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=27;Dels=0.00;HRun=0;HaplotypeScore=0.98;MQ=36.88;MQ0=1;QD=0.58;SB=17.08	GT:AD:DP:GL:GQ	0/1:24,3:23:-11.77,-6.93,-72.32:48.45
-chr1	764737	rs28810152	A	C	715.74	SnpCluster	AC=2;AF=1.00;AN=2;DB;DP=25;Dels=0.00;HRun=0;HaplotypeScore=1.98;MQ=38.33;MQ0=0;QD=28.63;SB=-297.55	GT:AD:DP:GL:GQ	1/1:0,25:22:-75.17,-6.63,-0.01:66.18
-chr1	764742	.	A	T	46.72	LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=23;Dels=0.00;HRun=0;HaplotypeScore=1.98;MQ=39.13;MQ0=0;QD=2.03;SB=-38.86	GT:AD:DP:GL:GQ	0/1:19,4:18:-13.38,-5.42,-51.11:79.56
-chr1	764746	.	G	A	393.33	SnpCluster	AC=1;AF=0.50;AN=2;DP=22;Dels=0.00;HRun=0;HaplotypeScore=1.97;MQ=40.70;MQ0=1;QD=17.88;SB=-221.92	GT:AD:DP:GL:GQ	0/1:8,14:19:-48.34,-5.72,-22.76:99
-chr1	764763	rs28797844	C	G	118.37	PASS	AC=1;AF=0.50;AN=2;DB;DP=28;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=44.74;MQ0=1;OQ=234.91;QD=8.39;SB=-89.25	GT:AD:DP:GL:GQ	0/1:20,8:26:-34.62,-7.84,-73.94:99
-chr1	764786	rs28769076	G	C	293.91	PASS	AC=2;AF=1.00;AN=2;DB;DP=35;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=38.71;MQ0=4;OQ=1154.38;QD=32.98;SB=-346.74	GT:AD:DP:GL:GQ	1/1:0,35:27:-119.03,-8.14,-0.01:81.27
-chr1	765119	.	T	G	7.65	PASS	AC=1;AF=0.50;AN=2;DP=21;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=15.72;MQ0=15;OQ=87.25;QD=4.15;SB=-66.98	GT:AD:DP:GL:GQ	0/1:15,6:6:-13.82,-1.81,-7.64:58.28
-chr1	765289	rs2905037	G	A	284.46	PASS	AC=2;AF=1.00;AN=2;DB;DP=80;Dels=0.00;HRun=0;HaplotypeScore=1.11;MQ=48.40;MQ0=0;OQ=3000.65;QD=37.51;SB=-1455.38	GT:AD:DP:GL:GQ	1/1:0,80:75:-303.67,-22.59,-0.02:99
-chr1	765522	rs2905035	A	G	84.99	PASS	AC=2;AF=1.00;AN=2;DB;DP=69;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=40.77;MQ0=3;OQ=2096.78;QD=30.39;SB=-645.26	GT:AD:DP:GL:GQ	1/1:0,68:58:-213.28,-17.47,-0.02:99
-chr1	766409	rs12124819	A	G	273.30	PASS	AC=1;AF=0.50;AN=2;DB;DP=86;Dels=0.00;HRun=0;HaplotypeScore=3.66;MQ=51.01;MQ0=0;OQ=1354.31;QD=15.75;SB=-621.86	GT:AD:DP:GL:GQ	0/1:41,45:85:-164.32,-25.60,-163.76:99
-chr1	766985	rs2980319	A	T	684.18	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.93;MQ0=0;OQ=2347.43;QD=37.26;SB=-849.94	GT:AD:DP:GL:GQ	1/1:0,63:62:-238.35,-18.68,-0.02:99
-chr1	768432	rs2977615	A	G	315.81	PASS	AC=2;AF=1.00;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=46.80;MQ0=5;OQ=1414.86;QD=25.27;SB=-618.23	GT:AD:DP:GL:GQ	1/1:0,56:46:-145.13,-13.88,-0.05:99
-chr1	769890	rs2977613	G	T	314.36	PASS	AC=2;AF=1.00;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=0.83;MQ=53.23;MQ0=0;OQ=2549.06;QD=34.45;SB=-1034.15	GT:AD:DP:GL:GQ	1/1:0,74:70:-258.51,-21.09,-0.02:99
-chr1	770648	rs2977612	T	A	316.89	PASS	AC=2;AF=1.00;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=55.02;MQ0=0;OQ=2471.78;QD=34.81;SB=-1070.63	GT:AD:DP:GL:GQ	1/1:1,70:68:-253.32,-20.49,-2.56:99
-chr1	773167	rs2980295	T	C	625.67	PASS	AC=2;AF=1.00;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=32.46;MQ0=0;OQ=2479.28;QD=34.43;SB=-1064.87	GT:AD:DP:GL:GQ	1/1:0,72:71:-251.54,-21.39,-0.02:99
-chr1	774913	rs2905062	G	A	647.91	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.25;MQ0=0;OQ=2057.09;QD=38.09;SB=-793.69	GT:AD:DP:GL:GQ	1/1:0,54:52:-209.31,-15.66,-0.01:99
-chr1	775852	rs2980300	T	C	398.92	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=47.91;MQ0=0;OQ=1925.83;QD=36.34;SB=-289.45	GT:AD:DP:GL:GQ	1/1:0,53:52:-196.18,-15.66,-0.01:99
-chr1	776110	rs59319764	G	A	135.46	PASS	AC=2;AF=1.00;AN=2;DB;DP=33;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=22.95;MQ0=5;OQ=708.27;QD=21.46;SB=-330.44	GT:AD:DP:GL:GQ	1/1:5,28:18:-74.41,-5.42,-0.00:54.18
-chr1	776673	rs2905061	G	A	271.44	PASS	AC=2;AF=1.00;AN=2;DB;DP=19;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=18.77;MQ0=2;OQ=243.21;QD=12.80;SB=-51.67	GT:AD:DP:GL:GQ	1/1:0,19:7:-27.90,-2.11,-0.00:21.07
-chr1	776882	rs2905060	C	T	28.05	PASS	AC=2;AF=1.00;AN=2;DB;DP=32;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=24.47;MQ0=13;OQ=680.11;QD=21.25;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,32:18:-71.60,-5.42,-0.01:54.17
-chr1	776908	.	C	G	26.94	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=20;Dels=0.00;HRun=1;HaplotypeScore=2.47;MQ=23.04;MQ0=7;QD=1.35;SB=-10.00	GT:AD:DP:GL:GQ	0/1:11,8:6:-7.79,-1.82,-13.09:59.77
-chr1	776998	rs28753393	A	G	1.62	PASS	AC=2;AF=1.00;AN=2;DB;DP=24;Dels=0.00;HRun=0;HaplotypeScore=-0.06;MQ=22.78;MQ0=8;OQ=492.59;QD=20.52;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,24:14:-52.85,-4.22,-0.00:42.13
-chr1	777048	rs2905058	G	A	64.34	PASS	AC=2;AF=1.00;AN=2;DB;DP=25;Dels=0.00;HRun=1;HaplotypeScore=2.66;MQ=17.04;MQ0=12;OQ=310.80;QD=12.43;SB=-128.67	GT:AD:DP:GL:GQ	1/1:0,25:9:-34.67,-2.71,-0.01:27.08
-chr1	777068	rs2905057	G	A	256.67	PASS	AC=2;AF=1.00;AN=2;DB;DP=29;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=15.61;MQ0=17;OQ=265.15;QD=9.14;SB=-131.67	GT:AD:DP:GL:GQ	1/1:0,29:8:-30.10,-2.41,-0.01:24.07
-chr1	777125	rs2905056	C	G	369.51	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=42.20;MQ0=14;OQ=1716.63;QD=32.39;SB=-514.60	GT:AD:DP:GL:GQ	1/1:0,53:39:-175.26,-11.75,-0.01:99
-chr1	777262	rs2905055	G	T	436.57	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=43.93;MQ0=5;OQ=1457.00;QD=33.11;SB=-678.96	GT:AD:DP:GL:GQ	1/1:0,44:39:-149.29,-11.74,-0.01:99
-chr1	777290	.	C	T	29.42	PASS	AC=1;AF=0.50;AN=2;DP=50;Dels=0.00;HRun=1;HaplotypeScore=0.73;MQ=32.80;MQ0=5;OQ=855.45;QD=17.11;SB=-308.80	GT:AD:DP:GL:GQ	0/1:21,29:44:-102.09,-13.26,-62.10:99
-chr1	777548	rs2905054	G	T	500.83	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=57.40;MQ0=0;OQ=2267.93;QD=36.00;SB=-851.89	GT:AD:DP:GL:GQ	1/1:0,63:62:-230.39,-18.67,-0.01:99
-chr1	777707	rs2905053	C	T	334.21	PASS	AC=2;AF=1.00;AN=2;DB;DP=100;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=44.44;MQ0=2;OQ=3957.07;QD=39.57;SB=-1940.72	GT:AD:DP:GL:GQ	1/1:0,100:95:-394.71,-28.61,-0.02:99
-chr1	778576	rs2980306	T	C	128.68	PASS	AC=2;AF=1.00;AN=2;DB;DP=82;Dels=0.00;HRun=0;HaplotypeScore=0.87;MQ=33.51;MQ0=34;OQ=1562.02;QD=19.05;SB=-268.41	GT:AD:DP:GL:GQ	1/1:13,69:45:-159.81,-13.56,-0.02:99
-chr1	778703	rs10157303	T	C	0.04	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DB;DP=84;Dels=0.00;HRun=3;HaplotypeScore=7.41;MQ=38.85;MQ0=14;OQ=444.81;QD=5.30;SB=-42.81	GT:AD:DP:GL:GQ	0/1:40,44:57:-64.95,-17.19,-138.39:99
-chr1	778707	rs10159337	C	G	0.38	PASS	AC=1;AF=0.50;AN=2;DB;DP=80;Dels=0.00;HRun=0;HaplotypeScore=6.67;MQ=39.47;MQ0=14;OQ=423.04;QD=5.29;SB=32.36	GT:AD:DP:GL:GQ	0/1:47,33:53:-61.57,-15.98,-162.13:99
-chr1	778752	rs10159341	C	T	0.26	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=3.10;MQ=43.79;MQ0=4;OQ=82.84;QD=1.45;SB=53.17	GT:AD:DP:GL:GQ	0/1:50,7:44:-24.83,-13.27,-122.87:99
-chr1	778808	.	G	C	4.86	PASS	AC=2;AF=1.00;AN=2;DP=18;Dels=0.00;HRun=0;HaplotypeScore=2.99;MQ=23.40;MQ0=13;OQ=99.43;QD=5.52;SB=-51.47	GT:AD:DP:GL:GQ	1/1:11,7:3:-13.43,-0.90,-0.00:9.03
-chr1	778958	.	C	G	0.12	PASS	AC=1;AF=0.50;AN=2;DP=50;Dels=0.00;HRun=0;HaplotypeScore=6.83;MQ=13.77;MQ0=12;OQ=373.21;QD=7.46;SB=-3.98	GT:AD:DP:GL:GQ	0/1:40,10:17:-45.73,-5.12,-29.92:99
-chr1	778962	rs10158938	G	A	0.10	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=6.77;MQ=13.74;MQ0=12;OQ=114.14;QD=2.24;SB=-77.09	GT:AD:DP:GL:GQ	0/1:17,34:17:-19.83,-5.13,-36.56:99
-chr1	779001	.	C	G	62.18	HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=103;Dels=0.00;HRun=0;HaplotypeScore=43.25;MQ=17.50;MQ0=24;QD=0.60;SB=-3.98	GT:AD:DP:GL:GQ	0/1:92,11:44:-22.76,-13.26,-160.88:95.02
-chr1	779004	.	G	C	379.18	HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=105;Dels=0.00;HRun=0;HaplotypeScore=41.31;MQ=17.52;MQ0=26;QD=3.61;SB=-3.98	GT:AD:DP:GL:GQ	0/1:83,21:42:-55.98,-14.78,-128.84:99
-chr1	779007	.	G	C	125.98	HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=104;Dels=0.00;HRun=0;HaplotypeScore=41.47;MQ=17.84;MQ0=24;QD=1.21;SB=-3.98	GT:AD:DP:GL:GQ	0/1:82,22:45:-29.45,-13.56,-167.32:99
-chr1	779046	.	C	T	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=112;Dels=0.00;HRun=0;HaplotypeScore=13.36;MQ=16.85;MQ0=30;OQ=85.18;QD=0.76;SB=-0.98	GT:AD:DP:GL:GQ	0/1:103,9:39:-23.55,-11.75,-110.84:99
-chr1	779119	rs3131939	T	C	14.51	PASS	AC=2;AF=1.00;AN=2;DB;DP=65;Dels=0.00;HRun=1;HaplotypeScore=0.73;MQ=38.97;MQ0=6;OQ=1691.71;QD=26.03;SB=-847.52	GT:AD:DP:GL:GQ	1/1:0,65:53:-172.80,-15.99,-0.05:99
-chr1	782126	rs1044922	A	G	199.05	PASS	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=1.31;MQ=35.10;MQ0=8;OQ=1304.52;QD=20.38;SB=-463.86	GT:AD:DP:GL:GQ	1/1:3,61:42:-134.08,-12.67,-0.04:99
-chr1	782343	rs2905036	C	T	605.33	PASS	AC=2;AF=1.00;AN=2;DB;DP=97;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=44.88;MQ0=2;OQ=3789.97;QD=39.07;SB=-1780.39	GT:AD:DP:GL:GQ	1/1:0,97:94:-378.00,-28.32,-0.03:99
-chr1	783071	rs2905029	C	G	4.69	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=24.02;MQ0=7;OQ=636.50;QD=15.91;SB=29.13	GT:AD:DP:GL:GQ	0/1:20,20:32:-76.58,-9.64,-67.00:99
-chr1	783292	rs2519067	T	C	14.72	PASS	AC=2;AF=1.00;AN=2;DB;DP=37;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=32.87;MQ0=7;OQ=1046.72;QD=28.29;SB=-162.84	GT:AD:DP:GL:GQ	1/1:5,32:30:-108.26,-9.03,-0.01:90.27
-chr1	785455	.	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=55;Dels=0.00;HRun=20;HaplotypeScore=3.33;MQ=47.34;MQ0=4;OQ=246.17;QD=4.48;SB=-56.75	GT:AD:DP:GL:GQ	0/1:43,12:47:-42.06,-14.16,-132.17:99
-chr1	786397	.	T	C	0.59	PASS	AC=1;AF=0.50;AN=2;DP=72;Dels=0.00;HRun=1;HaplotypeScore=0.47;MQ=41.18;MQ0=9;OQ=325.37;QD=4.52;SB=-24.72	GT:AD:DP:GL:GQ	0/1:50,22:59:-53.59,-17.77,-179.67:99
-chr1	786590	rs2909612	G	T	160.63	PASS	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=1.81;MQ=27.34;MQ0=10;OQ=1960.56;QD=30.63;SB=-1001.80	GT:AD:DP:GL:GQ	1/1:0,64:54:-199.65,-16.26,-0.01:99
-chr1	786630	rs12076540	G	A	0.40	PASS	AC=1;AF=0.50;AN=2;DB;DP=100;Dels=0.00;HRun=0;HaplotypeScore=7.41;MQ=41.01;MQ0=13;OQ=2659.94;QD=26.60;SB=-1327.51	GT:AD:DP:GL:GQ	0/1:23,77:83:-294.28,-25.01,-36.59:99
-chr1	786634	rs2909613	T	C	0.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=101;Dels=0.00;HRun=0;HaplotypeScore=7.24;MQ=42.00;MQ0=12;OQ=84.11;QD=0.83;SB=12.37	GT:AD:DP:GL:GQ	0/1:80,21:85:-37.30,-25.61,-300.66:99
-chr1	786902	.	A	G	0.05	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=128;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=48.19;MQ0=15;OQ=198.92;QD=1.55;SB=-72.06	GT:AD:DP:GL:GQ	0/1:96,32:111:-56.61,-33.43,-385.87:99
-chr1	787026	.	G	A	14.82	LowQual	AC=1;AF=0.50;AN=2;DP=89;Dels=0.00;HRun=0;HaplotypeScore=1.16;MQ=46.76;MQ0=8;QD=0.17;SB=-27.80	GT:AD:DP:GL:GQ	0/1:74,15:80:-28.85,-24.10,-261.80:47.51
-chr1	787041	.	A	T	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=94;Dels=0.00;HRun=1;HaplotypeScore=0.99;MQ=44.71;MQ0=13;OQ=84.25;QD=0.90;SB=-23.86	GT:AD:DP:GL:GQ	0/1:71,22:80:-37.92,-26.21,-271.06:99
-chr1	787889	rs4951864	C	T	266.17	PASS	AC=2;AF=1.00;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=45.78;MQ0=1;OQ=2714.18;QD=38.77;SB=-989.31	GT:AD:DP:GL:GQ	1/1:1,69:67:-275.02,-20.18,-0.01:99
-chr1	789326	rs4245756	T	C	211.89	PASS	AC=2;AF=1.00;AN=2;DB;DP=90;Dels=0.00;HRun=0;HaplotypeScore=2.00;MQ=58.75;MQ0=0;OQ=3107.92;QD=34.53;SB=-1502.55	GT:AD:DP:GL:GQ	1/1:0,90:89:-314.41,-26.81,-0.04:99
-chr1	789870	rs6681049	T	C	615.97	PASS	AC=2;AF=1.00;AN=2;DB;DP=77;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=47.06;MQ0=1;OQ=2660.56;QD=34.55;SB=-1115.14	GT:AD:DP:GL:GQ	1/1:0,77:73:-269.66,-21.99,-0.02:99
-chr1	790246	rs4951931	C	T	190.77	PASS	AC=2;AF=1.00;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=2.16;MQ=47.97;MQ0=4;OQ=2808.35;QD=36.95;SB=-1258.17	GT:AD:DP:GL:GQ	1/1:1,75:70:-284.44,-21.09,-0.02:99
-chr1	791806	rs7516866	C	T	78.65	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=1;HaplotypeScore=1.85;MQ=49.91;MQ0=4;OQ=2127.43;QD=34.88;SB=-1017.37	GT:AD:DP:GL:GQ	1/1:0,61:56:-216.36,-16.88,-0.03:99
-chr1	791858	rs7553084	G	A	0.25	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=2.42;MQ=36.92;MQ0=13;OQ=63.33;QD=1.47;SB=-33.64	GT:AD:DP:GL:GQ	0/1:29,14:21:-15.95,-6.33,-55.40:96.17
-chr1	791869	rs9700144	T	C	36.55	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=30.98;MQ0=16;OQ=499.95;QD=11.90;SB=-156.35	GT:AD:DP:GL:GQ	0/1:18,24:19:-59.00,-5.72,-11.19:54.70
-chr1	791956	rs7553197	G	A	67.79	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=0.97;MQ=36.93;MQ0=8;OQ=1294.09;QD=27.53;SB=-402.66	GT:AD:DP:GL:GQ	1/1:3,44:34:-133.00,-10.24,-0.01:99
-chr1	792054	.	G	A	0.09	PASS	AC=1;AF=0.50;AN=2;DP=94;Dels=0.00;HRun=0;HaplotypeScore=2.92;MQ=30.80;MQ0=19;OQ=223.16;QD=2.37;SB=-57.50	GT:AD:DP:GL:GQ	0/1:66,28:40:-37.67,-12.07,-95.70:99
-chr1	792085	rs61768213	G	A	0.10	PASS	AC=1;AF=0.50;AN=2;DB;DP=106;Dels=0.00;HRun=0;HaplotypeScore=11.76;MQ=27.41;MQ0=19;OQ=204.34;QD=1.93;SB=-8.44	GT:AD:DP:GL:GQ	0/1:88,18:55:-40.31,-16.60,-140.17:99
-chr1	792094	rs59334306	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=106;Dels=0.00;HRun=0;HaplotypeScore=46.76;MQ=26.45;MQ0=20;OQ=280.32;QD=2.64;SB=-7.86	GT:AD:DP:GL:GQ	0/1:75,30:53:-47.28,-15.96,-151.37:99
-chr1	792103	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=110;Dels=0.00;HRun=0;HaplotypeScore=25.85;MQ=29.18;MQ0=20;OQ=339.53;QD=3.09;SB=-172.66	GT:AD:DP:GL:GQ	0/1:84,26:61:-55.65,-18.41,-142.90:99
-chr1	792163	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=94;Dels=0.02;HRun=3;HaplotypeScore=9.77;MQ=36.34;MQ0=8;OQ=472.25;QD=5.02;SB=-153.68	GT:AD:DP:GL:GQ	0/1:49,43:64:-69.50,-18.99,-156.72:99
-chr1	792183	.	G	A	7.22	PASS	AC=1;AF=0.50;AN=2;DP=89;Dels=0.00;HRun=0;HaplotypeScore=4.86;MQ=42.20;MQ0=9;OQ=1359.41;QD=15.27;SB=-245.27	GT:AD:DP:GL:GQ	0/1:36,53:59:-157.01,-17.79,-57.64:99
-chr1	792201	.	G	A	0.06	PASS	AC=1;AF=0.50;AN=2;DP=95;Dels=0.00;HRun=0;HaplotypeScore=4.58;MQ=43.46;MQ0=8;OQ=234.21;QD=2.47;SB=6.27	GT:AD:DP:GL:GQ	0/1:68,27:69:-47.53,-20.82,-170.85:99
-chr1	792244	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=72;Dels=0.00;HRun=1;HaplotypeScore=3.46;MQ=47.18;MQ0=4;OQ=75.38;QD=1.05;SB=92.33	GT:AD:DP:GL:GQ	0/1:49,23:53:-26.79,-15.97,-181.50:99
-chr1	793978	rs9725068	G	A	105.15	PASS	AC=2;AF=1.00;AN=2;DB;DP=56;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=25.47;MQ0=13;OQ=1474.93;QD=26.34;SB=-321.42	GT:AD:DP:GL:GQ	1/1:0,56:37:-151.09,-11.15,-0.01:99
-chr1	794403	rs11240778	T	C	115.53	PASS	AC=2;AF=1.00;AN=2;DB;DP=80;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=56.32;MQ0=0;OQ=2475.68;QD=30.95;SB=-1150.98	GT:AD:DP:GL:GQ	1/1:0,80:77:-251.22,-23.23,-0.07:99
-chr1	797375	rs10751454	A	G	614.93	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=53.93;MQ0=1;OQ=2184.15;QD=34.67;SB=-971.41	GT:AD:DP:GL:GQ	1/1:0,63:61:-222.02,-18.37,-0.02:99
-chr1	797624	rs4951932	C	A	532.14	PASS	AC=2;AF=1.00;AN=2;DB;DP=74;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=57.69;MQ0=0;OQ=2699.27;QD=36.48;SB=-1270.15	GT:AD:DP:GL:GQ	1/1:0,74:72:-273.52,-21.68,-0.01:99
-chr1	798086	rs4951933	G	C	74.24	PASS	AC=2;AF=1.00;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=1.11;MQ=48.23;MQ0=3;OQ=1918.57;QD=25.24;SB=-881.14	GT:AD:DP:GL:GQ	1/1:5,71:54:-198.81,-16.33,-3.37:99
-chr1	798494	rs11240779	G	A	160.91	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=0.96;MQ=54.32;MQ0=0;OQ=2346.63;QD=37.85;SB=-859.15	GT:AD:DP:GL:GQ	1/1:0,62:60:-238.27,-18.08,-0.02:99
-chr1	798785	rs6594027	G	A	211.91	PASS	AC=2;AF=1.00;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=1.48;MQ=43.75;MQ0=6;OQ=1743.42;QD=29.06;SB=-625.73	GT:AD:DP:GL:GQ	1/1:3,57:47:-180.84,-14.16,-2.92:99
-chr1	798791	rs11240780	C	T	1.58	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=5.98;MQ=44.87;MQ0=5;OQ=1874.68;QD=30.73;SB=-625.19	GT:AD:DP:GL:GQ	1/1:3,58:49:-194.73,-14.76,-3.68:99
-chr1	801153	rs6683530	G	C	58.35	Indel	AC=1;AF=0.50;AN=2;DB;DP=8;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=47.12;MQ0=0;QD=7.29;SB=-48.46	GT:AD:DP:GL:GQ	0/1:3,5:6:-10.93,-1.81,-12.15:91.19
-chr1	801443	.	G	C	0.04	FDRtranche0.10to1.00	AC=2;AF=1.00;AN=2;DP=3;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=38.48;MQ0=1;OQ=52.85;QD=17.62;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,3:2:-8.69,-0.60,-0.00:6.02
-chr1	801493	.	G	A	49.74	LowQual	AC=1;AF=0.50;AN=2;DP=9;Dels=0.00;HRun=0;HaplotypeScore=2.14;MQ=43.23;MQ0=0;QD=5.53;SB=-18.25	GT:AD:DP:GL:GQ	0/1:2,4:4:-12.63,-4.37,-6.30:19.25
-chr1	801563	.	C	G	14.05	LowQual	AC=1;AF=0.50;AN=2;DP=10;Dels=0.00;HRun=0;HaplotypeScore=3.71;MQ=42.60;MQ0=0;QD=1.40;SB=-3.98	GT:AD:DP:GL:GQ	0/1:8,2:7:-6.79,-2.12,-21.33:46.71
-chr1	801598	.	T	C	10.44	PASS	AC=1;AF=0.50;AN=2;DP=21;Dels=0.00;HRun=0;HaplotypeScore=0.98;MQ=49.26;MQ0=0;OQ=130.47;QD=6.21;SB=-25.63	GT:AD:DP:GL:GQ	0/1:13,8:15:-20.85,-4.52,-36.05:99
-chr1	801628	.	C	T	6.09	PASS	AC=1;AF=0.50;AN=2;DP=17;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=52.56;MQ0=0;OQ=245.60;QD=14.45;SB=-39.65	GT:AD:DP:GL:GQ	0/1:7,10:12:-31.46,-3.62,-11.96:83.42
-chr1	802130	rs7541694	A	G	69.50	PASS	AC=2;AF=1.00;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=3.34;MQ=55.65;MQ0=0;OQ=1955.23;QD=29.18;SB=-933.35	GT:AD:DP:GL:GQ	1/1:0,67:63:-199.17,-19.00,-0.06:99
-chr1	802147	rs7545373	C	G	33.64	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=1;HaplotypeScore=3.57;MQ=55.54;MQ0=0;OQ=2348.31;QD=37.27;SB=-1198.48	GT:AD:DP:GL:GQ	1/1:2,61:60:-246.74,-18.09,-8.33:97.66
-chr1	802165	.	G	A	18.16	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=59;Dels=0.00;HRun=0;HaplotypeScore=3.79;MQ=55.42;MQ0=0;QD=0.31;SB=71.21	GT:AD:DP:GL:GQ	0/1:51,8:51:-20.46,-15.37,-155.58:50.93
-chr1	802175	.	C	T	26.53	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=55;Dels=0.00;HRun=0;HaplotypeScore=2.78;MQ=55.08;MQ0=0;QD=0.48;SB=56.20	GT:AD:DP:GL:GQ	0/1:46,8:48:-20.39,-14.46,-154.35:59.35
-chr1	802189	.	G	A	11.38	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=57;Dels=0.00;HRun=0;HaplotypeScore=1.39;MQ=55.49;MQ0=0;QD=0.20;SB=56.19	GT:AD:DP:GL:GQ	0/1:49,8:51:-19.75,-15.37,-163.52:43.89
-chr1	802470	.	T	C	21.38	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=63;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=54.38;MQ0=1;QD=0.34;SB=62.23	GT:AD:DP:GL:GQ	0/1:57,6:59:-23.19,-17.77,-210.98:54.19
-chr1	802488	.	G	T	29.03	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=55;Dels=0.00;HRun=0;HaplotypeScore=3.58;MQ=53.89;MQ0=1;QD=0.53;SB=65.21	GT:AD:DP:GL:GQ	0/1:49,6:52:-21.85,-15.66,-163.62:61.86
-chr1	802614	rs4246500	T	C	405.83	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.84;MQ0=0;OQ=1600.84;QD=34.80;SB=-568.88	GT:AD:DP:GL:GQ	1/1:0,46:45:-163.68,-13.56,-0.02:99
-chr1	803503	rs16973606	A	G	11.51	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=1;HaplotypeScore=2.56;MQ=28.75;MQ0=1;OQ=1669.54;QD=28.30;SB=-566.93	GT:AD:DP:GL:GQ	1/1:0,58:52:-170.59,-15.68,-0.05:99
-chr1	803610	rs4970388	G	A	620.03	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=48.63;MQ0=0;OQ=2297.43;QD=38.94;SB=-1171.71	GT:AD:DP:GL:GQ	1/1:0,59:58:-233.34,-17.47,-0.02:99
-chr1	803950	.	C	A	24.11	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=76;Dels=0.00;HRun=0;HaplotypeScore=7.91;MQ=35.01;MQ0=10;QD=0.32;SB=59.14	GT:AD:DP:GL:GQ	0/1:54,21:50:-20.76,-15.06,-152.32:56.93
-chr1	803957	rs61768235	A	G	0.17	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=0;HaplotypeScore=7.75;MQ=34.03;MQ0=10;OQ=322.16;QD=4.30;SB=35.12	GT:AD:DP:GL:GQ	0/1:42,30:47:-49.67,-14.18,-120.05:99
-chr1	803968	.	C	T	1.63	PASS	AC=1;AF=0.50;AN=2;DP=87;Dels=0.00;HRun=0;HaplotypeScore=1.31;MQ=30.80;MQ0=12;OQ=418.55;QD=4.81;SB=59.13	GT:AD:DP:GL:GQ	0/1:53,34:61:-63.53,-18.39,-146.32:99
-chr1	804010	rs4268301	G	C	0.65	PASS	AC=1;AF=0.50;AN=2;DB;DP=98;Dels=0.00;HRun=0;HaplotypeScore=6.53;MQ=32.14;MQ0=12;OQ=1062.36;QD=10.84;SB=53.20	GT:AD:DP:GL:GQ	0/1:43,55:71:-130.91,-21.39,-167.36:99
-chr1	804023	.	C	G	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=91;Dels=0.00;HRun=2;HaplotypeScore=7.44;MQ=36.24;MQ0=5;OQ=967.44;QD=10.63;SB=62.24	GT:AD:DP:GL:GQ	0/1:48,43:70:-121.12,-21.09,-190.26:99
-chr1	804036	.	A	T	0.05	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=86;Dels=0.00;HRun=0;HaplotypeScore=7.15;MQ=36.45;MQ0=7;OQ=717.66;QD=8.34;SB=65.21	GT:AD:DP:GL:GQ	0/1:47,38:68:-95.53,-20.48,-155.46:99
-chr1	804078	rs4468103	A	G	426.89	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=12.81;MQ=43.94;MQ0=3;QD=5.62;SB=77.26	GT:AD:DP:GL:GQ	0/1:53,23:63:-64.96,-18.98,-178.46:99
-chr1	804080	rs34234497	C	A	381.14	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=12.71;MQ=43.70;MQ0=3;QD=4.95;SB=89.27	GT:AD:DP:GL:GQ	0/1:53,24:67:-61.57,-20.18,-178.60:99
-chr1	804083	.	C	A	27.31	DPFilter;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=81;Dels=0.00;HRun=0;HaplotypeScore=12.71;MQ=43.58;MQ0=4;QD=0.34;SB=86.24	GT:AD:DP:GL:GQ	0/1:70,11:67:-26.19,-20.18,-214.42:60.14
-chr1	804127	rs4571914	C	T	3.06	PASS	AC=2;AF=1.00;AN=2;DB;DP=96;Dels=0.00;HRun=1;HaplotypeScore=3.93;MQ=47.10;MQ0=4;OQ=2988.66;QD=31.13;SB=-1433.34	GT:AD:DP:GL:GQ	1/1:3,93:75:-302.47,-22.59,-0.02:99
-chr1	804160	.	T	A	1.44	PASS	AC=1;AF=0.50;AN=2;DP=116;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=46.18;MQ0=5;OQ=470.49;QD=4.06;SB=48.91	GT:AD:DP:GL:GQ	0/1:72,44:82:-75.03,-24.70,-237.11:99
-chr1	804163	.	T	A	0.61	PASS	AC=1;AF=0.50;AN=2;DP=116;Dels=0.00;HRun=0;HaplotypeScore=2.87;MQ=45.72;MQ0=5;OQ=536.43;QD=4.62;SB=45.90	GT:AD:DP:GL:GQ	0/1:71,45:81:-81.32,-24.40,-231.88:99
-chr1	804176	.	C	T	0.11	PASS	AC=1;AF=0.50;AN=2;DP=118;Dels=0.00;HRun=0;HaplotypeScore=1.87;MQ=42.84;MQ0=5;OQ=284.28;QD=2.41;SB=31.59	GT:AD:DP:GL:GQ	0/1:90,28:84:-57.01,-25.30,-251.94:99
-chr1	804255	rs61768236	C	T	415.82	PASS	AC=1;AF=0.50;AN=2;DB;DP=108;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=27.82;MQ0=7;OQ=1235.94;QD=11.44;SB=-464.41	GT:AD:DP:GL:GQ	0/1:49,59:70:-147.96,-21.08,-123.48:99
-chr1	804268	rs61768237	T	C	267.05	PASS	AC=1;AF=0.50;AN=2;DB;DP=128;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=30.38;MQ0=8;OQ=1449.21;QD=11.32;SB=-624.62	GT:AD:DP:GL:GQ	0/1:53,75:88:-174.71,-26.51,-156.34:99
-chr1	804322	.	T	C	170.65	PASS	AC=1;AF=0.50;AN=2;DP=155;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=38.67;MQ0=9;OQ=1734.45;QD=11.19;SB=-540.49	GT:AD:DP:GL:GQ	0/1:72,83:118:-212.27,-35.54,-249.66:99
-chr1	804353	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=129;Dels=0.00;HRun=4;HaplotypeScore=24.21;MQ=44.77;MQ0=2;OQ=299.39;QD=2.32;SB=-27.46	GT:AD:DP:GL:GQ	0/1:106,23:112:-66.96,-33.74,-330.98:99
-chr1	804358	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=115;Dels=0.00;HRun=1;HaplotypeScore=23.14;MQ=46.13;MQ0=0;OQ=958.19;QD=8.33;SB=-257.80	GT:AD:DP:GL:GQ	0/1:68,47:100:-129.23,-30.12,-232.16:99
-chr1	804472	.	A	T	0.19	PASS	AC=1;AF=0.50;AN=2;DP=116;Dels=0.00;HRun=0;HaplotypeScore=5.00;MQ=48.14;MQ0=4;OQ=798.74;QD=6.89;SB=107.38	GT:AD:DP:GL:GQ	0/1:75,41:98:-112.67,-29.52,-266.53:99
-chr1	804474	.	A	C	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=114;Dels=0.00;HRun=2;HaplotypeScore=5.00;MQ=47.90;MQ0=4;OQ=704.41;QD=6.18;SB=101.34	GT:AD:DP:GL:GQ	0/1:73,41:96:-102.63,-28.91,-247.09:99
-chr1	804544	.	A	T	0.11	PASS	AC=1;AF=0.50;AN=2;DP=129;Dels=0.00;HRun=0;HaplotypeScore=3.62;MQ=40.45;MQ0=6;OQ=406.04;QD=3.15;SB=95.34	GT:AD:DP:GL:GQ	0/1:99,30:89:-70.69,-26.81,-271.16:99
-chr1	804557	.	A	C	0.23	PASS	AC=1;AF=0.50;AN=2;DP=109;Dels=0.00;HRun=0;HaplotypeScore=3.14;MQ=40.10;MQ0=5;OQ=416.51;QD=3.82;SB=86.28	GT:AD:DP:GL:GQ	0/1:65,43:73:-66.93,-21.99,-180.79:99
-chr1	804573	.	G	A	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=94;Dels=0.00;HRun=0;HaplotypeScore=8.85;MQ=43.02;MQ0=4;OQ=579.16;QD=6.16;SB=83.29	GT:AD:DP:GL:GQ	0/1:56,38:69:-81.99,-20.79,-176.35:99
-chr1	804594	.	T	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=97;Dels=0.00;HRun=0;HaplotypeScore=7.80;MQ=47.78;MQ0=4;OQ=294.82;QD=3.04;SB=104.36	GT:AD:DP:GL:GQ	0/1:66,31:74:-55.06,-22.29,-235.53:99
-chr1	804605	.	C	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=101;Dels=0.00;HRun=0;HaplotypeScore=13.95;MQ=49.87;MQ0=3;OQ=284.24;QD=2.81;SB=113.40	GT:AD:DP:GL:GQ	0/1:73,28:82:-56.44,-24.73,-279.54:99
-chr1	804976	.	T	C	11.87	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=159;Dels=0.00;HRun=0;HaplotypeScore=17.62;MQ=47.74;MQ0=10;QD=0.07;SB=128.44	GT:AD:DP:GL:GQ	0/1:107,52:112:-38.18,-33.74,-401.64:44.42
-chr1	805001	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=241;Dels=0.00;HRun=1;HaplotypeScore=76.93;MQ=42.40;MQ0=12;OQ=1246.68;QD=5.17;SB=146.50	GT:AD:DP:GL:GQ	0/1:129,112:153:-174.09,-46.14,-468.17:99
-chr1	805002	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=243;Dels=0.00;HRun=0;HaplotypeScore=75.93;MQ=42.40;MQ0=13;OQ=1673.16;QD=6.89;SB=-6.76	GT:AD:DP:GL:GQ	0/1:105,138:154:-217.01,-46.41,-335.99:99
-chr1	805021	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=298;Dels=0.00;HRun=1;HaplotypeScore=153.68;MQ=38.48;MQ0=13;OQ=1337.90;QD=4.49;SB=-19.37	GT:AD:DP:GL:GQ	0/1:146,152:156:-184.06,-46.99,-421.14:99
-chr1	805031	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=318;Dels=0.00;HRun=0;HaplotypeScore=207.07;MQ=37.99;MQ0=12;OQ=1684.06;QD=5.30;SB=131.37	GT:AD:DP:GL:GQ	0/1:175,143:165:-221.39,-49.70,-405.98:99
-chr1	805042	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=340;Dels=0.00;HRun=0;HaplotypeScore=155.12;MQ=37.32;MQ0=17;OQ=677.06;QD=1.99;SB=140.48	GT:AD:DP:GL:GQ	0/1:285,55:199:-130.92,-59.93,-605.02:99
-chr1	805044	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=339;Dels=0.00;HRun=1;HaplotypeScore=156.13;MQ=36.94;MQ0=19;OQ=889.27;QD=2.62;SB=-0.09	GT:AD:DP:GL:GQ	0/1:243,95:179:-146.12,-53.91,-499.80:99
-chr1	805060	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=354;Dels=0.00;HRun=0;HaplotypeScore=82.46;MQ=36.20;MQ0=28;OQ=262.53;QD=0.74;SB=131.47	GT:AD:DP:GL:GQ	0/1:269,85:206:-91.58,-62.05,-725.20:99
-chr1	805070	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=335;Dels=0.00;HRun=0;HaplotypeScore=72.27;MQ=36.04;MQ0=29;OQ=243.31;QD=0.73;SB=122.43	GT:AD:DP:GL:GQ	0/1:284,51:196:-86.65,-59.04,-686.22:99
-chr1	805096	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=276;Dels=0.00;HRun=1;HaplotypeScore=49.35;MQ=36.73;MQ0=27;OQ=2126.16;QD=7.70;SB=101.36	GT:AD:DP:GL:GQ	0/1:81,194:152:-261.68,-45.78,-320.28:99
-chr1	805097	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=277;Dels=0.00;HRun=0;HaplotypeScore=50.14;MQ=36.84;MQ0=27;OQ=2166.21;QD=7.82;SB=104.34	GT:AD:DP:GL:GQ	0/1:80,196:153:-269.55,-49.64,-287.57:99
-chr1	805200	.	G	T	14.62	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=163;Dels=0.00;HRun=0;HaplotypeScore=25.70;MQ=44.88;MQ0=22;QD=0.09;SB=134.45	GT:AD:DP:GL:GQ	0/1:137,26:122:-41.47,-36.74,-399.49:47.31
-chr1	805236	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=139;Dels=0.00;HRun=3;HaplotypeScore=58.62;MQ=48.88;MQ0=19;OQ=385.49;QD=2.77;SB=18.48	GT:AD:DP:GL:GQ	0/1:87,52:105:-73.46,-31.63,-322.22:99
-chr1	805261	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=234;Dels=0.00;HRun=0;HaplotypeScore=375.75;MQ=40.95;MQ0=20;OQ=701.87;QD=3.00;SB=-184.24	GT:AD:DP:GL:GQ	0/1:132,101:136:-114.44,-40.97,-420.32:99
-chr1	805262	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=240;Dels=0.00;HRun=0;HaplotypeScore=355.61;MQ=40.41;MQ0=21;OQ=112.78;QD=0.47;SB=-10.32	GT:AD:DP:GL:GQ	0/1:195,42:136:-62.96,-48.40,-549.49:99
-chr1	805283	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=350;Dels=0.00;HRun=0;HaplotypeScore=86.54;MQ=35.73;MQ0=32;OQ=70.17;QD=0.20;SB=7.66	GT:AD:DP:GL:GQ	0/1:314,35:208:-72.95,-62.65,-681.33:99
-chr1	805284	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=355;Dels=0.00;HRun=0;HaplotypeScore=88.37;MQ=35.41;MQ0=32;OQ=4656.41;QD=13.12;SB=-1324.68	GT:AD:DP:GL:GQ	0/1:83,272:209:-464.64,-62.96,-333.94:99
-chr1	805326	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=520;Dels=0.00;HRun=0;HaplotypeScore=98.56;MQ=31.27;MQ0=33;OQ=692.81;QD=1.33;SB=-240.64	GT:AD:DP:GL:GQ	0/1:439,81:305:-164.43,-91.87,-1058.15:99
-chr1	805332	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=545;Dels=0.00;HRun=2;HaplotypeScore=105.70;MQ=31.02;MQ0=35;OQ=141.69;QD=0.26;SB=-23.90	GT:AD:DP:GL:GQ	0/1:483,62:326:-115.64,-98.18,-1059.59:99
-chr1	805355	.	A	G	982.52	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=566;Dels=0.00;HRun=0;HaplotypeScore=511.67;MQ=31.08;MQ0=42;QD=1.74;SB=-163.90	GT:AD:DP:GL:GQ	0/1:444,82:337:-230.52,-128.98,-1164.43:99
-chr1	805360	.	A	G	1795.44	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=565;Dels=0.00;HRun=0;HaplotypeScore=478.07;MQ=31.09;MQ0=46;QD=3.18;SB=-791.73	GT:AD:DP:GL:GQ	0/1:432,132:335:-287.21,-104.38,-1038.16:99
-chr1	805365	.	T	C	1655.74	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=542;Dels=0.00;HRun=0;HaplotypeScore=449.89;MQ=31.32;MQ0=44;QD=3.05;SB=-765.34	GT:AD:DP:GL:GQ	0/1:385,157:321:-265.54,-96.68,-1024.45:99
-chr1	805383	rs61768238	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=498;Dels=0.00;HRun=3;HaplotypeScore=98.26;MQ=31.16;MQ0=41;OQ=7913.78;QD=15.89;SB=-2299.71	GT:AD:DP:GL:GQ	0/1:75,423:268:-790.38,-80.71,-278.68:99
-chr1	805386	rs61768239	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=483;Dels=0.00;HRun=1;HaplotypeScore=91.10;MQ=31.39;MQ0=41;OQ=3141.51;QD=6.50;SB=-667.16	GT:AD:DP:GL:GQ	0/1:227,256:265:-397.24,-79.81,-626.74:99
-chr1	805419	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=411;Dels=0.00;HRun=1;HaplotypeScore=30.13;MQ=32.93;MQ0=34;OQ=719.57;QD=1.75;SB=-330.57	GT:AD:DP:GL:GQ	0/1:225,186:205:-136.99,-61.75,-686.74:99
-chr1	805436	rs61768240	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=352;Dels=0.00;HRun=0;HaplotypeScore=2.00;MQ=34.71;MQ0=24;OQ=2408.76;QD=6.84;SB=-1167.64	GT:AD:DP:GL:GQ	0/1:93,259:163:-293.26,-49.10,-323.35:99
-chr1	805464	.	T	C	90.93	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=252;Dels=0.00;HRun=2;HaplotypeScore=145.78;MQ=37.92;MQ0=13;QD=0.36;SB=50.70	GT:AD:DP:GL:GQ	0/1:218,34:131:-51.84,-39.46,-473.80:99
-chr1	805469	.	G	A	411.01	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=232;Dels=0.00;HRun=0;HaplotypeScore=129.65;MQ=39.23;MQ0=10;QD=1.77;SB=-144.72	GT:AD:DP:GL:GQ	0/1:163,68:125:-82.03,-37.65,-380.30:99
-chr1	805474	.	C	T	980.44	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=203;Dels=0.00;HRun=4;HaplotypeScore=70.79;MQ=41.63;MQ0=7;QD=4.83;SB=-326.68	GT:AD:DP:GL:GQ	0/1:87,114:116:-136.29,-34.97,-264.49:99
-chr1	805480	.	G	T	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=196;Dels=0.00;HRun=1;HaplotypeScore=5.97;MQ=42.07;MQ0=5;OQ=803.65;QD=4.10;SB=-259.91	GT:AD:DP:GL:GQ	0/1:87,109:116:-118.58,-34.93,-301.30:99
-chr1	805558	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=180;Dels=0.00;HRun=0;HaplotypeScore=21.59;MQ=45.69;MQ0=3;OQ=812.25;QD=4.51;SB=-279.67	GT:AD:DP:GL:GQ	0/1:110,69:130:-123.67,-39.16,-392.54:99
-chr1	805591	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=218;Dels=0.00;HRun=0;HaplotypeScore=34.23;MQ=41.40;MQ0=5;OQ=1850.17;QD=8.49;SB=-635.41	GT:AD:DP:GL:GQ	0/1:84,134:148:-232.88,-44.58,-338.13:99
-chr1	805603	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=239;Dels=0.00;HRun=0;HaplotypeScore=49.54;MQ=40.33;MQ0=6;OQ=1757.35;QD=7.35;SB=-559.93	GT:AD:DP:GL:GQ	0/1:109,130:154:-225.41,-46.39,-351.31:99
-chr1	805620	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=274;Dels=0.00;HRun=0;HaplotypeScore=50.16;MQ=37.51;MQ0=8;OQ=230.26;QD=0.84;SB=134.91	GT:AD:DP:GL:GQ	0/1:246,28:171:-77.81,-51.50,-552.70:99
-chr1	805666	.	G	A	1332.87	DPFilter;Indel	AC=1;AF=0.50;AN=2;DP=339;Dels=0.00;HRun=0;HaplotypeScore=203.60;MQ=35.75;MQ0=0;QD=3.93;SB=119.41	GT:AD:DP:GL:GQ	0/1:281,58:223:-203.73,-67.16,-610.84:99
-chr1	805667	.	T	G	1225.05	DPFilter;Indel	AC=1;AF=0.50;AN=2;DP=341;Dels=0.00;HRun=2;HaplotypeScore=286.55;MQ=35.76;MQ0=2;QD=3.59;SB=122.41	GT:AD:DP:GL:GQ	0/1:261,66:222:-230.10,-104.31,-623.63:99
-chr1	805699	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=311;Dels=0.00;HRun=0;HaplotypeScore=73.71;MQ=35.76;MQ0=12;OQ=1765.48;QD=5.68;SB=-47.39	GT:AD:DP:GL:GQ	0/1:139,171:182:-234.66,-54.83,-454.10:99
-chr1	805716	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=281;Dels=0.00;HRun=1;HaplotypeScore=131.75;MQ=37.99;MQ0=12;OQ=2170.35;QD=7.72;SB=-121.23	GT:AD:DP:GL:GQ	0/1:87,193:163:-269.41,-49.09,-357.63:99
-chr1	805720	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=282;Dels=0.00;HRun=0;HaplotypeScore=145.61;MQ=38.29;MQ0=13;OQ=527.98;QD=1.87;SB=137.43	GT:AD:DP:GL:GQ	0/1:237,44:165:-105.78,-49.70,-509.42:99
-chr1	805742	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=240;Dels=0.00;HRun=1;HaplotypeScore=47.83;MQ=40.90;MQ0=15;OQ=1225.89;QD=5.11;SB=-296.81	GT:AD:DP:GL:GQ	0/1:97,143:138:-167.44,-41.57,-348.72:99
-chr1	805786	.	A	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=181;Dels=0.00;HRun=0;HaplotypeScore=3.15;MQ=44.26;MQ0=7;OQ=155.59;QD=0.86;SB=-81.22	GT:AD:DP:GL:GQ	0/1:95,86:108:-51.37,-32.53,-383.93:99
-chr1	805792	.	A	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=175;Dels=0.00;HRun=0;HaplotypeScore=9.50;MQ=44.61;MQ0=6;OQ=192.56;QD=1.10;SB=-88.24	GT:AD:DP:GL:GQ	0/1:93,82:108:-55.07,-32.53,-377.29:99
-chr1	805825	.	A	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=165;Dels=0.00;HRun=0;HaplotypeScore=9.99;MQ=46.58;MQ0=3;OQ=327.36;QD=1.98;SB=-101.34	GT:AD:DP:GL:GQ	0/1:95,70:115:-70.67,-34.65,-378.60:99
-chr1	805831	.	G	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=154;Dels=0.00;HRun=0;HaplotypeScore=10.96;MQ=47.14;MQ0=3;OQ=324.94;QD=2.11;SB=-17.64	GT:AD:DP:GL:GQ	0/1:97,57:110:-68.91,-33.13,-331.34:99
-chr1	805897	.	G	T	104.51	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=142;Dels=0.00;HRun=0;HaplotypeScore=35.45;MQ=51.05;MQ0=2;QD=0.74;SB=119.34	GT:AD:DP:GL:GQ	0/1:121,19:121:-50.18,-36.44,-386.79:99
-chr1	805898	.	C	A	129.42	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=142;Dels=0.00;HRun=0;HaplotypeScore=35.61;MQ=51.05;MQ0=2;QD=0.91;SB=116.38	GT:AD:DP:GL:GQ	0/1:123,19:121:-52.67,-36.45,-375.35:99
-chr1	805905	.	T	G	13.51	DPFilter;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=130;Dels=0.00;HRun=0;HaplotypeScore=25.14;MQ=52.44;MQ0=2;QD=0.10;SB=92.42	GT:AD:DP:GL:GQ	0/1:98,32:107:-36.84,-32.23,-356.89:46.15
-chr1	806044	.	T	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=182;Dels=0.00;HRun=0;HaplotypeScore=16.71;MQ=40.59;MQ0=35;OQ=921.37;QD=5.06;SB=-438.60	GT:AD:DP:GL:GQ	0/1:71,111:106:-127.34,-31.92,-261.51:99
-chr1	806066	.	C	T	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=250;Dels=0.00;HRun=1;HaplotypeScore=9.43;MQ=37.37;MQ0=38;OQ=287.57;QD=1.15;SB=103.29	GT:AD:DP:GL:GQ	0/1:214,36:146:-76.01,-43.97,-467.77:99
-chr1	806081	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=255;Dels=0.00;HRun=0;HaplotypeScore=39.62;MQ=37.88;MQ0=27;OQ=908.24;QD=3.56;SB=97.71	GT:AD:DP:GL:GQ	0/1:178,77:158:-141.71,-47.60,-556.49:99
-chr1	806157	.	T	C	806.81	DPFilter;Indel	AC=1;AF=0.50;AN=2;DP=215;Dels=0.00;HRun=0;HaplotypeScore=71.06;MQ=40.64;MQ0=4;QD=3.75;SB=110.40	GT:AD:DP:GL:GQ	0/1:92,123:126:-121.92,-37.95,-368.73:99
-chr1	806159	.	A	C	141.17	DPFilter;Indel	AC=1;AF=0.50;AN=2;DP=219;Dels=0.00;HRun=0;HaplotypeScore=72.96;MQ=40.68;MQ0=4;QD=0.64;SB=110.38	GT:AD:DP:GL:GQ	0/1:166,49:128:-59.78,-42.38,-415.09:99
-chr1	806180	.	A	G	18.74	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=200;Dels=0.00;HRun=0;HaplotypeScore=59.33;MQ=41.65;MQ0=4;QD=0.09;SB=116.41	GT:AD:DP:GL:GQ	0/1:140,60:110:-38.29,-33.13,-408.92:51.52
-chr1	806197	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=201;Dels=0.00;HRun=1;HaplotypeScore=58.42;MQ=43.62;MQ0=5;OQ=190.94;QD=0.95;SB=134.47	GT:AD:DP:GL:GQ	0/1:110,91:116:-57.32,-34.94,-409.71:99
-chr1	806222	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=162;Dels=0.00;HRun=4;HaplotypeScore=6.94;MQ=47.96;MQ0=4;OQ=291.81;QD=1.80;SB=146.43	GT:AD:DP:GL:GQ	0/1:98,64:114:-66.80,-34.33,-354.69:99
-chr1	806232	.	T	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=151;Dels=0.00;HRun=1;HaplotypeScore=11.98;MQ=49.02;MQ0=3;OQ=233.87;QD=1.55;SB=140.48	GT:AD:DP:GL:GQ	0/1:96,55:110:-59.80,-33.13,-362.79:99
-chr1	806258	.	G	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=162;Dels=0.00;HRun=0;HaplotypeScore=10.30;MQ=50.03;MQ0=8;OQ=407.17;QD=2.51;SB=100.40	GT:AD:DP:GL:GQ	0/1:106,56:126:-81.95,-37.95,-384.61:99
-chr1	806268	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=164;Dels=0.00;HRun=1;HaplotypeScore=25.82;MQ=48.78;MQ0=9;OQ=670.14;QD=4.09;SB=84.39	GT:AD:DP:GL:GQ	0/1:109,55:126:-108.24,-37.95,-362.57:99
-chr1	806273	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=170;Dels=0.00;HRun=0;HaplotypeScore=24.82;MQ=48.14;MQ0=9;OQ=549.55;QD=3.23;SB=88.59	GT:AD:DP:GL:GQ	0/1:119,51:130:-97.39,-39.15,-372.33:99
-chr1	806316	.	T	G	0.95	PASS	AC=1;AF=0.50;AN=2;DP=225;Dels=0.00;HRun=0;HaplotypeScore=6.00;MQ=41.01;MQ0=11;OQ=1685.25;QD=7.49;SB=-248.74	GT:AD:DP:GL:GQ	0/1:86,139:148:-216.38,-44.57,-322.16:99
-chr1	806332	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=267;Dels=0.00;HRun=0;HaplotypeScore=118.47;MQ=40.66;MQ0=10;OQ=669.93;QD=2.51;SB=-242.01	GT:AD:DP:GL:GQ	0/1:204,61:176:-123.31,-53.03,-632.31:99
-chr1	806338	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=266;Dels=0.00;HRun=0;HaplotypeScore=122.42;MQ=40.64;MQ0=8;OQ=2439.01;QD=9.17;SB=-856.79	GT:AD:DP:GL:GQ	0/1:98,144:180:-333.38,-86.20,-389.89:99
-chr1	806349	.	G	A	3132.30	DPFilter;Indel	AC=1;AF=0.50;AN=2;DP=280;Dels=0.07;HRun=0;HaplotypeScore=186.48;MQ=39.25;MQ0=4;QD=11.19;SB=-1153.15	GT:AD:DP:GL:GQ	0/1:91,170:182:-371.34,-54.83,-329.61:99
-chr1	806378	rs61768241	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=371;Dels=0.00;HRun=0;HaplotypeScore=37.20;MQ=35.74;MQ0=10;OQ=1136.07;QD=3.06;SB=-392.71	GT:AD:DP:GL:GQ	0/1:284,87:244:-190.38,-73.49,-742.15:99
-chr1	806405	.	A	T	171.83	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=402;Dels=0.02;HRun=5;HaplotypeScore=383.28;MQ=34.90;MQ0=14;QD=0.43;SB=-100.81	GT:AD:DP:GL:GQ	0/1:350,43:240:-91.25,-70.78,-803.92:99
-chr1	806411	.	A	T	5745.19	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=405;Dels=0.00;HRun=5;HaplotypeScore=552.66;MQ=35.31;MQ0=14;QD=14.19;SB=-2306.85	GT:AD:DP:GL:GQ	0/1:102,301:243:-573.52,-72.58,-344.41:99
-chr1	806412	.	A	T	2395.75	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=407;Dels=0.00;HRun=0;HaplotypeScore=506.57;MQ=35.27;MQ0=14;QD=5.89;SB=-1049.34	GT:AD:DP:GL:GQ	0/1:219,186:244:-315.74,-72.89,-600.57:99
-chr1	806419	.	G	T	930.64	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=433;Dels=0.00;HRun=4;HaplotypeScore=220.68;MQ=34.42;MQ0=17;QD=2.15;SB=-419.01	GT:AD:DP:GL:GQ	0/1:342,91:258:-174.05,-77.70,-758.54:99
-chr1	806424	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=450;Dels=0.00;HRun=4;HaplotypeScore=249.41;MQ=33.94;MQ0=20;OQ=971.28;QD=2.16;SB=-437.51	GT:AD:DP:GL:GQ	0/1:358,92:263:-179.62,-79.21,-806.78:99
-chr1	806430	rs61768242	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=441;Dels=0.01;HRun=1;HaplotypeScore=160.65;MQ=34.18;MQ0=22;OQ=1511.20;QD=3.43;SB=-624.36	GT:AD:DP:GL:GQ	0/1:304,134:257:-231.81,-77.41,-730.64:99
-chr1	806460	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=368;Dels=0.01;HRun=0;HaplotypeScore=18.13;MQ=35.78;MQ0=21;OQ=826.67;QD=2.25;SB=-89.07	GT:AD:DP:GL:GQ	0/1:306,59:217:-150.70,-64.75,-660.76:99
-chr1	806471	.	C	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=290;Dels=0.00;HRun=0;HaplotypeScore=4.58;MQ=38.11;MQ0=12;OQ=2295.87;QD=7.92;SB=-836.85	GT:AD:DP:GL:GQ	0/1:88,202:166:-282.86,-49.99,-314.28:99
-chr1	806472	.	T	G	0.04	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=284;Dels=0.00;HRun=0;HaplotypeScore=4.58;MQ=38.55;MQ0=12;OQ=2108.07;QD=7.42;SB=-683.52	GT:AD:DP:GL:GQ	0/1:91,193:165:-263.78,-49.69,-338.75:99
-chr1	806498	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=207;Dels=0.00;HRun=2;HaplotypeScore=28.30;MQ=42.69;MQ0=9;OQ=436.81;QD=2.11;SB=-20.91	GT:AD:DP:GL:GQ	0/1:161,46:144:-90.38,-43.41,-400.65:99
-chr1	806543	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=195;Dels=0.00;HRun=1;HaplotypeScore=100.50;MQ=43.92;MQ0=14;OQ=975.93;QD=5.00;SB=-107.11	GT:AD:DP:GL:GQ	0/1:89,101:124:-149.49,-48.61,-281.82:99
-chr1	806545	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=211;Dels=0.00;HRun=0;HaplotypeScore=104.33;MQ=43.14;MQ0=16;OQ=1451.12;QD=6.88;SB=-262.10	GT:AD:DP:GL:GQ	0/1:103,108:137:-189.66,-41.27,-324.56:99
-chr1	806559	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=338;Dels=0.00;HRun=5;HaplotypeScore=96.33;MQ=38.72;MQ0=24;OQ=1155.72;QD=3.42;SB=-374.82	GT:AD:DP:GL:GQ	0/1:243,83:209:-199.57,-80.72,-560.52:99
-chr1	806579	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=382;Dels=0.00;HRun=0;HaplotypeScore=77.21;MQ=36.57;MQ0=25;OQ=319.95;QD=0.84;SB=31.35	GT:AD:DP:GL:GQ	0/1:306,63:241:-152.76,-117.48,-790.42:99
-chr1	806588	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=408;Dels=0.00;HRun=0;HaplotypeScore=158.67;MQ=35.58;MQ0=25;OQ=4390.20;QD=10.76;SB=-833.37	GT:AD:DP:GL:GQ	0/1:156,252:245:-438.02,-73.80,-510.93:99
-chr1	806591	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=423;Dels=0.00;HRun=0;HaplotypeScore=153.73;MQ=35.14;MQ0=25;OQ=116.80;QD=0.28;SB=22.12	GT:AD:DP:GL:GQ	0/1:359,64:250:-90.26,-75.29,-922.92:99
-chr1	806599	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=465;Dels=0.00;HRun=3;HaplotypeScore=92.78;MQ=34.88;MQ0=25;OQ=533.96;QD=1.15;SB=-62.62	GT:AD:DP:GL:GQ	0/1:398,67:259:-134.68,-78.00,-790.36:99
-chr1	806614	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=552;Dels=0.00;HRun=4;HaplotypeScore=128.97;MQ=33.43;MQ0=27;OQ=171.34;QD=0.31;SB=81.53	GT:AD:DP:GL:GQ	0/1:512,39:328:-122.57,-102.16,-1083.77:99
-chr1	806616	.	A	C	48.77	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=560;Dels=0.00;HRun=0;HaplotypeScore=145.79;MQ=33.35;MQ0=27;QD=0.09;SB=125.19	GT:AD:DP:GL:GQ	0/1:521,38:333:-108.15,-99.99,-1104.08:81.61
-chr1	806647	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=500;Dels=0.00;HRun=1;HaplotypeScore=106.37;MQ=33.16;MQ0=15;OQ=6479.54;QD=12.96;SB=-2653.75	GT:AD:DP:GL:GQ	0/1:87,413:252:-646.95,-75.89,-317.53:99
-chr1	806652	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=463;Dels=0.00;HRun=0;HaplotypeScore=119.18;MQ=33.47;MQ0=16;OQ=6167.91;QD=13.32;SB=-2596.35	GT:AD:DP:GL:GQ	0/1:76,386:224:-615.79,-67.46,-279.43:99
-chr1	806659	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=412;Dels=0.00;HRun=0;HaplotypeScore=138.09;MQ=33.68;MQ0=14;OQ=4821.66;QD=11.70;SB=-2064.94	GT:AD:DP:GL:GQ	0/1:127,285:208:-481.17,-62.64,-276.81:99
-chr1	806663	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=403;Dels=0.00;HRun=1;HaplotypeScore=116.74;MQ=34.29;MQ0=14;OQ=4902.23;QD=12.16;SB=-2019.44	GT:AD:DP:GL:GQ	0/1:76,327:212:-489.22,-63.85,-279.67:99
-chr1	806698	.	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=346;Dels=0.00;HRun=0;HaplotypeScore=104.08;MQ=36.06;MQ0=23;OQ=205.16;QD=0.59;SB=41.51	GT:AD:DP:GL:GQ	0/1:305,41:216:-88.85,-65.05,-740.73:99
-chr1	806719	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=212;Dels=0.00;HRun=0;HaplotypeScore=400.08;MQ=40.22;MQ0=20;OQ=582.43;QD=2.75;SB=89.75	GT:AD:DP:GL:GQ	0/1:145,66:134:-101.59,-40.07,-419.05:99
-chr1	806735	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=218;Dels=0.00;HRun=0;HaplotypeScore=24.14;MQ=41.77;MQ0=24;OQ=129.16;QD=0.59;SB=143.49	GT:AD:DP:GL:GQ	0/1:169,49:138:-57.78,-41.58,-482.40:99
-chr1	806755	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=213;Dels=0.00;HRun=0;HaplotypeScore=72.66;MQ=42.05;MQ0=23;OQ=1702.34;QD=7.99;SB=-97.29	GT:AD:DP:GL:GQ	0/1:86,127:148:-218.09,-44.57,-348.93:99
-chr1	806758	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=212;Dels=0.00;HRun=0;HaplotypeScore=66.82;MQ=42.51;MQ0=24;OQ=101.05;QD=0.48;SB=140.48	GT:AD:DP:GL:GQ	0/1:180,31:147:-57.67,-44.28,-533.12:99
-chr1	806774	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=188;Dels=0.00;HRun=0;HaplotypeScore=33.98;MQ=43.76;MQ0=28;OQ=1370.17;QD=7.29;SB=4.43	GT:AD:DP:GL:GQ	0/1:94,94:136:-181.26,-40.96,-326.53:99
-chr1	806807	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=247;Dels=0.00;HRun=1;HaplotypeScore=84.17;MQ=41.43;MQ0=32;OQ=1901.04;QD=7.70;SB=-364.66	GT:AD:DP:GL:GQ	0/1:93,133:161:-255.61,-62.23,-399.73:99
-chr1	806819	.	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=264;Dels=0.00;HRun=1;HaplotypeScore=51.78;MQ=39.46;MQ0=35;OQ=117.55;QD=0.45;SB=-52.87	GT:AD:DP:GL:GQ	0/1:235,29:167:-65.33,-50.29,-569.53:99
-chr1	806835	.	T	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=278;Dels=0.00;HRun=0;HaplotypeScore=24.93;MQ=38.15;MQ0=32;OQ=3184.79;QD=11.46;SB=-1086.54	GT:AD:DP:GL:GQ	0/1:75,203:179:-375.67,-53.91,-276.38:99
-chr1	806857	.	A	G	426.69	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=388;Dels=0.00;HRun=0;HaplotypeScore=416.26;MQ=36.42;MQ0=33;QD=1.10;SB=-205.00	GT:AD:DP:GL:GQ	0/1:336,52:260:-124.27,-78.32,-915.07:99
-chr1	806858	.	A	C	2180.12	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=390;Dels=0.00;HRun=1;HaplotypeScore=419.10;MQ=36.36;MQ0=33;QD=5.59;SB=-410.18	GT:AD:DP:GL:GQ	0/1:135,134:259:-523.35,-302.06,-691.29:99
-chr1	806860	.	T	C	364.40	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=414;Dels=0.02;HRun=1;HaplotypeScore=391.10;MQ=36.35;MQ0=33;QD=0.88;SB=-200.49	GT:AD:DP:GL:GQ	0/1:360,44:277:-126.33,-86.61,-1004.70:99
-chr1	806864	.	G	A	1874.70	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=430;Dels=0.00;HRun=0;HaplotypeScore=443.75;MQ=36.02;MQ0=32;QD=4.36;SB=-378.35	GT:AD:DP:GL:GQ	0/1:340,90:284:-276.29,-85.54,-766.79:99
-chr1	806872	.	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=439;Dels=0.00;HRun=3;HaplotypeScore=61.91;MQ=35.95;MQ0=27;OQ=241.94;QD=0.55;SB=-56.85	GT:AD:DP:GL:GQ	0/1:394,45:294:-116.03,-88.55,-994.05:99
-chr1	806914	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=433;Dels=0.00;HRun=1;HaplotypeScore=82.84;MQ=36.13;MQ0=15;OQ=91.45;QD=0.21;SB=145.33	GT:AD:DP:GL:GQ	0/1:380,53:292:-100.38,-87.95,-1073.99:99
-chr1	806929	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=394;Dels=0.00;HRun=1;HaplotypeScore=53.78;MQ=36.16;MQ0=12;OQ=628.62;QD=1.60;SB=165.96	GT:AD:DP:GL:GQ	0/1:300,94:257:-143.55,-77.40,-778.57:99
-chr1	806933	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=384;Dels=0.00;HRun=1;HaplotypeScore=52.56;MQ=36.30;MQ0=13;OQ=624.21;QD=1.63;SB=148.11	GT:AD:DP:GL:GQ	0/1:298,86:253:-141.91,-76.20,-801.85:99
-chr1	807097	rs4970387	A	T	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=141;Dels=0.00;HRun=4;HaplotypeScore=35.71;MQ=49.47;MQ0=9;OQ=3569.50;QD=25.32;SB=-1647.14	GT:AD:DP:GL:GQ	1/1:0,141:95:-355.95,-28.62,-0.03:99
-chr1	807120	.	C	T	28.74	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=148;Dels=0.00;HRun=5;HaplotypeScore=8.47;MQ=47.00;MQ0=10;QD=0.19;SB=107.30	GT:AD:DP:GL:GQ	0/1:82,66:90:-33.27,-27.11,-295.41:61.57
-chr1	807127	.	C	G	240.31	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=149;Dels=0.00;HRun=0;HaplotypeScore=32.57;MQ=46.64;MQ0=10;QD=1.61;SB=107.38	GT:AD:DP:GL:GQ	0/1:80,69:92:-55.04,-27.72,-340.23:99
-chr1	807132	.	T	C	652.10	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=152;Dels=0.00;HRun=1;HaplotypeScore=41.20;MQ=46.24;MQ0=10;QD=4.29;SB=107.38	GT:AD:DP:GL:GQ	0/1:77,75:102:-99.22,-30.73,-310.86:99
-chr1	807136	.	C	A	59.03	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=162;Dels=0.00;HRun=2;HaplotypeScore=75.46;MQ=45.64;MQ0=10;QD=0.36;SB=6.21	GT:AD:DP:GL:GQ	0/1:135,27:108:-41.72,-32.53,-330.47:91.87
-chr1	807137	.	T	G	132.15	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=159;Dels=0.00;HRun=0;HaplotypeScore=74.46;MQ=45.79;MQ0=10;QD=0.83;SB=113.39	GT:AD:DP:GL:GQ	0/1:140,19:114:-50.84,-34.34,-356.98:99
-chr1	807144	.	G	C	321.19	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=164;Dels=0.00;HRun=0;HaplotypeScore=33.44;MQ=44.89;MQ0=10;QD=1.96;SB=17.66	GT:AD:DP:GL:GQ	0/1:131,27:122:-82.39,-46.99,-445.41:99
-chr1	807168	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=175;Dels=0.00;HRun=0;HaplotypeScore=236.47;MQ=42.45;MQ0=9;OQ=1209.57;QD=6.91;SB=-394.74	GT:AD:DP:GL:GQ	0/1:124,51:131:-163.71,-39.47,-414.74:99
-chr1	807169	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=179;Dels=0.00;HRun=1;HaplotypeScore=262.45;MQ=42.56;MQ0=9;OQ=108.48;QD=0.61;SB=74.80	GT:AD:DP:GL:GQ	0/1:162,17:135:-54.79,-40.66,-456.43:99
-chr1	807188	.	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=186;Dels=0.01;HRun=8;HaplotypeScore=227.66;MQ=43.88;MQ0=1;OQ=1264.52;QD=6.80;SB=-460.79	GT:AD:DP:GL:GQ	0/1:118,67:149:-174.32,-44.58,-377.47:99
-chr1	807190	.	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=185;Dels=0.00;HRun=0;HaplotypeScore=246.34;MQ=43.75;MQ0=1;OQ=529.31;QD=2.86;SB=137.46	GT:AD:DP:GL:GQ	0/1:148,37:145:-99.89,-43.67,-443.33:99
-chr1	807204	.	A	C	36.37	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=188;Dels=0.00;HRun=0;HaplotypeScore=12.98;MQ=42.45;MQ0=6;QD=0.19;SB=109.90	GT:AD:DP:GL:GQ	0/1:167,21:153:-53.00,-46.08,-519.54:69.21
-chr1	807245	.	C	T	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=165;Dels=0.00;HRun=1;HaplotypeScore=17.90;MQ=38.97;MQ0=18;OQ=1145.58;QD=6.94;SB=-550.34	GT:AD:DP:GL:GQ	0/1:87,78:121:-154.28,-36.44,-312.35:99
-chr1	807259	.	G	A	0.04	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=152;Dels=0.00;HRun=1;HaplotypeScore=3.00;MQ=39.36;MQ0=20;OQ=646.71;QD=4.25;SB=-192.93	GT:AD:DP:GL:GQ	0/1:96,56:108:-100.48,-32.53,-300.21:99
-chr1	807350	rs4082611	G	A	0.14	PASS	AC=1;AF=0.50;AN=2;DB;DP=152;Dels=0.00;HRun=0;HaplotypeScore=9.97;MQ=44.42;MQ0=8;OQ=866.67;QD=5.70;SB=98.31	GT:AD:DP:GL:GQ	0/1:80,69:106:-125.51,-35.56,-282.07:99
-chr1	807353	.	C	A	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=159;Dels=0.00;HRun=0;HaplotypeScore=8.92;MQ=43.77;MQ0=8;OQ=867.33;QD=5.45;SB=95.29	GT:AD:DP:GL:GQ	0/1:76,83:108:-122.54,-32.52,-265.26:99
-chr1	807384	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=204;Dels=0.00;HRun=0;HaplotypeScore=61.52;MQ=40.31;MQ0=13;OQ=503.09;QD=2.47;SB=116.39	GT:AD:DP:GL:GQ	0/1:145,57:132:-93.37,-39.78,-338.75:99
-chr1	807385	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=203;Dels=0.00;HRun=1;HaplotypeScore=61.52;MQ=40.32;MQ0=13;OQ=1779.01;QD=8.76;SB=73.73	GT:AD:DP:GL:GQ	0/1:76,126:131:-220.64,-39.46,-278.09:99
-chr1	807400	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=243;Dels=0.00;HRun=1;HaplotypeScore=26.31;MQ=38.88;MQ0=12;OQ=2472.80;QD=10.18;SB=76.74	GT:AD:DP:GL:GQ	0/1:81,162:155:-297.25,-46.69,-297.33:99
-chr1	807412	rs4082610	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=262;Dels=0.00;HRun=4;HaplotypeScore=30.19;MQ=38.31;MQ0=9;OQ=2516.42;QD=9.60;SB=119.38	GT:AD:DP:GL:GQ	0/1:109,153:168:-305.53,-50.60,-311.50:99
-chr1	807432	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=262;Dels=0.00;HRun=0;HaplotypeScore=25.55;MQ=38.32;MQ0=6;OQ=4433.84;QD=16.92;SB=-160.81	GT:AD:DP:GL:GQ	0/1:80,182:176:-442.38,-53.03,-343.20:99
-chr1	807469	.	C	T	416.75	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=210;Dels=0.00;HRun=0;HaplotypeScore=92.28;MQ=41.14;MQ0=1;QD=1.98;SB=-49.34	GT:AD:DP:GL:GQ	0/1:84,126:97:-74.18,-29.22,-280.73:99
-chr1	807471	.	A	C	318.15	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=213;Dels=0.00;HRun=2;HaplotypeScore=90.45;MQ=41.29;MQ0=1;QD=1.49;SB=-31.35	GT:AD:DP:GL:GQ	0/1:85,128:99:-64.91,-29.81,-297.50:99
-chr1	807475	.	C	T	356.15	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=213;Dels=0.00;HRun=0;HaplotypeScore=174.77;MQ=40.93;MQ0=2;QD=1.67;SB=-36.29	GT:AD:DP:GL:GQ	0/1:85,128:101:-69.35,-30.45,-273.00:99
-chr1	807484	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=215;Dels=0.00;HRun=1;HaplotypeScore=266.19;MQ=40.31;MQ0=2;OQ=100.09;QD=0.47;SB=95.09	GT:AD:DP:GL:GQ	0/1:168,47:127:-51.55,-38.26,-450.15:99
-chr1	807508	.	G	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=185;Dels=0.00;HRun=1;HaplotypeScore=7.00;MQ=41.28;MQ0=4;OQ=211.72;QD=1.14;SB=90.69	GT:AD:DP:GL:GQ	0/1:142,43:119:-60.30,-35.84,-379.49:99
-chr1	807527	.	G	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=161;Dels=0.00;HRun=2;HaplotypeScore=9.95;MQ=41.68;MQ0=7;OQ=177.85;QD=1.10;SB=146.44	GT:AD:DP:GL:GQ	0/1:119,42:108:-53.60,-32.53,-346.10:99
-chr1	807556	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=137;Dels=0.00;HRun=1;HaplotypeScore=66.91;MQ=41.77;MQ0=6;OQ=532.40;QD=3.89;SB=-236.01	GT:AD:DP:GL:GQ	0/1:68,69:85:-82.13,-25.60,-230.23:99
-chr1	807561	.	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=140;Dels=0.00;HRun=0;HaplotypeScore=70.93;MQ=41.65;MQ0=7;OQ=124.65;QD=0.89;SB=101.32	GT:AD:DP:GL:GQ	0/1:96,44:87:-41.95,-26.20,-282.69:99
-chr1	807571	rs34106744	T	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=135;Dels=0.00;HRun=3;HaplotypeScore=33.63;MQ=41.31;MQ0=9;OQ=377.46;QD=2.80;SB=-157.65	GT:AD:DP:GL:GQ	0/1:62,73:80:-65.12,-24.09,-230.06:99
-chr1	807588	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=164;Dels=0.00;HRun=0;HaplotypeScore=29.86;MQ=39.35;MQ0=12;OQ=1527.96;QD=9.32;SB=-255.65	GT:AD:DP:GL:GQ	0/1:60,104:105:-187.72,-31.65,-191.88:99
-chr1	807611	.	G	C	0.98	PASS	AC=1;AF=0.50;AN=2;DP=168;Dels=0.00;HRun=0;HaplotypeScore=7.78;MQ=38.64;MQ0=13;OQ=1984.90;QD=11.81;SB=-213.08	GT:AD:DP:GL:GQ	0/1:60,108:111:-235.21,-33.44,-245.33:99
-chr1	807628	.	G	A	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=194;Dels=0.00;HRun=0;HaplotypeScore=15.09;MQ=38.17;MQ0=13;OQ=1889.96;QD=9.74;SB=-59.93	GT:AD:DP:GL:GQ	0/1:68,126:123:-229.33,-37.05,-239.27:99
-chr1	807662	.	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=324;Dels=0.00;HRun=0;HaplotypeScore=5.25;MQ=35.02;MQ0=24;OQ=5029.36;QD=15.52;SB=-1355.57	GT:AD:DP:GL:GQ	0/1:79,245:206:-501.94,-62.04,-299.38:99
-chr1	807698	rs61768243	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=413;Dels=0.00;HRun=1;HaplotypeScore=119.83;MQ=33.65;MQ0=41;OQ=7356.92;QD=17.81;SB=-2911.42	GT:AD:DP:GL:GQ	0/1:85,328:252:-734.69,-75.92,-368.28:99
-chr1	807726	rs61768244	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=451;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=33.55;MQ0=36;OQ=2315.76;QD=5.13;SB=-928.19	GT:AD:DP:GL:GQ	0/1:303,148:263:-314.08,-79.22,-727.35:99
-chr1	807759	rs4034377	A	C	755.20	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=336;Dels=0.00;HRun=0;HaplotypeScore=236.06;MQ=33.74;MQ0=39;QD=2.25;SB=-109.97	GT:AD:DP:GL:GQ	0/1:260,76:175:-131.50,-52.70,-521.92:99
-chr1	807761	.	A	G	2451.79	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=328;Dels=0.00;HRun=0;HaplotypeScore=310.08;MQ=33.84;MQ0=39;QD=7.47;SB=-739.45	GT:AD:DP:GL:GQ	0/1:164,163:171:-299.96,-51.50,-359.62:99
-chr1	807766	rs3969819	A	C	564.07	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=320;Dels=0.00;HRun=0;HaplotypeScore=284.38;MQ=33.76;MQ0=45;QD=1.76;SB=-303.05	GT:AD:DP:GL:GQ	0/1:266,53:164:-109.08,-49.39,-509.36:99
-chr1	807787	.	G	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=301;Dels=0.00;HRun=1;HaplotypeScore=10.94;MQ=35.09;MQ0=34;OQ=678.04;QD=2.25;SB=50.87	GT:AD:DP:GL:GQ	0/1:179,122:124:-108.43,-37.34,-358.12:99
-chr1	807799	.	T	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=330;Dels=0.00;HRun=1;HaplotypeScore=46.01;MQ=35.31;MQ0=34;OQ=1300.39;QD=3.94;SB=-358.87	GT:AD:DP:GL:GQ	0/1:191,139:161:-181.81,-48.48,-410.83:99
-chr1	807817	rs4034379	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=305;Dels=0.00;HRun=0;HaplotypeScore=40.59;MQ=36.43;MQ0=47;OQ=1097.69;QD=3.60;SB=-508.19	GT:AD:DP:GL:GQ	0/1:205,100:154:-159.44,-46.39,-521.49:99
-chr1	807831	rs4034380	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=324;Dels=0.00;HRun=0;HaplotypeScore=53.25;MQ=36.07;MQ0=54;OQ=860.18;QD=2.65;SB=-52.35	GT:AD:DP:GL:GQ	0/1:235,89:165:-139.00,-49.70,-477.57:99
-chr1	807843	rs61768247	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=340;Dels=0.00;HRun=3;HaplotypeScore=25.24;MQ=35.61;MQ0=59;OQ=2917.98;QD=8.58;SB=-1176.92	GT:AD:DP:GL:GQ	0/1:93,247:179:-348.99,-53.91,-340.62:99
-chr1	807878	.	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=340;Dels=0.00;HRun=3;HaplotypeScore=1.68;MQ=33.99;MQ0=59;OQ=2636.13;QD=7.75;SB=-1148.59	GT:AD:DP:GL:GQ	0/1:141,199:182:-321.71,-54.82,-379.20:99
-chr1	807900	rs61768248	A	G	107.46	PASS	AC=1;AF=0.50;AN=2;DB;DP=254;Dels=0.00;HRun=0;HaplotypeScore=1.16;MQ=36.51;MQ0=52;OQ=2423.92;QD=9.54;SB=-510.71	GT:AD:DP:GL:GQ	0/1:72,182:155:-292.36,-46.69,-288.83:99
-chr1	807921	rs4034381	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=238;Dels=0.00;HRun=0;HaplotypeScore=52.91;MQ=37.12;MQ0=38;OQ=730.38;QD=3.07;SB=87.15	GT:AD:DP:GL:GQ	0/1:169,69:152:-122.12,-45.80,-464.61:99
-chr1	807923	rs2311679	T	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=238;Dels=0.00;HRun=1;HaplotypeScore=53.91;MQ=36.90;MQ0=37;OQ=150.90;QD=0.63;SB=114.49	GT:AD:DP:GL:GQ	0/1:205,33:149:-63.25,-44.87,-483.89:99
-chr1	807940	rs61768249	C	T	132.32	PASS	AC=1;AF=0.50;AN=2;DB;DP=201;Dels=0.00;HRun=0;HaplotypeScore=4.00;MQ=39.52;MQ0=18;OQ=2365.28;QD=11.77;SB=-227.57	GT:AD:DP:GL:GQ	0/1:70,131:135:-280.47,-40.66,-242.20:99
-chr1	807969	.	G	T	0.34	PASS	AC=1;AF=0.50;AN=2;DP=201;Dels=0.00;HRun=0;HaplotypeScore=3.99;MQ=40.13;MQ0=16;OQ=852.49;QD=4.24;SB=25.59	GT:AD:DP:GL:GQ	0/1:139,62:138:-130.10,-41.57,-369.51:99
-chr1	807986	.	G	A	410.65	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=191;Dels=0.00;HRun=0;HaplotypeScore=37.75;MQ=40.61;MQ0=11;QD=2.15;SB=32.93	GT:AD:DP:GL:GQ	0/1:73,117:91:-71.78,-27.44,-235.41:99
-chr1	807989	.	A	G	41.79	DPFilter;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=175;Dels=0.00;HRun=1;HaplotypeScore=63.74;MQ=41.32;MQ0=11;QD=0.24;SB=71.44	GT:AD:DP:GL:GQ	0/1:71,104:80:-31.56,-24.09,-295.20:74.62
-chr1	807990	.	G	T	63.48	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=175;Dels=0.00;HRun=1;HaplotypeScore=63.74;MQ=41.32;MQ0=11;QD=0.36;SB=71.41	GT:AD:DP:GL:GQ	0/1:71,104:79:-33.42,-23.79,-250.10:96.32
-chr1	808001	rs2311681	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=186;Dels=0.00;HRun=1;HaplotypeScore=145.95;MQ=39.96;MQ0=12;OQ=189.55;QD=1.02;SB=-28.87	GT:AD:DP:GL:GQ	0/1:68,100:81:-53.53,-31.29,-271.83:99
-chr1	808002	.	C	T	30.08	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=188;Dels=0.00;HRun=1;HaplotypeScore=147.95;MQ=39.81;MQ0=12;QD=0.16;SB=5.97	GT:AD:DP:GL:GQ	0/1:124,64:83:-31.29,-25.00,-266.30:62.91
-chr1	808027	rs3969820	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=178;Dels=0.00;HRun=0;HaplotypeScore=57.38;MQ=38.17;MQ0=19;OQ=723.18;QD=4.06;SB=-165.45	GT:AD:DP:GL:GQ	0/1:134,44:108:-108.14,-32.53,-287.08:99
-chr1	808030	.	A	G	1086.71	DPFilter;HARD_TO_VALIDATE;Indel	AC=1;AF=0.50;AN=2;DP=167;Dels=0.00;HRun=0;HaplotypeScore=42.92;MQ=38.47;MQ0=18;QD=6.51;SB=-568.31	GT:AD:DP:GL:GQ	0/1:57,109:99:-141.80,-29.84,-220.97:99
-chr1	808043	.	A	G	970.86	DPFilter;HARD_TO_VALIDATE;Indel	AC=1;AF=0.50;AN=2;DP=159;Dels=0.00;HRun=1;HaplotypeScore=39.52;MQ=39.24;MQ0=20;QD=6.11;SB=-490.82	GT:AD:DP:GL:GQ	0/1:58,101:92:-128.08,-27.71,-229.15:99
-chr1	808058	rs4068670	A	G	19.55	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DB;DP=148;Dels=0.00;HRun=0;HaplotypeScore=41.67;MQ=39.19;MQ0=26;QD=0.13;SB=-33.62	GT:AD:DP:GL:GQ	0/1:54,74:61:-37.68,-32.44,-211.21:52.34
-chr1	808064	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=133;Dels=0.00;HRun=1;HaplotypeScore=40.55;MQ=38.61;MQ0=24;OQ=246.33;QD=1.85;SB=-81.77	GT:AD:DP:GL:GQ	0/1:48,85:54:-44.19,-16.27,-162.59:99
-chr1	808071	.	C	T	20.12	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=136;Dels=0.00;HRun=0;HaplotypeScore=40.24;MQ=40.16;MQ0=22;QD=0.15;SB=14.54	GT:AD:DP:GL:GQ	0/1:54,82:58:-22.76,-17.47,-182.75:52.91
-chr1	808112	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=227;Dels=0.00;HRun=2;HaplotypeScore=125.36;MQ=37.91;MQ0=32;OQ=1776.62;QD=7.83;SB=-160.46	GT:AD:DP:GL:GQ	0/1:73,153:125:-218.60,-37.66,-274.51:99
-chr1	808131	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=257;Dels=0.00;HRun=1;HaplotypeScore=46.49;MQ=37.72;MQ0=22;OQ=2127.72;QD=8.28;SB=-282.13	GT:AD:DP:GL:GQ	0/1:106,150:146:-260.04,-43.99,-307.83:99
-chr1	808143	rs2871830	A	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DB;DP=266;Dels=0.00;HRun=0;HaplotypeScore=22.61;MQ=37.96;MQ0=21;OQ=255.61;QD=0.96;SB=23.44	GT:AD:DP:GL:GQ	0/1:214,51:151:-74.35,-45.50,-504.23:99
-chr1	808170	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=251;Dels=0.00;HRun=1;HaplotypeScore=39.92;MQ=39.75;MQ0=13;OQ=386.02;QD=1.54;SB=116.39	GT:AD:DP:GL:GQ	0/1:201,50:155:-88.58,-46.69,-468.07:99
-chr1	808187	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=220;Dels=0.00;HRun=7;HaplotypeScore=162.06;MQ=41.27;MQ0=11;OQ=363.00;QD=1.65;SB=17.72	GT:AD:DP:GL:GQ	0/1:176,44:136:-80.56,-40.98,-399.39:99
-chr1	808189	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=216;Dels=0.00;HRun=0;HaplotypeScore=288.29;MQ=41.39;MQ0=11;OQ=708.25;QD=3.28;SB=-149.01	GT:AD:DP:GL:GQ	0/1:142,53:138:-146.61,-72.50,-410.59:99
-chr1	808297	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=196;Dels=0.00;HRun=0;HaplotypeScore=21.45;MQ=38.78;MQ0=17;OQ=1228.84;QD=6.27;SB=-563.99	GT:AD:DP:GL:GQ	0/1:75,120:104:-157.52,-31.35,-213.62:99
-chr1	808336	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=282;Dels=0.00;HRun=1;HaplotypeScore=34.12;MQ=34.50;MQ0=28;OQ=414.84;QD=1.47;SB=-185.55	GT:AD:DP:GL:GQ	0/1:228,54:155:-91.47,-46.70,-585.75:99
-chr1	808347	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=278;Dels=0.00;HRun=0;HaplotypeScore=78.29;MQ=34.29;MQ0=30;OQ=600.10;QD=2.16;SB=-67.28	GT:AD:DP:GL:GQ	0/1:221,39:151:-138.41,-75.12,-545.71:99
-chr1	808349	rs61768250	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=274;Dels=0.00;HRun=0;HaplotypeScore=172.09;MQ=34.47;MQ0=30;OQ=2858.46;QD=10.43;SB=-822.44	GT:AD:DP:GL:GQ	0/1:82,190:149:-334.02,-44.89,-232.77:99
-chr1	808359	.	C	T	950.38	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=269;Dels=0.00;HRun=0;HaplotypeScore=192.43;MQ=34.52;MQ0=31;QD=3.53;SB=-243.11	GT:AD:DP:GL:GQ	0/1:178,83:148:-142.90,-44.58,-399.15:99
-chr1	808362	.	G	A	76.04	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=271;Dels=0.00;HRun=0;HaplotypeScore=113.80;MQ=34.64;MQ0=30;QD=0.28;SB=96.15	GT:AD:DP:GL:GQ	0/1:234,29:151:-56.37,-45.49,-495.71:99
-chr1	808363	.	C	A	14.91	DPFilter;HARD_TO_VALIDATE;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=279;Dels=0.00;HRun=0;HaplotypeScore=113.80;MQ=34.60;MQ0=34;QD=0.05;SB=125.29	GT:AD:DP:GL:GQ	0/1:250,29:157:-52.05,-47.29,-518.11:47.61
-chr1	808367	.	G	A	731.54	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=290;Dels=0.00;HRun=0;HaplotypeScore=120.25;MQ=34.34;MQ0=33;QD=2.52;SB=-82.29	GT:AD:DP:GL:GQ	0/1:229,61:165:-126.14,-49.70,-491.32:99
-chr1	808394	.	C	T	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=235;Dels=0.00;HRun=0;HaplotypeScore=10.16;MQ=37.74;MQ0=26;OQ=126.55;QD=0.54;SB=56.98	GT:AD:DP:GL:GQ	0/1:188,47:147:-60.25,-44.31,-434.17:99
-chr1	808413	.	T	G	317.98	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=164;Dels=0.00;HRun=2;HaplotypeScore=72.86;MQ=40.13;MQ0=20;QD=1.94;SB=-24.43	GT:AD:DP:GL:GQ	0/1:121,43:105:-66.71,-31.62,-317.98:99
-chr1	808417	.	G	A	68.93	DPFilter;HARD_TO_VALIDATE;Indel;SnpCluster	AC=1;AF=0.50;AN=2;DP=149;Dels=0.00;HRun=0;HaplotypeScore=67.03;MQ=42.13;MQ0=16;QD=0.46;SB=83.26	GT:AD:DP:GL:GQ	0/1:135,13:103:-41.21,-31.03,-340.99:99
-chr1	808421	.	G	A	1042.35	DPFilter;HARD_TO_VALIDATE;Indel;SnpCluster	AC=1;AF=0.50;AN=2;DP=135;Dels=0.00;HRun=0;HaplotypeScore=46.56;MQ=44.72;MQ0=15;QD=7.72;SB=-112.51	GT:AD:DP:GL:GQ	0/1:67,68:99:-137.34,-29.83,-234.94:99
-chr1	808447	.	G	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=111;Dels=0.00;HRun=2;HaplotypeScore=11.26;MQ=49.75;MQ0=9;OQ=392.50;QD=3.54;SB=-21.38	GT:AD:DP:GL:GQ	0/1:71,40:86:-68.46,-25.93,-223.10:99
-chr1	808451	.	A	T	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=112;Dels=0.00;HRun=1;HaplotypeScore=9.78;MQ=50.21;MQ0=9;OQ=368.72;QD=3.29;SB=-63.61	GT:AD:DP:GL:GQ	0/1:73,39:88:-66.66,-26.51,-263.45:99
-chr1	808566	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=181;Dels=0.00;HRun=0;HaplotypeScore=42.07;MQ=40.72;MQ0=9;OQ=262.25;QD=1.45;SB=83.19	GT:AD:DP:GL:GQ	0/1:73,108:86:-55.43,-25.93,-233.09:99
-chr1	808594	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=249;Dels=0.00;HRun=0;HaplotypeScore=18.85;MQ=37.64;MQ0=16;OQ=690.50;QD=2.77;SB=110.37	GT:AD:DP:GL:GQ	0/1:80,169:110:-105.47,-33.14,-280.23:99
-chr1	808641	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=283;Dels=0.00;HRun=1;HaplotypeScore=21.83;MQ=33.64;MQ0=19;OQ=2063.93;QD=7.29;SB=28.04	GT:AD:DP:GL:GQ	0/1:72,211:133:-249.73,-40.06,-265.59:99
-chr1	808664	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=245;Dels=0.00;HRun=1;HaplotypeScore=236.43;MQ=34.77;MQ0=16;OQ=159.51;QD=0.65;SB=12.22	GT:AD:DP:GL:GQ	0/1:197,22:147:-105.83,-86.60,-492.17:99
-chr1	808677	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=233;Dels=0.00;HRun=0;HaplotypeScore=83.64;MQ=35.28;MQ0=11;OQ=206.00;QD=0.88;SB=113.55	GT:AD:DP:GL:GQ	0/1:190,43:144:-67.26,-43.38,-499.53:99
-chr1	808728	.	C	A	203.60	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=112;Dels=0.00;HRun=1;HaplotypeScore=31.96;MQ=45.04;MQ0=12;QD=1.82;SB=15.39	GT:AD:DP:GL:GQ	0/1:87,25:80:-47.74,-24.10,-238.32:99
-chr1	808731	.	C	T	444.24	SnpCluster	AC=1;AF=0.50;AN=2;DP=110;Dels=0.00;HRun=0;HaplotypeScore=24.97;MQ=46.65;MQ0=11;QD=4.04;SB=-165.40	GT:AD:DP:GL:GQ	0/1:69,41:86:-73.64,-25.93,-224.50:99
-chr1	808732	.	G	A	408.16	SnpCluster	AC=1;AF=0.50;AN=2;DP=110;Dels=0.00;HRun=0;HaplotypeScore=24.97;MQ=46.65;MQ0=11;QD=3.71;SB=-130.98	GT:AD:DP:GL:GQ	0/1:69,41:85:-69.72,-25.62,-220.30:99
-chr1	808802	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=113;Dels=0.00;HRun=0;HaplotypeScore=47.94;MQ=46.85;MQ0=10;OQ=50.85;QD=0.45;SB=55.37	GT:AD:DP:GL:GQ	0/1:67,39:74:-30.66,-22.29,-262.89:83.69
-chr1	808813	.	C	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=143;Dels=0.00;HRun=0;HaplotypeScore=9.12;MQ=42.90;MQ0=8;OQ=68.22;QD=0.48;SB=65.92	GT:AD:DP:GL:GQ	0/1:121,22:85:-35.73,-25.62,-328.85:99
-chr1	808837	.	A	G	640.03	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=187;Dels=0.00;HRun=0;HaplotypeScore=190.29;MQ=37.94;MQ0=4;QD=3.42;SB=66.67	GT:AD:DP:GL:GQ	0/1:64,123:88:-93.80,-26.51,-252.52:99
-chr1	808839	.	G	A	725.93	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=188;Dels=0.01;HRun=3;HaplotypeScore=118.63;MQ=37.90;MQ0=4;QD=3.86;SB=63.76	GT:AD:DP:GL:GQ	0/1:65,112:89:-102.68,-26.81,-229.73:99
-chr1	808842	.	A	G	234.46	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=195;Dels=0.00;HRun=1;HaplotypeScore=215.12;MQ=37.45;MQ0=5;QD=1.20;SB=62.67	GT:AD:DP:GL:GQ	0/1:152,43:87:-52.93,-26.20,-300.50:99
-chr1	808844	.	C	A	211.39	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=194;Dels=0.00;HRun=1;HaplotypeScore=139.43;MQ=37.30;MQ0=5;QD=1.09;SB=62.33	GT:AD:DP:GL:GQ	0/1:151,43:87:-50.63,-26.20,-257.94:99
-chr1	808878	.	T	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=228;Dels=0.00;HRun=0;HaplotypeScore=11.87;MQ=35.54;MQ0=6;OQ=484.59;QD=2.13;SB=67.42	GT:AD:DP:GL:GQ	0/1:69,159:88:-78.25,-26.50,-268.80:99
-chr1	808900	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=211;Dels=0.00;HRun=0;HaplotypeScore=53.01;MQ=34.26;MQ0=7;OQ=319.52;QD=1.51;SB=101.36	GT:AD:DP:GL:GQ	0/1:68,143:78:-58.73,-23.49,-234.89:99
-chr1	808952	.	T	C	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=168;Dels=0.00;HRun=0;HaplotypeScore=8.99;MQ=30.36;MQ0=16;OQ=684.75;QD=4.08;SB=-303.13	GT:AD:DP:GL:GQ	0/1:69,99:91:-99.17,-27.41,-260.34:99
-chr1	808969	rs57185426	C	T	0.56	PASS	AC=1;AF=0.50;AN=2;DB;DP=167;Dels=0.00;HRun=0;HaplotypeScore=6.98;MQ=27.19;MQ0=22;OQ=1308.35;QD=7.83;SB=-543.36	GT:AD:DP:GL:GQ	0/1:64,103:97:-163.35,-29.23,-183.79:99
-chr1	809028	rs61768251	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=152;Dels=0.00;HRun=0;HaplotypeScore=24.74;MQ=37.22;MQ0=19;OQ=1197.89;QD=7.88;SB=-487.91	GT:AD:DP:GL:GQ	0/1:69,83:107:-155.31,-32.23,-252.53:99
-chr1	809058	.	T	C	0.11	PASS	AC=1;AF=0.50;AN=2;DP=102;Dels=0.00;HRun=0;HaplotypeScore=4.46;MQ=47.89;MQ0=8;OQ=300.60;QD=2.95;SB=-111.38	GT:AD:DP:GL:GQ	0/1:71,31:84:-58.65,-25.31,-262.00:99
-chr1	809087	.	A	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=145;Dels=0.00;HRun=0;HaplotypeScore=12.78;MQ=44.45;MQ0=38;OQ=174.63;QD=1.20;SB=29.35	GT:AD:DP:GL:GQ	0/1:79,66:90:-47.85,-27.11,-283.45:99
-chr1	809147	.	A	G	708.22	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=385;Dels=0.00;HRun=0;HaplotypeScore=142.43;MQ=32.08;MQ0=67;QD=1.84;SB=-338.08	GT:AD:DP:GL:GQ	0/1:273,112:167:-124.42,-50.31,-531.00:99
-chr1	809152	.	A	G	2828.87	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=380;Dels=0.00;HRun=0;HaplotypeScore=142.28;MQ=32.36;MQ0=64;QD=7.44;SB=-821.16	GT:AD:DP:GL:GQ	0/1:76,304:165:-335.87,-49.70,-295.78:99
-chr1	809155	.	G	A	906.28	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=379;Dels=0.00;HRun=1;HaplotypeScore=107.83;MQ=32.25;MQ0=64;QD=2.39;SB=-437.76	GT:AD:DP:GL:GQ	0/1:271,108:165:-143.61,-49.69,-484.11:99
-chr1	809196	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=249;Dels=0.00;HRun=2;HaplotypeScore=63.80;MQ=34.67;MQ0=22;OQ=1194.90;QD=4.80;SB=-269.68	GT:AD:DP:GL:GQ	0/1:67,182:101:-153.20,-30.42,-236.52:99
-chr1	809260	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=114;Dels=0.00;HRun=4;HaplotypeScore=0.00;MQ=41.08;MQ0=8;OQ=376.66;QD=3.30;SB=116.36	GT:AD:DP:GL:GQ	0/1:80,34:93:-68.96,-28.01,-266.36:99
-chr1	809273	.	T	C	463.34	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=121;Dels=0.00;HRun=0;HaplotypeScore=8.66;MQ=40.73;MQ0=7;QD=3.83;SB=119.42	GT:AD:DP:GL:GQ	0/1:85,36:100:-79.74,-30.12,-319.61:99
-chr1	809278	.	T	A	448.40	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=125;Dels=0.00;HRun=0;HaplotypeScore=9.66;MQ=40.70;MQ0=10;QD=3.59;SB=128.40	GT:AD:DP:GL:GQ	0/1:95,30:101:-78.54,-30.42,-301.76:99
-chr1	809279	.	C	A	472.08	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=127;Dels=0.00;HRun=0;HaplotypeScore=9.66;MQ=40.57;MQ0=10;QD=3.72;SB=128.43	GT:AD:DP:GL:GQ	0/1:97,30:103:-81.51,-31.02,-300.46:99
-chr1	809374	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=126;Dels=0.00;HRun=0;HaplotypeScore=40.85;MQ=49.25;MQ0=14;OQ=274.74;QD=2.18;SB=128.46	GT:AD:DP:GL:GQ	0/1:85,41:95:-59.38,-28.62,-356.10:99
-chr1	809396	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=153;Dels=0.03;HRun=0;HaplotypeScore=81.33;MQ=46.63;MQ0=11;OQ=370.18;QD=2.42;SB=128.42	GT:AD:DP:GL:GQ	0/1:90,59:107:-71.93,-31.63,-311.43:99
-chr1	809418	.	A	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=208;Dels=0.00;HRun=0;HaplotypeScore=18.59;MQ=42.45;MQ0=17;OQ=1574.87;QD=7.57;SB=-383.90	GT:AD:DP:GL:GQ	0/1:84,123:141:-203.25,-42.48,-331.17:99
-chr1	809463	.	T	C	270.15	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=218;Dels=0.00;HRun=0;HaplotypeScore=113.69;MQ=41.23;MQ0=17;QD=1.24;SB=22.33	GT:AD:DP:GL:GQ	0/1:180,37:141:-72.78,-42.48,-486.18:99
-chr1	809466	.	G	A	91.66	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=213;Dels=0.00;HRun=2;HaplotypeScore=122.84;MQ=41.24;MQ0=16;QD=0.43;SB=110.32	GT:AD:DP:GL:GQ	0/1:181,32:144:-55.83,-43.38,-458.71:99
-chr1	809470	.	T	C	630.75	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=208;Dels=0.00;HRun=2;HaplotypeScore=238.78;MQ=41.40;MQ0=14;QD=3.03;SB=-114.41	GT:AD:DP:GL:GQ	0/1:153,55:135:-107.03,-40.67,-427.65:99
-chr1	809480	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=183;Dels=0.00;HRun=0;HaplotypeScore=103.82;MQ=41.73;MQ0=11;OQ=1974.03;QD=10.79;SB=-338.07	GT:AD:DP:GL:GQ	0/1:66,116:122:-237.45,-36.76,-206.62:99
-chr1	809721	.	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=94;Dels=0.00;HRun=3;HaplotypeScore=9.02;MQ=53.95;MQ0=4;OQ=80.85;QD=0.86;SB=59.35	GT:AD:DP:GL:GQ	0/1:75,18:84:-36.67,-25.30,-283.82:99
-chr1	809780	rs6605057	A	G	0.76	PASS	AC=2;AF=1.00;AN=2;DB;DP=93;Dels=0.00;HRun=0;HaplotypeScore=11.81;MQ=56.13;MQ0=2;OQ=3054.85;QD=32.85;SB=-1362.55	GT:AD:DP:GL:GQ	1/1:0,93:85:-309.09,-25.60,-0.02:99
-chr1	809879	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=195;Dels=0.00;HRun=0;HaplotypeScore=59.97;MQ=40.35;MQ0=14;OQ=622.51;QD=3.19;SB=42.71	GT:AD:DP:GL:GQ	0/1:76,119:98:-95.05,-29.52,-272.29:99
-chr1	809895	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=204;Dels=0.00;HRun=1;HaplotypeScore=66.59;MQ=38.60;MQ0=19;OQ=465.46;QD=2.28;SB=92.30	GT:AD:DP:GL:GQ	0/1:110,94:92:-77.54,-27.71,-254.54:99
-chr1	809906	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=201;Dels=0.00;HRun=0;HaplotypeScore=107.86;MQ=38.19;MQ0=19;OQ=204.28;QD=1.02;SB=98.35	GT:AD:DP:GL:GQ	0/1:163,38:93:-51.72,-28.01,-294.59:99
-chr1	810152	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=142;Dels=0.00;HRun=0;HaplotypeScore=23.45;MQ=46.60;MQ0=18;OQ=256.17;QD=1.80;SB=89.22	GT:AD:DP:GL:GQ	0/1:80,62:93:-56.93,-28.03,-260.32:99
-chr1	810179	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=166;Dels=0.00;HRun=0;HaplotypeScore=40.97;MQ=43.29;MQ0=18;OQ=423.48;QD=2.55;SB=-10.82	GT:AD:DP:GL:GQ	0/1:90,76:99:-75.44,-29.81,-289.52:99
-chr1	810200	.	T	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=157;Dels=0.00;HRun=0;HaplotypeScore=91.89;MQ=44.44;MQ0=8;OQ=93.53;QD=0.60;SB=79.37	GT:AD:DP:GL:GQ	0/1:113,44:97:-41.85,-29.21,-309.84:99
-chr1	810211	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=164;Dels=0.00;HRun=3;HaplotypeScore=28.81;MQ=44.83;MQ0=8;OQ=438.48;QD=2.67;SB=-23.86	GT:AD:DP:GL:GQ	0/1:92,72:104:-78.46,-31.33,-303.09:99
-chr1	810249	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=162;Dels=0.00;HRun=0;HaplotypeScore=54.95;MQ=45.56;MQ0=5;OQ=532.92;QD=3.29;SB=-263.19	GT:AD:DP:GL:GQ	0/1:92,70:108:-89.11,-32.53,-336.39:99
-chr1	810266	.	A	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=139;Dels=0.00;HRun=0;HaplotypeScore=6.95;MQ=49.31;MQ0=7;OQ=320.58;QD=2.31;SB=3.34	GT:AD:DP:GL:GQ	0/1:87,51:105:-66.97,-31.63,-352.01:99
-chr1	810282	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=142;Dels=0.00;HRun=2;HaplotypeScore=2.11;MQ=50.38;MQ0=7;OQ=214.82;QD=1.51;SB=75.99	GT:AD:DP:GL:GQ	0/1:98,44:111:-58.20,-33.43,-338.53:99
-chr1	810326	.	T	C	0.03	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=111;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=51.92;MQ0=10;OQ=89.69;QD=0.81;SB=59.40	GT:AD:DP:GL:GQ	0/1:87,24:95:-40.87,-28.62,-338.92:99
-chr1	810564	.	A	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=172;Dels=0.00;HRun=0;HaplotypeScore=14.88;MQ=44.23;MQ0=6;OQ=498.14;QD=2.90;SB=-150.99	GT:AD:DP:GL:GQ	0/1:102,70:118:-88.65,-35.55,-364.99:99
-chr1	810629	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=111;Dels=0.00;HRun=0;HaplotypeScore=38.71;MQ=50.61;MQ0=2;OQ=253.97;QD=2.29;SB=-143.03	GT:AD:DP:GL:GQ	0/1:83,27:94:-56.99,-28.31,-290.69:99
-chr1	810683	.	T	C	21.46	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=130;Dels=0.00;HRun=0;HaplotypeScore=2.00;MQ=45.49;MQ0=13;QD=0.17;SB=104.38	GT:AD:DP:GL:GQ	0/1:80,50:88:-31.93,-26.50,-325.33:54.27
-chr1	810696	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=154;Dels=0.00;HRun=0;HaplotypeScore=34.97;MQ=44.00;MQ0=14;OQ=294.30;QD=1.91;SB=110.32	GT:AD:DP:GL:GQ	0/1:85,69:98:-62.23,-29.52,-298.08:99
-chr1	810711	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=186;Dels=0.00;HRun=0;HaplotypeScore=44.23;MQ=40.46;MQ0=17;OQ=839.07;QD=4.51;SB=107.39	GT:AD:DP:GL:GQ	0/1:81,105:106:-119.13,-31.94,-347.53:99
-chr1	810733	.	C	A	43.01	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=225;Dels=0.00;HRun=1;HaplotypeScore=56.61;MQ=40.22;MQ0=16;QD=0.19;SB=125.38	GT:AD:DP:GL:GQ	0/1:192,33:131:-47.04,-39.45,-426.81:75.84
-chr1	810794	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=186;Dels=0.00;HRun=3;HaplotypeScore=52.64;MQ=44.21;MQ0=2;OQ=1066.68;QD=5.73;SB=31.06	GT:AD:DP:GL:GQ	0/1:92,94:128:-148.50,-38.55,-332.75:99
-chr1	810798	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=183;Dels=0.00;HRun=0;HaplotypeScore=60.51;MQ=44.84;MQ0=1;OQ=1224.15;QD=6.69;SB=34.50	GT:AD:DP:GL:GQ	0/1:93,90:127:-163.96,-38.27,-393.95:99
-chr1	810830	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=175;Dels=0.00;HRun=3;HaplotypeScore=77.56;MQ=44.23;MQ0=2;OQ=74.26;QD=0.42;SB=98.47	GT:AD:DP:GL:GQ	0/1:145,25:125:-59.06,-48.35,-399.04:99
-chr1	810842	.	C	G	7.71	PASS	AC=1;AF=0.50;AN=2;DP=180;Dels=0.00;HRun=1;HaplotypeScore=2.42;MQ=44.02;MQ0=3;OQ=1687.26;QD=9.37;SB=-373.48	GT:AD:DP:GL:GQ	0/1:84,96:131:-211.48,-39.47,-372.20:99
-chr1	810901	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=142;Dels=0.00;HRun=0;HaplotypeScore=76.75;MQ=45.85;MQ0=4;OQ=1193.00;QD=8.40;SB=-508.15	GT:AD:DP:GL:GQ	0/1:72,70:110:-155.72,-33.14,-263.20:99
-chr1	810906	.	T	C	38.41	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=133;Dels=0.00;HRun=0;HaplotypeScore=84.75;MQ=46.22;MQ0=3;QD=0.29;SB=-42.29	GT:AD:DP:GL:GQ	0/1:104,29:99:-36.95,-29.82,-359.79:71.24
-chr1	810914	rs2871831	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=126;Dels=0.00;HRun=0;HaplotypeScore=29.97;MQ=47.06;MQ0=6;OQ=781.68;QD=6.20;SB=-314.19	GT:AD:DP:GL:GQ	0/1:70,55:96:-110.36,-28.91,-259.38:99
-chr1	810923	.	A	T	0.10	PASS	AC=1;AF=0.50;AN=2;DP=127;Dels=0.00;HRun=1;HaplotypeScore=7.81;MQ=46.94;MQ0=8;OQ=838.41;QD=6.60;SB=-348.34	GT:AD:DP:GL:GQ	0/1:70,57:101:-117.55,-30.42,-266.19:99
-chr1	810974	rs61768253	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=159;Dels=0.00;HRun=0;HaplotypeScore=90.96;MQ=39.12;MQ0=31;OQ=376.97;QD=2.37;SB=-131.06	GT:AD:DP:GL:GQ	0/1:90,68:97:-70.20,-29.22,-313.33:99
-chr1	810984	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=207;Dels=0.00;HRun=2;HaplotypeScore=97.32;MQ=34.90;MQ0=35;OQ=108.00;QD=0.52;SB=94.23	GT:AD:DP:GL:GQ	0/1:166,41:109:-46.91,-32.83,-360.50:99
-chr1	810998	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=239;Dels=0.00;HRun=0;HaplotypeScore=73.35;MQ=33.36;MQ0=43;OQ=73.40;QD=0.31;SB=-50.06	GT:AD:DP:GL:GQ	0/1:185,54:123:-47.67,-37.04,-404.38:99
-chr1	811006	rs61768254	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=248;Dels=0.00;HRun=1;HaplotypeScore=66.91;MQ=33.49;MQ0=48;OQ=832.91;QD=3.36;SB=-277.39	GT:AD:DP:GL:GQ	0/1:106,142:128:-125.13,-38.56,-331.35:99
-chr1	811069	rs35186927	T	A	0.05	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DB;DP=481;Dels=0.00;HRun=1;HaplotypeScore=3.93;MQ=31.63;MQ0=35;OQ=1139.00;QD=2.37;SB=-237.78	GT:AD:DP:GL:GQ	0/1:346,135:257:-194.59,-77.40,-784.30:99
-chr1	811112	rs2311684	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=350;Dels=0.00;HRun=0;HaplotypeScore=77.41;MQ=35.82;MQ0=8;OQ=2362.85;QD=6.75;SB=-654.92	GT:AD:DP:GL:GQ	0/1:216,134:219:-305.59,-66.02,-466.00:99
-chr1	811131	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=248;Dels=0.00;HRun=0;HaplotypeScore=87.33;MQ=41.16;MQ0=2;OQ=4074.75;QD=16.43;SB=-1430.41	GT:AD:DP:GL:GQ	0/1:100,147:200:-406.47,-62.90,-355.42:99
-chr1	811184	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=123;Dels=0.00;HRun=2;HaplotypeScore=27.77;MQ=43.71;MQ0=0;OQ=460.52;QD=3.74;SB=149.45	GT:AD:DP:GL:GQ	0/1:91,32:108:-81.87,-32.53,-317.70:99
-chr1	811205	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=115;Dels=0.00;HRun=2;HaplotypeScore=18.01;MQ=44.82;MQ0=0;OQ=329.41;QD=2.86;SB=146.50	GT:AD:DP:GL:GQ	0/1:87,28:104:-67.56,-31.33,-345.48:99
-chr1	811285	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=150;Dels=0.00;HRun=0;HaplotypeScore=37.25;MQ=40.88;MQ0=3;OQ=828.79;QD=5.53;SB=-15.76	GT:AD:DP:GL:GQ	0/1:66,84:93:-114.20,-28.04,-207.99:99
-chr1	811292	.	G	C	33.11	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=155;Dels=0.00;HRun=1;HaplotypeScore=58.15;MQ=39.23;MQ0=3;QD=0.21;SB=95.35	GT:AD:DP:GL:GQ	0/1:79,14:72:-31.92,-25.33,-286.41:65.95
-chr1	811309	.	A	C	218.07	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=180;Dels=0.00;HRun=0;HaplotypeScore=95.42;MQ=36.77;MQ0=3;QD=1.21;SB=75.78	GT:AD:DP:GL:GQ	0/1:95,84:77:-48.28,-23.19,-225.41:99
-chr1	811313	.	C	A	77.35	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=190;Dels=0.00;HRun=1;HaplotypeScore=126.41;MQ=36.87;MQ0=1;QD=0.41;SB=64.94	GT:AD:DP:GL:GQ	0/1:128,61:85:-36.63,-25.61,-260.99:99
-chr1	811315	.	G	A	900.17	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=189;Dels=0.00;HRun=1;HaplotypeScore=96.44;MQ=36.96;MQ0=1;QD=4.76;SB=64.69	GT:AD:DP:GL:GQ	0/1:57,131:88:-122.19,-28.89,-207.10:99
-chr1	811336	.	T	C	533.21	DPFilter;Indel	AC=1;AF=0.50;AN=2;DP=203;Dels=0.00;HRun=0;HaplotypeScore=1.85;MQ=37.36;MQ0=1;QD=2.63;SB=59.62	GT:AD:DP:GL:GQ	0/1:62,140:81:-81.01,-24.41,-227.12:99
-chr1	811339	.	T	C	458.52	DPFilter;Indel	AC=1;AF=0.50;AN=2;DP=200;Dels=0.00;HRun=1;HaplotypeScore=44.80;MQ=38.07;MQ0=1;QD=2.29;SB=92.33	GT:AD:DP:GL:GQ	0/1:65,135:85:-74.74,-25.60,-261.77:99
-chr1	811347	.	T	G	278.98	DPFilter;Indel	AC=1;AF=0.50;AN=2;DP=226;Dels=0.00;HRun=3;HaplotypeScore=134.53;MQ=37.01;MQ0=0;QD=1.23;SB=83.27	GT:AD:DP:GL:GQ	0/1:65,161:80:-55.28,-24.10,-233.47:99
-chr1	811354	.	C	T	677.91	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=233;Dels=0.00;HRun=0;HaplotypeScore=163.01;MQ=36.31;MQ0=0;QD=2.91;SB=83.23	GT:AD:DP:GL:GQ	0/1:63,170:82:-95.80,-24.72,-187.92:99
-chr1	811362	.	C	T	454.65	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=231;Dels=0.00;HRun=0;HaplotypeScore=226.76;MQ=36.80;MQ0=0;QD=1.97;SB=83.14	GT:AD:DP:GL:GQ	0/1:64,167:80:-72.88,-24.13,-190.51:99
-chr1	811364	.	T	C	196.31	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=230;Dels=0.00;HRun=1;HaplotypeScore=66.22;MQ=36.51;MQ0=0;QD=0.85;SB=79.92	GT:AD:DP:GL:GQ	0/1:84,145:75:-47.99,-25.07,-244.42:99
-chr1	811375	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=231;Dels=0.00;HRun=0;HaplotypeScore=93.49;MQ=37.41;MQ0=0;OQ=1696.08;QD=7.34;SB=71.11	GT:AD:DP:GL:GQ	0/1:93,137:119:-208.77,-35.88,-209.62:99
-chr1	811378	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=239;Dels=0.00;HRun=1;HaplotypeScore=193.97;MQ=37.86;MQ0=0;OQ=1149.75;QD=4.81;SB=77.23	GT:AD:DP:GL:GQ	0/1:188,51:123:-155.31,-37.05,-314.47:99
-chr1	811386	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=227;Dels=0.00;HRun=2;HaplotypeScore=163.58;MQ=38.25;MQ0=0;OQ=516.99;QD=2.28;SB=29.28	GT:AD:DP:GL:GQ	0/1:149,78:121:-91.43,-36.45,-384.88:99
-chr1	811400	.	C	T	562.85	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=209;Dels=0.00;HRun=0;HaplotypeScore=151.19;MQ=39.64;MQ0=0;QD=2.69;SB=23.60	GT:AD:DP:GL:GQ	0/1:96,113:102:-90.30,-30.73,-291.44:99
-chr1	811402	.	C	T	93.97	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=206;Dels=0.00;HRun=1;HaplotypeScore=101.45;MQ=39.46;MQ0=1;QD=0.46;SB=62.16	GT:AD:DP:GL:GQ	0/1:188,18:99:-42.50,-29.82,-326.30:99
-chr1	811408	.	G	T	250.46	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=192;Dels=0.00;HRun=0;HaplotypeScore=79.23;MQ=40.75;MQ0=2;QD=1.30;SB=59.20	GT:AD:DP:GL:GQ	0/1:111,80:98:-57.85,-29.52,-298.59:99
-chr1	811413	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=188;Dels=0.00;HRun=0;HaplotypeScore=67.52;MQ=40.58;MQ0=2;OQ=77.44;QD=0.41;SB=62.19	GT:AD:DP:GL:GQ	0/1:97,91:86:-36.94,-25.92,-277.54:99
-chr1	811430	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=164;Dels=0.00;HRun=4;HaplotypeScore=58.87;MQ=40.65;MQ0=2;OQ=63.77;QD=0.39;SB=65.24	GT:AD:DP:GL:GQ	0/1:88,76:92:-37.38,-27.72,-324.79:96.61
-chr1	811435	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=155;Dels=0.00;HRun=1;HaplotypeScore=19.26;MQ=40.95;MQ0=1;OQ=266.78;QD=1.72;SB=71.27	GT:AD:DP:GL:GQ	0/1:84,71:100:-60.08,-30.12,-340.43:99
-chr1	811443	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=136;Dels=0.00;HRun=2;HaplotypeScore=30.32;MQ=41.18;MQ0=1;OQ=189.19;QD=1.39;SB=77.28	GT:AD:DP:GL:GQ	0/1:79,56:91:-52.39,-30.19,-304.45:99
-chr1	811635	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=145;Dels=0.00;HRun=0;HaplotypeScore=82.21;MQ=40.79;MQ0=16;OQ=141.45;QD=0.98;SB=-89.35	GT:AD:DP:GL:GQ	0/1:111,34:74:-39.73,-22.30,-281.80:99
-chr1	811650	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=136;Dels=0.00;HRun=0;HaplotypeScore=95.82;MQ=42.47;MQ0=12;OQ=224.58;QD=1.65;SB=-61.36	GT:AD:DP:GL:GQ	0/1:66,70:76:-48.64,-22.89,-228.84:99
-chr1	811656	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=129;Dels=0.00;HRun=0;HaplotypeScore=71.17;MQ=43.15;MQ0=11;OQ=112.09;QD=0.87;SB=-75.98	GT:AD:DP:GL:GQ	0/1:102,27:76:-37.39,-22.90,-238.94:99
-chr1	811750	rs6677354	A	G	0.61	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=3;HaplotypeScore=4.05;MQ=50.03;MQ0=0;OQ=1811.37;QD=31.78;SB=-810.16	GT:AD:DP:GL:GQ	1/1:0,56:52:-184.74,-15.66,-0.02:99
-chr1	811789	rs35660652	C	G	23.26	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=2;HaplotypeScore=4.89;MQ=49.27;MQ0=1;OQ=933.21;QD=16.97;SB=-483.19	GT:AD:DP:GL:GQ	0/1:25,30:48:-111.08,-14.47,-94.44:99
-chr1	811811	rs6671445	T	C	60.28	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=0.63;MQ=51.17;MQ0=1;OQ=1096.50;QD=26.11;SB=-519.10	GT:AD:DP:GL:GQ	1/1:0,42:35:-113.27,-10.56,-0.03:99
-chr1	811899	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=123;Dels=0.00;HRun=0;HaplotypeScore=32.15;MQ=43.49;MQ0=20;OQ=124.06;QD=1.01;SB=92.32	GT:AD:DP:GL:GQ	0/1:62,60:72:-37.38,-21.69,-248.07:99
-chr1	812359	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=86;Dels=0.00;HRun=1;HaplotypeScore=23.61;MQ=48.84;MQ0=1;OQ=66.32;QD=0.77;SB=71.21	GT:AD:DP:GL:GQ	0/1:52,34:57:-27.09,-17.17,-171.46:99
-chr1	812367	.	T	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=103;Dels=0.00;HRun=0;HaplotypeScore=15.11;MQ=47.39;MQ0=1;OQ=182.54;QD=1.77;SB=-16.56	GT:AD:DP:GL:GQ	0/1:55,46:66:-41.42,-19.89,-213.25:99
-chr1	812395	.	T	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=147;Dels=0.00;HRun=0;HaplotypeScore=16.89;MQ=44.59;MQ0=4;OQ=290.02;QD=1.97;SB=-35.46	GT:AD:DP:GL:GQ	0/1:75,71:87:-58.50,-26.21,-278.39:99
-chr1	812396	.	G	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=150;Dels=0.00;HRun=0;HaplotypeScore=12.57;MQ=44.24;MQ0=4;OQ=510.01;QD=3.40;SB=-121.97	GT:AD:DP:GL:GQ	0/1:77,73:89:-81.09,-26.81,-250.00:99
-chr1	812452	.	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=237;Dels=0.00;HRun=1;HaplotypeScore=44.19;MQ=38.30;MQ0=6;OQ=174.18;QD=0.73;SB=140.46	GT:AD:DP:GL:GQ	0/1:178,59:128:-59.25,-38.55,-429.97:99
-chr1	812470	.	G	A	3027.24	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=266;Dels=0.00;HRun=2;HaplotypeScore=95.67;MQ=37.00;MQ0=5;QD=11.38;SB=-136.01	GT:AD:DP:GL:GQ	0/1:72,177:161:-375.45,-69.45,-279.59:99
-chr1	812474	.	A	G	225.39	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=282;Dels=0.00;HRun=0;HaplotypeScore=98.08;MQ=36.45;MQ0=4;QD=0.80;SB=107.36	GT:AD:DP:GL:GQ	0/1:225,57:173:-77.95,-52.13,-605.26:99
-chr1	812476	.	G	A	4194.86	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=280;Dels=0.00;HRun=1;HaplotypeScore=148.97;MQ=36.56;MQ0=4;QD=14.98;SB=-125.96	GT:AD:DP:GL:GQ	0/1:71,208:172:-418.49,-51.81,-254.37:99
-chr1	812496	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=383;Dels=0.00;HRun=3;HaplotypeScore=110.05;MQ=34.24;MQ0=3;OQ=4072.28;QD=10.63;SB=-60.38	GT:AD:DP:GL:GQ	0/1:191,192:229:-406.23,-68.97,-420.64:99
-chr1	812509	.	A	G	1306.01	DPFilter;Indel	AC=1;AF=0.50;AN=2;DP=390;Dels=0.00;HRun=0;HaplotypeScore=338.39;MQ=34.90;MQ0=4;QD=3.35;SB=113.39	GT:AD:DP:GL:GQ	0/1:88,302:134:-174.25,-40.36,-354.14:99
-chr1	812511	.	C	T	253.04	DPFilter;Indel	AC=1;AF=0.50;AN=2;DP=392;Dels=0.00;HRun=1;HaplotypeScore=342.27;MQ=34.93;MQ0=3;QD=0.65;SB=107.37	GT:AD:DP:GL:GQ	0/1:210,181:105:-60.21,-31.62,-326.58:99
-chr1	812536	.	C	T	6216.93	DPFilter;Indel	AC=1;AF=0.50;AN=2;DP=431;Dels=0.00;HRun=0;HaplotypeScore=21.13;MQ=33.82;MQ0=5;QD=14.42;SB=89.30	GT:AD:DP:GL:GQ	0/1:86,345:239:-620.69,-71.99,-300.06:99
-chr1	812546	.	A	T	6301.61	DPFilter;Indel	AC=1;AF=0.50;AN=2;DP=411;Dels=0.00;HRun=5;HaplotypeScore=527.01;MQ=34.23;MQ0=5;QD=15.33;SB=95.32	GT:AD:DP:GL:GQ	0/1:107,219:261:-629.16,-251.98,-546.86:99
-chr1	812557	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=384;Dels=0.00;HRun=0;HaplotypeScore=98.60;MQ=34.24;MQ0=5;OQ=4742.49;QD=12.35;SB=92.31	GT:AD:DP:GL:GQ	0/1:201,182:235:-473.25,-70.78,-414.34:99
-chr1	812581	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=273;Dels=0.00;HRun=0;HaplotypeScore=142.64;MQ=35.76;MQ0=4;OQ=1205.24;QD=4.41;SB=74.26	GT:AD:DP:GL:GQ	0/1:167,71:149:-175.85,-52.04,-375.17:99
-chr1	812582	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=267;Dels=0.00;HRun=0;HaplotypeScore=141.33;MQ=35.99;MQ0=4;OQ=1716.18;QD=6.43;SB=71.26	GT:AD:DP:GL:GQ	0/1:103,164:146:-218.89,-43.99,-346.52:99
-chr1	812608	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=165;Dels=0.00;HRun=1;HaplotypeScore=67.91;MQ=41.17;MQ0=4;OQ=693.18;QD=4.20;SB=50.19	GT:AD:DP:GL:GQ	0/1:102,63:97:-101.82,-29.21,-294.33:99
-chr1	812623	.	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=103;Dels=0.00;HRun=0;HaplotypeScore=28.33;MQ=46.60;MQ0=1;OQ=165.38;QD=1.61;SB=41.15	GT:AD:DP:GL:GQ	0/1:59,44:68:-40.30,-20.48,-216.18:99
-chr1	812625	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=106;Dels=0.00;HRun=1;HaplotypeScore=28.33;MQ=46.70;MQ0=1;OQ=134.52;QD=1.27;SB=44.17	GT:AD:DP:GL:GQ	0/1:60,46:69:-37.52,-20.78,-218.11:99
-chr1	812637	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=115;Dels=0.00;HRun=0;HaplotypeScore=37.48;MQ=47.73;MQ0=2;OQ=214.50;QD=1.87;SB=-61.85	GT:AD:DP:GL:GQ	0/1:67,48:77:-47.94,-23.20,-220.91:99
-chr1	812655	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=121;Dels=0.00;HRun=0;HaplotypeScore=33.89;MQ=47.71;MQ0=3;OQ=405.95;QD=3.35;SB=-136.06	GT:AD:DP:GL:GQ	0/1:68,53:87:-70.08,-26.20,-247.74:99
-chr1	812661	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=124;Dels=0.00;HRun=2;HaplotypeScore=21.84;MQ=47.58;MQ0=5;OQ=365.64;QD=2.95;SB=-168.82	GT:AD:DP:GL:GQ	0/1:87,37:88:-66.35,-26.51,-263.64:99
-chr1	812666	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=123;Dels=0.00;HRun=0;HaplotypeScore=21.15;MQ=47.18;MQ0=5;OQ=451.13;QD=3.67;SB=-190.13	GT:AD:DP:GL:GQ	0/1:65,57:86:-74.30,-25.91,-260.71:99
-chr1	812725	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=137;Dels=0.00;HRun=2;HaplotypeScore=17.99;MQ=47.07;MQ0=7;OQ=51.25;QD=0.37;SB=36.23	GT:AD:DP:GL:GQ	0/1:99,33:95:-37.06,-28.65,-279.36:84.09
-chr1	812740	.	T	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=127;Dels=0.00;HRun=2;HaplotypeScore=10.99;MQ=47.57;MQ0=4;OQ=391.52;QD=3.08;SB=-178.55	GT:AD:DP:GL:GQ	0/1:69,58:85:-68.04,-25.60,-259.04:99
-chr1	812742	.	A	T	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=138;Dels=0.00;HRun=1;HaplotypeScore=11.99;MQ=46.41;MQ0=4;OQ=355.87;QD=2.58;SB=-160.38	GT:AD:DP:GL:GQ	0/1:72,66:89:-65.67,-26.80,-277.85:99
-chr1	812772	.	C	A	4524.81	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=340;Dels=0.00;HRun=1;HaplotypeScore=205.36;MQ=35.68;MQ0=5;QD=13.31;SB=-1151.01	GT:AD:DP:GL:GQ	0/1:83,257:202:-451.48,-60.83,-296.00:99
-chr1	812774	.	G	A	5465.17	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=359;Dels=0.00;HRun=1;HaplotypeScore=230.04;MQ=35.29;MQ0=5;QD=15.22;SB=-1392.69	GT:AD:DP:GL:GQ	0/1:83,276:217:-545.52,-65.36,-295.35:99
-chr1	812778	.	A	C	2967.60	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=395;Dels=0.00;HRun=0;HaplotypeScore=217.58;MQ=34.63;MQ0=8;QD=7.51;SB=-725.51	GT:AD:DP:GL:GQ	0/1:219,176:242:-372.92,-72.88,-512.65:99
-chr1	812823	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=734;Dels=0.00;HRun=0;HaplotypeScore=134.36;MQ=30.02;MQ0=41;OQ=617.75;QD=0.84;SB=-157.33	GT:AD:DP:GL:GQ	0/1:653,81:442:-198.19,-133.13,-1425.62:99
-chr1	812838	rs657923	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=716;Dels=0.00;HRun=1;HaplotypeScore=212.74;MQ=29.97;MQ0=41;OQ=1388.92;QD=1.94;SB=-7.94	GT:AD:DP:GL:GQ	0/1:599,117:439:-274.39,-132.21,-1407.52:99
-chr1	812875	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=465;Dels=0.00;HRun=0;HaplotypeScore=110.91;MQ=32.05;MQ0=37;OQ=83.36;QD=0.18;SB=55.37	GT:AD:DP:GL:GQ	0/1:398,67:296:-100.77,-89.15,-980.63:99
-chr1	812885	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=346;Dels=0.00;HRun=1;HaplotypeScore=111.42;MQ=33.27;MQ0=30;OQ=5208.47;QD=15.05;SB=-2233.36	GT:AD:DP:GL:GQ	0/1:69,277:208:-519.85,-62.65,-238.95:99
-chr1	812886	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=335;Dels=0.00;HRun=1;HaplotypeScore=55.46;MQ=33.49;MQ0=30;OQ=451.06;QD=1.35;SB=-154.07	GT:AD:DP:GL:GQ	0/1:302,33:200:-108.62,-60.23,-633.51:99
-chr1	812900	.	G	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=183;Dels=0.00;HRun=0;HaplotypeScore=14.94;MQ=39.79;MQ0=13;OQ=813.81;QD=4.45;SB=92.87	GT:AD:DP:GL:GQ	0/1:73,110:100:-114.78,-30.12,-260.13:99
-chr1	812923	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=104;Dels=0.00;HRun=1;HaplotypeScore=27.88;MQ=50.22;MQ0=2;OQ=306.33;QD=2.95;SB=-30.81	GT:AD:DP:GL:GQ	0/1:70,34:81:-58.31,-24.40,-238.03:99
-chr1	812935	.	G	A	2.07	PASS	AC=1;AF=0.50;AN=2;DP=134;Dels=0.00;HRun=0;HaplotypeScore=2.66;MQ=47.53;MQ0=2;OQ=744.11;QD=5.55;SB=-223.02	GT:AD:DP:GL:GQ	0/1:69,65:96:-106.61,-28.92,-247.13:99
-chr1	812951	.	G	T	11.25	PASS	AC=1;AF=0.50;AN=2;DP=155;Dels=0.00;HRun=1;HaplotypeScore=0.67;MQ=43.90;MQ0=5;OQ=1351.36;QD=8.72;SB=-400.31	GT:AD:DP:GL:GQ	0/1:63,92:108:-170.95,-32.53,-225.30:99
-chr1	812975	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=199;Dels=0.00;HRun=0;HaplotypeScore=28.65;MQ=40.87;MQ0=15;OQ=1862.55;QD=9.36;SB=-484.23	GT:AD:DP:GL:GQ	0/1:66,132:123:-230.20,-40.66,-212.95:99
-chr1	812981	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=203;Dels=0.00;HRun=1;HaplotypeScore=40.75;MQ=39.82;MQ0=15;OQ=1797.82;QD=8.86;SB=-460.63	GT:AD:DP:GL:GQ	0/1:63,140:120:-219.20,-36.14,-217.08:99
-chr1	812999	.	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=293;Dels=0.00;HRun=3;HaplotypeScore=112.34;MQ=35.70;MQ0=17;OQ=746.50;QD=2.55;SB=103.46	GT:AD:DP:GL:GQ	0/1:201,92:175:-130.64,-52.71,-522.15:99
-chr1	813018	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=409;Dels=0.00;HRun=4;HaplotypeScore=24.00;MQ=34.51;MQ0=18;OQ=2503.76;QD=6.12;SB=-85.25	GT:AD:DP:GL:GQ	0/1:266,142:285:-339.49,-85.83,-765.92:99
-chr1	813030	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=463;Dels=0.00;HRun=0;HaplotypeScore=48.87;MQ=34.17;MQ0=19;OQ=2316.95;QD=5.00;SB=-56.40	GT:AD:DP:GL:GQ	0/1:312,151:338:-336.77,-101.79,-911.65:99
-chr1	813038	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=491;Dels=0.00;HRun=0;HaplotypeScore=299.82;MQ=33.86;MQ0=19;OQ=574.58;QD=1.17;SB=49.00	GT:AD:DP:GL:GQ	0/1:442,49:363:-170.06,-109.32,-1157.10:99
-chr1	813041	.	T	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=493;Dels=0.00;HRun=0;HaplotypeScore=391.76;MQ=34.08;MQ0=19;OQ=10262.92;QD=20.82;SB=-1216.69	GT:AD:DP:GL:GQ	0/1:84,408:369:-1025.29,-114.38,-315.19:99
-chr1	813055	.	T	G	5105.47	DPFilter;Indel	AC=1;AF=0.50;AN=2;DP=534;Dels=0.00;HRun=1;HaplotypeScore=573.54;MQ=33.39;MQ0=15;QD=9.56;SB=-804.21	GT:AD:DP:GL:GQ	0/1:355,179:410:-509.55,-123.48,-999.47:99
-chr1	813070	.	G	T	1334.14	DPFilter;Indel;SnpCluster	AC=1;AF=0.50;AN=2;DP=573;Dels=0.00;HRun=1;HaplotypeScore=588.05;MQ=33.10;MQ0=9;QD=2.33;SB=-193.13	GT:AD:DP:GL:GQ	0/1:472,101:440:-269.21,-132.51,-1306.87:99
-chr1	813073	.	C	G	2805.72	DPFilter;Indel;SnpCluster	AC=1;AF=0.50;AN=2;DP=592;Dels=0.00;HRun=1;HaplotypeScore=532.94;MQ=33.08;MQ0=8;QD=4.74;SB=-566.71	GT:AD:DP:GL:GQ	0/1:469,123:455:-420.94,-137.09,-1553.33:99
-chr1	813077	.	G	A	139.61	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=606;Dels=0.00;HRun=1;HaplotypeScore=787.16;MQ=33.34;MQ0=7;QD=0.23;SB=20.29	GT:AD:DP:GL:GQ	0/1:564,42:462:-156.39,-139.14,-1597.16:99
-chr1	813078	.	C	G	7856.82	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=607;Dels=0.00;HRun=1;HaplotypeScore=894.22;MQ=33.34;MQ0=7;QD=12.94;SB=-567.18	GT:AD:DP:GL:GQ	0/1:367,165:476:-784.68,-363.52,-1514.16:99
-chr1	813086	.	C	G	6412.49	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=625;Dels=0.00;HRun=0;HaplotypeScore=667.82;MQ=33.46;MQ0=7;QD=10.26;SB=-767.41	GT:AD:DP:GL:GQ	0/1:438,186:509:-640.25,-153.35,-1590.01:99
-chr1	813088	.	G	A	7116.40	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=627;Dels=0.00;HRun=1;HaplotypeScore=625.87;MQ=33.36;MQ0=7;QD=11.35;SB=-863.76	GT:AD:DP:GL:GQ	0/1:405,186:507:-710.64,-256.24,-1344.66:99
-chr1	813094	.	C	T	2968.23	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=620;Dels=0.00;HRun=0;HaplotypeScore=211.21;MQ=33.22;MQ0=9;QD=4.79;SB=-1023.50	GT:AD:DP:GL:GQ	0/1:481,139:495:-449.19,-149.09,-1385.37:99
-chr1	813107	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=546;Dels=0.00;HRun=0;HaplotypeScore=55.14;MQ=33.11;MQ0=20;OQ=871.93;QD=1.60;SB=-175.62	GT:AD:DP:GL:GQ	0/1:477,69:368:-201.32,-110.84,-1286.63:99
-chr1	813112	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=540;Dels=0.00;HRun=1;HaplotypeScore=215.40;MQ=33.46;MQ0=24;OQ=633.86;QD=1.17;SB=-102.54	GT:AD:DP:GL:GQ	0/1:489,51:349:-171.78,-105.11,-1109.57:99
-chr1	813120	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=452;Dels=0.00;HRun=0;HaplotypeScore=223.96;MQ=34.07;MQ0=26;OQ=8026.64;QD=17.76;SB=-2723.00	GT:AD:DP:GL:GQ	0/1:104,348:294:-801.66,-88.56,-349.63:99
-chr1	813123	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=449;Dels=0.00;HRun=0;HaplotypeScore=337.04;MQ=33.84;MQ0=28;OQ=7271.87;QD=16.20;SB=-2574.23	GT:AD:DP:GL:GQ	0/1:72,377:266:-726.19,-80.11,-257.87:99
-chr1	813133	.	G	C	2818.75	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=399;Dels=0.00;HRun=0;HaplotypeScore=373.63;MQ=34.21;MQ0=30;QD=7.06;SB=-1307.24	GT:AD:DP:GL:GQ	0/1:279,119:209:-348.13,-62.97,-562.66:99
-chr1	813135	.	A	G	6195.50	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=391;Dels=0.00;HRun=0;HaplotypeScore=305.70;MQ=34.41;MQ0=29;QD=15.85;SB=-2650.19	GT:AD:DP:GL:GQ	0/1:69,321:237:-618.55,-71.38,-275.07:99
-chr1	813142	.	T	C	345.82	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=364;Dels=0.00;HRun=1;HaplotypeScore=286.54;MQ=33.82;MQ0=33;QD=0.95;SB=-108.69	GT:AD:DP:GL:GQ	0/1:317,47:188:-94.49,-56.62,-663.95:99
-chr1	813148	.	C	A	1435.04	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=349;Dels=0.00;HRun=2;HaplotypeScore=161.77;MQ=34.46;MQ0=34;QD=4.11;SB=-365.32	GT:AD:DP:GL:GQ	0/1:282,67:257:-224.19,-77.40,-705.20:99
-chr1	813156	.	T	A	297.72	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=308;Dels=0.00;HRun=0;HaplotypeScore=111.01;MQ=35.71;MQ0=35;QD=0.97;SB=9.92	GT:AD:DP:GL:GQ	0/1:276,32:221:-99.61,-66.55,-759.37:99
-chr1	813157	.	G	C	549.74	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=307;Dels=0.00;HRun=0;HaplotypeScore=111.01;MQ=35.86;MQ0=35;QD=1.79;SB=-210.25	GT:AD:DP:GL:GQ	0/1:247,59:221:-124.85,-66.59,-828.88:99
-chr1	813168	.	C	T	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=254;Dels=0.00;HRun=2;HaplotypeScore=4.86;MQ=37.54;MQ0=37;OQ=984.94;QD=3.88;SB=44.86	GT:AD:DP:GL:GQ	0/1:209,45:173:-153.88,-52.11,-496.83:99
-chr1	813186	.	G	C	76.25	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=160;Dels=0.00;HRun=0;HaplotypeScore=72.20;MQ=40.71;MQ0=36;QD=0.48;SB=71.95	GT:AD:DP:GL:GQ	0/1:148,12:83:-35.91,-25.01,-332.34:99
-chr1	813187	.	A	G	513.33	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=147;Dels=0.00;HRun=1;HaplotypeScore=71.20;MQ=41.66;MQ0=35;QD=3.49;SB=-73.38	GT:AD:DP:GL:GQ	0/1:75,50:94:-82.93,-28.31,-287.29:99
-chr1	813188	.	C	A	79.88	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=146;Dels=0.00;HRun=1;HaplotypeScore=71.20;MQ=41.50;MQ0=35;QD=0.55;SB=44.61	GT:AD:DP:GL:GQ	0/1:120,26:78:-34.77,-23.49,-243.41:99
-chr1	813189	.	C	A	521.18	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=144;Dels=0.00;HRun=0;HaplotypeScore=67.21;MQ=41.65;MQ0=35;QD=3.62;SB=-1.36	GT:AD:DP:GL:GQ	0/1:108,26:91:-101.37,-45.97,-249.59:99
-chr1	813208	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=124;Dels=0.00;HRun=2;HaplotypeScore=18.83;MQ=43.26;MQ0=23;OQ=418.24;QD=3.37;SB=-54.23	GT:AD:DP:GL:GQ	0/1:61,63:76:-68.00,-22.89,-206.10:99
-chr1	813240	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=154;Dels=0.00;HRun=2;HaplotypeScore=43.28;MQ=41.04;MQ0=25;OQ=943.89;QD=6.13;SB=-68.91	GT:AD:DP:GL:GQ	0/1:64,90:92:-125.38,-27.71,-227.61:99
-chr1	813250	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=195;Dels=0.00;HRun=0;HaplotypeScore=62.53;MQ=37.95;MQ0=22;OQ=226.25;QD=1.16;SB=14.99	GT:AD:DP:GL:GQ	0/1:153,42:96:-54.82,-28.92,-298.56:99
-chr1	813271	.	T	C	0.03	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=249;Dels=0.00;HRun=0;HaplotypeScore=8.46;MQ=34.98;MQ0=19;OQ=1147.61;QD=4.61;SB=-134.40	GT:AD:DP:GL:GQ	0/1:63,186:103:-149.07,-31.02,-256.47:99
-chr1	813292	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=382;Dels=0.00;HRun=2;HaplotypeScore=102.43;MQ=30.92;MQ0=23;OQ=1986.60;QD=5.20;SB=-566.46	GT:AD:DP:GL:GQ	0/1:105,277:133:-242.00,-40.06,-276.00:99
-chr1	813307	.	A	G	32.13	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=535;Dels=0.00;HRun=0;HaplotypeScore=181.84;MQ=30.25;MQ0=27;QD=0.06;SB=46.55	GT:AD:DP:GL:GQ	0/1:504,31:255:-83.31,-76.81,-935.22:64.97
-chr1	813316	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=619;Dels=0.00;HRun=2;HaplotypeScore=75.11;MQ=29.97;MQ0=27;OQ=3157.81;QD=5.10;SB=-1462.71	GT:AD:DP:GL:GQ	0/1:382,237:331:-418.76,-99.69,-846.79:99
-chr1	813335	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=826;Dels=0.00;HRun=1;HaplotypeScore=136.91;MQ=30.11;MQ0=21;OQ=7119.57;QD=8.62;SB=-2280.77	GT:AD:DP:GL:GQ	0/1:537,288:549:-710.96,-165.36,-1364.58:99
-chr1	813362	.	A	G	16357.98	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=920;Dels=0.00;HRun=1;HaplotypeScore=446.32;MQ=30.10;MQ0=24;QD=17.78;SB=-5014.09	GT:AD:DP:GL:GQ	0/1:273,494:683:-1634.80,-554.43,-1400.88:99
-chr1	813367	.	T	C	20902.62	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=914;Dels=0.00;HRun=0;HaplotypeScore=426.41;MQ=30.28;MQ0=24;QD=22.87;SB=-7448.46	GT:AD:DP:GL:GQ	0/1:141,716:687:-2089.26,-358.04,-691.48:99
-chr1	813368	rs13302980	T	C	206.93	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=916;Dels=0.00;HRun=0;HaplotypeScore=426.41;MQ=30.25;MQ0=24;QD=0.23;SB=-118.41	GT:AD:DP:GL:GQ	0/1:843,73:685:-230.32,-206.34,-2521.41:99
-chr1	813385	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=888;Dels=0.00;HRun=0;HaplotypeScore=40.71;MQ=30.82;MQ0=25;OQ=1088.75;QD=1.23;SB=-408.14	GT:AD:DP:GL:GQ	0/1:783,105:699:-322.70,-210.54,-2232.26:99
-chr1	813404	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=750;Dels=0.00;HRun=2;HaplotypeScore=134.73;MQ=32.26;MQ0=17;OQ=670.55;QD=0.89;SB=-191.51	GT:AD:DP:GL:GQ	0/1:685,65:613:-254.96,-184.62,-2037.75:99
-chr1	813405	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=741;Dels=0.00;HRun=2;HaplotypeScore=133.74;MQ=32.36;MQ0=17;OQ=1633.92;QD=2.21;SB=-672.01	GT:AD:DP:GL:GQ	0/1:597,144:607:-349.50,-182.82,-2122.95:99
-chr1	813418	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=590;Dels=0.00;HRun=0;HaplotypeScore=47.11;MQ=33.33;MQ0=15;OQ=65.79;QD=0.11;SB=206.84	GT:AD:DP:GL:GQ	0/1:544,46:476:-153.22,-143.35,-1574.37:98.63
-chr1	813443	.	T	G	3848.11	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=275;Dels=0.00;HRun=0;HaplotypeScore=38.86;MQ=37.99;MQ0=5;QD=13.99;SB=-1241.58	GT:AD:DP:GL:GQ	0/1:79,195:186:-383.81,-56.02,-279.85:99
-chr1	813451	.	C	T	1033.45	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=197;Dels=0.01;HRun=0;HaplotypeScore=22.13;MQ=41.75;MQ0=4;QD=5.25;SB=-217.95	GT:AD:DP:GL:GQ	0/1:81,115:114:-140.97,-34.34,-279.86:99
-chr1	813452	.	A	G	765.89	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=186;Dels=0.01;HRun=0;HaplotypeScore=26.12;MQ=42.21;MQ0=4;QD=4.12;SB=-130.38	GT:AD:DP:GL:GQ	0/1:79,106:109:-112.71,-32.84,-316.56:99
-chr1	813514	rs61768255	T	A	0.19	PASS	AC=1;AF=0.50;AN=2;DB;DP=152;Dels=0.00;HRun=0;HaplotypeScore=2.00;MQ=40.18;MQ0=52;OQ=194.92;QD=1.28;SB=-18.62	GT:AD:DP:GL:GQ	0/1:64,87:75:-45.36,-22.59,-238.39:99
-chr1	813576	.	G	T	36.42	DPFilter;Indel;LowQual	AC=1;AF=0.50;AN=2;DP=256;Dels=0.00;HRun=0;HaplotypeScore=114.90;MQ=32.12;MQ0=13;QD=0.14;SB=80.27	GT:AD:DP:GL:GQ	0/1:231,25:108:-39.45,-32.53,-355.25:69.25
-chr1	813577	.	C	T	12.25	DPFilter;Indel;LowQual	AC=1;AF=0.50;AN=2;DP=253;Dels=0.00;HRun=0;HaplotypeScore=118.76;MQ=32.29;MQ0=11;QD=0.05;SB=83.28	GT:AD:DP:GL:GQ	0/1:222,24:110:-47.87,-43.39,-370.50:44.82
-chr1	813595	.	G	A	14.36	DPFilter;Indel;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=304;Dels=0.02;HRun=3;HaplotypeScore=679.47;MQ=32.56;MQ0=1;QD=0.05;SB=59.22	GT:AD:DP:GL:GQ	0/1:279,19:122:-44.63,-39.92,-398.76:47.04
-chr1	813600	.	G	A	274.89	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=326;Dels=0.00;HRun=2;HaplotypeScore=874.07;MQ=32.03;MQ0=1;QD=0.84;SB=65.24	GT:AD:DP:GL:GQ	0/1:247,78:142:-73.54,-42.77,-440.28:99
-chr1	813603	.	G	A	897.36	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=326;Dels=0.00;HRun=2;HaplotypeScore=1015.89;MQ=31.94;MQ0=0;QD=2.75;SB=17.55	GT:AD:DP:GL:GQ	0/1:201,125:138:-134.59,-41.57,-374.40:99
-chr1	813618	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=385;Dels=0.01;HRun=2;HaplotypeScore=1064.00;MQ=30.68;MQ0=0;OQ=4144.71;QD=10.77;SB=-60.77	GT:AD:DP:GL:GQ	0/1:139,193:174:-413.47,-52.40,-263.62:99
-chr1	813640	.	G	A	6008.25	DPFilter;Indel	AC=1;AF=0.50;AN=2;DP=492;Dels=0.03;HRun=2;HaplotypeScore=778.76;MQ=30.34;MQ0=0;QD=12.21;SB=-280.67	GT:AD:DP:GL:GQ	0/1:225,249:279:-599.83,-82.23,-444.10:99
-chr1	813644	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=499;Dels=0.00;HRun=2;HaplotypeScore=589.76;MQ=30.13;MQ0=0;OQ=1319.59;QD=2.64;SB=-65.34	GT:AD:DP:GL:GQ	0/1:370,128:286:-221.39,-86.15,-815.48:99
-chr1	813653	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=493;Dels=0.00;HRun=1;HaplotypeScore=439.06;MQ=30.75;MQ0=0;OQ=617.48;QD=1.25;SB=-157.65	GT:AD:DP:GL:GQ	0/1:455,38:256:-142.14,-77.10,-775.99:99
-chr1	813667	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=450;Dels=0.03;HRun=0;HaplotypeScore=1087.09;MQ=31.84;MQ0=0;OQ=612.31;QD=1.36;SB=24.15	GT:AD:DP:GL:GQ	0/1:310,99:290:-203.97,-139.46,-953.68:99
-chr1	813680	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=385;Dels=0.03;HRun=2;HaplotypeScore=1191.21;MQ=32.81;MQ0=0;OQ=1213.04;QD=3.15;SB=-10.63	GT:AD:DP:GL:GQ	0/1:276,97:229:-193.56,-68.97,-645.40:99
-chr1	813720	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=252;Dels=0.06;HRun=1;HaplotypeScore=327.60;MQ=37.03;MQ0=0;OQ=194.28;QD=0.77;SB=110.38	GT:AD:DP:GL:GQ	0/1:205,33:146:-66.38,-43.67,-457.57:99
-chr1	813729	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=187;Dels=0.00;HRun=0;HaplotypeScore=373.81;MQ=39.70;MQ0=0;OQ=281.23;QD=1.50;SB=15.00	GT:AD:DP:GL:GQ	0/1:127,60:111:-64.84,-33.43,-345.95:99
-chr1	813820	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=81;Dels=0.05;HRun=2;HaplotypeScore=42.41;MQ=49.74;MQ0=3;OQ=162.06;QD=2.00;SB=-100.42	GT:AD:DP:GL:GQ	0/1:56,21:59:-37.26,-17.77,-183.03:99
-chr1	813869	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=80;Dels=0.00;HRun=0;HaplotypeScore=73.61;MQ=47.62;MQ0=2;OQ=155.20;QD=1.94;SB=41.14	GT:AD:DP:GL:GQ	0/1:71,9:54:-35.07,-16.26,-160.29:99
-chr1	813877	.	G	A	25.05	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=73;Dels=0.00;HRun=0;HaplotypeScore=66.85;MQ=49.86;MQ0=1;QD=0.34;SB=32.11	GT:AD:DP:GL:GQ	0/1:64,9:51:-21.15,-15.36,-169.54:57.88
-chr1	813907	.	G	A	23.05	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=73;Dels=0.04;HRun=1;HaplotypeScore=56.30;MQ=49.27;MQ0=1;QD=0.32;SB=38.13	GT:AD:DP:GL:GQ	0/1:63,7:54:-21.25,-15.66,-171.08:55.87
-chr1	813910	.	G	A	12.29	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=73;Dels=0.00;HRun=0;HaplotypeScore=61.37;MQ=49.27;MQ0=1;QD=0.17;SB=35.12	GT:AD:DP:GL:GQ	0/1:63,10:55:-21.06,-16.57,-179.39:44.87
-chr1	813923	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=75;Dels=0.03;HRun=2;HaplotypeScore=23.38;MQ=50.12;MQ0=1;OQ=138.74;QD=1.85;SB=-24.20	GT:AD:DP:GL:GQ	0/1:50,23:55:-33.43,-16.28,-173.24:99
-chr1	813957	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=127;Dels=0.00;HRun=2;HaplotypeScore=18.68;MQ=43.32;MQ0=1;OQ=871.71;QD=6.86;SB=-275.74	GT:AD:DP:GL:GQ	0/1:65,62:85:-116.06,-25.61,-200.91:99
-chr1	813978	.	A	C	0.71	PASS	AC=1;AF=0.50;AN=2;DP=148;Dels=0.00;HRun=0;HaplotypeScore=2.78;MQ=39.28;MQ0=4;OQ=705.69;QD=4.77;SB=-252.74	GT:AD:DP:GL:GQ	0/1:54,94:80:-97.95,-24.09,-193.62:99
-chr1	814078	.	T	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=191;Dels=0.00;HRun=1;HaplotypeScore=6.42;MQ=36.79;MQ0=24;OQ=486.46;QD=2.55;SB=-267.20	GT:AD:DP:GL:GQ	0/1:63,128:82:-76.63,-24.70,-247.64:99
-chr1	814121	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=168;Dels=0.00;HRun=0;HaplotypeScore=39.43;MQ=40.45;MQ0=17;OQ=289.94;QD=1.73;SB=-38.08	GT:AD:DP:GL:GQ	0/1:70,98:82:-56.99,-24.71,-295.92:99
-chr1	814147	.	C	T	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=151;Dels=0.00;HRun=0;HaplotypeScore=14.17;MQ=45.92;MQ0=13;OQ=964.78;QD=6.39;SB=-366.58	GT:AD:DP:GL:GQ	0/1:82,69:112:-133.50,-33.74,-285.66:99
-chr1	814171	.	T	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=168;Dels=0.00;HRun=1;HaplotypeScore=20.78;MQ=44.66;MQ0=14;OQ=904.13;QD=5.38;SB=-364.51	GT:AD:DP:GL:GQ	0/1:83,85:118:-129.23,-35.54,-305.53:99
-chr1	814202	.	C	A	1692.96	DPFilter;Indel	AC=1;AF=0.50;AN=2;DP=197;Dels=0.09;HRun=0;HaplotypeScore=162.31;MQ=41.97;MQ0=8;QD=8.59;SB=-578.48	GT:AD:DP:GL:GQ	0/1:79,100:139:-213.84,-41.26,-286.69:99
-chr1	814220	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=217;Dels=0.00;HRun=0;HaplotypeScore=50.82;MQ=39.65;MQ0=8;OQ=329.14;QD=1.52;SB=-86.50	GT:AD:DP:GL:GQ	0/1:161,56:136:-77.16,-40.96,-423.94:99
-chr1	814233	.	G	A	2067.86	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=224;Dels=0.00;HRun=0;HaplotypeScore=147.47;MQ=38.66;MQ0=13;QD=9.23;SB=-544.97	GT:AD:DP:GL:GQ	0/1:105,119:132:-249.86,-39.79,-228.63:99
-chr1	814239	.	A	G	1315.30	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=220;Dels=0.00;HRun=1;HaplotypeScore=123.50;MQ=38.45;MQ0=13;QD=5.98;SB=-142.40	GT:AD:DP:GL:GQ	0/1:70,150:114:-169.16,-34.34,-278.17:99
-chr1	814242	.	A	G	554.64	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=231;Dels=0.00;HRun=0;HaplotypeScore=125.56;MQ=38.13;MQ0=16;QD=2.40;SB=-155.01	GT:AD:DP:GL:GQ	0/1:172,59:130:-97.91,-39.16,-422.03:99
-chr1	814256	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=245;Dels=0.00;HRun=0;HaplotypeScore=21.41;MQ=37.07;MQ0=15;OQ=2324.45;QD=9.49;SB=-360.77	GT:AD:DP:GL:GQ	0/1:68,177:144:-279.11,-43.38,-270.96:99
-chr1	814273	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=271;Dels=0.00;HRun=0;HaplotypeScore=59.92;MQ=36.71;MQ0=15;OQ=51.68;QD=0.19;SB=122.32	GT:AD:DP:GL:GQ	0/1:221,49:163:-60.05,-51.60,-506.38:84.51
-chr1	814274	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=269;Dels=0.00;HRun=0;HaplotypeScore=59.77;MQ=36.62;MQ0=15;OQ=1850.48;QD=6.88;SB=-407.81	GT:AD:DP:GL:GQ	0/1:149,120:153:-234.45,-46.12,-315.76:99
-chr1	814294	.	A	G	2410.03	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=266;Dels=0.00;HRun=2;HaplotypeScore=103.79;MQ=37.05;MQ0=15;QD=9.06;SB=-443.47	GT:AD:DP:GL:GQ	0/1:75,191:153:-290.38,-46.10,-295.34:99
-chr1	814296	.	G	A	1211.04	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=274;Dels=0.00;HRun=0;HaplotypeScore=219.20;MQ=36.82;MQ0=15;QD=4.42;SB=-351.23	GT:AD:DP:GL:GQ	0/1:200,74:158:-171.99,-47.60,-420.58:99
-chr1	814301	.	A	G	978.34	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=274;Dels=0.00;HRun=0;HaplotypeScore=220.77;MQ=36.41;MQ0=15;QD=3.57;SB=-180.08	GT:AD:DP:GL:GQ	0/1:73,201:110:-134.26,-33.14,-291.65:99
-chr1	814305	.	T	C	45.78	DPFilter;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=278;Dels=0.00;HRun=0;HaplotypeScore=232.83;MQ=35.76;MQ0=15;QD=0.16;SB=-43.14	GT:AD:DP:GL:GQ	0/1:206,71:102:-38.59,-30.73,-365.14:78.61
-chr1	814318	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=278;Dels=0.00;HRun=0;HaplotypeScore=167.17;MQ=36.26;MQ0=13;OQ=2113.99;QD=7.60;SB=-387.55	GT:AD:DP:GL:GQ	0/1:72,191:148:-269.75,-55.07,-295.63:99
-chr1	814320	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=280;Dels=0.00;HRun=0;HaplotypeScore=167.17;MQ=36.49;MQ0=13;OQ=746.17;QD=2.66;SB=-108.14	GT:AD:DP:GL:GQ	0/1:218,62:140:-120.08,-42.18,-412.31:99
-chr1	814333	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=285;Dels=0.00;HRun=0;HaplotypeScore=281.15;MQ=35.53;MQ0=9;OQ=1990.33;QD=6.98;SB=-447.96	GT:AD:DP:GL:GQ	0/1:95,190:142:-245.09,-42.77,-288.22:99
-chr1	814346	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=251;Dels=0.00;HRun=0;HaplotypeScore=225.23;MQ=36.32;MQ0=4;OQ=1683.84;QD=6.71;SB=-421.88	GT:AD:DP:GL:GQ	0/1:107,144:128:-210.24,-38.57,-269.23:99
-chr1	814360	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=225;Dels=0.00;HRun=2;HaplotypeScore=149.83;MQ=38.08;MQ0=4;OQ=172.19;QD=0.77;SB=51.61	GT:AD:DP:GL:GQ	0/1:195,28:117:-55.74,-35.24,-362.13:99
-chr1	814384	.	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=149;Dels=0.00;HRun=1;HaplotypeScore=42.51;MQ=45.49;MQ0=3;OQ=551.67;QD=3.70;SB=-145.33	GT:AD:DP:GL:GQ	0/1:76,73:99:-88.27,-29.82,-286.26:99
-chr1	814428	.	T	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=130;Dels=0.00;HRun=0;HaplotypeScore=10.58;MQ=49.14;MQ0=17;OQ=342.52;QD=2.63;SB=-111.49	GT:AD:DP:GL:GQ	0/1:82,48:99:-67.35,-29.82,-298.71:99
-chr1	814439	.	C	T	20.82	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=149;Dels=0.00;HRun=0;HaplotypeScore=3.94;MQ=47.72;MQ0=20;QD=0.14;SB=152.46	GT:AD:DP:GL:GQ	0/1:137,12:115:-40.00,-34.64,-383.60:53.62
-chr1	814456	.	C	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=162;Dels=0.00;HRun=1;HaplotypeScore=15.28;MQ=46.84;MQ0=26;OQ=753.94;QD=4.65;SB=-138.63	GT:AD:DP:GL:GQ	0/1:92,70:122:-115.43,-36.75,-321.50:99
-chr1	814470	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=189;Dels=0.00;HRun=1;HaplotypeScore=31.58;MQ=44.82;MQ0=39;OQ=884.58;QD=4.68;SB=-229.69	GT:AD:DP:GL:GQ	0/1:97,92:121:-128.25,-36.50,-368.74:99
-chr1	814488	.	C	A	76.03	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=247;Dels=0.00;HRun=0;HaplotypeScore=105.09;MQ=41.14;MQ0=41;QD=0.31;SB=176.55	GT:AD:DP:GL:GQ	0/1:229,16:148:-55.47,-44.58,-476.50:99
-chr1	814489	.	C	G	69.13	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=248;Dels=0.00;HRun=0;HaplotypeScore=89.81;MQ=41.12;MQ0=41;QD=0.28;SB=176.62	GT:AD:DP:GL:GQ	0/1:231,17:149:-55.10,-44.90,-596.57:99
-chr1	814495	.	T	C	1858.16	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=258;Dels=0.00;HRun=0;HaplotypeScore=56.93;MQ=40.44;MQ0=47;QD=7.20;SB=-760.45	GT:AD:DP:GL:GQ	0/1:92,166:157:-236.40,-47.30,-370.00:99
-chr1	814529	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=433;Dels=0.00;HRun=0;HaplotypeScore=120.51;MQ=38.11;MQ0=39;OQ=500.57;QD=1.16;SB=-243.42	GT:AD:DP:GL:GQ	0/1:383,50:261:-131.95,-78.61,-806.43:99
-chr1	814534	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=446;Dels=0.00;HRun=0;HaplotypeScore=107.63;MQ=38.32;MQ0=36;OQ=359.59;QD=0.81;SB=-173.49	GT:AD:DP:GL:GQ	0/1:401,44:272:-121.18,-81.93,-841.90:99
-chr1	814540	.	A	G	36.54	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=477;Dels=0.00;HRun=1;HaplotypeScore=62.33;MQ=38.25;MQ0=37;QD=0.08;SB=123.17	GT:AD:DP:GL:GQ	0/1:445,32:265:-86.76,-79.83,-986.21:69.37
-chr1	814554	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=529;Dels=0.00;HRun=0;HaplotypeScore=89.36;MQ=37.97;MQ0=32;OQ=9731.93;QD=18.40;SB=-1976.66	GT:AD:DP:GL:GQ	0/1:80,449:318:-972.19,-95.79,-281.92:99
-chr1	814557	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=552;Dels=0.00;HRun=0;HaplotypeScore=97.56;MQ=38.01;MQ0=31;OQ=8661.84;QD=15.69;SB=-1680.73	GT:AD:DP:GL:GQ	0/1:195,357:340:-865.18,-102.42,-472.42:99
-chr1	814572	rs564838	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=625;Dels=0.00;HRun=1;HaplotypeScore=63.63;MQ=38.08;MQ0=27;OQ=2371.32;QD=3.79;SB=-326.77	GT:AD:DP:GL:GQ	0/1:480,145:413:-364.80,-124.39,-1136.05:99
-chr1	814627	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=504;Dels=0.00;HRun=1;HaplotypeScore=183.33;MQ=39.27;MQ0=14;OQ=10984.00;QD=21.79;SB=-1265.89	GT:AD:DP:GL:GQ	0/1:67,203:343:-1097.40,-537.50,-676.52:99
-chr1	814675	.	G	A	2732.90	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=265;Dels=0.00;HRun=1;HaplotypeScore=261.45;MQ=41.69;MQ0=11;QD=10.31;SB=-108.93	GT:AD:DP:GL:GQ	0/1:161,102:166:-330.09,-53.51,-314.61:99
-chr1	814679	.	A	G	2402.46	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=237;Dels=0.00;HRun=1;HaplotypeScore=135.51;MQ=41.79;MQ0=13;QD=10.14;SB=-20.34	GT:AD:DP:GL:GQ	0/1:70,167:146:-287.52,-43.99,-273.83:99
-chr1	814680	.	C	T	2092.18	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=238;Dels=0.00;HRun=0;HaplotypeScore=134.51;MQ=41.43;MQ0=17;QD=8.79;SB=-7.62	GT:AD:DP:GL:GQ	0/1:151,86:144:-255.88,-43.38,-283.23:99
-chr1	814701	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=219;Dels=0.00;HRun=0;HaplotypeScore=51.82;MQ=41.75;MQ0=19;OQ=1622.55;QD=7.41;SB=-75.48	GT:AD:DP:GL:GQ	0/1:87,132:141:-208.02,-42.48,-267.24:99
-chr1	814708	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=222;Dels=0.00;HRun=0;HaplotypeScore=76.68;MQ=40.68;MQ0=25;OQ=2028.26;QD=9.14;SB=-58.81	GT:AD:DP:GL:GQ	0/1:84,138:144:-249.49,-43.38,-267.28:99
-chr1	814713	rs563211	T	C	1374.69	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=232;Dels=0.00;HRun=0;HaplotypeScore=105.58;MQ=40.40;MQ0=29;QD=5.93;SB=29.72	GT:AD:DP:GL:GQ	0/1:146,86:143:-183.83,-43.08,-359.04:99
-chr1	814720	.	T	C	689.97	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=243;Dels=0.00;HRun=0;HaplotypeScore=108.11;MQ=39.59;MQ0=32;QD=2.84;SB=46.65	GT:AD:DP:GL:GQ	0/1:85,157:115:-106.92,-34.64,-346.63:99
-chr1	814722	.	C	G	183.01	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=254;Dels=0.00;HRun=0;HaplotypeScore=126.09;MQ=39.61;MQ0=33;QD=0.72;SB=68.61	GT:AD:DP:GL:GQ	0/1:217,37:122:-58.35,-36.76,-472.38:99
-chr1	814737	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=299;Dels=0.00;HRun=0;HaplotypeScore=30.86;MQ=38.18;MQ0=38;OQ=2218.82;QD=7.42;SB=-36.77	GT:AD:DP:GL:GQ	0/1:186,113:186:-281.20,-56.03,-416.78:99
-chr1	814767	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=365;Dels=0.00;HRun=2;HaplotypeScore=49.56;MQ=35.63;MQ0=43;OQ=5264.89;QD=14.42;SB=-427.42	GT:AD:DP:GL:GQ	0/1:96,269:216:-525.49,-65.13,-366.09:99
-chr1	814784	.	A	G	211.71	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=402;Dels=0.00;HRun=0;HaplotypeScore=324.91;MQ=34.66;MQ0=41;QD=0.53;SB=-28.05	GT:AD:DP:GL:GQ	0/1:357,45:243:-97.65,-73.19,-885.32:99
-chr1	814787	.	A	G	1988.10	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=404;Dels=0.00;HRun=0;HaplotypeScore=288.76;MQ=34.45;MQ0=41;QD=4.92;SB=-448.31	GT:AD:DP:GL:GQ	0/1:239,165:199:-262.08,-59.99,-467.56:99
-chr1	814790	.	G	A	2076.12	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=406;Dels=0.00;HRun=0;HaplotypeScore=289.81;MQ=34.38;MQ0=42;QD=5.11;SB=-426.20	GT:AD:DP:GL:GQ	0/1:294,112:245:-284.69,-73.80,-651.34:99
-chr1	814794	.	G	C	5521.90	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=400;Dels=0.00;HRun=0;HaplotypeScore=359.70;MQ=34.34;MQ0=40;QD=13.80;SB=-919.83	GT:AD:DP:GL:GQ	0/1:77,252:207:-551.19,-211.22,-478.27:99
-chr1	814804	.	C	T	88.70	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=434;Dels=0.00;HRun=1;HaplotypeScore=347.22;MQ=35.87;MQ0=35;QD=0.20;SB=-33.30	GT:AD:DP:GL:GQ	0/1:387,47:188:-68.79,-56.64,-599.68:99
-chr1	814807	.	A	C	912.16	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=446;Dels=0.00;HRun=1;HaplotypeScore=302.12;MQ=36.31;MQ0=35;QD=2.05;SB=-348.23	GT:AD:DP:GL:GQ	0/1:319,127:242:-167.40,-72.90,-690.79:99
-chr1	814811	.	C	T	8629.57	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=472;Dels=0.00;HRun=2;HaplotypeScore=321.44;MQ=36.81;MQ0=35;QD=18.28;SB=-2662.56	GT:AD:DP:GL:GQ	0/1:133,339:310:-861.96,-93.38,-350.61:99
-chr1	814815	.	G	A	1219.97	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=497;Dels=0.00;HRun=1;HaplotypeScore=253.88;MQ=37.19;MQ0=33;QD=2.45;SB=-308.28	GT:AD:DP:GL:GQ	0/1:414,82:332:-225.30,-100.02,-991.58:99
-chr1	814833	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=552;Dels=0.00;HRun=0;HaplotypeScore=30.66;MQ=38.93;MQ0=25;OQ=13138.69;QD=23.80;SB=-5564.86	GT:AD:DP:GL:GQ	0/1:68,484:387:-1312.87,-116.58,-241.99:99
-chr1	814846	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=600;Dels=0.00;HRun=1;HaplotypeScore=69.54;MQ=39.19;MQ0=23;OQ=3136.64;QD=5.23;SB=-1237.78	GT:AD:DP:GL:GQ	0/1:435,165:409:-440.13,-123.18,-1039.78:99
-chr1	814879	.	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=693;Dels=0.00;HRun=0;HaplotypeScore=388.69;MQ=39.91;MQ0=7;OQ=8125.01;QD=11.72;SB=-2578.04	GT:AD:DP:GL:GQ	0/1:409,284:467:-811.50,-140.66,-960.39:99
-chr1	814880	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=692;Dels=0.00;HRun=2;HaplotypeScore=381.90;MQ=39.95;MQ0=7;OQ=2413.57;QD=3.49;SB=-960.49	GT:AD:DP:GL:GQ	0/1:533,158:465:-387.57,-142.93,-1289.43:99
-chr1	814900	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=699;Dels=0.00;HRun=0;HaplotypeScore=119.56;MQ=39.22;MQ0=14;OQ=14541.95;QD=20.80;SB=-4000.09	GT:AD:DP:GL:GQ	0/1:90,605:445:-1453.20,-134.09,-272.14:99
-chr1	814929	.	C	T	1261.33	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=562;Dels=0.00;HRun=0;HaplotypeScore=644.78;MQ=37.11;MQ0=29;QD=2.24;SB=-29.99	GT:AD:DP:GL:GQ	0/1:384,176:313:-223.70,-94.28,-953.66:99
-chr1	814931	.	T	C	7350.11	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=554;Dels=0.00;HRun=4;HaplotypeScore=616.85;MQ=36.93;MQ0=28;QD=13.27;SB=-1896.86	GT:AD:DP:GL:GQ	0/1:148,405:309:-734.01,-93.08,-440.40:99
-chr1	814932	rs4475692	G	A	10783.24	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=554;Dels=0.00;HRun=0;HaplotypeScore=621.95;MQ=36.79;MQ0=29;QD=19.46;SB=-2129.22	GT:AD:DP:GL:GQ	0/1:174,298:306:-1077.32,-380.57,-459.91:99
-chr1	814939	.	G	A	1306.21	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=568;Dels=0.00;HRun=1;HaplotypeScore=479.84;MQ=36.20;MQ0=35;QD=2.30;SB=-170.45	GT:AD:DP:GL:GQ	0/1:402,165:327:-232.39,-98.48,-986.51:99
-chr1	814952	.	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=543;Dels=0.00;HRun=0;HaplotypeScore=51.53;MQ=35.74;MQ0=35;OQ=140.17;QD=0.26;SB=144.16	GT:AD:DP:GL:GQ	0/1:482,61:349:-122.41,-105.11,-1207.38:99
-chr1	814967	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=541;Dels=0.00;HRun=0;HaplotypeScore=312.71;MQ=35.10;MQ0=40;OQ=7468.20;QD=13.80;SB=-2338.34	GT:AD:DP:GL:GQ	0/1:256,284:360:-745.82,-108.45,-622.35:99
-chr1	814975	.	C	T	35.90	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=483;Dels=0.00;HRun=0;HaplotypeScore=80.80;MQ=34.88;MQ0=44;QD=0.07;SB=387.40	GT:AD:DP:GL:GQ	0/1:418,42:326:-167.53,-160.66,-1098.08:68.73
-chr1	815007	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=591;Dels=0.00;HRun=1;HaplotypeScore=71.67;MQ=32.27;MQ0=41;OQ=5134.52;QD=8.69;SB=-1587.17	GT:AD:DP:GL:GQ	0/1:388,203:408:-512.45,-122.89,-966.60:99
-chr1	815060	rs7417801	G	A	11239.90	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=650;Dels=0.00;HRun=0;HaplotypeScore=316.82;MQ=33.42;MQ0=19;QD=17.29;SB=-4737.34	GT:AD:DP:GL:GQ	0/1:178,470:421:-1122.99,-126.87,-458.77:99
-chr1	815061	.	C	T	1691.04	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=650;Dels=0.00;HRun=1;HaplotypeScore=315.98;MQ=33.65;MQ0=19;QD=2.60;SB=-738.44	GT:AD:DP:GL:GQ	0/1:537,113:421:-299.19,-126.80,-1266.58:99
-chr1	815070	rs61768257	T	C	12258.60	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=631;Dels=0.00;HRun=0;HaplotypeScore=343.15;MQ=33.97;MQ0=16;QD=19.43;SB=-5504.71	GT:AD:DP:GL:GQ	0/1:80,551:412:-1224.86,-124.09,-309.22:99
-chr1	815113	rs61768258	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=470;Dels=0.00;HRun=0;HaplotypeScore=109.35;MQ=33.63;MQ0=24;OQ=6584.76;QD=14.01;SB=-2185.39	GT:AD:DP:GL:GQ	0/1:114,356:254:-657.48,-76.51,-273.29:99
-chr1	815129	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=382;Dels=0.00;HRun=3;HaplotypeScore=48.33;MQ=33.58;MQ0=23;OQ=4485.00;QD=11.74;SB=-986.12	GT:AD:DP:GL:GQ	0/1:120,260:190:-447.50,-57.26,-260.95:99
-chr1	815155	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=321;Dels=0.00;HRun=2;HaplotypeScore=58.38;MQ=34.02;MQ0=21;OQ=1737.47;QD=5.41;SB=15.00	GT:AD:DP:GL:GQ	0/1:189,132:155:-223.72,-46.69,-361.30:99
-chr1	815170	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=270;Dels=0.00;HRun=0;HaplotypeScore=137.94;MQ=34.80;MQ0=19;OQ=2424.70;QD=8.98;SB=14.59	GT:AD:DP:GL:GQ	0/1:64,205:125:-283.44,-37.69,-171.56:99
-chr1	815209	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=213;Dels=0.00;HRun=4;HaplotypeScore=80.30;MQ=38.66;MQ0=0;OQ=2224.65;QD=10.44;SB=11.50	GT:AD:DP:GL:GQ	0/1:67,146:136:-266.72,-40.97,-258.01:99
-chr1	815222	.	C	G	180.27	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=222;Dels=0.00;HRun=2;HaplotypeScore=142.18;MQ=38.40;MQ0=0;QD=0.81;SB=9.29	GT:AD:DP:GL:GQ	0/1:186,36:136:-62.35,-41.04,-500.13:99
-chr1	815223	.	G	T	2117.77	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=216;Dels=0.00;HRun=1;HaplotypeScore=129.82;MQ=38.70;MQ0=0;QD=9.80;SB=21.09	GT:AD:DP:GL:GQ	0/1:67,149:140:-257.24,-42.18,-220.42:99
-chr1	815225	.	C	A	1105.29	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=217;Dels=0.00;HRun=2;HaplotypeScore=129.82;MQ=38.83;MQ0=0;QD=5.09;SB=62.22	GT:AD:DP:GL:GQ	0/1:119,82:139:-174.62,-60.81,-341.62:99
-chr1	815273	rs13303179	G	A	2565.92	DPFilter;Indel	AC=1;AF=0.50;AN=2;DB;DP=228;Dels=0.03;HRun=0;HaplotypeScore=354.84;MQ=39.22;MQ0=2;QD=11.25;SB=-1159.78	GT:AD:DP:GL:GQ	0/1:137,80:90:-286.39,-26.51,-60.11:99
-chr1	815278	.	G	T	761.09	DPFilter;Indel	AC=1;AF=0.50;AN=2;DP=240;Dels=0.00;HRun=1;HaplotypeScore=623.87;MQ=38.93;MQ0=0;QD=3.17;SB=80.36	GT:AD:DP:GL:GQ	0/1:181,48:118:-132.78,-53.39,-296.79:99
-chr1	815284	.	A	T	612.72	DPFilter;Indel	AC=1;AF=0.50;AN=2;DP=234;Dels=0.01;HRun=0;HaplotypeScore=131.40;MQ=39.54;MQ0=0;QD=2.62;SB=-4.85	GT:AD:DP:GL:GQ	0/1:70,108:89:-96.12,-31.56,-237.53:99
-chr1	815299	.	C	T	462.61	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=271;Dels=0.00;HRun=1;HaplotypeScore=228.02;MQ=37.95;MQ0=1;QD=1.71;SB=107.29	GT:AD:DP:GL:GQ	0/1:137,134:104:-80.88,-31.33,-296.80:99
-chr1	815300	.	A	G	825.50	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=268;Dels=0.00;HRun=0;HaplotypeScore=227.74;MQ=37.73;MQ0=1;QD=3.08;SB=104.37	GT:AD:DP:GL:GQ	0/1:110,156:125:-123.50,-37.66,-346.20:99
-chr1	815308	.	A	G	1233.06	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=264;Dels=0.00;HRun=0;HaplotypeScore=419.76;MQ=37.40;MQ0=1;QD=4.67;SB=68.40	GT:AD:DP:GL:GQ	0/1:127,137:154:-172.99,-46.40,-402.39:99
-chr1	815312	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=276;Dels=0.00;HRun=0;HaplotypeScore=183.65;MQ=36.17;MQ0=1;OQ=3931.91;QD=14.25;SB=-32.81	GT:AD:DP:GL:GQ	0/1:62,214:156:-392.19,-47.02,-185.37:99
-chr1	815328	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=297;Dels=0.00;HRun=0;HaplotypeScore=61.42;MQ=35.05;MQ0=1;OQ=1563.62;QD=5.26;SB=37.57	GT:AD:DP:GL:GQ	0/1:210,87:190:-216.89,-57.25,-456.11:99
-chr1	815333	.	A	G	262.79	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=299;Dels=0.00;HRun=0;HaplotypeScore=239.02;MQ=35.16;MQ0=1;QD=0.88;SB=12.36	GT:AD:DP:GL:GQ	0/1:257,42:214:-94.06,-64.49,-716.97:99
-chr1	815339	.	G	A	1298.73	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=284;Dels=0.00;HRun=1;HaplotypeScore=174.26;MQ=34.74;MQ0=1;QD=4.57;SB=28.57	GT:AD:DP:GL:GQ	0/1:213,70:192:-191.01,-57.85,-488.27:99
-chr1	815340	.	C	A	157.45	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=279;Dels=0.00;HRun=0;HaplotypeScore=166.11;MQ=34.52;MQ0=1;QD=0.56;SB=56.17	GT:AD:DP:GL:GQ	0/1:238,39:195:-77.77,-58.74,-595.87:99
-chr1	815347	.	C	T	431.68	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=271;Dels=0.00;HRun=0;HaplotypeScore=149.67;MQ=34.21;MQ0=1;QD=1.59;SB=13.61	GT:AD:DP:GL:GQ	0/1:219,52:183:-101.60,-55.14,-567.56:99
-chr1	815356	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=282;Dels=0.00;HRun=0;HaplotypeScore=134.05;MQ=33.48;MQ0=1;OQ=648.64;QD=2.30;SB=53.15	GT:AD:DP:GL:GQ	0/1:240,42:173:-120.28,-52.13,-519.88:99
-chr1	815363	.	G	A	778.46	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=288;Dels=0.00;HRun=0;HaplotypeScore=145.91;MQ=33.47;MQ0=1;QD=2.70;SB=9.52	GT:AD:DP:GL:GQ	0/1:221,66:188:-137.76,-56.63,-540.20:99
-chr1	815371	.	T	A	4591.13	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=275;Dels=0.00;HRun=0;HaplotypeScore=258.43;MQ=32.98;MQ0=1;QD=16.70;SB=38.12	GT:AD:DP:GL:GQ	0/1:49,226:171:-458.11,-51.51,-170.42:99
-chr1	815373	.	A	T	533.41	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=286;Dels=0.00;HRun=2;HaplotypeScore=261.79;MQ=33.03;MQ0=1;QD=1.87;SB=35.14	GT:AD:DP:GL:GQ	0/1:246,39:154:-103.02,-46.39,-455.31:99
-chr1	815376	.	C	A	1170.34	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=282;Dels=0.00;HRun=0;HaplotypeScore=127.10;MQ=33.82;MQ0=1;QD=4.15;SB=38.15	GT:AD:DP:GL:GQ	0/1:188,94:146:-164.30,-43.98,-347.79:99
-chr1	815381	.	G	A	252.28	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=299;Dels=0.00;HRun=0;HaplotypeScore=149.34;MQ=33.65;MQ0=1;QD=0.84;SB=44.17	GT:AD:DP:GL:GQ	0/1:261,37:167:-78.82,-50.30,-512.70:99
-chr1	815393	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=275;Dels=0.00;HRun=2;HaplotypeScore=32.62;MQ=34.43;MQ0=1;OQ=361.63;QD=1.32;SB=59.23	GT:AD:DP:GL:GQ	0/1:214,61:130:-78.62,-39.18,-425.44:99
-chr1	815401	.	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=262;Dels=0.00;HRun=0;HaplotypeScore=139.53;MQ=35.48;MQ0=0;OQ=534.52;QD=2.04;SB=65.23	GT:AD:DP:GL:GQ	0/1:204,58:105:-88.37,-31.63,-309.51:99
-chr1	815405	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=256;Dels=0.00;HRun=0;HaplotypeScore=139.38;MQ=35.34;MQ0=0;OQ=1047.66;QD=4.09;SB=65.23	GT:AD:DP:GL:GQ	0/1:61,195:95:-136.67,-28.62,-215.61:99
-chr1	815412	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=227;Dels=0.00;HRun=1;HaplotypeScore=225.15;MQ=36.20;MQ0=0;OQ=276.35;QD=1.22;SB=65.25	GT:AD:DP:GL:GQ	0/1:61,166:74:-53.21,-22.29,-232.02:99
-chr1	815417	rs4970337	A	G	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=202;Dels=0.00;HRun=1;HaplotypeScore=585.49;MQ=36.06;MQ0=0;OQ=1433.41;QD=7.10;SB=-630.86	GT:AD:DP:GL:GQ	1/1:20,53:52:-158.74,-15.68,-11.81:38.71
-chr1	815425	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=183;Dels=0.00;HRun=0;HaplotypeScore=313.15;MQ=35.48;MQ0=0;OQ=58.46;QD=0.32;SB=65.13	GT:AD:DP:GL:GQ	0/1:47,51:54:-25.40,-16.27,-162.78:91.30
-chr1	815458	.	T	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=104;Dels=0.00;HRun=0;HaplotypeScore=13.84;MQ=40.96;MQ0=1;OQ=53.27;QD=0.51;SB=62.22	GT:AD:DP:GL:GQ	0/1:68,36:55:-25.19,-16.58,-184.48:86.11
-chr1	815470	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=88;Dels=0.00;HRun=0;HaplotypeScore=23.44;MQ=43.10;MQ0=1;OQ=126.81;QD=1.44;SB=62.23	GT:AD:DP:GL:GQ	0/1:44,44:50:-31.03,-15.06,-165.46:99
-chr1	815557	.	T	C	22.78	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=84;Dels=0.00;HRun=1;HaplotypeScore=22.31;MQ=51.18;MQ0=1;QD=0.27;SB=2.47	GT:AD:DP:GL:GQ	0/1:71,13:68:-26.06,-20.50,-237.08:55.60
-chr1	815639	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=87;Dels=0.00;HRun=2;HaplotypeScore=38.60;MQ=52.07;MQ0=2;OQ=197.56;QD=2.27;SB=80.29	GT:AD:DP:GL:GQ	0/1:75,12:73:-45.07,-22.03,-247.37:99
-chr1	815714	rs4549984	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=282;Dels=0.00;HRun=0;HaplotypeScore=45.55;MQ=35.23;MQ0=6;OQ=3065.05;QD=10.87;SB=-490.50	GT:AD:DP:GL:GQ	0/1:131,151:198:-369.43,-59.64,-380.00:99
-chr1	815740	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=388;Dels=0.00;HRun=1;HaplotypeScore=91.19;MQ=33.31;MQ0=8;OQ=203.81;QD=0.53;SB=46.30	GT:AD:DP:GL:GQ	0/1:351,35:273:-111.13,-87.46,-857.56:99
-chr1	815759	.	A	T	981.66	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=425;Dels=0.00;HRun=0;HaplotypeScore=319.89;MQ=33.30;MQ0=16;QD=2.31;SB=-282.31	GT:AD:DP:GL:GQ	0/1:309,70:292:-258.47,-157.02,-944.68:99
-chr1	815760	.	C	A	1978.15	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=424;Dels=0.00;HRun=3;HaplotypeScore=319.89;MQ=33.21;MQ0=16;QD=4.67;SB=-361.60	GT:AD:DP:GL:GQ	0/1:311,113:290:-288.45,-87.35,-755.50:99
-chr1	815761	.	C	A	1757.71	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=422;Dels=0.00;HRun=1;HaplotypeScore=319.47;MQ=33.03;MQ0=16;QD=4.17;SB=-393.48	GT:AD:DP:GL:GQ	0/1:295,112:286:-275.36,-96.30,-763.46:99
-chr1	815762	.	A	G	1602.96	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=423;Dels=0.00;HRun=0;HaplotypeScore=319.57;MQ=33.04;MQ0=16;QD=3.79;SB=-325.52	GT:AD:DP:GL:GQ	0/1:273,113:288:-310.25,-146.67,-857.16:99
-chr1	815765	.	G	A	2936.95	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=427;Dels=0.00;HRun=3;HaplotypeScore=320.41;MQ=33.17;MQ0=17;QD=6.88;SB=-566.97	GT:AD:DP:GL:GQ	0/1:277,150:291:-384.73,-87.75,-614.82:99
-chr1	815777	.	C	T	24.19	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=434;Dels=0.00;HRun=0;HaplotypeScore=73.54;MQ=32.97;MQ0=17;QD=0.06;SB=99.73	GT:AD:DP:GL:GQ	0/1:393,41:292:-93.65,-87.95,-958.63:57.01
-chr1	815780	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=432;Dels=0.00;HRun=1;HaplotypeScore=75.21;MQ=32.79;MQ0=17;OQ=115.11;QD=0.27;SB=79.01	GT:AD:DP:GL:GQ	0/1:399,33:289:-101.84,-87.05,-1076.94:99
-chr1	815810	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=266;Dels=0.00;HRun=3;HaplotypeScore=40.23;MQ=35.68;MQ0=17;OQ=207.08;QD=0.78;SB=-57.21	GT:AD:DP:GL:GQ	0/1:229,35:180:-78.22,-54.22,-636.76:99
-chr1	815845	.	C	G	0.13	PASS	AC=1;AF=0.50;AN=2;DP=104;Dels=0.00;HRun=0;HaplotypeScore=5.72;MQ=49.45;MQ0=9;OQ=487.79;QD=4.69;SB=-262.79	GT:AD:DP:GL:GQ	0/1:68,36:85:-77.68,-25.61,-285.79:99
-chr1	815857	.	T	A	21.33	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=91;Dels=0.00;HRun=0;HaplotypeScore=5.01;MQ=54.04;MQ0=5;QD=0.23;SB=16.48	GT:AD:DP:GL:GQ	0/1:77,14:82:-30.11,-24.70,-281.02:54.14
-chr1	815931	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=153;Dels=0.00;HRun=2;HaplotypeScore=25.80;MQ=41.76;MQ0=34;OQ=413.34;QD=2.70;SB=-90.95	GT:AD:DP:GL:GQ	0/1:89,64:100:-74.74,-30.13,-291.31:99
-chr1	815936	.	T	G	0.05	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=159;Dels=0.00;HRun=0;HaplotypeScore=3.77;MQ=41.51;MQ0=35;OQ=307.08;QD=1.93;SB=-87.61	GT:AD:DP:GL:GQ	0/1:91,68:101:-64.41,-30.42,-308.26:99
-chr1	815949	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=162;Dels=0.00;HRun=1;HaplotypeScore=25.06;MQ=39.71;MQ0=34;OQ=456.33;QD=2.82;SB=-102.31	GT:AD:DP:GL:GQ	0/1:134,28:100:-79.04,-30.12,-319.08:99
-chr1	815979	.	A	G	1177.05	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=164;Dels=0.00;HRun=1;HaplotypeScore=140.50;MQ=42.13;MQ0=3;QD=7.18;SB=-203.16	GT:AD:DP:GL:GQ	0/1:88,76:129:-159.86,-38.87,-326.00:99
-chr1	815980	.	T	C	32.10	DPFilter;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=168;Dels=0.00;HRun=0;HaplotypeScore=144.97;MQ=42.03;MQ0=3;QD=0.19;SB=-40.00	GT:AD:DP:GL:GQ	0/1:145,23:122:-43.25,-36.76,-439.68:64.94
-chr1	815986	.	A	G	296.02	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=181;Dels=0.00;HRun=2;HaplotypeScore=92.41;MQ=40.86;MQ0=3;QD=1.64;SB=-47.33	GT:AD:DP:GL:GQ	0/1:153,28:121:-69.34,-36.45,-404.50:99
-chr1	816000	.	G	A	125.95	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=173;Dels=0.00;HRun=1;HaplotypeScore=82.29;MQ=39.25;MQ0=3;QD=0.73;SB=53.66	GT:AD:DP:GL:GQ	0/1:159,14:109:-48.71,-32.83,-348.18:99
-chr1	816001	.	G	A	216.96	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=171;Dels=0.00;HRun=0;HaplotypeScore=91.06;MQ=39.38;MQ0=3;QD=1.27;SB=50.65	GT:AD:DP:GL:GQ	0/1:127,38:117:-81.21,-56.23,-367.68:99
-chr1	816004	.	G	A	219.09	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=172;Dels=0.00;HRun=0;HaplotypeScore=92.89;MQ=39.19;MQ0=0;QD=1.27;SB=56.64	GT:AD:DP:GL:GQ	0/1:125,47:119:-61.04,-35.85,-362.44:99
-chr1	816007	.	G	A	88.79	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=173;Dels=0.02;HRun=1;HaplotypeScore=88.30;MQ=38.80;MQ0=0;QD=0.51;SB=95.33	GT:AD:DP:GL:GQ	0/1:131,39:117:-47.40,-35.24,-375.36:99
-chr1	816018	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=196;Dels=0.00;HRun=1;HaplotypeScore=112.53;MQ=36.89;MQ0=0;OQ=274.62;QD=1.40;SB=-52.14	GT:AD:DP:GL:GQ	0/1:173,23:109:-63.59,-32.85,-401.41:99
-chr1	816026	.	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=182;Dels=0.00;HRun=0;HaplotypeScore=509.63;MQ=37.96;MQ0=0;OQ=1247.86;QD=6.86;SB=56.18	GT:AD:DP:GL:GQ	0/1:108,73:128:-166.63,-38.56,-316.49:99
-chr1	816043	.	A	G	1178.79	DPFilter;Indel	AC=1;AF=0.50;AN=2;DP=281;Dels=0.00;HRun=0;HaplotypeScore=614.45;MQ=34.94;MQ0=1;QD=4.19;SB=56.21	GT:AD:DP:GL:GQ	0/1:198,83:191:-178.71,-57.55,-539.60:99
-chr1	816057	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=287;Dels=0.00;HRun=0;HaplotypeScore=198.13;MQ=34.34;MQ0=4;OQ=1603.81;QD=5.59;SB=62.23	GT:AD:DP:GL:GQ	0/1:144,109:196:-293.22,-129.56,-512.85:99
-chr1	816072	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=309;Dels=0.00;HRun=0;HaplotypeScore=33.06;MQ=33.48;MQ0=15;OQ=115.32;QD=0.37;SB=71.18	GT:AD:DP:GL:GQ	0/1:282,15:160:-71.44,-56.63,-531.53:99
-chr1	816077	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=299;Dels=0.00;HRun=0;HaplotypeScore=55.33;MQ=33.49;MQ0=15;OQ=4794.59;QD=16.04;SB=68.22	GT:AD:DP:GL:GQ	0/1:81,218:173:-478.46,-52.11,-201.39:99
-chr1	816088	.	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=278;Dels=0.00;HRun=1;HaplotypeScore=51.57;MQ=34.30;MQ0=16;OQ=4463.53;QD=16.06;SB=62.23	GT:AD:DP:GL:GQ	0/1:58,220:169:-445.35,-50.90,-214.04:99
-chr1	816103	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=237;Dels=0.00;HRun=0;HaplotypeScore=38.99;MQ=36.26;MQ0=16;OQ=1889.47;QD=7.97;SB=68.20	GT:AD:DP:GL:GQ	0/1:61,152:117:-237.42,-45.19,-199.18:99
-chr1	816115	.	C	T	1441.66	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=202;Dels=0.00;HRun=0;HaplotypeScore=145.73;MQ=37.27;MQ0=15;QD=7.14;SB=68.18	GT:AD:DP:GL:GQ	0/1:132,70:112:-181.22,-33.77,-214.53:99
-chr1	816118	.	A	T	125.43	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=191;Dels=0.00;HRun=0;HaplotypeScore=164.12;MQ=38.34;MQ0=15;QD=0.66;SB=77.28	GT:AD:DP:GL:GQ	0/1:145,37:109:-58.41,-42.58,-369.08:99
-chr1	816122	.	G	C	132.11	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=182;Dels=0.00;HRun=0;HaplotypeScore=159.96;MQ=38.91;MQ0=15;QD=0.73;SB=80.30	GT:AD:DP:GL:GQ	0/1:155,27:96:-45.43,-28.94,-364.83:99
-chr1	816123	.	A	G	766.79	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=179;Dels=0.00;HRun=1;HaplotypeScore=157.96;MQ=38.91;MQ0=14;QD=4.28;SB=80.30	GT:AD:DP:GL:GQ	0/1:86,89:106:-121.93,-41.97,-306.67:99
-chr1	816140	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=130;Dels=0.00;HRun=2;HaplotypeScore=35.96;MQ=45.77;MQ0=9;OQ=496.37;QD=3.82;SB=92.32	GT:AD:DP:GL:GQ	0/1:81,49:95:-81.53,-28.61,-273.48:99
-chr1	817130	rs2879698	C	T	1.75	PASS	AC=2;AF=1.00;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=7.86;MQ=52.69;MQ0=4;OQ=2390.21;QD=32.30;SB=-1172.34	GT:AD:DP:GL:GQ	1/1:5,69:61:-242.62,-18.38,-0.02:99
-chr1	817140	rs4246498	T	C	134.82	PASS	AC=2;AF=1.00;AN=2;DB;DP=69;Dels=0.00;HRun=0;HaplotypeScore=1.72;MQ=52.12;MQ0=4;OQ=2043.04;QD=29.61;SB=-1026.82	GT:AD:DP:GL:GQ	1/1:0,69:59:-207.91,-17.78,-0.03:99
-chr1	817186	rs4970386	C	T	31.13	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=4.56;MQ=51.33;MQ0=3;OQ=2194.13;QD=35.39;SB=-970.28	GT:AD:DP:GL:GQ	1/1:3,59:55:-223.01,-16.57,-0.01:99
-chr1	819196	rs9778019	G	A	567.53	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=52.32;MQ0=0;OQ=1941.14;QD=39.62;SB=-968.30	GT:AD:DP:GL:GQ	1/1:0,49:49:-197.71,-14.76,-0.01:99
-chr1	819500	rs4437820	C	T	68.03	PASS	AC=2;AF=1.00;AN=2;DB;DP=70;Dels=0.00;HRun=1;HaplotypeScore=1.98;MQ=47.44;MQ0=2;OQ=2599.35;QD=37.13;SB=-1006.03	GT:AD:DP:GL:GQ	1/1:0,70:64:-263.53,-19.28,-0.01:99
-chr1	819787	.	G	A	25.28	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=88;Dels=0.00;HRun=0;HaplotypeScore=9.99;MQ=51.75;MQ0=1;QD=0.29;SB=104.31	GT:AD:DP:GL:GQ	0/1:80,8:75:-28.42,-22.61,-220.79:58.10
-chr1	820044	rs28444699	A	G	2.65	PASS	AC=2;AF=1.00;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=5.59;MQ=55.18;MQ0=2;OQ=1994.05;QD=28.49;SB=-1022.00	GT:AD:DP:GL:GQ	1/1:9,61:60:-210.82,-18.07,-7.83:99
-chr1	820670	rs6422669	G	C	266.94	PASS	AC=2;AF=1.00;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.30;MQ0=1;OQ=1743.26;QD=40.54;SB=-467.22	GT:AD:DP:GL:GQ	1/1:1,42:42:-177.93,-12.66,-0.02:99
-chr1	821139	rs4024798	C	T	0.11	PASS	AC=1;AF=0.50;AN=2;DB;DP=239;Dels=0.00;HRun=1;HaplotypeScore=9.98;MQ=39.26;MQ0=24;OQ=434.25;QD=1.82;SB=23.91	GT:AD:DP:GL:GQ	0/1:189,50:167:-97.03,-50.32,-487.12:99
-chr1	821171	rs477080	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=308;Dels=0.00;HRun=0;HaplotypeScore=33.10;MQ=34.56;MQ0=43;OQ=282.37;QD=0.92;SB=137.47	GT:AD:DP:GL:GQ	0/1:233,75:190:-88.75,-57.23,-688.44:99
-chr1	821352	rs4970385	C	T	0.69	PASS	AC=2;AF=1.00;AN=2;DB;DP=93;Dels=0.00;HRun=0;HaplotypeScore=12.93;MQ=49.51;MQ0=5;OQ=2978.23;QD=32.02;SB=-1308.26	GT:AD:DP:GL:GQ	1/1:14,79:78:-308.32,-23.50,-6.91:99
-chr1	821772	rs9697642	C	T	1.09	PASS	AC=2;AF=1.00;AN=2;DB;DP=69;Dels=0.00;HRun=0;HaplotypeScore=6.48;MQ=53.07;MQ0=1;OQ=2639.96;QD=38.26;SB=-935.74	GT:AD:DP:GL:GQ	1/1:1,68:65:-267.59,-19.58,-0.01:99
-chr1	821923	rs9697378	G	A	628.11	PASS	AC=2;AF=1.00;AN=2;DB;DP=75;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=46.85;MQ0=2;OQ=2615.06;QD=34.87;SB=-1164.40	GT:AD:DP:GL:GQ	1/1:9,66:67:-268.90,-20.18,-3.81:99
-chr1	821929	rs9697380	G	C	204.81	PASS	AC=2;AF=1.00;AN=2;DB;DP=78;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=46.00;MQ0=2;OQ=2952.34;QD=37.85;SB=-1375.91	GT:AD:DP:GL:GQ	1/1:9,69:70:-303.53,-21.09,-4.71:99
-chr1	821975	rs9697725	T	C	60.31	PASS	AC=2;AF=1.00;AN=2;DB;DP=95;Dels=0.00;HRun=0;HaplotypeScore=1.93;MQ=42.31;MQ0=7;OQ=2446.13;QD=25.75;SB=-880.44	GT:AD:DP:GL:GQ	1/1:20,75:74:-256.35,-22.29,-8.15:99
-chr1	822041	rs13302934	A	G	54.22	PASS	AC=2;AF=1.00;AN=2;DB;DP=86;Dels=0.00;HRun=0;HaplotypeScore=1.70;MQ=37.41;MQ0=11;OQ=2291.03;QD=26.64;SB=-1047.92	GT:AD:DP:GL:GQ	1/1:17,69:67:-236.77,-20.18,-4.08:99
-chr1	822181	rs4500250	C	A	165.39	PASS	AC=2;AF=1.00;AN=2;DB;DP=69;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=54.49;MQ0=0;OQ=2287.58;QD=33.15;SB=-1055.56	GT:AD:DP:GL:GQ	1/1:2,67:63:-232.36,-18.97,-0.02:99
-chr1	822261	rs4553118	T	C	105.61	PASS	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.00;HRun=1;HaplotypeScore=0.83;MQ=53.16;MQ0=0;OQ=2074.16;QD=32.41;SB=-1031.91	GT:AD:DP:GL:GQ	1/1:0,64:58:-211.02,-17.47,-0.02:99
-chr1	827077	.	G	C	11.08	PASS	AC=1;AF=0.50;AN=2;DP=55;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1103.43;QD=20.06;SB=-557.74	GT:AD:DP:GL:GQ	0/1:23,32:50:-128.70,-15.07,-86.51:99
-chr1	832688	rs7519340	A	G	206.11	PASS	AC=2;AF=1.00;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=58.92;MQ0=0;OQ=2256.38;QD=34.19;SB=-897.99	GT:AD:DP:GL:GQ	1/1:0,66:64:-229.25,-19.28,-0.02:99
-chr1	833268	rs11516185	A	G	180.02	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=3.49;MQ=58.03;MQ0=0;OQ=720.81;QD=12.65;SB=-270.98	GT:AD:DP:GL:GQ	0/1:24,33:50:-90.45,-15.09,-82.68:99
-chr1	834163	rs61769713	C	G	7.44	PASS	AC=2;AF=1.00;AN=2;DB;DP=12;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=34.66;MQ0=0;OQ=386.18;QD=32.18;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,12:11:-42.22,-3.32,-0.01:33.11
-chr1	834187	rs61769714	G	A	6.81	PASS	AC=2;AF=1.00;AN=2;DB;DP=10;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=34.17;MQ0=0;OQ=258.44;QD=25.84;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,9:8:-29.44,-2.42,-0.01:24.06
-chr1	834206	rs61769715	A	G	21	PASS	AC=2;AF=1.00;AN=2;DB;DP=7;Dels=0.00;HRun=1;HaplotypeScore=0.33;MQ=32.88;MQ0=0;OQ=98.47;QD=14.07;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,7:4:-13.38,-1.21,-0.00:12.03
-chr1	834961	.	T	G	0.56	PASS	AC=2;AF=1.00;AN=2;DP=11;Dels=0.00;HRun=2;HaplotypeScore=0.74;MQ=16.23;MQ0=3;OQ=70.14;QD=6.38;SB=-10.00	GT:AD:DP:GL:GQ	1/1:1,10:3:-10.50,-0.90,-0.00:9.03
-chr1	835146	rs7366404	G	T	7.38	PASS	AC=2;AF=1.00;AN=2;DB;DP=8;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=37.00;MQ0=0;OQ=260.28;QD=32.54;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,8:8:-29.61,-2.41,-0.00:24.08
-chr1	836201	rs4970334	A	G	56.75	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=2.61;MQ=57.95;MQ0=0;OQ=1280.53;QD=26.68;SB=-522.83	GT:AD:DP:GL:GQ	1/1:0,47:43:-131.69,-12.98,-0.05:99
-chr1	836352	rs4970333	T	C	54.39	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=1;HaplotypeScore=1.98;MQ=58.58;MQ0=0;OQ=1607.31;QD=32.80;SB=-789.15	GT:AD:DP:GL:GQ	1/1:0,49:46:-164.33,-13.86,-0.02:99
-chr1	837113	rs7416129	G	A	502.58	PASS	AC=2;AF=1.00;AN=2;DB;DP=86;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.51;MQ0=0;OQ=3431.98;QD=39.91;SB=-1125.99	GT:AD:DP:GL:GQ	1/1:0,85:84:-342.20,-25.31,-0.02:99
-chr1	839861	rs13303222	A	G	170.66	PASS	AC=2;AF=1.00;AN=2;DB;DP=82;Dels=0.00;HRun=0;HaplotypeScore=2.35;MQ=59.09;MQ0=0;OQ=2748.15;QD=33.51;SB=-1203.79	GT:AD:DP:GL:GQ	1/1:0,81:78:-278.43,-23.50,-0.03:99
-chr1	840081	rs6664536	T	A	113.50	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=1;HaplotypeScore=0.93;MQ=58.64;MQ0=0;OQ=1837.58;QD=35.34;SB=-814.88	GT:AD:DP:GL:GQ	1/1:0,52:50:-187.36,-15.06,-0.02:99
-chr1	840234	rs6679046	G	T	614.25	PASS	AC=2;AF=1.00;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.48;MQ0=0;OQ=2550.23;QD=33.56;SB=-1032.51	GT:AD:DP:GL:GQ	1/1:0,76:73:-258.64,-22.00,-0.04:99
-chr1	840643	rs6657440	C	T	589.62	PASS	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.64;MQ0=0;OQ=2334.22;QD=36.47;SB=-836.99	GT:AD:DP:GL:GQ	1/1:0,64:61:-237.03,-18.38,-0.02:99
-chr1	841253	.	G	T	87.70	PASS	AC=1;AF=0.50;AN=2;DP=77;Dels=0.00;HRun=0;HaplotypeScore=2.68;MQ=59.70;MQ0=0;OQ=1174.44;QD=15.25;SB=-547.82	GT:AD:DP:GL:GQ	0/1:37,40:75:-143.32,-22.59,-125.03:99
-chr1	841362	rs4970465	A	G	15.40	PASS	AC=2;AF=1.00;AN=2;DB;DP=65;Dels=0.00;HRun=2;HaplotypeScore=2.07;MQ=60.00;MQ0=0;OQ=1972.18;QD=30.34;SB=-856.55	GT:AD:DP:GL:GQ	1/1:0,65:61:-200.85,-18.39,-0.05:99
-chr1	841500	.	G	C	11.73	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=46;Dels=0.00;HRun=3;HaplotypeScore=11.47;MQ=56.60;MQ0=0;QD=0.26;SB=59.23	GT:AD:DP:GL:GQ	0/1:36,10:33:-14.38,-9.96,-126.72:44.27
-chr1	841620	rs62677860	A	G	51.10	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=1.78;MQ=60.00;MQ0=0;OQ=1201.63;QD=27.31;SB=-317.48	GT:AD:DP:GL:GQ	1/1:0,43:38:-123.78,-11.46,-0.03:99
-chr1	841900	rs4970463	G	A	437.16	PASS	AC=2;AF=1.00;AN=2;DB;DP=32;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.28;MQ0=0;OQ=1176.31;QD=36.76;SB=-508.18	GT:AD:DP:GL:GQ	1/1:0,32:31:-121.23,-9.34,-0.01:93.29
-chr1	841926	rs28436996	G	A	99.38	PASS	AC=2;AF=1.00;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=2.22;MQ=58.05;MQ0=0;OQ=1247.42;QD=34.65;SB=-580.28	GT:AD:DP:GL:GQ	1/1:0,35:33:-128.34,-9.94,-0.01:99
-chr1	841996	rs7518702	C	T	517.92	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1573.23;QD=37.46;SB=-692.34	GT:AD:DP:GL:GQ	1/1:0,41:40:-160.92,-12.05,-0.01:99
-chr1	842738	rs13303369	C	T	76.16	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=3.63;MQ=58.47;MQ0=0;OQ=2145.17;QD=36.99;SB=-908.72	GT:AD:DP:GL:GQ	1/1:0,58:57:-218.13,-17.18,-0.03:99
-chr1	842827	rs4970461	T	G	8.55	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=2;HaplotypeScore=2.36;MQ=59.03;MQ0=0;OQ=1414.13;QD=29.46;SB=-684.25	GT:AD:DP:GL:GQ	1/1:0,48:47:-145.05,-14.17,-0.05:99
-chr1	843817	rs1806509	C	A	190.21	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=0.48;MQ=59.61;MQ0=0;OQ=1993.99;QD=33.80;SB=-878.64	GT:AD:DP:GL:GQ	1/1:0,59:57:-203.01,-17.17,-0.02:99
-chr1	844640	rs13303019	A	G	51.99	PASS	AC=2;AF=1.00;AN=2;DB;DP=29;Dels=0.00;HRun=0;HaplotypeScore=0.63;MQ=59.20;MQ0=0;OQ=644.86;QD=22.24;SB=-345.42	GT:AD:DP:GL:GQ	1/1:0,29:23:-68.11,-6.95,-0.04:69.10
-chr1	844841	rs13303057	A	C	5.18	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=1;HaplotypeScore=1.91;MQ=58.36;MQ0=0;OQ=1059.33;QD=26.48;SB=-412.87	GT:AD:DP:GL:GQ	1/1:0,40:35:-109.55,-10.55,-0.04:99
-chr1	844938	rs6673914	C	G	24.53	PASS	AC=2;AF=1.00;AN=2;DB;DP=28;Dels=0.00;HRun=0;HaplotypeScore=0.48;MQ=58.27;MQ0=0;OQ=1048.92;QD=37.46;SB=-371.18	GT:AD:DP:GL:GQ	1/1:0,28:26:-108.49,-7.84,-0.02:78.26
-chr1	847591	rs6689107	T	G	181.31	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.63;MQ=59.19;MQ0=0;OQ=1848.72;QD=32.43;SB=-803.49	GT:AD:DP:GL:GQ	1/1:0,57:54:-188.48,-16.27,-0.02:99
-chr1	848664	rs7418179	A	G	160.64	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=60.00;MQ0=0;OQ=1692.05;QD=34.53;SB=-783.00	GT:AD:DP:GL:GQ	1/1:0,49:48:-172.81,-14.46,-0.02:99
-chr1	850279	rs61464428	G	A	12.90	PASS	AC=2;AF=1.00;AN=2;DB;DP=10;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=57.66;MQ0=0;OQ=337.99;QD=33.80;SB=-134.01	GT:AD:DP:GL:GQ	1/1:0,10:10:-37.39,-3.02,-0.01:30.09
-chr1	850324	rs57465118	G	A	8.27	PASS	AC=2;AF=1.00;AN=2;DB;DP=9;Dels=0.00;HRun=0;HaplotypeScore=1.05;MQ=54.65;MQ0=0;OQ=218.19;QD=24.24;SB=-48.67	GT:AD:DP:GL:GQ	1/1:0,9:7:-25.40,-2.11,-0.00:21.06
-chr1	850384	rs57924093	C	A	117.02	PASS	AC=2;AF=1.00;AN=2;DB;DP=6;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=50.88;MQ0=0;OQ=151.15;QD=25.19;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,5:5:-18.67,-1.51,-0.00:15.05
-chr1	850551	rs60837925	G	A	175.87	PASS	AC=2;AF=1.00;AN=2;DB;DP=6;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=56.04;MQ0=0;OQ=188.60;QD=31.43;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,6:6:-22.43,-1.81,-0.00:18.06
-chr1	850660	.	G	T	32.80	LowQual	AC=2;AF=1.00;AN=2;DP=2;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=65.19;MQ0=0;QD=16.40;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,2:2:-6.69,-0.60,-0.00:6.02
-chr1	850717	rs57816555	T	C	168.04	PASS	AC=2;AF=1.00;AN=2;DB;DP=5;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=49.96;MQ0=0;OQ=139.82;QD=27.96;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,5:5:-17.54,-1.51,-0.00:15.04
-chr1	850871	rs28521172	G	C	136.83	PASS	AC=2;AF=1.00;AN=2;DB;DP=12;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=56.04;MQ0=0;OQ=409.27;QD=34.11;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,12:11:-44.52,-3.32,-0.00:33.11
-chr1	851493	rs2879816	G	A	181.32	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=1.53;MQ=58.51;MQ0=0;OQ=1761.97;QD=35.24;SB=-837.99	GT:AD:DP:GL:GQ	1/1:0,50:46:-179.80,-13.86,-0.02:99
-chr1	851671	rs13302982	A	G	540.86	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.19;MQ0=0;OQ=1746.20;QD=30.64;SB=-800.68	GT:AD:DP:GL:GQ	1/1:0,57:56:-178.25,-16.89,-0.05:99
-chr1	851956	rs13303291	T	C	0.63	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=5;HaplotypeScore=0.79;MQ=59.54;MQ0=0;OQ=1647.69;QD=32.95;SB=-763.57	GT:AD:DP:GL:GQ	1/1:0,50:48:-168.38,-14.46,-0.02:99
-chr1	851987	rs13303101	A	G	75.91	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=3.28;MQ=58.42;MQ0=0;OQ=1718.71;QD=29.13;SB=-814.55	GT:AD:DP:GL:GQ	1/1:0,59:55:-175.51,-16.59,-0.06:99
-chr1	852246	rs6680268	C	T	87.18	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=58.89;MQ0=0;OQ=1535.86;QD=36.57;SB=-649.38	GT:AD:DP:GL:GQ	1/1:0,42:40:-157.19,-12.05,-0.02:99
-chr1	852252	rs6693546	A	G	8.74	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=3;HaplotypeScore=0.16;MQ=57.97;MQ0=0;OQ=1460.23;QD=31.74;SB=-743.12	GT:AD:DP:GL:GQ	1/1:0,45:42:-149.63,-12.66,-0.02:99
-chr1	852729	rs3892970	C	T	119.55	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=0.83;MQ=60.00;MQ0=0;OQ=1397.63;QD=34.09;SB=-551.29	GT:AD:DP:GL:GQ	1/1:0,41:38:-143.37,-11.46,-0.02:99
-chr1	852987	rs4040604	G	T	33.76	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=1;HaplotypeScore=3.00;MQ=59.28;MQ0=0;OQ=1900.46;QD=32.77;SB=-758.90	GT:AD:DP:GL:GQ	1/1:0,58:55:-193.66,-16.57,-0.02:99
-chr1	853374	rs28626846	T	C	176.60	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=1.52;MQ=56.72;MQ0=0;OQ=383.16;QD=9.12;SB=-198.44	GT:AD:DP:GL:GQ	0/1:24,18:39:-53.37,-11.77,-80.00:99
-chr1	853419	rs7410998	G	A	181.10	PASS	AC=2;AF=1.00;AN=2;DB;DP=25;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=49.05;MQ0=1;OQ=787.22;QD=31.49;SB=-167.67	GT:AD:DP:GL:GQ	1/1:1,24:21:-82.31,-6.33,-0.01:63.20
-chr1	853425	rs7417972	A	C	3.94	PASS	AC=2;AF=1.00;AN=2;DB;DP=33;Dels=0.00;HRun=1;HaplotypeScore=2.00;MQ=51.24;MQ0=1;OQ=853.26;QD=25.86;SB=-413.26	GT:AD:DP:GL:GQ	1/1:1,32:29:-88.94,-8.74,-0.03:87.12
-chr1	853552	rs7417994	A	G	58.67	PASS	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=1.15;MQ=47.89;MQ0=0;OQ=1045.12;QD=27.50;SB=-347.41	GT:AD:DP:GL:GQ	1/1:0,38:34:-108.13,-10.26,-0.03:99
-chr1	854589	rs2340590	T	A	319.49	PASS	AC=2;AF=1.00;AN=2;DB;DP=31;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.35;MQ0=0;OQ=1082.41;QD=34.92;SB=-267.73	GT:AD:DP:GL:GQ	1/1:0,31:30:-111.84,-9.04,-0.02:90.27
-chr1	854618	rs2340589	A	G	2.04	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=4;HaplotypeScore=0.00;MQ=57.47;MQ0=0;OQ=1104.04;QD=28.31;SB=-284.44	GT:AD:DP:GL:GQ	1/1:0,39:37:-114.04,-11.17,-0.05:99
-chr1	854620	rs2340588	G	A	306.13	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.47;MQ0=0;OQ=1407.34;QD=36.09;SB=-288.88	GT:AD:DP:GL:GQ	1/1:0,39:36:-144.33,-10.85,-0.01:99
-chr1	854801	.	G	A	27.13	PASS	AC=2;AF=1.00;AN=2;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.10;MQ=59.52;MQ0=0;OQ=1814.99;QD=37.81;SB=-848.99	GT:AD:DP:GL:GQ	1/1:0,48:46:-185.10,-13.86,-0.01:99
-chr1	856182	rs9988021	G	A	414.08	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.52;MQ0=0;OQ=1807.60;QD=37.66;SB=-511.65	GT:AD:DP:GL:GQ	1/1:0,48:47:-184.36,-14.16,-0.02:99
-chr1	856756	rs2880024	T	C	439.96	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=57.61;MQ0=0;OQ=1661.89;QD=33.92;SB=-660.32	GT:AD:DP:GL:GQ	1/1:0,49:47:-169.79,-14.16,-0.01:99
-chr1	856783	rs2341361	A	G	391.16	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.49;MQ0=0;OQ=1555.14;QD=34.56;SB=-535.20	GT:AD:DP:GL:GQ	1/1:0,45:44:-159.12,-13.26,-0.02:99
-chr1	857447	rs2341360	A	T	453.14	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1951.43;QD=37.53;SB=-755.79	GT:AD:DP:GL:GQ	1/1:0,51:51:-198.74,-15.36,-0.01:99
-chr1	858192	rs2341359	A	C	117.47	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=2.42;MQ=55.20;MQ0=0;OQ=1194.83;QD=30.64;SB=-603.64	GT:AD:DP:GL:GQ	1/1:0,39:36:-123.08,-10.85,-0.02:99
-chr1	858267	rs13302914	C	T	413.34	PASS	AC=2;AF=1.00;AN=2;DB;DP=35;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=56.75;MQ0=0;OQ=1181.60;QD=33.76;SB=-589.79	GT:AD:DP:GL:GQ	1/1:0,35:32:-121.76,-9.65,-0.02:96.30
-chr1	858654	rs13303003	C	T	431.96	PASS	AC=2;AF=1.00;AN=2;DB;DP=25;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=892.14;QD=35.69;SB=-459.35	GT:AD:DP:GL:GQ	1/1:1,24:23:-92.80,-6.93,-0.01:69.23
-chr1	858754	rs13303066	A	G	117.57	PASS	AC=2;AF=1.00;AN=2;DB;DP=35;Dels=0.00;HRun=0;HaplotypeScore=1.78;MQ=59.96;MQ0=0;OQ=1127.68;QD=32.22;SB=-537.22	GT:AD:DP:GL:GQ	1/1:0,35:32:-116.36,-9.64,-0.01:96.29
-chr1	858844	rs13303037	C	T	239.71	PASS	AC=2;AF=1.00;AN=2;DB;DP=26;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.36;MQ0=0;OQ=920.18;QD=35.39;SB=-178.71	GT:AD:DP:GL:GQ	1/1:0,26:25:-95.62,-7.54,-0.02:75.23
-chr1	859186	rs13303207	T	C	5.25	PASS	AC=2;AF=1.00;AN=2;DB;DP=27;Dels=0.00;HRun=2;HaplotypeScore=1.75;MQ=49.46;MQ0=0;OQ=860.62;QD=31.87;SB=-321.13	GT:AD:DP:GL:GQ	1/1:0,27:25:-89.66,-7.53,-0.01:75.22
-chr1	859220	.	G	T	15.33	LowQual	AC=1;AF=0.50;AN=2;DP=21;Dels=0.00;HRun=0;HaplotypeScore=1.46;MQ=44.47;MQ0=0;QD=0.73;SB=-4.00	GT:AD:DP:GL:GQ	0/1:18,3:16:-9.63,-4.82,-45.13:48.04
-chr1	859232	rs13303328	G	T	26.22	PASS	AC=1;AF=0.50;AN=2;DB;DP=15;Dels=0.00;HRun=0;HaplotypeScore=1.16;MQ=42.12;MQ0=0;OQ=238.10;QD=15.87;SB=-41.94	GT:AD:DP:GL:GQ	0/1:4,11:12:-30.71,-3.62,-8.58:49.58
-chr1	859236	rs13303330	G	C	2.57	PASS	AC=1;AF=0.50;AN=2;DB;DP=15;Dels=0.00;HRun=1;HaplotypeScore=1.16;MQ=42.12;MQ0=0;OQ=289.97;QD=19.33;SB=-45.46	GT:AD:DP:GL:GQ	0/1:4,11:11:-35.60,-3.32,-10.54:72.26
-chr1	859264	rs13303353	G	C	17.54	PASS	AC=1;AF=0.50;AN=2;DB;DP=12;Dels=0.00;HRun=1;HaplotypeScore=1.00;MQ=37.87;MQ0=1;OQ=164.66;QD=13.72;SB=-10.00	GT:AD:DP:GL:GQ	0/1:5,7:8:-22.16,-2.41,-12.54:99
-chr1	859992	.	G	C	97.38	PASS	AC=2;AF=1.00;AN=2;DP=9;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=19.96;MQ0=0;OQ=93.52;QD=10.39;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,9:3:-12.84,-0.90,-0.00:9.03
-chr1	860032	.	G	T	37.54	PASS	AC=2;AF=1.00;AN=2;DP=13;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=18.43;MQ0=0;OQ=70.96;QD=5.46;SB=-10.00	GT:AD:DP:GL:GQ	1/1:8,5:3:-10.58,-0.90,-0.00:9.03
-chr1	860180	rs28451560	G	A	12.62	PASS	AC=2;AF=1.00;AN=2;DB;DP=4;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=53.95;MQ0=0;OQ=73.11;QD=18.28;SB=-10.00	GT:AD:DP:GL:GQ	1/1:1,3:3:-10.80,-0.90,-0.00:9.03
-chr1	860766	rs13303094	T	C	16.65	PASS	AC=2;AF=1.00;AN=2;DB;DP=28;Dels=0.00;HRun=0;HaplotypeScore=2.36;MQ=59.17;MQ0=0;OQ=826.94;QD=29.53;SB=-125.69	GT:AD:DP:GL:GQ	1/1:0,28:25:-86.29,-7.54,-0.02:75.20
-chr1	861197	rs4072383	G	T	400.06	PASS	AC=2;AF=1.00;AN=2;DB;DP=24;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.63;MQ0=0;OQ=731.30;QD=30.47;SB=-355.85	GT:AD:DP:GL:GQ	1/1:0,24:22:-76.73,-6.63,-0.01:66.18
-chr1	861546	rs4504834	G	A	1.38	PASS	AC=2;AF=1.00;AN=2;DB;DP=10;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=53.70;MQ0=0;OQ=257.15;QD=25.71;SB=-133.67	GT:AD:DP:GL:GQ	1/1:0,10:8:-29.30,-2.41,-0.01:24.07
-chr1	863421	rs1110052	G	T	380.03	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.84;MQ0=0;OQ=1308.42;QD=32.71;SB=-530.08	GT:AD:DP:GL:GQ	1/1:0,40:39:-134.45,-11.76,-0.03:99
-chr1	865499	.	C	T	29.46	LowQual	AC=1;AF=0.50;AN=2;DP=6;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=56.04;MQ0=0;QD=4.91;SB=-10.00	GT:AD:DP:GL:GQ	0/1:4,2:5:-7.74,-1.51,-8.99:62.30
-chr1	865506	rs7411115	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=5;Dels=0.00;HRun=4;HaplotypeScore=0.00;MQ=55.21;MQ0=0;OQ=112.00;QD=22.40;SB=-10.00	GT:AD:DP:GL:GQ	0/1:1,4:5:-15.99,-1.51,-3.39:18.84
-chr1	866063	.	G	C	0.28	PASS	AC=1;AF=0.50;AN=2;DP=32;Dels=0.00;HRun=1;HaplotypeScore=1.80;MQ=60.00;MQ0=0;OQ=689.42;QD=21.54;SB=-257.43	GT:AD:DP:GL:GQ	0/1:12,20:31:-81.58,-9.35,-46.59:99
-chr1	866362	rs4372192	A	G	0.01	FDRtranche2.00to10.00	AC=2;AF=1.00;AN=2;DB;DP=32;Dels=0.00;HRun=6;HaplotypeScore=0.89;MQ=56.86;MQ0=0;OQ=933.15;QD=29.16;SB=-432.49	GT:AD:DP:GL:GQ	1/1:0,31:29:-96.92,-8.74,-0.02:87.21
-chr1	867578	rs6605066	C	G	7.06	PASS	AC=2;AF=1.00;AN=2;DB;DP=3;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=93.52;QD=31.17;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,3:3:-12.84,-0.90,-0.00:9.03
-chr1	867694	rs6672356	T	C	3.72	PASS	AC=2;AF=1.00;AN=2;DB;DP=3;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=52.96;QD=17.65;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,3:3:-8.79,-0.91,-0.01:9.01
-chr1	868792	.	G	C	15.78	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=42;Dels=0.02;HRun=2;HaplotypeScore=22.45;MQ=51.57;MQ0=2;QD=0.38;SB=59.22	GT:AD:DP:GL:GQ	0/1:36,4:34:-14.81,-9.96,-119.24:48.50
-chr1	869539	rs6605067	G	A	19.27	PASS	AC=2;AF=1.00;AN=2;DB;DP=56;Dels=0.00;HRun=3;HaplotypeScore=0.58;MQ=56.16;MQ0=0;OQ=2221.47;QD=39.67;SB=-1054.70	GT:AD:DP:GL:GQ	1/1:0,56:55:-225.74,-16.57,-0.01:99
-chr1	869550	rs2839	T	C	133.50	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=1;HaplotypeScore=0.58;MQ=56.64;MQ0=0;OQ=2001.68;QD=34.51;SB=-1024.77	GT:AD:DP:GL:GQ	1/1:0,58:57:-203.78,-17.17,-0.02:99
-chr1	870101	rs3748592	A	G	495.56	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.39;MQ0=0;OQ=1890.23;QD=34.37;SB=-862.36	GT:AD:DP:GL:GQ	1/1:0,55:54:-192.63,-16.27,-0.02:99
-chr1	871490	rs2272757	G	A	6.94	PASS	AC=2;AF=1.00;AN=2;DB;DP=37;Dels=0.00;HRun=1;HaplotypeScore=2.19;MQ=57.04;MQ0=0;OQ=1394.54;QD=37.69;SB=-510.64	GT:AD:DP:GL:GQ	1/1:0,37:36:-143.05,-10.85,-0.01:99
-chr1	872666	rs2340582	A	G	42.12	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=4.34;MQ=59.14;MQ0=0;OQ=1872.55;QD=34.68;SB=-917.03	GT:AD:DP:GL:GQ	1/1:0,54:54:-190.86,-16.27,-0.02:99
-chr1	873488	rs4970378	A	G	248.98	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.09;MQ0=0;OQ=1449.35;QD=35.35;SB=-732.23	GT:AD:DP:GL:GQ	1/1:0,41:41:-148.53,-12.35,-0.01:99
-chr1	873762	.	T	G	3.38	PASS	AC=1;AF=0.50;AN=2;DP=48;Dels=0.00;HRun=2;HaplotypeScore=3.82;MQ=57.58;MQ0=0;OQ=623.05;QD=12.98;SB=-319.82	GT:AD:DP:GL:GQ	0/1:24,24:47:-79.75,-14.16,-84.17:99
-chr1	873892	.	A	C	58.62	SnpCluster	AC=1;AF=0.50;AN=2;DP=28;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=53.03;MQ0=0;QD=2.09;SB=-41.91	GT:AD:DP:GL:GQ	0/1:23,5:28:-17.58,-8.43,-82.84:91.46
-chr1	873894	.	C	T	82.90	SnpCluster	AC=1;AF=0.50;AN=2;DP=28;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=53.03;MQ0=0;QD=2.96;SB=-56.23	GT:AD:DP:GL:GQ	0/1:23,5:28:-20.01,-8.43,-84.10:99
-chr1	873895	.	C	T	48.24	LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=31;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=51.20;MQ0=0;QD=1.56;SB=-25.58	GT:AD:DP:GL:GQ	0/1:26,5:28:-16.54,-8.43,-88.26:81.07
-chr1	873901	.	T	G	115.57	SnpCluster	AC=1;AF=0.50;AN=2;DP=33;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=50.52;MQ0=0;QD=3.50;SB=-81.81	GT:AD:DP:GL:GQ	0/1:26,7:33:-24.78,-9.94,-99.02:99
-chr1	873954	rs7522415	C	G	8.33	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=1;HaplotypeScore=1.52;MQ=43.40;MQ0=0;OQ=1100.42;QD=22.93;SB=-415.98	GT:AD:DP:GL:GQ	0/1:16,32:45:-126.89,-13.56,-66.90:99
-chr1	873964	rs4970455	A	C	1.05	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=3;HaplotypeScore=2.44;MQ=43.46;MQ0=0;OQ=358.55;QD=6.77;SB=-63.88	GT:AD:DP:GL:GQ	0/1:38,15:50:-54.21,-15.07,-122.51:99
-chr1	874630	.	G	A	13.69	PASS	AC=1;AF=0.50;AN=2;DP=46;Dels=0.00;HRun=0;HaplotypeScore=1.57;MQ=47.61;MQ0=0;OQ=1000.31;QD=21.75;SB=-485.51	GT:AD:DP:GL:GQ	0/1:17,29:46:-117.17,-13.86,-57.54:99
-chr1	874678	rs4246503	A	G	158.46	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=1.31;MQ=55.11;MQ0=0;OQ=1771.59;QD=30.03;SB=-814.69	GT:AD:DP:GL:GQ	1/1:0,59:55:-180.79,-16.58,-0.04:99
-chr1	875539	rs4970377	C	A	535.35	PASS	AC=2;AF=1.00;AN=2;DB;DP=73;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=57.40;MQ0=0;OQ=2636.42;QD=36.12;SB=-1177.36	GT:AD:DP:GL:GQ	1/1:1,72:71:-267.24,-21.38,-0.02:99
-chr1	875552	rs4970452	G	A	0.79	PASS	AC=2;AF=1.00;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=10.99;MQ=56.01;MQ0=0;OQ=2730.82;QD=37.93;SB=-1364.34	GT:AD:DP:GL:GQ	1/1:1,71:70:-276.69,-21.09,-0.03:99
-chr1	875562	rs4970376	A	G	1.74	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=9.96;MQ=55.41;MQ0=0;OQ=2063.84;QD=30.35;SB=-1045.24	GT:AD:DP:GL:GQ	1/1:1,67:64:-210.02,-19.30,-0.05:99
-chr1	875869	rs4970375	T	C	458.99	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=54.16;MQ0=0;OQ=1904.11;QD=35.26;SB=-492.54	GT:AD:DP:GL:GQ	1/1:0,54:53:-194.01,-15.96,-0.01:99
-chr1	876651	rs10465242	G	A	37.22	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=1;HaplotypeScore=1.82;MQ=58.78;MQ0=0;OQ=1853.33;QD=37.07;SB=-743.49	GT:AD:DP:GL:GQ	1/1:0,50:47:-188.93,-14.16,-0.01:99
-chr1	876680	rs10465241	C	T	139.09	PASS	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=59.51;MQ0=0;OQ=1420.84;QD=37.39;SB=-598.99	GT:AD:DP:GL:GQ	1/1:0,38:38:-145.68,-11.45,-0.02:99
-chr1	877423	rs3748595	A	C	60.20	PASS	AC=2;AF=1.00;AN=2;DB;DP=60;Dels=0.00;HRun=1;HaplotypeScore=1.58;MQ=58.73;MQ0=0;OQ=1913.10;QD=31.88;SB=-946.06	GT:AD:DP:GL:GQ	1/1:0,60:56:-194.92,-16.87,-0.02:99
-chr1	877664	rs3828047	A	G	27.25	PASS	AC=2;AF=1.00;AN=2;DB;DP=37;Dels=0.00;HRun=1;HaplotypeScore=1.65;MQ=59.38;MQ0=0;OQ=1254.26;QD=33.90;SB=-513.49	GT:AD:DP:GL:GQ	1/1:0,37:36:-129.02,-10.84,-0.01:99
-chr1	878502	rs3748596	T	C	69.46	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=1;HaplotypeScore=0.48;MQ=55.26;MQ0=0;OQ=1390.46;QD=33.11;SB=-577.30	GT:AD:DP:GL:GQ	1/1:0,42:41:-142.65,-12.35,-0.02:99
-chr1	878522	rs3748597	T	C	420.43	PASS	AC=2;AF=1.00;AN=2;DB;DP=35;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=57.43;MQ0=0;OQ=1101.61;QD=31.47;SB=-433.56	GT:AD:DP:GL:GQ	1/1:0,35:33:-113.76,-9.94,-0.02:99
-chr1	879021	rs56262069	G	C	15.32	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=1;HaplotypeScore=0.89;MQ=60.00;MQ0=0;OQ=1649.51;QD=39.27;SB=-490.55	GT:AD:DP:GL:GQ	1/1:0,42:39:-168.56,-11.76,-0.02:99
-chr1	879022	rs13302945	A	C	102.46	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=1.05;MQ=60.00;MQ0=0;OQ=1299.59;QD=30.94;SB=-461.34	GT:AD:DP:GL:GQ	1/1:0,42:39:-133.56,-11.75,-0.02:99
-chr1	879501	rs13303206	G	C	38.13	PASS	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=0.96;MQ=58.78;MQ0=0;OQ=1536.75;QD=40.44;SB=-636.90	GT:AD:DP:GL:GQ	1/1:0,38:37:-157.27,-11.15,-0.01:99
-chr1	879576	rs13303051	C	A	192.55	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=1.48;MQ=59.05;MQ0=0;OQ=1663.22;QD=33.94;SB=-850.81	GT:AD:DP:GL:GQ	1/1:1,48:46:-169.92,-13.85,-0.01:99
-chr1	880884	rs13302957	G	A	138.98	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=1.43;MQ=59.32;MQ0=0;OQ=2228.59;QD=40.52;SB=-1097.37	GT:AD:DP:GL:GQ	1/1:0,55:55:-226.45,-16.57,-0.01:99
-chr1	880922	rs13303065	C	T	237.80	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.63;MQ0=0;OQ=2022.89;QD=39.66;SB=-914.68	GT:AD:DP:GL:GQ	1/1:0,51:51:-205.89,-15.36,-0.01:99
-chr1	881808	rs13303106	A	G	3.31	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=1;HaplotypeScore=3.33;MQ=59.21;MQ0=0;OQ=1343.98;QD=25.36;SB=-644.88	GT:AD:DP:GL:GQ	1/1:0,53:43:-138.03,-12.97,-0.04:99
-chr1	882608	rs13303227	G	A	569.43	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2091.00;QD=38.72;SB=-899.68	GT:AD:DP:GL:GQ	1/1:0,54:53:-212.70,-15.97,-0.01:99
-chr1	883143	rs4970371	G	A	143.48	PASS	AC=2;AF=1.00;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=2.54;MQ=57.73;MQ0=0;OQ=2249.45;QD=37.49;SB=-940.26	GT:AD:DP:GL:GQ	1/1:0,60:57:-228.55,-17.17,-0.02:99
-chr1	883494	rs6605069	A	G	58.53	PASS	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.00;HRun=1;HaplotypeScore=1.99;MQ=58.62;MQ0=0;OQ=2094.43;QD=32.73;SB=-870.68	GT:AD:DP:GL:GQ	1/1:0,64:60:-213.05,-18.07,-0.02:99
-chr1	883582	rs4970445	G	A	189.37	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=59.14;MQ0=0;OQ=1807.99;QD=33.48;SB=-798.52	GT:AD:DP:GL:GQ	1/1:1,53:49:-184.42,-14.78,-0.04:99
-chr1	884436	rs13303010	G	A	1.14	PASS	AC=2;AF=1.00;AN=2;DB;DP=17;Dels=0.00;HRun=0;HaplotypeScore=3.16;MQ=58.63;MQ0=0;OQ=585.11;QD=34.42;SB=-52.67	GT:AD:DP:GL:GQ	1/1:0,17:16:-62.10,-4.82,-0.01:48.15
-chr1	885569	rs13303327	G	A	161.74	PASS	AC=2;AF=1.00;AN=2;DB;DP=20;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=61.07;MQ0=0;OQ=743.89;QD=37.19;SB=-245.00	GT:AD:DP:GL:GQ	1/1:0,20:20:-77.98,-6.03,-0.01:60.19
-chr1	887188	rs4970441	G	C	2.34	PASS	AC=2;AF=1.00;AN=2;DB;DP=19;Dels=0.00;HRun=1;HaplotypeScore=0.97;MQ=60.00;MQ0=0;OQ=753.54;QD=39.66;SB=-289.25	GT:AD:DP:GL:GQ	1/1:0,19:18:-78.95,-5.42,-0.01:54.18
-chr1	887427	rs13303229	T	C	257.67	PASS	AC=2;AF=1.00;AN=2;DB;DP=36;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1210.82;QD=33.63;SB=-286.61	GT:AD:DP:GL:GQ	1/1:0,36:36:-124.69,-10.85,-0.02:99
-chr1	888186	rs6605071	T	C	17.61	PASS	AC=2;AF=1.00;AN=2;DB;DP=35;Dels=0.00;HRun=1;HaplotypeScore=3.35;MQ=58.67;MQ0=0;OQ=1185.73;QD=33.88;SB=-618.22	GT:AD:DP:GL:GQ	1/1:0,35:34:-122.17,-10.24,-0.01:99
-chr1	889791	rs6677386	G	C	245.35	SnpCluster	AC=2;AF=1.00;AN=2;DB;DP=15;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=39.71;MQ0=0;QD=16.36;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,15:8:-28.14,-2.43,-0.02:24.07
-chr1	889800	.	G	T	344.36	SnpCluster	AC=2;AF=1.00;AN=2;DP=12;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=39.12;MQ0=0;QD=28.70;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,12:11:-38.03,-3.31,-0.01:33.08
-chr1	889801	.	G	C	465.29	SnpCluster	AC=2;AF=1.00;AN=2;DP=12;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=39.12;MQ0=0;QD=38.77;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,12:11:-50.12,-3.31,-0.00:33.11
-chr1	889805	.	G	A	501.88	SnpCluster	AC=2;AF=1.00;AN=2;DP=15;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=39.71;MQ0=0;QD=33.46;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,15:14:-53.78,-4.22,-0.01:42.13
-chr1	889852	rs6669071	A	C	11.50	PASS	AC=2;AF=1.00;AN=2;DB;DP=12;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=44.10;MQ0=0;OQ=318.72;QD=26.56;SB=-44.57	GT:AD:DP:GL:GQ	1/1:0,12:11:-35.46,-3.31,-0.01:33.07
-chr1	889864	rs28754834	G	A	283.84	Indel	AC=2;AF=1.00;AN=2;DB;DP=9;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=44.79;MQ0=0;QD=31.54;SB=-93.34	GT:AD:DP:GL:GQ	1/1:0,9:8:-31.97,-2.41,-0.00:24.08
-chr1	889872	rs6704181	C	G	264.94	Indel	AC=2;AF=1.00;AN=2;DB;DP=8;Dels=0.00;HRun=6;HaplotypeScore=0.00;MQ=42.50;MQ0=0;QD=33.12;SB=-56.93	GT:AD:DP:GL:GQ	1/1:0,8:7:-30.07,-2.11,-0.00:21.07
-chr1	890148	rs4970435	C	T	1.99	PASS	AC=2;AF=1.00;AN=2;DB;DP=30;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=54.37;MQ0=0;OQ=1059.65;QD=35.32;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,29:28:-109.56,-8.43,-0.01:84.27
-chr1	890149	rs4970434	A	G	1.27	PASS	AC=2;AF=1.00;AN=2;DB;DP=30;Dels=0.00;HRun=1;HaplotypeScore=0.99;MQ=54.37;MQ0=0;OQ=1048.98;QD=34.97;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,30:29:-108.49,-8.74,-0.01:87.27
-chr1	890161	.	C	G	0.39	PASS	AC=1;AF=0.50;AN=2;DP=37;Dels=0.00;HRun=1;HaplotypeScore=2.89;MQ=54.80;MQ0=0;OQ=464.33;QD=12.55;SB=-10.00	GT:AD:DP:GL:GQ	0/1:16,21:31:-59.09,-9.37,-60.44:99
-chr1	890593	rs3935066	G	A	1827.67	Indel	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.83;MQ=54.80;MQ0=0;QD=38.08;SB=-380.50	GT:AD:DP:GL:GQ	1/1:0,48:46:-186.37,-13.86,-0.02:99
-chr1	890835	rs9697711	T	G	5.70	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=1;HaplotypeScore=3.09;MQ=57.77;MQ0=0;OQ=1087.73;QD=27.19;SB=-563.56	GT:AD:DP:GL:GQ	1/1:0,40:34:-112.38,-10.25,-0.03:99
-chr1	890886	rs13303351	T	C	4.74	PASS	AC=2;AF=1.00;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=5.09;MQ=56.17;MQ0=0;OQ=1868.96;QD=27.89;SB=-762.95	GT:AD:DP:GL:GQ	1/1:0,67:61:-190.56,-18.41,-0.08:99
-chr1	891422	rs13303160	G	A	335.14	PASS	AC=2;AF=1.00;AN=2;DB;DP=26;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.11;MQ0=0;OQ=1009.81;QD=38.84;SB=-456.35	GT:AD:DP:GL:GQ	1/1:0,26:26:-104.57,-7.83,-0.01:78.26
-chr1	891470	rs13302996	C	G	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=6;HaplotypeScore=0.00;MQ=58.81;MQ0=0;OQ=1288.09;QD=33.03;SB=-383.20	GT:AD:DP:GL:GQ	1/1:0,39:34:-132.43,-10.27,-0.04:99
-chr1	891515	rs2879814	A	G	4.78	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=1;HaplotypeScore=3.80;MQ=59.05;MQ0=0;OQ=1360.05;QD=30.91;SB=-420.15	GT:AD:DP:GL:GQ	1/1:0,44:40:-139.61,-12.06,-0.03:99
-chr1	892627	rs28416780	C	G	985.40	Indel	AC=2;AF=1.00;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=3.73;MQ=60.94;MQ0=0;QD=29.86;SB=-516.60	GT:AD:DP:GL:GQ	1/1:0,33:26:-102.16,-7.86,-0.03:78.25
-chr1	892860	rs7524174	G	A	607.69	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.60;MQ0=0;OQ=2039.21;QD=35.78;SB=-884.69	GT:AD:DP:GL:GQ	1/1:0,57:52:-207.52,-15.67,-0.02:99
-chr1	893108	rs28690976	A	G	19.77	PASS	AC=2;AF=1.00;AN=2;DB;DP=37;Dels=0.00;HRun=2;HaplotypeScore=1.31;MQ=59.50;MQ0=0;OQ=1221.87;QD=33.02;SB=-508.55	GT:AD:DP:GL:GQ	1/1:0,37:34:-125.78,-10.24,-0.01:99
-chr1	893184	rs6669800	G	A	536.30	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.56;MQ0=0;OQ=1821.94;QD=35.04;SB=-645.66	GT:AD:DP:GL:GQ	1/1:0,52:47:-185.80,-14.16,-0.02:99
-chr1	895023	rs7555426	C	T	0.47	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.03;HRun=0;HaplotypeScore=12.36;MQ=55.36;MQ0=0;OQ=2346.52;QD=37.25;SB=-860.64	GT:AD:DP:GL:GQ	1/1:0,60:62:-238.26,-18.08,-0.02:99
-chr1	895028	rs7522959	A	G	167.42	PASS	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=2.37;MQ=55.43;MQ0=0;OQ=2120.68;QD=33.14;SB=-824.97	GT:AD:DP:GL:GQ	1/1:0,63:62:-215.68,-18.68,-0.03:99
-chr1	899282	rs28548431	C	T	198.63	PASS	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=1.16;MQ=59.43;MQ0=0;OQ=508.80;QD=15.42;SB=-237.75	GT:AD:DP:GL:GQ	0/1:15,18:31:-63.51,-9.35,-46.57:99
-chr1	899418	rs2340594	A	G	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=6;HaplotypeScore=0.00;MQ=59.44;MQ0=0;OQ=1231.29;QD=30.03;SB=-602.23	GT:AD:DP:GL:GQ	1/1:0,41:40:-126.75,-12.06,-0.03:99
-chr1	899631	rs2340593	A	G	106.26	PASS	AC=2;AF=1.00;AN=2;DB;DP=31;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1110.83;QD=35.83;SB=-387.48	GT:AD:DP:GL:GQ	1/1:0,31:31:-114.68,-9.34,-0.01:93.28
-chr1	900257	rs28477686	C	T	200.51	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=716.99;QD=16.30;SB=-337.87	GT:AD:DP:GL:GQ	0/1:20,24:40:-87.03,-12.05,-62.41:99
-chr1	900301	rs6685581	A	G	61.67	PASS	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=2.38;MQ=58.90;MQ0=0;OQ=1025.59;QD=26.99;SB=-469.48	GT:AD:DP:GL:GQ	1/1:0,38:34:-106.18,-10.26,-0.04:99
-chr1	900766	rs4970429	T	C	21.40	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=1;HaplotypeScore=0.63;MQ=60.00;MQ0=0;OQ=1255.50;QD=27.90;SB=-520.11	GT:AD:DP:GL:GQ	1/1:0,45:41:-129.18,-12.37,-0.04:99
-chr1	901458	rs7417106	A	G	62.69	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=56.69;MQ0=0;OQ=1131.68;QD=22.63;SB=-392.29	GT:AD:DP:GL:GQ	1/1:0,48:37:-116.79,-11.16,-0.04:99
-chr1	901912	rs9803103	T	C	68.99	PASS	AC=1;AF=0.50;AN=2;DB;DP=15;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.16;MQ0=0;OQ=72.78;QD=4.85;SB=-10.00	GT:AD:DP:GL:GQ	0/1:10,5:15:-15.08,-4.52,-39.48:99
-chr1	901966	rs9803017	G	A	5.21	PASS	AC=2;AF=1.00;AN=2;DB;DP=7;Dels=0.00;HRun=0;HaplotypeScore=1.95;MQ=48.89;MQ0=0;OQ=164.19;QD=23.46;SB=-10.00	GT:AD:DP:GL:GQ	1/1:2,5:5:-19.98,-1.51,-0.00:15.05
-chr1	903262	.	C	T	47.02	LowQual	AC=2;AF=1.00;AN=2;DP=2;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=47.12;MQ0=0;QD=23.51;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,2:2:-8.11,-0.60,-0.00:6.02
-chr1	903752	rs2340596	G	A	213.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=34;Dels=0.00;HRun=0;HaplotypeScore=1.79;MQ=58.63;MQ0=0;OQ=437.08;QD=12.86;SB=-239.73	GT:AD:DP:GL:GQ	0/1:19,15:34:-57.25,-10.26,-59.16:99
-chr1	904055	rs2340595	G	C	462.22	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.45;MQ0=0;OQ=1540.41;QD=36.68;SB=-743.79	GT:AD:DP:GL:GQ	1/1:0,42:38:-157.65,-11.46,-0.02:99
-chr1	904196	rs13302979	C	G	14.38	PASS	AC=1;AF=0.50;AN=2;DB;DP=20;Dels=0.00;HRun=2;HaplotypeScore=1.72;MQ=60.00;MQ0=0;OQ=238.96;QD=11.95;SB=-110.33	GT:AD:DP:GL:GQ	0/1:12,8:19:-32.91,-5.73,-43.20:99
-chr1	904715	rs13303368	G	C	150.50	PASS	AC=1;AF=0.50;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=2.46;MQ=58.83;MQ0=0;OQ=429.52;QD=11.93;SB=-165.16	GT:AD:DP:GL:GQ	0/1:21,15:34:-56.48,-10.25,-87.94:99
-chr1	904739	rs13302983	T	C	1.98	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=1;HaplotypeScore=3.25;MQ=59.49;MQ0=0;OQ=1146.65;QD=25.48;SB=-382.24	GT:AD:DP:GL:GQ	1/1:0,45:37:-118.29,-11.16,-0.04:99
-chr1	904803	rs13303033	T	C	97.04	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=3.63;MQ=59.44;MQ0=0;OQ=505.70;QD=12.33;SB=-138.55	GT:AD:DP:GL:GQ	0/1:20,21:40:-65.92,-12.07,-67.38:99
-chr1	905090	rs13303355	A	G	1.94	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=8.34;MQ=56.14;MQ0=0;OQ=1675.03;QD=29.39;SB=-822.95	GT:AD:DP:GL:GQ	1/1:1,56:50:-171.12,-15.07,-0.03:99
-chr1	906412	rs6660139	A	G	108.89	PASS	AC=1;AF=0.50;AN=2;DB;DP=34;Dels=0.00;HRun=0;HaplotypeScore=0.48;MQ=60.00;MQ0=0;OQ=506.06;QD=14.88;SB=-146.57	GT:AD:DP:GL:GQ	0/1:14,20:33:-63.84,-9.95,-51.10:99
-chr1	906453	rs28566954	G	A	282.05	PASS	AC=1;AF=0.50;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=59.36;MQ0=0;OQ=491.61;QD=13.66;SB=-253.24	GT:AD:DP:GL:GQ	0/1:20,16:35:-62.99,-10.55,-63.70:99
-chr1	906697	rs6694632	G	A	262.48	PASS	AC=1;AF=0.50;AN=2;DB;DP=31;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=59.25;MQ0=0;OQ=424.41;QD=13.69;SB=-233.73	GT:AD:DP:GL:GQ	0/1:16,15:29:-54.46,-8.74,-53.31:99
-chr1	906923	rs6605058	C	G	4.01	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=2;HaplotypeScore=0.32;MQ=59.45;MQ0=0;OQ=1718.51;QD=40.92;SB=-739.75	GT:AD:DP:GL:GQ	1/1:0,42:41:-175.45,-12.36,-0.02:99
-chr1	907503	rs41285816	G	A	149.42	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=58.47;MQ0=0;OQ=650.11;QD=15.12;SB=-327.85	GT:AD:DP:GL:GQ	0/1:21,22:41:-80.65,-12.35,-76.53:99
-chr1	908101	rs28552711	C	G	269.46	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=59.03;MQ0=0;OQ=561.89;QD=11.71;SB=-234.09	GT:AD:DP:GL:GQ	0/1:27,21:45:-73.04,-13.57,-111.91:99
-chr1	908247	rs13303118	G	T	75.04	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=-0.06;MQ=59.58;MQ0=0;OQ=378.28;QD=8.60;SB=-112.78	GT:AD:DP:GL:GQ	0/1:27,17:40:-53.17,-12.06,-75.89:99
-chr1	908436	rs2341354	A	G	288.04	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=1.75;MQ=59.09;MQ0=0;OQ=687.85;QD=13.49;SB=-217.36	GT:AD:DP:GL:GQ	0/1:22,29:47:-86.23,-14.17,-83.30:99
-chr1	908990	rs28469033	T	C	203.63	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=1;HaplotypeScore=1.56;MQ=58.06;MQ0=0;OQ=712.75;QD=12.29;SB=-242.27	GT:AD:DP:GL:GQ	0/1:29,28:55:-91.13,-16.57,-114.97:99
-chr1	909282	rs6605059	T	C	230.41	PASS	AC=1;AF=0.50;AN=2;DB;DP=24;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=181.71;QD=7.57;SB=-100.01	GT:AD:DP:GL:GQ	0/1:13,11:22:-28.09,-6.63,-51.27:99
-chr1	909352	rs61606412	C	T	41.71	PASS	AC=1;AF=0.50;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=53.76;MQ0=0;OQ=576.99;QD=16.03;SB=-77.09	GT:AD:DP:GL:GQ	0/1:16,19:32:-70.62,-9.64,-54.85:99
-chr1	909718	.	G	A	32.42	PASS	AC=1;AF=0.50;AN=2;DP=13;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=56.35;MQ0=0;OQ=82.61;QD=6.35;SB=-28.51	GT:AD:DP:GL:GQ	0/1:9,4:13:-15.46,-3.92,-29.36:99
-chr1	909851	.	C	T	379.69	Indel;SnpCluster	AC=1;AF=0.50;AN=2;DP=45;Dels=0.00;HRun=2;HaplotypeScore=14.99;MQ=38.66;MQ0=0;QD=8.44;SB=-209.86	GT:AD:DP:GL:GQ	0/1:32,13:38:-52.70,-11.44,-90.66:99
-chr1	909854	.	C	A	33.53	Indel;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=46;Dels=0.00;HRun=0;HaplotypeScore=23.31;MQ=39.61;MQ0=0;QD=0.73;SB=-35.83	GT:AD:DP:GL:GQ	0/1:41,3:18:-18.90,-12.26,-52.66:66.37
-chr1	909858	.	T	A	34.25	Indel;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=50;Dels=0.00;HRun=1;HaplotypeScore=85.24;MQ=39.71;MQ0=0;QD=0.69;SB=-24.32	GT:AD:DP:GL:GQ	0/1:46,4:25:-14.24,-7.53,-79.28:67.09
-chr1	909861	rs2341357	A	C	442.96	Indel;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=92.23;MQ=37.93;MQ0=0;QD=9.23;SB=-187.18	GT:AD:DP:GL:GQ	0/1:13,31:32:-70.70,-23.12,-57.83:99
-chr1	909862	.	T	C	28.94	Indel;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=49;Dels=0.00;HRun=0;HaplotypeScore=90.34;MQ=37.54;MQ0=1;QD=0.59;SB=-27.89	GT:AD:DP:GL:GQ	0/1:45,4:23:-13.11,-6.93,-76.03:61.77
-chr1	909865	rs55746336	A	C	368.04	SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=65.88;MQ=38.28;MQ0=1;QD=7.51;SB=-150.94	GT:AD:DP:GL:GQ	0/1:20,29:28:-48.52,-8.43,-49.13:99
-chr1	910511	rs6677020	T	C	126.81	PASS	AC=2;AF=1.00;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=1.37;MQ=58.99;MQ0=0;OQ=1842.74;QD=30.71;SB=-555.07	GT:AD:DP:GL:GQ	1/1:0,60:57:-187.90,-17.18,-0.04:99
-chr1	910596	rs6677131	T	C	281.37	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.54;MQ0=0;OQ=1029.24;QD=25.10;SB=-459.07	GT:AD:DP:GL:GQ	1/1:0,41:35:-106.55,-10.56,-0.04:99
-chr1	911433	rs6662128	T	C	65.09	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=-0.06;MQ=42.74;MQ0=0;OQ=1332.64;QD=27.76;SB=-494.18	GT:AD:DP:GL:GQ	1/1:0,48:43:-136.89,-12.97,-0.04:99
-chr1	911523	rs6703008	C	T	253.53	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=58.87;MQ0=0;OQ=592.10;QD=14.44;SB=-247.55	GT:AD:DP:GL:GQ	0/1:21,20:40:-74.55,-12.06,-68.34:99
-chr1	911579	rs13303278	C	A	321.21	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=1.12;MQ=57.82;MQ0=0;OQ=846.22;QD=16.27;SB=-412.14	GT:AD:DP:GL:GQ	0/1:22,30:49:-102.67,-14.76,-65.25:99
-chr1	911872	rs6693747	G	A	247.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=1.52;MQ=57.81;MQ0=0;OQ=692.72;QD=11.94;SB=-247.55	GT:AD:DP:GL:GQ	0/1:34,24:51:-87.93,-15.37,-94.90:99
-chr1	912939	rs6605060	A	G	422.47	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.56;MQ0=0;OQ=1569.95;QD=29.62;SB=-431.82	GT:AD:DP:GL:GQ	1/1:0,53:52:-160.64,-15.69,-0.06:99
-chr1	913322	rs9442609	A	G	120.23	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=1.67;MQ=58.95;MQ0=0;OQ=1780.01;QD=28.25;SB=-752.61	GT:AD:DP:GL:GQ	1/1:0,63:58:-181.64,-17.49,-0.06:99
-chr1	913612	rs9442610	T	C	76.57	PASS	AC=2;AF=1.00;AN=2;DB;DP=87;Dels=0.00;HRun=0;HaplotypeScore=0.48;MQ=58.45;MQ0=1;OQ=2496.82;QD=28.70;SB=-1150.17	GT:AD:DP:GL:GQ	1/1:1,86:79:-253.33,-23.82,-0.07:99
-chr1	913974	rs28447224	T	A	288.86	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=58.45;MQ0=0;OQ=731.87;QD=12.20;SB=-322.51	GT:AD:DP:GL:GQ	0/1:33,27:58:-93.94,-17.47,-123.87:99
-chr1	914034	.	A	T	3.99	PASS	AC=1;AF=0.50;AN=2;DP=92;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=54.53;MQ0=0;OQ=328.12;QD=3.57;SB=-36.46	GT:AD:DP:GL:GQ	0/1:74,18:90:-63.21,-27.12,-275.61:99
-chr1	914043	.	A	T	0.15	PASS	AC=1;AF=0.50;AN=2;DP=97;Dels=0.00;HRun=1;HaplotypeScore=0.99;MQ=53.25;MQ0=0;OQ=310.60;QD=3.20;SB=-88.90	GT:AD:DP:GL:GQ	0/1:71,26:82:-59.05,-24.71,-248.58:99
-chr1	914057	rs36034299	T	A	46.78	PASS	AC=1;AF=0.50;AN=2;DB;DP=123;Dels=0.00;HRun=0;HaplotypeScore=4.71;MQ=52.48;MQ0=0;OQ=1254.45;QD=10.20;SB=-515.06	GT:AD:DP:GL:GQ	0/1:78,44:120:-164.87,-36.14,-292.57:99
-chr1	914062	rs34208189	G	T	4.13	PASS	AC=1;AF=0.50;AN=2;DB;DP=120;Dels=0.00;HRun=1;HaplotypeScore=4.71;MQ=52.50;MQ0=0;OQ=1304.79;QD=10.87;SB=-551.46	GT:AD:DP:GL:GQ	0/1:72,47:118:-172.13,-38.37,-252.01:99
-chr1	914098	rs28489602	G	A	178.03	PASS	AC=1;AF=0.50;AN=2;DB;DP=123;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=53.92;MQ0=0;OQ=1142.45;QD=9.29;SB=-414.29	GT:AD:DP:GL:GQ	0/1:80,43:115:-152.18,-34.65,-273.57:99
-chr1	914111	.	T	G	3.17	PASS	AC=1;AF=0.50;AN=2;DP=129;Dels=0.00;HRun=0;HaplotypeScore=1.56;MQ=54.02;MQ0=0;OQ=717.31;QD=5.56;SB=-222.67	GT:AD:DP:GL:GQ	0/1:95,34:128:-113.56,-38.55,-355.41:99
-chr1	914118	rs59424352	T	G	15.06	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DB;DP=131;Dels=0.00;HRun=2;HaplotypeScore=1.56;MQ=54.89;MQ0=0;QD=0.11;SB=-22.32	GT:AD:DP:GL:GQ	0/1:103,28:116:-39.71,-34.94,-387.42:47.76
-chr1	914126	rs28607403	A	T	0.47	PASS	AC=1;AF=0.50;AN=2;DB;DP=126;Dels=0.00;HRun=0;HaplotypeScore=1.26;MQ=56.46;MQ0=0;OQ=177.88;QD=1.41;SB=-25.34	GT:AD:DP:GL:GQ	0/1:106,20:118:-56.62,-35.55,-387.33:99
-chr1	914231	rs35562283	C	T	2.83	PASS	AC=2;AF=1.00;AN=2;DB;DP=100;Dels=0.00;HRun=2;HaplotypeScore=2.10;MQ=59.39;MQ0=0;OQ=4072.19;QD=40.72;SB=-2034.20	GT:AD:DP:GL:GQ	1/1:0,100:100:-406.22,-30.12,-0.03:99
-chr1	914391	rs34712273	C	A	51.10	PASS	AC=1;AF=0.50;AN=2;DB;DP=97;Dels=0.00;HRun=0;HaplotypeScore=5.23;MQ=56.94;MQ0=0;OQ=1123.83;QD=11.59;SB=-531.23	GT:AD:DP:GL:GQ	0/1:55,42:95:-144.28,-28.62,-196.31:99
-chr1	914466	rs28422907	T	C	454.63	PASS	AC=2;AF=1.00;AN=2;DB;DP=102;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.59;MQ0=0;OQ=3679.99;QD=36.08;SB=-1782.71	GT:AD:DP:GL:GQ	1/1:0,102:101:-367.00,-30.42,-0.03:99
-chr1	914492	rs28622096	A	G	82.91	PASS	AC=2;AF=1.00;AN=2;DB;DP=92;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=59.55;MQ0=0;OQ=2947.74;QD=32.04;SB=-1451.63	GT:AD:DP:GL:GQ	1/1:0,92:91:-298.43,-27.44,-0.07:99
-chr1	914761	rs6665000	C	A	607.33	PASS	AC=2;AF=1.00;AN=2;DB;DP=102;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=3789.11;QD=37.15;SB=-1446.45	GT:AD:DP:GL:GQ	1/1:0,101:101:-377.91,-33.59,-3.42:99
-chr1	915547	rs6605061	T	C	196.60	PASS	AC=2;AF=1.00;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=1.13;MQ=57.81;MQ0=0;OQ=1982.79;QD=33.05;SB=-855.97	GT:AD:DP:GL:GQ	1/1:0,60:57:-201.89,-17.17,-0.03:99
-chr1	916214	rs6671243	C	T	469.30	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.63;MQ0=0;OQ=2468.85;QD=39.82;SB=-737.98	GT:AD:DP:GL:GQ	1/1:0,62:61:-250.48,-18.37,-0.01:99
-chr1	916294	rs4970403	A	T	304.51	PASS	AC=2;AF=1.00;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=1.55;MQ=59.43;MQ0=0;OQ=2680.54;QD=36.72;SB=-1154.05	GT:AD:DP:GL:GQ	1/1:1,72:71:-271.66,-21.39,-0.02:99
-chr1	916484	rs4970351	A	C	485.68	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.76;MQ0=0;OQ=1740.98;QD=35.53;SB=-550.05	GT:AD:DP:GL:GQ	1/1:0,49:49:-177.70,-14.76,-0.01:99
-chr1	917172	rs2341362	T	C	555.17	PASS	AC=2;AF=1.00;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1855.09;QD=30.92;SB=-890.64	GT:AD:DP:GL:GQ	1/1:0,60:59:-189.15,-17.80,-0.06:99
-chr1	917604	rs6665587	G	A	343.04	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.08;MQ0=0;OQ=746.63;QD=16.23;SB=-250.74	GT:AD:DP:GL:GQ	0/1:23,23:45:-91.50,-13.55,-86.19:99
-chr1	918279	.	G	A	19.72	PASS	AC=1;AF=0.50;AN=2;DP=39;Dels=0.00;HRun=0;HaplotypeScore=2.39;MQ=64.12;MQ0=0;OQ=347.49;QD=8.91;SB=-127.57	GT:AD:DP:GL:GQ	0/1:25,14:32:-47.68,-9.65,-62.78:99
-chr1	918383	rs35002855	A	G	36.80	PASS	AC=2;AF=1.00;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.30;MQ0=0;OQ=923.20;QD=27.98;SB=-310.47	GT:AD:DP:GL:GQ	1/1:0,33:30:-95.93,-9.05,-0.03:90.20
-chr1	918441	rs28394749	G	A	367.26	PASS	AC=2;AF=1.00;AN=2;DB;DP=35;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.34;MQ0=0;OQ=1345.86;QD=38.45;SB=-480.97	GT:AD:DP:GL:GQ	1/1:0,35:35:-138.18,-10.55,-0.01:99
-chr1	918699	rs9777703	C	T	463.81	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.88;MQ0=0;OQ=1525.43;QD=38.14;SB=-621.02	GT:AD:DP:GL:GQ	1/1:0,40:39:-156.14,-11.75,-0.01:99
-chr1	919053	rs9777939	A	G	223.28	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.27;MQ0=0;OQ=1351.32;QD=33.78;SB=-678.95	GT:AD:DP:GL:GQ	1/1:0,40:38:-138.73,-11.45,-0.01:99
-chr1	919179	rs9777893	C	T	85.58	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=1.52;MQ=55.86;MQ0=0;OQ=1631.07;QD=35.46;SB=-540.88	GT:AD:DP:GL:GQ	1/1:0,46:44:-166.72,-13.27,-0.03:99
-chr1	919184	rs13302916	A	C	0.11	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=5;HaplotypeScore=2.13;MQ=54.60;MQ0=0;OQ=1536.74;QD=31.36;SB=-480.03	GT:AD:DP:GL:GQ	1/1:0,49:45:-157.28,-13.56,-0.02:99
-chr1	919190	rs13302924	A	G	46.51	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=1.99;MQ=54.92;MQ0=0;OQ=1263.79;QD=24.30;SB=-518.21	GT:AD:DP:GL:GQ	1/1:0,52:42:-130.02,-12.68,-0.06:99
-chr1	919921	.	C	A	110.32	PASS	AC=1;AF=0.50;AN=2;DP=69;Dels=0.00;HRun=0;HaplotypeScore=1.97;MQ=58.99;MQ0=0;OQ=1041.89;QD=15.10;SB=-490.89	GT:AD:DP:GL:GQ	0/1:34,35:65:-127.06,-19.58,-99.23:99
-chr1	920192	rs3128108	C	T	194.44	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=0.97;MQ=58.69;MQ0=0;OQ=711.37;QD=14.23;SB=-187.15	GT:AD:DP:GL:GQ	0/1:24,26:47:-88.59,-14.17,-77.59:99
-chr1	920240	rs3128109	C	T	215.53	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=59.70;MQ0=0;OQ=1131.05;QD=17.95;SB=-367.88	GT:AD:DP:GL:GQ	0/1:29,34:63:-135.38,-18.99,-92.17:99
-chr1	920396	rs3128110	C	G	210.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=78;Dels=0.00;HRun=0;HaplotypeScore=2.83;MQ=58.26;MQ0=0;OQ=1157.59;QD=14.84;SB=-599.54	GT:AD:DP:GL:GQ	0/1:41,37:77:-142.27,-23.22,-177.91:99
-chr1	920430	rs3121574	A	G	364.31	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=55.06;MQ0=0;OQ=652.89;QD=9.60;SB=-349.53	GT:AD:DP:GL:GQ	0/1:41,27:65:-88.16,-19.59,-156.95:99
-chr1	920614	rs3128111	C	G	139.72	PASS	AC=1;AF=0.50;AN=2;DB;DP=69;Dels=0.00;HRun=0;HaplotypeScore=1.84;MQ=58.99;MQ0=0;OQ=1461.73;QD=21.18;SB=-736.36	GT:AD:DP:GL:GQ	0/1:28,41:68:-169.95,-20.49,-124.60:99
-chr1	920786	rs2710882	A	G	12.29	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=1;HaplotypeScore=2.97;MQ=49.62;MQ0=0;OQ=1291.93;QD=28.71;SB=-670.84	GT:AD:DP:GL:GQ	1/1:0,45:41:-132.82,-12.37,-0.04:99
-chr1	920877	rs2710881	A	G	324.40	PASS	AC=2;AF=1.00;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.30;MQ0=0;OQ=966.43;QD=26.85;SB=-364.34	GT:AD:DP:GL:GQ	1/1:0,36:31:-100.25,-9.35,-0.03:93.22
-chr1	921029	rs2710880	A	G	58.88	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=1;HaplotypeScore=3.24;MQ=56.56;MQ0=0;OQ=562.50;QD=14.06;SB=-270.38	GT:AD:DP:GL:GQ	0/1:15,25:36:-70.39,-10.85,-55.63:99
-chr1	921225	rs2799060	G	A	150.73	PASS	AC=1;AF=0.50;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=3.04;MQ=54.08;MQ0=0;OQ=614.91;QD=17.08;SB=-332.87	GT:AD:DP:GL:GQ	0/1:15,21:29:-73.51,-8.74,-35.50:99
-chr1	921371	rs2799061	T	A	126.55	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=1.58;MQ=52.82;MQ0=0;OQ=1479.30;QD=33.62;SB=-589.54	GT:AD:DP:GL:GQ	1/1:0,44:41:-151.53,-12.35,-0.02:99
-chr1	921411	rs2799062	G	T	122.68	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=2.78;MQ=53.36;MQ0=0;OQ=738.91;QD=16.06;SB=-235.96	GT:AD:DP:GL:GQ	0/1:19,27:43:-90.13,-12.95,-62.40:99
-chr1	921593	rs2005437	A	G	3.88	PASS	AC=2;AF=1.00;AN=2;DB;DP=35;Dels=0.00;HRun=2;HaplotypeScore=3.71;MQ=50.61;MQ0=0;OQ=1146.23;QD=32.75;SB=-497.46	GT:AD:DP:GL:GQ	1/1:0,35:33:-118.22,-9.94,-0.01:99
-chr1	921666	rs1891908	C	T	2.08	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=4.85;MQ=32.06;MQ0=2;OQ=160.89;QD=4.35;SB=-6.43	GT:AD:DP:GL:GQ	0/1:19,17:19:-25.09,-5.72,-45.39:99
-chr1	921743	rs2710878	G	A	0.08	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=13.34;MQ=30.42;MQ0=11;OQ=92.22;QD=1.77;SB=38.12	GT:AD:DP:GL:GQ	0/1:43,9:31:-21.85,-9.35,-87.56:99
-chr1	921798	rs59581901	T	C	0.08	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=2;HaplotypeScore=13.36;MQ=44.02;MQ0=2;OQ=265.71;QD=4.66;SB=-27.22	GT:AD:DP:GL:GQ	0/1:37,20:42:-42.52,-12.66,-114.67:99
-chr1	921802	rs13303155	G	A	0.11	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=12.88;MQ=43.29;MQ0=2;OQ=165.28;QD=2.85;SB=-96.56	GT:AD:DP:GL:GQ	0/1:44,13:47:-33.98,-14.17,-116.58:99
-chr1	921917	rs13302969	G	T	74.55	PASS	AC=1;AF=0.50;AN=2;DB;DP=32;Dels=0.00;HRun=0;HaplotypeScore=2.19;MQ=21.41;MQ0=5;OQ=283.37;QD=8.86;SB=-65.73	GT:AD:DP:GL:GQ	0/1:6,26:13:-35.54,-3.92,-11.08:71.59
-chr1	921950	rs4350142	T	G	3.51	PASS	AC=1;AF=0.50;AN=2;DB;DP=18;Dels=0.00;HRun=1;HaplotypeScore=0.32;MQ=16.76;MQ0=5;OQ=77.67;QD=4.32;SB=-39.55	GT:AD:DP:GL:GQ	0/1:13,5:9:-13.76,-2.71,-16.22:99
-chr1	922320	rs1891910	G	A	55.08	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=1;HaplotypeScore=1.92;MQ=54.96;MQ0=0;OQ=908.58;QD=18.93;SB=-365.40	GT:AD:DP:GL:GQ	0/1:20,28:47:-108.30,-14.16,-73.49:99
-chr1	922481	rs3128112	C	G	140.23	PASS	AC=2;AF=1.00;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=0.98;MQ=59.00;MQ0=0;OQ=2826.91;QD=42.19;SB=-1373.36	GT:AD:DP:GL:GQ	1/1:0,67:66:-286.30,-19.89,-0.02:99
-chr1	923653	rs9442392	G	A	34.86	PASS	AC=1;AF=0.50;AN=2;DB;DP=20;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=57.66;MQ0=0;OQ=346.01;QD=17.30;SB=-99.62	GT:AD:DP:GL:GQ	0/1:8,12:18:-43.31,-5.43,-22.69:99
-chr1	923962	rs2710867	G	C	179.76	PASS	AC=2;AF=1.00;AN=2;DB;DP=16;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=55.52;MQ0=0;OQ=491.87;QD=30.74;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,16:14:-52.79,-4.24,-0.02:42.13
-chr1	923969	rs2799063	A	G	177.71	PASS	AC=2;AF=1.00;AN=2;DB;DP=15;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=53.52;MQ0=0;OQ=467.35;QD=31.16;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,15:15:-50.33,-4.52,-0.01:45.12
-chr1	923984	rs2488989	G	A	4.47	PASS	AC=1;AF=0.50;AN=2;DB;DP=13;Dels=0.00;HRun=1;HaplotypeScore=0.73;MQ=52.45;MQ0=0;OQ=54.72;QD=4.21;SB=-10.00	GT:AD:DP:GL:GQ	0/1:9,4:12:-12.37,-3.61,-31.32:87.56
-chr1	924007	rs9697551	C	G	2.08	PASS	AC=2;AF=1.00;AN=2;DB;DP=10;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=52.65;MQ0=0;OQ=378.82;QD=37.88;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,10:10:-41.47,-3.01,-0.00:30.10
-chr1	925085	rs2298214	C	A	41.67	PASS	AC=1;AF=0.50;AN=2;DB;DP=8;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=126.82;QD=15.85;SB=-10.00	GT:AD:DP:GL:GQ	0/1:3,5:8:-18.37,-2.41,-10.50:80.94
-chr1	925696	rs3128115	C	G	0.04	FDRtranche0.10to1.00	AC=2;AF=1.00;AN=2;DB;DP=12;Dels=0.00;HRun=4;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=341.24;QD=28.44;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,12:10:-37.72,-3.03,-0.02:30.09
-chr1	925974	rs1936360	C	T	39.87	PASS	AC=1;AF=0.50;AN=2;DB;DP=17;Dels=0.00;HRun=1;HaplotypeScore=1.00;MQ=58.35;MQ0=0;OQ=214.61;QD=12.62;SB=-42.53	GT:AD:DP:GL:GQ	0/1:9,8:14:-28.97,-4.22,-22.12:99
-chr1	926057	rs3121570	A	G	2.88	PASS	AC=2;AF=1.00;AN=2;DB;DP=11;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=311.77;QD=28.34;SB=-100.02	GT:AD:DP:GL:GQ	1/1:0,11:11:-34.77,-3.32,-0.01:33.06
-chr1	926073	rs3121569	C	A	189.59	PASS	AC=2;AF=1.00;AN=2;DB;DP=11;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.87;MQ0=0;OQ=295.10;QD=26.83;SB=-77.88	GT:AD:DP:GL:GQ	1/1:0,11:10:-33.10,-3.01,-0.01:30.07
-chr1	927551	rs2489000	T	C	23.57	PASS	AC=2;AF=1.00;AN=2;DB;DP=29;Dels=0.00;HRun=1;HaplotypeScore=1.00;MQ=59.20;MQ0=0;OQ=869.96;QD=30.00;SB=-383.48	GT:AD:DP:GL:GQ	1/1:0,29:26:-90.60,-7.84,-0.01:78.21
-chr1	927679	.	G	T	11.95	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=40;Dels=0.00;HRun=20;HaplotypeScore=4.44;MQ=51.49;MQ0=1;QD=0.30;SB=29.12	GT:AD:DP:GL:GQ	0/1:35,5:33:-14.39,-9.94,-101.16:44.50
-chr1	927979	rs2710869	T	G	68.27	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=1;HaplotypeScore=0.32;MQ=52.06;MQ0=0;OQ=1400.53;QD=31.83;SB=-711.32	GT:AD:DP:GL:GQ	1/1:0,44:41:-143.66,-12.35,-0.02:99
-chr1	927988	rs2710868	G	A	255.30	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=53.36;MQ0=0;OQ=410.87;QD=10.02;SB=-73.54	GT:AD:DP:GL:GQ	0/1:27,14:38:-55.83,-11.46,-75.32:99
-chr1	928076	rs2799058	A	G	513.54	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=57.12;MQ0=1;OQ=1982.35;QD=34.78;SB=-956.40	GT:AD:DP:GL:GQ	1/1:0,57:56:-201.84,-16.87,-0.02:99
-chr1	929868	rs2799056	A	G	83.40	PASS	AC=1;AF=0.50;AN=2;DB;DP=22;Dels=0.00;HRun=0;HaplotypeScore=2.34;MQ=60.00;MQ0=0;OQ=292.67;QD=13.30;SB=-94.98	GT:AD:DP:GL:GQ	0/1:10,12:19:-38.28,-5.73,-31.90:99
-chr1	929959	rs4503294	C	T	66.68	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=3.74;MQ=59.48;MQ0=0;OQ=871.55;QD=19.81;SB=-434.84	GT:AD:DP:GL:GQ	0/1:17,27:40:-102.50,-12.06,-44.62:99
-chr1	931147	rs3128116	C	T	186.46	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=2.94;MQ=58.74;MQ0=0;OQ=584.87;QD=15.81;SB=-318.85	GT:AD:DP:GL:GQ	0/1:17,20:34:-72.02,-10.25,-50.30:99
-chr1	931197	rs57683598	G	A	242.64	PASS	AC=1;AF=0.50;AN=2;DB;DP=34;Dels=0.00;HRun=0;HaplotypeScore=0.63;MQ=58.63;MQ0=0;OQ=443.86;QD=13.05;SB=-202.91	GT:AD:DP:GL:GQ	0/1:19,15:33:-57.62,-9.95,-57.41:99
-chr1	931402	rs9778087	C	T	103.12	PASS	AC=1;AF=0.50;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=2.28;MQ=58.18;MQ0=0;OQ=521.73;QD=14.49;SB=-147.61	GT:AD:DP:GL:GQ	0/1:17,19:30:-64.50,-9.04,-41.68:99
-chr1	933113	rs3121568	C	T	81.24	PASS	AC=2;AF=1.00;AN=2;DB;DP=22;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=27.66;MQ0=1;OQ=764.02;QD=34.73;SB=-301.68	GT:AD:DP:GL:GQ	1/1:1,21:20:-79.99,-6.02,-0.00:60.20
-chr1	933331	rs3121567	T	C	90.20	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=2.56;MQ=52.92;MQ0=0;OQ=1930.66;QD=28.39;SB=-605.93	GT:AD:DP:GL:GQ	1/1:0,67:59:-196.69,-17.79,-0.04:99
-chr1	933550	rs2465140	G	C	10.53	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=1;HaplotypeScore=0.74;MQ=52.98;MQ0=0;OQ=1826.77;QD=24.04;SB=-482.83	GT:AD:DP:GL:GQ	0/1:29,47:76:-208.87,-22.91,-115.72:99
-chr1	933770	rs2488992	C	G	622.99	PASS	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.05;MQ0=0;OQ=2496.05;QD=39.00;SB=-1249.63	GT:AD:DP:GL:GQ	1/1:1,63:62:-253.23,-18.70,-0.04:99
-chr1	933831	rs13303313	C	T	77.45	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=1.33;MQ=54.98;MQ0=1;OQ=1022.40;QD=21.30;SB=-421.46	GT:AD:DP:GL:GQ	0/1:17,31:46:-119.39,-13.87,-49.73:99
-chr1	934427	rs3128117	T	C	70.90	PASS	AC=1;AF=0.50;AN=2;DB;DP=81;Dels=0.00;HRun=1;HaplotypeScore=3.79;MQ=59.48;MQ0=0;OQ=1012.81;QD=12.50;SB=-424.88	GT:AD:DP:GL:GQ	0/1:46,35:81:-128.96,-24.40,-186.84:99
-chr1	934959	rs3135457	C	T	611.86	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.45;MQ0=0;OQ=2185.20;QD=35.82;SB=-904.70	GT:AD:DP:GL:GQ	1/1:0,61:55:-222.12,-16.57,-0.02:99
-chr1	934974	rs13303172	C	T	140.68	PASS	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=2.97;MQ=58.59;MQ0=0;OQ=2216.02;QD=34.63;SB=-887.19	GT:AD:DP:GL:GQ	1/1:0,63:58:-225.21,-17.48,-0.03:99
-chr1	935337	rs3121566	C	T	64.84	PASS	AC=2;AF=1.00;AN=2;DB;DP=71;Dels=0.00;HRun=1;HaplotypeScore=2.42;MQ=57.82;MQ0=0;OQ=2650.36;QD=37.33;SB=-1265.29	GT:AD:DP:GL:GQ	1/1:0,71:68:-268.65,-20.49,-0.03:99
-chr1	935475	rs3121565	C	T	3.95	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=5.58;MQ=54.82;MQ0=0;OQ=1712.26;QD=33.57;SB=-826.14	GT:AD:DP:GL:GQ	1/1:0,51:46:-174.83,-13.86,-0.02:99
-chr1	935997	rs2341364	T	G	377.30	Indel	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=10.97;MQ=57.32;MQ0=2;QD=7.12;SB=-202.78	GT:AD:DP:GL:GQ	0/1:37,16:48:-55.47,-14.46,-118.77:99
-chr1	935998	rs9723307	T	G	915.61	Indel	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=11.45;MQ=57.32;MQ0=2;QD=17.28;SB=-353.60	GT:AD:DP:GL:GQ	0/1:21,32:48:-109.30,-14.46,-57.43:99
-chr1	936897	rs2465126	G	A	228.15	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.98;MQ=59.52;MQ0=0;OQ=1823.18;QD=37.98;SB=-798.06	GT:AD:DP:GL:GQ	1/1:0,48:47:-185.92,-14.16,-0.02:99
-chr1	937401	rs2465125	C	T	186.23	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=59.20;MQ0=0;OQ=2163.80;QD=37.31;SB=-987.00	GT:AD:DP:GL:GQ	1/1:0,58:56:-219.99,-16.88,-0.02:99
-chr1	938555	rs2341365	G	A	140.11	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=58.55;MQ0=0;OQ=1650.26;QD=34.38;SB=-693.43	GT:AD:DP:GL:GQ	1/1:0,47:44:-168.63,-13.26,-0.02:99
-chr1	938733	rs4615788	C	G	63.76	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=1;HaplotypeScore=0.65;MQ=59.05;MQ0=0;OQ=1777.68;QD=37.82;SB=-661.48	GT:AD:DP:GL:GQ	1/1:0,47:45:-181.39,-13.58,-0.03:99
-chr1	938784	rs15842	T	C	63.77	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=1.89;MQ=51.15;MQ0=0;OQ=1180.61;QD=25.67;SB=-593.57	GT:AD:DP:GL:GQ	1/1:0,46:38:-121.68,-11.46,-0.04:99
-chr1	939098	rs2465124	G	A	101.68	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=2.32;MQ=58.32;MQ0=0;OQ=1385.28;QD=35.52;SB=-635.85	GT:AD:DP:GL:GQ	1/1:0,39:36:-142.13,-10.85,-0.02:99
-chr1	939471	rs1921	G	A	210.99	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=1;HaplotypeScore=1.47;MQ=59.46;MQ0=0;OQ=818.95;QD=19.05;SB=-428.80	GT:AD:DP:GL:GQ	0/1:17,25:41:-97.53,-12.36,-57.36:99
-chr1	939517	rs8997	A	G	93.12	PASS	AC=2;AF=1.00;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=2.52;MQ=58.71;MQ0=0;OQ=1127.57;QD=31.32;SB=-511.18	GT:AD:DP:GL:GQ	1/1:0,36:33:-116.36,-9.94,-0.02:99
-chr1	939788	rs2799070	C	T	122.12	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=1.21;MQ=60.00;MQ0=0;OQ=1513.64;QD=36.92;SB=-701.35	GT:AD:DP:GL:GQ	1/1:0,40:39:-154.96,-11.75,-0.01:99
-chr1	940106	rs1891906	A	C	58.36	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=1.42;MQ=59.38;MQ0=0;OQ=496.04;QD=13.41;SB=-49.04	GT:AD:DP:GL:GQ	0/1:19,18:37:-64.03,-11.14,-68.15:99
-chr1	940540	rs9331223	T	C	228.94	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=1.96;MQ=58.40;MQ0=0;OQ=564.77;QD=13.45;SB=-287.31	GT:AD:DP:GL:GQ	0/1:17,25:39:-71.52,-11.76,-66.74:99
-chr1	940579	rs2799069	A	T	132.14	PASS	AC=2;AF=1.00;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=1.75;MQ=57.66;MQ0=0;OQ=1217.27;QD=32.90;SB=-595.76	GT:AD:DP:GL:GQ	1/1:0,37:34:-125.32,-10.24,-0.01:99
-chr1	941146	rs9442363	C	T	200.29	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=2.82;MQ=29.19;MQ0=1;OQ=502.68;QD=12.89;SB=-262.28	GT:AD:DP:GL:GQ	0/1:16,22:28:-61.99,-8.44,-37.57:99
-chr1	941158	rs9442388	C	T	75.76	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=4.38;MQ=27.92;MQ0=1;OQ=496.98;QD=10.80;SB=-155.64	GT:AD:DP:GL:GQ	0/1:24,22:37:-64.14,-11.16,-65.52:99
-chr1	941185	rs9697362	C	T	0.27	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=4;HaplotypeScore=0.96;MQ=26.62;MQ0=0;OQ=1253.78;QD=25.59;SB=-636.34	GT:AD:DP:GL:GQ	1/1:0,49:34:-128.98,-10.25,-0.02:99
-chr1	941193	rs9697717	G	A	313.44	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=26.36;MQ0=0;OQ=1030.78;QD=25.77;SB=-468.62	GT:AD:DP:GL:GQ	1/1:0,40:27:-106.67,-8.14,-0.01:81.26
-chr1	941427	rs2465141	A	G	200.39	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=2.01;MQ=50.56;MQ0=1;OQ=585.65;QD=10.65;SB=-303.21	GT:AD:DP:GL:GQ	0/1:29,26:48:-76.32,-14.47,-98.65:99
-chr1	941491	.	A	T	28.08	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=54;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=45.78;MQ0=3;QD=0.52;SB=41.14	GT:AD:DP:GL:GQ	0/1:46,8:45:-19.65,-13.56,-148.74:60.91
-chr1	941866	rs3128118	G	A	182.23	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=3.48;MQ=58.42;MQ0=1;OQ=769.91;QD=13.27;SB=-278.19	GT:AD:DP:GL:GQ	0/1:30,27:54:-96.56,-16.28,-93.17:99
-chr1	942291	rs9442611	G	A	158.27	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=2.56;MQ=58.27;MQ0=0;OQ=928.32;QD=19.34;SB=-479.01	GT:AD:DP:GL:GQ	0/1:19,29:48:-110.59,-14.48,-59.61:99
-chr1	943087	rs4970390	C	T	107.20	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.93;MQ=50.43;MQ0=1;OQ=376.23;QD=6.60;SB=-175.84	GT:AD:DP:GL:GQ	0/1:38,19:49:-55.68,-14.78,-111.95:99
-chr1	943217	rs61766298	G	A	33.08	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=0.91;MQ=54.66;MQ0=1;OQ=355.20;QD=4.80;SB=-58.95	GT:AD:DP:GL:GQ	0/1:57,16:65:-58.41,-19.60,-158.72:99
-chr1	943541	rs2952918	T	C	3.09	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=2;HaplotypeScore=5.78;MQ=53.39;MQ0=0;OQ=348.13;QD=8.70;SB=-186.61	GT:AD:DP:GL:GQ	0/1:24,16:38:-49.55,-11.46,-86.70:99
-chr1	943815	rs9442612	G	A	205.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=2.44;MQ=57.73;MQ0=0;OQ=533.79;QD=13.02;SB=-257.75	GT:AD:DP:GL:GQ	0/1:22,19:39:-68.42,-11.76,-70.56:99
-chr1	944640	rs61766299	C	A	104.63	PASS	AC=1;AF=0.50;AN=2;DB;DP=10;Dels=0.00;HRun=0;HaplotypeScore=0.83;MQ=57.66;MQ0=0;OQ=76.34;QD=7.63;SB=-34.38	GT:AD:DP:GL:GQ	0/1:6,4:9:-13.63,-2.71,-15.11:99
-chr1	946715	rs9777931	C	T	99.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=26;Dels=0.00;HRun=1;HaplotypeScore=1.79;MQ=60.00;MQ0=0;OQ=313.20;QD=12.05;SB=-129.12	GT:AD:DP:GL:GQ	0/1:14,11:22:-41.23,-6.63,-41.31:99
-chr1	949018	rs3845291	G	A	42.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=2;HaplotypeScore=1.63;MQ=59.54;MQ0=0;OQ=843.29;QD=16.87;SB=-349.52	GT:AD:DP:GL:GQ	0/1:23,27:47:-101.78,-14.17,-66.18:99
-chr1	949032	rs3845292	G	C	180	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=3.39;MQ=59.52;MQ0=0;OQ=777.11;QD=16.19;SB=-360.45	GT:AD:DP:GL:GQ	0/1:22,26:45:-94.57,-13.58,-90.66:99
-chr1	949094	rs4039721	G	A	273.59	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=0.83;MQ=59.09;MQ0=0;OQ=688.73;QD=16.80;SB=-366.42	GT:AD:DP:GL:GQ	0/1:19,22:36:-83.01,-10.86,-46.17:99
-chr1	950272	rs4970392	G	C	3.67	PASS	AC=1;AF=0.50;AN=2;DB;DP=23;Dels=0.00;HRun=3;HaplotypeScore=0.63;MQ=60.00;MQ0=0;OQ=405.25;QD=17.62;SB=-227.38	GT:AD:DP:GL:GQ	0/1:10,13:21:-50.14,-6.33,-36.47:99
-chr1	951690	rs3121556	G	A	175.37	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=3.46;MQ=59.49;MQ0=0;OQ=541.95;QD=12.04;SB=-261.27	GT:AD:DP:GL:GQ	0/1:25,20:39:-69.24,-11.76,-65.32:99
-chr1	952469	rs4970393	G	A	53.25	PASS	AC=1;AF=0.50;AN=2;DB;DP=35;Dels=0.00;HRun=0;HaplotypeScore=4.24;MQ=58.80;MQ0=0;OQ=631.93;QD=18.06;SB=-331.90	GT:AD:DP:GL:GQ	0/1:14,21:33:-76.42,-9.95,-42.13:99
-chr1	952754	rs4970394	C	T	113.27	PASS	AC=1;AF=0.50;AN=2;DB;DP=30;Dels=0.00;HRun=0;HaplotypeScore=1.77;MQ=59.23;MQ0=0;OQ=488.22;QD=16.27;SB=-210.21	GT:AD:DP:GL:GQ	0/1:14,15:29:-60.84,-8.74,-49.96:99
-chr1	953112	rs2710870	C	T	198.18	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=2.50;MQ=60.00;MQ0=0;OQ=692.82;QD=14.74;SB=-280.19	GT:AD:DP:GL:GQ	0/1:24,23:46:-86.43,-13.86,-83.87:99
-chr1	953580	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=11;Dels=0.00;HRun=16;HaplotypeScore=1.95;MQ=42.79;MQ0=0;OQ=89.92;QD=8.17;SB=-0.97	GT:AD:DP:GL:GQ	0/1:7,4:8:-14.69,-2.41,-16.44:99
-chr1	953584	rs2465127	T	C	0.45	PASS	AC=1;AF=0.50;AN=2;DB;DP=12;Dels=0.00;HRun=3;HaplotypeScore=3.77;MQ=52.61;MQ0=0;OQ=94.29;QD=7.86;SB=-65.34	GT:AD:DP:GL:GQ	0/1:4,8:9:-15.43,-2.71,-16.16:99
-chr1	954093	.	G	A	0.03	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=37;Dels=0.00;HRun=0;HaplotypeScore=9.68;MQ=33.26;MQ0=5;OQ=209.72;QD=5.67;SB=-3.99	GT:AD:DP:GL:GQ	0/1:21,12:15:-28.78,-4.52,-24.72:99
-chr1	954161	rs61766303	C	G	18.49	PASS	AC=1;AF=0.50;AN=2;DB;DP=35;Dels=0.00;HRun=0;HaplotypeScore=1.62;MQ=31.02;MQ0=1;OQ=184.53;QD=5.27;SB=-0.98	GT:AD:DP:GL:GQ	0/1:19,16:16:-26.57,-4.83,-37.31:99
-chr1	954252	rs4970397	C	T	103.23	PASS	AC=1;AF=0.50;AN=2;DB;DP=27;Dels=0.00;HRun=0;HaplotypeScore=0.93;MQ=32.94;MQ0=3;OQ=204.52;QD=7.57;SB=-35.64	GT:AD:DP:GL:GQ	0/1:17,10:18:-29.16,-5.43,-34.74:99
-chr1	954703	rs4970343	T	C	2.35	PASS	AC=1;AF=0.50;AN=2;DB;DP=32;Dels=0.00;HRun=0;HaplotypeScore=6.47;MQ=58.52;MQ0=0;OQ=457.55;QD=14.30;SB=-98.71	GT:AD:DP:GL:GQ	0/1:14,18:30:-58.08,-9.04,-50.50:99
-chr1	954711	rs4970344	A	T	37.45	PASS	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=0.92;MQ=59.43;MQ0=0;OQ=626.99;QD=19.00;SB=-168.81	GT:AD:DP:GL:GQ	0/1:12,21:33:-75.92,-9.94,-45.13:99
-chr1	954872	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=37;Dels=0.00;HRun=0;HaplotypeScore=20.43;MQ=48.78;MQ0=1;OQ=116.04;QD=3.14;SB=-52.28	GT:AD:DP:GL:GQ	0/1:25,12:25:-22.42,-7.54,-71.63:99
-chr1	955038	rs28373660	A	G	250.76	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.49;MQ=55.30;MQ0=0;OQ=611.00;QD=13.28;SB=-229.46	GT:AD:DP:GL:GQ	0/1:20,26:39:-76.13,-11.75,-66.91:99
-chr1	955106	.	A	G	23.39	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=51;Dels=0.00;HRun=0;HaplotypeScore=10.05;MQ=39.47;MQ0=7;QD=0.46;SB=-5.58	GT:AD:DP:GL:GQ	0/1:38,13:31:-14.97,-9.35,-98.23:56.21
-chr1	955141	rs28433148	T	C	0.11	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.04;HRun=0;HaplotypeScore=16.86;MQ=40.85;MQ0=6;OQ=407.46;QD=7.41;SB=-215.36	GT:AD:DP:GL:GQ	0/1:25,28:41:-56.09,-12.06,-84.28:99
-chr1	955386	rs4970404	A	G	0.04	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.02;HRun=0;HaplotypeScore=18.83;MQ=42.69;MQ0=11;OQ=218.68;QD=3.58;SB=-113.62	GT:AD:DP:GL:GQ	0/1:39,21:33:-35.11,-9.95,-82.73:99
-chr1	955467	rs4970345	C	T	151.03	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=2.04;MQ=44.49;MQ0=2;OQ=398.93;QD=9.73;SB=-192.19	GT:AD:DP:GL:GQ	0/1:19,21:26:-51.01,-7.84,-42.93:99
-chr1	955802	rs4970398	A	T	97.51	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=4.10;MQ=47.03;MQ0=2;OQ=550.07;QD=10.19;SB=-184.73	GT:AD:DP:GL:GQ	0/1:27,27:47:-72.45,-14.16,-100.00:99
-chr1	955812	rs4970399	A	G	52.54	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.02;HRun=0;HaplotypeScore=3.69;MQ=45.58;MQ0=2;OQ=418.21;QD=7.47;SB=-156.96	GT:AD:DP:GL:GQ	0/1:27,28:43:-57.78,-12.67,-88.06:99
-chr1	955927	.	T	C	0.05	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=44;Dels=0.00;HRun=0;HaplotypeScore=3.47;MQ=51.74;MQ0=5;OQ=79.40;QD=1.80;SB=-44.68	GT:AD:DP:GL:GQ	0/1:30,14:34:-21.47,-10.25,-106.58:99
-chr1	955942	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=49;Dels=0.00;HRun=0;HaplotypeScore=21.62;MQ=50.59;MQ0=7;OQ=96.72;QD=1.97;SB=-71.62	GT:AD:DP:GL:GQ	0/1:29,17:31:-22.31,-9.35,-90.50:99
-chr1	956010	.	A	G	17.59	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=50;Dels=0.00;HRun=0;HaplotypeScore=2.26;MQ=45.86;MQ0=9;QD=0.35;SB=1.17	GT:AD:DP:GL:GQ	0/1:36,13:34:-15.29,-10.25,-111.87:50.35
-chr1	957521	rs4970349	C	T	109.68	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=1;HaplotypeScore=2.54;MQ=59.65;MQ0=0;OQ=696.48;QD=12.90;SB=-243.23	GT:AD:DP:GL:GQ	0/1:30,24:51:-88.30,-15.37,-100.68:99
-chr1	960023	.	C	T	7.39	PASS	AC=1;AF=0.50;AN=2;DP=12;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=53.50;MQ0=0;OQ=70.28;QD=5.86;SB=-0.98	GT:AD:DP:GL:GQ	0/1:7,5:10:-13.33,-3.02,-17.80:99
-chr1	960078	rs9442364	G	C	190.47	PASS	AC=1;AF=0.50;AN=2;DB;DP=7;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=59.38;QD=8.48;SB=-32.42	GT:AD:DP:GL:GQ	0/1:3,4:6:-11.04,-1.82,-11.54:92.22
-chr1	961087	rs2799055	A	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DB;DP=34;Dels=0.00;HRun=6;HaplotypeScore=0.98;MQ=59.32;MQ0=0;OQ=442.07;QD=13.00;SB=-186.63	GT:AD:DP:GL:GQ	0/1:16,18:32:-57.14,-9.65,-55.82:99
-chr1	961230	rs2710883	T	C	342.64	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=60.00;MQ0=0;OQ=662.38;QD=14.09;SB=-345.94	GT:AD:DP:GL:GQ	0/1:23,24:47:-83.68,-14.16,-90.90:99
-chr1	961997	rs3121575	C	T	135.78	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=1;HaplotypeScore=0.32;MQ=60.00;MQ0=0;OQ=582.22;QD=15.32;SB=-286.19	GT:AD:DP:GL:GQ	0/1:17,20:35:-72.05,-10.55,-56.30:99
-chr1	962043	rs4970350	G	A	118.77	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.33;MQ=60.00;MQ0=0;OQ=762.03;QD=19.05;SB=-359.38	GT:AD:DP:GL:GQ	0/1:16,24:38:-90.95,-11.46,-47.96:99
-chr1	963199	rs2488993	A	G	276.26	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.11;MQ0=0;OQ=691.22;QD=14.71;SB=-269.95	GT:AD:DP:GL:GQ	0/1:22,25:46:-86.26,-13.86,-87.86:99
-chr1	963240	rs2465129	G	A	277.94	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=0.66;MQ=58.44;MQ0=0;OQ=598.48;QD=15.35;SB=-309.81	GT:AD:DP:GL:GQ	0/1:19,20:36:-73.98,-10.85,-56.47:99
-chr1	963321	rs2465130	C	T	51.96	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=58.99;MQ0=0;OQ=517.87;QD=11.26;SB=-211.85	GT:AD:DP:GL:GQ	0/1:28,18:43:-68.02,-12.95,-92.79:99
-chr1	963531	rs2488994	A	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=4;HaplotypeScore=7.50;MQ=58.37;MQ0=0;OQ=421.46;QD=9.80;SB=-94.66	GT:AD:DP:GL:GQ	0/1:26,17:40:-57.48,-12.05,-93.15:99
-chr1	964043	rs3121577	G	T	194.69	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=3.07;MQ=59.29;MQ0=0;OQ=740.60;QD=11.39;SB=-370.98	GT:AD:DP:GL:GQ	0/1:36,29:64:-96.63,-19.29,-128.48:99
-chr1	964062	rs2465131	C	T	262.80	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.28;MQ0=0;OQ=941.69;QD=14.71;SB=-361.86	GT:AD:DP:GL:GQ	0/1:34,30:62:-116.13,-18.68,-116.79:99
-chr1	964088	rs2488995	A	G	204.47	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=1;HaplotypeScore=1.99;MQ=60.00;MQ0=0;OQ=709.06;QD=12.66;SB=-311.29	GT:AD:DP:GL:GQ	0/1:29,27:55:-90.77,-16.58,-108.13:99
-chr1	964159	rs2488996	A	G	168.04	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=1;HaplotypeScore=2.14;MQ=59.09;MQ0=0;OQ=732.05;QD=15.91;SB=-365.63	GT:AD:DP:GL:GQ	0/1:18,28:43:-89.45,-12.96,-67.34:99
-chr1	964218	rs2488997	G	A	8.67	PASS	AC=1;AF=0.50;AN=2;DB;DP=35;Dels=0.00;HRun=1;HaplotypeScore=4.51;MQ=58.80;MQ0=0;OQ=657.04;QD=18.77;SB=-348.46	GT:AD:DP:GL:GQ	0/1:15,20:35:-79.53,-10.55,-53.54:99
-chr1	964219	rs2465132	T	C	152.74	PASS	AC=1;AF=0.50;AN=2;DB;DP=35;Dels=0.00;HRun=0;HaplotypeScore=3.54;MQ=58.80;MQ0=0;OQ=438.83;QD=12.54;SB=-221.28	GT:AD:DP:GL:GQ	0/1:15,20:33:-57.12,-9.95,-56.00:99
-chr1	964357	rs2465133	G	T	31.32	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=1;HaplotypeScore=5.89;MQ=58.66;MQ0=0;OQ=971.31;QD=14.72;SB=-505.87	GT:AD:DP:GL:GQ	0/1:30,36:62:-119.10,-18.68,-97.98:99
-chr1	964433	rs2465134	T	G	140.23	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=1;HaplotypeScore=2.32;MQ=58.54;MQ0=0;OQ=578.70;QD=12.58;SB=-251.93	GT:AD:DP:GL:GQ	0/1:22,23:38:-72.60,-11.45,-62.23:99
-chr1	964525	rs2465135	G	T	124.08	PASS	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=1.24;MQ=58.59;MQ0=0;OQ=621.72;QD=18.84;SB=-320.48	GT:AD:DP:GL:GQ	0/1:13,20:32:-75.10,-9.64,-38.41:99
-chr1	964757	rs3121578	C	T	344.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=28;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.81;MQ0=0;OQ=283.06;QD=10.11;SB=-156.67	GT:AD:DP:GL:GQ	0/1:18,10:26:-39.43,-7.84,-52.76:99
-chr1	964996	rs3121579	T	A	109.73	PASS	AC=1;AF=0.50;AN=2;DB;DP=31;Dels=0.00;HRun=0;HaplotypeScore=0.97;MQ=59.40;MQ0=0;OQ=475.63;QD=15.34;SB=-146.82	GT:AD:DP:GL:GQ	0/1:15,16:30:-59.88,-9.04,-53.03:99
-chr1	965565	rs9331224	A	G	58.24	PASS	AC=1;AF=0.50;AN=2;DB;DP=35;Dels=0.00;HRun=2;HaplotypeScore=1.21;MQ=58.67;MQ0=0;OQ=414.04;QD=11.83;SB=-233.27	GT:AD:DP:GL:GQ	0/1:19,16:32:-54.33,-9.64,-64.60:99
-chr1	967066	rs3121552	G	C	40.51	LowQual	AC=1;AF=0.50;AN=2;DB;DP=5;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;QD=8.10;SB=-43.44	GT:AD:DP:GL:GQ	0/1:3,2:4:-8.54,-1.21,-8.39:71.79
-chr1	967193	rs2799066	T	C	15.85	LowQual	AC=1;AF=0.50;AN=2;DB;DP=8;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=57.05;MQ0=0;QD=1.98;SB=-24.63	GT:AD:DP:GL:GQ	0/1:6,2:8:-7.27,-2.41,-22.53:48.57
-chr1	967433	rs2710876	G	A	2.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=26;Dels=0.00;HRun=0;HaplotypeScore=7.34;MQ=57.29;MQ0=0;OQ=207.99;QD=8.00;SB=-101.60	GT:AD:DP:GL:GQ	0/1:14,12:21:-30.42,-6.34,-38.59:99
-chr1	967643	rs2710875	C	T	1.07	PASS	AC=1;AF=0.50;AN=2;DB;DP=31;Dels=0.00;HRun=0;HaplotypeScore=4.71;MQ=57.25;MQ0=0;OQ=665.34;QD=21.46;SB=-289.34	GT:AD:DP:GL:GQ	0/1:11,20:28:-78.26,-8.44,-23.82:99
-chr1	970323	rs3128097	G	A	1.18	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=9.72;MQ=59.47;MQ0=0;OQ=926.21;QD=16.84;SB=-308.84	GT:AD:DP:GL:GQ	0/1:24,31:51:-111.27,-15.36,-80.98:99
-chr1	970950	rs3128098	A	G	264.56	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=57.28;MQ0=0;OQ=593.17;QD=14.83;SB=-270.38	GT:AD:DP:GL:GQ	0/1:15,24:36:-73.46,-10.85,-50.98:99
-chr1	971794	rs2465128	A	G	68.21	PASS	AC=1;AF=0.50;AN=2;DB;DP=27;Dels=0.00;HRun=0;HaplotypeScore=0.10;MQ=60.00;MQ0=0;OQ=206.80;QD=7.66;SB=-83.65	GT:AD:DP:GL:GQ	0/1:13,14:23:-30.90,-6.93,-51.94:99
-chr1	972307	rs3128099	A	G	0.33	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=3;HaplotypeScore=7.82;MQ=57.77;MQ0=0;OQ=622.11;QD=14.81;SB=-282.64	GT:AD:DP:GL:GQ	0/1:15,25:37:-76.65,-11.15,-58.34:99
-chr1	972325	rs3128100	T	C	8.29	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=4.33;MQ=57.56;MQ0=0;OQ=1298.64;QD=27.06;SB=-459.21	GT:AD:DP:GL:GQ	1/1:0,48:42:-133.49,-12.67,-0.04:99
-chr1	972376	rs3128101	T	C	10.73	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=5.66;MQ=56.76;MQ0=0;OQ=571.56;QD=13.94;SB=-141.55	GT:AD:DP:GL:GQ	0/1:15,25:36:-73.37,-12.93,-53.37:99
-chr1	972804	rs3128102	T	C	4.22	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=3;HaplotypeScore=3.75;MQ=59.50;MQ0=0;OQ=547.08;QD=11.89;SB=-200.60	GT:AD:DP:GL:GQ	0/1:23,23:37:-69.14,-11.15,-71.89:99
-chr1	972857	rs10267	T	C	1.79	PASS	AC=1;AF=0.50;AN=2;DB;DP=34;Dels=0.00;HRun=1;HaplotypeScore=2.51;MQ=58.63;MQ0=0;OQ=633.32;QD=18.63;SB=-175.96	GT:AD:DP:GL:GQ	0/1:12,21:33:-76.56,-9.94,-48.12:99
-chr1	974010	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=19;Dels=0.00;HRun=20;HaplotypeScore=11.22;MQ=50.83;MQ0=0;OQ=57.83;QD=3.04;SB=2.03	GT:AD:DP:GL:GQ	0/1:15,4:17:-14.19,-5.12,-41.74:90.67
-chr1	974165	rs9442391	T	C	32.20	PASS	AC=1;AF=0.50;AN=2;DB;DP=26;Dels=0.00;HRun=1;HaplotypeScore=1.12;MQ=57.07;MQ0=0;OQ=302.47;QD=11.63;SB=-10.00	GT:AD:DP:GL:GQ	0/1:13,13:22:-40.16,-6.63,-43.34:99
-chr1	975129	rs2275813	C	T	11.79	PASS	AC=1;AF=0.50;AN=2;DB;DP=5;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=56.16;MQ0=0;OQ=102.58;QD=20.52;SB=-45.66	GT:AD:DP:GL:GQ	0/1:1,4:5:-15.04,-1.51,-2.70:11.90
-chr1	975309	rs2275812	G	T	1.40	PASS	AC=1;AF=0.50;AN=2;DB;DP=11;Dels=0.00;HRun=0;HaplotypeScore=7.77;MQ=59.16;MQ0=0;OQ=108.56;QD=9.87;SB=-36.92	GT:AD:DP:GL:GQ	0/1:5,6:10:-17.15,-3.01,-16.77:99
-chr1	975312	rs56255212	G	A	0.19	PASS	AC=1;AF=0.50;AN=2;DB;DP=11;Dels=0.00;HRun=0;HaplotypeScore=7.96;MQ=57.00;MQ0=0;OQ=248.84;QD=22.62;SB=-118.97	GT:AD:DP:GL:GQ	0/1:2,9:10:-31.18,-3.01,-6.57:35.54
-chr1	976306	rs2710887	C	T	180.42	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=498.86;QD=13.13;SB=-206.20	GT:AD:DP:GL:GQ	0/1:21,17:37:-64.33,-11.16,-66.50:99
-chr1	977063	rs9803031	C	T	254.02	PASS	AC=1;AF=0.50;AN=2;DB;DP=31;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.50;MQ0=0;OQ=585.89;QD=18.90;SB=-309.86	GT:AD:DP:GL:GQ	0/1:13,18:30:-70.92,-9.05,-35.55:99
-chr1	977533	rs13303287	T	G	495.76	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.28;MQ0=0;OQ=796.56;QD=13.73;SB=-424.70	GT:AD:DP:GL:GQ	0/1:25,33:58:-100.42,-17.48,-92.24:99
-chr1	978366	rs2799071	A	T	261.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=1;HaplotypeScore=1.31;MQ=60.00;MQ0=0;OQ=849.34;QD=16.33;SB=-440.60	GT:AD:DP:GL:GQ	0/1:23,29:48:-102.68,-14.47,-71.41:99
-chr1	978795	rs2710871	G	C	22.28	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=3;HaplotypeScore=0.83;MQ=58.33;MQ0=0;OQ=743.65;QD=17.71;SB=-370.12	GT:AD:DP:GL:GQ	0/1:18,24:36:-88.51,-10.86,-57.89:99
-chr1	980143	rs4275402	C	T	40.06	PASS	AC=2;AF=1.00;AN=2;DB;DP=25;Dels=0.00;HRun=0;HaplotypeScore=2.15;MQ=58.13;MQ0=0;OQ=896.64;QD=35.87;SB=-438.31	GT:AD:DP:GL:GQ	1/1:0,25:24:-93.26,-7.23,-0.01:72.23
-chr1	980380	rs2710872	C	T	78.16	PASS	AC=1;AF=0.50;AN=2;DB;DP=30;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=549.92;QD=18.33;SB=-189.29	GT:AD:DP:GL:GQ	0/1:12,18:27:-66.42,-8.14,-30.90:99
-chr1	980636	rs2799072	C	T	101.12	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=1.72;MQ=60.00;MQ0=0;OQ=1104.80;QD=20.09;SB=-396.92	GT:AD:DP:GL:GQ	0/1:22,33:54:-130.03,-16.27,-75.12:99
-chr1	980669	rs2799073	G	A	136.86	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=0.91;MQ=60.00;MQ0=0;OQ=1001.06;QD=20.02;SB=-407.16	GT:AD:DP:GL:GQ	0/1:17,32:47:-117.55,-14.17,-57.43:99
-chr1	980847	rs8014	G	A	99.13	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=656.29;QD=17.27;SB=-261.26	GT:AD:DP:GL:GQ	0/1:18,20:38:-80.37,-11.45,-56.60:99
-chr1	981587	rs3121562	C	T	350.10	PASS	AC=1;AF=0.50;AN=2;DB;DP=27;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=54.79;MQ0=0;OQ=354.87;QD=13.14;SB=-164.15	GT:AD:DP:GL:GQ	0/1:12,15:25:-46.32,-7.55,-37.60:99
-chr1	981840	rs4970400	G	A	115.33	SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=38.45;MQ=54.81;MQ0=0;QD=3.04;SB=-51.02	GT:AD:DP:GL:GQ	0/1:30,8:33:-24.78,-9.96,-81.20:99
-chr1	981844	rs13303259	A	G	138.38	SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=33.28;MQ=55.32;MQ0=0;QD=3.29;SB=-90.63	GT:AD:DP:GL:GQ	0/1:32,10:37:-28.28,-11.16,-110.43:99
-chr1	981845	rs2710885	T	C	325.46	SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=29.31;MQ=55.32;MQ0=0;QD=7.75;SB=-95.70	GT:AD:DP:GL:GQ	0/1:24,18:34:-46.08,-10.25,-78.60:99
-chr1	981905	rs3121564	C	T	503.25	Indel	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=2.81;MQ=56.07;MQ0=0;QD=13.24;SB=-230.23	GT:AD:DP:GL:GQ	0/1:19,19:34:-63.86,-10.25,-57.54:99
-chr1	981947	rs2710886	T	C	139.57	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=2.81;MQ=57.30;MQ0=0;OQ=454.51;QD=9.88;SB=-191.43	GT:AD:DP:GL:GQ	0/1:25,21:45:-62.31,-13.57,-94.53:99
-chr1	981957	rs2799074	T	C	39.32	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=2.69;MQ=57.39;MQ0=0;OQ=362.93;QD=6.48;SB=-127.51	GT:AD:DP:GL:GQ	0/1:32,23:44:-52.84,-13.27,-101.58:99
-chr1	982190	rs2245754	C	T	115.77	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=1;HaplotypeScore=2.93;MQ=56.87;MQ0=0;OQ=667.97;QD=12.60;SB=-322.42	GT:AD:DP:GL:GQ	0/1:29,24:49:-84.84,-14.76,-98.05:99
-chr1	982682	rs9331226	G	A	139.28	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=1;HaplotypeScore=1.00;MQ=47.23;MQ0=0;OQ=1563.99;QD=20.85;SB=-791.90	GT:AD:DP:GL:GQ	0/1:29,46:74:-181.97,-22.29,-107.08:99
-chr1	983223	rs13303240	C	A	201.17	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=1.66;MQ=58.32;MQ0=0;OQ=838.66;QD=15.82;SB=-290.67	GT:AD:DP:GL:GQ	0/1:25,28:52:-102.82,-15.67,-74.49:99
-chr1	984254	rs2488991	G	T	204.10	PASS	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=1.29;MQ=58.59;MQ0=0;OQ=458.34;QD=13.89;SB=-201.49	GT:AD:DP:GL:GQ	0/1:13,19:30:-58.16,-9.04,-45.43:99
-chr1	985344	rs9442393	T	G	429.35	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=599.53;QD=14.99;SB=-298.50	GT:AD:DP:GL:GQ	0/1:18,22:39:-74.98,-11.75,-60.16:99
-chr1	987271	rs28397086	T	C	29.44	PASS	AC=2;AF=1.00;AN=2;DB;DP=16;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=55.90;MQ0=0;OQ=513.69;QD=32.11;SB=-117.05	GT:AD:DP:GL:GQ	1/1:0,16:15:-54.96,-4.52,-0.01:45.13
-chr1	988258	rs7526076	A	G	181.81	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=3.08;MQ=59.56;MQ0=0;OQ=852.42;QD=16.08;SB=-332.31	GT:AD:DP:GL:GQ	0/1:24,29:52:-104.19,-15.67,-91.85:99
-chr1	988445	rs3813194	G	C	229.28	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.93;MQ=58.48;MQ0=0;OQ=676.17;QD=16.90;SB=-324.02	GT:AD:DP:GL:GQ	0/1:19,21:38:-82.36,-11.46,-78.97:99
-chr1	990019	rs11584349	C	T	5.80	PASS	AC=1;AF=0.50;AN=2;DB;DP=12;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=221.74;QD=18.48;SB=-10.00	GT:AD:DP:GL:GQ	0/1:5,7:12:-29.08,-3.62,-14.98:99
-chr1	991040	rs4970401	G	C	199.01	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.63;MQ0=0;OQ=1348.36;QD=21.75;SB=-452.37	GT:AD:DP:GL:GQ	0/1:27,35:61:-156.51,-18.39,-101.07:99
-chr1	992297	rs11260596	C	T	126.12	PASS	AC=1;AF=0.50;AN=2;DB;DP=20;Dels=0.00;HRun=0;HaplotypeScore=0.58;MQ=58.11;MQ0=0;OQ=235.14;QD=11.76;SB=-75.09	GT:AD:DP:GL:GQ	0/1:10,10:18:-32.23,-5.43,-30.14:99
-chr1	992795	rs4246502	C	G	1.88	PASS	AC=1;AF=0.50;AN=2;DB;DP=13;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=58.20;MQ0=0;OQ=331.32;QD=25.49;SB=-10.00	GT:AD:DP:GL:GQ	0/1:3,10:12:-40.03,-3.62,-11.85:82.27
-chr1	992916	rs4074992	C	T	64.57	PASS	AC=1;AF=0.50;AN=2;DB;DP=18;Dels=0.00;HRun=0;HaplotypeScore=0.58;MQ=58.96;MQ0=0;OQ=236.09;QD=13.12;SB=-45.65	GT:AD:DP:GL:GQ	0/1:9,9:18:-32.32,-5.43,-28.25:99
-chr1	993492	rs4075116	C	T	510.01	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=697.41;QD=15.16;SB=-277.76	GT:AD:DP:GL:GQ	0/1:23,23:43:-85.98,-12.96,-73.34:99
-chr1	994820	rs4073176	G	A	10.79	PASS	AC=1;AF=0.50;AN=2;DB;DP=9;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=60.00;MQ0=0;OQ=141.42;QD=15.71;SB=-0.98	GT:AD:DP:GL:GQ	0/1:4,5:9:-20.14,-2.71,-13.80:99
-chr1	994843	rs4073177	G	A	1.13	PASS	AC=1;AF=0.50;AN=2;DB;DP=11;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=225.74;QD=20.52;SB=-3.99	GT:AD:DP:GL:GQ	0/1:4,7:11:-29.17,-3.31,-13.13:98.16
-chr1	995932	rs55918415	G	A	129.98	PASS	AC=1;AF=0.50;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=1.07;MQ=57.98;MQ0=1;OQ=500.10;QD=13.89;SB=-124.09	GT:AD:DP:GL:GQ	0/1:20,16:33:-63.24,-9.94,-54.88:99
-chr1	996086	rs9442394	G	A	160.48	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=1;HaplotypeScore=2.17;MQ=59.51;MQ0=0;OQ=685.95;QD=14.59;SB=-304.81	GT:AD:DP:GL:GQ	0/1:25,22:45:-85.44,-13.56,-78.07:99
-chr1	996853	rs4326571	G	A	22.99	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=3.32;MQ=58.90;MQ0=0;OQ=529.40;QD=13.93;SB=-35.65	GT:AD:DP:GL:GQ	0/1:21,17:38:-67.68,-11.45,-66.25:99
-chr1	999097	rs9442366	T	C	69.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=1.42;MQ=59.30;MQ0=0;OQ=217.52;QD=6.59;SB=-81.95	GT:AD:DP:GL:GQ	0/1:21,12:31:-34.38,-9.34,-81.07:99
-chr1	999304	.	G	A	28.33	PASS	AC=1;AF=0.50;AN=2;DP=34;Dels=0.00;HRun=0;HaplotypeScore=2.93;MQ=57.94;MQ0=0;OQ=327.19;QD=9.62;SB=-182.19	GT:AD:DP:GL:GQ	0/1:21,13:31:-45.35,-9.34,-65.26:99
-chr1	999341	rs9442367	G	C	25.99	PASS	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.00;HRun=2;HaplotypeScore=0.81;MQ=58.59;MQ0=0;OQ=590.30;QD=17.89;SB=-256.14	GT:AD:DP:GL:GQ	0/1:14,19:30:-71.37,-9.06,-48.75:99
-chr1	1000580	rs9442368	C	T	47.69	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=4.96;MQ=54.71;MQ0=0;OQ=650.78;QD=15.49;SB=-262.79	GT:AD:DP:GL:GQ	0/1:21,21:39:-80.11,-11.75,-60.91:99
-chr1	1000958	rs11810785	A	G	695.93	Indel	AC=2;AF=1.00;AN=2;DB;DP=26;Dels=0.00;HRun=6;HaplotypeScore=2.96;MQ=54.24;MQ0=1;QD=26.77;SB=-339.63	GT:AD:DP:GL:GQ	1/1:0,26:21:-73.19,-6.33,-0.01:63.17
-chr1	1001394	.	T	C	34.95	LowQual	AC=1;AF=0.50;AN=2;DP=9;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=41.30;MQ0=1;QD=3.88;SB=-6.99	GT:AD:DP:GL:GQ	0/1:6,3:8:-9.19,-2.41,-20.53:67.78
-chr1	1001500	.	A	T	20.13	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=25;Dels=0.00;HRun=0;HaplotypeScore=0.48;MQ=16.78;MQ0=8;QD=0.81;SB=-10.00	GT:AD:DP:GL:GQ	0/1:19,5:9:-8.01,-2.72,-22.07:52.92
-chr1	1002064	.	G	C	10.08	LowQual	AC=1;AF=0.50;AN=2;DP=2;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=22.77;MQ0=0;QD=5.04;SB=-10.00	GT:AD:DP:GL:GQ	0/1:1,1:1:-4.25,-0.30,-0.00:1.76
-chr1	1002464	.	A	T	1.23	PASS	AC=1;AF=0.50;AN=2;DP=16;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=18.46;MQ0=3;OQ=57.47;QD=3.59;SB=-37.37	GT:AD:DP:GL:GQ	0/1:8,7:4:-10.24,-1.21,-3.80:25.95
-chr1	1002488	.	A	T	34.11	LowQual	AC=1;AF=0.50;AN=2;DP=15;Dels=0.00;HRun=0;HaplotypeScore=7.23;MQ=19.96;MQ0=3;QD=2.27;SB=-4.00	GT:AD:DP:GL:GQ	0/1:9,6:4:-7.90,-1.21,-5.60:43.89
-chr1	1002494	.	A	T	35.11	LowQual	AC=1;AF=0.50;AN=2;DP=14;Dels=0.00;HRun=0;HaplotypeScore=4.75;MQ=19.72;MQ0=3;QD=2.51;SB=-7.00	GT:AD:DP:GL:GQ	0/1:7,7:3:-7.70,-0.90,-3.30:23.95
-chr1	1002516	.	G	A	46.02	LowQual	AC=2;AF=1.00;AN=2;DP=10;Dels=0.00;HRun=0;HaplotypeScore=4.77;MQ=18.44;MQ0=1;QD=4.60;SB=-10.00	GT:AD:DP:GL:GQ	1/1:5,5:2:-8.01,-0.60,-0.00:6.02
-chr1	1002856	.	T	G	12.29	PASS	AC=1;AF=0.50;AN=2;DP=20;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=29.33;MQ0=1;OQ=106.33;QD=5.32;SB=-21.95	GT:AD:DP:GL:GQ	0/1:10,10:13:-17.84,-3.92,-27.80:99
-chr1	1003100	.	C	T	26.46	LowQual	AC=1;AF=0.50;AN=2;DP=10;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=39.70;MQ0=0;QD=2.65;SB=-3.99	GT:AD:DP:GL:GQ	0/1:8,2:6:-7.74,-1.81,-13.13:59.28
-chr1	1003243	.	G	C	4.11	PASS	AC=2;AF=1.00;AN=2;DP=24;Dels=0.00;HRun=0;HaplotypeScore=4.94;MQ=27.95;MQ0=9;OQ=330.47;QD=13.77;SB=-94.94	GT:AD:DP:GL:GQ	1/1:14,10:9:-36.64,-2.72,-0.01:27.09
-chr1	1003514	.	C	A	42.25	LowQual	AC=2;AF=1.00;AN=2;DP=6;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=28.30;MQ0=1;QD=7.04;SB=-46.39	GT:AD:DP:GL:GQ	1/1:0,6:2:-7.63,-0.60,-0.00:6.02
-chr1	1003557	.	T	A	0.08	PASS	AC=1;AF=0.50;AN=2;DP=24;Dels=0.00;HRun=0;HaplotypeScore=5.02;MQ=17.13;MQ0=14;OQ=71.49;QD=2.98;SB=-43.38	GT:AD:DP:GL:GQ	0/1:21,3:4:-11.64,-1.20,-3.64:24.35
-chr1	1003864	.	G	C	10.99	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=19;Dels=0.00;HRun=0;HaplotypeScore=9.87;MQ=5.60;MQ0=15;QD=0.58;SB=-10.00	GT:AD:DP:GL:GQ	0/1:17,2:1:-4.35,-0.30,-0.00:1.76
-chr1	1004168	.	A	T	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=21;Dels=0.00;HRun=0;HaplotypeScore=12.18;MQ=19.95;MQ0=11;OQ=53.86;QD=2.56;SB=-37.95	GT:AD:DP:GL:GQ	0/1:14,6:6:-10.48,-1.81,-11.22:86.70
-chr1	1004254	.	G	C	33.05	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=25;Dels=0.00;HRun=1;HaplotypeScore=6.90;MQ=13.09;MQ0=11;QD=1.32;SB=-10.00	GT:AD:DP:GL:GQ	0/1:13,12:4:-7.80,-1.21,-8.59:65.89
-chr1	1004313	.	G	C	21.04	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=25;Dels=0.00;HRun=0;HaplotypeScore=2.56;MQ=11.38;MQ0=14;QD=0.84;SB=-3.98	GT:AD:DP:GL:GQ	0/1:23,2:6:-7.19,-1.81,-17.58:53.84
-chr1	1004699	rs12401605	A	G	193.45	PASS	AC=1;AF=0.50;AN=2;DB;DP=30;Dels=0.00;HRun=0;HaplotypeScore=0.97;MQ=54.82;MQ0=0;OQ=256.92;QD=8.56;SB=-154.32	GT:AD:DP:GL:GQ	0/1:17,12:28:-37.42,-8.44,-63.53:99
-chr1	1004727	rs12411041	T	A	29.53	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=2.31;MQ=54.35;MQ0=0;OQ=225.92;QD=6.11;SB=-72.06	GT:AD:DP:GL:GQ	0/1:25,11:32:-35.52,-9.65,-76.83:99
-chr1	1004989	rs36027499	A	G	65.38	PASS	AC=1;AF=0.50;AN=2;DB;DP=25;Dels=0.00;HRun=1;HaplotypeScore=0.99;MQ=54.55;MQ0=0;OQ=184.41;QD=7.38;SB=-109.60	GT:AD:DP:GL:GQ	0/1:16,9:24:-28.96,-7.24,-58.60:99
-chr1	1005120	rs9442369	A	G	5.28	PASS	AC=1;AF=0.50;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=2.83;MQ=59.36;MQ0=0;OQ=146.76;QD=4.08;SB=-64.75	GT:AD:DP:GL:GQ	0/1:26,10:34:-28.21,-10.25,-99.59:99
-chr1	1005414	rs9442370	C	T	185.20	PASS	AC=1;AF=0.50;AN=2;DB;DP=30;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=59.23;MQ0=0;OQ=413.23;QD=13.77;SB=-165.25	GT:AD:DP:GL:GQ	0/1:14,16:26:-52.45,-7.84,-38.57:99
-chr1	1005680	rs12746483	G	A	50.56	PASS	AC=1;AF=0.50;AN=2;DB;DP=28;Dels=0.00;HRun=1;HaplotypeScore=2.06;MQ=55.16;MQ0=0;OQ=462.98;QD=16.54;SB=-241.55	GT:AD:DP:GL:GQ	0/1:13,15:28:-58.02,-8.44,-44.58:99
-chr1	1007033	rs3766193	C	G	206.38	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=1;HaplotypeScore=1.18;MQ=57.65;MQ0=0;OQ=606.89;QD=15.97;SB=-241.40	GT:AD:DP:GL:GQ	0/1:19,19:36:-74.82,-10.85,-77.35:99
-chr1	1007060	rs3766192	C	T	263.39	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=2.29;MQ=59.03;MQ0=0;OQ=740.51;QD=17.22;SB=-335.87	GT:AD:DP:GL:GQ	0/1:19,24:42:-90.01,-12.67,-54.97:99
-chr1	1007204	rs1133647	G	T	220.81	PASS	AC=1;AF=0.50;AN=2;DB;DP=34;Dels=0.00;HRun=0;HaplotypeScore=0.97;MQ=58.63;MQ0=0;OQ=352.30;QD=10.36;SB=-144.83	GT:AD:DP:GL:GQ	0/1:20,14:34:-48.76,-10.25,-68.42:99
-chr1	1008007	rs9442395	T	C	79.76	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=1;HaplotypeScore=3.17;MQ=58.20;MQ0=0;OQ=515.12;QD=11.71;SB=-260.59	GT:AD:DP:GL:GQ	0/1:23,21:43:-67.76,-12.96,-87.04:99
-chr1	1008425	rs9442371	C	T	263.64	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=1.96;MQ=58.95;MQ0=0;OQ=629.69;QD=14.31;SB=-217.52	GT:AD:DP:GL:GQ	0/1:24,20:39:-78.01,-11.76,-59.01:99
-chr1	1008567	rs9442372	A	G	252.74	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=3.72;MQ=58.97;MQ0=0;OQ=538.45;QD=11.97;SB=-254.34	GT:AD:DP:GL:GQ	0/1:20,24:42:-69.79,-12.66,-79.04:99
-chr1	1009038	rs2298215	C	G	217.10	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=1.14;MQ=60.00;MQ0=0;OQ=687.91;QD=14.95;SB=-237.07	GT:AD:DP:GL:GQ	0/1:26,20:46:-85.94,-13.87,-107.64:99
-chr1	1009043	rs9442396	T	C	432.81	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=537.22;QD=11.94;SB=-291.59	GT:AD:DP:GL:GQ	0/1:24,21:42:-69.65,-12.65,-93.39:99
-chr1	1010269	rs9442397	T	C	3.22	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=1;HaplotypeScore=2.96;MQ=59.38;MQ0=0;OQ=202.19;QD=5.46;SB=-53.82	GT:AD:DP:GL:GQ	0/1:25,12:35:-34.05,-10.54,-100.39:99
-chr1	1011278	rs3737728	A	G	36.30	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=1;HaplotypeScore=3.58;MQ=58.01;MQ0=0;OQ=401.40;QD=7.72;SB=-209.34	GT:AD:DP:GL:GQ	0/1:32,20:49:-58.20,-14.77,-121.11:99
-chr1	1011558	rs9442398	A	G	416.42	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=1.05;MQ=58.92;MQ0=0;OQ=544.78;QD=12.67;SB=-280.28	GT:AD:DP:GL:GQ	0/1:17,25:38:-69.23,-11.47,-56.30:99
-chr1	1011900	rs6701114	C	T	240.77	PASS	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=1.59;MQ=59.30;MQ0=0;OQ=587.87;QD=17.81;SB=-314.84	GT:AD:DP:GL:GQ	0/1:13,20:30:-71.11,-9.04,-40.79:99
-chr1	1013307	rs9442399	C	G	25.25	PASS	AC=2;AF=1.00;AN=2;DB;DP=9;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=338.37;QD=37.60;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,9:9:-37.42,-2.71,-0.00:27.09
-chr1	1015133	.	C	T	6.55	PASS	AC=1;AF=0.50;AN=2;DP=44;Dels=0.00;HRun=0;HaplotypeScore=4.91;MQ=59.48;MQ0=0;OQ=504.60;QD=11.47;SB=-145.62	GT:AD:DP:GL:GQ	0/1:26,18:38:-65.20,-11.46,-67.24:99
-chr1	1015164	rs9442400	T	C	212.54	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=1.13;MQ=59.61;MQ0=0;OQ=1416.80;QD=29.52;SB=-594.18	GT:AD:DP:GL:GQ	1/1:0,48:47:-145.32,-14.18,-0.06:99
-chr1	1016570	rs4074137	C	A	81.77	PASS	AC=1;AF=0.50;AN=2;DB;DP=31;Dels=0.00;HRun=0;HaplotypeScore=2.84;MQ=60.00;MQ0=0;OQ=196.23;QD=6.33;SB=-112.43	GT:AD:DP:GL:GQ	0/1:22,9:30:-31.95,-9.04,-69.97:99
-chr1	1016664	rs4562563	T	A	69.49	PASS	AC=1;AF=0.50;AN=2;DB;DP=23;Dels=0.00;HRun=0;HaplotypeScore=1.07;MQ=58.99;MQ0=0;OQ=428.33;QD=18.62;SB=-222.84	GT:AD:DP:GL:GQ	0/1:8,15:23:-53.05,-6.93,-28.44:99
-chr1	1021403	rs9651273	A	G	292.85	PASS	AC=1;AF=0.50;AN=2;DB;DP=69;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=648.57;QD=9.40;SB=-308.20	GT:AD:DP:GL:GQ	0/1:44,25:69:-88.92,-20.78,-180.93:99
-chr1	1022047	rs9651272	A	G	123.66	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=1;HaplotypeScore=0.74;MQ=59.58;MQ0=0;OQ=389.06;QD=8.84;SB=-195.60	GT:AD:DP:GL:GQ	0/1:25,19:42:-54.85,-12.66,-100.05:99
-chr1	1023862	rs4970353	C	T	10.88	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=5;HaplotypeScore=0.00;MQ=59.62;MQ0=0;OQ=971.03;QD=16.18;SB=-472.48	GT:AD:DP:GL:GQ	0/1:30,30:59:-118.16,-17.77,-101.63:99
-chr1	1025668	rs12759295	G	A	84.62	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.90;MQ=59.60;MQ0=0;OQ=2089.51;QD=36.03;SB=-522.67	GT:AD:DP:GL:GQ	1/1:0,58:54:-212.56,-16.27,-0.02:99
-chr1	1026680	rs61766341	T	C	205.76	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=959.29;QD=13.51;SB=-415.84	GT:AD:DP:GL:GQ	0/1:32,39:68:-119.71,-20.50,-125.74:99
-chr1	1026910	rs12134754	C	T	210.31	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=1.52;MQ=59.33;MQ0=0;OQ=1080.76;QD=17.43;SB=-366.87	GT:AD:DP:GL:GQ	0/1:30,32:60:-129.44,-18.08,-89.78:99
-chr1	1027893	.	T	A	15.04	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=38;Dels=0.00;HRun=20;HaplotypeScore=5.87;MQ=44.25;MQ0=4;QD=0.40;SB=32.13	GT:AD:DP:GL:GQ	0/1:33,5:23:-11.70,-6.93,-76.52:47.73
-chr1	1037844	rs11584392	G	A	163.44	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=3.18;MQ=59.82;MQ0=0;OQ=608.74;QD=14.16;SB=-241.74	GT:AD:DP:GL:GQ	0/1:22,21:40:-76.22,-12.06,-65.82:99
-chr1	1043248	rs4970408	C	T	441.42	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.36;MQ0=0;OQ=945.52;QD=17.51;SB=-425.94	GT:AD:DP:GL:GQ	0/1:25,29:54:-114.11,-16.27,-86.23:99
-chr1	1050037	rs7548798	C	T	114.73	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=1;HaplotypeScore=3.36;MQ=58.61;MQ0=0;OQ=733.89;QD=15.61;SB=-330.30	GT:AD:DP:GL:GQ	0/1:24,23:47:-90.84,-14.17,-83.86:99
-chr1	1050038	rs7556082	T	C	10.07	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=4;HaplotypeScore=2.36;MQ=58.61;MQ0=0;OQ=528.95;QD=11.25;SB=-283.60	GT:AD:DP:GL:GQ	0/1:24,23:46:-70.05,-13.87,-95.38:99
-chr1	1050218	rs12567855	G	C	18.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=36;Dels=0.00;HRun=2;HaplotypeScore=1.10;MQ=59.48;MQ0=0;OQ=549.12;QD=15.25;SB=-150.55	GT:AD:DP:GL:GQ	0/1:19,17:33:-68.15,-9.95,-68.62:99
-chr1	1050923	.	C	G	38.31	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=54;Dels=0.00;HRun=2;HaplotypeScore=7.12;MQ=59.57;MQ0=0;QD=0.71;SB=62.24	GT:AD:DP:GL:GQ	0/1:40,14:36:-17.98,-10.86,-134.66:71.15
-chr1	1051029	rs11807848	T	C	153.72	PASS	AC=1;AF=0.50;AN=2;DB;DP=35;Dels=0.00;HRun=1;HaplotypeScore=0.10;MQ=60.00;MQ0=0;OQ=328.64;QD=9.39;SB=-171.94	GT:AD:DP:GL:GQ	0/1:21,14:34:-46.39,-10.24,-82.90:99
-chr1	1051657	rs34530354	A	G	139.07	PASS	AC=1;AF=0.50;AN=2;DB;DP=31;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.25;MQ0=0;OQ=341.50;QD=11.02;SB=-128.73	GT:AD:DP:GL:GQ	0/1:17,14:30:-46.47,-9.04,-63.98:99
-chr1	1051711	rs35207507	A	G	157.75	PASS	AC=1;AF=0.50;AN=2;DB;DP=25;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=57.36;MQ0=0;OQ=232.59;QD=9.30;SB=-75.78	GT:AD:DP:GL:GQ	0/1:12,13:22:-33.17,-6.63,-47.34:99
-chr1	1051888	rs9329411	A	G	8.12	PASS	AC=1;AF=0.50;AN=2;DB;DP=22;Dels=0.00;HRun=3;HaplotypeScore=0.32;MQ=58.95;MQ0=0;OQ=307.14;QD=13.96;SB=-152.31	GT:AD:DP:GL:GQ	0/1:10,12:20:-40.02,-6.03,-35.33:99
-chr1	1052501	rs9442373	C	A	218.78	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=0.96;MQ=59.03;MQ0=0;OQ=1229.67;QD=18.35;SB=-293.35	GT:AD:DP:GL:GQ	0/1:29,38:65:-145.84,-19.58,-78.11:99
-chr1	1052907	rs7545801	A	G	1.69	PASS	AC=2;AF=1.00;AN=2;DB;DP=32;Dels=0.00;HRun=2;HaplotypeScore=2.49;MQ=60.00;MQ0=0;OQ=935.67;QD=29.24;SB=-247.57	GT:AD:DP:GL:GQ	1/1:0,32:30:-97.17,-9.04,-0.02:90.21
-chr1	1053104	rs4970413	G	T	111.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=2.50;MQ=59.42;MQ0=0;OQ=637.82;QD=15.95;SB=-209.62	GT:AD:DP:GL:GQ	0/1:16,24:36:-77.92,-10.85,-38.08:99
-chr1	1053355	rs55945496	G	A	154.74	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=2.47;MQ=58.97;MQ0=0;OQ=692.26;QD=15.38;SB=-240.56	GT:AD:DP:GL:GQ	0/1:24,21:40:-84.57,-12.06,-60.15:99
-chr1	1054398	rs6682475	G	C	62.97	PASS	AC=1;AF=0.50;AN=2;DB;DP=32;Dels=0.00;HRun=1;HaplotypeScore=3.35;MQ=57.20;MQ0=0;OQ=522.88;QD=16.34;SB=-284.57	GT:AD:DP:GL:GQ	0/1:16,16:32:-65.22,-9.65,-67.94:99
-chr1	1054533	rs7547403	C	G	0.36	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=4;HaplotypeScore=0.79;MQ=59.42;MQ0=0;OQ=1637.77;QD=40.94;SB=-672.45	GT:AD:DP:GL:GQ	1/1:0,40:39:-167.38,-11.75,-0.02:99
-chr1	1054665	rs2298216	T	C	152.44	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=2.44;MQ=59.60;MQ0=0;OQ=1938.74;QD=34.01;SB=-772.11	GT:AD:DP:GL:GQ	1/1:0,57:57:-197.48,-17.17,-0.02:99
-chr1	1055159	rs4072537	T	C	138.47	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=51.50;MQ0=0;OQ=1817.15;QD=30.80;SB=-665.83	GT:AD:DP:GL:GQ	1/1:0,59:56:-185.34,-16.89,-0.04:99
-chr1	1055460	rs9442357	C	A	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.04;HRun=20;HaplotypeScore=17.31;MQ=48.11;MQ0=2;OQ=1123.16;QD=23.90;SB=-311.46	GT:AD:DP:GL:GQ	1/1:9,36:37:-122.62,-11.15,-6.72:44.32
-chr1	1056122	rs4072496	G	C	273.90	PASS	AC=2;AF=1.00;AN=2;DB;DP=26;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.11;MQ0=0;OQ=828.08;QD=31.85;SB=-146.57	GT:AD:DP:GL:GQ	1/1:0,26:22:-86.41,-6.64,-0.02:66.21
-chr1	1056145	rs10907181	A	G	65.29	PASS	AC=2;AF=1.00;AN=2;DB;DP=30;Dels=0.00;HRun=0;HaplotypeScore=1.42;MQ=60.00;MQ0=0;OQ=849.61;QD=28.32;SB=-350.43	GT:AD:DP:GL:GQ	1/1:0,30:29:-88.58,-8.75,-0.04:87.15
-chr1	1056266	rs10907182	T	C	152.84	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.47;MQ0=0;OQ=1343.61;QD=29.86;SB=-493.15	GT:AD:DP:GL:GQ	1/1:0,45:43:-137.99,-12.97,-0.04:99
-chr1	1056679	.	A	G	17.68	PASS	AC=2;AF=1.00;AN=2;DP=27;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=33.92;MQ0=0;OQ=622.64;QD=23.06;SB=-77.91	GT:AD:DP:GL:GQ	1/1:0,27:19:-65.86,-5.72,-0.01:57.16
-chr1	1056682	rs7513297	A	G	4.15	PASS	AC=2;AF=1.00;AN=2;DB;DP=27;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=33.92;MQ0=0;OQ=613.60;QD=22.73;SB=-73.89	GT:AD:DP:GL:GQ	1/1:0,27:19:-64.96,-5.73,-0.01:57.15
-chr1	1056691	rs7553878	C	G	182.98	PASS	AC=2;AF=1.00;AN=2;DB;DP=32;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=38.04;MQ0=0;OQ=986.57;QD=30.83;SB=-182.68	GT:AD:DP:GL:GQ	1/1:0,32:25:-102.26,-7.54,-0.01:75.24
-chr1	1056809	rs7513404	A	G	1483.16	SnpCluster	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=11.12;MQ=36.69;MQ0=3;QD=26.02;SB=-571.97	GT:AD:DP:GL:GQ	1/1:2,55:47:-151.94,-14.18,-0.04:99
-chr1	1056815	rs7513405	A	G	1422.20	SnpCluster	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=12.03;MQ=35.94;MQ0=3;QD=26.83;SB=-591.02	GT:AD:DP:GL:GQ	1/1:4,49:44:-145.84,-13.27,-0.03:99
-chr1	1056816	rs7516160	T	C	1466.09	SnpCluster	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=12.03;MQ=36.53;MQ0=3;QD=27.15;SB=-727.28	GT:AD:DP:GL:GQ	1/1:3,50:47:-150.24,-14.18,-0.04:99
-chr1	1057725	rs9442374	T	G	13.34	PASS	AC=2;AF=1.00;AN=2;DB;DP=31;Dels=0.00;HRun=2;HaplotypeScore=0.48;MQ=58.50;MQ0=0;OQ=951.55;QD=30.70;SB=-471.37	GT:AD:DP:GL:GQ	1/1:0,31:29:-98.75,-8.74,-0.01:87.23
-chr1	1057728	rs9442358	A	C	4.18	PASS	AC=2;AF=1.00;AN=2;DB;DP=31;Dels=0.00;HRun=3;HaplotypeScore=0.48;MQ=58.50;MQ0=0;OQ=931.22;QD=30.04;SB=-418.04	GT:AD:DP:GL:GQ	1/1:1,30:28:-96.72,-8.44,-0.02:84.22
-chr1	1059288	rs9442375	C	A	11.97	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=1;HaplotypeScore=1.68;MQ=37.62;MQ0=0;OQ=1307.51;QD=33.53;SB=-359.86	GT:AD:DP:GL:GQ	1/1:0,39:37:-134.35,-11.15,-0.01:99
-chr1	1059306	rs9442376	G	A	317.82	PASS	AC=2;AF=1.00;AN=2;DB;DP=37;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=30.41;MQ0=0;OQ=1189.43;QD=32.15;SB=-404.66	GT:AD:DP:GL:GQ	1/1:0,37:31:-122.54,-9.34,-0.01:93.30
-chr1	1059314	rs9442377	G	A	1.90	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=1;HaplotypeScore=4.82;MQ=29.14;MQ0=0;OQ=1298.78;QD=30.92;SB=-496.01	GT:AD:DP:GL:GQ	1/1:0,42:35:-133.48,-10.55,-0.02:99
-chr1	1059991	rs9442378	T	G	44.61	PASS	AC=2;AF=1.00;AN=2;DB;DP=35;Dels=0.00;HRun=1;HaplotypeScore=1.05;MQ=59.34;MQ0=0;OQ=1111.12;QD=31.75;SB=-500.92	GT:AD:DP:GL:GQ	1/1:0,35:33:-114.71,-9.94,-0.02:99
-chr1	1060304	rs9442379	C	T	128.73	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.74;MQ=60.00;MQ0=0;OQ=1793.65;QD=37.37;SB=-715.98	GT:AD:DP:GL:GQ	1/1:0,48:46:-182.96,-13.86,-0.01:99
-chr1	1060981	rs10907183	G	C	289	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=2.17;MQ=58.88;MQ0=0;OQ=1986.90;QD=34.26;SB=-998.16	GT:AD:DP:GL:GQ	1/1:0,58:51:-202.32,-15.40,-0.05:99
-chr1	1061055	rs6604971	T	C	165.65	PASS	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=1.81;MQ=59.35;MQ0=0;OQ=1959.28;QD=30.61;SB=-872.00	GT:AD:DP:GL:GQ	1/1:0,64:62:-199.57,-18.70,-0.06:99
-chr1	1062361	rs9442360	G	C	41.74	LowQual	AC=2;AF=1.00;AN=2;DB;DP=3;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=51.77;MQ0=0;QD=13.91;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,3:2:-7.58,-0.60,-0.00:6.02
-chr1	1063812	.	C	A	39.60	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=42;Dels=0.00;HRun=20;HaplotypeScore=10.99;MQ=49.89;MQ0=1;QD=0.94;SB=53.19	GT:AD:DP:GL:GQ	0/1:34,7:30:-16.28,-9.04,-89.71:72.44
-chr1	1064433	.	T	C	21.13	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=19;Dels=0.00;HRun=0;HaplotypeScore=1.25;MQ=43.11;MQ0=1;QD=1.11;SB=5.04	GT:AD:DP:GL:GQ	0/1:14,5:14:-9.62,-4.23,-37.37:53.93
-chr1	1064508	.	A	G	48.32	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=52;Dels=0.00;HRun=5;HaplotypeScore=5.11;MQ=25.52;MQ0=20;QD=0.93;SB=-10.00	GT:AD:DP:GL:GQ	0/1:42,6:27:-16.25,-8.14,-83.13:81.15
-chr1	1064534	.	T	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=48;Dels=0.00;HRun=3;HaplotypeScore=5.91;MQ=22.24;MQ0=19;OQ=77.81;QD=1.62;SB=-10.00	GT:AD:DP:GL:GQ	0/1:26,22:23:-17.99,-6.93,-63.10:99
-chr1	1064544	.	G	A	18.70	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=42;Dels=0.00;HRun=0;HaplotypeScore=9.26;MQ=23.84;MQ0=13;QD=0.45;SB=-10.00	GT:AD:DP:GL:GQ	0/1:39,3:23:-12.08,-6.93,-67.67:51.47
-chr1	1064666	.	G	A	28.24	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=21;Dels=0.00;HRun=0;HaplotypeScore=4.04;MQ=17.49;MQ0=7;QD=1.34;SB=-10.00	GT:AD:DP:GL:GQ	0/1:19,2:4:-7.31,-1.21,-6.24:50.32
-chr1	1064676	.	G	A	32.25	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=20;Dels=0.00;HRun=1;HaplotypeScore=3.94;MQ=15.31;MQ0=8;QD=1.61;SB=-10.00	GT:AD:DP:GL:GQ	0/1:15,4:3:-7.41,-0.90,-3.57:26.65
-chr1	1064678	.	A	G	13.68	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=20;Dels=0.00;HRun=0;HaplotypeScore=1.94;MQ=15.31;MQ0=8;QD=0.68;SB=-10.00	GT:AD:DP:GL:GQ	0/1:15,5:3:-5.54,-0.90,-4.06:31.54
-chr1	1065083	.	T	G	0.75	PASS	AC=2;AF=1.00;AN=2;DP=9;Dels=0.00;HRun=3;HaplotypeScore=1.47;MQ=13.28;MQ0=6;OQ=72.14;QD=8.02;SB=-10.00	GT:AD:DP:GL:GQ	1/1:2,7:3:-10.70,-0.90,-0.00:9.03
-chr1	1065545	.	A	T	15.58	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=20;Dels=0.00;HRun=0;HaplotypeScore=6.82;MQ=15.84;MQ0=10;QD=0.78;SB=-20.32	GT:AD:DP:GL:GQ	0/1:16,4:8:-7.24,-2.41,-23.49:48.29
-chr1	1065754	.	T	G	10.50	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=21;Dels=0.00;HRun=3;HaplotypeScore=0.98;MQ=26.23;MQ0=5;QD=0.50;SB=-7.00	GT:AD:DP:GL:GQ	0/1:10,11:9:-7.00,-2.71,-25.01:42.93
-chr1	1065788	.	A	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=26;Dels=0.00;HRun=4;HaplotypeScore=1.91;MQ=35.15;MQ0=3;OQ=426.85;QD=16.42;SB=-65.33	GT:AD:DP:GL:GQ	0/1:10,16:20:-52.00,-6.03,-21.27:99
-chr1	1065876	rs34294086	G	T	14.09	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=1;HaplotypeScore=3.05;MQ=16.68;MQ0=19;QD=0.25;SB=-0.98	GT:AD:DP:GL:GQ	0/1:47,10:18:-10.10,-5.43,-46.58:46.75
-chr1	1065896	rs34976191	A	G	3.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=5.11;MQ=25.24;MQ0=16;OQ=221.06;QD=5.02;SB=-47.30	GT:AD:DP:GL:GQ	0/1:32,12:17:-30.51,-5.13,-29.81:99
-chr1	1065898	rs35853231	G	A	14.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=2.79;MQ=25.42;MQ0=15;OQ=228.24;QD=5.43;SB=-22.49	GT:AD:DP:GL:GQ	0/1:33,9:15:-30.63,-4.52,-21.87:99
-chr1	1066927	rs4970357	C	A	263.23	PASS	AC=2;AF=1.00;AN=2;DB;DP=22;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=704.25;QD=32.01;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,22:21:-74.02,-6.32,-0.01:63.19
-chr1	1067825	rs55750860	C	T	23.40	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=1;HaplotypeScore=1.51;MQ=58.95;MQ0=0;OQ=1494.41;QD=37.36;SB=-613.01	GT:AD:DP:GL:GQ	1/1:0,40:39:-153.04,-11.75,-0.01:99
-chr1	1070149	rs1539638	G	A	498.18	PASS	AC=2;AF=1.00;AN=2;DB;DP=34;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1278.23;QD=37.59;SB=-657.67	GT:AD:DP:GL:GQ	1/1:0,34:33:-131.42,-9.94,-0.01:99
-chr1	1070766	.	C	G	0.10	PASS	AC=1;AF=0.50;AN=2;DP=44;Dels=0.00;HRun=0;HaplotypeScore=3.74;MQ=47.59;MQ0=0;OQ=113.71;QD=2.58;SB=-2.32	GT:AD:DP:GL:GQ	0/1:34,9:39:-26.42,-11.76,-133.80:99
-chr1	1070768	.	C	T	0.13	PASS	AC=1;AF=0.50;AN=2;DP=44;Dels=0.00;HRun=0;HaplotypeScore=2.84;MQ=46.93;MQ0=0;OQ=115.95;QD=2.64;SB=-32.19	GT:AD:DP:GL:GQ	0/1:34,10:38:-26.33,-11.45,-104.66:99
-chr1	1070788	rs1539637	G	C	8.38	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=3;HaplotypeScore=2.86;MQ=44.98;MQ0=0;OQ=574.54;QD=14.73;SB=-154.58	GT:AD:DP:GL:GQ	0/1:22,17:37:-71.91,-11.17,-77.14:99
-chr1	1070790	rs4512588	T	C	118.97	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=1;HaplotypeScore=1.33;MQ=44.52;MQ0=0;OQ=439.51;QD=11.57;SB=-120.73	GT:AD:DP:GL:GQ	0/1:20,18:36:-58.08,-10.85,-73.14:99
-chr1	1070804	.	T	C	317.73	Indel	AC=1;AF=0.50;AN=2;DP=36;Dels=0.00;HRun=1;HaplotypeScore=1.72;MQ=43.50;MQ0=0;QD=8.83;SB=-125.65	GT:AD:DP:GL:GQ	0/1:20,16:34:-45.31,-10.25,-78.50:99
-chr1	1070810	.	T	C	59.59	Indel	AC=1;AF=0.50;AN=2;DP=31;Dels=0.00;HRun=2;HaplotypeScore=0.92;MQ=42.56;MQ0=0;QD=1.92;SB=-21.88	GT:AD:DP:GL:GQ	0/1:21,10:26:-17.08,-7.83,-82.36:92.43
-chr1	1070825	.	C	T	12.15	LowQual	AC=1;AF=0.50;AN=2;DP=27;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=46.99;MQ0=0;QD=0.45;SB=-5.49	GT:AD:DP:GL:GQ	0/1:24,3:26:-12.31,-7.84,-75.55:44.71
-chr1	1070828	.	C	T	17.92	LowQual	AC=1;AF=0.50;AN=2;DP=27;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=46.99;MQ0=0;QD=0.66;SB=-11.45	GT:AD:DP:GL:GQ	0/1:24,3:24:-12.30,-7.23,-73.32:50.69
-chr1	1074807	.	T	G	14.10	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=33;Dels=0.00;HRun=4;HaplotypeScore=1.72;MQ=58.59;MQ0=0;QD=0.43;SB=59.21	GT:AD:DP:GL:GQ	0/1:24,8:27:-12.81,-8.13,-82.30:46.77
-chr1	1075432	.	C	T	38.87	PASS	AC=1;AF=0.50;AN=2;DP=46;Dels=0.00;HRun=0;HaplotypeScore=2.24;MQ=57.97;MQ0=0;OQ=818.81;QD=17.80;SB=-345.86	GT:AD:DP:GL:GQ	0/1:20,26:46:-99.04,-13.88,-63.69:99
-chr1	1077546	rs9442380	T	C	202.60	PASS	AC=2;AF=1.00;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=1.05;MQ=59.63;MQ0=0;OQ=2295.26;QD=29.81;SB=-1162.13	GT:AD:DP:GL:GQ	1/1:0,76:73:-233.18,-22.02,-0.07:99
-chr1	1079125	rs4970358	A	G	12.32	PASS	AC=2;AF=1.00;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=5.70;MQ=59.35;MQ0=0;OQ=2374.58;QD=33.44;SB=-995.95	GT:AD:DP:GL:GQ	1/1:0,69:68:-244.00,-23.26,-2.96:99
-chr1	1079873	rs9442361	C	A	5.87	PASS	AC=2;AF=1.00;AN=2;DB;DP=36;Dels=0.00;HRun=3;HaplotypeScore=1.89;MQ=53.07;MQ0=0;OQ=1204.88;QD=33.47;SB=-532.76	GT:AD:DP:GL:GQ	1/1:0,36:34:-124.08,-10.24,-0.01:99
-chr1	1080440	rs6604972	A	G	531.63	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.88;MQ0=0;OQ=1807.70;QD=30.64;SB=-735.76	GT:AD:DP:GL:GQ	1/1:0,59:56:-184.40,-16.89,-0.04:99
-chr1	1082462	rs56863140	G	C	99.95	PASS	AC=2;AF=1.00;AN=2;DB;DP=6;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=56.04;MQ0=0;OQ=146.93;QD=24.49;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,6:5:-18.26,-1.52,-0.01:15.05
-chr1	1084348	rs4970360	C	T	64.65	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=1;HaplotypeScore=1.36;MQ=58.41;MQ0=0;OQ=1613.83;QD=36.68;SB=-777.04	GT:AD:DP:GL:GQ	1/1:0,44:42:-164.99,-12.66,-0.02:99
-chr1	1084535	rs4970361	A	C	88.25	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=1;HaplotypeScore=0.74;MQ=58.78;MQ0=1;OQ=1424.16;QD=32.37;SB=-688.05	GT:AD:DP:GL:GQ	1/1:1,43:41:-146.01,-12.35,-0.01:99
-chr1	1084601	rs4970362	A	G	229.75	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=1.71;MQ=59.53;MQ0=0;OQ=1464.98;QD=29.90;SB=-668.84	GT:AD:DP:GL:GQ	1/1:0,49:47:-150.13,-14.18,-0.04:99
-chr1	1084842	rs7538773	G	A	9.80	PASS	AC=2;AF=1.00;AN=2;DB;DP=35;Dels=0.00;HRun=0;HaplotypeScore=0.63;MQ=58.13;MQ0=0;OQ=1279.59;QD=36.56;SB=-199.76	GT:AD:DP:GL:GQ	1/1:0,33:33:-131.55,-9.94,-0.01:99
-chr1	1085246	rs6604973	G	A	85.72	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=1.20;MQ=59.42;MQ0=0;OQ=1511.71;QD=37.79;SB=-646.86	GT:AD:DP:GL:GQ	1/1:0,40:38:-154.76,-11.45,-0.01:99
-chr1	1085482	rs4970419	C	G	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=7;HaplotypeScore=2.24;MQ=59.45;MQ0=0;OQ=1670.84;QD=39.78;SB=-828.31	GT:AD:DP:GL:GQ	1/1:0,42:40:-170.69,-12.06,-0.02:99
-chr1	1085874	rs9442381	C	G	314.67	PASS	AC=2;AF=1.00;AN=2;DB;DP=31;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.11;MQ0=0;OQ=1195.39;QD=38.56;SB=-412.65	GT:AD:DP:GL:GQ	1/1:0,31:28:-123.13,-8.44,-0.01:84.28
-chr1	1086061	rs9442382	C	T	139.37	PASS	AC=2;AF=1.00;AN=2;DB;DP=26;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.65;MQ0=0;OQ=990.01;QD=38.08;SB=-164.21	GT:AD:DP:GL:GQ	1/1:0,26:26:-102.60,-7.84,-0.01:78.25
-chr1	1086771	rs1539636	T	C	148.49	PASS	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=1.37;MQ=60.00;MQ0=0;OQ=1262.30;QD=33.22;SB=-642.89	GT:AD:DP:GL:GQ	1/1:0,38:37:-129.83,-11.15,-0.02:99
-chr1	1086955	rs1539635	G	A	48.48	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=3.31;MQ=56.37;MQ0=0;OQ=1687.66;QD=35.91;SB=-612.00	GT:AD:DP:GL:GQ	1/1:0,47:43:-172.36,-12.95,-0.01:99
-chr1	1086963	rs1539634	C	T	83.45	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=56.95;MQ0=0;OQ=1761.33;QD=36.69;SB=-642.86	GT:AD:DP:GL:GQ	1/1:0,48:45:-179.73,-13.56,-0.02:99
-chr1	1087150	rs9442384	T	C	36.04	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=1;HaplotypeScore=0.26;MQ=59.81;MQ0=0;OQ=1429.90;QD=29.79;SB=-636.25	GT:AD:DP:GL:GQ	1/1:0,48:46:-146.63,-13.88,-0.05:99
-chr1	1087198	rs9442385	T	G	89.37	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=3.13;MQ=57.84;MQ0=0;OQ=1240.37;QD=26.39;SB=-556.87	GT:AD:DP:GL:GQ	1/1:0,47:40:-127.66,-12.06,-0.04:99
-chr1	1087800	rs1891907	A	G	2.98	PASS	AC=2;AF=1.00;AN=2;DB;DP=25;Dels=0.00;HRun=2;HaplotypeScore=0.58;MQ=57.36;MQ0=0;OQ=810.89;QD=32.44;SB=-193.80	GT:AD:DP:GL:GQ	1/1:0,25:24:-84.68,-7.23,-0.01:72.21
-chr1	1088284	rs12135382	C	T	198.45	PASS	AC=2;AF=1.00;AN=2;DB;DP=11;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=312.05;QD=28.37;SB=-50.56	GT:AD:DP:GL:GQ	1/1:0,11:9:-34.79,-2.71,-0.00:27.09
-chr1	1088577	rs4379629	C	G	8.91	PASS	AC=2;AF=1.00;AN=2;DB;DP=9;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=217.53;QD=24.17;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,9:7:-25.35,-2.12,-0.02:21.06
-chr1	1089205	rs9660710	A	C	62.17	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=3.52;MQ=60.00;MQ0=0;OQ=1253.07;QD=26.66;SB=-477.88	GT:AD:DP:GL:GQ	1/1:0,47:40:-128.93,-12.06,-0.03:99
-chr1	1090080	rs1891905	C	T	107.83	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=2.97;MQ=58.89;MQ0=0;OQ=1593.75;QD=37.95;SB=-678.31	GT:AD:DP:GL:GQ	1/1:0,42:41:-162.97,-12.35,-0.01:99
-chr1	1090182	rs1891904	C	A	413.02	PASS	AC=2;AF=1.00;AN=2;DB;DP=24;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.03;MQ0=0;OQ=739.19;QD=30.80;SB=-375.45	GT:AD:DP:GL:GQ	1/1:0,24:22:-77.51,-6.63,-0.01:66.17
-chr1	1090866	rs7549819	C	T	73.60	PASS	AC=2;AF=1.00;AN=2;DB;DP=31;Dels=0.00;HRun=0;HaplotypeScore=2.51;MQ=59.25;MQ0=0;OQ=998.72;QD=32.22;SB=-450.59	GT:AD:DP:GL:GQ	1/1:1,30:27:-103.47,-8.14,-0.02:81.25
-chr1	1091932	rs9442386	A	G	1.23	PASS	AC=2;AF=1.00;AN=2;DB;DP=8;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=172.84;QD=21.61;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,8:7:-20.87,-2.12,-0.01:21.04
-chr1	1093405	rs7518873	T	C	57.10	PASS	AC=2;AF=1.00;AN=2;DB;DP=21;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=57.77;MQ0=0;OQ=646.68;QD=30.79;SB=-268.71	GT:AD:DP:GL:GQ	1/1:0,21:20:-68.26,-6.03,-0.01:60.16
-chr1	1093821	rs7521584	T	G	116.26	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=0.48;MQ=58.95;MQ0=0;OQ=1316.49;QD=29.92;SB=-587.88	GT:AD:DP:GL:GQ	1/1:0,44:43:-135.27,-12.96,-0.04:99
-chr1	1095101	rs9442362	T	C	65.07	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=3.90;MQ=60.00;MQ0=0;OQ=375.39;QD=7.99;SB=-207.86	GT:AD:DP:GL:GQ	0/1:27,20:44:-54.09,-13.27,-100.76:99
-chr1	1095924	rs6656236	G	A	130.43	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=1;HaplotypeScore=1.56;MQ=57.77;MQ0=0;OQ=609.61;QD=16.04;SB=-273.30	GT:AD:DP:GL:GQ	0/1:18,20:34:-74.49,-10.25,-50.31:99
-chr1	1096647	rs4442317	T	C	203.56	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=1.76;MQ=59.13;MQ0=0;OQ=506.89;QD=10.56;SB=-244.47	GT:AD:DP:GL:GQ	0/1:29,19:48:-68.44,-14.47,-111.87:99
-chr1	1114401	rs11577350	G	A	483.74	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.70;MQ0=0;OQ=1009.34;QD=13.28;SB=-463.05	GT:AD:DP:GL:GQ	0/1:45,31:75:-126.83,-22.61,-139.35:99
-chr1	1114613	rs6702156	T	C	467.81	PASS	AC=1;AF=0.50;AN=2;DB;DP=80;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.71;MQ0=0;OQ=978.73;QD=12.23;SB=-374.99	GT:AD:DP:GL:GQ	0/1:42,38:78:-124.66,-23.50,-162.90:99
-chr1	1127805	.	C	T	17.93	LowQual	AC=1;AF=0.50;AN=2;DP=37;Dels=0.00;HRun=0;HaplotypeScore=4.76;MQ=47.96;MQ0=1;QD=0.48;SB=-4.44	GT:AD:DP:GL:GQ	0/1:29,6:21:-11.40,-6.33,-63.23:50.69
-chr1	1133298	rs55945303	G	A	59.18	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.92;MQ0=0;OQ=925.55;QD=21.52;SB=-252.58	GT:AD:DP:GL:GQ	0/1:14,29:40:-107.89,-12.05,-42.24:99
-chr1	1139524	rs35878953	C	T	131.94	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=3.33;MQ=58.24;MQ0=0;OQ=799.98;QD=18.60;SB=-423.99	GT:AD:DP:GL:GQ	0/1:17,25:37:-94.44,-11.16,-36.66:99
-chr1	1148494	rs6603781	A	G	136.52	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=59.05;MQ0=0;OQ=1330.48;QD=27.15;SB=-433.29	GT:AD:DP:GL:GQ	1/1:0,49:42:-136.66,-12.66,-0.03:99
-chr1	1149380	rs6702268	T	C	227.72	PASS	AC=2;AF=1.00;AN=2;DB;DP=35;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.80;MQ0=0;OQ=961.17;QD=27.46;SB=-122.75	GT:AD:DP:GL:GQ	1/1:0,35:31:-99.73,-9.35,-0.03:93.18
-chr1	1152189	rs4970423	A	G	15.48	PASS	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=1;HaplotypeScore=0.33;MQ=59.39;MQ0=0;OQ=1088.52;QD=28.65;SB=-378.40	GT:AD:DP:GL:GQ	1/1:0,38:34:-112.46,-10.25,-0.02:99
-chr1	1161280	rs6603782	C	T	102.99	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=1.25;MQ=59.00;MQ0=0;OQ=708.75;QD=16.88;SB=-201.20	GT:AD:DP:GL:GQ	0/1:20,22:40:-86.21,-12.05,-64.42:99
-chr1	1162770	rs715643	C	T	309.12	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=2.45;MQ=57.65;MQ0=0;OQ=561.34;QD=14.77;SB=-301.32	GT:AD:DP:GL:GQ	0/1:18,19:36:-70.27,-10.85,-55.47:99
-chr1	1171665	.	C	T	4.62	PASS	AC=1;AF=0.50;AN=2;DP=9;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=57.39;MQ0=0;OQ=105.76;QD=11.75;SB=-6.99	GT:AD:DP:GL:GQ	0/1:5,4:9:-16.57,-2.71,-16.65:99
-chr1	1178813	.	G	C	27.28	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=63;Dels=0.00;HRun=1;HaplotypeScore=10.95;MQ=55.60;MQ0=0;QD=0.43;SB=74.28	GT:AD:DP:GL:GQ	0/1:46,17:41:-18.38,-12.37,-155.87:60.10
-chr1	1182131	.	G	A	44.09	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=52;Dels=0.04;HRun=20;HaplotypeScore=11.11;MQ=50.33;MQ0=0;QD=0.85;SB=65.22	GT:AD:DP:GL:GQ	0/1:38,12:42:-20.05,-12.36,-125.30:76.92
-chr1	1183574	.	T	C	30.78	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=37;Dels=0.00;HRun=5;HaplotypeScore=13.00;MQ=56.93;MQ0=0;QD=0.83;SB=23.10	GT:AD:DP:GL:GQ	0/1:22,15:21:-12.69,-6.33,-67.62:63.61
-chr1	1186726	rs6659787	T	C	444.24	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.60;MQ0=0;OQ=1920.21;QD=33.11;SB=-425.81	GT:AD:DP:GL:GQ	1/1:0,58:55:-195.63,-16.57,-0.02:99
-chr1	1194535	.	A	G	16.67	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=52;Dels=0.00;HRun=1;HaplotypeScore=6.08;MQ=52.52;MQ0=1;QD=0.32;SB=29.11	GT:AD:DP:GL:GQ	0/1:42,10:39:-16.70,-11.76,-128.34:49.41
-chr1	1204684	rs34258594	C	T	26.14	PASS	AC=1;AF=0.50;AN=2;DB;DP=35;Dels=0.00;HRun=1;HaplotypeScore=0.32;MQ=41.53;MQ0=1;OQ=534.60;QD=15.27;SB=-99.92	GT:AD:DP:GL:GQ	0/1:16,19:32:-66.39,-9.65,-50.26:99
-chr1	1206810	.	C	A	15.67	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=28;Dels=0.00;HRun=1;HaplotypeScore=1.82;MQ=59.17;MQ0=0;QD=0.56;SB=17.05	GT:AD:DP:GL:GQ	0/1:19,7:21:-11.17,-6.33,-52.97:48.38
-chr1	1212553	.	C	T	5.74	PASS	AC=1;AF=0.50;AN=2;DP=23;Dels=0.00;HRun=0;HaplotypeScore=5.06;MQ=57.97;MQ0=0;OQ=298.13;QD=12.96;SB=-173.70	GT:AD:DP:GL:GQ	0/1:12,11:19:-38.83,-5.73,-27.23:99
-chr1	1213523	.	A	T	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=18;Dels=0.00;HRun=0;HaplotypeScore=15.57;MQ=33.50;MQ0=4;OQ=59.03;QD=3.28;SB=2.04	GT:AD:DP:GL:GQ	0/1:9,9:9:-11.90,-2.71,-23.47:91.86
-chr1	1213617	.	C	T	7.11	PASS	AC=2;AF=1.00;AN=2;DP=20;Dels=0.00;HRun=0;HaplotypeScore=3.14;MQ=18.72;MQ0=10;OQ=134.34;QD=6.72;SB=-10.00	GT:AD:DP:GL:GQ	1/1:5,15:4:-16.97,-1.20,-0.00:12.04
-chr1	1213622	.	T	C	11.33	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=23;Dels=0.00;HRun=2;HaplotypeScore=3.30;MQ=19.74;MQ0=10;QD=0.49;SB=-3.98	GT:AD:DP:GL:GQ	0/1:20,3:7:-6.49,-2.11,-18.92:43.83
-chr1	1213635	.	C	T	23.33	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=31;Dels=0.00;HRun=0;HaplotypeScore=0.48;MQ=18.06;MQ0=13;QD=0.75;SB=-33.62	GT:AD:DP:GL:GQ	0/1:24,7:9:-8.33,-2.71,-24.32:56.15
-chr1	1213653	.	C	T	47.94	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=48;Dels=0.00;HRun=0;HaplotypeScore=1.74;MQ=17.89;MQ0=21;QD=1.00;SB=-23.48	GT:AD:DP:GL:GQ	0/1:37,11:13:-11.99,-3.92,-35.04:80.78
-chr1	1213671	.	C	T	0.05	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=50;Dels=0.00;HRun=0;HaplotypeScore=2.88;MQ=22.77;MQ0=22;OQ=90.19;QD=1.80;SB=-17.46	GT:AD:DP:GL:GQ	0/1:28,22:20:-18.33,-6.03,-51.67:99
-chr1	1213694	.	T	C	39.97	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=55;Dels=0.00;HRun=2;HaplotypeScore=8.39;MQ=23.73;MQ0=21;QD=0.73;SB=-15.88	GT:AD:DP:GL:GQ	0/1:51,4:21:-13.61,-6.33,-64.53:72.80
-chr1	1213750	.	C	T	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=38;Dels=0.00;HRun=0;HaplotypeScore=7.03;MQ=25.74;MQ0=11;OQ=59.44;QD=1.56;SB=-49.23	GT:AD:DP:GL:GQ	0/1:22,16:17:-14.35,-5.12,-45.82:92.28
-chr1	1213763	.	C	T	47.85	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=29;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=26.61;MQ0=8;QD=1.65;SB=-29.61	GT:AD:DP:GL:GQ	0/1:21,8:13:-11.99,-3.92,-33.55:80.68
-chr1	1213781	.	T	C	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=25;Dels=0.00;HRun=1;HaplotypeScore=3.20;MQ=28.82;MQ0=7;OQ=70.59;QD=2.82;SB=-20.63	GT:AD:DP:GL:GQ	0/1:21,4:13:-14.26,-3.92,-34.86:99
-chr1	1213884	.	C	T	18.32	PASS	AC=2;AF=1.00;AN=2;DP=13;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=20.52;MQ0=9;OQ=123.88;QD=9.53;SB=-10.00	GT:AD:DP:GL:GQ	1/1:1,11:4:-15.92,-1.20,-0.00:12.04
-chr1	1213994	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=35;Dels=0.00;HRun=2;HaplotypeScore=2.99;MQ=9.42;MQ0=22;OQ=67.77;QD=1.94;SB=-42.68	GT:AD:DP:GL:GQ	0/1:31,4:4:-11.26,-1.21,-2.97:17.61
-chr1	1214386	.	C	T	18.53	PASS	AC=2;AF=1.00;AN=2;DP=13;Dels=0.00;HRun=0;HaplotypeScore=1.37;MQ=12.80;MQ0=7;OQ=79.89;QD=6.15;SB=-52.67	GT:AD:DP:GL:GQ	1/1:3,10:3:-11.48,-0.90,-0.00:9.03
-chr1	1214538	.	C	T	13.99	PASS	AC=2;AF=1.00;AN=2;DP=10;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=21.76;MQ0=3;OQ=222.41;QD=22.24;SB=-119.99	GT:AD:DP:GL:GQ	1/1:1,9:7:-25.82,-2.11,-0.00:21.06
-chr1	1214556	.	C	T	78.88	PASS	AC=2;AF=1.00;AN=2;DP=9;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=21.62;MQ0=3;OQ=125.22;QD=13.91;SB=-42.55	GT:AD:DP:GL:GQ	1/1:2,7:4:-16.06,-1.21,-0.00:12.04
-chr1	1214569	.	C	T	4.09	PASS	AC=2;AF=1.00;AN=2;DP=7;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=21.21;MQ0=3;OQ=121.10;QD=17.30;SB=-81.10	GT:AD:DP:GL:GQ	1/1:3,4:4:-15.65,-1.21,-0.00:12.04
-chr1	1214849	.	T	C	10.83	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=28;Dels=0.00;HRun=1;HaplotypeScore=0.58;MQ=11.01;MQ0=15;QD=0.39;SB=-10.00	GT:AD:DP:GL:GQ	0/1:20,8:6:-6.14,-1.81,-16.12:43.30
-chr1	1214919	.	A	T	0.53	PASS	AC=1;AF=0.50;AN=2;DP=20;Dels=0.00;HRun=0;HaplotypeScore=4.77;MQ=20.32;MQ0=10;OQ=98.85;QD=4.94;SB=-69.74	GT:AD:DP:GL:GQ	0/1:10,9:7:-15.28,-2.11,-10.80:86.87
-chr1	1215102	.	A	T	1.26	PASS	AC=1;AF=0.50;AN=2;DP=20;Dels=0.00;HRun=0;HaplotypeScore=2.90;MQ=20.59;MQ0=9;OQ=98.25;QD=4.91;SB=-47.98	GT:AD:DP:GL:GQ	0/1:4,16:7:-15.22,-2.11,-12.20:99
-chr1	1215147	.	T	C	24.78	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=90;Dels=0.00;HRun=2;HaplotypeScore=5.19;MQ=18.98;MQ0=32;QD=0.28;SB=-36.82	GT:AD:DP:GL:GQ	0/1:83,7:38:-17.21,-11.45,-127.57:57.61
-chr1	1215165	.	C	T	0.03	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=75;Dels=0.00;HRun=0;HaplotypeScore=3.30;MQ=20.48;MQ0=21;OQ=101.26;QD=1.35;SB=26.10	GT:AD:DP:GL:GQ	0/1:48,27:30:-22.45,-9.04,-79.18:99
-chr1	1215324	.	T	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=75;Dels=0.00;HRun=1;HaplotypeScore=4.60;MQ=26.05;MQ0=19;OQ=186.49;QD=2.49;SB=8.19	GT:AD:DP:GL:GQ	0/1:60,15:45:-35.50,-13.57,-130.76:99
-chr1	1227467	rs2296475	T	C	67.24	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=1;HaplotypeScore=2.76;MQ=59.44;MQ0=0;OQ=1380.81;QD=33.68;SB=-616.59	GT:AD:DP:GL:GQ	1/1:0,40:39:-141.68,-11.75,-0.01:99
-chr1	1227692	rs11586188	G	A	13.68	PASS	AC=1;AF=0.50;AN=2;DB;DP=31;Dels=0.00;HRun=2;HaplotypeScore=2.73;MQ=60.00;MQ0=0;OQ=456.88;QD=14.74;SB=-204.92	GT:AD:DP:GL:GQ	0/1:15,16:30:-58.02,-9.04,-49.24:99
-chr1	1228900	.	T	C	25.48	LowQual	AC=1;AF=0.50;AN=2;DP=34;Dels=0.00;HRun=4;HaplotypeScore=1.75;MQ=56.48;MQ0=0;QD=0.75;SB=-20.62	GT:AD:DP:GL:GQ	0/1:26,7:28:-14.27,-8.44,-89.93:58.30
-chr1	1229202	rs11260584	T	G	37.45	PASS	AC=2;AF=1.00;AN=2;DB;DP=35;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.34;MQ0=0;OQ=976.99;QD=27.91;SB=-499.87	GT:AD:DP:GL:GQ	1/1:0,35:32:-101.31,-9.64,-0.03:96.16
-chr1	1229816	rs10399878	A	G	473.23	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1102.82;QD=26.90;SB=-522.83	GT:AD:DP:GL:GQ	1/1:0,41:37:-113.91,-11.17,-0.05:99
-chr1	1231392	rs1536168	A	G	97.21	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=59.82;MQ0=0;OQ=1395.06;QD=27.90;SB=-606.94	GT:AD:DP:GL:GQ	1/1:0,50:45:-143.13,-13.57,-0.04:99
-chr1	1231663	rs3737720	A	G	139.66	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=2.21;MQ=58.81;MQ0=0;OQ=1690.11;QD=30.73;SB=-679.26	GT:AD:DP:GL:GQ	1/1:0,55:50:-172.62,-15.06,-0.03:99
-chr1	1231766	rs3737719	C	G	2.42	PASS	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=2;HaplotypeScore=1.43;MQ=58.78;MQ0=0;OQ=1400.23;QD=36.85;SB=-370.18	GT:AD:DP:GL:GQ	1/1:0,38:34:-143.63,-10.26,-0.03:99
-chr1	1232078	rs4970431	A	G	216.41	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=1612.70;QD=32.91;SB=-685.61	GT:AD:DP:GL:GQ	1/1:0,49:46:-164.87,-13.86,-0.01:99
-chr1	1232570	rs2274262	A	G	6.01	PASS	AC=2;AF=1.00;AN=2;DB;DP=29;Dels=0.00;HRun=1;HaplotypeScore=2.33;MQ=58.39;MQ0=0;OQ=927.22;QD=31.97;SB=-261.82	GT:AD:DP:GL:GQ	1/1:0,28:29:-99.47,-11.27,-3.16:81.12
-chr1	1232846	rs2887285	G	A	7.05	PASS	AC=2;AF=1.00;AN=2;DB;DP=6;Dels=0.00;HRun=0;HaplotypeScore=2.37;MQ=60.00;MQ0=0;OQ=156.17;QD=26.03;SB=-10.00	GT:AD:DP:GL:GQ	1/1:1,5:5:-19.18,-1.51,-0.00:15.05
-chr1	1233759	rs61766198	C	T	47.25	LowQual	AC=2;AF=1.00;AN=2;DB;DP=2;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;QD=23.62;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,2:2:-8.13,-0.60,-0.00:6.02
-chr1	1235231	rs11590283	G	A	557.67	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.42;MQ0=0;OQ=1461.68;QD=36.54;SB=-745.00	GT:AD:DP:GL:GQ	1/1:1,39:37:-149.76,-11.15,-0.01:99
-chr1	1235867	rs2296474	A	G	712.67	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.51;MQ0=0;OQ=1812.39;QD=34.20;SB=-908.32	GT:AD:DP:GL:GQ	1/1:0,53:53:-184.85,-15.97,-0.02:99
-chr1	1237357	rs12103	T	C	207.29	PASS	AC=2;AF=1.00;AN=2;DB;DP=22;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.95;MQ0=0;OQ=647.94;QD=29.45;SB=-286.45	GT:AD:DP:GL:GQ	1/1:0,22:21:-68.40,-6.33,-0.02:63.15
-chr1	1237452	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=11;Dels=0.00;HRun=10;HaplotypeScore=2.81;MQ=58.76;MQ0=0;OQ=54.80;QD=4.98;SB=-3.98	GT:AD:DP:GL:GQ	0/1:7,4:6:-10.58,-1.82,-11.64:87.64
-chr1	1239050	rs12142199	G	A	66.55	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=3;HaplotypeScore=1.62;MQ=58.97;MQ0=0;OQ=2440.21;QD=38.73;SB=-1144.03	GT:AD:DP:GL:GQ	1/1:1,62:62:-247.62,-18.68,-0.02:99
-chr1	1239352	.	C	G	26.31	PASS	AC=1;AF=0.50;AN=2;DP=59;Dels=0.00;HRun=0;HaplotypeScore=2.36;MQ=58.82;MQ0=0;OQ=1214.59;QD=20.59;SB=-515.28	GT:AD:DP:GL:GQ	0/1:25,34:56:-141.62,-16.88,-95.25:99
-chr1	1242263	rs55998830	C	T	160.41	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=1.42;MQ=57.24;MQ0=0;OQ=503.69;QD=12.29;SB=-134.60	GT:AD:DP:GL:GQ	0/1:23,18:39:-65.41,-11.76,-71.08:99
-chr1	1243999	rs4970432	G	A	36.99	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=1;HaplotypeScore=2.94;MQ=58.63;MQ0=0;OQ=2692.59;QD=39.60;SB=-1179.08	GT:AD:DP:GL:GQ	1/1:0,68:67:-272.86,-20.18,-0.01:99
-chr1	1244299	rs1886773	A	G	203.79	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=1.45;MQ=59.11;MQ0=0;OQ=1463.44;QD=28.14;SB=-748.56	GT:AD:DP:GL:GQ	1/1:0,52:48:-149.98,-14.48,-0.05:99
-chr1	1244306	rs1886772	G	A	170.95	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=2.23;MQ=58.89;MQ0=0;OQ=2428.21;QD=38.54;SB=-1150.05	GT:AD:DP:GL:GQ	1/1:0,63:62:-246.42,-18.68,-0.02:99
-chr1	1244704	rs10907179	C	G	226.16	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=59.69;MQ0=0;OQ=2474.22;QD=40.56;SB=-1116.55	GT:AD:DP:GL:GQ	1/1:0,61:58:-251.03,-17.48,-0.03:99
-chr1	1245150	rs10449892	C	T	372.09	PASS	AC=2;AF=1.00;AN=2;DB;DP=29;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1031.28;QD=35.56;SB=-512.17	GT:AD:DP:GL:GQ	1/1:0,29:28:-106.73,-8.44,-0.02:84.26
-chr1	1247456	rs1810745	A	G	110.17	PASS	AC=2;AF=1.00;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=2.14;MQ=54.75;MQ0=0;OQ=1043.28;QD=28.20;SB=-313.49	GT:AD:DP:GL:GQ	1/1:0,37:33:-107.94,-9.95,-0.02:99
-chr1	1256339	rs28704486	A	G	29.57	PASS	AC=2;AF=1.00;AN=2;DB;DP=13;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=16.01;MQ0=0;OQ=60.16;QD=4.63;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,13:3:-9.51,-0.90,-0.00:9.02
-chr1	1258710	rs307378	T	G	2.23	PASS	AC=2;AF=1.00;AN=2;DB;DP=3;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=29.00;MQ0=0;OQ=76.83;QD=25.61;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,3:3:-11.17,-0.90,-0.00:9.03
-chr1	1259417	rs307377	T	C	101.96	PASS	AC=2;AF=1.00;AN=2;DB;DP=7;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=21.92;MQ0=3;OQ=105.39;QD=15.06;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,7:4:-14.07,-1.20,-0.00:12.04
-chr1	1260192	rs188647	A	G	29.27	LowQual	AC=2;AF=1.00;AN=2;DB;DP=2;Dels=0.00;HRun=4;HaplotypeScore=0.00;MQ=29.00;MQ0=0;QD=14.64;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,2:2:-6.34,-0.60,-0.00:6.01
-chr1	1260222	rs307374	T	C	0.04	FDRtranche0.10to1.00	AC=2;AF=1.00;AN=2;DB;DP=3;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=29.00;MQ0=0;OQ=63.98;QD=21.33;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,3:3:-9.89,-0.91,-0.00:9.02
-chr1	1262360	rs307372	A	G	1.31	PASS	AC=2;AF=1.00;AN=2;DB;DP=12;Dels=0.00;HRun=1;HaplotypeScore=0.52;MQ=35.06;MQ0=0;OQ=290.20;QD=24.18;SB=-151.34	GT:AD:DP:GL:GQ	1/1:0,12:11:-32.62,-3.32,-0.02:33.05
-chr1	1262979	rs307371	A	G	118.35	PASS	AC=2;AF=1.00;AN=2;DB;DP=4;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=35.17;MQ0=0;OQ=96.93;QD=24.23;SB=-72.91	GT:AD:DP:GL:GQ	1/1:0,4:4:-13.23,-1.21,-0.00:12.03
-chr1	1263141	rs307370	A	G	373.13	PASS	AC=2;AF=1.00;AN=2;DB;DP=14;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=45.14;MQ0=0;OQ=479.19;QD=34.23;SB=-188.41	GT:AD:DP:GL:GQ	1/1:0,14:14:-51.51,-4.22,-0.00:42.13
-chr1	1265154	rs11582808	G	A	10.31	PASS	AC=1;AF=0.50;AN=2;DB;DP=14;Dels=0.00;HRun=0;HaplotypeScore=1.46;MQ=44.52;MQ0=0;OQ=273.35;QD=19.53;SB=-116.97	GT:AD:DP:GL:GQ	0/1:5,9:13:-34.54,-3.92,-12.73:88.15
-chr1	1266341	rs307364	T	G	24.11	PASS	AC=2;AF=1.00;AN=2;DB;DP=12;Dels=0.00;HRun=1;HaplotypeScore=1.44;MQ=22.99;MQ0=5;OQ=64.81;QD=5.40;SB=-10.00	GT:AD:DP:GL:GQ	1/1:1,10:3:-9.97,-0.90,-0.00:9.02
-chr1	1267396	rs17854636	T	C	111.78	PASS	AC=2;AF=1.00;AN=2;DB;DP=16;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=34.81;MQ0=1;OQ=372.39;QD=23.27;SB=-142.72	GT:AD:DP:GL:GQ	1/1:0,16:13:-40.84,-3.92,-0.02:39.08
-chr1	1268100	rs307361	T	C	193.77	PASS	AC=2;AF=1.00;AN=2;DB;DP=18;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=33.78;MQ0=3;OQ=449.98;QD=25.00;SB=-194.71	GT:AD:DP:GL:GQ	1/1:0,18:15:-48.59,-4.52,-0.01:45.11
-chr1	1268888	rs307360	A	G	2.79	PASS	AC=2;AF=1.00;AN=2;DB;DP=10;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=29.77;MQ0=0;OQ=268.28;QD=26.83;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,9:9:-30.42,-2.71,-0.01:27.07
-chr1	1270382	rs307358	T	C	22.61	PASS	AC=2;AF=1.00;AN=2;DB;DP=4;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=29.00;MQ0=0;OQ=83.45;QD=20.86;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,4:4:-11.88,-1.21,-0.01:12.02
-chr1	1276604	.	G	C	27.05	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=21;Dels=0.00;HRun=1;HaplotypeScore=0.66;MQ=11.97;MQ0=10;QD=1.29;SB=-10.00	GT:AD:DP:GL:GQ	0/1:9,12:4:-7.20,-1.21,-7.49:59.88
-chr1	1276657	rs35104845	C	T	49.02	PASS	AC=2;AF=1.00;AN=2;DB;DP=11;Dels=0.00;HRun=0;HaplotypeScore=2.90;MQ=23.40;MQ0=3;OQ=76.78;QD=6.98;SB=-10.00	GT:AD:DP:GL:GQ	1/1:5,5:3:-11.17,-0.90,-0.00:9.03
-chr1	1276684	rs61766214	G	C	3.73	PASS	AC=2;AF=1.00;AN=2;DB;DP=13;Dels=0.00;HRun=1;HaplotypeScore=0.98;MQ=32.46;MQ0=2;OQ=374.70;QD=28.82;SB=-82.81	GT:AD:DP:GL:GQ	1/1:1,12:10:-41.06,-3.02,-0.01:30.10
-chr1	1276760	rs34380086	G	C	256.91	PASS	AC=2;AF=1.00;AN=2;DB;DP=26;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=36.61;MQ0=0;OQ=915.51;QD=35.21;SB=-194.53	GT:AD:DP:GL:GQ	1/1:0,26:24:-95.15,-7.24,-0.02:72.23
-chr1	1276990	rs56165241	G	A	0.14	PASS	AC=2;AF=1.00;AN=2;DB;DP=6;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=23.71;MQ0=1;OQ=124.88;QD=20.81;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,6:4:-16.02,-1.20,-0.00:12.04
-chr1	1278208	rs13249	A	G	0.03	FDRtranche0.10to1.00	AC=2;AF=1.00;AN=2;DB;DP=15;Dels=0.00;HRun=4;HaplotypeScore=0.79;MQ=29.00;MQ0=0;OQ=519.51;QD=34.63;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,15:15:-55.54,-4.52,-0.01:45.13
-chr1	1278334	rs3766183	C	T	70.79	PASS	AC=2;AF=1.00;AN=2;DB;DP=29;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=12.77;MQ0=25;OQ=129.88;QD=4.48;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,29:4:-16.52,-1.20,-0.00:12.04
-chr1	1279774	rs4970365	G	A	205.12	PASS	AC=2;AF=1.00;AN=2;DB;DP=15;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=37.02;MQ0=1;OQ=413.00;QD=27.53;SB=-81.33	GT:AD:DP:GL:GQ	1/1:0,15:12:-44.89,-3.62,-0.01:36.11
-chr1	1283627	rs34841888	G	C	242.04	PASS	AC=2;AF=1.00;AN=2;DB;DP=23;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=17.25;MQ0=18;OQ=165.64;QD=7.20;SB=-87.83	GT:AD:DP:GL:GQ	1/1:0,23:5:-20.13,-1.51,-0.00:15.05
-chr1	1284791	rs2649608	A	G	15.70	PASS	AC=2;AF=1.00;AN=2;DB;DP=13;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=29.00;MQ0=0;OQ=325.53;QD=25.04;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,13:12:-36.15,-3.62,-0.02:36.07
-chr1	1285186	rs34389364	G	A	48.74	PASS	AC=2;AF=1.00;AN=2;DB;DP=27;Dels=0.00;HRun=0;HaplotypeScore=1.30;MQ=44.84;MQ0=0;OQ=775.48;QD=28.72;SB=-269.63	GT:AD:DP:GL:GQ	1/1:0,25:23:-81.16,-6.94,-0.03:69.18
-chr1	1285266	rs34876581	T	C	166.99	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=42.89;MQ0=0;OQ=1629.47;QD=31.95;SB=-823.96	GT:AD:DP:GL:GQ	1/1:0,51:47:-166.55,-14.16,-0.02:99
-chr1	1285545	rs61766236	A	G	14.70	PASS	AC=2;AF=1.00;AN=2;DB;DP=29;Dels=0.00;HRun=0;HaplotypeScore=2.05;MQ=53.58;MQ0=0;OQ=756.88;QD=26.10;SB=-99.85	GT:AD:DP:GL:GQ	1/1:0,29:25:-79.29,-7.54,-0.02:75.15
-chr1	1285750	.	T	C	31.55	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DP=8;Dels=0.00;HRun=0;HaplotypeScore=1.16;MQ=14.50;MQ0=6;QD=3.94;SB=-38.95	GT:AD:DP:GL:GQ	1/1:0,8:2:-6.56,-0.60,-0.00:6.01
-chr1	1286016	rs2765027	T	G	82.17	PASS	AC=2;AF=1.00;AN=2;DB;DP=16;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=29.00;MQ0=0;OQ=481.12;QD=30.07;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,16:16:-51.71,-4.82,-0.01:48.07
-chr1	1286554	rs2765025	C	G	315.48	PASS	AC=2;AF=1.00;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=27.90;MQ0=0;OQ=1204.51;QD=36.50;SB=-193.69	GT:AD:DP:GL:GQ	1/1:0,33:29:-124.04,-8.74,-0.01:87.29
-chr1	1286681	rs2765024	C	G	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=20;Dels=0.00;HRun=6;HaplotypeScore=0.00;MQ=29.00;MQ0=0;OQ=715.35;QD=35.77;SB=-192.69	GT:AD:DP:GL:GQ	1/1:0,20:18:-75.13,-5.42,-0.01:54.18
-chr1	1286922	rs35056373	G	A	454.44	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=43.41;MQ0=1;OQ=1368.71;QD=34.22;SB=-459.59	GT:AD:DP:GL:GQ	1/1:0,40:36:-140.48,-10.85,-0.02:99
-chr1	1287079	rs2649611	A	G	142	PASS	AC=2;AF=1.00;AN=2;DB;DP=4;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=35.17;MQ0=0;OQ=99.93;QD=24.98;SB=-76.36	GT:AD:DP:GL:GQ	1/1:0,4:4:-13.53,-1.21,-0.00:12.03
-chr1	1287285	rs2765021	C	T	19.52	PASS	AC=2;AF=1.00;AN=2;DB;DP=8;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=27.13;MQ0=1;OQ=211.29;QD=26.41;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,8:6:-24.70,-1.81,-0.00:18.06
-chr1	1287346	.	G	A	32.26	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=10;Dels=0.00;HRun=0;HaplotypeScore=0.41;MQ=19.54;MQ0=6;QD=3.23;SB=-10.00	GT:AD:DP:GL:GQ	0/1:5,5:4:-7.72,-1.21,-5.84:46.31
-chr1	1287498	rs34896744	G	A	28.51	PASS	AC=2;AF=1.00;AN=2;DB;DP=14;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=29.00;MQ0=0;OQ=522.90;QD=37.35;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,14:14:-55.88,-4.22,-0.00:42.14
-chr1	1288153	.	C	T	10.16	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=18;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=6.84;MQ0=17;QD=0.56;SB=-10.00	GT:AD:DP:GL:GQ	0/1:15,3:1:-4.26,-0.30,-0.00:1.76
-chr1	1288274	rs4970439	C	T	158.39	PASS	AC=2;AF=1.00;AN=2;DB;DP=8;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=30.76;MQ0=1;OQ=198.94;QD=24.87;SB=-120.99	GT:AD:DP:GL:GQ	1/1:0,8:6:-23.47,-1.81,-0.00:18.06
-chr1	1288396	rs9700464	T	G	39.49	LowQual	AC=2;AF=1.00;AN=2;DB;DP=5;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=19.48;MQ0=3;QD=7.90;SB=-46.01	GT:AD:DP:GL:GQ	1/1:0,5:2:-7.36,-0.60,-0.00:6.02
-chr1	1288400	rs2477784	C	T	45.25	LowQual	AC=2;AF=1.00;AN=2;DB;DP=3;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=21.37;MQ0=1;QD=15.08;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,3:2:-7.93,-0.60,-0.00:6.02
-chr1	1288965	.	T	C	42.83	LowQual	AC=2;AF=1.00;AN=2;DP=5;Dels=0.00;HRun=3;HaplotypeScore=1.16;MQ=15.81;MQ0=3;QD=8.57;SB=-10.00	GT:AD:DP:GL:GQ	1/1:3,2:2:-7.69,-0.60,-0.00:6.02
-chr1	1288989	.	G	A	32	LowQual	AC=2;AF=1.00;AN=2;DP=4;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=17.68;MQ0=2;QD=8.00;SB=-10.00	GT:AD:DP:GL:GQ	1/1:2,2:2:-6.61,-0.60,-0.00:6.01
-chr1	1288993	.	G	A	39.02	LowQual	AC=2;AF=1.00;AN=2;DP=4;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=17.68;MQ0=2;QD=9.75;SB=-10.00	GT:AD:DP:GL:GQ	1/1:2,2:2:-7.31,-0.60,-0.00:6.02
-chr1	1289038	.	G	A	46.02	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DP=18;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=8.33;MQ0=16;QD=2.56;SB=-10.00	GT:AD:DP:GL:GQ	1/1:16,2:2:-8.01,-0.60,-0.00:6.02
-chr1	1289229	rs28368296	C	T	48.25	LowQual	AC=2;AF=1.00;AN=2;DB;DP=3;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=23.68;MQ0=1;QD=16.08;SB=-10.00	GT:AD:DP:GL:GQ	1/1:1,2:2:-8.23,-0.60,-0.00:6.02
-chr1	1292190	.	A	C	28.74	DPFilter;HARD_TO_VALIDATE;Indel;LowQual	AC=1;AF=0.50;AN=2;DP=20;Dels=0.00;HRun=0;HaplotypeScore=31.67;MQ=32.93;MQ0=5;QD=1.44;SB=2.03	GT:AD:DP:GL:GQ	0/1:14,6:12:-9.77,-3.62,-33.18:61.57
-chr1	1292271	rs61766242	A	G	18.08	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=30.84;MQ0=4;OQ=1066.32;QD=26.66;SB=-193.80	GT:AD:DP:GL:GQ	1/1:0,40:32:-110.23,-9.64,-0.01:96.27
-chr1	1292418	rs3104610	C	T	418.78	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=45.84;MQ0=1;OQ=2220.73;QD=38.96;SB=-760.52	GT:AD:DP:GL:GQ	1/1:0,57:55:-225.67,-16.57,-0.01:99
-chr1	1297501	rs2649597	T	C	2.48	PASS	AC=2;AF=1.00;AN=2;DB;DP=16;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=25.11;MQ0=4;OQ=360.28;QD=22.52;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,16:12:-39.62,-3.62,-0.01:36.08
-chr1	1298491	rs2477775	A	G	32.28	LowQual	AC=2;AF=1.00;AN=2;DB;DP=2;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=29.00;MQ0=0;QD=16.14;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,2:2:-6.64,-0.60,-0.00:6.02
-chr1	1298734	rs2649595	A	T	1.65	PASS	AC=2;AF=1.00;AN=2;DB;DP=4;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=25.11;MQ0=1;OQ=88.08;QD=22.02;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,4:3:-12.30,-0.90,-0.00:9.03
-chr1	1300531	rs2242398	A	C	250.70	PASS	AC=2;AF=1.00;AN=2;DB;DP=15;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=40.82;MQ0=0;OQ=470.94;QD=31.40;SB=-111.01	GT:AD:DP:GL:GQ	1/1:0,15:15:-50.69,-4.52,-0.01:45.12
-chr1	1300838	rs2649594	C	T	51.73	PASS	AC=2;AF=1.00;AN=2;DB;DP=14;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=23.25;MQ0=5;OQ=315.14;QD=22.51;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,14:9:-35.10,-2.71,-0.01:27.08
-chr1	1300941	rs2649592	G	T	12.43	PASS	AC=2;AF=1.00;AN=2;DB;DP=14;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=22.29;MQ0=5;OQ=256.28;QD=18.31;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,14:8:-29.21,-2.41,-0.00:24.07
-chr1	1302674	rs34582295	C	T	6.04	PASS	AC=2;AF=1.00;AN=2;DB;DP=23;Dels=0.00;HRun=2;HaplotypeScore=3.06;MQ=25.59;MQ0=11;OQ=374.66;QD=16.29;SB=-144.64	GT:AD:DP:GL:GQ	1/1:0,23:11:-41.06,-3.32,-0.01:33.10
-chr1	1303447	rs11489820	G	C	2.99	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=1.81;MQ=7.53;MQ0=41;OQ=125.53;QD=2.73;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,46:4:-16.09,-1.21,-0.00:12.04
-chr1	1304035	rs2477777	C	T	175.22	PASS	AC=2;AF=1.00;AN=2;DB;DP=20;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=34.74;MQ0=4;OQ=578.49;QD=28.92;SB=-248.33	GT:AD:DP:GL:GQ	1/1:0,20:15:-61.44,-4.52,-0.00:45.15
-chr1	1304333	rs2313135	T	G	34.29	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DB;DP=7;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=18.98;MQ0=4;QD=4.90;SB=-10.00	GT:AD:DP:GL:GQ	0/1:5,2:3:-7.61,-0.90,-3.34:24.36
-chr1	1304907	rs2368566	G	A	186.02	PASS	AC=2;AF=1.00;AN=2;DB;DP=3;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=25.16;MQ0=0;OQ=83.01;QD=27.67;SB=-45.55	GT:AD:DP:GL:GQ	1/1:0,3:3:-11.79,-0.90,-0.00:9.03
-chr1	1305206	rs2368565	G	A	178.76	PASS	AC=2;AF=1.00;AN=2;DB;DP=4;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=29.00;MQ0=0;OQ=123.88;QD=30.97;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,4:4:-15.92,-1.20,-0.00:12.04
-chr1	1305756	rs2454652	C	T	47.02	LowQual	AC=2;AF=1.00;AN=2;DB;DP=2;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=29.00;MQ0=0;QD=23.51;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,2:2:-8.11,-0.60,-0.00:6.02
-chr1	1306033	rs2649587	G	A	6.56	PASS	AC=2;AF=1.00;AN=2;DB;DP=16;Dels=0.00;HRun=1;HaplotypeScore=0.97;MQ=34.70;MQ0=1;OQ=503.12;QD=31.45;SB=-129.67	GT:AD:DP:GL:GQ	1/1:0,16:14:-53.90,-4.22,-0.01:42.13
-chr1	1306331	rs2649586	A	G	0.26	PASS	AC=2;AF=1.00;AN=2;DB;DP=12;Dels=0.00;HRun=2;HaplotypeScore=0.63;MQ=29.00;MQ0=0;OQ=293.94;QD=24.50;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,11:10:-32.98,-3.01,-0.01:30.07
-chr1	1307502	.	C	G	13.29	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=27;Dels=0.00;HRun=0;HaplotypeScore=1.32;MQ=4.50;MQ0=24;QD=0.49;SB=-10.00	GT:AD:DP:GL:GQ	0/1:26,1:1:-4.59,-0.30,-0.00:1.76
-chr1	1307925	.	G	C	0.13	PASS	AC=1;AF=0.50;AN=2;DP=47;Dels=0.00;HRun=0;HaplotypeScore=0.93;MQ=13.45;MQ0=29;OQ=83.85;QD=1.78;SB=-0.97	GT:AD:DP:GL:GQ	0/1:38,9:8:-14.08,-2.41,-22.17:99
-chr1	1307979	.	T	C	42.83	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DP=18;Dels=0.00;HRun=1;HaplotypeScore=2.20;MQ=7.67;MQ0=16;QD=2.38;SB=-10.00	GT:AD:DP:GL:GQ	1/1:13,5:2:-7.69,-0.60,-0.00:6.02
-chr1	1308095	.	C	G	10.99	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=29;Dels=0.17;HRun=1;HaplotypeScore=14.74;MQ=6.41;MQ0=25;QD=0.38;SB=-10.00	GT:AD:DP:GL:GQ	0/1:20,4:1:-4.35,-0.30,-0.00:1.76
-chr1	1321841	.	G	T	47.94	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=29;Dels=0.00;HRun=20;HaplotypeScore=6.03;MQ=23.98;MQ0=9;QD=1.65;SB=-0.97	GT:AD:DP:GL:GQ	0/1:18,11:6:-9.89,-1.81,-11.27:80.77
-chr1	1323299	rs1240743	C	A	6.63	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=2.08;MQ=38.33;MQ0=6;OQ=144.07;QD=3.27;SB=50.03	GT:AD:DP:GL:GQ	0/1:30,14:36:-28.54,-10.85,-84.17:99
-chr1	1332475	rs2275915	G	C	24.94	PASS	AC=1;AF=0.50;AN=2;DB;DP=16;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=31.54;MQ0=6;OQ=92.26;QD=5.77;SB=-43.44	GT:AD:DP:GL:GQ	0/1:8,8:10:-15.53,-3.02,-24.58:99
-chr1	1346911	.	G	A	0.08	PASS	AC=1;AF=0.50;AN=2;DP=38;Dels=0.00;HRun=0;HaplotypeScore=8.57;MQ=40.33;MQ0=2;OQ=331.50;QD=8.72;SB=-7.00	GT:AD:DP:GL:GQ	0/1:22,16:33:-46.38,-9.94,-72.87:99
-chr1	1349702	.	C	A	0.66	PASS	AC=1;AF=0.50;AN=2;DP=32;Dels=0.00;HRun=1;HaplotypeScore=5.78;MQ=19.45;MQ0=7;OQ=297.18;QD=9.29;SB=-141.76	GT:AD:DP:GL:GQ	0/1:14,17:13:-36.92,-3.92,-7.86:39.43
-chr1	1352746	rs58304223	G	C	14.25	LowQual	AC=1;AF=0.50;AN=2;DB;DP=1;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=29.00;MQ0=0;QD=14.25;SB=-10.00	GT:AD:DP:GL:GQ	0/1:0,1:1:-4.69,-0.30,-0.00:1.76
-chr1	1353363	.	G	T	42.81	LowQual	AC=2;AF=1.00;AN=2;DP=2;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=37.00;MQ0=0;QD=21.40;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,2:2:-7.69,-0.60,-0.00:6.02
-chr1	1355197	rs1781138	A	G	15.22	PASS	AC=2;AF=1.00;AN=2;DB;DP=18;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=39.89;MQ0=3;OQ=305.23;QD=16.96;SB=-38.95	GT:AD:DP:GL:GQ	1/1:0,18:10:-34.11,-3.01,-0.00:30.08
-chr1	1358462	rs1240703	A	C	0.99	PASS	AC=2;AF=1.00;AN=2;DB;DP=7;Dels=0.00;HRun=3;HaplotypeScore=0.32;MQ=21.92;MQ0=3;OQ=100.91;QD=14.42;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,7:4:-13.63,-1.21,-0.00:12.03
-chr1	1358648	.	C	G	24.94	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=21;Dels=0.00;HRun=3;HaplotypeScore=2.70;MQ=19.30;MQ0=6;QD=1.19;SB=5.05	GT:AD:DP:GL:GQ	0/1:13,8:7:-7.89,-2.11,-21.96:57.76
-chr1	1377530	rs1781144	C	G	16.31	PASS	AC=2;AF=1.00;AN=2;DB;DP=20;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=20.51;MQ0=10;OQ=394.74;QD=19.74;SB=-103.85	GT:AD:DP:GL:GQ	1/1:0,20:10:-43.06,-3.01,-0.00:30.10
-chr1	1380491	.	G	A	10.40	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=59;Dels=0.00;HRun=6;HaplotypeScore=29.42;MQ=36.22;MQ0=8;QD=0.18;SB=26.07	GT:AD:DP:GL:GQ	0/1:33,26:17:-9.41,-5.13,-45.72:42.82
-chr1	1390605	rs1240723	T	C	30.71	PASS	AC=1;AF=0.50;AN=2;DB;DP=34;Dels=0.00;HRun=0;HaplotypeScore=3.36;MQ=30.70;MQ0=2;OQ=239.92;QD=7.06;SB=-41.82	GT:AD:DP:GL:GQ	0/1:20,14:26:-35.12,-7.84,-56.30:99
-chr1	1390829	.	C	T	33.01	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=33;Dels=0.00;HRun=3;HaplotypeScore=8.88;MQ=28.73;MQ0=9;QD=1.00;SB=26.10	GT:AD:DP:GL:GQ	0/1:27,6:18:-12.01,-5.42,-52.81:65.84
-chr1	1394381	.	T	G	40.77	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=45;Dels=0.00;HRun=0;HaplotypeScore=2.09;MQ=20.66;MQ0=17;QD=0.91;SB=-10.00	GT:AD:DP:GL:GQ	0/1:31,13:12:-10.98,-3.61,-30.75:73.61
-chr1	1398226	.	C	T	36.49	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=25;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=10.21;MQ0=21;QD=1.46;SB=-10.00	GT:AD:DP:GL:GQ	0/1:12,13:3:-7.84,-0.90,-3.10:21.92
-chr1	1410500	rs35871802	C	T	116.85	PASS	AC=1;AF=0.50;AN=2;DB;DP=30;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=20.49;MQ0=17;OQ=181.39;QD=6.05;SB=-10.00	GT:AD:DP:GL:GQ	0/1:12,18:11:-24.74,-3.31,-17.34:99
-chr1	1413144	.	G	A	12.73	PASS	AC=1;AF=0.50;AN=2;DP=33;Dels=0.00;HRun=0;HaplotypeScore=2.70;MQ=22.29;MQ0=2;OQ=489.12;QD=14.82;SB=-131.14	GT:AD:DP:GL:GQ	0/1:17,16:30:-61.25,-9.05,-41.87:99
-chr1	1414249	.	G	C	31.95	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=24;Dels=0.00;HRun=2;HaplotypeScore=6.60;MQ=15.28;MQ0=13;QD=1.33;SB=-10.00	GT:AD:DP:GL:GQ	0/1:18,6:4:-7.69,-1.21,-7.60:63.89
-chr1	1423959	rs1781141	T	G	30.05	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DB;DP=19;Dels=0.00;HRun=0;HaplotypeScore=0.33;MQ=21.23;MQ0=4;QD=1.58;SB=5.04	GT:AD:DP:GL:GQ	0/1:13,6:14:-10.50,-4.22,-40.36:62.88
-chr1	1424829	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=39;Dels=0.00;HRun=20;HaplotypeScore=5.78;MQ=28.83;MQ0=9;OQ=77.31;QD=1.98;SB=59.13	GT:AD:DP:GL:GQ	0/1:32,7:28:-19.45,-8.44,-75.28:99
-chr1	1424855	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=28;Dels=0.00;HRun=20;HaplotypeScore=4.13;MQ=29.08;MQ0=4;OQ=54.78;QD=1.96;SB=29.12	GT:AD:DP:GL:GQ	0/1:21,7:17:-13.88,-5.12,-48.25:87.62
-chr1	1425922	rs28755011	C	T	122.75	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=1.62;MQ=53.56;MQ0=1;OQ=756.68;QD=16.45;SB=-222.92	GT:AD:DP:GL:GQ	0/1:21,25:43:-91.92,-12.96,-62.88:99
-chr1	1430132	rs3104609	A	G	485.47	PASS	AC=2;AF=1.00;AN=2;DB;DP=35;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=42.69;MQ0=1;OQ=1088.71;QD=31.11;SB=-534.36	GT:AD:DP:GL:GQ	1/1:0,35:33:-112.47,-9.94,-0.02:99
-chr1	1447936	rs3118507	A	G	40.78	PASS	AC=1;AF=0.50;AN=2;DB;DP=30;Dels=0.00;HRun=1;HaplotypeScore=1.78;MQ=47.98;MQ0=0;OQ=209.16;QD=6.97;SB=-124.72	GT:AD:DP:GL:GQ	0/1:20,10:26:-32.03,-7.83,-67.04:99
-chr1	1450120	rs6603789	G	C	0.59	PASS	AC=2;AF=1.00;AN=2;DB;DP=34;Dels=0.00;HRun=1;HaplotypeScore=0.99;MQ=28.41;MQ0=9;OQ=784.91;QD=23.09;SB=-55.93	GT:AD:DP:GL:GQ	1/1:6,28:20:-82.08,-6.03,-0.01:60.20
-chr1	1450953	rs3128345	A	G	6.78	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=1;HaplotypeScore=8.00;MQ=58.21;MQ0=0;OQ=533.48;QD=10.67;SB=-234.27	GT:AD:DP:GL:GQ	0/1:28,22:48:-71.10,-14.47,-106.23:99
-chr1	1457784	.	T	A	85.12	PASS	AC=1;AF=0.50;AN=2;DP=63;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=58.74;MQ0=0;OQ=950.58;QD=15.09;SB=-335.63	GT:AD:DP:GL:GQ	0/1:32,31:63:-117.32,-18.98,-122.45:99
-chr1	1458041	rs6694994	T	C	138.18	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=49.26;MQ0=0;OQ=499.68;QD=12.19;SB=-117.64	GT:AD:DP:GL:GQ	0/1:20,21:38:-64.71,-11.46,-68.00:99
-chr1	1459409	rs3128344	G	A	558.61	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=45.45;MQ0=0;OQ=1638.56;QD=37.24;SB=-778.68	GT:AD:DP:GL:GQ	1/1:0,43:42:-167.45,-12.65,-0.01:99
-chr1	1461502	.	A	C	42.07	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=16;Dels=0.00;HRun=2;HaplotypeScore=1.74;MQ=57.05;MQ0=0;QD=2.63;SB=14.06	GT:AD:DP:GL:GQ	0/1:8,8:12:-11.11,-3.62,-27.42:74.90
-chr1	1461910	rs3118505	C	T	45.13	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=4.75;MQ=58.35;MQ0=0;OQ=649.92;QD=17.57;SB=-339.91	GT:AD:DP:GL:GQ	0/1:17,20:34:-78.52,-10.25,-48.35:99
-chr1	1462403	rs1571148	T	G	289.59	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=414.06;QD=9.41;SB=-126.87	GT:AD:DP:GL:GQ	0/1:27,17:41:-57.04,-12.35,-89.89:99
-chr1	1462736	rs4259576	T	A	334.86	PASS	AC=1;AF=0.50;AN=2;DB;DP=34;Dels=0.00;HRun=0;HaplotypeScore=0.42;MQ=60.00;MQ0=0;OQ=380.45;QD=11.19;SB=-195.57	GT:AD:DP:GL:GQ	0/1:20,14:33:-51.27,-9.94,-69.97:99
-chr1	1464030	rs1571149	A	G	400.49	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=1.16;MQ=60.00;MQ0=0;OQ=649.88;QD=11.01;SB=-311.08	GT:AD:DP:GL:GQ	0/1:30,29:55:-84.85,-16.58,-112.84:99
-chr1	1464167	rs1571150	C	A	91.13	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=59.52;MQ0=0;OQ=665.06;QD=17.05;SB=-221.93	GT:AD:DP:GL:GQ	0/1:16,23:39:-81.54,-11.75,-55.47:99
-chr1	1464327	rs56239289	T	C	341.41	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.93;MQ=60.00;MQ0=0;OQ=731.44;QD=11.99;SB=-372.97	GT:AD:DP:GL:GQ	0/1:31,30:58:-93.91,-17.48,-117.75:99
-chr1	1464734	rs9439465	G	C	86.71	PASS	AC=1;AF=0.50;AN=2;DB;DP=27;Dels=0.00;HRun=1;HaplotypeScore=0.58;MQ=60.00;MQ0=0;OQ=410.54;QD=15.21;SB=-187.22	GT:AD:DP:GL:GQ	0/1:13,14:25:-51.89,-7.55,-46.69:99
-chr1	1468557	rs55694463	C	G	72.40	PASS	AC=1;AF=0.50;AN=2;DB;DP=26;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.11;MQ0=0;OQ=367.44;QD=14.13;SB=-116.67	GT:AD:DP:GL:GQ	0/1:13,13:22:-46.66,-6.63,-46.00:99
-chr1	1468920	rs61777888	A	T	11.23	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DB;DP=10;Dels=0.00;HRun=0;HaplotypeScore=0.63;MQ=40.58;MQ0=0;QD=1.12;SB=2.00	GT:AD:DP:GL:GQ	0/1:8,2:6:-6.19,-1.81,-11.86:43.73
-chr1	1471211	rs3766177	T	C	144.43	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=1;HaplotypeScore=1.26;MQ=59.42;MQ0=0;OQ=424.79;QD=8.50;SB=-61.74	GT:AD:DP:GL:GQ	0/1:28,22:46:-59.63,-13.86,-111.57:99
-chr1	1472873	rs7517401	G	A	289.79	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=3.75;MQ=59.55;MQ0=0;OQ=742.89;QD=14.57;SB=-367.87	GT:AD:DP:GL:GQ	0/1:27,24:48:-92.05,-14.47,-78.97:99
-chr1	1474833	rs7515814	C	G	227.61	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=0.92;MQ=59.23;MQ0=0;OQ=1418.95;QD=20.87;SB=-692.35	GT:AD:DP:GL:GQ	0/1:30,38:67:-165.38,-20.20,-121.41:99
-chr1	1476697	rs3128342	C	A	175.56	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=2;HaplotypeScore=1.77;MQ=59.37;MQ0=0;OQ=1038.77;QD=15.74;SB=-518.96	GT:AD:DP:GL:GQ	0/1:32,34:66:-127.04,-19.88,-111.54:99
-chr1	1478935	rs3930748	A	G	131.03	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=3.27;MQ=57.35;MQ0=0;OQ=678.62;QD=14.44;SB=-210.49	GT:AD:DP:GL:GQ	0/1:18,29:41:-83.51,-12.36,-58.93:99
-chr1	1479484	rs11590038	T	C	187.36	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=3.28;MQ=60.00;MQ0=0;OQ=498.05;QD=12.45;SB=-267.61	GT:AD:DP:GL:GQ	0/1:17,23:38:-64.56,-11.47,-62.93:99
-chr1	1479489	rs11588893	C	T	162.61	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=2.54;MQ=60.00;MQ0=0;OQ=580.48;QD=15.69;SB=-263.76	GT:AD:DP:GL:GQ	0/1:17,20:34:-71.58,-10.25,-50.12:99
-chr1	1479533	rs7531530	C	T	220.27	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=2.91;MQ=59.18;MQ0=1;OQ=444.32;QD=12.01;SB=-149.64	GT:AD:DP:GL:GQ	0/1:19,18:31:-57.07,-9.35,-49.87:99
-chr1	1479791	rs7366884	T	C	122.14	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=3;HaplotypeScore=0.16;MQ=59.38;MQ0=0;OQ=816.32;QD=13.61;SB=-418.23	GT:AD:DP:GL:GQ	0/1:30,30:57:-102.08,-17.17,-116.37:99
-chr1	1479937	rs7366635	A	G	20.12	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=1;HaplotypeScore=2.12;MQ=59.07;MQ0=0;OQ=292.89;QD=6.51;SB=-136.53	GT:AD:DP:GL:GQ	0/1:30,15:42:-45.23,-12.66,-112.08:99
-chr1	1480024	rs3753332	A	G	36.05	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=2;HaplotypeScore=1.31;MQ=59.44;MQ0=0;OQ=490.38;QD=11.96;SB=-170.97	GT:AD:DP:GL:GQ	0/1:21,20:37:-63.47,-11.15,-78.00:99
-chr1	1480095	rs3753331	T	C	462.82	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.64;MQ0=0;OQ=783.79;QD=15.07;SB=-339.35	GT:AD:DP:GL:GQ	0/1:24,28:51:-97.03,-15.37,-89.70:99
-chr1	1480422	rs3820075	A	G	268.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.65;MQ0=0;OQ=768.88;QD=14.24;SB=-360.10	GT:AD:DP:GL:GQ	0/1:23,31:53:-96.15,-15.98,-92.13:99
-chr1	1480490	rs3753330	T	A	237.50	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.22;MQ0=0;OQ=615.93;QD=11.41;SB=-300.65	GT:AD:DP:GL:GQ	0/1:28,26:50:-79.94,-15.07,-101.11:99
-chr1	1480556	.	C	T	26.64	PASS	AC=1;AF=0.50;AN=2;DP=46;Dels=0.00;HRun=1;HaplotypeScore=1.18;MQ=59.59;MQ0=0;OQ=854.85;QD=18.58;SB=-376.92	GT:AD:DP:GL:GQ	0/1:20,26:44:-102.04,-13.27,-56.58:99
-chr1	1481114	rs12048706	T	C	201.19	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=2.99;MQ=57.91;MQ0=0;OQ=878.58;QD=11.87;SB=-292.17	GT:AD:DP:GL:GQ	0/1:36,38:70:-112.24,-21.10,-138.24:99
-chr1	1484218	rs3118509	T	C	19.29	PASS	AC=2;AF=1.00;AN=2;DB;DP=67;Dels=0.00;HRun=2;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=1926.74;QD=28.76;SB=-881.49	GT:AD:DP:GL:GQ	1/1:0,67:60:-196.31,-18.09,-0.05:99
-chr1	1484946	rs6667347	G	C	188.55	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=1;HaplotypeScore=0.87;MQ=59.64;MQ0=0;OQ=1104.15;QD=17.25;SB=-384.86	GT:AD:DP:GL:GQ	0/1:33,31:63:-132.69,-18.99,-142.09:99
-chr1	1485056	rs3118508	A	G	123.40	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=1.15;MQ=59.54;MQ0=0;OQ=1673.18;QD=28.36;SB=-768.59	GT:AD:DP:GL:GQ	1/1:0,59:54:-170.96,-16.29,-0.05:99
-chr1	1486871	rs3766170	T	C	6.17	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=4;HaplotypeScore=1.66;MQ=57.15;MQ0=0;OQ=440.82;QD=8.82;SB=-192.43	GT:AD:DP:GL:GQ	0/1:28,22:46:-61.23,-13.87,-105.72:99
-chr1	1488802	.	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=70;Dels=0.00;HRun=20;HaplotypeScore=27.79;MQ=52.29;MQ0=1;OQ=57.57;QD=0.82;SB=89.30	GT:AD:DP:GL:GQ	0/1:49,20:48:-23.51,-14.47,-151.88:90.40
-chr1	1489161	rs9439468	A	G	111.48	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=1;HaplotypeScore=2.15;MQ=56.25;MQ0=0;OQ=911.03;QD=16.56;SB=-250.50	GT:AD:DP:GL:GQ	0/1:21,34:50:-109.45,-15.06,-75.57:99
-chr1	1490804	rs6603791	A	G	440.61	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=1.16;MQ=55.41;MQ0=0;OQ=778.85;QD=12.98;SB=-348.06	GT:AD:DP:GL:GQ	0/1:28,32:58:-98.65,-17.48,-110.76:99
-chr1	1490867	.	C	G	0.31	PASS	AC=1;AF=0.50;AN=2;DP=76;Dels=0.00;HRun=0;HaplotypeScore=1.30;MQ=53.32;MQ0=0;OQ=206.00;QD=2.71;SB=-32.07	GT:AD:DP:GL:GQ	0/1:64,12:75:-46.49,-22.61,-271.24:99
-chr1	1490871	.	A	G	0.08	PASS	AC=1;AF=0.50;AN=2;DP=80;Dels=0.00;HRun=1;HaplotypeScore=1.61;MQ=53.82;MQ0=0;OQ=220.05;QD=2.75;SB=-14.75	GT:AD:DP:GL:GQ	0/1:66,14:78:-48.79,-23.50,-263.73:99
-chr1	1490927	rs6656541	T	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=3;HaplotypeScore=23.59;MQ=53.32;MQ0=0;OQ=1558.39;QD=20.51;SB=-788.78	GT:AD:DP:GL:GQ	0/1:23,53:74:-181.42,-22.29,-76.04:99
-chr1	1490930	rs12730242	C	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=1;HaplotypeScore=22.45;MQ=53.65;MQ0=0;OQ=417.53;QD=5.49;SB=-224.35	GT:AD:DP:GL:GQ	0/1:55,21:70:-66.13,-21.09,-238.86:99
-chr1	1490948	rs12742689	T	C	0.19	PASS	AC=1;AF=0.50;AN=2;DB;DP=78;Dels=0.00;HRun=0;HaplotypeScore=2.65;MQ=53.98;MQ0=0;OQ=96.30;QD=1.23;SB=-34.35	GT:AD:DP:GL:GQ	0/1:66,12:72:-34.61,-21.70,-240.60:99
-chr1	1490950	rs12730248	C	T	0.53	PASS	AC=1;AF=0.50;AN=2;DB;DP=79;Dels=0.00;HRun=0;HaplotypeScore=2.65;MQ=54.06;MQ0=0;OQ=172.01;QD=2.18;SB=-98.81	GT:AD:DP:GL:GQ	0/1:67,11:73:-45.59,-25.10,-225.19:99
-chr1	1491329	rs7543799	G	A	29	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=1;HaplotypeScore=5.33;MQ=58.37;MQ0=0;OQ=592.32;QD=13.16;SB=-320.34	GT:AD:DP:GL:GQ	0/1:24,21:38:-73.97,-11.45,-67.99:99
-chr1	1492958	rs7367692	G	A	226.72	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=1;HaplotypeScore=1.69;MQ=59.16;MQ0=0;OQ=759.07;QD=13.80;SB=-311.80	GT:AD:DP:GL:GQ	0/1:31,24:51:-94.56,-15.37,-89.99:99
-chr1	1492962	rs7364711	A	C	163.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=1;HaplotypeScore=1.69;MQ=59.20;MQ0=0;OQ=581.10;QD=10.02;SB=-270.86	GT:AD:DP:GL:GQ	0/1:35,23:56:-78.26,-16.87,-122.50:99
-chr1	1493671	rs11578409	C	G	251.66	PASS	AC=1;AF=0.50;AN=2;DB;DP=102;Dels=0.00;HRun=0;HaplotypeScore=2.31;MQ=59.04;MQ0=0;OQ=1371.84;QD=13.45;SB=-443.87	GT:AD:DP:GL:GQ	0/1:57,45:96:-169.40,-28.93,-244.12:99
-chr1	1493791	rs7550471	G	A	6.65	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=5.83;MQ=58.91;MQ0=0;OQ=1272.31;QD=21.21;SB=-593.09	GT:AD:DP:GL:GQ	0/1:20,38:56:-150.16,-19.64,-65.04:99
-chr1	1494423	rs7552586	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=83;Dels=0.00;HRun=6;HaplotypeScore=3.99;MQ=59.04;MQ0=0;OQ=1025.73;QD=12.36;SB=-469.22	GT:AD:DP:GL:GQ	0/1:45,38:80:-129.96,-24.11,-158.72:99
-chr1	1494904	rs6603792	T	C	342.81	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.57;MQ0=0;OQ=427.21;QD=9.94;SB=-158.94	GT:AD:DP:GL:GQ	0/1:24,19:43:-58.97,-12.96,-97.93:99
-chr1	1495118	rs6603793	C	T	185.94	PASS	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.00;HRun=2;HaplotypeScore=0.67;MQ=59.74;MQ0=0;OQ=1162.21;QD=15.92;SB=-407.71	GT:AD:DP:GL:GQ	0/1:38,35:73:-141.49,-21.99,-140.54:99
-chr1	1495830	rs7548959	C	T	131.47	PASS	AC=1;AF=0.50;AN=2;DB;DP=70;Dels=0.00;HRun=1;HaplotypeScore=3.07;MQ=58.74;MQ0=0;OQ=1025.47;QD=14.65;SB=-444.99	GT:AD:DP:GL:GQ	0/1:38,32:69:-126.64,-20.81,-114.78:99
-chr1	1495898	rs7540231	G	A	67.32	PASS	AC=2;AF=1.00;AN=2;DB;DP=93;Dels=0.00;HRun=2;HaplotypeScore=1.75;MQ=58.44;MQ0=0;OQ=3508.72;QD=37.73;SB=-1621.33	GT:AD:DP:GL:GQ	1/1:0,92:90:-349.87,-27.12,-0.03:99
-chr1	1497229	rs9439469	G	A	187.99	PASS	AC=1;AF=0.50;AN=2;DB;DP=25;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.17;MQ0=0;OQ=210.39;QD=8.42;SB=-10.00	GT:AD:DP:GL:GQ	0/1:17,8:25:-31.85,-7.53,-57.26:99
-chr1	1497775	rs61774865	A	C	52.62	PASS	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=1.62;MQ=53.97;MQ0=0;OQ=260.15;QD=7.88;SB=-10.00	GT:AD:DP:GL:GQ	0/1:20,13:31:-38.64,-9.34,-70.58:99
-chr1	1498322	rs9439473	A	G	18.83	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=2;HaplotypeScore=3.82;MQ=56.11;MQ0=0;OQ=610.76;QD=13.57;SB=-249.32	GT:AD:DP:GL:GQ	0/1:21,24:44:-77.63,-13.27,-79.03:99
-chr1	1498506	.	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=48;Dels=0.00;HRun=5;HaplotypeScore=2.45;MQ=50.85;MQ0=0;OQ=161.89;QD=3.37;SB=24.24	GT:AD:DP:GL:GQ	0/1:38,10:40:-31.52,-12.05,-112.23:99
-chr1	1498508	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=49;Dels=0.00;HRun=15;HaplotypeScore=1.82;MQ=51.05;MQ0=0;OQ=196.72;QD=4.01;SB=27.81	GT:AD:DP:GL:GQ	0/1:38,11:41:-35.31,-12.36,-104.62:99
-chr1	1498897	rs7520996	T	C	291.45	PASS	AC=1;AF=0.50;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=2.95;MQ=56.74;MQ0=0;OQ=1344.56;QD=17.46;SB=-662.63	GT:AD:DP:GL:GQ	0/1:31,46:75:-160.33,-22.59,-123.58:99
-chr1	1499019	rs7518083	A	G	453.47	PASS	AC=1;AF=0.50;AN=2;DB;DP=79;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=55.97;MQ0=0;OQ=1144.84;QD=14.49;SB=-308.25	GT:AD:DP:GL:GQ	0/1:39,40:76:-140.66,-22.89,-155.49:99
-chr1	1499688	rs6666293	A	G	47.16	LowQual	AC=1;AF=0.50;AN=2;DB;DP=7;Dels=0.00;HRun=1;HaplotypeScore=1.90;MQ=53.03;MQ0=0;QD=6.74;SB=-10.00	GT:AD:DP:GL:GQ	0/1:4,3:5:-9.51,-1.51,-8.01:65.07
-chr1	1500664	rs7519837	C	T	335.96	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=1;HaplotypeScore=0.99;MQ=60.00;MQ0=0;OQ=543.75;QD=13.59;SB=-294.78	GT:AD:DP:GL:GQ	0/1:21,19:39:-69.41,-11.75,-74.55:99
-chr1	1500967	rs7556282	G	C	209.02	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=1;HaplotypeScore=0.48;MQ=56.81;MQ0=0;OQ=874.72;QD=17.85;SB=-362.79	GT:AD:DP:GL:GQ	0/1:21,27:44:-104.04,-13.28,-69.73:99
-chr1	1501107	rs4590622	G	A	74.70	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=2.06;MQ=35.43;MQ0=2;OQ=406.87;QD=8.30;SB=-78.55	GT:AD:DP:GL:GQ	0/1:30,19:38:-55.43,-11.46,-75.84:99
-chr1	1501178	rs4618908	T	C	437.65	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=43.31;MQ0=1;OQ=645.96;QD=14.68;SB=-291.48	GT:AD:DP:GL:GQ	0/1:19,25:40:-79.93,-12.05,-65.32:99
-chr1	1504046	.	C	T	7.57	PASS	AC=1;AF=0.50;AN=2;DP=56;Dels=0.00;HRun=0;HaplotypeScore=3.52;MQ=59.17;MQ0=0;OQ=1022.24;QD=18.25;SB=-279.21	GT:AD:DP:GL:GQ	0/1:26,30:52:-121.18,-15.67,-71.09:99
-chr1	1504960	rs9331751	T	A	36.07	PASS	AC=1;AF=0.50;AN=2;DB;DP=78;Dels=0.00;HRun=1;HaplotypeScore=4.88;MQ=56.51;MQ0=1;OQ=1100.76;QD=14.11;SB=-360.40	GT:AD:DP:GL:GQ	0/1:39,39:73:-135.35,-21.99,-132.17:99
-chr1	1506133	rs9442407	C	T	139.40	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=4.15;MQ=35.12;MQ0=12;OQ=825.82;QD=11.16;SB=-394.16	GT:AD:DP:GL:GQ	0/1:42,32:54:-102.14,-16.28,-92.88:99
-chr1	1509564	rs9442406	T	C	136.95	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=1;HaplotypeScore=1.76;MQ=56.80;MQ0=0;OQ=711.41;QD=13.42;SB=-198.20	GT:AD:DP:GL:GQ	0/1:27,26:51:-89.79,-15.37,-103.56:99
-chr1	1510588	rs28788874	C	T	634.33	PASS	AC=2;AF=1.00;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=54.10;MQ0=1;OQ=2154.00;QD=35.90;SB=-1071.35	GT:AD:DP:GL:GQ	1/1:0,60:56:-219.01,-16.88,-0.03:99
-chr1	1510832	rs6666084	A	G	27.92	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=2.32;MQ=29.16;MQ0=1;OQ=863.94;QD=22.15;SB=-357.32	GT:AD:DP:GL:GQ	1/1:0,34:29:-93.05,-11.63,-3.07:85.61
-chr1	1511143	rs6679999	C	T	270.78	PASS	AC=2;AF=1.00;AN=2;DB;DP=26;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=46.32;MQ0=0;OQ=967.03;QD=37.19;SB=-287.88	GT:AD:DP:GL:GQ	1/1:0,26:25:-100.30,-7.53,-0.01:75.24
-chr1	1511216	.	T	A	0.04	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=36;Dels=0.00;HRun=2;HaplotypeScore=0.79;MQ=40.83;MQ0=0;OQ=921.95;QD=25.61;SB=-124.48	GT:AD:DP:GL:GQ	0/1:7,29:35:-106.02,-10.55,-27.02:99
-chr1	1511668	rs4648786	A	G	87.12	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=2.56;MQ=58.14;MQ0=0;OQ=1843.13;QD=31.78;SB=-498.18	GT:AD:DP:GL:GQ	1/1:0,58:57:-187.94,-17.18,-0.05:99
-chr1	1511869	rs4648787	C	T	29.58	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=1;HaplotypeScore=3.56;MQ=56.20;MQ0=1;OQ=2155.57;QD=37.82;SB=-1079.94	GT:AD:DP:GL:GQ	1/1:1,56:55:-219.17,-16.58,-0.02:99
-chr1	1511922	rs4648612	C	T	25.92	PASS	AC=2;AF=1.00;AN=2;DB;DP=31;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=42.53;MQ0=1;OQ=1102.46;QD=35.56;SB=-299.68	GT:AD:DP:GL:GQ	1/1:1,30:28:-113.84,-8.43,-0.01:84.28
-chr1	1512199	rs4648613	T	C	554.79	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=54.33;MQ0=0;OQ=1584.81;QD=33.02;SB=-688.28	GT:AD:DP:GL:GQ	1/1:0,48:45:-162.08,-13.55,-0.01:99
-chr1	1512230	rs28809773	G	A	465.17	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=52.87;MQ0=0;OQ=1755.99;QD=36.58;SB=-748.51	GT:AD:DP:GL:GQ	1/1:0,48:45:-179.20,-13.56,-0.01:99
-chr1	1512325	.	G	A	85.65	PASS	AC=1;AF=0.50;AN=2;DP=53;Dels=0.00;HRun=0;HaplotypeScore=2.80;MQ=55.47;MQ0=0;OQ=776.49;QD=14.65;SB=-378.86	GT:AD:DP:GL:GQ	0/1:28,24:51:-96.30,-15.37,-89.39:99
-chr1	1512595	rs4366263	A	G	19.23	PASS	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=1;HaplotypeScore=3.13;MQ=56.40;MQ0=0;OQ=1310.46;QD=34.49;SB=-610.36	GT:AD:DP:GL:GQ	1/1:0,38:38:-134.64,-11.45,-0.01:99
-chr1	1512656	rs28778974	C	T	131.47	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=49.50;MQ0=1;OQ=1426.66;QD=34.80;SB=-730.49	GT:AD:DP:GL:GQ	1/1:1,40:37:-146.26,-11.15,-0.01:99
-chr1	1512790	rs61774869	C	T	40.58	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=4.10;MQ=48.67;MQ0=1;OQ=1682.46;QD=36.58;SB=-840.63	GT:AD:DP:GL:GQ	1/1:2,44:43:-171.84,-12.95,-0.01:99
-chr1	1513302	rs9725077	G	A	148.03	PASS	AC=2;AF=1.00;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=1.89;MQ=48.17;MQ0=1;OQ=1464.10;QD=34.05;SB=-687.33	GT:AD:DP:GL:GQ	1/1:1,42:38:-150.01,-11.45,-0.01:99
-chr1	1514300	rs9442423	T	C	34.69	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=57.59;MQ0=0;OQ=266.23;QD=6.83;SB=-0.97	GT:AD:DP:GL:GQ	0/1:24,15:34:-40.16,-10.25,-85.89:99
-chr1	1514394	.	C	T	901.86	Indel	AC=1;AF=0.50;AN=2;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.65;MQ0=0;QD=14.78;SB=-128.11	GT:AD:DP:GL:GQ	0/1:33,28:59:-111.26,-17.79,-98.57:99
-chr1	1514734	rs9442403	A	G	0.24	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=1;HaplotypeScore=12.23;MQ=53.49;MQ0=0;OQ=367.70;QD=7.99;SB=-54.31	GT:AD:DP:GL:GQ	0/1:25,19:37:-51.21,-11.16,-85.57:99
-chr1	1514861	.	A	T	164.64	PASS	AC=1;AF=0.50;AN=2;DP=47;Dels=0.00;HRun=0;HaplotypeScore=0.93;MQ=58.34;MQ0=0;OQ=646.82;QD=13.76;SB=-331.07	GT:AD:DP:GL:GQ	0/1:25,22:46:-81.82,-13.86,-91.60:99
-chr1	1515925	rs6681422	T	C	152.90	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=2.60;MQ=56.53;MQ0=0;OQ=534.97;QD=11.15;SB=-174.52	GT:AD:DP:GL:GQ	0/1:23,25:43:-69.74,-12.96,-84.05:99
-chr1	1516662	rs12735276	A	G	21.98	PASS	AC=2;AF=1.00;AN=2;DB;DP=71;Dels=0.00;HRun=1;HaplotypeScore=2.05;MQ=57.32;MQ0=1;OQ=2133.75;QD=30.05;SB=-1092.47	GT:AD:DP:GL:GQ	1/1:2,69:66:-217.02,-19.91,-0.06:99
-chr1	1516946	rs10157140	T	C	503.19	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.65;MQ0=0;OQ=1116.09;QD=14.69;SB=-475.23	GT:AD:DP:GL:GQ	0/1:37,39:76:-137.79,-22.90,-145.96:99
-chr1	1517815	.	T	C	151.98	PASS	AC=1;AF=0.50;AN=2;DP=63;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=58.19;MQ0=0;OQ=718.93;QD=11.41;SB=-330.87	GT:AD:DP:GL:GQ	0/1:32,31:61:-93.57,-18.39,-126.83:99
-chr1	1518089	.	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=69;Dels=0.01;HRun=19;HaplotypeScore=19.37;MQ=53.15;MQ0=1;OQ=397.54;QD=5.76;SB=50.30	GT:AD:DP:GL:GQ	0/1:45,23:60:-60.81,-17.78,-147.22:99
-chr1	1518109	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=82;Dels=0.01;HRun=19;HaplotypeScore=9.39;MQ=51.76;MQ0=1;OQ=216.06;QD=2.63;SB=62.19	GT:AD:DP:GL:GQ	0/1:54,27:58:-42.07,-17.18,-142.92:99
-chr1	1518112	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=77;Dels=0.01;HRun=4;HaplotypeScore=9.55;MQ=51.62;MQ0=1;OQ=92.02;QD=1.20;SB=65.18	GT:AD:DP:GL:GQ	0/1:56,20:51:-27.56,-15.07,-144.06:99
-chr1	1518863	rs12725297	G	C	139.44	PASS	AC=1;AF=0.50;AN=2;DB;DP=84;Dels=0.00;HRun=0;HaplotypeScore=1.89;MQ=58.84;MQ0=0;OQ=1568.02;QD=18.67;SB=-365.83	GT:AD:DP:GL:GQ	0/1:39,45:81:-184.49,-24.41,-167.76:99
-chr1	1518975	rs12725449	G	C	178.35	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=1.05;MQ=58.97;MQ0=0;OQ=2276.77;QD=38.59;SB=-1002.01	GT:AD:DP:GL:GQ	1/1:0,59:56:-231.29,-16.89,-0.03:99
-chr1	1519320	rs28566709	T	C	64.56	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=4.25;MQ=59.59;MQ0=0;OQ=477.78;QD=8.53;SB=-190.61	GT:AD:DP:GL:GQ	0/1:33,23:51:-66.44,-15.38,-114.90:99
-chr1	1519374	rs28662991	T	C	77.77	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=2;HaplotypeScore=0.97;MQ=59.56;MQ0=0;OQ=635.95;QD=12.23;SB=-285.60	GT:AD:DP:GL:GQ	0/1:29,23:51:-82.25,-15.37,-108.55:99
-chr1	1519813	rs28503881	A	G	211.45	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=58.02;MQ0=0;OQ=531.98;QD=8.58;SB=-234.91	GT:AD:DP:GL:GQ	0/1:35,27:58:-73.97,-17.49,-134.84:99
-chr1	1519842	rs4648788	T	C	59.76	PASS	AC=2;AF=1.00;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=2.96;MQ=56.83;MQ0=0;OQ=1829.71;QD=27.72;SB=-554.05	GT:AD:DP:GL:GQ	1/1:0,66:57:-186.60,-17.18,-0.04:99
-chr1	1519857	.	G	C	3.15	PASS	AC=1;AF=0.50;AN=2;DP=63;Dels=0.00;HRun=1;HaplotypeScore=5.53;MQ=56.98;MQ0=0;OQ=985.46;QD=15.64;SB=-338.06	GT:AD:DP:GL:GQ	0/1:28,35:57:-119.03,-17.20,-116.72:99
-chr1	1519861	rs28689700	C	G	213.40	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=2.62;MQ=56.88;MQ0=0;OQ=841.97;QD=13.80;SB=-287.94	GT:AD:DP:GL:GQ	0/1:30,31:57:-104.69,-17.21,-125.41:99
-chr1	1520060	rs4648789	A	C	15.22	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=4;HaplotypeScore=1.27;MQ=50.71;MQ0=0;OQ=838.47;QD=14.46;SB=-329.82	GT:AD:DP:GL:GQ	0/1:26,32:54:-103.41,-16.28,-79.25:99
-chr1	1520063	rs4648790	C	T	336.83	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.48;MQ=51.65;MQ0=0;OQ=926.60;QD=15.19;SB=-418.36	GT:AD:DP:GL:GQ	0/1:30,31:60:-114.03,-18.08,-107.59:99
-chr1	1520195	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=113;Dels=0.02;HRun=0;HaplotypeScore=46.04;MQ=50.13;MQ0=3;OQ=55.61;QD=0.49;SB=110.40	GT:AD:DP:GL:GQ	0/1:96,14:92:-36.27,-27.42,-356.52:88.45
-chr1	1520222	.	G	A	94.09	SnpCluster	AC=1;AF=0.50;AN=2;DP=117;Dels=0.00;HRun=0;HaplotypeScore=77.51;MQ=46.35;MQ0=0;QD=0.80;SB=-48.89	GT:AD:DP:GL:GQ	0/1:102,15:106:-44.62,-31.93,-348.40:99
-chr1	1520225	.	G	C	344.68	SnpCluster	AC=1;AF=0.50;AN=2;DP=118;Dels=0.00;HRun=0;HaplotypeScore=69.75;MQ=44.94;MQ0=0;QD=2.92;SB=-153.13	GT:AD:DP:GL:GQ	0/1:100,18:110:-70.90,-33.15,-412.65:99
-chr1	1520229	.	C	G	412.05	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=121;Dels=0.00;HRun=0;HaplotypeScore=94.26;MQ=43.35;MQ0=0;QD=3.41;SB=-151.44	GT:AD:DP:GL:GQ	0/1:103,18:106:-76.44,-31.95,-372.75:99
-chr1	1520237	.	G	C	91.10	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=128;Dels=0.05;HRun=0;HaplotypeScore=131.86;MQ=42.98;MQ0=0;QD=0.71;SB=13.51	GT:AD:DP:GL:GQ	0/1:106,16:113:-45.55,-33.15,-430.26:99
-chr1	1520238	rs61774873	T	A	718.56	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=125;Dels=0.05;HRun=0;HaplotypeScore=125.70;MQ=43.01;MQ0=0;QD=5.75;SB=-75.62	GT:AD:DP:GL:GQ	0/1:71,41:100:-122.71,-47.57,-247.49:99
-chr1	1520243	.	C	G	225.05	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=127;Dels=0.00;HRun=0;HaplotypeScore=118.32;MQ=42.36;MQ0=0;QD=1.77;SB=107.39	GT:AD:DP:GL:GQ	0/1:107,20:111:-59.26,-33.47,-404.28:99
-chr1	1520250	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=130;Dels=0.03;HRun=1;HaplotypeScore=70.65;MQ=43.20;MQ0=0;OQ=629.57;QD=4.84;SB=-297.59	GT:AD:DP:GL:GQ	0/1:85,37:107:-98.49,-32.25,-308.33:99
-chr1	1520281	rs61774874	G	C	511.99	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=124;Dels=0.00;HRun=0;HaplotypeScore=95.68;MQ=43.19;MQ0=0;QD=4.13;SB=-246.08	GT:AD:DP:GL:GQ	0/1:99,25:103:-85.52,-31.04,-362.79:99
-chr1	1520285	.	G	C	387.17	SnpCluster	AC=1;AF=0.50;AN=2;DP=119;Dels=0.01;HRun=0;HaplotypeScore=65.61;MQ=43.42;MQ0=0;QD=3.25;SB=-155.15	GT:AD:DP:GL:GQ	0/1:98,20:100:-71.84,-29.84,-355.29:99
-chr1	1520289	rs62642589	C	G	93.31	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=121;Dels=0.01;HRun=0;HaplotypeScore=35.98;MQ=43.17;MQ0=0;QD=0.77;SB=134.48	GT:AD:DP:GL:GQ	0/1:107,13:109:-45.17,-32.56,-411.19:99
-chr1	1520331	rs28654137	C	G	48.96	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DB;DP=82;Dels=0.01;HRun=0;HaplotypeScore=27.98;MQ=47.63;MQ0=0;QD=0.60;SB=18.43	GT:AD:DP:GL:GQ	0/1:72,9:75:-30.78,-22.60,-290.44:81.79
-chr1	1520344	.	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=73;Dels=0.01;HRun=0;HaplotypeScore=35.55;MQ=46.62;MQ0=0;OQ=147.13;QD=2.02;SB=-55.25	GT:AD:DP:GL:GQ	0/1:57,14:62:-36.39,-18.39,-179.58:99
-chr1	1520377	.	C	G	26.02	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=62;Dels=0.00;HRun=0;HaplotypeScore=20.54;MQ=46.26;MQ0=1;QD=0.42;SB=59.22	GT:AD:DP:GL:GQ	0/1:52,10:48:-20.35,-14.47,-182.03:58.84
-chr1	1520381	rs28593368	C	G	11.70	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=9.32;MQ=47.21;MQ0=1;QD=0.18;SB=37.38	GT:AD:DP:GL:GQ	0/1:58,8:56:-21.30,-16.87,-217.45:44.23
-chr1	1520469	rs11488585	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=100;Dels=0.01;HRun=0;HaplotypeScore=36.86;MQ=43.53;MQ0=4;OQ=2355.10;QD=23.55;SB=-1049.66	GT:AD:DP:GL:GQ	0/1:35,63:89:-265.31,-26.51,-115.33:99
-chr1	1520498	.	G	A	0.22	PASS	AC=1;AF=0.50;AN=2;DP=90;Dels=0.00;HRun=0;HaplotypeScore=2.00;MQ=42.41;MQ0=4;OQ=313.12;QD=3.48;SB=-164.48	GT:AD:DP:GL:GQ	0/1:71,19:76:-57.51,-22.91,-206.14:99
-chr1	1520609	.	G	C	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=107;Dels=0.00;HRun=0;HaplotypeScore=16.97;MQ=45.11;MQ0=1;OQ=1017.74;QD=9.51;SB=-327.71	GT:AD:DP:GL:GQ	0/1:72,34:94:-133.38,-28.32,-275.79:99
-chr1	1520627	.	T	C	0.10	PASS	AC=2;AF=1.00;AN=2;DP=106;Dels=0.00;HRun=0;HaplotypeScore=10.65;MQ=46.29;MQ0=2;OQ=3224.03;QD=30.42;SB=-1396.99	GT:AD:DP:GL:GQ	1/1:0,101:93:-329.81,-30.68,-3.83:99
-chr1	1520757	.	A	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=102;Dels=0.00;HRun=0;HaplotypeScore=4.58;MQ=47.64;MQ0=6;OQ=89.81;QD=0.88;SB=110.39	GT:AD:DP:GL:GQ	0/1:91,11:89:-39.08,-26.81,-310.80:99
-chr1	1520774	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=99;Dels=0.01;HRun=0;HaplotypeScore=56.31;MQ=48.08;MQ0=6;OQ=62.24;QD=0.63;SB=110.34	GT:AD:DP:GL:GQ	0/1:89,9:83:-34.23,-24.72,-231.51:95.08
-chr1	1520787	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=96;Dels=0.04;HRun=0;HaplotypeScore=27.20;MQ=49.95;MQ0=4;OQ=173.92;QD=1.81;SB=77.51	GT:AD:DP:GL:GQ	0/1:78,14:87:-45.69,-25.01,-305.10:99
-chr1	1520821	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=85;Dels=0.00;HRun=0;HaplotypeScore=37.97;MQ=51.43;MQ0=1;OQ=216.93;QD=2.55;SB=101.36	GT:AD:DP:GL:GQ	0/1:69,16:80:-49.07,-24.10,-269.00:99
-chr1	1520848	.	G	A	0.20	PASS	AC=1;AF=0.50;AN=2;DP=88;Dels=0.00;HRun=0;HaplotypeScore=2.89;MQ=50.21;MQ0=2;OQ=302.35;QD=3.44;SB=74.15	GT:AD:DP:GL:GQ	0/1:72,16:76:-56.43,-22.92,-203.92:99
-chr1	1520892	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=100;Dels=0.00;HRun=1;HaplotypeScore=71.05;MQ=51.39;MQ0=2;OQ=950.76;QD=9.51;SB=-387.75	GT:AD:DP:GL:GQ	0/1:63,37:86:-124.27,-25.91,-211.22:99
-chr1	1520953	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=74;Dels=0.01;HRun=0;HaplotypeScore=47.85;MQ=52.80;MQ0=2;OQ=265.98;QD=3.59;SB=-146.32	GT:AD:DP:GL:GQ	0/1:59,14:61:-47.97,-18.09,-205.99:99
-chr1	1520957	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=68;Dels=0.00;HRun=0;HaplotypeScore=21.78;MQ=53.36;MQ0=2;OQ=105.70;QD=1.55;SB=-47.11	GT:AD:DP:GL:GQ	0/1:59,9:55:-30.43,-16.57,-209.84:99
-chr1	1520979	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=63;Dels=0.00;HRun=0;HaplotypeScore=45.80;MQ=49.11;MQ0=2;OQ=234.58;QD=3.72;SB=-118.04	GT:AD:DP:GL:GQ	0/1:53,10:50:-41.81,-15.07,-172.68:99
-chr1	1521029	.	C	G	208.12	Indel	AC=1;AF=0.50;AN=2;DP=65;Dels=0.00;HRun=0;HaplotypeScore=31.42;MQ=47.45;MQ0=1;QD=3.20;SB=-33.62	GT:AD:DP:GL:GQ	0/1:53,12:61:-42.48,-18.38,-218.36:99
-chr1	1521111	.	C	G	34.71	LowQual	AC=1;AF=0.50;AN=2;DP=75;Dels=0.05;HRun=0;HaplotypeScore=51.94;MQ=49.50;MQ0=5;QD=0.46;SB=-34.07	GT:AD:DP:GL:GQ	0/1:62,9:60:-24.84,-18.09,-231.30:67.54
-chr1	1521139	.	G	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=56;Dels=0.00;HRun=0;HaplotypeScore=19.29;MQ=49.73;MQ0=4;OQ=471.32;QD=8.42;SB=-237.06	GT:AD:DP:GL:GQ	0/1:38,18:43:-63.38,-12.96,-121.81:99
-chr1	1521149	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=50;Dels=0.04;HRun=0;HaplotypeScore=25.97;MQ=51.25;MQ0=5;OQ=94.80;QD=1.90;SB=0.71	GT:AD:DP:GL:GQ	0/1:42,6:42:-25.43,-12.66,-151.77:99
-chr1	1521416	.	G	A	908.87	Indel	AC=1;AF=0.50;AN=2;DP=75;Dels=0.00;HRun=0;HaplotypeScore=2.15;MQ=49.66;MQ0=7;QD=12.12;SB=-403.37	GT:AD:DP:GL:GQ	0/1:47,28:66:-114.05,-19.88,-141.06:99
-chr1	1521692	.	G	A	0.94	PASS	AC=1;AF=0.50;AN=2;DP=82;Dels=0.00;HRun=0;HaplotypeScore=9.14;MQ=58.40;MQ0=0;OQ=1252.37;QD=15.27;SB=-600.00	GT:AD:DP:GL:GQ	0/1:41,41:79:-152.32,-23.80,-150.35:99
-chr1	1521772	rs36210710	A	G	0.25	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=1;HaplotypeScore=15.96;MQ=57.04;MQ0=1;OQ=875.12;QD=13.46;SB=-359.37	GT:AD:DP:GL:GQ	0/1:32,33:57:-107.96,-17.17,-110.70:99
-chr1	1522125	rs28569178	A	G	2.98	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=1;HaplotypeScore=5.24;MQ=53.41;MQ0=0;OQ=1519.29;QD=31.65;SB=-783.99	GT:AD:DP:GL:GQ	1/1:0,48:43:-155.53,-12.95,-0.01:99
-chr1	1522142	rs35051391	A	C	34.82	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=1;HaplotypeScore=4.14;MQ=53.19;MQ0=0;OQ=509.94;QD=11.86;SB=-251.92	GT:AD:DP:GL:GQ	0/1:20,23:38:-65.73,-11.45,-61.61:99
-chr1	1522705	.	C	T	4.71	PASS	AC=1;AF=0.50;AN=2;DP=8;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=50.65;MQ0=0;OQ=133.19;QD=16.65;SB=-79.09	GT:AD:DP:GL:GQ	0/1:3,5:8:-19.01,-2.41,-10.59:81.80
-chr1	1524477	rs11552172	T	C	56.64	PASS	AC=1;AF=0.50;AN=2;DB;DP=28;Dels=0.00;HRun=0;HaplotypeScore=1.73;MQ=59.17;MQ0=0;OQ=436.12;QD=15.58;SB=-113.68	GT:AD:DP:GL:GQ	0/1:12,16:28:-55.34,-8.44,-45.31:99
-chr1	1527039	rs4075469	A	C	248.77	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=0.58;MQ=59.34;MQ0=0;OQ=696.22;QD=16.58;SB=-340.88	GT:AD:DP:GL:GQ	0/1:16,26:40:-84.95,-12.05,-59.28:99
-chr1	1527300	rs7554569	C	T	296.92	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.56;MQ0=0;OQ=424.42;QD=8.16;SB=-236.55	GT:AD:DP:GL:GQ	0/1:35,17:46:-59.60,-13.87,-96.44:99
-chr1	1527750	.	C	A	254.99	PASS	AC=1;AF=0.50;AN=2;DP=59;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.50;MQ0=0;OQ=986.18;QD=16.71;SB=-374.21	GT:AD:DP:GL:GQ	0/1:26,33:55:-118.47,-16.57,-69.65:99
-chr1	1527909	.	G	A	103.61	PASS	AC=1;AF=0.50;AN=2;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=59.52;MQ0=0;OQ=783.03;QD=16.31;SB=-358.36	GT:AD:DP:GL:GQ	0/1:23,25:47:-95.76,-14.17,-71.60:99
-chr1	1528300	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=48;Dels=0.00;HRun=3;HaplotypeScore=10.61;MQ=58.05;MQ0=0;OQ=286.83;QD=5.98;SB=62.19	GT:AD:DP:GL:GQ	0/1:26,22:41:-44.32,-12.35,-90.74:99
-chr1	1529232	rs6656591	T	C	65.49	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=1;HaplotypeScore=3.39;MQ=56.33;MQ0=0;OQ=1005.79;QD=17.65;SB=-491.70	GT:AD:DP:GL:GQ	0/1:23,34:55:-120.43,-16.57,-83.35:99
-chr1	1529445	rs6691649	G	A	161.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=1.99;MQ=59.46;MQ0=0;OQ=1057.94;QD=19.59;SB=-480.07	GT:AD:DP:GL:GQ	0/1:20,34:51:-124.45,-15.37,-67.92:99
-chr1	1529817	rs4075275	G	C	15.87	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=2;HaplotypeScore=2.13;MQ=58.35;MQ0=0;OQ=1607.65;QD=30.92;SB=-720.33	GT:AD:DP:GL:GQ	1/1:0,52:40:-164.38,-12.07,-0.03:99
-chr1	1530590	.	C	T	27.41	PASS	AC=1;AF=0.50;AN=2;DP=27;Dels=0.00;HRun=0;HaplotypeScore=1.60;MQ=55.36;MQ0=0;OQ=363.07;QD=13.45;SB=-133.59	GT:AD:DP:GL:GQ	0/1:14,13:26:-47.43,-7.84,-42.81:99
-chr1	1530910	.	G	C	0.05	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=15;Dels=0.00;HRun=0;HaplotypeScore=6.92;MQ=37.58;MQ0=2;OQ=79.86;QD=5.32;SB=-10.00	GT:AD:DP:GL:GQ	0/1:7,8:5:-12.78,-1.51,-7.90:63.88
-chr1	1530912	.	C	G	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=14;Dels=0.00;HRun=2;HaplotypeScore=4.15;MQ=38.11;MQ0=2;OQ=71.50;QD=5.11;SB=-6.99	GT:AD:DP:GL:GQ	0/1:4,10:6:-12.24,-1.81,-12.03:99
-chr1	1530952	.	G	C	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=16;Dels=0.00;HRun=0;HaplotypeScore=8.79;MQ=42.16;MQ0=2;OQ=53.35;QD=3.33;SB=-39.44	GT:AD:DP:GL:GQ	0/1:11,5:9:-11.33,-2.71,-25.48:86.19
-chr1	1530975	.	C	T	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=16;Dels=0.00;HRun=1;HaplotypeScore=5.18;MQ=46.58;MQ0=0;OQ=57.06;QD=3.57;SB=5.04	GT:AD:DP:GL:GQ	0/1:12,4:12:-12.60,-3.61,-32.43:89.90
-chr1	1531008	.	C	G	10.82	LowQual	AC=1;AF=0.50;AN=2;DP=21;Dels=0.00;HRun=2;HaplotypeScore=6.64;MQ=46.16;MQ0=1;QD=0.52;SB=-26.85	GT:AD:DP:GL:GQ	0/1:16,5:11:-7.66,-3.33,-32.36:43.28
-chr1	1531060	.	A	C	0.05	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=16;Dels=0.00;HRun=0;HaplotypeScore=9.36;MQ=36.61;MQ0=1;OQ=116.93;QD=7.31;SB=-3.99	GT:AD:DP:GL:GQ	0/1:5,10:9:-17.69,-2.71,-12.57:98.57
-chr1	1531096	.	C	T	31.46	LowQual	AC=1;AF=0.50;AN=2;DP=10;Dels=0.00;HRun=0;HaplotypeScore=8.94;MQ=35.04;MQ0=1;QD=3.15;SB=-6.99	GT:AD:DP:GL:GQ	0/1:5,5:4:-7.64,-1.21,-6.67:54.60
-chr1	1531214	.	C	T	12.58	LowQual	AC=1;AF=0.50;AN=2;DP=14;Dels=0.00;HRun=0;HaplotypeScore=1.53;MQ=48.08;MQ0=0;QD=0.90;SB=-28.53	GT:AD:DP:GL:GQ	0/1:11,2:10:-7.53,-3.02,-23.43:45.17
-chr1	1531255	.	G	A	2.13	PASS	AC=1;AF=0.50;AN=2;DP=12;Dels=0.00;HRun=0;HaplotypeScore=2.57;MQ=54.60;MQ0=0;OQ=208.62;QD=17.39;SB=-121.64	GT:AD:DP:GL:GQ	0/1:2,10:8:-26.44,-2.41,-2.60:1.87
-chr1	1531316	.	A	T	48.17	LowQual	AC=1;AF=0.50;AN=2;DP=24;Dels=0.00;HRun=0;HaplotypeScore=3.10;MQ=48.85;MQ0=0;QD=2.01;SB=-30.94	GT:AD:DP:GL:GQ	0/1:15,8:14:-12.32,-4.22,-35.65:81.01
-chr1	1531334	.	C	T	13.43	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=24;Dels=0.00;HRun=0;HaplotypeScore=4.16;MQ=45.60;MQ0=1;QD=0.56;SB=5.01	GT:AD:DP:GL:GQ	0/1:15,7:11:-7.93,-3.32,-25.96:46.07
-chr1	1531359	.	G	A	17.07	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=23;Dels=0.00;HRun=0;HaplotypeScore=4.20;MQ=46.76;MQ0=1;QD=0.74;SB=11.04	GT:AD:DP:GL:GQ	0/1:19,4:19:-10.71,-5.73,-55.15:49.82
-chr1	1531380	.	C	G	42.65	LowQual	AC=1;AF=0.50;AN=2;DP=30;Dels=0.00;HRun=3;HaplotypeScore=7.66;MQ=46.38;MQ0=2;QD=1.42;SB=-45.68	GT:AD:DP:GL:GQ	0/1:23,7:24:-14.78,-7.24,-85.75:75.49
-chr1	1531419	.	A	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=21;Dels=0.00;HRun=2;HaplotypeScore=5.63;MQ=45.92;MQ0=1;OQ=63.73;QD=3.03;SB=23.10	GT:AD:DP:GL:GQ	0/1:16,5:18:-15.09,-5.43,-50.86:96.57
-chr1	1531527	.	A	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=20;Dels=0.00;HRun=2;HaplotypeScore=3.70;MQ=32.41;MQ0=1;OQ=75.08;QD=3.75;SB=-44.95	GT:AD:DP:GL:GQ	0/1:9,10:9:-13.51,-2.71,-17.78:99
-chr1	1531545	.	G	C	27.47	LowQual	AC=1;AF=0.50;AN=2;DP=20;Dels=0.00;HRun=0;HaplotypeScore=8.08;MQ=36.24;MQ0=1;QD=1.37;SB=-32.85	GT:AD:DP:GL:GQ	0/1:18,2:9:-8.74,-2.71,-27.23:60.30
-chr1	1531547	.	C	G	25.49	LowQual	AC=1;AF=0.50;AN=2;DP=19;Dels=0.00;HRun=2;HaplotypeScore=8.42;MQ=36.81;MQ0=1;QD=1.34;SB=-27.40	GT:AD:DP:GL:GQ	0/1:14,5:6:-7.64,-1.81,-15.17:58.31
-chr1	1532873	rs9442420	T	C	73.52	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.50;MQ0=0;OQ=1279.49;QD=27.81;SB=-597.57	GT:AD:DP:GL:GQ	1/1:0,46:41:-131.57,-12.37,-0.04:99
-chr1	1533487	rs61774903	T	C	6.43	PASS	AC=1;AF=0.50;AN=2;DB;DP=25;Dels=0.00;HRun=2;HaplotypeScore=0.48;MQ=59.07;MQ0=0;OQ=267.71;QD=10.71;SB=-22.90	GT:AD:DP:GL:GQ	0/1:12,13:23:-36.99,-6.93,-45.73:99
-chr1	1533846	.	C	A	150.54	PASS	AC=1;AF=0.50;AN=2;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=60.00;MQ0=0;OQ=607.30;QD=13.20;SB=-294.38	GT:AD:DP:GL:GQ	0/1:23,23:45:-77.57,-13.56,-81.22:99
-chr1	1534313	.	G	A	286.31	PASS	AC=1;AF=0.50;AN=2;DP=45;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=55.20;MQ0=0;OQ=679.07;QD=15.09;SB=-355.53	GT:AD:DP:GL:GQ	0/1:22,23:43:-84.16,-12.97,-66.20:99
-chr1	1535152	rs6671612	G	T	108.66	PASS	AC=1;AF=0.50;AN=2;DB;DP=70;Dels=0.00;HRun=1;HaplotypeScore=2.91;MQ=57.71;MQ0=0;OQ=838.64;QD=11.98;SB=-304.64	GT:AD:DP:GL:GQ	0/1:41,29:64:-106.43,-19.29,-110.69:99
-chr1	1536167	rs11492279	C	T	248.42	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=2.77;MQ=60.00;MQ0=0;OQ=1040.79;QD=15.31;SB=-440.43	GT:AD:DP:GL:GQ	0/1:36,32:64:-126.65,-19.29,-102.67:99
-chr1	1536812	rs4612573	T	C	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.03;HRun=1;HaplotypeScore=39.15;MQ=49.08;MQ0=0;OQ=1478.03;QD=23.09;SB=-556.56	GT:AD:DP:GL:GQ	1/1:5,57:50:-162.89,-15.07,-11.50:35.64
-chr1	1537429	rs4369171	A	G	1.14	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=7.54;MQ=57.32;MQ0=0;OQ=2121.87;QD=33.68;SB=-744.31	GT:AD:DP:GL:GQ	1/1:0,62:59:-215.79,-17.77,-0.02:99
-chr1	1537803	.	G	T	52.70	DPFilter;Indel	AC=1;AF=0.50;AN=2;DP=74;Dels=0.00;HRun=13;HaplotypeScore=28.28;MQ=58.09;MQ0=1;QD=0.71;SB=63.90	GT:AD:DP:GL:GQ	0/1:60,13:55:-25.14,-16.58,-155.96:85.54
-chr1	1537805	.	T	C	135.64	DPFilter;Indel	AC=1;AF=0.50;AN=2;DP=67;Dels=0.00;HRun=0;HaplotypeScore=41.12;MQ=58.24;MQ0=1;QD=2.02;SB=15.89	GT:AD:DP:GL:GQ	0/1:57,10:56:-33.73,-16.88,-176.73:99
-chr1	1538333	.	A	G	136.38	PASS	AC=1;AF=0.50;AN=2;DP=54;Dels=0.00;HRun=0;HaplotypeScore=1.45;MQ=58.86;MQ0=0;OQ=748.93;QD=13.87;SB=-356.58	GT:AD:DP:GL:GQ	0/1:27,27:53:-94.15,-15.98,-99.69:99
-chr1	1538565	rs9442431	T	C	829.64	Indel	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=2;HaplotypeScore=7.58;MQ=50.06;MQ0=1;QD=21.83;SB=-151.73	GT:AD:DP:GL:GQ	1/1:0,37:28:-86.58,-8.45,-0.03:84.18
-chr1	1538664	rs9442430	T	C	1.04	PASS	AC=2;AF=1.00;AN=2;DB;DP=69;Dels=0.01;HRun=1;HaplotypeScore=8.39;MQ=59.12;MQ0=0;OQ=2182.53;QD=31.63;SB=-555.08	GT:AD:DP:GL:GQ	1/1:0,68:67:-221.88,-20.20,-0.05:99
-chr1	1539012	rs34501155	C	T	24.47	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=2;HaplotypeScore=0.10;MQ=59.44;MQ0=0;OQ=1523.49;QD=20.31;SB=-698.38	GT:AD:DP:GL:GQ	0/1:29,46:74:-177.93,-22.30,-104.96:99
-chr1	1539217	rs12066	G	A	112.48	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=4;HaplotypeScore=0.00;MQ=59.68;MQ0=0;OQ=2269.66;QD=38.47;SB=-1077.37	GT:AD:DP:GL:GQ	1/1:0,59:57:-230.57,-17.17,-0.02:99
-chr1	1539583	.	C	T	13.58	PASS	AC=1;AF=0.50;AN=2;DP=60;Dels=0.00;HRun=2;HaplotypeScore=2.17;MQ=59.69;MQ0=0;OQ=849.58;QD=14.16;SB=-408.41	GT:AD:DP:GL:GQ	0/1:34,26:60:-106.31,-18.07,-125.62:99
-chr1	1540565	rs4648611	A	G	1.07	PASS	AC=2;AF=1.00;AN=2;DB;DP=22;Dels=0.00;HRun=2;HaplotypeScore=4.13;MQ=58.95;MQ0=0;OQ=632.46;QD=28.75;SB=-329.75	GT:AD:DP:GL:GQ	1/1:0,22:20:-66.85,-6.03,-0.02:60.13
-chr1	1541790	rs7418389	T	C	9.16	PASS	AC=2;AF=1.00;AN=2;DB;DP=23;Dels=0.00;HRun=0;HaplotypeScore=1.85;MQ=60.00;MQ0=0;OQ=644.37;QD=28.02;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,23:21:-68.04,-6.33,-0.01:63.14
-chr1	1542618	rs6604985	T	C	187.42	PASS	AC=2;AF=1.00;AN=2;DB;DP=82;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=59.49;MQ0=0;OQ=2789.66;QD=34.02;SB=-860.05	GT:AD:DP:GL:GQ	1/1:0,82:81:-282.58,-24.40,-0.03:99
-chr1	1543361	rs28546565	G	A	262.71	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=1.31;MQ=59.46;MQ0=0;OQ=627.76;QD=14.60;SB=-285.20	GT:AD:DP:GL:GQ	0/1:20,23:40:-78.11,-12.05,-70.94:99
-chr1	1543456	rs28623434	C	G	8.50	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=2;HaplotypeScore=2.93;MQ=59.20;MQ0=0;OQ=2332.23;QD=40.21;SB=-1030.14	GT:AD:DP:GL:GQ	1/1:0,58:55:-236.83,-16.57,-0.02:99
-chr1	1543533	rs9442410	G	C	82.06	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=60.00;MQ0=0;OQ=2713.47;QD=43.07;SB=-1108.14	GT:AD:DP:GL:GQ	1/1:0,63:62:-274.95,-18.68,-0.02:99
-chr1	1544225	rs9442425	G	A	33.58	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=1;HaplotypeScore=2.11;MQ=59.22;MQ0=0;OQ=1855.01;QD=38.65;SB=-869.17	GT:AD:DP:GL:GQ	1/1:0,48:47:-189.10,-14.16,-0.01:99
-chr1	1545229	rs9329576	T	C	4.58	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=2;HaplotypeScore=2.58;MQ=60.00;MQ0=0;OQ=1266.55;QD=28.15;SB=-625.18	GT:AD:DP:GL:GQ	1/1:0,45:39:-130.27,-11.76,-0.03:99
-chr1	1545852	rs7543265	G	A	8.95	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=6.32;MQ=58.20;MQ0=0;OQ=611.29;QD=15.67;SB=-238.27	GT:AD:DP:GL:GQ	0/1:17,20:35:-74.97,-10.56,-46.23:99
-chr1	1546595	rs34983251	G	A	45.65	PASS	AC=1;AF=0.50;AN=2;DB;DP=30;Dels=0.00;HRun=1;HaplotypeScore=2.69;MQ=59.23;MQ0=0;OQ=349.98;QD=11.67;SB=-133.57	GT:AD:DP:GL:GQ	0/1:16,14:26:-46.12,-7.83,-51.50:99
-chr1	1547538	rs28710339	G	C	59.83	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=1;HaplotypeScore=3.45;MQ=58.50;MQ0=0;OQ=866.08;QD=15.47;SB=-347.43	GT:AD:DP:GL:GQ	0/1:31,25:53:-105.89,-16.00,-107.63:99
-chr1	1547753	.	C	T	52.88	PASS	AC=1;AF=0.50;AN=2;DP=57;Dels=0.00;HRun=0;HaplotypeScore=1.47;MQ=58.60;MQ0=0;OQ=1139.64;QD=19.99;SB=-512.06	GT:AD:DP:GL:GQ	0/1:22,35:54:-133.53,-16.28,-63.46:99
-chr1	1548655	rs12755088	T	C	97.70	PASS	AC=2;AF=1.00;AN=2;DB;DP=18;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=439.27;QD=24.40;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,18:16:-47.54,-4.84,-0.03:48.08
-chr1	1548983	.	C	G	40.73	LowQual	AC=2;AF=1.00;AN=2;DP=6;Dels=0.00;HRun=5;HaplotypeScore=1.58;MQ=47.12;MQ0=0;QD=6.79;SB=-10.00	GT:AD:DP:GL:GQ	1/1:1,5:2:-7.48,-0.61,-0.00:6.02
-chr1	1549329	rs28617190	G	A	97.62	PASS	AC=1;AF=0.50;AN=2;DB;DP=34;Dels=0.00;HRun=1;HaplotypeScore=1.74;MQ=57.37;MQ0=0;OQ=547.08;QD=16.09;SB=-253.53	GT:AD:DP:GL:GQ	0/1:16,18:32:-67.63,-9.64,-54.05:99
-chr1	1549834	rs12748433	C	T	442.94	PASS	AC=2;AF=1.00;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.23;MQ0=0;OQ=1400.65;QD=37.86;SB=-569.32	GT:AD:DP:GL:GQ	1/1:0,37:36:-143.66,-10.85,-0.01:99
-chr1	1549963	rs28441650	G	A	319.81	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=59.05;MQ0=0;OQ=739.99;QD=15.10;SB=-342.91	GT:AD:DP:GL:GQ	0/1:25,24:48:-91.75,-14.47,-81.34:99
-chr1	1551048	.	G	A	13.72	PASS	AC=1;AF=0.50;AN=2;DP=24;Dels=0.00;HRun=0;HaplotypeScore=1.88;MQ=55.20;MQ0=0;OQ=331.40;QD=13.81;SB=-96.94	GT:AD:DP:GL:GQ	0/1:12,12:21:-42.75,-6.33,-33.17:99
-chr1	1551194	.	G	A	9.75	PASS	AC=1;AF=0.50;AN=2;DP=34;Dels=0.00;HRun=0;HaplotypeScore=2.78;MQ=59.45;MQ0=0;OQ=497.08;QD=14.62;SB=-108.95	GT:AD:DP:GL:GQ	0/1:18,16:33:-62.94,-9.95,-55.65:99
-chr1	1552758	rs12735861	C	T	11.10	PASS	AC=1;AF=0.50;AN=2;DB;DP=9;Dels=0.00;HRun=0;HaplotypeScore=0.33;MQ=56.58;MQ0=0;OQ=143.44;QD=15.94;SB=-6.99	GT:AD:DP:GL:GQ	0/1:3,6:8:-20.04,-2.41,-9.16:67.50
-chr1	1553652	.	C	A	57.28	PASS	AC=1;AF=0.50;AN=2;DP=48;Dels=0.00;HRun=0;HaplotypeScore=3.41;MQ=59.52;MQ0=0;OQ=736.76;QD=15.35;SB=-347.43	GT:AD:DP:GL:GQ	0/1:23,25:44:-90.22,-13.26,-60.84:99
-chr1	1554057	rs3935032	C	T	0.35	PASS	AC=1;AF=0.50;AN=2;DB;DP=27;Dels=0.00;HRun=1;HaplotypeScore=1.82;MQ=59.31;MQ0=0;OQ=580.92;QD=21.52;SB=-104.60	GT:AD:DP:GL:GQ	0/1:9,18:26:-69.21,-7.83,-32.29:99
-chr1	1555931	rs28730454	A	G	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=5;Dels=0.00;HRun=7;HaplotypeScore=0.32;MQ=55.21;MQ0=0;OQ=59.16;QD=11.83;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,5:3:-9.41,-0.90,-0.00:9.02
-chr1	1556023	rs28464684	T	C	13.91	PASS	AC=2;AF=1.00;AN=2;DB;DP=3;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=73.72;QD=24.57;SB=-40.68	GT:AD:DP:GL:GQ	1/1:0,3:3:-10.86,-0.90,-0.00:9.03
-chr1	1556952	rs28451771	T	C	12.66	PASS	AC=2;AF=1.00;AN=2;DB;DP=19;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=58.78;MQ0=0;OQ=601.05;QD=31.63;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,19:19:-63.70,-5.72,-0.01:57.14
-chr1	1561503	rs61774909	G	T	0.68	PASS	AC=2;AF=1.00;AN=2;DB;DP=32;Dels=0.00;HRun=1;HaplotypeScore=1.92;MQ=9.65;MQ0=29;OQ=78.96;QD=2.47;SB=-10.00	GT:AD:DP:GL:GQ	1/1:16,16:3:-11.38,-0.90,-0.00:9.03
-chr1	1563882	rs61774911	A	G	1.20	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=2.88;MQ=39.06;MQ0=5;OQ=124.38;QD=2.76;SB=-85.66	GT:AD:DP:GL:GQ	0/1:34,10:35:-26.27,-10.55,-104.24:99
-chr1	1563939	rs9442413	G	A	8.49	PASS	AC=1;AF=0.50;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=1.78;MQ=40.26;MQ0=2;OQ=315.22;QD=4.50;SB=-153.56	GT:AD:DP:GL:GQ	0/1:51,19:59:-52.60,-17.79,-143.72:99
-chr1	1564183	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=36;Dels=0.00;HRun=20;HaplotypeScore=14.98;MQ=46.49;MQ0=5;OQ=64.66;QD=1.80;SB=35.13	GT:AD:DP:GL:GQ	0/1:31,5:28:-18.18,-8.44,-79.86:97.49
-chr1	1564572	rs28401288	T	G	29.42	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=41.92;MQ0=1;OQ=1158.48;QD=27.58;SB=-476.97	GT:AD:DP:GL:GQ	1/1:0,42:35:-119.45,-10.55,-0.02:99
-chr1	1565479	rs28394074	T	C	98.76	PASS	AC=2;AF=1.00;AN=2;DB;DP=27;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=12.86;MQ0=16;OQ=207.25;QD=7.68;SB=-36.94	GT:AD:DP:GL:GQ	1/1:0,27:7:-24.31,-2.11,-0.00:21.06
-chr1	1565699	.	C	G	5.41	PASS	AC=1;AF=0.50;AN=2;DP=76;Dels=0.00;HRun=1;HaplotypeScore=2.34;MQ=26.47;MQ0=10;OQ=657.44;QD=8.65;SB=-346.42	GT:AD:DP:GL:GQ	0/1:55,21:62:-87.73,-18.71,-164.80:99
-chr1	1566499	rs3765908	G	A	18.31	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=1;HaplotypeScore=2.75;MQ=37.81;MQ0=3;OQ=1730.84;QD=29.34;SB=-752.15	GT:AD:DP:GL:GQ	1/1:8,51:54:-192.27,-16.27,-15.84:4.30
-chr1	1566866	rs3819995	C	T	33.13	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=2.57;MQ=17.30;MQ0=34;OQ=418.63;QD=7.34;SB=-10.00	GT:AD:DP:GL:GQ	0/1:21,36:18:-50.57,-5.43,-18.99:99
-chr1	1567043	rs1137001	C	T	0.22	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=2.31;MQ=9.65;MQ0=38;OQ=66.77;QD=1.34;SB=-10.00	GT:AD:DP:GL:GQ	0/1:35,15:6:-11.77,-1.81,-10.91:90.99
-chr1	1569585	rs61774912	C	T	0.10	PASS	AC=1;AF=0.50;AN=2;DB;DP=88;Dels=0.00;HRun=1;HaplotypeScore=8.98;MQ=13.84;MQ0=43;OQ=132.92;QD=1.51;SB=-3.99	GT:AD:DP:GL:GQ	0/1:64,24:26:-24.41,-7.83,-74.67:99
-chr1	1569917	rs6688326	C	A	0.25	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=1;HaplotypeScore=2.45;MQ=26.34;MQ0=26;OQ=227.69;QD=3.04;SB=-87.75	GT:AD:DP:GL:GQ	0/1:58,17:44:-39.31,-13.26,-117.30:99
-chr1	1570601	rs4648767	T	A	243.47	PASS	AC=1;AF=0.50;AN=2;DB;DP=87;Dels=0.00;HRun=0;HaplotypeScore=1.76;MQ=24.85;MQ0=18;OQ=1006.84;QD=11.57;SB=-380.53	GT:AD:DP:GL:GQ	0/1:42,45:58:-121.45,-17.48,-87.58:99
-chr1	1570928	.	G	C	0.90	PASS	AC=1;AF=0.50;AN=2;DP=153;Dels=0.00;HRun=0;HaplotypeScore=3.62;MQ=32.27;MQ0=14;OQ=845.01;QD=5.52;SB=-333.79	GT:AD:DP:GL:GQ	0/1:113,40:123:-124.85,-37.07,-408.45:99
-chr1	1570959	.	C	T	0.27	PASS	AC=1;AF=0.50;AN=2;DP=165;Dels=0.00;HRun=2;HaplotypeScore=4.89;MQ=34.90;MQ0=12;OQ=2272.40;QD=13.77;SB=-727.55	GT:AD:DP:GL:GQ	0/1:85,80:144:-273.90,-43.38,-268.43:99
-chr1	1571421	rs61774913	C	T	442.63	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=18.06;MQ0=31;OQ=744.27;QD=14.31;SB=-218.78	GT:AD:DP:GL:GQ	1/1:0,52:19:-78.02,-5.72,-0.00:57.19
-chr1	1571449	rs61774914	T	C	385.68	PASS	AC=2;AF=1.00;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=19.48;MQ0=37;OQ=993.50;QD=14.19;SB=-324.14	GT:AD:DP:GL:GQ	1/1:0,70:28:-102.94,-8.43,-0.01:84.26
-chr1	1571467	.	G	A	0.11	PASS	AC=1;AF=0.50;AN=2;DP=88;Dels=0.00;HRun=0;HaplotypeScore=5.46;MQ=31.83;MQ0=25;OQ=330.51;QD=3.76;SB=-146.19	GT:AD:DP:GL:GQ	0/1:69,19:55:-52.91,-16.58,-135.58:99
-chr1	1571576	.	A	C	50.03	PASS	AC=2;AF=1.00;AN=2;DP=93;Dels=0.00;HRun=0;HaplotypeScore=1.66;MQ=35.58;MQ0=13;OQ=1974.59;QD=21.23;SB=-847.56	GT:AD:DP:GL:GQ	1/1:0,61:79:-282.59,-90.56,-81.54:90.13
-chr1	1571744	rs61774916	T	C	0.32	PASS	AC=1;AF=0.50;AN=2;DB;DP=124;Dels=0.00;HRun=0;HaplotypeScore=9.99;MQ=43.65;MQ0=18;OQ=618.53;QD=4.99;SB=-195.46	GT:AD:DP:GL:GQ	0/1:91,33:103:-96.17,-31.03,-294.76:99
-chr1	1571789	rs61774917	G	T	99.17	PASS	AC=1;AF=0.50;AN=2;DB;DP=114;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=40.38;MQ0=17;OQ=858.73;QD=7.53;SB=-166.41	GT:AD:DP:GL:GQ	0/1:66,48:94:-117.47,-28.31,-223.12:99
-chr1	1571821	rs4279785	T	C	0.05	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DB;DP=125;Dels=0.00;HRun=1;HaplotypeScore=1.20;MQ=33.09;MQ0=22;OQ=74.70;QD=0.60;SB=13.40	GT:AD:DP:GL:GQ	0/1:103,22:85:-36.35,-25.60,-306.33:99
-chr1	1571969	rs4648753	T	C	252.37	PASS	AC=2;AF=1.00;AN=2;DB;DP=100;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=33.21;MQ0=23;OQ=2308.47;QD=23.08;SB=-928.73	GT:AD:DP:GL:GQ	1/1:1,99:73:-234.50,-22.02,-0.07:99
-chr1	1572065	rs61774918	C	T	271.62	PASS	AC=1;AF=0.50;AN=2;DB;DP=124;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=40.98;MQ0=5;OQ=1993.46;QD=16.08;SB=-715.20	GT:AD:DP:GL:GQ	0/1:57,67:116:-237.58,-34.95,-201.11:99
-chr1	1572318	rs61774919	G	A	28.59	PASS	AC=1;AF=0.50;AN=2;DB;DP=173;Dels=0.00;HRun=0;HaplotypeScore=4.27;MQ=26.57;MQ0=15;OQ=1639.76;QD=9.48;SB=-550.56	GT:AD:DP:GL:GQ	0/1:104,69:121:-203.75,-36.49,-222.67:99
-chr1	1572479	.	T	C	0.14	PASS	AC=1;AF=0.50;AN=2;DP=143;Dels=0.00;HRun=0;HaplotypeScore=2.56;MQ=45.14;MQ0=0;OQ=1750.04;QD=12.24;SB=-888.87	GT:AD:DP:GL:GQ	0/1:83,60:141:-220.76,-42.47,-332.08:99
-chr1	1572504	.	T	C	0.71	PASS	AC=1;AF=0.50;AN=2;DP=136;Dels=0.00;HRun=0;HaplotypeScore=1.61;MQ=42.33;MQ0=3;OQ=1049.29;QD=7.72;SB=-546.16	GT:AD:DP:GL:GQ	0/1:84,52:129:-147.09,-38.88,-337.66:99
-chr1	1572657	rs4648754	C	A	97.80	PASS	AC=2;AF=1.00;AN=2;DB;DP=118;Dels=0.00;HRun=0;HaplotypeScore=3.13;MQ=39.40;MQ0=0;OQ=4131.60;QD=35.01;SB=-1448.13	GT:AD:DP:GL:GQ	1/1:1,117:114:-412.16,-34.34,-0.04:99
-chr1	1572704	rs61774920	A	G	0.40	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=2.14;MQ=29.04;MQ0=13;OQ=131.71;QD=1.78;SB=23.25	GT:AD:DP:GL:GQ	0/1:54,20:56:-33.33,-16.87,-184.69:99
-chr1	1572707	rs61774921	G	T	0.96	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=1.98;MQ=28.52;MQ0=13;OQ=177.56;QD=2.50;SB=-37.61	GT:AD:DP:GL:GQ	0/1:52,19:55:-37.61,-16.57,-159.55:99
-chr1	1572743	rs3820000	G	C	38.18	PASS	AC=1;AF=0.50;AN=2;DB;DP=84;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=26.84;MQ0=19;OQ=650.68;QD=7.75;SB=38.16	GT:AD:DP:GL:GQ	0/1:50,34:58:-85.85,-17.49,-156.24:99
-chr1	1572824	rs3820001	G	C	184.22	PASS	AC=1;AF=0.50;AN=2;DB;DP=78;Dels=0.00;HRun=0;HaplotypeScore=3.61;MQ=41.82;MQ0=4;OQ=1359.68;QD=17.43;SB=-597.25	GT:AD:DP:GL:GQ	0/1:31,47:67:-159.47,-20.22,-110.10:99
-chr1	1572866	rs61776849	C	T	39.28	PASS	AC=1;AF=0.50;AN=2;DB;DP=91;Dels=0.00;HRun=1;HaplotypeScore=4.48;MQ=49.73;MQ0=0;OQ=1155.72;QD=12.70;SB=-351.36	GT:AD:DP:GL:GQ	0/1:50,41:84:-144.17,-25.32,-161.47:99
-chr1	1572951	.	A	G	0.08	PASS	AC=1;AF=0.50;AN=2;DP=82;Dels=0.00;HRun=1;HaplotypeScore=0.32;MQ=47.33;MQ0=7;OQ=238.29;QD=2.91;SB=26.27	GT:AD:DP:GL:GQ	0/1:60,22:73:-49.11,-21.99,-235.06:99
-chr1	1573358	rs61774952	T	C	32.21	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DB;DP=86;Dels=0.00;HRun=0;HaplotypeScore=3.00;MQ=47.33;MQ0=8;QD=0.37;SB=67.42	GT:AD:DP:GL:GQ	0/1:70,16:71:-27.89,-21.39,-252.84:65.04
-chr1	1573532	.	C	T	35.47	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=18;Dels=0.00;HRun=0;HaplotypeScore=0.63;MQ=10.41;MQ0=15;QD=1.97;SB=-10.00	GT:AD:DP:GL:GQ	0/1:15,3:3:-7.73,-0.90,-3.80:28.93
-chr1	1573550	.	T	C	24.36	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=34;Dels=0.00;HRun=0;HaplotypeScore=2.09;MQ=33.97;MQ0=17;QD=0.72;SB=-17.89	GT:AD:DP:GL:GQ	0/1:23,11:14:-9.94,-4.22,-42.08:57.18
-chr1	1573618	.	C	T	2.54	PASS	AC=1;AF=0.50;AN=2;DP=105;Dels=0.00;HRun=0;HaplotypeScore=5.35;MQ=45.15;MQ0=15;OQ=814.16;QD=7.75;SB=-232.64	GT:AD:DP:GL:GQ	0/1:66,38:82:-109.43,-24.73,-173.93:99
-chr1	1573625	.	G	A	3.56	PASS	AC=1;AF=0.50;AN=2;DP=106;Dels=0.00;HRun=0;HaplotypeScore=3.46;MQ=45.17;MQ0=14;OQ=654.74;QD=6.18;SB=-207.09	GT:AD:DP:GL:GQ	0/1:70,36:84:-94.09,-25.34,-189.03:99
-chr1	1573865	rs6691927	A	G	0.48	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=1;HaplotypeScore=13.93;MQ=47.63;MQ0=8;OQ=1026.45;QD=17.40;SB=-411.69	GT:AD:DP:GL:GQ	0/1:13,46:46:-119.80,-13.87,-37.07:99
-chr1	1573965	rs28525262	G	A	126.85	PASS	AC=2;AF=1.00;AN=2;DB;DP=91;Dels=0.00;HRun=0;HaplotypeScore=1.29;MQ=48.13;MQ0=7;OQ=3091.70;QD=33.97;SB=-1505.87	GT:AD:DP:GL:GQ	1/1:7,83:80:-316.25,-24.10,-3.49:99
-chr1	1573980	rs4648756	G	C	18.18	PASS	AC=2;AF=1.00;AN=2;DB;DP=87;Dels=0.00;HRun=0;HaplotypeScore=4.39;MQ=47.15;MQ0=6;OQ=3392.36;QD=38.99;SB=-1642.01	GT:AD:DP:GL:GQ	1/1:0,87:79:-338.24,-23.81,-0.03:99
-chr1	1574055	rs4648606	G	A	59.73	PASS	AC=2;AF=1.00;AN=2;DB;DP=73;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=37.73;MQ0=7;OQ=2424.32;QD=33.21;SB=-1231.00	GT:AD:DP:GL:GQ	1/1:0,72:61:-246.03,-18.38,-0.02:99
-chr1	1574081	rs4648607	T	C	84.11	PASS	AC=2;AF=1.00;AN=2;DB;DP=71;Dels=0.00;HRun=1;HaplotypeScore=0.63;MQ=40.76;MQ0=4;OQ=2240.23;QD=31.55;SB=-1072.45	GT:AD:DP:GL:GQ	1/1:0,71:63:-227.63,-18.98,-0.02:99
-chr1	1574087	rs4648757	G	C	98.21	PASS	AC=2;AF=1.00;AN=2;DB;DP=71;Dels=0.00;HRun=1;HaplotypeScore=0.32;MQ=43.14;MQ0=1;OQ=2791.35;QD=39.31;SB=-1268.99	GT:AD:DP:GL:GQ	1/1:0,71:65:-282.74,-19.59,-0.02:99
-chr1	1574123	.	A	C	149.77	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=92;Dels=0.00;HRun=0;HaplotypeScore=169.77;MQ=39.72;MQ0=1;QD=1.63;SB=83.29	GT:AD:DP:GL:GQ	0/1:79,13:73:-40.25,-21.99,-225.95:99
-chr1	1574124	.	A	G	50.98	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=93;Dels=0.00;HRun=0;HaplotypeScore=170.51;MQ=39.99;MQ0=1;QD=0.55;SB=86.31	GT:AD:DP:GL:GQ	0/1:80,13:72:-30.08,-21.70,-250.90:83.81
-chr1	1574131	.	A	G	472.59	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=90;Dels=0.00;HRun=2;HaplotypeScore=66.93;MQ=41.08;MQ0=1;QD=5.25;SB=86.31	GT:AD:DP:GL:GQ	0/1:61,29:78:-74.04,-23.50,-234.93:99
-chr1	1574135	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=89;Dels=0.00;HRun=0;HaplotypeScore=78.57;MQ=41.20;MQ0=1;OQ=155.65;QD=1.75;SB=86.32	GT:AD:DP:GL:GQ	0/1:76,13:71:-40.23,-21.39,-240.65:99
-chr1	1574143	.	A	G	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=73;Dels=0.00;HRun=0;HaplotypeScore=1.67;MQ=43.74;MQ0=1;OQ=78.06;QD=1.07;SB=89.31	GT:AD:DP:GL:GQ	0/1:60,13:65:-30.68,-19.59,-219.52:99
-chr1	1574152	.	C	T	0.05	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=68;Dels=0.00;HRun=0;HaplotypeScore=2.44;MQ=43.30;MQ0=0;OQ=130.78;QD=1.92;SB=41.52	GT:AD:DP:GL:GQ	0/1:58,10:59:-34.15,-17.79,-160.93:99
-chr1	1574339	.	T	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=78;Dels=0.00;HRun=0;HaplotypeScore=12.88;MQ=42.39;MQ0=0;OQ=429.14;QD=5.50;SB=104.35	GT:AD:DP:GL:GQ	0/1:59,19:76:-69.09,-22.90,-217.44:99
-chr1	1574367	rs12749208	C	T	7.96	PASS	AC=1;AF=0.50;AN=2;DB;DP=70;Dels=0.00;HRun=1;HaplotypeScore=1.32;MQ=36.29;MQ0=0;OQ=733.94;QD=10.48;SB=80.18	GT:AD:DP:GL:GQ	0/1:43,27:66:-96.58,-19.90,-132.61:99
-chr1	1574398	rs12756960	A	G	17.43	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=1;HaplotypeScore=1.82;MQ=34.26;MQ0=0;QD=0.28;SB=39.57	GT:AD:DP:GL:GQ	0/1:29,33:32:-14.67,-9.65,-103.72:50.18
-chr1	1574404	rs12756961	A	T	204.46	Indel	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=1;HaplotypeScore=1.82;MQ=35.46;MQ0=0;QD=3.01;SB=-19.65	GT:AD:DP:GL:GQ	0/1:32,36:41:-36.08,-12.35,-112.04:99
-chr1	1574410	rs12749336	C	G	884.89	Indel	AC=1;AF=0.50;AN=2;DB;DP=69;Dels=0.00;HRun=0;HaplotypeScore=10.32;MQ=35.72;MQ0=0;QD=12.82;SB=-17.81	GT:AD:DP:GL:GQ	0/1:40,29:35:-102.33,-10.56,-39.37:99
-chr1	1574434	rs61774954	A	C	428.65	DPFilter;Indel	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=8.25;MQ=34.95;MQ0=1;QD=6.30;SB=56.20	GT:AD:DP:GL:GQ	0/1:39,29:57:-63.32,-17.18,-124.62:99
-chr1	1574437	rs61774955	A	C	431.78	DPFilter;Indel	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=1;HaplotypeScore=7.93;MQ=34.95;MQ0=1;QD=6.35;SB=56.19	GT:AD:DP:GL:GQ	0/1:38,30:51:-61.82,-15.36,-118.50:99
-chr1	1574456	rs12749364	C	A	1380.74	SnpCluster	AC=2;AF=1.00;AN=2;DB;DP=80;Dels=0.00;HRun=1;HaplotypeScore=20.46;MQ=37.20;MQ0=1;QD=17.26;SB=-577.01	GT:AD:DP:GL:GQ	1/1:30,50:46:-152.08,-13.86,-10.42:34.36
-chr1	1574458	.	G	C	45.27	DPFilter;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=79;Dels=0.01;HRun=0;HaplotypeScore=10.44;MQ=37.76;MQ0=1;QD=0.57;SB=71.27	GT:AD:DP:GL:GQ	0/1:52,26:51:-22.87,-15.06,-200.14:78.10
-chr1	1574459	.	G	A	19.52	DPFilter;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=78;Dels=0.01;HRun=1;HaplotypeScore=9.38;MQ=37.85;MQ0=1;QD=0.25;SB=68.24	GT:AD:DP:GL:GQ	0/1:50,27:51:-20.29,-15.06,-165.60:52.31
-chr1	1574490	.	C	T	446.32	DPFilter;Indel;SnpCluster	AC=1;AF=0.50;AN=2;DP=73;Dels=0.00;HRun=0;HaplotypeScore=13.97;MQ=40.46;MQ0=1;QD=6.11;SB=62.20	GT:AD:DP:GL:GQ	0/1:48,25:59:-65.69,-17.77,-151.07:99
-chr1	1574491	.	A	G	363.54	DPFilter;Indel;SnpCluster	AC=1;AF=0.50;AN=2;DP=74;Dels=0.00;HRun=0;HaplotypeScore=14.98;MQ=40.79;MQ0=1;QD=4.91;SB=65.24	GT:AD:DP:GL:GQ	0/1:48,26:58:-57.11,-17.48,-164.32:99
-chr1	1574495	.	G	A	435.54	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=76;Dels=0.00;HRun=0;HaplotypeScore=16.96;MQ=40.97;MQ0=1;QD=5.73;SB=65.16	GT:AD:DP:GL:GQ	0/1:50,26:61:-65.23,-18.39,-146.68:99
-chr1	1574611	.	T	C	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=71;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=41.66;MQ0=2;OQ=80.08;QD=1.13;SB=68.24	GT:AD:DP:GL:GQ	0/1:54,17:60:-29.38,-18.09,-195.87:99
-chr1	1574622	.	G	A	0.30	PASS	AC=1;AF=0.50;AN=2;DP=73;Dels=0.00;HRun=0;HaplotypeScore=1.85;MQ=40.91;MQ0=2;OQ=251.34;QD=3.44;SB=59.11	GT:AD:DP:GL:GQ	0/1:55,18:61:-46.81,-18.39,-160.50:99
-chr1	1574627	.	C	T	0.19	PASS	AC=1;AF=0.50;AN=2;DP=77;Dels=0.00;HRun=0;HaplotypeScore=1.69;MQ=42.21;MQ0=2;OQ=221.98;QD=2.88;SB=74.24	GT:AD:DP:GL:GQ	0/1:61,16:67:-45.68,-20.20,-184.31:99
-chr1	1574705	rs12753686	C	T	533.95	PASS	AC=2;AF=1.00;AN=2;DB;DP=67;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=47.26;MQ0=1;OQ=2577.15;QD=38.46;SB=-1301.71	GT:AD:DP:GL:GQ	1/1:1,66:64:-261.31,-19.28,-0.01:99
-chr1	1574781	rs12753729	C	T	0.96	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=7.51;MQ=55.74;MQ0=0;OQ=2039.46;QD=37.77;SB=-910.24	GT:AD:DP:GL:GQ	1/1:1,53:52:-207.55,-15.67,-0.02:99
-chr1	1575120	rs4648758	A	G	435.58	PASS	AC=2;AF=1.00;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.79;MQ0=0;OQ=1070.30;QD=28.93;SB=-511.19	GT:AD:DP:GL:GQ	1/1:0,37:35:-110.65,-10.56,-0.04:99
-chr1	1575210	rs4648760	T	C	43.48	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=2;HaplotypeScore=0.47;MQ=63.90;MQ0=0;OQ=1693.31;QD=34.56;SB=-784.12	GT:AD:DP:GL:GQ	1/1:0,49:49:-172.94,-14.76,-0.02:99
-chr1	1575251	rs4648761	A	G	5.46	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=2;HaplotypeScore=0.16;MQ=60.80;MQ0=0;OQ=1436.67;QD=28.17;SB=-671.85	GT:AD:DP:GL:GQ	1/1:0,51:45:-147.29,-13.57,-0.04:99
-chr1	1575460	rs7531938	A	G	536.50	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.20;MQ0=0;OQ=2059.81;QD=30.29;SB=-875.65	GT:AD:DP:GL:GQ	1/1:0,68:66:-209.63,-19.91,-0.06:99
-chr1	1575505	rs3936009	G	T	209.53	PASS	AC=2;AF=1.00;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=1.70;MQ=57.75;MQ0=0;OQ=2310.00;QD=35.54;SB=-1127.37	GT:AD:DP:GL:GQ	1/1:0,65:65:-234.60,-19.58,-0.02:99
-chr1	1576615	rs11486023	T	C	106.32	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=57.19;MQ0=0;OQ=1526.39;QD=31.15;SB=-484.14	GT:AD:DP:GL:GQ	1/1:0,49:47:-156.26,-14.17,-0.04:99
-chr1	1577178	rs4648762	A	G	161.07	PASS	AC=2;AF=1.00;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=54.74;MQ0=0;OQ=2251.82;QD=30.85;SB=-761.70	GT:AD:DP:GL:GQ	1/1:0,72:69:-228.82,-20.80,-0.05:99
-chr1	1578533	rs61774958	G	A	209.68	PASS	AC=1;AF=0.50;AN=2;DB;DP=136;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=45.20;MQ0=11;OQ=1051.54;QD=7.73;SB=-56.39	GT:AD:DP:GL:GQ	0/1:86,50:122:-145.19,-36.75,-299.83:99
-chr1	1578580	rs61774959	G	A	15.52	PASS	AC=1;AF=0.50;AN=2;DB;DP=103;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=42.73;MQ0=4;OQ=297.29;QD=2.89;SB=-52.85	GT:AD:DP:GL:GQ	0/1:73,30:83:-58.01,-25.00,-251.41:99
-chr1	1578600	rs61776760	C	T	0.35	PASS	AC=1;AF=0.50;AN=2;DB;DP=94;Dels=0.00;HRun=0;HaplotypeScore=3.00;MQ=43.98;MQ0=2;OQ=158.49;QD=1.69;SB=-47.28	GT:AD:DP:GL:GQ	0/1:69,25:74:-41.42,-22.29,-233.46:99
-chr1	1579194	rs28530622	C	G	155.54	PASS	AC=2;AF=1.00;AN=2;DB;DP=13;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=30.72;MQ0=1;OQ=430.39;QD=33.11;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,13:10:-46.62,-3.01,-0.00:30.10
-chr1	1579428	rs61776762	A	G	153.73	PASS	AC=2;AF=1.00;AN=2;DB;DP=7;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=25.52;MQ0=1;OQ=97.37;QD=13.91;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,7:4:-13.27,-1.21,-0.00:12.02
-chr1	1580015	rs11486024	G	A	46.74	PASS	AC=1;AF=0.50;AN=2;DB;DP=27;Dels=0.00;HRun=0;HaplotypeScore=0.98;MQ=22.93;MQ0=7;OQ=160.84;QD=5.96;SB=11.04	GT:AD:DP:GL:GQ	0/1:15,12:15:-23.90,-4.53,-24.75:99
-chr1	1580190	rs7547516	A	G	298.92	PASS	AC=2;AF=1.00;AN=2;DB;DP=22;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=32.87;MQ0=6;OQ=291.00;QD=13.23;SB=-79.37	GT:AD:DP:GL:GQ	1/1:0,22:11:-32.70,-3.32,-0.02:33.05
-chr1	1580389	rs9329573	G	C	27.04	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=1.40;MQ=38.23;MQ0=0;OQ=1419.74;QD=36.40;SB=-378.04	GT:AD:DP:GL:GQ	1/1:0,39:37:-145.59,-11.17,-0.03:99
-chr1	1580438	rs9661285	G	A	38.22	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=1;HaplotypeScore=1.16;MQ=39.42;MQ0=4;OQ=1274.78;QD=31.87;SB=-484.63	GT:AD:DP:GL:GQ	1/1:2,38:33:-131.07,-9.94,-0.01:99
-chr1	1580544	rs9661500	G	A	46.95	PASS	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=0.10;MQ=56.47;MQ0=0;OQ=1331.19;QD=35.03;SB=-445.09	GT:AD:DP:GL:GQ	1/1:0,38:35:-136.72,-10.55,-0.02:99
-chr1	1581642	.	C	T	0.06	PASS	AC=1;AF=0.50;AN=2;DP=47;Dels=0.00;HRun=0;HaplotypeScore=3.20;MQ=10.78;MQ0=31;OQ=96.64;QD=2.06;SB=-42.54	GT:AD:DP:GL:GQ	0/1:28,19:6:-14.76,-1.81,-6.20:43.86
-chr1	1581652	rs61776763	A	G	3.75	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=2;HaplotypeScore=2.07;MQ=12.19;MQ0=23;OQ=234.90;QD=5.87;SB=-48.96	GT:AD:DP:GL:GQ	1/1:0,40:8:-27.08,-2.41,-0.00:24.06
-chr1	1581732	.	C	T	10.55	PASS	AC=2;AF=1.00;AN=2;DP=24;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=19.72;MQ0=12;OQ=388.23;QD=16.18;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,24:11:-42.41,-3.31,-0.00:33.10
-chr1	1581758	rs61776764	C	G	0.40	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=2;HaplotypeScore=4.17;MQ=24.63;MQ0=12;OQ=1218.98;QD=26.50;SB=-184.87	GT:AD:DP:GL:GQ	1/1:2,44:29:-125.50,-8.74,-0.02:87.29
-chr1	1582007	rs28625763	T	C	180.58	PASS	AC=2;AF=1.00;AN=2;DB;DP=34;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=30.96;MQ0=0;OQ=1011.19;QD=29.74;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,34:31:-104.72,-9.34,-0.02:93.23
-chr1	1582130	rs4648770	T	G	609.06	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=44.32;MQ0=0;OQ=2027.74;QD=33.24;SB=-1018.12	GT:AD:DP:GL:GQ	1/1:1,60:58:-206.38,-17.47,-0.02:99
-chr1	1582744	rs4648774	A	C	3.99	PASS	AC=2;AF=1.00;AN=2;DB;DP=66;Dels=0.00;HRun=2;HaplotypeScore=4.26;MQ=37.79;MQ0=0;OQ=1971.73;QD=29.87;SB=-941.08	GT:AD:DP:GL:GQ	1/1:1,65:56:-200.78,-16.87,-0.02:99
-chr1	1582886	rs1062088	G	C	0.12	PASS	AC=2;AF=1.00;AN=2;DB;DP=22;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=28.33;MQ0=1;OQ=872.58;QD=39.66;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,22:20:-90.85,-6.03,-0.01:60.20
-chr1	1584178	rs1061892	C	T	196.43	PASS	AC=2;AF=1.00;AN=2;DB;DP=84;Dels=0.00;HRun=0;HaplotypeScore=1.31;MQ=53.48;MQ0=0;OQ=3220.76;QD=38.34;SB=-1363.82	GT:AD:DP:GL:GQ	1/1:0,84:80:-325.67,-24.10,-0.02:99
-chr1	1584256	rs6659270	T	A	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=6;HaplotypeScore=1.24;MQ=50.39;MQ0=3;OQ=904.07;QD=12.05;SB=-396.42	GT:AD:DP:GL:GQ	0/1:40,35:71:-115.08,-21.39,-150.96:99
-chr1	1584361	rs7416520	C	T	137.41	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=54.09;MQ0=1;OQ=651.60;QD=13.86;SB=-179.69	GT:AD:DP:GL:GQ	0/1:25,22:41:-80.80,-12.36,-66.61:99
-chr1	1585061	rs4307513	A	G	66.26	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=51.44;MQ0=9;OQ=1311.89;QD=23.85;SB=-662.93	GT:AD:DP:GL:GQ	1/1:0,55:42:-134.81,-12.67,-0.04:99
-chr1	1585263	rs4313339	A	G	2.76	PASS	AC=2;AF=1.00;AN=2;DB;DP=23;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=25.65;MQ0=5;OQ=594.23;QD=25.84;SB=-123.88	GT:AD:DP:GL:GQ	1/1:0,23:18:-63.01,-5.42,-0.01:54.15
-chr1	1585730	rs4443835	C	A	38.28	PASS	AC=2;AF=1.00;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=0.83;MQ=31.44;MQ0=8;OQ=878.16;QD=23.73;SB=-366.86	GT:AD:DP:GL:GQ	1/1:0,37:25:-91.41,-7.53,-0.01:75.22
-chr1	1586059	rs1109644	C	T	45.13	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=2.16;MQ=26.30;MQ0=10;OQ=1336.40;QD=26.73;SB=-334.34	GT:AD:DP:GL:GQ	1/1:3,47:35:-137.24,-10.55,-0.01:99
-chr1	1586167	rs1109645	G	A	15.01	PASS	AC=2;AF=1.00;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=25.64;MQ0=10;OQ=920.81;QD=25.58;SB=-127.66	GT:AD:DP:GL:GQ	1/1:5,31:24:-95.67,-7.23,-0.01:72.23
-chr1	1586837	rs4074020	C	T	96.36	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=1;HaplotypeScore=1.05;MQ=59.56;MQ0=0;OQ=1972.50;QD=37.93;SB=-886.69	GT:AD:DP:GL:GQ	1/1:0,52:51:-200.86,-15.37,-0.02:99
-chr1	1588296	.	A	C	37.76	DPFilter;Indel;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=16;Dels=0.00;HRun=1;HaplotypeScore=3.93;MQ=44.22;MQ0=1;QD=2.36;SB=20.08	GT:AD:DP:GL:GQ	0/1:12,4:13:-10.98,-3.92,-35.85:70.59
-chr1	1588297	.	C	T	55.71	DPFilter;Indel;SnpCluster	AC=1;AF=0.50;AN=2;DP=16;Dels=0.00;HRun=2;HaplotypeScore=3.93;MQ=44.22;MQ0=1;QD=3.48;SB=17.08	GT:AD:DP:GL:GQ	0/1:12,4:12:-12.47,-3.61,-34.17:88.55
-chr1	1588300	.	G	T	70.59	Indel;SnpCluster	AC=1;AF=0.50;AN=2;DP=16;Dels=0.00;HRun=2;HaplotypeScore=3.93;MQ=44.22;MQ0=1;QD=4.41;SB=-0.98	GT:AD:DP:GL:GQ	0/1:12,4:13:-14.26,-3.92,-32.75:99
-chr1	1588313	.	A	G	0.48	PASS	AC=2;AF=1.00;AN=2;DP=6;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=34.54;MQ0=0;OQ=106.39;QD=17.73;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,6:4:-14.17,-1.20,-0.00:12.04
-chr1	1588430	.	A	C	41.05	HARD_TO_VALIDATE;LowQual;SnpCluster	AC=2;AF=1.00;AN=2;DP=7;Dels=0.00;HRun=1;HaplotypeScore=7.96;MQ=16.51;MQ0=4;QD=5.86;SB=-10.00	GT:AD:DP:GL:GQ	1/1:2,5:2:-7.51,-0.60,-0.00:6.02
-chr1	1588435	.	G	A	88.13	HARD_TO_VALIDATE;SnpCluster	AC=2;AF=1.00;AN=2;DP=10;Dels=0.00;HRun=0;HaplotypeScore=3.96;MQ=17.24;MQ0=5;QD=8.81;SB=-10.00	GT:AD:DP:GL:GQ	1/1:5,5:3:-12.30,-0.90,-0.00:9.03
-chr1	1588436	.	C	T	85.79	HARD_TO_VALIDATE;SnpCluster	AC=2;AF=1.00;AN=2;DP=9;Dels=0.00;HRun=0;HaplotypeScore=1.97;MQ=17.47;MQ0=5;QD=9.53;SB=-10.00	GT:AD:DP:GL:GQ	1/1:4,5:3:-12.07,-0.90,-0.00:9.03
-chr1	1588443	.	T	A	229.32	HARD_TO_VALIDATE;SnpCluster	AC=2;AF=1.00;AN=2;DP=15;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=32.72;MQ0=5;QD=15.29;SB=-115.17	GT:AD:DP:GL:GQ	1/1:5,10:7:-26.51,-2.11,-0.00:21.07
-chr1	1589024	rs6604981	A	G	620.61	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=53.22;MQ0=0;OQ=1995.26;QD=35.00;SB=-949.98	GT:AD:DP:GL:GQ	1/1:0,57:56:-203.13,-16.87,-0.02:99
-chr1	1589224	rs6662227	A	G	24.79	PASS	AC=2;AF=1.00;AN=2;DB;DP=35;Dels=0.00;HRun=0;HaplotypeScore=0.58;MQ=48.28;MQ0=4;OQ=837.14;QD=23.92;SB=-301.43	GT:AD:DP:GL:GQ	1/1:0,35:27:-87.33,-8.14,-0.03:81.18
-chr1	1589250	.	A	G	0.03	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=40;Dels=0.00;HRun=2;HaplotypeScore=3.35;MQ=44.60;MQ0=6;OQ=197.93;QD=4.95;SB=-12.85	GT:AD:DP:GL:GQ	0/1:24,16:34:-33.32,-10.25,-92.46:99
-chr1	1589410	rs12725286	C	T	1.49	PASS	AC=1;AF=0.50;AN=2;DB;DP=89;Dels=0.00;HRun=1;HaplotypeScore=10.99;MQ=39.64;MQ0=8;OQ=1191.02;QD=13.38;SB=-569.58	GT:AD:DP:GL:GQ	0/1:50,39:71:-143.77,-21.38,-134.51:99
-chr1	1589675	rs12729295	C	T	309.36	PASS	AC=1;AF=0.50;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=30.48;MQ0=3;OQ=671.60;QD=8.72;SB=-350.30	GT:AD:DP:GL:GQ	0/1:53,24:68:-90.94,-20.50,-145.90:99
-chr1	1589751	rs2072923	A	G	247.26	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=29.67;MQ0=6;OQ=1186.35;QD=17.98;SB=-547.83	GT:AD:DP:GL:GQ	0/1:14,52:56:-138.81,-16.89,-48.69:99
-chr1	1589844	.	C	T	0.07	PASS	AC=1;AF=0.50;AN=2;DP=52;Dels=0.00;HRun=0;HaplotypeScore=10.53;MQ=52.48;MQ0=3;OQ=898.69;QD=17.28;SB=-297.81	GT:AD:DP:GL:GQ	0/1:24,28:47:-107.32,-14.16,-70.31:99
-chr1	1589914	.	C	G	0.11	PASS	AC=1;AF=0.50;AN=2;DP=88;Dels=0.00;HRun=2;HaplotypeScore=0.33;MQ=46.80;MQ0=0;OQ=573.53;QD=6.52;SB=39.39	GT:AD:DP:GL:GQ	0/1:67,21:88:-87.20,-26.56,-264.39:99
-chr1	1589924	.	G	A	1.33	PASS	AC=1;AF=0.50;AN=2;DP=95;Dels=0.00;HRun=1;HaplotypeScore=0.49;MQ=46.92;MQ0=0;OQ=633.71;QD=6.67;SB=49.65	GT:AD:DP:GL:GQ	0/1:70,25:92:-94.37,-27.71,-247.48:99
-chr1	1590019	.	C	G	30.30	PASS	AC=1;AF=0.50;AN=2;DP=69;Dels=0.00;HRun=0;HaplotypeScore=2.72;MQ=49.37;MQ0=3;OQ=641.05;QD=9.29;SB=-314.06	GT:AD:DP:GL:GQ	0/1:47,21:64:-90.20,-22.81,-187.56:99
-chr1	1590023	.	C	T	0.46	PASS	AC=1;AF=0.50;AN=2;DP=62;Dels=0.00;HRun=0;HaplotypeScore=8.72;MQ=48.76;MQ0=3;OQ=551.31;QD=8.89;SB=-275.75	GT:AD:DP:GL:GQ	0/1:40,22:54:-74.68,-16.27,-125.00:99
-chr1	1590878	.	G	A	29.06	PASS	AC=1;AF=0.50;AN=2;DP=34;Dels=0.00;HRun=0;HaplotypeScore=3.16;MQ=58.63;MQ0=0;OQ=418.19;QD=12.30;SB=-160.22	GT:AD:DP:GL:GQ	0/1:18,16:32:-54.75,-9.64,-59.96:99
-chr1	1590915	.	G	A	47.89	PASS	AC=1;AF=0.50;AN=2;DP=39;Dels=0.00;HRun=0;HaplotypeScore=1.05;MQ=58.20;MQ0=0;OQ=322.06;QD=8.26;SB=-141.18	GT:AD:DP:GL:GQ	0/1:27,12:38:-46.95,-11.46,-84.40:99
-chr1	1592399	rs4648609	G	C	54.97	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=60.00;MQ0=0;OQ=906.62;QD=20.60;SB=-310.97	GT:AD:DP:GL:GQ	0/1:19,25:42:-106.61,-12.66,-75.02:99
-chr1	1592450	rs4233029	C	T	90.67	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=3.31;MQ=60.00;MQ0=0;OQ=849.63;QD=19.76;SB=-437.98	GT:AD:DP:GL:GQ	0/1:15,28:37:-99.40,-11.15,-39.71:99
-chr1	1592650	rs4639697	G	T	61.57	PASS	AC=2;AF=1.00;AN=2;DB;DP=78;Dels=0.00;HRun=1;HaplotypeScore=1.87;MQ=58.92;MQ0=0;OQ=2757.17;QD=35.35;SB=-1369.99	GT:AD:DP:GL:GQ	1/1:1,77:76:-279.32,-22.89,-0.02:99
-chr1	1593099	rs11523819	G	A	285.98	PASS	AC=1;AF=0.50;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=59.60;MQ0=0;OQ=1010.41;QD=14.43;SB=-280.29	GT:AD:DP:GL:GQ	0/1:39,31:68:-124.83,-20.51,-114.09:99
-chr1	1593297	rs6699975	G	T	40.53	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=6.04;MQ=58.42;MQ0=0;OQ=872.27;QD=15.58;SB=-424.16	GT:AD:DP:GL:GQ	0/1:24,32:48:-104.97,-14.46,-59.27:99
-chr1	1594362	rs36048328	G	A	212.33	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=3.65;MQ=53.76;MQ0=0;OQ=936.15;QD=14.86;SB=-437.40	GT:AD:DP:GL:GQ	0/1:33,30:61:-115.28,-18.38,-109.00:99
-chr1	1595120	rs12736155	A	C	482.21	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=48.94;MQ0=1;OQ=857.21;QD=13.61;SB=-454.19	GT:AD:DP:GL:GQ	0/1:31,32:60:-107.08,-18.07,-108.87:99
-chr1	1595458	.	A	G	4.92	PASS	AC=1;AF=0.50;AN=2;DP=76;Dels=0.00;HRun=0;HaplotypeScore=5.30;MQ=27.16;MQ0=16;OQ=685.03;QD=9.01;SB=-336.52	GT:AD:DP:GL:GQ	0/1:42,34:52:-87.45,-15.67,-106.28:99
-chr1	1595935	.	C	A	13.79	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=52;Dels=0.00;HRun=13;HaplotypeScore=5.11;MQ=47.25;MQ0=0;QD=0.27;SB=44.14	GT:AD:DP:GL:GQ	0/1:44,8:42:-17.30,-12.66,-119.04:46.44
-chr1	1596150	rs28678861	G	C	0.01	FDRtranche2.00to10.00	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=6;HaplotypeScore=0.16;MQ=35.71;MQ0=1;OQ=1428.28;QD=37.59;SB=-739.75	GT:AD:DP:GL:GQ	1/1:0,38:34:-146.42,-10.25,-0.01:99
-chr1	1596170	rs61776786	G	A	218.03	PASS	AC=1;AF=0.50;AN=2;DB;DP=31;Dels=0.00;HRun=0;HaplotypeScore=0.46;MQ=33.82;MQ0=1;OQ=367.66;QD=11.86;SB=-172.25	GT:AD:DP:GL:GQ	0/1:17,14:26:-47.89,-7.84,-41.82:99
-chr1	1596393	.	A	G	1.96	PASS	AC=1;AF=0.50;AN=2;DP=25;Dels=0.00;HRun=2;HaplotypeScore=1.79;MQ=38.63;MQ0=2;OQ=223.84;QD=8.95;SB=-123.74	GT:AD:DP:GL:GQ	0/1:13,12:22:-32.30,-6.64,-46.25:99
-chr1	1596434	rs61776787	A	G	239.06	PASS	AC=2;AF=1.00;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=2.20;MQ=27.74;MQ0=11;OQ=461.68;QD=12.82;SB=-213.08	GT:AD:DP:GL:GQ	1/1:0,36:16:-49.77,-4.83,-0.02:48.10
-chr1	1598092	rs61776790	C	T	85.65	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=1.47;MQ=16.88;MQ0=18;OQ=268.46;QD=6.88;SB=-142.62	GT:AD:DP:GL:GQ	0/1:27,12:20:-36.16,-6.04,-33.65:99
-chr1	1599022	rs12724172	T	G	248.35	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=48.86;MQ0=1;OQ=792.00;QD=12.00;SB=-236.82	GT:AD:DP:GL:GQ	0/1:30,36:59:-100.27,-17.78,-99.33:99
-chr1	1599028	rs12757736	A	T	344.72	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.98;MQ=49.16;MQ0=1;OQ=842.96;QD=13.82;SB=-342.44	GT:AD:DP:GL:GQ	0/1:27,34:53:-103.55,-15.97,-87.26:99
-chr1	1600387	rs7544851	T	C	182.79	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=1;HaplotypeScore=1.78;MQ=59.17;MQ0=0;OQ=618.77;QD=11.05;SB=-250.34	GT:AD:DP:GL:GQ	0/1:28,28:48:-79.63,-14.47,-94.46:99
-chr1	1601295	rs6700884	A	G	128.62	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=1;HaplotypeScore=0.73;MQ=57.79;MQ0=0;OQ=747.49;QD=15.90;SB=-253.32	GT:AD:DP:GL:GQ	0/1:21,26:46:-91.89,-13.86,-83.83:99
-chr1	1601516	rs6695303	T	C	234.37	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=2.59;MQ=57.63;MQ0=0;OQ=837.86;QD=14.45;SB=-344.58	GT:AD:DP:GL:GQ	0/1:27,31:54:-103.34,-16.27,-95.10:99
-chr1	1601858	rs4074196	A	G	175.78	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=1.30;MQ=56.26;MQ0=0;OQ=386.06;QD=8.39;SB=-209.64	GT:AD:DP:GL:GQ	0/1:26,20:39:-53.65,-11.76,-84.70:99
-chr1	1601974	rs4074197	C	T	305.80	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=58.98;MQ0=0;OQ=818.07;QD=17.41;SB=-411.47	GT:AD:DP:GL:GQ	0/1:22,25:46:-98.95,-13.86,-71.35:99
-chr1	1602466	rs4074198	G	A	258.82	PASS	AC=1;AF=0.50;AN=2;DB;DP=100;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=59.07;MQ0=0;OQ=1998.12;QD=19.98;SB=-732.09	GT:AD:DP:GL:GQ	0/1:43,57:99:-232.92,-29.82,-143.69:99
-chr1	1602672	rs4076580	T	G	4.32	PASS	AC=1;AF=0.50;AN=2;DB;DP=36;Dels=0.00;HRun=1;HaplotypeScore=6.99;MQ=58.71;MQ0=0;OQ=379.11;QD=10.53;SB=-115.90	GT:AD:DP:GL:GQ	0/1:20,16:35:-51.74,-10.54,-71.19:99
-chr1	1603230	.	C	A	105.90	PASS	AC=1;AF=0.50;AN=2;DP=33;Dels=0.00;HRun=0;HaplotypeScore=0.93;MQ=59.30;MQ0=0;OQ=439.60;QD=13.32;SB=-227.94	GT:AD:DP:GL:GQ	0/1:17,16:31:-56.59,-9.34,-45.91:99
-chr1	1605211	rs7520934	A	C	437.30	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.22;MQ0=0;OQ=732.80;QD=12.42;SB=-285.83	GT:AD:DP:GL:GQ	0/1:28,31:56:-93.43,-16.87,-99.80:99
-chr1	1605568	rs28774670	T	C	204.99	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=1.47;MQ=58.50;MQ0=0;OQ=582.27;QD=9.87;SB=-203.22	GT:AD:DP:GL:GQ	0/1:33,26:57:-78.69,-17.18,-127.49:99
-chr1	1605610	rs28435953	G	C	130.21	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=4.47;MQ=58.73;MQ0=0;OQ=779.25;QD=14.17;SB=-322.40	GT:AD:DP:GL:GQ	0/1:29,26:52:-96.88,-15.68,-122.76:99
-chr1	1605921	rs28464677	G	A	40.24	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=6.09;MQ=58.05;MQ0=1;OQ=855.32;QD=14.50;SB=-377.37	GT:AD:DP:GL:GQ	0/1:31,28:56:-105.70,-16.88,-92.60:99
-chr1	1606119	rs61776792	G	C	0.17	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=15.64;MQ=49.02;MQ0=1;OQ=469.22;QD=9.02;SB=-238.10	GT:AD:DP:GL:GQ	0/1:28,21:33:-60.17,-9.96,-72.09:99
-chr1	1606735	.	G	A	20.16	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=70;Dels=0.00;HRun=18;HaplotypeScore=5.53;MQ=52.51;MQ0=0;QD=0.29;SB=62.21	GT:AD:DP:GL:GQ	0/1:55,14:41:-17.65,-12.36,-123.60:52.96
-chr1	1607449	rs28736713	T	G	133.05	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=1;HaplotypeScore=2.99;MQ=58.63;MQ0=0;OQ=1023.89;QD=16.00;SB=-507.80	GT:AD:DP:GL:GQ	0/1:29,35:64:-124.95,-19.28,-105.76:99
-chr1	1607623	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=52;Dels=0.00;HRun=18;HaplotypeScore=7.66;MQ=51.83;MQ0=1;OQ=52.14;QD=1.00;SB=0.53	GT:AD:DP:GL:GQ	0/1:41,11:37:-19.66,-11.16,-103.64:84.98
-chr1	1608184	rs28367203	T	C	304.04	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=56.41;MQ0=0;OQ=680.60;QD=12.15;SB=-333.30	GT:AD:DP:GL:GQ	0/1:31,25:55:-87.91,-16.57,-127.27:99
-chr1	1608363	rs28463291	C	T	163.50	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=60.00;MQ0=0;OQ=1453.08;QD=22.02;SB=-689.01	GT:AD:DP:GL:GQ	0/1:22,44:66:-168.48,-19.89,-77.76:99
-chr1	1608455	rs28366981	A	G	89.05	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=2;HaplotypeScore=1.13;MQ=57.97;MQ0=0;OQ=661.92;QD=12.98;SB=-317.10	GT:AD:DP:GL:GQ	0/1:21,30:45:-83.04,-13.57,-76.52:99
-chr1	1608461	rs28561498	G	T	18.93	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=2;HaplotypeScore=3.73;MQ=57.75;MQ0=0;OQ=745.42;QD=16.20;SB=-317.33	GT:AD:DP:GL:GQ	0/1:20,26:44:-91.08,-13.26,-59.03:99
-chr1	1608538	rs28541555	T	G	156.62	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=1;HaplotypeScore=1.73;MQ=57.89;MQ0=0;OQ=606.69;QD=12.91;SB=-204.78	GT:AD:DP:GL:GQ	0/1:20,27:44:-77.21,-13.26,-75.77:99
-chr1	1608823	rs4648780	T	C	124.64	PASS	AC=2;AF=1.00;AN=2;DB;DP=69;Dels=0.00;HRun=0;HaplotypeScore=0.96;MQ=58.99;MQ0=0;OQ=1965.86;QD=28.49;SB=-779.58	GT:AD:DP:GL:GQ	1/1:0,69:63:-200.23,-19.00,-0.06:99
-chr1	1608945	rs7524863	G	A	246.35	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=1;HaplotypeScore=1.11;MQ=57.51;MQ0=0;OQ=796.58;QD=15.03;SB=-348.35	GT:AD:DP:GL:GQ	0/1:28,25:52:-98.61,-15.67,-100.29:99
-chr1	1609404	rs28487995	G	A	270.45	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=1.97;MQ=56.05;MQ0=0;OQ=943.08;QD=14.97;SB=-428.82	GT:AD:DP:GL:GQ	0/1:34,29:58:-115.07,-17.48,-93.42:99
-chr1	1609630	rs9442411	T	C	340.52	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=54.02;MQ0=2;OQ=562.05;QD=9.37;SB=-254.95	GT:AD:DP:GL:GQ	0/1:29,31:53:-75.47,-15.98,-117.16:99
-chr1	1609711	rs61776794	G	C	177	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=1;HaplotypeScore=1.99;MQ=50.27;MQ0=2;OQ=557.29;QD=11.15;SB=-303.13	GT:AD:DP:GL:GQ	0/1:25,25:40:-71.08,-12.07,-91.96:99
-chr1	1609833	.	C	T	8.33	PASS	AC=1;AF=0.50;AN=2;DP=58;Dels=0.00;HRun=0;HaplotypeScore=2.64;MQ=46.17;MQ0=4;OQ=546.56;QD=9.42;SB=-24.96	GT:AD:DP:GL:GQ	0/1:34,24:50:-73.01,-15.07,-102.31:99
-chr1	1609872	.	T	A	2.74	PASS	AC=1;AF=0.50;AN=2;DP=43;Dels=0.00;HRun=0;HaplotypeScore=2.25;MQ=43.11;MQ0=2;OQ=308.49;QD=7.17;SB=35.14	GT:AD:DP:GL:GQ	0/1:26,17:38:-45.58,-11.45,-97.07:99
-chr1	1609888	.	T	C	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=37;Dels=0.00;HRun=0;HaplotypeScore=6.91;MQ=43.11;MQ0=0;OQ=145.44;QD=3.93;SB=26.10	GT:AD:DP:GL:GQ	0/1:23,14:31:-27.18,-9.35,-84.75:99
-chr1	1609946	.	A	G	0.35	PASS	AC=1;AF=0.50;AN=2;DP=41;Dels=0.00;HRun=0;HaplotypeScore=1.86;MQ=42.17;MQ0=4;OQ=138.81;QD=3.39;SB=-12.69	GT:AD:DP:GL:GQ	0/1:29,12:37:-28.31,-11.14,-120.75:99
-chr1	1610085	rs61776797	A	G	0.03	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=4;HaplotypeScore=1.23;MQ=52.83;MQ0=0;OQ=168.50;QD=4.32;SB=29.12	GT:AD:DP:GL:GQ	0/1:29,10:36:-30.98,-10.85,-111.33:99
-chr1	1610720	rs3737622	A	G	151.65	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=52.83;MQ0=0;OQ=742.56;QD=16.14;SB=-328.41	GT:AD:DP:GL:GQ	0/1:21,25:45:-91.09,-13.55,-80.03:99
-chr1	1610745	rs3737623	C	T	272.53	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=54.47;MQ0=0;OQ=1103.20;QD=18.09;SB=-448.99	GT:AD:DP:GL:GQ	0/1:28,33:59:-131.40,-17.79,-81.29:99
-chr1	1610764	rs3737624	G	A	559.02	PASS	AC=1;AF=0.50;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=56.35;MQ0=0;OQ=1181.67;QD=16.88;SB=-410.16	GT:AD:DP:GL:GQ	0/1:34,36:69:-142.24,-20.78,-119.02:99
-chr1	1612040	.	T	A	0.13	PASS	AC=1;AF=0.50;AN=2;DP=48;Dels=0.00;HRun=3;HaplotypeScore=1.10;MQ=42.64;MQ0=1;OQ=306.88;QD=6.39;SB=17.08	GT:AD:DP:GL:GQ	0/1:34,14:39:-45.73,-11.76,-89.73:99
-chr1	1612676	rs1855706	C	T	48.38	PASS	AC=1;AF=0.50;AN=2;DB;DP=87;Dels=0.00;HRun=0;HaplotypeScore=4.57;MQ=18.63;MQ0=42;OQ=747.37;QD=8.59;SB=-370.40	GT:AD:DP:GL:GQ	0/1:52,35:41:-90.38,-12.36,-60.67:99
-chr1	1612716	rs61776798	T	C	0.25	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=7.54;MQ0=54;OQ=87.83;QD=1.39;SB=-10.00	GT:AD:DP:GL:GQ	0/1:40,23:6:-13.87,-1.81,-8.21:64.05
-chr1	1613585	rs7542306	C	A	20.92	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DB;DP=31;Dels=0.00;HRun=0;HaplotypeScore=2.83;MQ=15.32;MQ0=21;QD=0.67;SB=-10.00	GT:AD:DP:GL:GQ	0/1:18,13:6:-7.18,-1.81,-14.53:53.72
-chr1	1614256	rs368915	T	G	26.47	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DB;DP=13;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=20.52;MQ0=9;QD=2.04;SB=-32.98	GT:AD:DP:GL:GQ	1/1:0,13:2:-6.06,-0.60,-0.00:6
-chr1	1614726	rs4648651	G	A	96.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=17;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=24.04;MQ0=5;OQ=94.30;QD=5.55;SB=-10.00	GT:AD:DP:GL:GQ	0/1:12,5:9:-15.42,-2.71,-17.14:99
-chr1	1615466	rs35947799	G	A	107.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=52.41;MQ0=0;OQ=601.60;QD=18.23;SB=-258.27	GT:AD:DP:GL:GQ	0/1:13,20:32:-73.09,-9.64,-46.27:99
-chr1	1616758	rs28587348	A	G	239	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=1.15;MQ=22.66;MQ0=5;OQ=648.18;QD=9.53;SB=-227.25	GT:AD:DP:GL:GQ	0/1:39,28:59:-88.06,-19.96,-129.14:99
-chr1	1617046	rs1932228	C	T	15.28	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=15.02;MQ0=16;OQ=210.38;QD=4.29;SB=-111.61	GT:AD:DP:GL:GQ	0/1:30,19:14:-28.54,-4.22,-22.09:99
-chr1	1617416	rs61776801	G	A	266.02	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=37.27;MQ0=15;OQ=982.95;QD=15.60;SB=-353.39	GT:AD:DP:GL:GQ	0/1:28,35:47:-115.75,-14.17,-56.63:99
-chr1	1617665	rs601141	A	C	373.76	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=0.92;MQ=54.30;MQ0=0;OQ=987.22;QD=15.19;SB=-461.24	GT:AD:DP:GL:GQ	0/1:31,34:63:-120.98,-18.98,-104.99:99
-chr1	1618057	rs61776802	A	G	60.56	PASS	AC=1;AF=0.50;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=4.99;MQ=53.96;MQ0=1;OQ=690.37;QD=9.86;SB=-238.28	GT:AD:DP:GL:GQ	0/1:36,33:62:-91.01,-18.69,-134.09:99
-chr1	1618313	rs61776803	G	T	0.05	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=3;HaplotypeScore=2.46;MQ=39.85;MQ0=11;OQ=285.62;QD=3.97;SB=-133.03	GT:AD:DP:GL:GQ	0/1:51,21:59:-49.62,-17.77,-159.76:99
-chr1	1618571	rs12081891	G	A	12.44	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=3.94;MQ=28.69;MQ0=14;OQ=348.19;QD=5.36;SB=-177.80	GT:AD:DP:GL:GQ	0/1:47,18:38:-49.56,-11.46,-83.32:99
-chr1	1618766	rs61776804	G	A	86.02	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=1;HaplotypeScore=0.82;MQ=43.94;MQ0=0;OQ=732.16;QD=19.27;SB=-352.49	GT:AD:DP:GL:GQ	0/1:16,22:37:-87.65,-11.15,-51.61:99
-chr1	1619321	rs4648621	G	A	136.25	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=1.63;MQ=27.57;MQ0=5;OQ=508.21;QD=13.37;SB=-144.61	GT:AD:DP:GL:GQ	0/1:18,20:30:-63.15,-9.04,-45.60:99
-chr1	1619347	rs34716550	T	C	0.89	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=2;HaplotypeScore=6.10;MQ=29.73;MQ0=3;OQ=380.00;QD=9.05;SB=-24.63	GT:AD:DP:GL:GQ	0/1:23,19:33:-51.24,-9.95,-72.01:99
-chr1	1624864	rs874516	T	C	339.91	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.83;MQ=46.52;MQ0=1;OQ=784.43;QD=15.38;SB=-383.28	GT:AD:DP:GL:GQ	0/1:22,29:49:-96.49,-14.76,-89.37:99
-chr1	1625479	rs2076329	T	C	1.54	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=2;HaplotypeScore=3.63;MQ=58.85;MQ0=0;OQ=346.77;QD=7.08;SB=-173.37	GT:AD:DP:GL:GQ	0/1:30,19:42:-50.63,-12.67,-103.10:99
-chr1	1625609	rs1136997	C	A	28.98	PASS	AC=1;AF=0.50;AN=2;DB;DP=28;Dels=0.00;HRun=0;HaplotypeScore=0.88;MQ=49.57;MQ0=0;OQ=129.32;QD=4.62;SB=-74.73	GT:AD:DP:GL:GQ	0/1:19,9:24:-23.45,-7.23,-57.11:99
-chr1	1625904	rs1059822	G	A	133.74	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=49.02;MQ0=1;OQ=290.88;QD=7.65;SB=-88.57	GT:AD:DP:GL:GQ	0/1:22,16:33:-42.33,-9.95,-69.30:99
-chr1	1626134	rs2179381	C	T	246.87	PASS	AC=1;AF=0.50;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=42.93;MQ0=0;OQ=354.22;QD=9.84;SB=-190.16	GT:AD:DP:GL:GQ	0/1:22,14:30:-47.74,-9.04,-64.17:99
-chr1	1626190	.	G	A	71.25	PASS	AC=1;AF=0.50;AN=2;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=48.48;MQ0=0;OQ=619.32;QD=15.48;SB=-321.82	GT:AD:DP:GL:GQ	0/1:21,19:40:-77.26,-12.05,-77.19:99
-chr1	1627098	rs61774911	A	G	6.01	PASS	AC=1;AF=0.50;AN=2;DB;DP=27;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=36.86;MQ0=3;OQ=57.73;QD=2.14;SB=17.07	GT:AD:DP:GL:GQ	0/1:19,8:19:-14.79,-5.73,-53.94:90.57
-chr1	1627115	rs9439480	A	G	25.79	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DB;DP=24;Dels=0.00;HRun=1;HaplotypeScore=0.32;MQ=40.42;MQ0=0;QD=1.07;SB=26.10	GT:AD:DP:GL:GQ	0/1:18,5:21:-12.19,-6.33,-66.21:58.62
-chr1	1627865	rs17162876	G	C	61.32	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=2;HaplotypeScore=1.72;MQ=50.90;MQ0=0;OQ=596.59;QD=13.56;SB=-287.98	GT:AD:DP:GL:GQ	0/1:25,19:41:-75.32,-12.38,-88.05:99
-chr1	1628397	.	C	T	6.47	PASS	AC=1;AF=0.50;AN=2;DP=36;Dels=0.00;HRun=1;HaplotypeScore=1.69;MQ=17.03;MQ0=21;OQ=258.72;QD=7.19;SB=-86.31	GT:AD:DP:GL:GQ	0/1:19,17:11:-32.47,-3.31,-10.93:76.22
-chr1	1628516	.	G	A	0.42	PASS	AC=1;AF=0.50;AN=2;DP=45;Dels=0.00;HRun=0;HaplotypeScore=1.98;MQ=23.14;MQ0=15;OQ=161.97;QD=3.60;SB=-32.64	GT:AD:DP:GL:GQ	0/1:32,13:24:-26.72,-7.23,-54.65:99
-chr1	1629661	.	T	C	0.03	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=37;Dels=0.00;HRun=1;HaplotypeScore=1.57;MQ=34.50;MQ0=9;OQ=82.09;QD=2.22;SB=-48.26	GT:AD:DP:GL:GQ	0/1:21,16:24:-18.73,-7.24,-70.81:99
-chr1	1631887	rs61776845	C	T	226.45	PASS	AC=2;AF=1.00;AN=2;DB;DP=14;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=35.12;MQ0=0;OQ=487.31;QD=34.81;SB=-143.63	GT:AD:DP:GL:GQ	1/1:0,14:14:-52.32,-4.22,-0.01:42.13
-chr1	1633129	rs6688326	C	A	4.88	PASS	AC=1;AF=0.50;AN=2;DB;DP=35;Dels=0.00;HRun=1;HaplotypeScore=0.73;MQ=11.56;MQ0=25;OQ=150.41;QD=4.30;SB=-10.00	GT:AD:DP:GL:GQ	0/1:25,10:8:-20.73,-2.41,-7.32:49.07
-chr1	1634432	rs2143105	A	G	2.04	PASS	AC=2;AF=1.00;AN=2;DB;DP=17;Dels=0.00;HRun=0;HaplotypeScore=3.86;MQ=24.63;MQ0=4;OQ=286.53;QD=16.85;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,17:11:-32.26,-3.33,-0.02:33.05
-chr1	1634696	rs2179382	G	A	8.71	PASS	AC=1;AF=0.50;AN=2;DB;DP=78;Dels=0.00;HRun=0;HaplotypeScore=3.64;MQ=32.34;MQ0=16;OQ=279.13;QD=3.58;SB=-95.45	GT:AD:DP:GL:GQ	0/1:61,16:59:-48.98,-17.78,-155.91:99
-chr1	1634768	rs2179383	C	T	205.44	PASS	AC=2;AF=1.00;AN=2;DB;DP=20;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=11.72;MQ0=13;OQ=127.00;QD=6.35;SB=-51.67	GT:AD:DP:GL:GQ	1/1:0,20:4:-16.23,-1.20,-0.00:12.04
-chr1	1634910	.	C	T	73.11	PASS	AC=2;AF=1.00;AN=2;DP=32;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=12.98;MQ0=22;OQ=295.97;QD=9.25;SB=-135.01	GT:AD:DP:GL:GQ	1/1:0,32:8:-33.18,-2.41,-0.00:24.08
-chr1	1634953	.	C	T	62.81	PASS	AC=2;AF=1.00;AN=2;DP=29;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=17.86;MQ0=18;OQ=384.85;QD=13.27;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,29:10:-42.07,-3.01,-0.00:30.10
-chr1	1634973	.	T	C	4.22	PASS	AC=1;AF=0.50;AN=2;DP=32;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=19.05;MQ0=18;OQ=118.84;QD=3.71;SB=-10.00	GT:AD:DP:GL:GQ	0/1:22,10:13:-19.08,-3.92,-33.24:99
-chr1	1634975	.	C	T	14.66	PASS	AC=2;AF=1.00;AN=2;DP=32;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=19.05;MQ0=18;OQ=504.84;QD=15.78;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,32:13:-54.07,-3.92,-0.00:39.13
-chr1	1635050	rs4279785	T	C	293.02	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=22.94;MQ0=12;OQ=364.98;QD=8.90;SB=-161.33	GT:AD:DP:GL:GQ	0/1:23,18:28:-48.21,-8.43,-62.26:99
-chr1	1635547	rs61774919	G	A	162.09	PASS	AC=2;AF=1.00;AN=2;DB;DP=23;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=14.59;MQ0=11;OQ=173.64;QD=7.55;SB=-50.56	GT:AD:DP:GL:GQ	1/1:6,17:5:-20.92,-1.51,-0.00:15.05
-chr1	1635860	rs3819996	T	C	34.28	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DB;DP=9;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=13.67;MQ0=7;QD=3.81;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,9:2:-6.84,-0.60,-0.00:6.02
-chr1	1635866	rs3819997	A	G	27.83	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DB;DP=8;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=14.50;MQ0=6;QD=3.48;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,8:2:-6.19,-0.60,-0.00:6.01
-chr1	1635934	rs3819998	A	G	17.88	PASS	AC=1;AF=0.50;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=5.04;MQ=31.93;MQ0=9;OQ=462.29;QD=12.84;SB=-95.99	GT:AD:DP:GL:GQ	0/1:9,27:21:-55.85,-6.34,-11.59:52.52
-chr1	1635937	rs3819999	G	T	0.54	PASS	AC=1;AF=0.50;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=5.04;MQ=31.93;MQ0=9;OQ=663.10;QD=18.42;SB=-104.11	GT:AD:DP:GL:GQ	0/1:9,26:24:-76.82,-7.23,-11.28:40.49
-chr1	1635973	rs3820000	G	C	54.40	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=28.49;MQ0=15;OQ=883.63;QD=21.55;SB=-127.19	GT:AD:DP:GL:GQ	1/1:8,33:25:-95.91,-7.54,-3.96:35.78
-chr1	1636091	rs3820002	T	C	108.62	PASS	AC=2;AF=1.00;AN=2;DB;DP=15;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=27.55;MQ0=2;OQ=418.10;QD=27.87;SB=-161.84	GT:AD:DP:GL:GQ	1/1:0,15:13:-45.40,-3.92,-0.01:39.10
-chr1	1636096	rs61776849	C	T	171.23	PASS	AC=2;AF=1.00;AN=2;DB;DP=17;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=27.06;MQ0=2;OQ=513.34;QD=30.20;SB=-178.68	GT:AD:DP:GL:GQ	1/1:0,17:14:-54.92,-4.22,-0.01:42.13
-chr1	1636231	rs61776850	G	T	45.78	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=2;HaplotypeScore=2.84;MQ=41.85;MQ0=7;OQ=641.89;QD=13.95;SB=-342.30	GT:AD:DP:GL:GQ	0/1:20,26:39:-79.22,-11.75,-58.73:99
-chr1	1636287	rs61776851	T	G	219.44	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=1.65;MQ=36.80;MQ0=8;OQ=1107.10;QD=20.13;SB=-508.74	GT:AD:DP:GL:GQ	1/1:4,51:37:-114.34,-11.16,-0.05:99
-chr1	1636310	rs3820004	G	A	84.02	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=2.38;MQ=34.50;MQ0=11;OQ=1585.10;QD=27.33;SB=-811.33	GT:AD:DP:GL:GQ	1/1:6,52:41:-162.11,-12.35,-0.01:99
-chr1	1636434	rs56030177	T	C	84.71	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.96;MQ=28.90;MQ0=10;OQ=1324.64;QD=27.60;SB=-500.48	GT:AD:DP:GL:GQ	1/1:0,48:38:-136.06,-11.45,-0.01:99
-chr1	1636517	rs760926	T	C	66.97	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=26.90;MQ0=7;OQ=976.98;QD=25.05;SB=-384.56	GT:AD:DP:GL:GQ	1/1:1,38:28:-101.29,-8.43,-0.01:84.25
-chr1	1636649	rs760927	T	C	127.83	PASS	AC=2;AF=1.00;AN=2;DB;DP=35;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=25.47;MQ0=5;OQ=898.10;QD=25.66;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,35:25:-93.41,-7.53,-0.01:75.22
-chr1	1636735	.	C	G	66.44	PASS	AC=1;AF=0.50;AN=2;DP=98;Dels=0.00;HRun=0;HaplotypeScore=-0.06;MQ=39.28;MQ0=9;OQ=1254.01;QD=12.80;SB=-309.31	GT:AD:DP:GL:GQ	0/1:56,42:83:-153.70,-25.01,-208.71:99
-chr1	1636777	.	C	T	31.32	PASS	AC=1;AF=0.50;AN=2;DP=97;Dels=0.00;HRun=0;HaplotypeScore=2.39;MQ=38.96;MQ0=9;OQ=1301.14;QD=13.41;SB=-647.75	GT:AD:DP:GL:GQ	0/1:49,48:84:-158.72,-25.32,-141.36:99
-chr1	1636840	rs61776853	A	C	1.58	PASS	AC=2;AF=1.00;AN=2;DB;DP=36;Dels=0.00;HRun=3;HaplotypeScore=0.97;MQ=31.48;MQ0=5;OQ=997.06;QD=27.70;SB=-256.95	GT:AD:DP:GL:GQ	1/1:0,36:30:-103.31,-9.04,-0.02:90.22
-chr1	1636845	rs61776854	C	T	13.28	PASS	AC=1;AF=0.50;AN=2;DB;DP=34;Dels=0.00;HRun=0;HaplotypeScore=0.97;MQ=31.12;MQ0=5;OQ=595.02;QD=17.50;SB=-27.62	GT:AD:DP:GL:GQ	0/1:11,23:28:-71.23,-8.44,-30.58:99
-chr1	1636852	rs35642458	G	A	71.80	PASS	AC=1;AF=0.50;AN=2;DB;DP=25;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=28.10;MQ0=4;OQ=612.21;QD=24.49;SB=-39.52	GT:AD:DP:GL:GQ	0/1:3,22:20:-70.53,-6.02,-10.71:46.85
-chr1	1637044	rs61073446	G	A	19.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=0;HaplotypeScore=5.47;MQ=48.10;MQ0=1;OQ=604.36;QD=8.06;SB=-316.73	GT:AD:DP:GL:GQ	0/1:54,21:68:-84.21,-20.50,-156.95:99
-chr1	1637060	.	G	C	0.16	PASS	AC=1;AF=0.50;AN=2;DP=92;Dels=0.00;HRun=1;HaplotypeScore=3.23;MQ=46.92;MQ0=1;OQ=770.35;QD=8.37;SB=83.29	GT:AD:DP:GL:GQ	0/1:66,26:89:-107.18,-26.86,-257.87:99
-chr1	1637092	.	A	G	13.80	PASS	AC=1;AF=0.50;AN=2;DP=74;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=45.24;MQ0=3;OQ=524.47;QD=7.09;SB=62.24	GT:AD:DP:GL:GQ	0/1:50,24:71:-77.11,-21.38,-201.71:99
-chr1	1637137	rs4437818	C	T	70.80	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=1;HaplotypeScore=1.48;MQ=37.21;MQ0=3;OQ=419.91;QD=7.63;SB=-236.03	GT:AD:DP:GL:GQ	0/1:38,17:49:-60.03,-14.76,-127.40:99
-chr1	1637159	rs760928	C	T	610.42	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=38.78;MQ0=3;OQ=1773.57;QD=35.47;SB=-891.67	GT:AD:DP:GL:GQ	1/1:0,50:45:-180.95,-13.56,-0.01:99
-chr1	1637161	rs760929	G	A	499.31	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=39.49;MQ0=3;OQ=1819.83;QD=36.40;SB=-852.64	GT:AD:DP:GL:GQ	1/1:0,50:45:-185.58,-13.55,-0.01:99
-chr1	1637349	.	G	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=85;Dels=0.00;HRun=1;HaplotypeScore=12.15;MQ=53.21;MQ0=0;OQ=258.06;QD=3.04;SB=74.27	GT:AD:DP:GL:GQ	0/1:68,17:73:-51.13,-22.04,-238.97:99
-chr1	1637350	.	T	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=85;Dels=0.00;HRun=0;HaplotypeScore=13.99;MQ=53.21;MQ0=0;OQ=156.60;QD=1.84;SB=74.27	GT:AD:DP:GL:GQ	0/1:68,16:78:-42.44,-23.50,-258.99:99
-chr1	1637384	rs760930	C	T	155.40	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=57.38;MQ0=0;OQ=2369.71;QD=38.22;SB=-867.02	GT:AD:DP:GL:GQ	1/1:0,62:60:-240.58,-18.08,-0.02:99
-chr1	1637388	rs760931	G	C	174.43	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=1;HaplotypeScore=1.00;MQ=56.72;MQ0=0;OQ=2115.79;QD=36.48;SB=-781.25	GT:AD:DP:GL:GQ	1/1:0,58:53:-215.20,-15.99,-0.03:99
-chr1	1637546	rs56081394	A	C	94.23	PASS	AC=2;AF=1.00;AN=2;DB;DP=85;Dels=0.00;HRun=1;HaplotypeScore=0.95;MQ=52.34;MQ0=0;OQ=2774.94;QD=32.65;SB=-1180.71	GT:AD:DP:GL:GQ	1/1:0,85:81:-281.12,-24.40,-0.04:99
-chr1	1637613	.	C	T	21.89	LowQual	AC=1;AF=0.50;AN=2;DP=80;Dels=0.00;HRun=3;HaplotypeScore=1.05;MQ=50.67;MQ0=0;QD=0.27;SB=-29.39	GT:AD:DP:GL:GQ	0/1:68,12:72:-27.16,-21.69,-231.62:54.70
-chr1	1637638	.	C	G	0.51	PASS	AC=1;AF=0.50;AN=2;DP=95;Dels=0.00;HRun=0;HaplotypeScore=4.82;MQ=47.75;MQ0=0;OQ=459.74;QD=4.84;SB=-189.88	GT:AD:DP:GL:GQ	0/1:65,30:83:-74.29,-25.03,-272.64:99
-chr1	1637674	.	T	C	96.11	PASS	AC=1;AF=0.50;AN=2;DP=101;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=45.42;MQ0=0;OQ=794.87;QD=7.87;SB=-336.87	GT:AD:DP:GL:GQ	0/1:55,46:82:-107.47,-24.70,-217.72:99
-chr1	1637731	.	T	C	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=83;Dels=0.00;HRun=1;HaplotypeScore=1.79;MQ=47.58;MQ0=0;OQ=197.23;QD=2.38;SB=-124.83	GT:AD:DP:GL:GQ	0/1:61,22:74:-45.30,-22.29,-250.27:99
-chr1	1637788	rs1883424	A	G	452.02	PASS	AC=1;AF=0.50;AN=2;DB;DP=89;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=50.70;MQ0=0;OQ=1180.37;QD=13.26;SB=-539.57	GT:AD:DP:GL:GQ	0/1:48,41:89:-148.13,-26.81,-196.69:99
-chr1	1637887	rs61776857	T	C	8.97	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=2.62;MQ=37.62;MQ0=3;OQ=1207.11;QD=23.21;SB=-211.69	GT:AD:DP:GL:GQ	1/1:2,49:41:-124.35,-12.38,-0.05:99
-chr1	1638000	.	G	C	4.04	PASS	AC=1;AF=0.50;AN=2;DP=59;Dels=0.00;HRun=0;HaplotypeScore=1.80;MQ=49.72;MQ0=1;OQ=363.96;QD=6.17;SB=-28.72	GT:AD:DP:GL:GQ	0/1:37,21:48:-56.87,-17.19,-155.52:99
-chr1	1638008	.	G	C	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=58;Dels=0.00;HRun=0;HaplotypeScore=1.80;MQ=51.97;MQ0=1;OQ=62.73;QD=1.08;SB=29.80	GT:AD:DP:GL:GQ	0/1:41,17:44:-22.82,-13.26,-168.23:95.57
-chr1	1638068	rs61776858	C	T	414.28	PASS	AC=2;AF=1.00;AN=2;DB;DP=43;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=53.78;MQ0=0;OQ=1645.34;QD=38.26;SB=-705.35	GT:AD:DP:GL:GQ	1/1:1,42:42:-168.13,-12.65,-0.01:99
-chr1	1638095	rs28722732	A	C	115.66	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=1.09;MQ=48.13;MQ0=1;OQ=1285.24;QD=32.95;SB=-522.05	GT:AD:DP:GL:GQ	1/1:1,38:38:-132.12,-11.45,-0.02:99
-chr1	1638236	.	G	A	17.91	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=52;Dels=0.00;HRun=2;HaplotypeScore=8.77;MQ=38.97;MQ0=0;QD=0.34;SB=23.08	GT:AD:DP:GL:GQ	0/1:43,6:25:-15.81,-10.75,-74.55:50.67
-chr1	1638252	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=57;Dels=0.00;HRun=0;HaplotypeScore=56.73;MQ=41.68;MQ0=0;OQ=220.25;QD=3.86;SB=17.08	GT:AD:DP:GL:GQ	0/1:43,13:37:-36.47,-11.16,-97.19:99
-chr1	1638265	rs28669101	A	G	1.73	PASS	AC=2;AF=1.00;AN=2;DB;DP=67;Dels=0.00;HRun=1;HaplotypeScore=5.08;MQ=44.94;MQ0=1;OQ=1841.80;QD=27.49;SB=-530.20	GT:AD:DP:GL:GQ	1/1:1,66:52:-187.79,-15.67,-0.02:99
-chr1	1638282	.	T	C	372.16	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=66;Dels=0.00;HRun=2;HaplotypeScore=20.32;MQ=48.81;MQ0=1;QD=5.64;SB=53.20	GT:AD:DP:GL:GQ	0/1:48,18:62:-59.18,-18.68,-176.85:99
-chr1	1638285	.	G	A	362.16	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=65;Dels=0.00;HRun=0;HaplotypeScore=22.88;MQ=49.05;MQ0=1;QD=5.57;SB=50.16	GT:AD:DP:GL:GQ	0/1:45,17:60:-57.59,-18.09,-158.00:99
-chr1	1638291	.	G	T	350.74	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=64;Dels=0.00;HRun=1;HaplotypeScore=36.28;MQ=47.79;MQ0=1;QD=5.48;SB=47.16	GT:AD:DP:GL:GQ	0/1:46,17:57:-55.53,-17.18,-142.31:99
-chr1	1638353	.	T	C	4.41	PASS	AC=1;AF=0.50;AN=2;DP=80;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=49.10;MQ0=0;OQ=579.45;QD=7.24;SB=-118.38	GT:AD:DP:GL:GQ	0/1:52,28:75:-83.82,-22.59,-209.22:99
-chr1	1638397	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=103;Dels=0.02;HRun=4;HaplotypeScore=13.77;MQ=49.39;MQ0=0;OQ=1251.99;QD=12.16;SB=-214.10	GT:AD:DP:GL:GQ	0/1:54,47:95:-156.50,-28.02,-195.84:99
-chr1	1638484	rs61776859	C	A	0.46	PASS	AC=1;AF=0.50;AN=2;DB;DP=135;Dels=0.00;HRun=1;HaplotypeScore=3.66;MQ=44.01;MQ0=0;OQ=2573.54;QD=19.06;SB=-1062.18	GT:AD:DP:GL:GQ	0/1:54,81:126:-298.59,-37.95,-167.48:99
-chr1	1638485	.	A	G	2.65	PASS	AC=1;AF=0.50;AN=2;DP=135;Dels=0.00;HRun=0;HaplotypeScore=2.76;MQ=44.20;MQ0=0;OQ=954.08;QD=7.07;SB=27.40	GT:AD:DP:GL:GQ	0/1:81,54:124:-136.06,-37.37,-329.92:99
-chr1	1638496	.	A	C	4.42	PASS	AC=1;AF=0.50;AN=2;DP=136;Dels=0.00;HRun=0;HaplotypeScore=3.74;MQ=43.37;MQ0=0;OQ=1281.45;QD=9.42;SB=-10.58	GT:AD:DP:GL:GQ	0/1:80,56:126:-169.38,-37.95,-296.59:99
-chr1	1638502	.	T	C	3.56	PASS	AC=1;AF=0.50;AN=2;DP=134;Dels=0.00;HRun=1;HaplotypeScore=2.76;MQ=44.49;MQ0=0;OQ=1373.44;QD=10.25;SB=-79.40	GT:AD:DP:GL:GQ	0/1:76,58:123:-177.67,-37.05,-300.79:99
-chr1	1638544	.	C	T	171.39	PASS	AC=1;AF=0.50;AN=2;DP=138;Dels=0.00;HRun=0;HaplotypeScore=1.29;MQ=48.39;MQ0=0;OQ=1993.39;QD=14.44;SB=-439.97	GT:AD:DP:GL:GQ	0/1:62,76:123:-239.68,-37.06,-213.30:99
-chr1	1638628	.	C	T	21.95	PASS	AC=1;AF=0.50;AN=2;DP=106;Dels=0.00;HRun=0;HaplotypeScore=3.46;MQ=49.90;MQ0=0;OQ=1604.78;QD=15.14;SB=-725.65	GT:AD:DP:GL:GQ	0/1:52,53:100:-193.90,-30.14,-170.77:99
-chr1	1638640	.	A	C	22.88	PASS	AC=1;AF=0.50;AN=2;DP=101;Dels=0.00;HRun=0;HaplotypeScore=2.97;MQ=47.54;MQ0=0;OQ=1027.76;QD=10.18;SB=-470.68	GT:AD:DP:GL:GQ	0/1:56,45:93:-134.07,-28.01,-207.58:99
-chr1	1638645	.	G	C	1.18	PASS	AC=1;AF=0.50;AN=2;DP=98;Dels=0.00;HRun=0;HaplotypeScore=6.44;MQ=47.94;MQ0=0;OQ=1189.28;QD=12.14;SB=-604.90	GT:AD:DP:GL:GQ	0/1:56,42:91:-149.63,-27.42,-247.05:99
-chr1	1638691	rs61777460	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=113;Dels=0.00;HRun=1;HaplotypeScore=70.95;MQ=45.55;MQ0=0;OQ=1598.01;QD=14.14;SB=-702.52	GT:AD:DP:GL:GQ	0/1:53,60:107:-195.32,-32.23,-214.62:99
-chr1	1638728	.	T	A	0.06	PASS	AC=1;AF=0.50;AN=2;DP=153;Dels=0.00;HRun=2;HaplotypeScore=1.47;MQ=48.71;MQ0=0;OQ=2481.89;QD=16.22;SB=-1020.86	GT:AD:DP:GL:GQ	0/1:71,82:150:-296.65,-45.18,-270.24:99
-chr1	1638806	rs909824	T	C	0.61	PASS	AC=1;AF=0.50;AN=2;DB;DP=154;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=50.30;MQ0=0;OQ=2209.99;QD=14.35;SB=-996.92	GT:AD:DP:GL:GQ	0/1:79,75:150:-269.47,-45.19,-301.46:99
-chr1	1638825	rs61777461	C	T	0.09	PASS	AC=1;AF=0.50;AN=2;DB;DP=143;Dels=0.00;HRun=1;HaplotypeScore=2.68;MQ=50.48;MQ0=0;OQ=2137.82;QD=14.95;SB=-1070.06	GT:AD:DP:GL:GQ	0/1:71,72:135:-257.74,-40.67,-255.42:99
-chr1	1638946	.	C	T	467.64	SnpCluster	AC=1;AF=0.50;AN=2;DP=65;Dels=0.00;HRun=0;HaplotypeScore=32.37;MQ=43.71;MQ0=5;QD=7.19;SB=-205.68	GT:AD:DP:GL:GQ	0/1:44,21:47:-64.21,-14.16,-108.79:99
-chr1	1638954	.	T	C	736.34	SnpCluster	AC=1;AF=0.50;AN=2;DP=58;Dels=0.00;HRun=0;HaplotypeScore=21.87;MQ=42.89;MQ0=5;QD=12.70;SB=-358.18	GT:AD:DP:GL:GQ	0/1:23,35:42:-89.58,-12.66,-57.09:99
-chr1	1638955	.	G	A	193.46	SnpCluster	AC=1;AF=0.50;AN=2;DP=57;Dels=0.00;HRun=0;HaplotypeScore=28.88;MQ=42.53;MQ0=5;QD=3.39;SB=-66.48	GT:AD:DP:GL:GQ	0/1:44,13:42:-35.29,-12.66,-112.58:99
-chr1	1638965	rs61777464	A	G	0.09	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=1;HaplotypeScore=17.05;MQ=41.40;MQ0=5;OQ=280.02;QD=5.83;SB=-138.25	GT:AD:DP:GL:GQ	0/1:30,18:32:-40.93,-9.64,-84.27:99
-chr1	1638997	.	C	T	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=50;Dels=0.00;HRun=0;HaplotypeScore=10.71;MQ=41.45;MQ0=4;OQ=154.17;QD=3.08;SB=35.12	GT:AD:DP:GL:GQ	0/1:37,12:37:-29.85,-11.15,-98.68:99
-chr1	1639030	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=90;Dels=0.00;HRun=0;HaplotypeScore=25.29;MQ=40.65;MQ0=7;OQ=247.09;QD=2.75;SB=50.20	GT:AD:DP:GL:GQ	0/1:68,21:63:-46.97,-18.98,-193.46:99
-chr1	1639109	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=110;Dels=0.00;HRun=0;HaplotypeScore=25.12;MQ=46.53;MQ0=4;OQ=115.22;QD=1.05;SB=83.25	GT:AD:DP:GL:GQ	0/1:96,13:84:-40.14,-25.34,-234.06:99
-chr1	1639113	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=109;Dels=0.00;HRun=0;HaplotypeScore=24.12;MQ=46.66;MQ0=4;OQ=396.71;QD=3.64;SB=8.10	GT:AD:DP:GL:GQ	0/1:82,27:87:-69.20,-26.24,-219.98:99
-chr1	1639145	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=119;Dels=0.00;HRun=1;HaplotypeScore=44.81;MQ=46.42;MQ0=3;OQ=230.67;QD=1.94;SB=-28.38	GT:AD:DP:GL:GQ	0/1:92,27:94:-54.66,-28.31,-297.41:99
-chr1	1639152	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=120;Dels=0.00;HRun=0;HaplotypeScore=23.68;MQ=46.30;MQ0=1;OQ=1088.67;QD=9.07;SB=-62.94	GT:AD:DP:GL:GQ	0/1:69,50:95:-140.79,-28.64,-195.69:99
-chr1	1639166	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=123;Dels=0.00;HRun=0;HaplotypeScore=19.38;MQ=46.56;MQ0=1;OQ=479.08;QD=3.89;SB=-121.97	GT:AD:DP:GL:GQ	0/1:92,31:101:-81.65,-30.45,-258.17:99
-chr1	1639203	.	C	T	59.61	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=106;Dels=0.01;HRun=4;HaplotypeScore=28.93;MQ=49.66;MQ0=0;QD=0.56;SB=37.04	GT:AD:DP:GL:GQ	0/1:84,20:85:-34.85,-25.61,-268.94:92.45
-chr1	1639204	.	A	G	88.80	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=110;Dels=0.00;HRun=1;HaplotypeScore=34.26;MQ=50.07;MQ0=0;QD=0.81;SB=122.42	GT:AD:DP:GL:GQ	0/1:87,23:90:-39.28,-27.11,-316.10:99
-chr1	1639210	.	T	G	106.61	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=119;Dels=0.00;HRun=1;HaplotypeScore=109.94;MQ=48.22;MQ0=0;QD=0.90;SB=107.36	GT:AD:DP:GL:GQ	0/1:99,20:91:-41.35,-27.41,-290.49:99
-chr1	1639221	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=127;Dels=0.00;HRun=0;HaplotypeScore=51.18;MQ=48.34;MQ0=0;OQ=110.59;QD=0.87;SB=-36.37	GT:AD:DP:GL:GQ	0/1:109,18:89:-41.16,-26.82,-305.73:99
-chr1	1639227	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=128;Dels=0.00;HRun=3;HaplotypeScore=53.65;MQ=47.85;MQ0=2;OQ=61.26;QD=0.48;SB=63.76	GT:AD:DP:GL:GQ	0/1:90,38:88:-35.92,-26.51,-284.90:94.09
-chr1	1639237	.	A	T	220.03	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=144;Dels=0.00;HRun=2;HaplotypeScore=39.50;MQ=47.38;MQ0=3;QD=1.53;SB=98.34	GT:AD:DP:GL:GQ	0/1:108,36:102:-56.01,-30.73,-323.39:99
-chr1	1639238	.	T	C	363.43	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=145;Dels=0.00;HRun=0;HaplotypeScore=40.62;MQ=46.99;MQ0=4;QD=2.51;SB=-35.37	GT:AD:DP:GL:GQ	0/1:115,29:91:-67.04,-27.41,-296.52:99
-chr1	1639239	.	T	G	307.74	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=148;Dels=0.00;HRun=0;HaplotypeScore=40.46;MQ=46.55;MQ0=5;QD=2.08;SB=5.35	GT:AD:DP:GL:GQ	0/1:110,36:106:-65.98,-31.93,-325.39:99
-chr1	1639244	.	C	G	433.01	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=151;Dels=0.00;HRun=0;HaplotypeScore=72.81;MQ=46.68;MQ0=6;QD=2.87;SB=-83.32	GT:AD:DP:GL:GQ	0/1:112,37:109:-82.29,-35.70,-402.49:99
-chr1	1639252	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=152;Dels=0.00;HRun=2;HaplotypeScore=45.12;MQ=45.10;MQ0=7;OQ=932.16;QD=6.13;SB=-397.36	GT:AD:DP:GL:GQ	0/1:117,33:103:-127.53,-31.03,-261.51:99
-chr1	1639301	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=98;Dels=0.00;HRun=0;HaplotypeScore=21.56;MQ=40.71;MQ0=20;OQ=622.52;QD=6.35;SB=-215.64	GT:AD:DP:GL:GQ	0/1:52,46:51:-80.90,-15.37,-137.71:99
-chr1	1639318	.	T	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=93;Dels=0.00;HRun=1;HaplotypeScore=38.28;MQ=34.31;MQ0=28;OQ=125.27;QD=1.35;SB=-14.91	GT:AD:DP:GL:GQ	0/1:76,17:35:-26.35,-10.54,-101.55:99
-chr1	1639325	.	C	T	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=85;Dels=0.00;HRun=0;HaplotypeScore=5.46;MQ=33.52;MQ0=28;OQ=116.93;QD=1.38;SB=23.07	GT:AD:DP:GL:GQ	0/1:73,12:33:-24.93,-9.95,-86.29:99
-chr1	1639374	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=88;Dels=0.00;HRun=1;HaplotypeScore=20.02;MQ=34.37;MQ0=20;OQ=192.31;QD=2.19;SB=-88.00	GT:AD:DP:GL:GQ	0/1:73,15:45:-36.07,-13.55,-128.18:99
-chr1	1639407	.	T	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=112;Dels=0.00;HRun=0;HaplotypeScore=10.99;MQ=42.54;MQ0=9;OQ=114.05;QD=1.02;SB=-8.75	GT:AD:DP:GL:GQ	0/1:85,19:71:-46.36,-31.67,-236.26:99
-chr1	1639417	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=122;Dels=0.00;HRun=4;HaplotypeScore=17.30;MQ=43.78;MQ0=5;OQ=74.87;QD=0.61;SB=-8.76	GT:AD:DP:GL:GQ	0/1:106,16:83:-35.80,-25.03,-240.05:99
-chr1	1639441	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=142;Dels=0.00;HRun=3;HaplotypeScore=5.23;MQ=45.90;MQ0=8;OQ=109.77;QD=0.77;SB=-10.15	GT:AD:DP:GL:GQ	0/1:120,22:103:-45.28,-31.02,-334.31:99
-chr1	1639479	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=120;Dels=0.00;HRun=0;HaplotypeScore=26.42;MQ=48.72;MQ0=12;OQ=76.35;QD=0.64;SB=70.54	GT:AD:DP:GL:GQ	0/1:100,20:90:-38.04,-27.12,-310.60:99
-chr1	1639492	.	C	T	15.20	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=112;Dels=0.00;HRun=3;HaplotypeScore=52.40;MQ=48.82;MQ0=15;QD=0.14;SB=67.73	GT:AD:DP:GL:GQ	0/1:90,22:79:-28.59,-23.80,-254.17:47.90
-chr1	1639499	rs36141200	G	A	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=107;Dels=0.01;HRun=0;HaplotypeScore=32.74;MQ=48.53;MQ0=15;OQ=2982.80;QD=27.88;SB=-1344.29	GT:AD:DP:GL:GQ	1/1:0,106:74:-301.88,-22.29,-0.02:99
-chr1	1639600	rs36135823	C	T	0.07	PASS	AC=2;AF=1.00;AN=2;DB;DP=85;Dels=0.00;HRun=3;HaplotypeScore=14.31;MQ=43.93;MQ0=12;OQ=2247.07;QD=26.44;SB=-416.38	GT:AD:DP:GL:GQ	1/1:10,75:60:-232.21,-18.08,-3.91:99
-chr1	1639610	rs34963151	A	T	0.17	PASS	AC=2;AF=1.00;AN=2;DB;DP=77;Dels=0.00;HRun=2;HaplotypeScore=15.64;MQ=43.34;MQ0=11;OQ=1936.12;QD=25.14;SB=-344.48	GT:AD:DP:GL:GQ	1/1:5,72:55:-200.25,-16.56,-3.05:99
-chr1	1639612	rs36137888	T	G	0.67	PASS	AC=2;AF=1.00;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=11.64;MQ=43.34;MQ0=11;OQ=1831.08;QD=23.78;SB=-311.74	GT:AD:DP:GL:GQ	1/1:2,72:55:-190.04,-16.56,-3.35:99
-chr1	1639702	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=132;Dels=0.00;HRun=0;HaplotypeScore=34.54;MQ=35.32;MQ0=37;OQ=98.37;QD=0.75;SB=39.28	GT:AD:DP:GL:GQ	0/1:59,72:53:-29.08,-15.96,-156.59:99
-chr1	1639726	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=141;Dels=0.00;HRun=0;HaplotypeScore=70.45;MQ=36.36;MQ0=39;OQ=52.18;QD=0.37;SB=48.69	GT:AD:DP:GL:GQ	0/1:67,74:65:-28.09,-19.58,-201.69:85.02
-chr1	1639861	.	C	T	25.55	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=143;Dels=0.00;HRun=0;HaplotypeScore=57.75;MQ=41.48;MQ0=14;QD=0.18;SB=-23.37	GT:AD:DP:GL:GQ	0/1:90,50:90:-32.98,-27.15,-260.27:58.37
-chr1	1639867	.	C	T	19.37	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=143;Dels=0.00;HRun=3;HaplotypeScore=75.47;MQ=41.18;MQ0=14;QD=0.14;SB=-17.32	GT:AD:DP:GL:GQ	0/1:97,46:92:-32.93,-27.71,-303.81:52.16
-chr1	1639892	rs61777469	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=134;Dels=0.04;HRun=2;HaplotypeScore=74.14;MQ=41.98;MQ0=12;OQ=2469.47;QD=18.43;SB=-1178.56	GT:AD:DP:GL:GQ	0/1:25,104:86:-276.13,-25.90,-32.75:68.49
-chr1	1639893	rs61777470	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=134;Dels=0.00;HRun=0;HaplotypeScore=137.24;MQ=41.98;MQ0=12;OQ=2615.52;QD=19.52;SB=-1204.51	GT:AD:DP:GL:GQ	0/1:44,90:89:-291.64,-26.81,-37.18:99
-chr1	1639911	.	G	A	14.93	LowQual	AC=1;AF=0.50;AN=2;DP=119;Dels=0.00;HRun=0;HaplotypeScore=26.42;MQ=45.76;MQ0=10;QD=0.13;SB=-12.75	GT:AD:DP:GL:GQ	0/1:81,37:78:-28.28,-23.52,-231.19:47.63
-chr1	1639962	rs61777471	C	T	260.52	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=54.09;MQ0=1;OQ=1805.36;QD=37.61;SB=-829.34	GT:AD:DP:GL:GQ	1/1:0,48:47:-184.14,-14.16,-0.02:99
-chr1	1640060	rs1969650	A	C	38.33	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=47.36;MQ0=0;OQ=1283.12;QD=25.66;SB=-659.19	GT:AD:DP:GL:GQ	1/1:0,50:43:-131.95,-12.97,-0.05:99
-chr1	1640123	rs1967676	G	T	619.20	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=52.68;MQ0=0;OQ=2013.64;QD=35.33;SB=-938.04	GT:AD:DP:GL:GQ	1/1:0,57:55:-204.96,-16.56,-0.01:99
-chr1	1640270	rs1967677	T	C	0.01	FDRtranche2.00to10.00	AC=2;AF=1.00;AN=2;DB;DP=88;Dels=0.00;HRun=0;HaplotypeScore=23.68;MQ=51.29;MQ0=1;OQ=2260.88;QD=25.69;SB=-1076.20	GT:AD:DP:GL:GQ	1/1:7,81:78:-241.90,-23.52,-12.23:99
-chr1	1640284	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=111;Dels=0.00;HRun=0;HaplotypeScore=21.65;MQ=49.80;MQ0=1;OQ=283.77;QD=2.56;SB=107.23	GT:AD:DP:GL:GQ	0/1:95,16:94:-60.00,-28.34,-253.49:99
-chr1	1640321	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=141;Dels=0.00;HRun=0;HaplotypeScore=250.42;MQ=48.13;MQ0=0;OQ=561.76;QD=3.98;SB=122.35	GT:AD:DP:GL:GQ	0/1:98,27:119:-99.13,-39.67,-333.17:99
-chr1	1640332	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=158;Dels=0.00;HRun=0;HaplotypeScore=133.26;MQ=46.63;MQ0=0;OQ=950.96;QD=6.02;SB=119.36	GT:AD:DP:GL:GQ	0/1:94,64:124:-135.74,-37.36,-315.76:99
-chr1	1640347	.	T	C	550.46	DPFilter;Indel	AC=1;AF=0.50;AN=2;DP=148;Dels=0.00;HRun=0;HaplotypeScore=23.57;MQ=45.32;MQ0=0;QD=3.72;SB=95.35	GT:AD:DP:GL:GQ	0/1:118,30:114:-92.67,-34.34,-350.75:99
-chr1	1640368	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=141;Dels=0.00;HRun=1;HaplotypeScore=38.96;MQ=45.47;MQ0=0;OQ=414.73;QD=2.94;SB=65.22	GT:AD:DP:GL:GQ	0/1:119,22:108:-77.29,-32.53,-317.79:99
-chr1	1640378	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=128;Dels=0.00;HRun=4;HaplotypeScore=21.61;MQ=45.56;MQ0=0;OQ=227.10;QD=1.77;SB=59.14	GT:AD:DP:GL:GQ	0/1:110,18:98:-55.53,-29.53,-284.49:99
-chr1	1640389	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=120;Dels=0.00;HRun=0;HaplotypeScore=23.69;MQ=45.00;MQ0=0;OQ=372.62;QD=3.11;SB=38.14	GT:AD:DP:GL:GQ	0/1:83,37:73:-62.56,-22.01,-186.44:99
-chr1	1640393	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=116;Dels=0.00;HRun=0;HaplotypeScore=31.49;MQ=46.43;MQ0=0;OQ=193.70;QD=1.67;SB=47.18	GT:AD:DP:GL:GQ	0/1:63,52:78:-46.16,-23.50,-255.92:99
-chr1	1640402	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=107;Dels=0.00;HRun=3;HaplotypeScore=44.61;MQ=47.57;MQ0=0;OQ=589.53;QD=5.51;SB=47.18	GT:AD:DP:GL:GQ	0/1:71,36:90:-89.34,-27.11,-243.28:99
-chr1	1640405	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=104;Dels=0.00;HRun=1;HaplotypeScore=32.67;MQ=47.67;MQ0=0;OQ=576.56;QD=5.54;SB=44.17	GT:AD:DP:GL:GQ	0/1:79,25:85:-86.54,-25.60,-227.82:99
-chr1	1640428	.	C	T	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=92;Dels=0.00;HRun=1;HaplotypeScore=12.31;MQ=51.68;MQ0=0;OQ=687.66;QD=7.47;SB=59.21	GT:AD:DP:GL:GQ	0/1:63,29:86:-97.95,-25.90,-226.28:99
-chr1	1640435	.	T	C	0.39	PASS	AC=1;AF=0.50;AN=2;DP=97;Dels=0.00;HRun=0;HaplotypeScore=4.00;MQ=52.41;MQ0=0;OQ=479.95;QD=4.95;SB=65.24	GT:AD:DP:GL:GQ	0/1:69,28:91:-78.69,-27.41,-274.97:99
-chr1	1640479	.	C	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=102;Dels=0.00;HRun=0;HaplotypeScore=10.56;MQ=53.01;MQ0=0;OQ=125.57;QD=1.23;SB=55.33	GT:AD:DP:GL:GQ	0/1:77,25:89:-42.65,-26.81,-277.44:99
-chr1	1640500	.	C	A	40.46	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=96;Dels=0.00;HRun=1;HaplotypeScore=5.00;MQ=52.43;MQ0=0;QD=0.42;SB=79.01	GT:AD:DP:GL:GQ	0/1:71,25:78:-30.82,-23.49,-254.06:73.30
-chr1	1640502	.	T	G	39.38	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=99;Dels=0.00;HRun=0;HaplotypeScore=5.00;MQ=52.41;MQ0=0;QD=0.40;SB=58.40	GT:AD:DP:GL:GQ	0/1:73,26:82:-31.92,-24.69,-274.53:72.21
-chr1	1640517	.	C	G	1.85	PASS	AC=1;AF=0.50;AN=2;DP=119;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=50.82;MQ0=0;OQ=540.14;QD=4.54;SB=-210.84	GT:AD:DP:GL:GQ	0/1:81,38:99:-87.13,-29.83,-340.31:99
-chr1	1640647	rs17845218	T	C	5.93	PASS	AC=1;AF=0.50;AN=2;DB;DP=139;Dels=0.00;HRun=0;HaplotypeScore=1.76;MQ=46.16;MQ0=1;OQ=829.41;QD=5.97;SB=-392.09	GT:AD:DP:GL:GQ	0/1:85,54:124:-123.60,-37.37,-339.83:99
-chr1	1640657	rs1059830	A	G	689.07	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=136;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=46.01;MQ0=1;QD=5.07;SB=-273.97	GT:AD:DP:GL:GQ	0/1:84,52:114:-106.55,-34.36,-315.05:99
-chr1	1640661	rs1137004	T	C	924.56	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=137;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=45.08;MQ0=1;QD=6.75;SB=-478.80	GT:AD:DP:GL:GQ	0/1:82,55:116:-130.68,-34.94,-330.64:99
-chr1	1640667	rs3200657	T	C	2206.14	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=133;Dels=0.00;HRun=1;HaplotypeScore=0.99;MQ=43.98;MQ0=1;QD=16.59;SB=-708.39	GT:AD:DP:GL:GQ	0/1:59,73:112:-259.82,-35.92,-162.90:99
-chr1	1640692	.	A	G	15.57	PASS	AC=1;AF=0.50;AN=2;DP=127;Dels=0.00;HRun=0;HaplotypeScore=0.93;MQ=41.55;MQ0=0;OQ=1129.49;QD=8.89;SB=-491.78	GT:AD:DP:GL:GQ	0/1:59,68:99:-146.06,-29.83,-231.81:99
-chr1	1640705	rs1059831	G	A	307.80	PASS	AC=1;AF=0.50;AN=2;DB;DP=118;Dels=0.00;HRun=1;HaplotypeScore=1.00;MQ=41.79;MQ0=0;OQ=1854.51;QD=15.72;SB=-686.99	GT:AD:DP:GL:GQ	0/1:63,55:86:-214.65,-25.92,-105.31:99
-chr1	1640780	rs36191908	G	A	2.57	PASS	AC=1;AF=0.50;AN=2;DB;DP=88;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=50.84;MQ0=0;OQ=222.00;QD=2.52;SB=-69.38	GT:AD:DP:GL:GQ	0/1:66,22:78:-49.00,-23.51,-215.31:99
-chr1	1640799	.	G	A	26.24	LowQual	AC=1;AF=0.50;AN=2;DP=91;Dels=0.00;HRun=0;HaplotypeScore=0.83;MQ=54.16;MQ0=0;QD=0.29;SB=-18.77	GT:AD:DP:GL:GQ	0/1:79,12:87:-32.13,-26.22,-265.70:59.07
-chr1	1640856	.	T	C	1.18	PASS	AC=1;AF=0.50;AN=2;DP=111;Dels=0.00;HRun=0;HaplotypeScore=1.67;MQ=51.06;MQ0=0;OQ=537.04;QD=4.84;SB=42.60	GT:AD:DP:GL:GQ	0/1:73,38:93:-85.00,-28.02,-284.38:99
-chr1	1640863	.	G	A	0.15	PASS	AC=1;AF=0.50;AN=2;DP=110;Dels=0.00;HRun=2;HaplotypeScore=0.93;MQ=50.41;MQ0=0;OQ=682.37;QD=6.20;SB=40.52	GT:AD:DP:GL:GQ	0/1:69,41:93:-99.55,-28.03,-223.44:99
-chr1	1640907	.	C	T	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=91;Dels=0.01;HRun=2;HaplotypeScore=10.49;MQ=48.20;MQ0=0;OQ=731.52;QD=8.04;SB=71.23	GT:AD:DP:GL:GQ	0/1:53,37:73:-98.42,-21.99,-174.07:99
-chr1	1640923	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=86;Dels=0.00;HRun=0;HaplotypeScore=64.78;MQ=43.84;MQ0=1;OQ=272.78;QD=3.17;SB=56.20	GT:AD:DP:GL:GQ	0/1:67,19:80:-54.67,-24.11,-250.01:99
-chr1	1640931	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=68;Dels=0.00;HRun=0;HaplotypeScore=98.55;MQ=40.13;MQ0=1;OQ=147.14;QD=2.16;SB=38.15	GT:AD:DP:GL:GQ	0/1:57,11:64:-37.28,-19.28,-217.64:99
-chr1	1640986	.	A	C	0.64	PASS	AC=1;AF=0.50;AN=2;DP=64;Dels=0.00;HRun=0;HaplotypeScore=3.69;MQ=43.40;MQ0=0;OQ=371.72;QD=5.81;SB=77.22	GT:AD:DP:GL:GQ	0/1:47,17:62:-59.13,-18.68,-158.05:99
-chr1	1640996	.	C	T	0.49	PASS	AC=1;AF=0.50;AN=2;DP=63;Dels=0.00;HRun=0;HaplotypeScore=2.63;MQ=45.56;MQ0=0;OQ=291.78;QD=4.63;SB=80.17	GT:AD:DP:GL:GQ	0/1:49,14:56:-49.34,-16.88,-145.60:99
-chr1	1641016	.	C	T	53.74	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=62;Dels=0.00;HRun=0;HaplotypeScore=1.82;MQ=51.28;MQ0=0;QD=0.87;SB=74.21	GT:AD:DP:GL:GQ	0/1:47,15:50:-23.72,-15.06,-152.06:86.58
-chr1	1641017	.	A	G	257.15	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=63;Dels=0.00;HRun=0;HaplotypeScore=1.82;MQ=51.43;MQ0=0;QD=4.08;SB=80.28	GT:AD:DP:GL:GQ	0/1:48,15:61:-47.39,-18.39,-179.46:99
-chr1	1641026	.	C	T	369.95	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=62;Dels=0.00;HRun=1;HaplotypeScore=1.99;MQ=52.99;MQ0=0;QD=5.97;SB=74.25	GT:AD:DP:GL:GQ	0/1:47,15:60:-58.35,-18.07,-168.55:99
-chr1	1641040	.	G	C	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=60;Dels=0.00;HRun=2;HaplotypeScore=2.80;MQ=51.94;MQ0=0;OQ=253.54;QD=4.23;SB=74.26	GT:AD:DP:GL:GQ	0/1:44,15:55:-45.26,-16.62,-168.61:99
-chr1	1641126	rs12137617	A	G	24.87	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=1;HaplotypeScore=2.12;MQ=54.87;MQ0=0;OQ=1275.18;QD=31.10;SB=-536.43	GT:AD:DP:GL:GQ	1/1:0,41:37:-131.12,-11.15,-0.02:99
-chr1	1641482	rs11260627	C	T	34.89	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=1;HaplotypeScore=0.92;MQ=55.33;MQ0=0;OQ=1435.98;QD=36.82;SB=-496.00	GT:AD:DP:GL:GQ	1/1:0,39:37:-147.19,-11.15,-0.01:99
-chr1	1641491	rs12135951	T	G	20.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=1.70;MQ=56.50;MQ0=0;OQ=197.57;QD=5.20;SB=-66.56	GT:AD:DP:GL:GQ	0/1:25,13:35:-33.59,-10.55,-90.46:99
-chr1	1641587	rs12044811	G	A	0.08	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=15.92;MQ=55.20;MQ0=1;OQ=1462.24;QD=35.66;SB=-578.76	GT:AD:DP:GL:GQ	1/1:1,40:37:-149.82,-11.15,-0.01:99
-chr1	1641608	rs12044814	G	C	398.84	PASS	AC=2;AF=1.00;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=54.85;MQ0=0;OQ=998.26;QD=30.25;SB=-358.22	GT:AD:DP:GL:GQ	1/1:1,32:26:-103.43,-7.84,-0.02:78.25
-chr1	1641675	rs4648768	T	C	52.50	PASS	AC=2;AF=1.00;AN=2;DB;DP=35;Dels=0.00;HRun=0;HaplotypeScore=2.85;MQ=49.39;MQ0=0;OQ=640.24;QD=18.29;SB=-205.57	GT:AD:DP:GL:GQ	1/1:0,32:21:-67.63,-6.34,-0.02:63.13
-chr1	1641761	rs4648772	T	C	503.17	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=55.21;MQ0=0;OQ=1369.78;QD=30.44;SB=-625.00	GT:AD:DP:GL:GQ	1/1:0,45:43:-140.60,-12.97,-0.03:99
-chr1	1641771	rs4648773	C	A	18.84	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=2;HaplotypeScore=2.41;MQ=54.78;MQ0=0;OQ=1559.28;QD=33.90;SB=-751.90	GT:AD:DP:GL:GQ	1/1:0,46:44:-159.53,-13.25,-0.02:99
-chr1	1641797	rs4648775	G	A	91.99	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=1;HaplotypeScore=0.47;MQ=54.06;MQ0=0;OQ=1591.86;QD=36.18;SB=-734.99	GT:AD:DP:GL:GQ	1/1:0,44:41:-162.79,-12.35,-0.01:99
-chr1	1641822	rs4648776	G	A	529.47	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=53.06;MQ0=0;OQ=1730.65;QD=38.46;SB=-774.66	GT:AD:DP:GL:GQ	1/1:0,45:44:-176.66,-13.26,-0.01:99
-chr1	1642086	rs4648777	A	G	238.91	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=54.56;MQ0=1;OQ=1172.89;QD=24.44;SB=-406.15	GT:AD:DP:GL:GQ	1/1:1,47:39:-120.92,-11.77,-0.04:99
-chr1	1642864	rs36039898	T	C	113.78	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=54.55;MQ0=0;OQ=2211.83;QD=36.26;SB=-727.29	GT:AD:DP:GL:GQ	1/1:0,61:61:-224.79,-18.37,-0.02:99
-chr1	1642888	rs16825265	C	T	105.46	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=1.99;MQ=54.90;MQ0=0;OQ=2464.17;QD=40.40;SB=-985.30	GT:AD:DP:GL:GQ	1/1:0,61:61:-250.01,-18.37,-0.01:99
-chr1	1643163	rs35548050	T	C	620.20	PASS	AC=2;AF=1.00;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.02;MQ0=0;OQ=2383.87;QD=34.06;SB=-1115.83	GT:AD:DP:GL:GQ	1/1:0,70:67:-241.99,-20.18,-0.02:99
-chr1	1643221	rs2206307	C	T	629.97	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=55.40;MQ0=0;OQ=2196.71;QD=34.87;SB=-1116.03	GT:AD:DP:GL:GQ	1/1:0,63:57:-223.28,-17.18,-0.02:99
-chr1	1643274	rs2206308	C	T	615.08	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=56.68;MQ0=0;OQ=2077.20;QD=37.77;SB=-1010.04	GT:AD:DP:GL:GQ	1/1:0,55:53:-211.32,-15.97,-0.02:99
-chr1	1643659	rs2223485	C	T	454.72	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=38.70;MQ0=1;OQ=1724.40;QD=36.69;SB=-535.21	GT:AD:DP:GL:GQ	1/1:0,47:43:-176.03,-12.95,-0.01:99
-chr1	1643745	rs61777493	C	A	268.51	PASS	AC=2;AF=1.00;AN=2;DB;DP=71;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=53.15;MQ0=3;OQ=2449.58;QD=34.50;SB=-1240.29	GT:AD:DP:GL:GQ	1/1:3,68:66:-248.56,-19.87,-0.01:99
-chr1	1643867	.	A	T	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=28;Dels=0.00;HRun=2;HaplotypeScore=0.32;MQ=19.40;MQ0=14;OQ=84.98;QD=3.04;SB=-10.00	GT:AD:DP:GL:GQ	0/1:13,15:12:-15.40,-3.61,-30.71:99
-chr1	1643873	.	C	G	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DP=27;Dels=0.41;HRun=0;HaplotypeScore=83.92;MQ=18.34;MQ0=14;OQ=350.65;QD=12.99;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,15:10:-42.29,-6.54,-3.64:28.97
-chr1	1643898	rs61777494	G	A	157	PASS	AC=2;AF=1.00;AN=2;DB;DP=17;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=25.17;MQ0=2;OQ=461.81;QD=27.17;SB=-10.00	GT:AD:DP:GL:GQ	1/1:1,16:12:-49.77,-3.61,-0.00:36.12
-chr1	1643918	rs61777495	C	T	757.85	Indel	AC=2;AF=1.00;AN=2;DB;DP=24;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=35.37;MQ0=1;QD=31.58;SB=-10.00	GT:AD:DP:GL:GQ	1/1:1,23:19:-79.37,-5.72,-0.00:57.19
-chr1	1643924	.	A	T	950.73	Indel	AC=2;AF=1.00;AN=2;DP=31;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=43.62;MQ0=1;QD=30.67;SB=-180.94	GT:AD:DP:GL:GQ	1/1:1,30:26:-98.67,-7.83,-0.01:78.24
-chr1	1644591	rs61777496	G	A	138.94	PASS	AC=2;AF=1.00;AN=2;DB;DP=5;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=33.34;MQ0=0;OQ=130.88;QD=26.18;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,5:4:-16.62,-1.20,-0.00:12.04
-chr1	1644813	rs2056977	A	G	170.73	PASS	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=26.65;MQ0=9;OQ=292.06;QD=7.69;SB=-147.83	GT:AD:DP:GL:GQ	1/1:7,31:10:-32.80,-3.01,-0.01:30.08
-chr1	1645334	rs11486024	G	A	35.89	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.74;MQ=22.46;MQ0=10;OQ=345.89;QD=5.67;SB=32.11	GT:AD:DP:GL:GQ	0/1:46,15:32:-47.52,-9.65,-66.64:99
-chr1	1645788	rs28649027	G	C	26.17	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=2;HaplotypeScore=2.58;MQ=53.44;MQ0=0;OQ=593.92;QD=15.23;SB=-280.31	GT:AD:DP:GL:GQ	0/1:20,19:36:-73.54,-10.87,-73.49:99
-chr1	1646881	rs61777497	T	C	0.39	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.58;MQ=11.68;MQ0=43;OQ=71.62;QD=1.23;SB=-32.65	GT:AD:DP:GL:GQ	0/1:40,18:10:-13.46,-3.01,-23.67:99
-chr1	1646928	.	C	T	0.40	PASS	AC=1;AF=0.50;AN=2;DP=34;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=15.38;MQ0=21;OQ=97.42;QD=2.87;SB=-39.65	GT:AD:DP:GL:GQ	0/1:20,14:7:-15.13,-2.11,-10.71:85.98
-chr1	1646938	rs61776763	A	G	17.48	PASS	AC=2;AF=1.00;AN=2;DB;DP=32;Dels=0.00;HRun=2;HaplotypeScore=2.10;MQ=17.28;MQ0=15;OQ=266.90;QD=8.34;SB=-88.98	GT:AD:DP:GL:GQ	1/1:0,32:9:-30.28,-2.71,-0.01:27.04
-chr1	1646996	rs4648783	T	C	206.37	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=1.26;MQ=31.62;MQ0=1;OQ=494.82;QD=9.00;SB=-214.36	GT:AD:DP:GL:GQ	0/1:25,30:43:-65.73,-12.96,-90.44:99
-chr1	1647044	rs4648784	C	G	2.96	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=2;HaplotypeScore=1.82;MQ=32.49;MQ0=8;OQ=1818.45;QD=23.93;SB=-827.04	GT:AD:DP:GL:GQ	0/1:14,62:58:-202.62,-17.49,-37.52:99
-chr1	1647352	rs9439501	G	C	210.43	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=45.38;MQ0=4;OQ=1643.24;QD=34.96;SB=-614.99	GT:AD:DP:GL:GQ	1/1:0,47:39:-167.92,-11.75,-0.01:99
-chr1	1647425	rs11576302	G	A	125.25	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=1.15;MQ=52.45;MQ0=0;OQ=868.24;QD=17.72;SB=-259.77	GT:AD:DP:GL:GQ	0/1:23,26:49:-104.87,-14.76,-83.38:99
-chr1	1647461	rs11589282	T	C	44.46	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=2;HaplotypeScore=0.94;MQ=51.71;MQ0=1;OQ=1927.78;QD=33.24;SB=-715.12	GT:AD:DP:GL:GQ	1/1:0,58:56:-196.39,-16.87,-0.02:99
-chr1	1648203	rs4648785	T	C	8.14	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=1;HaplotypeScore=3.12;MQ=39.29;MQ0=4;OQ=1376.56;QD=30.59;SB=-396.50	GT:AD:DP:GL:GQ	1/1:0,45:38:-141.25,-11.44,-0.01:99
-chr1	1648805	rs1062057	T	C	6.42	PASS	AC=1;AF=0.50;AN=2;DB;DP=106;Dels=0.00;HRun=1;HaplotypeScore=3.69;MQ=25.80;MQ0=25;OQ=1469.54;QD=13.86;SB=-734.60	GT:AD:DP:GL:GQ	0/1:45,61:78:-173.74,-23.50,-116.68:99
-chr1	1649970	rs1801781	C	A	600.71	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=54.53;MQ0=0;OQ=2075.47;QD=36.41;SB=-874.83	GT:AD:DP:GL:GQ	1/1:0,57:57:-211.15,-17.17,-0.01:99
-chr1	1650495	rs2377220	T	G	497.64	PASS	AC=2;AF=1.00;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=28.20;MQ0=1;OQ=1908.80;QD=31.81;SB=-547.03	GT:AD:DP:GL:GQ	1/1:0,60:54:-194.48,-16.27,-0.02:99
-chr1	1650579	.	G	C	24.29	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=72;Dels=0.00;HRun=1;HaplotypeScore=9.52;MQ=48.11;MQ0=12;QD=0.34;SB=80.30	GT:AD:DP:GL:GQ	0/1:60,12:43:-18.68,-12.97,-167.36:57.11
-chr1	1650586	rs28662997	T	C	0.09	PASS	AC=1;AF=0.50;AN=2;DB;DP=79;Dels=0.00;HRun=0;HaplotypeScore=7.30;MQ=48.54;MQ0=13;OQ=175.02;QD=2.22;SB=-47.44	GT:AD:DP:GL:GQ	0/1:53,26:60:-38.86,-18.08,-194.29:99
-chr1	1650595	rs1061883	T	C	0.11	PASS	AC=1;AF=0.50;AN=2;DB;DP=87;Dels=0.00;HRun=0;HaplotypeScore=3.64;MQ=49.38;MQ0=13;OQ=60.20;QD=0.69;SB=-8.74	GT:AD:DP:GL:GQ	0/1:58,29:65:-28.90,-19.59,-216.78:93.04
-chr1	1651158	rs1546882	A	G	91.08	PASS	AC=1;AF=0.50;AN=2;DB;DP=80;Dels=0.00;HRun=2;HaplotypeScore=1.86;MQ=36.24;MQ0=1;OQ=1126.99;QD=14.09;SB=-474.67	GT:AD:DP:GL:GQ	0/1:32,48:73:-138.00,-22.01,-116.79:99
-chr1	1651704	rs61777505	G	C	26.06	PASS	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=1;HaplotypeScore=1.62;MQ=32.64;MQ0=2;OQ=1226.35;QD=32.27;SB=-479.52	GT:AD:DP:GL:GQ	1/1:4,34:33:-134.22,-9.95,-8.01:19.39
-chr1	1652175	.	C	G	107.65	PASS	AC=1;AF=0.50;AN=2;DP=53;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=35.31;MQ0=18;OQ=446.15;QD=8.42;SB=-112.32	GT:AD:DP:GL:GQ	0/1:32,21:35:-58.45,-10.56,-85.98:99
-chr1	1652288	rs2281171	A	G	55.47	PASS	AC=2;AF=1.00;AN=2;DB;DP=31;Dels=0.00;HRun=1;HaplotypeScore=0.68;MQ=47.07;MQ0=0;OQ=1046.84;QD=33.77;SB=-483.46	GT:AD:DP:GL:GQ	1/1:0,31:31:-108.28,-9.34,-0.01:93.26
-chr1	1652674	rs61777506	T	C	260.73	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=54.10;MQ0=0;OQ=1515.24;QD=32.94;SB=-289.56	GT:AD:DP:GL:GQ	1/1:0,46:45:-155.13,-13.56,-0.02:99
-chr1	1652697	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=57;Dels=0.00;HRun=17;HaplotypeScore=26.60;MQ=53.41;MQ0=0;OQ=216.45;QD=3.80;SB=47.16	GT:AD:DP:GL:GQ	0/1:42,15:40:-36.99,-12.06,-92.34:99
-chr1	1652700	.	G	A	48.19	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=50;Dels=0.00;HRun=2;HaplotypeScore=19.75;MQ=52.95;MQ0=0;QD=0.96;SB=53.18	GT:AD:DP:GL:GQ	0/1:40,10:33:-18.05,-9.95,-95.61:81.03
-chr1	1652755	rs61777507	A	G	615.92	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.03;MQ0=0;OQ=1969.12;QD=34.55;SB=-927.86	GT:AD:DP:GL:GQ	1/1:0,57:57:-200.52,-17.17,-0.03:99
-chr1	1653262	rs34298494	A	C	3.15	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=1;HaplotypeScore=4.92;MQ=57.93;MQ0=0;OQ=1820.14;QD=28.89;SB=-933.22	GT:AD:DP:GL:GQ	1/1:0,63:59:-185.65,-17.78,-0.05:99
-chr1	1653465	.	A	G	0.67	PASS	AC=2;AF=1.00;AN=2;DP=43;Dels=0.00;HRun=3;HaplotypeScore=0.82;MQ=58.69;MQ0=0;OQ=1218.77;QD=28.34;SB=-585.02	GT:AD:DP:GL:GQ	1/1:0,43:39:-125.50,-11.76,-0.03:99
-chr1	1653691	rs3817856	C	T	262.98	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=1.85;MQ=59.21;MQ0=0;OQ=2006.29;QD=37.85;SB=-990.80	GT:AD:DP:GL:GQ	1/1:0,53:51:-204.23,-15.37,-0.02:99
-chr1	1653879	rs2294488	T	C	118.63	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=52.10;MQ0=0;OQ=1419.75;QD=28.40;SB=-681.96	GT:AD:DP:GL:GQ	1/1:0,49:45:-145.60,-13.57,-0.04:99
-chr1	1653984	rs2294489	T	C	14.56	PASS	AC=2;AF=1.00;AN=2;DB;DP=43;Dels=0.00;HRun=3;HaplotypeScore=0.63;MQ=58.58;MQ0=0;OQ=1353.88;QD=31.49;SB=-691.09	GT:AD:DP:GL:GQ	1/1:0,43:40:-138.99,-12.05,-0.02:99
-chr1	1655431	rs61777508	T	G	492.95	PASS	AC=2;AF=1.00;AN=2;DB;DP=81;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=52.47;MQ0=3;OQ=2585.92;QD=31.92;SB=-532.88	GT:AD:DP:GL:GQ	1/1:0,81:75:-262.21,-22.59,-0.04:99
-chr1	1655473	rs4648764	A	G	513.83	PASS	AC=2;AF=1.00;AN=2;DB;DP=97;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=50.46;MQ0=4;OQ=2874.97;QD=29.64;SB=-827.61	GT:AD:DP:GL:GQ	1/1:1,96:86:-291.13,-25.92,-0.05:99
-chr1	1655600	rs2281176	T	C	43.16	PASS	AC=2;AF=1.00;AN=2;DB;DP=78;Dels=0.00;HRun=1;HaplotypeScore=0.32;MQ=43.78;MQ0=0;OQ=2374.61;QD=30.44;SB=-588.04	GT:AD:DP:GL:GQ	1/1:0,78:71:-241.09,-21.40,-0.04:99
-chr1	1655607	rs2281177	T	C	16.19	PASS	AC=1;AF=0.50;AN=2;DB;DP=81;Dels=0.00;HRun=2;HaplotypeScore=0.99;MQ=43.12;MQ0=0;OQ=1801.45;QD=22.24;SB=-550.84	GT:AD:DP:GL:GQ	0/1:17,64:75:-206.03,-22.60,-57.34:99
-chr1	1656111	.	G	A	19.94	PASS	AC=1;AF=0.50;AN=2;DP=63;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=24.98;MQ0=9;OQ=1269.10;QD=20.14;SB=-363.89	GT:AD:DP:GL:GQ	0/1:20,43:51:-145.56,-15.37,-46.93:99
-chr1	1656198	rs2072924	G	A	130.85	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=2;HaplotypeScore=-0.06;MQ=29.23;MQ0=3;OQ=1510.31;QD=34.33;SB=-636.84	GT:AD:DP:GL:GQ	1/1:0,44:39:-154.63,-11.75,-0.02:99
-chr1	1656202	rs2072925	A	G	35.86	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=-0.06;MQ=31.20;MQ0=3;OQ=1130.90;QD=24.58;SB=-545.87	GT:AD:DP:GL:GQ	1/1:0,46:37:-116.71,-11.16,-0.04:99
-chr1	1656475	rs2076325	C	T	114.33	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=1;HaplotypeScore=0.83;MQ=50.53;MQ0=0;OQ=1787.32;QD=37.24;SB=-867.16	GT:AD:DP:GL:GQ	1/1:0,48:46:-182.33,-13.86,-0.01:99
-chr1	1657113	rs1474648	T	C	589.09	PASS	AC=2;AF=1.00;AN=2;DB;DP=75;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=48.20;MQ0=0;OQ=2447.49;QD=32.63;SB=-1145.82	GT:AD:DP:GL:GQ	1/1:0,75:68:-248.35,-20.48,-0.02:99
-chr1	1657231	rs1474649	A	G	31.11	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=4.15;MQ=49.42;MQ0=0;OQ=1497.15;QD=33.27;SB=-642.31	GT:AD:DP:GL:GQ	1/1:0,45:43:-153.31,-12.95,-0.02:99
-chr1	1657279	rs2377208	A	C	135.92	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=0.48;MQ=44.04;MQ0=1;OQ=1645.48;QD=30.47;SB=-668.23	GT:AD:DP:GL:GQ	1/1:0,54:48:-168.15,-14.46,-0.02:99
-chr1	1658028	rs28718827	G	T	1.42	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=10.14;MQ=51.62;MQ0=0;OQ=1872.10;QD=31.73;SB=-828.68	GT:AD:DP:GL:GQ	1/1:2,57:55:-190.82,-16.57,-0.03:99
-chr1	1658119	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=69;Dels=0.03;HRun=18;HaplotypeScore=24.79;MQ=51.46;MQ0=0;OQ=102.87;QD=1.49;SB=-23.99	GT:AD:DP:GL:GQ	0/1:55,12:49:-28.05,-14.47,-131.71:99
-chr1	1658135	rs2889577	A	G	0.64	PASS	AC=2;AF=1.00;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=15.54;MQ=53.86;MQ0=0;OQ=1611.78;QD=21.78;SB=-529.45	GT:AD:DP:GL:GQ	1/1:8,66:53:-172.54,-15.98,-7.77:82.05
-chr1	1658803	rs28537345	A	C	60.48	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.02;HRun=1;HaplotypeScore=0.16;MQ=51.80;MQ0=0;OQ=1884.76;QD=31.95;SB=-820.50	GT:AD:DP:GL:GQ	1/1:0,58:56:-192.08,-16.57,-0.02:99
-chr1	1659088	rs11485870	T	C	2.06	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=1;HaplotypeScore=5.25;MQ=48.74;MQ0=0;OQ=1314.03;QD=25.77;SB=-582.00	GT:AD:DP:GL:GQ	1/1:2,49:46:-142.54,-13.87,-7.55:63.21
-chr1	1659426	rs9442408	C	T	56.19	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=2.73;MQ=38.94;MQ0=1;OQ=469.40;QD=7.96;SB=-62.79	GT:AD:DP:GL:GQ	0/1:41,18:57:-67.39,-17.17,-141.22:99
-chr1	1659594	rs61777512	G	T	329.49	PASS	AC=2;AF=1.00;AN=2;DB;DP=28;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=48.52;MQ0=1;OQ=761.00;QD=27.18;SB=-349.52	GT:AD:DP:GL:GQ	1/1:2,26:23:-79.70,-6.93,-0.01:69.17
-chr1	1659896	.	C	A	16.91	PASS	AC=1;AF=0.50;AN=2;DP=43;Dels=0.00;HRun=0;HaplotypeScore=1.15;MQ=18.32;MQ0=25;OQ=324.85;QD=7.55;SB=-33.35	GT:AD:DP:GL:GQ	0/1:14,29:14:-39.99,-4.22,-11.38:71.59
-chr1	1659905	.	C	T	19.49	PASS	AC=1;AF=0.50;AN=2;DP=43;Dels=0.00;HRun=0;HaplotypeScore=1.15;MQ=18.62;MQ0=24;OQ=356.25;QD=8.28;SB=-31.52	GT:AD:DP:GL:GQ	0/1:14,29:15:-43.43,-4.52,-12.58:80.58
-chr1	1661214	rs2005995	G	A	408.17	PASS	AC=2;AF=1.00;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=11.78;MQ0=23;OQ=327.72;QD=9.93;SB=-165.22	GT:AD:DP:GL:GQ	1/1:16,17:9:-36.36,-2.71,-0.00:27.09
-chr1	1661590	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=52;Dels=0.00;HRun=1;HaplotypeScore=3.96;MQ=36.56;MQ0=3;OQ=54.36;QD=1.05;SB=68.26	GT:AD:DP:GL:GQ	0/1:38,14:35:-19.28,-10.56,-129.90:87.20
-chr1	1661642	rs4648793	C	T	457.64	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=45.04;MQ0=0;OQ=1470.76;QD=37.71;SB=-587.27	GT:AD:DP:GL:GQ	1/1:0,39:38:-150.68,-11.45,-0.01:99
-chr1	1661726	rs7364986	A	T	4.25	PASS	AC=2;AF=1.00;AN=2;DB;DP=79;Dels=0.00;HRun=1;HaplotypeScore=5.15;MQ=47.34;MQ0=1;OQ=2656.76;QD=33.63;SB=-1106.52	GT:AD:DP:GL:GQ	1/1:0,79:72:-269.28,-21.69,-0.02:99
-chr1	1662002	.	C	T	0.16	PASS	AC=2;AF=1.00;AN=2;DP=50;Dels=0.00;HRun=0;HaplotypeScore=5.72;MQ=52.52;MQ0=1;OQ=1857.08;QD=37.14;SB=-705.36	GT:AD:DP:GL:GQ	1/1:0,50:47:-189.31,-14.16,-0.02:99
-chr1	1662772	.	C	T	43.11	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=62;Dels=0.00;HRun=0;HaplotypeScore=1.15;MQ=50.80;MQ0=2;QD=0.70;SB=83.20	GT:AD:DP:GL:GQ	0/1:53,9:53:-23.58,-15.98,-150.38:75.94
-chr1	1663032	.	T	C	46.58	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=50;Dels=0.00;HRun=0;HaplotypeScore=2.24;MQ=53.54;MQ0=2;QD=0.93;SB=38.12	GT:AD:DP:GL:GQ	0/1:38,9:34:-18.20,-10.26,-102.10:79.41
-chr1	1663379	rs35790103	T	C	8.23	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=2;HaplotypeScore=-0.24;MQ=57.22;MQ0=0;OQ=1409.71;QD=33.56;SB=-634.30	GT:AD:DP:GL:GQ	1/1:0,42:41:-144.58,-12.35,-0.02:99
-chr1	1663767	rs35678883	G	C	8.07	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=1;HaplotypeScore=2.38;MQ=50.72;MQ0=2;OQ=2425.38;QD=39.12;SB=-647.42	GT:AD:DP:GL:GQ	1/1:0,62:56:-246.15,-16.88,-0.03:99
-chr1	1663886	rs36050429	G	C	377.70	PASS	AC=2;AF=1.00;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=30.29;MQ0=3;OQ=1259.11;QD=34.03;SB=-328.71	GT:AD:DP:GL:GQ	1/1:0,37:30:-129.51,-9.04,-0.01:90.30
-chr1	1664767	.	G	C	282.90	PASS	AC=1;AF=0.50;AN=2;DP=44;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=54.97;MQ0=0;OQ=606.08;QD=13.77;SB=-320.01	GT:AD:DP:GL:GQ	0/1:24,20:40:-75.96,-12.06,-88.71:99
-chr1	1664855	.	A	G	129.97	Indel	AC=1;AF=0.50;AN=2;DP=32;Dels=0.00;HRun=1;HaplotypeScore=9.28;MQ=43.11;MQ0=1;QD=4.06;SB=-24.89	GT:AD:DP:GL:GQ	0/1:24,8:26:-24.12,-7.84,-71.93:99
-chr1	1664856	.	G	A	433.28	Indel	AC=1;AF=0.50;AN=2;DP=34;Dels=0.00;HRun=12;HaplotypeScore=9.83;MQ=42.77;MQ0=1;QD=12.74;SB=-25.59	GT:AD:DP:GL:GQ	0/1:18,16:29:-55.35,-8.74,-47.19:99
-chr1	1665027	.	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=61;Dels=0.00;HRun=13;HaplotypeScore=3.74;MQ=53.18;MQ0=0;OQ=78.07;QD=1.28;SB=0.76	GT:AD:DP:GL:GQ	0/1:47,14:45:-24.65,-13.56,-131.48:99
-chr1	1665395	.	C	T	17.70	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=52;Dels=0.00;HRun=0;HaplotypeScore=3.53;MQ=22.06;MQ0=30;QD=0.34;SB=14.07	GT:AD:DP:GL:GQ	0/1:42,10:21:-11.37,-6.32,-66.25:50.46
-chr1	1667416	rs16824474	G	C	10.38	LowQual	AC=1;AF=0.50;AN=2;DB;DP=17;Dels=0.00;HRun=4;HaplotypeScore=0.00;MQ=47.86;MQ0=3;QD=0.61;SB=-0.97	GT:AD:DP:GL:GQ	0/1:12,5:14:-8.50,-4.22,-50.97:42.79
-chr1	1670869	.	G	C	14.33	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=76;Dels=0.00;HRun=0;HaplotypeScore=1.82;MQ=45.06;MQ0=4;QD=0.19;SB=74.28	GT:AD:DP:GL:GQ	0/1:64,12:62:-23.39,-18.69,-239.55:47
-chr1	1670881	.	G	C	19.24	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=72;Dels=0.00;HRun=0;HaplotypeScore=4.38;MQ=42.81;MQ0=4;QD=0.27;SB=74.28	GT:AD:DP:GL:GQ	0/1:59,12:59:-22.99,-17.79,-226.11:52.02
-chr1	1670904	.	C	T	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=70;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=38.22;MQ0=4;OQ=63.86;QD=0.91;SB=56.13	GT:AD:DP:GL:GQ	0/1:50,20:51:-25.06,-15.39,-141.72:96.69
-chr1	1670928	.	G	A	848.58	HARD_TO_VALIDATE;Indel	AC=1;AF=0.50;AN=2;DP=61;Dels=0.00;HRun=0;HaplotypeScore=3.00;MQ=30.83;MQ0=10;QD=13.91;SB=-297.25	GT:AD:DP:GL:GQ	0/1:30,31:35:-98.68,-10.54,-33.99:99
-chr1	1670936	.	G	T	255.10	DPFilter;HARD_TO_VALIDATE;Indel	AC=1;AF=0.50;AN=2;DP=64;Dels=0.00;HRun=3;HaplotypeScore=4.00;MQ=28.80;MQ0=12;QD=3.99;SB=20.07	GT:AD:DP:GL:GQ	0/1:33,31:36:-39.64,-10.84,-86.07:99
-chr1	1671525	rs35301881	C	T	26.84	PASS	AC=2;AF=1.00;AN=2;DB;DP=32;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=43.35;MQ0=4;OQ=980.88;QD=30.65;SB=-483.00	GT:AD:DP:GL:GQ	1/1:4,28:26:-101.68,-7.83,-0.01:78.25
-chr1	1672234	rs4648812	G	A	127.32	PASS	AC=1;AF=0.50;AN=2;DB;DP=35;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=26.23;MQ0=1;OQ=275.04;QD=7.86;SB=-150.63	GT:AD:DP:GL:GQ	0/1:24,11:30:-39.83,-9.05,-63.69:99
-chr1	1673187	rs14390	C	T	78.82	PASS	AC=2;AF=1.00;AN=2;DB;DP=20;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=29.00;MQ0=0;OQ=730.68;QD=36.53;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,20:19:-76.66,-5.72,-0.00:57.19
-chr1	1673425	rs12588	G	A	34.78	PASS	AC=1;AF=0.50;AN=2;DB;DP=70;Dels=0.00;HRun=1;HaplotypeScore=1.63;MQ=30.14;MQ0=16;OQ=466.02;QD=6.66;SB=-83.01	GT:AD:DP:GL:GQ	0/1:47,23:47:-64.06,-14.17,-100.00:99
-chr1	1675073	rs2072928	C	G	44.21	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=1;HaplotypeScore=1.71;MQ=59.55;MQ0=0;OQ=1934.62;QD=37.93;SB=-835.43	GT:AD:DP:GL:GQ	1/1:0,51:47:-197.07,-14.17,-0.02:99
-chr1	1675900	rs4751	G	T	24.68	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=2;HaplotypeScore=1.42;MQ=59.65;MQ0=0;OQ=1889.22;QD=34.99;SB=-617.91	GT:AD:DP:GL:GQ	1/1:0,54:52:-192.52,-15.66,-0.02:99
-chr1	1676803	rs2072929	T	C	69.29	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.48;MQ0=0;OQ=1256.22;QD=28.55;SB=-491.53	GT:AD:DP:GL:GQ	1/1:0,44:41:-129.26,-12.37,-0.05:99
-chr1	1676822	rs2076327	C	T	34.01	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=4.10;MQ=58.97;MQ0=0;OQ=1637.49;QD=36.39;SB=-774.03	GT:AD:DP:GL:GQ	1/1:0,45:43:-167.35,-12.96,-0.02:99
-chr1	1677485	rs34306661	T	C	77.88	PASS	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=2.61;MQ=60.00;MQ0=0;OQ=1787.88;QD=27.94;SB=-566.94	GT:AD:DP:GL:GQ	1/1:0,64:57:-182.43,-17.19,-0.05:99
-chr1	1677651	.	C	T	157.32	PASS	AC=1;AF=0.50;AN=2;DP=66;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.08;MQ0=0;OQ=1381.04;QD=20.92;SB=-549.37	GT:AD:DP:GL:GQ	0/1:23,43:64:-160.68,-19.29,-80.55:99
-chr1	1677956	.	C	T	7.81	PASS	AC=1;AF=0.50;AN=2;DP=59;Dels=0.00;HRun=1;HaplotypeScore=2.35;MQ=59.68;MQ0=0;OQ=1209.30;QD=20.50;SB=-531.10	GT:AD:DP:GL:GQ	0/1:22,37:56:-141.09,-16.88,-73.03:99
-chr1	1678052	rs2281173	A	G	576.86	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.42;MQ0=0;OQ=1215.40;QD=30.39;SB=-536.99	GT:AD:DP:GL:GQ	1/1:0,40:39:-125.17,-11.77,-0.04:99
-chr1	1678329	rs4648623	C	G	0.20	PASS	AC=2;AF=1.00;AN=2;DB;DP=23;Dels=0.00;HRun=2;HaplotypeScore=0.16;MQ=58.16;MQ0=0;OQ=844.68;QD=36.73;SB=-124.74	GT:AD:DP:GL:GQ	1/1:0,23:22:-88.07,-6.64,-0.02:66.21
-chr1	1678373	rs4648624	G	T	1.77	PASS	AC=2;AF=1.00;AN=2;DB;DP=20;Dels=0.00;HRun=2;HaplotypeScore=0.58;MQ=58.84;MQ0=0;OQ=639.15;QD=31.96;SB=-120.84	GT:AD:DP:GL:GQ	1/1:0,20:19:-67.51,-5.72,-0.01:57.16
-chr1	1679024	rs2235536	C	T	173.64	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=1.15;MQ=58.47;MQ0=0;OQ=2302.66;QD=39.70;SB=-1126.49	GT:AD:DP:GL:GQ	1/1:0,58:58:-233.87,-17.47,-0.02:99
-chr1	1679622	rs2235537	T	C	108.22	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=2.44;MQ=59.56;MQ0=0;OQ=1772.95;QD=33.45;SB=-589.32	GT:AD:DP:GL:GQ	1/1:0,53:52:-180.90,-15.67,-0.02:99
-chr1	1681624	.	G	A	66.45	PASS	AC=1;AF=0.50;AN=2;DP=38;Dels=0.00;HRun=0;HaplotypeScore=1.10;MQ=58.28;MQ0=0;OQ=379.97;QD=10.00;SB=-141.64	GT:AD:DP:GL:GQ	0/1:24,13:33:-51.23,-9.94,-69.72:99
-chr1	1682181	rs1107910	T	C	610.89	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1733.17;QD=30.41;SB=-652.94	GT:AD:DP:GL:GQ	1/1:0,57:55:-176.95,-16.58,-0.05:99
-chr1	1683963	rs2011384	A	G	3.98	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=1;HaplotypeScore=4.20;MQ=58.55;MQ0=0;OQ=1546.21;QD=34.36;SB=-525.21	GT:AD:DP:GL:GQ	1/1:0,45:43:-158.22,-12.95,-0.01:99
-chr1	1684111	.	C	T	6.27	PASS	AC=1;AF=0.50;AN=2;DP=83;Dels=0.00;HRun=0;HaplotypeScore=5.81;MQ=58.90;MQ0=0;OQ=1337.84;QD=16.12;SB=-601.14	GT:AD:DP:GL:GQ	0/1:40,41:79:-160.90,-23.83,-119.77:99
-chr1	1685322	rs4648629	C	A	210.40	PASS	AC=2;AF=1.00;AN=2;DB;DP=75;Dels=0.00;HRun=0;HaplotypeScore=0.58;MQ=58.13;MQ0=0;OQ=2599.96;QD=34.67;SB=-1123.97	GT:AD:DP:GL:GQ	1/1:0,75:71:-263.60,-21.38,-0.02:99
-chr1	1685434	rs876029	G	T	83.73	PASS	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=1202.21;QD=31.64;SB=-492.27	GT:AD:DP:GL:GQ	1/1:0,38:36:-123.83,-10.85,-0.02:99
-chr1	1685691	rs63093560	C	T	514.92	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.49;MQ0=0;OQ=1899.13;QD=37.98;SB=-713.35	GT:AD:DP:GL:GQ	1/1:0,50:49:-193.52,-14.77,-0.02:99
-chr1	1686194	rs35270315	A	C	13.33	PASS	AC=2;AF=1.00;AN=2;DB;DP=77;Dels=0.00;HRun=1;HaplotypeScore=3.38;MQ=58.28;MQ0=0;OQ=2324.40;QD=30.19;SB=-1042.79	GT:AD:DP:GL:GQ	1/1:0,77:73:-236.08,-22.00,-0.06:99
-chr1	1686519	.	A	G	162.43	PASS	AC=2;AF=1.00;AN=2;DP=63;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.70;MQ0=0;OQ=1839.98;QD=29.21;SB=-784.98	GT:AD:DP:GL:GQ	1/1:0,63:60:-187.66,-18.11,-0.08:99
-chr1	1687967	rs35086222	C	T	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=6;HaplotypeScore=6.25;MQ=58.18;MQ0=0;OQ=2341.51;QD=37.77;SB=-1078.61	GT:AD:DP:GL:GQ	1/1:1,61:60:-237.76,-18.08,-0.02:99
-chr1	1688667	rs4648826	C	G	14.69	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=1;HaplotypeScore=1.45;MQ=58.62;MQ0=0;OQ=2540.02;QD=41.64;SB=-864.78	GT:AD:DP:GL:GQ	1/1:0,61:58:-257.61,-17.48,-0.02:99
-chr1	1689061	rs4648827	C	A	174	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=2030.67;QD=34.42;SB=-1001.13	GT:AD:DP:GL:GQ	1/1:1,58:58:-206.68,-17.47,-0.02:99
-chr1	1692374	rs6658139	T	C	285.34	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.82;MQ0=0;OQ=1093.26;QD=29.55;SB=-273.03	GT:AD:DP:GL:GQ	0/1:3,34:37:-123.62,-11.15,-11.29:1.44
-chr1	1694514	rs61774982	C	A	248.31	PASS	AC=2;AF=1.00;AN=2;DB;DP=21;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=53.73;MQ0=0;OQ=726.51;QD=34.60;SB=-285.07	GT:AD:DP:GL:GQ	1/1:0,21:21:-76.24,-6.33,-0.01:63.18
-chr1	1695016	.	T	A	11.74	LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=37;Dels=0.03;HRun=0;HaplotypeScore=27.67;MQ=32.06;MQ0=0;QD=0.32;SB=-25.92	GT:AD:DP:GL:GQ	0/1:10,26:10:-7.44,-3.01,-29.53:44.28
-chr1	1695024	.	T	A	13.63	LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=35;Dels=0.00;HRun=0;HaplotypeScore=9.62;MQ=29.68;MQ0=0;QD=0.39;SB=-25.92	GT:AD:DP:GL:GQ	0/1:9,26:10:-7.64,-3.01,-29.53:46.28
-chr1	1695026	.	T	A	81.80	SnpCluster	AC=1;AF=0.50;AN=2;DP=37;Dels=0.00;HRun=0;HaplotypeScore=6.65;MQ=32.06;MQ0=0;QD=2.21;SB=-59.89	GT:AD:DP:GL:GQ	0/1:8,29:12:-15.08,-3.61,-28.63:99
-chr1	1695028	.	T	A	128.81	SnpCluster	AC=1;AF=0.50;AN=2;DP=37;Dels=0.00;HRun=0;HaplotypeScore=4.66;MQ=32.06;MQ0=0;QD=3.48;SB=-77.75	GT:AD:DP:GL:GQ	0/1:7,30:9:-18.88,-2.71,-13.92:99
-chr1	1695464	rs61774983	A	G	565.11	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.28;MQ0=0;OQ=1675.23;QD=34.19;SB=-712.27	GT:AD:DP:GL:GQ	1/1:0,49:49:-171.13,-14.76,-0.02:99
-chr1	1695607	rs6603809	G	A	610.11	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.73;MQ0=0;OQ=1827.34;QD=36.55;SB=-919.23	GT:AD:DP:GL:GQ	1/1:0,50:48:-186.34,-14.47,-0.02:99
-chr1	1695633	rs6603810	A	G	70.23	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=57.63;MQ0=1;OQ=1141.91;QD=27.85;SB=-557.89	GT:AD:DP:GL:GQ	1/1:0,41:37:-117.81,-11.16,-0.04:99
-chr1	1695996	rs6603811	T	C	513.06	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1134.00;QD=29.08;SB=-433.18	GT:AD:DP:GL:GQ	1/1:0,39:37:-117.03,-11.17,-0.04:99
-chr1	1696020	rs7531583	A	G	565.84	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1293.98;QD=28.76;SB=-649.94	GT:AD:DP:GL:GQ	1/1:0,45:43:-133.03,-12.97,-0.04:99
-chr1	1697600	rs12041925	T	G	3.96	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=3;HaplotypeScore=0.16;MQ=58.61;MQ0=0;OQ=1724.62;QD=29.73;SB=-619.85	GT:AD:DP:GL:GQ	1/1:0,58:53:-176.09,-15.97,-0.04:99
-chr1	1702090	rs10907194	C	T	0.75	PASS	AC=2;AF=1.00;AN=2;DB;DP=34;Dels=0.00;HRun=0;HaplotypeScore=5.73;MQ=57.94;MQ0=0;OQ=1197.78;QD=35.23;SB=-529.68	GT:AD:DP:GL:GQ	1/1:1,33:31:-123.37,-9.34,-0.01:93.30
-chr1	1703208	rs10907195	C	T	76.64	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=58.55;MQ0=0;OQ=1814.27;QD=37.80;SB=-686.40	GT:AD:DP:GL:GQ	1/1:0,48:45:-185.02,-13.55,-0.01:99
-chr1	1703574	rs454577	T	G	67.40	PASS	AC=2;AF=1.00;AN=2;DB;DP=21;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=58.89;MQ0=0;OQ=652.72;QD=31.08;SB=-294.53	GT:AD:DP:GL:GQ	1/1:0,21:20:-68.87,-6.03,-0.01:60.16
-chr1	1703729	rs7534617	T	G	38.29	PASS	AC=2;AF=1.00;AN=2;DB;DP=37;Dels=0.00;HRun=1;HaplotypeScore=1.32;MQ=59.38;MQ0=0;OQ=1200.11;QD=32.44;SB=-519.95	GT:AD:DP:GL:GQ	1/1:0,37:36:-123.61,-10.85,-0.02:99
-chr1	1704871	rs742359	C	A	251.57	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=59.49;MQ0=0;OQ=1398.04;QD=31.07;SB=-698.80	GT:AD:DP:GL:GQ	1/1:0,45:41:-143.41,-12.36,-0.02:99
-chr1	1706848	.	G	A	26.61	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=41;Dels=0.00;HRun=2;HaplotypeScore=3.11;MQ=59.44;MQ0=0;QD=0.65;SB=62.22	GT:AD:DP:GL:GQ	0/1:33,8:34:-16.19,-10.25,-103.26:59.43
-chr1	1709327	.	C	A	45.07	LowQual	AC=1;AF=0.50;AN=2;DP=42;Dels=0.00;HRun=18;HaplotypeScore=15.97;MQ=51.18;MQ0=0;QD=1.07;SB=-1.26	GT:AD:DP:GL:GQ	0/1:34,8:30:-16.83,-9.04,-86.61:77.90
-chr1	1710980	.	G	C	20.70	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=43;Dels=0.00;HRun=1;HaplotypeScore=2.37;MQ=53.66;MQ0=1;QD=0.48;SB=38.15	GT:AD:DP:GL:GQ	0/1:38,5:37:-16.51,-11.16,-138.32:53.50
-chr1	1712688	rs3737627	G	A	389.56	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1534.00;QD=37.41;SB=-461.61	GT:AD:DP:GL:GQ	1/1:0,41:41:-157.01,-12.36,-0.03:99
-chr1	1715121	rs7545812	A	G	362.56	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.39;MQ0=0;OQ=2055.38;QD=33.69;SB=-1042.38	GT:AD:DP:GL:GQ	1/1:0,61:58:-209.15,-17.47,-0.02:99
-chr1	1715620	rs6690956	C	T	11.88	PASS	AC=2;AF=1.00;AN=2;DB;DP=78;Dels=0.00;HRun=0;HaplotypeScore=5.08;MQ=58.81;MQ0=0;OQ=2937.89;QD=37.67;SB=-1197.36	GT:AD:DP:GL:GQ	1/1:0,77:75:-297.40,-22.60,-0.03:99
-chr1	1716741	.	G	A	184.26	PASS	AC=1;AF=0.50;AN=2;DP=71;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=52.39;MQ0=0;OQ=1148.50;QD=16.18;SB=-579.64	GT:AD:DP:GL:GQ	0/1:37,34:69:-138.94,-20.80,-109.67:99
-chr1	1718547	rs6603794	C	G	73.37	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=3.81;MQ=57.85;MQ0=0;OQ=2921.36;QD=42.96;SB=-1363.94	GT:AD:DP:GL:GQ	1/1:0,68:67:-295.74,-20.18,-0.02:99
-chr1	1722071	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=84;Dels=0.01;HRun=18;HaplotypeScore=24.45;MQ=58.30;MQ0=0;OQ=60.55;QD=0.72;SB=155.39	GT:AD:DP:GL:GQ	0/1:70,13:70:-30.14,-20.80,-197.36:93.38
-chr1	1724830	rs12077553	C	T	351.52	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=58.34;MQ0=0;OQ=2450.74;QD=39.53;SB=-952.27	GT:AD:DP:GL:GQ	1/1:0,62:62:-248.68,-18.68,-0.02:99
-chr1	1726513	rs12134783	T	G	35.44	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=3.77;MQ=59.11;MQ0=0;OQ=1936.28;QD=28.47;SB=-959.69	GT:AD:DP:GL:GQ	1/1:0,68:64:-197.28,-19.30,-0.07:99
-chr1	1726715	rs11260613	A	G	12.97	PASS	AC=2;AF=1.00;AN=2;DB;DP=31;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=55.98;MQ0=0;OQ=727.27;QD=23.46;SB=-220.64	GT:AD:DP:GL:GQ	1/1:0,31:24:-76.34,-7.24,-0.02:72.14
-chr1	1728231	rs11585349	C	T	444.74	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=58.78;MQ0=0;OQ=853.44;QD=13.13;SB=-325.29	GT:AD:DP:GL:GQ	0/1:37,28:63:-107.61,-18.98,-131.07:99
-chr1	1728793	.	C	A	11.24	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=87;Dels=0.01;HRun=20;HaplotypeScore=12.66;MQ=49.01;MQ0=7;QD=0.13;SB=83.42	GT:AD:DP:GL:GQ	0/1:67,19:60:-22.45,-18.07,-182.40:43.74
-chr1	1731385	rs12407008	A	G	570.73	PASS	AC=2;AF=1.00;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.03;MQ0=0;OQ=1462.68;QD=34.02;SB=-730.24	GT:AD:DP:GL:GQ	1/1:0,43:43:-149.87,-12.95,-0.02:99
-chr1	1733337	rs4648725	G	C	64.92	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=1;HaplotypeScore=0.32;MQ=54.96;MQ0=0;OQ=2515.07;QD=40.57;SB=-1047.66	GT:AD:DP:GL:GQ	1/1:0,62:59:-255.12,-17.78,-0.02:99
-chr1	1733967	rs6603795	T	C	231.72	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.62;MQ0=0;OQ=1265.69;QD=28.77;SB=-184.41	GT:AD:DP:GL:GQ	1/1:0,44:42:-130.20,-12.68,-0.05:99
-chr1	1736016	rs12408690	A	G	634.80	PASS	AC=2;AF=1.00;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1961.02;QD=35.02;SB=-638.31	GT:AD:DP:GL:GQ	1/1:0,56:56:-199.70,-16.87,-0.02:99
-chr1	1736120	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=75;Dels=0.00;HRun=20;HaplotypeScore=11.72;MQ=42.99;MQ0=2;OQ=648.30;QD=8.64;SB=8.14	GT:AD:DP:GL:GQ	0/1:44,31:58:-85.60,-17.49,-115.79:99
-chr1	1737932	.	A	T	32.39	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=80;Dels=0.00;HRun=5;HaplotypeScore=48.11;MQ=56.04;MQ0=0;QD=0.40;SB=116.40	GT:AD:DP:GL:GQ	0/1:65,15:66:-26.41,-19.89,-217.38:65.23
-chr1	1737943	.	C	T	27.67	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=77;Dels=0.00;HRun=20;HaplotypeScore=10.01;MQ=51.69;MQ0=1;QD=0.36;SB=101.33	GT:AD:DP:GL:GQ	0/1:61,16:52:-21.72,-15.67,-162.40:60.50
-chr1	1739272	.	T	G	33.88	PASS	AC=1;AF=0.50;AN=2;DP=79;Dels=0.00;HRun=1;HaplotypeScore=2.35;MQ=58.21;MQ0=0;OQ=1071.30;QD=13.56;SB=-555.72	GT:AD:DP:GL:GQ	0/1:40,39:77:-133.61,-23.19,-145.75:99
-chr1	1741546	rs12140085	T	C	459.98	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=0.63;MQ=59.38;MQ0=0;OQ=960.01;QD=14.12;SB=-398.30	GT:AD:DP:GL:GQ	0/1:32,36:66:-119.17,-19.88,-129.12:99
-chr1	1741636	rs11260615	A	G	471.98	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=56.06;MQ0=1;OQ=1308.14;QD=29.07;SB=-638.27	GT:AD:DP:GL:GQ	1/1:1,44:42:-134.44,-12.67,-0.04:99
-chr1	1742815	rs4648726	C	T	274.47	PASS	AC=2;AF=1.00;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=60.00;MQ0=0;OQ=3089.56;QD=40.12;SB=-1427.40	GT:AD:DP:GL:GQ	1/1:0,77:77:-312.56,-23.19,-0.02:99
-chr1	1743224	rs7542340	T	C	171.92	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=3;HaplotypeScore=-0.06;MQ=58.50;MQ0=0;OQ=2101.69;QD=35.62;SB=-1028.76	GT:AD:DP:GL:GQ	1/1:0,59:59:-213.77,-17.77,-0.02:99
-chr1	1744541	.	G	A	32.03	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=61;Dels=0.03;HRun=20;HaplotypeScore=23.82;MQ=51.57;MQ0=1;QD=0.53;SB=71.26	GT:AD:DP:GL:GQ	0/1:45,13:49:-20.64,-14.16,-151.56:64.87
-chr1	1748886	rs9786963	T	C	652.35	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1920.23;QD=32.55;SB=-686.89	GT:AD:DP:GL:GQ	1/1:0,59:59:-195.65,-17.79,-0.04:99
-chr1	1748914	rs10907187	G	A	586.04	PASS	AC=2;AF=1.00;AN=2;DB;DP=65;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2397.92;QD=36.89;SB=-817.09	GT:AD:DP:GL:GQ	1/1:0,65:65:-243.43,-19.61,-0.05:99
-chr1	1750849	rs12568603	A	C	141.73	PASS	AC=2;AF=1.00;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=0.93;MQ=60.00;MQ0=0;OQ=1462.88;QD=34.02;SB=-618.64	GT:AD:DP:GL:GQ	1/1:0,43:43:-149.89,-12.95,-0.02:99
-chr1	1751196	rs1999704	A	C	13.93	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=2;HaplotypeScore=2.14;MQ=56.69;MQ0=1;OQ=2047.05;QD=32.49;SB=-593.04	GT:AD:DP:GL:GQ	1/1:1,62:59:-208.31,-17.77,-0.02:99
-chr1	1751865	rs11260616	A	T	0.13	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=6;HaplotypeScore=1.13;MQ=59.11;MQ0=0;OQ=1852.12;QD=35.62;SB=-771.53	GT:AD:DP:GL:GQ	1/1:0,52:52:-188.82,-15.67,-0.02:99
-chr1	1751874	rs7553640	T	C	711.95	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.22;MQ0=0;OQ=1893.02;QD=35.06;SB=-889.04	GT:AD:DP:GL:GQ	1/1:0,54:53:-192.90,-15.97,-0.02:99
-chr1	1752558	rs6603796	T	C	171.81	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=56.20;MQ0=0;OQ=1646.02;QD=32.27;SB=-583.16	GT:AD:DP:GL:GQ	1/1:0,51:48:-168.22,-14.47,-0.03:99
-chr1	1755443	rs6603797	T	C	720.20	PASS	AC=2;AF=1.00;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.75;MQ0=0;OQ=2694.93;QD=35.46;SB=-935.73	GT:AD:DP:GL:GQ	1/1:0,76:74:-273.10,-22.29,-0.02:99
-chr1	1755954	rs6663586	A	C	220.63	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=59.45;MQ0=0;OQ=1370.69;QD=32.64;SB=-604.02	GT:AD:DP:GL:GQ	1/1:0,42:40:-140.67,-12.05,-0.02:99
-chr1	1756219	rs6603798	A	G	29.08	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=1;HaplotypeScore=0.47;MQ=55.51;MQ0=2;OQ=1475.64;QD=28.38;SB=-669.92	GT:AD:DP:GL:GQ	1/1:2,50:47:-151.19,-14.18,-0.04:99
-chr1	1757221	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=64;Dels=0.00;HRun=20;HaplotypeScore=10.23;MQ=53.30;MQ0=1;OQ=618.88;QD=9.67;SB=31.58	GT:AD:DP:GL:GQ	0/1:38,25:58:-82.66,-17.49,-122.37:99
-chr1	1758520	rs10752417	C	G	0.14	PASS	AC=2;AF=1.00;AN=2;DB;DP=106;Dels=0.00;HRun=1;HaplotypeScore=5.58;MQ=57.83;MQ0=0;OQ=4550.45;QD=42.93;SB=-2086.29	GT:AD:DP:GL:GQ	1/1:0,106:103:-454.04,-31.03,-0.03:99
-chr1	1758754	rs10907188	C	T	32.55	PASS	AC=2;AF=1.00;AN=2;DB;DP=67;Dels=0.00;HRun=1;HaplotypeScore=2.66;MQ=58.85;MQ0=1;OQ=2558.37;QD=38.18;SB=-882.18	GT:AD:DP:GL:GQ	1/1:1,66:64:-259.44,-19.28,-0.02:99
-chr1	1759918	rs6603799	T	C	1.47	PASS	AC=2;AF=1.00;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=10.20;MQ=56.09;MQ0=0;OQ=1988.53;QD=33.14;SB=-981.94	GT:AD:DP:GL:GQ	1/1:1,59:56:-202.45,-16.87,-0.02:99
-chr1	1760648	rs6657357	C	G	301.74	PASS	AC=2;AF=1.00;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=0.93;MQ=59.38;MQ0=0;OQ=2954.84;QD=38.37;SB=-1347.06	GT:AD:DP:GL:GQ	1/1:0,77:74:-299.12,-22.32,-0.05:99
-chr1	1760649	rs6665287	T	A	112.70	PASS	AC=2;AF=1.00;AN=2;DB;DP=79;Dels=0.00;HRun=1;HaplotypeScore=0.93;MQ=59.39;MQ0=0;OQ=2934.49;QD=37.15;SB=-1492.41	GT:AD:DP:GL:GQ	1/1:0,79:78:-297.05,-23.49,-0.02:99
-chr1	1762348	rs6603800	T	G	88.85	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=1.14;MQ=59.54;MQ0=0;OQ=1401.85;QD=28.04;SB=-481.90	GT:AD:DP:GL:GQ	1/1:0,50:43:-143.80,-12.96,-0.03:99
-chr1	1762595	rs10907189	T	C	215.16	PASS	AC=2;AF=1.00;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=1.31;MQ=58.73;MQ0=1;OQ=2558.08;QD=35.53;SB=-1178.50	GT:AD:DP:GL:GQ	1/1:1,71:71:-259.41,-21.39,-0.02:99
-chr1	1763512	rs11260618	A	G	251.61	PASS	AC=2;AF=1.00;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=1.94;MQ=34.24;MQ0=0;OQ=1296.92;QD=19.36;SB=-537.23	GT:AD:DP:GL:GQ	1/1:0,67:42:-133.32,-12.67,-0.05:99
-chr1	1763520	rs11260619	C	G	204.70	PASS	AC=2;AF=1.00;AN=2;DB;DP=66;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=32.31;MQ0=0;OQ=1789.21;QD=27.11;SB=-722.93	GT:AD:DP:GL:GQ	1/1:0,66:41:-182.52,-12.35,-0.01:99
-chr1	1763525	rs11260620	T	C	490.04	PASS	AC=2;AF=1.00;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=30.33;MQ0=0;OQ=1197.40;QD=18.42;SB=-469.25	GT:AD:DP:GL:GQ	1/1:0,65:37:-123.35,-11.15,-0.02:99
-chr1	1763536	rs11260621	T	C	53.91	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=2;HaplotypeScore=2.15;MQ=32.77;MQ0=1;OQ=1342.11;QD=19.74;SB=-614.98	GT:AD:DP:GL:GQ	1/1:1,67:42:-137.83,-12.66,-0.03:99
-chr1	1763632	rs10907190	G	A	500.76	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.92;MQ0=0;OQ=2342.36;QD=38.40;SB=-955.26	GT:AD:DP:GL:GQ	1/1:0,61:60:-237.85,-18.08,-0.03:99
-chr1	1765035	rs11260622	A	G	3.08	PASS	AC=2;AF=1.00;AN=2;DB;DP=69;Dels=0.00;HRun=1;HaplotypeScore=4.83;MQ=58.68;MQ0=1;OQ=1949.34;QD=28.25;SB=-876.43	GT:AD:DP:GL:GQ	1/1:0,68:61:-198.58,-18.40,-0.06:99
-chr1	1766129	rs4648727	C	A	222.67	PASS	AC=2;AF=1.00;AN=2;DB;DP=69;Dels=0.00;HRun=1;HaplotypeScore=0.97;MQ=59.39;MQ0=0;OQ=2474.83;QD=35.87;SB=-1254.46	GT:AD:DP:GL:GQ	1/1:0,69:68:-251.09,-20.48,-0.02:99
-chr1	1768896	rs6692959	T	C	606.28	PASS	AC=2;AF=1.00;AN=2;DB;DP=87;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.52;MQ0=0;OQ=2761.38;QD=31.74;SB=-1372.68	GT:AD:DP:GL:GQ	1/1:0,87:87:-279.80,-26.24,-0.08:99
-chr1	1769657	.	A	T	0.04	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=45;Dels=0.02;HRun=0;HaplotypeScore=8.89;MQ=56.00;MQ0=1;OQ=229.76;QD=5.11;SB=-125.76	GT:AD:DP:GL:GQ	0/1:24,18:27:-34.10,-7.84,-57.21:99
-chr1	1770738	rs6603801	T	C	614.13	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.60;MQ0=0;OQ=1986.61;QD=34.85;SB=-910.02	GT:AD:DP:GL:GQ	1/1:0,57:57:-202.27,-17.17,-0.02:99
-chr1	1771205	rs6664578	G	A	696.21	PASS	AC=2;AF=1.00;AN=2;DB;DP=83;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.39;MQ0=0;OQ=3186.74;QD=38.39;SB=-1518.58	GT:AD:DP:GL:GQ	1/1:0,83:81:-322.28,-24.40,-0.02:99
-chr1	1772480	rs12066667	C	T	200.36	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=58.77;MQ0=0;OQ=1986.28;QD=37.48;SB=-1001.85	GT:AD:DP:GL:GQ	1/1:0,53:51:-202.23,-15.37,-0.02:99
-chr1	1773061	rs12402876	G	A	282.08	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=1.11;MQ=57.70;MQ0=0;OQ=2522.68;QD=37.10;SB=-929.21	GT:AD:DP:GL:GQ	1/1:0,68:65:-255.88,-19.59,-0.03:99
-chr1	1773444	rs7526236	G	A	531.06	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.03;MQ0=0;OQ=1822.31;QD=37.96;SB=-748.50	GT:AD:DP:GL:GQ	1/1:0,48:47:-185.83,-14.16,-0.02:99
-chr1	1782409	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=59;Dels=0.00;HRun=18;HaplotypeScore=10.25;MQ=50.63;MQ0=2;OQ=451.92;QD=7.66;SB=-97.66	GT:AD:DP:GL:GQ	0/1:39,20:52:-64.14,-15.67,-118.24:99
-chr1	1782428	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=65;Dels=0.02;HRun=18;HaplotypeScore=18.34;MQ=52.25;MQ0=1;OQ=88.42;QD=1.36;SB=56.19	GT:AD:DP:GL:GQ	0/1:56,8:49:-26.89,-14.77,-145.13:99
-chr1	1782863	rs1889678	A	G	536.70	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.83;MQ0=0;OQ=1352.43;QD=28.18;SB=-598.57	GT:AD:DP:GL:GQ	1/1:0,48:43:-138.86,-12.97,-0.04:99
-chr1	1782931	rs12076620	A	G	575.25	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.11;MQ0=0;OQ=1635.06;QD=34.79;SB=-754.18	GT:AD:DP:GL:GQ	1/1:0,47:46:-167.10,-13.85,-0.01:99
-chr1	1782971	rs10907192	A	G	594.85	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.51;MQ0=0;OQ=1599.36;QD=34.03;SB=-532.43	GT:AD:DP:GL:GQ	1/1:0,47:46:-163.54,-13.86,-0.02:99
-chr1	1783646	rs7511905	A	C	266.52	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=60.00;MQ0=0;OQ=1582.35;QD=31.65;SB=-751.07	GT:AD:DP:GL:GQ	1/1:0,50:47:-161.84,-14.16,-0.02:99
-chr1	1785347	rs6660452	A	C	506.81	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=53.51;MQ0=0;OQ=1748.60;QD=30.15;SB=-666.84	GT:AD:DP:GL:GQ	1/1:0,58:55:-178.49,-16.58,-0.04:99
-chr1	1785613	.	C	A	22.53	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=47;Dels=0.00;HRun=20;HaplotypeScore=2.54;MQ=46.56;MQ0=0;QD=0.48;SB=89.31	GT:AD:DP:GL:GQ	0/1:40,7:41:-17.88,-12.35,-133.39:55.34
-chr1	1785636	rs6697311	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=101;Dels=0.01;HRun=20;HaplotypeScore=31.36;MQ=43.36;MQ0=1;OQ=989.12;QD=9.79;SB=-44.45	GT:AD:DP:GL:GQ	0/1:50,49:75:-124.51,-22.31,-136.94:99
-chr1	1785639	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=98;Dels=0.01;HRun=4;HaplotypeScore=41.45;MQ=42.87;MQ0=1;OQ=381.85;QD=3.90;SB=86.26	GT:AD:DP:GL:GQ	0/1:59,38:65:-60.76,-19.29,-163.75:99
-chr1	1785649	rs12036384	C	T	5.26	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=10.21;MQ=50.24;MQ0=1;OQ=2105.43;QD=30.96;SB=-932.26	GT:AD:DP:GL:GQ	1/1:2,63:54:-214.14,-16.27,-0.02:99
-chr1	1786577	rs12134553	A	C	2.61	PASS	AC=2;AF=1.00;AN=2;DB;DP=71;Dels=0.00;HRun=1;HaplotypeScore=7.76;MQ=57.97;MQ0=1;OQ=1915.32;QD=26.98;SB=-959.05	GT:AD:DP:GL:GQ	1/1:3,68:63:-201.59,-18.99,-6.48:99
-chr1	1787250	rs6670246	T	A	192	PASS	AC=2;AF=1.00;AN=2;DB;DP=85;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=59.78;MQ0=0;OQ=2864.46;QD=33.70;SB=-1257.90	GT:AD:DP:GL:GQ	1/1:2,83:84:-296.95,-25.31,-6.91:99
-chr1	1789560	rs4648591	T	C	58.31	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=1;HaplotypeScore=0.79;MQ=47.68;MQ0=0;OQ=1563.80;QD=30.66;SB=-605.93	GT:AD:DP:GL:GQ	1/1:0,51:49:-160.01,-14.78,-0.04:99
-chr1	1789813	rs7516995	T	C	114.34	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=58.57;MQ0=0;OQ=1801.38;QD=30.53;SB=-555.03	GT:AD:DP:GL:GQ	1/1:0,59:55:-183.76,-16.58,-0.04:99
-chr1	1790511	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=100;Dels=0.02;HRun=20;HaplotypeScore=40.13;MQ=50.15;MQ0=2;OQ=70.47;QD=0.70;SB=149.46	GT:AD:DP:GL:GQ	0/1:69,28:73:-32.03,-21.69,-222.30:99
-chr1	1790894	rs4648592	G	A	598.36	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=56.49;MQ0=0;OQ=2599.64;QD=38.23;SB=-928.70	GT:AD:DP:GL:GQ	1/1:0,68:65:-263.57,-19.58,-0.02:99
-chr1	1792032	rs6666068	A	G	457.40	PASS	AC=2;AF=1.00;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2160.60;QD=28.43;SB=-673.85	GT:AD:DP:GL:GQ	1/1:0,76:67:-219.70,-20.20,-0.05:99
-chr1	1794162	rs3855951	C	T	52.04	PASS	AC=2;AF=1.00;AN=2;DB;DP=80;Dels=0.00;HRun=2;HaplotypeScore=2.26;MQ=59.71;MQ0=0;OQ=3179.43;QD=39.74;SB=-1555.57	GT:AD:DP:GL:GQ	1/1:0,80:79:-321.55,-23.80,-0.02:99
-chr1	1795251	rs10907193	G	A	266.85	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=1.20;MQ=60.00;MQ0=0;OQ=1860.92;QD=32.65;SB=-731.44	GT:AD:DP:GL:GQ	1/1:0,56:50:-189.71,-15.08,-0.03:99
-chr1	1796166	rs10399762	A	G	54.56	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=1.91;MQ=58.73;MQ0=0;OQ=1409.98;QD=25.64;SB=-484.50	GT:AD:DP:GL:GQ	1/1:0,55:46:-144.64,-13.88,-0.05:99
-chr1	1798609	.	A	T	162.96	SnpCluster	AC=1;AF=0.50;AN=2;DP=38;Dels=0.00;HRun=0;HaplotypeScore=74.10;MQ=46.50;MQ0=2;QD=4.29;SB=-81.05	GT:AD:DP:GL:GQ	0/1:27,11:32:-29.22,-9.64,-87.24:99
-chr1	1798611	.	A	T	632.57	SnpCluster	AC=1;AF=0.50;AN=2;DP=37;Dels=0.00;HRun=0;HaplotypeScore=43.92;MQ=46.08;MQ0=2;QD=17.10;SB=-306.76	GT:AD:DP:GL:GQ	0/1:10,25:30:-75.58,-9.04,-33.08:99
-chr1	1798613	rs57488553	A	T	825.28	SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=35.29;MQ=45.64;MQ0=2;QD=22.92;SB=-393.55	GT:AD:DP:GL:GQ	0/1:7,29:31:-95.15,-9.34,-18.41:90.67
-chr1	1798615	rs58263709	A	T	846.29	SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=33.82;MQ=45.64;MQ0=2;QD=23.51;SB=-402.56	GT:AD:DP:GL:GQ	0/1:6,30:30:-96.95,-9.04,-14.67:56.29
-chr1	1799369	rs11260624	C	T	198.24	PASS	AC=2;AF=1.00;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=59.40;MQ0=0;OQ=2735.01;QD=39.07;SB=-1363.94	GT:AD:DP:GL:GQ	1/1:0,69:70:-279.86,-23.72,-2.77:99
-chr1	1799950	rs7525092	C	T	160.98	PASS	AC=2;AF=1.00;AN=2;DB;DP=83;Dels=0.00;HRun=0;HaplotypeScore=3.58;MQ=59.72;MQ0=0;OQ=3051.79;QD=36.77;SB=-1420.35	GT:AD:DP:GL:GQ	1/1:0,83:79:-308.79,-23.80,-0.03:99
-chr1	1800981	rs12133865	G	A	87.68	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=1.66;MQ=56.12;MQ0=0;OQ=1844.69;QD=38.43;SB=-730.97	GT:AD:DP:GL:GQ	1/1:0,48:48:-188.07,-14.47,-0.02:99
-chr1	1802311	.	A	G	78.46	Indel	AC=1;AF=0.50;AN=2;DP=72;Dels=0.00;HRun=3;HaplotypeScore=2.28;MQ=57.45;MQ0=0;QD=1.09;SB=-6.51	GT:AD:DP:GL:GQ	0/1:62,10:70:-32.22,-21.09,-246.49:99
-chr1	1802688	rs6670776	G	A	560.73	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.03;MQ0=0;OQ=2301.44;QD=40.38;SB=-996.99	GT:AD:DP:GL:GQ	1/1:0,57:57:-233.74,-17.17,-0.01:99
-chr1	1805482	rs12138152	G	A	76.26	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=58.49;MQ0=0;OQ=2306.96;QD=39.10;SB=-1138.66	GT:AD:DP:GL:GQ	1/1:0,59:59:-234.30,-17.78,-0.02:99
-chr1	1807030	rs10796396	G	A	291.66	PASS	AC=2;AF=1.00;AN=2;DB;DP=28;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=49.36;MQ0=0;OQ=1090.79;QD=38.96;SB=-403.67	GT:AD:DP:GL:GQ	1/1:0,28:28:-112.67,-8.43,-0.01:84.28
-chr1	1809238	rs6603804	T	C	659.20	PASS	AC=2;AF=1.00;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.62;MQ0=0;OQ=2030.11;QD=33.84;SB=-689.61	GT:AD:DP:GL:GQ	1/1:0,60:59:-206.62,-17.78,-0.03:99
-chr1	1809966	rs28608797	A	C	520.78	PASS	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.00;MQ0=0;OQ=1235.99;QD=32.53;SB=-595.06	GT:AD:DP:GL:GQ	1/1:1,37:36:-127.20,-10.84,-0.01:99
-chr1	1813782	rs6688000	A	G	233.16	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=2.05;MQ=58.61;MQ0=0;OQ=1439.33;QD=30.62;SB=-681.87	GT:AD:DP:GL:GQ	1/1:0,46:46:-147.56,-13.87,-0.04:99
-chr1	1818624	rs12045595	G	A	59.58	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=2.05;MQ=59.53;MQ0=0;OQ=1836.38;QD=37.48;SB=-594.97	GT:AD:DP:GL:GQ	1/1:0,49:48:-187.24,-14.46,-0.02:99
-chr1	1821118	rs6603808	A	G	79.87	PASS	AC=2;AF=1.00;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=1.43;MQ=60.00;MQ0=0;OQ=1052.30;QD=28.44;SB=-413.55	GT:AD:DP:GL:GQ	1/1:0,37:31:-108.83,-9.34,-0.01:93.27
-chr1	1822217	rs941531	G	A	113.99	PASS	AC=2;AF=1.00;AN=2;DB;DP=67;Dels=0.00;HRun=1;HaplotypeScore=0.67;MQ=58.68;MQ0=0;OQ=2643.63;QD=39.46;SB=-1073.33	GT:AD:DP:GL:GQ	1/1:0,67:66:-267.97,-19.88,-0.02:99
-chr1	1822410	.	A	G	49.96	LowQual	AC=1;AF=0.50;AN=2;DP=56;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.13;MQ0=0;QD=0.89;SB=-35.78	GT:AD:DP:GL:GQ	0/1:49,7:55:-24.85,-16.57,-195.12:82.80
-chr1	1822442	rs4996032	G	A	113.94	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.02;HRun=2;HaplotypeScore=1.09;MQ=59.55;MQ0=0;OQ=884.12;QD=14.03;SB=-419.83	GT:AD:DP:GL:GQ	0/1:35,27:62:-110.37,-18.67,-127.42:99
-chr1	1822448	rs4996031	A	G	133.35	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=1;HaplotypeScore=3.02;MQ=59.08;MQ0=1;OQ=897.87;QD=14.03;SB=-423.51	GT:AD:DP:GL:GQ	0/1:31,33:61:-111.45,-18.38,-115.75:99
-chr1	1823355	rs10454464	G	A	100.58	PASS	AC=2;AF=1.00;AN=2;DB;DP=32;Dels=0.00;HRun=0;HaplotypeScore=1.15;MQ=57.95;MQ0=0;OQ=1113.42;QD=34.79;SB=-534.62	GT:AD:DP:GL:GQ	1/1:0,31:31:-117.34,-11.71,-2.42:92.95
-chr1	1824608	rs4648731	A	G	30.88	PASS	AC=2;AF=1.00;AN=2;DB;DP=31;Dels=0.00;HRun=1;HaplotypeScore=0.67;MQ=54.33;MQ0=0;OQ=891.08;QD=28.74;SB=-233.75	GT:AD:DP:GL:GQ	1/1:0,31:26:-92.71,-7.84,-0.01:78.21
-chr1	1824902	rs11260625	G	A	47.11	PASS	AC=2;AF=1.00;AN=2;DB;DP=30;Dels=0.00;HRun=0;HaplotypeScore=1.21;MQ=46.58;MQ0=0;OQ=814.82;QD=27.16;SB=-295.36	GT:AD:DP:GL:GQ	1/1:0,25:22:-85.08,-6.64,-0.02:66.19
-chr1	1824916	rs11260626	C	T	92.97	PASS	AC=2;AF=1.00;AN=2;DB;DP=35;Dels=0.00;HRun=0;HaplotypeScore=0.94;MQ=48.72;MQ0=0;OQ=1289.62;QD=36.85;SB=-588.96	GT:AD:DP:GL:GQ	1/1:0,35:34:-132.56,-10.25,-0.01:99
-chr1	1825136	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=44;Dels=0.00;HRun=16;HaplotypeScore=8.80;MQ=56.14;MQ0=0;OQ=163.77;QD=3.72;SB=41.15	GT:AD:DP:GL:GQ	0/1:27,17:32:-29.31,-9.65,-83.86:99
-chr1	1826546	rs2748989	C	G	308.42	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=57.60;MQ0=0;OQ=2438.44;QD=41.33;SB=-736.72	GT:AD:DP:GL:GQ	1/1:0,59:58:-247.45,-17.48,-0.02:99
-chr1	1827738	rs4648732	C	T	470.86	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.97;MQ0=0;OQ=1741.59;QD=38.70;SB=-666.40	GT:AD:DP:GL:GQ	1/1:0,45:44:-177.75,-13.25,-0.01:99
-chr1	1828376	rs2377037	C	A	189.26	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=1.47;MQ=60.00;MQ0=0;OQ=1605.71;QD=33.45;SB=-826.68	GT:AD:DP:GL:GQ	1/1:1,47:46:-164.17,-13.86,-0.02:99
-chr1	1828498	rs28672079	A	G	314.26	PASS	AC=2;AF=1.00;AN=2;DB;DP=43;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.92;MQ0=0;OQ=1270.30;QD=29.54;SB=-594.88	GT:AD:DP:GL:GQ	1/1:0,43:41:-130.66,-12.37,-0.05:99
-chr1	1829551	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=39;Dels=0.00;HRun=2;HaplotypeScore=17.55;MQ=56.35;MQ0=0;OQ=57.59;QD=1.48;SB=26.11	GT:AD:DP:GL:GQ	0/1:19,19:17:-14.19,-5.14,-50.87:90.43
-chr1	1829898	rs2474461	T	C	40.50	PASS	AC=2;AF=1.00;AN=2;DB;DP=17;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=579.60;QD=34.09;SB=-105.03	GT:AD:DP:GL:GQ	1/1:0,17:17:-61.55,-5.12,-0.01:51.14
-chr1	1830536	rs28384316	G	T	112.96	PASS	AC=2;AF=1.00;AN=2;DB;DP=5;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=125.10;QD=25.02;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,5:5:-16.07,-1.51,-0.01:15.03
-chr1	1832651	.	A	G	0.32	PASS	AC=1;AF=0.50;AN=2;DP=41;Dels=0.00;HRun=3;HaplotypeScore=1.47;MQ=60.00;MQ0=0;OQ=742.60;QD=18.11;SB=-247.32	GT:AD:DP:GL:GQ	0/1:17,24:40:-89.59,-12.05,-62.50:99
-chr1	1834219	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=38;Dels=0.00;HRun=20;HaplotypeScore=9.36;MQ=53.72;MQ0=0;OQ=93.63;QD=2.46;SB=11.06	GT:AD:DP:GL:GQ	0/1:25,13:25:-20.18,-7.53,-63.71:99
-chr1	1834282	.	T	C	14.27	PASS	AC=2;AF=1.00;AN=2;DP=16;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.55;MQ0=0;OQ=417.56;QD=26.10;SB=-221.65	GT:AD:DP:GL:GQ	1/1:0,16:14:-45.35,-4.22,-0.01:42.10
-chr1	1834553	rs28842562	C	T	275.34	PASS	AC=2;AF=1.00;AN=2;DB;DP=26;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=54.51;MQ0=1;OQ=892.93;QD=34.34;SB=-192.75	GT:AD:DP:GL:GQ	1/1:0,26:23:-92.88,-6.93,-0.01:69.22
-chr1	1836321	rs41306992	C	T	57.34	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=1;HaplotypeScore=1.16;MQ=59.24;MQ0=0;OQ=2100.54;QD=38.19;SB=-756.01	GT:AD:DP:GL:GQ	1/1:0,55:53:-213.65,-15.97,-0.01:99
-chr1	1836442	rs2748987	A	G	431.11	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.71;MQ0=0;OQ=1604.85;QD=34.15;SB=-631.28	GT:AD:DP:GL:GQ	1/1:0,47:47:-164.09,-14.16,-0.02:99
-chr1	1838594	rs941532	A	G	20.25	PASS	AC=2;AF=1.00;AN=2;DB;DP=18;Dels=0.00;HRun=0;HaplotypeScore=1.50;MQ=58.71;MQ0=0;OQ=477.15;QD=26.51;SB=-129.69	GT:AD:DP:GL:GQ	1/1:0,18:17:-51.32,-5.13,-0.02:51.08
-chr1	1839996	rs2295364	C	T	1.07	PASS	AC=2;AF=1.00;AN=2;DB;DP=33;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=58.59;MQ0=0;OQ=1245.14;QD=37.73;SB=-117.65	GT:AD:DP:GL:GQ	1/1:0,33:32:-128.11,-9.64,-0.01:96.31
-chr1	1841796	rs2474458	C	A	22.03	PASS	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=1;HaplotypeScore=3.16;MQ=58.78;MQ0=0;OQ=1243.51;QD=32.72;SB=-630.04	GT:AD:DP:GL:GQ	1/1:0,38:36:-127.95,-10.85,-0.01:99
-chr1	1842344	rs28508199	A	G	34.17	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=1;HaplotypeScore=0.89;MQ=58.67;MQ0=0;OQ=1404.62;QD=28.67;SB=-672.87	GT:AD:DP:GL:GQ	1/1:0,49:45:-144.09,-13.57,-0.04:99
-chr1	1843148	rs1884454	G	T	340.59	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=1;HaplotypeScore=0.95;MQ=56.74;MQ0=0;OQ=831.99;QD=14.34;SB=-322.02	GT:AD:DP:GL:GQ	0/1:28,30:55:-103.05,-16.57,-95.32:99
-chr1	1844181	rs2250833	A	G	20.17	PASS	AC=2;AF=1.00;AN=2;DB;DP=36;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.36;MQ0=0;OQ=995.90;QD=27.66;SB=-313.46	GT:AD:DP:GL:GQ	1/1:0,36:31:-103.20,-9.35,-0.02:93.22
-chr1	1845310	rs28423370	A	G	170.66	PASS	AC=2;AF=1.00;AN=2;DB;DP=19;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.78;MQ0=0;OQ=608.06;QD=32.00;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,19:19:-64.40,-5.72,-0.01:57.14
-chr1	1845407	.	C	A	46.94	LowQual	AC=1;AF=0.50;AN=2;DP=5;Dels=0.00;HRun=0;HaplotypeScore=2.25;MQ=55.21;MQ0=0;QD=9.39;SB=-10.00	GT:AD:DP:GL:GQ	0/1:2,3:5:-9.49,-1.51,-6.80:52.97
-chr1	1845958	rs752965	C	T	17.19	PASS	AC=2;AF=1.00;AN=2;DB;DP=28;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=59.17;MQ0=0;OQ=985.76;QD=35.21;SB=-88.34	GT:AD:DP:GL:GQ	1/1:0,28:26:-102.17,-7.83,-0.01:78.25
-chr1	1846560	rs2092922	C	T	67.91	PASS	AC=2;AF=1.00;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=1.47;MQ=58.95;MQ0=0;OQ=1561.86;QD=36.32;SB=-529.71	GT:AD:DP:GL:GQ	1/1:0,43:41:-159.79,-12.36,-0.02:99
-chr1	1848991	rs4648734	C	T	0.80	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=7.13;MQ=58.00;MQ0=0;OQ=1973.99;QD=36.56;SB=-772.04	GT:AD:DP:GL:GQ	1/1:0,53:53:-203.45,-18.19,-2.47:99
-chr1	1849418	rs28670388	T	C	0.23	PASS	AC=2;AF=1.00;AN=2;DB;DP=35;Dels=0.00;HRun=3;HaplotypeScore=7.22;MQ=55.28;MQ0=2;OQ=1025.15;QD=29.29;SB=-496.47	GT:AD:DP:GL:GQ	1/1:3,32:30:-106.11,-9.04,-0.01:90.24
-chr1	1850605	rs28685049	C	T	18.19	PASS	AC=2;AF=1.00;AN=2;DB;DP=20;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.84;MQ0=0;OQ=778.38;QD=38.92;SB=-47.56	GT:AD:DP:GL:GQ	1/1:0,20:20:-81.43,-6.03,-0.01:60.20
-chr1	1850678	.	T	A	0.69	PASS	AC=1;AF=0.50;AN=2;DP=9;Dels=0.00;HRun=0;HaplotypeScore=4.99;MQ=41.96;MQ0=0;OQ=61.03;QD=6.78;SB=5.04	GT:AD:DP:GL:GQ	0/1:6,3:9:-12.10,-2.71,-21.43:93.87
-chr1	1850683	.	G	A	0.03	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=7;Dels=0.00;HRun=0;HaplotypeScore=10.93;MQ=35.14;MQ0=0;OQ=63.11;QD=9.02;SB=-3.99	GT:AD:DP:GL:GQ	0/1:4,3:6:-11.40,-1.81,-10.53:87.27
-chr1	1851012	rs55825112	G	A	257.30	PASS	AC=2;AF=1.00;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.15;MQ0=0;OQ=1284.14;QD=38.91;SB=-355.97	GT:AD:DP:GL:GQ	1/1:0,33:33:-132.01,-9.94,-0.01:99
-chr1	1852535	rs2474449	C	T	115.82	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=2.78;MQ=42.11;MQ0=1;OQ=2050.54;QD=37.28;SB=-856.64	GT:AD:DP:GL:GQ	1/1:1,54:53:-211.75,-15.96,-3.11:99
-chr1	1852731	.	T	A	22.37	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=63;Dels=0.05;HRun=20;HaplotypeScore=13.90;MQ=48.22;MQ0=0;QD=0.36;SB=16.21	GT:AD:DP:GL:GQ	0/1:42,18:40:-16.96,-11.45,-121.97:55.18
-chr1	1852818	rs4648595	A	G	3.40	PASS	AC=2;AF=1.00;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=3.78;MQ=50.34;MQ0=1;OQ=917.27;QD=25.48;SB=-127.78	GT:AD:DP:GL:GQ	1/1:1,35:28:-95.33,-8.44,-0.02:84.22
-chr1	1853042	.	C	A	10.89	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=58;Dels=0.00;HRun=20;HaplotypeScore=9.56;MQ=49.02;MQ0=4;QD=0.19;SB=86.27	GT:AD:DP:GL:GQ	0/1:51,7:42:-16.99,-12.66,-132.54:43.35
-chr1	1853068	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=94;Dels=0.00;HRun=2;HaplotypeScore=13.43;MQ=48.98;MQ0=4;OQ=94.12;QD=1.00;SB=104.36	GT:AD:DP:GL:GQ	0/1:70,24:65:-32.29,-19.60,-195.03:99
-chr1	1853265	rs60147457	T	C	26.01	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=1;HaplotypeScore=1.00;MQ=56.17;MQ0=0;OQ=1299.21;QD=28.24;SB=-640.40	GT:AD:DP:GL:GQ	1/1:1,45:44:-136.91,-13.28,-3.40:98.74
-chr1	1855559	.	C	T	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=77;Dels=0.00;HRun=1;HaplotypeScore=1.77;MQ=58.15;MQ0=0;OQ=143.93;QD=1.87;SB=17.18	GT:AD:DP:GL:GQ	0/1:67,10:76:-40.57,-22.90,-237.26:99
-chr1	1855612	rs2748968	C	T	224.03	PASS	AC=1;AF=0.50;AN=2;DB;DP=80;Dels=0.00;HRun=0;HaplotypeScore=2.51;MQ=53.49;MQ0=2;OQ=1207.94;QD=15.10;SB=-597.02	GT:AD:DP:GL:GQ	0/1:40,40:73:-146.08,-22.00,-120.30:99
-chr1	1855646	.	T	C	0.93	PASS	AC=1;AF=0.50;AN=2;DP=71;Dels=0.00;HRun=0;HaplotypeScore=9.48;MQ=53.45;MQ0=2;OQ=1049.44;QD=14.78;SB=-537.98	GT:AD:DP:GL:GQ	0/1:31,40:66:-128.11,-19.89,-114.90:99
-chr1	1855674	.	C	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=56;Dels=0.00;HRun=0;HaplotypeScore=15.63;MQ=50.86;MQ0=1;OQ=126.19;QD=2.25;SB=-24.71	GT:AD:DP:GL:GQ	0/1:49,7:53:-31.88,-15.98,-189.82:99
-chr1	1855675	.	A	G	0.03	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=56;Dels=0.00;HRun=0;HaplotypeScore=14.63;MQ=50.86;MQ0=1;OQ=886.43;QD=15.83;SB=-281.60	GT:AD:DP:GL:GQ	0/1:21,35:52:-107.60,-15.67,-76.26:99
-chr1	1856033	rs34454803	C	G	2.87	PASS	AC=2;AF=1.00;AN=2;DB;DP=72;Dels=0.00;HRun=1;HaplotypeScore=4.56;MQ=48.03;MQ0=9;OQ=1928.44;QD=26.78;SB=-825.04	GT:AD:DP:GL:GQ	1/1:9,62:49:-203.74,-17.80,-7.31:99
-chr1	1856195	rs61775027	C	T	136.98	PASS	AC=2;AF=1.00;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=55.46;MQ0=1;OQ=2158.57;QD=29.98;SB=-1089.45	GT:AD:DP:GL:GQ	1/1:8,64:59:-222.77,-17.79,-3.33:99
-chr1	1856465	rs34793596	C	G	37.34	PASS	AC=2;AF=1.00;AN=2;DB;DP=79;Dels=0.00;HRun=1;HaplotypeScore=2.87;MQ=54.29;MQ0=1;OQ=3153.75;QD=39.92;SB=-1439.03	GT:AD:DP:GL:GQ	1/1:3,76:75:-323.13,-22.60,-4.17:99
-chr1	1856473	rs35531706	C	G	44.13	PASS	AC=2;AF=1.00;AN=2;DB;DP=74;Dels=0.00;HRun=1;HaplotypeScore=2.23;MQ=55.29;MQ0=1;OQ=2974.48;QD=40.20;SB=-1193.83	GT:AD:DP:GL:GQ	1/1:1,73:71:-301.06,-21.40,-0.03:99
-chr1	1858345	rs28658236	G	A	98.82	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=2;HaplotypeScore=0.98;MQ=60.00;MQ0=0;OQ=1111.27;QD=16.34;SB=-403.37	GT:AD:DP:GL:GQ	0/1:35,33:68:-134.91,-20.49,-114.02:99
-chr1	1859106	.	T	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=56;Dels=0.00;HRun=2;HaplotypeScore=6.59;MQ=57.30;MQ0=0;OQ=100.83;QD=1.80;SB=56.18	GT:AD:DP:GL:GQ	0/1:31,25:39:-25.12,-11.75,-106.73:99
-chr1	1859766	rs28592294	C	T	2.76	PASS	AC=2;AF=1.00;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=5.60;MQ=57.03;MQ0=0;OQ=2783.58;QD=37.62;SB=-907.72	GT:AD:DP:GL:GQ	1/1:1,72:73:-285.26,-22.00,-3.32:99
-chr1	1860070	rs2803323	G	A	91.89	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=1.57;MQ=58.89;MQ0=0;OQ=1564.69;QD=37.25;SB=-659.28	GT:AD:DP:GL:GQ	1/1:0,42:41:-160.07,-12.36,-0.02:99
-chr1	1861277	rs2803324	T	C	62.39	PASS	AC=2;AF=1.00;AN=2;DB;DP=28;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.17;MQ0=0;OQ=848.26;QD=30.30;SB=-320.13	GT:AD:DP:GL:GQ	1/1:0,28:28:-88.44,-8.45,-0.03:84.18
-chr1	1863485	rs12758705	G	A	595.32	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.68;MQ0=0;OQ=2263.21;QD=38.36;SB=-926.70	GT:AD:DP:GL:GQ	1/1:0,59:57:-229.92,-17.17,-0.01:99
-chr1	1864441	rs2803329	A	G	280.82	PASS	AC=2;AF=1.00;AN=2;DB;DP=37;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.50;MQ0=0;OQ=1008.85;QD=27.27;SB=-491.17	GT:AD:DP:GL:GQ	1/1:0,37:33:-104.50,-9.95,-0.03:99
-chr1	1864697	rs2803330	A	G	60.11	PASS	AC=2;AF=1.00;AN=2;DB;DP=25;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=58.49;MQ0=0;OQ=756.37;QD=30.25;SB=-313.68	GT:AD:DP:GL:GQ	1/1:0,25:22:-79.23,-6.63,-0.01:66.20
-chr1	1865005	rs2803331	C	T	233.79	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=1.88;MQ=58.84;MQ0=0;OQ=1354.55;QD=33.86;SB=-668.39	GT:AD:DP:GL:GQ	1/1:0,37:37:-139.06,-11.16,-0.02:99
-chr1	1865127	rs2262190	A	G	525.82	PASS	AC=2;AF=1.00;AN=2;DB;DP=31;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.03;MQ0=0;OQ=948.06;QD=30.58;SB=-404.33	GT:AD:DP:GL:GQ	1/1:0,31:30:-98.41,-9.05,-0.02:90.22
-chr1	1867098	rs2748978	T	G	544.45	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.39;MQ0=0;OQ=1416.47;QD=34.55;SB=-657.23	GT:AD:DP:GL:GQ	1/1:0,41:41:-145.24,-12.35,-0.01:99
-chr1	1867212	rs2803339	T	C	83.30	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=1.84;MQ=54.90;MQ0=0;OQ=1104.15;QD=27.60;SB=-492.17	GT:AD:DP:GL:GQ	1/1:1,39:37:-114.04,-11.17,-0.04:99
-chr1	1868944	rs2490543	C	T	282.58	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=1.44;MQ=58.05;MQ0=0;OQ=849.11;QD=14.15;SB=-315.86	GT:AD:DP:GL:GQ	0/1:33,27:55:-104.77,-16.57,-95.97:99
-chr1	1868947	rs28573337	G	A	161.30	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=1.44;MQ=57.95;MQ0=0;OQ=983.65;QD=17.26;SB=-292.79	GT:AD:DP:GL:GQ	0/1:26,31:55:-118.23,-16.58,-80.47:99
-chr1	1869420	rs28498068	T	G	172.46	PASS	AC=1;AF=0.50;AN=2;DB;DP=35;Dels=0.00;HRun=0;HaplotypeScore=1.89;MQ=56.75;MQ0=0;OQ=395.95;QD=11.31;SB=-182.88	GT:AD:DP:GL:GQ	0/1:18,17:34:-53.12,-10.25,-61.66:99
-chr1	1869908	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=44;Dels=0.00;HRun=14;HaplotypeScore=14.65;MQ=46.99;MQ0=0;OQ=127.58;QD=2.90;SB=11.06	GT:AD:DP:GL:GQ	0/1:29,15:29:-24.78,-8.74,-71.11:99
-chr1	1870211	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=105;Dels=0.02;HRun=2;HaplotypeScore=156.21;MQ=37.45;MQ0=0;OQ=89.02;QD=0.85;SB=-10.74	GT:AD:DP:GL:GQ	0/1:91,12:93:-39.61,-27.42,-314.70:99
-chr1	1870216	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=95;Dels=0.13;HRun=3;HaplotypeScore=129.57;MQ=35.88;MQ0=0;OQ=216.82;QD=2.28;SB=-71.49	GT:AD:DP:GL:GQ	0/1:69,14:77:-47.26,-22.30,-241.64:99
-chr1	1870237	.	C	T	350.17	Indel;SnpCluster	AC=1;AF=0.50;AN=2;DP=80;Dels=0.00;HRun=1;HaplotypeScore=136.82;MQ=33.84;MQ0=0;QD=4.38;SB=-96.57	GT:AD:DP:GL:GQ	0/1:64,16:68:-58.79,-20.48,-197.51:99
-chr1	1870241	.	T	C	795.72	Indel;SnpCluster	AC=1;AF=0.50;AN=2;DP=77;Dels=0.00;HRun=2;HaplotypeScore=105.65;MQ=33.28;MQ0=0;QD=10.33;SB=-171.98	GT:AD:DP:GL:GQ	0/1:49,28:68:-103.35,-20.49,-158.12:99
-chr1	1870246	.	T	C	783.37	SnpCluster	AC=1;AF=0.50;AN=2;DP=75;Dels=0.01;HRun=3;HaplotypeScore=106.17;MQ=32.28;MQ0=0;QD=10.44;SB=-190.65	GT:AD:DP:GL:GQ	0/1:44,29:65:-101.22,-19.60,-139.10:99
-chr1	1870249	rs28490251	C	T	536.49	SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=1;HaplotypeScore=65.25;MQ=33.25;MQ0=0;QD=8.01;SB=-19.48	GT:AD:DP:GL:GQ	0/1:45,22:60:-75.01,-18.07,-158.51:99
-chr1	1870263	.	T	C	67.37	SnpCluster	AC=1;AF=0.50;AN=2;DP=63;Dels=0.00;HRun=2;HaplotypeScore=102.33;MQ=35.77;MQ0=0;QD=1.07;SB=-0.98	GT:AD:DP:GL:GQ	0/1:55,8:53:-25.99,-15.97,-184.95:99
-chr1	1870272	.	C	T	96.33	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=62;Dels=0.00;HRun=2;HaplotypeScore=53.42;MQ=40.73;MQ0=0;QD=1.55;SB=5.03	GT:AD:DP:GL:GQ	0/1:52,10:55:-29.48,-16.57,-180.28:99
-chr1	1870273	.	T	C	72.37	SnpCluster	AC=1;AF=0.50;AN=2;DP=62;Dels=0.00;HRun=2;HaplotypeScore=53.42;MQ=40.73;MQ0=0;QD=1.17;SB=-0.98	GT:AD:DP:GL:GQ	0/1:55,7:53:-26.49,-15.97,-188.35:99
-chr1	1870281	.	C	T	187.69	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=58;Dels=0.00;HRun=1;HaplotypeScore=96.79;MQ=44.56;MQ0=0;QD=3.24;SB=5.04	GT:AD:DP:GL:GQ	0/1:46,12:51:-37.41,-15.36,-160.10:99
-chr1	1870294	.	T	C	11.65	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=61;Dels=0.00;HRun=0;HaplotypeScore=10.99;MQ=47.97;MQ0=0;QD=0.19;SB=8.05	GT:AD:DP:GL:GQ	0/1:55,6:59:-22.20,-17.78,-213.89:44.18
-chr1	1870405	.	C	A	16.24	PASS	AC=1;AF=0.50;AN=2;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=38.44;MQ0=0;OQ=457.23;QD=8.97;SB=-4.29	GT:AD:DP:GL:GQ	0/1:33,18:50:-64.07,-15.06,-117.59:99
-chr1	1870410	.	T	C	0.86	PASS	AC=1;AF=0.50;AN=2;DP=48;Dels=0.00;HRun=2;HaplotypeScore=0.99;MQ=38.95;MQ0=0;OQ=422.51;QD=8.80;SB=-31.25	GT:AD:DP:GL:GQ	0/1:31,17:47:-59.69,-14.16,-126.57:99
-chr1	1870428	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=35;Dels=0.00;HRun=1;HaplotypeScore=20.35;MQ=41.74;MQ0=0;OQ=75.20;QD=2.15;SB=23.10	GT:AD:DP:GL:GQ	0/1:27,8:31:-20.14,-9.34,-96.20:99
-chr1	1870432	.	C	T	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=29;Dels=0.00;HRun=1;HaplotypeScore=16.08;MQ=42.82;MQ0=0;OQ=52.58;QD=1.81;SB=29.11	GT:AD:DP:GL:GQ	0/1:24,5:28:-16.98,-8.43,-86.35:85.42
-chr1	1870446	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=25;Dels=0.04;HRun=2;HaplotypeScore=17.65;MQ=47.45;MQ0=0;OQ=105.58;QD=4.22;SB=-62.85	GT:AD:DP:GL:GQ	0/1:18,6:24:-20.77,-6.93,-68.32:99
-chr1	1871370	rs2490541	C	A	191.01	PASS	AC=2;AF=1.00;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=58.38;MQ0=1;OQ=2594.06;QD=33.69;SB=-1155.38	GT:AD:DP:GL:GQ	1/1:0,76:73:-263.01,-21.99,-0.02:99
-chr1	1872147	rs2490540	A	G	201.87	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=58.87;MQ0=0;OQ=2121.33;QD=34.22;SB=-1028.42	GT:AD:DP:GL:GQ	1/1:0,62:60:-215.74,-18.07,-0.02:99
-chr1	1872797	rs28754760	C	T	596.04	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.63;MQ0=0;OQ=2762.82;QD=40.63;SB=-1367.30	GT:AD:DP:GL:GQ	1/1:0,68:68:-279.88,-20.48,-0.01:99
-chr1	1872809	rs2490564	A	G	614.38	PASS	AC=2;AF=1.00;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.49;MQ0=0;OQ=2664.00;QD=34.60;SB=-1257.66	GT:AD:DP:GL:GQ	1/1:0,77:76:-270.02,-22.89,-0.03:99
-chr1	1872820	rs2490563	C	A	537.89	PASS	AC=2;AF=1.00;AN=2;DB;DP=73;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.73;MQ0=0;OQ=2673.37;QD=36.62;SB=-1103.59	GT:AD:DP:GL:GQ	1/1:0,73:73:-270.94,-21.99,-0.02:99
-chr1	1872941	rs28505085	C	T	182.42	PASS	AC=2;AF=1.00;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=0.83;MQ=59.70;MQ0=0;OQ=3049.13;QD=40.12;SB=-1406.71	GT:AD:DP:GL:GQ	1/1:0,76:76:-308.51,-22.89,-0.02:99
-chr1	1873219	rs2490562	A	G	659.58	PASS	AC=2;AF=1.00;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.78;MQ0=0;OQ=2029.90;QD=31.23;SB=-828.58	GT:AD:DP:GL:GQ	1/1:0,65:64:-206.63,-19.30,-0.05:99
-chr1	1874915	rs2474455	C	T	626.28	PASS	AC=2;AF=1.00;AN=2;DB;DP=78;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.22;MQ0=0;OQ=2935.86;QD=37.64;SB=-1349.01	GT:AD:DP:GL:GQ	1/1:0,78:74:-297.19,-22.29,-0.02:99
-chr1	1876080	rs4648738	C	T	622.15	PASS	AC=2;AF=1.00;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=38.86;MQ0=0;OQ=2172.76;QD=36.21;SB=-969.30	GT:AD:DP:GL:GQ	1/1:0,60:56:-220.88,-16.87,-0.02:99
-chr1	1876082	rs2803287	T	G	577.20	PASS	AC=2;AF=1.00;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=38.86;MQ0=0;OQ=1927.37;QD=32.12;SB=-839.09	GT:AD:DP:GL:GQ	1/1:0,60:56:-196.35,-16.87,-0.02:99
-chr1	1876206	.	G	A	152.24	Indel	AC=1;AF=0.50;AN=2;DP=31;Dels=0.00;HRun=0;HaplotypeScore=32.79;MQ=48.52;MQ0=0;QD=4.91;SB=-65.27	GT:AD:DP:GL:GQ	0/1:20,7:27:-34.54,-16.03,-70.20:99
-chr1	1876245	rs2803286	T	C	61.43	PASS	AC=2;AF=1.00;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=1.76;MQ=51.77;MQ0=0;OQ=999.35;QD=27.76;SB=-355.43	GT:AD:DP:GL:GQ	1/1:0,36:34:-103.57,-10.26,-0.05:99
-chr1	1876361	rs2748976	C	A	113.55	PASS	AC=1;AF=0.50;AN=2;DB;DP=26;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=45.22;MQ0=0;OQ=179.32;QD=6.90;SB=-106.45	GT:AD:DP:GL:GQ	0/1:18,8:25:-28.75,-7.53,-52.51:99
-chr1	1876371	.	C	A	48.69	LowQual	AC=1;AF=0.50;AN=2;DP=24;Dels=0.00;HRun=0;HaplotypeScore=1.83;MQ=43.76;MQ0=0;QD=2.03;SB=-50.67	GT:AD:DP:GL:GQ	0/1:20,4:23:-15.08,-6.93,-60.82:81.52
-chr1	1876379	rs2748975	C	A	111.71	PASS	AC=2;AF=1.00;AN=2;DB;DP=24;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=47.73;MQ0=0;OQ=820.31;QD=34.18;SB=-360.86	GT:AD:DP:GL:GQ	1/1:0,24:23:-85.62,-6.93,-0.01:69.21
-chr1	1876719	rs3795290	C	T	341.91	PASS	AC=2;AF=1.00;AN=2;DB;DP=28;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=56.08;MQ0=0;OQ=1064.55;QD=38.02;SB=-422.06	GT:AD:DP:GL:GQ	1/1:0,28:28:-110.05,-8.44,-0.01:84.27
-chr1	1876879	rs28548017	A	G	12.14	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=2;HaplotypeScore=3.36;MQ=59.09;MQ0=0;OQ=1547.11;QD=33.63;SB=-748.91	GT:AD:DP:GL:GQ	1/1:0,45:45:-158.32,-13.56,-0.02:99
-chr1	1877105	rs28575980	G	A	126.28	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=1.78;MQ=58.88;MQ0=0;OQ=2123.64;QD=39.33;SB=-940.36	GT:AD:DP:GL:GQ	1/1:0,54:54:-215.96,-16.27,-0.02:99
-chr1	1878053	rs3820011	C	A	596.21	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1358.01;QD=33.95;SB=-534.23	GT:AD:DP:GL:GQ	1/1:0,40:39:-139.40,-11.75,-0.01:99
-chr1	1878190	rs28535696	C	T	4.02	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=5.27;MQ=59.60;MQ0=0;OQ=1961.78;QD=33.82;SB=-651.37	GT:AD:DP:GL:GQ	1/1:0,56:52:-199.79,-15.68,-0.03:99
-chr1	1878229	rs2803285	A	G	106.12	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=1;HaplotypeScore=1.79;MQ=60.00;MQ0=0;OQ=1952.57;QD=31.49;SB=-789.62	GT:AD:DP:GL:GQ	1/1:0,62:61:-198.90,-18.40,-0.05:99
-chr1	1878313	rs28549710	G	A	560.24	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.62;MQ0=0;OQ=1883.77;QD=38.44;SB=-852.64	GT:AD:DP:GL:GQ	1/1:0,49:48:-191.98,-14.46,-0.02:99
-chr1	1878885	rs2748974	A	G	5.77	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=1;HaplotypeScore=2.37;MQ=58.15;MQ0=0;OQ=1276.90;QD=26.60;SB=-511.07	GT:AD:DP:GL:GQ	1/1:1,47:40:-131.31,-12.06,-0.03:99
-chr1	1878935	rs941533	C	T	78.39	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=1;HaplotypeScore=0.99;MQ=58.81;MQ0=0;OQ=1331.51;QD=34.14;SB=-642.34	GT:AD:DP:GL:GQ	1/1:0,39:35:-136.75,-10.55,-0.02:99
-chr1	1879652	rs2748973	A	T	145.27	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=1.05;MQ=60.00;MQ0=0;OQ=1566.33;QD=34.81;SB=-658.70	GT:AD:DP:GL:GQ	1/1:0,44:44:-160.23,-13.26,-0.02:99
-chr1	1881908	rs2803292	G	C	343.50	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=1;HaplotypeScore=0.89;MQ=60.00;MQ0=0;OQ=1280.73;QD=16.85;SB=-445.74	GT:AD:DP:GL:GQ	0/1:41,35:73:-153.35,-22.00,-166.87:99
-chr1	1882185	rs2803291	T	C	583.24	PASS	AC=2;AF=1.00;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.59;MQ0=0;OQ=1616.58;QD=28.87;SB=-749.95	GT:AD:DP:GL:GQ	1/1:0,56:52:-165.29,-15.68,-0.05:99
-chr1	1883521	rs9777849	T	C	52.56	PASS	AC=2;AF=1.00;AN=2;DB;DP=77;Dels=0.00;HRun=2;HaplotypeScore=1.11;MQ=58.55;MQ0=0;OQ=2600.99;QD=33.78;SB=-793.15	GT:AD:DP:GL:GQ	1/1:0,77:75:-263.71,-22.59,-0.03:99
-chr1	1883775	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=67;Dels=0.00;HRun=18;HaplotypeScore=34.55;MQ=54.67;MQ0=0;OQ=115.46;QD=1.72;SB=60.06	GT:AD:DP:GL:GQ	0/1:50,15:53:-37.44,-22.61,-153.19:99
-chr1	1884144	rs4648739	T	C	265.60	PASS	AC=1;AF=0.50;AN=2;DB;DP=90;Dels=0.00;HRun=0;HaplotypeScore=1.29;MQ=56.66;MQ0=0;OQ=1089.11;QD=12.10;SB=-234.30	GT:AD:DP:GL:GQ	0/1:41,48:84:-137.52,-25.33,-160.93:99
-chr1	1884622	.	T	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=54;Dels=0.00;HRun=2;HaplotypeScore=7.50;MQ=53.07;MQ0=0;OQ=108.82;QD=2.02;SB=71.24	GT:AD:DP:GL:GQ	0/1:31,23:39:-25.91,-11.75,-106.64:99
-chr1	1884705	rs9697615	G	A	136.68	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=2.99;MQ=58.71;MQ0=0;OQ=608.41;QD=12.94;SB=-170.23	GT:AD:DP:GL:GQ	0/1:24,22:44:-77.39,-13.26,-79.80:99
-chr1	1884754	.	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=61;Dels=0.00;HRun=0;HaplotypeScore=43.50;MQ=52.44;MQ0=1;OQ=107.17;QD=1.76;SB=65.22	GT:AD:DP:GL:GQ	0/1:47,13:52:-29.66,-15.66,-164.16:99
-chr1	1884755	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=64;Dels=0.00;HRun=20;HaplotypeScore=45.92;MQ=52.41;MQ0=1;OQ=326.78;QD=5.11;SB=65.23	GT:AD:DP:GL:GQ	0/1:48,16:59:-53.73,-17.77,-157.95:99
-chr1	1884837	rs35817970	T	C	556.60	Indel	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=2.07;MQ=55.91;MQ0=0;QD=10.91;SB=-219.26	GT:AD:DP:GL:GQ	0/1:29,21:48:-73.41,-14.46,-106.68:99
-chr1	1885037	rs7523728	C	T	495.93	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=56.35;MQ0=0;OQ=754.75;QD=13.98;SB=-403.19	GT:AD:DP:GL:GQ	0/1:30,24:50:-93.83,-15.07,-88.75:99
-chr1	1885400	rs28561741	A	G	4.33	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=3;HaplotypeScore=1.47;MQ=59.52;MQ0=0;OQ=350.23;QD=7.30;SB=-137.55	GT:AD:DP:GL:GQ	0/1:31,17:46:-52.17,-13.87,-117.69:99
-chr1	1885962	rs13302978	G	A	113.63	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=4.25;MQ=53.12;MQ0=0;OQ=689.28;QD=12.53;SB=-222.75	GT:AD:DP:GL:GQ	0/1:26,26:49:-87.00,-14.79,-79.84:99
-chr1	1886045	rs13303324	T	C	252.63	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=59.41;MQ0=0;OQ=434.96;QD=11.15;SB=-181.59	GT:AD:DP:GL:GQ	0/1:18,21:37:-57.94,-11.16,-71.83:99
-chr1	1886083	rs13303202	C	T	406.23	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=730.31;QD=16.98;SB=-346.33	GT:AD:DP:GL:GQ	0/1:21,22:43:-89.27,-12.95,-73.96:99
-chr1	1886300	rs16824585	G	A	23.99	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=56.05;MQ0=0;OQ=933.53;QD=20.75;SB=-382.89	GT:AD:DP:GL:GQ	0/1:18,27:45:-110.19,-13.56,-62.00:99
-chr1	1886413	rs28625839	C	T	106.43	PASS	AC=1;AF=0.50;AN=2;DB;DP=26;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=58.20;MQ0=0;OQ=181.47;QD=6.98;SB=-69.07	GT:AD:DP:GL:GQ	0/1:17,9:21:-27.77,-6.34,-42.14:99
-chr1	1887329	rs28523363	A	G	314.68	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=1.33;MQ=60.00;MQ0=0;OQ=843.98;QD=13.40;SB=-333.92	GT:AD:DP:GL:GQ	0/1:32,31:62:-106.36,-18.68,-128.89:99
-chr1	1887451	rs4648599	C	T	245.43	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=1.37;MQ=58.01;MQ0=0;OQ=690.92;QD=14.70;SB=-275.28	GT:AD:DP:GL:GQ	0/1:24,23:44:-85.64,-13.26,-73.07:99
-chr1	1887613	rs4648600	C	G	12.90	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=1;HaplotypeScore=4.38;MQ=58.99;MQ0=0;OQ=734.25;QD=15.96;SB=-239.38	GT:AD:DP:GL:GQ	0/1:23,23:42:-89.37,-12.66,-89.33:99
-chr1	1887905	rs28712827	G	A	21.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=6.31;MQ=57.89;MQ0=0;OQ=502.21;QD=13.22;SB=-250.22	GT:AD:DP:GL:GQ	0/1:20,17:35:-64.07,-10.57,-52.53:99
-chr1	1888209	rs28414188	C	T	21.14	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=1;HaplotypeScore=2.66;MQ=59.03;MQ0=0;OQ=593.85;QD=13.81;SB=-128.12	GT:AD:DP:GL:GQ	0/1:24,19:42:-75.32,-12.65,-82.23:99
-chr1	1888229	rs28629936	G	A	50.03	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=58.95;MQ0=0;OQ=708.17;QD=17.70;SB=-204.21	GT:AD:DP:GL:GQ	0/1:19,21:39:-85.85,-11.75,-58.81:99
-chr1	1888545	rs17715950	T	C	188.94	PASS	AC=1;AF=0.50;AN=2;DB;DP=31;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=392.93;QD=12.68;SB=-143.27	GT:AD:DP:GL:GQ	0/1:16,15:29:-51.31,-8.74,-58.30:99
-chr1	1888637	rs34506333	G	C	174.46	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=1;HaplotypeScore=0.80;MQ=57.85;MQ0=0;OQ=1081.48;QD=18.97;SB=-492.64	GT:AD:DP:GL:GQ	0/1:26,30:56:-128.32,-16.89,-103.04:99
-chr1	1888639	rs35698161	C	A	246.37	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=1;HaplotypeScore=0.80;MQ=57.81;MQ0=0;OQ=901.53;QD=16.10;SB=-413.05	GT:AD:DP:GL:GQ	0/1:26,30:56:-110.30,-16.87,-89.43:99
-chr1	1888688	rs34824947	T	C	245.62	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=1.15;MQ=58.71;MQ0=0;OQ=584.90;QD=12.44;SB=-198.60	GT:AD:DP:GL:GQ	0/1:25,22:46:-75.63,-13.86,-99.35:99
-chr1	1888695	rs34586002	C	A	280.09	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=59.48;MQ0=0;OQ=561.20;QD=12.75;SB=-230.89	GT:AD:DP:GL:GQ	0/1:24,20:42:-72.05,-12.65,-79.10:99
-chr1	1888719	rs35031992	G	A	261.38	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=0.63;MQ=60.00;MQ0=0;OQ=534.91;QD=11.38;SB=-199.88	GT:AD:DP:GL:GQ	0/1:28,19:46:-70.65,-13.87,-88.35:99
-chr1	1888794	rs35186797	T	C	29.82	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=2;HaplotypeScore=2.78;MQ=57.65;MQ0=0;OQ=525.33;QD=10.94;SB=-267.94	GT:AD:DP:GL:GQ	0/1:23,25:43:-68.78,-12.96,-87.05:99
-chr1	1888798	rs13303138	G	A	173.43	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=2.15;MQ=57.75;MQ0=0;OQ=779.95;QD=15.60;SB=-266.18	GT:AD:DP:GL:GQ	0/1:24,26:46:-95.14,-13.87,-72.15:99
-chr1	1888835	rs34940616	G	A	9.86	PASS	AC=1;AF=0.50;AN=2;DB;DP=31;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=57.88;MQ0=0;OQ=741.91;QD=23.93;SB=-335.86	GT:AD:DP:GL:GQ	0/1:9,22:29:-86.21,-8.74,-25.83:99
-chr1	1889024	rs17778128	G	C	179.10	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=2.99;MQ=57.35;MQ0=0;OQ=668.72;QD=10.79;SB=-360.78	GT:AD:DP:GL:GQ	0/1:38,24:59:-87.94,-17.79,-162.55:99
-chr1	1889139	rs61775058	A	T	458.44	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=54.25;MQ0=0;OQ=787.44;QD=13.58;SB=-299.67	GT:AD:DP:GL:GQ	0/1:31,27:58:-99.50,-17.47,-121.67:99
-chr1	1889179	rs61775059	T	C	275.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=1.47;MQ=58.27;MQ0=0;OQ=765.16;QD=11.42;SB=-328.14	GT:AD:DP:GL:GQ	0/1:35,32:66:-99.69,-19.89,-140.70:99
-chr1	1889260	rs13303007	G	A	42.33	Indel;LowQual	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=1;HaplotypeScore=6.98;MQ=52.93;MQ0=0;QD=0.73;SB=-30.38	GT:AD:DP:GL:GQ	0/1:52,6:58:-24.99,-17.47,-182.54:75.16
-chr1	1889721	rs4648601	C	T	94.28	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=1.97;MQ=56.35;MQ0=0;OQ=530.41;QD=10.20;SB=-77.51	GT:AD:DP:GL:GQ	0/1:33,19:47:-70.50,-14.17,-95.11:99
-chr1	1890092	rs16824588	T	C	13.33	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=1.16;MQ=57.02;MQ0=0;OQ=150.77;QD=3.97;SB=-54.71	GT:AD:DP:GL:GQ	0/1:26,12:35:-28.91,-10.55,-104.30:99
-chr1	1890192	rs55709963	A	G	31.87	PASS	AC=1;AF=0.50;AN=2;DB;DP=25;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=56.20;MQ0=0;OQ=293.66;QD=11.75;SB=-65.87	GT:AD:DP:GL:GQ	0/1:12,13:24:-39.88,-7.23,-45.12:99
-chr1	1890199	rs56126097	A	G	24.29	PASS	AC=1;AF=0.50;AN=2;DB;DP=23;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=55.86;MQ0=0;OQ=270.97;QD=11.78;SB=-47.83	GT:AD:DP:GL:GQ	0/1:11,12:22:-37.01,-6.63,-43.67:99
-chr1	1890235	rs55676322	G	A	36.70	LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=13;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=52.45;MQ0=0;QD=2.82;SB=-3.98	GT:AD:DP:GL:GQ	0/1:10,3:12:-10.57,-3.62,-30.38:69.54
-chr1	1890236	.	C	T	56.05	SnpCluster	AC=1;AF=0.50;AN=2;DP=14;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=53.03;MQ0=0;QD=4.00;SB=-3.98	GT:AD:DP:GL:GQ	0/1:11,3:13:-12.81,-3.92,-36.41:88.89
-chr1	1890241	rs55784504	G	A	37.70	LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=16;Dels=0.00;HRun=0;HaplotypeScore=0.63;MQ=53.95;MQ0=0;QD=2.36;SB=-0.97	GT:AD:DP:GL:GQ	0/1:13,3:15:-11.57,-4.52,-40.91:70.54
-chr1	1890268	rs61776961	A	G	12.56	LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=19;Dels=0.00;HRun=1;HaplotypeScore=1.72;MQ=53.61;MQ0=0;QD=0.66;SB=-31.93	GT:AD:DP:GL:GQ	0/1:15,4:17:-9.64,-5.12,-56.10:45.15
-chr1	1890270	rs61776962	C	T	67.49	SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=21;Dels=0.00;HRun=0;HaplotypeScore=2.55;MQ=53.03;MQ0=0;QD=3.21;SB=-45.25	GT:AD:DP:GL:GQ	0/1:16,5:19:-15.77,-5.74,-45.89:99
-chr1	1890274	rs61776963	T	C	59.17	SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=20;Dels=0.00;HRun=2;HaplotypeScore=2.43;MQ=51.33;MQ0=0;QD=2.96;SB=-53.70	GT:AD:DP:GL:GQ	0/1:14,6:19:-14.93,-5.73,-56.51:92.01
-chr1	1890292	rs61776964	T	G	172.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=29;Dels=0.00;HRun=0;HaplotypeScore=0.83;MQ=50.53;MQ0=0;OQ=263.44;QD=9.08;SB=-95.94	GT:AD:DP:GL:GQ	0/1:17,12:28:-38.07,-8.44,-56.66:99
-chr1	1890305	rs61776965	C	T	161.45	PASS	AC=1;AF=0.50;AN=2;DB;DP=31;Dels=0.00;HRun=1;HaplotypeScore=1.46;MQ=50.32;MQ0=0;OQ=365.34;QD=11.79;SB=-175.70	GT:AD:DP:GL:GQ	0/1:18,13:27:-47.95,-8.13,-56.49:99
-chr1	1890314	rs6681749	A	G	143.47	PASS	AC=1;AF=0.50;AN=2;DB;DP=32;Dels=0.00;HRun=0;HaplotypeScore=1.62;MQ=50.65;MQ0=0;OQ=306.18;QD=9.57;SB=-129.77	GT:AD:DP:GL:GQ	0/1:17,15:29:-42.64,-8.74,-64.98:99
-chr1	1890507	.	T	C	42.73	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=23;Dels=0.00;HRun=2;HaplotypeScore=3.92;MQ=54.77;MQ0=0;QD=1.86;SB=14.07	GT:AD:DP:GL:GQ	0/1:16,7:17:-12.68,-5.13,-48.62:75.57
-chr1	1890548	.	A	T	8.30	PASS	AC=1;AF=0.50;AN=2;DP=10;Dels=0.00;HRun=0;HaplotypeScore=2.73;MQ=60.00;MQ0=0;OQ=79.81;QD=7.98;SB=-57.71	GT:AD:DP:GL:GQ	0/1:6,4:10:-14.28,-3.01,-22.53:99
-chr1	1890778	rs28707401	G	A	84.90	PASS	AC=1;AF=0.50;AN=2;DB;DP=28;Dels=0.00;HRun=0;HaplotypeScore=2.74;MQ=58.33;MQ0=0;OQ=401.02;QD=14.32;SB=-129.13	GT:AD:DP:GL:GQ	0/1:13,14:24:-53.53,-10.14,-35.22:99
-chr1	1892326	.	A	C	112.36	PASS	AC=1;AF=0.50;AN=2;DP=55;Dels=0.00;HRun=1;HaplotypeScore=0.98;MQ=59.24;MQ0=0;OQ=852.28;QD=15.50;SB=-429.85	GT:AD:DP:GL:GQ	0/1:26,29:52:-104.18,-15.67,-81.22:99
-chr1	1892422	rs7367171	A	G	220.04	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=1.16;MQ=59.60;MQ0=0;OQ=514.17;QD=9.02;SB=-267.96	GT:AD:DP:GL:GQ	0/1:32,25:54:-70.98,-16.28,-126.05:99
-chr1	1892426	rs7367879	G	A	251.13	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=2.00;MQ=59.60;MQ0=0;OQ=832.91;QD=14.36;SB=-352.38	GT:AD:DP:GL:GQ	0/1:32,26:52:-102.26,-15.68,-81.39:99
-chr1	1892733	rs7366028	C	T	234.62	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=-0.06;MQ=59.35;MQ0=0;OQ=1086.69;QD=15.31;SB=-535.37	GT:AD:DP:GL:GQ	0/1:36,35:67:-132.15,-20.20,-106.68:99
-chr1	1893163	rs4648603	C	T	25.39	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=3.03;MQ=59.48;MQ0=0;OQ=261.75;QD=5.95;SB=-111.10	GT:AD:DP:GL:GQ	0/1:32,12:41:-41.83,-12.38,-90.87:99
-chr1	1893572	rs13303201	C	A	360.69	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=57.58;MQ0=0;OQ=726.40;QD=15.46;SB=-340.06	GT:AD:DP:GL:GQ	0/1:22,25:44:-89.18,-13.26,-62.88:99
-chr1	1895166	rs56313717	C	A	171.85	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=60.00;MQ0=0;OQ=635.59;QD=15.13;SB=-197.47	GT:AD:DP:GL:GQ	0/1:18,24:41:-79.20,-12.35,-61.36:99
-chr1	1897772	rs7528894	C	T	135.70	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=2.84;MQ=58.63;MQ0=0;OQ=607.52;QD=11.91;SB=-152.65	GT:AD:DP:GL:GQ	0/1:30,21:44:-77.30,-13.26,-84.20:99
-chr1	1897865	rs7536087	T	C	25.44	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=2.72;MQ=54.74;MQ0=0;OQ=378.78;QD=5.83;SB=-147.48	GT:AD:DP:GL:GQ	0/1:38,27:56:-58.05,-16.88,-148.17:99
-chr1	1897872	rs28588807	T	C	29.81	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=3.38;MQ=53.22;MQ0=0;OQ=367.97;QD=6.24;SB=-166.50	GT:AD:DP:GL:GQ	0/1:36,23:50:-55.16,-15.08,-127.98:99
-chr1	1897899	rs4388640	C	T	188.74	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=52.25;MQ0=0;OQ=499.97;QD=8.20;SB=-247.55	GT:AD:DP:GL:GQ	0/1:39,22:51:-68.65,-15.37,-112.84:99
-chr1	1897945	rs28410799	A	G	3.16	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=5.71;MQ=54.36;MQ0=0;OQ=341.23;QD=5.59;SB=-142.90	GT:AD:DP:GL:GQ	0/1:39,21:52:-53.08,-15.68,-138.70:99
-chr1	1897960	rs28789409	G	T	236.91	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=55.27;MQ0=0;OQ=569.89;QD=9.19;SB=-286.60	GT:AD:DP:GL:GQ	0/1:38,24:59:-78.04,-17.77,-137.70:99
-chr1	1898245	rs13303203	C	T	367.31	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=56.47;MQ0=0;OQ=546.46;QD=10.31;SB=-185.87	GT:AD:DP:GL:GQ	0/1:33,20:47:-72.10,-14.17,-90.13:99
-chr1	1898289	rs28545809	T	C	170.68	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=0.92;MQ=55.94;MQ0=0;OQ=320.54;QD=7.82;SB=-173.95	GT:AD:DP:GL:GQ	0/1:24,16:37:-46.49,-11.16,-87.43:99
-chr1	1898563	rs4233027	C	G	427.81	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.18;MQ0=0;OQ=977.32;QD=15.27;SB=-297.92	GT:AD:DP:GL:GQ	0/1:36,28:63:-120.00,-18.99,-153.02:99
-chr1	1899064	rs35953639	A	G	134.17	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=4.58;MQ=58.52;MQ0=0;OQ=901.65;QD=15.82;SB=-439.15	GT:AD:DP:GL:GQ	0/1:25,32:55:-110.02,-16.57,-94.81:99
-chr1	1899178	rs61776976	G	A	36.91	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=1.28;MQ=59.15;MQ0=0;OQ=1106.44;QD=22.13;SB=-371.92	GT:AD:DP:GL:GQ	0/1:16,34:48:-128.39,-14.47,-53.19:99
-chr1	1899305	rs55863117	A	G	206.03	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=3.39;MQ=59.24;MQ0=0;OQ=872.61;QD=14.31;SB=-340.17	GT:AD:DP:GL:GQ	0/1:25,35:57:-107.73,-17.18,-95.38:99
-chr1	1899354	rs28716654	C	T	202.23	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=3.09;MQ=59.30;MQ0=0;OQ=1176.35;QD=17.82;SB=-612.15	GT:AD:DP:GL:GQ	0/1:31,35:62:-139.59,-18.67,-102.07:99
-chr1	1899413	rs28680595	T	A	360.31	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=59.29;MQ0=0;OQ=1036.44;QD=15.95;SB=-464.88	GT:AD:DP:GL:GQ	0/1:30,35:63:-125.91,-18.98,-108.28:99
-chr1	1899561	rs28613404	C	T	21.64	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=5.89;MQ=58.07;MQ0=0;OQ=742.01;QD=16.13;SB=-312.34	GT:AD:DP:GL:GQ	0/1:20,25:42:-90.15,-12.66,-60.03:99
-chr1	1899593	rs28491083	G	T	384.56	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.79;MQ0=0;OQ=572.46;QD=14.31;SB=-222.49	GT:AD:DP:GL:GQ	0/1:17,23:37:-71.67,-11.14,-60.73:99
-chr1	1899703	rs28433557	C	T	153.68	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=0.63;MQ=58.28;MQ0=0;OQ=695.04;QD=16.55;SB=-241.74	GT:AD:DP:GL:GQ	0/1:19,23:39:-84.54,-11.75,-59.04:99
-chr1	1899714	rs28448395	G	A	59.92	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=0.63;MQ=57.87;MQ0=0;OQ=975.55;QD=21.68;SB=-411.21	GT:AD:DP:GL:GQ	0/1:16,29:43:-113.79,-12.96,-49.10:99
-chr1	1899728	rs28539219	G	A	22.10	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=2;HaplotypeScore=0.99;MQ=58.50;MQ0=0;OQ=1039.92;QD=21.66;SB=-531.16	GT:AD:DP:GL:GQ	0/1:16,32:45:-120.83,-13.56,-54.90:99
-chr1	1899861	rs28468541	C	G	2.92	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=9.03;MQ=56.76;MQ0=0;OQ=898.89;QD=17.63;SB=-410.04	GT:AD:DP:GL:GQ	0/1:24,26:48:-107.64,-14.46,-99.37:99
-chr1	1899872	rs28588737	T	C	12.45	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=2;HaplotypeScore=3.04;MQ=57.56;MQ0=0;OQ=448.65;QD=9.35;SB=-239.28	GT:AD:DP:GL:GQ	0/1:25,23:43:-61.11,-12.96,-97.10:99
-chr1	1899946	rs28645949	G	T	144.20	PASS	AC=1;AF=0.50;AN=2;DB;DP=32;Dels=0.00;HRun=0;HaplotypeScore=2.04;MQ=60.00;MQ0=0;OQ=332.80;QD=10.40;SB=-155.69	GT:AD:DP:GL:GQ	0/1:19,13:30:-45.61,-9.04,-50.81:99
-chr1	1900096	rs28651716	T	C	225.12	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=2.87;MQ=54.90;MQ0=0;OQ=686.40;QD=12.71;SB=-338.36	GT:AD:DP:GL:GQ	0/1:28,26:53:-87.90,-15.97,-105.41:99
-chr1	1900231	rs28642304	G	A	31.56	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=1;HaplotypeScore=5.35;MQ=52.67;MQ0=2;OQ=686.17;QD=14.00;SB=-341.85	GT:AD:DP:GL:GQ	0/1:25,24:43:-84.86,-12.96,-72.07:99
-chr1	1900342	.	C	G	14.82	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=40;Dels=0.00;HRun=0;HaplotypeScore=12.94;MQ=53.14;MQ0=2;QD=0.37;SB=26.12	GT:AD:DP:GL:GQ	0/1:35,5:34:-15.00,-10.25,-129.63:47.51
-chr1	1900344	.	T	C	47.56	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=41;Dels=0.00;HRun=0;HaplotypeScore=13.10;MQ=54.07;MQ0=2;QD=1.16;SB=26.11	GT:AD:DP:GL:GQ	0/1:32,9:34:-18.29,-10.25,-109.75:80.39
-chr1	1900366	.	T	C	19.64	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=41;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=56.14;MQ0=0;QD=0.48;SB=17.08	GT:AD:DP:GL:GQ	0/1:34,7:35:-15.79,-10.55,-116.81:52.43
-chr1	1900466	rs7550407	A	G	75.71	PASS	AC=2;AF=1.00;AN=2;DB;DP=20;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=45.89;MQ0=2;OQ=380.59;QD=19.03;SB=-189.68	GT:AD:DP:GL:GQ	1/1:0,20:13:-41.66,-3.92,-0.01:39.09
-chr1	1900518	.	T	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=43;Dels=0.00;HRun=0;HaplotypeScore=10.99;MQ=35.59;MQ0=6;OQ=55.62;QD=1.29;SB=-13.87	GT:AD:DP:GL:GQ	0/1:29,14:19:-14.57,-5.73,-56.56:88.46
-chr1	1900571	.	C	T	45.32	LowQual	AC=1;AF=0.50;AN=2;DP=50;Dels=0.00;HRun=0;HaplotypeScore=19.95;MQ=36.93;MQ0=3;QD=0.91;SB=-24.62	GT:AD:DP:GL:GQ	0/1:41,9:25:-15.36,-7.54,-65.46:78.16
-chr1	1900816	.	A	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=40;Dels=0.00;HRun=1;HaplotypeScore=6.83;MQ=47.18;MQ0=2;OQ=71.50;QD=1.79;SB=-42.78	GT:AD:DP:GL:GQ	0/1:30,10:31:-19.78,-9.34,-96.64:99
-chr1	1900861	.	T	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=51;Dels=0.00;HRun=0;HaplotypeScore=8.07;MQ=42.04;MQ0=5;OQ=136.19;QD=2.67;SB=-39.59	GT:AD:DP:GL:GQ	0/1:31,18:36:-30.43,-13.53,-101.33:99
-chr1	1900880	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=41;Dels=0.00;HRun=0;HaplotypeScore=21.93;MQ=42.64;MQ0=5;OQ=81.77;QD=1.99;SB=26.03	GT:AD:DP:GL:GQ	0/1:32,9:28:-19.91,-8.45,-71.11:99
-chr1	1900981	.	G	A	32.02	DPFilter;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=30;Dels=0.00;HRun=0;HaplotypeScore=14.77;MQ=47.97;MQ0=0;QD=1.07;SB=20.08	GT:AD:DP:GL:GQ	0/1:27,3:20:-12.51,-6.03,-56.06:64.85
-chr1	1900982	.	C	T	11.94	DPFilter;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=29;Dels=0.00;HRun=0;HaplotypeScore=14.77;MQ=47.50;MQ0=0;QD=0.41;SB=35.07	GT:AD:DP:GL:GQ	0/1:26,3:25:-11.99,-7.54,-69.22:44.49
-chr1	1900987	.	C	G	179.53	SnpCluster	AC=1;AF=0.50;AN=2;DP=31;Dels=0.00;HRun=1;HaplotypeScore=15.25;MQ=49.14;MQ0=0;QD=5.79;SB=-106.68	GT:AD:DP:GL:GQ	0/1:23,8:22:-27.88,-6.64,-59.47:99
-chr1	1901007	.	A	G	17.82	PASS	AC=1;AF=0.50;AN=2;DP=32;Dels=0.00;HRun=0;HaplotypeScore=2.16;MQ=50.60;MQ0=0;OQ=269.42;QD=8.42;SB=-129.64	GT:AD:DP:GL:GQ	0/1:19,13:29:-38.97,-8.74,-66.56:99
-chr1	1901025	.	T	C	1.37	PASS	AC=1;AF=0.50;AN=2;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.87;MQ=50.85;MQ0=0;OQ=146.63;QD=3.67;SB=-63.91	GT:AD:DP:GL:GQ	0/1:26,13:31:-27.31,-9.36,-79.17:99
-chr1	1901036	.	G	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=44;Dels=0.00;HRun=0;HaplotypeScore=7.09;MQ=51.49;MQ0=1;OQ=87.37;QD=1.99;SB=-8.61	GT:AD:DP:GL:GQ	0/1:38,6:38:-23.49,-11.46,-98.15:99
-chr1	1901053	.	T	C	11.36	LowQual	AC=1;AF=0.50;AN=2;DP=45;Dels=0.00;HRun=0;HaplotypeScore=4.99;MQ=52.41;MQ0=1;QD=0.25;SB=-25.22	GT:AD:DP:GL:GQ	0/1:37,8:38:-15.84,-11.45,-126.44:43.87
-chr1	1901418	rs28645431	C	T	0.52	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=1;HaplotypeScore=3.95;MQ=41.39;MQ0=1;OQ=172.22;QD=4.53;SB=-89.91	GT:AD:DP:GL:GQ	0/1:29,9:21:-26.84,-6.33,-42.67:99
-chr1	1901574	rs13303001	G	A	41.49	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DB;DP=25;Dels=0.00;HRun=0;HaplotypeScore=7.68;MQ=10.86;MQ0=15;QD=1.66;SB=-10.00	GT:AD:DP:GL:GQ	0/1:20,5:3:-8.34,-0.90,-3.10:21.92
-chr1	1901637	.	C	T	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=55;Dels=0.00;HRun=1;HaplotypeScore=16.41;MQ=17.84;MQ0=13;OQ=157.79;QD=2.87;SB=-10.00	GT:AD:DP:GL:GQ	0/1:44,10:26:-26.90,-7.83,-65.70:99
-chr1	1901664	.	G	A	34.02	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.20;MQ=18.33;MQ0=14;QD=0.67;SB=-10.00	GT:AD:DP:GL:GQ	0/1:42,9:17:-11.81,-5.13,-50.35:66.86
-chr1	1901668	.	G	A	0.06	PASS	AC=1;AF=0.50;AN=2;DP=49;Dels=0.00;HRun=1;HaplotypeScore=0.04;MQ=18.51;MQ0=13;OQ=99.32;QD=2.03;SB=-7.00	GT:AD:DP:GL:GQ	0/1:40,9:16:-18.04,-4.83,-38.64:99
-chr1	1901732	rs13303290	T	C	12.82	LowQual	AC=1;AF=0.50;AN=2;DB;DP=20;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=50.55;MQ0=0;QD=0.64;SB=-24.62	GT:AD:DP:GL:GQ	0/1:15,5:16:-9.37,-4.82,-51.21:45.43
-chr1	1901798	rs4648740	A	G	153	PASS	AC=1;AF=0.50;AN=2;DB;DP=35;Dels=0.00;HRun=0;HaplotypeScore=-0.06;MQ=48.72;MQ0=0;OQ=495.24;QD=14.15;SB=-240.44	GT:AD:DP:GL:GQ	0/1:16,19:34:-63.06,-10.25,-57.72:99
-chr1	1901828	rs4648741	T	A	223.12	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=1.23;MQ=49.47;MQ0=0;OQ=518.42;QD=14.01;SB=-218.56	GT:AD:DP:GL:GQ	0/1:16,21:33:-65.07,-9.94,-58.68:99
-chr1	1902252	rs35209771	G	A	29.20	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=4.72;MQ=59.38;MQ0=0;OQ=570.39;QD=15.42;SB=-188.28	GT:AD:DP:GL:GQ	0/1:17,20:31:-69.66,-9.34,-43.55:99
-chr1	1902361	rs35032062	A	G	8.53	PASS	AC=1;AF=0.50;AN=2;DB;DP=31;Dels=0.00;HRun=3;HaplotypeScore=1.19;MQ=56.62;MQ0=0;OQ=288.56;QD=9.31;SB=-81.77	GT:AD:DP:GL:GQ	0/1:15,16:27:-40.29,-8.15,-49.29:99
-chr1	1902443	rs4648742	T	G	2.74	PASS	AC=1;AF=0.50;AN=2;DB;DP=22;Dels=0.00;HRun=3;HaplotypeScore=1.88;MQ=52.64;MQ0=0;OQ=307.57;QD=13.98;SB=-102.98	GT:AD:DP:GL:GQ	0/1:8,14:19:-39.76,-5.72,-27.07:99
-chr1	1902590	rs34957887	A	G	5.37	PASS	AC=1;AF=0.50;AN=2;DB;DP=29;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=54.60;MQ0=0;OQ=111.21;QD=3.83;SB=-42.82	GT:AD:DP:GL:GQ	0/1:21,8:27:-22.55,-8.14,-76.38:99
-chr1	1902594	rs34699657	T	C	6.89	PASS	AC=1;AF=0.50;AN=2;DB;DP=28;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=55.30;MQ0=0;OQ=114.19;QD=4.08;SB=-28.64	GT:AD:DP:GL:GQ	0/1:19,9:26:-22.55,-7.85,-71.28:99
-chr1	1902618	rs13302917	G	C	80.21	PASS	AC=1;AF=0.50;AN=2;DB;DP=28;Dels=0.00;HRun=0;HaplotypeScore=0.74;MQ=55.30;MQ0=0;OQ=235.26;QD=8.40;SB=8.06	GT:AD:DP:GL:GQ	0/1:18,10:26:-34.65,-7.84,-76.52:99
-chr1	1902752	.	G	A	16.41	LowQual	AC=1;AF=0.50;AN=2;DP=20;Dels=0.00;HRun=0;HaplotypeScore=2.99;MQ=23.04;MQ0=3;QD=0.82;SB=-30.52	GT:AD:DP:GL:GQ	0/1:17,3:9:-7.63,-2.71,-23.66:49.15
-chr1	1902780	.	C	T	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=19;Dels=0.00;HRun=0;HaplotypeScore=12.84;MQ=20.15;MQ0=3;OQ=68.78;QD=3.62;SB=-7.00	GT:AD:DP:GL:GQ	0/1:14,5:6:-11.97,-1.81,-9.13:73.25
-chr1	1902787	.	G	A	0.55	PASS	AC=1;AF=0.50;AN=2;DP=19;Dels=0.00;HRun=0;HaplotypeScore=4.99;MQ=20.15;MQ0=3;OQ=103.65;QD=5.46;SB=-46.55	GT:AD:DP:GL:GQ	0/1:13,6:5:-15.16,-1.51,-3.80:22.92
-chr1	1902803	.	A	G	0.43	PASS	AC=1;AF=0.50;AN=2;DP=16;Dels=0.00;HRun=0;HaplotypeScore=2.47;MQ=19.89;MQ0=3;OQ=59.98;QD=3.75;SB=-6.99	GT:AD:DP:GL:GQ	0/1:11,5:6:-11.09,-1.81,-11.69:92.82
-chr1	1902817	.	T	C	41.42	LowQual	AC=1;AF=0.50;AN=2;DP=14;Dels=0.00;HRun=0;HaplotypeScore=9.95;MQ=22.02;MQ0=2;QD=2.96;SB=-35.94	GT:AD:DP:GL:GQ	0/1:9,4:6:-9.23,-1.81,-11.87:74.25
-chr1	1902835	rs61776983	A	C	26.37	PASS	AC=2;AF=1.00;AN=2;DB;DP=14;Dels=0.00;HRun=1;HaplotypeScore=1.55;MQ=20.97;MQ0=2;OQ=78.83;QD=5.63;SB=-10.00	GT:AD:DP:GL:GQ	1/1:1,12:3:-11.37,-0.90,-0.00:9.03
-chr1	1903052	.	G	A	0.07	PASS	AC=1;AF=0.50;AN=2;DP=26;Dels=0.00;HRun=0;HaplotypeScore=10.18;MQ=21.19;MQ0=5;OQ=185.24;QD=7.12;SB=-114.97	GT:AD:DP:GL:GQ	0/1:13,13:10:-24.83,-3.02,-9.74:67.23
-chr1	1903096	.	C	T	19.36	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=23;Dels=0.00;HRun=0;HaplotypeScore=27.09;MQ=29.12;MQ0=4;QD=0.84;SB=-32.50	GT:AD:DP:GL:GQ	0/1:20,3:10:-8.23,-3.01,-26.23:52.14
-chr1	1903103	.	G	A	0.05	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=25;Dels=0.00;HRun=0;HaplotypeScore=11.25;MQ=32.31;MQ0=4;OQ=203.36;QD=8.13;SB=-108.63	GT:AD:DP:GL:GQ	0/1:11,14:13:-27.54,-3.92,-21.98:99
-chr1	1903122	.	G	A	1.51	PASS	AC=1;AF=0.50;AN=2;DP=25;Dels=0.00;HRun=0;HaplotypeScore=5.86;MQ=37.50;MQ0=2;OQ=277.72;QD=11.11;SB=-116.63	GT:AD:DP:GL:GQ	0/1:11,14:14:-35.28,-4.22,-14.88:99
-chr1	1903133	.	C	T	26.70	DPFilter;HARD_TO_VALIDATE;Indel;LowQual	AC=1;AF=0.50;AN=2;DP=29;Dels=0.00;HRun=0;HaplotypeScore=14.79;MQ=33.51;MQ0=4;QD=0.92;SB=2.00	GT:AD:DP:GL:GQ	0/1:25,3:16:-10.78,-4.83,-41.60:59.53
-chr1	1903194	.	G	A	0.17	PASS	AC=1;AF=0.50;AN=2;DP=19;Dels=0.00;HRun=0;HaplotypeScore=4.00;MQ=22.60;MQ0=6;OQ=59.87;QD=3.15;SB=-29.63	GT:AD:DP:GL:GQ	0/1:15,4:8:-11.68,-2.41,-15.55:92.71
-chr1	1903256	rs56273126	A	C	0.43	PASS	AC=1;AF=0.50;AN=2;DB;DP=18;Dels=0.00;HRun=1;HaplotypeScore=9.88;MQ=34.34;MQ0=2;OQ=157.91;QD=8.77;SB=-43.00	GT:AD:DP:GL:GQ	0/1:8,10:11:-22.39,-3.31,-17.60:99
-chr1	1903263	rs56067355	C	T	0.21	PASS	AC=1;AF=0.50;AN=2;DB;DP=22;Dels=0.00;HRun=0;HaplotypeScore=9.27;MQ=35.40;MQ0=1;OQ=103.77;QD=4.72;SB=-3.99	GT:AD:DP:GL:GQ	0/1:16,6:17:-18.78,-5.12,-41.68:99
-chr1	1903283	.	G	A	8.07	PASS	AC=1;AF=0.50;AN=2;DP=34;Dels=0.00;HRun=0;HaplotypeScore=3.95;MQ=39.68;MQ0=0;OQ=372.77;QD=10.96;SB=-73.09	GT:AD:DP:GL:GQ	0/1:17,16:22:-47.20,-6.63,-29.71:99
-chr1	1903404	.	C	T	39.84	LowQual	AC=1;AF=0.50;AN=2;DP=23;Dels=0.00;HRun=0;HaplotypeScore=6.15;MQ=48.13;MQ0=1;QD=1.73;SB=-35.65	GT:AD:DP:GL:GQ	0/1:19,4:16:-12.09,-4.83,-40.40:72.68
-chr1	1903423	rs58434854	A	G	0.71	PASS	AC=1;AF=0.50;AN=2;DB;DP=29;Dels=0.00;HRun=0;HaplotypeScore=7.95;MQ=46.73;MQ0=3;OQ=182.58;QD=6.30;SB=-71.95	GT:AD:DP:GL:GQ	0/1:18,11:23:-28.48,-6.94,-51.85:99
-chr1	1903439	rs58923167	C	T	0.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=34;Dels=0.00;HRun=0;HaplotypeScore=17.53;MQ=42.29;MQ0=6;OQ=136.42;QD=4.01;SB=-25.62	GT:AD:DP:GL:GQ	0/1:26,8:22:-23.56,-6.63,-53.26:99
-chr1	1903440	.	G	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=34;Dels=0.00;HRun=0;HaplotypeScore=17.53;MQ=42.29;MQ0=6;OQ=187.84;QD=5.52;SB=-110.54	GT:AD:DP:GL:GQ	0/1:26,8:23:-29.00,-6.94,-48.31:99
-chr1	1903458	rs55879512	A	G	0.08	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=7.35;MQ=44.38;MQ0=5;OQ=75.85;QD=1.85;SB=-63.75	GT:AD:DP:GL:GQ	0/1:26,14:24:-18.11,-7.24,-65.52:99
-chr1	1903493	.	G	A	1.04	PASS	AC=1;AF=0.50;AN=2;DP=39;Dels=0.00;HRun=0;HaplotypeScore=1.77;MQ=47.31;MQ0=2;OQ=168.07;QD=4.31;SB=-57.28	GT:AD:DP:GL:GQ	0/1:31,8:25:-27.63,-7.54,-58.38:99
-chr1	1903509	.	T	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=34;Dels=0.00;HRun=0;HaplotypeScore=11.62;MQ=39.25;MQ0=5;OQ=92.69;QD=2.73;SB=5.04	GT:AD:DP:GL:GQ	0/1:25,9:18:-17.98,-5.43,-46.46:99
-chr1	1903540	.	G	A	33.23	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=29;Dels=0.00;HRun=1;HaplotypeScore=27.81;MQ=22.93;MQ0=9;QD=1.15;SB=-3.98	GT:AD:DP:GL:GQ	0/1:26,3:5:-8.11,-1.51,-11.06:66.06
-chr1	1903547	.	T	A	34.51	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=26;Dels=0.00;HRun=0;HaplotypeScore=29.76;MQ=15.81;MQ0=9;QD=1.33;SB=-42.38	GT:AD:DP:GL:GQ	0/1:19,6:3:-7.64,-0.90,-3.64:27.36
-chr1	1903587	rs4648605	C	T	0.08	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=14.50;MQ=19.08;MQ0=11;OQ=79.27;QD=1.98;SB=-3.99	GT:AD:DP:GL:GQ	0/1:27,13:10:-14.23,-3.02,-19.87:99
-chr1	1904125	rs4648745	T	C	247.21	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=1.47;MQ=59.25;MQ0=0;OQ=694.34;QD=11.20;SB=-245.29	GT:AD:DP:GL:GQ	0/1:33,29:61:-91.10,-18.39,-129.32:99
-chr1	1904347	rs4648746	A	G	176.14	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=1.31;MQ=59.39;MQ0=0;OQ=338.48;QD=8.91;SB=-150.90	GT:AD:DP:GL:GQ	0/1:21,17:36:-47.98,-10.85,-82.55:99
-chr1	1904465	rs28737396	A	T	328.52	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1094.85;QD=18.56;SB=-354.42	GT:AD:DP:GL:GQ	0/1:24,35:59:-130.54,-17.77,-93.43:99
-chr1	1904806	rs61776990	C	T	103.75	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=1.32;MQ=56.91;MQ0=0;OQ=639.60;QD=17.29;SB=-221.92	GT:AD:DP:GL:GQ	0/1:15,22:35:-77.80,-10.56,-46.60:99
-chr1	1905885	rs4648747	G	A	213.38	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=1.85;MQ=54.80;MQ0=0;OQ=758.00;QD=15.16;SB=-295.79	GT:AD:DP:GL:GQ	0/1:26,24:49:-93.85,-14.76,-88.23:99
-chr1	1905894	rs13303091	C	T	219.74	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=1.88;MQ=53.79;MQ0=0;OQ=656.87;QD=13.14;SB=-261.28	GT:AD:DP:GL:GQ	0/1:27,22:45:-82.54,-13.57,-75.64:99
-chr1	1905900	rs13302998	T	C	119.27	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=2.46;MQ=54.88;MQ0=0;OQ=405.99;QD=8.83;SB=-193.60	GT:AD:DP:GL:GQ	0/1:27,19:44:-57.15,-13.26,-102.12:99
-chr1	1906158	rs13302999	C	T	171.25	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=1.70;MQ=58.63;MQ0=0;OQ=813.49;QD=15.95;SB=-262.17	GT:AD:DP:GL:GQ	0/1:25,26:49:-99.40,-14.77,-77.74:99
-chr1	1906389	rs3795284	C	T	21.30	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=3;HaplotypeScore=2.33;MQ=60.00;MQ0=0;OQ=758.20;QD=14.04;SB=-278.28	GT:AD:DP:GL:GQ	0/1:28,26:52:-94.77,-15.67,-93.68:99
-chr1	1906447	rs3795283	G	T	377.61	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=1.33;MQ=60.00;MQ0=0;OQ=998.45;QD=16.37;SB=-378.14	GT:AD:DP:GL:GQ	0/1:26,35:60:-121.20,-18.07,-93.96:99
-chr1	1906750	rs3795280	C	T	425.49	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.55;MQ0=0;OQ=568.99;QD=13.55;SB=-250.75	GT:AD:DP:GL:GQ	0/1:24,18:42:-72.83,-12.65,-87.72:99
-chr1	1906918	rs34331632	A	G	117.25	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=2.75;MQ=58.45;MQ0=0;OQ=396.71;QD=8.82;SB=-212.27	GT:AD:DP:GL:GQ	0/1:26,19:41:-55.32,-12.36,-92.05:99
-chr1	1907309	rs34567059	T	G	9.37	PASS	AC=1;AF=0.50;AN=2;DB;DP=32;Dels=0.00;HRun=3;HaplotypeScore=0.99;MQ=59.28;MQ0=0;OQ=266.80;QD=8.34;SB=-138.72	GT:AD:DP:GL:GQ	0/1:18,13:26:-37.80,-7.84,-51.38:99
-chr1	1907332	rs13303173	G	A	219.11	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.91;MQ=59.50;MQ0=0;OQ=402.42;QD=8.75;SB=-215.71	GT:AD:DP:GL:GQ	0/1:30,16:41:-55.89,-12.37,-85.41:99
-chr1	1907475	rs13302992	A	T	11.71	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=5.57;MQ=54.24;MQ0=0;OQ=373.16;QD=8.88;SB=-86.42	GT:AD:DP:GL:GQ	0/1:20,21:33:-50.55,-9.95,-63.90:99
-chr1	1907510	rs13302993	T	C	10.65	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=3;HaplotypeScore=3.38;MQ=53.93;MQ0=0;OQ=691.42;QD=12.35;SB=-327.29	GT:AD:DP:GL:GQ	0/1:24,32:51:-87.80,-15.38,-95.79:99
-chr1	1907689	rs4648748	T	G	25.50	PASS	AC=1;AF=0.50;AN=2;DB;DP=32;Dels=0.00;HRun=1;HaplotypeScore=1.34;MQ=60.00;MQ0=0;OQ=189.73;QD=5.93;SB=-95.86	GT:AD:DP:GL:GQ	0/1:21,11:31:-31.60,-9.34,-75.09:99
-chr1	1907731	rs4648749	T	A	88.57	PASS	AC=2;AF=1.00;AN=2;DB;DP=32;Dels=0.00;HRun=0;HaplotypeScore=0.33;MQ=58.55;MQ0=0;OQ=1056.82;QD=33.03;SB=-482.74	GT:AD:DP:GL:GQ	1/1:0,32:31:-109.29,-9.34,-0.02:93.25
-chr1	1907768	rs4648750	A	C	41.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=32;Dels=0.00;HRun=1;HaplotypeScore=1.92;MQ=58.69;MQ0=0;OQ=501.71;QD=15.68;SB=-178.91	GT:AD:DP:GL:GQ	0/1:13,18:31:-62.79,-9.34,-46.86:99
-chr1	1908051	rs4233028	A	G	0.83	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=1;HaplotypeScore=11.36;MQ=58.24;MQ0=0;OQ=590.53;QD=10.36;SB=-318.09	GT:AD:DP:GL:GQ	0/1:28,29:51:-77.71,-15.37,-108.19:99
-chr1	1908348	rs4350140	A	G	295.92	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=1.05;MQ=60.00;MQ0=0;OQ=483.27;QD=11.51;SB=-249.48	GT:AD:DP:GL:GQ	0/1:22,19:40:-63.66,-12.05,-87.28:99
-chr1	1908395	rs4535948	A	T	243.05	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=1.68;MQ=60.00;MQ0=0;OQ=561.16;QD=14.03;SB=-291.34	GT:AD:DP:GL:GQ	0/1:20,20:38:-70.85,-11.45,-68.83:99
-chr1	1908444	rs4603072	C	T	95.97	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=3.91;MQ=59.00;MQ0=0;OQ=825.49;QD=16.19;SB=-274.16	GT:AD:DP:GL:GQ	0/1:24,27:46:-99.69,-13.86,-72.18:99
-chr1	1908455	rs4466593	G	A	154	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=1.99;MQ=59.00;MQ0=0;OQ=749.94;QD=14.70;SB=-209.69	GT:AD:DP:GL:GQ	0/1:25,26:47:-92.45,-14.17,-73.64:99
-chr1	1910822	rs13303020	T	C	316	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=58.07;MQ0=0;OQ=856.90;QD=15.30;SB=-348.06	GT:AD:DP:GL:GQ	0/1:22,34:54:-105.26,-16.29,-79.82:99
-chr1	1912163	rs13303195	C	T	281.64	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=58.42;MQ0=0;OQ=1071.80;QD=15.76;SB=-460.45	GT:AD:DP:GL:GQ	0/1:35,33:67:-130.66,-20.19,-113.97:99
-chr1	1912512	rs13303233	T	C	59.35	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=5.24;MQ=56.21;MQ0=1;OQ=632.02;QD=12.15;SB=-238.92	GT:AD:DP:GL:GQ	0/1:24,28:49:-81.26,-14.77,-90.12:99
-chr1	1912694	rs6605075	T	C	195.05	PASS	AC=2;AF=1.00;AN=2;DB;DP=97;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.81;MQ0=0;OQ=3518.98;QD=36.28;SB=-1667.64	GT:AD:DP:GL:GQ	1/1:0,97:97:-350.90,-29.22,-0.04:99
-chr1	1912989	rs13303332	A	G	477.80	PASS	AC=1;AF=0.50;AN=2;DB;DP=84;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=56.92;MQ0=0;OQ=1063.77;QD=12.66;SB=-392.88	GT:AD:DP:GL:GQ	0/1:42,42:74:-131.95,-22.29,-145.18:99
-chr1	1913060	rs13303315	T	C	275.58	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=1;HaplotypeScore=1.05;MQ=55.32;MQ0=0;OQ=932.62;QD=13.14;SB=-432.88	GT:AD:DP:GL:GQ	0/1:32,39:67:-116.74,-20.20,-124.71:99
-chr1	1913077	rs7529662	A	G	28.09	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=4.09;MQ=51.94;MQ0=0;OQ=415.73;QD=6.60;SB=-158.33	GT:AD:DP:GL:GQ	0/1:37,26:55:-61.45,-16.59,-136.84:99
-chr1	1913121	rs6605076	G	A	18.01	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=1;HaplotypeScore=2.95;MQ=38.45;MQ0=0;OQ=1375.58;QD=22.55;SB=-647.86	GT:AD:DP:GL:GQ	1/1:0,60:36:-143.81,-13.38,-2.67:99
-chr1	1913134	rs6662056	C	T	90.11	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=1;HaplotypeScore=0.67;MQ=31.19;MQ0=0;OQ=470.14;QD=8.11;SB=-253.79	GT:AD:DP:GL:GQ	0/1:33,25:32:-59.95,-9.65,-52.35:99
-chr1	1913140	rs6605077	T	C	265.58	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=1;HaplotypeScore=0.82;MQ=26.77;MQ0=0;OQ=931.68;QD=17.25;SB=-415.14	GT:AD:DP:GL:GQ	1/1:0,54:27:-96.76,-8.13,-0.01:81.23
-chr1	1913166	rs6605078	A	G	225.40	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=29.40;MQ0=0;OQ=379.61;QD=9.73;SB=-193.70	GT:AD:DP:GL:GQ	1/1:0,39:13:-41.56,-3.92,-0.01:39.09
-chr1	1913525	rs13303140	A	G	349.47	PASS	AC=1;AF=0.50;AN=2;DB;DP=34;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=55.90;MQ0=0;OQ=337.35;QD=9.92;SB=-170.51	GT:AD:DP:GL:GQ	0/1:16,18:26:-44.86,-7.84,-45.87:99
-chr1	1913541	rs6675865	A	G	238.98	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=54.81;MQ0=0;OQ=476.22;QD=12.53;SB=-203.64	GT:AD:DP:GL:GQ	0/1:19,19:32:-60.55,-9.64,-59.13:99
-chr1	1914266	rs35822535	A	G	10.16	PASS	AC=1;AF=0.50;AN=2;DB;DP=31;Dels=0.00;HRun=0;HaplotypeScore=4.48;MQ=52.01;MQ0=0;OQ=172.60;QD=5.57;SB=-106.80	GT:AD:DP:GL:GQ	0/1:17,12:25:-30.72,-10.17,-62.92:99
-chr1	1914406	rs28674034	C	A	137.53	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=1.38;MQ=56.09;MQ0=0;OQ=479.30;QD=11.15;SB=-93.09	GT:AD:DP:GL:GQ	0/1:24,19:37:-62.36,-11.14,-73.40:99
-chr1	1914407	.	C	G	17.06	PASS	AC=1;AF=0.50;AN=2;DP=44;Dels=0.00;HRun=1;HaplotypeScore=1.38;MQ=56.18;MQ0=0;OQ=578.11;QD=13.14;SB=-126.71	GT:AD:DP:GL:GQ	0/1:24,20:35:-71.66,-10.56,-69.93:99
-chr1	1914645	rs58504758	G	A	76.95	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=56.31;MQ0=0;OQ=649.38;QD=14.43;SB=-87.56	GT:AD:DP:GL:GQ	0/1:23,22:44:-81.48,-13.26,-81.33:99
-chr1	1914669	rs57460771	C	G	59.99	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=52.90;MQ0=0;OQ=635.24;QD=15.88;SB=-152.79	GT:AD:DP:GL:GQ	0/1:17,23:37:-77.97,-11.16,-71.80:99
-chr1	1915019	rs5021356	C	T	38.12	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.58;MQ=38.83;MQ0=0;OQ=299.26;QD=5.16;SB=-51.25	GT:AD:DP:GL:GQ	0/1:26,32:29:-41.96,-8.75,-54.57:99
-chr1	1915025	rs5021357	C	T	0.49	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=37.79;MQ0=0;OQ=104.46;QD=1.66;SB=-36.16	GT:AD:DP:GL:GQ	0/1:31,32:32:-23.37,-9.64,-89.65:99
-chr1	1915153	.	C	T	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=42;Dels=0.00;HRun=0;HaplotypeScore=18.97;MQ=41.21;MQ0=1;OQ=317.64;QD=7.56;SB=-31.63	GT:AD:DP:GL:GQ	0/1:23,16:24:-42.29,-7.24,-39.07:99
-chr1	1915186	rs2377036	C	A	0.52	PASS	AC=2;AF=1.00;AN=2;DB;DP=34;Dels=0.00;HRun=1;HaplotypeScore=2.46;MQ=38.80;MQ0=2;OQ=789.31;QD=23.22;SB=-127.84	GT:AD:DP:GL:GQ	1/1:3,31:25:-82.54,-7.54,-0.02:75.13
-chr1	1915197	.	C	T	2.41	PASS	AC=1;AF=0.50;AN=2;DP=35;Dels=0.00;HRun=0;HaplotypeScore=0.97;MQ=35.96;MQ0=2;OQ=151.83;QD=4.34;SB=2.02	GT:AD:DP:GL:GQ	0/1:24,11:24:-25.70,-7.23,-56.48:99
-chr1	1915324	rs2889540	C	T	459.53	PASS	AC=2;AF=1.00;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=54.97;MQ0=0;OQ=2370.24;QD=35.38;SB=-497.01	GT:AD:DP:GL:GQ	1/1:1,66:63:-240.64,-18.99,-0.03:99
-chr1	1915581	rs6691182	G	A	155.40	PASS	AC=1;AF=0.50;AN=2;DB;DP=86;Dels=0.00;HRun=0;HaplotypeScore=1.77;MQ=58.09;MQ0=0;OQ=1565.00;QD=18.20;SB=-799.86	GT:AD:DP:GL:GQ	0/1:40,46:84:-185.10,-25.32,-125.47:99
-chr1	1915947	rs6661597	T	C	434.36	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.43;MQ0=0;OQ=753.37;QD=11.59;SB=-273.59	GT:AD:DP:GL:GQ	0/1:32,33:62:-97.31,-18.69,-126.97:99
-chr1	1915962	rs6675751	G	C	346.68	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1124.09;QD=17.56;SB=-315.97	GT:AD:DP:GL:GQ	0/1:34,30:64:-134.99,-19.30,-134.99:99
-chr1	1916138	rs6667687	A	T	24.65	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=1;HaplotypeScore=5.93;MQ=59.44;MQ0=0;OQ=1046.27;QD=14.14;SB=-543.64	GT:AD:DP:GL:GQ	0/1:37,36:71:-129.30,-21.39,-135.06:99
-chr1	1917124	rs13302991	A	G	77.08	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=48.19;MQ0=0;OQ=664.15;QD=15.09;SB=-132.68	GT:AD:DP:GL:GQ	0/1:17,27:41:-82.05,-12.36,-62.14:99
-chr1	1918235	rs58325500	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=81;Dels=0.01;HRun=15;HaplotypeScore=12.28;MQ=47.41;MQ0=2;OQ=54.80;QD=0.68;SB=8.48	GT:AD:DP:GL:GQ	0/1:66,14:56:-25.35,-16.59,-150.42:87.64
-chr1	1918448	rs28827857	G	A	289.35	PASS	AC=1;AF=0.50;AN=2;DB;DP=69;Dels=0.00;HRun=0;HaplotypeScore=0.48;MQ=57.61;MQ0=0;OQ=1091.40;QD=15.82;SB=-363.89	GT:AD:DP:GL:GQ	0/1:36,33:66:-132.32,-19.90,-105.59:99
-chr1	1918459	rs28770275	C	T	156.31	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=57.33;MQ0=0;OQ=990.70;QD=15.98;SB=-272.19	GT:AD:DP:GL:GQ	0/1:31,31:62:-121.04,-18.69,-98.12:99
-chr1	1919267	rs6672175	T	C	222.23	PASS	AC=1;AF=0.50;AN=2;DB;DP=78;Dels=0.00;HRun=0;HaplotypeScore=3.35;MQ=59.22;MQ0=0;OQ=1139.84;QD=14.61;SB=-513.90	GT:AD:DP:GL:GQ	0/1:38,40:77:-140.46,-23.19,-152.92:99
-chr1	1919526	rs7532409	A	G	229.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=-0.06;MQ=59.27;MQ0=0;OQ=832.47;QD=13.21;SB=-385.03	GT:AD:DP:GL:GQ	0/1:26,37:58:-104.01,-17.48,-104.69:99
-chr1	1919694	rs7532529	A	C	228.41	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=1.50;MQ=57.10;MQ0=0;OQ=714.32;QD=14.58;SB=-265.84	GT:AD:DP:GL:GQ	0/1:24,25:47:-88.87,-14.15,-84.13:99
-chr1	1919719	rs7527169	T	C	335.23	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=55.16;MQ0=0;OQ=729.87;QD=16.59;SB=-259.34	GT:AD:DP:GL:GQ	0/1:16,28:43:-89.23,-12.96,-64.51:99
-chr1	1919737	rs7520124	C	A	233.30	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=56.52;MQ0=0;OQ=916.99;QD=20.84;SB=-414.85	GT:AD:DP:GL:GQ	0/1:15,29:44:-108.24,-13.26,-45.66:99
-chr1	1919954	rs7542825	G	A	154.86	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=1.45;MQ=58.01;MQ0=0;OQ=805.39;QD=15.79;SB=-224.54	GT:AD:DP:GL:GQ	0/1:26,25:50:-98.90,-15.08,-78.21:99
-chr1	1920251	rs6605079	C	G	333.78	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.95;MQ0=0;OQ=1146.24;QD=15.08;SB=-200.61	GT:AD:DP:GL:GQ	0/1:45,31:76:-140.81,-22.90,-188.17:99
-chr1	1920372	rs6605080	A	G	234.56	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=1;HaplotypeScore=0.97;MQ=57.79;MQ0=0;OQ=682.29;QD=12.87;SB=-281.00	GT:AD:DP:GL:GQ	0/1:25,28:47:-85.67,-14.16,-99.05:99
-chr1	1920614	rs6605081	C	T	426.14	PASS	AC=1;AF=0.50;AN=2;DB;DP=82;Dels=0.00;HRun=0;HaplotypeScore=1.03;MQ=58.39;MQ0=0;OQ=1403.83;QD=17.12;SB=-667.29	GT:AD:DP:GL:GQ	0/1:39,43:80:-167.77,-24.10,-135.75:99
-chr1	1920665	rs6605082	G	C	238.27	PASS	AC=1;AF=0.50;AN=2;DB;DP=78;Dels=0.00;HRun=1;HaplotypeScore=1.47;MQ=58.49;MQ0=0;OQ=1324.95;QD=16.99;SB=-669.29	GT:AD:DP:GL:GQ	0/1:42,36:76:-158.70,-22.92,-158.25:99
-chr1	1920803	rs13303035	C	T	159	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=1;HaplotypeScore=2.47;MQ=59.45;MQ0=0;OQ=1062.14;QD=13.98;SB=-530.37	GT:AD:DP:GL:GQ	0/1:41,35:73:-131.51,-22.01,-125.50:99
-chr1	1920841	rs13303352	T	C	445.18	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.82;MQ0=0;OQ=837.48;QD=11.63;SB=-306.06	GT:AD:DP:GL:GQ	0/1:38,34:70:-108.13,-21.10,-146.79:99
-chr1	1921055	rs13303031	G	T	88.89	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=2;HaplotypeScore=1.13;MQ=58.92;MQ0=0;OQ=786.34;QD=15.12;SB=-342.30	GT:AD:DP:GL:GQ	0/1:26,26:52:-97.58,-15.66,-91.48:99
-chr1	1921356	rs6685055	A	G	17.33	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=2;HaplotypeScore=2.97;MQ=59.49;MQ0=0;OQ=448.41;QD=9.96;SB=-237.28	GT:AD:DP:GL:GQ	0/1:26,19:44:-61.39,-13.26,-100.60:99
-chr1	1921389	rs6679335	T	G	83.14	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=2;HaplotypeScore=1.67;MQ=59.13;MQ0=0;OQ=685.03;QD=12.93;SB=-353.06	GT:AD:DP:GL:GQ	0/1:29,24:52:-87.45,-15.66,-100.08:99
-chr1	1922327	rs28588769	G	A	183.28	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=58.89;MQ0=1;OQ=778.96;QD=15.58;SB=-259.18	GT:AD:DP:GL:GQ	0/1:25,25:47:-95.35,-14.17,-73.16:99
-chr1	1922868	rs2376808	G	A	157.54	PASS	AC=1;AF=0.50;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=3.27;MQ=59.34;MQ0=0;OQ=723.69;QD=10.34;SB=-347.08	GT:AD:DP:GL:GQ	0/1:45,25:64:-94.96,-19.30,-123.08:99
-chr1	1922895	rs2376807	G	A	266.63	PASS	AC=1;AF=0.50;AN=2;DB;DP=87;Dels=0.00;HRun=1;HaplotypeScore=1.59;MQ=58.98;MQ0=0;OQ=1217.48;QD=13.99;SB=-488.00	GT:AD:DP:GL:GQ	0/1:49,38:84:-150.33,-25.30,-168.79:99
-chr1	1923727	rs4434797	T	C	63.04	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=58.46;MQ0=0;OQ=1150.76;QD=28.77;SB=-542.44	GT:AD:DP:GL:GQ	1/1:1,39:35:-118.68,-10.55,-0.02:99
-chr1	1923976	rs2376806	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=7;HaplotypeScore=3.79;MQ=59.30;MQ0=0;OQ=886.58;QD=14.78;SB=-242.95	GT:AD:DP:GL:GQ	0/1:31,29:60:-110.01,-18.07,-107.98:99
-chr1	1924507	rs6682175	C	G	459.83	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.45;MQ0=0;OQ=1286.38;QD=16.93;SB=-654.00	GT:AD:DP:GL:GQ	0/1:39,37:74:-154.22,-22.30,-163.90:99
-chr1	1925440	.	A	C	17.47	PASS	AC=1;AF=0.50;AN=2;DP=24;Dels=0.00;HRun=0;HaplotypeScore=0.87;MQ=54.31;MQ0=0;OQ=233.12;QD=9.71;SB=-10.00	GT:AD:DP:GL:GQ	0/1:12,12:20:-32.62,-6.03,-38.03:99
-chr1	1925994	rs13303219	G	A	173.92	PASS	AC=2;AF=1.00;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=58.24;MQ0=0;OQ=2130.07;QD=38.04;SB=-927.23	GT:AD:DP:GL:GQ	1/1:0,56:55:-216.61,-16.57,-0.02:99
-chr1	1927245	.	C	A	6.32	PASS	AC=1;AF=0.50;AN=2;DP=57;Dels=0.00;HRun=0;HaplotypeScore=1.74;MQ=50.81;MQ0=0;OQ=1490.54;QD=26.15;SB=-627.15	GT:AD:DP:GL:GQ	0/1:11,46:54:-168.60,-16.27,-27.03:99
-chr1	1929194	.	G	A	93.04	PASS	AC=1;AF=0.50;AN=2;DP=57;Dels=0.00;HRun=1;HaplotypeScore=1.76;MQ=54.76;MQ0=0;OQ=934.74;QD=16.40;SB=-478.51	GT:AD:DP:GL:GQ	0/1:29,28:56:-113.63,-16.87,-101.37:99
-chr1	1929934	.	G	A	0.59	PASS	AC=1;AF=0.50;AN=2;DP=47;Dels=0.00;HRun=0;HaplotypeScore=6.95;MQ=58.36;MQ0=1;OQ=902.25;QD=19.20;SB=-435.95	GT:AD:DP:GL:GQ	0/1:20,27:46:-107.37,-13.86,-69.60:99
-chr1	1931518	rs6605072	C	T	176.76	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=58.65;MQ0=0;OQ=1960.94;QD=37.71;SB=-913.32	GT:AD:DP:GL:GQ	1/1:0,52:51:-199.70,-15.37,-0.02:99
-chr1	1931688	rs13303071	T	C	1556.10	SnpCluster	AC=2;AF=1.00;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=48.24;MQ0=0;QD=27.79;SB=-792.66	GT:AD:DP:GL:GQ	1/1:0,56:50:-159.24,-15.08,-0.05:99
-chr1	1931693	.	A	G	1848.16	SnpCluster	AC=2;AF=1.00;AN=2;DP=55;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=49.03;MQ0=0;QD=33.60;SB=-934.96	GT:AD:DP:GL:GQ	1/1:0,55:53:-188.42,-15.97,-0.02:99
-chr1	1931694	.	T	A	1917.61	SnpCluster	AC=2;AF=1.00;AN=2;DP=54;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=49.24;MQ0=0;QD=35.51;SB=-952.61	GT:AD:DP:GL:GQ	1/1:0,54:52:-195.36,-15.66,-0.02:99
-chr1	1931789	rs6656398	G	A	540.24	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.77;MQ0=0;OQ=2040.90;QD=38.51;SB=-804.04	GT:AD:DP:GL:GQ	1/1:0,53:51:-207.69,-15.36,-0.01:99
-chr1	1931893	rs13303124	C	A	616.35	PASS	AC=2;AF=1.00;AN=2;DB;DP=79;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.54;MQ0=0;OQ=2901.26;QD=36.72;SB=-1390.14	GT:AD:DP:GL:GQ	1/1:0,79:79:-293.73,-23.79,-0.02:99
-chr1	1933151	rs6672254	C	T	447.19	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.41;MQ0=0;OQ=1292.37;QD=33.14;SB=-431.53	GT:AD:DP:GL:GQ	1/1:0,39:34:-132.84,-10.25,-0.02:99
-chr1	1933961	rs6605073	C	G	112.88	PASS	AC=2;AF=1.00;AN=2;DB;DP=81;Dels=0.00;HRun=0;HaplotypeScore=1.83;MQ=54.93;MQ0=0;OQ=3433.93;QD=42.39;SB=-1558.19	GT:AD:DP:GL:GQ	1/1:0,81:81:-342.39,-24.42,-0.04:99
-chr1	1936451	rs13303016	G	A	86.32	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=1.29;MQ=58.88;MQ0=0;OQ=2221.58;QD=38.30;SB=-691.42	GT:AD:DP:GL:GQ	1/1:0,56:56:-225.76,-16.87,-0.02:99
-chr1	1936669	rs4648752	C	T	217.65	PASS	AC=2;AF=1.00;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=0.82;MQ=60.00;MQ0=0;OQ=2508.96;QD=37.45;SB=-1210.99	GT:AD:DP:GL:GQ	1/1:0,67:64:-254.50,-19.28,-0.02:99
-chr1	1937615	rs2376804	C	A	568.58	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.26;MQ0=0;OQ=1581.66;QD=34.38;SB=-723.87	GT:AD:DP:GL:GQ	1/1:0,46:45:-161.77,-13.56,-0.02:99
-chr1	1938260	rs13303344	C	A	671.62	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.98;MQ0=0;OQ=1865.08;QD=33.91;SB=-728.87	GT:AD:DP:GL:GQ	1/1:0,55:54:-190.12,-16.27,-0.02:99
-chr1	1938665	rs4481796	T	C	1.68	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=1;HaplotypeScore=7.00;MQ=59.19;MQ0=0;OQ=1999.82;QD=33.90;SB=-790.00	GT:AD:DP:GL:GQ	1/1:1,58:55:-203.58,-16.56,-0.01:99
-chr1	1939404	rs3121818	G	T	55.95	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=4.13;MQ=57.70;MQ0=0;OQ=2038.83;QD=32.88;SB=-977.56	GT:AD:DP:GL:GQ	1/1:1,61:60:-210.75,-18.07,-3.28:99
-chr1	1940481	rs28603108	G	A	85.60	PASS	AC=2;AF=1.00;AN=2;DB;DP=8;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=244.10;QD=30.51;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,8:7:-27.99,-2.11,-0.00:21.07
-chr1	1941687	rs3121819	A	G	228.42	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.63;MQ0=0;OQ=2020.01;QD=32.58;SB=-994.40	GT:AD:DP:GL:GQ	1/1:0,62:62:-205.63,-18.69,-0.05:99
-chr1	1942465	rs28502222	T	C	371.08	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.43;MQ0=0;OQ=1719.40;QD=30.16;SB=-855.54	GT:AD:DP:GL:GQ	1/1:0,57:54:-175.57,-16.29,-0.05:99
-chr1	1942470	rs28407473	T	C	563.92	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.48;MQ0=0;OQ=1937.81;QD=31.25;SB=-894.53	GT:AD:DP:GL:GQ	1/1:0,62:60:-197.41,-18.09,-0.05:99
-chr1	1942642	rs3128318	C	A	368.40	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.81;MQ0=0;OQ=1363.24;QD=34.95;SB=-493.39	GT:AD:DP:GL:GQ	1/1:0,39:38:-139.92,-11.45,-0.01:99
-chr1	1943112	rs3128321	T	C	309.66	PASS	AC=2;AF=1.00;AN=2;DB;DP=30;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.60;MQ0=0;OQ=865.40;QD=28.85;SB=-224.64	GT:AD:DP:GL:GQ	1/1:0,30:27:-90.14,-8.14,-0.02:81.21
-chr1	1943436	rs28595482	G	A	148.08	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=59.62;MQ0=0;OQ=1902.67;QD=38.83;SB=-885.18	GT:AD:DP:GL:GQ	1/1:0,49:48:-193.87,-14.46,-0.01:99
-chr1	1943672	rs4648614	C	T	198.11	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=59.32;MQ0=0;OQ=2028.99;QD=36.89;SB=-959.37	GT:AD:DP:GL:GQ	1/1:0,55:53:-206.51,-15.97,-0.03:99
-chr1	1944296	rs3128322	G	A	216.26	PASS	AC=2;AF=1.00;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=1.21;MQ=59.01;MQ0=0;OQ=2427.18;QD=36.78;SB=-1173.08	GT:AD:DP:GL:GQ	1/1:0,65:64:-246.33,-19.29,-0.03:99
-chr1	1944940	rs3128323	G	A	20.33	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=4.15;MQ=59.13;MQ0=0;OQ=1516.55;QD=28.61;SB=-577.76	GT:AD:DP:GL:GQ	1/1:0,53:41:-155.26,-12.36,-0.02:99
-chr1	1945844	rs2889475	C	T	626.28	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.31;MQ0=0;OQ=2161.84;QD=35.44;SB=-988.03	GT:AD:DP:GL:GQ	1/1:0,61:56:-219.79,-16.87,-0.02:99
-chr1	1946222	rs2376805	G	A	202.65	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=1.31;MQ=58.86;MQ0=0;OQ=2273.19;QD=37.27;SB=-1064.36	GT:AD:DP:GL:GQ	1/1:0,61:58:-230.92,-17.47,-0.02:99
-chr1	1946897	rs2229110	T	C	11.35	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=1;HaplotypeScore=1.69;MQ=58.29;MQ0=0;OQ=1169.00;QD=28.51;SB=-410.54	GT:AD:DP:GL:GQ	1/1:1,40:35:-120.50,-10.54,-0.02:99
-chr1	1947159	rs3820007	C	T	19.86	PASS	AC=2;AF=1.00;AN=2;DB;DP=28;Dels=0.00;HRun=0;HaplotypeScore=1.67;MQ=59.17;MQ0=0;OQ=557.21;QD=19.90;SB=-159.09	GT:AD:DP:GL:GQ	1/1:0,24:17:-62.02,-7.79,-2.71:50.81
-chr1	1949121	rs28574670	A	G	500.63	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.60;MQ0=0;OQ=1666.55;QD=35.46;SB=-850.35	GT:AD:DP:GL:GQ	1/1:0,47:47:-170.25,-14.16,-0.02:99
-chr1	1949838	rs28409373	C	T	14.57	PASS	AC=2;AF=1.00;AN=2;DB;DP=30;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=59.07;MQ0=0;OQ=1034.54;QD=34.48;SB=-177.68	GT:AD:DP:GL:GQ	1/1:0,30:29:-107.06,-8.75,-0.02:87.26
-chr1	1950786	rs28581504	T	C	332.55	PASS	AC=2;AF=1.00;AN=2;DB;DP=31;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.64;MQ0=0;OQ=1013.22;QD=32.68;SB=-423.78	GT:AD:DP:GL:GQ	1/1:0,31:30:-104.92,-9.04,-0.02:90.23
-chr1	1953035	rs13302932	A	G	11.68	PASS	AC=2;AF=1.00;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=3.55;MQ=60.00;MQ0=0;OQ=905.11;QD=24.46;SB=-434.83	GT:AD:DP:GL:GQ	1/1:0,37:30:-94.12,-9.05,-0.03:90.20
-chr1	1953275	rs17715203	A	G	438.40	PASS	AC=2;AF=1.00;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.38;MQ0=0;OQ=1126.75;QD=30.45;SB=-438.29	GT:AD:DP:GL:GQ	1/1:0,37:35:-116.28,-10.55,-0.02:99
-chr1	1955750	.	G	C	30.56	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=114;Dels=0.00;HRun=3;HaplotypeScore=5.70;MQ=42.68;MQ0=2;QD=0.27;SB=83.98	GT:AD:DP:GL:GQ	0/1:64,50:68:-26.83,-20.49,-269.17:63.39
-chr1	1955789	.	C	G	28.79	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=110;Dels=0.00;HRun=1;HaplotypeScore=3.29;MQ=41.60;MQ0=2;QD=0.26;SB=62.45	GT:AD:DP:GL:GQ	0/1:60,50:64:-25.45,-19.29,-247.08:61.62
-chr1	1956476	rs3128311	A	G	7.52	PASS	AC=2;AF=1.00;AN=2;DB;DP=35;Dels=0.00;HRun=2;HaplotypeScore=2.79;MQ=58.13;MQ0=0;OQ=1189.30;QD=33.98;SB=-560.89	GT:AD:DP:GL:GQ	1/1:0,35:34:-122.53,-10.24,-0.01:99
-chr1	1956519	rs3128312	A	G	0.03	FDRtranche0.10to1.00	AC=2;AF=1.00;AN=2;DB;DP=33;Dels=0.00;HRun=5;HaplotypeScore=2.16;MQ=57.85;MQ0=0;OQ=1010.92;QD=30.63;SB=-251.77	GT:AD:DP:GL:GQ	1/1:0,33:30:-104.69,-9.04,-0.02:90.25
-chr1	1956874	.	G	A	318.30	PASS	AC=2;AF=1.00;AN=2;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.05;MQ0=0;OQ=1884.66;QD=38.46;SB=-687.34	GT:AD:DP:GL:GQ	1/1:0,49:48:-192.06,-14.46,-0.01:99
-chr1	1957814	rs2376803	C	T	3.63	PASS	AC=2;AF=1.00;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=5.41;MQ=59.46;MQ0=0;OQ=1636.24;QD=38.05;SB=-662.40	GT:AD:DP:GL:GQ	1/1:0,43:42:-167.22,-12.65,-0.01:99
-chr1	1958691	rs9442614	A	G	93.39	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=59.19;MQ0=0;OQ=1548.19;QD=27.16;SB=-690.61	GT:AD:DP:GL:GQ	1/1:0,57:50:-158.45,-15.08,-0.05:99
-chr1	1958819	rs13303086	G	A	42.72	PASS	AC=2;AF=1.00;AN=2;DB;DP=37;Dels=0.00;HRun=1;HaplotypeScore=0.32;MQ=59.38;MQ0=0;OQ=1355.91;QD=36.65;SB=-559.75	GT:AD:DP:GL:GQ	1/1:0,37:35:-139.19,-10.54,-0.01:99
-chr1	1961249	rs3121820	G	C	348.51	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=57.98;MQ0=0;OQ=1964.71;QD=40.10;SB=-703.68	GT:AD:DP:GL:GQ	1/1:0,49:48:-200.08,-14.47,-0.02:99
-chr1	1964088	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=44;Dels=0.00;HRun=20;HaplotypeScore=27.35;MQ=45.54;MQ0=0;OQ=216.77;QD=4.93;SB=-12.47	GT:AD:DP:GL:GQ	0/1:28,16:30:-34.00,-9.04,-73.59:99
-chr1	1966711	rs28394674	G	T	70.40	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=2.59;MQ=58.47;MQ0=0;OQ=2068.09;QD=33.90;SB=-496.39	GT:AD:DP:GL:GQ	1/1:0,60:58:-210.42,-17.47,-0.02:99
-chr1	1974087	rs3128319	C	T	215.82	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=0.90;MQ=59.66;MQ0=0;OQ=974.85;QD=17.72;SB=-353.37	GT:AD:DP:GL:GQ	0/1:25,30:52:-116.43,-15.67,-87.00:99
-chr1	1974552	rs3121826	A	G	92.93	PASS	AC=2;AF=1.00;AN=2;DB;DP=35;Dels=0.00;HRun=0;HaplotypeScore=0.48;MQ=58.67;MQ0=0;OQ=1020.08;QD=29.15;SB=-506.02	GT:AD:DP:GL:GQ	1/1:0,35:33:-105.63,-9.96,-0.04:99
-chr1	1974671	rs3121827	G	T	491.82	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.58;MQ0=0;OQ=1710.64;QD=34.91;SB=-820.86	GT:AD:DP:GL:GQ	1/1:0,49:48:-174.66,-14.46,-0.02:99
-chr1	1975030	rs35020387	G	A	113.28	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=1;HaplotypeScore=1.07;MQ=60.00;MQ0=0;OQ=1769.06;QD=36.10;SB=-889.65	GT:AD:DP:GL:GQ	1/1:0,49:46:-180.51,-13.86,-0.02:99
-chr1	1982066	.	C	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=25;Dels=0.00;HRun=2;HaplotypeScore=0.95;MQ=56.20;MQ0=0;OQ=60.60;QD=2.42;SB=35.14	GT:AD:DP:GL:GQ	0/1:18,7:19:-15.09,-5.75,-56.99:93.44
-chr1	1982837	rs17777295	G	T	2.34	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=1;HaplotypeScore=4.79;MQ=57.88;MQ0=0;OQ=1411.52;QD=35.29;SB=-620.56	GT:AD:DP:GL:GQ	1/1:0,40:39:-144.75,-11.75,-0.01:99
-chr1	1987331	rs56136180	A	G	202.47	PASS	AC=1;AF=0.50;AN=2;DB;DP=85;Dels=0.00;HRun=1;HaplotypeScore=1.52;MQ=55.14;MQ0=0;OQ=1346.89;QD=15.85;SB=-685.93	GT:AD:DP:GL:GQ	0/1:38,47:81:-162.37,-24.40,-147.70:99
-chr1	1989540	rs28479788	G	A	186.47	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=3.13;MQ=58.66;MQ0=0;OQ=851.87;QD=16.38;SB=-358.89	GT:AD:DP:GL:GQ	0/1:25,27:48:-102.94,-14.47,-69.44:99
-chr1	1995600	rs2459986	T	C	313.08	PASS	AC=2;AF=1.00;AN=2;DB;DP=27;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.14;MQ0=0;OQ=733.38;QD=27.16;SB=-310.12	GT:AD:DP:GL:GQ	1/1:0,27:25:-76.96,-7.55,-0.03:75.14
-chr1	1996588	rs2678943	T	C	52.85	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=58.08;MQ0=0;OQ=1052.54;QD=26.99;SB=-491.16	GT:AD:DP:GL:GQ	1/1:0,38:34:-108.87,-10.26,-0.03:99
-chr1	1997534	rs2803307	A	G	10.35	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=1;HaplotypeScore=3.74;MQ=59.13;MQ0=0;OQ=1580.39;QD=29.82;SB=-788.60	GT:AD:DP:GL:GQ	1/1:0,53:50:-161.67,-15.08,-0.05:99
-chr1	1999411	.	C	T	1.67	PASS	AC=1;AF=0.50;AN=2;DP=62;Dels=0.00;HRun=0;HaplotypeScore=5.65;MQ=58.95;MQ0=0;OQ=1145.66;QD=18.48;SB=-378.12	GT:AD:DP:GL:GQ	0/1:25,36:58:-135.32,-17.47,-87.50:99
-chr1	2004056	rs28436686	G	A	119.72	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=2.78;MQ=59.61;MQ0=0;OQ=2326.78;QD=39.44;SB=-1079.37	GT:AD:DP:GL:GQ	1/1:0,59:59:-236.28,-17.77,-0.01:99
-chr1	2014367	rs9729600	T	C	414.10	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.74;MQ0=0;OQ=1723.74;QD=27.36;SB=-655.55	GT:AD:DP:GL:GQ	1/1:0,63:57:-176.03,-17.20,-0.07:99
-chr1	2015467	rs61775405	G	A	154	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=3.51;MQ=57.06;MQ0=0;OQ=444.57;QD=10.84;SB=-245.22	GT:AD:DP:GL:GQ	0/1:23,18:37:-58.92,-11.18,-62.94:99
-chr1	2015957	.	T	A	20.13	LowQual	AC=1;AF=0.50;AN=2;DP=27;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=22.77;MQ0=3;QD=0.75;SB=-6.99	GT:AD:DP:GL:GQ	0/1:17,10:5:-6.80,-1.51,-8.98:52.92
-chr1	2015991	.	G	T	43.95	LowQual	AC=1;AF=0.50;AN=2;DP=37;Dels=0.00;HRun=0;HaplotypeScore=2.44;MQ=23.36;MQ0=2;QD=1.19;SB=-6.99	GT:AD:DP:GL:GQ	0/1:34,3:8:-10.09,-2.41,-13.96:76.78
-chr1	2017284	rs12123775	G	A	100.24	PASS	AC=1;AF=0.50;AN=2;DB;DP=23;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=60.00;MQ0=0;OQ=256.85;QD=11.17;SB=-34.51	GT:AD:DP:GL:GQ	0/1:14,9:22:-35.60,-6.63,-46.44:99
-chr1	2019252	rs3128329	T	C	18.82	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=1;HaplotypeScore=2.93;MQ=58.39;MQ0=0;OQ=1634.16;QD=29.71;SB=-754.64	GT:AD:DP:GL:GQ	1/1:0,55:52:-167.05,-15.69,-0.05:99
-chr1	2019320	.	T	G	18.93	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=55;Dels=0.00;HRun=4;HaplotypeScore=7.98;MQ=58.04;MQ0=0;QD=0.34;SB=68.22	GT:AD:DP:GL:GQ	0/1:29,26:34:-15.41,-10.24,-102.90:51.71
-chr1	2019693	.	T	G	0.04	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=38;Dels=0.00;HRun=2;HaplotypeScore=1.11;MQ=51.54;MQ0=0;OQ=164.91;QD=4.34;SB=47.17	GT:AD:DP:GL:GQ	0/1:19,19:29:-28.51,-8.74,-68.55:99
-chr1	2023899	rs7521371	A	G	276.27	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=55.14;MQ0=0;OQ=762.93;QD=15.26;SB=-284.46	GT:AD:DP:GL:GQ	0/1:23,27:49:-94.34,-14.76,-92.20:99
-chr1	2025239	rs10910029	A	G	201.72	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=59.60;MQ0=0;OQ=1376.71;QD=29.29;SB=-649.94	GT:AD:DP:GL:GQ	1/1:0,47:44:-141.29,-13.27,-0.04:99
-chr1	2025544	rs10910030	C	T	525.81	PASS	AC=2;AF=1.00;AN=2;DB;DP=35;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1279.25;QD=36.55;SB=-479.12	GT:AD:DP:GL:GQ	1/1:0,35:34:-131.53,-10.25,-0.02:99
-chr1	2025659	rs10752741	G	A	653.38	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.60;MQ0=0;OQ=2163.55;QD=37.96;SB=-800.07	GT:AD:DP:GL:GQ	1/1:0,57:55:-219.96,-16.57,-0.02:99
-chr1	2025837	rs10752742	G	T	4.06	PASS	AC=2;AF=1.00;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=6.39;MQ=58.92;MQ0=0;OQ=1340.29;QD=31.17;SB=-640.07	GT:AD:DP:GL:GQ	1/1:0,43:38:-137.63,-11.45,-0.01:99
-chr1	2026123	rs10797413	G	A	219.84	PASS	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=0.48;MQ=58.78;MQ0=0;OQ=1381.00;QD=36.34;SB=-700.35	GT:AD:DP:GL:GQ	1/1:0,38:36:-141.70,-10.85,-0.01:99
-chr1	2026457	rs3128332	G	T	494.54	PASS	AC=2;AF=1.00;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.34;MQ0=0;OQ=1536.71;QD=35.74;SB=-400.25	GT:AD:DP:GL:GQ	1/1:0,43:42:-157.27,-12.65,-0.01:99
-chr1	2027806	.	A	G	242.28	HARD_TO_VALIDATE;Indel	AC=1;AF=0.50;AN=2;DP=25;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=33.01;MQ0=5;QD=9.69;SB=-135.79	GT:AD:DP:GL:GQ	0/1:9,16:13:-31.43,-3.92,-15.54:99
-chr1	2027817	.	A	G	86.37	HARD_TO_VALIDATE;Indel	AC=1;AF=0.50;AN=2;DP=17;Dels=0.00;HRun=1;HaplotypeScore=-0.06;MQ=28.31;MQ0=5;QD=5.08;SB=-66.32	GT:AD:DP:GL:GQ	0/1:7,10:8:-14.33,-2.41,-15.43:99
-chr1	2027825	rs7364595	T	C	235.65	PASS	AC=2;AF=1.00;AN=2;DB;DP=12;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=23.06;MQ0=5;OQ=93.65;QD=7.80;SB=-40.95	GT:AD:DP:GL:GQ	1/1:0,12:4:-12.90,-1.21,-0.00:12.03
-chr1	2027884	.	A	G	40.99	LowQual	AC=1;AF=0.50;AN=2;DP=10;Dels=0.00;HRun=1;HaplotypeScore=1.05;MQ=37.48;MQ0=2;QD=4.10;SB=-10.00	GT:AD:DP:GL:GQ	0/1:3,7:4:-8.59,-1.21,-3.37:21.64
-chr1	2027902	.	C	T	0.78	PASS	AC=1;AF=0.50;AN=2;DP=16;Dels=0.00;HRun=0;HaplotypeScore=1.31;MQ=45.01;MQ0=2;OQ=55.77;QD=3.49;SB=-10.00	GT:AD:DP:GL:GQ	0/1:13,3:11:-12.18,-3.32,-23.75:88.60
-chr1	2027903	.	A	G	47.94	LowQual	AC=1;AF=0.50;AN=2;DP=16;Dels=0.00;HRun=0;HaplotypeScore=1.31;MQ=45.01;MQ0=2;QD=3.00;SB=-10.00	GT:AD:DP:GL:GQ	0/1:12,4:11:-11.39,-3.31,-30.54:80.77
-chr1	2027922	rs61775410	A	G	254.38	Indel	AC=1;AF=0.50;AN=2;DB;DP=21;Dels=0.00;HRun=0;HaplotypeScore=10.71;MQ=52.34;MQ0=2;QD=12.11;SB=-40.68	GT:AD:DP:GL:GQ	0/1:8,13:15:-33.24,-4.52,-21.40:99
-chr1	2027961	rs12745429	G	A	0.31	PASS	AC=1;AF=0.50;AN=2;DB;DP=32;Dels=0.00;HRun=0;HaplotypeScore=3.42;MQ=51.66;MQ0=4;OQ=50.47;QD=1.58;SB=-46.03	GT:AD:DP:GL:GQ	0/1:27,5:21:-14.67,-6.34,-51.74:83.30
-chr1	2027962	rs12723086	T	C	0.38	PASS	AC=1;AF=0.50;AN=2;DB;DP=32;Dels=0.00;HRun=0;HaplotypeScore=3.42;MQ=51.66;MQ0=4;OQ=55.89;QD=1.75;SB=-41.82	GT:AD:DP:GL:GQ	0/1:25,7:25:-16.41,-7.54,-72.40:88.73
-chr1	2027980	.	A	G	0.42	PASS	AC=1;AF=0.50;AN=2;DP=35;Dels=0.00;HRun=0;HaplotypeScore=1.07;MQ=49.52;MQ0=4;OQ=96.12;QD=2.75;SB=-41.28	GT:AD:DP:GL:GQ	0/1:27,8:28:-21.34,-8.45,-80.79:99
-chr1	2027991	.	A	G	34.81	PASS	AC=1;AF=0.50;AN=2;DP=45;Dels=0.00;HRun=1;HaplotypeScore=1.55;MQ=51.01;MQ0=3;OQ=431.23;QD=9.58;SB=-194.62	GT:AD:DP:GL:GQ	0/1:24,21:36:-57.25,-10.85,-78.85:99
-chr1	2028038	rs7349084	A	G	0.09	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=7.00;MQ=50.77;MQ0=1;OQ=115.20;QD=1.99;SB=-64.54	GT:AD:DP:GL:GQ	0/1:47,10:48:-29.27,-14.47,-151.97:99
-chr1	2028049	rs12133181	A	G	36.56	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=1;HaplotypeScore=65.95;MQ=50.10;MQ0=2;QD=0.48;SB=17.41	GT:AD:DP:GL:GQ	0/1:60,12:63:-25.92,-18.99,-218.94:69.39
-chr1	2028057	rs7514664	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=99;Dels=0.00;HRun=1;HaplotypeScore=92.07;MQ=50.08;MQ0=4;OQ=1734.98;QD=17.53;SB=-712.36	GT:AD:DP:GL:GQ	0/1:13,84:69:-197.59,-20.81,-27.48:66.63
-chr1	2028096	rs7349113	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=144;Dels=0.00;HRun=1;HaplotypeScore=338.66;MQ=50.60;MQ0=2;OQ=249.31;QD=1.73;SB=17.40	GT:AD:DP:GL:GQ	0/1:107,21:99:-60.23,-32.01,-282.27:99
-chr1	2028116	rs61775411	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=130;Dels=0.00;HRun=1;HaplotypeScore=156.17;MQ=50.22;MQ0=2;OQ=1368.71;QD=10.53;SB=-489.55	GT:AD:DP:GL:GQ	0/1:47,78:82:-164.90,-24.74,-105.56:99
-chr1	2028135	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=84;Dels=0.00;HRun=0;HaplotypeScore=77.77;MQ=49.84;MQ0=2;OQ=170.97;QD=2.04;SB=-24.42	GT:AD:DP:GL:GQ	0/1:67,11:63:-39.37,-18.98,-181.92:99
-chr1	2028136	rs12080420	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=81;Dels=0.00;HRun=0;HaplotypeScore=76.98;MQ=49.85;MQ0=2;OQ=157.43;QD=1.94;SB=-74.46	GT:AD:DP:GL:GQ	0/1:62,16:61:-37.41,-18.38,-198.10:99
-chr1	2028154	rs3753241	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=33.73;MQ=52.95;MQ0=1;OQ=379.95;QD=7.31;SB=-7.96	GT:AD:DP:GL:GQ	0/1:34,16:44:-54.55,-13.27,-93.77:99
-chr1	2028522	rs3128334	G	A	30.30	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=2.73;MQ=59.44;MQ0=0;OQ=1539.70;QD=37.55;SB=-534.21	GT:AD:DP:GL:GQ	1/1:0,39:39:-157.57,-11.75,-0.01:99
-chr1	2028753	rs908744	G	A	89.13	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=3.73;MQ=58.80;MQ0=0;OQ=1922.45;QD=33.15;SB=-549.87	GT:AD:DP:GL:GQ	1/1:0,58:52:-195.86,-15.68,-0.03:99
-chr1	2029096	rs1040231	G	T	78.45	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=3.23;MQ=58.48;MQ0=0;OQ=1527.94;QD=33.22;SB=-620.05	GT:AD:DP:GL:GQ	1/1:1,45:45:-156.40,-13.56,-0.02:99
-chr1	2029381	rs16824792	G	T	92.11	PASS	AC=2;AF=1.00;AN=2;DB;DP=32;Dels=0.00;HRun=1;HaplotypeScore=0.89;MQ=59.28;MQ0=0;OQ=1106.74;QD=34.59;SB=-441.64	GT:AD:DP:GL:GQ	1/1:0,32:31:-114.27,-9.34,-0.01:93.28
-chr1	2029579	rs1878752	G	A	107.74	PASS	AC=2;AF=1.00;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=1.73;MQ=58.58;MQ0=0;OQ=1364.65;QD=36.88;SB=-510.18	GT:AD:DP:GL:GQ	1/1:0,37:36:-140.06,-10.85,-0.01:99
-chr1	2029956	rs6666117	T	C	57.04	PASS	AC=2;AF=1.00;AN=2;DB;DP=35;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=967.27;QD=27.64;SB=-467.25	GT:AD:DP:GL:GQ	1/1:0,35:31:-100.34,-9.35,-0.03:93.22
-chr1	2030248	rs6683011	G	A	365.12	PASS	AC=2;AF=1.00;AN=2;DB;DP=26;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.46;MQ0=0;OQ=938.15;QD=36.08;SB=-369.99	GT:AD:DP:GL:GQ	1/1:0,26:24:-97.41,-7.23,-0.01:72.24
-chr1	2030623	rs4648805	G	A	629.77	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.87;MQ0=0;OQ=1690.17;QD=38.41;SB=-769.01	GT:AD:DP:GL:GQ	1/1:0,44:44:-172.62,-13.26,-0.02:99
-chr1	2030637	rs4648806	C	T	94.85	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=1;HaplotypeScore=0.95;MQ=56.04;MQ0=0;OQ=1691.52;QD=35.24;SB=-723.01	GT:AD:DP:GL:GQ	1/1:0,48:44:-172.75,-13.26,-0.02:99
-chr1	2030645	rs6674878	A	G	54.62	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=55.66;MQ0=0;OQ=1170.82;QD=26.61;SB=-567.76	GT:AD:DP:GL:GQ	1/1:0,44:39:-120.72,-11.78,-0.06:99
-chr1	2030758	rs4648807	T	C	223.06	PASS	AC=2;AF=1.00;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=1.74;MQ=59.17;MQ0=0;OQ=1628.83;QD=29.09;SB=-733.30	GT:AD:DP:GL:GQ	1/1:0,56:52:-166.52,-15.69,-0.05:99
-chr1	2030796	rs4648808	T	C	215.31	PASS	AC=2;AF=1.00;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=1.82;MQ=59.65;MQ0=0;OQ=1868.75;QD=28.75;SB=-846.52	GT:AD:DP:GL:GQ	1/1:0,65:59:-190.51,-17.80,-0.05:99
-chr1	2031015	rs10910046	C	T	236.58	PASS	AC=2;AF=1.00;AN=2;DB;DP=20;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=54.92;MQ0=0;OQ=619.66;QD=30.98;SB=-276.86	GT:AD:DP:GL:GQ	1/1:0,20:17:-65.56,-5.12,-0.01:51.16
-chr1	2031321	rs12059660	C	T	236.90	PASS	AC=2;AF=1.00;AN=2;DB;DP=27;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.27;MQ0=0;OQ=1048.92;QD=38.85;SB=-437.08	GT:AD:DP:GL:GQ	1/1:0,27:27:-108.48,-8.13,-0.01:81.26
-chr1	2032403	rs11584491	A	G	58.20	PASS	AC=2;AF=1.00;AN=2;DB;DP=30;Dels=0.00;HRun=0;HaplotypeScore=2.87;MQ=59.38;MQ0=0;OQ=893.06;QD=29.77;SB=-424.80	GT:AD:DP:GL:GQ	1/1:0,30:30:-92.92,-9.05,-0.03:90.18
-chr1	2032854	rs3128336	C	G	73.49	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=1;HaplotypeScore=1.85;MQ=59.29;MQ0=0;OQ=1394.69;QD=35.76;SB=-622.82	GT:AD:DP:GL:GQ	1/1:0,39:35:-143.08,-10.56,-0.03:99
-chr1	2033844	rs3107141	C	T	92.22	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=4.37;MQ=59.25;MQ0=0;OQ=2275.40;QD=36.70;SB=-1025.90	GT:AD:DP:GL:GQ	1/1:0,62:59:-231.15,-17.78,-0.02:99
-chr1	2033897	rs925905	T	C	149.67	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=59.07;MQ0=0;OQ=2152.92;QD=34.17;SB=-821.32	GT:AD:DP:GL:GQ	1/1:0,63:61:-218.90,-18.38,-0.02:99
-chr1	2033914	rs925906	A	C	279.99	PASS	AC=2;AF=1.00;AN=2;DB;DP=60;Dels=0.02;HRun=0;HaplotypeScore=0.48;MQ=59.34;MQ0=0;OQ=1986.91;QD=33.12;SB=-865.63	GT:AD:DP:GL:GQ	1/1:0,59:59:-202.29,-17.47,-0.02:99
-chr1	2034402	rs3107142	T	C	2.70	PASS	AC=2;AF=1.00;AN=2;DB;DP=30;Dels=0.00;HRun=2;HaplotypeScore=0.16;MQ=59.38;MQ0=0;OQ=862.83;QD=28.76;SB=-292.45	GT:AD:DP:GL:GQ	1/1:0,30:25:-89.88,-7.54,-0.02:75.20
-chr1	2035025	rs1467217	G	A	101.18	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=1.80;MQ=58.81;MQ0=0;OQ=1215.26;QD=31.16;SB=-472.57	GT:AD:DP:GL:GQ	1/1:2,37:32:-125.13,-9.65,-0.02:96.30
-chr1	2035232	rs3107143	G	C	1383.32	SnpCluster	AC=2;AF=1.00;AN=2;DB;DP=34;Dels=0.00;HRun=3;HaplotypeScore=1.46;MQ=53.42;MQ0=0;QD=40.69;SB=-202.29	GT:AD:DP:GL:GQ	1/1:0,34:32:-141.93,-9.65,-0.01:96.32
-chr1	2035236	rs61775448	A	G	957.24	SnpCluster	AC=2;AF=1.00;AN=2;DB;DP=32;Dels=0.00;HRun=1;HaplotypeScore=1.20;MQ=52.98;MQ0=0;QD=29.91;SB=-159.74	GT:AD:DP:GL:GQ	1/1:0,32:29:-99.32,-8.74,-0.01:87.24
-chr1	2035240	rs3107144	C	A	1108.98	SnpCluster	AC=2;AF=1.00;AN=2;DB;DP=33;Dels=0.00;HRun=1;HaplotypeScore=0.89;MQ=53.21;MQ0=0;QD=33.61;SB=-288.09	GT:AD:DP:GL:GQ	1/1:0,33:31:-114.49,-9.34,-0.01:93.28
-chr1	2035742	rs3128337	A	G	495.13	PASS	AC=2;AF=1.00;AN=2;DB;DP=69;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.14;MQ0=0;OQ=2084.14;QD=30.20;SB=-613.59	GT:AD:DP:GL:GQ	1/1:0,69:67:-212.07,-20.22,-0.07:99
-chr1	2036646	rs3128338	G	A	633.58	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.63;MQ0=0;OQ=2283.85;QD=36.84;SB=-1084.46	GT:AD:DP:GL:GQ	1/1:0,61:60:-232.00,-18.09,-0.03:99
-chr1	2036798	rs3128339	G	T	418.21	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.44;MQ0=0;OQ=1615.06;QD=33.65;SB=-604.54	GT:AD:DP:GL:GQ	1/1:0,48:46:-165.11,-13.86,-0.02:99
-chr1	2037356	rs3128340	C	G	20.94	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=2;HaplotypeScore=1.21;MQ=59.34;MQ0=0;OQ=2469.41;QD=39.20;SB=-820.16	GT:AD:DP:GL:GQ	1/1:0,63:62:-250.56,-18.70,-0.04:99
-chr1	2037407	rs3107145	G	A	220.34	PASS	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=3.18;MQ=59.05;MQ0=0;OQ=2392.58;QD=37.38;SB=-1173.71	GT:AD:DP:GL:GQ	1/1:0,64:62:-242.87,-18.68,-0.02:99
-chr1	2037444	rs3107146	T	C	445.88	PASS	AC=2;AF=1.00;AN=2;DB;DP=56;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.92;MQ0=0;OQ=1708.25;QD=30.50;SB=-576.98	GT:AD:DP:GL:GQ	1/1:0,56:53:-174.45,-15.98,-0.04:99
-chr1	2038589	rs3107147	G	A	179.13	PASS	AC=2;AF=1.00;AN=2;DB;DP=84;Dels=0.00;HRun=0;HaplotypeScore=1.15;MQ=59.78;MQ0=0;OQ=3375.92;QD=40.19;SB=-1379.05	GT:AD:DP:GL:GQ	1/1:0,83:83:-336.59,-25.00,-0.02:99
-chr1	2039293	.	A	T	534.23	DPFilter;Indel	AC=1;AF=0.50;AN=2;DP=99;Dels=0.00;HRun=3;HaplotypeScore=26.93;MQ=46.16;MQ0=1;QD=5.40;SB=50.36	GT:AD:DP:GL:GQ	0/1:64,35:82:-81.41,-24.70,-228.25:99
-chr1	2039297	.	C	T	849.12	Indel	AC=1;AF=0.50;AN=2;DP=106;Dels=0.00;HRun=16;HaplotypeScore=37.86;MQ=45.71;MQ0=2;QD=8.01;SB=-44.28	GT:AD:DP:GL:GQ	0/1:72,34:90:-115.31,-27.11,-215.41:99
-chr1	2039368	rs3128290	G	T	199.82	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=57.68;MQ0=0;OQ=1893.89;QD=32.65;SB=-943.62	GT:AD:DP:GL:GQ	1/1:0,58:54:-193.00,-16.27,-0.02:99
-chr1	2039459	rs3107148	T	C	580.43	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.55;MQ0=0;OQ=1837.96;QD=36.04;SB=-792.00	GT:AD:DP:GL:GQ	1/1:0,51:51:-187.40,-15.36,-0.01:99
-chr1	2040055	rs3107149	A	T	0.64	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=7.05;MQ=47.19;MQ0=2;OQ=1180.60;QD=26.83;SB=-338.84	GT:AD:DP:GL:GQ	1/1:1,43:33:-121.66,-9.94,-0.01:99
-chr1	2040785	rs3107150	T	A	621.62	PASS	AC=2;AF=1.00;AN=2;DB;DP=75;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.05;MQ0=0;OQ=2606.94;QD=34.76;SB=-964.53	GT:AD:DP:GL:GQ	1/1:0,75:72:-264.30,-21.69,-0.03:99
-chr1	2041373	rs3107151	T	G	405.29	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=57.29;MQ0=0;OQ=1384.90;QD=30.11;SB=-485.99	GT:AD:DP:GL:GQ	1/1:0,46:41:-142.10,-12.35,-0.02:99
-chr1	2042357	rs3107152	T	C	727.24	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.63;MQ0=0;OQ=2187.52;QD=34.72;SB=-1010.74	GT:AD:DP:GL:GQ	1/1:0,63:62:-222.36,-18.68,-0.02:99
-chr1	2042782	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=51;Dels=0.00;HRun=1;HaplotypeScore=3.57;MQ=44.83;MQ0=0;OQ=64.06;QD=1.26;SB=2.03	GT:AD:DP:GL:GQ	0/1:44,7:48:-24.15,-14.46,-148.69:96.90
-chr1	2042814	.	C	G	7.67	PASS	AC=1;AF=0.50;AN=2;DP=54;Dels=0.00;HRun=0;HaplotypeScore=3.26;MQ=39.19;MQ0=0;OQ=415.49;QD=7.69;SB=-85.80	GT:AD:DP:GL:GQ	0/1:38,16:51:-60.21,-15.38,-162.70:99
-chr1	2042818	.	A	G	548.88	SnpCluster	AC=1;AF=0.50;AN=2;DP=60;Dels=0.00;HRun=2;HaplotypeScore=3.40;MQ=38.13;MQ0=0;QD=9.15;SB=-238.62	GT:AD:DP:GL:GQ	0/1:35,25:55:-74.74,-16.57,-136.02:99
-chr1	2042827	rs56946456	C	T	974.86	SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=3.38;MQ=37.16;MQ0=0;QD=15.23;SB=-13.45	GT:AD:DP:GL:GQ	0/1:33,30:59:-118.54,-17.77,-108.89:99
-chr1	2042828	rs59510407	A	G	718.63	SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=1;HaplotypeScore=2.75;MQ=36.52;MQ0=0;QD=11.98;SB=-10.84	GT:AD:DP:GL:GQ	0/1:33,26:56:-92.01,-16.87,-122.40:99
-chr1	2042846	rs58866862	A	G	74.49	DPFilter;Indel	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=35.77;MQ0=0;QD=1.16;SB=32.14	GT:AD:DP:GL:GQ	0/1:43,21:44:-23.99,-13.25,-151.62:99
-chr1	2042857	rs61526019	C	T	19.11	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=1;HaplotypeScore=1.00;MQ=37.11;MQ0=1;QD=0.30;SB=35.13	GT:AD:DP:GL:GQ	0/1:49,15:46:-19.05,-13.86,-151.53:51.90
-chr1	2042876	.	G	T	13.23	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=72;Dels=0.00;HRun=1;HaplotypeScore=9.69;MQ=38.17;MQ0=2;QD=0.18;SB=41.11	GT:AD:DP:GL:GQ	0/1:58,9:53:-20.55,-15.96,-167.03:45.86
-chr1	2042878	.	T	C	0.10	PASS	AC=1;AF=0.50;AN=2;DP=70;Dels=0.00;HRun=0;HaplotypeScore=11.69;MQ=38.38;MQ0=2;OQ=1187.23;QD=16.96;SB=-479.73	GT:AD:DP:GL:GQ	0/1:15,55:50:-137.09,-15.08,-24.25:91.67
-chr1	2042931	.	A	G	53.02	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=77;Dels=0.00;HRun=0;HaplotypeScore=15.54;MQ=37.98;MQ0=2;QD=0.69;SB=20.09	GT:AD:DP:GL:GQ	0/1:67,10:63:-27.57,-18.98,-213.37:85.85
-chr1	2042932	.	C	T	144.76	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=77;Dels=0.00;HRun=0;HaplotypeScore=10.55;MQ=37.98;MQ0=2;QD=1.88;SB=20.04	GT:AD:DP:GL:GQ	0/1:64,13:62:-36.47,-18.71,-162.72:99
-chr1	2042933	rs61775451	A	G	2056.36	SnpCluster	AC=2;AF=1.00;AN=2;DB;DP=74;Dels=0.00;HRun=1;HaplotypeScore=7.24;MQ=37.41;MQ0=2;QD=27.79;SB=-304.45	GT:AD:DP:GL:GQ	1/1:0,74:61:-209.25,-18.38,-0.03:99
-chr1	2042939	rs61775452	A	G	1556.23	SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=81;Dels=0.00;HRun=1;HaplotypeScore=44.30;MQ=35.88;MQ0=3;QD=19.21;SB=-241.65	GT:AD:DP:GL:GQ	0/1:26,55:67:-179.09,-20.18,-61.01:99
-chr1	2042967	.	G	A	494.62	Indel;SnpCluster	AC=1;AF=0.50;AN=2;DP=86;Dels=0.00;HRun=0;HaplotypeScore=42.03;MQ=31.07;MQ0=2;QD=5.75;SB=-10.00	GT:AD:DP:GL:GQ	0/1:65,21:57:-69.92,-17.17,-132.17:99
-chr1	2042968	.	T	C	324.84	Indel;SnpCluster	AC=1;AF=0.50;AN=2;DP=85;Dels=0.00;HRun=0;HaplotypeScore=41.51;MQ=30.57;MQ0=2;QD=3.82;SB=-7.00	GT:AD:DP:GL:GQ	0/1:68,17:56:-52.65,-16.88,-157.62:99
-chr1	2042975	.	G	A	918.15	Indel;SnpCluster	AC=1;AF=0.50;AN=2;DP=77;Dels=0.00;HRun=0;HaplotypeScore=43.08;MQ=30.97;MQ0=1;QD=11.92;SB=-7.00	GT:AD:DP:GL:GQ	0/1:43,34:50:-110.16,-15.06,-77.95:99
-chr1	2042993	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=57;Dels=0.00;HRun=0;HaplotypeScore=37.83;MQ=26.92;MQ0=1;OQ=262.34;QD=4.60;SB=-10.00	GT:AD:DP:GL:GQ	0/1:38,19:39:-41.26,-11.74,-103.99:99
-chr1	2043003	.	A	G	593.68	Indel;SnpCluster	AC=1;AF=0.50;AN=2;DP=39;Dels=0.03;HRun=0;HaplotypeScore=30.47;MQ=26.18;MQ0=1;QD=15.22;SB=-10.00	GT:AD:DP:GL:GQ	0/1:16,22:23:-69.27,-6.63,-8.02:13.91
-chr1	2043004	.	C	T	763.57	Indel;SnpCluster	AC=2;AF=1.00;AN=2;DP=36;Dels=0.06;HRun=0;HaplotypeScore=22.21;MQ=26.52;MQ0=1;QD=21.21;SB=-10.00	GT:AD:DP:GL:GQ	1/1:3,31:22:-82.94,-6.33,-3.00:33.26
-chr1	2043011	.	A	G	85.38	Indel;SnpCluster	AC=1;AF=0.50;AN=2;DP=26;Dels=0.00;HRun=1;HaplotypeScore=13.94;MQ=26.97;MQ0=0;QD=3.28;SB=-10.00	GT:AD:DP:GL:GQ	0/1:19,7:20:-17.84,-6.02,-61.94:99
-chr1	2043025	.	C	T	0.23	PASS	AC=2;AF=1.00;AN=2;DP=8;Dels=0.00;HRun=0;HaplotypeScore=7.88;MQ=23.26;MQ0=0;OQ=89.13;QD=11.14;SB=-10.00	GT:AD:DP:GL:GQ	1/1:3,5:3:-12.40,-0.90,-0.00:9.03
-chr1	2043058	.	C	T	0.16	PASS	AC=2;AF=1.00;AN=2;DP=10;Dels=0.00;HRun=0;HaplotypeScore=7.97;MQ=18.94;MQ0=5;OQ=124.33;QD=12.43;SB=-10.00	GT:AD:DP:GL:GQ	1/1:4,6:4:-15.97,-1.21,-0.00:12.04
-chr1	2043061	.	C	T	0.16	PASS	AC=2;AF=1.00;AN=2;DP=12;Dels=0.00;HRun=0;HaplotypeScore=9.08;MQ=17.30;MQ0=6;OQ=117.32;QD=9.78;SB=-10.00	GT:AD:DP:GL:GQ	1/1:4,8:4:-15.27,-1.21,-0.00:12.04
-chr1	2043097	.	C	T	1.40	PASS	AC=1;AF=0.50;AN=2;DP=15;Dels=0.00;HRun=0;HaplotypeScore=4.78;MQ=17.14;MQ0=7;OQ=117.84;QD=7.86;SB=-10.00	GT:AD:DP:GL:GQ	0/1:11,4:5:-16.57,-1.51,-3.10:15.90
-chr1	2043134	rs62641630	A	G	85.81	Indel	AC=1;AF=0.50;AN=2;DB;DP=16;Dels=0.00;HRun=1;HaplotypeScore=34.82;MQ=24.20;MQ0=2;QD=5.36;SB=-10.00	GT:AD:DP:GL:GQ	0/1:8,7:9:-14.57,-2.71,-19.58:99
-chr1	2043141	.	T	G	143.26	Indel	AC=2;AF=1.00;AN=2;DP=12;Dels=0.00;HRun=2;HaplotypeScore=1.47;MQ=21.33;MQ0=2;QD=11.94;SB=-10.00	GT:AD:DP:GL:GQ	1/1:3,9:5:-17.89,-1.51,-0.00:15.05
-chr1	2043178	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=48;Dels=0.00;HRun=0;HaplotypeScore=18.82;MQ=19.76;MQ0=6;OQ=129.40;QD=2.70;SB=-10.00	GT:AD:DP:GL:GQ	0/1:34,14:15:-20.75,-4.53,-30.16:99
-chr1	2043181	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=54;Dels=0.00;HRun=0;HaplotypeScore=18.51;MQ=19.26;MQ0=7;OQ=70.77;QD=1.31;SB=-10.00	GT:AD:DP:GL:GQ	0/1:41,12:15:-14.88,-4.52,-41.18:99
-chr1	2043199	.	T	C	326.46	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=101;Dels=0.00;HRun=0;HaplotypeScore=71.39;MQ=18.51;MQ0=9;QD=3.23;SB=5.04	GT:AD:DP:GL:GQ	0/1:73,28:19:-41.66,-5.73,-27.12:99
-chr1	2043200	.	G	T	127.31	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=103;Dels=0.00;HRun=1;HaplotypeScore=109.06;MQ=18.45;MQ0=9;QD=1.24;SB=5.04	GT:AD:DP:GL:GQ	0/1:88,15:19:-21.74,-5.72,-47.36:99
-chr1	2043203	.	A	G	195.43	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=112;Dels=0.00;HRun=1;HaplotypeScore=58.32;MQ=18.15;MQ0=10;QD=1.74;SB=5.04	GT:AD:DP:GL:GQ	0/1:95,17:20:-28.85,-6.02,-47.43:99
-chr1	2043227	rs61775455	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=139;Dels=0.00;HRun=1;HaplotypeScore=26.18;MQ=17.76;MQ0=15;OQ=512.67;QD=3.69;SB=-282.20	GT:AD:DP:GL:GQ	0/1:22,117:18:-59.98,-5.43,-16.39:99
-chr1	2043250	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=65;Dels=0.00;HRun=0;HaplotypeScore=40.25;MQ=18.52;MQ0=5;OQ=52.10;QD=0.80;SB=5.03	GT:AD:DP:GL:GQ	0/1:47,18:9:-11.21,-2.71,-18.54:84.93
-chr1	2043253	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=58;Dels=0.00;HRun=0;HaplotypeScore=69.74;MQ=17.96;MQ0=6;OQ=126.28;QD=2.18;SB=-31.52	GT:AD:DP:GL:GQ	0/1:37,20:7:-18.02,-2.11,-6.74:46.31
-chr1	2043286	.	C	T	29.35	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=20;Dels=0.00;HRun=0;HaplotypeScore=15.82;MQ=16.30;MQ0=5;QD=1.47;SB=-39.54	GT:AD:DP:GL:GQ	0/1:10,10:4:-7.42,-1.21,-6.19:49.87
-chr1	2043289	.	C	T	29.39	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=17;Dels=0.00;HRun=0;HaplotypeScore=12.80;MQ=15.14;MQ0=5;QD=1.73;SB=-36.53	GT:AD:DP:GL:GQ	0/1:8,8:3:-7.13,-0.91,-2.70:17.92
-chr1	2043333	.	T	G	28.03	LowQual	AC=2;AF=1.00;AN=2;DP=7;Dels=0.00;HRun=2;HaplotypeScore=1.00;MQ=18.60;MQ0=2;QD=4.00;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,7:2:-6.21,-0.60,-0.00:6.01
-chr1	2043370	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=76;Dels=0.00;HRun=0;HaplotypeScore=30.96;MQ=17.94;MQ0=3;OQ=266.78;QD=3.51;SB=-158.18	GT:AD:DP:GL:GQ	0/1:20,55:9:-32.59,-2.71,-3.10:3.86
-chr1	2043387	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=103;Dels=0.00;HRun=0;HaplotypeScore=305.93;MQ=17.79;MQ0=4;OQ=61.76;QD=0.60;SB=5.03	GT:AD:DP:GL:GQ	0/1:70,33:9:-12.17,-2.71,-18.55:94.59
-chr1	2043399	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=109;Dels=0.00;HRun=1;HaplotypeScore=80.07;MQ=17.30;MQ0=8;OQ=50.40;QD=0.46;SB=-41.37	GT:AD:DP:GL:GQ	0/1:77,30:6:-10.13,-1.81,-8.76:69.51
-chr1	2043410	.	G	A	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DP=99;Dels=0.00;HRun=0;HaplotypeScore=62.95;MQ=16.84;MQ0=8;OQ=120.99;QD=1.22;SB=-42.66	GT:AD:DP:GL:GQ	1/1:14,85:4:-15.63,-1.21,-0.00:12.04
-chr1	2043421	.	C	T	40.51	LowQual	AC=1;AF=0.50;AN=2;DP=97;Dels=0.01;HRun=0;HaplotypeScore=78.29;MQ=16.56;MQ0=9;QD=0.42;SB=-7.00	GT:AD:DP:GL:GQ	0/1:75,21:3:-8.24,-0.90,-2.77:18.65
-chr1	2043428	.	G	A	73.75	Indel	AC=2;AF=1.00;AN=2;DP=84;Dels=0.00;HRun=0;HaplotypeScore=65.46;MQ=16.72;MQ0=6;QD=0.88;SB=-10.00	GT:AD:DP:GL:GQ	1/1:16,68:3:-10.87,-0.91,-0.00:9.02
-chr1	2043438	.	G	A	70.80	Indel	AC=1;AF=0.50;AN=2;DP=71;Dels=0.00;HRun=0;HaplotypeScore=64.65;MQ=17.33;MQ0=2;QD=1.00;SB=-10.00	GT:AD:DP:GL:GQ	0/1:44,27:4:-11.57,-1.20,-3.47:22.64
-chr1	2043560	.	G	C	29.95	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=35;Dels=0.00;HRun=0;HaplotypeScore=54.01;MQ=17.20;MQ0=4;QD=0.86;SB=-10.00	GT:AD:DP:GL:GQ	0/1:29,6:4:-7.49,-1.21,-7.00:57.86
-chr1	2043565	.	C	T	49.25	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DP=36;Dels=0.00;HRun=0;HaplotypeScore=47.09;MQ=17.14;MQ0=4;QD=1.37;SB=-10.00	GT:AD:DP:GL:GQ	1/1:19,17:2:-8.33,-0.60,-0.00:6.02
-chr1	2043572	.	G	A	46.02	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DP=39;Dels=0.00;HRun=0;HaplotypeScore=33.86;MQ=16.62;MQ0=6;QD=1.18;SB=-10.00	GT:AD:DP:GL:GQ	1/1:22,17:2:-8.01,-0.60,-0.00:6.02
-chr1	2043583	.	C	T	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DP=38;Dels=0.00;HRun=0;HaplotypeScore=32.32;MQ=16.61;MQ0=6;OQ=173.76;QD=4.57;SB=-10.00	GT:AD:DP:GL:GQ	1/1:16,22:5:-20.94,-1.51,-0.00:15.05
-chr1	2043590	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=33;Dels=0.00;HRun=0;HaplotypeScore=28.82;MQ=16.31;MQ0=5;OQ=78.84;QD=2.39;SB=-10.00	GT:AD:DP:GL:GQ	0/1:15,18:4:-12.37,-1.20,-2.87:16.64
-chr1	2043797	.	C	T	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DP=34;Dels=0.00;HRun=0;HaplotypeScore=30.70;MQ=15.39;MQ0=12;OQ=90.55;QD=2.66;SB=-10.00	GT:AD:DP:GL:GQ	1/1:10,21:4:-15.80,-4.21,-3.24:9.74
-chr1	2043818	.	T	C	79	HARD_TO_VALIDATE;SnpCluster	AC=2;AF=1.00;AN=2;DP=57;Dels=0.00;HRun=0;HaplotypeScore=39.74;MQ=12.98;MQ0=29;QD=1.39;SB=-10.00	GT:AD:DP:GL:GQ	1/1:42,15:3:-11.39,-0.90,-0.00:9.03
-chr1	2043819	.	G	T	74.28	HARD_TO_VALIDATE;SnpCluster	AC=2;AF=1.00;AN=2;DP=58;Dels=0.00;HRun=1;HaplotypeScore=66.63;MQ=12.86;MQ0=30;QD=1.28;SB=-10.00	GT:AD:DP:GL:GQ	1/1:43,15:3:-10.92,-0.90,-0.00:9.03
-chr1	2043822	.	G	A	85.78	HARD_TO_VALIDATE;SnpCluster	AC=2;AF=1.00;AN=2;DP=61;Dels=0.00;HRun=0;HaplotypeScore=66.31;MQ=12.73;MQ0=32;QD=1.41;SB=-10.00	GT:AD:DP:GL:GQ	1/1:35,26:3:-12.07,-0.90,-0.00:9.03
-chr1	2043840	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=59;Dels=0.00;HRun=0;HaplotypeScore=53.86;MQ=13.17;MQ0=31;OQ=75.78;QD=1.28;SB=-3.99	GT:AD:DP:GL:GQ	0/1:33,26:5:-12.37,-1.51,-6.39:48.86
-chr1	2043865	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=26;Dels=0.00;HRun=1;HaplotypeScore=29.69;MQ=17.30;MQ0=6;OQ=56.87;QD=2.19;SB=-30.92	GT:AD:DP:GL:GQ	0/1:19,7:4:-10.17,-1.21,-3.00:17.97
-chr1	2043873	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=14;Dels=0.00;HRun=0;HaplotypeScore=65.88;MQ=20.81;MQ0=0;OQ=78.81;QD=5.63;SB=-7.00	GT:AD:DP:GL:GQ	0/1:7,7:4:-12.37,-1.21,-3.20:19.92
-chr1	2044254	.	A	G	32.28	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DP=17;Dels=0.00;HRun=1;HaplotypeScore=4.00;MQ=14.52;MQ0=7;QD=1.90;SB=-10.00	GT:AD:DP:GL:GQ	1/1:8,9:2:-6.64,-0.60,-0.00:6.02
-chr1	2044261	.	G	T	34.69	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DP=16;Dels=0.00;HRun=1;HaplotypeScore=1.00;MQ=14.97;MQ0=6;QD=2.17;SB=-10.00	GT:AD:DP:GL:GQ	1/1:8,8:2:-6.88,-0.60,-0.00:6.02
-chr1	2045053	.	A	G	0.05	FDRtranche0.10to1.00	AC=2;AF=1.00;AN=2;DP=13;Dels=0.00;HRun=1;HaplotypeScore=13.98;MQ=19.49;MQ0=2;OQ=141.20;QD=10.86;SB=-10.00	GT:AD:DP:GL:GQ	1/1:5,8:5:-17.68,-1.51,-0.00:15.04
-chr1	2045060	.	G	T	46.93	LowQual	AC=1;AF=0.50;AN=2;DP=14;Dels=0.00;HRun=1;HaplotypeScore=16.54;MQ=19.21;MQ0=2;QD=3.35;SB=-10.00	GT:AD:DP:GL:GQ	0/1:9,5:5:-9.49,-1.51,-6.61:50.97
-chr1	2045064	.	C	T	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=15;Dels=0.00;HRun=0;HaplotypeScore=17.54;MQ=18.55;MQ0=3;OQ=51.75;QD=3.45;SB=-10.00	GT:AD:DP:GL:GQ	0/1:6,9:5:-9.97,-1.51,-6.44:49.32
-chr1	2045454	.	C	T	0.01	FDRtranche2.00to10.00	AC=2;AF=1.00;AN=2;DP=27;Dels=0.00;HRun=0;HaplotypeScore=19.88;MQ=20.43;MQ0=9;OQ=198.28;QD=7.34;SB=-10.00	GT:AD:DP:GL:GQ	1/1:7,20:6:-23.40,-1.81,-0.00:18.06
-chr1	2045469	.	C	T	0.06	PASS	AC=2;AF=1.00;AN=2;DP=32;Dels=0.00;HRun=0;HaplotypeScore=12.29;MQ=20.17;MQ0=11;OQ=284.41;QD=8.89;SB=-48.56	GT:AD:DP:GL:GQ	1/1:9,23:8:-32.02,-2.41,-0.00:24.08
-chr1	2045505	.	C	T	28.68	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=53;Dels=0.00;HRun=0;HaplotypeScore=18.97;MQ=24.13;MQ0=5;QD=0.54;SB=11.04	GT:AD:DP:GL:GQ	0/1:44,9:20:-12.18,-6.03,-54.06:61.51
-chr1	2045518	.	C	G	738.24	SnpCluster	AC=1;AF=0.50;AN=2;DP=54;Dels=0.00;HRun=1;HaplotypeScore=15.01;MQ=25.23;MQ0=2;QD=13.67;SB=-291.20	GT:AD:DP:GL:GQ	0/1:10,44:25:-84.64,-7.53,-25.69:99
-chr1	2045519	.	G	A	107.30	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=55;Dels=0.00;HRun=0;HaplotypeScore=14.97;MQ=25.69;MQ0=2;QD=1.95;SB=11.06	GT:AD:DP:GL:GQ	0/1:46,9:22:-20.64,-6.63,-60.44:99
-chr1	2045523	rs61775456	C	T	1156.65	SnpCluster	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=31.40;MQ=26.13;MQ0=1;QD=21.03;SB=-340.35	GT:AD:DP:GL:GQ	1/1:5,50:30:-119.26,-9.04,-0.01:90.29
-chr1	2045530	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=69;Dels=0.00;HRun=0;HaplotypeScore=38.81;MQ=25.91;MQ0=2;OQ=314.66;QD=4.56;SB=14.05	GT:AD:DP:GL:GQ	0/1:30,39:21:-41.08,-6.33,-36.84:99
-chr1	2045541	rs61775457	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=85.67;MQ=25.28;MQ0=4;OQ=1042.79;QD=14.28;SB=-111.96	GT:AD:DP:GL:GQ	0/1:30,43:36:-118.41,-10.85,-17.33:64.79
-chr1	2045548	rs61775458	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=83;Dels=0.00;HRun=0;HaplotypeScore=80.30;MQ=24.94;MQ0=7;OQ=952.67;QD=11.48;SB=11.05	GT:AD:DP:GL:GQ	0/1:35,48:39:-110.31,-11.76,-31.30:99
-chr1	2045552	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=100;Dels=0.00;HRun=3;HaplotypeScore=82.09;MQ=25.54;MQ0=10;OQ=109.35;QD=1.09;SB=14.08	GT:AD:DP:GL:GQ	0/1:83,17:53:-30.20,-15.98,-173.43:99
-chr1	2045562	rs61775459	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=103;Dels=0.00;HRun=0;HaplotypeScore=44.83;MQ=25.87;MQ0=15;OQ=1085.84;QD=10.54;SB=-112.96	GT:AD:DP:GL:GQ	0/1:18,82:44:-125.15,-13.28,-24.49:99
-chr1	2045577	rs61776561	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=108;Dels=0.00;HRun=0;HaplotypeScore=71.26;MQ=25.93;MQ0=17;OQ=471.38;QD=4.36;SB=-66.29	GT:AD:DP:GL:GQ	0/1:83,25:48:-64.89,-14.47,-100.62:99
-chr1	2045590	rs61776562	C	G	1122.80	HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=89;Dels=0.00;HRun=1;HaplotypeScore=71.62;MQ=27.29;MQ0=12;QD=12.62;SB=-466.47	GT:AD:DP:GL:GQ	0/1:38,51:51:-130.94,-15.38,-82.60:99
-chr1	2045591	.	G	A	91.87	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=89;Dels=0.00;HRun=0;HaplotypeScore=67.28;MQ=27.29;MQ0=12;QD=1.03;SB=20.08	GT:AD:DP:GL:GQ	0/1:68,21:39:-24.23,-11.76,-108.70:99
-chr1	2045595	rs61776563	C	T	1533.88	HARD_TO_VALIDATE;SnpCluster	AC=2;AF=1.00;AN=2;DB;DP=88;Dels=0.00;HRun=0;HaplotypeScore=45.58;MQ=27.30;MQ0=11;QD=17.43;SB=-260.54	GT:AD:DP:GL:GQ	1/1:9,79:49:-170.95,-14.77,-14.14:6.27
-chr1	2045606	.	A	G	34.51	DPFilter;HARD_TO_VALIDATE;Indel;LowQual	AC=1;AF=0.50;AN=2;DP=83;Dels=0.00;HRun=3;HaplotypeScore=43.22;MQ=27.00;MQ0=12;QD=0.42;SB=23.11	GT:AD:DP:GL:GQ	0/1:76,7:41:-19.11,-12.37,-129.33:67.35
-chr1	2045616	.	T	C	78.88	DPFilter;HARD_TO_VALIDATE;Indel	AC=1;AF=0.50;AN=2;DP=65;Dels=0.00;HRun=0;HaplotypeScore=250.84;MQ=27.16;MQ0=10;QD=1.21;SB=21.87	GT:AD:DP:GL:GQ	0/1:53,10:39:-22.94,-11.77,-110.81:99
-chr1	2045620	rs61776564	G	A	378.54	DPFilter;HARD_TO_VALIDATE;Indel	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=91.32;MQ=25.99;MQ0=10;QD=7.14;SB=2.03	GT:AD:DP:GL:GQ	0/1:31,22:26:-48.98,-7.84,-44.75:99
-chr1	2045631	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=41;Dels=0.00;HRun=0;HaplotypeScore=20.68;MQ=23.69;MQ0=10;OQ=345.67;QD=8.43;SB=-190.29	GT:AD:DP:GL:GQ	0/1:16,25:18:-43.28,-5.43,-21.54:99
-chr1	2045638	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=39;Dels=0.00;HRun=0;HaplotypeScore=35.28;MQ=23.82;MQ0=10;OQ=167.44;QD=4.29;SB=-58.06	GT:AD:DP:GL:GQ	0/1:24,15:14:-24.25,-4.23,-24.00:99
-chr1	2045652	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=32;Dels=0.00;HRun=0;HaplotypeScore=49.08;MQ=21.77;MQ0=9;OQ=173.85;QD=5.43;SB=-84.31	GT:AD:DP:GL:GQ	0/1:13,19:7:-22.76,-2.11,-3.10:9.89
-chr1	2045656	.	G	A	40.26	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=30;Dels=0.00;HRun=0;HaplotypeScore=55.88;MQ=22.32;MQ0=8;QD=1.34;SB=-10.00	GT:AD:DP:GL:GQ	0/1:16,14:3:-8.21,-0.90,-3.07:21.65
-chr1	2045667	.	C	T	56.78	SnpCluster	AC=1;AF=0.50;AN=2;DP=26;Dels=0.00;HRun=0;HaplotypeScore=27.04;MQ=25.03;MQ0=2;QD=2.18;SB=-3.99	GT:AD:DP:GL:GQ	0/1:9,17:7:-11.07,-2.11,-11.53:89.62
-chr1	2045670	.	C	T	22.25	LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=24;Dels=0.00;HRun=0;HaplotypeScore=24.25;MQ=25.19;MQ0=1;QD=0.93;SB=-10.00	GT:AD:DP:GL:GQ	0/1:5,19:3:-6.41,-0.91,-3.37:24.66
-chr1	2045674	.	G	A	38.46	LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=25;Dels=0.00;HRun=0;HaplotypeScore=35.09;MQ=29.74;MQ0=1;QD=1.54;SB=-10.00	GT:AD:DP:GL:GQ	0/1:10,15:4:-8.34,-1.21,-6.59:53.87
-chr1	2045688	rs61776565	C	T	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=37.51;MQ=32.86;MQ0=0;OQ=472.91;QD=12.78;SB=-219.35	GT:AD:DP:GL:GQ	1/1:8,29:13:-50.88,-3.92,-0.00:39.13
-chr1	2045716	rs11589827	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=37.92;MQ=32.79;MQ0=0;OQ=1051.52;QD=19.47;SB=-363.54	GT:AD:DP:GL:GQ	0/1:22,32:36:-119.28,-10.85,-21.22:99
-chr1	2045975	rs56260599	A	G	8.24	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=2;HaplotypeScore=2.17;MQ=48.30;MQ0=0;OQ=1370.04;QD=29.78;SB=-550.86	GT:AD:DP:GL:GQ	1/1:0,45:39:-140.61,-11.75,-0.02:99
-chr1	2047610	rs3107154	A	C	149.56	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=57.43;MQ0=0;OQ=1416.93;QD=32.20;SB=-509.01	GT:AD:DP:GL:GQ	1/1:0,44:41:-145.30,-12.35,-0.02:99
-chr1	2047883	rs3128291	A	G	544.70	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.59;MQ0=0;OQ=1311.92;QD=28.52;SB=-584.18	GT:AD:DP:GL:GQ	1/1:0,46:44:-134.83,-13.28,-0.06:99
-chr1	2050384	rs3107155	T	C	5.04	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=2;HaplotypeScore=1.93;MQ=59.45;MQ0=0;OQ=1167.72;QD=27.80;SB=-528.96	GT:AD:DP:GL:GQ	1/1:0,42:38:-120.40,-11.47,-0.04:99
-chr1	2050490	rs3107156	T	C	249.61	PASS	AC=2;AF=1.00;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=1.41;MQ=60.00;MQ0=0;OQ=2021.38;QD=30.17;SB=-957.45	GT:AD:DP:GL:GQ	1/1:0,67:63:-205.77,-19.00,-0.05:99
-chr1	2050592	rs10797427	C	T	209.13	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=60.00;MQ0=0;OQ=2020.11;QD=36.73;SB=-999.03	GT:AD:DP:GL:GQ	1/1:0,54:53:-205.62,-15.97,-0.03:99
-chr1	2051236	rs6603815	T	C	200	PASS	AC=2;AF=1.00;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=58.85;MQ0=0;OQ=2560.21;QD=35.07;SB=-874.04	GT:AD:DP:GL:GQ	1/1:0,73:73:-259.63,-21.99,-0.03:99
-chr1	2051829	rs3107157	T	C	631.33	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.47;MQ0=0;OQ=1661.55;QD=30.21;SB=-807.71	GT:AD:DP:GL:GQ	1/1:0,55:52:-169.78,-15.68,-0.04:99
-chr1	2053024	rs2222217	G	A	330.52	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=57.94;MQ0=0;OQ=1814.00;QD=39.43;SB=-879.02	GT:AD:DP:GL:GQ	1/1:0,46:46:-185.00,-13.86,-0.01:99
-chr1	2055199	rs3128293	A	G	0.17	PASS	AC=2;AF=1.00;AN=2;DB;DP=22;Dels=0.00;HRun=4;HaplotypeScore=2.50;MQ=57.87;MQ0=0;OQ=714.48;QD=32.48;SB=-354.81	GT:AD:DP:GL:GQ	1/1:0,22:21:-75.04,-6.33,-0.01:63.18
-chr1	2055203	rs3128294	G	C	31.92	PASS	AC=2;AF=1.00;AN=2;DB;DP=26;Dels=0.00;HRun=0;HaplotypeScore=2.50;MQ=59.11;MQ0=0;OQ=958.73;QD=36.87;SB=-480.55	GT:AD:DP:GL:GQ	1/1:0,26:24:-99.47,-7.24,-0.01:72.23
-chr1	2056850	rs55958603	C	T	1.19	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=3;HaplotypeScore=3.45;MQ=57.77;MQ0=0;OQ=633.04;QD=15.07;SB=-129.09	GT:AD:DP:GL:GQ	0/1:21,21:38:-78.03,-11.45,-68.95:99
-chr1	2058340	rs3128295	C	T	135.04	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=2.75;MQ=57.98;MQ0=0;OQ=1478.85;QD=33.61;SB=-754.65	GT:AD:DP:GL:GQ	1/1:0,43:39:-151.49,-11.75,-0.02:99
-chr1	2058766	rs3128296	G	T	62.70	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=1;HaplotypeScore=0.47;MQ=59.52;MQ0=0;OQ=1387.47;QD=35.58;SB=-366.86	GT:AD:DP:GL:GQ	1/1:0,39:38:-142.34,-11.45,-0.01:99
-chr1	2060181	rs411021	T	C	39.97	PASS	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.00;HRun=1;HaplotypeScore=0.32;MQ=58.62;MQ0=0;OQ=1893.37;QD=29.58;SB=-877.01	GT:AD:DP:GL:GQ	1/1:0,64:60:-192.98,-18.10,-0.06:99
-chr1	2061200	rs424079	C	A	282.41	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=1.42;MQ=59.70;MQ0=0;OQ=2061.38;QD=33.25;SB=-816.15	GT:AD:DP:GL:GQ	1/1:2,60:59:-209.75,-17.78,-0.03:99
-chr1	2061416	rs436045	A	G	341.67	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.68;MQ0=0;OQ=1852.88;QD=31.95;SB=-463.52	GT:AD:DP:GL:GQ	1/1:0,58:55:-188.90,-16.57,-0.02:99
-chr1	2061625	rs364677	A	G	92.05	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=1;HaplotypeScore=2.94;MQ=57.88;MQ0=0;OQ=1754.29;QD=33.10;SB=-829.10	GT:AD:DP:GL:GQ	1/1:0,53:50:-179.03,-15.06,-0.02:99
-chr1	2062860	rs2945573	A	G	10.32	PASS	AC=2;AF=1.00;AN=2;DB;DP=37;Dels=0.00;HRun=1;HaplotypeScore=3.09;MQ=53.50;MQ0=0;OQ=1269.78;QD=34.32;SB=-473.51	GT:AD:DP:GL:GQ	1/1:0,37:36:-130.57,-10.84,-0.01:99
-chr1	2063413	rs643076	A	G	32.55	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DB;DP=10;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=23.27;MQ0=4;QD=3.26;SB=-41.68	GT:AD:DP:GL:GQ	1/1:0,9:2:-6.66,-0.60,-0.00:6.02
-chr1	2063477	.	C	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=79;Dels=0.00;HRun=1;HaplotypeScore=9.72;MQ=34.90;MQ0=16;OQ=82.45;QD=1.04;SB=5.04	GT:AD:DP:GL:GQ	0/1:72,7:47:-25.69,-14.16,-141.31:99
-chr1	2063706	rs56038539	T	C	3.16	PASS	AC=2;AF=1.00;AN=2;DB;DP=7;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=41.37;MQ0=1;OQ=139.38;QD=19.91;SB=-78.92	GT:AD:DP:GL:GQ	1/1:0,7:5:-17.50,-1.51,-0.00:15.04
-chr1	2068664	.	C	T	1.14	PASS	AC=1;AF=0.50;AN=2;DP=87;Dels=0.00;HRun=1;HaplotypeScore=4.59;MQ=58.77;MQ0=0;OQ=1604.59;QD=18.44;SB=-789.85	GT:AD:DP:GL:GQ	0/1:40,47:84:-189.05,-25.30,-139.35:99
-chr1	2076421	rs2459983	A	G	9.14	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=6.88;MQ=57.31;MQ0=0;OQ=556.13;QD=9.43;SB=-262.92	GT:AD:DP:GL:GQ	0/1:36,23:54:-75.17,-16.28,-123.64:99
-chr1	2080370	.	G	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=51;Dels=0.00;HRun=2;HaplotypeScore=7.10;MQ=51.87;MQ0=1;OQ=83.25;QD=1.63;SB=68.25	GT:AD:DP:GL:GQ	0/1:34,17:35:-22.19,-10.58,-111.66:99
-chr1	2084392	rs12132341	G	A	174.47	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=1;HaplotypeScore=2.02;MQ=59.31;MQ0=0;OQ=863.52;QD=15.99;SB=-268.13	GT:AD:DP:GL:GQ	0/1:26,28:52:-105.30,-15.67,-88.61:99
-chr1	2089742	rs12137653	G	A	181.23	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=1;HaplotypeScore=1.72;MQ=58.90;MQ0=0;OQ=1123.18;QD=19.04;SB=-544.82	GT:AD:DP:GL:GQ	0/1:23,36:56:-132.48,-16.88,-70.24:99
-chr1	2096700	rs12135175	T	C	69.07	PASS	AC=2;AF=1.00;AN=2;DB;DP=14;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=484.58;QD=34.61;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,14:14:-52.05,-4.22,-0.00:42.13
-chr1	2096756	rs12135178	T	C	1.47	PASS	AC=2;AF=1.00;AN=2;DB;DP=3;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=63.69;QD=21.23;SB=-45.69	GT:AD:DP:GL:GQ	1/1:0,3:3:-9.86,-0.91,-0.00:9.02
-chr1	2097150	.	G	T	29.88	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=19;Dels=0.00;HRun=2;HaplotypeScore=4.60;MQ=59.01;MQ0=0;QD=1.57;SB=20.09	GT:AD:DP:GL:GQ	0/1:12,7:13:-10.19,-3.92,-36.97:62.71
-chr1	2103132	.	T	G	33.73	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=67;Dels=0.00;HRun=2;HaplotypeScore=13.23;MQ=58.26;MQ0=0;QD=0.50;SB=77.26	GT:AD:DP:GL:GQ	0/1:40,27:45:-20.22,-13.56,-132.60:66.56
-chr1	2103519	.	T	G	34.88	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=53;Dels=0.00;HRun=1;HaplotypeScore=24.16;MQ=56.69;MQ0=0;QD=0.66;SB=65.20	GT:AD:DP:GL:GQ	0/1:32,21:34:-17.01,-10.24,-99.26:67.71
-chr1	2110321	rs12145923	A	C	0.48	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=12.44;MQ=52.00;MQ0=0;OQ=558.55;QD=9.01;SB=-276.83	GT:AD:DP:GL:GQ	0/1:36,25:56:-76.01,-16.87,-110.27:99
-chr1	2119788	.	T	C	18.51	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=56;Dels=0.00;HRun=3;HaplotypeScore=2.86;MQ=58.76;MQ0=0;QD=0.33;SB=56.21	GT:AD:DP:GL:GQ	0/1:41,15:42:-17.79,-12.66,-139.27:51.28
-chr1	2129255	.	C	G	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=34;Dels=0.00;HRun=0;HaplotypeScore=12.54;MQ=53.09;MQ0=0;OQ=134.48;QD=3.96;SB=-44.78	GT:AD:DP:GL:GQ	0/1:28,6:25:-24.27,-7.54,-83.09:99
-chr1	2130727	.	C	A	3.24	PASS	AC=1;AF=0.50;AN=2;DP=42;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=60.00;MQ0=0;OQ=883.89;QD=21.05;SB=-232.51	GT:AD:DP:GL:GQ	0/1:13,29:42:-104.32,-12.65,-47.37:99
-chr1	2133967	rs2503715	A	G	158.02	PASS	AC=1;AF=0.50;AN=2;DB;DP=24;Dels=0.00;HRun=0;HaplotypeScore=1.96;MQ=60.00;MQ0=0;OQ=295.10;QD=12.30;SB=-168.37	GT:AD:DP:GL:GQ	0/1:13,11:24:-40.02,-7.23,-52.87:99
-chr1	2146787	.	G	T	26.55	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=55;Dels=0.00;HRun=20;HaplotypeScore=12.86;MQ=49.19;MQ0=1;QD=0.48;SB=62.22	GT:AD:DP:GL:GQ	0/1:43,12:38:-17.39,-11.45,-117.88:59.38
-chr1	2157661	.	T	G	18.80	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=58;Dels=0.00;HRun=2;HaplotypeScore=22.82;MQ=58.47;MQ0=0;QD=0.32;SB=110.33	GT:AD:DP:GL:GQ	0/1:45,13:50:-20.22,-15.06,-154.85:51.58
-chr1	2158219	.	G	A	102.84	PASS	AC=1;AF=0.50;AN=2;DP=47;Dels=0.00;HRun=0;HaplotypeScore=1.60;MQ=58.11;MQ0=0;OQ=732.58;QD=15.59;SB=-362.51	GT:AD:DP:GL:GQ	0/1:23,24:45:-90.10,-13.56,-76.34:99
-chr1	2159397	.	G	A	168.87	PASS	AC=1;AF=0.50;AN=2;DP=41;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.44;MQ0=0;OQ=557.34;QD=13.59;SB=-169.24	GT:AD:DP:GL:GQ	0/1:23,18:39:-70.77,-11.75,-72.68:99
-chr1	2162698	rs55996607	T	A	417.68	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.63;MQ0=0;OQ=618.41;QD=12.13;SB=-230.72	GT:AD:DP:GL:GQ	0/1:28,23:50:-80.19,-15.06,-104.77:99
-chr1	2164572	rs263525	T	C	240.22	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=1.18;MQ=58.19;MQ0=0;OQ=1470.94;QD=30.02;SB=-709.84	GT:AD:DP:GL:GQ	1/1:0,49:48:-150.72,-14.48,-0.04:99
-chr1	2166877	rs4648817	C	T	227.81	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=1.25;MQ=42.45;MQ0=0;OQ=888.81;QD=15.06;SB=-258.26	GT:AD:DP:GL:GQ	0/1:29,28:53:-108.14,-15.97,-85.30:99
-chr1	2167087	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=78;Dels=0.03;HRun=20;HaplotypeScore=33.19;MQ=45.08;MQ0=3;OQ=60.74;QD=0.78;SB=86.28	GT:AD:DP:GL:GQ	0/1:57,18:48:-23.51,-14.16,-146.86:93.57
-chr1	2172859	rs55827021	G	A	215.80	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=2.72;MQ=60.00;MQ0=0;OQ=711.82;QD=15.47;SB=-343.87	GT:AD:DP:GL:GQ	0/1:21,25:42:-87.13,-12.66,-66.29:99
-chr1	2181828	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=69;Dels=0.01;HRun=5;HaplotypeScore=57.83;MQ=51.68;MQ0=2;OQ=160.28;QD=2.32;SB=74.25	GT:AD:DP:GL:GQ	0/1:46,21:51:-34.38,-15.07,-143.28:99
-chr1	2181834	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=76;Dels=0.00;HRun=20;HaplotypeScore=10.75;MQ=49.92;MQ0=3;OQ=651.07;QD=8.57;SB=86.24	GT:AD:DP:GL:GQ	0/1:47,28:67:-88.59,-20.20,-142.58:99
-chr1	2190201	rs4648625	G	T	81.26	PASS	AC=2;AF=1.00;AN=2;DB;DP=43;Dels=0.00;HRun=1;HaplotypeScore=2.89;MQ=59.03;MQ0=0;OQ=1500.00;QD=34.88;SB=-738.07	GT:AD:DP:GL:GQ	1/1:0,43:43:-153.60,-12.95,-0.02:99
-chr1	2194650	rs4648819	G	A	133.33	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=2;HaplotypeScore=0.82;MQ=60.00;MQ0=0;OQ=743.48;QD=16.52;SB=-314.80	GT:AD:DP:GL:GQ	0/1:22,23:44:-90.89,-13.26,-76.95:99
-chr1	2200056	rs55778641	A	C	21.64	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=4.74;MQ=60.00;MQ0=0;OQ=608.53;QD=12.95;SB=-87.63	GT:AD:DP:GL:GQ	0/1:21,26:44:-77.39,-13.25,-77.32:99
-chr1	2201955	.	C	T	11.73	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=24;Dels=0.00;HRun=0;HaplotypeScore=16.61;MQ=30.48;MQ0=8;QD=0.49;SB=-3.98	GT:AD:DP:GL:GQ	0/1:18,6:8:-6.84,-2.41,-19.02:44.27
-chr1	2202003	.	A	G	11.74	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=39;Dels=0.00;HRun=1;HaplotypeScore=7.13;MQ=18.21;MQ0=12;QD=0.30;SB=-3.98	GT:AD:DP:GL:GQ	0/1:31,8:9:-7.14,-2.71,-26.71:44.28
-chr1	2202019	.	C	A	24.05	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=23;Dels=0.00;HRun=0;HaplotypeScore=1.76;MQ=18.13;MQ0=6;QD=1.05;SB=-6.99	GT:AD:DP:GL:GQ	0/1:15,8:6:-7.50,-1.81,-11.06:56.87
-chr1	2202047	.	A	G	0.03	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=25;Dels=0.00;HRun=1;HaplotypeScore=10.59;MQ=18.96;MQ0=8;OQ=148.17;QD=5.93;SB=-3.98	GT:AD:DP:GL:GQ	0/1:17,8:9:-20.81,-2.71,-12.59:98.81
-chr1	2202060	.	C	T	1.87	PASS	AC=1;AF=0.50;AN=2;DP=30;Dels=0.00;HRun=0;HaplotypeScore=3.16;MQ=16.70;MQ0=15;OQ=178.09;QD=5.94;SB=-4.00	GT:AD:DP:GL:GQ	0/1:17,12:9:-23.81,-2.71,-8.44:57.22
-chr1	2202081	.	C	T	18.49	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=39;Dels=0.03;HRun=0;HaplotypeScore=43.99;MQ=16.84;MQ0=21;QD=0.47;SB=-6.99	GT:AD:DP:GL:GQ	0/1:31,7:8:-7.54,-2.41,-18.75:51.27
-chr1	2202085	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=40;Dels=0.03;HRun=0;HaplotypeScore=35.15;MQ=14.59;MQ0=24;OQ=74.01;QD=1.85;SB=-48.55	GT:AD:DP:GL:GQ	0/1:30,9:6:-12.50,-1.81,-8.79:69.79
-chr1	2202103	.	C	T	23.47	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=41;Dels=0.00;HRun=0;HaplotypeScore=12.67;MQ=15.94;MQ0=20;QD=0.57;SB=-6.99	GT:AD:DP:GL:GQ	0/1:31,9:7:-7.74,-2.11,-15.15:56.28
-chr1	2202167	.	C	A	13.22	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=60;Dels=0.00;HRun=1;HaplotypeScore=11.12;MQ=8.91;MQ0=36;QD=0.22;SB=-10.00	GT:AD:DP:GL:GQ	0/1:51,9:4:-5.79,-1.21,-5.41:41.98
-chr1	2202296	.	C	A	18.94	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=49;Dels=0.00;HRun=1;HaplotypeScore=9.91;MQ=10.32;MQ0=37;QD=0.39;SB=-10.00	GT:AD:DP:GL:GQ	0/1:36,13:6:-6.98,-1.81,-13.53:51.72
-chr1	2202348	.	A	G	10.17	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=66;Dels=0.00;HRun=1;HaplotypeScore=23.55;MQ=13.35;MQ0=40;QD=0.15;SB=-25.65	GT:AD:DP:GL:GQ	0/1:57,8:7:-6.37,-2.11,-18.82:42.57
-chr1	2202364	.	C	T	0.03	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=42;Dels=0.00;HRun=0;HaplotypeScore=2.75;MQ=20.33;MQ0=13;OQ=62.56;QD=1.49;SB=-32.09	GT:AD:DP:GL:GQ	0/1:34,6:7:-15.23,-5.69,-14.13:84.42
-chr1	2202391	.	A	G	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=43;Dels=0.00;HRun=1;HaplotypeScore=5.05;MQ=22.23;MQ0=9;OQ=175.98;QD=4.09;SB=-54.84	GT:AD:DP:GL:GQ	0/1:26,17:18:-26.30,-5.42,-41.13:99
-chr1	2202434	.	A	G	21.78	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=27;Dels=0.00;HRun=1;HaplotypeScore=15.47;MQ=13.87;MQ0=17;QD=0.81;SB=-34.93	GT:AD:DP:GL:GQ	0/1:19,8:5:-6.97,-1.51,-11.89:54.59
-chr1	2202602	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=65;Dels=0.00;HRun=0;HaplotypeScore=59.56;MQ=10.62;MQ0=43;OQ=145.43;QD=2.24;SB=-6.99	GT:AD:DP:GL:GQ	0/1:30,35:7:-19.94,-2.11,-6.77:46.57
-chr1	2202632	.	G	T	82.62	HARD_TO_VALIDATE;Indel	AC=1;AF=0.50;AN=2;DP=70;Dels=0.00;HRun=0;HaplotypeScore=1.62;MQ=11.21;MQ0=49;QD=1.18;SB=-10.00	GT:AD:DP:GL:GQ	0/1:61,9:9:-14.26,-2.71,-18.59:99
-chr1	2202667	.	A	C	16.33	DPFilter;HARD_TO_VALIDATE;Indel;LowQual	AC=1;AF=0.50;AN=2;DP=73;Dels=0.00;HRun=0;HaplotypeScore=25.34;MQ=10.07;MQ0=49;QD=0.22;SB=8.05	GT:AD:DP:GL:GQ	0/1:64,9:8:-7.32,-2.41,-22.67:49.06
-chr1	2202682	.	G	A	36.23	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=75;Dels=0.00;HRun=1;HaplotypeScore=78.01;MQ=9.70;MQ0=44;QD=0.48;SB=-3.98	GT:AD:DP:GL:GQ	0/1:63,12:4:-8.11,-1.20,-7.39:61.88
-chr1	2202686	.	G	A	35.24	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=71;Dels=0.00;HRun=0;HaplotypeScore=79.87;MQ=9.88;MQ0=42;QD=0.50;SB=-3.99	GT:AD:DP:GL:GQ	0/1:59,12:4:-8.01,-1.21,-5.99:47.86
-chr1	2202707	.	C	T	38.48	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=47;Dels=0.00;HRun=0;HaplotypeScore=10.09;MQ=9.21;MQ0=26;QD=0.82;SB=-10.00	GT:AD:DP:GL:GQ	0/1:44,3:4:-8.34,-1.21,-5.59:43.85
-chr1	2202728	.	T	C	26.83	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DP=25;Dels=0.00;HRun=0;HaplotypeScore=9.84;MQ=8.94;MQ0=16;QD=1.07;SB=-10.00	GT:AD:DP:GL:GQ	1/1:12,12:2:-6.09,-0.60,-0.00:6.01
-chr1	2202823	.	G	A	38.25	LowQual	AC=1;AF=0.50;AN=2;DP=10;Dels=0.00;HRun=1;HaplotypeScore=5.28;MQ=19.51;MQ0=2;QD=3.82;SB=-10.00	GT:AD:DP:GL:GQ	0/1:2,8:3:-8.01,-0.90,-3.57:26.65
-chr1	2203054	.	A	C	12.92	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=42;Dels=0.00;HRun=0;HaplotypeScore=2.41;MQ=9.60;MQ0=26;QD=0.31;SB=-27.98	GT:AD:DP:GL:GQ	0/1:36,6:4:-5.76,-1.21,-6.84:45.53
-chr1	2203334	.	C	T	27.36	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=29;Dels=0.00;HRun=0;HaplotypeScore=7.10;MQ=12.34;MQ0=21;QD=0.94;SB=-37.65	GT:AD:DP:GL:GQ	0/1:21,8:4:-7.23,-1.21,-5.77:45.59
-chr1	2203377	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=37;Dels=0.00;HRun=0;HaplotypeScore=20.17;MQ=13.03;MQ0=22;OQ=140.31;QD=3.79;SB=-42.53	GT:AD:DP:GL:GQ	0/1:23,14:7:-19.42,-2.11,-7.14:50.30
-chr1	2203636	.	C	T	0.06	PASS	AC=1;AF=0.50;AN=2;DP=37;Dels=0.00;HRun=0;HaplotypeScore=2.79;MQ=18.31;MQ0=12;OQ=75.25;QD=2.03;SB=-3.99	GT:AD:DP:GL:GQ	0/1:28,9:19:-16.53,-5.73,-47.88:99
-chr1	2203679	rs2643914	C	T	0.11	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=6.14;MQ=18.30;MQ0=12;OQ=93.96;QD=1.92;SB=-63.48	GT:AD:DP:GL:GQ	0/1:36,12:24:-19.91,-7.23,-64.90:99
-chr1	2203718	rs2645079	T	C	32.47	PASS	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=22.98;MQ0=8;OQ=123.75;QD=3.75;SB=-10.00	GT:AD:DP:GL:GQ	0/1:13,20:15:-20.18,-4.52,-29.86:99
-chr1	2203765	rs12117574	T	C	0.05	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=2;HaplotypeScore=5.02;MQ=32.99;MQ0=11;OQ=133.28;QD=2.18;SB=-88.55	GT:AD:DP:GL:GQ	0/1:50,11:38:-28.07,-11.46,-111.19:99
-chr1	2204009	.	C	G	47.74	PASS	AC=1;AF=0.50;AN=2;DP=41;Dels=0.00;HRun=0;HaplotypeScore=1.16;MQ=47.05;MQ0=0;OQ=366.61;QD=8.94;SB=-120.51	GT:AD:DP:GL:GQ	0/1:27,14:39:-51.71,-11.77,-108.96:99
-chr1	2206228	rs4648821	T	G	261.20	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=1;HaplotypeScore=0.95;MQ=59.19;MQ0=0;OQ=657.01;QD=12.63;SB=-349.05	GT:AD:DP:GL:GQ	0/1:29,23:51:-84.34,-15.36,-102.93:99
-chr1	2206251	rs6689315	A	G	495.75	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.86;MQ0=0;OQ=794.59;QD=13.94;SB=-403.30	GT:AD:DP:GL:GQ	0/1:29,28:56:-99.61,-16.87,-113.15:99
-chr1	2206925	rs61759158	G	A	51.82	PASS	AC=1;AF=0.50;AN=2;DB;DP=30;Dels=0.00;HRun=0;HaplotypeScore=0.90;MQ=54.01;MQ0=0;OQ=371.96;QD=12.40;SB=-7.00	GT:AD:DP:GL:GQ	0/1:17,13:28:-48.92,-8.45,-48.51:99
-chr1	2207673	.	G	C	46.34	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=45;Dels=0.00;HRun=3;HaplotypeScore=11.90;MQ=55.68;MQ0=0;QD=1.03;SB=71.27	GT:AD:DP:GL:GQ	0/1:33,12:36:-18.77,-10.85,-141.59:79.18
-chr1	2207894	.	C	T	62.11	PASS	AC=1;AF=0.50;AN=2;DP=83;Dels=0.00;HRun=0;HaplotypeScore=3.51;MQ=60.00;MQ0=0;OQ=1408.04;QD=16.96;SB=-562.41	GT:AD:DP:GL:GQ	0/1:38,45:79:-167.91,-23.82,-117.96:99
-chr1	2208688	rs10910049	G	T	213.58	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=0.63;MQ=47.61;MQ0=2;OQ=399.96;QD=8.89;SB=-196.49	GT:AD:DP:GL:GQ	0/1:28,17:40:-55.33,-12.05,-79.33:99
-chr1	2208825	rs6691983	C	T	81.79	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=2.59;MQ=52.03;MQ0=1;OQ=657.40;QD=17.30;SB=-233.73	GT:AD:DP:GL:GQ	0/1:18,20:35:-79.57,-10.55,-49.20:99
-chr1	2208828	rs6682474	G	A	54.35	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=3.33;MQ=53.40;MQ0=1;OQ=696.36;QD=18.33;SB=-278.18	GT:AD:DP:GL:GQ	0/1:17,21:37:-84.07,-11.15,-57.35:99
-chr1	2209299	rs56051051	T	G	55.14	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=4.99;MQ=58.49;MQ0=0;OQ=442.31;QD=9.41;SB=-244.75	GT:AD:DP:GL:GQ	0/1:22,25:42:-60.17,-12.66,-79.16:99
-chr1	2209740	rs17372827	A	C	232.76	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=1;HaplotypeScore=0.99;MQ=60.00;MQ0=0;OQ=877.78;QD=13.10;SB=-279.93	GT:AD:DP:GL:GQ	0/1:36,31:66:-110.94,-19.88,-129.70:99
-chr1	2209930	rs4648823	T	A	295.53	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=3.07;MQ=59.11;MQ0=0;OQ=697.00;QD=13.40;SB=-278.32	GT:AD:DP:GL:GQ	0/1:27,24:50:-88.05,-15.06,-97.62:99
-chr1	2210285	rs2643884	T	C	4	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=5.32;MQ=58.60;MQ0=0;OQ=1465.33;QD=29.31;SB=-698.59	GT:AD:DP:GL:GQ	1/1:0,50:47:-150.17,-14.18,-0.05:99
-chr1	2210377	rs1039065	A	C	393.22	PASS	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.65;MQ0=0;OQ=1107.46;QD=29.14;SB=-383.86	GT:AD:DP:GL:GQ	1/1:0,38:36:-114.37,-10.85,-0.04:99
-chr1	2210509	rs2017143	C	T	306.58	PASS	AC=2;AF=1.00;AN=2;DB;DP=33;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=57.15;MQ0=0;OQ=1280.02;QD=38.79;SB=-395.53	GT:AD:DP:GL:GQ	1/1:0,33:33:-131.60,-9.94,-0.01:99
-chr1	2211082	rs2643885	A	C	289.56	PASS	AC=2;AF=1.00;AN=2;DB;DP=29;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.73;MQ0=0;OQ=1017.95;QD=35.10;SB=-113.02	GT:AD:DP:GL:GQ	1/1:0,29:29:-105.39,-8.74,-0.01:87.26
-chr1	2211133	rs2843166	C	A	247.56	PASS	AC=2;AF=1.00;AN=2;DB;DP=24;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=55.20;MQ0=0;OQ=767.67;QD=31.99;SB=-111.83	GT:AD:DP:GL:GQ	1/1:0,24:23:-80.36,-6.93,-0.01:69.19
-chr1	2211394	rs903924	A	G	577.26	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.63;MQ0=0;OQ=1710.61;QD=33.54;SB=-819.09	GT:AD:DP:GL:GQ	1/1:0,51:49:-174.66,-14.76,-0.02:99
-chr1	2211494	rs903923	G	C	2.57	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=1;HaplotypeScore=5.22;MQ=56.20;MQ0=0;OQ=1828.69;QD=36.57;SB=-846.47	GT:AD:DP:GL:GQ	1/1:0,50:45:-186.48,-13.57,-0.02:99
-chr1	2211496	rs903922	A	T	57.75	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=3.95;MQ=56.42;MQ0=0;OQ=1691.54;QD=31.92;SB=-801.63	GT:AD:DP:GL:GQ	1/1:0,53:49:-172.77,-14.77,-0.03:99
-chr1	2211936	rs903921	G	A	86.49	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=3.09;MQ=57.20;MQ0=0;OQ=1373.97;QD=32.71;SB=-609.72	GT:AD:DP:GL:GQ	1/1:1,40:39:-143.60,-11.76,-2.62:91.42
-chr1	2212420	rs903920	A	G	98.07	PASS	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=59.39;MQ0=0;OQ=1274.47;QD=33.54;SB=-555.35	GT:AD:DP:GL:GQ	1/1:0,38:37:-131.05,-11.15,-0.02:99
-chr1	2212443	rs903919	T	C	439.40	PASS	AC=2;AF=1.00;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=897.63;QD=27.20;SB=-373.47	GT:AD:DP:GL:GQ	1/1:0,33:30:-93.38,-9.05,-0.03:90.19
-chr1	2212983	rs2172900	T	C	377	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.42;MQ0=0;OQ=1306.72;QD=32.67;SB=-161.75	GT:AD:DP:GL:GQ	1/1:0,40:40:-134.28,-12.05,-0.02:99
-chr1	2213118	rs2132303	T	C	18.89	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=1;HaplotypeScore=0.32;MQ=58.55;MQ0=0;OQ=1347.55;QD=32.08;SB=-116.87	GT:AD:DP:GL:GQ	1/1:0,41:39:-138.35,-11.75,-0.01:99
-chr1	2214142	rs903617	A	G	32.99	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=1;HaplotypeScore=2.29;MQ=58.97;MQ0=0;OQ=1261.61;QD=28.04;SB=-567.89	GT:AD:DP:GL:GQ	1/1:0,45:41:-129.80,-12.38,-0.05:99
-chr1	2214469	rs2643886	T	G	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=5;HaplotypeScore=4.66;MQ=57.70;MQ0=0;OQ=1258.31;QD=26.77;SB=-451.03	GT:AD:DP:GL:GQ	1/1:1,46:38:-129.44,-11.45,-0.02:99
-chr1	2214505	rs2645091	A	G	160.46	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=1.94;MQ=58.58;MQ0=0;OQ=1430.84;QD=31.11;SB=-424.25	GT:AD:DP:GL:GQ	1/1:0,46:44:-146.70,-13.26,-0.03:99
-chr1	2214736	rs10910050	A	C	929.01	Indel	AC=2;AF=1.00;AN=2;DB;DP=34;Dels=0.00;HRun=9;HaplotypeScore=4.06;MQ=59.20;MQ0=0;QD=27.32;SB=-435.82	GT:AD:DP:GL:GQ	1/1:1,33:28:-96.50,-8.43,-0.01:84.23
-chr1	2215144	rs1532385	G	A	183.41	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=1.23;MQ=59.56;MQ0=0;OQ=1969.69;QD=37.88;SB=-987.83	GT:AD:DP:GL:GQ	1/1:1,51:50:-200.57,-15.06,-0.01:99
-chr1	2216193	rs903918	T	A	121.47	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=2.63;MQ=60.00;MQ0=0;OQ=1515.17;QD=34.44;SB=-696.39	GT:AD:DP:GL:GQ	1/1:0,44:41:-155.11,-12.35,-0.01:99
-chr1	2216414	.	T	G	45.79	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=67;Dels=0.00;HRun=2;HaplotypeScore=10.58;MQ=58.61;MQ0=0;QD=0.68;SB=86.26	GT:AD:DP:GL:GQ	0/1:37,30:42:-20.52,-12.66,-118.85:78.63
-chr1	2217282	rs2843163	C	T	190.11	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=4.18;MQ=57.17;MQ0=0;OQ=844.33;QD=16.89;SB=-357.35	GT:AD:DP:GL:GQ	0/1:22,28:45:-101.28,-13.56,-64.72:99
-chr1	2217535	rs56117572	A	C	228.37	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=2.09;MQ=59.71;MQ0=0;OQ=819.93;QD=12.61;SB=-293.99	GT:AD:DP:GL:GQ	0/1:33,32:61:-103.65,-18.38,-105.35:99
-chr1	2219307	rs2643888	A	G	69.82	PASS	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=1;HaplotypeScore=2.64;MQ=59.39;MQ0=0;OQ=1301.49;QD=34.25;SB=-624.24	GT:AD:DP:GL:GQ	1/1:0,38:38:-133.76,-11.45,-0.02:99
-chr1	2219413	rs2843161	C	T	101.78	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=1;HaplotypeScore=0.63;MQ=60.00;MQ0=0;OQ=1668.32;QD=37.92;SB=-845.15	GT:AD:DP:GL:GQ	1/1:0,44:43:-170.43,-12.96,-0.01:99
-chr1	2219777	.	C	T	48.76	PASS	AC=1;AF=0.50;AN=2;DP=42;Dels=0.00;HRun=0;HaplotypeScore=3.44;MQ=59.45;MQ0=0;OQ=599.56;QD=14.28;SB=-283.32	GT:AD:DP:GL:GQ	0/1:19,21:37:-74.40,-11.16,-63.66:99
-chr1	2220425	rs56341331	C	G	57.44	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=1;HaplotypeScore=2.43;MQ=59.52;MQ0=0;OQ=468.59;QD=12.02;SB=-132.55	GT:AD:DP:GL:GQ	0/1:23,16:35:-60.70,-10.56,-79.04:99
-chr1	2221427	rs1809823	G	T	87.22	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=3.27;MQ=59.54;MQ0=0;OQ=673.61;QD=16.43;SB=-228.53	GT:AD:DP:GL:GQ	0/1:18,23:40:-82.70,-12.05,-57.34:99
-chr1	2221826	rs55710545	G	C	290.21	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=0.48;MQ=59.48;MQ0=0;OQ=503.65;QD=11.45;SB=-276.95	GT:AD:DP:GL:GQ	0/1:26,18:42:-66.31,-12.67,-107.95:99
-chr1	2223172	rs903618	A	G	139.54	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=60.00;MQ0=0;OQ=1447.93;QD=30.17;SB=-664.81	GT:AD:DP:GL:GQ	1/1:0,48:47:-148.43,-14.18,-0.05:99
-chr1	2224111	rs1496555	A	G	103.05	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=1;HaplotypeScore=0.32;MQ=57.88;MQ0=0;OQ=1360.32;QD=32.39;SB=-504.48	GT:AD:DP:GL:GQ	1/1:0,42:39:-139.63,-11.75,-0.01:99
-chr1	2224763	rs2256178	C	T	433.01	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.54;MQ0=0;OQ=665.60;QD=16.23;SB=-342.52	GT:AD:DP:GL:GQ	0/1:20,21:41:-82.21,-12.37,-61.19:99
-chr1	2225516	rs11577387	G	A	98.98	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=1.52;MQ=58.87;MQ0=0;OQ=626.11;QD=16.92;SB=-209.93	GT:AD:DP:GL:GQ	0/1:17,20:32:-75.54,-9.65,-40.72:99
-chr1	2226199	rs4648825	T	C	63.68	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=1;HaplotypeScore=3.65;MQ=59.17;MQ0=0;OQ=999.95;QD=17.24;SB=-492.13	GT:AD:DP:GL:GQ	0/1:22,36:55:-119.85,-16.57,-85.50:99
-chr1	2226557	rs2643904	A	G	112.25	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=1;HaplotypeScore=1.91;MQ=59.50;MQ0=0;OQ=1489.85;QD=32.39;SB=-771.11	GT:AD:DP:GL:GQ	1/1:0,46:44:-152.59,-13.26,-0.02:99
-chr1	2226618	rs2843158	G	C	77.30	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=58.95;MQ0=0;OQ=1399.75;QD=34.99;SB=-297.26	GT:AD:DP:GL:GQ	1/1:0,40:37:-143.60,-11.18,-0.04:99
-chr1	2227108	rs11580302	A	G	15.25	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=4.17;MQ=58.99;MQ0=0;OQ=1313.96;QD=28.56;SB=-483.14	GT:AD:DP:GL:GQ	1/1:0,46:42:-135.02,-12.67,-0.04:99
-chr1	2228420	.	T	C	34.45	PASS	AC=1;AF=0.50;AN=2;DP=29;Dels=0.00;HRun=1;HaplotypeScore=0.83;MQ=59.20;MQ0=0;OQ=345.13;QD=11.90;SB=-158.70	GT:AD:DP:GL:GQ	0/1:16,13:29:-46.53,-8.74,-63.45:99
-chr1	2229866	rs2173049	T	C	234.22	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=1.05;MQ=58.01;MQ0=0;OQ=1791.17;QD=29.36;SB=-845.65	GT:AD:DP:GL:GQ	1/1:0,60:57:-182.75,-17.19,-0.05:99
-chr1	2230243	rs2843157	C	T	3.13	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=2;HaplotypeScore=5.43;MQ=58.16;MQ0=0;OQ=293.03;QD=7.71;SB=-52.03	GT:AD:DP:GL:GQ	0/1:21,15:25:-40.13,-7.54,-43.56:99
-chr1	2233378	rs2843156	C	T	2.48	PASS	AC=2;AF=1.00;AN=2;DB;DP=43;Dels=0.00;HRun=2;HaplotypeScore=0.99;MQ=59.97;MQ0=0;OQ=1676.83;QD=39.00;SB=-476.64	GT:AD:DP:GL:GQ	1/1:0,43:42:-171.28,-12.65,-0.01:99
-chr1	2234765	rs2843154	C	T	245.28	PASS	AC=1;AF=0.50;AN=2;DB;DP=32;Dels=0.00;HRun=0;HaplotypeScore=1.16;MQ=59.42;MQ0=0;OQ=364.59;QD=11.39;SB=-94.60	GT:AD:DP:GL:GQ	0/1:19,13:29:-48.48,-8.74,-59.24:99
-chr1	2235081	rs2843153	C	T	158.69	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.00;MQ0=0;OQ=1550.87;QD=36.93;SB=-657.38	GT:AD:DP:GL:GQ	1/1:0,42:40:-158.69,-12.05,-0.01:99
-chr1	2235299	rs2643902	T	C	83.90	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=2.04;MQ=58.80;MQ0=0;OQ=1694.87;QD=26.90;SB=-805.69	GT:AD:DP:GL:GQ	1/1:0,63:54:-173.12,-16.28,-0.05:99
-chr1	2235430	rs2843152	C	G	36.95	PASS	AC=2;AF=1.00;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.38;MQ0=0;OQ=1353.71;QD=36.59;SB=-455.86	GT:AD:DP:GL:GQ	1/1:0,37:35:-138.99,-10.57,-0.03:99
-chr1	2235493	rs2843151	C	T	341.97	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.95;MQ0=0;OQ=1519.57;QD=37.99;SB=-552.74	GT:AD:DP:GL:GQ	1/1:0,40:39:-155.55,-11.75,-0.01:99
-chr1	2237259	rs2643903	T	C	68.22	PASS	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=58.78;MQ0=0;OQ=1099.17;QD=28.93;SB=-371.38	GT:AD:DP:GL:GQ	1/1:0,38:35:-113.53,-10.55,-0.03:99
-chr1	2237347	rs2645076	A	G	8.05	PASS	AC=2;AF=1.00;AN=2;DB;DP=32;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=892.74;QD=27.90;SB=-347.40	GT:AD:DP:GL:GQ	1/1:0,32:29:-92.89,-8.75,-0.03:87.17
-chr1	2237604	rs2843150	G	C	105.40	PASS	AC=2;AF=1.00;AN=2;DB;DP=29;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=58.39;MQ0=0;OQ=929.83;QD=32.06;SB=-483.10	GT:AD:DP:GL:GQ	1/1:0,29:23:-96.58,-6.93,-0.01:69.23
-chr1	2237845	rs2643905	T	C	349.37	PASS	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.39;MQ0=0;OQ=1229.58;QD=32.36;SB=-467.52	GT:AD:DP:GL:GQ	1/1:0,38:37:-126.56,-11.15,-0.02:99
-chr1	2238243	rs60565777	G	T	1452.57	Indel	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=0.33;MQ=60.48;MQ0=0;QD=34.58;SB=-671.66	GT:AD:DP:GL:GQ	1/1:0,42:42:-148.86,-12.66,-0.02:99
-chr1	2238484	rs12035836	A	C	189.10	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=1;HaplotypeScore=0.99;MQ=59.53;MQ0=0;OQ=471.85;QD=11.80;SB=-205.81	GT:AD:DP:GL:GQ	0/1:20,20:36:-61.31,-10.85,-64.85:99
-chr1	2239096	rs2645077	G	A	27.69	PASS	AC=2;AF=1.00;AN=2;DB;DP=34;Dels=0.00;HRun=2;HaplotypeScore=1.28;MQ=59.32;MQ0=0;OQ=1136.46;QD=33.43;SB=-382.99	GT:AD:DP:GL:GQ	1/1:0,33:31:-117.25,-9.35,-0.02:93.28
-chr1	2241682	.	G	A	17.89	PASS	AC=1;AF=0.50;AN=2;DP=34;Dels=0.00;HRun=0;HaplotypeScore=4.02;MQ=57.94;MQ0=0;OQ=417.19;QD=12.27;SB=-164.16	GT:AD:DP:GL:GQ	0/1:17,17:31:-54.36,-9.35,-49.53:99
-chr1	2243754	rs56393204	G	A	58.20	PASS	AC=1;AF=0.50;AN=2;DB;DP=20;Dels=0.00;HRun=0;HaplotypeScore=2.38;MQ=58.84;MQ0=0;OQ=282.27;QD=14.11;SB=-81.31	GT:AD:DP:GL:GQ	0/1:7,11:14:-35.73,-4.22,-15.87:99
-chr1	2244770	rs2645075	T	C	149.18	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=57.02;MQ0=0;OQ=1276.49;QD=27.75;SB=-655.75	GT:AD:DP:GL:GQ	1/1:0,46:42:-131.28,-12.68,-0.05:99
-chr1	2245871	rs2645074	A	G	281.10	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=59.11;MQ0=0;OQ=516.48;QD=10.99;SB=-220.38	GT:AD:DP:GL:GQ	0/1:24,23:43:-67.90,-12.97,-87.14:99
-chr1	2246105	rs2843148	A	T	522.32	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=53.70;MQ0=0;OQ=1342.05;QD=33.55;SB=-593.22	GT:AD:DP:GL:GQ	1/1:0,40:36:-137.80,-10.84,-0.01:99
-chr1	2246150	.	C	T	22.21	PASS	AC=1;AF=0.50;AN=2;DP=31;Dels=0.00;HRun=1;HaplotypeScore=0.63;MQ=51.90;MQ0=0;OQ=477.24;QD=15.39;SB=-219.23	GT:AD:DP:GL:GQ	0/1:15,16:26:-58.85,-7.84,-34.36:99
-chr1	2246331	.	T	A	1.20	PASS	AC=1;AF=0.50;AN=2;DP=32;Dels=0.00;HRun=0;HaplotypeScore=1.33;MQ=56.18;MQ0=0;OQ=642.82;QD=20.09;SB=-121.93	GT:AD:DP:GL:GQ	0/1:11,21:32:-77.21,-9.64,-40.89:99
-chr1	2246422	.	C	T	17.03	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=37;Dels=0.00;HRun=2;HaplotypeScore=46.69;MQ=32.60;MQ0=2;QD=0.46;SB=17.08	GT:AD:DP:GL:GQ	0/1:33,4:25:-12.51,-7.53,-79.77:49.78
-chr1	2246424	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=38;Dels=0.00;HRun=2;HaplotypeScore=54.85;MQ=32.43;MQ0=2;OQ=173.30;QD=4.56;SB=-18.60	GT:AD:DP:GL:GQ	0/1:26,12:25:-28.15,-7.53,-68.25:99
-chr1	2246439	rs9725291	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=1;HaplotypeScore=64.95;MQ=33.89;MQ0=1;OQ=86.92;QD=2.12;SB=-39.19	GT:AD:DP:GL:GQ	0/1:33,8:25:-19.51,-7.53,-71.60:99
-chr1	2246445	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=45;Dels=0.00;HRun=1;HaplotypeScore=48.09;MQ=35.48;MQ0=0;OQ=216.97;QD=4.82;SB=-10.56	GT:AD:DP:GL:GQ	0/1:34,11:29:-33.72,-8.74,-70.74:99
-chr1	2246456	.	C	T	34.43	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=50;Dels=0.00;HRun=1;HaplotypeScore=27.71;MQ=37.83;MQ0=0;QD=0.69;SB=1.58	GT:AD:DP:GL:GQ	0/1:43,7:33:-16.67,-9.94,-103.65:67.27
-chr1	2246469	.	T	C	28.75	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=49;Dels=0.02;HRun=2;HaplotypeScore=77.34;MQ=40.72;MQ0=0;QD=0.59;SB=44.16	GT:AD:DP:GL:GQ	0/1:38,10:28:-14.30,-8.14,-89.44:61.58
-chr1	2246471	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=48;Dels=0.00;HRun=2;HaplotypeScore=72.35;MQ=42.43;MQ0=0;OQ=76.08;QD=1.58;SB=-6.17	GT:AD:DP:GL:GQ	0/1:36,12:29:-19.64,-8.74,-87.84:99
-chr1	2246484	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=38;Dels=0.00;HRun=2;HaplotypeScore=51.65;MQ=47.04;MQ0=0;OQ=81.71;QD=2.15;SB=50.19	GT:AD:DP:GL:GQ	0/1:29,8:26:-19.29,-7.83,-83.08:99
-chr1	2246793	.	G	A	5.64	PASS	AC=1;AF=0.50;AN=2;DP=58;Dels=0.00;HRun=1;HaplotypeScore=3.91;MQ=55.18;MQ0=1;OQ=1074.55;QD=18.53;SB=-560.61	GT:AD:DP:GL:GQ	0/1:23,35:54:-127.01,-16.27,-81.39:99
-chr1	2247067	rs35006635	C	A	47.20	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=58.81;MQ0=0;OQ=1074.59;QD=21.07;SB=-429.40	GT:AD:DP:GL:GQ	1/1:0,28:51:-197.40,-96.91,-86.36:99
-chr1	2247213	rs12566205	C	T	241.62	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=2.55;MQ=57.90;MQ0=0;OQ=759.24;QD=13.09;SB=-368.12	GT:AD:DP:GL:GQ	0/1:33,25:57:-96.39,-17.18,-106.07:99
-chr1	2247351	rs2643892	C	T	241.87	PASS	AC=1;AF=0.50;AN=2;DB;DP=34;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.94;MQ0=0;OQ=665.97;QD=19.59;SB=-340.91	GT:AD:DP:GL:GQ	0/1:14,20:33:-79.82,-9.94,-42.88:99
-chr1	2247555	rs10910051	G	A	197.02	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=4.80;MQ=58.86;MQ0=0;OQ=1049.52;QD=16.15;SB=-447.98	GT:AD:DP:GL:GQ	0/1:31,34:61:-126.63,-18.39,-90.57:99
-chr1	2247587	rs2643893	C	T	300.53	PASS	AC=2;AF=1.00;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=1.88;MQ=58.44;MQ0=0;OQ=2112.94;QD=35.22;SB=-1052.32	GT:AD:DP:GL:GQ	1/1:0,60:56:-214.91,-16.88,-0.03:99
-chr1	2247723	rs2645092	C	T	700.02	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.71;MQ0=0;OQ=2085.22;QD=38.62;SB=-998.04	GT:AD:DP:GL:GQ	1/1:0,54:53:-212.12,-15.97,-0.01:99
-chr1	2247791	rs2645093	G	A	189.38	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=1.83;MQ=60.00;MQ0=0;OQ=700.42;QD=15.92;SB=-289.76	GT:AD:DP:GL:GQ	0/1:22,22:42:-85.99,-12.66,-67.45:99
-chr1	2248183	rs2643894	C	T	135.91	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=2.68;MQ=57.95;MQ0=0;OQ=1940.09;QD=35.27;SB=-797.32	GT:AD:DP:GL:GQ	1/1:0,55:52:-197.62,-15.67,-0.03:99
-chr1	2248333	rs2643895	G	A	408.80	PASS	AC=2;AF=1.00;AN=2;DB;DP=69;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.33;MQ0=0;OQ=2697.00;QD=39.09;SB=-1222.14	GT:AD:DP:GL:GQ	1/1:0,69:68:-273.30,-20.48,-0.02:99
-chr1	2248552	.	C	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=61;Dels=0.00;HRun=0;HaplotypeScore=5.80;MQ=51.38;MQ0=0;OQ=50.72;QD=0.83;SB=23.47	GT:AD:DP:GL:GQ	0/1:53,7:56:-28.20,-19.84,-214.64:83.56
-chr1	2248554	.	G	A	35.21	LowQual	AC=1;AF=0.50;AN=2;DP=62;Dels=0.00;HRun=3;HaplotypeScore=5.80;MQ=51.10;MQ0=0;QD=0.57;SB=-8.06	GT:AD:DP:GL:GQ	0/1:56,6:58:-24.27,-17.47,-188.51:68.04
-chr1	2248658	.	A	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=69;Dels=0.00;HRun=0;HaplotypeScore=1.82;MQ=56.92;MQ0=0;OQ=60.63;QD=0.88;SB=6.91	GT:AD:DP:GL:GQ	0/1:61,8:68:-29.84,-20.49,-240.21:93.47
-chr1	2249886	.	C	T	54.96	PASS	AC=1;AF=0.50;AN=2;DP=51;Dels=0.00;HRun=0;HaplotypeScore=-0.12;MQ=60.00;MQ0=0;OQ=750.55;QD=14.72;SB=-348.88	GT:AD:DP:GL:GQ	0/1:25,26:44:-91.61,-13.27,-61.40:99
-chr1	2249910	rs2645063	G	A	24.12	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=5.82;MQ=59.50;MQ0=0;OQ=758.18;QD=16.48;SB=-336.52	GT:AD:DP:GL:GQ	0/1:22,24:45:-92.67,-13.57,-67.35:99
-chr1	2250405	rs2645064	G	A	151.63	PASS	AC=1;AF=0.50;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=1.94;MQ=58.71;MQ0=0;OQ=569.60;QD=15.82;SB=-242.53	GT:AD:DP:GL:GQ	0/1:16,20:34:-70.49,-10.25,-54.37:99
-chr1	2251037	rs35273536	C	T	60.30	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=4.05;MQ=58.82;MQ0=0;OQ=1072.47;QD=18.18;SB=-334.93	GT:AD:DP:GL:GQ	0/1:24,34:52:-128.89,-18.36,-63.36:99
-chr1	2253264	.	T	C	16.56	Indel;LowQual	AC=1;AF=0.50;AN=2;DP=6;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=51.77;MQ0=0;QD=2.76;SB=-10.00	GT:AD:DP:GL:GQ	0/1:4,2:6:-6.74,-1.81,-16.62:49.30
-chr1	2253282	.	C	G	16.92	PASS	AC=1;AF=0.50;AN=2;DP=12;Dels=0.00;HRun=0;HaplotypeScore=0.92;MQ=51.16;MQ0=0;OQ=118.58;QD=9.88;SB=-10.00	GT:AD:DP:GL:GQ	0/1:6,6:11:-18.46,-3.32,-24.69:99
-chr1	2253362	rs12752072	T	C	172.88	PASS	AC=1;AF=0.50;AN=2;DB;DP=21;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.89;MQ0=0;OQ=253.44;QD=12.07;SB=-10.00	GT:AD:DP:GL:GQ	0/1:10,11:21:-34.96,-6.33,-38.76:99
-chr1	2254886	rs2645066	G	A	78.79	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=1;HaplotypeScore=5.62;MQ=59.17;MQ0=0;OQ=893.72;QD=15.96;SB=-436.47	GT:AD:DP:GL:GQ	0/1:25,31:52:-108.33,-15.67,-85.72:99
-chr1	2255036	rs2645067	T	C	87.26	PASS	AC=2;AF=1.00;AN=2;DB;DP=30;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=58.60;MQ0=0;OQ=995.78;QD=33.19;SB=-523.42	GT:AD:DP:GL:GQ	1/1:0,30:29:-103.17,-8.74,-0.01:87.25
-chr1	2255079	rs2643898	C	T	28.85	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=5.95;MQ=59.03;MQ0=0;OQ=590.58;QD=13.73;SB=-262.25	GT:AD:DP:GL:GQ	0/1:23,20:42:-75.01,-12.66,-72.41:99
-chr1	2255654	rs7546567	G	A	132.53	PASS	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=1.16;MQ=58.73;MQ0=0;OQ=454.68;QD=13.78;SB=-126.36	GT:AD:DP:GL:GQ	0/1:16,16:32:-61.47,-12.72,-52.76:99
-chr1	2255829	rs2843146	T	G	0.05	FDRtranche0.10to1.00	AC=2;AF=1.00;AN=2;DB;DP=16;Dels=0.00;HRun=5;HaplotypeScore=0.00;MQ=58.55;MQ0=0;OQ=441.34;QD=27.58;SB=-113.02	GT:AD:DP:GL:GQ	1/1:0,16:14:-47.73,-4.22,-0.01:42.10
-chr1	2255938	rs2643899	T	C	18.62	PASS	AC=2;AF=1.00;AN=2;DB;DP=32;Dels=0.00;HRun=0;HaplotypeScore=2.33;MQ=58.69;MQ0=0;OQ=756.05;QD=23.63;SB=-323.76	GT:AD:DP:GL:GQ	1/1:0,32:26:-79.22,-7.85,-0.03:78.14
-chr1	2256793	rs903905	C	T	99.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=22;Dels=0.00;HRun=0;HaplotypeScore=2.00;MQ=58.29;MQ0=0;OQ=354.28;QD=16.10;SB=-192.21	GT:AD:DP:GL:GQ	0/1:10,12:21:-45.05,-6.33,-27.84:99
-chr1	2258430	rs12091632	A	G	318.94	PASS	AC=2;AF=1.00;AN=2;DB;DP=34;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.32;MQ0=0;OQ=1030.69;QD=30.31;SB=-507.55	GT:AD:DP:GL:GQ	1/1:0,34:33:-106.69,-9.95,-0.03:99
-chr1	2258440	rs12085675	G	A	96.71	PASS	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=1.15;MQ=59.39;MQ0=0;OQ=1318.84;QD=34.71;SB=-520.68	GT:AD:DP:GL:GQ	1/1:0,37:35:-135.49,-10.55,-0.02:99
-chr1	2258510	rs28394874	C	G	5.91	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=2;HaplotypeScore=4.06;MQ=57.77;MQ0=0;OQ=783.94;QD=18.67;SB=-330.90	GT:AD:DP:GL:GQ	0/1:17,25:36:-92.55,-10.88,-48.65:99
-chr1	2258528	rs35986070	A	G	102.16	PASS	AC=1;AF=0.50;AN=2;DB;DP=27;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.27;MQ0=0;OQ=457.65;QD=16.95;SB=-106.83	GT:AD:DP:GL:GQ	0/1:11,16:27:-57.18,-8.13,-41.35:99
-chr1	2258538	rs2645069	T	C	177.52	PASS	AC=2;AF=1.00;AN=2;DB;DP=25;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.13;MQ0=0;OQ=677.36;QD=27.09;SB=-198.05	GT:AD:DP:GL:GQ	1/1:0,25:23:-71.35,-6.94,-0.03:69.14
-chr1	2258598	rs2645070	A	G	16.76	PASS	AC=1;AF=0.50;AN=2;DB;DP=17;Dels=0.00;HRun=0;HaplotypeScore=1.72;MQ=60.00;MQ0=0;OQ=322.02;QD=18.94;SB=-156.34	GT:AD:DP:GL:GQ	0/1:4,13:17:-40.61,-5.13,-15.36:99
-chr1	2258651	rs2843145	A	G	4.44	PASS	AC=1;AF=0.50;AN=2;DB;DP=27;Dels=0.00;HRun=3;HaplotypeScore=2.01;MQ=59.14;MQ0=0;OQ=426.64;QD=15.80;SB=-196.02	GT:AD:DP:GL:GQ	0/1:8,19:23:-52.88,-6.93,-31.12:99
-chr1	2258910	.	A	G	4.11	PASS	AC=1;AF=0.50;AN=2;DP=35;Dels=0.00;HRun=1;HaplotypeScore=4.17;MQ=58.13;MQ0=0;OQ=457.98;QD=13.09;SB=-246.31	GT:AD:DP:GL:GQ	0/1:17,18:33:-59.02,-9.94,-70.06:99
-chr1	2259759	rs2036085	T	C	103.79	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=1;HaplotypeScore=1.05;MQ=60.00;MQ0=0;OQ=626.01;QD=14.56;SB=-172.51	GT:AD:DP:GL:GQ	0/1:16,27:40:-77.94,-12.06,-63.91:99
-chr1	2259869	rs12734736	C	T	347.07	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=1.11;MQ=60.00;MQ0=0;OQ=965.34;QD=16.64;SB=-492.13	GT:AD:DP:GL:GQ	0/1:29,29:54:-116.09,-16.28,-80.58:99
-chr1	2259958	rs2843142	A	G	263.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=79;Dels=0.00;HRun=1;HaplotypeScore=2.46;MQ=59.76;MQ0=0;OQ=1095.49;QD=13.87;SB=-502.48	GT:AD:DP:GL:GQ	0/1:40,39:78:-136.33,-23.50,-157.46:99
-chr1	2261724	rs2843141	C	T	591.96	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.13;MQ0=0;OQ=1956.29;QD=36.91;SB=-863.62	GT:AD:DP:GL:GQ	1/1:0,53:52:-199.24,-15.68,-0.03:99
-chr1	2262086	rs1472318	C	T	44.42	PASS	AC=1;AF=0.50;AN=2;DB;DP=25;Dels=0.00;HRun=0;HaplotypeScore=1.21;MQ=57.36;MQ0=0;OQ=484.27;QD=19.37;SB=-215.23	GT:AD:DP:GL:GQ	0/1:8,16:22:-58.34,-6.63,-21.67:99
-chr1	2262763	rs2843139	A	G	28.96	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=2;HaplotypeScore=0.87;MQ=58.77;MQ0=0;OQ=1612.91;QD=30.43;SB=-829.43	GT:AD:DP:GL:GQ	1/1:0,53:52:-164.94,-15.69,-0.06:99
-chr1	2262883	.	G	A	16	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=36;Dels=0.00;HRun=0;HaplotypeScore=0.63;MQ=49.61;MQ0=5;QD=0.44;SB=-17.46	GT:AD:DP:GL:GQ	0/1:28,8:25:-12.42,-7.54,-69.64:48.73
-chr1	2263004	rs12730050	A	G	0.31	PASS	AC=1;AF=0.50;AN=2;DB;DP=91;Dels=0.00;HRun=0;HaplotypeScore=14.25;MQ=55.46;MQ0=1;OQ=1032.60;QD=11.35;SB=-477.87	GT:AD:DP:GL:GQ	0/1:51,40:84:-131.86,-25.32,-172.18:99
-chr1	2263146	rs2843138	T	C	3.27	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.02;HRun=0;HaplotypeScore=5.34;MQ=54.41;MQ0=0;OQ=1335.96;QD=29.04;SB=-625.83	GT:AD:DP:GL:GQ	1/1:0,44:44:-137.23,-12.97,-0.04:99
-chr1	2263291	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=38;Dels=0.00;HRun=4;HaplotypeScore=15.31;MQ=57.02;MQ0=0;OQ=65.39;QD=1.72;SB=65.25	GT:AD:DP:GL:GQ	0/1:31,7:33:-19.78,-9.96,-120.76:98.22
-chr1	2263292	.	A	G	14.86	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=36;Dels=0.00;HRun=0;HaplotypeScore=3.96;MQ=57.52;MQ0=0;QD=0.41;SB=62.21	GT:AD:DP:GL:GQ	0/1:29,6:31:-14.10,-9.35,-99.44:47.55
-chr1	2263765	rs1472319	T	C	33.65	PASS	AC=2;AF=1.00;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=3.68;MQ=59.72;MQ0=0;OQ=1846.27;QD=27.56;SB=-842.46	GT:AD:DP:GL:GQ	1/1:0,67:60:-188.28,-18.10,-0.07:99
-chr1	2264170	rs12735747	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=4;HaplotypeScore=15.88;MQ=53.27;MQ0=1;OQ=600.98;QD=16.24;SB=-322.72	GT:AD:DP:GL:GQ	0/1:17,20:33:-73.32,-9.94,-46.93:99
-chr1	2264171	rs12740557	T	A	0.25	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=1;HaplotypeScore=15.88;MQ=53.27;MQ0=1;OQ=596.15;QD=16.11;SB=-294.37	GT:AD:DP:GL:GQ	0/1:17,20:33:-72.84,-9.94,-48.77:99
-chr1	2264298	rs61288374	A	G	10.67	PASS	AC=1;AF=0.50;AN=2;DB;DP=30;Dels=0.00;HRun=0;HaplotypeScore=4.66;MQ=58.45;MQ0=0;OQ=219.39;QD=7.31;SB=-3.98	GT:AD:DP:GL:GQ	0/1:16,13:26:-33.06,-7.84,-58.70:99
-chr1	2264816	rs4648828	G	A	38.81	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=1;HaplotypeScore=2.55;MQ=58.44;MQ0=0;OQ=661.80;QD=16.97;SB=-286.79	GT:AD:DP:GL:GQ	0/1:17,22:36:-80.32,-10.86,-47.76:99
-chr1	2264998	rs4648829	C	T	229.79	PASS	AC=1;AF=0.50;AN=2;DB;DP=15;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=58.45;MQ0=0;OQ=171.83;QD=11.46;SB=-76.07	GT:AD:DP:GL:GQ	0/1:9,6:13:-24.38,-3.92,-22.89:99
-chr1	2265236	rs4648830	T	G	6.90	PASS	AC=2;AF=1.00;AN=2;DB;DP=16;Dels=0.00;HRun=1;HaplotypeScore=0.73;MQ=58.55;MQ0=0;OQ=452.22;QD=28.26;SB=-174.97	GT:AD:DP:GL:GQ	1/1:0,16:15:-48.82,-4.52,-0.01:45.09
-chr1	2265809	rs2643909	C	G	56	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=1;HaplotypeScore=0.32;MQ=57.02;MQ0=0;OQ=1592.56;QD=34.62;SB=-562.49	GT:AD:DP:GL:GQ	1/1:0,46:39:-162.87,-11.76,-0.03:99
-chr1	2265882	.	G	A	8.69	PASS	AC=1;AF=0.50;AN=2;DP=41;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=58.87;MQ0=0;OQ=753.33;QD=18.37;SB=-247.76	GT:AD:DP:GL:GQ	0/1:17,24:37:-89.77,-11.15,-48.26:99
-chr1	2265933	.	T	C	0.10	PASS	AC=1;AF=0.50;AN=2;DP=33;Dels=0.00;HRun=3;HaplotypeScore=2.25;MQ=58.59;MQ0=0;OQ=218.96;QD=6.64;SB=-11.87	GT:AD:DP:GL:GQ	0/1:21,12:30:-34.22,-9.04,-78.51:99
-chr1	2266056	rs11589063	C	A	17.26	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=2;HaplotypeScore=3.57;MQ=58.25;MQ0=0;OQ=453.86;QD=11.35;SB=-250.27	GT:AD:DP:GL:GQ	0/1:23,17:40:-60.72,-12.05,-77.71:99
-chr1	2266060	rs2843137	T	A	278.60	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.82;MQ=57.66;MQ0=0;OQ=421.83;QD=10.55;SB=-226.71	GT:AD:DP:GL:GQ	0/1:23,17:37:-56.61,-11.15,-79.80:99
-chr1	2266231	rs11589451	C	A	57.46	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=5.26;MQ=58.41;MQ0=0;OQ=597.75;QD=10.67;SB=-255.49	GT:AD:DP:GL:GQ	0/1:32,24:50:-78.13,-15.07,-90.69:99
-chr1	2266279	rs11590175	A	G	185.77	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=2.71;MQ=59.15;MQ0=0;OQ=537.72;QD=10.97;SB=-262.22	GT:AD:DP:GL:GQ	0/1:22,25:41:-69.42,-12.37,-72.12:99
-chr1	2266621	.	G	A	34.89	PASS	AC=1;AF=0.50;AN=2;DP=35;Dels=0.00;HRun=0;HaplotypeScore=3.35;MQ=59.21;MQ0=0;OQ=474.72;QD=13.56;SB=-211.70	GT:AD:DP:GL:GQ	0/1:17,18:29:-59.50,-8.75,-41.35:99
-chr1	2267026	.	G	A	47.30	PASS	AC=1;AF=0.50;AN=2;DP=37;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=58.99;MQ0=0;OQ=613.73;QD=16.59;SB=-254.78	GT:AD:DP:GL:GQ	0/1:17,20:34:-74.91,-10.25,-50.44:99
-chr1	2267073	.	T	C	188.99	PASS	AC=1;AF=0.50;AN=2;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.75;MQ0=0;OQ=394.61;QD=9.87;SB=-211.55	GT:AD:DP:GL:GQ	0/1:22,18:38:-54.20,-11.45,-84.44:99
-chr1	2267410	rs61762093	G	C	176.11	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=3.35;MQ=56.22;MQ0=0;OQ=747.58;QD=15.26;SB=-308.18	GT:AD:DP:GL:GQ	0/1:27,22:44:-91.30,-13.26,-97.18:99
-chr1	2267687	rs2843134	G	A	624.83	PASS	AC=2;AF=1.00;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.67;MQ0=0;OQ=2217.24;QD=36.95;SB=-1015.91	GT:AD:DP:GL:GQ	1/1:0,60:58:-225.33,-17.48,-0.02:99
-chr1	2267975	rs12409523	G	C	1.77	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=2;HaplotypeScore=5.47;MQ=59.03;MQ0=0;OQ=822.23;QD=17.13;SB=-209.63	GT:AD:DP:GL:GQ	0/1:24,24:46:-99.39,-13.88,-93.78:99
-chr1	2268100	rs2132595	C	T	240.52	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=1.73;MQ=58.35;MQ0=0;OQ=844.37;QD=16.56;SB=-387.19	GT:AD:DP:GL:GQ	0/1:23,28:47:-101.89,-14.17,-71.24:99
-chr1	2268508	rs2843133	A	G	0.07	PASS	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=4;HaplotypeScore=2.38;MQ=57.65;MQ0=0;OQ=995.04;QD=26.19;SB=-340.62	GT:AD:DP:GL:GQ	1/1:0,38:30:-103.10,-9.04,-0.01:90.24
-chr1	2268841	rs2643910	C	T	6.12	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=1;HaplotypeScore=3.07;MQ=58.25;MQ0=0;OQ=784.65;QD=19.62;SB=-334.39	GT:AD:DP:GL:GQ	0/1:16,24:39:-93.50,-11.75,-52.91:99
-chr1	2269677	rs56030548	C	T	80.69	PASS	AC=1;AF=0.50;AN=2;DB;DP=28;Dels=0.00;HRun=0;HaplotypeScore=0.96;MQ=57.12;MQ0=0;OQ=443.83;QD=15.85;SB=-131.12	GT:AD:DP:GL:GQ	0/1:13,15:27:-55.80,-8.14,-42.23:99
-chr1	2269999	rs35941092	C	T	0.23	PASS	AC=1;AF=0.50;AN=2;DB;DP=14;Dels=0.00;HRun=0;HaplotypeScore=8.68;MQ=48.71;MQ0=0;OQ=64.58;QD=4.61;SB=-21.48	GT:AD:DP:GL:GQ	0/1:10,4:14:-13.97,-4.23,-30.76:97.42
-chr1	2270100	.	T	A	5.69	PASS	AC=1;AF=0.50;AN=2;DP=18;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=56.04;MQ0=0;OQ=92.13;QD=5.12;SB=-47.85	GT:AD:DP:GL:GQ	0/1:13,5:18:-17.92,-5.42,-46.07:99
-chr1	2270283	rs2645072	A	C	0.37	PASS	AC=2;AF=1.00;AN=2;DB;DP=29;Dels=0.00;HRun=4;HaplotypeScore=0.16;MQ=56.22;MQ0=0;OQ=963.23;QD=33.21;SB=-173.01	GT:AD:DP:GL:GQ	1/1:0,29:28:-99.92,-8.44,-0.01:84.24
-chr1	2270521	rs2055204	G	A	60.41	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=2;HaplotypeScore=3.82;MQ=59.66;MQ0=0;OQ=983.74;QD=17.89;SB=-468.43	GT:AD:DP:GL:GQ	0/1:22,33:52:-117.32,-15.67,-79.90:99
-chr1	2271586	rs7527871	A	C	436.10	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=0.74;MQ=60.00;MQ0=0;OQ=784.91;QD=12.08;SB=-319.01	GT:AD:DP:GL:GQ	0/1:36,29:64:-101.05,-19.28,-130.62:99
-chr1	2271838	rs1039063	T	G	2.04	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=5;HaplotypeScore=1.22;MQ=60.00;MQ0=0;OQ=495.93;QD=11.27;SB=-259.90	GT:AD:DP:GL:GQ	0/1:22,22:41:-65.23,-12.35,-74.62:99
-chr1	2271995	rs10910053	G	A	269.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=1.82;MQ=60.00;MQ0=0;OQ=928.57;QD=18.95;SB=-437.81	GT:AD:DP:GL:GQ	0/1:20,29:47:-110.30,-14.16,-67.66:99
-chr1	2272064	.	G	A	22.07	PASS	AC=1;AF=0.50;AN=2;DP=44;Dels=0.00;HRun=0;HaplotypeScore=4.67;MQ=59.48;MQ0=0;OQ=676.05;QD=15.36;SB=-356.51	GT:AD:DP:GL:GQ	0/1:22,22:42:-83.55,-12.66,-69.45:99
-chr1	2272233	.	C	T	4.84	PASS	AC=1;AF=0.50;AN=2;DP=54;Dels=0.00;HRun=1;HaplotypeScore=3.42;MQ=59.14;MQ0=0;OQ=912.77;QD=16.90;SB=-354.47	GT:AD:DP:GL:GQ	0/1:26,28:53:-110.53,-15.96,-92.85:99
-chr1	2272335	.	T	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=39;Dels=0.00;HRun=2;HaplotypeScore=2.06;MQ=56.98;MQ0=0;OQ=124.90;QD=3.20;SB=56.19	GT:AD:DP:GL:GQ	0/1:24,15:32:-25.41,-9.64,-85.35:99
-chr1	2272540	rs2279704	C	T	249.66	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.91;MQ=59.55;MQ0=0;OQ=742.26;QD=14.55;SB=-245.76	GT:AD:DP:GL:GQ	0/1:25,25:47:-91.67,-14.16,-87.05:99
-chr1	2272636	rs2254874	G	C	9.15	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=2;HaplotypeScore=3.74;MQ=56.62;MQ0=0;OQ=1562.16;QD=37.19;SB=-628.86	GT:AD:DP:GL:GQ	1/1:0,42:38:-159.82,-11.46,-0.02:99
-chr1	2272850	rs2036082	C	T	429.96	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.50;MQ0=0;OQ=669.32;QD=14.55;SB=-278.20	GT:AD:DP:GL:GQ	0/1:25,21:46:-84.08,-13.87,-81.55:99
-chr1	2273702	rs2643912	G	T	414.73	PASS	AC=1;AF=0.50;AN=2;DB;DP=22;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=338.96;QD=15.41;SB=-195.57	GT:AD:DP:GL:GQ	0/1:9,13:21:-43.50,-6.33,-31.88:99
-chr1	2273756	rs2840528	A	G	171.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=59.44;MQ0=0;OQ=666.96;QD=16.27;SB=-294.48	GT:AD:DP:GL:GQ	0/1:18,23:41:-82.33,-12.35,-70.40:99
-chr1	2273863	rs2645082	T	C	3.28	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=2;HaplotypeScore=2.08;MQ=58.41;MQ0=0;OQ=1044.33;QD=23.73;SB=-369.45	GT:AD:DP:GL:GQ	1/1:0,44:35:-108.06,-10.56,-0.04:99
-chr1	2274055	rs3795272	T	C	1.91	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=3;HaplotypeScore=4.58;MQ=58.20;MQ0=0;OQ=382.95;QD=8.15;SB=-128.51	GT:AD:DP:GL:GQ	0/1:28,19:44:-54.84,-13.26,-106.89:99
-chr1	2274346	rs12049067	C	T	357.23	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=1.44;MQ=57.77;MQ0=0;OQ=508.21;QD=12.71;SB=-252.25	GT:AD:DP:GL:GQ	0/1:22,18:38:-65.56,-11.45,-75.12:99
-chr1	2274758	rs2840529	T	G	24.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=3;HaplotypeScore=0.63;MQ=59.39;MQ0=0;OQ=311.73;QD=8.20;SB=-145.73	GT:AD:DP:GL:GQ	0/1:25,13:34:-44.70,-10.25,-72.81:99
-chr1	2275042	rs2036083	A	T	221.53	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=3.71;MQ=59.63;MQ0=0;OQ=509.88;QD=10.20;SB=-241.63	GT:AD:DP:GL:GQ	0/1:29,21:43:-67.22,-12.95,-90.87:99
-chr1	2275274	rs2843129	G	A	298.24	PASS	AC=2;AF=1.00;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=59.43;MQ0=0;OQ=2821.79;QD=38.65;SB=-1326.28	GT:AD:DP:GL:GQ	1/1:0,73:71:-285.78,-21.39,-0.02:99
-chr1	2276807	rs1039100	A	G	434.33	PASS	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1195.19;QD=31.45;SB=-467.43	GT:AD:DP:GL:GQ	1/1:0,38:36:-123.12,-10.85,-0.02:99
-chr1	2277377	rs2645083	T	C	625.87	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.89;MQ0=0;OQ=1448.36;QD=34.48;SB=-607.22	GT:AD:DP:GL:GQ	1/1:0,42:42:-148.44,-12.65,-0.02:99
-chr1	2277394	rs11577374	C	T	128.24	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=3.08;MQ=58.95;MQ0=0;OQ=767.18;QD=17.44;SB=-322.88	GT:AD:DP:GL:GQ	0/1:20,24:40:-92.06,-12.06,-52.10:99
-chr1	2277476	rs2645085	T	C	300.52	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.58;MQ0=0;OQ=627.13;QD=11.40;SB=-216.37	GT:AD:DP:GL:GQ	0/1:27,28:51:-81.37,-15.38,-100.48:99
-chr1	2277708	rs16825067	G	C	15.92	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=1;HaplotypeScore=3.52;MQ=58.92;MQ0=0;OQ=727.07;QD=18.64;SB=-379.89	GT:AD:DP:GL:GQ	0/1:17,22:37:-87.14,-11.15,-70.33:99
-chr1	2278607	rs2645086	T	C	275.36	PASS	AC=1;AF=0.50;AN=2;DB;DP=26;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=59.11;MQ0=0;OQ=269.17;QD=10.35;SB=-101.72	GT:AD:DP:GL:GQ	0/1:13,13:25:-37.74,-7.54,-47.79:99
-chr1	2279110	rs903912	C	G	0.92	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=2;HaplotypeScore=12.20;MQ=57.42;MQ0=0;OQ=679.10;QD=12.81;SB=-356.81	GT:AD:DP:GL:GQ	0/1:28,25:46:-85.06,-13.87,-109.25:99
-chr1	2279111	rs903913	T	C	0.56	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.02;HRun=1;HaplotypeScore=12.09;MQ=57.42;MQ0=0;OQ=643.89;QD=12.15;SB=-297.64	GT:AD:DP:GL:GQ	0/1:27,25:52:-83.04,-15.37,-108.03:99
-chr1	2279181	rs903914	G	A	327.01	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=2.55;MQ=59.27;MQ0=0;OQ=1113.86;QD=17.68;SB=-571.62	GT:AD:DP:GL:GQ	0/1:30,33:61:-133.06,-18.39,-88.20:99
-chr1	2280148	rs2840544	T	C	12.55	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=3.46;MQ=59.49;MQ0=0;OQ=176.15;QD=3.91;SB=-95.61	GT:AD:DP:GL:GQ	0/1:34,11:43:-33.87,-12.97,-121.04:99
-chr1	2280520	rs2645088	T	C	494.99	PASS	AC=2;AF=1.00;AN=2;DB;DP=34;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=961.96;QD=28.29;SB=-437.29	GT:AD:DP:GL:GQ	1/1:0,34:31:-99.81,-9.35,-0.03:93.20
-chr1	2280750	rs2840543	C	T	201	PASS	AC=2;AF=1.00;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=0.98;MQ=59.69;MQ0=0;OQ=2174.81;QD=36.25;SB=-926.73	GT:AD:DP:GL:GQ	1/1:0,60:56:-221.09,-16.88,-0.02:99
-chr1	2280771	rs2645089	G	A	262.49	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.63;MQ0=0;OQ=676.44;QD=13.53;SB=-331.88	GT:AD:DP:GL:GQ	0/1:29,21:47:-85.09,-14.16,-84.51:99
-chr1	2281127	rs6424093	A	G	144.23	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=1;HaplotypeScore=0.83;MQ=59.16;MQ0=0;OQ=492.45;QD=11.73;SB=-156.68	GT:AD:DP:GL:GQ	0/1:23,19:40:-64.58,-12.05,-85.73:99
-chr1	2281540	rs2840542	T	C	309.75	PASS	AC=2;AF=1.00;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=0.83;MQ=56.56;MQ0=0;OQ=2607.54;QD=33.86;SB=-1074.11	GT:AD:DP:GL:GQ	1/1:0,77:73:-264.36,-21.99,-0.02:99
-chr1	2282015	rs2840541	T	C	311.98	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.30;MQ0=0;OQ=585.20;QD=9.75;SB=-280.12	GT:AD:DP:GL:GQ	0/1:36,24:60:-79.89,-18.08,-145.26:99
-chr1	2282269	rs2645090	T	C	432.32	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.38;MQ0=0;OQ=613.50;QD=9.16;SB=-290.16	GT:AD:DP:GL:GQ	0/1:38,29:64:-83.92,-19.29,-153.60:99
-chr1	2283026	rs2250799	G	A	138.76	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=59.62;MQ0=0;OQ=1864.73;QD=38.06;SB=-791.54	GT:AD:DP:GL:GQ	1/1:0,49:48:-190.08,-14.47,-0.02:99
-chr1	2284017	rs10797420	G	A	1.04	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=1;HaplotypeScore=10.89;MQ=55.69;MQ0=1;OQ=1110.47;QD=17.63;SB=-493.05	GT:AD:DP:GL:GQ	0/1:28,34:55:-130.90,-16.57,-82.96:99
-chr1	2284704	rs55873848	C	T	485.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=55.27;MQ0=0;OQ=939.68;QD=16.78;SB=-471.48	GT:AD:DP:GL:GQ	0/1:26,30:53:-113.22,-15.97,-82.15:99
-chr1	2284890	rs7530501	T	G	19.05	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=5.02;MQ=57.51;MQ0=0;OQ=731.65;QD=13.80;SB=-124.84	GT:AD:DP:GL:GQ	0/1:25,28:51:-91.81,-15.36,-86.72:99
-chr1	2285068	rs57840322	G	A	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=43;Dels=0.00;HRun=6;HaplotypeScore=29.71;MQ=39.31;MQ0=0;OQ=1533.11;QD=35.65;SB=-660.69	GT:AD:DP:GL:GQ	1/1:0,43:40:-156.91,-12.05,-0.01:99
-chr1	2285112	.	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=42;Dels=0.05;HRun=7;HaplotypeScore=20.40;MQ=45.44;MQ0=0;OQ=661.72;QD=15.76;SB=-259.95	GT:AD:DP:GL:GQ	0/1:19,21:41:-81.21,-11.75,-63.70:99
-chr1	2285126	rs6682345	A	T	200.65	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=50.08;MQ0=0;OQ=1898.67;QD=35.16;SB=-880.24	GT:AD:DP:GL:GQ	1/1:1,53:53:-197.20,-15.96,-3.75:99
-chr1	2285128	rs6682346	A	T	359.27	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=50.28;MQ0=0;OQ=737.49;QD=13.41;SB=-376.75	GT:AD:DP:GL:GQ	0/1:30,25:55:-93.60,-16.56,-117.95:99
-chr1	2285638	rs10910055	A	C	76.19	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=1;HaplotypeScore=3.44;MQ=49.97;MQ0=2;OQ=838.51;QD=11.65;SB=-398.65	GT:AD:DP:GL:GQ	0/1:39,33:60:-105.20,-18.07,-117.50:99
-chr1	2285783	rs12026746	C	T	166.61	SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=27.98;MQ=27.61;MQ0=1;QD=3.54;SB=-10.00	GT:AD:DP:GL:GQ	0/1:32,15:30:-28.99,-9.05,-73.71:99
-chr1	2285784	.	A	G	712.90	SnpCluster	AC=1;AF=0.50;AN=2;DP=47;Dels=0.00;HRun=0;HaplotypeScore=27.98;MQ=27.61;MQ0=1;QD=15.17;SB=-10.00	GT:AD:DP:GL:GQ	0/1:13,34:30:-83.61,-9.04,-20.49:99
-chr1	2285789	.	T	C	107.62	SnpCluster	AC=1;AF=0.50;AN=2;DP=49;Dels=0.00;HRun=0;HaplotypeScore=51.95;MQ=27.67;MQ0=1;QD=2.20;SB=-10.00	GT:AD:DP:GL:GQ	0/1:37,12:31:-23.38,-9.34,-102.78:99
-chr1	2285797	.	C	T	99.87	SnpCluster	AC=1;AF=0.50;AN=2;DP=58;Dels=0.00;HRun=0;HaplotypeScore=37.97;MQ=27.29;MQ0=3;QD=1.72;SB=-6.99	GT:AD:DP:GL:GQ	0/1:46,12:38:-24.73,-11.46,-107.35:99
-chr1	2285798	rs6685453	A	G	587.05	SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=37.13;MQ=27.02;MQ0=4;QD=10.12;SB=-34.94	GT:AD:DP:GL:GQ	0/1:35,23:38:-73.44,-11.45,-64.40:99
-chr1	2285805	rs2840539	G	A	1277.62	SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=29.98;MQ=27.32;MQ0=3;QD=21.65;SB=-159.63	GT:AD:DP:GL:GQ	0/1:13,46:41:-143.39,-12.35,-21.42:90.69
-chr1	2285956	rs7539098	A	T	36.30	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=32.84;MQ0=4;OQ=256.31;QD=4.93;SB=-97.36	GT:AD:DP:GL:GQ	0/1:30,22:31:-38.25,-9.34,-84.38:99
-chr1	2285957	rs7539099	A	T	39.69	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=32.84;MQ0=4;OQ=262.32;QD=5.04;SB=-99.37	GT:AD:DP:GL:GQ	0/1:29,23:31:-38.85,-9.34,-83.38:99
-chr1	2286519	rs12029098	A	G	0.14	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=10.29;MQ=20.58;MQ0=25;OQ=214.67;QD=3.41;SB=-10.00	GT:AD:DP:GL:GQ	0/1:52,10:32:-34.39,-9.64,-87.93:99
-chr1	2286535	rs10910056	C	T	41.85	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=18.11;MQ0=29;OQ=264.94;QD=4.49;SB=-10.00	GT:AD:DP:GL:GQ	0/1:49,10:24:-37.01,-7.23,-58.35:99
-chr1	2286632	rs12062221	G	A	163.59	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=18.73;MQ0=23;OQ=318.86;QD=6.13;SB=-122.97	GT:AD:DP:GL:GQ	0/1:37,15:21:-41.50,-6.33,-38.58:99
-chr1	2286682	rs10910057	T	C	259.25	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=1.58;MQ=21.36;MQ0=18;OQ=880.98;QD=17.98;SB=-392.60	GT:AD:DP:GL:GQ	1/1:18,31:25:-91.69,-7.53,-0.01:75.23
-chr1	2287320	rs7366927	T	C	67.59	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=1.79;MQ=20.66;MQ0=24;OQ=467.32;QD=6.97;SB=-192.02	GT:AD:DP:GL:GQ	0/1:40,27:33:-59.96,-9.95,-57.33:99
-chr1	2287795	rs10910058	A	T	108.02	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=57.68;MQ0=0;OQ=672.40;QD=13.18;SB=-131.84	GT:AD:DP:GL:GQ	0/1:26,25:50:-85.58,-15.06,-97.61:99
-chr1	2287854	rs10910059	G	C	295.33	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=56.70;MQ0=0;OQ=1098.70;QD=16.90;SB=-242.39	GT:AD:DP:GL:GQ	0/1:34,31:65:-132.74,-19.58,-150.89:99
-chr1	2288115	rs4648834	A	G	229.51	PASS	AC=1;AF=0.50;AN=2;DB;DP=82;Dels=0.00;HRun=0;HaplotypeScore=2.16;MQ=58.69;MQ0=0;OQ=974.25;QD=11.88;SB=-367.23	GT:AD:DP:GL:GQ	0/1:45,37:80:-124.81,-24.10,-176.65:99
-chr1	2288354	rs55960350	C	A	363.99	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=56.19;MQ0=0;OQ=926.53;QD=15.44;SB=-445.49	GT:AD:DP:GL:GQ	0/1:29,31:60:-114.01,-18.07,-107.19:99
-chr1	2288496	rs10453826	G	A	57.25	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=3;HaplotypeScore=0.47;MQ=60.00;MQ0=0;OQ=1349.11;QD=17.75;SB=-668.70	GT:AD:DP:GL:GQ	0/1:36,39:75:-160.78,-22.59,-131.92:99
-chr1	2288624	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=61;Dels=0.02;HRun=18;HaplotypeScore=24.48;MQ=54.73;MQ0=1;OQ=401.02;QD=6.57;SB=-41.45	GT:AD:DP:GL:GQ	0/1:43,17:55:-59.67,-16.28,-122.97:99
-chr1	2288630	rs28792725	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.02;HRun=6;HaplotypeScore=25.44;MQ=54.48;MQ0=1;OQ=211.43;QD=3.92;SB=68.22	GT:AD:DP:GL:GQ	0/1:42,11:47:-38.29,-13.87,-121.95:99
-chr1	2288943	rs6704200	G	A	186.62	PASS	AC=2;AF=1.00;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=59.03;MQ0=0;OQ=2659.42;QD=39.69;SB=-1189.57	GT:AD:DP:GL:GQ	1/1:0,67:67:-269.55,-20.19,-0.02:99
-chr1	2289098	rs12069579	C	T	14.78	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=4;HaplotypeScore=1.46;MQ=57.20;MQ0=1;OQ=865.75;QD=14.43;SB=-343.49	GT:AD:DP:GL:GQ	0/1:32,28:57:-107.04,-17.18,-97.55:99
-chr1	2289170	rs12069588	C	T	455.09	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.87;MQ0=0;OQ=1016.01;QD=15.88;SB=-357.83	GT:AD:DP:GL:GQ	0/1:33,31:64:-124.17,-19.28,-114.93:99
-chr1	2289171	rs12071572	A	G	466.33	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.87;MQ0=0;OQ=819.05;QD=12.80;SB=-318.26	GT:AD:DP:GL:GQ	0/1:33,31:63:-104.18,-18.99,-126.28:99
-chr1	2289487	rs7545940	T	C	276.29	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=1;HaplotypeScore=1.92;MQ=59.67;MQ0=0;OQ=618.09;QD=11.04;SB=-316.36	GT:AD:DP:GL:GQ	0/1:32,24:55:-81.66,-16.57,-127.86:99
-chr1	2289511	rs2840538	T	C	82.58	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=1;HaplotypeScore=3.41;MQ=59.24;MQ0=0;OQ=1874.35;QD=34.08;SB=-939.34	GT:AD:DP:GL:GQ	1/1:0,55:54:-191.04,-16.27,-0.02:99
-chr1	2289772	rs7546224	T	C	223.24	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=1.66;MQ=58.97;MQ0=0;OQ=650.32;QD=11.02;SB=-248.17	GT:AD:DP:GL:GQ	0/1:33,26:58:-85.80,-17.48,-124.44:99
-chr1	2290017	rs12070927	C	A	51.76	PASS	AC=1;AF=0.50;AN=2;DB;DP=69;Dels=0.00;HRun=3;HaplotypeScore=0.98;MQ=59.12;MQ0=0;OQ=1316.41;QD=19.08;SB=-657.73	GT:AD:DP:GL:GQ	0/1:26,43:67:-155.11,-20.18,-89.64:99
-chr1	2290238	rs7514750	G	C	5.37	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=2;HaplotypeScore=1.63;MQ=56.12;MQ0=0;OQ=999.16;QD=16.93;SB=-161.14	GT:AD:DP:GL:GQ	0/1:29,30:55:-119.78,-16.58,-120.03:99
-chr1	2290509	rs7542190	C	T	358.30	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=54.38;MQ0=0;OQ=592.85;QD=11.62;SB=-156.20	GT:AD:DP:GL:GQ	0/1:31,20:49:-77.34,-14.77,-99.87:99
-chr1	2290635	rs7554609	A	G	100.55	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=1;HaplotypeScore=2.39;MQ=57.81;MQ0=0;OQ=439.50;QD=11.27;SB=-190.14	GT:AD:DP:GL:GQ	0/1:19,19:37:-60.47,-13.23,-75.89:99
-chr1	2290654	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=60;Dels=0.00;HRun=20;HaplotypeScore=28.09;MQ=53.25;MQ0=0;OQ=241.28;QD=4.02;SB=92.32	GT:AD:DP:GL:GQ	0/1:44,16:53:-43.38,-15.97,-152.46:99
-chr1	2290675	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=69;Dels=0.01;HRun=20;HaplotypeScore=29.22;MQ=49.62;MQ0=0;OQ=64.81;QD=0.94;SB=71.20	GT:AD:DP:GL:GQ	0/1:52,14:46:-23.33,-13.56,-132.10:97.65
-chr1	2291469	rs2840535	G	T	504.16	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=896.75;QD=14.95;SB=-459.55	GT:AD:DP:GL:GQ	0/1:30,30:59:-110.74,-17.78,-88.69:99
-chr1	2291551	rs6665546	G	A	392.04	PASS	AC=1;AF=0.50;AN=2;DB;DP=81;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=60.00;MQ0=0;OQ=1434.00;QD=17.70;SB=-726.06	GT:AD:DP:GL:GQ	0/1:39,42:81:-171.09,-24.41,-128.82:99
-chr1	2292331	rs2453567	C	T	202.13	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=2.99;MQ=54.48;MQ0=0;OQ=1114.28;QD=17.14;SB=-425.43	GT:AD:DP:GL:GQ	0/1:31,34:60:-132.80,-18.08,-88.05:99
-chr1	2292376	rs2453566	T	C	254.25	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=1.09;MQ=52.46;MQ0=0;OQ=498.58;QD=10.18;SB=-208.48	GT:AD:DP:GL:GQ	0/1:22,27:40:-65.21,-12.06,-74.69:99
-chr1	2293426	rs2840534	A	G	74.94	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=1;HaplotypeScore=4.04;MQ=59.63;MQ0=0;OQ=998.53;QD=16.11;SB=-332.38	GT:AD:DP:GL:GQ	0/1:27,35:61:-121.51,-18.38,-106.86:99
-chr1	2297776	rs2843165	A	C	120.65	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=1;HaplotypeScore=0.92;MQ=60.00;MQ0=0;OQ=714.07;QD=14.28;SB=-105.81	GT:AD:DP:GL:GQ	0/1:23,27:49:-89.45,-14.76,-84.29:99
-chr1	2298377	rs2843162	C	G	368.81	PASS	AC=1;AF=0.50;AN=2;DB;DP=31;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=490.57;QD=15.82;SB=-257.11	GT:AD:DP:GL:GQ	0/1:17,14:31:-61.68,-9.34,-73.31:99
-chr1	2298942	rs2843160	T	G	117.23	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=5.47;MQ=59.17;MQ0=0;OQ=634.08;QD=11.32;SB=-278.70	GT:AD:DP:GL:GQ	0/1:27,29:53:-82.67,-15.98,-90.35:99
-chr1	2302255	rs2643908	C	T	314.36	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=2.96;MQ=59.55;MQ0=0;OQ=684.01;QD=13.41;SB=-309.40	GT:AD:DP:GL:GQ	0/1:26,25:46:-85.54,-13.86,-88.50:99
-chr1	2303400	rs2843132	A	G	8.40	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=2;HaplotypeScore=3.40;MQ=59.58;MQ0=0;OQ=438.03;QD=9.96;SB=-158.56	GT:AD:DP:GL:GQ	0/1:24,20:38:-58.54,-11.45,-84.41:99
-chr1	2304179	rs2643901	T	C	196.35	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=2.98;MQ=59.45;MQ0=0;OQ=721.33;QD=17.17;SB=-281.01	GT:AD:DP:GL:GQ	0/1:15,26:39:-87.17,-11.75,-56.36:99
-chr1	2305298	rs2645060	G	A	178.67	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=3.33;MQ=60.00;MQ0=0;OQ=1082.92;QD=18.05;SB=-486.00	GT:AD:DP:GL:GQ	0/1:25,35:57:-128.76,-17.18,-76.49:99
-chr1	2305540	rs2843128	A	G	194.82	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=1.87;MQ=59.59;MQ0=0;OQ=482.38;QD=10.49;SB=-248.93	GT:AD:DP:GL:GQ	0/1:24,22:42:-64.18,-12.66,-86.34:99
-chr1	2305577	rs2843127	A	G	547.43	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.15;MQ0=0;OQ=527.20;QD=11.98;SB=-284.59	GT:AD:DP:GL:GQ	0/1:25,19:44:-69.26,-13.26,-98.42:99
-chr1	2306175	rs2843126	A	G	188.97	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=1.18;MQ=58.39;MQ0=0;OQ=344.67;QD=9.07;SB=-143.56	GT:AD:DP:GL:GQ	0/1:18,19:33:-47.70,-9.95,-71.62:99
-chr1	2306848	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=24;Dels=0.00;HRun=13;HaplotypeScore=4.17;MQ=55.00;MQ0=0;OQ=100.30;QD=4.18;SB=17.09	GT:AD:DP:GL:GQ	0/1:17,7:16:-18.14,-4.82,-46.21:99
-chr1	2309288	rs903903	A	G	560.94	PASS	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1265.25;QD=17.33;SB=-657.78	GT:AD:DP:GL:GQ	0/1:28,45:70:-150.90,-21.10,-100.41:99
-chr1	2309390	rs2645061	G	T	558.68	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.70;MQ0=0;OQ=773.84;QD=12.28;SB=-380.71	GT:AD:DP:GL:GQ	0/1:36,27:63:-99.64,-18.97,-129.32:99
-chr1	2310428	.	G	A	99.95	DPFilter;Indel	AC=1;AF=0.50;AN=2;DP=70;Dels=0.04;HRun=15;HaplotypeScore=39.00;MQ=46.05;MQ0=0;QD=1.43;SB=52.68	GT:AD:DP:GL:GQ	0/1:53,14:55:-29.56,-16.28,-149.90:99
-chr1	2313868	rs2840533	C	T	252.17	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=1;HaplotypeScore=1.46;MQ=59.24;MQ0=0;OQ=794.28;QD=14.44;SB=-234.49	GT:AD:DP:GL:GQ	0/1:29,26:54:-98.98,-16.27,-105.03:99
-chr1	2314319	.	A	G	42.45	LowQual	AC=1;AF=0.50;AN=2;DP=67;Dels=0.00;HRun=1;HaplotypeScore=1.31;MQ=50.37;MQ0=0;QD=0.63;SB=-7.70	GT:AD:DP:GL:GQ	0/1:58,9:63:-26.51,-18.98,-220.77:75.28
-chr1	2314326	.	A	G	0.25	PASS	AC=1;AF=0.50;AN=2;DP=71;Dels=0.00;HRun=0;HaplotypeScore=0.74;MQ=50.58;MQ0=0;OQ=173.32;QD=2.44;SB=-79.68	GT:AD:DP:GL:GQ	0/1:59,12:69:-41.40,-20.79,-226.63:99
-chr1	2314333	rs41315342	C	T	21.24	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=0.90;MQ=49.96;MQ0=0;OQ=309.71;QD=4.62;SB=-180.11	GT:AD:DP:GL:GQ	0/1:53,14:62:-52.95,-18.70,-157.19:99
-chr1	2315408	.	G	A	4.80	PASS	AC=1;AF=0.50;AN=2;DP=75;Dels=0.00;HRun=1;HaplotypeScore=3.55;MQ=59.13;MQ0=0;OQ=1258.74;QD=16.78;SB=-356.05	GT:AD:DP:GL:GQ	0/1:37,38:74:-151.46,-22.30,-126.73:99
-chr1	2315869	rs1123571	G	A	390.91	PASS	AC=1;AF=0.50;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=1.73;MQ=58.65;MQ0=0;OQ=976.67;QD=13.95;SB=-457.41	GT:AD:DP:GL:GQ	0/1:38,32:64:-120.23,-19.28,-120.05:99
-chr1	2316672	rs903911	A	G	4.65	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=2;HaplotypeScore=4.83;MQ=58.81;MQ0=0;OQ=646.68;QD=16.58;SB=-230.30	GT:AD:DP:GL:GQ	0/1:16,22:38:-79.40,-11.45,-61.89:99
-chr1	2317675	rs2840532	C	T	230.75	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=2.10;MQ=59.63;MQ0=0;OQ=2453.68;QD=38.95;SB=-993.83	GT:AD:DP:GL:GQ	1/1:0,63:62:-248.97,-18.68,-0.02:99
-chr1	2318574	rs2645081	A	G	8.21	PASS	AC=2;AF=1.00;AN=2;DB;DP=80;Dels=0.00;HRun=1;HaplotypeScore=6.83;MQ=58.95;MQ0=0;OQ=2467.67;QD=30.85;SB=-995.94	GT:AD:DP:GL:GQ	1/1:0,79:71:-250.38,-21.39,-0.03:99
-chr1	2319521	rs6698680	A	G	273.51	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=1;HaplotypeScore=0.97;MQ=59.27;MQ0=0;OQ=618.22;QD=12.12;SB=-195.44	GT:AD:DP:GL:GQ	0/1:27,24:49:-79.88,-14.77,-98.83:99
-chr1	2319668	rs3001344	A	G	117.65	PASS	AC=2;AF=1.00;AN=2;DB;DP=91;Dels=0.00;HRun=0;HaplotypeScore=2.93;MQ=59.27;MQ0=0;OQ=3223.06;QD=35.42;SB=-1436.46	GT:AD:DP:GL:GQ	1/1:0,91:90:-325.91,-27.11,-0.03:99
-chr1	2319862	rs6698978	A	G	270.88	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=2.00;MQ=53.38;MQ0=0;OQ=935.78;QD=15.60;SB=-478.67	GT:AD:DP:GL:GQ	0/1:27,33:58:-114.34,-17.47,-100.10:99
-chr1	2319876	rs6685829	C	T	18.19	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=6.10;MQ=50.59;MQ0=0;OQ=722.12;QD=12.24;SB=-192.86	GT:AD:DP:GL:GQ	0/1:35,24:57:-92.67,-17.18,-109.45:99
-chr1	2320050	rs6693447	T	G	274.62	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=1.95;MQ=59.41;MQ0=0;OQ=1099.08;QD=15.48;SB=-483.82	GT:AD:DP:GL:GQ	0/1:33,38:70:-134.27,-21.08,-119.27:99
-chr1	2321898	rs55912310	A	G	16.38	PASS	AC=1;AF=0.50;AN=2;DB;DP=78;Dels=0.00;HRun=2;HaplotypeScore=6.30;MQ=59.22;MQ0=0;OQ=1063.46;QD=13.63;SB=-443.56	GT:AD:DP:GL:GQ	0/1:40,38:76:-132.53,-22.90,-155.79:99
-chr1	2322251	rs12037485	C	T	255.22	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=1.77;MQ=54.76;MQ0=0;OQ=603.45;QD=12.57;SB=-317.81	GT:AD:DP:GL:GQ	0/1:27,21:45:-77.19,-13.56,-84.03:99
-chr1	2322525	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=27;Dels=0.00;HRun=3;HaplotypeScore=18.90;MQ=37.53;MQ0=0;OQ=105.39;QD=3.90;SB=-31.65	GT:AD:DP:GL:GQ	0/1:20,7:25:-21.36,-7.54,-75.64:99
-chr1	2322526	.	C	T	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=29;Dels=0.00;HRun=1;HaplotypeScore=17.62;MQ=38.02;MQ0=0;OQ=76.24;QD=2.63;SB=-0.98	GT:AD:DP:GL:GQ	0/1:23,6:24:-18.14,-7.23,-69.35:99
-chr1	2322566	.	C	T	184.67	Indel	AC=1;AF=0.50;AN=2;DP=19;Dels=0.00;HRun=0;HaplotypeScore=7.93;MQ=44.33;MQ0=0;QD=9.72;SB=-10.00	GT:AD:DP:GL:GQ	0/1:12,7:16:-26.58,-4.82,-31.47:99
-chr1	2322586	.	T	C	43.94	LowQual	AC=1;AF=0.50;AN=2;DP=13;Dels=0.00;HRun=2;HaplotypeScore=6.02;MQ=50.39;MQ0=0;QD=3.38;SB=-10.00	GT:AD:DP:GL:GQ	0/1:9,4:11:-10.99,-3.32,-30.04:76.77
-chr1	2322650	.	T	C	18.09	LowQual	AC=1;AF=0.50;AN=2;DP=6;Dels=0.00;HRun=2;HaplotypeScore=5.99;MQ=43.00;MQ0=0;QD=3.01;SB=-3.98	GT:AD:DP:GL:GQ	0/1:4,2:6:-6.89,-1.81,-15.35:50.86
-chr1	2322668	.	C	T	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=15;Dels=0.00;HRun=1;HaplotypeScore=16.47;MQ=36.20;MQ0=0;OQ=99.28;QD=6.62;SB=-3.98	GT:AD:DP:GL:GQ	0/1:11,4:11:-16.52,-3.31,-24.94:99
-chr1	2322705	.	C	T	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=16;Dels=0.00;HRun=1;HaplotypeScore=18.95;MQ=39.10;MQ0=0;OQ=127.82;QD=7.99;SB=-6.99	GT:AD:DP:GL:GQ	0/1:11,5:12:-19.68,-3.62,-24.01:99
-chr1	2322711	.	T	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=20;Dels=0.00;HRun=2;HaplotypeScore=13.96;MQ=44.08;MQ0=0;OQ=161.06;QD=8.05;SB=-38.94	GT:AD:DP:GL:GQ	0/1:13,7:16:-24.21,-4.82,-34.51:99
-chr1	2322848	rs3001337	T	C	21.54	PASS	AC=2;AF=1.00;AN=2;DB;DP=22;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=56.78;MQ0=0;OQ=436.82;QD=19.86;SB=-71.91	GT:AD:DP:GL:GQ	1/1:0,22:15:-47.28,-4.52,-0.02:45.08
-chr1	2322891	rs3001336	G	A	52.42	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.61;MQ=57.77;MQ0=0;OQ=1380.55;QD=34.51;SB=-210.77	GT:AD:DP:GL:GQ	1/1:0,39:36:-141.66,-10.85,-0.02:99
-chr1	2324121	.	G	T	2.67	PASS	AC=1;AF=0.50;AN=2;DP=51;Dels=0.00;HRun=0;HaplotypeScore=1.73;MQ=60.00;MQ0=0;OQ=1012.17;QD=19.85;SB=-217.60	GT:AD:DP:GL:GQ	0/1:19,32:51:-119.87,-15.37,-54.76:99
-chr1	2324716	rs41315648	C	T	55.76	PASS	AC=1;AF=0.50;AN=2;DB;DP=31;Dels=0.00;HRun=0;HaplotypeScore=1.92;MQ=58.50;MQ0=0;OQ=419.39;QD=13.53;SB=-59.02	GT:AD:DP:GL:GQ	0/1:17,14:29:-53.97,-8.74,-50.19:99
-chr1	2325536	rs1129333	A	G	283.63	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=59.63;MQ0=0;OQ=1733.67;QD=33.99;SB=-802.65	GT:AD:DP:GL:GQ	1/1:0,51:50:-176.97,-15.06,-0.02:99
-chr1	2327137	rs11586985	C	T	102.53	PASS	AC=1;AF=0.50;AN=2;DB;DP=35;Dels=0.00;HRun=0;HaplotypeScore=-0.06;MQ=60.00;MQ0=0;OQ=429.81;QD=12.28;SB=-139.15	GT:AD:DP:GL:GQ	0/1:21,14:35:-56.82,-10.56,-64.66:99
-chr1	2327397	rs2494426	C	G	233.81	PASS	AC=2;AF=1.00;AN=2;DB;DP=25;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=927.58;QD=37.10;SB=-342.73	GT:AD:DP:GL:GQ	1/1:0,25:23:-96.36,-6.94,-0.02:69.23
-chr1	2327420	rs55746053	G	A	222.42	PASS	AC=1;AF=0.50;AN=2;DB;DP=23;Dels=0.00;HRun=0;HaplotypeScore=0.83;MQ=59.19;MQ0=0;OQ=251.55;QD=10.94;SB=-144.16	GT:AD:DP:GL:GQ	0/1:13,10:21:-34.77,-6.33,-37.00:99
-chr1	2327986	rs3795269	C	A	81.57	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=1;HaplotypeScore=3.48;MQ=59.11;MQ0=0;OQ=721.54;QD=13.88;SB=-337.19	GT:AD:DP:GL:GQ	0/1:25,27:47:-89.60,-14.16,-76.64:99
-chr1	2328429	rs2494427	T	C	699.34	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.11;MQ0=0;OQ=1614.58;QD=34.35;SB=-832.33	GT:AD:DP:GL:GQ	1/1:0,47:46:-165.06,-13.86,-0.02:99
-chr1	2328739	rs6671420	G	A	245.45	PASS	AC=1;AF=0.50;AN=2;DB;DP=31;Dels=0.00;HRun=0;HaplotypeScore=1.24;MQ=58.64;MQ0=0;OQ=433.47;QD=13.98;SB=-240.76	GT:AD:DP:GL:GQ	0/1:16,15:30:-55.68,-9.05,-50.08:99
-chr1	2328934	rs2494428	C	T	252.86	PASS	AC=2;AF=1.00;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=0.98;MQ=60.00;MQ0=0;OQ=2537.82;QD=38.45;SB=-908.73	GT:AD:DP:GL:GQ	1/1:0,66:65:-257.39,-19.59,-0.03:99
-chr1	2328975	rs2494599	T	C	150.34	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=0.94;MQ=60.00;MQ0=0;OQ=1601.93;QD=34.08;SB=-647.90	GT:AD:DP:GL:GQ	1/1:0,47:46:-163.80,-13.86,-0.02:99
-chr1	2328999	rs6671730	G	A	141.04	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=60.00;MQ0=0;OQ=617.02;QD=15.43;SB=-196.85	GT:AD:DP:GL:GQ	0/1:20,20:39:-76.74,-11.75,-69.55:99
-chr1	2329255	rs2494429	A	G	318.55	PASS	AC=1;AF=0.50;AN=2;DB;DP=31;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.40;MQ0=0;OQ=347.51;QD=11.21;SB=-114.76	GT:AD:DP:GL:GQ	0/1:16,15:29:-46.78,-8.74,-56.84:99
-chr1	2329287	rs4648634	C	T	185.49	PASS	AC=1;AF=0.50;AN=2;DB;DP=20;Dels=0.00;HRun=0;HaplotypeScore=0.86;MQ=59.06;MQ0=0;OQ=270.55;QD=13.53;SB=-158.18	GT:AD:DP:GL:GQ	0/1:11,9:17:-35.47,-5.13,-24.67:99
-chr1	2329933	.	C	G	22.59	PASS	AC=1;AF=0.50;AN=2;DP=49;Dels=0.00;HRun=0;HaplotypeScore=4.69;MQ=58.67;MQ0=0;OQ=614.01;QD=12.53;SB=-287.97	GT:AD:DP:GL:GQ	0/1:22,27:40:-76.76,-12.08,-83.82:99
-chr1	2330060	rs2494598	T	C	290.44	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=1.12;MQ=58.95;MQ0=0;OQ=481.10;QD=12.03;SB=-246.32	GT:AD:DP:GL:GQ	0/1:19,21:39:-63.16,-11.76,-72.17:99
-chr1	2332427	.	C	T	0.21	PASS	AC=1;AF=0.50;AN=2;DP=61;Dels=0.00;HRun=0;HaplotypeScore=10.66;MQ=58.03;MQ0=0;OQ=1034.47;QD=16.96;SB=-503.70	GT:AD:DP:GL:GQ	0/1:28,33:58:-124.21,-17.48,-97.70:99
-chr1	2333054	rs2494597	T	C	55.95	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=3.08;MQ=59.48;MQ0=0;OQ=1376.62;QD=31.29;SB=-454.42	GT:AD:DP:GL:GQ	1/1:0,44:41:-141.27,-12.35,-0.02:99
-chr1	2334551	rs2494595	A	G	104.16	PASS	AC=1;AF=0.50;AN=2;DB;DP=23;Dels=0.00;HRun=1;HaplotypeScore=0.48;MQ=58.99;MQ0=0;OQ=304.12;QD=13.22;SB=-164.34	GT:AD:DP:GL:GQ	0/1:12,11:22:-40.32,-6.63,-44.91:99
-chr1	2334785	rs9424320	T	C	95.96	PASS	AC=1;AF=0.50;AN=2;DB;DP=29;Dels=0.00;HRun=0;HaplotypeScore=0.82;MQ=59.20;MQ0=0;OQ=385.94;QD=13.31;SB=-75.78	GT:AD:DP:GL:GQ	0/1:11,17:25:-49.42,-7.54,-38.41:99
-chr1	2335959	rs7556447	C	G	349.75	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=1.91;MQ=56.82;MQ0=0;OQ=713.10;QD=13.71;SB=-329.23	GT:AD:DP:GL:GQ	0/1:30,22:47:-88.76,-14.16,-115.39:99
-chr1	2336342	rs4648839	T	C	24.11	PASS	AC=2;AF=1.00;AN=2;DB;DP=23;Dels=0.00;HRun=0;HaplotypeScore=0.63;MQ=49.60;MQ0=0;OQ=479.90;QD=20.87;SB=-161.36	GT:AD:DP:GL:GQ	1/1:1,22:17:-51.60,-5.13,-0.02:51.09
-chr1	2336383	rs10910065	G	C	120.25	PASS	AC=1;AF=0.50;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=1.50;MQ=52.63;MQ0=0;OQ=649.76;QD=18.05;SB=-286.56	GT:AD:DP:GL:GQ	0/1:17,19:34:-78.51,-10.25,-66.28:99
-chr1	2336384	rs10910066	T	C	189.89	PASS	AC=1;AF=0.50;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=1.50;MQ=52.63;MQ0=0;OQ=539.82;QD=14.99;SB=-236.31	GT:AD:DP:GL:GQ	0/1:17,19:36:-68.12,-10.85,-65.37:99
-chr1	2336612	.	G	A	111.33	PASS	AC=1;AF=0.50;AN=2;DP=45;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=53.01;MQ0=0;OQ=620.89;QD=13.80;SB=-302.81	GT:AD:DP:GL:GQ	0/1:24,21:40:-77.43,-12.05,-71.03:99
-chr1	2337326	rs12746918	C	T	6.83	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=1;HaplotypeScore=7.69;MQ=54.86;MQ0=0;OQ=484.18;QD=9.68;SB=-259.25	GT:AD:DP:GL:GQ	0/1:29,21:42:-64.36,-12.66,-87.95:99
-chr1	2337359	.	C	T	7.61	PASS	AC=1;AF=0.50;AN=2;DP=45;Dels=0.00;HRun=0;HaplotypeScore=4.85;MQ=55.32;MQ0=0;OQ=435.73;QD=9.68;SB=-169.11	GT:AD:DP:GL:GQ	0/1:27,17:41:-59.22,-12.37,-82.09:99
-chr1	2337436	.	G	T	34.30	PASS	AC=1;AF=0.50;AN=2;DP=31;Dels=0.00;HRun=0;HaplotypeScore=1.96;MQ=57.73;MQ0=0;OQ=368.11;QD=11.87;SB=-146.62	GT:AD:DP:GL:GQ	0/1:16,15:30:-49.13,-9.04,-55.91:99
-chr1	2337592	rs12184328	G	A	0.69	PASS	AC=1;AF=0.50;AN=2;DB;DP=34;Dels=0.00;HRun=0;HaplotypeScore=8.46;MQ=57.94;MQ0=0;OQ=510.09;QD=15.00;SB=-111.95	GT:AD:DP:GL:GQ	0/1:17,16:33:-64.24,-9.94,-57.68:99
-chr1	2337900	rs10910068	T	C	14.61	PASS	AC=1;AF=0.50;AN=2;DB;DP=34;Dels=0.00;HRun=3;HaplotypeScore=1.32;MQ=56.47;MQ0=0;OQ=310.27;QD=9.13;SB=-165.49	GT:AD:DP:GL:GQ	0/1:15,19:29:-43.06,-8.75,-59.62:99
-chr1	2339629	rs2494432	G	A	402.74	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.15;MQ0=0;OQ=824.63;QD=16.83;SB=-334.87	GT:AD:DP:GL:GQ	0/1:23,26:44:-99.01,-13.26,-63.50:99
-chr1	2339896	.	C	T	167.28	PASS	AC=1;AF=0.50;AN=2;DP=53;Dels=0.00;HRun=0;HaplotypeScore=0.96;MQ=60.00;MQ0=0;OQ=715.32;QD=13.50;SB=-333.31	GT:AD:DP:GL:GQ	0/1:31,22:52:-90.49,-15.68,-97.09:99
-chr1	2340772	rs10910070	G	A	197.79	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=2.11;MQ=60.00;MQ0=0;OQ=631.24;QD=14.35;SB=-260.25	GT:AD:DP:GL:GQ	0/1:23,21:43:-79.37,-12.96,-74.56:99
-chr1	2340956	rs11577147	A	G	10.98	PASS	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=289.51;QD=8.77;SB=-78.79	GT:AD:DP:GL:GQ	0/1:19,14:32:-41.88,-9.65,-72.03:99
-chr1	2341435	rs11590507	G	A	0.61	PASS	AC=1;AF=0.50;AN=2;DB;DP=30;Dels=0.00;HRun=1;HaplotypeScore=5.72;MQ=57.66;MQ0=0;OQ=472.75;QD=15.76;SB=-44.54	GT:AD:DP:GL:GQ	0/1:14,15:29:-59.30,-8.74,-51.63:99
-chr1	2341559	rs3935659	T	C	7.79	PASS	AC=1;AF=0.50;AN=2;DB;DP=25;Dels=0.00;HRun=2;HaplotypeScore=3.23;MQ=59.25;MQ0=0;OQ=287.36;QD=11.49;SB=-29.91	GT:AD:DP:GL:GQ	0/1:13,12:25:-39.55,-7.53,-50.79:99
-chr1	2341739	rs3935660	C	T	165.26	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=1.88;MQ=58.09;MQ0=0;OQ=670.17;QD=13.68;SB=-195.21	GT:AD:DP:GL:GQ	0/1:27,21:42:-82.97,-12.67,-64.00:99
-chr1	2342006	rs12731309	C	T	203.63	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=1;HaplotypeScore=0.33;MQ=58.88;MQ0=0;OQ=846.80;QD=15.68;SB=-399.13	GT:AD:DP:GL:GQ	0/1:28,26:51:-103.32,-15.36,-93.02:99
-chr1	2342252	.	A	T	13.40	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=47;Dels=0.00;HRun=0;HaplotypeScore=20.03;MQ=56.40;MQ0=0;QD=0.29;SB=20.83	GT:AD:DP:GL:GQ	0/1:37,6:32:-14.24,-9.64,-106.31:46.04
-chr1	2342253	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=47;Dels=0.00;HRun=16;HaplotypeScore=7.92;MQ=56.40;MQ0=0;OQ=132.41;QD=2.82;SB=14.63	GT:AD:DP:GL:GQ	0/1:39,8:37:-27.67,-11.15,-101.20:99
-chr1	2342945	rs10910071	A	G	300.82	PASS	AC=1;AF=0.50;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=1.46;MQ=58.83;MQ0=0;OQ=1016.43;QD=13.20;SB=-494.01	GT:AD:DP:GL:GQ	0/1:41,36:76:-127.82,-22.90,-155.86:99
-chr1	2343155	rs12143389	C	T	127	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=1;HaplotypeScore=2.76;MQ=58.70;MQ0=1;OQ=925.95;QD=15.69;SB=-402.44	GT:AD:DP:GL:GQ	0/1:31,28:58:-113.35,-17.47,-107.32:99
-chr1	2343729	rs35799953	G	T	69.33	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=2;HaplotypeScore=0.16;MQ=59.02;MQ0=0;OQ=852.19;QD=13.75;SB=-419.16	GT:AD:DP:GL:GQ	0/1:33,29:62:-107.18,-18.68,-104.15:99
-chr1	2343876	rs34574702	C	T	503.31	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.74;MQ0=0;OQ=1119.07;QD=15.54;SB=-507.56	GT:AD:DP:GL:GQ	0/1:37,35:71:-136.60,-21.41,-114.39:99
-chr1	2344230	rs12022832	T	C	209.47	PASS	AC=1;AF=0.50;AN=2;DB;DP=89;Dels=0.00;HRun=1;HaplotypeScore=1.97;MQ=58.42;MQ0=0;OQ=1122.84;QD=12.62;SB=-438.76	GT:AD:DP:GL:GQ	0/1:44,45:86:-141.48,-25.92,-179.52:99
-chr1	2344260	rs12096965	C	T	229.98	PASS	AC=1;AF=0.50;AN=2;DB;DP=88;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=58.88;MQ0=0;OQ=1606.93;QD=18.26;SB=-801.37	GT:AD:DP:GL:GQ	0/1:41,47:83:-188.99,-25.01,-117.57:99
-chr1	2344423	rs12097032	C	T	484.25	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.75;MQ0=0;OQ=986.20;QD=13.33;SB=-465.97	GT:AD:DP:GL:GQ	0/1:43,31:74:-124.19,-22.29,-159.47:99
-chr1	2344746	rs10797421	G	A	65.48	PASS	AC=2;AF=1.00;AN=2;DB;DP=81;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=59.32;MQ0=1;OQ=3166.01;QD=39.09;SB=-1482.03	GT:AD:DP:GL:GQ	1/1:0,81:79:-320.20,-23.80,-0.02:99
-chr1	2345260	.	A	G	75.95	PASS	AC=1;AF=0.50;AN=2;DP=60;Dels=0.00;HRun=1;HaplotypeScore=1.32;MQ=59.23;MQ0=0;OQ=680.86;QD=11.35;SB=-282.57	GT:AD:DP:GL:GQ	0/1:36,24:58:-88.84,-17.47,-139.70:99
-chr1	2346437	rs4648840	A	G	47.43	PASS	AC=1;AF=0.50;AN=2;DB;DP=29;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=56.94;MQ0=0;OQ=537.49;QD=18.53;SB=-194.00	GT:AD:DP:GL:GQ	0/1:11,18:29:-65.77,-8.74,-43.90:99
-chr1	2346772	rs2494433	G	A	58.11	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=1;HaplotypeScore=3.58;MQ=56.91;MQ0=0;OQ=1163.67;QD=17.63;SB=-493.51	GT:AD:DP:GL:GQ	0/1:29,36:61:-138.03,-18.37,-99.55:99
-chr1	2347335	rs2494434	T	C	559.97	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.75;MQ0=0;OQ=1472.38;QD=29.45;SB=-544.87	GT:AD:DP:GL:GQ	1/1:0,50:48:-150.87,-14.48,-0.05:99
-chr1	2347933	rs2494588	C	T	188.87	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=2.53;MQ=57.48;MQ0=0;OQ=702.34;QD=16.33;SB=-327.35	GT:AD:DP:GL:GQ	0/1:19,24:41:-85.88,-12.36,-61.93:99
-chr1	2348381	rs55852252	G	A	9.22	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=6.28;MQ=58.74;MQ0=0;OQ=406.10;QD=10.98;SB=-128.60	GT:AD:DP:GL:GQ	0/1:20,16:33:-53.85,-9.96,-60.26:99
-chr1	2348618	rs2494587	C	T	128.74	PASS	AC=1;AF=0.50;AN=2;DB;DP=30;Dels=0.00;HRun=0;HaplotypeScore=3.39;MQ=58.45;MQ0=0;OQ=376.88;QD=12.56;SB=-173.14	GT:AD:DP:GL:GQ	0/1:17,13:28:-49.41,-8.44,-50.72:99
-chr1	2348708	rs12116913	G	C	294.62	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.74;MQ0=0;OQ=640.63;QD=17.31;SB=-259.09	GT:AD:DP:GL:GQ	0/1:14,23:34:-77.61,-10.26,-60.10:99
-chr1	2349777	rs2494436	T	C	163.31	PASS	AC=1;AF=0.50;AN=2;DB;DP=35;Dels=0.00;HRun=0;HaplotypeScore=2.32;MQ=59.34;MQ0=0;OQ=309.46;QD=8.84;SB=-92.69	GT:AD:DP:GL:GQ	0/1:19,16:32:-43.87,-9.64,-70.50:99
-chr1	2349800	rs7515934	C	T	251.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=2.37;MQ=58.83;MQ0=0;OQ=424.25;QD=11.78;SB=-175.26	GT:AD:DP:GL:GQ	0/1:19,17:28:-54.15,-8.45,-42.69:99
-chr1	2350992	rs10910075	C	T	473.62	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.99;MQ0=0;OQ=647.50;QD=14.08;SB=-334.47	GT:AD:DP:GL:GQ	0/1:24,22:45:-81.60,-13.57,-79.99:99
-chr1	2351241	.	T	G	21.83	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=55;Dels=0.00;HRun=2;HaplotypeScore=2.69;MQ=59.58;MQ0=0;QD=0.40;SB=68.21	GT:AD:DP:GL:GQ	0/1:36,19:40:-17.52,-12.05,-117.29:54.64
-chr1	2351880	rs4531246	G	T	25.70	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=6.77;MQ=57.66;MQ0=0;OQ=504.52;QD=12.61;SB=-172.18	GT:AD:DP:GL:GQ	0/1:16,23:33:-63.68,-9.95,-50.73:99
-chr1	2352624	rs10797424	A	T	924.88	Indel	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=6.64;MQ=59.45;MQ0=0;QD=16.52;SB=-353.59	GT:AD:DP:GL:GQ	0/1:25,31:52:-111.44,-15.67,-81.17:99
-chr1	2352687	rs2494641	C	T	290.78	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=2.99;MQ=59.48;MQ0=0;OQ=558.90;QD=11.89;SB=-269.24	GT:AD:DP:GL:GQ	0/1:28,19:43:-72.14,-12.96,-80.82:99
-chr1	2353187	rs2494640	G	C	26.97	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=2;HaplotypeScore=4.41;MQ=59.56;MQ0=0;OQ=532.94;QD=10.25;SB=-240.06	GT:AD:DP:GL:GQ	0/1:33,18:51:-71.97,-15.39,-132.20:99
-chr1	2361858	rs12756220	T	C	1.74	PASS	AC=1;AF=0.50;AN=2;DB;DP=140;Dels=0.00;HRun=2;HaplotypeScore=7.14;MQ=34.26;MQ0=3;OQ=1721.38;QD=12.30;SB=-137.87	GT:AD:DP:GL:GQ	0/1:41,97:98:-204.99,-29.57,-118.98:99
-chr1	2361893	rs34648463	T	G	24.56	PASS	AC=1;AF=0.50;AN=2;DB;DP=91;Dels=0.00;HRun=1;HaplotypeScore=3.90;MQ=42.90;MQ0=5;OQ=1167.25;QD=12.83;SB=-195.79	GT:AD:DP:GL:GQ	0/1:32,58:69:-140.80,-20.79,-99.18:99
-chr1	2361936	rs28669301	A	C	0.04	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DB;DP=80;Dels=0.00;HRun=2;HaplotypeScore=18.37;MQ=47.88;MQ0=0;OQ=797.11;QD=9.96;SB=-212.34	GT:AD:DP:GL:GQ	0/1:30,48:65:-102.59,-19.60,-99.90:99
-chr1	2361993	rs2494638	G	C	0.10	PASS	AC=1;AF=0.50;AN=2;DB;DP=80;Dels=0.00;HRun=2;HaplotypeScore=3.02;MQ=48.10;MQ0=3;OQ=294.71;QD=3.68;SB=53.21	GT:AD:DP:GL:GQ	0/1:57,23:60:-50.84,-18.09,-206.36:99
-chr1	2363043	.	G	A	28.79	PASS	AC=1;AF=0.50;AN=2;DP=27;Dels=0.00;HRun=1;HaplotypeScore=1.42;MQ=59.14;MQ0=0;OQ=346.36;QD=12.83;SB=-157.68	GT:AD:DP:GL:GQ	0/1:14,13:24:-45.16,-7.24,-42.35:99
-chr1	2380627	.	C	G	34.70	LowQual	AC=1;AF=0.50;AN=2;DP=72;Dels=0.00;HRun=0;HaplotypeScore=1.96;MQ=57.50;MQ0=0;QD=0.48;SB=-30.39	GT:AD:DP:GL:GQ	0/1:66,6:63:-25.74,-18.99,-243.93:67.54
-chr1	2380700	rs28508164	T	C	2.51	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=57.08;MQ0=1;OQ=73.76;QD=1.76;SB=-56.90	GT:AD:DP:GL:GQ	0/1:36,6:33:-20.60,-9.94,-107.88:99
-chr1	2380723	.	G	C	46.32	LowQual	AC=1;AF=0.50;AN=2;DP=17;Dels=0.00;HRun=2;HaplotypeScore=2.29;MQ=49.69;MQ0=1;QD=2.72;SB=-23.39	GT:AD:DP:GL:GQ	0/1:12,5:11:-11.23,-3.32,-34.81:79.16
-chr1	2380725	.	C	T	43.06	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=17;Dels=0.00;HRun=0;HaplotypeScore=4.03;MQ=49.69;MQ0=1;QD=2.53;SB=5.04	GT:AD:DP:GL:GQ	0/1:12,5:11:-10.90,-3.32,-27.83:75.90
-chr1	2380739	.	G	C	31.92	LowQual	AC=1;AF=0.50;AN=2;DP=17;Dels=0.00;HRun=2;HaplotypeScore=1.16;MQ=44.53;MQ0=1;QD=1.88;SB=-3.98	GT:AD:DP:GL:GQ	0/1:10,7:9:-9.19,-2.71,-29.02:64.75
-chr1	2380741	.	C	T	23.47	LowQual	AC=1;AF=0.50;AN=2;DP=16;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=43.38;MQ0=1;QD=1.47;SB=-3.99	GT:AD:DP:GL:GQ	0/1:10,6:8:-8.04,-2.42,-18.12:56.29
-chr1	2380787	.	C	G	11.87	PASS	AC=1;AF=0.50;AN=2;DP=25;Dels=0.00;HRun=0;HaplotypeScore=3.66;MQ=41.08;MQ0=2;OQ=228.10;QD=9.12;SB=-107.32	GT:AD:DP:GL:GQ	0/1:13,12:14:-30.31,-4.22,-31.36:99
-chr1	2380789	.	T	C	0.06	PASS	AC=1;AF=0.50;AN=2;DP=25;Dels=0.00;HRun=2;HaplotypeScore=3.66;MQ=41.08;MQ0=2;OQ=146.59;QD=5.86;SB=-69.76	GT:AD:DP:GL:GQ	0/1:13,12:14:-22.16,-4.22,-27.36:99
-chr1	2380812	.	C	T	0.03	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=33;Dels=0.00;HRun=1;HaplotypeScore=13.92;MQ=46.38;MQ0=1;OQ=329.40;QD=9.98;SB=-91.91	GT:AD:DP:GL:GQ	0/1:15,18:19:-41.95,-5.73,-28.82:99
-chr1	2380819	.	C	G	37.83	LowQual	AC=1;AF=0.50;AN=2;DP=35;Dels=0.00;HRun=0;HaplotypeScore=9.81;MQ=46.57;MQ0=1;QD=1.08;SB=-27.83	GT:AD:DP:GL:GQ	0/1:27,8:18:-12.49,-5.42,-65.92:70.67
-chr1	2382567	.	A	G	10.80	PASS	AC=1;AF=0.50;AN=2;DP=40;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=59.42;MQ0=0;OQ=573.70;QD=14.34;SB=-186.56	GT:AD:DP:GL:GQ	0/1:16,24:36:-71.50,-10.85,-55.65:99
-chr1	2390539	rs56368227	C	T	147.22	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=2.76;MQ=58.63;MQ0=0;OQ=772.55;QD=15.15;SB=-231.31	GT:AD:DP:GL:GQ	0/1:25,25:47:-96.89,-16.35,-71.90:99
-chr1	2391510	rs942818	T	C	169.46	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=58.03;MQ0=0;OQ=1503.43;QD=30.07;SB=-692.23	GT:AD:DP:GL:GQ	1/1:0,50:44:-153.95,-13.26,-0.02:99
-chr1	2393714	rs10910080	G	A	120.05	PASS	AC=1;AF=0.50;AN=2;DB;DP=26;Dels=0.00;HRun=0;HaplotypeScore=2.52;MQ=58.38;MQ0=0;OQ=343.05;QD=13.19;SB=-140.60	GT:AD:DP:GL:GQ	0/1:13,13:24:-44.83,-7.24,-36.59:99
-chr1	2394116	rs2494626	C	T	263.72	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=1;HaplotypeScore=0.65;MQ=58.95;MQ0=0;OQ=492.85;QD=12.32;SB=-207.19	GT:AD:DP:GL:GQ	0/1:23,17:37:-63.72,-11.16,-67.50:99
-chr1	2398521	rs1536155	A	G	7.46	PASS	AC=1;AF=0.50;AN=2;DB;DP=27;Dels=0.00;HRun=3;HaplotypeScore=2.26;MQ=58.44;MQ0=0;OQ=280.60;QD=10.39;SB=-38.80	GT:AD:DP:GL:GQ	0/1:14,13:25:-38.88,-7.54,-51.71:99
-chr1	2399136	rs12049628	A	G	275.01	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=1.86;MQ=58.16;MQ0=0;OQ=457.42;QD=9.94;SB=-243.30	GT:AD:DP:GL:GQ	0/1:24,22:43:-61.98,-12.96,-96.02:99
-chr1	2399220	rs59417818	G	A	58.40	PASS	AC=1;AF=0.50;AN=2;DB;DP=26;Dels=0.00;HRun=0;HaplotypeScore=1.32;MQ=60.00;MQ0=0;OQ=406.26;QD=15.63;SB=-103.61	GT:AD:DP:GL:GQ	0/1:12,13:24:-51.14,-7.23,-38.48:99
-chr1	2399752	rs12727342	A	G	0.92	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=1;HaplotypeScore=4.77;MQ=57.40;MQ0=0;OQ=225.70;QD=6.10;SB=-108.60	GT:AD:DP:GL:GQ	0/1:20,17:31:-35.20,-9.35,-75.95:99
-chr1	2399993	.	G	C	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=35;Dels=0.00;HRun=1;HaplotypeScore=4.11;MQ=57.31;MQ0=0;OQ=125.38;QD=3.58;SB=53.21	GT:AD:DP:GL:GQ	0/1:25,10:27:-23.96,-8.14,-94.75:99
-chr1	2400649	rs11799501	C	T	116.65	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=4.89;MQ=60.00;MQ0=0;OQ=748.36;QD=14.39;SB=-393.78	GT:AD:DP:GL:GQ	0/1:28,24:51:-93.50,-15.38,-86.98:99
-chr1	2401311	rs10797428	A	G	76.46	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=3;HaplotypeScore=1.05;MQ=59.53;MQ0=0;OQ=638.41;QD=15.96;SB=-314.23	GT:AD:DP:GL:GQ	0/1:15,25:38:-78.58,-11.46,-54.60:99
-chr1	2402139	rs4648638	A	T	283.51	PASS	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=59.43;MQ0=0;OQ=382.69;QD=11.60;SB=-121.80	GT:AD:DP:GL:GQ	0/1:19,14:31:-50.89,-9.34,-63.99:99
-chr1	2403494	rs942817	G	C	329.65	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.92;MQ=58.68;MQ0=0;OQ=865.92;QD=18.82;SB=-441.92	GT:AD:DP:GL:GQ	0/1:21,25:43:-102.83,-12.96,-79.86:99
-chr1	2404788	rs4995304	G	A	54.16	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=55.45;MQ0=0;OQ=801.00;QD=19.54;SB=-282.18	GT:AD:DP:GL:GQ	0/1:16,24:39:-95.13,-11.75,-53.28:99
-chr1	2405062	.	T	G	6.04	PASS	AC=1;AF=0.50;AN=2;DP=23;Dels=0.00;HRun=0;HaplotypeScore=1.57;MQ=55.86;MQ0=0;OQ=164.49;QD=7.15;SB=2.04	GT:AD:DP:GL:GQ	0/1:15,8:23:-26.66,-6.93,-55.71:99
-chr1	2405078	.	C	T	5.98	PASS	AC=1;AF=0.50;AN=2;DP=23;Dels=0.00;HRun=0;HaplotypeScore=1.46;MQ=52.76;MQ0=0;OQ=151.99;QD=6.61;SB=-0.99	GT:AD:DP:GL:GQ	0/1:16,7:20:-24.51,-6.03,-50.27:99
-chr1	2405106	.	G	T	34.21	LowQual	AC=1;AF=0.50;AN=2;DP=21;Dels=0.00;HRun=1;HaplotypeScore=4.38;MQ=49.04;MQ0=0;QD=1.63;SB=-10.00	GT:AD:DP:GL:GQ	0/1:16,5:14:-10.92,-4.22,-37.23:67.05
-chr1	2405179	.	T	G	0.09	PASS	AC=1;AF=0.50;AN=2;DP=18;Dels=0.00;HRun=3;HaplotypeScore=3.52;MQ=52.14;MQ0=0;OQ=147.78;QD=8.21;SB=-98.66	GT:AD:DP:GL:GQ	0/1:11,7:13:-21.98,-3.92,-24.09:99
-chr1	2405189	.	T	C	0.04	FDRtranche0.10to1.00	AC=2;AF=1.00;AN=2;DP=19;Dels=0.00;HRun=3;HaplotypeScore=5.56;MQ=47.05;MQ0=0;OQ=344.28;QD=18.12;SB=-173.40	GT:AD:DP:GL:GQ	1/1:0,19:11:-38.02,-3.32,-0.01:33.08
-chr1	2405210	.	C	A	0.76	PASS	AC=1;AF=0.50;AN=2;DP=14;Dels=0.00;HRun=1;HaplotypeScore=2.86;MQ=39.01;MQ0=0;OQ=86.77;QD=6.20;SB=-60.75	GT:AD:DP:GL:GQ	0/1:10,4:8:-14.37,-2.41,-11.67:92.61
-chr1	2405220	.	G	C	0.99	PASS	AC=1;AF=0.50;AN=2;DP=14;Dels=0.00;HRun=0;HaplotypeScore=2.07;MQ=39.01;MQ0=0;OQ=62.38;QD=4.46;SB=-40.43	GT:AD:DP:GL:GQ	0/1:10,4:7:-11.64,-2.12,-15.93:95.21
-chr1	2405254	.	T	C	25.50	LowQual	AC=1;AF=0.50;AN=2;DP=7;Dels=0.00;HRun=3;HaplotypeScore=1.85;MQ=37.93;MQ0=1;QD=3.64;SB=-6.99	GT:AD:DP:GL:GQ	0/1:3,4:4:-7.04,-1.21,-6.92:57.17
-chr1	2405275	.	C	A	10.07	PASS	AC=2;AF=1.00;AN=2;DP=9;Dels=0.00;HRun=1;HaplotypeScore=2.14;MQ=32.15;MQ0=1;OQ=98.76;QD=10.97;SB=-39.94	GT:AD:DP:GL:GQ	1/1:5,4:4:-13.41,-1.21,-0.00:12.03
-chr1	2405285	.	G	C	5.32	PASS	AC=1;AF=0.50;AN=2;DP=15;Dels=0.00;HRun=0;HaplotypeScore=2.30;MQ=37.51;MQ0=1;OQ=185.89;QD=12.39;SB=-10.00	GT:AD:DP:GL:GQ	0/1:8,7:7:-23.98,-2.11,-4.50:23.85
-chr1	2405307	.	G	C	0.94	PASS	AC=1;AF=0.50;AN=2;DP=13;Dels=0.00;HRun=0;HaplotypeScore=1.31;MQ=44.11;MQ0=0;OQ=225.33;QD=17.33;SB=-6.99	GT:AD:DP:GL:GQ	0/1:5,8:9:-28.53,-2.71,-8.94:62.30
-chr1	2405357	rs61763948	T	C	6.42	PASS	AC=1;AF=0.50;AN=2;DB;DP=17;Dels=0.00;HRun=0;HaplotypeScore=1.39;MQ=58.63;MQ0=0;OQ=296.15;QD=17.42;SB=-3.98	GT:AD:DP:GL:GQ	0/1:4,13:16:-37.72,-4.82,-15.46:99
-chr1	2406217	rs4648639	G	A	225.22	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=51.38;MQ0=0;OQ=834.51;QD=18.14;SB=-265.24	GT:AD:DP:GL:GQ	0/1:20,26:45:-100.29,-13.55,-72.00:99
-chr1	2407818	rs4648640	G	A	162.08	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=1;HaplotypeScore=1.42;MQ=59.09;MQ0=0;OQ=709.86;QD=15.43;SB=-272.15	GT:AD:DP:GL:GQ	0/1:23,23:44:-87.53,-13.26,-76.87:99
-chr1	2408795	rs10910082	C	T	122.37	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=1;HaplotypeScore=1.16;MQ=59.49;MQ0=0;OQ=319.86;QD=7.11;SB=-107.45	GT:AD:DP:GL:GQ	0/1:33,12:44:-48.52,-13.25,-117.65:99
-chr1	2410450	rs10752744	T	C	140.49	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=1;HaplotypeScore=1.65;MQ=60.00;MQ0=0;OQ=499.26;QD=10.62;SB=-158.91	GT:AD:DP:GL:GQ	0/1:28,19:47:-67.37,-14.16,-113.54:99
-chr1	2410773	rs6668720	A	G	120.35	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=2.41;MQ=58.84;MQ0=0;OQ=320.90;QD=8.02;SB=-52.83	GT:AD:DP:GL:GQ	0/1:24,16:36:-46.22,-10.85,-86.61:99
-chr1	2412474	rs2477699	G	A	360.42	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=1.72;MQ=58.60;MQ0=0;OQ=676.25;QD=13.52;SB=-318.34	GT:AD:DP:GL:GQ	0/1:25,25:46:-84.77,-13.86,-87.14:99
-chr1	2413426	rs3001349	C	G	122.02	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=4.47;MQ=59.07;MQ0=0;OQ=984.04;QD=19.68;SB=-507.27	GT:AD:DP:GL:GQ	0/1:22,28:50:-116.76,-15.07,-93.45:99
-chr1	2414277	rs2477701	T	C	471.99	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.44;MQ0=0;OQ=1313.31;QD=32.03;SB=-482.12	GT:AD:DP:GL:GQ	1/1:0,41:41:-134.95,-12.36,-0.03:99
-chr1	2414754	rs2477702	T	C	257.38	PASS	AC=1;AF=0.50;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=2.15;MQ=58.58;MQ0=0;OQ=407.32;QD=11.31;SB=-181.54	GT:AD:DP:GL:GQ	0/1:18,17:33:-53.96,-9.95,-62.99:99
-chr1	2415234	.	G	A	52.54	PASS	AC=1;AF=0.50;AN=2;DP=40;Dels=0.00;HRun=0;HaplotypeScore=3.50;MQ=58.25;MQ0=0;OQ=558.86;QD=13.97;SB=-294.85	GT:AD:DP:GL:GQ	0/1:20,20:36:-70.03,-10.86,-54.36:99
-chr1	2415852	rs2477703	C	T	47.65	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=7.69;MQ=58.80;MQ0=0;OQ=763.15;QD=13.16;SB=-352.50	GT:AD:DP:GL:GQ	0/1:34,24:57:-96.78,-17.18,-104.35:99
-chr1	2416626	rs3001347	A	G	166.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=1.25;MQ=58.74;MQ0=0;OQ=303.26;QD=8.20;SB=-170.50	GT:AD:DP:GL:GQ	0/1:20,17:33:-43.56,-9.95,-71.18:99
-chr1	2417572	rs3762444	C	T	276.23	PASS	AC=1;AF=0.50;AN=2;DB;DP=30;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=60.00;MQ0=0;OQ=447.88;QD=14.93;SB=-199.90	GT:AD:DP:GL:GQ	0/1:15,15:29:-56.82,-8.74,-44.39:99
-chr1	2418734	rs2477706	T	C	40.91	PASS	AC=1;AF=0.50;AN=2;DB;DP=35;Dels=0.00;HRun=0;HaplotypeScore=2.30;MQ=58.67;MQ0=0;OQ=224.99;QD=6.43;SB=-131.52	GT:AD:DP:GL:GQ	0/1:20,15:30:-34.83,-9.05,-71.11:99
-chr1	2422191	rs4648641	C	A	142.70	PASS	AC=1;AF=0.50;AN=2;DB;DP=22;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=57.65;MQ0=0;OQ=139.36;QD=6.33;SB=-88.78	GT:AD:DP:GL:GQ	0/1:13,9:20:-23.25,-6.03,-44.88:99
-chr1	2422622	rs4648642	G	A	142.31	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=2.94;MQ=59.39;MQ0=0;OQ=411.20;QD=10.82;SB=-172.27	GT:AD:DP:GL:GQ	0/1:23,15:36:-55.26,-10.86,-70.83:99
-chr1	2422899	.	G	A	37.84	PASS	AC=1;AF=0.50;AN=2;DP=34;Dels=0.00;HRun=0;HaplotypeScore=2.95;MQ=59.45;MQ0=0;OQ=458.87;QD=13.50;SB=-199.87	GT:AD:DP:GL:GQ	0/1:18,16:31:-58.52,-9.34,-51.58:99
-chr1	2423328	.	G	A	53.96	PASS	AC=1;AF=0.50;AN=2;DP=23;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=296.62;QD=12.90;SB=-35.64	GT:AD:DP:GL:GQ	0/1:13,10:22:-39.58,-6.63,-40.93:99
-chr1	2423754	rs55874156	G	A	35.47	LowQual	AC=1;AF=0.50;AN=2;DB;DP=6;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;QD=5.91;SB=-7.00	GT:AD:DP:GL:GQ	0/1:3,3:5:-8.34,-1.51,-8.96:68.30
-chr1	2423760	rs12736998	C	T	230.21	PASS	AC=1;AF=0.50;AN=2;DB;DP=6;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=70.89;QD=11.81;SB=-46.66	GT:AD:DP:GL:GQ	0/1:3,3:6:-12.18,-1.81,-9.71:78.98
-chr1	2424604	rs3814298	C	T	190.56	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=3.41;MQ=60.00;MQ0=0;OQ=798.59;QD=18.57;SB=-384.92	GT:AD:DP:GL:GQ	0/1:19,24:41:-95.50,-12.36,-53.02:99
-chr1	2428628	rs12725663	C	T	86.80	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=2.60;MQ=59.46;MQ0=0;OQ=892.70;QD=20.76;SB=-466.01	GT:AD:DP:GL:GQ	0/1:16,27:41:-104.92,-12.36,-47.45:99
-chr1	2429459	rs2494621	C	A	2.75	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=3;HaplotypeScore=1.26;MQ=59.48;MQ0=0;OQ=889.11;QD=20.21;SB=-361.22	GT:AD:DP:GL:GQ	0/1:15,29:43:-105.15,-12.95,-49.46:99
-chr1	2429541	rs4648559	C	T	370.29	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.62;MQ0=0;OQ=862.47;QD=17.60;SB=-340.86	GT:AD:DP:GL:GQ	0/1:22,27:49:-104.31,-14.78,-68.65:99
-chr1	2429545	rs3791180	G	C	362.92	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.63;MQ0=0;OQ=669.25;QD=13.12;SB=-329.42	GT:AD:DP:GL:GQ	0/1:24,27:45:-83.79,-13.58,-96.76:99
-chr1	2434274	rs7535528	G	A	398.69	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=1.53;MQ=57.41;MQ0=0;OQ=974.09;QD=16.23;SB=-447.47	GT:AD:DP:GL:GQ	0/1:29,31:55:-117.28,-16.58,-80.59:99
-chr1	2440170	rs56168662	G	C	440.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.50;MQ0=0;OQ=641.06;QD=13.94;SB=-291.00	GT:AD:DP:GL:GQ	0/1:24,22:44:-80.67,-13.28,-95.39:99
-chr1	2442429	rs2985862	T	C	118.89	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=1;HaplotypeScore=1.31;MQ=58.11;MQ0=0;OQ=446.59;QD=12.07;SB=-57.29	GT:AD:DP:GL:GQ	0/1:20,17:36:-58.79,-10.85,-82.58:99
-chr1	2442985	.	C	G	26.50	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=40;Dels=0.00;HRun=1;HaplotypeScore=2.73;MQ=57.66;MQ0=0;QD=0.66;SB=53.21	GT:AD:DP:GL:GQ	0/1:27,13:28:-14.38,-8.45,-107.19:59.33
-chr1	2443996	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=124;Dels=0.00;HRun=0;HaplotypeScore=42.41;MQ=51.42;MQ0=0;OQ=532.54;QD=4.29;SB=-103.57	GT:AD:DP:GL:GQ	0/1:93,31:115:-91.18,-34.64,-325.86:99
-chr1	2444008	rs12757829	A	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DB;DP=141;Dels=0.00;HRun=1;HaplotypeScore=24.89;MQ=51.04;MQ0=0;OQ=890.38;QD=6.31;SB=-413.05	GT:AD:DP:GL:GQ	0/1:89,52:127:-130.59,-38.27,-352.78:99
-chr1	2444025	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=153;Dels=0.00;HRun=0;HaplotypeScore=101.62;MQ=51.11;MQ0=0;OQ=575.04;QD=3.76;SB=-161.02	GT:AD:DP:GL:GQ	0/1:119,34:145:-104.47,-43.68,-467.68:99
-chr1	2444046	rs11582708	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=169;Dels=0.00;HRun=3;HaplotypeScore=36.45;MQ=48.57;MQ0=0;OQ=119.48;QD=0.71;SB=230.81	GT:AD:DP:GL:GQ	0/1:152,17:154:-61.64,-46.41,-606.32:99
-chr1	2444064	rs11583446	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=165;Dels=0.00;HRun=0;HaplotypeScore=21.72;MQ=47.52;MQ0=0;OQ=2894.91;QD=17.54;SB=-1278.77	GT:AD:DP:GL:GQ	0/1:56,109:148:-337.38,-44.60,-196.45:99
-chr1	2444078	rs2494629	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=179;Dels=0.00;HRun=0;HaplotypeScore=85.91;MQ=46.23;MQ0=1;OQ=3166.59;QD=17.69;SB=-903.91	GT:AD:DP:GL:GQ	0/1:79,100:143:-363.06,-43.11,-245.67:99
-chr1	2444084	rs11583448	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=183;Dels=0.00;HRun=0;HaplotypeScore=146.19;MQ=45.66;MQ0=1;OQ=1337.56;QD=7.31;SB=32.08	GT:AD:DP:GL:GQ	0/1:128,54:167:-187.36,-50.32,-447.47:99
-chr1	2444090	rs11582711	C	T	0.69	PASS	AC=1;AF=0.50;AN=2;DB;DP=184;Dels=0.00;HRun=1;HaplotypeScore=9.96;MQ=45.23;MQ0=1;OQ=1767.35;QD=9.61;SB=-110.22	GT:AD:DP:GL:GQ	0/1:119,64:165:-229.73,-49.72,-378.76:99
-chr1	2444114	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=167;Dels=0.00;HRun=1;HaplotypeScore=224.24;MQ=44.82;MQ0=1;OQ=1189.56;QD=7.12;SB=-484.53	GT:AD:DP:GL:GQ	0/1:105,62:153:-168.35,-46.11,-399.99:99
-chr1	2444123	rs60947977	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=164;Dels=0.00;HRun=1;HaplotypeScore=187.19;MQ=44.56;MQ0=1;OQ=222.03;QD=1.35;SB=140.46	GT:AD:DP:GL:GQ	0/1:146,18:145:-69.17,-43.68,-451.95:99
-chr1	2444144	rs12735280	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=159;Dels=0.00;HRun=0;HaplotypeScore=41.21;MQ=45.78;MQ0=2;OQ=126.97;QD=0.80;SB=158.55	GT:AD:DP:GL:GQ	0/1:146,13:126:-53.98,-38.00,-474.20:99
-chr1	2444156	rs61763952	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=143;Dels=0.00;HRun=1;HaplotypeScore=50.63;MQ=44.65;MQ0=2;OQ=841.78;QD=5.89;SB=-177.38	GT:AD:DP:GL:GQ	0/1:107,36:119:-123.33,-35.87,-307.59:99
-chr1	2444175	.	A	G	1992.57	SnpCluster	AC=1;AF=0.50;AN=2;DP=119;Dels=0.00;HRun=1;HaplotypeScore=57.72;MQ=43.73;MQ0=1;QD=16.74;SB=-969.28	GT:AD:DP:GL:GQ	0/1:46,73:107:-234.78,-32.23,-167.74:99
-chr1	2444179	.	C	T	733.69	SnpCluster	AC=1;AF=0.50;AN=2;DP=108;Dels=0.00;HRun=1;HaplotypeScore=94.68;MQ=43.15;MQ0=1;QD=6.79;SB=-249.70	GT:AD:DP:GL:GQ	0/1:79,29:94:-104.98,-28.32,-236.84:99
-chr1	2444180	.	T	C	74.50	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=104;Dels=0.00;HRun=1;HaplotypeScore=102.88;MQ=43.30;MQ0=1;QD=0.72;SB=40.74	GT:AD:DP:GL:GQ	0/1:89,15:92:-38.46,-27.73,-318.94:99
-chr1	2444188	.	C	T	230.63	SnpCluster	AC=1;AF=0.50;AN=2;DP=99;Dels=0.00;HRun=1;HaplotypeScore=69.58;MQ=42.94;MQ0=1;QD=2.33;SB=-68.96	GT:AD:DP:GL:GQ	0/1:80,18:83:-51.35,-25.01,-254.74:99
-chr1	2444203	rs12723596	A	G	0.31	PASS	AC=1;AF=0.50;AN=2;DB;DP=91;Dels=0.00;HRun=1;HaplotypeScore=13.04;MQ=41.89;MQ0=1;OQ=932.46;QD=10.25;SB=-166.34	GT:AD:DP:GL:GQ	0/1:48,43:72:-118.23,-21.70,-146.57:99
-chr1	2444214	.	T	G	33.51	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=85;Dels=0.00;HRun=1;HaplotypeScore=90.11;MQ=41.94;MQ0=0;QD=0.39;SB=20.19	GT:AD:DP:GL:GQ	0/1:75,10:71:-28.02,-21.39,-222.83:66.35
-chr1	2444236	rs3001351	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=107;Dels=0.00;HRun=1;HaplotypeScore=44.56;MQ=42.21;MQ0=1;OQ=1478.32;QD=13.82;SB=-341.03	GT:AD:DP:GL:GQ	0/1:32,75:79:-174.93,-23.81,-103.79:99
-chr1	2444239	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=109;Dels=0.00;HRun=1;HaplotypeScore=57.18;MQ=42.22;MQ0=1;OQ=253.01;QD=2.32;SB=-45.72	GT:AD:DP:GL:GQ	0/1:94,15:81:-52.98,-24.40,-242.61:99
-chr1	2444569	rs2494625	T	C	30.67	PASS	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=59.30;MQ0=0;OQ=234.27;QD=7.10;SB=-122.64	GT:AD:DP:GL:GQ	0/1:20,13:30:-35.75,-9.04,-76.61:99
-chr1	2445722	rs12131236	C	T	283.83	PASS	AC=1;AF=0.50;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.73;MQ0=0;OQ=971.15;QD=13.87;SB=-406.34	GT:AD:DP:GL:GQ	0/1:39,31:69:-121.19,-20.79,-133.37:99
-chr1	2446063	rs3122922	A	G	422.66	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.58;MQ=58.95;MQ0=0;OQ=840.10;QD=14.48;SB=-338.93	GT:AD:DP:GL:GQ	0/1:28,30:57:-104.46,-17.17,-113.53:99
-chr1	2452678	rs2494603	T	C	117.86	PASS	AC=1;AF=0.50;AN=2;DB;DP=32;Dels=0.00;HRun=0;HaplotypeScore=-0.06;MQ=59.28;MQ0=0;OQ=471.49;QD=14.73;SB=-130.66	GT:AD:DP:GL:GQ	0/1:12,20:28:-58.88,-8.44,-38.02:99
-chr1	2452695	rs10910087	A	G	48.63	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=2;HaplotypeScore=0.47;MQ=58.97;MQ0=0;OQ=650.54;QD=14.46;SB=-235.28	GT:AD:DP:GL:GQ	0/1:22,23:45:-81.90,-13.56,-89.06:99
-chr1	2453274	rs11583602	G	A	37.53	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=2;HaplotypeScore=0.16;MQ=59.57;MQ0=0;OQ=1048.89;QD=19.42;SB=-532.12	GT:AD:DP:GL:GQ	0/1:23,31:52:-123.83,-15.66,-80.52:99
-chr1	2453609	rs4648645	G	T	421.56	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.61;MQ0=0;OQ=634.41;QD=13.22;SB=-255.25	GT:AD:DP:GL:GQ	0/1:25,23:48:-81.19,-14.46,-89.13:99
-chr1	2453905	rs6694195	G	A	6.21	PASS	AC=1;AF=0.50;AN=2;DB;DP=29;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=60.00;MQ0=0;OQ=641.00;QD=22.10;SB=-187.27	GT:AD:DP:GL:GQ	0/1:9,20:26:-75.22,-7.83,-25.34:99
-chr1	2454427	rs12406506	G	T	168.99	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=1.63;MQ=59.39;MQ0=0;OQ=384.63;QD=10.12;SB=-161.15	GT:AD:DP:GL:GQ	0/1:22,16:36:-52.59,-10.85,-75.30:99
-chr1	2454955	rs11585747	C	T	158.41	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=1.94;MQ=58.68;MQ0=0;OQ=442.85;QD=9.63;SB=-209.92	GT:AD:DP:GL:GQ	0/1:30,16:43:-60.53,-12.97,-87.57:99
-chr1	2455004	rs9803764	C	T	21.92	PASS	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.43;MQ0=0;OQ=718.09;QD=21.76;SB=-255.79	GT:AD:DP:GL:GQ	0/1:12,21:31:-84.43,-9.34,-35.39:99
-chr1	2455189	rs11584295	G	A	326.39	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=1.20;MQ=59.30;MQ0=0;OQ=897.10;QD=14.95;SB=-369.89	GT:AD:DP:GL:GQ	0/1:30,30:57:-110.18,-17.19,-92.60:99
-chr1	2455531	rs4648561	T	C	59.57	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=4.71;MQ=60.00;MQ0=0;OQ=506.09;QD=9.04;SB=-221.92	GT:AD:DP:GL:GQ	0/1:28,28:51:-69.27,-15.38,-110.78:99
-chr1	2455652	rs3001339	C	T	0.17	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=4;HaplotypeScore=3.44;MQ=59.16;MQ0=0;OQ=1028.71;QD=18.70;SB=-294.19	GT:AD:DP:GL:GQ	0/1:22,32:53:-122.12,-15.97,-77.91:99
-chr1	2455772	rs6661956	C	T	143.28	PASS	AC=1;AF=0.50;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=1.56;MQ=60.00;MQ0=0;OQ=537.50;QD=14.93;SB=-189.16	GT:AD:DP:GL:GQ	0/1:19,17:35:-67.58,-10.55,-58.49:99
-chr1	2455810	rs2494605	A	G	6.95	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=2;HaplotypeScore=3.59;MQ=59.41;MQ0=0;OQ=1343.57;QD=34.45;SB=-641.25	GT:AD:DP:GL:GQ	1/1:0,39:38:-137.96,-11.45,-0.01:99
-chr1	2456285	rs2985860	T	G	0.20	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=2;HaplotypeScore=9.84;MQ=58.13;MQ0=0;OQ=394.22;QD=7.88;SB=-79.96	GT:AD:DP:GL:GQ	0/1:20,30:34:-52.96,-10.25,-63.38:99
-chr1	2456493	rs2494606	A	G	522.55	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.55;MQ0=0;OQ=1382.51;QD=30.72;SB=-394.30	GT:AD:DP:GL:GQ	1/1:0,45:44:-141.87,-13.27,-0.04:99
-chr1	2460535	.	T	C	626.63	Indel	AC=1;AF=0.50;AN=2;DP=47;Dels=0.04;HRun=0;HaplotypeScore=9.81;MQ=45.54;MQ0=0;QD=13.33;SB=-234.30	GT:AD:DP:GL:GQ	0/1:22,23:45:-78.90,-12.95,-84.01:99
-chr1	2460708	rs12042279	G	A	153.95	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=2.69;MQ=58.99;MQ0=0;OQ=696.74;QD=15.15;SB=-237.53	GT:AD:DP:GL:GQ	0/1:24,22:46:-86.83,-13.87,-76.84:99
-chr1	2461941	rs1886731	T	C	87.33	PASS	AC=1;AF=0.50;AN=2;DB;DP=14;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=203.62;QD=14.54;SB=-10.00	GT:AD:DP:GL:GQ	0/1:5,9:14:-27.87,-4.22,-19.55:99
-chr1	2462004	rs4487972	G	C	44.05	PASS	AC=1;AF=0.50;AN=2;DB;DP=7;Dels=0.00;HRun=1;HaplotypeScore=1.24;MQ=56.62;MQ0=0;OQ=71.85;QD=10.26;SB=-10.00	GT:AD:DP:GL:GQ	0/1:3,4:6:-12.28,-1.81,-12.84:99
-chr1	2464065	rs942824	T	C	72.36	PASS	AC=1;AF=0.50;AN=2;DB;DP=36;Dels=0.00;HRun=1;HaplotypeScore=1.60;MQ=59.36;MQ0=0;OQ=370.87;QD=10.30;SB=-61.73	GT:AD:DP:GL:GQ	0/1:20,16:34:-50.61,-10.24,-77.88:99
-chr1	2465072	rs10797429	G	C	201.07	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=2.62;MQ=57.71;MQ0=0;OQ=487.96;QD=13.19;SB=-257.25	GT:AD:DP:GL:GQ	0/1:21,16:34:-62.33,-10.25,-80.32:99
-chr1	2465334	rs55929178	C	T	11.28	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=2;HaplotypeScore=4.63;MQ=56.91;MQ0=0;OQ=721.66;QD=14.73;SB=-233.74	GT:AD:DP:GL:GQ	0/1:26,23:43:-88.40,-12.95,-74.05:99
-chr1	2467218	rs12097268	T	A	23.21	PASS	AC=1;AF=0.50;AN=2;DB;DP=17;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=190.70;QD=11.22;SB=-35.94	GT:AD:DP:GL:GQ	0/1:9,8:17:-27.48,-5.13,-30.96:99
-chr1	2468371	rs2477678	T	A	119.20	PASS	AC=1;AF=0.50;AN=2;DB;DP=35;Dels=0.00;HRun=0;HaplotypeScore=2.84;MQ=60.00;MQ0=0;OQ=463.47;QD=13.24;SB=-147.88	GT:AD:DP:GL:GQ	0/1:17,17:32:-59.27,-9.64,-59.80:99
-chr1	2469843	rs1974044	A	G	45.39	PASS	AC=1;AF=0.50;AN=2;DB;DP=35;Dels=0.00;HRun=1;HaplotypeScore=3.40;MQ=59.34;MQ0=0;OQ=371.34;QD=10.61;SB=-193.60	GT:AD:DP:GL:GQ	0/1:21,14:32:-50.06,-9.64,-71.49:99
-chr1	2471303	.	C	T	62.24	PASS	AC=1;AF=0.50;AN=2;DP=54;Dels=0.00;HRun=0;HaplotypeScore=2.70;MQ=41.42;MQ0=6;OQ=776.47;QD=14.38;SB=-282.22	GT:AD:DP:GL:GQ	0/1:29,25:42:-93.59,-12.66,-60.88:99
-chr1	2472781	rs2147905	T	C	210.38	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=3.37;MQ=57.08;MQ0=0;OQ=779.17;QD=15.90;SB=-258.93	GT:AD:DP:GL:GQ	0/1:21,26:47:-95.36,-14.16,-80.25:99
-chr1	2473130	rs3748825	T	C	24.77	PASS	AC=1;AF=0.50;AN=2;DB;DP=34;Dels=0.00;HRun=2;HaplotypeScore=0.32;MQ=50.53;MQ0=0;OQ=489.49;QD=14.40;SB=-174.97	GT:AD:DP:GL:GQ	0/1:17,17:34:-62.48,-10.24,-67.15:99
-chr1	2473158	rs2985858	C	G	170.01	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=2.64;MQ=52.63;MQ0=0;OQ=759.64;QD=17.67;SB=-375.14	GT:AD:DP:GL:GQ	0/1:22,21:42:-91.90,-12.65,-91.93:99
-chr1	2474608	rs4449972	T	C	1.07	PASS	AC=1;AF=0.50;AN=2;DB;DP=23;Dels=0.00;HRun=0;HaplotypeScore=2.00;MQ=17.16;MQ0=14;OQ=59.70;QD=2.60;SB=-42.68	GT:AD:DP:GL:GQ	0/1:13,10:7:-11.36,-2.11,-16.47:92.53
-chr1	2474629	rs2764846	G	T	13.02	PASS	AC=2;AF=1.00;AN=2;DB;DP=17;Dels=0.00;HRun=0;HaplotypeScore=2.00;MQ=13.44;MQ0=12;OQ=72.28;QD=4.25;SB=-10.00	GT:AD:DP:GL:GQ	1/1:7,10:3:-10.72,-0.90,-0.00:9.03
-chr1	2474959	rs10910088	A	G	3.08	PASS	AC=1;AF=0.50;AN=2;DB;DP=31;Dels=0.00;HRun=0;HaplotypeScore=1.93;MQ=22.58;MQ0=15;OQ=106.75;QD=3.44;SB=-10.00	GT:AD:DP:GL:GQ	0/1:16,14:12:-17.58,-3.63,-21.51:99
-chr1	2475164	rs2182176	C	T	397.56	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=48.51;MQ0=0;OQ=552.02;QD=13.14;SB=-223.69	GT:AD:DP:GL:GQ	0/1:24,18:39:-70.24,-11.76,-69.97:99
-chr1	2475556	rs1555791	C	G	11.33	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=3;HaplotypeScore=2.88;MQ=58.58;MQ0=0;OQ=550.02;QD=11.96;SB=-241.08	GT:AD:DP:GL:GQ	0/1:27,19:40:-70.37,-12.08,-87.80:99
-chr1	2475800	rs10910089	C	A	3.66	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=9.04;MQ=58.28;MQ0=0;OQ=671.47;QD=13.70;SB=-238.39	GT:AD:DP:GL:GQ	0/1:23,26:46:-84.29,-13.86,-77.00:99
-chr1	2476366	rs61054170	G	A	7.02	PASS	AC=1;AF=0.50;AN=2;DB;DP=26;Dels=0.00;HRun=0;HaplotypeScore=6.03;MQ=57.64;MQ0=0;OQ=224.60;QD=8.64;SB=-97.61	GT:AD:DP:GL:GQ	0/1:16,10:23:-32.68,-6.93,-48.70:99
-chr1	2476391	rs2495365	T	C	262.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=31;Dels=0.00;HRun=0;HaplotypeScore=2.37;MQ=56.62;MQ0=0;OQ=373.37;QD=12.04;SB=-190.59	GT:AD:DP:GL:GQ	0/1:16,15:29:-49.36,-8.74,-57.56:99
-chr1	2476740	rs11577783	T	C	207.60	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=1.26;MQ=58.69;MQ0=0;OQ=459.72;QD=9.19;SB=-194.29	GT:AD:DP:GL:GQ	0/1:30,20:49:-64.03,-14.78,-111.22:99
-chr1	2476777	rs7550231	C	T	162.70	PASS	AC=1;AF=0.50;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=0.97;MQ=59.21;MQ0=0;OQ=483.70;QD=13.44;SB=-69.05	GT:AD:DP:GL:GQ	0/1:20,15:32:-61.30,-9.65,-52.93:99
-chr1	2477765	rs7515633	T	C	23.90	PASS	AC=1;AF=0.50;AN=2;DB;DP=18;Dels=0.00;HRun=0;HaplotypeScore=-0.06;MQ=58.71;MQ0=0;OQ=253.35;QD=14.07;SB=-51.83	GT:AD:DP:GL:GQ	0/1:8,10:18:-34.04,-5.43,-30.81:99
-chr1	2477769	rs7544646	G	C	297.66	SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=18;Dels=0.00;HRun=2;HaplotypeScore=6.07;MQ=56.04;MQ0=0;QD=16.54;SB=-32.86	GT:AD:DP:GL:GQ	0/1:9,9:14:-37.27,-4.22,-20.23:99
-chr1	2477776	.	G	C	10.29	DPFilter;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=23;Dels=0.00;HRun=1;HaplotypeScore=18.19;MQ=56.92;MQ0=0;QD=0.45;SB=20.10	GT:AD:DP:GL:GQ	0/1:13,10:13:-8.19,-3.92,-49.87:42.70
-chr1	2477778	.	A	C	172	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=30;Dels=0.00;HRun=2;HaplotypeScore=22.60;MQ=57.66;MQ0=0;QD=5.73;SB=23.08	GT:AD:DP:GL:GQ	0/1:12,18:21:-26.81,-6.33,-40.53:99
-chr1	2477836	rs2843396	C	G	11.98	PASS	AC=2;AF=1.00;AN=2;DB;DP=36;Dels=0.00;HRun=1;HaplotypeScore=3.04;MQ=59.36;MQ0=0;OQ=1290.53;QD=35.85;SB=-556.54	GT:AD:DP:GL:GQ	1/1:0,36:34:-132.68,-10.27,-0.04:99
-chr1	2478204	rs10910090	G	A	182.29	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=1.93;MQ=59.53;MQ0=0;OQ=449.68;QD=11.24;SB=-202.69	GT:AD:DP:GL:GQ	0/1:23,17:38:-59.71,-11.46,-71.62:99
-chr1	2479633	rs8725	C	T	49.19	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=2;HaplotypeScore=1.46;MQ=59.51;MQ0=0;OQ=577.64;QD=12.29;SB=-219.70	GT:AD:DP:GL:GQ	0/1:27,20:42:-73.71,-12.66,-80.51:99
-chr1	2480088	rs2234167	C	T	215.09	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=1.57;MQ=60.00;MQ0=0;OQ=519.75;QD=13.33;SB=-131.13	GT:AD:DP:GL:GQ	0/1:22,17:38:-66.72,-11.46,-63.96:99
-chr1	2481753	rs11573988	C	A	159.02	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=1.52;MQ=59.54;MQ0=0;OQ=542.33;QD=13.23;SB=-158.65	GT:AD:DP:GL:GQ	0/1:20,21:37:-68.66,-11.14,-62.61:99
-chr1	2483213	rs2234161	G	A	326.82	PASS	AC=1;AF=0.50;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=0.58;MQ=58.71;MQ0=0;OQ=435.68;QD=12.10;SB=-173.67	GT:AD:DP:GL:GQ	0/1:20,16:32:-56.50,-9.65,-56.89:99
-chr1	2483476	rs2281852	G	T	352.55	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=1.72;MQ=59.50;MQ0=0;OQ=604.05;QD=13.13;SB=-299.46	GT:AD:DP:GL:GQ	0/1:23,23:43:-76.65,-12.96,-66.34:99
-chr1	2483520	rs2257763	G	T	186.21	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=3.87;MQ=58.41;MQ0=0;OQ=599.64;QD=13.63;SB=-190.60	GT:AD:DP:GL:GQ	0/1:21,23:41:-75.60,-12.36,-64.98:99
-chr1	2485488	rs2495366	C	T	214.98	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=1.30;MQ=59.54;MQ0=0;OQ=410.34;QD=10.01;SB=-177.87	GT:AD:DP:GL:GQ	0/1:24,17:33:-54.27,-9.95,-57.69:99
-chr1	2485810	rs1886730	A	G	395.82	PASS	AC=1;AF=0.50;AN=2;DB;DP=20;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=201.47;QD=10.07;SB=-95.61	GT:AD:DP:GL:GQ	0/1:11,9:20:-29.46,-6.03,-42.35:99
-chr1	2486265	rs4870	T	C	17.43	PASS	AC=1;AF=0.50;AN=2;DB;DP=24;Dels=0.00;HRun=0;HaplotypeScore=1.97;MQ=53.94;MQ0=0;OQ=133.00;QD=5.54;SB=-10.85	GT:AD:DP:GL:GQ	0/1:16,8:22:-23.21,-6.63,-59.96:99
-chr1	2486652	rs2227313	A	G	323.64	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.95;MQ0=0;OQ=361.41;QD=9.04;SB=-171.95	GT:AD:DP:GL:GQ	0/1:24,16:39:-51.18,-11.76,-90.45:99
-chr1	2486755	rs2227312	G	T	192.71	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.51;MQ0=0;OQ=435.37;QD=11.46;SB=-199.58	GT:AD:DP:GL:GQ	0/1:21,17:35:-57.36,-10.54,-70.01:99
-chr1	2489670	rs4449972	A	G	6.05	PASS	AC=1;AF=0.50;AN=2;DB;DP=34;Dels=0.00;HRun=0;HaplotypeScore=0.92;MQ=14.84;MQ0=21;OQ=104.96;QD=3.09;SB=-10.00	GT:AD:DP:GL:GQ	0/1:18,15:5:-15.28,-1.51,-4.27:27.62
-chr1	2489758	rs4385650	G	C	16.53	PASS	AC=1;AF=0.50;AN=2;DB;DP=30;Dels=0.00;HRun=2;HaplotypeScore=2.00;MQ=35.98;MQ0=1;OQ=450.14;QD=15.00;SB=-208.64	GT:AD:DP:GL:GQ	0/1:17,13:27:-56.44,-8.15,-54.66:99
-chr1	2490753	rs4648647	G	A	26.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=2;HaplotypeScore=1.33;MQ=50.09;MQ0=0;OQ=371.65;QD=10.04;SB=-147.20	GT:AD:DP:GL:GQ	0/1:24,13:35:-51.00,-10.56,-68.63:99
-chr1	2490924	.	G	A	58.67	PASS	AC=1;AF=0.50;AN=2;DP=53;Dels=0.00;HRun=0;HaplotypeScore=2.79;MQ=40.19;MQ0=3;OQ=773.22;QD=14.59;SB=-281.28	GT:AD:DP:GL:GQ	0/1:27,26:42:-93.26,-12.65,-67.56:99
-chr1	2491198	rs10797432	C	T	12.45	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=7.73;MQ=51.44;MQ0=1;OQ=449.43;QD=8.48;SB=-221.51	GT:AD:DP:GL:GQ	0/1:35,17:47:-62.39,-14.17,-101.99:99
-chr1	2491376	rs10910092	A	G	353.95	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=0.58;MQ=58.86;MQ0=0;OQ=953.50;QD=15.89;SB=-479.29	GT:AD:DP:GL:GQ	0/1:27,33:59:-116.41,-17.77,-105.03:99
-chr1	2491870	rs10797433	T	C	399.98	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=59.09;MQ0=0;OQ=643.74;QD=13.99;SB=-281.26	GT:AD:DP:GL:GQ	0/1:20,26:45:-81.22,-13.56,-79.26:99
-chr1	2492640	rs6667605	C	T	284.33	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=1.07;MQ=60.00;MQ0=0;OQ=1076.76;QD=20.32;SB=-511.53	GT:AD:DP:GL:GQ	0/1:22,31:53:-126.92,-15.96,-81.92:99
-chr1	2492694	rs6672381	A	G	59.10	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=2;HaplotypeScore=2.96;MQ=59.67;MQ0=0;OQ=836.72;QD=14.68;SB=-261.21	GT:AD:DP:GL:GQ	0/1:25,31:56:-103.83,-16.88,-100.88:99
-chr1	2493042	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=42;Dels=0.00;HRun=3;HaplotypeScore=24.29;MQ=58.55;MQ0=0;OQ=229.07;QD=5.45;SB=41.17	GT:AD:DP:GL:GQ	0/1:24,18:31:-35.54,-9.35,-97.62:99
-chr1	2494094	rs6671426	C	A	112.49	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=2;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=782.65;QD=13.98;SB=-297.63	GT:AD:DP:GL:GQ	0/1:30,26:56:-98.41,-16.86,-108.17:99
-chr1	2494223	rs28734787	T	C	285.54	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=1;HaplotypeScore=0.94;MQ=59.74;MQ0=0;OQ=1016.84;QD=14.32;SB=-488.08	GT:AD:DP:GL:GQ	0/1:37,34:71:-126.35,-21.38,-153.97:99
-chr1	2495573	rs10910093	C	T	602.04	PASS	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1162.34;QD=15.92;SB=-466.49	GT:AD:DP:GL:GQ	0/1:38,35:73:-141.53,-22.01,-121.32:99
-chr1	2496089	rs55658746	T	C	89.31	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=2;HaplotypeScore=0.87;MQ=57.64;MQ0=0;OQ=790.54;QD=12.35;SB=-411.26	GT:AD:DP:GL:GQ	0/1:36,28:63:-101.32,-18.98,-139.07:99
-chr1	2496219	rs2477685	G	T	165.82	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=2.18;MQ=55.91;MQ0=0;OQ=1646.89;QD=32.29;SB=-779.73	GT:AD:DP:GL:GQ	1/1:1,50:48:-168.30,-14.46,-0.02:99
-chr1	2496348	rs10910094	C	T	138.18	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=1.79;MQ=47.91;MQ0=1;OQ=444.30;QD=9.66;SB=-141.63	GT:AD:DP:GL:GQ	0/1:26,19:40:-59.77,-12.06,-79.45:99
-chr1	2497303	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=29;Dels=0.00;HRun=4;HaplotypeScore=6.77;MQ=59.20;MQ0=0;OQ=63.06;QD=2.17;SB=17.06	GT:AD:DP:GL:GQ	0/1:13,16:15:-14.11,-4.52,-33.25:95.89
-chr1	2497798	rs10752745	A	G	23.19	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=2;HaplotypeScore=2.74;MQ=53.22;MQ0=0;OQ=566.34;QD=12.59;SB=-208.51	GT:AD:DP:GL:GQ	0/1:24,21:42:-72.57,-12.65,-89.49:99
-chr1	2498203	rs6675676	G	C	138.01	PASS	AC=1;AF=0.50;AN=2;DB;DP=36;Dels=0.00;HRun=1;HaplotypeScore=0.83;MQ=30.17;MQ0=2;OQ=540.65;QD=15.02;SB=-227.70	GT:AD:DP:GL:GQ	0/1:18,18:32:-67.01,-9.66,-62.30:99
-chr1	2500615	rs10910095	G	A	293.14	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.96;MQ=53.83;MQ0=0;OQ=619.40;QD=15.49;SB=-326.87	GT:AD:DP:GL:GQ	0/1:18,21:35:-75.77,-10.55,-51.15:99
-chr1	2501140	rs10797434	C	T	359.97	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=2.30;MQ=59.72;MQ0=0;OQ=1006.21;QD=15.25;SB=-442.36	GT:AD:DP:GL:GQ	0/1:35,31:65:-123.49,-19.58,-121.16:99
-chr1	2501248	rs12129508	G	A	509.24	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1099.72;QD=18.33;SB=-426.78	GT:AD:DP:GL:GQ	0/1:28,32:59:-131.03,-17.77,-95.59:99
-chr1	2502312	rs4648648	G	A	10.75	PASS	AC=1;AF=0.50;AN=2;DB;DP=30;Dels=0.00;HRun=1;HaplotypeScore=5.67;MQ=56.86;MQ0=0;OQ=538.80;QD=17.96;SB=-254.77	GT:AD:DP:GL:GQ	0/1:13,17:27:-65.30,-8.13,-39.62:99
-chr1	2502510	rs4648649	T	C	255.66	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=1.14;MQ=58.39;MQ0=0;OQ=590.46;QD=13.42;SB=-228.32	GT:AD:DP:GL:GQ	0/1:17,27:40:-74.40,-12.07,-60.31:99
-chr1	2502570	rs10910096	T	C	112.48	PASS	AC=1;AF=0.50;AN=2;DB;DP=35;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.22;MQ0=0;OQ=671.99;QD=19.20;SB=-218.66	GT:AD:DP:GL:GQ	0/1:13,22:35:-81.03,-10.54,-52.21:99
-chr1	2502755	.	G	A	190.59	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=82;Dels=0.00;HRun=20;HaplotypeScore=16.86;MQ=48.05;MQ0=1;QD=2.32;SB=89.22	GT:AD:DP:GL:GQ	0/1:62,20:60:-40.44,-18.10,-157.12:99
-chr1	2502759	.	G	A	95.63	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=83;Dels=0.00;HRun=4;HaplotypeScore=8.02;MQ=49.03;MQ0=1;QD=1.15;SB=92.21	GT:AD:DP:GL:GQ	0/1:62,21:60:-30.94,-18.09,-170.87:99
-chr1	2502764	.	G	A	61.94	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=80;Dels=0.00;HRun=4;HaplotypeScore=11.73;MQ=52.06;MQ0=1;QD=0.77;SB=101.27	GT:AD:DP:GL:GQ	0/1:64,16:66:-29.37,-19.89,-196.86:94.78
-chr1	2502769	.	G	A	36.83	DPFilter;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=75;Dels=0.00;HRun=4;HaplotypeScore=29.21;MQ=54.00;MQ0=1;QD=0.49;SB=101.32	GT:AD:DP:GL:GQ	0/1:66,9:67:-27.16,-20.19,-206.36:69.66
-chr1	2502915	rs4486391	A	T	575.38	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=706.11;QD=12.61;SB=-348.36	GT:AD:DP:GL:GQ	0/1:31,25:55:-90.46,-16.56,-121.47:99
-chr1	2502965	rs735000	C	T	134.95	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=2.37;MQ=59.41;MQ0=0;OQ=774.05;QD=19.85;SB=-347.38	GT:AD:DP:GL:GQ	0/1:16,23:37:-91.84,-11.15,-44.36:99
-chr1	2503076	rs734999	C	T	284.99	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=51.96;MQ0=0;OQ=837.38;QD=13.51;SB=-164.65	GT:AD:DP:GL:GQ	0/1:35,27:61:-105.40,-18.37,-127.82:99
-chr1	2503492	rs2016175	C	G	123.40	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=1.61;MQ=50.82;MQ0=0;OQ=1084.11;QD=19.71;SB=-398.00	GT:AD:DP:GL:GQ	0/1:24,31:54:-127.97,-16.28,-102.13:99
-chr1	2503538	rs2016366	A	T	76.85	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=1;HaplotypeScore=3.79;MQ=51.20;MQ0=0;OQ=1061.50;QD=16.33;SB=-509.95	GT:AD:DP:GL:GQ	0/1:31,34:63:-128.41,-18.98,-104.88:99
-chr1	2504435	rs2094074	C	T	20.77	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=1;HaplotypeScore=6.13;MQ=59.30;MQ0=0;OQ=1039.69;QD=17.04;SB=-426.84	GT:AD:DP:GL:GQ	0/1:29,32:61:-125.64,-18.39,-96.67:99
-chr1	2506299	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=39;Dels=0.00;HRun=2;HaplotypeScore=15.52;MQ=57.83;MQ0=0;OQ=93.19;QD=2.39;SB=56.19	GT:AD:DP:GL:GQ	0/1:27,12:31:-21.95,-9.34,-90.63:99
-chr1	2511290	rs10910097	C	T	251.37	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=1;HaplotypeScore=0.33;MQ=59.70;MQ0=0;OQ=1148.10;QD=18.52;SB=-511.69	GT:AD:DP:GL:GQ	0/1:27,35:61:-136.47,-18.38,-99.00:99
-chr1	2512252	rs2296443	G	A	195.68	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=1.94;MQ=59.53;MQ0=0;OQ=544.43;QD=13.61;SB=-235.74	GT:AD:DP:GL:GQ	0/1:18,22:33:-67.68,-9.95,-51.18:99
-chr1	2515036	.	A	C	42.97	PASS	AC=1;AF=0.50;AN=2;DP=44;Dels=0.00;HRun=0;HaplotypeScore=0.96;MQ=58.51;MQ0=0;OQ=337.76;QD=7.68;SB=-183.81	GT:AD:DP:GL:GQ	0/1:27,17:42:-49.72,-12.66,-93.24:99
-chr1	2517538	rs2260976	A	G	4.94	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=2;HaplotypeScore=2.14;MQ=56.76;MQ0=0;OQ=1272.91;QD=31.05;SB=-372.36	GT:AD:DP:GL:GQ	1/1:0,41:39:-130.90,-11.76,-0.03:99
-chr1	2517993	rs2843401	T	C	105.48	PASS	AC=2;AF=1.00;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=2.05;MQ=57.77;MQ0=0;OQ=962.33;QD=26.73;SB=-342.23	GT:AD:DP:GL:GQ	1/1:0,36:31:-99.85,-9.36,-0.04:93.19
-chr1	2518542	rs2843402	T	C	221.44	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=3.08;MQ=60.00;MQ0=0;OQ=1968.59;QD=35.79;SB=-942.98	GT:AD:DP:GL:GQ	1/1:0,55:55:-200.46,-16.56,-0.01:99
-chr1	2518859	rs2764845	G	T	123.68	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=1;HaplotypeScore=0.65;MQ=60.00;MQ0=0;OQ=1822.58;QD=33.75;SB=-893.66	GT:AD:DP:GL:GQ	1/1:0,54:52:-185.86,-15.67,-0.02:99
-chr1	2518957	rs2843403	T	C	21.95	PASS	AC=2;AF=1.00;AN=2;DB;DP=31;Dels=0.00;HRun=2;HaplotypeScore=1.02;MQ=56.17;MQ0=0;OQ=926.62;QD=29.89;SB=-317.56	GT:AD:DP:GL:GQ	1/1:0,31:28:-96.27,-8.44,-0.02:84.21
-chr1	2519052	rs2764842	A	G	76.78	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=59.41;MQ0=0;OQ=1201.00;QD=30.79;SB=-460.21	GT:AD:DP:GL:GQ	1/1:0,39:38:-123.72,-11.46,-0.03:99
-chr1	2519220	rs2764841	G	A	268.55	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=1.26;MQ=59.01;MQ0=0;OQ=1602.47;QD=34.10;SB=-756.02	GT:AD:DP:GL:GQ	1/1:0,46:43:-163.85,-12.96,-0.02:99
-chr1	2519297	rs2764840	C	T	22.50	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=4.04;MQ=57.55;MQ0=0;OQ=1701.90;QD=37.00;SB=-691.34	GT:AD:DP:GL:GQ	1/1:0,46:43:-173.78,-12.95,-0.01:99
-chr1	2520418	rs2843404	T	C	200.03	PASS	AC=2;AF=1.00;AN=2;DB;DP=75;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=59.75;MQ0=0;OQ=2535.27;QD=33.80;SB=-857.06	GT:AD:DP:GL:GQ	1/1:0,75:73:-257.13,-21.99,-0.02:99
-chr1	2520554	rs2764848	G	A	508.37	PASS	AC=2;AF=1.00;AN=2;DB;DP=65;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2620.71;QD=40.32;SB=-1288.71	GT:AD:DP:GL:GQ	1/1:0,65:65:-265.67,-19.58,-0.01:99
-chr1	2521232	rs2985855	A	C	625.35	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.53;MQ0=0;OQ=2344.13;QD=34.47;SB=-1125.14	GT:AD:DP:GL:GQ	1/1:0,68:67:-238.02,-20.18,-0.02:99
-chr1	2521327	rs6689711	T	C	152.61	PASS	AC=2;AF=1.00;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=0.83;MQ=59.71;MQ0=0;OQ=2140.18;QD=32.93;SB=-405.31	GT:AD:DP:GL:GQ	1/1:0,65:64:-217.64,-19.29,-0.04:99
-chr1	2521365	rs6681973	C	T	205.20	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=58.81;MQ0=0;OQ=1951.81;QD=38.27;SB=-716.95	GT:AD:DP:GL:GQ	1/1:0,51:50:-198.79,-15.07,-0.02:99
-chr1	2521374	rs6682043	C	A	555.65	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.76;MQ0=0;OQ=1757.71;QD=35.87;SB=-715.96	GT:AD:DP:GL:GQ	1/1:0,49:49:-179.37,-14.76,-0.01:99
-chr1	2521839	.	A	G	1244.02	Indel	AC=2;AF=1.00;AN=2;DP=39;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=54.74;MQ0=0;QD=31.90;SB=-233.75	GT:AD:DP:GL:GQ	1/1:1,38:37:-132.07,-11.15,-4.08:70.65
-chr1	2522276	rs2985859	T	C	630.86	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=55.35;MQ0=0;OQ=2205.91;QD=35.58;SB=-1051.93	GT:AD:DP:GL:GQ	1/1:0,62:62:-224.19,-18.67,-0.02:99
-chr1	2522366	rs3001837	G	A	528.70	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=56.76;MQ0=0;OQ=2660.16;QD=39.12;SB=-1251.03	GT:AD:DP:GL:GQ	1/1:0,68:68:-269.62,-20.49,-0.02:99
-chr1	2522484	rs2985857	C	T	472.23	PASS	AC=2;AF=1.00;AN=2;DB;DP=86;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.51;MQ0=0;OQ=3579.52;QD=41.62;SB=-1476.96	GT:AD:DP:GL:GQ	1/1:0,86:86:-356.95,-25.90,-0.02:99
-chr1	2522759	rs6424092	C	A	529.01	PASS	AC=2;AF=1.00;AN=2;DB;DP=76;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2798.98;QD=36.83;SB=-1322.91	GT:AD:DP:GL:GQ	1/1:0,76:75:-283.50,-22.58,-0.01:99
-chr1	2523213	.	A	C	18.95	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=44;Dels=0.00;HRun=2;HaplotypeScore=7.65;MQ=59.48;MQ0=0;QD=0.43;SB=47.15	GT:AD:DP:GL:GQ	0/1:27,17:32:-14.82,-9.65,-87.52:51.73
-chr1	2530333	.	T	C	29.61	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=46;Dels=0.00;HRun=0;HaplotypeScore=7.38;MQ=54.61;MQ0=1;QD=0.64;SB=33.57	GT:AD:DP:GL:GQ	0/1:37,5:39:-21.30,-15.06,-133.42:62.44
-chr1	2530381	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=46;Dels=0.00;HRun=0;HaplotypeScore=20.91;MQ=54.33;MQ0=2;OQ=131.02;QD=2.85;SB=56.21	GT:AD:DP:GL:GQ	0/1:39,7:40:-28.44,-12.05,-138.25:99
-chr1	2537888	rs4379628	A	G	6.62	PASS	AC=2;AF=1.00;AN=2;DB;DP=74;Dels=0.00;HRun=1;HaplotypeScore=4.46;MQ=59.75;MQ0=0;OQ=2299.26;QD=31.07;SB=-964.39	GT:AD:DP:GL:GQ	1/1:0,74:72:-233.58,-21.72,-0.07:99
-chr1	2541362	.	T	C	301.82	PASS	AC=1;AF=0.50;AN=2;DP=69;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.33;MQ0=0;OQ=1099.72;QD=15.94;SB=-567.63	GT:AD:DP:GL:GQ	0/1:31,38:67:-133.44,-20.18,-122.76:99
-chr1	2541645	rs12117343	C	T	412.42	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=1.47;MQ=59.64;MQ0=0;OQ=1073.30;QD=16.77;SB=-513.05	GT:AD:DP:GL:GQ	0/1:32,32:63:-129.60,-18.99,-99.14:99
-chr1	2543980	rs61765771	T	G	318.19	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=1.15;MQ=60.00;MQ0=0;OQ=635.63;QD=14.45;SB=-332.88	GT:AD:DP:GL:GQ	0/1:20,24:43:-79.80,-12.95,-72.63:99
-chr1	2546847	.	G	A	17.21	PASS	AC=1;AF=0.50;AN=2;DP=54;Dels=0.00;HRun=0;HaplotypeScore=0.97;MQ=58.27;MQ0=0;OQ=1072.92;QD=19.87;SB=-329.89	GT:AD:DP:GL:GQ	0/1:19,35:49:-125.34,-14.77,-58.33:99
-chr1	2547051	rs7523364	C	T	194.54	PASS	AC=2;AF=1.00;AN=2;DB;DP=84;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=55.15;MQ0=0;OQ=3310.62;QD=39.41;SB=-1353.31	GT:AD:DP:GL:GQ	1/1:0,84:83:-330.06,-25.01,-0.03:99
-chr1	2547391	rs6422657	C	T	186.53	PASS	AC=2;AF=1.00;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=1.91;MQ=60.00;MQ0=0;OQ=2783.42;QD=38.13;SB=-1334.38	GT:AD:DP:GL:GQ	1/1:1,71:72:-284.61,-21.69,-2.69:99
-chr1	2548168	rs6668149	A	C	205.71	PASS	AC=2;AF=1.00;AN=2;DB;DP=75;Dels=0.00;HRun=0;HaplotypeScore=0.97;MQ=59.44;MQ0=0;OQ=2627.68;QD=35.04;SB=-1288.37	GT:AD:DP:GL:GQ	1/1:0,75:74:-266.37,-22.29,-0.02:99
-chr1	2548600	rs12748729	C	T	627.69	PASS	AC=2;AF=1.00;AN=2;DB;DP=78;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.41;MQ0=0;OQ=2890.24;QD=37.05;SB=-1331.37	GT:AD:DP:GL:GQ	1/1:0,78:77:-292.65,-23.21,-0.04:99
-chr1	2549449	rs12730932	T	G	82.44	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=1;HaplotypeScore=0.99;MQ=59.16;MQ0=0;OQ=1601.53;QD=32.03;SB=-737.35	GT:AD:DP:GL:GQ	1/1:0,50:47:-163.76,-14.16,-0.02:99
-chr1	2550595	rs4648657	A	G	5.77	PASS	AC=2;AF=1.00;AN=2;DB;DP=14;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=58.33;MQ0=0;OQ=350.17;QD=25.01;SB=-43.68	GT:AD:DP:GL:GQ	1/1:0,14:13:-38.62,-3.93,-0.02:39.06
-chr1	2550742	rs4648658	G	A	10.42	PASS	AC=2;AF=1.00;AN=2;DB;DP=17;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=57.23;MQ0=0;OQ=551.80;QD=32.46;SB=-125.66	GT:AD:DP:GL:GQ	1/1:0,17:15:-58.77,-4.52,-0.01:45.14
-chr1	2550763	rs4648659	T	G	0.34	PASS	AC=2;AF=1.00;AN=2;DB;DP=16;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=55.52;MQ0=0;OQ=309.18;QD=19.32;SB=-86.14	GT:AD:DP:GL:GQ	1/1:0,16:12:-34.52,-3.62,-0.02:36.01
-chr1	2551146	rs28532547	T	G	110.03	PASS	AC=2;AF=1.00;AN=2;DB;DP=35;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=53.21;MQ0=0;OQ=1059.23;QD=30.26;SB=-548.02	GT:AD:DP:GL:GQ	1/1:0,35:32:-109.53,-9.64,-0.02:96.26
-chr1	2552029	rs4648564	C	T	0.99	PASS	AC=2;AF=1.00;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=7.47;MQ=58.85;MQ0=1;OQ=2625.23;QD=39.18;SB=-1028.39	GT:AD:DP:GL:GQ	1/1:1,66:66:-266.13,-19.88,-0.02:99
-chr1	2553110	rs12749591	G	T	349.46	PASS	AC=2;AF=1.00;AN=2;DB;DP=22;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.95;MQ0=0;OQ=723.50;QD=32.89;SB=-266.61	GT:AD:DP:GL:GQ	1/1:0,22:22:-75.95,-6.63,-0.01:66.17
-chr1	2553270	.	G	T	45.57	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=27;Dels=0.00;HRun=1;HaplotypeScore=10.71;MQ=58.27;MQ0=0;QD=1.69;SB=20.06	GT:AD:DP:GL:GQ	0/1:17,10:20:-13.87,-6.03,-50.95:78.40
-chr1	2554043	rs6698817	T	C	9.96	PASS	AC=2;AF=1.00;AN=2;DB;DP=33;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=59.30;MQ0=0;OQ=887.43;QD=26.89;SB=-424.17	GT:AD:DP:GL:GQ	1/1:0,33:29:-92.36,-8.75,-0.03:87.20
-chr1	2554325	rs12752515	T	C	17.47	PASS	AC=2;AF=1.00;AN=2;DB;DP=26;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=59.11;MQ0=0;OQ=775.65;QD=29.83;SB=-403.34	GT:AD:DP:GL:GQ	1/1:0,26:25:-81.17,-7.54,-0.02:75.18
-chr1	2554665	rs12723864	A	G	160.30	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=1.93;MQ=60.00;MQ0=0;OQ=414.17;QD=9.86;SB=-197.61	GT:AD:DP:GL:GQ	0/1:26,16:42:-57.35,-12.65,-104.43:99
-chr1	2555187	rs55649610	G	T	258.93	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.99;MQ0=0;OQ=951.34;QD=20.68;SB=-431.11	GT:AD:DP:GL:GQ	0/1:14,32:46:-112.28,-13.86,-47.81:99
-chr1	2555885	.	C	T	1.81	PASS	AC=1;AF=0.50;AN=2;DP=29;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=57.89;MQ0=0;OQ=690.84;QD=23.82;SB=-291.84	GT:AD:DP:GL:GQ	0/1:8,21:28:-80.81,-8.44,-25.16:99
-chr1	2556197	.	T	G	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=20;Dels=0.00;HRun=1;HaplotypeScore=11.22;MQ=54.79;MQ0=0;OQ=66.20;QD=3.31;SB=-59.09	GT:AD:DP:GL:GQ	0/1:16,4:14:-14.12,-4.22,-33.87:99
-chr1	2556342	rs6657378	T	G	21.29	LowQual	AC=1;AF=0.50;AN=2;DB;DP=7;Dels=0.00;HRun=1;HaplotypeScore=3.31;MQ=37.32;MQ0=0;QD=3.04;SB=-10.00	GT:AD:DP:GL:GQ	0/1:5,2:5:-6.92,-1.51,-9.22:54.10
-chr1	2556350	rs6671623	G	A	0.26	PASS	AC=2;AF=1.00;AN=2;DB;DP=8;Dels=0.00;HRun=1;HaplotypeScore=6.12;MQ=40.03;MQ0=1;OQ=207.84;QD=25.98;SB=-95.34	GT:AD:DP:GL:GQ	1/1:1,7:6:-24.36,-1.81,-0.00:18.06
-chr1	2556357	rs6671625	G	A	182.34	PASS	AC=2;AF=1.00;AN=2;DB;DP=6;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=43.68;MQ0=1;OQ=89.01;QD=14.84;SB=-50.56	GT:AD:DP:GL:GQ	1/1:1,5:3:-12.39,-0.90,-0.00:9.03
-chr1	2556483	rs61765773	C	T	0.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=30;Dels=0.00;HRun=0;HaplotypeScore=11.29;MQ=45.87;MQ0=1;OQ=153.35;QD=5.11;SB=26.06	GT:AD:DP:GL:GQ	0/1:23,7:20:-24.65,-6.03,-43.69:99
-chr1	2556797	rs61765774	G	C	178.56	PASS	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=54.58;MQ0=0;OQ=587.02;QD=17.79;SB=-197.49	GT:AD:DP:GL:GQ	0/1:16,17:32:-71.63,-9.64,-64.58:99
-chr1	2557281	rs12756665	C	T	187.45	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=3.25;MQ=59.28;MQ0=0;OQ=722.29;QD=11.29;SB=-327.75	GT:AD:DP:GL:GQ	0/1:40,24:64:-94.79,-19.28,-146.15:99
-chr1	2557351	rs12739597	A	G	96.49	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=1.40;MQ=59.10;MQ0=0;OQ=470.82;QD=7.03;SB=-215.20	GT:AD:DP:GL:GQ	0/1:44,23:67:-70.56,-20.20,-177.79:99
-chr1	2557360	rs6666788	A	G	33.09	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=2;HaplotypeScore=2.28;MQ=59.11;MQ0=0;OQ=2385.56;QD=35.08;SB=-1067.87	GT:AD:DP:GL:GQ	1/1:0,68:67:-242.16,-20.18,-0.02:99
-chr1	2558285	rs4648661	T	C	264.82	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=1.64;MQ=58.76;MQ0=0;OQ=708.13;QD=11.80;SB=-352.07	GT:AD:DP:GL:GQ	0/1:29,30:58:-91.59,-17.49,-110.76:99
-chr1	2559883	rs4648565	A	G	68.89	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=4;HaplotypeScore=0.00;MQ=59.61;MQ0=0;OQ=1657.37;QD=34.53;SB=-734.30	GT:AD:DP:GL:GQ	1/1:0,48:47:-169.34,-14.16,-0.02:99
-chr1	2561683	rs28690427	A	G	44.51	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=58.48;MQ0=0;OQ=1625.27;QD=33.17;SB=-564.36	GT:AD:DP:GL:GQ	1/1:0,49:47:-166.13,-14.16,-0.02:99
-chr1	2563059	rs4648662	A	G	36.80	PASS	AC=2;AF=1.00;AN=2;DB;DP=31;Dels=0.00;HRun=0;HaplotypeScore=2.26;MQ=57.88;MQ0=0;OQ=986.78;QD=31.83;SB=-278.44	GT:AD:DP:GL:GQ	1/1:0,30:28:-102.27,-8.43,-0.01:84.25
-chr1	2563587	rs4648663	A	C	432.35	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.55;MQ0=0;OQ=1398.67;QD=33.30;SB=-656.05	GT:AD:DP:GL:GQ	1/1:0,42:41:-143.47,-12.35,-0.02:99
-chr1	2563763	rs12726651	C	T	270.02	PASS	AC=1;AF=0.50;AN=2;DB;DP=17;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.90;MQ0=0;OQ=164.81;QD=9.69;SB=-74.06	GT:AD:DP:GL:GQ	0/1:11,6:16:-24.59,-4.82,-34.68:99
-chr1	2563938	rs9970196	T	C	22.23	PASS	AC=2;AF=1.00;AN=2;DB;DP=32;Dels=0.00;HRun=1;HaplotypeScore=0.81;MQ=59.28;MQ0=0;OQ=1014.31;QD=31.70;SB=-295.06	GT:AD:DP:GL:GQ	1/1:0,32:30:-105.04,-9.04,-0.02:90.22
-chr1	2566315	rs6604989	T	C	18.73	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=59.60;MQ0=0;OQ=1647.45;QD=28.40;SB=-794.64	GT:AD:DP:GL:GQ	1/1:0,58:52:-168.38,-15.68,-0.05:99
-chr1	2568080	rs12744876	G	T	183.89	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=1.61;MQ=58.84;MQ0=0;OQ=1106.09;QD=17.02;SB=-318.70	GT:AD:DP:GL:GQ	0/1:29,35:64:-133.17,-19.27,-104.78:99
-chr1	2571402	rs28611770	A	G	632.64	PASS	AC=2;AF=1.00;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.32;MQ0=1;OQ=2534.42;QD=35.20;SB=-1124.79	GT:AD:DP:GL:GQ	1/1:0,72:70:-257.05,-21.08,-0.02:99
-chr1	2571473	.	C	T	26.42	PASS	AC=1;AF=0.50;AN=2;DP=49;Dels=0.00;HRun=0;HaplotypeScore=1.93;MQ=54.51;MQ0=1;OQ=420.48;QD=8.58;SB=-192.15	GT:AD:DP:GL:GQ	0/1:33,16:41:-57.68,-12.35,-93.81:99
-chr1	2571476	.	T	C	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=49;Dels=0.00;HRun=3;HaplotypeScore=3.65;MQ=54.65;MQ0=1;OQ=290.92;QD=5.94;SB=-124.22	GT:AD:DP:GL:GQ	0/1:34,15:41:-44.73,-12.36,-110.26:99
-chr1	2571505	.	C	T	0.62	PASS	AC=1;AF=0.50;AN=2;DP=55;Dels=0.00;HRun=0;HaplotypeScore=2.93;MQ=52.42;MQ0=0;OQ=231.01;QD=4.20;SB=-18.13	GT:AD:DP:GL:GQ	0/1:42,13:52:-42.05,-15.67,-144.47:99
-chr1	2571527	.	A	T	14.96	PASS	AC=1;AF=0.50;AN=2;DP=55;Dels=0.00;HRun=1;HaplotypeScore=1.42;MQ=51.64;MQ0=0;OQ=434.87;QD=7.91;SB=-142.65	GT:AD:DP:GL:GQ	0/1:35,20:51:-62.14,-15.37,-122.01:99
-chr1	2572200	rs12732266	C	G	51.91	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=5.49;MQ=58.04;MQ0=0;OQ=559.70;QD=11.91;SB=-261.11	GT:AD:DP:GL:GQ	0/1:26,21:41:-71.62,-12.36,-99.19:99
-chr1	2573315	rs12738064	C	T	887.13	DPFilter;SnpCluster	AC=2;AF=1.00;AN=2;DB;DP=133;Dels=0.00;HRun=0;HaplotypeScore=171.89;MQ=24.26;MQ0=9;QD=6.67;SB=-137.01	GT:AD:DP:GL:GQ	1/1:10,119:25:-96.41,-11.12,-4.11:70.06
-chr1	2573322	.	T	G	343.20	DPFilter;SnpCluster	AC=2;AF=1.00;AN=2;DP=144;Dels=0.01;HRun=0;HaplotypeScore=333.45;MQ=22.10;MQ0=11;QD=2.38;SB=-10.00	GT:AD:DP:GL:GQ	1/1:29,104:11:-37.91,-3.31,-0.00:33.09
-chr1	2573323	.	C	G	95.88	DPFilter;SnpCluster	AC=2;AF=1.00;AN=2;DP=144;Dels=0.01;HRun=1;HaplotypeScore=342.46;MQ=22.10;MQ0=11;QD=0.67;SB=-10.00	GT:AD:DP:GL:GQ	1/1:103,36:3:-13.08,-0.90,-0.00:9.03
-chr1	2573324	.	G	C	506.46	DPFilter;Indel;SnpCluster	AC=2;AF=1.00;AN=2;DP=147;Dels=0.01;HRun=1;HaplotypeScore=339.64;MQ=22.28;MQ0=11;QD=3.45;SB=-10.00	GT:AD:DP:GL:GQ	1/1:15,116:14:-57.88,-7.75,-3.65:41.01
-chr1	2573329	rs12734173	G	A	146.94	DPFilter;Indel;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=218;Dels=0.00;HRun=1;HaplotypeScore=513.41;MQ=21.01;MQ0=20;QD=0.67;SB=-10.00	GT:AD:DP:GL:GQ	0/1:132,84:24:-25.21,-7.23,-67.73:99
-chr1	2573338	.	C	G	83.26	DPFilter;HARD_TO_VALIDATE;Indel;SnpCluster	AC=1;AF=0.50;AN=2;DP=290;Dels=0.00;HRun=0;HaplotypeScore=710.09;MQ=20.03;MQ0=40;QD=0.29;SB=-0.97	GT:AD:DP:GL:GQ	0/1:254,26:38:-23.06,-11.45,-135.55:99
-chr1	2573342	.	C	A	213.70	DPFilter;HARD_TO_VALIDATE;Indel;SnpCluster	AC=1;AF=0.50;AN=2;DP=322;Dels=0.00;HRun=1;HaplotypeScore=673.88;MQ=20.07;MQ0=46;QD=0.66;SB=1.99	GT:AD:DP:GL:GQ	0/1:277,45:41:-37.01,-12.35,-108.15:99
-chr1	2573345	.	A	C	1425.86	DPFilter;HARD_TO_VALIDATE;Indel;SnpCluster	AC=1;AF=0.50;AN=2;DP=338;Dels=0.02;HRun=3;HaplotypeScore=632.90;MQ=20.26;MQ0=48;QD=4.22;SB=-172.79	GT:AD:DP:GL:GQ	0/1:132,186:90:-176.25,-30.38,-146.77:99
-chr1	2573350	.	T	C	293.04	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=399;Dels=0.00;HRun=0;HaplotypeScore=691.94;MQ=19.84;MQ0=54;QD=0.73;SB=44.71	GT:AD:DP:GL:GQ	0/1:277,71:78:-104.74,-72.15,-238.43:99
-chr1	2573354	.	C	A	62.42	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=432;Dels=0.00;HRun=1;HaplotypeScore=848.73;MQ=19.94;MQ0=56;QD=0.14;SB=50.16	GT:AD:DP:GL:GQ	0/1:379,40:51:-24.89,-15.36,-155.69:95.25
-chr1	2573358	.	T	C	129.61	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=457;Dels=0.00;HRun=1;HaplotypeScore=683.78;MQ=19.93;MQ0=58;QD=0.28;SB=-34.65	GT:AD:DP:GL:GQ	0/1:367,56:52:-42.68,-26.43,-169.09:99
-chr1	2573364	rs55738582	C	G	575.47	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=473;Dels=0.00;HRun=1;HaplotypeScore=961.37;MQ=19.71;MQ0=62;QD=1.22;SB=-67.52	GT:AD:DP:GL:GQ	0/1:411,23:43:-73.79,-12.96,-105.12:99
-chr1	2573370	rs55790383	G	A	775.08	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=470;Dels=0.00;HRun=1;HaplotypeScore=917.62;MQ=19.72;MQ0=61;QD=1.65;SB=-367.90	GT:AD:DP:GL:GQ	0/1:265,173:48:-98.76,-17.97,-89.48:99
-chr1	2573371	rs55657722	G	C	3489.08	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=2;AF=1.00;AN=2;DB;DP=470;Dels=0.00;HRun=0;HaplotypeScore=944.58;MQ=19.72;MQ0=61;QD=7.42;SB=-1002.13	GT:AD:DP:GL:GQ	1/1:47,398:84:-347.91,-28.85,-3.68:99
-chr1	2573372	.	A	G	46.25	DPFilter;HARD_TO_VALIDATE;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=482;Dels=0.00;HRun=2;HaplotypeScore=999.26;MQ=19.79;MQ0=62;QD=0.10;SB=26.11	GT:AD:DP:GL:GQ	0/1:425,48:54:-24.18,-16.27,-184.96:79.08
-chr1	2573374	.	C	A	193.31	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=490;Dels=0.00;HRun=1;HaplotypeScore=979.59;MQ=19.99;MQ0=60;QD=0.39;SB=-75.64	GT:AD:DP:GL:GQ	0/1:438,45:65:-48.93,-26.32,-189.47:99
-chr1	2573382	.	C	A	261.06	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=502;Dels=0.01;HRun=1;HaplotypeScore=946.29;MQ=19.95;MQ0=64;QD=0.52;SB=17.04	GT:AD:DP:GL:GQ	0/1:391,72:71:-67.99,-38.60,-197.52:99
-chr1	2573383	.	C	G	55.13	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=502;Dels=0.00;HRun=0;HaplotypeScore=899.21;MQ=20.04;MQ0=63;QD=0.11;SB=37.79	GT:AD:DP:GL:GQ	0/1:438,33:65:-35.38,-26.59,-240.37:87.97
-chr1	2573385	.	C	A	145.75	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=503;Dels=0.00;HRun=0;HaplotypeScore=828.45;MQ=20.02;MQ0=64;QD=0.29;SB=-23.06	GT:AD:DP:GL:GQ	0/1:432,48:49:-35.99,-18.13,-141.74:99
-chr1	2573390	.	T	C	166.49	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=483;Dels=0.01;HRun=0;HaplotypeScore=660.44;MQ=20.15;MQ0=61;QD=0.34;SB=-43.82	GT:AD:DP:GL:GQ	0/1:342,96:43:-35.67,-15.74,-120.66:99
-chr1	2573404	rs56352113	A	C	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=412;Dels=0.00;HRun=1;HaplotypeScore=785.14;MQ=20.24;MQ0=50;OQ=1746.05;QD=4.24;SB=-272.76	GT:AD:DP:GL:GQ	1/1:48,316:72:-242.08,-66.55,-63.89:26.61
-chr1	2573410	rs12759490	A	G	148.65	DPFilter;HARD_TO_VALIDATE;Indel	AC=1;AF=0.50;AN=2;DB;DP=383;Dels=0.00;HRun=0;HaplotypeScore=682.21;MQ=20.35;MQ0=44;QD=0.39;SB=-43.26	GT:AD:DP:GL:GQ	0/1:276,96:57:-35.34,-17.19,-178.84:99
-chr1	2573423	.	C	A	163.64	DPFilter;HARD_TO_VALIDATE;Indel;SnpCluster	AC=1;AF=0.50;AN=2;DP=284;Dels=0.00;HRun=1;HaplotypeScore=927.03;MQ=21.34;MQ0=33;QD=0.58;SB=26.07	GT:AD:DP:GL:GQ	0/1:224,38:48:-34.11,-14.46,-128.40:99
-chr1	2573426	.	C	A	487.43	DPFilter;HARD_TO_VALIDATE;Indel;SnpCluster	AC=1;AF=0.50;AN=2;DP=275;Dels=0.00;HRun=0;HaplotypeScore=598.86;MQ=21.74;MQ0=31;QD=1.77;SB=-144.61	GT:AD:DP:GL:GQ	0/1:229,39:67:-72.21,-20.18,-167.89:99
-chr1	2573431	.	T	A	55.01	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=244;Dels=0.00;HRun=0;HaplotypeScore=414.88;MQ=22.20;MQ0=23;QD=0.23;SB=-37.64	GT:AD:DP:GL:GQ	0/1:198,17:62:-42.64,-33.85,-190.83:87.85
-chr1	2573439	rs12738268	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=199;Dels=0.00;HRun=0;HaplotypeScore=197.41;MQ=23.56;MQ0=17;OQ=1379.28;QD=6.93;SB=-473.52	GT:AD:DP:GL:GQ	0/1:75,107:51:-156.58,-15.37,-36.65:99
-chr1	2573442	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=194;Dels=0.00;HRun=0;HaplotypeScore=181.20;MQ=23.67;MQ0=14;OQ=103.36;QD=0.53;SB=32.13	GT:AD:DP:GL:GQ	0/1:179,11:55:-39.39,-25.77,-162.27:99
-chr1	2573451	.	A	G	329.45	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=156;Dels=0.00;HRun=0;HaplotypeScore=168.85;MQ=25.71;MQ0=9;QD=2.11;SB=-36.23	GT:AD:DP:GL:GQ	0/1:80,76:54:-52.50,-16.27,-154.97:99
-chr1	2573454	rs55760918	C	G	556.39	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=140;Dels=0.00;HRun=0;HaplotypeScore=206.74;MQ=26.90;MQ0=8;QD=3.97;SB=-52.80	GT:AD:DP:GL:GQ	0/1:46,88:51:-74.30,-15.38,-138.45:99
-chr1	2573455	rs56258540	A	C	134.39	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=145;Dels=0.00;HRun=1;HaplotypeScore=218.70;MQ=26.73;MQ0=9;QD=0.93;SB=-34.89	GT:AD:DP:GL:GQ	0/1:91,52:51:-34.62,-17.90,-142.52:99
-chr1	2573485	rs55714819	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=241;Dels=0.00;HRun=1;HaplotypeScore=172.11;MQ=27.92;MQ0=9;OQ=766.38;QD=3.18;SB=-61.60	GT:AD:DP:GL:GQ	0/1:152,84:106:-115.24,-35.32,-271.38:99
-chr1	2573510	rs61765777	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=332;Dels=0.00;HRun=1;HaplotypeScore=336.11;MQ=27.14;MQ0=14;OQ=2271.13;QD=6.84;SB=-383.23	GT:AD:DP:GL:GQ	0/1:103,229:130:-269.56,-39.16,-232.28:99
-chr1	2573523	.	C	T	271.88	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=476;Dels=0.00;HRun=0;HaplotypeScore=388.59;MQ=26.03;MQ0=25;QD=0.57;SB=-54.44	GT:AD:DP:GL:GQ	0/1:421,51:171:-82.00,-51.53,-495.80:99
-chr1	2573524	.	G	A	673.59	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=489;Dels=0.00;HRun=0;HaplotypeScore=381.72;MQ=26.07;MQ0=26;QD=1.38;SB=-235.66	GT:AD:DP:GL:GQ	0/1:348,136:174:-123.14,-52.50,-452.42:99
-chr1	2573532	.	A	G	266.78	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=584;Dels=0.00;HRun=0;HaplotypeScore=454.81;MQ=26.29;MQ0=38;QD=0.46;SB=-50.09	GT:AD:DP:GL:GQ	0/1:462,118:225:-100.76,-70.80,-803.69:99
-chr1	2573533	.	C	T	518.62	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=590;Dels=0.00;HRun=0;HaplotypeScore=454.86;MQ=26.25;MQ0=38;QD=0.88;SB=-177.22	GT:AD:DP:GL:GQ	0/1:555,34:221:-123.94,-68.80,-639.87:99
-chr1	2573545	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=760;Dels=0.00;HRun=0;HaplotypeScore=554.01;MQ=25.28;MQ0=58;OQ=2752.41;QD=3.62;SB=-334.08	GT:AD:DP:GL:GQ	0/1:504,247:275:-368.19,-89.67,-758.94:99
-chr1	2573551	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=816;Dels=0.00;HRun=0;HaplotypeScore=706.82;MQ=24.77;MQ0=61;OQ=92.57;QD=0.11;SB=99.33	GT:AD:DP:GL:GQ	0/1:767,48:306:-104.74,-92.20,-1021.89:99
-chr1	2573560	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=935;Dels=0.00;HRun=0;HaplotypeScore=771.90;MQ=24.19;MQ0=82;OQ=1354.07;QD=1.45;SB=-436.68	GT:AD:DP:GL:GQ	0/1:723,199:339:-248.95,-110.26,-942.99:99
-chr1	2573563	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=967;Dels=0.00;HRun=0;HaplotypeScore=867.36;MQ=23.97;MQ0=86;OQ=1389.93;QD=1.44;SB=161.22	GT:AD:DP:GL:GQ	0/1:819,137:345:-262.46,-120.18,-962.42:99
-chr1	2573572	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=1012;Dels=0.00;HRun=0;HaplotypeScore=731.51;MQ=23.62;MQ0=98;OQ=634.63;QD=0.63;SB=-79.47	GT:AD:DP:GL:GQ	0/1:773,210:334:-172.80,-106.05,-1139.69:99
-chr1	2573600	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=878;Dels=0.00;HRun=0;HaplotypeScore=653.71;MQ=23.12;MQ0=120;OQ=1122.68;QD=1.28;SB=-567.08	GT:AD:DP:GL:GQ	0/1:678,154:296:-246.10,-130.55,-807.07:99
-chr1	2573603	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=862;Dels=0.00;HRun=0;HaplotypeScore=618.67;MQ=23.10;MQ0=123;OQ=316.50;QD=0.37;SB=-169.71	GT:AD:DP:GL:GQ	0/1:783,67:305:-136.37,-101.44,-918.41:99
-chr1	2573643	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=406;Dels=0.00;HRun=0;HaplotypeScore=240.70;MQ=22.59;MQ0=105;OQ=101.01;QD=0.25;SB=40.47	GT:AD:DP:GL:GQ	0/1:341,64:133:-53.47,-40.09,-445.02:99
-chr1	2573645	.	T	G	27.32	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=393;Dels=0.00;HRun=0;HaplotypeScore=214.15;MQ=22.61;MQ0=102;QD=0.07;SB=22.12	GT:AD:DP:GL:GQ	0/1:333,60:125:-43.68,-37.67,-396.83:60.15
-chr1	2573659	rs28581291	G	C	4615.63	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=333;Dels=0.00;HRun=1;HaplotypeScore=205.79;MQ=24.13;MQ0=78;QD=13.86;SB=-1212.00	GT:AD:DP:GL:GQ	0/1:35,294:132:-460.56,-39.52,-82.06:99
-chr1	2573662	.	C	T	559.05	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=354;Dels=0.00;HRun=0;HaplotypeScore=280.21;MQ=24.11;MQ0=79;QD=1.58;SB=-274.91	GT:AD:DP:GL:GQ	0/1:309,45:145:-102.89,-43.70,-398.94:99
-chr1	2573665	.	C	G	1510.34	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=408;Dels=0.00;HRun=0;HaplotypeScore=325.78;MQ=24.58;MQ0=76;QD=3.70;SB=-297.94	GT:AD:DP:GL:GQ	0/1:264,141:179:-211.73,-57.41,-536.45:99
-chr1	2573688	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=651;Dels=0.00;HRun=2;HaplotypeScore=395.85;MQ=24.99;MQ0=65;OQ=362.26;QD=0.56;SB=-155.57	GT:AD:DP:GL:GQ	0/1:581,65:307:-140.30,-100.79,-1081.14:99
-chr1	2573689	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=665;Dels=0.00;HRun=0;HaplotypeScore=525.06;MQ=24.91;MQ0=65;OQ=1827.67;QD=2.75;SB=-517.28	GT:AD:DP:GL:GQ	0/1:550,112:319:-282.15,-96.10,-903.12:99
-chr1	2573699	rs28514305	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=700;Dels=0.00;HRun=1;HaplotypeScore=627.89;MQ=25.13;MQ0=51;OQ=504.00;QD=0.72;SB=-50.28	GT:AD:DP:GL:GQ	0/1:553,135:325:-164.84,-111.15,-1100.31:99
-chr1	2573722	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=939;Dels=0.00;HRun=0;HaplotypeScore=511.14;MQ=24.55;MQ0=41;OQ=652.05;QD=0.69;SB=-156.78	GT:AD:DP:GL:GQ	0/1:833,100:448:-203.46,-134.97,-1376.56:99
-chr1	2573743	.	C	A	1376.46	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=920;Dels=0.01;HRun=1;HaplotypeScore=1049.31;MQ=24.03;MQ0=45;QD=1.50;SB=-654.94	GT:AD:DP:GL:GQ	0/1:771,125:393:-273.72,-132.79,-1119.66:99
-chr1	2573744	.	C	A	2246.36	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=920;Dels=0.00;HRun=0;HaplotypeScore=1100.48;MQ=24.05;MQ0=45;QD=2.44;SB=-774.39	GT:AD:DP:GL:GQ	0/1:696,198:389:-363.03,-135.11,-1033.83:99
-chr1	2573747	.	C	T	2541.21	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=900;Dels=0.00;HRun=0;HaplotypeScore=1014.50;MQ=23.93;MQ0=43;QD=2.82;SB=-593.64	GT:AD:DP:GL:GQ	0/1:671,157:361:-422.27,-164.86,-953.11:99
-chr1	2573753	.	A	T	936.20	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=863;Dels=0.00;HRun=0;HaplotypeScore=1289.29;MQ=23.50;MQ0=46;QD=1.08;SB=-444.50	GT:AD:DP:GL:GQ	0/1:735,98:311:-195.18,-98.28,-961.18:99
-chr1	2573759	.	C	T	306.11	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=786;Dels=0.00;HRun=0;HaplotypeScore=944.88;MQ=23.40;MQ0=46;QD=0.39;SB=80.59	GT:AD:DP:GL:GQ	0/1:568,186:262:-146.29,-112.39,-779.46:99
-chr1	2573762	.	C	T	1224.46	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=751;Dels=0.00;HRun=0;HaplotypeScore=1008.25;MQ=23.38;MQ0=43;QD=1.63;SB=32.31	GT:AD:DP:GL:GQ	0/1:549,181:260:-207.81,-82.08,-705.47:99
-chr1	2573768	.	G	A	69.35	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=690;Dels=0.00;HRun=0;HaplotypeScore=1128.47;MQ=23.25;MQ0=39;QD=0.10;SB=181.10	GT:AD:DP:GL:GQ	0/1:645,45:222:-77.09,-66.88,-732.33:99
-chr1	2573775	rs61765778	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=598;Dels=0.00;HRun=0;HaplotypeScore=829.09;MQ=23.11;MQ0=35;OQ=51.56;QD=0.09;SB=-51.39	GT:AD:DP:GL:GQ	0/1:411,178:176:-78.89,-70.45,-552.62:84.40
-chr1	2573784	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=482;Dels=0.00;HRun=0;HaplotypeScore=533.05;MQ=23.86;MQ0=35;OQ=97.06;QD=0.20;SB=-41.06	GT:AD:DP:GL:GQ	0/1:428,39:135:-57.53,-44.54,-428.93:99
-chr1	2573791	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=376;Dels=0.00;HRun=0;HaplotypeScore=279.62;MQ=25.08;MQ0=23;OQ=809.10;QD=2.15;SB=-122.99	GT:AD:DP:GL:GQ	0/1:249,119:103:-122.37,-38.18,-240.78:99
-chr1	2573803	rs61765779	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=238;Dels=0.00;HRun=0;HaplotypeScore=273.29;MQ=27.85;MQ0=11;OQ=738.52;QD=3.10;SB=-305.23	GT:AD:DP:GL:GQ	0/1:82,152:68:-97.64,-20.50,-141.62:99
-chr1	2573809	rs61765805	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=171;Dels=0.00;HRun=1;HaplotypeScore=207.51;MQ=30.86;MQ0=7;OQ=486.71;QD=2.85;SB=-123.47	GT:AD:DP:GL:GQ	0/1:47,107:55:-75.59,-23.64,-159.88:99
-chr1	2573825	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=103;Dels=0.04;HRun=2;HaplotypeScore=133.51;MQ=37.12;MQ0=1;OQ=152.18;QD=1.48;SB=68.24	GT:AD:DP:GL:GQ	0/1:42,51:50:-47.81,-29.31,-160.18:99
-chr1	2573831	rs55855140	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=98;Dels=0.00;HRun=0;HaplotypeScore=126.91;MQ=39.65;MQ0=1;OQ=158.89;QD=1.62;SB=62.19	GT:AD:DP:GL:GQ	0/1:53,43:46:-39.96,-20.79,-124.08:99
-chr1	2573842	.	A	C	115.63	SnpCluster	AC=1;AF=0.50;AN=2;DP=99;Dels=0.00;HRun=0;HaplotypeScore=142.04;MQ=40.93;MQ0=1;QD=1.17;SB=-71.86	GT:AD:DP:GL:GQ	0/1:45,45:51:-30.22,-15.37,-141.99:99
-chr1	2573846	rs61765806	C	G	427.99	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=128;Dels=0.00;HRun=0;HaplotypeScore=158.02;MQ=39.65;MQ0=2;QD=3.34;SB=50.19	GT:AD:DP:GL:GQ	0/1:94,33:65:-65.70,-19.61,-201.59:99
-chr1	2573851	.	G	A	820.83	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=140;Dels=0.00;HRun=1;HaplotypeScore=122.19;MQ=40.52;MQ0=2;QD=5.86;SB=-152.15	GT:AD:DP:GL:GQ	0/1:66,72:74:-107.66,-22.30,-166.53:99
-chr1	2573859	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=159;Dels=0.00;HRun=0;HaplotypeScore=126.84;MQ=40.41;MQ0=2;OQ=121.72;QD=0.77;SB=152.53	GT:AD:DP:GL:GQ	0/1:122,36:93:-43.49,-28.03,-346.24:99
-chr1	2573901	rs35515286	G	C	550.86	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=206;Dels=0.00;HRun=0;HaplotypeScore=105.96;MQ=43.03;MQ0=1;QD=2.67;SB=237.50	GT:AD:DP:GL:GQ	0/1:135,63:142:-119.31,-60.94,-520.06:99
-chr1	2573904	.	G	C	824.37	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=204;Dels=0.00;HRun=3;HaplotypeScore=109.03;MQ=42.87;MQ0=2;QD=4.04;SB=193.35	GT:AD:DP:GL:GQ	0/1:129,71:137:-131.62,-45.90,-468.47:99
-chr1	2573907	.	C	T	232.33	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=234;Dels=0.00;HRun=0;HaplotypeScore=169.38;MQ=41.15;MQ0=2;QD=0.99;SB=246.29	GT:AD:DP:GL:GQ	0/1:198,35:151:-72.01,-45.49,-466.42:99
-chr1	2573937	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=313;Dels=0.00;HRun=2;HaplotypeScore=156.05;MQ=41.48;MQ0=6;OQ=610.21;QD=1.95;SB=184.28	GT:AD:DP:GL:GQ	0/1:179,131:178:-121.09,-56.78,-561.52:99
-chr1	2573955	rs4648664	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=309;Dels=0.01;HRun=0;HaplotypeScore=189.00;MQ=39.75;MQ0=9;OQ=5144.30;QD=16.65;SB=-1373.56	GT:AD:DP:GL:GQ	0/1:99,207:204:-513.43,-64.42,-219.84:99
-chr1	2573957	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=309;Dels=0.00;HRun=0;HaplotypeScore=210.03;MQ=39.51;MQ0=9;OQ=1411.76;QD=4.57;SB=186.52	GT:AD:DP:GL:GQ	0/1:164,144:192:-204.89,-60.43,-482.07:99
-chr1	2573977	rs36074084	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=329;Dels=0.14;HRun=3;HaplotypeScore=420.13;MQ=34.94;MQ0=9;OQ=1855.95;QD=5.64;SB=145.19	GT:AD:DP:GL:GQ	0/1:152,125:193:-244.66,-55.78,-561.08:99
-chr1	2573987	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=436;Dels=0.02;HRun=3;HaplotypeScore=523.62;MQ=29.87;MQ0=18;OQ=97.02;QD=0.22;SB=235.20	GT:AD:DP:GL:GQ	0/1:315,109:216:-76.87,-63.88,-657.84:99
-chr1	2574006	rs56001931	C	A	193.50	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=578;Dels=0.00;HRun=0;HaplotypeScore=796.32;MQ=26.82;MQ0=27;QD=0.33;SB=-95.26	GT:AD:DP:GL:GQ	0/1:506,46:197:-84.56,-61.92,-620.37:99
-chr1	2574010	.	G	A	47.43	DPFilter;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=576;Dels=0.00;HRun=1;HaplotypeScore=936.31;MQ=26.86;MQ0=27;QD=0.08;SB=305.98	GT:AD:DP:GL:GQ	0/1:514,37:196:-70.15,-62.12,-641.00:80.27
-chr1	2574012	.	G	A	1112.09	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=567;Dels=0.00;HRun=1;HaplotypeScore=881.66;MQ=26.70;MQ0=27;QD=1.96;SB=173.94	GT:AD:DP:GL:GQ	0/1:337,218:205:-176.25,-61.76,-573.77:99
-chr1	2574013	rs35375421	G	C	2739.83	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=556;Dels=0.00;HRun=0;HaplotypeScore=907.42;MQ=26.74;MQ0=27;QD=4.93;SB=-98.82	GT:AD:DP:GL:GQ	0/1:185,358:186:-340.69,-63.42,-477.87:99
-chr1	2574046	rs61765808	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=633;Dels=0.00;HRun=1;HaplotypeScore=769.62;MQ=25.77;MQ0=33;OQ=2369.47;QD=3.74;SB=-14.31	GT:AD:DP:GL:GQ	0/1:214,394:219:-332.81,-92.58,-459.77:99
-chr1	2574062	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=571;Dels=0.02;HRun=0;HaplotypeScore=1395.05;MQ=27.31;MQ0=25;OQ=270.74;QD=0.47;SB=9.21	GT:AD:DP:GL:GQ	0/1:393,159:156:-79.45,-49.09,-466.84:99
-chr1	2574081	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=574;Dels=0.00;HRun=0;HaplotypeScore=636.02;MQ=28.62;MQ0=23;OQ=102.79;QD=0.18;SB=258.30	GT:AD:DP:GL:GQ	0/1:339,178:156:-99.87,-86.31,-482.50:99
-chr1	2574099	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=481;Dels=0.01;HRun=2;HaplotypeScore=469.12;MQ=32.08;MQ0=15;OQ=332.15;QD=0.69;SB=-15.43	GT:AD:DP:GL:GQ	0/1:184,278:155:-88.85,-52.35,-456.19:99
-chr1	2574112	rs4648665	A	G	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=407;Dels=0.00;HRun=1;HaplotypeScore=376.40;MQ=32.86;MQ0=13;OQ=5520.38;QD=13.56;SB=-1708.96	GT:AD:DP:GL:GQ	1/1:7,385:151:-551.04,-45.49,-0.05:99
-chr1	2574233	rs6678571	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=482;Dels=0.00;HRun=0;HaplotypeScore=317.44;MQ=37.14;MQ0=103;OQ=51.18;QD=0.11;SB=33.13	GT:AD:DP:GL:GQ	0/1:400,76:222:-75.35,-66.94,-654.61:84.02
-chr1	2574280	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=411;Dels=0.00;HRun=0;HaplotypeScore=206.24;MQ=40.63;MQ0=25;OQ=702.83;QD=1.71;SB=165.25	GT:AD:DP:GL:GQ	0/1:262,145:248:-148.35,-74.78,-882.77:99
-chr1	2574370	rs56005609	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=224;Dels=0.00;HRun=0;HaplotypeScore=51.47;MQ=47.47;MQ0=12;OQ=160.10;QD=0.71;SB=-105.06	GT:AD:DP:GL:GQ	0/1:203,21:172:-71.19,-51.89,-483.26:99
-chr1	2574383	rs4648666	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=215;Dels=0.00;HRun=0;HaplotypeScore=154.22;MQ=48.52;MQ0=8;OQ=4531.65;QD=21.08;SB=-1293.59	GT:AD:DP:GL:GQ	0/1:45,169:169:-452.16,-50.92,-131.50:99
-chr1	2574398	rs4648667	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=297;Dels=0.00;HRun=0;HaplotypeScore=177.69;MQ=43.72;MQ0=17;OQ=1775.91;QD=5.98;SB=-869.96	GT:AD:DP:GL:GQ	0/1:211,86:190:-238.16,-57.29,-446.26:99
-chr1	2574435	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=784;Dels=0.00;HRun=0;HaplotypeScore=476.42;MQ=30.94;MQ0=61;OQ=552.66;QD=0.70;SB=-126.39	GT:AD:DP:GL:GQ	0/1:497,287:235:-129.39,-70.84,-631.70:99
-chr1	2574468	.	A	C	45.91	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=925;Dels=0.00;HRun=3;HaplotypeScore=499.34;MQ=30.78;MQ0=79;QD=0.05;SB=344.95	GT:AD:DP:GL:GQ	0/1:799,98:301:-105.40,-97.53,-960.73:78.74
-chr1	2574499	.	C	A	22.95	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=665;Dels=0.00;HRun=2;HaplotypeScore=681.86;MQ=36.15;MQ0=63;QD=0.03;SB=89.36	GT:AD:DP:GL:GQ	0/1:533,92:270:-145.98,-140.40,-853.73:55.76
-chr1	2574516	rs61765812	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=416;Dels=0.00;HRun=0;HaplotypeScore=217.32;MQ=43.57;MQ0=35;OQ=129.59;QD=0.31;SB=68.68	GT:AD:DP:GL:GQ	0/1:278,133:243:-89.48,-73.24,-851.13:99
-chr1	2574566	rs28558799	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=282;Dels=0.00;HRun=0;HaplotypeScore=119.44;MQ=43.46;MQ0=13;OQ=5625.16;QD=19.95;SB=-2459.11	GT:AD:DP:GL:GQ	0/1:49,230:200:-561.52,-60.25,-174.15:99
-chr1	2574594	rs56062029	T	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=452;Dels=0.00;HRun=2;HaplotypeScore=294.75;MQ=33.13;MQ0=30;OQ=1117.30;QD=2.47;SB=-453.09	GT:AD:DP:GL:GQ	0/1:369,56:211:-181.97,-66.96,-565.43:99
-chr1	2574621	rs57267388	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=571;Dels=0.00;HRun=0;HaplotypeScore=771.91;MQ=31.23;MQ0=33;OQ=342.14;QD=0.60;SB=-185.77	GT:AD:DP:GL:GQ	0/1:283,102:222:-153.52,-116.02,-729.22:99
-chr1	2574649	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=993;Dels=0.00;HRun=0;HaplotypeScore=693.61;MQ=28.27;MQ0=75;OQ=1079.32;QD=1.09;SB=-556.01	GT:AD:DP:GL:GQ	0/1:844,137:401:-235.64,-124.42,-1471.20:99
-chr1	2574659	.	A	C	29.66	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=980;Dels=0.00;HRun=3;HaplotypeScore=948.25;MQ=27.73;MQ0=79;QD=0.03;SB=242.38	GT:AD:DP:GL:GQ	0/1:842,123:385:-128.64,-122.39,-1217.71:62.50
-chr1	2574737	rs61765814	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=400;Dels=0.00;HRun=0;HaplotypeScore=203.09;MQ=41.26;MQ0=24;OQ=736.68;QD=1.84;SB=-0.60	GT:AD:DP:GL:GQ	0/1:202,185:205:-145.42,-68.47,-717.91:99
-chr1	2574757	rs61765815	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=370;Dels=0.00;HRun=0;HaplotypeScore=249.27;MQ=42.55;MQ0=25;OQ=384.28;QD=1.04;SB=73.46	GT:AD:DP:GL:GQ	0/1:205,136:201:-108.67,-66.96,-637.57:99
-chr1	2574806	rs61765816	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=433;Dels=0.00;HRun=0;HaplotypeScore=271.20;MQ=41.78;MQ0=23;OQ=447.69;QD=1.03;SB=-108.45	GT:AD:DP:GL:GQ	0/1:271,156:236:-119.20,-71.14,-762.60:99
-chr1	2574851	rs6691639	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=333;Dels=0.00;HRun=0;HaplotypeScore=216.92;MQ=45.13;MQ0=5;OQ=7151.39;QD=21.48;SB=-2958.67	GT:AD:DP:GL:GQ	0/1:25,306:212:-714.14,-63.86,-81.27:99
-chr1	2574904	rs6604990	T	C	6413.62	DPFilter;SnpCluster	AC=2;AF=1.00;AN=2;DB;DP=427;Dels=0.06;HRun=3;HaplotypeScore=563.84;MQ=34.54;MQ0=9;QD=15.02;SB=-2045.14	GT:AD:DP:GL:GQ	1/1:119,272:189:-640.36,-56.34,-15.02:99
-chr1	2574911	.	A	C	149.58	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=456;Dels=0.00;HRun=3;HaplotypeScore=557.08;MQ=32.46;MQ0=11;QD=0.33;SB=-79.57	GT:AD:DP:GL:GQ	0/1:298,141:171:-69.76,-51.52,-530.42:99
-chr1	2574914	.	A	G	786.99	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=464;Dels=0.02;HRun=1;HaplotypeScore=590.68;MQ=31.99;MQ0=11;QD=1.70;SB=-166.87	GT:AD:DP:GL:GQ	0/1:189,264:184:-140.25,-58.27,-581.91:99
-chr1	2574924	rs61765818	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=562;Dels=0.00;HRun=1;HaplotypeScore=584.85;MQ=29.44;MQ0=16;OQ=664.13;QD=1.18;SB=-72.04	GT:AD:DP:GL:GQ	0/1:412,132:178:-126.09,-56.39,-566.98:99
-chr1	2574942	rs60506177	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=681;Dels=0.00;HRun=2;HaplotypeScore=1240.22;MQ=29.22;MQ0=28;OQ=4364.77;QD=6.41;SB=-1487.53	GT:AD:DP:GL:GQ	0/1:160,495:256:-435.48,-89.03,-503.32:99
-chr1	2574956	rs59191334	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=906;Dels=0.00;HRun=0;HaplotypeScore=851.71;MQ=29.72;MQ0=44;OQ=1149.69;QD=1.27;SB=-284.23	GT:AD:DP:GL:GQ	0/1:632,252:274:-200.91,-82.66,-713.01:99
-chr1	2574986	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=944;Dels=0.00;HRun=1;HaplotypeScore=1818.61;MQ=31.01;MQ0=59;OQ=1122.41;QD=1.19;SB=-398.32	GT:AD:DP:GL:GQ	0/1:745,146:351:-246.18,-130.65,-980.48:99
-chr1	2575019	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=719;Dels=0.00;HRun=0;HaplotypeScore=472.84;MQ=36.86;MQ0=62;OQ=2013.75;QD=2.80;SB=-548.67	GT:AD:DP:GL:GQ	0/1:509,205:351:-310.40,-105.75,-919.85:99
-chr1	2575034	rs61763547	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=646;Dels=0.00;HRun=1;HaplotypeScore=246.19;MQ=38.01;MQ0=57;OQ=1218.08;QD=1.89;SB=297.56	GT:AD:DP:GL:GQ	0/1:304,285:351:-300.74,-175.64,-1150.43:99
-chr1	2575068	.	C	G	824.18	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=841;Dels=0.00;HRun=0;HaplotypeScore=834.43;MQ=32.24;MQ0=93;QD=0.98;SB=69.34	GT:AD:DP:GL:GQ	0/1:592,151:395:-352.89,-267.19,-1451.52:99
-chr1	2575069	rs11510858	C	A	2054.73	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=851;Dels=0.00;HRun=0;HaplotypeScore=833.69;MQ=32.03;MQ0=94;QD=2.41;SB=-732.04	GT:AD:DP:GL:GQ	0/1:701,130:386:-337.44,-128.68,-1037.66:99
-chr1	2575076	.	C	G	56.74	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=869;Dels=0.00;HRun=2;HaplotypeScore=716.58;MQ=31.37;MQ0=95;QD=0.07;SB=276.82	GT:AD:DP:GL:GQ	0/1:773,41:392:-146.00,-137.04,-1458.73:89.57
-chr1	2575191	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=619;Dels=0.01;HRun=3;HaplotypeScore=666.18;MQ=32.68;MQ0=22;OQ=1037.47;QD=1.68;SB=-98.59	GT:AD:DP:GL:GQ	0/1:385,224:265:-186.87,-79.84,-734.84:99
-chr1	2575196	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=669;Dels=0.00;HRun=0;HaplotypeScore=585.81;MQ=31.95;MQ0=25;OQ=410.40;QD=0.61;SB=138.71	GT:AD:DP:GL:GQ	0/1:518,139:278:-128.14,-83.81,-902.17:99
-chr1	2575224	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=936;Dels=0.00;HRun=0;HaplotypeScore=711.05;MQ=30.70;MQ0=52;OQ=206.48;QD=0.22;SB=16.18	GT:AD:DP:GL:GQ	0/1:817,101:399:-165.30,-141.37,-1545.34:99
-chr1	2575246	.	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=981;Dels=0.00;HRun=1;HaplotypeScore=733.47;MQ=31.11;MQ0=67;OQ=1892.73;QD=1.93;SB=-760.65	GT:AD:DP:GL:GQ	0/1:771,204:430:-322.12,-129.56,-1274.76:99
-chr1	2575261	rs6692051	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=945;Dels=0.00;HRun=3;HaplotypeScore=358.84;MQ=32.03;MQ0=68;OQ=2338.43;QD=2.47;SB=-661.83	GT:AD:DP:GL:GQ	0/1:802,142:427:-365.78,-128.65,-1131.84:99
-chr1	2575299	.	G	T	161.49	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=614;Dels=0.00;HRun=1;HaplotypeScore=591.39;MQ=37.63;MQ0=50;QD=0.26;SB=20.79	GT:AD:DP:GL:GQ	0/1:494,69:362:-227.05,-207.62,-1136.93:99
-chr1	2575300	rs61765821	T	C	1192.57	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=603;Dels=0.00;HRun=0;HaplotypeScore=567.88;MQ=38.04;MQ0=47;QD=1.98;SB=-535.85	GT:AD:DP:GL:GQ	0/1:348,222:348:-246.80,-124.26,-1045.28:99
-chr1	2575308	.	C	A	283.33	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=591;Dels=0.00;HRun=1;HaplotypeScore=502.16;MQ=39.21;MQ0=53;QD=0.48;SB=90.50	GT:AD:DP:GL:GQ	0/1:465,102:356:-142.06,-110.45,-1099.38:99
-chr1	2575350	rs28411086	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=541;Dels=0.00;HRun=2;HaplotypeScore=281.76;MQ=38.20;MQ0=48;OQ=2021.31;QD=3.74;SB=-545.18	GT:AD:DP:GL:GQ	0/1:247,291:277:-288.88,-83.46,-673.01:99
-chr1	2575391	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=992;Dels=0.00;HRun=2;HaplotypeScore=510.05;MQ=30.36;MQ0=68;OQ=227.39;QD=0.23;SB=145.08	GT:AD:DP:GL:GQ	0/1:854,132:434:-160.44,-134.42,-1359.22:99
-chr1	2575398	.	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=1075;Dels=0.00;HRun=0;HaplotypeScore=310.34;MQ=30.19;MQ0=65;OQ=528.27;QD=0.49;SB=20.12	GT:AD:DP:GL:GQ	0/1:895,162:479:-203.83,-147.72,-1593.06:99
-chr1	2575422	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=1315;Dels=0.00;HRun=1;HaplotypeScore=628.02;MQ=29.05;MQ0=70;OQ=417.47;QD=0.32;SB=307.23	GT:AD:DP:GL:GQ	0/1:1146,168:592:-223.40,-178.37,-1814.12:99
-chr1	2575443	rs6678990	C	G	1968.81	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=1397;Dels=0.00;HRun=0;HaplotypeScore=834.10;MQ=29.41;MQ0=63;QD=1.41;SB=-880.90	GT:AD:DP:GL:GQ	0/1:1263,104:657:-428.32,-228.16,-2407.74:99
-chr1	2575448	.	C	T	306.07	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=1347;Dels=0.00;HRun=0;HaplotypeScore=969.72;MQ=29.55;MQ0=58;QD=0.23;SB=98.85	GT:AD:DP:GL:GQ	0/1:1166,127:596:-237.42,-203.53,-1765.67:99
-chr1	2575453	.	G	A	633.22	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=1324;Dels=0.01;HRun=0;HaplotypeScore=1094.28;MQ=29.55;MQ0=52;QD=0.48;SB=22.83	GT:AD:DP:GL:GQ	0/1:1098,210:631:-255.45,-188.85,-1774.06:99
-chr1	2575459	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=1275;Dels=0.00;HRun=1;HaplotypeScore=976.35;MQ=29.72;MQ0=48;OQ=260.30;QD=0.20;SB=456.22	GT:AD:DP:GL:GQ	0/1:1186,88:626:-217.90,-188.59,-2068.65:99
-chr1	2575467	.	A	T	1827.05	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=1257;Dels=0.00;HRun=0;HaplotypeScore=1002.71;MQ=30.06;MQ0=39;QD=1.45;SB=-471.84	GT:AD:DP:GL:GQ	0/1:1025,208:608:-372.29,-186.30,-1881.69:99
-chr1	2575472	.	C	A	9687.38	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=1255;Dels=0.00;HRun=1;HaplotypeScore=858.65;MQ=30.07;MQ0=41;QD=7.72;SB=-1503.87	GT:AD:DP:GL:GQ	0/1:729,316:639:-967.74,-542.07,-1662.70:99
-chr1	2575476	rs28479903	C	T	328.26	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=1232;Dels=0.00;HRun=0;HaplotypeScore=989.29;MQ=30.12;MQ0=43;QD=0.27;SB=122.56	GT:AD:DP:GL:GQ	0/1:1040,174:572:-219.19,-183.08,-1716.97:99
-chr1	2575484	rs61765822	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=1214;Dels=0.00;HRun=0;HaplotypeScore=468.08;MQ=30.51;MQ0=43;OQ=1888.53;QD=1.56;SB=-874.96	GT:AD:DP:GL:GQ	0/1:984,212:602:-396.91,-204.77,-1679.64:99
-chr1	2575509	rs7367485	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=1003;Dels=0.00;HRun=3;HaplotypeScore=708.39;MQ=31.59;MQ0=44;OQ=1317.31;QD=1.31;SB=-683.17	GT:AD:DP:GL:GQ	0/1:599,311:447:-397.20,-262.18,-1298.11:99
-chr1	2575527	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=899;Dels=0.00;HRun=1;HaplotypeScore=616.46;MQ=32.40;MQ0=36;OQ=2129.63;QD=2.37;SB=-658.87	GT:AD:DP:GL:GQ	0/1:666,188:432:-362.76,-146.52,-1154.94:99
-chr1	2575536	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=816;Dels=0.00;HRun=1;HaplotypeScore=629.02;MQ=33.06;MQ0=36;OQ=245.82;QD=0.30;SB=187.48	GT:AD:DP:GL:GQ	0/1:660,150:389:-147.61,-119.74,-1232.57:99
-chr1	2575553	.	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=672;Dels=0.00;HRun=0;HaplotypeScore=869.01;MQ=35.62;MQ0=23;OQ=1048.35;QD=1.56;SB=44.73	GT:AD:DP:GL:GQ	0/1:542,123:340:-220.20,-112.08,-1057.17:99
-chr1	2575577	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=529;Dels=0.00;HRun=0;HaplotypeScore=616.14;MQ=41.10;MQ0=11;OQ=295.55;QD=0.56;SB=93.12	GT:AD:DP:GL:GQ	0/1:363,155:340:-135.27,-102.43,-1079.29:99
-chr1	2575583	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=497;Dels=0.00;HRun=0;HaplotypeScore=739.15;MQ=41.67;MQ0=9;OQ=177.97;QD=0.36;SB=340.79	GT:AD:DP:GL:GQ	0/1:426,63:314:-122.58,-101.50,-1218.09:99
-chr1	2575632	rs6686754	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=363;Dels=0.00;HRun=1;HaplotypeScore=439.13;MQ=46.08;MQ0=4;OQ=7215.73;QD=19.88;SB=-2967.87	GT:AD:DP:GL:GQ	0/1:59,294:248:-720.57,-74.71,-189.55:99
-chr1	2575661	rs28498367	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=482;Dels=0.00;HRun=0;HaplotypeScore=598.03;MQ=41.57;MQ0=4;OQ=4453.10;QD=9.24;SB=-977.05	GT:AD:DP:GL:GQ	0/1:194,269:275:-444.31,-82.91,-730.02:99
-chr1	2575692	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=647;Dels=0.00;HRun=1;HaplotypeScore=594.08;MQ=36.97;MQ0=17;OQ=2155.18;QD=3.33;SB=272.10	GT:AD:DP:GL:GQ	0/1:259,365:295:-329.81,-111.01,-802.38:99
-chr1	2575711	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=667;Dels=0.00;HRun=3;HaplotypeScore=1191.59;MQ=36.49;MQ0=18;OQ=1467.43;QD=2.20;SB=-170.23	GT:AD:DP:GL:GQ	0/1:245,407:245:-231.00,-80.98,-619.30:99
-chr1	2575718	.	C	T	91.63	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=668;Dels=0.07;HRun=0;HaplotypeScore=726.36;MQ=36.74;MQ0=18;QD=0.14;SB=390.06	GT:AD:DP:GL:GQ	0/1:453,157:278:-93.88,-81.43,-798.07:99
-chr1	2575725	.	C	T	321.62	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=662;Dels=0.00;HRun=1;HaplotypeScore=724.85;MQ=36.17;MQ0=17;QD=0.49;SB=411.17	GT:AD:DP:GL:GQ	0/1:600,56:323:-132.74,-97.29,-1057.81:99
-chr1	2575728	.	A	T	148.72	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=660;Dels=0.00;HRun=0;HaplotypeScore=737.53;MQ=36.50;MQ0=17;QD=0.23;SB=417.37	GT:AD:DP:GL:GQ	0/1:600,48:321:-114.85,-96.69,-1096.48:99
-chr1	2575731	.	G	A	128.25	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=638;Dels=0.00;HRun=1;HaplotypeScore=523.34;MQ=37.45;MQ0=16;QD=0.20;SB=259.66	GT:AD:DP:GL:GQ	0/1:525,83:335:-143.82,-127.71,-1107.68:99
-chr1	2575750	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=473;Dels=0.00;HRun=1;HaplotypeScore=339.24;MQ=40.86;MQ0=6;OQ=314.90;QD=0.67;SB=-156.95	GT:AD:DP:GL:GQ	0/1:417,42:281:-123.25,-88.47,-781.88:99
-chr1	2575766	rs6694964	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=418;Dels=0.00;HRun=0;HaplotypeScore=190.54;MQ=43.00;MQ0=6;OQ=9217.59;QD=22.05;SB=-3555.11	GT:AD:DP:GL:GQ	0/1:33,383:267:-920.76,-80.43,-83.85:34.20
-chr1	2575784	rs28583924	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=426;Dels=0.00;HRun=0;HaplotypeScore=272.61;MQ=42.95;MQ0=8;OQ=181.28;QD=0.43;SB=6.29	GT:AD:DP:GL:GQ	0/1:359,64:257:-98.92,-77.51,-960.45:99
-chr1	2575825	rs6689281	T	C	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=557;Dels=0.01;HRun=2;HaplotypeScore=469.61;MQ=35.81;MQ0=25;OQ=9475.08;QD=17.01;SB=-3650.18	GT:AD:DP:GL:GQ	1/1:3,541:282:-946.51,-86.27,-2.51:99
-chr1	2575851	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=634;Dels=0.00;HRun=0;HaplotypeScore=686.59;MQ=33.18;MQ0=30;OQ=77.00;QD=0.12;SB=-18.66	GT:AD:DP:GL:GQ	0/1:437,151:251:-86.73,-75.75,-723.32:99
-chr1	2575861	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=670;Dels=0.00;HRun=0;HaplotypeScore=1084.95;MQ=32.16;MQ0=34;OQ=174.30;QD=0.26;SB=144.01	GT:AD:DP:GL:GQ	0/1:448,201:255:-97.68,-76.97,-707.97:99
-chr1	2575918	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=659;Dels=0.00;HRun=0;HaplotypeScore=602.10;MQ=33.55;MQ0=33;OQ=1205.47;QD=1.83;SB=-331.68	GT:AD:DP:GL:GQ	0/1:520,139:294:-212.43,-88.60,-836.61:99
-chr1	2575963	rs61765824	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=414;Dels=0.00;HRun=0;HaplotypeScore=225.65;MQ=45.71;MQ0=16;OQ=175.37;QD=0.42;SB=-3.54	GT:AD:DP:GL:GQ	0/1:256,154:262:-99.81,-78.99,-882.64:99
-chr1	2576027	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=375;Dels=0.00;HRun=0;HaplotypeScore=441.20;MQ=41.08;MQ0=22;OQ=359.44;QD=0.96;SB=-25.38	GT:AD:DP:GL:GQ	0/1:347,27:212:-103.15,-63.92,-790.76:99
-chr1	2576035	rs55917765	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=384;Dels=0.02;HRun=4;HaplotypeScore=406.51;MQ=41.42;MQ0=19;OQ=289.17;QD=0.75;SB=-132.89	GT:AD:DP:GL:GQ	0/1:212,141:214:-106.50,-74.30,-717.21:99
-chr1	2576075	rs57994724	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=300;Dels=0.03;HRun=4;HaplotypeScore=363.80;MQ=42.84;MQ0=2;OQ=76.42;QD=0.25;SB=-28.60	GT:AD:DP:GL:GQ	0/1:192,90:162:-61.96,-51.03,-580.93:99
-chr1	2576111	rs58221160	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=281;Dels=0.00;HRun=1;HaplotypeScore=182.21;MQ=43.93;MQ0=7;OQ=597.72;QD=2.13;SB=-221.46	GT:AD:DP:GL:GQ	0/1:232,45:207:-125.42,-62.37,-596.71:99
-chr1	2576240	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=1159;Dels=0.00;HRun=0;HaplotypeScore=623.69;MQ=25.02;MQ0=69;OQ=409.78;QD=0.35;SB=-223.95	GT:AD:DP:GL:GQ	0/1:968,178:369:-162.51,-118.25,-1426.92:99
-chr1	2576263	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=1066;Dels=0.00;HRun=1;HaplotypeScore=622.37;MQ=26.52;MQ0=59;OQ=159.54;QD=0.15;SB=19.45	GT:AD:DP:GL:GQ	0/1:984,81:387:-135.82,-116.58,-1209.01:99
-chr1	2576333	.	C	G	40.07	DPFilter;HARD_TO_VALIDATE;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=224;Dels=0.00;HRun=1;HaplotypeScore=154.83;MQ=40.65;MQ0=29;QD=0.18;SB=-8.93	GT:AD:DP:GL:GQ	0/1:181,32:158:-64.21,-56.92,-644.64:72.91
-chr1	2576335	.	C	T	1221.15	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=216;Dels=0.00;HRun=0;HaplotypeScore=167.65;MQ=40.55;MQ0=30;QD=5.65;SB=-581.17	GT:AD:DP:GL:GQ	0/1:122,94:144:-168.83,-43.43,-331.79:99
-chr1	2576336	rs28676518	G	A	1105.16	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=214;Dels=0.00;HRun=0;HaplotypeScore=205.71;MQ=40.45;MQ0=30;QD=5.16;SB=-168.80	GT:AD:DP:GL:GQ	0/1:170,44:143:-156.87,-43.08,-364.02:99
-chr1	2576346	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=179;Dels=0.00;HRun=1;HaplotypeScore=74.98;MQ=40.01;MQ0=31;OQ=210.24;QD=1.17;SB=-126.34	GT:AD:DP:GL:GQ	0/1:138,41:111:-57.78,-33.47,-394.51:99
-chr1	2576366	rs61765835	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=158;Dels=0.00;HRun=0;HaplotypeScore=35.61;MQ=33.02;MQ0=57;OQ=96.35;QD=0.61;SB=-36.52	GT:AD:DP:GL:GQ	0/1:92,66:79:-36.73,-23.81,-255.03:99
-chr1	2576428	rs61765837	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=303;Dels=0.00;HRun=2;HaplotypeScore=260.74;MQ=16.89;MQ0=145;OQ=101.18;QD=0.33;SB=-66.11	GT:AD:DP:GL:GQ	0/1:155,144:52:-29.09,-15.69,-174.52:99
-chr1	2576448	rs61765838	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=595;Dels=0.00;HRun=0;HaplotypeScore=426.54;MQ=17.45;MQ0=199;OQ=372.66;QD=0.63;SB=-42.53	GT:AD:DP:GL:GQ	0/1:377,206:114:-74.98,-34.43,-280.80:99
-chr1	2576460	rs61765839	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=687;Dels=0.00;HRun=1;HaplotypeScore=471.75;MQ=17.40;MQ0=212;OQ=453.85;QD=0.66;SB=-3.98	GT:AD:DP:GL:GQ	0/1:511,164:138:-90.25,-41.59,-375.50:99
-chr1	2576472	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=774;Dels=0.03;HRun=1;HaplotypeScore=800.59;MQ=17.54;MQ0=228;OQ=234.98;QD=0.30;SB=-38.37	GT:AD:DP:GL:GQ	0/1:618,98:166:-76.78,-50.00,-493.07:99
-chr1	2576534	rs57105227	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=374;Dels=0.00;HRun=1;HaplotypeScore=347.91;MQ=18.87;MQ0=112;OQ=329.07;QD=0.88;SB=-154.80	GT:AD:DP:GL:GQ	0/1:156,198:111:-73.27,-37.08,-391.39:99
-chr1	2576577	rs4648668	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=122;Dels=0.00;HRun=1;HaplotypeScore=59.62;MQ=22.81;MQ0=26;OQ=851.22;QD=6.98;SB=10.08	GT:AD:DP:GL:GQ	0/1:55,66:69:-109.20,-20.79,-201.97:99
-chr1	2576600	rs4648566	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=135;Dels=0.00;HRun=1;HaplotypeScore=109.15;MQ=20.95;MQ0=39;OQ=455.68;QD=3.38;SB=83.24	GT:AD:DP:GL:GQ	0/1:105,30:52:-64.51,-15.66,-117.10:99
-chr1	2576616	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=143;Dels=0.00;HRun=0;HaplotypeScore=178.18;MQ=20.10;MQ0=38;OQ=374.43;QD=2.62;SB=-39.54	GT:AD:DP:GL:GQ	0/1:116,27:44:-54.00,-13.27,-93.80:99
-chr1	2576848	rs61765840	G	T	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DB;DP=141;Dels=0.00;HRun=1;HaplotypeScore=22.44;MQ=39.05;MQ0=35;OQ=52.46;QD=0.37;SB=-15.32	GT:AD:DP:GL:GQ	0/1:129,12:77:-31.72,-23.19,-231.93:85.30
-chr1	2577010	rs4648671	A	G	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=239;Dels=0.00;HRun=0;HaplotypeScore=65.16;MQ=37.14;MQ0=12;OQ=5199.52;QD=21.76;SB=-2266.90	GT:AD:DP:GL:GQ	1/1:7,232:163:-518.95,-49.17,-3.73:99
-chr1	2577062	rs28507281	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=295;Dels=0.00;HRun=0;HaplotypeScore=78.67;MQ=40.58;MQ0=11;OQ=1143.65;QD=3.88;SB=-492.64	GT:AD:DP:GL:GQ	0/1:238,57:237:-189.11,-71.46,-605.04:99
-chr1	2577084	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=307;Dels=0.00;HRun=0;HaplotypeScore=72.39;MQ=39.59;MQ0=17;OQ=519.07;QD=1.69;SB=-15.56	GT:AD:DP:GL:GQ	0/1:259,48:248:-129.89,-74.70,-751.71:99
-chr1	2577123	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=291;Dels=0.00;HRun=1;HaplotypeScore=84.53;MQ=39.37;MQ0=26;OQ=265.40;QD=0.91;SB=-39.23	GT:AD:DP:GL:GQ	0/1:250,41:219:-95.80,-65.98,-773.71:99
-chr1	2577397	rs58719822	G	C	0.55	PASS	AC=2;AF=1.00;AN=2;DB;DP=190;Dels=0.00;HRun=0;HaplotypeScore=14.16;MQ=39.42;MQ0=19;OQ=6097.98;QD=32.09;SB=-764.81	GT:AD:DP:GL:GQ	1/1:1,189:137:-608.80,-41.28,-0.05:99
-chr1	2577433	rs60264562	G	C	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=207;Dels=0.05;HRun=4;HaplotypeScore=105.46;MQ=35.87;MQ0=25;OQ=5113.11;QD=24.70;SB=-614.98	GT:AD:DP:GL:GQ	1/1:9,184:123:-510.31,-38.53,-16.18:99
-chr1	2577515	.	A	C	17.95	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=331;Dels=0.00;HRun=3;HaplotypeScore=311.11;MQ=35.94;MQ0=23;QD=0.05;SB=173.50	GT:AD:DP:GL:GQ	0/1:258,71:167:-55.40,-50.33,-521.31:50.72
-chr1	2577549	rs4648567	A	G	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=289;Dels=0.00;HRun=0;HaplotypeScore=107.18;MQ=38.40;MQ0=7;OQ=5448.91;QD=18.85;SB=-2125.98	GT:AD:DP:GL:GQ	1/1:24,231:174:-543.89,-82.79,-51.97:99
-chr1	2577655	.	G	C	44.44	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=135;Dels=0.00;HRun=2;HaplotypeScore=58.73;MQ=26.75;MQ0=23;QD=0.33;SB=26.12	GT:AD:DP:GL:GQ	0/1:116,10:43:-24.31,-16.59,-159.35:77.27
-chr1	2577671	rs58842912	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=94;Dels=0.00;HRun=0;HaplotypeScore=128.81;MQ=16.71;MQ0=28;OQ=137.08;QD=1.46;SB=-35.94	GT:AD:DP:GL:GQ	0/1:63,25:12:-20.61,-3.62,-16.30:99
-chr1	2577677	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=93;Dels=0.00;HRun=3;HaplotypeScore=117.98;MQ=17.54;MQ0=28;OQ=281.66;QD=3.03;SB=-45.56	GT:AD:DP:GL:GQ	0/1:33,58:12:-35.06,-3.61,-7.69:40.79
-chr1	2577682	.	T	C	14.20	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=98;Dels=0.00;HRun=0;HaplotypeScore=57.79;MQ=17.58;MQ0=34;QD=0.14;SB=-10.00	GT:AD:DP:GL:GQ	0/1:68,26:4:-5.89,-1.21,-7.84:46.86
-chr1	2577700	.	T	C	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DP=113;Dels=0.00;HRun=0;HaplotypeScore=167.08;MQ=18.58;MQ0=41;OQ=266.89;QD=2.36;SB=-10.00	GT:AD:DP:GL:GQ	1/1:35,36:10:-34.52,-6.65,-4.25:23.97
-chr1	2577709	.	C	T	15.40	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=131;Dels=0.00;HRun=0;HaplotypeScore=233.03;MQ=18.07;MQ0=48;QD=0.12;SB=-10.00	GT:AD:DP:GL:GQ	0/1:96,13:7:-9.83,-5.02,-17.83:48.10
-chr1	2577721	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=182;Dels=0.00;HRun=0;HaplotypeScore=74.87;MQ=18.10;MQ0=63;OQ=399.60;QD=2.20;SB=-10.00	GT:AD:DP:GL:GQ	0/1:147,35:41:-55.60,-12.35,-87.25:99
-chr1	2577722	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=181;Dels=0.00;HRun=0;HaplotypeScore=54.78;MQ=18.15;MQ0=62;OQ=179.28;QD=0.99;SB=-10.00	GT:AD:DP:GL:GQ	0/1:160,20:38:-32.69,-11.48,-98.33:99
-chr1	2577735	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=191;Dels=0.00;HRun=1;HaplotypeScore=37.61;MQ=17.86;MQ0=65;OQ=262.32;QD=1.37;SB=-10.00	GT:AD:DP:GL:GQ	0/1:173,18:55:-46.08,-16.57,-148.55:99
-chr1	2577740	rs61763463	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=186;Dels=0.00;HRun=1;HaplotypeScore=34.83;MQ=17.84;MQ0=63;OQ=1671.60;QD=8.99;SB=-10.00	GT:AD:DP:GL:GQ	0/1:52,133:54:-186.71,-16.27,-40.75:99
-chr1	2577765	.	C	A	125.78	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=144;Dels=0.00;HRun=0;HaplotypeScore=41.35;MQ=16.77;MQ0=52;QD=0.87;SB=-10.00	GT:AD:DP:GL:GQ	0/1:91,53:26:-23.70,-7.84,-54.51:99
-chr1	2577769	.	C	T	71.72	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=134;Dels=0.00;HRun=0;HaplotypeScore=43.82;MQ=16.10;MQ0=52;QD=0.54;SB=-10.00	GT:AD:DP:GL:GQ	0/1:87,47:21:-16.80,-6.34,-49.74:99
-chr1	2577770	.	G	C	89.65	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=133;Dels=0.00;HRun=1;HaplotypeScore=42.82;MQ=16.09;MQ0=52;QD=0.67;SB=-10.00	GT:AD:DP:GL:GQ	0/1:85,48:21:-18.58,-6.33,-66.40:99
-chr1	2577784	rs61761450	G	C	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=108;Dels=0.00;HRun=0;HaplotypeScore=93.26;MQ=15.12;MQ0=44;OQ=499.20;QD=4.62;SB=-10.00	GT:AD:DP:GL:GQ	1/1:36,72:12:-53.51,-3.62,-0.00:36.12
-chr1	2577796	rs28368363	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=96;Dels=0.00;HRun=0;HaplotypeScore=154.23;MQ=14.20;MQ0=39;OQ=53.95;QD=0.56;SB=-10.00	GT:AD:DP:GL:GQ	0/1:68,23:5:-10.19,-1.51,-6.10:45.96
-chr1	2577799	rs61765844	A	C	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=89;Dels=0.00;HRun=4;HaplotypeScore=106.56;MQ=13.50;MQ0=38;OQ=136.44;QD=1.53;SB=-10.00	GT:AD:DP:GL:GQ	1/1:37,52:5:-17.20,-1.51,-0.00:15.04
-chr1	2577815	rs61761446	G	A	0.11	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=16.91;MQ=12.99;MQ0=33;OQ=113.87;QD=2.19;SB=-10.00	GT:AD:DP:GL:GQ	1/1:30,21:4:-14.92,-1.21,-0.00:12.04
-chr1	2577825	.	G	A	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DP=47;Dels=0.00;HRun=0;HaplotypeScore=32.84;MQ=14.16;MQ0=28;OQ=149.17;QD=3.17;SB=-10.00	GT:AD:DP:GL:GQ	1/1:28,19:5:-18.48,-1.51,-0.00:15.04
-chr1	2577833	.	C	T	42.25	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DP=43;Dels=0.00;HRun=0;HaplotypeScore=22.86;MQ=13.04;MQ0=28;QD=0.98;SB=-10.00	GT:AD:DP:GL:GQ	1/1:33,10:2:-7.63,-0.60,-0.00:6.02
-chr1	2577851	.	G	T	0.04	FDRtranche0.10to1.00	AC=2;AF=1.00;AN=2;DP=35;Dels=0.00;HRun=0;HaplotypeScore=11.27;MQ=14.57;MQ0=20;OQ=148.54;QD=4.24;SB=-10.00	GT:AD:DP:GL:GQ	1/1:17,14:6:-18.43,-1.81,-0.01:18.02
-chr1	2577883	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=104;Dels=0.00;HRun=0;HaplotypeScore=114.78;MQ=19.71;MQ0=31;OQ=87.78;QD=0.84;SB=-10.00	GT:AD:DP:GL:GQ	0/1:82,22:16:-16.89,-4.83,-35.06:99
-chr1	2577892	rs61761448	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=118;Dels=0.00;HRun=0;HaplotypeScore=139.63;MQ=19.08;MQ0=41;OQ=358.39;QD=3.04;SB=-10.00	GT:AD:DP:GL:GQ	0/1:46,69:13:-43.04,-3.92,-5.80:18.77
-chr1	2577904	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=128;Dels=0.00;HRun=1;HaplotypeScore=169.18;MQ=18.99;MQ0=45;OQ=432.72;QD=3.38;SB=-10.00	GT:AD:DP:GL:GQ	0/1:56,72:16:-51.38,-4.83,-6.85:20.23
-chr1	2577913	.	A	G	43.14	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=118;Dels=0.00;HRun=0;HaplotypeScore=228.63;MQ=18.89;MQ0=43;QD=0.37;SB=-10.00	GT:AD:DP:GL:GQ	0/1:102,14:7:-9.71,-2.11,-14.52:75.98
-chr1	2577923	.	G	A	12.44	DPFilter;HARD_TO_VALIDATE;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=122;Dels=0.00;HRun=0;HaplotypeScore=139.34;MQ=19.75;MQ0=38;QD=0.10;SB=-10.00	GT:AD:DP:GL:GQ	0/1:84,37:10:-7.51,-3.01,-26.55:45.02
-chr1	2577924	.	T	C	61.88	HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=118;Dels=0.00;HRun=0;HaplotypeScore=137.09;MQ=19.68;MQ0=38;QD=0.52;SB=-10.00	GT:AD:DP:GL:GQ	0/1:94,23:11:-12.79,-3.32,-26.27:94.71
-chr1	2577931	rs61763465	G	C	371.46	HARD_TO_VALIDATE;SnpCluster	AC=2;AF=1.00;AN=2;DB;DP=106;Dels=0.00;HRun=0;HaplotypeScore=106.32;MQ=19.54;MQ0=35;QD=3.50;SB=-10.00	GT:AD:DP:GL:GQ	1/1:30,75:9:-40.73,-2.71,-0.00:27.09
-chr1	2577945	rs61765845	G	C	1059.87	HARD_TO_VALIDATE;Indel	AC=2;AF=1.00;AN=2;DB;DP=106;Dels=0.00;HRun=0;HaplotypeScore=141.04;MQ=19.73;MQ0=38;QD=10.00;SB=-10.00	GT:AD:DP:GL:GQ	1/1:31,70:26:-113.65,-11.26,-4.08:71.85
-chr1	2577953	.	A	G	356.53	HARD_TO_VALIDATE;Indel	AC=1;AF=0.50;AN=2;DP=98;Dels=0.00;HRun=0;HaplotypeScore=136.50;MQ=18.50;MQ0=43;QD=3.64;SB=-10.00	GT:AD:DP:GL:GQ	0/1:78,20:16:-43.76,-4.82,-8.02:32
-chr1	2577977	.	G	A	20.69	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=77;Dels=0.00;HRun=1;HaplotypeScore=16.21;MQ=15.79;MQ0=48;QD=0.27;SB=-10.00	GT:AD:DP:GL:GQ	0/1:72,5:20:-11.37,-6.02,-58.36:53.49
-chr1	2579397	rs61761374	C	G	193.05	PASS	AC=1;AF=0.50;AN=2;DB;DP=90;Dels=0.00;HRun=0;HaplotypeScore=3.77;MQ=22.35;MQ0=6;OQ=1341.59;QD=14.91;SB=-551.47	GT:AD:DP:GL:GQ	0/1:44,46:77:-160.66,-23.22,-161.20:99
-chr1	2580726	.	T	G	35.92	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DP=61;Dels=0.00;HRun=0;HaplotypeScore=5.11;MQ=5.25;MQ0=59;QD=0.59;SB=-10.00	GT:AD:DP:GL:GQ	1/1:58,2:2:-7.00,-0.60,-0.00:6.02
-chr1	2580768	.	T	C	36.28	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DP=51;Dels=0.00;HRun=2;HaplotypeScore=0.48;MQ=5.74;MQ0=49;QD=0.71;SB=-10.00	GT:AD:DP:GL:GQ	1/1:46,5:2:-7.04,-0.60,-0.00:6.02
-chr1	2580784	rs11488598	T	A	45.88	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=6.33;MQ0=40;QD=1.09;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,41:2:-8.00,-0.60,-0.00:6.02
-chr1	2581065	rs61761440	A	C	33.92	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=9.03;MQ=10.33;MQ0=29;QD=0.71;SB=-10.00	GT:AD:DP:GL:GQ	1/1:28,20:2:-6.80,-0.60,-0.00:6.02
-chr1	2581076	.	T	A	42.69	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DP=32;Dels=0.00;HRun=0;HaplotypeScore=2.33;MQ=11.35;MQ0=18;QD=1.33;SB=-10.00	GT:AD:DP:GL:GQ	1/1:16,15:2:-7.68,-0.60,-0.00:6.02
-chr1	2581088	.	A	C	35.92	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DP=11;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=15.32;MQ0=5;QD=3.27;SB=-10.00	GT:AD:DP:GL:GQ	1/1:3,8:2:-7.00,-0.60,-0.00:6.02
-chr1	2581203	.	C	G	46.77	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=68;Dels=0.00;HRun=0;HaplotypeScore=12.99;MQ=10.81;MQ0=53;QD=0.69;SB=5.05	GT:AD:DP:GL:GQ	0/1:57,11:14:-12.18,-4.22,-47.55:79.61
-chr1	2581221	rs4648702	C	A	0.09	PASS	AC=1;AF=0.50;AN=2;DB;DP=98;Dels=0.00;HRun=1;HaplotypeScore=12.38;MQ=17.15;MQ0=42;OQ=109.22;QD=1.11;SB=-5.56	GT:AD:DP:GL:GQ	0/1:80,16:46:-28.07,-13.86,-128.22:99
-chr1	2581257	rs4648701	T	A	0.08	PASS	AC=2;AF=1.00;AN=2;DB;DP=134;Dels=0.00;HRun=0;HaplotypeScore=5.16;MQ=20.38;MQ0=25;OQ=3859.45;QD=28.80;SB=-1801.06	GT:AD:DP:GL:GQ	1/1:0,134:101:-384.94,-30.42,-0.03:99
-chr1	2587428	.	A	C	37.49	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DP=34;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=14.36;MQ0=8;QD=1.10;SB=-45.01	GT:AD:DP:GL:GQ	1/1:0,34:2:-7.16,-0.60,-0.00:6.02
-chr1	2593169	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=425;Dels=0.00;HRun=1;HaplotypeScore=105.62;MQ=17.46;MQ0=82;OQ=848.96;QD=2.00;SB=-332.82	GT:AD:DP:GL:GQ	0/1:365,60:163:-137.29,-49.11,-428.79:99
-chr1	2596443	.	C	T	41.24	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DP=11;Dels=0.00;HRun=0;HaplotypeScore=2.31;MQ=12.40;MQ0=7;QD=3.75;SB=-10.00	GT:AD:DP:GL:GQ	1/1:7,4:2:-7.53,-0.60,-0.00:6.02
-chr1	2596445	.	T	G	36.05	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DP=12;Dels=0.00;HRun=1;HaplotypeScore=2.31;MQ=11.87;MQ0=8;QD=3.00;SB=-10.00	GT:AD:DP:GL:GQ	1/1:5,7:2:-7.01,-0.60,-0.00:6.02
-chr1	2596476	.	G	A	46.02	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DP=60;Dels=0.00;HRun=1;HaplotypeScore=26.89;MQ=5.53;MQ0=56;QD=0.77;SB=-10.00	GT:AD:DP:GL:GQ	1/1:58,2:2:-8.01,-0.60,-0.00:6.02
-chr1	2596850	.	G	C	35.05	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=43;Dels=0.00;HRun=0;HaplotypeScore=-0.06;MQ=11.43;MQ0=28;QD=0.82;SB=-10.00	GT:AD:DP:GL:GQ	0/1:29,14:5:-8.30,-1.51,-13.08:67.88
-chr1	2596943	.	C	A	49.59	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=71;Dels=0.00;HRun=0;HaplotypeScore=50.99;MQ=11.35;MQ0=54;QD=0.70;SB=-6.99	GT:AD:DP:GL:GQ	0/1:65,5:13:-12.16,-3.92,-30.66:82.43
-chr1	2597318	.	T	C	31.81	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DP=76;Dels=0.00;HRun=0;HaplotypeScore=14.62;MQ=5.54;MQ0=70;QD=0.42;SB=-10.00	GT:AD:DP:GL:GQ	1/1:73,2:2:-6.59,-0.60,-0.00:6.01
-chr1	2598250	.	T	A	27.90	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=22;Dels=0.00;HRun=1;HaplotypeScore=2.24;MQ=16.56;MQ0=5;QD=1.27;SB=-0.98	GT:AD:DP:GL:GQ	0/1:19,3:5:-7.58,-1.51,-10.62:60.73
-chr1	2598257	.	G	T	12.16	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=22;Dels=0.00;HRun=0;HaplotypeScore=10.71;MQ=15.61;MQ0=8;QD=0.55;SB=-0.98	GT:AD:DP:GL:GQ	0/1:19,3:5:-5.98,-1.51,-10.70:44.72
-chr1	2598656	.	G	A	10.26	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=175;Dels=0.00;HRun=1;HaplotypeScore=114.17;MQ=5.78;MQ0=152;QD=0.06;SB=-10.00	GT:AD:DP:GL:GQ	0/1:161,14:1:-4.27,-0.30,-0.00:1.76
-chr1	2598795	.	G	A	10.26	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=86;Dels=0.00;HRun=0;HaplotypeScore=47.85;MQ=7.17;MQ0=69;QD=0.12;SB=-10.00	GT:AD:DP:GL:GQ	0/1:84,2:1:-4.27,-0.30,-0.00:1.76
-chr1	2598944	.	A	C	17.83	HARD_TO_VALIDATE;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=67;Dels=0.00;HRun=1;HaplotypeScore=67.67;MQ=10.48;MQ0=39;QD=0.27;SB=-25.99	GT:AD:DP:GL:GQ	0/1:48,17:3:-5.96,-0.91,-2.50:15.92
-chr1	2598946	.	A	G	34.06	HARD_TO_VALIDATE;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=74;Dels=0.00;HRun=0;HaplotypeScore=82.40;MQ=11.36;MQ0=42;QD=0.46;SB=-10.00	GT:AD:DP:GL:GQ	0/1:70,4:3:-7.59,-0.90,-4.17:32.64
-chr1	2598950	.	C	A	54.26	HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=102;Dels=0.00;HRun=0;HaplotypeScore=105.52;MQ=12.29;MQ0=47;QD=0.53;SB=-3.99	GT:AD:DP:GL:GQ	0/1:94,7:7:-10.82,-2.11,-14.32:87.10
-chr1	2599001	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=133;Dels=0.00;HRun=0;HaplotypeScore=31.75;MQ=12.68;MQ0=54;OQ=83.85;QD=0.63;SB=-3.99	GT:AD:DP:GL:GQ	0/1:91,33:10:-18.26,-6.59,-21.60:99
-chr1	2599015	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=141;Dels=0.00;HRun=2;HaplotypeScore=24.68;MQ=11.50;MQ0=72;OQ=64.97;QD=0.46;SB=-43.54	GT:AD:DP:GL:GQ	0/1:128,12:9:-12.49,-2.71,-23.15:97.80
-chr1	2599040	rs61761456	A	T	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=133;Dels=0.00;HRun=0;HaplotypeScore=87.15;MQ=9.23;MQ0=88;OQ=72.77;QD=0.55;SB=-10.00	GT:AD:DP:GL:GQ	1/1:81,14:5:-17.43,-7.71,-6.64:10.71
-chr1	2599044	rs61761457	T	A	33.25	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DB;DP=131;Dels=0.00;HRun=1;HaplotypeScore=64.29;MQ=9.30;MQ0=86;QD=0.25;SB=-10.00	GT:AD:DP:GL:GQ	0/1:104,11:6:-11.67,-5.06,-13.57:66.08
-chr1	2599198	.	C	T	23.45	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=47;Dels=0.00;HRun=0;HaplotypeScore=16.24;MQ=14.99;MQ0=19;QD=0.50;SB=-3.99	GT:AD:DP:GL:GQ	0/1:29,18:5:-7.14,-1.51,-10.24:56.27
-chr1	2599218	.	G	A	105.55	HARD_TO_VALIDATE;Indel;SnpCluster	AC=1;AF=0.50;AN=2;DP=46;Dels=0.00;HRun=1;HaplotypeScore=106.10;MQ=16.73;MQ0=11;QD=2.29;SB=-69.07	GT:AD:DP:GL:GQ	0/1:28,17:6:-15.65,-1.81,-6.14:43.30
-chr1	2599225	.	C	G	35.32	HARD_TO_VALIDATE;Indel;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=45;Dels=0.00;HRun=0;HaplotypeScore=82.64;MQ=16.87;MQ0=11;QD=0.78;SB=-10.88	GT:AD:DP:GL:GQ	0/1:36,6:7:-14.02,-7.20,-19.31:68.16
-chr1	2599228	.	G	A	323.86	HARD_TO_VALIDATE;Indel;SnpCluster	AC=2;AF=1.00;AN=2;DP=46;Dels=0.04;HRun=0;HaplotypeScore=68.32;MQ=16.68;MQ0=12;QD=7.04;SB=-89.34	GT:AD:DP:GL:GQ	1/1:16,28:10:-35.98,-3.02,-0.01:30.08
-chr1	2599239	.	T	A	19.57	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=55;Dels=0.00;HRun=0;HaplotypeScore=43.45;MQ=14.62;MQ0=19;QD=0.36;SB=-4.42	GT:AD:DP:GL:GQ	0/1:49,2:7:-12.49,-7.25,-17.00:52.36
-chr1	2599247	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=52;Dels=0.00;HRun=0;HaplotypeScore=40.77;MQ=14.18;MQ0=20;OQ=70.13;QD=1.35;SB=-7.01	GT:AD:DP:GL:GQ	0/1:29,21:6:-12.11,-1.81,-8.56:67.52
-chr1	2599654	.	G	C	12.35	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=120;Dels=0.00;HRun=1;HaplotypeScore=26.39;MQ=2.65;MQ0=119;QD=0.10;SB=-10.00	GT:AD:DP:GL:GQ	0/1:119,1:1:-4.49,-0.30,-0.00:1.76
-chr1	2601422	.	A	G	25.82	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DP=114;Dels=0.00;HRun=0;HaplotypeScore=10.71;MQ=4.09;MQ0=110;QD=0.23;SB=-10.00	GT:AD:DP:GL:GQ	1/1:99,14:2:-5.99,-0.60,-0.00:6.01
-chr1	2601437	.	T	C	35.28	DPFilter;HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DP=133;Dels=0.00;HRun=0;HaplotypeScore=12.99;MQ=3.79;MQ0=129;QD=0.27;SB=-10.00	GT:AD:DP:GL:GQ	1/1:103,30:2:-6.94,-0.60,-0.00:6.02
-chr1	2601504	.	G	A	41.24	DPFilter;HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DP=168;Dels=0.00;HRun=0;HaplotypeScore=19.74;MQ=3.30;MQ0=165;QD=0.25;SB=-10.00	GT:AD:DP:GL:GQ	1/1:158,9:2:-7.53,-0.60,-0.00:6.02
-chr1	2601515	.	A	C	43.05	DPFilter;HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DP=155;Dels=0.00;HRun=2;HaplotypeScore=7.29;MQ=3.29;MQ0=153;QD=0.28;SB=-10.00	GT:AD:DP:GL:GQ	1/1:91,64:2:-7.71,-0.60,-0.00:6.02
-chr1	2601516	.	G	A	0.02	FDRtranche1.00to2.00	AC=2;AF=1.00;AN=2;DP=155;Dels=0.00;HRun=1;HaplotypeScore=6.38;MQ=3.29;MQ0=153;OQ=51.25;QD=0.33;SB=-10.00	GT:AD:DP:GL:GQ	1/1:89,66:2:-8.53,-0.60,-0.00:6.02
-chr1	2601859	.	G	A	39.02	DPFilter;HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DP=164;Dels=0.00;HRun=0;HaplotypeScore=20.82;MQ=4.64;MQ0=146;QD=0.24;SB=-10.00	GT:AD:DP:GL:GQ	1/1:150,13:2:-7.31,-0.60,-0.00:6.02
-chr1	2603248	rs11486046	A	C	0.95	PASS	AC=2;AF=1.00;AN=2;DB;DP=25;Dels=0.00;HRun=4;HaplotypeScore=1.14;MQ=19.37;MQ0=3;OQ=283.27;QD=11.33;SB=-10.00	GT:AD:DP:GL:GQ	1/1:1,23:9:-31.91,-2.71,-0.00:27.08
-chr1	2603587	.	A	G	31.28	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DP=93;Dels=0.00;HRun=1;HaplotypeScore=24.46;MQ=5.10;MQ0=81;QD=0.34;SB=-10.00	GT:AD:DP:GL:GQ	1/1:74,19:2:-6.54,-0.60,-0.00:6.01
-chr1	2603630	.	C	T	0.04	FDRtranche0.10to1.00	AC=2;AF=1.00;AN=2;DP=61;Dels=0.00;HRun=0;HaplotypeScore=4.88;MQ=7.26;MQ0=55;OQ=82.12;QD=1.35;SB=-10.00	GT:AD:DP:GL:GQ	1/1:51,10:3:-11.70,-0.90,-0.00:9.03
-chr1	2603684	.	A	G	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DP=68;Dels=0.00;HRun=0;HaplotypeScore=23.79;MQ=8.35;MQ0=58;OQ=160.35;QD=2.36;SB=-10.00	GT:AD:DP:GL:GQ	1/1:55,13:6:-19.61,-1.81,-0.00:18.04
-chr1	2603850	.	C	G	10.08	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=225;Dels=0.00;HRun=0;HaplotypeScore=68.31;MQ=3.10;MQ0=215;QD=0.04;SB=-10.00	GT:AD:DP:GL:GQ	0/1:213,10:1:-4.25,-0.30,-0.00:1.76
-chr1	2604182	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=169;Dels=0.00;HRun=1;HaplotypeScore=49.21;MQ=7.86;MQ0=143;OQ=70.78;QD=0.42;SB=-10.00	GT:AD:DP:GL:GQ	0/1:162,7:11:-13.68,-3.31,-27.79:99
-chr1	2604202	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=174;Dels=0.00;HRun=0;HaplotypeScore=66.53;MQ=7.81;MQ0=146;OQ=55.73;QD=0.32;SB=-10.00	GT:AD:DP:GL:GQ	0/1:164,10:11:-12.17,-3.31,-27.45:88.56
-chr1	2604211	.	C	A	34.20	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=202;Dels=0.00;HRun=0;HaplotypeScore=110.16;MQ=8.09;MQ0=168;QD=0.17;SB=-10.00	GT:AD:DP:GL:GQ	0/1:190,11:14:-10.92,-4.22,-40.03:67.04
-chr1	2604257	.	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=175;Dels=0.00;HRun=0;HaplotypeScore=82.11;MQ=12.16;MQ0=114;OQ=80.38;QD=0.46;SB=32.96	GT:AD:DP:GL:GQ	0/1:146,20:31:-22.91,-11.59,-89.29:99
-chr1	2604263	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=168;Dels=0.00;HRun=1;HaplotypeScore=133.02;MQ=12.71;MQ0=105;OQ=191.66;QD=1.14;SB=50.18	GT:AD:DP:GL:GQ	0/1:122,46:33:-32.40,-9.95,-88.01:99
-chr1	2604269	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=146;Dels=0.00;HRun=0;HaplotypeScore=77.37;MQ=13.05;MQ0=90;OQ=192.77;QD=1.32;SB=17.43	GT:AD:DP:GL:GQ	0/1:70,69:33:-34.89,-12.33,-71.96:99
-chr1	2604305	.	T	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=81;Dels=0.00;HRun=0;HaplotypeScore=7.47;MQ=17.34;MQ0=29;OQ=55.74;QD=0.69;SB=74.25	GT:AD:DP:GL:GQ	0/1:58,22:37:-20.01,-11.15,-121.92:88.58
-chr1	2604310	.	G	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=74;Dels=0.00;HRun=0;HaplotypeScore=4.63;MQ=18.11;MQ0=23;OQ=69.18;QD=0.93;SB=74.24	GT:AD:DP:GL:GQ	0/1:55,19:37:-21.34,-11.14,-111.00:99
-chr1	2604358	.	C	T	71.23	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=87;Dels=0.00;HRun=0;HaplotypeScore=145.78;MQ=14.15;MQ0=44;QD=0.82;SB=11.06	GT:AD:DP:GL:GQ	0/1:71,13:12:-14.02,-3.62,-30.75:99
-chr1	2604359	.	C	A	74.64	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=82;Dels=0.00;HRun=0;HaplotypeScore=131.89;MQ=14.13;MQ0=41;QD=0.91;SB=5.02	GT:AD:DP:GL:GQ	0/1:26,56:10:-13.76,-3.01,-18.66:99
-chr1	2604363	.	G	C	180.85	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=86;Dels=0.00;HRun=2;HaplotypeScore=137.79;MQ=13.57;MQ0=46;QD=2.10;SB=2.04	GT:AD:DP:GL:GQ	0/1:29,40:11:-24.68,-3.31,-21.48:99
-chr1	2604377	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=90;Dels=0.00;HRun=0;HaplotypeScore=82.82;MQ=13.39;MQ0=50;OQ=54.76;QD=0.61;SB=-10.00	GT:AD:DP:GL:GQ	0/1:65,25:4:-9.97,-1.21,-3.57:23.65
-chr1	2604397	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=86;Dels=0.00;HRun=1;HaplotypeScore=150.87;MQ=13.17;MQ0=49;OQ=71.12;QD=0.83;SB=-10.00	GT:AD:DP:GL:GQ	0/1:47,38:4:-11.60,-1.21,-3.90:26.92
-chr1	2604403	.	T	C	38.45	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DP=82;Dels=0.00;HRun=2;HaplotypeScore=145.51;MQ=12.80;MQ0=46;QD=0.47;SB=-10.00	GT:AD:DP:GL:GQ	1/1:13,58:3:-10.84,-4.28,-3.54:7.45
-chr1	2604424	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=57;Dels=0.00;HRun=0;HaplotypeScore=48.30;MQ=13.20;MQ0=33;OQ=76.83;QD=1.35;SB=-6.99	GT:AD:DP:GL:GQ	0/1:21,30:6:-12.78,-1.81,-6.73:49.16
-chr1	2604431	.	C	T	25.24	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=46;Dels=0.00;HRun=0;HaplotypeScore=33.49;MQ=13.71;MQ0=25;QD=0.55;SB=-7.01	GT:AD:DP:GL:GQ	0/1:40,3:5:-7.32,-1.51,-9.43:58.07
-chr1	2604444	.	G	C	43.47	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=26;Dels=0.00;HRun=1;HaplotypeScore=38.64;MQ=15.55;MQ0=13;QD=1.67;SB=-10.00	GT:AD:DP:GL:GQ	0/1:8,16:4:-12.26,-4.63,-7.13:24.99
-chr1	2604449	.	G	C	30.45	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=21;Dels=0.10;HRun=4;HaplotypeScore=30.98;MQ=14.63;MQ0=12;QD=1.45;SB=-10.00	GT:AD:DP:GL:GQ	0/1:6,6:4:-11.16,-4.83,-7.63:28
-chr1	2604508	.	G	C	0.07	PASS	AC=2;AF=1.00;AN=2;DP=34;Dels=0.00;HRun=0;HaplotypeScore=11.01;MQ=14.95;MQ0=13;OQ=265.66;QD=7.81;SB=-10.00	GT:AD:DP:GL:GQ	1/1:9,25:7:-30.15,-2.11,-0.00:21.07
-chr1	2604516	.	G	T	0.07	PASS	AC=2;AF=1.00;AN=2;DP=41;Dels=0.00;HRun=1;HaplotypeScore=5.00;MQ=14.42;MQ0=18;OQ=191.90;QD=4.68;SB=-10.00	GT:AD:DP:GL:GQ	1/1:15,26:7:-22.77,-2.11,-0.00:21.05
-chr1	2604535	rs61763522	A	G	0.35	PASS	AC=2;AF=1.00;AN=2;DB;DP=65;Dels=0.00;HRun=1;HaplotypeScore=9.63;MQ=11.76;MQ0=38;OQ=251.64;QD=3.87;SB=-10.00	GT:AD:DP:GL:GQ	1/1:12,53:8:-28.75,-2.41,-0.00:24.07
-chr1	2604555	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=93;Dels=0.00;HRun=1;HaplotypeScore=35.24;MQ=12.18;MQ0=57;OQ=115.73;QD=1.24;SB=14.08	GT:AD:DP:GL:GQ	0/1:66,27:12:-18.47,-3.62,-35.84:99
-chr1	2604572	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=137;Dels=0.00;HRun=3;HaplotypeScore=50.74;MQ=13.39;MQ0=78;OQ=55.27;QD=0.40;SB=20.07	GT:AD:DP:GL:GQ	0/1:127,10:20:-14.84,-6.03,-56.38:88.11
-chr1	2604579	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=138;Dels=0.00;HRun=1;HaplotypeScore=62.98;MQ=13.28;MQ0=75;OQ=144.76;QD=1.05;SB=20.08	GT:AD:DP:GL:GQ	0/1:125,13:18:-23.19,-5.43,-45.19:99
-chr1	2604585	rs61763523	T	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=140;Dels=0.00;HRun=1;HaplotypeScore=70.32;MQ=13.11;MQ0=76;OQ=158.49;QD=1.13;SB=-6.99	GT:AD:DP:GL:GQ	0/1:102,37:9:-21.84,-2.71,-10.97:82.64
-chr1	2604597	.	A	G	110.83	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=149;Dels=0.00;HRun=0;HaplotypeScore=107.90;MQ=13.27;MQ0=78;QD=0.74;SB=8.05	GT:AD:DP:GL:GQ	0/1:135,14:14:-18.58,-4.22,-35.74:99
-chr1	2604601	.	A	C	218.40	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=145;Dels=0.00;HRun=0;HaplotypeScore=111.25;MQ=13.41;MQ0=75;QD=1.51;SB=4.22	GT:AD:DP:GL:GQ	0/1:108,36:15:-33.23,-8.10,-26.51:99
-chr1	2604603	.	T	C	273.40	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=145;Dels=0.00;HRun=2;HaplotypeScore=107.87;MQ=13.23;MQ0=76;QD=1.89;SB=-75.88	GT:AD:DP:GL:GQ	0/1:65,76:14:-34.84,-4.22,-16.55:99
-chr1	2604631	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=169;Dels=0.00;HRun=1;HaplotypeScore=78.83;MQ=15.93;MQ0=66;OQ=130.30;QD=0.77;SB=-43.00	GT:AD:DP:GL:GQ	0/1:129,40:31:-25.65,-9.34,-87.13:99
-chr1	2604640	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=154;Dels=0.00;HRun=0;HaplotypeScore=101.27;MQ=16.99;MQ0=53;OQ=84.42;QD=0.55;SB=-10.00	GT:AD:DP:GL:GQ	0/1:93,61:34:-21.98,-10.25,-116.76:99
-chr1	2604659	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=138;Dels=0.00;HRun=1;HaplotypeScore=114.19;MQ=17.85;MQ0=39;OQ=180.46;QD=1.31;SB=-10.00	GT:AD:DP:GL:GQ	0/1:106,32:34:-31.57,-10.24,-88.52:99
-chr1	2604673	rs7415296	T	C	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=120;Dels=0.00;HRun=1;HaplotypeScore=73.29;MQ=18.57;MQ0=29;OQ=1125.63;QD=9.38;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,107:33:-116.16,-9.94,-0.01:99
-chr1	2604706	rs6673862	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=94;Dels=0.00;HRun=0;HaplotypeScore=39.35;MQ=23.53;MQ0=16;OQ=454.13;QD=4.83;SB=-3.99	GT:AD:DP:GL:GQ	0/1:51,43:41:-61.05,-12.35,-88.54:99
-chr1	2604709	rs6604993	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=95;Dels=0.00;HRun=0;HaplotypeScore=41.02;MQ=25.10;MQ0=15;OQ=512.66;QD=5.40;SB=-34.93	GT:AD:DP:GL:GQ	0/1:48,47:45:-68.11,-13.56,-92.92:99
-chr1	2604721	rs61763524	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=93;Dels=0.00;HRun=0;HaplotypeScore=115.04;MQ=25.76;MQ0=12;OQ=386.36;QD=4.15;SB=-44.44	GT:AD:DP:GL:GQ	0/1:49,44:40:-53.97,-12.05,-114.41:99
-chr1	2604728	rs61763525	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=85;Dels=0.00;HRun=0;HaplotypeScore=150.75;MQ=27.24;MQ0=8;OQ=52.75;QD=0.62;SB=-10.00	GT:AD:DP:GL:GQ	0/1:49,22:37:-19.70,-11.14,-117.15:85.59
-chr1	2604813	rs6687492	A	C	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=93;Dels=0.04;HRun=2;HaplotypeScore=47.11;MQ=23.79;MQ0=20;OQ=1537.32;QD=16.53;SB=-154.02	GT:AD:DP:GL:GQ	1/1:2,87:44:-157.33,-12.95,-0.02:99
-chr1	2604848	.	A	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=55;Dels=0.00;HRun=0;HaplotypeScore=9.77;MQ=17.69;MQ0=30;OQ=71.77;QD=1.30;SB=-10.00	GT:AD:DP:GL:GQ	0/1:37,18:14:-14.68,-4.22,-36.61:99
-chr1	2604864	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=66;Dels=0.00;HRun=1;HaplotypeScore=28.67;MQ=16.02;MQ0=35;OQ=77.33;QD=1.17;SB=-10.00	GT:AD:DP:GL:GQ	0/1:62,4:12:-14.63,-3.61,-28.91:99
-chr1	2604867	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=70;Dels=0.00;HRun=0;HaplotypeScore=23.02;MQ=16.18;MQ0=37;OQ=170.35;QD=2.43;SB=-10.00	GT:AD:DP:GL:GQ	0/1:59,11:15:-24.84,-4.52,-31.52:99
-chr1	2604879	.	A	G	48.78	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=86;Dels=0.00;HRun=0;HaplotypeScore=25.49;MQ=18.59;MQ0=41;QD=0.57;SB=-6.99	GT:AD:DP:GL:GQ	0/1:79,7:20:-14.19,-6.03,-66.66:81.62
-chr1	2604892	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=91;Dels=0.00;HRun=1;HaplotypeScore=62.88;MQ=20.71;MQ0=36;OQ=145.34;QD=1.60;SB=-40.00	GT:AD:DP:GL:GQ	0/1:67,21:27:-25.95,-8.13,-71.88:99
-chr1	2604894	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=93;Dels=0.01;HRun=1;HaplotypeScore=55.68;MQ=20.44;MQ0=36;OQ=138.96;QD=1.49;SB=-41.95	GT:AD:DP:GL:GQ	0/1:67,21:26:-25.01,-7.83,-77.06:99
-chr1	2604912	rs61763528	T	G	20.95	HARD_TO_VALIDATE;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=112;Dels=0.00;HRun=0;HaplotypeScore=50.36;MQ=22.66;MQ0=25;QD=0.19;SB=-10.00	GT:AD:DP:GL:GQ	0/1:76,35:29:-14.11,-8.74,-95.07:53.75
-chr1	2604916	rs61763529	T	G	194.85	HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=113;Dels=0.00;HRun=0;HaplotypeScore=46.31;MQ=24.02;MQ0=23;QD=1.72;SB=-10.00	GT:AD:DP:GL:GQ	0/1:75,37:38:-34.21,-11.44,-107.06:99
-chr1	2604917	rs61763530	C	G	1480.34	HARD_TO_VALIDATE;SnpCluster	AC=2;AF=1.00;AN=2;DB;DP=112;Dels=0.00;HRun=0;HaplotypeScore=47.31;MQ=24.13;MQ0=22;QD=13.22;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,96:38:-168.50,-25.75,-16.88:88.75
-chr1	2604946	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=236;Dels=0.00;HRun=1;HaplotypeScore=63.84;MQ=27.71;MQ0=21;OQ=79.42;QD=0.34;SB=27.56	GT:AD:DP:GL:GQ	0/1:204,31:106:-43.16,-31.93,-335.49:99
-chr1	2604947	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=236;Dels=0.00;HRun=1;HaplotypeScore=57.70;MQ=27.78;MQ0=20;OQ=56.57;QD=0.24;SB=26.25	GT:AD:DP:GL:GQ	0/1:201,34:107:-41.17,-32.23,-378.22:89.40
-chr1	2604959	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=241;Dels=0.00;HRun=1;HaplotypeScore=113.45;MQ=29.01;MQ0=17;OQ=854.86;QD=3.55;SB=-18.43	GT:AD:DP:GL:GQ	0/1:165,75:109:-121.61,-32.84,-284.29:99
-chr1	2604960	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=240;Dels=0.00;HRun=1;HaplotypeScore=123.76;MQ=29.06;MQ0=17;OQ=593.64;QD=2.47;SB=71.18	GT:AD:DP:GL:GQ	0/1:190,50:108:-95.18,-32.53,-286.72:99
-chr1	2604983	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=224;Dels=0.00;HRun=1;HaplotypeScore=495.52;MQ=29.66;MQ0=13;OQ=71.64;QD=0.32;SB=60.44	GT:AD:DP:GL:GQ	0/1:161,61:71:-31.89,-21.44,-242.50:99
-chr1	2604984	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=225;Dels=0.00;HRun=1;HaplotypeScore=666.90;MQ=29.67;MQ0=14;OQ=53.59;QD=0.24;SB=51.85	GT:AD:DP:GL:GQ	0/1:162,59:73:-33.13,-24.49,-250.82:86.43
-chr1	2604994	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=301;Dels=0.00;HRun=1;HaplotypeScore=445.50;MQ=27.33;MQ0=32;OQ=911.93;QD=3.03;SB=-289.52	GT:AD:DP:GL:GQ	0/1:244,47:103:-139.58,-45.10,-310.97:99
-chr1	2605000	.	A	G	39.90	DPFilter;HARD_TO_VALIDATE;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=313;Dels=0.00;HRun=0;HaplotypeScore=296.02;MQ=26.42;MQ0=37;QD=0.13;SB=95.30	GT:AD:DP:GL:GQ	0/1:236,73:110:-42.96,-35.69,-387.52:72.73
-chr1	2605008	.	C	A	80.14	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=308;Dels=0.00;HRun=1;HaplotypeScore=230.13;MQ=26.37;MQ0=45;QD=0.26;SB=104.26	GT:AD:DP:GL:GQ	0/1:278,18:127:-64.22,-52.92,-396.67:99
-chr1	2605010	.	C	A	77.92	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=309;Dels=0.00;HRun=1;HaplotypeScore=334.39;MQ=26.26;MQ0=46;QD=0.25;SB=101.18	GT:AD:DP:GL:GQ	0/1:276,18:125:-51.79,-40.71,-371.85:99
-chr1	2605026	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=292;Dels=0.00;HRun=0;HaplotypeScore=503.51;MQ=24.87;MQ0=63;OQ=127.24;QD=0.44;SB=-33.91	GT:AD:DP:GL:GQ	0/1:107,181:82:-40.71,-24.70,-242.51:99
-chr1	2605040	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=333;Dels=0.00;HRun=0;HaplotypeScore=585.35;MQ=23.26;MQ0=69;OQ=164.03;QD=0.49;SB=60.04	GT:AD:DP:GL:GQ	0/1:234,98:87:-48.89,-29.20,-293.13:99
-chr1	2605055	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=394;Dels=0.00;HRun=0;HaplotypeScore=493.35;MQ=22.62;MQ0=80;OQ=367.10;QD=0.93;SB=90.44	GT:AD:DP:GL:GQ	0/1:300,89:126:-77.94,-37.95,-375.51:99
-chr1	2605064	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=394;Dels=0.00;HRun=1;HaplotypeScore=562.83;MQ=22.35;MQ0=77;OQ=111.09;QD=0.28;SB=241.07	GT:AD:DP:GL:GQ	0/1:342,17:127:-65.55,-51.15,-483.41:99
-chr1	2605074	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=367;Dels=0.02;HRun=1;HaplotypeScore=550.64;MQ=22.20;MQ0=72;OQ=1826.16;QD=4.98;SB=11.30	GT:AD:DP:GL:GQ	0/1:140,136:125:-251.01,-65.11,-307.30:99
-chr1	2605078	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=360;Dels=0.00;HRun=1;HaplotypeScore=645.39;MQ=22.69;MQ0=67;OQ=145.82;QD=0.41;SB=80.26	GT:AD:DP:GL:GQ	0/1:281,25:108:-50.40,-32.54,-347.91:99
-chr1	2605087	rs9442451	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=302;Dels=0.00;HRun=1;HaplotypeScore=515.01;MQ=23.21;MQ0=61;OQ=1550.28;QD=5.13;SB=0.26	GT:AD:DP:GL:GQ	0/1:127,172:83:-183.36,-25.04,-152.30:99
-chr1	2605095	rs7411254	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=295;Dels=0.00;HRun=0;HaplotypeScore=864.08;MQ=22.89;MQ0=61;OQ=861.12;QD=2.92;SB=-439.01	GT:AD:DP:GL:GQ	0/1:231,62:100:-119.53,-30.13,-233.73:99
-chr1	2605099	rs61763531	T	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=268;Dels=0.03;HRun=1;HaplotypeScore=671.07;MQ=23.34;MQ0=56;OQ=331.54;QD=1.24;SB=62.18	GT:AD:DP:GL:GQ	0/1:101,158:88:-62.36,-25.93,-228.22:99
-chr1	2605116	rs61763532	G	T	727.77	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=280;Dels=0.00;HRun=0;HaplotypeScore=340.71;MQ=26.06;MQ0=38;QD=2.60;SB=80.25	GT:AD:DP:GL:GQ	0/1:98,160:86:-122.32,-46.26,-192.83:99
-chr1	2605118	.	G	A	130.78	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=290;Dels=0.00;HRun=2;HaplotypeScore=353.34;MQ=26.07;MQ0=39;QD=0.45;SB=68.17	GT:AD:DP:GL:GQ	0/1:266,20:82:-41.07,-24.71,-249.92:99
-chr1	2605120	.	A	G	143.56	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=286;Dels=0.00;HRun=0;HaplotypeScore=391.53;MQ=26.07;MQ0=38;QD=0.50;SB=44.57	GT:AD:DP:GL:GQ	0/1:230,56:92:-45.37,-27.73,-305.63:99
-chr1	2605121	.	C	A	843.63	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=283;Dels=0.00;HRun=2;HaplotypeScore=384.52;MQ=26.08;MQ0=38;QD=2.98;SB=80.20	GT:AD:DP:GL:GQ	0/1:195,69:112:-123.96,-36.31,-258.00:99
-chr1	2605143	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=261;Dels=0.00;HRun=0;HaplotypeScore=165.80;MQ=26.36;MQ0=57;OQ=2061.60;QD=7.90;SB=82.92	GT:AD:DP:GL:GQ	0/1:135,121:131:-251.29,-41.84,-249.16:99
-chr1	2605152	.	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=276;Dels=0.00;HRun=0;HaplotypeScore=166.41;MQ=25.95;MQ0=68;OQ=1747.63;QD=6.33;SB=68.24	GT:AD:DP:GL:GQ	0/1:180,94:128:-216.61,-38.56,-254.69:99
-chr1	2605164	rs56278231	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=278;Dels=0.00;HRun=0;HaplotypeScore=99.67;MQ=26.36;MQ0=65;OQ=2109.83;QD=7.59;SB=62.23	GT:AD:DP:GL:GQ	0/1:140,134:129:-253.13,-38.87,-210.06:99
-chr1	2605176	rs61763533	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=283;Dels=0.00;HRun=4;HaplotypeScore=192.72;MQ=26.37;MQ0=64;OQ=2285.97;QD=8.08;SB=50.20	GT:AD:DP:GL:GQ	0/1:155,126:135:-272.62,-40.74,-266.81:99
-chr1	2605179	rs7415101	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=293;Dels=0.00;HRun=0;HaplotypeScore=210.05;MQ=26.19;MQ0=65;OQ=1158.68;QD=3.95;SB=-384.91	GT:AD:DP:GL:GQ	0/1:236,57:97:-148.38,-29.23,-220.79:99
-chr1	2605208	.	C	A	465.30	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=269;Dels=0.00;HRun=1;HaplotypeScore=227.21;MQ=26.15;MQ0=63;QD=1.73;SB=32.07	GT:AD:DP:GL:GQ	0/1:153,116:69:-70.60,-20.78,-175.32:99
-chr1	2605210	.	C	A	482.33	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=266;Dels=0.00;HRun=1;HaplotypeScore=189.40;MQ=26.42;MQ0=62;QD=1.81;SB=32.08	GT:AD:DP:GL:GQ	0/1:149,115:67:-71.70,-20.18,-161.20:99
-chr1	2605214	rs61082664	T	C	967.30	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=276;Dels=0.00;HRun=2;HaplotypeScore=127.28;MQ=27.64;MQ0=60;QD=3.50;SB=23.10	GT:AD:DP:GL:GQ	0/1:97,178:76:-122.91,-22.90,-161.42:99
-chr1	2605243	.	G	T	751.64	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=305;Dels=0.00;HRun=1;HaplotypeScore=253.27;MQ=31.30;MQ0=36;QD=2.46;SB=71.20	GT:AD:DP:GL:GQ	0/1:173,132:102:-109.18,-30.73,-247.59:99
-chr1	2605244	rs28455054	T	C	853.34	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=304;Dels=0.00;HRun=0;HaplotypeScore=224.13;MQ=31.61;MQ0=34;QD=2.81;SB=-69.58	GT:AD:DP:GL:GQ	0/1:99,183:104:-137.17,-48.55,-265.91:99
-chr1	2605247	.	C	T	78.33	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=307;Dels=0.00;HRun=0;HaplotypeScore=241.73;MQ=32.15;MQ0=30;QD=0.26;SB=92.28	GT:AD:DP:GL:GQ	0/1:261,44:108:-43.66,-32.54,-342.18:99
-chr1	2605252	.	C	A	302.63	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=316;Dels=0.00;HRun=1;HaplotypeScore=325.23;MQ=32.85;MQ0=33;QD=0.96;SB=113.24	GT:AD:DP:GL:GQ	0/1:197,119:109:-66.39,-32.84,-311.74:99
-chr1	2605255	rs55876897	A	C	449.77	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=317;Dels=0.00;HRun=3;HaplotypeScore=260.93;MQ=33.01;MQ0=35;QD=1.42;SB=-150.70	GT:AD:DP:GL:GQ	0/1:239,77:117:-83.21,-34.95,-326.08:99
-chr1	2605259	rs56999649	T	G	716.83	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=300;Dels=0.00;HRun=1;HaplotypeScore=227.19;MQ=34.47;MQ0=29;QD=2.39;SB=-184.23	GT:AD:DP:GL:GQ	0/1:116,182:121:-111.42,-36.45,-316.52:99
-chr1	2605264	rs4648676	C	T	210.17	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=316;Dels=0.00;HRun=0;HaplotypeScore=557.56;MQ=35.06;MQ0=25;QD=0.67;SB=-21.82	GT:AD:DP:GL:GQ	0/1:289,24:136:-67.74,-43.44,-416.85:99
-chr1	2605334	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=408;Dels=0.00;HRun=4;HaplotypeScore=186.79;MQ=36.75;MQ0=7;OQ=1485.59;QD=3.64;SB=-538.59	GT:AD:DP:GL:GQ	0/1:275,118:294:-243.85,-92.01,-1014.23:99
-chr1	2605341	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=415;Dels=0.00;HRun=0;HaplotypeScore=229.92;MQ=36.33;MQ0=7;OQ=215.75;QD=0.52;SB=102.02	GT:AD:DP:GL:GQ	0/1:365,48:297:-114.34,-89.49,-957.91:99
-chr1	2605353	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=430;Dels=0.00;HRun=0;HaplotypeScore=200.04;MQ=35.29;MQ0=7;OQ=112.93;QD=0.26;SB=60.60	GT:AD:DP:GL:GQ	0/1:389,39:313:-108.94,-94.36,-1191.77:99
-chr1	2605354	rs4648678	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=435;Dels=0.00;HRun=0;HaplotypeScore=203.33;MQ=35.33;MQ0=8;OQ=1038.03;QD=2.39;SB=-273.03	GT:AD:DP:GL:GQ	0/1:373,60:307:-199.57,-92.49,-955.77:99
-chr1	2605374	rs61763535	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=451;Dels=0.00;HRun=4;HaplotypeScore=174.52;MQ=33.98;MQ0=15;OQ=1772.73;QD=3.93;SB=-155.11	GT:AD:DP:GL:GQ	0/1:257,185:286:-266.74,-86.18,-803.52:99
-chr1	2605416	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=641;Dels=0.00;HRun=0;HaplotypeScore=116.73;MQ=29.52;MQ0=38;OQ=101.05;QD=0.16;SB=-26.09	GT:AD:DP:GL:GQ	0/1:592,49:383:-128.76,-115.37,-1229.08:99
-chr1	2605473	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=505;Dels=0.00;HRun=1;HaplotypeScore=72.40;MQ=31.01;MQ0=19;OQ=529.76;QD=1.05;SB=-238.32	GT:AD:DP:GL:GQ	0/1:450,54:383:-171.63,-115.37,-1165.16:99
-chr1	2605495	rs56293461	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=486;Dels=0.00;HRun=0;HaplotypeScore=95.08;MQ=32.56;MQ0=15;OQ=821.52;QD=1.69;SB=-409.31	GT:AD:DP:GL:GQ	0/1:403,80:369:-196.58,-111.15,-1127.43:99
-chr1	2605529	rs28651038	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=428;Dels=0.00;HRun=0;HaplotypeScore=82.79;MQ=34.53;MQ0=16;OQ=2602.34;QD=6.08;SB=-653.43	GT:AD:DP:GL:GQ	0/1:288,123:298:-353.40,-89.88,-659.17:99
-chr1	2605657	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=389;Dels=0.01;HRun=3;HaplotypeScore=175.38;MQ=30.03;MQ0=70;OQ=99.64;QD=0.26;SB=74.25	GT:AD:DP:GL:GQ	0/1:326,61:215:-77.75,-64.51,-660.65:99
-chr1	2605686	.	A	C	325.50	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=398;Dels=0.00;HRun=0;HaplotypeScore=501.75;MQ=28.89;MQ0=57;QD=0.82;SB=95.28	GT:AD:DP:GL:GQ	0/1:281,115:207:-98.21,-62.38,-634.44:99
-chr1	2605688	.	T	C	330.54	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=397;Dels=0.00;HRun=2;HaplotypeScore=497.47;MQ=28.92;MQ0=57;QD=0.83;SB=65.64	GT:AD:DP:GL:GQ	0/1:226,152:200:-122.31,-85.97,-661.75:99
-chr1	2605695	rs55827558	C	T	892.89	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=401;Dels=0.00;HRun=0;HaplotypeScore=534.98;MQ=29.24;MQ0=57;QD=2.23;SB=9.18	GT:AD:DP:GL:GQ	0/1:315,49:193:-153.53,-60.96,-575.72:99
-chr1	2605725	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=284;Dels=0.00;HRun=0;HaplotypeScore=360.95;MQ=32.85;MQ0=34;OQ=61.42;QD=0.22;SB=89.31	GT:AD:DP:GL:GQ	0/1:168,111:137:-50.75,-41.32,-529.65:94.25
-chr1	2605754	.	C	T	591.89	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=279;Dels=0.00;HRun=0;HaplotypeScore=467.58;MQ=37.63;MQ0=15;QD=2.12;SB=140.37	GT:AD:DP:GL:GQ	0/1:235,40:127:-100.77,-38.29,-327.93:99
-chr1	2605755	.	G	A	525.10	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=271;Dels=0.00;HRun=0;HaplotypeScore=436.48;MQ=37.79;MQ0=15;QD=1.94;SB=80.56	GT:AD:DP:GL:GQ	0/1:156,112:135:-96.50,-40.71,-357.83:99
-chr1	2605761	rs61763538	C	G	1339.29	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=259;Dels=0.00;HRun=1;HaplotypeScore=254.24;MQ=38.34;MQ0=17;QD=5.17;SB=4.72	GT:AD:DP:GL:GQ	0/1:84,169:121:-173.69,-36.48,-327.29:99
-chr1	2605783	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=297;Dels=0.00;HRun=0;HaplotypeScore=293.73;MQ=35.79;MQ0=20;OQ=562.93;QD=1.90;SB=121.81	GT:AD:DP:GL:GQ	0/1:195,74:123:-135.97,-76.40,-335.89:99
-chr1	2605795	.	G	A	252.45	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=324;Dels=0.00;HRun=0;HaplotypeScore=499.11;MQ=34.45;MQ0=20;QD=0.78;SB=203.66	GT:AD:DP:GL:GQ	0/1:201,116:126:-66.49,-37.96,-390.94:99
-chr1	2605804	.	C	T	66.11	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=356;Dels=0.00;HRun=0;HaplotypeScore=268.83;MQ=34.41;MQ0=22;QD=0.19;SB=-31.15	GT:AD:DP:GL:GQ	0/1:312,39:152:-58.55,-48.66,-460.06:98.95
-chr1	2605805	.	G	A	2340.79	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=356;Dels=0.00;HRun=0;HaplotypeScore=224.04;MQ=34.36;MQ0=23;QD=6.58;SB=164.74	GT:AD:DP:GL:GQ	0/1:199,157:186:-293.46,-56.10,-343.74:99
-chr1	2605831	.	C	T	1118.55	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=295;Dels=0.00;HRun=0;HaplotypeScore=238.92;MQ=35.23;MQ0=23;QD=3.79;SB=174.98	GT:AD:DP:GL:GQ	0/1:220,69:156:-162.17,-47.03,-376.03:99
-chr1	2605834	.	C	T	954.45	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=279;Dels=0.00;HRun=0;HaplotypeScore=236.05;MQ=35.80;MQ0=20;QD=3.42;SB=200.51	GT:AD:DP:GL:GQ	0/1:218,59:162:-147.54,-48.81,-432.29:99
-chr1	2605836	.	T	G	306.78	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=263;Dels=0.00;HRun=0;HaplotypeScore=206.04;MQ=36.89;MQ0=20;QD=1.17;SB=188.58	GT:AD:DP:GL:GQ	0/1:205,52:142:-88.13,-54.17,-440.06:99
-chr1	2605841	.	A	G	545.99	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=232;Dels=0.00;HRun=1;HaplotypeScore=155.67;MQ=38.58;MQ0=20;QD=2.35;SB=182.62	GT:AD:DP:GL:GQ	0/1:160,70:131:-97.35,-39.47,-411.37:99
-chr1	2605874	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=232;Dels=0.00;HRun=0;HaplotypeScore=124.99;MQ=42.37;MQ0=11;OQ=512.21;QD=2.21;SB=-14.46	GT:AD:DP:GL:GQ	0/1:155,74:147:-102.43,-47.93,-470.53:99
-chr1	2605886	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=201;Dels=0.00;HRun=0;HaplotypeScore=108.30;MQ=44.38;MQ0=8;OQ=363.46;QD=1.81;SB=149.68	GT:AD:DP:GL:GQ	0/1:128,71:139:-81.51,-41.88,-451.45:99
-chr1	2605893	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=197;Dels=0.00;HRun=0;HaplotypeScore=120.52;MQ=42.83;MQ0=17;OQ=327.45;QD=1.66;SB=185.60	GT:AD:DP:GL:GQ	0/1:128,68:129:-77.12,-41.09,-417.50:99
-chr1	2605899	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=204;Dels=0.00;HRun=1;HaplotypeScore=109.97;MQ=40.67;MQ0=24;OQ=225.12;QD=1.10;SB=176.57	GT:AD:DP:GL:GQ	0/1:183,21:132:-65.55,-39.76,-408.38:99
-chr1	2605937	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=199;Dels=0.00;HRun=2;HaplotypeScore=54.75;MQ=35.12;MQ0=33;OQ=125.52;QD=0.63;SB=203.69	GT:AD:DP:GL:GQ	0/1:151,48:110:-48.99,-33.15,-378.43:99
-chr1	2605949	rs55869659	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=295;Dels=0.00;HRun=1;HaplotypeScore=266.34;MQ=30.03;MQ0=43;OQ=1589.71;QD=5.39;SB=-453.79	GT:AD:DP:GL:GQ	0/1:231,64:135:-202.93,-40.67,-294.60:99
-chr1	2605976	rs6683769	G	C	6974.39	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=2;AF=1.00;AN=2;DB;DP=343;Dels=0.02;HRun=3;HaplotypeScore=423.51;MQ=29.44;MQ0=37;QD=20.33;SB=-2874.56	GT:AD:DP:GL:GQ	1/1:19,284:159:-696.44,-51.43,-8.07:99
-chr1	2605977	rs6661848	C	T	1027.05	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=358;Dels=0.00;HRun=0;HaplotypeScore=456.32;MQ=29.31;MQ0=37;QD=2.87;SB=-210.09	GT:AD:DP:GL:GQ	0/1:307,50:125:-143.65,-37.67,-316.41:99
-chr1	2605979	.	C	A	1028.24	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=357;Dels=0.00;HRun=1;HaplotypeScore=354.37;MQ=29.31;MQ0=37;QD=2.88;SB=152.21	GT:AD:DP:GL:GQ	0/1:297,56:154:-152.50,-46.39,-400.06:99
-chr1	2605985	.	A	G	302.88	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=344;Dels=0.00;HRun=1;HaplotypeScore=327.75;MQ=29.96;MQ0=33;QD=0.88;SB=170.59	GT:AD:DP:GL:GQ	0/1:269,70:128:-72.14,-38.56,-425.79:99
-chr1	2606004	.	C	T	951.09	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=290;Dels=0.00;HRun=0;HaplotypeScore=672.95;MQ=32.63;MQ0=23;QD=3.28;SB=87.89	GT:AD:DP:GL:GQ	0/1:220,66:128:-136.98,-38.59,-302.88:99
-chr1	2606005	rs6683777	G	A	1342.36	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=287;Dels=0.00;HRun=0;HaplotypeScore=631.13;MQ=33.21;MQ0=21;QD=4.68;SB=-76.00	GT:AD:DP:GL:GQ	0/1:85,177:126:-230.50,-92.98,-257.82:99
-chr1	2606006	rs57008511	G	T	1549.99	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=289;Dels=0.00;HRun=0;HaplotypeScore=644.99;MQ=33.16;MQ0=21;QD=5.36;SB=-385.70	GT:AD:DP:GL:GQ	0/1:228,60:127:-196.55,-38.27,-243.78:99
-chr1	2606009	.	A	T	459	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=281;Dels=0.00;HRun=0;HaplotypeScore=430.52;MQ=33.69;MQ0=19;QD=1.63;SB=105.62	GT:AD:DP:GL:GQ	0/1:113,66:123:-152.84,-103.65,-371.87:99
-chr1	2606031	.	C	G	597.38	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=222;Dels=0.00;HRun=1;HaplotypeScore=164.77;MQ=37.58;MQ0=8;QD=2.69;SB=139.07	GT:AD:DP:GL:GQ	0/1:114,51:127:-143.77,-80.75,-412.83:99
-chr1	2606038	.	C	A	277.03	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=217;Dels=0.00;HRun=0;HaplotypeScore=107.00;MQ=38.94;MQ0=8;QD=1.28;SB=120.78	GT:AD:DP:GL:GQ	0/1:160,54:121:-67.44,-36.45,-363.09:99
-chr1	2606041	.	G	T	124.23	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=206;Dels=0.00;HRun=0;HaplotypeScore=125.82;MQ=39.98;MQ0=7;QD=0.60;SB=144.54	GT:AD:DP:GL:GQ	0/1:161,44:113:-49.75,-34.04,-340.70:99
-chr1	2606206	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=315;Dels=0.00;HRun=1;HaplotypeScore=256.44;MQ=28.06;MQ0=39;OQ=155.48;QD=0.49;SB=-29.90	GT:AD:DP:GL:GQ	0/1:209,63:107:-66.50,-47.67,-397.67:99
-chr1	2606217	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=250;Dels=0.00;HRun=3;HaplotypeScore=224.65;MQ=29.86;MQ0=28;OQ=458.20;QD=1.83;SB=-95.78	GT:AD:DP:GL:GQ	0/1:87,160:81:-76.54,-27.44,-208.99:99
-chr1	2606220	rs36162961	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=249;Dels=0.00;HRun=0;HaplotypeScore=180.31;MQ=29.93;MQ0=27;OQ=201.47;QD=0.81;SB=-7.21	GT:AD:DP:GL:GQ	0/1:213,32:103:-54.47,-31.04,-311.81:99
-chr1	2606247	rs6662065	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=156;Dels=0.00;HRun=0;HaplotypeScore=58.65;MQ=36.60;MQ0=15;OQ=2337.23;QD=14.98;SB=-1097.47	GT:AD:DP:GL:GQ	0/1:41,86:97:-280.18,-43.17,-102.47:99
-chr1	2606279	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=122;Dels=0.00;HRun=1;HaplotypeScore=25.92;MQ=42.76;MQ0=2;OQ=312.76;QD=2.56;SB=-74.63	GT:AD:DP:GL:GQ	0/1:94,28:104:-65.90,-31.34,-343.27:99
-chr1	2606294	rs28562476	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=129;Dels=0.00;HRun=0;HaplotypeScore=45.48;MQ=41.64;MQ0=3;OQ=158.71;QD=1.23;SB=-91.27	GT:AD:DP:GL:GQ	0/1:99,30:98:-48.69,-29.54,-326.61:99
-chr1	2606300	rs6662172	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=148;Dels=0.00;HRun=1;HaplotypeScore=45.57;MQ=40.35;MQ0=4;OQ=2445.81;QD=16.53;SB=-1064.82	GT:AD:DP:GL:GQ	0/1:63,84:112:-281.60,-33.73,-119.13:99
-chr1	2606379	rs28410393	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=122;Dels=0.00;HRun=0;HaplotypeScore=27.63;MQ=39.78;MQ0=6;OQ=368.46;QD=3.02;SB=6.71	GT:AD:DP:GL:GQ	0/1:95,26:92:-67.86,-27.73,-327.77:99
-chr1	2606380	rs28520729	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=119;Dels=0.00;HRun=0;HaplotypeScore=27.50;MQ=39.82;MQ0=6;OQ=559.99;QD=4.71;SB=-194.85	GT:AD:DP:GL:GQ	0/1:94,25:96:-88.22,-28.94,-322.33:99
-chr1	2606465	rs28436923	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=147;Dels=0.00;HRun=0;HaplotypeScore=131.13;MQ=40.98;MQ0=13;OQ=2035.71;QD=13.85;SB=-905.49	GT:AD:DP:GL:GQ	0/1:80,64:81:-231.26,-24.41,-73.56:99
-chr1	2606518	.	T	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=186;Dels=0.00;HRun=0;HaplotypeScore=218.01;MQ=25.24;MQ0=20;OQ=216.97;QD=1.17;SB=68.19	GT:AD:DP:GL:GQ	0/1:119,56:69:-45.78,-20.79,-195.94:99
-chr1	2606520	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=182;Dels=0.01;HRun=1;HaplotypeScore=197.55;MQ=24.90;MQ0=18;OQ=425.87;QD=2.34;SB=7.72	GT:AD:DP:GL:GQ	0/1:98,71:68:-66.40,-20.53,-203.96:99
-chr1	2606555	rs55641610	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=142;Dels=0.00;HRun=0;HaplotypeScore=86.83;MQ=22.44;MQ0=15;OQ=611.31;QD=4.31;SB=-217.67	GT:AD:DP:GL:GQ	0/1:66,72:64:-83.70,-19.29,-186.04:99
-chr1	2606567	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=132;Dels=0.00;HRun=1;HaplotypeScore=115.34;MQ=22.30;MQ0=19;OQ=114.64;QD=0.87;SB=-3.31	GT:AD:DP:GL:GQ	0/1:113,14:59:-32.52,-17.77,-180.72:99
-chr1	2606594	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=120;Dels=0.00;HRun=0;HaplotypeScore=41.70;MQ=23.56;MQ0=16;OQ=75.03;QD=0.63;SB=28.48	GT:AD:DP:GL:GQ	0/1:83,36:66:-30.68,-19.89,-255.45:99
-chr1	2606643	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=112;Dels=0.00;HRun=0;HaplotypeScore=21.80;MQ=30.64;MQ0=12;OQ=1721.23;QD=15.37;SB=-793.00	GT:AD:DP:GL:GQ	0/1:46,66:82:-200.11,-24.70,-94.60:99
-chr1	2606798	.	C	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=73;Dels=0.00;HRun=0;HaplotypeScore=16.08;MQ=18.33;MQ0=33;OQ=155.22;QD=2.13;SB=-92.26	GT:AD:DP:GL:GQ	0/1:36,34:23:-29.36,-10.56,-75.52:99
-chr1	2607095	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=174;Dels=0.00;HRun=0;HaplotypeScore=115.98;MQ=20.76;MQ0=93;OQ=63.80;QD=0.37;SB=-35.41	GT:AD:DP:GL:GQ	0/1:164,10:54:-25.95,-16.29,-195.04:96.63
-chr1	2607127	rs28555663	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=120;Dels=0.00;HRun=0;HaplotypeScore=71.01;MQ=31.05;MQ0=18;OQ=1628.35;QD=13.57;SB=-397.76	GT:AD:DP:GL:GQ	0/1:27,60:78:-215.41,-49.30,-93.76:99
-chr1	2607162	rs61763542	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=215;Dels=0.00;HRun=1;HaplotypeScore=85.56;MQ=29.70;MQ0=30;OQ=368.13;QD=1.71;SB=-56.56	GT:AD:DP:GL:GQ	0/1:178,35:124:-77.45,-37.35,-360.47:99
-chr1	2607163	.	G	A	13.12	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=217;Dels=0.00;HRun=2;HaplotypeScore=87.56;MQ=29.61;MQ0=31;QD=0.06;SB=-11.83	GT:AD:DP:GL:GQ	0/1:187,28:129:-43.44,-38.86,-425.52:45.74
-chr1	2607204	.	G	C	43.54	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=196;Dels=0.00;HRun=0;HaplotypeScore=43.04;MQ=31.64;MQ0=30;QD=0.22;SB=-29.18	GT:AD:DP:GL:GQ	0/1:170,26:109:-40.50,-32.86,-424.67:76.37
-chr1	2607231	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=145;Dels=0.00;HRun=1;HaplotypeScore=72.77;MQ=31.17;MQ0=24;OQ=125.47;QD=0.87;SB=-42.71	GT:AD:DP:GL:GQ	0/1:125,19:75:-38.43,-22.60,-228.94:99
-chr1	2607242	rs61763545	G	T	46.85	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DB;DP=118;Dels=0.00;HRun=0;HaplotypeScore=36.90;MQ=31.04;MQ0=29;QD=0.40;SB=43.89	GT:AD:DP:GL:GQ	0/1:84,30:54:-24.25,-16.28,-154.98:79.69
-chr1	2607298	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=148;Dels=0.00;HRun=0;HaplotypeScore=68.12;MQ=14.41;MQ0=82;OQ=66.90;QD=0.45;SB=20.86	GT:AD:DP:GL:GQ	0/1:129,10:21:-19.87,-9.89,-58.18:99
-chr1	2607355	rs61765818	C	T	12.91	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DB;DP=118;Dels=0.00;HRun=0;HaplotypeScore=56.37;MQ=16.61;MQ0=62;QD=0.11;SB=29.06	GT:AD:DP:GL:GQ	0/1:90,27:23:-11.49,-6.94,-61.93:45.51
-chr1	2607366	.	A	G	13.05	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=108;Dels=0.00;HRun=2;HaplotypeScore=34.50;MQ=17.10;MQ0=55;QD=0.12;SB=29.12	GT:AD:DP:GL:GQ	0/1:102,6:22:-11.19,-6.63,-75.23:45.67
-chr1	2607368	rs61763546	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=106;Dels=0.00;HRun=0;HaplotypeScore=35.70;MQ=17.26;MQ0=53;OQ=303.93;QD=2.87;SB=-146.92	GT:AD:DP:GL:GQ	0/1:46,59:26:-41.51,-7.84,-47.60:99
-chr1	2607409	.	G	A	15.60	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=65;Dels=0.00;HRun=0;HaplotypeScore=56.89;MQ=28.46;MQ0=6;QD=0.24;SB=38.64	GT:AD:DP:GL:GQ	0/1:41,24:37:-15.99,-11.15,-106.07:48.31
-chr1	2607422	rs56133135	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=3;HaplotypeScore=19.37;MQ=32.69;MQ0=0;OQ=693.38;QD=12.61;SB=2.03	GT:AD:DP:GL:GQ	0/1:26,28:39:-84.38,-11.76,-83.37:99
-chr1	2607465	rs61763547	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=84;Dels=0.00;HRun=0;HaplotypeScore=40.98;MQ=25.86;MQ0=35;OQ=388.51;QD=4.63;SB=-36.91	GT:AD:DP:GL:GQ	0/1:60,23:42:-54.79,-12.65,-94.92:99
-chr1	2607520	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=176;Dels=0.00;HRun=1;HaplotypeScore=43.55;MQ=22.90;MQ0=79;OQ=121.23;QD=0.69;SB=8.68	GT:AD:DP:GL:GQ	0/1:158,14:67:-35.59,-20.18,-205.83:99
-chr1	2607562	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=147;Dels=0.00;HRun=0;HaplotypeScore=58.31;MQ=31.97;MQ0=28;OQ=222.37;QD=1.51;SB=-108.77	GT:AD:DP:GL:GQ	0/1:118,16:74:-51.32,-25.80,-191.60:99
-chr1	2607568	rs61763549	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=135;Dels=0.00;HRun=0;HaplotypeScore=80.59;MQ=33.84;MQ0=16;OQ=1066.74;QD=7.90;SB=-480.14	GT:AD:DP:GL:GQ	0/1:64,70:72:-131.67,-21.72,-176.26:99
-chr1	2607579	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=159;Dels=0.00;HRun=1;HaplotypeScore=59.49;MQ=32.83;MQ0=15;OQ=376.87;QD=2.37;SB=-134.64	GT:AD:DP:GL:GQ	0/1:129,30:89:-67.78,-26.81,-244.98:99
-chr1	2607622	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=166;Dels=0.00;HRun=1;HaplotypeScore=74.61;MQ=28.79;MQ0=41;OQ=121.71;QD=0.73;SB=1.49	GT:AD:DP:GL:GQ	0/1:144,22:68:-35.94,-20.49,-206.61:99
-chr1	2607635	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=177;Dels=0.00;HRun=1;HaplotypeScore=30.67;MQ=24.43;MQ0=69;OQ=168.44;QD=0.95;SB=-26.38	GT:AD:DP:GL:GQ	0/1:144,24:48:-34.61,-14.49,-156.01:99
-chr1	2607650	.	G	A	36.08	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=194;Dels=0.00;HRun=1;HaplotypeScore=75.42;MQ=22.15;MQ0=92;QD=0.19;SB=17.06	GT:AD:DP:GL:GQ	0/1:183,11:48:-21.35,-14.46,-155.19:68.92
-chr1	2607670	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=229;Dels=0.00;HRun=0;HaplotypeScore=160.50;MQ=16.74;MQ0=141;OQ=99.29;QD=0.43;SB=62.11	GT:AD:DP:GL:GQ	0/1:219,9:33:-23.18,-9.97,-80.62:99
-chr1	2607674	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=226;Dels=0.00;HRun=0;HaplotypeScore=115.26;MQ=15.31;MQ0=147;OQ=144.37;QD=0.64;SB=59.23	GT:AD:DP:GL:GQ	0/1:144,82:32:-27.37,-9.65,-111.07:99
-chr1	2607705	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=307;Dels=0.00;HRun=0;HaplotypeScore=135.41;MQ=9.50;MQ0=238;OQ=88.23;QD=0.29;SB=44.16	GT:AD:DP:GL:GQ	0/1:293,13:26:-19.94,-7.83,-70.73:99
-chr1	2607732	.	A	G	46.69	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=264;Dels=0.00;HRun=0;HaplotypeScore=160.28;MQ=9.40;MQ0=205;QD=0.18;SB=38.16	GT:AD:DP:GL:GQ	0/1:246,15:21:-14.28,-6.33,-70.03:79.52
-chr1	2607768	.	C	G	49.76	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=164;Dels=0.00;HRun=0;HaplotypeScore=95.94;MQ=10.01;MQ0=124;QD=0.30;SB=-3.98	GT:AD:DP:GL:GQ	0/1:136,25:16:-13.08,-4.82,-52.20:82.60
-chr1	2607891	rs7416366	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=122;Dels=0.00;HRun=0;HaplotypeScore=58.84;MQ=34.41;MQ0=14;OQ=1644.48;QD=13.48;SB=-506.65	GT:AD:DP:GL:GQ	0/1:59,63:73:-189.73,-22.00,-69.36:99
-chr1	2607919	.	C	G	24.55	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=221;Dels=0.00;HRun=0;HaplotypeScore=83.78;MQ=30.54;MQ0=25;QD=0.11;SB=109.84	GT:AD:DP:GL:GQ	0/1:205,16:120:-41.91,-36.17,-462.22:57.38
-chr1	2607925	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=225;Dels=0.00;HRun=1;HaplotypeScore=102.41;MQ=29.59;MQ0=28;OQ=208.07;QD=0.92;SB=12.89	GT:AD:DP:GL:GQ	0/1:171,51:116:-59.04,-34.95,-344.67:99
-chr1	2607990	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=215;Dels=0.00;HRun=0;HaplotypeScore=62.53;MQ=19.75;MQ0=60;OQ=143.02;QD=0.67;SB=-11.93	GT:AD:DP:GL:GQ	0/1:169,45:70:-38.68,-21.10,-211.21:99
-chr1	2608016	rs61763552	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=154;Dels=0.00;HRun=1;HaplotypeScore=33.08;MQ=18.38;MQ0=35;OQ=157.73;QD=1.02;SB=-56.91	GT:AD:DP:GL:GQ	0/1:74,80:55:-35.63,-16.57,-153.82:99
-chr1	2608035	rs60386739	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=141;Dels=0.00;HRun=1;HaplotypeScore=68.10;MQ=20.23;MQ0=19;OQ=139.83;QD=0.99;SB=-34.61	GT:AD:DP:GL:GQ	0/1:123,11:68:-37.75,-20.49,-226.75:99
-chr1	2608187	.	T	A	19.78	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=144;Dels=0.00;HRun=0;HaplotypeScore=100.91;MQ=20.82;MQ0=35;QD=0.14;SB=68.21	GT:AD:DP:GL:GQ	0/1:73,68:45:-18.82,-13.56,-139.70:52.57
-chr1	2608269	rs28464857	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=186;Dels=0.00;HRun=0;HaplotypeScore=134.04;MQ=20.25;MQ0=84;OQ=169.32;QD=0.91;SB=-92.57	GT:AD:DP:GL:GQ	0/1:170,15:57:-37.38,-17.17,-176.94:99
-chr1	2608484	rs28436796	C	G	0.48	PASS	AC=1;AF=0.50;AN=2;DB;DP=89;Dels=0.00;HRun=0;HaplotypeScore=9.24;MQ=47.84;MQ0=1;OQ=487.04;QD=5.47;SB=-196.59	GT:AD:DP:GL:GQ	0/1:66,21:74:-74.31,-22.32,-232.63:99
-chr1	2608664	rs4074927	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=182;Dels=0.01;HRun=1;HaplotypeScore=99.89;MQ=34.06;MQ0=19;OQ=2375.90;QD=13.05;SB=-939.83	GT:AD:DP:GL:GQ	0/1:91,85:111:-274.32,-33.45,-107.97:99
-chr1	2608867	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=118;Dels=0.01;HRun=2;HaplotypeScore=20.49;MQ=45.47;MQ0=7;OQ=974.46;QD=8.26;SB=-210.08	GT:AD:DP:GL:GQ	0/1:62,55:87:-126.99,-26.26,-221.81:99
-chr1	2609068	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=221;Dels=0.00;HRun=3;HaplotypeScore=118.35;MQ=34.13;MQ0=24;OQ=526.94;QD=2.38;SB=137.47	GT:AD:DP:GL:GQ	0/1:93,112:118:-95.11,-39.14,-362.67:99
-chr1	2609088	rs6604995	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=244;Dels=0.00;HRun=1;HaplotypeScore=80.61;MQ=35.58;MQ0=31;OQ=2415.96;QD=9.90;SB=-1183.52	GT:AD:DP:GL:GQ	0/1:168,75:136:-285.85,-40.97,-232.15:99
-chr1	2609117	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=242;Dels=0.00;HRun=0;HaplotypeScore=86.85;MQ=40.05;MQ0=22;OQ=564.86;QD=2.33;SB=136.90	GT:AD:DP:GL:GQ	0/1:188,54:147:-104.06,-44.29,-429.75:99
-chr1	2609119	.	T	A	10.35	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=240;Dels=0.00;HRun=1;HaplotypeScore=66.02;MQ=40.40;MQ0=19;QD=0.04;SB=-13.71	GT:AD:DP:GL:GQ	0/1:216,24:153:-50.36,-46.09,-521.00:42.77
-chr1	2609136	rs6680012	T	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=252;Dels=0.00;HRun=0;HaplotypeScore=138.11;MQ=41.19;MQ0=14;OQ=1288.83;QD=5.11;SB=-20.42	GT:AD:DP:GL:GQ	0/1:111,140:159:-180.06,-47.89,-385.06:99
-chr1	2609225	rs61765683	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=279;Dels=0.00;HRun=0;HaplotypeScore=196.30;MQ=28.44;MQ0=55;OQ=715.74;QD=2.57;SB=-196.88	GT:AD:DP:GL:GQ	0/1:215,53:119:-124.19,-49.34,-290.35:99
-chr1	2609273	rs4648680	A	T	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=189;Dels=0.00;HRun=0;HaplotypeScore=41.61;MQ=19.84;MQ0=34;OQ=2444.19;QD=12.93;SB=-891.61	GT:AD:DP:GL:GQ	1/1:0,186:71:-248.05,-21.40,-0.04:99
-chr1	2609305	rs6672446	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=196;Dels=0.00;HRun=1;HaplotypeScore=44.27;MQ=21.28;MQ0=40;OQ=1443.42;QD=7.36;SB=-313.15	GT:AD:DP:GL:GQ	0/1:121,75:90:-174.74,-27.11,-141.16:99
-chr1	2609332	.	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=191;Dels=0.00;HRun=1;HaplotypeScore=25.23;MQ=24.42;MQ0=31;OQ=1010.88;QD=5.29;SB=-411.33	GT:AD:DP:GL:GQ	0/1:130,60:101:-134.82,-30.45,-224.41:99
-chr1	2609354	rs61765685	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=264;Dels=0.00;HRun=0;HaplotypeScore=43.36;MQ=26.38;MQ0=47;OQ=877.95;QD=3.33;SB=-290.40	GT:AD:DP:GL:GQ	0/1:123,140:122:-127.86,-36.78,-326.56:99
-chr1	2609381	.	C	A	220.25	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=378;Dels=0.00;HRun=0;HaplotypeScore=205.42;MQ=26.54;MQ0=63;QD=0.58;SB=-92.16	GT:AD:DP:GL:GQ	0/1:327,50:132:-65.07,-39.76,-400.14:99
-chr1	2609387	.	C	A	185.57	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=439;Dels=0.00;HRun=0;HaplotypeScore=250.48;MQ=26.77;MQ0=67;QD=0.42;SB=5.95	GT:AD:DP:GL:GQ	0/1:387,52:145:-65.52,-43.68,-445.14:99
-chr1	2609389	.	C	T	92.18	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=450;Dels=0.00;HRun=0;HaplotypeScore=251.37;MQ=26.71;MQ0=67;QD=0.20;SB=175.01	GT:AD:DP:GL:GQ	0/1:391,58:155:-59.19,-46.69,-504.94:99
-chr1	2609452	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=378;Dels=0.00;HRun=2;HaplotypeScore=241.26;MQ=31.94;MQ0=54;OQ=971.37;QD=2.57;SB=-357.67	GT:AD:DP:GL:GQ	0/1:305,73:146:-144.40,-43.98,-395.70:99
-chr1	2609455	rs58318704	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=356;Dels=0.00;HRun=0;HaplotypeScore=220.51;MQ=31.91;MQ0=49;OQ=2158.97;QD=6.06;SB=-1017.43	GT:AD:DP:GL:GQ	0/1:79,219:141:-270.22,-51.04,-310.17:99
-chr1	2609547	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=187;Dels=0.00;HRun=1;HaplotypeScore=66.94;MQ=35.31;MQ0=17;OQ=674.03;QD=3.60;SB=-244.40	GT:AD:DP:GL:GQ	0/1:135,50:133:-110.75,-40.07,-356.06:99
-chr1	2609555	rs28575476	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=171;Dels=0.00;HRun=0;HaplotypeScore=68.51;MQ=35.35;MQ0=12;OQ=1288.35;QD=7.53;SB=-481.51	GT:AD:DP:GL:GQ	0/1:88,78:120:-168.27,-36.15,-252.36:99
-chr1	2609591	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=172;Dels=0.00;HRun=0;HaplotypeScore=34.97;MQ=33.84;MQ0=11;OQ=2484.13;QD=14.44;SB=-938.03	GT:AD:DP:GL:GQ	0/1:84,88:135:-292.43,-40.73,-257.29:99
-chr1	2609644	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=353;Dels=0.00;HRun=1;HaplotypeScore=213.12;MQ=29.19;MQ0=26;OQ=1530.86;QD=4.34;SB=-311.00	GT:AD:DP:GL:GQ	0/1:205,118:177:-209.80,-53.43,-491.62:99
-chr1	2609668	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=375;Dels=0.01;HRun=0;HaplotypeScore=299.53;MQ=28.31;MQ0=38;OQ=119.51;QD=0.32;SB=-39.52	GT:AD:DP:GL:GQ	0/1:330,33:168:-65.89,-50.66,-484.68:99
-chr1	2609669	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=370;Dels=0.01;HRun=3;HaplotypeScore=295.29;MQ=28.20;MQ0=38;OQ=509.10;QD=1.38;SB=-148.65	GT:AD:DP:GL:GQ	0/1:202,146:144:-97.68,-43.48,-474.43:99
-chr1	2609682	.	T	C	10.13	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=358;Dels=0.00;HRun=1;HaplotypeScore=318.76;MQ=28.20;MQ0=43;QD=0.03;SB=29.61	GT:AD:DP:GL:GQ	0/1:328,21:141:-56.49,-52.23,-495.36:42.52
-chr1	2609688	.	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=357;Dels=0.00;HRun=0;HaplotypeScore=304.49;MQ=28.68;MQ0=43;OQ=540.31;QD=1.51;SB=-146.86	GT:AD:DP:GL:GQ	0/1:288,44:135:-97.99,-40.67,-405.76:99
-chr1	2609713	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=325;Dels=0.00;HRun=2;HaplotypeScore=235.46;MQ=29.07;MQ0=50;OQ=183.31;QD=0.56;SB=-70.06	GT:AD:DP:GL:GQ	0/1:293,30:98:-51.18,-29.56,-309.43:99
-chr1	2609764	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=179;Dels=0.00;HRun=1;HaplotypeScore=67.69;MQ=41.15;MQ0=28;OQ=547.70;QD=3.06;SB=-220.32	GT:AD:DP:GL:GQ	0/1:154,22:97:-87.34,-29.29,-296.73:99
-chr1	2609770	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=175;Dels=0.00;HRun=0;HaplotypeScore=51.04;MQ=41.72;MQ0=28;OQ=50.39;QD=0.29;SB=107.80	GT:AD:DP:GL:GQ	0/1:92,83:96:-37.25,-28.93,-332.67:83.23
-chr1	2609843	.	C	T	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=136;Dels=0.00;HRun=0;HaplotypeScore=18.24;MQ=41.49;MQ0=22;OQ=514.69;QD=3.78;SB=-103.96	GT:AD:DP:GL:GQ	0/1:89,47:97:-83.99,-29.23,-261.15:99
-chr1	2609879	rs60995822	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=124;Dels=0.00;HRun=0;HaplotypeScore=53.77;MQ=31.75;MQ0=20;OQ=1688.97;QD=13.62;SB=-590.07	GT:AD:DP:GL:GQ	0/1:21,102:69:-192.97,-20.79,-48.84:99
-chr1	2609938	rs61765691	T	C	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=210;Dels=0.00;HRun=0;HaplotypeScore=78.06;MQ=23.32;MQ0=40;OQ=3717.12;QD=17.70;SB=-1751.06	GT:AD:DP:GL:GQ	1/1:3,206:105:-370.71,-31.64,-0.05:99
-chr1	2610024	rs60041779	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=125;Dels=0.00;HRun=0;HaplotypeScore=93.88;MQ=40.95;MQ0=10;OQ=112.09;QD=0.90;SB=83.51	GT:AD:DP:GL:GQ	0/1:77,47:69:-35.30,-20.81,-248.60:99
-chr1	2610174	rs61765693	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=331;Dels=0.00;HRun=1;HaplotypeScore=45.52;MQ=28.55;MQ0=47;OQ=762.69;QD=2.30;SB=-121.02	GT:AD:DP:GL:GQ	0/1:162,168:127:-117.91,-38.35,-381.81:99
-chr1	2610186	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=354;Dels=0.00;HRun=0;HaplotypeScore=102.42;MQ=26.42;MQ0=47;OQ=1467.29;QD=4.14;SB=-129.66	GT:AD:DP:GL:GQ	0/1:303,49:127:-191.55,-41.54,-284.06:99
-chr1	2610220	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=358;Dels=0.00;HRun=0;HaplotypeScore=158.15;MQ=26.10;MQ0=33;OQ=52.73;QD=0.15;SB=-33.83	GT:AD:DP:GL:GQ	0/1:323,33:128:-47.12,-38.57,-405.99:85.57
-chr1	2610228	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=347;Dels=0.00;HRun=0;HaplotypeScore=258.31;MQ=25.86;MQ0=32;OQ=417.23;QD=1.20;SB=-217.33	GT:AD:DP:GL:GQ	0/1:235,103:129:-86.15,-41.14,-407.87:99
-chr1	2610288	rs61765694	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=240;Dels=0.00;HRun=0;HaplotypeScore=161.76;MQ=34.28;MQ0=24;OQ=460.60;QD=1.92;SB=-235.27	GT:AD:DP:GL:GQ	0/1:119,106:122:-91.58,-42.24,-307.51:99
-chr1	2610304	rs57887432	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=214;Dels=0.00;HRun=1;HaplotypeScore=126.12;MQ=34.24;MQ0=19;OQ=2078.47;QD=9.71;SB=-912.59	GT:AD:DP:GL:GQ	0/1:141,72:106:-243.09,-31.96,-204.85:99
-chr1	2610325	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=155;Dels=0.00;HRun=0;HaplotypeScore=58.60;MQ=38.14;MQ0=8;OQ=610.61;QD=3.94;SB=-307.83	GT:AD:DP:GL:GQ	0/1:117,38:94:-92.67,-28.33,-261.00:99
-chr1	2610342	rs58318302	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=111;Dels=0.00;HRun=0;HaplotypeScore=64.33;MQ=41.99;MQ0=6;OQ=1628.60;QD=14.67;SB=-308.68	GT:AD:DP:GL:GQ	0/1:43,66:83:-191.15,-25.00,-121.94:99
-chr1	2610414	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=331;Dels=0.00;HRun=0;HaplotypeScore=235.51;MQ=30.47;MQ0=22;OQ=935.47;QD=2.83;SB=-429.72	GT:AD:DP:GL:GQ	0/1:275,53:139:-142.25,-45.42,-348.13:99
-chr1	2610415	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=337;Dels=0.00;HRun=1;HaplotypeScore=237.48;MQ=30.55;MQ0=22;OQ=1122.12;QD=3.33;SB=-419.64	GT:AD:DP:GL:GQ	0/1:156,170:150:-188.30,-72.80,-443.59:99
-chr1	2610441	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=398;Dels=0.00;HRun=0;HaplotypeScore=305.07;MQ=30.41;MQ0=29;OQ=523.24;QD=1.31;SB=-254.15	GT:AD:DP:GL:GQ	0/1:145,184:159:-118.96,-63.35,-451.63:99
-chr1	2610473	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=351;Dels=0.00;HRun=1;HaplotypeScore=331.68;MQ=29.41;MQ0=37;OQ=1376.69;QD=3.92;SB=-162.02	GT:AD:DP:GL:GQ	0/1:286,64:127:-179.22,-38.27,-253.78:99
-chr1	2610474	rs28418735	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=350;Dels=0.03;HRun=3;HaplotypeScore=309.89;MQ=29.49;MQ0=38;OQ=65.43;QD=0.19;SB=221.76	GT:AD:DP:GL:GQ	0/1:271,68:132:-49.66,-39.83,-486.19:98.27
-chr1	2610506	.	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=199;Dels=0.00;HRun=0;HaplotypeScore=143.13;MQ=32.96;MQ0=24;OQ=241.48;QD=1.21;SB=-28.90	GT:AD:DP:GL:GQ	0/1:85,107:74:-49.73,-22.29,-227.60:99
-chr1	2610517	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=164;Dels=0.00;HRun=3;HaplotypeScore=142.26;MQ=34.55;MQ0=20;OQ=220.80;QD=1.35;SB=75.68	GT:AD:DP:GL:GQ	0/1:65,82:63:-52.24,-26.88,-202.10:99
-chr1	2610573	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=168;Dels=0.00;HRun=0;HaplotypeScore=104.72;MQ=37.56;MQ0=8;OQ=553.10;QD=3.29;SB=-39.90	GT:AD:DP:GL:GQ	0/1:88,80:80:-82.71,-24.12,-188.70:99
-chr1	2610594	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=122;Dels=0.02;HRun=0;HaplotypeScore=84.91;MQ=43.41;MQ0=3;OQ=1001.55;QD=8.21;SB=-522.00	GT:AD:DP:GL:GQ	0/1:52,66:81:-127.86,-24.42,-216.74:99
-chr1	2610598	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=129;Dels=0.00;HRun=2;HaplotypeScore=59.26;MQ=42.74;MQ0=3;OQ=1239.36;QD=9.61;SB=-593.34	GT:AD:DP:GL:GQ	0/1:51,77:86:-153.17,-25.95,-194.38:99
-chr1	2610632	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=184;Dels=0.00;HRun=0;HaplotypeScore=151.91;MQ=39.51;MQ0=6;OQ=369.19;QD=2.01;SB=-62.83	GT:AD:DP:GL:GQ	0/1:154,30:112:-73.95,-33.75,-316.70:99
-chr1	2610635	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=203;Dels=0.00;HRun=0;HaplotypeScore=139.15;MQ=38.51;MQ0=6;OQ=274.48;QD=1.35;SB=-41.80	GT:AD:DP:GL:GQ	0/1:164,37:123:-67.82,-37.08,-455.22:99
-chr1	2610665	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=215;Dels=0.00;HRun=1;HaplotypeScore=315.73;MQ=36.51;MQ0=11;OQ=1591.77;QD=7.40;SB=-670.77	GT:AD:DP:GL:GQ	0/1:149,65:109:-195.35,-32.89,-252.45:99
-chr1	2610712	rs55957791	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=278;Dels=0.00;HRun=0;HaplotypeScore=331.10;MQ=30.73;MQ0=38;OQ=351.17;QD=1.26;SB=50.69	GT:AD:DP:GL:GQ	0/1:157,116:120:-81.22,-42.82,-389.65:99
-chr1	2610714	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=276;Dels=0.03;HRun=1;HaplotypeScore=276.80;MQ=30.44;MQ0=40;OQ=799.29;QD=2.90;SB=-215.74	GT:AD:DP:GL:GQ	0/1:208,58:112:-116.35,-33.14,-272.42:99
-chr1	2610938	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=175;Dels=0.00;HRun=0;HaplotypeScore=61.08;MQ=40.33;MQ0=9;OQ=2312.34;QD=13.21;SB=-496.11	GT:AD:DP:GL:GQ	0/1:80,95:114:-268.87,-34.35,-152.15:99
-chr1	2610982	rs61765696	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=168;Dels=0.00;HRun=1;HaplotypeScore=77.40;MQ=36.09;MQ0=4;OQ=730.22;QD=4.35;SB=-250.72	GT:AD:DP:GL:GQ	0/1:133,34:93:-104.33,-28.02,-240.35:99
-chr1	2610988	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=177;Dels=0.00;HRun=2;HaplotypeScore=104.66;MQ=37.43;MQ0=4;OQ=180.91;QD=1.02;SB=-14.66	GT:AD:DP:GL:GQ	0/1:124,53:103:-52.42,-31.04,-397.79:99
-chr1	2611005	rs28657620	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=175;Dels=0.00;HRun=0;HaplotypeScore=240.92;MQ=35.09;MQ0=11;OQ=589.04;QD=3.37;SB=-319.71	GT:AD:DP:GL:GQ	0/1:148,26:83:-87.21,-25.02,-177.35:99
-chr1	2611008	rs61765697	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=177;Dels=0.00;HRun=0;HaplotypeScore=268.58;MQ=34.75;MQ0=11;OQ=814.23;QD=4.60;SB=-203.16	GT:AD:DP:GL:GQ	0/1:94,75:81:-109.12,-24.42,-183.44:99
-chr1	2611037	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=212;Dels=0.00;HRun=3;HaplotypeScore=47.75;MQ=33.75;MQ0=25;OQ=310.37;QD=1.46;SB=128.35	GT:AD:DP:GL:GQ	0/1:180,32:105:-65.95,-31.63,-301.79:99
-chr1	2611075	.	C	A	675.15	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=198;Dels=0.00;HRun=0;HaplotypeScore=289.45;MQ=35.67;MQ0=15;QD=3.41;SB=-245.12	GT:AD:DP:GL:GQ	0/1:138,49:92:-105.75,-34.95,-225.78:99
-chr1	2611076	.	C	A	59.41	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=199;Dels=0.00;HRun=0;HaplotypeScore=288.77;MQ=35.79;MQ0=15;QD=0.30;SB=-43.36	GT:AD:DP:GL:GQ	0/1:179,20:91:-36.64,-27.42,-281.03:92.25
-chr1	2611077	.	T	C	1287	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=199;Dels=0.00;HRun=3;HaplotypeScore=272.49;MQ=35.97;MQ0=16;QD=6.47;SB=-518.91	GT:AD:DP:GL:GQ	0/1:56,142:93:-160.01,-28.02,-190.32:99
-chr1	2611149	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=243;Dels=0.00;HRun=0;HaplotypeScore=128.93;MQ=29.89;MQ0=30;OQ=118.35;QD=0.49;SB=-20.53	GT:AD:DP:GL:GQ	0/1:190,53:92:-42.83,-27.72,-276.95:99
-chr1	2611155	rs61765698	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=245;Dels=0.00;HRun=0;HaplotypeScore=130.50;MQ=30.96;MQ0=25;OQ=203.44;QD=0.83;SB=-29.37	GT:AD:DP:GL:GQ	0/1:191,50:97:-52.56,-28.94,-359.64:99
-chr1	2611193	rs61029569	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=154;Dels=0.01;HRun=0;HaplotypeScore=78.67;MQ=38.69;MQ0=8;OQ=1417.86;QD=9.21;SB=-633.08	GT:AD:DP:GL:GQ	0/1:43,100:84:-170.37,-25.30,-121.64:99
-chr1	2611212	rs28774982	C	G	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=125;Dels=0.00;HRun=0;HaplotypeScore=29.20;MQ=42.14;MQ0=3;OQ=3660.18;QD=29.28;SB=-1724.01	GT:AD:DP:GL:GQ	1/1:0,124:85:-365.02,-25.61,-0.03:99
-chr1	2611218	rs28581654	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=132;Dels=0.00;HRun=1;HaplotypeScore=33.13;MQ=42.84;MQ0=2;OQ=1779.64;QD=13.48;SB=-735.33	GT:AD:DP:GL:GQ	0/1:39,85:92:-211.73,-30.48,-139.53:99
-chr1	2611236	rs61765699	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=181;Dels=0.00;HRun=1;HaplotypeScore=137.95;MQ=39.80;MQ0=14;OQ=1598.49;QD=8.83;SB=-821.38	GT:AD:DP:GL:GQ	0/1:99,78:96:-192.06,-28.93,-137.58:99
-chr1	2611310	.	G	C	25	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=214;Dels=0.00;HRun=2;HaplotypeScore=68.15;MQ=29.71;MQ0=28;QD=0.12;SB=77.64	GT:AD:DP:GL:GQ	0/1:182,25:80:-33.47,-27.69,-302.15:57.82
-chr1	2611331	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=170;Dels=0.00;HRun=0;HaplotypeScore=171.01;MQ=28.57;MQ0=19;OQ=169.19;QD=1.00;SB=32.13	GT:AD:DP:GL:GQ	0/1:101,40:47:-34.37,-14.17,-141.57:99
-chr1	2611336	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=160;Dels=0.00;HRun=0;HaplotypeScore=142.89;MQ=27.04;MQ0=20;OQ=617.89;QD=3.86;SB=-201.64	GT:AD:DP:GL:GQ	0/1:32,126:45:-78.63,-13.56,-88.17:99
-chr1	2611359	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=160;Dels=0.00;HRun=2;HaplotypeScore=100.78;MQ=27.44;MQ0=19;OQ=605.72;QD=3.79;SB=-223.68	GT:AD:DP:GL:GQ	0/1:36,124:39:-75.62,-11.76,-86.35:99
-chr1	2611360	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=172;Dels=0.01;HRun=0;HaplotypeScore=100.05;MQ=27.08;MQ0=24;OQ=169.30;QD=0.98;SB=23.10	GT:AD:DP:GL:GQ	0/1:135,36:41:-32.56,-12.35,-112.95:99
-chr1	2611385	.	A	G	25.43	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=202;Dels=0.00;HRun=0;HaplotypeScore=141.90;MQ=28.13;MQ0=36;QD=0.13;SB=77.25	GT:AD:DP:GL:GQ	0/1:184,18:55:-22.41,-16.58,-186.56:58.25
-chr1	2611395	.	C	A	10.87	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=190;Dels=0.00;HRun=1;HaplotypeScore=214.46;MQ=28.47;MQ0=34;QD=0.06;SB=44.16	GT:AD:DP:GL:GQ	0/1:160,27:48:-18.79,-14.46,-145.75:43.33
-chr1	2611409	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=176;Dels=0.00;HRun=0;HaplotypeScore=170.63;MQ=30.96;MQ0=28;OQ=246.71;QD=1.40;SB=-63.23	GT:AD:DP:GL:GQ	0/1:66,90:51:-46.30,-18.34,-146.08:99
-chr1	2611417	.	T	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=179;Dels=0.00;HRun=1;HaplotypeScore=201.92;MQ=31.46;MQ0=25;OQ=276.60;QD=1.55;SB=-61.04	GT:AD:DP:GL:GQ	0/1:50,88:59:-67.59,-36.64,-159.73:99
-chr1	2611440	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=180;Dels=0.00;HRun=0;HaplotypeScore=297.52;MQ=31.70;MQ0=24;OQ=229.57;QD=1.28;SB=65.18	GT:AD:DP:GL:GQ	0/1:152,22:68:-46.74,-20.49,-196.70:99
-chr1	2611441	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=175;Dels=0.00;HRun=4;HaplotypeScore=281.36;MQ=31.83;MQ0=24;OQ=677.61;QD=3.87;SB=-187.78	GT:AD:DP:GL:GQ	0/1:57,116:70:-92.13,-21.09,-155.28:99
-chr1	2611460	.	G	C	143.72	DPFilter;HARD_TO_VALIDATE;Indel	AC=1;AF=0.50;AN=2;DP=209;Dels=0.02;HRun=1;HaplotypeScore=206.53;MQ=28.72;MQ0=29;QD=0.69;SB=95.33	GT:AD:DP:GL:GQ	0/1:169,33:67:-37.89,-20.23,-223.47:99
-chr1	2611462	.	G	C	346.96	DPFilter;HARD_TO_VALIDATE;Indel	AC=1;AF=0.50;AN=2;DP=206;Dels=0.00;HRun=0;HaplotypeScore=159.36;MQ=28.99;MQ0=26;QD=1.68;SB=95.35	GT:AD:DP:GL:GQ	0/1:176,30:73:-60.00,-22.02,-249.89:99
-chr1	2611473	.	C	A	226.87	DPFilter;HARD_TO_VALIDATE;Indel;SnpCluster	AC=1;AF=0.50;AN=2;DP=197;Dels=0.00;HRun=0;HaplotypeScore=716.79;MQ=27.80;MQ0=23;QD=1.15;SB=98.33	GT:AD:DP:GL:GQ	0/1:167,28:68:-46.46,-20.49,-193.68:99
-chr1	2611481	.	A	C	47.15	DPFilter;HARD_TO_VALIDATE;Indel;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=213;Dels=0.00;HRun=3;HaplotypeScore=376.14;MQ=26.76;MQ0=25;QD=0.22;SB=4.29	GT:AD:DP:GL:GQ	0/1:158,51:68:-32.16,-24.16,-211.95:79.99
-chr1	2611482	rs28657015	C	T	493.48	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=216;Dels=0.03;HRun=0;HaplotypeScore=277.76;MQ=26.81;MQ0=24;QD=2.28;SB=-58.33	GT:AD:DP:GL:GQ	0/1:180,23:71:-73.42,-20.79,-178.37:99
-chr1	2611484	.	G	A	123.65	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=217;Dels=0.00;HRun=1;HaplotypeScore=257.24;MQ=26.43;MQ0=26;QD=0.57;SB=52.66	GT:AD:DP:GL:GQ	0/1:181,35:66:-35.53,-19.88,-208.25:99
-chr1	2611506	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=243;Dels=0.00;HRun=1;HaplotypeScore=227.39;MQ=23.92;MQ0=38;OQ=83.72;QD=0.34;SB=1.08	GT:AD:DP:GL:GQ	0/1:205,36:67:-31.84,-20.19,-209.30:99
-chr1	2611529	.	G	C	1369.67	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=185;Dels=0.00;HRun=0;HaplotypeScore=198.19;MQ=24.21;MQ0=25;QD=7.40;SB=-595.38	GT:AD:DP:GL:GQ	0/1:36,136:57:-168.20,-27.95,-90.83:99
-chr1	2611531	.	T	A	49.73	DPFilter;HARD_TO_VALIDATE;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=186;Dels=0.00;HRun=1;HaplotypeScore=167.31;MQ=24.09;MQ0=26;QD=0.27;SB=30.12	GT:AD:DP:GL:GQ	0/1:175,9:48:-26.14,-17.88,-160.86:82.57
-chr1	2611537	.	A	C	10.75	DPFilter;HARD_TO_VALIDATE;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=187;Dels=0.00;HRun=1;HaplotypeScore=150.76;MQ=24.75;MQ0=25;QD=0.06;SB=49.53	GT:AD:DP:GL:GQ	0/1:160,17:47:-21.51,-17.19,-149.44:43.20
-chr1	2611551	.	C	A	34.16	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=166;Dels=0.02;HRun=1;HaplotypeScore=423.66;MQ=25.51;MQ0=20;QD=0.21;SB=47.16	GT:AD:DP:GL:GQ	0/1:139,17:37:-21.33,-14.63,-112.07:67
-chr1	2611559	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=150;Dels=0.01;HRun=3;HaplotypeScore=531.42;MQ=25.48;MQ0=17;OQ=388.67;QD=2.59;SB=-7.62	GT:AD:DP:GL:GQ	0/1:47,82:45:-90.78,-48.63,-105.70:99
-chr1	2611586	.	G	A	21.13	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=158;Dels=0.00;HRun=1;HaplotypeScore=127.50;MQ=28.93;MQ0=18;QD=0.13;SB=47.15	GT:AD:DP:GL:GQ	0/1:123,29:42:-18.05,-12.65,-132.34:53.94
-chr1	2611593	.	C	A	39.57	DPFilter;HARD_TO_VALIDATE;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=138;Dels=0.00;HRun=0;HaplotypeScore=189.22;MQ=30.35;MQ0=16;QD=0.29;SB=47.17	GT:AD:DP:GL:GQ	0/1:123,13:39:-18.99,-11.75,-120.10:72.41
-chr1	2611600	.	T	C	291.60	SnpCluster	AC=1;AF=0.50;AN=2;DP=113;Dels=0.00;HRun=2;HaplotypeScore=197.17;MQ=32.27;MQ0=10;QD=2.58;SB=-146.84	GT:AD:DP:GL:GQ	0/1:38,66:38:-47.43,-14.99,-100.79:99
-chr1	2611602	.	C	G	76.87	SnpCluster	AC=1;AF=0.50;AN=2;DP=113;Dels=0.00;HRun=0;HaplotypeScore=173.17;MQ=32.76;MQ0=9;QD=0.68;SB=-63.17	GT:AD:DP:GL:GQ	0/1:81,31:39:-22.73,-11.76,-142.68:99
-chr1	2611613	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=80;Dels=0.00;HRun=0;HaplotypeScore=122.16;MQ=34.85;MQ0=5;OQ=326.72;QD=4.08;SB=-171.57	GT:AD:DP:GL:GQ	0/1:20,59:33:-49.07,-13.11,-79.40:99
-chr1	2611623	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=104;Dels=0.00;HRun=1;HaplotypeScore=114.07;MQ=31.99;MQ0=3;OQ=59.10;QD=0.57;SB=53.18	GT:AD:DP:GL:GQ	0/1:44,51:42:-30.56,-21.37,-135.55:91.94
-chr1	2611678	.	C	A	64.73	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=143;Dels=0.00;HRun=1;HaplotypeScore=80.70;MQ=27.19;MQ0=13;QD=0.45;SB=-53.00	GT:AD:DP:GL:GQ	0/1:121,21:50:-24.83,-15.07,-143.50:97.56
-chr1	2611679	.	C	T	18.94	DPFilter;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=138;Dels=0.00;HRun=0;HaplotypeScore=77.77;MQ=26.46;MQ0=13;QD=0.14;SB=-28.00	GT:AD:DP:GL:GQ	0/1:130,7:48:-19.64,-14.46,-152.87:51.72
-chr1	2611680	.	C	A	348.12	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=135;Dels=0.00;HRun=0;HaplotypeScore=72.18;MQ=26.57;MQ0=13;QD=2.58;SB=-130.78	GT:AD:DP:GL:GQ	0/1:71,64:46:-51.95,-13.86,-109.26:99
-chr1	2611697	rs28420770	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=92;Dels=0.01;HRun=1;HaplotypeScore=63.25;MQ=30.55;MQ0=12;OQ=549.37;QD=5.97;SB=-271.47	GT:AD:DP:GL:GQ	0/1:70,21:28:-66.35,-8.13,-30.04:99
-chr1	2611699	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=76;Dels=0.00;HRun=0;HaplotypeScore=39.05;MQ=32.12;MQ0=10;OQ=169.31;QD=2.23;SB=14.08	GT:AD:DP:GL:GQ	0/1:20,50:24:-27.45,-7.24,-73.47:99
-chr1	2611710	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=77;Dels=0.00;HRun=0;HaplotypeScore=70.70;MQ=31.94;MQ0=10;OQ=120.36;QD=1.56;SB=14.06	GT:AD:DP:GL:GQ	0/1:29,48:25:-22.85,-7.53,-69.69:99
-chr1	2611716	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=82;Dels=0.00;HRun=0;HaplotypeScore=60.36;MQ=32.04;MQ0=11;OQ=222.09;QD=2.71;SB=-31.85	GT:AD:DP:GL:GQ	0/1:24,55:26:-33.33,-7.83,-79.05:99
-chr1	2611761	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=73;Dels=0.00;HRun=2;HaplotypeScore=77.17;MQ=34.64;MQ0=9;OQ=73.97;QD=1.01;SB=-32.72	GT:AD:DP:GL:GQ	0/1:30,33:31:-23.41,-12.73,-88.75:99
-chr1	2611777	.	A	C	23.19	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=55;Dels=0.00;HRun=0;HaplotypeScore=20.98;MQ=38.72;MQ0=5;QD=0.42;SB=23.10	GT:AD:DP:GL:GQ	0/1:24,30:28:-14.03,-8.43,-89.75:56.01
-chr1	2611805	.	A	G	44.82	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=57;Dels=0.00;HRun=1;HaplotypeScore=14.04;MQ=39.70;MQ0=6;QD=0.79;SB=-36.77	GT:AD:DP:GL:GQ	0/1:29,28:32:-17.41,-9.64,-104.85:77.66
-chr1	2611822	.	C	T	55.46	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=121;Dels=0.00;HRun=0;HaplotypeScore=122.77;MQ=30.12;MQ0=10;QD=0.46;SB=-42.84	GT:AD:DP:GL:GQ	0/1:92,29:48:-23.31,-14.48,-136.72:88.30
-chr1	2611823	.	G	A	42.96	DPFilter;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=123;Dels=0.00;HRun=0;HaplotypeScore=122.08;MQ=30.26;MQ0=10;QD=0.35;SB=5.54	GT:AD:DP:GL:GQ	0/1:91,15:51:-29.64,-22.06,-149.48:75.79
-chr1	2611827	.	C	G	117.16	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=127;Dels=0.00;HRun=1;HaplotypeScore=109.01;MQ=29.94;MQ0=10;QD=0.92;SB=-46.17	GT:AD:DP:GL:GQ	0/1:97,15:52:-50.99,-35.99,-189.94:99
-chr1	2611857	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=244;Dels=0.00;HRun=1;HaplotypeScore=130.70;MQ=25.34;MQ0=25;OQ=261.41;QD=1.07;SB=-55.24	GT:AD:DP:GL:GQ	0/1:221,22:85:-55.03,-25.61,-242.15:99
-chr1	2611880	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=252;Dels=0.00;HRun=0;HaplotypeScore=242.50;MQ=25.49;MQ0=23;OQ=371.36;QD=1.47;SB=-110.03	GT:AD:DP:GL:GQ	0/1:223,22:91:-74.78,-34.36,-326.09:99
-chr1	2611909	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=181;Dels=0.00;HRun=0;HaplotypeScore=117.77;MQ=27.67;MQ0=16;OQ=1593.34;QD=8.80;SB=-695.72	GT:AD:DP:GL:GQ	0/1:25,155:74:-184.91,-22.29,-95.32:99
-chr1	2611913	.	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=162;Dels=0.01;HRun=0;HaplotypeScore=121.10;MQ=28.43;MQ0=16;OQ=688.73;QD=4.25;SB=-310.55	GT:AD:DP:GL:GQ	0/1:24,47:69:-160.80,-88.65,-165.59:99
-chr1	2611940	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=139;Dels=0.00;HRun=1;HaplotypeScore=46.12;MQ=30.62;MQ0=15;OQ=640.18;QD=4.61;SB=-181.43	GT:AD:DP:GL:GQ	0/1:50,89:56:-84.19,-16.88,-155.00:99
-chr1	2611948	.	A	C	23.15	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=138;Dels=0.00;HRun=1;HaplotypeScore=36.39;MQ=28.65;MQ0=12;QD=0.17;SB=47.17	GT:AD:DP:GL:GQ	0/1:116,20:55:-22.17,-16.57,-171.47:55.97
-chr1	2612014	rs28499205	G	C	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=79;Dels=0.00;HRun=1;HaplotypeScore=56.64;MQ=32.76;MQ0=15;OQ=1145.21;QD=14.50;SB=-563.07	GT:AD:DP:GL:GQ	1/1:1,78:27:-118.11,-8.13,-0.01:81.27
-chr1	2612058	rs61765702	C	T	0.03	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DB;DP=180;Dels=0.00;HRun=0;HaplotypeScore=18.96;MQ=27.13;MQ0=31;OQ=323.91;QD=1.80;SB=-155.18	GT:AD:DP:GL:GQ	0/1:143,37:66:-55.56,-19.88,-179.35:99
-chr1	2612062	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=184;Dels=0.00;HRun=0;HaplotypeScore=39.83;MQ=27.44;MQ0=33;OQ=304.96;QD=1.66;SB=-159.14	GT:AD:DP:GL:GQ	0/1:147,37:67:-53.98,-20.20,-229.14:99
-chr1	2612081	rs61765703	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=136;Dels=0.01;HRun=2;HaplotypeScore=85.10;MQ=27.93;MQ0=25;OQ=1205.35;QD=8.86;SB=-216.92	GT:AD:DP:GL:GQ	0/1:19,114:53:-139.78,-15.97,-53.09:99
-chr1	2612085	.	T	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=128;Dels=0.00;HRun=1;HaplotypeScore=63.07;MQ=28.64;MQ0=22;OQ=1108.83;QD=8.66;SB=-225.89	GT:AD:DP:GL:GQ	0/1:16,110:51:-129.53,-15.36,-50.00:99
-chr1	2612107	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=161;Dels=0.00;HRun=1;HaplotypeScore=61.85;MQ=27.81;MQ0=21;OQ=276.90;QD=1.72;SB=-68.50	GT:AD:DP:GL:GQ	0/1:116,39:58:-48.45,-17.48,-165.18:99
-chr1	2612151	rs61765704	A	C	24.50	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DB;DP=129;Dels=0.02;HRun=0;HaplotypeScore=220.24;MQ=28.08;MQ0=15;QD=0.19;SB=6.59	GT:AD:DP:GL:GQ	0/1:44,80:28:-14.16,-8.43,-88.22:57.33
-chr1	2612161	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=149;Dels=0.05;HRun=2;HaplotypeScore=289.32;MQ=26.74;MQ0=14;OQ=154.71;QD=1.04;SB=-60.88	GT:AD:DP:GL:GQ	0/1:35,100:29:-27.20,-8.44,-77.78:99
-chr1	2612175	rs61765705	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=189;Dels=0.00;HRun=1;HaplotypeScore=208.27;MQ=26.09;MQ0=18;OQ=54.71;QD=0.29;SB=-8.07	GT:AD:DP:GL:GQ	0/1:131,51:39:-26.91,-18.15,-132.87:87.54
-chr1	2612187	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=207;Dels=0.00;HRun=1;HaplotypeScore=211.77;MQ=24.98;MQ0=26;OQ=72.89;QD=0.35;SB=45.47	GT:AD:DP:GL:GQ	0/1:143,55:44:-28.75,-18.18,-125.97:99
-chr1	2612211	.	C	A	45.89	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=208;Dels=0.00;HRun=1;HaplotypeScore=262.96;MQ=25.29;MQ0=30;QD=0.22;SB=-5.55	GT:AD:DP:GL:GQ	0/1:190,13:50:-25.52,-17.65,-153.60:78.73
-chr1	2612261	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=101;Dels=0.00;HRun=1;HaplotypeScore=73.22;MQ=36.24;MQ0=2;OQ=156.42;QD=1.55;SB=-48.52	GT:AD:DP:GL:GQ	0/1:66,32:53:-34.90,-15.97,-147.29:99
-chr1	2612283	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=69;Dels=0.01;HRun=4;HaplotypeScore=43.06;MQ=38.47;MQ0=2;OQ=327.02;QD=4.74;SB=-23.62	GT:AD:DP:GL:GQ	0/1:32,34:36:-46.54,-10.55,-82.71:99
-chr1	2612309	.	G	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=51;Dels=0.00;HRun=0;HaplotypeScore=19.73;MQ=36.93;MQ0=0;OQ=479.11;QD=9.39;SB=-112.96	GT:AD:DP:GL:GQ	0/1:16,33:31:-63.92,-12.72,-54.61:99
-chr1	2612321	rs58055515	A	C	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.06;HRun=2;HaplotypeScore=36.08;MQ=38.02;MQ0=0;OQ=654.82;QD=13.64;SB=-115.75	GT:AD:DP:GL:GQ	1/1:1,35:27:-89.55,-24.40,-20.49:39.17
-chr1	2612344	.	C	G	24.81	LowQual	AC=1;AF=0.50;AN=2;DP=52;Dels=0.00;HRun=2;HaplotypeScore=34.46;MQ=40.80;MQ0=2;QD=0.48;SB=-19.81	GT:AD:DP:GL:GQ	0/1:23,28:23:-12.71,-6.94,-79.49:57.63
-chr1	2612349	rs56814247	A	G	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=1;HaplotypeScore=26.66;MQ=40.32;MQ0=2;OQ=741.43;QD=14.54;SB=-345.45	GT:AD:DP:GL:GQ	1/1:6,45:24:-77.75,-7.24,-0.02:72.17
-chr1	2612359	.	A	C	18.09	LowQual	AC=1;AF=0.50;AN=2;DP=54;Dels=0.00;HRun=0;HaplotypeScore=26.16;MQ=43.64;MQ0=3;QD=0.33;SB=-28.97	GT:AD:DP:GL:GQ	0/1:34,20:31:-14.42,-9.34,-99.97:50.86
-chr1	2612360	.	A	C	30.50	LowQual	AC=1;AF=0.50;AN=2;DP=53;Dels=0.00;HRun=3;HaplotypeScore=20.17;MQ=44.05;MQ0=2;QD=0.58;SB=-0.42	GT:AD:DP:GL:GQ	0/1:26,25:28:-14.77,-8.43,-87.24:63.33
-chr1	2612401	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=53;Dels=0.00;HRun=2;HaplotypeScore=42.26;MQ=44.22;MQ0=1;OQ=144.16;QD=2.72;SB=-18.17	GT:AD:DP:GL:GQ	0/1:29,20:34:-31.58,-13.88,-103.42:99
-chr1	2612402	.	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=52;Dels=0.00;HRun=0;HaplotypeScore=41.27;MQ=43.87;MQ0=1;OQ=96.43;QD=1.85;SB=-29.80	GT:AD:DP:GL:GQ	0/1:26,21:30:-21.97,-9.04,-85.20:99
-chr1	2612447	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=49;Dels=0.00;HRun=0;HaplotypeScore=39.94;MQ=46.94;MQ0=0;OQ=81.12;QD=1.66;SB=23.03	GT:AD:DP:GL:GQ	0/1:31,17:32:-23.40,-12.01,-88.55:99
-chr1	2612451	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=47;Dels=0.00;HRun=0;HaplotypeScore=20.86;MQ=47.66;MQ0=0;OQ=53.68;QD=1.14;SB=26.08	GT:AD:DP:GL:GQ	0/1:30,14:32:-18.30,-9.65,-100.77:86.52
-chr1	2612461	.	A	C	44.60	LowQual	AC=1;AF=0.50;AN=2;DP=52;Dels=0.00;HRun=1;HaplotypeScore=34.01;MQ=47.11;MQ0=0;QD=0.86;SB=-23.85	GT:AD:DP:GL:GQ	0/1:42,10:33:-17.68,-9.94,-101.23:77.43
-chr1	2612468	.	C	G	44.05	LowQual	AC=1;AF=0.50;AN=2;DP=58;Dels=0.00;HRun=0;HaplotypeScore=46.41;MQ=45.54;MQ0=0;QD=0.76;SB=-1.30	GT:AD:DP:GL:GQ	0/1:51,7:35:-18.24,-10.55,-129.78:76.89
-chr1	2612500	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=83;Dels=0.00;HRun=0;HaplotypeScore=111.55;MQ=36.58;MQ0=2;OQ=75.18;QD=0.91;SB=-6.47	GT:AD:DP:GL:GQ	0/1:42,40:29:-19.55,-8.75,-75.63:99
-chr1	2612520	.	C	T	19.28	LowQual	AC=1;AF=0.50;AN=2;DP=103;Dels=0.00;HRun=0;HaplotypeScore=133.17;MQ=33.82;MQ0=3;QD=0.19;SB=-16.60	GT:AD:DP:GL:GQ	0/1:87,13:36:-16.06,-10.85,-103.87:52.07
-chr1	2612521	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=102;Dels=0.00;HRun=3;HaplotypeScore=133.17;MQ=33.95;MQ0=3;OQ=122.65;QD=1.20;SB=-13.90	GT:AD:DP:GL:GQ	0/1:59,34:32:-39.02,-23.47,-101.66:99
-chr1	2612546	rs56822453	C	G	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=93;Dels=0.00;HRun=1;HaplotypeScore=145.71;MQ=34.54;MQ0=2;OQ=1448.77;QD=15.58;SB=-452.10	GT:AD:DP:GL:GQ	1/1:7,78:40:-172.07,-31.81,-23.61:81.95
-chr1	2612548	.	A	G	23.46	LowQual	AC=1;AF=0.50;AN=2;DP=96;Dels=0.00;HRun=0;HaplotypeScore=130.25;MQ=34.63;MQ0=2;QD=0.24;SB=-12.60	GT:AD:DP:GL:GQ	0/1:76,19:32:-15.27,-9.65,-107.66:56.27
-chr1	2612572	rs61765712	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=87;Dels=0.00;HRun=0;HaplotypeScore=119.88;MQ=29.64;MQ0=12;OQ=136.28;QD=1.57;SB=-70.93	GT:AD:DP:GL:GQ	0/1:30,56:22:-23.54,-6.63,-51.28:99
-chr1	2612576	.	C	G	19.60	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=104;Dels=0.00;HRun=1;HaplotypeScore=117.65;MQ=28.19;MQ0=14;QD=0.19;SB=-14.55	GT:AD:DP:GL:GQ	0/1:68,14:25:-20.23,-14.99,-84.25:52.39
-chr1	2612600	.	A	C	31.76	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=221;Dels=0.00;HRun=4;HaplotypeScore=156.76;MQ=23.41;MQ0=28;QD=0.14;SB=30.15	GT:AD:DP:GL:GQ	0/1:163,45:61:-27.98,-21.52,-181.64:64.60
-chr1	2612627	.	A	C	39.29	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=243;Dels=0.00;HRun=0;HaplotypeScore=198.32;MQ=23.30;MQ0=41;QD=0.16;SB=-11.41	GT:AD:DP:GL:GQ	0/1:198,41:66:-27.09,-19.88,-204.81:72.12
-chr1	2612682	.	A	C	10.13	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=43;Dels=0.00;HRun=3;HaplotypeScore=52.92;MQ=47.05;MQ0=0;QD=0.24;SB=14.06	GT:AD:DP:GL:GQ	0/1:27,14:23:-11.18,-6.93,-67.83:42.53
-chr1	2612696	.	G	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=61;Dels=0.00;HRun=1;HaplotypeScore=17.87;MQ=44.37;MQ0=2;OQ=127.11;QD=2.08;SB=-25.83	GT:AD:DP:GL:GQ	0/1:32,29:31:-25.34,-9.35,-104.60:99
-chr1	2612737	rs61765713	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=86;Dels=0.00;HRun=1;HaplotypeScore=31.73;MQ=37.37;MQ0=1;OQ=431.17;QD=5.01;SB=-153.88	GT:AD:DP:GL:GQ	0/1:41,45:46:-60.27,-13.87,-108.65:99
-chr1	2612767	.	T	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=81;Dels=0.00;HRun=1;HaplotypeScore=55.42;MQ=39.20;MQ0=1;OQ=525.18;QD=6.48;SB=-145.82	GT:AD:DP:GL:GQ	0/1:30,49:46:-69.66,-13.86,-97.51:99
-chr1	2612773	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=80;Dels=0.00;HRun=1;HaplotypeScore=50.07;MQ=38.87;MQ0=1;OQ=424.50;QD=5.31;SB=-154.37	GT:AD:DP:GL:GQ	0/1:53,27:45:-59.30,-13.57,-131.50:99
-chr1	2612799	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=61;Dels=0.00;HRun=0;HaplotypeScore=27.45;MQ=41.43;MQ0=1;OQ=164.57;QD=2.70;SB=-62.57	GT:AD:DP:GL:GQ	0/1:27,34:35:-30.28,-10.54,-94.10:99
-chr1	2612844	rs55724072	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=94.30;MQ=38.07;MQ0=8;OQ=665.81;QD=9.12;SB=-251.98	GT:AD:DP:GL:GQ	0/1:45,26:28:-81.79,-11.92,-21.81:98.87
-chr1	2612950	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=215;Dels=0.00;HRun=0;HaplotypeScore=255.70;MQ=27.55;MQ0=15;OQ=78.72;QD=0.37;SB=19.51	GT:AD:DP:GL:GQ	0/1:145,61:50:-33.24,-22.08,-169.61:99
-chr1	2612958	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=205;Dels=0.05;HRun=2;HaplotypeScore=345.72;MQ=28.14;MQ0=11;OQ=268.77;QD=1.31;SB=-87.58	GT:AD:DP:GL:GQ	0/1:82,113:44:-43.44,-13.28,-132.37:99
-chr1	2612962	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=206;Dels=0.01;HRun=1;HaplotypeScore=293.73;MQ=28.22;MQ0=11;OQ=53.07;QD=0.26;SB=-7.29	GT:AD:DP:GL:GQ	0/1:160,36:46:-29.48,-20.89,-140.25:85.91
-chr1	2612982	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=165;Dels=0.00;HRun=0;HaplotypeScore=272.98;MQ=28.95;MQ0=11;OQ=81.29;QD=0.49;SB=23.09	GT:AD:DP:GL:GQ	0/1:43,117:27:-19.56,-8.14,-70.61:99
-chr1	2612988	rs28729890	C	G	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=157;Dels=0.00;HRun=1;HaplotypeScore=282.08;MQ=29.13;MQ0=10;OQ=1088.24;QD=6.93;SB=-426.67	GT:AD:DP:GL:GQ	1/1:3,146:27:-116.69,-11.76,-4.28:74.86
-chr1	2613013	.	G	A	31.52	DPFilter;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=131;Dels=0.00;HRun=1;HaplotypeScore=164.33;MQ=32.03;MQ0=7;QD=0.24;SB=26.10	GT:AD:DP:GL:GQ	0/1:117,14:35:-16.98,-10.54,-112.15:64.35
-chr1	2613017	.	T	C	180.98	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=110;Dels=0.00;HRun=0;HaplotypeScore=137.52;MQ=33.34;MQ0=7;QD=1.65;SB=26.11	GT:AD:DP:GL:GQ	0/1:27,81:34:-31.63,-10.24,-97.73:99
-chr1	2613018	rs28484972	G	C	140.73	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=110;Dels=0.00;HRun=0;HaplotypeScore=137.35;MQ=33.34;MQ0=7;QD=1.28;SB=31.01	GT:AD:DP:GL:GQ	0/1:28,44:35:-37.27,-19.91,-118.50:99
-chr1	2613040	rs55713073	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=61.60;MQ=39.34;MQ0=3;OQ=876.14;QD=14.13;SB=-413.05	GT:AD:DP:GL:GQ	0/1:33,24:31:-100.24,-9.35,-30.73:99
-chr1	2613043	.	T	C	38.29	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=49;Dels=0.00;HRun=3;HaplotypeScore=55.65;MQ=43.83;MQ0=2;QD=0.78;SB=29.13	GT:AD:DP:GL:GQ	0/1:25,20:28:-15.55,-8.44,-93.33:71.12
-chr1	2613090	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=123;Dels=0.00;HRun=0;HaplotypeScore=62.85;MQ=32.34;MQ0=20;OQ=113.77;QD=0.92;SB=20.02	GT:AD:DP:GL:GQ	0/1:89,34:35:-25.22,-10.56,-90.70:99
-chr1	2613132	.	T	C	17.83	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=95;Dels=0.00;HRun=0;HaplotypeScore=135.62;MQ=34.15;MQ0=7;QD=0.19;SB=20.93	GT:AD:DP:GL:GQ	0/1:49,17:34:-18.39,-13.34,-109.40:50.59
-chr1	2613155	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=66;Dels=0.00;HRun=0;HaplotypeScore=54.50;MQ=36.94;MQ0=5;OQ=56.13;QD=0.85;SB=-8.31	GT:AD:DP:GL:GQ	0/1:26,40:25:-16.44,-7.54,-66.14:88.97
-chr1	2613166	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=54;Dels=0.04;HRun=0;HaplotypeScore=39.25;MQ=40.07;MQ0=1;OQ=108.06;QD=2.00;SB=-13.35	GT:AD:DP:GL:GQ	0/1:25,27:25:-21.62,-7.53,-86.20:99
-chr1	2613178	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=57;Dels=0.00;HRun=0;HaplotypeScore=39.82;MQ=40.42;MQ0=1;OQ=87.18;QD=1.53;SB=-9.45	GT:AD:DP:GL:GQ	0/1:38,18:28:-20.44,-8.44,-74.35:99
-chr1	2613186	rs28398452	A	T	0.15	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=19.52;MQ=46.06;MQ0=0;OQ=818.22;QD=19.96;SB=-414.28	GT:AD:DP:GL:GQ	1/1:0,40:23:-85.41,-6.93,-0.01:69.21
-chr1	2613234	.	C	G	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DP=43;Dels=0.00;HRun=0;HaplotypeScore=40.12;MQ=46.29;MQ0=1;OQ=1357.25;QD=31.56;SB=-584.52	GT:AD:DP:GL:GQ	1/1:1,41:32:-139.32,-9.64,-0.01:96.32
-chr1	2613318	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=84;Dels=0.00;HRun=0;HaplotypeScore=61.23;MQ=29.57;MQ0=14;OQ=124.73;QD=1.48;SB=-14.36	GT:AD:DP:GL:GQ	0/1:67,16:36:-26.61,-10.86,-123.23:99
-chr1	2613323	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=155;Dels=0.00;HRun=0;HaplotypeScore=72.34;MQ=25.61;MQ0=20;OQ=95.66;QD=0.62;SB=33.80	GT:AD:DP:GL:GQ	0/1:133,12:61:-34.86,-22.01,-226.45:99
-chr1	2613370	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=400;Dels=0.00;HRun=0;HaplotypeScore=293.23;MQ=21.10;MQ0=61;OQ=714.05;QD=1.79;SB=-288.95	GT:AD:DP:GL:GQ	0/1:327,73:124:-112.05,-37.36,-344.59:99
-chr1	2613374	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=416;Dels=0.00;HRun=0;HaplotypeScore=328.46;MQ=20.95;MQ0=62;OQ=571.93;QD=1.37;SB=-114.36	GT:AD:DP:GL:GQ	0/1:288,118:123:-97.54,-37.07,-375.44:99
-chr1	2613385	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=437;Dels=0.00;HRun=0;HaplotypeScore=225.97;MQ=20.17;MQ0=68;OQ=628.49;QD=1.44;SB=-284.83	GT:AD:DP:GL:GQ	0/1:363,65:125:-113.05,-46.91,-348.87:99
-chr1	2613405	rs61765715	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=430;Dels=0.00;HRun=0;HaplotypeScore=214.90;MQ=20.78;MQ0=65;OQ=1559.54;QD=3.63;SB=-415.95	GT:AD:DP:GL:GQ	0/1:296,132:120:-195.39,-36.15,-225.88:99
-chr1	2613406	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=428;Dels=0.00;HRun=0;HaplotypeScore=190.35;MQ=20.81;MQ0=64;OQ=96.31;QD=0.23;SB=35.50	GT:AD:DP:GL:GQ	0/1:369,32:113:-77.37,-64.46,-359.74:99
-chr1	2613418	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=358;Dels=0.00;HRun=0;HaplotypeScore=49.55;MQ=21.34;MQ0=50;OQ=281.60;QD=0.79;SB=32.81	GT:AD:DP:GL:GQ	0/1:313,45:98:-60.98,-29.53,-359.08:99
-chr1	2613432	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=200;Dels=0.00;HRun=2;HaplotypeScore=59.86;MQ=23.20;MQ0=28;OQ=127.98;QD=0.64;SB=-77.60	GT:AD:DP:GL:GQ	0/1:175,24:60:-37.72,-21.64,-201.76:99
-chr1	2613443	rs61765716	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=84;Dels=0.00;HRun=4;HaplotypeScore=21.82;MQ=28.33;MQ0=15;OQ=129.32;QD=1.54;SB=2.14	GT:AD:DP:GL:GQ	0/1:37,47:28:-24.65,-8.44,-74.06:99
-chr1	2613523	rs61765738	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=4;HaplotypeScore=30.76;MQ=30.14;MQ0=9;OQ=85.37;QD=1.61;SB=5.05	GT:AD:DP:GL:GQ	0/1:23,13:17:-22.76,-10.94,-45.61:99
-chr1	2613566	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=71;Dels=0.04;HRun=3;HaplotypeScore=57.78;MQ=26.34;MQ0=13;OQ=54.80;QD=0.77;SB=8.05	GT:AD:DP:GL:GQ	0/1:32,29:23:-15.40,-6.63,-70.44:87.64
-chr1	2613630	.	G	A	0.07	PASS	AC=2;AF=1.00;AN=2;DP=19;Dels=0.00;HRun=1;HaplotypeScore=13.24;MQ=22.14;MQ0=5;OQ=193.82;QD=10.20;SB=-82.32	GT:AD:DP:GL:GQ	1/1:2,17:6:-22.96,-1.81,-0.00:18.06
-chr1	2613635	.	G	A	0.05	FDRtranche0.10to1.00	AC=2;AF=1.00;AN=2;DP=16;Dels=0.00;HRun=0;HaplotypeScore=13.88;MQ=20.75;MQ0=5;OQ=116.09;QD=7.26;SB=-82.32	GT:AD:DP:GL:GQ	1/1:1,15:4:-15.15,-1.21,-0.00:12.04
-chr1	2613646	.	G	C	10.99	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=14;Dels=0.07;HRun=2;HaplotypeScore=14.02;MQ=19.81;MQ0=4;QD=0.79;SB=-10.00	GT:AD:DP:GL:GQ	0/1:4,8:1:-4.35,-0.30,-0.00:1.76
-chr1	2613690	.	T	C	13.23	HARD_TO_VALIDATE;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=71;Dels=0.00;HRun=0;HaplotypeScore=116.33;MQ=18.38;MQ0=8;QD=0.19;SB=-10.00	GT:AD:DP:GL:GQ	0/1:49,18:4:-5.79,-1.21,-8.34:45.86
-chr1	2613693	.	G	C	35.94	LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=80;Dels=0.00;HRun=1;HaplotypeScore=149.70;MQ=18.45;MQ0=8;QD=0.45;SB=-10.00	GT:AD:DP:GL:GQ	0/1:76,3:6:-8.69,-1.81,-15.69:68.78
-chr1	2613698	.	T	G	15.64	LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=95;Dels=0.00;HRun=2;HaplotypeScore=190.59;MQ=18.98;MQ0=9;QD=0.16;SB=-10.00	GT:AD:DP:GL:GQ	0/1:64,7:8:-12.71,-7.87,-20.94:48.35
-chr1	2613700	.	G	A	196.12	SnpCluster	AC=1;AF=0.50;AN=2;DP=95;Dels=0.00;HRun=0;HaplotypeScore=236.20;MQ=18.98;MQ0=9;QD=2.06;SB=-10.00	GT:AD:DP:GL:GQ	0/1:6,83:8:-25.29,-2.41,-3.47:10.61
-chr1	2613710	.	G	A	290.78	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=155;Dels=0.00;HRun=1;HaplotypeScore=258.37;MQ=18.71;MQ0=19;QD=1.88;SB=-45.65	GT:AD:DP:GL:GQ	0/1:71,77:15:-43.35,-10.99,-17.24:62.53
-chr1	2613712	.	A	G	19.12	DPFilter;HARD_TO_VALIDATE;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=162;Dels=0.00;HRun=1;HaplotypeScore=303.47;MQ=18.88;MQ0=19;QD=0.12;SB=-3.98	GT:AD:DP:GL:GQ	0/1:153,6:17:-10.32,-5.13,-49.10:51.90
-chr1	2613717	.	C	G	26.91	DPFilter;HARD_TO_VALIDATE;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=186;Dels=0.00;HRun=0;HaplotypeScore=408.47;MQ=18.72;MQ0=23;QD=0.14;SB=-6.99	GT:AD:DP:GL:GQ	0/1:167,10:18:-16.44,-10.47,-59.87:59.74
-chr1	2613725	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=210;Dels=0.00;HRun=0;HaplotypeScore=344.41;MQ=18.80;MQ0=26;OQ=51.69;QD=0.25;SB=-6.99	GT:AD:DP:GL:GQ	0/1:188,19:21:-17.15,-8.70,-57.87:84.53
-chr1	2613732	.	A	C	62.04	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=212;Dels=0.00;HRun=0;HaplotypeScore=339.87;MQ=19.08;MQ0=26;QD=0.29;SB=-6.99	GT:AD:DP:GL:GQ	0/1:184,21:14:-13.71,-4.22,-32.30:94.88
-chr1	2613741	.	C	T	167.14	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=207;Dels=0.00;HRun=1;HaplotypeScore=432.19;MQ=19.10;MQ0=22;QD=0.81;SB=-10.00	GT:AD:DP:GL:GQ	0/1:175,24:13:-27.15,-7.15,-25.74:99
-chr1	2613742	.	T	A	554.18	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=2;AF=1.00;AN=2;DP=203;Dels=0.00;HRun=0;HaplotypeScore=437.29;MQ=19.15;MQ0=21;QD=2.73;SB=-10.00	GT:AD:DP:GL:GQ	1/1:10,159:27:-96.09,-42.87,-37.09:57.79
-chr1	2613744	.	C	T	234.43	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=208;Dels=0.00;HRun=0;HaplotypeScore=584.09;MQ=19.37;MQ0=21;QD=1.13;SB=-10.00	GT:AD:DP:GL:GQ	0/1:171,26:22:-36.59,-9.87,-49.51:99
-chr1	2613745	.	C	G	76.87	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=207;Dels=0.00;HRun=0;HaplotypeScore=579.63;MQ=19.38;MQ0=20;QD=0.37;SB=-10.00	GT:AD:DP:GL:GQ	0/1:148,19:15:-15.49,-4.52,-49.92:99
-chr1	2613750	.	G	A	306.03	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=207;Dels=0.00;HRun=1;HaplotypeScore=658.57;MQ=19.32;MQ0=20;QD=1.48;SB=-7.01	GT:AD:DP:GL:GQ	0/1:99,104:19:-39.62,-5.73,-26.69:99
-chr1	2613754	.	C	A	11.17	DPFilter;HARD_TO_VALIDATE;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=223;Dels=0.00;HRun=1;HaplotypeScore=578.78;MQ=19.04;MQ0=24;QD=0.05;SB=-7.00	GT:AD:DP:GL:GQ	0/1:199,19:23:-11.29,-6.93,-65.57:43.66
-chr1	2613765	.	C	A	112.66	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=230;Dels=0.00;HRun=0;HaplotypeScore=358.32;MQ=18.80;MQ0=30;QD=0.49;SB=-6.99	GT:AD:DP:GL:GQ	0/1:192,30:26:-22.38,-7.83,-66.37:99
-chr1	2613766	.	C	G	145.08	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=229;Dels=0.00;HRun=0;HaplotypeScore=340.83;MQ=18.60;MQ0=30;QD=0.63;SB=-3.99	GT:AD:DP:GL:GQ	0/1:197,20:34:-28.04,-10.25,-119.31:99
-chr1	2613770	.	T	C	33.51	DPFilter;HARD_TO_VALIDATE;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=219;Dels=0.00;HRun=0;HaplotypeScore=286.65;MQ=18.56;MQ0=29;QD=0.15;SB=-3.99	GT:AD:DP:GL:GQ	0/1:176,33:38:-18.09,-11.45,-126.83:66.35
-chr1	2613772	.	A	G	57.20	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=216;Dels=0.00;HRun=1;HaplotypeScore=261.18;MQ=18.59;MQ0=29;QD=0.26;SB=-0.97	GT:AD:DP:GL:GQ	0/1:199,13:41:-24.12,-15.12,-140.12:90.03
-chr1	2613796	.	G	C	177.04	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=135;Dels=0.04;HRun=2;HaplotypeScore=330.87;MQ=18.33;MQ0=22;QD=1.31;SB=-45.45	GT:AD:DP:GL:GQ	0/1:71,48:21:-34.21,-13.22,-61.82:99
-chr1	2613800	.	G	A	69.22	HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=111;Dels=0.04;HRun=0;HaplotypeScore=218.43;MQ=17.88;MQ0=19;QD=0.62;SB=-7.00	GT:AD:DP:GL:GQ	0/1:92,15:13:-14.13,-3.92,-31.45:99
-chr1	2613801	.	C	G	13.55	HARD_TO_VALIDATE;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=110;Dels=0.00;HRun=1;HaplotypeScore=246.51;MQ=18.17;MQ0=17;QD=0.12;SB=-7.00	GT:AD:DP:GL:GQ	0/1:104,4:15:-12.67,-8.05,-55.30:46.19
-chr1	2613803	.	C	A	151.29	HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=111;Dels=0.00;HRun=1;HaplotypeScore=241.51;MQ=18.66;MQ0=17;QD=1.36;SB=-3.98	GT:AD:DP:GL:GQ	0/1:89,19:17:-27.02,-8.61,-39.19:99
-chr1	2613805	.	C	T	87.71	HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=109;Dels=0.00;HRun=0;HaplotypeScore=208.83;MQ=18.81;MQ0=15;QD=0.80;SB=-0.98	GT:AD:DP:GL:GQ	0/1:93,15:13:-15.97,-3.92,-32.68:99
-chr1	2613807	.	C	T	57.07	HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=107;Dels=0.00;HRun=0;HaplotypeScore=165.36;MQ=18.87;MQ0=15;QD=0.53;SB=-3.99	GT:AD:DP:GL:GQ	0/1:93,9:11:-12.30,-3.31,-28.01:89.90
-chr1	2613812	.	G	A	29.24	HARD_TO_VALIDATE;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=91;Dels=0.00;HRun=0;HaplotypeScore=106.13;MQ=18.30;MQ0=14;QD=0.32;SB=-3.99	GT:AD:DP:GL:GQ	0/1:75,16:5:-7.71,-1.51,-10.06:62.07
-chr1	2613813	.	T	C	74.94	HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=85;Dels=0.00;HRun=0;HaplotypeScore=91.21;MQ=18.35;MQ0=14;QD=0.88;SB=-6.99	GT:AD:DP:GL:GQ	0/1:16,66:5:-12.29,-1.51,-3.76:22.52
-chr1	2613826	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=84;Dels=0.00;HRun=1;HaplotypeScore=36.04;MQ=20.56;MQ0=13;OQ=192.78;QD=2.30;SB=-28.63	GT:AD:DP:GL:GQ	0/1:21,57:13:-29.99,-7.43,-22.77:99
-chr1	2613831	.	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=82;Dels=0.00;HRun=1;HaplotypeScore=23.92;MQ=20.73;MQ0=14;OQ=180.38;QD=2.20;SB=-29.94	GT:AD:DP:GL:GQ	0/1:21,61:13:-25.24,-3.92,-19.14:99
-chr1	2613859	.	G	T	41.43	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=67;Dels=0.00;HRun=0;HaplotypeScore=24.92;MQ=20.48;MQ0=13;QD=0.62;SB=-43.38	GT:AD:DP:GL:GQ	0/1:19,47:11:-10.74,-3.32,-20.71:74.26
-chr1	2613869	rs28391329	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=100;Dels=0.00;HRun=0;HaplotypeScore=60.53;MQ=21.20;MQ0=15;OQ=293.59;QD=2.94;SB=-0.98	GT:AD:DP:GL:GQ	0/1:82,18:19:-38.38,-5.73,-37.90:99
-chr1	2613889	.	T	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=92;Dels=0.00;HRun=1;HaplotypeScore=72.75;MQ=25.64;MQ0=15;OQ=180.19;QD=1.96;SB=-114.68	GT:AD:DP:GL:GQ	0/1:18,61:28:-47.05,-25.75,-76.38:99
-chr1	2613903	rs11486068	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=99;Dels=0.00;HRun=0;HaplotypeScore=48.68;MQ=24.40;MQ0=19;OQ=50.76;QD=0.51;SB=-13.14	GT:AD:DP:GL:GQ	0/1:40,15:30:-30.07,-21.71,-94.96:83.60
-chr1	2613959	rs61765741	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=152;Dels=0.00;HRun=0;HaplotypeScore=30.66;MQ=19.75;MQ0=50;OQ=129.32;QD=0.85;SB=-3.99	GT:AD:DP:GL:GQ	0/1:135,11:45:-36.43,-20.22,-129.55:99
-chr1	2613977	rs61765742	T	A	0.03	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DB;DP=102;Dels=0.00;HRun=0;HaplotypeScore=20.51;MQ=18.10;MQ0=36;OQ=631.54;QD=6.19;SB=-10.00	GT:AD:DP:GL:GQ	0/1:15,87:32:-76.08,-9.64,-40.58:99
-chr1	2614061	.	C	G	47.32	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=45;Dels=0.00;HRun=0;HaplotypeScore=9.70;MQ=18.60;MQ0=18;QD=1.05;SB=-42.45	GT:AD:DP:GL:GQ	0/1:29,16:12:-11.64,-3.62,-36.27:80.16
-chr1	2614087	rs61765744	A	C	20.16	HARD_TO_VALIDATE;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=32;Dels=0.00;HRun=3;HaplotypeScore=20.71;MQ=12.14;MQ0=19;QD=0.63;SB=-6.99	GT:AD:DP:GL:GQ	0/1:25,7:6:-7.10,-1.81,-13.92:52.96
-chr1	2614090	.	A	G	19.51	HARD_TO_VALIDATE;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=33;Dels=0.00;HRun=1;HaplotypeScore=20.91;MQ=12.88;MQ0=18;QD=0.59;SB=-6.99	GT:AD:DP:GL:GQ	0/1:21,12:7:-7.34,-2.11,-20.39:52.30
-chr1	2614091	.	G	C	37.94	HARD_TO_VALIDATE;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=36;Dels=0.00;HRun=1;HaplotypeScore=21.91;MQ=12.37;MQ0=20;QD=1.05;SB=-6.99	GT:AD:DP:GL:GQ	0/1:28,8:7:-9.19,-2.11,-21.58:70.77
-chr1	2614114	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=80;Dels=0.00;HRun=0;HaplotypeScore=32.88;MQ=18.47;MQ0=36;OQ=121.42;QD=1.52;SB=-36.64	GT:AD:DP:GL:GQ	0/1:36,44:20:-21.46,-6.03,-44.98:99
-chr1	2614128	.	T	C	13.34	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=117;Dels=0.00;HRun=4;HaplotypeScore=47.41;MQ=18.72;MQ0=40;QD=0.11;SB=-2.29	GT:AD:DP:GL:GQ	0/1:78,34:26:-19.39,-14.79,-91.44:45.97
-chr1	2614209	.	G	A	41.24	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=91;Dels=0.00;HRun=1;HaplotypeScore=24.29;MQ=22.02;MQ0=31;QD=0.45;SB=-24.59	GT:AD:DP:GL:GQ	0/1:55,36:29:-16.14,-8.74,-87.91:74.08
-chr1	2614364	rs28730517	A	C	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=4;HaplotypeScore=28.46;MQ=18.26;MQ0=16;OQ=311.67;QD=6.23;SB=-151.28	GT:AD:DP:GL:GQ	1/1:14,32:12:-37.44,-3.62,-2.80:8.16
-chr1	2614590	rs28497985	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=112;Dels=0.00;HRun=0;HaplotypeScore=34.12;MQ=28.69;MQ0=18;OQ=755.20;QD=6.74;SB=-383.20	GT:AD:DP:GL:GQ	0/1:87,25:65:-98.40,-19.59,-181.93:99
-chr1	2614771	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=68;Dels=0.00;HRun=1;HaplotypeScore=33.03;MQ=8.84;MQ0=54;OQ=63.99;QD=0.94;SB=-10.00	GT:AD:DP:GL:GQ	0/1:54,14:6:-11.49,-1.81,-12.10:96.82
-chr1	2614794	.	A	C	36.23	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=94;Dels=0.00;HRun=0;HaplotypeScore=12.63;MQ=15.22;MQ0=54;QD=0.39;SB=8.03	GT:AD:DP:GL:GQ	0/1:56,38:25:-14.44,-7.53,-71.85:69.07
-chr1	2614835	rs61765748	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=146;Dels=0.00;HRun=0;HaplotypeScore=67.43;MQ=23.43;MQ0=43;OQ=134.71;QD=0.92;SB=83.23	GT:AD:DP:GL:GQ	0/1:105,39:61:-35.15,-18.40,-166.15:99
-chr1	2615014	.	A	G	45.47	PASS	AC=2;AF=1.00;AN=2;DP=12;Dels=0.00;HRun=0;HaplotypeScore=1.16;MQ=21.27;MQ0=3;OQ=106.85;QD=8.90;SB=-34.66	GT:AD:DP:GL:GQ	1/1:0,12:5:-14.25,-1.51,-0.01:15.01
-chr1	2615159	.	C	A	49.14	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=220;Dels=0.00;HRun=2;HaplotypeScore=142.59;MQ=8.79;MQ0=169;QD=0.22;SB=-7.86	GT:AD:DP:GL:GQ	0/1:185,31:17:-13.32,-5.12,-43.12:81.98
-chr1	2615230	.	C	G	11.72	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=84;Dels=0.00;HRun=1;HaplotypeScore=6.15;MQ=11.52;MQ0=52;QD=0.14;SB=-26.39	GT:AD:DP:GL:GQ	0/1:72,12:14:-8.65,-4.23,-47.78:44.25
-chr1	2615372	.	G	A	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DP=85;Dels=0.00;HRun=1;HaplotypeScore=29.65;MQ=17.03;MQ0=60;OQ=691.36;QD=8.13;SB=-292.88	GT:AD:DP:GL:GQ	1/1:59,24:18:-72.73,-5.42,-0.01:54.18
-chr1	2615442	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=155;Dels=0.00;HRun=1;HaplotypeScore=52.99;MQ=12.22;MQ0=96;OQ=368.66;QD=2.38;SB=-99.96	GT:AD:DP:GL:GQ	0/1:30,125:25:-47.68,-7.53,-41.84:99
-chr1	2615466	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=145;Dels=0.00;HRun=0;HaplotypeScore=61.50;MQ=14.17;MQ0=69;OQ=112.35;QD=0.77;SB=-18.60	GT:AD:DP:GL:GQ	0/1:116,29:31:-23.86,-9.34,-81.69:99
-chr1	2615470	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=139;Dels=0.00;HRun=0;HaplotypeScore=63.31;MQ=14.07;MQ0=68;OQ=351.94;QD=2.53;SB=-90.74	GT:AD:DP:GL:GQ	0/1:65,72:34:-48.72,-10.24,-70.14:99
-chr1	2615502	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=79;Dels=0.00;HRun=0;HaplotypeScore=32.33;MQ=16.10;MQ0=38;OQ=288.56;QD=3.65;SB=2.03	GT:AD:DP:GL:GQ	0/1:49,30:24:-39.38,-7.24,-59.32:99
-chr1	2615515	.	T	G	27.54	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=74;Dels=0.00;HRun=0;HaplotypeScore=32.70;MQ=13.65;MQ0=43;QD=0.37;SB=-0.98	GT:AD:DP:GL:GQ	0/1:31,13:15:-18.30,-12.26,-45.52:60.37
-chr1	2615553	.	G	A	21.44	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=94;Dels=0.00;HRun=1;HaplotypeScore=33.08;MQ=9.60;MQ0=74;QD=0.23;SB=-3.99	GT:AD:DP:GL:GQ	0/1:70,24:9:-8.14,-2.71,-26.22:54.25
-chr1	2615563	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=92;Dels=0.00;HRun=0;HaplotypeScore=52.83;MQ=8.09;MQ0=76;OQ=64.78;QD=0.70;SB=-10.00	GT:AD:DP:GL:GQ	0/1:82,10:5:-11.27,-1.51,-6.24:47.31
-chr1	2615689	.	T	C	30.94	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=109;Dels=0.00;HRun=1;HaplotypeScore=62.56;MQ=10.13;MQ0=88;QD=0.28;SB=-3.98	GT:AD:DP:GL:GQ	0/1:18,89:9:-9.09,-2.71,-22.98:63.77
-chr1	2615717	rs61765669	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=109;Dels=0.00;HRun=0;HaplotypeScore=37.80;MQ=10.99;MQ0=80;OQ=103.09;QD=0.95;SB=-3.99	GT:AD:DP:GL:GQ	0/1:26,83:10:-16.61,-3.01,-17.76:99
-chr1	2615757	.	C	A	39.74	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=92;Dels=0.00;HRun=1;HaplotypeScore=30.17;MQ=13.18;MQ0=60;QD=0.43;SB=0.17	GT:AD:DP:GL:GQ	0/1:71,20:17:-15.95,-8.69,-48.17:72.57
-chr1	2615837	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=55;Dels=0.00;HRun=0;HaplotypeScore=39.99;MQ=26.86;MQ0=21;OQ=73.19;QD=1.33;SB=-36.22	GT:AD:DP:GL:GQ	0/1:29,26:20:-16.63,-6.03,-56.46:99
-chr1	2615892	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=57;Dels=0.00;HRun=3;HaplotypeScore=44.02;MQ=30.58;MQ0=2;OQ=63.96;QD=1.12;SB=26.10	GT:AD:DP:GL:GQ	0/1:25,32:26:-17.51,-7.83,-73.92:96.79
-chr1	2615945	rs28619423	T	C	0.80	PASS	AC=2;AF=1.00;AN=2;DB;DP=19;Dels=0.00;HRun=1;HaplotypeScore=8.32;MQ=22.59;MQ0=1;OQ=99.94;QD=5.26;SB=-76.91	GT:AD:DP:GL:GQ	1/1:3,15:4:-13.53,-1.21,-0.00:12.03
-chr1	2615949	rs28373809	G	A	10.26	LowQual	AC=1;AF=0.50;AN=2;DB;DP=15;Dels=0.00;HRun=0;HaplotypeScore=9.32;MQ=19.47;MQ0=1;QD=0.68;SB=-10.00	GT:AD:DP:GL:GQ	0/1:1,14:1:-4.27,-0.30,-0.00:1.76
-chr1	2615990	.	C	G	0.11	PASS	AC=2;AF=1.00;AN=2;DP=9;Dels=0.00;HRun=0;HaplotypeScore=8.97;MQ=20.31;MQ0=1;OQ=58.76;QD=6.53;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,9:2:-9.28,-0.60,-0.00:6.02
-chr1	2615997	.	G	A	36.46	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=27;Dels=0.00;HRun=1;HaplotypeScore=29.63;MQ=20.63;MQ0=6;QD=1.35;SB=-7.00	GT:AD:DP:GL:GQ	0/1:18,9:5:-8.44,-1.51,-10.16:69.30
-chr1	2616009	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=32;Dels=0.00;HRun=2;HaplotypeScore=37.74;MQ=29.64;MQ0=6;OQ=112.90;QD=3.53;SB=-3.99	GT:AD:DP:GL:GQ	0/1:15,17:12:-18.19,-3.62,-24.59:99
-chr1	2616012	.	A	C	43.77	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=31;Dels=0.00;HRun=2;HaplotypeScore=39.70;MQ=31.56;MQ0=5;QD=1.41;SB=-0.98	GT:AD:DP:GL:GQ	0/1:13,18:11:-10.97,-3.31,-27.78:76.61
-chr1	2616021	.	C	A	30.19	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=43;Dels=0.00;HRun=1;HaplotypeScore=71.42;MQ=30.54;MQ0=5;QD=0.70;SB=-0.98	GT:AD:DP:GL:GQ	0/1:37,6:16:-11.12,-4.82,-46.67:63.02
-chr1	2616048	.	A	C	104.33	Indel	AC=1;AF=0.50;AN=2;DP=68;Dels=0.00;HRun=0;HaplotypeScore=256.69;MQ=33.48;MQ0=5;QD=1.53;SB=-0.98	GT:AD:DP:GL:GQ	0/1:26,38:27:-21.85,-8.13,-76.79:99
-chr1	2616053	.	A	C	36.21	Indel;LowQual	AC=1;AF=0.50;AN=2;DP=80;Dels=0.06;HRun=3;HaplotypeScore=159.99;MQ=31.20;MQ0=8;QD=0.45;SB=-3.99	GT:AD:DP:GL:GQ	0/1:43,32:27:-15.04,-8.13,-81.51:69.04
-chr1	2616066	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=129;Dels=0.00;HRun=0;HaplotypeScore=127.16;MQ=28.37;MQ0=17;OQ=116.17;QD=0.90;SB=11.03	GT:AD:DP:GL:GQ	0/1:64,41:40:-43.16,-28.26,-112.08:99
-chr1	2616091	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=152;Dels=0.02;HRun=3;HaplotypeScore=245.31;MQ=26.01;MQ0=24;OQ=74.30;QD=0.49;SB=8.05	GT:AD:DP:GL:GQ	0/1:77,30:40:-32.83,-22.11,-117.91:99
-chr1	2616098	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=149;Dels=0.00;HRun=0;HaplotypeScore=238.65;MQ=25.86;MQ0=23;OQ=203.33;QD=1.36;SB=8.03	GT:AD:DP:GL:GQ	0/1:83,65:39:-35.37,-11.76,-97.26:99
-chr1	2616121	rs28707614	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=109;Dels=0.00;HRun=1;HaplotypeScore=348.16;MQ=25.38;MQ0=21;OQ=754.79;QD=6.92;SB=-132.69	GT:AD:DP:GL:GQ	0/1:14,95:27:-86.90,-8.14,-12.11:39.77
-chr1	2616201	rs28495110	G	T	0.10	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=18.82;MQ=45.96;MQ0=6;OQ=1088.68;QD=25.92;SB=-422.58	GT:AD:DP:GL:GQ	1/1:8,34:31:-112.47,-9.34,-0.01:93.25
-chr1	2616235	.	T	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=71;Dels=0.00;HRun=1;HaplotypeScore=22.81;MQ=34.27;MQ0=9;OQ=189.73;QD=2.67;SB=-88.83	GT:AD:DP:GL:GQ	0/1:28,43:31:-31.59,-9.34,-82.55:99
-chr1	2616250	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=198;Dels=0.00;HRun=1;HaplotypeScore=98.35;MQ=24.83;MQ0=26;OQ=53.95;QD=0.27;SB=-52.26	GT:AD:DP:GL:GQ	0/1:175,16:77:-39.01,-30.33,-235.94:86.79
-chr1	2616284	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=316;Dels=0.00;HRun=0;HaplotypeScore=207.75;MQ=22.41;MQ0=34;OQ=472.89;QD=1.50;SB=-261.05	GT:AD:DP:GL:GQ	0/1:280,35:108:-83.11,-32.54,-299.84:99
-chr1	2616291	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=308;Dels=0.00;HRun=0;HaplotypeScore=168.73;MQ=22.17;MQ0=35;OQ=503.17;QD=1.63;SB=-147.25	GT:AD:DP:GL:GQ	0/1:228,77:110:-86.74,-33.14,-306.67:99
-chr1	2616303	rs61765755	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=285;Dels=0.00;HRun=0;HaplotypeScore=48.79;MQ=22.14;MQ0=36;OQ=3893.80;QD=13.66;SB=-1294.80	GT:AD:DP:GL:GQ	0/1:13,240:102:-388.38,-54.71,-62.45:77.36
-chr1	2616333	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=234;Dels=0.00;HRun=0;HaplotypeScore=268.36;MQ=23.38;MQ0=29;OQ=127.30;QD=0.54;SB=-30.73	GT:AD:DP:GL:GQ	0/1:215,16:95:-44.63,-28.62,-299.60:99
-chr1	2616354	rs7544898	A	C	1854.66	HARD_TO_VALIDATE;SnpCluster	AC=2;AF=1.00;AN=2;DB;DP=113;Dels=0.00;HRun=1;HaplotypeScore=61.29;MQ=28.89;MQ0=15;QD=16.41;SB=-484.04	GT:AD:DP:GL:GQ	1/1:2,105:53:-193.02,-19.43,-3.97:99
-chr1	2616358	.	A	G	865.25	HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=98;Dels=0.00;HRun=1;HaplotypeScore=46.74;MQ=30.83;MQ0=11;QD=8.83;SB=-6.56	GT:AD:DP:GL:GQ	0/1:29,69:51:-105.17,-15.36,-93.21:99
-chr1	2616363	.	G	C	842.15	HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=97;Dels=0.00;HRun=1;HaplotypeScore=46.38;MQ=31.26;MQ0=12;QD=8.68;SB=-14.79	GT:AD:DP:GL:GQ	0/1:55,42:53:-103.48,-15.98,-115.82:99
-chr1	2616398	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=95;Dels=0.00;HRun=0;HaplotypeScore=48.31;MQ=34.63;MQ0=12;OQ=554.46;QD=5.84;SB=10.29	GT:AD:DP:GL:GQ	0/1:66,29:54:-75.00,-16.28,-154.28:99
-chr1	2616612	.	G	C	20.97	LowQual	AC=1;AF=0.50;AN=2;DP=70;Dels=0.01;HRun=0;HaplotypeScore=165.26;MQ=30.37;MQ0=2;QD=0.30;SB=-32.74	GT:AD:DP:GL:GQ	0/1:19,45:24:-19.94,-14.57,-91.68:53.77
-chr1	2616615	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=69;Dels=0.00;HRun=3;HaplotypeScore=70.16;MQ=28.36;MQ0=2;OQ=89.21;QD=1.29;SB=-14.35	GT:AD:DP:GL:GQ	0/1:26,38:19:-17.94,-5.74,-58.45:99
-chr1	2616647	.	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=137;Dels=0.00;HRun=0;HaplotypeScore=217.54;MQ=24.00;MQ0=30;OQ=94.92;QD=0.69;SB=35.11	GT:AD:DP:GL:GQ	0/1:84,43:37:-23.93,-11.16,-103.88:99
-chr1	2616654	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=181;Dels=0.00;HRun=1;HaplotypeScore=223.04;MQ=23.83;MQ0=42;OQ=359.87;QD=1.99;SB=35.13	GT:AD:DP:GL:GQ	0/1:140,35:44:-52.54,-13.27,-92.39:99
-chr1	2616670	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=198;Dels=0.00;HRun=0;HaplotypeScore=299.99;MQ=23.86;MQ0=44;OQ=60.86;QD=0.31;SB=35.11	GT:AD:DP:GL:GQ	0/1:127,67:50:-24.46,-15.09,-137.52:93.69
-chr1	2616692	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=167;Dels=0.00;HRun=0;HaplotypeScore=231.37;MQ=26.06;MQ0=26;OQ=91.62;QD=0.55;SB=35.13	GT:AD:DP:GL:GQ	0/1:91,73:56:-32.64,-20.19,-183.88:99
-chr1	2616713	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=83;Dels=0.00;HRun=1;HaplotypeScore=98.28;MQ=31.06;MQ0=12;OQ=565.06;QD=6.81;SB=-40.25	GT:AD:DP:GL:GQ	0/1:27,50:40:-78.76,-18.97,-82.14:99
-chr1	2616803	.	G	C	11.63	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=76;Dels=0.01;HRun=0;HaplotypeScore=115.33;MQ=32.59;MQ0=10;QD=0.15;SB=23.09	GT:AD:DP:GL:GQ	0/1:27,42:23:-11.36,-6.95,-79.45:44.16
-chr1	2616826	.	T	C	18.72	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=49;Dels=0.00;HRun=0;HaplotypeScore=39.74;MQ=39.24;MQ0=2;QD=0.38;SB=20.09	GT:AD:DP:GL:GQ	0/1:24,24:22:-11.78,-6.63,-68.52:51.50
-chr1	2616954	rs28486014	C	A	1246.57	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=2;AF=1.00;AN=2;DB;DP=172;Dels=0.00;HRun=0;HaplotypeScore=118.85;MQ=19.01;MQ0=19;QD=7.25;SB=-604.12	GT:AD:DP:GL:GQ	1/1:2,165:36:-131.25,-13.77,-3.01:99
-chr1	2616962	.	A	G	25.32	DPFilter;HARD_TO_VALIDATE;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=218;Dels=0.00;HRun=0;HaplotypeScore=150.59;MQ=18.32;MQ0=25;QD=0.12;SB=17.48	GT:AD:DP:GL:GQ	0/1:179,39:39:-17.57,-11.75,-132.90:58.14
-chr1	2616963	.	C	G	90.14	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=222;Dels=0.00;HRun=0;HaplotypeScore=167.60;MQ=18.42;MQ0=25;QD=0.41;SB=8.17	GT:AD:DP:GL:GQ	0/1:182,34:40:-27.79,-15.49,-139.11:99
-chr1	2616976	.	C	A	13.99	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=267;Dels=0.00;HRun=0;HaplotypeScore=283.46;MQ=18.62;MQ0=35;QD=0.05;SB=55.93	GT:AD:DP:GL:GQ	0/1:236,26:51:-20.03,-15.36,-160.20:46.65
-chr1	2616982	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=280;Dels=0.00;HRun=0;HaplotypeScore=251.51;MQ=19.64;MQ0=37;OQ=486.76;QD=1.74;SB=8.99	GT:AD:DP:GL:GQ	0/1:187,73:54:-71.97,-20.01,-131.66:99
-chr1	2617013	.	A	C	16.86	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=231;Dels=0.00;HRun=5;HaplotypeScore=227.22;MQ=22.36;MQ0=34;QD=0.07;SB=14.07	GT:AD:DP:GL:GQ	0/1:208,22:59:-25.00,-20.04,-187.42:49.60
-chr1	2617015	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=222;Dels=0.00;HRun=0;HaplotypeScore=200.07;MQ=22.66;MQ0=33;OQ=161.89;QD=0.73;SB=20.10	GT:AD:DP:GL:GQ	0/1:186,27:59:-43.12,-23.65,-203.21:99
-chr1	2617028	rs61765757	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=178;Dels=0.00;HRun=0;HaplotypeScore=111.43;MQ=24.75;MQ0=28;OQ=1236.03;QD=6.94;SB=-23.31	GT:AD:DP:GL:GQ	0/1:36,141:55:-143.45,-16.57,-61.22:99
-chr1	2617033	rs61765759	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=173;Dels=0.00;HRun=0;HaplotypeScore=123.68;MQ=24.76;MQ0=29;OQ=945.67;QD=5.47;SB=-60.88	GT:AD:DP:GL:GQ	0/1:19,129:49:-112.61,-14.76,-62.28:99
-chr1	2617058	rs28585375	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=236;Dels=0.00;HRun=0;HaplotypeScore=112.06;MQ=22.97;MQ0=54;OQ=357.80;QD=1.52;SB=-120.52	GT:AD:DP:GL:GQ	0/1:214,20:72:-60.76,-21.69,-192.59:99
-chr1	2617101	.	T	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=207;Dels=0.00;HRun=1;HaplotypeScore=89.01;MQ=23.73;MQ0=48;OQ=1884.44;QD=9.10;SB=-387.68	GT:AD:DP:GL:GQ	0/1:34,172:76:-214.63,-22.90,-42.31:99
-chr1	2617123	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=203;Dels=0.00;HRun=0;HaplotypeScore=48.50;MQ=26.08;MQ0=56;OQ=129.18;QD=0.64;SB=-72.20	GT:AD:DP:GL:GQ	0/1:185,17:80:-40.33,-24.13,-284.57:99
-chr1	2617151	.	G	C	42.86	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=191;Dels=0.00;HRun=2;HaplotypeScore=97.11;MQ=23.22;MQ0=69;QD=0.22;SB=-10.77	GT:AD:DP:GL:GQ	0/1:167,21:55:-24.18,-16.61,-193.30:75.70
-chr1	2617160	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=181;Dels=0.00;HRun=1;HaplotypeScore=68.35;MQ=20.95;MQ0=76;OQ=103.39;QD=0.57;SB=17.08	GT:AD:DP:GL:GQ	0/1:148,32:50:-28.69,-15.07,-157.59:99
-chr1	2617178	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=141;Dels=0.01;HRun=4;HaplotypeScore=67.98;MQ=19.71;MQ0=69;OQ=224.46;QD=1.59;SB=-23.83	GT:AD:DP:GL:GQ	0/1:56,82:32:-35.39,-9.66,-90.46:99
-chr1	2617216	.	T	C	14.18	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=109;Dels=0.00;HRun=2;HaplotypeScore=54.33;MQ=16.92;MQ0=58;QD=0.13;SB=5.04	GT:AD:DP:GL:GQ	0/1:54,55:21:-11.01,-6.33,-70.16:46.85
-chr1	2617218	.	C	G	13.85	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=108;Dels=0.00;HRun=0;HaplotypeScore=69.57;MQ=15.97;MQ0=58;QD=0.13;SB=5.05	GT:AD:DP:GL:GQ	0/1:87,20:21:-10.98,-6.33,-76.68:46.51
-chr1	2617261	.	T	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=61;Dels=0.00;HRun=1;HaplotypeScore=41.53;MQ=20.71;MQ0=16;OQ=109.26;QD=1.79;SB=-48.91	GT:AD:DP:GL:GQ	0/1:26,35:19:-19.93,-5.73,-46.91:99
-chr1	2617273	rs61466658	T	C	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=83;Dels=0.00;HRun=0;HaplotypeScore=31.65;MQ=19.33;MQ0=33;OQ=744.68;QD=8.97;SB=-307.99	GT:AD:DP:GL:GQ	1/1:6,73:24:-80.83,-7.23,-2.78:44.58
-chr1	2617320	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=383;Dels=0.00;HRun=2;HaplotypeScore=179.89;MQ=20.12;MQ0=69;OQ=511.87;QD=1.34;SB=-192.93	GT:AD:DP:GL:GQ	0/1:271,102:88:-80.98,-26.51,-240.14:99
-chr1	2617333	.	A	C	189.16	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=412;Dels=0.00;HRun=1;HaplotypeScore=324.51;MQ=20.25;MQ0=68;QD=0.46;SB=-46.42	GT:AD:DP:GL:GQ	0/1:362,48:102:-52.93,-30.73,-310.85:99
-chr1	2617334	.	C	T	347.52	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=413;Dels=0.00;HRun=0;HaplotypeScore=315.80;MQ=20.22;MQ0=68;QD=0.84;SB=-93.66	GT:AD:DP:GL:GQ	0/1:367,35:98:-67.59,-29.55,-258.47:99
-chr1	2617338	.	C	G	222.34	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=432;Dels=0.00;HRun=0;HaplotypeScore=396.78;MQ=20.69;MQ0=66;QD=0.51;SB=19.38	GT:AD:DP:GL:GQ	0/1:381,42:103:-66.44,-40.92,-386.05:99
-chr1	2617341	.	G	T	154.66	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=435;Dels=0.00;HRun=1;HaplotypeScore=393.28;MQ=20.73;MQ0=66;QD=0.36;SB=-27.31	GT:AD:DP:GL:GQ	0/1:377,44:114:-56.17,-37.42,-341.25:99
-chr1	2617354	.	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=456;Dels=0.00;HRun=0;HaplotypeScore=284.18;MQ=21.50;MQ0=65;OQ=410.45;QD=0.90;SB=-157.97	GT:AD:DP:GL:GQ	0/1:367,88:128:-86.24,-41.91,-394.71:99
-chr1	2617375	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=397;Dels=0.00;HRun=0;HaplotypeScore=286.33;MQ=23.04;MQ0=37;OQ=238.47;QD=0.60;SB=-127.61	GT:AD:DP:GL:GQ	0/1:316,80:131:-66.59,-39.46,-400.07:99
-chr1	2617377	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=393;Dels=0.00;HRun=0;HaplotypeScore=264.38;MQ=23.09;MQ0=38;OQ=52.53;QD=0.13;SB=34.31	GT:AD:DP:GL:GQ	0/1:349,42:132:-48.29,-39.76,-421.34:85.37
-chr1	2617406	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=231;Dels=0.00;HRun=0;HaplotypeScore=150.38;MQ=24.81;MQ0=30;OQ=1026.09;QD=4.44;SB=-81.56	GT:AD:DP:GL:GQ	0/1:71,150:85:-131.52,-25.63,-230.33:99
-chr1	2617434	.	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=144;Dels=0.00;HRun=0;HaplotypeScore=111.67;MQ=24.27;MQ0=28;OQ=290.81;QD=2.02;SB=-29.80	GT:AD:DP:GL:GQ	0/1:61,70:56:-59.33,-26.96,-156.98:99
-chr1	2617463	rs56282610	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=93;Dels=0.00;HRun=0;HaplotypeScore=58.94;MQ=24.92;MQ0=20;OQ=411.11;QD=4.42;SB=-153.67	GT:AD:DP:GL:GQ	0/1:29,63:36:-55.25,-10.85,-76.21:99
-chr1	2617490	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=97;Dels=0.00;HRun=0;HaplotypeScore=85.26;MQ=28.92;MQ0=14;OQ=93.54;QD=0.96;SB=32.09	GT:AD:DP:GL:GQ	0/1:84,12:39:-24.38,-11.75,-112.74:99
-chr1	2617496	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=92;Dels=0.00;HRun=0;HaplotypeScore=107.91;MQ=30.31;MQ0=12;OQ=102.53;QD=1.11;SB=32.10	GT:AD:DP:GL:GQ	0/1:79,12:38:-24.98,-11.44,-111.78:99
-chr1	2617505	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=92;Dels=0.00;HRun=0;HaplotypeScore=81.67;MQ=32.33;MQ0=11;OQ=247.78;QD=2.69;SB=-60.73	GT:AD:DP:GL:GQ	0/1:40,39:40:-40.11,-12.05,-107.49:99
-chr1	2617521	rs56279030	G	C	42.50	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DB;DP=107;Dels=0.00;HRun=0;HaplotypeScore=51.30;MQ=31.83;MQ0=12;QD=0.40;SB=0.26	GT:AD:DP:GL:GQ	0/1:94,13:44:-20.79,-13.26,-170.49:75.34
-chr1	2617526	rs28536771	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=105;Dels=0.00;HRun=0;HaplotypeScore=63.55;MQ=32.40;MQ0=9;OQ=160.23;QD=1.53;SB=-3.57	GT:AD:DP:GL:GQ	0/1:45,55:37:-30.46,-11.15,-113.20:99
-chr1	2617584	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=146;Dels=0.00;HRun=0;HaplotypeScore=87.31;MQ=28.18;MQ0=10;OQ=524.04;QD=3.59;SB=-151.92	GT:AD:DP:GL:GQ	0/1:49,97:62:-74.37,-18.69,-162.12:99
-chr1	2617611	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=154;Dels=0.01;HRun=0;HaplotypeScore=176.05;MQ=27.08;MQ0=16;OQ=81.66;QD=0.53;SB=-0.83	GT:AD:DP:GL:GQ	0/1:126,24:59:-29.22,-17.77,-179.32:99
-chr1	2617617	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=150;Dels=0.00;HRun=0;HaplotypeScore=177.05;MQ=27.20;MQ0=14;OQ=126.07;QD=0.84;SB=8.21	GT:AD:DP:GL:GQ	0/1:125,25:58:-33.36,-17.47,-170.99:99
-chr1	2617626	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=140;Dels=0.00;HRun=0;HaplotypeScore=162.52;MQ=28.40;MQ0=11;OQ=508.32;QD=3.63;SB=-161.48	GT:AD:DP:GL:GQ	0/1:40,77:57:-73.89,-19.78,-125.32:99
-chr1	2617630	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=143;Dels=0.00;HRun=1;HaplotypeScore=122.08;MQ=28.20;MQ0=11;OQ=734.14;QD=5.13;SB=-361.31	GT:AD:DP:GL:GQ	0/1:73,47:61:-98.65,-21.95,-111.48:99
-chr1	2617659	rs55801140	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=159;Dels=0.00;HRun=0;HaplotypeScore=125.08;MQ=27.55;MQ0=12;OQ=175.93;QD=1.11;SB=23.11	GT:AD:DP:GL:GQ	0/1:141,12:44:-34.15,-13.27,-148.76:99
-chr1	2617668	rs28535687	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=135;Dels=0.00;HRun=0;HaplotypeScore=255.63;MQ=27.99;MQ0=8;OQ=172.40;QD=1.28;SB=-72.12	GT:AD:DP:GL:GQ	0/1:31,69:32:-40.65,-20.12,-107.26:99
-chr1	2617672	.	G	T	32.81	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=132;Dels=0.00;HRun=0;HaplotypeScore=245.46;MQ=28.29;MQ0=7;QD=0.25;SB=11.06	GT:AD:DP:GL:GQ	0/1:84,46:25:-14.10,-7.54,-64.41:65.64
-chr1	2617713	.	C	T	25.50	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=172;Dels=0.00;HRun=0;HaplotypeScore=235.92;MQ=23.71;MQ0=16;QD=0.15;SB=11.61	GT:AD:DP:GL:GQ	0/1:80,75:31:-15.18,-9.35,-88.30:58.32
-chr1	2617737	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=203;Dels=0.00;HRun=1;HaplotypeScore=196.10;MQ=25.34;MQ0=20;OQ=242.18;QD=1.19;SB=-124.57	GT:AD:DP:GL:GQ	0/1:154,44:50:-42.56,-15.06,-131.92:99
-chr1	2617767	.	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=128;Dels=0.00;HRun=0;HaplotypeScore=115.66;MQ=29.10;MQ0=18;OQ=374.38;QD=2.92;SB=-46.69	GT:AD:DP:GL:GQ	0/1:37,72:41:-53.07,-12.35,-97.04:99
-chr1	2617781	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=130;Dels=0.00;HRun=0;HaplotypeScore=110.28;MQ=28.42;MQ0=22;OQ=65.20;QD=0.50;SB=26.12	GT:AD:DP:GL:GQ	0/1:110,18:43:-22.77,-12.97,-156.99:98.03
-chr1	2617809	rs28698520	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=120;Dels=0.01;HRun=1;HaplotypeScore=154.47;MQ=26.46;MQ0=29;OQ=544.53;QD=4.54;SB=20.07	GT:AD:DP:GL:GQ	0/1:74,45:37:-68.88,-11.15,-59.02:99
-chr1	2617834	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=149;Dels=0.00;HRun=1;HaplotypeScore=142.69;MQ=25.75;MQ0=33;OQ=247.39;QD=1.66;SB=-8.79	GT:AD:DP:GL:GQ	0/1:101,20:44:-48.54,-20.52,-132.57:99
-chr1	2617846	.	T	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=163;Dels=0.00;HRun=0;HaplotypeScore=110.83;MQ=27.45;MQ0=31;OQ=574.67;QD=3.53;SB=-169.29	GT:AD:DP:GL:GQ	0/1:34,98:52:-84.16,-23.41,-106.75:99
-chr1	2617859	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=258;Dels=0.00;HRun=0;HaplotypeScore=189.65;MQ=26.24;MQ0=36;OQ=661.11;QD=2.56;SB=-188.93	GT:AD:DP:GL:GQ	0/1:183,74:74:-91.72,-22.32,-216.13:99
-chr1	2617878	.	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=308;Dels=0.00;HRun=0;HaplotypeScore=214.86;MQ=26.40;MQ0=36;OQ=1364.14;QD=4.43;SB=-695.16	GT:AD:DP:GL:GQ	0/1:245,61:100:-169.82,-30.12,-204.71:99
-chr1	2617913	rs61766463	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=276;Dels=0.00;HRun=0;HaplotypeScore=33.34;MQ=34.26;MQ0=23;OQ=345.85;QD=1.25;SB=54.43	GT:AD:DP:GL:GQ	0/1:130,145:134:-78.24,-40.37,-397.42:99
-chr1	2617929	rs61766464	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=313;Dels=0.00;HRun=0;HaplotypeScore=209.86;MQ=34.59;MQ0=24;OQ=2475.95;QD=7.91;SB=-469.20	GT:AD:DP:GL:GQ	0/1:207,106:147:-295.16,-44.28,-232.82:99
-chr1	2617945	rs61766465	G	A	678.02	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=327;Dels=0.00;HRun=0;HaplotypeScore=293.41;MQ=35.76;MQ0=33;QD=2.07;SB=57.72	GT:AD:DP:GL:GQ	0/1:285,42:156:-118.09,-47.00,-457.61:99
-chr1	2617948	.	A	T	1515.78	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=339;Dels=0.00;HRun=0;HaplotypeScore=339.78;MQ=35.84;MQ0=34;QD=4.47;SB=-315.59	GT:AD:DP:GL:GQ	0/1:267,71:155:-201.56,-46.69,-377.16:99
-chr1	2617953	rs61766466	C	A	621.95	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=348;Dels=0.00;HRun=0;HaplotypeScore=257.70;MQ=36.09;MQ0=43;QD=1.79;SB=55.33	GT:AD:DP:GL:GQ	0/1:287,49:168:-116.08,-50.61,-483.68:99
-chr1	2618063	rs28379532	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=143;Dels=0.02;HRun=0;HaplotypeScore=36.25;MQ=31.70;MQ0=29;OQ=1863.52;QD=13.03;SB=-253.52	GT:AD:DP:GL:GQ	0/1:27,111:85:-215.25,-25.61,-83.05:99
-chr1	2618135	rs28499404	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=183;Dels=0.00;HRun=0;HaplotypeScore=48.32;MQ=27.35;MQ0=42;OQ=347.83;QD=1.90;SB=-174.55	GT:AD:DP:GL:GQ	0/1:162,21:105:-69.72,-31.65,-366.58:99
-chr1	2618152	rs61766467	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=192;Dels=0.00;HRun=1;HaplotypeScore=85.82;MQ=26.36;MQ0=44;OQ=458.63;QD=2.39;SB=-15.83	GT:AD:DP:GL:GQ	0/1:151,41:104:-80.48,-31.33,-290.41:99
-chr1	2618186	rs28655771	A	G	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=193;Dels=0.00;HRun=1;HaplotypeScore=114.84;MQ=21.49;MQ0=56;OQ=2645.92;QD=13.71;SB=-1050.69	GT:AD:DP:GL:GQ	1/1:5,188:77:-268.22,-23.20,-0.04:99
-chr1	2618191	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=203;Dels=0.00;HRun=0;HaplotypeScore=161.00;MQ=22.90;MQ0=57;OQ=50.10;QD=0.25;SB=39.02	GT:AD:DP:GL:GQ	0/1:173,30:86:-34.21,-25.91,-268.48:82.93
-chr1	2618226	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=268;Dels=0.00;HRun=0;HaplotypeScore=192.42;MQ=33.49;MQ0=36;OQ=337.18;QD=1.26;SB=-53.39	GT:AD:DP:GL:GQ	0/1:227,40:152:-82.80,-45.80,-457.42:99
-chr1	2618254	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=296;Dels=0.00;HRun=0;HaplotypeScore=166.54;MQ=37.41;MQ0=24;OQ=808.97;QD=2.73;SB=-397.12	GT:AD:DP:GL:GQ	0/1:225,67:181:-140.83,-56.65,-515.36:99
-chr1	2618301	.	C	A	998.94	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=292;Dels=0.00;HRun=0;HaplotypeScore=277.61;MQ=43.53;MQ0=9;QD=3.42;SB=-458.03	GT:AD:DP:GL:GQ	0/1:215,74:195:-161.93,-58.75,-524.06:99
-chr1	2618303	.	C	A	591.91	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=295;Dels=0.00;HRun=0;HaplotypeScore=301.39;MQ=43.31;MQ0=10;QD=2.01;SB=-293.38	GT:AD:DP:GL:GQ	0/1:236,56:205:-124.23,-61.75,-600.14:99
-chr1	2618307	.	G	A	971.72	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=283;Dels=0.00;HRun=0;HaplotypeScore=193.14;MQ=43.47;MQ0=11;QD=3.43;SB=-273.43	GT:AD:DP:GL:GQ	0/1:228,48:199:-160.42,-59.96,-556.19:99
-chr1	2618320	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=309;Dels=0.00;HRun=0;HaplotypeScore=150.76;MQ=41.04;MQ0=29;OQ=452.34;QD=1.46;SB=-151.56	GT:AD:DP:GL:GQ	0/1:223,31:184:-121.13,-72.62,-509.07:99
-chr1	2618366	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=558;Dels=0.00;HRun=0;HaplotypeScore=219.65;MQ=26.44;MQ0=134;OQ=289.23;QD=0.52;SB=167.70	GT:AD:DP:GL:GQ	0/1:454,69:221:-105.97,-73.77,-728.70:99
-chr1	2618375	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=585;Dels=0.00;HRun=0;HaplotypeScore=337.36;MQ=25.16;MQ0=141;OQ=507.21;QD=0.87;SB=196.74	GT:AD:DP:GL:GQ	0/1:487,75:227:-128.47,-74.47,-700.80:99
-chr1	2618378	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=594;Dels=0.00;HRun=0;HaplotypeScore=307.01;MQ=24.92;MQ0=142;OQ=386.51;QD=0.65;SB=-74.59	GT:AD:DP:GL:GQ	0/1:524,66:225:-115.59,-73.65,-670.89:99
-chr1	2618414	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=573;Dels=0.00;HRun=1;HaplotypeScore=206.56;MQ=24.36;MQ0=140;OQ=719.44;QD=1.26;SB=-72.20	GT:AD:DP:GL:GQ	0/1:439,119:210:-138.50,-63.27,-592.09:99
-chr1	2618418	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=531;Dels=0.00;HRun=0;HaplotypeScore=181.25;MQ=24.54;MQ0=131;OQ=939.27;QD=1.77;SB=-76.38	GT:AD:DP:GL:GQ	0/1:427,103:204:-158.68,-61.47,-574.55:99
-chr1	2618432	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=412;Dels=0.00;HRun=0;HaplotypeScore=70.50;MQ=25.62;MQ0=105;OQ=877.24;QD=2.13;SB=-428.33	GT:AD:DP:GL:GQ	0/1:368,44:152:-136.86,-45.86,-364.87:99
-chr1	2618444	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=352;Dels=0.00;HRun=1;HaplotypeScore=46.24;MQ=26.18;MQ0=89;OQ=1301.34;QD=3.70;SB=170.58	GT:AD:DP:GL:GQ	0/1:167,181:143:-176.57,-43.15,-394.32:99
-chr1	2618459	rs61766471	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=309;Dels=0.00;HRun=0;HaplotypeScore=122.77;MQ=27.15;MQ0=60;OQ=430.68;QD=1.39;SB=-167.89	GT:AD:DP:GL:GQ	0/1:283,25:135:-87.04,-40.69,-380.50:99
-chr1	2618482	.	T	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=224;Dels=0.00;HRun=0;HaplotypeScore=91.95;MQ=32.62;MQ0=31;OQ=752.10;QD=3.36;SB=-248.53	GT:AD:DP:GL:GQ	0/1:115,107:101:-108.92,-30.43,-254.35:99
-chr1	2618501	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=234;Dels=0.01;HRun=4;HaplotypeScore=341.35;MQ=30.82;MQ0=33;OQ=155.62;QD=0.67;SB=92.01	GT:AD:DP:GL:GQ	0/1:155,66:98:-53.97,-35.12,-329.58:99
-chr1	2618530	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=231;Dels=0.00;HRun=0;HaplotypeScore=168.93;MQ=32.32;MQ0=29;OQ=236.35;QD=1.02;SB=-122.19	GT:AD:DP:GL:GQ	0/1:211,19:107:-59.16,-32.24,-318.05:99
-chr1	2618557	rs28411025	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=156;Dels=0.00;HRun=0;HaplotypeScore=133.44;MQ=39.19;MQ0=9;OQ=2883.82;QD=18.49;SB=-1383.19	GT:AD:DP:GL:GQ	0/1:27,128:92:-319.41,-27.74,-64.72:99
-chr1	2618577	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=228;Dels=0.01;HRun=1;HaplotypeScore=243.04;MQ=34.35;MQ0=14;OQ=206.46;QD=0.91;SB=-125.59	GT:AD:DP:GL:GQ	0/1:119,105:92:-51.66,-27.73,-260.87:99
-chr1	2618590	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=341;Dels=0.00;HRun=0;HaplotypeScore=269.37;MQ=32.40;MQ0=23;OQ=694.60;QD=2.04;SB=-10.03	GT:AD:DP:GL:GQ	0/1:206,129:134:-115.74,-43.00,-326.10:99
-chr1	2618603	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=385;Dels=0.00;HRun=0;HaplotypeScore=742.67;MQ=32.24;MQ0=20;OQ=374.09;QD=0.97;SB=-84.54	GT:AD:DP:GL:GQ	0/1:213,140:157:-94.37,-53.68,-577.68:99
-chr1	2618613	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=414;Dels=0.00;HRun=1;HaplotypeScore=803.50;MQ=31.66;MQ0=23;OQ=626.38;QD=1.51;SB=181.82	GT:AD:DP:GL:GQ	0/1:349,58:175:-118.68,-52.76,-621.84:99
-chr1	2618617	.	A	C	34.85	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=417;Dels=0.00;HRun=1;HaplotypeScore=645.23;MQ=31.22;MQ0=23;QD=0.08;SB=-15.32	GT:AD:DP:GL:GQ	0/1:232,176:163:-62.01,-55.24,-512.02:67.68
-chr1	2618648	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=485;Dels=0.00;HRun=0;HaplotypeScore=582.18;MQ=29.51;MQ0=32;OQ=1313.91;QD=2.71;SB=163.03	GT:AD:DP:GL:GQ	0/1:367,113:208:-197.35,-62.68,-695.38:99
-chr1	2618651	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=487;Dels=0.00;HRun=0;HaplotypeScore=686.95;MQ=29.46;MQ0=33;OQ=108.10;QD=0.22;SB=256.13	GT:AD:DP:GL:GQ	0/1:431,46:211:-84.08,-69.98,-671.09:99
-chr1	2618685	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=500;Dels=0.00;HRun=1;HaplotypeScore=291.67;MQ=27.86;MQ0=33;OQ=4318.30;QD=8.64;SB=-761.47	GT:AD:DP:GL:GQ	0/1:182,284:216:-430.83,-67.58,-458.35:99
-chr1	2618707	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=462;Dels=0.01;HRun=4;HaplotypeScore=721.39;MQ=29.06;MQ0=34;OQ=2615.02;QD=5.66;SB=-699.35	GT:AD:DP:GL:GQ	0/1:165,282:202:-327.27,-62.48,-383.70:99
-chr1	2618711	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=464;Dels=0.00;HRun=0;HaplotypeScore=458.70;MQ=28.79;MQ0=35;OQ=1658.43;QD=3.57;SB=-180.55	GT:AD:DP:GL:GQ	0/1:156,178:185:-246.74,-77.62,-433.93:99
-chr1	2618743	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=565;Dels=0.00;HRun=1;HaplotypeScore=594.08;MQ=28.52;MQ0=39;OQ=195.57;QD=0.35;SB=27.58	GT:AD:DP:GL:GQ	0/1:503,58:268:-103.62,-80.78,-771.76:99
-chr1	2618776	.	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=541;Dels=0.00;HRun=0;HaplotypeScore=502.52;MQ=30.93;MQ0=35;OQ=5244.83;QD=9.69;SB=-856.66	GT:AD:DP:GL:GQ	0/1:182,353:279:-523.48,-84.06,-514.94:99
-chr1	2618784	.	C	T	23.85	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=542;Dels=0.00;HRun=0;HaplotypeScore=612.02;MQ=31.33;MQ0=33;QD=0.04;SB=67.53	GT:AD:DP:GL:GQ	0/1:386,152:218:-71.34,-65.68,-703.92:56.67
-chr1	2618799	rs61766473	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=520;Dels=0.00;HRun=1;HaplotypeScore=456.03;MQ=31.14;MQ0=35;OQ=4809.01;QD=9.25;SB=-828.34	GT:AD:DP:GL:GQ	0/1:169,328:274:-479.90,-94.56,-523.76:99
-chr1	2618813	rs28570043	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=586;Dels=0.00;HRun=0;HaplotypeScore=299.20;MQ=30.92;MQ0=47;OQ=1856.68;QD=3.17;SB=-717.31	GT:AD:DP:GL:GQ	0/1:501,75:250:-270.75,-81.80,-777.18:99
-chr1	2618823	rs61766474	A	T	4860.03	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=562;Dels=0.00;HRun=0;HaplotypeScore=709.32;MQ=30.48;MQ0=44;QD=8.65;SB=-560.15	GT:AD:DP:GL:GQ	0/1:287,273:277:-485.00,-83.44,-550.46:99
-chr1	2618832	.	C	G	1479.75	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=512;Dels=0.00;HRun=2;HaplotypeScore=411.64;MQ=30.81;MQ0=42;QD=2.89;SB=-17.36	GT:AD:DP:GL:GQ	0/1:367,94:241:-231.26,-80.00,-778.36:99
-chr1	2618833	.	G	C	375.40	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=513;Dels=0.00;HRun=1;HaplotypeScore=505.52;MQ=30.67;MQ0=42;QD=0.73;SB=152.53	GT:AD:DP:GL:GQ	0/1:466,47:236:-112.05,-71.23,-847.97:99
-chr1	2618853	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=470;Dels=0.00;HRun=0;HaplotypeScore=742.82;MQ=31.02;MQ0=40;OQ=917.98;QD=1.95;SB=-4.91	GT:AD:DP:GL:GQ	0/1:336,89:211:-236.75,-141.67,-586.15:99
-chr1	2618854	rs61766475	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=465;Dels=0.00;HRun=1;HaplotypeScore=675.66;MQ=31.14;MQ0=39;OQ=3030.86;QD=6.52;SB=-170.15	GT:AD:DP:GL:GQ	0/1:129,210:216:-470.96,-164.59,-497.24:99
-chr1	2618865	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=505;Dels=0.00;HRun=0;HaplotypeScore=338.61;MQ=30.47;MQ0=44;OQ=342.56;QD=0.68;SB=-14.42	GT:AD:DP:GL:GQ	0/1:439,53:231:-117.83,-80.29,-726.19:99
-chr1	2618904	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=499;Dels=0.00;HRun=4;HaplotypeScore=608.12;MQ=29.15;MQ0=44;OQ=1769.15;QD=3.55;SB=89.28	GT:AD:DP:GL:GQ	0/1:280,197:227:-252.16,-71.97,-553.68:99
-chr1	2618905	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=514;Dels=0.00;HRun=0;HaplotypeScore=596.36;MQ=29.03;MQ0=46;OQ=337.81;QD=0.66;SB=-30.28	GT:AD:DP:GL:GQ	0/1:424,43:227:-138.22,-101.16,-705.27:99
-chr1	2618928	.	T	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=624;Dels=0.00;HRun=2;HaplotypeScore=323.04;MQ=29.42;MQ0=49;OQ=696.10;QD=1.12;SB=42.74	GT:AD:DP:GL:GQ	0/1:499,120:322:-169.90,-97.01,-976.27:99
-chr1	2618942	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=632;Dels=0.00;HRun=0;HaplotypeScore=427.92;MQ=29.57;MQ0=51;OQ=1430.20;QD=2.26;SB=-6.35	GT:AD:DP:GL:GQ	0/1:441,177:340:-255.05,-108.75,-1027.84:99
-chr1	2618944	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=660;Dels=0.01;HRun=1;HaplotypeScore=381.00;MQ=29.09;MQ0=58;OQ=94.18;QD=0.14;SB=-52.32	GT:AD:DP:GL:GQ	0/1:544,51:336:-209.60,-196.90,-1072.15:99
-chr1	2619010	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=979;Dels=0.00;HRun=0;HaplotypeScore=447.29;MQ=26.60;MQ0=70;OQ=796.25;QD=0.81;SB=-92.06	GT:AD:DP:GL:GQ	0/1:864,98:425:-220.34,-137.43,-1275.90:99
-chr1	2619053	rs28733941	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=909;Dels=0.00;HRun=0;HaplotypeScore=595.79;MQ=27.09;MQ0=60;OQ=13631.67;QD=15.00;SB=-2975.80	GT:AD:DP:GL:GQ	0/1:104,553:419:-1362.17,-600.80,-836.54:99
-chr1	2619065	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=1083;Dels=0.00;HRun=0;HaplotypeScore=883.09;MQ=27.27;MQ0=55;OQ=741.35;QD=0.68;SB=-174.53	GT:AD:DP:GL:GQ	0/1:939,125:552:-281.40,-203.98,-1716.07:99
-chr1	2619068	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=1124;Dels=0.00;HRun=1;HaplotypeScore=958.29;MQ=27.28;MQ0=55;OQ=693.79;QD=0.62;SB=-203.14	GT:AD:DP:GL:GQ	0/1:985,132:593:-257.34,-184.67,-1827.88:99
-chr1	2619088	rs28368434	T	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=1328;Dels=0.00;HRun=2;HaplotypeScore=334.46;MQ=28.00;MQ0=46;OQ=7035.59;QD=5.30;SB=-1628.81	GT:AD:DP:GL:GQ	0/1:1024,295:793:-702.56,-254.86,-2119.90:99
-chr1	2619105	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=1330;Dels=0.00;HRun=0;HaplotypeScore=932.09;MQ=28.23;MQ0=29;OQ=2367.59;QD=1.78;SB=-1159.72	GT:AD:DP:GL:GQ	0/1:991,151:799:-779.65,-539.60,-2921.50:99
-chr1	2619148	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=990;Dels=0.00;HRun=0;HaplotypeScore=340.48;MQ=27.70;MQ0=55;OQ=2332.09;QD=2.36;SB=-739.43	GT:AD:DP:GL:GQ	0/1:796,178:558:-439.22,-202.73,-1989.78:99
-chr1	2619186	.	A	C	371.93	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=419;Dels=0.00;HRun=2;HaplotypeScore=464.28;MQ=28.43;MQ0=32;QD=0.89;SB=-209.63	GT:AD:DP:GL:GQ	0/1:320,97:190:-97.71,-57.24,-585.62:99
-chr1	2619187	.	A	C	430.91	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=400;Dels=0.00;HRun=1;HaplotypeScore=324.16;MQ=28.26;MQ0=30;QD=1.08;SB=-112.57	GT:AD:DP:GL:GQ	0/1:310,88:169:-97.29,-50.91,-502.75:99
-chr1	2619196	rs61766477	C	T	639.34	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=339;Dels=0.00;HRun=0;HaplotypeScore=406.21;MQ=29.84;MQ0=24;QD=1.89;SB=-240.09	GT:AD:DP:GL:GQ	0/1:283,37:141:-134.06,-66.84,-411.36:99
-chr1	2619205	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=257;Dels=0.00;HRun=0;HaplotypeScore=259.69;MQ=32.70;MQ0=16;OQ=1928.35;QD=7.50;SB=-426.10	GT:AD:DP:GL:GQ	0/1:80,173:106:-228.05,-31.94,-159.03:99
-chr1	2619218	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=235;Dels=0.00;HRun=1;HaplotypeScore=278.38;MQ=35.10;MQ0=10;OQ=372.83;QD=1.59;SB=-167.14	GT:AD:DP:GL:GQ	0/1:174,58:82:-65.27,-24.71,-216.22:99
-chr1	2619230	.	G	A	206.96	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=238;Dels=0.00;HRun=1;HaplotypeScore=422.57;MQ=34.96;MQ0=8;QD=0.87;SB=86.30	GT:AD:DP:GL:GQ	0/1:192,38:100:-59.43,-35.45,-312.61:99
-chr1	2619232	.	T	C	831.94	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=232;Dels=0.00;HRun=0;HaplotypeScore=355.75;MQ=35.18;MQ0=8;QD=3.59;SB=-351.57	GT:AD:DP:GL:GQ	0/1:163,64:87:-112.72,-26.24,-194.80:99
-chr1	2619238	.	G	T	230.19	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=214;Dels=0.00;HRun=0;HaplotypeScore=374.27;MQ=36.67;MQ0=6;QD=1.08;SB=104.29	GT:AD:DP:GL:GQ	0/1:105,106:92:-54.02,-27.71,-267.56:99
-chr1	2619244	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=201;Dels=0.00;HRun=0;HaplotypeScore=269.42;MQ=37.21;MQ0=7;OQ=1921.19;QD=9.56;SB=-479.90	GT:AD:DP:GL:GQ	0/1:57,142:93:-223.42,-28.02,-104.14:99
-chr1	2619306	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=116;Dels=0.00;HRun=2;HaplotypeScore=23.50;MQ=42.95;MQ0=2;OQ=983.37;QD=8.48;SB=-151.45	GT:AD:DP:GL:GQ	0/1:49,66:80:-128.94,-27.32,-178.83:99
-chr1	2619313	.	T	G	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=97;Dels=0.00;HRun=0;HaplotypeScore=14.58;MQ=45.37;MQ0=2;OQ=717.70;QD=7.40;SB=-61.81	GT:AD:DP:GL:GQ	0/1:47,50:71:-96.45,-21.40,-150.45:99
-chr1	2619324	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=90;Dels=0.00;HRun=0;HaplotypeScore=29.83;MQ=44.91;MQ0=2;OQ=606.68;QD=6.74;SB=-59.89	GT:AD:DP:GL:GQ	0/1:45,45:58:-81.45,-17.50,-117.39:99
-chr1	2619346	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=198;Dels=0.01;HRun=2;HaplotypeScore=304.95;MQ=34.96;MQ0=2;OQ=1893.09;QD=9.56;SB=62.22	GT:AD:DP:GL:GQ	0/1:48,144:92:-224.02,-31.43,-163.64:99
-chr1	2619351	.	T	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=249;Dels=0.00;HRun=1;HaplotypeScore=417.56;MQ=32.10;MQ0=4;OQ=1347.04;QD=5.41;SB=71.23	GT:AD:DP:GL:GQ	0/1:80,143:111:-171.44,-33.46,-209.78:99
-chr1	2619360	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=388;Dels=0.00;HRun=1;HaplotypeScore=438.87;MQ=28.93;MQ0=6;OQ=112.12;QD=0.29;SB=98.35	GT:AD:DP:GL:GQ	0/1:301,77:156:-68.00,-53.51,-526.40:99
-chr1	2619395	rs61766478	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=748;Dels=0.00;HRun=0;HaplotypeScore=964.64;MQ=26.94;MQ0=26;OQ=5287.26;QD=7.07;SB=128.59	GT:AD:DP:GL:GQ	0/1:216,518:288:-527.73,-89.49,-471.13:99
-chr1	2619416	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=775;Dels=0.00;HRun=0;HaplotypeScore=727.49;MQ=27.55;MQ0=26;OQ=6889.43;QD=8.89;SB=178.09	GT:AD:DP:GL:GQ	0/1:249,511:342:-687.94,-103.01,-497.11:99
-chr1	2619432	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=738;Dels=0.01;HRun=0;HaplotypeScore=785.98;MQ=28.56;MQ0=15;OQ=287.49;QD=0.39;SB=162.31	GT:AD:DP:GL:GQ	0/1:586,116:299:-161.89,-129.86,-1001.87:99
-chr1	2619446	rs61766479	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=555;Dels=0.00;HRun=1;HaplotypeScore=580.47;MQ=30.08;MQ0=12;OQ=4833.38;QD=8.71;SB=183.30	GT:AD:DP:GL:GQ	0/1:214,317:283:-482.34,-118.04,-540.99:99
-chr1	2619465	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=306;Dels=0.02;HRun=1;HaplotypeScore=404.44;MQ=32.23;MQ0=6;OQ=129.50;QD=0.42;SB=102.00	GT:AD:DP:GL:GQ	0/1:203,74:120:-64.50,-48.27,-416.86:99
-chr1	2619467	rs61766480	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=303;Dels=0.02;HRun=1;HaplotypeScore=363.13;MQ=31.91;MQ0=6;OQ=4502.12;QD=14.86;SB=-1253.39	GT:AD:DP:GL:GQ	0/1:40,252:153:-449.21,-45.80,-111.82:99
-chr1	2619477	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=279;Dels=0.00;HRun=0;HaplotypeScore=335.87;MQ=32.02;MQ0=7;OQ=542.66;QD=1.95;SB=122.33	GT:AD:DP:GL:GQ	0/1:161,107:129:-96.42,-38.87,-351.57:99
-chr1	2619489	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=268;Dels=0.00;HRun=1;HaplotypeScore=215.67;MQ=32.52;MQ0=8;OQ=1128.11;QD=4.21;SB=95.32	GT:AD:DP:GL:GQ	0/1:114,145:131:-166.02,-49.92,-331.55:99
-chr1	2619505	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=271;Dels=0.00;HRun=0;HaplotypeScore=305.81;MQ=31.15;MQ0=10;OQ=135.21;QD=0.50;SB=68.22	GT:AD:DP:GL:GQ	0/1:237,31:129:-55.67,-38.86,-389.56:99
-chr1	2619511	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=262;Dels=0.00;HRun=0;HaplotypeScore=356.76;MQ=30.03;MQ0=11;OQ=250.01;QD=0.95;SB=47.18	GT:AD:DP:GL:GQ	0/1:212,49:118:-63.84,-35.55,-351.09:99
-chr1	2619524	rs34081960	A	G	343.80	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=216;Dels=0.00;HRun=1;HaplotypeScore=217.57;MQ=30.42;MQ0=7;QD=1.59;SB=47.18	GT:AD:DP:GL:GQ	0/1:179,33:102:-68.39,-30.73,-325.69:99
-chr1	2619526	.	C	A	23.86	DPFilter;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=205;Dels=0.00;HRun=1;HaplotypeScore=236.96;MQ=30.18;MQ0=8;QD=0.12;SB=44.17	GT:AD:DP:GL:GQ	0/1:190,11:95:-34.28,-28.61,-300.58:56.68
-chr1	2619527	.	A	C	538.74	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=197;Dels=0.00;HRun=1;HaplotypeScore=224.55;MQ=30.05;MQ0=8;QD=2.73;SB=-87.11	GT:AD:DP:GL:GQ	0/1:122,73:87:-83.37,-26.21,-226.60:99
-chr1	2619530	.	T	G	866.27	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=179;Dels=0.00;HRun=1;HaplotypeScore=215.21;MQ=31.06;MQ0=6;QD=4.84;SB=12.12	GT:AD:DP:GL:GQ	0/1:87,85:86:-126.63,-36.72,-179.70:99
-chr1	2619534	.	A	G	264.68	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=172;Dels=0.00;HRun=1;HaplotypeScore=280.66;MQ=30.98;MQ0=7;QD=1.54;SB=41.16	GT:AD:DP:GL:GQ	0/1:139,33:74:-52.04,-22.29,-233.98:99
-chr1	2619544	.	C	T	108.85	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=155;Dels=0.06;HRun=0;HaplotypeScore=267.97;MQ=31.40;MQ0=5;QD=0.70;SB=38.12	GT:AD:DP:GL:GQ	0/1:124,16:57:-34.75,-20.58,-177.62:99
-chr1	2619546	.	C	G	37.35	DPFilter;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=150;Dels=0.00;HRun=0;HaplotypeScore=251.96;MQ=31.91;MQ0=5;QD=0.25;SB=38.15	GT:AD:DP:GL:GQ	0/1:138,7:61:-25.40,-18.38,-245.36:70.19
-chr1	2619553	.	A	G	821.41	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=118;Dels=0.00;HRun=0;HaplotypeScore=113.41;MQ=33.54;MQ0=5;QD=6.96;SB=23.10	GT:AD:DP:GL:GQ	0/1:33,83:56:-102.29,-16.87,-105.73:99
-chr1	2619570	rs12757527	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=89;Dels=0.00;HRun=1;HaplotypeScore=61.91;MQ=39.68;MQ0=1;OQ=223.25;QD=2.51;SB=41.15	GT:AD:DP:GL:GQ	0/1:39,49:45:-39.17,-13.56,-132.69:99
-chr1	2619576	rs11516512	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=78;Dels=0.00;HRun=0;HaplotypeScore=85.98;MQ=40.41;MQ0=1;OQ=1215.90;QD=15.59;SB=-537.94	GT:AD:DP:GL:GQ	0/1:9,69:47:-139.03,-14.16,-23.39:92.31
-chr1	2619644	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=123;Dels=0.00;HRun=0;HaplotypeScore=167.24;MQ=38.77;MQ0=11;OQ=65.21;QD=0.53;SB=59.09	GT:AD:DP:GL:GQ	0/1:83,36:47:-23.99,-14.18,-125.75:98.05
-chr1	2619667	rs12757684	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=110;Dels=0.02;HRun=3;HaplotypeScore=150.20;MQ=38.48;MQ0=2;OQ=87.98;QD=0.80;SB=-4.94	GT:AD:DP:GL:GQ	0/1:62,46:39:-23.84,-11.75,-110.18:99
-chr1	2619672	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=111;Dels=0.00;HRun=2;HaplotypeScore=165.55;MQ=38.18;MQ0=2;OQ=67.69;QD=0.61;SB=56.21	GT:AD:DP:GL:GQ	0/1:58,23:45:-37.64,-27.58,-156.78:99
-chr1	2619717	rs35537872	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=101;Dels=0.00;HRun=0;HaplotypeScore=158.55;MQ=37.91;MQ0=1;OQ=82.21;QD=0.81;SB=12.47	GT:AD:DP:GL:GQ	0/1:41,55:41:-23.87,-12.36,-127.50:99
-chr1	2619725	.	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=111;Dels=0.00;HRun=0;HaplotypeScore=160.68;MQ=38.53;MQ0=0;OQ=110.57;QD=1.00;SB=59.22	GT:AD:DP:GL:GQ	0/1:96,15:49:-29.10,-14.76,-154.28:99
-chr1	2619755	rs35198281	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=99;Dels=0.00;HRun=0;HaplotypeScore=135.67;MQ=40.63;MQ0=1;OQ=77.36;QD=0.78;SB=-26.15	GT:AD:DP:GL:GQ	0/1:44,49:41:-23.37,-12.36,-121.95:99
-chr1	2619802	.	G	A	11.69	LowQual	AC=1;AF=0.50;AN=2;DP=99;Dels=0.00;HRun=1;HaplotypeScore=127.16;MQ=33.63;MQ0=4;QD=0.12;SB=-22.48	GT:AD:DP:GL:GQ	0/1:79,20:38:-15.87,-11.45,-120.55:44.22
-chr1	2619811	rs11516513	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=96;Dels=0.00;HRun=1;HaplotypeScore=94.34;MQ=31.96;MQ0=5;OQ=1057.97;QD=11.02;SB=-282.04	GT:AD:DP:GL:GQ	0/1:29,63:37:-120.23,-11.15,-15.87:47.21
-chr1	2619844	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=94;Dels=0.00;HRun=0;HaplotypeScore=163.21;MQ=35.54;MQ0=9;OQ=150.26;QD=1.60;SB=-85.59	GT:AD:DP:GL:GQ	0/1:35,58:32:-27.96,-9.65,-83.83:99
-chr1	2619873	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=139;Dels=0.00;HRun=1;HaplotypeScore=84.94;MQ=33.03;MQ0=22;OQ=528.32;QD=3.80;SB=-259.93	GT:AD:DP:GL:GQ	0/1:45,94:55:-72.69,-16.57,-137.30:99
-chr1	2619885	rs4648686	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=143;Dels=0.00;HRun=0;HaplotypeScore=76.46;MQ=34.20;MQ0=29;OQ=72.77;QD=0.51;SB=-32.15	GT:AD:DP:GL:GQ	0/1:107,35:58:-28.03,-17.47,-178.69:99
-chr1	2619907	.	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=129;Dels=0.02;HRun=0;HaplotypeScore=75.23;MQ=35.05;MQ0=37;OQ=78.76;QD=0.61;SB=20.08	GT:AD:DP:GL:GQ	0/1:80,29:48:-28.88,-17.72,-148.42:99
-chr1	2619934	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=114;Dels=0.00;HRun=0;HaplotypeScore=66.32;MQ=35.85;MQ0=29;OQ=172.74;QD=1.52;SB=-28.24	GT:AD:DP:GL:GQ	0/1:48,66:48:-35.03,-14.47,-147.33:99
-chr1	2619955	rs6604996	C	G	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=109;Dels=0.00;HRun=0;HaplotypeScore=63.40;MQ=33.93;MQ0=36;OQ=1440.37;QD=13.21;SB=-479.54	GT:AD:DP:GL:GQ	1/1:0,108:38:-147.67,-11.48,-0.04:99
-chr1	2620070	rs12740972	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=97;Dels=0.00;HRun=0;HaplotypeScore=47.55;MQ=45.30;MQ0=8;OQ=554.48;QD=5.72;SB=-255.88	GT:AD:DP:GL:GQ	0/1:70,21:53:-74.72,-15.98,-142.31:99
-chr1	2620085	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=118;Dels=0.00;HRun=0;HaplotypeScore=54.16;MQ=39.71;MQ0=11;OQ=120.34;QD=1.02;SB=-33.16	GT:AD:DP:GL:GQ	0/1:69,45:56:-32.19,-16.87,-164.99:99
-chr1	2620124	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=144;Dels=0.00;HRun=0;HaplotypeScore=63.81;MQ=34.92;MQ0=3;OQ=525.60;QD=3.65;SB=47.19	GT:AD:DP:GL:GQ	0/1:42,93:57:-80.08,-24.23,-172.63:99
-chr1	2620133	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=151;Dels=0.00;HRun=1;HaplotypeScore=107.36;MQ=34.37;MQ0=3;OQ=432.59;QD=2.86;SB=-11.69	GT:AD:DP:GL:GQ	0/1:52,96:55:-63.12,-16.58,-172.84:99
-chr1	2620148	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=170;Dels=0.00;HRun=3;HaplotypeScore=138.11;MQ=33.81;MQ0=6;OQ=406.05;QD=2.39;SB=-68.70	GT:AD:DP:GL:GQ	0/1:52,113:57:-61.06,-17.17,-159.71:99
-chr1	2620167	.	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=206;Dels=0.00;HRun=1;HaplotypeScore=129.33;MQ=31.98;MQ0=15;OQ=238.76;QD=1.16;SB=-5.73	GT:AD:DP:GL:GQ	0/1:136,68:69:-47.94,-20.78,-212.90:99
-chr1	2620268	rs12741311	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=78;Dels=0.00;HRun=0;HaplotypeScore=74.94;MQ=48.87;MQ0=0;OQ=615.93;QD=7.90;SB=-166.53	GT:AD:DP:GL:GQ	0/1:39,39:52:-80.54,-15.66,-101.64:99
-chr1	2620338	.	A	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=100;Dels=0.00;HRun=0;HaplotypeScore=10.27;MQ=42.72;MQ0=7;OQ=159.57;QD=1.60;SB=-79.74	GT:AD:DP:GL:GQ	0/1:47,53:53:-35.21,-15.97,-154.39:99
-chr1	2620373	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=141;Dels=0.00;HRun=0;HaplotypeScore=37.37;MQ=38.59;MQ0=9;OQ=479.31;QD=3.40;SB=-63.47	GT:AD:DP:GL:GQ	0/1:49,92:64:-70.51,-19.30,-148.48:99
-chr1	2620382	.	G	A	119.16	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=145;Dels=0.00;HRun=0;HaplotypeScore=95.95;MQ=37.22;MQ0=9;QD=0.82;SB=68.14	GT:AD:DP:GL:GQ	0/1:86,59:65:-34.81,-19.61,-177.00:99
-chr1	2620388	.	A	C	105.30	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=153;Dels=0.00;HRun=1;HaplotypeScore=83.57;MQ=35.41;MQ0=9;QD=0.69;SB=-45.48	GT:AD:DP:GL:GQ	0/1:132,21:67:-34.00,-20.19,-204.42:99
-chr1	2620390	rs28376921	A	C	238.82	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=152;Dels=0.00;HRun=3;HaplotypeScore=84.30;MQ=34.68;MQ0=9;QD=1.57;SB=-137.48	GT:AD:DP:GL:GQ	0/1:57,64:66:-69.75,-42.59,-188.12:99
-chr1	2620438	.	T	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=105;Dels=0.00;HRun=0;HaplotypeScore=39.76;MQ=41.64;MQ0=7;OQ=388.27;QD=3.70;SB=-212.33	GT:AD:DP:GL:GQ	0/1:46,59:60:-60.19,-18.08,-149.44:99
-chr1	2620448	.	T	C	36.03	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=101;Dels=0.00;HRun=0;HaplotypeScore=55.60;MQ=44.75;MQ0=3;QD=0.36;SB=59.63	GT:AD:DP:GL:GQ	0/1:72,27:62:-25.58,-18.69,-209.22:68.86
-chr1	2620451	rs28507126	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=100;Dels=0.00;HRun=0;HaplotypeScore=42.59;MQ=44.33;MQ0=4;OQ=207.39;QD=2.07;SB=-2.70	GT:AD:DP:GL:GQ	0/1:56,44:55:-40.61,-16.58,-162.04:99
-chr1	2620498	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=143;Dels=0.00;HRun=0;HaplotypeScore=117.30;MQ=35.77;MQ0=21;OQ=96.72;QD=0.68;SB=-10.89	GT:AD:DP:GL:GQ	0/1:119,24:63:-31.93,-18.98,-196.03:99
-chr1	2620509	.	C	A	44.02	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=155;Dels=0.00;HRun=1;HaplotypeScore=149.75;MQ=36.71;MQ0=19;QD=0.28;SB=8.48	GT:AD:DP:GL:GQ	0/1:122,32:70:-28.77,-21.09,-215.81:76.85
-chr1	2620530	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=120;Dels=0.01;HRun=0;HaplotypeScore=86.24;MQ=39.02;MQ0=10;OQ=202.63;QD=1.69;SB=-58.78	GT:AD:DP:GL:GQ	0/1:60,45:53:-46.29,-22.74,-131.05:99
-chr1	2620553	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=93;Dels=0.00;HRun=4;HaplotypeScore=12.66;MQ=42.96;MQ0=4;OQ=154.29;QD=1.66;SB=6.59	GT:AD:DP:GL:GQ	0/1:47,46:55:-35.28,-16.57,-164.62:99
-chr1	2620589	rs4648687	C	A	0.07	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=1;HaplotypeScore=19.10;MQ=49.13;MQ0=2;OQ=495.80;QD=9.01;SB=-265.29	GT:AD:DP:GL:GQ	0/1:36,19:38:-64.31,-11.45,-69.99:99
-chr1	2620786	rs12742092	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=51.45;MQ=48.85;MQ0=1;OQ=289.75;QD=5.57;SB=-99.04	GT:AD:DP:GL:GQ	0/1:36,16:30:-41.30,-9.04,-64.97:99
-chr1	2620835	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=95;Dels=0.00;HRun=0;HaplotypeScore=99.62;MQ=36.59;MQ0=7;OQ=441.17;QD=4.64;SB=-224.20	GT:AD:DP:GL:GQ	0/1:74,18:36:-60.73,-13.33,-87.56:99
-chr1	2620875	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=134;Dels=0.00;HRun=0;HaplotypeScore=107.69;MQ=35.97;MQ0=15;OQ=95.46;QD=0.71;SB=-26.90	GT:AD:DP:GL:GQ	0/1:113,19:59:-30.61,-17.78,-174.51:99
-chr1	2620960	.	T	A	14.94	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=39;Dels=0.00;HRun=0;HaplotypeScore=17.98;MQ=48.66;MQ0=1;QD=0.38;SB=38.15	GT:AD:DP:GL:GQ	0/1:35,4:38:-16.21,-11.45,-119.38:47.63
-chr1	2621024	.	C	A	47.37	LowQual	AC=1;AF=0.50;AN=2;DP=40;Dels=0.00;HRun=1;HaplotypeScore=15.73;MQ=45.56;MQ0=1;QD=1.18;SB=-9.87	GT:AD:DP:GL:GQ	0/1:33,7:35:-18.56,-10.54,-104.34:80.21
-chr1	2621154	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=50;Dels=0.00;HRun=0;HaplotypeScore=51.59;MQ=53.22;MQ0=2;OQ=488.50;QD=9.77;SB=-206.66	GT:AD:DP:GL:GQ	0/1:29,19:38:-63.61,-11.47,-88.44:99
-chr1	2621346	rs12746691	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=78.63;MQ=48.13;MQ0=0;OQ=876.62;QD=14.61;SB=-440.96	GT:AD:DP:GL:GQ	0/1:34,26:44:-104.20,-13.26,-62.31:99
-chr1	2621414	rs12746841	C	G	50.04	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=5.31;MQ=55.95;MQ0=0;OQ=526.83;QD=11.97;SB=-219.19	GT:AD:DP:GL:GQ	0/1:24,20:36:-66.82,-10.85,-82.62:99
-chr1	2621575	rs61766505	T	A	0.76	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=9.78;MQ=51.58;MQ0=2;OQ=514.79;QD=12.26;SB=-105.13	GT:AD:DP:GL:GQ	0/1:24,18:33:-64.70,-9.94,-57.89:99
-chr1	2621592	rs11516514	C	A	2.97	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=7.05;MQ=51.18;MQ0=2;OQ=412.67;QD=8.78;SB=-93.77	GT:AD:DP:GL:GQ	0/1:31,16:35:-55.10,-10.55,-68.38:99
-chr1	2621664	rs12743419	G	A	126.86	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=2.47;MQ=54.07;MQ0=3;OQ=805.45;QD=17.14;SB=-279.82	GT:AD:DP:GL:GQ	0/1:16,31:40:-95.89,-12.06,-46.66:99
-chr1	2621957	rs12751643	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.02;HRun=1;HaplotypeScore=33.34;MQ=53.32;MQ0=0;OQ=1019.18;QD=17.27;SB=-299.66	GT:AD:DP:GL:GQ	0/1:24,34:54:-121.47,-16.27,-70.01:99
-chr1	2622417	.	C	G	34.36	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=34;Dels=0.00;HRun=0;HaplotypeScore=2.97;MQ=22.88;MQ0=7;QD=1.01;SB=-10.00	GT:AD:DP:GL:GQ	0/1:28,6:20:-12.75,-6.03,-74.77:67.20
-chr1	2622422	rs11488613	G	T	0.62	PASS	AC=2;AF=1.00;AN=2;DB;DP=34;Dels=0.00;HRun=0;HaplotypeScore=6.76;MQ=21.77;MQ0=7;OQ=525.32;QD=15.45;SB=-10.00	GT:AD:DP:GL:GQ	1/1:3,31:16:-56.12,-4.82,-0.00:48.14
-chr1	2622433	rs12752340	C	A	26.89	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=3.94;MQ=20.67;MQ0=10;QD=0.75;SB=-10.00	GT:AD:DP:GL:GQ	0/1:30,6:16:-10.79,-4.82,-42.41:59.72
-chr1	2674088	.	C	G	42.96	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=11;Dels=0.00;HRun=0;HaplotypeScore=11.98;MQ=19.55;MQ0=6;QD=3.91;SB=-10.00	GT:AD:DP:GL:GQ	0/1:8,3:5:-9.09,-1.51,-12.64:75.79
-chr1	2674094	.	C	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=13;Dels=0.00;HRun=0;HaplotypeScore=17.86;MQ=18.47;MQ0=6;OQ=64.31;QD=4.95;SB=-10.00	GT:AD:DP:GL:GQ	0/1:10,3:4:-10.92,-1.20,-3.26:20.53
-chr1	2674111	.	T	A	27.07	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=15;Dels=0.00;HRun=1;HaplotypeScore=2.00;MQ=32.32;MQ0=6;QD=1.80;SB=-6.99	GT:AD:DP:GL:GQ	0/1:12,3:7:-8.10,-2.11,-18.86:59.90
-chr1	2674112	.	A	G	16.12	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=15;Dels=0.00;HRun=0;HaplotypeScore=2.00;MQ=32.32;MQ0=6;QD=1.07;SB=-6.99	GT:AD:DP:GL:GQ	0/1:12,3:7:-6.99,-2.11,-20.42:48.85
-chr1	2674407	.	A	G	0.04	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=39;Dels=0.00;HRun=0;HaplotypeScore=13.44;MQ=45.39;MQ0=5;OQ=445.12;QD=11.41;SB=-215.68	GT:AD:DP:GL:GQ	0/1:16,22:32:-57.44,-9.65,-56.21:99
-chr1	2674852	rs61766513	G	A	450.01	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=13.17;MQ0=18;OQ=519.69;QD=10.39;SB=-286.88	GT:AD:DP:GL:GQ	1/1:0,50:14:-55.56,-4.22,-0.00:42.14
-chr1	2676124	.	G	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=88;Dels=0.00;HRun=1;HaplotypeScore=15.64;MQ=24.04;MQ0=14;OQ=178.81;QD=2.03;SB=-90.56	GT:AD:DP:GL:GQ	0/1:59,29:40:-33.21,-12.05,-114.97:99
-chr1	2676150	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=95;Dels=0.00;HRun=0;HaplotypeScore=19.23;MQ=23.09;MQ0=22;OQ=221.70;QD=2.33;SB=-83.88	GT:AD:DP:GL:GQ	0/1:54,41:38:-36.91,-11.46,-90.41:99
-chr1	2676190	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=77;Dels=0.00;HRun=0;HaplotypeScore=39.71;MQ=18.24;MQ0=31;OQ=65.56;QD=0.85;SB=-25.50	GT:AD:DP:GL:GQ	0/1:64,13:22:-16.48,-6.63,-57.54:98.40
-chr1	2676191	.	G	A	29.02	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=75;Dels=0.00;HRun=0;HaplotypeScore=39.71;MQ=17.81;MQ0=31;QD=0.39;SB=26.10	GT:AD:DP:GL:GQ	0/1:60,14:18:-11.61,-5.43,-50.51:61.85
-chr1	2676208	.	G	A	16.39	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=54;Dels=0.00;HRun=0;HaplotypeScore=4.26;MQ=15.36;MQ0=32;QD=0.30;SB=-24.49	GT:AD:DP:GL:GQ	0/1:43,10:12:-8.53,-3.62,-33.94:49.13
-chr1	2676293	rs11486072	G	T	42.12	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=21.44;MQ0=18;QD=0.68;SB=83.26	GT:AD:DP:GL:GQ	0/1:53,9:41:-19.85,-12.35,-121.85:74.96
-chr1	2676409	.	C	G	16.08	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=100;Dels=0.00;HRun=0;HaplotypeScore=24.91;MQ=14.80;MQ0=58;QD=0.16;SB=-10.00	GT:AD:DP:GL:GQ	0/1:83,17:12:-8.50,-3.62,-44.92:48.81
-chr1	2677515	.	G	T	19.05	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=120;Dels=0.00;HRun=0;HaplotypeScore=14.46;MQ=8.37;MQ0=110;QD=0.16;SB=-10.00	GT:AD:DP:GL:GQ	0/1:117,3:8:-7.59,-2.41,-19.90:51.83
-chr1	2677525	.	C	T	16.29	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=114;Dels=0.00;HRun=1;HaplotypeScore=20.34;MQ=9.26;MQ0=102;QD=0.14;SB=-10.00	GT:AD:DP:GL:GQ	0/1:110,4:10:-7.91,-3.01,-27.95:49.02
-chr1	2677552	.	A	T	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=111;Dels=0.00;HRun=0;HaplotypeScore=12.35;MQ=15.52;MQ0=82;OQ=53.71;QD=0.48;SB=0.32	GT:AD:DP:GL:GQ	0/1:89,18:28:-23.83,-15.18,-91.71:86.54
-chr1	2677675	.	A	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=104;Dels=0.00;HRun=0;HaplotypeScore=15.33;MQ=33.22;MQ0=25;OQ=57.19;QD=0.55;SB=35.14	GT:AD:DP:GL:GQ	0/1:87,15:66:-28.89,-19.89,-231.82:90.03
-chr1	2677743	.	C	T	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=115;Dels=0.00;HRun=0;HaplotypeScore=4.26;MQ=19.03;MQ0=67;OQ=90.19;QD=0.78;SB=-10.00	GT:AD:DP:GL:GQ	0/1:98,17:39:-24.05,-11.75,-110.96:99
-chr1	2677829	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=128;Dels=0.00;HRun=0;HaplotypeScore=23.79;MQ=23.13;MQ0=70;OQ=279.18;QD=2.18;SB=-0.99	GT:AD:DP:GL:GQ	0/1:107,21:47:-45.38,-14.18,-109.88:99
-chr1	2677890	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=149;Dels=0.00;HRun=0;HaplotypeScore=41.46;MQ=39.72;MQ0=24;OQ=334.00;QD=2.24;SB=-111.40	GT:AD:DP:GL:GQ	0/1:125,24:98:-66.21,-29.53,-281.36:99
-chr1	2677918	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=135;Dels=0.00;HRun=0;HaplotypeScore=22.75;MQ=42.78;MQ0=7;OQ=406.29;QD=3.01;SB=-222.57	GT:AD:DP:GL:GQ	0/1:111,24:99:-73.74,-29.83,-281.76:99
-chr1	2678023	rs4601526	G	T	43.97	LowQual	AC=1;AF=0.50;AN=2;DB;DP=96;Dels=0.00;HRun=0;HaplotypeScore=8.77;MQ=39.66;MQ0=3;QD=0.46;SB=-45.56	GT:AD:DP:GL:GQ	0/1:69,27:71:-29.07,-21.39,-211.74:76.81
-chr1	2678153	rs4287119	C	T	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DB;DP=112;Dels=0.00;HRun=0;HaplotypeScore=21.76;MQ=40.92;MQ0=5;OQ=2547.58;QD=22.75;SB=-1076.65	GT:AD:DP:GL:GQ	0/1:21,91:87:-284.26,-26.22,-47.57:99
-chr1	2679458	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=80;Dels=0.00;HRun=1;HaplotypeScore=42.73;MQ=34.12;MQ0=11;OQ=188.41;QD=2.36;SB=-47.79	GT:AD:DP:GL:GQ	0/1:51,29:31:-31.49,-9.36,-91.42:99
-chr1	2679642	.	C	G	45.83	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=102;Dels=0.00;HRun=0;HaplotypeScore=7.58;MQ=33.48;MQ0=11;QD=0.45;SB=71.27	GT:AD:DP:GL:GQ	0/1:93,9:79:-31.68,-23.81,-299.21:78.67
-chr1	2679803	rs56221638	T	A	49.73	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=28.41;MQ=20.22;MQ0=17;QD=0.80;SB=-24.63	GT:AD:DP:GL:GQ	0/1:36,25:21:-14.59,-6.33,-59.48:82.57
-chr1	2679816	rs4648571	G	A	0.30	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=13.76;MQ=19.63;MQ0=17;OQ=484.56;QD=8.35;SB=18.94	GT:AD:DP:GL:GQ	1/1:9,49:16:-54.94,-4.82,-2.91:19.19
-chr1	2680538	rs58288263	C	A	0.59	PASS	AC=1;AF=0.50;AN=2;DB;DP=103;Dels=0.00;HRun=0;HaplotypeScore=1.52;MQ=19.45;MQ0=42;OQ=235.18;QD=2.28;SB=-135.60	GT:AD:DP:GL:GQ	0/1:70,33:45:-40.37,-13.56,-115.16:99
-chr1	2681143	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=141;Dels=0.00;HRun=0;HaplotypeScore=43.31;MQ=7.59;MQ0=129;OQ=216.62;QD=1.54;SB=-10.00	GT:AD:DP:GL:GQ	0/1:128,12:8:-27.36,-2.41,-6.90:44.81
-chr1	2681205	.	C	T	16.27	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=134;Dels=0.00;HRun=0;HaplotypeScore=11.46;MQ=9.18;MQ0=122;QD=0.12;SB=-10.00	GT:AD:DP:GL:GQ	0/1:130,4:11:-8.21,-3.31,-32.22:49.01
-chr1	2681386	.	T	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=85;Dels=0.02;HRun=1;HaplotypeScore=17.33;MQ=40.82;MQ0=2;OQ=547.52;QD=6.44;SB=26.11	GT:AD:DP:GL:GQ	0/1:58,25:71:-78.82,-20.79,-186.55:99
-chr1	2681420	.	A	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=107;Dels=0.00;HRun=0;HaplotypeScore=13.55;MQ=31.27;MQ0=32;OQ=249.95;QD=2.34;SB=17.08	GT:AD:DP:GL:GQ	0/1:90,15:70:-49.36,-21.09,-234.22:99
-chr1	2681440	.	T	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=118;Dels=0.00;HRun=2;HaplotypeScore=12.17;MQ=28.00;MQ0=51;OQ=57.67;QD=0.49;SB=-0.98	GT:AD:DP:GL:GQ	0/1:103,11:57:-26.23,-17.18,-176.09:90.51
-chr1	2681463	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=112;Dels=0.00;HRun=0;HaplotypeScore=17.45;MQ=24.10;MQ0=61;OQ=86.42;QD=0.77;SB=-10.00	GT:AD:DP:GL:GQ	0/1:104,8:47:-26.08,-14.16,-135.23:99
-chr1	2681473	.	C	T	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=109;Dels=0.00;HRun=1;HaplotypeScore=11.36;MQ=22.15;MQ0=63;OQ=86.11;QD=0.79;SB=-10.00	GT:AD:DP:GL:GQ	0/1:101,7:42:-24.54,-12.65,-127.26:99
-chr1	2681679	rs61766519	A	T	2.14	PASS	AC=1;AF=0.50;AN=2;DB;DP=109;Dels=0.00;HRun=0;HaplotypeScore=3.86;MQ=46.07;MQ0=2;OQ=403.94;QD=3.71;SB=-208.28	GT:AD:DP:GL:GQ	0/1:86,23:102:-74.40,-30.73,-305.98:99
-chr1	2681697	.	C	G	10.09	PASS	AC=1;AF=0.50;AN=2;DP=117;Dels=0.00;HRun=0;HaplotypeScore=2.15;MQ=45.11;MQ0=2;OQ=843.38;QD=7.21;SB=-230.77	GT:AD:DP:GL:GQ	0/1:84,33:113:-121.68,-34.06,-367.48:99
-chr1	2681715	rs4430271	G	A	32.27	PASS	AC=2;AF=1.00;AN=2;DB;DP=112;Dels=0.00;HRun=1;HaplotypeScore=3.54;MQ=44.60;MQ0=4;OQ=4104.48;QD=36.65;SB=-1313.32	GT:AD:DP:GL:GQ	1/1:1,111:104:-409.45,-31.34,-0.04:99
-chr1	2681869	.	T	C	23.42	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=66;Dels=0.00;HRun=0;HaplotypeScore=1.94;MQ=42.88;MQ0=2;QD=0.35;SB=71.26	GT:AD:DP:GL:GQ	0/1:51,15:54:-21.90,-16.27,-186.51:56.24
-chr1	2681986	rs11586212	G	A	7.71	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=1;HaplotypeScore=0.27;MQ=47.82;MQ0=3;OQ=510.08;QD=6.80;SB=56.19	GT:AD:DP:GL:GQ	0/1:53,22:70:-75.38,-21.09,-180.91:99
-chr1	2682337	.	G	A	7.34	PASS	AC=1;AF=0.50;AN=2;DP=43;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=27.22;MQ0=23;OQ=345.10;QD=8.03;SB=-10.00	GT:AD:DP:GL:GQ	0/1:20,23:16:-42.61,-4.82,-16.65:99
-chr1	2682347	.	G	T	0.70	PASS	AC=1;AF=0.50;AN=2;DP=40;Dels=0.00;HRun=1;HaplotypeScore=0.63;MQ=19.93;MQ0=26;OQ=183.77;QD=4.59;SB=-10.00	GT:AD:DP:GL:GQ	0/1:20,20:10:-24.67,-3.01,-11.27:82.62
-chr1	2682645	.	C	A	19.07	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=58;Dels=0.00;HRun=1;HaplotypeScore=2.93;MQ=11.47;MQ0=37;QD=0.33;SB=-0.98	GT:AD:DP:GL:GQ	0/1:31,27:8:-7.60,-2.41,-19.17:51.85
-chr1	2683816	rs10909957	C	T	271.77	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.42;MQ=46.26;MQ0=0;OQ=686.46;QD=13.46;SB=-268.23	GT:AD:DP:GL:GQ	0/1:24,27:45:-85.49,-13.56,-81.02:99
-chr1	2684356	rs6424062	G	A	144.95	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=3.39;MQ=59.15;MQ0=0;OQ=655.97;QD=13.39;SB=-112.11	GT:AD:DP:GL:GQ	0/1:26,23:46:-82.76,-13.88,-73.01:99
-chr1	2687573	rs4648459	G	T	323.17	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=1.16;MQ=60.00;MQ0=0;OQ=991.84;QD=18.37;SB=-411.82	GT:AD:DP:GL:GQ	0/1:20,34:49:-117.23,-14.76,-57.58:99
-chr1	2689509	rs4648499	A	C	571.48	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=812.32;QD=13.32;SB=-346.80	GT:AD:DP:GL:GQ	0/1:31,30:60:-102.59,-18.07,-113.17:99
-chr1	2689977	rs4648502	C	G	37.31	PASS	AC=1;AF=0.50;AN=2;DB;DP=32;Dels=0.00;HRun=0;HaplotypeScore=4.68;MQ=58.83;MQ0=0;OQ=362.80;QD=11.34;SB=-98.64	GT:AD:DP:GL:GQ	0/1:15,17:26:-47.41,-7.85,-58.24:99
-chr1	2691287	rs10909982	A	C	5.74	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=3;HaplotypeScore=1.88;MQ=58.74;MQ0=0;OQ=1314.76;QD=31.30;SB=-536.04	GT:AD:DP:GL:GQ	1/1:0,42:39:-135.08,-11.75,-0.02:99
-chr1	2691405	.	T	C	26.51	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=37;Dels=0.00;HRun=1;HaplotypeScore=1.83;MQ=54.55;MQ0=0;QD=0.72;SB=1.18	GT:AD:DP:GL:GQ	0/1:31,6:36:-16.78,-10.85,-121.87:59.34
-chr1	2691676	rs1456462	C	G	51.18	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=1;HaplotypeScore=3.07;MQ=56.36;MQ0=0;OQ=806.36;QD=17.53;SB=-304.60	GT:AD:DP:GL:GQ	0/1:21,25:41:-96.28,-12.36,-77.64:99
-chr1	2694331	rs12748553	C	T	3.51	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=8.78;MQ=58.48;MQ0=0;OQ=835.97;QD=17.06;SB=-250.13	GT:AD:DP:GL:GQ	0/1:21,26:46:-100.74,-13.86,-71.99:99
-chr1	2694778	rs55972083	G	T	162.91	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=1;HaplotypeScore=1.00;MQ=59.66;MQ0=0;OQ=915.47;QD=16.64;SB=-316.68	GT:AD:DP:GL:GQ	0/1:25,30:54:-111.10,-16.27,-82.95:99
-chr1	2697298	rs7526311	A	T	117.22	PASS	AC=1;AF=0.50;AN=2;DB;DP=19;Dels=0.00;HRun=0;HaplotypeScore=0.58;MQ=59.01;MQ0=0;OQ=185.29;QD=9.75;SB=-41.37	GT:AD:DP:GL:GQ	0/1:12,7:18:-27.23,-5.42,-39.59:99
-chr1	2697760	.	G	T	0.81	PASS	AC=1;AF=0.50;AN=2;DP=27;Dels=0.00;HRun=2;HaplotypeScore=0.96;MQ=60.00;MQ0=0;OQ=344.69;QD=12.77;SB=-29.36	GT:AD:DP:GL:GQ	0/1:13,14:25:-45.29,-7.54,-35.79:99
-chr1	2697817	rs57572926	T	A	7.58	PASS	AC=1;AF=0.50;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=59.48;MQ0=0;OQ=773.03;QD=21.47;SB=-134.51	GT:AD:DP:GL:GQ	0/1:11,25:35:-91.13,-10.54,-41.10:99
-chr1	2699252	rs12044475	G	A	223.02	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=2.82;MQ=59.73;MQ0=0;OQ=1184.05;QD=17.41;SB=-586.14	GT:AD:DP:GL:GQ	0/1:32,36:66:-141.59,-19.90,-99.06:99
-chr1	2699436	rs12024170	C	T	193.04	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=1;HaplotypeScore=0.73;MQ=59.75;MQ0=0;OQ=1445.81;QD=19.54;SB=-655.75	GT:AD:DP:GL:GQ	0/1:31,43:72:-169.56,-21.69,-100.95:99
-chr1	2699862	rs6687680	G	A	230.47	PASS	AC=1;AF=0.50;AN=2;DB;DP=90;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=59.28;MQ0=0;OQ=1732.28;QD=19.25;SB=-761.79	GT:AD:DP:GL:GQ	0/1:40,50:89:-203.33,-26.82,-125.78:99
-chr1	2700237	.	G	A	246.23	PASS	AC=1;AF=0.50;AN=2;DP=71;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.74;MQ0=0;OQ=1343.35;QD=18.92;SB=-523.75	GT:AD:DP:GL:GQ	0/1:31,40:71:-159.02,-21.40,-102.65:99
-chr1	2702030	rs12731995	A	G	434.35	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=677.81;QD=11.11;SB=-347.04	GT:AD:DP:GL:GQ	0/1:33,28:60:-89.15,-18.08,-132.37:99
-chr1	2703187	rs2377041	C	T	502.97	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=621.61;QD=15.54;SB=-277.29	GT:AD:DP:GL:GQ	0/1:21,19:39:-77.20,-11.76,-63.03:99
-chr1	2704632	.	T	C	38.02	LowQual	AC=1;AF=0.50;AN=2;DP=16;Dels=0.00;HRun=4;HaplotypeScore=7.59;MQ=52.48;MQ0=0;QD=2.38;SB=-19.89	GT:AD:DP:GL:GQ	0/1:10,6:12:-10.71,-3.62,-29.51:70.86
-chr1	2704685	.	G	A	22.35	LowQual	AC=1;AF=0.50;AN=2;DP=12;Dels=0.00;HRun=0;HaplotypeScore=7.62;MQ=56.04;MQ0=0;QD=1.86;SB=-34.51	GT:AD:DP:GL:GQ	0/1:9,2:7:-7.63,-2.11,-16.67:55.16
-chr1	2704950	.	A	G	2.25	PASS	AC=2;AF=1.00;AN=2;DP=18;Dels=0.00;HRun=0;HaplotypeScore=1.15;MQ=48.87;MQ0=0;OQ=588.34;QD=32.69;SB=-143.72	GT:AD:DP:GL:GQ	1/1:0,18:17:-62.42,-5.12,-0.01:51.15
-chr1	2705371	.	T	C	47.74	LowQual	AC=1;AF=0.50;AN=2;DP=19;Dels=0.00;HRun=1;HaplotypeScore=3.65;MQ=60.80;MQ0=0;QD=2.51;SB=-6.99	GT:AD:DP:GL:GQ	0/1:12,6:14:-12.28,-4.22,-38.37:80.58
-chr1	2705380	.	A	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=19;Dels=0.00;HRun=2;HaplotypeScore=2.68;MQ=59.93;MQ0=0;OQ=62.82;QD=3.31;SB=-3.98	GT:AD:DP:GL:GQ	0/1:14,5:17:-14.69,-5.13,-40.99:95.66
-chr1	2706146	.	A	G	47.67	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=34;Dels=0.00;HRun=5;HaplotypeScore=3.46;MQ=57.94;MQ0=0;QD=1.40;SB=47.18	GT:AD:DP:GL:GQ	0/1:26,7:27:-16.19,-8.14,-86.26:80.50
-chr1	2706767	rs751358	G	C	35.53	PASS	AC=1;AF=0.50;AN=2;DB;DP=15;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=240.08;QD=16.01;SB=-112.68	GT:AD:DP:GL:GQ	0/1:7,8:15:-31.82,-4.53,-27.47:99
-chr1	2708350	rs897627	T	C	68.67	PASS	AC=1;AF=0.50;AN=2;DB;DP=30;Dels=0.00;HRun=0;HaplotypeScore=2.53;MQ=59.23;MQ0=0;OQ=241.23;QD=8.04;SB=-88.78	GT:AD:DP:GL:GQ	0/1:18,12:26:-35.25,-7.84,-56.33:99
-chr1	2709162	rs897626	T	C	124.16	PASS	AC=1;AF=0.50;AN=2;DB;DP=31;Dels=0.00;HRun=0;HaplotypeScore=2.89;MQ=58.50;MQ0=0;OQ=297.67;QD=9.60;SB=-169.49	GT:AD:DP:GL:GQ	0/1:13,16:23:-39.99,-6.94,-39.26:99
-chr1	2709764	rs12725202	C	A	209.03	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=1.87;MQ=59.58;MQ0=0;OQ=806.35;QD=14.66;SB=-275.34	GT:AD:DP:GL:GQ	0/1:27,28:48:-98.38,-14.47,-61.56:99
-chr1	2711436	rs897623	A	G	190.36	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=1;HaplotypeScore=0.97;MQ=58.98;MQ0=0;OQ=627.29;QD=15.30;SB=-199.45	GT:AD:DP:GL:GQ	0/1:15,26:39:-77.77,-11.76,-60.17:99
-chr1	2712708	rs6692145	C	T	11.73	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=7.75;MQ=59.11;MQ0=0;OQ=873.72;QD=16.80;SB=-440.44	GT:AD:DP:GL:GQ	0/1:21,31:48:-105.13,-14.48,-65.51:99
-chr1	2713074	rs4648450	C	A	220.10	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=1.84;MQ=59.19;MQ0=0;OQ=931.32;QD=16.34;SB=-352.41	GT:AD:DP:GL:GQ	0/1:24,33:49:-111.18,-14.76,-58.95:99
-chr1	2713205	rs4648360	C	T	362.23	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=1;HaplotypeScore=0.99;MQ=59.64;MQ0=0;OQ=808.14;QD=12.63;SB=-348.52	GT:AD:DP:GL:GQ	0/1:38,26:64:-103.39,-19.29,-126.27:99
-chr1	2713822	rs11588256	T	C	179.59	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=1.73;MQ=59.44;MQ0=0;OQ=1164.73;QD=28.41;SB=-522.80	GT:AD:DP:GL:GQ	1/1:0,40:39:-122.64,-14.15,-2.58:99
-chr1	2715335	rs7537581	C	A	258.05	PASS	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.00;HRun=1;HaplotypeScore=0.58;MQ=59.30;MQ0=0;OQ=476.92;QD=14.45;SB=-256.43	GT:AD:DP:GL:GQ	0/1:16,17:32:-60.62,-9.64,-51.47:99
-chr1	2715367	rs56038961	C	T	199.13	PASS	AC=1;AF=0.50;AN=2;DB;DP=30;Dels=0.00;HRun=0;HaplotypeScore=0.58;MQ=58.45;MQ0=0;OQ=479.64;QD=15.99;SB=-264.20	GT:AD:DP:GL:GQ	0/1:12,18:27:-59.39,-8.14,-35.88:99
-chr1	2716724	rs17387572	C	G	92.23	PASS	AC=1;AF=0.50;AN=2;DB;DP=22;Dels=0.00;HRun=1;HaplotypeScore=2.10;MQ=58.95;MQ0=0;OQ=183.11;QD=8.32;SB=-57.73	GT:AD:DP:GL:GQ	0/1:14,8:19:-27.33,-5.74,-48.15:99
-chr1	2717498	rs10909879	G	A	568.71	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.17;MQ0=0;OQ=638.90;QD=14.20;SB=-321.91	GT:AD:DP:GL:GQ	0/1:24,21:43:-80.13,-12.96,-77.89:99
-chr1	2717664	rs10909880	C	T	111.56	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=1;HaplotypeScore=3.85;MQ=58.20;MQ0=0;OQ=901.98;QD=16.40;SB=-412.72	GT:AD:DP:GL:GQ	0/1:27,27:53:-109.45,-15.96,-95.84:99
-chr1	2718581	rs2290583	C	T	466.48	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.90;MQ0=0;OQ=858.25;QD=15.60;SB=-364.54	GT:AD:DP:GL:GQ	0/1:27,28:51:-104.48,-15.37,-82.61:99
-chr1	2720957	rs56242447	T	C	191.02	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=2.87;MQ=60.00;MQ0=0;OQ=720.09;QD=11.43;SB=-266.23	GT:AD:DP:GL:GQ	0/1:29,34:60:-93.39,-18.10,-112.64:99
-chr1	2725957	rs4648454	C	A	155.77	PASS	AC=2;AF=1.00;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=2.82;MQ=59.23;MQ0=0;OQ=2137.84;QD=35.63;SB=-968.57	GT:AD:DP:GL:GQ	1/1:0,60:60:-217.39,-18.07,-0.02:99
-chr1	2727346	rs4515734	C	T	401.62	PASS	AC=2;AF=1.00;AN=2;DB;DP=32;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.28;MQ0=0;OQ=1193.72;QD=37.30;SB=-333.34	GT:AD:DP:GL:GQ	1/1:0,32:32:-122.97,-9.64,-0.01:96.30
-chr1	2728125	rs11584658	C	T	220.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=2.70;MQ=58.92;MQ0=0;OQ=363.72;QD=9.33;SB=-203.89	GT:AD:DP:GL:GQ	0/1:25,14:38:-51.11,-11.46,-81.85:99
-chr1	2728509	.	C	G	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=28;Dels=0.00;HRun=2;HaplotypeScore=7.07;MQ=57.48;MQ0=0;OQ=153.44;QD=5.48;SB=38.15	GT:AD:DP:GL:GQ	0/1:17,11:22:-25.28,-6.65,-60.78:99
-chr1	2728983	rs12025517	T	C	254.56	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=1.15;MQ=59.46;MQ0=0;OQ=692.09;QD=16.10;SB=-320.61	GT:AD:DP:GL:GQ	0/1:17,25:42:-87.78,-15.29,-69.40:99
-chr1	2731560	rs897622	T	C	5.62	PASS	AC=2;AF=1.00;AN=2;DB;DP=37;Dels=0.00;HRun=2;HaplotypeScore=1.40;MQ=59.38;MQ0=0;OQ=1158.40;QD=31.31;SB=-281.53	GT:AD:DP:GL:GQ	1/1:0,37:35:-119.44,-10.55,-0.02:99
-chr1	2734276	rs56400103	G	A	253.28	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=60.00;MQ0=0;OQ=949.71;QD=17.92;SB=-409.46	GT:AD:DP:GL:GQ	0/1:24,29:51:-113.64,-15.38,-67.18:99
-chr1	2734570	rs12747919	T	C	241.01	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=2.05;MQ=59.34;MQ0=0;OQ=778.48;QD=12.36;SB=-342.05	GT:AD:DP:GL:GQ	0/1:32,31:63:-100.12,-18.99,-128.39:99
-chr1	2734737	rs12125787	G	A	71.93	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=3.70;MQ=57.83;MQ0=0;OQ=2028.15;QD=37.56;SB=-957.98	GT:AD:DP:GL:GQ	1/1:0,54:53:-206.42,-15.97,-0.02:99
-chr1	2735743	rs4609377	C	T	266.10	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=3.54;MQ=58.76;MQ0=0;OQ=803.58;QD=14.35;SB=-286.83	GT:AD:DP:GL:GQ	0/1:31,25:54:-99.92,-16.28,-93.51:99
-chr1	2735926	rs1001620	G	C	451.59	PASS	AC=1;AF=0.50;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=58.61;MQ0=0;OQ=977.15;QD=12.69;SB=-354.56	GT:AD:DP:GL:GQ	0/1:46,31:77:-124.21,-23.21,-202.34:99
-chr1	2739474	rs10797389	G	A	308.93	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=1.84;MQ=60.00;MQ0=0;OQ=750.99;QD=15.65;SB=-309.79	GT:AD:DP:GL:GQ	0/1:23,25:47:-92.55,-14.16,-81.12:99
-chr1	2739576	rs4648481	G	T	368.63	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=1.39;MQ=60.00;MQ0=0;OQ=793.99;QD=14.70;SB=-305.02	GT:AD:DP:GL:GQ	0/1:26,28:52:-98.35,-15.67,-82.42:99
-chr1	2739781	rs4648482	T	C	14.80	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=1;HaplotypeScore=4.29;MQ=58.44;MQ0=0;OQ=365.14;QD=8.69;SB=-69.92	GT:AD:DP:GL:GQ	0/1:24,18:40:-51.86,-12.06,-91.45:99
-chr1	2740297	rs1563471	C	T	85.39	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=5.94;MQ=59.22;MQ0=0;OQ=682.02;QD=11.56;SB=-286.79	GT:AD:DP:GL:GQ	0/1:33,26:55:-88.08,-16.60,-99.20:99
-chr1	2740756	rs12132067	G	A	288.53	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=2.87;MQ=59.52;MQ0=0;OQ=623.21;QD=12.98;SB=-250.12	GT:AD:DP:GL:GQ	0/1:27,21:48:-80.07,-14.46,-95.69:99
-chr1	2742125	rs7511879	A	G	408.25	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=1.42;MQ=59.68;MQ0=0;OQ=942.16;QD=16.24;SB=-438.99	GT:AD:DP:GL:GQ	0/1:24,34:55:-114.07,-16.57,-91.14:99
-chr1	2742553	rs10797390	C	T	146.24	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=1;HaplotypeScore=0.89;MQ=59.59;MQ0=0;OQ=1057.36;QD=18.88;SB=-301.83	GT:AD:DP:GL:GQ	0/1:24,32:56:-125.89,-16.87,-83.67:99
-chr1	2743097	rs12031493	A	G	99.82	PASS	AC=1;AF=0.50;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=5.23;MQ=59.34;MQ0=0;OQ=647.93;QD=9.26;SB=-314.90	GT:AD:DP:GL:GQ	0/1:40,29:67:-88.27,-20.19,-156.45:99
-chr1	2743232	rs11803074	T	C	136.13	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=1;HaplotypeScore=1.31;MQ=59.52;MQ0=0;OQ=450.58;QD=9.39;SB=-159.47	GT:AD:DP:GL:GQ	0/1:26,22:43:-61.31,-12.96,-94.61:99
-chr1	2743923	rs2377040	G	A	85.94	PASS	AC=2;AF=1.00;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=59.57;MQ0=0;OQ=1679.85;QD=39.07;SB=-699.34	GT:AD:DP:GL:GQ	1/1:0,43:43:-171.58,-12.96,-0.02:99
-chr1	2744048	rs6691019	A	G	253.73	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=599.61;QD=12.24;SB=-315.28	GT:AD:DP:GL:GQ	0/1:24,25:46:-77.11,-13.87,-86.95:99
-chr1	2744266	rs729045	A	G	494.21	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=550.14;QD=10.19;SB=-251.93	GT:AD:DP:GL:GQ	0/1:30,24:53:-74.27,-15.97,-120.98:99
-chr1	2744372	rs6680471	C	T	188.10	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=2;HaplotypeScore=0.73;MQ=58.81;MQ0=0;OQ=743.73;QD=13.52;SB=-388.16	GT:AD:DP:GL:GQ	0/1:30,25:50:-92.73,-15.07,-87.39:99
-chr1	2744840	rs7541827	T	G	3.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=2;HaplotypeScore=3.30;MQ=53.60;MQ0=0;OQ=317.87;QD=7.95;SB=-163.88	GT:AD:DP:GL:GQ	0/1:27,13:38:-46.52,-11.45,-85.79:99
-chr1	2745157	rs10909938	C	G	278.22	PASS	AC=1;AF=0.50;AN=2;DB;DP=79;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=58.10;MQ0=0;OQ=946.24;QD=11.98;SB=-426.32	GT:AD:DP:GL:GQ	0/1:47,32:78:-121.44,-23.53,-202.08:99
-chr1	2745633	rs10909941	A	G	382.13	PASS	AC=2;AF=1.00;AN=2;DB;DP=56;Dels=0.00;HRun=1;HaplotypeScore=-0.06;MQ=59.59;MQ0=0;OQ=1890.77;QD=33.76;SB=-793.15	GT:AD:DP:GL:GQ	1/1:0,56:54:-192.68,-16.26,-0.02:99
-chr1	2746148	rs4648382	C	T	75.36	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=4.95;MQ=58.25;MQ0=0;OQ=1103.18;QD=17.24;SB=-437.97	GT:AD:DP:GL:GQ	0/1:30,34:62:-132.29,-18.69,-91.91:99
-chr1	2746257	rs4648383	C	T	112.72	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=3;HaplotypeScore=0.16;MQ=59.45;MQ0=0;OQ=1198.75;QD=17.63;SB=-573.37	GT:AD:DP:GL:GQ	0/1:33,35:67:-143.34,-20.18,-115.97:99
-chr1	2746481	rs4648384	C	A	147.70	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=2;HaplotypeScore=2.23;MQ=58.55;MQ0=0;OQ=974.97;QD=15.98;SB=-482.87	GT:AD:DP:GL:GQ	0/1:29,32:59:-118.55,-17.77,-93.40:99
-chr1	2746667	rs7516014	G	T	183	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=1;HaplotypeScore=1.66;MQ=60.00;MQ0=0;OQ=529.64;QD=10.81;SB=-238.43	GT:AD:DP:GL:GQ	0/1:28,20:47:-70.41,-14.16,-95.06:99
-chr1	2746749	rs7548023	T	G	93.22	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=2;HaplotypeScore=3.08;MQ=57.92;MQ0=0;OQ=762.24;QD=14.12;SB=-346.84	GT:AD:DP:GL:GQ	0/1:27,27:54:-95.77,-16.26,-99.72:99
-chr1	2747056	rs4648495	T	C	0.66	PASS	AC=1;AF=0.50;AN=2;DB;DP=34;Dels=0.00;HRun=4;HaplotypeScore=4.04;MQ=53.57;MQ0=0;OQ=334.06;QD=9.83;SB=-158.61	GT:AD:DP:GL:GQ	0/1:15,19:25:-44.23,-7.54,-43.47:99
-chr1	2747271	rs4648496	A	T	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=20.04;MQ=49.89;MQ0=0;OQ=70.38;QD=0.95;SB=-47.55	GT:AD:DP:GL:GQ	0/1:64,10:68:-30.81,-20.49,-219.78:99
-chr1	2747291	.	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=65;Dels=0.03;HRun=0;HaplotypeScore=32.13;MQ=46.89;MQ0=0;OQ=444.72;QD=6.84;SB=-168.12	GT:AD:DP:GL:GQ	0/1:44,19:62:-65.84,-18.08,-149.47:99
-chr1	2747315	.	A	T	0.07	PASS	AC=1;AF=0.50;AN=2;DP=56;Dels=0.00;HRun=0;HaplotypeScore=12.70;MQ=47.25;MQ0=0;OQ=757.92;QD=13.53;SB=-390.15	GT:AD:DP:GL:GQ	0/1:29,27:49:-93.84,-14.77,-85.21:99
-chr1	2747334	rs36040910	C	G	1014.60	SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.02;HRun=0;HaplotypeScore=10.13;MQ=46.42;MQ0=0;QD=19.14;SB=-531.73	GT:AD:DP:GL:GQ	0/1:24,28:52:-120.42,-15.67,-100.79:99
-chr1	2747338	.	G	C	826.30	SnpCluster	AC=1;AF=0.50;AN=2;DP=48;Dels=0.02;HRun=0;HaplotypeScore=9.97;MQ=47.26;MQ0=0;QD=17.21;SB=-358.43	GT:AD:DP:GL:GQ	0/1:23,24:47:-99.78,-13.86,-101.33:99
-chr1	2747339	.	A	T	752.39	SnpCluster	AC=1;AF=0.50;AN=2;DP=48;Dels=0.02;HRun=0;HaplotypeScore=3.00;MQ=47.26;MQ0=0;QD=15.67;SB=-313.68	GT:AD:DP:GL:GQ	0/1:23,24:47:-92.38,-13.86,-82.64:99
-chr1	2747369	.	A	T	3.22	PASS	AC=1;AF=0.50;AN=2;DP=49;Dels=0.00;HRun=0;HaplotypeScore=5.95;MQ=49.16;MQ0=0;OQ=703.99;QD=14.37;SB=-261.27	GT:AD:DP:GL:GQ	0/1:25,24:47:-87.84,-14.16,-92.00:99
-chr1	2747375	rs61766530	T	A	10.44	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=7.95;MQ=48.99;MQ0=0;OQ=615.25;QD=13.37;SB=-274.62	GT:AD:DP:GL:GQ	0/1:24,22:43:-77.76,-12.95,-81.15:99
-chr1	2747387	rs34464542	A	T	0.10	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.05;HRun=0;HaplotypeScore=17.99;MQ=50.33;MQ0=0;OQ=475.32;QD=10.80;SB=-181.51	GT:AD:DP:GL:GQ	0/1:25,17:43:-63.16,-12.35,-94.24:99
-chr1	2747397	rs12739189	C	T	56.98	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=5.47;MQ=51.77;MQ0=0;OQ=606.36;QD=14.44;SB=-321.86	GT:AD:DP:GL:GQ	0/1:23,19:42:-76.58,-12.66,-74.78:99
-chr1	2747562	rs35401657	A	G	338.79	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=1.16;MQ=54.94;MQ0=0;OQ=916.49;QD=12.73;SB=-443.41	GT:AD:DP:GL:GQ	0/1:37,34:70:-119.52,-24.59,-154.08:99
-chr1	2747592	rs34262355	G	A	349.69	PASS	AC=1;AF=0.50;AN=2;DB;DP=81;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=54.28;MQ0=0;OQ=1032.22;QD=12.74;SB=-451.44	GT:AD:DP:GL:GQ	0/1:45,35:78:-130.02,-23.51,-145.95:99
-chr1	2747610	rs34202711	A	G	414.76	PASS	AC=1;AF=0.50;AN=2;DB;DP=85;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=53.97;MQ0=0;OQ=1011.04;QD=11.89;SB=-504.68	GT:AD:DP:GL:GQ	0/1:42,43:82:-129.10,-24.71,-172.46:99
-chr1	2747660	rs1456461	C	T	603.75	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=55.82;MQ0=0;OQ=891.16;QD=15.63;SB=-457.95	GT:AD:DP:GL:GQ	0/1:30,27:57:-109.57,-17.17,-111.30:99
-chr1	2748044	rs12740180	C	A	413.82	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=606.44;QD=10.83;SB=-262.28	GT:AD:DP:GL:GQ	0/1:33,23:54:-80.19,-16.26,-114.41:99
-chr1	2748753	rs2889541	G	A	337.75	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=59.41;MQ0=0;OQ=1139.69;QD=16.05;SB=-477.50	GT:AD:DP:GL:GQ	0/1:37,34:70:-138.35,-21.10,-115.20:99
-chr1	2749666	rs12037615	A	T	1.80	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=5;HaplotypeScore=1.16;MQ=59.20;MQ0=0;OQ=1128.99;QD=14.86;SB=-549.41	GT:AD:DP:GL:GQ	0/1:40,36:76:-139.07,-22.89,-148.90:99
-chr1	2749715	rs12047690	C	T	131.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.63;MQ0=0;OQ=816.13;QD=12.95;SB=-150.20	GT:AD:DP:GL:GQ	0/1:36,27:60:-102.99,-18.09,-107.52:99
-chr1	2751235	rs12049543	C	A	405.31	PASS	AC=1;AF=0.50;AN=2;DB;DP=84;Dels=0.00;HRun=0;HaplotypeScore=1.16;MQ=59.56;MQ0=0;OQ=1060.86;QD=12.63;SB=-512.22	GT:AD:DP:GL:GQ	0/1:47,37:84:-134.67,-25.30,-168.73:99
-chr1	2751390	rs1840738	T	C	158.28	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=1.78;MQ=56.95;MQ0=0;OQ=466.03;QD=9.14;SB=-238.28	GT:AD:DP:GL:GQ	0/1:29,21:47:-64.06,-14.17,-105.57:99
-chr1	2751392	rs1840737	T	C	150.88	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=1.62;MQ=56.89;MQ0=0;OQ=432.09;QD=8.64;SB=-211.35	GT:AD:DP:GL:GQ	0/1:30,20:46:-60.36,-13.87,-105.49:99
-chr1	2751468	rs1840736	C	T	225.14	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=1.91;MQ=58.99;MQ0=0;OQ=538.81;QD=11.71;SB=-284.82	GT:AD:DP:GL:GQ	0/1:28,18:46:-71.04,-13.87,-86.92:99
-chr1	2751723	rs1456460	G	T	356.16	PASS	AC=1;AF=0.50;AN=2;DB;DP=87;Dels=0.00;HRun=0;HaplotypeScore=1.90;MQ=57.19;MQ0=0;OQ=1157.64;QD=13.31;SB=-342.38	GT:AD:DP:GL:GQ	0/1:48,39:87:-145.25,-26.21,-162.75:99
-chr1	2753129	rs6424080	T	C	316.66	PASS	AC=1;AF=0.50;AN=2;DB;DP=79;Dels=0.00;HRun=0;HaplotypeScore=0.96;MQ=59.51;MQ0=0;OQ=966.99;QD=12.24;SB=-274.18	GT:AD:DP:GL:GQ	0/1:43,36:77:-123.19,-23.21,-165.41:99
-chr1	2753241	rs6424081	G	C	7.87	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=4;HaplotypeScore=2.76;MQ=58.85;MQ0=0;OQ=855.86;QD=17.47;SB=-443.74	GT:AD:DP:GL:GQ	0/1:25,24:49:-103.64,-14.77,-108.86:99
-chr1	2753928	rs10909950	G	C	275.97	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.98;MQ0=0;OQ=738.28;QD=13.67;SB=-369.83	GT:AD:DP:GL:GQ	0/1:27,27:50:-92.19,-15.07,-120.46:99
-chr1	2754032	rs7553697	T	C	122.97	PASS	AC=2;AF=1.00;AN=2;DB;DP=31;Dels=0.00;HRun=0;HaplotypeScore=1.92;MQ=50.90;MQ0=0;OQ=845.37;QD=27.27;SB=-371.38	GT:AD:DP:GL:GQ	1/1:0,31:28:-88.15,-8.45,-0.03:84.18
-chr1	2754183	rs6424082	A	G	8.12	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=1;HaplotypeScore=5.05;MQ=58.51;MQ0=0;OQ=416.20;QD=9.46;SB=-192.43	GT:AD:DP:GL:GQ	0/1:23,21:40:-56.97,-12.06,-83.18:99
-chr1	2754298	rs6424083	C	G	173.34	PASS	AC=2;AF=1.00;AN=2;DB;DP=35;Dels=0.00;HRun=0;HaplotypeScore=0.93;MQ=55.35;MQ0=0;OQ=1296.80;QD=37.05;SB=-603.86	GT:AD:DP:GL:GQ	1/1:0,35:33:-133.29,-9.95,-0.02:99
-chr1	2754773	.	G	A	0.64	PASS	AC=1;AF=0.50;AN=2;DP=59;Dels=0.00;HRun=1;HaplotypeScore=3.22;MQ=60.00;MQ0=0;OQ=1109.61;QD=18.81;SB=-280.74	GT:AD:DP:GL:GQ	0/1:25,34:58:-131.72,-17.47,-86.47:99
-chr1	2754949	rs34133714	C	T	67.94	PASS	AC=1;AF=0.50;AN=2;DB;DP=34;Dels=0.00;HRun=0;HaplotypeScore=1.44;MQ=57.50;MQ0=0;OQ=577.42;QD=16.98;SB=-168.27	GT:AD:DP:GL:GQ	0/1:16,18:34:-71.28,-10.25,-51.84:99
-chr1	2755031	rs34352177	T	C	19.62	PASS	AC=1;AF=0.50;AN=2;DB;DP=69;Dels=0.00;HRun=1;HaplotypeScore=7.41;MQ=59.06;MQ0=0;OQ=899.29;QD=13.03;SB=-455.95	GT:AD:DP:GL:GQ	0/1:36,31:67:-116.13,-22.92,-145.73:99
-chr1	2755403	rs11806141	T	G	18.81	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DB;DP=69;Dels=0.00;HRun=1;HaplotypeScore=6.77;MQ=51.89;MQ0=9;QD=0.27;SB=74.23	GT:AD:DP:GL:GQ	0/1:49,20:51:-20.52,-15.36,-159.70:51.59
-chr1	2755508	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=79;Dels=0.06;HRun=2;HaplotypeScore=38.09;MQ=49.34;MQ0=4;OQ=65.07;QD=0.82;SB=71.26	GT:AD:DP:GL:GQ	0/1:58,15:62:-27.57,-17.78,-196.95:97.90
-chr1	2755529	.	T	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=73;Dels=0.00;HRun=1;HaplotypeScore=65.45;MQ=46.51;MQ0=7;OQ=513.73;QD=7.04;SB=-185.79	GT:AD:DP:GL:GQ	0/1:43,30:51:-70.02,-15.37,-107.03:99
-chr1	2755532	.	A	G	42.46	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=74;Dels=0.00;HRun=0;HaplotypeScore=67.89;MQ=46.23;MQ0=7;QD=0.57;SB=41.14	GT:AD:DP:GL:GQ	0/1:61,13:50:-22.60,-15.07,-170.16:75.29
-chr1	2755579	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=78;Dels=0.00;HRun=0;HaplotypeScore=21.20;MQ=45.33;MQ0=9;OQ=157.48;QD=2.02;SB=-23.25	GT:AD:DP:GL:GQ	0/1:60,12:47:-33.22,-14.19,-119.56:99
-chr1	2755596	rs11806928	A	G	0.11	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=12.62;MQ=45.10;MQ0=9;OQ=205.66;QD=2.78;SB=-15.21	GT:AD:DP:GL:GQ	0/1:58,16:54:-40.13,-16.28,-162.81:99
-chr1	2755612	.	G	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=73;Dels=0.00;HRun=0;HaplotypeScore=11.17;MQ=46.38;MQ0=5;OQ=126.58;QD=1.73;SB=14.62	GT:AD:DP:GL:GQ	0/1:63,10:57:-33.13,-17.19,-158.30:99
-chr1	2755632	rs10909952	C	T	0.08	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=10.73;MQ=46.85;MQ0=3;OQ=64.17;QD=0.87;SB=26.06	GT:AD:DP:GL:GQ	0/1:61,13:47:-23.87,-14.17,-131.74:97
-chr1	2755643	.	C	T	0.06	PASS	AC=1;AF=0.50;AN=2;DP=71;Dels=0.00;HRun=0;HaplotypeScore=7.11;MQ=46.66;MQ0=2;OQ=370.42;QD=5.22;SB=-83.91	GT:AD:DP:GL:GQ	0/1:46,20:49:-55.11,-14.78,-108.17:99
-chr1	2755657	rs61763677	G	T	0.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=86;Dels=0.00;HRun=1;HaplotypeScore=8.88;MQ=44.97;MQ0=5;OQ=282.63;QD=3.29;SB=-9.61	GT:AD:DP:GL:GQ	0/1:69,17:72:-53.24,-21.69,-193.61:99
-chr1	2755674	rs61763678	C	T	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DB;DP=106;Dels=0.00;HRun=0;HaplotypeScore=23.01;MQ=44.47;MQ0=7;OQ=292.56;QD=2.76;SB=-24.23	GT:AD:DP:GL:GQ	0/1:76,27:79:-56.37,-23.83,-203.58:99
-chr1	2755706	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=100;Dels=0.00;HRun=0;HaplotypeScore=46.46;MQ=43.46;MQ0=6;OQ=100.65;QD=1.01;SB=48.33	GT:AD:DP:GL:GQ	0/1:73,19:68:-33.86,-20.51,-216.35:99
-chr1	2755733	rs10909953	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=119;Dels=0.00;HRun=0;HaplotypeScore=134.56;MQ=44.60;MQ0=11;OQ=218.03;QD=1.83;SB=-68.77	GT:AD:DP:GL:GQ	0/1:91,18:82:-72.98,-47.89,-237.50:99
-chr1	2755738	rs10909954	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=118;Dels=0.00;HRun=0;HaplotypeScore=94.54;MQ=44.07;MQ0=12;OQ=119.63;QD=1.01;SB=15.66	GT:AD:DP:GL:GQ	0/1:86,29:80:-42.04,-26.79,-256.64:99
-chr1	2755753	.	G	A	11.77	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=126;Dels=0.00;HRun=1;HaplotypeScore=33.32;MQ=44.33;MQ0=10;QD=0.09;SB=66.29	GT:AD:DP:GL:GQ	0/1:116,10:95:-33.05,-28.62,-308.21:44.31
-chr1	2755755	rs57067996	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=130;Dels=0.00;HRun=1;HaplotypeScore=39.46;MQ=44.65;MQ0=10;OQ=1208.64;QD=9.30;SB=-349.24	GT:AD:DP:GL:GQ	0/1:72,52:91:-151.57,-27.42,-186.87:99
-chr1	2755787	.	A	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=209;Dels=0.00;HRun=0;HaplotypeScore=9.86;MQ=44.22;MQ0=18;OQ=212.29;QD=1.02;SB=84.79	GT:AD:DP:GL:GQ	0/1:175,28:147:-68.83,-44.32,-479.03:99
-chr1	2755816	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=216;Dels=0.00;HRun=1;HaplotypeScore=62.94;MQ=43.89;MQ0=23;OQ=172.99;QD=0.80;SB=63.05	GT:AD:DP:GL:GQ	0/1:192,24:159:-68.50,-47.92,-487.91:99
-chr1	2755844	rs4991850	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=164;Dels=0.00;HRun=0;HaplotypeScore=53.96;MQ=43.72;MQ0=16;OQ=1135.99;QD=6.93;SB=-394.17	GT:AD:DP:GL:GQ	0/1:112,52:121:-153.35,-36.47,-275.01:99
-chr1	2755847	rs57868894	T	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=161;Dels=0.00;HRun=1;HaplotypeScore=64.38;MQ=43.84;MQ0=16;OQ=859.67;QD=5.34;SB=-128.73	GT:AD:DP:GL:GQ	0/1:103,58:122:-126.01,-36.76,-296.17:99
-chr1	2755864	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=139;Dels=0.00;HRun=0;HaplotypeScore=32.56;MQ=44.46;MQ0=14;OQ=96.62;QD=0.70;SB=30.17	GT:AD:DP:GL:GQ	0/1:117,20:102:-43.73,-30.78,-282.87:99
-chr1	2755889	rs4991849	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=114;Dels=0.04;HRun=2;HaplotypeScore=40.28;MQ=47.08;MQ0=9;OQ=2321.13;QD=20.36;SB=-1120.12	GT:AD:DP:GL:GQ	0/1:18,92:93:-262.51,-27.11,-65.29:99
-chr1	2755910	rs12728224	T	G	16.56	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DB;DP=95;Dels=0.00;HRun=1;HaplotypeScore=2.13;MQ=49.38;MQ0=5;QD=0.17;SB=88.35	GT:AD:DP:GL:GQ	0/1:84,11:79:-28.73,-23.80,-253.95:49.30
-chr1	2755924	.	C	T	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=92;Dels=0.00;HRun=0;HaplotypeScore=18.40;MQ=49.90;MQ0=6;OQ=1394.92;QD=15.16;SB=-476.13	GT:AD:DP:GL:GQ	0/1:39,53:66:-162.68,-19.90,-75.57:99
-chr1	2755992	.	G	A	33.66	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=85;Dels=0.00;HRun=0;HaplotypeScore=19.55;MQ=45.20;MQ0=8;QD=0.40;SB=27.48	GT:AD:DP:GL:GQ	0/1:73,12:61:-25.05,-18.40,-176.14:66.50
-chr1	2756013	.	A	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=59;Dels=0.00;HRun=0;HaplotypeScore=17.90;MQ=45.32;MQ0=5;OQ=157.50;QD=2.67;SB=-33.78	GT:AD:DP:GL:GQ	0/1:38,21:37:-30.19,-11.15,-106.30:99
-chr1	2756025	.	C	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=55;Dels=0.00;HRun=1;HaplotypeScore=4.66;MQ=45.60;MQ0=4;OQ=63.13;QD=1.15;SB=26.12	GT:AD:DP:GL:GQ	0/1:45,10:38:-21.07,-11.48,-129.01:95.97
-chr1	2756051	rs4992290	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=36.34;MQ=44.26;MQ0=6;OQ=205.91;QD=3.38;SB=35.13	GT:AD:DP:GL:GQ	0/1:37,24:36:-34.74,-10.86,-87.18:99
-chr1	2756088	rs6676347	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=86;Dels=0.00;HRun=0;HaplotypeScore=50.22;MQ=41.73;MQ0=14;OQ=1315.11;QD=15.29;SB=-568.14	GT:AD:DP:GL:GQ	0/1:37,49:48:-149.26,-14.46,-35.10:99
-chr1	2756101	.	T	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=84;Dels=0.00;HRun=1;HaplotypeScore=21.36;MQ=40.87;MQ0=15;OQ=73.71;QD=0.88;SB=47.17	GT:AD:DP:GL:GQ	0/1:64,20:51:-26.02,-15.36,-158.57:99
-chr1	2756151	rs4648513	T	C	97.75	PASS	AC=2;AF=1.00;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=4.14;MQ=50.77;MQ0=9;OQ=1380.54;QD=20.92;SB=-651.39	GT:AD:DP:GL:GQ	1/1:9,57:48:-150.01,-14.48,-8.38:61.01
-chr1	2756174	rs59048447	G	A	70.95	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=5.41;MQ=56.28;MQ0=2;OQ=675.24;QD=12.74;SB=-328.31	GT:AD:DP:GL:GQ	0/1:26,27:46:-84.67,-13.86,-86.53:99
-chr1	2756831	rs4648515	C	T	238.63	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=2.65;MQ=59.11;MQ0=0;OQ=2661.31;QD=39.14;SB=-1337.11	GT:AD:DP:GL:GQ	1/1:1,67:68:-272.30,-20.49,-2.59:99
-chr1	2757061	rs4648518	A	G	438.92	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1894.09;QD=32.66;SB=-719.10	GT:AD:DP:GL:GQ	1/1:0,58:55:-193.02,-16.57,-0.02:99
-chr1	2757563	rs4648519	C	T	617.31	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.79;MQ0=0;OQ=2063.43;QD=38.21;SB=-1058.93	GT:AD:DP:GL:GQ	1/1:0,54:53:-209.94,-15.97,-0.02:99
-chr1	2758482	.	C	T	0.54	PASS	AC=1;AF=0.50;AN=2;DP=45;Dels=0.00;HRun=1;HaplotypeScore=1.05;MQ=50.17;MQ0=3;OQ=191.27;QD=4.25;SB=-120.51	GT:AD:DP:GL:GQ	0/1:31,14:38:-33.86,-11.45,-100.08:99
-chr1	2758751	.	T	G	48.69	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=30;Dels=0.00;HRun=1;HaplotypeScore=0.73;MQ=34.31;MQ0=7;QD=1.62;SB=-11.91	GT:AD:DP:GL:GQ	0/1:21,9:22:-14.78,-6.63,-62.96:81.53
-chr1	2758819	.	A	G	182.25	PASS	AC=2;AF=1.00;AN=2;DP=32;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=42.84;MQ0=2;OQ=868.67;QD=27.15;SB=-395.30	GT:AD:DP:GL:GQ	1/1:1,31:28:-90.48,-8.45,-0.03:84.20
-chr1	2758861	.	T	C	30.75	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=34;Dels=0.00;HRun=1;HaplotypeScore=1.14;MQ=44.85;MQ0=1;QD=0.90;SB=29.12	GT:AD:DP:GL:GQ	0/1:26,7:26:-14.19,-7.84,-86.43:63.58
-chr1	2758882	.	G	A	6.14	PASS	AC=1;AF=0.50;AN=2;DP=43;Dels=0.00;HRun=0;HaplotypeScore=4.04;MQ=35.37;MQ0=5;OQ=748.79;QD=17.41;SB=-255.79	GT:AD:DP:GL:GQ	0/1:14,29:29:-86.90,-8.74,-21.14:99
-chr1	2758933	.	T	C	5.05	PASS	AC=1;AF=0.50;AN=2;DP=36;Dels=0.00;HRun=0;HaplotypeScore=4.40;MQ=30.24;MQ0=6;OQ=270.13;QD=7.50;SB=-156.34	GT:AD:DP:GL:GQ	0/1:9,26:16:-35.12,-4.83,-17.51:99
-chr1	2758959	.	T	G	27.66	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=30;Dels=0.00;HRun=1;HaplotypeScore=-0.06;MQ=27.02;MQ0=8;QD=0.92;SB=-23.52	GT:AD:DP:GL:GQ	0/1:24,6:11:-9.36,-3.32,-25.67:60.48
-chr1	2759011	.	T	G	0.06	PASS	AC=1;AF=0.50;AN=2;DP=71;Dels=0.00;HRun=1;HaplotypeScore=3.83;MQ=18.26;MQ0=23;OQ=314.04;QD=4.42;SB=-69.87	GT:AD:DP:GL:GQ	0/1:37,34:26:-42.52,-7.83,-50.68:99
-chr1	2759038	.	G	T	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=92;Dels=0.00;HRun=0;HaplotypeScore=15.13;MQ=25.49;MQ0=29;OQ=89.07;QD=0.97;SB=-9.29	GT:AD:DP:GL:GQ	0/1:85,7:35:-22.74,-10.55,-90.79:99
-chr1	2759090	.	G	T	15.10	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=43;Dels=0.00;HRun=0;HaplotypeScore=11.61;MQ=28.51;MQ0=10;QD=0.35;SB=-6.99	GT:AD:DP:GL:GQ	0/1:32,11:16:-9.61,-4.83,-35.57:47.80
-chr1	2759130	rs61763686	T	C	37.28	LowQual	AC=2;AF=1.00;AN=2;DB;DP=3;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=18.78;MQ0=1;QD=12.43;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,3:2:-7.14,-0.60,-0.00:6.02
-chr1	2759142	.	G	A	1.53	PASS	AC=1;AF=0.50;AN=2;DP=6;Dels=0.00;HRun=0;HaplotypeScore=-0.12;MQ=18.78;MQ0=2;OQ=80.16;QD=13.36;SB=-10.00	GT:AD:DP:GL:GQ	0/1:3,3:4:-12.50,-1.21,-3.10:18.91
-chr1	2759167	.	G	T	2.82	PASS	AC=1;AF=0.50;AN=2;DP=22;Dels=0.00;HRun=0;HaplotypeScore=-0.06;MQ=26.71;MQ0=4;OQ=151.71;QD=6.90;SB=-6.99	GT:AD:DP:GL:GQ	0/1:16,6:14:-22.67,-4.22,-28.76:99
-chr1	2759193	.	C	T	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=49;Dels=0.00;HRun=0;HaplotypeScore=15.10;MQ=26.07;MQ0=10;OQ=142.00;QD=2.90;SB=-61.29	GT:AD:DP:GL:GQ	0/1:38,11:32:-27.13,-9.65,-83.88:99
-chr1	2759219	.	G	T	0.58	PASS	AC=1;AF=0.50;AN=2;DP=77;Dels=0.00;HRun=0;HaplotypeScore=0.57;MQ=27.42;MQ0=13;OQ=233.66;QD=3.03;SB=-10.31	GT:AD:DP:GL:GQ	0/1:59,18:48:-41.11,-14.46,-126.09:99
-chr1	2759237	rs10909961	G	A	0.07	PASS	AC=1;AF=0.50;AN=2;DB;DP=89;Dels=0.00;HRun=0;HaplotypeScore=9.56;MQ=30.14;MQ0=15;OQ=68.31;QD=0.77;SB=29.11	GT:AD:DP:GL:GQ	0/1:82,7:55:-26.69,-16.57,-172.16:99
-chr1	2759271	.	G	T	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=95;Dels=0.00;HRun=0;HaplotypeScore=3.94;MQ=31.60;MQ0=17;OQ=103.26;QD=1.09;SB=14.07	GT:AD:DP:GL:GQ	0/1:79,16:53:-29.57,-15.96,-157.88:99
-chr1	2759402	rs10752737	G	A	706.16	PASS	AC=2;AF=1.00;AN=2;DB;DP=87;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=50.81;MQ0=0;OQ=3330.93;QD=38.29;SB=-1475.63	GT:AD:DP:GL:GQ	1/1:0,87:84:-332.09,-25.31,-0.03:99
-chr1	2759793	rs6665646	C	T	285.69	PASS	AC=1;AF=0.50;AN=2;DB;DP=69;Dels=0.00;HRun=0;HaplotypeScore=0.33;MQ=59.67;MQ0=0;OQ=1210.11;QD=17.54;SB=-511.14	GT:AD:DP:GL:GQ	0/1:33,36:69:-145.09,-20.79,-106.44:99
-chr1	2760042	rs6679343	A	T	0.12	PASS	AC=2;AF=1.00;AN=2;DB;DP=66;Dels=0.00;HRun=6;HaplotypeScore=1.76;MQ=59.01;MQ0=0;OQ=2240.29;QD=33.94;SB=-793.89	GT:AD:DP:GL:GQ	1/1:0,66:63:-227.64,-18.99,-0.03:99
-chr1	2761186	.	C	G	0.63	PASS	AC=1;AF=0.50;AN=2;DP=44;Dels=0.00;HRun=4;HaplotypeScore=1.71;MQ=59.37;MQ0=0;OQ=541.38;QD=12.30;SB=-216.32	GT:AD:DP:GL:GQ	0/1:26,18:41:-69.78,-12.36,-101.99:99
-chr1	2761364	rs12743952	G	A	204.61	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=2.30;MQ=59.65;MQ0=0;OQ=611.70;QD=11.33;SB=-279.20	GT:AD:DP:GL:GQ	0/1:32,22:50:-79.52,-15.07,-100.94:99
-chr1	2761375	rs12743965	G	A	240.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=1.94;MQ=59.65;MQ0=0;OQ=726.42;QD=13.45;SB=-307.80	GT:AD:DP:GL:GQ	0/1:31,23:53:-91.89,-15.96,-108.39:99
-chr1	2761483	rs34161193	G	A	219.36	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=1.83;MQ=58.78;MQ0=0;OQ=505.10;QD=13.29;SB=-258.15	GT:AD:DP:GL:GQ	0/1:20,17:37:-64.94,-11.15,-70.90:99
-chr1	2761516	rs35134901	G	C	42.78	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=3;HaplotypeScore=0.79;MQ=58.89;MQ0=0;OQ=485.26;QD=11.55;SB=-253.13	GT:AD:DP:GL:GQ	0/1:25,17:38:-63.28,-11.47,-90.46:99
-chr1	2761538	rs35767265	C	A	434.92	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.62;MQ0=0;OQ=663.44;QD=13.54;SB=-277.32	GT:AD:DP:GL:GQ	0/1:26,23:47:-83.79,-14.16,-83.28:99
-chr1	2761907	rs35313744	A	C	3.99	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=4;HaplotypeScore=1.29;MQ=59.00;MQ0=0;OQ=545.25;QD=12.98;SB=-173.29	GT:AD:DP:GL:GQ	0/1:20,22:40:-69.86,-12.05,-71.88:99
-chr1	2762054	rs6694484	G	A	356.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=58.79;MQ0=0;OQ=715.90;QD=13.26;SB=-315.29	GT:AD:DP:GL:GQ	0/1:29,25:51:-90.24,-15.37,-99.20:99
-chr1	2762207	rs6675221	C	A	216.75	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=1;HaplotypeScore=1.31;MQ=59.45;MQ0=0;OQ=527.73;QD=12.57;SB=-249.28	GT:AD:DP:GL:GQ	0/1:21,20:39:-67.80,-11.75,-71.40:99
-chr1	2762658	rs12727394	T	C	169.21	PASS	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=1.41;MQ=60.00;MQ0=0;OQ=383.94;QD=11.63;SB=-133.29	GT:AD:DP:GL:GQ	0/1:17,15:29:-50.42,-8.74,-57.72:99
-chr1	2763115	rs12729596	C	T	224.28	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=1;HaplotypeScore=0.83;MQ=59.16;MQ0=0;OQ=609.66;QD=12.19;SB=-271.12	GT:AD:DP:GL:GQ	0/1:30,20:50:-79.31,-15.06,-107.78:99
-chr1	2763349	rs6660680	C	G	206.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=1;HaplotypeScore=2.16;MQ=59.65;MQ0=0;OQ=809.85;QD=15.28;SB=-407.93	GT:AD:DP:GL:GQ	0/1:28,25:49:-99.04,-14.78,-104.68:99
-chr1	2763426	rs6660759	C	T	169.45	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=1.05;MQ=58.89;MQ0=0;OQ=778.20;QD=18.53;SB=-350.90	GT:AD:DP:GL:GQ	0/1:15,27:38:-92.57,-11.46,-40.16:99
-chr1	2763555	rs6674204	A	G	358.56	PASS	AC=2;AF=1.00;AN=2;DB;DP=37;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.38;MQ0=0;OQ=1244.75;QD=33.64;SB=-466.51	GT:AD:DP:GL:GQ	1/1:0,37:36:-128.07,-10.85,-0.01:99
-chr1	2763913	rs7529000	A	G	539.75	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=590.27;QD=13.73;SB=-268.99	GT:AD:DP:GL:GQ	0/1:19,24:38:-73.77,-11.46,-59.16:99
-chr1	2765576	.	A	G	299.17	PASS	AC=1;AF=0.50;AN=2;DP=50;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.30;MQ0=1;OQ=708.87;QD=14.18;SB=-362.49	GT:AD:DP:GL:GQ	0/1:25,25:46:-88.03,-13.85,-86.85:99
-chr1	2765703	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=40;Dels=0.03;HRun=1;HaplotypeScore=65.65;MQ=34.06;MQ0=6;OQ=224.51;QD=5.61;SB=-69.85	GT:AD:DP:GL:GQ	0/1:16,18:20:-31.76,-6.02,-57.23:99
-chr1	2765716	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=41;Dels=0.00;HRun=2;HaplotypeScore=45.86;MQ=31.67;MQ0=6;OQ=473.81;QD=11.56;SB=-227.60	GT:AD:DP:GL:GQ	0/1:7,34:22:-57.29,-6.63,-24.20:99
-chr1	2765718	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=40;Dels=0.00;HRun=1;HaplotypeScore=49.51;MQ=31.73;MQ0=6;OQ=139.31;QD=3.48;SB=14.07	GT:AD:DP:GL:GQ	0/1:34,6:18:-22.64,-5.42,-43.65:99
-chr1	2765729	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=42;Dels=0.00;HRun=2;HaplotypeScore=101.24;MQ=39.70;MQ0=5;OQ=348.53;QD=8.30;SB=-73.03	GT:AD:DP:GL:GQ	0/1:25,16:29:-48.99,-10.85,-57.39:99
-chr1	2765740	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=29;Dels=0.00;HRun=1;HaplotypeScore=21.54;MQ=47.97;MQ0=0;OQ=288.34;QD=9.94;SB=-104.59	GT:AD:DP:GL:GQ	0/1:16,13:26:-39.95,-7.84,-58.99:99
-chr1	2765813	.	A	G	11.29	PASS	AC=1;AF=0.50;AN=2;DP=50;Dels=0.00;HRun=1;HaplotypeScore=3.58;MQ=51.84;MQ0=0;OQ=780.70;QD=15.61;SB=-390.27	GT:AD:DP:GL:GQ	0/1:21,28:48:-95.81,-14.46,-83.37:99
-chr1	2765894	.	A	C	0.06	PASS	AC=1;AF=0.50;AN=2;DP=36;Dels=0.00;HRun=0;HaplotypeScore=11.31;MQ=45.14;MQ0=0;OQ=337.42;QD=9.37;SB=-140.89	GT:AD:DP:GL:GQ	0/1:21,15:33:-46.96,-9.94,-71.34:99
-chr1	2765910	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=53;Dels=0.02;HRun=1;HaplotypeScore=33.31;MQ=38.51;MQ0=0;OQ=588.92;QD=11.11;SB=23.11	GT:AD:DP:GL:GQ	0/1:28,24:46:-75.73,-13.55,-102.75:99
-chr1	2765957	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=113;Dels=0.00;HRun=2;HaplotypeScore=176.91;MQ=27.98;MQ0=17;OQ=352.77;QD=3.12;SB=2.45	GT:AD:DP:GL:GQ	0/1:85,28:53:-54.54,-15.98,-142.28:99
-chr1	2765968	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=120;Dels=0.00;HRun=1;HaplotypeScore=118.45;MQ=28.99;MQ0=17;OQ=151.04;QD=1.26;SB=-15.93	GT:AD:DP:GL:GQ	0/1:95,25:59:-36.17,-17.78,-173.10:99
-chr1	2765995	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=72;Dels=0.00;HRun=0;HaplotypeScore=52.19;MQ=34.85;MQ0=7;OQ=128.24;QD=1.78;SB=-51.69	GT:AD:DP:GL:GQ	0/1:61,11:54:-32.38,-16.27,-203.82:99
-chr1	2765996	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=71;Dels=0.00;HRun=1;HaplotypeScore=51.72;MQ=35.05;MQ0=7;OQ=180.10;QD=2.54;SB=-41.96	GT:AD:DP:GL:GQ	0/1:59,12:54:-37.57,-16.27,-158.22:99
-chr1	2766902	rs34376289	C	T	393.03	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.48;MQ0=0;OQ=811.67;QD=17.64;SB=-367.51	GT:AD:DP:GL:GQ	0/1:20,26:45:-98.01,-13.56,-71.88:99
-chr1	2768626	rs10909992	C	T	335.77	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=0.58;MQ=58.57;MQ0=0;OQ=811.02;QD=12.48;SB=-416.42	GT:AD:DP:GL:GQ	0/1:35,29:62:-103.08,-18.70,-112.11:99
-chr1	2768752	rs12409918	A	C	74.45	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=1;HaplotypeScore=2.55;MQ=59.57;MQ0=0;OQ=965.61;QD=17.88;SB=-402.66	GT:AD:DP:GL:GQ	0/1:20,34:50:-114.91,-15.06,-60.43:99
-chr1	2768903	rs12409348	T	C	172.05	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=1;HaplotypeScore=1.28;MQ=60.00;MQ0=0;OQ=398.89;QD=10.50;SB=-78.75	GT:AD:DP:GL:GQ	0/1:20,17:35:-53.71,-10.54,-80.33:99
-chr1	2769019	rs10909995	C	G	17.82	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=2;HaplotypeScore=0.32;MQ=58.48;MQ0=0;OQ=1462.05;QD=36.55;SB=-653.43	GT:AD:DP:GL:GQ	1/1:0,40:35:-149.81,-10.55,-0.02:99
-chr1	2769620	rs28600853	C	T	67.23	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=1.73;MQ=57.53;MQ0=0;OQ=1091.29;QD=28.72;SB=-540.63	GT:AD:DP:GL:GQ	0/1:4,33:36:-123.26,-10.85,-13.62:27.66
-chr1	2769674	rs4648542	G	A	90.82	PASS	AC=1;AF=0.50;AN=2;DB;DP=28;Dels=0.00;HRun=0;HaplotypeScore=3.80;MQ=51.80;MQ0=1;OQ=271.91;QD=9.71;SB=-148.61	GT:AD:DP:GL:GQ	0/1:13,15:21:-36.80,-6.33,-39.42:99
-chr1	2769679	rs28367217	C	G	36.02	PASS	AC=1;AF=0.50;AN=2;DB;DP=25;Dels=0.00;HRun=0;HaplotypeScore=2.84;MQ=51.80;MQ0=1;OQ=209.26;QD=8.37;SB=2.04	GT:AD:DP:GL:GQ	0/1:15,10:18:-29.64,-5.43,-44.14:99
-chr1	2769692	rs28478242	A	G	0.04	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DB;DP=21;Dels=0.00;HRun=4;HaplotypeScore=0.82;MQ=53.88;MQ0=1;OQ=89.42;QD=4.26;SB=5.05	GT:AD:DP:GL:GQ	0/1:15,6:17:-17.35,-5.12,-46.13:99
-chr1	2769752	rs7542593	T	C	75.28	PASS	AC=1;AF=0.50;AN=2;DB;DP=22;Dels=0.00;HRun=0;HaplotypeScore=0.63;MQ=56.77;MQ0=0;OQ=136.56;QD=6.21;SB=-67.76	GT:AD:DP:GL:GQ	0/1:10,12:17:-22.07,-5.13,-38.52:99
-chr1	2769805	rs4648543	T	G	0.02	FDRtranche1.00to2.00	AC=2;AF=1.00;AN=2;DB;DP=26;Dels=0.00;HRun=4;HaplotypeScore=2.68;MQ=55.12;MQ0=0;OQ=754.89;QD=29.03;SB=-110.69	GT:AD:DP:GL:GQ	1/1:0,26:23:-79.08,-6.93,-0.01:69.18
-chr1	2770855	rs729178	T	G	35.70	PASS	AC=1;AF=0.50;AN=2;DB;DP=23;Dels=0.00;HRun=0;HaplotypeScore=2.79;MQ=57.97;MQ0=0;OQ=332.17;QD=14.44;SB=-62.09	GT:AD:DP:GL:GQ	0/1:7,16:18:-41.92,-5.42,-18.71:99
-chr1	2770856	rs729177	T	C	47.89	PASS	AC=1;AF=0.50;AN=2;DB;DP=23;Dels=0.00;HRun=0;HaplotypeScore=1.79;MQ=57.97;MQ0=0;OQ=319.36;QD=13.89;SB=-53.86	GT:AD:DP:GL:GQ	0/1:7,16:20:-41.25,-6.03,-26.63:99
-chr1	2772453	rs12119163	G	A	585.03	PASS	AC=2;AF=1.00;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1388.32;QD=37.52;SB=-625.84	GT:AD:DP:GL:GQ	1/1:0,37:36:-142.43,-10.85,-0.01:99
-chr1	2772603	rs7551868	T	C	19.40	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=1;HaplotypeScore=3.77;MQ=58.92;MQ0=0;OQ=1140.34;QD=29.24;SB=-578.97	GT:AD:DP:GL:GQ	1/1:0,39:37:-117.66,-11.16,-0.04:99
-chr1	2772900	rs4648402	T	C	156.21	PASS	AC=2;AF=1.00;AN=2;DB;DP=35;Dels=0.00;HRun=0;HaplotypeScore=0.58;MQ=58.00;MQ0=0;OQ=994.66;QD=28.42;SB=-468.49	GT:AD:DP:GL:GQ	1/1:0,35:33:-103.09,-9.96,-0.03:99
-chr1	2773675	rs12752112	G	C	9.49	PASS	AC=2;AF=1.00;AN=2;DB;DP=22;Dels=0.00;HRun=0;HaplotypeScore=0.63;MQ=58.95;MQ0=0;OQ=859.11;QD=39.05;SB=-325.45	GT:AD:DP:GL:GQ	1/1:0,22:21:-89.50,-6.33,-0.01:63.21
-chr1	2776554	rs1563470	T	C	23.92	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=4.69;MQ=60.00;MQ0=0;OQ=1838.24;QD=33.42;SB=-908.03	GT:AD:DP:GL:GQ	1/1:0,55:52:-187.42,-15.66,-0.02:99
-chr1	2777013	rs897616	C	G	7.16	PASS	AC=2;AF=1.00;AN=2;DB;DP=35;Dels=0.00;HRun=3;HaplotypeScore=1.07;MQ=58.26;MQ0=0;OQ=1193.61;QD=34.10;SB=-446.20	GT:AD:DP:GL:GQ	1/1:0,35:30:-122.96,-9.05,-0.02:90.29
-chr1	2777567	rs897620	C	G	317.44	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1920.95;QD=42.69;SB=-716.92	GT:AD:DP:GL:GQ	1/1:0,45:44:-195.69,-13.26,-0.01:99
-chr1	2778573	rs56273341	A	G	89.85	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.42;MQ0=0;OQ=1164.73;QD=29.12;SB=-590.57	GT:AD:DP:GL:GQ	1/1:0,40:37:-120.09,-11.16,-0.03:99
-chr1	2779035	rs12569164	T	C	119.85	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=49.75;MQ0=0;OQ=1623.80;QD=28.49;SB=-755.66	GT:AD:DP:GL:GQ	1/1:0,57:53:-166.02,-15.99,-0.06:99
-chr1	2779347	.	T	C	140.90	Indel	AC=1;AF=0.50;AN=2;DP=70;Dels=0.03;HRun=0;HaplotypeScore=53.64;MQ=31.59;MQ0=1;QD=2.01;SB=-93.61	GT:AD:DP:GL:GQ	0/1:59,9:55:-33.34,-15.96,-177.98:99
-chr1	2779357	rs55740077	T	C	137.39	Indel;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=69;Dels=0.00;HRun=0;HaplotypeScore=61.84;MQ=29.83;MQ0=1;QD=1.99;SB=-25.89	GT:AD:DP:GL:GQ	0/1:28,41:15:-21.54,-4.52,-37.07:99
-chr1	2779361	rs55927204	T	C	380.25	SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=69;Dels=0.00;HRun=0;HaplotypeScore=52.10;MQ=29.71;MQ0=1;QD=5.51;SB=-184.74	GT:AD:DP:GL:GQ	0/1:7,62:16:-46.13,-4.82,-12.60:77.76
-chr1	2779365	.	T	C	528.78	SnpCluster	AC=1;AF=0.50;AN=2;DP=73;Dels=0.00;HRun=0;HaplotypeScore=50.77;MQ=30.92;MQ0=1;QD=7.24;SB=-289.59	GT:AD:DP:GL:GQ	0/1:6,67:20:-62.19,-6.02,-12.60:65.71
-chr1	2779369	.	T	C	809.75	SnpCluster	AC=1;AF=0.50;AN=2;DP=77;Dels=0.00;HRun=0;HaplotypeScore=40.71;MQ=31.11;MQ0=1;QD=10.52;SB=-337.36	GT:AD:DP:GL:GQ	0/1:9,68:31:-93.60,-9.34,-19.91:99
-chr1	2779373	rs56012041	T	C	260.44	SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=37.08;MQ=32.24;MQ0=1;QD=3.38;SB=-116.63	GT:AD:DP:GL:GQ	0/1:28,49:21:-35.65,-6.33,-44.87:99
-chr1	2779421	rs5023660	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.02;HRun=3;HaplotypeScore=23.36;MQ=40.90;MQ0=1;OQ=1397.64;QD=21.18;SB=-647.72	GT:AD:DP:GL:GQ	0/1:24,41:55:-159.31,-16.27,-52.10:99
-chr1	2779423	rs56155638	T	C	0.07	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.02;HRun=0;HaplotypeScore=20.03;MQ=40.90;MQ0=1;OQ=1243.01;QD=18.83;SB=-541.02	GT:AD:DP:GL:GQ	0/1:23,42:56:-144.15,-16.57,-59.53:99
-chr1	2779766	rs2124661	C	G	42.55	PASS	AC=2;AF=1.00;AN=2;DB;DP=66;Dels=0.00;HRun=2;HaplotypeScore=0.16;MQ=49.71;MQ0=0;OQ=2767.03;QD=41.92;SB=-1222.51	GT:AD:DP:GL:GQ	1/1:0,66:63:-280.30,-18.98,-0.02:99
-chr1	2779832	rs2168531	C	T	260.48	PASS	AC=2;AF=1.00;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=2.21;MQ=50.55;MQ0=0;OQ=2553.68;QD=38.69;SB=-1139.52	GT:AD:DP:GL:GQ	1/1:0,66:66:-258.98,-19.89,-0.03:99
-chr1	2780005	.	G	C	32.52	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=43;Dels=0.00;HRun=1;HaplotypeScore=15.63;MQ=58.92;MQ0=0;QD=0.76;SB=44.18	GT:AD:DP:GL:GQ	0/1:33,10:29:-15.29,-8.76,-103.60:65.36
-chr1	2781003	rs10910023	C	T	121.93	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=0.48;MQ=59.11;MQ0=0;OQ=1930.80;QD=37.13;SB=-708.95	GT:AD:DP:GL:GQ	1/1:0,52:49:-196.68,-14.76,-0.01:99
-chr1	2781813	rs12131393	C	T	195.76	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=1;HaplotypeScore=0.67;MQ=60.00;MQ0=0;OQ=701.85;QD=13.76;SB=-265.19	GT:AD:DP:GL:GQ	0/1:28,23:44:-86.73,-13.26,-75.43:99
-chr1	2781975	rs12131450	C	T	0.88	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=4;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=915.40;QD=20.80;SB=-418.48	GT:AD:DP:GL:GQ	0/1:17,27:44:-108.08,-13.26,-61.20:99
-chr1	2784004	rs10909791	C	T	0.07	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=18.57;MQ=55.20;MQ0=0;OQ=554.87;QD=8.95;SB=-141.63	GT:AD:DP:GL:GQ	0/1:38,21:51:-74.16,-15.38,-99.65:99
-chr1	2784009	rs6673503	T	C	0.75	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=15.72;MQ=55.44;MQ0=0;OQ=828.36;QD=14.04;SB=-284.66	GT:AD:DP:GL:GQ	0/1:19,40:49:-100.91,-14.79,-59.84:99
-chr1	2784113	rs6658584	G	A	324.36	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.61;MQ0=0;OQ=573.55;QD=11.95;SB=-252.51	GT:AD:DP:GL:GQ	0/1:29,19:42:-73.29,-12.65,-86.05:99
-chr1	2784397	rs6668620	C	T	83.28	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=1;HaplotypeScore=0.73;MQ=58.97;MQ0=0;OQ=989.63;QD=21.99;SB=-434.99	GT:AD:DP:GL:GQ	0/1:12,32:41:-114.60,-12.35,-43.77:99
-chr1	2784411	rs10909793	G	T	285.59	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.95;MQ0=0;OQ=987.49;QD=22.44;SB=-485.97	GT:AD:DP:GL:GQ	0/1:11,33:43:-114.99,-12.95,-39.80:99
-chr1	2785397	rs6679954	T	C	177.95	PASS	AC=1;AF=0.50;AN=2;DB;DP=18;Dels=0.00;HRun=1;HaplotypeScore=1.43;MQ=57.39;MQ0=0;OQ=162.89;QD=9.05;SB=-99.99	GT:AD:DP:GL:GQ	0/1:9,8:15:-24.09,-4.52,-32.21:99
-chr1	2785861	rs10797340	G	C	110.31	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=2;HaplotypeScore=0.97;MQ=60.00;MQ0=0;OQ=2067.39;QD=39.01;SB=-1035.13	GT:AD:DP:GL:GQ	1/1:0,53:49:-210.35,-14.77,-0.02:99
-chr1	2786415	rs10752722	A	G	154.88	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=1.60;MQ=59.07;MQ0=0;OQ=1517.85;QD=30.36;SB=-724.72	GT:AD:DP:GL:GQ	1/1:0,50:49:-155.42,-14.78,-0.05:99
-chr1	2786479	rs4648406	T	C	92.49	PASS	AC=2;AF=1.00;AN=2;DB;DP=35;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=59.34;MQ0=0;OQ=883.04;QD=25.23;SB=-376.38	GT:AD:DP:GL:GQ	1/1:0,35:29:-91.92,-8.75,-0.03:87.18
-chr1	2787126	rs6424057	T	G	92.26	PASS	AC=2;AF=1.00;AN=2;DB;DP=43;Dels=0.00;HRun=1;HaplotypeScore=0.58;MQ=59.46;MQ0=0;OQ=1311.97;QD=30.51;SB=-464.84	GT:AD:DP:GL:GQ	1/1:0,43:41:-134.82,-12.36,-0.04:99
-chr1	2787716	rs10797342	C	T	575.89	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=717.10;QD=14.63;SB=-344.49	GT:AD:DP:GL:GQ	0/1:27,22:49:-89.77,-14.77,-84.62:99
-chr1	2788065	rs2124662	G	C	9.64	PASS	AC=1;AF=0.50;AN=2;DB;DP=32;Dels=0.00;HRun=2;HaplotypeScore=5.21;MQ=57.80;MQ0=0;OQ=437.50;QD=13.67;SB=-215.17	GT:AD:DP:GL:GQ	0/1:15,17:26:-54.88,-7.85,-48.57:99
-chr1	2788136	rs1563472	G	A	261.94	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=1.16;MQ=59.38;MQ0=0;OQ=469.47;QD=12.69;SB=-131.12	GT:AD:DP:GL:GQ	0/1:19,18:28:-58.68,-8.45,-41.51:99
-chr1	2788195	rs1563473	T	G	178.79	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=2.69;MQ=57.45;MQ0=0;OQ=577.74;QD=12.56;SB=-216.84	GT:AD:DP:GL:GQ	0/1:19,27:43:-74.02,-12.96,-66.19:99
-chr1	2788317	rs1563474	G	A	94.33	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=1;HaplotypeScore=3.84;MQ=58.45;MQ0=0;OQ=661.75;QD=14.71;SB=-298.81	GT:AD:DP:GL:GQ	0/1:21,24:41:-81.83,-12.37,-60.24:99
-chr1	2788572	rs4373707	T	C	44.63	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=5.22;MQ=58.97;MQ0=0;OQ=526.05;QD=11.69;SB=-185.63	GT:AD:DP:GL:GQ	0/1:22,23:42:-68.55,-12.66,-84.21:99
-chr1	2788907	rs2377038	A	G	118.41	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=3.81;MQ=59.09;MQ0=0;OQ=482.56;QD=10.49;SB=-194.43	GT:AD:DP:GL:GQ	0/1:24,21:41:-63.90,-12.36,-79.61:99
-chr1	2789039	rs729965	G	C	149.04	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=60.00;MQ0=0;OQ=2442.19;QD=42.11;SB=-956.71	GT:AD:DP:GL:GQ	1/1:0,58:57:-247.82,-17.18,-0.02:99
-chr1	2789321	rs897629	T	C	12.44	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=2;HaplotypeScore=3.68;MQ=58.87;MQ0=0;OQ=1220.90;QD=29.78;SB=-560.89	GT:AD:DP:GL:GQ	1/1:0,40:39:-125.71,-11.76,-0.03:99
-chr1	2789340	rs11580768	C	T	285.25	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=2.21;MQ=58.92;MQ0=0;OQ=699.84;QD=16.28;SB=-316.84	GT:AD:DP:GL:GQ	0/1:20,23:40:-85.33,-12.06,-59.14:99
-chr1	2789623	rs729419	G	T	32.76	PASS	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=4.03;MQ=56.89;MQ0=0;OQ=1157.82;QD=30.47;SB=-604.54	GT:AD:DP:GL:GQ	1/1:0,38:33:-119.38,-9.94,-0.01:99
-chr1	2789978	rs4233022	T	C	8.90	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=2;HaplotypeScore=1.47;MQ=58.32;MQ0=0;OQ=1306.00;QD=33.49;SB=-393.50	GT:AD:DP:GL:GQ	1/1:0,38:38:-137.49,-14.36,-3.31:99
-chr1	2790214	rs61763695	G	T	159.83	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=1;HaplotypeScore=0.82;MQ=59.41;MQ0=0;OQ=678.47;QD=17.40;SB=-357.12	GT:AD:DP:GL:GQ	0/1:15,24:37:-82.28,-11.15,-45.69:99
-chr1	2790614	rs2061229	A	G	424.36	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.99;MQ0=0;OQ=1321.60;QD=28.73;SB=-492.17	GT:AD:DP:GL:GQ	1/1:0,46:43:-135.79,-12.97,-0.04:99
-chr1	2791688	rs4648429	A	G	0.41	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.02;HRun=3;HaplotypeScore=3.60;MQ=59.05;MQ0=0;OQ=1300.58;QD=29.56;SB=-615.14	GT:AD:DP:GL:GQ	1/1:0,43:39:-133.67,-11.76,-0.03:99
-chr1	2791895	rs10737188	A	G	0.06	PASS	AC=2;AF=1.00;AN=2;DB;DP=36;Dels=0.00;HRun=3;HaplotypeScore=11.58;MQ=57.39;MQ0=0;OQ=1158.45;QD=32.18;SB=-423.17	GT:AD:DP:GL:GQ	1/1:0,36:33:-119.44,-9.94,-0.01:99
-chr1	2791912	rs12127835	C	T	0.23	PASS	AC=1;AF=0.50;AN=2;DB;DP=31;Dels=0.00;HRun=1;HaplotypeScore=15.40;MQ=57.73;MQ0=0;OQ=440.23;QD=14.20;SB=-189.24	GT:AD:DP:GL:GQ	0/1:15,16:28:-55.74,-8.44,-48.73:99
-chr1	2791917	rs12124890	G	A	0.74	PASS	AC=1;AF=0.50;AN=2;DB;DP=31;Dels=0.00;HRun=0;HaplotypeScore=10.20;MQ=56.96;MQ0=0;OQ=462.23;QD=14.91;SB=-204.21	GT:AD:DP:GL:GQ	0/1:14,16:28:-57.95,-8.44,-40.79:99
-chr1	2792072	rs10752725	T	C	491.80	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.34;MQ0=0;OQ=1748.59;QD=30.68;SB=-570.96	GT:AD:DP:GL:GQ	1/1:0,57:55:-178.49,-16.59,-0.05:99
-chr1	2792208	rs7552943	A	G	158.94	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=0.74;MQ=59.00;MQ0=0;OQ=672.02;QD=16.00;SB=-219.52	GT:AD:DP:GL:GQ	0/1:13,29:36:-81.33,-10.85,-44.36:99
-chr1	2792422	.	G	A	42.68	PASS	AC=1;AF=0.50;AN=2;DP=64;Dels=0.00;HRun=0;HaplotypeScore=1.78;MQ=59.28;MQ0=0;OQ=1176.82;QD=18.39;SB=-377.70	GT:AD:DP:GL:GQ	0/1:28,36:64:-140.25,-19.29,-99.03:99
-chr1	2793407	rs3001793	G	A	9.14	PASS	AC=2;AF=1.00;AN=2;DB;DP=30;Dels=0.00;HRun=1;HaplotypeScore=1.66;MQ=57.81;MQ0=0;OQ=925.83;QD=30.86;SB=-281.35	GT:AD:DP:GL:GQ	1/1:0,30:25:-96.18,-7.54,-0.02:75.22
-chr1	2793666	rs2377039	C	T	77.79	PASS	AC=1;AF=0.50;AN=2;DB;DP=25;Dels=0.00;HRun=0;HaplotypeScore=1.98;MQ=60.00;MQ0=0;OQ=452.51;QD=18.10;SB=-252.58	GT:AD:DP:GL:GQ	0/1:10,15:20:-54.56,-6.03,-20.77:99
-chr1	2794138	rs3001794	C	G	65.67	PASS	AC=1;AF=0.50;AN=2;DB;DP=27;Dels=0.00;HRun=0;HaplotypeScore=1.05;MQ=60.00;MQ0=0;OQ=352.40;QD=13.05;SB=-39.43	GT:AD:DP:GL:GQ	0/1:15,12:26:-46.37,-7.84,-60.81:99
-chr1	2800878	rs2842928	T	C	235.55	PASS	AC=2;AF=1.00;AN=2;DB;DP=27;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=901.11;QD=33.37;SB=-249.77	GT:AD:DP:GL:GQ	1/1:0,27:26:-93.71,-7.83,-0.01:78.23
-chr1	2802104	rs10909834	G	C	0.87	PASS	AC=1;AF=0.50;AN=2;DB;DP=36;Dels=0.00;HRun=3;HaplotypeScore=3.91;MQ=59.36;MQ0=0;OQ=721.69;QD=20.05;SB=-360.48	GT:AD:DP:GL:GQ	0/1:15,21:32:-85.11,-9.65,-46.55:99
-chr1	2803334	rs10909835	C	A	282.86	PASS	AC=1;AF=0.50;AN=2;DB;DP=69;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.29;MQ0=0;OQ=1113.78;QD=16.14;SB=-524.88	GT:AD:DP:GL:GQ	0/1:32,37:69:-135.44,-20.78,-115.35:99
-chr1	2809215	.	C	A	24.19	LowQual	AC=1;AF=0.50;AN=2;DP=36;Dels=0.00;HRun=0;HaplotypeScore=2.13;MQ=33.87;MQ0=3;QD=0.67;SB=-3.99	GT:AD:DP:GL:GQ	0/1:32,3:16:-10.52,-4.82,-48.73:57.01
-chr1	2812608	rs12091184	T	C	225.17	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=1;HaplotypeScore=-0.06;MQ=59.35;MQ0=0;OQ=707.81;QD=11.06;SB=-307.08	GT:AD:DP:GL:GQ	0/1:33,31:62:-92.76,-18.69,-131.04:99
-chr1	2813319	rs12035436	G	T	336.68	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=59.54;MQ0=0;OQ=779.74;QD=15.59;SB=-317.29	GT:AD:DP:GL:GQ	0/1:23,27:47:-95.42,-14.16,-69.60:99
-chr1	2815014	rs880724	C	T	302.73	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.57;MQ0=0;OQ=894.47;QD=16.56;SB=-357.16	GT:AD:DP:GL:GQ	0/1:25,29:52:-108.41,-15.68,-73.43:99
-chr1	2816229	rs34114281	G	A	56.60	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=1;HaplotypeScore=1.11;MQ=59.49;MQ0=0;OQ=818.99;QD=18.20;SB=-240.71	GT:AD:DP:GL:GQ	0/1:20,25:44:-98.44,-13.25,-71.30:99
-chr1	2816447	rs12738063	G	A	183.56	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=1.91;MQ=60.00;MQ0=0;OQ=436.36;QD=11.79;SB=-199.90	GT:AD:DP:GL:GQ	0/1:21,16:33:-56.87,-9.95,-58.54:99
-chr1	2819411	rs1869970	A	G	323.79	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=1;HaplotypeScore=0.95;MQ=58.68;MQ0=0;OQ=562.16;QD=12.22;SB=-263.95	GT:AD:DP:GL:GQ	0/1:23,23:46:-73.37,-13.87,-93.65:99
-chr1	2819722	rs10797359	G	A	80.30	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=2;HaplotypeScore=0.47;MQ=58.97;MQ0=0;OQ=661.62;QD=14.70;SB=-329.32	GT:AD:DP:GL:GQ	0/1:24,21:45:-83.00,-13.56,-85.88:99
-chr1	2819782	rs10797360	T	C	62.98	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=2.97;MQ=58.11;MQ0=0;OQ=276.31;QD=7.47;SB=-143.57	GT:AD:DP:GL:GQ	0/1:22,15:35:-41.46,-10.55,-86.74:99
-chr1	2821229	rs2606408	T	C	106.74	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=1;HaplotypeScore=3.39;MQ=59.56;MQ0=0;OQ=598.54;QD=11.51;SB=-201.20	GT:AD:DP:GL:GQ	0/1:29,23:50:-78.20,-15.07,-111.31:99
-chr1	2821448	rs1563475	G	T	119.77	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=1.56;MQ=60.00;MQ0=0;OQ=513.38;QD=12.83;SB=-112.67	GT:AD:DP:GL:GQ	0/1:19,21:38:-66.07,-11.45,-67.04:99
-chr1	2821650	rs11590100	A	G	136.28	PASS	AC=1;AF=0.50;AN=2;DB;DP=93;Dels=0.00;HRun=0;HaplotypeScore=1.60;MQ=59.60;MQ0=0;OQ=943.28;QD=10.14;SB=-480.61	GT:AD:DP:GL:GQ	0/1:51,42:88:-124.13,-26.52,-198.52:99
-chr1	2822111	rs3001796	T	C	212.38	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=2.85;MQ=55.14;MQ0=0;OQ=802.13;QD=11.80;SB=-349.06	GT:AD:DP:GL:GQ	0/1:33,34:64:-102.79,-19.29,-127.57:99
-chr1	2822273	rs3001797	G	A	0.27	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=14.80;MQ=58.82;MQ0=1;OQ=1009.61;QD=19.42;SB=-317.35	GT:AD:DP:GL:GQ	0/1:22,30:49:-119.01,-14.77,-60.02:99
-chr1	2822628	rs6696129	C	T	18.64	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=1;HaplotypeScore=6.89;MQ=57.91;MQ0=1;OQ=832.22;QD=14.35;SB=-326.29	GT:AD:DP:GL:GQ	0/1:32,26:55:-103.07,-16.57,-105.26:99
-chr1	2823020	rs1869971	C	T	374.03	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=57.94;MQ0=0;OQ=535.79;QD=14.48;SB=-291.84	GT:AD:DP:GL:GQ	0/1:19,18:35:-67.42,-10.56,-54.80:99
-chr1	2823154	rs7339944	G	A	129.22	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=2.14;MQ=59.45;MQ0=0;OQ=957.99;QD=19.16;SB=-392.16	GT:AD:DP:GL:GQ	0/1:19,31:48:-113.55,-14.46,-66.11:99
-chr1	2823192	rs7340016	A	G	29.60	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=2;HaplotypeScore=3.35;MQ=59.34;MQ0=0;OQ=422.29;QD=10.05;SB=-179.53	GT:AD:DP:GL:GQ	0/1:21,21:36:-56.37,-10.85,-73.83:99
-chr1	2823287	rs2124663	C	T	42.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=3.08;MQ=59.59;MQ0=0;OQ=634.70;QD=14.10;SB=-71.85	GT:AD:DP:GL:GQ	0/1:24,21:45:-80.32,-13.56,-82.96:99
-chr1	2823310	rs1563466	T	C	23.75	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=1;HaplotypeScore=2.63;MQ=58.92;MQ0=0;OQ=514.85;QD=13.20;SB=-114.69	GT:AD:DP:GL:GQ	0/1:19,20:38:-66.22,-11.45,-76.59:99
-chr1	2823513	rs11587665	C	T	40.96	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=6.13;MQ=59.14;MQ0=0;OQ=737.31;QD=13.65;SB=-373.35	GT:AD:DP:GL:GQ	0/1:29,25:51:-92.39,-15.38,-90.11:99
-chr1	2823603	rs1563468	T	C	458.79	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=59.00;MQ0=0;OQ=947.27;QD=14.14;SB=-372.60	GT:AD:DP:GL:GQ	0/1:28,39:64:-117.31,-19.30,-107.37:99
-chr1	2823870	rs11809099	C	T	295.64	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=0.83;MQ=59.56;MQ0=0;OQ=690.45;QD=13.28;SB=-256.23	GT:AD:DP:GL:GQ	0/1:28,23:49:-87.09,-14.76,-98.54:99
-chr1	2823885	rs2842926	G	A	181.65	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=2.93;MQ=59.53;MQ0=0;OQ=786.09;QD=16.04;SB=-320.86	GT:AD:DP:GL:GQ	0/1:23,26:46:-95.76,-13.86,-71.19:99
-chr1	2825347	rs897633	A	C	527.30	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.59;MQ0=0;OQ=683.77;QD=14.86;SB=-280.84	GT:AD:DP:GL:GQ	0/1:21,25:45:-85.22,-13.56,-75.45:99
-chr1	2825552	rs897634	T	C	95.40	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=1;HaplotypeScore=0.99;MQ=60.00;MQ0=0;OQ=1172.99;QD=30.08;SB=-560.88	GT:AD:DP:GL:GQ	1/1:0,39:37:-120.91,-11.16,-0.03:99
-chr1	2825769	rs2606409	A	G	32.95	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=5.74;MQ=57.77;MQ0=0;OQ=329.46;QD=7.84;SB=-164.95	GT:AD:DP:GL:GQ	0/1:25,16:40:-48.29,-12.06,-98.69:99
-chr1	2825959	rs2606410	C	T	311.17	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=2.19;MQ=59.57;MQ0=0;OQ=951.03;QD=17.61;SB=-434.47	GT:AD:DP:GL:GQ	0/1:25,29:51:-113.75,-15.36,-82.67:99
-chr1	2827304	rs55855166	G	A	337.28	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.37;MQ0=0;OQ=391.24;QD=9.10;SB=-201.88	GT:AD:DP:GL:GQ	0/1:27,16:41:-54.76,-12.35,-93.92:99
-chr1	2828084	rs35844499	A	C	0.13	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=2;HaplotypeScore=8.95;MQ=33.58;MQ0=13;OQ=215.00;QD=4.89;SB=-66.98	GT:AD:DP:GL:GQ	0/1:23,20:16:-29.61,-4.82,-23.59:99
-chr1	2831038	.	C	T	212.41	PASS	AC=1;AF=0.50;AN=2;DP=43;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.03;MQ0=0;OQ=614.63;QD=14.29;SB=-239.55	GT:AD:DP:GL:GQ	0/1:23,20:43:-77.70,-12.96,-79.28:99
-chr1	2833249	.	C	T	39.44	LowQual	AC=1;AF=0.50;AN=2;DP=29;Dels=0.00;HRun=0;HaplotypeScore=2.90;MQ=56.74;MQ0=0;QD=1.36;SB=-41.03	GT:AD:DP:GL:GQ	0/1:24,4:19:-12.96,-5.74,-47.17:72.28
-chr1	2833472	.	C	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=36;Dels=0.00;HRun=0;HaplotypeScore=11.49;MQ=58.05;MQ0=0;OQ=54.69;QD=1.52;SB=-45.69	GT:AD:DP:GL:GQ	0/1:28,8:19:-14.49,-5.74,-59.79:87.52
-chr1	2837348	rs2606411	T	C	351.83	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.95;MQ0=0;OQ=583.14;QD=14.58;SB=-128.66	GT:AD:DP:GL:GQ	0/1:14,26:36:-72.45,-10.85,-55.84:99
-chr1	2838116	rs35880479	G	A	202.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=3.65;MQ=58.64;MQ0=0;OQ=848.27;QD=13.05;SB=-379.33	GT:AD:DP:GL:GQ	0/1:37,28:62:-106.79,-18.68,-116.44:99
-chr1	2844321	rs12120163	C	T	361.45	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=59.44;MQ0=0;OQ=1226.99;QD=16.58;SB=-528.52	GT:AD:DP:GL:GQ	0/1:36,38:72:-147.69,-21.70,-111.75:99
-chr1	2849584	rs2842909	C	T	85.45	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=5.45;MQ=57.20;MQ0=0;OQ=445.80;QD=10.87;SB=-188.84	GT:AD:DP:GL:GQ	0/1:22,19:36:-58.71,-10.85,-74.85:99
-chr1	2850791	rs2925499	C	T	367.47	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=1;HaplotypeScore=1.16;MQ=59.73;MQ0=0;OQ=1163.55;QD=17.11;SB=-509.17	GT:AD:DP:GL:GQ	0/1:33,35:67:-139.83,-20.19,-105.50:99
-chr1	2856184	.	C	T	37.47	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=23;Dels=0.00;HRun=0;HaplotypeScore=1.14;MQ=14.17;MQ0=11;QD=1.63;SB=-10.00	GT:AD:DP:GL:GQ	0/1:13,10:4:-8.24,-1.21,-6.09:48.87
-chr1	2856380	rs3010827	T	C	18.54	LowQual	AC=1;AF=0.50;AN=2;DB;DP=28;Dels=0.00;HRun=1;HaplotypeScore=1.43;MQ=21.91;MQ0=3;QD=0.66;SB=-6.99	GT:AD:DP:GL:GQ	0/1:20,8:5:-6.64,-1.51,-11.98:51.31
-chr1	2865080	rs2788089	G	A	618.40	PASS	AC=2;AF=1.00;AN=2;DB;DP=69;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2745.57;QD=39.79;SB=-1234.70	GT:AD:DP:GL:GQ	1/1:0,69:69:-278.16,-20.78,-0.02:99
-chr1	2866385	rs10909845	T	C	68.38	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=2;HaplotypeScore=1.49;MQ=58.86;MQ0=0;OQ=1786.40;QD=31.34;SB=-680.16	GT:AD:DP:GL:GQ	1/1:0,57:53:-182.25,-15.97,-0.03:99
-chr1	2866462	rs6663830	A	G	10.39	PASS	AC=2;AF=1.00;AN=2;DB;DP=19;Dels=0.00;HRun=0;HaplotypeScore=0.42;MQ=57.19;MQ0=0;OQ=455.20;QD=23.96;SB=-149.73	GT:AD:DP:GL:GQ	1/1:1,18:16:-49.13,-4.83,-0.02:48.09
-chr1	2866480	rs12132266	C	G	0.75	PASS	AC=2;AF=1.00;AN=2;DB;DP=15;Dels=0.00;HRun=2;HaplotypeScore=2.31;MQ=54.22;MQ0=2;OQ=483.83;QD=32.26;SB=-138.40	GT:AD:DP:GL:GQ	1/1:2,13:12:-51.97,-3.62,-0.01:36.12
-chr1	2866511	rs12129394	G	A	181.92	PASS	AC=2;AF=1.00;AN=2;DB;DP=3;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=50.76;MQ0=0;OQ=82.01;QD=27.34;SB=-47.56	GT:AD:DP:GL:GQ	1/1:0,3:3:-11.69,-0.90,-0.00:9.03
-chr1	2866552	rs11582761	G	A	15.30	PASS	AC=2;AF=1.00;AN=2;DB;DP=5;Dels=0.00;HRun=0;HaplotypeScore=1.32;MQ=47.10;MQ0=0;OQ=87.13;QD=17.43;SB=-10.00	GT:AD:DP:GL:GQ	1/1:1,4:3:-12.20,-0.90,-0.00:9.03
-chr1	2868226	rs11583804	G	A	591.81	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.37;MQ0=0;OQ=1019.85;QD=15.45;SB=-422.44	GT:AD:DP:GL:GQ	0/1:35,31:65:-124.85,-19.58,-125.50:99
-chr1	2872997	rs10909848	G	T	338.03	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=3.00;MQ=59.67;MQ0=0;OQ=904.50;QD=15.87;SB=-468.05	GT:AD:DP:GL:GQ	0/1:25,32:54:-110.00,-16.27,-78.02:99
-chr1	2873890	.	G	C	11.21	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=19;Dels=0.00;HRun=4;HaplotypeScore=5.27;MQ=55.45;MQ0=0;QD=0.59;SB=14.08	GT:AD:DP:GL:GQ	0/1:10,9:11:-7.69,-3.32,-38.19:43.71
-chr1	2874116	rs2993507	T	C	16.38	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=3;HaplotypeScore=1.05;MQ=58.76;MQ0=0;OQ=1405.38;QD=31.23;SB=-680.25	GT:AD:DP:GL:GQ	1/1:0,45:40:-144.14,-12.05,-0.01:99
-chr1	2876216	rs2842925	A	G	411.29	PASS	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.51;MQ0=0;OQ=1144.93;QD=30.13;SB=-502.20	GT:AD:DP:GL:GQ	1/1:0,38:36:-118.11,-10.86,-0.03:99
-chr1	2876326	rs12752801	C	T	372.85	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=0.33;MQ=59.51;MQ0=0;OQ=555.75;QD=11.82;SB=-279.71	GT:AD:DP:GL:GQ	0/1:29,18:46:-72.72,-13.86,-94.69:99
-chr1	2876664	rs1104934	C	T	153.01	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=59.11;MQ0=0;OQ=873.37;QD=18.58;SB=-376.40	GT:AD:DP:GL:GQ	0/1:19,28:45:-104.19,-13.57,-58.40:99
-chr1	2876848	rs4072769	G	A	397.29	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=0.92;MQ=59.29;MQ0=0;OQ=569.53;QD=13.56;SB=-264.25	GT:AD:DP:GL:GQ	0/1:22,20:41:-72.60,-12.36,-71.89:99
-chr1	2877278	rs12731895	T	A	88.65	PASS	AC=2;AF=1.00;AN=2;DB;DP=35;Dels=0.00;HRun=0;HaplotypeScore=1.05;MQ=59.47;MQ0=0;OQ=1142.36;QD=32.64;SB=-433.66	GT:AD:DP:GL:GQ	1/1:0,35:33:-117.84,-9.95,-0.02:99
-chr1	2877329	rs12727338	A	G	1.05	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=1;HaplotypeScore=6.87;MQ=57.26;MQ0=0;OQ=1138.52;QD=25.30;SB=-341.40	GT:AD:DP:GL:GQ	1/1:0,45:36:-117.47,-10.86,-0.03:99
-chr1	2877535	rs4648443	G	C	93.54	PASS	AC=2;AF=1.00;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=1.23;MQ=59.43;MQ0=0;OQ=1023.89;QD=31.03;SB=-246.78	GT:AD:DP:GL:GQ	1/1:0,33:28:-106.01,-8.47,-0.04:84.26
-chr1	2878321	rs10797371	T	C	561.61	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.52;MQ0=0;OQ=1137.37;QD=29.16;SB=-576.99	GT:AD:DP:GL:GQ	1/1:0,39:37:-117.36,-11.16,-0.04:99
-chr1	2878374	rs10797372	A	G	151.87	PASS	AC=2;AF=1.00;AN=2;DB;DP=35;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=58.80;MQ0=0;OQ=958.51;QD=27.39;SB=-485.14	GT:AD:DP:GL:GQ	1/1:0,35:31:-99.47,-9.35,-0.03:93.21
-chr1	2878478	rs57027760	G	T	756.85	Indel	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=16.93;MQ=60.84;MQ0=0;QD=20.46;SB=-136.60	GT:AD:DP:GL:GQ	0/1:7,30:29:-87.69,-8.74,-9.78:10.36
-chr1	2879008	rs56619891	G	A	46.74	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=1.57;MQ=58.68;MQ0=0;OQ=1774.48;QD=38.58;SB=-601.31	GT:AD:DP:GL:GQ	1/1:0,46:45:-181.04,-13.56,-0.01:99
-chr1	2879409	rs2495273	T	A	230.62	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=1;HaplotypeScore=0.82;MQ=58.81;MQ0=0;OQ=1962.54;QD=35.68;SB=-1002.53	GT:AD:DP:GL:GQ	1/1:0,55:54:-199.86,-16.27,-0.02:99
-chr1	2879437	rs12044030	C	T	157.06	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=1;HaplotypeScore=1.24;MQ=58.72;MQ0=0;OQ=1987.31;QD=38.97;SB=-989.84	GT:AD:DP:GL:GQ	1/1:0,51:51:-202.33,-15.37,-0.02:99
-chr1	2880205	rs4648445	G	A	0.49	PASS	AC=2;AF=1.00;AN=2;DB;DP=36;Dels=0.00;HRun=2;HaplotypeScore=7.53;MQ=59.36;MQ0=0;OQ=1380.04;QD=38.33;SB=-528.20	GT:AD:DP:GL:GQ	1/1:1,35:35:-141.60,-10.54,-0.01:99
-chr1	2880574	rs4648446	C	T	93.96	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=3.43;MQ=58.80;MQ0=0;OQ=2154.57;QD=37.15;SB=-942.74	GT:AD:DP:GL:GQ	1/1:0,58:56:-219.07,-16.88,-0.03:99
-chr1	2880814	rs35060945	G	T	115.68	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=2.71;MQ=59.36;MQ0=0;OQ=1511.10;QD=32.85;SB=-647.26	GT:AD:DP:GL:GQ	1/1:0,46:43:-154.71,-12.95,-0.02:99
-chr1	2880975	rs9661752	C	T	171.39	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=1;HaplotypeScore=0.26;MQ=57.35;MQ0=0;OQ=1967.63;QD=36.44;SB=-881.18	GT:AD:DP:GL:GQ	1/1:0,54:51:-200.37,-15.37,-0.02:99
-chr1	2880988	rs35377179	C	A	115.57	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=2.42;MQ=57.03;MQ0=0;OQ=1298.02;QD=29.50;SB=-650.95	GT:AD:DP:GL:GQ	1/1:1,43:37:-133.40,-11.15,-0.01:99
-chr1	2881030	.	C	A	0.40	PASS	AC=1;AF=0.50;AN=2;DP=26;Dels=0.00;HRun=1;HaplotypeScore=3.41;MQ=54.52;MQ0=1;OQ=214.49;QD=8.25;SB=26.09	GT:AD:DP:GL:GQ	0/1:17,8:22:-34.34,-9.60,-47.09:99
-chr1	2881446	rs12046122	C	A	164.77	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=56.73;MQ0=0;OQ=1555.86;QD=34.57;SB=-803.87	GT:AD:DP:GL:GQ	1/1:0,45:44:-159.18,-13.25,-0.01:99
-chr1	2881573	rs12046158	C	T	78.52	PASS	AC=2;AF=1.00;AN=2;DB;DP=28;Dels=0.00;HRun=0;HaplotypeScore=0.33;MQ=60.00;MQ0=0;OQ=1075.02;QD=38.39;SB=-495.01	GT:AD:DP:GL:GQ	1/1:0,28:28:-111.09,-8.43,-0.01:84.27
-chr1	2882784	rs12096719	A	G	679.62	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=51.77;MQ0=0;OQ=1529.67;QD=33.99;SB=-756.19	GT:AD:DP:GL:GQ	1/1:0,45:44:-156.57,-13.25,-0.01:99
-chr1	2883117	rs34709641	C	A	0.13	PASS	AC=2;AF=1.00;AN=2;DB;DP=22;Dels=0.00;HRun=0;HaplotypeScore=10.20;MQ=27.00;MQ0=0;OQ=541.23;QD=24.60;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,21:16:-57.72,-4.82,-0.01:48.13
-chr1	2883336	.	T	C	0.07	PASS	AC=1;AF=0.50;AN=2;DP=26;Dels=0.00;HRun=0;HaplotypeScore=2.02;MQ=28.41;MQ0=1;OQ=55.83;QD=2.15;SB=35.13	GT:AD:DP:GL:GQ	0/1:19,7:19:-14.60,-5.73,-55.04:88.67
-chr1	2883474	.	C	T	16.42	PASS	AC=2;AF=1.00;AN=2;DP=10;Dels=0.00;HRun=1;HaplotypeScore=1.15;MQ=19.09;MQ0=3;OQ=91.28;QD=9.13;SB=-10.00	GT:AD:DP:GL:GQ	1/1:6,3:4:-15.26,-3.77,-2.60:11.70
-chr1	2883529	.	A	G	32.82	LowQual	AC=2;AF=1.00;AN=2;DP=7;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=16.58;MQ0=2;QD=4.69;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,7:2:-6.69,-0.60,-0.00:6.01
-chr1	2883801	.	G	C	0.05	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=24;Dels=0.00;HRun=0;HaplotypeScore=4.62;MQ=34.13;MQ0=1;OQ=549.05;QD=22.88;SB=-205.68	GT:AD:DP:GL:GQ	0/1:3,21:17:-63.31,-5.13,-9.19:40.68
-chr1	2883821	.	C	G	1.10	PASS	AC=1;AF=0.50;AN=2;DP=22;Dels=0.00;HRun=0;HaplotypeScore=5.35;MQ=22.36;MQ0=5;OQ=186.32;QD=8.47;SB=-39.88	GT:AD:DP:GL:GQ	0/1:7,15:10:-24.93,-3.02,-15.34:99
-chr1	2883940	.	C	G	0.08	PASS	AC=1;AF=0.50;AN=2;DP=17;Dels=0.00;HRun=0;HaplotypeScore=7.32;MQ=24.85;MQ0=3;OQ=119.37;QD=7.02;SB=-3.99	GT:AD:DP:GL:GQ	0/1:4,13:7:-17.34,-2.12,-7.20:50.86
-chr1	2883991	.	G	A	9.80	PASS	AC=1;AF=0.50;AN=2;DP=55;Dels=0.00;HRun=0;HaplotypeScore=2.46;MQ=39.91;MQ0=4;OQ=393.88;QD=7.16;SB=-196.17	GT:AD:DP:GL:GQ	0/1:36,19:38:-54.13,-11.46,-77.08:99
-chr1	2884111	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=39;Dels=0.00;HRun=2;HaplotypeScore=5.45;MQ=48.57;MQ0=0;OQ=67.53;QD=1.73;SB=-58.84	GT:AD:DP:GL:GQ	0/1:29,10:26:-17.87,-7.84,-79.49:99
-chr1	2884204	.	C	G	13.82	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=48;Dels=0.02;HRun=0;HaplotypeScore=10.52;MQ=37.87;MQ0=5;QD=0.29;SB=17.09	GT:AD:DP:GL:GQ	0/1:44,3:31:-13.69,-9.05,-110.48:46.47
-chr1	2884224	.	C	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=37;Dels=0.00;HRun=0;HaplotypeScore=7.14;MQ=33.65;MQ0=6;OQ=99.62;QD=2.69;SB=-73.89	GT:AD:DP:GL:GQ	0/1:22,14:21:-19.58,-6.34,-62.85:99
-chr1	2884275	.	G	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=40;Dels=0.00;HRun=0;HaplotypeScore=8.64;MQ=43.29;MQ0=0;OQ=54.38;QD=1.36;SB=23.10	GT:AD:DP:GL:GQ	0/1:34,6:34:-18.98,-10.26,-119.97:87.22
-chr1	2884325	.	G	C	41.80	PASS	AC=2;AF=1.00;AN=2;DP=37;Dels=0.00;HRun=0;HaplotypeScore=1.15;MQ=49.14;MQ0=0;OQ=1253.36;QD=33.87;SB=-646.42	GT:AD:DP:GL:GQ	1/1:0,37:34:-128.97,-10.28,-0.05:99
-chr1	2885060	rs63721360	G	T	452.04	PASS	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.39;MQ0=0;OQ=1106.85;QD=29.13;SB=-549.16	GT:AD:DP:GL:GQ	1/1:0,38:32:-114.28,-9.64,-0.01:96.27
-chr1	2885413	rs34183832	C	T	53.59	PASS	AC=2;AF=1.00;AN=2;DB;DP=35;Dels=0.00;HRun=0;HaplotypeScore=1.15;MQ=60.00;MQ0=0;OQ=1297.32;QD=37.07;SB=-499.18	GT:AD:DP:GL:GQ	1/1:0,35:34:-133.33,-10.25,-0.01:99
-chr1	2885666	rs12746525	C	T	345.32	PASS	AC=2;AF=1.00;AN=2;DB;DP=22;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.87;MQ0=0;OQ=771.21;QD=35.05;SB=-307.40	GT:AD:DP:GL:GQ	1/1:0,22:21:-80.72,-6.33,-0.01:63.20
-chr1	2885725	rs12731464	G	A	43.96	PASS	AC=2;AF=1.00;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=2.35;MQ=59.36;MQ0=0;OQ=1296.44;QD=36.01;SB=-473.63	GT:AD:DP:GL:GQ	1/1:0,36:34:-133.24,-10.25,-0.01:99
-chr1	2885912	rs12746985	C	T	116.03	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=0.87;MQ=59.54;MQ0=0;OQ=1570.34;QD=38.30;SB=-739.01	GT:AD:DP:GL:GQ	1/1:0,40:40:-160.63,-12.05,-0.01:99
-chr1	2886057	rs12747179	C	G	228.04	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1558.47;QD=39.96;SB=-692.89	GT:AD:DP:GL:GQ	1/1:0,39:37:-159.45,-11.15,-0.01:99
-chr1	2886368	rs7519674	G	T	104.99	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=1.51;MQ=58.92;MQ0=0;OQ=1251.61;QD=32.09;SB=-486.26	GT:AD:DP:GL:GQ	1/1:0,39:37:-128.76,-11.15,-0.02:99
-chr1	2886595	rs7533362	A	G	145.09	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=2;HaplotypeScore=0.95;MQ=59.61;MQ0=0;OQ=2108.67;QD=35.74;SB=-1026.73	GT:AD:DP:GL:GQ	1/1:0,59:59:-214.47,-17.77,-0.02:99
-chr1	2886944	rs10909849	A	G	437.20	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.80;MQ0=0;OQ=1258.82;QD=27.97;SB=-649.76	GT:AD:DP:GL:GQ	1/1:0,45:41:-129.52,-12.37,-0.05:99
-chr1	2886953	rs2788088	G	A	571.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.80;MQ0=0;OQ=615.00;QD=13.67;SB=-320.48	GT:AD:DP:GL:GQ	0/1:23,22:41:-77.15,-12.37,-67.43:99
-chr1	2887315	rs3001801	T	C	293.49	PASS	AC=1;AF=0.50;AN=2;DB;DP=23;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=57.55;MQ0=0;OQ=285.37;QD=12.41;SB=-113.63	GT:AD:DP:GL:GQ	0/1:11,12:22:-38.45,-6.63,-44.08:99
-chr1	2887325	rs2495272	A	G	0.48	PASS	AC=2;AF=1.00;AN=2;DB;DP=18;Dels=0.00;HRun=3;HaplotypeScore=1.25;MQ=56.85;MQ0=0;OQ=451.51;QD=25.08;SB=-251.59	GT:AD:DP:GL:GQ	1/1:0,18:15:-48.75,-4.52,-0.01:45.11
-chr1	2887439	.	A	G	0.37	PASS	AC=1;AF=0.50;AN=2;DP=28;Dels=0.00;HRun=2;HaplotypeScore=3.88;MQ=55.21;MQ0=0;OQ=257.68;QD=9.20;SB=-92.00	GT:AD:DP:GL:GQ	0/1:17,11:26:-36.89,-7.84,-61.45:99
-chr1	2887454	.	A	G	0.28	PASS	AC=1;AF=0.50;AN=2;DP=30;Dels=0.00;HRun=2;HaplotypeScore=5.31;MQ=55.54;MQ0=0;OQ=380.48;QD=12.68;SB=-84.99	GT:AD:DP:GL:GQ	0/1:15,15:27:-49.47,-8.14,-52.46:99
-chr1	2887461	.	G	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=31;Dels=0.00;HRun=0;HaplotypeScore=9.99;MQ=56.64;MQ0=0;OQ=82.14;QD=2.65;SB=-24.50	GT:AD:DP:GL:GQ	0/1:26,5:30:-20.54,-9.04,-87.21:99
-chr1	2887469	.	A	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=31;Dels=0.00;HRun=2;HaplotypeScore=10.99;MQ=56.64;MQ0=0;OQ=56.39;QD=1.82;SB=-10.59	GT:AD:DP:GL:GQ	0/1:26,5:30:-17.96,-9.04,-99.17:89.23
-chr1	2887476	rs61763639	G	A	1.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=10.80;MQ=56.85;MQ0=0;OQ=400.87;QD=12.15;SB=-209.95	GT:AD:DP:GL:GQ	0/1:19,13:29:-55.44,-12.07,-58.42:99
-chr1	2887567	rs61763640	G	C	352.27	PASS	AC=1;AF=0.50;AN=2;DB;DP=35;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.34;MQ0=0;OQ=547.00;QD=15.63;SB=-239.40	GT:AD:DP:GL:GQ	0/1:19,16:35:-68.53,-10.55,-82.14:99
-chr1	2887764	rs35529252	C	G	80.76	PASS	AC=1;AF=0.50;AN=2;DB;DP=27;Dels=0.00;HRun=0;HaplotypeScore=1.06;MQ=57.39;MQ0=0;OQ=226.67;QD=8.40;SB=2.03	GT:AD:DP:GL:GQ	0/1:18,9:23:-32.89,-6.94,-62.31:99
-chr1	2887828	rs56335850	C	G	110.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=4.16;MQ=58.45;MQ0=0;OQ=748.06;QD=17.40;SB=-393.99	GT:AD:DP:GL:GQ	0/1:21,22:42:-90.75,-12.66,-91.15:99
-chr1	2888083	rs56195961	C	T	7.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=1;HaplotypeScore=2.95;MQ=60.00;MQ0=0;OQ=1112.19;QD=20.22;SB=-391.16	GT:AD:DP:GL:GQ	0/1:22,33:55:-131.08,-16.58,-71.48:99
-chr1	2888354	rs17391563	T	C	531.46	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=612.67;QD=11.56;SB=-261.21	GT:AD:DP:GL:GQ	0/1:27,26:52:-80.22,-15.67,-108.53:99
-chr1	2888416	rs6681331	C	T	397.61	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=1.65;MQ=59.62;MQ0=0;OQ=831.46;QD=13.63;SB=-416.81	GT:AD:DP:GL:GQ	0/1:34,27:59:-104.22,-17.79,-102.21:99
-chr1	2888820	rs6681741	C	T	399.97	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=1.63;MQ=60.00;MQ0=0;OQ=909.46;QD=13.78;SB=-406.91	GT:AD:DP:GL:GQ	0/1:37,29:64:-113.53,-19.30,-110.49:99
-chr1	2889209	rs12043738	C	T	43	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=2;HaplotypeScore=2.99;MQ=59.70;MQ0=0;OQ=782.92;QD=12.63;SB=-392.82	GT:AD:DP:GL:GQ	0/1:36,26:56:-98.47,-16.89,-96.75:99
-chr1	2889348	rs12046140	T	C	210.74	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=2.64;MQ=58.78;MQ0=0;OQ=758.51;QD=11.67;SB=-309.09	GT:AD:DP:GL:GQ	0/1:33,31:62:-97.83,-18.69,-124.67:99
-chr1	2891988	rs1572657	C	T	224.13	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=1.84;MQ=58.69;MQ0=0;OQ=1966.14;QD=39.32;SB=-982.30	GT:AD:DP:GL:GQ	1/1:0,50:49:-200.21,-14.76,-0.01:99
-chr1	2893019	rs16823303	A	G	473.80	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=60.00;MQ0=0;OQ=1016.72;QD=15.17;SB=-513.96	GT:AD:DP:GL:GQ	0/1:31,36:67:-125.14,-20.19,-125.83:99
-chr1	2893437	rs4350139	T	C	494.03	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.60;MQ0=0;OQ=627.58;QD=13.35;SB=-219.43	GT:AD:DP:GL:GQ	0/1:23,24:46:-79.90,-13.86,-93.15:99
-chr1	2893916	rs10797373	G	A	257.26	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=1;HaplotypeScore=2.18;MQ=59.61;MQ0=0;OQ=845.53;QD=14.33;SB=-302.29	GT:AD:DP:GL:GQ	0/1:31,28:56:-104.72,-16.88,-95.11:99
-chr1	2895465	rs10909852	T	C	196.72	PASS	AC=1;AF=0.50;AN=2;DB;DP=78;Dels=0.00;HRun=1;HaplotypeScore=3.24;MQ=59.46;MQ0=0;OQ=1273.07;QD=16.32;SB=-516.27	GT:AD:DP:GL:GQ	0/1:36,42:76:-153.48,-22.89,-141.76:99
-chr1	2897295	rs7546695	C	A	472.44	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=0.93;MQ=59.44;MQ0=0;OQ=1069.83;QD=15.97;SB=-543.65	GT:AD:DP:GL:GQ	0/1:30,37:66:-130.15,-19.88,-106.29:99
-chr1	2897527	rs12411019	T	C	97.34	PASS	AC=1;AF=0.50;AN=2;DB;DP=32;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=59.42;MQ0=0;OQ=164.92;QD=5.15;SB=-60.30	GT:AD:DP:GL:GQ	0/1:21,11:29:-28.52,-8.74,-78.99:99
-chr1	2897840	rs58882615	A	T	78.36	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=1;HaplotypeScore=0.93;MQ=58.81;MQ0=0;OQ=696.78;QD=12.67;SB=-96.85	GT:AD:DP:GL:GQ	0/1:28,27:52:-88.62,-15.66,-107.99:99
-chr1	2897930	rs10909854	A	G	302.68	PASS	AC=1;AF=0.50;AN=2;DB;DP=82;Dels=0.00;HRun=0;HaplotypeScore=2.54;MQ=59.44;MQ0=0;OQ=922.43;QD=11.25;SB=-327.10	GT:AD:DP:GL:GQ	0/1:45,37:81:-119.94,-24.41,-179.92:99
-chr1	2898248	rs10909855	C	T	438.64	PASS	AC=1;AF=0.50;AN=2;DB;DP=69;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=59.39;MQ0=0;OQ=1131.76;QD=16.40;SB=-432.83	GT:AD:DP:GL:GQ	0/1:34,35:68:-136.95,-20.49,-112.64:99
-chr1	2898666	.	G	A	72.98	PASS	AC=1;AF=0.50;AN=2;DP=62;Dels=0.00;HRun=0;HaplotypeScore=2.34;MQ=60.00;MQ0=0;OQ=1136.24;QD=18.33;SB=-578.42	GT:AD:DP:GL:GQ	0/1:27,35:58:-134.38,-17.48,-83.03:99
-chr1	2898708	rs56000855	G	T	262.99	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=60.00;MQ0=0;OQ=393.56;QD=10.09;SB=-213.51	GT:AD:DP:GL:GQ	0/1:23,16:38:-54.09,-11.45,-79.61:99
-chr1	2899110	rs16823315	A	G	251.56	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=2.58;MQ=58.82;MQ0=0;OQ=851.48;QD=14.43;SB=-403.32	GT:AD:DP:GL:GQ	0/1:28,31:58:-105.90,-17.47,-115.59:99
-chr1	2899231	rs17391750	G	A	437.47	PASS	AC=1;AF=0.50;AN=2;DB;DP=86;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=58.91;MQ0=0;OQ=1161.97;QD=13.51;SB=-467.04	GT:AD:DP:GL:GQ	0/1:50,36:85:-145.10,-25.62,-160.28:99
-chr1	2899576	rs4335321	A	G	105.18	PASS	AC=1;AF=0.50;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=3.09;MQ=58.00;MQ0=0;OQ=946.55;QD=13.52;SB=-144.87	GT:AD:DP:GL:GQ	0/1:37,33:68:-118.42,-20.48,-143.93:99
-chr1	2899597	.	A	T	1.69	PASS	AC=1;AF=0.50;AN=2;DP=61;Dels=0.00;HRun=1;HaplotypeScore=3.60;MQ=57.30;MQ0=0;OQ=711.73;QD=11.67;SB=-108.79	GT:AD:DP:GL:GQ	0/1:34,27:58:-91.93,-17.47,-124.49:99
-chr1	2899698	.	C	A	3.06	PASS	AC=1;AF=0.50;AN=2;DP=67;Dels=0.00;HRun=4;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=964.27;QD=14.39;SB=-495.28	GT:AD:DP:GL:GQ	0/1:34,33:65:-119.29,-19.58,-112.82:99
-chr1	2899893	.	T	C	127.63	PASS	AC=1;AF=0.50;AN=2;DP=66;Dels=0.00;HRun=0;HaplotypeScore=0.77;MQ=59.43;MQ0=0;OQ=700.47;QD=10.61;SB=-280.59	GT:AD:DP:GL:GQ	0/1:36,30:65:-92.92,-19.59,-144.88:99
-chr1	2900185	rs57720952	A	G	235.22	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=1.30;MQ=59.13;MQ0=0;OQ=624.52;QD=11.78;SB=-194.60	GT:AD:DP:GL:GQ	0/1:27,26:53:-81.72,-15.98,-107.90:99
-chr1	2900204	rs58538272	A	G	481.46	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.17;MQ0=0;OQ=755.97;QD=13.50;SB=-350.98	GT:AD:DP:GL:GQ	0/1:26,30:55:-95.46,-16.58,-99.09:99
-chr1	2900256	rs60017523	T	C	269.60	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=1.45;MQ=59.37;MQ0=0;OQ=740.61;QD=11.22;SB=-378.62	GT:AD:DP:GL:GQ	0/1:33,33:62:-96.04,-18.69,-126.33:99
-chr1	2901217	rs58445466	T	C	331.41	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=47.93;MQ0=0;OQ=860.37;QD=15.36;SB=-212.50	GT:AD:DP:GL:GQ	0/1:26,30:54:-105.58,-16.26,-101.98:99
-chr1	2901454	rs56337009	G	A	18.57	PASS	AC=2;AF=1.00;AN=2;DB;DP=28;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=49.33;MQ0=1;OQ=975.13;QD=34.83;SB=-240.32	GT:AD:DP:GL:GQ	1/1:2,26:25:-101.11,-7.53,-0.01:75.24
-chr1	2902060	rs12022594	C	T	230.71	PASS	AC=1;AF=0.50;AN=2;DB;DP=90;Dels=0.00;HRun=0;HaplotypeScore=3.13;MQ=53.29;MQ0=0;OQ=1320.21;QD=14.67;SB=-682.37	GT:AD:DP:GL:GQ	0/1:48,42:84:-160.62,-25.31,-148.07:99
-chr1	2902087	rs12059864	C	T	220.44	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=0;HaplotypeScore=4.77;MQ=55.08;MQ0=0;OQ=1120.96;QD=14.95;SB=-477.46	GT:AD:DP:GL:GQ	0/1:41,34:69:-136.16,-20.78,-131.24:99
-chr1	2902707	rs10909856	T	C	237.57	PASS	AC=1;AF=0.50;AN=2;DB;DP=86;Dels=0.00;HRun=0;HaplotypeScore=2.25;MQ=59.08;MQ0=0;OQ=1121.38;QD=13.04;SB=-473.58	GT:AD:DP:GL:GQ	0/1:47,39:85:-141.02,-25.60,-190.53:99
-chr1	2902862	rs12401989	C	A	536.26	PASS	AC=1;AF=0.50;AN=2;DB;DP=81;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=929.32;QD=11.47;SB=-426.42	GT:AD:DP:GL:GQ	0/1:49,32:81:-120.61,-24.40,-176.66:99
-chr1	2903095	rs60435231	A	G	179.93	PASS	AC=1;AF=0.50;AN=2;DB;DP=70;Dels=0.00;HRun=1;HaplotypeScore=2.39;MQ=59.67;MQ0=0;OQ=920.63;QD=13.15;SB=-378.56	GT:AD:DP:GL:GQ	0/1:39,31:70:-116.43,-21.08,-161.00:99
-chr1	2903159	rs59407673	T	C	419.08	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.66;MQ0=0;OQ=752.64;QD=11.07;SB=-260.51	GT:AD:DP:GL:GQ	0/1:41,27:66:-98.43,-19.88,-155.58:99
-chr1	2903756	.	C	T	100.01	PASS	AC=1;AF=0.50;AN=2;DP=75;Dels=0.00;HRun=0;HaplotypeScore=2.37;MQ=59.38;MQ0=0;OQ=1160.57;QD=15.47;SB=-488.46	GT:AD:DP:GL:GQ	0/1:41,34:75:-141.93,-22.59,-152.72:99
-chr1	2903757	.	C	T	97.23	PASS	AC=1;AF=0.50;AN=2;DP=74;Dels=0.00;HRun=0;HaplotypeScore=2.37;MQ=59.38;MQ0=0;OQ=1040.83;QD=14.07;SB=-405.37	GT:AD:DP:GL:GQ	0/1:41,33:72:-129.05,-21.68,-151.62:99
-chr1	2903785	.	C	T	13.14	PASS	AC=1;AF=0.50;AN=2;DP=72;Dels=0.00;HRun=3;HaplotypeScore=0.97;MQ=59.68;MQ0=0;OQ=1201.38;QD=16.69;SB=-623.18	GT:AD:DP:GL:GQ	0/1:36,36:71:-144.81,-21.39,-125.25:99
-chr1	2904148	rs34909435	G	C	261.36	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=59.06;MQ0=0;OQ=923.50;QD=16.20;SB=-375.83	GT:AD:DP:GL:GQ	0/1:30,27:56:-112.51,-16.88,-128.89:99
-chr1	2904478	rs34453862	G	T	153.72	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=1;HaplotypeScore=2.73;MQ=59.34;MQ0=0;OQ=843.87;QD=14.80;SB=-424.19	GT:AD:DP:GL:GQ	0/1:29,28:55:-104.24,-16.57,-85.73:99
-chr1	2904922	.	G	A	6.65	PASS	AC=1;AF=0.50;AN=2;DP=54;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=986.03;QD=18.26;SB=-298.76	GT:AD:DP:GL:GQ	0/1:24,30:53:-117.86,-15.97,-81.07:99
-chr1	2904988	.	G	T	192.75	PASS	AC=1;AF=0.50;AN=2;DP=60;Dels=0.00;HRun=0;HaplotypeScore=0.96;MQ=59.69;MQ0=0;OQ=850.19;QD=14.17;SB=-430.19	GT:AD:DP:GL:GQ	0/1:30,30:56:-105.17,-16.87,-90.14:99
-chr1	2905123	rs12049173	C	A	190.89	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=60.62;MQ0=0;OQ=810.47;QD=14.22;SB=-367.40	GT:AD:DP:GL:GQ	0/1:30,27:57:-101.50,-17.17,-107.52:99
-chr1	2905133	rs12046411	G	A	347.03	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=1;HaplotypeScore=0.99;MQ=60.57;MQ0=0;OQ=1037.17;QD=16.73;SB=-437.83	GT:AD:DP:GL:GQ	0/1:30,32:59:-124.78,-17.78,-92.83:99
-chr1	2905422	rs12049274	C	T	603.53	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.95;MQ0=0;OQ=930.71;QD=16.05;SB=-490.47	GT:AD:DP:GL:GQ	0/1:30,28:58:-113.82,-17.47,-110.72:99
-chr1	2905744	.	G	A	180.07	PASS	AC=1;AF=0.50;AN=2;DP=63;Dels=0.00;HRun=0;HaplotypeScore=0.58;MQ=60.00;MQ0=0;OQ=873.90;QD=13.87;SB=-441.80	GT:AD:DP:GL:GQ	0/1:36,27:62:-109.35,-18.68,-126.71:99
-chr1	2905997	rs12239064	T	G	232.27	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=1;HaplotypeScore=1.56;MQ=59.60;MQ0=0;OQ=846.38;QD=14.85;SB=-338.82	GT:AD:DP:GL:GQ	0/1:27,30:56:-104.79,-16.87,-99.38:99
-chr1	2906020	rs12240128	G	A	259.44	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=1.80;MQ=59.61;MQ0=0;OQ=950.01;QD=16.10;SB=-410.72	GT:AD:DP:GL:GQ	0/1:30,29:59:-116.06,-17.77,-109.83:99
-chr1	2906205	.	C	T	60.99	PASS	AC=1;AF=0.50;AN=2;DP=38;Dels=0.00;HRun=0;HaplotypeScore=2.67;MQ=59.51;MQ0=0;OQ=509.22;QD=13.40;SB=-258.23	GT:AD:DP:GL:GQ	0/1:18,20:34:-64.46,-10.25,-58.74:99
-chr1	2906216	rs59653178	T	C	119.56	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=1;HaplotypeScore=2.26;MQ=59.54;MQ0=0;OQ=444.86;QD=10.85;SB=-210.25	GT:AD:DP:GL:GQ	0/1:22,19:37:-58.92,-11.15,-79.90:99
-chr1	2906318	.	G	C	294.79	PASS	AC=1;AF=0.50;AN=2;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=687.54;QD=14.03;SB=-349.42	GT:AD:DP:GL:GQ	0/1:28,21:48:-86.50,-14.46,-122.06:99
-chr1	2906331	.	T	C	64.13	PASS	AC=1;AF=0.50;AN=2;DP=54;Dels=0.00;HRun=0;HaplotypeScore=1.31;MQ=60.00;MQ0=0;OQ=486.38;QD=9.01;SB=-239.89	GT:AD:DP:GL:GQ	0/1:34,20:53:-67.89,-15.97,-133.79:99
-chr1	2906530	rs16823325	A	G	170.42	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=59.48;MQ0=0;OQ=627.60;QD=14.26;SB=-219.26	GT:AD:DP:GL:GQ	0/1:22,22:44:-79.30,-13.26,-90.47:99
-chr1	2906541	rs57711454	A	G	139.66	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=0.96;MQ=59.54;MQ0=0;OQ=394.78;QD=7.90;SB=-84.54	GT:AD:DP:GL:GQ	0/1:29,20:47:-56.93,-14.17,-116.48:99
-chr1	2906996	rs10909857	T	C	66.55	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=1;HaplotypeScore=3.62;MQ=57.79;MQ0=0;OQ=652.62;QD=12.31;SB=-287.16	GT:AD:DP:GL:GQ	0/1:27,26:51:-83.92,-15.38,-97.87:99
-chr1	2907051	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=74;Dels=0.00;HRun=17;HaplotypeScore=24.33;MQ=55.91;MQ0=0;OQ=72.31;QD=0.98;SB=54.68	GT:AD:DP:GL:GQ	0/1:56,17:51:-25.89,-15.37,-146.19:99
-chr1	2907237	rs12025260	T	C	432.13	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=0.93;MQ=58.22;MQ0=0;OQ=586.66;QD=11.73;SB=-318.24	GT:AD:DP:GL:GQ	0/1:25,25:46:-75.82,-13.87,-89.45:99
-chr1	2907320	rs10797374	C	G	183.78	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=1;HaplotypeScore=0.32;MQ=56.79;MQ0=0;OQ=866.79;QD=16.35;SB=-401.99	GT:AD:DP:GL:GQ	0/1:26,27:47:-104.13,-14.17,-96.80:99
-chr1	2907323	rs10797375	C	T	107.89	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=56.36;MQ0=0;OQ=897.14;QD=16.31;SB=-320.30	GT:AD:DP:GL:GQ	0/1:27,28:53:-108.97,-15.97,-91.39:99
-chr1	2907332	rs10797376	A	G	569.46	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=56.97;MQ0=0;OQ=769.31;QD=13.26;SB=-314.20	GT:AD:DP:GL:GQ	0/1:28,30:54:-96.49,-16.28,-97.60:99
-chr1	2907425	rs17389607	C	T	13.36	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=1;HaplotypeScore=8.86;MQ=57.83;MQ0=0;OQ=822.69;QD=15.82;SB=-373.37	GT:AD:DP:GL:GQ	0/1:24,28:48:-100.02,-14.47,-70.94:99
-chr1	2907558	rs10909859	C	T	467.69	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.58;MQ0=0;OQ=759.55;QD=17.26;SB=-317.87	GT:AD:DP:GL:GQ	0/1:21,23:40:-91.30,-12.06,-54.32:99
-chr1	2907881	rs56008028	A	G	101.20	PASS	AC=1;AF=0.50;AN=2;DB;DP=32;Dels=0.00;HRun=0;HaplotypeScore=1.69;MQ=60.00;MQ0=0;OQ=314.58;QD=9.83;SB=-73.78	GT:AD:DP:GL:GQ	0/1:16,16:27:-42.88,-8.14,-52.46:99
-chr1	2908045	rs12562237	C	T	38.60	PASS	AC=1;AF=0.50;AN=2;DB;DP=31;Dels=0.00;HRun=1;HaplotypeScore=3.04;MQ=57.73;MQ0=0;OQ=402.69;QD=12.99;SB=-180.26	GT:AD:DP:GL:GQ	0/1:14,17:26:-51.39,-7.84,-42.83:99
-chr1	2908055	rs3924055	G	A	76.12	PASS	AC=1;AF=0.50;AN=2;DB;DP=29;Dels=0.00;HRun=1;HaplotypeScore=1.58;MQ=57.57;MQ0=0;OQ=483.15;QD=16.66;SB=-242.76	GT:AD:DP:GL:GQ	0/1:13,16:26:-59.44,-7.84,-34.72:99
-chr1	2908089	rs16823330	C	T	124.82	PASS	AC=1;AF=0.50;AN=2;DB;DP=27;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=59.14;MQ0=0;OQ=508.46;QD=18.83;SB=-215.91	GT:AD:DP:GL:GQ	0/1:11,16:27:-62.27,-8.14,-34.10:99
-chr1	2908371	.	G	A	74.23	PASS	AC=1;AF=0.50;AN=2;DP=43;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=59.57;MQ0=0;OQ=788.94;QD=18.35;SB=-397.93	GT:AD:DP:GL:GQ	0/1:18,24:36:-93.03,-10.85,-43.26:99
-chr1	2908432	.	T	C	8.81	PASS	AC=1;AF=0.50;AN=2;DP=23;Dels=0.00;HRun=0;HaplotypeScore=1.73;MQ=56.92;MQ0=0;OQ=358.32;QD=15.58;SB=-114.66	GT:AD:DP:GL:GQ	0/1:9,14:19:-44.84,-5.73,-23.69:99
-chr1	2908471	.	G	A	46.40	LowQual	AC=1;AF=0.50;AN=2;DP=24;Dels=0.00;HRun=0;HaplotypeScore=4.79;MQ=51.77;MQ0=0;QD=1.93;SB=-32.97	GT:AD:DP:GL:GQ	0/1:20,4:22:-14.55,-6.63,-62.87:79.23
-chr1	2908486	.	G	A	26.78	LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=24;Dels=0.00;HRun=0;HaplotypeScore=9.20;MQ=53.95;MQ0=0;QD=1.12;SB=-23.58	GT:AD:DP:GL:GQ	0/1:21,3:20:-11.99,-6.02,-60.39:59.60
-chr1	2908487	.	G	A	23.81	LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=24;Dels=0.00;HRun=0;HaplotypeScore=9.20;MQ=53.95;MQ0=0;QD=0.99;SB=-23.59	GT:AD:DP:GL:GQ	0/1:21,3:20:-11.69,-6.03,-57.69:56.63
-chr1	2908489	rs7413322	A	G	127.27	SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=23;Dels=0.00;HRun=0;HaplotypeScore=7.20;MQ=53.67;MQ0=0;QD=5.53;SB=-41.81	GT:AD:DP:GL:GQ	0/1:15,7:21:-22.34,-6.33,-53.28:99
-chr1	2908502	.	G	A	0.58	PASS	AC=1;AF=0.50;AN=2;DP=31;Dels=0.00;HRun=0;HaplotypeScore=3.89;MQ=54.56;MQ0=0;OQ=132.59;QD=4.28;SB=-84.55	GT:AD:DP:GL:GQ	0/1:22,9:26:-24.37,-7.83,-71.82:99
-chr1	2908503	.	G	A	2.61	PASS	AC=1;AF=0.50;AN=2;DP=31;Dels=0.00;HRun=0;HaplotypeScore=3.89;MQ=54.56;MQ0=0;OQ=189.68;QD=6.12;SB=-101.89	GT:AD:DP:GL:GQ	0/1:22,9:28:-30.69,-8.44,-70.32:99
-chr1	2908532	.	T	C	3.50	PASS	AC=1;AF=0.50;AN=2;DP=37;Dels=0.00;HRun=0;HaplotypeScore=3.76;MQ=54.67;MQ0=0;OQ=250.55;QD=6.77;SB=-66.91	GT:AD:DP:GL:GQ	0/1:24,13:35:-38.89,-10.55,-92.28:99
-chr1	2908533	.	G	A	0.93	PASS	AC=1;AF=0.50;AN=2;DP=38;Dels=0.00;HRun=0;HaplotypeScore=4.66;MQ=54.15;MQ0=0;OQ=217.08;QD=5.71;SB=-54.22	GT:AD:DP:GL:GQ	0/1:25,13:33:-34.93,-9.94,-84.25:99
-chr1	2908644	.	G	A	90.84	PASS	AC=1;AF=0.50;AN=2;DP=51;Dels=0.00;HRun=1;HaplotypeScore=1.24;MQ=55.47;MQ0=0;OQ=799.27;QD=15.67;SB=-377.10	GT:AD:DP:GL:GQ	0/1:25,26:51:-98.58,-15.37,-88.82:99
-chr1	2908650	.	T	C	65.40	PASS	AC=1;AF=0.50;AN=2;DP=52;Dels=0.00;HRun=1;HaplotypeScore=0.47;MQ=55.56;MQ0=0;OQ=744.55;QD=14.32;SB=-322.26	GT:AD:DP:GL:GQ	0/1:26,26:52:-93.41,-15.67,-101.68:99
-chr1	2908671	.	T	C	96.67	PASS	AC=1;AF=0.50;AN=2;DP=51;Dels=0.00;HRun=0;HaplotypeScore=1.84;MQ=55.57;MQ0=0;OQ=663.38;QD=13.01;SB=-328.92	GT:AD:DP:GL:GQ	0/1:26,25:50:-84.69,-15.07,-101.18:99
-chr1	2908691	rs7524813	A	G	287.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=53.53;MQ0=0;OQ=655.21;QD=13.10;SB=-352.07	GT:AD:DP:GL:GQ	0/1:22,28:47:-82.98,-14.17,-84.04:99
-chr1	2908767	.	C	T	11.79	PASS	AC=1;AF=0.50;AN=2;DP=35;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=50.29;MQ0=0;OQ=630.57;QD=18.02;SB=-203.89	GT:AD:DP:GL:GQ	0/1:14,21:32:-75.99,-9.65,-40.87:99
-chr1	2908798	rs7520336	C	T	363.17	PASS	AC=1;AF=0.50;AN=2;DB;DP=35;Dels=0.00;HRun=0;HaplotypeScore=0.98;MQ=53.82;MQ0=0;OQ=459.08;QD=13.12;SB=-219.69	GT:AD:DP:GL:GQ	0/1:20,15:31:-58.54,-9.34,-53.07:99
-chr1	2909329	rs6424067	A	G	0.51	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=4;HaplotypeScore=3.24;MQ=54.59;MQ0=0;OQ=434.74;QD=9.88;SB=-243.29	GT:AD:DP:GL:GQ	0/1:26,18:41:-59.12,-12.36,-92.44:99
-chr1	2909490	rs12025062	C	T	390.05	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=55.85;MQ0=0;OQ=616.92;QD=11.64;SB=-324.31	GT:AD:DP:GL:GQ	0/1:32,21:52:-80.64,-15.67,-112.78:99
-chr1	2909802	rs12022429	G	A	318.87	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=1;HaplotypeScore=1.56;MQ=60.00;MQ0=0;OQ=605.69;QD=12.36;SB=-271.15	GT:AD:DP:GL:GQ	0/1:27,22:47:-78.02,-14.16,-93.88:99
-chr1	2909879	rs12025167	C	T	200.91	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=4.12;MQ=58.32;MQ0=0;OQ=594.51;QD=15.24;SB=-283.81	GT:AD:DP:GL:GQ	0/1:20,19:35:-73.29,-10.56,-48.45:99
-chr1	2909902	rs12022456	G	A	164.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=4.51;MQ=58.51;MQ0=0;OQ=722.60;QD=16.42;SB=-335.48	GT:AD:DP:GL:GQ	0/1:20,24:41:-87.91,-12.37,-56.64:99
-chr1	2910018	rs16823332	C	T	243.36	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=60.00;MQ0=0;OQ=942.08;QD=19.23;SB=-418.46	GT:AD:DP:GL:GQ	0/1:20,28:45:-111.06,-13.56,-54.54:99
-chr1	2910291	rs12066017	A	G	366.01	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=0.74;MQ=60.00;MQ0=0;OQ=575.67;QD=14.76;SB=-270.53	GT:AD:DP:GL:GQ	0/1:19,20:38:-72.30,-11.45,-69.20:99
-chr1	2911142	.	G	A	41.67	PASS	AC=1;AF=0.50;AN=2;DP=65;Dels=0.00;HRun=1;HaplotypeScore=2.51;MQ=59.36;MQ0=0;OQ=1099.50;QD=16.92;SB=-501.68	GT:AD:DP:GL:GQ	0/1:32,33:61:-131.61,-18.38,-102.89:99
-chr1	2911277	.	C	G	44.53	PASS	AC=1;AF=0.50;AN=2;DP=40;Dels=0.00;HRun=1;HaplotypeScore=1.86;MQ=58.95;MQ0=0;OQ=436.44;QD=10.91;SB=-233.06	GT:AD:DP:GL:GQ	0/1:26,14:40:-58.99,-12.06,-109.38:99
-chr1	2911306	.	G	C	234.71	PASS	AC=1;AF=0.50;AN=2;DP=37;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.10;MQ0=0;OQ=519.44;QD=14.04;SB=-251.08	GT:AD:DP:GL:GQ	0/1:21,16:36:-66.08,-10.85,-90.14:99
-chr1	2911720	rs16823335	G	A	261.73	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=1;HaplotypeScore=2.20;MQ=59.20;MQ0=0;OQ=681.92;QD=11.76;SB=-297.82	GT:AD:DP:GL:GQ	0/1:33,24:53:-87.45,-15.98,-100.90:99
-chr1	2912187	rs12028094	C	T	355.65	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=59.31;MQ0=0;OQ=839.47;QD=15.55;SB=-427.81	GT:AD:DP:GL:GQ	0/1:28,26:51:-102.60,-15.37,-81.01:99
-chr1	2912604	rs10797377	G	A	324.39	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=2.07;MQ=59.31;MQ0=0;OQ=1121.19;QD=18.38;SB=-566.38	GT:AD:DP:GL:GQ	0/1:27,34:59:-133.18,-17.78,-89.26:99
-chr1	2913061	.	G	A	0.04	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=86;Dels=0.00;HRun=0;HaplotypeScore=14.44;MQ=58.67;MQ0=0;OQ=1557.84;QD=18.11;SB=-803.34	GT:AD:DP:GL:GQ	0/1:39,47:82:-183.77,-24.70,-131.16:99
-chr1	2913244	rs12063869	T	A	356.59	PASS	AC=1;AF=0.50;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=59.21;MQ0=0;OQ=1259.24;QD=16.35;SB=-327.01	GT:AD:DP:GL:GQ	0/1:37,40:76:-152.10,-22.89,-141.13:99
-chr1	2913685	.	T	A	78.15	DPFilter;Indel	AC=1;AF=0.50;AN=2;DP=72;Dels=0.01;HRun=7;HaplotypeScore=10.99;MQ=58.04;MQ0=0;QD=1.09;SB=89.27	GT:AD:DP:GL:GQ	0/1:54,17:56:-27.67,-16.57,-168.58:99
-chr1	2914586	rs2889476	T	C	86.82	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=2;HaplotypeScore=0.47;MQ=59.50;MQ0=0;OQ=1018.41;QD=13.58;SB=-348.57	GT:AD:DP:GL:GQ	0/1:38,37:73:-127.11,-21.99,-156.39:99
-chr1	2915216	.	C	A	133.06	PASS	AC=1;AF=0.50;AN=2;DP=54;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.57;MQ0=0;OQ=840.99;QD=15.57;SB=-328.03	GT:AD:DP:GL:GQ	0/1:26,28:54:-103.65,-16.27,-91.36:99
-chr1	2915282	rs946175	A	G	382.87	PASS	AC=1;AF=0.50;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.34;MQ0=0;OQ=951.27;QD=13.59;SB=-404.30	GT:AD:DP:GL:GQ	0/1:37,33:69:-119.20,-20.78,-144.79:99
-chr1	2915357	rs946176	C	T	193.41	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=1;HaplotypeScore=2.81;MQ=60.00;MQ0=0;OQ=877.87;QD=15.14;SB=-352.31	GT:AD:DP:GL:GQ	0/1:30,28:58:-108.55,-17.48,-106.40:99
-chr1	2915382	rs946177	A	G	311.86	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=1.95;MQ=60.00;MQ0=0;OQ=696.00;QD=12.21;SB=-254.19	GT:AD:DP:GL:GQ	0/1:29,28:55:-89.46,-16.58,-112.38:99
-chr1	2916239	rs2027262	T	C	443.46	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.66;MQ0=0;OQ=530.92;QD=9.65;SB=-168.92	GT:AD:DP:GL:GQ	0/1:28,27:51:-71.75,-15.38,-111.87:99
-chr1	2916397	rs2027263	A	G	6.58	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=3;HaplotypeScore=4.33;MQ=58.92;MQ0=0;OQ=1007.60;QD=17.99;SB=-520.31	GT:AD:DP:GL:GQ	0/1:22,34:54:-120.31,-16.27,-82.47:99
-chr1	2916415	rs2027264	G	A	412.83	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=1.05;MQ=59.63;MQ0=0;OQ=890.12;QD=17.45;SB=-464.45	GT:AD:DP:GL:GQ	0/1:23,27:49:-107.06,-14.77,-75.59:99
-chr1	2916645	.	C	T	34.34	PASS	AC=1;AF=0.50;AN=2;DP=52;Dels=0.00;HRun=0;HaplotypeScore=0.74;MQ=56.98;MQ0=0;OQ=878.75;QD=16.90;SB=-242.23	GT:AD:DP:GL:GQ	0/1:24,28:50:-106.23,-15.07,-83.70:99
-chr1	2916833	rs11802804	T	G	172.47	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=4.04;MQ=53.08;MQ0=1;OQ=929.71;QD=12.91;SB=-466.74	GT:AD:DP:GL:GQ	0/1:38,34:69:-117.04,-20.78,-128.73:99
-chr1	2916871	.	T	G	0.62	PASS	AC=1;AF=0.50;AN=2;DP=58;Dels=0.00;HRun=1;HaplotypeScore=5.93;MQ=46.04;MQ0=1;OQ=612.93;QD=10.57;SB=-101.87	GT:AD:DP:GL:GQ	0/1:33,25:54:-80.84,-16.27,-108.92:99
-chr1	2916874	.	G	A	4.25	PASS	AC=1;AF=0.50;AN=2;DP=61;Dels=0.00;HRun=1;HaplotypeScore=3.93;MQ=45.85;MQ0=1;OQ=812.26;QD=13.32;SB=-234.49	GT:AD:DP:GL:GQ	0/1:33,28:56:-101.38,-16.87,-110.18:99
-chr1	2917035	rs12028439	A	G	6.74	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=2;HaplotypeScore=4.28;MQ=54.23;MQ0=0;OQ=1040.90;QD=18.93;SB=-369.97	GT:AD:DP:GL:GQ	0/1:20,35:53:-123.34,-15.97,-76.66:99
-chr1	2917114	rs12024879	G	A	187.61	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=2.10;MQ=55.08;MQ0=0;OQ=934.32;QD=17.30;SB=-362.51	GT:AD:DP:GL:GQ	0/1:25,29:52:-112.38,-15.67,-83.45:99
-chr1	2917331	rs12027818	C	T	143.12	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=2.51;MQ=58.15;MQ0=1;OQ=1252.97;QD=20.21;SB=-536.07	GT:AD:DP:GL:GQ	0/1:25,37:61:-146.97,-18.38,-79.78:99
-chr1	2917538	rs12027883	C	T	346.92	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=1;HaplotypeScore=0.79;MQ=58.55;MQ0=0;OQ=1081.24;QD=14.42;SB=-345.82	GT:AD:DP:GL:GQ	0/1:42,33:74:-133.70,-22.29,-151.25:99
-chr1	2918836	rs6681651	C	T	64.93	PASS	AC=1;AF=0.50;AN=2;DB;DP=29;Dels=0.00;HRun=0;HaplotypeScore=0.82;MQ=60.00;MQ0=0;OQ=454.13;QD=15.66;SB=-29.51	GT:AD:DP:GL:GQ	0/1:13,16:27:-56.83,-8.14,-47.37:99
-chr1	2921187	rs6691208	C	A	92.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=2;HaplotypeScore=0.16;MQ=59.63;MQ0=0;OQ=715.52;QD=11.36;SB=-355.27	GT:AD:DP:GL:GQ	0/1:37,26:61:-93.21,-18.38,-116.36:99
-chr1	2921274	rs4357486	G	C	320.40	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=2.26;MQ=59.45;MQ0=0;OQ=673.44;QD=16.03;SB=-361.79	GT:AD:DP:GL:GQ	0/1:20,22:41:-83.00,-12.37,-84.03:99
-chr1	2921300	rs4486390	C	T	182.10	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=3.96;MQ=59.45;MQ0=0;OQ=737.41;QD=17.56;SB=-360.43	GT:AD:DP:GL:GQ	0/1:18,24:38:-88.48,-11.46,-48.81:99
-chr1	2922007	rs59869348	T	C	59.62	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=2;HaplotypeScore=2.22;MQ=59.22;MQ0=0;OQ=864.59;QD=16.01;SB=-414.28	GT:AD:DP:GL:GQ	0/1:23,31:52:-105.41,-15.67,-90.49:99
-chr1	2922076	rs59041920	C	T	58.92	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=4.59;MQ=59.36;MQ0=0;OQ=1222.53;QD=18.81;SB=-446.93	GT:AD:DP:GL:GQ	0/1:26,38:58:-143.01,-17.47,-78.18:99
-chr1	2922420	.	C	T	142.55	PASS	AC=1;AF=0.50;AN=2;DP=60;Dels=0.00;HRun=0;HaplotypeScore=1.39;MQ=58.20;MQ0=0;OQ=828.62;QD=13.81;SB=-355.45	GT:AD:DP:GL:GQ	0/1:34,26:58:-103.62,-17.47,-119.28:99
-chr1	2922927	.	A	G	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=28;Dels=0.00;HRun=1;HaplotypeScore=3.70;MQ=45.44;MQ0=1;OQ=81.65;QD=2.92;SB=-41.94	GT:AD:DP:GL:GQ	0/1:20,8:20:-17.47,-6.02,-59.35:99
-chr1	2923073	.	T	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=21;Dels=0.05;HRun=1;HaplotypeScore=30.97;MQ=45.34;MQ0=0;OQ=111.92;QD=5.33;SB=-10.00	GT:AD:DP:GL:GQ	0/1:12,8:13:-18.39,-3.92,-26.21:99
-chr1	2923110	.	A	C	47.42	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=13;Dels=0.00;HRun=0;HaplotypeScore=28.91;MQ=36.30;MQ0=0;QD=3.65;SB=5.05	GT:AD:DP:GL:GQ	0/1:6,4:10:-13.77,-5.74,-26.81:80.25
-chr1	2923762	rs6680573	C	G	6.28	PASS	AC=1;AF=0.50;AN=2;DB;DP=30;Dels=0.00;HRun=2;HaplotypeScore=3.37;MQ=60.00;MQ0=0;OQ=313.93;QD=10.46;SB=-109.66	GT:AD:DP:GL:GQ	0/1:20,10:28:-43.13,-8.46,-67.50:99
-chr1	2924595	rs56200661	C	T	138.23	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=1.66;MQ=58.81;MQ0=0;OQ=702.85;QD=18.02;SB=-315.84	GT:AD:DP:GL:GQ	0/1:17,22:37:-84.72,-11.16,-50.65:99
-chr1	2924706	.	G	A	66.14	PASS	AC=1;AF=0.50;AN=2;DP=41;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=59.09;MQ0=0;OQ=681.79;QD=16.63;SB=-295.78	GT:AD:DP:GL:GQ	0/1:19,22:39:-83.22,-11.75,-60.51:99
-chr1	2926246	rs12564456	C	G	10.43	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=3;HaplotypeScore=2.61;MQ=58.69;MQ0=0;OQ=646.12;QD=12.92;SB=-206.63	GT:AD:DP:GL:GQ	0/1:26,24:45:-81.49,-13.60,-94.41:99
-chr1	2926340	rs10752732	T	C	133.80	PASS	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=1;HaplotypeScore=1.12;MQ=58.78;MQ0=0;OQ=1282.63;QD=33.75;SB=-620.25	GT:AD:DP:GL:GQ	1/1:0,38:38:-131.87,-11.45,-0.02:99
-chr1	2926606	rs55949537	A	T	46.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=2;HaplotypeScore=3.14;MQ=59.67;MQ0=0;OQ=1017.41;QD=14.13;SB=-469.52	GT:AD:DP:GL:GQ	0/1:36,35:69:-125.81,-20.79,-130.04:99
-chr1	2926614	rs55784203	G	T	254.87	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=2.49;MQ=59.65;MQ0=0;OQ=972.92;QD=14.31;SB=-412.15	GT:AD:DP:GL:GQ	0/1:33,35:66:-120.46,-19.89,-108.03:99
-chr1	2926663	rs56091202	A	G	268.72	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=1.61;MQ=59.60;MQ0=0;OQ=738.64;QD=12.74;SB=-307.21	GT:AD:DP:GL:GQ	0/1:29,29:57:-94.32,-17.18,-112.23:99
-chr1	2926891	.	A	G	0.34	PASS	AC=1;AF=0.50;AN=2;DP=48;Dels=0.00;HRun=3;HaplotypeScore=3.44;MQ=59.42;MQ0=0;OQ=538.71;QD=11.22;SB=-143.63	GT:AD:DP:GL:GQ	0/1:27,21:47:-71.31,-14.16,-109.92:99
-chr1	2927088	rs61266721	G	A	167.43	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=3.88;MQ=59.23;MQ0=0;OQ=1016.77;QD=16.95;SB=-453.45	GT:AD:DP:GL:GQ	0/1:30,30:57:-122.14,-17.18,-86.53:99
-chr1	2927410	rs12033927	A	G	358.86	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=1;HaplotypeScore=1.45;MQ=59.13;MQ0=0;OQ=706.05;QD=14.71;SB=-368.25	GT:AD:DP:GL:GQ	0/1:23,25:48:-88.35,-14.46,-94.54:99
-chr1	2927411	rs12034794	T	G	337.44	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=1;HaplotypeScore=1.45;MQ=59.15;MQ0=0;OQ=614.57;QD=12.54;SB=-294.80	GT:AD:DP:GL:GQ	0/1:24,25:47:-78.90,-14.16,-89.23:99
-chr1	2928125	rs4576609	C	T	277.54	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=4.12;MQ=57.60;MQ0=0;OQ=875.52;QD=14.35;SB=-423.82	GT:AD:DP:GL:GQ	0/1:31,30:59:-108.62,-17.78,-98.44:99
-chr1	2928429	rs35806103	C	T	10.78	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=1;HaplotypeScore=2.15;MQ=59.80;MQ0=0;OQ=886.08;QD=19.69;SB=-315.84	GT:AD:DP:GL:GQ	0/1:17,27:42:-104.54,-12.65,-59.38:99
-chr1	2928557	rs3795262	T	G	88	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=1;HaplotypeScore=0.32;MQ=58.78;MQ0=0;OQ=296.95;QD=7.81;SB=-58.83	GT:AD:DP:GL:GQ	0/1:21,17:33:-42.92,-9.94,-74.02:99
-chr1	2928784	.	T	G	4.50	PASS	AC=1;AF=0.50;AN=2;DP=41;Dels=0.00;HRun=2;HaplotypeScore=2.61;MQ=58.98;MQ0=0;OQ=615.11;QD=15.00;SB=-301.85	GT:AD:DP:GL:GQ	0/1:17,24:38:-76.24,-11.45,-59.09:99
-chr1	2929872	rs55873718	A	G	218.87	PASS	AC=1;AF=0.50;AN=2;DB;DP=84;Dels=0.00;HRun=0;HaplotypeScore=0.48;MQ=59.73;MQ0=0;OQ=845.74;QD=10.07;SB=-404.66	GT:AD:DP:GL:GQ	0/1:48,36:83:-112.88,-25.02,-189.40:99
-chr1	2930858	rs56176404	A	G	226.80	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=1;HaplotypeScore=0.32;MQ=59.44;MQ0=0;OQ=1022.49;QD=13.82;SB=-491.10	GT:AD:DP:GL:GQ	0/1:38,36:73:-127.52,-21.99,-154.69:99
-chr1	2932289	rs55885250	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=78;Dels=0.04;HRun=0;HaplotypeScore=32.21;MQ=45.88;MQ0=1;OQ=148.06;QD=1.90;SB=104.37	GT:AD:DP:GL:GQ	0/1:58,16:68:-38.29,-20.20,-216.63:99
-chr1	2932299	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=92;Dels=0.02;HRun=0;HaplotypeScore=97.52;MQ=43.85;MQ0=0;OQ=59.90;QD=0.65;SB=104.31	GT:AD:DP:GL:GQ	0/1:78,12:69:-29.77,-20.49,-208.32:92.74
-chr1	2932325	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=91;Dels=0.02;HRun=1;HaplotypeScore=195.32;MQ=42.40;MQ0=0;OQ=612.63;QD=6.73;SB=-162.19	GT:AD:DP:GL:GQ	0/1:51,38:73:-86.24,-21.70,-183.14:99
-chr1	2932341	.	A	G	250.48	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=123;Dels=0.00;HRun=1;HaplotypeScore=40.55;MQ=40.81;MQ0=0;QD=2.04;SB=89.32	GT:AD:DP:GL:GQ	0/1:96,27:107:-60.57,-32.24,-364.33:99
-chr1	2932343	.	G	A	487.06	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=123;Dels=0.01;HRun=0;HaplotypeScore=44.00;MQ=40.81;MQ0=0;QD=3.96;SB=58.75	GT:AD:DP:GL:GQ	0/1:99,23:108:-84.22,-32.23,-314.56:99
-chr1	2932349	.	G	A	708.07	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=122;Dels=0.00;HRun=1;HaplotypeScore=35.72;MQ=40.62;MQ0=0;QD=5.80;SB=89.29	GT:AD:DP:GL:GQ	0/1:95,27:119:-109.94,-35.84,-335.64:99
-chr1	2932354	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=126;Dels=0.00;HRun=0;HaplotypeScore=77.99;MQ=40.25;MQ0=0;OQ=691.65;QD=5.49;SB=86.28	GT:AD:DP:GL:GQ	0/1:97,29:123:-109.51,-37.06,-349.27:99
-chr1	2932376	.	T	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=129;Dels=0.00;HRun=2;HaplotypeScore=11.36;MQ=39.42;MQ0=0;OQ=679.31;QD=5.27;SB=92.31	GT:AD:DP:GL:GQ	0/1:96,32:117:-106.47,-35.26,-303.35:99
-chr1	2932379	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=125;Dels=0.01;HRun=1;HaplotypeScore=36.27;MQ=39.15;MQ0=0;OQ=716.76;QD=5.73;SB=92.27	GT:AD:DP:GL:GQ	0/1:94,28:121:-111.11,-36.16,-333.12:99
-chr1	2932387	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=113;Dels=0.00;HRun=0;HaplotypeScore=36.67;MQ=38.20;MQ0=0;OQ=140.95;QD=1.25;SB=77.24	GT:AD:DP:GL:GQ	0/1:93,19:101:-47.83,-30.45,-304.67:99
-chr1	2932417	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=103;Dels=0.00;HRun=0;HaplotypeScore=80.35;MQ=36.74;MQ0=0;OQ=291.45;QD=2.83;SB=86.26	GT:AD:DP:GL:GQ	0/1:76,27:77:-55.63,-23.21,-217.09:99
-chr1	2932437	.	G	A	14.74	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=91;Dels=0.00;HRun=0;HaplotypeScore=80.96;MQ=35.05;MQ0=0;QD=0.16;SB=80.26	GT:AD:DP:GL:GQ	0/1:79,12:67:-24.93,-20.19,-214.14:47.43
-chr1	2932441	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=89;Dels=0.00;HRun=0;HaplotypeScore=78.31;MQ=34.28;MQ0=0;OQ=251.61;QD=2.83;SB=77.24	GT:AD:DP:GL:GQ	0/1:70,19:66:-48.33,-19.89,-185.59:99
-chr1	2932450	rs55992205	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=86;Dels=0.00;HRun=0;HaplotypeScore=52.98;MQ=32.53;MQ0=0;OQ=616.18;QD=7.16;SB=92.26	GT:AD:DP:GL:GQ	0/1:64,22:76:-87.80,-22.90,-186.06:99
-chr1	2932474	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=98;Dels=0.05;HRun=0;HaplotypeScore=121.87;MQ=31.47;MQ0=0;OQ=770.86;QD=7.87;SB=104.31	GT:AD:DP:GL:GQ	0/1:66,27:80:-104.48,-24.11,-189.46:99
-chr1	2932495	.	A	G	458.76	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=100;Dels=0.00;HRun=1;HaplotypeScore=104.10;MQ=35.05;MQ0=0;QD=4.59;SB=98.32	GT:AD:DP:GL:GQ	0/1:77,23:78:-72.67,-23.51,-220.09:99
-chr1	2932498	.	G	A	771.99	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=96;Dels=0.00;HRun=0;HaplotypeScore=85.95;MQ=35.28;MQ0=0;QD=8.04;SB=59.63	GT:AD:DP:GL:GQ	0/1:70,26:76:-103.38,-22.90,-174.72:99
-chr1	2932501	.	G	A	15.55	LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=95;Dels=0.00;HRun=0;HaplotypeScore=78.10;MQ=36.15;MQ0=0;QD=0.16;SB=-7.88	GT:AD:DP:GL:GQ	0/1:82,13:64:-24.12,-19.29,-198.59:48.26
-chr1	2932516	.	A	G	437.11	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=100;Dels=0.02;HRun=2;HaplotypeScore=90.55;MQ=38.01;MQ0=0;QD=4.37;SB=68.24	GT:AD:DP:GL:GQ	0/1:78,20:76:-69.30,-22.30,-207.20:99
-chr1	2932519	.	A	G	420.64	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=113;Dels=0.00;HRun=1;HaplotypeScore=127.72;MQ=37.64;MQ0=1;QD=3.72;SB=86.29	GT:AD:DP:GL:GQ	0/1:90,23:88:-71.87,-26.52,-261.50:99
-chr1	2932522	.	A	G	354.05	SnpCluster	AC=1;AF=0.50;AN=2;DP=116;Dels=0.02;HRun=1;HaplotypeScore=155.74;MQ=37.22;MQ0=2;QD=3.05;SB=-178.30	GT:AD:DP:GL:GQ	0/1:89,24:100:-68.22,-29.53,-308.19:99
-chr1	2932531	.	G	A	40.28	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=127;Dels=0.02;HRun=0;HaplotypeScore=95.96;MQ=37.07;MQ0=3;QD=0.32;SB=-35.75	GT:AD:DP:GL:GQ	0/1:114,11:85:-32.32,-25.01,-255.84:73.11
-chr1	2932543	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=125;Dels=0.00;HRun=0;HaplotypeScore=90.42;MQ=36.51;MQ0=3;OQ=448.17;QD=3.59;SB=-29.75	GT:AD:DP:GL:GQ	0/1:94,23:99:-91.60,-43.50,-272.82:99
-chr1	2932549	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=114;Dels=0.00;HRun=1;HaplotypeScore=106.24;MQ=36.58;MQ0=3;OQ=776.41;QD=6.81;SB=20.21	GT:AD:DP:GL:GQ	0/1:80,34:91:-108.36,-27.43,-223.52:99
-chr1	2932558	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=105;Dels=0.00;HRun=0;HaplotypeScore=87.01;MQ=36.91;MQ0=2;OQ=55.94;QD=0.53;SB=50.16	GT:AD:DP:GL:GQ	0/1:89,16:77:-32.08,-23.20,-238.58:88.78
-chr1	2932594	.	A	G	95.90	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=101;Dels=0.01;HRun=2;HaplotypeScore=79.79;MQ=37.41;MQ0=0;QD=0.95;SB=41.16	GT:AD:DP:GL:GQ	0/1:85,15:78:-36.37,-23.50,-267.93:99
-chr1	2932595	.	G	T	858.77	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=99;Dels=0.01;HRun=0;HaplotypeScore=92.92;MQ=37.56;MQ0=0;QD=8.67;SB=50.17	GT:AD:DP:GL:GQ	0/1:57,41:82:-113.86,-24.70,-181.24:99
-chr1	2932597	.	A	G	613.75	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=100;Dels=0.01;HRun=2;HaplotypeScore=83.48;MQ=37.85;MQ0=0;QD=6.14;SB=53.19	GT:AD:DP:GL:GQ	0/1:69,29:84:-89.97,-25.31,-224.02:99
-chr1	2932647	.	A	G	424.25	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=111;Dels=0.00;HRun=1;HaplotypeScore=36.34;MQ=40.26;MQ0=1;QD=3.82;SB=65.23	GT:AD:DP:GL:GQ	0/1:87,24:95:-74.33,-28.62,-285.65:99
-chr1	2932650	.	G	A	15.47	DPFilter;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=115;Dels=0.00;HRun=0;HaplotypeScore=35.26;MQ=39.92;MQ0=1;QD=0.13;SB=83.21	GT:AD:DP:GL:GQ	0/1:106,9:104:-36.16,-31.34,-318.46:48.18
-chr1	2932656	.	G	A	597.61	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=114;Dels=0.00;HRun=0;HaplotypeScore=41.23;MQ=39.70;MQ0=1;QD=5.24;SB=83.24	GT:AD:DP:GL:GQ	0/1:85,29:104:-94.39,-31.34,-268.84:99
-chr1	2932671	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=128;Dels=0.00;HRun=1;HaplotypeScore=55.64;MQ=38.11;MQ0=1;OQ=790.23;QD=6.17;SB=74.25	GT:AD:DP:GL:GQ	0/1:94,34:113:-116.34,-34.04,-292.03:99
-chr1	2932680	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=128;Dels=0.00;HRun=0;HaplotypeScore=32.69;MQ=37.68;MQ0=1;OQ=1237.37;QD=9.67;SB=74.20	GT:AD:DP:GL:GQ	0/1:85,43:122:-163.79,-36.76,-270.86:99
-chr1	2932682	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=130;Dels=0.00;HRun=0;HaplotypeScore=26.80;MQ=37.61;MQ0=1;OQ=704.94;QD=5.42;SB=71.27	GT:AD:DP:GL:GQ	0/1:103,27:122:-110.54,-36.77,-411.49:99
-chr1	2932721	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=120;Dels=0.00;HRun=0;HaplotypeScore=36.50;MQ=39.93;MQ0=0;OQ=181.45;QD=1.51;SB=92.30	GT:AD:DP:GL:GQ	0/1:93,27:104:-52.76,-31.33,-321.47:99
-chr1	2932727	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=110;Dels=0.00;HRun=0;HaplotypeScore=27.86;MQ=40.16;MQ0=0;OQ=588.52;QD=5.35;SB=83.30	GT:AD:DP:GL:GQ	0/1:83,27:109:-94.97,-32.83,-329.92:99
-chr1	2932738	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=110;Dels=0.00;HRun=1;HaplotypeScore=39.11;MQ=39.53;MQ0=0;OQ=873.00;QD=7.94;SB=74.25	GT:AD:DP:GL:GQ	0/1:74,36:108:-123.12,-32.54,-289.99:99
-chr1	2932769	.	G	A	0.04	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=94;Dels=0.00;HRun=0;HaplotypeScore=7.13;MQ=40.78;MQ0=0;OQ=619.13;QD=6.59;SB=56.17	GT:AD:DP:GL:GQ	0/1:71,23:91:-92.61,-27.42,-231.77:99
-chr1	2933043	rs7412983	A	C	563.74	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.39;MQ0=0;OQ=861.61;QD=12.67;SB=-438.69	GT:AD:DP:GL:GQ	0/1:37,31:65:-109.02,-19.58,-126.93:99
-chr1	2933258	rs58265521	C	A	261.91	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=1;HaplotypeScore=0.98;MQ=59.67;MQ0=0;OQ=928.26;QD=16.29;SB=-439.21	GT:AD:DP:GL:GQ	0/1:24,33:53:-112.08,-15.97,-65.68:99
-chr1	2933528	rs60287244	A	G	23.05	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=7.04;MQ=58.03;MQ0=0;OQ=739.69;QD=12.98;SB=-372.23	GT:AD:DP:GL:GQ	0/1:30,27:55:-93.82,-16.57,-116.71:99
-chr1	2933898	rs12034766	A	G	35.30	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=3;HaplotypeScore=1.69;MQ=58.27;MQ0=0;OQ=600.73;QD=11.12;SB=-275.56	GT:AD:DP:GL:GQ	0/1:26,28:51:-78.73,-15.38,-104.98:99
-chr1	2933946	rs12033401	C	T	155.60	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=3.82;MQ=57.46;MQ0=0;OQ=525.20;QD=14.19;SB=-282.22	GT:AD:DP:GL:GQ	0/1:16,21:31:-65.15,-9.35,-44.32:99
-chr1	2934531	rs57893585	T	A	124.36	PASS	AC=1;AF=0.50;AN=2;DB;DP=24;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=58.24;MQ0=0;OQ=372.99;QD=15.54;SB=-168.83	GT:AD:DP:GL:GQ	0/1:10,14:21:-46.91,-6.33,-28.06:99
-chr1	2935764	rs12035292	C	T	0.26	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=10.18;MQ=43.51;MQ0=2;OQ=248.84;QD=4.70;SB=-149.59	GT:AD:DP:GL:GQ	0/1:30,23:31:-37.51,-9.34,-74.68:99
-chr1	2935800	rs6693975	G	A	0.65	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=6.49;MQ=45.50;MQ0=1;OQ=189.85;QD=4.75;SB=-111.56	GT:AD:DP:GL:GQ	0/1:24,16:23:-29.21,-6.94,-45.54:99
-chr1	2935836	rs6693982	G	A	38.33	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=2.48;MQ=49.72;MQ0=2;OQ=286.18;QD=6.36;SB=-139.13	GT:AD:DP:GL:GQ	0/1:25,20:29:-40.65,-8.75,-58.79:99
-chr1	2936586	rs12038530	T	A	386.33	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.13;MQ0=0;OQ=538.23;QD=11.21;SB=-193.51	GT:AD:DP:GL:GQ	0/1:29,19:46:-70.96,-13.86,-104.56:99
-chr1	2937616	rs12037307	C	A	453.51	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.11;MQ0=0;OQ=785.06;QD=15.10;SB=-326.01	GT:AD:DP:GL:GQ	0/1:25,27:52:-97.46,-15.67,-88.48:99
-chr1	2937769	rs12039548	T	C	374.78	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=1.69;MQ=59.62;MQ0=0;OQ=1018.45;QD=16.97;SB=-485.32	GT:AD:DP:GL:GQ	0/1:25,35:58:-122.60,-17.48,-90.45:99
-chr1	2937880	rs12034573	G	A	539.50	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.97;MQ0=0;OQ=601.18;QD=13.36;SB=-263.26	GT:AD:DP:GL:GQ	0/1:25,20:44:-76.67,-13.27,-77.09:99
-chr1	2938038	rs10909864	T	C	31.93	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=2;HaplotypeScore=3.17;MQ=58.15;MQ0=0;OQ=603.85;QD=12.58;SB=-301.61	GT:AD:DP:GL:GQ	0/1:20,28:44:-76.94,-13.27,-79.42:99
-chr1	2938888	rs1890338	C	T	331.53	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=2.34;MQ=59.50;MQ0=0;OQ=622.92;QD=13.54;SB=-315.86	GT:AD:DP:GL:GQ	0/1:22,23:40:-77.64,-12.06,-61.98:99
-chr1	2939215	rs12039132	C	T	18.71	PASS	AC=1;AF=0.50;AN=2;DB;DP=35;Dels=0.00;HRun=0;HaplotypeScore=2.11;MQ=58.67;MQ0=0;OQ=590.59;QD=16.87;SB=-94.60	GT:AD:DP:GL:GQ	0/1:16,19:32:-71.99,-9.65,-41.59:99
-chr1	2939467	rs7514166	G	C	161.11	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=1.82;MQ=58.11;MQ0=0;OQ=380.76;QD=10.29;SB=-57.73	GT:AD:DP:GL:GQ	0/1:23,14:34:-51.61,-10.25,-87.39:99
-chr1	2939859	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=29;Dels=0.00;HRun=9;HaplotypeScore=3.75;MQ=51.46;MQ0=0;OQ=333.21;QD=11.49;SB=-54.83	GT:AD:DP:GL:GQ	0/1:17,12:25:-44.15,-7.55,-58.82:99
-chr1	2939927	rs34408665	T	C	431.23	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=58.91;MQ0=0;OQ=752.79;QD=11.76;SB=-348.05	GT:AD:DP:GL:GQ	0/1:32,32:61:-96.95,-18.39,-123.70:99
-chr1	2939954	rs58052947	T	C	258.56	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=2.29;MQ=58.84;MQ0=0;OQ=891.02;QD=13.92;SB=-428.88	GT:AD:DP:GL:GQ	0/1:28,36:63:-111.38,-19.00,-108.25:99
-chr1	2940097	rs56398543	G	A	185.44	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=2.62;MQ=57.77;MQ0=0;OQ=622.10;QD=14.81;SB=-266.78	GT:AD:DP:GL:GQ	0/1:21,21:40:-77.55,-12.06,-68.06:99
-chr1	2940194	rs6661908	G	A	424.22	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.03;MQ0=0;OQ=1140.17;QD=20.00;SB=-442.95	GT:AD:DP:GL:GQ	0/1:24,33:57:-134.47,-17.17,-86.30:99
-chr1	2940230	rs41334845	G	T	113.62	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=1;HaplotypeScore=0.99;MQ=59.36;MQ0=0;OQ=1373.67;QD=21.13;SB=-590.07	GT:AD:DP:GL:GQ	0/1:21,44:63:-159.63,-18.98,-64.63:99
-chr1	2940454	rs6679678	T	C	216.89	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.48;MQ=60.00;MQ0=0;OQ=522.35;QD=9.16;SB=-250.32	GT:AD:DP:GL:GQ	0/1:31,26:48:-69.99,-14.47,-101.54:99
-chr1	2940732	rs12042403	T	C	312.83	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.74;MQ0=0;OQ=888.06;QD=12.51;SB=-433.91	GT:AD:DP:GL:GQ	0/1:39,32:70:-113.18,-21.09,-157.81:99
-chr1	2940746	rs12041583	A	G	452.19	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.72;MQ0=0;OQ=809.95;QD=12.27;SB=-418.24	GT:AD:DP:GL:GQ	0/1:35,31:63:-103.26,-18.98,-134.35:99
-chr1	2940894	rs12041634	A	T	208.26	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=1;HaplotypeScore=0.32;MQ=60.00;MQ0=0;OQ=886.35;QD=14.77;SB=-371.51	GT:AD:DP:GL:GQ	0/1:30,30:60:-110.00,-18.08,-114.34:99
-chr1	2940901	rs12040299	C	T	487.76	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=953.57;QD=15.63;SB=-409.79	GT:AD:DP:GL:GQ	0/1:31,30:60:-116.73,-18.09,-97.56:99
-chr1	2941104	rs10489589	T	C	232.05	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=1.82;MQ=59.67;MQ0=0;OQ=498.13;QD=8.90;SB=-202.46	GT:AD:DP:GL:GQ	0/1:33,23:54:-69.37,-16.27,-132.36:99
-chr1	2941207	.	G	A	104.13	PASS	AC=1;AF=0.50;AN=2;DP=56;Dels=0.00;HRun=0;HaplotypeScore=1.52;MQ=59.25;MQ0=0;OQ=904.38;QD=16.15;SB=-378.12	GT:AD:DP:GL:GQ	0/1:27,29:55:-110.29,-16.57,-94.24:99
-chr1	2941209	.	T	C	102.69	PASS	AC=1;AF=0.50;AN=2;DP=56;Dels=0.00;HRun=0;HaplotypeScore=1.52;MQ=59.25;MQ0=0;OQ=663.66;QD=11.85;SB=-280.62	GT:AD:DP:GL:GQ	0/1:26,30:53:-85.63,-15.98,-103.85:99
-chr1	2941371	rs12408197	C	T	428.36	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.60;MQ0=0;OQ=717.16;QD=12.36;SB=-246.23	GT:AD:DP:GL:GQ	0/1:33,25:52:-90.68,-15.68,-91.34:99
-chr1	2941666	.	T	C	142.44	PASS	AC=1;AF=0.50;AN=2;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.70;MQ0=0;OQ=433.61;QD=8.50;SB=-223.24	GT:AD:DP:GL:GQ	0/1:30,21:49:-61.42,-14.77,-117.95:99
-chr1	2941694	rs10489588	G	A	184.48	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=3.01;MQ=58.17;MQ0=0;OQ=458.21;QD=8.98;SB=-152.21	GT:AD:DP:GL:GQ	0/1:34,17:47:-63.28,-14.17,-98.47:99
-chr1	2941849	.	C	T	36.18	PASS	AC=1;AF=0.50;AN=2;DP=74;Dels=0.00;HRun=0;HaplotypeScore=3.75;MQ=59.44;MQ0=0;OQ=1385.60;QD=18.72;SB=-578.48	GT:AD:DP:GL:GQ	0/1:29,44:70:-162.94,-21.10,-91.88:99
-chr1	2942163	rs2017600	A	C	566.08	PASS	AC=2;AF=1.00;AN=2;DB;DP=73;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.37;MQ0=0;OQ=2376.48;QD=32.55;SB=-930.21	GT:AD:DP:GL:GQ	1/1:0,72:69:-241.26,-20.78,-0.03:99
-chr1	2942474	rs1005471	T	C	5.22	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=4;HaplotypeScore=1.12;MQ=60.00;MQ0=0;OQ=441.09;QD=10.02;SB=-191.58	GT:AD:DP:GL:GQ	0/1:27,17:44:-60.65,-13.26,-106.56:99
-chr1	2942683	rs9660819	C	T	0.66	PASS	AC=1;AF=0.50;AN=2;DB;DP=26;Dels=0.00;HRun=1;HaplotypeScore=5.17;MQ=58.20;MQ0=0;OQ=155.13;QD=5.97;SB=-65.81	GT:AD:DP:GL:GQ	0/1:19,7:24:-26.03,-7.23,-63.04:99
-chr1	2942700	rs9661525	T	G	36.57	PASS	AC=1;AF=0.50;AN=2;DB;DP=26;Dels=0.00;HRun=0;HaplotypeScore=1.78;MQ=59.11;MQ0=0;OQ=126.09;QD=4.85;SB=-19.97	GT:AD:DP:GL:GQ	0/1:19,7:25:-23.42,-7.53,-64.66:99
-chr1	2943003	.	G	A	0.16	PASS	AC=1;AF=0.50;AN=2;DP=27;Dels=0.00;HRun=2;HaplotypeScore=0.67;MQ=59.14;MQ0=0;OQ=556.71;QD=20.62;SB=-180.72	GT:AD:DP:GL:GQ	0/1:10,17:27:-67.10,-8.14,-31.23:99
-chr1	2943693	rs16823392	C	G	180.70	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=1;HaplotypeScore=1.22;MQ=57.09;MQ0=0;OQ=626.82;QD=16.07;SB=-312.19	GT:AD:DP:GL:GQ	0/1:21,18:38:-77.42,-11.46,-83.70:99
-chr1	2943891	.	A	G	12.02	PASS	AC=1;AF=0.50;AN=2;DP=51;Dels=0.00;HRun=1;HaplotypeScore=2.00;MQ=54.82;MQ0=0;OQ=422.22;QD=8.28;SB=-205.52	GT:AD:DP:GL:GQ	0/1:33,18:49:-60.27,-14.76,-127.83:99
-chr1	2943911	.	C	T	10.41	DPFilter;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=41;Dels=0.00;HRun=0;HaplotypeScore=2.91;MQ=52.84;MQ0=0;QD=0.25;SB=11.05	GT:AD:DP:GL:GQ	0/1:24,17:24:-11.53,-7.24,-65.03:42.84
-chr1	2943915	.	A	G	396.79	SnpCluster	AC=1;AF=0.50;AN=2;DP=43;Dels=0.00;HRun=3;HaplotypeScore=1.74;MQ=53.20;MQ0=0;QD=9.23;SB=-114.71	GT:AD:DP:GL:GQ	0/1:25,18:39:-54.71,-11.75,-89.79:99
-chr1	2943921	.	G	A	412.53	SnpCluster	AC=1;AF=0.50;AN=2;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=53.30;MQ0=0;QD=10.31;SB=-110.52	GT:AD:DP:GL:GQ	0/1:23,17:37:-55.69,-11.15,-76.61:99
-chr1	2943983	.	T	C	18.12	PASS	AC=1;AF=0.50;AN=2;DP=38;Dels=0.00;HRun=1;HaplotypeScore=0.49;MQ=57.65;MQ0=0;OQ=359.40;QD=9.46;SB=-125.65	GT:AD:DP:GL:GQ	0/1:21,17:36:-50.07,-10.85,-82.05:99
-chr1	2944025	.	C	T	103.45	PASS	AC=1;AF=0.50;AN=2;DP=48;Dels=0.00;HRun=0;HaplotypeScore=1.73;MQ=58.94;MQ0=0;OQ=634.89;QD=13.23;SB=-327.90	GT:AD:DP:GL:GQ	0/1:27,21:45:-80.34,-13.56,-81.81:99
-chr1	2944063	.	C	T	0.51	PASS	AC=1;AF=0.50;AN=2;DP=51;Dels=0.00;HRun=4;HaplotypeScore=2.62;MQ=59.46;MQ0=0;OQ=776.27;QD=15.22;SB=-389.17	GT:AD:DP:GL:GQ	0/1:26,25:47:-95.07,-14.16,-76.30:99
-chr1	2944068	.	G	A	119.57	PASS	AC=1;AF=0.50;AN=2;DP=51;Dels=0.00;HRun=0;HaplotypeScore=1.51;MQ=59.46;MQ0=0;OQ=782.48;QD=15.34;SB=-373.90	GT:AD:DP:GL:GQ	0/1:25,26:49:-96.29,-14.76,-89.91:99
-chr1	2944090	.	T	C	3.70	PASS	AC=1;AF=0.50;AN=2;DP=53;Dels=0.00;HRun=2;HaplotypeScore=2.56;MQ=59.48;MQ0=0;OQ=656.17;QD=12.38;SB=-215.36	GT:AD:DP:GL:GQ	0/1:27,26:49:-83.67,-14.77,-97.10:99
-chr1	2944157	.	T	C	29.83	PASS	AC=1;AF=0.50;AN=2;DP=60;Dels=0.00;HRun=0;HaplotypeScore=1.70;MQ=59.30;MQ0=0;OQ=936.38;QD=15.61;SB=-205.50	GT:AD:DP:GL:GQ	0/1:27,33:58:-114.40,-17.47,-101.34:99
-chr1	2944208	rs4996810	A	C	0.07	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=2;HaplotypeScore=3.45;MQ=56.26;MQ0=1;OQ=219.14;QD=3.48;SB=-132.81	GT:AD:DP:GL:GQ	0/1:47,15:56:-42.07,-16.87,-150.42:99
-chr1	2944226	.	G	A	136.97	PASS	AC=1;AF=0.50;AN=2;DP=60;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=54.40;MQ0=1;OQ=501.67;QD=8.36;SB=-261.69	GT:AD:DP:GL:GQ	0/1:41,19:55:-70.03,-16.58,-122.86:99
-chr1	2944238	.	T	C	5.54	PASS	AC=1;AF=0.50;AN=2;DP=51;Dels=0.00;HRun=0;HaplotypeScore=2.62;MQ=54.51;MQ0=0;OQ=327.91;QD=6.43;SB=-156.50	GT:AD:DP:GL:GQ	0/1:37,14:48:-50.53,-14.46,-136.22:99
-chr1	2944239	.	T	C	1.08	PASS	AC=1;AF=0.50;AN=2;DP=54;Dels=0.00;HRun=0;HaplotypeScore=4.23;MQ=54.83;MQ0=0;OQ=279.86;QD=5.18;SB=-104.43	GT:AD:DP:GL:GQ	0/1:40,14:49:-46.04,-14.77,-139.11:99
-chr1	2945018	rs12036378	G	A	163.77	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=1.95;MQ=59.58;MQ0=0;OQ=895.36;QD=16.28;SB=-275.78	GT:AD:DP:GL:GQ	0/1:27,28:53:-108.80,-15.98,-79.65:99
-chr1	2945105	rs55863899	C	G	134.28	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.92;MQ=59.52;MQ0=0;OQ=868.77;QD=18.10;SB=-284.96	GT:AD:DP:GL:GQ	0/1:21,27:46:-104.04,-13.88,-85.12:99
-chr1	2945790	.	A	G	4.08	PASS	AC=1;AF=0.50;AN=2;DP=21;Dels=0.00;HRun=1;HaplotypeScore=0.58;MQ=57.28;MQ0=0;OQ=318.97;QD=15.19;SB=-83.80	GT:AD:DP:GL:GQ	0/1:8,13:20:-41.21,-6.03,-32.48:99
-chr1	2946023	rs10909865	A	G	147.02	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=3.15;MQ=60.00;MQ0=0;OQ=547.73;QD=10.74;SB=-195.64	GT:AD:DP:GL:GQ	0/1:24,27:47:-72.23,-14.17,-93.16:99
-chr1	2946442	.	A	G	66.31	PASS	AC=1;AF=0.50;AN=2;DP=74;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.61;MQ0=0;OQ=798.37;QD=10.79;SB=-385.01	GT:AD:DP:GL:GQ	0/1:39,35:70:-104.22,-21.10,-152.02:99
-chr1	2946526	rs2993510	T	C	256.19	PASS	AC=1;AF=0.50;AN=2;DB;DP=83;Dels=0.00;HRun=1;HaplotypeScore=1.31;MQ=59.44;MQ0=0;OQ=807.53;QD=9.73;SB=-328.89	GT:AD:DP:GL:GQ	0/1:47,36:81:-108.45,-24.41,-191.18:99
-chr1	2946859	rs12567620	T	G	251.94	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=1.13;MQ=59.22;MQ0=0;OQ=588.28;QD=9.97;SB=-221.33	GT:AD:DP:GL:GQ	0/1:35,23:57:-79.28,-17.17,-127.60:99
-chr1	2947460	rs12409277	T	C	554.91	PASS	AC=1;AF=0.50;AN=2;DB;DP=86;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1261.63;QD=14.67;SB=-598.55	GT:AD:DP:GL:GQ	0/1:39,47:86:-155.36,-25.92,-158.90:99
-chr1	2948421	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=83;Dels=0.02;HRun=17;HaplotypeScore=13.52;MQ=50.26;MQ0=0;OQ=57.24;QD=0.69;SB=67.75	GT:AD:DP:GL:GQ	0/1:69,12:60:-26.49,-17.48,-170.55:90.07
-chr1	2948568	rs12044162	A	G	115.23	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=1.73;MQ=57.63;MQ0=0;OQ=498.67;QD=9.23;SB=-105.58	GT:AD:DP:GL:GQ	0/1:33,21:52:-68.82,-15.67,-126.86:99
-chr1	2949062	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=41;Dels=0.00;HRun=0;HaplotypeScore=21.05;MQ=49.42;MQ0=0;OQ=103.70;QD=2.53;SB=-31.97	GT:AD:DP:GL:GQ	0/1:35,6:34:-23.91,-10.25,-88.62:99
-chr1	2949076	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=46;Dels=0.00;HRun=1;HaplotypeScore=103.01;MQ=49.60;MQ0=0;OQ=345.15;QD=7.50;SB=-146.53	GT:AD:DP:GL:GQ	0/1:33,13:40:-49.87,-12.07,-111.45:99
-chr1	2949080	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=49;Dels=0.00;HRun=0;HaplotypeScore=47.15;MQ=49.74;MQ0=0;OQ=115.37;QD=2.35;SB=-79.50	GT:AD:DP:GL:GQ	0/1:37,11:45:-31.37,-16.54,-140.93:99
-chr1	2949088	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=52;Dels=0.00;HRun=0;HaplotypeScore=39.37;MQ=50.39;MQ0=0;OQ=395.27;QD=7.60;SB=-176.85	GT:AD:DP:GL:GQ	0/1:38,14:46:-56.68,-13.87,-100.52:99
-chr1	2949107	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=61;Dels=0.00;HRun=1;HaplotypeScore=4.13;MQ=51.92;MQ0=0;OQ=58.43;QD=0.96;SB=-33.78	GT:AD:DP:GL:GQ	0/1:53,8:55:-25.70,-16.57,-188.08:91.26
-chr1	2949470	rs6692292	T	C	310.38	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=1.83;MQ=58.36;MQ0=0;OQ=1146.89;QD=15.93;SB=-322.30	GT:AD:DP:GL:GQ	0/1:33,39:71:-139.36,-21.39,-132.11:99
-chr1	2949881	rs56213325	G	A	8.56	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=3;HaplotypeScore=3.87;MQ=58.97;MQ0=0;OQ=1032.99;QD=16.40;SB=-387.12	GT:AD:DP:GL:GQ	0/1:30,33:61:-124.96,-18.37,-109.42:99
-chr1	2950052	rs12045368	A	G	278.87	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=53.32;MQ0=0;OQ=936.38;QD=14.41;SB=-275.26	GT:AD:DP:GL:GQ	0/1:28,37:62:-115.61,-18.69,-106.66:99
-chr1	2950232	rs10909866	C	T	182.72	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=1;HaplotypeScore=0.87;MQ=57.68;MQ0=0;OQ=969.99;QD=15.90;SB=-309.81	GT:AD:DP:GL:GQ	0/1:32,29:61:-118.67,-18.38,-109.12:99
-chr1	2950468	rs12046233	A	G	39.17	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=2;HaplotypeScore=2.71;MQ=59.23;MQ0=0;OQ=754.54;QD=12.58;SB=-279.44	GT:AD:DP:GL:GQ	0/1:30,30:55:-95.31,-16.57,-110.00:99
-chr1	2950650	rs12044848	C	T	194.31	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=1.40;MQ=59.52;MQ0=0;OQ=784.81;QD=16.35;SB=-285.29	GT:AD:DP:GL:GQ	0/1:24,24:47:-95.92,-14.16,-84.23:99
-chr1	2950883	.	C	A	3.38	PASS	AC=1;AF=0.50;AN=2;DP=83;Dels=0.00;HRun=1;HaplotypeScore=2.94;MQ=60.00;MQ0=0;OQ=1395.15;QD=16.81;SB=-283.26	GT:AD:DP:GL:GQ	0/1:36,46:82:-170.17,-27.37,-127.09:99
-chr1	2951230	rs56088946	T	C	7.58	PASS	AC=1;AF=0.50;AN=2;DB;DP=119;Dels=0.00;HRun=0;HaplotypeScore=1.83;MQ=59.61;MQ0=0;OQ=1944.95;QD=16.34;SB=-964.49	GT:AD:DP:GL:GQ	0/1:53,66:118:-233.32,-35.54,-213.54:99
-chr1	2951262	rs10909867	G	T	333.68	PASS	AC=1;AF=0.50;AN=2;DB;DP=96;Dels=0.00;HRun=0;HaplotypeScore=2.32;MQ=59.76;MQ0=0;OQ=1581.91;QD=16.48;SB=-612.08	GT:AD:DP:GL:GQ	0/1:44,52:95:-190.09,-28.61,-155.75:99
-chr1	2952067	rs10909868	A	C	183.71	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=1.94;MQ=60.00;MQ0=0;OQ=929.11;QD=14.75;SB=-149.21	GT:AD:DP:GL:GQ	0/1:29,34:62:-114.87,-18.67,-108.28:99
-chr1	2952085	rs12048975	T	C	158.31	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=60.00;MQ0=0;OQ=956.32;QD=14.94;SB=-180.58	GT:AD:DP:GL:GQ	0/1:30,34:62:-117.59,-18.68,-121.18:99
-chr1	2952452	rs2981859	G	A	525.66	PASS	AC=2;AF=1.00;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.65;MQ0=0;OQ=2597.04;QD=39.95;SB=-874.18	GT:AD:DP:GL:GQ	1/1:0,65:65:-263.30,-19.58,-0.02:99
-chr1	2953353	rs7339938	G	C	184.28	PASS	AC=1;AF=0.50;AN=2;DB;DP=77;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1644.05;QD=21.35;SB=-832.89	GT:AD:DP:GL:GQ	0/1:34,43:75:-190.30,-22.61,-128.08:99
-chr1	2954257	rs12044831	A	C	328.96	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=1.13;MQ=59.75;MQ0=0;OQ=969.03;QD=12.75;SB=-480.26	GT:AD:DP:GL:GQ	0/1:35,41:74:-122.48,-22.29,-132.71:99
-chr1	2956899	rs2993479	A	T	39.42	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=7.90;MQ=58.88;MQ0=0;OQ=639.75;QD=11.85;SB=-334.02	GT:AD:DP:GL:GQ	0/1:32,22:53:-83.22,-15.96,-119.83:99
-chr1	2958839	.	C	T	167.01	PASS	AC=1;AF=0.50;AN=2;DP=67;Dels=0.00;HRun=0;HaplotypeScore=0.92;MQ=59.03;MQ0=0;OQ=1118.18;QD=16.69;SB=-463.99	GT:AD:DP:GL:GQ	0/1:31,36:62:-133.80,-18.70,-86.01:99
-chr1	2958843	.	G	C	98.75	PASS	AC=1;AF=0.50;AN=2;DP=64;Dels=0.00;HRun=0;HaplotypeScore=1.25;MQ=58.98;MQ0=0;OQ=1122.63;QD=17.54;SB=-409.32	GT:AD:DP:GL:GQ	0/1:29,34:58:-133.03,-17.49,-113.54:99
-chr1	2960143	rs56298939	A	T	308.60	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=59.67;MQ0=0;OQ=788.46;QD=14.08;SB=-295.64	GT:AD:DP:GL:GQ	0/1:29,27:56:-99.00,-16.87,-109.64:99
-chr1	2960324	rs717795	T	C	9.89	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=3;HaplotypeScore=2.74;MQ=59.13;MQ0=0;OQ=443.35;QD=8.37;SB=-240.88	GT:AD:DP:GL:GQ	0/1:32,21:49:-62.39,-14.77,-120.82:99
-chr1	2961312	rs56069604	T	C	18.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=31;Dels=0.00;HRun=3;HaplotypeScore=0.73;MQ=58.64;MQ0=0;OQ=450.45;QD=14.53;SB=-212.67	GT:AD:DP:GL:GQ	0/1:13,18:29:-57.07,-8.74,-51.18:99
-chr1	2961381	rs2981857	T	C	166.54	PASS	AC=1;AF=0.50;AN=2;DB;DP=28;Dels=0.00;HRun=0;HaplotypeScore=0.57;MQ=60.00;MQ0=0;OQ=428.10;QD=15.29;SB=-207.68	GT:AD:DP:GL:GQ	0/1:10,18:28:-54.54,-8.45,-38.77:99
-chr1	2962384	rs2981856	T	C	282.12	PASS	AC=1;AF=0.50;AN=2;DB;DP=70;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=59.73;MQ0=0;OQ=862.73;QD=12.32;SB=-362.96	GT:AD:DP:GL:GQ	0/1:34,36:67:-109.75,-20.19,-134.76:99
-chr1	2963182	rs2993480	C	T	393.42	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=60.00;MQ0=0;OQ=959.18;QD=15.72;SB=-400.92	GT:AD:DP:GL:GQ	0/1:31,30:60:-117.29,-18.09,-96.43:99
-chr1	2963293	rs2993481	A	T	141.58	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=2;HaplotypeScore=2.01;MQ=59.62;MQ0=0;OQ=743.23;QD=12.39;SB=-349.56	GT:AD:DP:GL:GQ	0/1:34,26:58:-95.08,-17.48,-119.69:99
-chr1	2963436	rs1109251	G	A	197.81	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=2;HaplotypeScore=1.34;MQ=60.00;MQ0=0;OQ=932.59;QD=15.04;SB=-469.42	GT:AD:DP:GL:GQ	0/1:34,28:62:-115.22,-18.68,-120.45:99
-chr1	2963924	.	A	G	132.32	PASS	AC=1;AF=0.50;AN=2;DP=91;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=59.54;MQ0=0;OQ=1229.61;QD=13.51;SB=-579.93	GT:AD:DP:GL:GQ	0/1:47,44:90:-153.35,-27.11,-189.83:99
-chr1	2964602	rs1125017	A	C	413.02	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=1.30;MQ=60.00;MQ0=0;OQ=773.70;QD=11.90;SB=-364.77	GT:AD:DP:GL:GQ	0/1:35,30:63:-99.63,-18.98,-121.64:99
-chr1	2964712	rs2376821	T	C	458.38	PASS	AC=2;AF=1.00;AN=2;DB;DP=77;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.91;MQ0=0;OQ=2329.60;QD=30.25;SB=-1071.67	GT:AD:DP:GL:GQ	1/1:0,77:75:-236.63,-22.63,-0.08:99
-chr1	2964979	rs55775305	C	G	191.90	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=2.56;MQ=59.60;MQ0=0;OQ=1095.41;QD=18.89;SB=-526.68	GT:AD:DP:GL:GQ	0/1:27,31:56:-129.70,-16.87,-112.36:99
-chr1	2966676	rs1138513	T	C	342.07	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=2.51;MQ=60.00;MQ0=0;OQ=1004.23;QD=15.45;SB=-395.31	GT:AD:DP:GL:GQ	0/1:29,36:64:-122.99,-19.29,-112.84:99
-chr1	2967377	rs2981855	A	G	110.32	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=1;HaplotypeScore=0.63;MQ=58.78;MQ0=0;OQ=2017.68;QD=35.40;SB=-766.96	GT:AD:DP:GL:GQ	1/1:0,57:57:-205.37,-17.17,-0.02:99
-chr1	2967903	rs2075969	G	C	175.65	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=3.39;MQ=59.42;MQ0=0;OQ=486.84;QD=12.17;SB=-253.09	GT:AD:DP:GL:GQ	0/1:21,19:36:-62.83,-10.86,-80.92:99
-chr1	2969034	rs41315262	C	T	141.67	PASS	AC=1;AF=0.50;AN=2;DB;DP=29;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=60.00;MQ0=0;OQ=432.24;QD=14.90;SB=-163.20	GT:AD:DP:GL:GQ	0/1:14,15:28:-54.95,-8.44,-49.21:99
-chr1	2970137	rs2072732	T	C	36.95	LowQual	AC=1;AF=0.50;AN=2;DB;DP=9;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=57.39;MQ0=0;QD=4.11;SB=-10.00	GT:AD:DP:GL:GQ	0/1:5,4:7:-9.09,-2.11,-16.67:69.79
-chr1	2970438	.	C	T	1.69	PASS	AC=1;AF=0.50;AN=2;DP=19;Dels=0.00;HRun=0;HaplotypeScore=3.02;MQ=60.00;MQ0=0;OQ=106.79;QD=5.62;SB=-10.00	GT:AD:DP:GL:GQ	0/1:13,5:16:-18.78,-4.82,-35.96:99
-chr1	2973178	rs2788091	T	C	354.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=1.65;MQ=59.56;MQ0=0;OQ=657.96;QD=12.65;SB=-286.58	GT:AD:DP:GL:GQ	0/1:29,23:52:-84.74,-15.66,-115.27:99
-chr1	2973823	rs2297828	G	A	18.50	PASS	AC=1;AF=0.50;AN=2;DB;DP=24;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=95.21;QD=3.97;SB=-16.50	GT:AD:DP:GL:GQ	0/1:18,6:22:-19.43,-6.63,-57.66:99
-chr1	2975672	.	C	G	0.31	PASS	AC=2;AF=1.00;AN=2;DP=9;Dels=0.00;HRun=1;HaplotypeScore=6.00;MQ=60.00;MQ0=0;OQ=69.47;QD=7.72;SB=-10.00	GT:AD:DP:GL:GQ	1/1:3,6:3:-10.44,-0.91,-0.01:9.02
-chr1	2977743	rs909510	G	C	79.39	PASS	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=3.50;MQ=58.73;MQ0=0;OQ=593.38;QD=17.98;SB=-309.99	GT:AD:DP:GL:GQ	0/1:15,18:31:-71.97,-9.35,-58.08:99
-chr1	2979403	rs1572656	T	G	132.71	PASS	AC=1;AF=0.50;AN=2;DB;DP=29;Dels=0.00;HRun=0;HaplotypeScore=0.97;MQ=58.39;MQ0=0;OQ=227.87;QD=7.86;SB=-74.87	GT:AD:DP:GL:GQ	0/1:16,12:27:-34.21,-8.14,-59.65:99
-chr1	2982894	rs2981889	T	C	0.49	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=4;HaplotypeScore=3.40;MQ=59.07;MQ0=0;OQ=530.79;QD=10.62;SB=-197.61	GT:AD:DP:GL:GQ	0/1:25,25:44:-69.63,-13.27,-84.86:99
-chr1	2983498	rs2993486	G	A	189.84	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=1.56;MQ=59.11;MQ0=0;OQ=2009.66;QD=38.65;SB=-804.34	GT:AD:DP:GL:GQ	1/1:0,52:51:-204.56,-15.36,-0.01:99
-chr1	2983667	rs2981888	C	G	249.66	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=1.56;MQ=60.00;MQ0=0;OQ=760.63;QD=16.54;SB=-378.87	GT:AD:DP:GL:GQ	0/1:20,26:44:-92.63,-13.28,-85.11:99
-chr1	2984196	rs4648359	G	C	304.72	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=1.03;MQ=59.62;MQ0=0;OQ=739.36;QD=15.09;SB=-327.39	GT:AD:DP:GL:GQ	0/1:26,23:45:-90.79,-13.57,-98.24:99
-chr1	2984400	rs2788092	C	G	25.02	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=1;HaplotypeScore=1.95;MQ=59.57;MQ0=0;OQ=997.66;QD=18.48;SB=-280.54	GT:AD:DP:GL:GQ	0/1:23,31:51:-118.43,-15.38,-97.87:99
-chr1	2985122	rs2742689	T	G	341.54	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=1.14;MQ=58.79;MQ0=0;OQ=737.00;QD=13.65;SB=-353.07	GT:AD:DP:GL:GQ	0/1:26,28:52:-92.65,-15.66,-91.92:99
-chr1	2985309	rs7515436	G	A	254.33	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=2.04;MQ=59.36;MQ0=0;OQ=1107.59;QD=17.04;SB=-525.74	GT:AD:DP:GL:GQ	0/1:30,35:61:-132.42,-18.38,-99.41:99
-chr1	2985493	rs2788093	C	T	164.52	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.49;MQ=52.54;MQ0=0;OQ=672.12;QD=14.61;SB=-188.18	GT:AD:DP:GL:GQ	0/1:25,21:45:-84.06,-13.57,-76.74:99
-chr1	2985947	.	G	A	42.58	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=40;Dels=0.00;HRun=1;HaplotypeScore=2.35;MQ=59.42;MQ0=0;QD=1.06;SB=86.29	GT:AD:DP:GL:GQ	0/1:35,5:38:-18.99,-11.45,-122.25:75.41
-chr1	2986056	rs7525173	C	G	198.19	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=1.92;MQ=57.11;MQ0=0;OQ=1235.82;QD=21.68;SB=-610.55	GT:AD:DP:GL:GQ	0/1:22,35:54:-143.14,-16.27,-91.10:99
-chr1	2986416	rs1569420	C	G	131.69	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=0.97;MQ=59.22;MQ0=0;OQ=1047.24;QD=19.39;SB=-356.09	GT:AD:DP:GL:GQ	0/1:24,30:53:-123.98,-15.97,-102.98:99
-chr1	2986462	rs1569419	T	C	443.07	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.60;MQ0=0;OQ=1686.91;QD=29.59;SB=-810.28	GT:AD:DP:GL:GQ	1/1:0,57:54:-172.33,-16.29,-0.05:99
-chr1	2988794	rs2742686	T	C	110.98	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=1;HaplotypeScore=3.81;MQ=59.55;MQ0=0;OQ=633.23;QD=12.42;SB=-265.98	GT:AD:DP:GL:GQ	0/1:26,25:48:-81.08,-14.47,-95.70:99
-chr1	2988858	rs10909873	C	G	203.72	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=3.25;MQ=59.51;MQ0=0;OQ=629.03;QD=13.38;SB=-304.03	GT:AD:DP:GL:GQ	0/1:24,23:43:-79.16,-12.98,-98.92:99
-chr1	2988928	rs2981886	T	G	27.89	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=2;HaplotypeScore=1.77;MQ=60.00;MQ0=0;OQ=713.08;QD=17.39;SB=-342.06	GT:AD:DP:GL:GQ	0/1:16,25:41:-86.94,-12.35,-58.67:99
-chr1	2989062	rs2742685	T	C	91.91	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=3.60;MQ=59.38;MQ0=0;OQ=332.13;QD=8.98;SB=-168.61	GT:AD:DP:GL:GQ	0/1:21,16:36:-47.35,-10.86,-77.27:99
-chr1	2989275	rs760570	T	C	183.83	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=1;HaplotypeScore=1.10;MQ=60.00;MQ0=0;OQ=452.99;QD=11.62;SB=-195.61	GT:AD:DP:GL:GQ	0/1:18,21:37:-59.74,-11.16,-71.21:99
-chr1	2989352	rs11580403	C	T	17.69	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=1;HaplotypeScore=6.35;MQ=58.51;MQ0=0;OQ=786.31;QD=16.73;SB=-390.18	GT:AD:DP:GL:GQ	0/1:22,25:44:-95.18,-13.26,-64.65:99
-chr1	2989378	rs11581212	A	G	26.01	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=1;HaplotypeScore=4.12;MQ=58.01;MQ0=0;OQ=610.70;QD=12.99;SB=-220.27	GT:AD:DP:GL:GQ	0/1:23,24:41:-76.70,-12.35,-80.42:99
-chr1	2989575	rs6674036	G	T	86.25	PASS	AC=1;AF=0.50;AN=2;DB;DP=35;Dels=0.00;HRun=0;HaplotypeScore=2.44;MQ=60.00;MQ0=0;OQ=295.75;QD=8.45;SB=-112.67	GT:AD:DP:GL:GQ	0/1:22,13:32:-42.50,-9.64,-70.40:99
-chr1	2989750	rs6683976	C	G	152.72	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=1.65;MQ=58.25;MQ0=0;OQ=588.86;QD=14.72;SB=-197.30	GT:AD:DP:GL:GQ	0/1:21,19:38:-73.63,-11.46,-80.42:99
-chr1	2989984	rs760569	A	G	0.34	PASS	AC=1;AF=0.50;AN=2;DB;DP=30;Dels=0.00;HRun=3;HaplotypeScore=3.04;MQ=55.35;MQ0=1;OQ=203.26;QD=6.78;SB=-13.61	GT:AD:DP:GL:GQ	0/1:16,14:25:-31.15,-7.54,-61.01:99
-chr1	2990301	rs760568	A	G	305.79	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=1.37;MQ=56.76;MQ0=0;OQ=713.37;QD=13.99;SB=-336.34	GT:AD:DP:GL:GQ	0/1:22,29:50:-89.69,-15.07,-88.33:99
-chr1	2990325	rs760567	A	G	357.24	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=2.14;MQ=57.34;MQ0=0;OQ=769.95;QD=14.53;SB=-388.67	GT:AD:DP:GL:GQ	0/1:25,28:52:-95.94,-15.67,-100.59:99
-chr1	2990784	rs6695131	T	C	278.73	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=1.71;MQ=59.69;MQ0=0;OQ=1038.17;QD=17.02;SB=-324.30	GT:AD:DP:GL:GQ	0/1:25,36:59:-124.87,-17.77,-99.97:99
-chr1	2991113	rs760566	T	C	528.98	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.67;MQ0=0;OQ=1563.77;QD=31.91;SB=-755.58	GT:AD:DP:GL:GQ	1/1:0,49:46:-159.99,-13.86,-0.02:99
-chr1	2991563	rs6690540	C	T	182.97	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=3.74;MQ=58.34;MQ0=0;OQ=662.57;QD=14.72;SB=-343.52	GT:AD:DP:GL:GQ	0/1:23,22:42:-82.21,-12.67,-65.85:99
-chr1	2991617	rs2742682	T	C	232.59	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=59.38;MQ0=0;OQ=410.76;QD=11.10;SB=-215.29	GT:AD:DP:GL:GQ	0/1:16,19:33:-54.32,-9.96,-57.14:99
-chr1	2991708	rs2742681	T	G	14.52	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=2;HaplotypeScore=0.89;MQ=58.98;MQ0=0;OQ=365.17;QD=8.91;SB=-102.16	GT:AD:DP:GL:GQ	0/1:24,17:38:-51.25,-11.45,-78.22:99
-chr1	2992174	rs2742680	C	G	300.14	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=1;HaplotypeScore=1.13;MQ=58.66;MQ0=0;OQ=934.85;QD=17.98;SB=-447.39	GT:AD:DP:GL:GQ	0/1:22,30:49:-111.56,-14.79,-83.87:99
-chr1	2992195	rs2742679	C	T	269.04	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=0.87;MQ=58.13;MQ0=0;OQ=860.87;QD=17.22;SB=-384.13	GT:AD:DP:GL:GQ	0/1:23,27:48:-103.84,-14.47,-74.36:99
-chr1	2992210	rs2742678	G	A	296.42	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=57.39;MQ0=0;OQ=701.27;QD=15.58;SB=-336.35	GT:AD:DP:GL:GQ	0/1:23,22:43:-86.37,-12.96,-74.58:99
-chr1	2993392	rs11801109	G	A	5.62	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=2;HaplotypeScore=1.00;MQ=59.59;MQ0=0;OQ=759.83;QD=16.52;SB=-91.91	GT:AD:DP:GL:GQ	0/1:23,23:45:-92.82,-13.56,-77.23:99
-chr1	2993874	rs2981883	T	C	12.34	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=4.37;MQ=58.95;MQ0=0;OQ=1316.25;QD=29.91;SB=-475.45	GT:AD:DP:GL:GQ	1/1:0,44:39:-135.23,-11.75,-0.02:99
-chr1	2994092	rs2981882	A	G	168.83	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=1.11;MQ=59.63;MQ0=0;OQ=1897.54;QD=30.61;SB=-828.34	GT:AD:DP:GL:GQ	1/1:0,62:61:-193.40,-18.40,-0.06:99
-chr1	2994217	rs2981881	T	C	270.84	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=0.74;MQ=58.88;MQ0=0;OQ=1946.57;QD=31.40;SB=-838.62	GT:AD:DP:GL:GQ	1/1:1,61:56:-198.26,-16.87,-0.02:99
-chr1	2994648	rs2981880	T	C	6.41	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=4.30;MQ=56.36;MQ0=0;OQ=1597.03;QD=34.72;SB=-433.18	GT:AD:DP:GL:GQ	1/1:0,45:44:-163.30,-13.25,-0.01:99
-chr1	2994734	rs2981879	T	C	43.37	PASS	AC=2;AF=1.00;AN=2;DB;DP=30;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=58.75;MQ0=0;OQ=1057.22;QD=35.24;SB=-208.08	GT:AD:DP:GL:GQ	1/1:0,30:30:-109.32,-9.04,-0.01:90.26
-chr1	2994945	rs34014659	G	A	271.04	PASS	AC=1;AF=0.50;AN=2;DB;DP=19;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=51.59;MQ0=1;OQ=187.11;QD=9.85;SB=-73.30	GT:AD:DP:GL:GQ	0/1:11,8:17:-27.12,-5.12,-33.00:99
-chr1	2995445	rs2981878	A	G	132.19	PASS	AC=1;AF=0.50;AN=2;DB;DP=32;Dels=0.00;HRun=0;HaplotypeScore=1.93;MQ=56.06;MQ0=1;OQ=382.82;QD=11.96;SB=-131.28	GT:AD:DP:GL:GQ	0/1:16,16:31:-50.91,-9.34,-62.42:99
-chr1	2995487	rs6676479	G	A	196.19	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=1.92;MQ=57.97;MQ0=1;OQ=534.41;QD=14.06;SB=-244.76	GT:AD:DP:GL:GQ	0/1:21,17:34:-66.98,-10.25,-53.48:99
-chr1	2995498	rs34884268	C	T	260.47	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=60.00;MQ0=0;OQ=626.01;QD=14.90;SB=-317.32	GT:AD:DP:GL:GQ	0/1:22,20:41:-78.24,-12.36,-68.94:99
-chr1	2995610	rs34782467	G	A	183.72	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.56;MQ0=0;OQ=857.05;QD=16.48;SB=-325.85	GT:AD:DP:GL:GQ	0/1:26,26:50:-104.07,-15.08,-74.92:99
-chr1	2995991	rs926246	T	C	314.46	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=1.98;MQ=57.39;MQ0=0;OQ=671.24;QD=12.43;SB=-260.51	GT:AD:DP:GL:GQ	0/1:30,24:53:-86.37,-15.96,-115.93:99
-chr1	2996058	rs926245	C	A	105.01	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=53.36;MQ0=0;OQ=705.06;QD=12.82;SB=-99.80	GT:AD:DP:GL:GQ	0/1:29,26:52:-89.45,-15.66,-93.51:99
-chr1	2996143	rs926244	A	G	215.10	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=3.07;MQ=58.61;MQ0=0;OQ=1978.79;QD=31.92;SB=-947.90	GT:AD:DP:GL:GQ	1/1:0,60:58:-201.49,-17.47,-0.03:99
-chr1	2996175	rs926243	T	G	426.34	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.31;MQ0=0;OQ=690.75;QD=11.32;SB=-265.78	GT:AD:DP:GL:GQ	0/1:31,30:58:-89.83,-17.48,-108.47:99
-chr1	2996487	rs55932943	C	T	3.20	PASS	AC=1;AF=0.50;AN=2;DB;DP=69;Dels=0.00;HRun=0;HaplotypeScore=10.54;MQ=58.03;MQ0=1;OQ=1021.25;QD=14.80;SB=-443.45	GT:AD:DP:GL:GQ	0/1:37,31:63:-124.40,-18.99,-104.76:99
-chr1	2996899	rs2817165	A	G	93.99	PASS	AC=1;AF=0.50;AN=2;DB;DP=35;Dels=0.00;HRun=1;HaplotypeScore=1.58;MQ=58.80;MQ0=0;OQ=288.71;QD=8.25;SB=-166.95	GT:AD:DP:GL:GQ	0/1:21,13:29:-40.90,-8.74,-67.04:99
-chr1	2997535	rs34300623	G	A	185.66	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=1;HaplotypeScore=0.67;MQ=59.69;MQ0=0;OQ=968.84;QD=15.88;SB=-326.31	GT:AD:DP:GL:GQ	0/1:32,29:60:-118.25,-18.08,-106.92:99
-chr1	2997956	rs6693385	C	T	247.24	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=1.12;MQ=59.55;MQ0=0;OQ=876.50;QD=17.19;SB=-364.90	GT:AD:DP:GL:GQ	0/1:22,29:45:-104.50,-13.57,-57.88:99
-chr1	2998547	rs2376820	C	G	2318.28	Indel	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=1;HaplotypeScore=17.39;MQ=51.50;MQ0=0;QD=40.67;SB=-1149.31	GT:AD:DP:GL:GQ	1/1:0,55:56:-238.28,-19.61,-2.86:99
-chr1	3000177	rs760565	A	T	219.18	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=1.97;MQ=60.00;MQ0=0;OQ=708.84;QD=15.75;SB=-333.07	GT:AD:DP:GL:GQ	0/1:21,24:41:-86.52,-12.35,-66.91:99
-chr1	3001189	rs2981873	T	C	24.60	PASS	AC=1;AF=0.50;AN=2;DB;DP=30;Dels=0.00;HRun=2;HaplotypeScore=0.32;MQ=57.66;MQ0=0;OQ=381.92;QD=12.73;SB=-154.31	GT:AD:DP:GL:GQ	0/1:16,14:30:-50.52,-9.04,-62.50:99
-chr1	3002186	rs12135325	T	C	1.38	PASS	AC=1;AF=0.50;AN=2;DB;DP=35;Dels=0.00;HRun=1;HaplotypeScore=4.32;MQ=58.67;MQ0=0;OQ=210.96;QD=6.03;SB=-111.21	GT:AD:DP:GL:GQ	0/1:22,13:32:-34.02,-9.64,-84.87:99
-chr1	3002840	rs6666748	A	G	255.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=2.28;MQ=60.00;MQ0=0;OQ=801.41;QD=14.84;SB=-400.31	GT:AD:DP:GL:GQ	0/1:21,33:50:-98.50,-15.08,-74.39:99
-chr1	3003005	rs2788097	A	C	59.19	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=1;HaplotypeScore=3.07;MQ=59.05;MQ0=0;OQ=463.07;QD=10.52;SB=-200.91	GT:AD:DP:GL:GQ	0/1:25,19:39:-61.34,-11.75,-74.66:99
-chr1	3005383	rs2981870	G	A	337.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=1.65;MQ=59.45;MQ0=0;OQ=532.89;QD=12.69;SB=-258.26	GT:AD:DP:GL:GQ	0/1:23,19:40:-68.63,-12.06,-71.78:99
-chr1	3005452	rs55674255	C	T	63.22	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=1;HaplotypeScore=3.20;MQ=60.00;MQ0=0;OQ=640.76;QD=14.56;SB=-293.19	GT:AD:DP:GL:GQ	0/1:24,20:44:-80.62,-13.26,-82.30:99
-chr1	3005702	rs55784774	G	A	50.92	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=2;HaplotypeScore=2.79;MQ=59.56;MQ0=0;OQ=701.05;QD=13.23;SB=-358.53	GT:AD:DP:GL:GQ	0/1:30,23:49:-88.16,-14.77,-89.46:99
-chr1	3005947	.	C	T	228.82	PASS	AC=1;AF=0.50;AN=2;DP=38;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.77;MQ0=0;OQ=514.40;QD=13.54;SB=-233.73	GT:AD:DP:GL:GQ	0/1:21,17:37:-65.88,-11.16,-63.18:99
-chr1	3005977	.	G	A	25.43	PASS	AC=1;AF=0.50;AN=2;DP=41;Dels=0.00;HRun=0;HaplotypeScore=2.54;MQ=57.94;MQ0=0;OQ=561.32;QD=13.69;SB=-151.18	GT:AD:DP:GL:GQ	0/1:21,20:37:-70.56,-11.15,-69.03:99
-chr1	3006143	rs2981869	C	T	155.48	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=2.84;MQ=58.84;MQ0=0;OQ=588.68;QD=14.72;SB=-230.75	GT:AD:DP:GL:GQ	0/1:19,21:38:-73.61,-11.45,-64.86:99
-chr1	3007018	.	G	A	13.33	PASS	AC=1;AF=0.50;AN=2;DP=44;Dels=0.00;HRun=0;HaplotypeScore=4.77;MQ=59.05;MQ0=0;OQ=465.01;QD=10.57;SB=-225.50	GT:AD:DP:GL:GQ	0/1:25,18:41:-64.52,-14.73,-86.50:99
-chr1	3008086	rs2993492	G	A	197.87	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=1.31;MQ=59.53;MQ0=0;OQ=913.42;QD=18.64;SB=-406.43	GT:AD:DP:GL:GQ	0/1:20,29:46:-108.49,-13.86,-62.00:99
-chr1	3009487	rs12131890	G	A	77.41	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=59.17;MQ0=0;OQ=935.16;QD=20.78;SB=-364.90	GT:AD:DP:GL:GQ	0/1:15,30:42:-109.46,-12.66,-48.94:99
-chr1	3010048	rs56029998	T	C	182.76	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=2.92;MQ=59.24;MQ0=0;OQ=609.91;QD=11.09;SB=-261.57	GT:AD:DP:GL:GQ	0/1:31,24:54:-80.54,-16.27,-125.83:99
-chr1	3010106	rs2993493	C	A	285.53	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=1;HaplotypeScore=1.63;MQ=59.63;MQ0=0;OQ=789.70;QD=15.48;SB=-315.68	GT:AD:DP:GL:GQ	0/1:25,26:51:-97.62,-15.36,-86.35:99
-chr1	3010923	rs2993494	G	A	362.80	PASS	AC=1;AF=0.50;AN=2;DB;DP=34;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.94;MQ0=0;OQ=449.17;QD=13.21;SB=-177.14	GT:AD:DP:GL:GQ	0/1:18,16:33:-58.15,-9.95,-61.38:99
-chr1	3011156	rs55898371	A	C	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=5;HaplotypeScore=4.00;MQ=58.74;MQ0=0;OQ=420.03;QD=11.35;SB=-193.92	GT:AD:DP:GL:GQ	0/1:18,19:33:-55.23,-9.95,-57.05:99
-chr1	3011412	rs12133978	G	A	162.16	PASS	AC=1;AF=0.50;AN=2;DB;DP=35;Dels=0.00;HRun=0;HaplotypeScore=2.62;MQ=59.34;MQ0=0;OQ=429.68;QD=12.28;SB=-187.26	GT:AD:DP:GL:GQ	0/1:20,15:33:-56.20,-9.95,-61.55:99
-chr1	3011547	rs11808136	C	T	5.88	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=1;HaplotypeScore=1.91;MQ=59.52;MQ0=0;OQ=731.81;QD=18.76;SB=-195.18	GT:AD:DP:GL:GQ	0/1:16,23:36:-87.31,-10.85,-49.60:99
-chr1	3012571	rs2993495	A	G	13.64	PASS	AC=2;AF=1.00;AN=2;DB;DP=19;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=58.78;MQ0=0;OQ=549.01;QD=28.90;SB=-194.71	GT:AD:DP:GL:GQ	1/1:0,19:18:-58.50,-5.43,-0.01:54.13
-chr1	3012575	rs2993496	T	C	83.64	PASS	AC=1;AF=0.50;AN=2;DB;DP=19;Dels=0.00;HRun=0;HaplotypeScore=-0.06;MQ=58.78;MQ0=0;OQ=196.75;QD=10.36;SB=-98.00	GT:AD:DP:GL:GQ	0/1:9,10:18:-28.39,-5.43,-32.68:99
-chr1	3012992	rs2993497	G	A	7	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=2;HaplotypeScore=1.90;MQ=59.59;MQ0=0;OQ=932.60;QD=20.72;SB=-424.82	GT:AD:DP:GL:GQ	0/1:16,29:42:-109.20,-12.66,-48.01:99
-chr1	3013111	rs56363358	C	A	42.53	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=1;HaplotypeScore=0.58;MQ=58.28;MQ0=0;OQ=749.52;QD=19.72;SB=-289.38	GT:AD:DP:GL:GQ	0/1:12,26:36:-89.08,-10.85,-37.10:99
-chr1	3013255	rs2993498	T	C	497.69	PASS	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.78;MQ0=0;OQ=1211.16;QD=31.87;SB=-545.88	GT:AD:DP:GL:GQ	1/1:0,38:36:-124.72,-10.85,-0.02:99
-chr1	3013565	rs6667850	A	C	171.48	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=1.15;MQ=59.41;MQ0=0;OQ=400.63;QD=10.27;SB=-101.88	GT:AD:DP:GL:GQ	0/1:20,19:37:-54.50,-11.15,-69.04:99
-chr1	3013819	rs1890337	A	G	45.08	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=1;HaplotypeScore=1.68;MQ=58.49;MQ0=0;OQ=1788.78;QD=31.38;SB=-712.22	GT:AD:DP:GL:GQ	1/1:0,56:52:-182.49,-15.67,-0.02:99
-chr1	3014125	rs1890336	A	C	168.89	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=1;HaplotypeScore=0.32;MQ=58.71;MQ0=0;OQ=1775.96;QD=32.89;SB=-886.08	GT:AD:DP:GL:GQ	1/1:0,54:51:-181.20,-15.36,-0.02:99
-chr1	3014227	rs2993499	T	C	143.46	PASS	AC=2;AF=1.00;AN=2;DB;DP=37;Dels=0.00;HRun=2;HaplotypeScore=0.04;MQ=59.50;MQ0=0;OQ=1217.03;QD=32.89;SB=-587.31	GT:AD:DP:GL:GQ	1/1:0,37:36:-125.31,-10.85,-0.02:99
-chr1	3014565	rs2993500	C	T	15.68	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=2;HaplotypeScore=4.44;MQ=59.65;MQ0=0;OQ=1234.24;QD=18.99;SB=-544.80	GT:AD:DP:GL:GQ	0/1:29,36:64:-145.99,-19.28,-92.77:99
-chr1	3015706	rs12137954	T	A	122.03	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=57.40;MQ0=0;OQ=345.66;QD=6.91;SB=-177.77	GT:AD:DP:GL:GQ	0/1:35,15:48:-52.31,-14.46,-129.85:99
-chr1	3015846	rs2993501	A	C	217.20	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=1.65;MQ=57.44;MQ0=0;OQ=1649.50;QD=29.99;SB=-596.80	GT:AD:DP:GL:GQ	1/1:0,55:53:-168.59,-15.98,-0.05:99
-chr1	3015960	rs12135664	C	T	346.44	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=2.35;MQ=60.00;MQ0=0;OQ=1146.10;QD=16.85;SB=-550.79	GT:AD:DP:GL:GQ	0/1:34,34:67:-138.08,-20.19,-108.20:99
-chr1	3016120	rs2981868	T	A	119.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=1;HaplotypeScore=4.10;MQ=59.44;MQ0=0;OQ=1114.65;QD=15.06;SB=-570.99	GT:AD:DP:GL:GQ	0/1:37,36:67:-134.93,-20.18,-118.55:99
-chr1	3016369	rs59909070	G	A	353.97	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.69;MQ0=0;OQ=434.09;QD=10.10;SB=-171.10	GT:AD:DP:GL:GQ	0/1:27,16:42:-59.35,-12.65,-95.52:99
-chr1	3016502	.	T	C	0.18	PASS	AC=1;AF=0.50;AN=2;DP=46;Dels=0.00;HRun=2;HaplotypeScore=5.91;MQ=44.72;MQ0=3;OQ=351.94;QD=7.65;SB=-166.48	GT:AD:DP:GL:GQ	0/1:25,21:36:-49.33,-10.85,-81.52:99
-chr1	3016606	.	A	C	15.74	PASS	AC=1;AF=0.50;AN=2;DP=38;Dels=0.00;HRun=0;HaplotypeScore=3.75;MQ=48.95;MQ0=1;OQ=373.22;QD=9.82;SB=-133.20	GT:AD:DP:GL:GQ	0/1:18,17:27:-48.74,-8.13,-43.17:99
-chr1	3016839	rs56010213	A	T	12.71	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=1.05;MQ=38.33;MQ0=7;QD=0.33;SB=20.09	GT:AD:DP:GL:GQ	0/1:34,5:23:-11.46,-6.93,-70.69:45.31
-chr1	3017201	rs2993502	C	T	589.72	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=56.38;MQ0=0;OQ=2029.57;QD=38.29;SB=-936.75	GT:AD:DP:GL:GQ	1/1:0,53:51:-206.56,-15.36,-0.01:99
-chr1	3017765	.	T	C	156.29	PASS	AC=1;AF=0.50;AN=2;DP=21;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.89;MQ0=0;OQ=257.37;QD=12.26;SB=-133.69	GT:AD:DP:GL:GQ	0/1:7,14:18:-34.45,-5.43,-28.78:99
-chr1	3017780	.	C	T	0.04	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=24;Dels=0.00;HRun=1;HaplotypeScore=2.01;MQ=59.03;MQ0=0;OQ=567.81;QD=23.66;SB=-154.18	GT:AD:DP:GL:GQ	0/1:6,18:22:-66.70,-6.63,-18.59:99
-chr1	3018779	rs11808946	C	T	272.66	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=0.87;MQ=60.00;MQ0=0;OQ=781.20;QD=16.62;SB=-355.56	GT:AD:DP:GL:GQ	0/1:22,25:44:-94.67,-13.26,-66.92:99
-chr1	3018847	rs2993503	A	G	82.10	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=2.38;MQ=59.16;MQ0=0;OQ=1494.14;QD=27.17;SB=-767.73	GT:AD:DP:GL:GQ	1/1:0,55:49:-153.05,-14.78,-0.05:99
-chr1	3018941	rs2072733	C	T	12.61	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=2;HaplotypeScore=2.15;MQ=59.46;MQ0=0;OQ=605.93;QD=14.09;SB=-165.23	GT:AD:DP:GL:GQ	0/1:22,21:41:-76.24,-12.36,-69.17:99
-chr1	3019072	rs10909875	C	T	272.35	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.97;MQ=59.03;MQ0=0;OQ=534.00;QD=11.12;SB=-208.44	GT:AD:DP:GL:GQ	0/1:28,20:45:-70.25,-13.56,-92.78:99
-chr1	3019517	rs12136745	G	A	248.92	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=2.41;MQ=59.62;MQ0=0;OQ=984.07;QD=16.40;SB=-470.51	GT:AD:DP:GL:GQ	0/1:28,32:55:-118.26,-16.57,-87.88:99
-chr1	3019842	rs58968988	G	A	56.19	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=4.37;MQ=58.92;MQ0=0;OQ=590.92;QD=13.74;SB=-159.22	GT:AD:DP:GL:GQ	0/1:22,21:39:-74.13,-11.75,-67.01:99
-chr1	3020484	rs2981867	G	C	387.41	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.97;MQ0=0;OQ=547.74;QD=12.17;SB=-190.58	GT:AD:DP:GL:GQ	0/1:29,16:44:-71.32,-13.26,-119.60:99
-chr1	3020597	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=34;Dels=0.00;HRun=0;HaplotypeScore=37.34;MQ=39.25;MQ0=1;OQ=144.44;QD=4.25;SB=-87.67	GT:AD:DP:GL:GQ	0/1:24,10:27:-25.87,-8.14,-74.17:99
-chr1	3020599	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=34;Dels=0.00;HRun=0;HaplotypeScore=45.49;MQ=39.25;MQ0=1;OQ=360.48;QD=10.60;SB=-127.10	GT:AD:DP:GL:GQ	0/1:21,13:31:-48.68,-9.35,-60.35:99
-chr1	3020611	.	A	G	19.24	LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=31;Dels=0.00;HRun=0;HaplotypeScore=21.97;MQ=37.81;MQ0=1;QD=0.62;SB=-30.78	GT:AD:DP:GL:GQ	0/1:24,7:24:-12.43,-7.23,-80.13:52.02
-chr1	3020613	rs6691894	A	G	41.97	LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=31;Dels=0.00;HRun=0;HaplotypeScore=22.61;MQ=37.81;MQ0=1;QD=1.35;SB=-10.86	GT:AD:DP:GL:GQ	0/1:24,7:20:-13.51,-6.02,-64.69:74.80
-chr1	3020615	rs6691895	A	G	400.54	SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=31;Dels=0.00;HRun=0;HaplotypeScore=24.36;MQ=38.97;MQ0=1;QD=12.92;SB=-173.99	GT:AD:DP:GL:GQ	0/1:14,17:24:-50.58,-7.24,-30.30:99
-chr1	3020629	.	A	G	22.23	LowQual	AC=1;AF=0.50;AN=2;DP=26;Dels=0.00;HRun=0;HaplotypeScore=19.42;MQ=38.02;MQ0=1;QD=0.85;SB=-32.78	GT:AD:DP:GL:GQ	0/1:21,5:22:-12.14,-6.63,-70.51:55.04
-chr1	3020688	rs6691996	A	G	381.91	PASS	AC=1;AF=0.50;AN=2;DB;DP=32;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=53.90;MQ0=0;OQ=370.45;QD=11.58;SB=-184.01	GT:AD:DP:GL:GQ	0/1:14,18:30:-49.38,-9.05,-56.94:99
-chr1	3020691	rs6695017	T	C	343.03	PASS	AC=1;AF=0.50;AN=2;DB;DP=34;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=54.28;MQ0=0;OQ=495.78;QD=14.58;SB=-192.66	GT:AD:DP:GL:GQ	0/1:16,18:34:-63.11,-10.25,-58.83:99
-chr1	3020744	rs6687292	C	T	95.65	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=3.34;MQ=56.56;MQ0=0;OQ=522.71;QD=9.33;SB=-137.11	GT:AD:DP:GL:GQ	0/1:34,22:53:-71.53,-15.97,-120.29:99
-chr1	3020924	rs2981866	G	A	33.28	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=57.17;MQ0=0;OQ=1933.34;QD=38.67;SB=-489.14	GT:AD:DP:GL:GQ	1/1:0,50:49:-196.94,-14.76,-0.02:99
-chr1	3020982	rs10909876	A	G	347.22	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=54.47;MQ0=0;OQ=796.80;QD=13.06;SB=-340.94	GT:AD:DP:GL:GQ	0/1:29,32:61:-101.36,-18.40,-112.11:99
-chr1	3020998	rs10909877	T	A	2173.88	Indel	AC=2;AF=1.00;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=54.79;MQ0=0;QD=36.23;SB=-1033.22	GT:AD:DP:GL:GQ	1/1:0,60:59:-220.99,-17.77,-0.02:99
-chr1	3021182	.	G	A	53.76	PASS	AC=1;AF=0.50;AN=2;DP=31;Dels=0.00;HRun=0;HaplotypeScore=1.49;MQ=59.25;MQ0=0;OQ=405.03;QD=13.07;SB=-180.66	GT:AD:DP:GL:GQ	0/1:18,13:30:-52.83,-9.04,-54.54:99
-chr1	3022425	rs2981865	G	C	1.40	PASS	AC=1;AF=0.50;AN=2;DB;DP=30;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=57.81;MQ0=0;OQ=743.56;QD=24.79;SB=-346.46	GT:AD:DP:GL:GQ	0/1:9,21:29:-86.39,-8.75,-34.33:99
-chr1	3024466	rs10909878	A	G	299.96	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=1.42;MQ=58.18;MQ0=0;OQ=619.53;QD=13.18;SB=-324.31	GT:AD:DP:GL:GQ	0/1:20,27:45:-78.81,-13.57,-80.16:99
-chr1	3024530	rs12141827	T	C	99.60	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=2.26;MQ=53.26;MQ0=0;OQ=329.91;QD=8.25;SB=-169.50	GT:AD:DP:GL:GQ	0/1:24,16:37:-47.43,-11.15,-87.85:99
-chr1	3025087	rs6690373	A	G	254.01	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.67;MQ0=0;OQ=819.31;QD=14.63;SB=-343.19	GT:AD:DP:GL:GQ	0/1:23,33:54:-101.49,-16.28,-89.82:99
-chr1	3025597	rs2981864	A	G	2.03	PASS	AC=2;AF=1.00;AN=2;DB;DP=30;Dels=0.00;HRun=1;HaplotypeScore=1.66;MQ=59.23;MQ0=0;OQ=762.15;QD=25.41;SB=-232.49	GT:AD:DP:GL:GQ	1/1:0,28:25:-82.46,-10.02,-2.66:73.60
-chr1	3025622	rs12409836	A	G	68.57	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=0.98;MQ=58.74;MQ0=0;OQ=225.89;QD=6.11;SB=-44.83	GT:AD:DP:GL:GQ	0/1:23,14:30:-34.92,-9.04,-72.62:99
-chr1	3025639	rs2472822	C	G	79.91	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.42;MQ0=0;OQ=1446.74;QD=36.17;SB=-602.98	GT:AD:DP:GL:GQ	1/1:0,40:36:-148.28,-10.86,-0.02:99
-chr1	3027473	rs876740	C	T	271.81	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.33;MQ=60.00;MQ0=0;OQ=2215.19;QD=38.19;SB=-1128.00	GT:AD:DP:GL:GQ	1/1:0,58:56:-225.12,-16.87,-0.02:99
-chr1	3028483	rs2742672	A	G	23.82	PASS	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=1;HaplotypeScore=0.99;MQ=59.51;MQ0=0;OQ=1087.23;QD=28.61;SB=-502.17	GT:AD:DP:GL:GQ	1/1:0,38:36:-112.35,-10.86,-0.04:99
-chr1	3029008	rs2817171	C	A	191.92	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=2;HaplotypeScore=0.83;MQ=59.65;MQ0=0;OQ=733.04;QD=13.57;SB=-391.11	GT:AD:DP:GL:GQ	0/1:29,25:54:-92.85,-16.26,-102.92:99
-chr1	3030045	rs2981863	G	C	66.05	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=1;HaplotypeScore=1.31;MQ=59.63;MQ0=0;OQ=889.03;QD=17.78;SB=-256.52	GT:AD:DP:GL:GQ	0/1:23,27:46:-106.06,-13.87,-86.32:99
-chr1	3030624	rs2012731	G	A	16.06	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=4.70;MQ=59.61;MQ0=0;OQ=1536.02;QD=32.00;SB=-433.32	GT:AD:DP:GL:GQ	1/1:0,48:41:-157.21,-12.36,-0.02:99
-chr1	3031379	rs2817172	T	C	144.04	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=0.83;MQ=60.00;MQ0=0;OQ=1381.66;QD=30.70;SB=-636.88	GT:AD:DP:GL:GQ	1/1:0,45:44:-141.79,-13.27,-0.04:99
-chr1	3032241	rs2472820	G	A	108.60	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=1.79;MQ=58.74;MQ0=0;OQ=572.26;QD=15.47;SB=-176.66	GT:AD:DP:GL:GQ	0/1:19,18:36:-71.36,-10.85,-60.89:99
-chr1	3032694	.	C	T	55.78	PASS	AC=1;AF=0.50;AN=2;DP=37;Dels=0.00;HRun=0;HaplotypeScore=1.14;MQ=60.00;MQ0=0;OQ=546.49;QD=14.77;SB=-205.90	GT:AD:DP:GL:GQ	0/1:19,18:36:-68.78,-10.85,-58.80:99
-chr1	3033426	rs12410830	A	G	6.05	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=3;HaplotypeScore=3.60;MQ=59.16;MQ0=0;OQ=614.56;QD=12.29;SB=-235.29	GT:AD:DP:GL:GQ	0/1:27,23:49:-79.50,-14.76,-107.00:99
-chr1	3034041	rs2817174	T	C	277.92	PASS	AC=2;AF=1.00;AN=2;DB;DP=56;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=57.38;MQ0=0;OQ=1499.60;QD=26.78;SB=-664.93	GT:AD:DP:GL:GQ	1/1:0,56:48:-153.59,-14.48,-0.05:99
-chr1	3034512	rs35529420	C	T	72.11	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=4.41;MQ=59.18;MQ0=0;OQ=899.04;QD=15.77;SB=-264.19	GT:AD:DP:GL:GQ	0/1:27,29:53:-109.16,-15.97,-86.82:99
-chr1	3034731	rs35951269	T	C	58.31	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=2;HaplotypeScore=2.40;MQ=58.97;MQ0=0;OQ=780.41;QD=12.39;SB=-339.30	GT:AD:DP:GL:GQ	0/1:36,27:63:-100.30,-18.98,-146.89:99
-chr1	3035225	rs2742670	A	G	75.82	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=1;HaplotypeScore=1.62;MQ=60.00;MQ0=0;OQ=1811.56;QD=33.55;SB=-920.03	GT:AD:DP:GL:GQ	1/1:0,54:51:-184.76,-15.36,-0.02:99
-chr1	3035475	rs2817175	T	C	135.77	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=1.88;MQ=57.17;MQ0=0;OQ=1487.18;QD=29.74;SB=-663.57	GT:AD:DP:GL:GQ	1/1:0,50:49:-152.36,-14.79,-0.06:99
-chr1	3035871	rs2817176	A	G	10.06	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=4.69;MQ=58.80;MQ0=0;OQ=1642.91;QD=28.33;SB=-799.47	GT:AD:DP:GL:GQ	1/1:0,58:54:-167.94,-16.30,-0.07:99
-chr1	3036323	rs2817177	T	C	492.31	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.36;MQ0=0;OQ=1385.60;QD=34.64;SB=-536.41	GT:AD:DP:GL:GQ	1/1:0,40:39:-142.16,-11.75,-0.01:99
-chr1	3036571	rs35625823	T	G	1.28	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.02;HRun=1;HaplotypeScore=8.04;MQ=58.17;MQ0=0;OQ=682.10;QD=13.37;SB=-105.91	GT:AD:DP:GL:GQ	0/1:25,25:50:-86.26,-14.76,-86.59:99
-chr1	3036686	rs35201154	G	T	212.09	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.48;MQ=58.64;MQ0=0;OQ=542.18;QD=11.30;SB=-157.49	GT:AD:DP:GL:GQ	0/1:27,21:48:-71.97,-14.46,-93.11:99
-chr1	3037032	rs2788086	A	G	87.83	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=1.32;MQ=59.14;MQ0=0;OQ=1440.07;QD=26.67;SB=-745.96	GT:AD:DP:GL:GQ	1/1:1,53:49:-151.81,-14.78,-4.21:99
-chr1	3037112	rs2817178	T	C	138.65	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=1;HaplotypeScore=1.50;MQ=59.01;MQ0=0;OQ=1783.83;QD=33.66;SB=-780.99	GT:AD:DP:GL:GQ	1/1:0,53:51:-182.00,-15.37,-0.03:99
-chr1	3037307	rs10797378	T	C	263.69	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=1.49;MQ=57.77;MQ0=0;OQ=673.03;QD=12.02;SB=-270.24	GT:AD:DP:GL:GQ	0/1:24,31:50:-85.66,-15.07,-91.32:99
-chr1	3037312	rs2788087	A	G	5.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=3;HaplotypeScore=4.61;MQ=57.43;MQ0=0;OQ=719.26;QD=12.40;SB=-323.12	GT:AD:DP:GL:GQ	0/1:28,30:54:-91.49,-16.28,-101.63:99
-chr1	3037323	rs10909881	G	A	169.28	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=4.31;MQ=57.69;MQ0=0;OQ=859.60;QD=14.57;SB=-445.45	GT:AD:DP:GL:GQ	0/1:30,29:55:-105.83,-16.59,-85.38:99
-chr1	3038158	rs2817180	T	C	101.32	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.60;MQ0=0;OQ=1662.63;QD=29.17;SB=-686.71	GT:AD:DP:GL:GQ	1/1:0,57:52:-169.90,-15.69,-0.05:99
-chr1	3038602	rs35360783	A	G	220.53	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=0.83;MQ=59.65;MQ0=0;OQ=463.18;QD=8.74;SB=-235.89	GT:AD:DP:GL:GQ	0/1:32,21:53:-65.58,-15.98,-127.69:99
-chr1	3039222	rs12024620	C	T	40.79	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=4.42;MQ=59.20;MQ0=0;OQ=839.66;QD=14.48;SB=-156.21	GT:AD:DP:GL:GQ	0/1:32,26:56:-104.13,-16.88,-98.69:99
-chr1	3039241	rs12021948	G	C	56.36	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.56;MQ0=0;OQ=946.79;QD=17.86;SB=-223.20	GT:AD:DP:GL:GQ	0/1:25,28:53:-113.94,-15.98,-109.97:99
-chr1	3039433	rs12740389	C	T	216.94	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.36;MQ0=0;OQ=1244.61;QD=19.15;SB=-628.67	GT:AD:DP:GL:GQ	0/1:28,37:63:-146.73,-18.98,-86.83:99
-chr1	3039715	rs35999894	C	T	445.61	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1131.40;QD=18.86;SB=-581.12	GT:AD:DP:GL:GQ	0/1:26,34:58:-133.91,-17.48,-78.73:99
-chr1	3039945	rs34733164	A	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DB;DP=28;Dels=0.00;HRun=4;HaplotypeScore=2.38;MQ=59.17;MQ0=0;OQ=103.23;QD=3.69;SB=-48.95	GT:AD:DP:GL:GQ	0/1:18,10:23:-20.53,-6.93,-62.39:99
-chr1	3040081	rs12022170	G	A	254.38	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=59.17;MQ0=0;OQ=717.02;QD=15.93;SB=-327.88	GT:AD:DP:GL:GQ	0/1:23,22:43:-87.95,-12.96,-65.92:99
-chr1	3040191	rs12028027	T	C	223.73	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=59.03;MQ0=0;OQ=428.68;QD=8.93;SB=-212.28	GT:AD:DP:GL:GQ	0/1:28,20:45:-59.72,-13.57,-97.74:99
-chr1	3040222	rs12027117	A	G	229.27	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=1.93;MQ=59.46;MQ0=0;OQ=557.56;QD=12.97;SB=-281.47	GT:AD:DP:GL:GQ	0/1:21,22:42:-71.69,-12.65,-82.66:99
-chr1	3040357	rs10909883	A	G	344.92	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=59.62;MQ0=0;OQ=754.58;QD=12.37;SB=-348.58	GT:AD:DP:GL:GQ	0/1:28,33:59:-96.53,-17.79,-109.54:99
-chr1	3040454	rs12120879	C	G	45.73	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=2;HaplotypeScore=2.33;MQ=58.92;MQ0=0;OQ=1009.80;QD=18.03;SB=-357.43	GT:AD:DP:GL:GQ	0/1:27,29:53:-120.25,-15.98,-106.43:99
-chr1	3040798	rs35848773	T	C	267.80	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=1.49;MQ=59.65;MQ0=0;OQ=685.07;QD=12.69;SB=-277.27	GT:AD:DP:GL:GQ	0/1:21,33:48:-86.26,-14.47,-82.32:99
-chr1	3040900	rs12731315	G	C	3.75	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=3;HaplotypeScore=3.13;MQ=60.00;MQ0=0;OQ=656.27;QD=17.74;SB=-310.23	GT:AD:DP:GL:GQ	0/1:18,19:37:-80.07,-11.16,-76.94:99
-chr1	3041210	rs12724921	T	A	454.48	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=611.82;QD=12.00;SB=-313.55	GT:AD:DP:GL:GQ	0/1:28,23:48:-78.92,-14.46,-101.94:99
-chr1	3041481	rs909509	A	G	48.89	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=4.12;MQ=59.51;MQ0=0;OQ=373.32;QD=7.94;SB=-138.54	GT:AD:DP:GL:GQ	0/1:28,18:38:-52.08,-11.46,-81.04:99
-chr1	3041609	rs12725529	T	C	111.43	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=1.46;MQ=58.62;MQ0=0;OQ=287.04;QD=7.76;SB=-113.62	GT:AD:DP:GL:GQ	0/1:21,16:34:-42.24,-10.25,-81.99:99
-chr1	3042125	rs7535865	A	C	10.52	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=1;HaplotypeScore=7.89;MQ=58.97;MQ0=0;OQ=623.66;QD=13.86;SB=-308.90	GT:AD:DP:GL:GQ	0/1:18,27:40:-77.70,-12.05,-63.90:99
-chr1	3042361	rs4648363	C	T	227.69	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.63;MQ=59.42;MQ0=0;OQ=413.64;QD=10.34;SB=-159.64	GT:AD:DP:GL:GQ	0/1:26,14:37:-55.80,-11.16,-73.37:99
-chr1	3043023	rs35794895	G	A	293.61	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=1.32;MQ=58.64;MQ0=0;OQ=693.50;QD=14.45;SB=-320.87	GT:AD:DP:GL:GQ	0/1:21,26:42:-85.30,-12.67,-60.57:99
-chr1	3043817	rs12741594	A	T	497.03	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.30;MQ0=0;OQ=877.02;QD=14.62;SB=-406.56	GT:AD:DP:GL:GQ	0/1:31,29:60:-109.06,-18.07,-115.07:99
-chr1	3043966	rs2235176	T	C	337.32	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=1.31;MQ=60.00;MQ0=0;OQ=677.48;QD=12.55;SB=-208.33	GT:AD:DP:GL:GQ	0/1:27,27:53:-87.00,-15.97,-104.05:99
-chr1	3044349	rs35877876	C	T	270.74	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=0.58;MQ=59.61;MQ0=0;OQ=969.79;QD=16.44;SB=-358.48	GT:AD:DP:GL:GQ	0/1:30,29:59:-118.04,-17.77,-107.71:99
-chr1	3045481	rs10797379	T	C	126.05	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=1.31;MQ=58.62;MQ0=0;OQ=1290.17;QD=29.32;SB=-604.23	GT:AD:DP:GL:GQ	1/1:0,44:42:-132.64,-12.67,-0.04:99
-chr1	3045736	rs10797380	A	G	12.13	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=1;HaplotypeScore=4.39;MQ=59.03;MQ0=0;OQ=1384.53;QD=28.84;SB=-697.60	GT:AD:DP:GL:GQ	1/1:0,48:44:-142.08,-13.27,-0.04:99
-chr1	3046509	rs7354964	C	G	181.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=59.06;MQ0=0;OQ=756.10;QD=18.90;SB=-387.98	GT:AD:DP:GL:GQ	0/1:19,21:40:-90.95,-12.05,-80.97:99
-chr1	3047001	rs2817181	A	G	378.95	PASS	AC=2;AF=1.00;AN=2;DB;DP=70;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=58.74;MQ0=0;OQ=2402.64;QD=34.32;SB=-979.90	GT:AD:DP:GL:GQ	1/1:0,70:68:-243.87,-20.48,-0.03:99
-chr1	3047521	rs7538096	T	C	291.96	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=1;HaplotypeScore=1.57;MQ=59.64;MQ0=0;OQ=861.01;QD=13.45;SB=-250.18	GT:AD:DP:GL:GQ	0/1:31,33:64:-108.67,-19.29,-124.47:99
-chr1	3048093	rs2742666	T	C	36.97	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=1;HaplotypeScore=6.22;MQ=57.02;MQ0=0;OQ=594.94;QD=12.93;SB=-209.63	GT:AD:DP:GL:GQ	0/1:23,23:42:-75.43,-12.65,-85.93:99
-chr1	3048098	rs2742665	A	C	100.54	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=4.00;MQ=57.17;MQ0=0;OQ=617.42;QD=15.44;SB=-256.42	GT:AD:DP:GL:GQ	0/1:17,23:38:-76.47,-11.45,-58.49:99
-chr1	3048109	rs2817183	A	G	380.39	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.05;MQ0=0;OQ=578.38;QD=14.46;SB=-222.56	GT:AD:DP:GL:GQ	0/1:19,21:39:-72.87,-11.75,-75.47:99
-chr1	3048230	rs2817184	G	A	543.37	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.51;MQ0=0;OQ=743.48;QD=15.82;SB=-334.86	GT:AD:DP:GL:GQ	0/1:23,24:46:-91.50,-13.86,-76.30:99
-chr1	3050041	rs6684093	C	T	40.49	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=5.68;MQ=58.71;MQ0=0;OQ=937.27;QD=17.36;SB=-475.05	GT:AD:DP:GL:GQ	0/1:24,30:51:-112.38,-15.37,-76.51:99
-chr1	3051143	rs1875449	C	A	6.39	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=1;HaplotypeScore=5.78;MQ=59.44;MQ0=0;OQ=367.51;QD=8.96;SB=-206.89	GT:AD:DP:GL:GQ	0/1:23,18:37:-51.19,-11.15,-77.66:99
-chr1	3052735	rs2817187	G	T	176.34	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.61;MQ0=0;OQ=2057.17;QD=34.87;SB=-1041.53	GT:AD:DP:GL:GQ	1/1:0,59:58:-209.32,-17.47,-0.02:99
-chr1	3066300	.	C	T	85.23	PASS	AC=1;AF=0.50;AN=2;DP=58;Dels=0.00;HRun=0;HaplotypeScore=1.41;MQ=59.28;MQ0=0;OQ=957.84;QD=16.51;SB=-344.34	GT:AD:DP:GL:GQ	0/1:29,29:58:-116.54,-17.47,-102.34:99
-chr1	3068821	.	G	A	12.77	PASS	AC=1;AF=0.50;AN=2;DP=39;Dels=0.00;HRun=0;HaplotypeScore=4.86;MQ=59.41;MQ0=0;OQ=492.51;QD=12.63;SB=-226.54	GT:AD:DP:GL:GQ	0/1:19,20:34:-62.79,-10.25,-59.33:99
-chr1	3069601	rs34175350	G	C	4.56	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=1;HaplotypeScore=0.87;MQ=15.60;MQ0=24;OQ=307.57;QD=4.16;SB=-10.00	GT:AD:DP:GL:GQ	0/1:61,13:26:-41.87,-7.83,-71.98:99
-chr1	3071991	.	T	C	0.04	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=52;Dels=0.00;HRun=1;HaplotypeScore=7.33;MQ=54.00;MQ0=2;OQ=261.16;QD=5.02;SB=-67.51	GT:AD:DP:GL:GQ	0/1:33,19:40:-41.45,-12.05,-111.58:99
-chr1	3072015	.	C	T	17.95	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=39;Dels=0.00;HRun=0;HaplotypeScore=6.27;MQ=51.72;MQ0=4;QD=0.46;SB=-17.49	GT:AD:DP:GL:GQ	0/1:29,10:20:-11.10,-6.03,-56.69:50.72
-chr1	3077233	rs10909887	A	T	53.28	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=1;HaplotypeScore=3.52;MQ=59.65;MQ0=0;OQ=1671.94;QD=31.55;SB=-810.23	GT:AD:DP:GL:GQ	1/1:0,53:48:-170.81,-14.47,-0.03:99
-chr1	3078302	rs2817127	C	G	3.71	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=2;HaplotypeScore=0.67;MQ=58.92;MQ0=0;OQ=1590.78;QD=40.79;SB=-669.44	GT:AD:DP:GL:GQ	1/1:0,39:38:-162.68,-11.46,-0.02:99
-chr1	3078602	rs2651936	C	T	556.62	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1763.78;QD=38.34;SB=-617.01	GT:AD:DP:GL:GQ	1/1:0,46:45:-179.97,-13.55,-0.01:99
-chr1	3078803	rs2817128	T	C	41.66	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=3;HaplotypeScore=0.92;MQ=58.79;MQ0=0;OQ=1700.76;QD=31.50;SB=-627.85	GT:AD:DP:GL:GQ	1/1:0,54:53:-173.71,-15.98,-0.05:99
-chr1	3078920	rs2817129	G	C	420.84	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2270.90;QD=42.85;SB=-927.24	GT:AD:DP:GL:GQ	1/1:0,53:53:-230.70,-15.98,-0.02:99
-chr1	3079836	rs3795268	G	A	518.97	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2012.53;QD=38.70;SB=-765.66	GT:AD:DP:GL:GQ	1/1:0,52:51:-204.85,-15.36,-0.01:99
-chr1	3082486	rs61759169	A	T	0.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=80;Dels=0.00;HRun=0;HaplotypeScore=17.96;MQ=49.98;MQ0=1;OQ=467.66;QD=5.85;SB=-63.76	GT:AD:DP:GL:GQ	0/1:57,23:74:-72.34,-22.29,-212.74:99
-chr1	3082576	rs59307218	T	C	89.31	Indel	AC=1;AF=0.50;AN=2;DB;DP=106;Dels=0.00;HRun=1;HaplotypeScore=16.28;MQ=58.32;MQ0=0;QD=0.84;SB=-6.84	GT:AD:DP:GL:GQ	0/1:94,12:100:-42.34,-30.13,-353.31:99
-chr1	3082715	rs61759170	T	C	0.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=94;Dels=0.00;HRun=1;HaplotypeScore=13.70;MQ=54.13;MQ0=0;OQ=433.59;QD=4.61;SB=-120.39	GT:AD:DP:GL:GQ	0/1:66,28:84:-71.95,-25.31,-255.13:99
-chr1	3082724	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=86;Dels=0.00;HRun=0;HaplotypeScore=20.17;MQ=53.56;MQ0=0;OQ=265.77;QD=3.09;SB=-1.90	GT:AD:DP:GL:GQ	0/1:64,21:77:-55.36,-25.50,-226.03:99
-chr1	3082730	rs61759171	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=79;Dels=0.00;HRun=1;HaplotypeScore=25.02;MQ=53.60;MQ0=0;OQ=115.19;QD=1.46;SB=35.65	GT:AD:DP:GL:GQ	0/1:62,16:69:-35.59,-20.79,-209.49:99
-chr1	3083610	rs2817131	T	C	1.92	PASS	AC=2;AF=1.00;AN=2;DB;DP=76;Dels=0.00;HRun=1;HaplotypeScore=7.31;MQ=58.76;MQ0=0;OQ=2679.05;QD=35.25;SB=-1269.49	GT:AD:DP:GL:GQ	1/1:0,76:75:-271.51,-22.59,-0.03:99
-chr1	3086215	rs868718	G	A	224.01	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=1.66;MQ=59.60;MQ0=0;OQ=2257.57;QD=38.92;SB=-929.74	GT:AD:DP:GL:GQ	1/1:0,58:57:-229.36,-17.17,-0.02:99
-chr1	3086338	rs2817132	T	C	256.47	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.55;MQ0=0;OQ=1749.39;QD=34.30;SB=-792.14	GT:AD:DP:GL:GQ	1/1:0,51:49:-178.54,-14.76,-0.01:99
-chr1	3086971	.	G	A	6.54	PASS	AC=1;AF=0.50;AN=2;DP=51;Dels=0.00;HRun=1;HaplotypeScore=3.12;MQ=59.63;MQ0=0;OQ=869.92;QD=17.06;SB=-366.15	GT:AD:DP:GL:GQ	0/1:23,28:49:-105.05,-14.78,-70.17:99
-chr1	3087284	rs28576654	G	A	0.62	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=8.45;MQ=55.21;MQ0=0;OQ=1827.21;QD=37.29;SB=-761.03	GT:AD:DP:GL:GQ	1/1:1,48:47:-186.32,-14.16,-0.02:99
-chr1	3087324	rs36042320	A	G	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=36.16;MQ=53.71;MQ0=0;OQ=1199.13;QD=20.32;SB=-596.19	GT:AD:DP:GL:GQ	1/1:10,49:47:-136.03,-14.18,-12.56:16.27
-chr1	3087368	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=85;Dels=0.00;HRun=0;HaplotypeScore=62.15;MQ=52.02;MQ0=2;OQ=84.05;QD=0.99;SB=68.22	GT:AD:DP:GL:GQ	0/1:64,20:65:-31.27,-19.58,-199.12:99
-chr1	3087405	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=124;Dels=0.00;HRun=0;HaplotypeScore=113.18;MQ=45.62;MQ0=12;OQ=152.20;QD=1.23;SB=83.17	GT:AD:DP:GL:GQ	0/1:93,25:100:-54.91,-36.41,-286.94:99
-chr1	3087421	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=108;Dels=0.01;HRun=1;HaplotypeScore=157.91;MQ=45.44;MQ0=13;OQ=317.87;QD=2.94;SB=62.22	GT:AD:DP:GL:GQ	0/1:65,42:72:-56.46,-21.39,-222.98:99
-chr1	3087430	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=100;Dels=0.09;HRun=0;HaplotypeScore=131.45;MQ=45.35;MQ0=13;OQ=71.40;QD=0.71;SB=68.23	GT:AD:DP:GL:GQ	0/1:57,34:61:-28.82,-18.40,-174.57:99
-chr1	3087432	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=103;Dels=0.00;HRun=0;HaplotypeScore=125.43;MQ=44.68;MQ0=16;OQ=349.00;QD=3.39;SB=68.23	GT:AD:DP:GL:GQ	0/1:85,18:67:-58.39,-20.20,-173.08:99
-chr1	3087446	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=90;Dels=0.00;HRun=0;HaplotypeScore=34.86;MQ=42.41;MQ0=15;OQ=253.15;QD=2.81;SB=53.16	GT:AD:DP:GL:GQ	0/1:47,43:54:-44.89,-16.29,-135.66:99
-chr1	3087456	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=90;Dels=0.00;HRun=0;HaplotypeScore=33.91;MQ=40.94;MQ0=15;OQ=574.41;QD=6.38;SB=41.15	GT:AD:DP:GL:GQ	0/1:47,43:59:-78.52,-17.79,-127.78:99
-chr1	3087469	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=85;Dels=0.00;HRun=0;HaplotypeScore=37.75;MQ=38.93;MQ0=14;OQ=420.06;QD=4.94;SB=41.09	GT:AD:DP:GL:GQ	0/1:56,29:63:-64.29,-19.00,-146.93:99
-chr1	3087482	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=76;Dels=0.00;HRun=0;HaplotypeScore=75.90;MQ=37.38;MQ0=13;OQ=93.48;QD=1.23;SB=56.14	GT:AD:DP:GL:GQ	0/1:55,21:54:-28.92,-16.29,-150.91:99
-chr1	3087484	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=76;Dels=0.00;HRun=0;HaplotypeScore=59.86;MQ=36.69;MQ0=13;OQ=224.49;QD=2.95;SB=47.15	GT:AD:DP:GL:GQ	0/1:64,12:51:-41.12,-15.38,-130.32:99
-chr1	3087496	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=57;Dels=0.18;HRun=0;HaplotypeScore=92.35;MQ=35.16;MQ0=7;OQ=80.55;QD=1.41;SB=-35.75	GT:AD:DP:GL:GQ	0/1:30,16:29:-20.09,-8.75,-100.50:99
-chr1	3087498	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=57;Dels=0.00;HRun=0;HaplotypeScore=70.78;MQ=33.76;MQ0=7;OQ=147.15;QD=2.58;SB=-95.04	GT:AD:DP:GL:GQ	0/1:41,16:33:-27.95,-9.95,-82.07:99
-chr1	3087509	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=61;Dels=0.05;HRun=0;HaplotypeScore=74.81;MQ=32.58;MQ0=5;OQ=64.70;QD=1.06;SB=56.11	GT:AD:DP:GL:GQ	0/1:52,6:35:-20.32,-10.56,-93.36:97.54
-chr1	3087512	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=62;Dels=0.00;HRun=0;HaplotypeScore=54.96;MQ=31.97;MQ0=5;OQ=503.11;QD=8.11;SB=-236.10	GT:AD:DP:GL:GQ	0/1:31,31:45:-67.16,-13.57,-94.41:99
-chr1	3087536	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=80;Dels=0.00;HRun=0;HaplotypeScore=33.03;MQ=32.40;MQ0=3;OQ=59.37;QD=0.74;SB=89.25	GT:AD:DP:GL:GQ	0/1:72,7:63:-28.22,-18.99,-181.57:92.21
-chr1	3087538	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=80;Dels=0.00;HRun=0;HaplotypeScore=37.44;MQ=32.40;MQ0=3;OQ=247.27;QD=3.09;SB=80.25	GT:AD:DP:GL:GQ	0/1:65,15:63:-46.99,-18.98,-180.33:99
-chr1	3087608	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=168;Dels=0.01;HRun=0;HaplotypeScore=54.40;MQ=37.28;MQ0=13;OQ=1887.72;QD=11.24;SB=-729.24	GT:AD:DP:GL:GQ	0/1:104,63:145:-235.47,-43.42,-271.37:99
-chr1	3087617	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=185;Dels=0.00;HRun=0;HaplotypeScore=53.68;MQ=37.94;MQ0=15;OQ=1635.04;QD=8.84;SB=-493.28	GT:AD:DP:GL:GQ	0/1:114,71:160:-215.01,-48.22,-344.93:99
-chr1	3087664	.	A	G	18.84	DPFilter;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=189;Dels=0.01;HRun=0;HaplotypeScore=131.51;MQ=40.84;MQ0=15;QD=0.10;SB=241.96	GT:AD:DP:GL:GQ	0/1:170,18:163:-53.97,-48.81,-580.79:51.62
-chr1	3087667	.	C	T	165.92	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=188;Dels=0.01;HRun=0;HaplotypeScore=132.64;MQ=41.11;MQ0=15;QD=0.88;SB=179.60	GT:AD:DP:GL:GQ	0/1:167,20:158:-67.18,-47.30,-486.26:99
-chr1	3087668	.	A	G	310.08	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=187;Dels=0.01;HRun=1;HaplotypeScore=124.54;MQ=41.17;MQ0=15;QD=1.66;SB=124.04	GT:AD:DP:GL:GQ	0/1:158,28:160:-82.20,-47.90,-540.31:99
-chr1	3087734	.	T	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=114;Dels=0.00;HRun=1;HaplotypeScore=13.23;MQ=44.53;MQ0=2;OQ=55.34;QD=0.49;SB=-14.90	GT:AD:DP:GL:GQ	0/1:101,11:104:-40.16,-31.34,-369.37:88.18
-chr1	3087747	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=105;Dels=0.00;HRun=0;HaplotypeScore=23.95;MQ=43.49;MQ0=2;OQ=1649.29;QD=15.71;SB=-709.98	GT:AD:DP:GL:GQ	0/1:48,57:100:-198.34,-30.13,-180.84:99
-chr1	3087772	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=133;Dels=0.00;HRun=0;HaplotypeScore=99.40;MQ=37.75;MQ0=7;OQ=762.57;QD=5.73;SB=-239.63	GT:AD:DP:GL:GQ	0/1:102,30:117:-114.83,-35.29,-281.68:99
-chr1	3087833	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=152;Dels=0.00;HRun=1;HaplotypeScore=261.50;MQ=29.30;MQ0=7;OQ=1486.23;QD=9.78;SB=-676.51	GT:AD:DP:GL:GQ	0/1:100,52:130:-191.07,-39.17,-253.74:99
-chr1	3087850	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=146;Dels=0.00;HRun=0;HaplotypeScore=106.63;MQ=29.08;MQ0=7;OQ=1055.92;QD=7.23;SB=-459.23	GT:AD:DP:GL:GQ	0/1:100,46:125:-146.56,-37.68,-289.33:99
-chr1	3087853	.	C	A	11.81	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=148;Dels=0.00;HRun=0;HaplotypeScore=84.96;MQ=29.13;MQ0=6;QD=0.08;SB=22.69	GT:AD:DP:GL:GQ	0/1:134,14:133:-44.49,-40.06,-434.86:44.36
-chr1	3087861	.	A	C	168.29	DPFilter;Indel	AC=1;AF=0.50;AN=2;DP=135;Dels=0.00;HRun=0;HaplotypeScore=23.28;MQ=29.00;MQ0=4;QD=1.25;SB=-17.42	GT:AD:DP:GL:GQ	0/1:115,20:120:-56.26,-36.15,-379.05:99
-chr1	3087900	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=73;Dels=0.00;HRun=1;HaplotypeScore=22.94;MQ=28.28;MQ0=1;OQ=423.78;QD=5.81;SB=-214.40	GT:AD:DP:GL:GQ	0/1:51,22:68:-66.15,-20.49,-189.92:99
-chr1	3087911	.	C	T	880.08	SnpCluster	AC=1;AF=0.50;AN=2;DP=69;Dels=0.03;HRun=0;HaplotypeScore=32.89;MQ=28.46;MQ0=0;QD=12.75;SB=-315.83	GT:AD:DP:GL:GQ	0/1:40,27:49:-105.45,-14.16,-69.50:99
-chr1	3087912	.	A	G	1267.81	SnpCluster	AC=1;AF=0.50;AN=2;DP=68;Dels=0.03;HRun=1;HaplotypeScore=32.88;MQ=28.45;MQ0=0;QD=18.64;SB=-474.20	GT:AD:DP:GL:GQ	0/1:22,44:48:-143.92,-13.86,-20.32:64.59
-chr1	3087920	.	G	A	574.31	SnpCluster	AC=1;AF=0.50;AN=2;DP=74;Dels=0.04;HRun=0;HaplotypeScore=182.60;MQ=28.60;MQ0=0;QD=7.76;SB=-289.69	GT:AD:DP:GL:GQ	0/1:50,21:71:-81.21,-20.50,-157.25:99
-chr1	3087952	.	G	A	1075.62	Indel	AC=1;AF=0.50;AN=2;DP=79;Dels=0.00;HRun=0;HaplotypeScore=58.78;MQ=31.99;MQ0=0;QD=13.62;SB=-555.39	GT:AD:DP:GL:GQ	0/1:45,34:75:-133.45,-22.61,-136.49:99
-chr1	3087978	.	A	G	38.22	DPFilter;Indel;LowQual	AC=1;AF=0.50;AN=2;DP=109;Dels=0.02;HRun=1;HaplotypeScore=54.40;MQ=36.04;MQ0=0;QD=0.35;SB=94.63	GT:AD:DP:GL:GQ	0/1:93,14:103:-37.54,-30.43,-360.90:71.06
-chr1	3088004	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=141;Dels=0.00;HRun=0;HaplotypeScore=30.72;MQ=40.10;MQ0=2;OQ=423.13;QD=3.00;SB=9.29	GT:AD:DP:GL:GQ	0/1:121,20:123:-82.68,-37.08,-335.63:99
-chr1	3088013	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=142;Dels=0.03;HRun=0;HaplotypeScore=47.98;MQ=41.19;MQ0=4;OQ=426.97;QD=3.01;SB=-54.18	GT:AD:DP:GL:GQ	0/1:112,26:133:-84.85,-38.87,-412.97:99
-chr1	3088015	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=145;Dels=0.00;HRun=0;HaplotypeScore=42.51;MQ=41.21;MQ0=4;OQ=465.21;QD=3.21;SB=-60.11	GT:AD:DP:GL:GQ	0/1:116,29:131:-89.28,-39.48,-409.01:99
-chr1	3088100	.	G	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=132;Dels=0.00;HRun=0;HaplotypeScore=4.53;MQ=40.45;MQ0=11;OQ=130.52;QD=0.99;SB=-31.41	GT:AD:DP:GL:GQ	0/1:119,13:106:-48.30,-31.97,-302.63:99
-chr1	3088101	.	C	T	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=129;Dels=0.00;HRun=0;HaplotypeScore=4.53;MQ=40.49;MQ0=10;OQ=71.07;QD=0.55;SB=-5.78	GT:AD:DP:GL:GQ	0/1:117,11:111:-47.37,-36.98,-326.83:99
-chr1	3088217	.	T	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=80;Dels=0.01;HRun=0;HaplotypeScore=17.08;MQ=42.86;MQ0=1;OQ=126.54;QD=1.58;SB=-85.23	GT:AD:DP:GL:GQ	0/1:66,13:74:-37.94,-22.00,-241.16:99
-chr1	3088220	rs34886760	A	G	0.65	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.01;HRun=1;HaplotypeScore=12.97;MQ=43.96;MQ0=1;OQ=1584.16;QD=20.84;SB=-521.89	GT:AD:DP:GL:GQ	0/1:11,64:65:-181.29,-19.59,-39.63:99
-chr1	3088304	rs61759175	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=118;Dels=0.08;HRun=0;HaplotypeScore=55.59;MQ=46.00;MQ0=11;OQ=251.71;QD=2.13;SB=81.71	GT:AD:DP:GL:GQ	0/1:90,18:102:-58.89,-30.43,-301.97:99
-chr1	3088575	rs2817134	T	C	3.03	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=1;HaplotypeScore=5.64;MQ=59.45;MQ0=0;OQ=1472.39;QD=35.06;SB=-604.20	GT:AD:DP:GL:GQ	1/1:0,42:42:-150.84,-12.65,-0.02:99
-chr1	3088745	rs2651931	C	T	32.64	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=1;HaplotypeScore=1.49;MQ=59.44;MQ0=0;OQ=1502.67;QD=36.65;SB=-632.85	GT:AD:DP:GL:GQ	1/1:0,40:38:-153.86,-11.45,-0.01:99
-chr1	3088761	rs2817135	T	C	98.95	PASS	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=59.39;MQ0=0;OQ=1114.54;QD=29.33;SB=-484.51	GT:AD:DP:GL:GQ	1/1:0,38:36:-115.07,-10.86,-0.04:99
-chr1	3089054	rs950200	A	G	135.40	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=1.05;MQ=59.38;MQ0=0;OQ=1494.35;QD=33.21;SB=-586.20	GT:AD:DP:GL:GQ	1/1:0,45:43:-153.04,-12.95,-0.02:99
-chr1	3091593	rs9660914	G	A	174.18	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.63;MQ0=0;OQ=2157.13;QD=34.24;SB=-1073.97	GT:AD:DP:GL:GQ	1/1:0,63:58:-219.33,-17.49,-0.04:99
-chr1	3093686	rs4233024	C	T	199.19	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=57.75;MQ0=0;OQ=1964.65;QD=37.78;SB=-829.97	GT:AD:DP:GL:GQ	1/1:0,52:51:-200.08,-15.37,-0.03:99
-chr1	3094490	rs10752733	A	G	125.27	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=1;HaplotypeScore=0.58;MQ=60.00;MQ0=0;OQ=1561.08;QD=30.61;SB=-635.88	GT:AD:DP:GL:GQ	1/1:0,51:49:-159.74,-14.78,-0.04:99
-chr1	3094942	rs2817136	G	A	89.99	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=60.00;MQ0=0;OQ=1690.06;QD=36.74;SB=-568.32	GT:AD:DP:GL:GQ	1/1:0,46:44:-172.61,-13.26,-0.02:99
-chr1	3095136	rs2817138	T	G	4.52	PASS	AC=2;AF=1.00;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=6.65;MQ=58.92;MQ0=0;OQ=1072.43;QD=24.94;SB=-511.45	GT:AD:DP:GL:GQ	1/1:0,43:37:-110.87,-11.16,-0.04:99
-chr1	3095423	rs2651919	G	T	722.39	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.22;MQ0=0;OQ=2110.88;QD=35.78;SB=-952.39	GT:AD:DP:GL:GQ	1/1:0,59:58:-214.69,-17.47,-0.02:99
-chr1	3095697	rs2651918	T	C	14.21	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=2;HaplotypeScore=3.68;MQ=59.20;MQ0=0;OQ=1955.56;QD=33.72;SB=-956.98	GT:AD:DP:GL:GQ	1/1:0,58:55:-199.16,-16.57,-0.02:99
-chr1	3095769	rs2817139	A	G	514.86	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.29;MQ0=0;OQ=1684.86;QD=27.18;SB=-755.66	GT:AD:DP:GL:GQ	1/1:0,62:53:-172.12,-15.99,-0.05:99
-chr1	3095922	rs7530075	G	A	526.13	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.59;MQ0=0;OQ=1784.81;QD=39.66;SB=-851.64	GT:AD:DP:GL:GQ	1/1:0,45:45:-182.08,-13.55,-0.01:99
-chr1	3096128	rs2651917	C	G	97.32	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=1;HaplotypeScore=0.99;MQ=58.80;MQ0=0;OQ=1717.27;QD=36.54;SB=-542.46	GT:AD:DP:GL:GQ	1/1:0,47:42:-175.34,-12.67,-0.03:99
-chr1	3096165	rs7545798	A	G	335.50	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.06;MQ0=0;OQ=1218.45;QD=30.46;SB=-546.04	GT:AD:DP:GL:GQ	1/1:0,40:39:-125.47,-11.76,-0.04:99
-chr1	3096243	rs7545871	A	G	179.87	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.45;MQ0=0;OQ=1274.76;QD=30.35;SB=-481.26	GT:AD:DP:GL:GQ	1/1:0,42:39:-131.09,-11.76,-0.02:99
-chr1	3096257	rs2651916	C	T	670.34	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.07;MQ0=0;OQ=1810.18;QD=36.20;SB=-763.02	GT:AD:DP:GL:GQ	1/1:0,50:47:-184.62,-14.16,-0.02:99
-chr1	3096476	rs2817140	A	G	6.35	PASS	AC=2;AF=1.00;AN=2;DB;DP=36;Dels=0.00;HRun=4;HaplotypeScore=0.00;MQ=59.36;MQ0=0;OQ=1038.30;QD=28.84;SB=-515.16	GT:AD:DP:GL:GQ	1/1:0,36:34:-107.45,-10.26,-0.04:99
-chr1	3096661	rs61759179	G	A	1.83	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=5.55;MQ=53.62;MQ0=2;OQ=1172.74;QD=30.07;SB=-520.65	GT:AD:DP:GL:GQ	1/1:8,31:31:-120.87,-9.34,-0.01:93.29
-chr1	3096814	rs2817141	T	C	22.79	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=2;HaplotypeScore=1.30;MQ=59.19;MQ0=0;OQ=1269.17;QD=27.59;SB=-620.79	GT:AD:DP:GL:GQ	1/1:0,46:42:-130.56,-12.68,-0.06:99
-chr1	3097140	rs1875451	C	T	277.41	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.87;MQ=59.63;MQ0=0;OQ=1807.86;QD=35.45;SB=-805.30	GT:AD:DP:GL:GQ	1/1:0,51:46:-184.39,-13.86,-0.02:99
-chr1	3098276	rs2651914	T	G	143.53	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=2;HaplotypeScore=0.87;MQ=60.00;MQ0=0;OQ=2148.66;QD=35.22;SB=-1029.38	GT:AD:DP:GL:GQ	1/1:0,61:61:-218.47,-18.37,-0.02:99
-chr1	3098356	rs10737190	G	A	615.19	PASS	AC=2;AF=1.00;AN=2;DB;DP=83;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.78;MQ0=0;OQ=3298.92;QD=39.75;SB=-1410.68	GT:AD:DP:GL:GQ	1/1:0,83:81:-328.89,-24.40,-0.02:99
-chr1	3098377	rs6685614	G	A	280.84	PASS	AC=2;AF=1.00;AN=2;DB;DP=83;Dels=0.00;HRun=0;HaplotypeScore=1.60;MQ=59.78;MQ0=0;OQ=3233.06;QD=38.95;SB=-1261.68	GT:AD:DP:GL:GQ	1/1:0,83:82:-327.11,-24.71,-0.03:99
-chr1	3099011	rs7539775	G	A	230.88	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=1.41;MQ=59.47;MQ0=0;OQ=1818.76;QD=34.98;SB=-678.01	GT:AD:DP:GL:GQ	1/1:1,51:49:-188.18,-14.77,-2.72:99
-chr1	3100277	rs2651913	C	G	465.83	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1755.38;QD=41.79;SB=-899.81	GT:AD:DP:GL:GQ	1/1:0,42:41:-179.13,-12.35,-0.01:99
-chr1	3100595	rs2651912	T	C	68.37	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=1;HaplotypeScore=4.22;MQ=58.95;MQ0=0;OQ=646.58;QD=10.43;SB=-279.12	GT:AD:DP:GL:GQ	0/1:33,29:56:-84.82,-16.88,-119.30:99
-chr1	3104232	.	G	A	37.52	PASS	AC=1;AF=0.50;AN=2;DP=35;Dels=0.00;HRun=0;HaplotypeScore=1.83;MQ=60.00;MQ0=0;OQ=572.60;QD=16.36;SB=-260.57	GT:AD:DP:GL:GQ	0/1:16,19:33:-70.49,-9.94,-51.89:99
-chr1	3105581	rs950449	C	G	114.98	PASS	AC=1;AF=0.50;AN=2;DB;DP=25;Dels=0.00;HRun=1;HaplotypeScore=1.91;MQ=60.00;MQ0=0;OQ=352.20;QD=14.09;SB=-136.76	GT:AD:DP:GL:GQ	0/1:14,11:24:-45.74,-7.23,-56.39:99
-chr1	3106518	rs2651923	T	C	555.63	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.18;MQ0=0;OQ=1262.70;QD=28.70;SB=-607.93	GT:AD:DP:GL:GQ	1/1:0,44:40:-129.89,-12.07,-0.04:99
-chr1	3110061	rs2817142	T	C	84.27	PASS	AC=2;AF=1.00;AN=2;DB;DP=34;Dels=0.00;HRun=0;HaplotypeScore=1.68;MQ=58.76;MQ0=0;OQ=950.22;QD=27.95;SB=-463.20	GT:AD:DP:GL:GQ	1/1:1,33:31:-98.64,-9.35,-0.03:93.20
-chr1	3113619	rs2817143	T	C	475.54	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.53;MQ0=0;OQ=1485.25;QD=30.31;SB=-541.01	GT:AD:DP:GL:GQ	1/1:0,49:46:-152.15,-13.87,-0.04:99
-chr1	3119305	.	C	T	6.85	PASS	AC=1;AF=0.50;AN=2;DP=40;Dels=0.00;HRun=2;HaplotypeScore=0.67;MQ=60.00;MQ0=0;OQ=482.22;QD=12.06;SB=-197.28	GT:AD:DP:GL:GQ	0/1:23,17:38:-62.96,-11.45,-76.10:99
-chr1	3119433	rs60892783	T	A	341.04	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=59.85;MQ0=0;OQ=778.15;QD=15.26;SB=-381.44	GT:AD:DP:GL:GQ	0/1:26,25:51:-96.46,-15.36,-96.60:99
-chr1	3124191	rs12124147	C	T	18.37	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=4;HaplotypeScore=1.41;MQ=60.00;MQ0=0;OQ=2106.36;QD=38.30;SB=-923.21	GT:AD:DP:GL:GQ	1/1:0,55:54:-214.24,-16.27,-0.02:99
-chr1	3125697	.	G	A	48.02	PASS	AC=1;AF=0.50;AN=2;DP=55;Dels=0.00;HRun=0;HaplotypeScore=3.90;MQ=59.58;MQ0=0;OQ=894.40;QD=16.26;SB=-426.44	GT:AD:DP:GL:GQ	0/1:28,27:53:-108.70,-15.98,-81.48:99
-chr1	3133804	rs10737191	T	C	216.08	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=59.05;MQ0=0;OQ=1310.90;QD=29.79;SB=-629.85	GT:AD:DP:GL:GQ	1/1:0,44:43:-134.73,-12.98,-0.05:99
-chr1	3137939	rs2651921	T	C	31.09	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=1;HaplotypeScore=1.62;MQ=57.88;MQ0=0;OQ=1318.12;QD=31.38;SB=-539.87	GT:AD:DP:GL:GQ	1/1:0,42:38:-135.41,-11.45,-0.01:99
-chr1	3139859	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=40;Dels=0.00;HRun=4;HaplotypeScore=1.59;MQ=58.84;MQ0=0;OQ=177.35;QD=4.43;SB=56.21	GT:AD:DP:GL:GQ	0/1:24,16:34:-31.27,-10.25,-94.47:99
-chr1	3140395	.	C	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=44;Dels=0.00;HRun=1;HaplotypeScore=11.19;MQ=58.95;MQ0=0;OQ=93.28;QD=2.12;SB=71.27	GT:AD:DP:GL:GQ	0/1:31,13:33:-22.56,-9.95,-125.01:99
-chr1	3146326	rs2455112	A	G	135.43	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=1;HaplotypeScore=2.76;MQ=60.00;MQ0=0;OQ=1096.93;QD=16.88;SB=-503.18	GT:AD:DP:GL:GQ	0/1:28,37:65:-132.56,-19.58,-110.95:99
-chr1	3151094	.	T	G	27.85	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=51;Dels=0.00;HRun=2;HaplotypeScore=10.51;MQ=58.72;MQ0=0;QD=0.55;SB=62.22	GT:AD:DP:GL:GQ	0/1:29,22:34:-16.31,-10.24,-101.82:60.68
-chr1	3154977	.	C	T	20.55	PASS	AC=1;AF=0.50;AN=2;DP=49;Dels=0.00;HRun=0;HaplotypeScore=1.57;MQ=59.05;MQ0=0;OQ=960.26;QD=19.60;SB=-359.36	GT:AD:DP:GL:GQ	0/1:20,29:48:-113.77,-14.46,-73.03:99
-chr1	3155966	rs1105111	C	A	740.08	Indel	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=6;HaplotypeScore=0.00;MQ=60.39;MQ0=0;QD=13.46;SB=-187.60	GT:AD:DP:GL:GQ	0/1:28,27:54:-93.56,-16.26,-102.62:99
-chr1	3156860	.	C	A	1.29	PASS	AC=1;AF=0.50;AN=2;DP=39;Dels=0.00;HRun=2;HaplotypeScore=2.70;MQ=59.41;MQ0=0;OQ=714.68;QD=18.33;SB=-335.33	GT:AD:DP:GL:GQ	0/1:15,24:39:-86.50,-11.75,-50.10:99
-chr1	3157063	rs60443258	C	G	197.93	PASS	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=1.05;MQ=59.43;MQ0=0;OQ=467.30;QD=14.16;SB=-190.23	GT:AD:DP:GL:GQ	0/1:18,15:33:-59.97,-9.95,-75.73:99
-chr1	3158034	rs11589327	C	T	221.90	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=55.82;MQ0=0;OQ=602.02;QD=14.68;SB=-226.92	GT:AD:DP:GL:GQ	0/1:22,19:39:-75.24,-11.75,-65.81:99
-chr1	3158063	rs61759183	G	A	105.26	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=3.23;MQ=54.25;MQ0=0;OQ=859.64;QD=18.29;SB=-349.39	GT:AD:DP:GL:GQ	0/1:17,30:44:-102.53,-13.28,-49.01:99
-chr1	3158107	rs55987640	G	A	184.91	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=55.61;MQ0=0;OQ=836.43;QD=16.73;SB=-292.80	GT:AD:DP:GL:GQ	0/1:21,29:42:-99.58,-12.65,-57.74:99
-chr1	3158110	rs10909910	G	C	37.93	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=2;HaplotypeScore=0.63;MQ=55.78;MQ0=0;OQ=2043.92;QD=39.31;SB=-983.24	GT:AD:DP:GL:GQ	1/1:0,52:49:-208.00,-14.77,-0.02:99
-chr1	3158140	rs10797386	A	G	147.32	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=1;HaplotypeScore=1.47;MQ=58.66;MQ0=0;OQ=1752.75;QD=33.71;SB=-820.65	GT:AD:DP:GL:GQ	1/1:0,52:49:-178.87,-14.76,-0.02:99
-chr1	3158322	rs12143201	C	T	107.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=2.72;MQ=58.81;MQ0=0;OQ=1087.80;QD=19.78;SB=-426.85	GT:AD:DP:GL:GQ	0/1:23,32:54:-128.34,-16.28,-69.54:99
-chr1	3158948	rs7539489	G	A	212.35	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=2.64;MQ=59.50;MQ0=0;OQ=701.66;QD=15.25;SB=-203.89	GT:AD:DP:GL:GQ	0/1:22,24:42:-86.11,-12.66,-64.73:99
-chr1	3160428	rs56015432	C	G	319.35	PASS	AC=1;AF=0.50;AN=2;DB;DP=91;Dels=0.00;HRun=0;HaplotypeScore=1.15;MQ=42.71;MQ0=18;OQ=1056.37;QD=11.61;SB=-361.10	GT:AD:DP:GL:GQ	0/1:52,38:68:-131.78,-22.86,-160.18:99
-chr1	3160647	rs2376494	T	C	490.07	PASS	AC=1;AF=0.50;AN=2;DB;DP=78;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=51.54;MQ0=5;OQ=1049.98;QD=13.46;SB=-449.81	GT:AD:DP:GL:GQ	0/1:34,44:69:-129.08,-20.80,-121.01:99
-chr1	3160969	rs61691507	T	C	83.17	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=3;HaplotypeScore=0.96;MQ=48.88;MQ0=0;OQ=936.08;QD=14.18;SB=-414.90	GT:AD:DP:GL:GQ	0/1:32,34:63:-115.87,-18.98,-126.60:99
-chr1	3161244	rs28883366	T	C	328.67	PASS	AC=2;AF=1.00;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=20.07;MQ0=44;OQ=827.10;QD=11.18;SB=-204.07	GT:AD:DP:GL:GQ	1/1:25,49:28:-86.33,-8.45,-0.03:84.18
-chr1	3161789	rs4648464	G	A	197.91	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=1.39;MQ=53.22;MQ0=0;OQ=1078.68;QD=20.35;SB=-414.45	GT:AD:DP:GL:GQ	0/1:21,32:51:-126.53,-15.37,-60.62:99
-chr1	3161922	rs4648465	G	A	93.86	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=1.86;MQ=50.73;MQ0=0;OQ=1117.60;QD=22.35;SB=-454.98	GT:AD:DP:GL:GQ	0/1:18,32:50:-130.11,-15.06,-59.43:99
-chr1	3162133	rs2455100	T	C	1.91	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=5.09;MQ=58.24;MQ0=0;OQ=1353.88;QD=28.21;SB=-366.45	GT:AD:DP:GL:GQ	1/1:0,48:45:-139.02,-13.58,-0.05:99
-chr1	3162911	rs6699624	G	C	272.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=57.50;MQ0=0;OQ=1093.08;QD=16.07;SB=-449.43	GT:AD:DP:GL:GQ	0/1:32,35:63:-131.59,-19.00,-134.16:99
-chr1	3163088	rs1971330	C	T	114.07	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=1;HaplotypeScore=0.67;MQ=49.78;MQ0=0;OQ=900.72;QD=19.58;SB=-445.49	GT:AD:DP:GL:GQ	0/1:19,27:44:-106.61,-13.25,-68.73:99
-chr1	3163142	rs1971331	A	G	155.18	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.93;MQ=39.25;MQ0=0;OQ=1400.23;QD=30.44;SB=-715.29	GT:AD:DP:GL:GQ	1/1:0,46:45:-143.65,-13.57,-0.04:99
-chr1	3165231	rs10909912	T	G	383.69	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=59.06;MQ0=0;OQ=430.36;QD=10.76;SB=-234.78	GT:AD:DP:GL:GQ	0/1:20,20:39:-58.07,-11.75,-73.52:99
-chr1	3165588	rs2455101	A	G	194.31	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=58.36;MQ0=0;OQ=514.34;QD=12.86;SB=-185.55	GT:AD:DP:GL:GQ	0/1:18,22:37:-65.87,-11.15,-65.63:99
-chr1	3165783	.	C	T	13.80	PASS	AC=1;AF=0.50;AN=2;DP=46;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=427.64;QD=9.30;SB=-160.18	GT:AD:DP:GL:GQ	0/1:30,16:42:-58.70,-12.66,-94.89:99
-chr1	3166230	.	C	G	139.63	PASS	AC=1;AF=0.50;AN=2;DP=52;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=60.00;MQ0=0;OQ=825.87;QD=15.88;SB=-367.51	GT:AD:DP:GL:GQ	0/1:23,29:49:-100.65,-14.78,-100.14:99
-chr1	3167106	.	T	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=123;Dels=0.00;HRun=0;HaplotypeScore=181.43;MQ=36.47;MQ0=0;OQ=530.53;QD=4.31;SB=-209.32	GT:AD:DP:GL:GQ	0/1:66,39:92:-95.27,-38.93,-253.94:99
-chr1	3167116	.	T	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=174;Dels=0.01;HRun=1;HaplotypeScore=260.94;MQ=34.61;MQ0=0;OQ=942.41;QD=5.42;SB=-369.43	GT:AD:DP:GL:GQ	0/1:66,57:123:-208.12,-110.59,-323.19:99
-chr1	3167119	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=191;Dels=0.00;HRun=1;HaplotypeScore=217.51;MQ=34.08;MQ0=0;OQ=198.48;QD=1.04;SB=93.36	GT:AD:DP:GL:GQ	0/1:148,42:118:-61.70,-38.57,-398.62:99
-chr1	3167131	.	G	A	38.92	DPFilter;Indel;LowQual	AC=1;AF=0.50;AN=2;DP=216;Dels=0.00;HRun=0;HaplotypeScore=418.78;MQ=33.67;MQ0=0;QD=0.18;SB=-15.26	GT:AD:DP:GL:GQ	0/1:171,44:118:-42.73,-35.55,-373.47:71.75
-chr1	3167160	.	G	A	609.50	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=190;Dels=0.00;HRun=0;HaplotypeScore=319.28;MQ=32.32;MQ0=1;QD=3.21;SB=-149.32	GT:AD:DP:GL:GQ	0/1:134,56:72:-85.93,-21.70,-173.92:99
-chr1	3167161	.	T	C	245.51	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=188;Dels=0.00;HRun=0;HaplotypeScore=318.96;MQ=32.30;MQ0=1;QD=1.31;SB=53.20	GT:AD:DP:GL:GQ	0/1:174,14:59:-45.63,-17.79,-171.10:99
-chr1	3167162	.	G	A	200.87	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=187;Dels=0.00;HRun=0;HaplotypeScore=336.60;MQ=32.32;MQ0=1;QD=1.07;SB=56.18	GT:AD:DP:GL:GQ	0/1:174,10:62:-51.08,-27.71,-180.52:99
-chr1	3167163	.	G	A	107.11	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=184;Dels=0.00;HRun=0;HaplotypeScore=325.93;MQ=32.20;MQ0=1;QD=0.58;SB=-62.93	GT:AD:DP:GL:GQ	0/1:163,18:64:-33.28,-19.29,-195.22:99
-chr1	3167166	.	A	G	243.37	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=179;Dels=0.00;HRun=1;HaplotypeScore=314.12;MQ=31.98;MQ0=1;QD=1.36;SB=56.35	GT:AD:DP:GL:GQ	0/1:138,41:62:-46.30,-18.68,-187.52:99
-chr1	3167169	.	A	G	120.84	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=185;Dels=0.00;HRun=1;HaplotypeScore=387.92;MQ=32.13;MQ0=1;QD=0.65;SB=76.41	GT:AD:DP:GL:GQ	0/1:141,44:79:-39.18,-23.81,-262.75:99
-chr1	3167180	rs57179041	G	A	114.65	DPFilter;Indel;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=141;Dels=0.00;HRun=1;HaplotypeScore=408.58;MQ=31.71;MQ0=1;QD=0.81;SB=86.30	GT:AD:DP:GL:GQ	0/1:118,23:43:-27.70,-12.95,-132.25:99
-chr1	3167181	.	A	G	38.85	DPFilter;Indel;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=141;Dels=0.00;HRun=1;HaplotypeScore=419.93;MQ=31.63;MQ0=1;QD=0.28;SB=86.30	GT:AD:DP:GL:GQ	0/1:108,33:42:-19.82,-12.66,-143.77:71.68
-chr1	3167187	.	T	C	11.48	DPFilter;Indel;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=120;Dels=0.41;HRun=0;HaplotypeScore=330.20;MQ=31.90;MQ0=1;QD=0.10;SB=5.04	GT:AD:DP:GL:GQ	0/1:52,5:44:-17.05,-12.65,-148.02:44
-chr1	3167189	.	G	A	33.08	DPFilter;Indel;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=123;Dels=0.12;HRun=1;HaplotypeScore=208.65;MQ=32.18;MQ0=1;QD=0.27;SB=8.05	GT:AD:DP:GL:GQ	0/1:103,5:46:-20.45,-13.86,-154.58:65.91
-chr1	3167200	rs57648616	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=119;Dels=0.00;HRun=0;HaplotypeScore=125.27;MQ=33.30;MQ0=1;OQ=406.22;QD=3.41;SB=39.53	GT:AD:DP:GL:GQ	0/1:44,74:56:-63.73,-19.82,-152.72:99
-chr1	3167205	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=115;Dels=0.00;HRun=1;HaplotypeScore=95.81;MQ=33.44;MQ0=1;OQ=560.09;QD=4.87;SB=72.41	GT:AD:DP:GL:GQ	0/1:70,45:71:-80.68,-21.39,-190.32:99
-chr1	3167222	rs57879698	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=91;Dels=0.00;HRun=1;HaplotypeScore=105.67;MQ=36.94;MQ0=1;OQ=371.38;QD=4.08;SB=65.41	GT:AD:DP:GL:GQ	0/1:54,36:67:-60.61,-20.18,-198.91:99
-chr1	3167226	.	A	G	25.97	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=90;Dels=0.00;HRun=1;HaplotypeScore=94.17;MQ=37.02;MQ0=1;QD=0.29;SB=104.36	GT:AD:DP:GL:GQ	0/1:77,13:68:-26.37,-20.49,-239.07:58.80
-chr1	3167247	.	A	G	94.62	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=73;Dels=0.00;HRun=1;HaplotypeScore=9.30;MQ=43.30;MQ0=0;QD=1.30;SB=66.40	GT:AD:DP:GL:GQ	0/1:60,13:64:-32.03,-19.29,-213.53:99
-chr1	3167248	rs61151413	C	T	166.25	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=15.29;MQ=43.46;MQ0=0;QD=2.31;SB=80.73	GT:AD:DP:GL:GQ	0/1:59,13:65:-39.51,-19.60,-174.44:99
-chr1	3167253	.	A	G	43.60	DPFilter;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=78;Dels=0.00;HRun=1;HaplotypeScore=18.65;MQ=43.75;MQ0=0;QD=0.56;SB=110.39	GT:AD:DP:GL:GQ	0/1:68,10:69:-28.43,-20.79,-243.20:76.44
-chr1	3167258	.	G	A	29.42	DPFilter;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=78;Dels=0.00;HRun=1;HaplotypeScore=29.46;MQ=43.75;MQ0=0;QD=0.38;SB=107.33	GT:AD:DP:GL:GQ	0/1:71,7:70:-27.32,-21.09,-225.20:62.25
-chr1	3167340	rs3002685	A	G	235.56	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=44.86;MQ0=0;OQ=812.94;QD=11.29;SB=-432.88	GT:AD:DP:GL:GQ	0/1:35,37:64:-103.87,-19.29,-131.86:99
-chr1	3167551	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=62;Dels=0.00;HRun=15;HaplotypeScore=12.64;MQ=52.48;MQ0=0;OQ=368.96;QD=5.95;SB=77.28	GT:AD:DP:GL:GQ	0/1:44,18:52:-55.84,-15.67,-137.44:99
-chr1	3168576	.	C	T	188.74	PASS	AC=1;AF=0.50;AN=2;DP=60;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=59.69;MQ0=0;OQ=823.49;QD=13.72;SB=-404.84	GT:AD:DP:GL:GQ	0/1:34,26:58:-103.11,-17.48,-109.21:99
-chr1	3169081	.	C	T	79.34	PASS	AC=1;AF=0.50;AN=2;DP=67;Dels=0.00;HRun=0;HaplotypeScore=3.08;MQ=59.66;MQ0=0;OQ=1096.77;QD=16.37;SB=-547.56	GT:AD:DP:GL:GQ	0/1:32,35:63:-131.94,-18.98,-108.41:99
-chr1	3169567	rs1501611	G	A	10.13	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=8.26;MQ=58.29;MQ0=0;OQ=520.16;QD=12.69;SB=-281.22	GT:AD:DP:GL:GQ	0/1:21,20:36:-66.15,-10.85,-62.40:99
-chr1	3169746	rs2455106	G	C	285.96	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.48;MQ0=0;OQ=1036.68;QD=23.56;SB=-535.79	GT:AD:DP:GL:GQ	0/1:15,29:43:-119.91,-12.96,-65.17:99
-chr1	3170018	rs2455107	T	G	277.10	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=3.18;MQ=59.50;MQ0=0;OQ=669.75;QD=14.56;SB=-280.87	GT:AD:DP:GL:GQ	0/1:21,25:42:-82.91,-12.65,-66.12:99
-chr1	3170493	rs2455102	A	G	356.81	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=58.62;MQ0=0;OQ=653.73;QD=10.21;SB=-205.32	GT:AD:DP:GL:GQ	0/1:37,27:63:-87.64,-18.99,-144.47:99
-chr1	3170958	.	C	T	1.10	PASS	AC=1;AF=0.50;AN=2;DP=51;Dels=0.00;HRun=0;HaplotypeScore=5.86;MQ=59.55;MQ0=0;OQ=1035.67;QD=20.31;SB=-528.11	GT:AD:DP:GL:GQ	0/1:20,31:50:-121.92,-15.07,-64.72:99
-chr1	3171559	rs2500250	T	C	389.53	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=0.82;MQ=60.00;MQ0=0;OQ=559.12;QD=10.55;SB=-252.33	GT:AD:DP:GL:GQ	0/1:30,23:52:-74.86,-15.66,-123.43:99
-chr1	3171782	rs10909913	A	G	116.69	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=2;HaplotypeScore=2.90;MQ=59.63;MQ0=0;OQ=1003.48;QD=15.93;SB=-509.29	GT:AD:DP:GL:GQ	0/1:27,35:61:-122.01,-18.38,-106.15:99
-chr1	3172391	rs2455096	A	C	43.29	PASS	AC=1;AF=0.50;AN=2;DB;DP=34;Dels=0.00;HRun=1;HaplotypeScore=-0.06;MQ=60.00;MQ0=0;OQ=287.98;QD=8.47;SB=-120.97	GT:AD:DP:GL:GQ	0/1:18,16:31:-41.43,-9.34,-63.22:99
-chr1	3172429	rs56042628	C	T	96.48	PASS	AC=1;AF=0.50;AN=2;DB;DP=30;Dels=0.00;HRun=0;HaplotypeScore=1.81;MQ=60.00;MQ0=0;OQ=280.31;QD=9.34;SB=-80.59	GT:AD:DP:GL:GQ	0/1:19,11:28:-39.76,-8.44,-58.47:99
-chr1	3173020	rs2455094	G	A	166.70	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=2.67;MQ=59.53;MQ0=0;OQ=444.07;QD=11.10;SB=-203.69	GT:AD:DP:GL:GQ	0/1:22,17:34:-57.94,-10.25,-64.34:99
-chr1	3173727	rs2455093	A	G	256.03	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=60.00;MQ0=0;OQ=832.24;QD=16.98;SB=-357.94	GT:AD:DP:GL:GQ	0/1:20,29:47:-100.67,-14.16,-75.12:99
-chr1	3174715	rs2455119	G	T	285.04	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=57.49;MQ0=0;OQ=576.42;QD=12.81;SB=-209.45	GT:AD:DP:GL:GQ	0/1:23,22:42:-73.58,-12.65,-77.54:99
-chr1	3176001	.	C	T	83.35	PASS	AC=1;AF=0.50;AN=2;DP=50;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=57.70;MQ0=0;OQ=696.01;QD=13.92;SB=-293.84	GT:AD:DP:GL:GQ	0/1:26,23:46:-86.76,-13.88,-73.45:99
-chr1	3176267	.	T	G	76.55	PASS	AC=1;AF=0.50;AN=2;DP=57;Dels=0.00;HRun=1;HaplotypeScore=2.02;MQ=60.00;MQ0=0;OQ=841.56;QD=14.76;SB=-394.65	GT:AD:DP:GL:GQ	0/1:27,30:56:-104.31,-16.87,-93.27:99
-chr1	3177045	rs3002687	T	G	225.19	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=1;HaplotypeScore=1.21;MQ=59.59;MQ0=0;OQ=571.62;QD=12.43;SB=-258.88	GT:AD:DP:GL:GQ	0/1:24,22:45:-74.00,-13.56,-84.05:99
-chr1	3177468	.	C	T	3.04	PASS	AC=1;AF=0.50;AN=2;DP=32;Dels=0.00;HRun=1;HaplotypeScore=1.05;MQ=59.42;MQ0=0;OQ=538.59;QD=16.83;SB=-100.92	GT:AD:DP:GL:GQ	0/1:14,18:31:-66.48,-9.34,-49.83:99
-chr1	3177939	rs2500308	A	G	95.88	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=2;HaplotypeScore=1.13;MQ=59.39;MQ0=0;OQ=763.00;QD=10.04;SB=-332.88	GT:AD:DP:GL:GQ	0/1:45,31:71:-100.98,-21.39,-171.46:99
-chr1	3178661	.	G	A	33.39	PASS	AC=1;AF=0.50;AN=2;DP=42;Dels=0.00;HRun=0;HaplotypeScore=2.25;MQ=60.00;MQ0=0;OQ=796.34;QD=18.96;SB=-401.21	GT:AD:DP:GL:GQ	0/1:18,24:42:-95.58,-12.66,-58.00:99
-chr1	3178998	rs2455127	A	G	173.30	PASS	AC=1;AF=0.50;AN=2;DB;DP=35;Dels=0.00;HRun=1;HaplotypeScore=1.59;MQ=58.67;MQ0=0;OQ=507.17;QD=14.49;SB=-257.35	GT:AD:DP:GL:GQ	0/1:11,24:30:-63.05,-9.05,-41.23:99
-chr1	3179379	.	A	G	65.56	PASS	AC=1;AF=0.50;AN=2;DP=39;Dels=0.00;HRun=0;HaplotypeScore=1.96;MQ=58.32;MQ0=0;OQ=481.41;QD=12.34;SB=-241.93	GT:AD:DP:GL:GQ	0/1:18,21:37:-62.58,-11.16,-65.22:99
-chr1	3179574	rs2455128	A	G	108.65	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=2;HaplotypeScore=0.83;MQ=59.62;MQ0=0;OQ=838.70;QD=13.98;SB=-378.24	GT:AD:DP:GL:GQ	0/1:31,29:59:-104.93,-17.77,-121.27:99
-chr1	3179592	rs2500307	T	A	726.45	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.60;MQ0=0;OQ=2101.50;QD=36.23;SB=-987.86	GT:AD:DP:GL:GQ	1/1:0,58:58:-213.75,-17.47,-0.02:99
-chr1	3182386	rs2500304	T	C	246	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=1;HaplotypeScore=0.73;MQ=59.51;MQ0=0;OQ=550.86;QD=11.72;SB=-174.37	GT:AD:DP:GL:GQ	0/1:23,24:45:-71.94,-13.57,-90.75:99
-chr1	3182819	rs2455131	A	G	160.52	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=4.10;MQ=53.72;MQ0=0;OQ=380.67;QD=9.28;SB=-185.58	GT:AD:DP:GL:GQ	0/1:26,15:41:-53.71,-12.35,-99.70:99
-chr1	3183091	.	T	G	31.12	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=39;Dels=0.00;HRun=0;HaplotypeScore=4.54;MQ=48.96;MQ0=0;QD=0.80;SB=16.16	GT:AD:DP:GL:GQ	0/1:34,5:37:-17.54,-11.14,-116.34:63.95
-chr1	3183092	.	C	A	30.14	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=41;Dels=0.00;HRun=0;HaplotypeScore=9.54;MQ=48.87;MQ0=0;QD=0.74;SB=14.77	GT:AD:DP:GL:GQ	0/1:36,5:37:-17.45,-11.16,-100.79:62.97
-chr1	3183861	rs55923982	G	C	139.29	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=2.45;MQ=57.45;MQ0=0;OQ=542.30;QD=11.79;SB=-148.38	GT:AD:DP:GL:GQ	0/1:27,19:44:-70.78,-13.27,-111.52:99
-chr1	3184193	rs2455115	A	G	314.03	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.63;MQ=53.52;MQ0=0;OQ=598.87;QD=12.22;SB=-281.59	GT:AD:DP:GL:GQ	0/1:25,24:48:-77.64,-14.47,-94.87:99
-chr1	3185401	.	G	T	101.68	PASS	AC=1;AF=0.50;AN=2;DP=38;Dels=0.00;HRun=0;HaplotypeScore=1.32;MQ=59.51;MQ0=0;OQ=440.43;QD=11.59;SB=-233.97	GT:AD:DP:GL:GQ	0/1:19,19:33:-57.27,-9.94,-56.75:99
-chr1	3187015	.	G	A	77.56	PASS	AC=1;AF=0.50;AN=2;DP=57;Dels=0.00;HRun=1;HaplotypeScore=1.20;MQ=59.67;MQ0=0;OQ=971.62;QD=17.05;SB=-421.44	GT:AD:DP:GL:GQ	0/1:28,29:55:-117.01,-16.57,-95.93:99
-chr1	3188693	rs905137	A	G	186.40	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=1;HaplotypeScore=0.95;MQ=59.61;MQ0=0;OQ=484.36;QD=10.09;SB=-266.22	GT:AD:DP:GL:GQ	0/1:25,23:44:-64.98,-13.26,-96.26:99
-chr1	3189244	rs905136	A	G	4.18	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=4;HaplotypeScore=2.03;MQ=60.00;MQ0=0;OQ=654.87;QD=15.97;SB=-328.31	GT:AD:DP:GL:GQ	0/1:18,23:38:-80.22,-11.45,-60.36:99
-chr1	3189344	rs905135	A	C	1.64	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=6.41;MQ=59.54;MQ0=0;OQ=215.02;QD=4.30;SB=-100.13	GT:AD:DP:GL:GQ	0/1:35,15:44:-38.04,-13.26,-114.24:99
-chr1	3189859	rs2500302	T	C	241.97	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=1.47;MQ=58.92;MQ0=0;OQ=339.74;QD=8.71;SB=-144.67	GT:AD:DP:GL:GQ	0/1:23,16:37:-48.41,-11.15,-86.58:99
-chr1	3190143	rs56004439	G	A	2.42	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=8.41;MQ=57.37;MQ0=0;OQ=401.65;QD=8.37;SB=-155.21	GT:AD:DP:GL:GQ	0/1:33,15:46:-57.32,-13.87,-99.82:99
-chr1	3190754	.	G	A	32.75	PASS	AC=1;AF=0.50;AN=2;DP=65;Dels=0.00;HRun=1;HaplotypeScore=0.74;MQ=60.00;MQ0=0;OQ=1225.08;QD=18.85;SB=-426.92	GT:AD:DP:GL:GQ	0/1:29,36:64:-145.07,-19.28,-99.09:99
-chr1	3190930	rs6685398	C	A	88.85	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=1;HaplotypeScore=4.12;MQ=60.00;MQ0=0;OQ=531.21;QD=13.28;SB=-273.35	GT:AD:DP:GL:GQ	0/1:21,19:39:-68.15,-11.75,-68.57:99
-chr1	3190993	rs6690217	A	C	128.36	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.55;MQ0=0;OQ=1454.60;QD=28.52;SB=-648.68	GT:AD:DP:GL:GQ	1/1:0,51:48:-149.09,-14.47,-0.05:99
-chr1	3192051	.	C	T	11.01	PASS	AC=1;AF=0.50;AN=2;DP=50;Dels=0.00;HRun=0;HaplotypeScore=0.83;MQ=59.25;MQ0=0;OQ=927.90;QD=18.56;SB=-215.90	GT:AD:DP:GL:GQ	0/1:20,30:48:-110.53,-14.46,-70.14:99
-chr1	3192870	rs10797387	A	C	142.29	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=2;HaplotypeScore=1.89;MQ=59.80;MQ0=0;OQ=775.82;QD=12.93;SB=-322.85	GT:AD:DP:GL:GQ	0/1:30,30:54:-97.13,-16.27,-96.18:99
-chr1	3193262	.	A	G	27.47	PASS	AC=1;AF=0.50;AN=2;DP=31;Dels=0.00;HRun=0;HaplotypeScore=1.96;MQ=60.00;MQ0=0;OQ=435.09;QD=14.04;SB=-158.61	GT:AD:DP:GL:GQ	0/1:13,18:29:-55.53,-8.74,-48.24:99
-chr1	3193691	rs12024838	G	C	0.85	PASS	AC=1;AF=0.50;AN=2;DB;DP=26;Dels=0.00;HRun=1;HaplotypeScore=9.20;MQ=52.13;MQ0=0;OQ=313.95;QD=12.08;SB=-105.65	GT:AD:DP:GL:GQ	0/1:16,10:19:-40.41,-5.73,-35.18:99
-chr1	3193692	rs61759191	C	T	0.47	PASS	AC=1;AF=0.50;AN=2;DB;DP=26;Dels=0.00;HRun=0;HaplotypeScore=9.20;MQ=52.13;MQ0=0;OQ=179.56;QD=6.91;SB=-26.50	GT:AD:DP:GL:GQ	0/1:18,8:19:-26.97,-5.73,-38.66:99
-chr1	3193738	rs10909916	C	G	2.42	PASS	AC=1;AF=0.50;AN=2;DB;DP=14;Dels=0.00;HRun=1;HaplotypeScore=6.33;MQ=40.46;MQ0=4;OQ=154.87;QD=11.06;SB=-44.90	GT:AD:DP:GL:GQ	0/1:9,5:7:-20.88,-2.11,-8.99:68.77
-chr1	3194086	rs6687930	T	C	3.78	PASS	AC=1;AF=0.50;AN=2;DB;DP=19;Dels=0.00;HRun=0;HaplotypeScore=1.53;MQ=48.01;MQ0=1;OQ=344.21;QD=18.12;SB=-6.99	GT:AD:DP:GL:GQ	0/1:2,17:14:-41.92,-4.22,-8.13:39.10
-chr1	3194355	rs2134119	C	G	59.27	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=2;HaplotypeScore=4.23;MQ=54.23;MQ0=0;OQ=781.76;QD=15.95;SB=-353.76	GT:AD:DP:GL:GQ	0/1:22,27:44:-94.74,-13.28,-81.77:99
-chr1	3194394	rs2455117	T	A	339.54	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=0.63;MQ=56.31;MQ0=0;OQ=679.10;QD=15.43;SB=-276.72	GT:AD:DP:GL:GQ	0/1:22,22:42:-83.84,-12.65,-73.08:99
-chr1	3197040	rs2250291	C	T	260.09	PASS	AC=1;AF=0.50;AN=2;DB;DP=35;Dels=0.00;HRun=1;HaplotypeScore=1.57;MQ=59.34;MQ0=0;OQ=469.67;QD=13.42;SB=-216.70	GT:AD:DP:GL:GQ	0/1:18,17:34:-60.50,-10.25,-62.96:99
-chr1	3197640	rs55866132	G	A	241.93	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=1;HaplotypeScore=1.46;MQ=60.00;MQ0=0;OQ=793.46;QD=13.45;SB=-307.77	GT:AD:DP:GL:GQ	0/1:34,25:59:-100.40,-17.77,-123.91:99
-chr1	3197902	rs2500297	C	T	238.37	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=1.62;MQ=60.00;MQ0=0;OQ=756.06;QD=14.00;SB=-170.24	GT:AD:DP:GL:GQ	0/1:30,24:49:-93.65,-14.77,-87.43:99
-chr1	3198235	rs10909918	A	G	238.34	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=1.77;MQ=60.00;MQ0=0;OQ=490.49;QD=8.92;SB=-208.46	GT:AD:DP:GL:GQ	0/1:32,23:51:-67.70,-15.37,-121.94:99
-chr1	3198466	.	G	A	262.64	PASS	AC=1;AF=0.50;AN=2;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=604.73;QD=12.34;SB=-281.22	GT:AD:DP:GL:GQ	0/1:28,21:46:-77.62,-13.87,-86.11:99
-chr1	3199356	rs2500295	T	C	571.16	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.75;MQ0=0;OQ=1482.44;QD=28.51;SB=-763.58	GT:AD:DP:GL:GQ	1/1:0,52:48:-151.88,-14.48,-0.05:99
-chr1	3199491	rs4648376	G	A	14.27	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=1;HaplotypeScore=4.90;MQ=58.90;MQ0=0;OQ=2231.72;QD=37.83;SB=-1015.37	GT:AD:DP:GL:GQ	1/1:0,59:58:-226.79,-17.49,-0.03:99
-chr1	3199627	rs2500294	C	T	622.47	PASS	AC=2;AF=1.00;AN=2;DB;DP=60;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.99;MQ0=0;OQ=2326.22;QD=38.77;SB=-1091.37	GT:AD:DP:GL:GQ	1/1:0,60:58:-236.22,-17.47,-0.02:99
-chr1	3199783	rs1553291	A	G	564.79	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.57;MQ0=0;OQ=1581.83;QD=29.29;SB=-575.98	GT:AD:DP:GL:GQ	1/1:0,54:51:-161.82,-15.38,-0.05:99
-chr1	3200187	.	C	T	35.88	PASS	AC=1;AF=0.50;AN=2;DP=47;Dels=0.00;HRun=0;HaplotypeScore=3.26;MQ=59.60;MQ0=0;OQ=491.30;QD=10.45;SB=-217.71	GT:AD:DP:GL:GQ	0/1:29,18:43:-65.37,-12.96,-91.60:99
-chr1	3200810	rs4648468	A	G	447.48	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.09;MQ0=0;OQ=1398.57;QD=30.40;SB=-596.06	GT:AD:DP:GL:GQ	1/1:0,46:43:-143.47,-12.96,-0.03:99
-chr1	3201105	rs10047257	C	T	220.48	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=596.34;QD=15.29;SB=-318.86	GT:AD:DP:GL:GQ	0/1:20,19:38:-74.37,-11.45,-63.70:99
-chr1	3201318	rs4648377	A	C	538.98	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.13;MQ0=0;OQ=1615.09;QD=33.65;SB=-661.05	GT:AD:DP:GL:GQ	1/1:0,48:47:-165.11,-14.16,-0.02:99
-chr1	3201410	rs4648469	A	G	202.17	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.42;MQ0=0;OQ=1230.36;QD=30.76;SB=-513.23	GT:AD:DP:GL:GQ	1/1:0,39:38:-126.64,-11.45,-0.02:99
-chr1	3201613	rs4648470	C	T	79.16	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=1.15;MQ=60.00;MQ0=0;OQ=1081.89;QD=24.59;SB=-515.59	GT:AD:DP:GL:GQ	0/1:12,32:43:-124.44,-12.96,-36.35:99
-chr1	3202053	rs2500292	A	G	471	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.05;MQ0=0;OQ=1432.25;QD=32.55;SB=-511.16	GT:AD:DP:GL:GQ	1/1:0,44:41:-146.83,-12.35,-0.02:99
-chr1	3202174	rs2500291	C	T	728.69	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.41;MQ0=0;OQ=2429.46;QD=38.56;SB=-1207.61	GT:AD:DP:GL:GQ	1/1:1,62:61:-246.55,-18.37,-0.01:99
-chr1	3202451	rs2500290	G	C	18.43	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=2;HaplotypeScore=0.98;MQ=58.98;MQ0=0;OQ=1616.44;QD=39.43;SB=-797.54	GT:AD:DP:GL:GQ	1/1:0,41:39:-165.25,-11.76,-0.02:99
-chr1	3202782	rs1875452	C	G	157.50	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=1.36;MQ=59.54;MQ0=0;OQ=2035.33;QD=40.71;SB=-884.21	GT:AD:DP:GL:GQ	1/1:0,50:48:-207.14,-14.47,-0.02:99
-chr1	3202806	rs2500289	A	G	260.23	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=1.37;MQ=59.19;MQ0=0;OQ=1923.10;QD=33.74;SB=-724.29	GT:AD:DP:GL:GQ	1/1:0,57:54:-195.91,-16.27,-0.02:99
-chr1	3203962	rs2500288	T	C	186.16	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=1;HaplotypeScore=0.89;MQ=59.58;MQ0=0;OQ=1801.36;QD=32.75;SB=-828.32	GT:AD:DP:GL:GQ	1/1:0,55:51:-183.74,-15.36,-0.02:99
-chr1	3204030	rs7553849	T	C	226.01	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=1;HaplotypeScore=-0.06;MQ=56.20;MQ0=0;OQ=1684.70;QD=29.05;SB=-851.52	GT:AD:DP:GL:GQ	1/1:0,58:53:-172.10,-15.99,-0.05:99
-chr1	3204380	rs10442593	A	G	67.15	PASS	AC=2;AF=1.00;AN=2;DB;DP=32;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.28;MQ0=0;OQ=958.98;QD=29.97;SB=-369.57	GT:AD:DP:GL:GQ	1/1:0,32:28:-99.49,-8.43,-0.01:84.24
-chr1	3204592	rs2455144	A	G	617.75	PASS	AC=2;AF=1.00;AN=2;DB;DP=78;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.05;MQ0=0;OQ=2332.51;QD=29.90;SB=-1027.75	GT:AD:DP:GL:GQ	1/1:0,78:74:-236.91,-22.33,-0.08:99
-chr1	3204835	.	G	A	53.06	PASS	AC=1;AF=0.50;AN=2;DP=59;Dels=0.00;HRun=0;HaplotypeScore=3.06;MQ=60.00;MQ0=0;OQ=892.55;QD=15.13;SB=-296.23	GT:AD:DP:GL:GQ	0/1:30,29:55:-109.11,-16.57,-93.52:99
-chr1	3204852	rs2500287	G	T	86	PASS	AC=2;AF=1.00;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=2.99;MQ=60.00;MQ0=0;OQ=2470.97;QD=33.85;SB=-613.02	GT:AD:DP:GL:GQ	1/1:1,71:71:-250.71,-21.39,-0.03:99
-chr1	3205054	.	A	G	35.05	PASS	AC=1;AF=0.50;AN=2;DP=54;Dels=0.00;HRun=1;HaplotypeScore=2.07;MQ=60.00;MQ0=0;OQ=563.88;QD=10.44;SB=-299.62	GT:AD:DP:GL:GQ	0/1:29,25:52:-75.34,-15.67,-118.24:99
-chr1	3205180	rs2455143	A	T	124.60	PASS	AC=2;AF=1.00;AN=2;DB;DP=65;Dels=0.00;HRun=1;HaplotypeScore=2.69;MQ=58.71;MQ0=0;OQ=2383.23;QD=36.67;SB=-1091.65	GT:AD:DP:GL:GQ	1/1:0,65:64:-241.93,-19.28,-0.02:99
-chr1	3205492	rs2455142	T	G	512.17	PASS	AC=2;AF=1.00;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=49.74;MQ0=0;OQ=2083.81;QD=29.77;SB=-759.91	GT:AD:DP:GL:GQ	1/1:0,70:70:-212.03,-21.10,-0.07:99
-chr1	3205734	rs2455141	A	C	27.67	PASS	AC=2;AF=1.00;AN=2;DB;DP=26;Dels=0.00;HRun=1;HaplotypeScore=1.00;MQ=40.69;MQ0=0;OQ=504.37;QD=19.40;SB=-155.27	GT:AD:DP:GL:GQ	1/1:2,24:21:-57.94,-6.33,-3.92:24.11
-chr1	3205761	rs2455140	T	G	0.29	PASS	AC=1;AF=0.50;AN=2;DB;DP=13;Dels=0.00;HRun=1;HaplotypeScore=2.39;MQ=22.97;MQ0=1;OQ=235.32;QD=18.10;SB=-39.00	GT:AD:DP:GL:GQ	0/1:2,10:9:-29.50,-2.71,-3.64:9.30
-chr1	3205805	rs12728296	T	C	26.83	LowQual	AC=2;AF=1.00;AN=2;DB;DP=15;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=13.68;MQ0=0;QD=1.79;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,15:2:-6.09,-0.60,-0.00:6.01
-chr1	3205846	.	G	A	232.99	PASS	AC=1;AF=0.50;AN=2;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=22.36;MQ0=0;OQ=538.85;QD=13.47;SB=-237.77	GT:AD:DP:GL:GQ	0/1:19,21:21:-63.50,-6.33,-16.25:99
-chr1	3206300	rs12036713	A	G	35.28	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DB;DP=7;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=14.04;MQ0=4;QD=5.04;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,7:2:-6.94,-0.60,-0.00:6.02
-chr1	3206493	.	T	G	46.28	PASS	AC=2;AF=1.00;AN=2;DP=11;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=17.34;MQ0=4;OQ=70.14;QD=6.38;SB=-10.00	GT:AD:DP:GL:GQ	1/1:1,10:3:-10.50,-0.90,-0.00:9.03
-chr1	3206505	.	T	C	3.40	PASS	AC=1;AF=0.50;AN=2;DP=14;Dels=0.00;HRun=1;HaplotypeScore=0.67;MQ=18.66;MQ0=4;OQ=95.85;QD=6.85;SB=-10.00	GT:AD:DP:GL:GQ	0/1:5,9:5:-14.37,-1.51,-4.06:25.51
-chr1	3206506	.	A	G	5.49	PASS	AC=1;AF=0.50;AN=2;DP=14;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=18.66;MQ0=4;OQ=74.94;QD=5.35;SB=-10.00	GT:AD:DP:GL:GQ	0/1:4,9:5:-12.29,-1.51,-3.97:24.63
-chr1	3206538	.	G	A	1.11	PASS	AC=1;AF=0.50;AN=2;DP=14;Dels=0.00;HRun=0;HaplotypeScore=-0.06;MQ=18.43;MQ0=3;OQ=73.15;QD=5.23;SB=-10.00	GT:AD:DP:GL:GQ	0/1:7,7:4:-11.80,-1.21,-3.10:18.92
-chr1	3206554	rs56276321	T	G	10.51	LowQual	AC=1;AF=0.50;AN=2;DB;DP=20;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=19.60;MQ0=3;QD=0.53;SB=-10.00	GT:AD:DP:GL:GQ	0/1:15,5:8:-6.70,-2.41,-21.47:42.94
-chr1	3206566	.	T	C	28.09	PASS	AC=1;AF=0.50;AN=2;DP=21;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=22.53;MQ0=2;OQ=145.15;QD=6.91;SB=-10.00	GT:AD:DP:GL:GQ	0/1:12,9:12:-21.41,-3.62,-22.84:99
-chr1	3206567	.	A	G	6.01	PASS	AC=1;AF=0.50;AN=2;DP=21;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=22.53;MQ0=2;OQ=85.83;QD=4.09;SB=-10.00	GT:AD:DP:GL:GQ	0/1:12,9:11:-15.19,-3.32,-21.71:99
-chr1	3206577	.	C	T	7.20	PASS	AC=1;AF=0.50;AN=2;DP=21;Dels=0.00;HRun=0;HaplotypeScore=2.53;MQ=22.19;MQ0=2;OQ=218.94;QD=10.43;SB=-10.00	GT:AD:DP:GL:GQ	0/1:10,11:11:-28.49,-3.31,-13.17:98.62
-chr1	3206588	.	A	C	10.65	LowQual	AC=1;AF=0.50;AN=2;DP=18;Dels=0.00;HRun=1;HaplotypeScore=2.88;MQ=22.98;MQ0=0;QD=0.59;SB=-10.00	GT:AD:DP:GL:GQ	0/1:12,6:7:-6.42,-2.11,-14.50:43.09
-chr1	3206599	.	G	A	2.11	PASS	AC=1;AF=0.50;AN=2;DP=16;Dels=0.00;HRun=0;HaplotypeScore=0.83;MQ=22.00;MQ0=0;OQ=65.71;QD=4.11;SB=-10.00	GT:AD:DP:GL:GQ	0/1:7,9:7:-11.98,-2.12,-8.40:62.78
-chr1	3206700	.	A	G	0.69	PASS	AC=1;AF=0.50;AN=2;DP=15;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=24.64;MQ0=1;OQ=276.82;QD=18.45;SB=-10.00	GT:AD:DP:GL:GQ	0/1:1,14:12:-34.36,-3.62,-3.48:2.36
-chr1	3206761	.	A	G	22.65	LowQual	AC=1;AF=0.50;AN=2;DP=42;Dels=0.00;HRun=0;HaplotypeScore=0.63;MQ=26.60;MQ0=1;QD=0.54;SB=-10.00	GT:AD:DP:GL:GQ	0/1:32,10:32:-15.20,-9.65,-103.92:55.47
-chr1	3206926	rs61759194	A	G	113.52	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=1;HaplotypeScore=2.49;MQ=46.00;MQ0=0;OQ=649.36;QD=10.82;SB=-346.23	GT:AD:DP:GL:GQ	0/1:29,31:46:-82.08,-13.86,-88.11:99
-chr1	3207011	rs2455137	C	T	379.46	PASS	AC=2;AF=1.00;AN=2;DB;DP=56;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=48.62;MQ0=0;OQ=1983.22;QD=35.41;SB=-860.00	GT:AD:DP:GL:GQ	1/1:0,56:50:-201.92,-15.06,-0.01:99
-chr1	3207294	rs2500284	G	A	102.13	PASS	AC=2;AF=1.00;AN=2;DB;DP=67;Dels=0.00;HRun=1;HaplotypeScore=1.30;MQ=58.88;MQ0=0;OQ=2616.26;QD=39.05;SB=-1335.76	GT:AD:DP:GL:GQ	1/1:1,66:66:-265.23,-19.89,-0.02:99
-chr1	3208189	rs2455136	A	T	142.28	PASS	AC=2;AF=1.00;AN=2;DB;DP=69;Dels=0.00;HRun=1;HaplotypeScore=2.14;MQ=59.12;MQ0=0;OQ=2529.01;QD=36.65;SB=-1261.52	GT:AD:DP:GL:GQ	1/1:0,69:68:-256.50,-20.48,-0.02:99
-chr1	3208783	rs2500283	G	C	612.26	PASS	AC=2;AF=1.00;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2831.75;QD=42.91;SB=-1184.48	GT:AD:DP:GL:GQ	1/1:0,66:66:-286.78,-19.89,-0.02:99
-chr1	3209357	rs2500282	A	G	594.44	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.69;MQ0=0;OQ=1981.22;QD=32.48;SB=-526.13	GT:AD:DP:GL:GQ	1/1:0,61:61:-201.75,-18.39,-0.04:99
-chr1	3209761	rs2455135	A	G	63.74	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=2;HaplotypeScore=1.00;MQ=60.00;MQ0=0;OQ=1623.95;QD=30.64;SB=-619.36	GT:AD:DP:GL:GQ	1/1:0,53:46:-165.99,-13.85,-0.01:99
-chr1	3210242	rs2500281	G	A	563.38	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=51.01;MQ0=0;OQ=1613.10;QD=35.07;SB=-716.96	GT:AD:DP:GL:GQ	1/1:0,46:42:-164.91,-12.65,-0.01:99
-chr1	3210275	rs2455134	A	G	102.15	PASS	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=34.21;MQ0=0;OQ=983.95;QD=25.89;SB=-399.50	GT:AD:DP:GL:GQ	1/1:0,38:28:-101.99,-8.43,-0.01:84.26
-chr1	3210353	rs2455133	C	G	65.09	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=3.54;MQ=35.62;MQ0=2;OQ=1518.72;QD=29.78;SB=-723.73	GT:AD:DP:GL:GQ	1/1:4,47:41:-164.26,-12.36,-8.80:35.57
-chr1	3210943	rs2455132	T	C	34.33	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=2;HaplotypeScore=1.00;MQ=58.65;MQ0=0;OQ=1292.96;QD=28.73;SB=-546.03	GT:AD:DP:GL:GQ	1/1:1,44:43:-137.07,-12.97,-4.19:87.75
-chr1	3211298	rs56357655	G	T	236.14	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.31;MQ0=0;OQ=570.69;QD=13.59;SB=-286.33	GT:AD:DP:GL:GQ	0/1:20,22:39:-72.10,-11.75,-66.92:99
-chr1	3211481	rs4648378	A	T	264.07	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=1968.99;QD=35.80;SB=-994.60	GT:AD:DP:GL:GQ	1/1:0,55:54:-200.50,-16.27,-0.02:99
-chr1	3212566	rs3923081	A	G	604.08	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1445.27;QD=30.75;SB=-602.58	GT:AD:DP:GL:GQ	1/1:0,47:46:-148.15,-13.87,-0.04:99
-chr1	3213090	rs4648471	A	G	181.27	PASS	AC=1;AF=0.50;AN=2;DB;DP=81;Dels=0.00;HRun=0;HaplotypeScore=3.77;MQ=58.96;MQ0=0;OQ=1176.67;QD=14.53;SB=-570.90	GT:AD:DP:GL:GQ	0/1:40,41:78:-144.45,-23.50,-149.52:99
-chr1	3213140	rs4233025	C	T	288.86	PASS	AC=2;AF=1.00;AN=2;DB;DP=87;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=59.52;MQ0=0;OQ=3371.29;QD=38.75;SB=-1393.36	GT:AD:DP:GL:GQ	1/1:0,86:84:-336.13,-25.31,-0.03:99
-chr1	3213393	rs4648472	G	A	290.65	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=0.49;MQ=58.95;MQ0=0;OQ=2168.73;QD=34.98;SB=-915.32	GT:AD:DP:GL:GQ	1/1:0,61:56:-220.48,-16.87,-0.02:99
-chr1	3213624	rs4648473	A	G	299.83	PASS	AC=2;AF=1.00;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=1.82;MQ=60.00;MQ0=0;OQ=2351.35;QD=35.09;SB=-1180.73	GT:AD:DP:GL:GQ	1/1:0,67:67:-238.75,-20.18,-0.03:99
-chr1	3213815	rs4145901	A	G	578.32	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.24;MQ0=0;OQ=1913.13;QD=34.78;SB=-765.19	GT:AD:DP:GL:GQ	1/1:0,55:55:-194.92,-16.57,-0.02:99
-chr1	3214070	rs4145900	C	T	633.07	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.20;MQ0=0;OQ=2312.37;QD=39.87;SB=-883.19	GT:AD:DP:GL:GQ	1/1:0,58:58:-234.84,-17.47,-0.01:99
-chr1	3214663	rs2483258	A	G	141.81	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=2.74;MQ=58.20;MQ0=0;OQ=1545.60;QD=32.89;SB=-781.14	GT:AD:DP:GL:GQ	1/1:0,47:45:-158.16,-13.56,-0.02:99
-chr1	3215654	rs2500279	A	G	10.26	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=3;HaplotypeScore=1.05;MQ=60.00;MQ0=0;OQ=1630.84;QD=29.65;SB=-792.65	GT:AD:DP:GL:GQ	1/1:0,55:51:-166.71,-15.38,-0.04:99
-chr1	3215800	rs2500278	C	T	196.13	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=3.49;MQ=60.00;MQ0=0;OQ=2097.43;QD=35.55;SB=-1034.29	GT:AD:DP:GL:GQ	1/1:1,57:55:-213.35,-16.58,-0.03:99
-chr1	3216399	rs59127130	T	A	71.30	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=1;HaplotypeScore=3.18;MQ=59.01;MQ0=0;OQ=500.47;QD=10.65;SB=-267.66	GT:AD:DP:GL:GQ	0/1:27,19:45:-66.90,-13.56,-91.26:99
-chr1	3218505	.	G	T	13.88	PASS	AC=1;AF=0.50;AN=2;DP=40;Dels=0.00;HRun=1;HaplotypeScore=1.49;MQ=59.42;MQ0=0;OQ=562.03;QD=14.05;SB=-143.82	GT:AD:DP:GL:GQ	0/1:17,23:34:-69.73,-10.24,-51.47:99
-chr1	3223491	rs2500277	T	C	605.12	PASS	AC=1;AF=0.50;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1039.56;QD=14.85;SB=-437.57	GT:AD:DP:GL:GQ	0/1:34,36:70:-128.33,-21.09,-137.20:99
-chr1	3227069	rs2500274	G	A	733.97	PASS	AC=2;AF=1.00;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2547.84;QD=38.03;SB=-1230.64	GT:AD:DP:GL:GQ	1/1:0,67:65:-258.39,-19.58,-0.02:99
-chr1	3231689	rs2500271	A	G	65.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=1;HaplotypeScore=6.09;MQ=58.05;MQ0=0;OQ=618.77;QD=12.89;SB=-326.13	GT:AD:DP:GL:GQ	0/1:22,25:43:-80.91,-15.74,-76.88:99
-chr1	3232314	rs2500270	C	T	276.80	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=1.81;MQ=58.93;MQ0=0;OQ=890.12;QD=13.69;SB=-466.96	GT:AD:DP:GL:GQ	0/1:37,28:63:-111.27,-18.97,-132.21:99
-chr1	3232391	rs7521865	T	C	80.12	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=2;HaplotypeScore=0.89;MQ=59.46;MQ0=0;OQ=581.07;QD=12.11;SB=-302.66	GT:AD:DP:GL:GQ	0/1:25,23:45:-74.95,-13.56,-94.63:99
-chr1	3232424	rs11576578	C	T	337.83	PASS	AC=1;AF=0.50;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.37;MQ0=0;OQ=583.63;QD=16.21;SB=-245.53	GT:AD:DP:GL:GQ	0/1:18,18:35:-72.19,-10.55,-57.05:99
-chr1	3232513	rs2500268	C	T	2.29	PASS	AC=1;AF=0.50;AN=2;DB;DP=31;Dels=0.00;HRun=0;HaplotypeScore=1.31;MQ=60.10;MQ0=0;OQ=81.92;QD=2.64;SB=-51.23	GT:AD:DP:GL:GQ	0/1:26,5:28:-19.91,-8.44,-80.68:99
-chr1	3232545	rs7550743	G	C	135.04	PASS	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.41;MQ0=0;OQ=204.00;QD=6.18;SB=-89.25	GT:AD:DP:GL:GQ	0/1:25,8:26:-31.53,-7.85,-72.48:99
-chr1	3233210	rs2483268	C	T	55.97	PASS	AC=1;AF=0.50;AN=2;DB;DP=34;Dels=0.00;HRun=0;HaplotypeScore=1.31;MQ=59.45;MQ0=0;OQ=685.34;QD=20.16;SB=-292.33	GT:AD:DP:GL:GQ	0/1:13,21:31:-81.16,-9.34,-34.58:99
-chr1	3233282	rs2483269	C	T	150.37	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=1.63;MQ=59.51;MQ0=0;OQ=931.05;QD=19.81;SB=-450.84	GT:AD:DP:GL:GQ	0/1:20,27:46:-110.24,-13.86,-67.60:99
-chr1	3234117	rs2483270	T	C	92.91	PASS	AC=1;AF=0.50;AN=2;DB;DP=21;Dels=0.00;HRun=1;HaplotypeScore=1.03;MQ=54.48;MQ0=0;OQ=186.80;QD=8.90;SB=-89.99	GT:AD:DP:GL:GQ	0/1:13,8:21:-28.30,-6.33,-49.94:99
-chr1	3235659	rs56368529	T	G	3.22	PASS	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.00;HRun=1;HaplotypeScore=4.81;MQ=58.01;MQ0=0;OQ=299.04;QD=9.06;SB=-59.90	GT:AD:DP:GL:GQ	0/1:16,17:27:-41.32,-8.14,-54.29:99
-chr1	3236031	rs55929121	A	G	111.89	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=2.57;MQ=59.44;MQ0=0;OQ=382.21;QD=9.32;SB=-138.40	GT:AD:DP:GL:GQ	0/1:24,17:41:-53.86,-12.36,-96.85:99
-chr1	3237249	rs2483272	T	C	227.71	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=1.72;MQ=58.89;MQ0=0;OQ=695.19;QD=16.55;SB=-364.39	GT:AD:DP:GL:GQ	0/1:17,25:40:-84.86,-12.05,-61.97:99
-chr1	3237696	rs11577229	A	C	60.92	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=1;HaplotypeScore=1.98;MQ=59.46;MQ0=0;OQ=605.90;QD=14.09;SB=-151.87	GT:AD:DP:GL:GQ	0/1:20,23:42:-76.53,-12.66,-70.16:99
-chr1	3237725	rs2483273	C	T	273.62	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=1.31;MQ=60.00;MQ0=0;OQ=458.56;QD=11.46;SB=-253.26	GT:AD:DP:GL:GQ	0/1:23,17:37:-60.29,-11.15,-74.02:99
-chr1	3237958	rs2483274	A	G	334.60	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=60.00;MQ0=0;OQ=489.91;QD=10.42;SB=-162.48	GT:AD:DP:GL:GQ	0/1:24,23:45:-65.84,-13.57,-92.79:99
-chr1	3238582	rs56033677	T	C	21.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.00;HRun=2;HaplotypeScore=0.89;MQ=59.43;MQ0=0;OQ=296.91;QD=9.00;SB=-160.33	GT:AD:DP:GL:GQ	0/1:18,15:30:-42.02,-9.04,-67.71:99
-chr1	3238892	rs55807399	G	T	41.07	PASS	AC=1;AF=0.50;AN=2;DB;DP=16;Dels=0.00;HRun=0;HaplotypeScore=1.85;MQ=58.83;MQ0=0;OQ=103.10;QD=6.44;SB=-69.87	GT:AD:DP:GL:GQ	0/1:10,6:13:-17.51,-3.92,-27.55:99
-chr1	3239158	.	C	T	1.04	PASS	AC=1;AF=0.50;AN=2;DP=36;Dels=0.00;HRun=0;HaplotypeScore=1.15;MQ=59.48;MQ0=0;OQ=666.04;QD=18.50;SB=-35.64	GT:AD:DP:GL:GQ	0/1:16,20:35:-80.44,-10.55,-47.82:99
-chr1	3239323	.	G	A	79.22	PASS	AC=1;AF=0.50;AN=2;DP=55;Dels=0.00;HRun=0;HaplotypeScore=1.05;MQ=60.00;MQ0=0;OQ=885.68;QD=16.10;SB=-289.76	GT:AD:DP:GL:GQ	0/1:28,27:52:-107.52,-15.67,-84.40:99
-chr1	3240283	rs1889121	A	G	183.83	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=3.94;MQ=58.44;MQ0=0;OQ=423.56;QD=10.86;SB=-163.96	GT:AD:DP:GL:GQ	0/1:18,20:36:-60.24,-14.60,-67.49:99
-chr1	3241019	rs1110307	T	C	317.91	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=2.53;MQ=59.03;MQ0=0;OQ=790.39;QD=11.80;SB=-362.96	GT:AD:DP:GL:GQ	0/1:34,33:66:-102.22,-19.90,-132.82:99
-chr1	3241835	rs4648477	G	A	340.85	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=58.63;MQ0=0;OQ=880.63;QD=17.27;SB=-457.99	GT:AD:DP:GL:GQ	0/1:24,27:48:-105.81,-14.46,-75.34:99
-chr1	3241867	rs4648478	C	T	165.67	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=1;HaplotypeScore=0.81;MQ=58.72;MQ0=0;OQ=927.39;QD=18.18;SB=-291.79	GT:AD:DP:GL:GQ	0/1:22,29:49:-110.80,-14.77,-66.95:99
-chr1	3241964	rs2483278	C	T	199.87	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=4.49;MQ=58.47;MQ0=0;OQ=815.99;QD=11.33;SB=-270.80	GT:AD:DP:GL:GQ	0/1:44,28:65:-104.47,-19.59,-130.43:99
-chr1	3242641	rs10797388	C	T	87.31	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=2.82;MQ=59.66;MQ0=0;OQ=1468.23;QD=21.91;SB=-716.28	GT:AD:DP:GL:GQ	0/1:24,43:63:-169.09,-18.98,-69.99:99
-chr1	3243022	rs4648479	C	G	270.01	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=0.33;MQ=59.32;MQ0=0;OQ=1259.62;QD=18.52;SB=-604.54	GT:AD:DP:GL:GQ	0/1:33,35:68:-149.74,-20.49,-145.47:99
-chr1	3243475	rs2500264	A	G	371.99	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=1.79;MQ=57.70;MQ0=0;OQ=965.24;QD=13.04;SB=-435.59	GT:AD:DP:GL:GQ	0/1:35,39:72:-121.52,-21.71,-132.46:99
-chr1	3243538	rs2500263	C	T	449.25	PASS	AC=1;AF=0.50;AN=2;DB;DP=81;Dels=0.00;HRun=0;HaplotypeScore=1.07;MQ=59.43;MQ0=0;OQ=1163.15;QD=14.36;SB=-551.30	GT:AD:DP:GL:GQ	0/1:44,37:79:-143.40,-23.80,-157.59:99
-chr1	3243563	rs10909933	A	T	21.76	PASS	AC=1;AF=0.50;AN=2;DB;DP=79;Dels=0.00;HRun=1;HaplotypeScore=5.38;MQ=58.82;MQ0=0;OQ=1256.33;QD=15.90;SB=-624.35	GT:AD:DP:GL:GQ	0/1:39,40:77:-152.11,-23.19,-142.90:99
-chr1	3243699	rs7516137	C	G	384.73	PASS	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=58.95;MQ0=1;OQ=1414.58;QD=19.38;SB=-612.10	GT:AD:DP:GL:GQ	0/1:31,42:71:-166.15,-21.41,-133.01:99
-chr1	3243749	rs7516150	C	T	110.03	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=1;HaplotypeScore=4.27;MQ=59.28;MQ0=0;OQ=1059.88;QD=16.56;SB=-511.08	GT:AD:DP:GL:GQ	0/1:31,33:63:-128.25,-18.98,-110.55:99
-chr1	3243801	rs7552331	G	A	50.88	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=2;HaplotypeScore=3.37;MQ=59.68;MQ0=0;OQ=1395.05;QD=19.38;SB=-586.45	GT:AD:DP:GL:GQ	0/1:31,41:71:-164.18,-21.39,-100.20:99
-chr1	3244201	rs1572038	G	A	223.38	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=2.63;MQ=60.00;MQ0=0;OQ=849.89;QD=14.40;SB=-320.28	GT:AD:DP:GL:GQ	0/1:33,26:58:-105.75,-17.48,-105.23:99
-chr1	3244229	rs1572037	T	C	103.02	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=2;HaplotypeScore=1.14;MQ=59.74;MQ0=0;OQ=759.65;QD=10.70;SB=-211.19	GT:AD:DP:GL:GQ	0/1:40,31:70:-100.34,-21.09,-160.53:99
-chr1	3245634	.	G	A	2.67	PASS	AC=1;AF=0.50;AN=2;DP=53;Dels=0.00;HRun=2;HaplotypeScore=5.38;MQ=59.21;MQ0=0;OQ=768.53;QD=14.50;SB=-362.88	GT:AD:DP:GL:GQ	0/1:27,25:49:-94.91,-14.77,-78.82:99
-chr1	3245968	rs1999527	C	A	270.72	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.55;MQ0=0;OQ=832.76;QD=16.33;SB=-309.70	GT:AD:DP:GL:GQ	0/1:20,31:46:-100.42,-13.86,-57.62:99
-chr1	3246110	rs1999526	G	A	145.25	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=3.11;MQ=60.00;MQ0=0;OQ=722.36;QD=13.89;SB=-206.02	GT:AD:DP:GL:GQ	0/1:25,26:46:-91.77,-16.25,-79.35:99
-chr1	3247225	rs944819	T	G	210.34	PASS	AC=1;AF=0.50;AN=2;DB;DP=86;Dels=0.00;HRun=1;HaplotypeScore=1.59;MQ=59.73;MQ0=0;OQ=1004.82;QD=11.68;SB=-427.67	GT:AD:DP:GL:GQ	0/1:50,36:86:-129.67,-25.90,-183.72:99
-chr1	3247599	rs2483281	C	T	240.23	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=1;HaplotypeScore=0.67;MQ=58.98;MQ0=0;OQ=504.82;QD=12.31;SB=-180.16	GT:AD:DP:GL:GQ	0/1:24,17:38:-65.21,-11.45,-77.36:99
-chr1	3251376	rs4648379	C	T	354.38	PASS	AC=1;AF=0.50;AN=2;DB;DP=77;Dels=0.00;HRun=1;HaplotypeScore=1.15;MQ=59.76;MQ0=0;OQ=1302.21;QD=16.91;SB=-654.31	GT:AD:DP:GL:GQ	0/1:37,40:76:-156.40,-22.89,-133.27:99
-chr1	3251542	rs4415513	C	T	583.60	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.25;MQ0=0;OQ=1033.27;QD=16.67;SB=-449.45	GT:AD:DP:GL:GQ	0/1:31,31:61:-125.00,-18.39,-98.88:99
-chr1	3252129	rs12564920	A	G	258.43	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=59.38;MQ0=0;OQ=448.15;QD=9.96;SB=-222.39	GT:AD:DP:GL:GQ	0/1:23,22:39:-59.86,-11.76,-74.90:99
-chr1	3253722	.	G	A	5.82	PASS	AC=1;AF=0.50;AN=2;DP=51;Dels=0.00;HRun=2;HaplotypeScore=0.47;MQ=60.00;MQ0=0;OQ=951.14;QD=18.65;SB=-376.90	GT:AD:DP:GL:GQ	0/1:22,29:50:-113.46,-15.06,-78.22:99
-chr1	3254050	rs2483289	A	C	189.02	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=2;HaplotypeScore=0.83;MQ=60.00;MQ0=0;OQ=800.56;QD=13.80;SB=-367.58	GT:AD:DP:GL:GQ	0/1:28,30:55:-99.91,-16.57,-92.54:99
-chr1	3254157	rs2500257	A	G	11.73	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=2;HaplotypeScore=3.42;MQ=59.13;MQ0=0;OQ=570.29;QD=13.26;SB=-176.97	GT:AD:DP:GL:GQ	0/1:21,22:40:-72.37,-12.05,-79.78:99
-chr1	3257948	.	G	C	98.91	DPFilter;Indel	AC=1;AF=0.50;AN=2;DP=14;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=35.14;MQ0=0;QD=7.07;SB=14.07	GT:AD:DP:GL:GQ	0/1:10,4:12:-16.79,-3.62,-31.08:99
-chr1	3257994	rs60920916	T	C	0.33	PASS	AC=1;AF=0.50;AN=2;DB;DP=17;Dels=0.00;HRun=2;HaplotypeScore=2.63;MQ=42.15;MQ0=0;OQ=77.87;QD=4.58;SB=20.08	GT:AD:DP:GL:GQ	0/1:13,4:15:-15.59,-4.52,-39.62:99
-chr1	3258005	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=20;Dels=0.00;HRun=3;HaplotypeScore=6.10;MQ=42.12;MQ0=0;OQ=65.85;QD=3.29;SB=23.09	GT:AD:DP:GL:GQ	0/1:16,4:17:-15.00,-5.13,-47.65:98.69
-chr1	3258920	.	C	T	2.85	PASS	AC=1;AF=0.50;AN=2;DP=43;Dels=0.00;HRun=3;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=553.46;QD=12.87;SB=-213.92	GT:AD:DP:GL:GQ	0/1:24,19:40:-70.69,-12.06,-71.24:99
-chr1	3262401	rs7550526	G	A	60.02	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=2.60;MQ=58.89;MQ0=0;OQ=1567.02;QD=37.31;SB=-629.85	GT:AD:DP:GL:GQ	1/1:0,42:40:-160.30,-12.05,-0.01:99
-chr1	3262685	rs946759	C	A	62.68	PASS	AC=2;AF=1.00;AN=2;DB;DP=32;Dels=0.00;HRun=0;HaplotypeScore=-0.12;MQ=57.75;MQ0=0;OQ=630.41;QD=19.70;SB=-314.39	GT:AD:DP:GL:GQ	1/1:3,29:21:-69.14,-6.33,-2.51:38.17
-chr1	3262923	rs946758	G	A	287.49	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=0.91;MQ=59.58;MQ0=0;OQ=2113.36;QD=38.42;SB=-1046.71	GT:AD:DP:GL:GQ	1/1:0,55:53:-214.93,-15.96,-0.01:99
-chr1	3263976	rs55805251	C	T	94.04	PASS	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=0.97;MQ=58.59;MQ0=0;OQ=518.72;QD=15.72;SB=-142.59	GT:AD:DP:GL:GQ	0/1:15,18:30:-64.20,-9.04,-43.17:99
-chr1	3264566	rs2483265	T	C	43.57	PASS	AC=2;AF=1.00;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=-0.06;MQ=60.00;MQ0=0;OQ=868.82;QD=26.33;SB=-460.17	GT:AD:DP:GL:GQ	1/1:0,33:29:-90.50,-8.75,-0.03:87.17
-chr1	3265009	rs12748963	C	T	26.51	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=1;HaplotypeScore=5.21;MQ=58.97;MQ0=0;OQ=826.30;QD=18.36;SB=-347.35	GT:AD:DP:GL:GQ	0/1:19,25:43:-98.87,-12.96,-59.86:99
-chr1	3266234	rs12073172	G	A	592.78	PASS	AC=2;AF=1.00;AN=2;DB;DP=31;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.50;MQ0=0;OQ=1102.37;QD=35.56;SB=-562.26	GT:AD:DP:GL:GQ	1/1:0,31:30:-113.84,-9.05,-0.02:90.27
-chr1	3266600	rs2500280	G	C	2.70	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=8.93;MQ=59.31;MQ0=0;OQ=2375.28;QD=38.94;SB=-992.26	GT:AD:DP:GL:GQ	1/1:0,60:56:-241.13,-16.87,-0.02:99
-chr1	3266936	.	G	A	52.38	PASS	AC=1;AF=0.50;AN=2;DP=49;Dels=0.00;HRun=0;HaplotypeScore=1.54;MQ=59.62;MQ0=0;OQ=518.77;QD=10.59;SB=-162.22	GT:AD:DP:GL:GQ	0/1:32,17:48:-69.63,-14.47,-101.23:99
-chr1	3267606	rs884308	C	T	94.95	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=60.00;MQ0=0;OQ=1579.42;QD=39.49;SB=-771.63	GT:AD:DP:GL:GQ	1/1:0,40:40:-161.54,-12.05,-0.01:99
-chr1	3268390	rs11583116	G	A	130.53	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=3.94;MQ=58.33;MQ0=0;OQ=690.56;QD=13.81;SB=-242.25	GT:AD:DP:GL:GQ	0/1:26,24:43:-85.30,-12.96,-65.77:99
-chr1	3269184	rs7524171	A	G	11.38	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=1;HaplotypeScore=5.01;MQ=59.60;MQ0=0;OQ=1781.26;QD=30.71;SB=-880.26	GT:AD:DP:GL:GQ	1/1:0,58:53:-181.75,-15.98,-0.04:99
-chr1	3269881	rs2500262	T	C	201.27	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=1.45;MQ=59.11;MQ0=0;OQ=1534.16;QD=29.50;SB=-546.01	GT:AD:DP:GL:GQ	1/1:0,52:49:-157.05,-14.78,-0.05:99
-chr1	3271322	.	C	T	58.72	PASS	AC=1;AF=0.50;AN=2;DP=31;Dels=0.00;HRun=0;HaplotypeScore=1.80;MQ=59.40;MQ0=0;OQ=375.26;QD=12.11;SB=-208.89	GT:AD:DP:GL:GQ	0/1:17,14:28:-49.26,-8.45,-45.56:99
-chr1	3273388	rs4648485	G	A	602.36	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.66;MQ0=0;OQ=2075.89;QD=37.74;SB=-912.72	GT:AD:DP:GL:GQ	1/1:0,55:53:-211.19,-15.97,-0.02:99
-chr1	3275010	rs4648486	C	T	123.41	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=1;HaplotypeScore=1.32;MQ=58.75;MQ0=0;OQ=2039.90;QD=39.23;SB=-914.69	GT:AD:DP:GL:GQ	1/1:0,52:51:-207.59,-15.36,-0.01:99
-chr1	3275164	rs4648487	T	C	21.75	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=5.20;MQ=59.14;MQ0=0;OQ=1843.56;QD=34.14;SB=-799.67	GT:AD:DP:GL:GQ	1/1:0,54:53:-187.96,-15.97,-0.02:99
-chr1	3275488	rs6424073	G	A	234.48	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=2488.63;QD=39.50;SB=-1214.11	GT:AD:DP:GL:GQ	1/1:0,63:63:-252.47,-18.98,-0.02:99
-chr1	3277411	rs12138292	A	G	1.83	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=4.96;MQ=56.17;MQ0=0;OQ=1416.27;QD=24.85;SB=-414.15	GT:AD:DP:GL:GQ	1/1:0,57:48:-145.28,-14.50,-0.07:99
-chr1	3279384	rs12135987	G	A	273.93	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=0.83;MQ=59.39;MQ0=0;OQ=2572.74;QD=37.83;SB=-927.33	GT:AD:DP:GL:GQ	1/1:0,68:65:-260.88,-19.58,-0.02:99
-chr1	3279467	rs6688949	T	C	3.82	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=1;HaplotypeScore=2.45;MQ=57.66;MQ0=0;OQ=1297.10;QD=25.94;SB=-450.26	GT:AD:DP:GL:GQ	1/1:0,50:40:-133.33,-12.06,-0.03:99
-chr1	3279589	rs1333190	C	T	668.27	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.62;MQ0=0;OQ=1807.78;QD=36.89;SB=-784.69	GT:AD:DP:GL:GQ	1/1:0,49:46:-184.37,-13.86,-0.01:99
-chr1	3279831	rs1333189	C	T	229.74	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=57.13;MQ0=0;OQ=1483.34;QD=36.18;SB=-765.52	GT:AD:DP:GL:GQ	1/1:0,40:38:-151.93,-11.45,-0.01:99
-chr1	3280999	rs2249860	A	C	81.57	PASS	AC=2;AF=1.00;AN=2;DB;DP=43;Dels=0.00;HRun=2;HaplotypeScore=0.32;MQ=57.93;MQ0=0;OQ=1454.60;QD=33.83;SB=-752.07	GT:AD:DP:GL:GQ	1/1:0,43:42:-149.06,-12.65,-0.01:99
-chr1	3281067	rs2368593	G	T	64.28	PASS	AC=2;AF=1.00;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=3.86;MQ=58.09;MQ0=0;OQ=2257.03;QD=31.79;SB=-1064.90	GT:AD:DP:GL:GQ	1/1:0,70:66:-229.32,-19.89,-0.04:99
-chr1	3281249	.	G	A	160.30	PASS	AC=1;AF=0.50;AN=2;DP=53;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=59.53;MQ0=0;OQ=717.46;QD=13.54;SB=-318.84	GT:AD:DP:GL:GQ	0/1:27,26:46:-88.90,-13.87,-75.19:99
-chr1	3282736	rs4648488	C	T	347.36	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=1.56;MQ=59.52;MQ0=0;OQ=841.46;QD=17.53;SB=-434.81	GT:AD:DP:GL:GQ	0/1:21,27:46:-101.29,-13.86,-70.83:99
-chr1	3283525	rs4648489	A	G	474.54	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.66;MQ0=0;OQ=1662.64;QD=30.23;SB=-834.46	GT:AD:DP:GL:GQ	1/1:0,55:53:-169.90,-15.99,-0.06:99
-chr1	3284832	rs1538693	G	A	695.45	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1980.96;QD=38.10;SB=-939.35	GT:AD:DP:GL:GQ	1/1:0,52:51:-201.70,-15.37,-0.02:99
-chr1	3285724	.	G	A	0.22	PASS	AC=1;AF=0.50;AN=2;DP=8;Dels=0.00;HRun=1;HaplotypeScore=6.56;MQ=21.51;MQ0=1;OQ=72.03;QD=9.00;SB=-40.54	GT:AD:DP:GL:GQ	0/1:2,5:4:-11.69,-1.21,-3.37:21.64
-chr1	3285990	.	G	A	25.35	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=30;Dels=0.00;HRun=1;HaplotypeScore=5.35;MQ=15.41;MQ0=12;QD=0.85;SB=-32.52	GT:AD:DP:GL:GQ	0/1:21,9:5:-7.32,-1.51,-9.51:58.18
-chr1	3286144	.	A	G	36.06	LowQual	AC=1;AF=0.50;AN=2;DP=8;Dels=0.00;HRun=0;HaplotypeScore=1.30;MQ=14.48;MQ0=3;QD=4.51;SB=-6.99	GT:AD:DP:GL:GQ	0/1:4,3:3:-7.79,-0.90,-4.06:31.52
-chr1	3286152	.	A	C	0.09	PASS	AC=2;AF=1.00;AN=2;DP=7;Dels=0.00;HRun=3;HaplotypeScore=0.16;MQ=27.22;MQ0=3;OQ=114.38;QD=16.34;SB=-46.01	GT:AD:DP:GL:GQ	1/1:0,7:4:-14.97,-1.20,-0.00:12.04
-chr1	3286284	.	G	A	36.93	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=29;Dels=0.00;HRun=1;HaplotypeScore=3.77;MQ=31.49;MQ0=4;QD=1.27;SB=-29.53	GT:AD:DP:GL:GQ	0/1:22,7:15:-11.50,-4.52,-41.17:69.76
-chr1	3286312	.	G	A	19.94	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=34;Dels=0.00;HRun=1;HaplotypeScore=9.31;MQ=28.36;MQ0=5;QD=0.59;SB=-24.50	GT:AD:DP:GL:GQ	0/1:27,6:17:-10.40,-5.13,-47.64:52.73
-chr1	3286320	.	C	A	227.39	HARD_TO_VALIDATE;Indel	AC=1;AF=0.50;AN=2;DP=38;Dels=0.00;HRun=0;HaplotypeScore=8.75;MQ=31.04;MQ0=4;QD=5.98;SB=-25.91	GT:AD:DP:GL:GQ	0/1:27,11:20:-32.05,-6.03,-35.21:99
-chr1	3286354	.	G	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=30;Dels=0.00;HRun=1;HaplotypeScore=6.21;MQ=33.14;MQ0=5;OQ=87.60;QD=2.92;SB=-62.36	GT:AD:DP:GL:GQ	0/1:22,7:14:-19.10,-7.05,-34.67:99
-chr1	3286558	rs61043152	G	A	1.11	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=8.99;MQ=54.01;MQ0=1;OQ=487.76;QD=11.09;SB=-75.56	GT:AD:DP:GL:GQ	0/1:23,21:40:-64.12,-12.06,-79.70:99
-chr1	3286811	.	T	C	44.59	PASS	AC=2;AF=1.00;AN=2;DP=57;Dels=0.00;HRun=0;HaplotypeScore=2.88;MQ=60.00;MQ0=0;OQ=1964.33;QD=34.46;SB=-944.38	GT:AD:DP:GL:GQ	1/1:0,57:56:-200.04,-16.87,-0.02:99
-chr1	3287141	rs11584942	G	A	391.20	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.63;MQ=59.82;MQ0=0;OQ=780.63;QD=15.31;SB=-324.32	GT:AD:DP:GL:GQ	0/1:25,26:47:-95.51,-14.16,-75.83:99
-chr1	3287246	rs11584967	G	A	573.67	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.25;MQ0=0;OQ=877.40;QD=15.67;SB=-384.91	GT:AD:DP:GL:GQ	0/1:28,28:54:-107.29,-16.27,-98.41:99
-chr1	3287659	rs4648490	A	C	117.52	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=3.24;MQ=58.26;MQ0=0;OQ=1692.37;QD=33.18;SB=-840.06	GT:AD:DP:GL:GQ	1/1:0,51:50:-172.85,-15.06,-0.02:99
-chr1	3290667	rs868688	C	T	279.51	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=2.13;MQ=58.44;MQ0=0;OQ=2018.08;QD=35.40;SB=-933.25	GT:AD:DP:GL:GQ	1/1:0,57:52:-205.41,-15.67,-0.02:99
-chr1	3290990	rs868689	T	G	679.66	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.27;MQ0=0;OQ=1815.91;QD=31.86;SB=-898.65	GT:AD:DP:GL:GQ	1/1:0,57:52:-185.19,-15.66,-0.02:99
-chr1	3292591	rs11810266	C	G	73.61	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=1.75;MQ=59.54;MQ0=0;OQ=822.36;QD=20.06;SB=-350.43	GT:AD:DP:GL:GQ	0/1:18,23:40:-97.58,-12.06,-74.61:99
-chr1	3293306	rs2245703	T	C	622.87	PASS	AC=2;AF=1.00;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2385.34;QD=35.60;SB=-962.70	GT:AD:DP:GL:GQ	1/1:0,67:67:-242.14,-20.18,-0.02:99
-chr1	3293627	rs6676024	C	T	186.96	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=58.97;MQ0=0;OQ=1016.67;QD=17.23;SB=-303.79	GT:AD:DP:GL:GQ	0/1:29,30:58:-122.43,-17.48,-92.51:99
-chr1	3293798	rs2065525	C	G	62.72	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=1;HaplotypeScore=0.48;MQ=58.34;MQ0=0;OQ=2298.73;QD=40.33;SB=-651.91	GT:AD:DP:GL:GQ	1/1:0,56:54:-233.47,-16.27,-0.01:99
-chr1	3294876	rs17399998	C	T	445.68	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.75;MQ0=0;OQ=1142.20;QD=15.23;SB=-563.39	GT:AD:DP:GL:GQ	0/1:40,35:73:-139.51,-22.00,-126.39:99
-chr1	3295312	rs6687463	A	G	1.44	PASS	AC=2;AF=1.00;AN=2;DB;DP=43;Dels=0.00;HRun=1;HaplotypeScore=5.24;MQ=59.03;MQ0=0;OQ=1175.21;QD=27.33;SB=-477.09	GT:AD:DP:GL:GQ	1/1:0,42:38:-121.14,-11.46,-0.04:99
-chr1	3295326	.	C	A	16.33	PASS	AC=1;AF=0.50;AN=2;DP=37;Dels=0.00;HRun=1;HaplotypeScore=1.78;MQ=58.87;MQ0=0;OQ=469.13;QD=12.68;SB=-130.80	GT:AD:DP:GL:GQ	0/1:19,18:34:-60.44,-10.25,-57.03:99
-chr1	3295820	.	C	T	40.94	PASS	AC=1;AF=0.50;AN=2;DP=48;Dels=0.00;HRun=1;HaplotypeScore=0.79;MQ=60.00;MQ0=0;OQ=844.76;QD=17.60;SB=-369.85	GT:AD:DP:GL:GQ	0/1:21,27:46:-101.62,-13.86,-70.72:99
-chr1	3296384	rs6686140	C	A	6.91	PASS	AC=1;AF=0.50;AN=2;DB;DP=28;Dels=0.00;HRun=0;HaplotypeScore=6.50;MQ=59.17;MQ0=0;OQ=324.87;QD=11.60;SB=-121.49	GT:AD:DP:GL:GQ	0/1:8,20:20:-41.81,-6.04,-18.74:99
-chr1	3296715	rs2151350	T	G	0.13	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=4;HaplotypeScore=2.18;MQ=58.99;MQ0=0;OQ=1168.63;QD=25.41;SB=-611.86	GT:AD:DP:GL:GQ	1/1:0,46:39:-120.49,-11.76,-0.04:99
-chr1	3297308	rs2493281	A	G	8.42	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=1;HaplotypeScore=1.21;MQ=58.18;MQ0=1;OQ=1041.73;QD=26.04;SB=-499.54	GT:AD:DP:GL:GQ	1/1:1,39:33:-107.79,-9.95,-0.03:99
-chr1	3297606	rs2493278	T	C	732.40	PASS	AC=2;AF=1.00;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.88;MQ0=0;OQ=2573.66;QD=35.26;SB=-1043.85	GT:AD:DP:GL:GQ	1/1:0,73:73:-260.97,-21.99,-0.02:99
-chr1	3298358	rs2493268	T	C	154.09	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=1;HaplotypeScore=1.44;MQ=58.22;MQ0=0;OQ=1688.23;QD=33.76;SB=-851.05	GT:AD:DP:GL:GQ	1/1:0,50:48:-172.42,-14.46,-0.02:99
-chr1	3298817	rs12139767	G	C	583.17	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.72;MQ0=0;OQ=898.96;QD=13.62;SB=-383.19	GT:AD:DP:GL:GQ	0/1:39,27:65:-112.80,-19.62,-153.47:99
-chr1	3299326	rs35864014	G	A	497.53	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.73;MQ0=0;OQ=1037.02;QD=15.25;SB=-535.48	GT:AD:DP:GL:GQ	0/1:36,32:68:-127.47,-20.48,-131.88:99
-chr1	3301121	rs6702992	C	T	313.10	PASS	AC=1;AF=0.50;AN=2;DB;DP=19;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.53;MQ0=0;OQ=194.21;QD=10.22;SB=-113.94	GT:AD:DP:GL:GQ	0/1:12,7:19:-28.43,-5.72,-42.63:99
-chr1	3301284	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=64;Dels=0.00;HRun=11;HaplotypeScore=19.15;MQ=56.72;MQ0=0;OQ=88.35;QD=1.38;SB=59.21	GT:AD:DP:GL:GQ	0/1:53,11:56:-28.99,-16.87,-158.63:99
-chr1	3301891	rs883678	C	G	91.33	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=59.56;MQ0=0;OQ=812.38;QD=19.34;SB=-299.58	GT:AD:DP:GL:GQ	0/1:20,22:42:-97.18,-12.66,-83.21:99
-chr1	3302116	rs17822575	T	G	316.41	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=1;HaplotypeScore=1.00;MQ=59.54;MQ0=0;OQ=510.49;QD=12.45;SB=-250.83	GT:AD:DP:GL:GQ	0/1:20,21:40:-66.39,-12.05,-67.05:99
-chr1	3302296	rs10909937	C	T	502.18	PASS	AC=2;AF=1.00;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1321.67;QD=36.71;SB=-625.01	GT:AD:DP:GL:GQ	1/1:0,36:34:-135.76,-10.24,-0.01:99
-chr1	3302524	rs56378103	C	T	103.94	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=2.67;MQ=58.71;MQ0=0;OQ=1572.33;QD=29.12;SB=-689.92	GT:AD:DP:GL:GQ	1/1:0,52:42:-160.84,-12.66,-0.02:99
-chr1	3302527	.	C	T	6.09	PASS	AC=1;AF=0.50;AN=2;DP=56;Dels=0.00;HRun=0;HaplotypeScore=5.35;MQ=58.33;MQ0=0;OQ=1011.78;QD=18.07;SB=-471.49	GT:AD:DP:GL:GQ	0/1:25,31:52:-120.14,-15.67,-71.42:99
-chr1	3302823	rs12726710	C	T	452.04	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.58;MQ0=0;OQ=952.26;QD=17.31;SB=-305.83	GT:AD:DP:GL:GQ	0/1:25,30:55:-115.09,-16.58,-80.89:99
-chr1	3303142	rs7535965	G	A	141.77	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=58.64;MQ0=0;OQ=1848.10;QD=38.50;SB=-836.62	GT:AD:DP:GL:GQ	1/1:0,48:47:-188.41,-14.16,-0.02:99
-chr1	3304456	rs17822581	A	G	359.73	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=1.90;MQ=58.93;MQ0=0;OQ=1113.18;QD=17.13;SB=-574.04	GT:AD:DP:GL:GQ	0/1:27,38:62:-133.28,-18.68,-95.39:99
-chr1	3304922	rs57432749	C	T	181.83	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=1;HaplotypeScore=2.15;MQ=59.75;MQ0=0;OQ=993.31;QD=13.07;SB=-496.07	GT:AD:DP:GL:GQ	0/1:41,34:74:-127.49,-24.88,-150.46:99
-chr1	3305219	rs12144338	C	T	131.32	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=2.04;MQ=59.67;MQ0=0;OQ=987.68;QD=17.33;SB=-284.79	GT:AD:DP:GL:GQ	0/1:26,31:53:-118.03,-15.98,-72.20:99
-chr1	3305551	.	G	A	103.37	PASS	AC=1;AF=0.50;AN=2;DP=69;Dels=0.00;HRun=0;HaplotypeScore=2.10;MQ=59.39;MQ0=0;OQ=1099.92;QD=15.94;SB=-511.04	GT:AD:DP:GL:GQ	0/1:36,33:68:-133.77,-20.49,-112.10:99
-chr1	3305678	rs7542793	G	A	440.42	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=59.35;MQ0=0;OQ=1064.35;QD=16.63;SB=-455.47	GT:AD:DP:GL:GQ	0/1:30,34:62:-128.41,-18.69,-93.40:99
-chr1	3305692	rs12737284	G	A	493.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.31;MQ0=0;OQ=901.95;QD=14.79;SB=-398.19	GT:AD:DP:GL:GQ	0/1:31,30:59:-111.27,-17.79,-96.32:99
-chr1	3305845	rs12117228	T	C	284.95	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=1.26;MQ=60.00;MQ0=0;OQ=892.28;QD=11.74;SB=-260.21	GT:AD:DP:GL:GQ	0/1:38,38:73:-114.51,-22.00,-150.21:99
-chr1	3305873	rs7551733	C	G	174.37	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=1;HaplotypeScore=2.43;MQ=60.00;MQ0=0;OQ=1089.18;QD=17.02;SB=-530.69	GT:AD:DP:GL:GQ	0/1:32,32:62:-130.89,-18.69,-134.52:99
-chr1	3306535	rs10909939	T	C	528.42	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=956.73;QD=17.08;SB=-375.64	GT:AD:DP:GL:GQ	0/1:23,33:55:-115.53,-16.57,-90.24:99
-chr1	3306616	rs10909940	G	A	39.73	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=1;HaplotypeScore=1.16;MQ=60.00;MQ0=0;OQ=1181.64;QD=23.63;SB=-497.15	GT:AD:DP:GL:GQ	0/1:15,35:49:-136.22,-14.77,-45.61:99
-chr1	3306995	rs12743248	G	A	92.64	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=2;HaplotypeScore=0.32;MQ=59.54;MQ0=0;OQ=921.67;QD=15.36;SB=-465.48	GT:AD:DP:GL:GQ	0/1:29,31:55:-112.03,-16.58,-86.62:99
-chr1	3307093	rs12747145	G	A	172.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=2.53;MQ=59.50;MQ0=0;OQ=526.33;QD=14.23;SB=-229.52	GT:AD:DP:GL:GQ	0/1:18,17:34:-69.44,-13.52,-51.06:99
-chr1	3307640	rs6424074	A	G	354.64	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=59.52;MQ0=0;OQ=483.77;QD=10.08;SB=-196.29	GT:AD:DP:GL:GQ	0/1:28,20:48:-66.12,-14.46,-114.20:99
-chr1	3307747	rs6424075	G	T	374.77	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=1.73;MQ=59.24;MQ0=0;OQ=884.55;QD=14.04;SB=-359.35	GT:AD:DP:GL:GQ	0/1:31,32:59:-109.52,-17.78,-88.61:99
-chr1	3308193	rs7551796	G	A	363.24	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=0;HaplotypeScore=1.66;MQ=59.69;MQ0=0;OQ=1293.28;QD=17.24;SB=-465.48	GT:AD:DP:GL:GQ	0/1:35,40:71:-154.00,-21.39,-119.84:99
-chr1	3308294	rs11576794	C	T	278.53	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=4.09;MQ=57.73;MQ0=0;OQ=809.01;QD=14.19;SB=-410.42	GT:AD:DP:GL:GQ	0/1:31,26:56:-101.07,-16.88,-98.51:99
-chr1	3308295	rs11577526	A	G	45.03	PASS	AC=2;AF=1.00;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=4.09;MQ=57.69;MQ0=0;OQ=1861.63;QD=33.24;SB=-741.99	GT:AD:DP:GL:GQ	1/1:0,56:55:-189.77,-16.57,-0.03:99
-chr1	3308392	rs11578011	T	C	195.41	PASS	AC=2;AF=1.00;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=2.93;MQ=59.80;MQ0=0;OQ=1812.46;QD=30.21;SB=-790.65	GT:AD:DP:GL:GQ	1/1:0,59:59:-188.08,-20.60,-3.25:99
-chr1	3308574	rs5024246	G	A	333.57	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.97;MQ0=0;OQ=876.20;QD=19.47;SB=-325.85	GT:AD:DP:GL:GQ	0/1:19,26:45:-104.46,-13.56,-63.60:99
-chr1	3308629	rs10909942	C	G	63.18	PASS	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.03;HRun=0;HaplotypeScore=2.61;MQ=58.12;MQ0=0;OQ=1384.57;QD=36.44;SB=-590.68	GT:AD:DP:GL:GQ	1/1:0,37:37:-142.07,-10.86,-0.03:99
-chr1	3308702	rs56148282	G	A	636.18	Indel	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=59.59;MQ0=0;QD=19.28;SB=-248.56	GT:AD:DP:GL:GQ	0/1:12,21:30:-75.94,-9.04,-37.32:99
-chr1	3308921	rs1889124	A	G	16.57	PASS	AC=2;AF=1.00;AN=2;DB;DP=36;Dels=0.00;HRun=1;HaplotypeScore=1.23;MQ=58.83;MQ0=0;OQ=1016.70;QD=28.24;SB=-485.51	GT:AD:DP:GL:GQ	1/1:0,36:33:-105.29,-9.95,-0.03:99
-chr1	3309492	rs4353034	G	A	0.09	PASS	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=16.76;MQ=57.87;MQ0=0;OQ=200.25;QD=6.07;SB=-37.01	GT:AD:DP:GL:GQ	0/1:23,8:31:-40.02,-16.71,-79.20:99
-chr1	3309534	rs12562397	C	T	380.45	PASS	AC=2;AF=1.00;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.05;MQ0=0;OQ=1380.14;QD=38.34;SB=-494.65	GT:AD:DP:GL:GQ	1/1:0,36:35:-141.61,-10.54,-0.01:99
-chr1	3309541	rs12562399	C	G	28.59	PASS	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=59.39;MQ0=0;OQ=1543.76;QD=40.63;SB=-639.90	GT:AD:DP:GL:GQ	1/1:0,38:37:-157.97,-11.15,-0.01:99
-chr1	3309637	rs4471209	G	A	344.14	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=59.51;MQ0=0;OQ=382.91;QD=10.08;SB=-184.19	GT:AD:DP:GL:GQ	0/1:25,13:37:-52.73,-11.16,-73.72:99
-chr1	3309732	rs6664364	C	T	134.87	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=58.91;MQ0=0;OQ=1699.09;QD=36.15;SB=-803.59	GT:AD:DP:GL:GQ	1/1:0,47:44:-173.51,-13.26,-0.01:99
-chr1	3309737	rs6664369	C	T	130.20	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.53;MQ0=0;OQ=1859.42;QD=37.95;SB=-907.23	GT:AD:DP:GL:GQ	1/1:0,49:48:-189.54,-14.46,-0.02:99
-chr1	3309924	rs6669407	A	G	328.05	PASS	AC=2;AF=1.00;AN=2;DB;DP=34;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=995.86;QD=29.29;SB=-353.80	GT:AD:DP:GL:GQ	1/1:0,34:32:-103.20,-9.65,-0.03:96.22
-chr1	3310023	rs2493286	G	C	420.47	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1672.06;QD=40.78;SB=-718.73	GT:AD:DP:GL:GQ	1/1:0,41:40:-170.80,-12.05,-0.01:99
-chr1	3310336	rs6657675	G	A	148.97	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.82;MQ=58.38;MQ0=0;OQ=936.76;QD=20.36;SB=-332.89	GT:AD:DP:GL:GQ	0/1:17,29:43:-109.92,-12.96,-52.69:99
-chr1	3310582	rs55820208	C	T	260.28	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=862.76;QD=19.61;SB=-355.48	GT:AD:DP:GL:GQ	0/1:19,25:43:-102.51,-12.95,-64.90:99
-chr1	3311027	rs41315264	C	A	149.68	PASS	AC=1;AF=0.50;AN=2;DB;DP=34;Dels=0.00;HRun=1;HaplotypeScore=1.73;MQ=59.45;MQ0=0;OQ=411.02;QD=12.09;SB=-182.52	GT:AD:DP:GL:GQ	0/1:19,15:31:-53.72,-9.34,-57.20:99
-chr1	3311596	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=46;Dels=0.00;HRun=4;HaplotypeScore=11.58;MQ=54.22;MQ0=0;OQ=65.40;QD=1.42;SB=47.17	GT:AD:DP:GL:GQ	0/1:36,10:29:-18.61,-8.78,-88.90:98.24
-chr1	3312969	rs2483222	T	C	325.01	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=59.04;MQ0=0;OQ=585.55;QD=11.71;SB=-306.07	GT:AD:DP:GL:GQ	0/1:25,25:48:-76.31,-14.47,-93.64:99
-chr1	3313057	rs2483223	T	G	88.19	PASS	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=0.98;MQ=59.28;MQ0=0;OQ=1723.37;QD=26.93;SB=-826.52	GT:AD:DP:GL:GQ	1/1:0,64:57:-175.98,-17.18,-0.06:99
-chr1	3313337	rs2493304	A	G	110.36	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=1;HaplotypeScore=1.72;MQ=57.61;MQ0=0;OQ=687.56;QD=10.91;SB=-122.49	GT:AD:DP:GL:GQ	0/1:35,28:61:-90.42,-18.38,-140.37:99
-chr1	3313476	rs2483224	C	T	77.82	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=1;HaplotypeScore=3.15;MQ=58.48;MQ0=0;OQ=742.74;QD=16.15;SB=-389.41	GT:AD:DP:GL:GQ	0/1:21,25:42:-90.21,-12.66,-65.08:99
-chr1	3314069	rs2493303	G	C	188.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=4.50;MQ=59.20;MQ0=0;OQ=943.60;QD=16.27;SB=-364.47	GT:AD:DP:GL:GQ	0/1:29,29:57:-114.83,-17.19,-120.69:99
-chr1	3314293	rs2493302	A	T	133.12	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.49;MQ=59.50;MQ0=0;OQ=1593.32;QD=34.64;SB=-633.61	GT:AD:DP:GL:GQ	1/1:0,46:43:-162.93,-12.95,-0.01:99
-chr1	3314897	rs2483225	T	C	612.21	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=56.62;MQ0=0;OQ=1899.06;QD=30.14;SB=-687.73	GT:AD:DP:GL:GQ	1/1:0,63:60:-193.54,-18.10,-0.05:99
-chr1	3315120	rs12063572	A	G	188.23	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.59;MQ0=0;OQ=550.32;QD=9.83;SB=-278.26	GT:AD:DP:GL:GQ	0/1:32,24:53:-74.29,-15.98,-116.93:99
-chr1	3315180	rs12063579	A	G	62.82	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=5.22;MQ=57.82;MQ0=1;OQ=599.80;QD=10.91;SB=-262.60	GT:AD:DP:GL:GQ	0/1:27,28:47:-77.44,-14.18,-83.26:99
-chr1	3315190	rs2493301	G	C	0.26	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=15.61;MQ=57.11;MQ0=1;OQ=860.03;QD=14.83;SB=-355.44	GT:AD:DP:GL:GQ	0/1:31,27:50:-104.37,-15.08,-104.68:99
-chr1	3315194	rs12063613	A	G	1.95	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=10.46;MQ=56.06;MQ0=1;OQ=577.86;QD=9.47;SB=-271.10	GT:AD:DP:GL:GQ	0/1:30,31:51:-76.46,-15.39,-99.42:99
-chr1	3315219	.	C	T	17.67	DPFilter;Indel;LowQual	AC=1;AF=0.50;AN=2;DP=68;Dels=0.00;HRun=0;HaplotypeScore=15.64;MQ=52.76;MQ0=1;QD=0.26;SB=34.67	GT:AD:DP:GL:GQ	0/1:62,6:62:-23.74,-18.70,-180.77:50.43
-chr1	3315354	rs12065021	T	C	254.87	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=1.52;MQ=59.68;MQ0=0;OQ=519.08;QD=13.66;SB=-277.27	GT:AD:DP:GL:GQ	0/1:17,21:38:-66.65,-11.46,-65.47:99
-chr1	3315386	rs2493300	A	G	19.22	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=1;HaplotypeScore=1.63;MQ=60.00;MQ0=0;OQ=1158.12;QD=28.95;SB=-549.05	GT:AD:DP:GL:GQ	1/1:0,40:37:-119.43,-11.16,-0.04:99
-chr1	3315441	rs2493299	A	G	105.98	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.81;MQ=60.00;MQ0=0;OQ=1355.37;QD=28.24;SB=-603.93	GT:AD:DP:GL:GQ	1/1:0,48:44:-139.17,-13.27,-0.04:99
-chr1	3315528	rs55929648	C	T	143.11	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=0.33;MQ=56.18;MQ0=0;OQ=1041.13;QD=18.59;SB=-362.91	GT:AD:DP:GL:GQ	0/1:25,31:52:-123.07,-15.67,-66.96:99
-chr1	3315772	rs2493298	C	A	135.74	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=1;HaplotypeScore=2.28;MQ=60.00;MQ0=0;OQ=850.76;QD=17.72;SB=-447.55	GT:AD:DP:GL:GQ	0/1:19,29:48:-102.82,-14.46,-64.75:99
-chr1	3315954	rs36070715	C	G	3.94	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=1;HaplotypeScore=2.72;MQ=51.04;MQ0=0;OQ=1102.41;QD=21.62;SB=-424.97	GT:AD:DP:GL:GQ	0/1:21,30:46:-127.39,-13.87,-69.58:99
-chr1	3316002	rs60965010	G	A	53.41	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=3;HaplotypeScore=0.89;MQ=53.52;MQ0=0;OQ=683.65;QD=15.19;SB=-341.33	GT:AD:DP:GL:GQ	0/1:23,22:41:-84.00,-12.35,-71.37:99
-chr1	3316048	rs59831144	A	G	16.76	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=6.55;MQ=58.48;MQ0=0;OQ=584.41;QD=12.70;SB=-233.93	GT:AD:DP:GL:GQ	0/1:24,22:41:-74.08,-12.36,-76.23:99
-chr1	3316091	rs2493297	G	A	148.61	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.63;MQ=59.53;MQ0=0;OQ=1649.32;QD=33.66;SB=-643.25	GT:AD:DP:GL:GQ	1/1:0,49:44:-168.54,-13.26,-0.02:99
-chr1	3316251	.	G	A	182.76	SnpCluster	AC=1;AF=0.50;AN=2;DP=59;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=43.92;MQ0=0;QD=3.10;SB=-111.51	GT:AD:DP:GL:GQ	0/1:47,12:54:-37.83,-16.27,-156.64:99
-chr1	3316256	.	T	C	219.54	SnpCluster	AC=1;AF=0.50;AN=2;DP=60;Dels=0.00;HRun=0;HaplotypeScore=0.26;MQ=43.18;MQ0=0;QD=3.66;SB=-32.48	GT:AD:DP:GL:GQ	0/1:44,16:55:-41.82,-16.58,-163.02:99
-chr1	3316258	rs7364679	G	T	370	SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.26;MQ=43.51;MQ0=0;QD=6.07;SB=-108.68	GT:AD:DP:GL:GQ	0/1:43,18:56:-57.15,-16.87,-140.13:99
-chr1	3316271	.	G	T	44.21	PASS	AC=1;AF=0.50;AN=2;DP=61;Dels=0.00;HRun=0;HaplotypeScore=3.38;MQ=42.99;MQ0=0;OQ=836.87;QD=13.72;SB=-249.23	GT:AD:DP:GL:GQ	0/1:29,32:52:-102.65,-15.68,-71.94:99
-chr1	3316274	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=59;Dels=0.00;HRun=0;HaplotypeScore=55.35;MQ=42.03;MQ0=0;OQ=122.20;QD=2.07;SB=-76.97	GT:AD:DP:GL:GQ	0/1:47,12:53:-31.48,-15.98,-148.32:99
-chr1	3316287	.	T	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=56;Dels=0.04;HRun=0;HaplotypeScore=28.34;MQ=46.39;MQ0=0;OQ=249.44;QD=4.45;SB=13.22	GT:AD:DP:GL:GQ	0/1:42,12:52:-43.29,-15.07,-133.82:99
-chr1	3316288	.	T	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=58;Dels=0.00;HRun=1;HaplotypeScore=24.35;MQ=46.92;MQ0=0;OQ=241.94;QD=4.17;SB=40.21	GT:AD:DP:GL:GQ	0/1:44,14:54:-43.75,-16.27,-150.33:99
-chr1	3316304	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=59;Dels=0.00;HRun=2;HaplotypeScore=31.71;MQ=50.98;MQ0=0;OQ=105.86;QD=1.79;SB=47.12	GT:AD:DP:GL:GQ	0/1:51,8:50:-28.93,-15.06,-145.13:99
-chr1	3316355	.	A	G	40.11	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=51;Dels=0.00;HRun=0;HaplotypeScore=6.42;MQ=53.40;MQ0=0;QD=0.79;SB=24.53	GT:AD:DP:GL:GQ	0/1:42,9:48:-21.76,-14.47,-159.00:72.94
-chr1	3316370	.	G	A	1.13	PASS	AC=1;AF=0.50;AN=2;DP=51;Dels=0.00;HRun=0;HaplotypeScore=7.87;MQ=52.81;MQ0=0;OQ=530.25;QD=10.40;SB=-291.29	GT:AD:DP:GL:GQ	0/1:31,20:45:-69.88,-13.57,-88.85:99
-chr1	3316500	rs4648494	A	G	396.15	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=54.41;MQ0=0;OQ=1411.68;QD=27.15;SB=-591.87	GT:AD:DP:GL:GQ	1/1:0,52:46:-144.80,-13.88,-0.05:99
-chr1	3316656	rs6670123	C	G	292.55	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=1;HaplotypeScore=1.36;MQ=56.33;MQ0=0;OQ=1404.84;QD=19.79;SB=-673.50	GT:AD:DP:GL:GQ	0/1:33,38:68:-164.26,-20.49,-128.05:99
-chr1	3316892	rs2493296	C	T	338.29	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=0.87;MQ=59.07;MQ0=0;OQ=702.09;QD=14.04;SB=-332.51	GT:AD:DP:GL:GQ	0/1:27,23:46:-87.37,-13.87,-76.76:99
-chr1	3317409	rs1106270	A	G	118.06	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=59.41;MQ0=0;OQ=1192.84;QD=30.59;SB=-537.44	GT:AD:DP:GL:GQ	1/1:0,39:35:-122.88,-10.54,-0.02:99
-chr1	3317462	rs1106271	T	G	1.72	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=4;HaplotypeScore=1.32;MQ=56.98;MQ0=0;OQ=1224.22;QD=31.39;SB=-406.92	GT:AD:DP:GL:GQ	1/1:0,39:38:-126.04,-11.45,-0.03:99
-chr1	3317665	rs57382922	C	T	121.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=34;Dels=0.00;HRun=0;HaplotypeScore=3.88;MQ=57.50;MQ0=0;OQ=526.20;QD=15.48;SB=-279.22	GT:AD:DP:GL:GQ	0/1:15,19:32:-65.55,-9.65,-47.15:99
-chr1	3318218	rs870124	T	C	46.45	PASS	AC=2;AF=1.00;AN=2;DB;DP=31;Dels=0.00;HRun=1;HaplotypeScore=2.76;MQ=58.35;MQ0=0;OQ=987.47;QD=31.85;SB=-495.44	GT:AD:DP:GL:GQ	1/1:0,30:29:-102.35,-8.74,-0.01:87.24
-chr1	3318519	rs2493292	C	T	35.55	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=1;HaplotypeScore=5.38;MQ=58.81;MQ0=0;OQ=410.88;QD=10.54;SB=-213.48	GT:AD:DP:GL:GQ	0/1:22,17:36:-55.22,-10.85,-74.55:99
-chr1	3319244	rs2493291	C	T	128.26	PASS	AC=1;AF=0.50;AN=2;DB;DP=13;Dels=0.00;HRun=1;HaplotypeScore=1.05;MQ=57.07;MQ0=0;OQ=113.91;QD=8.76;SB=-36.64	GT:AD:DP:GL:GQ	0/1:8,5:13:-18.59,-3.92,-28.88:99
-chr1	3319441	.	G	A	108.40	PASS	AC=1;AF=0.50;AN=2;DP=21;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.89;MQ0=0;OQ=283.86;QD=13.52;SB=-108.97	GT:AD:DP:GL:GQ	0/1:11,10:21:-38.00,-6.33,-35.64:99
-chr1	3320120	.	C	T	102.17	PASS	AC=1;AF=0.50;AN=2;DP=48;Dels=0.00;HRun=0;HaplotypeScore=1.79;MQ=60.00;MQ0=0;OQ=709.62;QD=14.78;SB=-362.53	GT:AD:DP:GL:GQ	0/1:24,23:45:-87.81,-13.57,-69.77:99
-chr1	3320537	rs2493290	G	A	97.62	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=1;HaplotypeScore=2.41;MQ=59.54;MQ0=0;OQ=872.79;QD=17.46;SB=-392.92	GT:AD:DP:GL:GQ	0/1:24,26:48:-105.02,-14.46,-80.60:99
-chr1	3320607	rs11578951	G	A	205.49	PASS	AC=1;AF=0.50;AN=2;DB;DP=20;Dels=0.00;HRun=0;HaplotypeScore=1.73;MQ=56.45;MQ0=0;OQ=183.21;QD=9.16;SB=-114.08	GT:AD:DP:GL:GQ	0/1:13,7:17:-26.73,-5.12,-34.52:99
-chr1	3320622	rs2493289	A	G	29.59	PASS	AC=2;AF=1.00;AN=2;DB;DP=21;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=56.62;MQ0=0;OQ=591.39;QD=28.16;SB=-179.75	GT:AD:DP:GL:GQ	1/1:0,20:19:-62.74,-5.73,-0.02:57.13
-chr1	3320744	rs2493288	G	A	319.17	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=59.00;MQ0=0;OQ=558.26;QD=13.29;SB=-286.76	GT:AD:DP:GL:GQ	0/1:23,19:41:-71.47,-12.36,-76.00:99
-chr1	3321412	rs60973157	G	C	340.30	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=1.11;MQ=59.61;MQ0=0;OQ=1008.01;QD=17.08;SB=-510.27	GT:AD:DP:GL:GQ	0/1:31,28:58:-121.57,-17.48,-125.42:99
-chr1	3321593	rs2483228	T	C	57.78	PASS	AC=2;AF=1.00;AN=2;DB;DP=28;Dels=0.00;HRun=0;HaplotypeScore=2.22;MQ=59.17;MQ0=0;OQ=862.49;QD=30.80;SB=-342.44	GT:AD:DP:GL:GQ	1/1:0,28:27:-89.85,-8.14,-0.02:81.21
-chr1	3321759	rs1999528	A	G	88.85	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=60.00;MQ0=0;OQ=1263.70;QD=30.82;SB=-424.24	GT:AD:DP:GL:GQ	1/1:0,41:41:-129.99,-12.37,-0.04:99
-chr1	3322543	rs2483229	T	C	158.61	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=58.98;MQ0=0;OQ=401.83;QD=7.31;SB=-190.61	GT:AD:DP:GL:GQ	0/1:33,22:50:-58.54,-15.08,-123.40:99
-chr1	3322811	rs1889123	T	C	57.71	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=1;HaplotypeScore=1.68;MQ=60.00;MQ0=0;OQ=1553.51;QD=34.52;SB=-743.30	GT:AD:DP:GL:GQ	1/1:0,45:44:-158.95,-13.25,-0.01:99
-chr1	3323101	rs55713431	A	G	0.68	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=4;HaplotypeScore=1.93;MQ=59.65;MQ0=0;OQ=422.62;QD=7.97;SB=-123.50	GT:AD:DP:GL:GQ	0/1:32,21:47:-59.71,-14.17,-112.42:99
-chr1	3323323	rs2068354	A	G	160.11	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=59.65;MQ0=0;OQ=738.34;QD=11.36;SB=-391.91	GT:AD:DP:GL:GQ	0/1:34,31:64:-96.41,-19.29,-135.43:99
-chr1	3324752	rs2483230	A	G	139.58	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=2.41;MQ=59.42;MQ0=0;OQ=1229.51;QD=30.74;SB=-406.34	GT:AD:DP:GL:GQ	1/1:0,40:38:-126.56,-11.45,-0.03:99
-chr1	3326060	rs1984069	C	T	66.93	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=2;HaplotypeScore=0.95;MQ=60.00;MQ0=0;OQ=2062.28;QD=37.50;SB=-721.47	GT:AD:DP:GL:GQ	1/1:0,55:53:-209.83,-15.97,-0.02:99
-chr1	3327403	rs1572040	A	G	479.17	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1561.86;QD=33.95;SB=-803.63	GT:AD:DP:GL:GQ	1/1:0,46:45:-159.79,-13.56,-0.02:99
-chr1	3327481	.	A	G	13.29	PASS	AC=1;AF=0.50;AN=2;DP=69;Dels=0.00;HRun=1;HaplotypeScore=3.51;MQ=58.78;MQ0=0;OQ=805.84;QD=11.68;SB=-333.16	GT:AD:DP:GL:GQ	0/1:35,34:66:-103.76,-19.89,-136.42:99
-chr1	3327496	rs11579873	G	A	76.54	PASS	AC=1;AF=0.50;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=5.52;MQ=59.07;MQ0=0;OQ=1231.78;QD=17.60;SB=-403.19	GT:AD:DP:GL:GQ	0/1:34,36:67:-146.65,-20.19,-102.53:99
-chr1	3328305	.	C	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=49;Dels=0.00;HRun=2;HaplotypeScore=9.54;MQ=57.05;MQ0=0;OQ=81.44;QD=1.66;SB=56.21	GT:AD:DP:GL:GQ	0/1:35,13:31:-20.79,-9.36,-100.83:99
-chr1	3328931	rs2483231	A	G	0.45	PASS	AC=2;AF=1.00;AN=2;DB;DP=36;Dels=0.00;HRun=2;HaplotypeScore=2.58;MQ=57.64;MQ0=0;OQ=961.69;QD=26.71;SB=-96.83	GT:AD:DP:GL:GQ	1/1:0,35:29:-99.77,-8.74,-0.01:87.24
-chr1	3329199	rs10492937	C	A	94.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=59.41;MQ0=0;OQ=591.17;QD=15.16;SB=-220.88	GT:AD:DP:GL:GQ	0/1:18,21:38:-73.85,-11.45,-60.07:99
-chr1	3329740	.	G	T	6.44	PASS	AC=1;AF=0.50;AN=2;DP=36;Dels=0.00;HRun=1;HaplotypeScore=3.49;MQ=59.36;MQ0=0;OQ=539.79;QD=14.99;SB=-294.29	GT:AD:DP:GL:GQ	0/1:15,21:33:-67.21,-9.94,-47.46:99
-chr1	3329976	rs2483232	A	G	146.59	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=2.83;MQ=59.54;MQ0=0;OQ=1387.79;QD=27.76;SB=-682.70	GT:AD:DP:GL:GQ	1/1:0,49:45:-142.42,-13.58,-0.05:99
-chr1	3330129	rs4648385	C	T	62.27	PASS	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=1;HaplotypeScore=1.11;MQ=59.51;MQ0=0;OQ=1421.02;QD=37.40;SB=-712.36	GT:AD:DP:GL:GQ	1/1:0,38:36:-145.70,-10.84,-0.01:99
-chr1	3330207	rs2483233	A	G	536.88	PASS	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1265.03;QD=33.29;SB=-631.30	GT:AD:DP:GL:GQ	1/1:0,38:37:-130.10,-11.15,-0.02:99
-chr1	3330527	rs2483234	A	G	229.57	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1088.75;QD=27.92;SB=-544.02	GT:AD:DP:GL:GQ	1/1:0,38:35:-112.49,-10.56,-0.04:99
-chr1	3330619	rs2483235	A	G	461.47	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.29;MQ0=0;OQ=1699.01;QD=28.80;SB=-626.83	GT:AD:DP:GL:GQ	1/1:0,59:55:-173.55,-16.59,-0.06:99
-chr1	3330715	rs4648500	A	C	461.04	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=1.16;MQ=59.69;MQ0=0;OQ=953.20;QD=15.63;SB=-476.30	GT:AD:DP:GL:GQ	0/1:28,33:61:-116.98,-18.37,-104.31:99
-chr1	3331400	rs2483236	C	T	56.26	PASS	AC=2;AF=1.00;AN=2;DB;DP=32;Dels=0.00;HRun=0;HaplotypeScore=2.18;MQ=55.81;MQ0=0;OQ=1168.69;QD=36.52;SB=-534.21	GT:AD:DP:GL:GQ	1/1:0,31:30:-120.46,-9.04,-0.01:90.29
-chr1	3331651	rs1970118	A	G	69.34	PASS	AC=2;AF=1.00;AN=2;DB;DP=34;Dels=0.00;HRun=0;HaplotypeScore=2.26;MQ=50.87;MQ0=0;OQ=938.62;QD=27.61;SB=-452.46	GT:AD:DP:GL:GQ	1/1:0,34:32:-97.49,-9.66,-0.04:96.17
-chr1	3331969	rs41303861	G	T	165.88	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=2.33;MQ=56.82;MQ0=0;OQ=610.74;QD=12.99;SB=-193.66	GT:AD:DP:GL:GQ	0/1:23,24:44:-77.62,-13.26,-67.40:99
-chr1	3332390	rs2244013	G	A	343.87	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=1;HaplotypeScore=0.76;MQ=59.53;MQ0=0;OQ=624.83;QD=12.75;SB=-319.81	GT:AD:DP:GL:GQ	0/1:27,22:47:-79.93,-14.16,-96.24:99
-chr1	3332664	rs870171	G	T	453.17	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.38;MQ0=0;OQ=726.05;QD=12.10;SB=-151.13	GT:AD:DP:GL:GQ	0/1:34,26:59:-93.67,-17.78,-105.77:99
-chr1	3333105	rs7549050	A	G	414.31	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.44;MQ0=0;OQ=796.44;QD=10.62;SB=-292.01	GT:AD:DP:GL:GQ	0/1:42,33:74:-105.23,-22.30,-168.30:99
-chr1	3333795	rs55833861	T	C	103.98	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=1;HaplotypeScore=2.59;MQ=58.97;MQ0=0;OQ=717.11;QD=11.38;SB=-232.86	GT:AD:DP:GL:GQ	0/1:36,27:59:-92.78,-17.78,-129.42:99
-chr1	3333920	rs56196310	G	T	246.95	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=1.50;MQ=59.56;MQ0=0;OQ=564.40;QD=10.65;SB=-293.98	GT:AD:DP:GL:GQ	0/1:32,21:49:-74.48,-14.76,-99.79:99
-chr1	3334336	rs61759212	A	G	99.75	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=3.03;MQ=59.13;MQ0=0;OQ=418.37;QD=9.73;SB=-116.62	GT:AD:DP:GL:GQ	0/1:23,20:40:-57.18,-12.06,-85.13:99
-chr1	3334647	rs2483240	A	G	15.04	PASS	AC=1;AF=0.50;AN=2;DB;DP=20;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=55.38;MQ0=1;OQ=79.23;QD=3.96;SB=-53.29	GT:AD:DP:GL:GQ	0/1:13,7:16:-16.03,-4.82,-44.27:99
-chr1	3335005	rs2483242	A	T	508.54	PASS	AC=1;AF=0.50;AN=2;DB;DP=34;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.64;MQ0=0;OQ=469.82;QD=13.82;SB=-232.91	GT:AD:DP:GL:GQ	0/1:18,16:34:-60.51,-10.24,-69.68:99
-chr1	3335714	.	A	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=45;Dels=0.00;HRun=2;HaplotypeScore=9.36;MQ=57.49;MQ0=0;OQ=205.84;QD=4.57;SB=56.19	GT:AD:DP:GL:GQ	0/1:25,20:36:-34.71,-10.85,-86.86:99
-chr1	3336208	rs2493277	C	G	559.81	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.46;MQ0=0;OQ=642.22;QD=14.94;SB=-326.21	GT:AD:DP:GL:GQ	0/1:23,20:42:-80.17,-12.66,-97.68:99
-chr1	3336263	rs11583353	C	T	94.14	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=58.90;MQ0=0;OQ=708.85;QD=18.65;SB=-324.84	GT:AD:DP:GL:GQ	0/1:17,21:37:-85.32,-11.15,-51.45:99
-chr1	3339994	rs10752734	T	C	155.05	PASS	AC=2;AF=1.00;AN=2;DB;DP=17;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=27.27;MQ0=2;OQ=107.39;QD=6.32;SB=-10.00	GT:AD:DP:GL:GQ	1/1:8,9:4:-14.27,-1.20,-0.00:12.04
-chr1	3342087	rs1537406	T	C	266.84	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=2.18;MQ=59.23;MQ0=0;OQ=2135.99;QD=33.90;SB=-825.32	GT:AD:DP:GL:GQ	1/1:0,63:60:-217.21,-18.07,-0.02:99
-chr1	3342088	rs12735779	G	C	80.32	PASS	AC=2;AF=1.00;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=2.18;MQ=59.25;MQ0=0;OQ=2678.31;QD=41.20;SB=-987.13	GT:AD:DP:GL:GQ	1/1:0,65:62:-271.44,-18.68,-0.02:99
-chr1	3342207	rs1537405	T	C	92.45	PASS	AC=2;AF=1.00;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=1.80;MQ=60.00;MQ0=0;OQ=1223.31;QD=28.45;SB=-485.50	GT:AD:DP:GL:GQ	1/1:0,43:40:-125.96,-12.07,-0.04:99
-chr1	3342363	rs1537404	G	C	0.18	PASS	AC=2;AF=1.00;AN=2;DB;DP=43;Dels=0.00;HRun=4;HaplotypeScore=2.53;MQ=57.71;MQ0=0;OQ=1605.19;QD=37.33;SB=-574.94	GT:AD:DP:GL:GQ	1/1:0,43:39:-164.12,-11.76,-0.02:99
-chr1	3342401	rs1065247	T	C	218.93	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=1;HaplotypeScore=1.05;MQ=58.89;MQ0=0;OQ=523.80;QD=12.47;SB=-250.33	GT:AD:DP:GL:GQ	0/1:20,21:38:-67.12,-11.46,-67.07:99
-chr1	3342439	rs1537402	T	C	329.15	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.61;MQ0=0;OQ=1390.94;QD=29.59;SB=-663.80	GT:AD:DP:GL:GQ	1/1:0,47:44:-142.72,-13.27,-0.04:99
-chr1	3342644	rs2493267	A	G	426.47	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.59;MQ0=0;OQ=1871.16;QD=31.71;SB=-785.23	GT:AD:DP:GL:GQ	1/1:0,59:54:-190.73,-16.27,-0.03:99
-chr1	3342725	rs35015571	C	T	160.86	PASS	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=1.21;MQ=59.43;MQ0=0;OQ=266.00;QD=8.06;SB=-157.61	GT:AD:DP:GL:GQ	0/1:23,10:28:-38.32,-8.44,-61.48:99
-chr1	3342732	rs2236518	A	C	16.29	PASS	AC=1;AF=0.50;AN=2;DB;DP=34;Dels=0.00;HRun=2;HaplotypeScore=2.32;MQ=59.45;MQ0=0;OQ=611.30;QD=17.98;SB=-246.93	GT:AD:DP:GL:GQ	0/1:10,24:30:-73.45,-9.04,-31.78:99
-chr1	3343497	rs35837267	G	A	179.26	PASS	AC=1;AF=0.50;AN=2;DB;DP=34;Dels=0.00;HRun=1;HaplotypeScore=1.81;MQ=58.20;MQ0=0;OQ=412.37;QD=12.13;SB=-230.72	GT:AD:DP:GL:GQ	0/1:20,14:34:-54.77,-10.25,-72.54:99
-chr1	3343750	rs2493265	A	G	92.52	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=58.09;MQ0=0;OQ=1343.75;QD=27.42;SB=-616.98	GT:AD:DP:GL:GQ	1/1:0,49:43:-138.00,-12.97,-0.04:99
-chr1	3343809	rs2493264	A	G	123.80	PASS	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=3.40;MQ=58.91;MQ0=0;OQ=1865.11;QD=29.14;SB=-622.24	GT:AD:DP:GL:GQ	1/1:0,64:61:-190.17,-18.41,-0.07:99
-chr1	3344455	rs2483249	T	C	577.76	PASS	AC=2;AF=1.00;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2266.24;QD=31.92;SB=-1078.24	GT:AD:DP:GL:GQ	1/1:0,71:70:-230.26,-21.11,-0.05:99
-chr1	3344475	rs2493263	T	C	726.67	PASS	AC=2;AF=1.00;AN=2;DB;DP=81;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2858.56;QD=35.29;SB=-1249.13	GT:AD:DP:GL:GQ	1/1:0,81:80:-289.47,-24.10,-0.03:99
-chr1	3345122	rs55729137	G	A	38.39	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=1.91;MQ=59.48;MQ0=0;OQ=807.80;QD=18.36;SB=-199.91	GT:AD:DP:GL:GQ	0/1:20,24:42:-96.73,-12.66,-57.09:99
-chr1	3346265	rs2483250	A	C	12.02	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=3;HaplotypeScore=0.89;MQ=59.52;MQ0=0;OQ=1256.35;QD=32.21;SB=-315.07	GT:AD:DP:GL:GQ	1/1:0,39:37:-129.23,-11.15,-0.01:99
-chr1	3346495	rs2483251	T	C	2.80	PASS	AC=2;AF=1.00;AN=2;DB;DP=19;Dels=0.00;HRun=2;HaplotypeScore=1.13;MQ=60.00;MQ0=0;OQ=525.69;QD=27.67;SB=-225.75	GT:AD:DP:GL:GQ	1/1:0,19:16:-56.16,-4.82,-0.01:48.13
-chr1	3346655	rs2493262	C	G	18.99	PASS	AC=2;AF=1.00;AN=2;DB;DP=28;Dels=0.00;HRun=2;HaplotypeScore=2.19;MQ=59.17;MQ0=0;OQ=878.66;QD=31.38;SB=-427.67	GT:AD:DP:GL:GQ	1/1:0,27:23:-91.47,-6.94,-0.02:69.23
-chr1	3346875	rs12745100	C	T	10.66	PASS	AC=1;AF=0.50;AN=2;DB;DP=27;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=496.33;QD=18.38;SB=-39.63	GT:AD:DP:GL:GQ	0/1:12,15:27:-61.05,-8.13,-42.91:99
-chr1	3347097	rs55892133	A	G	803.11	Indel	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=1;HaplotypeScore=3.17;MQ=58.79;MQ0=0;QD=12.55;SB=-200.20	GT:AD:DP:GL:GQ	0/1:34,30:60:-101.69,-18.09,-118.87:99
-chr1	3347896	rs10797392	T	G	467.03	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.49;MQ0=1;OQ=720.09;QD=12.20;SB=-372.76	GT:AD:DP:GL:GQ	0/1:27,32:54:-91.57,-16.27,-88.57:99
-chr1	3348782	rs2483252	G	C	20.05	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=2;HaplotypeScore=1.07;MQ=58.41;MQ0=0;OQ=1754.48;QD=39.87;SB=-676.45	GT:AD:DP:GL:GQ	1/1:0,43:42:-179.05,-12.66,-0.02:99
-chr1	3348792	rs35536718	C	G	187.57	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=2.99;MQ=58.60;MQ0=0;OQ=722.68;QD=14.45;SB=-275.28	GT:AD:DP:GL:GQ	0/1:28,22:46:-89.42,-13.87,-106.46:99
-chr1	3349040	rs2493261	C	G	241.62	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.46;MQ0=0;OQ=2328.68;QD=40.85;SB=-454.11	GT:AD:DP:GL:GQ	1/1:0,57:55:-236.48,-16.59,-0.03:99
-chr1	3349142	rs56009352	G	T	195.97	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=1.21;MQ=58.75;MQ0=0;OQ=381.64;QD=9.09;SB=-161.15	GT:AD:DP:GL:GQ	0/1:24,18:38:-52.90,-11.45,-81.46:99
-chr1	3349843	rs11588737	T	C	126.31	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=58.70;MQ0=0;OQ=680.83;QD=8.96;SB=-348.93	GT:AD:DP:GL:GQ	0/1:44,32:72:-93.07,-21.70,-169.44:99
-chr1	3349896	rs9424295	C	A	298.32	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=1.47;MQ=58.90;MQ0=0;OQ=883.58;QD=12.27;SB=-371.71	GT:AD:DP:GL:GQ	0/1:40,32:69:-112.42,-20.78,-136.87:99
-chr1	3350654	.	A	G	19.67	PASS	AC=1;AF=0.50;AN=2;DP=67;Dels=0.00;HRun=0;HaplotypeScore=4.82;MQ=58.94;MQ0=0;OQ=752.06;QD=11.22;SB=-353.94	GT:AD:DP:GL:GQ	0/1:36,30:64:-97.78,-19.29,-134.25:99
-chr1	3350874	rs2493260	A	T	152.74	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=1881.55;QD=33.01;SB=-813.90	GT:AD:DP:GL:GQ	1/1:0,54:52:-191.76,-15.67,-0.02:99
-chr1	3351164	rs2483254	G	A	165.18	PASS	AC=2;AF=1.00;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=1.02;MQ=57.99;MQ0=0;OQ=1923.46;QD=34.35;SB=-708.45	GT:AD:DP:GL:GQ	1/1:0,56:52:-195.97,-15.68,-0.04:99
-chr1	3351668	rs61759222	T	C	292.32	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=59.16;MQ0=0;OQ=649.71;QD=12.99;SB=-320.27	GT:AD:DP:GL:GQ	0/1:27,23:50:-83.32,-15.07,-104.64:99
-chr1	3351675	rs61759223	T	C	215.70	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=59.56;MQ0=0;OQ=453.74;QD=8.73;SB=-214.35	GT:AD:DP:GL:GQ	0/1:31,21:51:-64.03,-15.38,-121.39:99
-chr1	3351951	rs61759224	A	G	132.94	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=1;HaplotypeScore=0.63;MQ=58.69;MQ0=0;OQ=462.74;QD=9.25;SB=-204.32	GT:AD:DP:GL:GQ	0/1:29,21:49:-64.32,-14.77,-119.90:99
-chr1	3352116	rs867814	C	T	338.36	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=59.66;MQ0=0;OQ=1015.19;QD=15.15;SB=-259.14	GT:AD:DP:GL:GQ	0/1:34,33:66:-124.69,-19.89,-112.54:99
-chr1	3352233	rs55781247	C	T	0.43	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=12.27;MQ=55.55;MQ0=1;OQ=438.31;QD=8.59;SB=-227.00	GT:AD:DP:GL:GQ	0/1:27,22:35:-60.74,-13.63,-60.12:99
-chr1	3352662	.	G	C	94.32	PASS	AC=1;AF=0.50;AN=2;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.48;MQ=58.30;MQ0=0;OQ=750.60;QD=12.94;SB=-224.33	GT:AD:DP:GL:GQ	0/1:34,23:56:-95.22,-16.87,-149.91:99
-chr1	3353096	rs11808277	C	G	337.37	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=59.63;MQ0=0;OQ=1053.89;QD=17.00;SB=-489.21	GT:AD:DP:GL:GQ	0/1:30,32:59:-126.45,-17.78,-131.54:99
-chr1	3353132	.	G	A	167.12	PASS	AC=1;AF=0.50;AN=2;DP=68;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=59.73;MQ0=0;OQ=1096.75;QD=16.13;SB=-431.84	GT:AD:DP:GL:GQ	0/1:34,34:67:-133.15,-20.19,-109.37:99
-chr1	3353327	rs10158332	A	T	108.69	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=2;HaplotypeScore=0.99;MQ=58.82;MQ0=0;OQ=1002.21;QD=14.12;SB=-515.47	GT:AD:DP:GL:GQ	0/1:38,33:71:-124.89,-21.39,-148.24:99
-chr1	3353449	rs10157570	G	A	490.96	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=905.02;QD=15.88;SB=-430.82	GT:AD:DP:GL:GQ	0/1:30,27:56:-110.66,-16.88,-93.98:99
-chr1	3353662	rs2483255	A	T	46.49	PASS	AC=2;AF=1.00;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=4.02;MQ=59.30;MQ0=0;OQ=2470.87;QD=37.44;SB=-912.35	GT:AD:DP:GL:GQ	1/1:0,66:64:-250.68,-19.27,-0.01:99
-chr1	3353786	rs2493258	A	G	307.10	PASS	AC=1;AF=0.50;AN=2;DB;DP=85;Dels=0.00;HRun=0;HaplotypeScore=0.97;MQ=59.56;MQ0=0;OQ=1182.18;QD=13.91;SB=-595.40	GT:AD:DP:GL:GQ	0/1:39,46:85:-147.12,-25.62,-159.37:99
-chr1	3354380	rs61759225	T	C	235.67	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=1;HaplotypeScore=0.63;MQ=60.00;MQ0=0;OQ=921.81;QD=12.29;SB=-424.06	GT:AD:DP:GL:GQ	0/1:42,33:74:-117.76,-22.29,-166.03:99
-chr1	3354597	rs2263010	T	C	533.81	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.70;MQ0=0;OQ=2222.94;QD=35.85;SB=-1114.11	GT:AD:DP:GL:GQ	1/1:0,62:62:-225.90,-18.68,-0.02:99
-chr1	3354829	rs61759226	A	T	251.14	PASS	AC=1;AF=0.50;AN=2;DB;DP=100;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.16;MQ0=0;OQ=1748.33;QD=17.48;SB=-874.02	GT:AD:DP:GL:GQ	0/1:46,54:99:-207.93,-29.81,-176.30:99
-chr1	3355107	rs4648386	A	G	12.08	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=1;HaplotypeScore=3.00;MQ=59.31;MQ0=0;OQ=1773.45;QD=34.77;SB=-505.48	GT:AD:DP:GL:GQ	1/1:0,51:51:-180.95,-15.36,-0.02:99
-chr1	3355113	rs61759227	G	A	0.86	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=1;HaplotypeScore=6.85;MQ=58.80;MQ0=0;OQ=911.32;QD=18.60;SB=-216.88	GT:AD:DP:GL:GQ	0/1:22,27:48:-108.87,-14.46,-75.78:99
-chr1	3355993	rs55913848	G	T	115.65	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=2;HaplotypeScore=0.99;MQ=58.15;MQ0=0;OQ=1046.84;QD=16.62;SB=-492.93	GT:AD:DP:GL:GQ	0/1:29,34:61:-126.34,-18.38,-91.26:99
-chr1	3356353	rs2096102	C	A	344.49	PASS	AC=1;AF=0.50;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=2.20;MQ=61.19;MQ0=0;OQ=1204.86;QD=17.21;SB=-565.00	GT:AD:DP:GL:GQ	0/1:30,40:67:-143.95,-20.18,-94.79:99
-chr1	3356461	.	G	A	34.92	LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=42;Dels=0.00;HRun=0;HaplotypeScore=63.59;MQ=46.78;MQ0=1;QD=0.83;SB=-40.97	GT:AD:DP:GL:GQ	0/1:36,6:34:-17.03,-10.25,-100.31:67.76
-chr1	3356464	.	T	G	27.11	LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=32;Dels=0.00;HRun=0;HaplotypeScore=13.28;MQ=49.36;MQ0=1;QD=0.85;SB=-38.91	GT:AD:DP:GL:GQ	0/1:28,4:29:-14.73,-8.74,-84.74:59.94
-chr1	3356466	.	G	T	324.76	SnpCluster	AC=1;AF=0.50;AN=2;DP=30;Dels=0.00;HRun=0;HaplotypeScore=10.60;MQ=48.57;MQ0=1;QD=10.83;SB=-127.64	GT:AD:DP:GL:GQ	0/1:15,15:26:-43.60,-7.84,-42.90:99
-chr1	3357640	rs2487679	A	G	123.35	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=2.76;MQ=59.32;MQ0=0;OQ=2260.98;QD=33.25;SB=-697.21	GT:AD:DP:GL:GQ	1/1:0,68:67:-229.71,-20.18,-0.03:99
-chr1	3357895	rs6697669	T	C	43.42	PASS	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.03;HRun=0;HaplotypeScore=3.79;MQ=57.15;MQ0=0;OQ=335.02;QD=10.15;SB=-38.93	GT:AD:DP:GL:GQ	0/1:18,13:30:-45.82,-9.04,-67.57:99
-chr1	3357991	rs4648501	G	A	122.29	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=59.97;MQ0=0;OQ=545.72;QD=10.70;SB=-291.79	GT:AD:DP:GL:GQ	0/1:33,18:50:-72.92,-15.06,-113.74:99
-chr1	3358003	rs2487670	G	A	120.25	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=0.33;MQ=59.77;MQ0=0;OQ=1144.78;QD=22.01;SB=-472.53	GT:AD:DP:GL:GQ	0/1:18,34:50:-132.83,-15.07,-51.40:99
-chr1	3358201	rs55902179	A	G	118.16	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=1;HaplotypeScore=1.99;MQ=60.00;MQ0=0;OQ=620.71;QD=14.78;SB=-241.29	GT:AD:DP:GL:GQ	0/1:20,22:41:-77.71,-12.35,-78.03:99
-chr1	3359613	rs2487668	G	A	227.96	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=2.56;MQ=59.61;MQ0=0;OQ=985.10;QD=16.70;SB=-425.79	GT:AD:DP:GL:GQ	0/1:26,32:57:-118.97,-17.18,-94.23:99
-chr1	3359684	rs34681041	A	G	13.72	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=2;HaplotypeScore=1.71;MQ=60.00;MQ0=0;OQ=330.72;QD=8.70;SB=-110.60	GT:AD:DP:GL:GQ	0/1:21,17:34:-46.60,-10.25,-79.14:99
-chr1	3361330	.	G	C	0.29	PASS	AC=1;AF=0.50;AN=2;DP=10;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=68.48;QD=6.85;SB=-10.00	GT:AD:DP:GL:GQ	0/1:6,4:9:-12.85,-2.72,-22.16:99
-chr1	3361841	rs55858614	G	C	94.38	PASS	AC=1;AF=0.50;AN=2;DB;DP=29;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=58.70;MQ0=0;OQ=503.58;QD=17.36;SB=-238.39	GT:AD:DP:GL:GQ	0/1:14,15:29:-62.38,-8.74,-58.19:99
-chr1	3362331	rs10909946	A	C	12.50	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=3;HaplotypeScore=2.71;MQ=58.18;MQ0=0;OQ=655.84;QD=12.15;SB=-228.89	GT:AD:DP:GL:GQ	0/1:26,28:47:-83.03,-14.16,-81.70:99
-chr1	3362529	rs61759232	T	C	1.77	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=3;HaplotypeScore=3.67;MQ=58.99;MQ0=0;OQ=549.81;QD=11.95;SB=-107.61	GT:AD:DP:GL:GQ	0/1:22,24:42:-70.93,-12.66,-83.77:99
-chr1	3362717	.	A	G	41.71	PASS	AC=1;AF=0.50;AN=2;DP=53;Dels=0.00;HRun=1;HaplotypeScore=2.52;MQ=59.65;MQ0=0;OQ=773.42;QD=14.59;SB=-374.28	GT:AD:DP:GL:GQ	0/1:23,30:49:-95.39,-14.76,-86.55:99
-chr1	3363471	rs56365322	C	G	249.90	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=59.24;MQ0=0;OQ=638.66;QD=11.61;SB=-240.06	GT:AD:DP:GL:GQ	0/1:30,25:50:-82.23,-15.08,-125.58:99
-chr1	3363827	rs2493256	A	G	265.69	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=3.09;MQ=58.48;MQ0=0;OQ=531.11;QD=12.35;SB=-221.59	GT:AD:DP:GL:GQ	0/1:23,19:42:-71.22,-14.82,-89.22:99
-chr1	3364220	rs12745860	C	T	264.50	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=2.93;MQ=58.78;MQ0=0;OQ=718.26;QD=12.60;SB=-212.70	GT:AD:DP:GL:GQ	0/1:33,24:53:-91.09,-15.98,-94.23:99
-chr1	3364244	rs12758368	T	A	250.46	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=1;HaplotypeScore=1.60;MQ=59.27;MQ0=0;OQ=910.80;QD=14.46;SB=-359.58	GT:AD:DP:GL:GQ	0/1:33,30:62:-113.04,-18.68,-119.17:99
-chr1	3364803	rs56242281	A	G	70.18	PASS	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=3.36;MQ=59.30;MQ0=0;OQ=300.82;QD=9.12;SB=-84.67	GT:AD:DP:GL:GQ	0/1:18,14:30:-42.41,-9.04,-64.59:99
-chr1	3365228	rs61759235	A	G	136.44	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=2.88;MQ=58.63;MQ0=0;OQ=478.85;QD=9.39;SB=-239.48	GT:AD:DP:GL:GQ	0/1:30,21:48:-65.63,-14.46,-116.95:99
-chr1	3365583	rs61759236	C	G	131.55	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=1;HaplotypeScore=0.99;MQ=60.00;MQ0=0;OQ=835.90;QD=18.58;SB=-383.86	GT:AD:DP:GL:GQ	0/1:22,23:43:-99.85,-12.97,-77.78:99
-chr1	3366053	rs61759237	C	T	131.92	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=1;HaplotypeScore=0.67;MQ=60.00;MQ0=0;OQ=735.43;QD=17.10;SB=-313.83	GT:AD:DP:GL:GQ	0/1:21,22:42:-89.48,-12.65,-70.75:99
-chr1	3366393	rs12059504	T	C	302.48	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=1.97;MQ=60.00;MQ0=0;OQ=609.78;QD=12.70;SB=-240.29	GT:AD:DP:GL:GQ	0/1:24,24:48:-78.73,-14.47,-96.53:99
-chr1	3366983	rs59183260	C	T	199.73	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=2.76;MQ=59.56;MQ0=0;OQ=586.61;QD=13.97;SB=-272.28	GT:AD:DP:GL:GQ	0/1:22,20:39:-73.71,-11.76,-62.95:99
-chr1	3367203	rs2487681	T	C	222.79	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=1.70;MQ=60.00;MQ0=0;OQ=351.40;QD=8.79;SB=-154.93	GT:AD:DP:GL:GQ	0/1:22,18:38:-49.88,-11.46,-85.17:99
-chr1	3372040	rs10909947	G	T	39.70	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=58.75;MQ0=0;OQ=1667.04;QD=35.47;SB=-355.84	GT:AD:DP:GL:GQ	1/1:0,47:46:-170.30,-13.86,-0.01:99
-chr1	3372773	.	T	G	28.89	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=45;Dels=0.00;HRun=2;HaplotypeScore=4.07;MQ=59.49;MQ0=0;QD=0.64;SB=56.17	GT:AD:DP:GL:GQ	0/1:32,13:34:-16.42,-10.24,-99.13:61.72
-chr1	3372898	rs947351	G	A	372.12	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=0.97;MQ=59.19;MQ0=0;OQ=649.44;QD=12.49;SB=-216.21	GT:AD:DP:GL:GQ	0/1:28,24:49:-83.00,-14.77,-93.12:99
-chr1	3373453	rs3893316	G	T	349.34	PASS	AC=1;AF=0.50;AN=2;DB;DP=30;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=441.10;QD=14.70;SB=-201.58	GT:AD:DP:GL:GQ	0/1:13,17:29:-56.13,-8.74,-43.76:99
-chr1	3373525	rs7550948	G	A	64.51	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=59.53;MQ0=0;OQ=1066.26;QD=21.76;SB=-418.80	GT:AD:DP:GL:GQ	0/1:18,31:47:-124.08,-14.17,-50.84:99
-chr1	3373758	rs6424078	A	G	63.51	PASS	AC=1;AF=0.50;AN=2;DB;DP=30;Dels=0.00;HRun=1;HaplotypeScore=2.28;MQ=58.45;MQ0=0;OQ=303.09;QD=10.10;SB=-109.62	GT:AD:DP:GL:GQ	0/1:15,15:29:-42.34,-8.75,-57.35:99
-chr1	3373912	rs45512802	C	T	115.92	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=1;HaplotypeScore=1.77;MQ=58.81;MQ0=0;OQ=487.90;QD=12.51;SB=-154.65	GT:AD:DP:GL:GQ	0/1:21,18:37:-63.22,-11.15,-77.33:99
-chr1	3374091	rs6667361	A	G	15.86	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=3;HaplotypeScore=1.91;MQ=58.45;MQ0=0;OQ=441.93;QD=9.82;SB=-196.52	GT:AD:DP:GL:GQ	0/1:26,19:43:-60.43,-12.96,-100.55:99
-chr1	3374466	rs7522513	A	G	114.35	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=58.36;MQ0=0;OQ=449.01;QD=11.23;SB=-195.64	GT:AD:DP:GL:GQ	0/1:20,20:37:-59.34,-11.16,-69.75:99
-chr1	3374989	rs2493250	G	A	285.91	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.63;MQ=59.52;MQ0=0;OQ=823.07;QD=17.15;SB=-412.42	GT:AD:DP:GL:GQ	0/1:23,25:48:-100.06,-14.47,-73.79:99
-chr1	3374999	rs2487673	G	T	438.47	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.49;MQ0=0;OQ=759.07;QD=16.87;SB=-384.82	GT:AD:DP:GL:GQ	0/1:19,26:45:-92.75,-13.56,-63.83:99
-chr1	3375110	rs1417897	C	A	224.44	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=57.71;MQ0=0;OQ=613.48;QD=15.73;SB=-271.51	GT:AD:DP:GL:GQ	0/1:18,21:37:-75.78,-11.15,-51.34:99
-chr1	3375116	rs1891143	A	G	122.77	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=1.72;MQ=57.71;MQ0=0;OQ=346.85;QD=8.89;SB=-128.27	GT:AD:DP:GL:GQ	0/1:22,17:35:-48.52,-10.55,-81.11:99
-chr1	3375190	rs2493249	T	C	0.27	PASS	AC=2;AF=1.00;AN=2;DB;DP=34;Dels=0.00;HRun=3;HaplotypeScore=2.59;MQ=59.45;MQ0=0;OQ=889.42;QD=26.16;SB=-381.39	GT:AD:DP:GL:GQ	1/1:0,34:28:-92.55,-8.44,-0.02:84.20
-chr1	3377520	.	G	A	54.48	PASS	AC=1;AF=0.50;AN=2;DP=37;Dels=0.00;HRun=0;HaplotypeScore=1.18;MQ=60.00;MQ0=0;OQ=404.10;QD=10.92;SB=-123.57	GT:AD:DP:GL:GQ	0/1:21,16:32:-53.34,-9.65,-57.04:99
-chr1	3379133	rs2298082	T	C	273.90	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=1;HaplotypeScore=1.53;MQ=58.32;MQ0=0;OQ=528.06;QD=13.20;SB=-222.68	GT:AD:DP:GL:GQ	0/1:19,21:37:-67.24,-11.15,-73.98:99
-chr1	3379181	rs2487687	C	T	16.32	PASS	AC=1;AF=0.50;AN=2;DB;DP=26;Dels=0.00;HRun=0;HaplotypeScore=1.52;MQ=60.00;MQ0=0;OQ=545.94;QD=21.00;SB=-232.27	GT:AD:DP:GL:GQ	0/1:9,17:25:-65.41,-7.53,-31.41:99
-chr1	3379587	rs2185639	C	T	119.32	PASS	AC=1;AF=0.50;AN=2;DB;DP=25;Dels=0.00;HRun=0;HaplotypeScore=2.54;MQ=58.13;MQ0=0;OQ=232.01;QD=9.28;SB=-26.61	GT:AD:DP:GL:GQ	0/1:14,10:22:-33.12,-6.63,-45.28:99
-chr1	3380098	rs2493323	T	A	210.96	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.76;MQ0=0;OQ=1873.41;QD=38.23;SB=-364.88	GT:AD:DP:GL:GQ	1/1:0,49:49:-190.94,-14.76,-0.01:99
-chr1	3380882	rs2493322	G	A	155.52	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=59.57;MQ0=0;OQ=666.25;QD=12.34;SB=-269.17	GT:AD:DP:GL:GQ	0/1:33,21:52:-85.58,-15.67,-103.39:99
-chr1	3381466	.	A	G	34.09	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=73;Dels=0.00;HRun=1;HaplotypeScore=1.23;MQ=18.93;MQ0=48;QD=0.47;SB=2.04	GT:AD:DP:GL:GQ	0/1:58,15:13:-10.61,-3.92,-40.00:66.92
-chr1	3381536	rs2493320	G	A	66.96	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=9.35;MQ0=30;OQ=163.18;QD=3.98;SB=-10.00	GT:AD:DP:GL:GQ	1/1:12,29:5:-19.88,-1.51,-0.00:15.05
-chr1	3381776	rs56863381	G	A	0.39	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=12.80;MQ0=34;OQ=57.75;QD=1.03;SB=5.02	GT:AD:DP:GL:GQ	0/1:40,16:11:-12.38,-3.32,-24.49:90.59
-chr1	3382016	.	A	G	35.80	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=65;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=12.28;MQ0=39;QD=0.55;SB=-10.00	GT:AD:DP:GL:GQ	0/1:54,11:16:-11.69,-4.82,-49.41:68.63
-chr1	3382186	rs2493318	A	G	275.57	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=1;HaplotypeScore=1.11;MQ=47.26;MQ0=1;OQ=747.71;QD=13.35;SB=-372.26	GT:AD:DP:GL:GQ	0/1:27,29:52:-93.72,-15.67,-105.01:99
-chr1	3382897	rs12124163	G	T	198.71	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=1;HaplotypeScore=0.32;MQ=59.56;MQ0=0;OQ=598.86;QD=14.26;SB=-222.53	GT:AD:DP:GL:GQ	0/1:21,21:41:-75.52,-12.35,-66.44:99
-chr1	3383727	rs10797394	G	A	171.07	DPFilter;Indel	AC=1;AF=0.50;AN=2;DB;DP=13;Dels=0.00;HRun=0;HaplotypeScore=2.31;MQ=49.26;MQ0=0;QD=13.16;SB=8.03	GT:AD:DP:GL:GQ	0/1:7,6:12:-24.01,-3.62,-19.11:99
-chr1	3383981	rs56341824	G	T	14.44	PASS	AC=1;AF=0.50;AN=2;DB;DP=25;Dels=0.00;HRun=1;HaplotypeScore=1.70;MQ=59.25;MQ0=0;OQ=147.62;QD=5.90;SB=-6.99	GT:AD:DP:GL:GQ	0/1:17,8:23:-24.98,-6.93,-50.77:99
-chr1	3384110	rs10909948	C	T	220.05	PASS	AC=1;AF=0.50;AN=2;DB;DP=29;Dels=0.00;HRun=0;HaplotypeScore=1.82;MQ=54.75;MQ0=0;OQ=493.02;QD=17.00;SB=-263.55	GT:AD:DP:GL:GQ	0/1:13,16:28:-61.02,-8.44,-45.99:99
-chr1	3384316	rs4638054	T	C	12.90	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=1;HaplotypeScore=1.00;MQ=59.07;MQ0=0;OQ=1239.78;QD=27.55;SB=-421.16	GT:AD:DP:GL:GQ	1/1:0,45:41:-127.61,-12.37,-0.05:99
-chr1	3384500	rs4422946	A	G	10.27	PASS	AC=1;AF=0.50;AN=2;DB;DP=28;Dels=0.00;HRun=2;HaplotypeScore=1.93;MQ=60.00;MQ0=0;OQ=259.70;QD=9.27;SB=-73.94	GT:AD:DP:GL:GQ	0/1:16,12:25:-36.79,-7.54,-56.39:99
-chr1	3384534	rs4534324	T	C	47.15	PASS	AC=2;AF=1.00;AN=2;DB;DP=23;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=58.99;MQ0=0;OQ=674.08;QD=29.31;SB=-343.44	GT:AD:DP:GL:GQ	1/1:0,23:22:-71.01,-6.63,-0.02:66.16
-chr1	3384899	rs10797395	G	A	51.14	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=4.52;MQ=59.38;MQ0=0;OQ=712.83;QD=19.27;SB=-338.87	GT:AD:DP:GL:GQ	0/1:16,21:35:-85.11,-10.54,-50.14:99
-chr1	3385089	rs4553117	T	C	310.38	PASS	AC=2;AF=1.00;AN=2;DB;DP=34;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.76;MQ0=0;OQ=892.31;QD=26.24;SB=-387.26	GT:AD:DP:GL:GQ	1/1:0,34:29:-92.85,-8.75,-0.03:87.19
-chr1	3385248	rs28568519	C	G	124.68	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=2.55;MQ=59.45;MQ0=0;OQ=725.71;QD=17.28;SB=-286.30	GT:AD:DP:GL:GQ	0/1:20,22:38:-87.31,-11.46,-71.37:99
-chr1	3386469	rs881978	C	T	144.12	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=1;HaplotypeScore=2.64;MQ=59.25;MQ0=0;OQ=1109.69;QD=19.82;SB=-578.43	GT:AD:DP:GL:GQ	0/1:23,33:55:-130.82,-16.57,-79.57:99
-chr1	3386922	rs56309807	G	A	10.71	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=1;HaplotypeScore=6.20;MQ=58.23;MQ0=0;OQ=434.23;QD=11.74;SB=-179.25	GT:AD:DP:GL:GQ	0/1:20,16:31:-56.05,-9.34,-54.39:99
-chr1	3387048	rs2487677	T	C	22.85	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=2;HaplotypeScore=1.93;MQ=58.11;MQ0=0;OQ=1498.47;QD=31.88;SB=-723.23	GT:AD:DP:GL:GQ	1/1:0,46:43:-153.45,-12.96,-0.02:99
-chr1	3387315	rs1051515	G	A	124.17	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=3.61;MQ=59.55;MQ0=0;OQ=661.19;QD=15.03;SB=-242.52	GT:AD:DP:GL:GQ	0/1:21,23:41:-81.76,-12.36,-69.63:99
-chr1	3387424	rs1051517	C	T	185.79	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=1;HaplotypeScore=0.83;MQ=59.57;MQ0=0;OQ=722.32;QD=16.80;SB=-358.40	GT:AD:DP:GL:GQ	0/1:21,22:42:-88.17,-12.66,-71.34:99
-chr1	3387765	rs2487676	G	C	0.92	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=2;HaplotypeScore=1.72;MQ=59.56;MQ0=0;OQ=985.55;QD=23.47;SB=-402.96	GT:AD:DP:GL:GQ	0/1:13,29:39:-113.61,-11.77,-48.31:99
-chr1	3387785	rs10797396	G	A	343.20	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.58;MQ0=0;OQ=869.16;QD=19.75;SB=-452.50	GT:AD:DP:GL:GQ	0/1:15,29:41:-102.56,-12.36,-46.08:99
-chr1	3388739	.	G	C	3.92	PASS	AC=1;AF=0.50;AN=2;DP=14;Dels=0.00;HRun=1;HaplotypeScore=1.47;MQ=47.12;MQ0=0;OQ=99.91;QD=7.14;SB=-0.98	GT:AD:DP:GL:GQ	0/1:10,4:13:-17.20,-3.93,-33.90:99
-chr1	3388844	rs11579276	C	T	89.01	PASS	AC=1;AF=0.50;AN=2;DB;DP=26;Dels=0.00;HRun=0;HaplotypeScore=0.87;MQ=60.00;MQ0=0;OQ=228.92;QD=8.80;SB=-0.98	GT:AD:DP:GL:GQ	0/1:16,10:21:-32.51,-6.33,-40.91:99
-chr1	3389315	rs2493316	T	C	332.07	PASS	AC=1;AF=0.50;AN=2;DB;DP=32;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.28;MQ0=0;OQ=364.79;QD=11.40;SB=-143.65	GT:AD:DP:GL:GQ	0/1:18,14:32:-49.41,-9.65,-68.22:99
-chr1	3390585	rs12124659	C	T	210.63	PASS	AC=2;AF=1.00;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.96;MQ0=0;OQ=1350.80;QD=37.52;SB=-227.30	GT:AD:DP:GL:GQ	1/1:0,36:35:-138.68,-10.55,-0.01:99
-chr1	3391131	rs2487674	A	G	49.46	PASS	AC=2;AF=1.00;AN=2;DB;DP=78;Dels=0.00;HRun=1;HaplotypeScore=1.78;MQ=60.00;MQ0=0;OQ=2482.25;QD=31.82;SB=-1068.16	GT:AD:DP:GL:GQ	1/1:0,78:76:-251.87,-22.92,-0.06:99
-chr1	3392093	rs4648504	C	T	77.49	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=3.60;MQ=53.45;MQ0=1;OQ=1952.99;QD=36.17;SB=-850.15	GT:AD:DP:GL:GQ	1/1:1,53:50:-198.90,-15.06,-0.02:99
-chr1	3394087	rs2821041	C	T	330.28	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=0;HaplotypeScore=2.16;MQ=59.75;MQ0=0;OQ=1098.32;QD=14.64;SB=-325.80	GT:AD:DP:GL:GQ	0/1:41,34:73:-135.10,-21.99,-140.04:99
-chr1	3394997	rs61759244	C	G	135	PASS	AC=1;AF=0.50;AN=2;DB;DP=96;Dels=0.00;HRun=1;HaplotypeScore=0.48;MQ=59.37;MQ0=0;OQ=1716.91;QD=17.88;SB=-792.82	GT:AD:DP:GL:GQ	0/1:43,53:93:-203.04,-28.07,-171.23:99
-chr1	3395156	rs4648505	T	C	309	PASS	AC=1;AF=0.50;AN=2;DB;DP=95;Dels=0.00;HRun=0;HaplotypeScore=0.33;MQ=59.51;MQ0=0;OQ=921.20;QD=9.70;SB=-319.80	GT:AD:DP:GL:GQ	0/1:57,38:95:-124.03,-28.62,-233.81:99
-chr1	3401826	rs2821034	T	C	25.42	PASS	AC=2;AF=1.00;AN=2;DB;DP=22;Dels=0.00;HRun=1;HaplotypeScore=5.69;MQ=57.22;MQ0=0;OQ=336.60;QD=15.30;SB=-157.73	GT:AD:DP:GL:GQ	1/1:0,21:12:-37.26,-3.62,-0.02:36.06
-chr1	3406983	.	G	A	147.34	PASS	AC=1;AF=0.50;AN=2;DP=34;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=493.27;QD=14.51;SB=-172.20	GT:AD:DP:GL:GQ	0/1:17,17:33:-62.55,-9.94,-60.75:99
-chr1	3408031	rs7516662	A	G	45.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=1;HaplotypeScore=1.10;MQ=59.41;MQ0=0;OQ=599.81;QD=15.38;SB=-119.66	GT:AD:DP:GL:GQ	0/1:18,21:37:-74.41,-11.15,-64.16:99
-chr1	3408425	rs2821030	T	C	291.53	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=3.65;MQ=44.95;MQ0=0;OQ=775.65;QD=13.61;SB=-335.17	GT:AD:DP:GL:GQ	0/1:17,40:43:-93.82,-12.97,-49.21:99
-chr1	3408438	rs56284135	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=5;HaplotypeScore=43.60;MQ=44.49;MQ0=0;OQ=630.57;QD=9.70;SB=-139.40	GT:AD:DP:GL:GQ	0/1:28,36:49:-81.11,-14.77,-94.33:99
-chr1	3408476	rs57408931	G	C	181.30	DPFilter;Indel	AC=1;AF=0.50;AN=2;DB;DP=164;Dels=0.03;HRun=1;HaplotypeScore=218.91;MQ=41.51;MQ0=3;QD=1.11;SB=-63.16	GT:AD:DP:GL:GQ	0/1:117,24:115:-89.58,-68.17,-379.21:99
-chr1	3408478	rs57082253	G	A	513.03	DPFilter;Indel	AC=1;AF=0.50;AN=2;DB;DP=180;Dels=0.00;HRun=0;HaplotypeScore=193.59;MQ=41.21;MQ0=2;QD=2.85;SB=-274.73	GT:AD:DP:GL:GQ	0/1:134,38:129:-95.85,-41.26,-324.12:99
-chr1	3408517	rs7368034	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=115;Dels=0.00;HRun=0;HaplotypeScore=120.54;MQ=42.22;MQ0=3;OQ=514.65;QD=4.48;SB=-116.36	GT:AD:DP:GL:GQ	0/1:73,33:82:-88.72,-33.97,-192.96:99
-chr1	3411446	rs6669870	C	T	607.77	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=55.14;MQ0=0;OQ=1485.27;QD=36.23;SB=-614.81	GT:AD:DP:GL:GQ	1/1:0,41:39:-152.13,-11.76,-0.02:99
-chr1	3411518	rs2821009	A	T	529.19	PASS	AC=2;AF=1.00;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=51.77;MQ0=0;OQ=1252.41;QD=34.79;SB=-623.61	GT:AD:DP:GL:GQ	1/1:0,36:35:-128.84,-10.55,-0.01:99
-chr1	3411757	rs2821008	A	G	31.18	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=1;HaplotypeScore=1.15;MQ=59.41;MQ0=0;OQ=238.32;QD=6.11;SB=-110.60	GT:AD:DP:GL:GQ	0/1:25,14:37:-38.27,-11.15,-99.52:99
-chr1	3413327	rs947344	C	T	169.75	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=3.94;MQ=58.66;MQ0=0;OQ=1006.19;QD=19.35;SB=-478.56	GT:AD:DP:GL:GQ	0/1:21,31:45:-117.47,-13.57,-45.94:99
-chr1	3413493	rs2821006	A	G	514.34	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.60;MQ0=0;OQ=1416.92;QD=30.15;SB=-704.80	GT:AD:DP:GL:GQ	1/1:0,47:45:-145.32,-13.57,-0.04:99
-chr1	3413602	rs10797397	C	A	230.35	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=2.01;MQ=59.11;MQ0=0;OQ=969.58;QD=16.43;SB=-386.82	GT:AD:DP:GL:GQ	0/1:25,34:55:-116.81,-16.57,-75.73:99
-chr1	3414248	rs947345	G	A	253.45	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=2.28;MQ=59.23;MQ0=0;OQ=855.83;QD=14.26;SB=-381.90	GT:AD:DP:GL:GQ	0/1:31,29:53:-104.84,-15.98,-85.70:99
-chr1	3415290	rs2794358	A	G	117.33	PASS	AC=2;AF=1.00;AN=2;DB;DP=35;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1082.49;QD=30.93;SB=-492.45	GT:AD:DP:GL:GQ	1/1:0,35:32:-111.85,-9.64,-0.02:96.25
-chr1	3416927	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=48;Dels=0.00;HRun=1;HaplotypeScore=20.42;MQ=57.31;MQ0=0;OQ=341.32;QD=7.11;SB=-84.89	GT:AD:DP:GL:GQ	0/1:26,19:38:-51.91,-14.49,-87.40:99
-chr1	3416981	rs56310990	G	C	2.17	PASS	AC=1;AF=0.50;AN=2;DB;DP=31;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=51.26;MQ0=0;OQ=93.69;QD=3.02;SB=-14.81	GT:AD:DP:GL:GQ	0/1:25,6:25:-20.20,-7.54,-81.40:99
-chr1	3416998	.	C	T	35.62	PASS	AC=1;AF=0.50;AN=2;DP=30;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=49.93;MQ0=0;OQ=473.15;QD=15.77;SB=-230.75	GT:AD:DP:GL:GQ	0/1:10,20:24:-57.83,-7.23,-29.03:99
-chr1	3418020	rs2820999	T	G	23.07	PASS	AC=2;AF=1.00;AN=2;DB;DP=33;Dels=0.00;HRun=1;HaplotypeScore=1.35;MQ=59.30;MQ0=0;OQ=1099.49;QD=33.32;SB=-419.27	GT:AD:DP:GL:GQ	1/1:0,32:32:-113.54,-9.64,-0.01:96.28
-chr1	3418284	rs4648391	G	T	480.48	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.84;MQ0=0;OQ=1326.40;QD=33.16;SB=-497.29	GT:AD:DP:GL:GQ	1/1:0,40:39:-136.24,-11.75,-0.02:99
-chr1	3418288	rs4648514	C	T	298.40	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.81;MQ0=0;OQ=1504.64;QD=38.58;SB=-514.18	GT:AD:DP:GL:GQ	1/1:0,39:39:-154.07,-11.75,-0.02:99
-chr1	3418468	rs11585362	G	A	504.11	PASS	AC=2;AF=1.00;AN=2;DB;DP=29;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1061.06;QD=36.59;SB=-446.58	GT:AD:DP:GL:GQ	1/1:0,29:29:-109.71,-8.74,-0.02:87.27
-chr1	3419555	rs11587354	C	A	388.99	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.09;MQ0=0;OQ=2174.38;QD=35.07;SB=-358.82	GT:AD:DP:GL:GQ	1/1:0,62:58:-221.04,-17.47,-0.02:99
-chr1	3420506	.	T	A	214.92	PASS	AC=2;AF=1.00;AN=2;DP=30;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1094.09;QD=36.47;SB=-408.28	GT:AD:DP:GL:GQ	1/1:0,30:30:-113.00,-9.04,-0.01:90.28
-chr1	3422067	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=37;Dels=0.00;HRun=4;HaplotypeScore=5.56;MQ=56.93;MQ0=0;OQ=142.54;QD=3.85;SB=26.11	GT:AD:DP:GL:GQ	0/1:17,20:22:-24.18,-6.64,-53.52:99
-chr1	3422138	rs12045137	C	G	147.05	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.45;MQ0=0;OQ=1703.92;QD=40.57;SB=-765.63	GT:AD:DP:GL:GQ	1/1:0,42:41:-174.00,-12.36,-0.02:99
-chr1	3422853	rs11587498	G	A	175.29	PASS	AC=1;AF=0.50;AN=2;DB;DP=34;Dels=0.00;HRun=0;HaplotypeScore=2.43;MQ=60.00;MQ0=0;OQ=415.52;QD=12.22;SB=-203.18	GT:AD:DP:GL:GQ	0/1:20,14:31:-54.19,-9.35,-54.52:99
-chr1	3424377	rs2820995	A	G	162.79	PASS	AC=2;AF=1.00;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=1.63;MQ=58.66;MQ0=0;OQ=1805.64;QD=27.36;SB=-525.83	GT:AD:DP:GL:GQ	1/1:0,66:60:-184.23,-18.11,-0.08:99
-chr1	3424844	rs2794362	G	C	500.34	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.07;MQ0=0;OQ=1899.04;QD=42.20;SB=-801.86	GT:AD:DP:GL:GQ	1/1:0,45:44:-193.50,-13.26,-0.01:99
-chr1	3427795	rs2794365	T	C	272.59	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=59.56;MQ0=0;OQ=540.74;QD=12.87;SB=-223.28	GT:AD:DP:GL:GQ	0/1:22,20:39:-69.11,-11.75,-73.06:99
-chr1	3428053	rs11587384	G	A	58.66	PASS	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=2.73;MQ=58.59;MQ0=0;OQ=656.10;QD=19.88;SB=-350.39	GT:AD:DP:GL:GQ	0/1:13,20:30:-77.94,-9.05,-31.18:99
-chr1	3428530	rs10909958	C	T	169.55	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=1.67;MQ=60.00;MQ0=0;OQ=649.49;QD=10.31;SB=-164.81	GT:AD:DP:GL:GQ	0/1:40,23:61:-86.62,-18.39,-128.91:99
-chr1	3429888	rs10797398	G	C	1.63	PASS	AC=2;AF=1.00;AN=2;DB;DP=37;Dels=0.00;HRun=2;HaplotypeScore=0.26;MQ=58.87;MQ0=0;OQ=1501.66;QD=40.59;SB=-598.80	GT:AD:DP:GL:GQ	1/1:0,37:37:-153.77,-11.16,-0.02:99
-chr1	3430507	rs2794322	T	C	118.81	PASS	AC=2;AF=1.00;AN=2;DB;DP=33;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=864.34;QD=26.19;SB=-416.15	GT:AD:DP:GL:GQ	1/1:0,33:29:-90.06,-8.75,-0.04:87.16
-chr1	3430803	rs12049449	A	C	10.61	PASS	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=3;HaplotypeScore=1.13;MQ=59.39;MQ0=0;OQ=1279.24;QD=33.66;SB=-506.06	GT:AD:DP:GL:GQ	1/1:0,38:37:-131.52,-11.15,-0.02:99
-chr1	3431124	rs12093117	G	A	200.25	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=2.17;MQ=59.61;MQ0=0;OQ=828.18;QD=17.25;SB=-263.28	GT:AD:DP:GL:GQ	0/1:20,28:45:-99.67,-13.57,-58.69:99
-chr1	3432615	rs11589895	G	A	209.87	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=0.98;MQ=58.89;MQ0=0;OQ=771.91;QD=18.38;SB=-386.90	GT:AD:DP:GL:GQ	0/1:19,23:42:-93.13,-12.66,-62.18:99
-chr1	3433053	.	C	T	70.11	PASS	AC=1;AF=0.50;AN=2;DP=51;Dels=0.00;HRun=0;HaplotypeScore=3.41;MQ=58.26;MQ0=0;OQ=707.05;QD=13.86;SB=-362.49	GT:AD:DP:GL:GQ	0/1:26,25:48:-88.45,-14.46,-91.49:99
-chr1	3435213	rs2821068	G	C	38.82	PASS	AC=2;AF=1.00;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=2.67;MQ=58.11;MQ0=0;OQ=1371.97;QD=37.08;SB=-540.03	GT:AD:DP:GL:GQ	1/1:0,36:33:-140.79,-9.95,-0.01:99
-chr1	3435771	rs883427	G	A	416.41	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.00;MQ0=0;OQ=1899.02;QD=38.76;SB=-741.50	GT:AD:DP:GL:GQ	1/1:0,49:48:-193.50,-14.46,-0.01:99
-chr1	3436171	rs11589175	G	A	118.39	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=1;HaplotypeScore=1.00;MQ=60.00;MQ0=0;OQ=494.22;QD=9.88;SB=-114.31	GT:AD:DP:GL:GQ	0/1:32,17:48:-69.83,-17.13,-113.83:99
-chr1	3436855	rs11811714	C	T	197.39	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=1.64;MQ=58.93;MQ0=0;OQ=2210.05;QD=36.23;SB=-988.23	GT:AD:DP:GL:GQ	1/1:0,61:58:-224.62,-17.49,-0.03:99
-chr1	3436977	rs56103034	G	C	151.47	PASS	AC=1;AF=0.50;AN=2;DB;DP=28;Dels=0.00;HRun=0;HaplotypeScore=2.05;MQ=60.00;MQ0=0;OQ=361.61;QD=12.91;SB=-169.18	GT:AD:DP:GL:GQ	0/1:15,13:27:-47.59,-8.14,-66.07:99
-chr1	3437069	.	A	C	13.05	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=53;Dels=0.00;HRun=2;HaplotypeScore=6.13;MQ=58.68;MQ0=0;QD=0.25;SB=74.24	GT:AD:DP:GL:GQ	0/1:37,15:37:-15.71,-11.15,-109.98:45.67
-chr1	3438669	rs61762171	G	A	197.19	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=1.08;MQ=59.50;MQ0=0;OQ=831.35;QD=18.07;SB=-356.42	GT:AD:DP:GL:GQ	0/1:21,25:43:-99.38,-12.97,-55.25:99
-chr1	3438727	rs55762450	C	A	163.97	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=3.39;MQ=59.54;MQ0=0;OQ=660.37;QD=13.21;SB=-236.28	GT:AD:DP:GL:GQ	0/1:20,30:45:-82.89,-13.57,-69.96:99
-chr1	3440115	rs2493313	T	C	297.46	PASS	AC=2;AF=1.00;AN=2;DB;DP=29;Dels=0.00;HRun=1;HaplotypeScore=-0.06;MQ=56.74;MQ0=0;OQ=1008.77;QD=34.79;SB=-528.20	GT:AD:DP:GL:GQ	1/1:0,29:29:-104.47,-8.74,-0.01:87.25
-chr1	3444452	rs9970944	G	T	111.06	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=1;HaplotypeScore=2.08;MQ=58.11;MQ0=0;OQ=1564.30;QD=32.59;SB=-784.47	GT:AD:DP:GL:GQ	1/1:1,47:45:-160.04,-13.56,-0.02:99
-chr1	3445102	rs12049456	G	A	432	PASS	AC=2;AF=1.00;AN=2;DB;DP=34;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.32;MQ0=0;OQ=1256.64;QD=36.96;SB=-508.18	GT:AD:DP:GL:GQ	1/1:0,34:33:-129.26,-9.95,-0.01:99
-chr1	3445120	.	C	G	39.08	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=46;Dels=0.00;HRun=0;HaplotypeScore=3.43;MQ=55.59;MQ0=2;QD=0.85;SB=59.22	GT:AD:DP:GL:GQ	0/1:40,6:41:-19.55,-12.36,-150.78:71.92
-chr1	3448511	rs2821064	A	T	100.60	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=4.44;MQ=58.81;MQ0=0;OQ=526.36;QD=13.50;SB=-238.77	GT:AD:DP:GL:GQ	0/1:20,19:39:-67.67,-11.75,-70.26:99
-chr1	3448541	rs2794331	G	C	111.94	PASS	AC=1;AF=0.50;AN=2;DB;DP=36;Dels=0.00;HRun=2;HaplotypeScore=0.83;MQ=58.71;MQ0=0;OQ=556.37;QD=15.45;SB=-245.10	GT:AD:DP:GL:GQ	0/1:19,17:32:-68.58,-9.65,-62.08:99
-chr1	3448992	rs12065874	C	T	177.16	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=1.40;MQ=59.46;MQ0=0;OQ=793.34;QD=18.45;SB=-374.15	GT:AD:DP:GL:GQ	0/1:19,24:39:-94.38,-11.76,-47.24:99
-chr1	3452764	rs10797401	T	C	166.54	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=1;HaplotypeScore=1.03;MQ=59.52;MQ0=0;OQ=647.76;QD=16.61;SB=-319.33	GT:AD:DP:GL:GQ	0/1:16,23:38:-79.51,-11.45,-58.06:99
-chr1	3453088	rs28479691	G	A	97.36	PASS	AC=1;AF=0.50;AN=2;DB;DP=22;Dels=0.00;HRun=0;HaplotypeScore=3.65;MQ=55.43;MQ0=1;OQ=249.39;QD=11.34;SB=-131.56	GT:AD:DP:GL:GQ	0/1:11,11:18:-33.65,-5.43,-32.56:99
-chr1	3453209	rs13374309	C	G	5.21	PASS	AC=1;AF=0.50;AN=2;DB;DP=19;Dels=0.00;HRun=2;HaplotypeScore=3.14;MQ=57.20;MQ0=0;OQ=292.98;QD=15.42;SB=-154.58	GT:AD:DP:GL:GQ	0/1:9,10:17:-37.71,-5.13,-33.06:99
-chr1	3455556	rs7539836	A	G	113.09	PASS	AC=1;AF=0.50;AN=2;DB;DP=26;Dels=0.00;HRun=1;HaplotypeScore=0.48;MQ=60.00;MQ0=0;OQ=359.37;QD=13.82;SB=-189.55	GT:AD:DP:GL:GQ	0/1:12,14:25:-46.76,-7.53,-43.20:99
-chr1	3458010	rs7533321	G	A	155.67	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=2.53;MQ=59.46;MQ0=0;OQ=810.48;QD=18.85;SB=-428.48	GT:AD:DP:GL:GQ	0/1:17,25:39:-96.09,-11.75,-47.40:99
-chr1	3458818	rs6413780	A	C	146.27	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=59.53;MQ0=0;OQ=401.98;QD=8.20;SB=-115.74	GT:AD:DP:GL:GQ	0/1:29,20:47:-57.64,-14.16,-107.92:99
-chr1	3458949	rs7355038	G	A	151.46	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=2.86;MQ=59.19;MQ0=0;OQ=998.13;QD=19.19;SB=-471.50	GT:AD:DP:GL:GQ	0/1:22,30:52:-118.77,-15.67,-71.64:99
-chr1	3460223	rs10909965	T	G	23.16	PASS	AC=1;AF=0.50;AN=2;DB;DP=19;Dels=0.00;HRun=1;HaplotypeScore=2.59;MQ=58.78;MQ0=0;OQ=201.44;QD=10.60;SB=-54.94	GT:AD:DP:GL:GQ	0/1:10,9:17:-28.55,-5.12,-30.64:99
-chr1	3460241	rs12078542	T	C	57.79	PASS	AC=1;AF=0.50;AN=2;DB;DP=29;Dels=0.00;HRun=0;HaplotypeScore=2.32;MQ=58.39;MQ0=0;OQ=207.08;QD=7.14;SB=-117.62	GT:AD:DP:GL:GQ	0/1:17,12:22:-30.63,-6.64,-46.05:99
-chr1	3460729	rs1557089	T	G	340.61	PASS	AC=1;AF=0.50;AN=2;DB;DP=24;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.05;MQ0=0;OQ=311.87;QD=12.99;SB=-162.75	GT:AD:DP:GL:GQ	0/1:12,12:20:-40.49,-6.02,-30.26:99
-chr1	3462253	rs7516641	A	G	481.67	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.57;MQ0=0;OQ=514.29;QD=11.96;SB=-180.52	GT:AD:DP:GL:GQ	0/1:23,20:43:-67.67,-12.96,-92.19:99
-chr1	3466443	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=45;Dels=0.02;HRun=17;HaplotypeScore=21.57;MQ=53.85;MQ0=0;OQ=205.19;QD=4.56;SB=-78.83	GT:AD:DP:GL:GQ	0/1:24,20:32:-33.15,-9.34,-78.96:99
-chr1	3466697	.	C	G	64.69	PASS	AC=1;AF=0.50;AN=2;DP=54;Dels=0.00;HRun=1;HaplotypeScore=0.65;MQ=58.96;MQ0=0;OQ=671.74;QD=12.44;SB=-259.12	GT:AD:DP:GL:GQ	0/1:31,23:50:-85.55,-15.09,-116.59:99
-chr1	3474782	rs56410789	G	A	184.63	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=3.77;MQ=59.61;MQ0=0;OQ=703.19;QD=14.65;SB=-349.63	GT:AD:DP:GL:GQ	0/1:25,22:45:-89.80,-16.20,-75.19:99
-chr1	3480873	.	T	C	0.25	PASS	AC=1;AF=0.50;AN=2;DP=20;Dels=0.00;HRun=3;HaplotypeScore=1.82;MQ=59.06;MQ0=0;OQ=234.33;QD=11.72;SB=-33.65	GT:AD:DP:GL:GQ	0/1:10,10:19:-32.44,-5.72,-41.44:99
-chr1	3480967	rs4431782	T	C	9.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=27;Dels=0.00;HRun=1;HaplotypeScore=2.79;MQ=59.14;MQ0=0;OQ=141.27;QD=5.23;SB=-37.66	GT:AD:DP:GL:GQ	0/1:16,11:24:-24.65,-7.24,-64.66:99
-chr1	3482056	rs2821057	A	G	50.28	Indel	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.04;HRun=0;HaplotypeScore=40.06;MQ=43.76;MQ0=3;QD=0.93;SB=-23.61	GT:AD:DP:GL:GQ	0/1:44,8:48:-22.18,-13.87,-154.71:83.12
-chr1	3483124	rs2821056	A	T	583.97	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.89;MQ0=0;OQ=1839.69;QD=37.54;SB=-868.96	GT:AD:DP:GL:GQ	1/1:0,49:49:-187.56,-14.76,-0.01:99
-chr1	3483560	rs2821055	T	C	111.86	PASS	AC=2;AF=1.00;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=2.95;MQ=57.13;MQ0=0;OQ=1375.27;QD=31.98;SB=-687.18	GT:AD:DP:GL:GQ	1/1:0,43:41:-141.13,-12.35,-0.02:99
-chr1	3483710	rs2821054	G	T	266.86	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=59.07;MQ0=0;OQ=1733.58;QD=34.67;SB=-747.08	GT:AD:DP:GL:GQ	1/1:0,50:50:-176.97,-15.07,-0.02:99
-chr1	3484389	rs2794348	A	G	1.13	PASS	AC=2;AF=1.00;AN=2;DB;DP=36;Dels=0.00;HRun=1;HaplotypeScore=6.39;MQ=58.05;MQ0=0;OQ=1127.20;QD=31.31;SB=-545.88	GT:AD:DP:GL:GQ	1/1:0,36:34:-116.33,-10.25,-0.02:99
-chr1	3484478	rs2794347	G	C	132.33	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=58.47;MQ0=0;OQ=1529.91;QD=34.77;SB=-715.91	GT:AD:DP:GL:GQ	1/1:0,44:40:-156.62,-12.09,-0.05:99
-chr1	3484580	rs2794346	G	A	64.20	PASS	AC=2;AF=1.00;AN=2;DB;DP=34;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=60.00;MQ0=0;OQ=980.89;QD=28.85;SB=-342.41	GT:AD:DP:GL:GQ	1/1:1,32:27:-101.70,-8.14,-0.02:81.23
-chr1	3485237	rs2794344	G	A	227.50	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=1.56;MQ=58.20;MQ0=0;OQ=1135.92;QD=18.03;SB=-434.44	GT:AD:DP:GL:GQ	0/1:26,37:58:-134.36,-17.49,-77.46:99
-chr1	3485276	rs2794343	G	T	262.44	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=1.65;MQ=58.14;MQ0=0;OQ=635.86;QD=12.00;SB=-319.27	GT:AD:DP:GL:GQ	0/1:28,25:50:-81.94,-15.07,-81.25:99
-chr1	3485297	rs2794342	T	C	164.76	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=1;HaplotypeScore=2.19;MQ=55.76;MQ0=0;OQ=873.19;QD=16.17;SB=-382.03	GT:AD:DP:GL:GQ	0/1:20,34:51:-105.98,-15.38,-70.34:99
-chr1	3485317	.	C	T	0.61	PASS	AC=1;AF=0.50;AN=2;DP=54;Dels=0.00;HRun=0;HaplotypeScore=2.60;MQ=55.51;MQ0=0;OQ=217.69;QD=4.03;SB=-62.86	GT:AD:DP:GL:GQ	0/1:42,11:46:-38.92,-13.87,-116.02:99
-chr1	3485320	.	C	T	0.57	PASS	AC=1;AF=0.50;AN=2;DP=52;Dels=0.00;HRun=0;HaplotypeScore=1.58;MQ=55.81;MQ0=0;OQ=186.10;QD=3.58;SB=-62.80	GT:AD:DP:GL:GQ	0/1:41,10:44:-35.15,-13.26,-125.21:99
-chr1	3485329	rs56044258	C	G	8.19	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=1;HaplotypeScore=4.19;MQ=55.35;MQ0=0;OQ=1813.27;QD=38.58;SB=-922.42	GT:AD:DP:GL:GQ	1/1:0,47:43:-184.93,-12.96,-0.02:99
-chr1	3485401	rs2821053	T	C	608.29	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=56.09;MQ0=0;OQ=2115.06;QD=34.11;SB=-1060.08	GT:AD:DP:GL:GQ	1/1:0,62:60:-215.11,-18.07,-0.02:99
-chr1	3485841	rs2794341	T	C	133.27	PASS	AC=2;AF=1.00;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=3.28;MQ=59.57;MQ0=0;OQ=1280.08;QD=29.77;SB=-579.98	GT:AD:DP:GL:GQ	1/1:0,43:41:-131.63,-12.37,-0.04:99
-chr1	3485914	rs2821052	G	C	139.61	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=2.14;MQ=59.60;MQ0=0;OQ=1918.65;QD=40.82;SB=-901.42	GT:AD:DP:GL:GQ	1/1:0,47:46:-195.47,-13.86,-0.02:99
-chr1	3486188	rs2821051	T	C	180.06	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=58.51;MQ0=0;OQ=1502.08;QD=31.96;SB=-651.24	GT:AD:DP:GL:GQ	1/1:0,47:44:-153.81,-13.26,-0.02:99
-chr1	3486339	rs2794340	T	C	195.59	PASS	AC=2;AF=1.00;AN=2;DB;DP=27;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=747.54;QD=27.69;SB=-185.41	GT:AD:DP:GL:GQ	1/1:0,27:25:-78.37,-7.54,-0.03:75.17
-chr1	3486805	rs2794339	G	A	3.01	PASS	AC=2;AF=1.00;AN=2;DB;DP=23;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=790.02;QD=34.35;SB=-39.54	GT:AD:DP:GL:GQ	1/1:0,23:21:-82.60,-6.33,-0.01:63.20
-chr1	3486898	.	C	G	23.94	LowQual	AC=1;AF=0.50;AN=2;DP=11;Dels=0.00;HRun=1;HaplotypeScore=3.33;MQ=60.00;MQ0=0;QD=2.18;SB=-10.00	GT:AD:DP:GL:GQ	0/1:4,7:5:-7.19,-1.52,-10.35:56.76
-chr1	3486969	rs2821050	A	G	170.61	PASS	AC=2;AF=1.00;AN=2;DB;DP=10;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.66;MQ0=0;OQ=230.85;QD=23.09;SB=-101.03	GT:AD:DP:GL:GQ	1/1:0,10:9:-26.68,-2.72,-0.01:27.04
-chr1	3487085	rs2821049	G	A	44.18	PASS	AC=2;AF=1.00;AN=2;DB;DP=31;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=58.41;MQ0=1;OQ=1103.43;QD=35.59;SB=-441.32	GT:AD:DP:GL:GQ	1/1:0,31:29:-113.94,-8.74,-0.01:87.28
-chr1	3487785	rs2821048	T	C	3.27	PASS	AC=2;AF=1.00;AN=2;DB;DP=27;Dels=0.00;HRun=3;HaplotypeScore=0.79;MQ=59.07;MQ0=0;OQ=795.96;QD=29.48;SB=-323.61	GT:AD:DP:GL:GQ	1/1:0,26:24:-83.19,-7.23,-0.01:72.20
-chr1	3488346	rs2821047	A	C	41.05	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=2;HaplotypeScore=0.32;MQ=59.50;MQ0=0;OQ=1833.45;QD=33.34;SB=-923.21	GT:AD:DP:GL:GQ	1/1:0,55:53:-186.95,-15.96,-0.02:99
-chr1	3488543	rs2794338	G	A	5.07	PASS	AC=2;AF=1.00;AN=2;DB;DP=30;Dels=0.00;HRun=1;HaplotypeScore=2.25;MQ=59.38;MQ0=0;OQ=1108.21;QD=36.94;SB=-425.07	GT:AD:DP:GL:GQ	1/1:0,30:29:-114.42,-8.74,-0.01:87.27
-chr1	3488600	rs2821046	T	C	153.98	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=1.59;MQ=59.16;MQ0=0;OQ=1640.68;QD=29.83;SB=-825.95	GT:AD:DP:GL:GQ	1/1:0,55:53:-167.70,-15.99,-0.05:99
-chr1	3488885	rs2794337	T	G	92.94	PASS	AC=2;AF=1.00;AN=2;DB;DP=35;Dels=0.00;HRun=0;HaplotypeScore=0.58;MQ=58.67;MQ0=0;OQ=1036.65;QD=29.62;SB=-469.86	GT:AD:DP:GL:GQ	1/1:0,35:34:-107.28,-10.25,-0.03:99
-chr1	3488911	rs2794336	C	A	491.72	PASS	AC=2;AF=1.00;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.38;MQ0=0;OQ=1159.72;QD=31.34;SB=-543.79	GT:AD:DP:GL:GQ	1/1:0,37:35:-119.58,-10.55,-0.02:99
-chr1	3489106	rs2821045	A	G	0.45	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=15.70;MQ=58.09;MQ0=0;OQ=1342.02;QD=27.39;SB=-607.24	GT:AD:DP:GL:GQ	1/1:1,48:44:-137.83,-13.27,-0.05:99
-chr1	3489389	rs2794335	C	G	104.49	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.63;MQ=56.91;MQ0=0;OQ=2044.98;QD=41.73;SB=-1038.63	GT:AD:DP:GL:GQ	1/1:0,49:48:-208.10,-14.46,-0.02:99
-chr1	3489541	rs2821044	A	G	154.02	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=51.93;MQ0=0;OQ=1856.46;QD=32.01;SB=-939.38	GT:AD:DP:GL:GQ	1/1:0,58:53:-189.25,-15.96,-0.02:99
-chr1	3489730	.	G	A	0.03	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=81;Dels=0.00;HRun=0;HaplotypeScore=5.70;MQ=38.46;MQ0=13;OQ=219.88;QD=2.71;SB=-20.96	GT:AD:DP:GL:GQ	0/1:65,15:58:-42.77,-17.50,-145.53:99
-chr1	3489856	rs61762194	A	G	22.79	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=13.90;MQ=6.46;MQ0=57;QD=0.35;SB=-34.94	GT:AD:DP:GL:GQ	0/1:19,46:3:-6.46,-0.90,-4.17:32.64
-chr1	3490108	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=122;Dels=0.00;HRun=0;HaplotypeScore=22.57;MQ=11.21;MQ0=79;OQ=52.09;QD=0.43;SB=2.03	GT:AD:DP:GL:GQ	0/1:64,55:12:-12.11,-3.62,-27.46:84.92
-chr1	3490124	.	G	C	37.51	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=93;Dels=0.00;HRun=1;HaplotypeScore=28.89;MQ=9.24;MQ0=69;QD=0.40;SB=-36.43	GT:AD:DP:GL:GQ	0/1:52,37:3:-7.94,-0.91,-4.59:36.89
-chr1	3490204	.	G	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=76;Dels=0.00;HRun=0;HaplotypeScore=9.07;MQ=18.33;MQ0=40;OQ=221.10;QD=2.91;SB=-48.02	GT:AD:DP:GL:GQ	0/1:38,34:16:-30.22,-4.83,-23.80:99
-chr1	3490220	.	G	C	14.47	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=102;Dels=0.00;HRun=1;HaplotypeScore=18.26;MQ=21.29;MQ0=44;QD=0.14;SB=5.04	GT:AD:DP:GL:GQ	0/1:89,13:27:-12.87,-8.16,-91.89:47.15
-chr1	3490238	.	G	C	29.48	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=124;Dels=0.00;HRun=1;HaplotypeScore=19.99;MQ=24.83;MQ0=54;QD=0.24;SB=65.23	GT:AD:DP:GL:GQ	0/1:92,32:39:-18.02,-11.79,-132.68:62.32
-chr1	3490274	rs61762197	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=195;Dels=0.00;HRun=0;HaplotypeScore=31.55;MQ=26.52;MQ0=97;OQ=140.78;QD=0.72;SB=53.20	GT:AD:DP:GL:GQ	0/1:172,21:60:-35.47,-18.11,-209.36:99
-chr1	3490294	rs61762198	G	A	0.03	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DB;DP=144;Dels=0.00;HRun=0;HaplotypeScore=18.88;MQ=30.38;MQ0=61;OQ=410.69;QD=2.85;SB=-6.44	GT:AD:DP:GL:GQ	0/1:110,32:48:-58.84,-14.49,-102.11:99
-chr1	3490309	rs61762199	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=126;Dels=0.00;HRun=0;HaplotypeScore=43.37;MQ=33.08;MQ0=48;OQ=683.06;QD=5.42;SB=-30.63	GT:AD:DP:GL:GQ	0/1:101,25:47:-85.76,-14.17,-79.46:99
-chr1	3490312	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=117;Dels=0.00;HRun=0;HaplotypeScore=46.24;MQ=34.26;MQ0=40;OQ=200.77;QD=1.72;SB=-32.50	GT:AD:DP:GL:GQ	0/1:85,31:40:-35.43,-12.07,-95.25:99
-chr1	3490435	rs2995009	G	A	597.77	PASS	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=54.35;MQ0=0;OQ=1467.09;QD=38.61;SB=-711.36	GT:AD:DP:GL:GQ	1/1:0,38:38:-150.31,-11.45,-0.01:99
-chr1	3491040	rs2995008	T	C	284.33	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.74;MQ=60.00;MQ0=0;OQ=1828.19;QD=32.07;SB=-897.29	GT:AD:DP:GL:GQ	1/1:0,57:55:-186.44,-16.58,-0.04:99
-chr1	3492147	.	G	A	23.72	PASS	AC=2;AF=1.00;AN=2;DP=51;Dels=0.00;HRun=0;HaplotypeScore=2.62;MQ=55.26;MQ0=1;OQ=1679.66;QD=32.93;SB=-585.96	GT:AD:DP:GL:GQ	1/1:1,50:45:-171.57,-13.56,-0.02:99
-chr1	3492404	rs2487682	G	A	109.67	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=1.32;MQ=55.97;MQ0=0;OQ=1664.54;QD=34.68;SB=-566.34	GT:AD:DP:GL:GQ	1/1:2,46:43:-170.05,-12.95,-0.01:99
-chr1	3493214	rs10909977	C	T	290.65	PASS	AC=2;AF=1.00;AN=2;DB;DP=26;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.46;MQ0=0;OQ=982.44;QD=37.79;SB=-341.35	GT:AD:DP:GL:GQ	1/1:0,26:26:-101.84,-7.83,-0.01:78.25
-chr1	3493427	rs12133810	G	A	0.43	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=2;HaplotypeScore=6.10;MQ=60.00;MQ0=0;OQ=1731.58;QD=36.07;SB=-586.35	GT:AD:DP:GL:GQ	1/1:0,47:45:-176.76,-13.56,-0.02:99
-chr1	3493933	rs12139206	T	C	718.86	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=55.76;MQ0=0;OQ=2133.52;QD=33.87;SB=-1000.69	GT:AD:DP:GL:GQ	1/1:0,63:61:-216.96,-18.38,-0.03:99
-chr1	3494278	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=57;Dels=0.00;HRun=0;HaplotypeScore=29.95;MQ=39.18;MQ0=0;OQ=57.06;QD=1.00;SB=32.12	GT:AD:DP:GL:GQ	0/1:51,6:50:-24.05,-15.06,-154.00:89.90
-chr1	3494280	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=56;Dels=0.00;HRun=0;HaplotypeScore=31.95;MQ=39.34;MQ0=0;OQ=98.32;QD=1.76;SB=29.10	GT:AD:DP:GL:GQ	0/1:46,10:49:-27.88,-14.76,-138.47:99
-chr1	3494307	.	T	G	201.76	SnpCluster	AC=1;AF=0.50;AN=2;DP=58;Dels=0.10;HRun=2;HaplotypeScore=112.88;MQ=32.38;MQ0=0;QD=3.48;SB=-117.62	GT:AD:DP:GL:GQ	0/1:34,18:28:-31.59,-8.13,-64.60:99
-chr1	3494310	rs61762200	C	A	192.29	SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=121.85;MQ=30.79;MQ0=0;QD=3.43;SB=-60.75	GT:AD:DP:GL:GQ	0/1:36,18:28:-30.95,-8.43,-66.22:99
-chr1	3494317	.	G	T	32.47	LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=54;Dels=0.00;HRun=0;HaplotypeScore=81.33;MQ=29.05;MQ0=0;QD=0.60;SB=-10.00	GT:AD:DP:GL:GQ	0/1:41,11:25:-14.06,-7.53,-79.10:65.31
-chr1	3494320	.	G	A	676.99	SnpCluster	AC=1;AF=0.50;AN=2;DP=52;Dels=0.00;HRun=0;HaplotypeScore=53.82;MQ=29.06;MQ0=0;QD=13.02;SB=-10.00	GT:AD:DP:GL:GQ	0/1:6,41:24:-78.21,-7.23,-14.28:70.50
-chr1	3494331	.	C	T	224.74	SnpCluster	AC=1;AF=0.50;AN=2;DP=48;Dels=0.00;HRun=0;HaplotypeScore=74.35;MQ=28.87;MQ0=0;QD=4.68;SB=-10.00	GT:AD:DP:GL:GQ	0/1:29,19:11:-29.07,-3.31,-14.19:99
-chr1	3494338	.	G	A	223.95	SnpCluster	AC=1;AF=0.50;AN=2;DP=47;Dels=0.00;HRun=0;HaplotypeScore=78.36;MQ=28.88;MQ0=0;QD=4.76;SB=-10.00	GT:AD:DP:GL:GQ	0/1:25,22:10:-28.69,-3.01,-9.91:68.95
-chr1	3494340	.	G	A	250.50	SnpCluster	AC=1;AF=0.50;AN=2;DP=47;Dels=0.00;HRun=0;HaplotypeScore=74.35;MQ=28.88;MQ0=0;QD=5.33;SB=-10.00	GT:AD:DP:GL:GQ	0/1:9,38:10:-31.35,-3.01,-6.64:36.27
-chr1	3494344	.	G	A	85.25	SnpCluster	AC=1;AF=0.50;AN=2;DP=46;Dels=0.00;HRun=1;HaplotypeScore=68.88;MQ=28.67;MQ0=0;QD=1.85;SB=-10.00	GT:AD:DP:GL:GQ	0/1:41,5:14:-16.03,-4.22,-34.38:99
-chr1	3494347	.	A	T	143.02	SnpCluster	AC=1;AF=0.50;AN=2;DP=37;Dels=0.00;HRun=0;HaplotypeScore=69.92;MQ=28.59;MQ0=0;QD=3.87;SB=-10.00	GT:AD:DP:GL:GQ	0/1:2,19:7:-19.69,-2.11,-6.98:48.71
-chr1	3494357	.	G	T	24.90	LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=34;Dels=0.00;HRun=0;HaplotypeScore=73.10;MQ=28.56;MQ0=0;QD=0.73;SB=-10.00	GT:AD:DP:GL:GQ	0/1:18,15:5:-7.28,-1.51,-10.87:57.73
-chr1	3494360	.	G	A	23.23	LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=32;Dels=0.00;HRun=0;HaplotypeScore=81.86;MQ=28.53;MQ0=0;QD=0.73;SB=-10.00	GT:AD:DP:GL:GQ	0/1:12,11:6:-7.41,-1.81,-14.17:56.05
-chr1	3494364	.	G	A	65.76	SnpCluster	AC=1;AF=0.50;AN=2;DP=34;Dels=0.00;HRun=1;HaplotypeScore=67.04;MQ=28.12;MQ0=1;QD=1.93;SB=-10.00	GT:AD:DP:GL:GQ	0/1:29,5:7:-11.97,-2.11,-13.57:98.60
-chr1	3494367	.	G	T	116.01	SnpCluster	AC=1;AF=0.50;AN=2;DP=34;Dels=0.03;HRun=0;HaplotypeScore=76.86;MQ=28.12;MQ0=1;QD=3.41;SB=-10.00	GT:AD:DP:GL:GQ	0/1:14,19:9:-17.59,-2.71,-15.13:99
-chr1	3494370	.	G	C	77.61	SnpCluster	AC=1;AF=0.50;AN=2;DP=27;Dels=0.00;HRun=1;HaplotypeScore=62.98;MQ=28.25;MQ0=1;QD=2.87;SB=-10.00	GT:AD:DP:GL:GQ	0/1:8,7:9:-20.69,-9.65,-24.68:99
-chr1	3494377	.	G	T	26.91	LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=26;Dels=0.00;HRun=0;HaplotypeScore=64.80;MQ=28.23;MQ0=1;QD=1.03;SB=-10.00	GT:AD:DP:GL:GQ	0/1:20,4:4:-7.18,-1.20,-7.71:59.73
-chr1	3494378	.	G	A	98.30	SnpCluster	AC=1;AF=0.50;AN=2;DP=26;Dels=0.00;HRun=0;HaplotypeScore=59.24;MQ=28.44;MQ0=1;QD=3.78;SB=-10.00	GT:AD:DP:GL:GQ	0/1:15,11:7:-15.22,-2.11,-10.61:84.98
-chr1	3494380	.	G	A	43.51	LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=26;Dels=0.00;HRun=0;HaplotypeScore=65.22;MQ=28.44;MQ0=1;QD=1.67;SB=-10.00	GT:AD:DP:GL:GQ	0/1:8,15:4:-12.40,-4.77,-6.87:20.98
-chr1	3494384	.	G	A	26.23	LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=26;Dels=0.00;HRun=1;HaplotypeScore=51.99;MQ=28.44;MQ0=1;QD=1.01;SB=-10.00	GT:AD:DP:GL:GQ	0/1:20,6:7:-8.02,-2.11,-15.94:59.06
-chr1	3494390	.	G	A	130.87	SnpCluster	AC=1;AF=0.50;AN=2;DP=20;Dels=0.00;HRun=0;HaplotypeScore=39.84;MQ=28.27;MQ0=1;QD=6.54;SB=-10.00	GT:AD:DP:GL:GQ	0/1:4,12:6:-18.18,-1.81,-3.67:18.63
-chr1	3494414	.	G	A	19.25	LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=17;Dels=0.00;HRun=1;HaplotypeScore=22.06;MQ=28.20;MQ0=1;QD=1.13;SB=-10.00	GT:AD:DP:GL:GQ	0/1:15,2:8:-7.61,-2.41,-20.11:52.04
-chr1	3494416	.	G	C	113.75	SnpCluster	AC=1;AF=0.50;AN=2;DP=18;Dels=0.00;HRun=0;HaplotypeScore=18.24;MQ=27.40;MQ0=1;QD=6.32;SB=-10.00	GT:AD:DP:GL:GQ	0/1:14,4:8:-17.07,-2.41,-16.09:99
-chr1	3494417	.	A	T	24.41	LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=18;Dels=0.00;HRun=0;HaplotypeScore=25.18;MQ=27.40;MQ0=1;QD=1.36;SB=-10.00	GT:AD:DP:GL:GQ	0/1:4,5:8:-14.34,-8.61,-21.17:57.23
-chr1	3494420	.	C	A	17.09	LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=18;Dels=0.00;HRun=0;HaplotypeScore=28.79;MQ=27.40;MQ0=1;QD=0.95;SB=-10.00	GT:AD:DP:GL:GQ	0/1:7,11:6:-6.79,-1.81,-13.20:49.84
-chr1	3494428	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=20;Dels=0.00;HRun=0;HaplotypeScore=21.58;MQ=27.57;MQ0=1;OQ=101.33;QD=5.07;SB=-10.00	GT:AD:DP:GL:GQ	0/1:14,6:9:-16.13,-2.71,-15.44:99
-chr1	3494440	.	A	G	20.51	LowQual	AC=1;AF=0.50;AN=2;DP=16;Dels=0.00;HRun=4;HaplotypeScore=16.99;MQ=27.20;MQ0=1;QD=1.28;SB=-10.00	GT:AD:DP:GL:GQ	0/1:14,2:6:-7.14,-1.81,-14.72:53.31
-chr1	3494450	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=15;Dels=0.00;HRun=0;HaplotypeScore=19.98;MQ=27.07;MQ0=1;OQ=136.86;QD=9.12;SB=-10.00	GT:AD:DP:GL:GQ	0/1:4,11:7:-19.08,-2.11,-6.94:48.30
-chr1	3494456	.	G	A	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=17;Dels=0.12;HRun=1;HaplotypeScore=13.10;MQ=27.31;MQ0=1;OQ=95.30;QD=5.61;SB=-10.00	GT:AD:DP:GL:GQ	0/1:10,5:11:-16.13,-3.31,-22.08:99
-chr1	3494463	.	G	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=11;Dels=0.00;HRun=1;HaplotypeScore=15.99;MQ=27.75;MQ0=0;OQ=76.78;QD=6.98;SB=-10.00	GT:AD:DP:GL:GQ	0/1:8,3:5:-12.47,-1.51,-7.14:56.32
-chr1	3494470	.	G	A	37.25	LowQual	AC=1;AF=0.50;AN=2;DP=8;Dels=0.00;HRun=0;HaplotypeScore=9.99;MQ=29.00;MQ0=0;QD=4.66;SB=-10.00	GT:AD:DP:GL:GQ	0/1:2,6:3:-7.91,-0.90,-3.57:26.65
-chr1	3494476	.	C	G	10.99	LowQual	AC=1;AF=0.50;AN=2;DP=6;Dels=0.00;HRun=0;HaplotypeScore=6.99;MQ=29.00;MQ0=0;QD=1.83;SB=-10.00	GT:AD:DP:GL:GQ	0/1:1,3:1:-4.35,-0.30,-0.00:1.76
-chr1	3494500	.	C	A	20.04	LowQual	AC=1;AF=0.50;AN=2;DP=14;Dels=0.00;HRun=0;HaplotypeScore=24.21;MQ=29.00;MQ0=0;QD=1.43;SB=-10.00	GT:AD:DP:GL:GQ	0/1:6,8:6:-7.09,-1.81,-14.10:52.83
-chr1	3494506	.	G	A	17.29	LowQual	AC=1;AF=0.50;AN=2;DP=19;Dels=0.05;HRun=1;HaplotypeScore=32.64;MQ=29.00;MQ0=0;QD=0.91;SB=-10.00	GT:AD:DP:GL:GQ	0/1:14,4:10:-8.02,-3.01,-25.65:50.04
-chr1	3494513	.	G	A	25.23	LowQual	AC=1;AF=0.50;AN=2;DP=19;Dels=0.00;HRun=1;HaplotypeScore=41.45;MQ=31.40;MQ0=0;QD=1.33;SB=-10.00	GT:AD:DP:GL:GQ	0/1:15,4:6:-7.61,-1.81,-13.27:58.06
-chr1	3494520	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=20;Dels=0.00;HRun=0;HaplotypeScore=37.55;MQ=33.42;MQ0=0;OQ=64.77;QD=3.24;SB=-10.00	GT:AD:DP:GL:GQ	0/1:5,13:7:-11.87,-2.11,-12.97:97.60
-chr1	3494524	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=21;Dels=0.00;HRun=1;HaplotypeScore=27.25;MQ=33.22;MQ0=0;OQ=65.77;QD=3.13;SB=-10.00	GT:AD:DP:GL:GQ	0/1:18,3:5:-11.37,-1.51,-6.04:45.31
-chr1	3494544	.	G	A	102.31	SnpCluster	AC=1;AF=0.50;AN=2;DP=25;Dels=0.00;HRun=1;HaplotypeScore=60.62;MQ=32.58;MQ0=0;QD=4.09;SB=-10.00	GT:AD:DP:GL:GQ	0/1:21,4:9:-16.23,-2.71,-16.04:99
-chr1	3494547	.	G	T	87.64	SnpCluster	AC=1;AF=0.50;AN=2;DP=25;Dels=0.00;HRun=0;HaplotypeScore=65.61;MQ=32.58;MQ0=0;QD=3.51;SB=-10.00	GT:AD:DP:GL:GQ	0/1:19,5:8:-14.46,-2.41,-14.43:99
-chr1	3494550	.	A	C	79.94	SnpCluster	AC=1;AF=0.50;AN=2;DP=24;Dels=0.00;HRun=1;HaplotypeScore=55.04;MQ=32.72;MQ0=0;QD=3.33;SB=-10.00	GT:AD:DP:GL:GQ	0/1:14,6:8:-16.58,-5.30,-13.73:84.35
-chr1	3494557	.	G	T	60.29	SnpCluster	AC=1;AF=0.50;AN=2;DP=21;Dels=0.00;HRun=0;HaplotypeScore=39.81;MQ=31.18;MQ0=0;QD=2.87;SB=-10.00	GT:AD:DP:GL:GQ	0/1:11,8:4:-10.52,-1.20,-3.86:26.53
-chr1	3494560	.	G	A	91.28	SnpCluster	AC=2;AF=1.00;AN=2;DP=21;Dels=0.00;HRun=0;HaplotypeScore=38.65;MQ=31.18;MQ0=0;QD=4.35;SB=-10.00	GT:AD:DP:GL:GQ	1/1:7,11:4:-16.06,-4.57,-3.40:11.70
-chr1	3494564	.	G	A	29.24	LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=20;Dels=0.00;HRun=1;HaplotypeScore=32.50;MQ=31.29;MQ0=0;QD=1.46;SB=-10.00	GT:AD:DP:GL:GQ	0/1:18,2:6:-8.02,-1.81,-12.47:62.07
-chr1	3494574	.	A	G	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DP=14;Dels=0.00;HRun=1;HaplotypeScore=26.98;MQ=29.00;MQ0=0;OQ=69.17;QD=4.94;SB=-10.00	GT:AD:DP:GL:GQ	1/1:6,8:3:-10.41,-0.90,-0.00:9.03
-chr1	3494590	.	G	A	142.91	SnpCluster	AC=1;AF=0.50;AN=2;DP=15;Dels=0.00;HRun=0;HaplotypeScore=22.40;MQ=29.00;MQ0=0;QD=9.53;SB=-10.00	GT:AD:DP:GL:GQ	0/1:5,8:6:-19.38,-1.81,-3.57:17.63
-chr1	3494597	.	G	T	106.99	SnpCluster	AC=1;AF=0.50;AN=2;DP=14;Dels=0.00;HRun=0;HaplotypeScore=25.38;MQ=29.00;MQ0=0;QD=7.64;SB=-10.00	GT:AD:DP:GL:GQ	0/1:9,5:11:-17.30,-3.31,-21.74:99
-chr1	3494600	.	G	A	30.23	LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=10;Dels=0.00;HRun=0;HaplotypeScore=11.39;MQ=29.00;MQ0=0;QD=3.02;SB=-10.00	GT:AD:DP:GL:GQ	0/1:4,6:5:-7.81,-1.51,-10.71:63.06
-chr1	3494624	.	A	G	3.02	PASS	AC=1;AF=0.50;AN=2;DP=6;Dels=0.00;HRun=1;HaplotypeScore=2.14;MQ=23.68;MQ0=1;OQ=61.17;QD=10.20;SB=-10.00	GT:AD:DP:GL:GQ	0/1:1,5:4:-10.61,-1.20,-4.06:28.52
-chr1	3494941	rs3122612	T	C	27.60	PASS	AC=2;AF=1.00;AN=2;DB;DP=9;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=38.13;MQ0=0;OQ=190.96;QD=21.22;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,9:7:-22.68,-2.11,-0.00:21.05
-chr1	3496357	rs2794320	A	G	629.67	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.59;MQ0=0;OQ=2197.16;QD=34.88;SB=-1063.87	GT:AD:DP:GL:GQ	1/1:0,63:62:-223.32,-18.67,-0.02:99
-chr1	3497672	rs12138013	G	A	514.21	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.56;MQ0=0;OQ=1894.53;QD=36.43;SB=-916.70	GT:AD:DP:GL:GQ	1/1:0,52:50:-193.07,-15.07,-0.03:99
-chr1	3497721	rs4648527	G	A	5.98	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=1;HaplotypeScore=5.91;MQ=58.60;MQ0=0;OQ=1808.59;QD=36.17;SB=-904.68	GT:AD:DP:GL:GQ	1/1:0,50:47:-184.46,-14.16,-0.02:99
-chr1	3497811	rs4233026	A	G	453.03	PASS	AC=2;AF=1.00;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=985.33;QD=29.86;SB=-500.18	GT:AD:DP:GL:GQ	1/1:0,33:33:-102.16,-9.96,-0.04:99
-chr1	3499530	rs10909980	C	T	12.32	PASS	AC=2;AF=1.00;AN=2;DB;DP=23;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=58.36;MQ0=0;OQ=831.01;QD=36.13;SB=-270.86	GT:AD:DP:GL:GQ	1/1:0,23:22:-86.69,-6.63,-0.01:66.21
-chr1	3501794	rs7513275	A	G	98.91	PASS	AC=1;AF=0.50;AN=2;DB;DP=20;Dels=0.00;HRun=0;HaplotypeScore=1.92;MQ=60.00;MQ0=0;OQ=215.59;QD=10.78;SB=-81.80	GT:AD:DP:GL:GQ	0/1:7,13:17:-29.97,-5.13,-27.54:99
-chr1	3502201	rs2794327	C	T	251.06	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=0.96;MQ=60.00;MQ0=0;OQ=1770.81;QD=37.68;SB=-842.63	GT:AD:DP:GL:GQ	1/1:0,47:45:-180.68,-13.55,-0.01:99
-chr1	3502376	rs2821025	T	C	189.36	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=1.16;MQ=58.06;MQ0=0;OQ=1399.30;QD=34.13;SB=-531.22	GT:AD:DP:GL:GQ	1/1:1,40:40:-143.53,-12.05,-0.02:99
-chr1	3502406	rs2821024	G	A	10.93	PASS	AC=2;AF=1.00;AN=2;DB;DP=37;Dels=0.00;HRun=1;HaplotypeScore=2.84;MQ=59.12;MQ0=0;OQ=1381.75;QD=37.34;SB=-602.98	GT:AD:DP:GL:GQ	1/1:0,37:36:-141.77,-10.85,-0.01:99
-chr1	3502660	rs2821023	T	C	164.14	PASS	AC=2;AF=1.00;AN=2;DB;DP=23;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=55.31;MQ0=0;OQ=631.91;QD=27.47;SB=-134.71	GT:AD:DP:GL:GQ	1/1:0,23:22:-66.81,-6.64,-0.03:66.13
-chr1	3503040	rs3001104	T	C	11.75	LowQual	AC=1;AF=0.50;AN=2;DB;DP=13;Dels=0.00;HRun=3;HaplotypeScore=0.89;MQ=53.43;MQ0=0;QD=0.90;SB=-7.00	GT:AD:DP:GL:GQ	0/1:11,2:9:-7.15,-2.72,-25.40:44.29
-chr1	3503107	rs6697282	T	C	2.87	PASS	AC=2;AF=1.00;AN=2;DB;DP=11;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=57.92;MQ0=0;OQ=303.24;QD=27.57;SB=-40.95	GT:AD:DP:GL:GQ	1/1:0,11:10:-33.91,-3.01,-0.00:30.08
-chr1	3503479	rs55936822	G	A	66.02	PASS	AC=1;AF=0.50;AN=2;DB;DP=28;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=60.00;MQ0=0;OQ=385.29;QD=13.76;SB=-81.58	GT:AD:DP:GL:GQ	0/1:14,14:27:-49.96,-8.15,-41.31:99
-chr1	3504130	rs3001107	A	T	92.54	PASS	AC=2;AF=1.00;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=1.03;MQ=60.00;MQ0=0;OQ=1158.27;QD=35.10;SB=-515.45	GT:AD:DP:GL:GQ	1/1:0,33:32:-119.42,-9.64,-0.01:96.30
-chr1	3504221	rs2995006	A	G	438.56	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.41;MQ0=0;OQ=1363.50;QD=34.96;SB=-648.28	GT:AD:DP:GL:GQ	1/1:0,39:39:-139.95,-11.75,-0.02:99
-chr1	3504611	rs6701230	T	C	61.10	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.48;MQ=60.00;MQ0=0;OQ=1071.54;QD=26.79;SB=-482.12	GT:AD:DP:GL:GQ	1/1:0,40:34:-110.77,-10.26,-0.03:99
-chr1	3505152	.	C	G	6.95	PASS	AC=2;AF=1.00;AN=2;DP=14;Dels=0.00;HRun=0;HaplotypeScore=2.42;MQ=54.64;MQ0=0;OQ=215.54;QD=15.40;SB=-56.93	GT:AD:DP:GL:GQ	1/1:2,12:6:-25.13,-1.81,-0.00:18.06
-chr1	3505256	rs2794328	C	A	31.98	PASS	AC=2;AF=1.00;AN=2;DB;DP=28;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=58.33;MQ0=0;OQ=824.44;QD=29.44;SB=-191.27	GT:AD:DP:GL:GQ	1/1:1,27:24:-86.04,-7.23,-0.01:72.19
-chr1	3505590	rs2821011	T	C	3.95	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=2;HaplotypeScore=0.16;MQ=58.95;MQ0=0;OQ=1307.30;QD=29.71;SB=-329.39	GT:AD:DP:GL:GQ	1/1:0,44:40:-134.34,-12.06,-0.03:99
-chr1	3506096	rs4648395	G	A	428.92	PASS	AC=2;AF=1.00;AN=2;DB;DP=31;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.73;MQ0=0;OQ=1105.43;QD=35.66;SB=-453.34	GT:AD:DP:GL:GQ	1/1:0,31:29:-114.14,-8.74,-0.01:87.28
-chr1	3506280	rs7552280	C	T	597.55	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1498.57;QD=38.42;SB=-699.42	GT:AD:DP:GL:GQ	1/1:0,39:38:-153.45,-11.45,-0.01:99
-chr1	3506640	rs4018202	C	T	591.66	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.53;MQ0=0;OQ=1796.97;QD=36.67;SB=-852.00	GT:AD:DP:GL:GQ	1/1:0,49:46:-183.30,-13.86,-0.02:99
-chr1	3507139	rs4648528	C	T	150.35	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=58.89;MQ0=0;OQ=1470.55;QD=35.01;SB=-673.24	GT:AD:DP:GL:GQ	1/1:0,42:39:-150.66,-11.76,-0.02:99
-chr1	3507337	rs61373700	C	G	106.29	PASS	AC=2;AF=1.00;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=0.76;MQ=57.26;MQ0=0;OQ=1716.27;QD=39.91;SB=-832.44	GT:AD:DP:GL:GQ	1/1:1,42:42:-175.24,-12.66,-0.02:99
-chr1	3507396	rs6693958	G	A	63.42	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=2.84;MQ=58.29;MQ0=0;OQ=1559.78;QD=38.04;SB=-721.97	GT:AD:DP:GL:GQ	1/1:0,41:40:-159.58,-12.05,-0.01:99
-chr1	3507433	rs59013990	G	C	40.65	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=2.25;MQ=59.41;MQ0=0;OQ=1114.70;QD=28.58;SB=-265.33	GT:AD:DP:GL:GQ	1/1:0,38:29:-115.08,-8.75,-0.02:87.28
-chr1	3508244	rs2821012	T	C	433.71	PASS	AC=2;AF=1.00;AN=2;DB;DP=34;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.32;MQ0=0;OQ=981.44;QD=28.87;SB=-510.19	GT:AD:DP:GL:GQ	1/1:0,34:32:-101.76,-9.65,-0.03:96.21
-chr1	3508275	rs12410528	G	A	77.57	PASS	AC=1;AF=0.50;AN=2;DB;DP=34;Dels=0.00;HRun=0;HaplotypeScore=1.75;MQ=59.32;MQ0=0;OQ=639.66;QD=18.81;SB=-281.31	GT:AD:DP:GL:GQ	0/1:14,20:31:-76.59,-9.34,-39.32:99
-chr1	3508279	rs12401505	C	T	12.42	PASS	AC=1;AF=0.50;AN=2;DB;DP=34;Dels=0.00;HRun=1;HaplotypeScore=2.61;MQ=59.32;MQ0=0;OQ=621.28;QD=18.27;SB=-279.19	GT:AD:DP:GL:GQ	0/1:14,19:31:-74.75,-9.34,-43.77:99
-chr1	3508347	rs56770023	C	T	305.75	PASS	AC=2;AF=1.00;AN=2;DB;DP=30;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.60;MQ0=0;OQ=1098.04;QD=36.60;SB=-308.27	GT:AD:DP:GL:GQ	1/1:0,30:29:-113.40,-8.74,-0.01:87.27
-chr1	3508348	rs60957843	A	G	332.32	PASS	AC=2;AF=1.00;AN=2;DB;DP=29;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.55;MQ0=0;OQ=996.70;QD=34.37;SB=-270.42	GT:AD:DP:GL:GQ	1/1:0,29:29:-103.27,-8.74,-0.01:87.25
-chr1	3508499	rs2821013	C	A	29.08	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=4.32;MQ=59.05;MQ0=0;OQ=1719.86;QD=35.10;SB=-757.10	GT:AD:DP:GL:GQ	1/1:0,49:47:-175.58,-14.15,-0.01:99
-chr1	3508603	rs7514061	C	T	105.49	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=58.33;MQ0=0;OQ=1426.84;QD=33.97;SB=-607.00	GT:AD:DP:GL:GQ	1/1:0,42:38:-146.28,-11.45,-0.02:99
-chr1	3508717	rs2821014	A	C	0.35	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=3;HaplotypeScore=1.13;MQ=59.42;MQ0=0;OQ=907.74;QD=22.69;SB=-295.54	GT:AD:DP:GL:GQ	1/1:0,37:28:-94.37,-8.43,-0.01:84.22
-chr1	3508804	rs7521546	T	C	5.12	PASS	AC=2;AF=1.00;AN=2;DB;DP=25;Dels=0.00;HRun=2;HaplotypeScore=1.42;MQ=57.17;MQ0=0;OQ=713.23;QD=28.53;SB=-330.78	GT:AD:DP:GL:GQ	1/1:0,25:24:-74.93,-7.24,-0.02:72.16
-chr1	3509294	rs12024499	A	G	18.02	PASS	AC=2;AF=1.00;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=3.00;MQ=58.37;MQ0=0;OQ=1073.16;QD=24.96;SB=-338.38	GT:AD:DP:GL:GQ	1/1:0,43:37:-110.95,-11.17,-0.05:99
-chr1	3509463	rs12025426	T	C	57.07	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=1.99;MQ=59.00;MQ0=0;OQ=1068.56;QD=25.44;SB=-559.52	GT:AD:DP:GL:GQ	1/1:0,42:36:-110.49,-10.87,-0.05:99
-chr1	3509651	rs56328010	C	G	123.58	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=1;HaplotypeScore=1.54;MQ=58.84;MQ0=0;OQ=608.86;QD=15.22;SB=-231.35	GT:AD:DP:GL:GQ	0/1:21,19:38:-75.63,-11.46,-87.10:99
-chr1	3509894	rs10752738	A	G	106.20	PASS	AC=2;AF=1.00;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=1.49;MQ=57.39;MQ0=0;OQ=1124.20;QD=31.23;SB=-480.45	GT:AD:DP:GL:GQ	1/1:0,36:33:-116.02,-9.94,-0.01:99
-chr1	3509987	rs2821015	T	C	88.77	PASS	AC=2;AF=1.00;AN=2;DB;DP=32;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=57.95;MQ0=0;OQ=1023.67;QD=31.99;SB=-513.41	GT:AD:DP:GL:GQ	1/1:0,31:32:-108.71,-12.22,-2.76:94.68
-chr1	3510191	rs2794356	C	A	66.82	PASS	AC=2;AF=1.00;AN=2;DB;DP=34;Dels=0.00;HRun=0;HaplotypeScore=1.11;MQ=58.63;MQ0=0;OQ=1082.36;QD=31.83;SB=-352.40	GT:AD:DP:GL:GQ	1/1:0,34:33:-111.84,-9.95,-0.02:99
-chr1	3510399	rs2794355	C	T	148.33	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.58;MQ=60.22;MQ0=0;OQ=1723.81;QD=37.47;SB=-800.07	GT:AD:DP:GL:GQ	1/1:0,46:45:-175.99,-13.56,-0.02:99
-chr1	3510532	rs2821016	A	C	65.43	PASS	AC=2;AF=1.00;AN=2;DB;DP=32;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=59.42;MQ0=0;OQ=868.96;QD=27.16;SB=-409.86	GT:AD:DP:GL:GQ	1/1:0,32:29:-90.51,-8.74,-0.03:87.13
-chr1	3511971	rs56140438	T	C	2680.91	Indel	AC=2;AF=1.00;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=51.68;MQ0=0;QD=34.82;SB=-1364.21	GT:AD:DP:GL:GQ	1/1:0,77:76:-271.70,-22.89,-0.02:99
-chr1	3513689	rs2794354	T	C	23.29	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=1;HaplotypeScore=1.40;MQ=60.00;MQ0=0;OQ=1332.54;QD=30.29;SB=-459.40	GT:AD:DP:GL:GQ	1/1:0,44:41:-136.87,-12.36,-0.03:99
-chr1	3513757	rs2821018	T	C	1.28	PASS	AC=2;AF=1.00;AN=2;DB;DP=35;Dels=0.00;HRun=4;HaplotypeScore=0.16;MQ=52.28;MQ0=0;OQ=1127.31;QD=32.21;SB=-555.88	GT:AD:DP:GL:GQ	1/1:0,35:33:-116.33,-9.94,-0.01:99
-chr1	3513776	rs2821019	A	C	16.58	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=1;HaplotypeScore=3.24;MQ=52.84;MQ0=0;OQ=1256.82;QD=30.65;SB=-634.67	GT:AD:DP:GL:GQ	1/1:0,41:37:-129.29,-11.15,-0.02:99
-chr1	3513778	rs2821020	G	A	39.72	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=4.08;MQ=53.03;MQ0=0;OQ=1497.87;QD=35.66;SB=-772.68	GT:AD:DP:GL:GQ	1/1:0,42:39:-153.39,-11.75,-0.01:99
-chr1	3515181	rs2794353	G	C	0.02	FDRtranche1.00to2.00	AC=2;AF=1.00;AN=2;DB;DP=36;Dels=0.00;HRun=5;HaplotypeScore=0.32;MQ=58.30;MQ0=0;OQ=1440.93;QD=40.03;SB=-600.98	GT:AD:DP:GL:GQ	1/1:0,36:34:-147.69,-10.24,-0.01:99
-chr1	3515467	rs36031771	G	A	114.23	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=1;HaplotypeScore=0.74;MQ=60.00;MQ0=0;OQ=1598.59;QD=36.33;SB=-811.32	GT:AD:DP:GL:GQ	1/1:0,44:42:-163.46,-12.66,-0.02:99
-chr1	3515500	rs34852522	G	A	546.80	PASS	AC=2;AF=1.00;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1591.31;QD=37.01;SB=-737.47	GT:AD:DP:GL:GQ	1/1:1,42:41:-162.73,-12.35,-0.01:99
-chr1	3515696	rs10909986	G	A	566.50	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.67;MQ0=0;OQ=1907.24;QD=38.92;SB=-905.69	GT:AD:DP:GL:GQ	1/1:0,49:48:-194.32,-14.46,-0.01:99
-chr1	3516250	rs12121341	A	G	86.74	PASS	AC=2;AF=1.00;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=1093.76;QD=29.56;SB=-543.02	GT:AD:DP:GL:GQ	1/1:0,37:35:-112.99,-10.56,-0.03:99
-chr1	3518397	rs57902798	C	A	88.78	PASS	AC=2;AF=1.00;AN=2;DB;DP=25;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.13;MQ0=0;OQ=809.40;QD=32.38;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,25:24:-84.53,-7.23,-0.01:72.21
-chr1	3518534	rs1539126	G	A	66.93	PASS	AC=2;AF=1.00;AN=2;DB;DP=35;Dels=0.00;HRun=0;HaplotypeScore=0.90;MQ=60.00;MQ0=0;OQ=1266.77;QD=36.19;SB=-476.64	GT:AD:DP:GL:GQ	1/1:0,34:33:-130.27,-9.94,-0.01:99
-chr1	3518701	rs2794326	T	C	149.57	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.07;MQ0=0;OQ=1658.37;QD=33.17;SB=-790.25	GT:AD:DP:GL:GQ	1/1:0,50:49:-169.45,-14.76,-0.03:99
-chr1	3519249	rs10909987	G	C	637.70	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.50;MQ0=0;OQ=1866.21;QD=40.57;SB=-960.72	GT:AD:DP:GL:GQ	1/1:0,45:44:-190.22,-13.26,-0.01:99
-chr1	3521082	rs4648396	C	T	0.76	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=5;HaplotypeScore=1.32;MQ=59.36;MQ0=0;OQ=2285.23;QD=39.40;SB=-1043.37	GT:AD:DP:GL:GQ	1/1:0,58:57:-232.12,-17.17,-0.02:99
-chr1	3521301	rs4648397	T	C	39.86	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=2;HaplotypeScore=1.00;MQ=59.20;MQ0=0;OQ=1821.49;QD=31.41;SB=-869.61	GT:AD:DP:GL:GQ	1/1:0,58:57:-185.78,-17.19,-0.04:99
-chr1	3521455	rs4648398	C	T	121.83	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=3.69;MQ=58.90;MQ0=0;OQ=2021.45;QD=34.26;SB=-686.93	GT:AD:DP:GL:GQ	1/1:0,59:53:-205.75,-15.97,-0.02:99
-chr1	3522563	rs6693192	A	G	270.85	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=60.00;MQ0=0;OQ=513.63;QD=9.88;SB=-275.26	GT:AD:DP:GL:GQ	0/1:30,22:52:-70.32,-15.67,-121.33:99
-chr1	3522569	rs6678958	G	A	350.18	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=60.00;MQ0=0;OQ=670.10;QD=13.14;SB=-343.79	GT:AD:DP:GL:GQ	0/1:29,22:51:-85.67,-15.38,-96.37:99
-chr1	3523424	rs55728961	C	A	42.05	PASS	AC=1;AF=0.50;AN=2;DB;DP=23;Dels=0.00;HRun=1;HaplotypeScore=0.99;MQ=60.00;MQ0=0;OQ=240.49;QD=10.46;SB=-10.00	GT:AD:DP:GL:GQ	0/1:14,9:23:-34.26,-6.93,-47.21:99
-chr1	3523484	rs56385042	T	C	1.74	PASS	AC=1;AF=0.50;AN=2;DB;DP=26;Dels=0.00;HRun=3;HaplotypeScore=0.67;MQ=60.00;MQ0=0;OQ=309.24;QD=11.89;SB=-6.99	GT:AD:DP:GL:GQ	0/1:12,14:26:-42.05,-7.84,-46.91:99
-chr1	3523847	rs10797404	T	C	200.70	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.72;MQ0=0;OQ=602.56;QD=14.01;SB=-77.79	GT:AD:DP:GL:GQ	0/1:21,22:42:-76.19,-12.65,-81.56:99
-chr1	3524383	rs4648532	A	G	19.20	PASS	AC=1;AF=0.50;AN=2;DB;DP=31;Dels=0.00;HRun=2;HaplotypeScore=2.34;MQ=56.80;MQ0=0;OQ=354.98;QD=11.45;SB=-152.32	GT:AD:DP:GL:GQ	0/1:16,15:28:-47.22,-8.44,-59.85:99
-chr1	3524566	rs10909988	A	G	146.87	PASS	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=1.53;MQ=60.00;MQ0=0;OQ=306.09;QD=9.28;SB=-127.66	GT:AD:DP:GL:GQ	0/1:17,15:30:-42.93,-9.04,-69.22:99
-chr1	3524652	rs7522500	G	C	8.99	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=2;HaplotypeScore=6.16;MQ=57.13;MQ0=0;OQ=583.92;QD=14.24;SB=-274.31	GT:AD:DP:GL:GQ	0/1:21,20:34:-71.93,-10.26,-66.25:99
-chr1	3524668	rs7522507	G	A	205.38	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=3.19;MQ=57.92;MQ0=0;OQ=639.63;QD=14.21;SB=-315.32	GT:AD:DP:GL:GQ	0/1:22,23:42:-79.91,-12.67,-66.98:99
-chr1	3525324	rs7538707	A	G	23.09	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=845.73;QD=19.67;SB=-223.67	GT:AD:DP:GL:GQ	0/1:16,27:42:-100.51,-12.65,-58.85:99
-chr1	3526188	rs4648533	G	A	210.95	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=2.95;MQ=59.62;MQ0=0;OQ=1070.40;QD=17.55;SB=-483.49	GT:AD:DP:GL:GQ	0/1:29,32:60:-128.41,-18.08,-91.39:99
-chr1	3526260	rs4648534	T	C	399.13	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=55.82;MQ0=0;OQ=652.36;QD=10.19;SB=-312.36	GT:AD:DP:GL:GQ	0/1:38,26:63:-87.50,-18.98,-151.40:99
-chr1	3526320	rs4648535	C	A	306.52	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=0.98;MQ=54.45;MQ0=1;OQ=780.07;QD=10.99;SB=-371.06	GT:AD:DP:GL:GQ	0/1:40,31:67:-101.47,-20.18,-141.37:99
-chr1	3526422	rs4648399	A	G	309.90	PASS	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=58.19;MQ0=0;OQ=1278.95;QD=17.52;SB=-632.97	GT:AD:DP:GL:GQ	0/1:30,43:71:-152.57,-21.39,-116.57:99
-chr1	3527222	rs4648400	A	G	9.46	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=1;HaplotypeScore=7.73;MQ=57.63;MQ0=0;OQ=603.16;QD=10.40;SB=-310.07	GT:AD:DP:GL:GQ	0/1:32,26:56:-80.48,-16.88,-126.15:99
-chr1	3527718	rs4648401	A	G	74.64	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=2;HaplotypeScore=1.41;MQ=56.19;MQ0=0;OQ=587.94;QD=13.67;SB=-299.61	GT:AD:DP:GL:GQ	0/1:18,25:41:-74.44,-12.36,-73.19:99
-chr1	3528340	rs4400556	A	T	87.37	PASS	AC=1;AF=0.50;AN=2;DB;DP=79;Dels=0.00;HRun=2;HaplotypeScore=0.83;MQ=59.12;MQ0=0;OQ=994.97;QD=12.59;SB=-457.52	GT:AD:DP:GL:GQ	0/1:45,34:78:-126.28,-23.49,-166.80:99
-chr1	3528361	rs4364818	C	T	460.83	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=0.98;MQ=58.38;MQ0=0;OQ=945.91;QD=13.14;SB=-450.44	GT:AD:DP:GL:GQ	0/1:42,30:72:-119.57,-21.70,-148.80:99
-chr1	3528695	rs6424087	G	C	115.88	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=3.80;MQ=59.24;MQ0=0;OQ=909.93;QD=16.54;SB=-215.65	GT:AD:DP:GL:GQ	0/1:28,26:51:-109.65,-15.37,-108.54:99
-chr1	3528942	rs10909989	A	G	309.85	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=1;HaplotypeScore=2.12;MQ=59.00;MQ0=0;OQ=981.47;QD=13.82;SB=-369.60	GT:AD:DP:GL:GQ	0/1:36,35:70:-122.52,-21.09,-148.98:99
-chr1	3529341	rs10909990	A	G	374.60	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=1.91;MQ=58.19;MQ0=0;OQ=916.10;QD=14.78;SB=-423.95	GT:AD:DP:GL:GQ	0/1:29,33:61:-113.27,-18.38,-114.82:99
-chr1	3529884	rs12757620	T	G	87.41	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=3;HaplotypeScore=2.04;MQ=59.45;MQ0=0;OQ=798.71;QD=11.75;SB=-349.72	GT:AD:DP:GL:GQ	0/1:29,39:61:-101.54,-18.38,-103.90:99
-chr1	3532172	.	T	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=51;Dels=0.00;HRun=2;HaplotypeScore=4.52;MQ=58.17;MQ0=0;OQ=111.86;QD=2.19;SB=68.21	GT:AD:DP:GL:GQ	0/1:30,21:37:-25.62,-11.15,-96.21:99
-chr1	3535452	rs41315304	G	A	150.86	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=1;HaplotypeScore=2.69;MQ=58.25;MQ0=0;OQ=1069.05;QD=16.70;SB=-525.75	GT:AD:DP:GL:GQ	0/1:32,32:63:-129.18,-18.99,-99.29:99
-chr1	3536795	rs2821007	G	A	330.18	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=2.53;MQ=59.23;MQ0=0;OQ=1047.23;QD=17.45;SB=-508.04	GT:AD:DP:GL:GQ	0/1:27,33:59:-125.78,-17.78,-94.59:99
-chr1	3537996	rs2760321	T	C	53.51	PASS	AC=2;AF=1.00;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=0.10;MQ=58.11;MQ0=0;OQ=916.84;QD=24.78;SB=-335.79	GT:AD:DP:GL:GQ	1/1:0,37:31:-95.30,-9.36,-0.04:93.19
-chr1	3538692	rs2760320	G	C	208.41	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=2;HaplotypeScore=1.05;MQ=58.15;MQ0=0;OQ=946.49;QD=15.02;SB=-485.84	GT:AD:DP:GL:GQ	0/1:35,28:62:-116.63,-18.70,-140.41:99
-chr1	3540707	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=36;Dels=0.00;HRun=4;HaplotypeScore=6.24;MQ=58.05;MQ0=0;OQ=310.07;QD=8.61;SB=35.15	GT:AD:DP:GL:GQ	0/1:20,16:27:-42.43,-8.14,-74.49:99
-chr1	3542640	rs2821061	A	G	174.99	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=1;HaplotypeScore=1.68;MQ=60.00;MQ0=0;OQ=519.03;QD=10.38;SB=-253.57	GT:AD:DP:GL:GQ	0/1:27,23:48:-69.65,-14.47,-105.26:99
-chr1	3543649	rs2821058	T	C	578.48	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.21;MQ0=0;OQ=1559.49;QD=29.42;SB=-616.98	GT:AD:DP:GL:GQ	1/1:0,53:50:-159.58,-15.08,-0.04:99
-chr1	3545730	rs2760318	T	G	276.33	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=1;HaplotypeScore=0.63;MQ=60.00;MQ0=0;OQ=500.47;QD=13.53;SB=-245.40	GT:AD:DP:GL:GQ	0/1:16,21:34:-63.58,-10.25,-53.36:99
-chr1	3546316	rs2760317	T	C	74.82	PASS	AC=1;AF=0.50;AN=2;DB;DP=30;Dels=0.00;HRun=1;HaplotypeScore=1.30;MQ=59.23;MQ0=0;OQ=365.54;QD=12.18;SB=-82.96	GT:AD:DP:GL:GQ	0/1:16,13:27:-47.97,-8.14,-53.97:99
-chr1	3546766	rs2821032	A	G	15.17	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=5.71;MQ=58.45;MQ0=0;OQ=501.73;QD=10.45;SB=-117.63	GT:AD:DP:GL:GQ	0/1:27,21:44:-66.72,-13.26,-92.65:99
-chr1	3546958	.	G	C	33.36	PASS	AC=1;AF=0.50;AN=2;DP=27;Dels=0.00;HRun=0;HaplotypeScore=2.55;MQ=52.99;MQ0=1;OQ=414.27;QD=15.34;SB=-224.70	GT:AD:DP:GL:GQ	0/1:11,16:20:-50.74,-6.03,-33.52:99
-chr1	3550868	rs12408890	C	T	50.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=714.51;QD=21.65;SB=-10.00	GT:AD:DP:GL:GQ	0/1:11,22:31:-84.07,-9.34,-33.99:99
-chr1	3556431	.	G	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=24;Dels=0.00;HRun=2;HaplotypeScore=3.37;MQ=56.43;MQ0=0;OQ=64.63;QD=2.69;SB=26.11	GT:AD:DP:GL:GQ	0/1:20,4:17:-14.89,-5.14,-48.86:97.47
-chr1	3556566	rs2251098	G	A	89.65	PASS	AC=1;AF=0.50;AN=2;DB;DP=35;Dels=0.00;HRun=0;HaplotypeScore=0.92;MQ=58.00;MQ0=0;OQ=575.61;QD=16.45;SB=-81.09	GT:AD:DP:GL:GQ	0/1:16,19:34:-71.09,-10.24,-59.62:99
-chr1	3560743	rs6697769	C	T	108.18	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=1;HaplotypeScore=2.77;MQ=59.11;MQ0=0;OQ=591.49;QD=14.08;SB=-304.84	GT:AD:DP:GL:GQ	0/1:21,21:39:-74.19,-11.76,-62.78:99
-chr1	3562592	rs10752739	A	G	278.74	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=1.27;MQ=56.42;MQ0=0;OQ=804.83;QD=14.63;SB=-300.66	GT:AD:DP:GL:GQ	0/1:25,30:50:-98.83,-15.07,-88.55:99
-chr1	3562634	rs2181484	A	G	237.08	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=1.58;MQ=59.09;MQ0=0;OQ=421.19;QD=9.16;SB=-138.88	GT:AD:DP:GL:GQ	0/1:25,21:41:-57.77,-12.36,-88.24:99
-chr1	3564279	rs9662739	T	A	199.17	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=2.11;MQ=58.99;MQ0=0;OQ=516.88;QD=11.24;SB=-252.67	GT:AD:DP:GL:GQ	0/1:26,19:44:-68.23,-13.26,-93.50:99
-chr1	3564280	rs9662052	C	A	196.24	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=1.95;MQ=58.99;MQ0=0;OQ=511.23;QD=11.11;SB=-234.91	GT:AD:DP:GL:GQ	0/1:27,19:44:-67.66,-13.26,-88.90:99
-chr1	3565050	rs2368543	T	C	86.26	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=2;HaplotypeScore=1.56;MQ=57.97;MQ0=0;OQ=928.11;QD=12.89;SB=-445.02	GT:AD:DP:GL:GQ	0/1:38,33:71:-117.49,-21.39,-151.96:99
-chr1	3565471	rs4648544	C	T	133.93	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=3;HaplotypeScore=1.75;MQ=59.57;MQ0=0;OQ=791.33;QD=14.65;SB=-418.72	GT:AD:DP:GL:GQ	0/1:30,24:54:-98.68,-16.27,-109.24:99
-chr1	3565693	rs2208993	C	G	156.42	PASS	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.00;HRun=1;HaplotypeScore=0.95;MQ=59.21;MQ0=0;OQ=372.36;QD=11.28;SB=-74.78	GT:AD:DP:GL:GQ	0/1:21,12:29:-49.27,-8.75,-66.40:99
-chr1	3565739	rs2208992	C	T	135.51	PASS	AC=1;AF=0.50;AN=2;DB;DP=34;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=60.00;MQ0=0;OQ=555.57;QD=16.34;SB=-208.21	GT:AD:DP:GL:GQ	0/1:17,17:34:-69.09,-10.25,-52.42:99
-chr1	3565920	rs2224718	T	C	463.85	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.60;MQ0=0;OQ=705.17;QD=14.10;SB=-316.42	GT:AD:DP:GL:GQ	0/1:24,26:48:-88.27,-14.47,-84.73:99
-chr1	3567181	rs4648545	A	G	559.92	PASS	AC=1;AF=0.50;AN=2;DB;DP=85;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.78;MQ0=0;OQ=1256.11;QD=14.78;SB=-595.27	GT:AD:DP:GL:GQ	0/1:42,43:84:-154.20,-25.30,-171.31:99
-chr1	3568175	rs1885863	C	T	33.02	PASS	AC=1;AF=0.50;AN=2;DB;DP=28;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=59.95;MQ0=0;OQ=503.58;QD=17.98;SB=-117.62	GT:AD:DP:GL:GQ	0/1:13,15:28:-62.07,-8.43,-48.10:99
-chr1	3569688	rs1885861	A	T	263.95	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=805.05;QD=14.38;SB=-228.60	GT:AD:DP:GL:GQ	0/1:30,26:55:-100.35,-16.57,-108.86:99
-chr1	3572104	rs6679556	T	A	168.01	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=55.18;MQ0=0;OQ=534.82;QD=14.07;SB=-147.78	GT:AD:DP:GL:GQ	0/1:19,19:35:-67.31,-10.54,-60.93:99
-chr1	3572105	rs6679560	T	G	310.70	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=55.18;MQ0=0;OQ=483.25;QD=12.72;SB=-122.88	GT:AD:DP:GL:GQ	0/1:19,19:35:-62.15,-10.55,-61.28:99
-chr1	3572847	rs1885860	T	C	202.44	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=2.09;MQ=55.65;MQ0=0;OQ=1537.12;QD=28.47;SB=-796.29	GT:AD:DP:GL:GQ	1/1:0,54:50:-157.34,-15.08,-0.05:99
-chr1	3573552	rs1885859	G	C	126.04	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=931.27;QD=19.81;SB=-452.38	GT:AD:DP:GL:GQ	0/1:21,26:45:-109.97,-13.56,-87.15:99
-chr1	3575442	rs3765694	G	A	29.42	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=3.37;MQ=58.20;MQ0=0;OQ=1425.18;QD=36.54;SB=-559.30	GT:AD:DP:GL:GQ	1/1:0,39:37:-146.12,-11.15,-0.01:99
-chr1	3575611	.	G	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=25;Dels=0.00;HRun=3;HaplotypeScore=1.74;MQ=57.17;MQ0=0;OQ=76.89;QD=3.08;SB=14.07	GT:AD:DP:GL:GQ	0/1:14,11:13:-14.90,-3.93,-34.07:99
-chr1	3576288	rs1009345	G	A	91.26	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=1;HaplotypeScore=0.93;MQ=59.80;MQ0=0;OQ=1800.40;QD=39.14;SB=-661.66	GT:AD:DP:GL:GQ	1/1:0,46:46:-183.64,-13.86,-0.02:99
-chr1	3576560	rs6657895	G	A	60.54	PASS	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=4.17;MQ=59.27;MQ0=0;OQ=1276.11;QD=33.58;SB=-586.96	GT:AD:DP:GL:GQ	1/1:1,37:35:-131.22,-10.55,-0.02:99
-chr1	3577406	rs3765697	C	T	0.76	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=5.64;MQ=56.35;MQ0=0;OQ=1305.04;QD=33.46;SB=-441.58	GT:AD:DP:GL:GQ	1/1:0,39:35:-134.11,-10.55,-0.02:99
-chr1	3578761	rs3765700	G	C	611.89	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.19;MQ0=0;OQ=1985.98;QD=38.19;SB=-981.19	GT:AD:DP:GL:GQ	1/1:0,52:47:-202.21,-14.17,-0.02:99
-chr1	3578861	rs3765701	T	A	287.36	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=1.05;MQ=59.60;MQ0=0;OQ=1646.63;QD=35.03;SB=-839.93	GT:AD:DP:GL:GQ	1/1:0,47:46:-168.27,-13.86,-0.02:99
-chr1	3579831	rs56255778	C	A	326.05	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.49;MQ=59.60;MQ0=0;OQ=723.70;QD=12.70;SB=-343.37	GT:AD:DP:GL:GQ	0/1:30,27:51:-91.02,-15.37,-85.23:99
-chr1	3580285	rs6671482	G	A	126.17	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=1.31;MQ=60.00;MQ0=0;OQ=1575.76;QD=35.81;SB=-662.31	GT:AD:DP:GL:GQ	1/1:1,43:41:-161.17,-12.35,-0.01:99
-chr1	3587189	.	C	T	94.68	PASS	AC=1;AF=0.50;AN=2;DP=39;Dels=0.00;HRun=0;HaplotypeScore=1.15;MQ=58.81;MQ0=0;OQ=415.33;QD=10.65;SB=-200.88	GT:AD:DP:GL:GQ	0/1:25,14:37:-55.97,-11.16,-70.24:99
-chr1	3594672	rs12562573	G	A	160.10	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=1.84;MQ=59.53;MQ0=0;OQ=1829.37;QD=37.33;SB=-900.21	GT:AD:DP:GL:GQ	1/1:0,49:48:-186.54,-14.47,-0.02:99
-chr1	3594957	rs1885872	G	A	83.22	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=3.18;MQ=59.07;MQ0=0;OQ=1704.97;QD=37.89;SB=-859.63	GT:AD:DP:GL:GQ	1/1:0,45:44:-174.10,-13.26,-0.02:99
-chr1	3595447	rs1885870	G	C	563.54	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.58;MQ0=0;OQ=1514.49;QD=32.92;SB=-721.32	GT:AD:DP:GL:GQ	1/1:1,45:40:-155.08,-12.08,-0.04:99
-chr1	3596410	rs3765725	C	T	84.63	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=-0.06;MQ=59.54;MQ0=0;OQ=1239.60;QD=30.23;SB=-472.10	GT:AD:DP:GL:GQ	1/1:0,41:33:-127.56,-9.95,-0.02:99
-chr1	3596486	rs3765727	G	A	208.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=59.62;MQ0=0;OQ=883.29;QD=18.03;SB=-364.54	GT:AD:DP:GL:GQ	0/1:22,27:47:-105.77,-14.16,-69.54:99
-chr1	3596710	rs3765728	G	A	119.20	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=-0.06;MQ=59.63;MQ0=0;OQ=1974.23;QD=38.71;SB=-814.08	GT:AD:DP:GL:GQ	1/1:0,51:50:-201.02,-15.06,-0.01:99
-chr1	3597380	rs3765730	G	A	180.45	PASS	AC=1;AF=0.50;AN=2;DB;DP=31;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=59.40;MQ0=0;OQ=530.99;QD=17.13;SB=-202.91	GT:AD:DP:GL:GQ	0/1:13,18:30:-65.42,-9.04,-41.88:99
-chr1	3597871	rs10732965	C	T	75.34	PASS	AC=2;AF=1.00;AN=2;DB;DP=28;Dels=0.00;HRun=0;HaplotypeScore=2.04;MQ=57.81;MQ0=0;OQ=940.44;QD=33.59;SB=-454.61	GT:AD:DP:GL:GQ	1/1:0,27:25:-97.64,-7.53,-0.01:75.24
-chr1	3598087	rs34868661	A	G	136.79	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=3.27;MQ=59.05;MQ0=0;OQ=432.49;QD=9.83;SB=-227.39	GT:AD:DP:GL:GQ	0/1:23,20:41:-58.89,-12.36,-89.12:99
-chr1	3598141	rs12126706	C	T	141.99	PASS	AC=1;AF=0.50;AN=2;DB;DP=35;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=58.13;MQ0=0;OQ=455.42;QD=13.01;SB=-109.06	GT:AD:DP:GL:GQ	0/1:19,16:32:-58.47,-9.65,-57.68:99
-chr1	3598905	rs1078687	G	A	163.20	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.98;MQ=58.42;MQ0=0;OQ=1623.93;QD=33.83;SB=-687.95	GT:AD:DP:GL:GQ	1/1:0,47:43:-166.00,-12.96,-0.02:99
-chr1	3599033	rs879622	G	A	151.46	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=1;HaplotypeScore=0.89;MQ=59.44;MQ0=0;OQ=684.79;QD=16.70;SB=-307.82	GT:AD:DP:GL:GQ	0/1:19,22:37:-82.91,-11.15,-57.20:99
-chr1	3599257	rs879621	C	A	346.01	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=59.17;MQ0=0;OQ=766.56;QD=13.69;SB=-343.33	GT:AD:DP:GL:GQ	0/1:29,27:55:-96.51,-16.57,-104.71:99
-chr1	3599783	rs2146660	A	G	32.89	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=1;HaplotypeScore=3.25;MQ=57.85;MQ0=0;OQ=1704.59;QD=34.79;SB=-814.09	GT:AD:DP:GL:GQ	1/1:0,49:49:-174.06,-14.76,-0.02:99
-chr1	3600146	.	T	C	37.22	LowQual	AC=1;AF=0.50;AN=2;DP=32;Dels=0.00;HRun=2;HaplotypeScore=1.56;MQ=40.64;MQ0=2;QD=1.16;SB=-35.23	GT:AD:DP:GL:GQ	0/1:25,6:25:-14.54,-7.54,-78.76:70.05
-chr1	3600159	rs34095686	C	A	8.52	PASS	AC=1;AF=0.50;AN=2;DB;DP=32;Dels=0.00;HRun=0;HaplotypeScore=1.88;MQ=38.58;MQ0=3;OQ=139.88;QD=4.37;SB=-64.01	GT:AD:DP:GL:GQ	0/1:23,9:27:-25.41,-8.14,-69.86:99
-chr1	3600191	.	C	G	0.30	PASS	AC=1;AF=0.50;AN=2;DP=34;Dels=0.00;HRun=0;HaplotypeScore=5.79;MQ=36.62;MQ0=7;OQ=200.47;QD=5.90;SB=-62.84	GT:AD:DP:GL:GQ	0/1:21,13:22:-29.96,-6.63,-63.33:99
-chr1	3600194	rs34612797	A	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DB;DP=35;Dels=0.00;HRun=3;HaplotypeScore=5.12;MQ=34.72;MQ0=8;OQ=74.27;QD=2.12;SB=-16.93	GT:AD:DP:GL:GQ	0/1:24,11:20:-16.74,-6.03,-51.18:99
-chr1	3600242	.	C	T	27.02	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=33;Dels=0.00;HRun=0;HaplotypeScore=7.00;MQ=31.01;MQ0=9;QD=0.82;SB=14.05	GT:AD:DP:GL:GQ	0/1:28,5:16:-10.81,-4.82,-45.03:59.85
-chr1	3600252	.	G	A	0.25	PASS	AC=1;AF=0.50;AN=2;DP=24;Dels=0.00;HRun=0;HaplotypeScore=5.21;MQ=33.15;MQ0=7;OQ=119.84;QD=4.99;SB=-7.00	GT:AD:DP:GL:GQ	0/1:19,5:10:-18.28,-3.02,-16.17:99
-chr1	3600264	rs61762234	A	C	2.70	PASS	AC=2;AF=1.00;AN=2;DB;DP=18;Dels=0.00;HRun=2;HaplotypeScore=2.09;MQ=34.74;MQ0=5;OQ=244.22;QD=13.57;SB=-10.00	GT:AD:DP:GL:GQ	1/1:4,14:8:-28.01,-2.41,-0.00:24.07
-chr1	3600309	.	C	A	44.81	LowQual	AC=2;AF=1.00;AN=2;DP=5;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=28.74;MQ0=1;QD=8.96;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,5:2:-7.89,-0.60,-0.00:6.02
-chr1	3600350	.	C	T	27.34	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=12;Dels=0.00;HRun=1;HaplotypeScore=4.81;MQ=17.75;MQ0=4;QD=2.28;SB=-31.62	GT:AD:DP:GL:GQ	0/1:8,4:3:-6.92,-0.91,-3.40:24.94
-chr1	3600367	rs35012159	G	C	33.49	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DB;DP=36;Dels=0.00;HRun=2;HaplotypeScore=10.16;MQ=14.95;MQ0=16;QD=0.93;SB=-40.88	GT:AD:DP:GL:GQ	0/1:29,7:6:-8.44,-1.81,-16.03:66.33
-chr1	3600427	.	C	T	85.30	DPFilter;HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=98;Dels=0.00;HRun=0;HaplotypeScore=22.31;MQ=14.22;MQ0=48;QD=0.87;SB=11.05	GT:AD:DP:GL:GQ	0/1:88,10:24:-19.05,-7.24,-63.74:99
-chr1	3600428	.	G	A	105.38	HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=94;Dels=0.00;HRun=0;HaplotypeScore=22.15;MQ=14.50;MQ0=46;QD=1.12;SB=-26.63	GT:AD:DP:GL:GQ	0/1:84,9:25:-21.36,-7.54,-60.74:99
-chr1	3600437	.	G	C	161.98	HARD_TO_VALIDATE;SnpCluster	AC=1;AF=0.50;AN=2;DP=91;Dels=0.00;HRun=2;HaplotypeScore=28.11;MQ=14.54;MQ0=44;QD=1.78;SB=-27.40	GT:AD:DP:GL:GQ	0/1:81,9:25:-27.02,-7.53,-80.42:99
-chr1	3600440	.	A	C	23.09	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=91;Dels=0.00;HRun=2;HaplotypeScore=12.59;MQ=14.51;MQ0=44;QD=0.25;SB=-17.83	GT:AD:DP:GL:GQ	0/1:72,19:25:-13.12,-7.53,-77.67:55.91
-chr1	3600470	.	C	T	26.44	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=43;Dels=0.00;HRun=0;HaplotypeScore=13.21;MQ=11.80;MQ0=28;QD=0.61;SB=2.03	GT:AD:DP:GL:GQ	0/1:41,2:8:-8.34,-2.41,-20.77:59.27
-chr1	3600475	.	A	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=36;Dels=0.00;HRun=2;HaplotypeScore=2.58;MQ=10.93;MQ0=23;OQ=89.38;QD=2.48;SB=-3.98	GT:AD:DP:GL:GQ	0/1:21,15:6:-14.03,-1.81,-7.79:59.84
-chr1	3600532	.	C	T	45.13	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DP=17;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=11.72;MQ0=9;QD=2.65;SB=-47.67	GT:AD:DP:GL:GQ	1/1:12,5:2:-7.92,-0.60,-0.00:6.02
-chr1	3600545	.	A	C	20.73	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=26;Dels=0.00;HRun=2;HaplotypeScore=0.73;MQ=18.85;MQ0=10;QD=0.80;SB=-32.99	GT:AD:DP:GL:GQ	0/1:14,12:4:-6.56,-1.20,-7.53:53.53
-chr1	3600575	.	C	T	0.06	PASS	AC=1;AF=0.50;AN=2;DP=30;Dels=0.00;HRun=0;HaplotypeScore=7.34;MQ=23.21;MQ0=9;OQ=164.83;QD=5.49;SB=-77.08	GT:AD:DP:GL:GQ	0/1:24,6:9:-22.48,-2.71,-11.26:85.52
-chr1	3600578	.	C	T	0.49	PASS	AC=1;AF=0.50;AN=2;DP=29;Dels=0.00;HRun=0;HaplotypeScore=5.98;MQ=23.98;MQ0=9;OQ=197.36;QD=6.81;SB=-112.62	GT:AD:DP:GL:GQ	0/1:22,7:11:-26.34,-3.32,-14.46:99
-chr1	3600596	.	C	T	0.28	PASS	AC=2;AF=1.00;AN=2;DP=14;Dels=0.00;HRun=1;HaplotypeScore=0.95;MQ=33.58;MQ0=0;OQ=353.36;QD=25.24;SB=-175.22	GT:AD:DP:GL:GQ	1/1:0,14:10:-38.92,-3.01,-0.01:30.09
-chr1	3600667	.	C	T	19.38	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=18;Dels=0.00;HRun=1;HaplotypeScore=14.09;MQ=16.96;MQ0=7;QD=1.08;SB=-29.64	GT:AD:DP:GL:GQ	0/1:14,4:7:-7.33,-2.11,-16.23:52.17
-chr1	3600709	.	C	T	32.48	PASS	AC=2;AF=1.00;AN=2;DP=31;Dels=0.00;HRun=0;HaplotypeScore=3.31;MQ=14.75;MQ0=16;OQ=271.94;QD=8.77;SB=-129.00	GT:AD:DP:GL:GQ	1/1:10,20:8:-30.78,-2.41,-0.00:24.07
-chr1	3600734	.	C	A	11.22	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=19;Dels=0.00;HRun=0;HaplotypeScore=2.94;MQ=17.16;MQ0=10;QD=0.59;SB=-7.00	GT:AD:DP:GL:GQ	0/1:17,2:6:-6.18,-1.81,-13.77:43.72
-chr1	3600738	.	C	T	23.24	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=19;Dels=0.00;HRun=1;HaplotypeScore=5.72;MQ=17.16;MQ0=10;QD=1.22;SB=-6.99	GT:AD:DP:GL:GQ	0/1:14,5:6:-7.41,-1.81,-13.10:56.06
-chr1	3600746	.	G	A	0.90	PASS	AC=1;AF=0.50;AN=2;DP=22;Dels=0.00;HRun=0;HaplotypeScore=5.14;MQ=19.46;MQ0=10;OQ=147.44;QD=6.70;SB=-47.55	GT:AD:DP:GL:GQ	0/1:6,16:6:-19.82,-1.81,-3.10:12.90
-chr1	3600943	.	A	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=35;Dels=0.00;HRun=1;HaplotypeScore=3.94;MQ=10.81;MQ0=18;OQ=79.37;QD=2.27;SB=-10.00	GT:AD:DP:GL:GQ	0/1:27,8:5:-12.73,-1.51,-3.55:20.36
-chr1	3600944	.	G	A	31.47	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=34;Dels=0.00;HRun=1;HaplotypeScore=3.94;MQ=10.97;MQ0=17;QD=0.93;SB=-10.00	GT:AD:DP:GL:GQ	0/1:32,2:5:-7.94,-1.51,-9.29:64.30
-chr1	3600955	.	C	T	29.25	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=32;Dels=0.00;HRun=0;HaplotypeScore=3.80;MQ=11.72;MQ0=17;QD=0.91;SB=-10.00	GT:AD:DP:GL:GQ	0/1:25,7:6:-8.02,-1.81,-11.97:62.08
-chr1	3600968	.	A	C	27.28	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=34;Dels=0.00;HRun=2;HaplotypeScore=4.96;MQ=11.75;MQ0=20;QD=0.80;SB=-10.00	GT:AD:DP:GL:GQ	0/1:18,16:5:-7.52,-1.51,-9.32:60.10
-chr1	3601000	.	G	C	23.03	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=50;Dels=0.00;HRun=2;HaplotypeScore=12.60;MQ=11.01;MQ0=30;QD=0.46;SB=-6.99	GT:AD:DP:GL:GQ	0/1:44,6:9:-8.30,-2.71,-30.70:55.84
-chr1	3601003	.	A	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=51;Dels=0.00;HRun=2;HaplotypeScore=15.11;MQ=12.05;MQ0=28;OQ=191.04;QD=3.75;SB=-6.99	GT:AD:DP:GL:GQ	0/1:28,23:11:-25.70,-3.31,-14.21:99
-chr1	3601025	.	C	T	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=56;Dels=0.00;HRun=0;HaplotypeScore=13.71;MQ=14.27;MQ0=33;OQ=53.75;QD=0.96;SB=-3.99	GT:AD:DP:GL:GQ	0/1:46,9:10:-11.67,-3.01,-22.44:86.59
-chr1	3601070	rs36156048	C	G	0.13	PASS	AC=1;AF=0.50;AN=2;DB;DP=25;Dels=0.00;HRun=0;HaplotypeScore=10.95;MQ=20.17;MQ0=10;OQ=79.41;QD=3.18;SB=-46.45	GT:AD:DP:GL:GQ	0/1:14,11:6:-13.03,-1.81,-11.69:98.78
-chr1	3601096	.	G	A	20.37	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=17;Dels=0.00;HRun=0;HaplotypeScore=8.03;MQ=17.90;MQ0=5;QD=1.20;SB=-27.52	GT:AD:DP:GL:GQ	0/1:13,3:5:-6.83,-1.51,-8.44:53.16
-chr1	3601143	.	A	C	0.18	PASS	AC=1;AF=0.50;AN=2;DP=23;Dels=0.00;HRun=2;HaplotypeScore=0.16;MQ=20.37;MQ0=7;OQ=150.35;QD=6.54;SB=-72.98	GT:AD:DP:GL:GQ	0/1:14,9:10:-21.33,-3.01,-13.91:99
-chr1	3601165	.	C	T	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=30;Dels=0.00;HRun=0;HaplotypeScore=11.69;MQ=24.21;MQ0=10;OQ=173.39;QD=5.78;SB=-3.99	GT:AD:DP:GL:GQ	0/1:22,8:11:-23.94,-3.31,-15.90:99
-chr1	3601175	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=41;Dels=0.00;HRun=2;HaplotypeScore=35.74;MQ=29.63;MQ0=10;OQ=194.57;QD=4.75;SB=-123.70	GT:AD:DP:GL:GQ	0/1:27,14:21:-29.07,-6.33,-61.55:99
-chr1	3601178	.	A	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=43;Dels=0.00;HRun=2;HaplotypeScore=14.60;MQ=30.57;MQ0=8;OQ=427.34;QD=9.94;SB=-58.96	GT:AD:DP:GL:GQ	0/1:21,22:25:-53.55,-7.53,-34.82:99
-chr1	3601218	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=75;Dels=0.00;HRun=2;HaplotypeScore=16.31;MQ=41.71;MQ0=5;OQ=182.10;QD=2.43;SB=-33.64	GT:AD:DP:GL:GQ	0/1:61,14:63:-40.49,-19.00,-224.09:99
-chr1	3601225	rs12722819	A	C	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DB;DP=83;Dels=0.00;HRun=3;HaplotypeScore=15.63;MQ=42.30;MQ0=5;OQ=524.29;QD=6.32;SB=-141.88	GT:AD:DP:GL:GQ	0/1:52,30:59:-73.50,-17.79,-124.07:99
-chr1	3601229	rs12727450	T	C	0.93	PASS	AC=1;AF=0.50;AN=2;DB;DP=84;Dels=0.00;HRun=3;HaplotypeScore=5.92;MQ=43.45;MQ0=6;OQ=762.30;QD=9.07;SB=-332.31	GT:AD:DP:GL:GQ	0/1:49,35:67:-99.71,-20.19,-147.26:99
-chr1	3601341	rs12239528	C	T	0.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=89;Dels=0.01;HRun=0;HaplotypeScore=14.56;MQ=44.93;MQ0=17;OQ=62.54;QD=0.70;SB=44.13	GT:AD:DP:GL:GQ	0/1:79,8:62:-27.92,-18.38,-184.40:95.37
-chr1	3601342	rs11581562	G	A	0.21	PASS	AC=1;AF=0.50;AN=2;DB;DP=90;Dels=0.01;HRun=0;HaplotypeScore=14.40;MQ=44.68;MQ0=18;OQ=819.35;QD=9.10;SB=-177.16	GT:AD:DP:GL:GQ	0/1:53,33:59:-102.70,-17.49,-103.40:99
-chr1	3601389	.	A	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=81;Dels=0.00;HRun=2;HaplotypeScore=7.82;MQ=44.29;MQ0=18;OQ=186.02;QD=2.30;SB=-61.02	GT:AD:DP:GL:GQ	0/1:62,19:52:-37.55,-15.67,-142.29:99
-chr1	3601457	rs10910012	A	G	122.78	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=-0.06;MQ=54.59;MQ0=0;OQ=1506.74;QD=29.54;SB=-756.93	GT:AD:DP:GL:GQ	1/1:0,51:48:-154.31,-14.48,-0.05:99
-chr1	3601752	rs3765731	G	A	361.77	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=2.26;MQ=59.28;MQ0=0;OQ=1001.62;QD=15.65;SB=-488.04	GT:AD:DP:GL:GQ	0/1:31,33:59:-121.23,-17.79,-88.90:99
-chr1	3601820	rs3765732	G	A	2.96	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=5.00;MQ=59.03;MQ0=0;OQ=1613.11;QD=33.61;SB=-476.00	GT:AD:DP:GL:GQ	1/1:0,46:44:-167.13,-15.44,-2.23:99
-chr1	3602293	rs1885869	T	C	376.91	PASS	AC=2;AF=1.00;AN=2;DB;DP=37;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1214.50;QD=32.82;SB=-519.18	GT:AD:DP:GL:GQ	1/1:0,37:35:-125.05,-10.54,-0.02:99
-chr1	3603630	rs10910013	C	T	111.93	PASS	AC=1;AF=0.50;AN=2;DB;DP=35;Dels=0.00;HRun=1;HaplotypeScore=0.87;MQ=59.47;MQ0=0;OQ=534.95;QD=15.28;SB=-205.85	GT:AD:DP:GL:GQ	0/1:18,17:34:-67.02,-10.25,-59.55:99
-chr1	3603781	rs35837097	A	G	62.33	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=2;HaplotypeScore=1.60;MQ=59.60;MQ0=0;OQ=546.71;QD=11.63;SB=-279.27	GT:AD:DP:GL:GQ	0/1:23,24:43:-70.92,-12.96,-83.70:99
-chr1	3605288	rs11580811	G	A	73.23	PASS	AC=1;AF=0.50;AN=2;DB;DP=28;Dels=0.00;HRun=0;HaplotypeScore=2.02;MQ=59.17;MQ0=0;OQ=263.75;QD=9.42;SB=-51.00	GT:AD:DP:GL:GQ	0/1:17,11:22:-36.29,-6.63,-43.95:99
-chr1	3606461	rs3765736	C	T	194.21	PASS	AC=1;AF=0.50;AN=2;DB;DP=27;Dels=0.00;HRun=1;HaplotypeScore=1.59;MQ=57.38;MQ0=0;OQ=406.81;QD=15.07;SB=-214.90	GT:AD:DP:GL:GQ	0/1:13,14:23:-50.90,-6.93,-35.03:99
-chr1	3606652	rs3765737	A	G	468.77	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.79;MQ0=0;OQ=799.22;QD=12.89;SB=-323.13	GT:AD:DP:GL:GQ	0/1:30,32:60:-101.29,-18.08,-117.49:99
-chr1	3606658	rs3765738	G	A	253.54	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=2.32;MQ=58.79;MQ0=0;OQ=935.05;QD=15.08;SB=-404.78	GT:AD:DP:GL:GQ	0/1:33,29:61:-115.17,-18.38,-103.51:99
-chr1	3606835	rs4610947	C	A	292.86	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=60.39;MQ0=0;OQ=957.03;QD=17.09;SB=-493.95	GT:AD:DP:GL:GQ	0/1:24,31:55:-115.55,-16.56,-86.20:99
-chr1	3606979	rs4378145	G	A	258.79	PASS	AC=1;AF=0.50;AN=2;DB;DP=79;Dels=0.00;HRun=0;HaplotypeScore=2.14;MQ=57.58;MQ0=5;OQ=1287.24;QD=16.29;SB=-484.49	GT:AD:DP:GL:GQ	0/1:40,39:72:-153.70,-21.69,-124.59:99
-chr1	3607481	rs3765739	A	G	35.10	PASS	AC=1;AF=0.50;AN=2;DB;DP=34;Dels=0.00;HRun=1;HaplotypeScore=2.69;MQ=56.52;MQ0=0;OQ=316.46;QD=9.31;SB=-99.71	GT:AD:DP:GL:GQ	0/1:16,18:27:-43.07,-8.14,-49.38:99
-chr1	3608425	rs3819959	T	C	21.46	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=2;HaplotypeScore=2.02;MQ=53.67;MQ0=0;OQ=372.33;QD=9.08;SB=-195.61	GT:AD:DP:GL:GQ	0/1:23,18:34:-50.76,-10.24,-80.92:99
-chr1	3608574	rs3765740	T	G	43.97	PASS	AC=1;AF=0.50;AN=2;DB;DP=26;Dels=0.00;HRun=2;HaplotypeScore=1.03;MQ=59.11;MQ0=0;OQ=373.92;QD=14.38;SB=-208.83	GT:AD:DP:GL:GQ	0/1:12,14:26:-48.51,-7.83,-42.30:99
-chr1	3608643	rs3765741	A	G	139.94	PASS	AC=1;AF=0.50;AN=2;DB;DP=25;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=59.25;MQ0=0;OQ=277.44;QD=11.10;SB=-3.99	GT:AD:DP:GL:GQ	0/1:13,12:23:-37.96,-6.93,-45.69:99
-chr1	3608686	rs3765742	G	A	11.54	PASS	AC=1;AF=0.50;AN=2;DB;DP=20;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=299.52;QD=14.98;SB=-7.00	GT:AD:DP:GL:GQ	0/1:9,11:19:-38.96,-5.72,-31.25:99
-chr1	3608969	rs3765743	C	T	17.24	PASS	AC=1;AF=0.50;AN=2;DB;DP=20;Dels=0.00;HRun=0;HaplotypeScore=0.83;MQ=60.00;MQ0=0;OQ=315.53;QD=15.78;SB=-3.99	GT:AD:DP:GL:GQ	0/1:10,10:19:-40.56,-5.72,-31.07:99
-chr1	3609567	rs4648550	T	A	206.11	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=58.98;MQ0=0;OQ=1535.78;QD=37.46;SB=-673.01	GT:AD:DP:GL:GQ	1/1:0,41:41:-157.17,-12.35,-0.01:99
-chr1	3609807	rs34881405	T	C	7.83	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=2;HaplotypeScore=0.49;MQ=57.54;MQ0=0;OQ=345.64;QD=7.86;SB=-128.25	GT:AD:DP:GL:GQ	0/1:24,20:40:-49.91,-12.06,-96.00:99
-chr1	3610040	rs17379833	A	T	163.16	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=1;HaplotypeScore=0.97;MQ=59.52;MQ0=0;OQ=999.11;QD=20.81;SB=-480.53	GT:AD:DP:GL:GQ	0/1:16,32:47:-117.35,-14.16,-58.41:99
-chr1	3610295	rs12742969	A	G	136.51	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=514.16;QD=10.49;SB=-277.41	GT:AD:DP:GL:GQ	0/1:28,21:47:-68.86,-14.16,-115.22:99
-chr1	3610320	rs12735439	C	A	230.39	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=1.95;MQ=60.00;MQ0=0;OQ=801.03;QD=16.35;SB=-378.77	GT:AD:DP:GL:GQ	0/1:22,27:48:-97.85,-14.46,-70.21:99
-chr1	3611339	rs3765749	A	T	129.18	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=1.32;MQ=60.00;MQ0=0;OQ=640.71;QD=17.32;SB=-252.96	GT:AD:DP:GL:GQ	0/1:16,21:36:-78.20,-10.84,-56.57:99
-chr1	3612044	rs3765751	A	G	0.64	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=6.05;MQ=58.84;MQ0=0;OQ=1141.41;QD=28.54;SB=-361.32	GT:AD:DP:GL:GQ	1/1:0,39:37:-117.76,-11.16,-0.04:99
-chr1	3612141	rs3765752	G	A	98.32	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.42;MQ0=0;OQ=790.33;QD=19.76;SB=-403.21	GT:AD:DP:GL:GQ	0/1:16,24:40:-94.37,-12.05,-52.81:99
-chr1	3612166	rs3765753	T	G	307.87	PASS	AC=2;AF=1.00;AN=2;DB;DP=36;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.36;MQ0=0;OQ=1135.84;QD=31.55;SB=-218.90	GT:AD:DP:GL:GQ	1/1:0,36:34:-117.19,-10.25,-0.02:99
-chr1	3612496	rs12086279	A	T	144.33	PASS	AC=1;AF=0.50;AN=2;DB;DP=22;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=53.76;MQ0=0;OQ=264.24;QD=12.01;SB=-145.87	GT:AD:DP:GL:GQ	0/1:12,10:20:-35.73,-6.03,-37.15:99
-chr1	3612742	rs56124535	A	G	117.78	PASS	AC=1;AF=0.50;AN=2;DB;DP=19;Dels=0.00;HRun=0;HaplotypeScore=0.93;MQ=57.14;MQ0=0;OQ=143.16;QD=7.53;SB=-61.32	GT:AD:DP:GL:GQ	0/1:9,9:16:-22.43,-4.83,-33.66:99
-chr1	3612752	rs55976062	T	C	0.05	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DB;DP=19;Dels=0.00;HRun=2;HaplotypeScore=16.88;MQ=55.46;MQ0=1;OQ=130.66;QD=6.88;SB=-60.86	GT:AD:DP:GL:GQ	0/1:11,8:16:-21.17,-4.82,-37.90:99
-chr1	3612857	rs10910014	T	C	4.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=32;Dels=0.00;HRun=0;HaplotypeScore=2.85;MQ=45.10;MQ0=1;OQ=122.28;QD=3.82;SB=-65.87	GT:AD:DP:GL:GQ	0/1:18,14:19:-21.24,-5.73,-45.71:99
-chr1	3612894	rs58140697	A	G	0.05	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DB;DP=24;Dels=0.00;HRun=4;HaplotypeScore=5.46;MQ=58.05;MQ0=0;OQ=210.19;QD=8.76;SB=-118.71	GT:AD:DP:GL:GQ	0/1:15,9:22:-30.93,-6.63,-52.73:99
-chr1	3612902	rs60071664	T	C	130.61	PASS	AC=1;AF=0.50;AN=2;DB;DP=26;Dels=0.00;HRun=0;HaplotypeScore=1.10;MQ=57.06;MQ0=0;OQ=194.42;QD=7.48;SB=-106.60	GT:AD:DP:GL:GQ	0/1:16,10:25:-30.26,-7.53,-62.36:99
-chr1	3613185	rs12564843	G	C	7.11	PASS	AC=2;AF=1.00;AN=2;DB;DP=36;Dels=0.00;HRun=2;HaplotypeScore=1.11;MQ=53.89;MQ0=0;OQ=1382.10;QD=38.39;SB=-571.48	GT:AD:DP:GL:GQ	1/1:0,36:33:-141.81,-9.95,-0.02:99
-chr1	3613274	rs9786966	A	G	67.74	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=4.62;MQ=57.45;MQ0=0;OQ=414.03;QD=10.62;SB=-167.59	GT:AD:DP:GL:GQ	0/1:21,18:36:-55.53,-10.85,-77.07:99
-chr1	3613481	rs55657548	C	T	77.12	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=1.32;MQ=58.92;MQ0=0;OQ=252.32;QD=6.47;SB=-105.49	GT:AD:DP:GL:GQ	0/1:27,11:38:-39.97,-11.45,-93.41:99
-chr1	3614769	rs10910016	G	A	258.29	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=2.33;MQ=59.57;MQ0=0;OQ=815.07;QD=15.09;SB=-428.45	GT:AD:DP:GL:GQ	0/1:27,26:50:-99.87,-15.07,-79.93:99
-chr1	3615542	rs3765755	G	C	6.35	PASS	AC=1;AF=0.50;AN=2;DB;DP=27;Dels=0.00;HRun=2;HaplotypeScore=3.76;MQ=57.56;MQ0=0;OQ=289.35;QD=10.72;SB=-124.51	GT:AD:DP:GL:GQ	0/1:17,10:20:-38.26,-6.05,-38.86:99
-chr1	3615628	rs2368540	G	A	45.74	PASS	AC=2;AF=1.00;AN=2;DB;DP=34;Dels=0.00;HRun=1;HaplotypeScore=0.63;MQ=57.64;MQ0=0;OQ=1334.80;QD=39.26;SB=-676.69	GT:AD:DP:GL:GQ	1/1:0,34:34:-137.07,-10.24,-0.01:99
-chr1	3615736	rs2368539	G	A	82.76	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=3.19;MQ=58.99;MQ0=0;OQ=1720.73;QD=37.41;SB=-824.61	GT:AD:DP:GL:GQ	1/1:0,46:45:-175.68,-13.56,-0.02:99
-chr1	3616028	rs12130809	G	A	272.35	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=60.00;MQ0=0;OQ=838.34;QD=17.11;SB=-389.14	GT:AD:DP:GL:GQ	0/1:23,26:48:-101.58,-14.46,-75.57:99
-chr1	3616588	rs3753208	C	T	1.11	PASS	AC=1;AF=0.50;AN=2;DB;DP=26;Dels=0.00;HRun=1;HaplotypeScore=2.44;MQ=57.64;MQ0=0;OQ=539.82;QD=20.76;SB=-254.78	GT:AD:DP:GL:GQ	0/1:9,17:24:-64.50,-7.23,-25.72:99
-chr1	3616624	rs3753209	G	A	11.81	PASS	AC=1;AF=0.50;AN=2;DB;DP=21;Dels=0.00;HRun=0;HaplotypeScore=2.38;MQ=58.89;MQ0=0;OQ=522.74;QD=24.89;SB=-281.33	GT:AD:DP:GL:GQ	0/1:4,17:19:-61.28,-5.73,-9.34:36.13
-chr1	3618071	rs3819961	T	C	130.28	PASS	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=2.02;MQ=59.30;MQ0=0;OQ=302.64;QD=9.17;SB=-168.93	GT:AD:DP:GL:GQ	0/1:19,14:29:-42.29,-8.74,-60.25:99
-chr1	3618163	rs3819962	C	T	161.54	PASS	AC=1;AF=0.50;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=1.73;MQ=59.36;MQ0=0;OQ=457.21;QD=12.70;SB=-166.18	GT:AD:DP:GL:GQ	0/1:20,16:35:-59.55,-10.55,-68.25:99
-chr1	3618201	rs3819963	C	T	122.91	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=3.07;MQ=60.00;MQ0=0;OQ=469.25;QD=9.98;SB=-160.23	GT:AD:DP:GL:GQ	0/1:28,19:40:-62.27,-12.06,-77.68:99
-chr1	3618523	rs6424089	A	G	234.40	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=1.73;MQ=59.55;MQ0=0;OQ=515.26;QD=10.10;SB=-135.54	GT:AD:DP:GL:GQ	0/1:28,23:50:-69.88,-15.07,-112.69:99
-chr1	3618537	rs6424090	A	G	547.53	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.83;MQ0=0;OQ=1664.50;QD=30.82;SB=-446.16	GT:AD:DP:GL:GQ	1/1:0,54:52:-170.07,-15.68,-0.04:99
-chr1	3619132	rs61568045	A	T	75.76	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=2;HaplotypeScore=1.40;MQ=60.00;MQ0=0;OQ=702.41;QD=14.05;SB=-308.70	GT:AD:DP:GL:GQ	0/1:27,23:49:-88.29,-14.76,-94.54:99
-chr1	3619452	rs3765758	A	G	47.37	PASS	AC=2;AF=1.00;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=59.30;MQ0=0;OQ=878.57;QD=26.62;SB=-355.42	GT:AD:DP:GL:GQ	1/1:0,33:30:-91.48,-9.06,-0.04:90.16
-chr1	3620336	rs3765761	C	T	430.43	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=59.64;MQ0=0;OQ=893.13;QD=17.18;SB=-472.49	GT:AD:DP:GL:GQ	0/1:25,27:51:-107.96,-15.36,-81.84:99
-chr1	3620975	rs3765763	C	A	252.43	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=59.39;MQ0=0;OQ=502.24;QD=13.22;SB=-232.36	GT:AD:DP:GL:GQ	0/1:20,18:37:-64.65,-11.14,-68.16:99
-chr1	3621759	rs61759267	C	T	206.85	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=1.79;MQ=58.40;MQ0=0;OQ=667.68;QD=16.28;SB=-326.34	GT:AD:DP:GL:GQ	0/1:19,22:40:-82.11,-12.06,-61.46:99
-chr1	3622468	rs3753211	T	C	35.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=6.67;MQ=58.45;MQ0=0;OQ=511.74;QD=11.37;SB=-197.62	GT:AD:DP:GL:GQ	0/1:23,22:42:-67.14,-12.68,-73.45:99
-chr1	3622590	rs4648551	G	A	13.99	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=8.04;MQ=59.11;MQ0=0;OQ=881.37;QD=14.94;SB=-385.40	GT:AD:DP:GL:GQ	0/1:30,29:55:-108.00,-16.58,-90.70:99
-chr1	3623397	rs3765764	G	A	5.20	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=2;HaplotypeScore=0.99;MQ=59.59;MQ0=0;OQ=1699.76;QD=37.77;SB=-349.25	GT:AD:DP:GL:GQ	1/1:0,44:44:-176.03,-15.59,-2.47:99
-chr1	3624319	rs3765765	C	A	38.07	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.38;MQ0=0;OQ=752.18;QD=20.33;SB=-184.22	GT:AD:DP:GL:GQ	0/1:13,24:36:-89.34,-10.84,-42.24:99
-chr1	3624520	rs3765766	T	C	10.08	PASS	AC=2;AF=1.00;AN=2;DB;DP=22;Dels=0.00;HRun=2;HaplotypeScore=2.32;MQ=58.08;MQ0=0;OQ=679.70;QD=30.90;SB=-324.14	GT:AD:DP:GL:GQ	1/1:0,22:21:-71.57,-6.33,-0.02:63.16
-chr1	3625325	rs3765767	G	C	128.03	PASS	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=1.75;MQ=59.30;MQ0=0;OQ=648.42;QD=19.65;SB=-303.36	GT:AD:DP:GL:GQ	0/1:15,18:33:-78.07,-9.95,-65.85:99
-chr1	3625451	rs3765768	C	T	99.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=22;Dels=0.00;HRun=0;HaplotypeScore=1.13;MQ=57.87;MQ0=0;OQ=372.64;QD=16.94;SB=-111.62	GT:AD:DP:GL:GQ	0/1:9,13:20:-46.58,-6.03,-24.55:99
-chr1	3625480	rs3819968	G	T	164.17	PASS	AC=1;AF=0.50;AN=2;DB;DP=34;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=59.32;MQ0=0;OQ=519.45;QD=15.28;SB=-228.94	GT:AD:DP:GL:GQ	0/1:15,19:32:-64.87,-9.64,-47.62:99
-chr1	3627107	rs3765771	G	C	208.39	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=59.53;MQ0=0;OQ=1861.37;QD=37.99;SB=-769.21	GT:AD:DP:GL:GQ	1/1:0,49:48:-189.76,-14.49,-0.04:99
-chr1	3627319	rs12731705	C	T	198.62	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.16;MQ0=0;OQ=1887.80;QD=37.76;SB=-826.61	GT:AD:DP:GL:GQ	1/1:0,50:48:-192.38,-14.46,-0.01:99
-chr1	3627473	rs2146658	T	G	374.11	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=1.05;MQ=58.91;MQ0=0;OQ=603.03;QD=10.05;SB=-295.81	GT:AD:DP:GL:GQ	0/1:35,25:58:-81.06,-17.47,-122.08:99
-chr1	3627672	rs2181487	C	A	40.28	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=4.14;MQ=58.10;MQ0=0;OQ=433.83;QD=7.35;SB=-156.52	GT:AD:DP:GL:GQ	0/1:34,22:49:-61.43,-14.77,-105.52:99
-chr1	3628534	rs1801174	C	T	158.46	PASS	AC=2;AF=1.00;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=1.95;MQ=59.66;MQ0=0;OQ=2550.78;QD=38.07;SB=-965.29	GT:AD:DP:GL:GQ	1/1:0,67:65:-258.68,-19.58,-0.02:99
-chr1	3628694	rs12737840	C	T	176.16	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=3.52;MQ=58.05;MQ0=0;OQ=694.01;QD=14.46;SB=-295.84	GT:AD:DP:GL:GQ	0/1:22,26:42:-85.35,-12.67,-62.54:99
-chr1	3629503	rs4648552	T	C	338.68	PASS	AC=2;AF=1.00;AN=2;DB;DP=43;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.46;MQ0=0;OQ=1294.39;QD=30.10;SB=-605.94	GT:AD:DP:GL:GQ	1/1:0,43:41:-133.06,-12.37,-0.04:99
-chr1	3629584	rs7537335	G	A	0.43	PASS	AC=1;AF=0.50;AN=2;DB;DP=31;Dels=0.00;HRun=0;HaplotypeScore=6.65;MQ=58.30;MQ0=0;OQ=677.32;QD=21.85;SB=-284.30	GT:AD:DP:GL:GQ	0/1:10,21:29:-79.75,-8.74,-30.01:99
-chr1	3629945	rs6424091	C	G	0.03	FDRtranche0.10to1.00	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=5;HaplotypeScore=2.31;MQ=58.54;MQ0=0;OQ=1470.54;QD=38.70;SB=-622.99	GT:AD:DP:GL:GQ	1/1:0,38:35:-150.65,-10.55,-0.01:99
-chr1	3630886	rs6687491	G	A	255.56	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.48;MQ=58.48;MQ0=0;OQ=516.42;QD=12.91;SB=-227.77	GT:AD:DP:GL:GQ	0/1:22,18:36:-65.79,-10.86,-57.81:99
-chr1	3630983	rs6701784	A	C	437.82	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.55;MQ0=0;OQ=1276.86;QD=28.37;SB=-579.85	GT:AD:DP:GL:GQ	1/1:0,45:42:-131.31,-12.66,-0.04:99
-chr1	3632013	rs34178965	G	C	41.74	LowQual	AC=2;AF=1.00;AN=2;DB;DP=3;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;QD=13.91;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,3:2:-7.58,-0.60,-0.00:6.02
-chr1	3632108	.	A	G	92.54	PASS	AC=2;AF=1.00;AN=2;DP=8;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.46;MQ0=0;OQ=246.19;QD=30.77;SB=-85.92	GT:AD:DP:GL:GQ	1/1:0,8:8:-28.20,-2.41,-0.00:24.07
-chr1	3633787	rs2296031	A	G	6.14	PASS	AC=1;AF=0.50;AN=2;DB;DP=23;Dels=0.00;HRun=0;HaplotypeScore=-0.06;MQ=60.00;MQ0=0;OQ=452.89;QD=19.69;SB=-150.34	GT:AD:DP:GL:GQ	0/1:6,16:22:-55.20,-6.63,-22.30:99
-chr1	3634209	rs2181486	A	G	1.25	PASS	AC=2;AF=1.00;AN=2;DB;DP=29;Dels=0.00;HRun=4;HaplotypeScore=1.69;MQ=58.39;MQ0=0;OQ=887.40;QD=30.60;SB=-422.16	GT:AD:DP:GL:GQ	1/1:0,29:29:-92.36,-8.75,-0.03:87.19
-chr1	3634234	rs2146657	A	G	3.11	PASS	AC=2;AF=1.00;AN=2;DB;DP=32;Dels=0.00;HRun=2;HaplotypeScore=2.86;MQ=58.55;MQ0=0;OQ=912.28;QD=28.51;SB=-446.82	GT:AD:DP:GL:GQ	1/1:0,32:28:-94.83,-8.44,-0.02:84.21
-chr1	3634529	rs2236367	C	T	14.74	PASS	AC=1;AF=0.50;AN=2;DB;DP=24;Dels=0.00;HRun=0;HaplotypeScore=-0.18;MQ=58.05;MQ0=0;OQ=381.45;QD=15.89;SB=-87.90	GT:AD:DP:GL:GQ	0/1:11,13:23:-48.37,-6.94,-31.96:99
-chr1	3634665	rs2236366	A	G	76.17	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=1;HaplotypeScore=2.83;MQ=58.92;MQ0=0;OQ=536.64;QD=13.76;SB=-250.32	GT:AD:DP:GL:GQ	0/1:16,23:35:-67.50,-10.56,-54.78:99
-chr1	3634718	rs2236365	G	C	250.46	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=3.09;MQ=58.69;MQ0=0;OQ=951.80;QD=19.04;SB=-496.24	GT:AD:DP:GL:GQ	0/1:20,30:47:-112.65,-14.19,-78.43:99
-chr1	3634912	rs12095248	A	G	50.60	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=529.65;QD=10.81;SB=-225.29	GT:AD:DP:GL:GQ	0/1:29,20:49:-71.01,-14.76,-117.85:99
-chr1	3635695	rs2254530	C	A	234.40	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=56.85;MQ0=0;OQ=701.30;QD=15.58;SB=-270.34	GT:AD:DP:GL:GQ	0/1:17,28:43:-86.38,-12.96,-55.17:99
-chr1	3635704	rs2096224	G	A	61.81	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=56.39;MQ0=0;OQ=843.06;QD=18.33;SB=-255.19	GT:AD:DP:GL:GQ	0/1:18,27:42:-100.25,-12.66,-49.65:99
-chr1	3635997	rs11589885	C	T	153.88	PASS	AC=1;AF=0.50;AN=2;DB;DP=32;Dels=0.00;HRun=1;HaplotypeScore=1.19;MQ=58.55;MQ0=0;OQ=582.90;QD=18.22;SB=-289.86	GT:AD:DP:GL:GQ	0/1:14,18:32:-71.22,-9.65,-43.73:99
-chr1	3636052	rs1885867	G	A	143.16	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=1.49;MQ=59.44;MQ0=0;OQ=1392.32;QD=33.96;SB=-648.62	GT:AD:DP:GL:GQ	1/1:1,40:37:-142.84,-11.16,-0.02:99
-chr1	3636074	rs1885866	T	C	394.04	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.48;MQ0=0;OQ=1194.73;QD=27.15;SB=-580.01	GT:AD:DP:GL:GQ	1/1:0,44:39:-123.10,-11.76,-0.04:99
-chr1	3636151	rs1885865	G	A	33.35	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=1;HaplotypeScore=2.52;MQ=59.03;MQ0=0;OQ=1851.65;QD=38.58;SB=-906.66	GT:AD:DP:GL:GQ	1/1:0,48:47:-188.76,-14.16,-0.01:99
-chr1	3637822	rs1745813	T	C	55.74	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=5.13;MQ=58.97;MQ0=0;OQ=680.74;QD=15.13;SB=-289.66	GT:AD:DP:GL:GQ	0/1:18,27:43:-84.33,-12.97,-62.63:99
-chr1	3638114	rs34661835	G	A	68.90	PASS	AC=1;AF=0.50;AN=2;DB;DP=70;Dels=0.00;HRun=1;HaplotypeScore=3.56;MQ=59.01;MQ0=0;OQ=1063.39;QD=15.19;SB=-366.89	GT:AD:DP:GL:GQ	0/1:37,33:66:-129.52,-19.90,-102.17:99
-chr1	3638739	rs4648553	G	A	223.38	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=3.68;MQ=58.64;MQ0=0;OQ=511.89;QD=10.66;SB=-215.18	GT:AD:DP:GL:GQ	0/1:26,22:40:-66.54,-12.07,-70.14:99
-chr1	3640958	rs1181869	C	T	138.76	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.41;MQ0=0;OQ=782.45;QD=20.06;SB=-285.16	GT:AD:DP:GL:GQ	0/1:16,23:38:-92.98,-11.45,-54.47:99
-chr1	3640986	rs1181868	G	T	357.91	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=1.53;MQ=59.51;MQ0=0;OQ=742.19;QD=14.55;SB=-306.02	GT:AD:DP:GL:GQ	0/1:23,27:47:-91.66,-14.16,-72.26:99
-chr1	3641178	rs1181867	A	G	3.60	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=11.13;MQ=59.11;MQ0=0;OQ=463.08;QD=9.85;SB=-239.29	GT:AD:DP:GL:GQ	0/1:24,23:43:-62.56,-12.97,-88.46:99
-chr1	3642477	rs1047928	G	C	24.63	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=1;HaplotypeScore=-0.06;MQ=59.25;MQ0=0;OQ=1110.64;QD=19.83;SB=-354.44	GT:AD:DP:GL:GQ	0/1:25,31:54:-130.64,-16.30,-94.09:99
-chr1	3642678	rs61759293	G	A	143.34	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=2.60;MQ=59.59;MQ0=0;OQ=746.17;QD=16.22;SB=-262.29	GT:AD:DP:GL:GQ	0/1:23,23:46:-91.76,-13.86,-82.87:99
-chr1	3642682	rs9800	C	G	193.80	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=2.34;MQ=59.59;MQ0=0;OQ=608.81;QD=13.23;SB=-238.07	GT:AD:DP:GL:GQ	0/1:25,21:45:-77.74,-13.57,-107.75:99
-chr1	3643272	rs1181866	A	C	242.81	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.25;MQ0=0;OQ=1714.13;QD=34.28;SB=-732.08	GT:AD:DP:GL:GQ	1/1:0,50:49:-175.01,-14.76,-0.02:99
-chr1	3643286	rs1181865	T	C	423.19	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.22;MQ0=0;OQ=1563.43;QD=32.57;SB=-664.24	GT:AD:DP:GL:GQ	1/1:0,48:46:-159.95,-13.86,-0.02:99
-chr1	3644050	rs1181864	A	G	156.69	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=3.27;MQ=57.94;MQ0=0;OQ=704.72;QD=10.36;SB=-357.09	GT:AD:DP:GL:GQ	0/1:38,30:68:-94.25,-20.50,-152.69:99
-chr1	3644355	rs41315308	C	T	206.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=3.64;MQ=57.86;MQ0=0;OQ=957.61;QD=14.96;SB=-405.80	GT:AD:DP:GL:GQ	0/1:34,30:63:-118.03,-18.99,-105.73:99
-chr1	3646184	rs1181863	T	C	89.60	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=57.04;MQ0=1;OQ=1725.96;QD=27.84;SB=-738.77	GT:AD:DP:GL:GQ	1/1:0,62:55:-176.23,-16.59,-0.05:99
-chr1	3647330	rs61339658	C	T	216.66	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=59.48;MQ0=0;OQ=622.56;QD=14.15;SB=-204.90	GT:AD:DP:GL:GQ	0/1:24,20:43:-78.50,-12.96,-75.30:99
-chr1	3647619	rs12117836	G	A	258.44	PASS	AC=2;AF=1.00;AN=2;DB;DP=78;Dels=0.00;HRun=0;HaplotypeScore=1.57;MQ=59.76;MQ0=0;OQ=3087.35;QD=39.58;SB=-1142.52	GT:AD:DP:GL:GQ	1/1:0,78:77:-312.34,-23.20,-0.02:99
-chr1	3647643	rs55704710	C	T	372.37	PASS	AC=1;AF=0.50;AN=2;DB;DP=79;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=60.00;MQ0=0;OQ=1117.31;QD=14.14;SB=-441.41	GT:AD:DP:GL:GQ	0/1:44,35:79:-138.82,-23.81,-145.27:99
-chr1	3648097	rs10797409	G	A	267.01	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.27;MQ0=0;OQ=783.87;QD=15.37;SB=-396.73	GT:AD:DP:GL:GQ	0/1:26,25:51:-97.04,-15.37,-93.66:99
-chr1	3648630	rs12068191	T	C	36.85	PASS	AC=1;AF=0.50;AN=2;DB;DP=32;Dels=0.00;HRun=1;HaplotypeScore=0.63;MQ=59.42;MQ0=0;OQ=210.22;QD=6.57;SB=-113.63	GT:AD:DP:GL:GQ	0/1:20,12:30:-33.36,-9.05,-73.41:99
-chr1	3649517	rs2298222	G	A	272.39	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=2.08;MQ=58.64;MQ0=0;OQ=639.47;QD=13.32;SB=-210.21	GT:AD:DP:GL:GQ	0/1:28,20:45:-80.80,-13.57,-77.92:99
-chr1	3650201	rs10910020	A	G	239.62	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=1.37;MQ=60.00;MQ0=0;OQ=830.62;QD=14.32;SB=-256.96	GT:AD:DP:GL:GQ	0/1:22,36:55:-102.93,-16.58,-89.31:99
-chr1	3650655	rs61759295	C	T	319.94	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.48;MQ=56.32;MQ0=0;OQ=1049.42;QD=17.20;SB=-513.15	GT:AD:DP:GL:GQ	0/1:29,32:58:-125.70,-17.48,-89.86:99
-chr1	3650715	.	C	T	1.43	PASS	AC=1;AF=0.50;AN=2;DP=49;Dels=0.00;HRun=1;HaplotypeScore=2.94;MQ=58.05;MQ0=0;OQ=1053.29;QD=21.50;SB=-546.76	GT:AD:DP:GL:GQ	0/1:18,30:49:-126.44,-17.83,-68.95:99
-chr1	3650833	rs61759296	C	T	365.26	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.03;MQ0=0;OQ=780.11;QD=18.14;SB=-365.90	GT:AD:DP:GL:GQ	0/1:18,25:43:-94.25,-12.96,-66.61:99
-chr1	3650834	rs61759297	A	G	444.30	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.05;MQ0=0;OQ=732.78;QD=16.65;SB=-378.33	GT:AD:DP:GL:GQ	0/1:18,26:44:-89.82,-13.26,-70.47:99
-chr1	3651042	.	A	G	50.56	PASS	AC=2;AF=1.00;AN=2;DP=76;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=59.01;MQ0=0;OQ=2317.73;QD=30.50;SB=-942.03	GT:AD:DP:GL:GQ	1/1:0,76:75:-235.44,-22.63,-0.08:99
-chr1	3651109	.	A	G	1.79	PASS	AC=1;AF=0.50;AN=2;DP=39;Dels=0.00;HRun=0;HaplotypeScore=5.08;MQ=56.71;MQ0=0;OQ=273.27;QD=7.01;SB=-125.50	GT:AD:DP:GL:GQ	0/1:24,15:37:-41.77,-11.16,-93.00:99
-chr1	3651611	rs61759298	C	T	14.44	PASS	AC=1;AF=0.50;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=6.20;MQ=59.36;MQ0=0;OQ=487.25;QD=13.53;SB=-201.22	GT:AD:DP:GL:GQ	0/1:19,17:31:-61.35,-9.34,-53.39:99
-chr1	3651666	rs61759299	G	A	290.38	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.83;MQ=58.58;MQ0=0;OQ=537.51;QD=11.69;SB=-229.48	GT:AD:DP:GL:GQ	0/1:28,18:45:-70.60,-13.56,-93.90:99
-chr1	3652705	rs3737589	A	G	232.40	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=60.00;MQ0=0;OQ=1820.89;QD=33.11;SB=-644.31	GT:AD:DP:GL:GQ	1/1:0,55:53:-185.70,-15.97,-0.02:99
-chr1	3652806	.	C	A	30.45	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=54;Dels=0.00;HRun=2;HaplotypeScore=18.21;MQ=58.71;MQ0=0;QD=0.56;SB=77.26	GT:AD:DP:GL:GQ	0/1:38,16:41:-18.69,-12.36,-124.87:63.28
-chr1	3652917	rs3737590	A	T	248.79	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=59.59;MQ0=0;OQ=534.27;QD=11.87;SB=-180.50	GT:AD:DP:GL:GQ	0/1:25,20:43:-69.67,-12.96,-88.74:99
-chr1	3652988	rs3737591	G	A	355.22	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=743.37;QD=18.13;SB=-354.36	GT:AD:DP:GL:GQ	0/1:19,22:40:-89.67,-12.05,-59.56:99
-chr1	3653501	.	C	T	1.63	PASS	AC=1;AF=0.50;AN=2;DP=24;Dels=0.00;HRun=1;HaplotypeScore=4.19;MQ=56.43;MQ0=0;OQ=295.19;QD=12.30;SB=-147.16	GT:AD:DP:GL:GQ	0/1:12,11:20:-38.83,-6.03,-35.51:99
-chr1	3654278	rs61759300	C	T	319.11	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=1.37;MQ=59.50;MQ0=0;OQ=838.34;QD=14.71;SB=-382.16	GT:AD:DP:GL:GQ	0/1:29,28:55:-103.70,-16.58,-94.60:99
-chr1	3654412	.	G	A	1.87	PASS	AC=1;AF=0.50;AN=2;DP=55;Dels=0.00;HRun=1;HaplotypeScore=3.14;MQ=59.58;MQ0=0;OQ=1116.86;QD=20.31;SB=-482.46	GT:AD:DP:GL:GQ	0/1:23,32:54:-131.23,-16.26,-80.42:99
-chr1	3655727	rs12120656	G	T	277.67	PASS	AC=2;AF=1.00;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=2.46;MQ=59.16;MQ0=0;OQ=2493.88;QD=34.64;SB=-1022.51	GT:AD:DP:GL:GQ	1/1:0,71:69:-252.99,-20.78,-0.02:99
-chr1	3657359	rs61759301	C	A	268.48	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=1;HaplotypeScore=1.18;MQ=59.56;MQ0=0;OQ=858.70;QD=16.20;SB=-443.00	GT:AD:DP:GL:GQ	0/1:24,29:52:-104.82,-15.66,-81.51:99
-chr1	3657864	rs4648554	T	C	343.27	PASS	AC=2;AF=1.00;AN=2;DB;DP=65;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=57.67;MQ0=0;OQ=2306.57;QD=35.49;SB=-875.99	GT:AD:DP:GL:GQ	1/1:0,65:64:-234.26,-19.28,-0.02:99
-chr1	3658613	rs12128253	A	C	493.82	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=800.32;QD=17.40;SB=-351.83	GT:AD:DP:GL:GQ	0/1:19,27:46:-97.17,-13.85,-71.32:99
-chr1	3658641	rs12123850	G	T	445.21	PASS	AC=2;AF=1.00;AN=2;DB;DP=37;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1182.07;QD=31.95;SB=-471.02	GT:AD:DP:GL:GQ	1/1:0,37:33:-121.80,-9.94,-0.01:99
-chr1	3659032	rs41315312	C	T	393.31	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.19;MQ0=0;OQ=747.09;QD=16.24;SB=-297.79	GT:AD:DP:GL:GQ	0/1:23,23:45:-91.55,-13.56,-71.39:99
-chr1	3659061	rs10797410	A	G	617.38	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.56;MQ0=0;OQ=1286.97;QD=30.64;SB=-659.94	GT:AD:DP:GL:GQ	1/1:0,42:41:-132.32,-12.36,-0.04:99
-chr1	3659065	rs10910021	C	G	483.45	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.53;MQ0=0;OQ=1547.05;QD=38.68;SB=-689.48	GT:AD:DP:GL:GQ	1/1:0,40:36:-158.30,-10.85,-0.01:99
-chr1	3659480	rs10797411	T	C	0.77	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=7.27;MQ=57.71;MQ0=0;OQ=1720.61;QD=33.09;SB=-601.34	GT:AD:DP:GL:GQ	1/1:0,51:50:-175.67,-15.06,-0.02:99
-chr1	3659744	.	C	T	75.39	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=67;Dels=0.00;HRun=20;HaplotypeScore=21.91;MQ=50.61;MQ0=1;QD=1.13;SB=59.16	GT:AD:DP:GL:GQ	0/1:57,10:52:-26.50,-15.68,-150.70:99
-chr1	3659750	.	T	C	207.45	SnpCluster	AC=1;AF=0.50;AN=2;DP=68;Dels=0.00;HRun=0;HaplotypeScore=50.10;MQ=49.95;MQ0=1;QD=3.05;SB=-120.43	GT:AD:DP:GL:GQ	0/1:53,15:58:-41.51,-17.48,-178.17:99
-chr1	3659751	.	T	C	331.47	SnpCluster	AC=1;AF=0.50;AN=2;DP=67;Dels=0.00;HRun=0;HaplotypeScore=48.26;MQ=49.78;MQ0=1;QD=4.95;SB=-162.44	GT:AD:DP:GL:GQ	0/1:46,21:55:-53.00,-16.57,-149.72:99
-chr1	3660887	rs1181889	T	C	275.60	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=3.83;MQ=59.11;MQ0=0;OQ=722.62;QD=13.90;SB=-328.30	GT:AD:DP:GL:GQ	0/1:24,28:49:-90.30,-14.76,-97.70:99
-chr1	3661651	rs1181888	A	G	399.70	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=0.93;MQ=60.00;MQ0=0;OQ=490.27;QD=11.14;SB=-251.93	GT:AD:DP:GL:GQ	0/1:22,22:42:-64.98,-12.67,-82.79:99
-chr1	3662016	rs4648555	C	A	364.79	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.57;MQ0=0;OQ=510.62;QD=9.46;SB=-259.25	GT:AD:DP:GL:GQ	0/1:34,20:53:-70.31,-15.96,-121.67:99
-chr1	3662783	rs12128087	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=13;HaplotypeScore=8.43;MQ=60.15;MQ0=0;OQ=558.18;QD=10.94;SB=-253.17	GT:AD:DP:GL:GQ	0/1:30,21:47:-73.27,-14.17,-94.61:99
-chr1	3663356	rs4648405	T	G	117.92	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=1.63;MQ=59.45;MQ0=0;OQ=421.62;QD=10.04;SB=-89.84	GT:AD:DP:GL:GQ	0/1:24,18:40:-57.50,-12.05,-84.73:99
-chr1	3663862	rs1181887	T	G	544.42	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.60;MQ0=0;OQ=1620.49;QD=34.48;SB=-656.23	GT:AD:DP:GL:GQ	1/1:0,47:47:-165.65,-14.16,-0.01:99
-chr1	3664012	rs7542464	C	T	327.04	PASS	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.16;MQ0=0;OQ=1410.26;QD=37.11;SB=-358.47	GT:AD:DP:GL:GQ	1/1:0,38:38:-144.63,-11.46,-0.02:99
-chr1	3664166	.	G	A	2.11	PASS	AC=1;AF=0.50;AN=2;DP=45;Dels=0.00;HRun=3;HaplotypeScore=2.17;MQ=59.59;MQ0=0;OQ=801.46;QD=17.81;SB=-414.44	GT:AD:DP:GL:GQ	0/1:20,25:43:-96.39,-12.96,-61.16:99
-chr1	3664614	rs1181886	A	T	88.61	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=2;HaplotypeScore=0.58;MQ=59.65;MQ0=0;OQ=779.71;QD=14.44;SB=-332.65	GT:AD:DP:GL:GQ	0/1:28,26:52:-96.92,-15.66,-100.50:99
-chr1	3664618	rs9424312	T	A	76.30	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=1;HaplotypeScore=0.58;MQ=60.00;MQ0=0;OQ=946.40;QD=17.53;SB=-254.96	GT:AD:DP:GL:GQ	0/1:24,30:54:-114.19,-16.27,-85.78:99
-chr1	3664638	rs59291549	A	G	339.20	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.66;MQ0=0;OQ=754.74;QD=11.44;SB=-151.30	GT:AD:DP:GL:GQ	0/1:31,35:62:-97.45,-18.69,-125.83:99
-chr1	3664862	rs6682863	G	A	201.85	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=1.50;MQ=59.78;MQ0=0;OQ=631.54;QD=12.63;SB=-190.86	GT:AD:DP:GL:GQ	0/1:30,20:45:-80.00,-13.57,-81.03:99
-chr1	3665697	rs12128570	C	G	270.19	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=1.73;MQ=50.42;MQ0=0;OQ=767.84;QD=13.01;SB=-344.88	GT:AD:DP:GL:GQ	0/1:34,25:56:-96.94,-16.88,-141.00:99
-chr1	3665819	rs12131045	T	G	461.26	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=54.52;MQ0=0;OQ=642.50;QD=12.12;SB=-333.74	GT:AD:DP:GL:GQ	0/1:24,29:50:-82.60,-15.07,-87.60:99
-chr1	3665937	rs12128669	C	T	521.09	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=56.12;MQ0=0;OQ=862.45;QD=14.37;SB=-269.15	GT:AD:DP:GL:GQ	0/1:32,28:59:-107.30,-17.77,-116.90:99
-chr1	3666427	rs1181885	C	T	33.74	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=2;HaplotypeScore=0.16;MQ=59.66;MQ0=0;OQ=1204.99;QD=21.91;SB=-603.11	GT:AD:DP:GL:GQ	0/1:19,36:52:-139.46,-15.68,-54.65:99
-chr1	3666458	rs1181884	T	C	438.67	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=0.74;MQ=60.00;MQ0=0;OQ=1123.89;QD=17.56;SB=-533.09	GT:AD:DP:GL:GQ	0/1:26,38:63:-134.65,-18.98,-101.24:99
-chr1	3666632	rs12406474	T	C	126.45	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=3;HaplotypeScore=1.53;MQ=58.86;MQ0=0;OQ=740.89;QD=13.00;SB=-344.59	GT:AD:DP:GL:GQ	0/1:29,28:56:-94.24,-16.87,-116.11:99
-chr1	3667793	rs1181883	T	C	251.38	PASS	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=1.40;MQ=59.64;MQ0=0;OQ=2030.56;QD=31.73;SB=-682.90	GT:AD:DP:GL:GQ	1/1:0,64:64:-206.69,-19.29,-0.05:99
-chr1	3668081	rs1181882	G	C	162.48	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=1.42;MQ=60.00;MQ0=0;OQ=1618.57;QD=31.13;SB=-715.93	GT:AD:DP:GL:GQ	1/1:0,52:43:-165.50,-13.00,-0.06:99
-chr1	3668091	rs7516756	A	G	107.99	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=1;HaplotypeScore=1.56;MQ=60.00;MQ0=0;OQ=613.13;QD=11.57;SB=-116.72	GT:AD:DP:GL:GQ	0/1:27,26:49:-79.36,-14.77,-98.00:99
-chr1	3668371	rs7516968	A	G	62.28	PASS	AC=1;AF=0.50;AN=2;DB;DP=23;Dels=0.00;HRun=1;HaplotypeScore=0.93;MQ=60.00;MQ0=0;OQ=209.36;QD=9.10;SB=-37.93	GT:AD:DP:GL:GQ	0/1:13,10:22:-30.85,-6.63,-52.05:99
-chr1	3668596	.	G	A	15.65	PASS	AC=1;AF=0.50;AN=2;DP=35;Dels=0.00;HRun=0;HaplotypeScore=1.87;MQ=57.44;MQ0=0;OQ=384.28;QD=10.98;SB=-65.05	GT:AD:DP:GL:GQ	0/1:22,13:35:-52.26,-10.55,-81.04:99
-chr1	3668758	rs1181881	A	G	16.49	PASS	AC=2;AF=1.00;AN=2;DB;DP=30;Dels=0.00;HRun=1;HaplotypeScore=1.26;MQ=57.96;MQ0=0;OQ=916.82;QD=30.56;SB=-341.43	GT:AD:DP:GL:GQ	1/1:0,30:29:-95.29,-8.74,-0.02:87.21
-chr1	3668764	rs1181880	C	T	45.57	PASS	AC=1;AF=0.50;AN=2;DB;DP=28;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=58.66;MQ0=0;OQ=531.41;QD=18.98;SB=-213.73	GT:AD:DP:GL:GQ	0/1:11,17:28:-64.87,-8.45,-34.91:99
-chr1	3668999	rs1181879	T	C	13.01	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=1;HaplotypeScore=2.38;MQ=59.44;MQ0=0;OQ=1208.95;QD=29.49;SB=-449.15	GT:AD:DP:GL:GQ	1/1:0,41:38:-124.52,-11.46,-0.04:99
-chr1	3669006	rs4648556	G	A	196.56	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=1;HaplotypeScore=1.40;MQ=59.44;MQ0=0;OQ=524.36;QD=12.79;SB=-228.74	GT:AD:DP:GL:GQ	0/1:24,17:40:-67.77,-12.05,-80.81:99
-chr1	3669167	rs4648557	T	C	163.44	PASS	AC=1;AF=0.50;AN=2;DB;DP=31;Dels=0.00;HRun=0;HaplotypeScore=1.77;MQ=60.00;MQ0=0;OQ=314.58;QD=10.15;SB=-171.98	GT:AD:DP:GL:GQ	0/1:15,16:28:-43.19,-8.45,-53.69:99
-chr1	3669321	rs4648558	A	T	213.98	PASS	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=2.79;MQ=59.30;MQ0=0;OQ=430.63;QD=13.05;SB=-151.85	GT:AD:DP:GL:GQ	0/1:18,15:33:-56.29,-9.94,-66.61:99
-chr1	3669635	rs10910024	C	T	223.39	PASS	AC=1;AF=0.50;AN=2;DB;DP=25;Dels=0.00;HRun=0;HaplotypeScore=1.89;MQ=60.00;MQ0=0;OQ=261.53;QD=10.46;SB=-131.12	GT:AD:DP:GL:GQ	0/1:15,10:24:-36.67,-7.23,-47.59:99
-chr1	3669916	rs56079032	G	A	49.43	PASS	AC=1;AF=0.50;AN=2;DB;DP=26;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=59.11;MQ0=0;OQ=457.75;QD=17.61;SB=-143.18	GT:AD:DP:GL:GQ	0/1:10,16:25:-56.59,-7.54,-35.59:99
-chr1	3670503	rs1181878	G	A	204.22	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=1;HaplotypeScore=0.96;MQ=58.92;MQ0=0;OQ=593.13;QD=15.21;SB=-209.18	GT:AD:DP:GL:GQ	0/1:21,18:39:-74.34,-11.75,-76.92:99
-chr1	3670589	rs1181877	C	T	442.14	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=1.30;MQ=59.71;MQ0=0;OQ=1051.46;QD=16.43;SB=-536.72	GT:AD:DP:GL:GQ	0/1:31,33:61:-126.81,-18.38,-107.46:99
-chr1	3670923	rs6669358	A	G	271.22	PASS	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=0.35;MQ=59.49;MQ0=0;OQ=863.52;QD=11.83;SB=-442.10	GT:AD:DP:GL:GQ	0/1:40,33:71:-111.03,-21.40,-156.37:99
-chr1	3671541	rs1181876	A	G	312.30	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=59.35;MQ0=0;OQ=557.92;QD=8.72;SB=-268.23	GT:AD:DP:GL:GQ	0/1:36,28:60:-77.16,-18.08,-144.69:99
-chr1	3671691	rs1181875	T	C	354.44	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.69;MQ0=0;OQ=768.78;QD=12.60;SB=-310.35	GT:AD:DP:GL:GQ	0/1:32,29:59:-97.93,-17.77,-128.86:99
-chr1	3671930	rs1181874	C	A	548.97	PASS	AC=1;AF=0.50;AN=2;DB;DP=111;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.46;MQ0=0;OQ=1553.48;QD=14.00;SB=-588.81	GT:AD:DP:GL:GQ	0/1:58,53:110:-191.77,-33.14,-192.67:99
-chr1	3673550	rs1181873	A	C	65.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=2;HaplotypeScore=0.67;MQ=59.41;MQ0=0;OQ=502.42;QD=12.88;SB=-249.39	GT:AD:DP:GL:GQ	0/1:20,19:38:-64.97,-11.45,-71.58:99
-chr1	3673967	rs1181872	T	A	314.39	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=2.05;MQ=59.13;MQ0=0;OQ=665.69;QD=15.48;SB=-321.70	GT:AD:DP:GL:GQ	0/1:19,24:41:-82.21,-12.35,-69.45:99
-chr1	3674181	rs1181871	A	G	201.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=52.16;MQ0=0;OQ=271.85;QD=7.55;SB=-59.74	GT:AD:DP:GL:GQ	0/1:21,15:32:-40.11,-9.65,-77.03:99
-chr1	3674814	rs1181870	C	A	305.27	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=1.16;MQ=57.69;MQ0=0;OQ=866.35;QD=12.93;SB=-280.62	GT:AD:DP:GL:GQ	0/1:36,31:65:-109.50,-19.58,-123.19:99
-chr1	3677599	rs1175552	C	A	135.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=3.12;MQ=60.00;MQ0=0;OQ=585.48;QD=10.09;SB=-188.53	GT:AD:DP:GL:GQ	0/1:34,24:53:-77.81,-15.97,-102.27:99
-chr1	3678505	rs1175551	T	C	166.68	PASS	AC=1;AF=0.50;AN=2;DB;DP=13;Dels=0.00;HRun=0;HaplotypeScore=0.26;MQ=58.20;MQ0=0;OQ=103.01;QD=7.92;SB=-65.87	GT:AD:DP:GL:GQ	0/1:7,6:12:-17.20,-3.62,-26.14:99
-chr1	3679407	.	C	G	26.93	LowQual	AC=1;AF=0.50;AN=2;DP=11;Dels=0.00;HRun=1;HaplotypeScore=2.22;MQ=48.93;MQ0=0;QD=2.45;SB=-6.99	GT:AD:DP:GL:GQ	0/1:3,8:4:-7.19,-1.21,-8.24:59.76
-chr1	3681100	rs1184341	C	T	108.25	PASS	AC=1;AF=0.50;AN=2;DB;DP=30;Dels=0.00;HRun=0;HaplotypeScore=3.04;MQ=59.23;MQ0=0;OQ=426.67;QD=14.22;SB=-164.69	GT:AD:DP:GL:GQ	0/1:15,15:28:-54.39,-8.44,-49.07:99
-chr1	3681124	rs2797432	A	G	199.77	PASS	AC=1;AF=0.50;AN=2;DB;DP=32;Dels=0.00;HRun=0;HaplotypeScore=0.48;MQ=60.00;MQ0=0;OQ=396.40;QD=12.39;SB=-160.61	GT:AD:DP:GL:GQ	0/1:13,19:29:-51.67,-8.74,-51.47:99
-chr1	3681330	rs1181893	A	C	235.23	PASS	AC=2;AF=1.00;AN=2;DB;DP=15;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.61;MQ0=0;OQ=409.25;QD=27.28;SB=-143.01	GT:AD:DP:GL:GQ	1/1:0,15:13:-44.52,-3.92,-0.01:39.10
-chr1	3681388	rs1175550	A	G	206.60	PASS	AC=1;AF=0.50;AN=2;DB;DP=27;Dels=0.00;HRun=1;HaplotypeScore=0.93;MQ=59.14;MQ0=0;OQ=268.33;QD=9.94;SB=-118.66	GT:AD:DP:GL:GQ	0/1:16,11:27:-38.26,-8.14,-61.45:99
-chr1	3681587	rs1175549	A	C	56.97	PASS	AC=1;AF=0.50;AN=2;DB;DP=32;Dels=0.00;HRun=2;HaplotypeScore=1.73;MQ=59.28;MQ0=0;OQ=317.74;QD=9.93;SB=-135.67	GT:AD:DP:GL:GQ	0/1:18,14:31:-44.40,-9.34,-64.53:99
-chr1	3682892	rs1175548	A	G	294.07	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=1.16;MQ=58.99;MQ0=0;OQ=521.21;QD=11.33;SB=-266.55	GT:AD:DP:GL:GQ	0/1:25,21:43:-68.36,-12.95,-93.71:99
-chr1	3683615	rs1175547	G	T	106.09	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=2.26;MQ=58.25;MQ0=0;OQ=658.75;QD=16.47;SB=-219.58	GT:AD:DP:GL:GQ	0/1:18,22:39:-80.91,-11.75,-53.72:99
-chr1	3683769	rs1175546	C	T	14.30	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=1.95;MQ=58.95;MQ0=0;OQ=845.89;QD=19.22;SB=-175.68	GT:AD:DP:GL:GQ	0/1:18,26:42:-100.52,-12.65,-61.88:99
-chr1	3684656	rs1891934	G	A	75.40	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=2;HaplotypeScore=0.97;MQ=59.58;MQ0=0;OQ=574.95;QD=13.07;SB=-268.25	GT:AD:DP:GL:GQ	0/1:26,18:41:-73.14,-12.36,-73.56:99
-chr1	3684836	.	T	G	29.95	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=34;Dels=0.00;HRun=2;HaplotypeScore=5.28;MQ=57.94;MQ0=0;QD=0.88;SB=50.17	GT:AD:DP:GL:GQ	0/1:20,14:25:-13.81,-7.53,-70.58:62.78
-chr1	3685860	rs2799182	T	C	179.63	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=1;HaplotypeScore=3.18;MQ=58.63;MQ0=0;OQ=681.56;QD=13.36;SB=-324.12	GT:AD:DP:GL:GQ	0/1:23,28:50:-86.51,-15.07,-94.22:99
-chr1	3686231	rs61759305	C	T	280.07	PASS	AC=1;AF=0.50;AN=2;DB;DP=30;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=512.50;QD=17.08;SB=-238.52	GT:AD:DP:GL:GQ	0/1:14,16:29:-63.27,-8.74,-47.74:99
-chr1	3686750	rs8379	A	C	132.74	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=59.70;MQ0=0;OQ=512.51;QD=8.27;SB=-204.80	GT:AD:DP:GL:GQ	0/1:39,23:59:-72.31,-17.77,-139.60:99
-chr1	3687151	rs2996428	C	T	323.10	PASS	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=2.20;MQ=59.68;MQ0=0;OQ=1332.10;QD=18.25;SB=-588.63	GT:AD:DP:GL:GQ	0/1:30,43:68:-156.98,-20.49,-102.01:99
-chr1	3688388	rs2799186	C	G	198.40	PASS	AC=1;AF=0.50;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=2.99;MQ=60.00;MQ0=0;OQ=1120.38;QD=14.55;SB=-296.13	GT:AD:DP:GL:GQ	0/1:44,32:77:-141.06,-25.73,-190.14:99
-chr1	3688807	rs12122058	C	T	132.91	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=2;HaplotypeScore=1.81;MQ=60.00;MQ0=0;OQ=788.10;QD=15.16;SB=-353.46	GT:AD:DP:GL:GQ	0/1:27,25:50:-97.16,-15.07,-93.28:99
-chr1	3689428	rs2799185	G	C	86.89	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=1.31;MQ=58.23;MQ0=0;OQ=644.64;QD=17.42;SB=-205.64	GT:AD:DP:GL:GQ	0/1:18,19:35:-78.30,-10.56,-70.47:99
-chr1	3689489	rs2799184	T	G	198.26	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=4.30;MQ=56.35;MQ0=0;OQ=514.42;QD=13.19;SB=-238.40	GT:AD:DP:GL:GQ	0/1:19,20:37:-65.87,-11.14,-65.31:99
-chr1	3689844	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=67;Dels=0.00;HRun=16;HaplotypeScore=12.40;MQ=56.82;MQ0=0;OQ=207.53;QD=3.10;SB=47.88	GT:AD:DP:GL:GQ	0/1:50,16:53:-40.01,-15.97,-140.82:99
-chr1	3691351	rs2996426	A	G	107.45	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=1;HaplotypeScore=2.66;MQ=59.77;MQ0=0;OQ=576.97;QD=11.10;SB=-273.25	GT:AD:DP:GL:GQ	0/1:26,26:49:-75.76,-14.78,-98.82:99
-chr1	3693197	rs2368537	G	C	138.15	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.55;MQ0=0;OQ=1805.49;QD=35.40;SB=-781.23	GT:AD:DP:GL:GQ	1/1:0,51:46:-184.17,-13.88,-0.03:99
-chr1	3693570	rs2253143	G	A	60.94	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=1;HaplotypeScore=3.58;MQ=58.41;MQ0=0;OQ=495.55;QD=11.26;SB=-141.61	GT:AD:DP:GL:GQ	0/1:26,18:41:-65.20,-12.37,-77.20:99
-chr1	3694312	rs12142183	T	G	312.97	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=2.38;MQ=59.65;MQ0=0;OQ=615.52;QD=11.61;SB=-311.76	GT:AD:DP:GL:GQ	0/1:22,31:47:-79.00,-14.16,-79.12:99
-chr1	3694564	.	G	C	39.33	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=55;Dels=0.00;HRun=1;HaplotypeScore=6.24;MQ=58.81;MQ0=0;QD=0.72;SB=44.18	GT:AD:DP:GL:GQ	0/1:42,12:37:-18.38,-11.17,-134.23:72.16
-chr1	3701498	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=71;Dels=0.03;HRun=20;HaplotypeScore=51.30;MQ=52.45;MQ0=0;OQ=259.27;QD=3.65;SB=80.25	GT:AD:DP:GL:GQ	0/1:46,23:54:-44.89,-15.68,-134.64:99
-chr1	3708347	rs6681383	G	A	128.24	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=58.34;MQ0=0;OQ=1078.39;QD=18.92;SB=-322.85	GT:AD:DP:GL:GQ	0/1:24,33:53:-127.10,-15.97,-69.66:99
-chr1	3712148	rs2996425	A	T	193.61	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=2.11;MQ=59.02;MQ0=0;OQ=2222.50;QD=35.85;SB=-1018.88	GT:AD:DP:GL:GQ	1/1:0,62:60:-225.85,-18.07,-0.02:99
-chr1	3714307	rs61759320	G	A	326.68	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=0.48;MQ=53.55;MQ0=0;OQ=770.50;QD=14.01;SB=-354.84	GT:AD:DP:GL:GQ	0/1:29,25:53:-96.31,-15.97,-95.14:99
-chr1	3714663	.	A	C	15.04	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=40;Dels=0.00;HRun=2;HaplotypeScore=8.17;MQ=57.66;MQ0=0;QD=0.38;SB=56.19	GT:AD:DP:GL:GQ	0/1:24,16:28:-13.21,-8.44,-81.36:47.74
-chr1	3727878	.	C	T	38.08	PASS	AC=1;AF=0.50;AN=2;DP=81;Dels=0.00;HRun=1;HaplotypeScore=2.42;MQ=59.48;MQ0=0;OQ=1399.61;QD=17.28;SB=-662.18	GT:AD:DP:GL:GQ	0/1:40,41:81:-167.65,-24.40,-140.98:99
-chr1	3731503	.	A	G	18.90	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=26;Dels=0.00;HRun=3;HaplotypeScore=1.79;MQ=54.69;MQ0=0;QD=0.73;SB=5.04	GT:AD:DP:GL:GQ	0/1:21,5:21:-11.50,-6.33,-70.25:51.68
-chr1	3735976	rs1836	A	G	124.85	PASS	AC=2;AF=1.00;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=2.96;MQ=59.74;MQ0=0;OQ=2210.40;QD=31.13;SB=-963.45	GT:AD:DP:GL:GQ	1/1:0,70:69:-227.21,-23.18,-2.59:99
-chr1	3736114	rs2275830	T	C	634.35	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.39;MQ0=0;OQ=2088.07;QD=30.71;SB=-734.31	GT:AD:DP:GL:GQ	1/1:0,68:67:-212.46,-20.22,-0.07:99
-chr1	3736443	rs2275828	G	T	17.64	PASS	AC=2;AF=1.00;AN=2;DB;DP=73;Dels=0.00;HRun=2;HaplotypeScore=3.28;MQ=59.05;MQ0=0;OQ=2655.56;QD=36.38;SB=-1342.28	GT:AD:DP:GL:GQ	1/1:0,73:72:-269.16,-21.68,-0.02:99
-chr1	3736449	rs2275826	C	G	89.02	PASS	AC=2;AF=1.00;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=59.10;MQ0=0;OQ=3375.97;QD=43.84;SB=-1685.64	GT:AD:DP:GL:GQ	1/1:0,77:77:-336.60,-23.20,-0.02:99
-chr1	3737179	rs4648417	C	T	55.97	PASS	AC=2;AF=1.00;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=1.11;MQ=58.05;MQ0=0;OQ=1230.92;QD=34.19;SB=-377.48	GT:AD:DP:GL:GQ	1/1:0,35:33:-126.70,-9.95,-0.02:99
-chr1	3737440	rs6424058	C	T	106.25	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=3.83;MQ=56.84;MQ0=0;OQ=1463.09;QD=34.84;SB=-699.35	GT:AD:DP:GL:GQ	1/1:0,42:38:-149.91,-11.45,-0.01:99
-chr1	3737463	rs6413779	T	C	36.87	PASS	AC=2;AF=1.00;AN=2;DB;DP=31;Dels=0.00;HRun=1;HaplotypeScore=0.87;MQ=57.40;MQ0=0;OQ=1023.14;QD=33.00;SB=-220.63	GT:AD:DP:GL:GQ	1/1:0,31:31:-105.92,-9.34,-0.02:93.25
-chr1	3737945	rs7522227	A	G	230.87	PASS	AC=2;AF=1.00;AN=2;DB;DP=78;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.22;MQ0=0;OQ=2674.63;QD=34.29;SB=-1340.60	GT:AD:DP:GL:GQ	1/1:0,77:76:-271.07,-22.89,-0.02:99
-chr1	3738031	rs7524765	T	C	717.11	PASS	AC=2;AF=1.00;AN=2;DB;DP=82;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2886.44;QD=35.20;SB=-1305.64	GT:AD:DP:GL:GQ	1/1:0,82:82:-292.25,-24.70,-0.03:99
-chr1	3738548	rs17403836	A	C	593.74	PASS	AC=2;AF=1.00;AN=2;DB;DP=93;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.20;MQ0=0;OQ=3340.65;QD=35.92;SB=-1448.19	GT:AD:DP:GL:GQ	1/1:0,93:93:-333.07,-28.01,-0.02:99
-chr1	3738842	rs61768911	C	G	310.36	PASS	AC=2;AF=1.00;AN=2;DB;DP=20;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=53.39;MQ0=2;OQ=606.83;QD=30.34;SB=-199.55	GT:AD:DP:GL:GQ	1/1:0,19:16:-64.28,-4.83,-0.01:48.16
-chr1	3738927	.	T	C	23.45	LowQual	AC=1;AF=0.50;AN=2;DP=39;Dels=0.00;HRun=0;HaplotypeScore=5.48;MQ=47.67;MQ0=1;QD=0.60;SB=-5.57	GT:AD:DP:GL:GQ	0/1:32,7:31:-14.97,-9.34,-106.27:56.26
-chr1	3738930	.	T	C	7.68	PASS	AC=1;AF=0.50;AN=2;DP=38;Dels=0.00;HRun=0;HaplotypeScore=3.51;MQ=48.29;MQ0=0;OQ=738.60;QD=19.44;SB=-353.38	GT:AD:DP:GL:GQ	0/1:6,32:31:-86.49,-9.35,-16.38:70.33
-chr1	3738954	rs61768912	T	C	1249.83	SnpCluster	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=53.18;MQ0=0;QD=28.41;SB=-561.89	GT:AD:DP:GL:GQ	1/1:0,43:40:-128.60,-12.06,-0.04:99
-chr1	3738962	rs61768913	A	G	1521.07	SnpCluster	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=0.96;MQ=53.09;MQ0=0;QD=28.17;SB=-501.21	GT:AD:DP:GL:GQ	1/1:0,54:48:-155.73,-14.47,-0.04:99
-chr1	3738964	rs61768914	A	G	1823.57	SnpCluster	AC=2;AF=1.00;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=0.96;MQ=53.35;MQ0=0;QD=32.56;SB=-678.27	GT:AD:DP:GL:GQ	1/1:0,56:52:-185.96,-15.66,-0.02:99
-chr1	3738975	rs61768915	T	C	185.63	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=1.64;MQ=53.83;MQ0=0;OQ=2377.40;QD=34.96;SB=-853.97	GT:AD:DP:GL:GQ	1/1:0,68:67:-241.35,-20.18,-0.03:99
-chr1	3739217	rs6684560	G	A	167.13	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=55.03;MQ0=0;OQ=2027.81;QD=36.87;SB=-859.02	GT:AD:DP:GL:GQ	1/1:1,54:53:-206.39,-15.97,-0.02:99
-chr1	3739448	rs6676260	T	C	481.80	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.47;MQ0=0;OQ=1276.86;QD=30.40;SB=-555.08	GT:AD:DP:GL:GQ	1/1:0,42:41:-131.31,-12.36,-0.03:99
-chr1	3739507	rs10797344	C	G	65.45	PASS	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.00;HRun=1;HaplotypeScore=2.02;MQ=59.28;MQ0=0;OQ=2404.57;QD=37.57;SB=-1028.99	GT:AD:DP:GL:GQ	1/1:0,64:58:-244.08,-17.49,-0.04:99
-chr1	3739508	rs10797345	G	A	56.93	PASS	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.00;HRun=1;HaplotypeScore=2.68;MQ=59.28;MQ0=0;OQ=2416.64;QD=37.76;SB=-1154.54	GT:AD:DP:GL:GQ	1/1:0,64:63:-245.28,-18.99,-0.03:99
-chr1	3739554	rs6673716	A	G	130.37	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=59.53;MQ0=0;OQ=1461.81;QD=29.83;SB=-615.96	GT:AD:DP:GL:GQ	1/1:0,49:46:-149.80,-13.87,-0.04:99
-chr1	3739633	rs6673807	A	G	581.92	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.88;MQ0=0;OQ=2050.62;QD=35.36;SB=-778.99	GT:AD:DP:GL:GQ	1/1:0,58:58:-208.67,-17.47,-0.02:99
-chr1	3740027	rs2368533	G	A	618.30	PASS	AC=2;AF=1.00;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.44;MQ0=0;OQ=2881.32;QD=38.94;SB=-1374.05	GT:AD:DP:GL:GQ	1/1:0,74:73:-291.74,-21.99,-0.02:99
-chr1	3740589	rs6677381	A	G	634.61	PASS	AC=2;AF=1.00;AN=2;DB;DP=78;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.52;MQ0=0;OQ=2780.11;QD=35.64;SB=-1088.76	GT:AD:DP:GL:GQ	1/1:0,78:77:-281.62,-23.19,-0.02:99
-chr1	3740591	rs6680017	T	G	509.75	PASS	AC=2;AF=1.00;AN=2;DB;DP=77;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.52;MQ0=0;OQ=2637.83;QD=34.26;SB=-1082.49	GT:AD:DP:GL:GQ	1/1:0,77:75:-267.39,-22.59,-0.02:99
-chr1	3740758	.	T	A	7.56	PASS	AC=1;AF=0.50;AN=2;DP=37;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=55.28;MQ0=1;OQ=174.11;QD=4.71;SB=-20.31	GT:AD:DP:GL:GQ	0/1:28,9:34:-30.93,-10.24,-98.40:99
-chr1	3741138	rs2887273	C	G	484.06	PASS	AC=2;AF=1.00;AN=2;DB;DP=66;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2855.33;QD=43.26;SB=-1170.05	GT:AD:DP:GL:GQ	1/1:0,66:66:-289.13,-19.88,-0.02:99
-chr1	3741826	rs4648419	C	G	552.08	PASS	AC=2;AF=1.00;AN=2;DB;DP=91;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.30;MQ0=0;OQ=3843.78;QD=42.24;SB=-1290.87	GT:AD:DP:GL:GQ	1/1:0,91:88:-383.38,-26.52,-0.03:99
-chr1	3742892	.	G	T	16.29	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=59;Dels=0.00;HRun=20;HaplotypeScore=18.89;MQ=55.03;MQ0=1;QD=0.28;SB=44.02	GT:AD:DP:GL:GQ	0/1:50,6:41:-19.70,-14.80,-98.51:49.02
-chr1	3742917	.	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=52;Dels=0.02;HRun=20;HaplotypeScore=34.21;MQ=57.45;MQ0=0;OQ=170.67;QD=3.28;SB=56.18	GT:AD:DP:GL:GQ	0/1:37,14:43:-33.01,-12.65,-114.45:99
-chr1	3742996	rs2275824	A	T	710.47	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.86;MQ0=0;OQ=2009.53;QD=35.25;SB=-882.57	GT:AD:DP:GL:GQ	1/1:0,57:56:-204.56,-16.87,-0.02:99
-chr1	3744349	rs12409082	G	C	531.14	PASS	AC=2;AF=1.00;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=3059.06;QD=43.09;SB=-1422.83	GT:AD:DP:GL:GQ	1/1:0,71:71:-309.52,-21.40,-0.02:99
-chr1	3744456	rs6683827	G	T	2.38	PASS	AC=2;AF=1.00;AN=2;DB;DP=70;Dels=0.00;HRun=3;HaplotypeScore=4.28;MQ=58.86;MQ0=0;OQ=2501.40;QD=35.73;SB=-1071.46	GT:AD:DP:GL:GQ	1/1:0,70:69:-253.75,-20.78,-0.02:99
-chr1	3745535	rs1891941	T	C	731.33	PASS	AC=2;AF=1.00;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2479.06;QD=35.42;SB=-1217.69	GT:AD:DP:GL:GQ	1/1:0,70:69:-251.51,-20.78,-0.02:99
-chr1	3745729	rs1891940	T	C	456.28	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.01;MQ0=0;OQ=1634.49;QD=34.78;SB=-697.28	GT:AD:DP:GL:GQ	1/1:0,47:46:-167.05,-13.85,-0.01:99
-chr1	3745735	rs1891939	T	G	249.79	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=58.99;MQ0=0;OQ=1553.73;QD=33.78;SB=-800.51	GT:AD:DP:GL:GQ	1/1:0,46:45:-158.97,-13.55,-0.02:99
-chr1	3745980	rs1539649	A	G	625.14	PASS	AC=2;AF=1.00;AN=2;DB;DP=83;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.71;MQ0=0;OQ=2553.81;QD=30.77;SB=-1180.11	GT:AD:DP:GL:GQ	1/1:0,83:80:-259.03,-24.12,-0.06:99
-chr1	3746353	rs7535887	T	C	654.18	PASS	AC=2;AF=1.00;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1854.47;QD=30.91;SB=-854.01	GT:AD:DP:GL:GQ	1/1:0,60:59:-189.08,-17.79,-0.05:99
-chr1	3746392	rs10797346	T	C	305.08	PASS	AC=2;AF=1.00;AN=2;DB;DP=72;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2579.74;QD=35.83;SB=-1200.15	GT:AD:DP:GL:GQ	1/1:0,72:72:-261.58,-21.69,-0.02:99
-chr1	3747160	rs10909800	C	T	207.27	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2281.73;QD=39.34;SB=-904.67	GT:AD:DP:GL:GQ	1/1:0,58:58:-231.78,-17.47,-0.02:99
-chr1	3748578	rs4381131	T	C	118.61	PASS	AC=2;AF=1.00;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=1.30;MQ=57.58;MQ0=0;OQ=1302.81;QD=35.21;SB=-612.36	GT:AD:DP:GL:GQ	1/1:0,37:37:-133.88,-11.14,-0.01:99
-chr1	3748616	rs4411084	A	G	124.66	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=0.91;MQ=57.27;MQ0=0;OQ=1453.01;QD=29.06;SB=-634.87	GT:AD:DP:GL:GQ	1/1:0,50:46:-148.93,-13.88,-0.04:99
-chr1	3749212	rs3765774	T	A	197.18	PASS	AC=2;AF=1.00;AN=2;DB;DP=77;Dels=0.00;HRun=4;HaplotypeScore=0.00;MQ=59.09;MQ0=0;OQ=2826.29;QD=36.71;SB=-1358.75	GT:AD:DP:GL:GQ	1/1:0,77:76:-286.23,-22.89,-0.02:99
-chr1	3749644	rs10797347	A	G	265.86	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=1.99;MQ=59.07;MQ0=0;OQ=1626.88;QD=34.61;SB=-812.67	GT:AD:DP:GL:GQ	1/1:0,47:46:-166.29,-13.86,-0.01:99
-chr1	3749797	rs10909801	A	G	1.04	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=13.74;MQ=53.38;MQ0=0;OQ=1309.63;QD=23.81;SB=-631.48	GT:AD:DP:GL:GQ	1/1:0,53:41:-134.59,-12.37,-0.04:99
-chr1	3749921	rs6701360	G	A	575.83	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.91;MQ0=0;OQ=2426.40;QD=38.51;SB=-904.68	GT:AD:DP:GL:GQ	1/1:0,63:63:-246.25,-18.99,-0.03:99
-chr1	3749974	rs6690371	A	G	48.27	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=1;HaplotypeScore=1.93;MQ=58.34;MQ0=0;OQ=1681.22;QD=35.03;SB=-728.27	GT:AD:DP:GL:GQ	1/1:0,48:48:-171.73,-14.47,-0.03:99
-chr1	3749989	rs6678020	C	T	441.08	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.59;MQ0=0;OQ=1518.29;QD=37.96;SB=-571.34	GT:AD:DP:GL:GQ	1/1:0,40:39:-155.43,-11.75,-0.01:99
-chr1	3750090	rs6680552	C	T	728	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=55.60;MQ0=1;OQ=1998.34;QD=35.06;SB=-998.84	GT:AD:DP:GL:GQ	1/1:0,57:51:-203.43,-15.36,-0.01:99
-chr1	3750216	rs6695657	T	C	130.02	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=1.73;MQ=59.67;MQ0=0;OQ=1753.47;QD=29.72;SB=-613.96	GT:AD:DP:GL:GQ	1/1:0,59:56:-178.99,-16.89,-0.06:99
-chr1	3750378	rs10752723	A	G	15.88	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=2;HaplotypeScore=1.50;MQ=56.80;MQ0=0;OQ=1482.59;QD=32.95;SB=-488.54	GT:AD:DP:GL:GQ	1/1:1,43:41:-151.86,-12.35,-0.01:99
-chr1	3751141	rs6698930	T	A	637.91	DPFilter;Indel	AC=1;AF=0.50;AN=2;DB;DP=82;Dels=0.00;HRun=7;HaplotypeScore=46.26;MQ=41.75;MQ0=0;QD=7.78;SB=8.51	GT:AD:DP:GL:GQ	0/1:49,33:69:-87.87,-20.79,-167.40:99
-chr1	3751339	rs2275822	C	T	226.46	PASS	AC=2;AF=1.00;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=59.23;MQ0=0;OQ=2373.96;QD=39.57;SB=-964.37	GT:AD:DP:GL:GQ	1/1:0,60:60:-241.00,-18.08,-0.02:99
-chr1	3751510	rs2275821	A	G	573.45	PASS	AC=2;AF=1.00;AN=2;DB;DP=99;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=56.31;MQ0=0;OQ=3500.46;QD=35.36;SB=-1716.03	GT:AD:DP:GL:GQ	1/1:0,99:96:-349.05,-28.91,-0.03:99
-chr1	3751936	rs6699784	T	C	22.54	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=2;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=1634.61;QD=34.05;SB=-680.60	GT:AD:DP:GL:GQ	1/1:0,48:47:-167.07,-14.16,-0.02:99
-chr1	3751940	rs6699785	T	C	457.63	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1716.61;QD=35.76;SB=-707.61	GT:AD:DP:GL:GQ	1/1:0,48:48:-175.26,-14.46,-0.02:99
-chr1	3752276	rs6687498	C	A	0.86	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=7.86;MQ=58.29;MQ0=1;OQ=1565.75;QD=34.79;SB=-714.95	GT:AD:DP:GL:GQ	1/1:1,44:44:-160.17,-13.25,-0.01:99
-chr1	3752464	rs4494088	C	T	130.82	PASS	AC=2;AF=1.00;AN=2;DB;DP=66;Dels=0.00;HRun=1;HaplotypeScore=0.87;MQ=59.01;MQ0=0;OQ=2585.87;QD=39.18;SB=-1275.71	GT:AD:DP:GL:GQ	1/1:0,66:65:-262.19,-19.58,-0.02:99
-chr1	3752510	.	C	A	11.64	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=71;Dels=0.00;HRun=20;HaplotypeScore=16.03;MQ=54.71;MQ0=1;QD=0.16;SB=98.34	GT:AD:DP:GL:GQ	0/1:63,8:53:-20.38,-15.96,-171.47:44.17
-chr1	3752581	rs4534323	A	T	713.95	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.22;MQ0=0;OQ=2157.31;QD=36.56;SB=-930.57	GT:AD:DP:GL:GQ	1/1:0,59:59:-219.34,-17.77,-0.02:99
-chr1	3753724	rs12047360	G	A	108.34	PASS	AC=2;AF=1.00;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=1.21;MQ=59.36;MQ0=0;OQ=1255.98;QD=34.89;SB=-564.33	GT:AD:DP:GL:GQ	1/1:0,36:33:-129.19,-9.94,-0.01:99
-chr1	3754321	rs34401151	C	T	220.62	PASS	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=59.55;MQ0=0;OQ=2357.19;QD=36.83;SB=-1184.12	GT:AD:DP:GL:GQ	1/1:0,63:62:-242.18,-21.42,-2.88:99
-chr1	3754471	rs55873991	T	C	460.04	PASS	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.25;MQ0=0;OQ=2216.85;QD=34.64;SB=-478.52	GT:AD:DP:GL:GQ	1/1:0,64:60:-225.28,-18.07,-0.01:99
-chr1	3755409	rs4648346	G	A	377.30	PASS	AC=2;AF=1.00;AN=2;DB;DP=70;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=56.94;MQ0=0;OQ=2718.34;QD=38.83;SB=-1289.71	GT:AD:DP:GL:GQ	1/1:0,70:68:-275.43,-20.48,-0.02:99
-chr1	3755538	rs4648423	C	T	3.24	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=5.11;MQ=59.49;MQ0=0;OQ=1662.33;QD=36.94;SB=-681.30	GT:AD:DP:GL:GQ	1/1:0,44:44:-169.84,-13.26,-0.02:99
-chr1	3755615	rs4648347	T	C	415.08	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=1;HaplotypeScore=-0.06;MQ=60.19;MQ0=0;OQ=2002.26;QD=34.52;SB=-940.97	GT:AD:DP:GL:GQ	1/1:0,58:56:-203.83,-16.87,-0.02:99
-chr1	3755919	rs12097923	G	T	175.21	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=2.56;MQ=59.51;MQ0=0;OQ=2007.64;QD=34.03;SB=-971.58	GT:AD:DP:GL:GQ	1/1:0,58:57:-204.37,-17.17,-0.02:99
-chr1	3756146	rs17404435	G	T	642.91	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.27;MQ0=0;OQ=1775.93;QD=34.82;SB=-654.09	GT:AD:DP:GL:GQ	1/1:0,51:50:-181.19,-15.06,-0.02:99
-chr1	3756301	rs6683156	C	T	153.50	PASS	AC=2;AF=1.00;AN=2;DB;DP=93;Dels=0.00;HRun=0;HaplotypeScore=2.32;MQ=59.62;MQ0=0;OQ=3593.95;QD=38.64;SB=-1767.70	GT:AD:DP:GL:GQ	1/1:0,92:90:-358.39,-27.12,-0.03:99
-chr1	3757458	rs3765779	A	G	312.92	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.56;MQ0=0;OQ=1547.17;QD=29.19;SB=-677.55	GT:AD:DP:GL:GQ	1/1:0,53:50:-158.35,-15.08,-0.05:99
-chr1	3757556	rs3765780	C	T	73.74	PASS	AC=2;AF=1.00;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=60.00;MQ0=0;OQ=1220.87;QD=37.00;SB=-540.71	GT:AD:DP:GL:GQ	1/1:0,33:32:-125.68,-9.64,-0.01:96.30
-chr1	3758579	rs1539647	T	C	5.15	PASS	AC=2;AF=1.00;AN=2;DB;DP=74;Dels=0.00;HRun=2;HaplotypeScore=3.94;MQ=58.65;MQ0=1;OQ=2215.43;QD=29.94;SB=-922.78	GT:AD:DP:GL:GQ	1/1:1,73:71:-228.15,-21.41,-3.03:99
-chr1	3758589	rs1539648	T	C	162.50	PASS	AC=2;AF=1.00;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=1.86;MQ=59.09;MQ0=0;OQ=2319.86;QD=30.52;SB=-925.48	GT:AD:DP:GL:GQ	1/1:0,76:73:-235.63,-22.01,-0.06:99
-chr1	3759091	rs6657021	A	G	451.01	PASS	AC=2;AF=1.00;AN=2;DB;DP=72;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=56.04;MQ0=0;OQ=2173.33;QD=30.19;SB=-1093.08	GT:AD:DP:GL:GQ	1/1:0,72:68:-220.98,-20.51,-0.06:99
-chr1	3759136	rs6668213	G	C	44.87	PASS	AC=2;AF=1.00;AN=2;DB;DP=69;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=58.72;MQ0=0;OQ=2874.30;QD=41.66;SB=-1253.95	GT:AD:DP:GL:GQ	1/1:0,69:66:-291.04,-19.89,-0.02:99
-chr1	3759146	rs6693152	C	T	203.33	PASS	AC=2;AF=1.00;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=0.98;MQ=59.07;MQ0=0;OQ=2711.10;QD=38.73;SB=-1194.58	GT:AD:DP:GL:GQ	1/1:0,70:68:-274.71,-20.49,-0.02:99
-chr1	3759189	rs6657132	A	G	408.69	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.24;MQ0=0;OQ=1707.03;QD=31.04;SB=-847.00	GT:AD:DP:GL:GQ	1/1:0,55:50:-174.32,-15.07,-0.03:99
-chr1	3759225	rs6668306	G	C	258.29	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=1;HaplotypeScore=-0.06;MQ=59.53;MQ0=0;OQ=1917.17;QD=39.13;SB=-849.44	GT:AD:DP:GL:GQ	1/1:0,49:46:-195.32,-13.87,-0.02:99
-chr1	3759237	rs6693259	C	T	255.19	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1813.57;QD=38.59;SB=-875.61	GT:AD:DP:GL:GQ	1/1:0,47:47:-184.96,-14.17,-0.02:99
-chr1	3759339	.	T	C	4.24	PASS	AC=2;AF=1.00;AN=2;DP=44;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=37.66;MQ0=0;OQ=1291.89;QD=29.36;SB=-665.80	GT:AD:DP:GL:GQ	1/1:0,44:41:-132.82,-12.37,-0.04:99
-chr1	3759424	rs11576718	T	C	18.88	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=2;HaplotypeScore=0.16;MQ=59.78;MQ0=0;OQ=1915.98;QD=34.84;SB=-646.27	GT:AD:DP:GL:GQ	1/1:0,55:53:-195.20,-15.96,-0.02:99
-chr1	3759450	rs11578021	G	C	393.67	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.61;MQ0=0;OQ=2482.73;QD=42.08;SB=-1009.18	GT:AD:DP:GL:GQ	1/1:0,59:57:-251.88,-17.18,-0.02:99
-chr1	3760255	rs4130539	C	A	200.10	PASS	AC=2;AF=1.00;AN=2;DB;DP=81;Dels=0.00;HRun=0;HaplotypeScore=0.57;MQ=59.43;MQ0=0;OQ=2921.40;QD=36.07;SB=-1317.55	GT:AD:DP:GL:GQ	1/1:0,81:81:-295.75,-24.40,-0.03:99
-chr1	3760285	rs4233023	G	A	128.17	PASS	AC=2;AF=1.00;AN=2;DB;DP=80;Dels=0.00;HRun=1;HaplotypeScore=0.99;MQ=59.42;MQ0=0;OQ=2979.99;QD=37.25;SB=-1007.64	GT:AD:DP:GL:GQ	1/1:0,80:76:-301.61,-22.90,-0.03:99
-chr1	3760596	rs4582731	T	C	194.06	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.58;MQ0=0;OQ=1740.97;QD=31.65;SB=-868.36	GT:AD:DP:GL:GQ	1/1:0,55:54:-177.73,-16.29,-0.05:99
-chr1	3760968	rs12023761	T	C	207.14	PASS	AC=2;AF=1.00;AN=2;DB;DP=78;Dels=0.00;HRun=0;HaplotypeScore=1.50;MQ=57.12;MQ0=0;OQ=2651.31;QD=33.99;SB=-1110.83	GT:AD:DP:GL:GQ	1/1:0,78:75:-268.74,-22.59,-0.02:99
-chr1	3760980	rs12023762	T	C	71.74	PASS	AC=2;AF=1.00;AN=2;DB;DP=67;Dels=0.00;HRun=1;HaplotypeScore=2.08;MQ=56.93;MQ0=0;OQ=2310.56;QD=34.49;SB=-1074.87	GT:AD:DP:GL:GQ	1/1:0,66:64:-234.66,-19.27,-0.02:99
-chr1	3761023	rs12026284	G	A	45.52	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=57.92;MQ0=0;OQ=1613.24;QD=38.41;SB=-773.05	GT:AD:DP:GL:GQ	1/1:0,42:41:-164.92,-12.35,-0.01:99
-chr1	3761229	rs12024538	T	C	108.72	PASS	AC=2;AF=1.00;AN=2;DB;DP=77;Dels=0.00;HRun=1;HaplotypeScore=1.20;MQ=57.43;MQ0=0;OQ=2622.46;QD=34.06;SB=-1093.09	GT:AD:DP:GL:GQ	1/1:0,77:74:-265.86,-22.29,-0.03:99
-chr1	3761407	rs7552678	C	T	182.01	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=2.23;MQ=55.63;MQ0=0;OQ=2322.80;QD=37.46;SB=-1101.95	GT:AD:DP:GL:GQ	1/1:0,61:58:-235.88,-17.47,-0.01:99
-chr1	3761583	rs10909805	A	T	36.48	PASS	AC=2;AF=1.00;AN=2;DB;DP=36;Dels=0.00;HRun=1;HaplotypeScore=0.63;MQ=57.39;MQ0=0;OQ=1183.25;QD=32.87;SB=-378.79	GT:AD:DP:GL:GQ	1/1:0,36:34:-121.93,-10.24,-0.02:99
-chr1	3762135	rs4648348	G	T	313.87	PASS	AC=2;AF=1.00;AN=2;DB;DP=77;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=58.61;MQ0=0;OQ=2805.56;QD=36.44;SB=-1091.90	GT:AD:DP:GL:GQ	1/1:0,77:77:-284.17,-23.19,-0.03:99
-chr1	3762966	rs6424059	C	T	50.97	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1794.59;QD=39.88;SB=-207.77	GT:AD:DP:GL:GQ	1/1:0,45:45:-183.06,-13.56,-0.01:99
-chr1	3763112	rs6424060	C	A	1.11	PASS	AC=2;AF=1.00;AN=2;DB;DP=34;Dels=0.00;HRun=1;HaplotypeScore=0.87;MQ=57.94;MQ0=0;OQ=1225.37;QD=36.04;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,34:33:-126.13,-9.94,-0.01:99
-chr1	3763448	rs7542369	C	G	0.46	PASS	AC=2;AF=1.00;AN=2;DB;DP=15;Dels=0.00;HRun=2;HaplotypeScore=0.32;MQ=60.00;MQ0=0;OQ=407.00;QD=27.13;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,15:12:-44.31,-3.64,-0.03:36.11
-chr1	3763578	rs4648428	A	G	5.56	PASS	AC=2;AF=1.00;AN=2;DB;DP=14;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=60.00;MQ0=0;OQ=286.53;QD=20.47;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,13:11:-32.26,-3.33,-0.02:33.05
-chr1	3764486	rs10909806	C	A	23.23	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=2;HaplotypeScore=2.13;MQ=58.37;MQ0=0;OQ=1559.40;QD=35.44;SB=-546.78	GT:AD:DP:GL:GQ	1/1:0,44:43:-159.54,-12.95,-0.01:99
-chr1	3765314	rs4376673	C	G	417.23	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1404.99;QD=36.03;SB=-615.54	GT:AD:DP:GL:GQ	1/1:0,39:36:-144.12,-10.87,-0.03:99
-chr1	3765882	rs9786959	A	G	29.68	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=2;HaplotypeScore=0.99;MQ=59.70;MQ0=0;OQ=1920.48;QD=30.48;SB=-862.57	GT:AD:DP:GL:GQ	1/1:0,63:60:-195.68,-18.09,-0.05:99
-chr1	3767471	rs11800725	A	G	13.03	PASS	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.00;HRun=2;HaplotypeScore=0.16;MQ=58.98;MQ0=0;OQ=1927.36;QD=30.11;SB=-765.33	GT:AD:DP:GL:GQ	1/1:0,64:61:-196.39,-18.41,-0.06:99
-chr1	3767577	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=44;Dels=0.00;HRun=17;HaplotypeScore=9.33;MQ=55.19;MQ0=0;OQ=73.00;QD=1.66;SB=10.79	GT:AD:DP:GL:GQ	0/1:33,10:33:-20.53,-9.94,-95.54:99
-chr1	3767595	.	G	A	13.29	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=57;Dels=0.00;HRun=17;HaplotypeScore=14.08;MQ=55.46;MQ0=0;QD=0.23;SB=74.24	GT:AD:DP:GL:GQ	0/1:47,10:46:-18.45,-13.86,-142.27:45.92
-chr1	3769011	rs4400555	C	T	258.35	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.58;MQ=59.08;MQ0=0;OQ=2381.95;QD=39.05;SB=-1005.83	GT:AD:DP:GL:GQ	1/1:0,61:61:-241.80,-18.38,-0.02:99
-chr1	3769497	rs4573474	G	C	208.99	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=55.06;MQ0=0;OQ=1909.70;QD=37.45;SB=-679.47	GT:AD:DP:GL:GQ	1/1:0,51:49:-194.60,-14.79,-0.05:99
-chr1	3769504	rs4475689	T	C	437.54	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=55.81;MQ0=0;OQ=1544.26;QD=28.60;SB=-549.88	GT:AD:DP:GL:GQ	1/1:0,54:50:-158.07,-15.09,-0.05:99
-chr1	3769540	rs4393098	C	T	134.88	PASS	AC=2;AF=1.00;AN=2;DB;DP=69;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=59.73;MQ0=0;OQ=2714.04;QD=39.33;SB=-879.18	GT:AD:DP:GL:GQ	1/1:0,69:68:-275.01,-20.48,-0.02:99
-chr1	3770416	rs10909807	A	G	70.24	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=1;HaplotypeScore=0.33;MQ=59.66;MQ0=0;OQ=2327.40;QD=34.23;SB=-632.25	GT:AD:DP:GL:GQ	1/1:0,68:65:-236.35,-19.58,-0.03:99
-chr1	3770956	rs10797348	C	A	725.50	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2194.69;QD=35.40;SB=-970.66	GT:AD:DP:GL:GQ	1/1:0,62:61:-223.07,-18.37,-0.02:99
-chr1	3770996	rs10752724	C	G	36.73	PASS	AC=2;AF=1.00;AN=2;DB;DP=73;Dels=0.00;HRun=1;HaplotypeScore=0.79;MQ=59.68;MQ0=0;OQ=3059.04;QD=41.90;SB=-884.77	GT:AD:DP:GL:GQ	1/1:0,73:70:-309.51,-21.10,-0.03:99
-chr1	3772468	rs10909809	C	T	66.95	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=0.41;MQ=58.92;MQ0=0;OQ=1387.22;QD=35.57;SB=-471.11	GT:AD:DP:GL:GQ	1/1:0,38:37:-142.33,-11.16,-0.02:99
-chr1	3773138	rs10909810	A	C	280.94	PASS	AC=2;AF=1.00;AN=2;DB;DP=29;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.04;MQ0=0;OQ=955.91;QD=32.96;SB=-323.98	GT:AD:DP:GL:GQ	1/1:0,29:29:-99.19,-8.74,-0.02:87.21
-chr1	3773433	rs10797349	C	T	164.73	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=1.97;MQ=58.68;MQ0=0;OQ=1490.84;QD=33.88;SB=-752.63	GT:AD:DP:GL:GQ	1/1:0,44:39:-152.69,-11.75,-0.02:99
-chr1	3773480	rs10797350	T	C	13.89	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=2;HaplotypeScore=2.15;MQ=58.30;MQ0=0;OQ=1471.72;QD=30.66;SB=-684.88	GT:AD:DP:GL:GQ	1/1:0,48:45:-150.79,-13.57,-0.03:99
-chr1	3773523	rs10752726	T	G	347.66	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.49;MQ0=0;OQ=1497.10;QD=33.27;SB=-446.81	GT:AD:DP:GL:GQ	1/1:0,45:43:-153.31,-12.95,-0.01:99
-chr1	3773611	rs12035912	C	T	197.79	PASS	AC=2;AF=1.00;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=1.52;MQ=58.30;MQ0=0;OQ=2493.51;QD=37.78;SB=-1130.03	GT:AD:DP:GL:GQ	1/1:0,66:64:-252.96,-19.28,-0.02:99
-chr1	3775032	.	T	C	552.80	SnpCluster	AC=1;AF=0.50;AN=2;DP=88;Dels=0.00;HRun=0;HaplotypeScore=33.42;MQ=46.78;MQ0=0;QD=6.28;SB=-111.60	GT:AD:DP:GL:GQ	0/1:60,28:83:-83.58,-25.02,-222.80:99
-chr1	3775037	.	G	T	197.57	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=99;Dels=0.00;HRun=0;HaplotypeScore=30.55;MQ=47.65;MQ0=0;QD=2.00;SB=65.19	GT:AD:DP:GL:GQ	0/1:82,15:90:-57.60,-34.56,-265.76:99
-chr1	3775038	rs11801559	A	G	304.07	SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=99;Dels=0.00;HRun=1;HaplotypeScore=31.22;MQ=47.58;MQ0=0;QD=3.07;SB=-149.93	GT:AD:DP:GL:GQ	0/1:75,24:82:-58.40,-24.71,-264.98:99
-chr1	3775067	.	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=168;Dels=0.00;HRun=0;HaplotypeScore=55.99;MQ=43.63;MQ0=2;OQ=741.54;QD=4.41;SB=-115.85	GT:AD:DP:GL:GQ	0/1:87,38:131:-206.86,-129.42,-352.70:99
-chr1	3775068	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=171;Dels=0.00;HRun=2;HaplotypeScore=57.14;MQ=43.69;MQ0=2;OQ=621.12;QD=3.63;SB=-22.34	GT:AD:DP:GL:GQ	0/1:130,41:133:-105.49,-40.09,-359.21:99
-chr1	3775097	.	C	T	202.73	DPFilter;Indel	AC=1;AF=0.50;AN=2;DP=156;Dels=0.02;HRun=0;HaplotypeScore=180.15;MQ=42.01;MQ0=2;QD=1.30;SB=-48.46	GT:AD:DP:GL:GQ	0/1:127,21:125:-62.81,-39.25,-356.59:99
-chr1	3775132	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=96;Dels=0.00;HRun=0;HaplotypeScore=17.94;MQ=41.24;MQ0=3;OQ=65.49;QD=0.68;SB=-47.12	GT:AD:DP:GL:GQ	0/1:77,9:78:-49.90,-40.06,-295.84:98.32
-chr1	3779522	rs11581471	A	G	100.85	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=56.41;MQ0=0;OQ=1287.54;QD=29.26;SB=-667.82	GT:AD:DP:GL:GQ	1/1:0,44:42:-132.38,-12.67,-0.05:99
-chr1	3779990	rs12130391	G	A	164	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=58.47;MQ0=0;OQ=2160.23;QD=35.41;SB=-916.74	GT:AD:DP:GL:GQ	1/1:0,60:57:-219.63,-17.18,-0.03:99
-chr1	3780767	.	T	C	4.63	PASS	AC=1;AF=0.50;AN=2;DP=58;Dels=0.00;HRun=0;HaplotypeScore=2.82;MQ=30.96;MQ0=11;OQ=368.82;QD=6.36;SB=-104.61	GT:AD:DP:GL:GQ	0/1:34,24:38:-51.63,-11.46,-83.55:99
-chr1	3781074	rs10752727	C	T	2.58	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=7.70;MQ=37.12;MQ0=12;OQ=1286.15;QD=21.08;SB=-457.95	GT:AD:DP:GL:GQ	1/1:3,58:36:-135.18,-10.85,-2.98:78.66
-chr1	3783772	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=50;Dels=0.00;HRun=19;HaplotypeScore=32.14;MQ=55.75;MQ0=0;OQ=200.26;QD=4.01;SB=53.19	GT:AD:DP:GL:GQ	0/1:32,18:38:-34.76,-11.45,-99.41:99
-chr1	3784133	rs12132240	C	T	668.84	PASS	AC=2;AF=1.00;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.52;MQ0=0;OQ=2396.10;QD=39.93;SB=-998.03	GT:AD:DP:GL:GQ	1/1:0,60:60:-243.21,-18.07,-0.02:99
-chr1	3785251	rs10737189	T	C	42.26	PASS	AC=2;AF=1.00;AN=2;DB;DP=84;Dels=0.00;HRun=0;HaplotypeScore=4.18;MQ=59.45;MQ0=0;OQ=2617.88;QD=31.17;SB=-945.37	GT:AD:DP:GL:GQ	1/1:0,84:80:-265.43,-24.12,-0.06:99
-chr1	3786402	rs12071660	G	A	151.32	PASS	AC=2;AF=1.00;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=2743.00;QD=38.63;SB=-1108.49	GT:AD:DP:GL:GQ	1/1:0,71:69:-277.90,-20.79,-0.02:99
-chr1	3787079	rs4074710	T	C	1.91	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=9.84;MQ=58.78;MQ0=0;OQ=1684.95;QD=27.18;SB=-797.66	GT:AD:DP:GL:GQ	1/1:2,60:56:-176.09,-16.89,-4.01:99
-chr1	3787169	rs61768959	C	T	435.29	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.60;MQ0=0;OQ=1824.58;QD=38.82;SB=-789.07	GT:AD:DP:GL:GQ	1/1:0,47:46:-186.05,-13.86,-0.01:99
-chr1	3787855	rs4073324	C	T	458.35	PASS	AC=2;AF=1.00;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.50;MQ0=0;OQ=1383.49;QD=37.39;SB=-414.06	GT:AD:DP:GL:GQ	1/1:0,37:37:-141.95,-11.15,-0.02:99
-chr1	3787909	rs4073323	A	G	2.22	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=2;HaplotypeScore=3.99;MQ=59.35;MQ0=0;OQ=1345.64;QD=32.04;SB=-424.45	GT:AD:DP:GL:GQ	1/1:0,42:40:-138.17,-12.05,-0.02:99
-chr1	3788260	rs12084944	C	T	298.99	PASS	AC=2;AF=1.00;AN=2;DB;DP=24;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.49;MQ0=0;OQ=888.25;QD=37.01;SB=-436.08	GT:AD:DP:GL:GQ	1/1:0,24:23:-92.42,-6.93,-0.01:69.22
-chr1	3788534	rs12030906	T	C	0.68	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.02;HRun=0;HaplotypeScore=9.00;MQ=56.58;MQ0=0;OQ=1607.45;QD=29.23;SB=-436.47	GT:AD:DP:GL:GQ	1/1:0,54:48:-164.35,-14.16,-0.02:99
-chr1	3789424	rs4382652	G	A	2153.41	Indel	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=1;HaplotypeScore=4.66;MQ=56.10;MQ0=0;QD=35.30;SB=-1010.66	GT:AD:DP:GL:GQ	1/1:0,61:57:-218.95,-17.18,-0.03:99
-chr1	3790102	rs3205087	A	G	382.60	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.28;MQ0=0;OQ=1027.83;QD=26.35;SB=-300.09	GT:AD:DP:GL:GQ	1/1:0,39:35:-106.42,-10.57,-0.05:99
-chr1	3790340	rs7555538	G	T	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=73;Dels=0.00;HRun=8;HaplotypeScore=0.92;MQ=59.43;MQ0=0;OQ=2444.86;QD=33.49;SB=-1058.90	GT:AD:DP:GL:GQ	1/1:0,73:70:-248.10,-21.09,-0.03:99
-chr1	3791107	rs10909817	T	G	151.89	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=2.65;MQ=57.75;MQ0=0;OQ=1681.31;QD=32.33;SB=-830.07	GT:AD:DP:GL:GQ	1/1:0,51:49:-171.73,-14.76,-0.02:99
-chr1	3792631	rs11584721	G	C	5.17	PASS	AC=2;AF=1.00;AN=2;DB;DP=56;Dels=0.00;HRun=1;HaplotypeScore=5.57;MQ=57.48;MQ0=0;OQ=2243.27;QD=40.06;SB=-1057.19	GT:AD:DP:GL:GQ	1/1:1,55:53:-227.93,-15.97,-0.02:99
-chr1	3793561	rs12136187	C	A	227.66	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=57.95;MQ0=0;OQ=1328.46;QD=34.06;SB=-683.01	GT:AD:DP:GL:GQ	1/1:0,39:37:-136.44,-11.15,-0.01:99
-chr1	3793615	rs7367066	T	C	611.54	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=56.19;MQ0=0;OQ=1618.23;QD=29.97;SB=-707.63	GT:AD:DP:GL:GQ	1/1:0,53:51:-165.45,-15.38,-0.04:99
-chr1	3795300	rs6678851	C	T	1.35	PASS	AC=2;AF=1.00;AN=2;DB;DP=65;Dels=0.00;HRun=1;HaplotypeScore=5.47;MQ=59.65;MQ0=0;OQ=2468.27;QD=37.97;SB=-809.33	GT:AD:DP:GL:GQ	1/1:0,65:63:-250.43,-18.98,-0.02:99
-chr1	3795934	rs4075974	G	A	558.47	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=52.49;MQ0=0;OQ=2140.67;QD=39.64;SB=-940.34	GT:AD:DP:GL:GQ	1/1:0,54:54:-217.66,-16.27,-0.01:99
-chr1	3796218	rs10909819	T	C	98.14	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=2;HaplotypeScore=0.58;MQ=58.14;MQ0=0;OQ=2198.60;QD=32.33;SB=-948.97	GT:AD:DP:GL:GQ	1/1:0,68:64:-223.47,-19.28,-0.03:99
-chr1	3796503	rs4520357	T	A	245.19	PASS	AC=2;AF=1.00;AN=2;DB;DP=90;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=58.09;MQ0=0;OQ=3186.37;QD=35.40;SB=-1505.31	GT:AD:DP:GL:GQ	1/1:0,90:85:-322.25,-25.60,-0.02:99
-chr1	3797453	rs4274008	G	C	114.81	PASS	AC=2;AF=1.00;AN=2;DB;DP=65;Dels=0.00;HRun=1;HaplotypeScore=1.18;MQ=59.65;MQ0=0;OQ=2739.80;QD=42.15;SB=-1186.93	GT:AD:DP:GL:GQ	1/1:0,65:64:-277.59,-19.29,-0.02:99
-chr1	3798031	rs6701422	T	C	38.91	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=4.04;MQ=51.74;MQ0=0;OQ=1832.37;QD=30.04;SB=-733.76	GT:AD:DP:GL:GQ	1/1:0,60:57:-186.87,-17.19,-0.05:99
-chr1	3798222	rs4446914	G	A	207.99	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=1;HaplotypeScore=0.90;MQ=50.14;MQ0=0;OQ=2015.61;QD=38.03;SB=-988.99	GT:AD:DP:GL:GQ	1/1:0,53:52:-205.17,-15.67,-0.02:99
-chr1	3798375	.	A	G	51.46	PASS	AC=2;AF=1.00;AN=2;DP=13;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=16.12;MQ0=4;OQ=176.38;QD=13.57;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,13:6:-21.21,-1.81,-0.00:18.05
-chr1	3798911	rs12757258	A	C	37.05	LowQual	AC=2;AF=1.00;AN=2;DB;DP=5;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=30.57;MQ0=1;QD=7.41;SB=-10.00	GT:AD:DP:GL:GQ	1/1:2,3:2:-7.11,-0.60,-0.00:6.02
-chr1	3798957	rs12757292	A	C	18.79	PASS	AC=1;AF=0.50;AN=2;DB;DP=24;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=23.60;MQ0=1;OQ=75.37;QD=3.14;SB=-10.00	GT:AD:DP:GL:GQ	0/1:11,13:13:-14.74,-3.92,-26.95:99
-chr1	3799283	rs11807227	G	A	605.39	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=54.57;MQ0=0;OQ=2371.97;QD=38.88;SB=-744.48	GT:AD:DP:GL:GQ	1/1:0,61:60:-240.80,-18.08,-0.02:99
-chr1	3800246	rs4568776	A	G	199.91	PASS	AC=2;AF=1.00;AN=2;DB;DP=71;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.59;MQ0=0;OQ=2257.59;QD=31.80;SB=-934.52	GT:AD:DP:GL:GQ	1/1:0,71:68:-229.39,-20.50,-0.04:99
-chr1	3801063	rs7515869	A	T	278.49	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=2.26;MQ=61.08;MQ0=0;OQ=1948.49;QD=33.03;SB=-981.77	GT:AD:DP:GL:GQ	1/1:0,57:54:-198.46,-16.27,-0.03:99
-chr1	3801228	rs6674160	G	A	506.45	PASS	AC=2;AF=1.00;AN=2;DB;DP=32;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=53.72;MQ0=0;OQ=1203.93;QD=37.62;SB=-496.15	GT:AD:DP:GL:GQ	1/1:0,32:32:-124.00,-9.65,-0.02:96.29
-chr1	3801965	rs10909822	A	C	705.90	SnpCluster	AC=2;AF=1.00;AN=2;DB;DP=23;Dels=0.00;HRun=2;HaplotypeScore=0.89;MQ=42.43;MQ0=0;QD=30.69;SB=-332.99	GT:AD:DP:GL:GQ	1/1:1,22:22:-74.19,-6.63,-0.02:66.14
-chr1	3801968	.	T	A	440.70	SnpCluster	AC=1;AF=0.50;AN=2;DP=38;Dels=0.00;HRun=0;HaplotypeScore=0.63;MQ=38.89;MQ0=0;QD=11.60;SB=-170.81	GT:AD:DP:GL:GQ	0/1:21,17:32:-56.99,-9.64,-61.90:99
-chr1	3801971	.	G	T	508.15	SnpCluster	AC=1;AF=0.50;AN=2;DP=35;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=35.42;MQ0=0;QD=14.52;SB=-198.56	GT:AD:DP:GL:GQ	0/1:17,18:35:-64.64,-10.54,-61.42:99
-chr1	3801978	.	G	C	1059.09	Indel;SnpCluster	AC=2;AF=1.00;AN=2;DP=26;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=45.04;MQ0=0;QD=40.73;SB=-392.21	GT:AD:DP:GL:GQ	1/1:0,26:25:-109.50,-7.53,-0.01:75.25
-chr1	3802009	rs12133786	A	C	321.15	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=52.45;MQ0=0;OQ=1401.55;QD=33.37;SB=-709.03	GT:AD:DP:GL:GQ	1/1:0,42:41:-143.76,-12.35,-0.02:99
-chr1	3802570	rs10797352	T	C	148.57	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=58.68;MQ0=0;OQ=1740.38;QD=32.84;SB=-623.49	GT:AD:DP:GL:GQ	1/1:0,53:51:-177.65,-15.37,-0.03:99
-chr1	3802708	rs10797353	C	G	720.59	PASS	AC=2;AF=1.00;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2712.05;QD=38.74;SB=-1379.38	GT:AD:DP:GL:GQ	1/1:0,69:70:-279.01,-24.65,-4.23:99
-chr1	3804150	rs10797354	T	C	170.50	PASS	AC=2;AF=1.00;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=1.10;MQ=59.56;MQ0=0;OQ=1825.12;QD=32.59;SB=-712.23	GT:AD:DP:GL:GQ	1/1:0,56:54:-186.12,-16.27,-0.03:99
-chr1	3804602	rs6658198	T	C	302.07	PASS	AC=2;AF=1.00;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=1.57;MQ=59.62;MQ0=0;OQ=2079.20;QD=34.65;SB=-977.94	GT:AD:DP:GL:GQ	1/1:0,60:60:-211.53,-18.07,-0.02:99
-chr1	3806368	rs35131135	T	C	13.18	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=2;HaplotypeScore=0.92;MQ=58.87;MQ0=0;OQ=1257.30;QD=30.67;SB=-415.16	GT:AD:DP:GL:GQ	1/1:0,40:36:-129.33,-10.85,-0.01:99
-chr1	3806714	rs61770363	G	A	10.79	PASS	AC=2;AF=1.00;AN=2;DB;DP=18;Dels=0.00;HRun=1;HaplotypeScore=0.99;MQ=58.71;MQ0=0;OQ=641.87;QD=35.66;SB=-278.65	GT:AD:DP:GL:GQ	1/1:0,18:18:-67.78,-5.43,-0.01:54.17
-chr1	3806753	rs4072725	C	T	77.05	PASS	AC=2;AF=1.00;AN=2;DB;DP=16;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=55.52;MQ0=0;OQ=544.23;QD=34.01;SB=-280.66	GT:AD:DP:GL:GQ	1/1:0,16:15:-58.01,-4.52,-0.01:45.14
-chr1	3808604	rs10797355	T	C	125.29	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=1;HaplotypeScore=0.95;MQ=53.60;MQ0=1;OQ=2350.13;QD=34.56;SB=-914.68	GT:AD:DP:GL:GQ	1/1:0,68:66:-238.63,-19.89,-0.03:99
-chr1	3808731	rs10797356	G	A	43.83	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=2;HaplotypeScore=2.07;MQ=58.71;MQ0=0;OQ=2012.52;QD=37.27;SB=-776.06	GT:AD:DP:GL:GQ	1/1:0,54:52:-204.86,-15.67,-0.02:99
-chr1	3809184	rs6672335	A	G	119.40	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=0.63;MQ=59.56;MQ0=0;OQ=1683.69;QD=31.77;SB=-530.84	GT:AD:DP:GL:GQ	1/1:0,53:48:-171.97,-14.46,-0.02:99
-chr1	3809865	rs10909828	G	A	654.97	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.19;MQ0=0;OQ=2184.41;QD=38.32;SB=-826.35	GT:AD:DP:GL:GQ	1/1:0,57:56:-222.04,-16.87,-0.02:99
-chr1	3809876	rs12139857	G	C	137.16	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=0.87;MQ=59.22;MQ0=0;OQ=2518.12;QD=42.68;SB=-984.74	GT:AD:DP:GL:GQ	1/1:0,59:58:-255.41,-17.48,-0.02:99
-chr1	3811076	rs6687869	G	A	107.90	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=59.45;MQ0=0;OQ=1628.97;QD=38.79;SB=-568.34	GT:AD:DP:GL:GQ	1/1:0,42:42:-166.50,-12.65,-0.01:99
-chr1	3811194	rs10797357	G	A	521.93	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.15;MQ0=0;OQ=1858.19;QD=37.92;SB=-535.68	GT:AD:DP:GL:GQ	1/1:0,49:48:-189.42,-14.46,-0.01:99
-chr1	3812563	rs10909830	C	T	206.83	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=3.08;MQ=58.81;MQ0=0;OQ=2305.91;QD=36.60;SB=-919.31	GT:AD:DP:GL:GQ	1/1:0,63:60:-234.20,-18.08,-0.02:99
-chr1	3812792	.	C	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=55;Dels=0.00;HRun=1;HaplotypeScore=14.74;MQ=58.39;MQ0=0;OQ=154.04;QD=2.80;SB=80.30	GT:AD:DP:GL:GQ	0/1:43,12:42:-31.36,-12.67,-148.77:99
-chr1	3816486	rs35332894	A	G	12.94	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=1;HaplotypeScore=1.52;MQ=58.25;MQ0=1;OQ=1726.98;QD=27.41;SB=-682.71	GT:AD:DP:GL:GQ	1/1:0,63:54:-176.33,-16.29,-0.05:99
-chr1	3817341	rs61770379	C	T	109.94	PASS	AC=2;AF=1.00;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=0.96;MQ=59.38;MQ0=0;OQ=1418.14;QD=38.33;SB=-728.97	GT:AD:DP:GL:GQ	1/1:0,37:36:-145.41,-10.84,-0.01:99
-chr1	3819020	rs34825671	C	T	409.20	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.42;MQ0=0;OQ=1564.33;QD=39.11;SB=-750.02	GT:AD:DP:GL:GQ	1/1:0,40:40:-160.03,-12.05,-0.01:99
-chr1	3819278	rs35368826	T	C	12.24	PASS	AC=2;AF=1.00;AN=2;DB;DP=43;Dels=0.00;HRun=1;HaplotypeScore=0.26;MQ=60.00;MQ0=0;OQ=1199.67;QD=27.90;SB=-424.22	GT:AD:DP:GL:GQ	1/1:0,43:38:-123.59,-11.46,-0.04:99
-chr1	3819474	rs35583447	A	G	89.06	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=1;HaplotypeScore=0.99;MQ=58.69;MQ0=0;OQ=1939.06;QD=31.79;SB=-974.91	GT:AD:DP:GL:GQ	1/1:0,61:57:-197.52,-17.18,-0.03:99
-chr1	3819901	rs34284135	A	G	55.75	PASS	AC=2;AF=1.00;AN=2;DB;DP=43;Dels=0.00;HRun=1;HaplotypeScore=0.73;MQ=58.81;MQ0=0;OQ=1296.25;QD=30.15;SB=-641.91	GT:AD:DP:GL:GQ	1/1:0,43:38:-133.23,-11.45,-0.02:99
-chr1	3820479	rs4073647	C	A	185.05	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.94;MQ=59.55;MQ0=0;OQ=1638.97;QD=32.14;SB=-804.86	GT:AD:DP:GL:GQ	1/1:0,51:47:-167.50,-14.16,-0.02:99
-chr1	3820963	rs35355307	G	A	127.74	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=1.05;MQ=59.69;MQ0=0;OQ=2262.75;QD=37.09;SB=-711.99	GT:AD:DP:GL:GQ	1/1:0,61:59:-229.89,-17.78,-0.03:99
-chr1	3821092	rs35241263	A	G	89.02	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=1.14;MQ=58.63;MQ0=0;OQ=1378.97;QD=27.04;SB=-599.21	GT:AD:DP:GL:GQ	1/1:0,51:45:-141.53,-13.58,-0.05:99
-chr1	3821416	rs34803434	G	A	80.51	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=3.13;MQ=58.07;MQ0=0;OQ=1633.32;QD=35.51;SB=-688.34	GT:AD:DP:GL:GQ	1/1:1,45:44:-166.94,-13.26,-0.02:99
-chr1	3823053	rs61770387	C	T	609.64	PASS	AC=2;AF=1.00;AN=2;DB;DP=69;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.67;MQ0=0;OQ=2714.99;QD=39.35;SB=-1139.68	GT:AD:DP:GL:GQ	1/1:0,69:68:-275.10,-20.48,-0.02:99
-chr1	3823181	rs61770388	T	C	199.61	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=59.19;MQ0=0;OQ=1728.56;QD=33.24;SB=-864.04	GT:AD:DP:GL:GQ	1/1:0,52:50:-176.46,-15.06,-0.02:99
-chr1	3824979	rs61770390	T	C	82.45	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=2.51;MQ=55.31;MQ0=0;OQ=486.55;QD=7.85;SB=-261.22	GT:AD:DP:GL:GQ	0/1:37,25:59:-69.72,-17.78,-147.85:99
-chr1	3824990	.	C	T	3.46	PASS	AC=1;AF=0.50;AN=2;DP=64;Dels=0.00;HRun=1;HaplotypeScore=3.66;MQ=55.46;MQ0=0;OQ=1251.91;QD=19.56;SB=-545.38	GT:AD:DP:GL:GQ	0/1:27,37:61:-146.86,-18.39,-82.02:99
-chr1	3825051	.	C	A	3.22	PASS	AC=1;AF=0.50;AN=2;DP=71;Dels=0.00;HRun=2;HaplotypeScore=3.18;MQ=58.29;MQ0=0;OQ=820.60;QD=11.56;SB=-414.89	GT:AD:DP:GL:GQ	0/1:42,29:71:-106.73,-21.38,-145.16:99
-chr1	3825054	.	T	C	10.09	PASS	AC=1;AF=0.50;AN=2;DP=69;Dels=0.00;HRun=1;HaplotypeScore=3.18;MQ=58.08;MQ0=0;OQ=722.16;QD=10.47;SB=-351.97	GT:AD:DP:GL:GQ	0/1:40,28:65:-95.08,-19.58,-155.89:99
-chr1	3825324	rs61770392	A	T	88.32	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=1;HaplotypeScore=1.47;MQ=57.20;MQ0=0;OQ=1894.97;QD=35.09;SB=-920.36	GT:AD:DP:GL:GQ	1/1:0,54:51:-193.10,-15.37,-0.02:99
-chr1	3827005	.	C	T	22.22	LowQual	AC=1;AF=0.50;AN=2;DP=15;Dels=0.00;HRun=2;HaplotypeScore=1.47;MQ=43.17;MQ0=3;QD=1.48;SB=-10.00	GT:AD:DP:GL:GQ	0/1:12,3:9:-8.21,-2.71,-24.78:55.03
-chr1	3827011	.	C	T	25.21	LowQual	AC=1;AF=0.50;AN=2;DP=14;Dels=0.00;HRun=1;HaplotypeScore=2.11;MQ=38.99;MQ0=3;QD=1.80;SB=-10.00	GT:AD:DP:GL:GQ	0/1:12,2:8:-8.21,-2.41,-21.31:58.03
-chr1	3830505	rs35265992	A	G	0.12	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=4;HaplotypeScore=5.22;MQ=58.50;MQ0=0;OQ=970.90;QD=17.34;SB=-315.39	GT:AD:DP:GL:GQ	0/1:20,36:52:-116.04,-15.67,-75.68:99
-chr1	3830738	rs35974482	G	A	171.95	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=2.40;MQ=57.87;MQ0=0;OQ=551.40;QD=12.53;SB=-198.84	GT:AD:DP:GL:GQ	0/1:25,19:40:-70.48,-12.05,-78.52:99
-chr1	3830888	rs35314156	G	C	209.73	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=1;HaplotypeScore=0.89;MQ=59.07;MQ0=0;OQ=668.40;QD=13.37;SB=-257.46	GT:AD:DP:GL:GQ	0/1:30,20:50:-85.20,-15.08,-125.99:99
-chr1	3831972	rs34835780	T	C	632.20	PASS	AC=2;AF=1.00;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.64;MQ0=0;OQ=2285.64;QD=35.16;SB=-1132.81	GT:AD:DP:GL:GQ	1/1:0,65:64:-232.17,-19.28,-0.02:99
-chr1	3833915	.	G	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=79;Dels=0.00;HRun=0;HaplotypeScore=17.15;MQ=47.19;MQ0=1;OQ=288.77;QD=3.66;SB=-113.05	GT:AD:DP:GL:GQ	0/1:64,15:78:-55.66,-23.49,-226.25:99
-chr1	3895148	.	C	A	18	PASS	AC=1;AF=0.50;AN=2;DP=34;Dels=0.00;HRun=0;HaplotypeScore=2.84;MQ=35.10;MQ0=1;OQ=333.31;QD=9.80;SB=-100.81	GT:AD:DP:GL:GQ	0/1:15,18:23:-43.54,-6.93,-34.49:99
-chr1	3895632	.	G	A	3.06	PASS	AC=1;AF=0.50;AN=2;DP=68;Dels=0.00;HRun=4;HaplotypeScore=1.00;MQ=60.00;MQ0=0;OQ=959.16;QD=14.11;SB=-372.32	GT:AD:DP:GL:GQ	0/1:38,30:68:-119.69,-20.49,-137.83:99
-chr1	3895766	rs61770398	T	C	202.83	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=3.65;MQ=59.18;MQ0=0;OQ=960.24;QD=12.98;SB=-389.21	GT:AD:DP:GL:GQ	0/1:40,34:73:-121.30,-21.99,-162.55:99
-chr1	3899769	.	C	G	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=45;Dels=0.00;HRun=2;HaplotypeScore=8.09;MQ=59.49;MQ0=0;OQ=340.78;QD=7.57;SB=47.18	GT:AD:DP:GL:GQ	0/1:26,19:34:-47.63,-10.27,-85.91:99
-chr1	3902626	rs12073174	A	G	196.76	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=56.14;MQ0=0;OQ=542.74;QD=11.31;SB=-148.64	GT:AD:DP:GL:GQ	0/1:27,21:46:-71.41,-13.85,-105.98:99
-chr1	3902680	rs61770400	C	T	70.11	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=5.09;MQ=59.24;MQ0=0;OQ=954.92;QD=15.65;SB=-346.04	GT:AD:DP:GL:GQ	0/1:29,32:59:-116.56,-17.78,-99.06:99
-chr1	3903888	.	C	T	983.33	SnpCluster	AC=1;AF=0.50;AN=2;DP=55;Dels=0.00;HRun=1;HaplotypeScore=0.89;MQ=59.15;MQ0=0;QD=17.88;SB=-501.10	GT:AD:DP:GL:GQ	0/1:24,31:52:-117.28,-15.67,-81.69:99
-chr1	3903897	rs12076404	C	T	1044.63	SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=59.20;MQ0=0;QD=18.01;SB=-538.06	GT:AD:DP:GL:GQ	0/1:25,33:54:-124.01,-16.27,-82.66:99
-chr1	3903898	.	G	A	621.65	SnpCluster	AC=1;AF=0.50;AN=2;DP=56;Dels=0.00;HRun=0;HaplotypeScore=1.05;MQ=59.17;MQ0=0;QD=11.10;SB=-272.76	GT:AD:DP:GL:GQ	0/1:33,23:52:-81.12,-15.67,-110.15:99
-chr1	3904122	.	C	T	64.01	PASS	AC=1;AF=0.50;AN=2;DP=82;Dels=0.00;HRun=0;HaplotypeScore=3.61;MQ=58.92;MQ0=0;OQ=1312.00;QD=16.00;SB=-449.98	GT:AD:DP:GL:GQ	0/1:43,39:81:-158.89,-24.40,-148.69:99
-chr1	3904123	rs7518198	G	A	275.18	PASS	AC=1;AF=0.50;AN=2;DB;DP=82;Dels=0.00;HRun=0;HaplotypeScore=3.77;MQ=58.92;MQ0=0;OQ=1318.95;QD=16.08;SB=-404.76	GT:AD:DP:GL:GQ	0/1:38,44:78:-158.67,-23.50,-132.87:99
-chr1	3904259	rs55651676	C	G	11.26	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=3;HaplotypeScore=0.67;MQ=58.80;MQ0=0;OQ=719.49;QD=18.45;SB=-354.47	GT:AD:DP:GL:GQ	0/1:17,22:35:-85.79,-10.56,-59.36:99
-chr1	3904673	rs56300127	T	C	189.23	PASS	AC=1;AF=0.50;AN=2;DB;DP=34;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=58.07;MQ0=0;OQ=384.21;QD=11.30;SB=-194.60	GT:AD:DP:GL:GQ	0/1:17,17:31:-51.05,-9.34,-58.99:99
-chr1	3905021	rs10915614	A	G	3.58	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=4;HaplotypeScore=1.21;MQ=59.48;MQ0=0;OQ=428.89;QD=9.75;SB=-152.44	GT:AD:DP:GL:GQ	0/1:24,19:41:-58.53,-12.36,-93.35:99
-chr1	3905038	.	G	A	50.50	PASS	AC=1;AF=0.50;AN=2;DP=39;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.41;MQ0=0;OQ=477.39;QD=12.24;SB=-188.87	GT:AD:DP:GL:GQ	0/1:22,17:37:-62.18,-11.16,-67.50:99
-chr1	3905246	.	C	T	93.17	PASS	AC=1;AF=0.50;AN=2;DP=62;Dels=0.00;HRun=0;HaplotypeScore=0.10;MQ=58.57;MQ0=0;OQ=1011.86;QD=16.32;SB=-440.98	GT:AD:DP:GL:GQ	0/1:30,32:58:-121.96,-17.49,-85.78:99
-chr1	3905920	rs7548668	T	C	26.57	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=1;HaplotypeScore=6.64;MQ=59.57;MQ0=0;OQ=666.76;QD=12.35;SB=-179.62	GT:AD:DP:GL:GQ	0/1:27,27:46:-83.82,-13.86,-87.80:99
-chr1	3906227	rs9793287	T	C	337.13	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=59.61;MQ0=0;OQ=444.12;QD=9.25;SB=-215.36	GT:AD:DP:GL:GQ	0/1:27,21:46:-61.57,-13.87,-101.57:99
-chr1	3906248	rs12562706	C	A	152.11	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=1;HaplotypeScore=1.05;MQ=59.59;MQ0=0;OQ=415.45;QD=9.23;SB=-231.91	GT:AD:DP:GL:GQ	0/1:25,20:41:-57.18,-12.35,-86.80:99
-chr1	3906531	rs7526903	G	A	280.93	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=1.05;MQ=59.63;MQ0=0;OQ=909.30;QD=17.83;SB=-442.97	GT:AD:DP:GL:GQ	0/1:23,27:47:-108.38,-14.16,-65.40:99
-chr1	3906648	rs7551771	C	T	37.89	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=2;HaplotypeScore=2.80;MQ=60.06;MQ0=0;OQ=776.93;QD=15.54;SB=-354.36	GT:AD:DP:GL:GQ	0/1:26,24:48:-95.43,-14.46,-92.96:99
-chr1	3906868	rs7519349	A	G	578.45	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=764.11;QD=13.64;SB=-362.95	GT:AD:DP:GL:GQ	0/1:26,30:56:-96.58,-16.88,-105.57:99
-chr1	3906970	rs7519458	A	G	232.59	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=1;HaplotypeScore=1.80;MQ=60.00;MQ0=0;OQ=762.22;QD=13.14;SB=-199.60	GT:AD:DP:GL:GQ	0/1:26,31:57:-96.69,-17.19,-106.25:99
-chr1	3907888	rs10799162	T	C	190.81	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=2.13;MQ=58.79;MQ0=0;OQ=719.58;QD=13.33;SB=-230.44	GT:AD:DP:GL:GQ	0/1:27,27:53:-91.22,-15.97,-102.46:99
-chr1	3907889	rs10799163	G	T	86.43	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=1;HaplotypeScore=2.13;MQ=58.79;MQ0=0;OQ=758.50;QD=14.05;SB=-193.54	GT:AD:DP:GL:GQ	0/1:27,26:51:-94.50,-15.37,-86.70:99
-chr1	3907912	rs10915345	G	A	203.29	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.26;MQ=59.62;MQ0=0;OQ=1037.45;QD=17.01;SB=-258.26	GT:AD:DP:GL:GQ	0/1:29,32:57:-124.21,-17.18,-83.11:99
-chr1	3909896	rs6683165	G	A	201.77	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=2.49;MQ=59.62;MQ0=0;OQ=837.44;QD=12.88;SB=-252.13	GT:AD:DP:GL:GQ	0/1:38,27:62:-105.71,-18.68,-120.77:99
-chr1	3910104	rs10799194	C	T	90.26	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=2;HaplotypeScore=1.69;MQ=60.00;MQ0=0;OQ=794.06;QD=13.23;SB=-418.44	GT:AD:DP:GL:GQ	0/1:34,26:57:-99.88,-17.19,-98.75:99
-chr1	3919557	rs9426474	A	G	111.97	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=58.97;MQ0=0;OQ=1753.83;QD=29.73;SB=-828.62	GT:AD:DP:GL:GQ	1/1:0,59:55:-179.01,-16.59,-0.05:99
-chr1	3922104	rs9426475	T	C	209.50	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=0.93;MQ=54.82;MQ0=0;OQ=1570.14;QD=28.55;SB=-720.64	GT:AD:DP:GL:GQ	1/1:0,55:50:-160.65,-15.09,-0.06:99
-chr1	3922325	rs10915469	T	C	562.16	PASS	AC=2;AF=1.00;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1863.57;QD=28.24;SB=-798.65	GT:AD:DP:GL:GQ	1/1:0,66:58:-189.99,-17.49,-0.05:99
-chr1	3922572	rs7540846	C	T	41.15	PASS	AC=2;AF=1.00;AN=2;DB;DP=84;Dels=0.00;HRun=2;HaplotypeScore=0.57;MQ=53.34;MQ0=0;OQ=2905.34;QD=34.59;SB=-1359.03	GT:AD:DP:GL:GQ	1/1:0,81:75:-294.15,-22.60,-0.03:99
-chr1	3922839	rs7516192	G	C	540.09	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.04;MQ0=0;OQ=2588.44;QD=42.43;SB=-1244.89	GT:AD:DP:GL:GQ	1/1:0,61:60:-262.44,-18.08,-0.02:99
-chr1	3922855	rs9426476	A	G	185.57	PASS	AC=2;AF=1.00;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=1.74;MQ=58.63;MQ0=0;OQ=2064.09;QD=34.40;SB=-842.35	GT:AD:DP:GL:GQ	1/1:0,60:58:-210.01,-17.47,-0.02:99
-chr1	3922974	rs7541241	C	A	552.27	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=56.64;MQ0=0;OQ=1520.98;QD=33.80;SB=-673.30	GT:AD:DP:GL:GQ	1/1:0,45:44:-155.71,-13.26,-0.03:99
-chr1	3923246	rs9426498	T	C	9.78	PASS	AC=2;AF=1.00;AN=2;DB;DP=56;Dels=0.00;HRun=1;HaplotypeScore=1.56;MQ=52.33;MQ0=0;OQ=1450.84;QD=25.91;SB=-720.70	GT:AD:DP:GL:GQ	1/1:0,56:46:-148.71,-13.88,-0.05:99
-chr1	3923458	rs9426499	A	C	507.51	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1349.47;QD=30.67;SB=-364.89	GT:AD:DP:GL:GQ	1/1:0,44:42:-138.57,-12.66,-0.04:99
-chr1	3923596	rs9426477	A	G	619.10	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.56;MQ0=0;OQ=2188.14;QD=34.73;SB=-945.36	GT:AD:DP:GL:GQ	1/1:0,63:61:-222.42,-18.37,-0.02:99
-chr1	3923941	rs6698811	T	C	664.67	PASS	AC=2;AF=1.00;AN=2;DB;DP=82;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.72;MQ0=0;OQ=2773.83;QD=33.83;SB=-1404.50	GT:AD:DP:GL:GQ	1/1:0,82:80:-281.00,-24.10,-0.03:99
-chr1	3936055	rs10753378	T	C	376.82	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=1.05;MQ=59.51;MQ0=0;OQ=543.43;QD=11.56;SB=-218.27	GT:AD:DP:GL:GQ	0/1:23,24:45:-71.19,-13.57,-90.09:99
-chr1	3938219	.	C	T	61.19	PASS	AC=1;AF=0.50;AN=2;DP=58;Dels=0.00;HRun=0;HaplotypeScore=3.45;MQ=59.60;MQ0=0;OQ=740.10;QD=12.76;SB=-319.83	GT:AD:DP:GL:GQ	0/1:30,28:53:-93.28,-15.99,-88.25:99
-chr1	3940015	rs4654525	C	T	311.29	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=59.10;MQ0=0;OQ=1004.75;QD=15.00;SB=-479.00	GT:AD:DP:GL:GQ	0/1:36,31:66:-123.64,-19.88,-133.78:99
-chr1	3942839	rs60972376	A	C	11.72	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=2;HaplotypeScore=4.30;MQ=58.67;MQ0=0;OQ=585.81;QD=11.96;SB=-197.90	GT:AD:DP:GL:GQ	0/1:20,28:43:-74.82,-12.96,-73.58:99
-chr1	3942909	rs55887893	C	T	197.25	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=3.21;MQ=60.00;MQ0=0;OQ=588.30;QD=11.77;SB=-314.85	GT:AD:DP:GL:GQ	0/1:29,21:47:-76.28,-14.17,-92.23:99
-chr1	3944651	rs59118111	G	C	246.41	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=2.29;MQ=60.00;MQ0=0;OQ=1068.67;QD=16.44;SB=-449.44	GT:AD:DP:GL:GQ	0/1:32,33:64:-129.45,-19.30,-140.55:99
-chr1	3945187	rs4654538	G	A	29.36	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=4.53;MQ=58.81;MQ0=0;OQ=1094.72;QD=19.90;SB=-430.80	GT:AD:DP:GL:GQ	0/1:23,32:55:-129.32,-16.57,-83.23:99
-chr1	3947137	rs4654543	T	C	110.66	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=1;HaplotypeScore=1.78;MQ=60.00;MQ0=0;OQ=382.96;QD=9.82;SB=-135.53	GT:AD:DP:GL:GQ	0/1:21,18:38:-53.04,-11.46,-84.39:99
-chr1	3947479	rs10449244	C	A	197.72	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=1.95;MQ=60.00;MQ0=0;OQ=744.81;QD=13.07;SB=-230.89	GT:AD:DP:GL:GQ	0/1:29,28:53:-93.73,-15.97,-94.52:99
-chr1	3948534	rs4654544	A	G	534.93	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=551.19;QD=12.53;SB=-251.96	GT:AD:DP:GL:GQ	0/1:21,23:44:-71.67,-13.27,-84.12:99
-chr1	3949636	rs4654436	T	C	195.22	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=3.10;MQ=59.16;MQ0=0;OQ=834.97;QD=11.60;SB=-298.88	GT:AD:DP:GL:GQ	0/1:38,34:66:-106.67,-19.89,-140.32:99
-chr1	3949646	rs6426416	A	T	32.24	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=3;HaplotypeScore=2.47;MQ=59.20;MQ0=0;OQ=1168.58;QD=15.38;SB=-401.17	GT:AD:DP:GL:GQ	0/1:38,38:72:-141.84,-21.70,-126.75:99
-chr1	3950380	.	A	G	266.35	PASS	AC=1;AF=0.50;AN=2;DP=85;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.46;MQ0=0;OQ=1356.42;QD=15.96;SB=-652.62	GT:AD:DP:GL:GQ	0/1:40,45:85:-164.53,-25.60,-164.89:99
-chr1	3950813	rs10737411	A	G	175.98	PASS	AC=1;AF=0.50;AN=2;DB;DP=108;Dels=0.00;HRun=1;HaplotypeScore=2.09;MQ=59.83;MQ0=0;OQ=1386.28;QD=12.84;SB=-502.53	GT:AD:DP:GL:GQ	0/1:55,53:107:-174.15,-32.24,-226.13:99
-chr1	3951883	rs6657331	G	C	1.76	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=1;HaplotypeScore=2.77;MQ=59.14;MQ0=0;OQ=976.24;QD=22.70;SB=-437.36	GT:AD:DP:GL:GQ	0/1:16,27:40:-112.97,-12.06,-59.28:99
-chr1	3951915	rs12145443	C	T	0.21	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=14.98;MQ=58.72;MQ0=0;OQ=829.82;QD=21.84;SB=-313.85	GT:AD:DP:GL:GQ	0/1:13,25:37:-97.41,-11.15,-45.43:99
-chr1	3952816	rs10799236	A	G	574.49	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.56;MQ0=0;OQ=747.27;QD=14.10;SB=-330.89	GT:AD:DP:GL:GQ	0/1:27,26:52:-93.67,-15.66,-106.05:99
-chr1	3953295	rs12038964	T	C	361.41	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=58.86;MQ0=0;OQ=750.82;QD=12.31;SB=-348.04	GT:AD:DP:GL:GQ	0/1:30,31:60:-96.45,-18.08,-120.40:99
-chr1	3953370	rs12040628	A	G	147.24	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=1;HaplotypeScore=2.81;MQ=59.55;MQ0=0;OQ=749.75;QD=14.70;SB=-277.27	GT:AD:DP:GL:GQ	0/1:21,30:49:-93.03,-14.77,-83.59:99
-chr1	3954832	rs9426500	A	C	437.18	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.22;MQ0=0;OQ=970.97;QD=16.46;SB=-363.09	GT:AD:DP:GL:GQ	0/1:25,34:59:-118.15,-17.77,-92.14:99
-chr1	3955140	rs7413013	G	C	5.69	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=1;HaplotypeScore=1.97;MQ=59.17;MQ0=0;OQ=1282.99;QD=22.91;SB=-362.10	GT:AD:DP:GL:GQ	0/1:21,35:56:-148.46,-16.87,-92.34:99
-chr1	3955487	rs9426501	T	C	61.29	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=4.29;MQ=58.95;MQ0=0;OQ=1025.38;QD=16.54;SB=-268.62	GT:AD:DP:GL:GQ	0/1:26,36:60:-123.90,-18.08,-97.56:99
-chr1	3956324	rs28609919	G	C	274.82	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=0.10;MQ=59.69;MQ0=0;OQ=890.13;QD=14.84;SB=-464.74	GT:AD:DP:GL:GQ	0/1:33,27:59:-110.08,-17.78,-139.21:99
-chr1	3957249	rs12756251	G	A	25.08	PASS	AC=1;AF=0.50;AN=2;DB;DP=81;Dels=0.00;HRun=2;HaplotypeScore=3.32;MQ=59.14;MQ0=0;OQ=1510.62;QD=18.65;SB=-581.41	GT:AD:DP:GL:GQ	0/1:36,45:78:-177.84,-23.50,-121.43:99
-chr1	3957262	rs12733769	T	A	184.98	PASS	AC=1;AF=0.50;AN=2;DB;DP=80;Dels=0.00;HRun=1;HaplotypeScore=3.12;MQ=59.13;MQ0=0;OQ=1410.63;QD=17.63;SB=-590.40	GT:AD:DP:GL:GQ	0/1:34,46:77:-167.55,-23.20,-118.80:99
-chr1	3957348	rs12135298	A	G	336.09	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=1;HaplotypeScore=0.63;MQ=58.25;MQ0=0;OQ=781.36;QD=12.21;SB=-403.89	GT:AD:DP:GL:GQ	0/1:34,30:63:-100.41,-18.99,-132.61:99
-chr1	3959579	.	G	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=53;Dels=0.00;HRun=0;HaplotypeScore=7.87;MQ=33.13;MQ0=5;OQ=83.58;QD=1.58;SB=-67.89	GT:AD:DP:GL:GQ	0/1:44,9:38:-23.11,-11.47,-97.21:99
-chr1	3959589	.	G	A	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=56;Dels=0.00;HRun=1;HaplotypeScore=8.30;MQ=33.13;MQ0=5;OQ=210.60;QD=3.76;SB=-42.01	GT:AD:DP:GL:GQ	0/1:42,14:42:-37.00,-12.66,-114.99:99
-chr1	3959610	rs4654559	T	C	0.08	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=1;HaplotypeScore=19.50;MQ=38.33;MQ0=4;OQ=745.10;QD=13.55;SB=-325.28	GT:AD:DP:GL:GQ	0/1:20,35:43:-90.76,-12.97,-56.11:99
-chr1	3959618	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=58;Dels=0.00;HRun=0;HaplotypeScore=35.45;MQ=40.78;MQ0=4;OQ=377.28;QD=6.50;SB=-163.72	GT:AD:DP:GL:GQ	0/1:35,17:42:-66.15,-25.14,-90.45:99
-chr1	3959638	rs12137425	A	G	6.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=3.13;MQ=49.20;MQ0=1;OQ=205.57;QD=4.28;SB=-109.83	GT:AD:DP:GL:GQ	0/1:33,15:40:-35.90,-12.06,-107.08:99
-chr1	3959766	.	G	A	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=58;Dels=0.00;HRun=1;HaplotypeScore=11.71;MQ=40.06;MQ0=2;OQ=205.60;QD=3.54;SB=-53.76	GT:AD:DP:GL:GQ	0/1:44,14:49:-38.61,-14.76,-139.54:99
-chr1	3959787	rs11807610	T	C	0.34	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=1;HaplotypeScore=13.45;MQ=43.41;MQ0=2;OQ=585.11;QD=10.45;SB=-259.35	GT:AD:DP:GL:GQ	0/1:22,34:43:-74.76,-12.96,-79.59:99
-chr1	3959815	rs10915563	A	G	47.44	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=13.21;MQ=50.51;MQ0=1;QD=0.72;SB=62.23	GT:AD:DP:GL:GQ	0/1:56,10:52:-23.70,-15.67,-173.58:80.28
-chr1	3959825	.	A	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=71;Dels=0.00;HRun=0;HaplotypeScore=18.02;MQ=51.36;MQ0=1;OQ=581.75;QD=8.19;SB=-258.36	GT:AD:DP:GL:GQ	0/1:43,28:61:-79.84,-18.38,-149.14:99
-chr1	3959826	.	A	G	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=74;Dels=0.00;HRun=1;HaplotypeScore=9.14;MQ=50.86;MQ0=1;OQ=291.12;QD=3.93;SB=-139.48	GT:AD:DP:GL:GQ	0/1:51,23:56:-49.27,-16.88,-163.75:99
-chr1	3959854	rs10799245	C	A	521.83	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=51.17;MQ0=0;OQ=879.17;QD=14.65;SB=-268.32	GT:AD:DP:GL:GQ	0/1:29,31:55:-107.78,-16.58,-78.49:99
-chr1	3961215	rs6670453	G	C	331.68	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=1.30;MQ=59.13;MQ0=0;OQ=833.59;QD=15.73;SB=-292.89	GT:AD:DP:GL:GQ	0/1:29,24:53:-102.62,-15.98,-127.58:99
-chr1	3961230	rs6672877	G	T	118.38	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=2;HaplotypeScore=0.94;MQ=59.07;MQ0=0;OQ=633.10;QD=12.66;SB=-213.34	GT:AD:DP:GL:GQ	0/1:27,23:49:-81.35,-14.76,-89.22:99
-chr1	3961237	rs12045715	G	A	510.42	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.09;MQ0=0;OQ=793.63;QD=15.56;SB=-285.83	GT:AD:DP:GL:GQ	0/1:26,25:51:-98.03,-15.38,-79.59:99
-chr1	3961468	rs12045781	G	A	286.99	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=2.13;MQ=60.00;MQ0=0;OQ=606.20;QD=13.78;SB=-238.18	GT:AD:DP:GL:GQ	0/1:24,20:42:-76.57,-12.66,-72.65:99
-chr1	3961548	rs10799247	A	G	169.43	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=1.55;MQ=58.33;MQ0=0;OQ=674.03;QD=12.04;SB=-151.92	GT:AD:DP:GL:GQ	0/1:31,24:52:-86.36,-15.67,-108.75:99
-chr1	3962010	rs4654565	G	A	105.50	PASS	AC=1;AF=0.50;AN=2;DB;DP=26;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=60.00;MQ0=0;OQ=336.97;QD=12.96;SB=-103.61	GT:AD:DP:GL:GQ	0/1:14,12:25:-44.52,-7.54,-43.04:99
-chr1	3962589	rs4654447	A	G	258.32	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=1.94;MQ=59.65;MQ0=0;OQ=712.70;QD=13.45;SB=-356.22	GT:AD:DP:GL:GQ	0/1:26,27:50:-89.62,-15.07,-95.62:99
-chr1	3962703	rs4654448	A	C	265.60	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=1;HaplotypeScore=0.47;MQ=60.00;MQ0=0;OQ=756.85;QD=13.52;SB=-251.86	GT:AD:DP:GL:GQ	0/1:29,27:55:-95.53,-16.56,-103.20:99
-chr1	3962856	rs4654567	T	C	95.03	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=3.58;MQ=59.17;MQ0=0;OQ=415.90;QD=9.24;SB=-159.46	GT:AD:DP:GL:GQ	0/1:25,20:42:-57.53,-12.66,-94.60:99
-chr1	3962899	rs4654449	G	A	419.09	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=1.09;MQ=60.00;MQ0=0;OQ=648.86;QD=14.75;SB=-335.88	GT:AD:DP:GL:GQ	0/1:22,22:42:-80.82,-12.65,-78.42:99
-chr1	3963307	rs7520607	T	C	230.94	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=3.28;MQ=58.42;MQ0=0;OQ=845.59;QD=14.58;SB=-424.34	GT:AD:DP:GL:GQ	0/1:26,32:53:-103.81,-15.97,-95.34:99
-chr1	3963607	rs4654568	T	G	463.03	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.07;MQ0=0;OQ=931.94;QD=16.64;SB=-413.80	GT:AD:DP:GL:GQ	0/1:24,32:56:-113.34,-16.87,-88.78:99
-chr1	3963626	rs12027462	C	T	248.09	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=1.66;MQ=57.57;MQ0=0;OQ=963.52;QD=17.21;SB=-429.93	GT:AD:DP:GL:GQ	0/1:26,30:55:-116.20,-16.57,-93.29:99
-chr1	3963784	rs4654451	G	A	171.09	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=1;HaplotypeScore=1.47;MQ=59.79;MQ0=0;OQ=912.02;QD=16.00;SB=-225.51	GT:AD:DP:GL:GQ	0/1:28,28:53:-110.46,-15.98,-78.09:99
-chr1	3964643	rs6426429	A	G	60.66	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=2;HaplotypeScore=1.27;MQ=59.56;MQ0=0;OQ=582.81;QD=11.00;SB=-285.59	GT:AD:DP:GL:GQ	0/1:28,25:51:-76.94,-15.38,-106.26:99
-chr1	3965132	rs4074993	C	G	325.61	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=1;HaplotypeScore=1.87;MQ=59.28;MQ0=0;OQ=814.87;QD=14.05;SB=-345.07	GT:AD:DP:GL:GQ	0/1:34,24:55:-101.37,-16.60,-121.74:99
-chr1	3965479	rs4074994	T	C	268.09	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=1.58;MQ=52.28;MQ0=0;OQ=617.78;QD=12.36;SB=-300.36	GT:AD:DP:GL:GQ	0/1:25,25:49:-79.83,-14.77,-98.86:99
-chr1	3965536	rs57323923	T	C	0.88	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=4;HaplotypeScore=2.11;MQ=50.55;MQ0=0;OQ=424.15;QD=8.48;SB=-173.38	GT:AD:DP:GL:GQ	0/1:29,21:47:-59.86,-14.17,-115.12:99
-chr1	3965975	.	C	G	7.70	PASS	AC=1;AF=0.50;AN=2;DP=49;Dels=0.00;HRun=0;HaplotypeScore=1.94;MQ=58.67;MQ0=0;OQ=589.92;QD=12.04;SB=-25.38	GT:AD:DP:GL:GQ	0/1:32,17:46:-76.14,-13.87,-119.93:99
-chr1	3965977	.	T	C	0.69	PASS	AC=1;AF=0.50;AN=2;DP=50;Dels=0.00;HRun=2;HaplotypeScore=1.11;MQ=58.22;MQ0=0;OQ=427.57;QD=8.55;SB=-16.87	GT:AD:DP:GL:GQ	0/1:33,17:49:-60.80,-14.76,-127.29:99
-chr1	3966027	rs7414863	A	C	144.45	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.97;MQ=59.13;MQ0=0;OQ=452.26;QD=9.42;SB=-62.85	GT:AD:DP:GL:GQ	0/1:27,21:45:-62.07,-13.56,-92.65:99
-chr1	3966540	rs3935559	C	G	391.87	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.17;MQ0=0;OQ=1031.71;QD=18.42;SB=-312.99	GT:AD:DP:GL:GQ	0/1:24,32:56:-123.36,-16.90,-103.47:99
-chr1	3966816	.	G	A	1.68	PASS	AC=1;AF=0.50;AN=2;DP=69;Dels=0.00;HRun=0;HaplotypeScore=5.13;MQ=57.97;MQ0=0;OQ=1415.89;QD=20.52;SB=-484.12	GT:AD:DP:GL:GQ	0/1:24,45:61:-163.26,-18.38,-64.39:99
-chr1	3967294	rs12747294	C	T	4.07	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=8.87;MQ=56.15;MQ0=1;OQ=813.80;QD=16.95;SB=-391.14	GT:AD:DP:GL:GQ	0/1:22,26:45:-98.22,-13.56,-71.93:99
-chr1	3967372	rs6702213	C	T	194.14	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=1;HaplotypeScore=0.65;MQ=34.49;MQ0=0;OQ=718.26;QD=12.17;SB=-239.54	GT:AD:DP:GL:GQ	0/1:33,26:54:-91.39,-16.28,-98.59:99
-chr1	3967404	rs6661264	T	C	167.37	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=40.81;MQ0=0;OQ=475.36;QD=8.80;SB=-244.91	GT:AD:DP:GL:GQ	0/1:34,20:52:-66.49,-15.67,-131.05:99
-chr1	3967405	rs6675434	G	A	377.49	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=40.63;MQ0=0;OQ=533.67;QD=9.70;SB=-290.77	GT:AD:DP:GL:GQ	0/1:34,21:52:-72.31,-15.66,-122.28:99
-chr1	3967434	rs12747604	C	T	38.96	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=46.12;MQ0=0;OQ=331.44;QD=7.71;SB=-108.07	GT:AD:DP:GL:GQ	0/1:29,14:41:-48.79,-12.36,-91.55:99
-chr1	3967444	rs56081307	C	A	64.62	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=45.65;MQ0=0;OQ=391.03;QD=8.32;SB=-188.48	GT:AD:DP:GL:GQ	0/1:31,16:44:-55.64,-13.25,-103.38:99
-chr1	3967458	rs6661363	T	C	158.21	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=1.16;MQ=46.22;MQ0=0;OQ=383.22;QD=7.82;SB=-172.51	GT:AD:DP:GL:GQ	0/1:29,19:44:-54.87,-13.26,-104.62:99
-chr1	3967912	rs6675979	G	A	278.83	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=2.51;MQ=58.64;MQ0=0;OQ=1206.49;QD=19.46;SB=-623.12	GT:AD:DP:GL:GQ	0/1:25,37:60:-142.02,-18.08,-76.63:99
-chr1	3968006	rs12731145	A	G	28.60	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=1;HaplotypeScore=5.76;MQ=59.49;MQ0=0;OQ=439.53;QD=9.77;SB=-228.43	GT:AD:DP:GL:GQ	0/1:27,18:43:-60.19,-12.95,-105.51:99
-chr1	3968073	rs6426431	G	A	223.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=2.72;MQ=59.56;MQ0=0;OQ=482.88;QD=9.29;SB=-221.45	GT:AD:DP:GL:GQ	0/1:34,18:50:-66.64,-15.07,-119.13:99
-chr1	3968105	rs12744667	G	A	365.59	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=1;HaplotypeScore=1.57;MQ=59.56;MQ0=0;OQ=827.90;QD=15.62;SB=-433.93	GT:AD:DP:GL:GQ	0/1:27,26:51:-101.44,-15.36,-92.63:99
-chr1	3968106	rs55866108	A	G	217.98	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=1;HaplotypeScore=1.57;MQ=59.57;MQ0=0;OQ=738.88;QD=13.68;SB=-284.42	GT:AD:DP:GL:GQ	0/1:27,27:53:-93.14,-15.96,-108.96:99
-chr1	3968537	rs12753281	C	G	269.93	PASS	AC=1;AF=0.50;AN=2;DB;DP=83;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=58.90;MQ0=0;OQ=1244.08;QD=14.99;SB=-559.96	GT:AD:DP:GL:GQ	0/1:45,38:83:-152.72,-25.03,-193.42:99
-chr1	3968581	rs12736036	A	G	78.01	PASS	AC=1;AF=0.50;AN=2;DB;DP=82;Dels=0.00;HRun=1;HaplotypeScore=3.15;MQ=57.56;MQ0=0;OQ=949.82;QD=11.58;SB=-430.05	GT:AD:DP:GL:GQ	0/1:44,38:77:-121.46,-23.19,-177.75:99
-chr1	3968726	rs34940664	G	T	190.81	PASS	AC=1;AF=0.50;AN=2;DB;DP=97;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.33;MQ0=0;OQ=1575.63;QD=16.24;SB=-709.50	GT:AD:DP:GL:GQ	0/1:45,52:96:-189.76,-28.91,-164.22:99
-chr1	3968753	rs35749996	A	G	455.09	PASS	AC=1;AF=0.50;AN=2;DB;DP=83;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.50;MQ0=0;OQ=1487.59;QD=17.92;SB=-656.99	GT:AD:DP:GL:GQ	0/1:35,48:83:-177.04,-25.00,-145.40:99
-chr1	3968768	rs12753644	C	G	340.70	PASS	AC=1;AF=0.50;AN=2;DB;DP=90;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.54;MQ0=0;OQ=1876.77;QD=20.85;SB=-779.42	GT:AD:DP:GL:GQ	0/1:40,50:90:-218.08,-27.12,-169.27:99
-chr1	3968858	rs12045134	A	C	23.52	PASS	AC=1;AF=0.50;AN=2;DB;DP=83;Dels=0.00;HRun=0;HaplotypeScore=5.51;MQ=58.42;MQ0=0;OQ=708.96;QD=8.54;SB=-321.59	GT:AD:DP:GL:GQ	0/1:52,31:81:-98.58,-24.40,-189.89:99
-chr1	3968949	rs12047590	G	T	243.75	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=2.77;MQ=59.74;MQ0=0;OQ=980.09;QD=13.61;SB=-395.21	GT:AD:DP:GL:GQ	0/1:39,33:71:-122.68,-21.39,-124.97:99
-chr1	3969008	rs12027284	C	T	226.70	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=0.48;MQ=59.68;MQ0=0;OQ=1351.13;QD=18.77;SB=-463.00	GT:AD:DP:GL:GQ	0/1:32,40:69:-159.19,-20.80,-95.94:99
-chr1	3969221	rs12045225	A	G	0.63	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=9.56;MQ=58.22;MQ0=0;OQ=654.37;QD=13.09;SB=-95.63	GT:AD:DP:GL:GQ	0/1:21,29:44:-81.99,-13.27,-67.60:99
-chr1	3969391	rs12046014	A	G	106.22	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=3.88;MQ=58.95;MQ0=0;OQ=580.96;QD=9.37;SB=-244.16	GT:AD:DP:GL:GQ	0/1:36,26:57:-78.56,-17.18,-134.21:99
-chr1	3969440	rs12044268	T	C	521.33	SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=1;HaplotypeScore=0.93;MQ=58.87;MQ0=0;QD=12.72;SB=-263.94	GT:AD:DP:GL:GQ	0/1:19,21:40:-67.48,-12.06,-76.36:99
-chr1	3969444	rs12048464	G	T	535.50	SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=0.93;MQ=58.71;MQ0=0;QD=14.88;SB=-256.96	GT:AD:DP:GL:GQ	0/1:18,18:36:-67.68,-10.85,-54.15:99
-chr1	3969450	rs34283588	G	A	563.46	SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=32;Dels=0.00;HRun=0;HaplotypeScore=0.93;MQ=58.55;MQ0=0;QD=17.61;SB=-257.77	GT:AD:DP:GL:GQ	0/1:15,17:30:-68.67,-9.04,-41.92:99
-chr1	3969504	rs12028147	C	A	128.14	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=1;HaplotypeScore=0.99;MQ=58.50;MQ0=0;OQ=1173.33;QD=18.92;SB=-401.82	GT:AD:DP:GL:GQ	0/1:25,37:62:-139.29,-18.67,-88.93:99
-chr1	3969731	rs35514116	C	A	193.09	PASS	AC=1;AF=0.50;AN=2;DB;DP=78;Dels=0.00;HRun=1;HaplotypeScore=2.36;MQ=59.11;MQ0=0;OQ=1169.40;QD=14.99;SB=-425.64	GT:AD:DP:GL:GQ	0/1:38,39:78:-146.50,-26.28,-138.29:99
-chr1	3969738	rs35902612	G	T	87.34	PASS	AC=1;AF=0.50;AN=2;DB;DP=81;Dels=0.00;HRun=1;HaplotypeScore=3.60;MQ=59.14;MQ0=0;OQ=1314.22;QD=16.22;SB=-492.89	GT:AD:DP:GL:GQ	0/1:38,43:80:-158.80,-24.09,-135.14:99
-chr1	3969835	rs34306433	G	C	322.67	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=1.15;MQ=60.00;MQ0=0;OQ=1225.99;QD=18.03;SB=-578.33	GT:AD:DP:GL:GQ	0/1:31,36:68:-148.71,-22.83,-138.52:99
-chr1	3970192	rs34458454	T	C	115.71	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=1.73;MQ=60.00;MQ0=0;OQ=393.81;QD=8.04;SB=-222.38	GT:AD:DP:GL:GQ	0/1:28,21:43:-55.63,-12.97,-98.60:99
-chr1	3970255	rs34994381	G	A	356.92	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=60.00;MQ0=0;OQ=1045.77;QD=16.09;SB=-475.47	GT:AD:DP:GL:GQ	0/1:34,31:61:-126.25,-18.39,-98.09:99
-chr1	3970431	rs35579324	A	T	318.12	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=1.16;MQ=59.56;MQ0=0;OQ=768.67;QD=14.78;SB=-345.07	GT:AD:DP:GL:GQ	0/1:26,26:52:-95.82,-15.67,-98.48:99
-chr1	3970448	rs35474759	C	T	457.86	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.56;MQ0=0;OQ=955.78;QD=18.03;SB=-501.52	GT:AD:DP:GL:GQ	0/1:25,28:52:-114.52,-15.66,-86.38:99
-chr1	3970842	rs12049555	G	A	157.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=1.79;MQ=59.39;MQ0=0;OQ=384.99;QD=10.13;SB=-163.62	GT:AD:DP:GL:GQ	0/1:23,15:35:-52.33,-10.55,-71.59:99
-chr1	3970912	rs6664533	C	T	146.77	PASS	AC=1;AF=0.50;AN=2;DB;DP=35;Dels=0.00;HRun=0;HaplotypeScore=3.51;MQ=58.67;MQ0=0;OQ=505.76;QD=14.45;SB=-247.75	GT:AD:DP:GL:GQ	0/1:19,16:34:-64.11,-10.25,-57.21:99
-chr1	3971010	rs6664655	C	G	360.39	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=2.39;MQ=59.06;MQ0=0;OQ=1105.77;QD=14.94;SB=-455.72	GT:AD:DP:GL:GQ	0/1:42,32:74:-136.16,-22.30,-181.19:99
-chr1	3971024	rs6686502	G	A	241.40	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=2.42;MQ=59.09;MQ0=0;OQ=1058.60;QD=13.93;SB=-346.09	GT:AD:DP:GL:GQ	0/1:42,34:75:-131.76,-22.62,-128.76:99
-chr1	3971052	rs6672264	T	C	278.60	PASS	AC=1;AF=0.50;AN=2;DB;DP=81;Dels=0.00;HRun=0;HaplotypeScore=0.48;MQ=59.20;MQ0=0;OQ=887.02;QD=10.95;SB=-268.12	GT:AD:DP:GL:GQ	0/1:49,32:80:-116.09,-24.10,-192.61:99
-chr1	3971195	rs6686709	G	C	441.55	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.07;MQ0=0;OQ=533.40;QD=11.85;SB=-281.29	GT:AD:DP:GL:GQ	0/1:29,16:42:-69.28,-12.66,-112.85:99
-chr1	3971259	rs6680847	A	G	343.35	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=805.68;QD=13.21;SB=-291.63	GT:AD:DP:GL:GQ	0/1:33,28:60:-101.92,-18.07,-129.04:99
-chr1	3971430	rs6675053	T	C	59.44	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=1.78;MQ=57.14;MQ0=0;OQ=478.62;QD=6.74;SB=-133.24	GT:AD:DP:GL:GQ	0/1:48,23:70:-72.24,-21.10,-194.61:99
-chr1	3971753	.	C	A	69.39	DPFilter;Indel	AC=1;AF=0.50;AN=2;DP=60;Dels=0.00;HRun=12;HaplotypeScore=26.59;MQ=52.60;MQ0=0;QD=1.16;SB=62.22	GT:AD:DP:GL:GQ	0/1:50,10:49:-24.98,-14.76,-146.09:99
-chr1	3971766	rs12030209	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=12;HaplotypeScore=17.56;MQ=52.68;MQ0=0;OQ=817.96;QD=12.39;SB=-315.05	GT:AD:DP:GL:GQ	0/1:32,34:60:-103.15,-18.07,-109.51:99
-chr1	3972069	rs55798869	G	T	4.80	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=3;HaplotypeScore=5.71;MQ=56.04;MQ0=0;OQ=802.09;QD=13.37;SB=-418.83	GT:AD:DP:GL:GQ	0/1:32,28:52:-99.17,-15.67,-74.15:99
-chr1	3972136	rs55745368	T	C	189.98	PASS	AC=1;AF=0.50;AN=2;DB;DP=91;Dels=0.00;HRun=0;HaplotypeScore=3.37;MQ=59.03;MQ0=0;OQ=1099.26;QD=12.08;SB=-445.57	GT:AD:DP:GL:GQ	0/1:52,39:91:-140.63,-27.42,-210.68:99
-chr1	3972189	rs7414301	T	C	60.16	PASS	AC=1;AF=0.50;AN=2;DB;DP=86;Dels=0.00;HRun=0;HaplotypeScore=5.42;MQ=59.51;MQ0=0;OQ=1011.76;QD=11.76;SB=-466.68	GT:AD:DP:GL:GQ	0/1:46,40:86:-130.38,-25.92,-186.30:99
-chr1	3972623	.	A	C	192.74	PASS	AC=1;AF=0.50;AN=2;DP=80;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=59.77;MQ0=0;OQ=1230.69;QD=15.38;SB=-527.79	GT:AD:DP:GL:GQ	0/1:36,44:79:-150.15,-23.80,-134.39:99
-chr1	3972753	rs10915589	G	A	130.98	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=1;HaplotypeScore=1.16;MQ=59.30;MQ0=0;OQ=1165.16;QD=17.65;SB=-331.36	GT:AD:DP:GL:GQ	0/1:30,36:63:-138.78,-18.98,-103.29:99
-chr1	3972924	rs12023372	G	C	321.94	PASS	AC=1;AF=0.50;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.20;MQ0=0;OQ=1325.91;QD=18.94;SB=-613.61	GT:AD:DP:GL:GQ	0/1:33,37:69:-156.66,-20.79,-145.10:99
-chr1	3973210	rs12023479	G	A	281.53	PASS	AC=1;AF=0.50;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=1.63;MQ=59.70;MQ0=0;OQ=1046.55;QD=13.59;SB=-512.32	GT:AD:DP:GL:GQ	0/1:44,33:77:-131.15,-23.21,-144.02:99
-chr1	3973292	.	A	G	33.55	PASS	AC=1;AF=0.50;AN=2;DP=53;Dels=0.00;HRun=1;HaplotypeScore=1.78;MQ=55.10;MQ0=0;OQ=633.05;QD=11.94;SB=-175.56	GT:AD:DP:GL:GQ	0/1:28,25:47:-80.75,-14.16,-95.41:99
-chr1	3973506	.	G	A	176.17	PASS	AC=1;AF=0.50;AN=2;DP=69;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=59.46;MQ0=0;OQ=876.83;QD=12.71;SB=-380.14	GT:AD:DP:GL:GQ	0/1:42,27:67:-111.16,-20.19,-131.21:99
-chr1	3973875	rs4654459	T	A	52.35	PASS	AC=1;AF=0.50;AN=2;DB;DP=80;Dels=0.00;HRun=2;HaplotypeScore=2.73;MQ=58.55;MQ0=0;OQ=1176.09;QD=14.70;SB=-563.67	GT:AD:DP:GL:GQ	0/1:41,39:78:-144.39,-23.49,-149.95:99
-chr1	3973955	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=54;Dels=0.00;HRun=17;HaplotypeScore=22.03;MQ=54.06;MQ0=0;OQ=55.47;QD=1.03;SB=65.23	GT:AD:DP:GL:GQ	0/1:43,10:44:-22.08,-13.25,-133.74:88.31
-chr1	3974003	.	A	G	105.47	PASS	AC=1;AF=0.50;AN=2;DP=41;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=58.51;MQ0=0;OQ=461.72;QD=11.26;SB=-234.29	GT:AD:DP:GL:GQ	0/1:22,19:40:-61.51,-12.06,-83.11:99
-chr1	3974203	.	T	G	66.57	PASS	AC=1;AF=0.50;AN=2;DP=69;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=57.62;MQ0=0;OQ=954.85;QD=13.84;SB=-428.75	GT:AD:DP:GL:GQ	0/1:35,34:68:-119.25,-20.48,-128.89:99
-chr1	3974239	rs35998568	G	A	463.07	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=56.48;MQ0=0;OQ=1184.56;QD=17.95;SB=-510.14	GT:AD:DP:GL:GQ	0/1:31,35:66:-141.63,-19.89,-102.39:99
-chr1	3974376	rs57696600	C	T	6.14	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=4;HaplotypeScore=1.87;MQ=59.16;MQ0=0;OQ=1418.07;QD=19.70;SB=-722.06	GT:AD:DP:GL:GQ	0/1:30,42:71:-166.49,-21.40,-92.47:99
-chr1	3974614	rs4457544	A	T	403.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=86;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.50;MQ0=0;OQ=1649.20;QD=19.18;SB=-732.91	GT:AD:DP:GL:GQ	0/1:34,52:86:-194.11,-25.90,-133.63:99
-chr1	3974846	rs12025374	G	A	466.59	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.31;MQ0=0;OQ=1051.59;QD=16.43;SB=-403.40	GT:AD:DP:GL:GQ	0/1:31,33:63:-127.44,-18.99,-100.16:99
-chr1	3975091	rs12049502	T	C	199.42	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=58.55;MQ0=0;OQ=805.28;QD=16.78;SB=-288.47	GT:AD:DP:GL:GQ	0/1:19,29:47:-97.97,-14.16,-75.75:99
-chr1	3975721	rs34928897	A	G	109.87	PASS	AC=1;AF=0.50;AN=2;DB;DP=95;Dels=0.00;HRun=0;HaplotypeScore=2.98;MQ=59.19;MQ0=1;OQ=1038.58;QD=10.93;SB=-532.63	GT:AD:DP:GL:GQ	0/1:53,42:94:-135.47,-28.33,-210.33:99
-chr1	3975829	rs12060834	A	C	406.62	PASS	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.68;MQ0=0;OQ=1062.88;QD=14.56;SB=-251.81	GT:AD:DP:GL:GQ	0/1:37,36:73:-131.56,-21.98,-139.84:99
-chr1	3975904	rs12026411	G	T	347.07	PASS	AC=1;AF=0.50;AN=2;DB;DP=82;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=57.00;MQ0=0;OQ=1228.86;QD=14.99;SB=-454.51	GT:AD:DP:GL:GQ	0/1:42,40:82:-150.86,-24.69,-151.44:99
-chr1	3976117	rs12034312	C	T	244.48	PASS	AC=1;AF=0.50;AN=2;DB;DP=85;Dels=0.00;HRun=0;HaplotypeScore=1.21;MQ=60.00;MQ0=0;OQ=1562.01;QD=18.38;SB=-442.95	GT:AD:DP:GL:GQ	0/1:40,45:84:-184.80,-25.32,-123.96:99
-chr1	3976389	rs35297022	T	C	334.71	PASS	AC=1;AF=0.50;AN=2;DB;DP=69;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=962.55;QD=13.95;SB=-357.60	GT:AD:DP:GL:GQ	0/1:35,34:68:-120.03,-20.49,-141.31:99
-chr1	3976394	rs35043594	A	T	325.11	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=60.00;MQ0=0;OQ=916.45;QD=13.68;SB=-308.03	GT:AD:DP:GL:GQ	0/1:36,31:67:-115.11,-20.18,-137.00:99
-chr1	3976477	rs4641284	A	G	171.33	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=1;HaplotypeScore=1.31;MQ=58.95;MQ0=0;OQ=487.70;QD=11.08;SB=-180.60	GT:AD:DP:GL:GQ	0/1:26,18:42:-64.71,-12.65,-94.45:99
-chr1	3976506	rs34448752	C	T	57.24	PASS	AC=1;AF=0.50;AN=2;DB;DP=30;Dels=0.00;HRun=0;HaplotypeScore=2.60;MQ=56.85;MQ0=0;OQ=445.94;QD=14.86;SB=-105.62	GT:AD:DP:GL:GQ	0/1:16,14:29:-56.62,-8.74,-46.04:99
-chr1	3976567	.	C	T	0.32	PASS	AC=1;AF=0.50;AN=2;DP=12;Dels=0.00;HRun=0;HaplotypeScore=1.54;MQ=51.77;MQ0=0;OQ=226.37;QD=18.86;SB=-10.00	GT:AD:DP:GL:GQ	0/1:3,9:11:-29.24,-3.32,-8.40:50.74
-chr1	3976658	rs35326871	G	T	11.99	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.52;MQ0=0;OQ=1096.88;QD=17.41;SB=-10.00	GT:AD:DP:GL:GQ	0/1:25,38:62:-131.64,-18.67,-93.14:99
-chr1	3977151	rs10915596	T	G	1.14	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=2;HaplotypeScore=3.48;MQ=59.09;MQ0=0;OQ=756.41;QD=14.83;SB=-45.56	GT:AD:DP:GL:GQ	0/1:22,29:48:-93.38,-14.46,-82.79:99
-chr1	3977453	rs4654599	G	T	361.03	PASS	AC=1;AF=0.50;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=0.93;MQ=59.46;MQ0=0;OQ=1289.21;QD=16.74;SB=-567.82	GT:AD:DP:GL:GQ	0/1:35,42:77:-155.40,-23.19,-125.68:99
-chr1	3977541	rs4654600	T	C	61.36	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=2;HaplotypeScore=3.43;MQ=59.43;MQ0=0;OQ=838.26;QD=17.11;SB=-388.65	GT:AD:DP:GL:GQ	0/1:18,30:47:-103.58,-16.47,-75.42:99
-chr1	3977567	rs4654601	G	A	272.32	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=1.73;MQ=59.55;MQ0=0;OQ=1148.82;QD=18.83;SB=-426.81	GT:AD:DP:GL:GQ	0/1:26,35:60:-136.24,-18.08,-87.47:99
-chr1	3977950	rs4654604	T	C	322.32	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=2.77;MQ=59.65;MQ0=0;OQ=975.26;QD=14.78;SB=-339.18	GT:AD:DP:GL:GQ	0/1:28,38:65:-120.40,-19.59,-110.65:99
-chr1	3978231	rs4129099	T	C	330.29	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=0.74;MQ=60.00;MQ0=0;OQ=733.04;QD=11.64;SB=-345.90	GT:AD:DP:GL:GQ	0/1:32,31:62:-95.28,-18.69,-130.06:99
-chr1	3978308	rs4129100	G	A	317.73	PASS	AC=1;AF=0.50;AN=2;DB;DP=88;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.48;MQ0=0;OQ=1482.59;QD=16.85;SB=-689.02	GT:AD:DP:GL:GQ	0/1:42,46:86:-177.46,-25.92,-132.95:99
-chr1	3980624	rs4323679	C	T	566.66	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.60;MQ0=0;OQ=703.77;QD=12.13;SB=-349.85	GT:AD:DP:GL:GQ	0/1:35,23:57:-90.85,-17.19,-108.01:99
-chr1	3980746	rs35182639	G	A	123.92	PASS	AC=1;AF=0.50;AN=2;DB;DP=78;Dels=0.00;HRun=0;HaplotypeScore=4.13;MQ=59.70;MQ0=0;OQ=1453.16;QD=18.63;SB=-621.68	GT:AD:DP:GL:GQ	0/1:35,43:76:-171.51,-22.91,-105.10:99
-chr1	3980982	rs12747944	G	A	386.78	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=1.60;MQ=60.00;MQ0=0;OQ=715.67;QD=12.56;SB=-369.37	GT:AD:DP:GL:GQ	0/1:32,24:53:-90.82,-15.97,-105.07:99
-chr1	3981385	rs17404600	C	T	307.96	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=3.06;MQ=59.56;MQ0=0;OQ=909.30;QD=17.16;SB=-459.01	GT:AD:DP:GL:GQ	0/1:26,27:49:-108.98,-14.77,-70.07:99
-chr1	3981945	.	G	C	7.35	PASS	AC=1;AF=0.50;AN=2;DP=56;Dels=0.00;HRun=2;HaplotypeScore=2.62;MQ=59.25;MQ0=0;OQ=783.42;QD=13.99;SB=-334.02	GT:AD:DP:GL:GQ	0/1:33,23:54:-97.92,-16.29,-122.30:99
-chr1	3981947	rs10799260	C	T	127.54	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=1;HaplotypeScore=2.62;MQ=59.25;MQ0=0;OQ=721.41;QD=12.88;SB=-288.75	GT:AD:DP:GL:GQ	0/1:33,23:55:-91.99,-16.57,-116.30:99
-chr1	3982051	rs10753384	A	G	287.89	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.81;MQ=59.62;MQ0=0;OQ=891.61;QD=14.62;SB=-286.59	GT:AD:DP:GL:GQ	0/1:30,31:60:-110.52,-18.08,-117.65:99
-chr1	3982227	rs10799261	T	C	592.68	PASS	AC=1;AF=0.50;AN=2;DB;DP=69;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.67;MQ0=0;OQ=920.95;QD=13.35;SB=-433.27	GT:AD:DP:GL:GQ	0/1:35,34:67:-115.56,-20.18,-140.96:99
-chr1	3982891	rs12023925	T	C	257.35	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=1.72;MQ=59.13;MQ0=0;OQ=486.42;QD=9.18;SB=-229.40	GT:AD:DP:GL:GQ	0/1:30,23:50:-67.00,-15.07,-113.54:99
-chr1	3984164	rs7418256	T	G	46.90	PASS	AC=1;AF=0.50;AN=2;DB;DP=82;Dels=0.00;HRun=4;HaplotypeScore=1.00;MQ=59.72;MQ0=0;OQ=1495.13;QD=18.23;SB=-531.78	GT:AD:DP:GL:GQ	0/1:33,49:80:-176.89,-24.10,-113.02:99
-chr1	3984958	rs6426436	A	G	575.34	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.65;MQ0=0;OQ=842.05;QD=12.95;SB=-332.89	GT:AD:DP:GL:GQ	0/1:35,30:64:-106.77,-19.28,-141.35:99
-chr1	3985143	rs5015188	T	C	159.92	SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=1;HaplotypeScore=12.99;MQ=58.62;MQ0=0;QD=2.25;SB=-60.43	GT:AD:DP:GL:GQ	0/1:60,11:70:-40.36,-21.09,-240.05:99
-chr1	3985147	rs5015187	T	C	314.93	SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=1;HaplotypeScore=67.96;MQ=58.31;MQ0=0;QD=4.37;SB=-165.46	GT:AD:DP:GL:GQ	0/1:57,15:70:-55.86,-21.08,-223.89:99
-chr1	3985151	rs5015186	T	C	601.51	SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.01;HRun=1;HaplotypeScore=11.99;MQ=58.34;MQ0=0;QD=8.24;SB=-304.19	GT:AD:DP:GL:GQ	0/1:49,23:71:-84.52,-21.09,-190.22:99
-chr1	3985364	rs4233266	A	G	350.55	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=1.50;MQ=58.47;MQ0=0;OQ=817.82;QD=10.76;SB=-299.84	GT:AD:DP:GL:GQ	0/1:41,35:71:-106.46,-21.39,-162.85:99
-chr1	3985761	rs4654611	G	C	378.30	PASS	AC=1;AF=0.50;AN=2;DB;DP=83;Dels=0.00;HRun=0;HaplotypeScore=1.85;MQ=59.78;MQ0=0;OQ=1274.73;QD=15.36;SB=-534.37	GT:AD:DP:GL:GQ	0/1:45,38:78:-154.27,-23.51,-187.35:99
-chr1	3985811	rs4654612	C	T	99.80	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=4.68;MQ=59.17;MQ0=0;OQ=618.20;QD=11.04;SB=-273.28	GT:AD:DP:GL:GQ	0/1:30,25:47:-79.28,-14.18,-83.87:99
-chr1	3988267	rs3829818	C	G	50.86	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=2;HaplotypeScore=0.16;MQ=59.32;MQ0=0;OQ=1075.32;QD=19.55;SB=-391.87	GT:AD:DP:GL:GQ	0/1:26,29:54:-127.10,-16.29,-99.01:99
-chr1	3988626	rs34649702	A	C	437.42	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=920.32;QD=18.41;SB=-485.28	GT:AD:DP:GL:GQ	0/1:20,30:49:-110.07,-14.76,-69.08:99
-chr1	3988704	rs55889146	T	A	313.04	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=1.42;MQ=59.71;MQ0=0;OQ=1088.43;QD=16.75;SB=-492.44	GT:AD:DP:GL:GQ	0/1:29,36:65:-131.71,-19.58,-109.61:99
-chr1	3989745	rs35412083	G	A	332.59	PASS	AC=1;AF=0.50;AN=2;DB;DP=92;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=59.92;MQ0=0;OQ=1097.15;QD=11.93;SB=-405.76	GT:AD:DP:GL:GQ	0/1:55,36:89:-139.82,-26.82,-176.39:99
-chr1	3990405	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=94;Dels=0.03;HRun=18;HaplotypeScore=33.42;MQ=54.32;MQ0=1;OQ=80.49;QD=0.86;SB=90.81	GT:AD:DP:GL:GQ	0/1:76,15:73:-32.44,-21.10,-200.50:99
-chr1	3990446	rs34385055	G	A	276.71	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=1.80;MQ=58.88;MQ0=0;OQ=865.10;QD=15.73;SB=-440.45	GT:AD:DP:GL:GQ	0/1:26,29:49:-104.56,-14.77,-74.37:99
-chr1	3990572	rs10915650	T	C	322.59	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=53.91;MQ0=0;OQ=802.60;QD=15.43;SB=-363.11	GT:AD:DP:GL:GQ	0/1:19,33:50:-98.61,-15.07,-76.41:99
-chr1	3990932	rs4654614	C	T	267.85	PASS	AC=1;AF=0.50;AN=2;DB;DP=85;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.78;MQ0=0;OQ=1697.75;QD=19.97;SB=-727.98	GT:AD:DP:GL:GQ	0/1:36,49:85:-198.66,-25.60,-134.20:99
-chr1	3991939	.	G	T	133.26	Indel	AC=1;AF=0.50;AN=2;DP=31;Dels=0.03;HRun=0;HaplotypeScore=37.12;MQ=55.25;MQ0=0;QD=4.30;SB=-33.93	GT:AD:DP:GL:GQ	0/1:22,8:23:-23.24,-6.63,-47.74:99
-chr1	3992866	rs34160796	A	G	334.90	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.66;MQ0=0;OQ=483.28;QD=9.29;SB=-177.56	GT:AD:DP:GL:GQ	0/1:33,19:51:-66.97,-15.36,-129.46:99
-chr1	3993123	rs10915661	A	G	223.41	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=1;HaplotypeScore=1.93;MQ=58.90;MQ0=0;OQ=752.89;QD=12.76;SB=-356.58	GT:AD:DP:GL:GQ	0/1:32,27:57:-95.74,-17.17,-122.04:99
-chr1	3993398	rs10799273	A	G	39.64	PASS	AC=1;AF=0.50;AN=2;DB;DP=32;Dels=0.00;HRun=2;HaplotypeScore=1.05;MQ=58.69;MQ0=0;OQ=432.60;QD=13.52;SB=-183.96	GT:AD:DP:GL:GQ	0/1:16,16:30:-55.58,-9.04,-60.72:99
-chr1	3993415	rs55877711	T	C	152.20	PASS	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.00;HRun=1;HaplotypeScore=1.59;MQ=59.43;MQ0=0;OQ=474.94;QD=14.39;SB=-232.31	GT:AD:DP:GL:GQ	0/1:16,17:31:-60.12,-9.34,-57.39:99
-chr1	3993656	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=62;Dels=0.00;HRun=16;HaplotypeScore=11.17;MQ=56.96;MQ0=0;OQ=77.46;QD=1.25;SB=65.19	GT:AD:DP:GL:GQ	0/1:50,11:45:-24.60,-13.57,-123.37:99
-chr1	3994923	rs4654469	G	A	168.23	PASS	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.00;HRun=1;HaplotypeScore=0.96;MQ=59.68;MQ0=0;OQ=1491.96;QD=20.44;SB=-717.78	GT:AD:DP:GL:GQ	0/1:30,43:72:-174.18,-21.70,-94.37:99
-chr1	3995705	rs34085171	T	G	1347.57	Indel	AC=1;AF=0.50;AN=2;DB;DP=85;Dels=0.00;HRun=0;HaplotypeScore=0.82;MQ=60.38;MQ0=0;QD=15.85;SB=-684.75	GT:AD:DP:GL:GQ	0/1:40,45:84:-163.34,-25.30,-143.02:99
-chr1	3997814	.	A	G	166.71	PASS	AC=1;AF=0.50;AN=2;DP=80;Dels=0.00;HRun=0;HaplotypeScore=0.98;MQ=59.77;MQ0=0;OQ=1047.22;QD=13.09;SB=-493.22	GT:AD:DP:GL:GQ	0/1:44,36:80:-132.11,-24.10,-175.80:99
-chr1	3999521	rs7533488	A	C	424.91	PASS	AC=1;AF=0.50;AN=2;DB;DP=82;Dels=0.00;HRun=0;HaplotypeScore=1.47;MQ=59.32;MQ0=0;OQ=1161.71;QD=14.17;SB=-423.73	GT:AD:DP:GL:GQ	0/1:41,40:80:-143.55,-24.09,-150.24:99
-chr1	4000164	rs10753345	T	C	207.13	PASS	AC=1;AF=0.50;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=3.46;MQ=54.60;MQ0=3;OQ=972.02;QD=12.62;SB=-388.88	GT:AD:DP:GL:GQ	0/1:39,38:72:-122.18,-21.70,-141.20:99
-chr1	4000350	rs10915304	A	G	90.68	PASS	AC=1;AF=0.50;AN=2;DB;DP=36;Dels=0.00;HRun=1;HaplotypeScore=1.40;MQ=49.42;MQ0=0;OQ=302.07;QD=8.39;SB=-112.62	GT:AD:DP:GL:GQ	0/1:20,15:32:-43.14,-9.65,-72.05:99
-chr1	4001557	rs35079847	T	C	179.63	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=2.00;MQ=42.74;MQ0=4;OQ=737.26;QD=10.24;SB=-356.16	GT:AD:DP:GL:GQ	0/1:43,29:67:-97.19,-20.18,-162.42:99
-chr1	4002410	rs9792845	T	A	39.80	PASS	AC=1;AF=0.50;AN=2;DB;DP=88;Dels=0.00;HRun=2;HaplotypeScore=2.16;MQ=49.63;MQ0=6;OQ=1137.13;QD=12.92;SB=-561.60	GT:AD:DP:GL:GQ	0/1:48,40:80:-141.09,-24.09,-168.17:99
-chr1	4002600	.	C	T	9.93	PASS	AC=1;AF=0.50;AN=2;DP=126;Dels=0.00;HRun=0;HaplotypeScore=4.00;MQ=34.65;MQ0=18;OQ=1297.58;QD=10.30;SB=-536.53	GT:AD:DP:GL:GQ	0/1:72,54:87:-159.25,-26.21,-171.14:99
-chr1	4003027	rs7539155	C	T	270.27	PASS	AC=1;AF=0.50;AN=2;DB;DP=79;Dels=0.00;HRun=0;HaplotypeScore=2.00;MQ=49.52;MQ0=2;OQ=1241.45;QD=15.71;SB=-511.02	GT:AD:DP:GL:GQ	0/1:40,39:77:-150.62,-23.19,-144.23:99
-chr1	4003660	rs34911143	C	G	406.63	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.67;MQ0=0;OQ=1137.88;QD=19.96;SB=-593.22	GT:AD:DP:GL:GQ	0/1:26,31:56:-133.94,-16.87,-107.70:99
-chr1	4003790	.	T	C	0.57	PASS	AC=1;AF=0.50;AN=2;DP=55;Dels=0.00;HRun=1;HaplotypeScore=5.22;MQ=56.08;MQ0=0;OQ=469.98;QD=8.55;SB=-182.54	GT:AD:DP:GL:GQ	0/1:35,20:52:-65.94,-15.66,-138.69:99
-chr1	4003932	rs60522686	C	T	104.95	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=1.98;MQ=60.00;MQ0=0;OQ=1130.00;QD=21.32;SB=-533.08	GT:AD:DP:GL:GQ	0/1:20,33:53:-132.25,-15.97,-67.95:99
-chr1	4004106	rs12036981	T	A	126.81	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=2.38;MQ=56.22;MQ0=2;OQ=519.83;QD=10.19;SB=-138.13	GT:AD:DP:GL:GQ	0/1:29,21:47:-69.43,-14.17,-100.44:99
-chr1	4004617	rs12036953	A	G	190.96	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=59.43;MQ0=0;OQ=561.78;QD=8.64;SB=-245.46	GT:AD:DP:GL:GQ	0/1:41,24:63:-78.44,-18.98,-164.76:99
-chr1	4005149	rs5018354	G	T	769.64	SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=5;HaplotypeScore=8.12;MQ=53.93;MQ0=0;QD=10.84;SB=-410.03	GT:AD:DP:GL:GQ	0/1:41,30:69:-101.03,-20.78,-142.34:99
-chr1	4005155	.	A	T	709.63	Indel;SnpCluster	AC=1;AF=0.50;AN=2;DP=69;Dels=0.00;HRun=5;HaplotypeScore=11.69;MQ=54.09;MQ0=0;QD=10.28;SB=-304.00	GT:AD:DP:GL:GQ	0/1:43,26:65:-93.83,-19.58,-142.00:99
-chr1	4005156	.	A	T	576.66	Indel;SnpCluster	AC=1;AF=0.50;AN=2;DP=68;Dels=0.00;HRun=0;HaplotypeScore=13.11;MQ=54.00;MQ0=0;QD=8.48;SB=-291.97	GT:AD:DP:GL:GQ	0/1:44,24:63:-79.93,-18.98,-151.00:99
-chr1	4005449	rs34905442	A	G	30.08	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=1;HaplotypeScore=5.92;MQ=57.79;MQ0=0;OQ=842.19;QD=15.89;SB=-428.92	GT:AD:DP:GL:GQ	0/1:23,30:52:-103.18,-15.68,-83.89:99
-chr1	4010416	rs55645535	A	G	3.25	PASS	AC=1;AF=0.50;AN=2;DB;DP=31;Dels=0.00;HRun=3;HaplotypeScore=0.83;MQ=58.64;MQ0=0;OQ=504.55;QD=16.28;SB=-163.34	GT:AD:DP:GL:GQ	0/1:10,21:29:-62.49,-8.75,-36.79:99
-chr1	4012539	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=95;Dels=0.00;HRun=20;HaplotypeScore=3.78;MQ=46.27;MQ0=3;OQ=496.42;QD=5.23;SB=131.33	GT:AD:DP:GL:GQ	0/1:70,25:77:-76.14,-23.22,-185.60:99
-chr1	4012545	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=95;Dels=0.00;HRun=7;HaplotypeScore=6.81;MQ=48.30;MQ0=1;OQ=296.48;QD=3.12;SB=125.35	GT:AD:DP:GL:GQ	0/1:68,26:74:-55.23,-22.30,-199.64:99
-chr1	4015436	rs10799171	T	C	582.11	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.51;MQ0=0;OQ=1395.24;QD=29.69;SB=-603.59	GT:AD:DP:GL:GQ	1/1:0,47:45:-143.16,-13.58,-0.05:99
-chr1	4015788	rs6426377	G	C	79.87	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=4;HaplotypeScore=0.00;MQ=58.24;MQ0=0;OQ=2118.03;QD=39.96;SB=-1018.28	GT:AD:DP:GL:GQ	1/1:0,53:49:-215.40,-14.76,-0.01:99
-chr1	4016464	rs3856168	T	C	206.69	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=1.45;MQ=58.60;MQ0=0;OQ=1420.67;QD=28.41;SB=-682.89	GT:AD:DP:GL:GQ	1/1:0,50:45:-145.69,-13.57,-0.04:99
-chr1	4017003	rs4654403	T	C	46.24	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=1;HaplotypeScore=2.69;MQ=59.61;MQ0=0;OQ=1716.77;QD=29.10;SB=-823.60	GT:AD:DP:GL:GQ	1/1:0,59:55:-175.31,-16.59,-0.05:99
-chr1	4017098	rs4654404	C	T	8.35	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=1;HaplotypeScore=4.56;MQ=58.64;MQ0=0;OQ=1853.34;QD=38.61;SB=-777.68	GT:AD:DP:GL:GQ	1/1:0,48:47:-188.93,-14.16,-0.01:99
-chr1	4018431	rs4654475	T	C	39.68	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=2;HaplotypeScore=0.73;MQ=59.54;MQ0=0;OQ=1443.50;QD=28.87;SB=-682.71	GT:AD:DP:GL:GQ	1/1:0,50:46:-147.99,-13.88,-0.05:99
-chr1	4018760	rs7419106	C	G	402.81	PASS	AC=2;AF=1.00;AN=2;DB;DP=31;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.25;MQ0=0;OQ=1082.64;QD=34.92;SB=-389.10	GT:AD:DP:GL:GQ	1/1:0,31:28:-111.87,-8.45,-0.02:84.27
-chr1	4018847	rs10799175	T	C	20.86	PASS	AC=2;AF=1.00;AN=2;DB;DP=31;Dels=0.00;HRun=0;HaplotypeScore=4.16;MQ=58.50;MQ0=0;OQ=814.89;QD=26.29;SB=-376.57	GT:AD:DP:GL:GQ	1/1:1,29:28:-88.39,-10.61,-3.32:72.94
-chr1	4019483	rs10799177	G	A	473.58	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=53.36;MQ0=0;OQ=1615.08;QD=33.65;SB=-313.91	GT:AD:DP:GL:GQ	1/1:0,48:42:-165.11,-12.66,-0.02:99
-chr1	4019522	rs9792946	G	A	281.35	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=1.57;MQ=54.50;MQ0=0;OQ=2603.69;QD=38.29;SB=-1110.00	GT:AD:DP:GL:GQ	1/1:0,68:66:-263.98,-19.89,-0.02:99
-chr1	4019590	rs7418034	G	A	135.96	PASS	AC=2;AF=1.00;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=2.67;MQ=43.49;MQ0=0;OQ=1841.94;QD=30.70;SB=-845.46	GT:AD:DP:GL:GQ	1/1:0,59:50:-190.21,-17.45,-2.43:99
-chr1	4019593	rs7412152	A	C	123.30	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=2.67;MQ=42.41;MQ0=0;OQ=1763.32;QD=29.89;SB=-853.08	GT:AD:DP:GL:GQ	1/1:0,59:51:-179.93,-15.36,-0.02:99
-chr1	4019614	rs7411249	C	G	15.77	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=1;HaplotypeScore=3.88;MQ=36.55;MQ0=1;OQ=1713.38;QD=32.33;SB=-801.51	GT:AD:DP:GL:GQ	1/1:0,53:41:-174.94,-12.36,-0.02:99
-chr1	4019841	rs7412217	A	G	301.34	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=36.34;MQ0=0;OQ=1308.64;QD=29.08;SB=-633.25	GT:AD:DP:GL:GQ	1/1:0,45:37:-134.46,-11.14,-0.01:99
-chr1	4019863	rs4310408	A	G	15.48	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=2;HaplotypeScore=0.32;MQ=44.42;MQ0=0;OQ=1396.45;QD=30.36;SB=-620.23	GT:AD:DP:GL:GQ	1/1:0,46:40:-143.25,-12.05,-0.02:99
-chr1	4019987	rs10737398	C	T	456.73	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=45.86;MQ0=6;OQ=1422.85;QD=30.93;SB=-467.35	GT:AD:DP:GL:GQ	1/1:0,46:37:-145.88,-11.15,-0.01:99
-chr1	4020055	rs7411353	C	A	1052.58	Indel;SnpCluster	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=9;HaplotypeScore=6.69;MQ=42.23;MQ0=1;QD=22.40;SB=-302.56	GT:AD:DP:GL:GQ	1/1:0,47:31:-108.85,-9.34,-0.01:93.27
-chr1	4020059	.	T	A	16.07	DPFilter;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=39;Dels=0.00;HRun=4;HaplotypeScore=6.64;MQ=40.62;MQ0=1;QD=0.41;SB=14.07	GT:AD:DP:GL:GQ	0/1:27,12:17:-10.01,-5.13,-48.93:48.79
-chr1	4020065	rs6426379	G	C	834.47	SnpCluster	AC=2;AF=1.00;AN=2;DB;DP=27;Dels=0.00;HRun=1;HaplotypeScore=1.95;MQ=40.47;MQ0=0;QD=30.91;SB=-369.17	GT:AD:DP:GL:GQ	1/1:1,26:20:-87.04,-6.03,-0.01:60.20
-chr1	4020216	rs6426380	C	T	178.01	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=1;HaplotypeScore=0.98;MQ=56.52;MQ0=0;OQ=2286.70;QD=38.76;SB=-938.24	GT:AD:DP:GL:GQ	1/1:0,59:59:-232.28,-17.78,-0.03:99
-chr1	4020359	rs4233255	T	A	506.79	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=50.30;MQ0=1;OQ=1405.72;QD=30.56;SB=-629.64	GT:AD:DP:GL:GQ	1/1:0,46:40:-144.18,-12.05,-0.02:99
-chr1	4020451	rs4654476	A	G	27.72	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=1;HaplotypeScore=0.32;MQ=59.11;MQ0=0;OQ=1489.65;QD=28.65;SB=-689.96	GT:AD:DP:GL:GQ	1/1:0,52:47:-152.59,-14.18,-0.04:99
-chr1	4020454	rs4654477	T	C	48.40	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=1;HaplotypeScore=1.13;MQ=59.54;MQ0=0;OQ=1536.11;QD=30.72;SB=-613.94	GT:AD:DP:GL:GQ	1/1:0,50:48:-157.24,-14.48,-0.04:99
-chr1	4020656	rs4233256	A	C	90.34	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=2.86;MQ=59.09;MQ0=0;OQ=1344.37;QD=29.23;SB=-633.78	GT:AD:DP:GL:GQ	1/1:0,46:45:-138.07,-13.57,-0.05:99
-chr1	4020738	rs4233257	G	A	285.07	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=0.63;MQ=56.81;MQ0=0;OQ=1954.21;QD=35.53;SB=-857.02	GT:AD:DP:GL:GQ	1/1:0,55:50:-199.02,-15.06,-0.01:99
-chr1	4020758	rs4233258	T	C	590.90	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.92;MQ0=0;OQ=1509.42;QD=29.03;SB=-773.63	GT:AD:DP:GL:GQ	1/1:0,52:49:-154.57,-14.78,-0.05:99
-chr1	4020965	rs10915373	A	G	41.68	PASS	AC=2;AF=1.00;AN=2;DB;DP=66;Dels=0.00;HRun=2;HaplotypeScore=3.05;MQ=59.15;MQ0=0;OQ=2124.75;QD=32.19;SB=-981.05	GT:AD:DP:GL:GQ	1/1:0,66:61:-216.09,-18.38,-0.03:99
-chr1	4021209	rs12087801	A	G	66.82	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=1;HaplotypeScore=1.20;MQ=59.44;MQ0=0;OQ=1399.12;QD=34.12;SB=-653.32	GT:AD:DP:GL:GQ	1/1:0,41:40:-143.51,-12.05,-0.01:99
-chr1	4021244	rs7524590	A	G	21.98	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=59.56;MQ0=0;OQ=1518.93;QD=29.21;SB=-554.05	GT:AD:DP:GL:GQ	1/1:0,52:47:-155.52,-14.17,-0.04:99
-chr1	4021467	rs6426381	T	C	70.46	PASS	AC=2;AF=1.00;AN=2;DB;DP=43;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=57.82;MQ0=0;OQ=1271.75;QD=29.58;SB=-623.00	GT:AD:DP:GL:GQ	1/1:0,43:40:-130.79,-12.06,-0.03:99
-chr1	4021470	rs6665286	C	T	565.39	PASS	AC=2;AF=1.00;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.82;MQ0=0;OQ=1632.61;QD=37.97;SB=-837.35	GT:AD:DP:GL:GQ	1/1:0,43:42:-166.86,-12.66,-0.02:99
-chr1	4021576	rs10799179	C	T	140.80	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=1;HaplotypeScore=0.79;MQ=59.60;MQ0=0;OQ=2105.87;QD=36.95;SB=-1023.68	GT:AD:DP:GL:GQ	1/1:0,57:54:-214.19,-16.27,-0.02:99
-chr1	4022324	rs10799180	T	C	96.83	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=1478.38;QD=30.80;SB=-697.61	GT:AD:DP:GL:GQ	1/1:0,48:47:-151.47,-14.18,-0.04:99
-chr1	4023064	rs12044274	A	T	27.33	PASS	AC=2;AF=1.00;AN=2;DB;DP=35;Dels=0.00;HRun=1;HaplotypeScore=0.32;MQ=58.00;MQ0=0;OQ=1175.00;QD=33.57;SB=-370.25	GT:AD:DP:GL:GQ	1/1:0,34:33:-121.10,-9.94,-0.02:99
-chr1	4023346	rs12728781	C	T	64.59	PASS	AC=2;AF=1.00;AN=2;DB;DP=35;Dels=0.00;HRun=1;HaplotypeScore=1.58;MQ=58.67;MQ0=0;OQ=1081.51;QD=30.90;SB=-492.01	GT:AD:DP:GL:GQ	1/1:1,34:29:-111.75,-8.74,-0.01:87.27
-chr1	4023709	rs10915381	G	C	0.23	PASS	AC=2;AF=1.00;AN=2;DB;DP=56;Dels=0.00;HRun=3;HaplotypeScore=3.44;MQ=58.92;MQ0=0;OQ=2348.10;QD=41.93;SB=-727.93	GT:AD:DP:GL:GQ	1/1:0,56:54:-238.42,-16.28,-0.02:99
-chr1	4024015	rs6672626	C	T	663.95	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=46.30;MQ0=0;OQ=1764.84;QD=37.55;SB=-805.32	GT:AD:DP:GL:GQ	1/1:0,47:46:-180.09,-13.86,-0.02:99
-chr1	4024120	rs6672716	C	T	182.48	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=1;HaplotypeScore=0.73;MQ=36.16;MQ0=0;OQ=1966.97;QD=37.83;SB=-833.61	GT:AD:DP:GL:GQ	1/1:0,51:51:-203.16,-18.10,-2.88:99
-chr1	4024270	.	T	A	112.05	Indel	AC=1;AF=0.50;AN=2;DP=33;Dels=0.03;HRun=0;HaplotypeScore=2.93;MQ=35.48;MQ0=0;QD=3.40;SB=-51.99	GT:AD:DP:GL:GQ	0/1:21,11:28:-22.63,-8.14,-76.45:99
-chr1	4024272	.	A	T	86.10	Indel	AC=1;AF=0.50;AN=2;DP=34;Dels=0.03;HRun=0;HaplotypeScore=5.09;MQ=34.14;MQ0=0;QD=2.53;SB=-27.82	GT:AD:DP:GL:GQ	0/1:23,10:27:-19.73,-7.83,-71.54:99
-chr1	4024295	rs6683289	T	C	432.26	Indel;SnpCluster	AC=2;AF=1.00;AN=2;DB;DP=16;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=29.00;MQ0=0;QD=27.02;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,16:16:-46.84,-4.84,-0.03:48.07
-chr1	4024297	rs6665849	G	C	696.90	Indel;SnpCluster	AC=2;AF=1.00;AN=2;DB;DP=16;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=29.00;MQ0=0;QD=43.56;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,16:16:-73.28,-4.82,-0.00:48.16
-chr1	4024305	.	T	C	154.38	Indel;SnpCluster	AC=1;AF=0.50;AN=2;DP=22;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=29.00;MQ0=0;QD=7.02;SB=-40.68	GT:AD:DP:GL:GQ	0/1:15,7:22:-25.35,-6.63,-60.61:99
-chr1	4024357	.	T	G	116.82	Indel	AC=1;AF=0.50;AN=2;DP=25;Dels=0.00;HRun=0;HaplotypeScore=1.03;MQ=28.57;MQ0=0;QD=4.67;SB=-30.96	GT:AD:DP:GL:GQ	0/1:17,8:23:-21.89,-6.93,-59.79:99
-chr1	4024403	.	G	T	1246.60	Indel	AC=2;AF=1.00;AN=2;DP=37;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=28.45;MQ0=0;QD=33.69;SB=-622.14	GT:AD:DP:GL:GQ	1/1:0,37:35:-128.26,-10.54,-0.01:99
-chr1	4024413	.	C	T	38.79	Indel;LowQual	AC=1;AF=0.50;AN=2;DP=43;Dels=0.00;HRun=0;HaplotypeScore=14.98;MQ=32.72;MQ0=0;QD=0.90;SB=-26.14	GT:AD:DP:GL:GQ	0/1:37,6:40:-19.21,-12.05,-127.12:71.63
-chr1	4024463	.	G	C	836.03	Indel	AC=1;AF=0.50;AN=2;DP=51;Dels=0.00;HRun=0;HaplotypeScore=5.63;MQ=36.44;MQ0=0;QD=16.39;SB=-259.21	GT:AD:DP:GL:GQ	0/1:27,24:51:-102.25,-15.37,-114.08:99
-chr1	4024467	.	C	T	697.56	Indel	AC=1;AF=0.50;AN=2;DP=50;Dels=0.00;HRun=1;HaplotypeScore=4.47;MQ=36.57;MQ0=0;QD=13.95;SB=-194.79	GT:AD:DP:GL:GQ	0/1:28,22:49:-87.80,-14.76,-98.23:99
-chr1	4024517	rs28542205	C	G	1129.16	Indel	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=18.36;MQ=32.35;MQ0=0;QD=26.26;SB=-522.33	GT:AD:DP:GL:GQ	0/1:8,31:35:-126.75,-10.55,-27.16:99
-chr1	4024521	.	G	C	975.12	Indel	AC=1;AF=0.50;AN=2;DP=41;Dels=0.00;HRun=0;HaplotypeScore=18.89;MQ=30.36;MQ0=0;QD=23.78;SB=-491.19	GT:AD:DP:GL:GQ	0/1:9,27:35:-115.01,-14.21,-36.24:99
-chr1	4024603	.	G	C	2.26	PASS	AC=1;AF=0.50;AN=2;DP=9;Dels=0.00;HRun=0;HaplotypeScore=2.00;MQ=24.41;MQ0=0;OQ=50.98;QD=5.66;SB=-6.99	GT:AD:DP:GL:GQ	0/1:1,8:3:-9.29,-0.90,-4.69:37.89
-chr1	4024673	.	T	C	8.19	PASS	AC=2;AF=1.00;AN=2;DP=21;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=30.71;MQ0=0;OQ=656.07;QD=31.24;SB=-288.45	GT:AD:DP:GL:GQ	1/1:0,21:20:-69.20,-6.03,-0.01:60.17
-chr1	4024788	.	T	C	850.29	Indel	AC=2;AF=1.00;AN=2;DP=25;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=32.58;MQ0=0;QD=34.01;SB=-338.76	GT:AD:DP:GL:GQ	1/1:0,25:25:-88.63,-7.53,-0.01:75.20
-chr1	4024845	.	T	G	1.74	PASS	AC=1;AF=0.50;AN=2;DP=4;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=29.00;MQ0=0;OQ=68.85;QD=17.21;SB=-10.00	GT:AD:DP:GL:GQ	0/1:1,3:4:-11.37,-1.20,-3.44:22.35
-chr1	4024894	.	T	C	62.45	Indel	AC=1;AF=0.50;AN=2;DP=5;Dels=0.00;HRun=0;HaplotypeScore=7.00;MQ=29.00;MQ0=0;QD=12.49;SB=-41.94	GT:AD:DP:GL:GQ	0/1:2,3:4:-10.73,-1.20,-4.27:30.63
-chr1	4024923	.	G	A	22.24	Indel;LowQual	AC=1;AF=0.50;AN=2;DP=8;Dels=0.25;HRun=0;HaplotypeScore=23.92;MQ=29.00;MQ0=0;QD=2.78;SB=-0.97	GT:AD:DP:GL:GQ	0/1:4,2:6:-7.31,-1.81,-14.76:55.05
-chr1	4024936	.	T	G	14.90	DPFilter;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=16;Dels=0.06;HRun=0;HaplotypeScore=31.98;MQ=29.00;MQ0=0;QD=0.93;SB=4.38	GT:AD:DP:GL:GQ	0/1:12,2:8:-11.00,-6.24,-20.74:47.59
-chr1	4024944	.	C	T	21.22	DPFilter;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=17;Dels=0.00;HRun=0;HaplotypeScore=58.95;MQ=29.00;MQ0=0;QD=1.25;SB=8.05	GT:AD:DP:GL:GQ	0/1:15,2:9:-8.11,-2.71,-25.25:54.02
-chr1	4024945	.	A	T	15.01	DPFilter;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=17;Dels=0.00;HRun=0;HaplotypeScore=58.95;MQ=29.00;MQ0=0;QD=0.88;SB=8.04	GT:AD:DP:GL:GQ	0/1:13,4:9:-7.48,-2.71,-24.43:47.70
-chr1	4024946	.	C	T	97.28	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=17;Dels=0.00;HRun=0;HaplotypeScore=64.95;MQ=29.00;MQ0=0;QD=5.72;SB=8.05	GT:AD:DP:GL:GQ	0/1:13,4:11:-16.32,-3.31,-25.25:99
-chr1	4024979	.	C	T	611.81	Indel;SnpCluster	AC=2;AF=1.00;AN=2;DP=18;Dels=0.00;HRun=0;HaplotypeScore=6.71;MQ=29.00;MQ0=0;QD=33.99;SB=-293.67	GT:AD:DP:GL:GQ	1/1:0,16:16:-64.77,-4.82,-0.00:48.16
-chr1	4024982	.	T	G	173	DPFilter;Indel;SnpCluster	AC=1;AF=0.50;AN=2;DP=19;Dels=0.00;HRun=0;HaplotypeScore=11.86;MQ=29.00;MQ0=0;QD=9.11;SB=14.07	GT:AD:DP:GL:GQ	0/1:10,7:16:-25.40,-4.82,-33.30:99
-chr1	4024983	.	C	T	250.37	DPFilter;Indel;SnpCluster	AC=1;AF=0.50;AN=2;DP=19;Dels=0.00;HRun=1;HaplotypeScore=11.86;MQ=29.00;MQ0=0;QD=13.18;SB=14.06	GT:AD:DP:GL:GQ	0/1:11,8:16:-33.14,-4.82,-27.15:99
-chr1	4025014	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=20;Dels=0.00;HRun=2;HaplotypeScore=18.19;MQ=29.00;MQ0=0;OQ=197.67;QD=9.88;SB=17.08	GT:AD:DP:GL:GQ	0/1:13,7:18:-28.47,-5.42,-39.21:99
-chr1	4025033	.	G	A	0.05	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=10;Dels=0.00;HRun=0;HaplotypeScore=9.30;MQ=27.51;MQ0=1;OQ=89.74;QD=8.97;SB=2.03	GT:AD:DP:GL:GQ	0/1:5,5:9:-14.97,-2.71,-16.97:99
-chr1	4025048	.	C	T	21.22	DPFilter;Indel;LowQual	AC=1;AF=0.50;AN=2;DP=10;Dels=0.00;HRun=1;HaplotypeScore=32.62;MQ=27.51;MQ0=1;QD=2.12;SB=2.04	GT:AD:DP:GL:GQ	0/1:8,2:9:-8.11,-2.71,-25.19:54.03
-chr1	4025070	.	G	A	35.48	LowQual	AC=1;AF=0.50;AN=2;DP=4;Dels=0.00;HRun=1;HaplotypeScore=6.00;MQ=29.00;MQ0=0;QD=8.87;SB=-6.99	GT:AD:DP:GL:GQ	0/1:2,2:3:-7.73,-0.90,-3.47:25.65
-chr1	4025144	.	C	T	71.12	Indel	AC=1;AF=0.50;AN=2;DP=8;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=29.00;MQ0=0;QD=8.89;SB=-10.00	GT:AD:DP:GL:GQ	0/1:2,6:5:-11.90,-1.51,-7.69:61.87
-chr1	4025168	.	G	C	48.97	LowQual	AC=1;AF=0.50;AN=2;DP=7;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=29.00;MQ0=0;QD=7.00;SB=-10.00	GT:AD:DP:GL:GQ	0/1:2,5:4:-9.39,-1.21,-8.09:68.89
-chr1	4025186	.	C	T	0.12	PASS	AC=1;AF=0.50;AN=2;DP=4;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=29.00;MQ0=0;OQ=78.13;QD=19.53;SB=-10.00	GT:AD:DP:GL:GQ	0/1:1,3:4:-12.30,-1.20,-3.90:26.92
-chr1	4025245	.	C	T	49.25	LowQual;SnpCluster	AC=2;AF=1.00;AN=2;DP=3;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=23.68;MQ0=1;QD=16.42;SB=-10.00	GT:AD:DP:GL:GQ	1/1:1,2:2:-8.33,-0.60,-0.00:6.02
-chr1	4025247	.	G	C	137.89	SnpCluster	AC=2;AF=1.00;AN=2;DP=5;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=25.94;MQ0=1;QD=27.58;SB=-52.47	GT:AD:DP:GL:GQ	1/1:1,4:4:-17.32,-1.21,-0.00:12.04
-chr1	4025253	.	T	C	341.02	SnpCluster	AC=2;AF=1.00;AN=2;DP=13;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=26.68;MQ0=2;QD=26.23;SB=-182.78	GT:AD:DP:GL:GQ	1/1:1,12:11:-37.69,-3.31,-0.01:33.09
-chr1	4025355	.	C	T	528.21	SnpCluster	AC=2;AF=1.00;AN=2;DP=16;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=29.00;MQ0=0;QD=33.01;SB=-144.72	GT:AD:DP:GL:GQ	1/1:1,15:16:-59.68,-4.82,-3.30:15.20
-chr1	4025359	.	T	C	305.09	SnpCluster	AC=1;AF=0.50;AN=2;DP=13;Dels=0.00;HRun=0;HaplotypeScore=0.49;MQ=29.00;MQ0=0;QD=23.47;SB=-70.88	GT:AD:DP:GL:GQ	0/1:2,11:13:-37.71,-3.92,-7.64:37.23
-chr1	4025364	.	T	A	90.08	SnpCluster	AC=2;AF=1.00;AN=2;DP=5;Dels=0.00;HRun=0;HaplotypeScore=0.33;MQ=29.00;MQ0=0;QD=18.02;SB=-10.00	GT:AD:DP:GL:GQ	1/1:2,3:3:-12.50,-0.90,-0.00:9.03
-chr1	4025431	.	G	C	10.49	LowQual	AC=1;AF=0.50;AN=2;DP=1;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=29.00;MQ0=0;QD=10.49;SB=-10.00	GT:AD:DP:GL:GQ	0/1:0,1:1:-4.29,-0.30,-0.00:1.76
-chr1	4025466	.	T	C	25.23	LowQual	AC=1;AF=0.50;AN=2;DP=3;Dels=0.00;HRun=0;HaplotypeScore=2.99;MQ=29.00;MQ0=0;QD=8.41;SB=-10.00	GT:AD:DP:GL:GQ	0/1:0,2:3:-9.75,-4.24,-3.95:1.79
-chr1	4025523	.	A	C	21.19	LowQual	AC=1;AF=0.50;AN=2;DP=5;Dels=0.00;HRun=1;HaplotypeScore=4.30;MQ=29.00;MQ0=0;QD=4.24;SB=-10.00	GT:AD:DP:GL:GQ	0/1:3,2:3:-6.30,-0.90,-3.10:21.92
-chr1	4025542	.	T	C	37.83	LowQual	AC=2;AF=1.00;AN=2;DP=3;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=29.00;MQ0=0;QD=12.61;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,2:2:-7.19,-0.60,-0.00:6.02
-chr1	4025586	.	G	C	7.40	PASS	AC=1;AF=0.50;AN=2;DP=5;Dels=0.20;HRun=0;HaplotypeScore=2.25;MQ=29.00;MQ0=0;OQ=51.98;QD=10.40;SB=-10.00	GT:AD:DP:GL:GQ	0/1:1,3:3:-9.39,-0.90,-3.95:30.43
-chr1	4025618	.	C	T	7.86	PASS	AC=2;AF=1.00;AN=2;DP=7;Dels=0.00;HRun=1;HaplotypeScore=0.93;MQ=29.00;MQ0=0;OQ=87.13;QD=12.45;SB=-10.00	GT:AD:DP:GL:GQ	1/1:2,5:3:-12.20,-0.90,-0.00:9.03
-chr1	4025642	.	T	C	158.22	Indel	AC=2;AF=1.00;AN=2;DP=5;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=29.00;MQ0=0;QD=31.64;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,5:5:-19.38,-1.51,-0.00:15.05
-chr1	4025697	.	A	T	0.04	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=5;Dels=0.00;HRun=0;HaplotypeScore=4.00;MQ=29.00;MQ0=0;OQ=113.07;QD=22.61;SB=-10.00	GT:AD:DP:GL:GQ	0/1:1,4:5:-16.09,-1.51,-3.64:21.34
-chr1	4025746	.	T	G	32.28	LowQual	AC=1;AF=0.50;AN=2;DP=5;Dels=0.00;HRun=0;HaplotypeScore=3.93;MQ=23.71;MQ0=1;QD=6.46;SB=-10.00	GT:AD:DP:GL:GQ	0/1:2,2:3:-7.41,-0.90,-3.74:28.36
-chr1	4025760	.	T	C	33.23	LowQual	AC=1;AF=0.50;AN=2;DP=4;Dels=0.00;HRun=0;HaplotypeScore=3.00;MQ=26.51;MQ0=0;QD=8.31;SB=-10.00	GT:AD:DP:GL:GQ	0/1:1,2:3:-10.45,-4.14,-3.85:1.79
-chr1	4026171	.	A	T	209.87	Indel	AC=1;AF=0.50;AN=2;DP=14;Dels=0.00;HRun=0;HaplotypeScore=1.13;MQ=25.28;MQ0=0;QD=14.99;SB=-10.00	GT:AD:DP:GL:GQ	0/1:5,9:8:-26.67,-2.41,-4.00:15.91
-chr1	4026180	.	C	G	33.92	Indel;LowQual	AC=1;AF=0.50;AN=2;DP=14;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=25.28;MQ0=0;QD=2.42;SB=-10.00	GT:AD:DP:GL:GQ	0/1:9,5:9:-9.39,-2.71,-29.13:66.75
-chr1	4026184	.	C	T	21.22	LowQual	AC=1;AF=0.50;AN=2;DP=14;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=25.28;MQ0=0;QD=1.52;SB=-10.00	GT:AD:DP:GL:GQ	0/1:9,5:9:-8.11,-2.71,-25.08:54.02
-chr1	4026206	.	C	G	51.98	Indel	AC=1;AF=0.50;AN=2;DP=7;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=22.01;MQ0=1;QD=7.43;SB=-10.00	GT:AD:DP:GL:GQ	0/1:2,5:3:-9.39,-0.90,-4.15:32.44
-chr1	4026210	.	G	C	48.85	LowQual	AC=2;AF=1.00;AN=2;DP=6;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=20.61;MQ0=1;QD=8.14;SB=-10.00	GT:AD:DP:GL:GQ	1/1:1,5:2:-8.29,-0.60,-0.00:6.02
-chr1	4026326	.	G	C	28.47	Indel;LowQual	AC=1;AF=0.50;AN=2;DP=15;Dels=0.00;HRun=0;HaplotypeScore=22.92;MQ=30.24;MQ0=0;QD=1.90;SB=-27.39	GT:AD:DP:GL:GQ	0/1:8,6:9:-8.84,-2.71,-32.55:61.30
-chr1	4026330	.	C	T	15.30	Indel;LowQual	AC=1;AF=0.50;AN=2;DP=16;Dels=0.00;HRun=1;HaplotypeScore=20.94;MQ=33.42;MQ0=0;QD=0.96;SB=-6.99	GT:AD:DP:GL:GQ	0/1:14,2:11:-8.11,-3.31,-31.44:48.01
-chr1	4026341	.	A	T	151.96	Indel	AC=1;AF=0.50;AN=2;DP=21;Dels=0.00;HRun=0;HaplotypeScore=32.82;MQ=37.84;MQ0=1;QD=7.24;SB=-45.98	GT:AD:DP:GL:GQ	0/1:14,7:14:-22.70,-4.22,-31.99:99
-chr1	4026383	.	A	G	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DP=47;Dels=0.00;HRun=0;HaplotypeScore=27.11;MQ=37.86;MQ0=1;OQ=685.36;QD=14.58;SB=-116.05	GT:AD:DP:GL:GQ	1/1:7,40:26:-76.32,-7.85,-4.20:36.49
-chr1	4026434	.	C	G	29.02	DPFilter;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=36;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=38.33;MQ0=0;QD=0.81;SB=5.05	GT:AD:DP:GL:GQ	0/1:34,2:8:-8.60,-2.41,-25.63:61.85
-chr1	4026435	.	A	T	728.54	SnpCluster	AC=2;AF=1.00;AN=2;DP=36;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=38.33;MQ0=0;QD=20.24;SB=-50.99	GT:AD:DP:GL:GQ	1/1:2,34:20:-76.44,-6.02,-0.00:60.19
-chr1	4026437	.	T	A	762.24	SnpCluster	AC=2;AF=1.00;AN=2;DP=36;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=38.33;MQ0=0;QD=21.17;SB=-46.39	GT:AD:DP:GL:GQ	1/1:2,34:20:-79.81,-6.02,-0.00:60.20
-chr1	4026440	.	T	G	564.23	SnpCluster	AC=2;AF=1.00;AN=2;DP=33;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=36.87;MQ0=0;QD=17.10;SB=-10.00	GT:AD:DP:GL:GQ	1/1:2,31:17:-60.01,-5.12,-0.00:51.15
-chr1	4026444	.	C	G	41.07	LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=32;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=34.30;MQ0=1;QD=1.28;SB=-6.99	GT:AD:DP:GL:GQ	0/1:30,2:3:-8.29,-0.90,-4.25:33.44
-chr1	4026449	.	A	T	483.60	SnpCluster	AC=2;AF=1.00;AN=2;DP=29;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=34.81;MQ0=1;QD=16.68;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,29:14:-51.95,-4.22,-0.00:42.13
-chr1	4026483	.	G	A	173.76	Indel	AC=2;AF=1.00;AN=2;DP=7;Dels=0.14;HRun=0;HaplotypeScore=0.00;MQ=25.96;MQ0=0;QD=24.82;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,6:5:-20.94,-1.51,-0.00:15.05
-chr1	4026581	.	T	C	45.31	PASS	AC=2;AF=1.00;AN=2;DP=4;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=26.51;MQ0=0;OQ=56.13;QD=14.03;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,4:3:-9.11,-0.91,-0.01:9
-chr1	4026636	.	T	A	64.25	PASS	AC=2;AF=1.00;AN=2;DP=31;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=32.75;MQ0=0;OQ=1092.89;QD=35.25;SB=-113.17	GT:AD:DP:GL:GQ	1/1:0,31:29:-112.88,-8.73,-0.01:87.28
-chr1	4026761	.	T	A	283.60	PASS	AC=2;AF=1.00;AN=2;DP=28;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=39.63;MQ0=0;OQ=910.42;QD=32.51;SB=-440.82	GT:AD:DP:GL:GQ	1/1:0,28:25:-94.63,-7.53,-0.01:75.24
-chr1	4026798	.	G	C	10.99	LowQual	AC=1;AF=0.50;AN=2;DP=5;Dels=0.00;HRun=0;HaplotypeScore=12.99;MQ=22.58;MQ0=0;QD=2.20;SB=-10.00	GT:AD:DP:GL:GQ	0/1:2,3:1:-4.35,-0.30,-0.00:1.76
-chr1	4026914	.	T	C	49.44	PASS	AC=2;AF=1.00;AN=2;DP=10;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=36.57;MQ0=0;OQ=246.59;QD=24.66;SB=-150.73	GT:AD:DP:GL:GQ	1/1:0,10:9:-28.25,-2.72,-0.01:27.05
-chr1	4026927	.	A	T	206.91	PASS	AC=2;AF=1.00;AN=2;DP=21;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=36.61;MQ0=0;OQ=634.07;QD=30.19;SB=-308.12	GT:AD:DP:GL:GQ	1/1:0,21:18:-67.00,-5.42,-0.01:54.16
-chr1	4027026	.	C	T	64.95	Indel	AC=1;AF=0.50;AN=2;DP=38;Dels=0.00;HRun=0;HaplotypeScore=-0.06;MQ=32.20;MQ0=1;QD=1.71;SB=-49.74	GT:AD:DP:GL:GQ	0/1:32,6:37:-20.92,-11.15,-115.91:97.79
-chr1	4027042	.	T	C	614.97	Indel	AC=2;AF=1.00;AN=2;DP=22;Dels=0.00;HRun=0;HaplotypeScore=-0.06;MQ=29.00;MQ0=0;QD=27.95;SB=-154.73	GT:AD:DP:GL:GQ	1/1:0,22:21:-65.11,-6.34,-0.03:63.13
-chr1	4027052	.	T	C	696.49	Indel	AC=2;AF=1.00;AN=2;DP=20;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=29.00;MQ0=0;QD=34.82;SB=-114.05	GT:AD:DP:GL:GQ	1/1:0,20:20:-73.24,-6.03,-0.01:60.18
-chr1	4027210	.	G	C	19.50	Indel;LowQual	AC=1;AF=0.50;AN=2;DP=14;Dels=0.00;HRun=0;HaplotypeScore=2.99;MQ=26.88;MQ0=0;QD=1.39;SB=-27.39	GT:AD:DP:GL:GQ	0/1:12,2:10:-8.24,-3.01,-36.19:52.28
-chr1	4027332	.	C	G	36.70	PASS	AC=2;AF=1.00;AN=2;DP=45;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=36.49;MQ0=0;OQ=1976.71;QD=43.93;SB=-544.06	GT:AD:DP:GL:GQ	1/1:0,45:45:-201.27,-13.56,-0.01:99
-chr1	4027338	.	T	C	290.59	PASS	AC=2;AF=1.00;AN=2;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=36.34;MQ0=0;OQ=1625.12;QD=35.33;SB=-497.48	GT:AD:DP:GL:GQ	1/1:0,46:46:-166.11,-13.85,-0.01:99
-chr1	4027382	rs4654478	T	C	529.46	Indel	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=8.99;MQ=33.88;MQ0=0;QD=11.77;SB=-150.80	GT:AD:DP:GL:GQ	0/1:25,20:45:-69.78,-13.55,-102.60:99
-chr1	4027391	.	A	T	124.12	Indel	AC=1;AF=0.50;AN=2;DP=39;Dels=0.00;HRun=0;HaplotypeScore=1.15;MQ=29.00;MQ0=0;QD=3.18;SB=-45.98	GT:AD:DP:GL:GQ	0/1:32,7:37:-26.84,-11.14,-119.06:99
-chr1	4027395	.	T	A	21.79	Indel;LowQual	AC=1;AF=0.50;AN=2;DP=36;Dels=0.00;HRun=0;HaplotypeScore=1.31;MQ=29.00;MQ0=0;QD=0.61;SB=-10.00	GT:AD:DP:GL:GQ	0/1:32,4:36:-16.30,-10.84,-120.25:54.60
-chr1	4027428	rs4654405	C	A	54.82	PASS	AC=2;AF=1.00;AN=2;DB;DP=30;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=29.00;MQ0=0;OQ=1067.75;QD=35.59;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,30:30:-110.36,-9.03,-0.00:90.28
-chr1	4027512	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=38;Dels=0.03;HRun=0;HaplotypeScore=41.12;MQ=30.70;MQ0=0;OQ=583.71;QD=15.36;SB=-96.83	GT:AD:DP:GL:GQ	0/1:11,26:29:-70.09,-8.44,-49.32:99
-chr1	4027516	.	C	G	4.55	PASS	AC=1;AF=0.50;AN=2;DP=39;Dels=0.00;HRun=0;HaplotypeScore=2.16;MQ=30.66;MQ0=0;OQ=294.17;QD=7.54;SB=2.04	GT:AD:DP:GL:GQ	0/1:30,9:29:-41.44,-8.74,-84.22:99
-chr1	4027660	rs4654407	G	A	193.14	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=42.76;MQ0=0;OQ=2435.59;QD=39.28;SB=-760.64	GT:AD:DP:GL:GQ	1/1:0,62:62:-247.16,-18.68,-0.02:99
-chr1	4027721	rs4654408	C	T	529.60	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=43.67;MQ0=0;OQ=1726.14;QD=39.23;SB=-623.32	GT:AD:DP:GL:GQ	1/1:0,44:43:-176.21,-12.95,-0.01:99
-chr1	4027907	rs4654409	G	A	268.91	PASS	AC=2;AF=1.00;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=56.85;MQ0=0;OQ=2188.75;QD=36.48;SB=-1120.98	GT:AD:DP:GL:GQ	1/1:0,60:57:-222.49,-17.18,-0.03:99
-chr1	4028014	rs10915398	T	C	85.36	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=1;HaplotypeScore=0.99;MQ=59.65;MQ0=0;OQ=1826.56;QD=33.83;SB=-678.24	GT:AD:DP:GL:GQ	1/1:0,54:52:-186.26,-15.66,-0.02:99
-chr1	4028230	rs10753357	A	C	280.70	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=0.48;MQ=59.61;MQ0=0;OQ=1933.90;QD=32.78;SB=-901.67	GT:AD:DP:GL:GQ	1/1:0,59:56:-196.99,-16.87,-0.02:99
-chr1	4028383	rs10753358	C	A	101.29	PASS	AC=2;AF=1.00;AN=2;DB;DP=93;Dels=0.00;HRun=2;HaplotypeScore=0.96;MQ=59.50;MQ0=0;OQ=3292.23;QD=35.40;SB=-1450.96	GT:AD:DP:GL:GQ	1/1:0,93:90:-328.22,-27.11,-0.03:99
-chr1	4028555	rs10915400	C	T	609.81	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.67;MQ0=0;OQ=2231.72;QD=39.15;SB=-1113.00	GT:AD:DP:GL:GQ	1/1:0,57:57:-226.78,-17.18,-0.02:99
-chr1	4028627	rs11586513	G	A	570.71	PASS	AC=2;AF=1.00;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2205.25;QD=39.38;SB=-957.37	GT:AD:DP:GL:GQ	1/1:0,56:55:-224.12,-16.57,-0.01:99
-chr1	4029107	rs17404781	C	A	590.07	PASS	AC=2;AF=1.00;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.74;MQ0=0;OQ=2642.82;QD=36.71;SB=-848.25	GT:AD:DP:GL:GQ	1/1:0,72:72:-267.88,-21.68,-0.02:99
-chr1	4029794	rs4603097	A	G	153.18	PASS	AC=2;AF=1.00;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=0.33;MQ=60.00;MQ0=0;OQ=2799.69;QD=36.36;SB=-819.68	GT:AD:DP:GL:GQ	1/1:1,76:76:-283.57,-22.89,-0.02:99
-chr1	4030208	rs4130940	A	G	693.73	PASS	AC=2;AF=1.00;AN=2;DB;DP=87;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=3003.68;QD=34.53;SB=-1360.53	GT:AD:DP:GL:GQ	1/1:0,87:86:-303.98,-25.91,-0.03:99
-chr1	4030429	rs4130941	T	C	169.61	PASS	AC=2;AF=1.00;AN=2;DB;DP=96;Dels=0.00;HRun=0;HaplotypeScore=1.53;MQ=60.00;MQ0=0;OQ=3432.78;QD=35.76;SB=-1689.36	GT:AD:DP:GL:GQ	1/1:0,96:95:-342.28,-28.61,-0.03:99
-chr1	4030544	rs4391636	T	C	184.14	PASS	AC=2;AF=1.00;AN=2;DB;DP=84;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=2626.35;QD=31.27;SB=-1250.03	GT:AD:DP:GL:GQ	1/1:0,84:83:-266.29,-25.03,-0.07:99
-chr1	4030874	rs4262509	T	C	686.40	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.25;MQ0=0;OQ=2253.22;QD=36.34;SB=-816.67	GT:AD:DP:GL:GQ	1/1:0,62:62:-228.93,-18.68,-0.02:99
-chr1	4031041	rs4400586	C	T	220	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.73;MQ0=0;OQ=2740.70;QD=40.30;SB=-1397.85	GT:AD:DP:GL:GQ	1/1:0,68:68:-277.67,-20.48,-0.01:99
-chr1	4031109	rs7537141	A	G	223.55	PASS	AC=2;AF=1.00;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=3.17;MQ=58.69;MQ0=0;OQ=2389.72;QD=33.66;SB=-1060.09	GT:AD:DP:GL:GQ	1/1:0,70:68:-242.58,-20.48,-0.02:99
-chr1	4031170	rs7537236	A	G	284.86	PASS	AC=2;AF=1.00;AN=2;DB;DP=56;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=58.42;MQ0=0;OQ=1865.29;QD=33.31;SB=-585.57	GT:AD:DP:GL:GQ	1/1:0,56:52:-190.13,-15.66,-0.02:99
-chr1	4031176	rs7537237	A	G	151.85	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=1.85;MQ=58.47;MQ0=0;OQ=1912.22;QD=32.97;SB=-672.55	GT:AD:DP:GL:GQ	1/1:0,58:55:-194.84,-16.57,-0.03:99
-chr1	4031220	rs7532788	C	T	294.77	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.97;MQ=59.01;MQ0=0;OQ=2323.83;QD=38.10;SB=-1060.94	GT:AD:DP:GL:GQ	1/1:0,60:59:-235.99,-17.78,-0.02:99
-chr1	4031586	rs3936238	A	G	138.31	PASS	AC=2;AF=1.00;AN=2;DB;DP=71;Dels=0.00;HRun=2;HaplotypeScore=0.67;MQ=58.69;MQ0=0;OQ=2519.09;QD=35.48;SB=-1162.71	GT:AD:DP:GL:GQ	1/1:0,71:71:-255.52,-21.39,-0.03:99
-chr1	4031878	rs9628649	C	T	644.41	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.66;MQ0=0;OQ=2284.52;QD=38.72;SB=-825.09	GT:AD:DP:GL:GQ	1/1:0,59:58:-232.06,-17.48,-0.02:99
-chr1	4031986	rs9628650	G	T	130.41	PASS	AC=2;AF=1.00;AN=2;DB;DP=76;Dels=0.00;HRun=2;HaplotypeScore=0.92;MQ=59.09;MQ0=0;OQ=2689.72;QD=35.39;SB=-1301.17	GT:AD:DP:GL:GQ	1/1:0,75:74:-272.58,-22.29,-0.02:99
-chr1	4032433	rs7529548	G	C	483.28	PASS	AC=2;AF=1.00;AN=2;DB;DP=65;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.36;MQ0=0;OQ=2621.92;QD=40.34;SB=-1086.06	GT:AD:DP:GL:GQ	1/1:0,65:62:-265.80,-18.69,-0.02:99
-chr1	4032637	rs7538658	C	T	720.56	PASS	AC=2;AF=1.00;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2747.15;QD=39.25;SB=-1233.63	GT:AD:DP:GL:GQ	1/1:0,70:70:-278.33,-21.09,-0.03:99
-chr1	4032742	rs7529853	G	C	195.26	PASS	AC=2;AF=1.00;AN=2;DB;DP=70;Dels=0.01;HRun=0;HaplotypeScore=1.43;MQ=59.67;MQ0=0;OQ=2970.07;QD=42.43;SB=-1256.98	GT:AD:DP:GL:GQ	1/1:0,69:70:-300.61,-20.79,-0.02:99
-chr1	4032815	rs10157040	T	G	55.91	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=1;HaplotypeScore=1.79;MQ=60.00;MQ0=0;OQ=2073.63;QD=33.99;SB=-743.38	GT:AD:DP:GL:GQ	1/1:0,61:60:-210.97,-18.07,-0.02:99
-chr1	4032895	rs60405213	A	G	332.98	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.57;MQ0=0;OQ=1606.75;QD=29.75;SB=-645.91	GT:AD:DP:GL:GQ	1/1:0,54:50:-164.30,-15.08,-0.04:99
-chr1	4032956	rs10157057	T	C	590.98	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.21;MQ0=0;OQ=1852.28;QD=34.95;SB=-804.30	GT:AD:DP:GL:GQ	1/1:0,53:53:-188.83,-15.97,-0.02:99
-chr1	4033505	.	A	T	38.74	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=53;Dels=0.00;HRun=20;HaplotypeScore=16.08;MQ=50.01;MQ0=1;QD=0.73;SB=62.20	GT:AD:DP:GL:GQ	0/1:43,10:38:-18.61,-11.45,-119.32:71.58
-chr1	4035925	rs6686087	G	A	676.98	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.29;MQ0=0;OQ=1910.92;QD=36.06;SB=-777.68	GT:AD:DP:GL:GQ	1/1:0,53:52:-194.71,-15.68,-0.03:99
-chr1	4036210	rs7553013	A	G	89.18	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=1.91;MQ=60.00;MQ0=0;OQ=1455.02;QD=35.49;SB=-567.89	GT:AD:DP:GL:GQ	1/1:0,41:41:-149.10,-12.35,-0.01:99
-chr1	4037078	rs6671404	G	A	595.18	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=49.26;MQ0=0;OQ=2338.43;QD=39.63;SB=-1084.95	GT:AD:DP:GL:GQ	1/1:0,59:59:-237.45,-17.77,-0.02:99
-chr1	4037233	.	C	T	0.09	PASS	AC=1;AF=0.50;AN=2;DP=52;Dels=0.00;HRun=0;HaplotypeScore=10.47;MQ=23.53;MQ0=14;OQ=386.45;QD=7.43;SB=-174.70	GT:AD:DP:GL:GQ	0/1:24,28:16:-46.75,-4.82,-13.21:83.85
-chr1	4037300	rs12731949	G	A	33.47	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DB;DP=35;Dels=0.00;HRun=0;HaplotypeScore=10.93;MQ=13.10;MQ0=15;QD=0.96;SB=-6.99	GT:AD:DP:GL:GQ	0/1:26,6:3:-7.53,-0.90,-3.57:26.65
-chr1	4037316	.	A	G	19.58	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=29;Dels=0.00;HRun=0;HaplotypeScore=4.32;MQ=10.60;MQ0=15;QD=0.68;SB=-10.00	GT:AD:DP:GL:GQ	0/1:25,4:3:-6.14,-0.91,-2.76:18.51
-chr1	4037317	rs12747176	C	T	33.48	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DB;DP=28;Dels=0.00;HRun=0;HaplotypeScore=4.32;MQ=10.78;MQ0=15;QD=1.20;SB=-10.00	GT:AD:DP:GL:GQ	0/1:25,3:3:-7.53,-0.90,-3.30:23.93
-chr1	4037349	rs55974954	C	T	4.01	PASS	AC=1;AF=0.50;AN=2;DB;DP=20;Dels=0.00;HRun=0;HaplotypeScore=2.86;MQ=15.25;MQ0=10;OQ=78.13;QD=3.91;SB=-10.00	GT:AD:DP:GL:GQ	0/1:11,9:5:-12.60,-1.51,-5.79:42.85
-chr1	4037373	.	C	T	49.25	HARD_TO_VALIDATE;LowQual;SnpCluster	AC=2;AF=1.00;AN=2;DP=23;Dels=0.09;HRun=0;HaplotypeScore=5.10;MQ=12.43;MQ0=14;QD=2.14;SB=-10.00	GT:AD:DP:GL:GQ	1/1:17,4:2:-8.33,-0.60,-0.00:6.02
-chr1	4037374	rs58910132	A	G	67.17	HARD_TO_VALIDATE;SnpCluster	AC=2;AF=1.00;AN=2;DB;DP=21;Dels=0.10;HRun=0;HaplotypeScore=2.46;MQ=12.64;MQ0=13;QD=3.20;SB=-10.00	GT:AD:DP:GL:GQ	1/1:14,5:3:-10.21,-0.90,-0.00:9.03
-chr1	4037375	.	C	T	89.13	HARD_TO_VALIDATE;SnpCluster	AC=2;AF=1.00;AN=2;DP=21;Dels=0.10;HRun=0;HaplotypeScore=2.62;MQ=12.64;MQ0=13;QD=4.24;SB=-10.00	GT:AD:DP:GL:GQ	1/1:14,5:3:-12.40,-0.90,-0.00:9.03
-chr1	4037523	.	C	T	36.25	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=40;Dels=0.00;HRun=0;HaplotypeScore=8.14;MQ=8.07;MQ0=27;QD=0.91;SB=-10.00	GT:AD:DP:GL:GQ	0/1:35,5:3:-7.81,-0.90,-3.47:25.65
-chr1	4037532	.	G	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=45;Dels=0.00;HRun=0;HaplotypeScore=7.98;MQ=8.93;MQ0=30;OQ=75.12;QD=1.67;SB=-10.00	GT:AD:DP:GL:GQ	0/1:32,13:5:-12.30,-1.51,-6.19:46.86
-chr1	4037589	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=81;Dels=0.00;HRun=0;HaplotypeScore=30.55;MQ=12.67;MQ0=42;OQ=141.32;QD=1.74;SB=-10.00	GT:AD:DP:GL:GQ	0/1:62,18:18:-22.84,-5.42,-40.02:99
-chr1	4037590	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=84;Dels=0.00;HRun=0;HaplotypeScore=31.66;MQ=13.12;MQ0=42;OQ=99.34;QD=1.18;SB=-10.00	GT:AD:DP:GL:GQ	0/1:65,14:18:-18.65,-5.43,-43.06:99
-chr1	4037755	.	T	C	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=29;Dels=0.00;HRun=1;HaplotypeScore=10.80;MQ=28.57;MQ0=9;OQ=123.11;QD=4.25;SB=-10.00	GT:AD:DP:GL:GQ	0/1:16,13:15:-20.11,-4.52,-34.90:99
-chr1	4037764	.	G	A	0.03	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=38;Dels=0.00;HRun=0;HaplotypeScore=11.39;MQ=27.02;MQ0=10;OQ=406.03;QD=10.68;SB=-10.00	GT:AD:DP:GL:GQ	0/1:15,21:18:-49.31,-5.43,-18.48:99
-chr1	4037797	.	G	A	0.04	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=82;Dels=0.00;HRun=1;HaplotypeScore=2.36;MQ=25.37;MQ0=16;OQ=242.41;QD=2.96;SB=-0.99	GT:AD:DP:GL:GQ	0/1:69,13:49:-42.29,-14.76,-143.27:99
-chr1	4037813	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=95;Dels=0.00;HRun=1;HaplotypeScore=30.43;MQ=23.50;MQ0=19;OQ=796.43;QD=8.38;SB=2.04	GT:AD:DP:GL:GQ	0/1:48,46:55:-99.50,-16.57,-97.10:99
-chr1	4037822	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=126;Dels=0.00;HRun=0;HaplotypeScore=35.10;MQ=23.24;MQ0=31;OQ=606.69;QD=4.81;SB=-57.33	GT:AD:DP:GL:GQ	0/1:70,54:63:-82.95,-19.00,-147.74:99
-chr1	4037843	rs61768802	C	A	0.05	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DB;DP=180;Dels=0.00;HRun=1;HaplotypeScore=17.92;MQ=21.78;MQ0=58;OQ=417.65;QD=2.32;SB=-34.91	GT:AD:DP:GL:GQ	0/1:148,32:87:-71.25,-26.21,-246.67:99
-chr1	4037880	rs61768803	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=196;Dels=0.00;HRun=0;HaplotypeScore=29.31;MQ=22.28;MQ0=61;OQ=120.84;QD=0.62;SB=11.02	GT:AD:DP:GL:GQ	0/1:165,26:69:-36.22,-20.85,-175.88:99
-chr1	4037929	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=95;Dels=0.00;HRun=1;HaplotypeScore=2.77;MQ=21.90;MQ0=34;OQ=107.87;QD=1.14;SB=35.15	GT:AD:DP:GL:GQ	0/1:76,17:46:-27.95,-13.88,-137.64:99
-chr1	4037943	.	C	T	85.40	PASS	AC=1;AF=0.50;AN=2;DP=58;Dels=0.00;HRun=0;HaplotypeScore=2.97;MQ=21.61;MQ0=16;OQ=809.30;QD=13.95;SB=-392.58	GT:AD:DP:GL:GQ	0/1:14,44:31:-93.56,-9.34,-20.82:99
-chr1	4037953	.	T	C	0.02	FDRtranche1.00to2.00	AC=2;AF=1.00;AN=2;DP=38;Dels=0.00;HRun=3;HaplotypeScore=11.12;MQ=21.57;MQ0=12;OQ=534.72;QD=14.07;SB=-137.10	GT:AD:DP:GL:GQ	1/1:2,36:20:-60.44,-6.03,-3.38:26.46
-chr1	4037971	.	G	A	35.49	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=12;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=11.71;MQ0=7;QD=2.96;SB=-7.00	GT:AD:DP:GL:GQ	0/1:2,10:3:-7.73,-0.90,-2.97:20.65
-chr1	4038007	.	C	T	11.96	PASS	AC=2;AF=1.00;AN=2;DP=38;Dels=0.00;HRun=0;HaplotypeScore=0.48;MQ=24.37;MQ0=17;OQ=478.18;QD=12.58;SB=-0.67	GT:AD:DP:GL:GQ	1/1:9,29:15:-54.99,-4.52,-3.70:8.18
-chr1	4038085	.	G	A	6.73	PASS	AC=2;AF=1.00;AN=2;DP=73;Dels=0.00;HRun=0;HaplotypeScore=1.89;MQ=25.54;MQ0=21;OQ=1434.12;QD=19.65;SB=-222.29	GT:AD:DP:GL:GQ	1/1:0,70:37:-147.01,-11.15,-0.01:99
-chr1	4038095	.	A	C	37.18	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=78;Dels=0.00;HRun=2;HaplotypeScore=5.05;MQ=31.28;MQ0=12;QD=0.48;SB=35.10	GT:AD:DP:GL:GQ	0/1:67,11:51:-22.37,-15.37,-153.89:70.01
-chr1	4038119	rs61768805	A	G	52.49	PASS	AC=2;AF=1.00;AN=2;DB;DP=86;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=34.39;MQ0=8;OQ=2201.59;QD=25.60;SB=-880.89	GT:AD:DP:GL:GQ	1/1:0,86:64:-223.78,-19.28,-0.04:99
-chr1	4038137	.	T	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=141;Dels=0.00;HRun=1;HaplotypeScore=16.06;MQ=35.46;MQ0=14;OQ=344.80;QD=2.45;SB=-97.28	GT:AD:DP:GL:GQ	0/1:105,36:95:-66.41,-28.65,-282.14:99
-chr1	4038181	.	C	T	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=266;Dels=0.00;HRun=0;HaplotypeScore=2.36;MQ=35.03;MQ0=15;OQ=1093.66;QD=4.11;SB=-524.11	GT:AD:DP:GL:GQ	0/1:186,80:195:-171.41,-58.76,-524.00:99
-chr1	4038248	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=280;Dels=0.00;HRun=0;HaplotypeScore=30.85;MQ=29.46;MQ0=44;OQ=1065.01;QD=3.80;SB=-230.16	GT:AD:DP:GL:GQ	0/1:155,104:139:-156.85,-47.07,-312.49:99
-chr1	4038269	.	A	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=221;Dels=0.00;HRun=2;HaplotypeScore=13.90;MQ=27.15;MQ0=44;OQ=427.47;QD=1.93;SB=-154.75	GT:AD:DP:GL:GQ	0/1:158,62:110:-79.18,-33.15,-296.78:99
-chr1	4038306	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=113;Dels=0.00;HRun=0;HaplotypeScore=30.95;MQ=24.15;MQ0=24;OQ=80.75;QD=0.71;SB=17.44	GT:AD:DP:GL:GQ	0/1:88,21:54:-27.64,-16.28,-152.20:99
-chr1	4038311	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=90;Dels=0.00;HRun=0;HaplotypeScore=30.17;MQ=23.18;MQ0=20;OQ=320.40;QD=3.56;SB=-113.10	GT:AD:DP:GL:GQ	0/1:60,30:46:-49.20,-13.87,-108.56:99
-chr1	4038321	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=59;Dels=0.00;HRun=3;HaplotypeScore=15.26;MQ=23.68;MQ0=14;OQ=766.53;QD=12.99;SB=-327.28	GT:AD:DP:GL:GQ	0/1:10,49:31:-89.28,-9.34,-16.69:73.43
-chr1	4038334	.	G	A	0.03	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=53;Dels=0.00;HRun=0;HaplotypeScore=3.69;MQ=25.40;MQ0=9;OQ=78.94;QD=1.49;SB=-27.72	GT:AD:DP:GL:GQ	0/1:40,11:25:-21.55,-10.37,-63.16:99
-chr1	4038397	.	A	G	17.54	PASS	AC=1;AF=0.50;AN=2;DP=44;Dels=0.00;HRun=0;HaplotypeScore=1.28;MQ=29.53;MQ0=4;OQ=326.31;QD=7.42;SB=-58.84	GT:AD:DP:GL:GQ	0/1:24,20:28:-44.35,-8.44,-57.72:99
-chr1	4038422	rs61768806	G	A	0.05	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=18.20;MQ=33.84;MQ0=4;OQ=183.71;QD=3.40;SB=-62.31	GT:AD:DP:GL:GQ	0/1:35,13:24:-31.46,-9.80,-50.09:99
-chr1	4038450	rs9426493	G	A	0.12	PASS	AC=1;AF=0.50;AN=2;DB;DP=78;Dels=0.00;HRun=0;HaplotypeScore=7.50;MQ=40.53;MQ0=7;OQ=257.95;QD=3.31;SB=38.10	GT:AD:DP:GL:GQ	0/1:50,27:46:-42.95,-13.87,-108.04:99
-chr1	4038485	.	T	C	49.84	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=130;Dels=0.00;HRun=1;HaplotypeScore=36.99;MQ=38.79;MQ0=13;QD=0.38;SB=-42.38	GT:AD:DP:GL:GQ	0/1:107,23:79:-32.08,-23.81,-273.26:82.67
-chr1	4038495	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=136;Dels=0.00;HRun=3;HaplotypeScore=26.37;MQ=38.36;MQ0=11;OQ=110.49;QD=0.81;SB=81.70	GT:AD:DP:GL:GQ	0/1:101,35:77:-37.55,-23.22,-250.69:99
-chr1	4038559	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=142;Dels=0.00;HRun=2;HaplotypeScore=4.40;MQ=37.40;MQ0=14;OQ=181.94;QD=1.28;SB=76.72	GT:AD:DP:GL:GQ	0/1:114,27:102:-52.21,-30.74,-302.69:99
-chr1	4038595	.	T	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=71;Dels=0.00;HRun=0;HaplotypeScore=10.57;MQ=44.92;MQ0=10;OQ=118.91;QD=1.67;SB=44.58	GT:AD:DP:GL:GQ	0/1:49,22:52:-30.86,-15.68,-162.15:99
-chr1	4038920	rs12240075	G	A	506.65	PASS	AC=2;AF=1.00;AN=2;DB;DP=77;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=56.13;MQ0=0;OQ=3029.69;QD=39.35;SB=-1486.40	GT:AD:DP:GL:GQ	1/1:0,77:75:-306.57,-22.59,-0.02:99
-chr1	4039098	rs4073835	G	A	496.74	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2305.48;QD=39.08;SB=-997.03	GT:AD:DP:GL:GQ	1/1:0,59:59:-234.15,-17.78,-0.02:99
-chr1	4039791	rs4639725	C	T	236.18	PASS	AC=2;AF=1.00;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=2.86;MQ=59.67;MQ0=0;OQ=2672.94;QD=38.18;SB=-1315.36	GT:AD:DP:GL:GQ	1/1:0,70:69:-270.90,-20.79,-0.02:99
-chr1	4039890	rs4436359	C	A	272.88	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=1.38;MQ=60.00;MQ0=0;OQ=1804.54;QD=34.70;SB=-797.85	GT:AD:DP:GL:GQ	1/1:1,51:51:-184.06,-15.36,-0.02:99
-chr1	4040736	rs6684922	G	A	149.31	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=59.70;MQ0=0;OQ=2464.15;QD=39.74;SB=-984.31	GT:AD:DP:GL:GQ	1/1:0,62:61:-250.01,-18.37,-0.01:99
-chr1	4041212	rs7418376	A	G	9.41	PASS	AC=2;AF=1.00;AN=2;DB;DP=75;Dels=0.00;HRun=1;HaplotypeScore=4.36;MQ=59.69;MQ0=0;OQ=2587.00;QD=34.49;SB=-1318.64	GT:AD:DP:GL:GQ	1/1:0,75:71:-262.30,-21.38,-0.02:99
-chr1	4041774	rs6657076	T	C	524.19	PASS	AC=2;AF=1.00;AN=2;DB;DP=75;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.94;MQ0=0;OQ=2268.81;QD=30.25;SB=-1070.20	GT:AD:DP:GL:GQ	1/1:0,75:71:-230.53,-21.41,-0.06:99
-chr1	4045735	rs10915422	A	C	14.87	PASS	AC=2;AF=1.00;AN=2;DB;DP=73;Dels=0.00;HRun=2;HaplotypeScore=4.42;MQ=59.68;MQ0=0;OQ=2455.12;QD=33.63;SB=-728.83	GT:AD:DP:GL:GQ	1/1:0,73:71:-249.12,-21.38,-0.02:99
-chr1	4045888	rs10915423	A	C	727.77	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.68;MQ0=0;OQ=2031.28;QD=35.02;SB=-998.12	GT:AD:DP:GL:GQ	1/1:0,58:58:-206.73,-17.47,-0.02:99
-chr1	4046948	rs10915425	T	G	80.45	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=2;HaplotypeScore=0.58;MQ=53.47;MQ0=0;OQ=1869.59;QD=31.69;SB=-736.37	GT:AD:DP:GL:GQ	1/1:0,59:55:-190.57,-16.57,-0.02:99
-chr1	4046996	rs55774050	C	G	2240.61	Indel	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=1;HaplotypeScore=9.46;MQ=51.11;MQ0=0;QD=43.09;SB=-978.74	GT:AD:DP:GL:GQ	1/1:0,52:52:-227.66,-15.67,-0.01:99
-chr1	4047821	rs11578552	T	C	402.68	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.32;MQ0=0;OQ=2100.45;QD=30.89;SB=-846.51	GT:AD:DP:GL:GQ	1/1:0,68:66:-213.69,-19.91,-0.06:99
-chr1	4047883	rs11577344	C	T	490.32	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1935.40;QD=37.95;SB=-660.87	GT:AD:DP:GL:GQ	1/1:0,51:48:-197.13,-14.46,-0.01:99
-chr1	4049164	rs7411603	A	G	3.63	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=6.69;MQ=58.71;MQ0=0;OQ=1270.28;QD=27.03;SB=-493.17	GT:AD:DP:GL:GQ	1/1:0,47:41:-130.65,-12.36,-0.04:99
-chr1	4050387	rs10753365	G	A	99.83	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=0.92;MQ=58.61;MQ0=0;OQ=1534.51;QD=32.65;SB=-464.08	GT:AD:DP:GL:GQ	1/1:0,46:42:-157.07,-12.67,-0.03:99
-chr1	4051611	rs4548406	T	C	78.22	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.20;MQ0=0;OQ=1346.57;QD=28.65;SB=-544.85	GT:AD:DP:GL:GQ	1/1:0,47:44:-138.29,-13.28,-0.05:99
-chr1	4051999	rs12123119	C	T	624.91	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.68;MQ0=0;OQ=2169.89;QD=37.41;SB=-1044.39	GT:AD:DP:GL:GQ	1/1:0,58:55:-220.59,-16.57,-0.02:99
-chr1	4052066	rs4654410	C	T	678.96	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.24;MQ0=0;OQ=2087.99;QD=37.96;SB=-873.17	GT:AD:DP:GL:GQ	1/1:0,55:53:-212.40,-15.97,-0.02:99
-chr1	4052788	rs4481820	C	A	313.17	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=1;HaplotypeScore=0.73;MQ=58.81;MQ0=0;OQ=1188.08;QD=18.86;SB=-612.83	GT:AD:DP:GL:GQ	0/1:26,37:61:-140.47,-18.38,-73.47:99
-chr1	4052947	rs6676961	T	G	272.74	PASS	AC=1;AF=0.50;AN=2;DB;DP=89;Dels=0.00;HRun=0;HaplotypeScore=1.86;MQ=60.00;MQ0=0;OQ=1401.56;QD=15.75;SB=-713.67	GT:AD:DP:GL:GQ	0/1:39,50:87:-169.64,-26.20,-144.08:99
-chr1	4053067	rs12125719	A	G	101.01	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=58.17;MQ0=0;OQ=1483.09;QD=29.08;SB=-606.95	GT:AD:DP:GL:GQ	1/1:0,51:48:-151.94,-14.48,-0.05:99
-chr1	4053090	rs12125725	A	G	83.74	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=58.17;MQ0=0;OQ=1585.81;QD=31.09;SB=-493.18	GT:AD:DP:GL:GQ	1/1:0,51:49:-162.20,-14.77,-0.03:99
-chr1	4053122	rs12126649	T	C	176.61	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=3.71;MQ=59.24;MQ0=0;OQ=907.97;QD=14.88;SB=-331.31	GT:AD:DP:GL:GQ	0/1:25,36:59:-111.87,-17.79,-96.53:99
-chr1	4055170	rs12033210	T	C	0.60	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=2;HaplotypeScore=1.74;MQ=28.53;MQ0=2;OQ=209.19;QD=4.65;SB=-102.57	GT:AD:DP:GL:GQ	0/1:32,13:39:-35.96,-11.75,-110.64:99
-chr1	4056038	rs10799198	G	A	260.47	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=3.90;MQ=58.67;MQ0=0;OQ=782.28;QD=15.96;SB=-386.17	GT:AD:DP:GL:GQ	0/1:25,24:47:-95.68,-14.17,-75.73:99
-chr1	4057058	rs4600014	A	G	442.87	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=917.69;QD=13.70;SB=-389.30	GT:AD:DP:GL:GQ	0/1:34,33:66:-114.93,-19.88,-136.81:99
-chr1	4057633	rs4361964	G	C	120.54	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=2;HaplotypeScore=2.73;MQ=59.22;MQ0=0;OQ=837.80;QD=15.51;SB=-437.88	GT:AD:DP:GL:GQ	0/1:29,25:53:-103.04,-15.97,-126.00:99
-chr1	4057702	rs4351611	C	T	297.44	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=2.47;MQ=59.56;MQ0=0;OQ=594.05;QD=11.21;SB=-284.78	GT:AD:DP:GL:GQ	0/1:33,20:53:-78.67,-15.98,-105.42:99
-chr1	4057917	.	A	T	65.58	PASS	AC=1;AF=0.50;AN=2;DP=60;Dels=0.00;HRun=0;HaplotypeScore=0.48;MQ=59.62;MQ0=0;OQ=752.30;QD=12.54;SB=-170.72	GT:AD:DP:GL:GQ	0/1:33,27:58:-95.98,-17.47,-122.23:99
-chr1	4058815	rs10915428	G	T	369.02	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=1.66;MQ=59.39;MQ0=0;OQ=1224.65;QD=16.11;SB=-630.74	GT:AD:DP:GL:GQ	0/1:35,41:75:-148.34,-22.59,-115.71:99
-chr1	4059239	rs10799199	C	T	251.96	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=54.66;MQ0=0;OQ=1243.57;QD=18.84;SB=-304.82	GT:AD:DP:GL:GQ	0/1:29,37:64:-146.92,-19.28,-100.42:99
-chr1	4059378	.	C	T	11.57	PASS	AC=1;AF=0.50;AN=2;DP=84;Dels=0.00;HRun=3;HaplotypeScore=0.47;MQ=59.47;MQ0=0;OQ=1236.26;QD=14.72;SB=-551.55	GT:AD:DP:GL:GQ	0/1:45,38:82:-151.61,-24.70,-168.36:99
-chr1	4060338	rs10799200	T	C	170.59	PASS	AC=1;AF=0.50;AN=2;DB;DP=20;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.06;MQ0=0;OQ=152.75;QD=7.64;SB=-10.00	GT:AD:DP:GL:GQ	0/1:13,7:19:-24.28,-5.72,-48.27:99
-chr1	4064782	rs61768818	G	A	481.48	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=56.07;MQ0=0;OQ=848.15;QD=13.90;SB=-350.47	GT:AD:DP:GL:GQ	0/1:34,27:59:-105.87,-17.77,-118.54:99
-chr1	4066674	rs12032257	C	T	294.19	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=1.68;MQ=59.36;MQ0=0;OQ=916.01;QD=14.09;SB=-410.80	GT:AD:DP:GL:GQ	0/1:35,30:64:-114.18,-19.29,-113.47:99
-chr1	4067283	.	T	C	0.61	PASS	AC=1;AF=0.50;AN=2;DP=61;Dels=0.00;HRun=2;HaplotypeScore=4.39;MQ=59.62;MQ0=0;OQ=557.04;QD=9.13;SB=-241.90	GT:AD:DP:GL:GQ	0/1:35,25:58:-76.48,-17.49,-133.72:99
-chr1	4067926	rs7542313	A	G	387.57	PASS	AC=1;AF=0.50;AN=2;DB;DP=21;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=220.94;QD=10.52;SB=-100.82	GT:AD:DP:GL:GQ	0/1:11,10:19:-31.10,-5.72,-40.90:99
-chr1	4075727	.	C	T	158.87	PASS	AC=1;AF=0.50;AN=2;DP=70;Dels=0.00;HRun=0;HaplotypeScore=1.34;MQ=59.67;MQ0=0;OQ=1143.65;QD=16.34;SB=-503.75	GT:AD:DP:GL:GQ	0/1:35,35:66:-137.54,-19.89,-102.02:99
-chr1	4075966	rs6670920	T	C	606.24	PASS	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.49;MQ0=0;OQ=1104.32;QD=15.13;SB=-452.80	GT:AD:DP:GL:GQ	0/1:30,43:71:-135.11,-21.40,-121.92:99
-chr1	4077630	rs4654486	G	A	691.51	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2711.47;QD=39.87;SB=-1087.95	GT:AD:DP:GL:GQ	1/1:0,68:68:-274.75,-20.48,-0.02:99
-chr1	4078163	rs10737402	T	C	504.16	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.72;MQ0=0;OQ=530.04;QD=10.82;SB=-231.26	GT:AD:DP:GL:GQ	0/1:26,23:49:-71.06,-14.78,-100.24:99
-chr1	4080498	rs12042946	T	C	249.02	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=1;HaplotypeScore=0.32;MQ=60.30;MQ0=0;OQ=891.53;QD=12.56;SB=-237.45	GT:AD:DP:GL:GQ	0/1:37,34:69:-113.22,-20.78,-148.64:99
-chr1	4080702	rs12040805	C	T	139.94	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=58.60;MQ0=0;OQ=776.81;QD=15.54;SB=-108.61	GT:AD:DP:GL:GQ	0/1:26,24:46:-94.83,-13.87,-71.68:99
-chr1	4081256	rs10753367	T	C	35.67	PASS	AC=1;AF=0.50;AN=2;DB;DP=90;Dels=0.00;HRun=3;HaplotypeScore=2.04;MQ=59.74;MQ0=0;OQ=1167.96;QD=12.98;SB=-513.88	GT:AD:DP:GL:GQ	0/1:48,42:88:-146.59,-26.51,-188.24:99
-chr1	4081433	rs10799203	T	G	17.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=2;HaplotypeScore=0.74;MQ=59.59;MQ0=0;OQ=328.89;QD=7.15;SB=-123.86	GT:AD:DP:GL:GQ	0/1:29,17:43:-49.13,-12.95,-102.00:99
-chr1	4082645	rs4400585	G	T	491.60	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.19;MQ0=0;OQ=492.73;QD=10.71;SB=-210.53	GT:AD:DP:GL:GQ	0/1:27,19:44:-65.81,-13.26,-82.00:99
-chr1	4082866	rs10915437	A	G	75.21	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=1;HaplotypeScore=4.59;MQ=58.36;MQ0=0;OQ=891.90;QD=12.56;SB=-289.16	GT:AD:DP:GL:GQ	0/1:37,34:68:-112.97,-20.49,-138.67:99
-chr1	4083359	rs56090673	C	T	320.01	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=60.00;MQ0=0;OQ=1009.69;QD=17.11;SB=-451.46	GT:AD:DP:GL:GQ	0/1:27,32:58:-121.73,-17.48,-93.77:99
-chr1	4083978	rs7531421	A	G	116.24	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=1.15;MQ=57.42;MQ0=0;OQ=435.48;QD=7.02;SB=-215.25	GT:AD:DP:GL:GQ	0/1:41,21:60:-64.91,-18.08,-162.54:99
-chr1	4084862	rs6675734	C	T	47.52	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=5.09;MQ=59.20;MQ0=0;OQ=1105.86;QD=19.07;SB=-554.64	GT:AD:DP:GL:GQ	0/1:25,33:57:-131.05,-17.18,-82.44:99
-chr1	4084986	rs10753368	A	G	566.85	PASS	AC=1;AF=0.50;AN=2;DB;DP=85;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.78;MQ0=0;OQ=1198.41;QD=14.10;SB=-565.61	GT:AD:DP:GL:GQ	0/1:44,41:83:-148.13,-25.00,-168.94:99
-chr1	4085630	rs6679136	C	T	24.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=1;HaplotypeScore=4.32;MQ=58.42;MQ0=0;OQ=804.43;QD=14.36;SB=-252.24	GT:AD:DP:GL:GQ	0/1:29,27:53:-99.70,-15.97,-99.87:99
-chr1	4085663	rs6669476	G	A	136.10	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=2.26;MQ=57.81;MQ0=0;OQ=833.61;QD=13.89;SB=-171.20	GT:AD:DP:GL:GQ	0/1:32,27:56:-103.51,-16.87,-106.04:99
-chr1	4086169	rs6426389	C	T	138.99	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=2;HaplotypeScore=0.83;MQ=59.69;MQ0=0;OQ=1183.25;QD=19.72;SB=-609.44	GT:AD:DP:GL:GQ	0/1:26,34:60:-139.68,-18.07,-94.16:99
-chr1	4086333	rs6663976	C	G	599.30	PASS	AC=2;AF=1.00;AN=2;DB;DP=90;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.59;MQ0=0;OQ=3962.79;QD=44.03;SB=-1451.88	GT:AD:DP:GL:GQ	1/1:0,90:89:-395.28,-26.81,-0.02:99
-chr1	4087812	rs4654487	T	C	259.04	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=1.38;MQ=59.52;MQ0=0;OQ=1480.85;QD=30.85;SB=-766.73	GT:AD:DP:GL:GQ	1/1:0,48:47:-151.71,-14.17,-0.04:99
-chr1	4089403	.	G	C	16.75	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=37;Dels=0.00;HRun=1;HaplotypeScore=2.80;MQ=58.74;MQ0=0;QD=0.45;SB=53.21	GT:AD:DP:GL:GQ	0/1:27,10:26:-12.79,-7.84,-102.04:49.49
-chr1	4089489	rs7536041	T	C	90.49	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=1.37;MQ=59.19;MQ0=0;OQ=812.10;QD=15.62;SB=-146.31	GT:AD:DP:GL:GQ	0/1:23,29:51:-99.86,-15.37,-93.49:99
-chr1	4090545	rs4282783	T	G	725.47	PASS	AC=2;AF=1.00;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.65;MQ0=0;OQ=2332.11;QD=35.34;SB=-970.80	GT:AD:DP:GL:GQ	1/1:0,66:66:-236.81,-19.88,-0.02:99
-chr1	4091584	rs4654488	A	T	219.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=1;HaplotypeScore=2.30;MQ=60.00;MQ0=0;OQ=743.21;QD=16.52;SB=-370.44	GT:AD:DP:GL:GQ	0/1:20,25:44:-90.86,-13.25,-75.80:99
-chr1	4092168	rs10915441	C	G	2.97	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=4;HaplotypeScore=3.62;MQ=59.69;MQ0=0;OQ=1389.48;QD=18.78;SB=-645.48	GT:AD:DP:GL:GQ	0/1:35,39:69:-163.06,-20.83,-116.77:99
-chr1	4092567	rs10915442	A	G	394.78	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=59.42;MQ0=0;OQ=572.04;QD=14.30;SB=-311.22	GT:AD:DP:GL:GQ	0/1:18,22:39:-72.24,-11.76,-67.58:99
-chr1	4093270	rs10799206	C	G	674.75	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.42;MQ0=0;OQ=2045.47;QD=38.59;SB=-902.40	GT:AD:DP:GL:GQ	1/1:0,52:50:-208.16,-15.07,-0.02:99
-chr1	4093286	rs12409803	G	A	414.64	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=0.58;MQ=57.03;MQ0=0;OQ=773.71;QD=14.33;SB=-322.45	GT:AD:DP:GL:GQ	0/1:28,26:51:-96.03,-15.38,-79.04:99
-chr1	4093324	rs10915443	G	C	254.64	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=2.36;MQ=58.02;MQ0=0;OQ=1430.72;QD=20.15;SB=-674.45	GT:AD:DP:GL:GQ	0/1:30,40:69:-167.15,-20.79,-134.28:99
-chr1	4093733	rs6693173	A	G	464.34	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.13;MQ0=0;OQ=1381.36;QD=28.78;SB=-644.93	GT:AD:DP:GL:GQ	1/1:0,48:45:-141.76,-13.57,-0.04:99
-chr1	4094457	rs4131506	A	C	340.66	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=1.89;MQ=59.60;MQ0=0;OQ=704.94;QD=12.15;SB=-316.99	GT:AD:DP:GL:GQ	0/1:32,26:58:-91.25,-17.47,-120.43:99
-chr1	4094660	rs4131508	A	G	571.17	PASS	AC=1;AF=0.50;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.76;MQ0=0;OQ=1332.71;QD=17.31;SB=-634.89	GT:AD:DP:GL:GQ	0/1:33,44:77:-159.75,-23.19,-134.55:99
-chr1	4094683	rs4630099	A	G	443.98	PASS	AC=1;AF=0.50;AN=2;DB;DP=79;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1288.63;QD=16.31;SB=-670.63	GT:AD:DP:GL:GQ	0/1:36,43:77:-155.34,-23.19,-143.15:99
-chr1	4095397	rs10915444	T	C	1.76	PASS	AC=1;AF=0.50;AN=2;DB;DP=77;Dels=0.00;HRun=2;HaplotypeScore=8.82;MQ=58.53;MQ0=0;OQ=789.45;QD=10.25;SB=-380.13	GT:AD:DP:GL:GQ	0/1:49,28:72:-103.91,-21.68,-179.32:99
-chr1	4095558	rs35986531	G	A	271.33	PASS	AC=1;AF=0.50;AN=2;DB;DP=80;Dels=0.00;HRun=1;HaplotypeScore=1.49;MQ=56.64;MQ0=0;OQ=1336.75;QD=16.71;SB=-522.69	GT:AD:DP:GL:GQ	0/1:36,44:75:-159.55,-22.59,-133.47:99
-chr1	4095815	rs12118815	A	T	0.50	PASS	AC=1;AF=0.50;AN=2;DB;DP=90;Dels=0.00;HRun=1;HaplotypeScore=13.10;MQ=57.70;MQ0=3;OQ=1249.48;QD=13.88;SB=-570.06	GT:AD:DP:GL:GQ	0/1:44,46:80:-152.33,-24.10,-146.70:99
-chr1	4095919	.	A	T	39.64	LowQual	AC=1;AF=0.50;AN=2;DP=80;Dels=0.00;HRun=1;HaplotypeScore=1.59;MQ=51.56;MQ0=5;QD=0.50;SB=-37.91	GT:AD:DP:GL:GQ	0/1:71,9:66:-27.13,-19.88,-223.94:72.48
-chr1	4096225	.	A	G	48.26	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=71;Dels=0.00;HRun=1;HaplotypeScore=1.44;MQ=52.24;MQ0=7;QD=0.68;SB=74.28	GT:AD:DP:GL:GQ	0/1:64,7:63:-27.09,-18.98,-229.53:81.10
-chr1	4096236	.	T	G	0.06	PASS	AC=1;AF=0.50;AN=2;DP=70;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=54.07;MQ0=3;OQ=91.64;QD=1.31;SB=86.24	GT:AD:DP:GL:GQ	0/1:61,9:66:-32.33,-19.88,-208.22:99
-chr1	4096240	.	A	T	0.08	PASS	AC=1;AF=0.50;AN=2;DP=75;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=53.91;MQ0=2;OQ=161.77;QD=2.16;SB=86.29	GT:AD:DP:GL:GQ	0/1:64,11:72:-41.14,-21.68,-231.71:99
-chr1	4096257	.	A	T	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=81;Dels=0.00;HRun=1;HaplotypeScore=3.00;MQ=53.32;MQ0=2;OQ=207.48;QD=2.56;SB=92.31	GT:AD:DP:GL:GQ	0/1:68,13:79:-47.82,-23.79,-251.49:99
-chr1	4096278	.	A	G	232.76	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=87;Dels=0.00;HRun=0;HaplotypeScore=27.32;MQ=52.46;MQ0=1;QD=2.68;SB=98.35	GT:AD:DP:GL:GQ	0/1:72,15:85:-52.16,-25.60,-288.15:99
-chr1	4096286	.	G	A	106.04	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=90;Dels=0.00;HRun=1;HaplotypeScore=48.93;MQ=51.56;MQ0=1;QD=1.18;SB=98.32	GT:AD:DP:GL:GQ	0/1:78,12:85:-39.49,-25.60,-276.62:99
-chr1	4096288	rs34088827	G	A	955.67	SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=90;Dels=0.00;HRun=1;HaplotypeScore=48.46;MQ=51.26;MQ0=1;QD=10.62;SB=-379.33	GT:AD:DP:GL:GQ	0/1:57,33:88:-125.36,-26.51,-207.05:99
-chr1	4096294	.	A	T	86.31	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=89;Dels=0.00;HRun=1;HaplotypeScore=32.32;MQ=50.46;MQ0=1;QD=0.97;SB=89.30	GT:AD:DP:GL:GQ	0/1:73,16:80:-36.01,-24.10,-264.64:99
-chr1	4096606	rs28726337	A	G	0.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=95;Dels=0.00;HRun=2;HaplotypeScore=13.44;MQ=43.57;MQ0=1;OQ=262.51;QD=2.76;SB=-123.92	GT:AD:DP:GL:GQ	0/1:75,20:86:-55.44,-25.91,-287.10:99
-chr1	4096617	.	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=116;Dels=0.00;HRun=1;HaplotypeScore=34.91;MQ=42.33;MQ0=1;OQ=1160.59;QD=10.01;SB=-606.06	GT:AD:DP:GL:GQ	0/1:70,46:109:-152.17,-32.83,-258.54:99
-chr1	4096620	.	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=123;Dels=0.01;HRun=0;HaplotypeScore=30.11;MQ=42.25;MQ0=1;OQ=989.14;QD=8.04;SB=-388.23	GT:AD:DP:GL:GQ	0/1:72,50:106:-134.12,-31.93,-263.47:99
-chr1	4096638	rs28412783	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=181;Dels=0.02;HRun=0;HaplotypeScore=64.64;MQ=40.70;MQ0=1;OQ=1178.07;QD=6.51;SB=-446.63	GT:AD:DP:GL:GQ	0/1:123,47:169:-194.38,-73.29,-545.37:99
-chr1	4096655	rs61768832	A	G	321.42	DPFilter;Indel	AC=1;AF=0.50;AN=2;DB;DP=228;Dels=0.00;HRun=1;HaplotypeScore=261.82;MQ=41.93;MQ0=0;QD=1.41;SB=-157.54	GT:AD:DP:GL:GQ	0/1:199,29:224:-102.90,-67.48,-791.83:99
-chr1	4096678	.	T	G	1342.80	DPFilter;Indel	AC=1;AF=0.50;AN=2;DP=236;Dels=0.00;HRun=0;HaplotypeScore=216.99;MQ=43.01;MQ0=0;QD=5.69;SB=-512.77	GT:AD:DP:GL:GQ	0/1:166,63:218:-227.86,-90.30,-587.53:99
-chr1	4096685	.	A	G	1626.24	DPFilter;Indel	AC=1;AF=0.50;AN=2;DP=239;Dels=0.00;HRun=1;HaplotypeScore=162.66;MQ=41.97;MQ0=0;QD=6.80;SB=-808.35	GT:AD:DP:GL:GQ	0/1:167,72:225:-233.68,-67.78,-652.24:99
-chr1	4096698	.	T	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=228;Dels=0.00;HRun=0;HaplotypeScore=76.98;MQ=42.62;MQ0=0;OQ=2269.48;QD=9.95;SB=-1066.45	GT:AD:DP:GL:GQ	0/1:129,90:219:-325.16,-94.93,-493.11:99
-chr1	4096706	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=230;Dels=0.00;HRun=1;HaplotypeScore=79.95;MQ=43.15;MQ0=0;OQ=1034.27;QD=4.50;SB=-170.01	GT:AD:DP:GL:GQ	0/1:185,45:223:-173.88,-67.17,-658.24:99
-chr1	4096718	rs61768834	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=216;Dels=0.00;HRun=0;HaplotypeScore=38.48;MQ=44.61;MQ0=0;OQ=645.34;QD=2.99;SB=-265.93	GT:AD:DP:GL:GQ	0/1:168,32:157:-165.70,-97.89,-554.00:99
-chr1	4096731	.	G	A	559.62	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=179;Dels=0.00;HRun=1;HaplotypeScore=83.54;MQ=45.39;MQ0=0;QD=3.13;SB=44.95	GT:AD:DP:GL:GQ	0/1:150,29:155:-105.94,-46.69,-468.61:99
-chr1	4096732	rs61768835	A	G	2251.43	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=171;Dels=0.00;HRun=2;HaplotypeScore=115.12;MQ=45.31;MQ0=0;QD=13.17;SB=-1083.79	GT:AD:DP:GL:GQ	0/1:80,91:158:-276.04,-47.61,-312.72:99
-chr1	4096736	rs61768836	A	G	2066.81	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=169;Dels=0.02;HRun=0;HaplotypeScore=91.40;MQ=45.63;MQ0=0;QD=12.23;SB=-1029.89	GT:AD:DP:GL:GQ	0/1:85,81:160:-257.27,-47.30,-336.21:99
-chr1	4096755	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=129;Dels=0.00;HRun=1;HaplotypeScore=46.33;MQ=46.26;MQ0=0;OQ=201.55;QD=1.56;SB=65.52	GT:AD:DP:GL:GQ	0/1:112,17:113:-57.49,-34.05,-383.82:99
-chr1	4096759	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=124;Dels=0.00;HRun=0;HaplotypeScore=42.17;MQ=46.84;MQ0=0;OQ=310.94;QD=2.51;SB=-151.81	GT:AD:DP:GL:GQ	0/1:106,18:122:-71.13,-36.75,-367.88:99
-chr1	4096775	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=113;Dels=0.00;HRun=0;HaplotypeScore=30.95;MQ=47.51;MQ0=0;OQ=647.24;QD=5.73;SB=52.09	GT:AD:DP:GL:GQ	0/1:87,26:107:-100.24,-32.23,-298.38:99
-chr1	4096805	.	A	G	20.07	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=109;Dels=0.00;HRun=1;HaplotypeScore=14.94;MQ=48.07;MQ0=0;QD=0.18;SB=107.37	GT:AD:DP:GL:GQ	0/1:94,15:99:-35.11,-29.83,-355.50:52.86
-chr1	4096811	.	A	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=105;Dels=0.00;HRun=1;HaplotypeScore=14.56;MQ=47.07;MQ0=0;OQ=301.49;QD=2.87;SB=92.31	GT:AD:DP:GL:GQ	0/1:85,20:99:-63.26,-29.83,-325.00:99
-chr1	4096845	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=101;Dels=0.00;HRun=1;HaplotypeScore=27.21;MQ=46.78;MQ0=0;OQ=135.08;QD=1.34;SB=107.37	GT:AD:DP:GL:GQ	0/1:86,15:98:-46.31,-29.52,-344.47:99
-chr1	4096895	rs6702633	G	A	282.98	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=1;HaplotypeScore=1.30;MQ=48.03;MQ0=0;OQ=1209.14;QD=19.50;SB=-562.59	GT:AD:DP:GL:GQ	0/1:26,36:60:-142.27,-18.07,-91.55:99
-chr1	4097116	rs6663939	C	T	575.23	PASS	AC=1;AF=0.50;AN=2;DB;DP=78;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.70;MQ0=0;OQ=1353.52;QD=17.35;SB=-623.00	GT:AD:DP:GL:GQ	0/1:38,40:78:-162.13,-23.49,-140.27:99
-chr1	4097278	rs4408122	C	T	90.17	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=1;HaplotypeScore=3.55;MQ=60.00;MQ0=0;OQ=1285.61;QD=19.78;SB=-663.71	GT:AD:DP:GL:GQ	0/1:26,39:64:-151.13,-19.28,-94.25:99
-chr1	4097502	rs10915445	G	A	15.47	PASS	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.00;HRun=2;HaplotypeScore=4.76;MQ=58.14;MQ0=0;OQ=1551.73;QD=21.26;SB=-659.25	GT:AD:DP:GL:GQ	0/1:29,44:69:-179.24,-20.78,-91.34:99
-chr1	4097702	rs4233259	G	A	393.71	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=57.88;MQ0=0;OQ=488.96;QD=11.64;SB=-238.49	GT:AD:DP:GL:GQ	0/1:23,19:39:-63.93,-11.75,-79.38:99
-chr1	4097847	rs4233260	A	G	265.81	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=1;HaplotypeScore=0.73;MQ=58.25;MQ0=0;OQ=841.80;QD=15.31;SB=-425.02	GT:AD:DP:GL:GQ	0/1:21,34:53:-103.45,-15.98,-81.47:99
-chr1	4098460	rs4654489	C	T	575.94	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.68;MQ0=0;OQ=1233.62;QD=17.37;SB=-483.09	GT:AD:DP:GL:GQ	0/1:34,37:71:-148.05,-21.40,-108.91:99
-chr1	4098462	rs4654412	C	G	408.58	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.41;MQ0=0;OQ=1295.21;QD=18.24;SB=-423.31	GT:AD:DP:GL:GQ	0/1:36,35:70:-153.90,-21.10,-151.48:99
-chr1	4098561	rs4654490	T	C	109.69	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=5.61;MQ=59.35;MQ0=0;OQ=707.20;QD=11.05;SB=-320.12	GT:AD:DP:GL:GQ	0/1:35,29:62:-92.69,-18.69,-135.70:99
-chr1	4098636	rs4654491	A	T	298.65	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=3.55;MQ=58.32;MQ0=0;OQ=679.16;QD=12.81;SB=-348.54	GT:AD:DP:GL:GQ	0/1:28,25:51:-86.56,-15.36,-108.00:99
-chr1	4101675	rs4654492	C	T	166.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=1;HaplotypeScore=0.47;MQ=60.00;MQ0=0;OQ=985.64;QD=17.92;SB=-310.22	GT:AD:DP:GL:GQ	0/1:24,31:53:-117.81,-15.96,-85.09:99
-chr1	4102203	rs10799207	G	A	234.26	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=645.03;QD=15.36;SB=-340.37	GT:AD:DP:GL:GQ	0/1:22,20:41:-80.15,-12.36,-66.12:99
-chr1	4102678	rs7542208	A	G	473.41	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=58.58;MQ0=0;OQ=945.73;QD=14.78;SB=-439.91	GT:AD:DP:GL:GQ	0/1:26,38:62:-116.54,-18.69,-104.23:99
-chr1	4102853	rs12143662	C	T	77.17	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=2;HaplotypeScore=3.06;MQ=59.31;MQ0=0;OQ=653.08;QD=14.51;SB=-306.78	GT:AD:DP:GL:GQ	0/1:23,22:43:-81.54,-12.95,-84.16:99
-chr1	4103423	rs12096127	C	T	146.81	PASS	AC=1;AF=0.50;AN=2;DB;DP=80;Dels=0.00;HRun=3;HaplotypeScore=0.93;MQ=59.48;MQ0=0;OQ=1299.31;QD=16.24;SB=-452.94	GT:AD:DP:GL:GQ	0/1:42,38:79:-157.01,-23.79,-152.41:99
-chr1	4104350	.	G	A	39.75	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=98;Dels=0.00;HRun=0;HaplotypeScore=50.14;MQ=43.88;MQ0=0;QD=0.41;SB=41.13	GT:AD:DP:GL:GQ	0/1:55,43:59:-25.05,-17.79,-166.63:72.58
-chr1	4104372	.	C	A	158.64	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=134;Dels=0.00;HRun=1;HaplotypeScore=261.20;MQ=40.26;MQ0=0;QD=1.18;SB=50.16	GT:AD:DP:GL:GQ	0/1:118,16:102:-49.87,-30.72,-316.01:99
-chr1	4104378	.	T	C	1045.41	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=132;Dels=0.09;HRun=0;HaplotypeScore=252.28;MQ=39.40;MQ0=0;QD=7.92;SB=47.18	GT:AD:DP:GL:GQ	0/1:70,50:112:-140.05,-32.23,-268.85:99
-chr1	4104379	.	G	A	1387.27	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=131;Dels=0.09;HRun=0;HaplotypeScore=164.33;MQ=39.20;MQ0=0;QD=10.59;SB=44.10	GT:AD:DP:GL:GQ	0/1:65,54:109:-173.34,-31.33,-223.67:99
-chr1	4104399	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=192;Dels=0.00;HRun=0;HaplotypeScore=398.28;MQ=38.87;MQ0=2;OQ=296.43;QD=1.54;SB=-98.03	GT:AD:DP:GL:GQ	0/1:164,28:154:-79.31,-46.39,-472.12:99
-chr1	4104401	rs61768839	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=194;Dels=0.00;HRun=0;HaplotypeScore=419.03;MQ=39.00;MQ0=2;OQ=166.93;QD=0.86;SB=-91.09	GT:AD:DP:GL:GQ	0/1:156,37:153:-66.06,-46.09,-471.26:99
-chr1	4104420	rs56397723	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=252;Dels=0.01;HRun=1;HaplotypeScore=92.55;MQ=41.09;MQ0=3;OQ=4650.56;QD=18.45;SB=-702.42	GT:AD:DP:GL:GQ	0/1:91,159:212:-464.06,-63.56,-317.29:99
-chr1	4104448	.	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=303;Dels=0.00;HRun=1;HaplotypeScore=67.42;MQ=41.21;MQ0=8;OQ=4147.70;QD=13.69;SB=-263.14	GT:AD:DP:GL:GQ	0/1:172,131:260:-413.77,-78.32,-559.37:99
-chr1	4104453	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=303;Dels=0.00;HRun=0;HaplotypeScore=122.24;MQ=41.63;MQ0=7;OQ=1110.55;QD=3.67;SB=-37.03	GT:AD:DP:GL:GQ	0/1:232,70:246:-188.46,-74.12,-759.14:99
-chr1	4104461	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=296;Dels=0.01;HRun=1;HaplotypeScore=119.61;MQ=41.59;MQ0=7;OQ=214.27;QD=0.72;SB=-23.14	GT:AD:DP:GL:GQ	0/1:251,42:244:-97.34,-72.63,-828.00:99
-chr1	4104464	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=293;Dels=0.00;HRun=0;HaplotypeScore=47.37;MQ=41.56;MQ0=7;OQ=330.17;QD=1.13;SB=-9.81	GT:AD:DP:GL:GQ	0/1:251,41:246:-110.42,-74.12,-748.00:99
-chr1	4104493	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=213;Dels=0.00;HRun=1;HaplotypeScore=30.82;MQ=42.50;MQ0=6;OQ=2710.70;QD=12.73;SB=-739.33	GT:AD:DP:GL:GQ	0/1:93,120:174:-326.79,-52.44,-298.85:99
-chr1	4104517	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=157;Dels=0.00;HRun=0;HaplotypeScore=91.08;MQ=42.89;MQ0=5;OQ=579.51;QD=3.69;SB=-277.61	GT:AD:DP:GL:GQ	0/1:123,34:134:-101.62,-40.38,-368.83:99
-chr1	4104540	rs62641248	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=93;Dels=0.00;HRun=0;HaplotypeScore=101.41;MQ=39.74;MQ0=1;OQ=311.08;QD=3.34;SB=-25.45	GT:AD:DP:GL:GQ	0/1:75,18:80:-58.50,-24.10,-250.10:99
-chr1	4104551	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=68;Dels=0.00;HRun=0;HaplotypeScore=87.22;MQ=37.20;MQ0=4;OQ=331.14;QD=4.87;SB=-44.20	GT:AD:DP:GL:GQ	0/1:51,17:54:-52.67,-16.27,-140.50:99
-chr1	4104561	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=64;Dels=0.00;HRun=0;HaplotypeScore=32.90;MQ=39.14;MQ0=4;OQ=99.56;QD=1.56;SB=92.30	GT:AD:DP:GL:GQ	0/1:53,11:58:-30.72,-17.48,-172.38:99
-chr1	4104601	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=204;Dels=0.00;HRun=0;HaplotypeScore=38.41;MQ=39.91;MQ0=6;OQ=155.34;QD=0.76;SB=68.34	GT:AD:DP:GL:GQ	0/1:183,21:180:-73.04,-54.23,-586.07:99
-chr1	4104605	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=211;Dels=0.00;HRun=1;HaplotypeScore=39.02;MQ=40.58;MQ0=6;OQ=226.77;QD=1.07;SB=164.51	GT:AD:DP:GL:GQ	0/1:188,23:190:-83.19,-57.23,-627.45:99
-chr1	4104633	rs56023565	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=168;Dels=0.00;HRun=0;HaplotypeScore=43.28;MQ=41.56;MQ0=5;OQ=1077.06;QD=6.41;SB=128.56	GT:AD:DP:GL:GQ	0/1:117,50:150:-156.17,-45.18,-408.43:99
-chr1	4104638	rs62641251	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=155;Dels=0.00;HRun=1;HaplotypeScore=82.61;MQ=42.16;MQ0=4;OQ=1017.44;QD=6.56;SB=-202.97	GT:AD:DP:GL:GQ	0/1:99,56:128:-143.60,-38.57,-325.85:99
-chr1	4104646	rs56328141	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=133;Dels=0.05;HRun=0;HaplotypeScore=83.44;MQ=42.94;MQ0=3;OQ=598.93;QD=4.50;SB=-113.26	GT:AD:DP:GL:GQ	0/1:76,33:104:-104.27,-41.10,-292.97:99
-chr1	4104661	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=114;Dels=0.03;HRun=0;HaplotypeScore=168.88;MQ=43.79;MQ0=2;OQ=339.54;QD=2.98;SB=-7.31	GT:AD:DP:GL:GQ	0/1:92,17:99:-69.57,-32.33,-280.39:99
-chr1	4104695	rs58865682	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=107;Dels=0.00;HRun=0;HaplotypeScore=26.95;MQ=46.39;MQ0=1;OQ=148.27;QD=1.39;SB=113.35	GT:AD:DP:GL:GQ	0/1:90,17:100:-48.23,-30.12,-318.63:99
-chr1	4104698	rs59763636	A	C	13.51	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DB;DP=104;Dels=0.00;HRun=0;HaplotypeScore=26.94;MQ=46.80;MQ0=1;QD=0.13;SB=110.36	GT:AD:DP:GL:GQ	0/1:87,17:97:-33.83,-29.22,-321.32:46.15
-chr1	4104799	rs56113813	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=92;Dels=0.00;HRun=1;HaplotypeScore=110.54;MQ=45.23;MQ0=4;OQ=195.94;QD=2.13;SB=86.31	GT:AD:DP:GL:GQ	0/1:78,14:77:-46.07,-23.20,-257.99:99
-chr1	4106070	rs9426471	T	C	595.81	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.11;MQ0=0;OQ=1098.91;QD=16.16;SB=-453.97	GT:AD:DP:GL:GQ	0/1:32,36:68:-133.66,-20.48,-129.09:99
-chr1	4106148	rs9426494	C	T	344.56	PASS	AC=1;AF=0.50;AN=2;DB;DP=90;Dels=0.00;HRun=0;HaplotypeScore=1.09;MQ=60.00;MQ0=0;OQ=1566.25;QD=17.40;SB=-768.74	GT:AD:DP:GL:GQ	0/1:44,46:88:-186.42,-26.51,-142.07:99
-chr1	4107203	rs6680278	C	T	328.94	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=58.92;MQ0=0;OQ=777.87;QD=13.89;SB=-285.17	GT:AD:DP:GL:GQ	0/1:32,24:55:-97.64,-16.57,-110.93:99
-chr1	4107258	rs6672998	G	A	334.86	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=60.00;MQ0=0;OQ=520.45;QD=13.01;SB=-193.18	GT:AD:DP:GL:GQ	0/1:23,17:40:-67.38,-12.05,-82.67:99
-chr1	4107272	rs17406305	C	T	361.32	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=0.82;MQ=60.00;MQ0=0;OQ=435.04;QD=9.89;SB=-220.70	GT:AD:DP:GL:GQ	0/1:26,18:41:-59.15,-12.36,-84.72:99
-chr1	4108156	rs7528351	G	A	171.64	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=1;HaplotypeScore=0.93;MQ=60.00;MQ0=0;OQ=978.84;QD=16.88;SB=-340.32	GT:AD:DP:GL:GQ	0/1:29,29:58:-118.64,-17.47,-104.14:99
-chr1	4108402	rs7539733	C	T	327.50	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=1.99;MQ=58.92;MQ0=0;OQ=799.67;QD=15.38;SB=-336.43	GT:AD:DP:GL:GQ	0/1:24,28:47:-97.41,-14.16,-80.03:99
-chr1	4108778	rs9426495	G	A	284.61	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=3.59;MQ=59.34;MQ0=0;OQ=895.14;QD=14.21;SB=-321.33	GT:AD:DP:GL:GQ	0/1:34,29:62:-111.48,-18.68,-120.65:99
-chr1	4108797	rs9426472	G	C	415.96	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=1.20;MQ=59.27;MQ0=0;OQ=1011.60;QD=17.75;SB=-519.74	GT:AD:DP:GL:GQ	0/1:27,30:53:-120.42,-15.97,-106.06:99
-chr1	4109900	.	A	G	31.51	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=57;Dels=0.00;HRun=2;HaplotypeScore=6.53;MQ=57.95;MQ0=0;QD=0.55;SB=59.23	GT:AD:DP:GL:GQ	0/1:35,22:36:-17.29,-10.85,-119.86:64.34
-chr1	4110024	rs6690263	C	T	117.28	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=2.00;MQ=60.00;MQ0=0;OQ=1118.91;QD=21.11;SB=-400.94	GT:AD:DP:GL:GQ	0/1:20,32:53:-134.68,-19.51,-68.02:99
-chr1	4110064	rs6695126	A	G	708.48	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1770.58;QD=35.41;SB=-875.05	GT:AD:DP:GL:GQ	1/1:0,50:50:-180.66,-15.06,-0.02:99
-chr1	4110262	rs6683453	G	A	435.74	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=57.65;MQ0=0;OQ=1205.59;QD=18.27;SB=-574.05	GT:AD:DP:GL:GQ	0/1:29,37:64:-143.13,-19.28,-100.61:99
-chr1	4110315	rs9426473	G	A	464.67	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.61;MQ0=0;OQ=896.46;QD=18.68;SB=-396.93	GT:AD:DP:GL:GQ	0/1:19,29:46:-106.79,-13.86,-67.55:99
-chr1	4110338	rs9426496	A	G	430.77	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.52;MQ0=0;OQ=545.25;QD=11.36;SB=-275.98	GT:AD:DP:GL:GQ	0/1:25,23:47:-71.97,-14.16,-100.50:99
-chr1	4111600	rs12752733	G	A	194.11	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=0.82;MQ=59.12;MQ0=0;OQ=1088.74;QD=20.54;SB=-407.75	GT:AD:DP:GL:GQ	0/1:20,33:51:-127.52,-15.37,-66.14:99
-chr1	4111741	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=41;Dels=0.00;HRun=11;HaplotypeScore=4.85;MQ=55.91;MQ0=0;OQ=88.59;QD=2.16;SB=32.11	GT:AD:DP:GL:GQ	0/1:33,8:32:-21.79,-9.64,-86.81:99
-chr1	4112024	.	C	T	265.51	PASS	AC=1;AF=0.50;AN=2;DP=56;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.50;MQ0=0;OQ=941.42;QD=16.81;SB=-396.13	GT:AD:DP:GL:GQ	0/1:27,29:55:-113.99,-16.57,-97.04:99
-chr1	4112929	rs4654494	C	G	169.07	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=1;HaplotypeScore=2.42;MQ=60.00;MQ0=0;OQ=822.69;QD=13.27;SB=-341.77	GT:AD:DP:GL:GQ	0/1:34,28:54:-101.84,-16.28,-127.78:99
-chr1	4113201	rs55759139	G	A	249.56	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=1;HaplotypeScore=1.37;MQ=59.68;MQ0=0;OQ=761.01;QD=13.12;SB=-311.83	GT:AD:DP:GL:GQ	0/1:32,26:53:-95.35,-15.97,-100.34:99
-chr1	4113760	rs4498774	A	C	130.48	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=3.50;MQ=58.71;MQ0=0;OQ=628.38;QD=9.67;SB=-313.59	GT:AD:DP:GL:GQ	0/1:36,29:64:-85.41,-19.28,-138.00:99
-chr1	4114825	rs7339911	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=10;HaplotypeScore=3.32;MQ=58.55;MQ0=0;OQ=757.63;QD=12.42;SB=-183.20	GT:AD:DP:GL:GQ	0/1:36,25:59:-96.82,-17.77,-126.07:99
-chr1	4116025	rs9988443	G	A	336.18	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=0.83;MQ=59.45;MQ0=0;OQ=1567.78;QD=20.63;SB=-720.28	GT:AD:DP:GL:GQ	0/1:30,46:75:-182.67,-22.61,-94.32:99
-chr1	4116630	rs4336820	T	C	72.02	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=1;HaplotypeScore=0.26;MQ=59.52;MQ0=0;OQ=1667.19;QD=34.73;SB=-687.27	GT:AD:DP:GL:GQ	1/1:0,48:47:-170.32,-14.16,-0.01:99
-chr1	4116791	.	C	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=40;Dels=0.00;HRun=2;HaplotypeScore=12.66;MQ=58.95;MQ0=0;OQ=57.38;QD=1.43;SB=71.25	GT:AD:DP:GL:GQ	0/1:31,9:34:-19.31,-10.29,-109.30:90.22
-chr1	4117150	rs12062237	T	C	0.56	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=3;HaplotypeScore=3.14;MQ=57.94;MQ0=0;OQ=1345.47;QD=32.82;SB=-624.25	GT:AD:DP:GL:GQ	1/1:0,41:39:-138.15,-11.75,-0.02:99
-chr1	4118916	rs3890798	A	G	534.42	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.32;MQ0=0;OQ=2055.84;QD=30.23;SB=-868.59	GT:AD:DP:GL:GQ	1/1:0,68:65:-209.23,-19.60,-0.06:99
-chr1	4119595	rs6426391	A	T	243.50	PASS	AC=1;AF=0.50;AN=2;DB;DP=69;Dels=0.00;HRun=1;HaplotypeScore=1.16;MQ=59.73;MQ0=0;OQ=1272.79;QD=18.45;SB=-602.37	GT:AD:DP:GL:GQ	0/1:28,41:68:-151.04,-20.48,-104.90:99
-chr1	4119856	.	G	A	80.75	PASS	AC=1;AF=0.50;AN=2;DP=59;Dels=0.00;HRun=0;HaplotypeScore=-0.06;MQ=54.88;MQ0=1;OQ=952.98;QD=16.15;SB=-461.48	GT:AD:DP:GL:GQ	0/1:28,31:56:-115.46,-16.88,-95.51:99
-chr1	4120161	rs7549636	G	A	106.14	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=1;HaplotypeScore=3.96;MQ=59.21;MQ0=1;OQ=708.05;QD=15.39;SB=-359.50	GT:AD:DP:GL:GQ	0/1:23,23:43:-87.04,-12.95,-74.47:99
-chr1	4120271	rs6426392	T	C	252.19	PASS	AC=1;AF=0.50;AN=2;DB;DP=27;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.44;MQ0=0;OQ=208.98;QD=7.74;SB=-130.51	GT:AD:DP:GL:GQ	0/1:16,11:25:-31.72,-7.54,-55.62:99
-chr1	4121295	rs4414012	C	T	109.52	PASS	AC=1;AF=0.50;AN=2;DB;DP=15;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=243.26;QD=16.22;SB=-32.52	GT:AD:DP:GL:GQ	0/1:7,8:15:-32.13,-4.52,-23.19:99
-chr1	4121459	rs4614226	C	T	3.52	PASS	AC=1;AF=0.50;AN=2;DB;DP=28;Dels=0.00;HRun=1;HaplotypeScore=1.00;MQ=59.33;MQ0=0;OQ=708.73;QD=25.31;SB=-192.72	GT:AD:DP:GL:GQ	0/1:8,20:25:-81.69,-7.53,-15.26:77.23
-chr1	4122266	rs4654495	C	T	267.28	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.92;MQ=59.05;MQ0=0;OQ=844.66;QD=17.24;SB=-383.42	GT:AD:DP:GL:GQ	0/1:22,27:48:-102.21,-14.46,-81.80:99
-chr1	4122640	.	C	T	27.21	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=8;Dels=0.00;HRun=1;HaplotypeScore=9.85;MQ=48.82;MQ0=0;QD=3.40;SB=2.03	GT:AD:DP:GL:GQ	0/1:6,2:7:-8.11,-2.11,-18.35:60.04
-chr1	4122866	rs4654413	A	G	16.01	PASS	AC=2;AF=1.00;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=0.93;MQ=58.58;MQ0=0;OQ=1224.52;QD=28.48;SB=-81.37	GT:AD:DP:GL:GQ	1/1:0,43:41:-126.09,-12.38,-0.05:99
-chr1	4122935	rs4654414	G	A	17.67	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=53.29;MQ0=0;OQ=1666.36;QD=36.23;SB=-267.85	GT:AD:DP:GL:GQ	1/1:1,45:42:-170.23,-12.65,-0.01:99
-chr1	4123288	rs4233261	T	C	17.26	PASS	AC=2;AF=1.00;AN=2;DB;DP=69;Dels=0.00;HRun=1;HaplotypeScore=4.16;MQ=58.63;MQ0=0;OQ=2395.13;QD=34.71;SB=-1054.42	GT:AD:DP:GL:GQ	1/1:0,69:66:-243.12,-19.88,-0.02:99
-chr1	4123748	rs6679293	T	C	176.14	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=59.14;MQ0=0;OQ=1906.56;QD=31.26;SB=-831.63	GT:AD:DP:GL:GQ	1/1:0,61:59:-194.29,-17.79,-0.05:99
-chr1	4123963	rs4654496	C	T	83.64	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=1.47;MQ=60.00;MQ0=0;OQ=2067.60;QD=39.01;SB=-750.62	GT:AD:DP:GL:GQ	1/1:0,53:53:-210.36,-15.97,-0.02:99
-chr1	4124418	rs4654497	T	C	597.93	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.67;MQ0=0;OQ=1506.19;QD=30.74;SB=-582.98	GT:AD:DP:GL:GQ	1/1:0,49:47:-154.24,-14.17,-0.04:99
-chr1	4126306	rs4367764	C	T	454.46	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2115.14;QD=39.17;SB=-864.64	GT:AD:DP:GL:GQ	1/1:0,54:53:-215.11,-15.97,-0.01:99
-chr1	4127324	rs12123330	C	T	249.14	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=1048.68;QD=17.77;SB=-496.03	GT:AD:DP:GL:GQ	0/1:27,32:56:-125.03,-16.88,-80.71:99
-chr1	4127494	rs4468133	G	A	195.33	PASS	AC=1;AF=0.50;AN=2;DB;DP=70;Dels=0.00;HRun=1;HaplotypeScore=2.26;MQ=60.00;MQ0=0;OQ=1260.59;QD=18.01;SB=-425.95	GT:AD:DP:GL:GQ	0/1:31,38:68:-152.64,-23.30,-109.48:99
-chr1	4128172	rs4654498	A	G	107.28	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=1;HaplotypeScore=1.33;MQ=59.19;MQ0=0;OQ=2014.82;QD=35.35;SB=-1032.76	GT:AD:DP:GL:GQ	1/1:0,57:56:-205.08,-16.87,-0.01:99
-chr1	4128310	rs4654499	G	T	305.85	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=983.44;QD=17.88;SB=-296.34	GT:AD:DP:GL:GQ	0/1:22,33:55:-118.19,-16.56,-78.95:99
-chr1	4130572	rs3890729	A	T	141.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=2.07;MQ=59.18;MQ0=0;OQ=905.47;QD=17.75;SB=-227.90	GT:AD:DP:GL:GQ	0/1:23,28:51:-109.19,-15.36,-88.04:99
-chr1	4131311	rs10915460	G	A	189.99	PASS	AC=1;AF=0.50;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=2.33;MQ=57.39;MQ0=0;OQ=480.50;QD=13.35;SB=-233.54	GT:AD:DP:GL:GQ	0/1:19,17:33:-61.28,-9.95,-54.49:99
-chr1	4131491	rs10915461	A	G	151.47	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=1;HaplotypeScore=2.56;MQ=51.87;MQ0=0;OQ=492.21;QD=9.65;SB=-268.94	GT:AD:DP:GL:GQ	0/1:28,23:49:-67.28,-14.77,-113.16:99
-chr1	4131545	rs10915462	T	C	155.98	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=54.56;MQ0=0;OQ=299.94;QD=7.69;SB=-143.28	GT:AD:DP:GL:GQ	0/1:25,14:37:-44.43,-11.15,-99.76:99
-chr1	4131617	rs6688343	T	C	208.72	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=1;HaplotypeScore=2.28;MQ=58.31;MQ0=0;OQ=662.26;QD=13.25;SB=-230.45	GT:AD:DP:GL:GQ	0/1:25,25:48:-83.97,-14.46,-97.39:99
-chr1	4131656	rs6688428	T	C	133.26	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=1.51;MQ=58.40;MQ0=0;OQ=444.13;QD=10.83;SB=-97.71	GT:AD:DP:GL:GQ	0/1:22,19:40:-59.75,-12.06,-84.80:99
-chr1	4131666	rs6688431	T	C	70.94	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=1;HaplotypeScore=0.58;MQ=58.40;MQ0=0;OQ=339.10;QD=8.27;SB=-98.71	GT:AD:DP:GL:GQ	0/1:23,18:37:-48.34,-11.15,-87.20:99
-chr1	4131704	.	G	A	41.43	PASS	AC=1;AF=0.50;AN=2;DP=50;Dels=0.00;HRun=1;HaplotypeScore=1.69;MQ=58.60;MQ0=0;OQ=706.66;QD=14.13;SB=-238.75	GT:AD:DP:GL:GQ	0/1:28,22:49:-88.72,-14.77,-84.55:99
-chr1	4131824	rs12032295	C	T	752.83	Indel	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=33.96;MQ0=0;QD=14.20;SB=-367.84	GT:AD:DP:GL:GQ	0/1:30,23:51:-93.93,-15.37,-94.00:99
-chr1	4132377	rs12405392	C	T	226.32	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=4.69;MQ=59.66;MQ0=0;OQ=1021.86;QD=15.03;SB=-451.99	GT:AD:DP:GL:GQ	0/1:34,34:62:-124.15,-18.68,-109.47:99
-chr1	4132399	rs56827341	A	G	272.74	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=1.62;MQ=59.66;MQ0=0;OQ=903.58;QD=13.29;SB=-319.89	GT:AD:DP:GL:GQ	0/1:32,36:65:-113.24,-19.60,-113.27:99
-chr1	4132555	rs11580927	G	A	598.05	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.63;MQ0=0;OQ=853.00;QD=13.76;SB=-450.44	GT:AD:DP:GL:GQ	0/1:34,28:61:-106.96,-18.38,-120.31:99
-chr1	4132654	rs11583685	T	C	237.59	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=1;HaplotypeScore=2.58;MQ=60.00;MQ0=0;OQ=809.75;QD=12.46;SB=-338.53	GT:AD:DP:GL:GQ	0/1:35,30:64:-103.54,-19.28,-136.81:99
-chr1	4134373	rs6690519	C	T	596.27	PASS	AC=2;AF=1.00;AN=2;DB;DP=65;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2577.92;QD=39.66;SB=-1051.40	GT:AD:DP:GL:GQ	1/1:0,65:64:-261.39,-19.28,-0.02:99
-chr1	4134652	rs12743431	G	A	916.73	Indel	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.98;MQ=58.05;MQ0=0;QD=16.08;SB=-472.04	GT:AD:DP:GL:GQ	0/1:25,32:53:-110.92,-15.97,-91.04:99
-chr1	4134672	rs61037363	C	T	207.69	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=1;HaplotypeScore=1.58;MQ=58.34;MQ0=0;OQ=1244.96;QD=19.15;SB=-619.07	GT:AD:DP:GL:GQ	0/1:27,38:61:-146.16,-18.38,-83.21:99
-chr1	4135628	rs4654501	G	A	449.34	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.45;MQ0=0;OQ=800.03;QD=17.78;SB=-327.85	GT:AD:DP:GL:GQ	0/1:21,24:44:-96.54,-13.26,-71.19:99
-chr1	4136297	rs4531262	C	T	292.38	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=59.55;MQ0=0;OQ=900.23;QD=17.65;SB=-443.97	GT:AD:DP:GL:GQ	0/1:23,28:50:-108.37,-15.06,-81.34:99
-chr1	4136842	rs4233262	C	T	514.56	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.69;MQ0=0;OQ=1175.57;QD=19.27;SB=-513.00	GT:AD:DP:GL:GQ	0/1:27,34:61:-139.22,-18.38,-97.14:99
-chr1	4137022	rs12726068	G	A	202.41	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1078.50;QD=19.97;SB=-346.48	GT:AD:DP:GL:GQ	0/1:22,32:54:-127.40,-16.27,-78.49:99
-chr1	4137146	rs12741551	C	T	188.79	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=1;HaplotypeScore=2.60;MQ=60.00;MQ0=0;OQ=744.97;QD=14.06;SB=-275.26	GT:AD:DP:GL:GQ	0/1:28,23:51:-95.75,-17.97,-99.94:99
-chr1	4137455	rs34927664	C	T	374.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.87;MQ0=0;OQ=672.79;QD=16.41;SB=-286.16	GT:AD:DP:GL:GQ	0/1:20,21:40:-82.61,-12.05,-71.71:99
-chr1	4137533	rs6687719	A	G	359.14	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.96;MQ=59.55;MQ0=0;OQ=693.89;QD=13.61;SB=-371.11	GT:AD:DP:GL:GQ	0/1:24,27:51:-88.05,-15.37,-93.98:99
-chr1	4137942	rs4654415	A	G	54.66	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=3;HaplotypeScore=0.52;MQ=59.28;MQ0=0;OQ=812.82;QD=15.63;SB=-375.38	GT:AD:DP:GL:GQ	0/1:23,29:51:-99.93,-15.36,-91.58:99
-chr1	4137964	rs4654416	T	C	201.40	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=2.49;MQ=58.39;MQ0=0;OQ=863.33;QD=15.70;SB=-318.29	GT:AD:DP:GL:GQ	0/1:25,30:54:-105.89,-16.27,-96.91:99
-chr1	4138124	rs4654417	A	G	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.04;HRun=0;HaplotypeScore=22.45;MQ=53.05;MQ0=0;OQ=979.60;QD=14.62;SB=-425.14	GT:AD:DP:GL:GQ	0/1:30,34:67:-120.52,-19.28,-120.75:99
-chr1	4138539	rs10915465	C	T	116.34	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=60.00;MQ0=0;OQ=932.04;QD=16.95;SB=-231.54	GT:AD:DP:GL:GQ	0/1:26,28:51:-111.86,-15.37,-73.76:99
-chr1	4138848	rs4233263	T	C	563.43	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.57;MQ0=0;OQ=1932.95;QD=31.18;SB=-950.38	GT:AD:DP:GL:GQ	1/1:0,61:61:-196.93,-18.40,-0.06:99
-chr1	4140038	rs4233264	T	C	391.03	PASS	AC=1;AF=0.50;AN=2;DB;DP=81;Dels=0.00;HRun=0;HaplotypeScore=1.73;MQ=59.43;MQ0=0;OQ=1125.34;QD=13.89;SB=-437.57	GT:AD:DP:GL:GQ	0/1:41,40:80:-139.92,-24.10,-167.96:99
-chr1	4140287	rs4654502	A	G	258.40	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=716.89;QD=12.36;SB=-328.15	GT:AD:DP:GL:GQ	0/1:28,30:57:-92.15,-17.18,-113.12:99
-chr1	4140357	rs4654503	A	G	175.10	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=0.08;MQ=60.00;MQ0=0;OQ=528.96;QD=9.98;SB=-287.63	GT:AD:DP:GL:GQ	0/1:26,24:47:-70.35,-14.17,-96.77:99
-chr1	4140721	rs12074230	G	C	441.98	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.79;MQ0=0;OQ=1211.59;QD=19.54;SB=-432.34	GT:AD:DP:GL:GQ	0/1:29,33:61:-142.82,-18.38,-122.06:99
-chr1	4141214	rs61770887	T	A	176.81	Indel	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=41.85;MQ0=5;QD=2.39;SB=-58.97	GT:AD:DP:GL:GQ	0/1:35,39:44:-34.22,-13.25,-135.84:99
-chr1	4141739	.	C	G	151.90	PASS	AC=1;AF=0.50;AN=2;DP=74;Dels=0.00;HRun=0;HaplotypeScore=0.92;MQ=59.44;MQ0=0;OQ=861.28;QD=11.64;SB=-403.50	GT:AD:DP:GL:GQ	0/1:45,29:72:-111.12,-21.71,-193.89:99
-chr1	4143108	rs7544125	G	A	98.23	PASS	AC=1;AF=0.50;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=44.58;MQ0=4;OQ=463.56;QD=6.62;SB=-223.67	GT:AD:DP:GL:GQ	0/1:38,32:54:-65.91,-16.27,-136.81:99
-chr1	4143110	rs7515133	T	G	11.80	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=44.83;MQ0=4;OQ=280.65;QD=3.95;SB=-136.72	GT:AD:DP:GL:GQ	0/1:40,31:55:-47.92,-16.57,-148.31:99
-chr1	4143183	rs4408123	T	C	60.26	PASS	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.00;HRun=1;HaplotypeScore=1.41;MQ=54.71;MQ0=0;OQ=2012.85;QD=31.45;SB=-855.54	GT:AD:DP:GL:GQ	1/1:0,63:62:-204.92,-18.70,-0.05:99
-chr1	4143665	rs4654505	C	T	14.05	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=0;HaplotypeScore=7.02;MQ=58.52;MQ0=0;OQ=1278.62;QD=17.05;SB=-644.75	GT:AD:DP:GL:GQ	0/1:36,39:72:-152.84,-21.70,-110.95:99
-chr1	4143971	rs56322069	G	A	219.93	PASS	AC=1;AF=0.50;AN=2;DB;DP=82;Dels=0.00;HRun=0;HaplotypeScore=3.37;MQ=58.68;MQ0=0;OQ=1179.12;QD=14.38;SB=-509.98	GT:AD:DP:GL:GQ	0/1:47,35:78:-144.69,-23.49,-153.28:99
-chr1	4144717	rs4654419	G	T	409.69	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=53.48;MQ0=0;OQ=576.97;QD=11.10;SB=-278.60	GT:AD:DP:GL:GQ	0/1:31,21:52:-76.65,-15.66,-108.30:99
-chr1	4144899	rs4654506	A	G	59.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=3;HaplotypeScore=1.57;MQ=57.19;MQ0=0;OQ=798.47;QD=12.67;SB=-355.09	GT:AD:DP:GL:GQ	0/1:32,31:63:-102.12,-18.99,-128.03:99
-chr1	4145034	rs4654420	T	C	208.27	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=1.37;MQ=57.63;MQ0=0;OQ=567.20;QD=9.30;SB=-299.19	GT:AD:DP:GL:GQ	0/1:35,26:59:-77.79,-17.78,-138.00:99
-chr1	4145265	rs10799210	A	G	75.28	PASS	AC=2;AF=1.00;AN=2;DB;DP=73;Dels=0.00;HRun=2;HaplotypeScore=0.99;MQ=52.55;MQ0=0;OQ=2612.65;QD=35.79;SB=-1182.09	GT:AD:DP:GL:GQ	1/1:0,72:73:-267.51,-24.47,-2.66:99
-chr1	4146179	rs4354511	G	A	19.37	PASS	AC=2;AF=1.00;AN=2;DB;DP=75;Dels=0.00;HRun=3;HaplotypeScore=1.79;MQ=39.00;MQ0=1;OQ=2945.76;QD=39.28;SB=-1473.93	GT:AD:DP:GL:GQ	1/1:0,75:73:-298.18,-21.99,-0.02:99
-chr1	4146185	rs61770891	T	G	349.70	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=40.44;MQ0=1;OQ=1123.38;QD=15.18;SB=-586.47	GT:AD:DP:GL:GQ	0/1:35,39:73:-137.61,-21.99,-124.99:99
-chr1	4146278	rs35969529	A	C	46.41	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=2;HaplotypeScore=2.80;MQ=52.18;MQ0=0;OQ=652.54;QD=12.55;SB=-341.77	GT:AD:DP:GL:GQ	0/1:27,25:52:-84.21,-15.67,-95.88:99
-chr1	4146315	rs34096100	G	A	254.13	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=57.76;MQ0=0;OQ=657.20;QD=13.41;SB=-218.51	GT:AD:DP:GL:GQ	0/1:28,21:47:-83.18,-14.17,-82.42:99
-chr1	4146537	.	C	T	111.88	PASS	AC=1;AF=0.50;AN=2;DP=69;Dels=0.00;HRun=0;HaplotypeScore=1.77;MQ=53.66;MQ0=1;OQ=1107.86;QD=16.06;SB=-448.39	GT:AD:DP:GL:GQ	0/1:34,35:67:-134.26,-20.19,-114.24:99
-chr1	4146953	rs4654421	T	C	433.26	PASS	AC=2;AF=1.00;AN=2;DB;DP=69;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=56.82;MQ0=0;OQ=2189.94;QD=31.74;SB=-1040.77	GT:AD:DP:GL:GQ	1/1:0,69:68:-222.64,-20.51,-0.06:99
-chr1	4147013	rs4654422	T	A	163.99	PASS	AC=2;AF=1.00;AN=2;DB;DP=82;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=56.20;MQ0=1;OQ=3024.40;QD=36.88;SB=-1331.44	GT:AD:DP:GL:GQ	1/1:1,80:81:-309.61,-27.75,-3.59:99
-chr1	4148323	rs35837871	C	T	12.81	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=2;HaplotypeScore=2.85;MQ=58.88;MQ0=0;OQ=689.43;QD=12.77;SB=-158.63	GT:AD:DP:GL:GQ	0/1:29,24:49:-86.99,-14.77,-93.34:99
-chr1	4148556	rs10753370	A	G	191.60	PASS	AC=2;AF=1.00;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=2.30;MQ=57.40;MQ0=0;OQ=2083.85;QD=34.73;SB=-1040.92	GT:AD:DP:GL:GQ	1/1:0,60:59:-211.99,-17.77,-0.02:99
-chr1	4149011	rs12084286	A	G	120.11	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=1;HaplotypeScore=0.92;MQ=57.86;MQ0=0;OQ=472.12;QD=10.26;SB=-116.70	GT:AD:DP:GL:GQ	0/1:26,20:42:-63.15,-12.65,-98.66:99
-chr1	4149320	rs10733015	T	C	59.23	PASS	AC=2;AF=1.00;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=3.72;MQ=56.65;MQ0=0;OQ=2004.37;QD=30.37;SB=-729.73	GT:AD:DP:GL:GQ	1/1:0,65:63:-204.08,-19.00,-0.06:99
-chr1	4149923	rs4654507	T	C	369.93	PASS	AC=1;AF=0.50;AN=2;DB;DP=80;Dels=0.00;HRun=0;HaplotypeScore=0.98;MQ=59.77;MQ0=0;OQ=1162.12;QD=14.53;SB=-509.31	GT:AD:DP:GL:GQ	0/1:40,40:79:-143.29,-23.80,-162.73:99
-chr1	4150793	rs11808641	A	G	288.49	PASS	AC=1;AF=0.50;AN=2;DB;DP=70;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=59.73;MQ0=0;OQ=1163.51;QD=16.62;SB=-493.62	GT:AD:DP:GL:GQ	0/1:32,38:70:-140.72,-21.09,-129.98:99
-chr1	4151258	rs35392680	C	A	277.92	PASS	AC=1;AF=0.50;AN=2;DB;DP=81;Dels=0.00;HRun=1;HaplotypeScore=1.25;MQ=59.48;MQ0=0;OQ=1358.51;QD=16.77;SB=-581.67	GT:AD:DP:GL:GQ	0/1:37,44:80:-163.23,-24.09,-127.72:99
-chr1	4151486	rs35452955	A	T	64.63	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=2;HaplotypeScore=0.98;MQ=60.00;MQ0=0;OQ=1469.46;QD=19.34;SB=-729.32	GT:AD:DP:GL:GQ	0/1:30,45:74:-172.52,-22.29,-110.18:99
-chr1	4151668	rs6703301	G	T	631.77	PASS	AC=2;AF=1.00;AN=2;DB;DP=81;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.77;MQ0=0;OQ=3028.09;QD=37.38;SB=-1101.60	GT:AD:DP:GL:GQ	1/1:0,81:80:-306.41,-24.09,-0.01:99
-chr1	4151981	rs34414875	C	T	365.71	PASS	AC=1;AF=0.50;AN=2;DB;DP=80;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=60.00;MQ0=0;OQ=1305.64;QD=16.32;SB=-537.52	GT:AD:DP:GL:GQ	0/1:41,39:80:-157.95,-24.10,-144.69:99
-chr1	4152854	rs10915467	A	T	474.45	PASS	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.74;MQ0=0;OQ=1268.93;QD=17.38;SB=-610.43	GT:AD:DP:GL:GQ	0/1:33,40:72:-151.86,-21.68,-124.21:99
-chr1	4153158	rs12722935	C	T	465.33	PASS	AC=1;AF=0.50;AN=2;DB;DP=81;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1317.34;QD=16.26;SB=-636.13	GT:AD:DP:GL:GQ	0/1:41,40:80:-159.12,-24.10,-137.48:99
-chr1	4153203	rs55974255	T	G	492.94	PASS	AC=1;AF=0.50;AN=2;DB;DP=83;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1277.21;QD=15.39;SB=-533.71	GT:AD:DP:GL:GQ	0/1:38,45:83:-156.01,-25.00,-142.96:99
-chr1	4153672	rs6679104	T	C	519.73	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.17;MQ0=0;OQ=1796.89;QD=30.98;SB=-648.94	GT:AD:DP:GL:GQ	1/1:0,58:56:-183.31,-16.88,-0.04:99
-chr1	4153751	rs12750830	G	A	339.94	PASS	AC=1;AF=0.50;AN=2;DB;DP=69;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=60.00;MQ0=0;OQ=841.06;QD=12.19;SB=-424.91	GT:AD:DP:GL:GQ	0/1:41,27:67:-107.58,-20.19,-146.61:99
-chr1	4153835	rs12740143	T	G	222.74	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=1;HaplotypeScore=1.47;MQ=59.66;MQ0=0;OQ=767.69;QD=11.29;SB=-346.80	GT:AD:DP:GL:GQ	0/1:40,28:68:-100.53,-20.48,-145.06:99
-chr1	4154543	rs12143082	T	C	171.80	PASS	AC=1;AF=0.50;AN=2;DB;DP=78;Dels=0.00;HRun=2;HaplotypeScore=1.73;MQ=59.61;MQ0=1;OQ=1104.97;QD=14.17;SB=-407.20	GT:AD:DP:GL:GQ	0/1:39,39:74:-136.07,-22.29,-143.19:99
-chr1	4154828	rs4578184	A	T	236.18	PASS	AC=2;AF=1.00;AN=2;DB;DP=88;Dels=0.00;HRun=0;HaplotypeScore=0.74;MQ=59.74;MQ0=0;OQ=3286.63;QD=37.35;SB=-1618.09	GT:AD:DP:GL:GQ	1/1:0,87:86:-327.66,-25.90,-0.02:99
-chr1	4156046	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=80;Dels=0.01;HRun=20;HaplotypeScore=22.75;MQ=49.75;MQ0=0;OQ=501.86;QD=6.27;SB=92.27	GT:AD:DP:GL:GQ	0/1:48,31:64:-72.46,-18.99,-149.51:99
-chr1	4157196	rs4276878	C	G	356.37	PASS	AC=1;AF=0.50;AN=2;DB;DP=92;Dels=0.00;HRun=0;HaplotypeScore=0.58;MQ=60.00;MQ0=0;OQ=1452.13;QD=15.78;SB=-539.06	GT:AD:DP:GL:GQ	0/1:47,45:92:-176.24,-27.75,-207.05:99
-chr1	4159822	rs34626829	T	C	256.76	PASS	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.00;HRun=1;HaplotypeScore=1.63;MQ=60.00;MQ0=0;OQ=966.32;QD=13.24;SB=-369.17	GT:AD:DP:GL:GQ	0/1:40,33:72:-121.60,-21.69,-157.15:99
-chr1	4159905	rs4654509	T	C	45.94	PASS	AC=2;AF=1.00;AN=2;DB;DP=80;Dels=0.00;HRun=2;HaplotypeScore=1.31;MQ=59.48;MQ0=0;OQ=2796.88;QD=34.96;SB=-1388.49	GT:AD:DP:GL:GQ	1/1:0,80:80:-283.30,-24.10,-0.03:99
-chr1	4160278	rs6667065	G	A	347.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=0;HaplotypeScore=0.97;MQ=60.00;MQ0=0;OQ=1508.83;QD=20.12;SB=-751.28	GT:AD:DP:GL:GQ	0/1:32,43:74:-176.46,-22.30,-103.02:99
-chr1	4160487	rs6426401	C	G	585.75	PASS	AC=2;AF=1.00;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.67;MQ0=0;OQ=2415.89;QD=43.14;SB=-1118.15	GT:AD:DP:GL:GQ	1/1:0,56:56:-245.19,-16.88,-0.02:99
-chr1	4163843	rs4654511	A	G	129.93	PASS	AC=1;AF=0.50;AN=2;DB;DP=86;Dels=0.00;HRun=2;HaplotypeScore=0.90;MQ=59.46;MQ0=0;OQ=1014.81;QD=11.80;SB=-473.86	GT:AD:DP:GL:GQ	0/1:46,40:85:-130.38,-25.61,-186.22:99
-chr1	4163857	rs4654512	A	G	307.08	PASS	AC=1;AF=0.50;AN=2;DB;DP=83;Dels=0.00;HRun=0;HaplotypeScore=2.37;MQ=59.44;MQ0=0;OQ=1070.59;QD=12.90;SB=-521.48	GT:AD:DP:GL:GQ	0/1:46,37:83:-135.34,-25.00,-185.85:99
-chr1	4164344	rs4529679	G	C	272.38	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=2.61;MQ=59.36;MQ0=0;OQ=772.49;QD=10.73;SB=-392.69	GT:AD:DP:GL:GQ	0/1:46,26:70:-101.64,-21.10,-199.05:99
-chr1	4166949	rs16840901	T	C	388.35	PASS	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.00;HRun=1;HaplotypeScore=0.97;MQ=59.68;MQ0=0;OQ=1039.54;QD=14.24;SB=-434.53	GT:AD:DP:GL:GQ	0/1:37,36:73:-129.23,-21.99,-150.63:99
-chr1	4167749	rs10915471	T	G	58.03	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=2;HaplotypeScore=3.59;MQ=59.58;MQ0=0;OQ=744.43;QD=13.54;SB=-264.89	GT:AD:DP:GL:GQ	0/1:27,27:49:-92.49,-14.76,-80.31:99
-chr1	4168111	rs35122589	C	T	228.78	PASS	AC=1;AF=0.50;AN=2;DB;DP=82;Dels=0.00;HRun=1;HaplotypeScore=1.76;MQ=59.26;MQ0=0;OQ=1364.57;QD=16.64;SB=-443.34	GT:AD:DP:GL:GQ	0/1:40,41:80:-163.84,-24.10,-142.82:99
-chr1	4168454	rs12095632	C	G	92.77	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=1;HaplotypeScore=2.95;MQ=59.32;MQ0=0;OQ=1054.00;QD=19.16;SB=-475.80	GT:AD:DP:GL:GQ	0/1:24,31:54:-124.96,-16.28,-104.73:99
-chr1	4168730	rs4130091	T	C	180.54	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=59.33;MQ0=0;OQ=1367.19;QD=28.48;SB=-696.78	GT:AD:DP:GL:GQ	1/1:0,48:44:-140.35,-13.27,-0.05:99
-chr1	4169351	rs6426402	G	T	131.41	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=1;HaplotypeScore=3.41;MQ=58.55;MQ0=0;OQ=809.13;QD=11.40;SB=-425.17	GT:AD:DP:GL:GQ	0/1:41,30:69:-104.98,-20.78,-138.71:99
-chr1	4169394	rs6426403	C	G	338.24	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=1.73;MQ=57.89;MQ0=0;OQ=727.35;QD=12.99;SB=-274.92	GT:AD:DP:GL:GQ	0/1:33,23:54:-92.30,-16.28,-134.02:99
-chr1	4169498	rs6426404	G	A	414.13	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=0;HaplotypeScore=1.16;MQ=58.75;MQ0=0;OQ=1380.19;QD=18.40;SB=-605.61	GT:AD:DP:GL:GQ	0/1:34,41:72:-163.00,-21.69,-105.58:99
-chr1	4169658	rs60017975	A	G	318.13	PASS	AC=1;AF=0.50;AN=2;DB;DP=80;Dels=0.00;HRun=0;HaplotypeScore=0.92;MQ=59.77;MQ0=0;OQ=1450.14;QD=18.13;SB=-530.63	GT:AD:DP:GL:GQ	0/1:31,49:79:-172.10,-23.80,-127.67:99
-chr1	4170881	rs7550659	A	G	248.87	PASS	AC=2;AF=1.00;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=51.70;MQ0=0;OQ=2075.07;QD=30.97;SB=-804.69	GT:AD:DP:GL:GQ	1/1:0,66:63:-211.13,-18.99,-0.04:99
-chr1	4171135	rs10799212	A	G	40.61	PASS	AC=2;AF=1.00;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=3.91;MQ=40.70;MQ0=1;OQ=2175.11;QD=31.07;SB=-612.96	GT:AD:DP:GL:GQ	1/1:1,69:67:-221.14,-20.20,-0.04:99
-chr1	4171182	rs12410442	G	A	385.57	PASS	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=27.19;MQ0=4;OQ=361.27;QD=10.95;SB=-197.20	GT:AD:DP:GL:GQ	0/1:20,13:27:-47.55,-8.14,-48.20:99
-chr1	4171315	.	C	A	41.63	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=43;Dels=0.00;HRun=20;HaplotypeScore=7.30;MQ=33.40;MQ0=5;QD=0.97;SB=41.16	GT:AD:DP:GL:GQ	0/1:37,6:31:-16.79,-9.34,-90.98:74.46
-chr1	4171344	rs10799213	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.01;HRun=20;HaplotypeScore=28.32;MQ=47.02;MQ0=1;OQ=768.09;QD=11.30;SB=-343.49	GT:AD:DP:GL:GQ	0/1:35,32:53:-95.75,-15.66,-101.72:99
-chr1	4171386	rs12022636	C	A	71.32	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=6.39;MQ=55.43;MQ0=0;OQ=1032.82;QD=16.66;SB=-507.94	GT:AD:DP:GL:GQ	0/1:28,34:59:-124.34,-17.77,-88.85:99
-chr1	4171443	rs10799214	T	A	380.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=1;HaplotypeScore=1.02;MQ=52.31;MQ0=0;OQ=893.79;QD=14.65;SB=-401.19	GT:AD:DP:GL:GQ	0/1:30,31:58:-110.14,-17.48,-102.42:99
-chr1	4171775	rs7553814	A	G	404.78	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=59.01;MQ0=0;OQ=970.08;QD=12.93;SB=-503.90	GT:AD:DP:GL:GQ	0/1:40,35:74:-122.58,-22.29,-161.95:99
-chr1	4171833	rs7553919	A	G	37.31	PASS	AC=2;AF=1.00;AN=2;DB;DP=69;Dels=0.00;HRun=3;HaplotypeScore=0.95;MQ=59.60;MQ0=0;OQ=2384.19;QD=34.55;SB=-1112.82	GT:AD:DP:GL:GQ	1/1:0,69:66:-242.02,-19.88,-0.02:99
-chr1	4171990	rs7554028	A	G	628.72	PASS	AC=2;AF=1.00;AN=2;DB;DP=78;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.32;MQ0=1;OQ=2341.28;QD=30.02;SB=-854.63	GT:AD:DP:GL:GQ	1/1:0,78:76:-237.79,-22.93,-0.08:99
-chr1	4173512	rs7517572	T	A	699.45	PASS	AC=2;AF=1.00;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.76;MQ0=0;OQ=2653.94;QD=34.47;SB=-1331.37	GT:AD:DP:GL:GQ	1/1:0,77:72:-269.00,-21.69,-0.02:99
-chr1	4173702	rs10753372	T	C	483.13	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=55.88;MQ0=0;OQ=510.62;QD=9.82;SB=-265.21	GT:AD:DP:GL:GQ	0/1:30,22:52:-70.02,-15.68,-118.09:99
-chr1	4173822	rs10737404	T	C	229.86	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=60.00;MQ0=0;OQ=1647.35;QD=29.95;SB=-655.93	GT:AD:DP:GL:GQ	1/1:0,55:53:-168.37,-15.99,-0.05:99
-chr1	4174045	rs10915473	C	T	65.29	PASS	AC=2;AF=1.00;AN=2;DB;DP=37;Dels=0.00;HRun=1;HaplotypeScore=0.79;MQ=45.21;MQ0=0;OQ=1332.73;QD=36.02;SB=-585.26	GT:AD:DP:GL:GQ	1/1:0,37:35:-136.87,-10.55,-0.02:99
-chr1	4174057	.	C	T	1039.01	SnpCluster	AC=2;AF=1.00;AN=2;DP=31;Dels=0.00;HRun=2;HaplotypeScore=0.32;MQ=42.84;MQ0=0;QD=33.52;SB=-399.52	GT:AD:DP:GL:GQ	1/1:2,29:27:-107.50,-8.14,-0.01:81.26
-chr1	4174060	.	A	C	853.72	SnpCluster	AC=2;AF=1.00;AN=2;DP=31;Dels=0.00;HRun=2;HaplotypeScore=1.07;MQ=43.67;MQ0=0;QD=27.54;SB=-294.55	GT:AD:DP:GL:GQ	1/1:0,31:26:-88.97,-7.83,-0.01:78.20
-chr1	4174064	.	A	C	949.90	SnpCluster	AC=2;AF=1.00;AN=2;DP=33;Dels=0.00;HRun=1;HaplotypeScore=0.32;MQ=44.60;MQ0=0;QD=28.78;SB=-378.69	GT:AD:DP:GL:GQ	1/1:0,33:28:-98.58,-8.43,-0.01:84.24
-chr1	4174382	rs1908491	C	T	0.38	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=1;HaplotypeScore=6.22;MQ=54.65;MQ0=0;OQ=1883.08;QD=36.21;SB=-503.01	GT:AD:DP:GL:GQ	1/1:0,52:48:-191.91,-14.46,-0.01:99
-chr1	4174484	rs10915474	T	A	225.63	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=1.59;MQ=55.68;MQ0=0;OQ=801.30;QD=15.41;SB=-299.67	GT:AD:DP:GL:GQ	0/1:26,26:51:-98.78,-15.36,-93.02:99
-chr1	4174489	rs1908492	C	T	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=7;HaplotypeScore=1.12;MQ=55.99;MQ0=0;OQ=1860.19;QD=37.20;SB=-932.70	GT:AD:DP:GL:GQ	1/1:0,50:48:-189.62,-14.46,-0.02:99
-chr1	4174597	rs1908493	C	T	268.28	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=2.14;MQ=59.04;MQ0=0;OQ=2611.89;QD=38.41;SB=-1140.03	GT:AD:DP:GL:GQ	1/1:0,68:66:-264.79,-19.88,-0.02:99
-chr1	4174874	rs1495245	T	A	732.53	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.39;MQ0=0;OQ=2554.22;QD=37.56;SB=-1304.61	GT:AD:DP:GL:GQ	1/1:0,68:68:-259.02,-20.48,-0.02:99
-chr1	4174974	rs11578399	C	A	12.83	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=1;HaplotypeScore=3.61;MQ=59.22;MQ0=0;OQ=421.58;QD=7.81;SB=-139.06	GT:AD:DP:GL:GQ	0/1:37,17:52:-61.11,-15.67,-117.17:99
-chr1	4175032	rs1495246	C	G	204.50	PASS	AC=2;AF=1.00;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=3.07;MQ=56.85;MQ0=0;OQ=2607.23;QD=39.50;SB=-1308.71	GT:AD:DP:GL:GQ	1/1:0,66:62:-264.33,-18.68,-0.02:99
-chr1	4175046	.	T	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=65;Dels=0.00;HRun=2;HaplotypeScore=9.95;MQ=56.80;MQ0=0;OQ=180.72;QD=2.78;SB=92.29	GT:AD:DP:GL:GQ	0/1:40,25:50:-36.42,-15.06,-130.62:99
-chr1	4175151	rs10915476	G	A	237.61	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=59.01;MQ0=0;OQ=567.09;QD=12.07;SB=-92.91	GT:AD:DP:GL:GQ	0/1:29,18:45:-73.55,-13.56,-90.83:99
-chr1	4175279	rs1495247	C	T	209.45	PASS	AC=2;AF=1.00;AN=2;DB;DP=70;Dels=0.00;HRun=4;HaplotypeScore=0.00;MQ=59.34;MQ0=0;OQ=2597.96;QD=37.11;SB=-1279.76	GT:AD:DP:GL:GQ	1/1:0,70:67:-263.40,-20.19,-0.02:99
-chr1	4175302	rs7411802	C	A	438.30	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=1;HaplotypeScore=-0.06;MQ=58.93;MQ0=0;OQ=2181.45;QD=35.76;SB=-1110.34	GT:AD:DP:GL:GQ	1/1:0,61:61:-221.75,-18.37,-0.02:99
-chr1	4175576	rs4326593	G	A	325.64	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=55.58;MQ0=0;OQ=888.28;QD=16.76;SB=-433.95	GT:AD:DP:GL:GQ	0/1:25,28:48:-106.58,-14.47,-68.77:99
-chr1	4175736	rs4615813	G	C	667.23	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=51.55;MQ0=0;OQ=2403.10;QD=41.43;SB=-1195.96	GT:AD:DP:GL:GQ	1/1:0,58:56:-243.91,-16.87,-0.02:99
-chr1	4175807	rs28600106	C	T	6.13	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=1;HaplotypeScore=7.59;MQ=48.39;MQ0=0;OQ=365.75;QD=9.89;SB=-206.69	GT:AD:DP:GL:GQ	0/1:22,15:31:-49.20,-9.35,-60.01:99
-chr1	4175944	rs2898790	T	C	0.54	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=1;HaplotypeScore=5.41;MQ=54.62;MQ0=0;OQ=1686.61;QD=30.67;SB=-329.61	GT:AD:DP:GL:GQ	1/1:0,55:50:-172.27,-15.06,-0.02:99
-chr1	4176053	rs2411737	G	C	0.30	PASS	AC=2;AF=1.00;AN=2;DB;DP=30;Dels=0.00;HRun=1;HaplotypeScore=4.08;MQ=49.96;MQ0=0;OQ=907.29;QD=30.24;SB=-45.91	GT:AD:DP:GL:GQ	1/1:0,30:23:-94.32,-6.93,-0.01:69.23
-chr1	4176083	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=46;Dels=0.00;HRun=2;HaplotypeScore=5.12;MQ=50.79;MQ0=0;OQ=53.84;QD=1.17;SB=68.23	GT:AD:DP:GL:GQ	0/1:30,16:35:-19.21,-10.54,-99.51:86.68
-chr1	4176698	rs10915477	G	A	75.54	PASS	AC=2;AF=1.00;AN=2;DB;DP=85;Dels=0.00;HRun=2;HaplotypeScore=1.92;MQ=55.80;MQ0=0;OQ=3415.18;QD=40.18;SB=-1433.92	GT:AD:DP:GL:GQ	1/1:0,85:84:-340.52,-25.30,-0.02:99
-chr1	4176748	rs12060660	A	C	70.84	PASS	AC=2;AF=1.00;AN=2;DB;DP=79;Dels=0.00;HRun=1;HaplotypeScore=3.65;MQ=58.23;MQ0=0;OQ=2781.95;QD=35.21;SB=-941.32	GT:AD:DP:GL:GQ	1/1:0,78:78:-285.04,-25.98,-3.27:99
-chr1	4176763	rs10915478	T	C	721.59	PASS	AC=2;AF=1.00;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.18;MQ0=0;OQ=2617.35;QD=33.99;SB=-1088.89	GT:AD:DP:GL:GQ	1/1:0,77:74:-265.34,-22.29,-0.02:99
-chr1	4176794	rs12060664	A	G	585.06	PASS	AC=2;AF=1.00;AN=2;DB;DP=71;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2362.72;QD=33.28;SB=-1094.09	GT:AD:DP:GL:GQ	1/1:0,71:67:-239.88,-20.19,-0.03:99
-chr1	4177795	rs4654423	T	C	596.30	PASS	AC=2;AF=1.00;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.67;MQ0=0;OQ=1639.97;QD=29.29;SB=-739.78	GT:AD:DP:GL:GQ	1/1:0,56:52:-167.62,-15.68,-0.04:99
-chr1	4177808	rs10915479	T	C	281.74	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=59.62;MQ0=0;OQ=507.44;QD=10.36;SB=-255.93	GT:AD:DP:GL:GQ	0/1:30,19:46:-67.89,-13.86,-108.27:99
-chr1	4179046	rs12116719	G	A	182.10	PASS	AC=2;AF=1.00;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=0.63;MQ=60.00;MQ0=0;OQ=2853.60;QD=39.09;SB=-1453.00	GT:AD:DP:GL:GQ	1/1:0,73:73:-288.97,-22.00,-0.02:99
-chr1	4179422	rs59176411	C	T	132.99	PASS	AC=2;AF=1.00;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=3.16;MQ=56.41;MQ0=0;OQ=2598.61;QD=37.12;SB=-1098.00	GT:AD:DP:GL:GQ	1/1:1,69:68:-267.13,-20.49,-3.69:99
-chr1	4179485	rs10737405	A	G	230.94	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=55.59;MQ0=0;OQ=1795.14;QD=34.52;SB=-680.95	GT:AD:DP:GL:GQ	1/1:1,51:52:-187.08,-15.66,-3.98:99
-chr1	4180030	rs6657617	C	T	6.27	PASS	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.00;HRun=3;HaplotypeScore=2.45;MQ=59.28;MQ0=0;OQ=2474.15;QD=38.66;SB=-836.62	GT:AD:DP:GL:GQ	1/1:0,64:62:-251.01,-18.68,-0.02:99
-chr1	4180081	rs6426405	G	A	604.48	PASS	AC=2;AF=1.00;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2617.17;QD=39.06;SB=-1069.36	GT:AD:DP:GL:GQ	1/1:0,67:67:-265.32,-20.19,-0.02:99
-chr1	4180490	rs4592237	G	A	306.85	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=59.29;MQ0=0;OQ=1850.80;QD=34.92;SB=-947.36	GT:AD:DP:GL:GQ	1/1:0,53:49:-188.69,-14.77,-0.02:99
-chr1	4181020	rs10799216	G	A	235.59	PASS	AC=2;AF=1.00;AN=2;DB;DP=86;Dels=0.00;HRun=0;HaplotypeScore=1.51;MQ=59.57;MQ0=0;OQ=3471.51;QD=40.37;SB=-1574.60	GT:AD:DP:GL:GQ	1/1:0,86:85:-346.15,-25.60,-0.02:99
-chr1	4181670	rs4233265	T	C	517.98	PASS	AC=2;AF=1.00;AN=2;DB;DP=66;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.29;MQ0=0;OQ=2065.74;QD=31.30;SB=-824.68	GT:AD:DP:GL:GQ	1/1:0,66:65:-210.21,-19.60,-0.06:99
-chr1	4182159	rs4654425	A	G	260.71	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.64;MQ0=0;OQ=1828.94;QD=35.17;SB=-776.99	GT:AD:DP:GL:GQ	1/1:0,52:51:-186.50,-15.36,-0.02:99
-chr1	4182646	rs11579829	C	T	305.04	PASS	AC=2;AF=1.00;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=0.83;MQ=59.69;MQ0=0;OQ=2773.62;QD=37.48;SB=-1347.81	GT:AD:DP:GL:GQ	1/1:0,74:71:-280.97,-21.39,-0.02:99
-chr1	4183175	rs2132177	C	A	639.97	PASS	AC=2;AF=1.00;AN=2;DB;DP=80;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2919.91;QD=36.50;SB=-1144.30	GT:AD:DP:GL:GQ	1/1:0,80:79:-295.60,-23.79,-0.02:99
-chr1	4184348	rs55978003	G	A	105.51	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=1;HaplotypeScore=2.52;MQ=59.27;MQ0=0;OQ=776.05;QD=15.22;SB=-305.78	GT:AD:DP:GL:GQ	0/1:27,23:48:-95.35,-14.46,-90.95:99
-chr1	4184779	rs7528938	C	T	220.92	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=1.91;MQ=59.11;MQ0=0;OQ=1623.71;QD=34.55;SB=-657.89	GT:AD:DP:GL:GQ	1/1:1,44:43:-165.98,-12.96,-0.02:99
-chr1	4185286	rs17415519	A	G	242.16	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=1.28;MQ=60.00;MQ0=0;OQ=1345.26;QD=33.63;SB=-658.93	GT:AD:DP:GL:GQ	1/1:0,40:39:-138.12,-11.75,-0.01:99
-chr1	4185339	.	G	T	41.06	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=42;Dels=0.00;HRun=12;HaplotypeScore=2.80;MQ=54.83;MQ0=0;QD=0.98;SB=22.81	GT:AD:DP:GL:GQ	0/1:35,7:35:-17.93,-10.54,-103.81:73.90
-chr1	4185557	rs4654516	G	C	54.16	PASS	AC=2;AF=1.00;AN=2;DB;DP=70;Dels=0.00;HRun=1;HaplotypeScore=1.67;MQ=58.74;MQ0=0;OQ=2607.62;QD=37.25;SB=-842.00	GT:AD:DP:GL:GQ	1/1:1,69:66:-264.40,-19.92,-0.05:99
-chr1	4187570	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=84;Dels=0.00;HRun=2;HaplotypeScore=8.14;MQ=58.89;MQ0=0;OQ=68.10;QD=0.81;SB=131.41	GT:AD:DP:GL:GQ	0/1:59,24:60:-28.18,-18.09,-178.30:99
-chr1	4188372	rs1874267	T	G	455.60	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=1.23;MQ=59.37;MQ0=0;OQ=1048.28;QD=15.88;SB=-524.40	GT:AD:DP:GL:GQ	0/1:29,37:66:-127.99,-19.88,-107.31:99
-chr1	4188412	rs1874266	A	G	468.39	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=0.97;MQ=59.24;MQ0=0;OQ=798.75;QD=14.52;SB=-409.67	GT:AD:DP:GL:GQ	0/1:23,32:52:-98.84,-15.68,-83.89:99
-chr1	4188663	rs10915480	A	G	337.33	PASS	AC=1;AF=0.50;AN=2;DB;DP=84;Dels=0.00;HRun=1;HaplotypeScore=1.31;MQ=59.23;MQ0=0;OQ=1153.25;QD=13.73;SB=-560.60	GT:AD:DP:GL:GQ	0/1:38,45:83:-146.27,-27.66,-153.88:99
-chr1	4188905	rs10753374	A	G	386.21	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=1;HaplotypeScore=0.99;MQ=60.00;MQ0=0;OQ=1195.33;QD=15.73;SB=-552.85	GT:AD:DP:GL:GQ	0/1:35,41:76:-145.71,-22.90,-141.29:99
-chr1	4189544	rs10753375	T	G	601.10	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.67;MQ0=0;OQ=1995.47;QD=35.01;SB=-845.10	GT:AD:DP:GL:GQ	1/1:0,57:56:-203.15,-16.86,-0.01:99
-chr1	4189582	rs10799217	A	G	68.61	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=2;HaplotypeScore=-0.06;MQ=59.39;MQ0=0;OQ=909.16;QD=14.90;SB=-461.96	GT:AD:DP:GL:GQ	0/1:30,31:61:-112.58,-18.38,-119.06:99
-chr1	4189759	rs10799218	T	C	84.36	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=3;HaplotypeScore=1.76;MQ=58.80;MQ0=0;OQ=827.52;QD=11.18;SB=-285.14	GT:AD:DP:GL:GQ	0/1:41,32:73:-108.03,-22.00,-167.09:99
-chr1	4191122	rs6426406	T	C	3.61	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=2;HaplotypeScore=7.31;MQ=59.57;MQ0=0;OQ=717.35;QD=10.71;SB=-224.24	GT:AD:DP:GL:GQ	0/1:37,30:64:-94.30,-19.28,-145.85:99
-chr1	4191702	rs7541544	T	C	425.11	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=1.14;MQ=59.70;MQ0=0;OQ=729.14;QD=11.76;SB=-343.04	GT:AD:DP:GL:GQ	0/1:32,30:60:-94.28,-18.09,-122.33:99
-chr1	4191813	rs7534461	C	G	457.73	PASS	AC=1;AF=0.50;AN=2;DB;DP=83;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=59.78;MQ0=0;OQ=1324.41;QD=15.96;SB=-593.50	GT:AD:DP:GL:GQ	0/1:46,37:83:-160.73,-25.00,-206.24:99
-chr1	4191898	rs7534558	C	T	290.90	PASS	AC=1;AF=0.50;AN=2;DB;DP=88;Dels=0.00;HRun=0;HaplotypeScore=2.06;MQ=60.00;MQ0=0;OQ=1246.57;QD=14.17;SB=-621.73	GT:AD:DP:GL:GQ	0/1:50,38:86:-153.86,-25.92,-153.30:99
-chr1	4191985	rs10799219	G	C	69.97	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=1;HaplotypeScore=2.07;MQ=59.38;MQ0=0;OQ=1617.32;QD=21.86;SB=-548.71	GT:AD:DP:GL:GQ	0/1:32,42:72:-186.71,-21.70,-128.86:99
-chr1	4192218	rs10159168	A	T	343.86	PASS	AC=1;AF=0.50;AN=2;DB;DP=82;Dels=0.00;HRun=1;HaplotypeScore=0.73;MQ=60.00;MQ0=0;OQ=1388.76;QD=16.94;SB=-472.56	GT:AD:DP:GL:GQ	0/1:39,43:82:-166.86,-24.70,-146.13:99
-chr1	4195817	rs1390135	T	G	143.92	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=4.15;MQ=58.67;MQ0=0;OQ=705.86;QD=11.20;SB=-334.03	GT:AD:DP:GL:GQ	0/1:33,30:61:-92.25,-18.38,-113.54:99
-chr1	4197896	.	G	A	10.32	PASS	AC=1;AF=0.50;AN=2;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=59.52;MQ0=0;OQ=1035.41;QD=21.57;SB=-410.45	GT:AD:DP:GL:GQ	0/1:18,30:48:-121.29,-14.46,-58.46:99
-chr1	4198535	rs1495242	A	G	438.02	PASS	AC=1;AF=0.50;AN=2;DB;DP=83;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.22;MQ0=0;OQ=1076.27;QD=12.97;SB=-544.21	GT:AD:DP:GL:GQ	0/1:44,39:81:-135.31,-24.40,-175.25:99
-chr1	4199191	rs12124378	C	T	379.71	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.35;MQ0=0;OQ=1302.45;QD=20.35;SB=-581.61	GT:AD:DP:GL:GQ	0/1:26,38:63:-152.50,-18.97,-95.47:99
-chr1	4199881	.	G	T	32.56	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=44;Dels=0.00;HRun=2;HaplotypeScore=5.28;MQ=57.83;MQ0=0;QD=0.74;SB=74.26	GT:AD:DP:GL:GQ	0/1:31,13:34:-16.78,-10.24,-105.31:65.40
-chr1	4200007	.	G	A	96.98	PASS	AC=1;AF=0.50;AN=2;DP=67;Dels=0.00;HRun=0;HaplotypeScore=1.57;MQ=59.35;MQ0=0;OQ=1236.21;QD=18.45;SB=-537.73	GT:AD:DP:GL:GQ	0/1:28,39:63:-145.88,-18.98,-96.95:99
-chr1	4200165	rs6426407	A	G	72.52	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=2;HaplotypeScore=1.47;MQ=58.49;MQ0=0;OQ=1344.67;QD=18.17;SB=-519.96	GT:AD:DP:GL:GQ	0/1:29,44:72:-159.44,-21.69,-113.24:99
-chr1	4200817	rs4654518	G	A	711.75	PASS	AC=2;AF=1.00;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.74;MQ0=0;OQ=2818.25;QD=39.69;SB=-1209.38	GT:AD:DP:GL:GQ	1/1:0,71:70:-285.42,-21.08,-0.01:99
-chr1	4202021	rs12124548	G	A	209.11	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=2.53;MQ=59.70;MQ0=0;OQ=1241.05;QD=20.02;SB=-465.47	GT:AD:DP:GL:GQ	0/1:26,36:61:-145.77,-18.38,-85.04:99
-chr1	4202445	rs12405770	A	G	576.59	PASS	AC=1;AF=0.50;AN=2;DB;DP=80;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1249.87;QD=15.62;SB=-595.92	GT:AD:DP:GL:GQ	0/1:37,43:79:-152.07,-23.80,-148.48:99
-chr1	4202474	rs6426409	T	G	405.59	PASS	AC=1;AF=0.50;AN=2;DB;DP=84;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=59.78;MQ0=0;OQ=1102.86;QD=13.13;SB=-556.72	GT:AD:DP:GL:GQ	0/1:44,40:82:-138.27,-24.70,-157.66:99
-chr1	4204888	rs12132080	A	T	242.23	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=1;HaplotypeScore=1.72;MQ=45.12;MQ0=6;OQ=964.76;QD=12.69;SB=-408.56	GT:AD:DP:GL:GQ	0/1:34,42:65:-119.34,-19.58,-129.51:99
-chr1	4208143	rs6690300	T	G	448.20	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=59.45;MQ0=0;OQ=967.38;QD=12.73;SB=-340.51	GT:AD:DP:GL:GQ	0/1:41,35:76:-122.91,-22.89,-152.81:99
-chr1	4208388	rs12239600	T	C	466.70	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=0.97;MQ=59.66;MQ0=0;OQ=937.21;QD=13.78;SB=-484.77	GT:AD:DP:GL:GQ	0/1:32,36:68:-117.50,-20.50,-127.59:99
-chr1	4208894	rs12078298	T	A	402.94	PASS	AC=1;AF=0.50;AN=2;DB;DP=89;Dels=0.00;HRun=0;HaplotypeScore=1.44;MQ=59.48;MQ0=0;OQ=1434.64;QD=16.12;SB=-624.40	GT:AD:DP:GL:GQ	0/1:43,46:88:-173.25,-26.51,-162.85:99
-chr1	4209813	rs6679489	G	A	164.07	PASS	AC=1;AF=0.50;AN=2;DB;DP=85;Dels=0.00;HRun=2;HaplotypeScore=1.52;MQ=60.00;MQ0=0;OQ=1435.86;QD=16.89;SB=-638.14	GT:AD:DP:GL:GQ	0/1:41,44:83:-171.87,-25.00,-148.88:99
-chr1	4211295	rs4654519	C	T	437.58	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=56.97;MQ0=0;OQ=1264.42;QD=19.76;SB=-439.80	GT:AD:DP:GL:GQ	0/1:26,38:62:-148.40,-18.68,-90.27:99
-chr1	4211773	rs10915487	T	G	175.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=2.57;MQ=59.23;MQ0=0;OQ=638.07;QD=10.29;SB=-306.76	GT:AD:DP:GL:GQ	0/1:37,25:61:-85.47,-18.38,-128.27:99
-chr1	4212065	rs1908490	C	T	369.52	PASS	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.00;HRun=1;HaplotypeScore=0.67;MQ=57.82;MQ0=0;OQ=1109.73;QD=15.20;SB=-541.53	GT:AD:DP:GL:GQ	0/1:40,33:71:-135.64,-21.39,-134.48:99
-chr1	4213163	rs12741715	A	T	578.55	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.69;MQ0=0;OQ=1267.51;QD=16.90;SB=-452.19	GT:AD:DP:GL:GQ	0/1:35,40:74:-152.32,-22.29,-133.91:99
-chr1	4215064	rs966321	G	T	6.64	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=4;HaplotypeScore=2.95;MQ=59.70;MQ0=0;OQ=1037.52;QD=13.65;SB=-540.72	GT:AD:DP:GL:GQ	0/1:40,36:75:-129.62,-22.59,-142.94:99
-chr1	4215408	rs12691488	C	T	601.59	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.66;MQ0=0;OQ=1073.26;QD=16.02;SB=-541.06	GT:AD:DP:GL:GQ	0/1:35,32:66:-130.50,-19.89,-109.64:99
-chr1	4216644	rs964715	T	C	389.60	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=939.74;QD=14.46;SB=-445.57	GT:AD:DP:GL:GQ	0/1:32,33:65:-116.84,-19.58,-130.15:99
-chr1	4217111	rs1495250	T	C	316.94	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=2.00;MQ=60.00;MQ0=0;OQ=777.71;QD=11.44;SB=-393.04	GT:AD:DP:GL:GQ	0/1:36,32:67:-101.25,-20.19,-143.99:99
-chr1	4218910	rs11583756	G	A	393.34	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=60.00;MQ0=0;OQ=562.25;QD=10.41;SB=-300.82	GT:AD:DP:GL:GQ	0/1:33,21:51:-74.88,-15.38,-106.07:99
-chr1	4219107	rs7545415	G	A	274.25	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=1.82;MQ=59.24;MQ0=0;OQ=794.53;QD=14.45;SB=-389.90	GT:AD:DP:GL:GQ	0/1:30,25:51:-98.11,-15.38,-85.30:99
-chr1	4221548	rs1826719	G	A	1.65	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.02;HRun=1;HaplotypeScore=9.57;MQ=59.01;MQ0=0;OQ=1104.32;QD=16.73;SB=-370.86	GT:AD:DP:GL:GQ	0/1:31,34:63:-132.39,-18.68,-107.97:99
-chr1	4221834	rs1390137	T	A	402.30	PASS	AC=1;AF=0.50;AN=2;DB;DP=91;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=59.24;MQ0=0;OQ=1338.31;QD=14.71;SB=-600.22	GT:AD:DP:GL:GQ	0/1:48,43:91:-164.52,-27.41,-184.18:99
-chr1	4222993	rs7526339	A	G	180.71	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=2;HaplotypeScore=0.73;MQ=60.00;MQ0=0;OQ=860.50;QD=13.04;SB=-424.26	GT:AD:DP:GL:GQ	0/1:36,30:65:-108.91,-19.58,-143.92:99
-chr1	4225449	rs9286982	A	C	384.55	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=0;HaplotypeScore=0.33;MQ=59.50;MQ0=0;OQ=1099.77;QD=14.66;SB=-338.80	GT:AD:DP:GL:GQ	0/1:38,37:74:-135.55,-22.29,-134.84:99
-chr1	4226228	rs2411738	G	A	332.71	PASS	AC=1;AF=0.50;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=1.47;MQ=60.00;MQ0=0;OQ=1328.38;QD=18.98;SB=-511.52	GT:AD:DP:GL:GQ	0/1:30,40:68:-156.63,-20.50,-89.85:99
-chr1	4227495	rs2101576	C	T	457.85	PASS	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=1.15;MQ=59.43;MQ0=0;OQ=1111.42;QD=15.22;SB=-551.59	GT:AD:DP:GL:GQ	0/1:39,34:73:-136.43,-22.01,-124.07:99
-chr1	4227724	rs10915493	G	A	108.64	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=1;HaplotypeScore=2.47;MQ=60.00;MQ0=0;OQ=1106.23;QD=18.75;SB=-402.40	GT:AD:DP:GL:GQ	0/1:26,33:59:-131.68,-17.78,-92.93:99
-chr1	4228365	.	G	A	59.74	PASS	AC=1;AF=0.50;AN=2;DP=73;Dels=0.00;HRun=1;HaplotypeScore=2.28;MQ=58.73;MQ0=0;OQ=1218.17;QD=16.69;SB=-516.71	GT:AD:DP:GL:GQ	0/1:36,37:71:-146.49,-21.39,-124.67:99
-chr1	4228440	rs11586171	G	A	378.40	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=0.94;MQ=59.25;MQ0=0;OQ=793.38;QD=14.17;SB=-261.74	GT:AD:DP:GL:GQ	0/1:30,26:52:-98.30,-15.68,-86.01:99
-chr1	4228626	rs10799221	A	G	244.66	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=1;HaplotypeScore=-0.06;MQ=59.55;MQ0=0;OQ=773.13;QD=15.16;SB=-359.35	GT:AD:DP:GL:GQ	0/1:24,27:50:-95.66,-15.07,-89.39:99
-chr1	4230147	rs6677984	A	G	313.94	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=57.80;MQ0=0;OQ=752.97;QD=10.61;SB=-294.25	GT:AD:DP:GL:GQ	0/1:36,35:64:-97.88,-19.30,-127.54:99
-chr1	4231035	.	G	A	41.87	PASS	AC=1;AF=0.50;AN=2;DP=57;Dels=0.00;HRun=0;HaplotypeScore=3.60;MQ=59.27;MQ0=0;OQ=1023.37;QD=17.95;SB=-471.06	GT:AD:DP:GL:GQ	0/1:23,34:54:-121.89,-16.27,-83.08:99
-chr1	4231643	rs4654426	A	G	357.68	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=1;HaplotypeScore=0.82;MQ=59.13;MQ0=0;OQ=804.91;QD=14.63;SB=-368.10	GT:AD:DP:GL:GQ	0/1:22,33:51:-99.15,-15.37,-84.11:99
-chr1	4232195	.	G	A	71.35	PASS	AC=1;AF=0.50;AN=2;DP=68;Dels=0.00;HRun=0;HaplotypeScore=3.41;MQ=60.00;MQ0=0;OQ=896.42;QD=13.18;SB=-396.87	GT:AD:DP:GL:GQ	0/1:39,29:68:-113.42,-20.50,-128.87:99
-chr1	4232590	rs7527612	G	A	196.65	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=3.22;MQ=59.61;MQ0=0;OQ=598.22;QD=12.46;SB=-285.21	GT:AD:DP:GL:GQ	0/1:26,20:44:-76.37,-13.26,-81.07:99
-chr1	4233150	rs10737406	C	T	190.39	PASS	AC=1;AF=0.50;AN=2;DB;DP=86;Dels=0.00;HRun=1;HaplotypeScore=0.99;MQ=60.00;MQ0=0;OQ=1662.89;QD=19.34;SB=-750.79	GT:AD:DP:GL:GQ	0/1:38,48:86:-195.48,-25.90,-136.98:99
-chr1	4233365	rs10737407	T	C	106.83	PASS	AC=1;AF=0.50;AN=2;DB;DP=88;Dels=0.00;HRun=0;HaplotypeScore=2.10;MQ=59.79;MQ0=0;OQ=829.78;QD=9.43;SB=-420.85	GT:AD:DP:GL:GQ	0/1:52,36:87:-112.48,-26.22,-211.16:99
-chr1	4233528	rs10737408	T	C	490.54	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.74;MQ0=0;OQ=1057.73;QD=14.90;SB=-414.29	GT:AD:DP:GL:GQ	0/1:30,41:71:-130.46,-21.40,-122.91:99
-chr1	4233635	rs10799223	G	C	53.92	PASS	AC=1;AF=0.50;AN=2;DB;DP=99;Dels=0.00;HRun=0;HaplotypeScore=4.97;MQ=59.34;MQ0=0;OQ=1650.26;QD=16.67;SB=-729.99	GT:AD:DP:GL:GQ	0/1:53,46:99:-198.14,-29.83,-227.12:99
-chr1	4234047	rs12095914	C	T	0.73	PASS	AC=1;AF=0.50;AN=2;DB;DP=14;Dels=0.00;HRun=0;HaplotypeScore=9.26;MQ=42.37;MQ0=0;OQ=137.29;QD=9.81;SB=-42.54	GT:AD:DP:GL:GQ	0/1:9,5:10:-20.03,-3.01,-17.15:99
-chr1	4234051	rs56077919	C	T	1.78	PASS	AC=1;AF=0.50;AN=2;DB;DP=12;Dels=0.00;HRun=0;HaplotypeScore=7.11;MQ=38.66;MQ0=0;OQ=106.65;QD=8.89;SB=-40.54	GT:AD:DP:GL:GQ	0/1:8,4:8:-16.36,-2.41,-14.46:99
-chr1	4234076	.	T	C	1.57	PASS	AC=1;AF=0.50;AN=2;DP=9;Dels=0.00;HRun=1;HaplotypeScore=1.95;MQ=36.23;MQ0=1;OQ=55.15;QD=6.13;SB=-6.99	GT:AD:DP:GL:GQ	0/1:6,3:7:-10.91,-2.11,-15.53:87.98
-chr1	4234095	rs12752111	C	T	29.22	LowQual	AC=1;AF=0.50;AN=2;DB;DP=8;Dels=0.00;HRun=1;HaplotypeScore=2.44;MQ=42.08;MQ0=1;QD=3.65;SB=-10.00	GT:AD:DP:GL:GQ	0/1:5,3:6:-8.01,-1.81,-14.07:62.05
-chr1	4234115	.	T	C	41.10	LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=14;Dels=0.00;HRun=0;HaplotypeScore=27.16;MQ=46.57;MQ0=0;QD=2.94;SB=-6.99	GT:AD:DP:GL:GQ	0/1:10,4:11:-10.71,-3.31,-31.76:73.94
-chr1	4234119	.	T	C	26.07	LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=19;Dels=0.00;HRun=0;HaplotypeScore=23.15;MQ=48.70;MQ0=0;QD=1.37;SB=-6.99	GT:AD:DP:GL:GQ	0/1:13,6:15:-10.41,-4.52,-48.38:58.90
-chr1	4234123	.	T	C	99.42	SnpCluster	AC=1;AF=0.50;AN=2;DP=22;Dels=0.00;HRun=0;HaplotypeScore=15.26;MQ=47.83;MQ0=0;QD=4.52;SB=-10.00	GT:AD:DP:GL:GQ	0/1:15,7:16:-18.04,-4.82,-44.01:99
-chr1	4234141	.	C	T	11.93	LowQual	AC=1;AF=0.50;AN=2;DP=31;Dels=0.00;HRun=3;HaplotypeScore=2.90;MQ=45.82;MQ0=0;QD=0.38;SB=-10.00	GT:AD:DP:GL:GQ	0/1:27,4:24:-11.68,-7.23,-69.44:44.48
-chr1	4234162	rs55680202	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.02;HRun=14;HaplotypeScore=7.57;MQ=46.57;MQ0=0;OQ=162.83;QD=3.54;SB=-20.39	GT:AD:DP:GL:GQ	0/1:36,9:39:-31.01,-11.45,-100.16:99
-chr1	4234461	rs2898791	C	A	324.76	PASS	AC=1;AF=0.50;AN=2;DB;DP=82;Dels=0.00;HRun=0;HaplotypeScore=0.82;MQ=54.58;MQ0=0;OQ=1440.90;QD=17.57;SB=-669.70	GT:AD:DP:GL:GQ	0/1:33,49:78:-170.87,-23.50,-98.97:99
-chr1	4235747	rs1495243	G	A	21.65	PASS	AC=1;AF=0.50;AN=2;DB;DP=35;Dels=0.00;HRun=2;HaplotypeScore=0.87;MQ=59.34;MQ0=0;OQ=727.40;QD=20.78;SB=-304.24	GT:AD:DP:GL:GQ	0/1:14,21:34:-86.27,-10.24,-44.00:99
-chr1	4235753	rs903541	A	G	320.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.74;MQ0=0;OQ=658.30;QD=17.79;SB=-304.49	GT:AD:DP:GL:GQ	0/1:15,22:36:-79.96,-10.84,-57.03:99
-chr1	4236215	rs2411739	T	C	3.39	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=4;HaplotypeScore=1.73;MQ=54.14;MQ0=0;OQ=570.50;QD=9.84;SB=-308.25	GT:AD:DP:GL:GQ	0/1:27,31:50:-75.41,-15.07,-105.40:99
-chr1	4243198	rs6658727	T	C	21.46	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=1;HaplotypeScore=1.26;MQ=56.21;MQ0=0;OQ=1400.87;QD=30.45;SB=-402.32	GT:AD:DP:GL:GQ	1/1:0,46:43:-143.70,-12.96,-0.03:99
-chr1	4254604	rs1495248	G	A	254.74	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=1.05;MQ=58.88;MQ0=0;OQ=575.96;QD=13.39;SB=-220.90	GT:AD:DP:GL:GQ	0/1:24,19:42:-73.53,-12.65,-79.75:99
-chr1	4255328	rs2130621	G	A	47.37	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=1;HaplotypeScore=4.28;MQ=59.31;MQ0=0;OQ=1064.10;QD=15.88;SB=-426.97	GT:AD:DP:GL:GQ	0/1:33,34:65:-129.28,-19.59,-111.47:99
-chr1	4255353	rs12123539	G	C	316.52	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=1.16;MQ=60.00;MQ0=0;OQ=1198.39;QD=17.89;SB=-531.27	GT:AD:DP:GL:GQ	0/1:31,36:67:-143.33,-20.20,-136.21:99
-chr1	4255453	rs2029490	A	G	353.66	PASS	AC=1;AF=0.50;AN=2;DB;DP=78;Dels=0.00;HRun=0;HaplotypeScore=1.83;MQ=59.70;MQ0=0;OQ=1028.79;QD=13.19;SB=-497.67	GT:AD:DP:GL:GQ	0/1:34,44:74:-128.48,-22.32,-128.69:99
-chr1	4256070	rs61769407	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.03;HRun=0;HaplotypeScore=33.48;MQ=52.67;MQ0=1;OQ=340.13;QD=5.08;SB=-156.75	GT:AD:DP:GL:GQ	0/1:47,18:58:-54.18,-16.88,-142.71:99
-chr1	4256256	rs12563155	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=1;HaplotypeScore=93.47;MQ=55.97;MQ0=0;OQ=536.64;QD=7.56;SB=-213.44	GT:AD:DP:GL:GQ	0/1:49,22:63:-75.92,-18.98,-150.16:99
-chr1	4256294	.	C	T	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=71;Dels=0.00;HRun=0;HaplotypeScore=8.05;MQ=57.07;MQ0=1;OQ=87.19;QD=1.23;SB=41.60	GT:AD:DP:GL:GQ	0/1:61,10:65:-31.59,-19.59,-196.34:99
-chr1	4256295	.	A	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=71;Dels=0.00;HRun=1;HaplotypeScore=7.58;MQ=57.07;MQ0=1;OQ=86.67;QD=1.22;SB=35.22	GT:AD:DP:GL:GQ	0/1:61,10:60:-30.03,-18.08,-181.58:99
-chr1	4256665	rs11487456	A	C	56.20	PASS	AC=1;AF=0.50;AN=2;DB;DP=88;Dels=0.00;HRun=1;HaplotypeScore=2.90;MQ=57.92;MQ0=0;OQ=976.57;QD=11.10;SB=-464.71	GT:AD:DP:GL:GQ	0/1:50,38:85:-126.54,-25.60,-185.54:99
-chr1	4258667	rs10753377	G	C	1.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=5;HaplotypeScore=1.15;MQ=59.53;MQ0=0;OQ=783.06;QD=15.98;SB=-363.09	GT:AD:DP:GL:GQ	0/1:26,23:47:-95.76,-14.17,-99.93:99
-chr1	4259991	rs592323	G	T	282.55	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.52;MQ0=0;OQ=1759.13;QD=36.65;SB=-870.26	GT:AD:DP:GL:GQ	1/1:0,48:48:-179.51,-14.45,-0.01:99
-chr1	4261395	rs513096	G	A	177.19	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=1.21;MQ=58.45;MQ0=0;OQ=707.77;QD=15.73;SB=-231.55	GT:AD:DP:GL:GQ	0/1:23,22:44:-87.33,-13.26,-70.99:99
-chr1	4262899	.	A	G	18.25	LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=55;Dels=0.00;HRun=0;HaplotypeScore=43.81;MQ=48.38;MQ0=0;QD=0.33;SB=-10.00	GT:AD:DP:GL:GQ	0/1:50,5:40:-17.15,-12.05,-140.45:51.02
-chr1	4262904	rs28675202	G	A	73.10	SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=14.98;MQ=50.70;MQ0=0;QD=1.43;SB=-10.00	GT:AD:DP:GL:GQ	0/1:40,11:45:-24.15,-13.55,-132.97:99
-chr1	4262909	.	G	A	79.12	SnpCluster	AC=1;AF=0.50;AN=2;DP=48;Dels=0.00;HRun=0;HaplotypeScore=5.00;MQ=50.76;MQ0=0;QD=1.65;SB=-10.00	GT:AD:DP:GL:GQ	0/1:37,11:43:-24.15,-12.95,-125.43:99
-chr1	4262914	rs629808	G	A	33.56	LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=52.89;MQ=50.96;MQ0=0;QD=0.68;SB=-10.00	GT:AD:DP:GL:GQ	0/1:39,10:44:-19.89,-13.25,-132.97:66.40
-chr1	4262923	.	C	T	231.89	SnpCluster	AC=1;AF=0.50;AN=2;DP=44;Dels=0.00;HRun=0;HaplotypeScore=36.64;MQ=51.44;MQ0=0;QD=5.27;SB=-10.00	GT:AD:DP:GL:GQ	0/1:30,14:37:-37.63,-11.16,-89.50:99
-chr1	4262924	rs3124336	G	A	119.70	SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=42.63;MQ=51.44;MQ0=0;QD=2.72;SB=-10.00	GT:AD:DP:GL:GQ	0/1:30,14:37:-26.40,-11.15,-102.56:99
-chr1	4262928	.	C	T	227.91	SnpCluster	AC=1;AF=0.50;AN=2;DP=45;Dels=0.00;HRun=0;HaplotypeScore=40.91;MQ=51.65;MQ0=0;QD=5.06;SB=-10.00	GT:AD:DP:GL:GQ	0/1:31,14:38:-37.54,-11.47,-89.09:99
-chr1	4262934	.	G	A	212.81	SnpCluster	AC=1;AF=0.50;AN=2;DP=46;Dels=0.00;HRun=0;HaplotypeScore=38.78;MQ=51.84;MQ0=0;QD=4.63;SB=-10.00	GT:AD:DP:GL:GQ	0/1:35,11:39:-36.31,-11.75,-102.65:99
-chr1	4262955	.	C	T	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=37;Dels=0.00;HRun=1;HaplotypeScore=10.30;MQ=55.28;MQ0=0;OQ=119.85;QD=3.24;SB=-10.00	GT:AD:DP:GL:GQ	0/1:30,7:34:-25.51,-10.24,-106.69:99
-chr1	4262965	.	T	C	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=36;Dels=0.00;HRun=0;HaplotypeScore=4.99;MQ=55.83;MQ0=0;OQ=58.64;QD=1.63;SB=-10.00	GT:AD:DP:GL:GQ	0/1:31,5:33:-19.09,-9.94,-116.28:91.47
-chr1	4263200	.	T	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=41;Dels=0.00;HRun=0;HaplotypeScore=16.50;MQ=29.51;MQ0=20;OQ=97.44;QD=2.38;SB=-10.00	GT:AD:DP:GL:GQ	0/1:35,5:14:-17.24,-4.22,-36.40:99
-chr1	4263205	rs12035244	T	C	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=20.28;MQ=30.89;MQ0=18;OQ=95.43;QD=2.27;SB=-10.00	GT:AD:DP:GL:GQ	0/1:37,5:15:-17.34,-4.52,-40.16:99
-chr1	4263595	rs34429154	C	A	184.54	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=2.15;MQ=59.01;MQ0=0;OQ=488.72;QD=10.40;SB=-267.26	GT:AD:DP:GL:GQ	0/1:29,18:46:-66.01,-13.86,-101.87:99
-chr1	4263832	rs584035	G	A	216.29	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=1.89;MQ=59.61;MQ0=0;OQ=1091.44;QD=18.50;SB=-496.53	GT:AD:DP:GL:GQ	0/1:27,32:59:-130.21,-17.78,-86.40:99
-chr1	4263930	rs503536	G	A	202.82	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=3.37;MQ=59.57;MQ0=0;OQ=661.52;QD=12.25;SB=-344.44	GT:AD:DP:GL:GQ	0/1:32,22:49:-84.20,-14.76,-96.54:99
-chr1	4264086	rs693734	C	T	101.31	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=2;HaplotypeScore=2.89;MQ=58.91;MQ0=0;OQ=1021.37;QD=17.02;SB=-501.11	GT:AD:DP:GL:GQ	0/1:29,31:59:-123.20,-17.78,-92.76:99
-chr1	4264332	rs1106307	A	G	290.23	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=3.63;MQ=59.33;MQ0=0;OQ=913.45;QD=14.73;SB=-354.33	GT:AD:DP:GL:GQ	0/1:28,34:58:-112.10,-17.47,-104.59:99
-chr1	4264424	rs2132176	A	G	368.22	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=60.00;MQ0=0;OQ=613.38;QD=11.15;SB=-237.28	GT:AD:DP:GL:GQ	0/1:30,25:53:-80.60,-15.97,-111.46:99
-chr1	4264542	rs2132174	T	A	221.74	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=1;HaplotypeScore=0.99;MQ=52.27;MQ0=0;OQ=1008.56;QD=17.69;SB=-458.63	GT:AD:DP:GL:GQ	0/1:21,35:54:-122.63,-18.49,-81.00:99
-chr1	4264801	rs3007778	G	C	66.30	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=2;HaplotypeScore=1.47;MQ=58.11;MQ0=0;OQ=580.26;QD=12.35;SB=-271.29	GT:AD:DP:GL:GQ	0/1:28,19:44:-74.59,-13.28,-102.55:99
-chr1	4265009	rs3007777	C	A	272.57	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.97;MQ=59.09;MQ0=0;OQ=812.00;QD=17.65;SB=-415.86	GT:AD:DP:GL:GQ	0/1:19,27:45:-98.04,-13.55,-64.20:99
-chr1	4265174	.	G	A	199.75	PASS	AC=1;AF=0.50;AN=2;DP=41;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.87;MQ0=0;OQ=560.44;QD=13.67;SB=-202.85	GT:AD:DP:GL:GQ	0/1:23,18:41:-71.68,-12.35,-78.36:99
-chr1	4265866	rs56198562	A	G	125.40	PASS	AC=1;AF=0.50;AN=2;DB;DP=84;Dels=0.00;HRun=1;HaplotypeScore=2.61;MQ=59.78;MQ0=0;OQ=979.47;QD=11.66;SB=-298.20	GT:AD:DP:GL:GQ	0/1:43,41:82:-125.95,-24.72,-170.33:99
-chr1	4266398	rs1495240	C	T	180.37	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=2.46;MQ=59.09;MQ0=0;OQ=962.96;QD=18.88;SB=-480.01	GT:AD:DP:GL:GQ	0/1:23,28:47:-113.74,-14.16,-62.01:99
-chr1	4266494	rs1845634	G	A	227.70	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=1;HaplotypeScore=0.58;MQ=60.00;MQ0=0;OQ=1124.56;QD=17.85;SB=-553.73	GT:AD:DP:GL:GQ	0/1:30,33:63:-134.72,-18.98,-108.50:99
-chr1	4267183	rs1490413	G	A	163.02	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=2;HaplotypeScore=1.58;MQ=59.39;MQ0=0;OQ=1192.58;QD=17.54;SB=-578.10	GT:AD:DP:GL:GQ	0/1:31,37:66:-142.43,-19.88,-110.71:99
-chr1	4267249	rs16838591	G	A	109.35	PASS	AC=1;AF=0.50;AN=2;DB;DP=34;Dels=0.00;HRun=1;HaplotypeScore=0.99;MQ=59.45;MQ0=0;OQ=560.73;QD=16.49;SB=-154.59	GT:AD:DP:GL:GQ	0/1:17,17:34:-69.60,-10.24,-59.00:99
-chr1	4267670	rs17448695	C	T	256.61	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=1;HaplotypeScore=2.17;MQ=59.11;MQ0=0;OQ=785.86;QD=16.72;SB=-406.95	GT:AD:DP:GL:GQ	0/1:22,24:45:-95.42,-13.55,-80.15:99
-chr1	4267782	rs1817914	T	C	324.51	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=1;HaplotypeScore=0.32;MQ=58.97;MQ0=0;OQ=827.52;QD=14.03;SB=-394.24	GT:AD:DP:GL:GQ	0/1:29,30:58:-103.51,-17.47,-117.96:99
-chr1	4267840	rs2934983	G	A	322.55	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=1;HaplotypeScore=1.00;MQ=59.36;MQ0=0;OQ=1060.38;QD=18.28;SB=-513.09	GT:AD:DP:GL:GQ	0/1:26,32:57:-126.49,-17.17,-95.38:99
-chr1	4267886	rs1817913	A	G	440.55	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=60.00;MQ0=0;OQ=738.48;QD=13.43;SB=-393.26	GT:AD:DP:GL:GQ	0/1:24,31:50:-92.21,-15.08,-81.77:99
-chr1	4268301	rs351622	A	T	719.15	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.09;MQ0=0;OQ=1814.47;QD=35.58;SB=-930.73	GT:AD:DP:GL:GQ	1/1:0,51:49:-185.04,-14.76,-0.01:99
-chr1	4268579	rs351621	T	C	72.96	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=2.35;MQ=59.25;MQ0=0;OQ=1364.91;QD=27.30;SB=-524.09	GT:AD:DP:GL:GQ	1/1:0,50:43:-140.11,-12.97,-0.04:99
-chr1	4268604	rs351620	C	T	134.99	PASS	AC=2;AF=1.00;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=2.70;MQ=59.46;MQ0=0;OQ=1433.75;QD=33.34;SB=-736.64	GT:AD:DP:GL:GQ	1/1:0,43:39:-146.99,-11.76,-0.03:99
-chr1	4268679	rs351619	G	A	84.28	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=1739.98;QD=37.83;SB=-519.64	GT:AD:DP:GL:GQ	1/1:0,46:44:-177.59,-13.26,-0.01:99
-chr1	4268802	rs351618	T	C	98.42	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=0.48;MQ=60.00;MQ0=0;OQ=1092.21;QD=26.64;SB=-356.42	GT:AD:DP:GL:GQ	1/1:0,41:37:-112.85,-11.17,-0.05:99
-chr1	4268811	rs351617	C	T	143.28	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=60.00;MQ0=0;OQ=1491.48;QD=36.38;SB=-509.63	GT:AD:DP:GL:GQ	1/1:1,40:39:-152.75,-11.76,-0.02:99
-chr1	4268960	rs2087571	C	T	152.24	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=1.62;MQ=53.63;MQ0=0;OQ=643.83;QD=17.40;SB=-299.23	GT:AD:DP:GL:GQ	0/1:15,22:34:-77.91,-10.25,-47.03:99
-chr1	4269767	rs351616	A	G	168.33	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=1.39;MQ=58.87;MQ0=0;OQ=1214.77;QD=29.63;SB=-431.27	GT:AD:DP:GL:GQ	1/1:0,41:38:-125.09,-11.46,-0.03:99
-chr1	4270245	rs351615	G	A	292.81	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=1.76;MQ=58.55;MQ0=0;OQ=1966.57;QD=35.76;SB=-975.01	GT:AD:DP:GL:GQ	1/1:0,54:52:-200.27,-15.67,-0.02:99
-chr1	4271723	rs351614	C	T	601.68	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.33;MQ0=0;OQ=2473.56;QD=39.90;SB=-1111.03	GT:AD:DP:GL:GQ	1/1:0,62:62:-250.96,-18.68,-0.01:99
-chr1	4271809	rs12132314	C	T	430.38	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=59.65;MQ0=0;OQ=1181.91;QD=18.18;SB=-613.64	GT:AD:DP:GL:GQ	0/1:30,35:65:-141.06,-19.59,-97.20:99
-chr1	4273032	rs171260	A	C	300.19	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=1;HaplotypeScore=1.30;MQ=60.00;MQ0=0;OQ=870.08;QD=12.08;SB=-225.83	GT:AD:DP:GL:GQ	0/1:41,31:71:-111.68,-21.38,-150.14:99
-chr1	4274131	rs351613	A	C	265.29	PASS	AC=2;AF=1.00;AN=2;DB;DP=65;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=59.14;MQ0=0;OQ=2299.32;QD=35.37;SB=-1119.04	GT:AD:DP:GL:GQ	1/1:0,65:65:-233.54,-19.58,-0.02:99
-chr1	4277771	rs351596	C	T	568.91	PASS	AC=2;AF=1.00;AN=2;DB;DP=65;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.07;MQ0=0;OQ=2579.09;QD=39.68;SB=-949.23	GT:AD:DP:GL:GQ	1/1:0,65:64:-261.51,-19.28,-0.02:99
-chr1	4279737	rs876273	C	G	132.40	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=4.17;MQ=59.56;MQ0=0;OQ=768.76;QD=14.78;SB=-189.63	GT:AD:DP:GL:GQ	0/1:23,29:48:-94.65,-14.49,-97.38:99
-chr1	4279818	rs351598	A	T	381.51	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=1;HaplotypeScore=1.53;MQ=59.66;MQ0=0;OQ=991.33;QD=14.58;SB=-452.46	GT:AD:DP:GL:GQ	0/1:35,33:67:-122.60,-20.18,-130.61:99
-chr1	4280055	rs1874269	C	T	619.47	PASS	AC=2;AF=1.00;AN=2;DB;DP=70;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.78;MQ0=0;OQ=2766.74;QD=39.52;SB=-1179.55	GT:AD:DP:GL:GQ	1/1:0,70:69:-280.28,-20.79,-0.02:99
-chr1	4280204	rs2411741	C	A	180.72	PASS	AC=1;AF=0.50;AN=2;DB;DP=84;Dels=0.00;HRun=2;HaplotypeScore=1.15;MQ=60.13;MQ0=0;OQ=1218.75;QD=14.51;SB=-564.82	GT:AD:DP:GL:GQ	0/1:42,42:82:-149.85,-24.70,-149.73:99
-chr1	4280489	rs351599	C	T	413.51	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=1.44;MQ=59.72;MQ0=0;OQ=1071.03;QD=16.23;SB=-457.49	GT:AD:DP:GL:GQ	0/1:33,33:66:-130.29,-19.90,-102.77:99
-chr1	4285644	.	A	G	0.07	PASS	AC=1;AF=0.50;AN=2;DP=49;Dels=0.00;HRun=4;HaplotypeScore=2.54;MQ=57.79;MQ0=0;OQ=595.83;QD=12.16;SB=-120.71	GT:AD:DP:GL:GQ	0/1:26,23:47:-77.03,-14.16,-95.21:99
-chr1	4288221	.	G	A	0.84	PASS	AC=1;AF=0.50;AN=2;DP=83;Dels=0.00;HRun=1;HaplotypeScore=8.13;MQ=58.71;MQ0=0;OQ=1360.73;QD=16.39;SB=-394.38	GT:AD:DP:GL:GQ	0/1:43,40:81:-163.76,-24.40,-149.01:99
-chr1	4289709	.	T	G	46.86	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=48;Dels=0.00;HRun=1;HaplotypeScore=16.54;MQ=56.55;MQ0=0;QD=0.98;SB=53.18	GT:AD:DP:GL:GQ	0/1:27,21:32:-17.62,-9.65,-87.21:79.70
-chr1	4292594	rs34245285	G	C	0.05	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=2;HaplotypeScore=3.96;MQ=50.65;MQ0=4;OQ=195.36;QD=3.15;SB=-102.43	GT:AD:DP:GL:GQ	0/1:47,15:34:-33.09,-10.27,-97.74:99
-chr1	4293081	rs34762254	C	G	17.74	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=35.42;MQ0=7;QD=0.43;SB=11.07	GT:AD:DP:GL:GQ	0/1:35,5:26:-12.90,-7.85,-90.70:50.51
-chr1	4293374	.	G	A	3.97	PASS	AC=1;AF=0.50;AN=2;DP=50;Dels=0.00;HRun=0;HaplotypeScore=1.78;MQ=44.45;MQ0=2;OQ=329.37;QD=6.59;SB=0.51	GT:AD:DP:GL:GQ	0/1:31,19:40:-48.28,-12.06,-89.72:99
-chr1	4296431	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=120;Dels=0.01;HRun=0;HaplotypeScore=166.11;MQ=33.71;MQ0=1;OQ=76.77;QD=0.64;SB=116.41	GT:AD:DP:GL:GQ	0/1:95,22:100:-40.80,-29.83,-343.52:99
-chr1	4296441	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=126;Dels=0.07;HRun=0;HaplotypeScore=204.38;MQ=34.16;MQ0=1;OQ=63.06;QD=0.50;SB=111.78	GT:AD:DP:GL:GQ	0/1:104,10:96:-43.83,-34.24,-290.54:95.89
-chr1	4296449	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=95;Dels=0.00;HRun=0;HaplotypeScore=184.01;MQ=35.76;MQ0=1;OQ=76.57;QD=0.81;SB=108.85	GT:AD:DP:GL:GQ	0/1:78,6:65:-53.79,-42.85,-256.56:99
-chr1	4296459	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=87;Dels=0.00;HRun=1;HaplotypeScore=225.82;MQ=37.43;MQ0=0;OQ=345.89;QD=3.98;SB=26.09	GT:AD:DP:GL:GQ	0/1:63,24:68:-58.36,-20.48,-198.46:99
-chr1	4296469	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=95;Dels=0.00;HRun=1;HaplotypeScore=189.98;MQ=37.41;MQ0=0;OQ=75.74;QD=0.80;SB=12.63	GT:AD:DP:GL:GQ	0/1:84,11:69:-31.64,-20.79,-221.92:99
-chr1	4296493	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=102;Dels=0.00;HRun=0;HaplotypeScore=88.30;MQ=41.30;MQ0=0;OQ=474.04;QD=4.65;SB=-167.48	GT:AD:DP:GL:GQ	0/1:59,36:81:-93.85,-43.16,-272.31:99
-chr1	4296506	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=103;Dels=0.03;HRun=1;HaplotypeScore=78.61;MQ=43.01;MQ0=0;OQ=51.88;QD=0.50;SB=101.36	GT:AD:DP:GL:GQ	0/1:87,13:87:-34.09,-25.62,-299.11:84.72
-chr1	4296513	.	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=100;Dels=0.02;HRun=0;HaplotypeScore=60.45;MQ=43.56;MQ0=0;OQ=185.47;QD=1.85;SB=-3.86	GT:AD:DP:GL:GQ	0/1:80,18:74:-44.13,-22.29,-236.48:99
-chr1	4296520	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=111;Dels=0.00;HRun=1;HaplotypeScore=86.57;MQ=43.66;MQ0=0;OQ=90.49;QD=0.82;SB=69.81	GT:AD:DP:GL:GQ	0/1:99,12:95:-40.96,-28.62,-301.41:99
-chr1	4296571	.	T	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=100;Dels=0.02;HRun=0;HaplotypeScore=148.81;MQ=42.35;MQ0=0;OQ=149.13;QD=1.49;SB=56.28	GT:AD:DP:GL:GQ	0/1:64,20:79:-66.77,-48.58,-247.91:99
-chr1	4296587	.	G	A	55.07	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=113;Dels=0.02;HRun=0;HaplotypeScore=138.42;MQ=36.11;MQ0=2;QD=0.49;SB=3.46	GT:AD:DP:GL:GQ	0/1:83,28:77:-31.99,-23.20,-236.17:87.91
-chr1	4296590	.	A	G	63.20	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=113;Dels=0.01;HRun=1;HaplotypeScore=134.39;MQ=36.11;MQ0=2;QD=0.56;SB=44.15	GT:AD:DP:GL:GQ	0/1:101,11:84:-34.62,-25.01,-283.57:96.04
-chr1	4296596	.	G	A	133.96	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=123;Dels=0.00;HRun=0;HaplotypeScore=190.44;MQ=35.58;MQ0=2;QD=1.09;SB=41.12	GT:AD:DP:GL:GQ	0/1:107,16:99:-46.51,-29.83,-296.83:99
-chr1	4296607	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=125;Dels=0.00;HRun=1;HaplotypeScore=185.73;MQ=34.74;MQ0=2;OQ=309.12;QD=2.47;SB=41.15	GT:AD:DP:GL:GQ	0/1:106,19:100:-64.31,-30.12,-298.02:99
-chr1	4296636	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=128;Dels=0.00;HRun=0;HaplotypeScore=188.32;MQ=35.30;MQ0=3;OQ=116.48;QD=0.91;SB=56.18	GT:AD:DP:GL:GQ	0/1:110,17:102:-45.68,-30.75,-346.20:99
-chr1	4296642	.	T	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=130;Dels=0.00;HRun=1;HaplotypeScore=236.73;MQ=34.36;MQ0=5;OQ=253.36;QD=1.95;SB=47.15	GT:AD:DP:GL:GQ	0/1:113,17:102:-59.34,-30.72,-306.11:99
-chr1	4296665	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=117;Dels=0.00;HRun=0;HaplotypeScore=107.40;MQ=33.96;MQ0=6;OQ=319.22;QD=2.73;SB=50.15	GT:AD:DP:GL:GQ	0/1:91,24:96:-64.13,-28.92,-272.83:99
-chr1	4296668	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=119;Dels=0.01;HRun=0;HaplotypeScore=114.24;MQ=34.12;MQ0=7;OQ=295.42;QD=2.48;SB=-19.17	GT:AD:DP:GL:GQ	0/1:99,19:98:-62.05,-29.23,-276.38:99
-chr1	4296677	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=110;Dels=0.03;HRun=0;HaplotypeScore=117.38;MQ=34.73;MQ0=5;OQ=320.24;QD=2.91;SB=47.14	GT:AD:DP:GL:GQ	0/1:86,21:91:-62.13,-26.82,-250.93:99
-chr1	4296686	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=88;Dels=0.00;HRun=0;HaplotypeScore=54.93;MQ=36.96;MQ0=5;OQ=147.08;QD=1.67;SB=50.15	GT:AD:DP:GL:GQ	0/1:78,10:74:-40.29,-22.30,-219.44:99
-chr1	4308180	.	C	T	161.22	PASS	AC=1;AF=0.50;AN=2;DP=73;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=58.53;MQ0=0;OQ=1282.15;QD=17.56;SB=-488.11	GT:AD:DP:GL:GQ	0/1:35,38:73:-153.50,-22.00,-116.62:99
-chr1	4309112	.	A	C	86.02	PASS	AC=1;AF=0.50;AN=2;DP=43;Dels=0.00;HRun=1;HaplotypeScore=1.15;MQ=59.03;MQ0=0;OQ=562.66;QD=13.09;SB=-287.67	GT:AD:DP:GL:GQ	0/1:22,20:43:-74.67,-15.12,-82.44:99
-chr1	4310347	.	C	T	101.72	PASS	AC=1;AF=0.50;AN=2;DP=71;Dels=0.00;HRun=1;HaplotypeScore=0.67;MQ=59.41;MQ0=0;OQ=1172.68;QD=16.52;SB=-579.36	GT:AD:DP:GL:GQ	0/1:36,35:70:-141.64,-21.08,-130.80:99
-chr1	4314528	.	T	C	249.50	PASS	AC=1;AF=0.50;AN=2;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1047.71;QD=18.38;SB=-476.64	GT:AD:DP:GL:GQ	0/1:22,35:57:-125.23,-17.17,-90.17:99
-chr1	4316332	.	T	G	43.87	PASS	AC=1;AF=0.50;AN=2;DP=32;Dels=0.00;HRun=1;HaplotypeScore=1.09;MQ=59.28;MQ0=0;OQ=471.43;QD=14.73;SB=-242.41	GT:AD:DP:GL:GQ	0/1:14,18:31:-59.77,-9.34,-47.32:99
-chr1	4316334	.	C	G	15.52	PASS	AC=1;AF=0.50;AN=2;DP=34;Dels=0.00;HRun=0;HaplotypeScore=1.10;MQ=59.32;MQ0=0;OQ=676.22;QD=19.89;SB=-323.04	GT:AD:DP:GL:GQ	0/1:15,19:34:-81.16,-10.25,-60.88:99
-chr1	4318103	rs349395	A	G	659.54	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.24;MQ0=0;OQ=1716.14;QD=31.20;SB=-834.63	GT:AD:DP:GL:GQ	1/1:0,55:54:-175.24,-16.28,-0.05:99
-chr1	4319680	rs349393	A	C	563.28	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.81;MQ0=0;OQ=813.26;QD=15.95;SB=-376.77	GT:AD:DP:GL:GQ	0/1:23,28:51:-99.97,-15.36,-86.41:99
-chr1	4319765	rs102083	A	T	361.40	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=1;HaplotypeScore=0.83;MQ=55.80;MQ0=0;OQ=747.97;QD=14.96;SB=-385.65	GT:AD:DP:GL:GQ	0/1:24,26:48:-92.54,-14.46,-85.84:99
-chr1	4319782	rs28431405	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=20;HaplotypeScore=17.05;MQ=53.28;MQ0=0;OQ=875.22;QD=14.59;SB=-406.12	GT:AD:DP:GL:GQ	0/1:25,35:49:-105.57,-14.76,-69.63:99
-chr1	4319814	rs102085	G	A	15.88	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=2;HaplotypeScore=5.54;MQ=52.08;MQ0=0;OQ=929.67;QD=17.22;SB=-462.49	GT:AD:DP:GL:GQ	0/1:25,29:49:-111.01,-14.76,-74.46:99
-chr1	4319857	rs17410050	C	T	91.63	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=57.83;MQ0=0;OQ=1009.89;QD=18.36;SB=-347.35	GT:AD:DP:GL:GQ	0/1:26,29:55:-120.84,-16.57,-94.75:99
-chr1	4320268	rs349392	G	T	359.85	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=2.27;MQ=58.71;MQ0=0;OQ=818.84;QD=15.16;SB=-433.16	GT:AD:DP:GL:GQ	0/1:23,30:49:-99.94,-14.77,-68.96:99
-chr1	4320352	rs101287	A	C	9.82	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=3;HaplotypeScore=2.94;MQ=58.91;MQ0=0;OQ=686.61;QD=10.73;SB=-323.81	GT:AD:DP:GL:GQ	0/1:36,28:61:-90.33,-18.38,-119.68:99
-chr1	4321671	rs56216403	A	T	13.76	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=7.66;MQ=57.98;MQ0=0;OQ=569.50;QD=12.94;SB=-290.67	GT:AD:DP:GL:GQ	0/1:24,20:41:-72.59,-12.36,-76.85:99
-chr1	4321865	rs349391	T	C	61.74	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=3.58;MQ=58.51;MQ0=0;OQ=775.30;QD=16.50;SB=-140.34	GT:AD:DP:GL:GQ	0/1:20,26:42:-93.47,-12.66,-62.46:99
-chr1	4321866	rs56376431	G	A	8.49	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=3.58;MQ=58.51;MQ0=0;OQ=873.71;QD=18.59;SB=-178.26	GT:AD:DP:GL:GQ	0/1:21,26:42:-103.31,-12.65,-56.39:99
-chr1	4322006	rs56162804	C	T	116.80	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.53;MQ0=0;OQ=1021.04;QD=20.84;SB=-534.77	GT:AD:DP:GL:GQ	0/1:19,30:49:-120.16,-14.77,-59.62:99
-chr1	4322030	rs55838104	C	T	52.16	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=1;HaplotypeScore=1.96;MQ=60.00;MQ0=0;OQ=1120.64;QD=21.14;SB=-534.76	GT:AD:DP:GL:GQ	0/1:20,33:52:-131.01,-15.67,-66.54:99
-chr1	4322090	rs16838800	A	G	416.20	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=910.62;QD=19.80;SB=-423.34	GT:AD:DP:GL:GQ	0/1:16,30:46:-108.20,-13.86,-64.49:99
-chr1	4322538	rs12403556	C	G	69.76	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=1.92;MQ=60.00;MQ0=0;OQ=1513.57;QD=24.81;SB=-525.74	GT:AD:DP:GL:GQ	0/1:20,41:61:-173.03,-18.39,-83.32:99
-chr1	4322543	rs12404034	A	G	25.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=1;HaplotypeScore=3.64;MQ=60.00;MQ0=0;OQ=1221.46;QD=20.02;SB=-417.22	GT:AD:DP:GL:GQ	0/1:20,41:60:-143.50,-18.07,-80.25:99
-chr1	4322609	rs12404038	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=5;HaplotypeScore=9.16;MQ=59.56;MQ0=0;OQ=664.61;QD=12.54;SB=-143.41	GT:AD:DP:GL:GQ	0/1:24,29:49:-84.51,-14.77,-94.35:99
-chr1	4322739	rs12404366	T	C	226.21	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=1;HaplotypeScore=0.99;MQ=60.00;MQ0=0;OQ=432.95;QD=9.41;SB=-158.54	GT:AD:DP:GL:GQ	0/1:29,17:46:-60.44,-13.86,-115.98:99
-chr1	4322916	rs12402553	G	A	357.39	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.63;MQ=59.62;MQ0=0;OQ=842.62;QD=13.81;SB=-393.36	GT:AD:DP:GL:GQ	0/1:35,26:59:-105.32,-17.77,-117.60:99
-chr1	4323438	rs16838810	A	G	123.66	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=3;HaplotypeScore=0.32;MQ=59.40;MQ0=0;OQ=808.90;QD=13.05;SB=-366.96	GT:AD:DP:GL:GQ	0/1:30,32:61:-102.56,-18.39,-119.19:99
-chr1	4323490	rs55944275	G	A	62.78	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=1;HaplotypeScore=0.99;MQ=59.36;MQ0=0;OQ=1153.53;QD=19.89;SB=-343.36	GT:AD:DP:GL:GQ	0/1:24,34:57:-135.81,-17.17,-85.54:99
-chr1	4323756	rs349390	T	C	313.61	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=59.62;MQ0=0;OQ=671.97;QD=11.20;SB=-140.85	GT:AD:DP:GL:GQ	0/1:34,26:58:-87.95,-17.47,-136.36:99
-chr1	4323757	rs58351078	G	A	132.53	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=1;HaplotypeScore=0.79;MQ=59.61;MQ0=0;OQ=802.14;QD=13.60;SB=-181.76	GT:AD:DP:GL:GQ	0/1:34,25:59:-101.27,-17.77,-124.39:99
-chr1	4323928	rs61676533	C	T	374.12	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=0.97;MQ=59.48;MQ0=0;OQ=1036.80;QD=14.40;SB=-477.00	GT:AD:DP:GL:GQ	0/1:40,32:72:-128.65,-21.69,-142.77:99
-chr1	4323975	rs16838812	A	G	340.79	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=1.98;MQ=59.17;MQ0=0;OQ=822.30;QD=12.09;SB=-364.22	GT:AD:DP:GL:GQ	0/1:38,30:68:-106.00,-20.49,-150.74:99
-chr1	4324005	rs16838813	G	A	586.02	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.08;MQ0=0;OQ=833.74;QD=14.13;SB=-356.82	GT:AD:DP:GL:GQ	0/1:33,26:58:-104.14,-17.48,-106.56:99
-chr1	4324062	rs56775247	A	G	352.77	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=53.86;MQ0=0;OQ=755.78;QD=11.81;SB=-150.88	GT:AD:DP:GL:GQ	0/1:37,27:64:-98.14,-19.28,-148.79:99
-chr1	4324102	rs57599092	A	T	199.13	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=1;HaplotypeScore=1.94;MQ=53.27;MQ0=0;OQ=1008.31;QD=14.83;SB=-333.61	GT:AD:DP:GL:GQ	0/1:34,34:66:-123.99,-19.88,-127.49:99
-chr1	4324399	rs11804096	T	C	269.49	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=45.70;MQ0=1;OQ=598.48;QD=11.29;SB=-306.38	GT:AD:DP:GL:GQ	0/1:28,25:48:-77.59,-14.46,-100.69:99
-chr1	4324626	rs11803736	A	G	203.50	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=1;HaplotypeScore=1.00;MQ=51.26;MQ0=1;OQ=569.48;QD=10.55;SB=-273.41	GT:AD:DP:GL:GQ	0/1:32,22:52:-75.89,-15.66,-126.39:99
-chr1	4324693	rs11801800	G	A	371.17	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=1.05;MQ=50.70;MQ0=1;OQ=920.80;QD=14.85;SB=-460.99	GT:AD:DP:GL:GQ	0/1:32,30:59:-113.14,-17.77,-113.29:99
-chr1	4324939	rs12729994	C	A	219.08	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=56.71;MQ0=0;OQ=746.98;QD=16.98;SB=-320.72	GT:AD:DP:GL:GQ	0/1:18,26:42:-90.63,-12.65,-55.46:99
-chr1	4325115	rs12742617	T	G	433.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=84;Dels=0.00;HRun=0;HaplotypeScore=1.13;MQ=59.56;MQ0=0;OQ=1013.88;QD=12.07;SB=-397.13	GT:AD:DP:GL:GQ	0/1:47,37:83:-129.67,-25.00,-173.24:99
-chr1	4325508	rs34012704	A	G	166.42	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=1;HaplotypeScore=0.90;MQ=59.63;MQ0=0;OQ=986.31;QD=19.34;SB=-504.18	GT:AD:DP:GL:GQ	0/1:17,34:49:-116.68,-14.77,-62.75:99
-chr1	4325583	.	G	A	54.73	PASS	AC=1;AF=0.50;AN=2;DP=43;Dels=0.00;HRun=0;HaplotypeScore=1.68;MQ=60.00;MQ0=0;OQ=709.46;QD=16.50;SB=-303.82	GT:AD:DP:GL:GQ	0/1:18,25:41:-86.59,-12.36,-64.70:99
-chr1	4325707	rs12405082	A	G	0.52	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=3;HaplotypeScore=6.04;MQ=58.57;MQ0=0;OQ=521.78;QD=8.42;SB=-177.38	GT:AD:DP:GL:GQ	0/1:38,24:56:-72.34,-16.88,-134.28:99
-chr1	4325759	.	C	T	1.66	PASS	AC=1;AF=0.50;AN=2;DP=62;Dels=0.00;HRun=2;HaplotypeScore=2.89;MQ=58.50;MQ0=0;OQ=768.28;QD=12.39;SB=-160.15	GT:AD:DP:GL:GQ	0/1:32,29:57:-97.29,-17.18,-106.60:99
-chr1	4325887	rs12403671	G	C	245.59	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=1.16;MQ=59.67;MQ0=0;OQ=1119.45;QD=19.64;SB=-552.71	GT:AD:DP:GL:GQ	0/1:24,33:54:-131.50,-16.27,-104.02:99
-chr1	4325945	rs12404619	C	T	347.85	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=58.65;MQ0=0;OQ=874.85;QD=15.91;SB=-387.13	GT:AD:DP:GL:GQ	0/1:26,29:53:-106.74,-15.97,-91.70:99
-chr1	4326338	rs16838819	A	C	229.78	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=4.02;MQ=58.63;MQ0=0;OQ=550.44;QD=10.79;SB=-296.79	GT:AD:DP:GL:GQ	0/1:29,22:49:-73.09,-14.76,-103.75:99
-chr1	4327728	rs34472761	G	C	257.96	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=2.04;MQ=59.05;MQ0=0;OQ=1072.08;QD=16.75;SB=-550.71	GT:AD:DP:GL:GQ	0/1:32,32:62:-129.19,-18.70,-130.17:99
-chr1	4328031	rs56108323	G	A	198.39	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=1;HaplotypeScore=0.63;MQ=60.00;MQ0=0;OQ=626.21;QD=12.28;SB=-249.12	GT:AD:DP:GL:GQ	0/1:27,24:48:-80.37,-14.46,-97.54:99
-chr1	4329322	rs483344	A	G	283.35	PASS	AC=1;AF=0.50;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=1.68;MQ=59.34;MQ0=0;OQ=672.82;QD=9.61;SB=-273.11	GT:AD:DP:GL:GQ	0/1:41,29:68:-91.06,-20.50,-159.89:99
-chr1	4331124	rs572439	A	C	450.24	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=0.97;MQ=59.73;MQ0=0;OQ=1069.67;QD=15.73;SB=-417.82	GT:AD:DP:GL:GQ	0/1:30,38:67:-130.43,-20.18,-110.75:99
-chr1	4331158	rs572343	G	A	289.61	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=-0.06;MQ=59.72;MQ0=0;OQ=1247.65;QD=18.62;SB=-597.10	GT:AD:DP:GL:GQ	0/1:31,36:64:-147.32,-19.27,-103.83:99
-chr1	4331483	rs12750862	T	C	292.32	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=1;HaplotypeScore=2.22;MQ=59.55;MQ0=0;OQ=752.94;QD=14.76;SB=-378.63	GT:AD:DP:GL:GQ	0/1:24,27:49:-93.35,-14.77,-86.37:99
-chr1	4331508	.	C	T	49.49	PASS	AC=1;AF=0.50;AN=2;DP=50;Dels=0.00;HRun=0;HaplotypeScore=1.88;MQ=60.00;MQ0=0;OQ=892.12;QD=17.84;SB=-369.91	GT:AD:DP:GL:GQ	0/1:18,31:43:-105.46,-12.97,-47.94:99
-chr1	4333712	rs2926485	T	C	268.41	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=1;HaplotypeScore=2.56;MQ=59.83;MQ0=0;OQ=1004.92;QD=15.70;SB=-484.15	GT:AD:DP:GL:GQ	0/1:28,35:61:-122.15,-18.38,-108.51:99
-chr1	4334184	rs57575485	C	T	360.52	PASS	AC=1;AF=0.50;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=0.93;MQ=59.70;MQ0=0;OQ=1292.51;QD=16.79;SB=-566.07	GT:AD:DP:GL:GQ	0/1:37,40:76:-155.43,-22.90,-133.07:99
-chr1	4334834	rs661536	A	G	714.01	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1993.62;QD=34.98;SB=-900.02	GT:AD:DP:GL:GQ	1/1:0,57:57:-202.97,-17.17,-0.02:99
-chr1	4339520	rs902403	T	C	449.51	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=60.00;MQ0=0;OQ=846.06;QD=12.44;SB=-357.94	GT:AD:DP:GL:GQ	0/1:35,33:68:-108.38,-20.49,-140.89:99
-chr1	4339677	rs2926482	C	G	218.76	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2219.96;QD=42.69;SB=-974.35	GT:AD:DP:GL:GQ	1/1:0,52:52:-225.60,-15.67,-0.01:99
-chr1	4340373	rs590798	A	C	514.93	PASS	AC=2;AF=1.00;AN=2;DB;DP=76;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.45;MQ0=0;OQ=2632.91;QD=34.64;SB=-1142.61	GT:AD:DP:GL:GQ	1/1:0,76:76:-266.90,-22.89,-0.03:99
-chr1	4344158	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=59;Dels=0.00;HRun=3;HaplotypeScore=3.49;MQ=60.00;MQ0=0;OQ=63.29;QD=1.07;SB=56.21	GT:AD:DP:GL:GQ	0/1:42,17:47:-23.79,-14.18,-151.98:96.13
-chr1	4344566	rs349413	C	A	606.43	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1116.07;QD=14.69;SB=-454.53	GT:AD:DP:GL:GQ	0/1:39,37:76:-137.78,-22.89,-141.17:99
-chr1	4345038	rs164598	G	A	482.03	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.02;MQ0=0;OQ=1164.61;QD=17.38;SB=-524.70	GT:AD:DP:GL:GQ	0/1:32,35:67:-139.93,-20.18,-113.85:99
-chr1	4347591	rs4654526	C	T	500.86	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1310.21;QD=20.16;SB=-660.78	GT:AD:DP:GL:GQ	0/1:25,40:61:-152.69,-18.39,-71.94:99
-chr1	4351708	rs11585123	G	T	52.90	PASS	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.00;HRun=3;HaplotypeScore=1.96;MQ=59.43;MQ0=0;OQ=956.92;QD=13.11;SB=-391.99	GT:AD:DP:GL:GQ	0/1:39,34:73:-120.97,-21.99,-133.39:99
-chr1	4352257	rs627555	G	A	556.89	PASS	AC=1;AF=0.50;AN=2;DB;DP=91;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.08;MQ0=0;OQ=1274.67;QD=14.01;SB=-577.49	GT:AD:DP:GL:GQ	0/1:53,38:91:-158.16,-27.41,-187.48:99
-chr1	4352698	.	A	C	145.09	PASS	AC=1;AF=0.50;AN=2;DP=86;Dels=0.00;HRun=0;HaplotypeScore=0.92;MQ=60.00;MQ0=0;OQ=1251.00;QD=14.55;SB=-612.69	GT:AD:DP:GL:GQ	0/1:43,43:84:-153.68,-25.30,-154.64:99
-chr1	4353326	rs7523383	C	T	223.33	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=60.00;MQ0=0;OQ=1125.20;QD=18.75;SB=-322.36	GT:AD:DP:GL:GQ	0/1:24,35:55:-132.39,-16.58,-65.47:99
-chr1	4354986	rs55703746	G	T	228.36	PASS	AC=1;AF=0.50;AN=2;DB;DP=80;Dels=0.00;HRun=1;HaplotypeScore=0.83;MQ=60.00;MQ0=0;OQ=1494.65;QD=18.68;SB=-625.43	GT:AD:DP:GL:GQ	0/1:32,48:80:-176.84,-24.10,-112.47:99
-chr1	4358435	.	C	T	24.59	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=40;Dels=0.00;HRun=1;HaplotypeScore=3.25;MQ=55.69;MQ0=0;QD=0.61;SB=41.14	GT:AD:DP:GL:GQ	0/1:35,4:36:-16.60,-10.86,-102.91:57.41
-chr1	4358482	.	C	G	35.61	LowQual	AC=1;AF=0.50;AN=2;DP=34;Dels=0.00;HRun=0;HaplotypeScore=3.12;MQ=54.32;MQ0=0;QD=1.05;SB=-23.70	GT:AD:DP:GL:GQ	0/1:30,4:32:-16.49,-9.64,-124.37:68.45
-chr1	4359549	rs6679220	T	C	288.35	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=1;HaplotypeScore=0.67;MQ=60.00;MQ0=0;OQ=543.81;QD=10.66;SB=-272.37	GT:AD:DP:GL:GQ	0/1:30,21:50:-72.72,-15.06,-124.68:99
-chr1	4360825	rs56081339	G	A	327.33	PASS	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=1.41;MQ=59.43;MQ0=0;OQ=993.85;QD=13.61;SB=-456.06	GT:AD:DP:GL:GQ	0/1:40,33:70:-123.78,-21.11,-120.70:99
-chr1	4363525	rs349402	G	A	561.81	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.26;MQ0=0;OQ=1290.95;QD=16.99;SB=-425.80	GT:AD:DP:GL:GQ	0/1:36,40:74:-154.68,-22.30,-119.31:99
-chr1	4367389	rs4654429	G	A	56.05	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=5.58;MQ=57.65;MQ0=0;OQ=1142.68;QD=16.80;SB=-522.78	GT:AD:DP:GL:GQ	0/1:32,36:64:-136.84,-19.29,-93.56:99
-chr1	4367566	rs4654430	T	C	472.63	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.33;MQ0=0;OQ=611.79;QD=10.92;SB=-199.58	GT:AD:DP:GL:GQ	0/1:34,22:55:-81.03,-16.57,-131.86:99
-chr1	4368744	rs547923	C	A	335.14	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=2.25;MQ=58.91;MQ0=0;OQ=794.59;QD=12.42;SB=-343.21	GT:AD:DP:GL:GQ	0/1:34,30:61:-101.12,-18.38,-116.77:99
-chr1	4369295	rs6687224	C	G	567.99	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.69;MQ0=0;OQ=1064.80;QD=17.75;SB=-495.28	GT:AD:DP:GL:GQ	0/1:29,31:59:-127.55,-17.78,-120.89:99
-chr1	4369728	rs733308	T	G	295.33	PASS	AC=1;AF=0.50;AN=2;DB;DP=84;Dels=0.00;HRun=1;HaplotypeScore=1.39;MQ=59.19;MQ0=1;OQ=894.22;QD=10.65;SB=-355.63	GT:AD:DP:GL:GQ	0/1:48,36:83:-117.71,-25.00,-176.40:99
-chr1	4370735	rs2926477	A	G	468.63	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=995.20;QD=15.31;SB=-357.26	GT:AD:DP:GL:GQ	0/1:29,36:64:-122.09,-19.28,-116.14:99
-chr1	4371593	rs505933	A	G	376.41	PASS	AC=1;AF=0.50;AN=2;DB;DP=83;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=58.99;MQ0=0;OQ=894.44;QD=10.78;SB=-423.73	GT:AD:DP:GL:GQ	0/1:45,38:82:-117.44,-24.72,-179.72:99
-chr1	4371867	rs693045	T	C	492.95	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.26;MQ0=0;OQ=669.20;QD=9.99;SB=-303.21	GT:AD:DP:GL:GQ	0/1:37,30:64:-89.50,-19.29,-143.01:99
-chr1	4371873	rs10915529	G	C	482.75	PASS	AC=1;AF=0.50;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.33;MQ0=0;OQ=903.58;QD=12.91;SB=-393.25	GT:AD:DP:GL:GQ	0/1:40,30:69:-114.44,-20.80,-177.40:99
-chr1	4371886	rs659514	T	C	97.64	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=2;HaplotypeScore=1.39;MQ=58.28;MQ0=0;OQ=683.73;QD=10.05;SB=-268.51	GT:AD:DP:GL:GQ	0/1:42,26:67:-91.84,-20.18,-171.36:99
-chr1	4372308	rs4654533	C	G	209.19	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=59.20;MQ0=0;OQ=1490.53;QD=19.61;SB=-620.61	GT:AD:DP:GL:GQ	0/1:35,41:72:-174.05,-21.72,-126.16:99
-chr1	4375044	rs349405	A	C	311.25	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=541.86;QD=10.62;SB=-270.89	GT:AD:DP:GL:GQ	0/1:31,20:51:-72.83,-15.36,-116.45:99
-chr1	4375626	rs349406	T	C	212.51	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=1;HaplotypeScore=2.99;MQ=59.38;MQ0=0;OQ=1112.63;QD=14.84;SB=-554.63	GT:AD:DP:GL:GQ	0/1:36,39:72:-136.23,-21.69,-140.85:99
-chr1	4375771	rs12562242	G	T	432.17	PASS	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=1.26;MQ=59.23;MQ0=0;OQ=915.50;QD=12.54;SB=-381.76	GT:AD:DP:GL:GQ	0/1:39,34:71:-116.22,-21.39,-137.78:99
-chr1	4376133	rs349407	G	A	305.49	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=0;HaplotypeScore=0.87;MQ=60.03;MQ0=1;OQ=1382.00;QD=18.43;SB=-530.55	GT:AD:DP:GL:GQ	0/1:31,44:71:-162.87,-21.39,-107.28:99
-chr1	4376945	rs10915530	C	T	589.94	PASS	AC=1;AF=0.50;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.67;MQ0=0;OQ=1129.31;QD=16.13;SB=-586.64	GT:AD:DP:GL:GQ	0/1:35,35:68:-136.71,-20.50,-105.26:99
-chr1	4377252	rs1490416	T	A	34.72	PASS	AC=1;AF=0.50;AN=2;DB;DP=85;Dels=0.01;HRun=1;HaplotypeScore=4.80;MQ=59.18;MQ0=0;OQ=1402.77;QD=16.50;SB=-436.53	GT:AD:DP:GL:GQ	0/1:39,45:80:-167.66,-24.10,-131.13:99
-chr1	4377771	rs349409	C	T	337.62	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=1;HaplotypeScore=2.02;MQ=59.15;MQ0=0;OQ=1097.95;QD=15.46;SB=-477.48	GT:AD:DP:GL:GQ	0/1:37,34:69:-133.86,-20.78,-131.05:99
-chr1	4377899	rs349410	C	A	42.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=1;HaplotypeScore=4.55;MQ=59.19;MQ0=0;OQ=1054.50;QD=18.50;SB=-399.14	GT:AD:DP:GL:GQ	0/1:22,35:56:-125.60,-16.87,-75.99:99
-chr1	4377949	rs349411	C	T	2.69	PASS	AC=1;AF=0.50;AN=2;DB;DP=82;Dels=0.00;HRun=1;HaplotypeScore=11.72;MQ=58.87;MQ0=0;OQ=1481.01;QD=18.06;SB=-689.93	GT:AD:DP:GL:GQ	0/1:37,45:80:-175.49,-24.10,-130.86:99
-chr1	4377999	rs10915531	A	G	391.37	PASS	AC=1;AF=0.50;AN=2;DB;DP=80;Dels=0.00;HRun=0;HaplotypeScore=1.66;MQ=59.24;MQ0=0;OQ=1298.04;QD=16.23;SB=-576.28	GT:AD:DP:GL:GQ	0/1:36,44:80:-157.19,-24.10,-146.95:99
-chr1	4380137	rs493178	G	C	0.36	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=1;HaplotypeScore=2.09;MQ=57.06;MQ0=0;OQ=874.81;QD=23.64;SB=-165.59	GT:AD:DP:GL:GQ	0/1:11,26:34:-101.01,-10.25,-40.96:99
-chr1	4380197	.	G	A	21.03	DPFilter;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=31;Dels=0.00;HRun=0;HaplotypeScore=23.38;MQ=29.95;MQ0=2;QD=0.68;SB=41.12	GT:AD:DP:GL:GQ	0/1:26,5:22:-12.01,-6.63,-63.36:53.84
-chr1	4380201	rs59237016	A	T	117.83	SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=27;Dels=0.00;HRun=1;HaplotypeScore=21.39;MQ=30.09;MQ0=2;QD=4.36;SB=-11.73	GT:AD:DP:GL:GQ	0/1:19,6:13:-24.36,-9.29,-27.60:99
-chr1	4380203	.	A	G	41.11	LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=25;Dels=0.00;HRun=0;HaplotypeScore=24.37;MQ=28.28;MQ0=2;QD=1.64;SB=-10.00	GT:AD:DP:GL:GQ	0/1:17,7:10:-10.41,-3.01,-27.49:73.95
-chr1	4380215	.	G	A	523.36	SnpCluster	AC=2;AF=1.00;AN=2;DP=19;Dels=0.05;HRun=0;HaplotypeScore=13.20;MQ=29.01;MQ0=2;QD=27.55;SB=-164.67	GT:AD:DP:GL:GQ	1/1:1,17:14:-55.92,-4.22,-0.00:42.14
-chr1	4380217	rs60888156	G	A	452.59	SnpCluster	AC=2;AF=1.00;AN=2;DB;DP=19;Dels=0.05;HRun=0;HaplotypeScore=13.68;MQ=29.01;MQ0=2;QD=23.82;SB=-163.66	GT:AD:DP:GL:GQ	1/1:4,14:14:-51.77,-4.22,-2.97:12.46
-chr1	4380219	.	G	A	274.46	SnpCluster	AC=1;AF=0.50;AN=2;DP=17;Dels=0.06;HRun=0;HaplotypeScore=11.89;MQ=29.85;MQ0=1;QD=16.14;SB=-148.61	GT:AD:DP:GL:GQ	0/1:5,11:13:-34.65,-3.92,-13.88:99
-chr1	4380249	.	G	A	49.25	LowQual	AC=2;AF=1.00;AN=2;DP=3;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=23.68;MQ0=1;QD=16.42;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,3:2:-8.33,-0.60,-0.00:6.02
-chr1	4380271	rs6697112	G	A	9.28	PASS	AC=2;AF=1.00;AN=2;DB;DP=5;Dels=0.00;HRun=0;HaplotypeScore=1.15;MQ=37.32;MQ0=0;OQ=124.22;QD=24.84;SB=-44.55	GT:AD:DP:GL:GQ	1/1:1,4:4:-15.96,-1.21,-0.00:12.04
-chr1	4380311	rs1309838	C	A	157.04	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=1.72;MQ=54.85;MQ0=0;OQ=623.10;QD=14.84;SB=-208.87	GT:AD:DP:GL:GQ	0/1:19,23:41:-77.95,-12.35,-68.48:99
-chr1	4380330	rs1309839	C	T	0.61	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=1;HaplotypeScore=7.73;MQ=55.45;MQ0=0;OQ=843.65;QD=20.09;SB=-255.33	GT:AD:DP:GL:GQ	0/1:15,27:37:-98.80,-11.15,-35.58:99
-chr1	4380929	.	T	C	25.32	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=68;Dels=0.00;HRun=2;HaplotypeScore=5.44;MQ=59.32;MQ0=0;QD=0.37;SB=122.43	GT:AD:DP:GL:GQ	0/1:48,20:54:-22.08,-16.27,-188.06:58.14
-chr1	4380941	rs349386	C	T	474.31	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=57.84;MQ0=0;OQ=1352.78;QD=17.80;SB=-554.75	GT:AD:DP:GL:GQ	0/1:36,40:74:-160.85,-22.29,-128.59:99
-chr1	4381075	rs4654432	C	T	88.73	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=3;HaplotypeScore=1.63;MQ=60.32;MQ0=0;OQ=870.11;QD=12.80;SB=-258.77	GT:AD:DP:GL:GQ	0/1:40,28:66:-110.19,-19.90,-123.57:99
-chr1	4381353	rs35799150	A	G	389.01	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.73;MQ0=0;OQ=820.10;QD=12.06;SB=-192.18	GT:AD:DP:GL:GQ	0/1:39,29:68:-105.78,-20.48,-159.19:99
-chr1	4381492	rs4654433	G	A	604.36	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.66;MQ0=0;OQ=1070.93;QD=15.98;SB=-493.09	GT:AD:DP:GL:GQ	0/1:35,32:67:-130.57,-20.19,-112.83:99
-chr1	4382470	rs737324	G	C	535.52	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.88;MQ0=0;OQ=1310.24;QD=17.47;SB=-409.80	GT:AD:DP:GL:GQ	0/1:38,37:74:-156.61,-22.31,-151.67:99
-chr1	4382624	rs349385	A	G	200.13	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=56.49;MQ0=0;OQ=1553.01;QD=28.76;SB=-619.97	GT:AD:DP:GL:GQ	1/1:0,53:51:-158.94,-15.39,-0.06:99
-chr1	4383263	rs41266223	T	C	212.32	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=2.22;MQ=57.69;MQ0=0;OQ=666.08;QD=11.29;SB=-355.38	GT:AD:DP:GL:GQ	0/1:32,27:53:-85.86,-15.97,-114.12:99
-chr1	4385955	rs4654537	A	G	109.83	PASS	AC=1;AF=0.50;AN=2;DB;DP=23;Dels=0.00;HRun=0;HaplotypeScore=1.49;MQ=60.00;MQ0=0;OQ=187.72;QD=8.16;SB=-92.99	GT:AD:DP:GL:GQ	0/1:12,10:21:-28.39,-6.33,-46.97:99
-chr1	4386470	rs1762818	A	G	620.72	PASS	AC=2;AF=1.00;AN=2;DB;DP=65;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.36;MQ0=0;OQ=2262.65;QD=34.81;SB=-1121.77	GT:AD:DP:GL:GQ	1/1:0,65:63:-229.87,-18.98,-0.02:99
-chr1	4386565	rs2035009	T	C	346.94	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=1.58;MQ=58.05;MQ0=0;OQ=655.98;QD=10.93;SB=-329.97	GT:AD:DP:GL:GQ	0/1:30,30:56:-85.78,-16.89,-109.09:99
-chr1	4386918	rs2035008	T	A	56.82	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=2;HaplotypeScore=1.25;MQ=55.07;MQ0=0;OQ=728.43;QD=12.14;SB=-228.91	GT:AD:DP:GL:GQ	0/1:33,27:58:-93.60,-17.47,-122.91:99
-chr1	4387800	.	G	A	279.77	PASS	AC=1;AF=0.50;AN=2;DP=63;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1023.92;QD=16.25;SB=-391.36	GT:AD:DP:GL:GQ	0/1:32,31:61:-124.06,-18.39,-99.73:99
-chr1	4388151	rs4654542	C	T	244.41	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=2.62;MQ=60.00;MQ0=0;OQ=1264.25;QD=16.63;SB=-528.76	GT:AD:DP:GL:GQ	0/1:37,39:75:-152.31,-22.60,-121.60:99
-chr1	4388316	rs4654434	G	A	492.22	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1047.13;QD=14.54;SB=-490.97	GT:AD:DP:GL:GQ	0/1:40,32:72:-129.68,-21.69,-147.17:99
-chr1	4388691	rs6667927	C	T	322.46	PASS	AC=1;AF=0.50;AN=2;DB;DP=88;Dels=0.00;HRun=0;HaplotypeScore=0.98;MQ=59.79;MQ0=0;OQ=1604.10;QD=18.23;SB=-806.38	GT:AD:DP:GL:GQ	0/1:41,47:88:-190.20,-26.51,-149.18:99
-chr1	4388839	rs6658372	G	A	449.72	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=59.10;MQ0=0;OQ=954.40;QD=14.24;SB=-360.06	GT:AD:DP:GL:GQ	0/1:36,31:66:-118.61,-19.88,-128.27:99
-chr1	4389258	rs6678792	T	C	469.97	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=1.05;MQ=59.45;MQ0=0;OQ=1167.87;QD=15.37;SB=-534.97	GT:AD:DP:GL:GQ	0/1:37,39:76:-142.96,-22.89,-149.63:99
-chr1	4389389	rs10915533	G	A	316.56	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=3.43;MQ=59.63;MQ0=0;OQ=829.91;QD=13.39;SB=-417.75	GT:AD:DP:GL:GQ	0/1:33,29:58:-103.75,-17.48,-109.80:99
-chr1	4389459	rs995749	T	C	99.11	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=1;HaplotypeScore=3.02;MQ=59.19;MQ0=0;OQ=673.64;QD=11.82;SB=-297.62	GT:AD:DP:GL:GQ	0/1:29,28:55:-87.23,-16.58,-114.38:99
-chr1	4390198	rs6676603	A	T	439.97	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=0.96;MQ=59.38;MQ0=0;OQ=1300.48;QD=17.57;SB=-634.13	GT:AD:DP:GL:GQ	0/1:32,42:73:-155.32,-21.99,-116.56:99
-chr1	4390481	rs12128251	T	C	259.49	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=57.96;MQ0=0;OQ=632.69;QD=11.94;SB=-295.21	GT:AD:DP:GL:GQ	0/1:28,25:50:-81.62,-15.07,-105.90:99
-chr1	4391861	rs2007533	T	A	193.95	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.48;MQ=57.74;MQ0=0;OQ=586.86;QD=11.51;SB=-140.76	GT:AD:DP:GL:GQ	0/1:30,21:48:-76.43,-14.46,-99.70:99
-chr1	4391958	rs1809702	T	C	301.51	PASS	AC=1;AF=0.50;AN=2;DB;DP=83;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=60.00;MQ0=0;OQ=1033.40;QD=12.45;SB=-514.71	GT:AD:DP:GL:GQ	0/1:39,44:81:-131.04,-24.42,-155.02:99
-chr1	4392226	rs736265	G	A	87.76	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=1;HaplotypeScore=4.07;MQ=59.56;MQ0=0;OQ=793.67;QD=14.97;SB=-313.81	GT:AD:DP:GL:GQ	0/1:27,26:51:-98.01,-15.36,-98.57:99
-chr1	4393075	rs1556691	A	G	599.93	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.74;MQ0=0;OQ=937.52;QD=14.88;SB=-473.07	GT:AD:DP:GL:GQ	0/1:29,34:61:-115.41,-18.38,-116.29:99
-chr1	4393225	rs4654435	T	C	403.94	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=0.48;MQ=60.00;MQ0=0;OQ=690.21;QD=11.50;SB=-328.14	GT:AD:DP:GL:GQ	0/1:28,31:55:-88.89,-16.58,-104.73:99
-chr1	4394358	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=50;Dels=0.00;HRun=18;HaplotypeScore=18.20;MQ=57.05;MQ0=0;OQ=138.13;QD=2.76;SB=68.21	GT:AD:DP:GL:GQ	0/1:39,11:43:-30.06,-12.96,-119.55:99
-chr1	4394377	.	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=53;Dels=0.00;HRun=18;HaplotypeScore=17.15;MQ=55.75;MQ0=0;OQ=145.86;QD=2.75;SB=25.24	GT:AD:DP:GL:GQ	0/1:40,13:43:-30.82,-12.95,-126.23:99
-chr1	4394834	rs12072315	G	A	483.58	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.65;MQ0=0;OQ=835.16;QD=15.47;SB=-392.90	GT:AD:DP:GL:GQ	0/1:29,25:53:-102.78,-15.98,-90.62:99
-chr1	4394951	rs7546444	A	G	181.93	PASS	AC=1;AF=0.50;AN=2;DB;DP=69;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=59.12;MQ0=0;OQ=846.04;QD=12.26;SB=-340.27	GT:AD:DP:GL:GQ	0/1:38,31:68:-108.38,-20.49,-147.54:99
-chr1	4395538	rs1591426	T	C	726.29	PASS	AC=2;AF=1.00;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.57;MQ0=0;OQ=2474.70;QD=34.37;SB=-1102.69	GT:AD:DP:GL:GQ	1/1:0,72:71:-251.09,-21.39,-0.04:99
-chr1	4395562	rs1591425	A	G	113.89	PASS	AC=2;AF=1.00;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=-0.06;MQ=59.25;MQ0=0;OQ=1914.52;QD=29.01;SB=-807.30	GT:AD:DP:GL:GQ	1/1:0,66:62:-195.10,-18.70,-0.06:99
-chr1	4396040	rs10915536	C	T	108.05	PASS	AC=2;AF=1.00;AN=2;DB;DP=77;Dels=0.00;HRun=4;HaplotypeScore=0.00;MQ=59.40;MQ0=0;OQ=3075.21;QD=39.94;SB=-1236.02	GT:AD:DP:GL:GQ	1/1:0,77:77:-311.12,-23.19,-0.02:99
-chr1	4396189	rs1762813	C	T	709.23	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.85;MQ0=0;OQ=1988.33;QD=37.52;SB=-957.81	GT:AD:DP:GL:GQ	1/1:0,52:51:-202.43,-15.36,-0.01:99
-chr1	4396377	rs1674876	G	A	690.55	PASS	AC=2;AF=1.00;AN=2;DB;DP=86;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.24;MQ0=0;OQ=3414.62;QD=39.70;SB=-1526.04	GT:AD:DP:GL:GQ	1/1:0,86:85:-340.46,-25.61,-0.02:99
-chr1	4396770	rs1335365	G	A	180.08	PASS	AC=2;AF=1.00;AN=2;DB;DP=84;Dels=0.00;HRun=4;HaplotypeScore=0.00;MQ=59.45;MQ0=0;OQ=3218.44;QD=38.31;SB=-1546.06	GT:AD:DP:GL:GQ	1/1:0,84:82:-325.46,-24.71,-0.03:99
-chr1	4396978	rs6660514	C	T	529.47	PASS	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.05;MQ0=0;OQ=2569.74;QD=40.15;SB=-881.18	GT:AD:DP:GL:GQ	1/1:0,64:63:-260.57,-18.97,-0.01:99
-chr1	4396990	rs1335363	G	A	705.95	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.11;MQ0=0;OQ=2655.20;QD=39.05;SB=-1068.35	GT:AD:DP:GL:GQ	1/1:0,68:67:-269.12,-20.18,-0.02:99
-chr1	4397408	rs35211041	C	G	282.09	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=1.56;MQ=59.56;MQ0=0;OQ=845.74;QD=15.96;SB=-404.93	GT:AD:DP:GL:GQ	0/1:28,25:51:-103.22,-15.37,-116.49:99
-chr1	4397651	rs1234932	T	C	32.13	PASS	AC=2;AF=1.00;AN=2;DB;DP=66;Dels=0.00;HRun=1;HaplotypeScore=2.62;MQ=59.08;MQ0=0;OQ=2038.22;QD=30.88;SB=-895.04	GT:AD:DP:GL:GQ	1/1:0,66:64:-207.46,-19.30,-0.06:99
-chr1	4399691	rs780572	T	C	25.86	PASS	AC=2;AF=1.00;AN=2;DB;DP=67;Dels=0.00;HRun=1;HaplotypeScore=3.98;MQ=59.66;MQ0=0;OQ=2164.78;QD=32.31;SB=-610.95	GT:AD:DP:GL:GQ	1/1:0,67:65:-220.10,-19.59,-0.04:99
-chr1	4400105	rs12727067	C	T	348.64	PASS	AC=2;AF=1.00;AN=2;DB;DP=81;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=59.54;MQ0=0;OQ=3168.12;QD=39.11;SB=-1535.71	GT:AD:DP:GL:GQ	1/1:0,81:79:-320.41,-23.80,-0.02:99
-chr1	4400296	rs12731060	C	T	672.05	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2631.07;QD=38.69;SB=-901.20	GT:AD:DP:GL:GQ	1/1:0,68:67:-266.72,-20.19,-0.02:99
-chr1	4401014	rs6674190	C	T	89.86	PASS	AC=2;AF=1.00;AN=2;DB;DP=81;Dels=0.00;HRun=1;HaplotypeScore=1.00;MQ=59.77;MQ0=0;OQ=3223.06;QD=39.79;SB=-1621.16	GT:AD:DP:GL:GQ	1/1:0,81:80:-325.90,-24.10,-0.02:99
-chr1	4401844	rs780573	A	G	655.69	PASS	AC=2;AF=1.00;AN=2;DB;DP=82;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.72;MQ0=0;OQ=2538.38;QD=30.96;SB=-1020.34	GT:AD:DP:GL:GQ	1/1:0,82:80:-257.49,-24.12,-0.07:99
-chr1	4403585	rs780581	T	C	628.63	PASS	AC=2;AF=1.00;AN=2;DB;DP=76;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.75;MQ0=0;OQ=2729.37;QD=35.91;SB=-1251.85	GT:AD:DP:GL:GQ	1/1:0,76:75:-276.54,-22.59,-0.02:99
-chr1	4405826	rs780587	T	C	579.37	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.63;MQ0=0;OQ=1799.99;QD=35.29;SB=-764.96	GT:AD:DP:GL:GQ	1/1:0,51:50:-183.60,-15.06,-0.02:99
-chr1	4406185	rs780588	T	G	731.95	PASS	AC=2;AF=1.00;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.29;MQ0=0;OQ=2276.92;QD=35.03;SB=-1150.64	GT:AD:DP:GL:GQ	1/1:0,65:65:-231.29,-19.58,-0.02:99
-chr1	4407102	rs780589	G	T	206.11	PASS	AC=2;AF=1.00;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=0.83;MQ=59.17;MQ0=0;OQ=2615.53;QD=35.83;SB=-1329.09	GT:AD:DP:GL:GQ	1/1:0,73:72:-265.16,-21.68,-0.02:99
-chr1	4407119	rs12032561	A	G	117.17	PASS	AC=2;AF=1.00;AN=2;DB;DP=79;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.23;MQ0=0;OQ=2421.51;QD=30.65;SB=-1099.12	GT:AD:DP:GL:GQ	1/1:0,79:76:-245.80,-22.92,-0.06:99
-chr1	4407230	rs780590	C	A	140.01	PASS	AC=2;AF=1.00;AN=2;DB;DP=67;Dels=0.00;HRun=1;HaplotypeScore=0.82;MQ=60.00;MQ0=0;OQ=2388.18;QD=35.64;SB=-981.59	GT:AD:DP:GL:GQ	1/1:0,67:66:-242.42,-19.88,-0.02:99
-chr1	4407326	rs780591	G	C	50.40	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=2.71;MQ=59.66;MQ0=0;OQ=2352.09;QD=42.77;SB=-1101.12	GT:AD:DP:GL:GQ	1/1:0,54:54:-238.81,-16.27,-0.01:99
-chr1	4407520	rs780592	G	A	361.64	PASS	AC=2;AF=1.00;AN=2;DB;DP=80;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.77;MQ0=0;OQ=3300.47;QD=41.26;SB=-1496.40	GT:AD:DP:GL:GQ	1/1:0,80:80:-329.05,-24.10,-0.02:99
-chr1	4407623	rs780594	T	C	139.31	PASS	AC=2;AF=1.00;AN=2;DB;DP=77;Dels=0.00;HRun=1;HaplotypeScore=2.07;MQ=59.52;MQ0=0;OQ=2627.95;QD=34.13;SB=-1058.85	GT:AD:DP:GL:GQ	1/1:0,77:75:-266.41,-22.59,-0.03:99
-chr1	4408032	rs705684	C	T	627.36	PASS	AC=2;AF=1.00;AN=2;DB;DP=75;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2940.63;QD=39.21;SB=-1334.78	GT:AD:DP:GL:GQ	1/1:0,75:74:-297.67,-22.29,-0.02:99
-chr1	4408272	rs780595	C	G	8.91	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=3;HaplotypeScore=0.16;MQ=58.81;MQ0=0;OQ=2333.53;QD=42.43;SB=-1051.66	GT:AD:DP:GL:GQ	1/1:0,55:54:-236.95,-16.27,-0.02:99
-chr1	4408429	rs2054268	A	G	302.92	PASS	AC=2;AF=1.00;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=1.70;MQ=59.14;MQ0=0;OQ=2648.73;QD=34.85;SB=-1019.36	GT:AD:DP:GL:GQ	1/1:0,76:74:-268.49,-22.29,-0.03:99
-chr1	4408966	rs780596	C	G	540.01	PASS	AC=2;AF=1.00;AN=2;DB;DP=71;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.74;MQ0=0;OQ=3023.42;QD=42.58;SB=-1306.69	GT:AD:DP:GL:GQ	1/1:0,71:71:-305.95,-21.40,-0.02:99
-chr1	4409197	rs2054269	G	A	716.76	PASS	AC=2;AF=1.00;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.30;MQ0=0;OQ=2812.55;QD=39.06;SB=-1393.37	GT:AD:DP:GL:GQ	1/1:0,72:71:-284.86,-21.39,-0.02:99
-chr1	4409239	rs2054270	C	A	370.19	PASS	AC=2;AF=1.00;AN=2;DB;DP=70;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=59.01;MQ0=0;OQ=2523.69;QD=36.05;SB=-1226.28	GT:AD:DP:GL:GQ	1/1:0,70:69:-255.97,-20.78,-0.02:99
-chr1	4411281	rs922114	C	T	206.92	PASS	AC=2;AF=1.00;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=3.24;MQ=60.00;MQ0=0;OQ=2458.23;QD=37.82;SB=-1122.24	GT:AD:DP:GL:GQ	1/1:0,65:63:-249.43,-18.99,-0.03:99
-chr1	4411941	rs56397589	A	G	10.74	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=3;HaplotypeScore=1.47;MQ=60.00;MQ0=0;OQ=772.90;QD=13.56;SB=-158.90	GT:AD:DP:GL:GQ	0/1:30,27:56:-97.44,-16.87,-122.46:99
-chr1	4412859	.	G	T	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=80;Dels=0.00;HRun=1;HaplotypeScore=17.52;MQ=58.30;MQ0=0;OQ=443.68;QD=5.55;SB=107.30	GT:AD:DP:GL:GQ	0/1:54,26:67:-67.84,-20.19,-156.44:99
-chr1	4413809	rs780599	T	C	203.02	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.70;MQ0=0;OQ=933.92;QD=15.06;SB=-130.24	GT:AD:DP:GL:GQ	0/1:31,31:62:-115.35,-18.67,-127.44:99
-chr1	4413942	rs1235308	A	G	208.55	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=0.10;MQ=59.56;MQ0=0;OQ=574.66;QD=10.84;SB=-295.15	GT:AD:DP:GL:GQ	0/1:24,29:45:-74.32,-13.57,-86.44:99
-chr1	4413949	rs12135334	A	G	227.02	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.57;MQ0=0;OQ=600.78;QD=11.13;SB=-278.65	GT:AD:DP:GL:GQ	0/1:25,29:50:-78.44,-15.07,-99.43:99
-chr1	4414313	rs11584026	G	A	462.20	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=0.98;MQ=59.70;MQ0=0;OQ=1258.44;QD=16.56;SB=-579.09	GT:AD:DP:GL:GQ	0/1:37,39:74:-151.43,-22.31,-123.49:99
-chr1	4415137	rs1213919	T	C	340.20	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=0.97;MQ=59.64;MQ0=0;OQ=1036.94;QD=16.20;SB=-428.11	GT:AD:DP:GL:GQ	0/1:27,37:63:-125.96,-18.98,-110.60:99
-chr1	4415275	rs6426411	G	A	271.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=1;HaplotypeScore=1.51;MQ=58.90;MQ0=0;OQ=891.44;QD=15.11;SB=-416.76	GT:AD:DP:GL:GQ	0/1:31,28:59:-110.20,-17.77,-112.97:99
-chr1	4415367	rs6663198	A	C	0.03	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DB;DP=83;Dels=0.00;HRun=0;HaplotypeScore=21.51;MQ=59.22;MQ0=0;OQ=1036.43;QD=12.49;SB=-473.70	GT:AD:DP:GL:GQ	0/1:44,39:81:-131.33,-24.40,-153.13:99
-chr1	4416433	rs12131294	C	T	93.74	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=2.89;MQ=59.15;MQ0=0;OQ=414.02;QD=9.20;SB=-113.50	GT:AD:DP:GL:GQ	0/1:24,20:37:-55.83,-11.15,-84.17:99
-chr1	4416884	.	G	A	3.05	PASS	AC=1;AF=0.50;AN=2;DP=55;Dels=0.00;HRun=0;HaplotypeScore=5.94;MQ=57.87;MQ0=0;OQ=823.53;QD=14.97;SB=-276.27	GT:AD:DP:GL:GQ	0/1:30,25:53:-101.62,-15.98,-87.09:99
-chr1	4417194	rs7550318	A	T	249.83	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=1;HaplotypeScore=2.46;MQ=57.79;MQ0=0;OQ=1140.48;QD=17.28;SB=-502.48	GT:AD:DP:GL:GQ	0/1:29,37:65:-136.91,-19.58,-108.54:99
-chr1	4417494	.	G	A	25.73	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=62;Dels=0.00;HRun=20;HaplotypeScore=6.20;MQ=50.61;MQ0=1;QD=0.42;SB=98.27	GT:AD:DP:GL:GQ	0/1:53,9:50:-20.92,-15.07,-146.64:58.56
-chr1	4417741	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=39;Dels=0.00;HRun=20;HaplotypeScore=20.09;MQ=49.19;MQ0=1;OQ=84.58;QD=2.17;SB=26.11	GT:AD:DP:GL:GQ	0/1:26,12:27:-19.88,-8.14,-73.60:99
-chr1	4417905	rs642409	A	G	618.44	PASS	AC=2;AF=1.00;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.41;MQ0=0;OQ=2544.54;QD=34.39;SB=-1201.82	GT:AD:DP:GL:GQ	1/1:0,74:71:-258.06,-21.38,-0.02:99
-chr1	4418004	rs10127576	A	G	16.51	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=5.95;MQ=57.57;MQ0=1;OQ=493.53;QD=8.97;SB=-221.25	GT:AD:DP:GL:GQ	0/1:34,21:50:-67.70,-15.07,-117.20:99
-chr1	4420145	rs6426412	G	T	345.35	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=1;HaplotypeScore=0.89;MQ=59.50;MQ0=0;OQ=1296.90;QD=17.29;SB=-663.60	GT:AD:DP:GL:GQ	0/1:33,42:75:-155.57,-22.59,-114.39:99
-chr1	4420362	.	C	T	102.52	PASS	AC=1;AF=0.50;AN=2;DP=60;Dels=0.00;HRun=0;HaplotypeScore=2.20;MQ=60.52;MQ0=0;OQ=920.19;QD=15.34;SB=-456.47	GT:AD:DP:GL:GQ	0/1:27,31:53:-111.28,-15.98,-79.42:99
-chr1	4421024	rs12137057	A	C	291.19	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=60.00;MQ0=0;OQ=701.05;QD=10.62;SB=-364.06	GT:AD:DP:GL:GQ	0/1:39,27:63:-92.36,-18.97,-137.12:99
-chr1	4421180	rs61771168	T	G	222.08	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=1;HaplotypeScore=1.81;MQ=59.49;MQ0=0;OQ=588.51;QD=13.08;SB=-310.47	GT:AD:DP:GL:GQ	0/1:23,22:43:-75.09,-12.95,-79.35:99
-chr1	4421771	.	C	T	52.82	PASS	AC=1;AF=0.50;AN=2;DP=35;Dels=0.00;HRun=0;HaplotypeScore=2.71;MQ=58.00;MQ0=0;OQ=457.94;QD=13.08;SB=-230.51	GT:AD:DP:GL:GQ	0/1:18,17:32:-58.72,-9.64,-61.49:99
-chr1	4422658	.	C	T	17.02	PASS	AC=1;AF=0.50;AN=2;DP=62;Dels=0.00;HRun=1;HaplotypeScore=3.11;MQ=59.25;MQ0=0;OQ=990.31;QD=15.97;SB=-404.43	GT:AD:DP:GL:GQ	0/1:32,30:60:-120.40,-18.09,-95.94:99
-chr1	4423184	.	G	A	28.31	PASS	AC=1;AF=0.50;AN=2;DP=62;Dels=0.00;HRun=1;HaplotypeScore=1.99;MQ=59.25;MQ0=0;OQ=1264.58;QD=20.40;SB=-650.72	GT:AD:DP:GL:GQ	0/1:26,36:62:-148.42,-18.68,-94.18:99
-chr1	4423217	rs664520	C	T	648.65	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.05;MQ0=0;OQ=1886.50;QD=38.50;SB=-821.33	GT:AD:DP:GL:GQ	1/1:0,49:49:-192.25,-14.76,-0.02:99
-chr1	4423270	rs17453664	G	A	225.88	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=2.40;MQ=58.29;MQ0=0;OQ=839.10;QD=16.14;SB=-245.23	GT:AD:DP:GL:GQ	0/1:25,27:50:-102.26,-15.06,-88.51:99
-chr1	4424136	.	C	G	13.14	PASS	AC=1;AF=0.50;AN=2;DP=47;Dels=0.00;HRun=0;HaplotypeScore=4.07;MQ=59.20;MQ0=0;OQ=717.79;QD=15.27;SB=-220.02	GT:AD:DP:GL:GQ	0/1:26,21:46:-88.93,-13.87,-108.02:99
-chr1	4424195	rs16839046	G	A	266.41	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=1.88;MQ=59.35;MQ0=0;OQ=1078.45;QD=16.85;SB=-521.17	GT:AD:DP:GL:GQ	0/1:30,33:62:-129.81,-18.69,-96.72:99
-chr1	4424280	rs17419859	G	A	351.26	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.74;MQ=59.18;MQ0=0;OQ=665.56;QD=13.05;SB=-350.50	GT:AD:DP:GL:GQ	0/1:25,26:46:-83.71,-13.87,-77.13:99
-chr1	4424589	rs681175	T	C	281.02	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.63;MQ0=0;OQ=1804.45;QD=35.38;SB=-864.37	GT:AD:DP:GL:GQ	1/1:0,51:50:-184.04,-15.06,-0.01:99
-chr1	4426611	rs16839061	C	T	6.85	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=1;HaplotypeScore=8.78;MQ=59.11;MQ0=0;OQ=724.58;QD=13.42;SB=-330.47	GT:AD:DP:GL:GQ	0/1:31,23:51:-91.11,-15.37,-92.01:99
-chr1	4427201	rs350167	T	C	190.81	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=1;HaplotypeScore=1.58;MQ=59.66;MQ0=0;OQ=925.11;QD=16.82;SB=-378.98	GT:AD:DP:GL:GQ	0/1:23,32:53:-111.76,-15.96,-93.83:99
-chr1	4427323	.	G	A	294.49	PASS	AC=1;AF=0.50;AN=2;DP=52;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.28;MQ0=0;OQ=680.55;QD=13.09;SB=-356.53	GT:AD:DP:GL:GQ	0/1:28,24:44:-84.60,-13.26,-76.63:99
-chr1	4433698	.	G	A	123.19	PASS	AC=1;AF=0.50;AN=2;DP=78;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=59.52;MQ0=0;OQ=1403.52;QD=17.99;SB=-721.04	GT:AD:DP:GL:GQ	0/1:36,42:75:-166.24,-22.60,-109.14:99
-chr1	4433807	.	T	G	23.74	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=65;Dels=0.00;HRun=3;HaplotypeScore=5.51;MQ=60.00;MQ0=0;QD=0.37;SB=80.27	GT:AD:DP:GL:GQ	0/1:45,20:51:-21.03,-15.37,-149.91:56.55
-chr1	4434327	rs645724	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=82;Dels=0.00;HRun=0;HaplotypeScore=38.18;MQ=55.12;MQ0=0;OQ=2008.88;QD=24.50;SB=-765.25	GT:AD:DP:GL:GQ	0/1:13,69:74:-226.47,-22.30,-33.80:99
-chr1	4434328	rs55641638	T	A	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=82;Dels=0.00;HRun=5;HaplotypeScore=34.59;MQ=55.12;MQ0=0;OQ=2483.75;QD=30.29;SB=-1104.11	GT:AD:DP:GL:GQ	1/1:7,75:79:-274.28,-23.80,-22.35:14.43
-chr1	4434380	rs350168	C	T	706.48	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.94;MQ0=0;OQ=2402.65;QD=38.14;SB=-988.02	GT:AD:DP:GL:GQ	1/1:0,63:61:-243.87,-18.38,-0.02:99
-chr1	4434761	.	C	A	101.78	PASS	AC=1;AF=0.50;AN=2;DP=68;Dels=0.00;HRun=1;HaplotypeScore=0.67;MQ=59.39;MQ0=0;OQ=1132.04;QD=16.65;SB=-530.30	GT:AD:DP:GL:GQ	0/1:30,38:67:-136.67,-20.18,-105.81:99
-chr1	4435588	rs350169	T	A	602.50	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.75;MQ0=0;OQ=1092.18;QD=14.76;SB=-420.48	GT:AD:DP:GL:GQ	0/1:38,36:74:-134.79,-22.29,-147.43:99
-chr1	4439106	rs610189	T	C	76.59	PASS	AC=2;AF=1.00;AN=2;DB;DP=98;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=59.49;MQ0=0;OQ=3044.46;QD=31.07;SB=-1448.66	GT:AD:DP:GL:GQ	1/1:0,98:95:-308.11,-28.64,-0.07:99
-chr1	4440903	rs13376654	C	A	79.52	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=1;HaplotypeScore=3.21;MQ=58.73;MQ0=0;OQ=748.18;QD=13.60;SB=-293.00	GT:AD:DP:GL:GQ	0/1:29,26:54:-94.37,-16.27,-89.76:99
-chr1	4440904	rs638289	A	G	184.76	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=3.21;MQ=59.14;MQ0=0;OQ=1717.40;QD=31.80;SB=-743.85	GT:AD:DP:GL:GQ	1/1:0,54:53:-175.37,-15.98,-0.04:99
-chr1	4441250	rs11799990	A	C	16.32	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=4.98;MQ=58.47;MQ0=0;OQ=285.71;QD=5.19;SB=-147.75	GT:AD:DP:GL:GQ	0/1:37,17:50:-46.92,-15.06,-127.84:99
-chr1	4441285	rs6426418	T	C	92.05	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=4.50;MQ=58.52;MQ0=0;OQ=434.66;QD=7.63;SB=-199.21	GT:AD:DP:GL:GQ	0/1:38,19:55:-63.32,-16.57,-152.10:99
-chr1	4441304	rs16839089	G	A	505.50	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.35;MQ0=0;OQ=685.41;QD=10.71;SB=-336.42	GT:AD:DP:GL:GQ	0/1:40,24:63:-90.81,-18.98,-145.42:99
-chr1	4441520	.	C	T	159.13	PASS	AC=1;AF=0.50;AN=2;DP=55;Dels=0.00;HRun=0;HaplotypeScore=1.36;MQ=59.58;MQ0=0;OQ=767.39;QD=13.95;SB=-405.80	GT:AD:DP:GL:GQ	0/1:29,25:52:-95.70,-15.68,-88.39:99
-chr1	4441584	rs28597953	G	C	102.96	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=1.63;MQ=59.54;MQ0=0;OQ=377.89;QD=7.56;SB=-189.56	GT:AD:DP:GL:GQ	0/1:35,14:50:-59.58,-18.50,-155.34:99
-chr1	4441595	rs12057544	C	T	296.32	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.48;MQ0=0;OQ=442.52;QD=10.06;SB=-117.50	GT:AD:DP:GL:GQ	0/1:29,15:44:-60.79,-13.25,-105.58:99
-chr1	4441615	rs12094629	G	A	446.77	PASS	AC=1;AF=0.50;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.36;MQ0=0;OQ=438.29;QD=12.17;SB=-145.60	GT:AD:DP:GL:GQ	0/1:21,15:35:-57.67,-10.56,-64.23:99
-chr1	4442760	rs705686	T	G	190.01	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=1.14;MQ=58.65;MQ0=0;OQ=1305.06;QD=29.00;SB=-525.86	GT:AD:DP:GL:GQ	1/1:0,45:42:-134.13,-12.66,-0.04:99
-chr1	4443102	rs16839093	T	A	368.23	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=1.49;MQ=60.00;MQ0=0;OQ=943.42;QD=16.85;SB=-414.85	GT:AD:DP:GL:GQ	0/1:25,31:55:-114.19,-16.57,-93.32:99
-chr1	4443523	rs6656245	A	G	229.68	PASS	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=4.49;MQ=59.68;MQ0=0;OQ=985.54;QD=13.50;SB=-516.93	GT:AD:DP:GL:GQ	0/1:35,37:70:-125.21,-23.37,-142.93:99
-chr1	4444038	rs350170	T	C	370.74	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=0.96;MQ=60.00;MQ0=0;OQ=854.91;QD=14.49;SB=-264.93	GT:AD:DP:GL:GQ	0/1:30,29:59:-106.55,-17.78,-120.47:99
-chr1	4444166	.	C	T	124.24	PASS	AC=1;AF=0.50;AN=2;DP=73;Dels=0.00;HRun=1;HaplotypeScore=1.00;MQ=59.74;MQ0=0;OQ=1098.39;QD=15.05;SB=-487.09	GT:AD:DP:GL:GQ	0/1:39,34:70:-134.21,-21.09,-126.03:99
-chr1	4446069	rs16839101	C	T	439.86	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=0.92;MQ=59.34;MQ0=0;OQ=969.43;QD=15.39;SB=-381.11	GT:AD:DP:GL:GQ	0/1:31,32:61:-118.60,-18.38,-109.31:99
-chr1	4448313	rs705687	A	G	587.11	PASS	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.53;MQ0=0;OQ=1218.14;QD=32.06;SB=-513.41	GT:AD:DP:GL:GQ	1/1:0,38:37:-125.42,-11.15,-0.02:99
-chr1	4448490	rs10799234	G	A	167.56	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=59.07;MQ0=0;OQ=924.80;QD=18.50;SB=-481.51	GT:AD:DP:GL:GQ	0/1:22,28:50:-110.83,-15.07,-72.35:99
-chr1	4449095	.	G	T	15.09	PASS	AC=1;AF=0.50;AN=2;DP=43;Dels=0.00;HRun=0;HaplotypeScore=3.41;MQ=59.46;MQ0=0;OQ=820.94;QD=19.09;SB=-383.80	GT:AD:DP:GL:GQ	0/1:15,28:42:-98.03,-12.65,-50.79:99
-chr1	4449190	.	G	A	102.60	PASS	AC=1;AF=0.50;AN=2;DP=81;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.43;MQ0=0;OQ=1775.95;QD=21.93;SB=-864.43	GT:AD:DP:GL:GQ	0/1:30,51:79:-204.67,-23.80,-104.40:99
-chr1	4449240	rs705690	G	A	133.54	PASS	AC=2;AF=1.00;AN=2;DB;DP=91;Dels=0.00;HRun=1;HaplotypeScore=0.32;MQ=59.24;MQ0=0;OQ=3632.63;QD=39.92;SB=-1598.65	GT:AD:DP:GL:GQ	1/1:0,91:90:-362.26,-27.11,-0.03:99
-chr1	4449262	rs780606	A	G	76.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=2;HaplotypeScore=0.63;MQ=59.06;MQ0=0;OQ=718.78;QD=9.71;SB=-329.85	GT:AD:DP:GL:GQ	0/1:44,30:73:-97.16,-22.00,-175.35:99
-chr1	4449723	.	G	A	148.11	PASS	AC=1;AF=0.50;AN=2;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.81;MQ=59.52;MQ0=0;OQ=713.60;QD=14.87;SB=-335.48	GT:AD:DP:GL:GQ	0/1:25,23:48:-89.11,-14.47,-81.14:99
-chr1	4449964	rs706145	G	A	636.09	PASS	AC=2;AF=1.00;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.41;MQ0=0;OQ=2653.69;QD=37.38;SB=-1188.98	GT:AD:DP:GL:GQ	1/1:0,71:69:-268.98,-20.79,-0.03:99
-chr1	4452662	rs1878052	G	A	714.61	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2298.20;QD=38.95;SB=-1111.02	GT:AD:DP:GL:GQ	1/1:0,59:59:-233.42,-17.78,-0.02:99
-chr1	4454614	.	A	C	20.74	PASS	AC=1;AF=0.50;AN=2;DP=44;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=601.74;QD=13.68;SB=-220.89	GT:AD:DP:GL:GQ	0/1:20,24:43:-76.41,-12.95,-71.27:99
-chr1	4455561	rs10737412	T	A	735.37	PASS	AC=2;AF=1.00;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.62;MQ0=0;OQ=2244.31;QD=37.41;SB=-1132.68	GT:AD:DP:GL:GQ	1/1:0,60:60:-228.03,-18.07,-0.02:99
-chr1	4455707	rs4654547	C	T	580.91	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.52;MQ0=1;OQ=2435.91;QD=38.67;SB=-681.41	GT:AD:DP:GL:GQ	1/1:0,63:61:-247.19,-18.38,-0.02:99
-chr1	4456823	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=76;Dels=0.00;HRun=0;HaplotypeScore=121.08;MQ=43.96;MQ0=0;OQ=445.21;QD=5.86;SB=-205.75	GT:AD:DP:GL:GQ	0/1:54,22:71:-69.19,-21.39,-207.74:99
-chr1	4456825	rs61765158	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.00;HRun=3;HaplotypeScore=133.78;MQ=43.18;MQ0=0;OQ=324.30;QD=4.44;SB=-88.42	GT:AD:DP:GL:GQ	0/1:59,14:70:-56.80,-21.09,-201.65:99
-chr1	4456850	rs780601	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=50.11;MQ=42.32;MQ0=0;OQ=775.14;QD=10.77;SB=-395.42	GT:AD:DP:GL:GQ	0/1:41,31:67:-100.98,-20.18,-144.33:99
-chr1	4457263	rs780603	T	C	535.20	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.13;MQ0=0;OQ=1544.09;QD=29.13;SB=-491.17	GT:AD:DP:GL:GQ	1/1:0,53:48:-158.03,-14.47,-0.03:99
-chr1	4457873	rs9659744	G	A	216.40	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=4.18;MQ=58.81;MQ0=0;OQ=722.66;QD=13.14;SB=-250.79	GT:AD:DP:GL:GQ	0/1:29,25:52:-94.30,-18.75,-103.70:99
-chr1	4457887	rs12029583	T	C	182.25	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=2.02;MQ=58.88;MQ0=0;OQ=815.22;QD=14.06;SB=-229.41	GT:AD:DP:GL:GQ	0/1:25,33:54:-101.08,-16.28,-89.40:99
-chr1	4458652	rs10915548	G	A	313.44	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=2.49;MQ=58.63;MQ0=0;OQ=1202.04;QD=18.21;SB=-612.14	GT:AD:DP:GL:GQ	0/1:31,35:64:-142.78,-19.29,-94.64:99
-chr1	4458793	rs609506	T	C	135.30	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=4;HaplotypeScore=0.00;MQ=58.91;MQ0=0;OQ=2002.23;QD=32.82;SB=-965.38	GT:AD:DP:GL:GQ	1/1:0,61:57:-203.83,-17.17,-0.03:99
-chr1	4458832	rs13374152	G	A	510.02	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.65;MQ0=0;OQ=1323.30;QD=19.75;SB=-559.77	GT:AD:DP:GL:GQ	0/1:28,39:65:-155.19,-19.58,-97.96:99
-chr1	4459077	rs10799235	G	C	517.01	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2392.46;QD=41.97;SB=-1062.67	GT:AD:DP:GL:GQ	1/1:0,57:55:-242.85,-16.57,-0.02:99
-chr1	4459761	rs4654438	T	C	731.30	PASS	AC=2;AF=1.00;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=52.40;MQ0=0;OQ=2338.83;QD=34.91;SB=-1062.10	GT:AD:DP:GL:GQ	1/1:0,67:66:-237.49,-19.88,-0.02:99
-chr1	4460253	.	G	A	71.25	PASS	AC=1;AF=0.50;AN=2;DP=47;Dels=0.00;HRun=0;HaplotypeScore=2.78;MQ=54.34;MQ0=0;OQ=761.29;QD=16.20;SB=-383.16	GT:AD:DP:GL:GQ	0/1:23,24:45:-92.98,-13.56,-67.37:99
-chr1	4460265	rs9660574	G	A	698.27	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=55.97;MQ0=0;OQ=1971.68;QD=38.66;SB=-993.84	GT:AD:DP:GL:GQ	1/1:0,51:50:-200.77,-15.06,-0.01:99
-chr1	4460731	rs675509	A	G	75.44	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=2;HaplotypeScore=0.16;MQ=59.19;MQ0=0;OQ=1733.09;QD=33.33;SB=-850.97	GT:AD:DP:GL:GQ	1/1:0,52:50:-176.92,-15.06,-0.02:99
-chr1	4460821	rs675641	C	T	619.56	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.60;MQ0=0;OQ=2267.76;QD=39.10;SB=-1112.00	GT:AD:DP:GL:GQ	1/1:0,58:57:-230.38,-17.17,-0.02:99
-chr1	4462336	rs4654548	G	A	293.32	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=59.55;MQ0=0;OQ=1820.62;QD=35.70;SB=-883.64	GT:AD:DP:GL:GQ	1/1:0,51:47:-185.66,-14.16,-0.02:99
-chr1	4462612	rs661886	C	G	122.47	PASS	AC=2;AF=1.00;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=60.00;MQ0=0;OQ=1803.84;QD=41.95;SB=-867.51	GT:AD:DP:GL:GQ	1/1:0,43:43:-183.98,-12.96,-0.01:99
-chr1	4462757	rs597453	T	C	1.51	PASS	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.00;HRun=3;HaplotypeScore=2.36;MQ=60.00;MQ0=0;OQ=1873.91;QD=29.28;SB=-570.21	GT:AD:DP:GL:GQ	1/1:0,64:56:-191.00,-16.87,-0.03:99
-chr1	4463867	rs10799237	G	A	181.35	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=1.45;MQ=59.13;MQ0=0;OQ=2001.42;QD=37.76;SB=-711.98	GT:AD:DP:GL:GQ	1/1:0,53:51:-203.74,-15.36,-0.01:99
-chr1	4464187	.	T	C	30.12	PASS	AC=1;AF=0.50;AN=2;DP=62;Dels=0.00;HRun=1;HaplotypeScore=1.10;MQ=59.33;MQ0=0;OQ=552.68;QD=8.91;SB=-289.28	GT:AD:DP:GL:GQ	0/1:39,23:60:-76.63,-18.08,-155.34:99
-chr1	4465057	rs4654549	G	A	100.14	PASS	AC=1;AF=0.50;AN=2;DB;DP=77;Dels=0.00;HRun=1;HaplotypeScore=3.11;MQ=59.46;MQ0=0;OQ=1572.23;QD=20.42;SB=-717.81	GT:AD:DP:GL:GQ	0/1:31,46:75:-183.10,-22.59,-108.27:99
-chr1	4465240	rs4654439	A	G	186.31	PASS	AC=2;AF=1.00;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=1.93;MQ=59.65;MQ0=0;OQ=1824.70;QD=28.07;SB=-920.11	GT:AD:DP:GL:GQ	1/1:1,64:61:-189.47,-18.40,-3.41:99
-chr1	4465350	rs4654550	C	T	464.58	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=1.15;MQ=59.14;MQ0=0;OQ=1183.55;QD=15.57;SB=-491.13	GT:AD:DP:GL:GQ	0/1:39,37:73:-143.65,-22.01,-117.80:99
-chr1	4465703	rs16839157	C	G	292.75	PASS	AC=1;AF=0.50;AN=2;DB;DP=86;Dels=0.00;HRun=0;HaplotypeScore=2.96;MQ=59.46;MQ0=0;OQ=1332.22;QD=15.49;SB=-637.02	GT:AD:DP:GL:GQ	0/1:48,38:85:-162.12,-25.61,-205.23:99
-chr1	4465766	rs10753381	C	T	668.70	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.33;MQ0=0;OQ=2452.18;QD=39.55;SB=-960.97	GT:AD:DP:GL:GQ	1/1:0,62:62:-248.82,-18.68,-0.02:99
-chr1	4465913	rs10753382	A	C	344.57	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=2.23;MQ=42.45;MQ0=0;OQ=1152.30;QD=15.16;SB=-375.76	GT:AD:DP:GL:GQ	0/1:35,41:75:-141.10,-22.59,-129.43:99
-chr1	4465925	rs4654440	A	G	314.62	PASS	AC=2;AF=1.00;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=0.92;MQ=45.24;MQ0=0;OQ=2545.78;QD=35.36;SB=-1008.34	GT:AD:DP:GL:GQ	1/1:0,72:72:-258.19,-21.69,-0.03:99
-chr1	4466035	rs4654551	T	C	137.52	PASS	AC=2;AF=1.00;AN=2;DB;DP=80;Dels=0.00;HRun=0;HaplotypeScore=1.83;MQ=59.71;MQ0=0;OQ=2345.07;QD=29.31;SB=-919.32	GT:AD:DP:GL:GQ	1/1:0,80:75:-238.17,-22.62,-0.07:99
-chr1	4466375	rs4654441	A	G	153.58	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=2;HaplotypeScore=1.97;MQ=59.14;MQ0=0;OQ=1252.72;QD=16.48;SB=-599.98	GT:AD:DP:GL:GQ	0/1:32,44:75:-151.15,-22.60,-128.71:99
-chr1	4466539	.	G	C	13.68	PASS	AC=1;AF=0.50;AN=2;DP=59;Dels=0.00;HRun=1;HaplotypeScore=2.10;MQ=60.00;MQ0=0;OQ=1133.87;QD=19.22;SB=-442.73	GT:AD:DP:GL:GQ	0/1:26,33:58:-134.16,-17.49,-113.78:99
-chr1	4466591	rs7537577	T	C	558.12	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.60;MQ0=0;OQ=1692.69;QD=36.01;SB=-710.63	GT:AD:DP:GL:GQ	1/1:0,47:47:-172.87,-14.16,-0.01:99
-chr1	4466655	rs1870509	A	G	172.47	PASS	AC=2;AF=1.00;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=1.09;MQ=58.79;MQ0=0;OQ=1784.46;QD=27.04;SB=-725.30	GT:AD:DP:GL:GQ	1/1:0,66:58:-182.10,-17.50,-0.07:99
-chr1	4467025	rs1018306	G	A	522.41	PASS	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.05;MQ0=0;OQ=2397.83;QD=37.47;SB=-678.32	GT:AD:DP:GL:GQ	1/1:0,64:61:-243.39,-18.38,-0.02:99
-chr1	4467405	.	G	A	173.51	PASS	AC=1;AF=0.50;AN=2;DP=62;Dels=0.00;HRun=0;HaplotypeScore=1.07;MQ=60.00;MQ0=0;OQ=1037.40;QD=16.73;SB=-505.13	GT:AD:DP:GL:GQ	0/1:31,31:60:-125.11,-18.08,-96.58:99
-chr1	4467882	rs10799238	G	A	201.42	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=1.73;MQ=57.23;MQ0=0;OQ=2039.74;QD=37.09;SB=-730.98	GT:AD:DP:GL:GQ	1/1:0,54:52:-207.58,-15.67,-0.02:99
-chr1	4468054	rs10799239	G	T	526.93	PASS	AC=2;AF=1.00;AN=2;DB;DP=67;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.10;MQ0=0;OQ=2381.50;QD=35.54;SB=-1199.06	GT:AD:DP:GL:GQ	1/1:0,67:66:-241.76,-19.88,-0.02:99
-chr1	4468702	rs780570	T	C	301.27	PASS	AC=2;AF=1.00;AN=2;DB;DP=22;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=55.66;MQ0=0;OQ=692.07;QD=31.46;SB=-209.70	GT:AD:DP:GL:GQ	1/1:0,22:21:-72.80,-6.33,-0.01:63.17
-chr1	4468728	.	G	A	3.90	PASS	AC=1;AF=0.50;AN=2;DP=29;Dels=0.00;HRun=1;HaplotypeScore=1.85;MQ=52.20;MQ0=0;OQ=192.92;QD=6.65;SB=-94.59	GT:AD:DP:GL:GQ	0/1:18,10:25:-30.11,-7.53,-60.00:99
-chr1	4468760	rs60725706	C	T	2.79	PASS	AC=2;AF=1.00;AN=2;DB;DP=35;Dels=0.00;HRun=1;HaplotypeScore=2.68;MQ=47.80;MQ0=0;OQ=892.66;QD=25.50;SB=-420.32	GT:AD:DP:GL:GQ	1/1:1,34:26:-92.87,-7.84,-0.02:78.22
-chr1	4468793	.	C	T	155.10	SnpCluster	AC=1;AF=0.50;AN=2;DP=45;Dels=0.00;HRun=2;HaplotypeScore=28.66;MQ=43.47;MQ0=0;QD=3.45;SB=-75.82	GT:AD:DP:GL:GQ	0/1:34,11:31:-28.13,-9.34,-89.19:99
-chr1	4468798	rs57105176	C	T	210.28	SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=2;HaplotypeScore=33.72;MQ=43.23;MQ0=0;QD=4.38;SB=-105.47	GT:AD:DP:GL:GQ	0/1:33,15:33:-34.25,-9.94,-88.69:99
-chr1	4468800	.	C	T	23.55	DPFilter;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=49;Dels=0.00;HRun=2;HaplotypeScore=34.30;MQ=43.63;MQ0=0;QD=0.48;SB=32.09	GT:AD:DP:GL:GQ	0/1:44,5:35:-16.18,-10.54,-113.19:56.36
-chr1	4468801	.	T	C	10.10	DPFilter;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=48;Dels=0.00;HRun=1;HaplotypeScore=35.27;MQ=44.04;MQ0=0;QD=0.21;SB=32.13	GT:AD:DP:GL:GQ	0/1:43,5:35:-14.79,-10.54,-128.12:42.49
-chr1	4469243	rs12031045	G	A	324.76	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=623.89;QD=15.22;SB=-230.72	GT:AD:DP:GL:GQ	0/1:20,21:41:-78.04,-12.36,-70.49:99
-chr1	4469296	rs780569	T	A	228.26	PASS	AC=2;AF=1.00;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=59.28;MQ0=0;OQ=1316.01;QD=34.63;SB=-627.73	GT:AD:DP:GL:GQ	1/1:0,38:37:-135.20,-11.15,-0.01:99
-chr1	4469318	rs12035160	A	T	129.07	PASS	AC=1;AF=0.50;AN=2;DB;DP=32;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=57.81;MQ0=0;OQ=613.76;QD=19.18;SB=-234.94	GT:AD:DP:GL:GQ	0/1:11,21:31:-74.00,-9.34,-42.52:99
-chr1	4469407	rs10799241	A	G	224.26	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=1;HaplotypeScore=1.03;MQ=57.87;MQ0=0;OQ=407.85;QD=8.87;SB=-207.21	GT:AD:DP:GL:GQ	0/1:29,17:45:-57.62,-13.55,-119.36:99
-chr1	4469520	rs16839168	G	A	432.40	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=0.87;MQ=60.00;MQ0=0;OQ=846.65;QD=16.28;SB=-413.43	GT:AD:DP:GL:GQ	0/1:26,26:51:-103.31,-15.37,-89.05:99
-chr1	4469555	rs16839171	G	T	425.50	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=59.63;MQ0=0;OQ=647.76;QD=12.70;SB=-289.64	GT:AD:DP:GL:GQ	0/1:27,24:51:-83.43,-15.37,-93.72:99
-chr1	4469694	rs780568	A	G	87.34	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=2;HaplotypeScore=1.60;MQ=59.63;MQ0=0;OQ=1699.95;QD=33.33;SB=-755.94	GT:AD:DP:GL:GQ	1/1:0,51:49:-173.60,-14.76,-0.02:99
-chr1	4470136	rs16839175	T	C	275.26	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=0.33;MQ=59.63;MQ0=0;OQ=746.25;QD=11.85;SB=-286.15	GT:AD:DP:GL:GQ	0/1:31,32:61:-96.29,-18.39,-125.52:99
-chr1	4470246	rs1612698	A	G	417.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=1.34;MQ=60.15;MQ0=0;OQ=917.82;QD=12.40;SB=-358.93	GT:AD:DP:GL:GQ	0/1:42,32:74:-117.36,-22.29,-169.05:99
-chr1	4470842	rs4654552	C	T	182.29	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=1;HaplotypeScore=2.85;MQ=59.68;MQ0=0;OQ=1084.53;QD=15.28;SB=-349.06	GT:AD:DP:GL:GQ	0/1:37,34:71:-133.13,-21.39,-131.43:99
-chr1	4471600	rs1710415	A	G	89.74	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=0.10;MQ=59.45;MQ0=0;OQ=1235.30;QD=29.41;SB=-309.47	GT:AD:DP:GL:GQ	1/1:0,42:39:-127.15,-11.76,-0.03:99
-chr1	4471806	rs1762825	T	A	126.40	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=1;HaplotypeScore=0.32;MQ=59.16;MQ0=0;OQ=1997.53;QD=36.32;SB=-643.98	GT:AD:DP:GL:GQ	1/1:0,55:54:-203.35,-16.27,-0.02:99
-chr1	4471883	rs10915549	G	A	333.26	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=59.45;MQ0=0;OQ=443.28;QD=10.55;SB=-159.64	GT:AD:DP:GL:GQ	0/1:26,16:40:-59.67,-12.06,-79.56:99
-chr1	4472000	rs4654442	G	A	195.09	PASS	AC=2;AF=1.00;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=0.98;MQ=59.37;MQ0=0;OQ=2467.21;QD=37.38;SB=-970.01	GT:AD:DP:GL:GQ	1/1:0,66:62:-250.32,-18.68,-0.02:99
-chr1	4472928	rs4568797	G	T	198.75	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=2.61;MQ=59.01;MQ0=0;OQ=1306.78;QD=17.19;SB=-394.04	GT:AD:DP:GL:GQ	0/1:30,46:73:-155.95,-21.99,-98.20:99
-chr1	4472959	rs4480324	A	G	92.82	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=1;HaplotypeScore=0.32;MQ=59.63;MQ0=0;OQ=1914.93;QD=30.40;SB=-560.92	GT:AD:DP:GL:GQ	1/1:0,63:60:-195.13,-18.10,-0.06:99
-chr1	4472994	rs4323680	T	C	685.55	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.22;MQ0=0;OQ=1931.20;QD=32.73;SB=-824.33	GT:AD:DP:GL:GQ	1/1:0,59:55:-196.72,-16.57,-0.02:99
-chr1	4473017	rs4437847	T	C	44.80	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=58.88;MQ0=0;OQ=1770.27;QD=28.55;SB=-781.74	GT:AD:DP:GL:GQ	1/1:0,62:55:-180.66,-16.58,-0.05:99
-chr1	4473102	rs4442344	T	C	686.66	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.07;MQ0=0;OQ=1772.96;QD=35.46;SB=-792.00	GT:AD:DP:GL:GQ	1/1:0,50:50:-180.90,-15.06,-0.02:99
-chr1	4473320	rs1710418	A	G	44.26	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=4;HaplotypeScore=0.00;MQ=59.58;MQ0=0;OQ=1771.10;QD=32.20;SB=-713.21	GT:AD:DP:GL:GQ	1/1:0,54:51:-180.72,-15.36,-0.02:99
-chr1	4473327	rs1762828	G	A	169.38	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=59.60;MQ0=0;OQ=2054.72;QD=36.05;SB=-823.34	GT:AD:DP:GL:GQ	1/1:0,57:53:-209.08,-15.97,-0.02:99
-chr1	4473546	rs1710419	C	A	168.66	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=2.06;MQ=57.84;MQ0=0;OQ=1495.45;QD=32.51;SB=-770.46	GT:AD:DP:GL:GQ	1/1:0,46:43:-153.15,-12.95,-0.02:99
-chr1	4473664	rs1710420	C	T	149.96	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=1.90;MQ=59.20;MQ0=0;OQ=902.97;QD=15.57;SB=-230.52	GT:AD:DP:GL:GQ	0/1:30,28:57:-110.76,-17.18,-94.35:99
-chr1	4473849	rs1710421	C	T	247.57	PASS	AC=2;AF=1.00;AN=2;DB;DP=69;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.67;MQ0=0;OQ=2607.62;QD=37.79;SB=-1041.32	GT:AD:DP:GL:GQ	1/1:0,69:66:-264.37,-19.88,-0.02:99
-chr1	4473977	rs1710422	C	T	77.88	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=2.99;MQ=58.90;MQ0=0;OQ=2084.84;QD=37.91;SB=-795.07	GT:AD:DP:GL:GQ	1/1:0,55:54:-212.09,-16.27,-0.02:99
-chr1	4473997	rs1710423	T	C	135.26	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=1.44;MQ=59.07;MQ0=0;OQ=1147.64;QD=25.50;SB=-601.59	GT:AD:DP:GL:GQ	1/1:0,45:37:-118.39,-11.16,-0.04:99
-chr1	4474861	rs1710424	A	G	675.73	PASS	AC=2;AF=1.00;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.21;MQ0=0;OQ=2263.90;QD=31.89;SB=-1103.74	GT:AD:DP:GL:GQ	1/1:0,71:67:-230.02,-20.19,-0.04:99
-chr1	4475148	rs12036337	G	A	158.77	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=3.64;MQ=56.87;MQ0=1;OQ=1002.66;QD=14.75;SB=-286.76	GT:AD:DP:GL:GQ	0/1:34,34:59:-121.33,-17.78,-94.02:99
-chr1	4475283	.	G	A	82.68	PASS	AC=1;AF=0.50;AN=2;DP=64;Dels=0.00;HRun=0;HaplotypeScore=2.84;MQ=59.35;MQ0=0;OQ=845.94;QD=13.22;SB=-362.87	GT:AD:DP:GL:GQ	0/1:34,30:60:-105.97,-18.09,-111.99:99
-chr1	4475382	rs10915550	C	T	345.50	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=2.41;MQ=58.10;MQ0=0;OQ=927.67;QD=14.96;SB=-380.90	GT:AD:DP:GL:GQ	0/1:33,29:62:-114.73,-18.68,-118.48:99
-chr1	4476131	rs10737413	C	T	15.63	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=3;HaplotypeScore=0.16;MQ=59.60;MQ0=0;OQ=1742.86;QD=37.08;SB=-655.67	GT:AD:DP:GL:GQ	1/1:0,47:45:-177.88,-13.56,-0.01:99
-chr1	4476657	rs1710430	C	G	535.69	PASS	AC=2;AF=1.00;AN=2;DB;DP=56;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.67;MQ0=0;OQ=2311.95;QD=41.28;SB=-1026.21	GT:AD:DP:GL:GQ	1/1:0,56:54:-234.80,-16.27,-0.02:99
-chr1	4476980	rs4654443	C	T	562.55	PASS	AC=1;AF=0.50;AN=2;DB;DP=85;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.56;MQ0=0;OQ=1325.65;QD=15.60;SB=-630.22	GT:AD:DP:GL:GQ	0/1:45,40:85:-161.45,-25.60,-165.34:99
-chr1	4477487	rs12033789	G	T	214.07	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=1;HaplotypeScore=1.85;MQ=60.00;MQ0=0;OQ=905.30;QD=15.34;SB=-363.43	GT:AD:DP:GL:GQ	0/1:29,30:59:-111.58,-17.77,-100.35:99
-chr1	4477488	rs12036603	C	T	258.44	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=1.85;MQ=60.00;MQ0=0;OQ=969.57;QD=16.16;SB=-419.81	GT:AD:DP:GL:GQ	0/1:30,30:59:-118.02,-17.78,-101.27:99
-chr1	4478406	rs596607	G	A	55.59	PASS	AC=1;AF=0.50;AN=2;DB;DP=77;Dels=0.00;HRun=1;HaplotypeScore=0.67;MQ=59.40;MQ0=0;OQ=1761.44;QD=22.88;SB=-768.34	GT:AD:DP:GL:GQ	0/1:27,50:75:-202.03,-22.60,-83.51:99
-chr1	4478558	rs12039806	T	A	70.60	PASS	AC=1;AF=0.50;AN=2;DB;DP=79;Dels=0.00;HRun=1;HaplotypeScore=6.67;MQ=59.12;MQ0=0;OQ=1156.91;QD=14.64;SB=-441.48	GT:AD:DP:GL:GQ	0/1:42,37:77:-142.17,-23.19,-150.58:99
-chr1	4478614	rs12039814	T	C	10.71	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=7.09;MQ=59.66;MQ0=0;OQ=671.25;QD=10.02;SB=-294.21	GT:AD:DP:GL:GQ	0/1:37,30:64:-89.71,-19.30,-136.10:99
-chr1	4478650	rs12038994	A	T	269.76	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=59.65;MQ0=0;OQ=1147.45;QD=17.39;SB=-509.94	GT:AD:DP:GL:GQ	0/1:28,38:64:-137.31,-19.28,-105.10:99
-chr1	4478709	.	A	C	2.11	PASS	AC=1;AF=0.50;AN=2;DP=73;Dels=0.00;HRun=1;HaplotypeScore=7.65;MQ=58.73;MQ0=0;OQ=1101.58;QD=15.09;SB=-425.69	GT:AD:DP:GL:GQ	0/1:30,42:69:-134.23,-20.79,-106.44:99
-chr1	4478753	rs16839198	G	T	52.90	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=7.25;MQ=58.23;MQ0=0;OQ=906.23;QD=13.73;SB=-344.31	GT:AD:DP:GL:GQ	0/1:32,33:64:-113.20,-19.29,-98.09:99
-chr1	4478891	.	A	G	89.93	PASS	AC=1;AF=0.50;AN=2;DP=68;Dels=0.00;HRun=1;HaplotypeScore=0.48;MQ=59.39;MQ0=0;OQ=917.93;QD=13.50;SB=-396.16	GT:AD:DP:GL:GQ	0/1:36,32:68:-115.57,-20.49,-141.62:99
-chr1	4478991	rs12039070	A	G	301.10	PASS	AC=1;AF=0.50;AN=2;DB;DP=80;Dels=0.00;HRun=0;HaplotypeScore=3.59;MQ=59.71;MQ0=0;OQ=1280.19;QD=16.00;SB=-441.58	GT:AD:DP:GL:GQ	0/1:37,43:80:-155.40,-24.10,-149.81:99
-chr1	4479035	rs12034930	G	A	326.95	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=1.45;MQ=59.68;MQ0=0;OQ=1133.14;QD=15.74;SB=-491.00	GT:AD:DP:GL:GQ	0/1:34,37:69:-137.39,-20.79,-119.61:99
-chr1	4479073	rs12039100	A	G	27.26	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=2;HaplotypeScore=3.20;MQ=58.95;MQ0=0;OQ=915.49;QD=13.87;SB=-279.55	GT:AD:DP:GL:GQ	0/1:35,31:66:-114.72,-19.89,-140.84:99
-chr1	4479099	rs12039101	A	G	318.42	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=3.13;MQ=59.02;MQ0=0;OQ=1020.75;QD=14.38;SB=-348.94	GT:AD:DP:GL:GQ	0/1:36,35:70:-126.45,-21.09,-134.68:99
-chr1	4479118	rs1229148	A	G	277.76	PASS	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.00;HRun=1;HaplotypeScore=1.65;MQ=59.11;MQ0=0;OQ=784.46;QD=10.75;SB=-374.59	GT:AD:DP:GL:GQ	0/1:37,36:67:-101.94,-20.21,-133.99:99
-chr1	4479593	rs12035830	G	A	298.83	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=3.09;MQ=59.59;MQ0=0;OQ=906.38;QD=16.19;SB=-375.12	GT:AD:DP:GL:GQ	0/1:28,28:56:-110.79,-16.87,-99.66:99
-chr1	4479841	rs13375249	G	C	20.65	PASS	AC=1;AF=0.50;AN=2;DB;DP=70;Dels=0.00;HRun=3;HaplotypeScore=1.63;MQ=59.73;MQ0=0;OQ=1230.24;QD=17.57;SB=-290.56	GT:AD:DP:GL:GQ	0/1:33,37:66:-146.20,-19.90,-135.57:99
-chr1	4479995	rs13375764	T	C	66.03	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=1;HaplotypeScore=4.40;MQ=59.54;MQ0=0;OQ=574.33;QD=11.49;SB=-245.91	GT:AD:DP:GL:GQ	0/1:28,22:47:-74.88,-14.16,-104.49:99
-chr1	4480068	rs56226943	T	C	40.29	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=1;HaplotypeScore=4.82;MQ=59.62;MQ0=0;OQ=881.12;QD=14.44;SB=-433.94	GT:AD:DP:GL:GQ	0/1:29,32:60:-109.48,-18.08,-115.28:99
-chr1	4480417	.	C	T	49.35	PASS	AC=1;AF=0.50;AN=2;DP=69;Dels=0.00;HRun=0;HaplotypeScore=1.32;MQ=55.69;MQ0=0;OQ=1159.90;QD=16.81;SB=-282.22	GT:AD:DP:GL:GQ	0/1:33,36:66:-139.16,-19.89,-99.45:99
-chr1	4480560	rs61765366	A	G	285.70	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=1.30;MQ=56.94;MQ0=0;OQ=701.52;QD=11.89;SB=-268.60	GT:AD:DP:GL:GQ	0/1:29,30:57:-90.62,-17.18,-111.39:99
-chr1	4480691	rs61765367	A	G	0.21	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=0;HaplotypeScore=4.75;MQ=57.81;MQ0=0;OQ=122.26;QD=1.63;SB=-4.55	GT:AD:DP:GL:GQ	0/1:63,11:59:-33.30,-17.79,-184.25:99
-chr1	4480787	rs61765379	A	G	0.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=79;Dels=0.00;HRun=0;HaplotypeScore=7.68;MQ=56.41;MQ0=0;OQ=64.97;QD=0.82;SB=-50.25	GT:AD:DP:GL:GQ	0/1:64,12:67:-29.98,-20.20,-222.76:97.81
-chr1	4480849	rs549627	C	T	251.36	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=2.29;MQ=56.04;MQ0=0;OQ=1162.07;QD=16.37;SB=-467.11	GT:AD:DP:GL:GQ	0/1:33,37:67:-139.69,-20.20,-99.87:99
-chr1	4480920	rs548786	G	A	173	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=0.10;MQ=56.79;MQ0=1;OQ=670.11;QD=12.41;SB=-198.20	GT:AD:DP:GL:GQ	0/1:30,24:48:-84.77,-14.47,-84.01:99
-chr1	4481090	rs12039682	C	T	474.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=69;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=58.78;MQ0=0;OQ=980.72;QD=14.21;SB=-480.03	GT:AD:DP:GL:GQ	0/1:39,30:68:-121.84,-20.48,-138.54:99
-chr1	4481198	rs12039710	C	A	19.16	PASS	AC=1;AF=0.50;AN=2;DB;DP=88;Dels=0.00;HRun=3;HaplotypeScore=2.99;MQ=59.79;MQ0=0;OQ=1468.40;QD=16.69;SB=-755.87	GT:AD:DP:GL:GQ	0/1:41,47:88:-176.63,-26.50,-144.72:99
-chr1	4481445	rs608203	T	C	400.08	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=0.90;MQ=60.00;MQ0=0;OQ=763.64;QD=11.93;SB=-242.90	GT:AD:DP:GL:GQ	0/1:33,31:64:-98.94,-19.29,-134.86:99
-chr1	4481949	rs518456	T	G	602.74	PASS	AC=1;AF=0.50;AN=2;DB;DP=80;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.42;MQ0=0;OQ=1221.17;QD=15.26;SB=-525.73	GT:AD:DP:GL:GQ	0/1:37,43:77:-148.59,-23.19,-127.99:99
-chr1	4481956	rs57010025	C	T	238.50	PASS	AC=1;AF=0.50;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.40;MQ0=0;OQ=1419.96;QD=18.44;SB=-598.08	GT:AD:DP:GL:GQ	0/1:35,42:76:-168.18,-22.90,-116.42:99
-chr1	4482059	rs10489135	T	C	436.47	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=59.51;MQ0=0;OQ=1051.73;QD=13.84;SB=-549.55	GT:AD:DP:GL:GQ	0/1:39,37:73:-130.44,-21.99,-146.62:99
-chr1	4482139	rs57559146	A	C	431.51	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.06;MQ0=0;OQ=970.54;QD=17.33;SB=-397.86	GT:AD:DP:GL:GQ	0/1:23,33:54:-116.60,-16.26,-81.57:99
-chr1	4482422	rs60071491	T	C	92.13	PASS	AC=1;AF=0.50;AN=2;DB;DP=82;Dels=0.00;HRun=2;HaplotypeScore=0.92;MQ=56.24;MQ0=0;OQ=1374.62;QD=16.76;SB=-668.88	GT:AD:DP:GL:GQ	0/1:37,45:82:-165.44,-24.69,-153.42:99
-chr1	4482693	rs4112336	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=83;Dels=0.00;HRun=0;HaplotypeScore=102.81;MQ=56.77;MQ0=0;OQ=769.43;QD=9.27;SB=-197.80	GT:AD:DP:GL:GQ	0/1:55,28:82:-104.92,-24.70,-193.00:99
-chr1	4482708	.	C	A	39.18	Indel;LowQual	AC=1;AF=0.50;AN=2;DP=92;Dels=0.00;HRun=0;HaplotypeScore=48.79;MQ=55.68;MQ0=0;QD=0.43;SB=-10.83	GT:AD:DP:GL:GQ	0/1:82,10:90:-34.30,-27.10,-291.82:72.01
-chr1	4482756	rs1229150	T	G	280.23	PASS	AC=1;AF=0.50;AN=2;DB;DP=85;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=57.57;MQ0=0;OQ=1600.43;QD=18.83;SB=-735.72	GT:AD:DP:GL:GQ	0/1:32,53:82:-188.02,-24.70,-112.53:99
-chr1	4482784	rs1229151	A	G	1304.96	Indel	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=53.27;MQ0=0;QD=17.88;SB=-660.04	GT:AD:DP:GL:GQ	0/1:30,43:72:-155.47,-21.69,-120.71:99
-chr1	4482854	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=68;Dels=0.00;HRun=0;HaplotypeScore=78.29;MQ=48.56;MQ0=0;OQ=195.41;QD=2.87;SB=-84.58	GT:AD:DP:GL:GQ	0/1:55,13:66:-42.70,-19.88,-199.63:99
-chr1	4482959	rs2097536	C	T	73.43	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.49;MQ0=0;OQ=999.17;QD=22.20;SB=-274.28	GT:AD:DP:GL:GQ	0/1:16,29:44:-116.46,-13.25,-55.39:99
-chr1	4486372	rs12040164	C	T	326.57	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=1;HaplotypeScore=1.99;MQ=59.42;MQ0=0;OQ=1051.54;QD=14.60;SB=-388.33	GT:AD:DP:GL:GQ	0/1:40,32:72:-130.14,-21.70,-132.54:99
-chr1	4487829	rs241237	C	T	194.54	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=1.13;MQ=59.46;MQ0=0;OQ=801.99;QD=18.65;SB=-287.22	GT:AD:DP:GL:GQ	0/1:18,25:42:-96.14,-12.66,-58.53:99
-chr1	4488590	.	G	A	17.21	PASS	AC=1;AF=0.50;AN=2;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1047.83;QD=22.78;SB=-295.25	GT:AD:DP:GL:GQ	0/1:15,31:44:-121.33,-13.26,-41.74:99
-chr1	4489266	.	C	T	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=63;Dels=0.00;HRun=0;HaplotypeScore=19.48;MQ=53.94;MQ0=1;OQ=546.80;QD=8.68;SB=-157.24	GT:AD:DP:GL:GQ	0/1:31,26:42:-73.40,-15.44,-84.22:99
-chr1	4489270	rs241234	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=2;HaplotypeScore=25.61;MQ=53.85;MQ0=1;OQ=785.85;QD=12.28;SB=-389.60	GT:AD:DP:GL:GQ	0/1:33,31:57:-99.04,-17.17,-115.38:99
-chr1	4490410	rs241233	T	C	169.60	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=2;HaplotypeScore=1.70;MQ=59.74;MQ0=0;OQ=1074.01;QD=14.92;SB=-553.96	GT:AD:DP:GL:GQ	0/1:36,36:72:-132.37,-21.68,-149.45:99
-chr1	4490829	rs241232	G	A	84.32	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=2;HaplotypeScore=1.00;MQ=59.60;MQ0=0;OQ=913.96;QD=19.45;SB=-389.16	GT:AD:DP:GL:GQ	0/1:20,27:47:-108.84,-14.16,-68.00:99
-chr1	4492019	.	C	T	107.27	PASS	AC=1;AF=0.50;AN=2;DP=65;Dels=0.00;HRun=1;HaplotypeScore=0.87;MQ=59.07;MQ0=0;OQ=862.99;QD=13.28;SB=-457.42	GT:AD:DP:GL:GQ	0/1:38,27:64:-108.86,-19.28,-134.13:99
-chr1	4492104	rs241229	G	A	148.93	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=1;HaplotypeScore=0.92;MQ=59.63;MQ0=0;OQ=584.46;QD=9.28;SB=-212.39	GT:AD:DP:GL:GQ	0/1:43,20:63:-80.71,-18.98,-155.69:99
-chr1	4494463	rs537398	T	C	597.93	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=930.45;QD=15.51;SB=-426.29	GT:AD:DP:GL:GQ	0/1:29,31:60:-114.40,-18.07,-118.90:99
-chr1	4494858	rs34231005	T	G	11.27	PASS	AC=1;AF=0.50;AN=2;DB;DP=78;Dels=0.00;HRun=4;HaplotypeScore=0.14;MQ=59.76;MQ0=0;OQ=881.39;QD=11.30;SB=-322.46	GT:AD:DP:GL:GQ	0/1:45,33:76:-114.31,-22.89,-158.76:99
-chr1	4495171	rs509960	T	C	253.48	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=1;HaplotypeScore=2.40;MQ=60.00;MQ0=0;OQ=1172.46;QD=18.04;SB=-611.00	GT:AD:DP:GL:GQ	0/1:27,38:65:-140.10,-19.58,-110.54:99
-chr1	4495869	.	C	T	861.60	Indel	AC=1;AF=0.50;AN=2;DP=74;Dels=0.04;HRun=1;HaplotypeScore=22.99;MQ=51.44;MQ0=0;QD=11.64;SB=-342.41	GT:AD:DP:GL:GQ	0/1:44,27:74:-110.83,-21.38,-161.62:99
-chr1	4495871	.	C	A	736.52	Indel	AC=1;AF=0.50;AN=2;DP=74;Dels=0.04;HRun=0;HaplotypeScore=22.99;MQ=51.44;MQ0=0;QD=9.95;SB=-304.20	GT:AD:DP:GL:GQ	0/1:44,27:74:-98.32,-21.38,-161.31:99
-chr1	4496138	rs10915553	T	C	458.40	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=56.54;MQ0=0;OQ=880.60;QD=11.90;SB=-349.17	GT:AD:DP:GL:GQ	0/1:42,32:72:-113.03,-21.69,-158.51:99
-chr1	4496148	rs10915554	G	A	271.40	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=1;HaplotypeScore=0.63;MQ=55.61;MQ0=0;OQ=1132.53;QD=15.10;SB=-504.97	GT:AD:DP:GL:GQ	0/1:40,35:73:-138.53,-22.00,-129.42:99
-chr1	4496394	rs12084169	C	T	196.40	PASS	AC=1;AF=0.50;AN=2;DB;DP=82;Dels=0.00;HRun=0;HaplotypeScore=2.09;MQ=59.54;MQ0=0;OQ=1321.84;QD=16.12;SB=-685.73	GT:AD:DP:GL:GQ	0/1:41,41:80:-159.57,-24.10,-141.56:99
-chr1	4496424	rs12086217	A	G	463.85	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=0.83;MQ=59.43;MQ0=0;OQ=859.99;QD=13.23;SB=-378.26	GT:AD:DP:GL:GQ	0/1:34,31:65:-108.86,-19.58,-137.17:99
-chr1	4496942	rs623217	G	C	175.34	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=1.29;MQ=59.66;MQ0=0;OQ=1355.72;QD=19.94;SB=-471.80	GT:AD:DP:GL:GQ	0/1:31,37:66:-158.75,-19.89,-127.17:99
-chr1	4496949	rs472113	G	A	230.42	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=1.13;MQ=59.66;MQ0=0;OQ=1272.49;QD=18.99;SB=-462.43	GT:AD:DP:GL:GQ	0/1:30,37:67:-150.71,-20.18,-109.30:99
-chr1	4497460	rs556890	A	G	2.32	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=1;HaplotypeScore=9.81;MQ=58.48;MQ0=0;OQ=661.76;QD=14.39;SB=-333.32	GT:AD:DP:GL:GQ	0/1:21,24:43:-82.42,-12.96,-78.26:99
-chr1	4497578	.	G	A	145.29	PASS	AC=1;AF=0.50;AN=2;DP=70;Dels=0.00;HRun=0;HaplotypeScore=1.42;MQ=55.81;MQ0=2;OQ=939.73;QD=13.42;SB=-372.83	GT:AD:DP:GL:GQ	0/1:38,32:59:-115.04,-17.78,-100.90:99
-chr1	4497715	rs609304	T	C	122.41	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=1;HaplotypeScore=1.73;MQ=59.55;MQ0=0;OQ=597.13;QD=11.71;SB=-145.28	GT:AD:DP:GL:GQ	0/1:26,25:50:-78.07,-15.08,-99.80:99
-chr1	4497726	rs554335	A	T	316.28	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=60.00;MQ0=0;OQ=640.98;QD=12.57;SB=-272.29	GT:AD:DP:GL:GQ	0/1:29,22:51:-82.74,-15.36,-107.67:99
-chr1	4497802	rs16838465	A	G	196.23	PASS	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.00;HRun=1;HaplotypeScore=0.58;MQ=59.68;MQ0=0;OQ=953.26;QD=13.06;SB=-260.95	GT:AD:DP:GL:GQ	0/1:33,40:71:-120.01,-21.40,-135.23:99
-chr1	4497821	rs553435	A	G	265.49	PASS	AC=1;AF=0.50;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=3.67;MQ=59.70;MQ0=0;OQ=1049.73;QD=13.63;SB=-281.63	GT:AD:DP:GL:GQ	0/1:34,43:75:-130.87,-22.61,-136.05:99
-chr1	4497861	rs608492	G	C	466.90	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.05;MQ0=0;OQ=1478.41;QD=20.82;SB=-714.38	GT:AD:DP:GL:GQ	0/1:30,41:69:-171.91,-20.79,-131.74:99
-chr1	4497881	rs12726510	T	C	431.64	PASS	AC=1;AF=0.50;AN=2;DB;DP=84;Dels=0.00;HRun=0;HaplotypeScore=0.97;MQ=56.08;MQ0=0;OQ=981.66;QD=11.69;SB=-387.89	GT:AD:DP:GL:GQ	0/1:41,43:78:-124.95,-23.50,-161.69:99
-chr1	4497887	rs12752601	C	A	191.53	PASS	AC=1;AF=0.50;AN=2;DB;DP=84;Dels=0.00;HRun=1;HaplotypeScore=1.76;MQ=56.08;MQ0=0;OQ=1107.25;QD=13.18;SB=-552.73	GT:AD:DP:GL:GQ	0/1:44,40:81:-138.40,-24.39,-157.12:99
-chr1	4497950	rs12737521	G	A	266.94	PASS	AC=1;AF=0.50;AN=2;DB;DP=69;Dels=0.00;HRun=1;HaplotypeScore=0.99;MQ=58.10;MQ0=0;OQ=874.33;QD=12.67;SB=-378.16	GT:AD:DP:GL:GQ	0/1:41,28:69:-111.51,-20.80,-136.23:99
-chr1	4498077	rs551359	A	G	240.90	PASS	AC=1;AF=0.50;AN=2;DB;DP=89;Dels=0.00;HRun=0;HaplotypeScore=2.63;MQ=59.32;MQ0=0;OQ=1496.06;QD=16.81;SB=-547.59	GT:AD:DP:GL:GQ	0/1:39,50:88:-179.39,-26.50,-159.21:99
-chr1	4498168	rs495682	T	C	312.82	PASS	AC=1;AF=0.50;AN=2;DB;DP=84;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=59.73;MQ0=0;OQ=1219.53;QD=14.52;SB=-615.78	GT:AD:DP:GL:GQ	0/1:41,43:83:-150.24,-25.00,-166.52:99
-chr1	4498170	rs596848	G	A	305.85	PASS	AC=1;AF=0.50;AN=2;DB;DP=83;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=59.72;MQ0=0;OQ=1391.50;QD=16.77;SB=-693.72	GT:AD:DP:GL:GQ	0/1:40,43:81:-166.83,-24.40,-145.63:99
-chr1	4498284	rs596360	G	A	603.53	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.72;MQ0=0;OQ=984.96;QD=14.92;SB=-509.05	GT:AD:DP:GL:GQ	0/1:36,30:66:-121.68,-19.90,-113.72:99
-chr1	4498314	rs494638	T	C	459.72	PASS	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=0.98;MQ=59.34;MQ0=0;OQ=1145.34;QD=15.69;SB=-585.28	GT:AD:DP:GL:GQ	0/1:33,40:71:-139.20,-21.39,-128.86:99
-chr1	4498825	rs489371	A	G	35.40	PASS	AC=1;AF=0.50;AN=2;DB;DP=93;Dels=0.00;HRun=1;HaplotypeScore=4.84;MQ=56.29;MQ0=0;OQ=1173.41;QD=12.62;SB=-564.58	GT:AD:DP:GL:GQ	0/1:51,42:90:-147.73,-27.11,-207.42:99
-chr1	4498854	rs489316	A	G	383.07	PASS	AC=1;AF=0.50;AN=2;DB;DP=91;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=53.44;MQ0=0;OQ=1022.72;QD=11.24;SB=-456.67	GT:AD:DP:GL:GQ	0/1:50,41:90:-132.68,-27.12,-202.80:99
-chr1	4499103	rs592726	C	T	522.92	PASS	AC=1;AF=0.50;AN=2;DB;DP=89;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.01;MQ0=0;OQ=1251.74;QD=14.06;SB=-614.59	GT:AD:DP:GL:GQ	0/1:50,39:87:-154.68,-26.22,-160.76:99
-chr1	4499256	rs6673713	A	T	601.23	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=57.46;MQ0=0;OQ=969.14;QD=15.38;SB=-478.55	GT:AD:DP:GL:GQ	0/1:32,31:63:-119.17,-18.97,-123.21:99
-chr1	4499545	rs6677142	T	C	474.20	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=0.87;MQ=56.97;MQ0=0;OQ=1056.33;QD=15.77;SB=-489.28	GT:AD:DP:GL:GQ	0/1:31,36:67:-129.10,-20.18,-124.32:99
-chr1	4499557	rs10158638	A	G	600.71	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.01;MQ0=0;OQ=954.47;QD=14.46;SB=-498.28	GT:AD:DP:GL:GQ	0/1:33,33:66:-118.61,-19.88,-133.94:99
-chr1	4499695	rs28694108	C	T	122.88	PASS	AC=1;AF=0.50;AN=2;DB;DP=69;Dels=0.00;HRun=0;HaplotypeScore=2.23;MQ=60.16;MQ0=0;OQ=1387.28;QD=20.11;SB=-460.49	GT:AD:DP:GL:GQ	0/1:27,42:67:-162.21,-20.20,-83.84:99
-chr1	4499852	rs569392	T	C	181.23	PASS	AC=1;AF=0.50;AN=2;DB;DP=84;Dels=0.00;HRun=1;HaplotypeScore=1.97;MQ=59.40;MQ0=0;OQ=1301.88;QD=15.50;SB=-652.84	GT:AD:DP:GL:GQ	0/1:40,44:84:-158.78,-25.30,-162.80:99
-chr1	4499866	rs638811	G	A	371.51	PASS	AC=1;AF=0.50;AN=2;DB;DP=79;Dels=0.00;HRun=0;HaplotypeScore=0.93;MQ=59.47;MQ0=0;OQ=1161.22;QD=14.70;SB=-516.05	GT:AD:DP:GL:GQ	0/1:40,38:72:-141.11,-21.71,-113.94:99
-chr1	4500093	rs627374	C	A	201.56	PASS	AC=1;AF=0.50;AN=2;DB;DP=82;Dels=0.00;HRun=1;HaplotypeScore=3.04;MQ=56.24;MQ0=0;OQ=1409.06;QD=17.18;SB=-575.67	GT:AD:DP:GL:GQ	0/1:36,45:77:-170.76,-26.57,-102.66:99
-chr1	4500144	rs1612095	G	C	191.96	PASS	AC=1;AF=0.50;AN=2;DB;DP=98;Dels=0.00;HRun=0;HaplotypeScore=1.99;MQ=58.14;MQ0=0;OQ=1652.98;QD=16.87;SB=-714.30	GT:AD:DP:GL:GQ	0/1:51,47:96:-197.51,-28.93,-219.71:99
-chr1	4500181	rs1612008	C	T	343.92	PASS	AC=1;AF=0.50;AN=2;DB;DP=92;Dels=0.00;HRun=0;HaplotypeScore=0.97;MQ=59.55;MQ0=0;OQ=1543.90;QD=16.78;SB=-630.74	GT:AD:DP:GL:GQ	0/1:42,49:86:-183.59,-25.91,-132.31:99
-chr1	4500274	rs544513	A	G	399.63	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=60.00;MQ0=0;OQ=703.77;QD=11.00;SB=-261.96	GT:AD:DP:GL:GQ	0/1:33,31:62:-92.35,-18.69,-134.62:99
-chr1	4500351	rs543653	T	G	570.98	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=699.52;QD=12.27;SB=-362.58	GT:AD:DP:GL:GQ	0/1:31,26:56:-90.10,-16.87,-111.77:99
-chr1	4500481	rs542688	C	G	360.13	PASS	AC=1;AF=0.50;AN=2;DB;DP=79;Dels=0.00;HRun=1;HaplotypeScore=0.73;MQ=59.76;MQ0=0;OQ=1267.59;QD=16.05;SB=-449.73	GT:AD:DP:GL:GQ	0/1:41,38:77:-153.25,-23.20,-181.78:99
-chr1	4500512	rs625627	C	T	286.16	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=3.37;MQ=59.08;MQ0=0;OQ=914.91;QD=12.89;SB=-281.75	GT:AD:DP:GL:GQ	0/1:39,32:67:-114.97,-20.19,-123.19:99
-chr1	4500529	rs541929	A	G	325.19	PASS	AC=1;AF=0.50;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=2.04;MQ=59.16;MQ0=0;OQ=945.37;QD=12.28;SB=-290.30	GT:AD:DP:GL:GQ	0/1:42,34:76:-120.71,-22.89,-170.67:99
-chr1	4500606	rs10915556	C	T	355.71	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1316.31;QD=19.65;SB=-489.56	GT:AD:DP:GL:GQ	0/1:29,38:66:-154.80,-19.88,-102.91:99
-chr1	4500644	rs2051642	G	T	498.30	PASS	AC=1;AF=0.50;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1142.97;QD=16.33;SB=-501.30	GT:AD:DP:GL:GQ	0/1:32,38:70:-138.67,-21.09,-110.82:99
-chr1	4500677	rs2051641	C	T	126.58	PASS	AC=1;AF=0.50;AN=2;DB;DP=79;Dels=0.00;HRun=1;HaplotypeScore=2.61;MQ=60.00;MQ0=0;OQ=1424.93;QD=18.04;SB=-396.12	GT:AD:DP:GL:GQ	0/1:37,42:79:-169.57,-23.79,-134.20:99
-chr1	4500995	rs694361	G	A	987.12	Indel	AC=1;AF=0.50;AN=2;DB;DP=69;Dels=0.00;HRun=10;HaplotypeScore=19.73;MQ=59.67;MQ0=0;QD=14.31;SB=-451.85	GT:AD:DP:GL:GQ	0/1:36,33:64:-121.28,-19.29,-109.34:99
-chr1	4501161	rs10915557	A	C	322.35	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=59.59;MQ0=0;OQ=772.74;QD=13.80;SB=-198.82	GT:AD:DP:GL:GQ	0/1:27,28:54:-96.83,-16.27,-94.26:99
-chr1	4501182	rs10915558	G	T	398.28	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.63;MQ0=0;OQ=829.24;QD=13.16;SB=-280.30	GT:AD:DP:GL:GQ	0/1:32,31:61:-104.58,-18.38,-107.72:99
-chr1	4501418	rs988089	G	T	231.64	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=1;HaplotypeScore=1.95;MQ=59.83;MQ0=0;OQ=785.83;QD=14.29;SB=-379.13	GT:AD:DP:GL:GQ	0/1:28,27:55:-98.43,-16.57,-95.26:99
-chr1	4501445	rs988088	G	A	287.91	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=2.46;MQ=59.35;MQ0=0;OQ=635.25;QD=14.77;SB=-270.30	GT:AD:DP:GL:GQ	0/1:21,22:39:-78.57,-11.76,-58.80:99
-chr1	4501584	rs1988134	A	T	372.09	PASS	AC=1;AF=0.50;AN=2;DB;DP=83;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=59.72;MQ0=0;OQ=1235.61;QD=14.89;SB=-511.29	GT:AD:DP:GL:GQ	0/1:43,40:83:-151.84,-25.00,-162.60:99
-chr1	4501936	rs508056	T	C	0.28	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.01;HRun=1;HaplotypeScore=15.97;MQ=59.84;MQ0=0;OQ=1145.11;QD=15.07;SB=-479.27	GT:AD:DP:GL:GQ	0/1:36,39:76:-140.39,-22.59,-147.97:99
-chr1	4501948	rs594535	A	T	38.55	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.01;HRun=0;HaplotypeScore=7.00;MQ=59.51;MQ0=0;OQ=1283.54;QD=17.83;SB=-623.13	GT:AD:DP:GL:GQ	0/1:31,40:72:-153.02,-21.38,-116.42:99
-chr1	4502177	rs640624	T	C	14.98	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=7.76;MQ=59.57;MQ0=0;OQ=1108.01;QD=16.29;SB=-573.02	GT:AD:DP:GL:GQ	0/1:30,38:66:-133.97,-19.88,-116.04:99
-chr1	4502677	.	A	G	145.65	PASS	AC=1;AF=0.50;AN=2;DP=66;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=59.30;MQ0=0;OQ=805.91;QD=12.21;SB=-395.14	GT:AD:DP:GL:GQ	0/1:37,29:66:-103.76,-19.88,-150.61:99
-chr1	4502871	rs2411775	C	T	188.48	PASS	AC=1;AF=0.50;AN=2;DB;DP=69;Dels=0.00;HRun=0;HaplotypeScore=0.92;MQ=59.39;MQ0=0;OQ=1230.48;QD=17.83;SB=-330.32	GT:AD:DP:GL:GQ	0/1:32,36:67:-146.52,-20.19,-100.70:99
-chr1	4503184	rs694935	T	A	28.68	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=3;HaplotypeScore=2.73;MQ=59.33;MQ0=0;OQ=840.35;QD=13.55;SB=-222.90	GT:AD:DP:GL:GQ	0/1:31,31:58:-104.80,-17.48,-105.42:99
-chr1	4503230	rs694967	T	G	352.39	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=2.39;MQ=57.78;MQ0=0;OQ=1098.27;QD=15.25;SB=-535.44	GT:AD:DP:GL:GQ	0/1:33,39:72:-134.80,-21.69,-119.88:99
-chr1	4503601	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=120;Dels=0.00;HRun=1;HaplotypeScore=106.52;MQ=39.06;MQ0=0;OQ=897.90;QD=7.48;SB=-269.21	GT:AD:DP:GL:GQ	0/1:86,34:118:-128.61,-35.54,-314.22:99
-chr1	4503616	.	T	C	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=137;Dels=0.00;HRun=1;HaplotypeScore=12.83;MQ=37.47;MQ0=0;OQ=467.51;QD=3.41;SB=-122.22	GT:AD:DP:GL:GQ	0/1:111,26:134:-90.40,-40.36,-439.82:99
-chr1	4503623	rs241214	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=148;Dels=0.00;HRun=0;HaplotypeScore=94.05;MQ=37.91;MQ0=0;OQ=4273.01;QD=28.87;SB=-1538.72	GT:AD:DP:GL:GQ	0/1:32,114:147:-426.30,-51.49,-123.04:99
-chr1	4503639	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=159;Dels=0.00;HRun=0;HaplotypeScore=260.99;MQ=37.36;MQ0=0;OQ=1166.38;QD=7.34;SB=-484.60	GT:AD:DP:GL:GQ	0/1:114,44:124:-157.27,-37.35,-295.16:99
-chr1	4503657	rs12754029	A	C	1394.26	DPFilter;Indel	AC=1;AF=0.50;AN=2;DB;DP=153;Dels=0.00;HRun=1;HaplotypeScore=166.14;MQ=39.29;MQ0=0;QD=9.11;SB=-599.12	GT:AD:DP:GL:GQ	0/1:73,77:122:-190.87,-48.16,-269.49:99
-chr1	4503674	rs61111938	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=147;Dels=0.00;HRun=0;HaplotypeScore=137.11;MQ=42.18;MQ0=0;OQ=392.40;QD=2.67;SB=-58.59	GT:AD:DP:GL:GQ	0/1:124,23:123:-79.58,-37.06,-405.54:99
-chr1	4503686	rs61202630	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=124;Dels=0.03;HRun=0;HaplotypeScore=163.66;MQ=45.68;MQ0=0;OQ=981.22;QD=7.91;SB=-498.66	GT:AD:DP:GL:GQ	0/1:79,40:116:-138.71,-37.31,-281.28:99
-chr1	4503715	.	T	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=85;Dels=0.00;HRun=0;HaplotypeScore=16.61;MQ=53.48;MQ0=0;OQ=158.20;QD=1.86;SB=-90.66	GT:AD:DP:GL:GQ	0/1:72,13:84:-44.41,-25.30,-293.89:99
-chr1	4503964	rs241215	T	A	444.25	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=0;HaplotypeScore=0.98;MQ=54.88;MQ0=0;OQ=1312.48;QD=17.50;SB=-618.08	GT:AD:DP:GL:GQ	0/1:34,41:75:-157.12,-22.59,-129.67:99
-chr1	4504029	rs241216	G	A	155.80	PASS	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=4.03;MQ=59.43;MQ0=0;OQ=1251.65;QD=17.15;SB=-469.46	GT:AD:DP:GL:GQ	0/1:35,38:70:-149.55,-21.10,-107.16:99
-chr1	4504349	rs241217	C	G	275.14	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.68;MQ0=0;OQ=1603.60;QD=22.59;SB=-778.42	GT:AD:DP:GL:GQ	0/1:29,42:71:-185.04,-21.39,-125.25:99
-chr1	4505282	rs241218	T	C	43.78	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=7.22;MQ=59.15;MQ0=0;OQ=812.13;QD=11.44;SB=-395.26	GT:AD:DP:GL:GQ	0/1:37,34:67:-104.70,-20.20,-130.72:99
-chr1	4506052	rs241219	T	C	334.21	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=2.94;MQ=59.17;MQ0=0;OQ=741.75;QD=13.25;SB=-389.65	GT:AD:DP:GL:GQ	0/1:27,29:55:-94.04,-16.58,-103.55:99
-chr1	4508064	rs241220	G	A	334	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=1.78;MQ=60.00;MQ0=0;OQ=1163.49;QD=17.37;SB=-431.97	GT:AD:DP:GL:GQ	0/1:32,35:66:-139.53,-19.90,-98.33:99
-chr1	4508910	rs241221	T	C	373.72	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=1;HaplotypeScore=0.83;MQ=59.20;MQ0=0;OQ=874.89;QD=15.08;SB=-418.55	GT:AD:DP:GL:GQ	0/1:25,33:55:-107.34,-16.57,-97.13:99
-chr1	4509116	rs241222	G	C	267.87	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=3.24;MQ=59.18;MQ0=0;OQ=1337.43;QD=18.07;SB=-676.08	GT:AD:DP:GL:GQ	0/1:37,37:72:-158.72,-21.69,-154.68:99
-chr1	4510110	rs241244	A	T	180.09	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=1;HaplotypeScore=2.78;MQ=60.38;MQ0=0;OQ=930.99;QD=16.33;SB=-387.46	GT:AD:DP:GL:GQ	0/1:27,30:57:-113.55,-17.17,-101.72:99
-chr1	4510493	rs241245	T	C	361.78	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=1.12;MQ=60.00;MQ0=0;OQ=851.20;QD=14.43;SB=-421.93	GT:AD:DP:GL:GQ	0/1:29,30:57:-105.58,-17.17,-107.45:99
-chr1	4510920	rs241246	T	C	463.10	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=0.98;MQ=59.63;MQ0=0;OQ=864.46;QD=13.94;SB=-382.19	GT:AD:DP:GL:GQ	0/1:32,30:62:-108.40,-18.67,-129.80:99
-chr1	4510938	rs241247	G	T	223.55	PASS	AC=1;AF=0.50;AN=2;DB;DP=79;Dels=0.00;HRun=0;HaplotypeScore=4.47;MQ=59.71;MQ0=0;OQ=1111.82;QD=14.07;SB=-561.61	GT:AD:DP:GL:GQ	0/1:42,37:78:-137.96,-23.49,-147.67:99
-chr1	4511101	rs241248	G	A	90.66	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=1;HaplotypeScore=4.65;MQ=58.90;MQ0=0;OQ=1137.70;QD=15.80;SB=-412.89	GT:AD:DP:GL:GQ	0/1:38,34:72:-138.74,-21.69,-139.14:99
-chr1	4512226	rs241249	C	A	118.09	PASS	AC=2;AF=1.00;AN=2;DB;DP=75;Dels=0.00;HRun=4;HaplotypeScore=0.00;MQ=59.69;MQ0=0;OQ=2704.76;QD=36.06;SB=-1203.75	GT:AD:DP:GL:GQ	1/1:0,75:73:-274.08,-21.98,-0.01:99
-chr1	4512612	rs12117466	C	T	434.32	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.75;MQ0=0;OQ=1595.86;QD=21.57;SB=-705.78	GT:AD:DP:GL:GQ	0/1:28,46:74:-185.16,-22.29,-104.90:99
-chr1	4512789	rs2222050	C	G	399.97	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=51.66;MQ0=0;OQ=560.26;QD=12.18;SB=-284.90	GT:AD:DP:GL:GQ	0/1:29,17:46:-73.17,-13.86,-129.73:99
-chr1	4512997	.	G	C	109.15	PASS	AC=1;AF=0.50;AN=2;DP=71;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=57.26;MQ0=0;OQ=1039.37;QD=14.64;SB=-540.64	GT:AD:DP:GL:GQ	0/1:41,30:70:-128.31,-21.09,-176.73:99
-chr1	4513093	rs241250	C	T	592.78	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=56.64;MQ0=0;OQ=2215.68;QD=40.29;SB=-1120.49	GT:AD:DP:GL:GQ	1/1:0,55:55:-225.17,-16.57,-0.01:99
-chr1	4513279	rs241251	T	C	191.39	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=3.46;MQ=56.17;MQ0=0;OQ=859.05;QD=12.10;SB=-428.93	GT:AD:DP:GL:GQ	0/1:40,31:71:-110.57,-21.39,-162.21:99
-chr1	4513371	rs241252	G	A	678.22	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2454.05;QD=39.58;SB=-997.85	GT:AD:DP:GL:GQ	1/1:0,61:61:-249.00,-18.37,-0.01:99
-chr1	4513556	rs56948682	G	C	523.60	Indel	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=2;HaplotypeScore=3.31;MQ=55.31;MQ0=0;QD=11.90;SB=-218.66	GT:AD:DP:GL:GQ	0/1:25,19:40:-67.72,-12.07,-92.30:99
-chr1	4513868	rs241254	G	A	271.50	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=1.27;MQ=58.71;MQ0=0;OQ=649.43;QD=12.03;SB=-239.26	GT:AD:DP:GL:GQ	0/1:28,25:50:-83.30,-15.07,-98.60:99
-chr1	4513881	rs241255	G	C	176.18	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=1;HaplotypeScore=0.79;MQ=58.80;MQ0=0;OQ=2370.20;QD=40.87;SB=-1167.06	GT:AD:DP:GL:GQ	1/1:0,58:55:-240.62,-16.57,-0.01:99
-chr1	4514372	rs241256	C	T	582.40	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.73;MQ0=0;OQ=913.61;QD=13.44;SB=-345.84	GT:AD:DP:GL:GQ	0/1:39,29:68:-115.13,-20.48,-142.92:99
-chr1	4514476	rs6426419	T	A	347.17	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.92;MQ=59.60;MQ0=0;OQ=541.18;QD=9.33;SB=-252.68	GT:AD:DP:GL:GQ	0/1:37,21:57:-74.57,-17.17,-137.52:99
-chr1	4514682	rs241257	C	T	286.90	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=2;HaplotypeScore=-0.06;MQ=60.00;MQ0=0;OQ=2358.24;QD=39.97;SB=-1174.07	GT:AD:DP:GL:GQ	1/1:0,59:59:-239.42,-17.77,-0.01:99
-chr1	4514873	rs171319	C	T	380.27	PASS	AC=1;AF=0.50;AN=2;DB;DP=80;Dels=0.00;HRun=0;HaplotypeScore=1.56;MQ=59.42;MQ0=0;OQ=1086.37;QD=13.58;SB=-534.53	GT:AD:DP:GL:GQ	0/1:46,34:78:-135.44,-23.52,-140.72:99
-chr1	4515369	rs241258	G	A	48.68	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=2.13;MQ=47.21;MQ0=0;OQ=749.09;QD=17.42;SB=-181.27	GT:AD:DP:GL:GQ	0/1:20,23:42:-90.85,-12.66,-63.49:99
-chr1	4515444	rs241259	C	G	22.32	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=2;HaplotypeScore=1.00;MQ=50.43;MQ0=0;OQ=2118.85;QD=40.75;SB=-972.73	GT:AD:DP:GL:GQ	1/1:0,52:49:-215.48,-14.76,-0.01:99
-chr1	4515588	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=56;Dels=0.00;HRun=15;HaplotypeScore=4.97;MQ=51.27;MQ0=0;OQ=250.35;QD=4.47;SB=56.21	GT:AD:DP:GL:GQ	0/1:42,14:49:-43.09,-14.77,-129.95:99
-chr1	4515926	rs241260	C	G	33.59	PASS	AC=2;AF=1.00;AN=2;DB;DP=78;Dels=0.00;HRun=2;HaplotypeScore=2.19;MQ=55.21;MQ0=0;OQ=3292.12;QD=42.21;SB=-1616.25	GT:AD:DP:GL:GQ	1/1:0,78:75:-328.21,-22.60,-0.02:99
-chr1	4515962	rs241261	T	C	602.08	PASS	AC=2;AF=1.00;AN=2;DB;DP=83;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=56.64;MQ0=0;OQ=2469.23;QD=29.75;SB=-1091.36	GT:AD:DP:GL:GQ	1/1:0,83:79:-250.58,-23.83,-0.08:99
-chr1	4516659	rs241262	T	G	634.51	PASS	AC=2;AF=1.00;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2557.93;QD=35.53;SB=-1149.62	GT:AD:DP:GL:GQ	1/1:0,72:72:-259.40,-21.69,-0.02:99
-chr1	4517716	rs10799244	T	C	405.95	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=59.15;MQ0=0;OQ=1346.22;QD=18.96;SB=-628.34	GT:AD:DP:GL:GQ	0/1:27,44:70:-158.99,-21.09,-107.87:99
-chr1	4518111	rs6685798	G	A	309.27	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=2.53;MQ=59.32;MQ0=0;OQ=1238.56;QD=18.21;SB=-627.62	GT:AD:DP:GL:GQ	0/1:30,37:65:-146.72,-19.58,-98.24:99
-chr1	4518139	rs916408	T	C	232.25	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=1;HaplotypeScore=1.86;MQ=59.63;MQ0=0;OQ=609.90;QD=9.84;SB=-241.88	GT:AD:DP:GL:GQ	0/1:34,28:60:-82.36,-18.09,-138.61:99
-chr1	4518389	rs916407	C	A	294.22	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=58.44;MQ0=0;OQ=593.42;QD=10.99;SB=-258.24	GT:AD:DP:GL:GQ	0/1:32,22:53:-78.59,-15.97,-110.59:99
-chr1	4518393	rs916406	T	C	102.38	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=1.66;MQ=58.50;MQ0=0;OQ=426.60;QD=7.62;SB=-216.22	GT:AD:DP:GL:GQ	0/1:34,22:50:-61.02,-15.07,-122.30:99
-chr1	4518582	rs241263	T	C	395.70	PASS	AC=2;AF=1.00;AN=2;DB;DP=73;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2663.66;QD=36.49;SB=-1355.60	GT:AD:DP:GL:GQ	1/1:0,73:73:-269.97,-21.98,-0.02:99
-chr1	4518898	rs241264	C	T	593.29	PASS	AC=2;AF=1.00;AN=2;DB;DP=81;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.77;MQ0=0;OQ=3315.63;QD=40.93;SB=-1267.69	GT:AD:DP:GL:GQ	1/1:0,81:81:-330.56,-24.40,-0.02:99
-chr1	4519253	rs241265	G	T	396.78	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.60;MQ0=0;OQ=442.53;QD=9.42;SB=-108.63	GT:AD:DP:GL:GQ	0/1:30,17:47:-61.69,-14.15,-109.08:99
-chr1	4520150	rs241266	G	A	572.22	PASS	AC=1;AF=0.50;AN=2;DB;DP=78;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.22;MQ0=0;OQ=1309.70;QD=16.79;SB=-634.24	GT:AD:DP:GL:GQ	0/1:38,40:77:-157.45,-23.20,-135.23:99
-chr1	4520783	rs10915560	T	C	479.08	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.69;MQ0=0;OQ=617.89;QD=10.13;SB=-279.12	GT:AD:DP:GL:GQ	0/1:36,25:60:-83.15,-18.08,-142.30:99
-chr1	4520856	rs12120353	C	A	156.50	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=2;HaplotypeScore=0.89;MQ=60.00;MQ0=0;OQ=694.57;QD=12.19;SB=-303.22	GT:AD:DP:GL:GQ	0/1:32,25:54:-89.01,-16.27,-103.65:99
-chr1	4521323	rs241267	C	T	378.46	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=0.63;MQ=59.60;MQ0=0;OQ=620.84;QD=13.21;SB=-243.25	GT:AD:DP:GL:GQ	0/1:25,22:45:-78.94,-13.58,-74.16:99
-chr1	4521646	rs12748186	C	T	419.48	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.64;MQ0=0;OQ=983.89;QD=18.92;SB=-364.52	GT:AD:DP:GL:GQ	0/1:23,29:52:-117.34,-15.67,-75.86:99
-chr1	4522500	rs241268	A	G	490.54	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1548.29;QD=30.97;SB=-704.61	GT:AD:DP:GL:GQ	1/1:0,50:49:-158.46,-14.78,-0.04:99
-chr1	4523101	.	G	T	20.08	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=58;Dels=0.00;HRun=16;HaplotypeScore=10.17;MQ=50.32;MQ0=0;QD=0.35;SB=50.87	GT:AD:DP:GL:GQ	0/1:48,10:42:-17.95,-12.66,-121.78:52.87
-chr1	4523283	rs241269	C	T	335.48	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=60.00;MQ0=0;OQ=806.86;QD=12.81;SB=-308.31	GT:AD:DP:GL:GQ	0/1:36,27:61:-102.37,-18.40,-111.88:99
-chr1	4523749	rs55956326	C	T	46.96	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=1.05;MQ=60.00;MQ0=0;OQ=776.69;QD=17.65;SB=-140.14	GT:AD:DP:GL:GQ	0/1:21,23:44:-94.21,-13.26,-66.49:99
-chr1	4524365	rs497517	C	A	203.92	PASS	AC=2;AF=1.00;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=1.25;MQ=57.23;MQ0=0;OQ=2311.84;QD=35.57;SB=-943.65	GT:AD:DP:GL:GQ	1/1:0,65:64:-234.79,-19.27,-0.02:99
-chr1	4524639	rs190250	T	C	96.54	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=54.62;MQ0=1;OQ=1410.76;QD=28.22;SB=-520.24	GT:AD:DP:GL:GQ	1/1:1,49:43:-144.69,-12.96,-0.03:99
-chr1	4525049	rs241270	T	A	128.22	PASS	AC=2;AF=1.00;AN=2;DB;DP=77;Dels=0.00;HRun=2;HaplotypeScore=0.58;MQ=57.31;MQ0=0;OQ=2756.56;QD=35.80;SB=-964.62	GT:AD:DP:GL:GQ	1/1:0,76:75:-279.26,-22.59,-0.02:99
-chr1	4525775	.	C	T	82.15	PASS	AC=1;AF=0.50;AN=2;DP=51;Dels=0.00;HRun=0;HaplotypeScore=1.88;MQ=60.00;MQ0=0;OQ=631.76;QD=12.39;SB=-287.21	GT:AD:DP:GL:GQ	0/1:28,23:47:-80.62,-14.16,-88.43:99
-chr1	4526115	rs241271	T	C	508.56	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.62;MQ0=0;OQ=1796.29;QD=29.45;SB=-877.68	GT:AD:DP:GL:GQ	1/1:0,61:57:-183.26,-17.19,-0.05:99
-chr1	4526127	rs241272	T	G	620.21	PASS	AC=2;AF=1.00;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.35;MQ0=0;OQ=2425.30;QD=34.16;SB=-1142.12	GT:AD:DP:GL:GQ	1/1:0,71:70:-246.14,-21.08,-0.02:99
-chr1	4526146	rs1515670	A	G	180.27	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=3.98;MQ=58.96;MQ0=0;OQ=860.15;QD=12.84;SB=-436.91	GT:AD:DP:GL:GQ	0/1:37,30:66:-109.18,-19.88,-145.10:99
-chr1	4526937	rs241273	A	C	421.62	PASS	AC=1;AF=0.50;AN=2;DB;DP=69;Dels=0.00;HRun=0;HaplotypeScore=0.33;MQ=60.00;MQ0=0;OQ=1105.42;QD=16.02;SB=-515.69	GT:AD:DP:GL:GQ	0/1:31,38:69:-134.61,-20.78,-114.90:99
-chr1	4527342	rs241274	A	C	51.54	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=4;HaplotypeScore=0.00;MQ=59.25;MQ0=0;OQ=1996.50;QD=32.20;SB=-821.03	GT:AD:DP:GL:GQ	1/1:0,62:58:-203.26,-17.47,-0.02:99
-chr1	4527839	rs241275	A	G	555.63	PASS	AC=2;AF=1.00;AN=2;DB;DP=88;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.03;MQ0=0;OQ=2594.28;QD=29.48;SB=-1228.48	GT:AD:DP:GL:GQ	1/1:0,88:82:-263.09,-24.73,-0.08:99
-chr1	4528191	rs28665533	G	A	434.73	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.69;MQ0=0;OQ=1407.19;QD=19.02;SB=-661.67	GT:AD:DP:GL:GQ	0/1:32,42:74:-166.29,-22.29,-115.61:99
-chr1	4528559	rs241276	C	T	153.75	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=4.22;MQ=59.30;MQ0=0;OQ=909.72;QD=13.78;SB=-324.82	GT:AD:DP:GL:GQ	0/1:37,29:65:-113.86,-19.61,-110.36:99
-chr1	4529046	rs241277	A	C	117.60	PASS	AC=2;AF=1.00;AN=2;DB;DP=73;Dels=0.00;HRun=1;HaplotypeScore=2.18;MQ=60.00;MQ0=0;OQ=2433.72;QD=33.34;SB=-1159.13	GT:AD:DP:GL:GQ	1/1:0,73:69:-246.98,-20.78,-0.02:99
-chr1	4529268	rs241278	T	C	273.02	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=0.43;MQ=59.61;MQ0=0;OQ=2074.79;QD=35.17;SB=-848.12	GT:AD:DP:GL:GQ	1/1:0,59:58:-211.08,-17.47,-0.02:99
-chr1	4530244	rs7531281	A	C	607.97	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2071.97;QD=33.42;SB=-943.11	GT:AD:DP:GL:GQ	1/1:0,62:60:-210.80,-18.07,-0.02:99
-chr1	4530343	rs7526879	C	T	127.03	PASS	AC=2;AF=1.00;AN=2;DB;DP=72;Dels=0.00;HRun=2;HaplotypeScore=0.89;MQ=59.29;MQ0=0;OQ=2841.32;QD=39.46;SB=-1410.68	GT:AD:DP:GL:GQ	1/1:0,72:71:-287.74,-21.39,-0.02:99
-chr1	4531126	rs241212	G	T	328.23	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=1;HaplotypeScore=0.58;MQ=59.37;MQ0=0;OQ=847.33;QD=14.36;SB=-341.38	GT:AD:DP:GL:GQ	0/1:30,29:58:-105.49,-17.47,-104.18:99
-chr1	4531264	rs55850443	C	A	105.26	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=1;HaplotypeScore=3.29;MQ=59.66;MQ0=0;OQ=907.20;QD=13.54;SB=-364.99	GT:AD:DP:GL:GQ	0/1:34,33:65:-113.58,-19.58,-115.11:99
-chr1	4532420	rs980092	A	G	568.56	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.63;MQ0=0;OQ=2136.98;QD=31.43;SB=-1016.73	GT:AD:DP:GL:GQ	1/1:0,68:67:-217.34,-20.21,-0.06:99
-chr1	4532678	rs34339970	T	C	238.67	PASS	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=1.12;MQ=59.68;MQ0=0;OQ=686.96;QD=9.41;SB=-234.24	GT:AD:DP:GL:GQ	0/1:42,31:70:-93.08,-21.10,-159.73:99
-chr1	4532688	rs171317	C	A	295.77	PASS	AC=2;AF=1.00;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=59.69;MQ0=0;OQ=2546.98;QD=34.42;SB=-1274.23	GT:AD:DP:GL:GQ	1/1:0,74:71:-258.31,-21.38,-0.02:99
-chr1	4532830	rs35748829	C	T	224.19	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=59.37;MQ0=0;OQ=1280.71;QD=19.40;SB=-516.15	GT:AD:DP:GL:GQ	0/1:29,37:64:-150.64,-19.29,-86.56:99
-chr1	4532839	rs35106071	C	T	30.34	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=3;HaplotypeScore=0.47;MQ=59.31;MQ0=0;OQ=1092.68;QD=17.91;SB=-426.77	GT:AD:DP:GL:GQ	0/1:29,32:61:-130.92,-18.37,-105.58:99
-chr1	4533414	rs6673089	G	A	59.57	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=5.78;MQ=59.66;MQ0=0;OQ=1175.25;QD=17.54;SB=-391.70	GT:AD:DP:GL:GQ	0/1:31,35:66:-140.69,-19.88,-114.80:99
-chr1	4533499	rs6426421	C	T	279.59	PASS	AC=2;AF=1.00;AN=2;DB;DP=79;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=56.21;MQ0=0;OQ=3052.51;QD=38.64;SB=-1294.73	GT:AD:DP:GL:GQ	1/1:0,79:78:-308.86,-23.50,-0.03:99
-chr1	4533545	rs7527742	G	A	582.48	PASS	AC=1;AF=0.50;AN=2;DB;DP=82;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=56.29;MQ0=0;OQ=1245.18;QD=15.19;SB=-388.08	GT:AD:DP:GL:GQ	0/1:45,37:81:-152.20,-24.40,-157.64:99
-chr1	4533745	rs241208	T	C	151.85	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=58.23;MQ0=0;OQ=641.89;QD=11.07;SB=-289.57	GT:AD:DP:GL:GQ	0/1:35,23:57:-84.64,-17.17,-139.99:99
-chr1	4533782	rs17344823	A	T	343.49	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=50.31;MQ0=0;OQ=1106.34;QD=17.56;SB=-567.72	GT:AD:DP:GL:GQ	0/1:26,37:60:-131.99,-18.07,-92.40:99
-chr1	4533944	rs241207	T	G	366.15	PASS	AC=2;AF=1.00;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=53.27;MQ0=0;OQ=1080.62;QD=29.21;SB=-322.00	GT:AD:DP:GL:GQ	1/1:0,37:32:-111.66,-9.64,-0.02:96.25
-chr1	4534250	rs11584033	T	C	380.79	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=1;HaplotypeScore=1.00;MQ=58.88;MQ0=0;OQ=947.57;QD=16.34;SB=-494.15	GT:AD:DP:GL:GQ	0/1:26,32:58:-115.51,-17.47,-106.56:99
-chr1	4534838	rs1541318	A	G	459.08	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=60.00;MQ0=0;OQ=1096.76;QD=16.87;SB=-540.58	GT:AD:DP:GL:GQ	0/1:28,37:65:-132.54,-19.58,-112.37:99
-chr1	4535109	rs2411777	C	T	151.18	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=2.47;MQ=59.69;MQ0=0;OQ=1491.80;QD=20.16;SB=-710.25	GT:AD:DP:GL:GQ	0/1:30,44:73:-174.45,-21.99,-106.04:99
-chr1	4536054	rs10799246	T	A	279.36	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.83;MQ=56.28;MQ0=1;OQ=1123.37;QD=19.37;SB=-579.73	GT:AD:DP:GL:GQ	0/1:23,35:56:-132.49,-16.87,-78.58:99
-chr1	4536627	rs1157688	T	C	729.05	PASS	AC=2;AF=1.00;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2286.18;QD=34.64;SB=-1059.42	GT:AD:DP:GL:GQ	1/1:1,65:64:-232.22,-19.28,-0.02:99
-chr1	4537253	rs12746043	A	G	196.32	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=1.75;MQ=59.75;MQ0=0;OQ=742.34;QD=10.03;SB=-306.91	GT:AD:DP:GL:GQ	0/1:43,31:74:-99.82,-22.30,-175.74:99
-chr1	4537334	rs12073968	A	T	357.38	PASS	AC=1;AF=0.50;AN=2;DB;DP=81;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=60.00;MQ0=0;OQ=1269.08;QD=15.67;SB=-567.67	GT:AD:DP:GL:GQ	0/1:40,41:80:-154.29,-24.09,-150.38:99
-chr1	4537921	rs12724503	G	A	310.14	PASS	AC=1;AF=0.50;AN=2;DB;DP=101;Dels=0.00;HRun=0;HaplotypeScore=1.26;MQ=60.00;MQ0=0;OQ=1523.81;QD=15.09;SB=-617.07	GT:AD:DP:GL:GQ	0/1:55,46:100:-185.79,-30.12,-188.53:99
-chr1	4538097	rs4654561	G	A	508.13	PASS	AC=2;AF=1.00;AN=2;DB;DP=94;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.71;MQ0=0;OQ=3756.30;QD=39.96;SB=-1777.79	GT:AD:DP:GL:GQ	1/1:0,92:93:-374.63,-34.91,-7.66:99
-chr1	4538181	rs4654562	G	A	215.56	PASS	AC=1;AF=0.50;AN=2;DB;DP=83;Dels=0.00;HRun=0;HaplotypeScore=2.80;MQ=59.13;MQ0=0;OQ=1260.80;QD=15.19;SB=-602.60	GT:AD:DP:GL:GQ	0/1:45,38:82:-154.08,-24.71,-143.05:99
-chr1	4538603	rs4654563	G	A	371.27	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=60.00;MQ0=0;OQ=1202.15;QD=16.03;SB=-528.76	GT:AD:DP:GL:GQ	0/1:39,36:74:-145.80,-22.30,-125.85:99
-chr1	4538973	rs7543382	T	C	333.40	PASS	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=1.09;MQ=59.17;MQ0=0;OQ=1070.40;QD=14.66;SB=-356.54	GT:AD:DP:GL:GQ	0/1:37,36:73:-132.31,-21.99,-147.75:99
-chr1	4539030	rs7540656	A	G	325.75	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=0.83;MQ=59.39;MQ0=0;OQ=796.84;QD=11.72;SB=-299.04	GT:AD:DP:GL:GQ	0/1:36,32:68:-103.46,-20.49,-144.09:99
-chr1	4540675	rs1963269	C	G	227.56	PASS	AC=1;AF=0.50;AN=2;DB;DP=102;Dels=0.00;HRun=0;HaplotypeScore=1.16;MQ=59.54;MQ0=0;OQ=1695.02;QD=16.62;SB=-763.36	GT:AD:DP:GL:GQ	0/1:55,47:97:-202.01,-29.22,-223.35:99
-chr1	4540762	rs1024139	T	C	542	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.15;MQ0=0;OQ=842.09;QD=11.70;SB=-437.91	GT:AD:DP:GL:GQ	0/1:42,30:72:-109.18,-21.69,-170.21:99
-chr1	4541602	rs241225	G	A	260.13	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=2.46;MQ=59.63;MQ0=0;OQ=2333.57;QD=37.04;SB=-1016.38	GT:AD:DP:GL:GQ	1/1:0,63:59:-236.96,-17.77,-0.01:99
-chr1	4541659	rs241224	G	T	284.32	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=59.28;MQ0=0;OQ=2085.58;QD=35.96;SB=-859.24	GT:AD:DP:GL:GQ	1/1:0,58:57:-212.16,-17.17,-0.02:99
-chr1	4541986	rs61765446	G	A	358.57	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=0.58;MQ=60.00;MQ0=0;OQ=942.30;QD=14.28;SB=-483.10	GT:AD:DP:GL:GQ	0/1:37,29:65:-117.11,-19.59,-114.27:99
-chr1	4542017	rs241223	C	T	513.72	PASS	AC=2;AF=1.00;AN=2;DB;DP=71;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2827.32;QD=39.82;SB=-1402.70	GT:AD:DP:GL:GQ	1/1:0,71:71:-286.34,-21.39,-0.02:99
-chr1	4542337	rs184781	C	T	269.78	PASS	AC=2;AF=1.00;AN=2;DB;DP=67;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=58.81;MQ0=0;OQ=2680.27;QD=40.00;SB=-1072.41	GT:AD:DP:GL:GQ	1/1:0,67:66:-271.63,-19.88,-0.01:99
-chr1	4542995	.	A	T	0.76	PASS	AC=1;AF=0.50;AN=2;DP=60;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=53.06;MQ0=0;OQ=196.97;QD=3.28;SB=-90.71	GT:AD:DP:GL:GQ	0/1:48,11:53:-38.95,-15.97,-156.27:99
-chr1	4543292	rs2078573	A	C	86.48	PASS	AC=1;AF=0.50;AN=2;DB;DP=80;Dels=0.00;HRun=0;HaplotypeScore=6.05;MQ=56.75;MQ0=0;OQ=1341.41;QD=16.77;SB=-537.82	GT:AD:DP:GL:GQ	0/1:31,48:77:-160.62,-23.19,-115.03:99
-chr1	4543548	rs515279	T	C	17.62	PASS	AC=2;AF=1.00;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=2.93;MQ=59.29;MQ0=0;OQ=1923.64;QD=29.59;SB=-45.69	GT:AD:DP:GL:GQ	1/1:0,65:64:-196.03,-19.32,-0.08:99
-chr1	4543717	rs587108	T	G	137.04	PASS	AC=2;AF=1.00;AN=2;DB;DP=21;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.89;MQ0=0;OQ=716.08;QD=34.10;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,21:21:-75.20,-6.33,-0.01:63.19
-chr1	4543945	rs588347	C	T	45.56	PASS	AC=1;AF=0.50;AN=2;DB;DP=24;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=256.94;QD=10.71;SB=-10.00	GT:AD:DP:GL:GQ	0/1:15,9:24:-36.21,-7.23,-52.03:99
-chr1	4544067	rs588861	G	A	43.71	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=1.89;MQ=54.12;MQ0=0;OQ=1783.57;QD=37.95;SB=-560.73	GT:AD:DP:GL:GQ	1/1:0,47:45:-181.96,-13.56,-0.01:99
-chr1	4544173	rs488684	T	A	310.68	PASS	AC=2;AF=1.00;AN=2;DB;DP=72;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=57.99;MQ0=0;OQ=2644.21;QD=36.73;SB=-1277.61	GT:AD:DP:GL:GQ	1/1:0,72:70:-268.02,-21.08,-0.01:99
-chr1	4545564	rs616180	T	G	115.98	PASS	AC=2;AF=1.00;AN=2;DB;DP=70;Dels=0.00;HRun=1;HaplotypeScore=0.33;MQ=58.74;MQ0=0;OQ=2469.47;QD=35.28;SB=-1055.12	GT:AD:DP:GL:GQ	1/1:0,70:69:-250.55,-20.78,-0.02:99
-chr1	4545738	rs617046	T	C	49.62	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=0.98;MQ=60.00;MQ0=0;OQ=1303.79;QD=31.80;SB=-288.55	GT:AD:DP:GL:GQ	1/1:0,41:40:-133.99,-12.05,-0.02:99
-chr1	4545788	rs57374319	C	T	229.72	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.48;MQ0=0;OQ=594.52;QD=13.51;SB=-275.28	GT:AD:DP:GL:GQ	0/1:24,20:43:-75.69,-12.95,-87.49:99
-chr1	4545807	rs563158	G	C	408.48	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.65;MQ0=0;OQ=2250.93;QD=42.47;SB=-845.32	GT:AD:DP:GL:GQ	1/1:0,53:52:-228.70,-15.67,-0.02:99
-chr1	4545915	rs617610	A	G	103.88	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=1.73;MQ=58.73;MQ0=0;OQ=1514.17;QD=27.53;SB=-766.72	GT:AD:DP:GL:GQ	1/1:0,55:49:-155.05,-14.78,-0.05:99
-chr1	4545933	rs561468	C	A	155.56	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.22;MQ0=0;OQ=1902.16;QD=32.24;SB=-898.65	GT:AD:DP:GL:GQ	1/1:0,59:54:-193.82,-16.27,-0.02:99
-chr1	4546125	rs538655	G	A	601.67	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.21;MQ0=0;OQ=2022.14;QD=38.15;SB=-935.74	GT:AD:DP:GL:GQ	1/1:0,53:52:-205.82,-15.67,-0.02:99
-chr1	4546239	rs619364	G	A	445.90	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=837.24;QD=13.95;SB=-392.12	GT:AD:DP:GL:GQ	0/1:34,26:60:-105.08,-18.07,-121.77:99
-chr1	4546345	rs536749	A	G	482	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.69;MQ0=0;OQ=1853.11;QD=30.38;SB=-858.57	GT:AD:DP:GL:GQ	1/1:0,61:58:-188.95,-17.49,-0.05:99
-chr1	4546432	rs4654446	C	T	238.01	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=2.88;MQ=59.28;MQ0=0;OQ=947.38;QD=16.33;SB=-474.49	GT:AD:DP:GL:GQ	0/1:28,30:56:-114.89,-16.87,-97.02:99
-chr1	4546657	rs562787	A	G	229.14	PASS	AC=2;AF=1.00;AN=2;DB;DP=56;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=58.76;MQ0=0;OQ=1701.20;QD=30.38;SB=-810.66	GT:AD:DP:GL:GQ	1/1:0,56:54:-173.76,-16.29,-0.05:99
-chr1	4546823	rs532259	C	T	169.24	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=1;HaplotypeScore=0.99;MQ=59.40;MQ0=0;OQ=2521.38;QD=40.67;SB=-1140.51	GT:AD:DP:GL:GQ	1/1:0,62:62:-255.74,-18.67,-0.01:99
-chr1	4547018	rs559200	G	C	1813.47	Indel	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.18;MQ0=0;QD=40.30;SB=-734.75	GT:AD:DP:GL:GQ	1/1:0,44:43:-184.95,-12.96,-0.01:99
-chr1	4547035	rs6691728	C	T	1783.47	Indel	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=57.64;MQ0=0;QD=39.63;SB=-856.02	GT:AD:DP:GL:GQ	1/1:0,45:45:-181.94,-13.55,-0.01:99
-chr1	4547069	rs558411	G	C	0.77	PASS	AC=2;AF=1.00;AN=2;DB;DP=39;Dels=0.00;HRun=4;HaplotypeScore=0.63;MQ=58.20;MQ0=0;OQ=1617.71;QD=41.48;SB=-687.82	GT:AD:DP:GL:GQ	1/1:0,39:38:-165.37,-11.45,-0.01:99
-chr1	4547307	rs634075	C	T	118.64	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=2.75;MQ=59.44;MQ0=0;OQ=1786.25;QD=34.35;SB=-705.43	GT:AD:DP:GL:GQ	1/1:0,51:47:-182.23,-14.17,-0.02:99
-chr1	4547329	rs644647	C	A	608.94	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.55;MQ0=0;OQ=1779.42;QD=34.89;SB=-902.65	GT:AD:DP:GL:GQ	1/1:0,51:50:-181.54,-15.06,-0.02:99
-chr1	4547506	rs2674014	C	T	604.69	PASS	AC=2;AF=1.00;AN=2;DB;DP=78;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.76;MQ0=0;OQ=3048.33;QD=39.08;SB=-1465.48	GT:AD:DP:GL:GQ	1/1:0,78:77:-308.44,-23.20,-0.02:99
-chr1	4548034	rs669252	A	G	36.37	PASS	AC=2;AF=1.00;AN=2;DB;DP=84;Dels=0.00;HRun=2;HaplotypeScore=0.97;MQ=59.78;MQ0=0;OQ=2568.64;QD=30.58;SB=-1254.84	GT:AD:DP:GL:GQ	1/1:0,84:80:-260.52,-24.13,-0.08:99
-chr1	4548229	rs527146	C	T	195.56	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=58.54;MQ0=0;OQ=2361.57;QD=37.49;SB=-975.04	GT:AD:DP:GL:GQ	1/1:2,61:63:-246.39,-18.98,-6.65:99
-chr1	4548230	rs553803	A	G	202.91	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=58.54;MQ0=0;OQ=2093.62;QD=33.23;SB=-906.61	GT:AD:DP:GL:GQ	1/1:2,61:63:-221.00,-18.97,-8.05:99
-chr1	4548433	rs504274	C	T	6.37	PASS	AC=2;AF=1.00;AN=2;DB;DP=85;Dels=0.00;HRun=4;HaplotypeScore=2.30;MQ=59.56;MQ0=0;OQ=3385.81;QD=39.83;SB=-1431.01	GT:AD:DP:GL:GQ	1/1:0,85:84:-337.58,-25.30,-0.02:99
-chr1	4548537	rs916404	A	G	176.85	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=2.01;MQ=59.60;MQ0=0;OQ=1563.60;QD=27.43;SB=-730.94	GT:AD:DP:GL:GQ	1/1:0,57:51:-160.00,-15.38,-0.05:99
-chr1	4548552	rs1811133	G	A	623.08	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.56;MQ0=0;OQ=2054.70;QD=38.77;SB=-776.53	GT:AD:DP:GL:GQ	1/1:0,53:52:-209.07,-15.66,-0.01:99
-chr1	4548640	rs10915566	C	T	338.58	PASS	AC=1;AF=0.50;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=2.69;MQ=59.67;MQ0=0;OQ=1058.12;QD=15.12;SB=-552.39	GT:AD:DP:GL:GQ	0/1:37,33:67:-129.29,-20.20,-113.66:99
-chr1	4548685	rs2176113	C	T	467.66	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1206.49;QD=16.76;SB=-424.43	GT:AD:DP:GL:GQ	0/1:37,35:72:-145.62,-21.68,-138.53:99
-chr1	4548689	rs549918	C	T	547.08	PASS	AC=2;AF=1.00;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2745.70;QD=39.22;SB=-872.18	GT:AD:DP:GL:GQ	1/1:0,70:69:-278.17,-20.79,-0.02:99
-chr1	4548722	rs549150	C	T	597.32	PASS	AC=2;AF=1.00;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.70;MQ0=0;OQ=3119.07;QD=40.51;SB=-1266.19	GT:AD:DP:GL:GQ	1/1:0,77:77:-315.51,-23.19,-0.01:99
-chr1	4548785	rs548958	A	C	587.96	PASS	AC=2;AF=1.00;AN=2;DB;DP=97;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.52;MQ0=0;OQ=3225.28;QD=33.25;SB=-1553.11	GT:AD:DP:GL:GQ	1/1:0,97:93:-326.16,-28.01,-0.03:99
-chr1	4548901	rs683704	G	A	493.67	PASS	AC=2;AF=1.00;AN=2;DB;DP=60;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2363.22;QD=39.39;SB=-1015.37	GT:AD:DP:GL:GQ	1/1:0,60:60:-239.92,-18.08,-0.02:99
-chr1	4549335	rs572875	G	A	610.19	PASS	AC=2;AF=1.00;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.57;MQ0=0;OQ=2583.49;QD=39.75;SB=-1223.62	GT:AD:DP:GL:GQ	1/1:0,65:64:-261.95,-19.28,-0.01:99
-chr1	4549598	rs520532	C	T	634.82	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.56;MQ0=1;OQ=2560.49;QD=37.65;SB=-1198.62	GT:AD:DP:GL:GQ	1/1:0,68:66:-259.66,-19.89,-0.02:99
-chr1	4550061	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=96;Dels=0.00;HRun=20;HaplotypeScore=23.52;MQ=43.78;MQ0=0;OQ=658.49;QD=6.86;SB=83.26	GT:AD:DP:GL:GQ	0/1:53,43:71:-90.53,-21.40,-163.68:99
-chr1	4550163	rs189538	T	C	1.23	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=2;HaplotypeScore=4.99;MQ=53.64;MQ0=0;OQ=1059.98;QD=26.50;SB=-540.85	GT:AD:DP:GL:GQ	1/1:0,40:35:-109.62,-10.56,-0.04:99
-chr1	4550501	rs10915567	A	T	204.42	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=1.31;MQ=58.86;MQ0=0;OQ=971.67;QD=17.35;SB=-337.66	GT:AD:DP:GL:GQ	0/1:25,31:54:-116.71,-16.26,-86.04:99
-chr1	4550640	rs241213	G	A	356.42	PASS	AC=2;AF=1.00;AN=2;DB;DP=71;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=59.41;MQ0=0;OQ=2857.67;QD=40.25;SB=-1367.83	GT:AD:DP:GL:GQ	1/1:0,71:71:-289.37,-21.39,-0.02:99
-chr1	4550851	rs164775	A	G	34.10	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=1;HaplotypeScore=5.34;MQ=59.24;MQ0=0;OQ=775.11;QD=14.09;SB=-373.36	GT:AD:DP:GL:GQ	0/1:28,27:55:-97.36,-16.57,-110.68:99
-chr1	4551064	rs12079284	G	A	324.95	PASS	AC=1;AF=0.50;AN=2;DB;DP=83;Dels=0.00;HRun=0;HaplotypeScore=2.40;MQ=59.55;MQ0=0;OQ=1490.67;QD=17.96;SB=-575.98	GT:AD:DP:GL:GQ	0/1:39,44:83:-177.35,-25.00,-139.24:99
-chr1	4551090	rs164774	A	C	75.23	PASS	AC=2;AF=1.00;AN=2;DB;DP=70;Dels=0.00;HRun=3;HaplotypeScore=0.79;MQ=59.47;MQ0=0;OQ=2365.79;QD=33.80;SB=-1092.51	GT:AD:DP:GL:GQ	1/1:0,70:67:-240.18,-20.18,-0.02:99
-chr1	4551865	rs10489134	G	C	328.76	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=1.70;MQ=59.44;MQ0=0;OQ=1198.12;QD=16.19;SB=-348.77	GT:AD:DP:GL:GQ	0/1:36,38:72:-144.81,-21.71,-156.52:99
-chr1	4552887	rs7554766	G	A	776.54	Indel	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.13;MQ0=0;QD=12.13;SB=-327.33	GT:AD:DP:GL:GQ	0/1:39,25:57:-98.11,-17.17,-116.23:99
-chr1	4552953	rs7518655	C	T	177.07	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=1;HaplotypeScore=2.86;MQ=58.99;MQ0=0;OQ=677.30;QD=14.72;SB=-320.35	GT:AD:DP:GL:GQ	0/1:23,23:43:-83.97,-12.96,-72.15:99
-chr1	4553124	rs7518781	C	A	341.53	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=2.10;MQ=59.31;MQ0=0;OQ=849.36;QD=13.92;SB=-331.16	GT:AD:DP:GL:GQ	0/1:30,31:56:-105.09,-16.87,-90.31:99
-chr1	4553830	rs164770	A	G	0.31	PASS	AC=2;AF=1.00;AN=2;DB;DP=60;Dels=0.00;HRun=3;HaplotypeScore=7.02;MQ=59.30;MQ0=0;OQ=1972.78;QD=32.88;SB=-746.94	GT:AD:DP:GL:GQ	1/1:2,57:55:-200.88,-16.57,-0.02:99
-chr1	4554084	rs61767667	T	A	362.66	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=502.84;QD=10.48;SB=-173.16	GT:AD:DP:GL:GQ	0/1:30,18:48:-68.02,-14.46,-113.49:99
-chr1	4554189	rs61767668	G	A	492.83	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.66;MQ0=0;OQ=958.92;QD=14.31;SB=-387.15	GT:AD:DP:GL:GQ	0/1:38,29:66:-119.06,-19.89,-123.05:99
-chr1	4555833	rs540572	C	A	391.14	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.62;MQ0=0;OQ=602.48;QD=12.30;SB=-99.63	GT:AD:DP:GL:GQ	0/1:24,25:46:-77.39,-13.85,-83.99:99
-chr1	4556007	rs6426423	C	A	388.51	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=1.53;MQ=59.29;MQ0=0;OQ=809.24;QD=15.27;SB=-378.16	GT:AD:DP:GL:GQ	0/1:24,29:51:-99.57,-15.36,-78.05:99
-chr1	4556396	rs531363	C	T	270.22	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=785.64;QD=14.03;SB=-358.40	GT:AD:DP:GL:GQ	0/1:30,26:54:-98.13,-16.29,-91.52:99
-chr1	4556558	rs129794	G	A	506.73	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=510.17;QD=11.09;SB=-262.22	GT:AD:DP:GL:GQ	0/1:29,17:46:-68.16,-13.86,-103.52:99
-chr1	4556721	rs10799248	G	A	151.65	PASS	AC=1;AF=0.50;AN=2;DB;DP=32;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=60.00;MQ0=0;OQ=483.34;QD=15.10;SB=-178.66	GT:AD:DP:GL:GQ	0/1:17,15:30:-60.66,-9.04,-48.95:99
-chr1	4556909	rs526695	T	C	306.82	PASS	AC=2;AF=1.00;AN=2;DB;DP=82;Dels=0.00;HRun=0;HaplotypeScore=1.23;MQ=58.98;MQ0=0;OQ=2857.53;QD=34.85;SB=-1208.70	GT:AD:DP:GL:GQ	1/1:0,82:80:-289.36,-24.10,-0.02:99
-chr1	4556982	rs516947	G	A	448.32	PASS	AC=2;AF=1.00;AN=2;DB;DP=69;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.06;MQ0=0;OQ=2681.00;QD=38.86;SB=-634.83	GT:AD:DP:GL:GQ	1/1:0,69:67:-271.71,-20.19,-0.02:99
-chr1	4556992	rs516977	A	G	448.48	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.27;MQ0=0;OQ=1828.72;QD=29.03;SB=-545.85	GT:AD:DP:GL:GQ	1/1:0,63:60:-186.53,-18.11,-0.07:99
-chr1	4557030	rs517092	A	C	349.51	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.22;MQ0=0;OQ=1428.85;QD=26.46;SB=-498.86	GT:AD:DP:GL:GQ	1/1:0,54:46:-146.51,-13.87,-0.04:99
-chr1	4557056	rs524982	C	T	158.92	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=1.10;MQ=59.64;MQ0=0;OQ=2000.95;QD=38.48;SB=-916.28	GT:AD:DP:GL:GQ	1/1:0,52:51:-203.70,-15.37,-0.02:99
-chr1	4557155	rs651695	A	T	85.58	PASS	AC=1;AF=0.50;AN=2;DB;DP=79;Dels=0.00;HRun=3;HaplotypeScore=2.39;MQ=59.42;MQ0=0;OQ=1262.50;QD=15.98;SB=-615.05	GT:AD:DP:GL:GQ	0/1:40,39:78:-153.02,-23.49,-149.00:99
-chr1	4557694	rs653988	C	T	110.63	PASS	AC=2;AF=1.00;AN=2;DB;DP=70;Dels=0.00;HRun=1;HaplotypeScore=0.79;MQ=59.82;MQ0=0;OQ=2793.65;QD=39.91;SB=-1109.49	GT:AD:DP:GL:GQ	1/1:0,70:70:-282.97,-21.09,-0.02:99
-chr1	4558171	rs549239	T	C	727.04	PASS	AC=2;AF=1.00;AN=2;DB;DP=84;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=56.17;MQ0=0;OQ=2944.97;QD=35.06;SB=-1221.82	GT:AD:DP:GL:GQ	1/1:0,84:83:-298.11,-25.00,-0.03:99
-chr1	4558199	rs12726702	T	A	2233	SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=84;Dels=0.00;HRun=6;HaplotypeScore=61.64;MQ=53.38;MQ0=0;QD=26.58;SB=-718.98	GT:AD:DP:GL:GQ	0/1:14,70:81:-250.99,-24.40,-50.82:99
-chr1	4558206	rs549087	T	A	2870.37	Indel;SnpCluster	AC=2;AF=1.00;AN=2;DB;DP=80;Dels=0.01;HRun=6;HaplotypeScore=46.58;MQ=52.93;MQ0=0;QD=35.88;SB=-1138.04	GT:AD:DP:GL:GQ	1/1:0,79:79:-290.65,-23.50,-0.03:99
-chr1	4558209	rs28687799	A	T	819.27	Indel;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=79;Dels=0.00;HRun=4;HaplotypeScore=29.81;MQ=52.84;MQ0=0;QD=10.37;SB=-175.59	GT:AD:DP:GL:GQ	0/1:49,30:77:-108.41,-23.20,-171.08:99
-chr1	4558214	rs59930628	A	T	84.16	DPFilter;Indel;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=77;Dels=0.03;HRun=4;HaplotypeScore=38.67;MQ=53.63;MQ0=0;QD=1.09;SB=56.66	GT:AD:DP:GL:GQ	0/1:66,9:73:-33.09,-21.39,-235.05:99
-chr1	4558250	rs666799	A	C	496.03	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=54.14;MQ0=0;OQ=2047.56;QD=34.70;SB=-847.08	GT:AD:DP:GL:GQ	1/1:0,59:58:-208.36,-17.47,-0.02:99
-chr1	4558398	rs12567277	C	T	337.11	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.98;MQ=59.53;MQ0=0;OQ=912.06;QD=18.61;SB=-436.84	GT:AD:DP:GL:GQ	0/1:22,27:48:-108.95,-14.46,-68.62:99
-chr1	4558676	rs553691	C	T	200.13	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=1.13;MQ=59.21;MQ0=0;OQ=1974.68;QD=37.26;SB=-1009.66	GT:AD:DP:GL:GQ	1/1:0,53:52:-201.08,-15.67,-0.02:99
-chr1	4560412	rs589176	A	G	118.19	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=1;HaplotypeScore=2.29;MQ=58.87;MQ0=0;OQ=545.72;QD=13.31;SB=-145.53	GT:AD:DP:GL:GQ	0/1:20,21:40:-69.91,-12.06,-74.33:99
-chr1	4561004	rs602244	T	C	195.92	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=1;HaplotypeScore=2.83;MQ=59.64;MQ0=0;OQ=1077.64;QD=16.84;SB=-452.16	GT:AD:DP:GL:GQ	0/1:26,38:63:-130.03,-18.98,-104.11:99
-chr1	4561499	rs604465	G	A	250.02	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=1.10;MQ=59.13;MQ0=0;OQ=735.55;QD=15.32;SB=-280.30	GT:AD:DP:GL:GQ	0/1:25,23:45:-90.40,-13.56,-80.37:99
-chr1	4561737	rs563481	C	T	22.90	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=3;HaplotypeScore=0.93;MQ=60.00;MQ0=0;OQ=747.56;QD=17.80;SB=-287.30	GT:AD:DP:GL:GQ	0/1:20,22:42:-90.69,-12.65,-73.13:99
-chr1	4562268	rs537761	C	A	317.78	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=1;HaplotypeScore=1.00;MQ=60.00;MQ0=0;OQ=820.87;QD=16.75;SB=-394.13	GT:AD:DP:GL:GQ	0/1:21,28:48:-99.83,-14.46,-74.67:99
-chr1	4562392	rs618751	G	A	349.01	PASS	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=2.29;MQ=60.00;MQ0=0;OQ=1032.44;QD=14.14;SB=-366.34	GT:AD:DP:GL:GQ	0/1:41,32:73:-128.52,-21.99,-148.49:99
-chr1	4562641	rs534159	C	T	355.83	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=60.00;MQ0=0;OQ=808.69;QD=13.71;SB=-376.39	GT:AD:DP:GL:GQ	0/1:33,26:58:-101.65,-17.50,-100.37:99
-chr1	4565129	rs241243	A	G	370.62	PASS	AC=1;AF=0.50;AN=2;DB;DP=86;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.73;MQ0=0;OQ=694.01;QD=8.07;SB=-138.39	GT:AD:DP:GL:GQ	0/1:53,33:82:-97.39,-24.71,-212.58:99
-chr1	4565904	rs10915569	C	A	242.27	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=0.58;MQ=59.39;MQ0=0;OQ=1490.43;QD=19.61;SB=-754.94	GT:AD:DP:GL:GQ	0/1:27,49:74:-174.61,-22.29,-94.95:99
-chr1	4566354	rs164780	C	G	240.11	PASS	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=2.79;MQ=59.64;MQ0=0;OQ=2456.30;QD=38.38;SB=-1204.26	GT:AD:DP:GL:GQ	1/1:0,64:63:-249.27,-19.01,-0.05:99
-chr1	4566679	rs151716	A	G	365.52	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=1.65;MQ=59.43;MQ0=0;OQ=771.72;QD=11.87;SB=-373.98	GT:AD:DP:GL:GQ	0/1:33,32:64:-99.75,-19.29,-131.65:99
-chr1	4567238	rs4654450	G	A	244.97	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=1;HaplotypeScore=1.78;MQ=59.42;MQ0=0;OQ=1219.09;QD=16.93;SB=-598.62	GT:AD:DP:GL:GQ	0/1:35,37:71:-146.59,-21.39,-121.89:99
-chr1	4567954	rs151715	A	G	136	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=59.44;MQ0=0;OQ=821.52;QD=10.95;SB=-417.84	GT:AD:DP:GL:GQ	0/1:41,34:74:-107.74,-22.30,-168.10:99
-chr1	4568017	rs241242	G	T	115.78	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=2.56;MQ=60.00;MQ0=0;OQ=1682.11;QD=33.64;SB=-638.02	GT:AD:DP:GL:GQ	1/1:0,49:48:-171.82,-14.46,-0.02:99
-chr1	4568283	rs11590266	A	G	358.35	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=1.33;MQ=59.56;MQ0=0;OQ=565.36;QD=10.87;SB=-241.59	GT:AD:DP:GL:GQ	0/1:27,24:51:-77.60,-17.78,-112.88:99
-chr1	4571271	rs164779	C	G	314.41	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=0;HaplotypeScore=2.18;MQ=59.44;MQ0=0;OQ=1283.51;QD=17.11;SB=-664.28	GT:AD:DP:GL:GQ	0/1:38,37:72:-153.33,-21.69,-161.13:99
-chr1	4571572	.	C	T	90.66	PASS	AC=1;AF=0.50;AN=2;DP=52;Dels=0.00;HRun=0;HaplotypeScore=1.84;MQ=59.56;MQ0=0;OQ=626.01;QD=12.04;SB=-331.33	GT:AD:DP:GL:GQ	0/1:32,20:47:-80.06,-14.17,-86.19:99
-chr1	4572354	rs164778	T	C	225.65	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1559.84;QD=35.45;SB=-660.32	GT:AD:DP:GL:GQ	1/1:0,44:44:-159.58,-13.25,-0.01:99
-chr1	4572615	rs6703429	T	C	577.31	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.72;MQ0=0;OQ=862.43;QD=13.07;SB=-402.26	GT:AD:DP:GL:GQ	0/1:35,31:65:-109.11,-19.58,-142.67:99
-chr1	4574299	.	C	A	554.66	Indel	AC=1;AF=0.50;AN=2;DP=53;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=58.59;MQ0=0;QD=10.47;SB=-260.28	GT:AD:DP:GL:GQ	0/1:31,22:48:-73.21,-14.46,-96.27:99
-chr1	4576029	rs164776	C	T	259.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=1;HaplotypeScore=0.32;MQ=59.56;MQ0=0;OQ=893.05;QD=17.17;SB=-421.82	GT:AD:DP:GL:GQ	0/1:24,28:50:-107.66,-15.07,-72.44:99
-chr1	4576797	rs2411886	G	C	186.46	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=1.24;MQ=59.03;MQ0=0;OQ=1978.62;QD=41.22;SB=-1006.27	GT:AD:DP:GL:GQ	1/1:0,47:46:-201.46,-13.86,-0.01:99
-chr1	4576947	rs2411887	C	T	275.87	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.96;MQ=58.35;MQ0=0;OQ=1931.75;QD=37.88;SB=-945.28	GT:AD:DP:GL:GQ	1/1:0,51:50:-196.78,-15.07,-0.02:99
-chr1	4577395	rs4403602	C	G	245.41	PASS	AC=2;AF=1.00;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=1.81;MQ=59.46;MQ0=0;OQ=1536.03;QD=35.72;SB=-775.22	GT:AD:DP:GL:GQ	1/1:0,43:41:-157.23,-12.38,-0.05:99
-chr1	4577589	rs7554628	T	C	1.90	PASS	AC=2;AF=1.00;AN=2;DB;DP=32;Dels=0.00;HRun=1;HaplotypeScore=1.47;MQ=57.95;MQ0=0;OQ=730.12;QD=22.82;SB=-185.76	GT:AD:DP:GL:GQ	1/1:0,31:25:-79.87,-10.17,-3.27:69.05
-chr1	4577983	rs7555011	T	C	161.26	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=1.31;MQ=59.09;MQ0=0;OQ=1457.56;QD=28.58;SB=-435.18	GT:AD:DP:GL:GQ	1/1:0,51:47:-149.39,-14.18,-0.05:99
-chr1	4578231	rs35259920	T	A	832.15	Indel	AC=2;AF=1.00;AN=2;DB;DP=29;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.20;MQ0=0;QD=28.69;SB=-10.00	GT:AD:DP:GL:GQ	1/1:1,28:26:-86.82,-7.84,-0.02:78.19
-chr1	4578361	rs7554792	A	C	303.82	PASS	AC=2;AF=1.00;AN=2;DB;DP=9;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=53.92;MQ0=0;OQ=236.46;QD=26.27;SB=-138.00	GT:AD:DP:GL:GQ	1/1:0,9:8:-27.23,-2.41,-0.00:24.06
-chr1	4578400	.	A	T	84.19	Indel	AC=1;AF=0.50;AN=2;DP=14;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=46.65;MQ0=0;QD=6.01;SB=-42.96	GT:AD:DP:GL:GQ	0/1:10,4:13:-15.62,-3.92,-34.97:99
-chr1	4579811	rs1905304	C	A	19.42	PASS	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.00;HRun=5;HaplotypeScore=0.00;MQ=58.10;MQ0=0;OQ=2321.72;QD=36.28;SB=-1110.43	GT:AD:DP:GL:GQ	1/1:0,64:63:-235.77,-18.97,-0.01:99
-chr1	4580559	rs56945522	G	A	92.56	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=1;HaplotypeScore=0.95;MQ=61.48;MQ0=0;OQ=2293.20;QD=38.87;SB=-907.71	GT:AD:DP:GL:GQ	1/1:0,59:58:-232.92,-17.48,-0.02:99
-chr1	4581964	rs6668002	T	C	241.68	PASS	AC=2;AF=1.00;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=1.81;MQ=60.00;MQ0=0;OQ=2274.26;QD=30.73;SB=-1092.12	GT:AD:DP:GL:GQ	1/1:0,73:71:-231.07,-21.41,-0.06:99
-chr1	4583570	rs1573748	A	G	1957.91	Indel	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=2.66;MQ=60.10;MQ0=0;QD=31.08;SB=-816.28	GT:AD:DP:GL:GQ	1/1:0,63:58:-199.41,-17.48,-0.04:99
-chr1	4584109	rs6657421	G	A	130.49	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=1;HaplotypeScore=0.87;MQ=59.13;MQ0=0;OQ=1834.09;QD=38.21;SB=-703.35	GT:AD:DP:GL:GQ	1/1:0,48:47:-187.01,-14.16,-0.01:99
-chr1	4584165	rs6674936	T	C	66.31	PASS	AC=2;AF=1.00;AN=2;DB;DP=56;Dels=0.00;HRun=2;HaplotypeScore=2.13;MQ=59.25;MQ0=0;OQ=1819.57;QD=32.49;SB=-925.04	GT:AD:DP:GL:GQ	1/1:0,56:51:-185.56,-15.36,-0.01:99
-chr1	4585082	rs1107467	G	A	137.40	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.63;MQ=60.00;MQ0=0;OQ=1423.05;QD=35.58;SB=-452.60	GT:AD:DP:GL:GQ	1/1:0,39:38:-145.91,-11.45,-0.02:99
-chr1	4585332	rs1483199	A	G	386.56	PASS	AC=2;AF=1.00;AN=2;DB;DP=72;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2234.69;QD=31.04;SB=-675.88	GT:AD:DP:GL:GQ	1/1:0,72:67:-227.10,-20.19,-0.04:99
-chr1	4585508	rs875808	G	A	162.26	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=1;HaplotypeScore=1.39;MQ=60.00;MQ0=0;OQ=2216.84;QD=38.89;SB=-1106.64	GT:AD:DP:GL:GQ	1/1:0,57:57:-225.29,-17.17,-0.02:99
-chr1	4585532	rs875807	A	G	300.51	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=1.56;MQ=59.66;MQ0=0;OQ=1870.43;QD=34.01;SB=-960.39	GT:AD:DP:GL:GQ	1/1:0,55:53:-190.65,-15.97,-0.02:99
-chr1	4585731	rs875806	G	C	165.71	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2133.21;QD=42.66;SB=-847.32	GT:AD:DP:GL:GQ	1/1:0,50:49:-216.92,-14.76,-0.01:99
-chr1	4586501	rs56028718	G	A	84.95	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=1;HaplotypeScore=3.12;MQ=59.59;MQ0=0;OQ=1260.05;QD=18.53;SB=-634.67	GT:AD:DP:GL:GQ	0/1:31,37:66:-149.17,-19.88,-106.57:99
-chr1	4587142	rs2269620	C	T	114.33	PASS	AC=2;AF=1.00;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=-0.06;MQ=59.59;MQ0=0;OQ=2196.52;QD=39.22;SB=-630.34	GT:AD:DP:GL:GQ	1/1:0,56:56:-223.26,-16.87,-0.02:99
-chr1	4587674	rs4654576	A	C	214.87	PASS	AC=2;AF=1.00;AN=2;DB;DP=27;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=886.13;QD=32.82;SB=-420.04	GT:AD:DP:GL:GQ	1/1:0,27:26:-92.21,-7.83,-0.01:78.22
-chr1	4587807	.	T	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=61;Dels=0.00;HRun=2;HaplotypeScore=15.00;MQ=58.93;MQ0=0;OQ=113.78;QD=1.87;SB=74.25	GT:AD:DP:GL:GQ	0/1:34,27:42:-27.32,-12.66,-112.79:99
-chr1	4587893	rs6662425	C	G	115.34	PASS	AC=2;AF=1.00;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=3.27;MQ=59.36;MQ0=0;OQ=2651.42;QD=40.79;SB=-1007.19	GT:AD:DP:GL:GQ	1/1:0,65:61:-268.75,-18.38,-0.02:99
-chr1	4588021	rs6426430	G	T	639.03	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1436.10;QD=35.90;SB=-672.10	GT:AD:DP:GL:GQ	1/1:0,40:40:-147.21,-12.05,-0.01:99
-chr1	4590753	rs7527078	C	T	465.85	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.20;MQ0=0;OQ=2043.97;QD=40.08;SB=-576.76	GT:AD:DP:GL:GQ	1/1:0,51:50:-207.99,-15.06,-0.01:99
-chr1	4591042	rs4654577	A	G	251.52	PASS	AC=2;AF=1.00;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=0.83;MQ=58.37;MQ0=0;OQ=1466.76;QD=34.11;SB=-679.59	GT:AD:DP:GL:GQ	1/1:0,43:43:-150.28,-12.96,-0.02:99
-chr1	4592515	.	G	C	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=53;Dels=0.00;HRun=0;HaplotypeScore=3.74;MQ=48.08;MQ0=6;OQ=54.55;QD=1.03;SB=38.38	GT:AD:DP:GL:GQ	0/1:45,8:39:-20.50,-11.76,-139.98:87.39
-chr1	4592571	.	G	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=61;Dels=0.00;HRun=0;HaplotypeScore=14.42;MQ=41.26;MQ0=11;OQ=65.05;QD=1.07;SB=-23.62	GT:AD:DP:GL:GQ	0/1:49,12:36:-20.65,-10.86,-123.87:97.89
-chr1	4592585	.	G	C	20.06	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=61;Dels=0.00;HRun=0;HaplotypeScore=5.14;MQ=40.25;MQ0=10;QD=0.33;SB=-5.33	GT:AD:DP:GL:GQ	0/1:54,7:37:-16.45,-11.17,-134.84:52.86
-chr1	4592620	.	C	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=63;Dels=0.00;HRun=1;HaplotypeScore=15.36;MQ=35.46;MQ0=10;OQ=92.00;QD=1.46;SB=0.26	GT:AD:DP:GL:GQ	0/1:54,9:42:-25.15,-12.66,-150.31:99
-chr1	4592627	.	C	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=56;Dels=0.00;HRun=1;HaplotypeScore=16.06;MQ=35.72;MQ0=7;OQ=153.87;QD=2.75;SB=-54.16	GT:AD:DP:GL:GQ	0/1:46,10:37:-29.82,-11.15,-128.78:99
-chr1	4592634	.	G	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=56;Dels=0.00;HRun=0;HaplotypeScore=17.36;MQ=35.58;MQ0=7;OQ=255.85;QD=4.57;SB=-124.48	GT:AD:DP:GL:GQ	0/1:41,15:33:-38.82,-9.95,-100.95:99
-chr1	4592642	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=53;Dels=0.00;HRun=1;HaplotypeScore=28.60;MQ=35.10;MQ0=5;OQ=106.45;QD=2.01;SB=3.57	GT:AD:DP:GL:GQ	0/1:41,12:38:-25.38,-11.45,-106.45:99
-chr1	4592649	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=52;Dels=0.00;HRun=0;HaplotypeScore=27.47;MQ=35.61;MQ0=5;OQ=241.86;QD=4.65;SB=-127.53	GT:AD:DP:GL:GQ	0/1:36,16:37:-38.62,-11.15,-91.45:99
-chr1	4592656	.	C	A	10.05	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=56;Dels=0.00;HRun=0;HaplotypeScore=32.68;MQ=34.61;MQ0=6;QD=0.18;SB=-22.79	GT:AD:DP:GL:GQ	0/1:46,10:31:-13.58,-9.34,-92.74:42.43
-chr1	4592670	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=60;Dels=0.00;HRun=0;HaplotypeScore=26.44;MQ=31.55;MQ0=8;OQ=92.67;QD=1.54;SB=-36.78	GT:AD:DP:GL:GQ	0/1:47,13:38:-24.00,-11.45,-105.70:99
-chr1	4592691	.	C	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=69;Dels=0.00;HRun=0;HaplotypeScore=17.99;MQ=28.93;MQ0=15;OQ=182.04;QD=2.64;SB=-62.36	GT:AD:DP:GL:GQ	0/1:58,11:38:-32.95,-11.46,-95.16:99
-chr1	4592711	.	C	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=51;Dels=0.00;HRun=1;HaplotypeScore=17.40;MQ=30.26;MQ0=13;OQ=418.56;QD=8.21;SB=-184.24	GT:AD:DP:GL:GQ	0/1:21,29:22:-51.78,-6.64,-35.47:99
-chr1	4592725	rs7533445	C	G	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DB;DP=35;Dels=0.00;HRun=1;HaplotypeScore=21.58;MQ=31.66;MQ0=7;OQ=325.36;QD=9.30;SB=-162.82	GT:AD:DP:GL:GQ	0/1:18,17:13:-39.75,-3.93,-11.50:75.69
-chr1	4592733	.	C	A	17.31	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=31;Dels=0.00;HRun=0;HaplotypeScore=13.87;MQ=30.28;MQ0=8;QD=0.56;SB=5.02	GT:AD:DP:GL:GQ	0/1:27,3:12:-8.63,-3.62,-27.94:50.06
-chr1	4592740	rs7537972	A	C	0.16	PASS	AC=1;AF=0.50;AN=2;DB;DP=31;Dels=0.00;HRun=1;HaplotypeScore=10.05;MQ=27.67;MQ0=11;OQ=104.80;QD=3.38;SB=-67.99	GT:AD:DP:GL:GQ	0/1:22,9:8:-16.18,-2.41,-9.32:69.09
-chr1	4592747	rs7537975	A	C	18.33	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DB;DP=24;Dels=0.00;HRun=1;HaplotypeScore=8.21;MQ=28.35;MQ0=11;QD=0.76;SB=-7.00	GT:AD:DP:GL:GQ	0/1:17,7:4:-6.32,-1.21,-6.24:50.29
-chr1	4592767	rs7533530	C	G	42.27	HARD_TO_VALIDATE;LowQual	AC=2;AF=1.00;AN=2;DB;DP=14;Dels=0.00;HRun=1;HaplotypeScore=11.04;MQ=30.06;MQ0=7;QD=3.02;SB=-43.89	GT:AD:DP:GL:GQ	1/1:8,5:2:-7.64,-0.61,-0.00:6.02
-chr1	4592837	.	C	G	13.29	LowQual	AC=1;AF=0.50;AN=2;DP=5;Dels=0.00;HRun=1;HaplotypeScore=4.96;MQ=12.04;MQ0=3;QD=2.66;SB=-10.00	GT:AD:DP:GL:GQ	0/1:4,1:1:-4.59,-0.30,-0.00:1.76
-chr1	4592901	.	T	C	5.07	PASS	AC=1;AF=0.50;AN=2;DP=20;Dels=0.00;HRun=0;HaplotypeScore=2.05;MQ=42.32;MQ0=2;OQ=126.93;QD=6.35;SB=-77.93	GT:AD:DP:GL:GQ	0/1:9,11:15:-20.50,-4.52,-36.40:99
-chr1	4592906	.	T	C	0.11	PASS	AC=2;AF=1.00;AN=2;DP=23;Dels=0.00;HRun=2;HaplotypeScore=1.00;MQ=41.84;MQ0=3;OQ=578.85;QD=25.17;SB=-157.83	GT:AD:DP:GL:GQ	1/1:0,23:17:-61.47,-5.12,-0.00:51.15
-chr1	4592960	.	G	C	0.12	PASS	AC=1;AF=0.50;AN=2;DP=78;Dels=0.00;HRun=0;HaplotypeScore=4.10;MQ=41.92;MQ0=6;OQ=217.66;QD=2.79;SB=-81.57	GT:AD:DP:GL:GQ	0/1:56,22:47:-39.23,-14.18,-153.65:99
-chr1	4592971	.	T	C	18.17	PASS	AC=1;AF=0.50;AN=2;DP=78;Dels=0.00;HRun=0;HaplotypeScore=3.38;MQ=41.63;MQ0=7;OQ=666.60;QD=8.55;SB=-228.49	GT:AD:DP:GL:GQ	0/1:28,48:45:-83.52,-13.57,-69.37:99
-chr1	4592996	.	A	C	48.48	HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=69;Dels=0.00;HRun=1;HaplotypeScore=4.82;MQ=40.87;MQ0=9;QD=0.70;SB=-26.49	GT:AD:DP:GL:GQ	0/1:54,15:47:-22.29,-14.16,-139.10:81.32
-chr1	4593024	.	C	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=52;Dels=0.00;HRun=0;HaplotypeScore=14.22;MQ=41.13;MQ0=10;OQ=73.34;QD=1.41;SB=-39.79	GT:AD:DP:GL:GQ	0/1:35,17:30:-19.66,-9.04,-83.95:99
-chr1	4593037	.	G	C	11.64	DPFilter;HARD_TO_VALIDATE;LowQual	AC=1;AF=0.50;AN=2;DP=41;Dels=0.02;HRun=0;HaplotypeScore=21.01;MQ=42.10;MQ0=8;QD=0.28;SB=26.12	GT:AD:DP:GL:GQ	0/1:33,7:20:-10.45,-6.03,-72.33:44.16
-chr1	4593066	.	C	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=43;Dels=0.00;HRun=0;HaplotypeScore=16.64;MQ=38.83;MQ0=9;OQ=95.97;QD=2.23;SB=-64.04	GT:AD:DP:GL:GQ	0/1:31,12:22:-19.51,-6.63,-53.44:99
-chr1	4593072	.	G	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=47;Dels=0.00;HRun=0;HaplotypeScore=12.35;MQ=36.60;MQ0=11;OQ=58.68;QD=1.25;SB=-50.80	GT:AD:DP:GL:GQ	0/1:40,7:24:-16.40,-7.25,-78.79:91.52
-chr1	4593128	.	G	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=47;Dels=0.00;HRun=0;HaplotypeScore=7.00;MQ=42.60;MQ0=10;OQ=87.22;QD=1.86;SB=11.06	GT:AD:DP:GL:GQ	0/1:39,8:24:-19.25,-7.24,-80.14:99
-chr1	4593184	.	G	C	48.23	LowQual	AC=1;AF=0.50;AN=2;DP=32;Dels=0.00;HRun=0;HaplotypeScore=5.25;MQ=50.03;MQ0=1;QD=1.51;SB=-24.84	GT:AD:DP:GL:GQ	0/1:27,5:22:-14.75,-6.64,-72.91:81.07
-chr1	4593205	.	G	C	35.18	LowQual	AC=1;AF=0.50;AN=2;DP=40;Dels=0.00;HRun=0;HaplotypeScore=3.11;MQ=47.39;MQ0=4;QD=0.88;SB=-15.82	GT:AD:DP:GL:GQ	0/1:35,5:30:-15.86,-9.06,-106.35:68.02
-chr1	4593241	rs12752874	A	C	0.04	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=1;HaplotypeScore=2.83;MQ=43.47;MQ0=5;OQ=55.07;QD=1.28;SB=-27.98	GT:AD:DP:GL:GQ	0/1:30,13:26:-16.62,-7.83,-74.90:87.90
-chr1	4594330	rs34642555	G	A	223.53	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=3.30;MQ=59.56;MQ0=0;OQ=741.34;QD=13.99;SB=-378.39	GT:AD:DP:GL:GQ	0/1:29,24:52:-93.10,-15.68,-88.17:99
-chr1	4599106	rs10753383	T	G	347.62	PASS	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.01;MQ0=0;OQ=412.58;QD=12.50;SB=-151.92	GT:AD:DP:GL:GQ	0/1:17,16:32:-54.18,-9.64,-62.40:99
-chr1	4599463	rs7513957	G	C	46.62	PASS	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.00;HRun=2;HaplotypeScore=1.18;MQ=57.56;MQ0=0;OQ=399.60;QD=12.11;SB=-196.33	GT:AD:DP:GL:GQ	0/1:20,13:31:-52.60,-9.35,-73.06:99
-chr1	4600658	rs12122002	G	A	36.86	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=1;HaplotypeScore=2.74;MQ=58.47;MQ0=0;OQ=1298.26;QD=21.28;SB=-656.75	GT:AD:DP:GL:GQ	0/1:24,37:59:-150.88,-17.77,-80.26:99
-chr1	4601609	rs55711858	A	G	373.59	PASS	AC=1;AF=0.50;AN=2;DB;DP=100;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.77;MQ0=0;OQ=1068.23;QD=10.68;SB=-465.77	GT:AD:DP:GL:GQ	0/1:56,44:100:-140.25,-30.14,-225.51:99
-chr1	4601750	rs2411891	G	A	156.02	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=3;HaplotypeScore=1.00;MQ=60.00;MQ0=0;OQ=1085.67;QD=16.96;SB=-561.13	GT:AD:DP:GL:GQ	0/1:31,33:63:-130.83,-18.98,-106.71:99
-chr1	4602156	rs61764994	A	G	74.11	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=2.57;MQ=60.00;MQ0=0;OQ=509.21;QD=7.60;SB=-244.13	GT:AD:DP:GL:GQ	0/1:40,27:63:-73.19,-18.99,-161.05:99
-chr1	4602810	rs61764995	C	T	382.37	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=850.22;QD=17.35;SB=-339.44	GT:AD:DP:GL:GQ	0/1:22,27:48:-102.77,-14.46,-79.78:99
-chr1	4602966	rs34993795	C	T	235.21	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=2.72;MQ=59.03;MQ0=0;OQ=1118.32;QD=16.69;SB=-465.43	GT:AD:DP:GL:GQ	0/1:34,33:66:-135.00,-19.88,-119.08:99
-chr1	4604462	rs2035452	C	G	271.67	PASS	AC=1;AF=0.50;AN=2;DB;DP=26;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.11;MQ0=0;OQ=397.56;QD=15.29;SB=-96.30	GT:AD:DP:GL:GQ	0/1:14,12:25:-50.58,-7.54,-52.60:99
-chr1	4606381	rs10915576	T	C	220.72	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=1;HaplotypeScore=0.95;MQ=60.00;MQ0=0;OQ=882.56;QD=16.97;SB=-410.32	GT:AD:DP:GL:GQ	0/1:21,31:51:-106.90,-15.36,-86.72:99
-chr1	4606615	rs12125737	C	T	418.26	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=0.87;MQ=59.71;MQ0=0;OQ=1209.07;QD=18.60;SB=-598.14	GT:AD:DP:GL:GQ	0/1:29,36:62:-142.87,-18.68,-88.99:99
-chr1	4607135	rs12122921	G	A	2.76	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=10.90;MQ=57.40;MQ0=0;OQ=881.42;QD=13.16;SB=-408.91	GT:AD:DP:GL:GQ	0/1:36,31:56:-108.31,-16.88,-93.30:99
-chr1	4607451	rs28759408	G	T	57.59	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=5.28;MQ=57.88;MQ0=1;OQ=710.71;QD=10.45;SB=-279.36	GT:AD:DP:GL:GQ	0/1:39,29:61:-92.73,-18.38,-123.60:99
-chr1	4608914	rs7535194	C	A	224.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=95;Dels=0.00;HRun=0;HaplotypeScore=1.93;MQ=57.78;MQ0=0;OQ=1544.72;QD=16.26;SB=-662.45	GT:AD:DP:GL:GQ	0/1:44,51:95:-186.37,-28.61,-160.23:99
-chr1	4609123	.	C	T	10.31	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=59;Dels=0.00;HRun=1;HaplotypeScore=2.00;MQ=56.96;MQ0=2;QD=0.17;SB=19.65	GT:AD:DP:GL:GQ	0/1:53,6:55:-20.84,-16.57,-182.90:42.72
-chr1	4609208	rs7539862	A	C	150.58	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.48;MQ0=0;OQ=258.18;QD=5.87;SB=-149.80	GT:AD:DP:GL:GQ	0/1:32,12:43:-42.05,-12.95,-117.22:99
-chr1	4609234	.	G	A	18.35	LowQual	AC=1;AF=0.50;AN=2;DP=40;Dels=0.00;HRun=0;HaplotypeScore=3.99;MQ=56.87;MQ0=1;QD=0.46;SB=-22.94	GT:AD:DP:GL:GQ	0/1:35,5:36:-15.96,-10.84,-114.15:51.13
-chr1	4609248	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=56;Dels=0.00;HRun=1;HaplotypeScore=35.67;MQ=56.49;MQ0=1;OQ=135.28;QD=2.42;SB=50.20	GT:AD:DP:GL:GQ	0/1:46,10:51:-32.18,-15.36,-170.39:99
-chr1	4609249	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=57;Dels=0.00;HRun=1;HaplotypeScore=97.70;MQ=56.55;MQ0=1;OQ=82.36;QD=1.44;SB=50.16	GT:AD:DP:GL:GQ	0/1:47,10:52:-27.18,-15.66,-163.18:99
-chr1	4609260	rs61764999	C	T	6.41	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=1;HaplotypeScore=5.81;MQ=56.56;MQ0=1;OQ=641.66;QD=10.03;SB=-130.56	GT:AD:DP:GL:GQ	0/1:42,22:63:-86.43,-18.98,-148.93:99
-chr1	4609527	rs4654581	C	G	33.46	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=1.03;MQ=59.43;MQ0=0;QD=0.67;SB=28.36	GT:AD:DP:GL:GQ	0/1:45,5:49:-21.39,-14.76,-192.44:66.29
-chr1	4610341	rs10799250	T	C	191.96	PASS	AC=1;AF=0.50;AN=2;DB;DP=85;Dels=0.00;HRun=0;HaplotypeScore=1.73;MQ=59.62;MQ0=0;OQ=886.46;QD=10.43;SB=-400.18	GT:AD:DP:GL:GQ	0/1:51,34:83:-116.93,-25.00,-199.77:99
-chr1	4610346	rs10915577	A	G	286.28	PASS	AC=1;AF=0.50;AN=2;DB;DP=84;Dels=0.00;HRun=1;HaplotypeScore=1.73;MQ=59.62;MQ0=0;OQ=927.42;QD=11.04;SB=-372.61	GT:AD:DP:GL:GQ	0/1:50,34:82:-120.73,-24.70,-201.64:99
-chr1	4611161	rs12405862	C	T	55.82	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=2;HaplotypeScore=2.70;MQ=59.65;MQ0=0;OQ=705.61;QD=13.31;SB=-372.08	GT:AD:DP:GL:GQ	0/1:30,23:53:-89.81,-15.97,-107.55:99
-chr1	4612905	rs1466520	A	G	508.10	PASS	AC=2;AF=1.00;AN=2;DB;DP=34;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.49;MQ0=0;OQ=1092.36;QD=32.13;SB=-567.90	GT:AD:DP:GL:GQ	1/1:0,34:32:-112.83,-9.64,-0.01:96.28
-chr1	4613357	rs4144451	T	C	2.82	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=4;HaplotypeScore=1.16;MQ=60.00;MQ0=0;OQ=378.96;QD=8.81;SB=-197.21	GT:AD:DP:GL:GQ	0/1:27,16:40:-53.24,-12.06,-95.58:99
-chr1	4616788	rs12127797	G	C	214.89	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=4.57;MQ=59.39;MQ0=0;OQ=1251.84;QD=16.47;SB=-458.74	GT:AD:DP:GL:GQ	0/1:41,34:72:-150.17,-21.70,-159.82:99
-chr1	4619890	rs7544371	G	A	283.12	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.45;MQ0=0;OQ=1234.26;QD=22.04;SB=-596.70	GT:AD:DP:GL:GQ	0/1:21,35:56:-143.59,-16.88,-63.94:99
-chr1	4621067	rs6426432	G	C	375.69	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=1.65;MQ=60.00;MQ0=0;OQ=975.42;QD=15.73;SB=-398.88	GT:AD:DP:GL:GQ	0/1:35,27:62:-119.51,-18.68,-150.23:99
-chr1	4621285	rs6658403	C	T	186.42	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=2.18;MQ=59.63;MQ0=0;OQ=651.01;QD=10.50;SB=-348.83	GT:AD:DP:GL:GQ	0/1:39,23:60:-86.46,-18.07,-139.05:99
-chr1	4622291	rs2035454	A	G	361.79	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=1;HaplotypeScore=1.59;MQ=59.15;MQ0=0;OQ=932.32;QD=13.13;SB=-403.21	GT:AD:DP:GL:GQ	0/1:39,32:70:-117.60,-21.09,-152.00:99
-chr1	4622303	rs1531830	T	C	306.21	PASS	AC=1;AF=0.50;AN=2;DB;DP=69;Dels=0.00;HRun=1;HaplotypeScore=1.43;MQ=59.12;MQ0=0;OQ=753.21;QD=10.92;SB=-275.11	GT:AD:DP:GL:GQ	0/1:39,30:68:-99.09,-20.49,-155.18:99
-chr1	4623109	rs10799251	G	A	463.40	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=863.86;QD=15.43;SB=-362.38	GT:AD:DP:GL:GQ	0/1:30,26:56:-106.54,-16.87,-110.57:99
-chr1	4623282	rs10799252	G	C	114.19	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=1.07;MQ=53.79;MQ0=0;OQ=899.36;QD=20.92;SB=-445.94	GT:AD:DP:GL:GQ	0/1:17,26:42:-105.88,-12.66,-71.37:99
-chr1	4623298	rs10799253	T	C	313.76	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=2.67;MQ=52.77;MQ0=0;OQ=616.14;QD=14.00;SB=-298.33	GT:AD:DP:GL:GQ	0/1:18,26:39:-76.66,-11.76,-55.81:99
-chr1	4623777	rs10915578	A	G	84.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=2;HaplotypeScore=0.82;MQ=58.86;MQ0=0;OQ=552.36;QD=9.69;SB=-296.32	GT:AD:DP:GL:GQ	0/1:35,22:57:-75.70,-17.18,-138.68:99
-chr1	4623873	rs10915579	T	C	271.16	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=1;HaplotypeScore=1.57;MQ=57.84;MQ0=0;OQ=661.07;QD=10.17;SB=-259.38	GT:AD:DP:GL:GQ	0/1:40,25:64:-88.68,-19.29,-154.96:99
-chr1	4624091	rs12135245	G	C	41.47	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=3;HaplotypeScore=1.89;MQ=59.70;MQ0=0;OQ=1186.96;QD=19.14;SB=-476.78	GT:AD:DP:GL:GQ	0/1:28,34:59:-139.77,-17.79,-108.63:99
-chr1	4624130	rs12140542	T	C	140.19	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=1;HaplotypeScore=2.13;MQ=59.74;MQ0=0;OQ=656.89;QD=9.12;SB=-348.92	GT:AD:DP:GL:GQ	0/1:43,29:71:-90.37,-21.40,-172.64:99
-chr1	4624492	rs2035455	C	T	468.68	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.59;MQ0=0;OQ=702.27;QD=12.54;SB=-335.31	GT:AD:DP:GL:GQ	0/1:34,22:55:-90.09,-16.58,-106.86:99
-chr1	4624817	rs17421247	C	T	331.36	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=2.99;MQ=59.65;MQ0=0;OQ=1014.16;QD=15.37;SB=-402.77	GT:AD:DP:GL:GQ	0/1:35,31:64:-123.99,-19.29,-104.67:99
-chr1	4626224	rs10915580	G	C	281.25	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=58.07;MQ0=0;OQ=1106.61;QD=18.14;SB=-348.42	GT:AD:DP:GL:GQ	0/1:31,30:61:-132.34,-18.40,-124.48:99
-chr1	4626314	rs12567266	T	C	443.89	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=51.48;MQ0=0;OQ=855.53;QD=18.20;SB=-345.35	GT:AD:DP:GL:GQ	0/1:19,28:47:-102.99,-14.16,-75.71:99
-chr1	4626341	rs12752003	A	G	152.30	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=47.43;MQ0=0;OQ=459.90;QD=12.10;SB=-75.78	GT:AD:DP:GL:GQ	0/1:17,21:35:-59.82,-10.55,-67.90:99
-chr1	4626392	rs12565906	G	A	175.56	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=1;HaplotypeScore=1.36;MQ=51.30;MQ0=0;OQ=647.78;QD=15.42;SB=-283.17	GT:AD:DP:GL:GQ	0/1:21,21:41:-80.41,-12.35,-73.25:99
-chr1	4626545	rs12137938	T	C	1.78	PASS	AC=1;AF=0.50;AN=2;DB;DP=34;Dels=0.00;HRun=2;HaplotypeScore=6.74;MQ=54.18;MQ0=1;OQ=220.73;QD=6.49;SB=-111.61	GT:AD:DP:GL:GQ	0/1:20,14:29:-34.11,-8.75,-66.24:99
-chr1	4626759	rs10799254	A	G	12.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=1;HaplotypeScore=7.18;MQ=56.44;MQ0=0;OQ=516.47;QD=13.59;SB=-271.00	GT:AD:DP:GL:GQ	0/1:15,23:33:-64.88,-9.95,-53.03:99
-chr1	4626886	rs12137092	A	G	70.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=1;HaplotypeScore=0.32;MQ=50.68;MQ0=3;OQ=425.89;QD=8.19;SB=-166.49	GT:AD:DP:GL:GQ	0/1:30,22:47:-60.04,-14.17,-111.36:99
-chr1	4627103	rs6663166	A	G	61.80	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=2;HaplotypeScore=1.05;MQ=58.88;MQ0=0;OQ=507.83;QD=9.40;SB=-149.43	GT:AD:DP:GL:GQ	0/1:33,21:53:-70.04,-15.97,-130.76:99
-chr1	4627150	rs12138132	T	C	261.25	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=59.66;MQ0=0;OQ=429.65;QD=7.81;SB=-213.21	GT:AD:DP:GL:GQ	0/1:37,18:55:-62.82,-16.57,-149.18:99
-chr1	4627390	rs12133670	G	A	454.29	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=0.83;MQ=59.64;MQ0=0;OQ=810.38;QD=15.58;SB=-415.38	GT:AD:DP:GL:GQ	0/1:28,24:51:-99.69,-15.36,-91.80:99
-chr1	4628089	rs12133909	G	T	196.70	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=2.00;MQ=59.88;MQ0=0;OQ=673.35;QD=10.52;SB=-318.02	GT:AD:DP:GL:GQ	0/1:40,24:62:-89.30,-18.68,-116.17:99
-chr1	4628258	rs6703379	G	A	0.30	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=13.50;MQ=55.99;MQ0=1;OQ=611.30;QD=11.32;SB=-213.68	GT:AD:DP:GL:GQ	0/1:33,21:47:-78.59,-14.17,-86.02:99
-chr1	4628265	rs6672122	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.04;HRun=0;HaplotypeScore=25.47;MQ=56.13;MQ0=1;OQ=602.93;QD=10.77;SB=-162.48	GT:AD:DP:GL:GQ	0/1:29,25:52:-78.65,-15.07,-102.50:99
-chr1	4628677	rs6703802	G	A	334.66	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=0.83;MQ=60.00;MQ0=0;OQ=937.15;QD=18.02;SB=-393.92	GT:AD:DP:GL:GQ	0/1:24,28:51:-112.37,-15.37,-73.40:99
-chr1	4630143	rs4654582	T	A	2.35	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=10.18;MQ=58.22;MQ0=0;OQ=526.78;QD=10.54;SB=-97.11	GT:AD:DP:GL:GQ	0/1:25,22:38:-67.41,-11.45,-72.86:99
-chr1	4630312	rs4654583	T	C	361.82	PASS	AC=1;AF=0.50;AN=2;DB;DP=69;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=60.00;MQ0=0;OQ=1108.52;QD=16.07;SB=-319.34	GT:AD:DP:GL:GQ	0/1:31,38:68:-134.62,-20.48,-127.03:99
-chr1	4630977	rs12141394	A	G	593.81	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.47;MQ0=0;OQ=900.99;QD=13.45;SB=-440.92	GT:AD:DP:GL:GQ	0/1:31,36:65:-112.97,-19.59,-120.61:99
-chr1	4631016	rs12139858	C	T	367.23	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=60.00;MQ0=0;OQ=891.25;QD=15.37;SB=-441.97	GT:AD:DP:GL:GQ	0/1:31,27:57:-109.59,-17.18,-94.97:99
-chr1	4631110	rs12141432	A	G	226.87	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=2.78;MQ=58.67;MQ0=0;OQ=787.70;QD=12.50;SB=-349.34	GT:AD:DP:GL:GQ	0/1:35,28:62:-100.73,-18.67,-138.62:99
-chr1	4631448	rs4144452	A	G	502.74	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.69;MQ0=0;OQ=648.74;QD=10.64;SB=-332.00	GT:AD:DP:GL:GQ	0/1:33,28:59:-85.94,-17.78,-131.20:99
-chr1	4631992	rs12138000	G	A	396.61	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=60.00;MQ0=0;OQ=1014.12;QD=15.85;SB=-413.79	GT:AD:DP:GL:GQ	0/1:32,32:63:-123.69,-18.99,-104.09:99
-chr1	4632333	rs1564667	A	G	289.52	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=59.70;MQ0=0;OQ=656.79;QD=8.64;SB=-323.90	GT:AD:DP:GL:GQ	0/1:44,32:72:-90.67,-21.71,-171.92:99
-chr1	4633099	rs4654585	T	C	336.77	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=1;HaplotypeScore=1.88;MQ=59.60;MQ0=0;OQ=968.60;QD=16.70;SB=-498.14	GT:AD:DP:GL:GQ	0/1:26,32:58:-117.61,-17.47,-104.79:99
-chr1	4633208	rs4654586	T	A	613.80	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.60;MQ0=0;OQ=2145.98;QD=37.00;SB=-956.61	GT:AD:DP:GL:GQ	1/1:0,58:58:-218.20,-17.47,-0.01:99
-chr1	4633215	rs4654455	T	C	484.54	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.60;MQ0=0;OQ=1991.47;QD=34.94;SB=-790.66	GT:AD:DP:GL:GQ	1/1:0,57:56:-202.75,-16.87,-0.02:99
-chr1	4636316	rs10915584	G	T	377.31	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=1;HaplotypeScore=0.90;MQ=59.34;MQ0=0;OQ=844.77;QD=13.41;SB=-404.78	GT:AD:DP:GL:GQ	0/1:32,31:58:-105.23,-17.47,-102.72:99
-chr1	4637265	.	T	C	225.79	PASS	AC=1;AF=0.50;AN=2;DP=53;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.56;MQ0=0;OQ=776.05;QD=14.64;SB=-255.94	GT:AD:DP:GL:GQ	0/1:26,27:53:-96.86,-15.97,-103.32:99
-chr1	4638345	.	G	A	67.79	PASS	AC=1;AF=0.50;AN=2;DP=53;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=59.29;MQ0=0;OQ=991.16;QD=18.70;SB=-412.80	GT:AD:DP:GL:GQ	0/1:24,29:51:-117.77,-15.37,-70.20:99
-chr1	4642883	rs2859392	C	G	348.55	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=1;HaplotypeScore=1.26;MQ=59.71;MQ0=0;OQ=833.93;QD=12.83;SB=-304.28	GT:AD:DP:GL:GQ	0/1:37,28:61:-105.07,-18.39,-160.99:99
-chr1	4643564	rs763238	C	T	66.20	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=58.77;MQ0=0;OQ=1042.05;QD=19.66;SB=-208.90	GT:AD:DP:GL:GQ	0/1:21,32:50:-122.56,-15.07,-63.38:99
-chr1	4644154	rs4993529	C	T	334.67	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=1.50;MQ=60.00;MQ0=0;OQ=1314.27;QD=19.62;SB=-670.69	GT:AD:DP:GL:GQ	0/1:27,40:65:-154.30,-19.59,-85.13:99
-chr1	4646074	rs242043	T	C	1.61	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=1;HaplotypeScore=13.28;MQ=59.47;MQ0=0;OQ=1026.27;QD=14.45;SB=-395.20	GT:AD:DP:GL:GQ	0/1:34,37:70:-127.00,-21.09,-134.39:99
-chr1	4646297	rs61765026	G	A	183.35	PASS	AC=1;AF=0.50;AN=2;DB;DP=85;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.73;MQ0=0;OQ=1519.28;QD=17.87;SB=-749.72	GT:AD:DP:GL:GQ	0/1:39,46:84:-180.53,-25.32,-123.19:99
-chr1	4646496	rs10915587	C	T	288.71	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=3.87;MQ=60.00;MQ0=0;OQ=1042.81;QD=16.04;SB=-490.54	GT:AD:DP:GL:GQ	0/1:32,33:64:-126.86,-19.30,-98.43:99
-chr1	4646880	rs17344953	G	A	102.24	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=5.33;MQ=59.62;MQ0=0;OQ=1025.96;QD=17.10;SB=-396.44	GT:AD:DP:GL:GQ	0/1:26,33:55:-122.45,-16.57,-85.52:99
-chr1	4647597	rs12747700	G	A	323.59	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=3.03;MQ=59.29;MQ0=0;OQ=999.88;QD=16.95;SB=-503.14	GT:AD:DP:GL:GQ	0/1:28,31:57:-120.45,-17.18,-86.54:99
-chr1	4648034	rs6684528	G	T	259.70	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=59.52;MQ0=0;OQ=808.60;QD=16.85;SB=-296.69	GT:AD:DP:GL:GQ	0/1:20,28:48:-98.60,-14.46,-70.03:99
-chr1	4648165	rs1076944	G	T	243.38	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=1.78;MQ=58.38;MQ0=0;OQ=602.15;QD=11.58;SB=-146.14	GT:AD:DP:GL:GQ	0/1:27,25:49:-78.26,-14.76,-94.92:99
-chr1	4648936	rs4092257	G	A	283.88	PASS	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=1.60;MQ=57.56;MQ0=0;OQ=450.85;QD=13.66;SB=-204.90	GT:AD:DP:GL:GQ	0/1:17,16:32:-58.02,-9.65,-54.32:99
-chr1	4649873	rs187148	C	G	93.57	PASS	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.00;HRun=0;HaplotypeScore=3.10;MQ=59.76;MQ0=0;OQ=296.24;QD=8.98;SB=-132.74	GT:AD:DP:GL:GQ	0/1:22,11:31:-42.26,-9.35,-85.65:99
-chr1	4651624	.	C	A	146.63	PASS	AC=1;AF=0.50;AN=2;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.50;MQ0=0;OQ=797.72;QD=17.34;SB=-280.69	GT:AD:DP:GL:GQ	0/1:17,29:42:-95.71,-12.66,-50.88:99
-chr1	4652138	rs171380	A	G	10.05	PASS	AC=1;AF=0.50;AN=2;DB;DP=30;Dels=0.00;HRun=2;HaplotypeScore=3.45;MQ=58.45;MQ0=0;OQ=324.85;QD=10.83;SB=-162.34	GT:AD:DP:GL:GQ	0/1:14,16:28:-44.21,-8.45,-55.22:99
-chr1	4653917	rs7525374	A	G	301.57	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=624.45;QD=13.58;SB=-244.30	GT:AD:DP:GL:GQ	0/1:21,25:46:-79.59,-13.86,-85.75:99
-chr1	4653963	rs7528195	T	C	276.57	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=-0.06;MQ=59.00;MQ0=0;OQ=479.46;QD=11.42;SB=-265.36	GT:AD:DP:GL:GQ	0/1:21,21:39:-62.99,-11.76,-78.32:99
-chr1	4654404	rs1076945	C	T	142.94	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=4.82;MQ=58.13;MQ0=0;OQ=818.85;QD=13.65;SB=-233.53	GT:AD:DP:GL:GQ	0/1:33,27:59:-102.95,-17.78,-107.70:99
-chr1	4655581	.	C	T	85.40	PASS	AC=1;AF=0.50;AN=2;DP=74;Dels=0.00;HRun=0;HaplotypeScore=2.82;MQ=59.44;MQ0=0;OQ=1224.61;QD=16.55;SB=-495.16	GT:AD:DP:GL:GQ	0/1:36,38:73:-147.75,-22.00,-119.12:99
-chr1	4656328	rs10915588	T	C	75.83	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=59.56;MQ0=0;OQ=629.83;QD=11.88;SB=-281.45	GT:AD:DP:GL:GQ	0/1:30,23:52:-81.93,-15.66,-115.22:99
-chr1	4656461	rs3886389	A	G	234.27	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=2.71;MQ=59.53;MQ0=0;OQ=467.67;QD=9.54;SB=-232.27	GT:AD:DP:GL:GQ	0/1:28,21:49:-64.82,-14.77,-113.76:99
-chr1	4657736	rs6669203	T	C	161.22	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=1.56;MQ=58.29;MQ0=0;OQ=397.97;QD=9.71;SB=-145.57	GT:AD:DP:GL:GQ	0/1:23,18:37:-54.24,-11.16,-78.29:99
-chr1	4658187	rs12121882	C	T	363.11	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=849.30;QD=18.07;SB=-359.52	GT:AD:DP:GL:GQ	0/1:21,26:46:-102.08,-13.87,-62.23:99
-chr1	4659178	rs242054	A	G	123.55	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=2.47;MQ=57.49;MQ0=0;OQ=1370.79;QD=30.46;SB=-653.90	GT:AD:DP:GL:GQ	1/1:0,45:44:-140.71,-13.27,-0.04:99
-chr1	4660176	rs61765031	A	G	230.02	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=2.54;MQ=59.01;MQ0=0;OQ=811.95;QD=12.30;SB=-390.16	GT:AD:DP:GL:GQ	0/1:34,31:61:-102.85,-18.37,-129.51:99
-chr1	4663049	rs6686733	T	C	216.77	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=4.72;MQ=59.04;MQ0=0;OQ=1082.32;QD=15.92;SB=-503.34	GT:AD:DP:GL:GQ	0/1:29,39:64:-130.80,-19.28,-107.21:99
-chr1	4663261	rs6681520	C	T	227.08	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.58;MQ0=0;OQ=1006.77;QD=22.88;SB=-416.49	GT:AD:DP:GL:GQ	0/1:15,29:43:-116.92,-12.96,-47.72:99
-chr1	4665250	rs12131565	A	G	49.08	PASS	AC=1;AF=0.50;AN=2;DB;DP=77;Dels=0.00;HRun=2;HaplotypeScore=2.95;MQ=47.43;MQ0=2;OQ=1030.19;QD=13.38;SB=-443.10	GT:AD:DP:GL:GQ	0/1:41,36:75:-128.89,-22.59,-163.25:99
-chr1	4665448	rs10915590	T	C	343.30	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.85;MQ0=0;OQ=469.57;QD=9.58;SB=-224.22	GT:AD:DP:GL:GQ	0/1:29,20:48:-64.71,-14.47,-110.90:99
-chr1	4665815	rs10915592	T	C	6.94	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=2;HaplotypeScore=2.44;MQ=60.00;MQ0=0;OQ=940.71;QD=17.75;SB=-259.53	GT:AD:DP:GL:GQ	0/1:21,32:50:-112.42,-15.06,-71.48:99
-chr1	4667613	rs2101196	A	G	254.46	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=1;HaplotypeScore=2.34;MQ=56.97;MQ0=0;OQ=1013.81;QD=15.13;SB=-354.95	GT:AD:DP:GL:GQ	0/1:32,35:65:-124.25,-19.58,-123.74:99
-chr1	4667836	.	T	C	82.17	PASS	AC=1;AF=0.50;AN=2;DP=62;Dels=0.00;HRun=1;HaplotypeScore=0.58;MQ=60.00;MQ0=0;OQ=758.61;QD=12.24;SB=-402.64	GT:AD:DP:GL:GQ	0/1:31,31:61:-97.53,-18.39,-127.98:99
-chr1	4667882	rs2086718	C	T	43.81	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.02;HRun=0;HaplotypeScore=5.21;MQ=57.79;MQ0=0;OQ=518.41;QD=9.43;SB=-229.72	GT:AD:DP:GL:GQ	0/1:31,22:40:-66.89,-11.76,-68.62:99
-chr1	4667894	.	G	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=64;Dels=0.00;HRun=12;HaplotypeScore=6.56;MQ=55.45;MQ0=0;OQ=63.00;QD=0.98;SB=-8.73	GT:AD:DP:GL:GQ	0/1:54,10:56:-26.47,-16.89,-148.75:95.84
-chr1	4668291	rs6670802	G	A	143.50	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=1.43;MQ=56.73;MQ0=0;OQ=372.96;QD=8.29;SB=-147.60	GT:AD:DP:GL:GQ	0/1:28,16:38:-52.04,-11.46,-80.12:99
-chr1	4668400	rs6688423	T	C	371.01	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=1;HaplotypeScore=1.05;MQ=60.00;MQ0=0;OQ=710.41;QD=13.16;SB=-359.33	GT:AD:DP:GL:GQ	0/1:26,28:52:-89.99,-15.67,-104.81:99
-chr1	4668882	.	T	C	49.86	LowQual	AC=1;AF=0.50;AN=2;DP=20;Dels=0.00;HRun=3;HaplotypeScore=9.17;MQ=57.66;MQ0=0;QD=2.49;SB=-0.98	GT:AD:DP:GL:GQ	0/1:11,9:11:-11.59,-3.32,-24.54:82.70
-chr1	4669925	rs12760917	T	C	439.23	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.29;MQ0=0;OQ=917.38;QD=14.11;SB=-279.27	GT:AD:DP:GL:GQ	0/1:29,36:64:-114.31,-19.29,-115.57:99
-chr1	4670306	rs4654594	T	C	240.89	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=1.93;MQ=58.06;MQ0=0;OQ=1070.08;QD=17.54;SB=-482.88	GT:AD:DP:GL:GQ	0/1:21,40:58:-127.77,-17.48,-76.71:99
-chr1	4670764	rs1483197	T	C	225.25	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=4.25;MQ=58.29;MQ0=0;OQ=709.74;QD=13.65;SB=-285.29	GT:AD:DP:GL:GQ	0/1:22,29:49:-89.03,-14.77,-80.10:99
-chr1	4670879	.	G	T	21.82	PASS	AC=1;AF=0.50;AN=2;DP=46;Dels=0.00;HRun=0;HaplotypeScore=1.85;MQ=60.00;MQ0=0;OQ=722.25;QD=15.70;SB=-186.19	GT:AD:DP:GL:GQ	0/1:22,24:42:-88.16,-12.65,-60.03:99
-chr1	4671525	rs989309	G	C	65.26	PASS	AC=1;AF=0.50;AN=2;DB;DP=33;Dels=0.00;HRun=1;HaplotypeScore=2.50;MQ=60.00;MQ0=0;OQ=327.78;QD=9.93;SB=-148.55	GT:AD:DP:GL:GQ	0/1:21,12:30:-45.12,-9.05,-74.66:99
-chr1	4671555	rs989310	G	C	120.18	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=1;HaplotypeScore=1.63;MQ=60.00;MQ0=0;OQ=521.90;QD=14.11;SB=-193.59	GT:AD:DP:GL:GQ	0/1:21,16:35:-66.02,-10.55,-86.58:99
-chr1	4671913	rs1061968	T	C	32.96	PASS	AC=1;AF=0.50;AN=2;DB;DP=16;Dels=0.00;HRun=0;HaplotypeScore=1.66;MQ=58.55;MQ0=0;OQ=101.72;QD=6.36;SB=-10.00	GT:AD:DP:GL:GQ	0/1:10,6:16:-18.28,-4.82,-40.28:99
-chr1	4672577	rs242056	G	A	47.38	PASS	AC=2;AF=1.00;AN=2;DB;DP=30;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=58.45;MQ0=0;OQ=1114.83;QD=37.16;SB=-369.99	GT:AD:DP:GL:GQ	1/1:0,30:28:-115.07,-8.43,-0.01:84.28
-chr1	4673126	rs2071999	A	C	360.34	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=1.89;MQ=60.00;MQ0=0;OQ=766.03;QD=12.77;SB=-408.20	GT:AD:DP:GL:GQ	0/1:27,33:59:-97.67,-17.78,-97.47:99
-chr1	4673232	rs56401224	C	G	273.95	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=0.62;MQ=59.63;MQ0=0;OQ=825.52;QD=16.51;SB=-362.08	GT:AD:DP:GL:GQ	0/1:25,25:46:-99.70,-13.86,-96.30:99
-chr1	4673712	rs242057	G	A	40.47	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=3;HaplotypeScore=2.46;MQ=59.65;MQ0=0;OQ=947.24;QD=14.35;SB=-485.02	GT:AD:DP:GL:GQ	0/1:36,30:63:-116.99,-18.98,-120.15:99
-chr1	4674298	rs242058	T	C	345.93	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=1.05;MQ=59.63;MQ0=0;OQ=778.59;QD=15.27;SB=-272.44	GT:AD:DP:GL:GQ	0/1:23,28:50:-96.21,-15.07,-89.60:99
-chr1	4676145	rs4654595	A	C	407.01	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.63;MQ0=0;OQ=2257.07;QD=35.83;SB=-1055.12	GT:AD:DP:GL:GQ	1/1:0,63:63:-229.31,-18.97,-0.02:99
-chr1	4676402	rs4654596	G	A	207.21	PASS	AC=2;AF=1.00;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=59.44;MQ0=0;OQ=2768.52;QD=37.41;SB=-1042.40	GT:AD:DP:GL:GQ	1/1:0,74:71:-280.46,-21.39,-0.02:99
-chr1	4678092	rs3766959	C	T	358.01	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.73;MQ0=0;OQ=1524.54;QD=23.10;SB=-743.34	GT:AD:DP:GL:GQ	0/1:22,44:65:-175.33,-19.59,-68.56:99
-chr1	4679148	rs242040	A	G	228.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=2.49;MQ=60.00;MQ0=0;OQ=836.32;QD=13.07;SB=-312.23	GT:AD:DP:GL:GQ	0/1:34,30:63:-105.89,-18.98,-137.28:99
-chr1	4679557	rs242041	G	C	23.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=3;HaplotypeScore=1.52;MQ=58.81;MQ0=0;OQ=500.09;QD=9.81;SB=-250.11	GT:AD:DP:GL:GQ	0/1:32,19:47:-67.48,-14.18,-123.03:99
-chr1	4681011	rs3820251	C	T	321.37	PASS	AC=1;AF=0.50;AN=2;DB;DP=84;Dels=0.00;HRun=0;HaplotypeScore=2.47;MQ=59.05;MQ0=0;OQ=1264.98;QD=15.06;SB=-599.08	GT:AD:DP:GL:GQ	0/1:45,39:83:-154.80,-25.02,-140.75:99
-chr1	4683002	rs12566272	G	A	75.66	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=1;HaplotypeScore=6.06;MQ=59.60;MQ0=0;OQ=811.79;QD=14.00;SB=-379.10	GT:AD:DP:GL:GQ	0/1:30,28:55:-101.04,-16.58,-98.62:99
-chr1	4683215	rs12085854	C	T	250.87	PASS	AC=1;AF=0.50;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=58.71;MQ0=0;OQ=595.12;QD=16.53;SB=-237.77	GT:AD:DP:GL:GQ	0/1:12,24:28:-71.24,-8.44,-31.48:99
-chr1	4684416	rs3820252	C	T	67.11	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=2.40;MQ=59.16;MQ0=0;OQ=1099.71;QD=21.99;SB=-407.20	GT:AD:DP:GL:GQ	0/1:18,32:50:-128.32,-15.07,-57.31:99
-chr1	4684710	rs4554693	C	T	27.64	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=2.03;MQ=59.86;MQ0=0;OQ=1309.90;QD=22.98;SB=-464.01	GT:AD:DP:GL:GQ	0/1:20,37:57:-151.45,-17.18,-62.35:99
-chr1	4685955	rs11586740	G	T	36.42	PASS	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=7.65;MQ=60.00;MQ0=0;OQ=1269.15;QD=17.39;SB=-560.71	GT:AD:DP:GL:GQ	0/1:30,43:69:-150.98,-20.79,-94.07:99
-chr1	4686129	.	A	G	0.31	PASS	AC=1;AF=0.50;AN=2;DP=52;Dels=0.00;HRun=1;HaplotypeScore=0.99;MQ=58.20;MQ0=0;OQ=188.73;QD=3.63;SB=-3.68	GT:AD:DP:GL:GQ	0/1:41,11:52:-37.84,-15.68,-155.85:99
-chr1	4686130	.	G	C	4.40	PASS	AC=1;AF=0.50;AN=2;DP=52;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=58.20;MQ0=0;OQ=258.95;QD=4.98;SB=-16.68	GT:AD:DP:GL:GQ	0/1:42,10:52:-44.85,-15.67,-182.52:99
-chr1	4686979	rs242044	A	G	24.21	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=2;HaplotypeScore=0.79;MQ=59.56;MQ0=0;OQ=1479.37;QD=27.91;SB=-538.14	GT:AD:DP:GL:GQ	1/1:0,52:45:-151.55,-13.56,-0.03:99
-chr1	4687176	rs242045	T	C	255.59	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.92;MQ=60.00;MQ0=0;OQ=1371.92;QD=34.30;SB=-697.63	GT:AD:DP:GL:GQ	1/1:0,40:40:-140.79,-12.05,-0.02:99
-chr1	4687868	rs242047	A	C	103.52	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=1;HaplotypeScore=2.65;MQ=59.62;MQ0=0;OQ=770.92;QD=12.85;SB=-248.85	GT:AD:DP:GL:GQ	0/1:32,28:59:-98.15,-17.77,-114.07:99
-chr1	4688746	rs242048	A	G	112.68	PASS	AC=2;AF=1.00;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=1.71;MQ=59.36;MQ0=0;OQ=768.10;QD=21.34;SB=-331.78	GT:AD:DP:GL:GQ	1/1:0,36:26:-80.42,-7.84,-0.03:78.16
-chr1	4688889	rs242049	T	G	239.30	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=1.23;MQ=60.00;MQ0=0;OQ=1481.34;QD=32.92;SB=-635.03	GT:AD:DP:GL:GQ	1/1:0,45:44:-151.74,-13.26,-0.02:99
-chr1	4695274	rs446529	T	C	363.34	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=55.31;MQ0=0;OQ=516.35;QD=9.93;SB=-227.25	GT:AD:DP:GL:GQ	0/1:29,23:50:-69.99,-15.07,-114.97:99
-chr1	4695606	rs648712	C	T	1.54	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=1;HaplotypeScore=10.04;MQ=47.15;MQ0=0;OQ=816.40;QD=17.01;SB=-434.45	GT:AD:DP:GL:GQ	0/1:23,25:46:-98.78,-13.86,-79.74:99
-chr1	4695607	.	T	G	0.18	PASS	AC=1;AF=0.50;AN=2;DP=48;Dels=0.00;HRun=0;HaplotypeScore=11.01;MQ=47.15;MQ0=0;OQ=688.64;QD=14.35;SB=-357.86	GT:AD:DP:GL:GQ	0/1:23,25:47:-86.31,-14.16,-83.32:99
-chr1	4695638	rs432330	T	A	460.16	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=51.80;MQ0=0;OQ=772.11;QD=15.14;SB=-337.40	GT:AD:DP:GL:GQ	0/1:24,27:50:-95.56,-15.06,-90.18:99
-chr1	4695654	rs449261	T	C	245.99	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=1;HaplotypeScore=2.57;MQ=53.57;MQ0=0;OQ=702.97;QD=13.52;SB=-345.62	GT:AD:DP:GL:GQ	0/1:26,26:49:-88.35,-14.77,-92.65:99
-chr1	4695676	rs435239	G	C	185.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=1;HaplotypeScore=2.08;MQ=57.17;MQ0=0;OQ=826.31;QD=16.53;SB=-414.36	GT:AD:DP:GL:GQ	0/1:24,26:47:-100.09,-14.18,-90.75:99
-chr1	4695734	rs416953	T	C	152.01	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=2.25;MQ=59.13;MQ0=0;OQ=882.63;QD=16.65;SB=-283.45	GT:AD:DP:GL:GQ	0/1:22,31:50:-106.61,-15.06,-78.94:99
-chr1	4696083	rs383650	C	G	345.55	PASS	AC=1;AF=0.50;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=1.53;MQ=59.10;MQ0=0;OQ=1382.15;QD=17.95;SB=-715.96	GT:AD:DP:GL:GQ	0/1:38,39:75:-164.11,-22.61,-152.21:99
-chr1	4696156	rs436132	G	C	8.37	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=4;HaplotypeScore=0.00;MQ=59.25;MQ0=0;OQ=1112.40;QD=19.86;SB=-564.68	GT:AD:DP:GL:GQ	0/1:25,31:56:-131.40,-16.88,-111.00:99
-chr1	4696361	.	A	C	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=69;Dels=0.00;HRun=2;HaplotypeScore=10.18;MQ=60.26;MQ0=0;OQ=143.73;QD=2.08;SB=104.31	GT:AD:DP:GL:GQ	0/1:45,24:52:-33.32,-15.67,-137.68:99
-chr1	4696418	rs392630	A	G	270.27	PASS	AC=1;AF=0.50;AN=2;DB;DP=92;Dels=0.00;HRun=1;HaplotypeScore=1.95;MQ=59.71;MQ0=0;OQ=1265.58;QD=13.76;SB=-582.79	GT:AD:DP:GL:GQ	0/1:45,47:87:-156.05,-26.21,-176.07:99
-chr1	4697358	rs544738	C	A	298.87	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=1.61;MQ=59.01;MQ0=0;OQ=538.34;QD=14.17;SB=-233.94	GT:AD:DP:GL:GQ	0/1:19,19:37:-68.26,-11.15,-60.83:99
-chr1	4697618	rs445060	G	A	155.17	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=1;HaplotypeScore=2.45;MQ=59.60;MQ0=0;OQ=740.87;QD=12.77;SB=-313.26	GT:AD:DP:GL:GQ	0/1:32,26:54:-93.63,-16.26,-111.70:99
-chr1	4698713	rs578528	A	G	87.54	PASS	AC=1;AF=0.50;AN=2;DB;DP=36;Dels=0.00;HRun=2;HaplotypeScore=0.58;MQ=59.36;MQ0=0;OQ=385.70;QD=10.71;SB=-193.63	GT:AD:DP:GL:GQ	0/1:21,15:36:-52.70,-10.85,-81.97:99
-chr1	4699130	rs449181	G	A	397.02	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=0.84;MQ=59.67;MQ0=0;OQ=927.44;QD=16.56;SB=-380.14	GT:AD:DP:GL:GQ	0/1:27,29:54:-112.30,-16.28,-85.10:99
-chr1	4700289	rs13376290	T	G	0.41	PASS	AC=1;AF=0.50;AN=2;DB;DP=26;Dels=0.00;HRun=4;HaplotypeScore=0.10;MQ=48.01;MQ0=0;OQ=193.53;QD=7.44;SB=-0.43	GT:AD:DP:GL:GQ	0/1:15,11:24:-29.87,-7.23,-54.19:99
-chr1	4700426	.	C	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=26;Dels=0.00;HRun=2;HaplotypeScore=11.52;MQ=48.42;MQ0=0;OQ=136.63;QD=5.25;SB=-6.99	GT:AD:DP:GL:GQ	0/1:7,19:10:-19.97,-3.02,-19.59:99
-chr1	4700705	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=52;Dels=0.00;HRun=20;HaplotypeScore=32.92;MQ=48.95;MQ0=0;OQ=199.23;QD=3.83;SB=71.25	GT:AD:DP:GL:GQ	0/1:35,17:41:-35.56,-12.35,-113.25:99
-chr1	4700881	rs529853	G	C	174.83	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=3.66;MQ=53.91;MQ0=0;OQ=810.63;QD=16.54;SB=-402.70	GT:AD:DP:GL:GQ	0/1:22,27:47:-98.53,-14.18,-93.65:99
-chr1	4701141	rs381339	T	C	9.53	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=2;HaplotypeScore=2.72;MQ=59.22;MQ0=0;OQ=750.05;QD=11.54;SB=-112.61	GT:AD:DP:GL:GQ	0/1:29,33:53:-94.27,-15.98,-96.69:99
-chr1	4701497	rs382623	T	C	282.35	PASS	AC=1;AF=0.50;AN=2;DB;DP=81;Dels=0.00;HRun=0;HaplotypeScore=1.60;MQ=59.48;MQ0=0;OQ=1093.69;QD=13.50;SB=-513.56	GT:AD:DP:GL:GQ	0/1:38,43:80:-136.77,-24.11,-153.00:99
-chr1	4701516	rs382646	T	C	490.40	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.45;MQ0=0;OQ=1091.01;QD=14.36;SB=-413.27	GT:AD:DP:GL:GQ	0/1:38,38:75:-134.98,-22.59,-157.29:99
-chr1	4701783	rs392620	C	T	260.56	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=2.19;MQ=59.38;MQ0=0;OQ=1111.05;QD=15.01;SB=-420.88	GT:AD:DP:GL:GQ	0/1:41,33:73:-136.38,-21.99,-143.11:99
-chr1	4702373	rs448741	C	T	315.12	PASS	AC=1;AF=0.50;AN=2;DB;DP=69;Dels=0.00;HRun=1;HaplotypeScore=0.32;MQ=59.33;MQ0=0;OQ=1161.48;QD=16.83;SB=-516.10	GT:AD:DP:GL:GQ	0/1:33,36:68:-139.92,-20.49,-116.50:99
-chr1	4702588	rs431966	C	G	301.89	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=-0.06;MQ=59.74;MQ0=0;OQ=1167.37;QD=16.21;SB=-392.89	GT:AD:DP:GL:GQ	0/1:35,37:71:-141.44,-21.42,-151.57:99
-chr1	4703125	rs367673	G	C	285.90	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=59.24;MQ0=0;OQ=1282.03;QD=21.02;SB=-602.59	GT:AD:DP:GL:GQ	0/1:26,35:61:-149.87,-18.38,-114.22:99
-chr1	4703446	rs540299	A	G	321.95	PASS	AC=1;AF=0.50;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=1.50;MQ=59.10;MQ0=0;OQ=1141.42;QD=14.82;SB=-449.59	GT:AD:DP:GL:GQ	0/1:36,41:75:-140.02,-22.60,-142.02:99
-chr1	4703496	rs648346	G	A	131.26	PASS	AC=1;AF=0.50;AN=2;DB;DP=82;Dels=0.00;HRun=1;HaplotypeScore=0.89;MQ=58.29;MQ0=0;OQ=1435.37;QD=17.50;SB=-321.28	GT:AD:DP:GL:GQ	0/1:40,42:79:-170.63,-23.81,-120.02:99
-chr1	4703694	rs393976	G	A	298.73	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=2.71;MQ=59.30;MQ0=0;OQ=1022.50;QD=17.04;SB=-396.14	GT:AD:DP:GL:GQ	0/1:30,30:58:-123.01,-17.47,-100.86:99
-chr1	4704145	rs375781	T	C	253.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=0.63;MQ=57.53;MQ0=0;OQ=380.91;QD=10.02;SB=-211.48	GT:AD:DP:GL:GQ	0/1:19,19:35:-51.92,-10.55,-74.06:99
-chr1	4704212	rs406065	A	T	598.24	PASS	AC=1;AF=0.50;AN=2;DB;DP=69;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=53.74;MQ0=0;OQ=1026.86;QD=14.88;SB=-405.55	GT:AD:DP:GL:GQ	0/1:35,34:69:-126.75,-20.78,-135.77:99
-chr1	4704412	rs396199	G	A	86.73	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=1;HaplotypeScore=1.14;MQ=59.62;MQ0=0;OQ=915.71;QD=18.69;SB=-324.82	GT:AD:DP:GL:GQ	0/1:21,28:47:-109.02,-14.16,-69.65:99
-chr1	4704606	rs413178	A	G	154.93	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=1.94;MQ=56.43;MQ0=0;OQ=958.14;QD=15.45;SB=-233.27	GT:AD:DP:GL:GQ	0/1:25,37:59:-116.89,-17.79,-90.61:99
-chr1	4704966	rs414176	A	C	426.79	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=59.63;MQ0=0;OQ=751.31;QD=11.93;SB=-297.47	GT:AD:DP:GL:GQ	0/1:31,32:62:-97.10,-18.68,-109.53:99
-chr1	4705294	rs371605	A	G	188.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=2.08;MQ=59.55;MQ0=0;OQ=418.07;QD=8.20;SB=-210.35	GT:AD:DP:GL:GQ	0/1:28,23:46:-58.96,-13.87,-104.25:99
-chr1	4705534	rs409048	T	C	345.87	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=2.05;MQ=59.35;MQ0=0;OQ=802.66;QD=12.54;SB=-363.20	GT:AD:DP:GL:GQ	0/1:35,29:64:-102.83,-19.28,-139.39:99
-chr1	4706241	rs368808	A	G	17.45	PASS	AC=1;AF=0.50;AN=2;DB;DP=82;Dels=0.00;HRun=2;HaplotypeScore=4.09;MQ=59.49;MQ0=0;OQ=756.36;QD=9.22;SB=-230.86	GT:AD:DP:GL:GQ	0/1:48,34:80:-103.04,-24.12,-189.26:99
-chr1	4707706	rs368940	A	G	105.39	PASS	AC=1;AF=0.50;AN=2;DB;DP=35;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=60.00;MQ0=0;OQ=599.08;QD=17.12;SB=-212.56	GT:AD:DP:GL:GQ	0/1:14,21:35:-73.73,-10.54,-57.28:99
-chr1	4707911	.	C	A	31.90	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=61;Dels=0.00;HRun=13;HaplotypeScore=26.77;MQ=58.47;MQ0=0;QD=0.52;SB=52.91	GT:AD:DP:GL:GQ	0/1:52,9:48:-20.93,-14.46,-146.08:64.73
-chr1	4708314	rs2802721	G	A	450.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=1.30;MQ=56.44;MQ0=0;OQ=981.54;QD=15.34;SB=-489.03	GT:AD:DP:GL:GQ	0/1:28,36:59:-119.22,-17.78,-99.55:99
-chr1	4708405	rs394808	C	A	233.49	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=1;HaplotypeScore=0.96;MQ=56.69;MQ0=0;OQ=782.76;QD=14.77;SB=-324.34	GT:AD:DP:GL:GQ	0/1:26,27:51:-96.92,-15.37,-78.87:99
-chr1	4708536	rs395145	C	T	383.51	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1269.10;QD=19.83;SB=-521.54	GT:AD:DP:GL:GQ	0/1:25,39:63:-149.18,-18.98,-84.36:99
-chr1	4708674	rs4654602	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=69.80;MQ=46.48;MQ0=0;OQ=293.59;QD=4.19;SB=-93.14	GT:AD:DP:GL:GQ	0/1:56,14:66:-52.53,-19.89,-198.60:99
-chr1	4708678	rs406913	A	G	32.76	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=20.07;MQ=45.13;MQ0=0;QD=0.48;SB=9.87	GT:AD:DP:GL:GQ	0/1:59,9:58:-24.04,-17.48,-194.48:65.59
-chr1	4708830	rs433427	A	G	13.73	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=1;HaplotypeScore=6.55;MQ=59.08;MQ0=0;OQ=748.71;QD=10.55;SB=-350.04	GT:AD:DP:GL:GQ	0/1:40,31:70:-99.25,-21.09,-163.31:99
-chr1	4708980	rs2802720	C	T	373.55	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=1.56;MQ=55.41;MQ0=0;OQ=1008.97;QD=15.29;SB=-359.05	GT:AD:DP:GL:GQ	0/1:35,31:66:-124.06,-19.88,-124.56:99
-chr1	4710412	rs364642	C	T	180.53	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=1;HaplotypeScore=3.52;MQ=58.91;MQ0=0;OQ=814.43;QD=13.57;SB=-402.86	GT:AD:DP:GL:GQ	0/1:32,28:58:-102.20,-17.48,-113.74:99
-chr1	4712675	rs381240	A	G	265.51	PASS	AC=1;AF=0.50;AN=2;DB;DP=79;Dels=0.00;HRun=0;HaplotypeScore=1.94;MQ=57.93;MQ0=0;OQ=805.26;QD=10.19;SB=-382.86	GT:AD:DP:GL:GQ	0/1:44,35:76:-106.72,-22.91,-172.59:99
-chr1	4712931	rs448221	T	C	105.17	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=0;HaplotypeScore=3.03;MQ=56.15;MQ0=0;OQ=384.09;QD=10.38;SB=-115.63	GT:AD:DP:GL:GQ	0/1:18,19:34:-51.95,-10.25,-67.62:99
-chr1	4712934	rs431884	C	T	132.31	PASS	AC=1;AF=0.50;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=3.03;MQ=56.04;MQ0=0;OQ=441.73;QD=12.27;SB=-157.22	GT:AD:DP:GL:GQ	0/1:18,18:33:-57.41,-9.95,-59.19:99
-chr1	4712975	rs380239	A	G	454.99	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.93;MQ=55.78;MQ0=0;OQ=728.95;QD=12.57;SB=-369.58	GT:AD:DP:GL:GQ	0/1:31,26:56:-93.05,-16.87,-121.44:99
-chr1	4713977	rs434474	A	T	435.77	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=59.38;MQ0=0;OQ=788.95;QD=11.78;SB=-384.44	GT:AD:DP:GL:GQ	0/1:40,27:64:-101.46,-19.28,-136.23:99
-chr1	4714260	rs428001	G	A	188.72	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.64;MQ0=0;OQ=394.17;QD=7.58;SB=-208.83	GT:AD:DP:GL:GQ	0/1:37,15:47:-56.86,-14.16,-117.42:99
-chr1	4714368	rs413383	G	C	359.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=902.57;QD=15.56;SB=-389.66	GT:AD:DP:GL:GQ	0/1:30,28:56:-110.43,-16.89,-123.48:99
-chr1	4714807	rs401110	C	T	341.51	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.58;MQ=60.00;MQ0=0;OQ=642.13;QD=13.96;SB=-230.50	GT:AD:DP:GL:GQ	0/1:24,21:44:-80.76,-13.26,-78.68:99
-chr1	4715337	rs434504	G	A	250	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=59.39;MQ0=0;OQ=582.19;QD=15.32;SB=-195.19	GT:AD:DP:GL:GQ	0/1:19,19:36:-72.35,-10.85,-57.76:99
-chr1	4718265	rs423796	G	A	245.56	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=2.32;MQ=58.44;MQ0=0;OQ=1032.37;QD=16.92;SB=-496.08	GT:AD:DP:GL:GQ	0/1:28,33:59:-124.29,-17.77,-98.91:99
-chr1	4718977	rs41511844	A	C	15.67	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=3;HaplotypeScore=0.79;MQ=59.53;MQ0=0;OQ=807.51;QD=16.48;SB=-276.90	GT:AD:DP:GL:GQ	0/1:21,28:49:-98.80,-14.76,-77.17:99
-chr1	4719527	rs523141	G	A	331.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.63;MQ0=1;OQ=362.25;QD=9.29;SB=-60.24	GT:AD:DP:GL:GQ	0/1:25,14:36:-50.35,-10.84,-83.10:99
-chr1	4719663	rs368420	T	C	450.85	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=1.11;MQ=60.00;MQ0=0;OQ=1132.30;QD=16.90;SB=-528.33	GT:AD:DP:GL:GQ	0/1:29,38:66:-136.39,-19.88,-119.33:99
-chr1	4720200	rs34125417	T	A	155.86	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=3.33;MQ=59.59;MQ0=0;OQ=796.97;QD=13.51;SB=-224.76	GT:AD:DP:GL:GQ	0/1:29,29:54:-99.25,-16.27,-103.01:99
-chr1	4720659	rs397559	C	T	380.37	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=59.71;MQ0=0;OQ=1207.74;QD=18.87;SB=-534.79	GT:AD:DP:GL:GQ	0/1:27,37:63:-143.05,-18.99,-86.17:99
-chr1	4721157	rs443850	C	T	216.92	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=4.76;MQ=59.51;MQ0=0;OQ=1138.02;QD=14.97;SB=-525.69	GT:AD:DP:GL:GQ	0/1:42,34:73:-139.07,-21.99,-142.33:99
-chr1	4721448	rs9426481	G	T	366.43	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=60.00;MQ0=0;OQ=988.26;QD=14.53;SB=-519.87	GT:AD:DP:GL:GQ	0/1:35,33:67:-122.29,-20.18,-120.50:99
-chr1	4722600	rs742245	A	C	591.38	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.68;MQ0=0;OQ=1064.86;QD=15.00;SB=-554.90	GT:AD:DP:GL:GQ	0/1:34,37:68:-130.25,-20.48,-117.18:99
-chr1	4722971	rs760815	C	A	224.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=1.86;MQ=59.29;MQ0=0;OQ=950.16;QD=16.10;SB=-349.23	GT:AD:DP:GL:GQ	0/1:26,33:58:-115.77,-17.47,-92.37:99
-chr1	4723061	rs2743978	G	A	259.98	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=1.96;MQ=60.00;MQ0=0;OQ=829.12;QD=15.07;SB=-390.87	GT:AD:DP:GL:GQ	0/1:28,27:53:-102.17,-15.97,-92.75:99
-chr1	4723683	rs411832	G	C	0.53	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.02;HRun=0;HaplotypeScore=12.73;MQ=59.54;MQ0=0;OQ=809.82;QD=16.20;SB=-394.90	GT:AD:DP:GL:GQ	0/1:25,24:48:-98.44,-14.17,-99.99:99
-chr1	4723923	rs425005	C	A	167.26	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=2;HaplotypeScore=0.89;MQ=59.70;MQ0=0;OQ=997.52;QD=16.09;SB=-361.25	GT:AD:DP:GL:GQ	0/1:28,34:61:-121.41,-18.38,-98.67:99
-chr1	4724602	rs424723	C	T	274.96	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.39;MQ0=0;OQ=1215.08;QD=19.92;SB=-584.11	GT:AD:DP:GL:GQ	0/1:24,36:58:-142.27,-17.47,-75.15:99
-chr1	4725012	rs2743979	G	A	336.31	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=1;HaplotypeScore=0.79;MQ=59.68;MQ0=0;OQ=1008.07;QD=17.38;SB=-481.48	GT:AD:DP:GL:GQ	0/1:28,30:57:-121.27,-17.17,-91.06:99
-chr1	4725752	rs57646199	C	T	319.32	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.67;MQ0=0;OQ=1002.06;QD=17.89;SB=-467.46	GT:AD:DP:GL:GQ	0/1:26,30:56:-120.36,-16.87,-93.54:99
-chr1	4725910	rs2802717	C	T	220.45	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=1;HaplotypeScore=0.93;MQ=59.68;MQ0=0;OQ=1230.52;QD=17.09;SB=-300.80	GT:AD:DP:GL:GQ	0/1:35,36:70:-147.42,-21.09,-124.52:99
-chr1	4725964	rs2802716	C	A	41.54	PASS	AC=1;AF=0.50;AN=2;DB;DP=80;Dels=0.00;HRun=4;HaplotypeScore=0.93;MQ=59.48;MQ0=0;OQ=1484.28;QD=18.55;SB=-734.49	GT:AD:DP:GL:GQ	0/1:32,48:80:-175.81,-24.10,-113.80:99
-chr1	4726365	rs9426502	G	A	127.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=69;Dels=0.00;HRun=2;HaplotypeScore=0.16;MQ=59.67;MQ0=0;OQ=1140.71;QD=16.53;SB=-410.70	GT:AD:DP:GL:GQ	0/1:35,34:69:-138.14,-20.78,-128.81:99
-chr1	4726520	rs2743980	G	A	355.47	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=1;HaplotypeScore=1.45;MQ=59.68;MQ0=0;OQ=913.23;QD=12.68;SB=-432.39	GT:AD:DP:GL:GQ	0/1:43,29:72:-116.30,-21.69,-156.11:99
-chr1	4726900	rs7548728	G	A	477.89	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.60;MQ0=0;OQ=780.16;QD=13.69;SB=-340.47	GT:AD:DP:GL:GQ	0/1:32,25:55:-97.88,-16.58,-97.83:99
-chr1	4727923	rs426095	G	A	378.93	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.64;MQ0=0;OQ=878.95;QD=13.73;SB=-378.83	GT:AD:DP:GL:GQ	0/1:36,28:61:-109.56,-18.38,-120.39:99
-chr1	4728243	rs396629	C	T	353.19	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=59.62;MQ0=0;OQ=1145.27;QD=18.77;SB=-564.43	GT:AD:DP:GL:GQ	0/1:27,34:61:-136.20,-18.39,-85.13:99
-chr1	4728440	.	G	A	47.68	PASS	AC=1;AF=0.50;AN=2;DP=56;Dels=0.00;HRun=0;HaplotypeScore=2.39;MQ=58.84;MQ0=0;OQ=1100.89;QD=19.66;SB=-554.66	GT:AD:DP:GL:GQ	0/1:23,33:56:-130.25,-16.88,-72.13:99
-chr1	4730266	rs410413	T	C	266.24	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=1.11;MQ=57.84;MQ0=0;OQ=500.27;QD=10.01;SB=-265.95	GT:AD:DP:GL:GQ	0/1:25,25:45:-66.88,-13.57,-94.91:99
-chr1	4730269	rs410414	T	C	250.89	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=57.08;MQ0=0;OQ=462.87;QD=9.85;SB=-198.61	GT:AD:DP:GL:GQ	0/1:25,22:45:-63.14,-13.57,-96.77:99
-chr1	4730645	rs395467	A	G	11.96	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=1;HaplotypeScore=4.91;MQ=52.28;MQ0=0;OQ=653.20;QD=9.90;SB=-279.13	GT:AD:DP:GL:GQ	0/1:38,27:64:-87.89,-19.29,-148.52:99
-chr1	4730689	rs9426503	G	C	129.77	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=2;HaplotypeScore=1.89;MQ=56.81;MQ0=0;OQ=1027.62;QD=14.27;SB=-322.37	GT:AD:DP:GL:GQ	0/1:41,31:67:-126.24,-20.20,-160.02:99
-chr1	4730760	rs9426483	C	T	334.33	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=2.53;MQ=58.90;MQ0=0;OQ=750.53;QD=13.65;SB=-332.36	GT:AD:DP:GL:GQ	0/1:31,24:54:-94.60,-16.27,-107.97:99
-chr1	4730936	rs423285	C	T	421.63	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=0.90;MQ=56.95;MQ0=0;OQ=670.76;QD=11.37;SB=-300.79	GT:AD:DP:GL:GQ	0/1:33,25:55:-86.95,-16.59,-101.75:99
-chr1	4730990	rs395508	G	A	57.05	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=1;HaplotypeScore=2.76;MQ=59.27;MQ0=0;OQ=529.54;QD=9.29;SB=-260.10	GT:AD:DP:GL:GQ	0/1:38,19:53:-72.20,-15.97,-127.10:99
-chr1	4731053	rs418045	T	C	525.89	PASS	AC=1;AF=0.50;AN=2;DB;DP=46;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=529.19;QD=11.50;SB=-290.44	GT:AD:DP:GL:GQ	0/1:26,20:45:-69.76,-13.55,-105.89:99
-chr1	4731180	rs396112	G	A	318.68	PASS	AC=1;AF=0.50;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=60.00;MQ0=0;OQ=740.76;QD=17.64;SB=-379.17	GT:AD:DP:GL:GQ	0/1:19,23:39:-89.12,-11.76,-51.25:99
-chr1	4731341	rs406847	A	G	411.20	PASS	AC=1;AF=0.50;AN=2;DB;DP=35;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.80;MQ0=0;OQ=513.60;QD=14.67;SB=-259.91	GT:AD:DP:GL:GQ	0/1:17,18:35:-65.19,-10.54,-67.57:99
-chr1	4731471	rs428580	C	T	186.08	PASS	AC=1;AF=0.50;AN=2;DB;DP=43;Dels=0.00;HRun=1;HaplotypeScore=1.00;MQ=60.00;MQ0=0;OQ=867.64;QD=20.18;SB=-459.01	GT:AD:DP:GL:GQ	0/1:17,26:42:-102.70,-12.65,-55.85:99
-chr1	4731684	rs407301	C	T	107.33	PASS	AC=1;AF=0.50;AN=2;DB;DP=34;Dels=0.00;HRun=0;HaplotypeScore=0.33;MQ=57.23;MQ0=0;OQ=697.47;QD=20.51;SB=-327.88	GT:AD:DP:GL:GQ	0/1:12,22:33:-82.98,-9.95,-39.91:99
-chr1	4732014	.	T	A	875.95	Indel	AC=1;AF=0.50;AN=2;DP=62;Dels=0.00;HRun=0;HaplotypeScore=12.12;MQ=51.16;MQ0=0;QD=14.13;SB=-350.44	GT:AD:DP:GL:GQ	0/1:31,31:60:-108.95,-18.08,-110.80:99
-chr1	4732015	.	T	A	970.99	Indel	AC=1;AF=0.50;AN=2;DP=61;Dels=0.00;HRun=9;HaplotypeScore=12.28;MQ=51.00;MQ0=0;QD=15.92;SB=-364.45	GT:AD:DP:GL:GQ	0/1:29,32:58:-117.85,-17.47,-98.32:99
-chr1	4733241	rs414434	G	C	239.58	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=1;HaplotypeScore=1.00;MQ=60.00;MQ0=0;OQ=1334.69;QD=20.22;SB=-556.62	GT:AD:DP:GL:GQ	0/1:28,38:63:-155.75,-19.00,-107.17:99
-chr1	4734056	rs9426504	G	A	5.32	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=4;HaplotypeScore=2.44;MQ=58.18;MQ0=0;OQ=895.74;QD=16.59;SB=-312.82	GT:AD:DP:GL:GQ	0/1:25,29:51:-108.23,-15.38,-75.31:99
-chr1	4734062	rs451162	G	C	249.29	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=2.31;MQ=58.57;MQ0=0;OQ=977.80;QD=18.80;SB=-417.05	GT:AD:DP:GL:GQ	0/1:24,28:49:-115.83,-14.77,-93.28:99
-chr1	4734089	rs388631	T	C	200.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=1.48;MQ=59.01;MQ0=0;OQ=598.20;QD=12.73;SB=-188.41	GT:AD:DP:GL:GQ	0/1:21,25:44:-76.37,-13.27,-78.74:99
-chr1	4734466	rs389959	T	C	132.65	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=1.40;MQ=60.00;MQ0=0;OQ=323.31;QD=6.22;SB=-138.87	GT:AD:DP:GL:GQ	0/1:33,18:48:-50.08,-14.47,-128.38:99
-chr1	4734711	rs397852	T	C	337.97	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=1.07;MQ=60.00;MQ0=0;OQ=458.03;QD=9.35;SB=-228.25	GT:AD:DP:GL:GQ	0/1:29,20:49:-63.86,-14.77,-115.16:99
-chr1	4735235	rs399377	T	C	222.18	PASS	AC=1;AF=0.50;AN=2;DB;DP=35;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=339.75;QD=9.71;SB=-124.62	GT:AD:DP:GL:GQ	0/1:21,14:33:-47.20,-9.94,-76.89:99
-chr1	4735981	rs394594	A	G	305.79	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.38;MQ0=0;OQ=773.72;QD=10.46;SB=-332.92	GT:AD:DP:GL:GQ	0/1:41,33:73:-102.66,-22.01,-163.48:99
-chr1	4738101	rs414909	C	T	441.62	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=0.58;MQ=60.00;MQ0=0;OQ=1084.42;QD=16.19;SB=-452.94	GT:AD:DP:GL:GQ	0/1:35,32:67:-131.91,-20.18,-129.56:99
-chr1	4738908	rs381304	A	G	65.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=87;Dels=0.00;HRun=2;HaplotypeScore=2.37;MQ=58.77;MQ0=0;OQ=1458.03;QD=16.76;SB=-529.55	GT:AD:DP:GL:GQ	0/1:36,51:84:-174.40,-25.31,-140.93:99
-chr1	4739028	rs392984	T	C	105.21	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=5.08;MQ=58.80;MQ0=0;OQ=588.16;QD=10.14;SB=-181.39	GT:AD:DP:GL:GQ	0/1:30,28:53:-78.07,-15.97,-115.29:99
-chr1	4739512	rs2802719	A	G	384.48	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.81;MQ0=0;OQ=757.23;QD=14.85;SB=-244.45	GT:AD:DP:GL:GQ	0/1:23,28:48:-93.47,-14.47,-78.98:99
-chr1	4739710	rs2802718	G	C	11.18	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=3;HaplotypeScore=0.83;MQ=56.67;MQ0=0;OQ=1199.49;QD=18.74;SB=-370.48	GT:AD:DP:GL:GQ	0/1:31,33:60:-141.32,-18.09,-113.09:99
-chr1	4740018	rs7544523	T	C	161.93	PASS	AC=1;AF=0.50;AN=2;DB;DP=36;Dels=0.00;HRun=0;HaplotypeScore=2.09;MQ=58.16;MQ0=0;OQ=429.98;QD=11.94;SB=-175.51	GT:AD:DP:GL:GQ	0/1:18,18:35:-56.83,-10.55,-68.38:99
-chr1	4744236	rs9426506	C	T	327.10	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=3.29;MQ=58.57;MQ0=0;OQ=856.13;QD=13.81;SB=-428.92	GT:AD:DP:GL:GQ	0/1:35,27:62:-107.57,-18.68,-125.85:99
-chr1	4744972	rs9426484	G	A	347.64	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=1.91;MQ=59.65;MQ0=0;OQ=799.48;QD=12.30;SB=-407.88	GT:AD:DP:GL:GQ	0/1:38,27:60:-101.32,-18.09,-111.41:99
-chr1	4745752	rs6426434	G	A	271.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=2.41;MQ=60.00;MQ0=0;OQ=1169.68;QD=19.49;SB=-538.80	GT:AD:DP:GL:GQ	0/1:24,36:57:-137.43,-17.18,-72.34:99
-chr1	4747705	rs4654460	G	A	332.93	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=755.91;QD=18.90;SB=-379.91	GT:AD:DP:GL:GQ	0/1:17,23:38:-90.34,-11.46,-46.09:99
-chr1	4748668	rs12133924	A	G	455.19	PASS	AC=1;AF=0.50;AN=2;DB;DP=78;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=60.00;MQ0=0;OQ=1019.13;QD=13.07;SB=-468.04	GT:AD:DP:GL:GQ	0/1:42,36:77:-128.39,-23.20,-162.75:99
-chr1	4748969	rs6701069	A	G	376.11	PASS	AC=1;AF=0.50;AN=2;DB;DP=81;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=59.72;MQ0=0;OQ=1003.27;QD=12.39;SB=-469.20	GT:AD:DP:GL:GQ	0/1:46,35:80:-127.71,-24.10,-182.44:99
-chr1	4749244	rs2235438	T	C	581.54	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.73;MQ0=0;OQ=891.88;QD=13.12;SB=-467.00	GT:AD:DP:GL:GQ	0/1:32,36:65:-112.06,-19.59,-124.79:99
-chr1	4750683	rs909757	T	C	410.80	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=58.22;MQ0=0;OQ=683.00;QD=11.78;SB=-347.56	GT:AD:DP:GL:GQ	0/1:31,27:55:-88.15,-16.57,-119.32:99
-chr1	4751405	rs17345239	T	G	179.05	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=2;HaplotypeScore=0.89;MQ=60.00;MQ0=0;OQ=774.24;QD=13.12;SB=-344.85	GT:AD:DP:GL:GQ	0/1:30,29:56:-97.57,-16.87,-106.85:99
-chr1	4753272	rs742246	A	C	355.98	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=617.26;QD=14.03;SB=-196.34	GT:AD:DP:GL:GQ	0/1:21,23:43:-77.96,-12.95,-77.17:99
-chr1	4753548	rs932350	T	C	408.09	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=59.22;MQ0=0;OQ=924.37;QD=14.22;SB=-295.30	GT:AD:DP:GL:GQ	0/1:29,36:64:-115.01,-19.29,-116.32:99
-chr1	4753607	rs12082538	G	C	138.47	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=3.84;MQ=60.48;MQ0=0;OQ=606.35;QD=13.47;SB=-132.52	GT:AD:DP:GL:GQ	0/1:25,20:43:-76.88,-12.96,-107.57:99
-chr1	4753770	rs7519688	C	T	2.09	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=3;HaplotypeScore=5.33;MQ=59.09;MQ0=0;OQ=802.41;QD=15.73;SB=-282.79	GT:AD:DP:GL:GQ	0/1:25,26:48:-97.99,-14.47,-73.03:99
-chr1	4755384	rs727906	C	T	371.77	PASS	AC=1;AF=0.50;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=1.67;MQ=60.00;MQ0=0;OQ=954.50;QD=12.40;SB=-422.82	GT:AD:DP:GL:GQ	0/1:47,30:76:-121.64,-22.91,-153.23:99
-chr1	4756029	rs2411946	T	A	426.26	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=59.59;MQ0=0;OQ=610.43;QD=13.57;SB=-308.69	GT:AD:DP:GL:GQ	0/1:23,22:44:-77.58,-13.26,-87.22:99
-chr1	4756791	rs760816	A	G	307.58	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=2.08;MQ=60.00;MQ0=0;OQ=644.43;QD=11.51;SB=-270.35	GT:AD:DP:GL:GQ	0/1:29,27:54:-84.00,-16.27,-113.95:99
-chr1	4758251	.	A	G	4.99	PASS	AC=1;AF=0.50;AN=2;DP=74;Dels=0.00;HRun=3;HaplotypeScore=0.95;MQ=59.34;MQ0=1;OQ=796.90;QD=10.77;SB=-383.18	GT:AD:DP:GL:GQ	0/1:42,32:64:-102.26,-19.28,-139.02:99
-chr1	4758268	rs4654606	T	G	84.96	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=1;HaplotypeScore=4.06;MQ=59.35;MQ0=0;OQ=681.65;QD=10.65;SB=-311.85	GT:AD:DP:GL:GQ	0/1:38,26:61:-89.83,-18.38,-124.54:99
-chr1	4759471	rs2142949	C	T	488.93	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.68;MQ0=0;OQ=986.38;QD=17.01;SB=-326.41	GT:AD:DP:GL:GQ	0/1:27,31:57:-119.09,-17.17,-96.06:99
-chr1	4761020	rs4654607	C	T	187.79	PASS	AC=1;AF=0.50;AN=2;DB;DP=79;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=59.53;MQ0=0;OQ=1317.32;QD=16.67;SB=-650.17	GT:AD:DP:GL:GQ	0/1:40,39:77:-158.21,-23.19,-137.71:99
-chr1	4763236	rs2064168	C	T	278.30	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=1;HaplotypeScore=0.92;MQ=60.00;MQ0=0;OQ=1185.65;QD=19.12;SB=-513.73	GT:AD:DP:GL:GQ	0/1:25,37:60:-139.92,-18.08,-90.33:99
-chr1	4763773	rs760817	T	C	455.12	PASS	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=0.94;MQ=59.11;MQ0=0;OQ=932.67;QD=12.78;SB=-440.55	GT:AD:DP:GL:GQ	0/1:40,33:73:-118.54,-21.99,-163.26:99
-chr1	4764845	rs10915606	A	G	585.97	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1075.05;QD=14.15;SB=-528.93	GT:AD:DP:GL:GQ	0/1:37,39:74:-133.08,-22.29,-148.56:99
-chr1	4765718	rs10429868	G	A	452.05	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=0.92;MQ=60.00;MQ0=0;OQ=1155.78;QD=15.62;SB=-602.60	GT:AD:DP:GL:GQ	0/1:39,35:74:-141.15,-22.29,-141.78:99
-chr1	4766001	rs12022466	T	A	597.92	PASS	AC=1;AF=0.50;AN=2;DB;DP=79;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1259.06;QD=15.94;SB=-558.66	GT:AD:DP:GL:GQ	0/1:39,40:79:-152.98,-23.79,-151.51:99
-chr1	4766045	.	G	A	13.96	PASS	AC=1;AF=0.50;AN=2;DP=83;Dels=0.00;HRun=2;HaplotypeScore=0.47;MQ=60.00;MQ0=0;OQ=1207.52;QD=14.55;SB=-582.08	GT:AD:DP:GL:GQ	0/1:47,36:81:-148.43,-24.40,-164.42:99
-chr1	4766280	rs12752806	G	T	477.99	PASS	AC=1;AF=0.50;AN=2;DB;DP=83;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=59.50;MQ0=0;OQ=1250.24;QD=15.06;SB=-480.84	GT:AD:DP:GL:GQ	0/1:42,41:81:-152.70,-24.39,-146.62:99
-chr1	4767409	rs7534770	A	T	437.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.68;MQ0=0;OQ=1042.20;QD=14.28;SB=-531.39	GT:AD:DP:GL:GQ	0/1:39,34:72:-129.19,-21.69,-145.29:99
-chr1	4767544	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=64;Dels=0.00;HRun=6;HaplotypeScore=47.32;MQ=56.17;MQ0=2;OQ=190.67;QD=2.98;SB=86.31	GT:AD:DP:GL:GQ	0/1:48,16:57:-39.52,-17.17,-173.24:99
-chr1	4769118	rs10915610	A	C	208.85	PASS	AC=1;AF=0.50;AN=2;DB;DP=78;Dels=0.00;HRun=0;HaplotypeScore=4.78;MQ=58.87;MQ0=0;OQ=1164.63;QD=14.93;SB=-551.67	GT:AD:DP:GL:GQ	0/1:37,39:77:-145.10,-25.36,-142.76:99
-chr1	4770972	.	C	A	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=59;Dels=0.00;HRun=2;HaplotypeScore=8.28;MQ=56.35;MQ0=0;OQ=111.37;QD=1.89;SB=65.23	GT:AD:DP:GL:GQ	0/1:35,24:40:-26.47,-12.05,-113.84:99
-chr1	4771531	rs1118009	A	G	323.35	PASS	AC=1;AF=0.50;AN=2;DB;DP=87;Dels=0.00;HRun=1;HaplotypeScore=1.82;MQ=56.74;MQ0=0;OQ=1333.25;QD=15.32;SB=-605.42	GT:AD:DP:GL:GQ	0/1:38,49:86:-162.53,-25.92,-151.96:99
-chr1	4771617	rs1118010	C	T	407.70	PASS	AC=1;AF=0.50;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=60.00;MQ0=0;OQ=1431.00;QD=18.58;SB=-550.33	GT:AD:DP:GL:GQ	0/1:34,43:77:-169.58,-23.20,-123.43:99
-chr1	4772431	rs10799262	G	A	68.65	PASS	AC=1;AF=0.50;AN=2;DB;DP=78;Dels=0.00;HRun=2;HaplotypeScore=0.32;MQ=59.76;MQ0=0;OQ=1610.76;QD=20.65;SB=-755.30	GT:AD:DP:GL:GQ	0/1:32,46:78:-187.86,-23.50,-115.14:99
-chr1	4772511	rs10915611	C	T	585.75	PASS	AC=1;AF=0.50;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.73;MQ0=0;OQ=1219.72;QD=17.42;SB=-547.54	GT:AD:DP:GL:GQ	0/1:34,36:70:-146.34,-21.08,-121.82:99
-chr1	4772916	rs10915612	A	G	195.17	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=2;HaplotypeScore=0.58;MQ=58.68;MQ0=0;OQ=1058.43;QD=15.80;SB=-539.98	GT:AD:DP:GL:GQ	0/1:30,37:67:-129.31,-20.19,-122.36:99
-chr1	4773270	rs7540367	G	A	242.80	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=59.44;MQ0=0;OQ=792.22;QD=13.66;SB=-213.92	GT:AD:DP:GL:GQ	0/1:33,25:57:-99.68,-17.18,-105.56:99
-chr1	4773658	.	G	A	112.25	PASS	AC=1;AF=0.50;AN=2;DP=56;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=58.50;MQ0=0;OQ=985.30;QD=17.59;SB=-495.06	GT:AD:DP:GL:GQ	0/1:26,30:55:-118.38,-16.57,-94.83:99
-chr1	4773754	rs12120205	T	A	372.54	PASS	AC=1;AF=0.50;AN=2;DB;DP=98;Dels=0.00;HRun=1;HaplotypeScore=0.73;MQ=60.00;MQ0=0;OQ=1585.82;QD=16.18;SB=-556.42	GT:AD:DP:GL:GQ	0/1:49,49:98:-191.38,-29.51,-188.67:99
-chr1	4774287	rs10799263	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=7;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1045.47;QD=15.84;SB=-449.52	GT:AD:DP:GL:GQ	0/1:30,36:65:-127.41,-19.58,-109.32:99
-chr1	4774365	rs10915613	G	A	361.24	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=1;HaplotypeScore=1.00;MQ=60.00;MQ0=0;OQ=1223.17;QD=16.31;SB=-630.64	GT:AD:DP:GL:GQ	0/1:38,37:73:-147.61,-22.01,-118.37:99
-chr1	4776755	rs12145180	C	G	356.13	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=2.24;MQ=59.64;MQ0=0;OQ=975.57;QD=15.24;SB=-415.28	GT:AD:DP:GL:GQ	0/1:32,32:62:-119.54,-18.70,-139.99:99
-chr1	4776903	rs10915615	C	A	330.11	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=0;HaplotypeScore=1.15;MQ=59.69;MQ0=0;OQ=909.18;QD=12.12;SB=-404.10	GT:AD:DP:GL:GQ	0/1:43,32:72:-115.90,-21.70,-128.82:99
-chr1	4777460	rs12118812	T	G	167.49	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=59.73;MQ0=0;OQ=842.15;QD=11.86;SB=-431.75	GT:AD:DP:GL:GQ	0/1:41,30:70:-108.58,-21.08,-144.58:99
-chr1	4777525	rs12118818	T	G	101.66	PASS	AC=1;AF=0.50;AN=2;DB;DP=69;Dels=0.00;HRun=2;HaplotypeScore=1.33;MQ=59.72;MQ0=0;OQ=940.16;QD=13.63;SB=-473.22	GT:AD:DP:GL:GQ	0/1:36,33:67:-117.48,-20.18,-125.31:99
-chr1	4777535	rs12143219	G	T	70.17	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=4;HaplotypeScore=0.27;MQ=60.00;MQ0=0;OQ=1005.40;QD=15.47;SB=-447.46	GT:AD:DP:GL:GQ	0/1:32,33:65:-123.40,-19.58,-114.32:99
-chr1	4778731	rs1120120	C	T	347.86	PASS	AC=1;AF=0.50;AN=2;DB;DP=85;Dels=0.00;HRun=1;HaplotypeScore=1.94;MQ=59.78;MQ0=0;OQ=1277.01;QD=15.02;SB=-471.94	GT:AD:DP:GL:GQ	0/1:47,38:84:-156.28,-25.30,-171.76:99
-chr1	4780340	rs10915616	C	T	196.28	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=881.43;QD=16.95;SB=-113.96	GT:AD:DP:GL:GQ	0/1:26,26:52:-107.09,-15.66,-92.07:99
-chr1	4780435	rs12121890	T	C	347.71	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=1;HaplotypeScore=0.79;MQ=59.73;MQ0=0;OQ=1105.50;QD=16.26;SB=-426.60	GT:AD:DP:GL:GQ	0/1:30,38:67:-134.02,-20.18,-117.11:99
-chr1	4781127	rs12122126	T	C	314.12	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=1;HaplotypeScore=0.58;MQ=58.69;MQ0=0;OQ=674.99;QD=13.50;SB=-298.62	GT:AD:DP:GL:GQ	0/1:26,24:49:-85.54,-14.76,-106.72:99
-chr1	4781899	rs12117810	G	A	242.85	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=1;HaplotypeScore=0.32;MQ=58.88;MQ0=0;OQ=1031.36;QD=17.78;SB=-437.45	GT:AD:DP:GL:GQ	0/1:28,30:56:-123.30,-16.88,-83.86:99
-chr1	4782182	rs10915619	A	T	438.63	PASS	AC=1;AF=0.50;AN=2;DB;DP=81;Dels=0.00;HRun=0;HaplotypeScore=0.63;MQ=58.65;MQ0=0;OQ=1009.97;QD=12.47;SB=-431.43	GT:AD:DP:GL:GQ	0/1:47,34:80:-128.38,-24.10,-172.98:99
-chr1	4782516	rs1883345	G	A	146.28	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=2;HaplotypeScore=0.58;MQ=59.45;MQ0=0;OQ=906.47;QD=11.93;SB=-338.27	GT:AD:DP:GL:GQ	0/1:44,32:71:-115.32,-21.39,-152.63:99
-chr1	4782885	rs1883346	T	A	397.96	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=1.70;MQ=58.75;MQ0=0;OQ=1064.02;QD=14.99;SB=-456.50	GT:AD:DP:GL:GQ	0/1:37,34:70:-130.77,-21.08,-141.61:99
-chr1	4782955	rs1883347	T	C	221.56	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=4.24;MQ=59.50;MQ0=0;OQ=856.09;QD=11.57;SB=-450.96	GT:AD:DP:GL:GQ	0/1:43,30:73:-110.88,-21.99,-176.74:99
-chr1	4783491	rs4654610	T	C	960.35	Indel	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=11.46;MQ=47.61;MQ0=0;QD=14.12;SB=-407.25	GT:AD:DP:GL:GQ	0/1:31,37:63:-118.30,-18.98,-112.03:99
-chr1	4793106	rs61766789	G	A	240.39	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=2.34;MQ=58.98;MQ0=1;OQ=1230.74;QD=17.33;SB=-554.58	GT:AD:DP:GL:GQ	0/1:35,36:69:-147.14,-20.78,-120.71:99
-chr1	4794663	.	C	T	274.23	PASS	AC=1;AF=0.50;AN=2;DP=66;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.43;MQ0=0;OQ=833.44;QD=12.63;SB=-440.37	GT:AD:DP:GL:GQ	0/1:40,26:66:-106.51,-19.88,-144.25:99
-chr1	4794952	rs12074481	C	A	271.91	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=2.00;MQ=57.82;MQ0=0;OQ=1066.30;QD=15.02;SB=-452.97	GT:AD:DP:GL:GQ	0/1:33,38:69:-130.70,-20.79,-110.83:99
-chr1	4798693	rs7522386	A	G	341.25	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=1;HaplotypeScore=1.98;MQ=58.39;MQ0=0;OQ=1056.56;QD=15.77;SB=-495.12	GT:AD:DP:GL:GQ	0/1:31,36:65:-128.52,-19.58,-122.92:99
-chr1	4801597	rs7527319	C	A	582.07	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.66;MQ0=0;OQ=923.07;QD=13.78;SB=-344.17	GT:AD:DP:GL:GQ	0/1:34,33:66:-115.47,-19.88,-121.89:99
-chr1	4806096	rs7547779	T	C	457.63	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=58.53;MQ0=0;OQ=897.02;QD=13.39;SB=-364.21	GT:AD:DP:GL:GQ	0/1:34,33:65:-112.57,-19.58,-135.93:99
-chr1	4807563	rs11582327	T	C	467.91	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=59.73;MQ0=0;OQ=911.00;QD=13.40;SB=-422.86	GT:AD:DP:GL:GQ	0/1:32,36:67:-114.58,-20.19,-127.73:99
-chr1	4807672	rs7536960	T	C	326.99	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=2.00;MQ=60.00;MQ0=0;OQ=720.71;QD=12.64;SB=-286.29	GT:AD:DP:GL:GQ	0/1:27,30:55:-91.93,-16.58,-105.91:99
-chr1	4808516	rs6669130	G	A	323.43	PASS	AC=1;AF=0.50;AN=2;DB;DP=87;Dels=0.00;HRun=0;HaplotypeScore=1.64;MQ=59.98;MQ0=0;OQ=1529.46;QD=17.58;SB=-724.76	GT:AD:DP:GL:GQ	0/1:42,45:83:-181.23,-25.00,-146.35:99
-chr1	4808719	.	T	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=64;Dels=0.00;HRun=2;HaplotypeScore=4.69;MQ=58.91;MQ0=0;OQ=57.76;QD=0.90;SB=95.29	GT:AD:DP:GL:GQ	0/1:40,24:48:-23.52,-14.46,-139.84:90.60
-chr1	4808761	rs6683849	A	G	156.55	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=59.59;MQ0=0;OQ=737.58;QD=13.17;SB=-272.54	GT:AD:DP:GL:GQ	0/1:30,26:56:-93.91,-16.87,-119.65:99
-chr1	4808953	rs12725011	G	A	96.81	PASS	AC=1;AF=0.50;AN=2;DB;DP=70;Dels=0.00;HRun=3;HaplotypeScore=1.25;MQ=59.67;MQ0=0;OQ=1362.18;QD=19.46;SB=-645.68	GT:AD:DP:GL:GQ	0/1:29,41:69:-160.29,-20.79,-101.64:99
-chr1	4808976	rs11582462	A	G	74	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=2;HaplotypeScore=3.61;MQ=59.32;MQ0=0;OQ=923.86;QD=13.59;SB=-481.59	GT:AD:DP:GL:GQ	0/1:33,35:64:-114.94,-19.28,-135.51:99
-chr1	4809567	rs11582936	A	C	302.66	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=1;HaplotypeScore=1.32;MQ=59.67;MQ0=0;OQ=605.80;QD=10.63;SB=-281.94	GT:AD:DP:GL:GQ	0/1:26,30:52:-79.53,-15.67,-97.13:99
-chr1	4809668	rs7543326	T	C	173.23	PASS	AC=1;AF=0.50;AN=2;DB;DP=79;Dels=0.00;HRun=2;HaplotypeScore=1.68;MQ=59.71;MQ0=0;OQ=1092.10;QD=13.82;SB=-474.60	GT:AD:DP:GL:GQ	0/1:37,42:79:-136.31,-23.81,-148.02:99
-chr1	4811032	rs6693945	T	C	292.95	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=1;HaplotypeScore=1.95;MQ=59.41;MQ0=0;OQ=916.53;QD=14.55;SB=-321.25	GT:AD:DP:GL:GQ	0/1:30,31:62:-117.13,-22.19,-125.33:99
-chr1	4811983	rs2209167	G	A	414.43	PASS	AC=1;AF=0.50;AN=2;DB;DP=78;Dels=0.00;HRun=0;HaplotypeScore=0.33;MQ=59.70;MQ0=0;OQ=1021.76;QD=13.10;SB=-414.40	GT:AD:DP:GL:GQ	0/1:45,33:75:-128.08,-22.62,-135.03:99
-chr1	4813003	rs6426439	C	T	133.12	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=1;HaplotypeScore=3.37;MQ=59.50;MQ0=0;OQ=1367.37;QD=18.48;SB=-705.27	GT:AD:DP:GL:GQ	0/1:34,40:72:-161.71,-21.69,-122.06:99
-chr1	4813419	rs1886113	T	G	294.59	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=60.00;MQ0=0;OQ=612.34;QD=12.76;SB=-248.40	GT:AD:DP:GL:GQ	0/1:25,23:47:-78.67,-14.15,-95.57:99
-chr1	4813733	rs10915628	T	C	146.41	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=2;HaplotypeScore=0.97;MQ=60.00;MQ0=0;OQ=870.49;QD=12.26;SB=-270.52	GT:AD:DP:GL:GQ	0/1:41,30:71:-111.72,-21.39,-167.00:99
-chr1	4813800	rs10915631	C	T	467.08	PASS	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=1.14;MQ=60.00;MQ0=0;OQ=1109.44;QD=15.20;SB=-509.01	GT:AD:DP:GL:GQ	0/1:39,34:73:-136.22,-21.99,-139.36:99
-chr1	4813826	rs10799266	A	G	440.81	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=0.97;MQ=60.00;MQ0=0;OQ=1025.69;QD=13.50;SB=-528.56	GT:AD:DP:GL:GQ	0/1:40,36:76:-128.75,-22.90,-159.57:99
-chr1	4814770	rs6426440	C	A	361.03	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=1.86;MQ=60.00;MQ0=0;OQ=964.05;QD=12.68;SB=-378.13	GT:AD:DP:GL:GQ	0/1:42,34:76:-122.59,-22.91,-131.06:99
-chr1	4814802	rs6426441	A	T	191.96	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=5.04;MQ=59.57;MQ0=0;OQ=882.35;QD=13.17;SB=-416.80	GT:AD:DP:GL:GQ	0/1:37,30:65:-111.10,-19.58,-134.21:99
-chr1	4815146	rs2411949	G	T	0.34	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=15.15;MQ=59.31;MQ0=0;OQ=1233.12;QD=16.23;SB=-582.79	GT:AD:DP:GL:GQ	0/1:35,40:72:-148.29,-21.69,-101.37:99
-chr1	4815330	rs6658680	A	G	154.72	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=0.33;MQ=57.17;MQ0=0;OQ=454.29;QD=9.09;SB=-126.50	GT:AD:DP:GL:GQ	0/1:29,21:47:-62.88,-14.17,-108.85:99
-chr1	4815340	rs6692964	G	T	169.92	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=1;HaplotypeScore=0.65;MQ=56.50;MQ0=0;OQ=607.11;QD=11.90;SB=-203.41	GT:AD:DP:GL:GQ	0/1:29,22:51:-79.35,-15.36,-103.70:99
-chr1	4815344	rs6692966	G	A	446.58	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=56.57;MQ0=0;OQ=669.90;QD=12.88;SB=-297.81	GT:AD:DP:GL:GQ	0/1:28,24:50:-85.35,-15.08,-90.67:99
-chr1	4815634	rs2147028	C	A	82.12	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=2;HaplotypeScore=1.79;MQ=59.43;MQ0=0;OQ=1001.39;QD=15.41;SB=-277.32	GT:AD:DP:GL:GQ	0/1:32,33:62:-122.10,-18.67,-102.09:99
-chr1	4815904	rs2209166	G	A	117.08	PASS	AC=1;AF=0.50;AN=2;DB;DP=79;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=60.00;MQ0=0;OQ=1754.50;QD=22.21;SB=-892.01	GT:AD:DP:GL:GQ	0/1:28,51:79:-202.53,-23.80,-99.82:99
-chr1	4816064	rs6693706	G	T	446.40	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=59.64;MQ0=0;OQ=733.52;QD=14.11;SB=-350.37	GT:AD:DP:GL:GQ	0/1:26,26:52:-92.30,-15.67,-93.55:99
-chr1	4816465	rs1535736	C	T	112.29	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=2;HaplotypeScore=0.47;MQ=60.00;MQ0=0;OQ=1112.33;QD=17.38;SB=-338.80	GT:AD:DP:GL:GQ	0/1:31,33:64:-133.80,-19.28,-110.54:99
-chr1	4816766	rs1535734	A	G	420.29	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.60;MQ0=0;OQ=908.64;QD=12.62;SB=-359.52	GT:AD:DP:GL:GQ	0/1:39,33:70:-115.23,-21.09,-156.36:99
-chr1	4817101	rs6693352	A	G	227.39	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=3.08;MQ=59.68;MQ0=0;OQ=949.71;QD=13.19;SB=-443.55	GT:AD:DP:GL:GQ	0/1:38,34:70:-119.35,-21.09,-147.05:99
-chr1	4817128	rs2898848	G	A	216.99	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=59.42;MQ0=0;OQ=1195.65;QD=16.61;SB=-558.57	GT:AD:DP:GL:GQ	0/1:36,36:72:-144.54,-21.69,-131.83:99
-chr1	4817320	rs2209165	C	T	145.82	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=1.94;MQ=59.39;MQ0=0;OQ=1415.52;QD=20.82;SB=-731.10	GT:AD:DP:GL:GQ	0/1:27,41:68:-165.32,-20.49,-90.68:99
-chr1	4817405	rs2209164	A	G	118.02	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=1;HaplotypeScore=1.00;MQ=59.63;MQ0=0;OQ=527.84;QD=8.51;SB=-187.44	GT:AD:DP:GL:GQ	0/1:40,22:60:-74.14,-18.07,-157.62:99
-chr1	4817514	rs2209163	G	A	238.41	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=59.72;MQ0=0;OQ=933.49;QD=13.93;SB=-217.50	GT:AD:DP:GL:GQ	0/1:38,29:66:-116.53,-19.90,-117.09:99
-chr1	4817749	rs3938469	A	G	107.60	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=486.41;QD=8.11;SB=-117.18	GT:AD:DP:GL:GQ	0/1:41,19:60:-70.00,-18.07,-168.54:99
-chr1	4817969	rs2093769	G	A	229.16	PASS	AC=1;AF=0.50;AN=2;DB;DP=82;Dels=0.00;HRun=0;HaplotypeScore=3.14;MQ=59.44;MQ0=0;OQ=1190.09;QD=14.51;SB=-381.33	GT:AD:DP:GL:GQ	0/1:44,38:79:-146.09,-23.80,-153.77:99
-chr1	4818044	rs2093768	A	G	314.22	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=59.33;MQ0=0;OQ=811.36;QD=13.09;SB=-280.55	GT:AD:DP:GL:GQ	0/1:29,33:61:-102.81,-18.39,-114.06:99
-chr1	4818509	rs10159142	G	A	308.93	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=1.55;MQ=58.95;MQ0=0;OQ=899.59;QD=15.51;SB=-448.42	GT:AD:DP:GL:GQ	0/1:30,28:58:-110.72,-17.47,-107.08:99
-chr1	4818666	rs10799268	T	C	278.30	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=1;HaplotypeScore=1.43;MQ=59.42;MQ0=0;OQ=887.47;QD=13.87;SB=-404.24	GT:AD:DP:GL:GQ	0/1:33,31:62:-110.70,-18.67,-130.15:99
-chr1	4818872	rs10753387	T	C	88.47	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=2;HaplotypeScore=0.63;MQ=55.54;MQ0=0;OQ=718.25;QD=13.30;SB=-324.13	GT:AD:DP:GL:GQ	0/1:25,29:53:-91.08,-15.98,-99.45:99
-chr1	4819100	rs10753388	G	A	0.17	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=0;HaplotypeScore=17.64;MQ=55.33;MQ0=0;OQ=1324.27;QD=17.66;SB=-679.33	GT:AD:DP:GL:GQ	0/1:36,39:70:-156.80,-21.09,-111.06:99
-chr1	4819163	rs10753389	A	G	70.61	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=2;HaplotypeScore=1.00;MQ=49.63;MQ0=1;OQ=764.05;QD=12.53;SB=-256.89	GT:AD:DP:GL:GQ	0/1:33,28:59:-97.46,-17.77,-133.52:99
-chr1	4819348	rs10915632	G	A	8.54	PASS	AC=1;AF=0.50;AN=2;DB;DP=89;Dels=0.00;HRun=2;HaplotypeScore=6.46;MQ=58.48;MQ0=0;OQ=1415.77;QD=15.91;SB=-658.28	GT:AD:DP:GL:GQ	0/1:47,42:87:-171.06,-26.20,-164.95:99
-chr1	4819622	rs10799269	C	G	347.45	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=1.16;MQ=59.05;MQ0=0;OQ=934.79;QD=12.98;SB=-429.59	GT:AD:DP:GL:GQ	0/1:41,31:69:-117.56,-20.80,-181.53:99
-chr1	4819655	rs10799270	G	A	353.44	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=58.56;MQ0=0;OQ=1064.88;QD=14.39;SB=-436.38	GT:AD:DP:GL:GQ	0/1:41,33:74:-132.06,-22.29,-148.73:99
-chr1	4819737	rs2147027	T	C	200.63	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=3.22;MQ=55.94;MQ0=0;OQ=778.52;QD=14.69;SB=-321.29	GT:AD:DP:GL:GQ	0/1:25,28:51:-96.50,-15.36,-95.69:99
-chr1	4820060	rs2181701	T	C	0.91	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=11.39;MQ=52.25;MQ0=0;OQ=485.51;QD=9.52;SB=-244.48	GT:AD:DP:GL:GQ	0/1:29,22:49:-66.61,-14.77,-110.48:99
-chr1	4820091	rs4265399	G	A	243.46	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=50.14;MQ0=0;OQ=512.92;QD=10.06;SB=-45.99	GT:AD:DP:GL:GQ	0/1:32,19:48:-69.05,-14.48,-96.83:99
-chr1	4820096	rs2181700	T	G	75.96	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=50.99;MQ0=0;OQ=433.90;QD=8.34;SB=-40.01	GT:AD:DP:GL:GQ	0/1:33,19:51:-62.03,-15.36,-122.01:99
-chr1	4820154	rs9725470	C	T	281.54	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=47.90;MQ0=2;OQ=495.62;QD=9.01;SB=-102.52	GT:AD:DP:GL:GQ	0/1:37,18:51:-68.22,-15.38,-108.69:99
-chr1	4820216	rs9726479	T	G	79.72	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=2;HaplotypeScore=1.15;MQ=45.62;MQ0=0;OQ=697.41;QD=12.24;SB=-299.44	GT:AD:DP:GL:GQ	0/1:30,27:55:-89.59,-16.56,-110.14:99
-chr1	4820227	rs9725796	C	A	40.52	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=3;HaplotypeScore=0.33;MQ=47.59;MQ0=0;OQ=717.90;QD=11.58;SB=-300.16	GT:AD:DP:GL:GQ	0/1:34,28:59:-92.84,-17.77,-118.69:99
-chr1	4820388	rs9726805	T	C	201.46	PASS	AC=1;AF=0.50;AN=2;DB;DP=81;Dels=0.00;HRun=0;HaplotypeScore=2.98;MQ=51.02;MQ0=0;OQ=985.45;QD=12.17;SB=-457.03	GT:AD:DP:GL:GQ	0/1:42,39:76:-124.72,-22.89,-168.04:99
-chr1	4820748	.	A	G	1.13	PASS	AC=1;AF=0.50;AN=2;DP=50;Dels=0.00;HRun=0;HaplotypeScore=3.54;MQ=35.53;MQ0=6;OQ=268.28;QD=5.37;SB=-1.83	GT:AD:DP:GL:GQ	0/1:28,21:34:-40.35,-10.24,-88.65:99
-chr1	4820850	.	T	C	0.21	PASS	AC=1;AF=0.50;AN=2;DP=27;Dels=0.00;HRun=0;HaplotypeScore=3.41;MQ=43.66;MQ0=1;OQ=84.14;QD=3.12;SB=-53.32	GT:AD:DP:GL:GQ	0/1:14,12:16:-16.52,-4.83,-39.77:99
-chr1	4820858	.	G	A	0.93	PASS	AC=1;AF=0.50;AN=2;DP=29;Dels=0.00;HRun=0;HaplotypeScore=4.23;MQ=41.11;MQ0=1;OQ=153.45;QD=5.29;SB=-40.65	GT:AD:DP:GL:GQ	0/1:13,15:17:-23.75,-5.12,-38.01:99
-chr1	4820952	rs61766808	C	T	152.82	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=1.81;MQ=38.70;MQ0=1;OQ=409.25;QD=9.09;SB=-225.93	GT:AD:DP:GL:GQ	0/1:30,15:42:-56.86,-12.66,-95.36:99
-chr1	4821240	rs9726227	C	T	470.14	PASS	AC=1;AF=0.50;AN=2;DB;DP=69;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=37.63;MQ0=1;OQ=887.90;QD=12.87;SB=-408.68	GT:AD:DP:GL:GQ	0/1:36,33:62:-110.75,-18.67,-130.57:99
-chr1	4821376	rs9726241	C	A	8.68	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=1;HaplotypeScore=1.00;MQ=39.07;MQ0=5;OQ=305.92;QD=4.86;SB=-1.55	GT:AD:DP:GL:GQ	0/1:37,26:47:-48.04,-14.16,-121.88:99
-chr1	4821609	rs9726885	A	C	47.17	PASS	AC=1;AF=0.50;AN=2;DB;DP=79;Dels=0.00;HRun=0;HaplotypeScore=0.58;MQ=36.89;MQ0=14;OQ=448.17;QD=5.67;SB=-207.28	GT:AD:DP:GL:GQ	0/1:47,32:61:-66.47,-18.37,-159.23:99
-chr1	4821773	rs9726925	A	G	101.03	PASS	AC=1;AF=0.50;AN=2;DB;DP=92;Dels=0.00;HRun=0;HaplotypeScore=2.79;MQ=38.22;MQ0=2;OQ=859.75;QD=9.35;SB=-417.48	GT:AD:DP:GL:GQ	0/1:47,45:74:-111.55,-22.29,-173.37:99
-chr1	4821818	rs12135318	C	A	320.75	PASS	AC=1;AF=0.50;AN=2;DB;DP=91;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=44.85;MQ0=0;OQ=1111.50;QD=12.21;SB=-470.83	GT:AD:DP:GL:GQ	0/1:41,50:79:-138.22,-23.79,-149.34:99
-chr1	4821875	rs10915634	A	G	55.48	PASS	AC=1;AF=0.50;AN=2;DB;DP=86;Dels=0.00;HRun=1;HaplotypeScore=0.32;MQ=46.72;MQ0=5;OQ=657.16;QD=7.64;SB=-166.48	GT:AD:DP:GL:GQ	0/1:46,40:75:-91.61,-22.61,-188.45:99
-chr1	4822060	rs7411909	A	G	472.44	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=55.58;MQ0=0;OQ=844.08;QD=14.07;SB=-331.93	GT:AD:DP:GL:GQ	0/1:31,29:60:-105.77,-18.08,-125.13:99
-chr1	4822115	rs4617370	G	A	221.57	PASS	AC=1;AF=0.50;AN=2;DB;DP=81;Dels=0.00;HRun=0;HaplotypeScore=1.96;MQ=59.00;MQ0=0;OQ=1387.37;QD=17.13;SB=-675.38	GT:AD:DP:GL:GQ	0/1:40,41:81:-166.44,-24.42,-127.76:99
-chr1	4822681	rs6660173	C	T	0.10	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.01;HRun=3;HaplotypeScore=10.96;MQ=52.45;MQ0=0;OQ=1014.70;QD=13.71;SB=-426.92	GT:AD:DP:GL:GQ	0/1:42,31:73:-126.44,-21.69,-150.88:99
-chr1	4822687	rs6660177	C	A	163.11	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=0;HaplotypeScore=4.00;MQ=52.56;MQ0=0;OQ=900.97;QD=12.01;SB=-430.11	GT:AD:DP:GL:GQ	0/1:44,31:74:-115.67,-22.28,-156.45:99
-chr1	4822710	rs6668068	T	C	72.65	PASS	AC=1;AF=0.50;AN=2;DB;DP=77;Dels=0.00;HRun=1;HaplotypeScore=2.96;MQ=50.82;MQ0=0;OQ=906.69;QD=11.78;SB=-477.93	GT:AD:DP:GL:GQ	0/1:44,33:75:-116.54,-22.59,-176.01:99
-chr1	4822958	rs6665282	A	G	464.18	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=57.16;MQ0=0;OQ=785.44;QD=13.78;SB=-331.28	GT:AD:DP:GL:GQ	0/1:30,27:57:-99.00,-17.17,-122.67:99
-chr1	4823049	rs6665388	A	G	56.61	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=2;HaplotypeScore=2.47;MQ=55.61;MQ0=0;OQ=907.22;QD=12.60;SB=-445.14	GT:AD:DP:GL:GQ	0/1:36,36:67:-114.19,-20.18,-139.94:99
-chr1	4823137	rs12087020	A	G	358.36	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=0.83;MQ=54.38;MQ0=0;OQ=1125.73;QD=15.86;SB=-588.93	GT:AD:DP:GL:GQ	0/1:32,39:69:-136.64,-20.78,-130.19:99
-chr1	4823207	rs10915638	C	T	285.22	PASS	AC=1;AF=0.50;AN=2;DB;DP=84;Dels=0.00;HRun=1;HaplotypeScore=0.98;MQ=57.74;MQ0=0;OQ=1338.14;QD=15.93;SB=-487.03	GT:AD:DP:GL:GQ	0/1:44,40:82:-161.79,-24.70,-152.84:99
-chr1	4823247	rs10915639	C	T	70.93	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=3;HaplotypeScore=1.40;MQ=59.24;MQ0=0;OQ=1272.31;QD=17.19;SB=-602.12	GT:AD:DP:GL:GQ	0/1:37,37:73:-152.51,-22.00,-119.03:99
-chr1	4823334	rs10915640	G	T	485.36	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=56.40;MQ0=0;OQ=978.54;QD=13.05;SB=-397.99	GT:AD:DP:GL:GQ	0/1:40,35:71:-122.52,-21.38,-136.84:99
-chr1	4823422	rs10915641	G	A	453.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=81;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=45.14;MQ0=3;OQ=955.26;QD=11.79;SB=-332.42	GT:AD:DP:GL:GQ	0/1:46,35:73:-120.80,-21.99,-150.35:99
-chr1	4824006	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=60;Dels=0.03;HRun=20;HaplotypeScore=17.44;MQ=44.47;MQ0=0;OQ=216.45;QD=3.61;SB=56.16	GT:AD:DP:GL:GQ	0/1:34,24:43:-37.29,-12.36,-108.08:99
-chr1	4824255	rs6656943	G	A	241.34	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=0.82;MQ=48.13;MQ0=0;OQ=486.99;QD=9.37;SB=-207.48	GT:AD:DP:GL:GQ	0/1:29,22:45:-65.55,-13.57,-87.60:99
-chr1	4824523	rs6674586	T	A	163.54	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=48.28;MQ0=0;OQ=656.95;QD=12.17;SB=-109.40	GT:AD:DP:GL:GQ	0/1:27,27:47:-83.14,-14.16,-95.96:99
-chr1	4824573	rs6674680	T	C	13.56	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=2.68;MQ=52.32;MQ0=0;OQ=270.57;QD=5.11;SB=-156.88	GT:AD:DP:GL:GQ	0/1:35,18:46:-44.20,-13.86,-137.80:99
-chr1	4824574	.	G	A	7.24	PASS	AC=1;AF=0.50;AN=2;DP=53;Dels=0.00;HRun=0;HaplotypeScore=2.68;MQ=52.42;MQ0=0;OQ=361.86;QD=6.83;SB=-143.57	GT:AD:DP:GL:GQ	0/1:34,19:46:-53.32,-13.85,-117.68:99
-chr1	4824682	rs12135493	G	A	249.33	PASS	AC=1;AF=0.50;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=2.00;MQ=51.42;MQ0=1;OQ=988.12;QD=12.83;SB=-444.35	GT:AD:DP:GL:GQ	0/1:44,32:73:-124.08,-21.99,-153.59:99
-chr1	4824703	rs6671779	A	G	149.25	PASS	AC=1;AF=0.50;AN=2;DB;DP=82;Dels=0.00;HRun=0;HaplotypeScore=3.56;MQ=45.45;MQ0=6;OQ=857.95;QD=10.46;SB=-366.21	GT:AD:DP:GL:GQ	0/1:48,33:70:-110.16,-21.08,-158.61:99
-chr1	4824716	rs6674795	T	A	84.16	PASS	AC=1;AF=0.50;AN=2;DB;DP=85;Dels=0.00;HRun=0;HaplotypeScore=5.06;MQ=43.80;MQ0=7;OQ=985.67;QD=11.60;SB=-441.50	GT:AD:DP:GL:GQ	0/1:51,34:73:-123.84,-21.98,-157.76:99
-chr1	4824850	rs36062377	G	T	24.04	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=3;HaplotypeScore=2.62;MQ=51.81;MQ0=1;OQ=1235.06;QD=17.15;SB=-475.54	GT:AD:DP:GL:GQ	0/1:30,42:67:-146.97,-20.18,-98.26:99
-chr1	4825033	rs7529540	T	C	245.46	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=39.74;MQ0=8;OQ=558.43;QD=7.55;SB=-301.05	GT:AD:DP:GL:GQ	0/1:47,27:63:-78.11,-18.99,-158.23:99
-chr1	4825352	rs4559467	G	A	108.52	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=5.62;MQ=48.67;MQ0=0;OQ=560.80;QD=11.22;SB=-300.78	GT:AD:DP:GL:GQ	0/1:27,20:40:-71.42,-12.05,-75.01:99
-chr1	4825513	rs4638087	G	C	326.19	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.47;MQ0=0;OQ=1176.04;QD=19.60;SB=-421.03	GT:AD:DP:GL:GQ	0/1:27,33:59:-138.66,-17.78,-117.95:99
-chr1	4825553	rs4551566	C	G	30.76	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=1;HaplotypeScore=0.99;MQ=59.33;MQ0=0;OQ=1250.51;QD=22.33;SB=-448.38	GT:AD:DP:GL:GQ	0/1:22,34:55:-144.91,-16.57,-96.90:99
-chr1	4826034	rs7529926	A	G	223.14	PASS	AC=1;AF=0.50;AN=2;DB;DP=84;Dels=0.00;HRun=0;HaplotypeScore=2.45;MQ=57.60;MQ0=0;OQ=1139.50;QD=13.57;SB=-533.50	GT:AD:DP:GL:GQ	0/1:44,39:83:-142.23,-25.00,-178.33:99
-chr1	4826162	rs7525613	C	T	13.44	PASS	AC=1;AF=0.50;AN=2;DB;DP=92;Dels=0.00;HRun=2;HaplotypeScore=3.45;MQ=59.36;MQ0=1;OQ=993.15;QD=10.80;SB=-409.28	GT:AD:DP:GL:GQ	0/1:59,33:90:-129.72,-27.12,-195.16:99
-chr1	4826345	rs2104305	G	T	184.73	PASS	AC=1;AF=0.50;AN=2;DB;DP=40;Dels=0.00;HRun=1;HaplotypeScore=0.99;MQ=57.85;MQ0=1;OQ=505.67;QD=12.64;SB=-209.45	GT:AD:DP:GL:GQ	0/1:21,19:39:-65.60,-11.75,-75.98:99
-chr1	4826423	rs2093767	G	A	138.65	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=3.61;MQ=58.83;MQ0=0;OQ=815.33;QD=15.68;SB=-288.73	GT:AD:DP:GL:GQ	0/1:27,25:52:-100.48,-15.67,-95.85:99
-chr1	4826585	rs2093766	C	T	86.86	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=2;HaplotypeScore=0.58;MQ=59.52;MQ0=0;OQ=705.53;QD=13.07;SB=-332.40	GT:AD:DP:GL:GQ	0/1:31,23:54:-90.10,-16.27,-110.86:99
-chr1	4826810	rs10915643	T	G	203.85	PASS	AC=1;AF=0.50;AN=2;DB;DP=44;Dels=0.00;HRun=1;HaplotypeScore=0.63;MQ=57.12;MQ0=0;OQ=525.52;QD=11.94;SB=-258.86	GT:AD:DP:GL:GQ	0/1:23,21:42:-68.49,-12.65,-82.71:99
-chr1	4827586	rs55916988	A	T	25.36	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=4;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=889.58;QD=14.35;SB=-432.48	GT:AD:DP:GL:GQ	0/1:33,29:62:-110.92,-18.68,-123.75:99
-chr1	4827658	rs10915644	C	T	105.99	PASS	AC=1;AF=0.50;AN=2;DB;DP=104;Dels=0.00;HRun=0;HaplotypeScore=1.87;MQ=60.00;MQ0=0;OQ=1865.95;QD=17.94;SB=-912.01	GT:AD:DP:GL:GQ	0/1:46,58:101:-220.30,-30.43,-168.62:99
-chr1	4828047	rs10915645	G	T	162.71	PASS	AC=1;AF=0.50;AN=2;DB;DP=80;Dels=0.00;HRun=2;HaplotypeScore=0.73;MQ=59.35;MQ0=0;OQ=1117.38;QD=13.97;SB=-570.65	GT:AD:DP:GL:GQ	0/1:41,39:77:-138.21,-23.19,-142.58:99
-chr1	4828218	rs10915646	T	C	280.72	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=1;HaplotypeScore=1.03;MQ=59.65;MQ0=0;OQ=827.35;QD=15.32;SB=-429.21	GT:AD:DP:GL:GQ	0/1:26,28:54:-102.28,-16.26,-103.92:99
-chr1	4829521	rs7525315	A	G	34.89	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=2;HaplotypeScore=1.86;MQ=60.00;MQ0=0;OQ=437.24;QD=11.82;SB=-193.62	GT:AD:DP:GL:GQ	0/1:19,18:35:-57.55,-10.55,-75.26:99
-chr1	4829549	rs7511935	G	C	92.43	PASS	AC=1;AF=0.50;AN=2;DB;DP=37;Dels=0.00;HRun=1;HaplotypeScore=2.47;MQ=60.00;MQ0=0;OQ=512.56;QD=13.85;SB=-232.38	GT:AD:DP:GL:GQ	0/1:19,18:33:-64.49,-9.95,-73.26:99
-chr1	4829662	rs7512035	G	A	4.93	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=9.93;MQ=58.76;MQ0=0;OQ=838.03;QD=17.10;SB=-374.88	GT:AD:DP:GL:GQ	0/1:21,27:46:-104.45,-17.36,-74.24:99
-chr1	4830041	rs1886112	T	C	323.11	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=1;HaplotypeScore=0.65;MQ=58.39;MQ0=0;OQ=754.42;QD=11.79;SB=-313.28	GT:AD:DP:GL:GQ	0/1:35,29:61:-97.11,-18.38,-135.74:99
-chr1	4830111	rs2411950	A	G	299.57	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=2.97;MQ=59.44;MQ0=0;OQ=788.01;QD=11.76;SB=-302.20	GT:AD:DP:GL:GQ	0/1:34,33:66:-101.98,-19.90,-134.57:99
-chr1	4831214	rs11588518	A	G	386.42	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=1;HaplotypeScore=1.12;MQ=58.39;MQ0=0;OQ=816.62;QD=14.85;SB=-422.33	GT:AD:DP:GL:GQ	0/1:26,29:53:-100.91,-15.96,-102.18:99
-chr1	4832304	rs10915647	T	G	357.62	PASS	AC=1;AF=0.50;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=1.96;MQ=59.21;MQ0=0;OQ=992.87;QD=12.89;SB=-411.65	GT:AD:DP:GL:GQ	0/1:36,41:75:-125.17,-22.60,-131.25:99
-chr1	4833095	rs10489136	G	A	381.62	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.25;MQ0=0;OQ=597.16;QD=11.94;SB=-271.12	GT:AD:DP:GL:GQ	0/1:30,20:49:-77.76,-14.76,-108.40:99
-chr1	4833385	rs11809159	G	A	313.41	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=-0.06;MQ=59.57;MQ0=0;OQ=671.57;QD=12.44;SB=-350.34	GT:AD:DP:GL:GQ	0/1:33,21:52:-86.11,-15.67,-111.35:99
-chr1	4834568	rs12691490	G	A	57.53	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=2;HaplotypeScore=1.52;MQ=59.19;MQ0=0;OQ=1072.80;QD=14.30;SB=-179.14	GT:AD:DP:GL:GQ	0/1:41,34:74:-132.86,-22.29,-148.17:99
-chr1	4834712	rs11810903	C	T	299.28	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=1;HaplotypeScore=0.95;MQ=59.50;MQ0=0;OQ=847.25;QD=15.99;SB=-334.31	GT:AD:DP:GL:GQ	0/1:27,26:50:-103.07,-15.06,-90.22:99
-chr1	4835505	.	G	A	70.11	PASS	AC=1;AF=0.50;AN=2;DP=74;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=57.18;MQ0=2;OQ=1406.02;QD=19.00;SB=-566.58	GT:AD:DP:GL:GQ	0/1:33,41:71:-165.27,-21.39,-109.48:99
-chr1	4835574	rs60862815	A	G	389.11	PASS	AC=1;AF=0.50;AN=2;DB;DP=96;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=52.44;MQ0=0;OQ=1406.97;QD=14.66;SB=-683.24	GT:AD:DP:GL:GQ	0/1:48,48:95:-172.59,-28.61,-196.25:99
-chr1	4835660	.	A	G	23.51	PASS	AC=1;AF=0.50;AN=2;DP=96;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=53.01;MQ0=0;OQ=1833.96;QD=19.10;SB=-522.87	GT:AD:DP:GL:GQ	0/1:39,57:96:-215.59,-28.91,-159.74:99
-chr1	4837550	rs35283465	T	G	356.52	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.39;MQ0=0;OQ=1133.74;QD=16.67;SB=-504.82	GT:AD:DP:GL:GQ	0/1:30,38:68:-137.14,-20.48,-110.12:99
-chr1	4837913	rs10753390	T	C	137.37	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=2;HaplotypeScore=2.60;MQ=60.00;MQ0=0;OQ=941.83;QD=14.72;SB=-459.61	GT:AD:DP:GL:GQ	0/1:30,34:62:-116.15,-18.68,-119.75:99
-chr1	4839426	rs942248	G	A	447.55	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=0.57;MQ=60.00;MQ0=0;OQ=1139.23;QD=16.75;SB=-553.39	GT:AD:DP:GL:GQ	0/1:34,34:68:-137.70,-20.50,-108.59:99
-chr1	4841270	rs10915651	A	G	240.97	PASS	AC=1;AF=0.50;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=1.82;MQ=57.66;MQ0=0;OQ=816.55;QD=11.66;SB=-378.12	GT:AD:DP:GL:GQ	0/1:39,31:68:-105.42,-20.48,-155.28:99
-chr1	4841714	rs4654463	A	C	478.61	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.60;MQ0=0;OQ=555.94;QD=9.75;SB=-254.73	GT:AD:DP:GL:GQ	0/1:35,22:56:-75.74,-16.86,-132.35:99
-chr1	4844074	rs10733017	T	C	2.18	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=1;HaplotypeScore=11.82;MQ=59.63;MQ0=0;OQ=699.51;QD=11.10;SB=-327.09	GT:AD:DP:GL:GQ	0/1:36,27:62:-91.91,-18.68,-144.88:99
-chr1	4844167	rs11576728	C	A	571.03	PASS	AC=1;AF=0.50;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.76;MQ0=0;OQ=1050.49;QD=13.64;SB=-532.68	GT:AD:DP:GL:GQ	0/1:42,35:77:-131.52,-23.19,-153.03:99
-chr1	4844702	rs7543026	G	A	584.71	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.93;MQ0=0;OQ=948.11;QD=15.54;SB=-391.87	GT:AD:DP:GL:GQ	0/1:33,28:60:-116.18,-18.08,-104.09:99
-chr1	4845341	rs6658585	A	C	76.93	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=1;HaplotypeScore=4.00;MQ=59.18;MQ0=0;OQ=1071.52;QD=16.74;SB=-367.56	GT:AD:DP:GL:GQ	0/1:26,38:62:-129.11,-18.67,-97.88:99
-chr1	4845498	rs12057393	G	A	364.71	SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=87;Dels=0.00;HRun=12;HaplotypeScore=3.79;MQ=47.74;MQ0=0;QD=4.19;SB=-24.81	GT:AD:DP:GL:GQ	0/1:67,20:77:-62.95,-23.20,-211.18:99
-chr1	4845501	.	G	A	272.57	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=86;Dels=0.00;HRun=2;HaplotypeScore=5.43;MQ=47.58;MQ0=0;QD=3.17;SB=59.32	GT:AD:DP:GL:GQ	0/1:69,17:79:-54.34,-23.80,-226.78:99
-chr1	4845504	.	G	A	237.01	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=85;Dels=0.00;HRun=2;HaplotypeScore=5.58;MQ=47.42;MQ0=0;QD=2.79;SB=100.89	GT:AD:DP:GL:GQ	0/1:69,16:79:-50.79,-23.80,-233.92:99
-chr1	4846112	rs34320332	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=79;Dels=0.00;HRun=0;HaplotypeScore=25.56;MQ=59.10;MQ0=1;OQ=980.42;QD=12.41;SB=-508.92	GT:AD:DP:GL:GQ	0/1:43,36:73:-123.31,-21.99,-148.19:99
-chr1	4846138	rs4141866	T	G	321.22	PASS	AC=1;AF=0.50;AN=2;DB;DP=84;Dels=0.00;HRun=0;HaplotypeScore=1.05;MQ=60.00;MQ0=0;OQ=1084.74;QD=12.91;SB=-515.88	GT:AD:DP:GL:GQ	0/1:44,39:81:-136.16,-24.40,-149.14:99
-chr1	4846537	rs2224810	C	T	118.17	PASS	AC=1;AF=0.50;AN=2;DB;DP=70;Dels=0.00;HRun=2;HaplotypeScore=2.15;MQ=60.00;MQ0=0;OQ=819.69;QD=11.71;SB=-407.37	GT:AD:DP:GL:GQ	0/1:43,26:69:-109.19,-23.93,-141.50:99
-chr1	4846628	rs2209160	C	T	102.30	PASS	AC=1;AF=0.50;AN=2;DB;DP=79;Dels=0.00;HRun=0;HaplotypeScore=6.02;MQ=59.71;MQ0=0;OQ=1103.05;QD=13.96;SB=-498.70	GT:AD:DP:GL:GQ	0/1:45,34:78:-137.10,-23.51,-139.74:99
-chr1	4847013	rs4654617	G	A	341.44	PASS	AC=1;AF=0.50;AN=2;DB;DP=92;Dels=0.00;HRun=0;HaplotypeScore=0.65;MQ=60.12;MQ0=0;OQ=1328.73;QD=14.44;SB=-558.05	GT:AD:DP:GL:GQ	0/1:51,41:91:-163.57,-27.42,-178.46:99
-chr1	4847234	rs4654618	G	A	257.57	PASS	AC=1;AF=0.50;AN=2;DB;DP=87;Dels=0.00;HRun=1;HaplotypeScore=0.99;MQ=59.79;MQ0=0;OQ=1473.23;QD=16.93;SB=-644.65	GT:AD:DP:GL:GQ	0/1:44,43:86:-176.51,-25.90,-155.83:99
-chr1	4847304	rs11576619	A	C	410.62	PASS	AC=1;AF=0.50;AN=2;DB;DP=89;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.58;MQ0=0;OQ=1115.68;QD=12.54;SB=-555.85	GT:AD:DP:GL:GQ	0/1:50,39:89:-141.65,-26.80,-188.69:99
-chr1	4848245	rs10915655	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.04;HRun=13;HaplotypeScore=40.55;MQ=53.84;MQ0=0;OQ=783.98;QD=11.53;SB=-399.49	GT:AD:DP:GL:GQ	0/1:35,30:57:-98.55,-16.87,-112.34:99
-chr1	4848259	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=65;Dels=0.00;HRun=13;HaplotypeScore=8.75;MQ=53.39;MQ0=0;OQ=145.61;QD=2.24;SB=43.71	GT:AD:DP:GL:GQ	0/1:50,15:51:-33.22,-15.38,-143.27:99
-chr1	4848272	rs59534952	C	T	83.18	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=1;HaplotypeScore=2.85;MQ=55.61;MQ0=0;OQ=567.99;QD=11.83;SB=-226.73	GT:AD:DP:GL:GQ	0/1:29,19:46:-73.94,-13.86,-98.14:99
-chr1	4849613	rs2224809	G	T	40.55	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=5.98;MQ=59.05;MQ0=0;OQ=753.24;QD=11.77;SB=-371.10	GT:AD:DP:GL:GQ	0/1:36,28:62:-97.28,-18.68,-118.15:99
-chr1	4851425	rs4654464	C	A	99.04	PASS	AC=1;AF=0.50;AN=2;DB;DP=89;Dels=0.00;HRun=3;HaplotypeScore=1.30;MQ=59.74;MQ0=0;OQ=1201.43;QD=13.50;SB=-585.67	GT:AD:DP:GL:GQ	0/1:47,42:87:-149.63,-26.21,-164.62:99
-chr1	4851649	rs1544062	A	C	506.42	PASS	AC=1;AF=0.50;AN=2;DB;DP=92;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.80;MQ0=0;OQ=1031.53;QD=11.21;SB=-464.74	GT:AD:DP:GL:GQ	0/1:52,40:90:-133.54,-27.11,-194.44:99
-chr1	4852648	rs6664880	A	G	404.16	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=0.58;MQ=60.00;MQ0=0;OQ=757.37;QD=15.15;SB=-338.35	GT:AD:DP:GL:GQ	0/1:21,29:49:-93.79,-14.77,-78.78:99
-chr1	4853388	rs16839786	G	T	224.38	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=0.83;MQ=53.58;MQ0=0;OQ=920.28;QD=16.43;SB=-211.55	GT:AD:DP:GL:GQ	0/1:26,30:55:-111.88,-16.57,-81.39:99
-chr1	4853673	rs61764897	T	A	731.06	Indel	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=49.62;MQ0=0;QD=11.25;SB=-257.66	GT:AD:DP:GL:GQ	0/1:39,26:64:-95.67,-19.28,-148.40:99
-chr1	4854729	rs11578197	G	A	258.41	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=2.18;MQ=59.65;MQ0=0;OQ=1050.33;QD=16.16;SB=-476.48	GT:AD:DP:GL:GQ	0/1:33,32:63:-127.30,-18.99,-107.48:99
-chr1	4855018	rs16839789	C	T	363.83	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=1.93;MQ=59.33;MQ0=0;OQ=1117.05;QD=14.70;SB=-538.76	GT:AD:DP:GL:GQ	0/1:39,37:73:-136.99,-22.00,-128.05:99
-chr1	4855722	rs6426446	C	T	346.09	PASS	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.43;MQ0=0;OQ=1302.13;QD=17.84;SB=-634.73	GT:AD:DP:GL:GQ	0/1:34,39:71:-154.89,-21.40,-105.41:99
-chr1	4855930	rs6426447	T	C	166.41	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=57.78;MQ0=0;OQ=489.14;QD=8.58;SB=-219.87	GT:AD:DP:GL:GQ	0/1:31,26:53:-68.18,-15.98,-120.90:99
-chr1	4856415	rs7547152	G	C	495.16	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.79;MQ0=0;OQ=942.12;QD=15.20;SB=-441.90	GT:AD:DP:GL:GQ	0/1:35,27:61:-115.88,-18.38,-149.41:99
-chr1	4857229	rs58851741	C	T	459.60	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.68;MQ0=0;OQ=966.78;QD=16.67;SB=-403.91	GT:AD:DP:GL:GQ	0/1:27,31:57:-117.15,-17.19,-83.93:99
-chr1	4857438	rs6663654	A	G	150.02	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=2;HaplotypeScore=1.74;MQ=59.66;MQ0=0;OQ=1188.14;QD=17.73;SB=-597.99	GT:AD:DP:GL:GQ	0/1:26,41:63:-141.07,-18.98,-97.28:99
-chr1	4857938	rs4654466	T	G	14.09	PASS	AC=2;AF=1.00;AN=2;DB;DP=73;Dels=0.00;HRun=3;HaplotypeScore=2.02;MQ=60.00;MQ0=0;OQ=2439.19;QD=33.41;SB=-1032.90	GT:AD:DP:GL:GQ	1/1:0,73:72:-247.54,-21.70,-0.04:99
-chr1	4857962	rs4654620	T	C	617.25	PASS	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2216.51;QD=34.63;SB=-1013.85	GT:AD:DP:GL:GQ	1/1:0,64:63:-225.26,-18.98,-0.03:99
-chr1	4858133	rs12026056	C	T	160.83	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=59.48;MQ0=0;OQ=1391.17;QD=19.32;SB=-472.46	GT:AD:DP:GL:GQ	0/1:31,41:70:-163.49,-21.09,-105.37:99
-chr1	4858331	rs2411952	T	G	714.78	PASS	AC=2;AF=1.00;AN=2;DB;DP=80;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2714.55;QD=33.93;SB=-941.23	GT:AD:DP:GL:GQ	1/1:0,80:78:-275.06,-23.49,-0.02:99
-chr1	4858799	rs10915656	A	G	325.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=60.00;MQ0=0;OQ=541.63;QD=8.88;SB=-253.33	GT:AD:DP:GL:GQ	0/1:37,24:61:-75.83,-18.39,-146.51:99
-chr1	4859646	rs2031246	A	G	219.32	PASS	AC=2;AF=1.00;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=1.15;MQ=58.68;MQ0=0;OQ=1950.88;QD=29.12;SB=-966.30	GT:AD:DP:GL:GQ	1/1:0,67:62:-198.73,-18.70,-0.06:99
-chr1	4859671	.	T	C	13.11	PASS	AC=1;AF=0.50;AN=2;DP=69;Dels=0.00;HRun=1;HaplotypeScore=3.64;MQ=59.06;MQ0=0;OQ=883.63;QD=12.81;SB=-329.17	GT:AD:DP:GL:GQ	0/1:37,32:67:-111.83,-20.19,-139.59:99
-chr1	4859954	rs34895557	G	T	206.38	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=1;HaplotypeScore=1.25;MQ=59.24;MQ0=0;OQ=744.21;QD=13.53;SB=-251.43	GT:AD:DP:GL:GQ	0/1:28,27:52:-93.37,-15.67,-91.09:99
-chr1	4860771	rs1998542	A	G	287.69	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=59.36;MQ0=0;OQ=1092.68;QD=14.57;SB=-569.57	GT:AD:DP:GL:GQ	0/1:37,38:74:-134.84,-22.29,-148.74:99
-chr1	4861394	rs12564397	A	T	437.24	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.84;MQ0=0;OQ=1000.40;QD=17.86;SB=-441.86	GT:AD:DP:GL:GQ	0/1:25,31:56:-120.19,-16.87,-93.72:99
-chr1	4861557	rs35411636	G	A	169.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=1;HaplotypeScore=1.73;MQ=59.72;MQ0=0;OQ=1208.45;QD=18.04;SB=-440.97	GT:AD:DP:GL:GQ	0/1:30,37:64:-143.41,-19.28,-105.19:99
-chr1	4863429	.	C	T	229.25	PASS	AC=1;AF=0.50;AN=2;DP=86;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.78;MQ0=0;OQ=1493.09;QD=17.36;SB=-728.57	GT:AD:DP:GL:GQ	0/1:41,45:85:-178.20,-25.60,-151.88:99
-chr1	4863497	rs7524606	G	A	427.14	PASS	AC=1;AF=0.50;AN=2;DB;DP=86;Dels=0.00;HRun=0;HaplotypeScore=1.18;MQ=60.00;MQ0=0;OQ=1511.71;QD=17.58;SB=-634.67	GT:AD:DP:GL:GQ	0/1:42,44:85:-180.06,-25.60,-147.35:99
-chr1	4863865	rs1980722	C	T	503.84	PASS	AC=2;AF=1.00;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=3056.08;QD=40.21;SB=-645.86	GT:AD:DP:GL:GQ	1/1:0,76:76:-309.21,-22.89,-0.02:99
-chr1	4864428	rs11580747	G	C	245.21	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=1.79;MQ=59.63;MQ0=0;OQ=942.97;QD=14.97;SB=-334.34	GT:AD:DP:GL:GQ	0/1:36,27:61:-115.96,-18.38,-154.60:99
-chr1	4865012	rs17345545	A	C	595.58	PASS	AC=1;AF=0.50;AN=2;DB;DP=84;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.73;MQ0=0;OQ=1349.09;QD=16.06;SB=-446.78	GT:AD:DP:GL:GQ	0/1:36,48:82:-162.89,-24.70,-132.81:99
-chr1	4865105	rs57839229	A	T	93.37	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=2;HaplotypeScore=1.14;MQ=59.34;MQ0=0;OQ=1132.50;QD=17.98;SB=-522.98	GT:AD:DP:GL:GQ	0/1:27,36:62:-135.21,-18.67,-99.92:99
-chr1	4865351	rs4654467	A	G	16.96	PASS	AC=2;AF=1.00;AN=2;DB;DP=86;Dels=0.01;HRun=0;HaplotypeScore=4.70;MQ=59.78;MQ0=0;OQ=2675.08;QD=31.11;SB=-1049.26	GT:AD:DP:GL:GQ	1/1:0,84:83:-271.15,-24.72,-0.06:99
-chr1	4866087	rs10915662	A	T	363.81	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=59.38;MQ0=0;OQ=1323.19;QD=19.75;SB=-593.71	GT:AD:DP:GL:GQ	0/1:27,40:67:-155.78,-20.18,-103.30:99
-chr1	4866400	rs12064982	G	A	103.40	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=3.34;MQ=60.00;MQ0=0;OQ=973.54;QD=18.03;SB=-247.54	GT:AD:DP:GL:GQ	0/1:25,29:53:-116.61,-15.97,-79.83:99
-chr1	4866918	rs12031154	A	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DB;DP=83;Dels=0.00;HRun=0;HaplotypeScore=24.82;MQ=54.18;MQ0=0;OQ=935.81;QD=11.27;SB=-380.06	GT:AD:DP:GL:GQ	0/1:43,40:73:-118.86,-22.00,-142.88:99
-chr1	4866921	rs12026933	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=87;Dels=0.03;HRun=18;HaplotypeScore=19.70;MQ=54.46;MQ0=0;OQ=1554.81;QD=17.87;SB=-743.33	GT:AD:DP:GL:GQ	0/1:33,51:81:-182.28,-23.51,-100.13:99
-chr1	4867019	rs11803696	A	G	583.39	PASS	AC=1;AF=0.50;AN=2;DB;DP=91;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.38;MQ0=0;OQ=1173.47;QD=12.90;SB=-430.96	GT:AD:DP:GL:GQ	0/1:48,43:89:-147.44,-26.81,-193.48:99
-chr1	4867070	rs6672145	C	T	154.08	PASS	AC=2;AF=1.00;AN=2;DB;DP=78;Dels=0.00;HRun=0;HaplotypeScore=2.79;MQ=58.49;MQ0=0;OQ=2949.30;QD=37.81;SB=-1148.66	GT:AD:DP:GL:GQ	1/1:0,78:74:-298.53,-22.29,-0.02:99
-chr1	4867333	rs10737414	C	T	577.78	PASS	AC=2;AF=1.00;AN=2;DB;DP=93;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.28;MQ0=0;OQ=3774.90;QD=40.59;SB=-1090.96	GT:AD:DP:GL:GQ	1/1:0,93:91:-376.49,-27.41,-0.02:99
-chr1	4867363	rs7533707	A	T	409.29	PASS	AC=2;AF=1.00;AN=2;DB;DP=87;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.50;MQ0=0;OQ=3186.97;QD=36.63;SB=-1277.61	GT:AD:DP:GL:GQ	1/1:0,87:84:-322.30,-25.30,-0.02:99
-chr1	4867599	rs7520488	G	C	176.88	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=3.17;MQ=58.98;MQ0=0;OQ=1260.85;QD=19.70;SB=-431.87	GT:AD:DP:GL:GQ	0/1:29,35:63:-148.35,-18.98,-119.77:99
-chr1	4867836	rs10753391	C	T	252.04	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=2.73;MQ=58.82;MQ0=0;OQ=2192.96;QD=37.17;SB=-1090.48	GT:AD:DP:GL:GQ	1/1:0,58:57:-222.90,-17.17,-0.02:99
-chr1	4869610	rs10753392	A	G	2.94	PASS	AC=2;AF=1.00;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=12.66;MQ=58.15;MQ0=0;OQ=2566.56;QD=33.77;SB=-1061.07	GT:AD:DP:GL:GQ	1/1:1,75:72:-260.27,-21.69,-0.02:99
-chr1	4869715	rs10753393	A	G	57.47	PASS	AC=2;AF=1.00;AN=2;DB;DP=66;Dels=0.00;HRun=1;HaplotypeScore=1.94;MQ=55.52;MQ0=0;OQ=2164.34;QD=32.79;SB=-1098.81	GT:AD:DP:GL:GQ	1/1:0,66:62:-220.05,-18.68,-0.03:99
-chr1	4869773	rs10737415	G	A	79.07	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=1.29;MQ=59.56;MQ0=0;OQ=867.20;QD=16.36;SB=-154.19	GT:AD:DP:GL:GQ	0/1:24,29:51:-105.37,-15.37,-83.26:99
-chr1	4869802	rs10753394	T	C	256.85	PASS	AC=2;AF=1.00;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=1.38;MQ=60.00;MQ0=0;OQ=1715.99;QD=30.64;SB=-772.60	GT:AD:DP:GL:GQ	1/1:0,56:56:-175.25,-16.90,-0.06:99
-chr1	4869982	rs10915666	G	A	210.38	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=1.64;MQ=58.75;MQ0=0;OQ=1883.17;QD=36.21;SB=-696.34	GT:AD:DP:GL:GQ	1/1:0,50:49:-191.92,-14.76,-0.02:99
-chr1	4870346	rs6675549	G	A	170.55	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=4.29;MQ=57.91;MQ0=0;OQ=1211.32;QD=19.23;SB=-547.10	GT:AD:DP:GL:GQ	0/1:28,35:62:-143.11,-18.69,-84.61:99
-chr1	4870866	rs60530383	A	G	40.28	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=2;HaplotypeScore=2.54;MQ=60.00;MQ0=0;OQ=824.16;QD=14.46;SB=-305.38	GT:AD:DP:GL:GQ	0/1:28,29:56:-102.57,-16.87,-109.85:99
-chr1	4871367	rs12034557	C	T	506.72	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.67;MQ0=0;OQ=1054.17;QD=18.82;SB=-458.82	GT:AD:DP:GL:GQ	0/1:25,31:55:-125.27,-16.57,-85.80:99
-chr1	4871442	rs11584441	T	G	5.72	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=2;HaplotypeScore=1.95;MQ=57.60;MQ0=1;OQ=392.05;QD=7.00;SB=-149.17	GT:AD:DP:GL:GQ	0/1:35,21:54:-58.76,-16.27,-123.74:99
-chr1	4871485	rs12034590	C	T	165.34	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=59.35;MQ0=0;OQ=1273.44;QD=19.90;SB=-540.59	GT:AD:DP:GL:GQ	0/1:26,38:62:-149.30,-18.68,-91.11:99
-chr1	4871683	rs10915667	G	A	252.09	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=1;HaplotypeScore=1.13;MQ=59.56;MQ0=0;OQ=868.47;QD=16.70;SB=-440.82	GT:AD:DP:GL:GQ	0/1:26,26:50:-105.19,-15.06,-84.43:99
-chr1	4872046	rs41524347	T	G	240.01	PASS	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.74;MQ0=0;OQ=531.74;QD=7.28;SB=-248.55	GT:AD:DP:GL:GQ	0/1:47,26:72:-78.15,-21.69,-181.81:99
-chr1	4872269	rs7549400	A	G	96.19	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=2;HaplotypeScore=1.52;MQ=58.82;MQ0=1;OQ=894.68;QD=13.76;SB=-387.61	GT:AD:DP:GL:GQ	0/1:34,31:64:-112.04,-19.29,-126.05:99
-chr1	4872967	rs11805753	C	T	385.01	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=1.56;MQ=59.68;MQ0=0;OQ=1214.98;QD=17.11;SB=-484.47	GT:AD:DP:GL:GQ	0/1:35,36:70:-145.88,-21.10,-111.38:99
-chr1	4873161	rs10915668	C	T	676.89	PASS	AC=2;AF=1.00;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.74;MQ0=0;OQ=2872.25;QD=39.89;SB=-1024.38	GT:AD:DP:GL:GQ	1/1:0,72:72:-290.83,-21.69,-0.02:99
-chr1	4874423	rs10915669	T	C	15.37	PASS	AC=2;AF=1.00;AN=2;DB;DP=69;Dels=0.00;HRun=1;HaplotypeScore=2.47;MQ=59.06;MQ0=0;OQ=1979.91;QD=28.69;SB=-648.94	GT:AD:DP:GL:GQ	1/1:0,69:62:-201.63,-18.69,-0.05:99
-chr1	4875425	rs10157835	A	G	332.29	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=-0.06;MQ=59.11;MQ0=0;OQ=1038.14;QD=16.48;SB=-539.00	GT:AD:DP:GL:GQ	0/1:28,35:63:-126.07,-18.98,-114.44:99
-chr1	4877097	rs12565275	C	G	395.93	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=59.57;MQ0=0;OQ=611.15;QD=11.32;SB=-239.42	GT:AD:DP:GL:GQ	0/1:33,21:54:-80.69,-16.29,-144.98:99
-chr1	4877956	rs2898849	G	C	124.47	PASS	AC=2;AF=1.00;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=1.58;MQ=59.05;MQ0=0;OQ=3110.04;QD=42.60;SB=-1016.57	GT:AD:DP:GL:GQ	1/1:0,72:72:-314.62,-21.70,-0.03:99
-chr1	4878047	rs12564793	G	C	328.95	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=59.70;MQ0=0;OQ=765.57;QD=12.15;SB=-303.80	GT:AD:DP:GL:GQ	0/1:37,26:61:-98.24,-18.40,-159.57:99
-chr1	4880219	rs11585512	A	G	134.50	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=3.24;MQ=59.43;MQ0=0;OQ=632.04;QD=9.58;SB=-314.90	GT:AD:DP:GL:GQ	0/1:35,31:61:-84.88,-18.39,-132.31:99
-chr1	4880279	rs11583660	G	A	590.60	PASS	AC=1;AF=0.50;AN=2;DB;DP=70;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.47;MQ0=0;OQ=976.49;QD=13.95;SB=-412.71	GT:AD:DP:GL:GQ	0/1:40,30:69:-121.72,-20.78,-142.93:99
-chr1	4880552	rs12035499	G	A	202.58	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=1.05;MQ=59.63;MQ0=0;OQ=1072.23;QD=21.02;SB=-458.86	GT:AD:DP:GL:GQ	0/1:20,31:50:-125.57,-15.06,-66.05:99
-chr1	4881363	rs942245	A	G	135.80	PASS	AC=2;AF=1.00;AN=2;DB;DP=72;Dels=0.00;HRun=2;HaplotypeScore=1.00;MQ=60.00;MQ0=0;OQ=2549.24;QD=35.41;SB=-1267.52	GT:AD:DP:GL:GQ	1/1:0,72:71:-258.53,-21.38,-0.02:99
-chr1	4882246	rs6698453	G	A	17.37	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=3;HaplotypeScore=2.99;MQ=60.00;MQ0=0;OQ=1152.61;QD=20.22;SB=-564.76	GT:AD:DP:GL:GQ	0/1:24,33:57:-135.71,-17.17,-88.68:99
-chr1	4883339	rs12043326	T	C	559.70	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.28;MQ0=0;OQ=840.35;QD=11.84;SB=-378.86	GT:AD:DP:GL:GQ	0/1:36,35:67:-107.51,-20.19,-138.68:99
-chr1	4883603	rs10915672	C	A	302.35	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=917.14;QD=15.81;SB=-477.86	GT:AD:DP:GL:GQ	0/1:28,30:58:-112.47,-17.47,-92.34:99
-chr1	4883658	rs4141867	T	C	369.29	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=1;HaplotypeScore=-0.06;MQ=60.00;MQ0=0;OQ=1888.75;QD=33.14;SB=-779.12	GT:AD:DP:GL:GQ	1/1:0,57:54:-192.48,-16.27,-0.02:99
-chr1	4883885	rs6702564	G	A	362.71	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.62;MQ0=0;OQ=1074.71;QD=17.62;SB=-363.86	GT:AD:DP:GL:GQ	0/1:29,32:61:-129.13,-18.37,-105.65:99
-chr1	4884232	rs1535733	T	C	178.47	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=2;HaplotypeScore=1.73;MQ=59.20;MQ0=1;OQ=1010.15;QD=15.08;SB=-514.02	GT:AD:DP:GL:GQ	0/1:32,35:66:-124.18,-19.88,-130.89:99
-chr1	4884527	rs6666792	C	A	73.74	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=3;HaplotypeScore=1.81;MQ=60.00;MQ0=0;OQ=1017.13;QD=16.14;SB=-354.42	GT:AD:DP:GL:GQ	0/1:29,34:62:-123.67,-18.68,-100.25:99
-chr1	4884742	rs2093765	A	G	735.50	PASS	AC=2;AF=1.00;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.44;MQ0=0;OQ=2661.52;QD=35.97;SB=-1066.10	GT:AD:DP:GL:GQ	1/1:0,74:74:-269.76,-22.29,-0.02:99
-chr1	4885223	rs6667433	C	T	727.08	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.66;MQ0=0;OQ=1991.58;QD=36.21;SB=-991.61	GT:AD:DP:GL:GQ	1/1:1,54:54:-205.04,-16.28,-2.29:99
-chr1	4885428	rs10753395	A	C	505.64	PASS	AC=2;AF=1.00;AN=2;DB;DP=72;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.54;MQ0=0;OQ=2504.61;QD=34.79;SB=-1254.33	GT:AD:DP:GL:GQ	1/1:0,72:71:-254.07,-21.38,-0.02:99
-chr1	4885629	rs10915675	C	T	373.73	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=1.90;MQ=59.20;MQ0=0;OQ=841.96;QD=14.52;SB=-410.79	GT:AD:DP:GL:GQ	0/1:31,27:56:-104.36,-16.88,-95.31:99
-chr1	4886330	rs2411956	G	T	352.27	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=1;HaplotypeScore=0.52;MQ=59.33;MQ0=0;OQ=915.03;QD=14.76;SB=-419.13	GT:AD:DP:GL:GQ	0/1:29,33:59:-112.57,-17.78,-93.60:99
-chr1	4886464	rs2898852	G	A	427.35	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=0;HaplotypeScore=1.13;MQ=59.69;MQ0=0;OQ=1311.14;QD=17.48;SB=-649.71	GT:AD:DP:GL:GQ	0/1:36,39:74:-156.69,-22.29,-124.22:99
-chr1	4887284	rs6666453	T	G	591.26	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.63;MQ0=0;OQ=819.61;QD=13.22;SB=-407.64	GT:AD:DP:GL:GQ	0/1:31,31:61:-103.62,-18.37,-115.39:99
-chr1	4887891	rs61271613	G	A	361.07	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=0.83;MQ=59.32;MQ0=0;OQ=1029.14;QD=15.13;SB=-413.79	GT:AD:DP:GL:GQ	0/1:37,31:68:-126.69,-20.50,-120.37:99
-chr1	4887923	rs12567162	A	C	597.28	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.64;MQ0=0;OQ=1047.19;QD=16.36;SB=-475.28	GT:AD:DP:GL:GQ	0/1:27,37:63:-126.98,-18.97,-102.36:99
-chr1	4888122	rs11584727	G	A	343.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=1;HaplotypeScore=0.63;MQ=58.62;MQ0=0;OQ=960.03;QD=15.74;SB=-414.74	GT:AD:DP:GL:GQ	0/1:31,30:58:-116.76,-17.47,-107.44:99
-chr1	4888166	rs10799275	T	C	449.24	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.22;MQ0=0;OQ=759.70;QD=14.07;SB=-405.31	GT:AD:DP:GL:GQ	0/1:28,26:54:-95.52,-16.26,-116.08:99
-chr1	4888741	rs6667349	A	G	162.92	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=2;HaplotypeScore=1.54;MQ=60.00;MQ0=0;OQ=906.44;QD=15.63;SB=-403.28	GT:AD:DP:GL:GQ	0/1:26,32:57:-111.10,-17.17,-105.01:99
-chr1	4891078	rs10915677	A	C	501.83	PASS	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.68;MQ0=0;OQ=791.64;QD=10.84;SB=-393.76	GT:AD:DP:GL:GQ	0/1:42,31:72:-104.14,-21.69,-153.97:99
-chr1	4891278	rs10753396	A	G	48.68	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=1;HaplotypeScore=3.33;MQ=59.27;MQ0=0;OQ=705.13;QD=13.83;SB=-249.29	GT:AD:DP:GL:GQ	0/1:25,26:49:-88.56,-14.77,-92.96:99
-chr1	4892541	rs6675977	C	T	304.31	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=59.24;MQ0=0;OQ=854.23;QD=15.53;SB=-341.48	GT:AD:DP:GL:GQ	0/1:29,26:53:-104.68,-15.97,-89.47:99
-chr1	4893597	rs9426511	G	A	254.52	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=2.65;MQ=59.63;MQ0=0;OQ=950.24;QD=15.08;SB=-473.01	GT:AD:DP:GL:GQ	0/1:32,31:60:-116.38,-18.07,-112.58:99
-chr1	4894312	rs12409253	G	A	317.80	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=1;HaplotypeScore=0.83;MQ=59.37;MQ0=0;OQ=1178.40;QD=17.85;SB=-478.44	GT:AD:DP:GL:GQ	0/1:31,35:66:-141.01,-19.88,-111.62:99
-chr1	4894801	rs12044092	G	A	352.37	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=2.41;MQ=58.46;MQ0=0;OQ=1019.91;QD=14.36;SB=-390.41	GT:AD:DP:GL:GQ	0/1:36,34:67:-125.46,-20.19,-124.85:99
-chr1	4894886	rs12049256	T	C	300.25	PASS	AC=1;AF=0.50;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=2.80;MQ=59.40;MQ0=0;OQ=829.82;QD=11.85;SB=-433.52	GT:AD:DP:GL:GQ	0/1:40,30:69:-107.05,-20.79,-158.76:99
-chr1	4895006	rs11588368	G	A	587.49	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=820.91;QD=16.10;SB=-424.82	GT:AD:DP:GL:GQ	0/1:26,25:51:-100.74,-15.37,-86.84:99
-chr1	4895035	rs11591047	T	C	208.88	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=60.00;MQ0=0;OQ=456.13;QD=9.70;SB=-221.38	GT:AD:DP:GL:GQ	0/1:26,21:45:-62.46,-13.57,-101.40:99
-chr1	4895453	rs10915681	C	A	168.48	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=1;HaplotypeScore=1.78;MQ=58.81;MQ0=0;OQ=612.66;QD=11.14;SB=-214.30	GT:AD:DP:GL:GQ	0/1:31,24:51:-79.91,-15.36,-100.29:99
-chr1	4895802	rs10915682	G	C	444.70	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=58.75;MQ0=0;OQ=770.78;QD=14.82;SB=-369.80	GT:AD:DP:GL:GQ	0/1:29,22:52:-98.80,-18.44,-131.37:99
-chr1	4896045	rs10915683	A	G	284.67	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=59.68;MQ0=0;OQ=528.33;QD=8.95;SB=-128.57	GT:AD:DP:GL:GQ	0/1:38,21:56:-72.98,-16.87,-140.47:99
-chr1	4896086	rs4654470	A	G	55.66	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=5.44;MQ=59.62;MQ0=0;OQ=494.74;QD=8.11;SB=-214.66	GT:AD:DP:GL:GQ	0/1:40,20:59:-73.24,-20.48,-157.99:99
-chr1	4896521	rs12037632	T	C	412.13	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.93;MQ=59.62;MQ0=0;OQ=681.99;QD=11.18;SB=-282.28	GT:AD:DP:GL:GQ	0/1:32,29:59:-89.26,-17.78,-128.31:99
-chr1	4896528	.	C	T	86.04	PASS	AC=1;AF=0.50;AN=2;DP=66;Dels=0.00;HRun=1;HaplotypeScore=1.85;MQ=59.65;MQ0=0;OQ=946.41;QD=14.34;SB=-376.12	GT:AD:DP:GL:GQ	0/1:36,30:66:-117.81,-19.89,-127.23:99
-chr1	4896632	rs12040043	G	A	26.46	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=2;HaplotypeScore=5.45;MQ=59.30;MQ0=0;OQ=1274.10;QD=19.30;SB=-654.71	GT:AD:DP:GL:GQ	0/1:28,38:65:-150.27,-19.58,-99.74:99
-chr1	4897223	rs9426467	A	G	376.87	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=1.91;MQ=60.00;MQ0=0;OQ=1052.07;QD=15.47;SB=-512.94	GT:AD:DP:GL:GQ	0/1:31,37:66:-128.37,-19.88,-120.24:99
-chr1	4897430	.	C	G	135.89	PASS	AC=1;AF=0.50;AN=2;DP=81;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1675.35;QD=20.68;SB=-845.32	GT:AD:DP:GL:GQ	0/1:35,46:79:-194.65,-23.83,-135.28:99
-chr1	4898245	rs9426468	A	G	643.42	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.65;MQ0=0;OQ=1735.77;QD=32.14;SB=-669.84	GT:AD:DP:GL:GQ	1/1:0,54:54:-177.21,-16.28,-0.04:99
-chr1	4899159	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=53;Dels=0.00;HRun=3;HaplotypeScore=6.05;MQ=46.85;MQ0=0;OQ=120.33;QD=2.27;SB=65.24	GT:AD:DP:GL:GQ	0/1:32,21:41:-27.68,-12.36,-128.17:99
-chr1	4899332	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=89;Dels=0.00;HRun=0;HaplotypeScore=18.81;MQ=41.26;MQ0=0;OQ=75.19;QD=0.84;SB=83.30	GT:AD:DP:GL:GQ	0/1:74,15:82:-35.50,-24.70,-289.36:99
-chr1	4899338	rs61764934	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=103;Dels=0.00;HRun=1;HaplotypeScore=53.72;MQ=39.00;MQ0=0;OQ=98.84;QD=0.96;SB=80.29	GT:AD:DP:GL:GQ	0/1:81,22:86:-39.08,-25.91,-300.72:99
-chr1	4899353	.	A	G	53.98	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=107;Dels=0.00;HRun=1;HaplotypeScore=114.06;MQ=38.02;MQ0=0;QD=0.50;SB=80.29	GT:AD:DP:GL:GQ	0/1:92,15:73:-30.68,-22.00,-253.39:86.82
-chr1	4899362	.	C	T	241.59	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=110;Dels=0.00;HRun=0;HaplotypeScore=82.55;MQ=36.98;MQ0=0;QD=2.20;SB=83.28	GT:AD:DP:GL:GQ	0/1:96,14:84:-52.74,-25.30,-256.82:99
-chr1	4899363	.	A	G	254.83	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=107;Dels=0.00;HRun=0;HaplotypeScore=89.52;MQ=36.48;MQ0=0;QD=2.38;SB=77.27	GT:AD:DP:GL:GQ	0/1:93,14:79:-52.57,-23.80,-259.03:99
-chr1	4899383	.	A	G	183.41	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=106;Dels=0.00;HRun=0;HaplotypeScore=35.87;MQ=33.65;MQ0=0;QD=1.73;SB=12.92	GT:AD:DP:GL:GQ	0/1:63,43:62:-40.31,-18.69,-193.47:99
-chr1	4899387	.	G	A	263.62	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=99;Dels=0.00;HRun=1;HaplotypeScore=43.90;MQ=33.13;MQ0=0;QD=2.66;SB=77.22	GT:AD:DP:GL:GQ	0/1:87,12:64:-48.92,-19.28,-184.60:99
-chr1	4899389	.	C	T	535.44	SnpCluster	AC=1;AF=0.50;AN=2;DP=93;Dels=0.00;HRun=0;HaplotypeScore=29.97;MQ=33.38;MQ0=0;QD=5.76;SB=-42.73	GT:AD:DP:GL:GQ	0/1:50,43:64:-76.11,-19.28,-160.16:99
-chr1	4899390	.	A	G	274.25	SnpCluster	AC=1;AF=0.50;AN=2;DP=92;Dels=0.00;HRun=0;HaplotypeScore=29.97;MQ=32.97;MQ0=0;QD=2.98;SB=-22.76	GT:AD:DP:GL:GQ	0/1:49,43:57:-47.88,-17.17,-174.44:99
-chr1	4899396	.	A	G	365.84	SnpCluster	AC=1;AF=0.50;AN=2;DP=91;Dels=0.00;HRun=0;HaplotypeScore=37.97;MQ=32.55;MQ0=0;QD=4.02;SB=-65.46	GT:AD:DP:GL:GQ	0/1:57,34:58:-57.34,-17.48,-166.05:99
-chr1	4899406	.	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=81;Dels=0.00;HRun=1;HaplotypeScore=33.13;MQ=34.08;MQ0=0;OQ=385.33;QD=4.76;SB=65.23	GT:AD:DP:GL:GQ	0/1:64,17:63:-60.79,-18.98,-180.67:99
-chr1	4899410	.	A	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=77;Dels=0.00;HRun=0;HaplotypeScore=33.12;MQ=33.37;MQ0=0;OQ=280.21;QD=3.64;SB=-127.85	GT:AD:DP:GL:GQ	0/1:61,16:68:-51.79,-20.49,-213.95:99
-chr1	4899418	rs61764937	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=1;HaplotypeScore=24.96;MQ=35.60;MQ0=0;OQ=416.78;QD=5.56;SB=-32.80	GT:AD:DP:GL:GQ	0/1:58,17:68:-65.44,-20.48,-183.51:99
-chr1	4899454	.	A	G	399.94	SnpCluster	AC=1;AF=0.50;AN=2;DP=89;Dels=0.00;HRun=0;HaplotypeScore=32.10;MQ=40.74;MQ0=0;QD=4.49;SB=-98.78	GT:AD:DP:GL:GQ	0/1:68,21:81:-67.68,-24.40,-246.97:99
-chr1	4899458	.	A	G	39.06	DPFilter;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=97;Dels=0.00;HRun=0;HaplotypeScore=68.26;MQ=40.42;MQ0=0;QD=0.40;SB=83.30	GT:AD:DP:GL:GQ	0/1:88,9:79:-30.98,-23.79,-291.61:71.90
-chr1	4899460	.	A	G	118.03	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=100;Dels=0.00;HRun=0;HaplotypeScore=72.96;MQ=40.46;MQ0=0;QD=1.18;SB=77.27	GT:AD:DP:GL:GQ	0/1:89,11:76:-37.98,-22.90,-265.09:99
-chr1	4899462	.	C	T	72.49	SnpCluster	AC=1;AF=0.50;AN=2;DP=103;Dels=0.00;HRun=1;HaplotypeScore=75.80;MQ=40.64;MQ0=0;QD=0.70;SB=-1.28	GT:AD:DP:GL:GQ	0/1:95,8:73:-32.52,-21.98,-238.14:99
-chr1	4899467	.	A	G	135.65	SnpCluster	AC=1;AF=0.50;AN=2;DP=110;Dels=0.00;HRun=0;HaplotypeScore=98.40;MQ=41.18;MQ0=0;QD=1.23;SB=-29.35	GT:AD:DP:GL:GQ	0/1:96,14:86:-42.76,-25.91,-295.60:99
-chr1	4899468	rs12745382	A	T	958.03	SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=110;Dels=0.00;HRun=0;HaplotypeScore=107.35;MQ=41.23;MQ0=0;QD=8.71;SB=-316.45	GT:AD:DP:GL:GQ	0/1:64,46:95:-127.70,-28.61,-236.36:99
-chr1	4899487	rs12745394	A	G	720.77	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=218;Dels=0.00;HRun=0;HaplotypeScore=160.10;MQ=38.29;MQ0=1;QD=3.31;SB=-244.39	GT:AD:DP:GL:GQ	0/1:161,57:163:-124.48,-49.12,-501.88:99
-chr1	4899493	.	T	C	260.40	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=248;Dels=0.00;HRun=0;HaplotypeScore=303.17;MQ=38.85;MQ0=1;QD=1.05;SB=56.79	GT:AD:DP:GL:GQ	0/1:215,32:203:-90.48,-61.15,-713.61:99
-chr1	4899494	.	G	A	174.70	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=252;Dels=0.00;HRun=0;HaplotypeScore=310.33;MQ=39.06;MQ0=1;QD=0.69;SB=21.87	GT:AD:DP:GL:GQ	0/1:226,26:203:-81.91,-61.15,-646.58:99
-chr1	4899498	.	A	G	872.52	DPFilter;Indel;SnpCluster	AC=1;AF=0.50;AN=2;DP=252;Dels=0.00;HRun=0;HaplotypeScore=250.40;MQ=38.78;MQ0=1;QD=3.46;SB=78.26	GT:AD:DP:GL:GQ	0/1:199,53:211:-154.09,-63.56,-686.66:99
-chr1	4899500	rs12724550	G	A	2189.95	DPFilter;Indel;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=250;Dels=0.00;HRun=0;HaplotypeScore=245.89;MQ=38.85;MQ0=1;QD=8.76;SB=-1087.26	GT:AD:DP:GL:GQ	0/1:149,76:205:-341.91,-119.63,-478.96:99
-chr1	4899501	.	T	G	179.31	DPFilter;Indel;SnpCluster	AC=1;AF=0.50;AN=2;DP=252;Dels=0.00;HRun=1;HaplotypeScore=255.20;MQ=39.12;MQ0=1;QD=0.71;SB=215.88	GT:AD:DP:GL:GQ	0/1:226,25:204:-82.66,-61.45,-660.80:99
-chr1	4899507	.	A	G	466.12	DPFilter;Indel;SnpCluster	AC=1;AF=0.50;AN=2;DP=254;Dels=0.00;HRun=0;HaplotypeScore=236.48;MQ=39.39;MQ0=1;QD=1.84;SB=155.66	GT:AD:DP:GL:GQ	0/1:206,47:211:-113.47,-63.57,-712.04:99
-chr1	4899538	.	A	G	1219.52	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=258;Dels=0.00;HRun=0;HaplotypeScore=176.47;MQ=39.21;MQ0=0;QD=4.73;SB=-218.54	GT:AD:DP:GL:GQ	0/1:190,68:212:-189.10,-63.86,-642.45:99
-chr1	4899540	.	A	G	894.27	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=255;Dels=0.00;HRun=0;HaplotypeScore=176.74;MQ=39.03;MQ0=0;QD=3.51;SB=-184.63	GT:AD:DP:GL:GQ	0/1:181,72:195:-154.12,-61.41,-609.10:99
-chr1	4899547	rs61764939	G	A	1318.72	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DB;DP=260;Dels=0.00;HRun=0;HaplotypeScore=220.06;MQ=39.48;MQ0=0;QD=5.07;SB=-35.22	GT:AD:DP:GL:GQ	0/1:180,80:174:-187.61,-52.45,-416.57:99
-chr1	4899554	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=252;Dels=0.00;HRun=0;HaplotypeScore=215.32;MQ=39.44;MQ0=0;OQ=71.48;QD=0.28;SB=245.79	GT:AD:DP:GL:GQ	0/1:233,19:178:-64.05,-53.62,-575.35:99
-chr1	4899560	.	A	G	527.43	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=244;Dels=0.00;HRun=0;HaplotypeScore=182.32;MQ=39.84;MQ0=0;QD=2.16;SB=62.05	GT:AD:DP:GL:GQ	0/1:191,43:207:-132.12,-76.10,-688.26:99
-chr1	4899566	.	C	T	228.85	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=230;Dels=0.00;HRun=0;HaplotypeScore=151.86;MQ=39.79;MQ0=0;QD=0.99;SB=29.83	GT:AD:DP:GL:GQ	0/1:207,23:173:-78.29,-52.12,-551.64:99
-chr1	4899567	.	A	G	591.79	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=224;Dels=0.00;HRun=0;HaplotypeScore=146.70;MQ=39.85;MQ0=0;QD=2.64;SB=-287.04	GT:AD:DP:GL:GQ	0/1:172,52:165:-112.16,-49.70,-538.18:99
-chr1	4899578	.	G	A	586.91	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=167;Dels=0.00;HRun=1;HaplotypeScore=122.95;MQ=41.57;MQ0=0;QD=3.51;SB=-235.54	GT:AD:DP:GL:GQ	0/1:137,30:123:-99.03,-37.05,-345.51:99
-chr1	4899580	.	G	A	442.86	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=161;Dels=0.00;HRun=0;HaplotypeScore=120.46;MQ=41.82;MQ0=0;QD=2.75;SB=-225.49	GT:AD:DP:GL:GQ	0/1:135,26:120:-83.72,-36.15,-349.19:99
-chr1	4899586	.	T	C	690.02	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=149;Dels=0.00;HRun=1;HaplotypeScore=129.55;MQ=42.82;MQ0=0;QD=4.63;SB=-75.61	GT:AD:DP:GL:GQ	0/1:103,46:129:-111.14,-38.86,-403.04:99
-chr1	4899587	.	G	A	484.27	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=146;Dels=0.00;HRun=0;HaplotypeScore=116.82;MQ=42.67;MQ0=0;QD=3.32;SB=137.44	GT:AD:DP:GL:GQ	0/1:119,26:124:-89.06,-37.35,-358.44:99
-chr1	4899593	.	C	T	11.57	DPFilter;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=117;Dels=0.00;HRun=0;HaplotypeScore=60.92;MQ=43.18;MQ0=0;QD=0.10;SB=158.52	GT:AD:DP:GL:GQ	0/1:100,17:99:-34.23,-29.82,-323.42:44.09
-chr1	4899594	.	A	G	11.09	DPFilter;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=116;Dels=0.00;HRun=0;HaplotypeScore=60.92;MQ=43.00;MQ0=0;QD=0.10;SB=173.58	GT:AD:DP:GL:GQ	0/1:99,17:103:-35.39,-31.03,-369.44:43.58
-chr1	4899610	.	C	T	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=89;Dels=0.00;HRun=0;HaplotypeScore=9.15;MQ=43.55;MQ0=0;OQ=197.17;QD=2.22;SB=-29.37	GT:AD:DP:GL:GQ	0/1:75,14:86:-48.93,-25.93,-238.79:99
-chr1	4899946	rs4654471	T	C	43.86	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=1;HaplotypeScore=5.91;MQ=59.14;MQ0=0;OQ=975.13;QD=18.06;SB=-440.01	GT:AD:DP:GL:GQ	0/1:20,34:52:-116.46,-15.67,-76.61:99
-chr1	4902227	rs7555212	C	T	596.69	PASS	AC=2;AF=1.00;AN=2;DB;DP=72;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.48;MQ0=0;OQ=2926.83;QD=40.65;SB=-1218.62	GT:AD:DP:GL:GQ	1/1:0,72:72:-296.28,-21.69,-0.02:99
-chr1	4902317	rs6426367	G	T	224.74	PASS	AC=2;AF=1.00;AN=2;DB;DP=87;Dels=0.00;HRun=2;HaplotypeScore=-0.06;MQ=59.74;MQ0=0;OQ=3145.50;QD=36.16;SB=-1581.61	GT:AD:DP:GL:GQ	1/1:0,87:85:-318.15,-25.60,-0.02:99
-chr1	4902486	rs6426368	C	T	717.48	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.86;MQ0=0;OQ=2201.20;QD=38.62;SB=-1092.00	GT:AD:DP:GL:GQ	1/1:0,57:56:-223.72,-16.87,-0.02:99
-chr1	4902573	rs6669905	T	C	700.95	PASS	AC=2;AF=1.00;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.30;MQ0=0;OQ=2165.11;QD=36.09;SB=-859.36	GT:AD:DP:GL:GQ	1/1:0,60:59:-220.11,-17.77,-0.01:99
-chr1	4903007	rs6678838	G	T	279.14	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=1.52;MQ=56.35;MQ0=0;OQ=1768.51;QD=34.01;SB=-813.84	GT:AD:DP:GL:GQ	1/1:0,52:50:-180.45,-15.06,-0.02:99
-chr1	4903027	rs12142452	G	T	0	FDRtranche2.00to10.00+	AC=2;AF=1.00;AN=2;DB;DP=76;Dels=0.05;HRun=16;HaplotypeScore=13.19;MQ=49.10;MQ0=0;OQ=2384.03;QD=31.37;SB=-1040.48	GT:AD:DP:GL:GQ	1/1:0,72:70:-242.01,-20.48,-0.02:99
-chr1	4903364	rs9286971	G	A	258.61	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.48;MQ=52.70;MQ0=0;OQ=2159.66;QD=37.89;SB=-926.32	GT:AD:DP:GL:GQ	1/1:0,57:54:-219.56,-16.27,-0.01:99
-chr1	4904108	rs10799141	A	G	488.42	PASS	AC=2;AF=1.00;AN=2;DB;DP=71;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.61;MQ0=0;OQ=2393.63;QD=33.71;SB=-1173.70	GT:AD:DP:GL:GQ	1/1:0,71:69:-242.98,-20.79,-0.03:99
-chr1	4904115	rs10753341	C	T	707.52	PASS	AC=2;AF=1.00;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.70;MQ0=0;OQ=2995.63;QD=39.42;SB=-1442.45	GT:AD:DP:GL:GQ	1/1:0,76:76:-303.17,-22.90,-0.02:99
-chr1	4904188	rs10753342	G	A	611.86	PASS	AC=2;AF=1.00;AN=2;DB;DP=89;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=3529.10;QD=39.65;SB=-1221.14	GT:AD:DP:GL:GQ	1/1:0,89:89:-351.91,-26.82,-0.03:99
-chr1	4905340	rs7531490	A	G	249.81	PASS	AC=2;AF=1.00;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=58.93;MQ0=0;OQ=2004.17;QD=30.83;SB=-867.03	GT:AD:DP:GL:GQ	1/1:0,65:64:-204.06,-19.31,-0.06:99
-chr1	4905635	rs7534281	T	C	82.15	PASS	AC=2;AF=1.00;AN=2;DB;DP=66;Dels=0.00;HRun=2;HaplotypeScore=2.19;MQ=59.65;MQ0=0;OQ=2315.03;QD=35.08;SB=-1175.74	GT:AD:DP:GL:GQ	1/1:0,66:65:-235.11,-19.58,-0.02:99
-chr1	4905656	rs7542048	G	A	139.59	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=2.78;MQ=59.63;MQ0=0;OQ=2472.89;QD=39.25;SB=-1234.03	GT:AD:DP:GL:GQ	1/1:0,62:62:-250.89,-18.68,-0.02:99
-chr1	4906196	rs6426371	T	C	169.21	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=58.85;MQ0=0;OQ=1914.58;QD=30.88;SB=-835.64	GT:AD:DP:GL:GQ	1/1:0,62:59:-195.09,-17.79,-0.04:99
-chr1	4906502	rs6426372	G	C	538.03	PASS	AC=2;AF=1.00;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.04;MQ0=0;OQ=3170.49;QD=42.84;SB=-1473.31	GT:AD:DP:GL:GQ	1/1:0,73:73:-320.65,-21.99,-0.02:99
-chr1	4907095	rs10915296	T	C	149.48	PASS	AC=2;AF=1.00;AN=2;DB;DP=87;Dels=0.00;HRun=1;HaplotypeScore=1.07;MQ=58.97;MQ0=0;OQ=3030.02;QD=34.83;SB=-1495.63	GT:AD:DP:GL:GQ	1/1:0,87:84:-306.61,-25.30,-0.03:99
-chr1	4907407	rs6702058	C	T	201.43	PASS	AC=2;AF=1.00;AN=2;DB;DP=82;Dels=0.00;HRun=1;HaplotypeScore=0.82;MQ=59.72;MQ0=0;OQ=3144.08;QD=38.34;SB=-1502.68	GT:AD:DP:GL:GQ	1/1:0,81:79:-318.01,-23.80,-0.02:99
-chr1	4907813	rs6677619	G	T	634.30	PASS	AC=2;AF=1.00;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.68;MQ0=0;OQ=2646.47;QD=36.25;SB=-1071.58	GT:AD:DP:GL:GQ	1/1:0,73:72:-268.25,-21.68,-0.02:99
-chr1	4909109	rs7413385	A	G	73.69	PASS	AC=2;AF=1.00;AN=2;DB;DP=28;Dels=0.00;HRun=1;HaplotypeScore=0.58;MQ=58.33;MQ0=0;OQ=950.25;QD=33.94;SB=-350.81	GT:AD:DP:GL:GQ	1/1:0,28:27:-98.62,-8.13,-0.01:81.24
-chr1	4909713	rs7413847	A	G	78.92	PASS	AC=2;AF=1.00;AN=2;DB;DP=73;Dels=0.00;HRun=1;HaplotypeScore=1.66;MQ=58.99;MQ0=0;OQ=2491.44;QD=34.13;SB=-1130.80	GT:AD:DP:GL:GQ	1/1:0,72:69:-252.75,-20.78,-0.02:99
-chr1	4909933	rs7411727	C	T	614.98	PASS	AC=2;AF=1.00;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.37;MQ0=0;OQ=2836.35;QD=38.85;SB=-1407.70	GT:AD:DP:GL:GQ	1/1:0,73:71:-287.24,-21.39,-0.02:99
-chr1	4910002	rs10915297	T	C	288.13	PASS	AC=2;AF=1.00;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=59.37;MQ0=0;OQ=2563.56;QD=35.12;SB=-1064.10	GT:AD:DP:GL:GQ	1/1:0,73:72:-259.97,-21.69,-0.02:99
-chr1	4910067	rs10799142	G	A	129.23	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=2.67;MQ=58.55;MQ0=0;OQ=2372.23;QD=38.89;SB=-1035.39	GT:AD:DP:GL:GQ	1/1:0,61:60:-240.82,-18.08,-0.02:99
-chr1	4910738	rs6426373	T	C	29.48	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=4;HaplotypeScore=1.33;MQ=59.62;MQ0=0;OQ=2095.65;QD=34.35;SB=-1007.72	GT:AD:DP:GL:GQ	1/1:0,61:59:-213.17,-17.77,-0.02:99
-chr1	4910848	rs6664358	C	T	341.96	PASS	AC=2;AF=1.00;AN=2;DB;DP=65;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.71;MQ0=0;OQ=2577.25;QD=39.65;SB=-933.73	GT:AD:DP:GL:GQ	1/1:0,65:64:-261.33,-19.28,-0.02:99
-chr1	4911242	rs9426489	G	T	99.79	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=2.42;MQ=59.58;MQ0=0;OQ=1563.55;QD=28.43;SB=-641.98	GT:AD:DP:GL:GQ	1/1:2,53:45:-159.96,-13.56,-0.02:99
-chr1	4911262	rs9426490	A	G	133.69	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=2;HaplotypeScore=1.03;MQ=60.00;MQ0=0;OQ=2076.79;QD=34.05;SB=-972.82	GT:AD:DP:GL:GQ	1/1:0,61:59:-211.29,-17.77,-0.02:99
-chr1	4911898	rs7522655	C	T	592.58	PASS	AC=2;AF=1.00;AN=2;DB;DP=67;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.66;MQ0=0;OQ=2724.61;QD=40.67;SB=-1189.07	GT:AD:DP:GL:GQ	1/1:0,67:67:-276.06,-20.18,-0.01:99
-chr1	4911961	rs7544541	G	A	150.94	PASS	AC=2;AF=1.00;AN=2;DB;DP=76;Dels=0.00;HRun=1;HaplotypeScore=1.61;MQ=59.39;MQ0=0;OQ=2947.98;QD=38.79;SB=-1404.70	GT:AD:DP:GL:GQ	1/1:1,75:74:-298.40,-22.29,-0.02:99
-chr1	4911968	rs7544542	G	A	170.72	PASS	AC=2;AF=1.00;AN=2;DB;DP=82;Dels=0.00;HRun=0;HaplotypeScore=0.82;MQ=59.72;MQ0=0;OQ=3112.64;QD=37.96;SB=-1553.08	GT:AD:DP:GL:GQ	1/1:0,82:78:-314.87,-23.50,-0.02:99
-chr1	4912150	rs9426469	G	A	193	PASS	AC=2;AF=1.00;AN=2;DB;DP=75;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=59.69;MQ0=0;OQ=2864.62;QD=38.19;SB=-1302.32	GT:AD:DP:GL:GQ	1/1:0,75:72:-290.07,-21.69,-0.02:99
-chr1	4913505	rs9426491	A	G	394.38	PASS	AC=2;AF=1.00;AN=2;DB;DP=87;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.04;MQ0=0;OQ=3121.73;QD=35.88;SB=-1295.55	GT:AD:DP:GL:GQ	1/1:0,87:85:-315.78,-25.60,-0.02:99
-chr1	4914443	rs6692780	T	C	192.39	PASS	AC=2;AF=1.00;AN=2;DB;DP=103;Dels=0.00;HRun=0;HaplotypeScore=2.33;MQ=59.62;MQ0=0;OQ=3691.18;QD=35.84;SB=-1586.36	GT:AD:DP:GL:GQ	1/1:1,102:102:-368.12,-30.72,-0.04:99
-chr1	4914588	rs6701289	G	A	24.03	PASS	AC=2;AF=1.00;AN=2;DB;DP=80;Dels=0.00;HRun=4;HaplotypeScore=1.20;MQ=58.58;MQ0=0;OQ=3206.41;QD=40.08;SB=-1396.85	GT:AD:DP:GL:GQ	1/1:0,80:78:-324.24,-23.49,-0.01:99
-chr1	4915327	rs6693486	A	T	79.70	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=3;HaplotypeScore=0.67;MQ=59.04;MQ0=0;OQ=2495.92;QD=36.70;SB=-983.49	GT:AD:DP:GL:GQ	1/1:0,68:67:-253.20,-20.19,-0.02:99
-chr1	4915704	rs6656223	G	A	492.16	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1843.82;QD=39.23;SB=-720.96	GT:AD:DP:GL:GQ	1/1:0,47:46:-187.98,-13.86,-0.01:99
-chr1	4917206	rs12098076	G	A	321.24	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=1.82;MQ=59.37;MQ0=0;OQ=1024.17;QD=17.36;SB=-411.74	GT:AD:DP:GL:GQ	0/1:27,32:58:-123.18,-17.47,-93.16:99
-chr1	4918178	rs9426470	C	A	210.31	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=60.00;MQ0=0;OQ=2272.14;QD=33.41;SB=-999.37	GT:AD:DP:GL:GQ	1/1:0,68:66:-230.83,-19.89,-0.03:99
-chr1	4918637	rs6696925	G	C	480.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.39;MQ0=0;OQ=1020.90;QD=16.74;SB=-452.39	GT:AD:DP:GL:GQ	0/1:33,28:59:-123.15,-17.78,-134.82:99
-chr1	4920934	rs7546019	A	G	7.79	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=1;HaplotypeScore=3.94;MQ=55.17;MQ0=0;OQ=1312.69;QD=25.74;SB=-576.91	GT:AD:DP:GL:GQ	1/1:0,51:42:-134.90,-12.67,-0.04:99
-chr1	4920939	rs10799143	A	G	1.06	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=9.55;MQ=55.37;MQ0=0;OQ=685.84;QD=14.29;SB=-109.82	GT:AD:DP:GL:GQ	1/1:0,38:24:-75.74,-10.17,-3.57:66.02
-chr1	4920972	rs10753343	C	T	150.22	PASS	AC=2;AF=1.00;AN=2;DB;DP=35;Dels=0.00;HRun=0;HaplotypeScore=1.47;MQ=58.67;MQ0=0;OQ=1219.60;QD=34.85;SB=-488.14	GT:AD:DP:GL:GQ	1/1:0,34:33:-125.56,-9.95,-0.02:99
-chr1	4921030	rs10799144	A	G	161.31	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=1;HaplotypeScore=1.20;MQ=58.57;MQ0=0;OQ=1984.77;QD=33.64;SB=-769.10	GT:AD:DP:GL:GQ	1/1:0,59:57:-202.08,-17.17,-0.02:99
-chr1	4921060	rs10799145	T	G	245.52	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=1.09;MQ=58.90;MQ0=0;OQ=1759.60;QD=29.82;SB=-867.69	GT:AD:DP:GL:GQ	1/1:0,59:58:-179.61,-17.49,-0.06:99
-chr1	4921319	.	C	T	71.66	PASS	AC=1;AF=0.50;AN=2;DP=74;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=56.87;MQ0=0;OQ=1537.50;QD=20.78;SB=-754.34	GT:AD:DP:GL:GQ	0/1:29,45:71:-178.43,-21.40,-86.91:99
-chr1	4921542	.	G	A	297.10	PASS	AC=1;AF=0.50;AN=2;DP=54;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.57;MQ0=0;OQ=827.15;QD=15.32;SB=-385.90	GT:AD:DP:GL:GQ	0/1:29,25:54:-102.27,-16.28,-92.99:99
-chr1	4921651	.	A	G	14.60	PASS	AC=1;AF=0.50;AN=2;DP=72;Dels=0.00;HRun=3;HaplotypeScore=0.89;MQ=59.42;MQ0=0;OQ=1167.54;QD=16.22;SB=-587.69	GT:AD:DP:GL:GQ	0/1:31,41:71:-141.43,-21.39,-125.09:99
-chr1	4921748	.	T	C	1.07	PASS	AC=1;AF=0.50;AN=2;DP=48;Dels=0.00;HRun=0;HaplotypeScore=7.77;MQ=59.39;MQ0=0;OQ=610.60;QD=12.72;SB=-231.30	GT:AD:DP:GL:GQ	0/1:26,22:47:-78.51,-14.17,-96.88:99
-chr1	4921801	.	A	G	290.73	PASS	AC=1;AF=0.50;AN=2;DP=53;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=740.93;QD=13.98;SB=-339.17	GT:AD:DP:GL:GQ	0/1:24,29:53:-93.36,-15.98,-94.97:99
-chr1	4921915	rs12118118	A	G	141.47	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=2.35;MQ=59.65;MQ0=0;OQ=641.25;QD=9.87;SB=-176.55	GT:AD:DP:GL:GQ	0/1:39,26:63:-86.39,-18.98,-152.81:99
-chr1	4922627	rs12119864	T	C	423.73	PASS	AC=1;AF=0.50;AN=2;DB;DP=85;Dels=0.00;HRun=0;HaplotypeScore=1.43;MQ=58.63;MQ0=0;OQ=1289.06;QD=15.17;SB=-556.56	GT:AD:DP:GL:GQ	0/1:33,52:81:-156.60,-24.41,-132.69:99
-chr1	4923016	rs6426374	A	G	591.79	PASS	AC=2;AF=1.00;AN=2;DB;DP=82;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.54;MQ0=0;OQ=2408.23;QD=29.37;SB=-1057.43	GT:AD:DP:GL:GQ	1/1:0,82:76:-244.48,-22.92,-0.07:99
-chr1	4923151	.	C	T	132.84	PASS	AC=1;AF=0.50;AN=2;DP=56;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=59.33;MQ0=0;OQ=908.76;QD=16.23;SB=-453.45	GT:AD:DP:GL:GQ	0/1:28,28:56:-111.04,-16.88,-89.80:99
-chr1	4923249	.	A	G	76.65	PASS	AC=1;AF=0.50;AN=2;DP=44;Dels=0.00;HRun=0;HaplotypeScore=1.57;MQ=58.95;MQ0=0;OQ=491.85;QD=11.18;SB=-227.32	GT:AD:DP:GL:GQ	0/1:25,19:38:-63.92,-11.45,-77.07:99
-chr1	4923272	.	A	G	41.93	PASS	AC=1;AF=0.50;AN=2;DP=55;Dels=0.00;HRun=0;HaplotypeScore=2.77;MQ=59.16;MQ0=0;OQ=549.57;QD=9.99;SB=-300.17	GT:AD:DP:GL:GQ	0/1:32,23:55:-74.82,-16.58,-127.48:99
-chr1	4923290	rs6702660	A	G	624.31	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1543.54;QD=30.27;SB=-737.76	GT:AD:DP:GL:GQ	1/1:0,51:50:-157.99,-15.08,-0.05:99
-chr1	4923916	.	G	A	53.20	PASS	AC=1;AF=0.50;AN=2;DP=74;Dels=0.00;HRun=0;HaplotypeScore=2.46;MQ=57.14;MQ0=0;OQ=1330.08;QD=17.97;SB=-412.89	GT:AD:DP:GL:GQ	0/1:35,39:72:-157.99,-21.70,-107.79:99
-chr1	4923977	.	T	C	92.93	PASS	AC=1;AF=0.50;AN=2;DP=63;Dels=0.00;HRun=0;HaplotypeScore=2.60;MQ=56.31;MQ0=0;OQ=878.08;QD=13.94;SB=-397.92	GT:AD:DP:GL:GQ	0/1:29,34:62:-109.78,-18.69,-109.67:99
-chr1	4924245	rs7523398	G	T	624.90	PASS	AC=2;AF=1.00;AN=2;DB;DP=85;Dels=0.01;HRun=0;HaplotypeScore=0.00;MQ=52.50;MQ0=0;OQ=2976.14;QD=35.01;SB=-1222.44	GT:AD:DP:GL:GQ	1/1:0,84:82:-301.22,-24.40,-0.02:99
-chr1	4924289	.	C	T	145.80	Indel	AC=1;AF=0.50;AN=2;DP=81;Dels=0.00;HRun=1;HaplotypeScore=20.35;MQ=47.42;MQ0=2;QD=1.80;SB=-17.33	GT:AD:DP:GL:GQ	0/1:69,12:76:-40.75,-22.89,-240.21:99
-chr1	4924318	.	A	G	303.69	PASS	AC=1;AF=0.50;AN=2;DP=76;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=53.53;MQ0=0;OQ=1150.10;QD=15.13;SB=-395.92	GT:AD:DP:GL:GQ	0/1:29,47:72:-140.00,-21.70,-115.03:99
-chr1	4924353	.	A	G	6.39	PASS	AC=1;AF=0.50;AN=2;DP=75;Dels=0.00;HRun=1;HaplotypeScore=4.52;MQ=59.31;MQ0=0;OQ=1199.85;QD=16.00;SB=-524.06	GT:AD:DP:GL:GQ	0/1:32,42:73:-145.26,-21.99,-127.06:99
-chr1	4924370	.	T	G	76.39	PASS	AC=1;AF=0.50;AN=2;DP=78;Dels=0.00;HRun=0;HaplotypeScore=1.99;MQ=60.52;MQ0=0;OQ=1415.60;QD=18.15;SB=-500.81	GT:AD:DP:GL:GQ	0/1:31,47:78:-168.34,-23.49,-113.39:99
-chr1	4924651	rs140619	A	C	98.30	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=2;HaplotypeScore=1.45;MQ=58.44;MQ0=0;OQ=1008.29;QD=14.00;SB=-504.32	GT:AD:DP:GL:GQ	0/1:36,36:69:-124.90,-20.78,-122.36:99
-chr1	4924659	rs140620	C	G	66.97	PASS	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.00;HRun=2;HaplotypeScore=3.55;MQ=58.47;MQ0=0;OQ=1278.05;QD=17.51;SB=-626.38	GT:AD:DP:GL:GQ	0/1:37,36:72:-152.80,-21.71,-149.62:99
-chr1	4924842	rs3101217	G	A	427.04	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=1.23;MQ=60.00;MQ0=0;OQ=946.64;QD=12.46;SB=-438.36	GT:AD:DP:GL:GQ	0/1:44,31:68:-118.44,-20.49,-128.20:99
-chr1	4924889	rs3101218	G	C	576.23	PASS	AC=1;AF=0.50;AN=2;DB;DP=80;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1334.27;QD=16.68;SB=-624.99	GT:AD:DP:GL:GQ	0/1:41,39:77:-159.91,-23.20,-177.20:99
-chr1	4924920	rs3101219	T	C	593.97	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.64;MQ0=0;OQ=1041.98;QD=16.28;SB=-455.18	GT:AD:DP:GL:GQ	0/1:28,36:64:-126.76,-19.28,-110.51:99
-chr1	4924999	rs3101220	G	C	298.13	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=1.66;MQ=59.20;MQ0=0;OQ=811.79;QD=14.00;SB=-233.01	GT:AD:DP:GL:GQ	0/1:32,26:57:-101.64,-17.18,-138.57:99
-chr1	4925039	rs3128678	A	G	0.26	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=4;HaplotypeScore=3.38;MQ=59.22;MQ0=0;OQ=1744.26;QD=32.30;SB=-816.04	GT:AD:DP:GL:GQ	1/1:0,54:50:-178.03,-15.06,-0.02:99
-chr1	4925077	rs3101221	C	A	25.14	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=6.44;MQ=58.58;MQ0=0;OQ=647.61;QD=11.56;SB=-325.00	GT:AD:DP:GL:GQ	0/1:30,26:49:-82.82,-14.77,-78.79:99
-chr1	4925169	rs3128679	A	G	107.98	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=2.44;MQ=60.00;MQ0=0;OQ=535.15;QD=8.92;SB=-144.42	GT:AD:DP:GL:GQ	0/1:36,24:59:-74.58,-17.78,-140.21:99
-chr1	4925429	rs3128680	G	A	469.33	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=766.43;QD=14.46;SB=-348.86	GT:AD:DP:GL:GQ	0/1:29,24:53:-95.89,-15.97,-104.44:99
-chr1	4925430	rs3101222	C	G	427.23	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=771.83;QD=15.13;SB=-299.97	GT:AD:DP:GL:GQ	0/1:28,23:50:-95.55,-15.08,-110.57:99
-chr1	4925635	rs3101223	A	G	252.82	PASS	AC=1;AF=0.50;AN=2;DB;DP=89;Dels=0.00;HRun=1;HaplotypeScore=0.83;MQ=59.74;MQ0=0;OQ=1091.51;QD=12.26;SB=-378.11	GT:AD:DP:GL:GQ	0/1:48,41:87:-138.64,-26.21,-194.64:99
-chr1	4926101	rs3128681	G	A	350.75	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=1.95;MQ=59.68;MQ0=0;OQ=1174.87;QD=16.55;SB=-610.10	GT:AD:DP:GL:GQ	0/1:35,35:70:-141.86,-21.09,-114.49:99
-chr1	4926299	rs1017724	C	T	190.62	PASS	AC=1;AF=0.50;AN=2;DB;DP=78;Dels=0.00;HRun=2;HaplotypeScore=0.99;MQ=60.00;MQ0=0;OQ=1174.58;QD=15.06;SB=-383.10	GT:AD:DP:GL:GQ	0/1:41,37:77:-143.94,-23.19,-149.98:99
-chr1	4926372	rs1017726	A	G	298.07	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=1.12;MQ=60.00;MQ0=0;OQ=887.74;QD=17.07;SB=-423.28	GT:AD:DP:GL:GQ	0/1:22,30:52:-107.72,-15.67,-84.02:99
-chr1	4926476	rs3128682	A	G	470.65	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=981.70;QD=13.27;SB=-502.91	GT:AD:DP:GL:GQ	0/1:33,41:71:-122.87,-21.41,-123.57:99
-chr1	4926532	rs3128683	G	T	372.36	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=59.69;MQ0=0;OQ=1069.82;QD=14.26;SB=-471.94	GT:AD:DP:GL:GQ	0/1:37,38:72:-131.95,-21.69,-128.03:99
-chr1	4926586	rs34841047	T	C	307.90	PASS	AC=1;AF=0.50;AN=2;DB;DP=90;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=59.74;MQ0=0;OQ=1407.30;QD=15.64;SB=-662.64	GT:AD:DP:GL:GQ	0/1:42,48:89:-170.82,-26.81,-167.25:99
-chr1	4926613	rs7547938	A	C	101.18	PASS	AC=2;AF=1.00;AN=2;DB;DP=89;Dels=0.00;HRun=0;HaplotypeScore=1.60;MQ=59.79;MQ0=0;OQ=2670.20;QD=30.00;SB=-1246.34	GT:AD:DP:GL:GQ	1/1:1,88:87:-270.68,-26.22,-0.07:99
-chr1	4926617	.	G	A	38.65	PASS	AC=1;AF=0.50;AN=2;DP=85;Dels=0.00;HRun=1;HaplotypeScore=1.60;MQ=59.78;MQ0=0;OQ=1691.34;QD=19.90;SB=-782.69	GT:AD:DP:GL:GQ	0/1:36,49:84:-197.72,-25.30,-133.23:99
-chr1	4926705	rs10799146	C	G	149.65	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=59.64;MQ0=0;OQ=2201.93;QD=42.34;SB=-980.37	GT:AD:DP:GL:GQ	1/1:0,52:52:-223.80,-15.67,-0.02:99
-chr1	4926719	.	T	C	99.55	PASS	AC=1;AF=0.50;AN=2;DP=57;Dels=0.00;HRun=0;HaplotypeScore=1.78;MQ=59.60;MQ0=0;OQ=721.00;QD=12.65;SB=-331.93	GT:AD:DP:GL:GQ	0/1:26,31:55:-91.96,-16.58,-103.71:99
-chr1	4926770	.	T	G	92.62	PASS	AC=1;AF=0.50;AN=2;DP=61;Dels=0.00;HRun=1;HaplotypeScore=1.63;MQ=58.93;MQ0=0;OQ=842.91;QD=13.82;SB=-346.83	GT:AD:DP:GL:GQ	0/1:28,33:58:-105.05,-17.47,-101.93:99
-chr1	4926781	rs10915300	G	A	186.83	PASS	AC=2;AF=1.00;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=1.76;MQ=58.91;MQ0=0;OQ=2257.64;QD=37.63;SB=-1055.32	GT:AD:DP:GL:GQ	1/1:0,60:57:-229.37,-17.17,-0.02:99
-chr1	4927339	rs6426375	C	A	293.44	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=1;HaplotypeScore=1.65;MQ=59.63;MQ0=0;OQ=1104.83;QD=17.54;SB=-437.22	GT:AD:DP:GL:GQ	0/1:25,38:59:-131.54,-17.77,-79.77:99
-chr1	4927361	rs12122012	G	C	449.67	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=855.62;QD=14.50;SB=-302.94	GT:AD:DP:GL:GQ	0/1:34,25:57:-106.02,-17.18,-140.73:99
-chr1	4927449	rs12129823	C	A	265.42	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=1;HaplotypeScore=1.57;MQ=58.95;MQ0=0;OQ=867.88;QD=14.00;SB=-380.76	GT:AD:DP:GL:GQ	0/1:32,30:60:-108.15,-18.08,-97.33:99
-chr1	4927847	rs12122183	G	A	490.19	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.45;MQ0=0;OQ=1239.90;QD=16.31;SB=-577.98	GT:AD:DP:GL:GQ	0/1:38,38:75:-149.87,-22.60,-137.70:99
-chr1	4928324	rs10799147	T	G	316.36	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=0.93;MQ=59.64;MQ0=0;OQ=672.70;QD=12.94;SB=-277.80	GT:AD:DP:GL:GQ	0/1:27,25:51:-85.91,-15.36,-101.41:99
-chr1	4928782	.	A	T	20.70	PASS	AC=1;AF=0.50;AN=2;DP=41;Dels=0.00;HRun=0;HaplotypeScore=0.93;MQ=58.98;MQ0=0;OQ=748.61;QD=18.26;SB=-256.98	GT:AD:DP:GL:GQ	0/1:17,24:41:-90.49,-12.35,-66.37:99
-chr1	4930115	rs10799148	T	G	517.72	PASS	AC=2;AF=1.00;AN=2;DB;DP=66;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.72;MQ0=0;OQ=2291.16;QD=34.71;SB=-1027.09	GT:AD:DP:GL:GQ	1/1:0,66:65:-232.72,-19.58,-0.02:99
-chr1	4930427	rs34645017	G	C	291.45	PASS	AC=1;AF=0.50;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=722.42;QD=16.05;SB=-202.61	GT:AD:DP:GL:GQ	0/1:25,20:45:-89.08,-13.56,-109.77:99
-chr1	4930735	rs11578909	A	G	280.08	PASS	AC=1;AF=0.50;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=1.57;MQ=59.36;MQ0=0;OQ=698.77;QD=12.05;SB=-374.99	GT:AD:DP:GL:GQ	0/1:29,28:57:-90.34,-17.18,-117.72:99
-chr1	4931239	rs10799149	G	A	641.63	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.08;MQ0=0;OQ=2438.74;QD=39.98;SB=-916.20	GT:AD:DP:GL:GQ	1/1:0,61:60:-247.47,-18.07,-0.01:99
-chr1	4931421	rs7518523	A	G	261.63	PASS	AC=2;AF=1.00;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=58.88;MQ0=0;OQ=2083.34;QD=31.09;SB=-1042.40	GT:AD:DP:GL:GQ	1/1:0,67:65:-211.96,-19.60,-0.05:99
-chr1	4931997	rs10753344	T	C	618.70	PASS	AC=2;AF=1.00;AN=2;DB;DP=85;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2888.62;QD=33.98;SB=-1001.71	GT:AD:DP:GL:GQ	1/1:0,85:82:-292.48,-24.71,-0.04:99
-chr1	4932316	rs12127329	G	A	183.50	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.97;MQ=60.00;MQ0=0;OQ=2411.54;QD=39.53;SB=-1136.02	GT:AD:DP:GL:GQ	1/1:0,61:61:-244.76,-18.38,-0.02:99
-chr1	4932881	rs11585724	C	T	291.52	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=1.68;MQ=59.24;MQ0=0;OQ=985.86;QD=16.16;SB=-484.11	GT:AD:DP:GL:GQ	0/1:30,31:59:-119.65,-17.78,-92.67:99
-chr1	4932899	rs56016205	G	C	205.73	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.90;MQ=58.78;MQ0=0;OQ=942.89;QD=16.54;SB=-283.52	GT:AD:DP:GL:GQ	0/1:30,27:56:-114.45,-16.88,-128.26:99
-chr1	4933102	rs56190527	G	A	17.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=1;HaplotypeScore=7.39;MQ=59.07;MQ0=0;OQ=754.79;QD=15.10;SB=-398.92	GT:AD:DP:GL:GQ	0/1:26,24:48:-93.22,-14.46,-90.86:99
-chr1	4933190	rs56216708	T	C	104.26	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=1;HaplotypeScore=0.32;MQ=59.13;MQ0=0;OQ=1884.00;QD=35.55;SB=-879.00	GT:AD:DP:GL:GQ	1/1:0,53:53:-192.00,-15.97,-0.02:99
-chr1	4933296	.	G	A	768.22	SnpCluster	AC=1;AF=0.50;AN=2;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=55.45;MQ0=0;QD=12.59;SB=-376.12	GT:AD:DP:GL:GQ	0/1:35,26:58:-97.59,-17.48,-110.76:99
-chr1	4933297	.	C	T	815.45	SnpCluster	AC=1;AF=0.50;AN=2;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=55.45;MQ0=0;QD=13.37;SB=-431.91	GT:AD:DP:GL:GQ	0/1:35,26:61:-103.20,-18.37,-126.35:99
-chr1	4933303	.	G	A	803.12	SnpCluster	AC=1;AF=0.50;AN=2;DP=60;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=55.37;MQ0=0;QD=13.39;SB=-365.85	GT:AD:DP:GL:GQ	0/1:35,25:58:-101.08,-17.48,-105.94:99
-chr1	4933521	rs7535462	G	A	371.82	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.07;MQ0=0;OQ=1957.02;QD=39.14;SB=-986.02	GT:AD:DP:GL:GQ	1/1:0,50:49:-199.30,-14.76,-0.01:99
-chr1	4933673	.	C	G	6.69	PASS	AC=1;AF=0.50;AN=2;DP=66;Dels=0.00;HRun=0;HaplotypeScore=1.93;MQ=58.23;MQ0=0;OQ=1494.10;QD=22.64;SB=-505.26	GT:AD:DP:GL:GQ	0/1:26,40:63:-171.68,-18.99,-100.63:99
-chr1	4934014	rs12128545	G	A	43.64	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=2;HaplotypeScore=0.74;MQ=59.66;MQ0=0;OQ=1421.27;QD=20.90;SB=-664.71	GT:AD:DP:GL:GQ	0/1:27,41:67:-165.59,-20.18,-95.71:99
-chr1	4934078	rs12136209	C	G	149.50	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=0;HaplotypeScore=0.61;MQ=60.00;MQ0=0;OQ=1636.42;QD=21.82;SB=-832.32	GT:AD:DP:GL:GQ	0/1:31,44:75:-189.53,-22.60,-132.33:99
-chr1	4934416	rs12126894	T	G	441.68	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=56.57;MQ0=0;OQ=586.00;QD=11.49;SB=-304.83	GT:AD:DP:GL:GQ	0/1:29,22:51:-77.25,-15.36,-105.02:99
-chr1	4935048	rs10915303	A	G	334.36	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=2.69;MQ=51.50;MQ0=0;OQ=770.15;QD=12.84;SB=-364.97	GT:AD:DP:GL:GQ	0/1:27,33:52:-95.98,-15.68,-87.76:99
-chr1	4935474	rs34001007	G	A	343.02	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.67;MQ=60.00;MQ0=0;OQ=962.36;QD=16.88;SB=-495.13	GT:AD:DP:GL:GQ	0/1:27,30:56:-116.40,-16.88,-86.00:99
-chr1	4935789	rs12128035	T	C	226.01	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=2.43;MQ=58.94;MQ0=0;OQ=796.37;QD=12.64;SB=-306.28	GT:AD:DP:GL:GQ	0/1:34,29:62:-101.60,-18.68,-137.85:99
-chr1	4936034	rs6689050	G	C	388.76	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.58;MQ0=0;OQ=1874.06;QD=42.59;SB=-652.91	GT:AD:DP:GL:GQ	1/1:0,44:44:-191.00,-13.26,-0.01:99
-chr1	4936094	rs12757902	G	A	302.17	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=2.47;MQ=59.62;MQ0=0;OQ=578.28;QD=11.80;SB=-268.20	GT:AD:DP:GL:GQ	0/1:27,21:43:-74.09,-12.98,-70.80:99
-chr1	4936362	rs12126016	G	T	367.30	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=59.41;MQ0=0;OQ=1064.42;QD=14.99;SB=-543.63	GT:AD:DP:GL:GQ	0/1:34,37:71:-131.11,-21.39,-120.19:99
-chr1	4936409	rs11581023	G	A	329.13	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=2.47;MQ=58.70;MQ0=0;OQ=1088.63;QD=16.49;SB=-413.38	GT:AD:DP:GL:GQ	0/1:32,34:63:-131.13,-18.99,-102.39:99
-chr1	4936482	rs12122541	A	G	353.13	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=58.04;MQ0=0;OQ=684.77;QD=12.45;SB=-247.32	GT:AD:DP:GL:GQ	0/1:27,28:52:-87.43,-15.67,-100.04:99
-chr1	4936602	rs11584985	C	T	191.63	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=1.33;MQ=59.29;MQ0=0;OQ=1088.30;QD=18.45;SB=-387.41	GT:AD:DP:GL:GQ	0/1:25,34:57:-129.30,-17.18,-77.34:99
-chr1	4936637	rs898335	T	G	589.23	PASS	AC=2;AF=1.00;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.37;MQ0=0;OQ=2347.69;QD=35.57;SB=-808.10	GT:AD:DP:GL:GQ	1/1:0,66:66:-238.37,-19.88,-0.02:99
-chr1	4937911	rs12739724	G	A	135.48	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=1;HaplotypeScore=2.00;MQ=59.34;MQ0=0;OQ=1173.07;QD=20.58;SB=-518.55	GT:AD:DP:GL:GQ	0/1:24,33:57:-137.76,-17.17,-89.96:99
-chr1	4937953	rs6666618	A	C	126.74	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=1;HaplotypeScore=2.81;MQ=60.00;MQ0=0;OQ=1008.55;QD=15.28;SB=-391.76	GT:AD:DP:GL:GQ	0/1:30,36:65:-123.72,-19.58,-111.64:99
-chr1	4939240	rs1841241	A	G	358.83	PASS	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=1.81;MQ=59.68;MQ0=0;OQ=900.69;QD=12.34;SB=-390.90	GT:AD:DP:GL:GQ	0/1:37,36:72:-115.05,-21.70,-146.81:99
-chr1	4939654	rs6660626	C	G	245.03	PASS	AC=1;AF=0.50;AN=2;DB;DP=83;Dels=0.00;HRun=1;HaplotypeScore=1.40;MQ=59.55;MQ0=0;OQ=1495.04;QD=18.01;SB=-651.03	GT:AD:DP:GL:GQ	0/1:41,42:81:-177.21,-24.42,-163.44:99
-chr1	4940611	.	A	G	75.27	PASS	AC=1;AF=0.50;AN=2;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.48;MQ=59.50;MQ0=0;OQ=761.25;QD=16.55;SB=-322.41	GT:AD:DP:GL:GQ	0/1:18,28:44:-92.67,-13.26,-69.31:99
-chr1	4941180	rs12138041	C	G	147.56	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=59.43;MQ0=0;OQ=1446.36;QD=22.25;SB=-675.09	GT:AD:DP:GL:GQ	0/1:27,38:64:-167.20,-19.28,-114.12:99
-chr1	4941754	rs6426376	A	C	0.05	FDRtranche0.10to1.00	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=6;HaplotypeScore=1.65;MQ=58.89;MQ0=0;OQ=2125.54;QD=33.74;SB=-942.08	GT:AD:DP:GL:GQ	1/1:0,63:61:-216.16,-18.37,-0.02:99
-chr1	4942581	.	C	G	69.18	PASS	AC=1;AF=0.50;AN=2;DP=57;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=60.19;MQ0=0;OQ=1081.86;QD=18.98;SB=-432.32	GT:AD:DP:GL:GQ	0/1:28,29:57:-128.65,-17.18,-121.65:99
-chr1	4942801	rs12132419	G	A	594.05	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.75;MQ0=0;OQ=1256.99;QD=16.76;SB=-497.49	GT:AD:DP:GL:GQ	0/1:35,40:73:-150.98,-21.99,-126.45:99
-chr1	4943594	rs1563791	C	A	403.62	PASS	AC=1;AF=0.50;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=1.16;MQ=58.68;MQ0=0;OQ=828.65;QD=15.63;SB=-357.20	GT:AD:DP:GL:GQ	0/1:25,28:53:-102.11,-15.96,-89.65:99
-chr1	4943942	rs10737391	T	A	518.14	PASS	AC=2;AF=1.00;AN=2;DB;DP=75;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=57.47;MQ0=0;OQ=2837.87;QD=37.84;SB=-993.50	GT:AD:DP:GL:GQ	1/1:0,75:74:-287.39,-22.29,-0.02:99
-chr1	4943949	rs6674570	C	G	129.66	PASS	AC=2;AF=1.00;AN=2;DB;DP=70;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=57.29;MQ0=0;OQ=3029.36;QD=43.28;SB=-1059.65	GT:AD:DP:GL:GQ	1/1:0,70:69:-306.54,-20.79,-0.02:99
-chr1	4943976	rs6689766	T	C	365.66	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=0.87;MQ=56.77;MQ0=0;OQ=827.54;QD=14.03;SB=-391.26	GT:AD:DP:GL:GQ	0/1:29,30:57:-103.21,-17.17,-110.62:99
-chr1	4943997	rs6698166	G	T	369.44	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=57.73;MQ0=0;OQ=860.15;QD=13.87;SB=-411.14	GT:AD:DP:GL:GQ	0/1:31,31:60:-107.37,-18.08,-104.72:99
-chr1	4943998	rs6698167	G	A	353.24	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=57.73;MQ0=0;OQ=1051.24;QD=16.96;SB=-519.06	GT:AD:DP:GL:GQ	0/1:30,32:61:-126.79,-18.38,-103.11:99
-chr1	4944360	rs12131010	A	G	342.06	PASS	AC=1;AF=0.50;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=58.85;MQ0=0;OQ=760.68;QD=9.88;SB=-317.87	GT:AD:DP:GL:GQ	0/1:43,34:75:-101.96,-22.60,-172.57:99
-chr1	4944890	rs1106586	G	A	276.08	PASS	AC=1;AF=0.50;AN=2;DB;DP=56;Dels=0.00;HRun=1;HaplotypeScore=1.40;MQ=59.59;MQ0=0;OQ=802.40;QD=14.33;SB=-392.78	GT:AD:DP:GL:GQ	0/1:30,26:55:-100.10,-16.58,-95.63:99
-chr1	4945646	rs898336	G	C	25.91	PASS	AC=2;AF=1.00;AN=2;DB;DP=96;Dels=0.00;HRun=1;HaplotypeScore=1.00;MQ=56.72;MQ0=0;OQ=4154.41;QD=43.28;SB=-1921.01	GT:AD:DP:GL:GQ	1/1:0,96:94:-414.44,-28.32,-0.03:99
-chr1	4945654	rs7417805	T	C	207.20	PASS	AC=2;AF=1.00;AN=2;DB;DP=101;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=56.30;MQ0=0;OQ=3685.03;QD=36.49;SB=-1843.78	GT:AD:DP:GL:GQ	1/1:0,101:100:-367.50,-30.12,-0.02:99
-chr1	4946090	rs12046931	C	T	231	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=2.55;MQ=56.28;MQ0=0;OQ=1030.23;QD=13.56;SB=-511.04	GT:AD:DP:GL:GQ	0/1:44,32:74:-128.62,-22.31,-131.20:99
-chr1	4946898	rs6679312	A	G	627.33	PASS	AC=2;AF=1.00;AN=2;DB;DP=79;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.42;MQ0=0;OQ=2846.93;QD=36.04;SB=-1277.52	GT:AD:DP:GL:GQ	1/1:0,79:79:-288.30,-23.79,-0.02:99
-chr1	4947277	.	A	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=64;Dels=0.00;HRun=1;HaplotypeScore=4.31;MQ=58.55;MQ0=0;OQ=58.76;QD=0.92;SB=83.26	GT:AD:DP:GL:GQ	0/1:39,25:47:-23.33,-14.17,-133.19:91.60
-chr1	4947969	rs716671	G	T	362.39	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=1;HaplotypeScore=0.74;MQ=59.37;MQ0=0;OQ=959.61;QD=14.54;SB=-385.78	GT:AD:DP:GL:GQ	0/1:32,34:63:-118.22,-18.98,-106.13:99
-chr1	4948484	rs7541612	T	C	301.06	PASS	AC=2;AF=1.00;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=1.73;MQ=59.16;MQ0=0;OQ=2459.32;QD=34.16;SB=-1006.88	GT:AD:DP:GL:GQ	1/1:0,72:70:-249.54,-21.08,-0.02:99
-chr1	4948794	rs10737392	A	C	185.94	PASS	AC=2;AF=1.00;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=2094.20;QD=29.50;SB=-992.36	GT:AD:DP:GL:GQ	1/1:0,71:69:-213.07,-20.80,-0.07:99
-chr1	4951092	rs12725971	A	G	439.70	PASS	AC=1;AF=0.50;AN=2;DB;DP=78;Dels=0.00;HRun=0;HaplotypeScore=0.48;MQ=59.52;MQ0=0;OQ=1026.84;QD=13.16;SB=-423.90	GT:AD:DP:GL:GQ	0/1:43,35:78:-129.46,-23.49,-174.67:99
-chr1	4951570	rs6683624	C	T	353.86	PASS	AC=1;AF=0.50;AN=2;DB;DP=69;Dels=0.00;HRun=0;HaplotypeScore=2.63;MQ=59.06;MQ0=0;OQ=1065.83;QD=15.45;SB=-486.02	GT:AD:DP:GL:GQ	0/1:35,34:67:-130.05,-20.19,-121.88:99
-chr1	4953123	rs7418901	T	C	620.55	PASS	AC=2;AF=1.00;AN=2;DB;DP=84;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.56;MQ0=0;OQ=2650.80;QD=31.56;SB=-1309.87	GT:AD:DP:GL:GQ	1/1:0,84:83:-268.73,-25.03,-0.06:99
-chr1	4955464	rs1459754	T	C	197.18	PASS	AC=2;AF=1.00;AN=2;DB;DP=85;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=59.56;MQ0=0;OQ=2710.14;QD=31.88;SB=-1351.75	GT:AD:DP:GL:GQ	1/1:0,85:84:-274.67,-25.33,-0.07:99
-chr1	4956424	rs12566071	T	C	456.39	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=55.68;MQ0=0;OQ=1092.05;QD=27.30;SB=-412.16	GT:AD:DP:GL:GQ	1/1:0,40:36:-112.83,-10.86,-0.04:99
-chr1	4956725	rs12047194	C	T	71.14	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=1;HaplotypeScore=1.61;MQ=60.00;MQ0=0;OQ=1049.88;QD=16.93;SB=-178.21	GT:AD:DP:GL:GQ	0/1:29,33:61:-126.65,-18.37,-103.04:99
-chr1	4957085	.	G	A	6.71	PASS	AC=1;AF=0.50;AN=2;DP=61;Dels=0.00;HRun=1;HaplotypeScore=1.00;MQ=59.62;MQ0=0;OQ=1318.00;QD=21.61;SB=-441.83	GT:AD:DP:GL:GQ	0/1:23,38:60:-153.16,-18.08,-75.01:99
-chr1	4957708	rs9701766	C	T	287.33	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=-0.06;MQ=59.24;MQ0=0;OQ=1921.26;QD=34.93;SB=-917.67	GT:AD:DP:GL:GQ	1/1:0,55:50:-195.73,-15.07,-0.02:99
-chr1	4957732	rs12134477	T	G	328.37	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=1.88;MQ=59.35;MQ0=0;OQ=737.05;QD=11.52;SB=-389.76	GT:AD:DP:GL:GQ	0/1:34,30:62:-95.67,-18.68,-123.44:99
-chr1	4960336	rs9286972	T	C	80.40	PASS	AC=2;AF=1.00;AN=2;DB;DP=67;Dels=0.00;HRun=3;HaplotypeScore=0.87;MQ=59.38;MQ0=0;OQ=2352.51;QD=35.11;SB=-877.01	GT:AD:DP:GL:GQ	1/1:0,67:65:-238.86,-19.58,-0.02:99
-chr1	4960363	rs9286973	A	G	217.69	PASS	AC=2;AF=1.00;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=2.91;MQ=58.74;MQ0=0;OQ=2328.65;QD=33.27;SB=-776.20	GT:AD:DP:GL:GQ	1/1:0,68:66:-236.47,-19.88,-0.02:99
-chr1	4960544	rs10158116	T	C	435.93	PASS	AC=2;AF=1.00;AN=2;DB;DP=28;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.17;MQ0=0;OQ=930.68;QD=33.24;SB=-423.17	GT:AD:DP:GL:GQ	1/1:0,28:27:-96.66,-8.13,-0.01:81.23
-chr1	4961077	rs1380469	C	T	600.30	PASS	AC=2;AF=1.00;AN=2;DB;DP=88;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=3571.25;QD=40.58;SB=-1432.72	GT:AD:DP:GL:GQ	1/1:0,88:87:-356.13,-26.20,-0.02:99
-chr1	4961379	rs10158288	T	C	503.56	PASS	AC=2;AF=1.00;AN=2;DB;DP=82;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.41;MQ0=0;OQ=2541.28;QD=30.99;SB=-793.00	GT:AD:DP:GL:GQ	1/1:0,82:80:-257.79,-24.13,-0.07:99
-chr1	4963153	rs10915307	G	A	69.93	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=3;HaplotypeScore=1.45;MQ=59.07;MQ0=0;OQ=713.61;QD=14.27;SB=-252.29	GT:AD:DP:GL:GQ	0/1:25,25:45:-88.21,-13.57,-68.76:99
-chr1	4964065	rs10737393	G	C	566.31	PASS	AC=2;AF=1.00;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1749.68;QD=40.69;SB=-797.25	GT:AD:DP:GL:GQ	1/1:0,43:42:-178.57,-12.66,-0.02:99
-chr1	4964532	rs28667637	T	C	501.28	PASS	AC=1;AF=0.50;AN=2;DB;DP=82;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1316.20;QD=16.05;SB=-509.69	GT:AD:DP:GL:GQ	0/1:33,49:82:-159.62,-24.71,-131.78:99
-chr1	4964976	rs12027167	C	T	376.96	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=0;HaplotypeScore=1.73;MQ=59.50;MQ0=0;OQ=1085.57;QD=14.47;SB=-544.31	GT:AD:DP:GL:GQ	0/1:42,33:75:-134.44,-22.60,-148.57:99
-chr1	4965052	rs28444318	G	A	401.64	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.69;MQ0=0;OQ=1204.51;QD=18.82;SB=-457.96	GT:AD:DP:GL:GQ	0/1:28,36:62:-142.42,-18.68,-88.92:99
-chr1	4965449	rs10915308	C	T	686.42	PASS	AC=2;AF=1.00;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.37;MQ0=0;OQ=2543.15;QD=38.53;SB=-937.28	GT:AD:DP:GL:GQ	1/1:0,66:64:-257.91,-19.28,-0.02:99
-chr1	4965556	rs12123277	C	A	350.21	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=0;HaplotypeScore=0.83;MQ=60.00;MQ0=0;OQ=722.36;QD=9.63;SB=-338.31	GT:AD:DP:GL:GQ	0/1:48,27:74:-97.81,-22.29,-174.39:99
-chr1	4965577	rs1380470	A	G	738.02	PASS	AC=2;AF=1.00;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2392.77;QD=36.25;SB=-1196.76	GT:AD:DP:GL:GQ	1/1:0,66:66:-242.88,-19.88,-0.01:99
-chr1	4965710	rs10915309	G	A	204.24	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=1.87;MQ=59.60;MQ0=0;OQ=2319.12;QD=39.98;SB=-986.30	GT:AD:DP:GL:GQ	1/1:0,58:58:-235.51,-17.47,-0.02:99
-chr1	4968070	rs10915310	A	G	390.05	PASS	AC=1;AF=0.50;AN=2;DB;DP=82;Dels=0.00;HRun=1;HaplotypeScore=0.97;MQ=59.15;MQ0=0;OQ=1179.59;QD=14.39;SB=-449.76	GT:AD:DP:GL:GQ	0/1:38,44:81:-145.65,-24.41,-157.59:99
-chr1	4968105	rs10799151	A	G	154.91	PASS	AC=1;AF=0.50;AN=2;DB;DP=81;Dels=0.00;HRun=1;HaplotypeScore=3.73;MQ=58.89;MQ0=0;OQ=1031.60;QD=12.74;SB=-406.80	GT:AD:DP:GL:GQ	0/1:40,41:78:-129.95,-23.51,-157.15:99
-chr1	4968710	.	C	G	0.03	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=41;Dels=0.00;HRun=0;HaplotypeScore=1.90;MQ=53.48;MQ0=0;OQ=64.03;QD=1.56;SB=-49.12	GT:AD:DP:GL:GQ	0/1:36,5:37:-20.84,-11.15,-143.24:96.86
-chr1	4968815	rs10915311	A	C	217.55	PASS	AC=2;AF=1.00;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=59.03;MQ0=0;OQ=2004.53;QD=29.92;SB=-920.78	GT:AD:DP:GL:GQ	1/1:0,66:64:-204.09,-19.29,-0.06:99
-chr1	4969030	rs34951087	G	T	218.41	PASS	AC=1;AF=0.50;AN=2;DB;DP=51;Dels=0.00;HRun=1;HaplotypeScore=0.89;MQ=59.09;MQ0=0;OQ=572.86;QD=11.23;SB=-277.34	GT:AD:DP:GL:GQ	0/1:30,21:51:-75.93,-15.36,-106.99:99
-chr1	4970267	rs10915312	A	G	154.58	PASS	AC=1;AF=0.50;AN=2;DB;DP=80;Dels=0.00;HRun=2;HaplotypeScore=1.56;MQ=58.90;MQ0=0;OQ=985.64;QD=12.32;SB=-409.96	GT:AD:DP:GL:GQ	0/1:41,39:79:-125.65,-23.81,-166.76:99
-chr1	4970523	rs12045336	A	G	132	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=3.57;MQ=59.62;MQ0=0;OQ=1080.57;QD=17.71;SB=-383.65	GT:AD:DP:GL:GQ	0/1:25,36:60:-129.41,-18.07,-101.07:99
-chr1	4971344	.	A	C	49.60	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=87;Dels=0.00;HRun=0;HaplotypeScore=45.73;MQ=55.38;MQ0=0;QD=0.57;SB=95.30	GT:AD:DP:GL:GQ	0/1:77,10:78:-31.75,-23.50,-240.44:82.44
-chr1	4972155	rs1870516	C	T	119.50	PASS	AC=1;AF=0.50;AN=2;DB;DP=95;Dels=0.00;HRun=2;HaplotypeScore=2.64;MQ=59.76;MQ0=0;OQ=1584.03;QD=16.67;SB=-599.54	GT:AD:DP:GL:GQ	0/1:49,46:91:-189.10,-27.42,-151.90:99
-chr1	4972838	rs1459756	T	C	570.91	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.06;MQ0=0;OQ=978.37;QD=13.22;SB=-505.27	GT:AD:DP:GL:GQ	0/1:38,36:72:-122.81,-21.69,-153.16:99
-chr1	4972952	rs9286975	G	A	397.79	PASS	AC=2;AF=1.00;AN=2;DB;DP=67;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.66;MQ0=0;OQ=2673.75;QD=39.91;SB=-1305.72	GT:AD:DP:GL:GQ	1/1:0,67:67:-270.98,-20.18,-0.02:99
-chr1	4973015	rs9662653	T	A	589.24	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.20;MQ0=0;OQ=1272.49;QD=16.74;SB=-576.01	GT:AD:DP:GL:GQ	0/1:36,40:76:-153.42,-22.89,-135.61:99
-chr1	4973096	rs9701780	T	C	360.62	PASS	AC=1;AF=0.50;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=59.34;MQ0=0;OQ=907.74;QD=12.97;SB=-427.52	GT:AD:DP:GL:GQ	0/1:38,32:70:-115.14,-21.08,-154.90:99
-chr1	4973099	rs1459757	A	G	435.82	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=59.36;MQ0=0;OQ=906.72;QD=12.59;SB=-477.95	GT:AD:DP:GL:GQ	0/1:40,32:72:-115.64,-21.69,-161.61:99
-chr1	4973396	rs10753346	T	C	325.42	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=1;HaplotypeScore=1.00;MQ=59.65;MQ0=0;OQ=745.38;QD=11.29;SB=-293.22	GT:AD:DP:GL:GQ	0/1:39,27:65:-97.40,-19.58,-152.44:99
-chr1	4973518	rs10799152	A	C	461.39	PASS	AC=1;AF=0.50;AN=2;DB;DP=80;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=59.77;MQ0=0;OQ=1062.89;QD=13.29;SB=-461.68	GT:AD:DP:GL:GQ	0/1:43,37:80:-133.67,-24.09,-159.84:99
-chr1	4974497	rs35292186	A	G	69.66	PASS	AC=1;AF=0.50;AN=2;DB;DP=83;Dels=0.00;HRun=2;HaplotypeScore=0.47;MQ=59.78;MQ0=0;OQ=1148.97;QD=13.84;SB=-573.87	GT:AD:DP:GL:GQ	0/1:43,40:81:-142.58,-24.40,-174.12:99
-chr1	4976182	rs10915314	G	C	291.75	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=1;HaplotypeScore=0.96;MQ=60.00;MQ0=0;OQ=1306.22;QD=17.65;SB=-415.30	GT:AD:DP:GL:GQ	0/1:38,36:73:-155.90,-22.00,-163.97:99
-chr1	4977412	rs12047764	T	C	324.11	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=1;HaplotypeScore=0.73;MQ=59.63;MQ0=0;OQ=712.65;QD=11.49;SB=-368.84	GT:AD:DP:GL:GQ	0/1:33,29:62:-93.24,-18.69,-135.85:99
-chr1	4978209	rs10915315	A	G	314.02	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=59.17;MQ0=0;OQ=593.55;QD=8.73;SB=-263.22	GT:AD:DP:GL:GQ	0/1:42,26:67:-82.83,-20.19,-168.85:99
-chr1	4978799	rs10915316	T	C	253.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=3.42;MQ=59.03;MQ0=0;OQ=793.88;QD=11.03;SB=-421.21	GT:AD:DP:GL:GQ	0/1:40,31:69:-103.46,-20.78,-159.70:99
-chr1	4980236	.	G	A	100.41	PASS	AC=1;AF=0.50;AN=2;DP=85;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.79;MQ0=0;OQ=1786.33;QD=21.02;SB=-886.64	GT:AD:DP:GL:GQ	0/1:34,51:83:-206.92,-25.00,-119.27:99
-chr1	4980926	rs10915317	T	C	438.47	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=0.93;MQ=59.66;MQ0=0;OQ=838.53;QD=12.33;SB=-314.09	GT:AD:DP:GL:GQ	0/1:34,34:67:-107.33,-20.19,-138.42:99
-chr1	4981033	rs898337	G	A	348.85	PASS	AC=1;AF=0.50;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=59.70;MQ0=0;OQ=1302.29;QD=16.91;SB=-502.50	GT:AD:DP:GL:GQ	0/1:36,41:75:-156.11,-22.60,-126.45:99
-chr1	4981597	rs7516703	C	T	165.71	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=1.76;MQ=60.19;MQ0=0;OQ=561.42;QD=9.85;SB=-184.86	GT:AD:DP:GL:GQ	0/1:36,21:54:-75.71,-16.28,-112.37:99
-chr1	4982000	rs10799153	A	G	596.01	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.94;MQ0=0;OQ=1157.46;QD=16.30;SB=-464.59	GT:AD:DP:GL:GQ	0/1:32,39:71:-140.42,-21.40,-120.74:99
-chr1	4983908	.	G	A	17.79	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=67;Dels=0.00;HRun=16;HaplotypeScore=7.18;MQ=55.71;MQ0=0;QD=0.27;SB=86.25	GT:AD:DP:GL:GQ	0/1:51,16:49:-19.83,-14.77,-145.36:50.55
-chr1	4985809	rs9439574	C	T	11.86	PASS	AC=1;AF=0.50;AN=2;DB;DP=80;Dels=0.00;HRun=4;HaplotypeScore=0.16;MQ=58.95;MQ0=0;OQ=1576.28;QD=19.70;SB=-625.03	GT:AD:DP:GL:GQ	0/1:34,46:79:-184.71,-23.79,-124.63:99
-chr1	4985815	rs9439575	A	G	487	PASS	AC=1;AF=0.50;AN=2;DB;DP=82;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.98;MQ0=0;OQ=1410.52;QD=17.20;SB=-545.94	GT:AD:DP:GL:GQ	0/1:36,46:82:-169.04,-24.70,-144.72:99
-chr1	4986567	rs10218468	A	C	245.59	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.31;MQ0=0;OQ=789.54;QD=11.78;SB=-394.67	GT:AD:DP:GL:GQ	0/1:34,33:66:-102.12,-19.88,-128.07:99
-chr1	4987124	rs10442625	A	G	373.16	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=1.11;MQ=59.63;MQ0=0;OQ=720.29;QD=11.43;SB=-219.26	GT:AD:DP:GL:GQ	0/1:37,26:62:-93.99,-18.68,-145.68:99
-chr1	4988477	rs2169089	A	G	373.87	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=0;HaplotypeScore=1.63;MQ=59.69;MQ0=0;OQ=1114.19;QD=14.86;SB=-356.97	GT:AD:DP:GL:GQ	0/1:29,45:72:-136.41,-21.71,-118.67:99
-chr1	4988875	rs716112	A	G	453.40	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=0.87;MQ=60.00;MQ0=0;OQ=842.62;QD=12.58;SB=-426.87	GT:AD:DP:GL:GQ	0/1:33,34:66:-107.44,-19.90,-129.75:99
-chr1	4990575	rs1459764	C	T	573.83	PASS	AC=1;AF=0.50;AN=2;DB;DP=79;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.71;MQ0=0;OQ=1234.93;QD=15.63;SB=-612.07	GT:AD:DP:GL:GQ	0/1:42,37:78:-150.28,-23.50,-132.81:99
-chr1	4990857	rs9439507	A	G	285	PASS	AC=2;AF=1.00;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=59.35;MQ0=0;OQ=2461.09;QD=34.66;SB=-1130.69	GT:AD:DP:GL:GQ	1/1:0,71:71:-249.72,-21.39,-0.03:99
-chr1	4991092	rs10442626	G	C	211.49	PASS	AC=1;AF=0.50;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.74;MQ=59.60;MQ0=0;OQ=718.97;QD=12.61;SB=-159.21	GT:AD:DP:GL:GQ	0/1:31,26:54:-91.46,-16.28,-132.88:99
-chr1	4991687	rs4949164	A	G	470.49	PASS	AC=1;AF=0.50;AN=2;DB;DP=80;Dels=0.00;HRun=0;HaplotypeScore=0.92;MQ=60.00;MQ0=0;OQ=1103.70;QD=13.80;SB=-401.93	GT:AD:DP:GL:GQ	0/1:38,42:79:-137.46,-23.80,-155.83:99
-chr1	4993546	rs7533014	T	C	526.25	PASS	AC=1;AF=0.50;AN=2;DB;DP=91;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1036.32;QD=11.39;SB=-442.91	GT:AD:DP:GL:GQ	0/1:49,42:90:-134.04,-27.12,-197.59:99
-chr1	4993852	rs11580542	A	G	170.64	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.73;MQ0=0;OQ=650.23;QD=9.56;SB=-317.81	GT:AD:DP:GL:GQ	0/1:43,25:66:-88.19,-19.88,-168.41:99
-chr1	4994065	.	C	T	20.53	PASS	AC=1;AF=0.50;AN=2;DP=71;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1330.95;QD=18.75;SB=-592.09	GT:AD:DP:GL:GQ	0/1:33,38:71:-157.76,-21.38,-120.30:99
-chr1	4994295	rs6693990	G	A	335.33	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=2.95;MQ=57.88;MQ0=0;OQ=1019.69;QD=16.19;SB=-465.42	GT:AD:DP:GL:GQ	0/1:31,32:60:-123.32,-18.07,-111.15:99
-chr1	4994563	rs1459763	A	G	13.43	PASS	AC=1;AF=0.50;AN=2;DB;DP=41;Dels=0.00;HRun=2;HaplotypeScore=5.21;MQ=58.04;MQ0=0;OQ=377.66;QD=9.21;SB=-181.57	GT:AD:DP:GL:GQ	0/1:25,16:38:-52.50,-11.45,-93.25:99
-chr1	4995722	rs1459762	C	T	513.24	PASS	AC=1;AF=0.50;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.65;MQ0=0;OQ=1249.58;QD=19.22;SB=-511.06	GT:AD:DP:GL:GQ	0/1:27,38:64:-147.53,-19.29,-84.78:99
-chr1	4996533	.	T	G	102.56	PASS	AC=1;AF=0.50;AN=2;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.96;MQ=59.08;MQ0=0;OQ=597.86;QD=9.80;SB=-320.69	GT:AD:DP:GL:GQ	0/1:35,26:61:-81.45,-18.38,-132.05:99
-chr1	4999697	.	C	G	5.71	PASS	AC=1;AF=0.50;AN=2;DP=88;Dels=0.00;HRun=1;HaplotypeScore=1.00;MQ=59.53;MQ0=0;OQ=2076.06;QD=23.59;SB=-758.01	GT:AD:DP:GL:GQ	0/1:34,54:87:-237.12,-26.23,-133.95:99
-chr1	4999785	.	A	G	153.89	PASS	AC=1;AF=0.50;AN=2;DP=72;Dels=0.00;HRun=0;HaplotypeScore=1.27;MQ=59.42;MQ0=0;OQ=950.41;QD=13.20;SB=-485.20	GT:AD:DP:GL:GQ	0/1:39,33:71:-119.71,-21.39,-153.18:99
-chr1	5000124	rs35565495	A	G	217.11	PASS	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=2.82;MQ=57.68;MQ0=0;OQ=905.68;QD=12.41;SB=-443.62	GT:AD:DP:GL:GQ	0/1:40,33:73:-115.85,-22.00,-156.82:99
-chr1	5000551	rs1459761	A	G	316.71	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=2.15;MQ=59.68;MQ0=0;OQ=1082.64;QD=18.35;SB=-522.18	GT:AD:DP:GL:GQ	0/1:24,35:59:-129.32,-17.77,-97.53:99
-chr1	5002004	rs12403444	A	G	454.86	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=1.14;MQ=59.69;MQ0=0;OQ=1008.17;QD=13.62;SB=-385.25	GT:AD:DP:GL:GQ	0/1:38,36:71:-125.49,-21.39,-141.83:99
-chr1	5002384	rs12403749	A	G	334.10	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=60.18;MQ0=0;OQ=762.42;QD=12.92;SB=-306.27	GT:AD:DP:GL:GQ	0/1:32,27:59:-97.30,-17.77,-132.93:99
-chr1	5002965	rs55998096	C	T	265.85	PASS	AC=1;AF=0.50;AN=2;DB;DP=73;Dels=0.00;HRun=1;HaplotypeScore=1.00;MQ=60.00;MQ0=0;OQ=1237.12;QD=16.95;SB=-623.66	GT:AD:DP:GL:GQ	0/1:35,38:72:-148.68,-21.69,-128.69:99
-chr1	5003908	rs1459759	T	G	287.81	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=1.72;MQ=59.68;MQ0=0;OQ=1018.83;QD=14.15;SB=-495.74	GT:AD:DP:GL:GQ	0/1:34,38:70:-126.25,-21.08,-125.30:99
-chr1	5004548	.	C	T	0.18	PASS	AC=1;AF=0.50;AN=2;DP=102;Dels=0.00;HRun=4;HaplotypeScore=0.97;MQ=55.65;MQ0=0;OQ=1952.83;QD=19.15;SB=-933.54	GT:AD:DP:GL:GQ	0/1:44,58:102:-229.30,-30.73,-156.88:99
-chr1	5004874	rs55883351	G	A	211.60	PASS	AC=1;AF=0.50;AN=2;DB;DP=82;Dels=0.00;HRun=0;HaplotypeScore=1.86;MQ=41.17;MQ0=0;OQ=1434.24;QD=17.49;SB=-707.75	GT:AD:DP:GL:GQ	0/1:39,43:79:-170.52,-23.81,-118.83:99
-chr1	5005796	.	T	G	22.56	PASS	AC=1;AF=0.50;AN=2;DP=70;Dels=0.00;HRun=2;HaplotypeScore=0.97;MQ=52.68;MQ0=0;OQ=1101.12;QD=15.73;SB=-417.74	GT:AD:DP:GL:GQ	0/1:29,41:66:-133.27,-19.88,-106.95:99
-chr1	5005889	rs10737394	A	G	342.71	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=55.43;MQ0=0;OQ=434.38;QD=9.05;SB=-233.28	GT:AD:DP:GL:GQ	0/1:27,21:46:-60.59,-13.87,-106.69:99
-chr1	5006532	rs10799156	G	C	195.83	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=38.14;MQ0=9;OQ=508.53;QD=10.38;SB=-226.35	GT:AD:DP:GL:GQ	0/1:19,30:34:-64.39,-10.25,-81.21:99
-chr1	5007005	rs6603829	T	C	0.07	PASS	AC=1;AF=0.50;AN=2;DB;DP=78;Dels=0.00;HRun=0;HaplotypeScore=16.12;MQ=27.87;MQ0=17;OQ=171.08;QD=2.19;SB=-108.70	GT:AD:DP:GL:GQ	0/1:51,27:35:-30.94,-10.55,-97.26:99
-chr1	5007006	rs6603830	G	A	0.04	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DB;DP=78;Dels=0.00;HRun=0;HaplotypeScore=18.32;MQ=27.85;MQ0=18;OQ=165.82;QD=2.13;SB=-81.55	GT:AD:DP:GL:GQ	0/1:59,19:36:-30.72,-10.85,-97.29:99
-chr1	5007287	.	C	G	0.46	PASS	AC=1;AF=0.50;AN=2;DP=52;Dels=0.00;HRun=1;HaplotypeScore=8.19;MQ=48.27;MQ0=4;OQ=754.87;QD=14.52;SB=-244.08	GT:AD:DP:GL:GQ	0/1:26,25:44:-92.04,-13.27,-89.64:99
-chr1	5007421	.	A	G	0.01	FDRtranche2.00to10.00	AC=1;AF=0.50;AN=2;DP=98;Dels=0.00;HRun=1;HaplotypeScore=5.43;MQ=22.24;MQ0=26;OQ=110.20;QD=1.12;SB=7.49	GT:AD:DP:GL:GQ	0/1:85,12:42:-26.95,-12.65,-140.65:99
-chr1	5007424	.	G	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=93;Dels=0.00;HRun=2;HaplotypeScore=3.53;MQ=23.00;MQ0=24;OQ=143.47;QD=1.54;SB=3.27	GT:AD:DP:GL:GQ	0/1:81,12:42:-30.29,-12.66,-152.47:99
-chr1	5011084	.	C	G	46.29	PASS	AC=1;AF=0.50;AN=2;DP=93;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=45.50;MQ0=2;OQ=1885.25;QD=20.27;SB=-717.97	GT:AD:DP:GL:GQ	0/1:41,52:88:-218.32,-26.51,-163.98:99
-chr1	5011731	.	C	T	18.24	PASS	AC=1;AF=0.50;AN=2;DP=87;Dels=0.00;HRun=2;HaplotypeScore=0.79;MQ=54.65;MQ0=1;OQ=1577.37;QD=18.13;SB=-623.62	GT:AD:DP:GL:GQ	0/1:41,46:86:-186.92,-25.90,-147.64:99
-chr1	5012084	rs10915327	C	T	347.57	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=48.94;MQ0=2;OQ=1240.99;QD=17.24;SB=-606.09	GT:AD:DP:GL:GQ	0/1:32,40:68:-147.88,-20.49,-101.20:99
-chr1	5012508	.	G	A	165.62	PASS	AC=1;AF=0.50;AN=2;DP=57;Dels=0.00;HRun=0;HaplotypeScore=0.74;MQ=34.81;MQ0=2;OQ=954.73;QD=16.75;SB=-470.48	GT:AD:DP:GL:GQ	0/1:23,33:48:-113.23,-14.48,-57.23:99
-chr1	5014453	.	C	A	65.76	PASS	AC=1;AF=0.50;AN=2;DP=89;Dels=0.00;HRun=1;HaplotypeScore=0.92;MQ=59.79;MQ0=0;OQ=1613.72;QD=18.13;SB=-734.55	GT:AD:DP:GL:GQ	0/1:38,51:88:-191.16,-26.50,-131.97:99
-chr1	5016018	.	T	G	165.96	PASS	AC=1;AF=0.50;AN=2;DP=74;Dels=0.00;HRun=0;HaplotypeScore=0.87;MQ=60.00;MQ0=0;OQ=1295.09;QD=17.50;SB=-624.73	GT:AD:DP:GL:GQ	0/1:31,43:74:-155.08,-22.29,-116.52:99
-chr1	5018516	rs4262591	A	T	76.12	PASS	AC=1;AF=0.50;AN=2;DB;DP=89;Dels=0.00;HRun=2;HaplotypeScore=0.94;MQ=59.27;MQ0=0;OQ=1137.62;QD=12.78;SB=-520.24	GT:AD:DP:GL:GQ	0/1:50,39:87:-143.25,-26.20,-190.22:99
-chr1	5020923	rs970119	A	C	493.82	PASS	AC=1;AF=0.50;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=718.78;QD=10.27;SB=-241.77	GT:AD:DP:GL:GQ	0/1:40,30:69:-95.95,-20.78,-149.31:99
-chr1	5023267	.	C	G	91.77	PASS	AC=1;AF=0.50;AN=2;DP=42;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.92;MQ0=0;OQ=800.92;QD=19.07;SB=-315.01	GT:AD:DP:GL:GQ	0/1:20,22:41:-95.73,-12.36,-81.61:99
-chr1	5024719	rs1563792	G	A	196.62	PASS	AC=1;AF=0.50;AN=2;DB;DP=82;Dels=0.00;HRun=2;HaplotypeScore=0.99;MQ=59.54;MQ0=0;OQ=1348.55;QD=16.45;SB=-599.05	GT:AD:DP:GL:GQ	0/1:42,40:80:-162.25,-24.11,-132.60:99
-chr1	5027451	rs56184292	G	T	6.36	PASS	AC=1;AF=0.50;AN=2;DB;DP=94;Dels=0.00;HRun=4;HaplotypeScore=0.58;MQ=60.00;MQ0=0;OQ=1415.10;QD=15.05;SB=-721.57	GT:AD:DP:GL:GQ	0/1:44,49:93:-172.81,-28.02,-154.91:99
-chr1	5029434	rs2061494	T	A	49.68	PASS	AC=1;AF=0.50;AN=2;DB;DP=81;Dels=0.00;HRun=2;HaplotypeScore=1.72;MQ=59.72;MQ0=0;OQ=1567.79;QD=19.36;SB=-635.43	GT:AD:DP:GL:GQ	0/1:33,47:79:-183.86,-23.79,-122.93:99
-chr1	5029438	rs2061493	T	A	66.27	PASS	AC=1;AF=0.50;AN=2;DB;DP=81;Dels=0.00;HRun=2;HaplotypeScore=1.72;MQ=59.72;MQ0=0;OQ=1477.11;QD=18.24;SB=-663.80	GT:AD:DP:GL:GQ	0/1:33,48:80:-175.09,-24.10,-128.48:99
-chr1	5029774	rs55724572	C	A	223.76	PASS	AC=1;AF=0.50;AN=2;DB;DP=101;Dels=0.00;HRun=0;HaplotypeScore=0.92;MQ=59.17;MQ0=0;OQ=1394.44;QD=13.81;SB=-671.07	GT:AD:DP:GL:GQ	0/1:55,46:101:-173.14,-30.41,-200.20:99
-chr1	5029802	rs56297253	G	A	420.62	PASS	AC=1;AF=0.50;AN=2;DB;DP=102;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.18;MQ0=0;OQ=1452.74;QD=14.24;SB=-632.72	GT:AD:DP:GL:GQ	0/1:58,44:100:-178.69,-30.14,-182.65:99
-chr1	5030141	rs1459758	C	G	545.16	PASS	AC=2;AF=1.00;AN=2;DB;DP=67;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.66;MQ0=0;OQ=2835.80;QD=42.33;SB=-1264.90	GT:AD:DP:GL:GQ	1/1:0,67:65:-287.18,-19.58,-0.01:99
-chr1	5032542	rs977665	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=92;Dels=0.00;HRun=14;HaplotypeScore=4.90;MQ=58.74;MQ0=0;OQ=53.47;QD=0.58;SB=128.44	GT:AD:DP:GL:GQ	0/1:77,15:69:-29.43,-20.80,-218.90:86.30
-chr1	5036504	rs922123	T	C	526.95	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.12;MQ0=0;OQ=805.20;QD=10.88;SB=-361.22	GT:AD:DP:GL:GQ	0/1:44,30:74:-106.10,-22.29,-176.34:99
-chr1	5036703	rs55875722	T	A	259.30	PASS	AC=1;AF=0.50;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=59.65;MQ0=0;OQ=1241.65;QD=18.81;SB=-625.13	GT:AD:DP:GL:GQ	0/1:28,38:64:-146.72,-19.28,-96.42:99
-chr1	5036704	rs922124	T	A	61.83	PASS	AC=2;AF=1.00;AN=2;DB;DP=69;Dels=0.00;HRun=2;HaplotypeScore=0.48;MQ=59.67;MQ0=0;OQ=2561.19;QD=37.12;SB=-1099.66	GT:AD:DP:GL:GQ	1/1:0,69:68:-259.72,-20.48,-0.02:99
-chr1	5036974	rs56077964	G	A	617	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.22;MQ0=0;OQ=2268.61;QD=38.45;SB=-1080.42	GT:AD:DP:GL:GQ	1/1:0,59:56:-230.46,-16.87,-0.01:99
-chr1	5039060	rs56186517	C	T	567.90	PASS	AC=2;AF=1.00;AN=2;DB;DP=89;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.53;MQ0=0;OQ=3555.73;QD=39.95;SB=-1607.16	GT:AD:DP:GL:GQ	1/1:0,89:87:-354.57,-26.20,-0.02:99
-chr1	5039732	rs56347558	T	C	203.59	PASS	AC=2;AF=1.00;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=1.44;MQ=59.06;MQ0=0;OQ=2530.73;QD=34.20;SB=-928.36	GT:AD:DP:GL:GQ	1/1:0,73:71:-256.68,-21.39,-0.02:99
-chr1	5040152	rs3128686	G	T	232.26	PASS	AC=2;AF=1.00;AN=2;DB;DP=78;Dels=0.00;HRun=0;HaplotypeScore=2.36;MQ=59.70;MQ0=0;OQ=2534.37;QD=32.49;SB=-1255.28	GT:AD:DP:GL:GQ	1/1:1,77:71:-257.05,-21.39,-0.03:99
-chr1	5040933	rs12045197	A	T	91.33	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=2.81;MQ=44.79;MQ0=0;OQ=1582.06;QD=35.96;SB=-689.38	GT:AD:DP:GL:GQ	1/1:0,44:44:-161.81,-13.26,-0.02:99
-chr1	5041153	rs3128687	G	T	199.02	PASS	AC=2;AF=1.00;AN=2;DB;DP=79;Dels=0.00;HRun=1;HaplotypeScore=0.95;MQ=55.94;MQ0=0;OQ=2861.17;QD=36.22;SB=-1432.06	GT:AD:DP:GL:GQ	1/1:0,79:77:-289.72,-23.19,-0.02:99
-chr1	5041314	rs3128688	A	T	418.75	PASS	AC=2;AF=1.00;AN=2;DB;DP=72;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=57.72;MQ0=0;OQ=2724.95;QD=37.85;SB=-1190.46	GT:AD:DP:GL:GQ	1/1:0,72:72:-276.10,-21.69,-0.02:99
-chr1	5041500	rs3128689	C	A	313.60	PASS	AC=2;AF=1.00;AN=2;DB;DP=82;Dels=0.00;HRun=0;HaplotypeScore=1.24;MQ=59.77;MQ0=0;OQ=2974.21;QD=36.27;SB=-1175.38	GT:AD:DP:GL:GQ	1/1:0,82:81:-301.03,-24.39,-0.02:99
-chr1	5042266	rs10915339	G	A	611.24	PASS	AC=2;AF=1.00;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.20;MQ0=0;OQ=2730.95;QD=39.01;SB=-1105.02	GT:AD:DP:GL:GQ	1/1:0,70:70:-276.70,-21.09,-0.02:99
-chr1	5042286	rs10915340	T	C	619.37	PASS	AC=2;AF=1.00;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.86;MQ0=0;OQ=2323.00;QD=35.20;SB=-939.39	GT:AD:DP:GL:GQ	1/1:0,65:65:-235.90,-19.58,-0.02:99
-chr1	5042412	rs10915341	T	G	227.06	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=1;HaplotypeScore=0.87;MQ=59.39;MQ0=0;OQ=2175.06;QD=35.66;SB=-984.12	GT:AD:DP:GL:GQ	1/1:0,61:61:-221.11,-18.37,-0.01:99
-chr1	5042489	rs12029437	C	G	85.77	PASS	AC=2;AF=1.00;AN=2;DB;DP=72;Dels=0.00;HRun=1;HaplotypeScore=2.70;MQ=59.16;MQ0=0;OQ=2913.26;QD=40.46;SB=-1456.73	GT:AD:DP:GL:GQ	1/1:0,72:69:-294.94,-20.80,-0.03:99
-chr1	5042644	rs12047111	A	G	505.22	PASS	AC=2;AF=1.00;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.46;MQ0=0;OQ=1237.53;QD=28.78;SB=-430.81	GT:AD:DP:GL:GQ	1/1:0,43:41:-127.38,-12.37,-0.05:99
-chr1	5042678	rs2334263	T	C	624.61	PASS	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.35;MQ0=0;OQ=1911.69;QD=29.87;SB=-888.47	GT:AD:DP:GL:GQ	1/1:0,64:60:-194.81,-18.10,-0.06:99
-chr1	5043104	rs10799159	C	A	257.58	PASS	AC=2;AF=1.00;AN=2;DB;DP=85;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=59.14;MQ0=0;OQ=3046.41;QD=35.84;SB=-1505.91	GT:AD:DP:GL:GQ	1/1:0,85:84:-308.25,-25.30,-0.02:99
-chr1	5043177	rs10799160	G	A	205.89	PASS	AC=2;AF=1.00;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=1.49;MQ=59.29;MQ0=0;OQ=2756.78;QD=37.25;SB=-1155.91	GT:AD:DP:GL:GQ	1/1:1,72:71:-282.75,-21.39,-3.49:99
-chr1	5043218	rs10799161	A	C	127.41	PASS	AC=2;AF=1.00;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=59.10;MQ0=0;OQ=2285.87;QD=29.69;SB=-810.83	GT:AD:DP:GL:GQ	1/1:0,77:71:-232.22,-21.39,-0.05:99
-chr1	5048318	.	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=69;Dels=0.00;HRun=4;HaplotypeScore=11.35;MQ=48.17;MQ0=0;OQ=57.54;QD=0.83;SB=77.27	GT:AD:DP:GL:GQ	0/1:47,22:47:-23.20,-14.17,-150.00:90.38
-chr1	5048545	rs10915343	T	C	699.40	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.89;MQ0=0;OQ=1690.53;QD=34.50;SB=-831.35	GT:AD:DP:GL:GQ	1/1:0,49:48:-172.65,-14.46,-0.01:99
-chr1	5050626	rs3101213	A	G	203.57	PASS	AC=2;AF=1.00;AN=2;DB;DP=79;Dels=0.00;HRun=1;HaplotypeScore=0.47;MQ=59.71;MQ0=0;OQ=2864.75;QD=36.26;SB=-1335.60	GT:AD:DP:GL:GQ	1/1:0,79:79:-290.08,-23.79,-0.02:99
-chr1	5051336	rs2199215	T	C	701.57	PASS	AC=2;AF=1.00;AN=2;DB;DP=83;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.44;MQ0=0;OQ=2974.37;QD=35.84;SB=-1419.92	GT:AD:DP:GL:GQ	1/1:0,83:83:-301.05,-25.00,-0.02:99
-chr1	5052019	rs12121092	G	T	639.83	PASS	AC=2;AF=1.00;AN=2;DB;DP=76;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.70;MQ0=0;OQ=2775.75;QD=36.52;SB=-1128.45	GT:AD:DP:GL:GQ	1/1:0,76:76:-281.18,-22.89,-0.02:99
-chr1	5057740	rs55852005	G	A	37.87	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=3;HaplotypeScore=1.46;MQ=59.22;MQ0=0;OQ=1090.29;QD=18.48;SB=-513.03	GT:AD:DP:GL:GQ	0/1:26,33:57:-129.48,-17.17,-87.67:99
-chr1	5058085	rs4949171	C	T	168.96	PASS	AC=2;AF=1.00;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=1.62;MQ=59.33;MQ0=0;OQ=2116.23;QD=37.79;SB=-957.98	GT:AD:DP:GL:GQ	1/1:0,56:55:-215.23,-16.58,-0.02:99
-chr1	5058717	rs9803863	G	A	206.60	PASS	AC=2;AF=1.00;AN=2;DB;DP=70;Dels=0.00;HRun=1;HaplotypeScore=0.99;MQ=59.13;MQ0=0;OQ=2766.44;QD=39.52;SB=-1272.71	GT:AD:DP:GL:GQ	1/1:0,69:70:-283.01,-23.72,-2.78:99
-chr1	5059210	rs982156	T	C	60.22	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=2;HaplotypeScore=0.49;MQ=59.24;MQ0=0;OQ=1823.01;QD=33.15;SB=-568.39	GT:AD:DP:GL:GQ	1/1:0,55:54:-185.91,-16.27,-0.03:99
-chr1	5060220	rs992597	C	T	157.27	PASS	AC=2;AF=1.00;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=1.89;MQ=59.01;MQ0=0;OQ=2915.53;QD=38.36;SB=-981.32	GT:AD:DP:GL:GQ	1/1:0,76:74:-295.16,-22.30,-0.02:99
-chr1	5060522	rs2242157	G	T	298.92	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=0.58;MQ=59.45;MQ0=0;OQ=2405.81;QD=35.38;SB=-942.03	GT:AD:DP:GL:GQ	1/1:0,68:68:-244.19,-20.49,-0.03:99
-chr1	5060591	rs1459766	T	G	395.54	PASS	AC=2;AF=1.00;AN=2;DB;DP=74;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.24;MQ0=0;OQ=2600.59;QD=35.14;SB=-1143.14	GT:AD:DP:GL:GQ	1/1:0,74:73:-263.67,-21.99,-0.02:99
-chr1	5061734	rs9439532	C	T	112.42	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=1;HaplotypeScore=2.81;MQ=59.34;MQ0=0;OQ=2118.20;QD=37.16;SB=-1042.39	GT:AD:DP:GL:GQ	1/1:0,57:54:-215.42,-16.27,-0.02:99
-chr1	5062366	rs6683881	C	T	35.99	PASS	AC=2;AF=1.00;AN=2;DB;DP=91;Dels=0.00;HRun=1;HaplotypeScore=1.70;MQ=59.80;MQ0=0;OQ=3619.28;QD=39.77;SB=-1734.02	GT:AD:DP:GL:GQ	1/1:0,91:89:-360.93,-26.81,-0.02:99
-chr1	5062541	rs4949170	A	G	156.11	PASS	AC=2;AF=1.00;AN=2;DB;DP=79;Dels=0.00;HRun=0;HaplotypeScore=1.86;MQ=59.71;MQ0=0;OQ=2632.93;QD=33.33;SB=-1332.58	GT:AD:DP:GL:GQ	1/1:0,79:75:-266.90,-22.59,-0.03:99
-chr1	5062567	rs4949169	A	T	172.52	PASS	AC=2;AF=1.00;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=1.83;MQ=59.68;MQ0=0;OQ=2759.54;QD=37.80;SB=-995.13	GT:AD:DP:GL:GQ	1/1:0,73:72:-279.55,-21.68,-0.01:99
-chr1	5063485	rs9439576	C	G	98.90	PASS	AC=2;AF=1.00;AN=2;DB;DP=78;Dels=0.00;HRun=1;HaplotypeScore=1.11;MQ=59.17;MQ0=0;OQ=3111.26;QD=39.89;SB=-1145.60	GT:AD:DP:GL:GQ	1/1:0,77:71:-314.73,-21.39,-0.02:99
-chr1	5063671	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=60;Dels=0.00;HRun=2;HaplotypeScore=26.54;MQ=57.06;MQ0=0;OQ=128.17;QD=2.14;SB=77.28	GT:AD:DP:GL:GQ	0/1:38,22:39:-27.89,-11.79,-122.93:99
-chr1	5064284	rs2169090	T	C	707.36	PASS	AC=2;AF=1.00;AN=2;DB;DP=89;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.41;MQ0=0;OQ=3152.45;QD=35.42;SB=-1370.23	GT:AD:DP:GL:GQ	1/1:0,89:88:-318.85,-26.50,-0.02:99
-chr1	5066340	rs57000660	A	G	484.39	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=766.60;QD=12.99;SB=-402.18	GT:AD:DP:GL:GQ	0/1:32,27:59:-97.71,-17.77,-131.87:99
-chr1	5066393	rs1037809	C	T	706.58	PASS	AC=2;AF=1.00;AN=2;DB;DP=78;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=3074.28;QD=39.41;SB=-1449.38	GT:AD:DP:GL:GQ	1/1:0,78:78:-311.04,-23.50,-0.02:99
-chr1	5068397	rs6659363	G	C	337.44	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=1.05;MQ=59.22;MQ0=0;OQ=768.71;QD=14.24;SB=-229.04	GT:AD:DP:GL:GQ	0/1:31,23:53:-96.12,-15.97,-137.34:99
-chr1	5068500	rs12124337	A	C	365.74	PASS	AC=1;AF=0.50;AN=2;DB;DP=78;Dels=0.00;HRun=0;HaplotypeScore=0.87;MQ=60.00;MQ0=0;OQ=1243.29;QD=15.94;SB=-471.71	GT:AD:DP:GL:GQ	0/1:35,43:77:-150.81,-23.19,-127.77:99
-chr1	5068523	rs10733013	C	T	471.58	PASS	AC=1;AF=0.50;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=60.00;MQ0=0;OQ=1107.71;QD=14.39;SB=-422.79	GT:AD:DP:GL:GQ	0/1:43,34:75:-136.66,-22.60,-133.09:99
-chr1	5069554	rs2722789	G	A	592.26	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1009.56;QD=14.02;SB=-503.00	GT:AD:DP:GL:GQ	0/1:41,31:72:-125.95,-21.71,-131.55:99
-chr1	5070551	rs4949160	A	T	476.97	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=59.42;MQ0=0;OQ=1068.05;QD=14.83;SB=-488.53	GT:AD:DP:GL:GQ	0/1:37,35:71:-131.47,-21.38,-142.74:99
-chr1	5071819	.	G	A	258.71	PASS	AC=1;AF=0.50;AN=2;DP=75;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.44;MQ0=0;OQ=1213.24;QD=16.18;SB=-353.81	GT:AD:DP:GL:GQ	0/1:39,36:75:-147.20,-22.59,-142.20:99
-chr1	5071854	.	T	A	81.17	PASS	AC=1;AF=0.50;AN=2;DP=81;Dels=0.00;HRun=1;HaplotypeScore=0.95;MQ=60.00;MQ0=0;OQ=1149.23;QD=14.19;SB=-304.96	GT:AD:DP:GL:GQ	0/1:43,38:80:-142.31,-24.10,-164.66:99
-chr1	5072229	.	G	A	304.80	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=81;Dels=0.01;HRun=0;HaplotypeScore=64.90;MQ=44.02;MQ0=0;QD=3.76;SB=86.27	GT:AD:DP:GL:GQ	0/1:66,14:79:-57.26,-23.50,-230.57:99
-chr1	5072230	.	C	G	37.37	DPFilter;LowQual;SnpCluster	AC=1;AF=0.50;AN=2;DP=83;Dels=0.01;HRun=2;HaplotypeScore=55.89;MQ=43.72;MQ0=0;QD=0.45;SB=80.30	GT:AD:DP:GL:GQ	0/1:67,6:72:-38.59,-31.57,-277.78:70.20
-chr1	5072236	.	A	G	214.30	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=80;Dels=0.08;HRun=2;HaplotypeScore=77.80;MQ=44.49;MQ0=0;QD=2.68;SB=83.29	GT:AD:DP:GL:GQ	0/1:56,12:72:-66.82,-42.10,-235.08:99
-chr1	5072261	.	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=81;Dels=0.05;HRun=0;HaplotypeScore=73.45;MQ=43.15;MQ0=0;OQ=399.38;QD=4.93;SB=83.29	GT:AD:DP:GL:GQ	0/1:51,25:67:-62.51,-19.29,-172.53:99
-chr1	5072278	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=86;Dels=0.01;HRun=1;HaplotypeScore=43.28;MQ=42.83;MQ0=0;OQ=260.49;QD=3.03;SB=63.28	GT:AD:DP:GL:GQ	0/1:59,19:75:-74.72,-45.39,-204.92:99
-chr1	5072305	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=82;Dels=0.04;HRun=0;HaplotypeScore=77.14;MQ=40.79;MQ0=0;OQ=744.26;QD=9.08;SB=-270.19	GT:AD:DP:GL:GQ	0/1:44,35:70:-97.91,-20.20,-140.23:99
-chr1	5072314	.	C	A	26.92	LowQual	AC=1;AF=0.50;AN=2;DP=80;Dels=0.00;HRun=1;HaplotypeScore=53.92;MQ=40.19;MQ0=0;QD=0.34;SB=-28.60	GT:AD:DP:GL:GQ	0/1:60,11:56:-29.71,-23.73,-169.35:59.74
-chr1	5072329	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=71;Dels=0.01;HRun=0;HaplotypeScore=74.94;MQ=38.44;MQ0=0;OQ=775.14;QD=10.92;SB=-292.22	GT:AD:DP:GL:GQ	0/1:41,28:64:-99.78,-18.98,-129.83:99
-chr1	5072338	.	C	G	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=63;Dels=0.02;HRun=2;HaplotypeScore=51.40;MQ=37.08;MQ0=0;OQ=162.47;QD=2.58;SB=101.36	GT:AD:DP:GL:GQ	0/1:48,8:57:-50.13,-30.60,-201.42:99
-chr1	5072354	.	A	G	70.72	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=68;Dels=0.01;HRun=3;HaplotypeScore=80.87;MQ=34.07;MQ0=1;QD=1.04;SB=50.19	GT:AD:DP:GL:GQ	0/1:55,12:60:-28.14,-17.78,-195.72:99
-chr1	5072357	.	A	G	633.36	SnpCluster	AC=1;AF=0.50;AN=2;DP=67;Dels=0.01;HRun=1;HaplotypeScore=71.93;MQ=33.53;MQ0=1;QD=9.45;SB=-235.45	GT:AD:DP:GL:GQ	0/1:28,25:61:-115.70,-49.08,-135.16:99
-chr1	5072359	.	A	C	486.53	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=69;Dels=0.03;HRun=0;HaplotypeScore=52.12;MQ=33.41;MQ0=1;QD=7.05;SB=62.18	GT:AD:DP:GL:GQ	0/1:42,24:63:-73.40,-21.46,-136.62:99
-chr1	5072383	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=101;Dels=0.00;HRun=1;HaplotypeScore=82.78;MQ=35.86;MQ0=1;OQ=50.85;QD=0.50;SB=43.30	GT:AD:DP:GL:GQ	0/1:88,10:72:-37.48,-29.11,-217.86:83.68
-chr1	5072395	.	C	A	570.19	SnpCluster	AC=1;AF=0.50;AN=2;DP=99;Dels=0.02;HRun=1;HaplotypeScore=88.86;MQ=38.13;MQ0=1;QD=5.76;SB=-12.89	GT:AD:DP:GL:GQ	0/1:64,28:75:-96.04,-35.74,-177.41:99
-chr1	5072402	.	A	G	56.63	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=98;Dels=0.00;HRun=3;HaplotypeScore=106.83;MQ=38.72;MQ0=1;QD=0.58;SB=77.28	GT:AD:DP:GL:GQ	0/1:88,10:70:-30.04,-21.10,-237.13:89.47
-chr1	5072405	.	G	T	211.27	DPFilter;SnpCluster	AC=1;AF=0.50;AN=2;DP=95;Dels=0.03;HRun=0;HaplotypeScore=106.15;MQ=39.10;MQ0=1;QD=2.22;SB=86.26	GT:AD:DP:GL:GQ	0/1:74,17:80:-48.52,-24.11,-223.42:99
-chr1	5072419	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=93;Dels=0.00;HRun=1;HaplotypeScore=52.76;MQ=39.26;MQ0=1;OQ=413.09;QD=4.44;SB=8.43	GT:AD:DP:GL:GQ	0/1:71,20:77:-71.28,-26.69,-194.57:99
-chr1	5072442	.	A	G	31.37	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=65;Dels=0.00;HRun=2;HaplotypeScore=72.31;MQ=41.30;MQ0=0;QD=0.48;SB=47.17	GT:AD:DP:GL:GQ	0/1:57,8:62:-25.11,-18.69,-212.28:64.20
-chr1	5073664	rs2611423	C	A	218.42	PASS	AC=2;AF=1.00;AN=2;DB;DP=69;Dels=0.00;HRun=1;HaplotypeScore=1.00;MQ=60.00;MQ0=0;OQ=2432.37;QD=35.25;SB=-1208.34	GT:AD:DP:GL:GQ	1/1:0,69:67:-246.84,-20.18,-0.02:99
-chr1	5073938	rs2611424	A	G	134.32	PASS	AC=2;AF=1.00;AN=2;DB;DP=81;Dels=0.00;HRun=2;HaplotypeScore=0.73;MQ=59.25;MQ0=0;OQ=2912.91;QD=35.96;SB=-1287.55	GT:AD:DP:GL:GQ	1/1:0,81:80:-294.90,-24.09,-0.02:99
-chr1	5074030	rs2611425	C	T	598.88	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=57.51;MQ0=0;OQ=2372.22;QD=38.89;SB=-1023.68	GT:AD:DP:GL:GQ	1/1:0,61:60:-240.82,-18.07,-0.01:99
-chr1	5074510	rs9439534	C	T	637.40	PASS	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=43.93;MQ0=0;OQ=2321.21;QD=36.27;SB=-1159.05	GT:AD:DP:GL:GQ	1/1:0,64:59:-235.72,-17.77,-0.02:99
-chr1	5074638	rs57003830	G	C	372.48	PASS	AC=1;AF=0.50;AN=2;DB;DP=87;Dels=0.00;HRun=0;HaplotypeScore=0.83;MQ=43.54;MQ0=4;OQ=1370.10;QD=15.75;SB=-494.22	GT:AD:DP:GL:GQ	0/1:45,42:79:-164.10,-23.81,-179.75:99
-chr1	5075049	rs9439577	C	T	95.46	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=2.23;MQ=38.28;MQ0=7;OQ=1971.59;QD=31.30;SB=-484.14	GT:AD:DP:GL:GQ	1/1:0,62:51:-200.77,-15.37,-0.03:99
-chr1	5075121	rs9439535	A	G	238.22	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=43.82;MQ0=4;OQ=1529.43;QD=28.32;SB=-495.19	GT:AD:DP:GL:GQ	1/1:0,54:47:-156.56,-14.17,-0.03:99
-chr1	5075150	rs9439578	T	G	135.05	PASS	AC=2;AF=1.00;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=2.71;MQ=50.05;MQ0=3;OQ=2063.78;QD=31.75;SB=-748.06	GT:AD:DP:GL:GQ	1/1:0,65:60:-209.99,-18.08,-0.02:99
-chr1	5075197	rs10915347	C	T	55.81	PASS	AC=2;AF=1.00;AN=2;DB;DP=66;Dels=0.00;HRun=1;HaplotypeScore=2.29;MQ=47.56;MQ0=6;OQ=2171.81;QD=32.91;SB=-915.72	GT:AD:DP:GL:GQ	1/1:0,65:56:-220.79,-16.88,-0.02:99
-chr1	5075319	rs28828787	G	A	102.87	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=1.30;MQ=26.02;MQ0=15;OQ=432.78;QD=8.32;SB=-48.66	GT:AD:DP:GL:GQ	0/1:29,23:28:-55.00,-8.44,-46.26:99
-chr1	5075370	rs10799164	C	T	16.89	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=0;HaplotypeScore=0.63;MQ=20.22;MQ0=13;OQ=746.84;QD=17.78;SB=-10.00	GT:AD:DP:GL:GQ	1/1:2,40:19:-78.27,-5.72,-0.00:57.19
-chr1	5075558	rs10799165	C	T	9.35	PASS	AC=2;AF=1.00;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=9.90;MQ=22.74;MQ0=30;OQ=955.91;QD=12.58;SB=-324.43	GT:AD:DP:GL:GQ	1/1:31,45:25:-99.18,-7.53,-0.01:75.24
-chr1	5075601	rs10753349	C	T	1.18	PASS	AC=2;AF=1.00;AN=2;DB;DP=81;Dels=0.00;HRun=0;HaplotypeScore=10.53;MQ=14.77;MQ0=51;OQ=525.81;QD=6.49;SB=-249.33	GT:AD:DP:GL:GQ	1/1:43,38:14:-56.17,-4.22,-0.00:42.14
-chr1	5075696	rs4949168	A	G	0.23	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=1;HaplotypeScore=5.94;MQ=11.29;MQ0=39;OQ=183.21;QD=2.91;SB=-118.05	GT:AD:DP:GL:GQ	1/1:33,30:6:-21.89,-1.81,-0.00:18.06
-chr1	5075699	rs10799166	G	C	0.14	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=2;HaplotypeScore=5.78;MQ=10.86;MQ0=38;OQ=173.64;QD=2.85;SB=-103.85	GT:AD:DP:GL:GQ	1/1:32,29:5:-20.93,-1.51,-0.00:15.05
-chr1	5075751	rs4949159	C	A	0.57	PASS	AC=2;AF=1.00;AN=2;DB;DP=36;Dels=0.00;HRun=1;HaplotypeScore=9.84;MQ=21.77;MQ0=1;OQ=523.96;QD=14.55;SB=-10.00	GT:AD:DP:GL:GQ	1/1:2,33:15:-55.98,-4.52,-0.00:45.14
-chr1	5075757	rs4949167	T	C	1.62	PASS	AC=2;AF=1.00;AN=2;DB;DP=42;Dels=0.00;HRun=1;HaplotypeScore=5.17;MQ=21.64;MQ0=3;OQ=605.43;QD=14.41;SB=-10.00	GT:AD:DP:GL:GQ	1/1:7,35:18:-64.13,-5.42,-0.00:54.16
-chr1	5076314	rs9439579	C	G	74.36	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=3.92;MQ=43.71;MQ0=2;OQ=2095.83;QD=33.80;SB=-956.72	GT:AD:DP:GL:GQ	1/1:3,59:49:-213.18,-14.76,-0.01:99
-chr1	5076393	rs10915349	G	A	1.75	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=6.65;MQ=47.36;MQ0=1;OQ=1988.87;QD=34.29;SB=-955.74	GT:AD:DP:GL:GQ	1/1:1,57:52:-202.50,-15.68,-0.03:99
-chr1	5076841	rs10799167	C	T	211.34	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=45.50;MQ0=4;OQ=2210.86;QD=35.66;SB=-962.98	GT:AD:DP:GL:GQ	1/1:1,61:56:-224.69,-16.87,-0.02:99
-chr1	5077036	rs10799168	A	G	167.61	PASS	AC=2;AF=1.00;AN=2;DB;DP=27;Dels=0.00;HRun=1;HaplotypeScore=0.93;MQ=21.14;MQ0=7;OQ=400.64;QD=14.84;SB=-196.71	GT:AD:DP:GL:GQ	1/1:8,19:13:-43.66,-3.92,-0.01:39.11
-chr1	5077055	rs7414866	A	G	123.85	PASS	AC=2;AF=1.00;AN=2;DB;DP=21;Dels=0.00;HRun=0;HaplotypeScore=0.73;MQ=21.33;MQ0=4;OQ=281.43;QD=13.40;SB=-64.87	GT:AD:DP:GL:GQ	1/1:4,17:10:-31.74,-3.02,-0.01:30.04
-chr1	5077077	rs7412613	C	T	3.36	PASS	AC=2;AF=1.00;AN=2;DB;DP=18;Dels=0.00;HRun=1;HaplotypeScore=1.37;MQ=22.40;MQ0=3;OQ=333.18;QD=18.51;SB=-10.00	GT:AD:DP:GL:GQ	1/1:2,15:9:-36.90,-2.71,-0.00:27.09
-chr1	5077090	.	C	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=28;Dels=0.00;HRun=2;HaplotypeScore=4.92;MQ=29.30;MQ0=3;OQ=51.83;QD=1.85;SB=-3.99	GT:AD:DP:GL:GQ	0/1:19,9:11:-11.79,-3.32,-22.43:84.66
-chr1	5077136	rs55919453	T	G	371.05	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=38.18;MQ0=2;OQ=1590.74;QD=31.81;SB=-546.07	GT:AD:DP:GL:GQ	1/1:0,50:44:-162.67,-13.25,-0.01:99
-chr1	5077346	rs28778348	C	A	55.21	PASS	AC=2;AF=1.00;AN=2;DB;DP=30;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=26.70;MQ0=2;OQ=838.40;QD=27.95;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,29:24:-87.43,-7.23,-0.01:72.21
-chr1	5077349	rs28898289	T	G	16.95	PASS	AC=2;AF=1.00;AN=2;DB;DP=31;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=26.06;MQ0=2;OQ=780.24;QD=25.17;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,31:23:-81.62,-6.93,-0.01:69.20
-chr1	5077435	rs7415381	A	T	121.52	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=1.10;MQ=26.22;MQ0=5;OQ=1349.62;QD=28.72;SB=-637.67	GT:AD:DP:GL:GQ	1/1:0,47:37:-138.56,-11.15,-0.01:99
-chr1	5077528	rs56184987	T	C	231.69	PASS	AC=2;AF=1.00;AN=2;DB;DP=43;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=24.13;MQ0=2;OQ=814.91;QD=18.95;SB=-252.77	GT:AD:DP:GL:GQ	1/1:0,43:27:-85.10,-8.15,-0.03:81.19
-chr1	5077549	rs55934905	G	A	0.24	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=3;HaplotypeScore=0.98;MQ=23.80;MQ0=7;OQ=1118.88;QD=22.38;SB=-246.01	GT:AD:DP:GL:GQ	1/1:0,50:29:-115.48,-8.74,-0.01:87.28
-chr1	5077770	rs60669416	C	A	584.28	Indel	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=10;HaplotypeScore=19.78;MQ=46.83;MQ0=2;QD=11.69;SB=-270.35	GT:AD:DP:GL:GQ	0/1:25,24:45:-75.27,-13.56,-79.00:99
-chr1	5077806	rs2334261	C	T	3.91	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.02;HRun=2;HaplotypeScore=6.33;MQ=31.47;MQ0=13;OQ=1098.90;QD=20.35;SB=-473.36	GT:AD:DP:GL:GQ	1/1:5,48:29:-113.48,-8.43,-0.01:84.27
-chr1	5077915	rs11582268	A	T	437.65	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=22.80;MQ0=5;OQ=869.48;QD=19.32;SB=-460.68	GT:AD:DP:GL:GQ	1/1:0,44:25:-90.55,-7.54,-0.02:75.21
-chr1	5078308	rs12043988	C	A	291.59	PASS	AC=2;AF=1.00;AN=2;DB;DP=66;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=47.74;MQ0=0;OQ=2467.70;QD=37.39;SB=-935.67	GT:AD:DP:GL:GQ	1/1:0,66:65:-250.36,-19.57,-0.01:99
-chr1	5078509	rs9439503	T	C	20.38	PASS	AC=2;AF=1.00;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=4.15;MQ=38.39;MQ0=4;OQ=1877.97;QD=28.03;SB=-657.32	GT:AD:DP:GL:GQ	1/1:1,66:53:-191.40,-15.96,-0.02:99
-chr1	5078532	rs9439504	C	G	494.66	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=35.41;MQ0=3;OQ=2205.88;QD=36.16;SB=-588.53	GT:AD:DP:GL:GQ	1/1:0,61:50:-224.18,-15.06,-0.01:99
-chr1	5078612	rs10915350	C	T	169.93	PASS	AC=2;AF=1.00;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=1.32;MQ=47.49;MQ0=1;OQ=2196.12;QD=36.60;SB=-847.62	GT:AD:DP:GL:GQ	1/1:1,58:57:-223.22,-17.18,-0.02:99
-chr1	5079390	rs10799170	A	C	350.19	PASS	AC=2;AF=1.00;AN=2;DB;DP=79;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=57.35;MQ0=0;OQ=2787.95;QD=35.29;SB=-1421.63	GT:AD:DP:GL:GQ	1/1:0,79:78:-282.40,-23.49,-0.02:99
-chr1	5079434	rs10915352	G	T	571.75	PASS	AC=2;AF=1.00;AN=2;DB;DP=86;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.02;MQ0=0;OQ=3162.32;QD=36.77;SB=-1557.78	GT:AD:DP:GL:GQ	1/1:0,86:86:-319.84,-25.90,-0.02:99
-chr1	5079595	rs10915353	G	C	43.37	PASS	AC=2;AF=1.00;AN=2;DB;DP=65;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=59.36;MQ0=0;OQ=2638.35;QD=40.59;SB=-999.16	GT:AD:DP:GL:GQ	1/1:0,65:61:-267.45,-18.39,-0.03:99
-chr1	5079666	rs6701939	T	C	563.06	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.70;MQ0=0;OQ=2172.86;QD=35.05;SB=-713.27	GT:AD:DP:GL:GQ	1/1:0,62:60:-220.89,-18.07,-0.02:99
-chr1	5080376	.	C	T	202.08	PASS	AC=1;AF=0.50;AN=2;DP=38;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.09;MQ0=0;OQ=426.51;QD=11.22;SB=-188.16	GT:AD:DP:GL:GQ	0/1:24,14:37:-57.08,-11.15,-81.03:99
-chr1	5080399	.	C	A	264.12	DPFilter;Indel	AC=1;AF=0.50;AN=2;DP=57;Dels=0.00;HRun=20;HaplotypeScore=11.69;MQ=57.12;MQ0=0;QD=4.63;SB=53.19	GT:AD:DP:GL:GQ	0/1:38,19:40:-41.75,-12.05,-100.11:99
-chr1	5080680	rs10753350	A	G	105.81	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=2.00;MQ=58.32;MQ0=0;OQ=1525.28;QD=28.25;SB=-610.83	GT:AD:DP:GL:GQ	1/1:0,54:51:-156.18,-15.39,-0.07:99
-chr1	5080690	rs10753351	A	C	1.11	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=3;HaplotypeScore=2.95;MQ=55.25;MQ0=0;OQ=2140.46;QD=31.48;SB=-1004.07	GT:AD:DP:GL:GQ	1/1:0,68:63:-217.66,-18.98,-0.03:99
-chr1	5081475	rs10737396	T	C	76.32	PASS	AC=2;AF=1.00;AN=2;DB;DP=71;Dels=0.00;HRun=3;HaplotypeScore=0.91;MQ=60.00;MQ0=0;OQ=2367.06;QD=33.34;SB=-935.73	GT:AD:DP:GL:GQ	1/1:0,71:67:-240.32,-20.19,-0.03:99
-chr1	5081878	rs2722794	T	G	569.46	PASS	AC=2;AF=1.00;AN=2;DB;DP=81;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.93;MQ0=0;OQ=2825.92;QD=34.89;SB=-1425.62	GT:AD:DP:GL:GQ	1/1:0,81:79:-286.20,-23.79,-0.02:99
-chr1	5081972	rs2611426	T	A	81.80	PASS	AC=2;AF=1.00;AN=2;DB;DP=66;Dels=0.00;HRun=1;HaplotypeScore=1.88;MQ=59.18;MQ0=0;OQ=2310.37;QD=35.01;SB=-624.95	GT:AD:DP:GL:GQ	1/1:0,66:62:-234.64,-18.68,-0.02:99
-chr1	5083407	rs2045587	A	G	34.52	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=2;HaplotypeScore=0.16;MQ=59.31;MQ0=0;OQ=1821.48;QD=33.73;SB=-913.93	GT:AD:DP:GL:GQ	1/1:0,54:52:-185.75,-15.67,-0.02:99
-chr1	5083733	rs4313443	C	T	652.84	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2295.78;QD=39.58;SB=-913.70	GT:AD:DP:GL:GQ	1/1:0,58:58:-233.18,-17.47,-0.01:99
-chr1	5083785	rs4356099	G	A	29.40	PASS	AC=2;AF=1.00;AN=2;DB;DP=43;Dels=0.00;HRun=1;HaplotypeScore=1.30;MQ=60.00;MQ0=0;OQ=1676.22;QD=38.98;SB=-527.70	GT:AD:DP:GL:GQ	1/1:0,43:43:-171.22,-12.96,-0.02:99
-chr1	5083937	rs2722793	G	T	729.18	PASS	AC=2;AF=1.00;AN=2;DB;DP=75;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.44;MQ0=0;OQ=2771.95;QD=36.96;SB=-1328.90	GT:AD:DP:GL:GQ	1/1:0,75:75:-280.80,-22.59,-0.02:99
-chr1	5084549	rs10753352	G	C	80.52	PASS	AC=2;AF=1.00;AN=2;DB;DP=73;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=59.74;MQ0=0;OQ=3116.41;QD=42.69;SB=-1439.29	GT:AD:DP:GL:GQ	1/1:0,73:73:-315.25,-22.00,-0.03:99
-chr1	5085006	rs2722792	C	A	486.51	PASS	AC=2;AF=1.00;AN=2;DB;DP=82;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.46;MQ0=0;OQ=3029.86;QD=36.95;SB=-1518.84	GT:AD:DP:GL:GQ	1/1:0,82:81:-306.59,-24.39,-0.02:99
-chr1	5085686	rs2611419	A	C	735.40	PASS	AC=2;AF=1.00;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.68;MQ0=0;OQ=2513.45;QD=35.40;SB=-1104.10	GT:AD:DP:GL:GQ	1/1:0,71:71:-254.95,-21.38,-0.02:99
-chr1	5087139	rs2611420	C	G	615.49	PASS	AC=2;AF=1.00;AN=2;DB;DP=78;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=3365.59;QD=43.15;SB=-1251.98	GT:AD:DP:GL:GQ	1/1:0,78:76:-335.56,-22.90,-0.03:99
-chr1	5087240	rs2611421	C	T	489.75	PASS	AC=2;AF=1.00;AN=2;DB;DP=76;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.70;MQ0=0;OQ=3117.95;QD=41.03;SB=-1433.39	GT:AD:DP:GL:GQ	1/1:0,76:76:-315.39,-22.89,-0.01:99
-chr1	5087511	rs2722791	G	A	190.82	PASS	AC=2;AF=1.00;AN=2;DB;DP=85;Dels=0.00;HRun=0;HaplotypeScore=2.68;MQ=59.73;MQ0=0;OQ=3174.39;QD=37.35;SB=-1593.03	GT:AD:DP:GL:GQ	1/1:0,85:81:-321.05,-24.40,-0.02:99
-chr1	5088299	rs2611422	C	T	24.96	PASS	AC=2;AF=1.00;AN=2;DB;DP=82;Dels=0.01;HRun=4;HaplotypeScore=1.63;MQ=59.49;MQ0=0;OQ=3139.82;QD=38.29;SB=-1155.06	GT:AD:DP:GL:GQ	1/1:0,81:82:-317.60,-24.41,-0.03:99
-chr1	5088851	rs898338	G	T	586.23	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1967.21;QD=32.25;SB=-901.77	GT:AD:DP:GL:GQ	1/1:0,61:55:-200.32,-16.57,-0.02:99
-chr1	5091688	rs11588537	G	C	0.39	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=2;HaplotypeScore=2.02;MQ=59.44;MQ0=0;OQ=1667.23;QD=40.66;SB=-503.13	GT:AD:DP:GL:GQ	1/1:0,41:41:-170.32,-12.36,-0.02:99
-chr1	5092085	rs4245628	G	A	151.82	PASS	AC=2;AF=1.00;AN=2;DB;DP=78;Dels=0.00;HRun=0;HaplotypeScore=2.46;MQ=59.41;MQ0=0;OQ=3066.13;QD=39.31;SB=-1187.61	GT:AD:DP:GL:GQ	1/1:0,78:77:-310.22,-23.19,-0.02:99
-chr1	5092563	rs6671889	C	A	625.41	PASS	AC=2;AF=1.00;AN=2;DB;DP=83;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.16;MQ0=0;OQ=3060.89;QD=36.88;SB=-1358.20	GT:AD:DP:GL:GQ	1/1:0,83:82:-309.69,-24.69,-0.01:99
-chr1	5092609	rs4949165	G	C	633.91	PASS	AC=2;AF=1.00;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.03;MQ0=0;OQ=3087.67;QD=42.88;SB=-1533.25	GT:AD:DP:GL:GQ	1/1:0,72:72:-312.37,-21.69,-0.02:99
-chr1	5092886	rs10492923	A	G	560.12	PASS	AC=1;AF=0.50;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.68;MQ0=0;OQ=897.90;QD=12.47;SB=-469.86	GT:AD:DP:GL:GQ	0/1:34,38:69:-113.87,-20.80,-132.03:99
-chr1	5093533	rs9439505	C	T	206.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=0;HaplotypeScore=2.29;MQ=59.13;MQ0=0;OQ=1236.94;QD=16.49;SB=-238.14	GT:AD:DP:GL:GQ	0/1:38,37:73:-148.98,-22.00,-117.20:99
-chr1	5093841	rs12143009	G	A	1328.69	Indel	AC=1;AF=0.50;AN=2;DB;DP=87;Dels=0.00;HRun=3;HaplotypeScore=2.85;MQ=59.81;MQ0=1;QD=15.27;SB=-676.33	GT:AD:DP:GL:GQ	0/1:46,41:84:-161.46,-25.31,-156.05:99
-chr1	5094064	rs16840020	C	T	380.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=1;HaplotypeScore=1.11;MQ=59.40;MQ0=0;OQ=843.58;QD=13.61;SB=-387.37	GT:AD:DP:GL:GQ	0/1:36,26:61:-106.01,-18.37,-128.57:99
-chr1	5094308	rs9439536	C	G	94.57	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=2;HaplotypeScore=-0.06;MQ=57.94;MQ0=0;OQ=2369.61;QD=43.08;SB=-1192.92	GT:AD:DP:GL:GQ	1/1:0,55:55:-240.56,-16.57,-0.02:99
-chr1	5094675	rs9439537	G	A	205.12	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=56.69;MQ0=0;OQ=2327.54;QD=36.95;SB=-997.02	GT:AD:DP:GL:GQ	1/1:0,63:59:-236.35,-17.77,-0.02:99
-chr1	5095027	rs10737397	A	C	379.35	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.02;HRun=2;HaplotypeScore=0.00;MQ=59.56;MQ0=0;OQ=1853.36;QD=34.97;SB=-880.10	GT:AD:DP:GL:GQ	1/1:0,52:52:-188.93,-15.66,-0.01:99
-chr1	5095151	rs10915359	A	G	343.67	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=1;HaplotypeScore=1.56;MQ=60.00;MQ0=0;OQ=1130.12;QD=15.92;SB=-404.21	GT:AD:DP:GL:GQ	0/1:33,38:69:-137.08,-20.78,-130.21:99
-chr1	5095177	rs12122020	C	T	430.32	PASS	AC=1;AF=0.50;AN=2;DB;DP=86;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1196.16;QD=13.91;SB=-341.80	GT:AD:DP:GL:GQ	0/1:49,37:84:-148.20,-25.30,-177.14:99
-chr1	5095231	rs10492925	T	C	590.40	PASS	AC=1;AF=0.50;AN=2;DB;DP=85;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.56;MQ0=0;OQ=1272.89;QD=14.98;SB=-556.65	GT:AD:DP:GL:GQ	0/1:35,50:83:-155.59,-25.02,-138.70:99
-chr1	5095242	rs12045223	A	T	548.90	PASS	AC=1;AF=0.50;AN=2;DB;DP=84;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.56;MQ0=0;OQ=1555.76;QD=18.52;SB=-658.48	GT:AD:DP:GL:GQ	0/1:35,49:82:-183.56,-24.70,-128.89:99
-chr1	5096599	rs9439506	A	G	501.16	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.61;MQ0=0;OQ=607.79;QD=10.30;SB=-265.38	GT:AD:DP:GL:GQ	0/1:36,23:58:-81.54,-17.47,-140.55:99
-chr1	5097069	.	C	T	27.83	PASS	AC=2;AF=1.00;AN=2;DP=8;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=53.95;MQ0=0;OQ=280.61;QD=35.08;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,8:8:-31.64,-2.41,-0.00:24.08
-chr1	5097076	.	C	A	58.51	PASS	AC=2;AF=1.00;AN=2;DP=8;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=53.95;MQ0=0;OQ=242.27;QD=30.28;SB=-10.00	GT:AD:DP:GL:GQ	1/1:0,8:8:-27.81,-2.41,-0.00:24.07
-chr1	5097414	rs34593428	C	T	209.20	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=1;HaplotypeScore=1.12;MQ=60.00;MQ0=0;OQ=915.00;QD=14.52;SB=-282.17	GT:AD:DP:GL:GQ	0/1:34,29:62:-113.46,-18.67,-123.11:99
-chr1	5097811	rs10799172	T	C	730.17	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.45;MQ0=0;OQ=2361.85;QD=34.73;SB=-1109.84	GT:AD:DP:GL:GQ	1/1:0,68:67:-239.79,-20.18,-0.02:99
-chr1	5097837	rs10799173	C	T	610.42	PASS	AC=2;AF=1.00;AN=2;DB;DP=73;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.49;MQ0=0;OQ=2894.02;QD=39.64;SB=-1458.48	GT:AD:DP:GL:GQ	1/1:0,73:72:-293.00,-21.69,-0.02:99
-chr1	5098649	rs16840051	C	T	466.71	PASS	AC=1;AF=0.50;AN=2;DB;DP=78;Dels=0.00;HRun=0;HaplotypeScore=0.87;MQ=59.76;MQ0=0;OQ=1115.98;QD=14.31;SB=-521.66	GT:AD:DP:GL:GQ	0/1:43,35:76:-137.77,-22.89,-150.84:99
-chr1	5099594	rs61576661	T	C	2.98	PASS	AC=1;AF=0.50;AN=2;DB;DP=54;Dels=0.02;HRun=0;HaplotypeScore=9.91;MQ=59.43;MQ0=0;OQ=660.15;QD=12.23;SB=-250.93	GT:AD:DP:GL:GQ	0/1:29,24:54:-85.27,-15.97,-115.92:99
-chr1	5100592	rs6681359	C	T	709.39	PASS	AC=2;AF=1.00;AN=2;DB;DP=75;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.69;MQ0=0;OQ=3001.23;QD=40.02;SB=-1288.71	GT:AD:DP:GL:GQ	1/1:0,75:75:-303.72,-22.59,-0.02:99
-chr1	5102008	rs7543139	A	C	24.50	PASS	AC=1;AF=0.50;AN=2;DB;DP=70;Dels=0.00;HRun=1;HaplotypeScore=8.00;MQ=58.40;MQ0=0;OQ=1023.25;QD=14.62;SB=-311.81	GT:AD:DP:GL:GQ	0/1:35,35:67:-125.80,-20.19,-114.71:99
-chr1	5102179	rs16840055	A	G	103.26	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=2;HaplotypeScore=0.48;MQ=59.41;MQ0=0;OQ=1029.92;QD=14.51;SB=-438.97	GT:AD:DP:GL:GQ	0/1:36,35:69:-127.06,-20.79,-136.54:99
-chr1	5103146	rs4484964	T	C	669.95	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.67;MQ0=0;OQ=2031.10;QD=32.24;SB=-774.73	GT:AD:DP:GL:GQ	1/1:0,63:62:-206.74,-18.69,-0.04:99
-chr1	5103788	.	G	T	167.53	PASS	AC=1;AF=0.50;AN=2;DP=76;Dels=0.00;HRun=0;HaplotypeScore=1.05;MQ=59.70;MQ0=0;OQ=1064.37;QD=14.00;SB=-541.64	GT:AD:DP:GL:GQ	0/1:38,38:74:-132.01,-22.29,-131.40:99
-chr1	5106305	rs9439509	G	A	600.29	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.19;MQ0=0;OQ=2218.17;QD=38.92;SB=-991.33	GT:AD:DP:GL:GQ	1/1:0,57:57:-225.42,-17.18,-0.02:99
-chr1	5106499	rs4345839	A	G	149.68	PASS	AC=2;AF=1.00;AN=2;DB;DP=65;Dels=0.00;HRun=1;HaplotypeScore=1.56;MQ=59.43;MQ0=0;OQ=2177.60;QD=33.50;SB=-1108.75	GT:AD:DP:GL:GQ	1/1:0,64:62:-221.38,-18.68,-0.03:99
-chr1	5107407	rs4584438	T	G	105.42	PASS	AC=2;AF=1.00;AN=2;DB;DP=71;Dels=0.00;HRun=2;HaplotypeScore=1.66;MQ=60.00;MQ0=0;OQ=2390.91;QD=33.67;SB=-961.60	GT:AD:DP:GL:GQ	1/1:0,70:70:-246.35,-24.25,-3.68:99
-chr1	5107616	rs4543848	T	C	111.63	PASS	AC=2;AF=1.00;AN=2;DB;DP=67;Dels=0.00;HRun=1;HaplotypeScore=2.89;MQ=59.72;MQ0=0;OQ=2325.30;QD=34.71;SB=-962.92	GT:AD:DP:GL:GQ	1/1:0,67:66:-236.14,-19.88,-0.02:99
-chr1	5107713	.	A	C	103.40	PASS	AC=1;AF=0.50;AN=2;DP=81;Dels=0.00;HRun=1;HaplotypeScore=0.99;MQ=60.00;MQ0=0;OQ=1036.38;QD=12.79;SB=-351.52	GT:AD:DP:GL:GQ	0/1:44,37:81:-131.32,-24.40,-159.14:99
-chr1	5109104	rs12025231	C	T	369.55	PASS	AC=1;AF=0.50;AN=2;DB;DP=97;Dels=0.00;HRun=0;HaplotypeScore=1.60;MQ=60.00;MQ0=0;OQ=1428.81;QD=14.73;SB=-339.81	GT:AD:DP:GL:GQ	0/1:53,44:96:-175.10,-28.94,-171.50:99
-chr1	5109781	rs9439510	C	G	474.11	PASS	AC=2;AF=1.00;AN=2;DB;DP=75;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=3322.39;QD=44.30;SB=-1477.33	GT:AD:DP:GL:GQ	1/1:0,75:75:-331.24,-22.59,-0.02:99
-chr1	5109984	rs12121369	C	A	599.91	PASS	AC=1;AF=0.50;AN=2;DB;DP=86;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.73;MQ0=0;OQ=1366.71;QD=15.89;SB=-516.80	GT:AD:DP:GL:GQ	0/1:40,46:85:-165.55,-25.60,-144.36:99
-chr1	5110261	rs7538704	G	C	501.84	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.59;MQ0=0;OQ=1089.65;QD=15.35;SB=-449.75	GT:AD:DP:GL:GQ	0/1:33,38:67:-132.47,-20.22,-140.33:99
-chr1	5110586	rs4462197	C	T	256.57	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=60.00;MQ0=0;OQ=2327.86;QD=37.55;SB=-1085.00	GT:AD:DP:GL:GQ	1/1:0,62:59:-236.39,-17.78,-0.02:99
-chr1	5110994	rs10753353	T	C	229.27	PASS	AC=2;AF=1.00;AN=2;DB;DP=72;Dels=0.00;HRun=1;HaplotypeScore=0.87;MQ=59.74;MQ0=0;OQ=2543.07;QD=35.32;SB=-1168.48	GT:AD:DP:GL:GQ	1/1:0,72:71:-257.91,-21.39,-0.02:99
-chr1	5111198	rs12027352	C	T	56.90	PASS	AC=1;AF=0.50;AN=2;DB;DP=93;Dels=0.00;HRun=2;HaplotypeScore=3.00;MQ=59.50;MQ0=0;OQ=1422.29;QD=15.29;SB=-680.29	GT:AD:DP:GL:GQ	0/1:47,46:88:-172.02,-26.51,-161.50:99
-chr1	5111405	rs4314925	G	A	196.97	PASS	AC=2;AF=1.00;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=0.58;MQ=59.36;MQ0=0;OQ=2517.06;QD=38.72;SB=-1234.63	GT:AD:DP:GL:GQ	1/1:0,65:64:-255.31,-19.28,-0.02:99
-chr1	5112055	rs12145645	G	A	578.52	PASS	AC=1;AF=0.50;AN=2;DB;DP=74;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.38;MQ0=0;OQ=1010.93;QD=13.66;SB=-362.83	GT:AD:DP:GL:GQ	0/1:42,32:72:-126.06,-21.69,-149.75:99
-chr1	5112088	rs61762208	G	A	38.27	PASS	AC=1;AF=0.50;AN=2;DB;DP=83;Dels=0.00;HRun=2;HaplotypeScore=1.85;MQ=59.44;MQ0=0;OQ=1643.08;QD=19.80;SB=-651.68	GT:AD:DP:GL:GQ	0/1:37,46:82:-192.29,-24.70,-131.13:99
-chr1	5112135	rs12741116	A	G	713.71	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.66;MQ0=0;OQ=2397.16;QD=35.25;SB=-898.68	GT:AD:DP:GL:GQ	1/1:0,68:67:-243.32,-20.18,-0.02:99
-chr1	5113244	rs4600091	T	C	489.07	PASS	AC=2;AF=1.00;AN=2;DB;DP=84;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2494.81;QD=29.70;SB=-1138.12	GT:AD:DP:GL:GQ	1/1:0,84:79:-253.13,-23.82,-0.07:99
-chr1	5113507	rs10753354	C	G	401.42	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.65;MQ0=0;OQ=2295.20;QD=42.50;SB=-1097.09	GT:AD:DP:GL:GQ	1/1:0,54:54:-233.13,-16.28,-0.02:99
-chr1	5113815	rs6698288	G	A	330.13	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2134.65;QD=39.53;SB=-887.16	GT:AD:DP:GL:GQ	1/1:0,54:54:-217.07,-16.27,-0.02:99
-chr1	5114383	rs7517431	C	G	606.11	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.11;MQ0=0;OQ=920.14;QD=14.61;SB=-463.75	GT:AD:DP:GL:GQ	0/1:36,27:62:-113.98,-18.68,-155.27:99
-chr1	5114445	rs7517449	C	T	297.77	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=58.63;MQ0=0;OQ=2115.05;QD=38.46;SB=-1037.87	GT:AD:DP:GL:GQ	1/1:0,55:54:-215.11,-16.27,-0.02:99
-chr1	5114723	rs10915361	C	T	120.85	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=3.02;MQ=58.20;MQ0=0;OQ=931.19;QD=19.81;SB=-478.50	GT:AD:DP:GL:GQ	0/1:19,28:46:-110.26,-13.86,-62.96:99
-chr1	5115596	rs9439538	T	C	593.80	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1568.48;QD=30.16;SB=-606.93	GT:AD:DP:GL:GQ	1/1:0,52:50:-160.48,-15.08,-0.04:99
-chr1	5115679	rs12021698	A	T	372.77	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=59.37;MQ0=0;OQ=887.17;QD=15.04;SB=-310.70	GT:AD:DP:GL:GQ	0/1:30,29:59:-109.77,-17.77,-114.78:99
-chr1	5115822	rs56173770	C	G	132.01	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1600.81;QD=26.68;SB=-808.51	GT:AD:DP:GL:GQ	0/1:19,41:59:-181.14,-17.77,-78.42:99
-chr1	5115851	rs9439539	T	A	636.93	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.73;MQ0=0;OQ=2566.28;QD=37.74;SB=-1304.50	GT:AD:DP:GL:GQ	1/1:0,68:67:-260.22,-20.18,-0.01:99
-chr1	5117179	rs5009987	A	G	1517.20	Indel	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=20.42;MQ=58.93;MQ0=0;QD=27.59;SB=-603.23	GT:AD:DP:GL:GQ	1/1:2,53:53:-162.87,-15.98,-7.57:84.15
-chr1	5117504	rs10799174	G	A	14.48	PASS	AC=1;AF=0.50;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=8.52;MQ=58.73;MQ0=0;OQ=1003.11;QD=18.24;SB=-483.50	GT:AD:DP:GL:GQ	0/1:24,31:52:-119.27,-15.67,-72.69:99
-chr1	5117533	rs6672724	C	T	186.08	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.58;MQ=58.63;MQ0=0;OQ=1901.56;QD=37.29;SB=-943.75	GT:AD:DP:GL:GQ	1/1:0,51:50:-193.77,-15.07,-0.02:99
-chr1	5118461	rs9439511	C	T	378.94	PASS	AC=1;AF=0.50;AN=2;DB;DP=77;Dels=0.00;HRun=1;HaplotypeScore=0.83;MQ=58.91;MQ0=0;OQ=1153.56;QD=14.98;SB=-536.73	GT:AD:DP:GL:GQ	0/1:42,35:77:-141.84,-23.20,-148.03:99
-chr1	5119340	rs12401983	G	A	186.94	PASS	AC=1;AF=0.50;AN=2;DB;DP=78;Dels=0.00;HRun=1;HaplotypeScore=2.35;MQ=52.79;MQ0=0;OQ=1320.64;QD=16.93;SB=-541.57	GT:AD:DP:GL:GQ	0/1:37,40:76:-158.24,-22.89,-135.98:99
-chr1	5119644	rs55835407	G	A	140.46	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=1;HaplotypeScore=0.47;MQ=42.95;MQ0=4;OQ=797.21;QD=12.86;SB=-199.88	GT:AD:DP:GL:GQ	0/1:35,27:56:-99.88,-16.88,-103.36:99
-chr1	5119704	rs56293801	T	C	75.11	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=1;HaplotypeScore=2.00;MQ=42.91;MQ0=1;OQ=434.63;QD=8.36;SB=-212.22	GT:AD:DP:GL:GQ	0/1:32,20:46:-60.61,-13.87,-109.45:99
-chr1	5119914	rs12097824	T	C	114	PASS	AC=1;AF=0.50;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=3.43;MQ=39.01;MQ0=0;OQ=589.79;QD=9.51;SB=-187.41	GT:AD:DP:GL:GQ	0/1:33,29:57:-79.44,-17.18,-127.34:99
-chr1	5120013	rs56126017	C	G	210.02	PASS	AC=1;AF=0.50;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=1.93;MQ=35.32;MQ0=0;OQ=1020.64;QD=14.38;SB=-272.51	GT:AD:DP:GL:GQ	0/1:43,28:70:-126.44,-21.09,-178.51:99
-chr1	5120085	.	G	A	0.02	FDRtranche1.00to2.00	AC=1;AF=0.50;AN=2;DP=101;Dels=0.01;HRun=0;HaplotypeScore=11.89;MQ=34.93;MQ0=0;OQ=541.17;QD=5.36;SB=13.62	GT:AD:DP:GL:GQ	0/1:77,23:97:-86.32,-28.91,-276.66:99
-chr1	5120089	.	T	A	0.03	FDRtranche0.10to1.00	AC=1;AF=0.50;AN=2;DP=102;Dels=0.00;HRun=0;HaplotypeScore=10.97;MQ=34.87;MQ0=0;OQ=894.55;QD=8.77;SB=-13.59	GT:AD:DP:GL:GQ	0/1:68,34:99:-122.56,-29.82,-255.26:99
-chr1	5120116	.	A	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=117;Dels=0.02;HRun=0;HaplotypeScore=143.29;MQ=34.92;MQ0=0;OQ=962.81;QD=8.23;SB=-91.05	GT:AD:DP:GL:GQ	0/1:76,37:114:-138.10,-38.53,-297.11:99
-chr1	5120146	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=141;Dels=0.01;HRun=0;HaplotypeScore=240.33;MQ=33.11;MQ0=0;OQ=492.54;QD=3.49;SB=14.98	GT:AD:DP:GL:GQ	0/1:116,23:120:-88.08,-35.54,-336.13:99
-chr1	5120150	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=150;Dels=0.03;HRun=0;HaplotypeScore=253.70;MQ=32.31;MQ0=0;OQ=526.30;QD=3.51;SB=-209.96	GT:AD:DP:GL:GQ	0/1:122,23:125:-96.24,-40.33,-348.30:99
-chr1	5120166	rs61762214	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DB;DP=169;Dels=0.02;HRun=0;HaplotypeScore=340.16;MQ=31.74;MQ0=0;OQ=707.91;QD=4.19;SB=-238.38	GT:AD:DP:GL:GQ	0/1:128,38:158:-120.76,-46.69,-441.60:99
-chr1	5120182	.	T	C	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=171;Dels=0.00;HRun=0;HaplotypeScore=247.34;MQ=30.32;MQ0=1;OQ=181.12;QD=1.06;SB=99.79	GT:AD:DP:GL:GQ	0/1:146,25:160:-69.62,-48.22,-544.70:99
-chr1	5120218	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=186;Dels=0.00;HRun=0;HaplotypeScore=296.87;MQ=30.08;MQ0=1;OQ=467.02;QD=2.51;SB=-243.49	GT:AD:DP:GL:GQ	0/1:160,26:175:-102.70,-52.71,-541.07:99
-chr1	5120238	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=187;Dels=0.01;HRun=0;HaplotypeScore=156.33;MQ=31.62;MQ0=1;OQ=98.86;QD=0.53;SB=35.37	GT:AD:DP:GL:GQ	0/1:164,15:172:-86.49,-73.32,-562.87:99
-chr1	5120240	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=184;Dels=0.01;HRun=0;HaplotypeScore=148.66;MQ=31.61;MQ0=1;OQ=319.23;QD=1.73;SB=30.34	GT:AD:DP:GL:GQ	0/1:160,22:170:-85.81,-50.61,-526.60:99
-chr1	5120250	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=164;Dels=0.00;HRun=0;HaplotypeScore=149.91;MQ=33.54;MQ0=1;OQ=262.42;QD=1.60;SB=170.48	GT:AD:DP:GL:GQ	0/1:144,20:159:-77.42,-47.90,-500.91:99
-chr1	5120252	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=152;Dels=0.00;HRun=0;HaplotypeScore=134.92;MQ=34.14;MQ0=1;OQ=1590.07;QD=10.46;SB=-170.99	GT:AD:DP:GL:GQ	0/1:98,53:143:-208.80,-46.51,-329.18:99
-chr1	5121185	.	T	C	32.44	PASS	AC=1;AF=0.50;AN=2;DP=48;Dels=0.00;HRun=0;HaplotypeScore=3.07;MQ=59.52;MQ0=0;OQ=529.93;QD=11.04;SB=-169.50	GT:AD:DP:GL:GQ	0/1:26,22:46:-70.14,-13.86,-100.33:99
-chr1	5122129	rs10915363	G	C	183.28	PASS	AC=1;AF=0.50;AN=2;DB;DP=70;Dels=0.00;HRun=2;HaplotypeScore=0.73;MQ=59.47;MQ0=0;OQ=1248.82;QD=17.84;SB=-543.72	GT:AD:DP:GL:GQ	0/1:31,39:66:-148.06,-19.89,-135.32:99
-chr1	5122156	rs10915364	G	C	495.83	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.70;MQ0=0;OQ=1017.04;QD=16.14;SB=-464.81	GT:AD:DP:GL:GQ	0/1:31,32:62:-123.68,-18.70,-134.13:99
-chr1	5122248	rs11804873	C	T	62.77	PASS	AC=1;AF=0.50;AN=2;DB;DP=38;Dels=0.00;HRun=0;HaplotypeScore=1.32;MQ=59.39;MQ0=0;OQ=700.13;QD=18.42;SB=-213.90	GT:AD:DP:GL:GQ	0/1:16,22:37:-84.44,-11.15,-55.54:99
-chr1	5122456	rs10915365	C	T	167.44	PASS	AC=1;AF=0.50;AN=2;DB;DP=39;Dels=0.00;HRun=1;HaplotypeScore=2.45;MQ=59.52;MQ0=0;OQ=504.80;QD=12.94;SB=-201.18	GT:AD:DP:GL:GQ	0/1:22,17:38:-65.21,-11.45,-78.02:99
-chr1	5122978	rs12024162	T	C	1.83	PASS	AC=2;AF=1.00;AN=2;DB;DP=65;Dels=0.00;HRun=1;HaplotypeScore=6.85;MQ=58.05;MQ0=0;OQ=2287.65;QD=35.19;SB=-898.04	GT:AD:DP:GL:GQ	1/1:1,64:63:-232.37,-18.97,-0.02:99
-chr1	5123042	rs12026730	G	A	134.42	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=3.61;MQ=56.89;MQ0=0;OQ=1205.15;QD=19.76;SB=-414.94	GT:AD:DP:GL:GQ	0/1:25,36:58:-141.29,-17.49,-70.06:99
-chr1	5123330	rs9439540	C	A	63.17	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=60.37;MQ0=0;OQ=975.37;QD=16.53;SB=-180.54	GT:AD:DP:GL:GQ	0/1:27,32:57:-117.99,-17.17,-89.17:99
-chr1	5124476	rs17366543	A	G	248.41	PASS	AC=1;AF=0.50;AN=2;DB;DP=75;Dels=0.00;HRun=1;HaplotypeScore=1.31;MQ=60.00;MQ0=0;OQ=919.81;QD=12.26;SB=-428.10	GT:AD:DP:GL:GQ	0/1:42,33:74:-117.56,-22.29,-166.31:99
-chr1	5126548	rs6690311	A	G	73.75	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=1;HaplotypeScore=3.31;MQ=60.00;MQ0=0;OQ=1952.07;QD=34.25;SB=-789.11	GT:AD:DP:GL:GQ	1/1:0,56:56:-198.81,-16.87,-0.02:99
-chr1	5126612	rs6675995	G	A	137.58	PASS	AC=2;AF=1.00;AN=2;DB;DP=69;Dels=0.00;HRun=1;HaplotypeScore=2.05;MQ=59.06;MQ0=0;OQ=2638.82;QD=38.24;SB=-1319.37	GT:AD:DP:GL:GQ	1/1:0,69:67:-267.49,-20.19,-0.02:99
-chr1	5126665	rs10799176	G	A	160.71	PASS	AC=2;AF=1.00;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=2.36;MQ=59.11;MQ0=0;OQ=2842.19;QD=38.93;SB=-1393.38	GT:AD:DP:GL:GQ	1/1:0,73:72:-287.83,-21.69,-0.02:99
-chr1	5126844	rs6685929	C	T	627.62	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2295.72;QD=37.63;SB=-1082.35	GT:AD:DP:GL:GQ	1/1:0,61:59:-233.18,-17.78,-0.02:99
-chr1	5126974	.	G	T	128.27	PASS	AC=1;AF=0.50;AN=2;DP=62;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=59.02;MQ0=0;OQ=1169.78;QD=18.87;SB=-560.81	GT:AD:DP:GL:GQ	0/1:24,38:60:-138.33,-18.07,-79.90:99
-chr1	5129269	rs11583683	C	T	146.33	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=4;HaplotypeScore=0.00;MQ=59.60;MQ0=0;OQ=2126.34;QD=37.30;SB=-795.34	GT:AD:DP:GL:GQ	1/1:0,57:56:-216.24,-16.88,-0.02:99
-chr1	5129679	rs6603817	A	G	112.83	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=3;HaplotypeScore=0.00;MQ=58.96;MQ0=0;OQ=1509.76;QD=32.82;SB=-474.53	GT:AD:DP:GL:GQ	1/1:0,46:43:-154.58,-12.95,-0.01:99
-chr1	5130606	rs4076635	G	A	636.22	PASS	AC=2;AF=1.00;AN=2;DB;DP=67;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2562.75;QD=38.25;SB=-1303.24	GT:AD:DP:GL:GQ	1/1:0,67:65:-259.88,-19.58,-0.02:99
-chr1	5131752	rs4394703	C	A	307.05	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=1.37;MQ=58.90;MQ0=0;OQ=2017.11;QD=34.19;SB=-1012.79	GT:AD:DP:GL:GQ	1/1:0,58:57:-208.21,-19.84,-2.91:99
-chr1	5132477	rs6692740	A	G	667.43	PASS	AC=2;AF=1.00;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.74;MQ0=0;OQ=2294.64;QD=31.43;SB=-1053.29	GT:AD:DP:GL:GQ	1/1:0,73:71:-233.10,-21.41,-0.05:99
-chr1	5133851	rs10492928	G	T	624.11	PASS	AC=2;AF=1.00;AN=2;DB;DP=75;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.13;MQ0=0;OQ=2734.91;QD=36.47;SB=-1337.92	GT:AD:DP:GL:GQ	1/1:0,75:75:-277.10,-22.59,-0.02:99
-chr1	5134195	rs7545119	C	A	288.26	PASS	AC=2;AF=1.00;AN=2;DB;DP=78;Dels=0.00;HRun=0;HaplotypeScore=2.20;MQ=59.11;MQ0=0;OQ=2691.33;QD=34.50;SB=-1000.80	GT:AD:DP:GL:GQ	1/1:0,78:75:-272.75,-22.59,-0.03:99
-chr1	5135504	rs10915369	C	T	488.43	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.87;MQ0=0;OQ=1900.03;QD=39.58;SB=-759.52	GT:AD:DP:GL:GQ	1/1:0,48:48:-193.60,-14.46,-0.01:99
-chr1	5135682	rs11583044	G	A	156.17	PASS	AC=2;AF=1.00;AN=2;DB;DP=44;Dels=0.00;HRun=0;HaplotypeScore=0.92;MQ=56.88;MQ0=0;OQ=1535.65;QD=34.90;SB=-689.33	GT:AD:DP:GL:GQ	1/1:0,44:41:-157.17,-12.36,-0.02:99
-chr1	5135692	rs10915370	C	T	137.61	PASS	AC=2;AF=1.00;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=56.35;MQ0=0;OQ=2137.06;QD=38.16;SB=-962.28	GT:AD:DP:GL:GQ	1/1:0,56:55:-217.31,-16.57,-0.02:99
-chr1	5138733	rs10915371	G	A	186.78	PASS	AC=2;AF=1.00;AN=2;DB;DP=94;Dels=0.00;HRun=0;HaplotypeScore=1.52;MQ=58.20;MQ0=0;OQ=3762.30;QD=40.02;SB=-1754.36	GT:AD:DP:GL:GQ	1/1:0,94:93:-375.23,-28.01,-0.02:99
-chr1	5139307	rs9439541	A	T	634.34	PASS	AC=2;AF=1.00;AN=2;DB;DP=80;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=3003.64;QD=37.55;SB=-1255.20	GT:AD:DP:GL:GQ	1/1:0,80:79:-303.97,-23.79,-0.02:99
-chr1	5139791	rs6603818	C	T	714.35	PASS	AC=2;AF=1.00;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.73;MQ0=0;OQ=2781.44;QD=39.73;SB=-1291.72	GT:AD:DP:GL:GQ	1/1:0,70:70:-281.75,-21.09,-0.02:99
-chr1	5140071	rs7547229	C	T	724.83	PASS	AC=2;AF=1.00;AN=2;DB;DP=81;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=3128.00;QD=38.62;SB=-1344.39	GT:AD:DP:GL:GQ	1/1:0,81:78:-316.40,-23.49,-0.02:99
-chr1	5140234	.	A	C	162.19	PASS	AC=1;AF=0.50;AN=2;DP=55;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=60.00;MQ0=0;OQ=858.81;QD=15.61;SB=-394.78	GT:AD:DP:GL:GQ	0/1:24,31:53:-105.13,-15.96,-88.06:99
-chr1	5141171	rs6688418	G	A	695.26	PASS	AC=2;AF=1.00;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2832.24;QD=40.46;SB=-1208.37	GT:AD:DP:GL:GQ	1/1:0,70:70:-286.82,-21.08,-0.01:99
-chr1	5141665	.	C	T	43.31	PASS	AC=1;AF=0.50;AN=2;DP=54;Dels=0.00;HRun=1;HaplotypeScore=0.98;MQ=59.95;MQ0=0;OQ=985.11;QD=18.24;SB=-409.92	GT:AD:DP:GL:GQ	0/1:25,29:53:-117.76,-15.96,-94.79:99
-chr1	5141935	rs6701052	C	T	100.43	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=1;HaplotypeScore=0.66;MQ=49.80;MQ0=8;OQ=1859.57;QD=32.06;SB=-869.02	GT:AD:DP:GL:GQ	1/1:8,50:47:-189.55,-14.16,-0.01:99
-chr1	5142041	rs12072516	A	T	329.01	PASS	AC=1;AF=0.50;AN=2;DB;DP=28;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=43.00;MQ0=0;OQ=266.78;QD=9.53;SB=-152.82	GT:AD:DP:GL:GQ	0/1:16,12:25:-37.49,-7.53,-57.93:99
-chr1	5142287	rs9286978	G	A	22.41	PASS	AC=2;AF=1.00;AN=2;DB;DP=35;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=23.68;MQ0=8;OQ=873.11;QD=24.95;SB=-85.33	GT:AD:DP:GL:GQ	1/1:3,32:23:-90.90,-6.93,-0.01:69.22
-chr1	5143205	rs6664086	T	C	86.23	PASS	AC=2;AF=1.00;AN=2;DB;DP=81;Dels=0.00;HRun=0;HaplotypeScore=3.60;MQ=58.49;MQ0=0;OQ=2734.43;QD=33.76;SB=-1255.67	GT:AD:DP:GL:GQ	1/1:1,80:78:-277.05,-23.49,-0.03:99
-chr1	5144621	rs6603819	C	A	635.83	PASS	AC=2;AF=1.00;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2574.32;QD=36.78;SB=-1238.13	GT:AD:DP:GL:GQ	1/1:0,70:70:-261.03,-21.08,-0.02:99
-chr1	5146701	rs6669501	C	T	700.51	PASS	AC=2;AF=1.00;AN=2;DB;DP=78;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.28;MQ0=0;OQ=3011.38;QD=38.61;SB=-1500.64	GT:AD:DP:GL:GQ	1/1:0,78:76:-304.75,-22.90,-0.03:99
-chr1	5146942	rs10492930	A	G	610.29	PASS	AC=2;AF=1.00;AN=2;DB;DP=80;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2413.30;QD=30.17;SB=-1138.47	GT:AD:DP:GL:GQ	1/1:0,79:77:-244.99,-23.23,-0.08:99
-chr1	5147215	rs10492931	G	A	723.45	PASS	AC=2;AF=1.00;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.22;MQ0=0;OQ=2807.87;QD=39.00;SB=-1216.01	GT:AD:DP:GL:GQ	1/1:0,72:71:-284.39,-21.39,-0.02:99
-chr1	5148161	.	G	A	24.17	PASS	AC=1;AF=0.50;AN=2;DP=76;Dels=0.00;HRun=1;HaplotypeScore=1.43;MQ=59.39;MQ0=0;OQ=1450.62;QD=19.09;SB=-417.73	GT:AD:DP:GL:GQ	0/1:33,43:74:-170.64,-22.29,-112.74:99
-chr1	5148401	rs6665697	T	C	269.23	PASS	AC=2;AF=1.00;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=59.48;MQ0=0;OQ=2231.09;QD=30.99;SB=-952.42	GT:AD:DP:GL:GQ	1/1:0,72:70:-226.75,-21.11,-0.06:99
-chr1	5150357	rs10915375	A	G	529.20	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.37;MQ0=0;OQ=1555.45;QD=31.74;SB=-790.64	GT:AD:DP:GL:GQ	1/1:0,49:49:-159.17,-14.78,-0.04:99
-chr1	5150590	.	G	T	11.56	DPFilter;LowQual	AC=1;AF=0.50;AN=2;DP=69;Dels=0.01;HRun=20;HaplotypeScore=36.67;MQ=54.55;MQ0=0;QD=0.17;SB=69.39	GT:AD:DP:GL:GQ	0/1:49,15:42:-26.08,-21.67,-128.29:44.08
-chr1	5150765	rs9439543	T	C	624.17	PASS	AC=2;AF=1.00;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.33;MQ0=0;OQ=2519.73;QD=35.49;SB=-971.41	GT:AD:DP:GL:GQ	1/1:0,71:70:-255.58,-21.09,-0.03:99
-chr1	5150768	rs9439544	C	T	629.96	PASS	AC=2;AF=1.00;AN=2;DB;DP=74;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.35;MQ0=0;OQ=2827.18;QD=38.21;SB=-1183.08	GT:AD:DP:GL:GQ	1/1:0,74:71:-286.33,-21.39,-0.02:99
-chr1	5150948	rs11583754	A	G	125.55	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=1;HaplotypeScore=1.95;MQ=56.88;MQ0=0;OQ=1724.72;QD=34.49;SB=-813.67	GT:AD:DP:GL:GQ	1/1:0,50:49:-176.07,-14.76,-0.02:99
-chr1	5153524	rs7536712	T	C	117.29	PASS	AC=2;AF=1.00;AN=2;DB;DP=80;Dels=0.00;HRun=1;HaplotypeScore=1.92;MQ=59.77;MQ0=0;OQ=2818.40;QD=35.23;SB=-1399.67	GT:AD:DP:GL:GQ	1/1:1,78:79:-289.59,-27.33,-4.17:99
-chr1	5155164	rs2722780	G	T	611.46	PASS	AC=2;AF=1.00;AN=2;DB;DP=77;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.70;MQ0=0;OQ=2724.16;QD=35.38;SB=-1305.24	GT:AD:DP:GL:GQ	1/1:0,77:77:-276.03,-23.20,-0.03:99
-chr1	5155635	rs2018394	C	G	496.66	PASS	AC=2;AF=1.00;AN=2;DB;DP=82;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.82;MQ0=0;OQ=3565.75;QD=43.48;SB=-1230.53	GT:AD:DP:GL:GQ	1/1:0,82:80:-355.57,-24.10,-0.02:99
-chr1	5156126	rs2679215	G	C	570.08	PASS	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2670.60;QD=41.73;SB=-1328.91	GT:AD:DP:GL:GQ	1/1:0,64:63:-270.67,-18.98,-0.02:99
-chr1	5156634	rs1320179	T	A	161.58	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=1.72;MQ=59.60;MQ0=0;OQ=1611.01;QD=34.28;SB=-497.40	GT:AD:DP:GL:GQ	1/1:0,47:44:-164.71,-13.26,-0.02:99
-chr1	5157054	.	G	A	104.21	PASS	AC=1;AF=0.50;AN=2;DP=57;Dels=0.00;HRun=1;HaplotypeScore=1.46;MQ=58.03;MQ0=0;OQ=746.35;QD=13.09;SB=-370.87	GT:AD:DP:GL:GQ	0/1:33,24:57:-95.09,-17.17,-121.22:99
-chr1	5157089	rs2722781	C	T	248.95	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=58.68;MQ0=0;OQ=2013.78;QD=38.00;SB=-852.01	GT:AD:DP:GL:GQ	1/1:0,53:51:-204.98,-15.36,-0.01:99
-chr1	5158014	rs2679216	A	G	582.56	PASS	AC=2;AF=1.00;AN=2;DB;DP=82;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.03;MQ0=0;OQ=2870.64;QD=35.01;SB=-1392.56	GT:AD:DP:GL:GQ	1/1:0,82:80:-290.67,-24.10,-0.03:99
-chr1	5158416	rs2722782	T	C	292.12	PASS	AC=2;AF=1.00;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=1.91;MQ=59.74;MQ0=0;OQ=2481.35;QD=34.95;SB=-1226.71	GT:AD:DP:GL:GQ	1/1:0,71:71:-251.75,-21.39,-0.03:99
-chr1	5158842	rs2679217	A	C	278.49	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=1;HaplotypeScore=-0.06;MQ=60.00;MQ0=0;OQ=2099.17;QD=33.86;SB=-765.90	GT:AD:DP:GL:GQ	1/1:0,62:61:-213.53,-18.38,-0.03:99
-chr1	5160232	rs2722783	T	C	124.50	PASS	AC=2;AF=1.00;AN=2;DB;DP=71;Dels=0.00;HRun=1;HaplotypeScore=2.20;MQ=59.02;MQ0=0;OQ=2420.10;QD=34.09;SB=-1200.16	GT:AD:DP:GL:GQ	1/1:1,69:68:-249.06,-23.31,-3.46:99
-chr1	5162761	rs2679218	T	C	309.92	PASS	AC=2;AF=1.00;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=0.92;MQ=59.65;MQ0=0;OQ=2240.61;QD=34.47;SB=-957.91	GT:AD:DP:GL:GQ	1/1:0,65:65:-227.67,-19.58,-0.02:99
-chr1	5164088	rs2722786	A	G	678.85	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.62;MQ0=0;OQ=2134.58;QD=34.99;SB=-757.97	GT:AD:DP:GL:GQ	1/1:0,61:60:-217.06,-18.07,-0.02:99
-chr1	5164377	rs2722787	T	C	664.30	PASS	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1994.32;QD=31.16;SB=-946.38	GT:AD:DP:GL:GQ	1/1:0,64:63:-203.07,-19.00,-0.06:99
-chr1	5164508	.	G	A	21.64	PASS	AC=1;AF=0.50;AN=2;DP=66;Dels=0.00;HRun=2;HaplotypeScore=1.05;MQ=60.00;MQ0=0;OQ=1023.93;QD=15.51;SB=-404.39	GT:AD:DP:GL:GQ	0/1:35,31:64:-124.97,-19.29,-108.14:99
-chr1	5165252	rs2679219	A	G	545.13	PASS	AC=2;AF=1.00;AN=2;DB;DP=78;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.70;MQ0=0;OQ=2430.87;QD=31.16;SB=-1145.16	GT:AD:DP:GL:GQ	1/1:0,78:76:-246.73,-22.91,-0.06:99
-chr1	5165298	rs2722788	C	T	111.92	PASS	AC=2;AF=1.00;AN=2;DB;DP=87;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=59.52;MQ0=0;OQ=3387.05;QD=38.93;SB=-1669.69	GT:AD:DP:GL:GQ	1/1:0,87:85:-337.71,-25.61,-0.03:99
-chr1	5166378	rs2722790	C	T	150.34	PASS	AC=2;AF=1.00;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=2.57;MQ=59.01;MQ0=0;OQ=2739.21;QD=39.13;SB=-1381.68	GT:AD:DP:GL:GQ	1/1:0,70:69:-277.52,-20.79,-0.02:99
-chr1	5170379	.	C	T	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=83;Dels=0.00;HRun=20;HaplotypeScore=3.49;MQ=51.63;MQ0=1;OQ=52.88;QD=0.64;SB=122.38	GT:AD:DP:GL:GQ	0/1:61,22:64:-27.86,-19.28,-197.27:85.72
-chr1	5172063	rs56164612	G	A	177.93	PASS	AC=1;AF=0.50;AN=2;DB;DP=50;Dels=0.00;HRun=0;HaplotypeScore=2.36;MQ=59.16;MQ0=0;OQ=776.89;QD=15.54;SB=-274.16	GT:AD:DP:GL:GQ	0/1:24,26:48:-95.43,-14.46,-86.73:99
-chr1	5191577	rs471824	A	G	242.55	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.16;MQ0=0;OQ=1721.79;QD=27.77;SB=-749.45	GT:AD:DP:GL:GQ	1/1:1,61:57:-179.88,-17.20,-4.11:99
-chr1	5191739	rs632051	C	A	18.10	PASS	AC=2;AF=1.00;AN=2;DB;DP=84;Dels=0.00;HRun=2;HaplotypeScore=4.23;MQ=58.83;MQ0=0;OQ=3137.26;QD=37.35;SB=-891.27	GT:AD:DP:GL:GQ	1/1:0,84:83:-317.33,-25.00,-0.02:99
-chr1	5193545	rs566114	T	G	200.45	PASS	AC=2;AF=1.00;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=-0.06;MQ=60.00;MQ0=0;OQ=2400.30;QD=34.29;SB=-1100.14	GT:AD:DP:GL:GQ	1/1:0,70:68:-243.64,-20.48,-0.02:99
-chr1	5194097	rs56295354	C	T	367.36	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=1.05;MQ=58.98;MQ0=0;OQ=896.66;QD=14.01;SB=-471.46	GT:AD:DP:GL:GQ	0/1:34,30:62:-111.63,-18.68,-121.51:99
-chr1	5195036	rs677735	A	G	310.10	PASS	AC=2;AF=1.00;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=1.05;MQ=59.68;MQ0=0;OQ=2493.12;QD=34.15;SB=-981.71	GT:AD:DP:GL:GQ	1/1:0,73:71:-252.92,-21.39,-0.03:99
-chr1	5195467	rs2986186	T	A	311.13	PASS	AC=2;AF=1.00;AN=2;DB;DP=76;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.45;MQ0=0;OQ=2846.52;QD=37.45;SB=-1332.00	GT:AD:DP:GL:GQ	1/1:0,76:75:-288.25,-22.59,-0.02:99
-chr1	5196704	rs2353169	T	C	724.90	PASS	AC=2;AF=1.00;AN=2;DB;DP=72;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.48;MQ0=0;OQ=2499.39;QD=34.71;SB=-983.95	GT:AD:DP:GL:GQ	1/1:0,72:72:-253.55,-21.69,-0.02:99
-chr1	5197705	rs473104	A	G	598.18	PASS	AC=2;AF=1.00;AN=2;DB;DP=76;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2654.56;QD=34.93;SB=-1319.89	GT:AD:DP:GL:GQ	1/1:0,76:74:-269.06,-22.29,-0.02:99
-chr1	5197747	rs586165	T	C	721.60	PASS	AC=2;AF=1.00;AN=2;DB;DP=77;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2710.69;QD=35.20;SB=-1278.13	GT:AD:DP:GL:GQ	1/1:0,77:76:-274.68,-22.89,-0.03:99
-chr1	5198145	rs584402	C	T	717.83	PASS	AC=2;AF=1.00;AN=2;DB;DP=69;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2714.09;QD=39.33;SB=-1353.02	GT:AD:DP:GL:GQ	1/1:0,69:69:-275.01,-20.79,-0.02:99
-chr1	5198627	rs679712	T	A	207.32	PASS	AC=2;AF=1.00;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=1.59;MQ=59.36;MQ0=0;OQ=2332.10;QD=35.88;SB=-1044.59	GT:AD:DP:GL:GQ	1/1:0,65:63:-236.81,-18.97,-0.02:99
-chr1	5198919	rs551536	T	C	66.98	PASS	AC=2;AF=1.00;AN=2;DB;DP=71;Dels=0.00;HRun=2;HaplotypeScore=0.47;MQ=59.68;MQ0=0;OQ=2254.50;QD=31.75;SB=-1121.22	GT:AD:DP:GL:GQ	1/1:0,71:70:-229.09,-21.11,-0.06:99
-chr1	5198972	rs551376	G	A	527.51	PASS	AC=2;AF=1.00;AN=2;DB;DP=71;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2736.21;QD=38.54;SB=-1372.67	GT:AD:DP:GL:GQ	1/1:0,71:69:-277.22,-20.79,-0.02:99
-chr1	5199041	rs550558	G	A	271.08	PASS	AC=2;AF=1.00;AN=2;DB;DP=76;Dels=0.00;HRun=0;HaplotypeScore=0.87;MQ=59.75;MQ0=0;OQ=2982.88;QD=39.25;SB=-1518.69	GT:AD:DP:GL:GQ	1/1:0,75:75:-301.89,-22.59,-0.02:99
-chr1	5199083	rs549773	C	A	400.22	PASS	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2265.19;QD=35.39;SB=-1149.37	GT:AD:DP:GL:GQ	1/1:0,64:63:-230.13,-18.98,-0.02:99
-chr1	5199801	rs663998	C	G	667.78	PASS	AC=2;AF=1.00;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.24;MQ0=1;OQ=2933.78;QD=41.91;SB=-1382.38	GT:AD:DP:GL:GQ	1/1:0,70:68:-296.98,-20.49,-0.02:99
-chr1	5199984	rs663142	G	T	300.03	PASS	AC=2;AF=1.00;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=0.95;MQ=57.88;MQ0=0;OQ=2524.52;QD=34.58;SB=-1263.12	GT:AD:DP:GL:GQ	1/1:0,73:71:-256.06,-21.39,-0.02:99
-chr1	5200020	rs663106	T	C	288.64	PASS	AC=2;AF=1.00;AN=2;DB;DP=80;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=57.94;MQ0=0;OQ=2324.56;QD=29.06;SB=-1068.20	GT:AD:DP:GL:GQ	1/1:0,80:72:-236.10,-21.71,-0.06:99
-chr1	5201096	rs35339923	C	T	25.91	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=2;HaplotypeScore=0.74;MQ=59.27;MQ0=0;OQ=2513.57;QD=39.90;SB=-919.70	GT:AD:DP:GL:GQ	1/1:0,63:63:-254.96,-18.98,-0.02:99
-chr1	5201932	rs611422	T	C	369.89	PASS	AC=2;AF=1.00;AN=2;DB;DP=65;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.65;MQ0=0;OQ=2205.79;QD=33.94;SB=-980.06	GT:AD:DP:GL:GQ	1/1:0,65:62:-224.19,-18.68,-0.02:99
-chr1	5201978	rs534321	A	C	83.24	PASS	AC=2;AF=1.00;AN=2;DB;DP=73;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=59.68;MQ0=0;OQ=2498.46;QD=34.23;SB=-901.19	GT:AD:DP:GL:GQ	1/1:0,73:73:-253.46,-21.99,-0.03:99
-chr1	5202029	rs534188	C	T	644.23	PASS	AC=2;AF=1.00;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.84;MQ0=0;OQ=2223.00;QD=39.70;SB=-899.19	GT:AD:DP:GL:GQ	1/1:0,56:56:-225.90,-16.87,-0.02:99
-chr1	5202175	rs12125575	G	A	578.75	PASS	AC=2;AF=1.00;AN=2;DB;DP=47;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=51.13;MQ0=0;OQ=1740.25;QD=37.03;SB=-800.07	GT:AD:DP:GL:GQ	1/1:0,47:44:-177.62,-13.25,-0.01:99
-chr1	5202200	rs610133	T	C	141.51	PASS	AC=2;AF=1.00;AN=2;DB;DP=46;Dels=0.00;HRun=0;HaplotypeScore=0.48;MQ=49.73;MQ0=0;OQ=1399.83;QD=30.43;SB=-711.63	GT:AD:DP:GL:GQ	1/1:0,46:41:-143.59,-12.36,-0.02:99
-chr1	5202222	rs511282	G	T	609.56	PASS	AC=2;AF=1.00;AN=2;DB;DP=67;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=50.02;MQ0=0;OQ=2299.71;QD=34.32;SB=-1138.31	GT:AD:DP:GL:GQ	1/1:0,67:64:-233.58,-19.28,-0.02:99
-chr1	5202265	rs599481	G	T	595.11	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=49.58;MQ0=0;OQ=2113.87;QD=33.55;SB=-993.43	GT:AD:DP:GL:GQ	1/1:0,63:58:-214.99,-17.47,-0.02:99
-chr1	5202388	rs12066405	A	G	127.75	PASS	AC=2;AF=1.00;AN=2;DB;DP=69;Dels=0.00;HRun=2;HaplotypeScore=0.99;MQ=51.98;MQ0=0;OQ=2322.85;QD=33.66;SB=-1080.10	GT:AD:DP:GL:GQ	1/1:0,69:65:-235.89,-19.58,-0.02:99
-chr1	5202422	.	T	G	419.39	Indel	AC=1;AF=0.50;AN=2;DP=58;Dels=0.00;HRun=0;HaplotypeScore=66.39;MQ=43.53;MQ0=0;QD=7.23;SB=-202.77	GT:AD:DP:GL:GQ	0/1:38,20:51:-60.59,-15.36,-121.07:99
-chr1	5202441	rs12071111	G	A	97.09	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=3.61;MQ=40.65;MQ0=0;OQ=1838.51;QD=34.69;SB=-927.74	GT:AD:DP:GL:GQ	1/1:1,52:48:-187.45,-14.46,-0.02:99
-chr1	5202467	rs12067585	T	G	27.99	PASS	AC=2;AF=1.00;AN=2;DB;DP=35;Dels=0.00;HRun=1;HaplotypeScore=0.10;MQ=52.14;MQ0=0;OQ=1141.50;QD=32.61;SB=-417.26	GT:AD:DP:GL:GQ	1/1:0,35:33:-117.74,-9.94,-0.01:99
-chr1	5202510	rs10915390	T	C	6.38	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=2;HaplotypeScore=0.16;MQ=45.77;MQ0=0;OQ=1492.54;QD=28.70;SB=-582.99	GT:AD:DP:GL:GQ	1/1:0,52:46:-152.88,-13.87,-0.04:99
-chr1	5202536	rs10915391	A	G	576.79	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=40.09;MQ0=0;OQ=1719.08;QD=33.06;SB=-769.98	GT:AD:DP:GL:GQ	1/1:0,52:48:-175.51,-14.46,-0.01:99
-chr1	5202563	.	A	G	1303.98	SnpCluster	AC=2;AF=1.00;AN=2;DP=52;Dels=0.00;HRun=0;HaplotypeScore=5.87;MQ=34.10;MQ0=0;QD=25.08;SB=-434.46	GT:AD:DP:GL:GQ	1/1:0,52:39:-134.00,-11.75,-0.02:99
-chr1	5202564	.	T	C	1560.70	SnpCluster	AC=2;AF=1.00;AN=2;DP=52;Dels=0.00;HRun=2;HaplotypeScore=5.87;MQ=34.10;MQ0=0;QD=30.01;SB=-450.83	GT:AD:DP:GL:GQ	1/1:1,51:44:-159.67,-13.26,-0.02:99
-chr1	5202566	.	C	T	1713.62	SnpCluster	AC=2;AF=1.00;AN=2;DP=52;Dels=0.00;HRun=0;HaplotypeScore=2.22;MQ=34.87;MQ0=0;QD=32.95;SB=-454.10	GT:AD:DP:GL:GQ	1/1:0,51:43:-174.96,-12.95,-0.01:99
-chr1	5202576	rs12134110	C	T	0.75	PASS	AC=2;AF=1.00;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=6.13;MQ=37.89;MQ0=0;OQ=1873.93;QD=33.46;SB=-544.73	GT:AD:DP:GL:GQ	1/1:1,55:47:-190.99,-14.16,-0.01:99
-chr1	5202767	rs2986185	A	G	288.60	PASS	AC=2;AF=1.00;AN=2;DB;DP=65;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=54.20;MQ0=0;OQ=2264.33;QD=34.84;SB=-1153.44	GT:AD:DP:GL:GQ	1/1:0,65:64:-230.04,-19.28,-0.02:99
-chr1	5202796	rs2945617	T	C	352.06	PASS	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=54.10;MQ0=0;OQ=1791.40;QD=27.99;SB=-839.97	GT:AD:DP:GL:GQ	1/1:0,64:58:-182.79,-17.50,-0.06:99
-chr1	5202844	rs2986184	C	G	260.78	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=52.86;MQ0=0;OQ=2380.85;QD=40.35;SB=-1080.09	GT:AD:DP:GL:GQ	1/1:0,59:56:-241.69,-16.88,-0.02:99
-chr1	5202908	.	C	T	49.09	PASS	AC=2;AF=1.00;AN=2;DP=45;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=56.41;MQ0=0;OQ=1679.71;QD=37.33;SB=-834.36	GT:AD:DP:GL:GQ	1/1:0,45:42:-171.56,-12.65,-0.01:99
-chr1	5203231	rs480807	G	A	112.83	PASS	AC=2;AF=1.00;AN=2;DB;DP=75;Dels=0.00;HRun=1;HaplotypeScore=1.65;MQ=59.13;MQ0=0;OQ=2991.96;QD=39.89;SB=-1079.44	GT:AD:DP:GL:GQ	1/1:0,75:75:-302.81,-22.60,-0.03:99
-chr1	5203306	rs6687834	C	T	621.90	PASS	AC=2;AF=1.00;AN=2;DB;DP=77;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=3055.40;QD=39.68;SB=-1315.34	GT:AD:DP:GL:GQ	1/1:0,77:77:-309.15,-23.20,-0.02:99
-chr1	5203354	rs584498	C	T	147.71	PASS	AC=2;AF=1.00;AN=2;DB;DP=78;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.38;MQ0=0;OQ=2983.67;QD=38.25;SB=-1435.37	GT:AD:DP:GL:GQ	1/1:0,78:75:-301.97,-22.59,-0.02:99
-chr1	5203671	rs582779	C	A	167.92	PASS	AC=2;AF=1.00;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=60.00;MQ0=0;OQ=2146.95;QD=35.78;SB=-804.85	GT:AD:DP:GL:GQ	1/1:0,60:60:-218.30,-18.08,-0.02:99
-chr1	5203886	rs474456	G	C	148.15	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=0;HaplotypeScore=3.48;MQ=58.03;MQ0=0;OQ=2254.35;QD=39.55;SB=-1087.49	GT:AD:DP:GL:GQ	1/1:0,57:55:-229.05,-16.59,-0.04:99
-chr1	5203943	rs473685	T	C	568.01	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=54.84;MQ0=0;OQ=1941.75;QD=35.30;SB=-734.93	GT:AD:DP:GL:GQ	1/1:0,55:55:-197.78,-16.57,-0.02:99
-chr1	5204037	rs472768	C	A	257.84	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=1.57;MQ=53.49;MQ0=0;OQ=2116.13;QD=35.87;SB=-808.86	GT:AD:DP:GL:GQ	1/1:0,59:58:-215.21,-17.47,-0.01:99
-chr1	5204179	rs561169	C	T	180.12	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.48;MQ=59.63;MQ0=0;OQ=1666.79;QD=32.68;SB=-839.97	GT:AD:DP:GL:GQ	1/1:0,51:44:-170.29,-13.26,-0.02:99
-chr1	5204268	rs677650	G	C	32.68	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=2;HaplotypeScore=0.58;MQ=41.36;MQ0=0;OQ=1911.63;QD=39.01;SB=-915.40	GT:AD:DP:GL:GQ	1/1:0,49:46:-194.77,-13.87,-0.02:99
-chr1	5204556	rs676589	T	A	738.91	PASS	AC=2;AF=1.00;AN=2;DB;DP=70;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=54.27;MQ0=0;OQ=2559.35;QD=36.56;SB=-1189.80	GT:AD:DP:GL:GQ	1/1:0,70:69:-259.54,-20.78,-0.02:99
-chr1	5204733	rs675738	T	C	27.97	PASS	AC=2;AF=1.00;AN=2;DB;DP=56;Dels=0.00;HRun=2;HaplotypeScore=2.20;MQ=59.17;MQ0=0;OQ=1658.38;QD=29.61;SB=-662.81	GT:AD:DP:GL:GQ	1/1:0,56:52:-169.47,-15.68,-0.05:99
-chr1	5204883	rs9439546	G	A	532.03	PASS	AC=2;AF=1.00;AN=2;DB;DP=76;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.70;MQ0=0;OQ=2940.91;QD=38.70;SB=-1192.36	GT:AD:DP:GL:GQ	1/1:0,76:75:-297.70,-22.60,-0.03:99
-chr1	5204955	rs674820	A	G	79.68	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=1;HaplotypeScore=1.76;MQ=59.62;MQ0=0;OQ=2113.60;QD=34.65;SB=-990.71	GT:AD:DP:GL:GQ	1/1:0,61:60:-214.97,-18.07,-0.02:99
-chr1	5204998	rs674421	C	T	11.79	PASS	AC=2;AF=1.00;AN=2;DB;DP=57;Dels=0.00;HRun=1;HaplotypeScore=4.18;MQ=59.19;MQ0=0;OQ=2200.64;QD=38.61;SB=-746.99	GT:AD:DP:GL:GQ	1/1:0,57:55:-223.66,-16.57,-0.01:99
-chr1	5205224	rs673451	T	G	405.18	PASS	AC=2;AF=1.00;AN=2;DB;DP=60;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.91;MQ0=0;OQ=1733.87;QD=28.90;SB=-756.83	GT:AD:DP:GL:GQ	1/1:0,60:55:-177.02,-16.58,-0.05:99
-chr1	5206120	rs56397638	C	T	43.03	Indel;LowQual	AC=1;AF=0.50;AN=2;DB;DP=18;Dels=0.00;HRun=1;HaplotypeScore=3.09;MQ=48.93;MQ0=0;QD=2.39;SB=-0.99	GT:AD:DP:GL:GQ	0/1:15,3:17:-12.71,-5.12,-48.36:75.87
-chr1	5206410	.	T	C	0.40	PASS	AC=2;AF=1.00;AN=2;DP=39;Dels=0.00;HRun=2;HaplotypeScore=1.63;MQ=56.77;MQ0=0;OQ=1364.10;QD=34.98;SB=-316.12	GT:AD:DP:GL:GQ	1/1:0,39:38:-140.01,-11.45,-0.01:99
-chr1	5206681	rs12121640	A	C	71.98	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=1.00;MQ=58.51;MQ0=0;OQ=1679.67;QD=32.93;SB=-387.04	GT:AD:DP:GL:GQ	1/1:0,51:47:-171.57,-14.16,-0.01:99
-chr1	5206700	rs12125074	G	A	98.48	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=1.05;MQ=58.12;MQ0=0;OQ=2000.17;QD=37.74;SB=-489.65	GT:AD:DP:GL:GQ	1/1:0,53:50:-203.61,-15.06,-0.01:99
-chr1	5208394	rs7549686	T	C	327.06	PASS	AC=2;AF=1.00;AN=2;DB;DP=94;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=3436.97;QD=36.56;SB=-1599.67	GT:AD:DP:GL:GQ	1/1:0,94:93:-342.70,-28.01,-0.02:99
-chr1	5209527	rs12135834	C	T	124.99	PASS	AC=2;AF=1.00;AN=2;DB;DP=69;Dels=0.00;HRun=2;HaplotypeScore=0.99;MQ=60.00;MQ0=0;OQ=2736.25;QD=39.66;SB=-1253.04	GT:AD:DP:GL:GQ	1/1:0,69:68:-277.22,-20.48,-0.01:99
-chr1	5209757	rs12128282	G	A	708.74	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.62;MQ0=0;OQ=2355.65;QD=38.62;SB=-1039.67	GT:AD:DP:GL:GQ	1/1:0,61:59:-239.17,-17.77,-0.02:99
-chr1	5210118	rs4465222	T	C	132.90	PASS	AC=2;AF=1.00;AN=2;DB;DP=45;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=58.97;MQ0=0;OQ=1268.12;QD=28.18;SB=-489.53	GT:AD:DP:GL:GQ	1/1:0,45:42:-130.45,-12.68,-0.06:99
-chr1	5210152	rs4465223	T	C	176.23	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.16;MQ0=0;OQ=1621.75;QD=29.49;SB=-654.28	GT:AD:DP:GL:GQ	1/1:0,55:51:-165.81,-15.38,-0.05:99
-chr1	5210469	rs6686714	G	T	712.77	PASS	AC=2;AF=1.00;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.59;MQ0=0;OQ=1971.04;QD=35.20;SB=-893.62	GT:AD:DP:GL:GQ	1/1:0,56:56:-200.71,-16.87,-0.02:99
-chr1	5211244	rs6603825	T	C	594.56	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.62;MQ0=0;OQ=2173.03;QD=35.62;SB=-828.31	GT:AD:DP:GL:GQ	1/1:0,61:60:-220.91,-18.07,-0.02:99
-chr1	5211435	.	C	T	25.65	PASS	AC=1;AF=0.50;AN=2;DP=54;Dels=0.00;HRun=1;HaplotypeScore=2.22;MQ=59.65;MQ0=0;OQ=960.07;QD=17.78;SB=-418.78	GT:AD:DP:GL:GQ	0/1:25,29:53:-115.26,-15.97,-85.03:99
-chr1	5212025	rs4475768	T	G	354.90	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.37;MQ0=0;OQ=695.32;QD=14.19;SB=-234.36	GT:AD:DP:GL:GQ	0/1:24,25:49:-87.57,-14.76,-89.97:99
-chr1	5212226	rs494046	T	C	148.80	PASS	AC=2;AF=1.00;AN=2;DB;DP=93;Dels=0.00;HRun=0;HaplotypeScore=0.79;MQ=60.00;MQ0=0;OQ=2779.20;QD=29.88;SB=-1328.52	GT:AD:DP:GL:GQ	1/1:0,93:88:-281.58,-26.54,-0.08:99
-chr1	5213428	.	A	G	11.97	PASS	AC=1;AF=0.50;AN=2;DP=48;Dels=0.00;HRun=0;HaplotypeScore=3.03;MQ=58.55;MQ0=0;OQ=408.80;QD=8.52;SB=-93.78	GT:AD:DP:GL:GQ	0/1:27,21:44:-57.43,-13.27,-96.36:99
-chr1	5213524	.	T	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=55;Dels=0.00;HRun=0;HaplotypeScore=71.93;MQ=50.54;MQ0=0;OQ=502.87;QD=9.14;SB=-189.21	GT:AD:DP:GL:GQ	0/1:37,18:47:-67.73,-14.16,-102.82:99
-chr1	5213770	rs6658152	C	T	45.87	PASS	AC=2;AF=1.00;AN=2;DB;DP=41;Dels=0.00;HRun=0;HaplotypeScore=0.33;MQ=60.00;MQ0=0;OQ=1572.39;QD=38.35;SB=-554.31	GT:AD:DP:GL:GQ	1/1:0,41:41:-160.84,-12.35,-0.02:99
-chr1	5215271	.	A	G	38.30	PASS	AC=2;AF=1.00;AN=2;DP=58;Dels=0.00;HRun=0;HaplotypeScore=1.20;MQ=59.60;MQ0=0;OQ=1692.08;QD=29.17;SB=-770.59	GT:AD:DP:GL:GQ	1/1:0,57:55:-172.85,-16.59,-0.06:99
-chr1	5217813	.	G	C	1.18	PASS	AC=1;AF=0.50;AN=2;DP=81;Dels=0.00;HRun=0;HaplotypeScore=9.11;MQ=58.35;MQ0=1;OQ=1164.43;QD=14.38;SB=-426.29	GT:AD:DP:GL:GQ	0/1:49,32:77:-142.93,-23.20,-194.98:99
-chr1	5217931	rs4847582	C	G	145.68	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=0.89;MQ=59.66;MQ0=0;OQ=1509.42;QD=22.20;SB=-480.86	GT:AD:DP:GL:GQ	0/1:26,42:66:-174.11,-19.89,-110.01:99
-chr1	5218042	rs4847581	A	T	229.68	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.16;MQ=59.31;MQ0=0;OQ=560.70;QD=9.19;SB=-151.08	GT:AD:DP:GL:GQ	0/1:39,22:59:-77.12,-17.77,-150.88:99
-chr1	5218412	rs12089315	C	T	695.85	PASS	AC=2;AF=1.00;AN=2;DB;DP=66;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2655.40;QD=40.23;SB=-1167.53	GT:AD:DP:GL:GQ	1/1:0,66:65:-269.14,-19.58,-0.01:99
-chr1	5218922	rs55929300	C	T	250.89	PASS	AC=1;AF=0.50;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=2.25;MQ=58.35;MQ0=0;OQ=749.84;QD=14.42;SB=-372.87	GT:AD:DP:GL:GQ	0/1:29,23:51:-93.64,-15.37,-91.04:99
-chr1	5218923	rs2945619	A	G	55.86	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=1;HaplotypeScore=2.25;MQ=58.42;MQ0=0;OQ=1817.82;QD=33.66;SB=-828.90	GT:AD:DP:GL:GQ	1/1:0,54:53:-185.39,-15.97,-0.03:99
-chr1	5219162	.	C	T	26.36	PASS	AC=1;AF=0.50;AN=2;DP=84;Dels=0.00;HRun=2;HaplotypeScore=0.93;MQ=59.78;MQ0=0;OQ=1260.89;QD=15.01;SB=-475.42	GT:AD:DP:GL:GQ	0/1:46,38:84:-154.67,-25.30,-167.04:99
-chr1	5220394	rs632798	A	G	319.28	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.68;MQ0=0;OQ=1931.82;QD=32.74;SB=-775.98	GT:AD:DP:GL:GQ	1/1:0,59:54:-196.78,-16.27,-0.02:99
-chr1	5221239	rs11584035	A	G	510.42	PASS	AC=2;AF=1.00;AN=2;DB;DP=63;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2162.59;QD=34.33;SB=-1003.74	GT:AD:DP:GL:GQ	1/1:0,63:61:-219.86,-18.37,-0.02:99
-chr1	5221301	rs11585734	G	C	28.93	PASS	AC=2;AF=1.00;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=58.47;MQ0=0;OQ=2416.76;QD=43.16;SB=-843.33	GT:AD:DP:GL:GQ	1/1:0,56:55:-245.27,-16.57,-0.01:99
-chr1	5221482	rs34835703	A	T	2939.50	Indel	AC=2;AF=1.00;AN=2;DB;DP=92;Dels=0.00;HRun=0;HaplotypeScore=3.98;MQ=58.65;MQ0=0;QD=31.95;SB=-1078.25	GT:AD:DP:GL:GQ	1/1:2,89:87:-306.96,-29.45,-9.42:99
-chr1	5221725	.	G	A	0	FDRtranche2.00to10.00+	AC=1;AF=0.50;AN=2;DP=60;Dels=0.03;HRun=18;HaplotypeScore=39.80;MQ=52.31;MQ0=0;OQ=152.15;QD=2.54;SB=47.14	GT:AD:DP:GL:GQ	0/1:40,18:43:-30.85,-12.35,-114.35:99
-chr1	5222078	rs972257	T	A	639.98	PASS	AC=2;AF=1.00;AN=2;DB;DP=85;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=56.18;MQ0=0;OQ=3168.88;QD=37.28;SB=-1120.55	GT:AD:DP:GL:GQ	1/1:0,85:85:-320.49,-25.60,-0.02:99
-chr1	5222126	rs972256	A	G	626.95	PASS	AC=2;AF=1.00;AN=2;DB;DP=75;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.13;MQ0=0;OQ=2639.54;QD=35.19;SB=-1126.78	GT:AD:DP:GL:GQ	1/1:0,75:75:-267.56,-22.59,-0.03:99
-chr1	5224091	rs499416	T	C	297.77	PASS	AC=2;AF=1.00;AN=2;DB;DP=82;Dels=0.00;HRun=0;HaplotypeScore=1.73;MQ=59.44;MQ0=0;OQ=2957.76;QD=36.07;SB=-1259.50	GT:AD:DP:GL:GQ	1/1:0,82:82:-299.39,-24.70,-0.03:99
-chr1	5224457	rs681122	A	G	116.50	PASS	AC=2;AF=1.00;AN=2;DB;DP=84;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=58.67;MQ0=0;OQ=2663.18;QD=31.70;SB=-1024.35	GT:AD:DP:GL:GQ	1/1:0,84:81:-269.96,-24.42,-0.06:99
-chr1	5224547	rs503246	T	C	2.42	PASS	AC=2;AF=1.00;AN=2;DB;DP=70;Dels=0.00;HRun=1;HaplotypeScore=6.13;MQ=59.67;MQ0=0;OQ=2425.86;QD=34.66;SB=-1136.77	GT:AD:DP:GL:GQ	1/1:0,69:69:-249.69,-23.90,-3.52:99
-chr1	5224600	rs504015	G	A	107.71	PASS	AC=2;AF=1.00;AN=2;DB;DP=95;Dels=0.00;HRun=0;HaplotypeScore=1.41;MQ=59.36;MQ0=0;OQ=3623.40;QD=38.14;SB=-1734.33	GT:AD:DP:GL:GQ	1/1:1,94:92:-361.34,-27.72,-0.04:99
-chr1	5225244	rs34916930	A	G	210.97	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=2.75;MQ=59.23;MQ0=0;OQ=766.73;QD=12.78;SB=-281.64	GT:AD:DP:GL:GQ	0/1:31,29:57:-97.13,-17.17,-122.94:99
-chr1	5225286	rs1614164	A	G	116.44	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=0;HaplotypeScore=1.66;MQ=59.11;MQ0=0;OQ=1503.00;QD=28.90;SB=-584.52	GT:AD:DP:GL:GQ	1/1:0,52:49:-153.94,-14.79,-0.06:99
-chr1	5225305	rs531507	T	C	127.86	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=1;HaplotypeScore=0.63;MQ=59.05;MQ0=0;OQ=1485.28;QD=30.31;SB=-700.80	GT:AD:DP:GL:GQ	1/1:0,49:47:-152.15,-14.18,-0.04:99
-chr1	5225319	rs531541	G	A	341.76	PASS	AC=1;AF=0.50;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.47;MQ=59.53;MQ0=0;OQ=776.62;QD=15.85;SB=-311.30	GT:AD:DP:GL:GQ	0/1:25,24:46:-94.81,-13.86,-73.71:99
-chr1	5225584	rs12139398	G	T	64.15	PASS	AC=1;AF=0.50;AN=2;DB;DP=76;Dels=0.00;HRun=3;HaplotypeScore=2.68;MQ=59.09;MQ0=0;OQ=1255.53;QD=16.52;SB=-636.75	GT:AD:DP:GL:GQ	0/1:35,41:76:-151.73,-22.89,-120.82:99
-chr1	5225784	rs648378	G	A	217.93	PASS	AC=2;AF=1.00;AN=2;DB;DP=79;Dels=0.00;HRun=1;HaplotypeScore=0.67;MQ=60.00;MQ0=0;OQ=3051.49;QD=38.63;SB=-1366.03	GT:AD:DP:GL:GQ	1/1:0,79:77:-308.76,-23.20,-0.02:99
-chr1	5225910	rs536995	T	C	659.19	PASS	AC=2;AF=1.00;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2238.13;QD=31.52;SB=-1141.80	GT:AD:DP:GL:GQ	1/1:0,71:69:-227.45,-20.80,-0.05:99
-chr1	5226194	rs646542	C	A	53.96	PASS	AC=1;AF=0.50;AN=2;DB;DP=48;Dels=0.00;HRun=2;HaplotypeScore=2.51;MQ=59.52;MQ0=0;OQ=616.21;QD=12.84;SB=-186.21	GT:AD:DP:GL:GQ	0/1:25,23:46:-78.77,-13.86,-80.93:99
-chr1	5227007	rs17422703	C	T	447.59	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=0.99;MQ=60.00;MQ0=0;OQ=653.00;QD=13.89;SB=-346.50	GT:AD:DP:GL:GQ	0/1:27,20:47:-82.75,-14.17,-88.07:99
-chr1	5227141	rs479689	T	C	634.35	PASS	AC=2;AF=1.00;AN=2;DB;DP=72;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.68;MQ0=0;OQ=2577.54;QD=35.80;SB=-1149.80	GT:AD:DP:GL:GQ	1/1:0,72:72:-261.36,-21.69,-0.02:99
-chr1	5227198	rs631837	T	G	470.17	PASS	AC=1;AF=0.50;AN=2;DB;DP=80;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.48;MQ0=0;OQ=1038.21;QD=12.98;SB=-481.28	GT:AD:DP:GL:GQ	0/1:42,38:78:-130.60,-23.49,-142.85:99
-chr1	5227509	rs2945620	A	G	463.41	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.71;MQ0=0;OQ=1887.53;QD=34.95;SB=-718.20	GT:AD:DP:GL:GQ	1/1:0,54:53:-192.35,-15.96,-0.02:99
-chr1	5227512	rs2986190	C	G	581.25	PASS	AC=2;AF=1.00;AN=2;DB;DP=56;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.76;MQ0=0;OQ=2178.35;QD=38.90;SB=-696.39	GT:AD:DP:GL:GQ	1/1:0,56:54:-221.45,-16.29,-0.03:99
-chr1	5227592	rs484203	C	G	505.04	PASS	AC=2;AF=1.00;AN=2;DB;DP=48;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.30;MQ0=0;OQ=1740.53;QD=36.26;SB=-435.04	GT:AD:DP:GL:GQ	1/1:0,48:44:-177.67,-13.27,-0.03:99
-chr1	5227620	rs2945621	C	T	184.65	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=1.15;MQ=58.52;MQ0=0;OQ=2108.36;QD=38.33;SB=-729.97	GT:AD:DP:GL:GQ	1/1:0,54:54:-216.99,-18.70,-2.57:99
-chr1	5228455	rs605572	G	A	158.70	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.32;MQ=59.08;MQ0=0;OQ=2364.59;QD=38.76;SB=-1049.40	GT:AD:DP:GL:GQ	1/1:0,61:59:-240.06,-17.77,-0.01:99
-chr1	5228485	rs547366	A	G	151.91	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=1.43;MQ=59.32;MQ0=0;OQ=1644.48;QD=29.90;SB=-746.94	GT:AD:DP:GL:GQ	1/1:0,55:53:-168.09,-15.99,-0.05:99
-chr1	5228494	rs547375	T	C	432.28	PASS	AC=2;AF=1.00;AN=2;DB;DP=40;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.06;MQ0=0;OQ=1148.89;QD=28.72;SB=-518.83	GT:AD:DP:GL:GQ	1/1:0,40:38:-118.51,-11.46,-0.04:99
-chr1	5228675	rs549178	A	C	608.96	PASS	AC=2;AF=1.00;AN=2;DB;DP=54;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1844.59;QD=34.16;SB=-895.07	GT:AD:DP:GL:GQ	1/1:0,54:53:-188.06,-15.96,-0.02:99
-chr1	5229041	rs552154	A	G	144.86	PASS	AC=2;AF=1.00;AN=2;DB;DP=67;Dels=0.00;HRun=2;HaplotypeScore=1.05;MQ=58.33;MQ0=0;OQ=2394.34;QD=35.74;SB=-1030.76	GT:AD:DP:GL:GQ	1/1:0,67:67:-243.04,-20.18,-0.02:99
-chr1	5229075	rs694316	A	G	16.95	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=2;HaplotypeScore=2.71;MQ=58.29;MQ0=0;OQ=1696.38;QD=32.62;SB=-808.31	GT:AD:DP:GL:GQ	1/1:0,52:49:-173.25,-14.76,-0.02:99
-chr1	5229079	rs574063	A	C	47.22	PASS	AC=2;AF=1.00;AN=2;DB;DP=52;Dels=0.00;HRun=1;HaplotypeScore=2.27;MQ=58.29;MQ0=0;OQ=1690.52;QD=32.51;SB=-775.03	GT:AD:DP:GL:GQ	1/1:0,52:50:-172.66,-15.06,-0.02:99
-chr1	5229195	rs2986189	T	C	594.24	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1695.13;QD=33.24;SB=-849.99	GT:AD:DP:GL:GQ	1/1:0,50:49:-173.12,-14.76,-0.02:99
-chr1	5229410	rs590229	A	G	533.32	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=58.69;MQ0=0;OQ=1626.39;QD=32.53;SB=-702.18	GT:AD:DP:GL:GQ	1/1:0,50:47:-166.24,-14.16,-0.02:99
-chr1	5229454	rs576935	T	C	291.30	PASS	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.64;MQ0=0;OQ=2227.88;QD=34.81;SB=-1091.09	GT:AD:DP:GL:GQ	1/1:0,64:63:-226.40,-18.98,-0.03:99
-chr1	5229643	rs589314	C	T	702.68	PASS	AC=2;AF=1.00;AN=2;DB;DP=84;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=3349.31;QD=39.87;SB=-1157.05	GT:AD:DP:GL:GQ	1/1:0,84:83:-333.93,-25.00,-0.02:99
-chr1	5229725	rs579467	T	C	242.79	PASS	AC=2;AF=1.00;AN=2;DB;DP=53;Dels=0.00;HRun=0;HaplotypeScore=1.46;MQ=59.13;MQ0=0;OQ=1575.01;QD=29.72;SB=-809.29	GT:AD:DP:GL:GQ	1/1:0,53:51:-161.14,-15.39,-0.05:99
-chr1	5229840	rs580404	G	A	618.34	PASS	AC=2;AF=1.00;AN=2;DB;DP=73;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.49;MQ0=0;OQ=2841.67;QD=38.93;SB=-1151.68	GT:AD:DP:GL:GQ	1/1:0,73:73:-287.78,-22.00,-0.03:99
-chr1	5229963	rs587619	A	G	627.90	PASS	AC=2;AF=1.00;AN=2;DB;DP=49;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.05;MQ0=0;OQ=1527.65;QD=31.18;SB=-661.80	GT:AD:DP:GL:GQ	1/1:0,49:48:-156.40,-14.48,-0.05:99
-chr1	5230068	rs684796	A	G	654.33	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1910.04;QD=31.31;SB=-776.75	GT:AD:DP:GL:GQ	1/1:0,61:59:-194.63,-17.79,-0.04:99
-chr1	5230099	rs493993	T	C	52.25	PASS	AC=2;AF=1.00;AN=2;DB;DP=51;Dels=0.00;HRun=1;HaplotypeScore=2.40;MQ=60.00;MQ0=0;OQ=1531.39;QD=30.03;SB=-555.88	GT:AD:DP:GL:GQ	1/1:0,51:49:-156.77,-14.78,-0.05:99
-chr1	5230146	rs494138	C	T	565.44	PASS	AC=2;AF=1.00;AN=2;DB;DP=50;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1901.52;QD=38.03;SB=-812.08	GT:AD:DP:GL:GQ	1/1:0,50:49:-193.76,-14.77,-0.02:99
-chr1	5230400	rs683361	C	T	576.16	PASS	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.64;MQ0=0;OQ=2445.96;QD=38.22;SB=-885.63	GT:AD:DP:GL:GQ	1/1:0,64:64:-248.21,-19.29,-0.03:99
-chr1	5230419	rs683326	A	C	444.54	PASS	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.64;MQ0=0;OQ=2097.81;QD=32.78;SB=-733.04	GT:AD:DP:GL:GQ	1/1:0,64:59:-213.39,-17.77,-0.02:99
-chr1	5230522	rs497780	C	T	280.11	PASS	AC=2;AF=1.00;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=0.26;MQ=59.44;MQ0=0;OQ=2456.36;QD=36.66;SB=-1135.53	GT:AD:DP:GL:GQ	1/1:0,66:64:-249.25,-19.29,-0.03:99
-chr1	5230617	rs682425	A	C	128.19	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=1;HaplotypeScore=1.82;MQ=60.00;MQ0=0;OQ=2329.64;QD=34.26;SB=-803.08	GT:AD:DP:GL:GQ	1/1:1,67:66:-236.57,-19.88,-0.02:99
-chr1	5230727	rs499639	G	A	152.07	PASS	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=1.94;MQ=59.28;MQ0=0;OQ=1710.74;QD=26.73;SB=-582.87	GT:AD:DP:GL:GQ	1/1:0,37:64:-256.74,-99.73,-82.08:99
-chr1	5230993	rs17423021	C	T	275.08	PASS	AC=1;AF=0.50;AN=2;DB;DP=47;Dels=0.00;HRun=0;HaplotypeScore=1.66;MQ=60.00;MQ0=0;OQ=870.39;QD=18.52;SB=-403.16	GT:AD:DP:GL:GQ	0/1:21,26:47:-104.48,-14.16,-73.19:99
-chr1	5231281	rs695100	T	C	614.40	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.60;MQ0=0;OQ=1962.66;QD=33.84;SB=-961.65	GT:AD:DP:GL:GQ	1/1:0,58:57:-199.88,-17.17,-0.03:99
-chr1	5231434	rs2860250	T	G	608.99	PASS	AC=2;AF=1.00;AN=2;DB;DP=56;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=1940.74;QD=34.66;SB=-919.09	GT:AD:DP:GL:GQ	1/1:0,56:55:-197.68,-16.57,-0.02:99
-chr1	5231440	rs2353173	G	T	713.73	PASS	AC=2;AF=1.00;AN=2;DB;DP=65;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2174.12;QD=33.45;SB=-1013.52	GT:AD:DP:GL:GQ	1/1:0,65:62:-221.02,-18.68,-0.02:99
-chr1	5231533	rs4290073	G	A	106.58	PASS	AC=1;AF=0.50;AN=2;DB;DP=81;Dels=0.00;HRun=3;HaplotypeScore=0.16;MQ=59.20;MQ0=0;OQ=1041.27;QD=12.86;SB=-342.41	GT:AD:DP:GL:GQ	0/1:49,32:81:-131.81,-24.39,-179.39:99
-chr1	5231729	rs2945622	G	A	619.13	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.61;MQ0=0;OQ=2286.02;QD=38.75;SB=-1132.51	GT:AD:DP:GL:GQ	1/1:0,59:57:-232.20,-17.17,-0.01:99
-chr1	5231775	rs4633300	T	C	80.14	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=2;HaplotypeScore=2.27;MQ=58.86;MQ0=0;OQ=2147.74;QD=35.21;SB=-1067.79	GT:AD:DP:GL:GQ	1/1:0,61:61:-218.38,-18.38,-0.02:99
-chr1	5231808	rs10799186	T	C	608.79	PASS	AC=2;AF=1.00;AN=2;DB;DP=62;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.88;MQ0=0;OQ=2059.90;QD=33.22;SB=-1027.00	GT:AD:DP:GL:GQ	1/1:0,62:60:-209.61,-18.08,-0.04:99
-chr1	5231809	rs10799187	G	C	596.93	PASS	AC=2;AF=1.00;AN=2;DB;DP=64;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=58.91;MQ0=0;OQ=2598.74;QD=40.61;SB=-1318.71	GT:AD:DP:GL:GQ	1/1:0,64:61:-263.48,-18.38,-0.02:99
-chr1	5231833	rs530731	G	C	494.40	PASS	AC=2;AF=1.00;AN=2;DB;DP=58;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.60;MQ0=0;OQ=2447.16;QD=42.19;SB=-1018.28	GT:AD:DP:GL:GQ	1/1:0,58:58:-248.32,-17.48,-0.02:99
-chr1	5231988	rs614111	C	A	590.46	PASS	AC=2;AF=1.00;AN=2;DB;DP=55;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.58;MQ0=0;OQ=1949.76;QD=35.45;SB=-809.87	GT:AD:DP:GL:GQ	1/1:0,55:54:-198.57,-16.26,-0.01:99
-chr1	5231995	rs614102	A	G	590.99	PASS	AC=2;AF=1.00;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.61;MQ0=0;OQ=2129.07;QD=36.09;SB=-828.32	GT:AD:DP:GL:GQ	1/1:0,59:59:-216.51,-17.77,-0.02:99
-chr1	5232537	rs558175	T	A	537.54	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2470.42;QD=36.33;SB=-1158.53	GT:AD:DP:GL:GQ	1/1:0,68:67:-250.65,-20.18,-0.02:99
-chr1	5232779	rs560794	T	A	637.12	PASS	AC=2;AF=1.00;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.66;MQ0=0;OQ=2459.58;QD=36.17;SB=-1165.07	GT:AD:DP:GL:GQ	1/1:0,68:66:-249.56,-19.88,-0.02:99
-chr1	5232782	rs600322	G	A	160.84	PASS	AC=2;AF=1.00;AN=2;DB;DP=65;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=59.65;MQ0=0;OQ=2495.29;QD=38.39;SB=-1228.15	GT:AD:DP:GL:GQ	1/1:0,65:64:-253.13,-19.28,-0.02:99
-chr1	5232864	rs599884	A	G	212.34	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.98;MQ=59.42;MQ0=0;OQ=2139.99;QD=35.08;SB=-951.99	GT:AD:DP:GL:GQ	1/1:0,61:60:-217.60,-18.07,-0.02:99
-chr1	5233339	rs598031	G	A	300.26	PASS	AC=2;AF=1.00;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=0.87;MQ=59.38;MQ0=0;OQ=2603.20;QD=38.85;SB=-1265.68	GT:AD:DP:GL:GQ	1/1:0,66:66:-263.92,-19.88,-0.02:99
-chr1	5233376	rs587228	C	T	292.53	PASS	AC=2;AF=1.00;AN=2;DB;DP=60;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=58.99;MQ0=0;OQ=2392.78;QD=39.88;SB=-1196.59	GT:AD:DP:GL:GQ	1/1:0,60:60:-242.88,-18.07,-0.02:99
-chr1	5233377	rs476866	A	G	630.33	PASS	AC=2;AF=1.00;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=59.01;MQ0=0;OQ=2129.35;QD=34.91;SB=-1082.46	GT:AD:DP:GL:GQ	1/1:0,61:60:-216.54,-18.07,-0.02:99
-chr1	5233422	rs476993	T	C	95.16	PASS	AC=2;AF=1.00;AN=2;DB;DP=56;Dels=0.00;HRun=1;HaplotypeScore=0.89;MQ=58.92;MQ0=0;OQ=1891.61;QD=33.78;SB=-702.84	GT:AD:DP:GL:GQ	1/1:1,55:55:-192.78,-16.58,-0.03:99
-chr1	5233779	rs56260836	C	T	250.27	PASS	AC=1;AF=0.50;AN=2;DB;DP=60;Dels=0.00;HRun=0;HaplotypeScore=1.97;MQ=59.69;MQ0=0;OQ=907.86;QD=15.13;SB=-369.08	GT:AD:DP:GL:GQ	0/1:31,29:57:-111.25,-17.18,-100.79:99
-chr1	5234072	rs504647	G	A	600.46	PASS	AC=2;AF=1.00;AN=2;DB;DP=71;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=60.00;MQ0=0;OQ=2853.54;QD=40.19;SB=-1415.37	GT:AD:DP:GL:GQ	1/1:0,71:71:-288.96,-21.39,-0.02:99
-chr1	5234128	rs7551166	T	C	37.81	PASS	AC=1;AF=0.50;AN=2;DB;DP=63;Dels=0.00;HRun=1;HaplotypeScore=4.51;MQ=60.00;MQ0=0;OQ=837.05;QD=13.29;SB=-326.85	GT:AD:DP:GL:GQ	0/1:34,29:63:-105.96,-18.97,-138.54:99
-chr1	5234274	rs583170	C	A	510.70	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=1;HaplotypeScore=0.00;MQ=59.64;MQ0=0;OQ=1124.36;QD=17.57;SB=-381.75	GT:AD:DP:GL:GQ	0/1:28,36:64:-134.99,-19.28,-100.59:99
-chr1	5234483	rs12746195	G	T	448	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=1.30;MQ=60.00;MQ0=0;OQ=907.18;QD=14.87;SB=-443.17	GT:AD:DP:GL:GQ	0/1:30,31:60:-112.07,-18.07,-106.20:99
-chr1	5234497	rs12732868	T	G	365.79	PASS	AC=1;AF=0.50;AN=2;DB;DP=64;Dels=0.00;HRun=1;HaplotypeScore=0.80;MQ=60.00;MQ0=0;OQ=834.65;QD=13.04;SB=-431.76	GT:AD:DP:GL:GQ	0/1:33,31:62:-105.43,-18.68,-118.96:99
-chr1	5234595	rs12747559	C	T	411.30	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=0;HaplotypeScore=1.47;MQ=59.66;MQ0=0;OQ=1103.55;QD=16.23;SB=-461.98	GT:AD:DP:GL:GQ	0/1:32,36:64:-132.93,-19.29,-98.65:99
-chr1	5234628	rs12746515	G	A	395.10	PASS	AC=1;AF=0.50;AN=2;DB;DP=78;Dels=0.00;HRun=0;HaplotypeScore=0.97;MQ=59.70;MQ0=0;OQ=1407.50;QD=18.04;SB=-722.08	GT:AD:DP:GL:GQ	0/1:37,41:75:-166.64,-22.60,-112.02:99
-chr1	5234751	rs12747870	C	T	314.20	PASS	AC=1;AF=0.50;AN=2;DB;DP=68;Dels=0.00;HRun=1;HaplotypeScore=2.20;MQ=59.17;MQ0=0;OQ=991.08;QD=14.57;SB=-434.89	GT:AD:DP:GL:GQ	0/1:38,30:67:-122.57,-20.18,-136.08:99
-chr1	5234796	rs12729227	A	T	285.02	PASS	AC=1;AF=0.50;AN=2;DB;DP=67;Dels=0.00;HRun=0;HaplotypeScore=1.60;MQ=58.68;MQ0=0;OQ=635.81;QD=9.49;SB=-240.21	GT:AD:DP:GL:GQ	0/1:44,23:66:-86.75,-19.88,-161.14:99
-chr1	5234855	rs12746867	G	A	137.48	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=3;HaplotypeScore=0.48;MQ=58.86;MQ0=0;OQ=803.94;QD=13.18;SB=-392.38	GT:AD:DP:GL:GQ	0/1:35,26:59:-101.45,-17.77,-122.51:99
-chr1	5234867	rs12729373	A	G	399.72	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=2;HaplotypeScore=0.00;MQ=59.62;MQ0=0;OQ=739.47;QD=12.12;SB=-312.22	GT:AD:DP:GL:GQ	0/1:35,26:61:-95.60,-18.37,-142.14:99
-chr1	5235030	rs55729623	C	G	87.40	PASS	AC=1;AF=0.50;AN=2;DB;DP=59;Dels=0.00;HRun=0;HaplotypeScore=4.84;MQ=59.98;MQ0=0;OQ=961.43;QD=16.30;SB=-383.64	GT:AD:DP:GL:GQ	0/1:26,33:53:-115.42,-16.00,-99.45:99
-chr1	5235034	.	G	A	5.72	PASS	AC=1;AF=0.50;AN=2;DP=62;Dels=0.00;HRun=0;HaplotypeScore=5.25;MQ=59.98;MQ0=0;OQ=618.09;QD=9.97;SB=-190.00	GT:AD:DP:GL:GQ	0/1:34,27:51:-82.91,-17.82,-96.99:99
-chr1	5235136	rs17457156	T	C	138.33	PASS	AC=1;AF=0.50;AN=2;DB;DP=61;Dels=0.00;HRun=0;HaplotypeScore=3.41;MQ=59.24;MQ0=0;OQ=556.94;QD=9.13;SB=-82.80	GT:AD:DP:GL:GQ	0/1:34,26:58:-79.46,-20.48,-139.05:99
diff --git a/testdata/variant/ILLUMINA.wex.broad_phase2_baseline.20111114.both.exome.genotypes.1000.vcf b/testdata/variant/ILLUMINA.wex.broad_phase2_baseline.20111114.both.exome.genotypes.1000.vcf
deleted file mode 100644
index b96f648..0000000
--- a/testdata/variant/ILLUMINA.wex.broad_phase2_baseline.20111114.both.exome.genotypes.1000.vcf
+++ /dev/null
@@ -1,249 +0,0 @@
-##fileformat=VCFv4.1
-##FILTER=<ID=TruthSensitivityTranche98.50to98.80,Description="Truth sensitivity tranche level at VSQ Lod: -0.1106 <= x < 0.6654">
-##FILTER=<ID=TruthSensitivityTranche98.80to98.90,Description="Truth sensitivity tranche level at VSQ Lod: -0.4426 <= x < -0.1106">
-##FILTER=<ID=TruthSensitivityTranche98.90to99.00,Description="Truth sensitivity tranche level at VSQ Lod: -0.8793 <= x < -0.4426">
-##FILTER=<ID=TruthSensitivityTranche99.00to99.30,Description="Truth sensitivity tranche level at VSQ Lod: -2.6664 <= x < -0.8793">
-##FILTER=<ID=TruthSensitivityTranche99.30to99.50,Description="Truth sensitivity tranche level at VSQ Lod: -5.2612 <= x < -2.6664">
-##FILTER=<ID=TruthSensitivityTranche99.50to99.90,Description="Truth sensitivity tranche level at VSQ Lod: -65.3589 <= x < -5.2612">
-##FILTER=<ID=TruthSensitivityTranche99.90to100.00+,Description="Truth sensitivity tranche level at VQS Lod < -6678.5611">
-##FILTER=<ID=TruthSensitivityTranche99.90to100.00,Description="Truth sensitivity tranche level at VSQ Lod: -6678.5611 <= x < -65.3589">
-##FILTER=<ID=Indel_QD,Description="x">
-##FILTER=<ID=Indel_FS,Description="x">
-##FILTER=<ID=Indel_ReadPosRankSum,Description="x">
-##FORMAT=<ID=AD,Number=.,Type=Integer,Description="Allelic depths for the ref and alt alleles in the order listed">
-##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth (reads with MQ=255 or with bad mates are filtered)">
-##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
-##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
-##FORMAT=<ID=PL,Number=G,Type=Integer,Description="Normalized, Phred-scaled likelihoods for genotypes as defined in the VCF specification">
-##INFO=<ID=AC,Number=A,Type=Integer,Description="Allele count in genotypes, for each ALT allele, in the same order as listed">
-##INFO=<ID=AF,Number=A,Type=Float,Description="Allele Frequency, for each ALT allele, in the same order as listed">
-##INFO=<ID=AN,Number=1,Type=Integer,Description="Total number of alleles in called genotypes">
-##INFO=<ID=BaseQRankSum,Number=1,Type=Float,Description="Z-score from Wilcoxon rank sum test of Alt Vs. Ref base qualities">
-##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP Membership">
-##INFO=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth; some reads may have been filtered">
-##INFO=<ID=DS,Number=0,Type=Flag,Description="Were any of the samples downsampled?">
-##INFO=<ID=Dels,Number=1,Type=Float,Description="Fraction of Reads Containing Spanning Deletions">
-##INFO=<ID=FS,Number=1,Type=Float,Description="Phred-scaled p-value using Fisher's exact test to detect strand bias">
-##INFO=<ID=HM3,Number=0,Type=Flag,Description="HM3 Membership">
-##INFO=<ID=GS,Number=0,Type=Flag,Description="In gold-standard indel set">
-##INFO=<ID=HRun,Number=1,Type=Integer,Description="Largest Contiguous Homopolymer Run of Variant Allele In Either Direction">
-##INFO=<ID=HaplotypeScore,Number=1,Type=Float,Description="Consistency of the site with at most two segregating haplotypes">
-##INFO=<ID=InbreedingCoeff,Number=1,Type=Float,Description="Inbreeding coefficient as estimated from the genotype likelihoods per-sample when compared against the Hardy-Weinberg expectation">
-##INFO=<ID=MQ,Number=1,Type=Float,Description="RMS Mapping Quality">
-##INFO=<ID=MQ0,Number=1,Type=Integer,Description="Total Mapping Quality Zero Reads">
-##INFO=<ID=MQRankSum,Number=1,Type=Float,Description="Z-score From Wilcoxon rank sum test of Alt vs. Ref read mapping qualities">
-##INFO=<ID=NDA,Number=1,Type=Integer,Description="Number of alternate alleles discovered (but not necessarily genotyped) at this site">
-##INFO=<ID=QD,Number=1,Type=Float,Description="Variant Confidence/Quality by Depth">
-##INFO=<ID=ReadPosRankSum,Number=1,Type=Float,Description="Z-score from Wilcoxon rank sum test of Alt vs. Ref read position bias">
-##INFO=<ID=SB,Number=1,Type=Float,Description="Strand Bias">
-##INFO=<ID=VQSLOD,Number=1,Type=Float,Description="Log odds ratio of being a true variant versus being false under the trained gaussian mixture model">
-##INFO=<ID=culprit,Number=1,Type=String,Description="The annotation which was the worst performing in the Gaussian mixture model, likely the reason why the variant was filtered out">
-##INFO=<ID=set,Number=1,Type=String,Description="Source VCF for the merged record in CombineVariants">
-##contig=<ID=1,length=249250621,assembly=b37>
-##contig=<ID=10,length=135534747,assembly=b37>
-##contig=<ID=11,length=135006516,assembly=b37>
-##contig=<ID=12,length=133851895,assembly=b37>
-##contig=<ID=13,length=115169878,assembly=b37>
-##contig=<ID=14,length=107349540,assembly=b37>
-##contig=<ID=15,length=102531392,assembly=b37>
-##contig=<ID=16,length=90354753,assembly=b37>
-##contig=<ID=17,length=81195210,assembly=b37>
-##contig=<ID=18,length=78077248,assembly=b37>
-##contig=<ID=19,length=59128983,assembly=b37>
-##contig=<ID=2,length=243199373,assembly=b37>
-##contig=<ID=20,length=63025520,assembly=b37>
-##contig=<ID=21,length=48129895,assembly=b37>
-##contig=<ID=22,length=51304566,assembly=b37>
-##contig=<ID=3,length=198022430,assembly=b37>
-##contig=<ID=4,length=191154276,assembly=b37>
-##contig=<ID=5,length=180915260,assembly=b37>
-##contig=<ID=6,length=171115067,assembly=b37>
-##contig=<ID=7,length=159138663,assembly=b37>
-##contig=<ID=8,length=146364022,assembly=b37>
-##contig=<ID=9,length=141213431,assembly=b37>
-##contig=<ID=GL000191.1,length=106433,assembly=b37>
-##contig=<ID=GL000192.1,length=547496,assembly=b37>
-##contig=<ID=GL000193.1,length=189789,assembly=b37>
-##contig=<ID=GL000194.1,length=191469,assembly=b37>
-##contig=<ID=GL000195.1,length=182896,assembly=b37>
-##contig=<ID=GL000196.1,length=38914,assembly=b37>
-##contig=<ID=GL000197.1,length=37175,assembly=b37>
-##contig=<ID=GL000198.1,length=90085,assembly=b37>
-##contig=<ID=GL000199.1,length=169874,assembly=b37>
-##contig=<ID=GL000200.1,length=187035,assembly=b37>
-##contig=<ID=GL000201.1,length=36148,assembly=b37>
-##contig=<ID=GL000202.1,length=40103,assembly=b37>
-##contig=<ID=GL000203.1,length=37498,assembly=b37>
-##contig=<ID=GL000204.1,length=81310,assembly=b37>
-##contig=<ID=GL000205.1,length=174588,assembly=b37>
-##contig=<ID=GL000206.1,length=41001,assembly=b37>
-##contig=<ID=GL000207.1,length=4262,assembly=b37>
-##contig=<ID=GL000208.1,length=92689,assembly=b37>
-##contig=<ID=GL000209.1,length=159169,assembly=b37>
-##contig=<ID=GL000210.1,length=27682,assembly=b37>
-##contig=<ID=GL000211.1,length=166566,assembly=b37>
-##contig=<ID=GL000212.1,length=186858,assembly=b37>
-##contig=<ID=GL000213.1,length=164239,assembly=b37>
-##contig=<ID=GL000214.1,length=137718,assembly=b37>
-##contig=<ID=GL000215.1,length=172545,assembly=b37>
-##contig=<ID=GL000216.1,length=172294,assembly=b37>
-##contig=<ID=GL000217.1,length=172149,assembly=b37>
-##contig=<ID=GL000218.1,length=161147,assembly=b37>
-##contig=<ID=GL000219.1,length=179198,assembly=b37>
-##contig=<ID=GL000220.1,length=161802,assembly=b37>
-##contig=<ID=GL000221.1,length=155397,assembly=b37>
-##contig=<ID=GL000222.1,length=186861,assembly=b37>
-##contig=<ID=GL000223.1,length=180455,assembly=b37>
-##contig=<ID=GL000224.1,length=179693,assembly=b37>
-##contig=<ID=GL000225.1,length=211173,assembly=b37>
-##contig=<ID=GL000226.1,length=15008,assembly=b37>
-##contig=<ID=GL000227.1,length=128374,assembly=b37>
-##contig=<ID=GL000228.1,length=129120,assembly=b37>
-##contig=<ID=GL000229.1,length=19913,assembly=b37>
-##contig=<ID=GL000230.1,length=43691,assembly=b37>
-##contig=<ID=GL000231.1,length=27386,assembly=b37>
-##contig=<ID=GL000232.1,length=40652,assembly=b37>
-##contig=<ID=GL000233.1,length=45941,assembly=b37>
-##contig=<ID=GL000234.1,length=40531,assembly=b37>
-##contig=<ID=GL000235.1,length=34474,assembly=b37>
-##contig=<ID=GL000236.1,length=41934,assembly=b37>
-##contig=<ID=GL000237.1,length=45867,assembly=b37>
-##contig=<ID=GL000238.1,length=39939,assembly=b37>
-##contig=<ID=GL000239.1,length=33824,assembly=b37>
-##contig=<ID=GL000240.1,length=41933,assembly=b37>
-##contig=<ID=GL000241.1,length=42152,assembly=b37>
-##contig=<ID=GL000242.1,length=43523,assembly=b37>
-##contig=<ID=GL000243.1,length=43341,assembly=b37>
-##contig=<ID=GL000244.1,length=39929,assembly=b37>
-##contig=<ID=GL000245.1,length=36651,assembly=b37>
-##contig=<ID=GL000246.1,length=38154,assembly=b37>
-##contig=<ID=GL000247.1,length=36422,assembly=b37>
-##contig=<ID=GL000248.1,length=39786,assembly=b37>
-##contig=<ID=GL000249.1,length=38502,assembly=b37>
-##contig=<ID=MT,length=16569,assembly=b37>
-##contig=<ID=X,length=155270560,assembly=b37>
-##contig=<ID=Y,length=59373566,assembly=b37>
-##reference=file:///humgen/1kg/reference/human_g1k_v37.fasta
-#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	HG00096	HG00100	HG00101	HG00102	HG00103	HG00107	HG00108	HG00109	HG00110	HG00111	HG00113	HG00114	HG00116	HG00117	HG00119	HG00120	HG00121	HG00123	HG00124	HG00125	HG00127	HG00131	HG00133	HG00136	HG00137	HG00138	HG00139	HG00140	HG00145	HG00146	HG00154	HG00155	HG00157	HG00158	HG00159	HG00160	HG00171	HG00174	HG00176	HG00178	HG00181	HG00182	HG00183	HG00185	HG00186	HG00187	HG00188	HG00189	HG00190	HG00232	HG00233	HG00236	HG00237	HG00238	HG00239	HG0024 [...]
-1	30548	.	T	G	134.71	TruthSensitivityTranche99.50to99.90	AC=14;AF=0.583;AN=24;BaseQRankSum=-2.141;DP=128;DS;Dels=0.00;FS=0.000;HRun=0;HaplotypeScore=0.1517;InbreedingCoeff=0.3252;MQ=3.02;MQ0=1125;MQRankSum=0.529;NDA=2;QD=2.07;ReadPosRankSum=0.244;SB=33.48;VQSLOD=-7.1701;culprit=MQ;set=FilteredInAll	GT:AD:DP:GQ:PL	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	. [...]
-1	69270	.	A	G	12343.52	TruthSensitivityTranche99.30to99.50	AC=311;AF=0.7199;AN=432;BaseQRankSum=-14.987;DP=9872;DS;Dels=0.00;FS=9.231;HRun=0;HaplotypeScore=0.0867;InbreedingCoeff=0.2338;MQ=6.11;MQ0=13219;MQRankSum=15.096;NDA=1;QD=1.38;ReadPosRankSum=3.099;SB=-194.48;VQSLOD=-5.1809;culprit=QD;set=FilteredInAll	GT:AD:DP:GQ:PL	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	1/1:0,1:6:17.92:136,18,0	./.	./.	./.	./.	./.	./.	1/1:43,17:60:2.99:24,3,0	./.	./.	./.	./.	./.	./.	1/1:46,14:60:3:29,3,0	./ [...]
-1	69428	rs140739101	T	G	1587.10	TruthSensitivityTranche99.30to99.50	AC=30;AF=0.0333;AN=902;BaseQRankSum=3.267;DB;DP=50533;DS;Dels=0.00;FS=98.109;HRun=0;HaplotypeScore=0.1382;InbreedingCoeff=0.1235;MQ=17.74;MQ0=2178;MQRankSum=0.762;NDA=2;QD=1.07;ReadPosRankSum=1.621;SB=-348.91;VQSLOD=-4.2588;culprit=QD;set=FilteredInAll	GT:AD:DP:GQ:PL	./.	./.	./.	./.	./.	./.	./.	./.	0/0:1,0:92:99:0,276,2454	./.	0/0:1,0:100:99:0,300,2568	0/0:1,0:127:99:0,379,2880	./.	./.	./.	./.	0/0:1,0:90:99:0,269,2131	./ [...]
-1	69453	rs142004627	G	A	917.27	TruthSensitivityTranche99.50to99.90	AC=11;AF=0.0127;AN=868;BaseQRankSum=4.298;DB;DP=51456;DS;Dels=0.00;FS=8.058;HRun=2;HaplotypeScore=0.2298;InbreedingCoeff=0.2958;MQ=21.21;MQ0=143;MQRankSum=5.921;NDA=2;QD=3.03;ReadPosRankSum=2.490;SB=-5.66;VQSLOD=-5.8496;culprit=MQ;set=FilteredInAll	GT:AD:DP:GQ:PL	./.	./.	./.	./.	./.	./.	./.	./.	0/0:1,0:117:99:0,351,3121	./.	0/0:1,0:110:99:0,330,2825	0/0:1,0:127:99:0,379,2880	./.	./.	./.	./.	0/0:1,0:111:99:0,332,2629	./.	. [...]
-1	69486	.	C	T	411.09	PASS	AC=1;AF=0.0011;AN=870;BaseQRankSum=3.271;DP=47045;DS;Dels=0.00;FS=18.777;HRun=0;HaplotypeScore=0.1619;InbreedingCoeff=-0.0068;MQ=18.73;MQ0=630;MQRankSum=3.678;NDA=2;QD=6.85;ReadPosRankSum=-0.995;SB=-160.62;VQSLOD=4.1085;culprit=MQ;set=variant	GT:AD:DP:GQ:PL	./.	./.	./.	./.	./.	./.	./.	./.	0/0:1,0:72:99:0,216,1921	./.	0/0:1,0:79:99:0,237,2029	0/0:1,0:125:99:0,373,2834	./.	./.	./.	./.	0/0:1,0:69:99:0,206,1634	./.	./.	./.	./.	./.	./.	./.	0/0:1,0:51:99:0,153,1208	./ [...]
-1	69496	rs150690004	G	A	770.17	TruthSensitivityTranche99.30to99.50	AC=4;AF=0.0046;AN=866;BaseQRankSum=7.303;DB;DP=45079;DS;Dels=0.00;FS=43.681;HRun=0;HaplotypeScore=0.3031;InbreedingCoeff=0.0441;MQ=18.29;MQ0=527;MQRankSum=6.120;NDA=2;QD=3.63;ReadPosRankSum=-1.444;SB=-136.96;VQSLOD=-3.7330;culprit=MQ;set=FilteredInAll	GT:AD:DP:GQ:PL	./.	./.	./.	./.	./.	./.	./.	./.	0/0:1,0:75:99:0,225,2001	./.	0/0:1,0:68:99:0,204,1746	0/0:1,0:122:99:0,364,2766	./.	./.	./.	./.	0/0:1,0:72:99:0,215,1705	./.	. [...]
-1	69511	rs75062661	A	G	625265.62	TruthSensitivityTranche99.30to99.50	AC=856;AF=0.8753;AN=978;BaseQRankSum=13.271;DB;DP=32369;DS;Dels=0.00;FS=45.494;HRun=0;HaplotypeScore=1.1421;InbreedingCoeff=0.5380;MQ=26.49;MQ0=1627;MQRankSum=-18.719;NDA=1;QD=19.82;ReadPosRankSum=-20.606;SB=-54909.34;VQSLOD=-3.2503;culprit=MQ;set=FilteredInAll	GT:AD:DP:GQ:PL	./.	1/1:0,40:40:65.91:557,66,0	./.	./.	./.	./.	./.	./.	1/1:0,1:43:99:1147,129,0	./.	1/1:0,1:45:99:1156,135,0	1/1:0,1:106:99:2404,317,0	./.	./.	1/1 [...]
-1	69534	rs190717287	T	C	1060.12	PASS	AC=1;AF=0.0012;AN=854;BaseQRankSum=-0.841;DB;DP=43078;DS;Dels=0.00;FS=13.161;HRun=0;HaplotypeScore=0.3320;InbreedingCoeff=0.0940;MQ=27.32;MQ0=107;MQRankSum=3.045;NDA=1;QD=9.14;ReadPosRankSum=-2.118;SB=-601.36;VQSLOD=1.3414;culprit=MQ;set=variant	GT:AD:DP:GQ:PL	./.	./.	./.	./.	./.	./.	./.	0/0:1,0:1:3:0,3,25	0/0:1,0:87:99:0,261,2321	./.	0/0:1,0:84:99:0,252,2157	0/0:1,0:127:99:0,379,2880	./.	./.	0/0:1,0:92:99:0,275,2086	./.	0/0:1,0:69:99:0,206,1634	./.	. [...]
-1	69541	.	A	G	578.88	PASS	AC=1;AF=0.0012;AN=842;BaseQRankSum=1.875;DP=44707;DS;Dels=0.00;FS=9.702;HRun=1;HaplotypeScore=0.5109;InbreedingCoeff=-0.0048;MQ=28.52;MQ0=97;MQRankSum=4.954;NDA=1;QD=9.65;ReadPosRankSum=-1.290;SB=-236.37;VQSLOD=1.9979;culprit=MQ;set=variant	GT:AD:DP:GQ:PL	./.	./.	./.	./.	./.	./.	./.	0/0:1,0:1:3:0,3,25	0/0:1,0:104:99:0,312,2774	./.	0/0:1,0:93:99:0,279,2388	0/0:1,0:127:99:0,379,2880	./.	./.	0/0:1,0:100:99:0,299,2267	./.	0/0:1,0:74:99:0,221,1752	./.	./.	./.	./.	0/0 [...]
-1	69552	rs55874132	G	C	263.21	TruthSensitivityTranche99.50to99.90	AC=6;AF=0.0071;AN=850;BaseQRankSum=8.467;DB;DP=46741;DS;Dels=0.00;FS=10.412;HRun=1;HaplotypeScore=0.4375;InbreedingCoeff=0.2845;MQ=29.45;MQ0=385;MQRankSum=-5.514;NDA=3;QD=0.76;ReadPosRankSum=2.727;SB=-97.77;VQSLOD=-6.2296;culprit=MQ;set=FilteredInAll	GT:AD:DP:GQ:PL	./.	./.	./.	./.	./.	./.	./.	./.	0/0:1,0:126:99:0,378,3361	./.	0/0:1,0:108:99:0,324,2774	0/0:1,0:127:99:0,379,2880	./.	./.	0/0:1,0:121:99:0,361,2744	./.	0/0:1,0: [...]
-1	69590	rs141776804	T	A	1446.08	PASS	AC=2;AF=0.0025;AN=812;BaseQRankSum=7.910;DB;DP=46586;DS;Dels=0.00;FS=21.176;HRun=0;HaplotypeScore=0.1456;InbreedingCoeff=-0.0051;MQ=23.73;MQ0=398;MQRankSum=8.485;NDA=2;QD=12.05;ReadPosRankSum=-0.293;SB=-322.53;VQSLOD=4.4644;culprit=MQ;set=variant	GT:AD:DP:GQ:PL	./.	./.	./.	./.	./.	./.	./.	./.	0/0:1,0:127:99:0,381,3388	./.	0/0:1,0:113:99:0,339,2902	0/0:1,0:127:99:0,379,2880	./.	./.	0/0:1,0:115:99:0,343,2608	./.	0/0:1,0:102:99:0,305,2416	./.	./.	./.	./. [...]
-1	69610	.	C	T	5334.77	TruthSensitivityTranche98.50to98.80	AC=8;AF=0.0100;AN=798;BaseQRankSum=7.126;DP=42498;DS;Dels=0.00;FS=113.646;HRun=2;HaplotypeScore=0.2518;InbreedingCoeff=0.1087;MQ=18.02;MQ0=795;MQRankSum=9.147;NDA=2;QD=10.95;ReadPosRankSum=0.353;SB=-1272.01;VQSLOD=0.5990;culprit=MQ;set=FilteredInAll	GT:AD:DP:GQ:PL	./.	./.	./.	./.	./.	./.	./.	./.	0/0:1,0:126:99:0,378,3361	./.	0/0:1,0:71:99:0,213,1823	0/0:1,0:127:99:0,379,2880	./.	./.	0/0:1,0:60:99:0,179,1360	./.	0/0:1,0:79:99:0,236 [...]
-1	69635	.	G	C	436.15	TruthSensitivityTranche99.00to99.30	AC=2;AF=0.0025;AN=786;BaseQRankSum=4.897;DP=29728;DS;Dels=0.00;FS=33.653;HRun=0;HaplotypeScore=0.1175;InbreedingCoeff=-0.0021;MQ=14.85;MQ0=1329;MQRankSum=4.000;NDA=2;QD=3.63;ReadPosRankSum=-1.651;SB=-67.21;VQSLOD=-1.5278;culprit=MQ;set=FilteredInAll	GT:AD:DP:GQ:PL	./.	./.	./.	./.	./.	./.	./.	./.	0/0:1,0:78:99:0,234,2081	./.	0/0:1,0:46:99:0,138,1181	0/0:1,0:84:99:0,251,1905	./.	./.	0/0:1,0:27:80.65:0,81,612	./.	0/0:1,0:44:99:0,132,1 [...]
-1	69761	.	A	T	1569.63	TruthSensitivityTranche99.50to99.90	AC=27;AF=0.0456;AN=592;BaseQRankSum=7.371;DP=12118;DS;Dels=0.00;FS=3.078;HRun=1;HaplotypeScore=0.1168;InbreedingCoeff=0.2584;MQ=7.44;MQ0=9258;MQRankSum=1.639;NDA=1;QD=1.32;ReadPosRankSum=-0.593;SB=-284.93;VQSLOD=-6.9729;culprit=QD;set=FilteredInAll	GT:AD:DP:GQ:PL	./.	./.	./.	./.	./.	./.	0/0:60,0:60:3.01:0,3,33	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	0/0:59,0:59:3.01:0,3,35	./.	./.	./.	./.	./.	./.	./.	./ [...]
-1	69768	.	G	A	35.11	TruthSensitivityTranche99.50to99.90	AC=1;AF=0.0018;AN=542;BaseQRankSum=-0.998;DP=10681;DS;Dels=0.00;FS=0.000;HRun=0;HaplotypeScore=0.1003;InbreedingCoeff=-0.0401;MQ=7.20;MQ0=8425;MQRankSum=1.077;NDA=2;QD=0.59;ReadPosRankSum=0.705;SB=6.12;VQSLOD=-5.9391;culprit=QD;set=FilteredInAll	GT:AD:DP:GQ:PL	./.	./.	./.	./.	./.	./.	0/0:56,0:58:3.01:0,3,33	./.	0/0:60,0:60:5.98:0,6,47	./.	./.	./.	./.	./.	./.	./.	0/0:57,0:57:2.99:0,3,24	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./. [...]
-1	69897	.	T	C	7903.18	TruthSensitivityTranche99.50to99.90	AC=286;AF=0.7814;AN=366;BaseQRankSum=-9.712;DP=10240;DS;Dels=0.00;FS=25.753;HRun=1;HaplotypeScore=0.0844;InbreedingCoeff=0.2102;MQ=4.12;MQ0=18120;MQRankSum=0.310;NDA=2;QD=0.92;ReadPosRankSum=-1.611;SB=-1453.42;VQSLOD=-6.8807;culprit=MQ;set=FilteredInAll	GT:AD:DP:GQ:PL	./.	./.	./.	./.	./.	./.	1/1:47,13:60:6.01:61,6,0	./.	./.	./.	./.	1/1:47,11:60:6.02:67,6,0	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	0/1:50,10:60:17.70:18,0 [...]
-1	69968	.	A	G	791.92	TruthSensitivityTranche99.30to99.50	AC=1;AF=0.017;AN=60;BaseQRankSum=-11.568;DP=1640;DS;Dels=0.00;FS=34.482;HRun=1;HaplotypeScore=1.1879;InbreedingCoeff=0.0932;MQ=5.09;MQ0=5066;MQRankSum=6.823;NDA=1;QD=2.10;ReadPosRankSum=-2.491;SB=9.08;VQSLOD=-5.0926;culprit=QD;set=FilteredInAll	GT:AD:DP:GQ:PL	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./.	./. [...]
-1	861275	.	C	T	712.37	PASS	AC=1;AF=0.00042;AN=2364;BaseQRankSum=-6.156;DP=66811;DS;Dels=0.00;FS=1.596;HRun=0;HaplotypeScore=0.0247;InbreedingCoeff=-0.0020;MQ=99.25;MQ0=0;MQRankSum=-0.645;NDA=2;QD=11.87;ReadPosRankSum=0.200;SB=-29.28;VQSLOD=9.3500;culprit=FS;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:16:48.16:0,48,617	0/0:1,0:47:99:0,141,1738	0/0:1,0:24:72.24:0,72,976	0/0:1,0:23:69.23:0,69,904	0/0:1,0:26:78.25:0,78,1022	0/0:1,0:15:45.15:0,45,579	0/0:1,0:54:99:0,163,2123	0/0:1,0:39:99:0,117,1504	0 [...]
-1	861292	rs191719684	C	G	2773.34	PASS	AC=3;AF=0.00127;AN=2364;BaseQRankSum=9.193;DB;DP=77017;DS;Dels=0.00;FS=29.431;HRun=0;HaplotypeScore=0.0441;InbreedingCoeff=-0.0075;MQ=99.59;MQ0=0;MQRankSum=-2.334;NDA=1;QD=17.78;ReadPosRankSum=-7.928;SB=-762.60;VQSLOD=7.8330;culprit=FS;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:15:45.15:0,45,626	0/0:1,0:52:99:0,156,1965	0/0:1,0:30:90.29:0,90,1179	0/0:1,0:22:66.21:0,66,832	0/0:1,0:23:69.23:0,69,948	0/0:1,0:17:51.17:0,51,668	0/0:1,0:61:99:0,184,2353	0/0:1,0:47 [...]
-1	861315	.	G	A	804.13	PASS	AC=1;AF=0.00042;AN=2364;BaseQRankSum=-3.203;DP=93850;DS;Dels=0.00;FS=2.143;HRun=2;HaplotypeScore=0.0258;InbreedingCoeff=0.0526;MQ=106.02;MQ0=0;MQRankSum=-0.749;NDA=2;QD=11.83;ReadPosRankSum=-5.734;SB=-124.66;VQSLOD=8.0060;culprit=FS;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:23:69.23:0,69,948	0/0:1,0:71:99:0,214,2739	0/0:1,0:34:99:0,102,1402	0/0:1,0:27:81.27:0,81,1080	0/0:1,0:32:96.32:0,96,1319	0/0:1,0:22:66.22:0,66,907	0/0:1,0:69:99:0,208,2713	0/0:1,0:79:99:0,238,3160 [...]
-1	865488	.	A	G	73.43	PASS	AC=1;AF=0.00044;AN=2280;BaseQRankSum=-4.715;DP=7112;Dels=0.00;FS=10.595;HRun=0;HaplotypeScore=0.1452;InbreedingCoeff=-0.0539;MQ=56.39;MQ0=9;MQRankSum=2.252;NDA=3;QD=4.08;ReadPosRankSum=2.565;SB=167.99;VQSLOD=1.5041;culprit=QD;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:3:9.03:0,9,113	0/0:1,0:5:15.05:0,15,176	0/0:1,0:1:3.01:0,3,32	0/0:1,0:1:3.01:0,3,43	./.	0/0:1,0:6:18.06:0,18,236	0/0:1,0:11:33.09:0,33,368	0/0:1,0:5:15.05:0,15,176	0/0:1,0:10:30.09:0,30,344	0/0:15,0:16:45. [...]
-1	865545	.	G	A	1164.45	PASS	AC=8;AF=0.00345;AN=2320;BaseQRankSum=4.406;DP=10672;Dels=0.01;FS=1.961;HRun=0;HaplotypeScore=0.3451;InbreedingCoeff=0.0083;MQ=60.80;MQ0=0;MQRankSum=3.214;NDA=3;QD=10.21;ReadPosRankSum=1.571;SB=-334.48;VQSLOD=5.0597;culprit=FS;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:1:3.01:0,3,44	0/0:1,0:7:21.06:0,21,234	0/0:1,0:2:6.02:0,6,65	./.	0/0:1,0:2:6.02:0,6,74	0/0:1,0:5:15.05:0,15,181	0/0:1,0:9:27.07:0,27,284	0/0:10,0:10:30.07:0,30,316	0/0:20,0:20:54.10:0,54,548	0/0:1,0:22:6 [...]
-1	865555	.	CAA	C	306.78	PASS	AC=1;AF=0.00044;AN=2284;BaseQRankSum=2.577;DP=11180;FS=1.510;HRun=2;HaplotypeScore=2.5729;InbreedingCoeff=-0.0068;MQ=59.09;MQ0=0;MQRankSum=-0.815;NDA=1;QD=12.78;ReadPosRankSum=2.203;SB=-142.21;set=variant2	GT:AD:DP:GQ:PL	0/0:1,0:1:3.01:0,3,35	0/0:1,0:1:30.10:0,30,554	0/0:1,0:1:12.04:0,12,222	./.	0/0:1,0:1:6.02:0,6,111	0/0:1,0:1:9.03:0,9,105	0/0:1,0:1:33.11:0,33,610	0/0:13,0:13:39.13:0,39,714	0/0:16,0:17:48.09:0,48,477	0/0:1,0:1:72.21:0,72,841	0/0:1,0:1:36.12: [...]
-1	865584	rs148711625	G	A	1556.12	PASS	AC=23;AF=0.00981;AN=2344;BaseQRankSum=6.903;DB;DP=13266;Dels=0.00;FS=7.807;HRun=0;HaplotypeScore=0.2911;InbreedingCoeff=0.0420;MQ=85.22;MQ0=0;MQRankSum=-2.022;NDA=2;QD=7.20;ReadPosRankSum=0.021;SB=-697.54;VQSLOD=6.6472;culprit=QD;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:4:12.04:0,12,151	0/0:1,0:11:33.10:0,33,378	0/0:1,0:4:12.03:0,12,137	0/0:1,0:1:3.01:0,3,34	0/0:1,0:3:9.01:0,9,86	0/0:1,0:2:6.02:0,6,81	0/0:15,0:15:45.09:0,45,465	0/0:1,0:20:60.11:0,60,592	0/ [...]
-1	865590	.	TGAA	T	420.06	PASS	AC=8;AF=0.00371;AN=2154;BaseQRankSum=4.148;DP=14777;FS=4.898;HRun=0;HaplotypeScore=1.3770;InbreedingCoeff=0.1502;MQ=59.07;MQ0=0;MQRankSum=-1.698;NDA=1;QD=4.88;ReadPosRankSum=1.330;SB=-207.49;set=variant2	GT:AD:DP:GQ:PL	0/0:1,0:1:12.04:0,12,234	0/0:13,0:14:38.96:0,39,714	0/0:1,0:1:18.06:0,18,351	0/0:1,0:1:6.02:0,6,117	0/0:1,0:1:6.02:0,6,117	0/0:1,0:1:12.04:0,12,234	0/0:1,0:1:48.16:0,48,935	0/0:1,0:1:66.23:0,66,1286	0/0:1,0:1:51.17:0,51,994	0/0:1,0:1:93.32:0,9 [...]
-1	865628	rs41285790	G	A	712.88	PASS	AC=5;AF=0.00212;AN=2364;BaseQRankSum=-6.081;DB;DP=19203;Dels=0.00;FS=8.074;HRun=0;HaplotypeScore=0.1985;InbreedingCoeff=-0.0157;MQ=80.97;MQ0=0;MQRankSum=0.054;NDA=3;QD=9.77;ReadPosRankSum=1.468;SB=-453.03;VQSLOD=7.7994;culprit=InbreedingCoeff;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:5:15.05:0,15,211	0/0:1,0:12:36.12:0,36,472	0/0:1,0:10:30.10:0,30,418	0/0:1,0:4:12.04:0,12,167	0/0:1,0:5:15.05:0,15,211	0/0:1,0:6:18.06:0,18,240	0/0:1,0:19:57.19:0,57,747	0/0:1,0: [...]
-1	865662	rs140751899	G	A	266.89	PASS	AC=1;AF=0.00042;AN=2360;BaseQRankSum=1.888;DB;DP=18955;Dels=0.00;FS=0.901;HRun=0;HaplotypeScore=0.3354;InbreedingCoeff=-0.0112;MQ=87.09;MQ0=0;MQRankSum=-0.394;NDA=2;QD=15.70;ReadPosRankSum=1.293;SB=-178.31;VQSLOD=5.8247;culprit=FS;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:2:6.02:0,6,79	0/0:10,0:10:27.08:0,27,329	0/0:1,0:9:27.08:0,27,325	0/0:1,0:4:12.04:0,12,167	0/0:1,0:5:15.05:0,15,185	0/0:1,0:10:30.10:0,30,393	0/0:1,0:17:51.13:0,51,552	0/0:21,0:21:54.13:0,5 [...]
-1	865694	rs9988179	C	T	37822.02	PASS	AC=163;AF=0.06907;AN=2360;BaseQRankSum=-24.328;DB;DP=17686;Dels=0.00;FS=7.432;HRun=0;HaplotypeScore=0.3198;InbreedingCoeff=0.1408;MQ=96.52;MQ0=0;MQRankSum=-19.190;NDA=2;QD=14.08;ReadPosRankSum=12.504;SB=-16300.11;VQSLOD=4.8864;culprit=MQRankSum;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:1:3.01:0,3,43	0/0:10,0:10:30.09:0,30,383	0/0:1,0:9:27.09:0,27,354	0/0:1,0:2:6.02:0,6,82	0/0:1,0:5:15.05:0,15,200	0/0:1,0:10:30.10:0,30,400	0/0:15,0:15:45.14:0,45,581	0/0:21,0: [...]
-1	865700	rs116730894	C	T	481.79	PASS	AC=6;AF=0.00254;AN=2362;BaseQRankSum=4.072;DB;DP=18291;Dels=0.00;FS=9.754;HRun=0;HaplotypeScore=0.3041;InbreedingCoeff=-0.0084;MQ=98.45;MQ0=0;MQRankSum=-1.215;NDA=2;QD=5.35;ReadPosRankSum=4.084;SB=-203.52;VQSLOD=5.3964;culprit=QD;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:1:3.01:0,3,42	0/0:1,0:11:33.09:0,33,357	0/0:1,0:9:27.09:0,27,340	0/0:1,0:2:6.01:0,6,63	0/0:1,0:6:18.05:0,18,195	0/0:1,0:9:27.08:0,27,325	0/0:1,0:16:48.10:0,48,489	0/0:19,1:20:20.99:0,21,517	 [...]
-1	865703	.	A	G	163.63	PASS	AC=1;AF=0.00042;AN=2362;BaseQRankSum=1.433;DP=18039;Dels=0.00;FS=7.294;HRun=0;HaplotypeScore=0.2834;InbreedingCoeff=-0.0062;MQ=101.88;MQ0=0;MQRankSum=-2.745;NDA=2;QD=7.44;ReadPosRankSum=1.383;SB=-11.29;VQSLOD=6.5947;culprit=QD;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:1:3.01:0,3,44	0/0:1,0:10:30.09:0,30,361	0/0:1,0:7:21.07:0,21,270	0/0:1,0:3:9.03:0,9,118	0/0:1,0:5:15.05:0,15,189	0/0:1,0:8:24.08:0,24,315	0/0:1,0:16:48.14:0,48,550	0/0:20,0:20:57.16:0,57,659	0/0:1,0:21:6 [...]
-1	865705	rs146331776	C	T	702.79	PASS	AC=3;AF=0.00127;AN=2362;BaseQRankSum=-1.590;DB;DP=18114;Dels=0.00;FS=1.450;HRun=1;HaplotypeScore=0.1918;InbreedingCoeff=-0.0069;MQ=114.11;MQ0=0;MQRankSum=-2.223;NDA=1;QD=12.12;ReadPosRankSum=2.604;SB=-274.99;VQSLOD=10.4126;culprit=FS;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:1:3.01:0,3,44	0/0:1,0:9:27.09:0,27,354	0/0:1,0:8:24.07:0,24,289	0/0:1,0:3:9.03:0,9,130	0/0:1,0:5:15.05:0,15,193	0/0:1,0:7:21.07:0,21,280	0/0:1,0:16:48.16:0,48,640	0/0:20,0:20:60.20:0,60, [...]
-1	865734	.	G	A	169.67	PASS	AC=3;AF=0.00127;AN=2358;BaseQRankSum=0.374;DP=14856;Dels=0.00;FS=7.082;HRun=0;HaplotypeScore=0.4461;InbreedingCoeff=-0.0084;MQ=111.38;MQ0=0;MQRankSum=-3.095;NDA=2;QD=4.35;ReadPosRankSum=0.739;SB=-81.83;VQSLOD=2.8904;culprit=QD;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:3:9.03:0,9,116	0/0:1,0:6:18.06:0,18,222	0/0:1,0:6:18.06:0,18,236	0/0:1,0:2:6.02:0,6,76	0/0:4,0:4:12.04:0,12,161	0/0:1,0:8:24.08:0,24,315	0/0:1,0:12:36.11:0,36,423	0/0:1,0:17:51.15:0,51,599	0/0:1,0:14:42. [...]
-1	865738	rs139570490	A	G	759.55	PASS	AC=7;AF=0.00297;AN=2358;BaseQRankSum=-6.135;DB;DP=14584;Dels=0.00;FS=1.427;HRun=2;HaplotypeScore=0.5151;InbreedingCoeff=-0.0114;MQ=107.81;MQ0=0;MQRankSum=-1.690;NDA=2;QD=5.17;ReadPosRankSum=1.621;SB=-116.80;VQSLOD=4.7433;culprit=FS;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:2:6.02:0,6,86	0/0:1,0:5:15.05:0,15,197	0/0:1,0:8:24.08:0,24,309	0/0:1,0:2:6.02:0,6,80	0/0:4,0:4:12.03:0,12,159	0/0:1,0:8:24.08:0,24,330	0/0:1,0:13:39.12:0,39,470	0/0:1,0:16:48.15:0,48,605	 [...]
-1	866371	.	G	A	754.09	PASS	AC=1;AF=0.00042;AN=2364;BaseQRankSum=-4.668;DP=56995;DS;Dels=0.00;FS=1.962;HRun=0;HaplotypeScore=0.0603;InbreedingCoeff=0.0004;MQ=107.06;MQ0=0;MQRankSum=0.276;NDA=1;QD=12.57;ReadPosRankSum=1.709;SB=-179.27;VQSLOD=9.8408;culprit=FS;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:16:48.16:0,48,640	0/0:1,0:58:99:0,175,2145	0/0:1,0:34:99:0,102,1337	0/0:1,0:22:66.22:0,66,894	0/0:1,0:22:66.22:0,66,907	0/0:1,0:19:57.18:0,57,733	0/0:1,0:35:99:0,105,1350	0/0:1,0:35:99:0,105,1350	0/0 [...]
-1	866422	rs139210662	C	T	4684.05	PASS	AC=9;AF=0.00381;AN=2364;BaseQRankSum=-2.726;DB;DP=71761;DS;Dels=0.00;FS=14.683;HRun=1;HaplotypeScore=0.0292;InbreedingCoeff=-0.0036;MQ=110.95;MQ0=0;MQRankSum=0.583;NDA=1;QD=11.05;ReadPosRankSum=-12.658;SB=-1793.78;VQSLOD=9.8690;culprit=HaplotypeScore;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:23:69.23:0,69,960	0/0:1,0:72:99:0,217,2662	0/0:1,0:41:99:0,123,1666	0/0:1,0:30:90.29:0,90,1179	0/0:1,0:29:87.29:0,87,1211	0/0:1,0:32:96.32:0,96,1301	0/0:1,0:42:99:0,126 [...]
-1	866511	.	C	T	17440.60	TruthSensitivityTranche99.50to99.90	AC=345;AF=0.14594;AN=2364;BaseQRankSum=-48.478;DP=36139;DS;Dels=0.00;FS=176.546;HRun=1;HaplotypeScore=8.8600;InbreedingCoeff=-0.1516;MQ=61.44;MQ0=0;MQRankSum=45.670;NDA=1;QD=1.68;ReadPosRankSum=-3.663;SB=-4951.45;VQSLOD=-8.9666;culprit=QD;set=FilteredInAll	GT:AD:DP:GQ:PL	0/1:8,1:9:2.54:3,0,297	0/0:13,1:14:5.68:0,6,398	0/1:16,3:19:24.70:25,0,488	0/0:14,0:14:42.12:0,42,537	0/1:8,2:10:12.74:13,0,265	0/1:7,1:8:12.90:13,0,258	0/1:31, [...]
-1	866517	rs181051588	C	G	1192.57	TruthSensitivityTranche99.50to99.90	AC=2;AF=0.00085;AN=2364;BaseQRankSum=0.101;DB;DP=34481;DS;Dels=0.00;FS=14.537;HRun=0;HaplotypeScore=7.9209;InbreedingCoeff=-0.0076;MQ=61.58;MQ0=0;MQRankSum=3.405;NDA=3;QD=17.28;ReadPosRankSum=1.770;SB=-56.16;VQSLOD=-7.8406;culprit=HaplotypeScore;set=FilteredInAll	GT:AD:DP:GQ:PL	0/0:7,0:7:21.07:0,21,272	0/0:16,0:16:45.11:0,45,510	0/0:16,0:16:45.14:0,45,594	0/0:11,0:11:33.08:0,33,407	0/0:7,0:7:18.04:0,18,232	0/0:8,0:8:18. [...]
-1	871129	.	C	T	2363.53	PASS	AC=3;AF=0.00127;AN=2364;BaseQRankSum=1.324;DP=88230;DS;Dels=0.00;FS=133.740;HRun=4;HaplotypeScore=0.1585;InbreedingCoeff=-0.0070;MQ=121.02;MQ0=0;MQRankSum=-4.492;NDA=2;QD=10.55;ReadPosRankSum=-5.079;SB=-1103.64;VQSLOD=4.1810;culprit=FS;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:29:87.29:0,87,1196	0/0:1,0:101:99:0,304,3735	0/0:1,0:65:99:0,196,2404	0/0:1,0:48:99:0,144,1852	0/0:1,0:57:99:0,172,2199	0/0:1,0:42:99:0,126,1620	0/0:1,0:42:99:0,126,1587	0/0:1,0:33:99:0,99,1192 [...]
-1	871171	.	A	G	688.12	PASS	AC=1;AF=0.00042;AN=2364;BaseQRankSum=-4.336;DP=86111;DS;Dels=0.00;FS=0.000;HRun=0;HaplotypeScore=0.0614;InbreedingCoeff=-0.0005;MQ=140.67;MQ0=0;MQRankSum=-4.594;NDA=1;QD=11.86;ReadPosRankSum=-2.707;SB=-280.00;VQSLOD=10.0930;culprit=FS;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:34:99:0,102,1312	0/0:1,0:84:99:0,253,2886	0/0:1,0:68:99:0,205,2457	0/0:1,0:34:99:0,102,1285	0/0:1,0:56:99:0,169,2160	0/0:1,0:44:99:0,132,1590	0/0:1,0:53:99:0,159,1722	0/0:1,0:42:99:0,126,1443	0/0 [...]
-1	871173	rs141982349	C	T	380.08	PASS	AC=1;AF=0.00042;AN=2364;BaseQRankSum=1.317;DB;DP=94636;DS;Dels=0.00;FS=14.305;HRun=0;HaplotypeScore=0.0522;InbreedingCoeff=-0.0006;MQ=140.91;MQ0=0;MQRankSum=-3.379;NDA=1;QD=8.09;ReadPosRankSum=-0.692;SB=-152.07;VQSLOD=8.2214;culprit=QD;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:37:99:0,111,1545	0/0:1,0:101:99:0,304,3735	0/0:1,0:76:99:0,229,2932	0/0:1,0:34:99:0,102,1382	0/0:1,0:63:99:0,190,2598	0/0:1,0:51:99:0,154,2040	0/0:1,0:60:99:0,181,2168	0/0:1,0:46:99:0, [...]
-1	871176	.	C	T	806.96	PASS	AC=1;AF=0.00042;AN=2364;BaseQRankSum=-2.225;DP=94503;DS;Dels=0.00;FS=48.943;HRun=1;HaplotypeScore=0.0532;InbreedingCoeff=0.0054;MQ=138.21;MQ0=0;MQRankSum=-3.509;NDA=1;QD=13.45;ReadPosRankSum=-1.802;SB=-219.67;VQSLOD=7.9297;culprit=MQ;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:36:99:0,108,1503	0/0:1,0:98:99:0,295,3781	0/0:1,0:76:99:0,229,2988	0/0:1,0:35:99:0,105,1423	0/0:1,0:60:99:0,181,2474	0/0:1,0:52:99:0,157,2114	0/0:1,0:58:99:0,175,2237	0/0:1,0:46:99:0,138,1739	0/0: [...]
-1	871193	.	G	C	517.25	PASS	AC=1;AF=0.00042;AN=2364;BaseQRankSum=6.508;DP=88429;Dels=0.00;FS=19.613;HRun=2;HaplotypeScore=0.0196;InbreedingCoeff=-0.0023;MQ=115.20;MQ0=0;MQRankSum=0.185;NDA=2;QD=12.93;ReadPosRankSum=-4.480;SB=-44.96;VQSLOD=9.6679;culprit=FS;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:31:93.30:0,93,1196	0/0:1,0:76:99:0,229,2611	0/0:1,0:59:99:0,178,2230	0/0:1,0:28:84.27:0,84,1080	0/0:1,0:50:99:0,150,1890	0/0:1,0:48:99:0,144,1814	0/0:1,0:76:99:0,229,2470	0/0:1,0:53:99:0,159,1722	0/0:1 [...]
-1	871215	rs28419423	C	T,G	147999.05	PASS	AC=1,167;AF=0.00042,0.07064;AN=2364;BaseQRankSum=31.541;DB;DP=81904;DS;Dels=0.00;FS=22.522;HaplotypeScore=0.2500;InbreedingCoeff=0.1555;MQ=77.03;MQ0=0;MQRankSum=-0.797;NDA=2;QD=17.13;ReadPosRankSum=-12.413;SB=-59334.05;VQSLOD=6.2098;culprit=FS;set=variant	GT:AD:DP:GQ:PL	0/0:1,0,0:29:87.27:0,87,1072,87,1072,1072	0/0:1,0,0:68:99:0,205,2274,205,2274,2274	0/0:1,0,0:54:99:0,162,1904,162,1904,1904	0/0:1,0,0:25:75.23:0,75,903,75,903,903	0/0:1,0,0:43:99:0 [...]
-1	871219	.	C	T	658.03	PASS	AC=1;AF=0.00042;AN=2364;BaseQRankSum=-8.262;DP=79865;DS;Dels=0.00;FS=5.928;HRun=0;HaplotypeScore=0.2739;InbreedingCoeff=0.0029;MQ=79.21;MQ0=0;MQRankSum=0.013;NDA=2;QD=12.19;ReadPosRankSum=3.190;SB=-201.44;VQSLOD=6.5830;culprit=ReadPosRankSum;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:25:75.25:0,75,1044	0/0:1,0:62:99:0,187,2392	0/0:1,0:57:99:0,172,2317	0/0:1,0:31:93.31:0,93,1240	0/0:1,0:45:99:0,135,1829	0/0:1,0:35:99:0,105,1423	0/0:1,0:74:99:0,223,2855	0/0:1,0:50:99:0,1 [...]
-1	871229	rs149944086	G	C	2312.78	PASS	AC=3;AF=0.00127;AN=2364;BaseQRankSum=7.026;DB;DP=74122;DS;Dels=0.00;FS=13.320;HRun=2;HaplotypeScore=0.0998;InbreedingCoeff=0.0017;MQ=121.47;MQ0=0;MQRankSum=-1.538;NDA=1;QD=16.17;ReadPosRankSum=-5.261;SB=-80.66;VQSLOD=9.8454;culprit=ReadPosRankSum;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:19:57.19:0,57,817	0/0:1,0:52:99:0,156,1965	0/0:1,0:54:99:0,163,2083	0/0:1,0:27:81.26:0,81,1020	0/0:1,0:40:99:0,120,1573	0/0:1,0:37:99:0,111,1398	0/0:1,0:69:99:0,208,2493	0/ [...]
-1	871239	rs147616064	C	T	1622.57	PASS	AC=3;AF=0.00127;AN=2364;BaseQRankSum=-1.538;DB;DP=64080;DS;Dels=0.00;FS=8.450;HRun=2;HaplotypeScore=0.0688;InbreedingCoeff=-0.0023;MQ=123.57;MQ0=0;MQRankSum=-3.198;NDA=1;QD=12.20;ReadPosRankSum=-6.659;SB=-61.38;VQSLOD=10.3368;culprit=ReadPosRankSum;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:17:51.17:0,51,741	0/0:1,0:49:99:0,147,1852	0/0:1,0:44:99:0,132,1814	0/0:1,0:28:84.27:0,84,1101	0/0:1,0:41:99:0,123,1690	0/0:1,0:34:99:0,102,1402	0/0:1,0:60:99:0,181,2268	 [...]
-1	871269	.	A	C	891.84	TruthSensitivityTranche98.90to99.00	AC=125;AF=0.05288;AN=2364;BaseQRankSum=-18.250;DP=18591;DS;Dels=0.00;FS=167.133;HRun=3;HaplotypeScore=0.5054;InbreedingCoeff=-0.0534;MQ=78.80;MQ0=1;MQRankSum=-7.666;NDA=2;QD=0.38;ReadPosRankSum=-8.894;SB=259.41;VQSLOD=-0.6803;culprit=QD;set=FilteredInAll	GT:AD:DP:GQ:PL	0/0:1,0:4:12.03:0,12,134	0/1:12,6:19:0.08:0,0,313	0/0:1,0:20:60.15:0,60,631	0/0:1,0:12:36.09:0,36,379	0/0:1,0:14:42.11:0,42,455	0/0:1,0:20:60.16:0,60,650	0/0:1,0:14 [...]
-1	874402	.	C	G	370.61	PASS	AC=2;AF=0.00085;AN=2360;BaseQRankSum=1.038;DP=17471;Dels=0.00;FS=7.836;HRun=0;HaplotypeScore=0.2022;InbreedingCoeff=-0.0141;MQ=90.39;MQ0=0;MQRankSum=-1.296;NDA=2;QD=13.24;ReadPosRankSum=1.474;SB=-203.51;VQSLOD=7.7578;culprit=InbreedingCoeff;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:3:9.03:0,9,129	0/0:1,0:5:15.05:0,15,189	0/0:1,0:5:15.05:0,15,189	0/0:1,0:3:9.03:0,9,120	0/0:1,0:4:12.04:0,12,165	0/0:1,0:4:12.04:0,12,165	0/0:24,0:24:63.20:0,63,834	0/0:1,0:26:78.25:0,78,96 [...]
-1	874455	.	C	T	174.37	PASS	AC=1;AF=0.00042;AN=2364;BaseQRankSum=-1.679;DP=25006;Dels=0.00;FS=0.000;HRun=0;HaplotypeScore=0.1837;InbreedingCoeff=0.1880;MQ=80.95;MQ0=0;MQRankSum=0.149;NDA=2;QD=7.93;ReadPosRankSum=0.492;SB=-20.23;VQSLOD=2.7845;culprit=FS;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:4:12.04:0,12,169	0/0:1,0:12:36.11:0,36,423	0/0:1,0:6:18.06:0,18,236	0/0:1,0:3:9.03:0,9,124	0/0:1,0:4:12.04:0,12,154	0/0:1,0:9:27.07:0,27,292	0/0:1,0:27:81.20:0,81,852	0/0:1,0:27:81.18:0,81,826	0/0:1,0:26:7 [...]
-1	874456	rs149677938	G	A	109.49	PASS	AC=5;AF=0.00212;AN=2364;BaseQRankSum=-2.689;DB;DP=23505;Dels=0.00;FS=7.650;HRun=0;HaplotypeScore=0.1763;InbreedingCoeff=-0.0082;MQ=81.74;MQ0=0;MQRankSum=0.806;NDA=2;QD=2.81;ReadPosRankSum=-0.807;SB=-63.07;VQSLOD=3.1368;culprit=QD;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:4:12.04:0,12,148	0/0:1,0:9:27.09:0,27,340	0/0:1,0:6:18.05:0,18,201	0/0:1,0:3:9.03:0,9,108	0/0:1,0:4:12.03:0,12,126	0/0:1,0:8:24.07:0,24,267	0/0:1,0:22:66.21:0,66,814	0/0:1,0:27:81.26:0,81,10 [...]
-1	874497	.	G	A	382.09	PASS	AC=1;AF=0.00042;AN=2364;BaseQRankSum=-0.925;DP=20918;Dels=0.00;FS=1.007;HRun=2;HaplotypeScore=0.1533;InbreedingCoeff=0.0337;MQ=84.31;MQ0=0;MQRankSum=0.187;NDA=1;QD=10.61;ReadPosRankSum=0.632;SB=-103.25;VQSLOD=6.2214;culprit=FS;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:7:21.07:0,21,265	0/0:11,0:11:30.09:0,30,374	0/0:1,0:6:18.06:0,18,236	0/0:1,0:6:18.06:0,18,217	0/0:1,0:5:15.04:0,15,167	0/0:10,0:10:30.08:0,30,366	0/0:1,0:12:36.11:0,36,434	0/0:1,0:29:87.27:0,87,1048	0/0: [...]
-1	874528	rs72902595	C	T	306.67	PASS	AC=3;AF=0.00128;AN=2350;BaseQRankSum=3.514;DB;DP=14636;Dels=0.00;FS=0.000;HRun=0;HaplotypeScore=0.1887;InbreedingCoeff=0.0081;MQ=90.63;MQ0=0;MQRankSum=2.214;NDA=3;QD=6.81;ReadPosRankSum=0.056;SB=13.52;VQSLOD=6.5618;culprit=FS;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:9:27.09:0,27,340	0/0:1,0:7:21.06:0,21,227	0/0:1,0:4:12.04:0,12,141	0/0:1,0:7:21.07:0,21,259	0/0:1,0:5:15.05:0,15,197	0/0:1,0:8:24.08:0,24,302	0/0:1,0:12:36.10:0,36,401	0/0:1,0:15:45.13:0,45,515	0 [...]
-1	874550	.	G	C	934.68	PASS	AC=2;AF=0.00085;AN=2346;BaseQRankSum=-5.107;DP=12802;Dels=0.00;FS=1.439;HRun=0;HaplotypeScore=0.3224;InbreedingCoeff=0.0260;MQ=92.33;MQ0=0;MQRankSum=-2.528;NDA=2;QD=13.55;ReadPosRankSum=1.865;SB=-312.37;VQSLOD=6.0299;culprit=FS;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:8:24.08:0,24,330	0/0:1,0:6:18.06:0,18,222	0/0:1,0:6:18.06:0,18,227	0/0:1,0:9:27.09:0,27,366	0/0:1,0:4:12.04:0,12,157	0/0:1,0:9:27.09:0,27,366	0/0:1,0:9:27.09:0,27,347	0/0:1,0:12:36.11:0,36,444	0/0:1,0:1 [...]
-1	874553	.	G	T	129.66	PASS	AC=2;AF=0.00085;AN=2354;BaseQRankSum=-4.133;DP=12404;Dels=0.00;FS=1.033;HRun=0;HaplotypeScore=0.2865;InbreedingCoeff=-0.0172;MQ=93.26;MQ0=0;MQRankSum=-2.976;NDA=2;QD=4.80;ReadPosRankSum=0.626;SB=-59.70;VQSLOD=5.4149;culprit=FS;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:9:27.09:0,27,366	0/0:1,0:4:12.04:0,12,151	0/0:1,0:4:12.04:0,12,151	0/0:1,0:9:27.09:0,27,366	0/0:1,0:5:15.05:0,15,197	0/0:1,0:11:33.11:0,33,432	0/0:1,0:11:33.10:0,33,397	0/0:1,0:11:33.10:0,33,397	0/0:1,0: [...]
-1	874657	.	G	A	70.31	PASS	AC=4;AF=0.00169;AN=2362;BaseQRankSum=-0.218;DP=15640;Dels=0.00;FS=14.687;HRun=0;HaplotypeScore=0.2464;InbreedingCoeff=-0.0179;MQ=67.20;MQ0=0;MQRankSum=1.359;NDA=2;QD=3.06;ReadPosRankSum=0.088;SB=-35.40;VQSLOD=1.7943;culprit=QD;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:4:12.04:0,12,169	0/0:1,0:7:21.07:0,21,265	0/0:1,0:5:15.05:0,15,193	0/0:1,0:11:33.11:0,33,416	0/0:1,0:8:24.08:0,24,302	0/0:1,0:15:45.15:0,45,579	0/0:17,0:17:45.14:0,45,580	0/0:11,0:11:33.09:0,33,410	0/0:16 [...]
-1	874665	rs74047413	G	A	5723.97	PASS	AC=34;AF=0.01438;AN=2364;BaseQRankSum=-11.637;DB;DP=16240;Dels=0.00;FS=4.664;HRun=0;HaplotypeScore=0.2594;InbreedingCoeff=0.0425;MQ=63.94;MQ0=0;MQRankSum=5.366;NDA=3;QD=13.34;ReadPosRankSum=4.040;SB=-1184.77;VQSLOD=6.6070;culprit=MQRankSum;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:7:21.07:0,21,275	0/0:1,0:10:30.09:0,30,370	0/0:1,0:5:15.05:0,15,200	0/0:1,0:9:27.09:0,27,354	0/0:1,0:9:27.09:0,27,376	0/0:1,0:10:30.10:0,30,400	0/0:18,0:18:54.17:0,54,684	0/0:1,0:1 [...]
-1	874671	rs148995812	G	T	143.17	TruthSensitivityTranche98.50to98.80	AC=6;AF=0.00254;AN=2364;BaseQRankSum=3.015;DB;DP=17331;Dels=0.00;FS=0.000;HRun=0;HaplotypeScore=0.2863;InbreedingCoeff=0.0404;MQ=62.93;MQ0=0;MQRankSum=2.341;NDA=2;QD=2.98;ReadPosRankSum=1.335;SB=-77.93;VQSLOD=0.5677;culprit=QD;set=FilteredInAll	GT:AD:DP:GQ:PL	0/0:1,0:7:21.06:0,21,253	0/0:1,0:11:33.10:0,33,378	0/0:1,0:4:12.03:0,12,137	0/0:1,0:10:30.09:0,30,344	0/0:1,0:11:33.10:0,33,407	0/0:1,0:9:27.07:0,27,301	0/0:21,0:21 [...]
-1	874697	.	C	G	101.09	PASS	AC=1;AF=0.00042;AN=2362;BaseQRankSum=-3.035;DP=22197;Dels=0.00;FS=1.736;HRun=2;HaplotypeScore=0.2393;InbreedingCoeff=-0.0038;MQ=69.05;MQ0=0;MQRankSum=1.459;NDA=3;QD=7.78;ReadPosRankSum=-0.481;SB=9.66;VQSLOD=6.3479;culprit=FS;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:11:33.11:0,33,440	0/0:1,0:15:45.14:0,45,542	0/0:1,0:5:15.05:0,15,203	0/0:1,0:12:36.12:0,36,463	0/0:11,0:12:33.09:0,33,421	0/0:1,0:14:42.14:0,42,560	0/0:1,0:17:51.13:0,51,552	0/0:1,0:13:39.11:0,39,435	0/0:1 [...]
-1	874706	.	A	G	221.68	PASS	AC=1;AF=0.00042;AN=2362;BaseQRankSum=-3.691;DP=23040;Dels=0.00;FS=1.035;HRun=0;HaplotypeScore=0.2004;InbreedingCoeff=-0.0039;MQ=72.95;MQ0=0;MQRankSum=2.395;NDA=3;QD=7.39;ReadPosRankSum=0.700;SB=-109.35;VQSLOD=6.6840;culprit=FS;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:9:27.09:0,27,371	0/0:1,0:18:54.16:0,54,618	0/0:1,0:7:21.07:0,21,285	0/0:12,0:12:30.10:0,30,407	0/0:12,0:12:36.11:0,36,474	0/0:1,0:13:39.13:0,39,528	0/0:1,0:19:57.17:0,57,653	0/0:15,0:15:45.12:0,45,501	0/ [...]
-1	874714	.	C	T	172.67	PASS	AC=2;AF=0.00085;AN=2364;BaseQRankSum=0.061;DP=25875;Dels=0.00;FS=16.702;HRun=0;HaplotypeScore=0.1731;InbreedingCoeff=0.0793;MQ=74.76;MQ0=0;MQRankSum=1.555;NDA=2;QD=4.43;ReadPosRankSum=0.171;SB=-21.70;VQSLOD=1.9941;culprit=FS;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:9:27.09:0,27,371	0/0:1,0:18:54.17:0,54,650	0/0:1,0:8:24.08:0,24,325	0/0:12,0:12:27.09:0,27,381	0/0:1,0:11:33.11:0,33,447	0/0:1,0:19:57.19:0,57,760	0/0:1,0:25:75.20:0,75,812	0/0:17,0:17:51.13:0,51,574	0/0:1 [...]
-1	874731	.	G	A	145.27	PASS	AC=1;AF=0.00042;AN=2364;BaseQRankSum=0.058;DP=24162;Dels=0.00;FS=0.000;HRun=1;HaplotypeScore=0.1869;InbreedingCoeff=-0.0043;MQ=75.55;MQ0=0;MQRankSum=2.984;NDA=2;QD=10.38;ReadPosRankSum=-0.451;SB=-101.06;VQSLOD=7.0812;culprit=FS;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:9:27.09:0,27,380	0/0:1,0:12:36.12:0,36,472	0/0:1,0:8:24.08:0,24,320	0/0:1,0:12:36.12:0,36,472	0/0:1,0:10:30.10:0,30,393	0/0:1,0:21:63.21:0,63,840	0/0:1,0:20:60.19:0,60,772	0/0:1,0:14:42.13:0,42,529	0/0: [...]
-1	874734	rs145967298	C	T	2081.74	PASS	AC=8;AF=0.00338;AN=2364;BaseQRankSum=-1.345;DB;DP=23140;Dels=0.00;FS=0.000;HRun=0;HaplotypeScore=0.2038;InbreedingCoeff=-0.0083;MQ=76.87;MQ0=0;MQRankSum=5.345;NDA=2;QD=9.51;ReadPosRankSum=4.296;SB=-1122.28;VQSLOD=7.9095;culprit=FS;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:9:27.09:0,27,354	0/0:1,0:10:30.09:0,30,353	0/0:1,0:7:21.07:0,21,265	0/0:1,0:11:33.11:0,33,432	0/0:1,0:8:24.07:0,24,282	0/0:1,0:18:54.17:0,54,650	0/0:1,0:17:51.13:0,51,552	0/0:1,0:10:30.07: [...]
-1	874762	rs139437968	C	T	651.40	PASS	AC=8;AF=0.00338;AN=2364;BaseQRankSum=-0.183;DB;DP=25970;Dels=0.00;FS=2.823;HRun=0;HaplotypeScore=0.2432;InbreedingCoeff=-0.0132;MQ=87.02;MQ0=0;MQRankSum=1.762;NDA=3;QD=5.62;ReadPosRankSum=0.858;SB=-307.51;VQSLOD=6.1742;culprit=FS;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:12:36.12:0,36,501	0/0:1,0:12:36.11:0,36,444	0/0:1,0:15:45.15:0,45,579	0/0:1,0:19:57.19:0,57,772	0/0:1,0:11:33.11:0,33,424	0/0:1,0:25:75.24:0,75,964	0/0:1,0:18:54.16:0,54,635	0/0:1,0:13:39.11 [...]
-1	874779	rs141207077	C	T	277.66	PASS	AC=2;AF=0.00085;AN=2364;BaseQRankSum=-2.449;DB;DP=26201;DS;Dels=0.00;FS=0.000;HRun=0;HaplotypeScore=0.5481;InbreedingCoeff=0.0139;MQ=74.98;MQ0=2;MQRankSum=-2.236;NDA=2;QD=7.93;ReadPosRankSum=0.678;SB=-141.68;VQSLOD=5.2534;culprit=FS;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:13:39.13:0,39,528	0/0:1,0:12:36.11:0,36,444	0/0:1,0:21:63.21:0,63,840	0/0:1,0:23:69.23:0,69,920	0/0:1,0:15:45.15:0,45,618	0/0:1,0:28:84.28:0,84,1120	0/0:1,0:17:51.16:0,51,629	0/0:1,0:10:3 [...]
-1	874809	.	G	C	241.96	PASS	AC=2;AF=0.00085;AN=2364;BaseQRankSum=-4.215;DP=29065;DS;Dels=0.00;FS=2.562;HRun=1;HaplotypeScore=0.7328;InbreedingCoeff=-0.0131;MQ=59.07;MQ0=7;MQRankSum=1.382;NDA=3;QD=8.07;ReadPosRankSum=-1.689;SB=-71.04;VQSLOD=4.3569;culprit=HaplotypeScore;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:18:54.18:0,54,732	0/0:1,0:16:48.16:0,48,629	0/0:1,0:29:87.29:0,87,1160	0/0:1,0:27:81.27:0,81,1113	0/0:1,0:21:63.21:0,63,866	0/0:1,0:27:81.27:0,81,1097	0/0:1,0:14:42.13:0,42,518	0/0:1,0:8:2 [...]
-1	874816	.	C	CT	13059.48	PASS	AC=80;AF=0.03393;AN=2358;BaseQRankSum=-0.835;DP=28085;FS=73.108;GS;HRun=1;HaplotypeScore=4.8051;InbreedingCoeff=0.0220;MQ=55.70;MQ0=12;MQRankSum=3.256;NDA=1;QD=8.23;ReadPosRankSum=17.642;SB=-5804.39;set=variant2	GT:AD:DP:GQ:PL	0/0:1,0:1:57.19:0,57,845	0/0:1,0:1:57.19:0,57,845	0/0:1,0:1:87.29:0,87,1289	0/0:1,0:1:78.26:0,78,1156	0/0:1,0:1:66.22:0,66,978	0/0:1,0:1:87.29:0,87,1289	0/0:1,0:1:42.14:0,42,622	0/0:1,0:1:18.06:0,18,267	0/0:1,0:1:30.08:0,30,336	0/0:1,0 [...]
-1	874826	.	A	C	73.70	TruthSensitivityTranche99.00to99.30	AC=42;AF=0.01780;AN=2360;BaseQRankSum=-24.430;DP=21024;DS;Dels=0.00;FS=339.345;HRun=2;HaplotypeScore=0.9175;InbreedingCoeff=-0.0037;MQ=55.96;MQ0=9;MQRankSum=-2.079;NDA=2;QD=0.11;ReadPosRankSum=-6.577;SB=-243.62;VQSLOD=-1.9473;culprit=HaplotypeScore;set=FilteredInAll	GT:AD:DP:GQ:PL	0/0:1,0:21:63.20:0,63,810	0/0:1,0:16:48.13:0,48,535	0/0:1,0:26:78.25:0,78,983	0/0:1,0:20:60.20:0,60,800	0/0:1,0:21:63.21:0,63,854	0/0:1,0:31:93.30:0,93,1 [...]
-1	874829	.	T	C	182.51	TruthSensitivityTranche99.30to99.50	AC=71;AF=0.03003;AN=2364;BaseQRankSum=-21.015;DP=23962;DS;Dels=0.00;FS=486.019;HRun=4;HaplotypeScore=0.8899;InbreedingCoeff=-0.0423;MQ=55.61;MQ0=12;MQRankSum=4.332;NDA=1;QD=0.24;ReadPosRankSum=-19.215;SB=-390.43;VQSLOD=-3.1119;culprit=HaplotypeScore;set=FilteredInAll	GT:AD:DP:GQ:PL	0/0:1,0:21:63.21:0,63,826	0/0:1,0:14:42.13:0,42,518	0/0:1,0:27:81.26:0,81,1061	0/0:1,0:22:66.22:0,66,894	0/0:1,0:23:69.23:0,69,904	0/0:1,0:32:96.31:0,9 [...]
-1	874840	.	G	A	76.39	TruthSensitivityTranche99.30to99.50	AC=4;AF=0.00169;AN=2364;BaseQRankSum=0.194;DP=25677;DS;Dels=0.00;FS=36.775;HRun=0;HaplotypeScore=0.4616;InbreedingCoeff=0.0506;MQ=54.52;MQ0=17;MQRankSum=1.004;NDA=3;QD=1.41;ReadPosRankSum=-4.415;SB=-198.08;VQSLOD=-4.2627;culprit=QD;set=FilteredInAll	GT:AD:DP:GQ:PL	0/0:1,0:16:48.15:0,48,605	0/0:20,0:20:54.15:0,54,656	0/0:1,0:27:81.25:0,81,998	0/0:1,0:22:66.20:0,66,795	0/0:1,0:22:66.21:0,66,832	0/0:1,0:29:87.28:0,87,1119	0/0:1,0:12:3 [...]
-1	874864	rs141512630	CT	C	14962.48	PASS	AC=120;AF=0.05376;AN=2232;BaseQRankSum=7.876;DB;DP=19575;DS;FS=29.806;HRun=1;HaplotypeScore=3.1953;InbreedingCoeff=-0.0547;MQ=55.23;MQ0=13;MQRankSum=3.370;NDA=1;QD=5.75;ReadPosRankSum=8.496;SB=-5595.81;set=variant2	GT:AD:DP:GQ:PL	0/0:1,0:1:42.14:0,42,636	0/0:1,0:1:27.09:0,27,409	0/0:1,0:1:54.18:0,54,818	0/0:1,0:1:48.16:0,48,727	0/0:1,0:1:48.16:0,48,727	0/0:1,0:1:75.25:0,75,1136	0/0:1,0:1:27.04:0,27,260	0/0:1,0:1:24.05:0,24,239	0/0:1,0:1:27.06:0,27, [...]
-1	874875	.	A	C	125.15	TruthSensitivityTranche99.00to99.30	AC=62;AF=0.02654;AN=2336;BaseQRankSum=-25.364;DP=13447;DS;Dels=0.00;FS=290.321;HRun=2;HaplotypeScore=0.9392;InbreedingCoeff=-0.0357;MQ=62.88;MQ0=9;MQRankSum=-2.359;NDA=3;QD=0.20;ReadPosRankSum=-3.012;SB=-138.79;VQSLOD=-1.6402;culprit=HaplotypeScore;set=FilteredInAll	GT:AD:DP:GQ:PL	0/0:1,0:13:39.12:0,39,470	0/0:1,0:3:9.03:0,9,111	0/0:1,0:14:42.13:0,42,494	0/0:1,0:13:39.12:0,39,470	0/0:1,0:12:36.12:0,36,472	0/0:1,0:18:54.17:0,54,694 [...]
-1	874878	.	T	C	2347.07	TruthSensitivityTranche99.50to99.90	AC=177;AF=0.07526;AN=2352;BaseQRankSum=-27.911;DP=15608;DS;Dels=0.00;FS=812.634;HRun=4;HaplotypeScore=0.4553;InbreedingCoeff=-0.0682;MQ=62.83;MQ0=10;MQRankSum=-1.551;NDA=3;QD=1.03;ReadPosRankSum=-24.080;SB=275.16;VQSLOD=-5.8489;culprit=QD;set=FilteredInAll	GT:AD:DP:GQ:PL	0/0:1,0:14:42.13:0,42,506	0/0:1,0:2:6.02:0,6,76	0/0:1,0:15:45.14:0,45,567	0/0:1,0:12:36.11:0,36,454	0/0:1,0:15:45.14:0,45,567	0/0:1,0:19:57.18:0,57,718	0/1:8,1:9 [...]
-1	874880	.	C	T	106.84	PASS	AC=2;AF=0.00085;AN=2364;BaseQRankSum=-1.422;DP=21057;DS;Dels=0.00;FS=3.970;HRun=0;HaplotypeScore=0.4635;InbreedingCoeff=-0.0128;MQ=62.21;MQ0=9;MQRankSum=0.305;NDA=2;QD=3.96;ReadPosRankSum=1.493;SB=-59.85;VQSLOD=2.2323;culprit=QD;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:15:45.15:0,45,610	0/0:1,0:9:27.09:0,27,347	0/0:1,0:18:54.18:0,54,720	0/0:1,0:15:45.15:0,45,626	0/0:1,0:19:57.19:0,57,802	0/0:1,0:23:69.23:0,69,960	0/0:11,0:11:33.10:0,33,407	0/0:12,0:12:36.12:0,36,467	 [...]
-1	876484	rs118109273	C	T	4116.34	PASS	AC=42;AF=0.01825;AN=2302;BaseQRankSum=-4.436;DB;DP=8391;Dels=0.00;FS=33.016;HRun=0;HaplotypeScore=0.2452;InbreedingCoeff=0.0391;MQ=62.83;MQ0=0;MQRankSum=7.010;NDA=2;QD=13.50;ReadPosRankSum=2.029;SB=-1128.61;VQSLOD=5.1912;culprit=MQRankSum;set=variant	GT:AD:DP:GQ:PL	./.	0/0:1,0:3:9.02:0,9,92	0/0:1,0:3:9.02:0,9,100	0/0:1,0:5:15.05:0,15,197	0/0:1,0:5:15.05:0,15,200	0/0:1,0:3:9.03:0,9,120	0/0:1,0:4:12.04:0,12,154	0/0:11,0:11:27.08:0,27,323	0/0:4,0:4:12.0 [...]
-1	876499	rs4372192	A	G	305633.12	PASS	AC=2123;AF=0.91667;AN=2316;BaseQRankSum=22.009;DB;DP=9687;Dels=0.01;FS=13.883;HRun=6;HaplotypeScore=0.3271;InbreedingCoeff=0.0020;MQ=62.35;MQ0=0;MQRankSum=-2.556;NDA=3;QD=31.33;ReadPosRankSum=-0.328;SB=-23736.25;VQSLOD=4.8712;culprit=MQ;set=variant	GT:AD:DP:GQ:PL	1/1:0,1:1:3.01:38,3,0	1/1:0,1:6:18.06:227,18,0	1/1:0,1:3:9.03:116,9,0	1/1:0,1:5:15.05:189,15,0	1/1:0,1:4:12.04:171,12,0	1/1:0,1:2:6.02:81,6,0	1/1:0,1:7:21.07:270,21,0	1/1:0,12:12:36.08:436,3 [...]
-1	876659	.	C	T	66.95	PASS	AC=1;AF=0.00043;AN=2322;BaseQRankSum=-0.742;DP=8862;Dels=0.00;FS=9.438;HRun=0;HaplotypeScore=0.1758;InbreedingCoeff=-0.0314;MQ=60.48;MQ0=0;MQRankSum=2.146;NDA=2;QD=9.56;ReadPosRankSum=-0.520;SB=7.07;VQSLOD=5.9783;culprit=InbreedingCoeff;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:1:3.01:0,3,41	0/0:8,0:8:18.03:0,18,209	0/0:1,0:2:6.02:0,6,84	0/0:6,0:6:18.06:0,18,237	0/0:1,0:3:9.03:0,9,118	0/0:1,0:2:6.02:0,6,84	0/0:8,0:8:24.08:0,24,307	0/0:1,0:4:12.04:0,12,145	0/0:1,0:5:15. [...]
-1	876698	.	G	C	162.37	TruthSensitivityTranche99.00to99.30	AC=54;AF=0.02432;AN=2220;BaseQRankSum=-14.750;DP=5641;Dels=0.00;FS=79.866;HRun=1;HaplotypeScore=0.2141;InbreedingCoeff=-0.0605;MQ=65.04;MQ0=0;MQRankSum=0.487;NDA=3;QD=0.51;ReadPosRankSum=-10.460;SB=485.51;VQSLOD=-1.5866;culprit=QD;set=FilteredInAll	GT:AD:DP:GQ:PL	0/0:1,0:1:3.01:0,3,41	0/0:1,0:2:6.02:0,6,79	./.	0/0:1,0:3:9.03:0,9,124	0/0:1,0:1:3.01:0,3,42	0/0:1,0:1:3.01:0,3,32	0/0:6,0:6:15.03:0,15,163	0/0:1,0:3:9.03:0,9,108	0/0:1,0 [...]
-1	877498	.	T	C	103.49	PASS	AC=2;AF=0.00100;AN=1992;BaseQRankSum=2.365;DP=3395;Dels=0.00;FS=0.000;HRun=0;HaplotypeScore=0.0945;InbreedingCoeff=-0.0948;MQ=67.96;MQ0=0;MQRankSum=0.630;NDA=1;QD=6.09;ReadPosRankSum=-0.641;SB=-3.03;VQSLOD=4.2876;culprit=FS;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:1:3.01:0,3,41	0/0:1,0:3:9.03:0,9,106	0/0:1,0:4:12.04:0,12,154	0/0:1,0:1:3.01:0,3,41	./.	0/0:1,0:5:15.05:0,15,203	0/0:3,0:3:9.02:0,9,94	./.	0/0:1,0:1:3.01:0,3,34	0/0:1,0:5:15.04:0,15,158	0/0:2,0:2:6.01:0,6,6 [...]
-1	877583	.	C	T	209.17	PASS	AC=2;AF=0.00090;AN=2230;BaseQRankSum=-2.524;DP=7189;Dels=0.00;FS=2.392;HRun=1;HaplotypeScore=0.1395;InbreedingCoeff=-0.0604;MQ=69.85;MQ0=0;MQRankSum=0.660;NDA=2;QD=6.34;ReadPosRankSum=-0.548;SB=-111.73;VQSLOD=4.9268;culprit=FS;set=variant	GT:AD:DP:GQ:PL	./.	0/0:1,0:5:15.05:0,15,193	0/0:1,0:2:6.02:0,6,84	0/0:1,0:3:9.03:0,9,125	./.	0/0:1,0:6:18.06:0,18,236	0/0:1,0:1:3:0,3,28	0/0:1,0:3:9.03:0,9,113	0/0:2,0:2:6.02:0,6,79	0/0:1,0:9:27.09:0,27,354	0/0:3,0:3:9.03:0,9, [...]
-1	877608	.	C	G	100.84	PASS	AC=3;AF=0.00138;AN=2176;BaseQRankSum=-1.905;DP=5927;Dels=0.00;FS=4.496;HRun=0;HaplotypeScore=0.1522;InbreedingCoeff=-0.0542;MQ=64.62;MQ0=0;MQRankSum=0.399;NDA=2;QD=6.72;ReadPosRankSum=-0.563;SB=-42.63;VQSLOD=4.7731;culprit=QD;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:1:3.01:0,3,31	0/0:1,0:3:9.03:0,9,113	0/0:1,0:1:3.01:0,3,44	0/0:1,0:3:9.03:0,9,116	./.	0/0:1,0:5:15.05:0,15,197	./.	0/0:1,0:1:3.01:0,3,37	0/0:2,0:2:6.02:0,6,75	0/0:1,0:6:18.06:0,18,217	0/0:1,0:3:9.02:0,9,1 [...]
-1	877677	.	G	C	349.09	TruthSensitivityTranche99.00to99.30	AC=69;AF=0.03770;AN=1830;BaseQRankSum=-9.318;DP=2433;Dels=0.00;FS=448.822;HRun=1;HaplotypeScore=0.0879;InbreedingCoeff=-0.0760;MQ=59.92;MQ0=0;MQRankSum=0.100;NDA=3;QD=1.71;ReadPosRankSum=-8.632;SB=-143.52;VQSLOD=-1.8166;culprit=QD;set=FilteredInAll	GT:AD:DP:GQ:PL	./.	./.	0/0:1,0:2:6.02:0,6,86	0/0:1,0:1:3.01:0,3,35	./.	0/0:1,0:2:6.02:0,6,77	0/0:1,0:1:3.01:0,3,39	0/0:1,0:1:2.99:0,3,23	./.	0/0:1,0:1:3.01:0,3,39	0/0:1,0:2:6.02:0,6,72	 [...]
-1	877782	rs79037098	C	G	4781.10	PASS	AC=124;AF=0.07159;AN=1732;BaseQRankSum=-4.447;DB;DP=2110;Dels=0.00;FS=3.255;HRun=0;HaplotypeScore=0.0938;InbreedingCoeff=0.0287;MQ=60.89;MQ0=0;MQRankSum=2.952;NDA=2;QD=17.45;ReadPosRankSum=-3.028;SB=-1408.28;VQSLOD=6.6300;culprit=FS;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:3:9.03:0,9,120	./.	0/0:1,0:2:6.02:0,6,76	./.	0/0:1,0:2:6.02:0,6,88	0/0:1,0:1:3.01:0,3,36	0/0:1,0:1:3.01:0,3,36	0/0:1,0:1:3.01:0,3,37	0/0:1,0:1:3.01:0,3,38	0/0:1,0:1:3.01:0,3,40	0/0:1,0:1: [...]
-1	877822	.	A	T	78.78	PASS	AC=1;AF=0.00055;AN=1804;BaseQRankSum=-0.199;DP=2323;Dels=0.00;FS=2.331;HRun=1;HaplotypeScore=0.0436;InbreedingCoeff=-0.1067;MQ=58.62;MQ0=0;MQRankSum=2.403;NDA=1;QD=8.75;ReadPosRankSum=-2.072;SB=13.26;VQSLOD=3.3162;culprit=FS;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:2:6.02:0,6,80	./.	0/0:1,0:1:3.01:0,3,36	./.	0/0:1,0:1:3.01:0,3,41	./.	0/0:1,0:3:9.02:0,9,92	./.	0/0:1,0:3:9.02:0,9,100	0/0:1,0:1:3.01:0,3,32	0/0:1,0:1:3.01:0,3,30	./.	0/0:1,0:3:9.02:0,9,100	0/0:1,0:1:3.01:0 [...]
-1	877831	rs6672356	T	C	82507.77	PASS	AC=1802;AF=1.00000;AN=1802;BaseQRankSum=-0.472;DB;DP=2494;Dels=0.00;FS=0.000;HRun=2;HaplotypeScore=0.0398;InbreedingCoeff=-0.0821;MQ=58.21;MQ0=0;MQRankSum=2.333;NDA=2;QD=33.07;ReadPosRankSum=1.161;SB=-3183.71;VQSLOD=1.4957;culprit=FS;set=variant	GT:AD:DP:GQ:PL	1/1:0,1:2:6.02:69,6,0	./.	1/1:0,1:1:3.01:30,3,0	./.	1/1:0,1:1:3.01:44,3,0	./.	1/1:0,1:3:9.02:100,9,0	./.	1/1:0,1:3:9.02:92,9,0	1/1:0,1:2:6.01:61,6,0	1/1:0,1:2:6.01:55,6,0	./.	1/1:0,1:4:12.04:148 [...]
-1	878008	.	C	T	138.93	PASS	AC=5;AF=0.0063;AN=792;BaseQRankSum=0.007;DP=887;Dels=0.00;FS=0.000;HRun=0;HaplotypeScore=0.0558;InbreedingCoeff=-0.0914;MQ=58.35;MQ0=0;MQRankSum=1.574;NDA=2;QD=11.58;ReadPosRankSum=-1.392;SB=5.36;VQSLOD=3.3594;culprit=FS;set=variant	GT:AD:DP:GQ:PL	./.	./.	./.	./.	0/0:1,0:1:3.01:0,3,42	./.	0/0:1,0:1:3.01:0,3,31	./.	./.	./.	./.	./.	./.	0/0:1,0:1:3.01:0,3,39	0/0:1,0:1:3.01:0,3,33	0/0:1,0:1:3.01:0,3,32	./.	0/0:1,0:3:9.02:0,9,100	0/0:1,0:1:3.01:0,3,32	./.	./.	0/0:1, [...]
-1	878254	.	C	T	85.52	PASS	AC=8;AF=0.00352;AN=2272;BaseQRankSum=-5.177;DP=5745;Dels=0.00;FS=5.964;HRun=1;HaplotypeScore=0.1128;InbreedingCoeff=-0.0572;MQ=80.88;MQ0=0;MQRankSum=1.091;NDA=1;QD=1.50;ReadPosRankSum=-0.781;SB=-70.68;VQSLOD=1.6977;culprit=QD;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:3:9.03:0,9,129	0/0:1,0:8:24.08:0,24,309	0/0:1,0:3:9.03:0,9,124	0/0:1,0:1:3.01:0,3,33	0/0:1,0:5:15.05:0,15,206	0/0:1,0:4:12.04:0,12,145	0/0:1,0:5:15.05:0,15,200	0/0:1,0:2:6.02:0,6,81	0/0:1,0:6:18.06:0,18,22 [...]
-1	878296	rs72902601	C	G	223.90	PASS	AC=5;AF=0.00217;AN=2306;BaseQRankSum=0.013;DB;DP=6410;Dels=0.00;FS=2.317;HRun=1;HaplotypeScore=0.1647;InbreedingCoeff=-0.0498;MQ=84.45;MQ0=1;MQRankSum=-1.556;NDA=3;QD=7.72;ReadPosRankSum=-0.819;SB=29.78;VQSLOD=6.1512;culprit=FS;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:2:6.02:0,6,85	0/0:1,0:7:21.06:0,21,240	0/0:1,0:3:9.03:0,9,122	0/0:1,0:3:9.03:0,9,130	0/0:1,0:4:12.04:0,12,154	0/0:6,0:6:18.06:0,18,225	0/0:1,0:7:21.06:0,21,240	0/0:1,0:4:12.03:0,12,130	0/0:7,0: [...]
-1	878310	.	T	C	230.22	PASS	AC=6;AF=0.00259;AN=2314;BaseQRankSum=2.438;DP=6355;Dels=0.00;FS=7.487;HRun=0;HaplotypeScore=0.2096;InbreedingCoeff=-0.0279;MQ=75.89;MQ0=1;MQRankSum=-0.662;NDA=3;QD=6.40;ReadPosRankSum=0.464;SB=24.62;VQSLOD=6.3399;culprit=InbreedingCoeff;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:2:6.02:0,6,77	0/0:1,0:4:12.04:0,12,148	0/0:1,0:4:12.04:0,12,148	0/0:1,0:3:9.03:0,9,122	0/0:1,0:2:6.02:0,6,80	0/0:1,0:5:15.05:0,15,193	0/0:6,0:6:18.04:0,18,193	0/0:1,0:5:15.04:0,15,167	0/0:7,0:8 [...]
-1	878314	rs142558220	G	C	6737.16	PASS	AC=100;AF=0.04314;AN=2318;BaseQRankSum=4.429;DB;DP=6404;Dels=0.00;FS=33.002;HRun=0;HaplotypeScore=0.2219;InbreedingCoeff=0.0422;MQ=74.44;MQ0=0;MQRankSum=1.067;NDA=3;QD=14.58;ReadPosRankSum=-0.369;SB=-1736.03;VQSLOD=6.0058;culprit=FS;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:3:9.03:0,9,120	0/0:1,0:3:9.03:0,9,113	0/0:1,0:4:12.04:0,12,151	0/0:1,0:3:9.03:0,9,127	0/0:1,0:2:6.02:0,6,86	0/0:1,0:7:21.07:0,21,280	0/1:5,1:6:21.95:22,0,170	0/0:1,0:5:15.05:0,15,193	0/0 [...]
-1	878325	rs114478480	C	T	1290.92	PASS	AC=22;AF=0.00954;AN=2306;BaseQRankSum=0.807;DB;DP=6480;Dels=0.00;FS=8.079;HRun=0;HaplotypeScore=0.2133;InbreedingCoeff=0.0090;MQ=69.57;MQ0=1;MQRankSum=1.550;NDA=3;QD=12.29;ReadPosRankSum=-0.505;SB=-430.52;VQSLOD=8.1094;culprit=ReadPosRankSum;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:4:12.04:0,12,175	0/0:1,0:5:15.05:0,15,185	0/0:1,0:3:9.02:0,9,100	0/0:1,0:3:9.03:0,9,103	0/0:1,0:2:6.02:0,6,82	0/0:1,0:9:27.09:0,27,347	0/0:6,0:6:18.05:0,18,217	0/0:1,0:5:15.05:0 [...]
-1	878331	rs148327885	C	T	903.80	PASS	AC=21;AF=0.00898;AN=2338;BaseQRankSum=-0.474;DB;DP=6742;Dels=0.00;FS=1.328;HRun=0;HaplotypeScore=0.1838;InbreedingCoeff=0.0444;MQ=66.59;MQ0=1;MQRankSum=2.307;NDA=2;QD=9.22;ReadPosRankSum=-0.761;SB=-342.88;VQSLOD=6.5208;culprit=FS;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:4:12.04:0,12,172	0/0:1,0:6:18.05:0,18,201	0/0:1,0:4:12.03:0,12,122	0/0:1,0:4:12.04:0,12,160	0/0:1,0:1:3.01:0,3,42	0/0:1,0:8:24.08:0,24,315	0/0:1,0:7:21.06:0,21,234	0/0:1,0:7:21.06:0,21,247	0 [...]
-1	878408	rs190069697	C	T	254.67	PASS	AC=1;AF=0.00043;AN=2350;BaseQRankSum=0.190;DB;DP=11638;Dels=0.00;FS=1.390;HRun=0;HaplotypeScore=0.1533;InbreedingCoeff=-0.0243;MQ=73.35;MQ0=0;MQRankSum=0.575;NDA=2;QD=18.19;ReadPosRankSum=-0.629;SB=-67.06;VQSLOD=6.0781;culprit=InbreedingCoeff;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:8:24.08:0,24,341	0/0:1,0:11:33.10:0,33,407	0/0:1,0:7:21.07:0,21,275	0/0:1,0:7:21.07:0,21,285	0/0:1,0:5:15.05:0,15,217	0/0:1,0:4:12.04:0,12,154	0/0:1,0:5:15.04:0,15,167	0/0:1,0:4 [...]
-1	878425	.	C	T	197.84	PASS	AC=2;AF=0.00085;AN=2356;BaseQRankSum=-0.512;DP=14003;Dels=0.00;FS=6.800;HRun=1;HaplotypeScore=0.1841;InbreedingCoeff=-0.0220;MQ=72.36;MQ0=0;MQRankSum=1.181;NDA=1;QD=6.00;ReadPosRankSum=-0.215;SB=-124.40;VQSLOD=6.3903;culprit=InbreedingCoeff;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:10:30.10:0,30,426	0/0:1,0:16:48.15:0,48,605	0/0:1,0:9:27.09:0,27,354	0/0:1,0:7:21.07:0,21,296	0/0:1,0:7:21.07:0,21,292	0/0:1,0:4:12.04:0,12,157	0/0:1,0:4:12.04:0,12,151	0/0:1,0:5:15.05:0,15 [...]
-1	878474	rs183873661	C	T	444.43	PASS	AC=3;AF=0.00127;AN=2362;BaseQRankSum=-5.768;DB;DP=14280;Dels=0.00;FS=0.762;HRun=0;HaplotypeScore=0.1971;InbreedingCoeff=-0.0172;MQ=70.51;MQ0=0;MQRankSum=0.190;NDA=2;QD=8.55;ReadPosRankSum=-0.720;SB=-178.80;VQSLOD=6.7250;culprit=FS;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:14:42.14:0,42,585	0/0:1,0:12:36.12:0,36,472	0/0:1,0:12:36.11:0,36,454	0/0:1,0:8:24.08:0,24,338	0/0:1,0:12:36.12:0,36,501	0/0:1,0:3:9.03:0,9,120	0/0:10,0:10:27.09:0,27,350	0/0:1,0:7:21.07:0, [...]
-1	878644	.	G	A	226.03	PASS	AC=3;AF=0.00127;AN=2364;BaseQRankSum=-0.122;DP=25048;Dels=0.00;FS=35.316;HRun=0;HaplotypeScore=0.2952;InbreedingCoeff=-0.0072;MQ=95.60;MQ0=0;MQRankSum=-1.258;NDA=3;QD=5.95;ReadPosRankSum=-0.227;SB=-12.93;VQSLOD=4.1589;culprit=QD;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:10:30.10:0,30,393	0/0:19,0:19:51.15:0,51,625	0/0:1,0:14:42.14:0,42,550	0/0:1,0:10:30.10:0,30,400	0/0:1,0:7:21.07:0,21,289	0/0:1,0:5:15.05:0,15,200	0/0:1,0:21:63.19:0,63,759	0/0:15,0:15:45.13:0,45,541	0 [...]
-1	878653	rs112422281	A	G	1095.87	PASS	AC=3;AF=0.00127;AN=2364;BaseQRankSum=4.441;DB;DP=24856;Dels=0.00;FS=13.604;HRun=0;HaplotypeScore=0.3227;InbreedingCoeff=-0.0071;MQ=93.11;MQ0=0;MQRankSum=-1.791;NDA=3;QD=14.81;ReadPosRankSum=0.465;SB=-472.43;VQSLOD=6.0957;culprit=MQ;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:10:30.10:0,30,386	0/0:16,0:16:45.12:0,45,527	0/0:1,0:13:39.13:0,39,501	0/0:1,0:11:33.11:0,33,432	0/0:1,0:8:24.08:0,24,330	0/0:6,0:6:18.06:0,18,236	0/0:1,0:23:69.18:0,69,747	0/0:15,0:15:45 [...]
-1	878656	.	G	T	144.02	PASS	AC=1;AF=0.00042;AN=2364;BaseQRankSum=-2.854;DP=25563;Dels=0.00;FS=13.254;HRun=0;HaplotypeScore=0.3242;InbreedingCoeff=-0.0067;MQ=92.49;MQ0=0;MQRankSum=-1.134;NDA=2;QD=11.08;ReadPosRankSum=0.196;SB=-122.31;VQSLOD=6.2398;culprit=MQ;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:12:36.12:0,36,488	0/0:14,0:14:42.13:0,42,529	0/0:1,0:13:39.13:0,39,501	0/0:1,0:12:36.12:0,36,472	0/0:1,0:6:18.06:0,18,256	0/0:6,0:6:18.06:0,18,241	0/0:1,0:24:72.23:0,72,887	0/0:1,0:17:51.16:0,51,629	0 [...]
-1	878667	.	G	T	1244.61	PASS	AC=7;AF=0.00296;AN=2364;BaseQRankSum=-5.435;DP=24575;DS;Dels=0.00;FS=6.041;HRun=0;HaplotypeScore=0.4616;InbreedingCoeff=-0.0092;MQ=80.88;MQ0=0;MQRankSum=-0.829;NDA=2;QD=7.83;ReadPosRankSum=1.618;SB=-336.26;VQSLOD=5.6715;culprit=QD;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:13:39.13:0,39,520	0/0:1,0:6:18.06:0,18,227	0/0:1,0:13:39.12:0,39,491	0/0:1,0:11:33.10:0,33,407	0/0:1,0:8:24.08:0,24,325	0/0:1,0:7:21.07:0,21,270	0/0:1,0:22:66.20:0,66,795	0/0:1,0:14:42.13:0,42,506	0 [...]
-1	878676	.	C	T	261.55	PASS	AC=1;AF=0.00042;AN=2364;BaseQRankSum=-0.205;DP=28225;DS;Dels=0.00;FS=16.457;HRun=0;HaplotypeScore=0.7222;InbreedingCoeff=0.0256;MQ=64.88;MQ0=0;MQRankSum=0.709;NDA=3;QD=6.38;ReadPosRankSum=1.287;SB=6.14;VQSLOD=4.2567;culprit=HaplotypeScore;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:9:27.09:0,27,376	0/0:1,0:15:45.14:0,45,555	0/0:1,0:13:39.13:0,39,501	0/0:1,0:8:24.08:0,24,325	0/0:1,0:10:30.10:0,30,400	0/0:1,0:7:21.07:0,21,292	0/0:1,0:27:81.25:0,81,975	0/0:1,0:16:48.15:0,4 [...]
-1	878709	rs144453653	C	T	1463.13	PASS	AC=4;AF=0.00169;AN=2364;BaseQRankSum=4.545;DB;DP=30772;Dels=0.00;FS=0.000;HRun=0;HaplotypeScore=0.3157;InbreedingCoeff=0.0230;MQ=67.14;MQ0=0;MQRankSum=-0.925;NDA=2;QD=12.51;ReadPosRankSum=1.283;SB=-583.42;VQSLOD=5.4027;culprit=FS;set=variant	GT:AD:DP:GQ:PL	0/0:12,0:12:36.10:0,36,450	0/0:1,0:21:63.19:0,63,759	0/0:1,0:12:36.11:0,36,434	0/0:1,0:11:33.11:0,33,432	0/0:10,0:10:30.08:0,30,361	0/0:1,0:6:18.06:0,18,222	0/0:1,0:20:60.13:0,60,612	0/0:1,0:12:36. [...]
-1	878733	.	G	C	722.67	PASS	AC=1;AF=0.00042;AN=2364;BaseQRankSum=1.196;DP=32483;DS;Dels=0.00;FS=34.785;HRun=0;HaplotypeScore=0.2590;InbreedingCoeff=-0.0142;MQ=69.62;MQ0=0;MQRankSum=0.581;NDA=3;QD=12.04;ReadPosRankSum=0.190;SB=-171.66;VQSLOD=5.0944;culprit=InbreedingCoeff;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:15:45.15:0,45,626	0/0:1,0:28:84.27:0,84,1058	0/0:1,0:15:45.15:0,45,626	0/0:1,0:11:33.11:0,33,469	0/0:1,0:12:36.12:0,36,512	0/0:1,0:7:21.07:0,21,292	0/0:12,0:12:36.06:0,36,424	0/0:7,0:7:1 [...]
-1	878744	rs138897766	G	C	2107.39	PASS	AC=12;AF=0.00508;AN=2364;BaseQRankSum=3.699;DB;DP=30261;Dels=0.00;FS=16.835;HRun=0;HaplotypeScore=0.2378;InbreedingCoeff=-0.0201;MQ=72.93;MQ0=0;MQRankSum=0.368;NDA=3;QD=11.33;ReadPosRankSum=2.206;SB=-927.16;VQSLOD=6.3975;culprit=InbreedingCoeff;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:14:42.14:0,42,569	0/0:1,0:29:87.26:0,87,1022	0/0:1,0:16:48.16:0,48,640	0/0:1,0:10:30.10:0,30,422	0/0:1,0:15:45.15:0,45,618	0/0:1,0:6:18.06:0,18,236	0/0:10,0:10:30.09:0,30,374 [...]
-1	878745	rs72902602	A	C	541.13	PASS	AC=4;AF=0.00169;AN=2364;BaseQRankSum=-1.730;DB;DP=29217;Dels=0.00;FS=10.700;HRun=0;HaplotypeScore=0.2345;InbreedingCoeff=-0.0177;MQ=73.36;MQ0=0;MQRankSum=0.644;NDA=2;QD=6.85;ReadPosRankSum=0.092;SB=-308.42;VQSLOD=6.3536;culprit=InbreedingCoeff;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:14:42.14:0,42,577	0/0:1,0:25:75.23:0,75,903	0/0:1,0:14:42.14:0,42,560	0/0:1,0:10:30.10:0,30,418	0/0:1,0:15:45.15:0,45,618	0/0:1,0:5:15.05:0,15,189	0/0:10,0:10:30.06:0,30,350	0/0 [...]
-1	878761	rs35755565	A	AG	448.05	Indel_QD	AC=31;AF=0.01414;AN=2192;BaseQRankSum=3.442;DB;DP=27061;FS=7.246;HRun=7;HaplotypeScore=1.4391;InbreedingCoeff=0.3349;MQ=58.25;MQ0=0;MQRankSum=6.157;NDA=1;QD=1.23;ReadPosRankSum=-1.898;SB=-185.86;set=FilteredInAll	GT:AD:DP:GQ:PL	0/0:1,0:1:30.08:0,30,337	0/0:1,0:1:60.17:0,60,674	0/0:1,0:1:48.14:0,48,539	0/0:1,0:1:27.08:0,27,303	0/0:1,0:1:39.11:0,39,438	0/0:1,0:1:9.03:0,9,101	0/0:1,0:1:36.10:0,36,404	0/0:3,0:4:11.62:0,12,111	0/0:1,0:1:9.03:0,9,101	0/ [...]
-1	878764	rs180779437	G	C	570.53	PASS	AC=3;AF=0.00127;AN=2362;BaseQRankSum=-1.458;DB;DP=27180;DS;Dels=0.00;FS=0.795;HRun=0;HaplotypeScore=0.3066;InbreedingCoeff=-0.0155;MQ=77.01;MQ0=0;MQRankSum=0.624;NDA=2;QD=11.64;ReadPosRankSum=-0.346;SB=-233.86;VQSLOD=6.0170;culprit=FS;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:13:39.13:0,39,528	0/0:1,0:23:69.22:0,69,869	0/0:1,0:15:45.15:0,45,610	0/0:1,0:11:33.11:0,33,447	0/0:1,0:12:36.12:0,36,507	0/0:1,0:5:15.05:0,15,193	0/0:1,0:12:36.11:0,36,423	0/0:4,0:4:12 [...]
-1	878769	.	C	G	669.72	PASS	AC=7;AF=0.00297;AN=2360;BaseQRankSum=-0.891;DP=22087;DS;Dels=0.00;FS=10.150;HRun=7;HaplotypeScore=0.3096;InbreedingCoeff=-0.0231;MQ=78.30;MQ0=0;MQRankSum=0.594;NDA=2;QD=4.59;ReadPosRankSum=-2.948;SB=-264.19;VQSLOD=4.1677;culprit=InbreedingCoeff;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:11:33.11:0,33,432	0/0:1,0:18:54.17:0,54,666	0/0:1,0:14:42.14:0,42,560	0/0:1,0:10:30.09:0,30,370	0/0:1,0:12:36.12:0,36,501	0/0:1,0:5:15.05:0,15,189	0/0:1,0:9:27.09:0,27,340	0/0:4,0:4:12. [...]
-1	878784	rs142929357	C	G	2333.96	PASS	AC=19;AF=0.00806;AN=2358;BaseQRankSum=7.682;DB;DP=21995;Dels=0.00;FS=26.129;HRun=4;HaplotypeScore=0.2483;InbreedingCoeff=0.0072;MQ=77.12;MQ0=0;MQRankSum=-0.127;NDA=3;QD=11.06;ReadPosRankSum=-5.854;SB=-1081.78;VQSLOD=6.0573;culprit=FS;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:8:24.07:0,24,275	0/0:1,0:13:39.11:0,39,447	0/0:1,0:13:39.12:0,39,458	0/0:1,0:7:21.06:0,21,240	0/0:1,0:11:33.11:0,33,424	0/0:1,0:5:15.05:0,15,185	0/0:1,0:8:24.04:0,24,237	0/0:2,0:2:6.01: [...]
-1	878785	rs187587205	G	A	154.05	PASS	AC=5;AF=0.00212;AN=2358;BaseQRankSum=1.056;DB;DP=22546;Dels=0.00;FS=1.420;HRun=0;HaplotypeScore=0.2441;InbreedingCoeff=-0.0016;MQ=76.46;MQ0=0;MQRankSum=1.130;NDA=3;QD=2.80;ReadPosRankSum=-0.329;SB=9.86;VQSLOD=2.3244;culprit=QD;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:10:30.10:0,30,386	0/0:1,0:15:45.14:0,45,567	0/0:1,0:15:45.15:0,45,600	0/0:1,0:9:27.09:0,27,340	0/0:1,0:12:36.12:0,36,472	0/0:1,0:6:18.06:0,18,253	0/0:1,0:9:27.08:0,27,309	0/0:2,0:2:6.02:0,6,74	 [...]
-1	878809	rs191952374	C	T	2379.47	PASS	AC=12;AF=0.00509;AN=2358;BaseQRankSum=-7.158;DB;DP=18026;Dels=0.00;FS=0.000;HRun=1;HaplotypeScore=0.0596;InbreedingCoeff=-0.0001;MQ=83.71;MQ0=0;MQRankSum=5.459;NDA=1;QD=13.22;ReadPosRankSum=1.015;SB=-226.93;VQSLOD=8.2616;culprit=FS;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:7:21.07:0,21,301	0/0:1,0:15:45.14:0,45,567	0/0:1,0:14:42.13:0,42,529	0/0:1,0:9:27.09:0,27,354	0/0:1,0:9:27.09:0,27,354	0/0:1,0:8:24.08:0,24,341	0/0:1,0:6:18.06:0,18,231	0/0:4,0:4:12.03:0, [...]
-1	879045	.	C	T	310.80	PASS	AC=10;AF=0.00423;AN=2362;BaseQRankSum=1.692;DP=12971;Dels=0.00;FS=0.000;HRun=0;HaplotypeScore=0.3476;InbreedingCoeff=-0.0250;MQ=70.55;MQ0=0;MQRankSum=-0.063;NDA=3;QD=2.66;ReadPosRankSum=0.103;SB=-95.32;VQSLOD=1.6109;culprit=QD;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:8:24.08:0,24,320	0/0:1,0:5:15.05:0,15,189	0/0:1,0:7:21.07:0,21,259	0/0:1,0:8:24.08:0,24,302	0/0:11,0:11:33.11:0,33,476	0/0:1,0:7:21.07:0,21,275	0/0:1,0:15:45.14:0,45,529	0/0:8,0:8:24.06:0,24,287	0/0:1,0: [...]
-1	879060	rs186768085	C	T	178.33	PASS	AC=2;AF=0.00085;AN=2362;BaseQRankSum=-2.758;DB;DP=14742;Dels=0.00;FS=16.111;HRun=0;HaplotypeScore=0.3498;InbreedingCoeff=-0.0180;MQ=70.61;MQ0=0;MQRankSum=0.836;NDA=2;QD=3.72;ReadPosRankSum=0.265;SB=-103.55;VQSLOD=2.0271;culprit=InbreedingCoeff;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:7:21.07:0,21,275	0/0:1,0:4:12.04:0,12,148	0/0:1,0:6:18.06:0,18,253	0/0:1,0:7:21.07:0,21,280	0/0:13,0:13:39.13:0,39,549	0/0:1,0:10:30.10:0,30,412	0/0:1,0:12:36.11:0,36,434	0/0:1 [...]
-1	879090	.	C	A	1219.01	TruthSensitivityTranche99.30to99.50	AC=2;AF=0.00085;AN=2364;BaseQRankSum=-27.199;DP=18527;Dels=0.02;FS=56.628;HRun=1;HaplotypeScore=0.8406;InbreedingCoeff=0.1134;MQ=61.65;MQ0=0;MQRankSum=11.240;NDA=3;QD=1.39;ReadPosRankSum=1.781;SB=-327.63;VQSLOD=-4.1026;culprit=QD;set=FilteredInAll	GT:AD:DP:GQ:PL	0/0:1,0:3:9.03:0,9,131	0/0:11,0:11:30.08:0,30,368	0/0:1,0:11:33.11:0,33,416	0/0:1,0:7:21.07:0,21,292	0/0:1,0:14:42.14:0,42,560	0/0:1,0:12:36.12:0,36,472	0/0:1,0:6:18.06:0 [...]
-1	879095	.	G	A	231.79	TruthSensitivityTranche98.50to98.80	AC=3;AF=0.00127;AN=2364;BaseQRankSum=-9.250;DP=19365;Dels=0.00;FS=0.000;HRun=1;HaplotypeScore=0.8663;InbreedingCoeff=-0.0143;MQ=60.09;MQ0=0;MQRankSum=1.310;NDA=3;QD=2.90;ReadPosRankSum=-0.443;SB=-73.14;VQSLOD=0.1700;culprit=QD;set=FilteredInAll	GT:AD:DP:GQ:PL	0/0:1,0:4:12.04:0,12,172	0/0:13,0:13:36.11:0,36,451	0/0:1,0:11:33.11:0,33,454	0/0:1,0:8:24.08:0,24,320	0/0:1,0:14:42.14:0,42,591	0/0:1,0:15:45.15:0,45,600	0/0:1,0:6:18.06:0,1 [...]
-1	879108	.	A	C	2045.21	TruthSensitivityTranche99.50to99.90	AC=174;AF=0.07360;AN=2364;BaseQRankSum=-22.465;DP=20020;Dels=0.00;FS=3200.000;HRun=3;HaplotypeScore=0.6535;InbreedingCoeff=-0.0715;MQ=59.51;MQ0=2;MQRankSum=2.710;NDA=2;QD=0.79;ReadPosRankSum=-21.990;SB=-568.80;VQSLOD=-65.2733;culprit=FS;set=FilteredInAll	GT:AD:DP:GQ:PL	0/0:1,0:7:21.07:0,21,285	0/0:1,0:9:27.08:0,27,309	0/0:1,0:12:36.11:0,36,454	0/0:1,0:7:21.07:0,21,285	0/0:1,0:15:45.14:0,45,567	0/0:1,0:13:39.12:0,39,481	0/1:5,2:7: [...]
-1	879115	.	C	G	98.78	PASS	AC=1;AF=0.00042;AN=2364;BaseQRankSum=0.335;DP=28840;DS;Dels=0.00;FS=1.686;HRun=0;HaplotypeScore=0.4535;InbreedingCoeff=-0.0059;MQ=59.65;MQ0=2;MQRankSum=-1.112;NDA=2;QD=5.81;ReadPosRankSum=1.173;SB=-52.08;VQSLOD=4.2445;culprit=FS;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:11:33.11:0,33,459	0/0:1,0:20:60.19:0,60,740	0/0:15,0:15:45.15:0,45,613	0/0:1,0:7:21.07:0,21,289	0/0:1,0:14:42.14:0,42,577	0/0:1,0:17:51.17:0,51,701	0/0:9,0:9:27.08:0,27,336	0/0:1,0:10:30.10:0,30,386	0/0 [...]
-1	879135	rs149790558	C	T	710.99	PASS	AC=2;AF=0.00085;AN=2364;BaseQRankSum=1.067;DB;DP=33389;Dels=0.00;FS=4.041;HRun=1;HaplotypeScore=0.2819;InbreedingCoeff=-0.0065;MQ=65.56;MQ0=0;MQRankSum=-0.395;NDA=2;QD=9.61;ReadPosRankSum=0.089;SB=-349.93;VQSLOD=6.0187;culprit=MQ;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:17:51.17:0,51,731	0/0:1,0:24:72.23:0,72,907	0/0:1,0:16:48.16:0,48,650	0/0:1,0:10:30.10:0,30,393	0/0:1,0:15:45.15:0,45,618	0/0:1,0:20:60.20:0,60,835	0/0:1,0:15:45.15:0,45,590	0/0:15,0:15:42.1 [...]
-1	879142	rs148506094	C	G	986.92	PASS	AC=2;AF=0.00085;AN=2364;BaseQRankSum=5.008;DB;DP=34146;Dels=0.00;FS=52.989;HRun=0;HaplotypeScore=0.2258;InbreedingCoeff=0.0374;MQ=69.31;MQ0=0;MQRankSum=-1.263;NDA=1;QD=13.71;ReadPosRankSum=1.568;SB=-27.67;VQSLOD=4.0467;culprit=FS;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:17:51.17:0,51,718	0/0:1,0:22:66.21:0,66,849	0/0:1,0:18:54.18:0,54,708	0/0:1,0:11:33.11:0,33,459	0/0:1,0:18:54.18:0,54,708	0/0:1,0:19:57.19:0,57,783	0/0:1,0:17:51.16:0,51,656	0/0:16,0:16:48.1 [...]
-1	879145	rs146548754	A	C	921.44	PASS	AC=2;AF=0.00085;AN=2364;BaseQRankSum=4.040;DB;DP=35077;Dels=0.00;FS=79.622;HRun=1;HaplotypeScore=0.2058;InbreedingCoeff=0.0239;MQ=71.45;MQ0=0;MQRankSum=-0.552;NDA=2;QD=12.80;ReadPosRankSum=1.074;SB=4.65;VQSLOD=3.8967;culprit=FS;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:20:60.20:0,60,835	0/0:1,0:27:81.25:0,81,998	0/0:1,0:19:57.19:0,57,793	0/0:1,0:12:36.12:0,36,501	0/0:1,0:17:51.17:0,51,691	0/0:1,0:22:66.22:0,66,907	0/0:1,0:19:57.17:0,57,653	0/0:1,0:16:48.14:0 [...]
-1	879203	.	A	C	100.14	PASS	AC=1;AF=0.00042;AN=2364;BaseQRankSum=-1.334;DP=34081;Dels=0.00;FS=11.356;HRun=0;HaplotypeScore=0.2129;InbreedingCoeff=-0.0083;MQ=77.56;MQ0=0;MQRankSum=-0.721;NDA=1;QD=6.26;ReadPosRankSum=0.498;SB=-58.31;VQSLOD=6.5553;culprit=QD;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:13:39.13:0,39,511	0/0:1,0:34:99:0,102,1199	0/0:1,0:29:87.28:0,87,1119	0/0:1,0:14:42.14:0,42,585	0/0:1,0:24:72.24:0,72,990	0/0:1,0:26:78.25:0,78,983	0/0:1,0:17:51.15:0,51,599	0/0:1,0:9:27.09:0,27,340	0/0 [...]
-1	879257	.	C	T	66.87	TruthSensitivityTranche98.50to98.80	AC=4;AF=0.00169;AN=2364;BaseQRankSum=-0.888;DP=41699;Dels=0.00;FS=1.728;HRun=0;HaplotypeScore=0.2694;InbreedingCoeff=0.0216;MQ=68.26;MQ0=0;MQRankSum=3.451;NDA=3;QD=1.39;ReadPosRankSum=0.465;SB=-95.37;VQSLOD=0.1895;culprit=QD;set=FilteredInAll	GT:AD:DP:GQ:PL	0/0:1,0:34:99:0,102,1312	0/0:1,0:36:99:0,108,1204	0/0:1,0:40:99:0,120,1479	0/0:1,0:23:69.22:0,69,887	0/0:1,0:29:87.28:0,87,1140	0/0:1,0:31:93.30:0,93,1172	0/0:1,0:5:15.05:0,15,1 [...]
-1	879276	rs115454328	A	G	5560.08	PASS	AC=15;AF=0.00635;AN=2364;BaseQRankSum=5.676;DB;DP=43812;DS;Dels=0.00;FS=9.312;HRun=0;HaplotypeScore=0.1675;InbreedingCoeff=-0.0144;MQ=62.93;MQ0=0;MQRankSum=3.476;NDA=1;QD=11.91;ReadPosRankSum=-1.874;SB=-2673.29;VQSLOD=6.6274;culprit=InbreedingCoeff;set=variant	GT:AD:DP:GQ:PL	0/0:1,0:36:99:0,108,1463	0/0:1,0:41:99:0,123,1445	0/0:1,0:37:99:0,111,1480	0/0:1,0:25:75.25:0,75,1044	0/0:1,0:35:99:0,105,1462	0/0:1,0:29:87.28:0,87,1119	0/0:7,0:7:21.06:0,21,241 [...]
-1	879317	rs7523549	C	T	82570.47	PASS	AC=186;AF=0.07868;AN=2364;BaseQRankSum=2.488;DB;DP=36267;DS;Dels=0.00;FS=14.862;HM3;HRun=0;HaplotypeScore=0.3150;InbreedingCoeff=0.1203;MQ=61.86;MQ0=0;MQRankSum=7.931;NDA=2;QD=17.21;ReadPosRankSum=3.682;SB=-25054.87;VQSLOD=6.5687;culprit=MQRankSum;set=variant	GT:AD:DP:GQ:PL	0/1:19,17:36:99:558,0,622	0/0:1,0:30:90.27:0,90,1058	0/0:1,0:35:99:0,105,1350	0/0:1,0:26:78.25:0,78,983	0/0:1,0:23:69.22:0,69,887	0/0:1,0:28:84.27:0,84,1080	0/0:1,0:12:36.11:0,36,4 [...]
diff --git a/testdata/variant/VQSR.mixedTest.recal b/testdata/variant/VQSR.mixedTest.recal
deleted file mode 100644
index 37b8274..0000000
--- a/testdata/variant/VQSR.mixedTest.recal
+++ /dev/null
@@ -1,32 +0,0 @@
-##fileformat=VCFv4.1
-##INFO=<ID=END,Number=1,Type=Integer,Description="x">
-##INFO=<ID=VQSLOD,Number=1,Type=Float,Description="Log odds ratio of being a true variant versus being false under the trained gaussian mixture model">
-##INFO=<ID=culprit,Number=1,Type=String,Description="The annotation which was the worst performing in the Gaussian mixture model, likely the reason why the variant was filtered out">
-##contig=<ID=1,length=249250621,assembly=b37>
-##contig=<ID=10,length=135534747,assembly=b37>
-##contig=<ID=11,length=135006516,assembly=b37>
-##contig=<ID=12,length=133851895,assembly=b37>
-##contig=<ID=13,length=115169878,assembly=b37>
-##contig=<ID=14,length=107349540,assembly=b37>
-##contig=<ID=15,length=102531392,assembly=b37>
-##contig=<ID=16,length=90354753,assembly=b37>
-##contig=<ID=17,length=81195210,assembly=b37>
-##contig=<ID=18,length=78077248,assembly=b37>
-##contig=<ID=19,length=59128983,assembly=b37>
-##contig=<ID=2,length=243199373,assembly=b37>
-##contig=<ID=20,length=63025520,assembly=b37>
-##contig=<ID=21,length=48129895,assembly=b37>
-##contig=<ID=22,length=51304566,assembly=b37>
-##contig=<ID=3,length=198022430,assembly=b37>
-##contig=<ID=4,length=191154276,assembly=b37>
-##contig=<ID=5,length=180915260,assembly=b37>
-##contig=<ID=6,length=171115067,assembly=b37>
-##contig=<ID=7,length=159138663,assembly=b37>
-##contig=<ID=8,length=146364022,assembly=b37>
-##contig=<ID=9,length=141213431,assembly=b37>
-#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	
-20	1000177	.	N	<VQSR>	.	.	END=1000177;VQSLOD=-1.2345;culprit=FS
-20	1000177	.	N	<VQSR>	.	.	END=1000178;VQSLOD=-1.2377;culprit=HaplotypeScore
-20	1000382	.	N	<VQSR>	.	.	END=1000386;VQSLOD=-0.5534;culprit=HaplotypeScore
-20	1000382	.	N	<VQSR>	.	.	END=1000382;VQSLOD=-0.5678;culprit=FS
-20	1000442	.	N	<VQSR>	.	.	END=1000446;VQSLOD=3.5923;culprit=QD
diff --git a/testdata/variant/dbsnp_135.b37.1000.vcf b/testdata/variant/dbsnp_135.b37.1000.vcf
deleted file mode 100644
index 948e8a3..0000000
--- a/testdata/variant/dbsnp_135.b37.1000.vcf
+++ /dev/null
@@ -1,249 +0,0 @@
-##fileformat=VCFv4.1
-##FILTER=<ID=NC,Description="Inconsistent Genotype Submission For At Least One Sample">
-##INFO=<ID=AF,Number=.,Type=Float,Description="Allele Frequency, for each ALT allele, in the same order as listed">
-##INFO=<ID=ASP,Number=0,Type=Flag,Description="Is Assembly specific. This is set if the variant only maps to one assembly">
-##INFO=<ID=ASS,Number=0,Type=Flag,Description="In acceptor splice site FxnCode = 73">
-##INFO=<ID=CDA,Number=0,Type=Flag,Description="Variation is interrogated in a clinical diagnostic assay">
-##INFO=<ID=CFL,Number=0,Type=Flag,Description="Has Assembly conflict. This is for weight 1 and 2 variant that maps to different chromosomes on different assemblies.">
-##INFO=<ID=CLN,Number=0,Type=Flag,Description="Variant is Clinical(LSDB,OMIM,TPA,Diagnostic)">
-##INFO=<ID=DSS,Number=0,Type=Flag,Description="In donor splice-site FxnCode = 75">
-##INFO=<ID=G5,Number=0,Type=Flag,Description=">5% minor allele frequency in 1+ populations">
-##INFO=<ID=G5A,Number=0,Type=Flag,Description=">5% minor allele frequency in each and all populations">
-##INFO=<ID=GCF,Number=0,Type=Flag,Description="Has Genotype Conflict Same (rs, ind), different genotype.  N/N is not included.">
-##INFO=<ID=GENEINFO,Number=1,Type=String,Description="Pairs each of gene symbol:gene id.  The gene symbol and id are delimited by a colon (:) and each pair is delimited by a vertical bar (|)">
-##INFO=<ID=GMAF,Number=1,Type=Float,Description="Global Minor Allele Frequency [0, 0.5]; global population is 1000GenomesProject phase 1 genotype data from 629 individuals, released in the 08-04-2010 dataset">
-##INFO=<ID=GNO,Number=0,Type=Flag,Description="Genotypes available. The variant has individual genotype (in SubInd table).">
-##INFO=<ID=HD,Number=0,Type=Flag,Description="Marker is on high density genotyping kit (50K density or greater).  The variant may have phenotype associations present in dbGaP.">
-##INFO=<ID=INT,Number=0,Type=Flag,Description="In Intron FxnCode = 6">
-##INFO=<ID=KGPROD,Number=0,Type=Flag,Description="1000 Genome production phase">
-##INFO=<ID=KGPilot1,Number=0,Type=Flag,Description="1000 Genome discovery(pilot1) 2009">
-##INFO=<ID=KGPilot123,Number=0,Type=Flag,Description="1000 Genome discovery all pilots 2010(1,2,3)">
-##INFO=<ID=KGVAL,Number=0,Type=Flag,Description="1000 Genome validated by second method">
-##INFO=<ID=LSD,Number=0,Type=Flag,Description="Submitted from a locus-specific database">
-##INFO=<ID=MTP,Number=0,Type=Flag,Description="Microattribution/third-party annotation(TPA:GWAS,PAGE)">
-##INFO=<ID=MUT,Number=0,Type=Flag,Description="Is mutation (journal citation, explicit fact): a low frequency variation that is cited in journal and other reputable sources">
-##INFO=<ID=NOC,Number=0,Type=Flag,Description="Contig allele not present in variant allele list. The reference sequence allele at the mapped position is not present in the variant allele list, adjusted for orientation.">
-##INFO=<ID=NOV,Number=0,Type=Flag,Description="Rs cluster has non-overlapping allele sets. True when rs set has more than 2 alleles from different submissions and these sets share no alleles in common.">
-##INFO=<ID=NS,Number=1,Type=Integer,Description="Number of Samples With Data">
-##INFO=<ID=NSF,Number=0,Type=Flag,Description="Has non-synonymous frameshift A coding region variation where one allele in the set changes all downstream amino acids. FxnClass = 44">
-##INFO=<ID=NSM,Number=0,Type=Flag,Description="Has non-synonymous missense A coding region variation where one allele in the set changes protein peptide. FxnClass = 42">
-##INFO=<ID=NSN,Number=0,Type=Flag,Description="Has non-synonymous nonsense A coding region variation where one allele in the set changes to STOP codon (TER). FxnClass = 41">
-##INFO=<ID=OM,Number=0,Type=Flag,Description="Has OMIM/OMIA">
-##INFO=<ID=OTH,Number=0,Type=Flag,Description="Has other variant with exactly the same set of mapped positions on NCBI refernce assembly.">
-##INFO=<ID=PH1,Number=0,Type=Flag,Description="Phase 1 genotyped: filtered, non-redundant">
-##INFO=<ID=PH2,Number=0,Type=Flag,Description="Phase 2 genotyped: filtered, non-redundant">
-##INFO=<ID=PH3,Number=0,Type=Flag,Description="Phase 3 genotyped: filtered, non-redundant">
-##INFO=<ID=PM,Number=0,Type=Flag,Description="Variant is Precious(Clinical,Pubmed Cited)">
-##INFO=<ID=PMC,Number=0,Type=Flag,Description="Links exist to PubMed Central article">
-##INFO=<ID=R3,Number=0,Type=Flag,Description="In 3' gene region FxnCode = 13">
-##INFO=<ID=R5,Number=0,Type=Flag,Description="In 5' gene region FxnCode = 15">
-##INFO=<ID=REF,Number=0,Type=Flag,Description="Has reference A coding region variation where one allele in the set is identical to the reference sequence. FxnCode = 8">
-##INFO=<ID=RSPOS,Number=1,Type=Integer,Description="Chr position reported in dbSNP">
-##INFO=<ID=RV,Number=0,Type=Flag,Description="RS orientation is reversed">
-##INFO=<ID=S3D,Number=0,Type=Flag,Description="Has 3D structure - SNP3D table">
-##INFO=<ID=SAO,Number=1,Type=Integer,Description="Variant Allele Origin: 0 - unspecified, 1 - Germline, 2 - Somatic, 3 - Both">
-##INFO=<ID=SCS,Number=1,Type=Integer,Description="Variant Clinical Significance, 0 - unknown, 1 - untested, 2 - non-pathogenic, 3 - probable-non-pathogenic, 4 - probable-pathogenic, 5 - pathogenic, 6 - drug-response, 7 - histocompatibility, 255 - other">
-##INFO=<ID=SLO,Number=0,Type=Flag,Description="Has SubmitterLinkOut - From SNP->SubSNP->Batch.link_out">
-##INFO=<ID=SSR,Number=1,Type=Integer,Description="Variant Suspect Reason Code, 0 - unspecified, 1 - Paralog, 2 - byEST, 3 - Para_EST, 4 - oldAlign, 5 - other">
-##INFO=<ID=SYN,Number=0,Type=Flag,Description="Has synonymous A coding region variation where one allele in the set does not change the encoded amino acid. FxnCode = 3">
-##INFO=<ID=TPA,Number=0,Type=Flag,Description="Provisional Third Party Annotation(TPA) (currently rs from PHARMGKB who will give phenotype data)">
-##INFO=<ID=U3,Number=0,Type=Flag,Description="In 3' UTR Location is in an untranslated region (UTR). FxnCode = 53">
-##INFO=<ID=U5,Number=0,Type=Flag,Description="In 5' UTR Location is in an untranslated region (UTR). FxnCode = 55">
-##INFO=<ID=VC,Number=1,Type=String,Description="Variation Class">
-##INFO=<ID=VLD,Number=0,Type=Flag,Description="Is Validated.  This bit is set if the variant has 2+ minor allele count based on frequency or genotype data.">
-##INFO=<ID=VP,Number=1,Type=String,Description="Variation Property">
-##INFO=<ID=WGT,Number=1,Type=Integer,Description="Weight, 00 - unmapped, 1 - weight 1, 2 - weight 2, 3 - weight 3 or more">
-##INFO=<ID=WTD,Number=0,Type=Flag,Description="Is Withdrawn by submitter If one member ss is withdrawn by submitter, then this bit is set.  If all member ss' are withdrawn, then the rs is deleted to SNPHistory">
-##INFO=<ID=dbSNPBuildID,Number=1,Type=Integer,Description="First dbSNP Build for RS">
-##LeftAlignVariants="analysis_type=LeftAlignVariants input_file=[] read_buffer_size=null phone_home=STANDARD read_filter=[] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL reference_sequence=/humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta rodBind=[] nonDeterministicRandomSeed=false downsampling_type=BY_SAMPLE downsample_to_fraction=null downsample_to_coverage=1000 baq=OFF baqGapOpenPenalty=40.0 performanceLog=null useOriginalQualities= [...]
-##contig=<ID=1,length=249250621,assembly=b37>
-##contig=<ID=10,length=135534747,assembly=b37>
-##contig=<ID=11,length=135006516,assembly=b37>
-##contig=<ID=12,length=133851895,assembly=b37>
-##contig=<ID=13,length=115169878,assembly=b37>
-##contig=<ID=14,length=107349540,assembly=b37>
-##contig=<ID=15,length=102531392,assembly=b37>
-##contig=<ID=16,length=90354753,assembly=b37>
-##contig=<ID=17,length=81195210,assembly=b37>
-##contig=<ID=18,length=78077248,assembly=b37>
-##contig=<ID=19,length=59128983,assembly=b37>
-##contig=<ID=2,length=243199373,assembly=b37>
-##contig=<ID=20,length=63025520,assembly=b37>
-##contig=<ID=21,length=48129895,assembly=b37>
-##contig=<ID=22,length=51304566,assembly=b37>
-##contig=<ID=3,length=198022430,assembly=b37>
-##contig=<ID=4,length=191154276,assembly=b37>
-##contig=<ID=5,length=180915260,assembly=b37>
-##contig=<ID=6,length=171115067,assembly=b37>
-##contig=<ID=7,length=159138663,assembly=b37>
-##contig=<ID=8,length=146364022,assembly=b37>
-##contig=<ID=9,length=141213431,assembly=b37>
-##contig=<ID=GL000191.1,length=106433,assembly=b37>
-##contig=<ID=GL000192.1,length=547496,assembly=b37>
-##contig=<ID=GL000193.1,length=189789,assembly=b37>
-##contig=<ID=GL000194.1,length=191469,assembly=b37>
-##contig=<ID=GL000195.1,length=182896,assembly=b37>
-##contig=<ID=GL000196.1,length=38914,assembly=b37>
-##contig=<ID=GL000197.1,length=37175,assembly=b37>
-##contig=<ID=GL000198.1,length=90085,assembly=b37>
-##contig=<ID=GL000199.1,length=169874,assembly=b37>
-##contig=<ID=GL000200.1,length=187035,assembly=b37>
-##contig=<ID=GL000201.1,length=36148,assembly=b37>
-##contig=<ID=GL000202.1,length=40103,assembly=b37>
-##contig=<ID=GL000203.1,length=37498,assembly=b37>
-##contig=<ID=GL000204.1,length=81310,assembly=b37>
-##contig=<ID=GL000205.1,length=174588,assembly=b37>
-##contig=<ID=GL000206.1,length=41001,assembly=b37>
-##contig=<ID=GL000207.1,length=4262,assembly=b37>
-##contig=<ID=GL000208.1,length=92689,assembly=b37>
-##contig=<ID=GL000209.1,length=159169,assembly=b37>
-##contig=<ID=GL000210.1,length=27682,assembly=b37>
-##contig=<ID=GL000211.1,length=166566,assembly=b37>
-##contig=<ID=GL000212.1,length=186858,assembly=b37>
-##contig=<ID=GL000213.1,length=164239,assembly=b37>
-##contig=<ID=GL000214.1,length=137718,assembly=b37>
-##contig=<ID=GL000215.1,length=172545,assembly=b37>
-##contig=<ID=GL000216.1,length=172294,assembly=b37>
-##contig=<ID=GL000217.1,length=172149,assembly=b37>
-##contig=<ID=GL000218.1,length=161147,assembly=b37>
-##contig=<ID=GL000219.1,length=179198,assembly=b37>
-##contig=<ID=GL000220.1,length=161802,assembly=b37>
-##contig=<ID=GL000221.1,length=155397,assembly=b37>
-##contig=<ID=GL000222.1,length=186861,assembly=b37>
-##contig=<ID=GL000223.1,length=180455,assembly=b37>
-##contig=<ID=GL000224.1,length=179693,assembly=b37>
-##contig=<ID=GL000225.1,length=211173,assembly=b37>
-##contig=<ID=GL000226.1,length=15008,assembly=b37>
-##contig=<ID=GL000227.1,length=128374,assembly=b37>
-##contig=<ID=GL000228.1,length=129120,assembly=b37>
-##contig=<ID=GL000229.1,length=19913,assembly=b37>
-##contig=<ID=GL000230.1,length=43691,assembly=b37>
-##contig=<ID=GL000231.1,length=27386,assembly=b37>
-##contig=<ID=GL000232.1,length=40652,assembly=b37>
-##contig=<ID=GL000233.1,length=45941,assembly=b37>
-##contig=<ID=GL000234.1,length=40531,assembly=b37>
-##contig=<ID=GL000235.1,length=34474,assembly=b37>
-##contig=<ID=GL000236.1,length=41934,assembly=b37>
-##contig=<ID=GL000237.1,length=45867,assembly=b37>
-##contig=<ID=GL000238.1,length=39939,assembly=b37>
-##contig=<ID=GL000239.1,length=33824,assembly=b37>
-##contig=<ID=GL000240.1,length=41933,assembly=b37>
-##contig=<ID=GL000241.1,length=42152,assembly=b37>
-##contig=<ID=GL000242.1,length=43523,assembly=b37>
-##contig=<ID=GL000243.1,length=43341,assembly=b37>
-##contig=<ID=GL000244.1,length=39929,assembly=b37>
-##contig=<ID=GL000245.1,length=36651,assembly=b37>
-##contig=<ID=GL000246.1,length=38154,assembly=b37>
-##contig=<ID=GL000247.1,length=36422,assembly=b37>
-##contig=<ID=GL000248.1,length=39786,assembly=b37>
-##contig=<ID=GL000249.1,length=38502,assembly=b37>
-##contig=<ID=MT,length=16569,assembly=b37>
-##contig=<ID=X,length=155270560,assembly=b37>
-##contig=<ID=Y,length=59373566,assembly=b37>
-##dbSNP_BUILD_ID=135
-##fileDate=20111104
-##phasing=partial
-##reference=GRCh37.3
-##reference=file:///humgen/gsa-hpprojects/GATK/bundle/current/b37/human_g1k_v37.fasta
-##source=dbSNP
-##variationPropertyDocumentationUrl=ftp://ftp.ncbi.nlm.nih.gov/snp/specs/dbSNP_BitField_latest.pdf	
-#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	
-1	10144	rs144773400	TA	T	.	PASS	ASP;RSPOS=10145;SAO=0;SSR=0;VC=DIV;VP=050000000004000000000200;WGT=0;dbSNPBuildID=134
-1	10228	rs143255646	TA	T	.	PASS	ASP;RSPOS=10229;SAO=0;SSR=0;VC=DIV;VP=050000000004000000000200;WGT=0;dbSNPBuildID=134
-1	10234	rs145599635	C	T	.	PASS	ASP;RSPOS=10234;SAO=0;SSR=0;VC=SNV;VP=050000000004000000000100;WGT=0;dbSNPBuildID=134
-1	10248	rs148908337	A	T	.	PASS	ASP;RSPOS=10248;SAO=0;SSR=0;VC=SNV;VP=050000000004000000000100;WGT=0;dbSNPBuildID=134
-1	10254	rs140194106	TA	T	.	PASS	ASP;RSPOS=10255;SAO=0;SSR=0;VC=DIV;VP=050000000004000000000200;WGT=0;dbSNPBuildID=134
-1	10291	rs145427775	C	T	.	PASS	ASP;RSPOS=10291;SAO=0;SSR=0;VC=SNV;VP=050000000004000000000100;WGT=0;dbSNPBuildID=134
-1	10327	rs112750067	T	C	.	PASS	ASP;GENEINFO=LOC100652771:100652771;RSPOS=10327;SAO=0;SSR=0;VC=SNV;VP=050000000004000000000100;WGT=0;dbSNPBuildID=132
-1	10329	rs150969722	AC	A	.	PASS	ASP;RSPOS=10330;SAO=0;SSR=0;VC=DIV;VP=050000000004000000000200;WGT=0;dbSNPBuildID=134
-1	10351	rs145072688	CTA	C,CA	.	PASS	ASP;RSPOS=10352;SAO=0;SSR=0;VC=DIV;VP=050000000004000000000200;WGT=0;dbSNPBuildID=134
-1	10382	rs147093981	AAC	A,AC	.	PASS	ASP;RSPOS=10383;SAO=0;SSR=0;VC=DIV;VP=050000000004000000000200;WGT=0;dbSNPBuildID=134
-1	10433	rs56289060	A	AC	.	PASS	ASP;GENEINFO=LOC100652771:100652771;RSPOS=10433;SAO=0;SSR=0;VC=DIV;VP=050000000004000000000200;WGT=0;dbSNPBuildID=129
-1	10439	rs112766696	AC	A	.	PASS	ASP;GENEINFO=LOC100652771:100652771;GNO;RSPOS=10440;SAO=0;SLO;SSR=0;VC=DIV;VP=050100000004000100000200;WGT=0;dbSNPBuildID=132
-1	10439	rs138941843	AC	A	.	PASS	ASP;RSPOS=10440;SAO=0;SSR=0;VC=DIV;VP=050000000004000000000200;WGT=0;dbSNPBuildID=134
-1	10440	rs112155239	C	A	.	PASS	ASP;GENEINFO=LOC100652771:100652771;RSPOS=10440;SAO=0;SSR=0;VC=SNV;VP=050000000004000000000100;WGT=0;dbSNPBuildID=132
-1	10492	rs55998931	C	T	.	PASS	ASP;GENEINFO=LOC100652771:100652771;GMAF=0.0617001828153565;RSPOS=10492;SAO=0;SSR=0;VC=SNV;VLD;VP=050000000004040000000100;WGT=0;dbSNPBuildID=129
-1	10519	rs62636508	G	C	.	PASS	ASP;GENEINFO=LOC100652771:100652771;RSPOS=10519;SAO=0;SSR=0;VC=SNV;VP=050000000004000000000100;WGT=0;dbSNPBuildID=129
-1	10583	rs58108140	G	A	.	PASS	ASP;GENEINFO=LOC100652771:100652771;GMAF=0.270566727605119;KGPilot123;RSPOS=10583;SAO=0;SSR=0;VC=SNV;VLD;VP=050000000004040010000100;WGT=0;dbSNPBuildID=129
-1	10611	rs189107123	C	G	.	PASS	KGPilot123;RSPOS=10611;SAO=0;SSR=0;VC=SNV;VP=050000000000000010000100;WGT=0;dbSNPBuildID=135
-1	10828	rs10218492	G	A	.	PASS	ASP;GENEINFO=LOC100652771:100652771;RSPOS=10828;SAO=0;SSR=0;VC=SNV;VP=050000000004000000000100;WGT=0;dbSNPBuildID=119
-1	10904	rs10218493	G	A	.	PASS	ASP;GENEINFO=LOC100652771:100652771;GNO;RSPOS=10904;SAO=0;SSR=0;VC=SNV;VP=050000000004000100000100;WGT=0;dbSNPBuildID=119
-1	10927	rs10218527	A	G	.	PASS	ASP;GENEINFO=LOC100652771:100652771;RSPOS=10927;SAO=0;SSR=0;VC=SNV;VP=050000000004000000000100;WGT=0;dbSNPBuildID=119
-1	10938	rs28853987	G	A	.	PASS	ASP;GENEINFO=LOC100652771:100652771;RSPOS=10938;SAO=0;SSR=0;VC=SNV;VP=050000000004000000000100;WGT=0;dbSNPBuildID=125
-1	11014	rs28484712	G	A	.	PASS	ASP;GENEINFO=LOC100652771:100652771;RSPOS=11014;SAO=0;SSR=0;VC=SNV;VP=050000000004000000000100;WGT=0;dbSNPBuildID=125
-1	11022	rs28775022	G	A	.	PASS	ASP;GENEINFO=LOC100652771:100652771;RSPOS=11022;SAO=0;SSR=0;VC=SNV;VP=050000000004000000000100;WGT=0;dbSNPBuildID=125
-1	11081	rs10218495	G	T	.	PASS	CFL;GENEINFO=LOC100652771:100652771;GNO;RSPOS=11081;SAO=0;SSR=0;VC=SNV;VP=050000000008000100000100;WGT=0;dbSNPBuildID=119
-1	11863	rs187669455	C	A	.	PASS	RSPOS=11863;SAO=0;SSR=0;VC=SNV;VP=050000000000000000000100;WGT=0;dbSNPBuildID=135
-1	13302	rs180734498	C	T	.	PASS	KGPilot123;RSPOS=13302;SAO=0;SSR=0;VC=SNV;VP=050000000000000010000100;WGT=0;dbSNPBuildID=135
-1	13327	rs144762171	G	C	.	PASS	ASP;KGPilot123;RSPOS=13327;SAO=0;SSR=0;VC=SNV;VP=050000000004000010000100;WGT=0;dbSNPBuildID=134
-1	13684	rs71260404	C	T	.	PASS	GENEINFO=LOC100652771:100652771;GNO;RSPOS=13684;RV;SAO=0;SLO;SSR=0;VC=SNV;VP=050100000000000100000100;WGT=0;dbSNPBuildID=130
-1	13980	rs151276478	T	C	.	PASS	ASP;KGPilot123;RSPOS=13980;SAO=0;SSR=0;VC=SNV;VP=050000000004000010000100;WGT=0;dbSNPBuildID=134
-1	14889	rs142444908	G	A	.	PASS	ASP;RSPOS=14889;SAO=0;SSR=0;VC=SNV;VP=050000000004000000000100;WGT=0;dbSNPBuildID=134
-1	14907	rs79585140	A	G	.	PASS	GNO;RSPOS=14907;SAO=0;SSR=0;VC=SNV;VLD;VP=050000000000040100000100;WGT=0;dbSNPBuildID=131
-1	14930	rs75454623	A	G	.	PASS	GNO;RSPOS=14930;SAO=0;SSR=0;VC=SNV;VLD;VP=050000000000040100000100;WGT=0;dbSNPBuildID=131
-1	14976	rs71252251	G	A	.	PASS	ASP;GNO;RSPOS=14976;RV;SAO=0;SLO;SSR=0;VC=SNV;VP=050100000004000100000100;WGT=0;dbSNPBuildID=130
-1	15061	rs71268703	T	TG	.	PASS	ASP;GNO;RSPOS=15061;RV;SAO=0;SLO;SSR=0;VC=DIV;VP=050100000004000100000200;WGT=0;dbSNPBuildID=130
-1	15118	rs71252250	A	G	.	PASS	ASP;GNO;RSPOS=15118;RV;SAO=0;SLO;SSR=0;VC=SNV;VP=050100000004000100000100;WGT=0;dbSNPBuildID=130
-1	15211	rs144718396	T	G	.	PASS	ASP;RSPOS=15211;SAO=0;SSR=0;VC=SNV;VP=050000000004000000000100;WGT=0;dbSNPBuildID=134
-1	15211	rs78601809	T	G	.	PASS	ASP;GNO;RSPOS=15211;SAO=0;SSR=0;VC=SNV;VLD;VP=050000000004040100000100;WGT=0;dbSNPBuildID=131
-1	16257	rs78588380	G	C	.	PASS	ASP;GNO;RSPOS=16257;SAO=0;SSR=0;VC=SNV;VP=050000000004000100000100;WGT=0;dbSNPBuildID=131
-1	16378	rs148220436	T	C	.	PASS	ASP;RSPOS=16378;SAO=0;SSR=0;VC=SNV;VP=050000000004000000000100;WGT=0;dbSNPBuildID=134
-1	16495	rs141130360	G	C	.	PASS	ASP;RSPOS=16495;SAO=0;SSR=0;VC=SNV;VP=050000000004000000000100;WGT=0;dbSNPBuildID=134
-1	16497	rs150723783	A	G	.	PASS	ASP;RSPOS=16497;SAO=0;SSR=0;VC=SNV;VP=050000000004000000000100;WGT=0;dbSNPBuildID=134
-1	17519	rs192890528	G	T	.	PASS	RSPOS=17519;SAO=0;SSR=0;VC=SNV;VP=050000000000000000000100;WGT=0;dbSNPBuildID=135
-1	19226	rs138930629	T	A	.	PASS	ASP;RSPOS=19226;SAO=0;SSR=0;VC=SNV;VP=050000000004000000000100;WGT=0;dbSNPBuildID=134
-1	20141	rs56336884	G	A	.	PASS	HD;RSPOS=20141;SAO=0;SLO;SSR=0;VC=SNV;VP=050100000000000400000100;WGT=0;dbSNPBuildID=129
-1	20144	rs143346096	G	A	.	PASS	ASP;RSPOS=20144;SAO=0;SSR=0;VC=SNV;VP=050000000004000000000100;WGT=0;dbSNPBuildID=134
-1	20206	rs71262675	C	T	.	PASS	GNO;RSPOS=20206;RV;SAO=0;SLO;SSR=0;VC=SNV;VP=050100000000000100000100;WGT=0;dbSNPBuildID=130
-1	20245	rs71262674	G	A	.	PASS	GMAF=0.256398537477148;GNO;RSPOS=20245;RV;SAO=0;SLO;SSR=0;VC=SNV;VP=050100000000000100000100;WGT=0;dbSNPBuildID=130
-1	20304	rs71262673	G	C	.	PASS	GMAF=0.338208409506399;GNO;RSPOS=20304;RV;SAO=0;SLO;SSR=0;VC=SNV;VP=050100000000000100000100;WGT=0;dbSNPBuildID=130
-1	26999	rs147506580	A	G	.	PASS	ASP;RSPOS=26999;SAO=0;SSR=0;VC=SNV;VP=050000000004000000000100;WGT=0;dbSNPBuildID=134
-1	29436	rs2462493	G	A	.	PASS	GNO;RSPOS=29436;SAO=0;SSR=0;VC=SNV;VP=050000000000000100000100;WGT=0;dbSNPBuildID=100
-1	30923	rs140337953	G	T	.	PASS	ASP;KGPilot123;RSPOS=30923;SAO=0;SSR=0;VC=SNV;VP=050000000004000010000100;WGT=0;dbSNPBuildID=134
-1	33487	rs77459554	C	T	.	PASS	ASP;GNO;RSPOS=33487;SAO=0;SSR=0;VC=SNV;VP=050000000004000100000100;WGT=0;dbSNPBuildID=131
-1	33495	rs75468675	C	T	.	PASS	ASP;GNO;RSPOS=33495;SAO=0;SSR=0;VC=SNV;VLD;VP=050000000004040100000100;WGT=0;dbSNPBuildID=131
-1	33505	rs75627161	T	C	.	PASS	ASP;GNO;RSPOS=33505;SAO=0;SSR=0;VC=SNV;VLD;VP=050000000004040100000100;WGT=0;dbSNPBuildID=131
-1	33508	rs75609629	A	T	.	PASS	ASP;GNO;RSPOS=33508;SAO=0;SSR=0;VC=SNV;VLD;VP=050000000004040100000100;WGT=0;dbSNPBuildID=131
-1	33521	rs76098219	T	A	.	PASS	GNO;RSPOS=33521;SAO=0;SSR=0;VC=SNV;VLD;VP=050000000000040100000100;WGT=0;dbSNPBuildID=131
-1	33593	rs557585	G	A	.	PASS	RSPOS=33593;SAO=0;SSR=0;VC=SNV;VP=050000000000000000000100;WGT=0;dbSNPBuildID=83
-1	33648	rs62028204	G	T	.	PASS	RSPOS=33648;RV;SAO=0;SSR=0;VC=SNV;VP=050000000000000000000100;WGT=0;dbSNPBuildID=129
-1	33656	rs113821789	T	C	.	PASS	RSPOS=33656;RV;SAO=0;SSR=0;VC=SNV;VP=050000000000000000000100;WGT=0;dbSNPBuildID=132
-1	51476	rs187298206	T	C	.	PASS	KGPilot123;RSPOS=51476;SAO=0;SSR=0;VC=SNV;VP=050000000000000010000100;WGT=0;dbSNPBuildID=135
-1	51479	rs116400033	T	A	.	PASS	ASP;G5;G5A;GMAF=0.113802559414991;KGPilot123;RSPOS=51479;SAO=0;SSR=0;VC=SNV;VLD;VP=050000000004070010000100;WGT=0;dbSNPBuildID=132
-1	51803	rs62637812	T	C	.	PASS	GMAF=0.468921389396709;RSPOS=51803;SAO=0;SSR=0;VC=SNV;VLD;VP=050000000000040000000100;WGT=0;dbSNPBuildID=129
-1	51898	rs76402894	C	A	.	PASS	GMAF=0.0731261425959781;GNO;RSPOS=51898;SAO=0;SSR=0;VC=SNV;VP=050000000000000100000100;WGT=0;dbSNPBuildID=131
-1	51914	rs190452223	T	G	.	PASS	KGPilot123;RSPOS=51914;SAO=0;SSR=0;VC=SNV;VP=050000000000000010000100;WGT=0;dbSNPBuildID=135
-1	51928	rs78732933	G	A	.	PASS	GNO;RSPOS=51928;SAO=0;SSR=0;VC=SNV;VP=050000000000000100000100;WGT=0;dbSNPBuildID=131
-1	51935	rs181754315	C	T	.	PASS	KGPilot123;RSPOS=51935;SAO=0;SSR=0;VC=SNV;VP=050000000000000010000100;WGT=0;dbSNPBuildID=135
-1	51954	rs185832753	G	C	.	PASS	KGPilot123;RSPOS=51954;SAO=0;SSR=0;VC=SNV;VP=050000000000000010000100;WGT=0;dbSNPBuildID=135
-1	52058	rs62637813	G	C	.	PASS	GMAF=0.0342778793418647;KGPilot123;RSPOS=52058;SAO=0;SSR=1;VC=SNV;VLD;VP=050000000000040010000140;WGT=0;dbSNPBuildID=129
-1	52144	rs190291950	T	A	.	PASS	KGPilot123;RSPOS=52144;SAO=0;SSR=0;VC=SNV;VP=050000000000000010000100;WGT=0;dbSNPBuildID=135
-1	52238	rs150021059	T	G	.	PASS	ASP;KGPilot123;RSPOS=52238;SAO=0;SSR=0;VC=SNV;VP=050000000004000010000100;WGT=0;dbSNPBuildID=134
-1	54353	rs140052487	C	A	.	PASS	ASP;KGPilot123;RSPOS=54353;SAO=0;SSR=0;VC=SNV;VP=050000000004000010000100;WGT=0;dbSNPBuildID=134
-1	54421	rs146477069	A	G	.	PASS	ASP;KGPilot123;RSPOS=54421;SAO=0;SSR=0;VC=SNV;VP=050000000004000010000100;WGT=0;dbSNPBuildID=134
-1	54490	rs141149254	G	A	.	PASS	ASP;KGPilot123;RSPOS=54490;SAO=0;SSR=0;VC=SNV;VP=050000000004000010000100;WGT=0;dbSNPBuildID=134
-1	54676	rs2462492	C	T	.	PASS	ASP;GMAF=0.191956124314442;GNO;HD;KGPilot123;RSPOS=54676;SAO=0;SSR=0;VC=SNV;VLD;VP=050000000004040510000100;WGT=0;dbSNPBuildID=100
-1	54753	rs143174675	T	G	.	PASS	ASP;KGPilot123;RSPOS=54753;SAO=0;SSR=0;VC=SNV;VP=050000000004000010000100;WGT=0;dbSNPBuildID=134
-1	54788	rs59861892	CC	C,CCT	.	PASS	ASP;RSPOS=54789;SAO=0;SSR=0;VC=DIV;VP=050000000004000000000200;WGT=0;dbSNPBuildID=129
-1	54795	rs58014817	T	A	.	PASS	ASP;RSPOS=54795;SAO=0;SSR=0;VC=SNV;VP=050000000004000000000100;WGT=0;dbSNPBuildID=129
-1	55164	rs3091274	C	A	.	PASS	G5;G5A;GMAF=0.145338208409506;GNO;KGPilot123;RSPOS=55164;SAO=0;SLO;SSR=0;VC=SNV;VP=050100000000030110000100;WGT=0;dbSNPBuildID=103
-1	55299	rs10399749	C	T	.	PASS	G5;G5A;GMAF=0.278793418647166;GNO;KGPilot123;PH2;RSPOS=55299;SAO=0;SLO;SSR=0;VC=SNV;VP=050100000000030112000100;WGT=0;dbSNPBuildID=119
-1	55302	rs3091273	C	T	.	PASS	RSPOS=55302;SAO=0;SSR=0;VC=SNV;VP=050000000000000000000100;WGT=0;dbSNPBuildID=103
-1	55313	rs182462964	A	T	.	PASS	KGPilot123;RSPOS=55313;SAO=0;SSR=0;VC=SNV;VP=050000000000000010000100;WGT=0;dbSNPBuildID=135
-1	55322	rs3107974	C	T	.	PASS	RSPOS=55322;SAO=0;SSR=0;VC=SNV;VP=050000000000000000000100;WGT=0;dbSNPBuildID=103
-1	55326	rs3107975	T	C	.	PASS	GNO;HD;KGPilot123;RSPOS=55326;SAO=0;SSR=0;VC=SNV;VP=050000000000000510000100;WGT=0;dbSNPBuildID=103
-1	55330	rs185215913	G	A	.	PASS	KGPilot123;RSPOS=55330;SAO=0;SSR=0;VC=SNV;VP=050000000000000010000100;WGT=0;dbSNPBuildID=135
-1	55367	rs190850374	G	A	.	PASS	KGPilot123;RSPOS=55367;SAO=0;SSR=0;VC=SNV;VP=050000000000000010000100;WGT=0;dbSNPBuildID=135
-1	55388	rs182711216	C	T	.	PASS	KGPilot123;RSPOS=55388;SAO=0;SSR=0;VC=SNV;VP=050000000000000010000100;WGT=0;dbSNPBuildID=135
-1	55394	rs2949420	T	A	.	PASS	GNO;KGPilot123;PH2;RSPOS=55394;SAO=0;SSR=0;VC=SNV;VP=050000000000000112000100;WGT=0;dbSNPBuildID=101
-1	55416	rs193242050	G	A	.	PASS	KGPilot123;RSPOS=55416;SAO=0;SSR=0;VC=SNV;VP=050000000000000010000100;WGT=0;dbSNPBuildID=135
-1	55427	rs183189405	T	C	.	PASS	KGPilot123;RSPOS=55427;SAO=0;SSR=0;VC=SNV;VP=050000000000000010000100;WGT=0;dbSNPBuildID=135
-1	55545	rs28396308	C	T	.	PASS	GNO;RSPOS=55545;SAO=0;SSR=0;VC=SNV;VP=050000000000000100000100;WGT=0;dbSNPBuildID=125
-1	55816	rs187434873	G	A	.	PASS	KGPilot123;RSPOS=55816;SAO=0;SSR=0;VC=SNV;VP=050000000000000010000100;WGT=0;dbSNPBuildID=135
-1	55850	rs191890754	C	G	.	PASS	KGPilot123;RSPOS=55850;SAO=0;SSR=0;VC=SNV;VP=050000000000000010000100;WGT=0;dbSNPBuildID=135
-1	55852	rs184233019	G	C	.	PASS	KGPilot123;RSPOS=55852;SAO=0;SSR=0;VC=SNV;VP=050000000000000010000100;WGT=0;dbSNPBuildID=135
-1	56644	rs143342222	A	C	.	PASS	ASP;KGPilot123;RSPOS=56644;SAO=0;SSR=0;VC=SNV;VP=050000000004000010000100;WGT=0;dbSNPBuildID=134
-1	57952	rs189727433	A	C	.	PASS	KGPilot123;RSPOS=57952;SAO=0;SSR=0;VC=SNV;VP=050000000000000010000100;WGT=0;dbSNPBuildID=135
-1	58771	rs140128481	T	C	.	PASS	ASP;RSPOS=58771;SAO=0;SSR=0;VC=SNV;VP=050000000004000000000100;WGT=0;dbSNPBuildID=134
-1	58814	rs114420996	G	A	.	PASS	ASP;G5;GMAF=0.0982632541133455;KGPilot123;RSPOS=58814;SAO=0;SSR=0;VC=SNV;VLD;VP=050000000004050010000100;WGT=0;dbSNPBuildID=132
-1	59040	rs149755937	T	C	.	PASS	ASP;KGPilot123;RSPOS=59040;SAO=0;SSR=0;VC=SNV;VP=050000000004000010000100;WGT=0;dbSNPBuildID=134
diff --git a/testdata/variant/diagnosis_targets_testfile.vcf b/testdata/variant/diagnosis_targets_testfile.vcf
deleted file mode 100644
index fbe8d1e..0000000
--- a/testdata/variant/diagnosis_targets_testfile.vcf
+++ /dev/null
@@ -1,117 +0,0 @@
-##fileformat=VCFv4.1
-##DiagnoseTargets="analysis_type=DiagnoseTargets input_file=[/humgen/gsa-hpprojects/GATK/data/Validation_Data/CEUTrio.HiSeq.b37.chr20.10_11mb.bam] read_buffer_size=null phone_home=NO_ET gatk_key=/humgen/gsa-hpprojects/GATK/data/gatk_user_keys/gsamembers_broadinstitute.org.key read_filter=[] intervals=[/humgen/gsa-hpprojects/GATK/data/Validation_Data/DT-itest.interval_list] excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/humgen/1kg [...]
-##FILTER=<ID=BAD_MATE,Description="the reads are not properly mated, suggesting mapping errors">
-##FILTER=<ID=COVERAGE_GAPS,Description="absolutely no coverage was observed at a locus, regardless of the filtering parameters">
-##FILTER=<ID=EXCESSIVE_COVERAGE,Description="more than -maxDepth read at the locus, indicating some sort of mapping problem">
-##FILTER=<ID=LOW_COVERAGE,Description="there were less than min. depth bases at the locus, after applying filters">
-##FILTER=<ID=LOW_MEDIAN_DEPTH,Description="interval has insufficient median depth across samples">
-##FILTER=<ID=NO_READS,Description="there are no reads contained in the interval">
-##FILTER=<ID=PASS,Description="the base satisfied the min. depth for calling but had less than maxDepth to avoid having EXCESSIVE_COVERAGE">
-##FILTER=<ID=POOR_QUALITY,Description="more than --maxFractionOfReadsWithLowMAPQ at the locus, indicating a poor mapping quality of the reads">
-##FILTER=<ID=REF_N,Description="the reference base was an N, which is not considered callable the GATK">
-##FORMAT=<ID=AVG_INTERVAL_DP,Number=1,Type=Float,Description="Average depth across the interval. Sum of the depth in a loci divided by interval size.">
-##FORMAT=<ID=FT,Number=1,Type=String,Description="Genotype-level filter">
-##FORMAT=<ID=MED,Number=1,Type=Float,Description="Median of depth distribution.">
-##FORMAT=<ID=Q1,Number=1,Type=Float,Description="Lower Quartile of depth distribution.">
-##FORMAT=<ID=Q3,Number=1,Type=Float,Description="Upper Quartile of depth Distribution.">
-##INFO=<ID="Diagnose Targets",Number=0,Type=Flag,Description="DiagnoseTargets mode">
-##INFO=<ID=AVG_INTERVAL_DP,Number=1,Type=Float,Description="Average depth across the interval. Sum of the depth in a loci divided by interval size.">
-##INFO=<ID=END,Number=1,Type=Integer,Description="Stop position of the interval">
-##contig=<ID=1,length=249250621,assembly=b37>
-##contig=<ID=2,length=243199373,assembly=b37>
-##contig=<ID=3,length=198022430,assembly=b37>
-##contig=<ID=4,length=191154276,assembly=b37>
-##contig=<ID=5,length=180915260,assembly=b37>
-##contig=<ID=6,length=171115067,assembly=b37>
-##contig=<ID=7,length=159138663,assembly=b37>
-##contig=<ID=8,length=146364022,assembly=b37>
-##contig=<ID=9,length=141213431,assembly=b37>
-##contig=<ID=10,length=135534747,assembly=b37>
-##contig=<ID=11,length=135006516,assembly=b37>
-##contig=<ID=12,length=133851895,assembly=b37>
-##contig=<ID=13,length=115169878,assembly=b37>
-##contig=<ID=14,length=107349540,assembly=b37>
-##contig=<ID=15,length=102531392,assembly=b37>
-##contig=<ID=16,length=90354753,assembly=b37>
-##contig=<ID=17,length=81195210,assembly=b37>
-##contig=<ID=18,length=78077248,assembly=b37>
-##contig=<ID=19,length=59128983,assembly=b37>
-##contig=<ID=20,length=63025520,assembly=b37>
-##contig=<ID=21,length=48129895,assembly=b37>
-##contig=<ID=22,length=51304566,assembly=b37>
-##contig=<ID=X,length=155270560,assembly=b37>
-##contig=<ID=Y,length=59373566,assembly=b37>
-##contig=<ID=MT,length=16569,assembly=b37>
-##contig=<ID=GL000207.1,length=4262,assembly=b37>
-##contig=<ID=GL000226.1,length=15008,assembly=b37>
-##contig=<ID=GL000229.1,length=19913,assembly=b37>
-##contig=<ID=GL000231.1,length=27386,assembly=b37>
-##contig=<ID=GL000210.1,length=27682,assembly=b37>
-##contig=<ID=GL000239.1,length=33824,assembly=b37>
-##contig=<ID=GL000235.1,length=34474,assembly=b37>
-##contig=<ID=GL000201.1,length=36148,assembly=b37>
-##contig=<ID=GL000247.1,length=36422,assembly=b37>
-##contig=<ID=GL000245.1,length=36651,assembly=b37>
-##contig=<ID=GL000197.1,length=37175,assembly=b37>
-##contig=<ID=GL000203.1,length=37498,assembly=b37>
-##contig=<ID=GL000246.1,length=38154,assembly=b37>
-##contig=<ID=GL000249.1,length=38502,assembly=b37>
-##contig=<ID=GL000196.1,length=38914,assembly=b37>
-##contig=<ID=GL000248.1,length=39786,assembly=b37>
-##contig=<ID=GL000244.1,length=39929,assembly=b37>
-##contig=<ID=GL000238.1,length=39939,assembly=b37>
-##contig=<ID=GL000202.1,length=40103,assembly=b37>
-##contig=<ID=GL000234.1,length=40531,assembly=b37>
-##contig=<ID=GL000232.1,length=40652,assembly=b37>
-##contig=<ID=GL000206.1,length=41001,assembly=b37>
-##contig=<ID=GL000240.1,length=41933,assembly=b37>
-##contig=<ID=GL000236.1,length=41934,assembly=b37>
-##contig=<ID=GL000241.1,length=42152,assembly=b37>
-##contig=<ID=GL000243.1,length=43341,assembly=b37>
-##contig=<ID=GL000242.1,length=43523,assembly=b37>
-##contig=<ID=GL000230.1,length=43691,assembly=b37>
-##contig=<ID=GL000237.1,length=45867,assembly=b37>
-##contig=<ID=GL000233.1,length=45941,assembly=b37>
-##contig=<ID=GL000204.1,length=81310,assembly=b37>
-##contig=<ID=GL000198.1,length=90085,assembly=b37>
-##contig=<ID=GL000208.1,length=92689,assembly=b37>
-##contig=<ID=GL000191.1,length=106433,assembly=b37>
-##contig=<ID=GL000227.1,length=128374,assembly=b37>
-##contig=<ID=GL000228.1,length=129120,assembly=b37>
-##contig=<ID=GL000214.1,length=137718,assembly=b37>
-##contig=<ID=GL000221.1,length=155397,assembly=b37>
-##contig=<ID=GL000209.1,length=159169,assembly=b37>
-##contig=<ID=GL000218.1,length=161147,assembly=b37>
-##contig=<ID=GL000220.1,length=161802,assembly=b37>
-##contig=<ID=GL000213.1,length=164239,assembly=b37>
-##contig=<ID=GL000211.1,length=166566,assembly=b37>
-##contig=<ID=GL000199.1,length=169874,assembly=b37>
-##contig=<ID=GL000217.1,length=172149,assembly=b37>
-##contig=<ID=GL000216.1,length=172294,assembly=b37>
-##contig=<ID=GL000215.1,length=172545,assembly=b37>
-##contig=<ID=GL000205.1,length=174588,assembly=b37>
-##contig=<ID=GL000219.1,length=179198,assembly=b37>
-##contig=<ID=GL000224.1,length=179693,assembly=b37>
-##contig=<ID=GL000223.1,length=180455,assembly=b37>
-##contig=<ID=GL000195.1,length=182896,assembly=b37>
-##contig=<ID=GL000212.1,length=186858,assembly=b37>
-##contig=<ID=GL000222.1,length=186861,assembly=b37>
-##contig=<ID=GL000200.1,length=187035,assembly=b37>
-##contig=<ID=GL000193.1,length=189789,assembly=b37>
-##contig=<ID=GL000194.1,length=191469,assembly=b37>
-##contig=<ID=GL000225.1,length=211173,assembly=b37>
-##contig=<ID=GL000192.1,length=547496,assembly=b37>
-##reference=file:///humgen/1kg/reference/human_g1k_v37.fasta
-#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	NA12878	NA12891	NA12892
-20	10000023	.	T	<DT>	.	PASS	AVG_INTERVAL_DP=206.11;END=10001189	AVG_INTERVAL_DP:MED:Q1:Q3	68.95:69.00:57.50:80.00	67.11:69.00:54.00:80.00	70.05:74.00:58.00:81.00
-20	10002751	.	T	<DT>	.	PASS	AVG_INTERVAL_DP=198.60;END=10021423	AVG_INTERVAL_DP:MED:Q1:Q3	69.75:74.00:61.00:81.00	64.78:69.00:56.00:78.00	64.07:66.00:56.00:77.00
-20	10094508	.	A	<DT>	.	PASS	AVG_INTERVAL_DP=217.07;END=10096841	AVG_INTERVAL_DP:MED:Q1:Q3	76.65:75.00:69.00:83.00	71.52:73.00:65.00:80.00	68.90:69.00:63.00:75.00
-20	10098364	.	G	<DT>	.	LOW_COVERAGE;LOW_MEDIAN_DEPTH	AVG_INTERVAL_DP=5.49;END=10098654	AVG_INTERVAL_DP:FT:MED:Q1:Q3	0.766:LOW_COVERAGE:1.00:1.00:1.00	0.880:COVERAGE_GAPS;LOW_COVERAGE:1.00:0.00:1.00	3.85:LOW_COVERAGE:2.00:2.00:6.00
-20	10153007	.	G	<DT>	.	PASS	AVG_INTERVAL_DP=61.42;END=10153151	AVG_INTERVAL_DP:MED:Q1:Q3	25.07:24.00:19.00:29.00	16.37:15.00:11.00:25.00	19.99:17.00:14.00:27.00
-20	10199324	.	T	<DT>	.	LOW_COVERAGE;LOW_MEDIAN_DEPTH	AVG_INTERVAL_DP=28.87;END=10199468	AVG_INTERVAL_DP:FT:MED:Q1:Q3	5.12:LOW_COVERAGE:3.00:1.00:7.00	9.19:LOW_COVERAGE:9.00:4.00:13.00	14.56:PASS:14.00:10.00:19.00
-20	10267798	.	T	<DT>	.	PASS	AVG_INTERVAL_DP=79.25;END=10268380	AVG_INTERVAL_DP:MED:Q1:Q3	32.66:29.00:20.00:50.00	22.02:19.00:11.00:37.00	24.57:21.00:10.00:39.00
-20	10375592	.	G	<DT>	.	LOW_MEDIAN_DEPTH	AVG_INTERVAL_DP=18.73;END=10376174	AVG_INTERVAL_DP:FT:MED:Q1:Q3	8.29:PASS:8.00:2.00:14.00	5.42:PASS:5.00:3.00:7.00	5.02:POOR_QUALITY:4.00:2.00:7.00
-20	10528943	.	T	<DT>	.	PASS	AVG_INTERVAL_DP=206.86;END=10566288	AVG_INTERVAL_DP:MED:Q1:Q3	72.22:72.00:64.00:81.00	66.76:68.00:59.00:76.00	67.89:69.00:59.00:78.00
-20	10655065	.	T	<DT>	.	LOW_COVERAGE;LOW_MEDIAN_DEPTH	AVG_INTERVAL_DP=9.86;END=10655136	AVG_INTERVAL_DP:FT:MED:Q1:Q3	0.931:COVERAGE_GAPS;LOW_COVERAGE:1.00:0.00:1.00	3.01:LOW_COVERAGE:3.00:2.00:3.50	5.92:PASS:6.00:5.00:7.00
-20	10958482	.	C	<DT>	.	PASS	AVG_INTERVAL_DP=93.29;END=10958626	AVG_INTERVAL_DP:MED:Q1:Q3	22.12:19.00:15.00:28.00	32.63:34.00:28.00:37.00	38.53:37.00:34.00:41.00
-20	10999884	.	A	<DT>	.	COVERAGE_GAPS	AVG_INTERVAL_DP=125.93;END=11000174	AVG_INTERVAL_DP:FT:MED:Q1:Q3	44.32:COVERAGE_GAPS:61.00:0.00:74.00	41.63:COVERAGE_GAPS:47.00:0.00:68.00	39.98:COVERAGE_GAPS:48.00:0.00:70.00
diff --git a/testdata/variant/ex2.bgzf.bcf b/testdata/variant/ex2.bgzf.bcf
deleted file mode 100755
index eaa40af..0000000
Binary files a/testdata/variant/ex2.bgzf.bcf and /dev/null differ
diff --git a/testdata/variant/ex2.bgzf.bcf.csi b/testdata/variant/ex2.bgzf.bcf.csi
deleted file mode 100755
index 722375b..0000000
Binary files a/testdata/variant/ex2.bgzf.bcf.csi and /dev/null differ
diff --git a/testdata/variant/ex2.uncompressed.bcf b/testdata/variant/ex2.uncompressed.bcf
deleted file mode 100755
index d0e41aa..0000000
Binary files a/testdata/variant/ex2.uncompressed.bcf and /dev/null differ
diff --git a/testdata/variant/ex2.vcf b/testdata/variant/ex2.vcf
deleted file mode 100644
index 17b1896..0000000
--- a/testdata/variant/ex2.vcf
+++ /dev/null
@@ -1,23 +0,0 @@
-##fileformat=VCFv4.1
-##reference=file:///seq/references/1000GenomesPilot-NCBI36.fasta
-##contig=<ID=20,length=62435964,assembly=B36,md5=f126cdf8a6e0c7f379d618ff66beb2da,species="Homo sapiens">
-##INFO=<ID=NS,Number=1,Type=Integer,Description="Number of Samples With Data">
-##INFO=<ID=DP,Number=1,Type=Integer,Description="Total Depth">
-##INFO=<ID=AF,Number=A,Type=Float,Description="Allele Frequency">
-##INFO=<ID=AA,Number=1,Type=String,Description="Ancestral Allele">
-##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP membership, build 129">
-##INFO=<ID=H2,Number=0,Type=Flag,Description="HapMap2 membership">
-##INFO=<ID=HOMSEQ,Number=.,Type=String>
-##FILTER=<ID=q10,Description="Quality below 10">
-##FILTER=<ID=s50,Description="Less than 50% of samples have data">
-##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
-##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
-##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Read Depth">
-##FORMAT=<ID=HQ,Number=2,Type=Integer,Description="Haplotype Quality">
-##FORMAT=<ID=CNL,Number=.,Type=Integer>
-#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	NA00001	NA00002	NA00003
-20	14370	rs6054257	G	A	29.1	.	NS=3;DP=14;AF=0.5;HOMSEQ;DB	GT:GQ:DP:HQ:CNL	0|0:48:1:25,30:10,20	1|0:48:8:49,51:.	./.:43:5:.,.:1
-20	17330	.	T	A	.	q10;s50	NS=3;DP=11;AF=0.017;H2	GT:GQ:DP:HQ	0|0:49:3:58,50	0|1:3:5:65,3	0/0:41:3:4,5
-20	1110696	rs6040355	A	G,T	67	PASS	NS=2;DP=10;AF=0.333,0.667;AA=T;DB	GT:GQ:DP:HQ	1|2:21:6:23,27	2|1:2:0:18,2	2/2:35:4:10,20
-20	1230237	.	T	.	47	PASS	NS=3;DP=13;AA=T	GT:GQ:DP:HQ	0|0:54:7:56,60	0|0:48:4:51,51	./.
-20	1234567	microsat1	GTC	G,GTCT	50	PASS	NS=3;DP=9;AA=G	GT:GQ:DP	0/1:35:4	0/2:17:2	1/1:40:3

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/picard-tools.git



More information about the debian-med-commit mailing list